diff --git a/ci-scripts/Jenkinsfile-gitlab b/ci-scripts/Jenkinsfile-gitlab new file mode 100644 index 0000000000..f83ee6faf0 --- /dev/null +++ b/ci-scripts/Jenkinsfile-gitlab @@ -0,0 +1,357 @@ +#!/bin/groovy +/* + * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The OpenAirInterface Software Alliance licenses this file to You under + * the OAI Public License, Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.openairinterface.org/?page_id=698 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *------------------------------------------------------------------------------- + * For more information about the OpenAirInterface (OAI) Software Alliance: + * contact@openairinterface.org + */ + +// Abstraction function to send social media messages: +// like on Slack or Mattermost +def sendSocialMediaMessage(pipeChannel, pipeColor, pipeMessage) { + if (params.pipelineUsesSlack != null) { + if (params.pipelineUsesSlack) { + slackSend channel: pipeChannel, color: pipeColor, message: pipeMessage + } + } +} + +def doRedHatBuild = false +def FDD_Band7_B210_Status + +pipeline { + agent { + label 'bellatrix' + } + options { + disableConcurrentBuilds() + timestamps() + gitLabConnection('OAI GitLab') + gitlabBuilds(builds: ["Build eNb-USRP", "Build basic-sim", "Build phy-sim", "Build eNb-ethernet", "Build UE-ethernet", "Analysis with cppcheck", "Test phy-sim", "Test-FDD-Band7"]) + ansiColor('xterm') + } + + stages { + stage ("Verify Parameters") { + steps { + script { + echo '\u2705 \u001B[32mVerify Parameters\u001B[0m' + def allParametersPresent = true + + if (params.RedHatRemoteServer == null) { + allParametersPresent = false + } + if (params.RedHatRemoteCredentials == null) { + allParametersPresent = false + } + if (params.RedHatWorkingPath == null) { + allParametersPresent = false + } + if (allParametersPresent) { + echo "Performing Red Hat Build" + doRedHatBuild = true + } else { + doRedHatBuild = false + } + } + } + } + stage ("Verify Guidelines") { + steps { + echo "Git URL is ${GIT_URL}" + echo "GitLab Act is ${env.gitlabActionType}" + script { + if ("MERGE".equals(env.gitlabActionType)) { + // GitLab-Jenkins plugin integration is lacking to perform the merge by itself + // Doing it manually --> it may have merge conflicts + sh "./ci-scripts/doGitLabMerge.sh --src-branch ${env.gitlabSourceBranch} --src-commit ${env.gitlabMergeRequestLastCommit} --target-branch ${env.gitlabTargetBranch} --target-commit ${GIT_COMMIT}" + sh "zip -r -qq localZip.zip ." + + // Running astyle options on the list of modified files by the merge request + // For the moment, there is no fail criteria. Just a notification of number of files that do not follow + sh "./ci-scripts/checkCodingFormattingRules.sh --src-branch ${env.gitlabSourceBranch} --target-branch ${env.gitlabTargetBranch}" + def res=readFile('./oai_rules_result.txt').trim(); + if ("0".equals(res)) { + def message = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): All Changed files in Merge Request follow OAI Formatting Rules" + addGitLabMRComment comment: message + } else { + def message = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): Some Changed files in Merge Request DO NOT follow OAI Formatting Rules" + addGitLabMRComment comment: message + } + } else { + echo "Git Branch is ${GIT_BRANCH}" + echo "Git Commit is ${GIT_COMMIT}" + + sh "zip -r -qq localZip.zip ." + // Running astyle options on all C/H files in the repository + // For the moment, there is no fail criteria. Just a notification of number of files that do not follow + sh "./ci-scripts/checkCodingFormattingRules.sh" + } + } + } + post { + failure { + script { + def message = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): Merge Conflicts -- Cannot perform CI" + addGitLabMRComment comment: message + } + } + } + } + + stage ("Start VM -- cppcheck") { + steps { + sh "./ci-scripts/createVM.sh --variant cppcheck --job-name ${JOB_NAME} --build-id ${BUILD_ID}" + } + } + + stage ("Start VM -- enb-usrp") { + steps { + sh "./ci-scripts/createVM.sh --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}" + } + } + + stage ("Start VM -- basic-sim") { + steps { + sh "./ci-scripts/createVM.sh --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID}" + } + } + + stage ("Start VM -- phy-sim") { + steps { + sh "./ci-scripts/createVM.sh --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID}" + } + } + + stage ("Start VM -- enb-ethernet") { + steps { + sh "./ci-scripts/createVM.sh --variant enb-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID}" + } + } + + stage ("Start VM -- ue-ethernet") { + steps { + sh "./ci-scripts/createVM.sh --variant ue-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID}" + } + } + + stage ("Variant Builds") { + parallel { + stage ("Analysis with cppcheck") { + steps { + gitlabCommitStatus(name: "Analysis with cppcheck") { + sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant cppcheck --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive" + } + } + } + stage ("Build eNb-USRP") { + steps { + gitlabCommitStatus(name: "Build eNb-USRP") { + sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive" + } + } + } + stage ("Build basic simulator") { + steps { + gitlabCommitStatus(name: "Build basic-sim") { + sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive" + } + } + } + stage ("Build physical simulators") { + steps { + gitlabCommitStatus(name: "Build phy-sim") { + sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive" + } + } + } + stage ("Build eNb-ethernet") { + steps { + gitlabCommitStatus(name: "Build eNb-ethernet") { + sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant enb-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive" + } + } + } + stage ("Build UE-ethernet") { + steps { + gitlabCommitStatus(name: "Build UE-ethernet") { + sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant ue-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive" + } + } + } + stage ("Build eNb-USRP on Red Hat") { + when { + expression {doRedHatBuild} + } + steps { + gitlabCommitStatus(name: "Build eNb-USRP-CentOS") { + script { + try { + withCredentials([ + [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.RedHatRemoteCredentials}", usernameVariable: 'RH_Username', passwordVariable: 'RH_Password'] + ]) { + sh "./ci-scripts/buildOnRH.sh --workspace $WORKSPACE --job-name ${JOB_NAME} --build-id ${BUILD_ID} --remote-host ${params.RedHatRemoteServer} --remote-path ${params.RedHatWorkingPath} --remote-user-name ${RH_Username} --remote-password ${RH_Password}" + } + } catch (Exception e) { + echo "Red Hat build failed not an error now" + } + } + } + } + } + } + post { + always { + script { + dir ('archives') { + sh "zip -r -qq vm_build_logs.zip basic_sim enb_usrp phy_sim cppcheck enb_eth ue_eth red_hat" + } + if(fileExists('archives/vm_build_logs.zip')) { + archiveArtifacts artifacts: 'archives/vm_build_logs.zip' + } + if ("MERGE".equals(env.gitlabActionType)) { + sh "./ci-scripts/reportBuildLocally.sh --git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger merge-request --src-branch ${env.gitlabSourceBranch} --src-commit ${env.gitlabMergeRequestLastCommit} --target-branch ${env.gitlabTargetBranch} --target-commit ${GIT_COMMIT}" + sh "./ci-scripts/checkAddedWarnings.sh --src-branch ${env.gitlabSourceBranch} --target-branch ${env.gitlabTargetBranch}" + def res=readFile('./oai_warning_files.txt').trim(); + if ("0".equals(res)) { + echo "No issues w/ warnings/errors in this merge request" + } else { + def fileList=readFile('./oai_warning_files_list.txt').trim(); + def message = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): Some modified files in Merge Request MAY have INTRODUCED WARNINGS (" + fileList + ")" + addGitLabMRComment comment: message + } + } else { + sh "./ci-scripts/reportBuildLocally.sh --git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger push --branch ${GIT_BRANCH} --commit ${GIT_COMMIT}" + } + if(fileExists('build_results.html')) { + archiveArtifacts artifacts: 'build_results.html' + } + } + } + } + } + + stage ("Variant Tests") { + parallel { + stage ("Test physical simulators") { + steps { + gitlabCommitStatus(name: "Test phy-sim") { + sh "./ci-scripts/runTestOnVM.sh --workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive" + } + } + } + stage ("Test basic simulator") { + steps { + //gitlabCommitStatus(name: "Test basic-sim") { + sh "./ci-scripts/runTestOnVM.sh --workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive" + //} + } + } + stage ("Test FDD - Band 7 - B210") { + steps { + gitlabCommitStatus(name: "Test-FDD-Band7") { + script { + if ("MERGE".equals(env.gitlabActionType)) { + FDD_Band7_B210_Status = build job: 'eNB-CI-FDD-Band7-B210', + parameters: [ + string(name: 'eNB_Repository', value: String.valueOf(GIT_URL)), + string(name: 'eNB_Branch', value: String.valueOf(env.gitlabSourceBranch)), + string(name: 'eNB_CommitID', value: String.valueOf(env.gitlabMergeRequestLastCommit)), + booleanParam(name: 'eNB_mergeRequest', value: true) + ] + } else { + FDD_Band7_B210_Status = build job: 'eNB-CI-FDD-Band7-B210', + parameters: [ + string(name: 'eNB_Repository', value: String.valueOf(GIT_URL)), + string(name: 'eNB_Branch', value: String.valueOf(GIT_BRANCH)), + string(name: 'eNB_CommitID', value: String.valueOf(GIT_COMMIT)), + booleanParam(name: 'eNB_mergeRequest', value: false) + ] + } + } + } + } + post { + always { + script { + copyArtifacts(projectName: 'eNB-CI-FDD-Band7-B210', + filter: 'test_results*.html', + selector: specific("${FDD_Band7_B210_Status.number}")) + if (fileExists('test_results-eNB-CI-FDD-Band7-B210.html')) { + archiveArtifacts artifacts: 'test_results-eNB-CI-FDD-Band7-B210.html' + } + } + } + } + } + } + post { + always { + script { + dir ('archives') { + sh "if [ -d */test ]; then zip -r -qq vm_tests_logs.zip */test ; fi" + } + if(fileExists('archives/vm_tests_logs.zip')) { + archiveArtifacts artifacts: 'archives/vm_tests_logs.zip' + archiveArtifacts artifacts: 'archives/*/test/results_autotests*.xml' + archiveArtifacts artifacts: 'archives/*/test/*.xsl' + } + } + } + } + } + stage ("Destroy all Virtual Machines") { + steps { + sh "./ci-scripts/destroyAllRunningVM.sh --job-name ${JOB_NAME} --build-id ${BUILD_ID}" + } + } + } + post { + always { + script { + // Stage destroy may not be run if error in previous stage + sh "./ci-scripts/destroyAllRunningVM.sh --job-name ${JOB_NAME} --build-id ${BUILD_ID}" + } + } + success { + script { + def message = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): passed (" + BUILD_URL + ")" + if ("MERGE".equals(env.gitlabActionType)) { + echo "This is a MERGE event" + addGitLabMRComment comment: message + def message2 = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): passed (" + BUILD_URL + ") -- MergeRequest #" + env.gitlabMergeRequestIid + " (" + env.gitlabMergeRequestTitle + ")" + sendSocialMediaMessage('ci-enb', 'good', message2) + } else { + sendSocialMediaMessage('ci-enb', 'good', message) + } + } + } + failure { + script { + def message = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): failed (" + BUILD_URL + ")" + if ("MERGE".equals(env.gitlabActionType)) { + echo "This is a MERGE event" + addGitLabMRComment comment: message + def message2 = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): failed (" + BUILD_URL + ") -- MergeRequest #" + env.gitlabMergeRequestIid + " (" + env.gitlabMergeRequestTitle + ")" + sendSocialMediaMessage('ci-enb', 'danger', message2) + } else { + sendSocialMediaMessage('ci-enb', 'danger', message) + } + } + } + } +} diff --git a/ci-scripts/Jenkinsfile-tmp-ran b/ci-scripts/Jenkinsfile-tmp-ran new file mode 100644 index 0000000000..78f62cd8eb --- /dev/null +++ b/ci-scripts/Jenkinsfile-tmp-ran @@ -0,0 +1,479 @@ +#!/bin/groovy +/* + * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The OpenAirInterface Software Alliance licenses this file to You under + * the OAI Public License, Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.openairinterface.org/?page_id=698 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *------------------------------------------------------------------------------- + * For more information about the OpenAirInterface (OAI) Software Alliance: + * contact@openairinterface.org + */ + +// Template Jenkins Declarative Pipeline script to run Test w/ RF HW + +// Location of the python executor node shall be in the same subnet as the others servers +def pythonExecutor = params.pythonExecutor + +// Location of the test XML file to be run +def testXMLFile = params.pythonTestXmlFile + +// Name of the test stage +def testStageName = params.pipelineTestStageName + +// Terminate Status +def termUE = 0 +def termENB = 1 +def termSPGW = 2 +def termMME = 3 +def termHSS = 4 +def termStatusArray = new Boolean[termHSS + 1] +termStatusArray[termUE] = false +termStatusArray[termENB] = false +termStatusArray[termSPGW] = false +termStatusArray[termMME] = false +termStatusArray[termHSS] = false + +// Global Parameters. Normally they should be populated when the master job +// triggers the slave job with parameters +def eNB_Repository +def eNB_Branch +def eNB_CommitID +def eNB_AllowMergeRequestProcess = false + +pipeline { + agent { + label pythonExecutor + } + options { + disableConcurrentBuilds() + timestamps() + ansiColor('xterm') + } + // the following parameter options are commented out so it shows the ones + // that you SHALL have to run the job. + // You can use them as template + /* + parameters { + //node-test parameters + string(name: 'pythonExecutor', defaultValue: 'nodea', description: 'Node where the pipeline - python scripts will be executed') + string(name: 'pythonTestXmlFile', defaultValue: 'enb_usrpB210_band7_50PRB.xml', description: 'Location of the Test XML to be run') + string(name: 'pipelineTestStageName', defaultValue: 'Test COTS-UE - OAI eNB - LTEBOX EPC', description: 'Naming of the Test Stage') + booleanParam(name: 'pipelineZipsConsoleLog', defaultValue: 'True', description: 'If true, the pipeline script retrieves the job console log, zips it and archives it as artifact') + + //eNB parameters + string(name: 'eNB_IPAddress', defaultValue: '192.168.XX.XX', description: 'IP Address of eNB') + credentials(name: 'eNB_Credentials', defaultValue: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX', credentialType: "Username with password", required: true, description: 'Credentials for eNB') + string(name: 'eNB_SourceCodePath', defaultValue: '/tmp/CI-enb', description: 'Full path of eNB source code') + + //EPC parameters + string(name: 'EPC_IPAddress', defaultValue: '192.168.XX.XX', description: 'IP Address of EPC') + string(name: 'EPC_Type', defaultValue: 'ltebox', description: 'EPC type: OAI or ltebox') + credentials(name: 'EPC_Credentials', defaultValue: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX', credentialType: "Username with password", required: true, description: 'Credentials for EPC') + string(name: 'EPC_SourceCodePath', defaultValue: '/tmp/CI-enb', description: 'Full path of EPC source code') + + //ADB server parameters + string(name: 'ADB_IPAddress', defaultValue: '192.168.XX.XX', description: 'IP Address of ADB server') + credentials(name: 'ADB_Credentials', defaultValue: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX', credentialType: "Username with password", required: true, description: 'Credentials for ADB') + } + */ + + stages { + stage ("Verify Parameters") { + steps { + script { + echo '\u2705 \u001B[32mVerify Parameters\u001B[0m' + def allParametersPresent = true + + // It is already to late to check it + if (params.pythonExecutor != null) { + echo "eNB CI executor node : ${pythonExecutor}" + } + // If not present picking a default XML file + if (params.pythonTestXmlFile == null) { + // picking default + testXMLFile = 'xml_files/enb_usrpB210_band7_50PRB.xml' + } else { + echo "Test XML file : ${testXMLFile}" + } + // If not present picking a default Stage Name + if (params.pipelineTestStageName == null) { + // picking default + testStageName = 'Template Test Stage' + } + + if (params.eNB_IPAddress == null) { + allParametersPresent = false + } + if (params.eNB_SourceCodePath == null) { + allParametersPresent = false + } + if (params.eNB_Credentials == null) { + allParametersPresent = false + } + // the following 4 parameters should be pushed by the master trigger + // if not present, take the job GIT variables (used for developing) + if (params.eNB_Repository == null) { + eNB_Repository = env.GIT_URL + } else { + eNB_Repository = params.eNB_Repository + } + echo "eNB_Repository : ${eNB_Repository}" + if (params.eNB_Branch == null) { + eNB_Branch = env.GIT_BRANCH + } else { + eNB_Branch = params.eNB_Branch + } + echo "eNB_Branch : ${eNB_Branch}" + if (params.eNB_CommitID == null) { + eNB_CommitID = env.GIT_COMMIT + } else { + eNB_CommitID = params.eNB_CommitID + } + echo "eNB_CommitID : ${eNB_CommitID}" + if (params.eNB_mergeRequest != null) { + eNB_AllowMergeRequestProcess = params.eNB_mergeRequest + } + + if (params.EPC_IPAddress == null) { + allParametersPresent = false + } + if (params.EPC_Type == null) { + allParametersPresent = false + } + if (params.EPC_SourceCodePath == null) { + allParametersPresent = false + } + if (params.EPC_Credentials == null) { + allParametersPresent = false + } + + if (params.ADB_IPAddress == null) { + allParametersPresent = false + } + if (params.ADB_Credentials == null) { + allParametersPresent = false + } + + if (allParametersPresent) { + echo "All parameters are present" + } else { + echo "Some parameters are missing" + sh "./ci-scripts/fail.sh" + } + } + } + } + stage ("Build and Test") { + steps { + script { + dir ('ci-scripts') { + try { + echo "\u2705 \u001B[32m${testStageName}\u001B[0m" + withCredentials([ + [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'eNB_Username', passwordVariable: 'eNB_Password'], + [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password'], + [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.ADB_Credentials}", usernameVariable: 'ADB_Username', passwordVariable: 'ADB_Password'] + ]) { + sh "python3 main.py --mode=TesteNB --eNBIPAddress=${params.eNB_IPAddress} --eNBRepository=${eNB_Repository} --eNBBranch=${eNB_Branch} --eNBCommitID=${eNB_CommitID} --eNB_AllowMerge=${eNB_AllowMergeRequestProcess} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath} --EPCIPAddress=${params.EPC_IPAddress} --EPCType=${params.EPC_Type} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCSourceCodePath=${params.EPC_SourceCodePath} --ADBIPAddress=${params.ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password} --XMLTestFile=${testXMLFile}" + } + } catch (Exception e) { + currentBuild.result = 'FAILURE' + } + } + } + } + } + stage ("Terminate") { + parallel { + stage('Terminate UE') { + steps { + echo '\u2705 \u001B[32mTerminate UE\u001B[0m' + withCredentials([ + [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.ADB_Credentials}", usernameVariable: 'ADB_Username', passwordVariable: 'ADB_Password'] + ]) { + sh "python3 ci-scripts/main.py --mode=TerminateUE --ADBIPAddress=${params.ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password}" + } + } + post { + success { + script { + termStatusArray[termUE] = true + } + } + } + } + stage('Terminate eNB') { + steps { + echo '\u2705 \u001B[32mTerminate eNB\u001B[0m' + withCredentials([ + [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'eNB_Username', passwordVariable: 'eNB_Password'] + ]) { + sh "python3 ci-scripts/main.py --mode=TerminateeNB --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password}" + } + } + post { + success { + script { + termStatusArray[termENB] = true + } + } + } + } + stage('Terminate SPGW') { + steps { + echo '\u2705 \u001B[32mTerminate SPGW\u001B[0m' + withCredentials([ + [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password'] + ]) { + sh "python3 ci-scripts/main.py --mode=TerminateSPGW --EPCIPAddress=${params.EPC_IPAddress} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCType=${params.EPC_Type} --EPCSourceCodePath=${params.EPC_SourceCodePath}" + } + } + post { + success { + script { + termStatusArray[termSPGW] = true + } + } + } + } + stage('Terminate MME') { + steps { + echo '\u2705 \u001B[32mTerminate MME\u001B[0m' + withCredentials([ + [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password'] + ]) { + sh "python3 ci-scripts/main.py --mode=TerminateMME --EPCIPAddress=${params.EPC_IPAddress} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCType=${params.EPC_Type} --EPCSourceCodePath=${params.EPC_SourceCodePath}" + } + } + post { + success { + script { + termStatusArray[termMME] = true + } + } + } + } + stage('Terminate HSS') { + steps { + echo '\u2705 \u001B[32mTerminate HSS\u001B[0m' + withCredentials([ + [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password'] + ]) { + sh "python3 ci-scripts/main.py --mode=TerminateHSS --EPCIPAddress=${params.EPC_IPAddress} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCType=${params.EPC_Type} --EPCSourceCodePath=${params.EPC_SourceCodePath}" + } + } + post { + success { + script { + termStatusArray[termHSS] = true + } + } + } + } + } + } + stage('Log Collection') { + parallel { + stage('Log Collection (eNB - Build)') { + steps { + withCredentials([ + [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'eNB_Username', passwordVariable: 'eNB_Password'] + ]) { + echo '\u2705 \u001B[32mLog Collection (eNB - Build)\u001B[0m' + sh "python3 ci-scripts/main.py --mode=LogCollectBuild --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath}" + + echo '\u2705 \u001B[32mLog Transfer (eNB - Build)\u001B[0m' + sh "sshpass -p \'${eNB_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${eNB_Username}@${params.eNB_IPAddress}:${eNB_SourceCodePath}/cmake_targets/build.log.zip ./build.log.${env.BUILD_ID}.zip || true" + } + script { + if(fileExists("build.log.${env.BUILD_ID}.zip")) { + archiveArtifacts "build.log.${env.BUILD_ID}.zip" + } + } + } + } + stage('Log Collection (eNB - Run)') { + steps { + withCredentials([ + [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'eNB_Username', passwordVariable: 'eNB_Password'] + ]) { + echo '\u2705 \u001B[32mLog Collection (eNB - Run)\u001B[0m' + sh "python3 ci-scripts/main.py --mode=LogCollecteNB --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath}" + + echo '\u2705 \u001B[32mLog Transfer (eNB - Run)\u001B[0m' + sh "sshpass -p \'${eNB_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${eNB_Username}@${params.eNB_IPAddress}:${eNB_SourceCodePath}/cmake_targets/enb.log.zip ./enb.log.${env.BUILD_ID}.zip || true" + } + script { + if(fileExists("enb.log.${env.BUILD_ID}.zip")) { + archiveArtifacts "enb.log.${env.BUILD_ID}.zip" + } + if(fileExists("ci-scripts/test_results.html")) { + sh "mv ci-scripts/test_results.html test_results-${JOB_NAME}.html" + sh "sed -i -e 's#TEMPLATE_JOB_NAME#${JOB_NAME}#' -e 's#TEMPLATE_BUILD_ID#${BUILD_ID}#' test_results-${JOB_NAME}.html" + archiveArtifacts "test_results-${JOB_NAME}.html" + } + } + } + } + stage('Log Collection (SPGW)') { + steps { + withCredentials([ + [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password'] + ]) { + echo '\u2705 \u001B[32mLog Collection (SPGW)\u001B[0m' + sh "python3 ci-scripts/main.py --mode=LogCollectSPGW --EPCIPAddress=${params.EPC_IPAddress} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCSourceCodePath=${params.EPC_SourceCodePath} --EPCType=${params.EPC_Type}" + + echo '\u2705 \u001B[32mLog Transfer (SPGW)\u001B[0m' + sh "sshpass -p \'${EPC_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${EPC_Username}@${params.EPC_IPAddress}:${EPC_SourceCodePath}/scripts/spgw.log.zip ./spgw.log.${env.BUILD_ID}.zip || true" + } + script { + if(fileExists("spgw.log.${env.BUILD_ID}.zip")) { + archiveArtifacts "spgw.log.${env.BUILD_ID}.zip" + } + } + } + } + stage('Log Collection (MME)') { + steps { + withCredentials([ + [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password'] + ]) { + echo '\u2705 \u001B[32mLog Collection (MME)\u001B[0m' + sh "python3 ci-scripts/main.py --mode=LogCollectMME --EPCIPAddress=${params.EPC_IPAddress} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCSourceCodePath=${params.EPC_SourceCodePath} --EPCType=${params.EPC_Type}" + + echo '\u2705 \u001B[32mLog Transfer (MME)\u001B[0m' + sh "sshpass -p \'${EPC_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${EPC_Username}@${params.EPC_IPAddress}:${EPC_SourceCodePath}/scripts/mme.log.zip ./mme.log.${env.BUILD_ID}.zip || true" + } + script { + if(fileExists("mme.log.${env.BUILD_ID}.zip")) { + archiveArtifacts "mme.log.${env.BUILD_ID}.zip" + } + } + } + } + stage('Log Collection (HSS)') { + steps { + withCredentials([ + [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password'] + ]) { + echo '\u2705 \u001B[32mLog Collection (HSS)\u001B[0m' + sh "python3 ci-scripts/main.py --mode=LogCollectHSS --EPCIPAddress=${params.EPC_IPAddress} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCSourceCodePath=${params.EPC_SourceCodePath} --EPCType=${params.EPC_Type}" + + echo '\u2705 \u001B[32mLog Transfer (HSS)\u001B[0m' + sh "sshpass -p \'${EPC_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${EPC_Username}@${params.EPC_IPAddress}:${EPC_SourceCodePath}/scripts/hss.log.zip ./hss.log.${env.BUILD_ID}.zip || true" + } + script { + if(fileExists("hss.log.${env.BUILD_ID}.zip")) { + archiveArtifacts "hss.log.${env.BUILD_ID}.zip" + } + } + } + } + stage('Log Collection (Ping)') { + steps { + withCredentials([ + [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password'] + ]) { + echo '\u2705 \u001B[32mLog Collection (Ping)\u001B[0m' + sh "python3 ci-scripts/main.py --mode=LogCollectPing --EPCIPAddress=${params.EPC_IPAddress} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCSourceCodePath=${params.EPC_SourceCodePath} --EPCType=${params.EPC_Type}" + + echo '\u2705 \u001B[32mLog Transfer (Ping)\u001B[0m' + sh "sshpass -p \'${EPC_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${EPC_Username}@${params.EPC_IPAddress}:${EPC_SourceCodePath}/scripts/ping.log.zip ./ping.log.${env.BUILD_ID}.zip || true" + } + script { + if(fileExists("ping.log.${env.BUILD_ID}.zip")) { + archiveArtifacts "ping.log.${env.BUILD_ID}.zip" + } + } + } + } + stage('Log Collection (Iperf)') { + steps { + withCredentials([ + [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password'] + ]) { + echo '\u2705 \u001B[32mLog Collection (Iperf)\u001B[0m' + sh "python3 ci-scripts/main.py --mode=LogCollectIperf --EPCIPAddress=${params.EPC_IPAddress} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCSourceCodePath=${params.EPC_SourceCodePath} --EPCType=${params.EPC_Type}" + + echo '\u2705 \u001B[32mLog Transfer (Iperf)\u001B[0m' + sh "sshpass -p \'${EPC_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${EPC_Username}@${params.EPC_IPAddress}:${EPC_SourceCodePath}/scripts/iperf.log.zip ./iperf.log.${env.BUILD_ID}.zip || true" + } + script { + if(fileExists("iperf.log.${env.BUILD_ID}.zip")) { + archiveArtifacts "iperf.log.${env.BUILD_ID}.zip" + } + } + } + } + } + } + } + + post { + always { + script { + if (params.pipelineZipsConsoleLog != null) { + if (params.pipelineZipsConsoleLog) { + echo "Archiving Jenkins console log" + sh "wget --no-check-certificate --no-proxy ${env.JENKINS_URL}/job/${env.JOB_NAME}/${env.BUILD_ID}/consoleText -O consoleText.log || true" + sh "zip -m consoleText.log.${env.BUILD_ID}.zip consoleText.log || true" + if(fileExists("consoleText.log.${env.BUILD_ID}.zip")) { + archiveArtifacts "consoleText.log.${env.BUILD_ID}.zip" + } + } + } + } + } + // Making sure that we really shutdown every thing before leaving + failure { + script { + if (!termStatusArray[termUE]) { + withCredentials([ + [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.ADB_Credentials}", usernameVariable: 'ADB_Username', passwordVariable: 'ADB_Password'] + ]) { + sh "python3 ci-scripts/main.py --mode=TerminateUE --ADBIPAddress=${params.ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password}" + } + } + if (!termStatusArray[termENB]) { + withCredentials([ + [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'eNB_Username', passwordVariable: 'eNB_Password'] + ]) { + sh "python3 ci-scripts/main.py --mode=TerminateeNB --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password}" + } + } + if (!termStatusArray[termSPGW]) { + withCredentials([ + [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password'] + ]) { + sh "python3 ci-scripts/main.py --mode=TerminateSPGW --EPCIPAddress=${params.EPC_IPAddress} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCType=${params.EPC_Type} --EPCSourceCodePath=${params.EPC_SourceCodePath}" + } + } + if (!termStatusArray[termMME]) { + withCredentials([ + [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password'] + ]) { + sh "python3 ci-scripts/main.py --mode=TerminateMME --EPCIPAddress=${params.EPC_IPAddress} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCType=${params.EPC_Type} --EPCSourceCodePath=${params.EPC_SourceCodePath}" + } + } + if (!termStatusArray[termHSS]) { + withCredentials([ + [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password'] + ]) { + sh "python3 ci-scripts/main.py --mode=TerminateHSS --EPCIPAddress=${params.EPC_IPAddress} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCType=${params.EPC_Type} --EPCSourceCodePath=${params.EPC_SourceCodePath}" + } + } + } + } + } +} diff --git a/ci-scripts/astyle-options.txt b/ci-scripts/astyle-options.txt new file mode 100644 index 0000000000..7f28bbb1f0 --- /dev/null +++ b/ci-scripts/astyle-options.txt @@ -0,0 +1,20 @@ +# OAI is using a style that is similar to the Google style +--style=google +# long options can be written without the preceding '--' +# Convert tabs to spaces +convert-tabs +# Indentation is 2 spaces +indent=spaces=2 +# Indent 'switch' blocks so that the 'case X:' statements are indented in the switch block. +indent-switches +# Indent C++ comments beginning in column one. +indent-col1-comments +# Pad empty lines around header blocks +break-blocks +delete-empty-lines +# Attach a pointer or reference operator (*, &, or ^) to the variable name (right) +align-pointer=name +# The code line length is 200 characters/columns +max-code-length=200 +break-after-logical +lineend=linux diff --git a/ci-scripts/buildOnRH.sh b/ci-scripts/buildOnRH.sh new file mode 100755 index 0000000000..ce5b24dc49 --- /dev/null +++ b/ci-scripts/buildOnRH.sh @@ -0,0 +1,209 @@ +#!/bin/bash +#/* +# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more +# * contributor license agreements. See the NOTICE file distributed with +# * this work for additional information regarding copyright ownership. +# * The OpenAirInterface Software Alliance licenses this file to You under +# * the OAI Public License, Version 1.1 (the "License"); you may not use this file +# * except in compliance with the License. +# * You may obtain a copy of the License at +# * +# * http://www.openairinterface.org/?page_id=698 +# * +# * Unless required by applicable law or agreed to in writing, software +# * distributed under the License is distributed on an "AS IS" BASIS, +# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# * See the License for the specific language governing permissions and +# * limitations under the License. +# *------------------------------------------------------------------------------- +# * For more information about the OpenAirInterface (OAI) Software Alliance: +# * contact@openairinterface.org +# */ + +function usage { + echo "OAI RedHat Build Check script" + echo " Original Author: Raphael Defosseux" + + echo "" + echo "Usage:" + echo "------" + echo " buildOnRH.sh [OPTIONS]" + echo "" + echo "Options:" + echo "--------" + echo " --job-name #### OR -jn ####" + echo " Specify the name of the Jenkins job." + echo "" + echo " --build-id #### OR -id ####" + echo " Specify the build ID of the Jenkins job." + echo "" + echo " --workspace #### OR -ws ####" + echo " Specify the workspace." + echo "" + echo " --remote-host #### OR -rh ####" + echo " Specify the RedHat remote server." + echo "" + echo " --remote-user-name #### OR -ru ####" + echo " Specify the RedHat remote server username." + echo "" + echo " --remote-password #### OR -rp ####" + echo " Specify the RedHat remote server password." + echo "" + echo " --remote-path #### OR -ra ####" + echo " Specify the RedHat remote server path to work on." + echo "" +} + +if [ $# -lt 1 ] || [ $# -gt 14 ] +then + echo "Syntax Error: not the correct number of arguments" + echo "" + usage + exit 1 +fi + +RH_HOST=XX +RH_USER=XX +RH_PASSWD=XX +RH_PATH=XX +JOB_NAME=XX +BUILD_ID=XX + +while [[ $# -gt 0 ]] +do +key="$1" + +case $key in + -h|--help) + shift + usage + exit 0 + ;; + -jn|--job-name) + JOB_NAME="$2" + shift + shift + ;; + -id|--build-id) + BUILD_ID="$2" + shift + shift + ;; + -ws|--workspace) + JENKINS_WKSP="$2" + shift + shift + ;; + -rh|--remote-host) + RH_HOST="$2" + shift + shift + ;; + -ru|--remote-user-name) + RH_USER="$2" + shift + shift + ;; + -rp|--remote-password) + RH_PASSWD="$2" + shift + shift + ;; + -ra|--remote-path) + RH_PATH="$2" + shift + shift + ;; + *) + echo "Syntax Error: unknown option: $key" + echo "" + usage + exit 1 +esac +done + +if [ ! -f $JENKINS_WKSP/localZip.zip ] +then + echo "Missing localZip.zip file!" + exit 1 +fi + +if [ "$JOB_NAME" == "XX" ] || [ "$BUILD_ID" == "XX" ] || [ "$RH_HOST" == "XX" ] || [ "$RH_USER" == "XX" ] || [ "$RH_PASSWD" == "XX" ] || [ "$RH_PATH" == "XX" ] +then + echo "Missing options" + usage + exit 1 +fi + +echo "############################################################" +echo "Copying GIT repo into RedHat Server" +echo "############################################################" +echo "rm -Rf ${RH_PATH}" >> rh-cmd.txt +echo "mkdir -p ${RH_PATH}" >> rh-cmd.txt + +sshpass -p ${RH_PASSWD} ssh -o 'StrictHostKeyChecking no' ${RH_USER}@${RH_HOST} < rh-cmd.txt +rm -f rh-cmd.txt + +echo "############################################################" +echo "Running install and build script on RedHat Server" +echo "############################################################" +sshpass -p ${RH_PASSWD} scp -o 'StrictHostKeyChecking no' $JENKINS_WKSP/localZip.zip ${RH_USER}@${RH_HOST}:${RH_PATH} + +echo "cd ${RH_PATH}" > rh-cmd.txt +echo "unzip -qq localZip.zip" >> rh-cmd.txt +echo "source oaienv" >> rh-cmd.txt +echo "cd cmake_targets" >> rh-cmd.txt +echo "mkdir -p log" >> rh-cmd.txt +echo "./build_oai -I -w USRP --eNB > log/install-build.txt 2>&1" >> rh-cmd.txt +sshpass -p ${RH_PASSWD} ssh -o 'StrictHostKeyChecking no' ${RH_USER}@${RH_HOST} < rh-cmd.txt + +rm -f rh-cmd.txt + +echo "############################################################" +echo "Creating a tmp folder to store results and artifacts" +echo "############################################################" +if [ ! -d $JENKINS_WKSP/archives ] +then + mkdir -p $JENKINS_WKSP/archives +fi + +ARCHIVES_LOC=$JENKINS_WKSP/archives/red_hat +if [ ! -d $ARCHIVES_LOC ] +then + mkdir -p $ARCHIVES_LOC +fi + +sshpass -p ${RH_PASSWD} scp -o 'StrictHostKeyChecking no' ${RH_USER}@${RH_HOST}:${RH_PATH}/cmake_targets/log/*.txt $ARCHIVES_LOC + +echo "############################################################" +echo "Checking build status" +echo "############################################################" + +LOG_PATTERN=.Rel14.txt +NB_PATTERN_FILES=4 + +LOG_FILES=`ls $ARCHIVES_LOC/*.txt` +STATUS=0 +NB_FOUND_FILES=0 + +for FULLFILE in $LOG_FILES +do + if [[ $FULLFILE == *"$LOG_PATTERN"* ]] + then + filename=$(basename -- "$FULLFILE") + PASS_PATTERN=`echo $filename | sed -e "s#$LOG_PATTERN##"` + LOCAL_STAT=`egrep -c "Built target $PASS_PATTERN" $FULLFILE` + if [ $LOCAL_STAT -eq 0 ]; then STATUS=-1; fi + NB_FOUND_FILES=$((NB_FOUND_FILES + 1)) + fi +done + +if [ $NB_PATTERN_FILES -ne $NB_FOUND_FILES ]; then STATUS=-1; fi + +if [ $STATUS -eq 0 ] +then + echo "STATUS seems OK" +else + echo "STATUS failed?" +fi +exit $STATUS diff --git a/ci-scripts/buildOnVM.sh b/ci-scripts/buildOnVM.sh new file mode 100755 index 0000000000..76a11c6d38 --- /dev/null +++ b/ci-scripts/buildOnVM.sh @@ -0,0 +1,393 @@ +#!/bin/bash +#/* +# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more +# * contributor license agreements. See the NOTICE file distributed with +# * this work for additional information regarding copyright ownership. +# * The OpenAirInterface Software Alliance licenses this file to You under +# * the OAI Public License, Version 1.1 (the "License"); you may not use this file +# * except in compliance with the License. +# * You may obtain a copy of the License at +# * +# * http://www.openairinterface.org/?page_id=698 +# * +# * Unless required by applicable law or agreed to in writing, software +# * distributed under the License is distributed on an "AS IS" BASIS, +# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# * See the License for the specific language governing permissions and +# * limitations under the License. +# *------------------------------------------------------------------------------- +# * For more information about the OpenAirInterface (OAI) Software Alliance: +# * contact@openairinterface.org +# */ + +function usage { + echo "OAI VM Build Check script" + echo " Original Author: Raphael Defosseux" + echo " Requirements:" + echo " -- uvtool uvtool-libvirt apt-cacher" + echo " -- xenial image already synced" + echo " Default:" + echo " -- eNB with USRP" + echo "" + echo "Usage:" + echo "------" + echo " buildOnVM.sh [OPTIONS]" + echo "" + echo "Options:" + echo "--------" + echo " --job-name #### OR -jn ####" + echo " Specify the name of the Jenkins job." + echo "" + echo " --build-id #### OR -id ####" + echo " Specify the build ID of the Jenkins job." + echo "" + echo " --workspace #### OR -ws ####" + echo " Specify the workspace." + echo "" + echo " --variant enb-usrp OR -v1" + echo " --variant basic-sim OR -v2" + echo " --variant phy-sim OR -v3" + echo " --variant cppcheck OR -v4" + echo " --variant enb-ethernet OR -v7" + echo " --variant ue-ethernet OR -v8" + echo " Specify the variant to build." + echo "" + echo " --keep-vm-alive OR -k" + echo " Keep the VM alive after the build." + echo "" + echo " --help OR -h" + echo " Print this help message." + echo "" +} + +function variant_usage { + echo "OAI VM Build Check script" + echo " Original Author: Raphael Defosseux" + echo "" + echo " --variant enb-usrp OR -v1" + echo " --variant basic-sim OR -v2" + echo " --variant phy-sim OR -v3" + echo " --variant cppcheck OR -v4" + echo " --variant enb-ethernet OR -v7" + echo " --variant ue-ethernet OR -v8" + echo "" +} + +if [ $# -lt 1 ] || [ $# -gt 9 ] +then + echo "Syntax Error: not the correct number of arguments" + echo "" + usage + exit 1 +fi + +VM_TEMPLATE=ci- +JOB_NAME=XX +BUILD_ID=XX +VM_NAME=ci-enb-usrp +VM_MEMORY=2048 +ARCHIVES_LOC=enb_usrp +LOG_PATTERN=.Rel14.txt +NB_PATTERN_FILES=4 +BUILD_OPTIONS="--eNB -w USRP" +KEEP_VM_ALIVE=0 + +while [[ $# -gt 0 ]] +do +key="$1" + +case $key in + -h|--help) + shift + usage + exit 0 + ;; + -jn|--job-name) + JOB_NAME="$2" + shift + shift + ;; + -id|--build-id) + BUILD_ID="$2" + shift + shift + ;; + -ws|--workspace) + JENKINS_WKSP="$2" + shift + shift + ;; + -k|--keep-vm-alive) + KEEP_VM_ALIVE=1 + shift + ;; + -v1) + VM_NAME=ci-enb-usrp + ARCHIVES_LOC=enb_usrp + LOG_PATTERN=.Rel14.txt + NB_PATTERN_FILES=4 + BUILD_OPTIONS="--eNB -w USRP" + shift + ;; + -v2) + VM_NAME=ci-basic-sim + ARCHIVES_LOC=basic_sim + LOG_PATTERN=basic_simulator + NB_PATTERN_FILES=2 + BUILD_OPTIONS="--basic-simulator" + shift + ;; + -v3) + VM_NAME=ci-phy-sim + ARCHIVES_LOC=phy_sim + LOG_PATTERN=.Rel14.txt + NB_PATTERN_FILES=3 + BUILD_OPTIONS="--phy_simulators" + shift + ;; + -v4) + VM_NAME=ci-cppcheck + VM_MEMORY=4096 + ARCHIVES_LOC=cppcheck + LOG_PATTERN=cppcheck.xml + NB_PATTERN_FILES=1 + BUILD_OPTIONS="--enable=warning --force --xml --xml-version=2" + shift + ;; + -v7) + VM_NAME=ci-enb-ethernet + ARCHIVES_LOC=enb_eth + LOG_PATTERN=.Rel14.txt + NB_PATTERN_FILES=6 + BUILD_OPTIONS="--eNB -t ETHERNET --noS1" + shift + ;; + -v8) + VM_NAME=ci-ue-ethernet + ARCHIVES_LOC=ue_eth + LOG_PATTERN=.Rel14.txt + NB_PATTERN_FILES=6 + BUILD_OPTIONS="--UE -t ETHERNET --noS1" + shift + ;; + --variant) + variant="$2" + case $variant in + enb-usrp) + VM_NAME=ci-enb-usrp + ARCHIVES_LOC=enb_usrp + LOG_PATTERN=.Rel14.txt + NB_PATTERN_FILES=4 + BUILD_OPTIONS="--eNB -w USRP" + ;; + basic-sim) + VM_NAME=ci-basic-sim + ARCHIVES_LOC=basic_sim + LOG_PATTERN=basic_simulator + NB_PATTERN_FILES=2 + BUILD_OPTIONS="--basic-simulator" + ;; + phy-sim) + VM_NAME=ci-phy-sim + ARCHIVES_LOC=phy_sim + LOG_PATTERN=.Rel14.txt + NB_PATTERN_FILES=3 + BUILD_OPTIONS="--phy_simulators" + ;; + cppcheck) + VM_NAME=ci-cppcheck + VM_MEMORY=4096 + ARCHIVES_LOC=cppcheck + LOG_PATTERN=cppcheck.xml + NB_PATTERN_FILES=1 + BUILD_OPTIONS="--enable=warning --force --xml --xml-version=2" + ;; + enb-ethernet) + VM_NAME=ci-enb-ethernet + ARCHIVES_LOC=enb_eth + LOG_PATTERN=.Rel14.txt + NB_PATTERN_FILES=6 + BUILD_OPTIONS="--eNB -t ETHERNET --noS1" + ;; + ue-ethernet) + VM_NAME=ci-ue-ethernet + ARCHIVES_LOC=ue_eth + LOG_PATTERN=.Rel14.txt + NB_PATTERN_FILES=6 + BUILD_OPTIONS="--UE -t ETHERNET --noS1" + ;; + *) + echo "" + echo "Syntax Error: Invalid Variant option -> $variant" + echo "" + variant_usage + exit 1 + esac + shift + shift + ;; + *) + echo "Syntax Error: unknown option: $key" + echo "" + usage + exit 1 +esac +done + +if [ ! -f $JENKINS_WKSP/localZip.zip ] +then + echo "Missing localZip.zip file!" + exit 1 +fi +if [ ! -f /etc/apt/apt.conf.d/01proxy ] +then + echo "Missing /etc/apt/apt.conf.d/01proxy file!" + echo "Is apt-cacher installed and configured?" + exit 1 +fi + +if [ "$JOB_NAME" == "XX" ] || [ "$BUILD_ID" == "XX" ] +then + VM_TEMPLATE=ci- +else + VM_TEMPLATE=${JOB_NAME}-b${BUILD_ID}- +fi + +VM_NAME=`echo $VM_NAME | sed -e "s#ci-#$VM_TEMPLATE#"` +VM_CMDS=${VM_NAME}_cmds.txt +ARCHIVES_LOC=${JENKINS_WKSP}/archives/${ARCHIVES_LOC} + +echo "VM_NAME = $VM_NAME" +echo "VM_CMD_FILE = $VM_CMDS" +echo "JENKINS_WKSP = $JENKINS_WKSP" +echo "ARCHIVES_LOC = $ARCHIVES_LOC" +echo "BUILD_OPTIONS = $BUILD_OPTIONS" + +IS_VM_ALIVE=`uvt-kvm list | grep -c $VM_NAME` + +if [ $IS_VM_ALIVE -eq 0 ] +then + echo "############################################################" + echo "Creating VM ($VM_NAME) on Ubuntu Cloud Image base" + echo "############################################################" + uvt-kvm create $VM_NAME release=xenial --memory $VM_MEMORY --cpu 4 --unsafe-caching --template ci-scripts/template-host.xml +fi + +echo "Waiting for VM to be started" +uvt-kvm wait $VM_NAME --insecure + +VM_IP_ADDR=`uvt-kvm ip $VM_NAME` +echo "$VM_NAME has for IP addr = $VM_IP_ADDR" + +echo "############################################################" +echo "Copying GIT repo into VM ($VM_NAME)" +echo "############################################################" +scp -o StrictHostKeyChecking=no localZip.zip ubuntu@$VM_IP_ADDR:/home/ubuntu +scp -o StrictHostKeyChecking=no /etc/apt/apt.conf.d/01proxy ubuntu@$VM_IP_ADDR:/home/ubuntu + +echo "############################################################" +echo "Running install and build script on VM ($VM_NAME)" +echo "############################################################" +echo "sudo cp 01proxy /etc/apt/apt.conf.d/" > $VM_CMDS +if [[ "$VM_NAME" == *"-cppcheck"* ]] +then + echo "echo \"sudo apt-get --yes --quiet install zip cppcheck \"" >> $VM_CMDS + echo "sudo apt-get update > zip-install.txt 2>&1" >> $VM_CMDS + echo "sudo apt-get --yes install zip cppcheck >> zip-install.txt 2>&1" >> $VM_CMDS +else + echo "echo \"sudo apt-get --yes --quiet install zip subversion libboost-dev \"" >> $VM_CMDS + echo "sudo apt-get update > zip-install.txt 2>&1" >> $VM_CMDS + echo "sudo apt-get --yes install zip subversion libboost-dev >> zip-install.txt 2>&1" >> $VM_CMDS +fi +echo "mkdir tmp" >> $VM_CMDS +echo "cd tmp" >> $VM_CMDS +echo "echo \"unzip -qq -DD ../localZip.zip\"" >> $VM_CMDS +echo "unzip -qq -DD ../localZip.zip" >> $VM_CMDS +if [[ "$VM_NAME" == *"-cppcheck"* ]] +then + echo "mkdir cmake_targets/log" >> $VM_CMDS + echo "cp /home/ubuntu/zip-install.txt cmake_targets/log" >> $VM_CMDS + echo "echo \"cppcheck $BUILD_OPTIONS . \"" >> $VM_CMDS + echo "cppcheck $BUILD_OPTIONS . 2> cmake_targets/log/cppcheck.xml 1> cmake_targets/log/cppcheck_build.txt" >> $VM_CMDS +else + echo "echo \"source oaienv\"" >> $VM_CMDS + echo "source oaienv" >> $VM_CMDS + echo "cd cmake_targets/" >> $VM_CMDS + echo "mkdir log" >> $VM_CMDS + echo "cp /home/ubuntu/zip-install.txt log" >> $VM_CMDS + echo "echo \"./build_oai -I $BUILD_OPTIONS \"" >> $VM_CMDS + echo "./build_oai -I $BUILD_OPTIONS > log/install-build.txt 2>&1" >> $VM_CMDS +fi +ssh -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < $VM_CMDS + +echo "############################################################" +echo "Creating a tmp folder to store results and artifacts" +echo "############################################################" +if [ ! -d $JENKINS_WKSP/archives ] +then + mkdir $JENKINS_WKSP/archives +fi + +if [ ! -d $ARCHIVES_LOC ] +then + mkdir $ARCHIVES_LOC +fi + +scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/*.txt $ARCHIVES_LOC +if [[ "$VM_NAME" == *"-cppcheck"* ]] +then + scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/*.xml $ARCHIVES_LOC +fi + +if [ $KEEP_VM_ALIVE -eq 0 ] +then + echo "############################################################" + echo "Destroying VM" + echo "############################################################" + uvt-kvm destroy $VM_NAME + ssh-keygen -R $VM_IP_ADDR +fi +rm -f $VM_CMDS + +echo "############################################################" +echo "Checking build status" +echo "############################################################" + +LOG_FILES=`ls $ARCHIVES_LOC/*.txt $ARCHIVES_LOC/*.xml` +STATUS=0 +NB_FOUND_FILES=0 + +for FULLFILE in $LOG_FILES +do + if [[ $FULLFILE == *"$LOG_PATTERN"* ]] + then + filename=$(basename -- "$FULLFILE") + if [ "$LOG_PATTERN" == ".Rel14.txt" ] + then + PASS_PATTERN=`echo $filename | sed -e "s#$LOG_PATTERN##"` + fi + if [ "$LOG_PATTERN" == "basic_simulator" ] + then + PASS_PATTERN="lte-" + fi + if [ "$LOG_PATTERN" == "cppcheck.xml" ] + then + PASS_PATTERN="results version" + LOCAL_STAT=`egrep -c "$PASS_PATTERN" $FULLFILE` + else + LOCAL_STAT=`egrep -c "Built target $PASS_PATTERN" $FULLFILE` + fi + if [ $LOCAL_STAT -eq 0 ]; then STATUS=-1; fi + NB_FOUND_FILES=$((NB_FOUND_FILES + 1)) + fi +done + +if [ $NB_PATTERN_FILES -ne $NB_FOUND_FILES ]; then STATUS=-1; fi + +if [ $STATUS -eq 0 ] +then + echo "STATUS seems OK" +else + echo "STATUS failed?" +fi +exit $STATUS diff --git a/ci-scripts/checkAddedWarnings.sh b/ci-scripts/checkAddedWarnings.sh new file mode 100755 index 0000000000..609261becf --- /dev/null +++ b/ci-scripts/checkAddedWarnings.sh @@ -0,0 +1,144 @@ +#!/bin/bash +#/* +# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more +# * contributor license agreements. See the NOTICE file distributed with +# * this work for additional information regarding copyright ownership. +# * The OpenAirInterface Software Alliance licenses this file to You under +# * the OAI Public License, Version 1.1 (the "License"); you may not use this file +# * except in compliance with the License. +# * You may obtain a copy of the License at +# * +# * http://www.openairinterface.org/?page_id=698 +# * +# * Unless required by applicable law or agreed to in writing, software +# * distributed under the License is distributed on an "AS IS" BASIS, +# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# * See the License for the specific language governing permissions and +# * limitations under the License. +# *------------------------------------------------------------------------------- +# * For more information about the OpenAirInterface (OAI) Software Alliance: +# * contact@openairinterface.org +# */ + +function usage { + echo "OAI Warning Check script" + echo " Original Author: Raphael Defosseux" + echo "" + echo "Usage:" + echo "------" + echo " checkAddedWarnings.sh [OPTIONS]" + echo "" + echo "Options:" + echo "--------" + echo " --src-branch #### OR -sb ####" + echo " Specify the source branch of the merge request." + echo "" + echo " --target-branch #### OR -tb ####" + echo " Specify the target branch of the merge request (usually develop)." + echo "" + echo " --help OR -h" + echo " Print this help message." + echo "" +} + +if [ $# -ne 4 ] && [ $# -ne 1 ] +then + echo "Syntax Error: not the correct number of arguments" + echo "" + usage + exit 1 +fi + +checker=0 +while [[ $# -gt 0 ]] +do +key="$1" + +case $key in + -h|--help) + shift + usage + exit 0 + ;; + -sb|--src-branch) + SOURCE_BRANCH="$2" + let "checker|=0x1" + shift + shift + ;; + -tb|--target-branch) + TARGET_BRANCH="$2" + let "checker|=0x2" + shift + shift + ;; + *) + echo "Syntax Error: unknown option: $key" + echo "" + usage + exit 1 +esac + +done + + +if [ $checker -ne 3 ] +then + echo "Source Branch is : $SOURCE_BRANCH" + echo "Target Branch is : $TARGET_BRANCH" + echo "" + echo "Syntax Error: missing option" + echo "" + usage + exit 1 +fi + +# Merge request scenario + +MERGE_COMMMIT=`git log -n1 | grep commit | sed -e "s@commit @@"` +TARGET_INIT_COMMIT=`cat .git/refs/remotes/origin/$TARGET_BRANCH` + +echo " ---- Checking the modified files by the merge request ----" +echo "" +echo "Source Branch is : $SOURCE_BRANCH" +echo "Target Branch is : $TARGET_BRANCH" +echo "Merged Commit is : $MERGE_COMMMIT" +echo "Target Init is : $TARGET_INIT_COMMIT" + +# Retrieve the list of modified files since the latest develop commit +MODIFIED_FILES=`git log $TARGET_INIT_COMMIT..$MERGE_COMMMIT --oneline --name-status | egrep "^M|^A" | sed -e "s@^M\t*@@" -e "s@^A\t*@@" | sort | uniq` +NB_WARNINGS_FILES=0 + +# Retrieve list of warnings +LIST_WARNING_FILES=`egrep "error:|warning:" archives/*/*.Rel14.txt archives/*/basic_simulator_*txt | egrep -v "jobserver unavailable|Clock skew detected.|flexran.proto" | sed -e "s#^.*/home/ubuntu/tmp/##" -e "s#^.*/tmp/CI-eNB/##" -e "s#common/utils/.*/itti#common/utils/itti#" | awk -F ":" '{print $1}' | sort | uniq` + +echo "" +echo "List of files that have been modified by the Merge Request AND" +echo " that have compilation warnings/errors" +echo "--------------------------------------------------------------------" +declare -a ARRAYNAME + +for FULLFILE in $MODIFIED_FILES +do + filename=$(basename -- "$FULLFILE") + EXT="${filename##*.}" + if [ $EXT = "c" ] || [ $EXT = "h" ] || [ $EXT = "cpp" ] || [ $EXT = "hpp" ] + then + for WARNING_FILE in $LIST_WARNING_FILES + do + if [ $FULLFILE = $WARNING_FILE ] + then + echo $WARNING_FILE + ARRAYNAME[$NB_WARNINGS_FILES]=$WARNING_FILE + NB_WARNINGS_FILES=$((NB_WARNINGS_FILES + 1)) + fi + done + fi +done + +echo "" +echo "NB Files impacted by warnings/errors in Merge Request: $NB_WARNINGS_FILES" +echo $NB_WARNINGS_FILES > oai_warning_files.txt +echo ${ARRAYNAME[*]} > oai_warning_files_list.txt + +exit 0 diff --git a/ci-scripts/checkCodingFormattingRules.sh b/ci-scripts/checkCodingFormattingRules.sh new file mode 100755 index 0000000000..a18fc67c75 --- /dev/null +++ b/ci-scripts/checkCodingFormattingRules.sh @@ -0,0 +1,141 @@ +#!/bin/bash +#/* +# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more +# * contributor license agreements. See the NOTICE file distributed with +# * this work for additional information regarding copyright ownership. +# * The OpenAirInterface Software Alliance licenses this file to You under +# * the OAI Public License, Version 1.1 (the "License"); you may not use this file +# * except in compliance with the License. +# * You may obtain a copy of the License at +# * +# * http://www.openairinterface.org/?page_id=698 +# * +# * Unless required by applicable law or agreed to in writing, software +# * distributed under the License is distributed on an "AS IS" BASIS, +# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# * See the License for the specific language governing permissions and +# * limitations under the License. +# *------------------------------------------------------------------------------- +# * For more information about the OpenAirInterface (OAI) Software Alliance: +# * contact@openairinterface.org +# */ + +function usage { + echo "OAI Coding / Formatting Guideline Check script" + echo " Original Author: Raphael Defosseux" + echo "" + echo " Requirement: astyle shall be installed" + echo "" + echo " By default (no options) the complete repository will be checked" + echo " In case of merge request, provided source and target branch," + echo " the script will check only the modified files" + echo "" + echo "Usage:" + echo "------" + echo " checkCodingFormattingRules.sh [OPTIONS]" + echo "" + echo "Options:" + echo "--------" + echo " --src-branch #### OR -sb ####" + echo " Specify the source branch of the merge request." + echo "" + echo " --target-branch #### OR -tb ####" + echo " Specify the target branch of the merge request (usually develop)." + echo "" + echo " --help OR -h" + echo " Print this help message." + echo "" +} + +if [ $# -ne 4 ] && [ $# -ne 1 ] && [ $# -ne 0 ] +then + echo "Syntax Error: not the correct number of arguments" + echo "" + usage + exit 1 +fi + +if [ $# -eq 0 ] +then + echo " ---- Checking the whole repository ----" + echo "" + NB_FILES_TO_FORMAT=`astyle --dry-run --options=ci-scripts/astyle-options.txt --recursive *.c *.h | grep -c Formatted ` + echo "Nb Files that do NOT follow OAI rules: $NB_FILES_TO_FORMAT" + echo $NB_FILES_TO_FORMAT > ./oai_rules_result.txt + exit 0 +fi + +checker=0 +while [[ $# -gt 0 ]] +do +key="$1" + +case $key in + -h|--help) + shift + usage + exit 0 + ;; + -sb|--src-branch) + SOURCE_BRANCH="$2" + let "checker|=0x1" + shift + shift + ;; + -tb|--target-branch) + TARGET_BRANCH="$2" + let "checker|=0x2" + shift + shift + ;; + *) + echo "Syntax Error: unknown option: $key" + echo "" + usage + exit 1 +esac + +done + + +if [ $checker -ne 3 ] +then + echo "Source Branch is : $SOURCE_BRANCH" + echo "Target Branch is : $TARGET_BRANCH" + echo "" + echo "Syntax Error: missing option" + echo "" + usage + exit 1 +fi + +# Merge request scenario + +MERGE_COMMMIT=`git log -n1 | grep commit | sed -e "s@commit @@"` +TARGET_INIT_COMMIT=`cat .git/refs/remotes/origin/$TARGET_BRANCH` + +echo " ---- Checking the modified files by the merge request ----" +echo "" +echo "Source Branch is : $SOURCE_BRANCH" +echo "Target Branch is : $TARGET_BRANCH" +echo "Merged Commit is : $MERGE_COMMMIT" +echo "Target Init is : $TARGET_INIT_COMMIT" + +# Retrieve the list of modified files since the latest develop commit +MODIFIED_FILES=`git log $TARGET_INIT_COMMIT..$MERGE_COMMMIT --oneline --name-status | egrep "^M|^A" | sed -e "s@^M\t*@@" -e "s@^A\t*@@" | sort | uniq` +NB_TO_FORMAT=0 +for FULLFILE in $MODIFIED_FILES +do + echo $FULLFILE + filename=$(basename -- "$FULLFILE") + EXT="${filename##*.}" + if [ $EXT = "c" ] || [ $EXT = "h" ] || [ $EXT = "cpp" ] || [ $EXT = "hpp" ] + then + TO_FORMAT=`astyle --dry-run --options=ci-scripts/astyle-options.txt $FULLFILE | grep -c Formatted ` + NB_TO_FORMAT=$((NB_TO_FORMAT + TO_FORMAT)) + fi +done +echo "Nb Files that do NOT follow OAI rules: $NB_TO_FORMAT" +echo $NB_TO_FORMAT > ./oai_rules_result.txt + +exit 0 diff --git a/ci-scripts/conf_files/enb.band7.tm1.100PRB.usrpb210.conf b/ci-scripts/conf_files/enb.band7.tm1.100PRB.usrpb210.conf new file mode 100644 index 0000000000..2bd28a60df --- /dev/null +++ b/ci-scripts/conf_files/enb.band7.tm1.100PRB.usrpb210.conf @@ -0,0 +1,256 @@ +Active_eNBs = ( "eNB-Eurecom-LTEBox"); +# Asn1_verbosity, choice in: none, info, annoying +Asn1_verbosity = "none"; + +eNBs = +( + { + ////////// Identification parameters: + eNB_ID = 0xe00; + + cell_type = "CELL_MACRO_ENB"; + + eNB_name = "eNB-Eurecom-LTEBox"; + + // Tracking area code, 0x0000 and 0xfffe are reserved values + tracking_area_code = "1"; + + mobile_country_code = "208"; + + mobile_network_code = "92"; + + tr_s_preference = "local_mac" + + ////////// Physical parameters: + + component_carriers = ( + { + node_function = "3GPP_eNODEB"; + node_timing = "synch_to_ext_device"; + node_synch_ref = 0; + frame_type = "FDD"; + tdd_config = 3; + tdd_config_s = 0; + prefix_type = "NORMAL"; + eutra_band = 7; + downlink_frequency = 2685000000L; + uplink_frequency_offset = -120000000; + Nid_cell = 0; + N_RB_DL = 100; + Nid_cell_mbsfn = 0; + nb_antenna_ports = 1; + nb_antennas_tx = 1; + nb_antennas_rx = 1; + tx_gain = 90; + rx_gain = 125; + pbch_repetition = "FALSE"; + prach_root = 0; + prach_config_index = 0; + prach_high_speed = "DISABLE"; + prach_zero_correlation = 1; + prach_freq_offset = 2; + pucch_delta_shift = 1; + pucch_nRB_CQI = 0; + pucch_nCS_AN = 0; + pucch_n1_AN = 0; + pdsch_referenceSignalPower = -29; + pdsch_p_b = 0; + pusch_n_SB = 1; + pusch_enable64QAM = "DISABLE"; + pusch_hoppingMode = "interSubFrame"; + pusch_hoppingOffset = 0; + pusch_groupHoppingEnabled = "ENABLE"; + pusch_groupAssignment = 0; + pusch_sequenceHoppingEnabled = "DISABLE"; + pusch_nDMRS1 = 1; + phich_duration = "NORMAL"; + phich_resource = "ONESIXTH"; + srs_enable = "DISABLE"; + /* srs_BandwidthConfig =; + srs_SubframeConfig =; + srs_ackNackST =; + srs_MaxUpPts =;*/ + + pusch_p0_Nominal = -96; + pusch_alpha = "AL1"; + pucch_p0_Nominal = -104; + msg3_delta_Preamble = 6; + pucch_deltaF_Format1 = "deltaF2"; + pucch_deltaF_Format1b = "deltaF3"; + pucch_deltaF_Format2 = "deltaF0"; + pucch_deltaF_Format2a = "deltaF0"; + pucch_deltaF_Format2b = "deltaF0"; + + rach_numberOfRA_Preambles = 64; + rach_preamblesGroupAConfig = "DISABLE"; + /* + rach_sizeOfRA_PreamblesGroupA = ; + rach_messageSizeGroupA = ; + rach_messagePowerOffsetGroupB = ; + */ + rach_powerRampingStep = 4; + rach_preambleInitialReceivedTargetPower = -108; + rach_preambleTransMax = 10; + rach_raResponseWindowSize = 10; + rach_macContentionResolutionTimer = 48; + rach_maxHARQ_Msg3Tx = 4; + + pcch_default_PagingCycle = 128; + pcch_nB = "oneT"; + bcch_modificationPeriodCoeff = 2; + ue_TimersAndConstants_t300 = 1000; + ue_TimersAndConstants_t301 = 1000; + ue_TimersAndConstants_t310 = 1000; + ue_TimersAndConstants_t311 = 10000; + ue_TimersAndConstants_n310 = 20; + ue_TimersAndConstants_n311 = 1; + ue_TransmissionMode = 1; + + //Parameters for SIB18 + rxPool_sc_CP_Len = "normal"; + rxPool_sc_Period = "sf40"; + rxPool_data_CP_Len = "normal"; + rxPool_ResourceConfig_prb_Num = 20; + rxPool_ResourceConfig_prb_Start = 5; + rxPool_ResourceConfig_prb_End = 44; + rxPool_ResourceConfig_offsetIndicator_present = "prSmall"; + rxPool_ResourceConfig_offsetIndicator_choice = 0; + rxPool_ResourceConfig_subframeBitmap_present = "prBs40"; + rxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "00000000000000000000"; + rxPool_ResourceConfig_subframeBitmap_choice_bs_size = 5; + rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0; +/* rxPool_dataHoppingConfig_hoppingParameter = 0; + rxPool_dataHoppingConfig_numSubbands = "ns1"; + rxPool_dataHoppingConfig_rbOffset = 0; + rxPool_commTxResourceUC-ReqAllowed = "TRUE"; +*/ + // Parameters for SIB19 + discRxPool_cp_Len = "normal" + discRxPool_discPeriod = "rf32" + discRxPool_numRetx = 1; + discRxPool_numRepetition = 2; + discRxPool_ResourceConfig_prb_Num = 5; + discRxPool_ResourceConfig_prb_Start = 3; + discRxPool_ResourceConfig_prb_End = 21; + discRxPool_ResourceConfig_offsetIndicator_present = "prSmall"; + discRxPool_ResourceConfig_offsetIndicator_choice = 0; + discRxPool_ResourceConfig_subframeBitmap_present = "prBs40"; + discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "f0ffffffff"; + discRxPool_ResourceConfig_subframeBitmap_choice_bs_size = 5; + discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0; + + } + ); + + + srb1_parameters : + { + # timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500] + timer_poll_retransmit = 80; + + # timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200] + timer_reordering = 35; + + # timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500] + timer_status_prohibit = 0; + + # poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)] + poll_pdu = 4; + + # poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)] + poll_byte = 99999; + + # max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32] + max_retx_threshold = 4; + } + + # ------- SCTP definitions + SCTP : + { + # Number of streams to use in input/output + SCTP_INSTREAMS = 2; + SCTP_OUTSTREAMS = 2; + }; + + + ////////// MME parameters: + mme_ip_address = ( { ipv4 = "192.168.12.26"; + ipv6 = "192:168:30::17"; + active = "yes"; + preference = "ipv4"; + } + ); + + NETWORK_INTERFACES : + { + + ENB_INTERFACE_NAME_FOR_S1_MME = "eth0"; + ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.111/24"; + ENB_INTERFACE_NAME_FOR_S1U = "eth0"; + ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.111/24"; + ENB_PORT_FOR_S1U = 2152; # Spec 2152 + }; + } +); + +MACRLCs = ( + { + num_cc = 1; + tr_s_preference = "local_L1"; + tr_n_preference = "local_RRC"; + phy_test_mode = 0; + puSch10xSnr = 200; + puCch10xSnr = 200; + } +); + +L1s = ( + { + num_cc = 1; + tr_n_preference = "local_mac"; + } +); + +RUs = ( + { + local_rf = "yes" + nb_tx = 1 + nb_rx = 1 + att_tx = 0 + att_rx = 0; + bands = [7]; + max_pdschReferenceSignalPower = -27; + max_rxgain = 115; + eNB_instances = [0]; + + } +); + +NETWORK_CONTROLLER : +{ + FLEXRAN_ENABLED = "no"; + FLEXRAN_INTERFACE_NAME = "lo"; + FLEXRAN_IPV4_ADDRESS = "127.0.0.1"; + FLEXRAN_PORT = 2210; + FLEXRAN_CACHE = "/mnt/oai_agent_cache"; + FLEXRAN_AWAIT_RECONF = "no"; +}; + + log_config : + { + global_log_level ="info"; + global_log_verbosity ="medium"; + hw_log_level ="info"; + hw_log_verbosity ="medium"; + phy_log_level ="info"; + phy_log_verbosity ="medium"; + mac_log_level ="info"; + mac_log_verbosity ="high"; + rlc_log_level ="info"; + rlc_log_verbosity ="medium"; + pdcp_log_level ="info"; + pdcp_log_verbosity ="medium"; + rrc_log_level ="info"; + rrc_log_verbosity ="medium"; + }; + diff --git a/ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf b/ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf new file mode 100644 index 0000000000..102fc89a13 --- /dev/null +++ b/ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf @@ -0,0 +1,256 @@ +Active_eNBs = ( "eNB-Eurecom-LTEBox"); +# Asn1_verbosity, choice in: none, info, annoying +Asn1_verbosity = "none"; + +eNBs = +( + { + ////////// Identification parameters: + eNB_ID = 0xe00; + + cell_type = "CELL_MACRO_ENB"; + + eNB_name = "eNB-Eurecom-LTEBox"; + + // Tracking area code, 0x0000 and 0xfffe are reserved values + tracking_area_code = "1"; + + mobile_country_code = "208"; + + mobile_network_code = "92"; + + tr_s_preference = "local_mac" + + ////////// Physical parameters: + + component_carriers = ( + { + node_function = "3GPP_eNODEB"; + node_timing = "synch_to_ext_device"; + node_synch_ref = 0; + frame_type = "FDD"; + tdd_config = 3; + tdd_config_s = 0; + prefix_type = "NORMAL"; + eutra_band = 7; + downlink_frequency = 2685000000L; + uplink_frequency_offset = -120000000; + Nid_cell = 0; + N_RB_DL = 25; + Nid_cell_mbsfn = 0; + nb_antenna_ports = 1; + nb_antennas_tx = 1; + nb_antennas_rx = 1; + tx_gain = 90; + rx_gain = 125; + pbch_repetition = "FALSE"; + prach_root = 0; + prach_config_index = 0; + prach_high_speed = "DISABLE"; + prach_zero_correlation = 1; + prach_freq_offset = 2; + pucch_delta_shift = 1; + pucch_nRB_CQI = 0; + pucch_nCS_AN = 0; + pucch_n1_AN = 0; + pdsch_referenceSignalPower = -25; + pdsch_p_b = 0; + pusch_n_SB = 1; + pusch_enable64QAM = "DISABLE"; + pusch_hoppingMode = "interSubFrame"; + pusch_hoppingOffset = 0; + pusch_groupHoppingEnabled = "ENABLE"; + pusch_groupAssignment = 0; + pusch_sequenceHoppingEnabled = "DISABLE"; + pusch_nDMRS1 = 1; + phich_duration = "NORMAL"; + phich_resource = "ONESIXTH"; + srs_enable = "DISABLE"; + /* srs_BandwidthConfig =; + srs_SubframeConfig =; + srs_ackNackST =; + srs_MaxUpPts =;*/ + + pusch_p0_Nominal = -96; + pusch_alpha = "AL1"; + pucch_p0_Nominal = -104; + msg3_delta_Preamble = 6; + pucch_deltaF_Format1 = "deltaF2"; + pucch_deltaF_Format1b = "deltaF3"; + pucch_deltaF_Format2 = "deltaF0"; + pucch_deltaF_Format2a = "deltaF0"; + pucch_deltaF_Format2b = "deltaF0"; + + rach_numberOfRA_Preambles = 64; + rach_preamblesGroupAConfig = "DISABLE"; + /* + rach_sizeOfRA_PreamblesGroupA = ; + rach_messageSizeGroupA = ; + rach_messagePowerOffsetGroupB = ; + */ + rach_powerRampingStep = 4; + rach_preambleInitialReceivedTargetPower = -108; + rach_preambleTransMax = 10; + rach_raResponseWindowSize = 10; + rach_macContentionResolutionTimer = 48; + rach_maxHARQ_Msg3Tx = 4; + + pcch_default_PagingCycle = 128; + pcch_nB = "oneT"; + bcch_modificationPeriodCoeff = 2; + ue_TimersAndConstants_t300 = 1000; + ue_TimersAndConstants_t301 = 1000; + ue_TimersAndConstants_t310 = 1000; + ue_TimersAndConstants_t311 = 10000; + ue_TimersAndConstants_n310 = 20; + ue_TimersAndConstants_n311 = 1; + ue_TransmissionMode = 1; + + //Parameters for SIB18 + rxPool_sc_CP_Len = "normal"; + rxPool_sc_Period = "sf40"; + rxPool_data_CP_Len = "normal"; + rxPool_ResourceConfig_prb_Num = 20; + rxPool_ResourceConfig_prb_Start = 5; + rxPool_ResourceConfig_prb_End = 44; + rxPool_ResourceConfig_offsetIndicator_present = "prSmall"; + rxPool_ResourceConfig_offsetIndicator_choice = 0; + rxPool_ResourceConfig_subframeBitmap_present = "prBs40"; + rxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "00000000000000000000"; + rxPool_ResourceConfig_subframeBitmap_choice_bs_size = 5; + rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0; +/* rxPool_dataHoppingConfig_hoppingParameter = 0; + rxPool_dataHoppingConfig_numSubbands = "ns1"; + rxPool_dataHoppingConfig_rbOffset = 0; + rxPool_commTxResourceUC-ReqAllowed = "TRUE"; +*/ + // Parameters for SIB19 + discRxPool_cp_Len = "normal" + discRxPool_discPeriod = "rf32" + discRxPool_numRetx = 1; + discRxPool_numRepetition = 2; + discRxPool_ResourceConfig_prb_Num = 5; + discRxPool_ResourceConfig_prb_Start = 3; + discRxPool_ResourceConfig_prb_End = 21; + discRxPool_ResourceConfig_offsetIndicator_present = "prSmall"; + discRxPool_ResourceConfig_offsetIndicator_choice = 0; + discRxPool_ResourceConfig_subframeBitmap_present = "prBs40"; + discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "f0ffffffff"; + discRxPool_ResourceConfig_subframeBitmap_choice_bs_size = 5; + discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0; + + } + ); + + + srb1_parameters : + { + # timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500] + timer_poll_retransmit = 80; + + # timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200] + timer_reordering = 35; + + # timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500] + timer_status_prohibit = 0; + + # poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)] + poll_pdu = 4; + + # poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)] + poll_byte = 99999; + + # max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32] + max_retx_threshold = 4; + } + + # ------- SCTP definitions + SCTP : + { + # Number of streams to use in input/output + SCTP_INSTREAMS = 2; + SCTP_OUTSTREAMS = 2; + }; + + + ////////// MME parameters: + mme_ip_address = ( { ipv4 = "192.168.12.26"; + ipv6 = "192:168:30::17"; + active = "yes"; + preference = "ipv4"; + } + ); + + NETWORK_INTERFACES : + { + + ENB_INTERFACE_NAME_FOR_S1_MME = "eth0"; + ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.111/24"; + ENB_INTERFACE_NAME_FOR_S1U = "eth0"; + ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.111/24"; + ENB_PORT_FOR_S1U = 2152; # Spec 2152 + }; + } +); + +MACRLCs = ( + { + num_cc = 1; + tr_s_preference = "local_L1"; + tr_n_preference = "local_RRC"; + phy_test_mode = 0; + puSch10xSnr = 200; + puCch10xSnr = 200; + } +); + +L1s = ( + { + num_cc = 1; + tr_n_preference = "local_mac"; + } +); + +RUs = ( + { + local_rf = "yes" + nb_tx = 1 + nb_rx = 1 + att_tx = 0 + att_rx = 0; + bands = [7]; + max_pdschReferenceSignalPower = -27; + max_rxgain = 115; + eNB_instances = [0]; + + } +); + +NETWORK_CONTROLLER : +{ + FLEXRAN_ENABLED = "no"; + FLEXRAN_INTERFACE_NAME = "lo"; + FLEXRAN_IPV4_ADDRESS = "127.0.0.1"; + FLEXRAN_PORT = 2210; + FLEXRAN_CACHE = "/mnt/oai_agent_cache"; + FLEXRAN_AWAIT_RECONF = "no"; +}; + + log_config : + { + global_log_level ="info"; + global_log_verbosity ="medium"; + hw_log_level ="info"; + hw_log_verbosity ="medium"; + phy_log_level ="info"; + phy_log_verbosity ="medium"; + mac_log_level ="info"; + mac_log_verbosity ="high"; + rlc_log_level ="info"; + rlc_log_verbosity ="medium"; + pdcp_log_level ="info"; + pdcp_log_verbosity ="medium"; + rrc_log_level ="info"; + rrc_log_verbosity ="medium"; + }; + diff --git a/ci-scripts/conf_files/enb.band7.tm1.50PRB.usrpb210.conf b/ci-scripts/conf_files/enb.band7.tm1.50PRB.usrpb210.conf new file mode 100644 index 0000000000..fe6e2f0b59 --- /dev/null +++ b/ci-scripts/conf_files/enb.band7.tm1.50PRB.usrpb210.conf @@ -0,0 +1,256 @@ +Active_eNBs = ( "eNB-Eurecom-LTEBox"); +# Asn1_verbosity, choice in: none, info, annoying +Asn1_verbosity = "none"; + +eNBs = +( + { + ////////// Identification parameters: + eNB_ID = 0xe00; + + cell_type = "CELL_MACRO_ENB"; + + eNB_name = "eNB-Eurecom-LTEBox"; + + // Tracking area code, 0x0000 and 0xfffe are reserved values + tracking_area_code = "1"; + + mobile_country_code = "208"; + + mobile_network_code = "92"; + + tr_s_preference = "local_mac" + + ////////// Physical parameters: + + component_carriers = ( + { + node_function = "3GPP_eNODEB"; + node_timing = "synch_to_ext_device"; + node_synch_ref = 0; + frame_type = "FDD"; + tdd_config = 3; + tdd_config_s = 0; + prefix_type = "NORMAL"; + eutra_band = 7; + downlink_frequency = 2685000000L; + uplink_frequency_offset = -120000000; + Nid_cell = 0; + N_RB_DL = 50; + Nid_cell_mbsfn = 0; + nb_antenna_ports = 1; + nb_antennas_tx = 1; + nb_antennas_rx = 1; + tx_gain = 90; + rx_gain = 125; + pbch_repetition = "FALSE"; + prach_root = 0; + prach_config_index = 0; + prach_high_speed = "DISABLE"; + prach_zero_correlation = 1; + prach_freq_offset = 2; + pucch_delta_shift = 1; + pucch_nRB_CQI = 0; + pucch_nCS_AN = 0; + pucch_n1_AN = 0; + pdsch_referenceSignalPower = -27; + pdsch_p_b = 0; + pusch_n_SB = 1; + pusch_enable64QAM = "DISABLE"; + pusch_hoppingMode = "interSubFrame"; + pusch_hoppingOffset = 0; + pusch_groupHoppingEnabled = "ENABLE"; + pusch_groupAssignment = 0; + pusch_sequenceHoppingEnabled = "DISABLE"; + pusch_nDMRS1 = 1; + phich_duration = "NORMAL"; + phich_resource = "ONESIXTH"; + srs_enable = "DISABLE"; + /* srs_BandwidthConfig =; + srs_SubframeConfig =; + srs_ackNackST =; + srs_MaxUpPts =;*/ + + pusch_p0_Nominal = -96; + pusch_alpha = "AL1"; + pucch_p0_Nominal = -104; + msg3_delta_Preamble = 6; + pucch_deltaF_Format1 = "deltaF2"; + pucch_deltaF_Format1b = "deltaF3"; + pucch_deltaF_Format2 = "deltaF0"; + pucch_deltaF_Format2a = "deltaF0"; + pucch_deltaF_Format2b = "deltaF0"; + + rach_numberOfRA_Preambles = 64; + rach_preamblesGroupAConfig = "DISABLE"; + /* + rach_sizeOfRA_PreamblesGroupA = ; + rach_messageSizeGroupA = ; + rach_messagePowerOffsetGroupB = ; + */ + rach_powerRampingStep = 4; + rach_preambleInitialReceivedTargetPower = -108; + rach_preambleTransMax = 10; + rach_raResponseWindowSize = 10; + rach_macContentionResolutionTimer = 48; + rach_maxHARQ_Msg3Tx = 4; + + pcch_default_PagingCycle = 128; + pcch_nB = "oneT"; + bcch_modificationPeriodCoeff = 2; + ue_TimersAndConstants_t300 = 1000; + ue_TimersAndConstants_t301 = 1000; + ue_TimersAndConstants_t310 = 1000; + ue_TimersAndConstants_t311 = 10000; + ue_TimersAndConstants_n310 = 20; + ue_TimersAndConstants_n311 = 1; + ue_TransmissionMode = 1; + + //Parameters for SIB18 + rxPool_sc_CP_Len = "normal"; + rxPool_sc_Period = "sf40"; + rxPool_data_CP_Len = "normal"; + rxPool_ResourceConfig_prb_Num = 20; + rxPool_ResourceConfig_prb_Start = 5; + rxPool_ResourceConfig_prb_End = 44; + rxPool_ResourceConfig_offsetIndicator_present = "prSmall"; + rxPool_ResourceConfig_offsetIndicator_choice = 0; + rxPool_ResourceConfig_subframeBitmap_present = "prBs40"; + rxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "00000000000000000000"; + rxPool_ResourceConfig_subframeBitmap_choice_bs_size = 5; + rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0; +/* rxPool_dataHoppingConfig_hoppingParameter = 0; + rxPool_dataHoppingConfig_numSubbands = "ns1"; + rxPool_dataHoppingConfig_rbOffset = 0; + rxPool_commTxResourceUC-ReqAllowed = "TRUE"; +*/ + // Parameters for SIB19 + discRxPool_cp_Len = "normal" + discRxPool_discPeriod = "rf32" + discRxPool_numRetx = 1; + discRxPool_numRepetition = 2; + discRxPool_ResourceConfig_prb_Num = 5; + discRxPool_ResourceConfig_prb_Start = 3; + discRxPool_ResourceConfig_prb_End = 21; + discRxPool_ResourceConfig_offsetIndicator_present = "prSmall"; + discRxPool_ResourceConfig_offsetIndicator_choice = 0; + discRxPool_ResourceConfig_subframeBitmap_present = "prBs40"; + discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "f0ffffffff"; + discRxPool_ResourceConfig_subframeBitmap_choice_bs_size = 5; + discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0; + + } + ); + + + srb1_parameters : + { + # timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500] + timer_poll_retransmit = 80; + + # timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200] + timer_reordering = 35; + + # timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500] + timer_status_prohibit = 0; + + # poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)] + poll_pdu = 4; + + # poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)] + poll_byte = 99999; + + # max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32] + max_retx_threshold = 4; + } + + # ------- SCTP definitions + SCTP : + { + # Number of streams to use in input/output + SCTP_INSTREAMS = 2; + SCTP_OUTSTREAMS = 2; + }; + + + ////////// MME parameters: + mme_ip_address = ( { ipv4 = "192.168.12.26"; + ipv6 = "192:168:30::17"; + active = "yes"; + preference = "ipv4"; + } + ); + + NETWORK_INTERFACES : + { + + ENB_INTERFACE_NAME_FOR_S1_MME = "eth0"; + ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.111/24"; + ENB_INTERFACE_NAME_FOR_S1U = "eth0"; + ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.111/24"; + ENB_PORT_FOR_S1U = 2152; # Spec 2152 + }; + } +); + +MACRLCs = ( + { + num_cc = 1; + tr_s_preference = "local_L1"; + tr_n_preference = "local_RRC"; + phy_test_mode = 0; + puSch10xSnr = 200; + puCch10xSnr = 200; + } +); + +L1s = ( + { + num_cc = 1; + tr_n_preference = "local_mac"; + } +); + +RUs = ( + { + local_rf = "yes" + nb_tx = 1 + nb_rx = 1 + att_tx = 0 + att_rx = 0; + bands = [7]; + max_pdschReferenceSignalPower = -27; + max_rxgain = 115; + eNB_instances = [0]; + + } +); + +NETWORK_CONTROLLER : +{ + FLEXRAN_ENABLED = "no"; + FLEXRAN_INTERFACE_NAME = "lo"; + FLEXRAN_IPV4_ADDRESS = "127.0.0.1"; + FLEXRAN_PORT = 2210; + FLEXRAN_CACHE = "/mnt/oai_agent_cache"; + FLEXRAN_AWAIT_RECONF = "no"; +}; + + log_config : + { + global_log_level ="info"; + global_log_verbosity ="medium"; + hw_log_level ="info"; + hw_log_verbosity ="medium"; + phy_log_level ="info"; + phy_log_verbosity ="medium"; + mac_log_level ="info"; + mac_log_verbosity ="high"; + rlc_log_level ="info"; + rlc_log_verbosity ="medium"; + pdcp_log_level ="info"; + pdcp_log_verbosity ="medium"; + rrc_log_level ="info"; + rrc_log_verbosity ="medium"; + }; + diff --git a/ci-scripts/createVM.sh b/ci-scripts/createVM.sh new file mode 100755 index 0000000000..1c3099e843 --- /dev/null +++ b/ci-scripts/createVM.sh @@ -0,0 +1,191 @@ +#!/bin/bash +#/* +# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more +# * contributor license agreements. See the NOTICE file distributed with +# * this work for additional information regarding copyright ownership. +# * The OpenAirInterface Software Alliance licenses this file to You under +# * the OAI Public License, Version 1.1 (the "License"); you may not use this file +# * except in compliance with the License. +# * You may obtain a copy of the License at +# * +# * http://www.openairinterface.org/?page_id=698 +# * +# * Unless required by applicable law or agreed to in writing, software +# * distributed under the License is distributed on an "AS IS" BASIS, +# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# * See the License for the specific language governing permissions and +# * limitations under the License. +# *------------------------------------------------------------------------------- +# * For more information about the OpenAirInterface (OAI) Software Alliance: +# * contact@openairinterface.org +# */ + +function usage { + echo "OAI VM Creation script" + echo " Original Author: Raphael Defosseux" + echo " Requirements:" + echo " -- uvtool uvtool-libvirt apt-cacher" + echo " -- xenial image already synced" + echo " Default:" + echo " -- eNB with USRP" + echo "" + echo "Usage:" + echo "------" + echo " createVM.sh [OPTIONS]" + echo "" + echo "Options:" + echo "--------" + echo " --job-name #### OR -jn ####" + echo " Specify the name of the Jenkins job." + echo "" + echo " --build-id #### OR -id ####" + echo " Specify the build ID of the Jenkins job." + echo "" + echo " --variant enb-usrp OR -v1" + echo " --variant basic-sim OR -v2" + echo " --variant phy-sim OR -v3" + echo " --variant cppcheck OR -v4" + echo " --variant enb-ethernet OR -v7" + echo " --variant ue-ethernet OR -v8" + echo " Specify the variant to build." + echo "" + echo " --help OR -h" + echo " Print this help message." + echo "" +} + +function variant_usage { + echo "OAI VM Build Check script" + echo " Original Author: Raphael Defosseux" + echo "" + echo " --variant enb-usrp OR -v1" + echo " --variant basic-sim OR -v2" + echo " --variant phy-sim OR -v3" + echo " --variant cppcheck OR -v4" + echo " --variant enb-ethernet OR -v7" + echo " --variant ue-ethernet OR -v8" + echo "" +} + +if [ $# -lt 1 ] || [ $# -gt 6 ] +then + echo "Syntax Error: not the correct number of arguments" + echo "" + usage + exit 1 +fi + +VM_TEMPLATE=ci- +JOB_NAME=XX +BUILD_ID=XX +VM_NAME=ci-enb-usrp +VM_MEMORY=2048 + +while [[ $# -gt 0 ]] +do +key="$1" + +case $key in + -h|--help) + shift + usage + exit 0 + ;; + -jn|--job-name) + JOB_NAME="$2" + shift + shift + ;; + -id|--build-id) + BUILD_ID="$2" + shift + shift + ;; + -v1) + VM_NAME=ci-enb-usrp + shift + ;; + -v2) + VM_NAME=ci-basic-sim + shift + ;; + -v3) + VM_NAME=ci-phy-sim + shift + ;; + -v4) + VM_NAME=ci-cppcheck + VM_MEMORY=4096 + shift + ;; + -v7) + VM_NAME=ci-enb-ethernet + shift + ;; + -v8) + VM_NAME=ci-ue-ethernet + shift + ;; + --variant) + variant="$2" + case $variant in + enb-usrp) + VM_NAME=ci-enb-usrp + ;; + basic-sim) + VM_NAME=ci-basic-sim + ;; + phy-sim) + VM_NAME=ci-phy-sim + ;; + cppcheck) + VM_NAME=ci-cppcheck + VM_MEMORY=4096 + ;; + enb-ethernet) + VM_NAME=ci-enb-ethernet + ;; + ue-ethernet) + VM_NAME=ci-ue-ethernet + ;; + *) + echo "" + echo "Syntax Error: Invalid Variant option -> $variant" + echo "" + variant_usage + exit 1 + esac + shift + shift + ;; + *) + echo "Syntax Error: unknown option: $key" + echo "" + usage + exit 1 +esac +done + +if [ "$JOB_NAME" == "XX" ] || [ "$BUILD_ID" == "XX" ] +then + VM_TEMPLATE=ci- +else + VM_TEMPLATE=${JOB_NAME}-b${BUILD_ID}- +fi + +VM_NAME=`echo $VM_NAME | sed -e "s#ci-#$VM_TEMPLATE#"` +VM_CMDS=${VM_NAME}_cmds.txt + +echo "VM_NAME = $VM_NAME" +echo "VM_MEMORY = $VM_MEMORY MBytes" + +echo "############################################################" +echo "Creating VM ($VM_NAME) on Ubuntu Cloud Image base" +echo "############################################################" +uvt-kvm create $VM_NAME release=xenial --memory $VM_MEMORY --cpu 4 --unsafe-caching --template ci-scripts/template-host.xml +echo "Waiting for VM to be started" +uvt-kvm wait $VM_NAME --insecure + +VM_IP_ADDR=`uvt-kvm ip $VM_NAME` +echo "$VM_NAME has for IP addr = $VM_IP_ADDR" +exit 0 diff --git a/ci-scripts/destroyAllRunningVM.sh b/ci-scripts/destroyAllRunningVM.sh new file mode 100755 index 0000000000..5e152bc590 --- /dev/null +++ b/ci-scripts/destroyAllRunningVM.sh @@ -0,0 +1,101 @@ +#!/bin/bash +#/* +# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more +# * contributor license agreements. See the NOTICE file distributed with +# * this work for additional information regarding copyright ownership. +# * The OpenAirInterface Software Alliance licenses this file to You under +# * the OAI Public License, Version 1.1 (the "License"); you may not use this file +# * except in compliance with the License. +# * You may obtain a copy of the License at +# * +# * http://www.openairinterface.org/?page_id=698 +# * +# * Unless required by applicable law or agreed to in writing, software +# * distributed under the License is distributed on an "AS IS" BASIS, +# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# * See the License for the specific language governing permissions and +# * limitations under the License. +# *------------------------------------------------------------------------------- +# * For more information about the OpenAirInterface (OAI) Software Alliance: +# * contact@openairinterface.org +# */ + +function usage { + echo "OAI VM Destroy script" + echo " Original Author: Raphael Defosseux" + echo "" + echo "Usage:" + echo "------" + echo " destroyAllRunningVM.sh [OPTIONS]" + echo "" + echo "Options:" + echo "--------" + echo " --job-name #### OR -jn ####" + echo " Specify the name of the Jenkins job." + echo "" + echo " --build-id #### OR -id ####" + echo " Specify the build ID of the Jenkins job." + echo "" + echo " --help OR -h" + echo " Print this help message." + echo "" +} + +if [ $# -gt 4 ] +then + echo "Syntax Error: not the correct number of arguments" + echo "" + usage + exit 1 +fi + +VM_TEMPLATE=ci- +JOB_NAME=XX +BUILD_ID=XX + +while [[ $# -gt 0 ]] +do +key="$1" +case $key in + -h|--help) + shift + usage + exit 0 + ;; + -jn|--job-name) + JOB_NAME="$2" + shift + shift + ;; + -id|--build-id) + BUILD_ID="$2" + shift + shift + ;; + *) + echo "Syntax Error: unknown option: $key" + echo "" + usage + exit 1 +esac +done + +if [ "$JOB_NAME" == "XX" ] || [ "$BUILD_ID" == "XX" ] +then + VM_TEMPLATE=ci- +else + VM_TEMPLATE=${JOB_NAME}-b${BUILD_ID}- +fi + +LIST_CI_VM=`uvt-kvm list | grep $VM_TEMPLATE` + +for CI_VM in $LIST_CI_VM +do + VM_IP_ADDR=`uvt-kvm ip $CI_VM` + echo "VM to destroy: $CI_VM -- IP $VM_IP_ADDR" + uvt-kvm destroy $CI_VM + ssh-keygen -R $VM_IP_ADDR +done + +exit 0 + diff --git a/ci-scripts/doGitLabMerge.sh b/ci-scripts/doGitLabMerge.sh new file mode 100755 index 0000000000..dfe2f02b55 --- /dev/null +++ b/ci-scripts/doGitLabMerge.sh @@ -0,0 +1,113 @@ +#!/bin/bash + +function usage { + echo "OAI GitLab merge request applying script" + echo " Original Author: Raphael Defosseux" + echo "" + echo "Usage:" + echo "------" + echo "" + echo " doGitLabMerge.sh [OPTIONS] [MANDATORY_OPTIONS]" + echo "" + echo "Mandatory Options:" + echo "------------------" + echo "" + echo " --src-branch #### OR -sb ####" + echo " Specify the source branch of the merge request." + echo "" + echo " --src-commit #### OR -sc ####" + echo " Specify the source commit ID (SHA-1) of the merge request." + echo "" + echo " --target-branch #### OR -tb ####" + echo " Specify the target branch of the merge request (usually develop)." + echo "" + echo " --target-commit #### OR -tc ####" + echo " Specify the target commit ID (SHA-1) of the merge request." + echo "" + echo "Options:" + echo "--------" + echo " --help OR -h" + echo " Print this help message." + echo "" +} + +if [ $# -ne 8 ] && [ $# -ne 1 ] +then + echo "Syntax Error: not the correct number of arguments" + echo "" + usage + exit 1 +fi + +checker=0 +while [[ $# -gt 0 ]] +do +key="$1" + +case $key in + -h|--help) + shift + usage + exit 0 + ;; + -sb|--src-branch) + SOURCE_BRANCH="$2" + let "checker|=0x1" + shift + shift + ;; + -sc|--src-commit) + SOURCE_COMMIT_ID="$2" + let "checker|=0x2" + shift + shift + ;; + -tb|--target-branch) + TARGET_BRANCH="$2" + let "checker|=0x4" + shift + shift + ;; + -tc|--target-commit) + TARGET_COMMIT_ID="$2" + let "checker|=0x8" + shift + shift + ;; + *) + echo "Syntax Error: unknown option: $key" + echo "" + usage + exit 1 +esac + +done + +echo "Source Branch is : $SOURCE_BRANCH" +echo "Source Commit ID is : $SOURCE_COMMIT_ID" +echo "Target Branch is : $TARGET_BRANCH" +echo "Target Commit ID is : $TARGET_COMMIT_ID" + +if [ $checker -ne 15 ] +then + echo "" + echo "Syntax Error: missing option" + echo "" + usage + exit 1 +fi + +git config user.email "jenkins@openairinterface.org" +git config user.name "OAI Jenkins" + +git checkout -f $SOURCE_COMMIT_ID + +git merge --ff $TARGET_COMMIT_ID -m "Temporary merge for CI" + +STATUS=`git status | egrep -c "You have unmerged paths.|fix conflicts"` +if [ $STATUS -ne 0 ] +then + echo "There are merge conflicts.. Cannot perform further build tasks" + STATUS=-1 +fi +exit $STATUS diff --git a/ci-scripts/fail.sh b/ci-scripts/fail.sh new file mode 100755 index 0000000000..edc7247e3f --- /dev/null +++ b/ci-scripts/fail.sh @@ -0,0 +1,23 @@ +#!/bin/bash +#/* +# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more +# * contributor license agreements. See the NOTICE file distributed with +# * this work for additional information regarding copyright ownership. +# * The OpenAirInterface Software Alliance licenses this file to You under +# * the OAI Public License, Version 1.1 (the "License"); you may not use this file +# * except in compliance with the License. +# * You may obtain a copy of the License at +# * +# * http://www.openairinterface.org/?page_id=698 +# * +# * Unless required by applicable law or agreed to in writing, software +# * distributed under the License is distributed on an "AS IS" BASIS, +# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# * See the License for the specific language governing permissions and +# * limitations under the License. +# *------------------------------------------------------------------------------- +# * For more information about the OpenAirInterface (OAI) Software Alliance: +# * contact@openairinterface.org +# */ + +exit -1 diff --git a/ci-scripts/main.py b/ci-scripts/main.py new file mode 100644 index 0000000000..4ba2fbcf5b --- /dev/null +++ b/ci-scripts/main.py @@ -0,0 +1,1433 @@ +#/* +# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more +# * contributor license agreements. See the NOTICE file distributed with +# * this work for additional information regarding copyright ownership. +# * The OpenAirInterface Software Alliance licenses this file to You under +# * the OAI Public License, Version 1.1 (the "License"); you may not use this file +# * except in compliance with the License. +# * You may obtain a copy of the License at +# * +# * http://www.openairinterface.org/?page_id=698 +# * +# * Unless required by applicable law or agreed to in writing, software +# * distributed under the License is distributed on an "AS IS" BASIS, +# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# * See the License for the specific language governing permissions and +# * limitations under the License. +# *------------------------------------------------------------------------------- +# * For more information about the OpenAirInterface (OAI) Software Alliance: +# * contact@openairinterface.org +# */ +#--------------------------------------------------------------------- +# Python for CI of OAI-eNB + COTS-UE +# +# Required Python Version +# Python 3.x +# +# Required Python Package +# pexpect +#--------------------------------------------------------------------- + +#----------------------------------------------------------- +# Version +#----------------------------------------------------------- +Version = '0.1' + +#----------------------------------------------------------- +# Import +#----------------------------------------------------------- +import sys # arg +import re # reg +import pexpect # pexpect +import time # sleep +import os +import xml.etree.ElementTree as ET +import logging +import datetime +import signal +from multiprocessing import Process,Lock +logging.basicConfig( + level=logging.DEBUG, + format="[%(asctime)s] %(name)s:%(levelname)s: %(message)s" +) + +#----------------------------------------------------------- +# Class Declaration +#----------------------------------------------------------- +class SSHConnection(): + def __init__(self): + self.eNBIPAddress = '' + self.eNBRepository = '' + self.eNBBranch = '' + self.eNB_AllowMerge = False + self.eNBCommitID = '' + self.eNBUserName = '' + self.eNBPassword = '' + self.eNBSourceCodePath = '' + self.EPCIPAddress = '' + self.EPCUserName = '' + self.EPCPassword = '' + self.EPCSourceCodePath = '' + self.EPCType = '' + self.ADBIPAddress = '' + self.ADBUserName = '' + self.ADBPassword = '' + self.testCase_id = '' + self.testXMLfile = '' + self.desc = '' + self.Build_eNB_args = '' + self.Initialize_eNB_args = '' + self.ping_args = '' + self.ping_packetloss_threshold = '' + self.iperf_args = '' + self.iperf_packetloss_threshold = '' + self.iperf_profile = '' + self.UEDevices = [] + self.UEIPAddresses = [] + self.htmlFile = '' + self.htmlHeaderCreated = False + self.htmlFooterCreated = False + self.htmlUEConnected = 0 + + def open(self, ipaddress, username, password): + self.ssh = pexpect.spawn('ssh', [username + '@' + ipaddress], timeout = 5) + self.sshresponse = self.ssh.expect(['Are you sure you want to continue connecting (yes/no)?', 'password:', 'Last login', pexpect.EOF, pexpect.TIMEOUT]) + if self.sshresponse == 0: + self.ssh.sendline('yes') + self.ssh.expect('password:') + self.ssh.sendline(password) + self.sshresponse = self.ssh.expect(['\$', 'Permission denied', 'password:', pexpect.EOF, pexpect.TIMEOUT]) + if self.sshresponse == 0: + pass + else: + logging.debug('self.sshresponse = ' + str(self.sshresponse)) + sys.exit('SSH Connection Failed') + elif self.sshresponse == 1: + self.ssh.sendline(password) + self.sshresponse = self.ssh.expect(['\$', 'Permission denied', 'password:', pexpect.EOF, pexpect.TIMEOUT]) + if self.sshresponse == 0: + pass + else: + logging.debug('self.sshresponse = ' + str(self.sshresponse)) + sys.exit('SSH Connection Failed') + elif self.sshresponse == 2: + # Checking if we are really on the remote client defined by its IP address + self.command('stdbuf -o0 ifconfig | egrep --color=never "inet addr:"', '\$', 5) + result = re.search(str(ipaddress), str(self.ssh.before)) + if result is None: + sys.exit('SSH Connection Failed: TIMEOUT !!!') + pass + else: + # debug output + logging.debug(str(self.ssh.before)) + logging.debug('self.sshresponse = ' + str(self.sshresponse)) + sys.exit('SSH Connection Failed!!!') + + def command(self, commandline, expectedline, timeout): + logging.debug(commandline) + self.ssh.timeout = timeout + self.ssh.sendline(commandline) + self.sshresponse = self.ssh.expect([expectedline, pexpect.EOF, pexpect.TIMEOUT]) + if self.sshresponse == 0: + pass + elif self.sshresponse == 1: + logging.debug('\u001B[1;37;41m Unexpected EOF \u001B[0m') + logging.debug('Expected Line : ' + expectedline) + sys.exit(self.sshresponse) + elif self.sshresponse == 2: + logging.debug('\u001B[1;37;41m Unexpected TIMEOUT \u001B[0m') + logging.debug('Expected Line : ' + expectedline) + sys.exit(self.sshresponse) + else: + logging.debug('\u001B[1;37;41m Unexpected Others \u001B[0m') + logging.debug('Expected Line : ' + expectedline) + sys.exit(self.sshresponse) + + def close(self): + self.ssh.timeout = 5 + self.ssh.sendline('exit') + self.sshresponse = self.ssh.expect([pexpect.EOF, pexpect.TIMEOUT]) + if self.sshresponse == 0: + pass + elif self.sshresponse == 1: + logging.debug('\u001B[1;37;41m Unexpected TIMEOUT \u001B[0m') + else: + logging.debug('\u001B[1;37;41m Unexpected Others \u001B[0m') + + def BuildeNB(self): + if self.eNBIPAddress == '' or self.eNBRepository == '' or self.eNBBranch == '' or self.eNBUserName == '' or self.eNBPassword == '' or self.eNBSourceCodePath == '': + Usage() + sys.exit('Insufficient Parameter') + self.open(self.eNBIPAddress, self.eNBUserName, self.eNBPassword) + self.command('mkdir -p ' + self.eNBSourceCodePath, '\$', 5) + self.command('cd ' + self.eNBSourceCodePath, '\$', 5) + self.command('if [ ! -e .git ]; then stdbuf -o0 git clone ' + self.eNBRepository + ' .; else stdbuf -o0 git fetch; fi', '\$', 600) + # Raphael: here add a check if git clone or git fetch went smoothly + self.command('git config user.email "jenkins@openairinterface.org"', '\$', 5) + self.command('git config user.name "OAI Jenkins"', '\$', 5) + self.command('echo ' + self.eNBPassword + ' | sudo -S git clean -x -d -ff', '\$', 30) + # if the commit ID is provided use it to point to it + if self.eNBCommitID != '': + self.command('git checkout -f ' + self.eNBCommitID, '\$', 5) + # if the branch is not develop, then it is a merge request and we need to do + # the potential merge. Note that merge conflicts should already been checked earlier + if (self.eNB_AllowMerge): + if (self.eNBBranch != 'develop') and (self.eNBBranch != 'origin/develop'): + self.command('git merge --ff origin/develop -m "Temporary merge for CI"', '\$', 5) + self.command('source oaienv', '\$', 5) + self.command('cd cmake_targets', '\$', 5) + self.command('mkdir -p log', '\$', 5) + # no need to remove in log (git clean did the trick) + self.command('echo ' + self.eNBPassword + ' | sudo -S stdbuf -o0 ./build_oai ' + self.Build_eNB_args + ' 2>&1 | stdbuf -o0 tee -a compile_oai_enb.log', 'Bypassing the Tests', 600) + self.command('mkdir -p build_log_' + SSH.testCase_id, '\$', 5) + self.command('echo ' + self.eNBPassword + ' | sudo -S mv log/* ' + 'build_log_' + SSH.testCase_id, '\$', 5) + self.command('echo ' + self.eNBPassword + ' | sudo -S mv compile_oai_enb.log ' + 'build_log_' + SSH.testCase_id, '\$', 5) + self.close() + self.CreateHtmlTestRow(self.Build_eNB_args, 'OK', 0) + + def InitializeHSS(self): + if self.EPCIPAddress == '' or self.EPCUserName == '' or self.EPCPassword == '' or self.EPCSourceCodePath == '' or self.EPCType == '': + Usage() + sys.exit('Insufficient Parameter') + self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword) + if re.match('OAI', self.EPCType, re.IGNORECASE): + logging.debug('Using the OAI EPC HSS') + self.command('cd ' + self.EPCSourceCodePath, '\$', 5) + self.command('source oaienv', '\$', 5) + self.command('cd scripts', '\$', 5) + self.command('echo ' + self.EPCPassword + ' | sudo -S ./run_hss 2>&1 | stdbuf -o0 awk \'{ print strftime("[%Y/%m/%d %H:%M:%S] ",systime()) $0 }\' | stdbuf -o0 tee -a hss_' + SSH.testCase_id + '.log &', 'Core state: 2 -> 3', 35) + else: + logging.debug('Using the ltebox simulated HSS') + self.command('if [ -d ' + self.EPCSourceCodePath + '/scripts ]; then echo ' + self.eNBPassword + ' | sudo -S rm -Rf ' + self.EPCSourceCodePath + '/scripts ; fi', '\$', 5) + self.command('mkdir -p ' + self.EPCSourceCodePath + '/scripts', '\$', 5) + self.command('cd /opt/hss_sim0609', '\$', 5) + self.command('echo ' + self.EPCPassword + ' | sudo -S rm -f hss.log daemon.log', '\$', 5) + self.command('echo ' + self.EPCPassword + ' | sudo -S echo "Starting sudo session" && sudo daemon --unsafe --name=simulated_hss --chdir=/opt/hss_sim0609 ./starthss_real ', '\$', 5) + self.close() + self.CreateHtmlTestRow(self.EPCType, 'OK', 0) + + def InitializeMME(self): + if self.EPCIPAddress == '' or self.EPCUserName == '' or self.EPCPassword == '' or self.EPCSourceCodePath == '' or self.EPCType == '': + Usage() + sys.exit('Insufficient Parameter') + self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword) + if re.match('OAI', self.EPCType, re.IGNORECASE): + self.command('cd ' + self.EPCSourceCodePath, '\$', 5) + self.command('source oaienv', '\$', 5) + self.command('cd scripts', '\$', 5) + self.command('stdbuf -o0 hostname', '\$', 5) + result = re.search('hostname\\\\r\\\\n(?P[a-zA-Z0-9\-\_]+)\\\\r\\\\n', str(self.ssh.before)) + if result is None: + logging.debug('\u001B[1;37;41m Hostname Not Found! \u001B[0m') + sys.exit(1) + host_name = result.group('host_name') + self.command('echo ' + self.EPCPassword + ' | sudo -S ./run_mme 2>&1 | stdbuf -o0 tee -a mme_' + SSH.testCase_id + '.log &', 'MME app initialization complete', 100) + else: + self.command('cd /opt/ltebox/tools', '\$', 5) + self.command('echo ' + self.EPCPassword + ' | sudo -S ./start_mme', '\$', 5) + self.close() + self.CreateHtmlTestRow(self.EPCType, 'OK', 0) + + def InitializeSPGW(self): + if self.EPCIPAddress == '' or self.EPCUserName == '' or self.EPCPassword == '' or self.EPCSourceCodePath == '' or self.EPCType == '': + Usage() + sys.exit('Insufficient Parameter') + self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword) + if re.match('OAI', self.EPCType, re.IGNORECASE): + self.command('cd ' + self.EPCSourceCodePath, '\$', 5) + self.command('source oaienv', '\$', 5) + self.command('cd scripts', '\$', 5) + self.command('echo ' + self.EPCPassword + ' | sudo -S ./run_spgw 2>&1 | stdbuf -o0 tee -a spgw_' + SSH.testCase_id + '.log &', 'Initializing SPGW-APP task interface: DONE', 30) + else: + self.command('cd /opt/ltebox/tools', '\$', 5) + self.command('echo ' + self.EPCPassword + ' | sudo -S ./start_xGw', '\$', 5) + self.close() + self.CreateHtmlTestRow(self.EPCType, 'OK', 0) + + def InitializeeNB(self): + if self.eNBIPAddress == '' or self.eNBUserName == '' or self.eNBPassword == '' or self.eNBSourceCodePath == '': + Usage() + sys.exit('Insufficient Parameter') + initialize_eNB_flag = True + self.CheckProcessExist(initialize_eNB_flag) + self.open(self.eNBIPAddress, self.eNBUserName, self.eNBPassword) + self.command('cd ' + self.eNBSourceCodePath, '\$', 5) + # Initialize_eNB_args usually start with -O and followed by the location in repository + full_config_file = self.Initialize_eNB_args.replace('-O ','') + config_path, config_file = os.path.split(full_config_file) + ci_full_config_file = config_path + '/ci-' + config_file + # Make a copy and adapt to EPC / eNB IP addresses + self.command('cp ' + full_config_file + ' ' + ci_full_config_file, '\$', 5) + self.command('sed -i -e \'s/mme_ip_address.*$/mme_ip_address = ( { ipv4 = "' + self.EPCIPAddress + '";/\' ' + ci_full_config_file, '\$', 2); + self.command('sed -i -e \'s/ENB_IPV4_ADDRESS_FOR_S1_MME.*$/ENB_IPV4_ADDRESS_FOR_S1_MME = "' + self.eNBIPAddress + '";/\' ' + ci_full_config_file, '\$', 2); + self.command('sed -i -e \'s/ENB_IPV4_ADDRESS_FOR_S1U.*$/ENB_IPV4_ADDRESS_FOR_S1U = "' + self.eNBIPAddress + '";/\' ' + ci_full_config_file, '\$', 2); + # Launch eNB with the modified config file + self.command('source oaienv', '\$', 5) + self.command('cd cmake_targets', '\$', 5) + self.command('echo "./lte_build_oai/build/lte-softmodem -O ' + self.eNBSourceCodePath + '/' + ci_full_config_file + '" > ./my-lte-softmodem-run.sh ', '\$', 5) + self.command('chmod 775 ./my-lte-softmodem-run.sh ', '\$', 5) + self.command('echo ' + self.eNBPassword + ' | sudo -S -E daemon --inherit --unsafe --name=enb_daemon --chdir=' + self.eNBSourceCodePath + '/cmake_targets -o ' + self.eNBSourceCodePath + '/cmake_targets/enb_' + SSH.testCase_id + '.log ./my-lte-softmodem-run.sh', '\$', 5) + time.sleep(6) + doLoop = True + loopCounter = 10 + while (doLoop): + loopCounter = loopCounter - 1 + if (loopCounter == 0): + doLoop = False + logging.debug('\u001B[1;37;43m eNB logging system did not show got sync! See with attach later \u001B[0m') + self.CreateHtmlTestRow(config_file, 'eNB not showing got sync!', 0) + # Not getting got sync is bypassed for the moment + #sys.exit(1) + self.command('stdbuf -o0 cat enb_' + SSH.testCase_id + '.log | grep -i sync', '\$', 10) + result = re.search('got sync', str(self.ssh.before)) + if result is None: + time.sleep(6) + else: + doLoop = False + self.CreateHtmlTestRow(config_file, 'OK', 0) + logging.debug('\u001B[1m Initialize eNB Completed\u001B[0m') + + self.close() + + def InitializeUE_common(self, device_id): + logging.debug('send adb commands') + try: + self.open(self.ADBIPAddress, self.ADBUserName, self.ADBPassword) + # The following commands are deprecated since we no longer work on Android 7+ + # self.command('stdbuf -o0 adb -s ' + device_id + ' shell settings put global airplane_mode_on 1', '\$', 10) + # self.command('stdbuf -o0 adb -s ' + device_id + ' shell am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true', '\$', 60) + # a dedicated script has to be installed inside the UE + # airplane mode on means call /data/local/tmp/off + self.command('stdbuf -o0 adb -s ' + device_id + ' shell /data/local/tmp/off', '\$', 60) + #airplane mode off means call /data/local/tmp/on + logging.debug('\u001B[1mUE (' + device_id + ') Initialize Completed\u001B[0m') + self.close() + except: + os.kill(os.getppid(),signal.SIGUSR1) + + def InitializeUE(self): + if self.ADBIPAddress == '' or self.ADBUserName == '' or self.ADBPassword == '': + Usage() + sys.exit('Insufficient Parameter') + multi_jobs = [] + for device_id in self.UEDevices: + p = Process(target = SSH.InitializeUE_common, args = (device_id,)) + p.daemon = True + p.start() + multi_jobs.append(p) + for job in multi_jobs: + job.join() + self.CreateHtmlTestRow('N/A', 'OK', 0) + + def AttachUE_common(self, device_id): + try: + self.open(self.ADBIPAddress, self.ADBUserName, self.ADBPassword) + self.command('stdbuf -o0 adb -s ' + device_id + ' shell /data/local/tmp/on', '\$', 60) + time.sleep(2) + count = 45 + while count > 0: + self.command('stdbuf -o0 adb -s ' + device_id + ' shell dumpsys telephony.registry | grep mDataConnectionState', '\$', 15) + result = re.search('mDataConnectionState.*=(?P[0-9\-]+)', str(self.ssh.before)) + if result is None: + logging.debug('\u001B[1;37;41m mDataConnectionState Not Found! \u001B[0m') + sys.exit(1) + mDataConnectionState = int(result.group('state')) + if mDataConnectionState == 2: + logging.debug('\u001B[1mUE (' + device_id + ') Attach Completed\u001B[0m') + break + count = count - 1 + if count == 15 or count == 30: + logging.debug('\u001B[1;37;43m Retry UE (' + device_id + ') Flight Mode Off \u001B[0m') + self.command('stdbuf -o0 adb -s ' + device_id + ' shell /data/local/tmp/off', '\$', 60) + time.sleep(0.5) + self.command('stdbuf -o0 adb -s ' + device_id + ' shell /data/local/tmp/on', '\$', 60) + time.sleep(0.5) + logging.debug('\u001B[1mWait UE (' + device_id + ') a second until mDataConnectionState=2 (' + str(45-count) + ' times)\u001B[0m') + time.sleep(1) + if count == 0: + logging.debug('\u001B[1;37;41m UE (' + device_id + ') Attach Failed \u001B[0m') + sys.exit(1) + self.close() + except: + os.kill(os.getppid(),signal.SIGUSR1) + + def AttachUE(self): + if self.ADBIPAddress == '' or self.ADBUserName == '' or self.ADBPassword == '': + Usage() + sys.exit('Insufficient Parameter') + initialize_eNB_flag = False + self.CheckProcessExist(initialize_eNB_flag) + multi_jobs = [] + for device_id in self.UEDevices: + p = Process(target = SSH.AttachUE_common, args = (device_id,)) + p.daemon = True + p.start() + multi_jobs.append(p) + for job in multi_jobs: + job.join() + self.CreateHtmlTestRow('N/A', 'OK', len(self.UEDevices)) + + def DetachUE_common(self, device_id): + try: + self.open(self.ADBIPAddress, self.ADBUserName, self.ADBPassword) + self.command('stdbuf -o0 adb -s ' + device_id + ' shell /data/local/tmp/off', '\$', 60) + logging.debug('\u001B[1mUE (' + device_id + ') Detach Completed\u001B[0m') + self.close() + except: + os.kill(os.getppid(),signal.SIGUSR1) + + def DetachUE(self): + if self.ADBIPAddress == '' or self.ADBUserName == '' or self.ADBPassword == '': + Usage() + sys.exit('Insufficient Parameter') + initialize_eNB_flag = False + self.CheckProcessExist(initialize_eNB_flag) + multi_jobs = [] + for device_id in self.UEDevices: + p = Process(target = SSH.DetachUE_common, args = (device_id,)) + p.daemon = True + p.start() + multi_jobs.append(p) + for job in multi_jobs: + job.join() + self.CreateHtmlTestRow('N/A', 'OK', 0) + + def RebootUE_common(self, device_id): + try: + self.open(self.ADBIPAddress, self.ADBUserName, self.ADBPassword) + previousmDataConnectionStates = [] + # Save mDataConnectionState + self.command('stdbuf -o0 adb -s ' + device_id + ' shell dumpsys telephony.registry | grep mDataConnectionState', '\$', 15) + self.command('stdbuf -o0 adb -s ' + device_id + ' shell dumpsys telephony.registry | grep mDataConnectionState', '\$', 15) + result = re.search('mDataConnectionState.*=(?P[0-9\-]+)', str(self.ssh.before)) + if result is None: + logging.debug('\u001B[1;37;41m mDataConnectionState Not Found! \u001B[0m') + sys.exit(1) + previousmDataConnectionStates.append(int(result.group('state'))) + # Reboot UE + self.command('stdbuf -o0 adb -s ' + device_id + ' shell reboot', '\$', 10) + time.sleep(60) + previousmDataConnectionState = previousmDataConnectionStates.pop(0) + count = 180 + while count > 0: + count = count - 1 + self.command('stdbuf -o0 adb -s ' + device_id + ' shell dumpsys telephony.registry | grep mDataConnectionState', '\$', 15) + result = re.search('mDataConnectionState.*=(?P[0-9\-]+)', str(self.ssh.before)) + if result is None: + mDataConnectionState = None + else: + mDataConnectionState = int(result.group('state')) + logging.debug('mDataConnectionState = ' + result.group('state')) + if mDataConnectionState is None or (previousmDataConnectionState == 2 and mDataConnectionState != 2): + logging.debug('\u001B[1mWait UE (' + device_id + ') a second until reboot completion (' + str(180-count) + ' times)\u001B[0m') + time.sleep(1) + else: + logging.debug('\u001B[1mUE (' + device_id + ') Reboot Completed\u001B[0m') + break + if count == 0: + logging.debug('\u001B[1;37;41m UE (' + device_id + ') Reboot Failed \u001B[0m') + sys.exit(1) + self.close() + except: + os.kill(os.getppid(),signal.SIGUSR1) + + def RebootUE(self): + if self.ADBIPAddress == '' or self.ADBUserName == '' or self.ADBPassword == '': + Usage() + sys.exit('Insufficient Parameter') + initialize_eNB_flag = False + self.CheckProcessExist(initialize_eNB_flag) + multi_jobs = [] + for device_id in self.UEDevices: + p = Process(target = SSH.RebootUE_common, args = (device_id,)) + p.daemon = True + p.start() + multi_jobs.append(p) + for job in multi_jobs: + job.join() + self.CreateHtmlTestRow('N/A', 'OK', 0) + + def GetAllUEDevices(self, terminate_ue_flag): + if self.ADBIPAddress == '' or self.ADBUserName == '' or self.ADBPassword == '': + Usage() + sys.exit('Insufficient Parameter') + self.open(self.ADBIPAddress, self.ADBUserName, self.ADBPassword) + self.command('adb devices', '\$', 15) + self.UEDevices = re.findall("\\\\r\\\\n([A-Za-z0-9]+)\\\\tdevice",str(self.ssh.before)) + if terminate_ue_flag == False: + if len(self.UEDevices) == 0: + logging.debug('\u001B[1;37;41m UE Not Found! \u001B[0m') + sys.exit(1) + self.close() + + def GetAllUEIPAddresses(self): + if self.ADBIPAddress == '' or self.ADBUserName == '' or self.ADBPassword == '': + Usage() + sys.exit('Insufficient Parameter') + self.UEIPAddresses = [] + self.open(self.ADBIPAddress, self.ADBUserName, self.ADBPassword) + for device_id in self.UEDevices: + self.command('stdbuf -o0 adb -s ' + device_id + ' shell ip addr show | grep rmnet', '\$', 15) + result = re.search('inet (?P[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)\/[0-9]+[0-9a-zA-Z\.\s]+', str(self.ssh.before)) + if result is None: + logging.debug('\u001B[1;37;41m UE IP Address Not Found! \u001B[0m') + sys.exit(1) + UE_IPAddress = result.group('ueipaddress') + logging.debug('\u001B[1mUE (' + device_id + ') IP Address is ' + UE_IPAddress + '\u001B[0m') + for ueipaddress in self.UEIPAddresses: + if ueipaddress == UE_IPAddress: + logging.debug('\u001B[1mUE (' + device_id + ') IP Address ' + UE_IPAddress + 'has been existed!' + '\u001B[0m') + sys.exit(1) + self.UEIPAddresses.append(UE_IPAddress) + self.close() + + def Ping_common(self, lock, UE_IPAddress, device_id): + try: + self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword) + self.command('cd ' + self.EPCSourceCodePath, '\$', 5) + self.command('cd scripts', '\$', 5) + ping_time = re.findall("-c (\d+)",str(self.ping_args)) + self.command('stdbuf -o0 ping ' + self.ping_args + ' ' + UE_IPAddress + ' 2>&1 | stdbuf -o0 tee -a ping_' + SSH.testCase_id + '_' + device_id + '.log', '\$', int(ping_time[0])*1.5) + result = re.search(', (?P[0-9\.]+)% packet loss, time [0-9\.]+ms', str(self.ssh.before)) + if result is None: + logging.debug('\u001B[1;37;41m Packet Loss Not Found! \u001B[0m') + sys.exit(1) + packetloss = result.group('packetloss') + if float(packetloss) == 100: + logging.debug('\u001B[1;37;41m Packet Loss is 100% \u001B[0m') + sys.exit(1) + result = re.search('rtt min\/avg\/max\/mdev = (?P[0-9\.]+)\/(?P[0-9\.]+)\/(?P[0-9\.]+)\/[0-9\.]+ ms', str(self.ssh.before)) + if result is None: + logging.debug('\u001B[1;37;41m Ping RTT_Min RTT_Avg RTT_Max Not Found! \u001B[0m') + sys.exit(1) + rtt_min = result.group('rtt_min') + rtt_avg = result.group('rtt_avg') + rtt_max = result.group('rtt_max') + lock.acquire() + logging.debug('\u001B[1;37;44m ping result (' + UE_IPAddress + ') \u001B[0m') + logging.debug('\u001B[1;34m Packet Loss : ' + packetloss + '%\u001B[0m') + logging.debug('\u001B[1;34m RTT(Min) : ' + rtt_min + ' ms' + '\u001B[0m') + logging.debug('\u001B[1;34m RTT(Avg) : ' + rtt_avg + ' ms' + '\u001B[0m') + logging.debug('\u001B[1;34m RTT(Max) : ' + rtt_max + ' ms' + '\u001B[0m') + lock.release() + if packetloss is not None: + if float(packetloss) > float(self.ping_packetloss_threshold): + logging.debug('\u001B[1;37;41m Packet Loss too high \u001B[0m') + sys.exit(1) + elif float(packetloss) > 0: + logging.debug('\u001B[1;37;43m Packet Loss is not 0% \u001B[0m') + self.close() + except: + os.kill(os.getppid(),signal.SIGUSR1) + + def Ping(self): + if self.EPCIPAddress == '' or self.EPCUserName == '' or self.EPCPassword == '' or self.EPCSourceCodePath == '': + Usage() + sys.exit('Insufficient Parameter') + initialize_eNB_flag = False + self.CheckProcessExist(initialize_eNB_flag) + self.GetAllUEIPAddresses() + multi_jobs = [] + i = 0 + lock = Lock() + for UE_IPAddress in self.UEIPAddresses: + device_id = self.UEDevices[i] + p = Process(target = SSH.Ping_common, args = (lock,UE_IPAddress,device_id,)) + p.daemon = True + p.start() + multi_jobs.append(p) + i = i + 1 + for job in multi_jobs: + job.join() + self.CreateHtmlTestRow(self.ping_args, 'OK', 0) + + def Iperf_ComputeTime(self): + result = re.search('-t (?P\d+)', str(self.iperf_args)) + if result is None: + logging.debug('\u001B[1;37;41m Iperf time Not Found! \u001B[0m') + sys.exit(1) + return result.group('iperf_time') + + def Iperf_ComputeModifiedBW(self, idx, ue_num): + result = re.search('-b (?P[0-9\.]+)[KMG]', str(self.iperf_args)) + if result is None: + logging.debug('\u001B[1;37;41m Iperf bandwidth Not Found! \u001B[0m') + sys.exit(1) + iperf_bandwidth = result.group('iperf_bandwidth') + if SSH.iperf_profile == 'balanced': + iperf_bandwidth_new = float(iperf_bandwidth)/ue_num + if SSH.iperf_profile == 'single-ue': + iperf_bandwidth_new = float(iperf_bandwidth) + if SSH.iperf_profile == 'unbalanced': + # residual is 2% of max bw + residualBW = float(iperf_bandwidth) / 50 + if idx == 0: + iperf_bandwidth_new = float(iperf_bandwidth) - ((ue_num - 1) * residualBW) + else: + iperf_bandwidth_new = residualBW + iperf_bandwidth_str = '-b ' + iperf_bandwidth + iperf_bandwidth_str_new = '-b ' + str(iperf_bandwidth_new) + result = re.sub(iperf_bandwidth_str, iperf_bandwidth_str_new, str(self.iperf_args)) + if result is None: + logging.debug('\u001B[1;37;41m Calculate Iperf bandwidth Failed! \u001B[0m') + sys.exit(1) + return result + + def Iperf_analyzeV2Output(self, lock, UE_IPAddress): + result = re.search('Server Report:', str(self.ssh.before)) + if result is None: + result = re.search('read failed: Connection refused', str(self.ssh.before)) + if result is not None: + logging.debug('\u001B[1;37;41m Could not connect to iperf server! \u001B[0m') + else: + logging.debug('\u001B[1;37;41m Server Report and Connection refused Not Found! \u001B[0m') + sys.exit(1) + result = re.search('Server Report:\\\\r\\\\n(?:|\[ *\d+\].*) (?P[0-9\.]+ [KMG]bits\/sec) +(?P[0-9\.]+ ms) +(\d+\/..\d+) (\((?P[0-9\.]+)%\))', str(self.ssh.before)) + if result is not None: + bitrate = result.group('bitrate') + packetloss = result.group('packetloss') + jitter = result.group('jitter') + lock.acquire() + logging.debug('\u001B[1;37;44m iperf result (' + UE_IPAddress + ') \u001B[0m') + if bitrate is not None: + logging.debug('\u001B[1;34m Bitrate : ' + bitrate + '\u001B[0m') + if packetloss is not None: + logging.debug('\u001B[1;34m Packet Loss : ' + packetloss + '%\u001B[0m') + if float(packetloss) > float(self.iperf_packetloss_threshold): + logging.debug('\u001B[1;37;41m Packet Loss too high \u001B[0m') + lock.release() + sys.exit(1) + if jitter is not None: + logging.debug('\u001B[1;34m Jitter : ' + jitter + '\u001B[0m') + lock.release() + + def Iperf_analyzeV3Output(self, lock, UE_IPAddress): + result = re.search('(?P[0-9\.]+ [KMG]bits\/sec) +(?:|[0-9\.]+ ms +\d+\/\d+ \((?P[0-9\.]+)%\)) +(?:|receiver)\\\\r\\\\n(?:|\[ *\d+\] Sent \d+ datagrams)\\\\r\\\\niperf Done\.', str(self.ssh.before)) + if result is None: + result = re.search('(?Piperf: error - [a-zA-Z0-9 :]+)', str(self.ssh.before)) + if result is not None: + logging.debug('\u001B[1;37;41m ' + result.group('error') + ' \u001B[0m') + else: + logging.debug('\u001B[1;37;41m Bitrate and/or Packet Loss Not Found! \u001B[0m') + sys.exit(1) + bitrate = result.group('bitrate') + packetloss = result.group('packetloss') + lock.acquire() + logging.debug('\u001B[1;37;44m iperf result (' + UE_IPAddress + ') \u001B[0m') + logging.debug('\u001B[1;34m Bitrate : ' + bitrate + '\u001B[0m') + if packetloss is not None: + logging.debug('\u001B[1;34m Packet Loss : ' + packetloss + '%\u001B[0m') + if float(packetloss) > float(self.iperf_packetloss_threshold): + logging.debug('\u001B[1;37;41m Packet Loss too high \u001B[0m') + lock.release() + sys.exit(1) + lock.release() + + def Iperf_UL_common(self, lock, UE_IPAddress, device_id, idx, ue_num): + ipnumbers = UE_IPAddress.split('.') + if (len(ipnumbers) == 4): + ipnumbers[3] = '1' + EPC_Iperf_UE_IPAddress = ipnumbers[0] + '.' + ipnumbers[1] + '.' + ipnumbers[2] + '.' + ipnumbers[3] + + # Launch iperf server on EPC side + self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword) + self.command('cd ' + self.EPCSourceCodePath + '/scripts', '\$', 5) + self.command('rm -f iperf_server_' + SSH.testCase_id + '_' + device_id + '.log', '\$', 5) + port = 5001 + idx + self.command('echo $USER; nohup iperf -u -s -i 1 -p ' + str(port) + ' > iperf_server_' + SSH.testCase_id + '_' + device_id + '.log &', self.EPCUserName, 5) + time.sleep(0.5) + self.close() + + # Launch iperf client on UE + self.open(self.ADBIPAddress, self.ADBUserName, self.ADBPassword) + self.command('cd ' + self.EPCSourceCodePath + '/scripts', '\$', 5) + iperf_time = self.Iperf_ComputeTime() + time.sleep(0.5) + + modified_options = self.Iperf_ComputeModifiedBW(idx, ue_num) + time.sleep(0.5) + + self.command('rm -f iperf_' + SSH.testCase_id + '_' + device_id + '.log', '\$', 5) + self.command('stdbuf -o0 adb -s ' + device_id + ' shell "/data/local/tmp/iperf -c ' + EPC_Iperf_UE_IPAddress + ' ' + modified_options + ' -p ' + str(port) + '" 2>&1 | stdbuf -o0 tee -a iperf_' + SSH.testCase_id + '_' + device_id + '.log', '\$', int(iperf_time)*5.0) + self.Iperf_analyzeV2Output(lock, UE_IPAddress) + + # Launch iperf server on EPC side + self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword) + self.command('killall --signal SIGKILL iperf', self.EPCUserName, 5) + self.close() + + def Iperf_common(self, lock, UE_IPAddress, device_id, idx, ue_num): + try: + # Single-UE profile -- iperf only on one UE + if SSH.iperf_profile == 'single-ue' and idx != 0: + return + useIperf3 = False + self.open(self.ADBIPAddress, self.ADBUserName, self.ADBPassword) + # if by chance ADB server and EPC are on the same remote host, at least log collection will take of it + self.command('if [ ! -d ' + self.EPCSourceCodePath + '/scripts ]; then mkdir -p ' + self.EPCSourceCodePath + '/scripts ; fi', '\$', 5) + self.command('cd ' + self.EPCSourceCodePath + '/scripts', '\$', 5) + # Checking if iperf / iperf3 are installed + self.command('adb -s ' + device_id + ' shell "ls /data/local/tmp"', '\$', 5) + result = re.search('iperf3', str(self.ssh.before)) + if result is None: + result = re.search('iperf', str(self.ssh.before)) + if result is None: + logging.debug('\u001B[1;37;41m Neither iperf nor iperf3 installed on UE! \u001B[0m') + sys.exit(1) + else: + useIperf3 = True + # in case of iperf, UL has its own function + if (not useIperf3): + result = re.search('-R', str(self.iperf_args)) + if result is not None: + self.close() + self.Iperf_UL_common(lock, UE_IPAddress, device_id, idx, ue_num) + return + + if (useIperf3): + self.command('stdbuf -o0 adb -s ' + device_id + ' shell /data/local/tmp/iperf3 -s &', '\$', 5) + else: + self.command('rm -f iperf_server_' + SSH.testCase_id + '_' + device_id + '.log', '\$', 5) + self.command('echo $USER; nohup adb -s ' + device_id + ' shell "/data/local/tmp/iperf -u -s -i 1" > iperf_server_' + SSH.testCase_id + '_' + device_id + '.log &', self.ADBUserName, 5) + time.sleep(0.5) + self.close() + + self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword) + self.command('cd ' + self.EPCSourceCodePath + '/scripts', '\$', 5) + iperf_time = self.Iperf_ComputeTime() + time.sleep(0.5) + + modified_options = self.Iperf_ComputeModifiedBW(idx, ue_num) + time.sleep(0.5) + + self.command('rm -f iperf_' + SSH.testCase_id + '_' + device_id + '.log', '\$', 5) + if (useIperf3): + self.command('stdbuf -o0 iperf3 -c ' + UE_IPAddress + ' ' + modified_options + ' 2>&1 | stdbuf -o0 tee -a iperf_' + SSH.testCase_id + '_' + device_id + '.log', '\$', int(iperf_time)*5.0) + + self.Iperf_analyzeV3Output(lock, UE_IPAddress) + else: + self.command('stdbuf -o0 iperf -c ' + UE_IPAddress + ' ' + modified_options + ' 2>&1 | stdbuf -o0 tee -a iperf_' + SSH.testCase_id + '_' + device_id + '.log', '\$', int(iperf_time)*5.0) + + self.Iperf_analyzeV2Output(lock, UE_IPAddress) + self.close() + + self.open(self.ADBIPAddress, self.ADBUserName, self.ADBPassword) + self.command('stdbuf -o0 adb -s ' + device_id + ' shell ps | grep --color=never iperf | grep -v grep', '\$', 5) + result = re.search('shell +(?P\d+)', str(self.ssh.before)) + if result is not None: + pid_iperf = result.group('pid') + self.command('stdbuf -o0 adb -s ' + device_id + ' shell kill -KILL ' + pid_iperf, '\$', 5) + self.close() + except: + os.kill(os.getppid(),signal.SIGUSR1) + + def Iperf(self): + if self.EPCIPAddress == '' or self.EPCUserName == '' or self.EPCPassword == '' or self.EPCSourceCodePath == '' or self.ADBIPAddress == '' or self.ADBUserName == '' or self.ADBPassword == '': + Usage() + sys.exit('Insufficient Parameter') + initialize_eNB_flag = False + self.CheckProcessExist(initialize_eNB_flag) + self.GetAllUEIPAddresses() + multi_jobs = [] + i = 0 + ue_num = len(self.UEIPAddresses) + lock = Lock() + for UE_IPAddress in self.UEIPAddresses: + device_id = self.UEDevices[i] + p = Process(target = SSH.Iperf_common, args = (lock,UE_IPAddress,device_id,i,ue_num,)) + p.daemon = True + p.start() + multi_jobs.append(p) + i = i + 1 + for job in multi_jobs: + job.join() + self.CreateHtmlTestRow(self.iperf_args, 'OK', 0) + + def CheckProcessExist(self, initialize_eNB_flag): + multi_jobs = [] + p = Process(target = SSH.CheckHSSProcess, args = ()) + p.daemon = True + p.start() + multi_jobs.append(p) + p = Process(target = SSH.CheckMMEProcess, args = ()) + p.daemon = True + p.start() + multi_jobs.append(p) + p = Process(target = SSH.CheckSPGWProcess, args = ()) + p.daemon = True + p.start() + multi_jobs.append(p) + if initialize_eNB_flag == False: + p = Process(target = SSH.CheckeNBProcess, args = ()) + p.daemon = True + p.start() + multi_jobs.append(p) + for job in multi_jobs: + job.join() + + def CheckeNBProcess(self): + try: + self.open(self.eNBIPAddress, self.eNBUserName, self.eNBPassword) + self.command('stdbuf -o0 ps -aux | grep -v grep | grep --color=never lte-softmodem', '\$', 5) + result = re.search('lte-softmodem', str(self.ssh.before)) + if result is None: + logging.debug('\u001B[1;37;41m eNB Process Not Found! \u001B[0m') + sys.exit(1) + self.close() + except: + os.kill(os.getppid(),signal.SIGUSR1) + + def CheckHSSProcess(self): + try: + self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword) + self.command('stdbuf -o0 ps -aux | grep -v grep | grep --color=never hss', '\$', 5) + if re.match('OAI', self.EPCType, re.IGNORECASE): + result = re.search('\/bin\/bash .\/run_', str(self.ssh.before)) + else: + result = re.search('hss_sim s6as diam_hss', str(self.ssh.before)) + if result is None: + logging.debug('\u001B[1;37;41m HSS Process Not Found! \u001B[0m') + sys.exit(1) + self.close() + except: + os.kill(os.getppid(),signal.SIGUSR1) + + def CheckMMEProcess(self): + try: + self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword) + self.command('stdbuf -o0 ps -aux | grep -v grep | grep --color=never mme', '\$', 5) + if re.match('OAI', self.EPCType, re.IGNORECASE): + result = re.search('\/bin\/bash .\/run_', str(self.ssh.before)) + else: + result = re.search('mme', str(self.ssh.before)) + if result is None: + logging.debug('\u001B[1;37;41m MME Process Not Found! \u001B[0m') + sys.exit(1) + self.close() + except: + os.kill(os.getppid(),signal.SIGUSR1) + + def CheckSPGWProcess(self): + try: + self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword) + if re.match('OAI', self.EPCType, re.IGNORECASE): + self.command('stdbuf -o0 ps -aux | grep -v grep | grep --color=never spgw', '\$', 5) + result = re.search('\/bin\/bash .\/run_', str(self.ssh.before)) + else: + self.command('stdbuf -o0 ps -aux | grep -v grep | grep --color=never xGw', '\$', 5) + result = re.search('xGw', str(self.ssh.before)) + if result is None: + logging.debug('\u001B[1;37;41m SPGW Process Not Found! \u001B[0m') + sys.exit(1) + self.close() + except: + os.kill(os.getppid(),signal.SIGUSR1) + + def TerminateeNB(self): + self.open(self.eNBIPAddress, self.eNBUserName, self.eNBPassword) + self.command('cd ' + self.eNBSourceCodePath + '/cmake_targets', '\$', 5) + self.command('echo ' + self.eNBPassword + ' | sudo -S daemon --name=enb_daemon --stop', '\$', 5) + self.command('rm -f my-lte-softmodem-run.sh', '\$', 5) + self.command('echo ' + self.eNBPassword + ' | sudo -S killall --signal SIGINT lte-softmodem || true', '\$', 5) + time.sleep(5) + self.command('stdbuf -o0 ps -aux | grep -v grep | grep lte-softmodem', '\$', 5) + result = re.search('lte-softmodem', str(self.ssh.before)) + if result is not None: + self.command('echo ' + self.eNBPassword + ' | sudo -S killall --signal SIGKILL lte-softmodem || true', '\$', 5) + self.close() + self.CreateHtmlTestRow('N/A', 'OK', 0) + + def TerminateHSS(self): + self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword) + if re.match('OAI', self.EPCType, re.IGNORECASE): + self.command('echo ' + self.EPCPassword + ' | sudo -S killall --signal SIGINT run_hss oai_hss || true', '\$', 5) + time.sleep(2) + self.command('stdbuf -o0 ps -aux | grep -v grep | grep hss', '\$', 5) + result = re.search('\/bin\/bash .\/run_', str(self.ssh.before)) + if result is not None: + self.command('echo ' + self.EPCPassword + ' | sudo -S killall --signal SIGKILL run_hss oai_hss || true', '\$', 5) + else: + self.command('cd ' + self.EPCSourceCodePath, '\$', 5) + self.command('cd scripts', '\$', 5) + self.command('rm -f ./kill_hss.sh', '\$', 5) + self.command('echo ' + self.EPCPassword + ' | sudo -S daemon --name=simulated_hss --stop', '\$', 5) + time.sleep(2) + self.command('ps -aux | egrep --color=never "hss_sim|simulated_hss" | grep -v grep | awk \'BEGIN{n=0}{pidId[n]=$2;n=n+1}END{print "kill -9 " pidId[0] " " pidId[1]}\' > ./kill_hss.sh', '\$', 5) + self.command('chmod 755 ./kill_hss.sh', '\$', 5) + self.command('echo ' + self.EPCPassword + ' | sudo -S ./kill_hss.sh', '\$', 5) + self.command('rm ./kill_hss.sh', '\$', 5) + self.close() + self.CreateHtmlTestRow('N/A', 'OK', 0) + + def TerminateMME(self): + self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword) + if re.match('OAI', self.EPCType, re.IGNORECASE): + self.command('echo ' + self.EPCPassword + ' | sudo -S killall --signal SIGINT run_mme mme || true', '\$', 5) + time.sleep(2) + self.command('stdbuf -o0 ps -aux | grep -v grep | grep mme', '\$', 5) + result = re.search('\/bin\/bash .\/run_', str(self.ssh.before)) + if result is not None: + self.command('echo ' + self.EPCPassword + ' | sudo -S killall --signal SIGKILL run_mme mme || true', '\$', 5) + else: + self.command('cd /opt/ltebox/tools', '\$', 5) + self.command('echo ' + self.EPCPassword + ' | sudo -S ./stop_mme', '\$', 5) + self.close() + + def TerminateSPGW(self): + self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword) + if re.match('OAI', self.EPCType, re.IGNORECASE): + self.command('echo ' + self.EPCPassword + ' | sudo -S killall --signal SIGINT run_spgw spgw || true', '\$', 5) + time.sleep(2) + self.command('stdbuf -o0 ps -aux | grep -v grep | grep spgw', '\$', 5) + result = re.search('\/bin\/bash .\/run_', str(self.ssh.before)) + if result is not None: + self.command('echo ' + self.EPCPassword + ' | sudo -S killall --signal SIGKILL run_spgw spgw || true', '\$', 5) + else: + self.command('cd /opt/ltebox/tools', '\$', 5) + self.command('echo ' + self.EPCPassword + ' | sudo -S ./stop_xGw', '\$', 5) + self.close() + self.CreateHtmlTestRow('N/A', 'OK', 0) + + def TerminateUE_common(self, device_id): + try: + self.open(self.ADBIPAddress, self.ADBUserName, self.ADBPassword) + self.command('stdbuf -o0 adb -s ' + device_id + ' shell /data/local/tmp/off', '\$', 60) + logging.debug('\u001B[1mUE (' + device_id + ') Detach Completed\u001B[0m') + + self.command('stdbuf -o0 adb -s ' + device_id + ' shell ps | grep --color=never iperf | grep -v grep', '\$', 5) + result = re.search('shell +(?P\d+)', str(self.ssh.before)) + if result is not None: + pid_iperf = result.group('pid') + self.command('stdbuf -o0 adb -s ' + device_id + ' shell kill -KILL ' + pid_iperf, '\$', 5) + self.close() + except: + os.kill(os.getppid(),signal.SIGUSR1) + + def TerminateUE(self): + terminate_ue_flag = True + SSH.GetAllUEDevices(terminate_ue_flag) + multi_jobs = [] + for device_id in self.UEDevices: + p = Process(target= SSH.TerminateUE_common, args = (device_id,)) + p.daemon = True + p.start() + multi_jobs.append(p) + for job in multi_jobs: + job.join() + self.CreateHtmlTestRow('N/A', 'OK', 0) + + def LogCollectBuild(self): + self.open(self.eNBIPAddress, self.eNBUserName, self.eNBPassword) + self.command('cd ' + self.eNBSourceCodePath, '\$', 5) + self.command('cd cmake_targets', '\$', 5) + self.command('rm -f build.log.zip', '\$', 5) + self.command('zip build.log.zip build_log_*/*', '\$', 60) + self.command('echo ' + self.eNBPassword + ' | sudo -S rm -rf build_log_*', '\$', 5) + self.close() + + def LogCollecteNB(self): + self.open(self.eNBIPAddress, self.eNBUserName, self.eNBPassword) + self.command('cd ' + self.eNBSourceCodePath, '\$', 5) + self.command('cd cmake_targets', '\$', 5) + self.command('rm -f enb.log.zip', '\$', 5) + self.command('zip enb.log.zip enb*.log', '\$', 60) + self.command('echo ' + self.eNBPassword + ' | sudo -S rm enb*.log', '\$', 5) + self.close() + + def LogCollectPing(self): + self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword) + self.command('cd ' + self.EPCSourceCodePath, '\$', 5) + self.command('cd scripts', '\$', 5) + self.command('rm -f ping.log.zip', '\$', 5) + self.command('zip ping.log.zip ping*.log', '\$', 60) + self.command('rm ping*.log', '\$', 5) + self.close() + + def LogCollectIperf(self): + self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword) + self.command('cd ' + self.EPCSourceCodePath, '\$', 5) + self.command('cd scripts', '\$', 5) + self.command('rm -f iperf.log.zip', '\$', 5) + self.command('zip iperf.log.zip iperf*.log', '\$', 60) + self.command('rm iperf*.log', '\$', 5) + self.close() + + def LogCollectHSS(self): + self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword) + self.command('cd ' + self.EPCSourceCodePath, '\$', 5) + self.command('cd scripts', '\$', 5) + self.command('rm -f hss.log.zip', '\$', 5) + if re.match('OAI', self.EPCType, re.IGNORECASE): + self.command('zip hss.log.zip hss*.log', '\$', 60) + self.command('rm hss*.log', '\$', 5) + else: + self.command('cp /opt/hss_sim0609/hss.log .', '\$', 60) + self.command('zip hss.log.zip hss.log', '\$', 60) + self.close() + + def LogCollectMME(self): + self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword) + self.command('cd ' + self.EPCSourceCodePath, '\$', 5) + self.command('cd scripts', '\$', 5) + self.command('rm -f mme.log.zip', '\$', 5) + if re.match('OAI', self.EPCType, re.IGNORECASE): + self.command('zip mme.log.zip mme*.log', '\$', 60) + self.command('rm mme*.log', '\$', 5) + else: + self.command('cp /opt/ltebox/var/log/*Log.0 .', '\$', 5) + self.command('zip mme.log.zip mmeLog.0 s1apcLog.0 s1apsLog.0 s11cLog.0 libLog.0 s1apCodecLog.0', '\$', 60) + self.close() + + def LogCollectSPGW(self): + self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword) + self.command('cd ' + self.EPCSourceCodePath, '\$', 5) + self.command('cd scripts', '\$', 5) + self.command('rm -f spgw.log.zip', '\$', 5) + if re.match('OAI', self.EPCType, re.IGNORECASE): + self.command('zip spgw.log.zip spgw*.log', '\$', 60) + self.command('rm spgw*.log', '\$', 5) + else: + self.command('cp /opt/ltebox/var/log/xGwLog.0 .', '\$', 5) + self.command('zip spgw.log.zip xGwLog.0', '\$', 60) + self.close() +#----------------------------------------------------------- +# HTML Reporting.... +#----------------------------------------------------------- + def CreateHtmlHeader(self): + if (not self.htmlHeaderCreated): + self.htmlFile = open('test_results.html', 'w') + self.htmlFile.write('\n') + self.htmlFile.write('\n') + self.htmlFile.write('\n') + self.htmlFile.write(' Test Results for TEMPLATE_JOB_NAME job build #TEMPLATE_BUILD_ID\n') + self.htmlFile.write(' \n') + self.htmlFile.write('\n') + self.htmlFile.write('\n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write('
\n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' Job Summary -- Job: TEMPLATE_JOB_NAME -- Build-ID: TEMPLATE_BUILD_ID\n') + self.htmlFile.write('
\n') + self.htmlFile.write('
\n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + if (SSH.eNB_AllowMerge): + self.htmlFile.write(' \n') + else: + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + if (SSH.eNB_AllowMerge): + self.htmlFile.write(' \n') + else: + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + if (SSH.eNB_AllowMerge): + self.htmlFile.write(' \n') + else: + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + if (SSH.eNB_AllowMerge): + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write('
GIT Repository' + SSH.eNBRepository + '
Job TriggerMerge-RequestPush to Branch
Source BranchBranch' + SSH.eNBBranch + '
Source Commit IDCommit ID' + SSH.eNBCommitID + '
Target Branchdevelop
\n') + + terminate_ue_flag = True + SSH.GetAllUEDevices(terminate_ue_flag) + self.htmlUEConnected = len(self.UEDevices) + self.htmlFile.write('

' + str(self.htmlUEConnected) + ' UE(s) is(are) connected to ADB bench server

\n') + + self.htmlFile.write('
\n') + self.htmlFile.write('

Test Summary for ' + SSH.testXMLfile + '

\n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + i = 0 + while (i < self.htmlUEConnected): + self.htmlFile.write(' \n') + i += 1 + self.htmlFile.write(' \n') + self.htmlHeaderCreated = True + + def CreateHtmlFooter(self): + if ((not self.htmlFooterCreated) and (self.htmlHeaderCreated)): + self.htmlFile.write('
Test IdTest DescTest OptionsTest StatusUE' + str(i) + ' Status
\n') + self.htmlFile.write('\n') + self.htmlFile.write('\n') + self.htmlFile.close() + self.htmlFooterCreated = False + + def CreateHtmlTestRow(self, options, status, ue_status): + if ((not self.htmlFooterCreated) and (self.htmlHeaderCreated)): + self.htmlFile.write(' \n') + self.htmlFile.write(' ' + SSH.testCase_id + '\n') + self.htmlFile.write(' ' + SSH.desc + '\n') + self.htmlFile.write(' ' + str(options) + '\n') + if (str(status) == 'OK'): + self.htmlFile.write(' ' + str(status) + '\n') + elif (str(status) == 'KO'): + self.htmlFile.write(' ' + str(status) + '\n') + else: + self.htmlFile.write(' ' + str(status) + '\n') + i = 0 + while (i < self.htmlUEConnected): + if (i < ue_status): + self.htmlFile.write(' -\n') + else: + self.htmlFile.write(' -\n') + i += 1 + self.htmlFile.write(' \n') + +#----------------------------------------------------------- +# Usage() +#----------------------------------------------------------- +def Usage(): + print('------------------------------------------------------------') + print('main.py Ver:' + Version) + print('------------------------------------------------------------') + print('Usage: python main.py [options]') + print(' --help Show this help.') + print(' --mode=[Mode]') + print(' TesteNB') + print(' TerminateeNB, TerminateEPC') + print(' LogCollectBuild, LogCollecteNB, LogCollectEPC, LogCollectADB') + print(' --eNBIPAddress=[eNB\'s IP Address]') + print(' --eNBRepository=[eNB\'s Repository URL]') + print(' --eNBBranch=[eNB\'s Branch Name]') + print(' --eNBCommitID=[eNB\'s Commit Number]') + print(' --eNBUserName=[eNB\'s Login User Name]') + print(' --eNBPassword=[eNB\'s Login Password]') + print(' --eNBSourceCodePath=[eNB\'s Source Code Path]') + print(' --EPCIPAddress=[EPC\'s IP Address]') + print(' --EPCUserName=[EPC\'s Login User Name]') + print(' --EPCPassword=[EPC\'s Login Password]') + print(' --EPCSourceCodePath=[EPC\'s Source Code Path]') + print(' --EPCType=[EPC\'s Type: OAI or ltebox]') + print(' --ADBIPAddress=[ADB\'s IP Address]') + print(' --ADBUserName=[ADB\'s Login User Name]') + print(' --ADBPassword=[ADB\'s Login Password]') + print(' --XMLTestFile=[XML Test File to be run]') + print('------------------------------------------------------------') + +#----------------------------------------------------------- +# ShowTestID() +#----------------------------------------------------------- +def ShowTestID(): + logging.debug('\u001B[1m----------------------------------------\u001B[0m') + logging.debug('\u001B[1mTest ID:' + SSH.testCase_id + '\u001B[0m') + logging.debug('\u001B[1m' + SSH.desc + '\u001B[0m') + logging.debug('\u001B[1m----------------------------------------\u001B[0m') + +def CheckClassValidity(action,id): + if action != 'Build_eNB' and action != 'Initialize_eNB' and action != 'Terminate_eNB' and action != 'Initialize_UE' and action != 'Terminate_UE' and action != 'Attach_UE' and action != 'Detach_UE' and action != 'Ping' and action != 'Iperf' and action != 'Reboot_UE' and action != 'Initialize_HSS' and action != 'Terminate_HSS' and action != 'Initialize_MME' and action != 'Terminate_MME' and action != 'Initialize_SPGW' and action != 'Terminate_SPGW': + logging.debug('ERROR: test-case ' + id + ' has wrong class ' + action) + return False + return True + +def GetParametersFromXML(action): + if action == 'Build_eNB': + SSH.Build_eNB_args = test.findtext('Build_eNB_args') + + if action == 'Initialize_eNB': + SSH.Initialize_eNB_args = test.findtext('Initialize_eNB_args') + + if action == 'Ping': + SSH.ping_args = test.findtext('ping_args') + SSH.ping_packetloss_threshold = test.findtext('ping_packetloss_threshold') + + if action == 'Iperf': + SSH.iperf_args = test.findtext('iperf_args') + SSH.iperf_packetloss_threshold = test.findtext('iperf_packetloss_threshold') + SSH.iperf_profile = test.findtext('iperf_profile') + if (SSH.iperf_profile is None): + SSH.iperf_profile = 'balanced' + else: + if SSH.iperf_profile != 'balanced' and SSH.iperf_profile != 'unbalanced' and SSH.iperf_profile != 'single-ue': + logging.debug('ERROR: test-case has wrong profile ' + SSH.iperf_profile) + SSH.iperf_profile = 'balanced' + +#check if given test is in list +#it is in list if one of the strings in 'list' is at the beginning of 'test' +def test_in_list(test, list): + for check in list: + check=check.replace('+','') + if (test.startswith(check)): + return True + return False + +def receive_signal(signum, frame): + sys.exit(1) + +#----------------------------------------------------------- +# Parameter Check +#----------------------------------------------------------- +mode = '' +SSH = SSHConnection() + +argvs = sys.argv +argc = len(argvs) + +while len(argvs) > 1: + myArgv = argvs.pop(1) # 0th is this file's name + if re.match('^\-\-help$', myArgv, re.IGNORECASE): + Usage() + sys.exit(0) + elif re.match('^\-\-mode=(.+)$', myArgv, re.IGNORECASE): + matchReg = re.match('^\-\-mode=(.+)$', myArgv, re.IGNORECASE) + mode = matchReg.group(1) + elif re.match('^\-\-eNBIPAddress=(.+)$', myArgv, re.IGNORECASE): + matchReg = re.match('^\-\-eNBIPAddress=(.+)$', myArgv, re.IGNORECASE) + SSH.eNBIPAddress = matchReg.group(1) + elif re.match('^\-\-eNBRepository=(.+)$', myArgv, re.IGNORECASE): + matchReg = re.match('^\-\-eNBRepository=(.+)$', myArgv, re.IGNORECASE) + SSH.eNBRepository = matchReg.group(1) + elif re.match('^\-\-eNB_AllowMerge=(.+)$', myArgv, re.IGNORECASE): + matchReg = re.match('^\-\-eNB_AllowMerge=(.+)$', myArgv, re.IGNORECASE) + doMerge = matchReg.group(1) + if ((doMerge == 'true') or (doMerge == 'True')): + SSH.eNB_AllowMerge = True + elif re.match('^\-\-eNBBranch=(.+)$', myArgv, re.IGNORECASE): + matchReg = re.match('^\-\-eNBBranch=(.+)$', myArgv, re.IGNORECASE) + SSH.eNBBranch = matchReg.group(1) + elif re.match('^\-\-eNBCommitID=(.*)$', myArgv, re.IGNORECASE): + matchReg = re.match('^\-\-eNBCommitID=(.*)$', myArgv, re.IGNORECASE) + SSH.eNBCommitID = matchReg.group(1) + elif re.match('^\-\-eNBUserName=(.+)$', myArgv, re.IGNORECASE): + matchReg = re.match('^\-\-eNBUserName=(.+)$', myArgv, re.IGNORECASE) + SSH.eNBUserName = matchReg.group(1) + elif re.match('^\-\-eNBPassword=(.+)$', myArgv, re.IGNORECASE): + matchReg = re.match('^\-\-eNBPassword=(.+)$', myArgv, re.IGNORECASE) + SSH.eNBPassword = matchReg.group(1) + elif re.match('^\-\-eNBSourceCodePath=(.+)$', myArgv, re.IGNORECASE): + matchReg = re.match('^\-\-eNBSourceCodePath=(.+)$', myArgv, re.IGNORECASE) + SSH.eNBSourceCodePath = matchReg.group(1) + elif re.match('^\-\-EPCIPAddress=(.+)$', myArgv, re.IGNORECASE): + matchReg = re.match('^\-\-EPCIPAddress=(.+)$', myArgv, re.IGNORECASE) + SSH.EPCIPAddress = matchReg.group(1) + elif re.match('^\-\-EPCBranch=(.+)$', myArgv, re.IGNORECASE): + matchReg = re.match('^\-\-EPCBranch=(.+)$', myArgv, re.IGNORECASE) + SSH.EPCBranch = matchReg.group(1) + elif re.match('^\-\-EPCUserName=(.+)$', myArgv, re.IGNORECASE): + matchReg = re.match('^\-\-EPCUserName=(.+)$', myArgv, re.IGNORECASE) + SSH.EPCUserName = matchReg.group(1) + elif re.match('^\-\-EPCPassword=(.+)$', myArgv, re.IGNORECASE): + matchReg = re.match('^\-\-EPCPassword=(.+)$', myArgv, re.IGNORECASE) + SSH.EPCPassword = matchReg.group(1) + elif re.match('^\-\-EPCSourceCodePath=(.+)$', myArgv, re.IGNORECASE): + matchReg = re.match('^\-\-EPCSourceCodePath=(.+)$', myArgv, re.IGNORECASE) + SSH.EPCSourceCodePath = matchReg.group(1) + elif re.match('^\-\-EPCType=(.+)$', myArgv, re.IGNORECASE): + matchReg = re.match('^\-\-EPCType=(.+)$', myArgv, re.IGNORECASE) + if re.match('OAI', matchReg.group(1), re.IGNORECASE) or re.match('ltebox', matchReg.group(1), re.IGNORECASE): + SSH.EPCType = matchReg.group(1) + else: + sys.exit('Invalid EPC Type: ' + matchReg.group(1) + ' -- (should be OAI or ltebox)') + elif re.match('^\-\-ADBIPAddress=(.+)$', myArgv, re.IGNORECASE): + matchReg = re.match('^\-\-ADBIPAddress=(.+)$', myArgv, re.IGNORECASE) + SSH.ADBIPAddress = matchReg.group(1) + elif re.match('^\-\-ADBUserName=(.+)$', myArgv, re.IGNORECASE): + matchReg = re.match('^\-\-ADBUserName=(.+)$', myArgv, re.IGNORECASE) + SSH.ADBUserName = matchReg.group(1) + elif re.match('^\-\-ADBPassword=(.+)$', myArgv, re.IGNORECASE): + matchReg = re.match('^\-\-ADBPassword=(.+)$', myArgv, re.IGNORECASE) + SSH.ADBPassword = matchReg.group(1) + elif re.match('^\-\-XMLTestFile=(.+)$', myArgv, re.IGNORECASE): + matchReg = re.match('^\-\-XMLTestFile=(.+)$', myArgv, re.IGNORECASE) + SSH.testXMLfile = matchReg.group(1) + else: + Usage() + sys.exit('Invalid Parameter: ' + myArgv) + +if re.match('^TerminateeNB$', mode, re.IGNORECASE): + if SSH.eNBIPAddress == '' or SSH.eNBUserName == '' or SSH.eNBPassword == '': + Usage() + sys.exit('Insufficient Parameter') + SSH.TerminateeNB() +elif re.match('^TerminateUE$', mode, re.IGNORECASE): + if SSH.ADBIPAddress == '' or SSH.ADBUserName == '' or SSH.ADBPassword == '': + Usage() + sys.exit('Insufficient Parameter') + signal.signal(signal.SIGUSR1, receive_signal) + SSH.TerminateUE() +elif re.match('^TerminateHSS$', mode, re.IGNORECASE): + if SSH.EPCIPAddress == '' or SSH.EPCUserName == '' or SSH.EPCPassword == '' or SSH.EPCType == '' or SSH.EPCSourceCodePath == '': + Usage() + sys.exit('Insufficient Parameter') + SSH.TerminateHSS() +elif re.match('^TerminateMME$', mode, re.IGNORECASE): + if SSH.EPCIPAddress == '' or SSH.EPCUserName == '' or SSH.EPCPassword == '' or SSH.EPCType == '' or SSH.EPCSourceCodePath == '': + Usage() + sys.exit('Insufficient Parameter') + SSH.TerminateMME() +elif re.match('^TerminateSPGW$', mode, re.IGNORECASE): + if SSH.EPCIPAddress == '' or SSH.EPCUserName == '' or SSH.EPCPassword == '' or SSH.EPCType == '' or SSH.EPCSourceCodePath == '': + Usage() + sys.exit('Insufficient Parameter') + SSH.TerminateSPGW() +elif re.match('^LogCollectBuild$', mode, re.IGNORECASE): + if SSH.eNBIPAddress == '' or SSH.eNBUserName == '' or SSH.eNBPassword == '' or SSH.eNBSourceCodePath == '': + Usage() + sys.exit('Insufficient Parameter') + SSH.LogCollectBuild() +elif re.match('^LogCollecteNB$', mode, re.IGNORECASE): + if SSH.eNBIPAddress == '' or SSH.eNBUserName == '' or SSH.eNBPassword == '' or SSH.eNBSourceCodePath == '': + Usage() + sys.exit('Insufficient Parameter') + SSH.LogCollecteNB() +elif re.match('^LogCollectHSS$', mode, re.IGNORECASE): + if SSH.EPCIPAddress == '' or SSH.EPCUserName == '' or SSH.EPCPassword == '' or SSH.EPCType == '' or SSH.EPCSourceCodePath == '': + Usage() + sys.exit('Insufficient Parameter') + SSH.LogCollectHSS() +elif re.match('^LogCollectMME$', mode, re.IGNORECASE): + if SSH.EPCIPAddress == '' or SSH.EPCUserName == '' or SSH.EPCPassword == '' or SSH.EPCType == '' or SSH.EPCSourceCodePath == '': + Usage() + sys.exit('Insufficient Parameter') + SSH.LogCollectMME() +elif re.match('^LogCollectSPGW$', mode, re.IGNORECASE): + if SSH.EPCIPAddress == '' or SSH.EPCUserName == '' or SSH.EPCPassword == '' or SSH.EPCType == '' or SSH.EPCSourceCodePath == '': + Usage() + sys.exit('Insufficient Parameter') + SSH.LogCollectSPGW() +elif re.match('^LogCollectPing$', mode, re.IGNORECASE): + if SSH.EPCIPAddress == '' or SSH.EPCUserName == '' or SSH.EPCPassword == '' or SSH.EPCSourceCodePath == '': + Usage() + sys.exit('Insufficient Parameter') + SSH.LogCollectPing() +elif re.match('^LogCollectIperf$', mode, re.IGNORECASE): + if SSH.EPCIPAddress == '' or SSH.EPCUserName == '' or SSH.EPCPassword == '' or SSH.EPCSourceCodePath == '': + Usage() + sys.exit('Insufficient Parameter') + SSH.LogCollectIperf() +elif re.match('^TesteNB$', mode, re.IGNORECASE): + if SSH.eNBIPAddress == '' or SSH.eNBRepository == '' or SSH.eNBBranch == '' or SSH.eNBUserName == '' or SSH.eNBPassword == '' or SSH.eNBSourceCodePath == '' or SSH.EPCIPAddress == '' or SSH.EPCUserName == '' or SSH.EPCPassword == '' or SSH.EPCType == '' or SSH.EPCSourceCodePath == '' or SSH.ADBIPAddress == '' or SSH.ADBUserName == '' or SSH.ADBPassword == '': + Usage() + sys.exit('Insufficient Parameter') + + SSH.CreateHtmlHeader() + + #read test_case_list.xml file + # if no parameters for XML file, use default value + if SSH.testXMLfile == '': + xml_test_file = sys.path[0] + "/test_case_list.xml" + else: + xml_test_file = sys.path[0] + "/" + SSH.testXMLfile + + xmlTree = ET.parse(xml_test_file) + xmlRoot = xmlTree.getroot() + + exclusion_tests=xmlRoot.findtext('TestCaseExclusionList',default='') + requested_tests=xmlRoot.findtext('TestCaseRequestedList',default='') + all_tests=xmlRoot.findall('testCase') + + exclusion_tests=exclusion_tests.split() + requested_tests=requested_tests.split() + + #check that exclusion tests are well formatted + #(6 digits or less than 6 digits followed by +) + for test in exclusion_tests: + if (not re.match('^[0-9]{6}$', test) and + not re.match('^[0-9]{1,5}\+$', test)): + logging.debug('ERROR: exclusion test is invalidly formatted: ' + test) + sys.exit(1) + else: + logging.debug(test) + + #check that requested tests are well formatted + #(6 digits or less than 6 digits followed by +) + #be verbose + for test in requested_tests: + if (re.match('^[0-9]{6}$', test) or + re.match('^[0-9]{1,5}\+$', test)): + logging.debug('INFO: test group/case requested: ' + test) + else: + logging.debug('ERROR: requested test is invalidly formatted: ' + test) + sys.exit(1) + + #get the list of tests to be done + todo_tests=[] + for test in requested_tests: + if (test_in_list(test, exclusion_tests)): + logging.debug('INFO: test will be skipped: ' + test) + else: + #logging.debug('INFO: test will be run: ' + test) + todo_tests.append(test) + + signal.signal(signal.SIGUSR1, receive_signal) + + for test_case_id in todo_tests: + for test in all_tests: + id = test.get('id') + if test_case_id != id: + continue + SSH.testCase_id = id + SSH.desc = test.findtext('desc') + action = test.findtext('class') + if (CheckClassValidity(action, id) == False): + continue + ShowTestID() + GetParametersFromXML(action) + if action == 'Initialize_UE' or action == 'Attach_UE' or action == 'Detach_UE' or action == 'Ping' or action == 'Iperf' or action == 'Reboot_UE': + terminate_ue_flag = False + SSH.GetAllUEDevices(terminate_ue_flag) + if action == 'Build_eNB': + SSH.BuildeNB() + elif action == 'Initialize_eNB': + SSH.InitializeeNB() + elif action == 'Terminate_eNB': + SSH.TerminateeNB() + elif action == 'Initialize_UE': + SSH.InitializeUE() + elif action == 'Terminate_UE': + SSH.TerminateUE() + elif action == 'Attach_UE': + SSH.AttachUE() + elif action == 'Detach_UE': + SSH.DetachUE() + elif action == 'Ping': + SSH.Ping() + elif action == 'Iperf': + SSH.Iperf() + elif action == 'Reboot_UE': + SSH.RebootUE() + elif action == 'Initialize_HSS': + SSH.InitializeHSS() + elif action == 'Terminate_HSS': + SSH.TerminateHSS() + elif action == 'Initialize_MME': + SSH.InitializeMME() + elif action == 'Terminate_MME': + SSH.TerminateMME() + elif action == 'Initialize_SPGW': + SSH.InitializeSPGW() + elif action == 'Terminate_SPGW': + SSH.TerminateSPGW() + else: + sys.exit('Invalid action') + + SSH.CreateHtmlFooter() +else: + Usage() + sys.exit('Invalid mode') +sys.exit(0) diff --git a/ci-scripts/reportBuildLocally.sh b/ci-scripts/reportBuildLocally.sh new file mode 100755 index 0000000000..609af5f166 --- /dev/null +++ b/ci-scripts/reportBuildLocally.sh @@ -0,0 +1,592 @@ +#!/bin/bash +#/* +# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more +# * contributor license agreements. See the NOTICE file distributed with +# * this work for additional information regarding copyright ownership. +# * The OpenAirInterface Software Alliance licenses this file to You under +# * the OAI Public License, Version 1.1 (the "License"); you may not use this file +# * except in compliance with the License. +# * You may obtain a copy of the License at +# * +# * http://www.openairinterface.org/?page_id=698 +# * +# * Unless required by applicable law or agreed to in writing, software +# * distributed under the License is distributed on an "AS IS" BASIS, +# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# * See the License for the specific language governing permissions and +# * limitations under the License. +# *------------------------------------------------------------------------------- +# * For more information about the OpenAirInterface (OAI) Software Alliance: +# * contact@openairinterface.org +# */ + +function usage { + echo "OAI Local Build Report script" + echo " Original Author: Raphael Defosseux" + echo "" + echo "Usage:" + echo "------" + echo "" + echo " reportBuildLocally.sh [OPTIONS]" + echo "" + echo "Options:" + echo "--------" + echo "" + echo " --help OR -h" + echo " Print this help message." + echo "" + echo "Job Options:" + echo "------------" + echo "" + echo " --git-url #### OR -gu ####" + echo " Specify the URL of the GIT Repository." + echo "" + echo " --job-name #### OR -jn ####" + echo " Specify the name of the Jenkins job." + echo "" + echo " --build-id #### OR -id ####" + echo " Specify the build ID of the Jenkins job." + echo "" + echo " --trigger merge-request OR -mr" + echo " --trigger push OR -pu" + echo " Specify trigger action of the Jenkins job. Either a merge-request event or a push event." + echo "" + echo "Merge-Request Options:" + echo "----------------------" + echo "" + echo " --src-branch #### OR -sb ####" + echo " Specify the source branch of the merge request." + echo "" + echo " --src-commit #### OR -sc ####" + echo " Specify the source commit ID (SHA-1) of the merge request." + echo "" + echo " --target-branch #### OR -tb ####" + echo " Specify the target branch of the merge request (usually develop)." + echo "" + echo " --target-commit #### OR -tc ####" + echo " Specify the target commit ID (SHA-1) of the merge request." + echo "" + echo "Push Options:" + echo "----------------------" + echo "" + echo " --branch #### OR -br ####" + echo " Specify the branch of the push event." + echo "" + echo " --commit #### OR -co ####" + echo " Specify the commit ID (SHA-1) of the push event." + echo "" + echo "" +} + +function trigger_usage { + echo "OAI Local Build Report script" + echo " Original Author: Raphael Defosseux" + echo "" + echo " --trigger merge-request OR -mr" + echo " --trigger push OR -pu" + echo " Specify trigger action of the Jenkins job. Either a merge-request event or a push event." + echo "" +} + +function details_table { + echo "

$1

" >> $3 + + echo " " >> $3 + echo " " >> $3 + echo " " >> $3 + echo " " >> $3 + echo " " >> $3 + echo " " >> $3 + echo " " >> $3 + + LIST_MESSAGES=`egrep "error:|warning:" $2 | egrep -v "jobserver unavailable|Clock skew detected.|flexran.proto"` + COMPLETE_MESSAGE="start" + for MESSAGE in $LIST_MESSAGES + do + if [[ $MESSAGE == *"/home/ubuntu/tmp"* ]] + then + FILENAME=`echo $MESSAGE | sed -e "s#^/home/ubuntu/tmp/##" -e "s#^.*/tmp/CI-eNB/##" | awk -F ":" '{print $1}'` + LINENB=`echo $MESSAGE | awk -F ":" '{print $2}'` + if [ "$COMPLETE_MESSAGE" != "start" ] + then + COMPLETE_MESSAGE=`echo $COMPLETE_MESSAGE | sed -e "s#‘#'#g" -e "s#’#'#g"` + echo " " >> $3 + echo " " >> $3 + fi + echo " " >> $3 + echo " " >> $3 + echo " " >> $3 + else + if [[ $MESSAGE == *"warning:"* ]] || [[ $MESSAGE == *"error:"* ]] + then + MSGTYPE=`echo $MESSAGE | sed -e "s#:##g"` + echo " " >> $3 + COMPLETE_MESSAGE="" + else + COMPLETE_MESSAGE=$COMPLETE_MESSAGE" "$MESSAGE + fi + fi + done + + if [ "$COMPLETE_MESSAGE" != "start" ] + then + COMPLETE_MESSAGE=`echo $COMPLETE_MESSAGE | sed -e "s#‘#'#g" -e "s#’#'#g"` + echo " " >> $3 + echo " " >> $3 + fi + echo "
FileLine NumberStatusMessage
$COMPLETE_MESSAGE
$FILENAME$LINENB$MSGTYPE$COMPLETE_MESSAGE
" >> $3 +} + +function summary_table_header { + echo "

$1

" >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html +} + +function summary_table_row { + echo " " >> ./build_results.html + echo " " >> ./build_results.html +} + +function summary_table_footer { + echo "
ElementStatusNb ErrorsNb Warnings
$1" >> ./build_results.html + if [ -f $2 ] + then + STATUS=`egrep -c "$3" $2` + if [ $STATUS -eq 1 ] + then + echo " OK" >> ./build_results.html + else + echo " KO" >> ./build_results.html + fi + NB_ERRORS=`egrep -c "error:" $2` + if [ $NB_ERRORS -eq 0 ] + then + echo " $NB_ERRORS" >> ./build_results.html + else + echo " $NB_ERRORS" >> ./build_results.html + fi + NB_WARNINGS=`egrep "warning:" $2 | egrep -v "jobserver unavailable|Clock skew detected.|flexran.proto" | egrep -c "warning:"` + if [ $NB_WARNINGS -eq 0 ] + then + echo " $NB_WARNINGS" >> ./build_results.html + else + if [ $NB_WARNINGS -gt 20 ] + then + echo " $NB_WARNINGS" >> ./build_results.html + else + echo " $NB_WARNINGS" >> ./build_results.html + fi + fi + if [ $NB_ERRORS -ne 0 ] || [ $NB_WARNINGS -ne 0 ] + then + details_table "$1" $2 $4 + fi + else + echo " Unknown" >> ./build_results.html + echo " --" >> ./build_results.html + echo " --" >> ./build_results.html + fi + echo "
" >> ./build_results.html +} + +function sca_summary_table_header { + echo "

$1

" >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo "0" > ccp_error_cnt.txt +} + +function sca_summary_table_row { + echo " " >> ./build_results.html + echo " " >> ./build_results.html + if [ -f $1 ] + then + NB_ERRORS=`egrep "severity=\"error\"" $1 | egrep -c "id=\"$3\""` + echo " " >> ./build_results.html + echo " " >> ./build_results.html + if [ -f ccp_error_cnt.txt ] + then + TOTAL_ERRORS=`cat ccp_error_cnt.txt` + TOTAL_ERRORS=$((TOTAL_ERRORS + NB_ERRORS)) + echo $TOTAL_ERRORS > ccp_error_cnt.txt + fi + else + echo " " >> ./build_results.html + echo " " >> ./build_results.html + fi + echo " " >> ./build_results.html +} + +function sca_summary_table_footer { + if [ -f $1 ] + then + NB_ERRORS=`egrep -c "severity=\"error\"" $1` + NB_WARNINGS=`egrep -c "severity=\"warning\"" $1` + if [ -f ccp_error_cnt.txt ] + then + echo " " >> ./build_results.html + echo " " >> ./build_results.html + TOTAL_ERRORS=`cat ccp_error_cnt.txt` + TOTAL_ERRORS=$((NB_ERRORS - TOTAL_ERRORS)) + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + rm -f ccp_error_cnt.txt + fi + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + else + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + if [ -f ccp_error_cnt.txt ] + then + rm -f ccp_error_cnt.txt + fi + fi + echo " " >> ./build_results.html + echo "
Error / Warning TypeNb ErrorsNb Warnings
$2$NB_ERRORSN/AUnknownUnknown
Others$TOTAL_ERRORS$NB_WARNINGS
Total$NB_ERRORS$NB_WARNINGS
TotalUnknownUnknown
" >> ./build_results.html + echo "

Full details in zipped artifact (cppcheck/cppcheck.xml)

" >> ./build_results.html + echo "

Graphical Interface tool : cppcheck-gui -l cppcheck/cppcheck.xml

" >> ./build_results.html +} + +jb_checker=0 +mr_checker=0 +pu_checker=0 +MR_TRIG=0 +PU_TRIG=0 +while [[ $# -gt 0 ]] +do +key="$1" + +case $key in + -h|--help) + shift + usage + exit 0 + ;; + -gu|--git-url) + GIT_URL="$2" + let "jb_checker|=0x1" + shift + shift + ;; + -jn|--job-name) + JOB_NAME="$2" + let "jb_checker|=0x2" + shift + shift + ;; + -id|--build-id) + BUILD_ID="$2" + let "jb_checker|=0x4" + shift + shift + ;; + --trigger) + TRIG="$2" + case $TRIG in + merge-request) + MR_TRIG=1 + ;; + push) + PU_TRIG=1 + ;; + *) + echo "" + echo "Syntax Error: Invalid Trigger option -> $TRIG" + echo "" + trigger_usage + exit + ;; + esac + let "jb_checker|=0x8" + shift + shift + ;; + -mr) + MR_TRIG=1 + let "jb_checker|=0x8" + shift + ;; + -pu) + PU_TRIG=1 + let "jb_checker|=0x8" + shift + ;; + -sb|--src-branch) + SOURCE_BRANCH="$2" + let "mr_checker|=0x1" + shift + shift + ;; + -sc|--src-commit) + SOURCE_COMMIT_ID="$2" + let "mr_checker|=0x2" + shift + shift + ;; + -tb|--target-branch) + TARGET_BRANCH="$2" + let "mr_checker|=0x4" + shift + shift + ;; + -tc|--target-commit) + TARGET_COMMIT_ID="$2" + let "mr_checker|=0x8" + shift + shift + ;; + -br|--branch) + SOURCE_BRANCH="$2" + let "pu_checker|=0x1" + shift + shift + ;; + -co|--commit) + SOURCE_COMMIT_ID="$2" + let "pu_checker|=0x2" + shift + shift + ;; + *) + echo "Syntax Error: unknown option: $key" + echo "" + usage + exit 1 + ;; +esac + +done + +if [ $jb_checker -ne 15 ] +then + echo "" + echo "Syntax Error: missing job information." + # TODO : list missing info + echo "" + exit 1 +fi + +if [ $PU_TRIG -eq 1 ] && [ $MR_TRIG -eq 1 ] +then + echo "" + echo "Syntax Error: trigger action incoherent." + echo "" + trigger_usage + exit 1 +fi + +if [ $PU_TRIG -eq 1 ] +then + if [ $pu_checker -ne 3 ] + then + echo "" + echo "Syntax Error: missing push information." + # TODO : list missing info + echo "" + exit 1 + fi +fi + +if [ $MR_TRIG -eq 1 ] +then + if [ $mr_checker -ne 15 ] + then + echo "" + echo "Syntax Error: missing merge-request information." + # TODO : list missing info + echo "" + exit 1 + fi +fi + +echo "" > ./build_results.html +echo "" >> ./build_results.html +echo "" >> ./build_results.html +echo " Build Results for $JOB_NAME job build #$BUILD_ID" >> ./build_results.html +echo " " >> ./build_results.html +echo "" >> ./build_results.html +echo "" >> ./build_results.html +echo " " >> ./build_results.html +echo " " >> ./build_results.html +echo " " >> ./build_results.html +echo " " >> ./build_results.html +echo " " >> ./build_results.html +echo "
" >> ./build_results.html +echo " " >> ./build_results.html +echo " \"\"" >> ./build_results.html +echo " " >> ./build_results.html +echo " " >> ./build_results.html +echo " " >> ./build_results.html +echo " Job Summary -- Job: $JOB_NAME -- Build-ID: $BUILD_ID" >> ./build_results.html +echo "
" >> ./build_results.html +echo "
" >> ./build_results.html +echo " " >> ./build_results.html +echo " " >> ./build_results.html +echo " " >> ./build_results.html +echo " " >> ./build_results.html +echo " " >> ./build_results.html +echo " " >> ./build_results.html +echo " " >> ./build_results.html +if [ $PU_TRIG -eq 1 ]; then echo " " >> ./build_results.html; fi +if [ $MR_TRIG -eq 1 ]; then echo " " >> ./build_results.html; fi +echo " " >> ./build_results.html +if [ $PU_TRIG -eq 1 ] +then + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html +fi +if [ $MR_TRIG -eq 1 ] +then + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html +fi +echo "
GIT Repository$GIT_URL
Job TriggerPush EventMerge-Request
Branch$SOURCE_BRANCH
Commit ID$SOURCE_COMMIT_ID
Source Branch$SOURCE_BRANCH
Source Commit ID$SOURCE_COMMIT_ID
Target Branch$TARGET_BRANCH
Target Commit ID$TARGET_COMMIT_ID
" >> ./build_results.html +echo "

Build Summary

" >> ./build_results.html + +if [ -f ./oai_rules_result.txt ] +then + echo "

OAI Coding / Formatting Guidelines Check

" >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + echo " " >> ./build_results.html + NB_FILES=`cat ./oai_rules_result.txt` + if [ $NB_FILES = "0" ] + then + if [ $PU_TRIG -eq 1 ]; then echo " " >> ./build_results.html; fi + if [ $MR_TRIG -eq 1 ]; then echo " " >> ./build_results.html; fi + else + if [ $PU_TRIG -eq 1 ]; then echo " " >> ./build_results.html; fi + if [ $MR_TRIG -eq 1 ]; then echo " " >> ./build_results.html; fi + fi + echo " " >> ./build_results.html + echo "
Result:All files in repository follow OAI rules. All modified files in Merge-Request follow OAI rules.$NB_FILES files in repository DO NOT follow OAI rules. $NB_FILES modified files in Merge-Request DO NOT follow OAI rules.
" >> ./build_results.html +fi + +echo "

Ubuntu 16.04 LTS -- Summary

" >> ./build_results.html + +sca_summary_table_header "OAI Static Code Analysis with CPPCHECK" +sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Uninitialized variable" uninitvar +sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Uninitialized struct member" uninitStructMember +sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Memory leak" memleak +sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Memory is freed twice" doubleFree +sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Resource leak" resourceLeak +sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Possible null pointer dereference" nullPointer +sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Array access out of bounds" arrayIndexOutOfBounds +sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Buffer is accessed out of bounds" bufferAccessOutOfBounds +sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Expression depends on order of evaluation of side effects" unknownEvaluationOrder +sca_summary_table_footer ./archives/cppcheck/cppcheck.xml + +summary_table_header "OAI Build eNB -- USRP option" +summary_table_row "LTE SoftModem - Release 14" ./archives/enb_usrp/lte-softmodem.Rel14.txt "Built target lte-softmodem" ./enb_usrp_row1.html +summary_table_row "Coding - Release 14" ./archives/enb_usrp/coding.Rel14.txt "Built target coding" ./enb_usrp_row2.html +summary_table_row "OAI USRP device if - Release 14" ./archives/enb_usrp/oai_usrpdevif.Rel14.txt "Built target oai_usrpdevif" ./enb_usrp_row3.html +summary_table_row "Parameters Lib Config - Release 14" ./archives/enb_usrp/params_libconfig.Rel14.txt "Built target params_libconfig" ./enb_usrp_row4.html +summary_table_footer + +summary_table_header "OAI Build basic simulator option" +summary_table_row "Basic Simulator eNb - Release 14" ./archives/basic_sim/basic_simulator_enb.txt "Built target lte-softmodem" ./basic_sim_row1.html +summary_table_row "Basic Simulator UE - Release 14" ./archives/basic_sim/basic_simulator_ue.txt "Built target lte-uesoftmodem" ./basic_sim_row2.html +summary_table_row "Conf 2 UE data - Release 14" ./archives/basic_sim/conf2uedata.Rel14.txt "Built target conf2uedata" ./basic_sim_row3.html +summary_table_footer + +summary_table_header "OAI Build Physical simulators option" +summary_table_row "DL Simulator - Release 14" ./archives/phy_sim/dlsim.Rel14.txt "Built target dlsim" ./phy_sim_row1.html +summary_table_row "UL Simulator - Release 14" ./archives/phy_sim/ulsim.Rel14.txt "Built target ulsim" ./phy_sim_row2.html +summary_table_row "Coding - Release 14" ./archives/phy_sim/coding.Rel14.txt "Built target coding" ./phy_sim_row3.html +summary_table_footer + +summary_table_header "OAI Build eNB -- ETHERNET transport option" +summary_table_row "LTE SoftModem w/o S1 - Release 14" ./archives/enb_eth/lte-softmodem-nos1.Rel14.txt "Built target lte-softmodem" ./enb_eth_row1.html +summary_table_row "Coding - Release 14" ./archives/enb_eth/coding.Rel14.txt "Built target coding" ./enb_eth_row2.html +summary_table_row "OAI ETHERNET transport - Release 14" ./archives/enb_eth/oai_eth_transpro.Rel14.txt "Built target oai_eth_transpro" ./enb_eth_row3.html +summary_table_row "Parameters Lib Config - Release 14" ./archives/enb_eth/params_libconfig.Rel14.txt "Built target params_libconfig" ./enb_eth_row4.html +summary_table_row "RB Tools - Release 14" ./archives/enb_eth/rb_tool.Rel14.txt "Built target rb_tool" ./enb_eth_row5.html +summary_table_row "NAS Mesh - Release 14" ./archives/enb_eth/nasmesh.Rel14.txt "Built target nasmesh" ./enb_eth_row6.html +summary_table_footer + +summary_table_header "OAI Build UE -- ETHERNET transport option" +summary_table_row "LTE UE SoftModem w/o S1 - Release 14" ./archives/ue_eth/lte-uesoftmodem-nos1.Rel14.txt "Built target lte-uesoftmodem" ./ue_eth_row1.html +summary_table_row "Coding - Release 14" ./archives/ue_eth/coding.Rel14.txt "Built target coding" ./ue_eth_row2.html +summary_table_row "OAI ETHERNET transport - Release 14" ./archives/ue_eth/oai_eth_transpro.Rel14.txt "Built target oai_eth_transpro" ./ue_eth_row3.html +summary_table_row "Parameters Lib Config - Release 14" ./archives/ue_eth/params_libconfig.Rel14.txt "Built target params_libconfig" ./ue_eth_row4.html +summary_table_row "RB Tools - Release 14" ./archives/ue_eth/rb_tool.Rel14.txt "Built target rb_tool" ./ue_eth_row5.html +summary_table_row "NAS Mesh - Release 14" ./archives/ue_eth/nasmesh.Rel14.txt "Built target nasmesh" ./ue_eth_row6.html +summary_table_footer + +echo "

Red Hat (CentOS Linux release 7.4.1708) -- Summary

" >> ./build_results.html + +summary_table_header "Red Hat -- OAI Build eNB -- USRP option" +summary_table_row "LTE SoftModem - Release 14" ./archives/red_hat/lte-softmodem.Rel14.txt "Built target lte-softmodem" ./enb_usrp_rh_row1.html +summary_table_row "Coding - Release 14" ./archives/red_hat/coding.Rel14.txt "Built target coding" ./enb_usrp_rh_row2.html +summary_table_row "OAI USRP device if - Release 14" ./archives/red_hat/oai_usrpdevif.Rel14.txt "Built target oai_usrpdevif" ./enb_usrp_rh_row3.html +summary_table_row "Parameters Lib Config - Release 14" ./archives/red_hat/params_libconfig.Rel14.txt "Built target params_libconfig" ./enb_usrp_rh_row4.html +summary_table_footer + +echo "

Details

" >> ./build_results.html + +for DETAILS_TABLE in `ls ./enb_usrp_row*.html` +do + cat $DETAILS_TABLE >> ./build_results.html +done +for DETAILS_TABLE in `ls ./basic_sim_row*.html` +do + cat $DETAILS_TABLE >> ./build_results.html +done +for DETAILS_TABLE in `ls ./phy_sim_row*.html` +do + cat $DETAILS_TABLE >> ./build_results.html +done +for DETAILS_TABLE in `ls ./enb_eth_row*.html` +do + cat $DETAILS_TABLE >> ./build_results.html +done +for DETAILS_TABLE in `ls ./ue_eth_row*.html` +do + cat $DETAILS_TABLE >> ./build_results.html +done +for DETAILS_TABLE in `ls ./enb_usrp_rh_row*.html` +do + cat $DETAILS_TABLE >> ./build_results.html +done +rm -f ./enb_usrp_row*.html ./basic_sim_row*.html ./phy_sim_row*.html ./enb_eth_row*.html ./ue_eth_row*.html ./enb_usrp_rh_row*.html + +echo "" >> ./build_results.html +echo "" >> ./build_results.html + +exit 0 diff --git a/ci-scripts/runTestOnVM.sh b/ci-scripts/runTestOnVM.sh new file mode 100755 index 0000000000..68438758f5 --- /dev/null +++ b/ci-scripts/runTestOnVM.sh @@ -0,0 +1,318 @@ +#!/bin/bash +#/* +# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more +# * contributor license agreements. See the NOTICE file distributed with +# * this work for additional information regarding copyright ownership. +# * The OpenAirInterface Software Alliance licenses this file to You under +# * the OAI Public License, Version 1.1 (the "License"); you may not use this file +# * except in compliance with the License. +# * You may obtain a copy of the License at +# * +# * http://www.openairinterface.org/?page_id=698 +# * +# * Unless required by applicable law or agreed to in writing, software +# * distributed under the License is distributed on an "AS IS" BASIS, +# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# * See the License for the specific language governing permissions and +# * limitations under the License. +# *------------------------------------------------------------------------------- +# * For more information about the OpenAirInterface (OAI) Software Alliance: +# * contact@openairinterface.org +# */ + +function usage { + echo "OAI VM Test Run script" + echo " Original Author: Raphael Defosseux" + echo " Default:" + echo " -- eNB with USRP" + echo "" + echo "Usage:" + echo "------" + echo " runTestOnVM.sh [OPTIONS]" + echo "" + echo "Options:" + echo "--------" + echo " --job-name #### OR -jn ####" + echo " Specify the name of the Jenkins job." + echo "" + echo " --build-id #### OR -id ####" + echo " Specify the build ID of the Jenkins job." + echo "" + echo " --workspace #### OR -ws ####" + echo " Specify the workspace." + echo "" + echo " --variant enb-usrp OR -v1" + echo " --variant basic-sim OR -v2" + echo " --variant phy-sim OR -v3" + echo " --variant cppcheck OR -v4" + echo " --variant enb-ethernet OR -v7" + echo " --variant ue-ethernet OR -v8" + echo " Specify the variant to build." + echo "" + echo " --keep-vm-alive OR -k" + echo " Keep the VM alive after the build." + echo "" + echo " --help OR -h" + echo " Print this help message." + echo "" +} + +function variant_usage { + echo "OAI VM Test Run script" + echo " Original Author: Raphael Defosseux" + echo "" + echo " --variant enb-usrp OR -v1" + echo " --variant basic-sim OR -v2" + echo " --variant phy-sim OR -v3" + echo " --variant cppcheck OR -v4" + echo " --variant enb-ethernet OR -v7" + echo " --variant ue-ethernet OR -v8" + echo "" +} + +if [ $# -lt 1 ] || [ $# -gt 9 ] +then + echo "Syntax Error: not the correct number of arguments" + echo "" + usage + exit 1 +fi + +VM_TEMPLATE=ci- +JOB_NAME=XX +BUILD_ID=XX +VM_NAME=ci-enb-usrp +ARCHIVES_LOC=enb_usrp/test +KEEP_VM_ALIVE=0 +RUN_OPTIONS="none" +STATUS=0 + +while [[ $# -gt 0 ]] +do +key="$1" + +case $key in + -h|--help) + shift + usage + exit 0 + ;; + -jn|--job-name) + JOB_NAME="$2" + shift + shift + ;; + -id|--build-id) + BUILD_ID="$2" + shift + shift + ;; + -ws|--workspace) + JENKINS_WKSP="$2" + shift + shift + ;; + -k|--keep-vm-alive) + KEEP_VM_ALIVE=1 + shift + ;; + -v1) + VM_NAME=ci-enb-usrp + shift + ;; + -v2) + VM_NAME=ci-basic-sim + shift + ;; + -v3) + VM_NAME=ci-phy-sim + RUN_OPTIONS="./run_exec_autotests.bash -g \"01510*\" -q -np -b" + ARCHIVES_LOC=phy_sim/test + shift + ;; + -v4) + VM_NAME=ci-cppcheck + shift + ;; + -v7) + VM_NAME=ci-enb-ethernet + shift + ;; + -v8) + VM_NAME=ci-ue-ethernet + shift + ;; + --variant) + variant="$2" + case $variant in + enb-usrp) + VM_NAME=ci-enb-usrp + ;; + basic-sim) + VM_NAME=ci-basic-sim + ;; + phy-sim) + VM_NAME=ci-phy-sim + RUN_OPTIONS="./run_exec_autotests.bash -g \"01510*\" -q -np -b" + ARCHIVES_LOC=phy_sim/test + ;; + cppcheck) + VM_NAME=ci-cppcheck + ;; + enb-ethernet) + VM_NAME=ci-enb-ethernet + ;; + ue-ethernet) + VM_NAME=ci-ue-ethernet + ;; + *) + echo "" + echo "Syntax Error: Invalid Variant option -> $variant" + echo "" + variant_usage + exit 1 + esac + shift + shift + ;; + *) + echo "Syntax Error: unknown option: $key" + echo "" + usage + exit 1 +esac +done + +if [ "$JOB_NAME" == "XX" ] || [ "$BUILD_ID" == "XX" ] +then + VM_TEMPLATE=ci- +else + VM_TEMPLATE=${JOB_NAME}-b${BUILD_ID}- +fi + +VM_NAME=`echo $VM_NAME | sed -e "s#ci-#$VM_TEMPLATE#"` +VM_CMDS=${VM_NAME}_cmds.txt +ARCHIVES_LOC=${JENKINS_WKSP}/archives/${ARCHIVES_LOC} + +echo "VM_NAME = $VM_NAME" +echo "VM_CMD_FILE = $VM_CMDS" +echo "JENKINS_WKSP = $JENKINS_WKSP" +echo "ARCHIVES_LOC = $ARCHIVES_LOC" + +echo "############################################################" +echo "Waiting for VM to be started" +echo "############################################################" +uvt-kvm wait $VM_NAME --insecure + +VM_IP_ADDR=`uvt-kvm ip $VM_NAME` +echo "$VM_NAME has for IP addr = $VM_IP_ADDR" + +if [ "$RUN_OPTIONS" == "none" ] +then + echo "No run on VM testing for this variant currently" +else + + echo "############################################################" + echo "Running test script on VM ($VM_NAME)" + echo "############################################################" + echo "echo \"sudo apt-get --yes --quiet install bc \"" > $VM_CMDS + echo "sudo apt-get update > bc-install.txt 2>&1" >> $VM_CMDS + echo "sudo apt-get --yes install bc >> bc-install.txt 2>&1" >> $VM_CMDS + echo "cd tmp" >> $VM_CMDS + echo "echo \"source oaienv\"" >> $VM_CMDS + echo "source oaienv" >> $VM_CMDS + echo "echo \"cd cmake_targets/autotests\"" >> $VM_CMDS + echo "cd cmake_targets/autotests" >> $VM_CMDS + echo "echo \"rm -Rf log\"" >> $VM_CMDS + echo "rm -Rf log" >> $VM_CMDS + echo "$RUN_OPTIONS" | sed -e 's@"@\\"@g' -e 's@^@echo "@' -e 's@$@"@' >> $VM_CMDS + echo "$RUN_OPTIONS" >> $VM_CMDS + echo "cp /home/ubuntu/bc-install.txt log" >> $VM_CMDS + echo "cd log" >> $VM_CMDS + echo "zip -r -qq tmp.zip *.* 0*" >> $VM_CMDS + + ssh -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < $VM_CMDS + + echo "############################################################" + echo "Creating a tmp folder to store results and artifacts" + echo "############################################################" + + if [ -d $ARCHIVES_LOC ] + then + rm -Rf $ARCHIVES_LOC + fi + mkdir --parents $ARCHIVES_LOC + + scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/autotests/log/tmp.zip $ARCHIVES_LOC + pushd $ARCHIVES_LOC + unzip -qq -DD tmp.zip + rm tmp.zip + if [ -f results_autotests.xml ] + then + FUNCTION=`echo $VM_NAME | sed -e "s@$VM_TEMPLATE@@"` + NEW_NAME=`echo "results_autotests.xml" | sed -e "s@results_autotests@results_autotests-$FUNCTION@"` + echo "" > $NEW_NAME + echo "" >> $NEW_NAME + cat results_autotests.xml >> $NEW_NAME + sed -e "s@TEMPLATE@$FUNCTION@" $JENKINS_WKSP/ci-scripts/template.xsl > $FUNCTION.xsl + #mv results_autotests.xml $NEW_NAME + rm results_autotests.xml + fi + popd + + if [ $KEEP_VM_ALIVE -eq 0 ] + then + echo "############################################################" + echo "Destroying VM" + echo "############################################################" + uvt-kvm destroy $VM_NAME + ssh-keygen -R $VM_IP_ADDR + fi + rm -f $VM_CMDS + + echo "############################################################" + echo "Checking build status" + echo "############################################################" + + LOG_FILES=`ls $ARCHIVES_LOC/results_autotests*.xml` + NB_FOUND_FILES=0 + NB_RUNS=0 + NB_FAILURES=0 + + for FULLFILE in $LOG_FILES + do + TESTSUITES=`egrep "testsuite errors" $FULLFILE` + for TESTSUITE in $TESTSUITES + do + if [[ "$TESTSUITE" == *"tests="* ]] + then + RUNS=`echo $TESTSUITE | awk 'BEGIN{FS="="}{print $2}END{}' | sed -e "s@'@@g" ` + NB_RUNS=$((NB_RUNS + RUNS)) + fi + if [[ "$TESTSUITE" == *"failures="* ]] + then + FAILS=`echo $TESTSUITE | awk 'BEGIN{FS="="}{print $2}END{}' | sed -e "s@'@@g" ` + NB_FAILURES=$((NB_FAILURES + FAILS)) + fi + done + NB_FOUND_FILES=$((NB_FOUND_FILES + 1)) + done + + echo "NB_FOUND_FILES = $NB_FOUND_FILES" + echo "NB_RUNS = $NB_RUNS" + echo "NB_FAILURES = $NB_FAILURES" + + if [ $NB_FOUND_FILES -eq 0 ]; then STATUS=-1; fi + if [ $NB_RUNS -eq 0 ]; then STATUS=-1; fi + if [ $NB_FAILURES -ne 0 ]; then STATUS=-1; fi + + if [ $STATUS -eq 0 ] + then + echo "STATUS seems OK" + else + echo "STATUS failed?" + fi + +fi + +exit $STATUS diff --git a/ci-scripts/template-host.xml b/ci-scripts/template-host.xml new file mode 100644 index 0000000000..efd9912c7a --- /dev/null +++ b/ci-scripts/template-host.xml @@ -0,0 +1,27 @@ + + + hvm + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ci-scripts/template.xsl b/ci-scripts/template.xsl new file mode 100644 index 0000000000..874a4c62bf --- /dev/null +++ b/ci-scripts/template.xsl @@ -0,0 +1,65 @@ + + + + + + + +

TEMPLATE Results Summary

+ + + + + + + + + + + + + + + + + +
HostnameNb TestsFailuresTimestamp
+ + + + + + + +
+

Details

+ + + + + + + + + + + + + + + + + +
Test NameResultTimeDescription
+ + + + + + + +
+ + +
+
diff --git a/ci-scripts/xml_files/enb_usrp210_band7.xml b/ci-scripts/xml_files/enb_usrp210_band7.xml new file mode 100644 index 0000000000..7a56cf384c --- /dev/null +++ b/ci-scripts/xml_files/enb_usrp210_band7.xml @@ -0,0 +1,244 @@ + + + 010101 050101 060101 070101 040101 030101 040301 040501 040601 040602 040603 040604 040605 040641 040401 040201 030201 030111 040301 040511 040611 040612 040613 040614 040615 040651 040401 040201 030201 030121 040301 040521 040621 040622 040623 040661 040401 040201 030201 + + + + Build_eNB + Build eNB (USRP) + -w USRP -x -c --eNB + + + + Initialize_eNB + Initialize eNB (FDD/Band7/5MHz) + -O ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf + + + + Initialize_eNB + Initialize eNB (FDD/Band7/10MHz) + -O ci-scripts/conf_files/enb.band7.tm1.50PRB.usrpb210.conf + + + + Initialize_eNB + Initialize eNB (FDD/Band7/20MHz) + -O ci-scripts/conf_files/enb.band7.tm1.100PRB.usrpb210.conf + + + + Terminate_eNB + Terminate eNB + + + + Initialize_UE + Initialize UE + + + + Terminate_UE + Terminate UE + + + + Attach_UE + Attach UE + + + + Detach_UE + Detach UE + + + + Ping + ping (5MHz - 20 sec) + -c 20 + 5 + + + + Ping + ping (10MHz - 20 sec) + -c 20 + 5 + + + + Ping + ping (20MHz - 20 sec) + -c 20 + 5 + + + + Iperf + iperf (5MHz - DL/6Mbps/UDP)(60 sec) + -u -b 6M -t 60 -i 1 + 50 + + + + Iperf + iperf (5MHz - DL/13Mbps/UDP)(60 sec) + -u -b 13M -t 60 -i 1 + 50 + + + + Iperf + iperf (5MHz - DL/15Mbps/UDP)(60 sec) + -u -b 15M -t 60 -i 1 + 50 + + + + Iperf + iperf (5MHz - DL/15Mbps/UDP)(60 sec)(single-ue profile) + -u -b 15M -t 60 -i 1 + 50 + single-ue + + + + Iperf + iperf (5MHz - DL/15Mbps/UDP)(60 sec)(unbalanced profile) + -u -b 15M -t 60 -i 1 + 50 + unbalanced + + + + Iperf + iperf (5MHz - UL/9Mbps/UDP)(60 sec) + -u -b 9M -t 60 -i 1 -R + 50 + + + + Iperf + iperf (10MHz - DL/10Mbps/UDP)(60 sec) + -u -b 10M -t 60 -i 1 + 50 + + + + Iperf + iperf (10MHz - DL/20Mbps/UDP)(60 sec) + -u -b 20M -t 60 -i 1 + 50 + + + + Iperf + iperf (10MHz - DL/30Mbps/UDP)(60 sec) + -u -b 30M -t 60 -i 1 + 50 + + + + Iperf + iperf (10MHz - DL/30Mbps/UDP)(60 sec)(single-ue profile) + -u -b 30M -t 60 -i 1 + 50 + single-ue + + + + Iperf + iperf (10MHz - DL/30Mbps/UDP)(60 sec)(unbalanced profile) + -u -b 30M -t 60 -i 1 + 50 + unbalanced + + + + Iperf + iperf (10MHz - UL/20Mbps/UDP)(60 sec) + -u -b 20M -t 60 -i 1 -R + 50 + + + + Iperf + iperf (20MHz - DL/20Mbps/UDP)(60 sec) + -u -b 20M -t 60 -i 1 + 50 + + + + Iperf + iperf (20MHz - DL/40Mbps/UDP)(60 sec) + -u -b 40M -t 60 -i 1 + 50 + + + + Iperf + iperf (20MHz - DL/70Mbps/UDP)(60 sec) + -u -b 70M -t 60 -i 1 + 50 + + + + Iperf + iperf (20MHz - DL/70Mbps/UDP)(60 sec)(single-ue profile) + -u -b 70M -t 60 -i 1 + 50 + single-ue + + + + Iperf + iperf (20MHz - DL/70Mbps/UDP)(60 sec)(unbalanced profile) + -u -b 70M -t 60 -i 1 + 50 + unbalanced + + + + Iperf + iperf (20MHz - UL/20Mbps/UDP)(60 sec) + -u -b 20M -t 60 -i 1 -R + 50 + + + + Initialize_HSS + Initialize HSS + + + + Initialize_MME + Initialize MME + + + + Initialize_SPGW + Initialize SPGW + + + diff --git a/ci-scripts/xml_files/enb_usrpB210_band7_50PRB.xml b/ci-scripts/xml_files/enb_usrpB210_band7_50PRB.xml new file mode 100644 index 0000000000..56dfe2be72 --- /dev/null +++ b/ci-scripts/xml_files/enb_usrpB210_band7_50PRB.xml @@ -0,0 +1,65 @@ + + + 030101 040101 040301 040501 040401 040201 030201 + + + + Initialize_eNB + Initialize eNB (FDD/Band1/5MHz/info) + -O ci-scripts/conf_files/enb.band7.tm1.50PRB.usrpb210.conf + + + + Terminate_eNB + Terminate eNB + + + + Initialize_UE + Initialize UE + + + + Terminate_UE + Terminate UE + + + + Attach_UE + Attach UE + + + + Detach_UE + Detach UE + + + + Ping + ping (20 sec) + -c 20 + 5 + + + diff --git a/ci-scripts/xml_files/test_case_list_template.xml b/ci-scripts/xml_files/test_case_list_template.xml new file mode 100644 index 0000000000..bc06dc75ce --- /dev/null +++ b/ci-scripts/xml_files/test_case_list_template.xml @@ -0,0 +1,142 @@ + + + 010101 050101 060101 070101 030101 030201 050201 070201 060201 + 010102 030102 030103 030104 030105 030106 + + + + + Build_eNB + Build eNB (USRP) + -w USRP -x -c --eNB + + + + Build_eNB + Build eNB (USRP) + -w BLADERF -x -c --eNB + + + + Initialize_eNB + Initialize eNB (FDD/Band1/5MHz/info) + -O enb.band7.tm1.50PRB.usrpb210.conf + + + + Initialize_eNB + Initialize eNB (FDD/Band1/10MHz/info) + -O 10M.band1.FDD.info.conf + + + + Initialize_eNB + Initialize eNB (FDD/Band1/20MHz/info) + -O 20M.band1.FDD.info.conf + + + + Initialize_eNB + Initialize eNB (TDD/Band38/5MHz/info) + -O 5M.band38.TDD.info.conf + + + + Initialize_eNB + Initialize eNB (TDD/Band38/10MHz/info) + -O 10M.band38.TDD.info.conf + + + + Initialize_eNB + Initialize eNB (TDD/Band38/20MHz/info) + -O 20M.band38.TDD.info.conf + + + + Terminate_eNB + Terminate eNB + + + + + + Initialize_UE + Initialize UE + + + + Terminate_UE + Terminate UE + + + + Attach_UE + Attach UE + + + + Detach_UE + Detach UE + + + + + Reboot_UE + Reboot UE + + + + + + Initialize_HSS + Initialize HSS + + + + Terminate_HSS + Terminate HSS + + + + Initialize_MME + Initialize MME + + + + Terminate_MME + Terminate MME + + + + Initialize_SPGW + Initialize SPGW + + + + Terminate_SPGW + Terminate SPGW + + + diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt index 4e3a9db84e..7864ef75fc 100644 --- a/cmake_targets/CMakeLists.txt +++ b/cmake_targets/CMakeLists.txt @@ -170,7 +170,7 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${C_FLAGS_PROCESSOR} -std=gnu99 -Wall -Wstrict-prototypes -fno-strict-aliasing -rdynamic -funroll-loops -Wno-packed-bitfield-compat -fPIC ") # add autotools definitions that were maybe used! set(CMAKE_C_FLAGS - "${CMAKE_C_FLAGS} -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_FCNTL_H=1 -DHAVE_ARPA_INET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_STRERROR=1 -DHAVE_SOCKET=1 -DHAVE_MEMSET=1 -DHAVE_GETTIMEOFDAY=1 -DHAVE_STDLIB_H=1 -DHAVE_MALLOC=1 -DHAVE_LIBSCTP -D'MAKE_VERSION(a,b,c)=((a)*256+(b)*16+c)'" + "${CMAKE_C_FLAGS} -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_FCNTL_H=1 -DHAVE_ARPA_INET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_STRERROR=1 -DHAVE_SOCKET=1 -DHAVE_MEMSET=1 -DHAVE_GETTIMEOFDAY=1 -DHAVE_STDLIB_H=1 -DHAVE_MALLOC=1 -DHAVE_LIBSCTP -DASN_DISABLE_OER_SUPPORT -D'MAKE_VERSION(a,b,c)=((a)*256+(b)*16+c)'" ) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${C_FLAGS_PROCESSOR} -std=c++11 " @@ -244,7 +244,7 @@ add_boolean_option(TEST_OMG False "???") add_boolean_option(DEBUG_OMG False "???") add_boolean_option(XFORMS False "This adds the possibility to see the signal oscilloscope") add_boolean_option(PRINT_STATS False "This adds the possibility to see the status") -add_boolean_option(T_TRACER False "Activate the T tracer, a debugging/monitoring framework" ) +add_boolean_option(T_TRACER True "Activate the T tracer, a debugging/monitoring framework" ) add_boolean_option(UE_AUTOTEST_TRACE False "Activate UE autotest specific logs") add_boolean_option(UE_DEBUG_TRACE False "Activate UE debug trace") add_boolean_option(UE_TIMING_TRACE False "Activate UE timing trace") @@ -262,7 +262,6 @@ if (${ENABLE_ITTI}) # add .h files if depend on (this one is generated) ${ITTI_DIR}/intertask_interface.h ${ITTI_DIR}/intertask_interface.c - ${ITTI_DIR}/intertask_interface_dump.c ${ITTI_DIR}/backtrace.c ${ITTI_DIR}/memory_pools.c ${ITTI_DIR}/signals.c @@ -281,8 +280,8 @@ endif (${ENABLE_ITTI}) # (so creating new asn.1 objects instead of modifying the object attributes) # New C code source file, cmake must be re-run (instead of re-running make only) ############# -set(asn1c_call "${OPENAIR_CMAKE}/tools/generate_asn1") -set(fix_asn1c_call "${OPENAIR_CMAKE}/tools/fix_asn1") +# set(asn1c_call "${OPENAIR_CMAKE}/tools/generate_asn1") +# set(fix_asn1c_call "${OPENAIR_CMAKE}/tools/fix_asn1") set(asn1_generated_dir ${OPENAIR_BIN_DIR}) set(protoc_call "${OPENAIR_CMAKE}/tools/generate_protobuf") @@ -302,31 +301,35 @@ elseif (${RRC_ASN1_VERSION} STREQUAL "CBA") elseif (${RRC_ASN1_VERSION} STREQUAL "Rel10") make_version(RRC_VERSION 10 2 0) set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn) -else() - make_version(RRC_VERSION 14 3 0) - set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/RRC-e30.asn) +elseif (${RRC_ASN1_VERSION} STREQUAL "Rel11") + make_version(RRC_VERSION 11 18 0) + set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-11.18.0.asn1) +elseif (${RRC_ASN1_VERSION} STREQUAL "Rel12") + make_version(RRC_VERSION 12 16 0) + set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-12.16.0.asn1) +elseif (${RRC_ASN1_VERSION} STREQUAL "Rel13") + make_version(RRC_VERSION 13 9 1) + set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-13.9.1.asn1) +elseif (${RRC_ASN1_VERSION} STREQUAL "Rel14") + make_version(RRC_VERSION 14 7 0) + set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-14.7.0.asn1) +elseif (${RRC_ASN1_VERSION} STREQUAL "Rel15") + make_version(RRC_VERSION 15 2 2) + set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.2.2.asn1) endif (${RRC_ASN1_VERSION} STREQUAL "Rel8") add_definitions(-DRRC_VERSION=${RRC_VERSION}) set (RRC_FULL_DIR ${asn1_generated_dir}/RRC_${RRC_ASN1_VERSION}) -if(NOT EXISTS ${asn1c_call}) - message( FATAL_ERROR "The script ${asn1c_call} must be present" ) -endif(NOT EXISTS ${asn1c_call}) -execute_process(COMMAND ${asn1c_call} ${RRC_FULL_DIR} ${RRC_GRAMMAR} +message("calling asn1c -pdu=all -fcompound-names -gen-PER -no-gen-OER -no-gen-example -D ${RRC_FULL_DIR} ${RRC_GRAMMAR}") +execute_process(COMMAND mkdir -p ${RRC_FULL_DIR} + COMMAND env asn1c -pdu=all -fcompound-names -gen-PER -no-gen-OER -no-gen-example -D ${RRC_FULL_DIR} ${RRC_GRAMMAR} RESULT_VARIABLE ret) if (NOT ${ret} STREQUAL 0) - message(FATAL_ERROR "${asn1c_call}: error") -endif (NOT ${ret} STREQUAL 0) -if(NOT EXISTS ${fix_asn1c_call}) - message( FATAL_ERROR "The script ${fix_asn1c_call} must be present" ) -endif(NOT EXISTS ${fix_asn1c_call}) -execute_process(COMMAND ${fix_asn1c_call} ${RRC_FULL_DIR} RRC ${RRC_ASN1_VERSION} - RESULT_VARIABLE ret) -if (NOT ${ret} STREQUAL 0) - message(FATAL_ERROR "${fix_asn1c_call}: error") + message(FATAL_ERROR "${ret}: error") endif (NOT ${ret} STREQUAL 0) + file(GLOB rrc_source ${RRC_FULL_DIR}/*.c) file(GLOB rrc_h ${RRC_FULL_DIR}/*.h) -set(rrc_h ${rrc_h} ${RRC_FULL_DIR}/asn1_constants.h) +set(rrc_h ${rrc_h} ${RRC_FULL_DIR}/asn_constant.h) set_source_files_properties(${rrc_source} PROPERTIES COMPILE_FLAGS -w) # suppress warnings from generated code add_library(RRC_LIB ${rrc_h} ${rrc_source} ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1_msg.c @@ -336,9 +339,9 @@ include_directories ("${RRC_FULL_DIR}") # add the command to generate the source code # Warning: if you modify ASN.1 source file to generate new C files, cmake should be re-run instead of make add_custom_command ( - OUTPUT ${RRC_FULL_DIR}/asn1_constants.h - COMMAND ${asn1c_call} ${RRC_FULL_DIR} ${RRC_GRAMMAR} - COMMAND ${fix_asn1c_call} ${RRC_FULL_DIR} RRC ${RRC_ASN1_VERSION} + OUTPUT ${RRC_FULL_DIR}/asn_constant.h + COMMAND mkdir -p ${RRC_FULL_DIR} + COMMAND env asn1c -pdu=all -fcompound-names -gen-PER -no-gen-OER -no-gen-example -D ${RRC_FULL_DIR} ${RRC_GRAMMAR} DEPENDS ${RRC_GRAMMAR} ) @@ -346,65 +349,56 @@ add_custom_command ( # Same limitation as described in RRC: unknown generated file list # so we generate it at cmake time ############## -add_list1_option(S1AP_RELEASE R10 "S1AP ASN.1 grammar version" R8 R9 R10) +add_list1_option(S1AP_RELEASE R14 "S1AP ASN.1 grammar version" R8 R9 R10 R14 R15) set(S1AP_DIR ${OPENAIR3_DIR}/S1AP) if (${S1AP_RELEASE} STREQUAL "R8") make_version(S1AP_VERSION 8 10 0) - set (ASN1RELDIR R8.10) + set(S1AP_ASN_FILES "s1ap-8.10.0.asn1") elseif (${S1AP_RELEASE} STREQUAL "R9") - make_version(S1AP_VERSION 9 8 0) - set (ASN1RELDIR R9.8) + make_version(S1AP_VERSION 9 10 0) + set(S1AP_ASN_FILES "s1ap-9.10.0.asn1") elseif (${S1AP_RELEASE} STREQUAL "R10") - make_version(S1AP_VERSION 10 5 0) - set (ASN1RELDIR R10.5) + make_version(S1AP_VERSION 10 9 0) + set(S1AP_ASN_FILES "s1ap-10.9.0.asn1") +elseif (${S1AP_RELEASE} STREQUAL "R11") + make_version(S1AP_VERSION 11 8 0) + set(S1AP_ASN_FILES "s1ap-11.8.0.asn1") +elseif (${S1AP_RELEASE} STREQUAL "R12") + make_version(S1AP_VERSION 12 7 0) + set(S1AP_ASN_FILES "s1ap-12.7.0.asn1") +elseif (${S1AP_RELEASE} STREQUAL "R13") + make_version(S1AP_VERSION 13 6 0) + set(S1AP_ASN_FILES "s1ap-13.6.0.asn1") +elseif (${S1AP_RELEASE} STREQUAL "R14") + make_version(S1AP_VERSION 14 5 0) + set(S1AP_ASN_FILES "s1ap-14.5.0.asn1") +else (${S1AP_RELEASE} STREQUAL "R15") + make_version(S1AP_VERSION 15 1 0) + set(S1AP_ASN_FILES "s1ap-15.1.0.asn1") endif(${S1AP_RELEASE} STREQUAL "R8") add_definitions(-DS1AP_VERSION=${S1AP_VERSION}) -set(S1AP_ASN_DIR ${S1AP_DIR}/MESSAGES/ASN1/${ASN1RELDIR}) -set(S1AP_ASN_FILES - ${S1AP_ASN_DIR}/S1AP-CommonDataTypes.asn - ${S1AP_ASN_DIR}/S1AP-Constants.asn - ${S1AP_ASN_DIR}/S1AP-IEs.asn - ${S1AP_ASN_DIR}/S1AP-PDU.asn - ) -set(S1AP_C_DIR ${asn1_generated_dir}/S1AP_${ASN1RELDIR}) -#message("calling ${asn1c_call} ${S1AP_C_DIR} ${S1AP_ASN_FILES}") -execute_process(COMMAND ${asn1c_call} ${S1AP_C_DIR} ${S1AP_ASN_FILES} +set(S1AP_ASN_DIR ${S1AP_DIR}/MESSAGES/ASN1/${S1AP_RELEASE}) +set(S1AP_C_DIR ${asn1_generated_dir}/S1AP_${S1AP_RELEASE}) +message("calling ASN1C_PREFIX=S1AP_ asn1c -pdu=all -fcompound-names -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D ${S1AP_C_DIR} ${S1AP_ASN_DIR}/${S1AP_ASN_FILES}") +execute_process(COMMAND mkdir -p ${S1AP_C_DIR} + COMMAND env "ASN1C_PREFIX=S1AP_" asn1c -pdu=all -fcompound-names -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D ${S1AP_C_DIR} ${S1AP_ASN_DIR}/${S1AP_ASN_FILES} RESULT_VARIABLE ret) if (NOT ${ret} STREQUAL 0) - message(FATAL_ERROR "${asn1c_call}: error") -endif (NOT ${ret} STREQUAL 0) -execute_process(COMMAND python ${S1AP_DIR}/MESSAGES/ASN1/asn1tostruct.py -f${S1AP_ASN_DIR}/S1AP-PDU-Contents.asn -o${S1AP_C_DIR} - RESULT_VARIABLE ret) -if (NOT ${ret} STREQUAL 0) - message(FATAL_ERROR "asn1tostruct.py: error") -endif (NOT ${ret} STREQUAL 0) -execute_process(COMMAND ${fix_asn1c_call} ${S1AP_C_DIR} S1AP ${S1AP_RELEASE} - RESULT_VARIABLE ret) -if (NOT ${ret} STREQUAL 0) - message(FATAL_ERROR "${fix_asn1c_call}: error") + message(FATAL_ERROR "${ret}: error") endif (NOT ${ret} STREQUAL 0) file(GLOB S1AP_source ${S1AP_C_DIR}/*.c) -set(S1AP_OAI_generated - ${S1AP_C_DIR}/s1ap_decoder.c - ${S1AP_C_DIR}/s1ap_encoder.c - ${S1AP_C_DIR}/s1ap_xer_print.c - ${S1AP_C_DIR}/s1ap_compare.c - ${S1AP_C_DIR}/s1ap_ies_defs.h - ) file(GLOB s1ap_h ${S1AP_C_DIR}/*.h) -set(s1ap_h ${s1ap_h} ) +set(s1ap_h ${s1ap_h}) add_custom_command ( - OUTPUT ${S1AP_OAI_generated} - COMMAND ${asn1c_call} ${S1AP_C_DIR} ${S1AP_ASN_FILES} - COMMAND python ${S1AP_DIR}/MESSAGES/ASN1/asn1tostruct.py -f${S1AP_ASN_DIR}/S1AP-PDU-Contents.asn -o${S1AP_C_DIR} - COMMAND ${fix_asn1c_call} ${S1AP_C_DIR} S1AP ${S1AP_RELEASE} - DEPENDS ${S1AP_ASN_FILES} - ) + OUTPUT ${S1AP_C_DIR}/S1AP_asn_constant.h + COMMAND mkdir -p ${S1AP_C_DIR} + COMMAND env "ASN1C_PREFIX=S1AP_" asn1c -pdu=all -fcompound-names -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D ${S1AP_C_DIR} ${S1AP_ASN_DIR}/${S1AP_ASN_FILES} + DEPENDS ${S1AP_ASN_DIR}/${S1AP_ASN_FILES} +) add_library(S1AP_LIB - ${S1AP_OAI_generated} ${S1AP_source} ${S1AP_DIR}/s1ap_common.c ) @@ -413,7 +407,6 @@ include_directories ("${S1AP_C_DIR}") include_directories ("${S1AP_DIR}") add_library(S1AP_ENB - ${S1AP_C_DIR}/s1ap_ies_defs.h ${S1AP_DIR}/s1ap_eNB.c ${S1AP_DIR}/s1ap_eNB_context_management_procedures.c ${S1AP_DIR}/s1ap_eNB_decoder.c @@ -428,70 +421,52 @@ add_library(S1AP_ENB ${S1AP_DIR}/s1ap_eNB_ue_context.c ) - - #X2AP # Same limitation as described in RRC/S1AP: unknown generated file list # so we generate it at cmake time ############## -add_list1_option(X2AP_RELEASE R11 "X2AP ASN.1 grammar version" R10 R11) -set(X2AP_DIR ${OPENAIR2_DIR}/X2AP) -if (${X2AP_RELEASE} STREQUAL "R10") - make_version(S1AP_VERSION 10 0 0) - set (ASN1RELDIR R.UNKNOWN) -elseif (${X2AP_RELEASE} STREQUAL "R11") - make_version(S1AP_VERSION 11 2 0) - set (ASN1RELDIR R11.2) -endif(${X2AP_RELEASE} STREQUAL "R10") -add_definitions(-DX2AP_VERSION=${X2AP_VERSION}) -set(X2AP_ASN_DIR ${X2AP_DIR}/MESSAGES/ASN1/${ASN1RELDIR}) -set(X2AP_ASN_FILES - ${X2AP_ASN_DIR}/X2AP-CommonDataTypes.asn - ${X2AP_ASN_DIR}/X2AP-Constants.asn - ${X2AP_ASN_DIR}/X2AP-IEs.asn - ${X2AP_ASN_DIR}/X2AP-PDU.asn - ${X2AP_ASN_DIR}/X2AP-Containers.asn - ) +add_list1_option(X2AP_RELEASE R14 "X2AP ASN.1 grammar version" R8 R11 R12 R14 R15) -set(X2AP_C_DIR ${asn1_generated_dir}/X2AP_${ASN1RELDIR}) -#message("calling ${asn1c_call} ${X2AP_C_DIR} ${X2AP_ASN_FILES}") -execute_process(COMMAND ${asn1c_call} ${X2AP_C_DIR} ${X2AP_ASN_FILES} +set(X2AP_DIR ${OPENAIR2_DIR}/X2AP) +if (${X2AP_RELEASE} STREQUAL "R8") + make_version(X2AP_VERSION 8 9 0) + set(X2AP_ASN_FILES x2ap-8.9.0.asn1) +elseif (${X2AP_RELEASE} STREQUAL "R11") + make_version(X2AP_VERSION 11 9 0) + set(X2AP_ASN_FILES x2ap-11.9.0.asn1) +elseif (${X2AP_RELEASE} STREQUAL "R12") + make_version(X2AP_VERSION 12 9 0) + set(X2AP_ASN_FILES x2ap-12.9.0.asn1) +elseif (${X2AP_RELEASE} STREQUAL "R14") + make_version(X2AP_VERSION 14 6 0) + set(X2AP_ASN_FILES x2ap-14.6.0.asn1) +elseif (${X2AP_RELEASE} STREQUAL "R15") + make_version(X2AP_VERSION 15 1 0) + set(X2AP_ASN_FILES x2ap-15.1.0.asn1) +endif(${X2AP_RELEASE} STREQUAL "R8") +add_definitions(-DX2AP_VERSION=${X2AP_VERSION}) +set(X2AP_ASN_DIR ${X2AP_DIR}/MESSAGES/ASN1/${X2AP_RELEASE}) +set(X2AP_C_DIR ${asn1_generated_dir}/X2AP_${X2AP_RELEASE}) +message("calling ASN1C_PREFIX=X2AP_ asn1c -pdu=all -fcompound-names -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D ${X2AP_C_DIR} ${X2AP_ASN_DIR}/${X2AP_ASN_FILES}") +execute_process(COMMAND mkdir -p ${X2AP_C_DIR} + COMMAND env "ASN1C_PREFIX=X2AP_" asn1c -pdu=all -fcompound-names -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D ${X2AP_C_DIR} ${X2AP_ASN_DIR}/${X2AP_ASN_FILES} RESULT_VARIABLE ret) if (NOT ${ret} STREQUAL 0) - message(FATAL_ERROR "${asn1c_call}: error") -endif (NOT ${ret} STREQUAL 0) -execute_process(COMMAND python ${X2AP_DIR}/MESSAGES/ASN1/asn1tostruct.py -f ${X2AP_ASN_DIR}/X2AP-PDU-Contents.asn -o ${X2AP_C_DIR} - RESULT_VARIABLE ret) -if (NOT ${ret} STREQUAL 0) - message(FATAL_ERROR "asn1tostruct.py: error") -endif (NOT ${ret} STREQUAL 0) -execute_process(COMMAND ${fix_asn1c_call} ${X2AP_C_DIR} X2AP ${X2AP_RELEASE} - RESULT_VARIABLE ret) -if (NOT ${ret} STREQUAL 0) - message(FATAL_ERROR "${fix_asn1c_call}: error") + message(FATAL_ERROR "${ret}: error") endif (NOT ${ret} STREQUAL 0) file(GLOB X2AP_source ${X2AP_C_DIR}/*.c) -set(X2AP_OAI_generated - ${X2AP_C_DIR}/x2ap_decoder.c - ${X2AP_C_DIR}/x2ap_encoder.c - ${X2AP_C_DIR}/x2ap_xer_print.c - ${X2AP_C_DIR}/x2ap_ies_defs.h - ) file(GLOB x2ap_h ${X2AP_C_DIR}/*.h) -set(x2ap_h ${x2ap_h} ) +set(x2ap_h ${x2ap_h}) -#message("calling ${X2AP_DIR}/MESSAGES/ASN1/asn1tostruct.py -f ${X2AP_ASN_DIR}/X2AP-PDU-Contents.asn -o ${X2AP_C_DIR}") add_custom_command ( - OUTPUT ${X2AP_OAI_generated} - COMMAND ${asn1c_call} ${X2AP_C_DIR} ${X2AP_ASN_FILES} - COMMAND python ${X2AP_DIR}/MESSAGES/ASN1/asn1tostruct.py -f ${X2AP_ASN_DIR}/X2AP-PDU-Contents.asn -o ${X2AP_C_DIR} - COMMAND ${fix_asn1c_call} ${X2AP_C_DIR} X2AP ${X2AP_RELEASE} - DEPENDS ${X2AP_ASN_FILES} + OUTPUT ${X2AP_C_DIR}/X2AP_asn_constant.h + COMMAND mkdir -p ${X2AP_C_DIR} + COMMAND env "ASN1C_PREFIX=X2AP_" asn1c -pdu=all -fcompound-names -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D ${X2AP_C_DIR} ${X2AP_ASN_DIR}/${X2AP_ASN_FILES} + DEPENDS ${X2AP_ASN_DIR}/${X2AP_ASN_FILES} ) add_library(X2AP_LIB - ${X2AP_OAI_generated} ${X2AP_source} ${X2AP_DIR}/x2ap_common.c ) @@ -515,12 +490,12 @@ set (CONFIG_SOURCES ${CONFIG_ROOTDIR}/config_load_configmodule.c ${CONFIG_ROOTDIR}/config_userapi.c ${CONFIG_ROOTDIR}/config_cmdline.c - ) + ) set (CONFIG_LIBCONFIG_SOURCES ${CONFIG_ROOTDIR}/libconfig/config_libconfig.c - ) + ) add_library(params_libconfig MODULE ${CONFIG_LIBCONFIG_SOURCES} ) -target_link_libraries(params_libconfig config) +target_link_libraries(params_libconfig config) # shared library loader set (SHLIB_LOADER_SOURCES ${OPENAIR_DIR}/common/utils/load_module_shlib.c @@ -630,6 +605,10 @@ add_boolean_option(MESSAGE_CHART_GENERATOR False "For generating sequenc add_boolean_option(MESSAGE_CHART_GENERATOR_RLC_MAC False "trace RLC-MAC exchanges in sequence diagrams") add_boolean_option(MESSAGE_CHART_GENERATOR_PHY False "trace some PHY exchanges in sequence diagrams") +add_boolean_option(UE_EXPANSION False "enable UE_EXPANSION with max 256 UE") +add_boolean_option(PHY_TX_THREAD False "enable UE_EXPANSION with max 256 UE") +add_boolean_option(PRE_SCD_THREAD False "enable UE_EXPANSION with max 256 UE") + ######################## # Include order ########################## @@ -661,6 +640,7 @@ add_boolean_option(SMBV False "Rohde&Schwarz SMBV100A vector add_boolean_option(DEBUG_PHY False "Enable PHY layer debugging options") add_boolean_option(DEBUG_PHY_PROC False "Enable debugging of PHY layer procedures") add_boolean_option(DEBUG_DLSCH False "Enable debugging of DLSCH physical layer channel") +add_boolean_option(MEX False "Enabling compilation with mex") ########################## # NAS LAYER OPTIONS @@ -917,8 +897,8 @@ set(UTIL_SRC ${OPENAIR2_DIR}/UTIL/FIFO/pad_list.c ${OPENAIR2_DIR}/UTIL/LISTS/list.c ${OPENAIR2_DIR}/UTIL/LISTS/list2.c - ${OPENAIR2_DIR}/UTIL/LOG/log.c - ${OPENAIR2_DIR}/UTIL/LOG/vcd_signal_dumper.c + ${OPENAIR_DIR}/common/utils/LOG/log.c +# ${OPENAIR2_DIR}/UTIL/LOG/vcd_signal_dumper.c ${OPENAIR2_DIR}/UTIL/MATH/oml.c ${OPENAIR2_DIR}/UTIL/MEM/mem_block.c # ${OPENAIR2_DIR}/UTIL/OCG/OCG.c @@ -980,7 +960,7 @@ set(SECU_CN_SRC ) add_library(SECU_CN ${SECU_CN_SRC}) -# Physical Channel Procedures Scheduling +# Physical Channel Procedures Scheduling ################################" set(SCHED_SRC ${OPENAIR1_DIR}/SCHED/fapi_l1.c @@ -1073,13 +1053,14 @@ set(PHY_TURBOIF add_library(coding MODULE ${PHY_TURBOSRC} ) set(PHY_SRC_COMMON # depend on code generation from asn1c - ${RRC_FULL_DIR}/asn1_constants.h + ${RRC_FULL_DIR}/asn_constant.h # actual source ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dci_tools_common.c ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/lte_mcs.c # ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/slss.c # ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/sldch.c # ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/slsch.c + ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/get_pmi.c ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/group_hopping.c ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/phich_common.c ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pcfich_common.c @@ -1088,6 +1069,7 @@ set(PHY_SRC_COMMON ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/prach_common.c ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pucch_common.c ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_scrambling.c + ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/lte_gold_generic.c ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/srs_modulation.c ${OPENAIR1_DIR}/PHY/MODULATION/ofdm_mod.c ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_sync_time.c @@ -1109,7 +1091,6 @@ set(PHY_SRC_COMMON ${OPENAIR1_DIR}/PHY/INIT/init_top.c ${OPENAIR1_DIR}/PHY/INIT/lte_parms.c ${OPENAIR1_DIR}/PHY/INIT/lte_param_init.c - ${OPENAIR1_DIR}/PHY/TOOLS/file_output.c ${OPENAIR1_DIR}/PHY/TOOLS/cadd_vv.c ${OPENAIR1_DIR}/PHY/TOOLS/lte_dfts.c ${OPENAIR1_DIR}/PHY/TOOLS/log2_approx.c @@ -1170,6 +1151,7 @@ set(PHY_SRC_UE ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/sss_ue.c ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation.c + ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/linear_preprocessing_rec.c ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dlsch_decoding.c ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dci_tools_ue.c ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/uci_tools_ue.c @@ -1217,6 +1199,32 @@ add_library(PHY ${PHY_SRC}) add_library(PHY_UE ${PHY_SRC_UE}) add_library(PHY_RU ${PHY_SRC_RU}) +#Library for mex functions +#########################3 +set(PHY_MEX_UE + ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/linear_preprocessing_rec.c + ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation.c + ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c + ${OPENAIR1_DIR}/PHY/TOOLS/log2_approx.c + ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/lte_mcs.c + ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/get_pmi.c + ${OPENAIR1_DIR}/PHY/TOOLS/dB_routines.c + ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pmch_common.c + ${OPENAIR1_DIR}/PHY/TOOLS/cadd_vv.c + ${OPENAIR1_DIR}/PHY/TOOLS/cmult_sv.c + ${OPENAIR1_DIR}/PHY/TOOLS/cmult_vv.c + ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation_avx2.c + ${OPENAIR1_DIR}/PHY/TOOLS/signal_energy.c + ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_ue_measurements.c + ${OPENAIR_DIR}/common/utils/LOG/log.c + ${OPENAIR_DIR}/common/utils/T/T.c + ${OPENAIR_DIR}/common/utils/T/local_tracer.c + ${OPENAIR_DIR}/common/config/config_cmdline.c + ${OPENAIR_DIR}/common/config/config_userapi.c + ${OPENAIR_DIR}/common/config/config_load_configmodule.c + ) +add_library(PHY_MEX ${PHY_MEX_UE}) + #Layer 2 library ##################### set(MAC_DIR ${OPENAIR2_DIR}/LAYER2/MAC) @@ -1331,6 +1339,7 @@ set (MAC_SRC ${MAC_DIR}/eNB_scheduler_bch.c ${MAC_DIR}/eNB_scheduler_primitives.c ${MAC_DIR}/eNB_scheduler_RA.c + ${MAC_DIR}/eNB_scheduler_fairRR.c ${MAC_DIR}/eNB_scheduler_phytest.c ${MAC_DIR}/pre_processor.c ${MAC_DIR}/config.c @@ -1811,11 +1820,13 @@ endif() # So, here are some hacks here. Hope this gets fixed in future! if(EXISTS "/usr/include/atlas/cblas.h" OR EXISTS "/usr/include/cblas.h") include_directories("/usr/include/atlas") + LINK_DIRECTORIES("/usr/lib/lapack") LINK_DIRECTORIES("/usr/lib64") LINK_DIRECTORIES("/usr/lib64/atlas") #Added because atlas libraries in CentOS 7 are here! - + if(EXISTS "/usr/lib64/libblas.so" OR EXISTS "/usr/lib/libblas.so") #Case for CentOS7 list(APPEND ATLAS_LIBRARIES blas) + else() # Case for Ubuntu list(APPEND ATLAS_LIBRARIES cblas) endif() @@ -1841,6 +1852,8 @@ else() message("No Blas/Atlas libs found, some targets will fail") endif() +list(APPEND ATLAS_LIBRARIES lapack lapacke) + if (${XFORMS}) include_directories ("/usr/include/X11") set(XFORMS_SOURCE @@ -1898,7 +1911,6 @@ add_definitions(-DASN1_MINIMUM_VERSION=924) add_executable(lte-softmodem ${rrc_h} ${s1ap_h} - ${OPENAIR_BIN_DIR}/messages_xml.h ${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c ${OPENAIR_TARGETS}/RT/USER/lte-enb.c ${OPENAIR_TARGETS}/RT/USER/lte-ru.c @@ -1924,7 +1936,7 @@ add_executable(lte-softmodem target_link_libraries (lte-softmodem -Wl,--start-group - RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB SCHED_RU_LIB PHY_COMMON PHY PHY_RU LFDS L2 + RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB SCHED_RU_LIB PHY_COMMON PHY PHY_RU LFDS L2 ${MSC_LIB} ${RAL_LIB} ${NAS_UE_LIB} ${ITTI_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} ${FLEXRAN_AGENT_LIB} LFDS7 NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_USER_LIB -Wl,--end-group z dl) @@ -1939,7 +1951,6 @@ target_link_libraries (lte-softmodem ${T_LIB}) add_executable(lte-softmodem-nos1 ${rrc_h} ${s1ap_h} - ${OPENAIR_BIN_DIR}/messages_xml.h ${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c ${OPENAIR_TARGETS}/RT/USER/lte-enb.c ${OPENAIR_TARGETS}/RT/USER/lte-ru.c @@ -1963,7 +1974,7 @@ add_executable(lte-softmodem-nos1 ) target_link_libraries (lte-softmodem-nos1 -Wl,--start-group - RRC_LIB SECU_CN SECU_OSA UTIL HASHTABLE SCHED_LIB SCHED_RU_LIB PHY_COMMON PHY PHY_RU LFDS L2 ${MSC_LIB} ${RAL_LIB} ${ITTI_LIB} + RRC_LIB SECU_CN SECU_OSA UTIL HASHTABLE SCHED_LIB SCHED_RU_LIB PHY_COMMON PHY PHY_RU LFDS L2 ${MSC_LIB} ${RAL_LIB} ${ITTI_LIB} ${MIH_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} ${FLEXRAN_AGENT_LIB} LFDS7 NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_USER_LIB -Wl,--end-group z dl ) @@ -1979,7 +1990,6 @@ target_link_libraries (lte-softmodem-nos1 ${T_LIB}) add_executable(lte-uesoftmodem ${rrc_h} ${s1ap_h} - ${OPENAIR_BIN_DIR}/messages_xml.h ${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c ${OPENAIR_TARGETS}/RT/USER/lte-ue.c ${OPENAIR_TARGETS}/RT/USER/lte-uesoftmodem.c @@ -2004,8 +2014,8 @@ add_executable(lte-uesoftmodem target_link_libraries (lte-uesoftmodem -Wl,--start-group - RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_RU_LIB SCHED_UE_LIB PHY_COMMON PHY_UE PHY_RU LFDS L2_UE SIMU - ${MSC_LIB} ${RAL_LIB} ${NAS_UE_LIB} ${ITTI_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} LFDS7 + RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_RU_LIB SCHED_UE_LIB PHY_COMMON PHY_UE PHY_RU LFDS L2_UE SIMU + ${MSC_LIB} ${RAL_LIB} ${NAS_UE_LIB} ${ITTI_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} LFDS7 ${ATLAS_LIBRARIES} NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB -Wl,--end-group z dl) @@ -2019,7 +2029,6 @@ target_link_libraries (lte-uesoftmodem ${T_LIB}) add_executable(lte-uesoftmodem-nos1 ${rrc_h} ${s1ap_h} - ${OPENAIR_BIN_DIR}/messages_xml.h ${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c ${OPENAIR_TARGETS}/RT/USER/lte-ue.c ${OPENAIR_TARGETS}/RT/USER/lte-uesoftmodem.c @@ -2045,8 +2054,8 @@ add_executable(lte-uesoftmodem-nos1 target_link_libraries (lte-uesoftmodem-nos1 -Wl,--start-group - RRC_LIB SECU_CN SECU_OSA UTIL HASHTABLE SCHED_RU_LIB SCHED_UE_LIB PHY_COMMON PHY_UE PHY_RU LFDS L2_UE SIMU ${MSC_LIB} ${RAL_LIB} ${ITTI_LIB} - ${MIH_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} LFDS7 + RRC_LIB SECU_CN SECU_OSA UTIL HASHTABLE SCHED_RU_LIB SCHED_UE_LIB PHY_COMMON PHY_UE PHY_RU LFDS L2_UE SIMU ${MSC_LIB} ${RAL_LIB} ${ITTI_LIB} + ${MIH_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} LFDS7 ${ATLAS_LIBRARIES} NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB -Wl,--end-group z dl ) @@ -2088,7 +2097,6 @@ target_link_libraries (lte-uesoftmodem-nos1 ${T_LIB}) #special case for dlim TM4, which uses its own version of phy_scope code add_executable(dlsim_tm4 -# ${OPENAIR_BIN_DIR}/messages_xml.h ${OPENAIR1_DIR}/SIMULATION/LTE_PHY/dlsim_tm4.c ${OPENAIR1_DIR}/PHY/TOOLS/lte_phy_scope_tm4.c ${T_SOURCE} @@ -2101,7 +2109,6 @@ target_link_libraries (dlsim_tm4 foreach(myExe dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim pdcchsim pucchsim prachsim syncsim) add_executable(${myExe} -# ${OPENAIR_BIN_DIR}/messages_xml.h ${OPENAIR1_DIR}/SIMULATION/LTE_PHY/${myExe}.c ${XFORMS_SOURCE} ${T_SOURCE} @@ -2123,7 +2130,6 @@ add_executable(test_epc_generate_scenario ${OPENAIR2_DIR}/COMMON/messages_def.h ${OPENAIR2_DIR}/COMMON/messages_types.h ${OPENAIR3_DIR}/S1AP/s1ap_eNB_defs.h -# ${OPENAIR_BIN_DIR}/messages_xml.h ) target_link_libraries (test_epc_generate_scenario -Wl,--start-group RRC_LIB S1AP_LIB S1AP_ENB X2AP_LIB GTPV1U LIB_NAS_UE SECU_CN UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY LFDS ${ITTI_LIB} ${MSC_LIB} L2 -Wl,--end-group pthread m rt crypt sctp ${LIBXML2_LIBRARIES} ${LIBXSLT_LIBRARIES} ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} ${CONFIG_LIBRARIES} @@ -2143,7 +2149,6 @@ add_executable(test_epc_play_scenario ${OPENAIR2_DIR}/COMMON/commonDef.h ${OPENAIR2_DIR}/COMMON/messages_def.h ${OPENAIR2_DIR}/COMMON/messages_types.h - ${OPENAIR_BIN_DIR}/messages_xml.h ) target_include_directories(test_epc_play_scenario PUBLIC /usr/local/share/asn1c) target_link_libraries (test_epc_play_scenario @@ -2179,16 +2184,16 @@ endforeach(myExe) if (${T_TRACER}) foreach(i #all "add_executable" definitions (except tests, rb_tool, updatefw) - lte-softmodem lte-softmodem-nos1 + lte-softmodem lte-softmodem-nos1 lte-uesoftmodem lte-uesoftmodem-nos1 dlsim_tm4 dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim - pdcchsim pucchsim prachsim syncsim + pdcchsim pucchsim prachsim syncsim ulsim #all "add_library" definitions ITTI RRC_LIB S1AP_LIB S1AP_ENB X2AP_LIB oai_exmimodevif oai_usrpdevif oai_bladerfdevif oai_lmssdrdevif oai_eth_transpro FLPT_MSG ASYNC_IF FLEXRAN_AGENT HASHTABLE MSC UTIL OMG_SUMO SECU_OSA SECU_CN SCHED_LIB PHY L2 default_sched remote_sched RAL CN_UTILS - GTPV1U SCTP_CLIENT UDP LIB_NAS_UE LFDS LFDS7 SIMU OPENAIR0_LIB) + GTPV1U SCTP_CLIENT UDP LIB_NAS_UE LFDS LFDS7 SIMU OPENAIR0_LIB PHY_MEX) if (TARGET ${i}) add_dependencies(${i} generate_T) endif() @@ -2199,43 +2204,6 @@ endif (${T_TRACER}) # Generated specific cases is not regular code ############################################### -##################"" -# itti symbolic debug print require to generate a specific include file -######################################## - -# retrieve the compiler options to send it to gccxml -get_directory_property( DirDefs COMPILE_DEFINITIONS ) -foreach( d ${DirDefs} ) - list(APPEND itti_compiler_options "-D${d}") -endforeach() -get_directory_property( DirDefs INCLUDE_DIRECTORIES ) -foreach( d ${DirDefs} ) - list(APPEND itti_compiler_options "-I${d}") -endforeach() - -# castxml doesn't work with c11 (gcc 5 default) -# force castxml and clang compilation with gnu89 standard -# we can't use cXX standard as pthread_rwlock_t is gnu standard -list(APPEND itti_compiler_options "-std=gnu89;-D'MAKE_VERSION(a,b,c)=((a)*256+(b)*16+c)'") -set (ITTI_H ${ITTI_DIR}/intertask_interface_types.h) -if(EXISTS /usr/bin/gccxml) - set(xml_command gccxml ${itti_compiler_options} -fxml=${OPENAIR_BIN_DIR}/messages.xml ${ITTI_H}) -else() - set(xml_command castxml --castxml-gccxml ${itti_compiler_options} ${ITTI_H} -o ${OPENAIR_BIN_DIR}/messages.xml) -endif() - -add_custom_command ( - OUTPUT ${OPENAIR_BIN_DIR}/messages.xml - COMMAND ${xml_command} - DEPENDS ${S1AP_OAI_generated} ${RRC_FULL_DIR}/asn1_constants.h - ) - -add_custom_command ( - OUTPUT ${OPENAIR_BIN_DIR}/messages_xml.h - COMMAND sed -e 's/ *//' -e 's/\"/\\\\\"/g' -e 's/^/\"/' -e 's/$$/\\\\n\"/' ${OPENAIR_BIN_DIR}/messages.xml > ${OPENAIR_BIN_DIR}/messages_xml.h - DEPENDS ${OPENAIR_BIN_DIR}/messages.xml ${RRC_FULL_DIR}/asn1_constants.h - ) - ################ # Kernel modules ############### diff --git a/cmake_targets/autotests/run_exec_autotests.bash b/cmake_targets/autotests/run_exec_autotests.bash index ff38ae9d3c..9a1a5cad02 100755 --- a/cmake_targets/autotests/run_exec_autotests.bash +++ b/cmake_targets/autotests/run_exec_autotests.bash @@ -175,10 +175,10 @@ function test_compile() { fi if [ "$result" == "1" ]; then echo_success "$test_case_name.${tags} PASSED" - xUnit_success "compilation" "$test_case_name.$tags" "PASS" "$result_string" "$xmlfile_testcase" + xUnit_success "compilation" "$test_case_name.$tags" "PASS" "$result_string" "$xmlfile_testcase" "" else echo_error "$test_case_name.${tags} FAILED" - xUnit_fail "compilation" "$test_case_name.$tags" "FAIL" "$result_string" "$xmlfile_testcase" + xUnit_fail "compilation" "$test_case_name.$tags" "FAIL" "$result_string" "$xmlfile_testcase" "" fi } @@ -200,6 +200,8 @@ function test_compile() { #\param $14 -> tags to help identify the test case for readability in output xml file #\param $15 => password for the user to run certain commands as sudo #\param $16 => test config file params to be modified +#\param $17 => bypass flag if main_exec if available +#\param $18 -> desc to help identify the test case for readability in output xml file function test_compile_and_run() { xUnit_start @@ -221,6 +223,8 @@ function test_compile_and_run() { tags=${14} mypassword=${15} test_config_file=${16} + bypass_compile=${17} + desc=${18} build_dir=$tdir/$1/build #exec_file=$build_dir/$6 @@ -231,8 +235,6 @@ function test_compile_and_run() { rm -fr $log_dir mkdir -p $log_dir - rm -fr $OPENAIR_DIR/cmake_targets/log - echo "" > $temp_exec_log echo "" > $log_file #echo "log_dir = $log_dir" @@ -243,6 +245,7 @@ function test_compile_and_run() { #echo "pre_exec_file = $pre_exec_file" #echo "nruns = $nruns" echo "class = $class" + #echo "desc = $desc" #compile_prog_array=() #read -a compile_prog_array <<<"$compile_prog" @@ -253,11 +256,19 @@ function test_compile_and_run() { tags_array=() read -a tags_array <<<"$tags" + desc_array=() + readarray -t desc_array <<<"$desc" main_exec_args_array=() readarray -t main_exec_args_array <<< "$exec_args" - + REAL_MAIN_EXEC=`eval "echo $main_exec"` + if [ "$bypass_compile" == "1" ] && [ -f $REAL_MAIN_EXEC ] + then + echo "Bypassing compilation for $main_exec" + else + rm -fr $OPENAIR_DIR/cmake_targets/log + #for search_expr in "${compile_prog_array[@]}" #do echo "Compiling test case $test_case_name Log file = $log_file" @@ -283,6 +294,7 @@ function test_compile_and_run() { }>> $log_file 2>&1 echo "" >> $log_file 2>&1 #done + fi #process the test case if it is that of execution if [ "$class" == "execution" ]; then @@ -291,6 +303,7 @@ function test_compile_and_run() { do global_result=1 result_string="" + PROPER_DESC=`echo ${desc_array[$tags_array_index]} | sed -e "s@^.*lsim.*est case.*(Test@Test@" -e "s@^ *(@@" -e "s/),$//"` for (( run_index=1; run_index <= $nruns; run_index++ )) do @@ -359,16 +372,16 @@ function test_compile_and_run() { if [ "$result_string" == "" ]; then echo_error "execution $test_case_name.$compile_prog.${tags_array[$tags_array_index]} Run_Result = \"$result_string\" Result = FAIL" - xUnit_fail "execution" "$test_case_name.${tags_array[$tags_array_index]}" "FAIL" "$result_string" "$xmlfile_testcase" + xUnit_fail "execution" "$test_case_name.${tags_array[$tags_array_index]}" "FAIL" "$result_string" "$xmlfile_testcase" "$PROPER_DESC" else if [ "$global_result" == "0" ]; then echo_error "execution $test_case_name.${tags_array[$tags_array_index]} Run_Result = \"$result_string\" Result = FAIL" - xUnit_fail "execution" "$test_case_name.${tags_array[$tags_array_index]}" "FAIL" "$result_string" "$xmlfile_testcase" + xUnit_fail "execution" "$test_case_name.${tags_array[$tags_array_index]}" "FAIL" "$result_string" "$xmlfile_testcase" "$PROPER_DESC" fi if [ "$global_result" == "1" ]; then echo_success "execution $test_case_name.${tags_array[$tags_array_index]} Run_Result = \"$result_string\" Result = PASS " - xUnit_success "execution" "$test_case_name.${tags_array[$tags_array_index]}" "PASS" "$result_string" "$xmlfile_testcase" + xUnit_success "execution" "$test_case_name.${tags_array[$tags_array_index]}" "PASS" "$result_string" "$xmlfile_testcase" "$PROPER_DESC" fi fi @@ -393,10 +406,18 @@ Options Run test cases in a group. For example, ./run_exec_autotests "0101* 010102" -p Use password for logging +-np | --no-password + No need for a password +-q | --quiet + Quiet mode; eliminate informational messages and comment prompts. +-b | --bypass-compile + Bypass compilation of main-exec if already present ' } function main () { +QUIET=0 +BYPASS_COMPILE=0 RUN_GROUP=0 SET_PASSWORD=0 passwd="" @@ -419,6 +440,16 @@ until [ -z "$1" ] SET_PASSWORD=1 passwd=$2 shift 2;; + -np|--no-password) + SET_PASSWORD=1 + shift ;; + -q|--quiet) + QUIET=1 + shift ;; + -b|--bypass-compile) + BYPASS_COMPILE=1 + echo "bypass option ON" + shift ;; -h | --help) print_help exit 1;; @@ -449,15 +480,15 @@ xml_conf="$OPENAIR_DIR/cmake_targets/autotests/test_case_list.xml" test_case_list=`xmlstarlet sel -T -t -m /testCaseList/testCase -s A:N:- "@id" -v "@id" -n $xml_conf` test_case_excl_list=`xmlstarlet sel -t -v "/testCaseList/TestCaseExclusionList" $xml_conf` -echo "Test Case Exclusion List = $test_case_excl_list " +if [ $QUIET -eq 0 ]; then echo "Test Case Exclusion List = $test_case_excl_list "; fi test_case_excl_list=`sed "s/\+/\*/g" <<< "$test_case_excl_list" ` # Replace + with * for bash string substituion read -a test_case_excl_array <<< "$test_case_excl_list" -echo "test_case_list = $test_case_list" +if [ $QUIET -eq 0 ]; then echo "test_case_list = $test_case_list"; fi -echo "Test Case Exclusion List = $test_case_excl_list \n" +if [ $QUIET -eq 0 ]; then echo "Test Case Exclusion List = $test_case_excl_list \n"; fi readarray -t test_case_array <<<"$test_case_list" @@ -484,7 +515,7 @@ for search_expr in "${test_case_array[@]}" do if [[ $search_expr == $search_excl ]];then flag_run_test_case=0 - echo_info "Test case $search_expr match found in test case excl group. Will skip the test case for execution..." + if [ $QUIET -eq 0 ]; then echo_info "Test case $search_expr match found in test case excl group. Will skip the test case for execution..."; fi break fi done @@ -533,8 +564,8 @@ for search_expr in "${test_case_array[@]}" search_array_true=() - IFS=\" #set the shell's field separator - set -f #don't try to glob + IFS=\" #set the shell field separator + set -f #dont try to glob #set -- $search_expr_true #split on $IFS for i in $search_expr_true do echo "i = $i" @@ -548,10 +579,10 @@ for search_expr in "${test_case_array[@]}" #echo "arg1 = ${search_array_true[0]}" #echo " arg2 = ${search_array_true[1]}" if [ "$class" == "compilation" ]; then - test_compile "$name" "$compile_prog" "$compile_prog_args" "$pre_exec" "$pre_exec_args" "$main_exec" "$main_exec_args" "search_array_true[@]" "$search_expr_false" "$nruns" "$pre_compile_prog" "$class" "$compile_prog_out" "$tags" + test_compile "$name" "$compile_prog" "$compile_prog_args" "$pre_exec" "$pre_exec_args" "$main_exec" "$main_exec_args" "search_array_true[@]" "$search_expr_false" "$nruns" "$pre_compile_prog" "$class" "$compile_prog_out" "$tags" "$desc" elif [ "$class" == "execution" ]; then echo \'passwd\' | $SUDO killall -q oaisim_nos1 - test_compile_and_run "$name" "$compile_prog" "$compile_prog_args" "$pre_exec" "$pre_exec_args" "$main_exec" "$main_exec_args" "search_array_true[@]" "$search_expr_false" "$nruns" "$pre_compile_prog" "$class" "$compile_prog_out" "$tags" "$mypassword" "$test_config_file" + test_compile_and_run "$name" "$compile_prog" "$compile_prog_args" "$pre_exec" "$pre_exec_args" "$main_exec" "$main_exec_args" "search_array_true[@]" "$search_expr_false" "$nruns" "$pre_compile_prog" "$class" "$compile_prog_out" "$tags" "$mypassword" "$test_config_file" "$BYPASS_COMPILE" "$desc" else echo "Unexpected class of test case...Skipping the test case $name ...." fi diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml index d9ed38a4ec..f0b3256015 100644 --- a/cmake_targets/autotests/test_case_list.xml +++ b/cmake_targets/autotests/test_case_list.xml @@ -955,21 +955,21 @@ --phy_simulators -c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash - $OPENAIR_DIR/cmake_targets/lte-simulators/build/dlsim - -m5 -gF -s-1 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70 - -m4 -gF -s0 -w1.0 -f.2 -n500 -B6 -c4 -z2 -O70 - -m15 -gF -s6.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70 - -m14 -gF -s6.7 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O70 - -m15 -gG -s6.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O30 - -m14 -gG -s1.4 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O30 - -m25 -gF -s17.4 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O70 - -m25 -gF -s17.5 -w1.0 -f.2 -n500 -B25 -c3 -z2 -r1022 -O70 - -m26 -gF -s17.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70 - -m26 -gF -s17.6 -w1.0 -f.2 -n500 -B100 -c2 -z2 -O70 - -m26 -gF -s17.3 -w1.0 -f.2 -n500 -B100 -c2 -z2 -r1600 -O70 - -m26 -gF -s16.6 -w1.0 -f.2 -n500 -B100 -c2 -z2 -r1899 -O70 - -m14 -gF -s6.8 -w1.0 -f.2 -n500 -B50 -c2 -x2 -y2 -z2 -O70 - -m13 -gF -s5.9 -w1.0 -f.2 -n500 -B25 -c3 -x2 -y2 -z2 -O70 + $OPENAIR_DIR/targets/bin/dlsim.Rel14 + -m5 -gF -s-1 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O60 + -m4 -gF -s0 -w1.0 -f.2 -n500 -B6 -c4 -z2 -O60 + -m15 -gF -s6.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O60 + -m15 -gF -s6.7 -w1.0 -f.2 -n500 -B25 -c2 -z2 -O60 + -m15 -gG -s1.4 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O25 + -m15 -gG -s1.4 -w1.0 -f.2 -n500 -B25 -c2 -z2 -O25 + -m25 -gF -s17.4 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O60 + -m25 -gF -s17.5 -w1.0 -f.2 -n500 -B25 -c3 -z2 -r1022 -O60 + -m26 -gF -s17.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O60 + -m26 -gF -s17.6 -w1.0 -f.2 -n500 -B100 -c2 -z2 -O60 + -m26 -gF -s17.3 -w1.0 -f.2 -n500 -B100 -c2 -z2 -r1600 -O60 + -m26 -gF -s16.6 -w1.0 -f.2 -n500 -B100 -c2 -z2 -r1899 -O60 + -m14 -gF -s6.8 -w1.0 -f.2 -n500 -B50 -c2 -x2 -y2 -z2 -O60 + -m13 -gF -s5.9 -w1.0 -f.2 -n500 -B25 -c3 -x2 -y2 -z2 -O60 dlsim.test1 dlsim.test5 dlsim.test6 dlsim.test6b dlsim.test7 dlsim.test7b dlsim.test10 dlsim.test10b dlsim.test11 dlsim.TM2_test1 dlsim.TM2_test1b "passed" segmentation fault|assertion|exiting|fatal @@ -989,13 +989,13 @@ --phy_simulators -c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash - $OPENAIR_DIR/cmake_targets/lte-simulators/build/ulsim - -B25 -m5 -y1 -gN -x1 -s6 -w1.0 -e.1 -P -n500 -O70 -L - -B25 -m16 -y1 -gN -x1 -s12 -w1.0 -e.1 -P -n500 -O70 -L - -B50 -m5 -y1 -gN -x1 -s6 -w1.0 -e.1 -P -n500 -O70 -L - -B50 -m16 -y1 -gN -x1 -s12 -w1.0 -e.1 -P -n500 -O70 -L - -B100 -m5 -y1 -gN -x1 -s6 -w1.0 -e.1 -P -n500 -O70 -L - -B100 -m16 -y1 -gN -x1 -s12 -w1.0 -e.1 -P -n500 -O70 -L + $OPENAIR_DIR/targets/bin/ulsim.Rel14 + -B25 -m5 -y1 -gN -x1 -s6 -w1.0 -e.1 -P -n500 -O70 + -B25 -m16 -y1 -gN -x1 -s12 -w1.0 -e.1 -P -n500 -O70 + -B50 -m5 -y1 -gN -x1 -s6 -w1.0 -e.1 -P -n500 -O70 + -B50 -m16 -y1 -gN -x1 -s12 -w1.0 -e.1 -P -n500 -O70 + -B100 -m5 -y1 -gN -x1 -s6 -w1.0 -e.1 -P -n500 -O70 + -B100 -m16 -y1 -gN -x1 -s12 -w1.0 -e.1 -P -n500 -O70 ulsim.test1 ulsim.test2 ulsim.test3 ulsim.test4 ulsim.test5 ulsim.test6 "passed" segmentation fault|assertion|exiting|fatal diff --git a/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf b/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf index 0994acdf9d..e2ea056ea1 100644 --- a/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf +++ b/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf @@ -49,7 +49,7 @@ eNBs = pucch_delta_shift = 1; pucch_nRB_CQI = 0; pucch_nCS_AN = 0; - pucch_n1_AN = 32; + pucch_n1_AN = 0; pdsch_referenceSignalPower = -24; pdsch_p_b = 0; pusch_n_SB = 1; diff --git a/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.20MHz.conf b/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.20MHz.conf index 5e8cd8007e..b2ac3ccf42 100644 --- a/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.20MHz.conf +++ b/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.20MHz.conf @@ -49,7 +49,7 @@ eNBs = pucch_delta_shift = 1; pucch_nRB_CQI = 0; pucch_nCS_AN = 0; - pucch_n1_AN = 32; + pucch_n1_AN = 0; pdsch_referenceSignalPower = -24; pdsch_p_b = 0; pusch_n_SB = 1; diff --git a/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf b/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf index 53eae1d531..006d59d2a5 100644 --- a/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf +++ b/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf @@ -49,7 +49,7 @@ eNBs = pucch_delta_shift = 1; pucch_nRB_CQI = 0; pucch_nCS_AN = 0; - pucch_n1_AN = 32; + pucch_n1_AN = 0; pdsch_referenceSignalPower = -24; pdsch_p_b = 0; pusch_n_SB = 1; diff --git a/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf b/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf index d30a57041c..8c76d95d4c 100644 --- a/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf +++ b/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf @@ -49,7 +49,7 @@ eNBs = pucch_delta_shift = 1; pucch_nRB_CQI = 0; pucch_nCS_AN = 0; - pucch_n1_AN = 32; + pucch_n1_AN = 0; pdsch_referenceSignalPower = -24; pdsch_p_b = 0; pusch_n_SB = 1; diff --git a/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf b/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf index e90eb3fe51..0d2bb27dcc 100644 --- a/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf +++ b/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf @@ -49,7 +49,7 @@ eNBs = pucch_delta_shift = 1; pucch_nRB_CQI = 0; pucch_nCS_AN = 0; - pucch_n1_AN = 32; + pucch_n1_AN = 0; pdsch_referenceSignalPower = -24; pdsch_p_b = 0; pusch_n_SB = 1; diff --git a/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf b/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf index 5dbecd3813..c418f355f2 100644 --- a/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf +++ b/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf @@ -49,7 +49,7 @@ eNBs = pucch_delta_shift = 1; pucch_nRB_CQI = 0; pucch_nCS_AN = 0; - pucch_n1_AN = 32; + pucch_n1_AN = 0; pdsch_referenceSignalPower = -24; pdsch_p_b = 0; pusch_n_SB = 1; diff --git a/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.10MHz.conf b/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.10MHz.conf index 1397184cc7..89e06d2b1e 100644 --- a/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.10MHz.conf +++ b/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.10MHz.conf @@ -49,7 +49,7 @@ eNBs = pucch_delta_shift = 1; pucch_nRB_CQI = 0; pucch_nCS_AN = 0; - pucch_n1_AN = 32; + pucch_n1_AN = 0; pdsch_referenceSignalPower = -29; pdsch_p_b = 0; pusch_n_SB = 1; diff --git a/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.20MHz.conf b/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.20MHz.conf index caebb36eb2..c8e6c861e0 100644 --- a/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.20MHz.conf +++ b/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.20MHz.conf @@ -49,7 +49,7 @@ eNBs = pucch_delta_shift = 1; pucch_nRB_CQI = 0; pucch_nCS_AN = 0; - pucch_n1_AN = 32; + pucch_n1_AN = 0; pdsch_referenceSignalPower = -29; pdsch_p_b = 0; pusch_n_SB = 1; diff --git a/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.5MHz.conf b/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.5MHz.conf index fe90cdb338..cc00f4f3ea 100644 --- a/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.5MHz.conf +++ b/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.5MHz.conf @@ -49,7 +49,7 @@ eNBs = pucch_delta_shift = 1; pucch_nRB_CQI = 0; pucch_nCS_AN = 0; - pucch_n1_AN = 32; + pucch_n1_AN = 0; pdsch_referenceSignalPower = -29; pdsch_p_b = 0; pusch_n_SB = 1; diff --git a/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf b/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf index 5d9027ce15..6e1e776fed 100644 --- a/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf +++ b/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf @@ -49,7 +49,7 @@ eNBs = pucch_delta_shift = 1; pucch_nRB_CQI = 0; pucch_nCS_AN = 0; - pucch_n1_AN = 32; + pucch_n1_AN = 0; pdsch_referenceSignalPower = -29; pdsch_p_b = 0; pusch_n_SB = 1; diff --git a/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf b/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf index 539f0bd744..7e7c3c185d 100644 --- a/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf +++ b/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf @@ -49,7 +49,7 @@ eNBs = pucch_delta_shift = 1; pucch_nRB_CQI = 0; pucch_nCS_AN = 0; - pucch_n1_AN = 32; + pucch_n1_AN = 0; pdsch_referenceSignalPower = -29; pdsch_p_b = 0; pusch_n_SB = 1; diff --git a/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf b/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf index 58b088002f..3098660c8d 100644 --- a/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf +++ b/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf @@ -49,7 +49,7 @@ eNBs = pucch_delta_shift = 1; pucch_nRB_CQI = 0; pucch_nCS_AN = 0; - pucch_n1_AN = 32; + pucch_n1_AN = 0; pdsch_referenceSignalPower = -29; pdsch_p_b = 0; pusch_n_SB = 1; diff --git a/cmake_targets/build_oai b/cmake_targets/build_oai index 2c7a135707..34b7ba883e 100755 --- a/cmake_targets/build_oai +++ b/cmake_targets/build_oai @@ -42,6 +42,7 @@ conf_nvram_path=$OPENAIR_DIR/openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf MSC_GEN="False" XFORMS="True" +UE_EXPANSION="False" PRINT_STATS="False" VCD_TIMING="False" DEADLINE_SCHEDULER_FLAG_USER="False" @@ -57,7 +58,7 @@ CFLAGS_PROCESSOR_USER="" RUN_GROUP=0 TEST_CASE_GROUP="" BUILD_DOXYGEN=0 -T_TRACER="False" +T_TRACER="True" DISABLE_HARDWARE_DEPENDENCY="False" CMAKE_BUILD_TYPE="" CMAKE_CMD="$CMAKE" @@ -140,8 +141,8 @@ Options Enable deadline scheduler of Linux kernel (>=3.14.x). --disable-cpu-affinity Disables CPU Affinity between UHD/TX/RX Threads (Valid only when deadline scheduler is disabled). By defaulT, CPU Affinity is enabled when not using deadline scheduler. It is enabled only with >2 CPUs. For eNB, CPU_0-> Device library (UHD), CPU_1->TX Threads, CPU_2...CPU_MAX->Rx Threads. For UE, CPU_0->Device Library(UHD), CPU_1..CPU_MAX -> All the UE threads ---T-tracer - Enables the T tracer. +--disable-T-Tracer + Disables the T tracer. --disable-hardware-dependency Disable HW dependency during installation --ue-autotest-trace @@ -209,8 +210,12 @@ function main() { UE=1 echo_info "Will compile UE" shift;; + --mu) + UE_EXPANSION="True" + echo_info "Will compile with UE_EXPANSION" + shift;; --UE-conf-nvram) - conf_nvram_path=$(readlink -f "$1") + conf_nvram_path=$(readlink -f $2) shift 2;; --UE-gen-nvram) gen_nvram_path=$(readlink -f $2) @@ -304,9 +309,9 @@ function main() { CPU_AFFINITY_FLAG_USER="False" echo_info "Disabling CPU Affinity (only valid when not using deadline scheduler)" shift 1;; - --T-tracer) - T_TRACER="True" - echo_info "Enabling the T tracer" + --disable-T-Tracer) + T_TRACER="False" + echo_info "Disabling the T tracer" shift 1;; --disable-hardware-dependency) echo_info "Disabling hardware dependency for compiling software" @@ -503,7 +508,9 @@ function main() { lte_exec=lte-uesoftmodem fi fi - + if [ "$T_TRACER" = "False" ] ; then + lte_build_dir=${lte_build_dir}_noLOG + fi # configuration module libraries, one currently available, using libconfig config_libconfig_shlib=params_libconfig @@ -521,6 +528,9 @@ function main() { echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file echo "set ( CFLAGS_PROCESSOR_USER \"$CFLAGS_PROCESSOR_USER\" )" >> $cmake_file echo "set ( XFORMS $XFORMS )" >> $cmake_file + echo "set ( UE_EXPANSION $UE_EXPANSION )" >> $cmake_file +# echo "set ( PHY_TX_THREAD $UE_EXPANSION )" >> $cmake_file + echo "set ( PRE_SCD_THREAD $UE_EXPANSION )" >> $cmake_file echo "set ( RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file echo "set ( RF_BOARD \"${HW}\")" >> $cmake_file @@ -670,6 +680,7 @@ function main() { cp $OPENAIR_DIR/cmake_targets/tools/init_exmimo2 $dbin fi + # Telnet server compilation ##################### if [ "$BUILD_TELNETSRV" = "1" ] ; then @@ -831,7 +842,8 @@ fi { cd $OPENAIR_DIR/cmake_targets/basic_simulator/enb cmake . - make -j`nproc` coding params_libconfig tcp_bridge_oai lte-softmodem + make -j`nproc` lte-softmodem + make -j`nproc` coding params_libconfig tcp_bridge_oai ln -sf libtcp_bridge_oai.so liboai_device.so cd ../.. } > $dlog/basic_simulator_enb.txt 2>&1 @@ -868,7 +880,7 @@ fi echo "set(PACKAGE_NAME \"simulator_ue\")" >> $cmake_file echo "set (DEADLINE_SCHEDULER \"False\" )" >> $cmake_file echo "set (CPU_AFFINITY \"False\" )" >> $cmake_file - echo "set ( T_TRACER \"False\" )" >> $cmake_file + echo "set ( T_TRACER \"True\" )" >> $cmake_file echo "set (UE_AUTOTEST_TRACE $UE_AUTOTEST_TRACE)" >> $cmake_file echo "set (UE_DEBUG_TRACE $UE_DEBUG_TRACE)" >> $cmake_file echo "set (UE_TIMING_TRACE $UE_TIMING_TRACE)" >> $cmake_file @@ -886,7 +898,8 @@ fi { cd $OPENAIR_DIR/cmake_targets/basic_simulator/ue cmake . - make -j`nproc` coding params_libconfig tcp_bridge_oai lte-uesoftmodem + make -j`nproc` lte-uesoftmodem + make -j`nproc` coding params_libconfig tcp_bridge_oai ln -sf libtcp_bridge_oai.so liboai_device.so cd ../.. } > $dlog/basic_simulator_ue.txt 2>&1 diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index 722db38ffc..5ddce2340b 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -56,7 +56,7 @@ white='\E[37m' reset_color='\E[00m' COLORIZE=1 -cecho() { +cecho() { # Color-echo # arg1 = message # arg2 = color @@ -147,10 +147,10 @@ clean_kernel() { clean_all_files() { set_openair_env dir=$OPENAIR_DIR/cmake_targets - rm -rf $dir/log $OPENAIR_DIR/targets/bin/* + rm -rf $dir/log $OPENAIR_DIR/targets/bin/* rm -rf $dir/lte_build_oai $dir/lte-simulators/build rm -rf $dir/oaisim_build_oai/build $dir/oaisim_build_oai/CMakeLists.txt - rm -rf $dir/autotests/bin $dir/autotests/log $dir/autotests/*/build + rm -rf $dir/autotests/bin $dir/autotests/log $dir/autotests/*/build } ################################### @@ -271,8 +271,23 @@ check_install_usrp_uhd_driver(){ $SUDO apt-get remove libuhd-dev libuhd003 uhd-host -y || true v=$(lsb_release -cs) $SUDO apt-add-repository --remove "deb http://files.ettus.com/binaries/uhd/repo/uhd/ubuntu/$v $v main" - #The new USRP repository - $SUDO add-apt-repository ppa:ettusresearch/uhd -y + # The new USRP repository + # Raphael Defosseux: Adding a loop on adding PPA because in CI the gpg key retrieve may + # timeout due to proxy / network latencies in Eurecom on VM + echo_info "\nAdding PPA repository ettusresearch/uhd\n" + x=0 + while [ $x -le 5 ] + do + if $SUDO add-apt-repository ppa:ettusresearch/uhd -y + then + echo_info "add-apt-repository successful\n" + break + else + echo_info "add-apt-repository failed, retrying...\n" + sleep 30 + fi + x=$((x + 1)) + done $SUDO apt-get update $SUDO apt-get -y --allow-unauthenticated install python python-tk libboost-all-dev libusb-1.0-0-dev $SUDO apt-get -y --allow-unauthenticated install libuhd-dev libuhd003 uhd-host @@ -337,7 +352,7 @@ check_install_bladerf_driver(){ fi $SUDO apt-get install -y --allow-unauthenticated bladerf libbladerf-dev $SUDO apt-get install -y --allow-unauthenticated bladerf-firmware-fx3 - $SUDO apt-get install -y --allow-unauthenticated bladerf-fpga-hostedx40 + $SUDO apt-get install -y --allow-unauthenticated bladerf-fpga-hostedx40 elif [[ "$OS_BASEDISTRO" == "fedora" ]]; then install_bladerf_driver_from_source else @@ -358,7 +373,7 @@ check_install_lmssdr_driver(){ echo_error "lmssdr support implies installing lmssdr drivers and tools" \ " from sources. check:" echo_info "https://open-cells.com/index.php/2017/05/10/limesdr-installation/" - echo_fatal "Cannot compile lmssdr device" + echo_fatal "Cannot compile lmssdr device" fi @@ -455,7 +470,7 @@ check_install_additional_tools (){ python2-matplotlib" fi $SUDO $INSTALLER install -y $PACKAGE_LIST - + $SUDO rm -fr /opt/ssh $SUDO GIT_SSL_NO_VERIFY=true git clone https://gitlab.eurecom.fr/oai/ssh.git /opt/ssh @@ -489,24 +504,24 @@ check_install_oai_software() { $SUDO apt install -y software-properties-common case "$(get_distribution_release)" in "ubuntu14.04") - specific_packages="libtasn1-3-dev gccxml libgnutls-dev libatlas-dev iproute libconfig8-dev" + specific_packages="libtasn1-3-dev libgnutls-dev libatlas-dev iproute libconfig8-dev" # For iperf3 $SUDO add-apt-repository "deb http://archive.ubuntu.com/ubuntu trusty-backports universe" $SUDO apt-get update ;; "ubuntu16.04") - specific_packages="libtasn1-6-dev gccxml libgnutls-dev libatlas-dev iproute libconfig8-dev" + specific_packages="libtasn1-6-dev libgnutls-dev libatlas-dev iproute libconfig8-dev" ;; "ubuntu17.04") - specific_packages="libtasn1-6-dev castxml libgnutls28-dev libatlas-dev iproute libconfig8-dev" + specific_packages="libtasn1-6-dev libgnutls28-dev libatlas-dev iproute libconfig8-dev" ;; "ubuntu17.10") - specific_packages="libtasn1-6-dev castxml libgnutls28-dev iproute libconfig8-dev" + specific_packages="libtasn1-6-dev libgnutls28-dev iproute libconfig8-dev" LAPACK_LIBNAME="liblapack.so-x86_64-linux-gnu" LAPACK_TARGET="/usr/lib/x86_64-linux-gnu/atlas/liblapack.so" ;; "ubuntu18.04") - specific_packages="libtasn1-6-dev castxml libgnutls28-dev iproute2 libconfig-dev" + specific_packages="libtasn1-6-dev libgnutls28-dev iproute2 libconfig-dev" LAPACK_LIBNAME="liblapack.so-x86_64-linux-gnu" LAPACK_TARGET="/usr/lib/x86_64-linux-gnu/atlas/liblapack.so" ;; @@ -534,6 +549,8 @@ check_install_oai_software() { iptables-dev \ libatlas-base-dev \ libblas-dev \ + liblapack-dev\ + liblapacke-dev\ libffi-dev \ libforms-bin \ libforms-dev \ @@ -580,14 +597,11 @@ check_install_oai_software() { echo "EPEL repos not present. Installing them." $SUDO $INSTALLER install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm fi - $SUDO $INSTALLER install -y python-epdb - $SUDO $INSTALLER install -y gccxml + $SUDO $INSTALLER install -y python-epdb vim-common else $SUDO $INSTALLER install -y mscgen pydb - # Fedora repos already contain gccxml's successor castxml. - $SUDO $INSTALLER install -y castxml fi - + $SUDO $INSTALLER install -y \ autoconf \ automake \ @@ -663,8 +677,14 @@ install_asn1c_from_source(){ echo_info "\nInstalling ASN1. The log file for ASN1 installation is here: $asn1_install_log " ( $SUDO rm -rf /tmp/asn1c - GIT_SSL_NO_VERIFY=true git clone https://gitlab.eurecom.fr/oai/asn1c.git /tmp/asn1c + # GIT_SSL_NO_VERIFY=true git clone https://gitlab.eurecom.fr/oai/asn1c.git /tmp/asn1c + git clone https://gitlab.eurecom.fr/oai/asn1c.git /tmp/asn1c cd /tmp/asn1c + # better to use a given commit than a branch in case the branch + # is updated and requires modifications in the source of OAI + #git checkout velichkov_s1ap_plus_option_group + git checkout ec830d70bbb014b769810355a2f321a91ccd8a58 + autoreconf -iv ./configure make -j`nproc` $SUDO make install @@ -674,7 +694,7 @@ install_asn1c_from_source(){ } ################################################# -# 2. compile +# 2. compile ################################################ install_nas_tools() { @@ -703,7 +723,7 @@ set_openair_env(){ [ -f "/.$fullpath" ] || fullpath=`readlink -f $PWD/$fullpath` openair_path=${fullpath%/cmake_targets/*} openair_path=${openair_path%/targets/*} - openair_path=${openair_path%/openair[123]/*} + openair_path=${openair_path%/openair[123]/*} export OPENAIR_DIR=$openair_path export OPENAIR1_DIR=$openair_path/openair1 export OPENAIR2_DIR=$openair_path/openair2 @@ -720,7 +740,7 @@ ppid=$$ arraycounter=1 echo_info "** Trapped CTRL-C. Killing all subprocesses now..." echo_info "** Calling sync now..." -sync +sync while true do FORLOOP=FALSE @@ -738,7 +758,7 @@ do arraycounter=`expr $arraycounter - 1` ## We want to kill child process id first and then parent id's while [ $arraycounter -ne 0 ] - do + do echo "first we send ctrl-c to program" $SUDO kill -INT "${procid[$arraycounter]}" sleep 5 diff --git a/cmake_targets/tools/init_nas_nos1 b/cmake_targets/tools/init_nas_nos1 index f7347e5508..5766020d70 100755 --- a/cmake_targets/tools/init_nas_nos1 +++ b/cmake_targets/tools/init_nas_nos1 @@ -48,7 +48,7 @@ if [ "$1" = "eNB" ]; then else if [ "$1" = "UE" ]; then echo "bring up oai0 interface for UE" - sudo ifconfig oai0 10.0.1.9 netmask 255.255.255.0 broadcast 10.0.1.255 + sudo ifconfig oai0 10.0.1.2 netmask 255.255.255.0 broadcast 10.0.1.255 $OPENAIR_DIR/targets/bin/rb_tool -a -c0 -i0 -z0 -s 10.0.1.2 -t 10.0.1.1 -r 1 fi fi diff --git a/cmake_targets/tools/init_nas_s1 b/cmake_targets/tools/init_nas_s1 old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/test_helper b/cmake_targets/tools/test_helper index cae0bacbe0..f73b53c4be 100644 --- a/cmake_targets/tools/test_helper +++ b/cmake_targets/tools/test_helper @@ -26,15 +26,17 @@ xUnit_start() { # \param $3 testcase result # \param $4 run result # \param $5 XML file local to test case for storing its own results +# \param $6 proper description xUnit_fail() { class=$1 test_case=$2 result=$3 run_result=$4 xmlfile_testcase=$5 + desc=$6 currtime=$(date +%s.%N) time=$(echo "$currtime - $XUNIT_START" | bc -l) - xml="" + xml="" echo -e "$xml" >> "$xmlfile_testcase" XUNIT_TESTCASES_XML="$XUNIT_TESTCASES_XML \n$xml" XUNIT_FAILED=$((XUNIT_FAILED+1)) @@ -48,15 +50,17 @@ xUnit_fail() { # \param $3 testcase result # \param $4 run result # \param $5 XML file local to test case for storing its own results +# \param $6 proper description xUnit_success() { class=$1 test_case=$2 result=$3 run_result=$4 xmlfile_testcase=$5 + desc=$6 currtime=$(date +%s.%N) time=$(echo "$currtime - $XUNIT_START" | bc -l) - xml="" + xml="" echo -e $xml >> $xmlfile_testcase XUNIT_TESTCASES_XML="$XUNIT_TESTCASES_XML \n$xml" XUNIT_SUCCESS=$((XUNIT_SUCCESS+1)) diff --git a/common/config/config_cmdline.c b/common/config/config_cmdline.c index 040cd92faf..8b3026c22b 100644 --- a/common/config/config_cmdline.c +++ b/common/config/config_cmdline.c @@ -29,18 +29,50 @@ * \note * \warning */ +#define _GNU_SOURCE #include #include #include +#include #include #include "config_userapi.h" + +void parse_stringlist(paramdef_t *cfgoptions, char *val) +{ +char *atoken; +char *tokctx; +char *tmpval=strdup(val); +int numelt=0; + + cfgoptions->numelt=0; + + atoken=strtok_r(tmpval, ",",&tokctx); + while(atoken != NULL) { + numelt++ ; + atoken=strtok_r(NULL, ",",&tokctx); + } + free(tmpval); + config_check_valptr(cfgoptions,(char **)&(cfgoptions->strlistptr), sizeof(char *) * numelt); + cfgoptions->numelt=numelt; + + atoken=strtok_r(val, ",",&tokctx); + for( int i=0; inumelt && atoken != NULL ; i++) { + config_check_valptr(cfgoptions,&(cfgoptions->strlistptr[i]),strlen(atoken)+1); + sprintf(cfgoptions->strlistptr[i],"%s",atoken); + printf_params("[LIBCONFIG] %s[%i]: %s\n", cfgoptions->optname,i,cfgoptions->strlistptr[i]); + atoken=strtok_r(NULL, ",",&tokctx); + } + cfgoptions->numelt=numelt; +} + int processoption(paramdef_t *cfgoptions, char *value) { char *tmpval = value; int optisset=0; char defbool[2]="1"; + if ( value == NULL) { if( (cfgoptions->paramflags &PARAMFLAG_BOOL) == 0 ) { /* not a boolean, argument required */ fprintf(stderr,"[CONFIG] command line, option %s requires an argument\n",cfgoptions->optname); @@ -63,6 +95,7 @@ char defbool[2]="1"; break; case TYPE_STRINGLIST: + parse_stringlist(cfgoptions,tmpval); break; case TYPE_UINT32: case TYPE_INT32: @@ -103,15 +136,15 @@ char defbool[2]="1"; if (optisset == 1) { cfgoptions->paramflags = cfgoptions->paramflags | PARAMFLAG_PARAMSET; } - return optisset; } int config_process_cmdline(paramdef_t *cfgoptions,int numoptions, char *prefix) { -char **p = config_get_if()->argv; + + int c = config_get_if()->argc; -int j; +int i,j; char *pp; char *cfgpath; @@ -122,42 +155,74 @@ char *cfgpath; return -1; } - j=0; - p++; - c--; - while (c > 0 && *p != NULL) { - if (strcmp(*p, "-h") == 0 || strcmp(*p, "--help") == 0 ) { - config_printhelp(cfgoptions,numoptions); + j = 0; + i = 0; + while (c > 0 ) { + char *oneargv = strdup(config_get_if()->argv[i]); /* we use strtok_r which modifies its string paramater, and we don't want argv to be modified */ +/* first check help options, either --help, -h or --help_
*/ + if (strncmp(oneargv, "-h",2) == 0 || strncmp(oneargv, "--help",6) == 0 ) { + char *tokctx; + pp=strtok_r(oneargv, "_",&tokctx); + if (pp == NULL || strcasecmp(pp,config_get_if()->argv[i] ) == 0 ) { + if( prefix == NULL) { + config_printhelp(cfgoptions,numoptions); + if ( ! ( CONFIG_ISFLAGSET(CONFIG_NOEXITONHELP))) + exit_fun("[CONFIG] Exiting after displaying help\n"); + } + } else { + pp=strtok_r(NULL, " ",&tokctx); + if ( prefix != NULL && pp != NULL && strncasecmp(prefix,pp,strlen(pp)) == 0 ) { + printf ("Help for %s section:\n",prefix); + config_printhelp(cfgoptions,numoptions); + if ( ! (CONFIG_ISFLAGSET(CONFIG_NOEXITONHELP))) { + fprintf(stderr,"[CONFIG] %s %i section %s:", __FILE__, __LINE__, prefix); + exit_fun(" Exiting after displaying help\n"); + } + } + } } - if (*p[0] == '-') { - for(int i=0;i 2) && (strcmp(*p + 2,cfgpath ) == 0 )) ) { - pp = *(p+1); - if ( ( pp != NULL ) && (c>1) && (pp[0]!= '-') ) { - - j += processoption(&(cfgoptions[i]), pp); - } else { - j += processoption(&(cfgoptions[i]), NULL); - } + if ( ((strlen(oneargv) == 2) && (strcmp(oneargv + 1,cfgpath) == 0)) || /* short option, one "-" */ + ((strlen(oneargv) > 2) && (strcmp(oneargv + 2,cfgpath ) == 0 )) ) { + char *valptr=NULL; + int ret; + if (c > 0) { + pp = config_get_if()->argv[i+1]; + if (pp != NULL ) { + ret = strlen(pp); + if (ret > 0 ) { + if (pp[0] != '-') + valptr=pp; + else if ( ret > 1 && pp[0] == '-' && isdigit(pp[1]) ) + valptr=pp; + } + } + } + j += processoption(&(cfgoptions[n]), valptr); + if ( valptr != NULL ) { + i++; + c--; + } break; } - } /* for */ - } /* if (*p[0] == '-') */ - p++; + } /* for n... */ + } /* if (oneargv[0] == '-') */ + free(oneargv); + i++; c--; } /* fin du while */ - printf_cmdl("[CONFIG] %s %i options set from command line\n",((prefix == NULL) ? "":prefix),j); + printf_cmdl("[CONFIG] %s %i options set from command line\n",((prefix == NULL) ? "(root)":prefix),j); free(cfgpath); return j; } /* parse_cmdline*/ diff --git a/common/config/config_load_configmodule.c b/common/config/config_load_configmodule.c index 7860742804..2c6700c73e 100644 --- a/common/config/config_load_configmodule.c +++ b/common/config/config_load_configmodule.c @@ -97,7 +97,77 @@ int st; } /*-----------------------------------------------------------------------------------*/ /* from here: interface implementtion of the configuration module */ +int nooptfunc(void) { + return 0; +}; +int config_cmdlineonly_getlist(paramlist_def_t *ParamList, + paramdef_t *params, int numparams, char *prefix) +{ + ParamList->numelt = 0; + return 0; +} + + +int config_cmdlineonly_get(paramdef_t *cfgoptions,int numoptions, char *prefix ) +{ + int defval; + int fatalerror=0; + int numdefvals=0; + + + for(int i=0;i option, default cfgmode to libconfig with one parameter, the path to the configuration file */ modeparams=cfgmode; - cfgmode=strdup(DEFAULT_CFGMODE); + cfgmode=strdup(CONFIG_LIBCONFIGFILE); } cfgptr = malloc(sizeof(configmodule_interface_t)); @@ -153,7 +229,6 @@ int i; cfgptr->argc = argc; cfgptr->argv = argv; cfgptr->cfgmode=strdup(cfgmode); - cfgptr->num_cfgP=0; atoken=strtok_r(modeparams,":",&strtokctx); while ( cfgptr->num_cfgP< CONFIG_MAX_OOPT_PARAMS && atoken != NULL) { @@ -176,24 +251,33 @@ int i; for (i=0;inum_cfgP; i++) { printf("%s ",cfgptr->cfgP[i]); } - printf("\n"); + printf(", debug flags: 0x%08x\n",cfgptr->rtflags); - - i=load_config_sharedlib(cfgptr); - if (i< 0) { - fprintf(stderr,"[CONFIG] %s %d config module %s couldn't be loaded\n", __FILE__, __LINE__,cfgmode); - cfgptr->rtflags = cfgptr->rtflags | CONFIG_HELP | CONFIG_ABORT; + if (strstr(cfgparam,CONFIG_CMDLINEONLY) == NULL) { + i=load_config_sharedlib(cfgptr); + if (i == 0) { + printf("[CONFIG] config module %s loaded\n",cfgmode); + Config_Params[CONFIGPARAM_DEBUGFLAGS_IDX].uptr=&(cfgptr->rtflags); + config_get(Config_Params,CONFIG_PARAMLENGTH(Config_Params), CONFIG_SECTIONNAME ); + } else { + fprintf(stderr,"[CONFIG] %s %d config module \"%s\" couldn't be loaded\n", __FILE__, __LINE__,cfgmode); + cfgptr->rtflags = cfgptr->rtflags | CONFIG_HELP | CONFIG_ABORT; + } } else { - printf("[CONFIG] config module %s loaded\n",cfgmode); - Config_Params[CONFIGPARAM_DEBUGFLAGS_IDX].uptr=&(cfgptr->rtflags); - config_get(Config_Params,CONFIG_PARAMLENGTH(Config_Params), CONFIG_SECTIONNAME ); + cfgptr->init = (configmodule_initfunc_t)nooptfunc; + cfgptr->get = config_cmdlineonly_get; + cfgptr->getlist = config_cmdlineonly_getlist; + cfgptr->end = (configmodule_endfunc_t)nooptfunc; } if (modeparams != NULL) free(modeparams); if (cfgmode != NULL) free(cfgmode); - if (CONFIG_ISFLAGSET(CONFIG_ABORT)) config_printhelp(Config_Params,CONFIG_PARAMLENGTH(Config_Params)); + if (CONFIG_ISFLAGSET(CONFIG_ABORT)) { + config_printhelp(Config_Params,CONFIG_PARAMLENGTH(Config_Params)); +// exit(-1); + } return cfgptr; } diff --git a/common/config/config_load_configmodule.h b/common/config/config_load_configmodule.h index 724cd1dbf5..ff3fa80f4e 100644 --- a/common/config/config_load_configmodule.h +++ b/common/config/config_load_configmodule.h @@ -41,17 +41,19 @@ #define CONFIG_MAX_ALLOCATEDPTRS 1024 // maximum number of parameters that can be dynamicaly allocated in the config module /* default values for configuration module parameters */ -#define DEFAULT_CFGMODE "libconfig" // use libconfig file -#define DEFAULT_CFGFILENAME "oai.conf" // default config file +#define CONFIG_LIBCONFIGFILE "libconfig" // use libconfig file +#define CONFIG_CMDLINEONLY "cmdline" // use only command line options +#define DEFAULT_CFGFILENAME "oai.conf" // default config file /* rtflags bit position definitions */ -#define CONFIG_PRINTPARAMS 1 // print parameters values while processing -#define CONFIG_DEBUGPTR 1<<1 // print memory allocation/free debug messages -#define CONFIG_DEBUGCMDLINE 1<<2 // print command line processing messages -#define CONFIG_NOABORTONCHKF 1<<3 // disable abort execution when parameter checking function fails -#define CONFIG_HELP 1<<20 // print help message -#define CONFIG_ABORT 1<<21 // config failed,abort execution -#define CONFIG_NOOOPT 1<<22 // no -O option found when parsing command line +#define CONFIG_PRINTPARAMS 1 // print parameters values while processing +#define CONFIG_DEBUGPTR (1<<1) // print memory allocation/free debug messages +#define CONFIG_DEBUGCMDLINE (1<<2) // print command line processing messages +#define CONFIG_NOABORTONCHKF (1<<3) // disable abort execution when parameter checking function fails +#define CONFIG_NOEXITONHELP (1<<19) // do not exit after printing help +#define CONFIG_HELP (1<<20) // print help message +#define CONFIG_ABORT (1<<21) // config failed,abort execution +#define CONFIG_NOOOPT (1<<22) // no -O option found when parsing command line typedef int(*configmodule_initfunc_t)(char *cfgP[],int numP); typedef int(*configmodule_getfunc_t)(paramdef_t *,int numparams, char *prefix); typedef int(*configmodule_getlistfunc_t)(paramlist_def_t *, paramdef_t *,int numparams, char *prefix); @@ -75,7 +77,7 @@ typedef struct configmodule_interface #ifdef CONFIG_LOADCONFIG_MAIN configmodule_interface_t *cfgptr=NULL; -static char config_helpstr [] = "\n lte-softmodem -O [config mode]<:dbg[debugflags]> \n \ +static char config_helpstr [] = "\n lte-softmodem -O [config mode]<:dbgl[debugflags]> \n \ debugflags can also be defined in the config_libconfig section of the config file\n \ debugflags: mask, 1->print parameters, 2->print memory allocations debug messages\n \ 4->print command line processing debug messages\n "; @@ -97,9 +99,9 @@ extern configmodule_interface_t *cfgptr; #endif -#define printf_params(...) if ( (cfgptr->rtflags & CONFIG_PRINTPARAMS) != 0 ) { printf ( __VA_ARGS__ ); } -#define printf_ptrs(...) if ( (cfgptr->rtflags & CONFIG_DEBUGPTR) != 0 ) { printf ( __VA_ARGS__ ); } -#define printf_cmdl(...) if ( (cfgptr->rtflags & CONFIG_DEBUGCMDLINE) != 0 ) { printf ( __VA_ARGS__ ); } +#define printf_params(...) if ( (cfgptr->rtflags & (CONFIG_PRINTPARAMS)) != 0 ) { printf ( __VA_ARGS__ ); } +#define printf_ptrs(...) if ( (cfgptr->rtflags & (CONFIG_DEBUGPTR)) != 0 ) { printf ( __VA_ARGS__ ); } +#define printf_cmdl(...) if ( (cfgptr->rtflags & (CONFIG_DEBUGCMDLINE)) != 0 ) { printf ( __VA_ARGS__ ); } extern configmodule_interface_t *load_configmodule(int argc, char **argv); extern void end_configmodule(void); diff --git a/common/config/config_paramdesc.h b/common/config/config_paramdesc.h index 6f153535fb..c65e298dfb 100644 --- a/common/config/config_paramdesc.h +++ b/common/config/config_paramdesc.h @@ -148,7 +148,10 @@ typedef struct paramdef #define TYPE_MASK 10 #define TYPE_DOUBLE 16 #define TYPE_IPV4ADDR 20 +#define TYPE_LASTSCALAR 25 +#define PARAM_ISLISTORARRAY(P) (P->type > TYPE_LASTSCALAR ) +#define PARAM_ISSCALAR(P) (P->type < TYPE_LASTSCALAR ) #define TYPE_STRINGLIST 50 #define TYPE_INTARRAY 51 diff --git a/common/config/config_userapi.c b/common/config/config_userapi.c index c1acc84384..3f3651aa01 100644 --- a/common/config/config_userapi.c +++ b/common/config/config_userapi.c @@ -35,6 +35,8 @@ #include #include #include +#include + #include "config_userapi.h" extern void exit_fun(const char* s); // lte-softmodem clean exit function @@ -50,10 +52,30 @@ configmodule_interface_t *config_get_if(void) char * config_check_valptr(paramdef_t *cfgoptions, char **ptr, int length) { - + if (ptr == NULL ) { + ptr = malloc(sizeof(char *)); + if (ptr != NULL) { + *ptr=NULL; + cfgoptions->strptr=ptr; + if ( (cfgoptions->paramflags & PARAMFLAG_NOFREE) == 0) { + config_get_if()->ptrs[config_get_if()->numptrs] = (char *)ptr; + config_get_if()->numptrs++; + } + } else { + fprintf(stderr, "[CONFIG] %s %d option %s, cannot allocate pointer: %s \n", + __FILE__, __LINE__, cfgoptions->optname, strerror(errno)); + exit(-1); + } + } printf_ptrs("[CONFIG] %s ptr: 0x%08lx requested size: %i\n",cfgoptions->optname,(uintptr_t)(ptr),length); - if(cfgoptions->numelt > 0) { /* already allocated */ - return *ptr; + if(cfgoptions->numelt > 0 && PARAM_ISSCALAR(cfgoptions) ) { /* already allocated */ + if (*ptr != NULL) { + return *ptr; + } else { + fprintf(stderr,"[CONFIG] %s %d option %s, definition error: value pointer is NULL, declared as %i bytes allocated\n", + __FILE__, __LINE__,cfgoptions->optname, cfgoptions->numelt); + exit(-1); + } } if (*ptr == NULL) { @@ -75,7 +97,7 @@ char * config_check_valptr(paramdef_t *cfgoptions, char **ptr, int length) void config_assign_int(paramdef_t *cfgoptions, char *fullname, int val) { int tmpval=val; - if ( ((cfgoptions->paramflags &PARAMFLAG_BOOL) != 0) && tmpval >1) { + if ( ((cfgoptions->paramflags &PARAMFLAG_BOOL) != 0) && tmpval >0) { tmpval =1; } switch (cfgoptions->type) { @@ -160,7 +182,7 @@ int st=0; } } if (st != 0) { - fprintf(stderr,"[CONFIG] config_execcheck: %i parameters with wrong value\n", -st); + fprintf(stderr,"[CONFIG] config_execcheck: section %s %i parameters with wrong value\n", prefix, -st); if ( CONFIG_ISFLAGSET(CONFIG_NOABORTONCHKF) == 0) { exit_fun("exit because configuration failed\n"); } @@ -173,7 +195,7 @@ int config_get(paramdef_t *params,int numparams, char *prefix) int ret= -1; if (CONFIG_ISFLAGSET(CONFIG_ABORT)) { - fprintf(stderr,"[CONFIG] config_get skipped, config module not properly initialized\n"); + fprintf(stderr,"[CONFIG] config_get, section %s skipped, config module not properly initialized\n",prefix); return ret; } configmodule_interface_t *cfgif = config_get_if(); @@ -283,3 +305,115 @@ int config_checkstr_assign_integer(paramdef_t *param) return -1; } + +int config_setdefault_string(paramdef_t *cfgoptions, char *prefix) +{ + int status = 0; + if( cfgoptions->defstrval != NULL) { + status=1; + + if (cfgoptions->numelt == 0 ) { + config_check_valptr(cfgoptions, (char **)(cfgoptions->strptr), sizeof(char *)); + config_check_valptr(cfgoptions, cfgoptions->strptr, strlen(cfgoptions->defstrval)+1); + sprintf(*(cfgoptions->strptr), "%s",cfgoptions->defstrval); + printf_params("[CONFIG] %s.%s set to default value \"%s\"\n", ((prefix == NULL) ? "" : prefix), cfgoptions->optname, *(cfgoptions->strptr)); + } else { + sprintf((char *)*(cfgoptions->strptr), "%s",cfgoptions->defstrval); + printf_params("[CONFIG] %s.%s set to default value \"%s\"\n", ((prefix == NULL) ? "" : prefix), cfgoptions->optname, (char *)*(cfgoptions->strptr)); + } + } + return status; +} + +int config_setdefault_stringlist(paramdef_t *cfgoptions, char *prefix) +{ + int status = 0; + if( cfgoptions->defstrlistval != NULL) { + cfgoptions->strlistptr=cfgoptions->defstrlistval; + status=1; + for(int j=0; jnumelt; j++) + printf_params("[CONFIG] %s.%s[%i] set to default value %s\n", ((prefix == NULL) ? "" : prefix), cfgoptions->optname,j, cfgoptions->strlistptr[j]); + } + return status; +} + +int config_setdefault_int(paramdef_t *cfgoptions, char *prefix) +{ + int status = 0; + config_check_valptr(cfgoptions, (char **)(&(cfgoptions->iptr)),sizeof(int32_t)); + if( ((cfgoptions->paramflags & PARAMFLAG_MANDATORY) == 0)) { + config_assign_int(cfgoptions,cfgoptions->optname,cfgoptions->defintval); + status=1; + printf_params("[CONFIG] %s.%s set to default value\n", ((prefix == NULL) ? "" : prefix), cfgoptions->optname); + } + return status; +} + +int config_setdefault_int64(paramdef_t *cfgoptions, char *prefix) +{ + int status = 0; + config_check_valptr(cfgoptions, (char **)&(cfgoptions->i64ptr),sizeof(long long)); + if( ((cfgoptions->paramflags & PARAMFLAG_MANDATORY) == 0)) { + *(cfgoptions->u64ptr)=cfgoptions->defuintval; + status=1; + printf_params("[CONFIG] %s.%s set to default value %llu\n", ((prefix == NULL) ? "" : prefix), cfgoptions->optname, (long long unsigned)(*(cfgoptions->u64ptr))); + } + return status; +} + +int config_setdefault_intlist(paramdef_t *cfgoptions, char *prefix) +{ + int status = 0; + if( cfgoptions->defintarrayval != NULL) { + config_check_valptr(cfgoptions,(char **)&(cfgoptions->iptr), sizeof(int32_t*)); + cfgoptions->iptr=cfgoptions->defintarrayval; + status=1; + for (int j=0; jnumelt ; j++) { + printf_params("[CONFIG] %s[%i] set to default value %i\n",cfgoptions->optname ,j,(int)cfgoptions->iptr[j]); + } + } + return status; +} + +int config_setdefault_double(paramdef_t *cfgoptions, char *prefix) +{ + int status = 0; + config_check_valptr(cfgoptions, (char **)&(cfgoptions->dblptr),sizeof(double)); + if( ((cfgoptions->paramflags & PARAMFLAG_MANDATORY) == 0)) { + *(cfgoptions->u64ptr)=cfgoptions->defdblval; + status=1; + printf_params("[CONFIG] %s set to default value %lf\n",cfgoptions->optname , *(cfgoptions->dblptr)); + } + return status; +} + +int config_assign_ipv4addr(paramdef_t *cfgoptions, char *ipv4addr) +{ + config_check_valptr(cfgoptions,(char **)&(cfgoptions->uptr), sizeof(int)); + int rst=inet_pton(AF_INET, ipv4addr ,cfgoptions->uptr ); + if (rst == 1 && *(cfgoptions->uptr) > 0) { + printf_params("[CONFIG] %s: %s\n",cfgoptions->optname, ipv4addr); + return 1; + } else { + if ( strncmp(ipv4addr,ANY_IPV4ADDR_STRING,sizeof(ANY_IPV4ADDR_STRING)) == 0) { + printf_params("[CONFIG] %s:%s (INADDR_ANY) \n",cfgoptions->optname,ipv4addr); + *cfgoptions->uptr=INADDR_ANY; + return 1; + } else { + fprintf(stderr,"[CONFIG] %s not valid for %s \n", ipv4addr, cfgoptions->optname); + return -1; + } + } + return 0; +} + + +int config_setdefault_ipv4addr(paramdef_t *cfgoptions, char *prefix) +{ + int status = 0; + + if (cfgoptions->defstrval != NULL) { + status = config_assign_ipv4addr(cfgoptions, cfgoptions->defstrval); + } + return status; +} diff --git a/common/config/config_userapi.h b/common/config/config_userapi.h index 923a690f51..217310db36 100644 --- a/common/config/config_userapi.h +++ b/common/config/config_userapi.h @@ -38,10 +38,15 @@ extern "C" { #endif +/* get rid of "exit_fun undeclared" warning */ +extern void exit_fun(const char* s); + #define CONFIG_GETSOURCE ( (config_get_if()==NULL) ? NULL : config_get_if()->cfgmode ) #define CONFIG_GETNUMP ( (config_get_if()==NULL) ? 0 : config_get_if()->num_cfgP ) #define CONFIG_GETP(P) ( (config_get_if()==NULL) ? NULL : config_get_if()->cfgP[P] ) #define CONFIG_ISFLAGSET(P) ( (config_get_if()==NULL) ? 0 : !!(config_get_if()->rtflags & P)) +#define CONFIG_SETRTFLAG(P) if (config_get_if()) { config_get_if()->rtflags |= P; } +#define CONFIG_CLEARRTFLAG(P) if (config_get_if()) { config_get_if()->rtflags &= (~P); } #define CONFIG_ISPARAMFLAGSET(P,F) ( !!(P.paramflags & F)) /* utility functions, to be used by configuration module and/or configuration libraries */ extern configmodule_interface_t *config_get_if(void); @@ -50,6 +55,7 @@ extern void config_printhelp(paramdef_t *,int numparams); extern int config_process_cmdline(paramdef_t *params,int numparams, char *prefix); extern void config_assign_processedint(paramdef_t *cfgoption, int val); extern void config_assign_int(paramdef_t *cfgoptions, char *fullname, int val); +extern int config_assign_ipv4addr(paramdef_t *cfgoptions, char *ipv4addr); /* apis to get parameters, to be used by oai modules, at configuration time */ extern int config_get(paramdef_t *params,int numparams, char *prefix); @@ -66,6 +72,15 @@ extern int config_check_intrange(paramdef_t *param); extern int config_check_strval(paramdef_t *param); extern int config_checkstr_assign_integer(paramdef_t *param); +/* functions to set a parameter to its default value */ +extern int config_setdefault_string(paramdef_t *cfgoptions, char *prefix); +extern int config_setdefault_stringlist(paramdef_t *cfgoptions, char *prefix); +extern int config_setdefault_int(paramdef_t *cfgoptions, char *prefix); +extern int config_setdefault_int64(paramdef_t *cfgoptions, char *prefix); +extern int config_setdefault_intlist(paramdef_t *cfgoptions, char *prefix); +extern int config_setdefault_double(paramdef_t *cfgoptions, char *prefix); +extern int config_setdefault_ipv4addr(paramdef_t *cfgoptions, char *prefix); + #define CONFIG_GETCONFFILE (config_get_if()->cfgP[0]) #ifdef __cplusplus diff --git a/common/config/libconfig/config_libconfig.c b/common/config/libconfig/config_libconfig.c index cfb0a214cf..f192fd2dc5 100644 --- a/common/config/libconfig/config_libconfig.c +++ b/common/config/libconfig/config_libconfig.c @@ -129,8 +129,6 @@ int config_libconfig_get(paramdef_t *cfgoptions,int numoptions, char *prefix ) switch(cfgoptions[i].type) { case TYPE_STRING: - -printf("call config_lookup_string for '%s' %p\n", cfgpath, &(libconfig_privdata.cfg)); fflush(stdout); if ( config_lookup_string(&(libconfig_privdata.cfg),cfgpath, (const char **)&str)) { if ( cfgoptions[i].numelt > 0 && str != NULL && strlen(str) >= cfgoptions[i].numelt ) { fprintf(stderr,"[LIBCONFIG] %s: %s exceeds maximum length of %i bytes, value truncated\n", @@ -138,7 +136,7 @@ printf("call config_lookup_string for '%s' %p\n", cfgpath, &(libconfig_privdata. str[strlen(str)-1] = 0; } if (cfgoptions[i].numelt == 0 ) { - config_check_valptr(&(cfgoptions[i]), (char **)(&(cfgoptions[i].strptr)), sizeof(char *)); + // config_check_valptr(&(cfgoptions[i]), (char **)(&(cfgoptions[i].strptr)), sizeof(char *)); config_check_valptr(&(cfgoptions[i]), cfgoptions[i].strptr, strlen(str)+1); sprintf( *(cfgoptions[i].strptr) , "%s", str); printf_params("[LIBCONFIG] %s: \"%s\"\n", cfgpath,*(cfgoptions[i].strptr) ); @@ -147,21 +145,7 @@ printf("call config_lookup_string for '%s' %p\n", cfgpath, &(libconfig_privdata. printf_params("[LIBCONFIG] %s: \"%s\"\n", cfgpath,(char *)cfgoptions[i].strptr ); } } else { - if( cfgoptions[i].defstrval != NULL) { - defval=1; - - if (cfgoptions[i].numelt == 0 ) { - config_check_valptr(&(cfgoptions[i]), (char **)(&(cfgoptions[i].strptr)), sizeof(char *)); - config_check_valptr(&(cfgoptions[i]), cfgoptions[i].strptr, strlen(cfgoptions[i].defstrval)+1); - sprintf(*(cfgoptions[i].strptr), "%s",cfgoptions[i].defstrval); - printf_params("[LIBCONFIG] %s set to default value \"%s\"\n", cfgpath, *(cfgoptions[i].strptr)); - } else { - sprintf((char *)*(cfgoptions[i].strptr), "%s",cfgoptions[i].defstrval); - printf_params("[LIBCONFIG] %s set to default value \"%s\"\n", cfgpath, (char *)*(cfgoptions[i].strptr)); - } - } else { - notfound=1; - } + defval=config_setdefault_string(&(cfgoptions[i]),prefix); } break; case TYPE_STRINGLIST: @@ -169,14 +153,7 @@ printf("call config_lookup_string for '%s' %p\n", cfgpath, &(libconfig_privdata. if ( setting != NULL) { read_strlist(&cfgoptions[i],setting,cfgpath); } else { - if( cfgoptions[i].defstrlistval != NULL) { - cfgoptions[i].strlistptr=cfgoptions[i].defstrlistval; - defval=1; - for(int j=0; j 0) { - printf_params("[LIBCONFIG] %s: %s\n", cfgpath,str ); - } else { - if ( strncmp(str,ANY_IPV4ADDR_STRING,sizeof(ANY_IPV4ADDR_STRING)) == 0) { - printf_params("[LIBCONFIG] %s:%s (INADDR_ANY) \n",cfgpath,str); - *cfgoptions[i].uptr=INADDR_ANY; - } else { - fprintf(stderr,"[LIBCONFIG] %s not valid for %s \n", str, cfgpath); - fatalerror=1; - } + defval=config_setdefault_ipv4addr(&(cfgoptions[i]),prefix); + } else { + rst=config_assign_ipv4addr(cfgoptions, str); + if (rst < 0) { + fprintf(stderr,"[LIBCONFIG] %s not valid for %s \n", str, cfgpath); + fatalerror=1; } - } else { - notfound=1; - } - + } break; case TYPE_LIST: setting = config_setting_lookup (config_root_setting(&(libconfig_privdata.cfg)),cfgpath ); diff --git a/openair2/UTIL/LOG/README.txt b/common/utils/LOG/README.txt similarity index 100% rename from openair2/UTIL/LOG/README.txt rename to common/utils/LOG/README.txt diff --git a/common/utils/LOG/log.c b/common/utils/LOG/log.c new file mode 100644 index 0000000000..02ee849202 --- /dev/null +++ b/common/utils/LOG/log.c @@ -0,0 +1,707 @@ +/* + * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The OpenAirInterface Software Alliance licenses this file to You under + * the OAI Public License, Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.openairinterface.org/?page_id=698 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *------------------------------------------------------------------------------- + * For more information about the OpenAirInterface (OAI) Software Alliance: + * contact@openairinterface.org + */ + +/*! \file log.c +* \brief log implementaion +* \author Navid Nikaein +* \date 2009 - 2014 +* \version 0.5 +* @ingroup util + +*/ + +#define _GNU_SOURCE /* required for pthread_getname_np */ +//#define LOG_TEST 1 + +#define COMPONENT_LOG +#define COMPONENT_LOG_IF +#include +#define LOG_MAIN +#include "log.h" +#include "vcd_signal_dumper.h" +#include "assertions.h" + +#if defined(ENABLE_ITTI) +# include "intertask_interface.h" +#endif + +# include +# include +#include +#include "common/config/config_userapi.h" +// main log variables + + + + +mapping log_level_names[] = { + {"error", OAILOG_ERR}, + {"file", OAILOG_FILE}, + {"warn", OAILOG_WARNING}, + {"info", OAILOG_INFO}, + {"debug", OAILOG_DEBUG}, + {"trace", OAILOG_TRACE}, + {NULL, -1} +}; + +mapping log_options[] = { + {"nocolor", FLAG_NOCOLOR }, + {"level", FLAG_LEVEL }, + {"thread", FLAG_THREAD }, + {NULL,-1} +}; + + +mapping log_maskmap[] = { + {"prach", DEBUG_PRACH}, + {"RU", DEBUG_RU}, + {"LTEESTIM", DEBUG_LTEESTIM}, + {"ctrlsocket", DEBUG_CTRLSOCKET}, + {"UE_PHYPROC", DEBUG_UE_PHYPROC}, + {"UE_TIMING", UE_TIMING}, + {NULL,-1} +}; + +char *log_level_highlight_start[] = {LOG_RED, LOG_GREEN, LOG_ORANGE, "", LOG_BLUE, LOG_CYBL}; /*!< \brief Optional start-format strings for highlighting */ +char *log_level_highlight_end[] = {LOG_RESET,LOG_RESET,LOG_RESET,LOG_RESET, LOG_RESET,LOG_RESET}; /*!< \brief Optional end-format strings for highlighting */ + + +int write_file_matlab(const char *fname,const char *vname,void *data,int length,int dec,char format) +{ + + FILE *fp=NULL; + int i; + + if (data == NULL) + return -1; + //printf("Writing %d elements of type %d to %s\n",length,format,fname); + + + if (format == 10 || format ==11 || format == 12 || format == 13 || format == 14) { + fp = fopen(fname,"a+"); + } else if (format != 10 && format !=11 && format != 12 && format != 13 && format != 14) { + fp = fopen(fname,"w+"); + } + + + + if (fp== NULL) { + printf("[OPENAIR][FILE OUTPUT] Cannot open file %s\n",fname); + return(-1); + } + + if (format != 10 && format !=11 && format != 12 && format != 13 && format != 14) + fprintf(fp,"%s = [",vname); + + + switch (format) { + case 0: // real 16-bit + + for (i=0; i 0)) + fprintf(fp,"%d + j*(%d),",((short *)data)[i],((short *)data)[i+1]); + else if (i == 2*(length-1)) + fprintf(fp,"%d + j*(%d);",((short *)data)[i],((short *)data)[i+1]); + else if (i == 0) + fprintf(fp,"\n%d + j*(%d),",((short *)data)[i],((short *)data)[i+1]); + + + + } + + break; + + case 11 : //case eren 16 bit real for channel magnitudes: + for (i=0; i 0)) + fprintf(fp,"%d,",((short *)data)[i]); + else if (i == (length-1)) + fprintf(fp,"%d;",((short *)data)[i]); + else if (i == 0) + fprintf(fp,"\n%d,",((short *)data)[i]); + } + + printf("\n eren: length :%d",length); + break; + + case 12 : // case eren for log2_maxh real unsigned 8 bit + fprintf(fp,"%d \n",((unsigned char *)&data)[0]); + break; + + } + + if (format != 10 && format !=11 && format !=12 && format != 13 && format != 15) { + fprintf(fp,"];\n"); + fclose(fp); + return(0); + } else if (format == 10 || format ==11 || format == 12 || format == 13 || format == 15) { + fclose(fp); + return(0); + } + + return 0; +} + +/* get log parameters from configuration file */ +void log_getconfig(log_t *g_log) { + char *gloglevel = NULL; + int level; + + + paramdef_t logparams_defaults[] = LOG_GLOBALPARAMS_DESC; + paramdef_t logparams_level[MAX_LOG_PREDEF_COMPONENTS]; + paramdef_t logparams_logfile[MAX_LOG_PREDEF_COMPONENTS]; + paramdef_t logparams_debug[sizeof(log_maskmap)/sizeof(mapping)]; + paramdef_t logparams_matlab[sizeof(log_maskmap)/sizeof(mapping)]; + + int ret = config_get( logparams_defaults,sizeof(logparams_defaults)/sizeof(paramdef_t),CONFIG_STRING_LOG_PREFIX); + if (ret <0) { + fprintf(stderr,"[LOG] init aborted, configuration couldn't be performed"); + return; + } + + for(int i=0; iflag = g_log->flag | log_options[j].value; + break; + } else if (log_options[j+1].name == NULL){ + fprintf(stderr,"Unknown log option: %s\n",logparams_defaults[LOG_OPTIONS_IDX].strlistptr[i]); + exit(-1); + } + } + } + +/* build the parameter array for setting per component log level and infile options */ + memset(logparams_level, 0, sizeof(paramdef_t)*MAX_LOG_PREDEF_COMPONENTS); + memset(logparams_logfile, 0, sizeof(paramdef_t)*MAX_LOG_PREDEF_COMPONENTS); + for (int i=MIN_LOG_COMPONENTS; i < MAX_LOG_PREDEF_COMPONENTS; i++) { + if(g_log->log_component[i].name == NULL) { + g_log->log_component[i].name = malloc(16); + sprintf((char *)g_log->log_component[i].name,"comp%i?",i); + logparams_logfile[i].paramflags = PARAMFLAG_DONOTREAD; + logparams_level[i].paramflags = PARAMFLAG_DONOTREAD; + } + sprintf(logparams_level[i].optname, LOG_CONFIG_LEVEL_FORMAT, g_log->log_component[i].name); + sprintf(logparams_logfile[i].optname, LOG_CONFIG_LOGFILE_FORMAT, g_log->log_component[i].name); +/* workaround: all log options in existing configuration files use lower case component names + where component names include uppercase char in log.h.... */ + for (int j=0 ; jdebug_mask = g_log->debug_mask | log_maskmap[i].value; + if (*(logparams_matlab[i].uptr) ) + g_log->matlab_mask = g_log->matlab_mask | log_maskmap[i].value; + } +} + +int register_log_component(char *name, char *fext, int compidx) +{ +int computed_compidx=compidx; + + if (strlen(fext) > 3) { + fext[3]=0; /* limit log file extension to 3 chars */ + } + if (compidx < 0) { /* this is not a pre-defined component */ + for (int i = MAX_LOG_PREDEF_COMPONENTS; i< MAX_LOG_COMPONENTS; i++) { + if (g_log->log_component[i].name == NULL) { + computed_compidx=i; + break; + } + } + } + if (computed_compidx >= 0 && computed_compidx log_component[computed_compidx].name = strdup(name); + g_log->log_component[computed_compidx].level = LOG_ERR; + g_log->log_component[computed_compidx].interval = 1; + g_log->log_component[computed_compidx].stream = NULL; + g_log->log_component[computed_compidx].filelog = 0; + g_log->log_component[computed_compidx].filelog_name = malloc(strlen(name)+16);/* /tmp/.%s rounded to ^2 */ + sprintf(g_log->log_component[computed_compidx].filelog_name,"/tmp/%s.%s",name,fext); + } else { + fprintf(stderr,"{LOG} %s %d Couldn't register componemt %s\n",__FILE__,__LINE__,name); + } +return computed_compidx; +} + +int logInit (void) +{ + int i; + g_log = calloc(1, sizeof(log_t)); + + if (g_log == NULL) { + perror ("cannot allocated memory for log generation module \n"); + exit(EXIT_FAILURE); + } + memset(g_log,0,sizeof(log_t)); + + + + register_log_component("PHY","log",PHY); + register_log_component("MAC","log",MAC); + register_log_component("OPT","log",OPT); + register_log_component("RLC","log",RLC); + register_log_component("PDCP","log",PDCP); + register_log_component("RRC","log",RRC); + register_log_component("OMG","csv",OMG); + register_log_component("OTG","log",OTG); + register_log_component("OTG_LATENCY","dat",OTG_LATENCY); + register_log_component("OTG_LATENCY_BG","dat",OTG_LATENCY_BG); + register_log_component("OTG_GP","dat",OTG_GP); + register_log_component("OTG_GP_BG","dat",OTG_GP_BG); + register_log_component("OTG_JITTER","dat",OTG_JITTER); + register_log_component("OCG","",OCG); + register_log_component("PERF","",PERF); + register_log_component("OIP","",OIP); + register_log_component("CLI","",CLI); + register_log_component("MSC","log",MSC); + register_log_component("OCM","log",OCM); + register_log_component("HW","",HW); + register_log_component("OSA","",OSA); + register_log_component("eRAL","",RAL_ENB); + register_log_component("mRAL","",RAL_UE); + register_log_component("ENB_APP","log",ENB_APP); + register_log_component("FLEXRAN_AGENT","log",FLEXRAN_AGENT); + register_log_component("TMR","",TMR); + register_log_component("USIM","txt",USIM); + register_log_component("SIM","txt",SIM); + + /* following log component are used for the localization*/ + register_log_component("LOCALIZE","log",LOCALIZE); + register_log_component("NAS","log",NAS); + register_log_component("UDP","",UDP_); + + + register_log_component("GTPV1U","",GTPU); + + + register_log_component("S1AP","",S1AP); + + + register_log_component("SCTP","",SCTP); + register_log_component("RRH","",RRH); + + + + + + + g_log->level2string[OAILOG_ERR] = "E"; // ERROR + g_log->level2string[OAILOG_WARNING] = "W"; // WARNING + g_log->level2string[OAILOG_INFO] = "I"; //INFO + g_log->level2string[OAILOG_DEBUG] = "D"; // DEBUG + g_log->level2string[OAILOG_FILE] = "F"; // file + g_log->level2string[OAILOG_TRACE] = "T"; // TRACE + + + g_log->onlinelog = 1; //online log file + g_log->filelog = 0; + + + + g_log->filelog_name = "/tmp/openair.log"; + + log_getconfig(g_log); + + + // could put a loop here to check for all comps + for (i=MIN_LOG_COMPONENTS; i < MAX_LOG_COMPONENTS; i++) { + if (g_log->log_component[i].filelog == 1 ) { + g_log->log_component[i].stream = fopen(g_log->log_component[i].filelog_name,"w"); + g_log->log_component[i].fwrite = vfprintf; + } else if (g_log->log_component[i].filelog == 1 ) { + g_log->log_component[i].stream = fopen(g_log->filelog_name,"w"); + g_log->log_component[i].fwrite = vfprintf; + } else if (g_log->onlinelog == 1 ) { + g_log->log_component[i].stream = stdout; + g_log->log_component[i].fwrite = vfprintf; + } + } + + // set all unused component items to 0, they are for non predefined components + for (i=MAX_LOG_PREDEF_COMPONENTS; i < MAX_LOG_COMPONENTS; i++) { + memset(&(g_log->log_component[i]),0,sizeof(log_component_t)); + } + printf("log init done\n"); + + return 0; +} + + + + +char *log_getthreadname(char *threadname, int bufsize) { + +int rt = pthread_getname_np(pthread_self(), threadname,bufsize) ; + if (rt == 0) + { + return threadname; + } else { + return "thread?"; + } +} + + +void logRecord_mt(const char *file, const char *func, int line, int comp, int level, const char* format, ... ) + { + + char threadname[PR_SET_NAME]; + char log_buffer[MAX_LOG_TOTAL]; + va_list args; + + va_start(args, format); + + + + + + + snprintf(log_buffer, MAX_LOG_TOTAL , "%s%s[%s]%s %s %s", + log_level_highlight_end[level], + ( (g_log->flag & FLAG_NOCOLOR)?"":log_level_highlight_start[level]), + g_log->log_component[comp].name, + ( (g_log->flag & FLAG_LEVEL)?g_log->level2string[level]:""), + ( (g_log->flag & FLAG_THREAD)?log_getthreadname(threadname,PR_SET_NAME+1):""), + format); + + g_log->log_component[comp].fwrite(g_log->log_component[comp].stream,log_buffer, args); + va_end(args); + + +} + + + +int set_log(int component, int level, int interval) +{ + /* Checking parameters */ + DevCheck((component >= MIN_LOG_COMPONENTS) && (component < MAX_LOG_COMPONENTS), + component, MIN_LOG_COMPONENTS, MAX_LOG_COMPONENTS); + DevCheck((level < NUM_LOG_LEVEL) && (level >= OAILOG_ERR), level, NUM_LOG_LEVEL, + OAILOG_ERR); + DevCheck((interval >= 0) && (interval <= 0xFF), interval, 0, 0xFF); + + g_log->log_component[component].level = level; + + + g_log->log_component[component].interval = interval; + + return 0; +} + + + +void set_glog(int level) +{ + for (int c=0; c< MAX_LOG_COMPONENTS; c++ ) { + g_log->log_component[c].level = level; + } + +} + +void set_glog_onlinelog(int enable) +{ + g_log->onlinelog = enable; +} +void set_glog_filelog(int enable) +{ + g_log->filelog = enable; +} + +void set_component_filelog(int comp) +{ + if (g_log->log_component[comp].filelog == 0) { + g_log->log_component[comp].filelog = 1; + + if (g_log->log_component[comp].stream == NULL) { + g_log->log_component[comp].stream = fopen(g_log->log_component[comp].filelog_name,"w"); + } + } +} + + + +/* + * for the two functions below, the passed array must have a final entry + * with string value NULL + */ +/* map a string to an int. Takes a mapping array and a string as arg */ +int map_str_to_int(mapping *map, const char *str) +{ + while (1) { + if (map->name == NULL) { + return(-1); + } + + if (!strcmp(map->name, str)) { + return(map->value); + } + + map++; + } +} + +/* map an int to a string. Takes a mapping array and a value */ +char *map_int_to_str(mapping *map, int val) +{ + while (1) { + if (map->name == NULL) { + return NULL; + } + + if (map->value == val) { + return map->name; + } + + map++; + } +} + +int is_newline( char *str, int size) +{ + int i; + + for ( i = 0; i < size; i++ ) { + if ( str[i] == '\n' ) { + return 1; + } + } + + /* if we get all the way to here, there must not have been a newline! */ + return 0; +} + +void logClean (void) +{ + int i; + LOG_I(PHY,"\n"); + + + + + for (i=MIN_LOG_COMPONENTS; i < MAX_LOG_COMPONENTS; i++) { + if (g_log->log_component[i].stream != NULL) { + fclose(g_log->log_component[i].stream); + } + } +} + + +#ifdef LOG_TEST + +int main(int argc, char *argv[]) +{ + + logInit(); + + + test_log(); + + return 1; +} + +int test_log(void) +{ + LOG_ENTER(MAC); // because the default level is DEBUG + LOG_I(EMU, "1 Starting OAI logs version %s Build date: %s on %s\n", + BUILD_VERSION, BUILD_DATE, BUILD_HOST); + LOG_D(MAC, "1 debug MAC \n"); + LOG_W(MAC, "1 warning MAC \n"); + + set_log(EMU, OAILOG_INFO, FLAG_ONLINE); + set_log(MAC, OAILOG_WARNING, 0); + + LOG_I(EMU, "2 Starting OAI logs version %s Build date: %s on %s\n", + BUILD_VERSION, BUILD_DATE, BUILD_HOST); + LOG_E(MAC, "2 error MAC\n"); + LOG_D(MAC, "2 debug MAC \n"); + LOG_W(MAC, "2 warning MAC \n"); + LOG_I(MAC, "2 info MAC \n"); + + + set_log(MAC, OAILOG_NOTICE, 1); + + LOG_ENTER(MAC); + LOG_I(EMU, "3 Starting OAI logs version %s Build date: %s on %s\n", + BUILD_VERSION, BUILD_DATE, BUILD_HOST); + LOG_D(MAC, "3 debug MAC \n"); + LOG_W(MAC, "3 warning MAC \n"); + LOG_I(MAC, "3 info MAC \n"); + + set_log(MAC, LOG_DEBUG,1); + set_log(EMU, LOG_DEBUG,1); + + LOG_ENTER(MAC); + LOG_I(EMU, "4 Starting OAI logs version %s Build date: %s on %s\n", + BUILD_VERSION, BUILD_DATE, BUILD_HOST); + LOG_D(MAC, "4 debug MAC \n"); + LOG_W(MAC, "4 warning MAC \n"); + LOG_I(MAC, "4 info MAC \n"); + + + set_log(MAC, LOG_DEBUG,0); + set_log(EMU, LOG_DEBUG,0); + + LOG_I(LOG, "5 Starting OAI logs version %s Build date: %s on %s\n", + BUILD_VERSION, BUILD_DATE, BUILD_HOST); + LOG_D(MAC, "5 debug MAC \n"); + LOG_W(MAC, "5 warning MAC \n"); + LOG_I(MAC, "5 info MAC \n"); + + + set_log(MAC, LOG_TRACE,0X07F); + set_log(EMU, LOG_TRACE,0X07F); + + LOG_ENTER(MAC); + LOG_I(LOG, "6 Starting OAI logs version %s Build date: %s on %s\n", + BUILD_VERSION, BUILD_DATE, BUILD_HOST); + LOG_D(MAC, "6 debug MAC \n"); + LOG_W(MAC, "6 warning MAC \n"); + LOG_I(MAC, "6 info MAC \n"); + LOG_EXIT(MAC); + + return 0; +} +#endif diff --git a/openair2/UTIL/LOG/log.h b/common/utils/LOG/log.h similarity index 56% rename from openair2/UTIL/LOG/log.h rename to common/utils/LOG/log.h index d101ed999c..4a0552d494 100644 --- a/openair2/UTIL/LOG/log.h +++ b/common/utils/LOG/log.h @@ -52,7 +52,7 @@ #define _GNU_SOURCE #endif #include - +#include "T.h" /*----------------------------------------------------------------------------*/ #ifdef __cplusplus @@ -73,8 +73,7 @@ extern "C" { * @ingroup _macro * @brief the macros that describe the maximum length of LOG * @{*/ -#define MAX_LOG_ITEM 100 /*!< \brief the maximum length of a LOG item, what is LOG_ITEM ??? */ -#define MAX_LOG_INFO 1000 /*!< \brief the maximum length of a log */ + #define MAX_LOG_TOTAL 1500 /*!< \brief the maximum length of a log */ /* @}*/ @@ -82,17 +81,15 @@ extern "C" { * @ingroup _macro * @brief LOG defines 9 levels of messages for users. Importance of these levels decrease gradually from 0 to 8 * @{*/ -# define LOG_EMERG 0 /*!< \brief system is unusable */ -# define LOG_ALERT 1 /*!< \brief action must be taken immediately */ -# define LOG_CRIT 2 /*!< \brief critical conditions */ -# define LOG_ERR 3 /*!< \brief error conditions */ -# define LOG_WARNING 4 /*!< \brief warning conditions */ -# define LOG_NOTICE 5 /*!< \brief normal but significant condition */ -# define LOG_INFO 6 /*!< \brief informational */ -# define LOG_DEBUG 7 /*!< \brief debug-level messages */ -# define LOG_FILE 8 /*!< \brief message sequence chart -level */ -# define LOG_TRACE 9 /*!< \brief trace-level messages */ -#define NUM_LOG_LEVEL 10 /*!< \brief the number of message levels users have with LOG */ + +# define OAILOG_ERR 0 /*!< \brief critical error conditions, impact on "must have" fuctinalities */ +# define OAILOG_FILE 1 /*!< \brief important informational messages, but everything OK */ +# define OAILOG_WARNING 2 /*!< \brief warning conditions, shouldn't happen but doesn't impact "must have" functionalities */ +# define OAILOG_INFO 3 /*!< \brief informational messages most people don't need, shouldn't impact real-time behavior */ +# define OAILOG_DEBUG 4 /*!< \brief first level debug-level messages, for developers , may impact real-time behavior */ +# define OAILOG_TRACE 5 /*!< \brief second level debug-level messages, for developers ,likely impact real-time behavior*/ + +#define NUM_LOG_LEVEL 6 /*!< \brief the number of message levels users have with LOG */ /* @}*/ @@ -103,7 +100,7 @@ extern "C" { /* .log_format = 0x13 uncolored standard messages * .log_format = 0x93 colored standard messages */ - +/* keep white space in first position; switching it to 0 allows colors to be disabled*/ #define LOG_RED "\033[1;31m" /*!< \brief VT100 sequence for bold red foreground */ #define LOG_GREEN "\033[32m" /*!< \brief VT100 sequence for green foreground */ #define LOG_ORANGE "\033[93m" /*!< \brief VT100 sequence for orange foreground */ @@ -117,34 +114,37 @@ extern "C" { * @ingroup _macro * @brief Macros used to write lines (local/remote) in syslog.conf * @{*/ -#define LOG_LOCAL 0x01 -#define LOG_REMOTE 0x02 - -#define FLAG_COLOR 0x001 /*!< \brief defaults */ -#define FLAG_PID 0x002 /*!< \brief defaults */ -#define FLAG_COMP 0x004 -#define FLAG_THREAD 0x008 /*!< \brief all : 255/511 */ -#define FLAG_LEVEL 0x010 -#define FLAG_FUNCT 0x020 -#define FLAG_FILE_LINE 0x040 -#define FLAG_TIME 0x100 - -#define LOG_NONE 0x00 -#define LOG_LOW 0x5 -#define LOG_MED 0x15 -#define LOG_HIGH 0x35 -#define LOG_FULL 0x75 - -#define OAI_OK 0 /*!< \brief all ok */ -#define OAI_ERR 1 /*!< \brief generic error */ -#define OAI_ERR_READ_ONLY 2 /*!< \brief tried to write to read-only item */ -#define OAI_ERR_NOTFOUND 3 /*!< \brief something wasn't found */ -/* @}*/ -//static char *log_level_highlight_start[] = {LOG_RED, LOG_RED, LOG_RED, LOG_RED, LOG_BLUE, "", "", "", LOG_GREEN}; /*!< \brief Optional start-format strings for highlighting */ +#define FLAG_NOCOLOR 0x0001 /*!< \brief use colors in log messages, depending on level */ +#define FLAG_THREAD 0x0008 /*!< \brief display thread name in log messages */ +#define FLAG_LEVEL 0x0010 /*!< \brief display log level in log messages */ +#define FLAG_FUNCT 0x0020 +#define FLAG_FILE_LINE 0x0040 +#define FLAG_TIME 0x0100 + +#define SET_LOG_OPTION(O) g_log->flag = (g_log->flag | O) +#define CLEAR_LOG_OPTION(O) g_log->flag = (g_log->flag & (~O)) + +/** @defgroup macros to identify a debug entity + * @ingroup each macro is a bit mask where the unique bit set identifies an entity to be debugged + * it allows to dynamically activate or not blocks of code + * @brief + * @{*/ +#define DEBUG_PRACH (1<<0) +#define DEBUG_RU (1<<1) +#define DEBUG_UE_PHYPROC (1<<2) +#define DEBUG_LTEESTIM (1<<3) +#define DEBUG_CTRLSOCKET (1<<10) +#define UE_TIMING (1<<20) + +#define SET_LOG_DEBUG(O) g_log->debug_mask = (g_log->debug_mask | O) +#define CLEAR_LOG_DEBUG(O) g_log->debug_mask = (g_log->debug_mask & (~O)) + +#define SET_LOG_MATLAB(O) g_log->matlab_mask = (g_log->matlab_mask | O) +#define CLEAR_LOG_MATLAB(O) g_log->matlab_mask = (g_log->matlab_mask & (~O)) + -//static char *log_level_highlight_end[] = {LOG_RESET, LOG_RESET, LOG_RESET, LOG_RESET, LOG_RESET, "", "", "", LOG_RESET}; /*!< \brief Optional end-format strings for highlighting */ typedef enum { MIN_LOG_COMPONENTS = 0, @@ -185,63 +185,47 @@ typedef enum { LOCALIZE, RRH, X2AP, - MAX_LOG_COMPONENTS, + LOADER, + MAX_LOG_PREDEF_COMPONENTS, } comp_name_t; -//#define msg printf +#define MAX_LOG_DYNALLOC_COMPONENTS 20 +#define MAX_LOG_COMPONENTS (MAX_LOG_PREDEF_COMPONENTS + MAX_LOG_DYNALLOC_COMPONENTS) + typedef struct { char *name; /*!< \brief string name of item */ int value; /*!< \brief integer value of mapping */ } mapping; +typedef int(*log_write_func_t)(FILE *stream, const char *format, va_list ap ); typedef struct { - const char *name; - int level; - int flag; - int interval; - int fd; - int filelog; - char *filelog_name; - + const char *name; + int level; + int flag; + int interval; + int filelog; + char *filelog_name; + FILE *stream; + log_write_func_t fwrite; /* SR: make the log buffer component relative */ - char log_buffer[MAX_LOG_TOTAL]; + char log_buffer[MAX_LOG_TOTAL]; } log_component_t; -typedef struct { - unsigned int remote_ip; - unsigned int audit_ip; - int remote_level; - int facility; - int audit_facility; - int format; -} log_config_t; - typedef struct { log_component_t log_component[MAX_LOG_COMPONENTS]; - log_config_t config; char* level2string[NUM_LOG_LEVEL]; - int level; int onlinelog; int flag; - int syslog; int filelog; char* filelog_name; + uint64_t debug_mask; + uint64_t matlab_mask; } log_t; -typedef struct LOG_params { - const char *file; - const char *func; - int line; - int comp; - int level; - const char *format; - char l_buff_info [MAX_LOG_INFO]; - int len; -} LOG_params; #if defined(ENABLE_ITTI) typedef enum log_instance_type_e { @@ -253,6 +237,7 @@ typedef enum log_instance_type_e { void log_set_instance_type (log_instance_type_t instance); #endif + #ifdef LOG_MAIN log_t *g_log; #else @@ -269,97 +254,113 @@ extern log_t *g_log; /*----------------------------------------------------------------------------*/ int logInit (void); void logRecord_mt(const char *file, const char *func, int line,int comp, int level, const char *format, ...) __attribute__ ((format (printf, 6, 7))); -void logRecord(const char *file, const char *func, int line,int comp, int level, const char *format, ...) __attribute__ ((format (printf, 6, 7))); -int set_comp_log(int component, int level, int verbosity, int interval); + int set_log(int component, int level, int interval); -void set_glog(int level, int verbosity); -void set_log_syslog(int enable); +void set_glog(int level); + void set_glog_onlinelog(int enable); void set_glog_filelog(int enable); - void set_component_filelog(int comp); + int map_str_to_int(mapping *map, const char *str); char *map_int_to_str(mapping *map, int val); void logClean (void); int is_newline( char *str, int size); -void *log_thread_function(void * list); -/** @defgroup _logIt logIt function - * @ingroup _macro - * @brief Macro used to call tr_log_full_ex with file, function and line information - * @{*/ -#ifdef LOG_NO_THREAD -#define logIt(component, level, format, args...) (g_log->log_component[component].interval?logRecord_mt(__FILE__, __FUNCTION__, __LINE__, component, level, format, ##args):(void)0) -#else //default -#define logIt(component, level, format, args...) (g_log->log_component[component].interval?logRecord(__FILE__, __FUNCTION__, __LINE__, component, level, format, ##args):(void)0) -#endif +int register_log_component(char *name, char *fext, int compidx); + /* @}*/ +/*!\fn int32_t write_file_matlab(const char *fname, const char *vname, void *data, int length, int dec, char format); +\brief Write output file from signal data +@param fname output file name +@param vname output vector name (for MATLAB/OCTAVE) +@param data point to data +@param length length of data vector to output +@param dec decimation level +@param format data format (0 = real 16-bit, 1 = complex 16-bit,2 real 32-bit, 3 complex 32-bit,4 = real 8-bit, 5 = complex 8-bit) +*/ +int32_t write_file_matlab(const char *fname, const char *vname, void *data, int length, int dec, char format); + /*----------------macro definitions for reading log configuration from the config module */ #define CONFIG_STRING_LOG_PREFIX "log_config" #define LOG_CONFIG_STRING_GLOBAL_LOG_LEVEL "global_log_level" -#define LOG_CONFIG_STRING_GLOBAL_LOG_VERBOSITY "global_log_verbosity" #define LOG_CONFIG_STRING_GLOBAL_LOG_ONLINE "global_log_online" #define LOG_CONFIG_STRING_GLOBAL_LOG_INFILE "global_log_infile" +#define LOG_CONFIG_STRING_GLOBAL_LOG_OPTIONS "global_log_options" #define LOG_CONFIG_LEVEL_FORMAT "%s_log_level" -#define LOG_CONFIG_VERBOSITY_FORMAT "%s_log_verbosity" #define LOG_CONFIG_LOGFILE_FORMAT "%s_log_infile" -/*--------------------------------------------------------------------------------------------------------------------------------------------------------------*/ -/* LOG globalconfiguration parameters */ -/* optname helpstr paramflags XXXptr defXXXval type numelt */ -/*--------------------------------------------------------------------------------------------------------------------------------------------------------------*/ +#define LOG_CONFIG_DEBUG_FORMAT "%s_debug" +#define LOG_CONFIG_MATLAB_FORMAT "%s_matlab" + +#define LOG_CONFIG_HELP_OPTIONS " list of comma separated options to enable log module behavior. Available options: \n"\ + " nocolor: disable color usage in log messages\n"\ + " level: add log level indication in log messages\n"\ + " thread: add threads names in log messages\n" + + + + +/*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ +/* LOG globalconfiguration parameters */ +/* optname help paramflags XXXptr defXXXval type numelt */ +/*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ #define LOG_GLOBALPARAMS_DESC { \ -{LOG_CONFIG_STRING_GLOBAL_LOG_LEVEL, NULL, 0, strptr:(char **)&gloglevel, defstrval:log_level_names[2].name, TYPE_STRING, 0}, \ -{LOG_CONFIG_STRING_GLOBAL_LOG_VERBOSITY,NULL, 0, strptr:(char **)&glogverbo, defstrval:log_verbosity_names[2].name, TYPE_STRING, 0}, \ -{LOG_CONFIG_STRING_GLOBAL_LOG_ONLINE, NULL, 0, iptr:&(g_log->onlinelog), defintval:1, TYPE_INT, 0, }, \ -{LOG_CONFIG_STRING_GLOBAL_LOG_INFILE, NULL, 0, iptr:&(g_log->filelog), defintval:0, TYPE_INT, 0, }, \ +{LOG_CONFIG_STRING_GLOBAL_LOG_LEVEL, "Default log level for all componemts\n", 0, strptr:(char **)&gloglevel, defstrval:log_level_names[2].name, TYPE_STRING, 0}, \ +{LOG_CONFIG_STRING_GLOBAL_LOG_ONLINE, "Default console output option, for all components\n", 0, iptr:&(g_log->onlinelog), defintval:1, TYPE_INT, 0}, \ +{LOG_CONFIG_STRING_GLOBAL_LOG_OPTIONS, LOG_CONFIG_HELP_OPTIONS, 0, strlistptr:NULL, defstrlistval:NULL, TYPE_STRINGLIST,0} \ } + +#define LOG_OPTIONS_IDX 2 /*----------------------------------------------------------------------------------*/ /** @defgroup _debugging debugging macros * @ingroup _macro * @brief Macro used to call logIt function with different message levels * @{*/ -// debugging macros -# if T_TRACER -# include "T.h" -# define LOG_I(c, x...) T(T_LEGACY_ ## c ## _INFO, T_PRINTF(x)) -# define LOG_W(c, x...) T(T_LEGACY_ ## c ## _WARNING, T_PRINTF(x)) -# define LOG_E(c, x...) T(T_LEGACY_ ## c ## _ERROR, T_PRINTF(x)) -# define LOG_D(c, x...) T(T_LEGACY_ ## c ## _DEBUG, T_PRINTF(x)) -# define LOG_T(c, x...) T(T_LEGACY_ ## c ## _TRACE, T_PRINTF(x)) -# define LOG_G(c, x...) /* */ -# define LOG_A(c, x...) /* */ -# define LOG_C(c, x...) /* */ -# define LOG_N(c, x...) /* */ +// debugging macros(g_log->log_component[component].interval?logRecord_mt(__FILE__, __FUNCTION__, __LINE__, component, level, format, ##args):(void)0) +# if T_TRACER + /* per component, level dependant macros */ +# define LOG_I(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_INFO ) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_INFO, x) ;} else { T(T_LEGACY_ ## c ## _INFO, T_PRINTF(x)) ;}} while (0) +# define LOG_W(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_WARNING) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_WARNING, x) ;} else { T(T_LEGACY_ ## c ## _WARNING, T_PRINTF(x)) ;}} while (0) +# define LOG_E(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_ERR ) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_ERR, x) ;} else { T(T_LEGACY_ ## c ## _ERROR, T_PRINTF(x)) ;}} while (0) +# define LOG_D(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_DEBUG ) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_DEBUG, x) ;} else { T(T_LEGACY_ ## c ## _DEBUG, T_PRINTF(x)) ;}} while (0) +# define LOG_T(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_TRACE ) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_TRACE, x) ;} else { T(T_LEGACY_ ## c ## _TRACE, T_PRINTF(x)) ;}} while (0) +# define LOG_F(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_FILE ) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_FILE, x) ;}} while (0) /* */ +# define nfapi_log(FILE, FNC, LN, COMP, LVL, F...) do { if (T_stdout) { logRecord_mt(__FILE__, __FUNCTION__, __LINE__,COMP, LVL, F) ;}} while (0) /* */ + /* bitmask dependant macros, to isolate debugging code */ +# define LOG_DEBUG_BEGIN(D) if (g_log->debug_mask & D) { +# define LOG_DEBUG_END } + /* bitmask dependant macros, to generate matlab files */ +# define LOG_M_BEGIN(D) if (g_log->matlab_mask & D) { +# define LOG_M_END } +# define LOG_M(file, vector, data, len, dec, format) do { write_file_matlab(file, vector, data, len, dec, format);} while(0)/* */ + /* define variable only used in LOG macro's */ +# define LOG_VAR(A,B) A B +# else /* T_TRACER: remove all debugging and tracing messages, except errors */ +# define LOG_I(c, x...) /* */ +# define LOG_W(c, x...) /* */ +# define LOG_E(c, x...) /* */ +# define LOG_D(c, x...) /* */ +# define LOG_T(c, x...) /* */ # define LOG_F(c, x...) /* */ -# else /* T_TRACER */ -# if DISABLE_LOG_X -# define LOG_I(c, x...) /* */ -# define LOG_W(c, x...) /* */ -# define LOG_E(c, x...) /* */ -# define LOG_D(c, x...) /* */ -# define LOG_T(c, x...) /* */ -# define LOG_G(c, x...) /* */ -# define LOG_A(c, x...) /* */ -# define LOG_C(c, x...) /* */ -# define LOG_N(c, x...) /* */ -# define LOG_F(c, x...) /* */ -# else /*DISABLE_LOG_X*/ -# define LOG_G(c, x...) logIt(c, LOG_EMERG, x) -# define LOG_A(c, x...) logIt(c, LOG_ALERT, x) -# define LOG_C(c, x...) logIt(c, LOG_CRIT, x) -# define LOG_E(c, x...) logIt(c, LOG_ERR, x) -# define LOG_W(c, x...) logIt(c, LOG_WARNING, x) -# define LOG_N(c, x...) logIt(c, LOG_NOTICE, x) -# define LOG_I(c, x...) logIt(c, LOG_INFO, x) -# define LOG_D(c, x...) logIt(c, LOG_DEBUG, x) -# define LOG_F(c, x...) logIt(c, LOG_FILE, x) // log to a file, useful for the MSC chart generation -# define LOG_T(c, x...) logIt(c, LOG_TRACE, x) -# endif /*DISABLE_LOG_X*/ +# define nfapi_log(FILE, FNC, LN, COMP, LVL, FMT...) +# define LOG_DEBUG_BEGIN(D) if (0) { +# define LOG_DEBUG_END } +# define LOG_M_BEGIN(D) if (0) { +# define LOG_M_END } +# define LOG_M(file, vector, data, len, dec, format) +# define LOG_VAR(A,B) # endif /* T_TRACER */ +/* avoid warnings for variables only used in LOG macro's but set outside debug section */ +#define LOG_USEDINLOG_VAR(A,B) __attribute__((unused)) A B + +/* unfiltered macros, usefull for simulators or messages at init time, before log is configured */ +#define LOG_UM(file, vector, data, len, dec, format) do { write_file_matlab(file, vector, data, len, dec, format);} while(0) + +#define LOG_UI(c, x...) do {logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_INFO, x) ; } while(0) /* @}*/ diff --git a/openair2/UTIL/LOG/log_extern.h b/common/utils/LOG/log_extern.h similarity index 84% rename from openair2/UTIL/LOG/log_extern.h rename to common/utils/LOG/log_extern.h index 611487ffea..3c93d517ca 100644 --- a/openair2/UTIL/LOG/log_extern.h +++ b/common/utils/LOG/log_extern.h @@ -23,12 +23,8 @@ extern log_t *g_log; -#if !defined(LOG_NO_THREAD) -extern LOG_params log_list[2000]; -extern pthread_mutex_t log_lock; -extern pthread_cond_t log_notify; -extern int log_shutdown; -#endif extern mapping log_level_names[]; -extern mapping log_verbosity_names[]; +extern mapping log_options[]; +extern mapping log_maskmap[]; + diff --git a/openair2/UTIL/LOG/log_if.h b/common/utils/LOG/log_if.h similarity index 100% rename from openair2/UTIL/LOG/log_if.h rename to common/utils/LOG/log_if.h diff --git a/openair2/UTIL/LOG/vcd_signal_dumper.c b/common/utils/LOG/vcd_signal_dumper.c similarity index 100% rename from openair2/UTIL/LOG/vcd_signal_dumper.c rename to common/utils/LOG/vcd_signal_dumper.c diff --git a/openair2/UTIL/LOG/vcd_signal_dumper.h b/common/utils/LOG/vcd_signal_dumper.h similarity index 95% rename from openair2/UTIL/LOG/vcd_signal_dumper.h rename to common/utils/LOG/vcd_signal_dumper.h index 075eacf7bf..590717c726 100644 --- a/openair2/UTIL/LOG/vcd_signal_dumper.h +++ b/common/utils/LOG/vcd_signal_dumper.h @@ -457,28 +457,13 @@ extern int ouput_vcd; #include "T.h" -#define VCD_SIGNAL_DUMPER_INIT(x) /* nothing */ -#define VCD_SIGNAL_DUMPER_CLOSE() /* nothing */ -#define VCD_SIGNAL_DUMPER_CREATE_HEADER() /* nothing */ #define VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(var, val) T_VCD_VARIABLE(var, val) #define VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(var, val) T_VCD_FUNCTION(var, val) - -#else /* T_TRACER */ - -#if defined(ENABLE_VCD) - #define VCD_SIGNAL_DUMPER_INIT(aRgUmEnT) vcd_signal_dumper_init(aRgUmEnT) - #define VCD_SIGNAL_DUMPER_CLOSE() vcd_signal_dumper_close() - #define VCD_SIGNAL_DUMPER_CREATE_HEADER() vcd_signal_dumper_create_header() - #define VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(vAr1,vAr2) vcd_signal_dumper_dump_variable_by_name(vAr1,vAr2) - #define VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(vAr1,vAr2) vcd_signal_dumper_dump_function_by_name(vAr1,vAr2) #else - #define VCD_SIGNAL_DUMPER_INIT(aRgUmEnT) - #define VCD_SIGNAL_DUMPER_CLOSE() - #define VCD_SIGNAL_DUMPER_CREATE_HEADER() - #define VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(vAr1,vAr2) - #define VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(vAr1,vAr2) -#endif +#define VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(var, val) +#define VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(var, val) + #endif /* T_TRACER */ #endif /* !defined (VCD_SIGNAL_DUMPER_H_) */ diff --git a/common/utils/T/Makefile b/common/utils/T/Makefile index dcb0d12fab..5e1785ea91 100644 --- a/common/utils/T/Makefile +++ b/common/utils/T/Makefile @@ -13,7 +13,7 @@ $(GENIDS): $(GENIDS_OBJS) $(CC) $(CFLAGS) -c -o $@ $< T_messages.txt.h: T_messages.txt - xxd -i T_messages.txt > T_messages.txt.h + xxd -i T_messages.txt T_messages.txt.h T_IDs.h: $(GENIDS) T_messages.txt ./$(GENIDS) T_messages.txt T_IDs.h diff --git a/common/utils/T/T.c b/common/utils/T/T.c index 92e70c221b..8679a4185f 100644 --- a/common/utils/T/T.c +++ b/common/utils/T/T.c @@ -9,6 +9,8 @@ #include #include +#include "common/config/config_userapi.h" + #define QUIT(x) do { \ printf("T tracer: QUIT: %s\n", x); \ exit(1); \ @@ -17,6 +19,7 @@ /* array used to activate/disactivate a log */ static int T_IDs[T_NUMBER_OF_IDS]; int *T_active = T_IDs; +int T_stdout; static int T_socket; @@ -157,3 +160,22 @@ void T_init(int remote_port, int wait_for_tracer, int dont_fork) new_thread(T_receive_thread, NULL); } + +void T_Config_Init(void) +{ +int T_port; /* by default we wait for the tracer */ +int T_nowait; /* default port to listen to to wait for the tracer */ +int T_dont_fork; /* default is to fork, see 'T_init' to understand */ + +paramdef_t ttraceparams[] = CMDLINE_TTRACEPARAMS_DESC ; + +/* for a cleaner config file, TTracer params should be defined in a specific section... */ + config_get( ttraceparams,sizeof(ttraceparams)/sizeof(paramdef_t),TTRACER_CONFIG_PREFIX); + +/* compatibility: look for TTracer command line options in root section */ + config_process_cmdline( ttraceparams,sizeof(ttraceparams)/sizeof(paramdef_t),NULL); + + if (T_stdout == 0) { + T_init(T_port, 1-T_nowait, T_dont_fork); + } +} diff --git a/common/utils/T/T.h b/common/utils/T/T.h index cab246a6ff..755f5d4e39 100644 --- a/common/utils/T/T.h +++ b/common/utils/T/T.h @@ -14,6 +14,7 @@ /* T message IDs */ #include "T_IDs.h" +#define T_ACTIVE_STDOUT 2 /* known type - this is where you add new types */ #define T_INT(x) int, (x) @@ -94,12 +95,12 @@ struct T_header; #define T_ID(x) ((struct T_header *)(uintptr_t)(x)) /* T macro tricks */ - +extern int T_stdout; #define TN(...) TN_N(__VA_ARGS__,33,32,31,30,29,28,27,26,25,24,23,22,21,\ 20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)(__VA_ARGS__) #define TN_N(n0,n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,\ n18,n19,n20,n21,n22,n23,n24,n25,n26,n27,n28,n29,n30,n31,n32,n,...) T##n -#define T(...) TN(__VA_ARGS__) +#define T(...) do { if (T_stdout == 0) TN(__VA_ARGS__); } while (0) /* type used to send arbitrary buffer data */ typedef struct { @@ -109,7 +110,7 @@ typedef struct { extern volatile int *T_freelist_head; extern T_cache_t *T_cache; - +extern int *T_active; /* When running the basic simulator, we may fill the T cache too fast. * Let's not crash if it's full, just wait. */ @@ -151,50 +152,6 @@ extern T_cache_t *T_cache; abort(); \ } -#if 0 -#define T_PUT(type, var, argnum) \ - do { \ - if (T_LOCAL_size + sizeof(var) > T_BUFFER_MAX) { \ - printf("%s:%d:%s: cannot put argument %d in T macro, not enough space" \ - ", consider increasing T_BUFFER_MAX (%d)\n", \ - __FILE__, __LINE__, __FUNCTION__, argnum, T_BUFFER_MAX); \ - abort(); \ - } \ - memcpy(T_LOCAL_buf + T_LOCAL_size, &var, sizeof(var)); \ - T_LOCAL_size += sizeof(var); \ - } while (0) -#endif - -#if 0 -#define T_PROCESS(x, argnum) \ - do { \ - T_PUT(typeof(x), x, argnum); \ - } while (0) -#endif - -#if 0 -#define T_PROCESS(x, argnum) \ - do { \ - if (__builtin_types_compatible_p(typeof(x), int)) \ - { T_PUT(int, (intptr_t)(x), argnum); printf("int\n"); } \ - else if (__builtin_types_compatible_p(typeof(x), short)) \ - { T_PUT(short, (intptr_t)(x), argnum); printf("short\n"); } \ - else if (__builtin_types_compatible_p(typeof(x), float)) \ - { T_PUT(float, (x), argnum); printf("float\n"); } \ - else if (__builtin_types_compatible_p(typeof(x), char *)) \ - { T_PUT(char *, (char *)(intptr_t)(x), argnum); printf("char *\n"); } \ - else if (__builtin_types_compatible_p(typeof(x), float *)) \ - { T_PUT(float *, (float *)(intptr_t)(x), argnum); printf("float *\n"); } \ - else if (__builtin_types_compatible_p(typeof(x), void *)) \ - { T_PUT(void *, (void *)(intptr_t)(x), argnum); printf("void *\n"); } \ - else { \ - printf("%s:%d:%s: unsupported type for argument %d in T macro\n", \ - __FILE__, __LINE__, __FUNCTION__, argnum); \ - abort(); \ - } \ - } while (0) -#endif - /* we have 4 versions of T_HEADER: * - bad quality C++ version with time * - good quality C version with time @@ -608,10 +565,30 @@ extern T_cache_t *T_cache; } \ } while (0) -extern int *T_active; +#define CONFIG_HLP_TPORT "tracer port\n" +#define CONFIG_HLP_NOTWAIT "don't wait for tracer, start immediately\n" +#define CONFIG_HLP_TNOFORK "to ease debugging with gdb\n" +#define CONFIG_HLP_STDOUT "print log messges on console\n" + + +#define TTRACER_CONFIG_PREFIX "TTracer" +/*------------------------------------------------------------------------------------------------------------------------------------------*/ +/* configuration parameters for TTRACE utility */ +/* optname helpstr paramflags XXXptr defXXXval type numelt */ +/*------------------------------------------------------------------------------------------------------------------------------------------*/ +#define CMDLINE_TTRACEPARAMS_DESC { \ +{"T_port", CONFIG_HLP_TPORT, 0, iptr:&T_port, defintval:2021, TYPE_INT, 0}, \ +{"T_nowait", CONFIG_HLP_NOTWAIT, PARAMFLAG_BOOL, iptr:&T_nowait, defintval:0, TYPE_INT, 0}, \ +{"T_dont_fork", CONFIG_HLP_TNOFORK, PARAMFLAG_BOOL, iptr:&T_dont_fork, defintval:0, TYPE_INT, 0}, \ +{"T_stdout", CONFIG_HLP_STDOUT, PARAMFLAG_BOOL, iptr:&T_stdout, defintval:1, TYPE_INT, 0}, \ +} + + + + /* log on stdout */ void T_init(int remote_port, int wait_for_tracer, int dont_fork); - +void T_Config_Init(void); #else /* T_TRACER */ /* if T_TRACER is not defined or is 0, the T is deactivated */ diff --git a/common/utils/T/T_defs.h b/common/utils/T/T_defs.h index 9961c1919e..b0b9940c30 100644 --- a/common/utils/T/T_defs.h +++ b/common/utils/T/T_defs.h @@ -39,10 +39,10 @@ typedef struct { #define T_SHM_FILENAME "/T_shm_segment" /* number of VCD functions (to be kept up to date! see in T_messages.txt) */ -#define VCD_NUM_FUNCTIONS 187 +#define VCD_NUM_FUNCTIONS 190 /* number of VCD variables (to be kept up to date! see in T_messages.txt) */ -#define VCD_NUM_VARIABLES 131 +#define VCD_NUM_VARIABLES 128 /* first VCD function (to be kept up to date! see in T_messages.txt) */ #define VCD_FIRST_FUNCTION ((uintptr_t)T_VCD_FUNCTION_RT_SLEEP) diff --git a/common/utils/T/T_messages.txt b/common/utils/T/T_messages.txt index 4d59a8d380..fd4425063b 100644 --- a/common/utils/T/T_messages.txt +++ b/common/utils/T/T_messages.txt @@ -749,7 +749,26 @@ ID = LEGACY_OSA_TRACE DESC = OSA legacy logs - trace level GROUP = ALL:LEGACY_OSA:LEGACY_GROUP_TRACE:LEGACY FORMAT = string,log - +ID = LEGACY_SIM_INFO + DESC = SIM legacy logs - info level + GROUP = ALL:LEGACY_SIM:LEGACY_GROUP_INFO:LEGACY + FORMAT = string,log +ID = LEGACY_SIM_ERROR + DESC = SIM legacy logs - error level + GROUP = ALL:LEGACY_SIM:LEGACY_GROUP_ERROR:LEGACY + FORMAT = string,log +ID = LEGACY_SIM_WARNING + DESC = SIM legacy logs - warning level + GROUP = ALL:LEGACY_SIM:LEGACY_GROUP_WARNING:LEGACY + FORMAT = string,log +ID = LEGACY_SIM_DEBUG + DESC = SIM legacy logs - debug level + GROUP = ALL:LEGACY_SIM:LEGACY_GROUP_DEBUG:LEGACY + FORMAT = string,log +ID = LEGACY_SIM_TRACE + DESC = SIM legacy logs - trace level + GROUP = ALL:LEGACY_SIM:LEGACY_GROUP_TRACE:LEGACY + FORMAT = string,log # this is a bad hack but I won't fix (function util_print_hex_octets # in openairinterface5g/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c # does funky things with the LOG_x macros but we work on the C pre-processor @@ -1034,18 +1053,6 @@ ID = VCD_VARIABLE_SUBFRAME_NUMBER_RX1_UE DESC = VCD variable SUBFRAME_NUMBER_RX1_UE GROUP = ALL:VCD:UE:VCD_VARIABLE FORMAT = ulong,value -ID = VCD_VARIABLE_MISSED_SLOTS_ENB - DESC = VCD variable MISSED_SLOTS_ENB - GROUP = ALL:VCD:ENB:VCD_VARIABLE - FORMAT = ulong,value -ID = VCD_VARIABLE_DAQ_MBOX - DESC = VCD variable DAQ_MBOX - GROUP = ALL:VCD:ENB:VCD_VARIABLE - FORMAT = ulong,value -ID = VCD_VARIABLE_UE_OFFSET_MBOX - DESC = VCD variable UE_OFFSET_MBOX - GROUP = ALL:VCD:UE:VCD_VARIABLE - FORMAT = ulong,value ID = VCD_VARIABLE_UE_RX_OFFSET DESC = VCD variable UE_RX_OFFSET GROUP = ALL:VCD:UE:VCD_VARIABLE @@ -1553,6 +1560,18 @@ ID = VCD_FUNCTION_UE_LOCK_MUTEX_RXTX_FOR_CNT_INCREMENT1 DESC = VCD function UE_LOCK_MUTEX_RXTX_FOR_CNT_INCREMENT1 GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value +ID = VCD_FUNCTION_SIM_DO_DL_SIGNAL + DESC = VCD function SIM_DO_DL_SIGNAL + GROUP = ALL:VCD:ENB:VCD_FUNCTION + FORMAT = int,value +ID = VCD_FUNCTION_SIM_DO_UL_SIGNAL + DESC = VCD function SIM_DO_UL_SIGNAL + GROUP = ALL:VCD:ENB:VCD_FUNCTION + FORMAT = int,value +ID = VCD_FUNCTION_SIM_UE_TRX_READ + DESC = VCD function SIM_UE_TRX_READ + GROUP = ALL:VCD:ENB:VCD_FUNCTION + FORMAT = int,value ID = VCD_FUNCTION_eNB_TX DESC = VCD function eNB_TX GROUP = ALL:VCD:ENB:VCD_FUNCTION diff --git a/common/utils/T/local_tracer.c b/common/utils/T/local_tracer.c index 43680b4099..c331daa4a9 100644 --- a/common/utils/T/local_tracer.c +++ b/common/utils/T/local_tracer.c @@ -367,20 +367,24 @@ void T_local_tracer_main(int remote_port, int wait_for_tracer, int port = remote_port; int dont_wait = wait_for_tracer ? 0 : 1; void *f; - + printf("local tracer starting\n"); /* write on a socket fails if the other end is closed and we get SIGPIPE */ - if (signal(SIGPIPE, SIG_IGN) == SIG_ERR) abort(); + if (signal(SIGPIPE, SIG_IGN) == SIG_ERR){ + printf("local tracer received SIGPIPE\n"); + abort(); + } init_shm(shm_file); s = local_socket; - + printf("local tracer starting step 2\n"); if (dont_wait) { char t = 2; + printf("local tracer in no wait mode \n"); if (write(s, &t, 1) != 1) abort(); } - + printf("local tracer starting step 3\n"); f = forwarder(port, s); - + printf("local tracer main loop.... \n"); /* read messages */ while (1) { wait_message(); diff --git a/common/utils/T/tracer/extract_input_subframe.c b/common/utils/T/tracer/extract_input_subframe.c index d742318201..48e3ec07f9 100644 --- a/common/utils/T/tracer/extract_input_subframe.c +++ b/common/utils/T/tracer/extract_input_subframe.c @@ -117,12 +117,7 @@ err: e.e[frame_arg].i, e.e[subframe_arg].i, e.e[buffer_arg].bsize); if (!(frame == e.e[frame_arg].i && subframe == e.e[subframe_arg].i)) continue; -#if 0 -for (i = 0; i < e.e[buffer_arg].bsize/2; i++) { -short *x = e.e[buffer_arg].b; -x[i] *= 14; -} -#endif + if (fwrite(e.e[buffer_arg].b, e.e[buffer_arg].bsize, 1, out) != 1) { perror(output_file); exit(1); } processed_subframes++; diff --git a/common/utils/T/tracer/extract_output_subframe.c b/common/utils/T/tracer/extract_output_subframe.c index d24393553c..d7f9ff95ed 100644 --- a/common/utils/T/tracer/extract_output_subframe.c +++ b/common/utils/T/tracer/extract_output_subframe.c @@ -124,12 +124,6 @@ err: } last_frame = frame; last_subframe = subframe; -#if 0 -for (i = 0; i < e.e[buffer_arg].bsize/2; i++) { -short *x = e.e[buffer_arg].b; -x[i] *= 14; -} -#endif if (verbose) printf("save output frame %d subframe %d size %d\n", e.e[frame_arg].i, e.e[subframe_arg].i, e.e[buffer_arg].bsize); diff --git a/common/utils/T/tracer/gui/test.c b/common/utils/T/tracer/gui/test.c index f64d02347e..f0429cba17 100644 --- a/common/utils/T/tracer/gui/test.c +++ b/common/utils/T/tracer/gui/test.c @@ -22,13 +22,7 @@ int main(void) widget_add_child(g, c1, c2, 0); plot = new_xy_plot(g, 100, 100, "xy plot test", 30); -#if 0 - c2 = new_container(g, HORIZONTAL); - widget_add_child(g, c2, plot, -1); - widget_add_child(g, c1, c2, -1); -#else widget_add_child(g, c1, plot, -1); -#endif tlcol = new_color(g, "#ddf"); tl = new_textlist(g, 300, 10, tlcol); diff --git a/common/utils/T/tracer/gui/x.c b/common/utils/T/tracer/gui/x.c index af3d05cc14..94448eb666 100644 --- a/common/utils/T/tracer/gui/x.c +++ b/common/utils/T/tracer/gui/x.c @@ -124,20 +124,6 @@ x_window *x_create_window(x_connection *_x, int width, int height, XMapWindow(x->d, ret->w); -#if 0 - /* wait for window to be mapped */ - LOGD("wait for map\n"); - while (1) { - XEvent ev; - //XWindowEvent(x->d, ret->w, StructureNotifyMask, &ev); - XWindowEvent(x->d, ret->w, ExposureMask, &ev); - LOGD("got ev %d\n", ev.type); - //if (ev.type == MapNotify) break; - if (ev.type == Expose) break; - } - LOGD("XXX create connection %p window %p (win id %d pixmap %d) w h %d %d\n", x, ret, (int)ret->w, (int)ret->p, width, height); -#endif - return ret; } @@ -265,14 +251,6 @@ void x_events(gui *_gui) ev.xbutton.button, 1); } break; -#if 0 - case MapNotify: - if ((w = find_x_window(g, ev.xmap.window)) != NULL) { - struct x_window *xw = w->x; - xw->repaint = 1; - } - break; -#endif default: if (gui_logd) WARN("TODO: X event type %d\n", ev.type); break; } } diff --git a/common/utils/T/tracer/gui/xy_plot.c b/common/utils/T/tracer/gui/xy_plot.c index 4115f92103..0f15f4862a 100644 --- a/common/utils/T/tracer/gui/xy_plot.c +++ b/common/utils/T/tracer/gui/xy_plot.c @@ -7,165 +7,6 @@ #include #include -#if 0 -/* this version behaves differently when you resize the XY plot. Say - * you increase the size. The old (smaller) view is put at the center - * of the new view. Everything inside keeps the same size/aspect ratio. - * The other version below resizes the old view so that it fully occupies - * the new view. It may introduce aspect ratio changes, but usage seems - * to suggest it's a better behaviour. - */ -static void paint(gui *_gui, widget *_this) -{ - struct gui *g = _gui; - struct xy_plot_widget *this = _this; - int wanted_plot_width, allocated_plot_width; - int wanted_plot_height, allocated_plot_height; - float pxsize; - float ticdist; - float tic; - float ticstep; - int k, kmin, kmax; - float allocated_xmin, allocated_xmax; - float allocated_ymin, allocated_ymax; - float center; - int i; - int n; - -# define FLIP(v) (-(v) + allocated_plot_height-1) - - LOGD("PAINT xy plot xywh %d %d %d %d\n", this->common.x, this->common.y, this->common.width, this->common.height); - -//x_draw_rectangle(g->x, g->xwin, 1, this->common.x, this->common.y, this->common.width, this->common.height); - - wanted_plot_width = this->wanted_width; - allocated_plot_width = this->common.width - this->vrule_width; - wanted_plot_height = this->wanted_height; - allocated_plot_height = this->common.height - this->label_height * 2; - - /* plot zone */ - /* TODO: refine height - height of hrule text may be != from label */ - x_draw_rectangle(g->x, g->xwin, 1, - this->common.x + this->vrule_width, - this->common.y, - this->common.width - this->vrule_width -1, /* -1 to see right border */ - this->common.height - this->label_height * 2); - - /* horizontal tics */ - pxsize = (this->xmax - this->xmin) / wanted_plot_width; - ticdist = 100; - tic = floor(log10(ticdist * pxsize)); - ticstep = powf(10, tic); - center = (this->xmax + this->xmin) / 2; - allocated_xmin = center - ((this->xmax - this->xmin) * - allocated_plot_width / wanted_plot_width) / 2; - allocated_xmax = center + ((this->xmax - this->xmin) * - allocated_plot_width / wanted_plot_width) / 2; - /* adjust tic if too tight */ - LOGD("pre x ticstep %g\n", ticstep); - while (1) { - if (ticstep / (allocated_xmax - allocated_xmin) - * (allocated_plot_width - 1) > 40) break; - ticstep *= 2; - } - LOGD("post x ticstep %g\n", ticstep); - LOGD("xmin/max %g %g width wanted allocated %d %d alloc xmin/max %g %g ticstep %g\n", this->xmin, this->xmax, wanted_plot_width, allocated_plot_width, allocated_xmin, allocated_xmax, ticstep); - kmin = ceil(allocated_xmin / ticstep); - kmax = floor(allocated_xmax / ticstep); - for (k = kmin; k <= kmax; k++) { -/* - (k * ticstep - allocated_xmin) / (allocated_max - allocated_xmin) = - (x - 0) / (allocated_plot_width-1 - 0) - */ - char v[64]; - int vwidth, dummy; - int x = (k * ticstep - allocated_xmin) / - (allocated_xmax - allocated_xmin) * - (allocated_plot_width - 1); - x_draw_line(g->x, g->xwin, FOREGROUND_COLOR, - this->common.x + this->vrule_width + x, - this->common.y + this->common.height - this->label_height * 2, - this->common.x + this->vrule_width + x, - this->common.y + this->common.height - this->label_height * 2 - 5); - sprintf(v, "%g", k * ticstep); - x_text_get_dimensions(g->x, DEFAULT_FONT, v, &vwidth, &dummy, &dummy); - x_draw_string(g->x, g->xwin, DEFAULT_FONT, FOREGROUND_COLOR, - this->common.x + this->vrule_width + x - vwidth/2, - this->common.y + this->common.height - this->label_height * 2 + - this->label_baseline, - v); - LOGD("tic k %d val %g x %d\n", k, k * ticstep, x); - } - - /* vertical tics */ - pxsize = (this->ymax - this->ymin) / wanted_plot_height; - ticdist = 30; - tic = floor(log10(ticdist * pxsize)); - ticstep = powf(10, tic); - center = (this->ymax + this->ymin) / 2; - allocated_ymin = center - ((this->ymax - this->ymin) * - allocated_plot_height / wanted_plot_height) / 2; - allocated_ymax = center + ((this->ymax - this->ymin) * - allocated_plot_height / wanted_plot_height) / 2; - /* adjust tic if too tight */ - LOGD("pre y ticstep %g\n", ticstep); - while (1) { - if (ticstep / (allocated_ymax - allocated_ymin) - * (allocated_plot_height - 1) > 20) break; - ticstep *= 2; - } - LOGD("post y ticstep %g\n", ticstep); - LOGD("ymin/max %g %g height wanted allocated %d %d alloc ymin/max %g %g ticstep %g\n", this->ymin, this->ymax, wanted_plot_height, allocated_plot_height, allocated_ymin, allocated_ymax, ticstep); - kmin = ceil(allocated_ymin / ticstep); - kmax = floor(allocated_ymax / ticstep); - for (k = kmin; k <= kmax; k++) { - char v[64]; - int vwidth, dummy; - int y = (k * ticstep - allocated_ymin) / - (allocated_ymax - allocated_ymin) * - (allocated_plot_height - 1); - sprintf(v, "%g", k * ticstep); - x_text_get_dimensions(g->x, DEFAULT_FONT, v, &vwidth, &dummy, &dummy); - x_draw_line(g->x, g->xwin, FOREGROUND_COLOR, - this->common.x + this->vrule_width, - this->common.y + FLIP(y), - this->common.x + this->vrule_width + 5, - this->common.y + FLIP(y)); - x_draw_string(g->x, g->xwin, DEFAULT_FONT, FOREGROUND_COLOR, - this->common.x + this->vrule_width - vwidth - 2, - this->common.y + FLIP(y) - this->label_height/2+this->label_baseline, - v); - } - - /* label at bottom, in the middle */ - x_draw_string(g->x, g->xwin, DEFAULT_FONT, FOREGROUND_COLOR, - this->common.x + (this->common.width - this->label_width) / 2, - this->common.y + this->common.height - this->label_height - + this->label_baseline, - this->label); - - for (n = 0; n < this->nplots; n++) { - /* points */ - float ax, bx, ay, by; - ax = (allocated_plot_width-1) / (allocated_xmax - allocated_xmin); - bx = -ax * allocated_xmin; - ay = (allocated_plot_height-1) / (allocated_ymax - allocated_ymin); - by = -ay * allocated_ymin; - for (i = 0; i < this->plots[n].npoints; i++) { - int x, y; - x = ax * this->plots[n].x[i] + bx; - y = ay * this->plots[n].y[i] + by; - if (x >= 0 && x < allocated_plot_width && - y >= 0 && y < allocated_plot_height) - x_add_point(g->x, - this->common.x + this->vrule_width + x, - this->common.y + FLIP(y)); - } - x_plot_points(g->x, g->xwin, this->plots[n].color); - } -} -#endif - static void paint(gui *_gui, widget *_this) { struct gui *g = _gui; diff --git a/common/utils/T/tracer/logger/iqlog.c b/common/utils/T/tracer/logger/iqlog.c index bea8adccc5..168c50e39b 100644 --- a/common/utils/T/tracer/logger/iqlog.c +++ b/common/utils/T/tracer/logger/iqlog.c @@ -20,42 +20,6 @@ struct iqlog { int max_length; }; -#if 0 -/* this function passes all received IQ samples to the views */ -static void _event(void *p, event e) -{ - struct iqlog *l = p; - int i; - void *buffer; - int bsize; - int nsamples; - - if (l->common.filter != NULL && filter_eval(l->common.filter, e) == 0) - return; - - buffer = e.e[l->buffer_arg].b; - bsize = e.e[l->buffer_arg].bsize; - - nsamples = bsize / (2*sizeof(int16_t)); - - if (nsamples > l->max_length) { - l->i = realloc(l->i, nsamples * sizeof(float)); - if (l->i == NULL) abort(); - l->q = realloc(l->q, nsamples * sizeof(float)); - if (l->q == NULL) abort(); - l->max_length = nsamples; - } - - for (i = 0; i < nsamples; i++) { - l->i[i] = ((int16_t *)buffer)[i*2]; - l->q[i] = ((int16_t *)buffer)[i*2+1]; - } - - for (i = 0; i < l->common.vsize; i++) - l->common.v[i]->append(l->common.v[i], l->i, l->q, nsamples); -} -#endif - static void _event(void *p, event e) { struct iqlog *l = p; diff --git a/common/utils/T/tracer/packet-mac-lte.h b/common/utils/T/tracer/packet-mac-lte.h index e418f3417e..1bc6df632b 100644 --- a/common/utils/T/tracer/packet-mac-lte.h +++ b/common/utils/T/tracer/packet-mac-lte.h @@ -56,176 +56,6 @@ #define SC_RNTI 9 #define G_RNTI 10 -#if 0 -typedef enum mac_lte_oob_event { - ltemac_send_preamble, - ltemac_send_sr, - ltemac_sr_failure -} mac_lte_oob_event; - -typedef enum mac_lte_dl_retx { - dl_retx_no, - dl_retx_yes, - dl_retx_unknown -} mac_lte_dl_retx; - -typedef enum mac_lte_crc_status { - crc_fail = 0, - crc_success = 1, - crc_high_code_rate = 2, - crc_pdsch_lost = 3, - crc_duplicate_nonzero_rv = 4, - crc_false_dci = 5 -} mac_lte_crc_status; - -typedef enum mac_lte_carrier_id { - carrier_id_primary, - carrier_id_secondary_1, - carrier_id_secondary_2, - carrier_id_secondary_3, - carrier_id_secondary_4 -} mac_lte_carrier_id; - -typedef enum mac_lte_ce_mode { - no_ce_mode = 0, - ce_mode_a = 1, - ce_mode_b = 2 -} mac_lte_ce_mode; - -typedef enum mac_lte_nb_mode { - no_nb_mode = 0, - nb_mode = 1 -} mac_lte_nb_mode; - -/* Context info attached to each LTE MAC frame */ -typedef struct mac_lte_info -{ - /* Needed for decode */ - guint8 radioType; - guint8 direction; - guint8 rntiType; - - /* Extra info to display */ - guint16 rnti; - guint16 ueid; - - /* Timing info */ - guint16 sysframeNumber; - guint16 subframeNumber; - - /* Optional field. More interesting for TDD (FDD is always -4 subframeNumber) */ - gboolean subframeNumberOfGrantPresent; - guint16 subframeNumberOfGrant; - - /* Flag set only if doing PHY-level data test - i.e. there may not be a - well-formed MAC PDU so just show as raw data */ - gboolean isPredefinedData; - - /* Length of DL PDU or UL grant size in bytes */ - guint16 length; - - /* 0=newTx, 1=first-retx, etc */ - guint8 reTxCount; - guint8 isPHICHNACK; /* FALSE=PDCCH retx grant, TRUE=PHICH NACK */ - - /* UL only. Indicates if the R10 extendedBSR-Sizes parameter is set */ - gboolean isExtendedBSRSizes; - - /* UL only. Indicates if the R10 simultaneousPUCCH-PUSCH parameter is set for PCell */ - gboolean isSimultPUCCHPUSCHPCell; - - /* UL only. Indicates if the R10 extendedBSR-Sizes parameter is set for PSCell */ - gboolean isSimultPUCCHPUSCHPSCell; - - /* Status of CRC check. For UE it is DL only. For eNodeB it is UL - only. For an analyzer, it is present for both DL and UL. */ - gboolean crcStatusValid; - mac_lte_crc_status crcStatus; - - /* Carrier ID */ - mac_lte_carrier_id carrierId; - - /* DL only. Is this known to be a retransmission? */ - mac_lte_dl_retx dl_retx; - - /* DL only. CE mode to be used for RAR decoding */ - mac_lte_ce_mode ceMode; - - /* DL and UL. NB-IoT mode of the UE */ - mac_lte_nb_mode nbMode; - - /* More Physical layer info (see direction above for which side of union to use) */ - union { - struct mac_lte_ul_phy_info - { - guint8 present; /* Remaining UL fields are present and should be displayed */ - guint8 modulation_type; - guint8 tbs_index; - guint8 resource_block_length; - guint8 resource_block_start; - guint8 harq_id; - gboolean ndi; - } ul_info; - struct mac_lte_dl_phy_info - { - guint8 present; /* Remaining DL fields are present and should be displayed */ - guint8 dci_format; - guint8 resource_allocation_type; - guint8 aggregation_level; - guint8 mcs_index; - guint8 redundancy_version_index; - guint8 resource_block_length; - guint8 harq_id; - gboolean ndi; - guint8 transport_block; /* 0..1 */ - } dl_info; - } detailed_phy_info; - - /* Relating to out-of-band events */ - /* N.B. dissector will only look to these fields if length is 0... */ - mac_lte_oob_event oob_event; - guint8 rapid; - guint8 rach_attempt_number; - #define MAX_SRs 20 - guint16 number_of_srs; - guint16 oob_ueid[MAX_SRs]; - guint16 oob_rnti[MAX_SRs]; -} mac_lte_info; - - -typedef struct mac_lte_tap_info { - /* Info from context */ - guint16 rnti; - guint16 ueid; - guint8 rntiType; - guint8 isPredefinedData; - gboolean crcStatusValid; - mac_lte_crc_status crcStatus; - guint8 direction; - - guint8 isPHYRetx; - guint16 ueInTTI; - - nstime_t mac_lte_time; - - /* Number of bytes (which part is used depends upon context settings) */ - guint32 single_number_of_bytes; - guint32 bytes_for_lcid[11]; - guint32 sdus_for_lcid[11]; - guint8 number_of_rars; - guint8 number_of_paging_ids; - - /* Number of padding bytes includes padding subheaders and trailing padding */ - guint16 padding_bytes; - guint16 raw_length; -} mac_lte_tap_info; - - -/* Accessor function to check if a frame was considered to be ReTx */ -int is_mac_lte_frame_retx(packet_info *pinfo, guint8 direction); - -#endif - /*****************************************************************/ /* UDP framing format */ /* ----------------------- */ @@ -309,82 +139,3 @@ int is_mac_lte_frame_retx(packet_info *pinfo, guint8 direction); continues until the end of the frame) */ #define MAC_LTE_PAYLOAD_TAG 0x01 - -#if 0 - -/* Type to store parameters for configuring LCID->RLC channel settings for DRB */ -/* Some are optional, and may not be seen (e.g. on reestablishment) */ -typedef struct drb_mapping_t -{ - guint16 ueid; /* Mandatory */ - guint8 drbid; /* Mandatory */ - gboolean lcid_present; - guint8 lcid; /* Part of LogicalChannelConfig - optional */ - gboolean rlcMode_present; - guint8 rlcMode; /* Part of RLC config - optional */ - gboolean rlc_ul_ext_li_field; /* Part of RLC config - optional */ - gboolean rlc_dl_ext_li_field; /* Part of RLC config - optional */ - gboolean rlc_ul_ext_am_sn; /* Part of RLC config - optional */ - gboolean rlc_dl_ext_am_sn; /* Part of RLC config - optional */ - gboolean um_sn_length_present; - guint8 um_sn_length; /* Part of RLC config - optional */ - gboolean ul_priority_present; - guint8 ul_priority; /* Part of LogicalChannelConfig - optional */ - gboolean pdcp_sn_size_present; - guint8 pdcp_sn_size; /* Part of pdcp-Config - optional */ -} drb_mapping_t; - - -/* Set details of an LCID -> drb channel mapping. To be called from - configuration protocol (e.g. RRC) */ -void set_mac_lte_channel_mapping(drb_mapping_t *drb_mapping); - - -/* Dedicated DRX config. Used to verify that a sensible config is given. - Also, beginning to configure MAC with this config and (optionally) show - DRX config and state (cycles/timers) attached to each UL/DL PDU! */ -typedef struct drx_config_t { - gboolean configured; - guint32 frameNum; - guint32 previousFrameNum; - - guint32 onDurationTimer; - guint32 inactivityTimer; - guint32 retransmissionTimer; - guint32 longCycle; - guint32 cycleOffset; - /* Optional Short cycle */ - gboolean shortCycleConfigured; - guint32 shortCycle; - guint32 shortCycleTimer; -} drx_config_t; - -/* Functions to set/release up dedicated DRX config */ -void set_mac_lte_drx_config(guint16 ueid, drx_config_t *drx_config, packet_info *pinfo); -void set_mac_lte_drx_config_release(guint16 ueid, packet_info *pinfo); - -/* RRC can tell this dissector which RAPIDs are Group A, Group A&B */ -void set_mac_lte_rapid_ranges(guint groupA, guint all_RA); - -/* RRC can indicate whether extended BSR sizes are used */ -void set_mac_lte_extended_bsr_sizes(guint16 ueid, gboolean use_ext_bsr_sizes, packet_info *pinfo); - -/* RRC can indicate whether simultaneous PUCCH/PUSCH is used */ -typedef enum { - SIMULT_PUCCH_PUSCH_PCELL = 0, - SIMULT_PUCCH_PUSCH_PSCELL -} simult_pucch_pusch_cell_type; -void set_mac_lte_simult_pucch_pusch(guint16 ueid, simult_pucch_pusch_cell_type cell_type, gboolean use_simult_pucch_pusch, packet_info *pinfo); - -/* Functions to be called from outside this module (e.g. in a plugin, where mac_lte_info - isn't available) to get/set per-packet data */ -WS_DLL_PUBLIC -mac_lte_info *get_mac_lte_proto_data(packet_info *pinfo); -WS_DLL_PUBLIC -void set_mac_lte_proto_data(packet_info *pinfo, mac_lte_info *p_mac_lte_info); - -/* Function to attempt to populate p_mac_lte_info using framing definition above */ -gboolean dissect_mac_lte_context_fields(struct mac_lte_info *p_mac_lte_info, tvbuff_t *tvb, - gint *p_offset); - -#endif diff --git a/common/utils/T/tracer/to_vcd.c b/common/utils/T/tracer/to_vcd.c index 097fdce932..1a67a9d4ff 100644 --- a/common/utils/T/tracer/to_vcd.c +++ b/common/utils/T/tracer/to_vcd.c @@ -174,7 +174,8 @@ void usage(void) " -ip connect to given IP address (default %s)\n" " -p connect to given port (default %d)\n" " -b trace as binary (0 off, anything else on)\n" -" -l trace as uint64_t\n", +" -l trace as uint64_t\n" +" -vcd trace all VCD variables and functions\n", DEFAULT_REMOTE_IP, DEFAULT_REMOTE_PORT ); @@ -192,6 +193,20 @@ void force_stop(int x) run = 0; } +vcd_vars *add_var(vcd_vars *vars, int nvars, + char *event, char *arg, char *vcd_name, int is_boolean) +{ + if (nvars % 64 == 0) { + vars = realloc(vars, (nvars+64) * sizeof(vcd_vars)); + if (vars == NULL) abort(); + } + vars[nvars].event = event; + vars[nvars].arg = arg; + vars[nvars].vcd_name = vcd_name; + vars[nvars].boolean = is_boolean; + return vars; +} + int main(int n, char **v) { char *output_filename = NULL; @@ -202,11 +217,12 @@ int main(int n, char **v) int *is_on; int number_of_events; int i; - vcd_vars vars[n]; + vcd_vars *vars = NULL; int nvars = 0; view *vcd_view; event_handler *h; logger *textlog; + int all_vcd = 0; /* write on a socket fails if the other end is closed and we get SIGPIPE */ if (signal(SIGPIPE, SIG_IGN) == SIG_ERR) abort(); @@ -221,19 +237,22 @@ int main(int n, char **v) if (!strcmp(v[i], "-p")) { if (i > n-2) usage(); port = atoi(v[++i]); continue; } if (!strcmp(v[i], "-b")) { if(i>n-4)usage(); - vars[nvars].event = v[++i]; - vars[nvars].arg = v[++i]; - vars[nvars].vcd_name = v[++i]; - vars[nvars++].boolean = 1; + char *event = v[++i]; + char *arg = v[++i]; + char *vcd_name = v[++i]; + vars = add_var(vars, nvars, event, arg, vcd_name, 1); + nvars++; continue; } if (!strcmp(v[i], "-l")) { if(i>n-4)usage(); - vars[nvars].event = v[++i]; - vars[nvars].arg = v[++i]; - vars[nvars].vcd_name = v[++i]; - vars[nvars++].boolean = 0; + char *event = v[++i]; + char *arg = v[++i]; + char *vcd_name = v[++i]; + vars = add_var(vars, nvars, event, arg, vcd_name, 0); + nvars++; continue; } + if (!strcmp(v[i], "-vcd")) { all_vcd = 1; continue; } usage(); } @@ -260,11 +279,32 @@ int main(int n, char **v) /* create the view */ vcd_view = new_view_vcd(); + if (all_vcd) { + /* activate all VCD traces */ + for (i = 0; i < number_of_events; i++) { + int is_boolean; + int prefix_length; + char *name = event_name_from_id(database, i); + char *var_prefix = "VCD_VARIABLE_"; + char *fun_prefix = "VCD_FUNCTION_"; + if (!strncmp(name, var_prefix, strlen(var_prefix))) { + prefix_length = strlen(var_prefix); + is_boolean = 0; + } else if (!strncmp(name, fun_prefix, strlen(fun_prefix))) { + prefix_length = strlen(fun_prefix); + is_boolean = 1; + } else + continue; + vars = add_var(vars, nvars, + name, "value", name+prefix_length, is_boolean); + nvars++; + } + } + /* setup traces */ for (i = 0; i < nvars; i++) { char format[256]; - if (strlen(vars[i].arg) > 256-3) abort(); - if (strlen(vars[i].vcd_name) > 256-1) abort(); + if (strlen(vars[i].arg) + strlen(vars[i].vcd_name) > 256-16) abort(); sprintf(format, "%c [%s] %s", vars[i].boolean ? 'b' : 'l', vars[i].arg, diff --git a/common/utils/hashtable/hashtable.c b/common/utils/hashtable/hashtable.c index 6322b1dea6..2c7b35744c 100644 --- a/common/utils/hashtable/hashtable.c +++ b/common/utils/hashtable/hashtable.c @@ -95,7 +95,7 @@ hash_table_t *hashtable_create(const hash_size_t sizeP, hash_size_t (*hashfuncP) * Cleanup * The hashtable_destroy() walks through the linked lists for each possible hash value, and releases the elements. It also releases the nodes array and the hash_table_t. */ -hashtable_rc_t hashtable_destroy(hash_table_t * const hashtblP) +hashtable_rc_t hashtable_destroy(hash_table_t * hashtblP) { hash_size_t n; hash_node_t *node, *oldnode; @@ -117,6 +117,7 @@ hashtable_rc_t hashtable_destroy(hash_table_t * const hashtblP) } free(hashtblP->nodes); free(hashtblP); + hashtblP=NULL; return HASH_TABLE_OK; } //------------------------------------------------------------------------------------------------------------------------------- diff --git a/common/utils/itti/assertions.h b/common/utils/itti/assertions.h index bb6c27cbab..b872b009e2 100644 --- a/common/utils/itti/assertions.h +++ b/common/utils/itti/assertions.h @@ -35,6 +35,7 @@ #ifndef ASSERTIONS_H_ #define ASSERTIONS_H_ +void output_log_mem(void); #define _Assert_Exit_ \ { \ fprintf(stderr, "\nExiting execution\n"); \ diff --git a/common/utils/itti/intertask_interface.c b/common/utils/itti/intertask_interface.c index 21a3304e20..2e38b660d7 100644 --- a/common/utils/itti/intertask_interface.c +++ b/common/utils/itti/intertask_interface.c @@ -39,7 +39,6 @@ #include "assertions.h" #include "intertask_interface.h" -#include "intertask_interface_dump.h" #if T_TRACER #include "T.h" @@ -328,22 +327,17 @@ int itti_send_msg_to_task(task_id_t destination_task_id, instance_t instance, Me /* Increment the global message number */ message_number = itti_increment_message_number (); -#if 0 - /* itti dump is disabled */ - itti_dump_queue_message (origin_task_id, message_number, message, itti_desc.messages_info[message_id].name, - sizeof(MessageHeader) + message->ittiMsgHeader.ittiMsgSize); -#endif - if (destination_task_id != TASK_UNKNOWN) { - if (itti_desc.threads[destination_thread_id].task_state == TASK_STATE_ENDED) { - ITTI_DEBUG(ITTI_DEBUG_ISSUES, " Message %s, number %lu with priority %d can not be sent from %s to queue (%u:%s), ended destination task!\n", - itti_desc.messages_info[message_id].name, - message_number, - priority, - itti_get_task_name(origin_task_id), - destination_task_id, - itti_get_task_name(destination_task_id)); + if (itti_desc.threads[destination_thread_id].task_state == TASK_STATE_ENDED || + itti_desc.threads[destination_thread_id].task_state == TASK_STATE_NOT_CONFIGURED) { + ITTI_DEBUG(ITTI_DEBUG_ISSUES, " Message %s, number %lu with priority %d can not be sent from %s to queue (%u:%s), unconfigured or ended destination task!\n", + itti_desc.messages_info[message_id].name, + message_number, + priority, + itti_get_task_name(origin_task_id), + destination_task_id, + itti_get_task_name(destination_task_id)); } else { if(!emulate_rf){ /* We cannot send a message if the task is not running */ @@ -429,22 +423,17 @@ int itti_try_send_msg_to_task(task_id_t destination_task_id, instance_t instance /* Increment the global message number */ message_number = itti_increment_message_number (); -#if 0 - /* itti dump is disabled */ - itti_dump_queue_message (origin_task_id, message_number, message, itti_desc.messages_info[message_id].name, - sizeof(MessageHeader) + message->ittiMsgHeader.ittiMsgSize); -#endif - if (destination_task_id != TASK_UNKNOWN) { - if (itti_desc.threads[destination_thread_id].task_state == TASK_STATE_ENDED) { - ITTI_DEBUG(ITTI_DEBUG_ISSUES, " Message %s, number %lu with priority %d can not be sent from %s to queue (%u:%s), ended destination task!\n", - itti_desc.messages_info[message_id].name, - message_number, - priority, - itti_get_task_name(origin_task_id), - destination_task_id, - itti_get_task_name(destination_task_id)); + if (itti_desc.threads[destination_thread_id].task_state == TASK_STATE_ENDED || + itti_desc.threads[destination_thread_id].task_state == TASK_STATE_NOT_CONFIGURED) { + ITTI_DEBUG(ITTI_DEBUG_ISSUES, " Message %s, number %lu with priority %d can not be sent from %s to queue (%u:%s), unconfigured or ended destination task!\n", + itti_desc.messages_info[message_id].name, + message_number, + priority, + itti_get_task_name(origin_task_id), + destination_task_id, + itti_get_task_name(destination_task_id)); } else { /* We cannot send a message if the task is not running */ AssertFatal (itti_desc.threads[destination_thread_id].task_state == TASK_STATE_READY, @@ -727,15 +716,18 @@ void itti_mark_task_ready(task_id_t task_id) AssertFatal (thread_id < itti_desc.thread_max, "Thread id (%d) is out of range (%d)!\n", thread_id, itti_desc.thread_max); -#if 0 - /* itti dump is disabled */ - /* Register the thread in itti dump */ - itti_dump_thread_use_ring_buffer(); -#endif - /* Mark the thread as using LFDS queue */ lfds611_queue_use(itti_desc.tasks[task_id].message_queue); +#if defined(UE_EXPANSION) || defined(RTAI) + /* Assign low priority to created threads */ + { + struct sched_param sched_param; + sched_param.sched_priority = sched_get_priority_min(SCHED_FIFO) + 1; + sched_setscheduler(0, SCHED_FIFO, &sched_param); + } +#endif + itti_desc.threads[thread_id].task_state = TASK_STATE_READY; itti_desc.ready_tasks ++; @@ -777,7 +769,7 @@ void itti_terminate_tasks(task_id_t task_id) } int itti_init(task_id_t task_max, thread_id_t thread_max, MessagesIds messages_id_max, const task_info_t *tasks_info, - const message_info_t *messages_info, const char * const messages_definition_xml, const char * const dump_file_name) + const message_info_t *messages_info) { task_id_t task_id; thread_id_t thread_id; @@ -862,11 +854,6 @@ int itti_init(task_id_t task_max, thread_id_t thread_max, MessagesIds messages_i itti_desc.wait_tasks = 0; itti_desc.created_tasks = 0; itti_desc.ready_tasks = 0; -#if 0 - /* itti dump is disabled */ - itti_dump_init (messages_definition_xml, dump_file_name); -#endif - CHECK_INIT_RETURN(timer_init ()); return 0; @@ -931,11 +918,6 @@ void itti_wait_tasks_end(void) ITTI_DEBUG(ITTI_DEBUG_ISSUES, " Some threads are still running, force exit\n"); exit (0); } - -#if 0 - /* itti dump is disabled */ - itti_dump_exit(); -#endif } void itti_send_terminate_message(task_id_t task_id) diff --git a/common/utils/itti/intertask_interface_dump.c b/common/utils/itti/intertask_interface_dump.c deleted file mode 100644 index bb77509726..0000000000 --- a/common/utils/itti/intertask_interface_dump.c +++ /dev/null @@ -1,790 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/** @brief Intertask Interface Signal Dumper - * Allows users to connect their itti_analyzer to this process and dump - * signals exchanged between tasks. - * @author Sebastien Roux - */ - -#define _GNU_SOURCE // required for pthread_setname_np() -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include - -#include "assertions.h" -#include "liblfds611.h" - -#include "itti_types.h" -#include "intertask_interface.h" -#include "intertask_interface_dump.h" - -#if T_TRACER -#include "T.h" -#endif - -static const int itti_dump_debug = 0; // 0x8 | 0x4 | 0x2; - -# define ITTI_DUMP_DEBUG(m, x, args...) do { if ((m) & itti_dump_debug) fprintf(stdout, "[ITTI_DUMP][D]"x, ##args); } \ - while(0) -#define ITTI_DUMP_ERROR(x, args...) do { fprintf(stdout, "[ITTI_DUMP][E]"x, ##args); } \ - while(0) - - -typedef struct itti_dump_queue_item_s { - MessageDef *data; - uint32_t data_size; - uint32_t message_number; - uint32_t message_type; - uint32_t message_size; -} itti_dump_queue_item_t; - -typedef struct { - int sd; - uint32_t last_message_number; -} itti_client_desc_t; - -typedef struct itti_desc_s { - /* Asynchronous thread that write to file/accept new clients */ - pthread_t itti_acceptor_thread; - pthread_attr_t attr; - - /* List of messages to dump. - * NOTE: we limit the size of this queue to retain only the last exchanged - * messages. The size can be increased by setting up the ITTI_QUEUE_MAX_ELEMENTS - * in mme_default_values.h or by putting a custom in the configuration file. - */ - struct lfds611_ringbuffer_state *itti_message_queue; - - int nb_connected; - - /* Event fd used to notify new messages (semaphore) */ - int event_fd; - int itti_listen_socket; - - itti_client_desc_t itti_clients[ITTI_DUMP_MAX_CON]; -} itti_desc_t; - -typedef struct { - itti_socket_header_t socket_header; - - itti_signal_header_t signal_header; - - /* Message payload is added here, this struct is used as an header */ -} itti_dump_message_t; - -typedef struct { - itti_socket_header_t socket_header; -} itti_statistic_message_t; - -static const itti_message_types_t itti_dump_xml_definition_end = ITTI_DUMP_XML_DEFINITION_END; -static const itti_message_types_t itti_dump_message_type_end = ITTI_DUMP_MESSAGE_TYPE_END; - -static itti_desc_t itti_dump_queue; -static FILE *dump_file = NULL; -static int itti_dump_running = 1; - -static volatile uint32_t pending_messages = 0; - -/*------------------------------------------------------------------------------*/ -static int itti_dump_send_message(int sd, itti_dump_queue_item_t *message) -{ - itti_dump_message_t *new_message; - ssize_t bytes_sent = 0, total_sent = 0; - uint8_t *data_ptr; - - /* Allocate memory for message header and payload */ - size_t size = sizeof(itti_dump_message_t) + message->data_size + sizeof(itti_message_types_t); - - AssertFatal (sd > 0, "Socket descriptor (%d) is invalid!\n", sd); - AssertFatal (message != NULL, "Message is NULL!\n"); - - new_message = malloc(size); - AssertFatal (new_message != NULL, "New message allocation failed!\n"); - - /* Preparing the header */ - new_message->socket_header.message_size = size; - new_message->socket_header.message_type = ITTI_DUMP_MESSAGE_TYPE; - /* Adds message number in unsigned decimal ASCII format */ - snprintf(new_message->signal_header.message_number_char, sizeof(new_message->signal_header.message_number_char), - MESSAGE_NUMBER_CHAR_FORMAT, message->message_number); - new_message->signal_header.message_number_char[sizeof(new_message->signal_header.message_number_char) - 1] = '\n'; - /* Appends message payload */ - memcpy(&new_message[1], message->data, message->data_size); - - memcpy(((void *) &new_message[1]) + message->data_size, &itti_dump_message_type_end, sizeof(itti_message_types_t)); - - data_ptr = (uint8_t *)&new_message[0]; - - do { - bytes_sent = send(sd, &data_ptr[total_sent], size - total_sent, 0); - - if (bytes_sent < 0) { - ITTI_DUMP_ERROR("[%d] Failed to send %zu bytes to socket (%d:%s)\n", - sd, size, errno, strerror(errno)); - free(new_message); - return -1; - } - - total_sent += bytes_sent; - } while (total_sent != size); - - free(new_message); - return total_sent; -} - -static int itti_dump_fwrite_message(itti_dump_queue_item_t *message) -{ - itti_dump_message_t new_message_header; - - if ((dump_file != NULL) && (message != NULL)) { - - new_message_header.socket_header.message_size = message->message_size + sizeof(itti_dump_message_t) + sizeof(itti_message_types_t); - new_message_header.socket_header.message_type = message->message_type; - snprintf(new_message_header.signal_header.message_number_char, sizeof(new_message_header.signal_header.message_number_char), - MESSAGE_NUMBER_CHAR_FORMAT, message->message_number); - new_message_header.signal_header.message_number_char[sizeof(new_message_header.signal_header.message_number_char) - 1] = '\n'; - - fwrite (&new_message_header, sizeof(itti_dump_message_t), 1, dump_file); - fwrite (message->data, message->data_size, 1, dump_file); - fwrite (&itti_dump_message_type_end, sizeof(itti_message_types_t), 1, dump_file); - fflush (dump_file); - return (1); - } - - return (0); -} - -static int itti_dump_send_xml_definition(const int sd, const char *message_definition_xml, - const uint32_t message_definition_xml_length) -{ - itti_socket_header_t *itti_dump_message; - /* Allocate memory for message header and payload */ - size_t itti_dump_message_size; - ssize_t bytes_sent = 0, total_sent = 0; - uint8_t *data_ptr; - - AssertFatal (sd > 0, "Socket descriptor (%d) is invalid!\n", sd); - AssertFatal (message_definition_xml != NULL, "Message definition XML is NULL!\n"); - - itti_dump_message_size = sizeof(itti_socket_header_t) + message_definition_xml_length + sizeof(itti_message_types_t); - - itti_dump_message = calloc(1, itti_dump_message_size); - - ITTI_DUMP_DEBUG(0x2, "[%d] Sending XML definition message of size %zu to observer peer\n", - sd, itti_dump_message_size); - - itti_dump_message->message_size = itti_dump_message_size; - itti_dump_message->message_type = ITTI_DUMP_XML_DEFINITION; - - /* Copying message definition */ - memcpy (&itti_dump_message[1], message_definition_xml, message_definition_xml_length); - memcpy (((void *) &itti_dump_message[1]) + message_definition_xml_length, &itti_dump_xml_definition_end, sizeof(itti_message_types_t)); - - data_ptr = (uint8_t *)&itti_dump_message[0]; - - do { - bytes_sent = send(sd, &data_ptr[total_sent], itti_dump_message_size - total_sent, 0); - - if (bytes_sent < 0) { - ITTI_DUMP_ERROR("[%d] Failed to send %zu bytes to socket (%d:%s)\n", - sd, itti_dump_message_size, errno, strerror(errno)); - free(itti_dump_message); - return -1; - } - - total_sent += bytes_sent; - } while (total_sent != itti_dump_message_size); - - free(itti_dump_message); - - return 0; -} - -static void itti_dump_user_data_delete_function(void *user_data, void *user_state) -{ - (void)user_state; // UNUSED - - if (user_data != NULL) { - itti_dump_queue_item_t *item; - task_id_t task_id; - int result; - - item = (itti_dump_queue_item_t *)user_data; - - if (item->data != NULL) { - task_id = ITTI_MSG_ORIGIN_ID(item->data); - result = itti_free(task_id, item->data); - AssertFatal (result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result); - } else { - task_id = TASK_UNKNOWN; - } - - result = itti_free(task_id, item); - AssertFatal (result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result); - } -} - -static int itti_dump_enqueue_message(itti_dump_queue_item_t *new, uint32_t message_size, - uint32_t message_type) -{ - struct lfds611_freelist_element *new_queue_element = NULL; - int overwrite_flag; - AssertFatal (new != NULL, "Message to queue is NULL!\n"); - - new->message_type = message_type; - new->message_size = message_size; - - ITTI_DUMP_DEBUG (0x1, " itti_dump_enqueue_message: lfds611_ringbuffer_get_write_element\n"); - new_queue_element = lfds611_ringbuffer_get_write_element (itti_dump_queue.itti_message_queue, &new_queue_element, &overwrite_flag); - - if (overwrite_flag != 0) { - // no free element available: overwrite a non read one => data loss! - void *old = NULL; - - lfds611_freelist_get_user_data_from_element(new_queue_element, &old); - ITTI_DUMP_DEBUG (0x4, " overwrite_flag set, freeing old data %p %p\n", new_queue_element, old); - itti_dump_user_data_delete_function (old, NULL); - } - - lfds611_freelist_set_user_data_in_element(new_queue_element, new); - lfds611_ringbuffer_put_write_element(itti_dump_queue.itti_message_queue, new_queue_element); - - if (overwrite_flag == 0) { - { - ssize_t write_ret; - eventfd_t sem_counter = 1; - - /* Call to write for an event fd must be of 8 bytes */ - write_ret = write(itti_dump_queue.event_fd, &sem_counter, sizeof(sem_counter)); - AssertFatal (write_ret == sizeof(sem_counter), "Write to dump event failed (%d/%d)!\n", (int) write_ret, (int) sizeof(sem_counter)); - } - // add one to pending_messages, atomically - __sync_fetch_and_add (&pending_messages, 1); - } - - ITTI_DUMP_DEBUG (0x2, " Added element to queue %p %p, pending %u, type %u\n", new_queue_element, new, pending_messages, message_type); - - return 0; -} - -static void itti_dump_socket_exit(void) -{ - close(itti_dump_queue.event_fd); - close(itti_dump_queue.itti_listen_socket); - - /* Leave the thread as we detected end signal */ - pthread_exit(NULL); -} - -static int itti_dump_flush_ring_buffer(int flush_all) -{ - struct lfds611_freelist_element *element = NULL; - void *user_data; - int j; - int consumer; - - /* Check if there is a least one consumer */ - consumer = 0; - - if (dump_file != NULL) { - consumer = 1; - } else { - for (j = 0; j < ITTI_DUMP_MAX_CON; j++) { - if (itti_dump_queue.itti_clients[j].sd > 0) { - consumer = 1; - break; - } - } - } - - if (consumer > 0) { - do { - /* Acquire the ring element */ - lfds611_ringbuffer_get_read_element(itti_dump_queue.itti_message_queue, &element); - - // subtract one from pending_messages, atomically - __sync_fetch_and_sub (&pending_messages, 1); - - if (element == NULL) { - if (flush_all != 0) { - flush_all = 0; - } else { - AssertFatal (0, "Dump event with no data!\n"); - } - } else { - /* Retrieve user part of the message */ - lfds611_freelist_get_user_data_from_element(element, &user_data); - - ITTI_DUMP_DEBUG (0x2, " removed element from queue %p %p, pending %u\n", element, user_data, pending_messages); - - if (((itti_dump_queue_item_t *)user_data)->message_type == ITTI_DUMP_EXIT_SIGNAL) { - lfds611_ringbuffer_put_read_element(itti_dump_queue.itti_message_queue, element); - itti_dump_socket_exit(); - } - - /* Write message to file */ - itti_dump_fwrite_message((itti_dump_queue_item_t *)user_data); - - /* Send message to remote analyzer */ - for (j = 0; j < ITTI_DUMP_MAX_CON; j++) { - if (itti_dump_queue.itti_clients[j].sd > 0) { - itti_dump_send_message(itti_dump_queue.itti_clients[j].sd, - (itti_dump_queue_item_t *)user_data); - } - } - - itti_dump_user_data_delete_function (user_data, NULL); - lfds611_freelist_set_user_data_in_element(element, NULL); - - /* We have finished with this element, reinsert it in the ring buffer */ - lfds611_ringbuffer_put_read_element(itti_dump_queue.itti_message_queue, element); - } - } while(flush_all - ); - } - - return (consumer); -} - -static int itti_dump_handle_new_connection(int sd, const char *xml_definition, uint32_t xml_definition_length) -{ - if (itti_dump_queue.nb_connected < ITTI_DUMP_MAX_CON) { - uint8_t i; - - for (i = 0; i < ITTI_DUMP_MAX_CON; i++) { - /* Let's find a place to store the new client */ - if (itti_dump_queue.itti_clients[i].sd == -1) { - break; - } - } - - ITTI_DUMP_DEBUG(0x2, " Found place to store new connection: %d\n", i); - - AssertFatal (i < ITTI_DUMP_MAX_CON, "No more connection available (%d/%d) for socked %d!\n", i, ITTI_DUMP_MAX_CON, sd); - - ITTI_DUMP_DEBUG(0x2, " Socket %d accepted\n", sd); - - /* Send the XML message definition */ - if (itti_dump_send_xml_definition(sd, xml_definition, xml_definition_length) < 0) { - AssertError (0, {}, "Failed to send XML definition!\n"); - close (sd); - return -1; - } - - itti_dump_queue.itti_clients[i].sd = sd; - itti_dump_queue.nb_connected++; - } else { - ITTI_DUMP_DEBUG(0x2, " Socket %d rejected\n", sd); - /* We have reached max number of users connected... - * Reject the connection. - */ - close (sd); - return -1; - } - - return 0; -} - -static void *itti_dump_socket(void *arg_p) -{ - uint32_t message_definition_xml_length; - char *message_definition_xml; - int rc; - int itti_listen_socket, max_sd; - int on = 1; - fd_set read_set, working_set; - struct sockaddr_in servaddr; /* socket address structure */ - - struct timeval *timeout_p = NULL; - - ITTI_DUMP_DEBUG(0x2, " Creating TCP dump socket on port %u\n", ITTI_PORT); - - message_definition_xml = (char *)arg_p; - AssertFatal (message_definition_xml != NULL, "Message definition XML is NULL!\n"); - - message_definition_xml_length = strlen(message_definition_xml) + 1; - - if ((itti_listen_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) { - ITTI_DUMP_ERROR(" ocket creation failed (%d:%s)\n", errno, strerror(errno)); - pthread_exit(NULL); - } - - /* Allow socket reuse */ - rc = setsockopt(itti_listen_socket, SOL_SOCKET, SO_REUSEADDR, - (char *)&on, sizeof(on)); - - if (rc < 0) { - ITTI_DUMP_ERROR(" setsockopt SO_REUSEADDR failed (%d:%s)\n", errno, strerror(errno)); - close(itti_listen_socket); - pthread_exit(NULL); - } - - /* Set socket to be non-blocking. - * NOTE: sockets accepted will inherit this option. - */ - rc = ioctl(itti_listen_socket, FIONBIO, (char *)&on); - - if (rc < 0) { - ITTI_DUMP_ERROR(" ioctl FIONBIO (non-blocking) failed (%d:%s)\n", errno, strerror(errno)); - close(itti_listen_socket); - pthread_exit(NULL); - } - - memset(&servaddr, 0, sizeof(servaddr)); - servaddr.sin_family = AF_INET; - servaddr.sin_addr.s_addr = htonl(INADDR_ANY); - servaddr.sin_port = htons(ITTI_PORT); - - if (bind(itti_listen_socket, (struct sockaddr *) &servaddr, - sizeof(servaddr)) < 0) { - ITTI_DUMP_ERROR(" Bind failed (%d:%s)\n", errno, strerror(errno)); - pthread_exit(NULL); - } - - if (listen(itti_listen_socket, 5) < 0) { - ITTI_DUMP_ERROR(" Listen failed (%d:%s)\n", errno, strerror(errno)); - pthread_exit(NULL); - } - - FD_ZERO(&read_set); - - /* Add the listener */ - FD_SET(itti_listen_socket, &read_set); - - /* Add the event fd */ - FD_SET(itti_dump_queue.event_fd, &read_set); - - /* Max of both sd */ - max_sd = itti_listen_socket > itti_dump_queue.event_fd ? itti_listen_socket : itti_dump_queue.event_fd; - - itti_dump_queue.itti_listen_socket = itti_listen_socket; - - /* Loop waiting for incoming connects or for incoming data - * on any of the connected sockets. - */ - while (1) { - int desc_ready; - int client_socket = -1; - int i; - - memcpy(&working_set, &read_set, sizeof(read_set)); - timeout_p = NULL; - - /* No timeout: select blocks till a new event has to be handled - * on sd's. - */ - rc = select(max_sd + 1, &working_set, NULL, NULL, timeout_p); - - if (rc < 0) { - ITTI_DUMP_ERROR(" select failed (%d:%s)\n", errno, strerror(errno)); - pthread_exit(NULL); - } else if (rc == 0) { - /* Timeout */ - if (itti_dump_flush_ring_buffer(1) == 0) { - if (itti_dump_running) { - ITTI_DUMP_DEBUG (0x4, " No messages consumers, waiting ...\n"); - usleep(100 * 1000); - } else { - itti_dump_socket_exit(); - } - } - } - - desc_ready = rc; - - for (i = 0; i <= max_sd && desc_ready > 0; i++) { - if (FD_ISSET(i, &working_set)) { - desc_ready -= 1; - - if (i == itti_dump_queue.event_fd) { - /* Notification of new element to dump from other tasks */ - eventfd_t sem_counter; - ssize_t read_ret; - - /* Read will always return 1 for kernel versions > 2.6.30 */ - read_ret = read (itti_dump_queue.event_fd, &sem_counter, sizeof(sem_counter)); - - if (read_ret < 0) { - ITTI_DUMP_ERROR(" Failed read for semaphore: %s\n", strerror(errno)); - pthread_exit(NULL); - } - - AssertFatal (read_ret == sizeof(sem_counter), "Failed to read from dump event FD (%d/%d)!\n", (int) read_ret, (int) sizeof(sem_counter)); - - if (itti_dump_flush_ring_buffer(0) == 0) { - if (itti_dump_running) { - ITTI_DUMP_DEBUG (0x4, " No messages consumers, waiting ...\n"); - usleep(100 * 1000); - { - ssize_t write_ret; - - sem_counter = 1; - /* Call to write for an event fd must be of 8 bytes */ - write_ret = write(itti_dump_queue.event_fd, &sem_counter, sizeof(sem_counter)); - AssertFatal (write_ret == sizeof(sem_counter), "Failed to write to dump event FD (%d/%d)!\n", (int) write_ret, (int) sem_counter); - } - } else { - itti_dump_socket_exit(); - } - } else { - ITTI_DUMP_DEBUG(0x1, " Write element to file\n"); - } - } else - if (i == itti_listen_socket) { - do { - client_socket = accept(itti_listen_socket, NULL, NULL); - - if (client_socket < 0) { - if (errno == EWOULDBLOCK || errno == EAGAIN) { - /* No more new connection */ - ITTI_DUMP_DEBUG(0x2, " No more new connection\n"); - continue; - } else { - ITTI_DUMP_ERROR(" accept failed (%d:%s)\n", errno, strerror(errno)); - pthread_exit(NULL); - } - } - - if (itti_dump_handle_new_connection(client_socket, message_definition_xml, - message_definition_xml_length) == 0) { - /* The socket has been accepted. - * We have to update the set to include this new sd. - */ - FD_SET(client_socket, &read_set); - - if (client_socket > max_sd) - max_sd = client_socket; - } - } while(client_socket != -1); - } else { - /* For now the MME itti dumper should not receive data - * other than connection oriented (CLOSE). - */ - uint8_t j; - - ITTI_DUMP_DEBUG(0x2, " Socket %d disconnected\n", i); - - /* Close the socket and update info related to this connection */ - close(i); - - for (j = 0; j < ITTI_DUMP_MAX_CON; j++) { - if (itti_dump_queue.itti_clients[j].sd == i) - break; - } - - /* In case we don't find the matching sd in list of known - * connections -> assert. - */ - AssertFatal (j < ITTI_DUMP_MAX_CON, "Connection index not found (%d/%d) for socked %d!\n", j, ITTI_DUMP_MAX_CON, i); - - /* Re-initialize the socket to -1 so we can accept new - * incoming connections. - */ - itti_dump_queue.itti_clients[j].sd = -1; - itti_dump_queue.itti_clients[j].last_message_number = 0; - itti_dump_queue.nb_connected--; - - /* Remove the socket from the FD set and update the max sd */ - FD_CLR(i, &read_set); - - if (i == max_sd) { - if (itti_dump_queue.nb_connected == 0) { - /* No more new connection max_sd = itti_listen_socket */ - max_sd = itti_listen_socket; - } else { - while (FD_ISSET(max_sd, &read_set) == 0) { - max_sd -= 1; - } - } - } - } - } - } - } - - return NULL; -} - -/*------------------------------------------------------------------------------*/ -int itti_dump_queue_message(task_id_t sender_task, - message_number_t message_number, - MessageDef *message_p, - const char *message_name, - const uint32_t message_size) -{ - if (itti_dump_running) { - itti_dump_queue_item_t *new; - - AssertFatal (message_name != NULL, "Message name is NULL!\n"); - AssertFatal (message_p != NULL, "Message is NULL!\n"); - - new = itti_malloc(sender_task, TASK_MAX, sizeof(itti_dump_queue_item_t)); - - new->data = itti_malloc(sender_task, TASK_MAX, message_size); - - memcpy(new->data, message_p, message_size); - new->data_size = message_size; - new->message_number = message_number; - - itti_dump_enqueue_message(new, message_size, ITTI_DUMP_MESSAGE_TYPE); - } - - return 0; -} - -/* This function should be called by each thread that will use the ring buffer */ -void itti_dump_thread_use_ring_buffer(void) -{ - lfds611_ringbuffer_use(itti_dump_queue.itti_message_queue); -} - -int itti_dump_init(const char * const messages_definition_xml, const char * const dump_file_name) -{ - int i, ret; - struct sched_param scheduler_param; - - scheduler_param.sched_priority = sched_get_priority_min(SCHED_FIFO) + 1; - - if (dump_file_name != NULL) { - dump_file = fopen(dump_file_name, "wb"); - - if (dump_file == NULL) { - ITTI_DUMP_ERROR(" can not open dump file \"%s\" (%d:%s)\n", dump_file_name, errno, strerror(errno)); - } else { - /* Output the XML to file */ - uint32_t message_size = strlen(messages_definition_xml) + 1; - itti_socket_header_t header; - - header.message_size = sizeof(itti_socket_header_t) + message_size + sizeof(itti_message_types_t); - header.message_type = ITTI_DUMP_XML_DEFINITION; - - fwrite (&header, sizeof(itti_socket_header_t), 1, dump_file); - fwrite (messages_definition_xml, message_size, 1, dump_file); - fwrite (&itti_dump_xml_definition_end, sizeof(itti_message_types_t), 1, dump_file); - fflush (dump_file); - } - } - - memset(&itti_dump_queue, 0, sizeof(itti_desc_t)); - - ITTI_DUMP_DEBUG(0x2, " Creating new ring buffer for itti dump of %u elements\n", - ITTI_QUEUE_MAX_ELEMENTS); - - if (lfds611_ringbuffer_new(&itti_dump_queue.itti_message_queue, - ITTI_QUEUE_MAX_ELEMENTS, - NULL, - NULL) != 1) { - /* Always assert on this condition */ - AssertFatal (0, " Failed to create ring buffer!\n"); - } - - itti_dump_queue.event_fd = eventfd(0, EFD_SEMAPHORE); - - if (itti_dump_queue.event_fd == -1) { - /* Always assert on this condition */ - AssertFatal (0, "eventfd failed: %s!\n", strerror(errno)); - } - - itti_dump_queue.nb_connected = 0; - - for(i = 0; i < ITTI_DUMP_MAX_CON; i++) { - itti_dump_queue.itti_clients[i].sd = -1; - itti_dump_queue.itti_clients[i].last_message_number = 0; - } - - /* initialized with default attributes */ - ret = pthread_attr_init(&itti_dump_queue.attr); - - if (ret < 0) { - AssertFatal (0, "pthread_attr_init failed (%d:%s)!\n", errno, strerror(errno)); - } - - ret = pthread_attr_setschedpolicy(&itti_dump_queue.attr, SCHED_FIFO); - - if (ret < 0) { - AssertFatal (0, "pthread_attr_setschedpolicy (SCHED_IDLE) failed (%d:%s)!\n", errno, strerror(errno)); - } - - ret = pthread_attr_setschedparam(&itti_dump_queue.attr, &scheduler_param); - - if (ret < 0) { - AssertFatal (0, "pthread_attr_setschedparam failed (%d:%s)!\n", errno, strerror(errno)); - } - - ret = pthread_create(&itti_dump_queue.itti_acceptor_thread, &itti_dump_queue.attr, - &itti_dump_socket, (void *)messages_definition_xml); - - if (ret < 0) { - AssertFatal (0, "pthread_create failed (%d:%s)!\n", errno, strerror(errno)); - } - - pthread_setname_np( itti_dump_queue.itti_acceptor_thread, "ITTI acceptor" ); - - return 0; -} - -void itti_dump_exit(void) -{ - void *arg; - itti_dump_queue_item_t *new; - - new = itti_malloc(TASK_UNKNOWN, TASK_UNKNOWN, sizeof(itti_dump_queue_item_t)); - memset(new, 0, sizeof(itti_dump_queue_item_t)); - - /* Set a flag to stop recording message */ - itti_dump_running = 0; - - /* Send the exit signal to other thread */ - itti_dump_enqueue_message(new, 0, ITTI_DUMP_EXIT_SIGNAL); - - ITTI_DUMP_DEBUG(0x2, " waiting for dumper thread to finish\n"); - - /* wait for the thread to terminate */ - pthread_join(itti_dump_queue.itti_acceptor_thread, &arg); - - ITTI_DUMP_DEBUG(0x2, " dumper thread correctly exited\n"); - - if (dump_file != NULL) { - /* Synchronise file and then close it */ - fclose(dump_file); - dump_file = NULL; - } - - if (itti_dump_queue.itti_message_queue) { - lfds611_ringbuffer_delete(itti_dump_queue.itti_message_queue, - itti_dump_user_data_delete_function, NULL); - } -} diff --git a/common/utils/itti/intertask_interface_init.h b/common/utils/itti/intertask_interface_init.h index 333b0653d7..dbd4e1b2ec 100644 --- a/common/utils/itti/intertask_interface_init.h +++ b/common/utils/itti/intertask_interface_init.h @@ -41,10 +41,6 @@ #ifndef CHECK_PROTOTYPE_ONLY -const char * const messages_definition_xml = { -#include "messages_xml.h" -}; - /* Map task id to printable name. */ const task_info_t tasks_info[] = { {0, TASK_UNKNOWN, 0, 0, "TASK_UNKNOWN"}, @@ -71,8 +67,7 @@ const message_info_t messages_info[] = { * \param messages_info Pointer on messages information as created by this include file **/ int itti_init(task_id_t task_max, thread_id_t thread_max, MessagesIds messages_id_max, const task_info_t *tasks_info, - const message_info_t *messages_info, const char * const messages_definition_xml, - const char * const dump_file_name); + const message_info_t *messages_info); #endif /* INTERTASK_INTERFACE_INIT_H_ */ /* @} */ diff --git a/common/utils/itti/signals.c b/common/utils/itti/signals.c index 4e1ae1129c..5dd667ae65 100644 --- a/common/utils/itti/signals.c +++ b/common/utils/itti/signals.c @@ -42,8 +42,8 @@ #include "log.h" #if defined (LOG_D) && defined (LOG_E) -# define SIG_DEBUG(x, args...) LOG_D(SIM, x, ##args) -# define SIG_ERROR(x, args...) LOG_E(SIM, x, ##args) +# define SIG_DEBUG(x, args...) LOG_D(RRC, x, ##args) +# define SIG_ERROR(x, args...) LOG_E(RRC, x, ##args) #endif #ifndef SIG_DEBUG diff --git a/common/utils/itti_analyzer/libparser/xml_parse.c b/common/utils/itti_analyzer/libparser/xml_parse.c index 352b10d616..72447e7669 100644 --- a/common/utils/itti_analyzer/libparser/xml_parse.c +++ b/common/utils/itti_analyzer/libparser/xml_parse.c @@ -740,25 +740,6 @@ int xml_parse_buffer(char *xml_buffer, const int size) { return xml_parse_doc(doc); } -#if 0 /* Not used anymore */ -int xml_parse_file(const char *filename) { - xmlDocPtr doc; /* the resulting document tree */ - - if (filename == NULL) { - return RC_NULL_POINTER; - } - - doc = xmlReadFile (filename, NULL, 0); - - if (doc == NULL) { - ui_notification_dialog(GTK_MESSAGE_ERROR, FALSE, "parse messages format definition", "Failed to parse file \"%s\"", filename); - return RC_FAIL; - } - - return xml_parse_doc(doc); -} -#endif - static int update_filters() { types_t *types; diff --git a/common/utils/telnetsrv/telnetsrv_loader.h b/common/utils/telnetsrv/telnetsrv_loader.h index 404aabfc70..d806245a7b 100644 --- a/common/utils/telnetsrv/telnetsrv_loader.h +++ b/common/utils/telnetsrv/telnetsrv_loader.h @@ -32,7 +32,7 @@ #ifdef TELNETSRV_LOADER_MAIN -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "common/utils/load_module_shlib.h" diff --git a/common/utils/telnetsrv/telnetsrv_phycmd.h b/common/utils/telnetsrv/telnetsrv_phycmd.h index 6e2b0ecacf..e35b2a53ab 100644 --- a/common/utils/telnetsrv/telnetsrv_phycmd.h +++ b/common/utils/telnetsrv/telnetsrv_phycmd.h @@ -32,10 +32,10 @@ #ifdef TELNETSRV_PHYCMD_MAIN -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" -#include "openair1/PHY/extern.h" +#include "openair1/PHY/phy_extern.h" #define TELNETVAR_PHYCC0 0 diff --git a/common/utils/telnetsrv/telnetsrv_proccmd.c b/common/utils/telnetsrv/telnetsrv_proccmd.c index 91f0e9c93a..519c222114 100644 --- a/common/utils/telnetsrv/telnetsrv_proccmd.c +++ b/common/utils/telnetsrv/telnetsrv_proccmd.c @@ -52,10 +52,9 @@ #define TELNETSERVERCODE #include "telnetsrv.h" #define TELNETSRV_PROCCMD_MAIN -#include "log.h" -#include "log_extern.h" +#include "common/utils/LOG/log.h" #include "common/config/config_userapi.h" -#include "openair1/PHY/extern.h" +#include "openair1/PHY/phy_extern.h" #include "telnetsrv_proccmd.h" void decode_procstat(char *record, int debug, telnet_printfunc_t prnt) @@ -193,7 +192,6 @@ struct dirent *entry; int proccmd_show(char *buf, int debug, telnet_printfunc_t prnt) { -extern log_t *g_log; if (debug > 0) prnt(" proccmd_show received %s\n",buf); @@ -201,12 +199,28 @@ extern log_t *g_log; print_threads(buf,debug,prnt); } if (strcasestr(buf,"loglvl") != NULL) { - prnt("component verbosity level enabled\n"); + prnt(" component level enabled\n"); for (int i=MIN_LOG_COMPONENTS; i < MAX_LOG_COMPONENTS; i++) { - prnt("%02i %17.17s:%10.10s%10.10s %s\n",i ,g_log->log_component[i].name, - map_int_to_str(log_verbosity_names,g_log->log_component[i].flag), - map_int_to_str(log_level_names,g_log->log_component[i].level), - ((g_log->log_component[i].interval>0)?"Y":"N") ); + if (g_log->log_component[i].name != NULL) { + prnt("%02i %17.17s:%10.10s %s\n",i ,g_log->log_component[i].name, + map_int_to_str(log_level_names,g_log->log_component[i].level), + ((g_log->log_component[i].interval>0)?"Y":"N") ); + } + } + } + if (strcasestr(buf,"logopt") != NULL) { + prnt(" option enabled\n"); + for (int i=0; log_options[i].name != NULL; i++) { + prnt("%02i %17.17s %10.10s \n",i ,log_options[i].name, + ((g_log->flag & log_options[i].value)?"Y":"N") ); + } + } + if (strcasestr(buf,"dbgopt") != NULL) { + prnt(" option debug matlab\n"); + for (int i=0; log_maskmap[i].name != NULL ; i++) { + prnt("%02i %17.17s %5.5s %5.5s\n",i ,log_maskmap[i].name, + ((g_log->debug_mask & log_maskmap[i].value)?"Y":"N"), + ((g_log->matlab_mask & log_maskmap[i].value)?"Y":"N") ); } } if (strcasestr(buf,"config") != NULL) { @@ -323,24 +337,76 @@ int s = sscanf(buf,"%ms %i-%i\n",&logsubcmd, &idx1,&idx2); prnt("Available log levels: \n "); for (int i=0; log_level_names[i].name != NULL; i++) prnt("%s ",log_level_names[i].name); - prnt("\nAvailable verbosity: \n "); - for (int i=0; log_verbosity_names[i].name != NULL; i++) - prnt("%s ",log_verbosity_names[i].name); + prnt("\n"); + prnt("Available display options: \n "); + for (int i=0; log_options[i].name != NULL; i++) + prnt("%s ",log_options[i].name); + prnt("\n"); + prnt("Available debug or matlab options: \n "); + for (int i=0; log_maskmap[i].name != NULL; i++) + prnt("%s ",log_maskmap[i].name); prnt("\n"); proccmd_show("loglvl",debug,prnt); + proccmd_show("logopt",debug,prnt); + proccmd_show("dbgopt",debug,prnt); } else if (strcasestr(logsubcmd,"help") != NULL) { prnt(PROCCMD_LOG_HELP_STRING); } else { prnt("%s: wrong log command...\n",logsubcmd); } + } else if ( s == 2 && logsubcmd != NULL) { + char *opt=NULL; + char *logparam=NULL; + int l; + int optbit; + + l=sscanf(logsubcmd,"%m[^'_']_%ms",&logparam,&opt); + if (l == 2 && strcmp(logparam,"print") == 0){ + optbit=map_str_to_int(log_options,opt); + if (optbit < 0) { + prnt("option %s unknown\n",opt); + } else { + if (idx1 > 0) + SET_LOG_OPTION(optbit); + else + CLEAR_LOG_OPTION(optbit); + proccmd_show("logopt",debug,prnt); + } + } + else if (l == 2 && strcmp(logparam,"debug") == 0){ + optbit=map_str_to_int(log_maskmap,opt); + if (optbit < 0) { + prnt("debug flag %s unknown\n",opt); + } else { + if (idx1 > 0) + SET_LOG_DEBUG(optbit); + else + CLEAR_LOG_DEBUG(optbit); + proccmd_show("dbgopt",debug,prnt); + } + } + else if (l == 2 && strcmp(logparam,"matlab") == 0){ + optbit=map_str_to_int(log_maskmap,opt); + if (optbit < 0) { + prnt("matlab flag %s unknown\n",opt); + } else { + if (idx1 > 0) + SET_LOG_MATLAB(optbit); + else + CLEAR_LOG_MATLAB(optbit); + proccmd_show("dbgopt",debug,prnt); + } + } + if (logparam != NULL) free(logparam); + if (opt != NULL) free(opt); } else if ( s == 3 && logsubcmd != NULL) { - int level, verbosity, interval; + int level, interval; char *tmpstr=NULL; char *logparam=NULL; int l; - level = verbosity = interval = -1; + level = interval = -1; l=sscanf(logsubcmd,"%m[^'_']_%m[^'_']",&logparam,&tmpstr); if (debug > 0) prnt("l=%i, %s %s\n",l,((logparam==NULL)?"\"\"":logparam), ((tmpstr==NULL)?"\"\"":tmpstr)); @@ -348,9 +414,6 @@ int s = sscanf(buf,"%ms %i-%i\n",&logsubcmd, &idx1,&idx2); if (strcmp(logparam,"level") == 0) { level=map_str_to_int(log_level_names,tmpstr); if (level < 0) prnt("level %s unknown\n",tmpstr); - } else if (strcmp(logparam,"verbos") == 0) { - verbosity=map_str_to_int(log_verbosity_names,tmpstr); - if (verbosity < 0) prnt("verbosity %s unknown\n",tmpstr); } else { prnt("%s%s unknown log sub command \n",logparam, tmpstr); } @@ -368,11 +431,16 @@ int s = sscanf(buf,"%ms %i-%i\n",&logsubcmd, &idx1,&idx2); if (logparam != NULL) free(logparam); if (tmpstr != NULL) free(tmpstr); for (int i=idx1; i<=idx2 ; i++) { - set_comp_log(i, level, verbosity, interval); - prnt("log level/verbosity comp %i %s set to %s / %s (%s)\n", + if (level < 0) { + level=g_log->log_component[i].level; + } + if (interval < 0) { + interval=g_log->log_component[i].interval; + } + set_log(i, level, interval); + prnt("log level comp %i %s set to %s (%s)\n", i,((g_log->log_component[i].name==NULL)?"":g_log->log_component[i].name), map_int_to_str(log_level_names,g_log->log_component[i].level), - map_int_to_str(log_verbosity_names,g_log->log_component[i].flag), ((g_log->log_component[i].interval>0)?"enabled":"disabled")); diff --git a/common/utils/telnetsrv/telnetsrv_proccmd.h b/common/utils/telnetsrv/telnetsrv_proccmd.h index b2c05315d8..409484455c 100644 --- a/common/utils/telnetsrv/telnetsrv_proccmd.h +++ b/common/utils/telnetsrv/telnetsrv_proccmd.h @@ -49,9 +49,12 @@ telnetshell_vardef_t proc_vardef[] = { online, noonline: enable or disable console logs \n\ enable, disable id1-id2: enable or disable logs for components index id1 to id2 \n\ level_ id1-id2: set log level to for components index id1 to id2 \n\ - level_ id1-id2: set log verbosity to for components index id1 to id2 \n\ -use the show command to get the values for , and the list of component indexes \ -that can be used for id1 and id2 \n" +use the show command to get the authorized values for and the list of component \ +indexes that can be used for id1 and id2 \n\ + print_ <0|1> disable or enable the \"opt\" log option, use the show command to get \ +the available options\n\ + matlab_ debug_ disable or enable the debug code or matlab file generation \ +for \"func\" function. use the show command to get the available options\n" #define PROCCMD_THREAD_HELP_STRING " thread sub commands: \n\ aff : set affinity of thread to core \n\ diff --git a/nfapi/oai_integration/nfapi_pnf.c b/nfapi/oai_integration/nfapi_pnf.c index dee4e8d310..e741692214 100644 --- a/nfapi/oai_integration/nfapi_pnf.c +++ b/nfapi/oai_integration/nfapi_pnf.c @@ -47,7 +47,7 @@ extern RAN_CONTEXT_t RC; #include #include "fapi_stub.h" //#include "fapi_l1.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "openair2/LAYER2/MAC/mac_proto.h" #include "PHY/INIT/phy_init.h" @@ -193,26 +193,25 @@ typedef struct { static pnf_info pnf; static pthread_t pnf_start_pthread; -extern void nfapi_log(char *file, char *func, int line, int comp, int level, const char* format, va_list args); +int nfapitooai_level(int nfapi_level) { + switch(nfapi_level) { + case NFAPI_TRACE_ERROR: + return LOG_ERR; + case NFAPI_TRACE_WARN: + return LOG_WARNING; + case NFAPI_TRACE_NOTE: + return LOG_INFO; + case NFAPI_TRACE_INFO: + return LOG_DEBUG; + } + return LOG_ERR; +} void pnf_nfapi_trace(nfapi_trace_level_t nfapi_level, const char* message, ...) { va_list args; - int oai_level; - - if (nfapi_level==NFAPI_TRACE_ERROR) { - oai_level = LOG_ERR; - } else if (nfapi_level==NFAPI_TRACE_WARN) { - oai_level = LOG_WARNING; - } else if (nfapi_level==NFAPI_TRACE_NOTE) { - oai_level = LOG_INFO; - } else if (nfapi_level==NFAPI_TRACE_INFO) { - oai_level = LOG_DEBUG; - } else { - oai_level = LOG_ERR; - } va_start(args, message); - nfapi_log("FILE>", "FUNC", 999, PHY, oai_level, message, args); + nfapi_log("FILE>", "FUNC", 999, PHY, nfapitooai_level(nfapi_level), message, args); va_end(args); } @@ -516,7 +515,7 @@ int config_request(nfapi_pnf_config_t* config, nfapi_pnf_phy_config_t* phy, nfap uint8_t num_tlv = 0; //struct PHY_VARS_eNB_s *eNB = RC.eNB[0][0]; - // Panos: In the case of nfapi_mode = 3 (UE = PNF) we should not have dependency on any eNB var. So we aim + // In the case of nfapi_mode = 3 (UE = PNF) we should not have dependency on any eNB var. So we aim // to keep only the necessary just to keep the nfapi FSM rolling by sending a dummy response. LTE_DL_FRAME_PARMS *fp; if (nfapi_mode!=3) { @@ -527,18 +526,6 @@ int config_request(nfapi_pnf_config_t* config, nfapi_pnf_phy_config_t* phy, nfap fp = (LTE_DL_FRAME_PARMS*) malloc(sizeof(LTE_DL_FRAME_PARMS)); } - -#if 0 - //DJP - auto found = std::find_if(pnf->phys.begin(), pnf->phys.end(), [&](phy_info& item) - { return item.id == req->header.phy_id; }); - - if(found != pnf->phys.end()) - { - phy_info& phy_info = (*found); - } -#endif - //DJP phy_info* phy_info = pnf->phys; if(req->nfapi_config.timing_window.tl.tag == NFAPI_NFAPI_TIMING_WINDOW_TAG) { @@ -871,7 +858,11 @@ int pnf_phy_dl_config_req(nfapi_pnf_p7_config_t* pnf_p7, nfapi_dl_config_request AssertFatal(UE_id= %d(NUMBER_OF_UE_MAX)\n",UE_id,NUMBER_OF_UE_MAX); LTE_eNB_DLSCH_t *dlsch0 = eNB->dlsch[UE_id][0]; //LTE_eNB_DLSCH_t *dlsch1 = eNB->dlsch[UE_id][1]; - int harq_pid = dlsch0->harq_ids[sf]; + int harq_pid = dlsch0->harq_ids[sfn%2][sf]; + if(harq_pid >= dlsch0->Mdlharq) { + LOG_E(PHY,"pnf_phy_dl_config_req illegal harq_pid %d\n", harq_pid); + return(-1); + } uint8_t *dlsch_sdu = tx_pdus[UE_id][harq_pid]; memcpy(dlsch_sdu, tx_pdu->segments[0].segment_data, tx_pdu->segments[0].segment_length); @@ -1113,7 +1104,6 @@ int start_request(nfapi_pnf_config_t* config, nfapi_pnf_phy_config_t* phy, nfapi } if(phy_info->timing_info_mode & 0x2) { - //printf("Panos-D: start_request () Enabling timing_info_mode_aperiodic \n"); p7_config->timing_info_mode_aperiodic = 1; } @@ -1181,9 +1171,6 @@ int start_request(nfapi_pnf_config_t* config, nfapi_pnf_phy_config_t* phy, nfapi NFAPI_TRACE(NFAPI_TRACE_INFO, "[PNF] DJP - HACK - Set p7_config global ready for subframe ind%s\n", __FUNCTION__); p7_config_g = p7_config; - //NFAPI_TRACE(NFAPI_TRACE_INFO, "[PNF] Panos-D: start_request, BUFFER SIZE: %d", p7_config_g->subframe_buffer_size); - //printf("Panos-D: start_request, bUFFER SIZE: %d", p7_config_g->subframe_buffer_size); - // Need to wait for main thread to create RU structures while(config_sync_var<0) { @@ -1197,13 +1184,7 @@ int start_request(nfapi_pnf_config_t* config, nfapi_pnf_phy_config_t* phy, nfapi printf("[PNF] About to call init_eNB_afterRU()\n"); - // Panos: Instead - /*if (nfapi_mode == 3) { - init_UE_stub(1,0,uecap_xer_in); - }*/ - //else{ if (nfapi_mode != 3) { - // Panos init_eNB_afterRU(); } diff --git a/nfapi/oai_integration/nfapi_vnf.c b/nfapi/oai_integration/nfapi_vnf.c index 74e999528c..8022bc53f4 100644 --- a/nfapi/oai_integration/nfapi_vnf.c +++ b/nfapi/oai_integration/nfapi_vnf.c @@ -357,18 +357,6 @@ int wake_eNB_rxtx(PHY_VARS_eNB *eNB, uint16_t sfn, uint16_t sf) { wait.tv_sec=0; wait.tv_nsec=5000000L; -#if 0 - /* accept some delay in processing - up to 5ms */ - for (i = 0; i < 10 && proc_rxtx->instance_cnt_rxtx == 0; i++) { - LOG_W( PHY,"[eNB] sfn/sf:%d:%d proc_rxtx[%d]:TXsfn:%d/%d eNB RXn-TXnp4 thread busy!! (cnt_rxtx %i)\n", sfn, sf, sf&1, proc_rxtx->frame_tx, proc_rxtx->subframe_tx, proc_rxtx->instance_cnt_rxtx); - usleep(500); - } - if (proc_rxtx->instance_cnt_rxtx == 0) { - exit_fun( "TX thread busy" ); - return(-1); - } -#endif - // wake up TX for subframe n+sf_ahead // lock the TX mutex and make sure the thread is ready if (pthread_mutex_timedlock(&proc_rxtx->mutex_rxtx,&wait) != 0) { @@ -692,36 +680,13 @@ void vnf_deallocate(void* ptr) { free(ptr); } -extern void nfapi_log(char *file, char *func, int line, int comp, int level, const char* format, va_list args); void vnf_trace(nfapi_trace_level_t nfapi_level, const char* message, ...) { va_list args; - int oai_level; - - if (nfapi_level==NFAPI_TRACE_ERROR) - { - oai_level = LOG_ERR; - } - else if (nfapi_level==NFAPI_TRACE_WARN) - { - oai_level = LOG_WARNING; - } - else if (nfapi_level==NFAPI_TRACE_NOTE) - { - oai_level = LOG_INFO; - } - else if (nfapi_level==NFAPI_TRACE_INFO) - { - oai_level = LOG_INFO; - } - else - { - oai_level = LOG_INFO; - } va_start(args, message); - nfapi_log("FILE>", "FUNC", 999, PHY, oai_level, message, args); + nfapi_log("FILE>", "FUNC", 999, PHY, nfapitooai_level(nfapi_level), message, args); va_end(args); } diff --git a/nfapi/open-nFAPI/nfapi/inc/nfapi.h b/nfapi/open-nFAPI/nfapi/inc/nfapi.h index 65ad4dd160..29a0e50438 100644 --- a/nfapi/open-nFAPI/nfapi/inc/nfapi.h +++ b/nfapi/open-nFAPI/nfapi/inc/nfapi.h @@ -25,7 +25,7 @@ extern "C" { // todo : move to public_inc so can be used by vendor extensions #define MAX_BAD_TAG 3 - +int nfapitooai_level(int nfapilevel); uint8_t push8(uint8_t in, uint8_t **out, uint8_t *end); uint8_t pushs8(int8_t in, uint8_t **out, uint8_t *end); uint8_t push16(uint16_t in, uint8_t **out, uint8_t *end); diff --git a/nfapi/open-nFAPI/nfapi/public_inc/nfapi_interface.h b/nfapi/open-nFAPI/nfapi/public_inc/nfapi_interface.h index f665d11c89..282739e315 100644 --- a/nfapi/open-nFAPI/nfapi/public_inc/nfapi_interface.h +++ b/nfapi/open-nFAPI/nfapi/public_inc/nfapi_interface.h @@ -1308,7 +1308,7 @@ typedef struct { typedef struct { nfapi_tl_t tl; uint16_t length; - uint16_t pdu_index; + int16_t pdu_index; uint16_t transmission_power; } nfapi_dl_config_bch_pdu_rel8_t; #define NFAPI_DL_CONFIG_REQUEST_BCH_PDU_REL8_TAG 0x2004 @@ -1320,7 +1320,7 @@ typedef struct { typedef struct { nfapi_tl_t tl; uint16_t length; - uint16_t pdu_index; + int16_t pdu_index; uint16_t rnti; uint8_t resource_allocation_type; uint32_t resource_block_coding; @@ -1344,7 +1344,7 @@ typedef struct { typedef struct { nfapi_tl_t tl; uint16_t length; - uint16_t pdu_index; + int16_t pdu_index; uint16_t rnti; uint8_t resource_allocation_type; uint8_t virtual_resource_block_assignment_flag; @@ -1429,7 +1429,7 @@ typedef struct { typedef struct { nfapi_tl_t tl; uint16_t length; - uint16_t pdu_index; + int16_t pdu_index; uint16_t p_rnti; uint8_t resource_allocation_type; uint8_t virtual_resource_block_assignment_flag; @@ -1595,7 +1595,7 @@ typedef struct { typedef struct { nfapi_tl_t tl; uint16_t length; - uint16_t pdu_index; + int16_t pdu_index; uint16_t transmission_power; uint16_t hyper_sfn_2_lsbs; } nfapi_dl_config_nbch_pdu_rel13_t; @@ -1609,7 +1609,7 @@ typedef struct { typedef struct { nfapi_tl_t tl; uint16_t length; - uint16_t pdu_index; + int16_t pdu_index; uint8_t ncce_index; uint8_t aggregation_level; uint8_t start_symbol; @@ -1642,7 +1642,7 @@ typedef struct { typedef struct { nfapi_tl_t tl; uint16_t length; - uint16_t pdu_index; + int16_t pdu_index; uint8_t start_symbol; uint8_t rnti_type; uint16_t rnti; @@ -2218,6 +2218,7 @@ typedef struct { uint8_t dl_assignment_index; uint32_t tpc_bitmap; uint16_t transmission_power; + uint8_t harq_pid; } nfapi_hi_dci0_dci_pdu_rel8_t; #define NFAPI_HI_DCI0_REQUEST_DCI_PDU_REL8_TAG 0x2020 @@ -2361,7 +2362,7 @@ typedef struct { #define NFAPI_TX_MAX_SEGMENTS 32 typedef struct { uint16_t pdu_length; - uint16_t pdu_index; + int16_t pdu_index; uint8_t num_segments; struct { uint32_t segment_length; @@ -2902,7 +2903,7 @@ typedef struct { typedef struct { uint8_t sub_error_code; - uint16_t pdu_index; + int16_t pdu_index; } nfapi_error_indication_msg_tx_err; // diff --git a/nfapi/open-nFAPI/nfapi/src/nfapi_p7.c b/nfapi/open-nFAPI/nfapi/src/nfapi_p7.c index 3754fe379f..c180b5b0f9 100644 --- a/nfapi/open-nFAPI/nfapi/src/nfapi_p7.c +++ b/nfapi/open-nFAPI/nfapi/src/nfapi_p7.c @@ -2924,7 +2924,7 @@ static uint8_t unpack_dl_config_bch_pdu_rel8_value(void *tlv, uint8_t **ppReadPa nfapi_dl_config_bch_pdu_rel8_t* bch_pdu_rel8 = (nfapi_dl_config_bch_pdu_rel8_t*)tlv; return ( pull16(ppReadPackedMsg, &bch_pdu_rel8->length, end) && - pull16(ppReadPackedMsg, &bch_pdu_rel8->pdu_index, end) && + pull16(ppReadPackedMsg, (uint16_t *)&bch_pdu_rel8->pdu_index, end) && pull16(ppReadPackedMsg, &bch_pdu_rel8->transmission_power, end)); } @@ -2933,7 +2933,7 @@ static uint8_t unpack_dl_config_mch_pdu_rel8_value(void *tlv, uint8_t **ppReadPa nfapi_dl_config_mch_pdu_rel8_t* mch_pdu_rel8 = (nfapi_dl_config_mch_pdu_rel8_t*)tlv; return (pull16(ppReadPackedMsg, &mch_pdu_rel8->length, end) && - pull16(ppReadPackedMsg, &mch_pdu_rel8->pdu_index, end) && + pull16(ppReadPackedMsg, (uint16_t *)&mch_pdu_rel8->pdu_index, end) && pull16(ppReadPackedMsg, &mch_pdu_rel8->rnti, end) && pull8(ppReadPackedMsg, &mch_pdu_rel8->resource_allocation_type, end) && pull32(ppReadPackedMsg, &mch_pdu_rel8->resource_block_coding, end) && @@ -2947,7 +2947,7 @@ static uint8_t unpack_dl_config_dlsch_pdu_rel8_value(void *tlv, uint8_t **ppRead nfapi_dl_config_dlsch_pdu_rel8_t* dlsch_pdu_rel8 = (nfapi_dl_config_dlsch_pdu_rel8_t*)tlv; if (!(pull16(ppReadPackedMsg, &dlsch_pdu_rel8->length, end) && - pull16(ppReadPackedMsg, &dlsch_pdu_rel8->pdu_index, end) && + pull16(ppReadPackedMsg, (uint16_t *)&dlsch_pdu_rel8->pdu_index, end) && pull16(ppReadPackedMsg, &dlsch_pdu_rel8->rnti, end) && pull8(ppReadPackedMsg, &dlsch_pdu_rel8->resource_allocation_type, end) && pull8(ppReadPackedMsg, &dlsch_pdu_rel8->virtual_resource_block_assignment_flag, end) && @@ -3033,7 +3033,7 @@ static uint8_t unpack_dl_config_pch_pdu_rel8_value(void *tlv, uint8_t **ppReadPa nfapi_dl_config_pch_pdu_rel8_t* pch_pdu_rel8 = (nfapi_dl_config_pch_pdu_rel8_t*)tlv; return ( pull16(ppReadPackedMsg, &pch_pdu_rel8->length, end) && - pull16(ppReadPackedMsg, &pch_pdu_rel8->pdu_index, end) && + pull16(ppReadPackedMsg, (uint16_t *)&pch_pdu_rel8->pdu_index, end) && pull16(ppReadPackedMsg, &pch_pdu_rel8->p_rnti, end) && pull8(ppReadPackedMsg, &pch_pdu_rel8->resource_allocation_type, end) && pull8(ppReadPackedMsg, &pch_pdu_rel8->virtual_resource_block_assignment_flag, end) && @@ -3179,7 +3179,7 @@ static uint8_t unpack_dl_config_nbch_pdu_rel13_value(void *tlv, uint8_t **ppRead nfapi_dl_config_nbch_pdu_rel13_t* nbch_params_rel13 = (nfapi_dl_config_nbch_pdu_rel13_t*)tlv; return ( pull16(ppReadPackedMsg, &nbch_params_rel13->length, end) && - pull16(ppReadPackedMsg, &nbch_params_rel13->pdu_index, end) && + pull16(ppReadPackedMsg, (uint16_t *)&nbch_params_rel13->pdu_index, end) && pull16(ppReadPackedMsg, &nbch_params_rel13->transmission_power, end) && pull16(ppReadPackedMsg, &nbch_params_rel13->hyper_sfn_2_lsbs, end)); } @@ -3189,7 +3189,7 @@ static uint8_t unpack_dl_config_npdcch_pdu_rel13_value(void *tlv, uint8_t **ppRe nfapi_dl_config_npdcch_pdu_rel13_t* npdcch_params_rel13 = (nfapi_dl_config_npdcch_pdu_rel13_t*)tlv; return ( pull16(ppReadPackedMsg, &npdcch_params_rel13->length, end) && - pull16(ppReadPackedMsg, &npdcch_params_rel13->pdu_index, end) && + pull16(ppReadPackedMsg, (uint16_t *)&npdcch_params_rel13->pdu_index, end) && pull8(ppReadPackedMsg, &npdcch_params_rel13->ncce_index, end) && pull8(ppReadPackedMsg, &npdcch_params_rel13->aggregation_level, end) && pull8(ppReadPackedMsg, &npdcch_params_rel13->start_symbol, end) && @@ -3218,7 +3218,7 @@ static uint8_t unpack_dl_config_ndlsch_pdu_rel13_value(void *tlv, uint8_t **ppRe nfapi_dl_config_ndlsch_pdu_rel13_t* ndlsch_params_rel13 = (nfapi_dl_config_ndlsch_pdu_rel13_t*)tlv; return ( pull16(ppReadPackedMsg, &ndlsch_params_rel13->length, end) && - pull16(ppReadPackedMsg, &ndlsch_params_rel13->pdu_index, end) && + pull16(ppReadPackedMsg, (uint16_t *)&ndlsch_params_rel13->pdu_index, end) && pull8(ppReadPackedMsg, &ndlsch_params_rel13->start_symbol, end) && pull8(ppReadPackedMsg, &ndlsch_params_rel13->rnti_type, end) && pull16(ppReadPackedMsg, &ndlsch_params_rel13->rnti, end) && @@ -3602,7 +3602,7 @@ static uint8_t unpack_ul_config_ue_info_rel8_value(void *tlv, uint8_t **ppReadPa nfapi_ul_config_ue_information_rel8_t* ue_info_rel8 = (nfapi_ul_config_ue_information_rel8_t*)tlv; return (pull32(ppReadPackedMsg, &ue_info_rel8->handle, end) && - pull16(ppReadPackedMsg, &ue_info_rel8->rnti, end)); + pull16(ppReadPackedMsg, (uint16_t *)&ue_info_rel8->rnti, end)); } static uint8_t unpack_ul_config_ue_info_rel11_value(void *tlv, uint8_t **ppReadPackedMsg, uint8_t *end) { diff --git a/nfapi/open-nFAPI/pnf/src/pnf_p7.c b/nfapi/open-nFAPI/pnf/src/pnf_p7.c index 02b828d382..8d94c23476 100644 --- a/nfapi/open-nFAPI/pnf/src/pnf_p7.c +++ b/nfapi/open-nFAPI/pnf/src/pnf_p7.c @@ -1624,10 +1624,6 @@ void pnf_nfapi_p7_read_dispatch_message(pnf_p7_t* pnf_p7, uint32_t now_hr_time) // need to update the time as we would only use the value from the // select -#if 0 -// DJP - why do this here and not on return from recv??? - now_hr_time = pnf_get_current_time_hr(); -#endif } while(recvfrom_result > 0); } diff --git a/nfapi/open-nFAPI/vnf/src/vnf_p7.c b/nfapi/open-nFAPI/vnf/src/vnf_p7.c index 3c469c942b..cea259c35b 100644 --- a/nfapi/open-nFAPI/vnf/src/vnf_p7.c +++ b/nfapi/open-nFAPI/vnf/src/vnf_p7.c @@ -1248,12 +1248,12 @@ void vnf_handle_timing_info(void *pRecvMsg, int recvMsgLen, vnf_p7_t* vnf_p7) //NFAPI_TRACE(NFAPI_TRACE_INFO, "%s() PNF:SFN/SF:%d VNF:SFN/SF:%d deltaSFNSF:%d\n", __FUNCTION__, NFAPI_SFNSF2DEC(ind.last_sfn_sf), NFAPI_SFNSF2DEC(vnf_p7->p7_connections[0].sfn_sf), vnf_pnf_sfnsf_delta); - // Panos: Careful here!!! + // Panos: Careful here!!! Modification of the original nfapi-code //if (vnf_pnf_sfnsf_delta>1 || vnf_pnf_sfnsf_delta < -1) if (vnf_pnf_sfnsf_delta>0 || vnf_pnf_sfnsf_delta < 0) { NFAPI_TRACE(NFAPI_TRACE_INFO, "%s() LARGE SFN/SF DELTA between PNF and VNF delta:%d VNF:%d PNF:%d\n\n\n\n\n\n\n\n\n", __FUNCTION__, vnf_pnf_sfnsf_delta, NFAPI_SFNSF2DEC(vnf_p7->p7_connections[0].sfn_sf), NFAPI_SFNSF2DEC(ind.last_sfn_sf)); - // Panos: Careful here!!! + // Panos: Careful here!!! Modification of the original nfapi-code vnf_p7->p7_connections[0].sfn_sf = ind.last_sfn_sf; } } diff --git a/nfapi/open-nFAPI/vnf/src/vnf_p7_interface.c b/nfapi/open-nFAPI/vnf/src/vnf_p7_interface.c index a35d8e3c1d..4a85f7e4b3 100644 --- a/nfapi/open-nFAPI/vnf/src/vnf_p7_interface.c +++ b/nfapi/open-nFAPI/vnf/src/vnf_p7_interface.c @@ -200,13 +200,6 @@ int nfapi_vnf_p7_start(nfapi_vnf_p7_config_t* config) // still time before the end of the subframe wait pselect_timeout = timespec_sub(sf_start, pselect_start); -#if 0 - NFAPI_TRACE(NFAPI_TRACE_INFO, "%s() sf_start:%d.%ld pselect_start:%d.%ld pseclect_timeout:%d.%ld\n", - __FUNCTION__, - sf_start.tv_sec, sf_start.tv_nsec, - pselect_start.tv_sec, pselect_start.tv_nsec, - pselect_timeout.tv_sec, pselect_timeout.tv_nsec); -#endif } //original_pselect_timeout = pselect_timeout; @@ -266,13 +259,6 @@ if (selectRetval==-1 && errno == 22) phy->insync_minor_adjustment_duration, phy->insync_minor_adjustment, sf_duration.tv_sec, sf_duration.tv_nsec); } -#if 0 - if (selectRetval != 0 || phy->insync_minor_adjustment_duration != 0) - NFAPI_TRACE(NFAPI_TRACE_NOTE, "pselect()=%d maxSock:%d vnf_p7->socket:%d pselect_timeout:%u.%u original_pselect_timeout:%u.%u\n", - selectRetval, maxSock, vnf_p7->socket, pselect_timeout.tv_sec, pselect_timeout.tv_nsec, - original_pselect_timeout.tv_sec, original_pselect_timeout.tv_nsec); -#endif - if(selectRetval == 0) { // calculate the start of the next subframe diff --git a/openair1/PHY/CODING/3gpplte.c b/openair1/PHY/CODING/3gpplte.c index ae476a118f..52090d8ec1 100644 --- a/openair1/PHY/CODING/3gpplte.c +++ b/openair1/PHY/CODING/3gpplte.c @@ -30,7 +30,6 @@ #include #include #include "PHY/CODING/coding_defs.h" -#include "extern_3GPPinterleaver.h" //#define DEBUG_TURBO_ENCODER 1 @@ -110,9 +109,7 @@ uint32_t bit_byte_lut[2048]; void threegpplte_turbo_encoder(uint8_t *input, uint16_t input_length_bytes, uint8_t *output, - uint8_t F, - uint16_t interleaver_f1, - uint16_t interleaver_f2) + uint8_t F) { int i,k=0; @@ -256,6 +253,217 @@ inline short threegpp_interleaver_parameters(uint16_t bytes_per_codeword) return(-1); } } + +const interleaver_TS_36_212_t f1f2[188] = { + { 40, 3, 10 }, + { 48, 7, 12 }, + { 56, 19, 42 }, + { 64, 7, 16 }, + { 72, 7, 18 }, + { 80, 11, 20 }, + { 88, 5, 22 }, + { 96, 11, 24 }, + { 104, 7, 26 }, + { 112, 41, 84 }, + { 120, 103, 90 }, + { 128, 15, 32 }, + { 136, 9, 34 }, + { 144, 17, 108 }, + { 152, 9, 38 }, + { 160, 21, 120 }, + { 168, 101, 84 }, + { 176, 21, 44 }, + { 184, 57, 46 }, + { 192, 23, 48 }, + { 200, 13, 50 }, + { 208, 27, 52 }, + { 216, 11, 36 }, + { 224, 27, 56 }, + { 232, 85, 58 }, + { 240, 29, 60 }, + { 248, 33, 62 }, + { 256, 15, 32 }, + { 264, 17, 198 }, + { 272, 33, 68 }, + { 280, 103, 210 }, + { 288, 19, 36 }, + { 296, 19, 74 }, + { 304, 37, 76 }, + { 312, 19, 78 }, + { 320, 21, 120 }, + { 328, 21, 82 }, + { 336, 115, 84 }, + { 344, 193, 86 }, + { 352, 21, 44 }, + { 360, 133, 90 }, + { 368, 81, 46 }, + { 376, 45, 94 }, + { 384, 23, 48 }, + { 392, 243, 98 }, + { 400, 151, 40 }, + { 408, 155, 102 }, + { 416, 25, 52 }, + { 424, 51, 106 }, + { 432, 47, 72 }, + { 440, 91, 110 }, + { 448, 29, 168 }, + { 456, 29, 114 }, + { 464, 247, 58 }, + { 472, 29, 118 }, + { 480, 89, 180 }, + { 488, 91, 122 }, + { 496, 157, 62 }, + { 504, 55, 84 }, + { 512, 31, 64 }, + { 528, 17, 66 }, + { 544, 35, 68 }, + { 560, 227, 420 }, + { 576, 65, 96 }, + { 592, 19, 74 }, + { 608, 37, 76 }, + { 624, 41, 234 }, + { 640, 39, 80 }, + { 656, 185, 82 }, + { 672, 43, 252 }, + { 688, 21, 86 }, + { 704, 155, 44 }, + { 720, 79, 120 }, + { 736, 139, 92 }, + { 752, 23, 94 }, + { 768, 217, 48 }, + { 784, 25, 98 }, + { 800, 17, 80 }, + { 816, 127, 102 }, + { 832, 25, 52 }, + { 848, 239, 106 }, + { 864, 17, 48 }, + { 880, 137, 110 }, + { 896, 215, 112 }, + { 912, 29, 114 }, + { 928, 15, 58 }, + { 944, 147, 118 }, + { 960, 29, 60 }, + { 976, 59, 122 }, + { 992, 65, 124 }, + { 1008, 55, 84 }, + { 1024, 31, 64 }, + { 1056, 17, 66 }, + { 1088, 171, 204 }, + { 1120, 67, 140 }, + { 1152, 35, 72 }, + { 1184, 19, 74 }, + { 1216, 39, 76 }, + { 1248, 19, 78 }, + { 1280, 199, 240 }, + { 1312, 21, 82 }, + { 1344, 211, 252 }, + { 1376, 21, 86 }, + { 1408, 43, 88 }, + { 1440, 149, 60 }, + { 1472, 45, 92 }, + { 1504, 49, 846 }, + { 1536, 71, 48 }, + { 1568, 13, 28 }, + { 1600, 17, 80 }, + { 1632, 25, 102 }, + { 1664, 183, 104 }, + { 1696, 55, 954 }, + { 1728, 127, 96 }, + { 1760, 27, 110 }, + { 1792, 29, 112 }, + { 1824, 29, 114 }, + { 1856, 57, 116 }, + { 1888, 45, 354 }, + { 1920, 31, 120 }, + { 1952, 59, 610 }, + { 1984, 185, 124 }, + { 2016, 113, 420 }, + { 2048, 31, 64 }, + { 2112, 17, 66 }, + { 2176, 171, 136 }, + { 2240, 209, 420 }, + { 2304, 253, 216 }, + { 2368, 367, 444 }, + { 2432, 265, 456 }, + { 2496, 181, 468 }, + { 2560, 39, 80 }, + { 2624, 27, 164 }, + { 2688, 127, 504 }, + { 2752, 143, 172 }, + { 2816, 43, 88 }, + { 2880, 29, 300 }, + { 2944, 45, 92 }, + { 3008, 157, 188 }, + { 3072, 47, 96 }, + { 3136, 13, 28 }, + { 3200, 111, 240 }, + { 3264, 443, 204 }, + { 3328, 51, 104 }, + { 3392, 51, 212 }, + { 3456, 451, 192 }, + { 3520, 257, 220 }, + { 3584, 57, 336 }, + { 3648, 313, 228 }, + { 3712, 271, 232 }, + { 3776, 179, 236 }, + { 3840, 331, 120 }, + { 3904, 363, 244 }, + { 3968, 375, 248 }, + { 4032, 127, 168 }, + { 4096, 31, 64 }, + { 4160, 33, 130 }, + { 4224, 43, 264 }, + { 4288, 33, 134 }, + { 4352, 477, 408 }, + { 4416, 35, 138 }, + { 4480, 233, 280 }, + { 4544, 357, 142 }, + { 4608, 337, 480 }, + { 4672, 37, 146 }, + { 4736, 71, 444 }, + { 4800, 71, 120 }, + { 4864, 37, 152 }, + { 4928, 39, 462 }, + { 4992, 127, 234 }, + { 5056, 39, 158 }, + { 5120, 39, 80 }, + { 5184, 31, 96 }, + { 5248, 113, 902 }, + { 5312, 41, 166 }, + { 5376, 251, 336 }, + { 5440, 43, 170 }, + { 5504, 21, 86 }, + { 5568, 43, 174 }, + { 5632, 45, 176 }, + { 5696, 45, 178 }, + { 5760, 161, 120 }, + { 5824, 89, 182 }, + { 5888, 323, 184 }, + { 5952, 47, 186 }, + { 6016, 23, 94 }, + { 6080, 47, 190 }, + { 6144, 263, 480 }, +}; + + +t_interleaver_codebook *f1f2mat; +short *il_tb; +__attribute__((constructor)) static void init_interleaver(void) { + int totSize=0; + f1f2mat=(t_interleaver_codebook*) malloc(sizeof(*f1f2mat) * sizeof(f1f2) / sizeof(*f1f2)); + for (int i=0; i < sizeof(f1f2)/sizeof(*f1f2) ; i++) { + f1f2mat[i].nb_bits=f1f2[i].nb_bits; + f1f2mat[i].f1=f1f2[i].f1; + f1f2mat[i].f2=f1f2[i].f2; + f1f2mat[i].beg_index=totSize; + totSize+=f1f2mat[i].nb_bits; + } + il_tb=(short*)malloc(sizeof(*il_tb)*totSize); + int idx=0; + for (int i=0; i < sizeof(f1f2)/sizeof(*f1f2) ; i++) + for (uint64_t j=0; j #endif #include @@ -539,9 +537,7 @@ char interleave_compact_byte(short * base_interleaver,unsigned char * input, uns void threegpplte_turbo_encoder_sse(unsigned char *input, unsigned short input_length_bytes, unsigned char *output, - unsigned char F, - unsigned short interleaver_f1, - unsigned short interleaver_f2) + unsigned char F) { int i; @@ -699,9 +695,7 @@ int main(int argc,char **argv) threegpplte_turbo_encoder_sse(&input[0], INPUT_LENGTH, &output[0], - 0, - F1, - F2); + 0); for (i=0;i<12+(INPUT_LENGTH*24);i++) diff --git a/openair1/PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c b/openair1/PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c index a541c22393..8c2513b702 100644 --- a/openair1/PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c +++ b/openair1/PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c @@ -46,7 +46,6 @@ #include "PHY/defs_common.h" #include "PHY/CODING/coding_defs.h" #include "PHY/CODING/lte_interleaver_inline.h" -#include "extern_3GPPinterleaver.h" #else #include "defs.h" @@ -893,8 +892,6 @@ unsigned char phy_threegpplte_turbo_decoder16avx2(int16_t *y, uint8_t *decoded_bytes, uint8_t *decoded_bytes2, uint16_t n, - uint16_t f1, - uint16_t f2, uint8_t max_iterations, uint8_t crc_type, uint8_t F, @@ -989,134 +986,6 @@ unsigned char phy_threegpplte_turbo_decoder16avx2(int16_t *y, yp1 = yparity1; yp2 = yparity2; - -#if 0 - __m128i *yp128,*yp128_cw2; - __m128i tmpe,tmpe_cw2; - yp128 = (__m128i*)y; - yp128_cw2 = (__m128i*)y2; - - - - for (i=0; i>4)<<3)+(j&7),s[j],yp1[j],yp2[j]); - fprintf(fdavx2b,"init0: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j+8],yp1[j+8],yp2[j+8]); -#endif - - j=pi2_p[1]; - - s[j] = _mm_extract_epi16(tmpe,3); - yp1[j] = _mm_extract_epi16(tmpe,4); - yp2[j] = _mm_extract_epi16(tmpe,5); - s[j+8] = _mm_extract_epi16(tmpe_cw2,3); - yp1[j+8] = _mm_extract_epi16(tmpe_cw2,4); - yp2[j+8] = _mm_extract_epi16(tmpe_cw2,5); -#ifdef DEBUG_LOGMAP - fprintf(fdavx2,"init1: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j],yp1[j],yp2[j]); - fprintf(fdavx2b,"init1: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j+8],yp1[j+8],yp2[j+8]); -#endif - j=pi2_p[2]; - - s[j] = _mm_extract_epi16(tmpe,6); - yp1[j] = _mm_extract_epi16(tmpe,7); - tmpe = _mm_load_si128(&yp128[1]); - yp2[j] = _mm_extract_epi16(tmpe,0); - s[j+8] = _mm_extract_epi16(tmpe_cw2,6); - yp1[j+8] = _mm_extract_epi16(tmpe_cw2,7); - tmpe_cw2 = _mm_load_si128(&yp128_cw2[1]); - yp2[j+8] = _mm_extract_epi16(tmpe_cw2,0); -#ifdef DEBUG_LOGMAP - fprintf(fdavx2,"init2: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j],yp1[j],yp2[j]); - fprintf(fdavx2b,"init2: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j+8],yp1[j+8],yp2[j+8]); -#endif - j=pi2_p[3]; - - s[j] = _mm_extract_epi16(tmpe,1); - yp1[j] = _mm_extract_epi16(tmpe,2); - yp2[j] = _mm_extract_epi16(tmpe,3); - s[j+8] = _mm_extract_epi16(tmpe_cw2,1); - yp1[j+8] = _mm_extract_epi16(tmpe_cw2,2); - yp2[j+8] = _mm_extract_epi16(tmpe_cw2,3); -#ifdef DEBUG_LOGMAP - fprintf(fdavx2,"init3: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j],yp1[j],yp2[j]); - fprintf(fdavx2b,"init3: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j+8],yp1[j+8],yp2[j+8]); -#endif - j=pi2_p[4]; - - s[j] = _mm_extract_epi16(tmpe,4); - yp1[j] = _mm_extract_epi16(tmpe,5); - yp2[j] = _mm_extract_epi16(tmpe,6); - s[j+8] = _mm_extract_epi16(tmpe_cw2,4); - yp1[j+8] = _mm_extract_epi16(tmpe_cw2,5); - yp2[j+8] = _mm_extract_epi16(tmpe_cw2,6); -#ifdef DEBUG_LOGMAP - fprintf(fdavx2,"init4: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j],yp1[j],yp2[j]); - fprintf(fdavx2b,"init4: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j+8],yp1[j+8],yp2[j+8]); -#endif - j=pi2_p[5]; - - s[j] = _mm_extract_epi16(tmpe,7); - tmpe = _mm_load_si128(&yp128[2]); - yp1[j] = _mm_extract_epi16(tmpe,0); - yp2[j] = _mm_extract_epi16(tmpe,1); - s[j+8] = _mm_extract_epi16(tmpe_cw2,7); - tmpe_cw2 = _mm_load_si128(&yp128_cw2[2]); - yp1[j+8] = _mm_extract_epi16(tmpe_cw2,0); - yp2[j+8] = _mm_extract_epi16(tmpe_cw2,1); -#ifdef DEBUG_LOGMAP - fprintf(fdavx2,"init5: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j],yp1[j],yp2[j]); - fprintf(fdavx2b,"init5: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j+8],yp1[j+8],yp2[j+8]); -#endif - j=pi2_p[6]; - - s[j] = _mm_extract_epi16(tmpe,2); - yp1[j] = _mm_extract_epi16(tmpe,3); - yp2[j] = _mm_extract_epi16(tmpe,4); - s[j+8] = _mm_extract_epi16(tmpe_cw2,2); - yp1[j+8] = _mm_extract_epi16(tmpe_cw2,3); - yp2[j+8] = _mm_extract_epi16(tmpe_cw2,4); -#ifdef DEBUG_LOGMAP - fprintf(fdavx2,"init6: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j],yp1[j],yp2[j]); - fprintf(fdavx2b,"init6: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j+8],yp1[j+8],yp2[j+8]); -#endif - j=pi2_p[7]; - - s[j] = _mm_extract_epi16(tmpe,5); - yp1[j] = _mm_extract_epi16(tmpe,6); - yp2[j] = _mm_extract_epi16(tmpe,7); - s[j+8] = _mm_extract_epi16(tmpe_cw2,5); - yp1[j+8] = _mm_extract_epi16(tmpe_cw2,6); - yp2[j+8] = _mm_extract_epi16(tmpe_cw2,7); -#ifdef DEBUG_LOGMAP - fprintf(fdavx2,"init7: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j],yp1[j],yp2[j]); - fprintf(fdavx2b,"init7: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j+8],yp1[j+8],yp2[j+8]); -#endif - yp128+=3; - yp128_cw2+=3; - - } - yp=(llr_t*)yp128; - yp_cw2=(llr_t*)yp128_cw2; -#else - pi2_p = &pi2tab16avx2[iind][0]; for (i=0,j=0; i>8; diff --git a/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c b/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c index 7daa86b8bb..a25ba46ff8 100644 --- a/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c +++ b/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c @@ -45,7 +45,6 @@ #include "PHY/defs_common.h" #include "PHY/CODING/coding_defs.h" #include "PHY/CODING/lte_interleaver_inline.h" -#include "extern_3GPPinterleaver.h" #else #include "defs.h" @@ -233,9 +232,6 @@ void compute_alpha16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,unsigned s #if defined(__x86_64__) || defined(__i386__) alpha128 = (__m128i *)alpha; //#ifdef __AVX2__ -#if 0 - alpha256 = (__m256i *)alpha; -#endif #elif defined(__arm__) alpha128 = (int16x8_t *)alpha; #endif @@ -317,10 +313,6 @@ void compute_alpha16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,unsigned s alpha_ptr = &alpha128[0]; //#ifdef __AVX2__ -#if 0 - alpha_ptr256 = &alpha256[0]; -#endif - #if defined(__x86_64__) || defined(__i386__) m11p = (__m128i*)m_11; m10p = (__m128i*)m_10; @@ -450,9 +442,6 @@ void compute_alpha16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,unsigned s alpha_ptr+=8; //#ifdef __AVX2__ -#if 0 - alpha_ptr256+=4; -#endif m11p++; m10p++; #if defined(__x86_64__) || defined(__i386__) @@ -1172,24 +1161,21 @@ void init_td16(void) } } -unsigned char phy_threegpplte_turbo_decoder16(short *y, - short *y2, - unsigned char *decoded_bytes, - unsigned char *decoded_bytes2, - unsigned short n, - unsigned short f1, - unsigned short f2, - unsigned char max_iterations, - unsigned char crc_type, - unsigned char F, - time_stats_t *init_stats, - time_stats_t *alpha_stats, - time_stats_t *beta_stats, - time_stats_t *gamma_stats, - time_stats_t *ext_stats, - time_stats_t *intl1_stats, - time_stats_t *intl2_stats) -{ +uint8_t phy_threegpplte_turbo_decoder16(int16_t *y, + int16_t *y2, + uint8_t *decoded_bytes, + uint8_t *decoded_bytes2, + uint16_t n, + uint8_t max_iterations, + uint8_t crc_type, + uint8_t F, + time_stats_t *init_stats, + time_stats_t *alpha_stats, + time_stats_t *beta_stats, + time_stats_t *gamma_stats, + time_stats_t *ext_stats, + time_stats_t *intl1_stats, + time_stats_t *intl2_stats) { /* y is a pointer to the input decoded_bytes is a pointer to the decoded output diff --git a/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c b/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c index f22ec21ff0..476e79cacb 100644 --- a/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c +++ b/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c @@ -42,7 +42,6 @@ #include "PHY/defs_common.h" #include "PHY/CODING/coding_defs.h" #include "PHY/CODING/lte_interleaver_inline.h" -#include "extern_3GPPinterleaver.h" #else #include "defs.h" @@ -427,67 +426,6 @@ void compute_beta8(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sho llr_t beta2,beta3,beta4,beta5,beta6,beta7; - -#if 0 - int16_t m11,m10; - int16_t beta0_16,beta1_16,beta2_16,beta3_16,beta4_16,beta5_16,beta6_16,beta7_16,beta0_2,beta1_2,beta2_2,beta3_2,beta_m; - __m128i beta_16; - // termination for beta initialization - - m11=(int16_t)m_11[2+frame_length]; - m10=(int16_t)m_10[2+frame_length]; - - beta0 = -m11;//M0T_TERM; - beta1 = m11;//M1T_TERM; - m11=(int16_t)m_11[1+frame_length]; - m10=(int16_t)m_10[1+frame_length]; - - beta0_2 = beta0-m11;//+M0T_TERM; - beta1_2 = beta0+m11;//+M1T_TERM; - beta2_2 = beta1+m10;//M2T_TERM; - beta3_2 = beta1-m10;//+M3T_TERM; - m11=(int16_t)m_11[frame_length]; - m10=(int16_t)m_10[frame_length]; - - beta0_16 = beta0_2-m11;//+M0T_TERM; - beta1_16 = beta0_2+m11;//+M1T_TERM; - beta2_16 = beta1_2+m10;//+M2T_TERM; - beta3_16 = beta1_2-m10;//+M3T_TERM; - beta4_16 = beta2_2-m10;//+M4T_TERM; - beta5_16 = beta2_2+m10;//+M5T_TERM; - beta6_16 = beta3_2+m11;//+M6T_TERM; - beta7_16 = beta3_2-m11;//+M7T_TERM; - - beta_m = (beta0_16>beta1_16) ? beta0_16 : beta1_16; - beta_m = (beta_m>beta2_16) ? beta_m : beta2_16; - beta_m = (beta_m>beta3_16) ? beta_m : beta3_16; - beta_m = (beta_m>beta4_16) ? beta_m : beta4_16; - beta_m = (beta_m>beta5_16) ? beta_m : beta5_16; - beta_m = (beta_m>beta6_16) ? beta_m : beta6_16; - beta_m = (beta_m>beta7_16) ? beta_m : beta7_16; - - beta0_16=beta0_16-beta_m; - beta1_16=beta1_16-beta_m; - beta2_16=beta2_16-beta_m; - beta3_16=beta3_16-beta_m; - beta4_16=beta4_16-beta_m; - beta5_16=beta5_16-beta_m; - beta6_16=beta6_16-beta_m; - beta7_16=beta7_16-beta_m; - - beta_16 = _mm_set_epi16(beta7_16,beta6_16,beta5_16,beta4_16,beta3_16,beta2_16,beta1_16,beta0_16); - beta_16 = _mm_packs_epi16(beta_16,beta_16); - beta0 = _mm_extract_epi8(beta_16,0); - beta1 = _mm_extract_epi8(beta_16,1); - beta2 = _mm_extract_epi8(beta_16,2); - beta3 = _mm_extract_epi8(beta_16,3); - beta4 = _mm_extract_epi8(beta_16,4); - beta5 = _mm_extract_epi8(beta_16,5); - beta6 = _mm_extract_epi8(beta_16,6); - beta7 = _mm_extract_epi8(beta_16,7); - -#endif - if (frame_length > 6144) { LOG_E(PHY,"compute_beta: frame_length %d\n",frame_length); return; @@ -897,25 +835,21 @@ void init_td8(void) } } -unsigned char phy_threegpplte_turbo_decoder8(short *y, - short y2, - unsigned char *decoded_bytes, - unsigned char *decoded_bytes2, - unsigned short n, - unsigned short f1, - unsigned short f2, - unsigned char max_iterations, - unsigned char crc_type, - unsigned char F, - time_stats_t *init_stats, - time_stats_t *alpha_stats, - time_stats_t *beta_stats, - time_stats_t *gamma_stats, - time_stats_t *ext_stats, - time_stats_t *intl1_stats, - time_stats_t *intl2_stats) -{ - +uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, + int16_t *y2, + uint8_t *decoded_bytes, + uint8_t *decoded_bytes2, + uint16_t n, + uint8_t max_iterations, + uint8_t crc_type, + uint8_t F, + time_stats_t *init_stats, + time_stats_t *alpha_stats, + time_stats_t *beta_stats, + time_stats_t *gamma_stats, + time_stats_t *ext_stats, + time_stats_t *intl1_stats, + time_stats_t *intl2_stats) { /* y is a pointer to the input decoded_bytes is a pointer to the decoded output n is the size in bits of the coded block, with the tail */ @@ -1085,209 +1019,6 @@ unsigned char phy_threegpplte_turbo_decoder8(short *y, yp2[k]=*yp++; } -#endif -#if 0 - - for (i=0; ilte_frame_parms); //openair1/PHY/impl_defs_lte.h lte_ue_common_vars = &(PHY_vars->lte_ue_common_vars); lte_ue_dlsch_vars = &(PHY_vars->lte_ue_dlsch_vars); @@ -249,7 +246,6 @@ int main(int argc, char *argv[]) randominit(0); set_taus_seed(0); - crcTableInit(); ccodelte_init(); ccodelte_init_inv(); diff --git a/openair1/PHY/CODING/TESTBENCH/viterbi_test.c b/openair1/PHY/CODING/TESTBENCH/viterbi_test.c index 385910f680..0d41482fef 100644 --- a/openair1/PHY/CODING/TESTBENCH/viterbi_test.c +++ b/openair1/PHY/CODING/TESTBENCH/viterbi_test.c @@ -218,8 +218,6 @@ int main(int argc, char *argv[]) randominit(); set_taus_seed(); - crcTableInit(); - printf("EbN0, sigma, BER, FER\n"); for (SNR=0; SNR<10; SNR++) { diff --git a/openair1/PHY/CODING/coding_defs.h b/openair1/PHY/CODING/coding_defs.h index d2975f3f93..0960395689 100644 --- a/openair1/PHY/CODING/coding_defs.h +++ b/openair1/PHY/CODING/coding_defs.h @@ -28,8 +28,7 @@ #define __CODING_DEFS__H__ #include - -#include "PHY/defs_common.h" +#include #define CRC24_A 0 #define CRC24_B 1 @@ -39,7 +38,24 @@ #define MAX_TURBO_ITERATIONS_MBSFN 8 #define MAX_TURBO_ITERATIONS max_turbo_iterations +typedef struct { + unsigned short nb_bits; + unsigned short f1; + unsigned short f2; +} interleaver_TS_36_212_t; + +extern const interleaver_TS_36_212_t f1f2[188]; + #define LTE_NULL 2 +typedef struct interleaver_codebook { + unsigned long nb_bits; + unsigned short f1; + unsigned short f2; + unsigned int beg_index; +} t_interleaver_codebook; +extern t_interleaver_codebook *f1f2mat; +extern short *il_tb; + /** @addtogroup _PHY_CODING_BLOCKS_ * @{ @@ -321,7 +337,7 @@ void ccodedab_init_inv(void); /*!\fn void crcTableInit(void) \brief This function initializes the different crc tables.*/ -void crcTableInit (void); +//void crcTableInit (void); @@ -331,7 +347,7 @@ based on 3GPP UMTS/LTE specifications. @param inPtr Pointer to input byte stream @param bitlen length of inputs in bits */ -uint32_t crc24a (uint8_t *inPtr, int32_t bitlen); +uint32_t crc24a (uint8_t * inptr, uint32_t bitlen); /*!\fn uint32_t crc24b(uint8_t *inPtr, int32_t bitlen) \brief This computes a 24-bit crc ('b' variant for transport-block segments) @@ -339,26 +355,26 @@ based on 3GPP UMTS/LTE specifications. @param inPtr Pointer to input byte stream @param bitlen length of inputs in bits */ -uint32_t crc24b (uint8_t *inPtr, int32_t bitlen); - +uint32_t crc24b (uint8_t * inptr, uint32_t bitlen); + /*!\fn uint32_t crc16(uint8_t *inPtr, int32_t bitlen) \brief This computes a 16-bit crc based on 3GPP UMTS specifications. @param inPtr Pointer to input byte stream @param bitlen length of inputs in bits*/ -uint32_t crc16 (uint8_t *inPtr, int32_t bitlen); +uint32_t crc16 (uint8_t * inptr, uint32_t bitlen); /*!\fn uint32_t crc12(uint8_t *inPtr, int32_t bitlen) \brief This computes a 12-bit crc based on 3GPP UMTS specifications. @param inPtr Pointer to input byte stream @param bitlen length of inputs in bits*/ -uint32_t crc12 (uint8_t *inPtr, int32_t bitlen); +uint32_t crc12 (uint8_t * inptr, uint32_t bitlen); /*!\fn uint32_t crc8(uint8_t *inPtr, int32_t bitlen) \brief This computes a 8-bit crc based on 3GPP UMTS specifications. @param inPtr Pointer to input byte stream @param bitlen length of inputs in bits*/ -uint32_t crc8 (uint8_t *inPtr, int32_t bitlen); - +uint32_t crc8 (uint8_t * inptr, uint32_t bitlen); + /*!\fn void phy_viterbi_dot11_sse2(int8_t *y, uint8_t *decoded_bytes, uint16_t n,int offset,int traceback) \brief This routine performs a SIMD optmized Viterbi decoder for the 802.11 64-state convolutional code. It can be run in segments with final trace back after last segment. @@ -422,4 +438,8 @@ uint32_t crcbit (uint8_t * , int16_t reverseBits(int32_t ,int32_t); void phy_viterbi_dot11(int8_t *,uint8_t *,uint16_t); +decoder_if_t phy_threegpplte_turbo_decoder; +decoder_if_t phy_threegpplte_turbo_decoder8; +decoder_if_t phy_threegpplte_turbo_decoder16; + #endif diff --git a/openair1/PHY/CODING/coding_extern.h b/openair1/PHY/CODING/coding_extern.h index 0d3e2ccb02..12aeb3af05 100644 --- a/openair1/PHY/CODING/coding_extern.h +++ b/openair1/PHY/CODING/coding_extern.h @@ -19,10 +19,9 @@ * contact@openairinterface.org */ -extern unsigned short f1f2mat_old[2*188]; extern double cpuf; -extern decoder_if_t decoder16; -extern decoder_if_t decoder8; -extern encoder_if_t encoder; +extern decoder_if_t *decoder16; +extern decoder_if_t *decoder8; +extern encoder_if_t *encoder; extern int load_codinglib(void); -extern int free_codinglib(void); +extern void free_codinglib(void); diff --git a/openair1/PHY/CODING/coding_load.c b/openair1/PHY/CODING/coding_load.c index 76ab04f220..a895d9648e 100644 --- a/openair1/PHY/CODING/coding_load.c +++ b/openair1/PHY/CODING/coding_load.c @@ -35,6 +35,7 @@ #include "PHY/defs_common.h" #include "PHY/phy_extern.h" +#include "PHY/CODING/coding_extern.h" #include "common/utils/load_module_shlib.h" #include "common/utils/telnetsrv/telnetsrv.h" @@ -55,28 +56,26 @@ loader_shlibfunc_t shlib_fdesc[DECODE_NUM_FPTR]; /* encoding decoding functions pointers, filled here and used when encoding/decoding */ /*defined as extern in PHY?CODING/extern.h */ -decoder_if_t decoder16; -decoder_if_t decoder8; -encoder_if_t encoder; +decoder_if_t *decoder16; +decoder_if_t *decoder8; +encoder_if_t *encoder; extern int _may_i_use_cpu_feature(unsigned __int64); -uint8_t nodecod(short *y, - short *y2, - unsigned char *decoded_bytes, - unsigned char *decoded_bytes2, - unsigned short n, - unsigned short f1, - unsigned short f2, - unsigned char max_iterations, - unsigned char crc_type, - unsigned char F, - time_stats_t *init_stats, - time_stats_t *alpha_stats, - time_stats_t *beta_stats, - time_stats_t *gamma_stats, - time_stats_t *ext_stats, - time_stats_t *intl1_stats, - time_stats_t *intl2_stats) +uint8_t nodecod(int16_t *y, + int16_t *y2, + uint8_t *decoded_bytes, + uint8_t *decoded_bytes2, + uint16_t n, + uint8_t max_iterations, + uint8_t crc_type, + uint8_t F, + time_stats_t *init_stats, + time_stats_t *alpha_stats, + time_stats_t *beta_stats, + time_stats_t *gamma_stats, + time_stats_t *ext_stats, + time_stats_t *intl1_stats, + time_stats_t *intl2_stats) { return max_iterations+1; }; @@ -86,24 +85,24 @@ void decoding_setmode (int mode) { case MODE_DECODE_NONE: decoder8=nodecod; decoder16=nodecod; - encoder=(encoder_if_t)shlib_fdesc[ENCODE_C_FPTRIDX].fptr; + encoder=(encoder_if_t*)shlib_fdesc[ENCODE_C_FPTRIDX].fptr; break; case MODE_DECODE_C: - decoder16=(decoder_if_t)shlib_fdesc[DECODE_TD_C_FPTRIDX].fptr; - decoder8=(decoder_if_t)shlib_fdesc[DECODE_TD_C_FPTRIDX].fptr; - encoder=(encoder_if_t)shlib_fdesc[ENCODE_C_FPTRIDX].fptr; + decoder16=(decoder_if_t*)shlib_fdesc[DECODE_TD_C_FPTRIDX].fptr; + decoder8=(decoder_if_t*)shlib_fdesc[DECODE_TD_C_FPTRIDX].fptr; + encoder=(encoder_if_t*)shlib_fdesc[ENCODE_C_FPTRIDX].fptr; break; case MODE_DECODE_AVX2: - decoder16=(decoder_if_t)shlib_fdesc[DECODE_TD16_AVX2_FPTRIDX].fptr; - decoder8=(decoder_if_t)shlib_fdesc[DECODE_TD8_SSE_FPTRIDX].fptr; - encoder=(encoder_if_t)shlib_fdesc[ENCODE_SSE_FPTRIDX].fptr; + decoder16=(decoder_if_t*)shlib_fdesc[DECODE_TD16_AVX2_FPTRIDX].fptr; + decoder8=(decoder_if_t*)shlib_fdesc[DECODE_TD8_SSE_FPTRIDX].fptr; + encoder=(encoder_if_t*)shlib_fdesc[ENCODE_SSE_FPTRIDX].fptr; break; default: mode=MODE_DECODE_SSE; case MODE_DECODE_SSE: - decoder8=(decoder_if_t)shlib_fdesc[DECODE_TD8_SSE_FPTRIDX].fptr; - decoder16=(decoder_if_t)shlib_fdesc[DECODE_TD16_SSE_FPTRIDX].fptr; - encoder=(encoder_if_t)shlib_fdesc[ENCODE_SSE_FPTRIDX].fptr; + decoder8=(decoder_if_t*)shlib_fdesc[DECODE_TD8_SSE_FPTRIDX].fptr; + decoder16=(decoder_if_t*)shlib_fdesc[DECODE_TD16_SSE_FPTRIDX].fptr; + encoder=(encoder_if_t*)shlib_fdesc[ENCODE_SSE_FPTRIDX].fptr; break; } curmode=mode; diff --git a/openair1/PHY/CODING/coding_vars.h b/openair1/PHY/CODING/coding_vars.h deleted file mode 100644 index 944ea08d0c..0000000000 --- a/openair1/PHY/CODING/coding_vars.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -#include "lte_interleaver.h" -#include "lte_interleaver2.h" diff --git a/openair1/PHY/CODING/crc_byte.c b/openair1/PHY/CODING/crc_byte.c index 0e1f0e065f..f2f7e4e5c7 100644 --- a/openair1/PHY/CODING/crc_byte.c +++ b/openair1/PHY/CODING/crc_byte.c @@ -30,185 +30,196 @@ Modified in June, 2001, to include the length non multiple of 8 */ +#include "PHY/types.h" -#include "coding_defs.h" +// For initialization && verification purposes, bit by bit implementation with any polynomial +// The first bit is in the MSB of each byte + +// Reference 38.212 V15.1.1 Section 5.1 (36-212 v8.6.0 , pp 8-9) +// The highest degree is set by default +/** 1000 0110 0100 1100 1111 1011 D^24 + D^23 + D^18 + D^17 + D^14 + D^11 + D^10 + D^7 + D^6 + D^5 + D^4 + D^3 + D + 1 */ +static const uint32_t poly24a = 0x864cfb00; +/** 1000 0000 0000 0000 0110 0011 D^24 + D^23 + D^6 + D^5 + D + 1 */ +static const uint32_t poly24b = 0x80006300; +/** 0001 0000 0010 0001 D^16 + D^12 + D^5 + 1 */ +static const uint32_t poly16 = 0x10210000; +/** 1000 0000 1111 D^12 + D^11 + D^3 + D^2 + D + 1 */ +static const uint32_t poly12 = 0x80F00000; +/** 1001 1011 D^8 + D^7 + D^4 + D^3 + D + 1 */ +static const uint32_t poly8 = 0x9B000000; + +// The following arrays are generated with the function 'crcTableInit' +/** Encoding table for CRC 24A */ +static const uint32_t crc24aTable[256] = {0x0, 0x864cfb00, 0x8ad50d00, 0xc99f600, 0x93e6e100, 0x15aa1a00, 0x1933ec00, 0x9f7f1700, 0xa1813900, 0x27cdc200, 0x2b543400, 0xad18cf00, 0x3267d800, 0xb42b2300, 0xb8b2d500, 0x3efe2e00, 0xc54e8900, 0x43027200, 0x4f9b8400, 0xc9d77f00, 0x56a86800, 0xd0e49300, 0xdc7d6500, 0x5a319e00, 0x64cfb000, 0xe2834b00, 0xee1abd00, 0x68564600, 0xf7295100, 0x7165aa00, 0x7dfc5c00, 0xfbb0a700, 0xcd1e900, 0x8a9d1200, 0x8604e400, 0x481f00, 0x9f370800, 0x197bf300, 0x15e20500, 0x93aefe00, 0xad50d000, 0x2b1c2b00, 0x2785dd00, 0xa1c92600, 0x3eb63100, 0xb8faca00, 0xb4633c00, 0x322fc700, 0xc99f6000, 0x4fd39b00, 0x434a6d00, 0xc5069600, 0x5a798100, 0xdc357a00, 0xd0ac8c00, 0x56e07700, 0x681e5900, 0xee52a200, 0xe2cb5400, 0x6487af00, 0xfbf8b800, 0x7db44300, 0x712db500, 0xf7614e00, 0x19a3d200, 0x9fef2900, 0x9376df00, 0x153a2400, 0x8a453300, 0xc09c800, 0x903e00, 0x86dcc500, 0xb822eb00, 0x3e6e1000, 0x32f7e600, 0xb4bb1d00, 0x2bc40a00, 0xad88f100, 0xa1110700, 0x275dfc00, 0xdced5b00, 0x5aa1a000, 0x56385600, 0xd074ad00, 0x4f0bba00, 0xc9474100, 0xc5deb700, 0x43924c00, 0x7d6c6200, 0xfb209900, 0xf7b96f00, 0x71f59400, 0xee8a8300, 0x68c67800, 0x645f8e00, 0xe2137500, 0x15723b00, 0x933ec000, 0x9fa73600, 0x19ebcd00, 0x8694da00, 0xd82100, 0xc41d700, 0x8a0d2c00, 0xb4f30200, 0x32bff900, 0x3e260f00, 0xb86af400, 0x2715e300, 0xa1591800, 0xadc0ee00, 0x2b8c1500, 0xd03cb200, 0x56704900, 0x5ae9bf00, 0xdca54400, 0x43da5300, 0xc596a800, 0xc90f5e00, 0x4f43a500, 0x71bd8b00, 0xf7f17000, 0xfb688600, 0x7d247d00, 0xe25b6a00, 0x64179100, 0x688e6700, 0xeec29c00, 0x3347a400, 0xb50b5f00, 0xb992a900, 0x3fde5200, 0xa0a14500, 0x26edbe00, 0x2a744800, 0xac38b300, 0x92c69d00, 0x148a6600, 0x18139000, 0x9e5f6b00, 0x1207c00, 0x876c8700, 0x8bf57100, 0xdb98a00, 0xf6092d00, 0x7045d600, 0x7cdc2000, 0xfa90db00, 0x65efcc00, 0xe3a33700, 0xef3ac100, 0x69763a00, 0x57881400, 0xd1c4ef00, 0xdd5d1900, 0x5b11e200, 0xc46ef500, 0x42220e00, 0x4ebbf800, 0xc8f70300, 0x3f964d00, 0xb9dab600, 0xb5434000, 0x330fbb00, 0xac70ac00, 0x2a3c5700, 0x26a5a100, 0xa0e95a00, 0x9e177400, 0x185b8f00, 0x14c27900, 0x928e8200, 0xdf19500, 0x8bbd6e00, 0x87249800, 0x1686300, 0xfad8c400, 0x7c943f00, 0x700dc900, 0xf6413200, 0x693e2500, 0xef72de00, 0xe3eb2800, 0x65a7d300, 0x5b59fd00, 0xdd150600, 0xd18cf000, 0x57c00b00, 0xc8bf1c00, 0x4ef3e700, 0x426a1100, 0xc426ea00, 0x2ae47600, 0xaca88d00, 0xa0317b00, 0x267d8000, 0xb9029700, 0x3f4e6c00, 0x33d79a00, 0xb59b6100, 0x8b654f00, 0xd29b400, 0x1b04200, 0x87fcb900, 0x1883ae00, 0x9ecf5500, 0x9256a300, 0x141a5800, 0xefaaff00, 0x69e60400, 0x657ff200, 0xe3330900, 0x7c4c1e00, 0xfa00e500, 0xf6991300, 0x70d5e800, 0x4e2bc600, 0xc8673d00, 0xc4fecb00, 0x42b23000, 0xddcd2700, 0x5b81dc00, 0x57182a00, 0xd154d100, 0x26359f00, 0xa0796400, 0xace09200, 0x2aac6900, 0xb5d37e00, 0x339f8500, 0x3f067300, 0xb94a8800, 0x87b4a600, 0x1f85d00, 0xd61ab00, 0x8b2d5000, 0x14524700, 0x921ebc00, 0x9e874a00, 0x18cbb100, 0xe37b1600, 0x6537ed00, 0x69ae1b00, 0xefe2e000, 0x709df700, 0xf6d10c00, 0xfa48fa00, 0x7c040100, 0x42fa2f00, 0xc4b6d400, 0xc82f2200, 0x4e63d900, 0xd11cce00, 0x57503500, 0x5bc9c300, 0xdd853800}; + +/** Encoding table for CRC 24B */ +static const uint32_t crc24bTable[256] = {0x0, 0x80006300, 0x8000a500, 0xc600, 0x80012900, 0x14a00, 0x18c00, 0x8001ef00, 0x80023100, 0x25200, 0x29400, 0x8002f700, 0x31800, 0x80037b00, 0x8003bd00, 0x3de00, 0x80040100, 0x46200, 0x4a400, 0x8004c700, 0x52800, 0x80054b00, 0x80058d00, 0x5ee00, 0x63000, 0x80065300, 0x80069500, 0x6f600, 0x80071900, 0x77a00, 0x7bc00, 0x8007df00, 0x80086100, 0x80200, 0x8c400, 0x8008a700, 0x94800, 0x80092b00, 0x8009ed00, 0x98e00, 0xa5000, 0x800a3300, 0x800af500, 0xa9600, 0x800b7900, 0xb1a00, 0xbdc00, 0x800bbf00, 0xc6000, 0x800c0300, 0x800cc500, 0xca600, 0x800d4900, 0xd2a00, 0xdec00, 0x800d8f00, 0x800e5100, 0xe3200, 0xef400, 0x800e9700, 0xf7800, 0x800f1b00, 0x800fdd00, 0xfbe00, 0x8010a100, 0x10c200, 0x100400, 0x80106700, 0x118800, 0x8011eb00, 0x80112d00, 0x114e00, 0x129000, 0x8012f300, 0x80123500, 0x125600, 0x8013b900, 0x13da00, 0x131c00, 0x80137f00, 0x14a000, 0x8014c300, 0x80140500, 0x146600, 0x80158900, 0x15ea00, 0x152c00, 0x80154f00, 0x80169100, 0x16f200, 0x163400, 0x80165700, 0x17b800, 0x8017db00, 0x80171d00, 0x177e00, 0x18c000, 0x8018a300, 0x80186500, 0x180600, 0x8019e900, 0x198a00, 0x194c00, 0x80192f00, 0x801af100, 0x1a9200, 0x1a5400, 0x801a3700, 0x1bd800, 0x801bbb00, 0x801b7d00, 0x1b1e00, 0x801cc100, 0x1ca200, 0x1c6400, 0x801c0700, 0x1de800, 0x801d8b00, 0x801d4d00, 0x1d2e00, 0x1ef000, 0x801e9300, 0x801e5500, 0x1e3600, 0x801fd900, 0x1fba00, 0x1f7c00, 0x801f1f00, 0x80212100, 0x214200, 0x218400, 0x8021e700, 0x200800, 0x80206b00, 0x8020ad00, 0x20ce00, 0x231000, 0x80237300, 0x8023b500, 0x23d600, 0x80223900, 0x225a00, 0x229c00, 0x8022ff00, 0x252000, 0x80254300, 0x80258500, 0x25e600, 0x80240900, 0x246a00, 0x24ac00, 0x8024cf00, 0x80271100, 0x277200, 0x27b400, 0x8027d700, 0x263800, 0x80265b00, 0x80269d00, 0x26fe00, 0x294000, 0x80292300, 0x8029e500, 0x298600, 0x80286900, 0x280a00, 0x28cc00, 0x8028af00, 0x802b7100, 0x2b1200, 0x2bd400, 0x802bb700, 0x2a5800, 0x802a3b00, 0x802afd00, 0x2a9e00, 0x802d4100, 0x2d2200, 0x2de400, 0x802d8700, 0x2c6800, 0x802c0b00, 0x802ccd00, 0x2cae00, 0x2f7000, 0x802f1300, 0x802fd500, 0x2fb600, 0x802e5900, 0x2e3a00, 0x2efc00, 0x802e9f00, 0x318000, 0x8031e300, 0x80312500, 0x314600, 0x8030a900, 0x30ca00, 0x300c00, 0x80306f00, 0x8033b100, 0x33d200, 0x331400, 0x80337700, 0x329800, 0x8032fb00, 0x80323d00, 0x325e00, 0x80358100, 0x35e200, 0x352400, 0x80354700, 0x34a800, 0x8034cb00, 0x80340d00, 0x346e00, 0x37b000, 0x8037d300, 0x80371500, 0x377600, 0x80369900, 0x36fa00, 0x363c00, 0x80365f00, 0x8039e100, 0x398200, 0x394400, 0x80392700, 0x38c800, 0x8038ab00, 0x80386d00, 0x380e00, 0x3bd000, 0x803bb300, 0x803b7500, 0x3b1600, 0x803af900, 0x3a9a00, 0x3a5c00, 0x803a3f00, 0x3de000, 0x803d8300, 0x803d4500, 0x3d2600, 0x803cc900, 0x3caa00, 0x3c6c00, 0x803c0f00, 0x803fd100, 0x3fb200, 0x3f7400, 0x803f1700, 0x3ef800, 0x803e9b00, 0x803e5d00, 0x3e3e00}; + +/** Encoding table for CRC 16 */ +static const uint16_t crc16Table[256] = {0x0, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6, 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d, 0x3653, 0x2672, 0x1611, 0x630, 0x76d7, 0x66f6, 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x840, 0x1861, 0x2802, 0x3823, 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0xa50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a, 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0xc60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0xe70, 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0xa1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067, 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e, 0x2b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d, 0x34e2, 0x24c3, 0x14a0, 0x481, 0x7466, 0x6447, 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2, 0x691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634, 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x8e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a, 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0xaf1, 0x1ad0, 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0xcc1, 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0xed1, 0x1ef0}; + +/** Encoding table for CRC 12 */ +static const uint16_t crc12Table[256] = {0x0, 0x80f0, 0x8110, 0x1e0, 0x82d0, 0x220, 0x3c0, 0x8330, 0x8550, 0x5a0, 0x440, 0x84b0, 0x780, 0x8770, 0x8690, 0x660, 0x8a50, 0xaa0, 0xb40, 0x8bb0, 0x880, 0x8870, 0x8990, 0x960, 0xf00, 0x8ff0, 0x8e10, 0xee0, 0x8dd0, 0xd20, 0xcc0, 0x8c30, 0x9450, 0x14a0, 0x1540, 0x95b0, 0x1680, 0x9670, 0x9790, 0x1760, 0x1100, 0x91f0, 0x9010, 0x10e0, 0x93d0, 0x1320, 0x12c0, 0x9230, 0x1e00, 0x9ef0, 0x9f10, 0x1fe0, 0x9cd0, 0x1c20, 0x1dc0, 0x9d30, 0x9b50, 0x1ba0, 0x1a40, 0x9ab0, 0x1980, 0x9970, 0x9890, 0x1860, 0xa850, 0x28a0, 0x2940, 0xa9b0, 0x2a80, 0xaa70, 0xab90, 0x2b60, 0x2d00, 0xadf0, 0xac10, 0x2ce0, 0xafd0, 0x2f20, 0x2ec0, 0xae30, 0x2200, 0xa2f0, 0xa310, 0x23e0, 0xa0d0, 0x2020, 0x21c0, 0xa130, 0xa750, 0x27a0, 0x2640, 0xa6b0, 0x2580, 0xa570, 0xa490, 0x2460, 0x3c00, 0xbcf0, 0xbd10, 0x3de0, 0xbed0, 0x3e20, 0x3fc0, 0xbf30, 0xb950, 0x39a0, 0x3840, 0xb8b0, 0x3b80, 0xbb70, 0xba90, 0x3a60, 0xb650, 0x36a0, 0x3740, 0xb7b0, 0x3480, 0xb470, 0xb590, 0x3560, 0x3300, 0xb3f0, 0xb210, 0x32e0, 0xb1d0, 0x3120, 0x30c0, 0xb030, 0xd050, 0x50a0, 0x5140, 0xd1b0, 0x5280, 0xd270, 0xd390, 0x5360, 0x5500, 0xd5f0, 0xd410, 0x54e0, 0xd7d0, 0x5720, 0x56c0, 0xd630, 0x5a00, 0xdaf0, 0xdb10, 0x5be0, 0xd8d0, 0x5820, 0x59c0, 0xd930, 0xdf50, 0x5fa0, 0x5e40, 0xdeb0, 0x5d80, 0xdd70, 0xdc90, 0x5c60, 0x4400, 0xc4f0, 0xc510, 0x45e0, 0xc6d0, 0x4620, 0x47c0, 0xc730, 0xc150, 0x41a0, 0x4040, 0xc0b0, 0x4380, 0xc370, 0xc290, 0x4260, 0xce50, 0x4ea0, 0x4f40, 0xcfb0, 0x4c80, 0xcc70, 0xcd90, 0x4d60, 0x4b00, 0xcbf0, 0xca10, 0x4ae0, 0xc9d0, 0x4920, 0x48c0, 0xc830, 0x7800, 0xf8f0, 0xf910, 0x79e0, 0xfad0, 0x7a20, 0x7bc0, 0xfb30, 0xfd50, 0x7da0, 0x7c40, 0xfcb0, 0x7f80, 0xff70, 0xfe90, 0x7e60, 0xf250, 0x72a0, 0x7340, 0xf3b0, 0x7080, 0xf070, 0xf190, 0x7160, 0x7700, 0xf7f0, 0xf610, 0x76e0, 0xf5d0, 0x7520, 0x74c0, 0xf430, 0xec50, 0x6ca0, 0x6d40, 0xedb0, 0x6e80, 0xee70, 0xef90, 0x6f60, 0x6900, 0xe9f0, 0xe810, 0x68e0, 0xebd0, 0x6b20, 0x6ac0, 0xea30, 0x6600, 0xe6f0, 0xe710, 0x67e0, 0xe4d0, 0x6420, 0x65c0, 0xe530, 0xe350, 0x63a0, 0x6240, 0xe2b0, 0x6180, 0xe170, 0xe090, 0x6060}; + +/** Encoding table for CRC 8 */ +static const uint8_t crc8Table[256] = {0x0, 0x9b, 0xad, 0x36, 0xc1, 0x5a, 0x6c, 0xf7, 0x19, 0x82, 0xb4, 0x2f, 0xd8, 0x43, 0x75, 0xee, 0x32, 0xa9, 0x9f, 0x4, 0xf3, 0x68, 0x5e, 0xc5, 0x2b, 0xb0, 0x86, 0x1d, 0xea, 0x71, 0x47, 0xdc, 0x64, 0xff, 0xc9, 0x52, 0xa5, 0x3e, 0x8, 0x93, 0x7d, 0xe6, 0xd0, 0x4b, 0xbc, 0x27, 0x11, 0x8a, 0x56, 0xcd, 0xfb, 0x60, 0x97, 0xc, 0x3a, 0xa1, 0x4f, 0xd4, 0xe2, 0x79, 0x8e, 0x15, 0x23, 0xb8, 0xc8, 0x53, 0x65, 0xfe, 0x9, 0x92, 0xa4, 0x3f, 0xd1, 0x4a, 0x7c, 0xe7, 0x10, 0x8b, 0xbd, 0x26, 0xfa, 0x61, 0x57, 0xcc, 0x3b, 0xa0, 0x96, 0xd, 0xe3, 0x78, 0x4e, 0xd5, 0x22, 0xb9, 0x8f, 0x14, 0xac, 0x37, 0x1, 0x9a, 0x6d, 0xf6, 0xc0, 0x5b, 0xb5, 0x2e, 0x18, 0x83, 0x74, 0xef, 0xd9, 0x42, 0x9e, 0x5, 0x33, 0xa8, 0x5f, 0xc4, 0xf2, 0x69, 0x87, 0x1c, 0x2a, 0xb1, 0x46, 0xdd, 0xeb, 0x70, 0xb, 0x90, 0xa6, 0x3d, 0xca, 0x51, 0x67, 0xfc, 0x12, 0x89, 0xbf, 0x24, 0xd3, 0x48, 0x7e, 0xe5, 0x39, 0xa2, 0x94, 0xf, 0xf8, 0x63, 0x55, 0xce, 0x20, 0xbb, 0x8d, 0x16, 0xe1, 0x7a, 0x4c, 0xd7, 0x6f, 0xf4, 0xc2, 0x59, 0xae, 0x35, 0x3, 0x98, 0x76, 0xed, 0xdb, 0x40, 0xb7, 0x2c, 0x1a, 0x81, 0x5d, 0xc6, 0xf0, 0x6b, 0x9c, 0x7, 0x31, 0xaa, 0x44, 0xdf, 0xe9, 0x72, 0x85, 0x1e, 0x28, 0xb3, 0xc3, 0x58, 0x6e, 0xf5, 0x2, 0x99, 0xaf, 0x34, 0xda, 0x41, 0x77, 0xec, 0x1b, 0x80, 0xb6, 0x2d, 0xf1, 0x6a, 0x5c, 0xc7, 0x30, 0xab, 0x9d, 0x6, 0xe8, 0x73, 0x45, 0xde, 0x29, 0xb2, 0x84, 0x1f, 0xa7, 0x3c, 0xa, 0x91, 0x66, 0xfd, 0xcb, 0x50, 0xbe, 0x25, 0x13, 0x88, 0x7f, 0xe4, 0xd2, 0x49, 0x95, 0xe, 0x38, 0xa3, 0x54, 0xcf, 0xf9, 0x62, 0x8c, 0x17, 0x21, 0xba, 0x4d, 0xd6, 0xe0, 0x7b}; -/*ref 36-212 v8.6.0 , pp 8-9 */ -/* the highest degree is set by default */ -unsigned int poly24a = 0x864cfb00; //1000 0110 0100 1100 1111 1011 D^24 + D^23 + D^18 + D^17 + D^14 + D^11 + D^10 + D^7 + D^6 + D^5 + D^4 + D^3 + D + 1 -unsigned int poly24b = 0x80006300; // 1000 0000 0000 0000 0110 0011 D^24 + D^23 + D^6 + D^5 + D + 1 -unsigned int poly16 = 0x10210000; // 0001 0000 0010 0001 D^16 + D^12 + D^5 + 1 -unsigned int poly12 = 0x80F00000; // 1000 0000 1111 D^12 + D^11 + D^3 + D^2 + D + 1 -unsigned int poly8 = 0x9B000000; // 1001 1011 D^8 + D^7 + D^4 + D^3 + D + 1 -/********************************************************* - -For initialization && verification purposes, - bit by bit implementation with any polynomial - -The first bit is in the MSB of each byte - -*********************************************************/ -unsigned int -crcbit (unsigned char * inputptr, int octetlen, unsigned int poly) +uint32_t crcbit (uint8_t * inputptr, int32_t octetlen, uint32_t poly) { - unsigned int i, crc = 0, c; + uint32_t i; + uint32_t crc = 0; + uint32_t c; - while (octetlen-- > 0) { - c = (*inputptr++) << 24; + while (octetlen-- > 0) + { + c = (*inputptr++) << 24; - for (i = 8; i != 0; i--) { - if ((1 << 31) & (c ^ crc)) - crc = (crc << 1) ^ poly; - else - crc <<= 1; + for (i = 8; i != 0; i--) + { + if ( (1 << 31) & (c ^ crc) ) + { + crc = (crc << 1) ^ poly; + } + else + { + crc <<= 1; + } - c <<= 1; + c <<= 1; + } } - } - return crc; + return crc; } -/********************************************************* - -crc table initialization - -*********************************************************/ -static unsigned int crc24aTable[256]; -static unsigned int crc24bTable[256]; -static unsigned short crc16Table[256]; -static unsigned short crc12Table[256]; -static unsigned char crc8Table[256]; +// CRC table initialization +/* void crcTableInit (void) { - unsigned char c = 0; + uint8_t c = 0; - do { - crc24aTable[c] = crcbit (&c, 1, poly24a); - crc24bTable[c] = crcbit (&c, 1, poly24b); - crc16Table[c] = (unsigned short) (crcbit (&c, 1, poly16) >> 16); - crc12Table[c] = (unsigned short) (crcbit (&c, 1, poly12) >> 16); - crc8Table[c] = (unsigned char) (crcbit (&c, 1, poly8) >> 24); - } while (++c); + do + { + crc24aTable[c] = crcbit (&c, 1, poly24a); + crc24bTable[c] = crcbit (&c, 1, poly24b); + crc16Table [c] = (uint16_t) (crcbit (&c, 1, poly16) >> 16); + crc12Table [c] = (uint16_t) (crcbit (&c, 1, poly12) >> 16); + crc8Table [c] = (uint8_t) (crcbit (&c, 1, poly8 ) >> 24); + } + while (++c); } -/********************************************************* +*/ -Byte by byte implementations, -assuming initial byte is 0 padded (in MSB) if necessary - -*********************************************************/ -unsigned int -crc24a (unsigned char * inptr, int bitlen) +// Byte by byte implementations, assuming initial byte is 0 padded (in MSB) if necessary +uint32_t crc24a (uint8_t * inptr, uint32_t bitlen) { + int32_t octetlen = bitlen / 8; + int32_t resbit = (bitlen % 8); + uint32_t crc = 0; - int octetlen, resbit; - unsigned int crc = 0; - octetlen = bitlen / 8; /* Change in octets */ - resbit = (bitlen % 8); + while (octetlen-- > 0) + { + crc = (crc << 8) ^ crc24aTable[(*inptr++) ^ (crc >> 24)]; + } - while (octetlen-- > 0) { - // printf("crc24a: in %x => crc %x\n",crc,*inptr); - crc = (crc << 8) ^ crc24aTable[(*inptr++) ^ (crc >> 24)]; - } + if (resbit > 0) + { + crc = (crc << resbit) ^ crc24aTable[((*inptr) >> (8 - resbit)) ^ (crc >> (32 - resbit))]; + } - if (resbit > 0) - crc = (crc << resbit) ^ crc24aTable[((*inptr) >> (8 - resbit)) ^ (crc >> (32 - resbit))]; - - return crc; + return crc; } -unsigned int crc24b (unsigned char * inptr, int bitlen) +uint32_t crc24b (uint8_t * inptr, uint32_t bitlen) { + int32_t octetlen = bitlen / 8; + int32_t resbit = (bitlen % 8); + uint32_t crc = 0; - int octetlen, resbit; - unsigned int crc = 0; - octetlen = bitlen / 8; /* Change in octets */ - resbit = (bitlen % 8); + while (octetlen-- > 0) + { + crc = (crc << 8) ^ crc24bTable[(*inptr++) ^ (crc >> 24)]; + } - while (octetlen-- > 0) { - // printf("crc24b: in %x => crc %x (%x)\n",crc,*inptr,crc24bTable[(*inptr) ^ (crc >> 24)]); - crc = (crc << 8) ^ crc24bTable[(*inptr++) ^ (crc >> 24)]; - } + if (resbit > 0) + { + crc = (crc << resbit) ^ crc24bTable[((*inptr) >> (8 - resbit)) ^ (crc >> (32 - resbit))]; + } - if (resbit > 0) - crc = (crc << resbit) ^ crc24bTable[((*inptr) >> (8 - resbit)) ^ (crc >> (32 - resbit))]; - - return crc; + return crc; } -unsigned int -crc16 (unsigned char * inptr, int bitlen) +uint32_t crc16 (uint8_t * inptr, uint32_t bitlen) { - int octetlen, resbit; - unsigned int crc = 0; - octetlen = bitlen / 8; /* Change in octets */ - resbit = (bitlen % 8); + int32_t octetlen = bitlen / 8; + int32_t resbit = (bitlen % 8); + uint32_t crc = 0; - while (octetlen-- > 0) { + while (octetlen-- > 0) + { + crc = (crc << 8) ^ (crc16Table[(*inptr++) ^ (crc >> 24)] << 16); + } - crc = (crc << 8) ^ (crc16Table[(*inptr++) ^ (crc >> 24)] << 16); - } + if (resbit > 0) + { + crc = (crc << resbit) ^ (crc16Table[((*inptr) >> (8 - resbit)) ^ (crc >> (32 - resbit))] << 16); + } - if (resbit > 0) - crc = (crc << resbit) ^ (crc16Table[((*inptr) >> (8 - resbit)) ^ (crc >> (32 - resbit))] << 16); - - return crc; + return crc; } -unsigned int -crc12 (unsigned char * inptr, int bitlen) +uint32_t crc12 (uint8_t * inptr, uint32_t bitlen) { - int octetlen, resbit; - unsigned int crc = 0; - octetlen = bitlen / 8; /* Change in octets */ - resbit = (bitlen % 8); + int32_t octetlen = bitlen / 8; + int32_t resbit = (bitlen % 8); + uint32_t crc = 0; - while (octetlen-- > 0) { - crc = (crc << 8) ^ (crc12Table[(*inptr++) ^ (crc >> 24)] << 16); - } + while (octetlen-- > 0) + { + crc = (crc << 8) ^ (crc12Table[(*inptr++) ^ (crc >> 24)] << 16); + } - if (resbit > 0) - crc = (crc << resbit) ^ (crc12Table[((*inptr) >> (8 - resbit)) ^ (crc >> (32 - resbit))] << 16); + if (resbit > 0) + { + crc = (crc << resbit) ^ (crc12Table[((*inptr) >> (8 - resbit)) ^ (crc >> (32 - resbit))] << 16); + } - return crc; + return crc; } -unsigned int -crc8 (unsigned char * inptr, int bitlen) +uint32_t crc8 (uint8_t * inptr, uint32_t bitlen) { - int octetlen, resbit; - unsigned int crc = 0; - octetlen = bitlen / 8; /* Change in octets */ - resbit = (bitlen % 8); + int32_t octetlen = bitlen / 8; + int32_t resbit = (bitlen % 8); + uint32_t crc = 0; - while (octetlen-- > 0) { - crc = crc8Table[(*inptr++) ^ (crc >> 24)] << 24; - } + while (octetlen-- > 0) + { + crc = crc8Table[(*inptr++) ^ (crc >> 24)] << 24; + } - if (resbit > 0) - crc = (crc << resbit) ^ (crc8Table[((*inptr) >> (8 - resbit)) ^ (crc >> (32 - resbit))] << 24); + if (resbit > 0) + { + crc = (crc << resbit) ^ (crc8Table[((*inptr) >> (8 - resbit)) ^ (crc >> (32 - resbit))] << 24); + } - return crc; + return crc; } #ifdef DEBUG_CRC -/*******************************************************************/ -/** - Test code -********************************************************************/ +// Test code #include main() { - unsigned char test[] = "Thebigredfox"; - crcTableInit(); - printf("%x\n", crcbit(test, sizeof(test) - 1, poly24)); - printf("%x\n", crc24(test, (sizeof(test) - 1)*8)); - printf("%x\n", crcbit(test, sizeof(test) - 1, poly8)); - printf("%x\n", crc8(test, (sizeof(test) - 1)*8)); + unsigned char test[] = "Thebigredfox"; + crcTableInit(); + printf("%x\n", crcbit(test, sizeof(test) - 1, poly24)); + printf("%x\n", crc24 (test, (sizeof(test) - 1)*8)); + printf("%x\n", crcbit(test, sizeof(test) - 1, poly8)); + printf("%x\n", crc8 (test, (sizeof(test) - 1)*8)); } #endif - diff --git a/openair1/PHY/CODING/extern_3GPPinterleaver.h b/openair1/PHY/CODING/extern_3GPPinterleaver.h deleted file mode 100644 index 007c1fecc3..0000000000 --- a/openair1/PHY/CODING/extern_3GPPinterleaver.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -typedef struct interleaver_codebook { - unsigned long nb_bits; - unsigned short f1; - unsigned short f2; - unsigned int beg_index; -} t_interleaver_codebook; -#ifndef INCL_INTERLEAVE -extern t_interleaver_codebook f1f2mat[]; -extern short il_tb[]; -extern short reverse_il_tl[]; -#endif diff --git a/openair1/PHY/CODING/lte_interleaver.h b/openair1/PHY/CODING/lte_interleaver.h deleted file mode 100644 index fbf26a8e1f..0000000000 --- a/openair1/PHY/CODING/lte_interleaver.h +++ /dev/null @@ -1,710716 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -#ifndef __LTE_INTERLEAVER_H -#define __LTE_INTERLEAVER_H -#define INCL_INTERLEAVE -#include "extern_3GPPinterleaver.h" -t_interleaver_codebook f1f2mat[188] = { - { 40, 3, 10, 0 }, - { 48, 7, 12, 40 }, - { 56, 19, 42, 88 }, - { 64, 7, 16, 144 }, - { 72, 7, 18, 208 }, - { 80, 11, 20, 280 }, - { 88, 5, 22, 360 }, - { 96, 11, 24, 448 }, - { 104, 7, 26, 544 }, - { 112, 41, 84, 648 }, - { 120, 103, 90, 760 }, - { 128, 15, 32, 880 }, - { 136, 9, 34, 1008 }, - { 144, 17, 108, 1144 }, - { 152, 9, 38, 1288 }, - { 160, 21, 120, 1440 }, - { 168, 101, 84, 1600 }, - { 176, 21, 44, 1768 }, - { 184, 57, 46, 1944 }, - { 192, 23, 48, 2128 }, - { 200, 13, 50, 2320 }, - { 208, 27, 52, 2520 }, - { 216, 11, 36, 2728 }, - { 224, 27, 56, 2944 }, - { 232, 85, 58, 3168 }, - { 240, 29, 60, 3400 }, - { 248, 33, 62, 3640 }, - { 256, 15, 32, 3888 }, - { 264, 17, 198, 4144 }, - { 272, 33, 68, 4408 }, - { 280, 103, 210, 4680 }, - { 288, 19, 36, 4960 }, - { 296, 19, 74, 5248 }, - { 304, 37, 76, 5544 }, - { 312, 19, 78, 5848 }, - { 320, 21, 120, 6160 }, - { 328, 21, 82, 6480 }, - { 336, 115, 84, 6808 }, - { 344, 193, 86, 7144 }, - { 352, 21, 44, 7488 }, - { 360, 133, 90, 7840 }, - { 368, 81, 46, 8200 }, - { 376, 45, 94, 8568 }, - { 384, 23, 48, 8944 }, - { 392, 243, 98, 9328 }, - { 400, 151, 40, 9720 }, - { 408, 155, 102, 10120 }, - { 416, 25, 52, 10528 }, - { 424, 51, 106, 10944 }, - { 432, 47, 72, 11368 }, - { 440, 91, 110, 11800 }, - { 448, 29, 168, 12240 }, - { 456, 29, 114, 12688 }, - { 464, 247, 58, 13144 }, - { 472, 29, 118, 13608 }, - { 480, 89, 180, 14080 }, - { 488, 91, 122, 14560 }, - { 496, 157, 62, 15048 }, - { 504, 55, 84, 15544 }, - { 512, 31, 64, 16048 }, - { 528, 17, 66, 16560 }, - { 544, 35, 68, 17088 }, - { 560, 227, 420, 17632 }, - { 576, 65, 96, 18192 }, - { 592, 19, 74, 18768 }, - { 608, 37, 76, 19360 }, - { 624, 41, 234, 19968 }, - { 640, 39, 80, 20592 }, - { 656, 185, 82, 21232 }, - { 672, 43, 252, 21888 }, - { 688, 21, 86, 22560 }, - { 704, 155, 44, 23248 }, - { 720, 79, 120, 23952 }, - { 736, 139, 92, 24672 }, - { 752, 23, 94, 25408 }, - { 768, 217, 48, 26160 }, - { 784, 25, 98, 26928 }, - { 800, 17, 80, 27712 }, - { 816, 127, 102, 28512 }, - { 832, 25, 52, 29328 }, - { 848, 239, 106, 30160 }, - { 864, 17, 48, 31008 }, - { 880, 137, 110, 31872 }, - { 896, 215, 112, 32752 }, - { 912, 29, 114, 33648 }, - { 928, 15, 58, 34560 }, - { 944, 147, 118, 35488 }, - { 960, 29, 60, 36432 }, - { 976, 59, 122, 37392 }, - { 992, 65, 124, 38368 }, - { 1008, 55, 84, 39360 }, - { 1024, 31, 64, 40368 }, - { 1056, 17, 66, 41392 }, - { 1088, 171, 204, 42448 }, - { 1120, 67, 140, 43536 }, - { 1152, 35, 72, 44656 }, - { 1184, 19, 74, 45808 }, - { 1216, 39, 76, 46992 }, - { 1248, 19, 78, 48208 }, - { 1280, 199, 240, 49456 }, - { 1312, 21, 82, 50736 }, - { 1344, 211, 252, 52048 }, - { 1376, 21, 86, 53392 }, - { 1408, 43, 88, 54768 }, - { 1440, 149, 60, 56176 }, - { 1472, 45, 92, 57616 }, - { 1504, 49, 846, 59088 }, - { 1536, 71, 48, 60592 }, - { 1568, 13, 28, 62128 }, - { 1600, 17, 80, 63696 }, - { 1632, 25, 102, 65296 }, - { 1664, 183, 104, 66928 }, - { 1696, 55, 954, 68592 }, - { 1728, 127, 96, 70288 }, - { 1760, 27, 110, 72016 }, - { 1792, 29, 112, 73776 }, - { 1824, 29, 114, 75568 }, - { 1856, 57, 116, 77392 }, - { 1888, 45, 354, 79248 }, - { 1920, 31, 120, 81136 }, - { 1952, 59, 610, 83056 }, - { 1984, 185, 124, 85008 }, - { 2016, 113, 420, 86992 }, - { 2048, 31, 64, 89008 }, - { 2112, 17, 66, 91056 }, - { 2176, 171, 136, 93168 }, - { 2240, 209, 420, 95344 }, - { 2304, 253, 216, 97584 }, - { 2368, 367, 444, 99888 }, - { 2432, 265, 456, 102256 }, - { 2496, 181, 468, 104688 }, - { 2560, 39, 80, 107184 }, - { 2624, 27, 164, 109744 }, - { 2688, 127, 504, 112368 }, - { 2752, 143, 172, 115056 }, - { 2816, 43, 88, 117808 }, - { 2880, 29, 300, 120624 }, - { 2944, 45, 92, 123504 }, - { 3008, 157, 188, 126448 }, - { 3072, 47, 96, 129456 }, - { 3136, 13, 28, 132528 }, - { 3200, 111, 240, 135664 }, - { 3264, 443, 204, 138864 }, - { 3328, 51, 104, 142128 }, - { 3392, 51, 212, 145456 }, - { 3456, 451, 192, 148848 }, - { 3520, 257, 220, 152304 }, - { 3584, 57, 336, 155824 }, - { 3648, 313, 228, 159408 }, - { 3712, 271, 232, 163056 }, - { 3776, 179, 236, 166768 }, - { 3840, 331, 120, 170544 }, - { 3904, 363, 244, 174384 }, - { 3968, 375, 248, 178288 }, - { 4032, 127, 168, 182256 }, - { 4096, 31, 64, 186288 }, - { 4160, 33, 130, 190384 }, - { 4224, 43, 264, 194544 }, - { 4288, 33, 134, 198768 }, - { 4352, 477, 408, 203056 }, - { 4416, 35, 138, 207408 }, - { 4480, 233, 280, 211824 }, - { 4544, 357, 142, 216304 }, - { 4608, 337, 480, 220848 }, - { 4672, 37, 146, 225456 }, - { 4736, 71, 444, 230128 }, - { 4800, 71, 120, 234864 }, - { 4864, 37, 152, 239664 }, - { 4928, 39, 462, 244528 }, - { 4992, 127, 234, 249456 }, - { 5056, 39, 158, 254448 }, - { 5120, 39, 80, 259504 }, - { 5184, 31, 96, 264624 }, - { 5248, 113, 902, 269808 }, - { 5312, 41, 166, 275056 }, - { 5376, 251, 336, 280368 }, - { 5440, 43, 170, 285744 }, - { 5504, 21, 86, 291184 }, - { 5568, 43, 174, 296688 }, - { 5632, 45, 176, 302256 }, - { 5696, 45, 178, 307888 }, - { 5760, 161, 120, 313584 }, - { 5824, 89, 182, 319344 }, - { 5888, 323, 184, 325168 }, - { 5952, 47, 186, 331056 }, - { 6016, 23, 94, 337008 }, - { 6080, 47, 190, 343024 }, - { 6144, 263, 480, 349104 }, -}; -short il_tb[ 355248 ] = { - 0 , - 13 , - 6 , - 19 , - 12 , - 25 , - 18 , - 31 , - 24 , - 37 , - 30 , - 3 , - 36 , - 9 , - 2 , - 15 , - 8 , - 21 , - 14 , - 27 , - 20 , - 33 , - 26 , - 39 , - 32 , - 5 , - 38 , - 11 , - 4 , - 17 , - 10 , - 23 , - 16 , - 29 , - 22 , - 35 , - 28 , - 1 , - 34 , - 7 , - 0 , - 19 , - 14 , - 33 , - 28 , - 47 , - 42 , - 13 , - 8 , - 27 , - 22 , - 41 , - 36 , - 7 , - 2 , - 21 , - 16 , - 35 , - 30 , - 1 , - 44 , - 15 , - 10 , - 29 , - 24 , - 43 , - 38 , - 9 , - 4 , - 23 , - 18 , - 37 , - 32 , - 3 , - 46 , - 17 , - 12 , - 31 , - 26 , - 45 , - 40 , - 11 , - 6 , - 25 , - 20 , - 39 , - 34 , - 5 , - 0 , - 5 , - 38 , - 43 , - 20 , - 25 , - 2 , - 7 , - 40 , - 45 , - 22 , - 27 , - 4 , - 9 , - 42 , - 47 , - 24 , - 29 , - 6 , - 11 , - 44 , - 49 , - 26 , - 31 , - 8 , - 13 , - 46 , - 51 , - 28 , - 33 , - 10 , - 15 , - 48 , - 53 , - 30 , - 35 , - 12 , - 17 , - 50 , - 55 , - 32 , - 37 , - 14 , - 19 , - 52 , - 1 , - 34 , - 39 , - 16 , - 21 , - 54 , - 3 , - 36 , - 41 , - 18 , - 23 , - 0 , - 23 , - 14 , - 37 , - 28 , - 51 , - 42 , - 1 , - 56 , - 15 , - 6 , - 29 , - 20 , - 43 , - 34 , - 57 , - 48 , - 7 , - 62 , - 21 , - 12 , - 35 , - 26 , - 49 , - 40 , - 63 , - 54 , - 13 , - 4 , - 27 , - 18 , - 41 , - 32 , - 55 , - 46 , - 5 , - 60 , - 19 , - 10 , - 33 , - 24 , - 47 , - 38 , - 61 , - 52 , - 11 , - 2 , - 25 , - 16 , - 39 , - 30 , - 53 , - 44 , - 3 , - 58 , - 17 , - 8 , - 31 , - 22 , - 45 , - 36 , - 59 , - 50 , - 9 , - 0 , - 25 , - 14 , - 39 , - 28 , - 53 , - 42 , - 67 , - 56 , - 9 , - 70 , - 23 , - 12 , - 37 , - 26 , - 51 , - 40 , - 65 , - 54 , - 7 , - 68 , - 21 , - 10 , - 35 , - 24 , - 49 , - 38 , - 63 , - 52 , - 5 , - 66 , - 19 , - 8 , - 33 , - 22 , - 47 , - 36 , - 61 , - 50 , - 3 , - 64 , - 17 , - 6 , - 31 , - 20 , - 45 , - 34 , - 59 , - 48 , - 1 , - 62 , - 15 , - 4 , - 29 , - 18 , - 43 , - 32 , - 57 , - 46 , - 71 , - 60 , - 13 , - 2 , - 27 , - 16 , - 41 , - 30 , - 55 , - 44 , - 69 , - 58 , - 11 , - 0 , - 31 , - 22 , - 53 , - 44 , - 75 , - 66 , - 17 , - 8 , - 39 , - 30 , - 61 , - 52 , - 3 , - 74 , - 25 , - 16 , - 47 , - 38 , - 69 , - 60 , - 11 , - 2 , - 33 , - 24 , - 55 , - 46 , - 77 , - 68 , - 19 , - 10 , - 41 , - 32 , - 63 , - 54 , - 5 , - 76 , - 27 , - 18 , - 49 , - 40 , - 71 , - 62 , - 13 , - 4 , - 35 , - 26 , - 57 , - 48 , - 79 , - 70 , - 21 , - 12 , - 43 , - 34 , - 65 , - 56 , - 7 , - 78 , - 29 , - 20 , - 51 , - 42 , - 73 , - 64 , - 15 , - 6 , - 37 , - 28 , - 59 , - 50 , - 1 , - 72 , - 23 , - 14 , - 45 , - 36 , - 67 , - 58 , - 9 , - 0 , - 27 , - 10 , - 37 , - 20 , - 47 , - 30 , - 57 , - 40 , - 67 , - 50 , - 77 , - 60 , - 87 , - 70 , - 9 , - 80 , - 19 , - 2 , - 29 , - 12 , - 39 , - 22 , - 49 , - 32 , - 59 , - 42 , - 69 , - 52 , - 79 , - 62 , - 1 , - 72 , - 11 , - 82 , - 21 , - 4 , - 31 , - 14 , - 41 , - 24 , - 51 , - 34 , - 61 , - 44 , - 71 , - 54 , - 81 , - 64 , - 3 , - 74 , - 13 , - 84 , - 23 , - 6 , - 33 , - 16 , - 43 , - 26 , - 53 , - 36 , - 63 , - 46 , - 73 , - 56 , - 83 , - 66 , - 5 , - 76 , - 15 , - 86 , - 25 , - 8 , - 35 , - 18 , - 45 , - 28 , - 55 , - 38 , - 65 , - 48 , - 75 , - 58 , - 85 , - 68 , - 7 , - 78 , - 17 , - 0 , - 35 , - 22 , - 57 , - 44 , - 79 , - 66 , - 5 , - 88 , - 27 , - 14 , - 49 , - 36 , - 71 , - 58 , - 93 , - 80 , - 19 , - 6 , - 41 , - 28 , - 63 , - 50 , - 85 , - 72 , - 11 , - 94 , - 33 , - 20 , - 55 , - 42 , - 77 , - 64 , - 3 , - 86 , - 25 , - 12 , - 47 , - 34 , - 69 , - 56 , - 91 , - 78 , - 17 , - 4 , - 39 , - 26 , - 61 , - 48 , - 83 , - 70 , - 9 , - 92 , - 31 , - 18 , - 53 , - 40 , - 75 , - 62 , - 1 , - 84 , - 23 , - 10 , - 45 , - 32 , - 67 , - 54 , - 89 , - 76 , - 15 , - 2 , - 37 , - 24 , - 59 , - 46 , - 81 , - 68 , - 7 , - 90 , - 29 , - 16 , - 51 , - 38 , - 73 , - 60 , - 95 , - 82 , - 21 , - 8 , - 43 , - 30 , - 65 , - 52 , - 87 , - 74 , - 13 , - 0 , - 33 , - 14 , - 47 , - 28 , - 61 , - 42 , - 75 , - 56 , - 89 , - 70 , - 103 , - 84 , - 13 , - 98 , - 27 , - 8 , - 41 , - 22 , - 55 , - 36 , - 69 , - 50 , - 83 , - 64 , - 97 , - 78 , - 7 , - 92 , - 21 , - 2 , - 35 , - 16 , - 49 , - 30 , - 63 , - 44 , - 77 , - 58 , - 91 , - 72 , - 1 , - 86 , - 15 , - 100 , - 29 , - 10 , - 43 , - 24 , - 57 , - 38 , - 71 , - 52 , - 85 , - 66 , - 99 , - 80 , - 9 , - 94 , - 23 , - 4 , - 37 , - 18 , - 51 , - 32 , - 65 , - 46 , - 79 , - 60 , - 93 , - 74 , - 3 , - 88 , - 17 , - 102 , - 31 , - 12 , - 45 , - 26 , - 59 , - 40 , - 73 , - 54 , - 87 , - 68 , - 101 , - 82 , - 11 , - 96 , - 25 , - 6 , - 39 , - 20 , - 53 , - 34 , - 67 , - 48 , - 81 , - 62 , - 95 , - 76 , - 5 , - 90 , - 19 , - 0 , - 13 , - 82 , - 95 , - 52 , - 65 , - 22 , - 35 , - 104 , - 5 , - 74 , - 87 , - 44 , - 57 , - 14 , - 27 , - 96 , - 109 , - 66 , - 79 , - 36 , - 49 , - 6 , - 19 , - 88 , - 101 , - 58 , - 71 , - 28 , - 41 , - 110 , - 11 , - 80 , - 93 , - 50 , - 63 , - 20 , - 33 , - 102 , - 3 , - 72 , - 85 , - 42 , - 55 , - 12 , - 25 , - 94 , - 107 , - 64 , - 77 , - 34 , - 47 , - 4 , - 17 , - 86 , - 99 , - 56 , - 69 , - 26 , - 39 , - 108 , - 9 , - 78 , - 91 , - 48 , - 61 , - 18 , - 31 , - 100 , - 1 , - 70 , - 83 , - 40 , - 53 , - 10 , - 23 , - 92 , - 105 , - 62 , - 75 , - 32 , - 45 , - 2 , - 15 , - 84 , - 97 , - 54 , - 67 , - 24 , - 37 , - 106 , - 7 , - 76 , - 89 , - 46 , - 59 , - 16 , - 29 , - 98 , - 111 , - 68 , - 81 , - 38 , - 51 , - 8 , - 21 , - 90 , - 103 , - 60 , - 73 , - 30 , - 43 , - 0 , - 73 , - 86 , - 39 , - 52 , - 5 , - 18 , - 91 , - 104 , - 57 , - 70 , - 23 , - 36 , - 109 , - 2 , - 75 , - 88 , - 41 , - 54 , - 7 , - 20 , - 93 , - 106 , - 59 , - 72 , - 25 , - 38 , - 111 , - 4 , - 77 , - 90 , - 43 , - 56 , - 9 , - 22 , - 95 , - 108 , - 61 , - 74 , - 27 , - 40 , - 113 , - 6 , - 79 , - 92 , - 45 , - 58 , - 11 , - 24 , - 97 , - 110 , - 63 , - 76 , - 29 , - 42 , - 115 , - 8 , - 81 , - 94 , - 47 , - 60 , - 13 , - 26 , - 99 , - 112 , - 65 , - 78 , - 31 , - 44 , - 117 , - 10 , - 83 , - 96 , - 49 , - 62 , - 15 , - 28 , - 101 , - 114 , - 67 , - 80 , - 33 , - 46 , - 119 , - 12 , - 85 , - 98 , - 51 , - 64 , - 17 , - 30 , - 103 , - 116 , - 69 , - 82 , - 35 , - 48 , - 1 , - 14 , - 87 , - 100 , - 53 , - 66 , - 19 , - 32 , - 105 , - 118 , - 71 , - 84 , - 37 , - 50 , - 3 , - 16 , - 89 , - 102 , - 55 , - 68 , - 21 , - 34 , - 107 , - 0 , - 47 , - 30 , - 77 , - 60 , - 107 , - 90 , - 9 , - 120 , - 39 , - 22 , - 69 , - 52 , - 99 , - 82 , - 1 , - 112 , - 31 , - 14 , - 61 , - 44 , - 91 , - 74 , - 121 , - 104 , - 23 , - 6 , - 53 , - 36 , - 83 , - 66 , - 113 , - 96 , - 15 , - 126 , - 45 , - 28 , - 75 , - 58 , - 105 , - 88 , - 7 , - 118 , - 37 , - 20 , - 67 , - 50 , - 97 , - 80 , - 127 , - 110 , - 29 , - 12 , - 59 , - 42 , - 89 , - 72 , - 119 , - 102 , - 21 , - 4 , - 51 , - 34 , - 81 , - 64 , - 111 , - 94 , - 13 , - 124 , - 43 , - 26 , - 73 , - 56 , - 103 , - 86 , - 5 , - 116 , - 35 , - 18 , - 65 , - 48 , - 95 , - 78 , - 125 , - 108 , - 27 , - 10 , - 57 , - 40 , - 87 , - 70 , - 117 , - 100 , - 19 , - 2 , - 49 , - 32 , - 79 , - 62 , - 109 , - 92 , - 11 , - 122 , - 41 , - 24 , - 71 , - 54 , - 101 , - 84 , - 3 , - 114 , - 33 , - 16 , - 63 , - 46 , - 93 , - 76 , - 123 , - 106 , - 25 , - 8 , - 55 , - 38 , - 85 , - 68 , - 115 , - 98 , - 17 , - 0 , - 43 , - 18 , - 61 , - 36 , - 79 , - 54 , - 97 , - 72 , - 115 , - 90 , - 133 , - 108 , - 15 , - 126 , - 33 , - 8 , - 51 , - 26 , - 69 , - 44 , - 87 , - 62 , - 105 , - 80 , - 123 , - 98 , - 5 , - 116 , - 23 , - 134 , - 41 , - 16 , - 59 , - 34 , - 77 , - 52 , - 95 , - 70 , - 113 , - 88 , - 131 , - 106 , - 13 , - 124 , - 31 , - 6 , - 49 , - 24 , - 67 , - 42 , - 85 , - 60 , - 103 , - 78 , - 121 , - 96 , - 3 , - 114 , - 21 , - 132 , - 39 , - 14 , - 57 , - 32 , - 75 , - 50 , - 93 , - 68 , - 111 , - 86 , - 129 , - 104 , - 11 , - 122 , - 29 , - 4 , - 47 , - 22 , - 65 , - 40 , - 83 , - 58 , - 101 , - 76 , - 119 , - 94 , - 1 , - 112 , - 19 , - 130 , - 37 , - 12 , - 55 , - 30 , - 73 , - 48 , - 91 , - 66 , - 109 , - 84 , - 127 , - 102 , - 9 , - 120 , - 27 , - 2 , - 45 , - 20 , - 63 , - 38 , - 81 , - 56 , - 99 , - 74 , - 117 , - 92 , - 135 , - 110 , - 17 , - 128 , - 35 , - 10 , - 53 , - 28 , - 71 , - 46 , - 89 , - 64 , - 107 , - 82 , - 125 , - 100 , - 7 , - 118 , - 25 , - 0 , - 125 , - 34 , - 15 , - 68 , - 49 , - 102 , - 83 , - 136 , - 117 , - 26 , - 7 , - 60 , - 41 , - 94 , - 75 , - 128 , - 109 , - 18 , - 143 , - 52 , - 33 , - 86 , - 67 , - 120 , - 101 , - 10 , - 135 , - 44 , - 25 , - 78 , - 59 , - 112 , - 93 , - 2 , - 127 , - 36 , - 17 , - 70 , - 51 , - 104 , - 85 , - 138 , - 119 , - 28 , - 9 , - 62 , - 43 , - 96 , - 77 , - 130 , - 111 , - 20 , - 1 , - 54 , - 35 , - 88 , - 69 , - 122 , - 103 , - 12 , - 137 , - 46 , - 27 , - 80 , - 61 , - 114 , - 95 , - 4 , - 129 , - 38 , - 19 , - 72 , - 53 , - 106 , - 87 , - 140 , - 121 , - 30 , - 11 , - 64 , - 45 , - 98 , - 79 , - 132 , - 113 , - 22 , - 3 , - 56 , - 37 , - 90 , - 71 , - 124 , - 105 , - 14 , - 139 , - 48 , - 29 , - 82 , - 63 , - 116 , - 97 , - 6 , - 131 , - 40 , - 21 , - 74 , - 55 , - 108 , - 89 , - 142 , - 123 , - 32 , - 13 , - 66 , - 47 , - 100 , - 81 , - 134 , - 115 , - 24 , - 5 , - 58 , - 39 , - 92 , - 73 , - 126 , - 107 , - 16 , - 141 , - 50 , - 31 , - 84 , - 65 , - 118 , - 99 , - 8 , - 133 , - 42 , - 23 , - 76 , - 57 , - 110 , - 91 , - 0 , - 47 , - 18 , - 65 , - 36 , - 83 , - 54 , - 101 , - 72 , - 119 , - 90 , - 137 , - 108 , - 3 , - 126 , - 21 , - 144 , - 39 , - 10 , - 57 , - 28 , - 75 , - 46 , - 93 , - 64 , - 111 , - 82 , - 129 , - 100 , - 147 , - 118 , - 13 , - 136 , - 31 , - 2 , - 49 , - 20 , - 67 , - 38 , - 85 , - 56 , - 103 , - 74 , - 121 , - 92 , - 139 , - 110 , - 5 , - 128 , - 23 , - 146 , - 41 , - 12 , - 59 , - 30 , - 77 , - 48 , - 95 , - 66 , - 113 , - 84 , - 131 , - 102 , - 149 , - 120 , - 15 , - 138 , - 33 , - 4 , - 51 , - 22 , - 69 , - 40 , - 87 , - 58 , - 105 , - 76 , - 123 , - 94 , - 141 , - 112 , - 7 , - 130 , - 25 , - 148 , - 43 , - 14 , - 61 , - 32 , - 79 , - 50 , - 97 , - 68 , - 115 , - 86 , - 133 , - 104 , - 151 , - 122 , - 17 , - 140 , - 35 , - 6 , - 53 , - 24 , - 71 , - 42 , - 89 , - 60 , - 107 , - 78 , - 125 , - 96 , - 143 , - 114 , - 9 , - 132 , - 27 , - 150 , - 45 , - 16 , - 63 , - 34 , - 81 , - 52 , - 99 , - 70 , - 117 , - 88 , - 135 , - 106 , - 1 , - 124 , - 19 , - 142 , - 37 , - 8 , - 55 , - 26 , - 73 , - 44 , - 91 , - 62 , - 109 , - 80 , - 127 , - 98 , - 145 , - 116 , - 11 , - 134 , - 29 , - 0 , - 141 , - 42 , - 23 , - 84 , - 65 , - 126 , - 107 , - 8 , - 149 , - 50 , - 31 , - 92 , - 73 , - 134 , - 115 , - 16 , - 157 , - 58 , - 39 , - 100 , - 81 , - 142 , - 123 , - 24 , - 5 , - 66 , - 47 , - 108 , - 89 , - 150 , - 131 , - 32 , - 13 , - 74 , - 55 , - 116 , - 97 , - 158 , - 139 , - 40 , - 21 , - 82 , - 63 , - 124 , - 105 , - 6 , - 147 , - 48 , - 29 , - 90 , - 71 , - 132 , - 113 , - 14 , - 155 , - 56 , - 37 , - 98 , - 79 , - 140 , - 121 , - 22 , - 3 , - 64 , - 45 , - 106 , - 87 , - 148 , - 129 , - 30 , - 11 , - 72 , - 53 , - 114 , - 95 , - 156 , - 137 , - 38 , - 19 , - 80 , - 61 , - 122 , - 103 , - 4 , - 145 , - 46 , - 27 , - 88 , - 69 , - 130 , - 111 , - 12 , - 153 , - 54 , - 35 , - 96 , - 77 , - 138 , - 119 , - 20 , - 1 , - 62 , - 43 , - 104 , - 85 , - 146 , - 127 , - 28 , - 9 , - 70 , - 51 , - 112 , - 93 , - 154 , - 135 , - 36 , - 17 , - 78 , - 59 , - 120 , - 101 , - 2 , - 143 , - 44 , - 25 , - 86 , - 67 , - 128 , - 109 , - 10 , - 151 , - 52 , - 33 , - 94 , - 75 , - 136 , - 117 , - 18 , - 159 , - 60 , - 41 , - 102 , - 83 , - 144 , - 125 , - 26 , - 7 , - 68 , - 49 , - 110 , - 91 , - 152 , - 133 , - 34 , - 15 , - 76 , - 57 , - 118 , - 99 , - 0 , - 17 , - 34 , - 51 , - 68 , - 85 , - 102 , - 119 , - 136 , - 153 , - 2 , - 19 , - 36 , - 53 , - 70 , - 87 , - 104 , - 121 , - 138 , - 155 , - 4 , - 21 , - 38 , - 55 , - 72 , - 89 , - 106 , - 123 , - 140 , - 157 , - 6 , - 23 , - 40 , - 57 , - 74 , - 91 , - 108 , - 125 , - 142 , - 159 , - 8 , - 25 , - 42 , - 59 , - 76 , - 93 , - 110 , - 127 , - 144 , - 161 , - 10 , - 27 , - 44 , - 61 , - 78 , - 95 , - 112 , - 129 , - 146 , - 163 , - 12 , - 29 , - 46 , - 63 , - 80 , - 97 , - 114 , - 131 , - 148 , - 165 , - 14 , - 31 , - 48 , - 65 , - 82 , - 99 , - 116 , - 133 , - 150 , - 167 , - 16 , - 33 , - 50 , - 67 , - 84 , - 101 , - 118 , - 135 , - 152 , - 1 , - 18 , - 35 , - 52 , - 69 , - 86 , - 103 , - 120 , - 137 , - 154 , - 3 , - 20 , - 37 , - 54 , - 71 , - 88 , - 105 , - 122 , - 139 , - 156 , - 5 , - 22 , - 39 , - 56 , - 73 , - 90 , - 107 , - 124 , - 141 , - 158 , - 7 , - 24 , - 41 , - 58 , - 75 , - 92 , - 109 , - 126 , - 143 , - 160 , - 9 , - 26 , - 43 , - 60 , - 77 , - 94 , - 111 , - 128 , - 145 , - 162 , - 11 , - 28 , - 45 , - 62 , - 79 , - 96 , - 113 , - 130 , - 147 , - 164 , - 13 , - 30 , - 47 , - 64 , - 81 , - 98 , - 115 , - 132 , - 149 , - 166 , - 15 , - 32 , - 49 , - 66 , - 83 , - 100 , - 117 , - 134 , - 151 , - 0 , - 65 , - 42 , - 107 , - 84 , - 149 , - 126 , - 15 , - 168 , - 57 , - 34 , - 99 , - 76 , - 141 , - 118 , - 7 , - 160 , - 49 , - 26 , - 91 , - 68 , - 133 , - 110 , - 175 , - 152 , - 41 , - 18 , - 83 , - 60 , - 125 , - 102 , - 167 , - 144 , - 33 , - 10 , - 75 , - 52 , - 117 , - 94 , - 159 , - 136 , - 25 , - 2 , - 67 , - 44 , - 109 , - 86 , - 151 , - 128 , - 17 , - 170 , - 59 , - 36 , - 101 , - 78 , - 143 , - 120 , - 9 , - 162 , - 51 , - 28 , - 93 , - 70 , - 135 , - 112 , - 1 , - 154 , - 43 , - 20 , - 85 , - 62 , - 127 , - 104 , - 169 , - 146 , - 35 , - 12 , - 77 , - 54 , - 119 , - 96 , - 161 , - 138 , - 27 , - 4 , - 69 , - 46 , - 111 , - 88 , - 153 , - 130 , - 19 , - 172 , - 61 , - 38 , - 103 , - 80 , - 145 , - 122 , - 11 , - 164 , - 53 , - 30 , - 95 , - 72 , - 137 , - 114 , - 3 , - 156 , - 45 , - 22 , - 87 , - 64 , - 129 , - 106 , - 171 , - 148 , - 37 , - 14 , - 79 , - 56 , - 121 , - 98 , - 163 , - 140 , - 29 , - 6 , - 71 , - 48 , - 113 , - 90 , - 155 , - 132 , - 21 , - 174 , - 63 , - 40 , - 105 , - 82 , - 147 , - 124 , - 13 , - 166 , - 55 , - 32 , - 97 , - 74 , - 139 , - 116 , - 5 , - 158 , - 47 , - 24 , - 89 , - 66 , - 131 , - 108 , - 173 , - 150 , - 39 , - 16 , - 81 , - 58 , - 123 , - 100 , - 165 , - 142 , - 31 , - 8 , - 73 , - 50 , - 115 , - 92 , - 157 , - 134 , - 23 , - 0 , - 103 , - 114 , - 33 , - 44 , - 147 , - 158 , - 77 , - 88 , - 7 , - 18 , - 121 , - 132 , - 51 , - 62 , - 165 , - 176 , - 95 , - 106 , - 25 , - 36 , - 139 , - 150 , - 69 , - 80 , - 183 , - 10 , - 113 , - 124 , - 43 , - 54 , - 157 , - 168 , - 87 , - 98 , - 17 , - 28 , - 131 , - 142 , - 61 , - 72 , - 175 , - 2 , - 105 , - 116 , - 35 , - 46 , - 149 , - 160 , - 79 , - 90 , - 9 , - 20 , - 123 , - 134 , - 53 , - 64 , - 167 , - 178 , - 97 , - 108 , - 27 , - 38 , - 141 , - 152 , - 71 , - 82 , - 1 , - 12 , - 115 , - 126 , - 45 , - 56 , - 159 , - 170 , - 89 , - 100 , - 19 , - 30 , - 133 , - 144 , - 63 , - 74 , - 177 , - 4 , - 107 , - 118 , - 37 , - 48 , - 151 , - 162 , - 81 , - 92 , - 11 , - 22 , - 125 , - 136 , - 55 , - 66 , - 169 , - 180 , - 99 , - 110 , - 29 , - 40 , - 143 , - 154 , - 73 , - 84 , - 3 , - 14 , - 117 , - 128 , - 47 , - 58 , - 161 , - 172 , - 91 , - 102 , - 21 , - 32 , - 135 , - 146 , - 65 , - 76 , - 179 , - 6 , - 109 , - 120 , - 39 , - 50 , - 153 , - 164 , - 83 , - 94 , - 13 , - 24 , - 127 , - 138 , - 57 , - 68 , - 171 , - 182 , - 101 , - 112 , - 31 , - 42 , - 145 , - 156 , - 75 , - 86 , - 5 , - 16 , - 119 , - 130 , - 49 , - 60 , - 163 , - 174 , - 93 , - 104 , - 23 , - 34 , - 137 , - 148 , - 67 , - 78 , - 181 , - 8 , - 111 , - 122 , - 41 , - 52 , - 155 , - 166 , - 85 , - 96 , - 15 , - 26 , - 129 , - 140 , - 59 , - 70 , - 173 , - 0 , - 71 , - 46 , - 117 , - 92 , - 163 , - 138 , - 17 , - 184 , - 63 , - 38 , - 109 , - 84 , - 155 , - 130 , - 9 , - 176 , - 55 , - 30 , - 101 , - 76 , - 147 , - 122 , - 1 , - 168 , - 47 , - 22 , - 93 , - 68 , - 139 , - 114 , - 185 , - 160 , - 39 , - 14 , - 85 , - 60 , - 131 , - 106 , - 177 , - 152 , - 31 , - 6 , - 77 , - 52 , - 123 , - 98 , - 169 , - 144 , - 23 , - 190 , - 69 , - 44 , - 115 , - 90 , - 161 , - 136 , - 15 , - 182 , - 61 , - 36 , - 107 , - 82 , - 153 , - 128 , - 7 , - 174 , - 53 , - 28 , - 99 , - 74 , - 145 , - 120 , - 191 , - 166 , - 45 , - 20 , - 91 , - 66 , - 137 , - 112 , - 183 , - 158 , - 37 , - 12 , - 83 , - 58 , - 129 , - 104 , - 175 , - 150 , - 29 , - 4 , - 75 , - 50 , - 121 , - 96 , - 167 , - 142 , - 21 , - 188 , - 67 , - 42 , - 113 , - 88 , - 159 , - 134 , - 13 , - 180 , - 59 , - 34 , - 105 , - 80 , - 151 , - 126 , - 5 , - 172 , - 51 , - 26 , - 97 , - 72 , - 143 , - 118 , - 189 , - 164 , - 43 , - 18 , - 89 , - 64 , - 135 , - 110 , - 181 , - 156 , - 35 , - 10 , - 81 , - 56 , - 127 , - 102 , - 173 , - 148 , - 27 , - 2 , - 73 , - 48 , - 119 , - 94 , - 165 , - 140 , - 19 , - 186 , - 65 , - 40 , - 111 , - 86 , - 157 , - 132 , - 11 , - 178 , - 57 , - 32 , - 103 , - 78 , - 149 , - 124 , - 3 , - 170 , - 49 , - 24 , - 95 , - 70 , - 141 , - 116 , - 187 , - 162 , - 41 , - 16 , - 87 , - 62 , - 133 , - 108 , - 179 , - 154 , - 33 , - 8 , - 79 , - 54 , - 125 , - 100 , - 171 , - 146 , - 25 , - 0 , - 63 , - 26 , - 89 , - 52 , - 115 , - 78 , - 141 , - 104 , - 167 , - 130 , - 193 , - 156 , - 19 , - 182 , - 45 , - 8 , - 71 , - 34 , - 97 , - 60 , - 123 , - 86 , - 149 , - 112 , - 175 , - 138 , - 1 , - 164 , - 27 , - 190 , - 53 , - 16 , - 79 , - 42 , - 105 , - 68 , - 131 , - 94 , - 157 , - 120 , - 183 , - 146 , - 9 , - 172 , - 35 , - 198 , - 61 , - 24 , - 87 , - 50 , - 113 , - 76 , - 139 , - 102 , - 165 , - 128 , - 191 , - 154 , - 17 , - 180 , - 43 , - 6 , - 69 , - 32 , - 95 , - 58 , - 121 , - 84 , - 147 , - 110 , - 173 , - 136 , - 199 , - 162 , - 25 , - 188 , - 51 , - 14 , - 77 , - 40 , - 103 , - 66 , - 129 , - 92 , - 155 , - 118 , - 181 , - 144 , - 7 , - 170 , - 33 , - 196 , - 59 , - 22 , - 85 , - 48 , - 111 , - 74 , - 137 , - 100 , - 163 , - 126 , - 189 , - 152 , - 15 , - 178 , - 41 , - 4 , - 67 , - 30 , - 93 , - 56 , - 119 , - 82 , - 145 , - 108 , - 171 , - 134 , - 197 , - 160 , - 23 , - 186 , - 49 , - 12 , - 75 , - 38 , - 101 , - 64 , - 127 , - 90 , - 153 , - 116 , - 179 , - 142 , - 5 , - 168 , - 31 , - 194 , - 57 , - 20 , - 83 , - 46 , - 109 , - 72 , - 135 , - 98 , - 161 , - 124 , - 187 , - 150 , - 13 , - 176 , - 39 , - 2 , - 65 , - 28 , - 91 , - 54 , - 117 , - 80 , - 143 , - 106 , - 169 , - 132 , - 195 , - 158 , - 21 , - 184 , - 47 , - 10 , - 73 , - 36 , - 99 , - 62 , - 125 , - 88 , - 151 , - 114 , - 177 , - 140 , - 3 , - 166 , - 29 , - 192 , - 55 , - 18 , - 81 , - 44 , - 107 , - 70 , - 133 , - 96 , - 159 , - 122 , - 185 , - 148 , - 11 , - 174 , - 37 , - 0 , - 79 , - 54 , - 133 , - 108 , - 187 , - 162 , - 33 , - 8 , - 87 , - 62 , - 141 , - 116 , - 195 , - 170 , - 41 , - 16 , - 95 , - 70 , - 149 , - 124 , - 203 , - 178 , - 49 , - 24 , - 103 , - 78 , - 157 , - 132 , - 3 , - 186 , - 57 , - 32 , - 111 , - 86 , - 165 , - 140 , - 11 , - 194 , - 65 , - 40 , - 119 , - 94 , - 173 , - 148 , - 19 , - 202 , - 73 , - 48 , - 127 , - 102 , - 181 , - 156 , - 27 , - 2 , - 81 , - 56 , - 135 , - 110 , - 189 , - 164 , - 35 , - 10 , - 89 , - 64 , - 143 , - 118 , - 197 , - 172 , - 43 , - 18 , - 97 , - 72 , - 151 , - 126 , - 205 , - 180 , - 51 , - 26 , - 105 , - 80 , - 159 , - 134 , - 5 , - 188 , - 59 , - 34 , - 113 , - 88 , - 167 , - 142 , - 13 , - 196 , - 67 , - 42 , - 121 , - 96 , - 175 , - 150 , - 21 , - 204 , - 75 , - 50 , - 129 , - 104 , - 183 , - 158 , - 29 , - 4 , - 83 , - 58 , - 137 , - 112 , - 191 , - 166 , - 37 , - 12 , - 91 , - 66 , - 145 , - 120 , - 199 , - 174 , - 45 , - 20 , - 99 , - 74 , - 153 , - 128 , - 207 , - 182 , - 53 , - 28 , - 107 , - 82 , - 161 , - 136 , - 7 , - 190 , - 61 , - 36 , - 115 , - 90 , - 169 , - 144 , - 15 , - 198 , - 69 , - 44 , - 123 , - 98 , - 177 , - 152 , - 23 , - 206 , - 77 , - 52 , - 131 , - 106 , - 185 , - 160 , - 31 , - 6 , - 85 , - 60 , - 139 , - 114 , - 193 , - 168 , - 39 , - 14 , - 93 , - 68 , - 147 , - 122 , - 201 , - 176 , - 47 , - 22 , - 101 , - 76 , - 155 , - 130 , - 1 , - 184 , - 55 , - 30 , - 109 , - 84 , - 163 , - 138 , - 9 , - 192 , - 63 , - 38 , - 117 , - 92 , - 171 , - 146 , - 17 , - 200 , - 71 , - 46 , - 125 , - 100 , - 179 , - 154 , - 25 , - 0 , - 47 , - 166 , - 141 , - 188 , - 91 , - 66 , - 113 , - 16 , - 207 , - 38 , - 157 , - 132 , - 179 , - 82 , - 57 , - 104 , - 7 , - 198 , - 29 , - 148 , - 123 , - 170 , - 73 , - 48 , - 95 , - 214 , - 189 , - 20 , - 139 , - 114 , - 161 , - 64 , - 39 , - 86 , - 205 , - 180 , - 11 , - 130 , - 105 , - 152 , - 55 , - 30 , - 77 , - 196 , - 171 , - 2 , - 121 , - 96 , - 143 , - 46 , - 21 , - 68 , - 187 , - 162 , - 209 , - 112 , - 87 , - 134 , - 37 , - 12 , - 59 , - 178 , - 153 , - 200 , - 103 , - 78 , - 125 , - 28 , - 3 , - 50 , - 169 , - 144 , - 191 , - 94 , - 69 , - 116 , - 19 , - 210 , - 41 , - 160 , - 135 , - 182 , - 85 , - 60 , - 107 , - 10 , - 201 , - 32 , - 151 , - 126 , - 173 , - 76 , - 51 , - 98 , - 1 , - 192 , - 23 , - 142 , - 117 , - 164 , - 67 , - 42 , - 89 , - 208 , - 183 , - 14 , - 133 , - 108 , - 155 , - 58 , - 33 , - 80 , - 199 , - 174 , - 5 , - 124 , - 99 , - 146 , - 49 , - 24 , - 71 , - 190 , - 165 , - 212 , - 115 , - 90 , - 137 , - 40 , - 15 , - 62 , - 181 , - 156 , - 203 , - 106 , - 81 , - 128 , - 31 , - 6 , - 53 , - 172 , - 147 , - 194 , - 97 , - 72 , - 119 , - 22 , - 213 , - 44 , - 163 , - 138 , - 185 , - 88 , - 63 , - 110 , - 13 , - 204 , - 35 , - 154 , - 129 , - 176 , - 79 , - 54 , - 101 , - 4 , - 195 , - 26 , - 145 , - 120 , - 167 , - 70 , - 45 , - 92 , - 211 , - 186 , - 17 , - 136 , - 111 , - 158 , - 61 , - 36 , - 83 , - 202 , - 177 , - 8 , - 127 , - 102 , - 149 , - 52 , - 27 , - 74 , - 193 , - 168 , - 215 , - 118 , - 93 , - 140 , - 43 , - 18 , - 65 , - 184 , - 159 , - 206 , - 109 , - 84 , - 131 , - 34 , - 9 , - 56 , - 175 , - 150 , - 197 , - 100 , - 75 , - 122 , - 25 , - 0 , - 83 , - 54 , - 137 , - 108 , - 191 , - 162 , - 21 , - 216 , - 75 , - 46 , - 129 , - 100 , - 183 , - 154 , - 13 , - 208 , - 67 , - 38 , - 121 , - 92 , - 175 , - 146 , - 5 , - 200 , - 59 , - 30 , - 113 , - 84 , - 167 , - 138 , - 221 , - 192 , - 51 , - 22 , - 105 , - 76 , - 159 , - 130 , - 213 , - 184 , - 43 , - 14 , - 97 , - 68 , - 151 , - 122 , - 205 , - 176 , - 35 , - 6 , - 89 , - 60 , - 143 , - 114 , - 197 , - 168 , - 27 , - 222 , - 81 , - 52 , - 135 , - 106 , - 189 , - 160 , - 19 , - 214 , - 73 , - 44 , - 127 , - 98 , - 181 , - 152 , - 11 , - 206 , - 65 , - 36 , - 119 , - 90 , - 173 , - 144 , - 3 , - 198 , - 57 , - 28 , - 111 , - 82 , - 165 , - 136 , - 219 , - 190 , - 49 , - 20 , - 103 , - 74 , - 157 , - 128 , - 211 , - 182 , - 41 , - 12 , - 95 , - 66 , - 149 , - 120 , - 203 , - 174 , - 33 , - 4 , - 87 , - 58 , - 141 , - 112 , - 195 , - 166 , - 25 , - 220 , - 79 , - 50 , - 133 , - 104 , - 187 , - 158 , - 17 , - 212 , - 71 , - 42 , - 125 , - 96 , - 179 , - 150 , - 9 , - 204 , - 63 , - 34 , - 117 , - 88 , - 171 , - 142 , - 1 , - 196 , - 55 , - 26 , - 109 , - 80 , - 163 , - 134 , - 217 , - 188 , - 47 , - 18 , - 101 , - 72 , - 155 , - 126 , - 209 , - 180 , - 39 , - 10 , - 93 , - 64 , - 147 , - 118 , - 201 , - 172 , - 31 , - 2 , - 85 , - 56 , - 139 , - 110 , - 193 , - 164 , - 23 , - 218 , - 77 , - 48 , - 131 , - 102 , - 185 , - 156 , - 15 , - 210 , - 69 , - 40 , - 123 , - 94 , - 177 , - 148 , - 7 , - 202 , - 61 , - 32 , - 115 , - 86 , - 169 , - 140 , - 223 , - 194 , - 53 , - 24 , - 107 , - 78 , - 161 , - 132 , - 215 , - 186 , - 45 , - 16 , - 99 , - 70 , - 153 , - 124 , - 207 , - 178 , - 37 , - 8 , - 91 , - 62 , - 145 , - 116 , - 199 , - 170 , - 29 , - 0 , - 143 , - 170 , - 81 , - 108 , - 19 , - 46 , - 189 , - 216 , - 127 , - 154 , - 65 , - 92 , - 3 , - 30 , - 173 , - 200 , - 111 , - 138 , - 49 , - 76 , - 219 , - 14 , - 157 , - 184 , - 95 , - 122 , - 33 , - 60 , - 203 , - 230 , - 141 , - 168 , - 79 , - 106 , - 17 , - 44 , - 187 , - 214 , - 125 , - 152 , - 63 , - 90 , - 1 , - 28 , - 171 , - 198 , - 109 , - 136 , - 47 , - 74 , - 217 , - 12 , - 155 , - 182 , - 93 , - 120 , - 31 , - 58 , - 201 , - 228 , - 139 , - 166 , - 77 , - 104 , - 15 , - 42 , - 185 , - 212 , - 123 , - 150 , - 61 , - 88 , - 231 , - 26 , - 169 , - 196 , - 107 , - 134 , - 45 , - 72 , - 215 , - 10 , - 153 , - 180 , - 91 , - 118 , - 29 , - 56 , - 199 , - 226 , - 137 , - 164 , - 75 , - 102 , - 13 , - 40 , - 183 , - 210 , - 121 , - 148 , - 59 , - 86 , - 229 , - 24 , - 167 , - 194 , - 105 , - 132 , - 43 , - 70 , - 213 , - 8 , - 151 , - 178 , - 89 , - 116 , - 27 , - 54 , - 197 , - 224 , - 135 , - 162 , - 73 , - 100 , - 11 , - 38 , - 181 , - 208 , - 119 , - 146 , - 57 , - 84 , - 227 , - 22 , - 165 , - 192 , - 103 , - 130 , - 41 , - 68 , - 211 , - 6 , - 149 , - 176 , - 87 , - 114 , - 25 , - 52 , - 195 , - 222 , - 133 , - 160 , - 71 , - 98 , - 9 , - 36 , - 179 , - 206 , - 117 , - 144 , - 55 , - 82 , - 225 , - 20 , - 163 , - 190 , - 101 , - 128 , - 39 , - 66 , - 209 , - 4 , - 147 , - 174 , - 85 , - 112 , - 23 , - 50 , - 193 , - 220 , - 131 , - 158 , - 69 , - 96 , - 7 , - 34 , - 177 , - 204 , - 115 , - 142 , - 53 , - 80 , - 223 , - 18 , - 161 , - 188 , - 99 , - 126 , - 37 , - 64 , - 207 , - 2 , - 145 , - 172 , - 83 , - 110 , - 21 , - 48 , - 191 , - 218 , - 129 , - 156 , - 67 , - 94 , - 5 , - 32 , - 175 , - 202 , - 113 , - 140 , - 51 , - 78 , - 221 , - 16 , - 159 , - 186 , - 97 , - 124 , - 35 , - 62 , - 205 , - 0 , - 89 , - 58 , - 147 , - 116 , - 205 , - 174 , - 23 , - 232 , - 81 , - 50 , - 139 , - 108 , - 197 , - 166 , - 15 , - 224 , - 73 , - 42 , - 131 , - 100 , - 189 , - 158 , - 7 , - 216 , - 65 , - 34 , - 123 , - 92 , - 181 , - 150 , - 239 , - 208 , - 57 , - 26 , - 115 , - 84 , - 173 , - 142 , - 231 , - 200 , - 49 , - 18 , - 107 , - 76 , - 165 , - 134 , - 223 , - 192 , - 41 , - 10 , - 99 , - 68 , - 157 , - 126 , - 215 , - 184 , - 33 , - 2 , - 91 , - 60 , - 149 , - 118 , - 207 , - 176 , - 25 , - 234 , - 83 , - 52 , - 141 , - 110 , - 199 , - 168 , - 17 , - 226 , - 75 , - 44 , - 133 , - 102 , - 191 , - 160 , - 9 , - 218 , - 67 , - 36 , - 125 , - 94 , - 183 , - 152 , - 1 , - 210 , - 59 , - 28 , - 117 , - 86 , - 175 , - 144 , - 233 , - 202 , - 51 , - 20 , - 109 , - 78 , - 167 , - 136 , - 225 , - 194 , - 43 , - 12 , - 101 , - 70 , - 159 , - 128 , - 217 , - 186 , - 35 , - 4 , - 93 , - 62 , - 151 , - 120 , - 209 , - 178 , - 27 , - 236 , - 85 , - 54 , - 143 , - 112 , - 201 , - 170 , - 19 , - 228 , - 77 , - 46 , - 135 , - 104 , - 193 , - 162 , - 11 , - 220 , - 69 , - 38 , - 127 , - 96 , - 185 , - 154 , - 3 , - 212 , - 61 , - 30 , - 119 , - 88 , - 177 , - 146 , - 235 , - 204 , - 53 , - 22 , - 111 , - 80 , - 169 , - 138 , - 227 , - 196 , - 45 , - 14 , - 103 , - 72 , - 161 , - 130 , - 219 , - 188 , - 37 , - 6 , - 95 , - 64 , - 153 , - 122 , - 211 , - 180 , - 29 , - 238 , - 87 , - 56 , - 145 , - 114 , - 203 , - 172 , - 21 , - 230 , - 79 , - 48 , - 137 , - 106 , - 195 , - 164 , - 13 , - 222 , - 71 , - 40 , - 129 , - 98 , - 187 , - 156 , - 5 , - 214 , - 63 , - 32 , - 121 , - 90 , - 179 , - 148 , - 237 , - 206 , - 55 , - 24 , - 113 , - 82 , - 171 , - 140 , - 229 , - 198 , - 47 , - 16 , - 105 , - 74 , - 163 , - 132 , - 221 , - 190 , - 39 , - 8 , - 97 , - 66 , - 155 , - 124 , - 213 , - 182 , - 31 , - 0 , - 95 , - 66 , - 161 , - 132 , - 227 , - 198 , - 45 , - 16 , - 111 , - 82 , - 177 , - 148 , - 243 , - 214 , - 61 , - 32 , - 127 , - 98 , - 193 , - 164 , - 11 , - 230 , - 77 , - 48 , - 143 , - 114 , - 209 , - 180 , - 27 , - 246 , - 93 , - 64 , - 159 , - 130 , - 225 , - 196 , - 43 , - 14 , - 109 , - 80 , - 175 , - 146 , - 241 , - 212 , - 59 , - 30 , - 125 , - 96 , - 191 , - 162 , - 9 , - 228 , - 75 , - 46 , - 141 , - 112 , - 207 , - 178 , - 25 , - 244 , - 91 , - 62 , - 157 , - 128 , - 223 , - 194 , - 41 , - 12 , - 107 , - 78 , - 173 , - 144 , - 239 , - 210 , - 57 , - 28 , - 123 , - 94 , - 189 , - 160 , - 7 , - 226 , - 73 , - 44 , - 139 , - 110 , - 205 , - 176 , - 23 , - 242 , - 89 , - 60 , - 155 , - 126 , - 221 , - 192 , - 39 , - 10 , - 105 , - 76 , - 171 , - 142 , - 237 , - 208 , - 55 , - 26 , - 121 , - 92 , - 187 , - 158 , - 5 , - 224 , - 71 , - 42 , - 137 , - 108 , - 203 , - 174 , - 21 , - 240 , - 87 , - 58 , - 153 , - 124 , - 219 , - 190 , - 37 , - 8 , - 103 , - 74 , - 169 , - 140 , - 235 , - 206 , - 53 , - 24 , - 119 , - 90 , - 185 , - 156 , - 3 , - 222 , - 69 , - 40 , - 135 , - 106 , - 201 , - 172 , - 19 , - 238 , - 85 , - 56 , - 151 , - 122 , - 217 , - 188 , - 35 , - 6 , - 101 , - 72 , - 167 , - 138 , - 233 , - 204 , - 51 , - 22 , - 117 , - 88 , - 183 , - 154 , - 1 , - 220 , - 67 , - 38 , - 133 , - 104 , - 199 , - 170 , - 17 , - 236 , - 83 , - 54 , - 149 , - 120 , - 215 , - 186 , - 33 , - 4 , - 99 , - 70 , - 165 , - 136 , - 231 , - 202 , - 49 , - 20 , - 115 , - 86 , - 181 , - 152 , - 247 , - 218 , - 65 , - 36 , - 131 , - 102 , - 197 , - 168 , - 15 , - 234 , - 81 , - 52 , - 147 , - 118 , - 213 , - 184 , - 31 , - 2 , - 97 , - 68 , - 163 , - 134 , - 229 , - 200 , - 47 , - 18 , - 113 , - 84 , - 179 , - 150 , - 245 , - 216 , - 63 , - 34 , - 129 , - 100 , - 195 , - 166 , - 13 , - 232 , - 79 , - 50 , - 145 , - 116 , - 211 , - 182 , - 29 , - 0 , - 47 , - 158 , - 77 , - 60 , - 107 , - 218 , - 137 , - 120 , - 167 , - 22 , - 197 , - 180 , - 227 , - 82 , - 1 , - 240 , - 31 , - 142 , - 61 , - 44 , - 91 , - 202 , - 121 , - 104 , - 151 , - 6 , - 181 , - 164 , - 211 , - 66 , - 241 , - 224 , - 15 , - 126 , - 45 , - 28 , - 75 , - 186 , - 105 , - 88 , - 135 , - 246 , - 165 , - 148 , - 195 , - 50 , - 225 , - 208 , - 255 , - 110 , - 29 , - 12 , - 59 , - 170 , - 89 , - 72 , - 119 , - 230 , - 149 , - 132 , - 179 , - 34 , - 209 , - 192 , - 239 , - 94 , - 13 , - 252 , - 43 , - 154 , - 73 , - 56 , - 103 , - 214 , - 133 , - 116 , - 163 , - 18 , - 193 , - 176 , - 223 , - 78 , - 253 , - 236 , - 27 , - 138 , - 57 , - 40 , - 87 , - 198 , - 117 , - 100 , - 147 , - 2 , - 177 , - 160 , - 207 , - 62 , - 237 , - 220 , - 11 , - 122 , - 41 , - 24 , - 71 , - 182 , - 101 , - 84 , - 131 , - 242 , - 161 , - 144 , - 191 , - 46 , - 221 , - 204 , - 251 , - 106 , - 25 , - 8 , - 55 , - 166 , - 85 , - 68 , - 115 , - 226 , - 145 , - 128 , - 175 , - 30 , - 205 , - 188 , - 235 , - 90 , - 9 , - 248 , - 39 , - 150 , - 69 , - 52 , - 99 , - 210 , - 129 , - 112 , - 159 , - 14 , - 189 , - 172 , - 219 , - 74 , - 249 , - 232 , - 23 , - 134 , - 53 , - 36 , - 83 , - 194 , - 113 , - 96 , - 143 , - 254 , - 173 , - 156 , - 203 , - 58 , - 233 , - 216 , - 7 , - 118 , - 37 , - 20 , - 67 , - 178 , - 97 , - 80 , - 127 , - 238 , - 157 , - 140 , - 187 , - 42 , - 217 , - 200 , - 247 , - 102 , - 21 , - 4 , - 51 , - 162 , - 81 , - 64 , - 111 , - 222 , - 141 , - 124 , - 171 , - 26 , - 201 , - 184 , - 231 , - 86 , - 5 , - 244 , - 35 , - 146 , - 65 , - 48 , - 95 , - 206 , - 125 , - 108 , - 155 , - 10 , - 185 , - 168 , - 215 , - 70 , - 245 , - 228 , - 19 , - 130 , - 49 , - 32 , - 79 , - 190 , - 109 , - 92 , - 139 , - 250 , - 169 , - 152 , - 199 , - 54 , - 229 , - 212 , - 3 , - 114 , - 33 , - 16 , - 63 , - 174 , - 93 , - 76 , - 123 , - 234 , - 153 , - 136 , - 183 , - 38 , - 213 , - 196 , - 243 , - 98 , - 17 , - 0 , - 215 , - 34 , - 249 , - 68 , - 19 , - 102 , - 53 , - 136 , - 87 , - 170 , - 121 , - 204 , - 155 , - 238 , - 189 , - 8 , - 223 , - 42 , - 257 , - 76 , - 27 , - 110 , - 61 , - 144 , - 95 , - 178 , - 129 , - 212 , - 163 , - 246 , - 197 , - 16 , - 231 , - 50 , - 1 , - 84 , - 35 , - 118 , - 69 , - 152 , - 103 , - 186 , - 137 , - 220 , - 171 , - 254 , - 205 , - 24 , - 239 , - 58 , - 9 , - 92 , - 43 , - 126 , - 77 , - 160 , - 111 , - 194 , - 145 , - 228 , - 179 , - 262 , - 213 , - 32 , - 247 , - 66 , - 17 , - 100 , - 51 , - 134 , - 85 , - 168 , - 119 , - 202 , - 153 , - 236 , - 187 , - 6 , - 221 , - 40 , - 255 , - 74 , - 25 , - 108 , - 59 , - 142 , - 93 , - 176 , - 127 , - 210 , - 161 , - 244 , - 195 , - 14 , - 229 , - 48 , - 263 , - 82 , - 33 , - 116 , - 67 , - 150 , - 101 , - 184 , - 135 , - 218 , - 169 , - 252 , - 203 , - 22 , - 237 , - 56 , - 7 , - 90 , - 41 , - 124 , - 75 , - 158 , - 109 , - 192 , - 143 , - 226 , - 177 , - 260 , - 211 , - 30 , - 245 , - 64 , - 15 , - 98 , - 49 , - 132 , - 83 , - 166 , - 117 , - 200 , - 151 , - 234 , - 185 , - 4 , - 219 , - 38 , - 253 , - 72 , - 23 , - 106 , - 57 , - 140 , - 91 , - 174 , - 125 , - 208 , - 159 , - 242 , - 193 , - 12 , - 227 , - 46 , - 261 , - 80 , - 31 , - 114 , - 65 , - 148 , - 99 , - 182 , - 133 , - 216 , - 167 , - 250 , - 201 , - 20 , - 235 , - 54 , - 5 , - 88 , - 39 , - 122 , - 73 , - 156 , - 107 , - 190 , - 141 , - 224 , - 175 , - 258 , - 209 , - 28 , - 243 , - 62 , - 13 , - 96 , - 47 , - 130 , - 81 , - 164 , - 115 , - 198 , - 149 , - 232 , - 183 , - 2 , - 217 , - 36 , - 251 , - 70 , - 21 , - 104 , - 55 , - 138 , - 89 , - 172 , - 123 , - 206 , - 157 , - 240 , - 191 , - 10 , - 225 , - 44 , - 259 , - 78 , - 29 , - 112 , - 63 , - 146 , - 97 , - 180 , - 131 , - 214 , - 165 , - 248 , - 199 , - 18 , - 233 , - 52 , - 3 , - 86 , - 37 , - 120 , - 71 , - 154 , - 105 , - 188 , - 139 , - 222 , - 173 , - 256 , - 207 , - 26 , - 241 , - 60 , - 11 , - 94 , - 45 , - 128 , - 79 , - 162 , - 113 , - 196 , - 147 , - 230 , - 181 , - 0 , - 101 , - 66 , - 167 , - 132 , - 233 , - 198 , - 27 , - 264 , - 93 , - 58 , - 159 , - 124 , - 225 , - 190 , - 19 , - 256 , - 85 , - 50 , - 151 , - 116 , - 217 , - 182 , - 11 , - 248 , - 77 , - 42 , - 143 , - 108 , - 209 , - 174 , - 3 , - 240 , - 69 , - 34 , - 135 , - 100 , - 201 , - 166 , - 267 , - 232 , - 61 , - 26 , - 127 , - 92 , - 193 , - 158 , - 259 , - 224 , - 53 , - 18 , - 119 , - 84 , - 185 , - 150 , - 251 , - 216 , - 45 , - 10 , - 111 , - 76 , - 177 , - 142 , - 243 , - 208 , - 37 , - 2 , - 103 , - 68 , - 169 , - 134 , - 235 , - 200 , - 29 , - 266 , - 95 , - 60 , - 161 , - 126 , - 227 , - 192 , - 21 , - 258 , - 87 , - 52 , - 153 , - 118 , - 219 , - 184 , - 13 , - 250 , - 79 , - 44 , - 145 , - 110 , - 211 , - 176 , - 5 , - 242 , - 71 , - 36 , - 137 , - 102 , - 203 , - 168 , - 269 , - 234 , - 63 , - 28 , - 129 , - 94 , - 195 , - 160 , - 261 , - 226 , - 55 , - 20 , - 121 , - 86 , - 187 , - 152 , - 253 , - 218 , - 47 , - 12 , - 113 , - 78 , - 179 , - 144 , - 245 , - 210 , - 39 , - 4 , - 105 , - 70 , - 171 , - 136 , - 237 , - 202 , - 31 , - 268 , - 97 , - 62 , - 163 , - 128 , - 229 , - 194 , - 23 , - 260 , - 89 , - 54 , - 155 , - 120 , - 221 , - 186 , - 15 , - 252 , - 81 , - 46 , - 147 , - 112 , - 213 , - 178 , - 7 , - 244 , - 73 , - 38 , - 139 , - 104 , - 205 , - 170 , - 271 , - 236 , - 65 , - 30 , - 131 , - 96 , - 197 , - 162 , - 263 , - 228 , - 57 , - 22 , - 123 , - 88 , - 189 , - 154 , - 255 , - 220 , - 49 , - 14 , - 115 , - 80 , - 181 , - 146 , - 247 , - 212 , - 41 , - 6 , - 107 , - 72 , - 173 , - 138 , - 239 , - 204 , - 33 , - 270 , - 99 , - 64 , - 165 , - 130 , - 231 , - 196 , - 25 , - 262 , - 91 , - 56 , - 157 , - 122 , - 223 , - 188 , - 17 , - 254 , - 83 , - 48 , - 149 , - 114 , - 215 , - 180 , - 9 , - 246 , - 75 , - 40 , - 141 , - 106 , - 207 , - 172 , - 1 , - 238 , - 67 , - 32 , - 133 , - 98 , - 199 , - 164 , - 265 , - 230 , - 59 , - 24 , - 125 , - 90 , - 191 , - 156 , - 257 , - 222 , - 51 , - 16 , - 117 , - 82 , - 183 , - 148 , - 249 , - 214 , - 43 , - 8 , - 109 , - 74 , - 175 , - 140 , - 241 , - 206 , - 35 , - 0 , - 33 , - 206 , - 239 , - 132 , - 165 , - 58 , - 91 , - 264 , - 17 , - 190 , - 223 , - 116 , - 149 , - 42 , - 75 , - 248 , - 1 , - 174 , - 207 , - 100 , - 133 , - 26 , - 59 , - 232 , - 265 , - 158 , - 191 , - 84 , - 117 , - 10 , - 43 , - 216 , - 249 , - 142 , - 175 , - 68 , - 101 , - 274 , - 27 , - 200 , - 233 , - 126 , - 159 , - 52 , - 85 , - 258 , - 11 , - 184 , - 217 , - 110 , - 143 , - 36 , - 69 , - 242 , - 275 , - 168 , - 201 , - 94 , - 127 , - 20 , - 53 , - 226 , - 259 , - 152 , - 185 , - 78 , - 111 , - 4 , - 37 , - 210 , - 243 , - 136 , - 169 , - 62 , - 95 , - 268 , - 21 , - 194 , - 227 , - 120 , - 153 , - 46 , - 79 , - 252 , - 5 , - 178 , - 211 , - 104 , - 137 , - 30 , - 63 , - 236 , - 269 , - 162 , - 195 , - 88 , - 121 , - 14 , - 47 , - 220 , - 253 , - 146 , - 179 , - 72 , - 105 , - 278 , - 31 , - 204 , - 237 , - 130 , - 163 , - 56 , - 89 , - 262 , - 15 , - 188 , - 221 , - 114 , - 147 , - 40 , - 73 , - 246 , - 279 , - 172 , - 205 , - 98 , - 131 , - 24 , - 57 , - 230 , - 263 , - 156 , - 189 , - 82 , - 115 , - 8 , - 41 , - 214 , - 247 , - 140 , - 173 , - 66 , - 99 , - 272 , - 25 , - 198 , - 231 , - 124 , - 157 , - 50 , - 83 , - 256 , - 9 , - 182 , - 215 , - 108 , - 141 , - 34 , - 67 , - 240 , - 273 , - 166 , - 199 , - 92 , - 125 , - 18 , - 51 , - 224 , - 257 , - 150 , - 183 , - 76 , - 109 , - 2 , - 35 , - 208 , - 241 , - 134 , - 167 , - 60 , - 93 , - 266 , - 19 , - 192 , - 225 , - 118 , - 151 , - 44 , - 77 , - 250 , - 3 , - 176 , - 209 , - 102 , - 135 , - 28 , - 61 , - 234 , - 267 , - 160 , - 193 , - 86 , - 119 , - 12 , - 45 , - 218 , - 251 , - 144 , - 177 , - 70 , - 103 , - 276 , - 29 , - 202 , - 235 , - 128 , - 161 , - 54 , - 87 , - 260 , - 13 , - 186 , - 219 , - 112 , - 145 , - 38 , - 71 , - 244 , - 277 , - 170 , - 203 , - 96 , - 129 , - 22 , - 55 , - 228 , - 261 , - 154 , - 187 , - 80 , - 113 , - 6 , - 39 , - 212 , - 245 , - 138 , - 171 , - 64 , - 97 , - 270 , - 23 , - 196 , - 229 , - 122 , - 155 , - 48 , - 81 , - 254 , - 7 , - 180 , - 213 , - 106 , - 139 , - 32 , - 65 , - 238 , - 271 , - 164 , - 197 , - 90 , - 123 , - 16 , - 49 , - 222 , - 255 , - 148 , - 181 , - 74 , - 107 , - 0 , - 55 , - 182 , - 93 , - 76 , - 131 , - 258 , - 169 , - 152 , - 207 , - 46 , - 245 , - 228 , - 283 , - 122 , - 33 , - 16 , - 71 , - 198 , - 109 , - 92 , - 147 , - 274 , - 185 , - 168 , - 223 , - 62 , - 261 , - 244 , - 11 , - 138 , - 49 , - 32 , - 87 , - 214 , - 125 , - 108 , - 163 , - 2 , - 201 , - 184 , - 239 , - 78 , - 277 , - 260 , - 27 , - 154 , - 65 , - 48 , - 103 , - 230 , - 141 , - 124 , - 179 , - 18 , - 217 , - 200 , - 255 , - 94 , - 5 , - 276 , - 43 , - 170 , - 81 , - 64 , - 119 , - 246 , - 157 , - 140 , - 195 , - 34 , - 233 , - 216 , - 271 , - 110 , - 21 , - 4 , - 59 , - 186 , - 97 , - 80 , - 135 , - 262 , - 173 , - 156 , - 211 , - 50 , - 249 , - 232 , - 287 , - 126 , - 37 , - 20 , - 75 , - 202 , - 113 , - 96 , - 151 , - 278 , - 189 , - 172 , - 227 , - 66 , - 265 , - 248 , - 15 , - 142 , - 53 , - 36 , - 91 , - 218 , - 129 , - 112 , - 167 , - 6 , - 205 , - 188 , - 243 , - 82 , - 281 , - 264 , - 31 , - 158 , - 69 , - 52 , - 107 , - 234 , - 145 , - 128 , - 183 , - 22 , - 221 , - 204 , - 259 , - 98 , - 9 , - 280 , - 47 , - 174 , - 85 , - 68 , - 123 , - 250 , - 161 , - 144 , - 199 , - 38 , - 237 , - 220 , - 275 , - 114 , - 25 , - 8 , - 63 , - 190 , - 101 , - 84 , - 139 , - 266 , - 177 , - 160 , - 215 , - 54 , - 253 , - 236 , - 3 , - 130 , - 41 , - 24 , - 79 , - 206 , - 117 , - 100 , - 155 , - 282 , - 193 , - 176 , - 231 , - 70 , - 269 , - 252 , - 19 , - 146 , - 57 , - 40 , - 95 , - 222 , - 133 , - 116 , - 171 , - 10 , - 209 , - 192 , - 247 , - 86 , - 285 , - 268 , - 35 , - 162 , - 73 , - 56 , - 111 , - 238 , - 149 , - 132 , - 187 , - 26 , - 225 , - 208 , - 263 , - 102 , - 13 , - 284 , - 51 , - 178 , - 89 , - 72 , - 127 , - 254 , - 165 , - 148 , - 203 , - 42 , - 241 , - 224 , - 279 , - 118 , - 29 , - 12 , - 67 , - 194 , - 105 , - 88 , - 143 , - 270 , - 181 , - 164 , - 219 , - 58 , - 257 , - 240 , - 7 , - 134 , - 45 , - 28 , - 83 , - 210 , - 121 , - 104 , - 159 , - 286 , - 197 , - 180 , - 235 , - 74 , - 273 , - 256 , - 23 , - 150 , - 61 , - 44 , - 99 , - 226 , - 137 , - 120 , - 175 , - 14 , - 213 , - 196 , - 251 , - 90 , - 1 , - 272 , - 39 , - 166 , - 77 , - 60 , - 115 , - 242 , - 153 , - 136 , - 191 , - 30 , - 229 , - 212 , - 267 , - 106 , - 17 , - 0 , - 93 , - 38 , - 131 , - 76 , - 169 , - 114 , - 207 , - 152 , - 245 , - 190 , - 283 , - 228 , - 25 , - 266 , - 63 , - 8 , - 101 , - 46 , - 139 , - 84 , - 177 , - 122 , - 215 , - 160 , - 253 , - 198 , - 291 , - 236 , - 33 , - 274 , - 71 , - 16 , - 109 , - 54 , - 147 , - 92 , - 185 , - 130 , - 223 , - 168 , - 261 , - 206 , - 3 , - 244 , - 41 , - 282 , - 79 , - 24 , - 117 , - 62 , - 155 , - 100 , - 193 , - 138 , - 231 , - 176 , - 269 , - 214 , - 11 , - 252 , - 49 , - 290 , - 87 , - 32 , - 125 , - 70 , - 163 , - 108 , - 201 , - 146 , - 239 , - 184 , - 277 , - 222 , - 19 , - 260 , - 57 , - 2 , - 95 , - 40 , - 133 , - 78 , - 171 , - 116 , - 209 , - 154 , - 247 , - 192 , - 285 , - 230 , - 27 , - 268 , - 65 , - 10 , - 103 , - 48 , - 141 , - 86 , - 179 , - 124 , - 217 , - 162 , - 255 , - 200 , - 293 , - 238 , - 35 , - 276 , - 73 , - 18 , - 111 , - 56 , - 149 , - 94 , - 187 , - 132 , - 225 , - 170 , - 263 , - 208 , - 5 , - 246 , - 43 , - 284 , - 81 , - 26 , - 119 , - 64 , - 157 , - 102 , - 195 , - 140 , - 233 , - 178 , - 271 , - 216 , - 13 , - 254 , - 51 , - 292 , - 89 , - 34 , - 127 , - 72 , - 165 , - 110 , - 203 , - 148 , - 241 , - 186 , - 279 , - 224 , - 21 , - 262 , - 59 , - 4 , - 97 , - 42 , - 135 , - 80 , - 173 , - 118 , - 211 , - 156 , - 249 , - 194 , - 287 , - 232 , - 29 , - 270 , - 67 , - 12 , - 105 , - 50 , - 143 , - 88 , - 181 , - 126 , - 219 , - 164 , - 257 , - 202 , - 295 , - 240 , - 37 , - 278 , - 75 , - 20 , - 113 , - 58 , - 151 , - 96 , - 189 , - 134 , - 227 , - 172 , - 265 , - 210 , - 7 , - 248 , - 45 , - 286 , - 83 , - 28 , - 121 , - 66 , - 159 , - 104 , - 197 , - 142 , - 235 , - 180 , - 273 , - 218 , - 15 , - 256 , - 53 , - 294 , - 91 , - 36 , - 129 , - 74 , - 167 , - 112 , - 205 , - 150 , - 243 , - 188 , - 281 , - 226 , - 23 , - 264 , - 61 , - 6 , - 99 , - 44 , - 137 , - 82 , - 175 , - 120 , - 213 , - 158 , - 251 , - 196 , - 289 , - 234 , - 31 , - 272 , - 69 , - 14 , - 107 , - 52 , - 145 , - 90 , - 183 , - 128 , - 221 , - 166 , - 259 , - 204 , - 1 , - 242 , - 39 , - 280 , - 77 , - 22 , - 115 , - 60 , - 153 , - 98 , - 191 , - 136 , - 229 , - 174 , - 267 , - 212 , - 9 , - 250 , - 47 , - 288 , - 85 , - 30 , - 123 , - 68 , - 161 , - 106 , - 199 , - 144 , - 237 , - 182 , - 275 , - 220 , - 17 , - 258 , - 55 , - 0 , - 113 , - 74 , - 187 , - 148 , - 261 , - 222 , - 31 , - 296 , - 105 , - 66 , - 179 , - 140 , - 253 , - 214 , - 23 , - 288 , - 97 , - 58 , - 171 , - 132 , - 245 , - 206 , - 15 , - 280 , - 89 , - 50 , - 163 , - 124 , - 237 , - 198 , - 7 , - 272 , - 81 , - 42 , - 155 , - 116 , - 229 , - 190 , - 303 , - 264 , - 73 , - 34 , - 147 , - 108 , - 221 , - 182 , - 295 , - 256 , - 65 , - 26 , - 139 , - 100 , - 213 , - 174 , - 287 , - 248 , - 57 , - 18 , - 131 , - 92 , - 205 , - 166 , - 279 , - 240 , - 49 , - 10 , - 123 , - 84 , - 197 , - 158 , - 271 , - 232 , - 41 , - 2 , - 115 , - 76 , - 189 , - 150 , - 263 , - 224 , - 33 , - 298 , - 107 , - 68 , - 181 , - 142 , - 255 , - 216 , - 25 , - 290 , - 99 , - 60 , - 173 , - 134 , - 247 , - 208 , - 17 , - 282 , - 91 , - 52 , - 165 , - 126 , - 239 , - 200 , - 9 , - 274 , - 83 , - 44 , - 157 , - 118 , - 231 , - 192 , - 1 , - 266 , - 75 , - 36 , - 149 , - 110 , - 223 , - 184 , - 297 , - 258 , - 67 , - 28 , - 141 , - 102 , - 215 , - 176 , - 289 , - 250 , - 59 , - 20 , - 133 , - 94 , - 207 , - 168 , - 281 , - 242 , - 51 , - 12 , - 125 , - 86 , - 199 , - 160 , - 273 , - 234 , - 43 , - 4 , - 117 , - 78 , - 191 , - 152 , - 265 , - 226 , - 35 , - 300 , - 109 , - 70 , - 183 , - 144 , - 257 , - 218 , - 27 , - 292 , - 101 , - 62 , - 175 , - 136 , - 249 , - 210 , - 19 , - 284 , - 93 , - 54 , - 167 , - 128 , - 241 , - 202 , - 11 , - 276 , - 85 , - 46 , - 159 , - 120 , - 233 , - 194 , - 3 , - 268 , - 77 , - 38 , - 151 , - 112 , - 225 , - 186 , - 299 , - 260 , - 69 , - 30 , - 143 , - 104 , - 217 , - 178 , - 291 , - 252 , - 61 , - 22 , - 135 , - 96 , - 209 , - 170 , - 283 , - 244 , - 53 , - 14 , - 127 , - 88 , - 201 , - 162 , - 275 , - 236 , - 45 , - 6 , - 119 , - 80 , - 193 , - 154 , - 267 , - 228 , - 37 , - 302 , - 111 , - 72 , - 185 , - 146 , - 259 , - 220 , - 29 , - 294 , - 103 , - 64 , - 177 , - 138 , - 251 , - 212 , - 21 , - 286 , - 95 , - 56 , - 169 , - 130 , - 243 , - 204 , - 13 , - 278 , - 87 , - 48 , - 161 , - 122 , - 235 , - 196 , - 5 , - 270 , - 79 , - 40 , - 153 , - 114 , - 227 , - 188 , - 301 , - 262 , - 71 , - 32 , - 145 , - 106 , - 219 , - 180 , - 293 , - 254 , - 63 , - 24 , - 137 , - 98 , - 211 , - 172 , - 285 , - 246 , - 55 , - 16 , - 129 , - 90 , - 203 , - 164 , - 277 , - 238 , - 47 , - 8 , - 121 , - 82 , - 195 , - 156 , - 269 , - 230 , - 39 , - 0 , - 97 , - 38 , - 135 , - 76 , - 173 , - 114 , - 211 , - 152 , - 249 , - 190 , - 287 , - 228 , - 13 , - 266 , - 51 , - 304 , - 89 , - 30 , - 127 , - 68 , - 165 , - 106 , - 203 , - 144 , - 241 , - 182 , - 279 , - 220 , - 5 , - 258 , - 43 , - 296 , - 81 , - 22 , - 119 , - 60 , - 157 , - 98 , - 195 , - 136 , - 233 , - 174 , - 271 , - 212 , - 309 , - 250 , - 35 , - 288 , - 73 , - 14 , - 111 , - 52 , - 149 , - 90 , - 187 , - 128 , - 225 , - 166 , - 263 , - 204 , - 301 , - 242 , - 27 , - 280 , - 65 , - 6 , - 103 , - 44 , - 141 , - 82 , - 179 , - 120 , - 217 , - 158 , - 255 , - 196 , - 293 , - 234 , - 19 , - 272 , - 57 , - 310 , - 95 , - 36 , - 133 , - 74 , - 171 , - 112 , - 209 , - 150 , - 247 , - 188 , - 285 , - 226 , - 11 , - 264 , - 49 , - 302 , - 87 , - 28 , - 125 , - 66 , - 163 , - 104 , - 201 , - 142 , - 239 , - 180 , - 277 , - 218 , - 3 , - 256 , - 41 , - 294 , - 79 , - 20 , - 117 , - 58 , - 155 , - 96 , - 193 , - 134 , - 231 , - 172 , - 269 , - 210 , - 307 , - 248 , - 33 , - 286 , - 71 , - 12 , - 109 , - 50 , - 147 , - 88 , - 185 , - 126 , - 223 , - 164 , - 261 , - 202 , - 299 , - 240 , - 25 , - 278 , - 63 , - 4 , - 101 , - 42 , - 139 , - 80 , - 177 , - 118 , - 215 , - 156 , - 253 , - 194 , - 291 , - 232 , - 17 , - 270 , - 55 , - 308 , - 93 , - 34 , - 131 , - 72 , - 169 , - 110 , - 207 , - 148 , - 245 , - 186 , - 283 , - 224 , - 9 , - 262 , - 47 , - 300 , - 85 , - 26 , - 123 , - 64 , - 161 , - 102 , - 199 , - 140 , - 237 , - 178 , - 275 , - 216 , - 1 , - 254 , - 39 , - 292 , - 77 , - 18 , - 115 , - 56 , - 153 , - 94 , - 191 , - 132 , - 229 , - 170 , - 267 , - 208 , - 305 , - 246 , - 31 , - 284 , - 69 , - 10 , - 107 , - 48 , - 145 , - 86 , - 183 , - 124 , - 221 , - 162 , - 259 , - 200 , - 297 , - 238 , - 23 , - 276 , - 61 , - 2 , - 99 , - 40 , - 137 , - 78 , - 175 , - 116 , - 213 , - 154 , - 251 , - 192 , - 289 , - 230 , - 15 , - 268 , - 53 , - 306 , - 91 , - 32 , - 129 , - 70 , - 167 , - 108 , - 205 , - 146 , - 243 , - 184 , - 281 , - 222 , - 7 , - 260 , - 45 , - 298 , - 83 , - 24 , - 121 , - 62 , - 159 , - 100 , - 197 , - 138 , - 235 , - 176 , - 273 , - 214 , - 311 , - 252 , - 37 , - 290 , - 75 , - 16 , - 113 , - 54 , - 151 , - 92 , - 189 , - 130 , - 227 , - 168 , - 265 , - 206 , - 303 , - 244 , - 29 , - 282 , - 67 , - 8 , - 105 , - 46 , - 143 , - 84 , - 181 , - 122 , - 219 , - 160 , - 257 , - 198 , - 295 , - 236 , - 21 , - 274 , - 59 , - 0 , - 141 , - 202 , - 183 , - 84 , - 225 , - 286 , - 267 , - 168 , - 309 , - 50 , - 31 , - 252 , - 73 , - 134 , - 115 , - 16 , - 157 , - 218 , - 199 , - 100 , - 241 , - 302 , - 283 , - 184 , - 5 , - 66 , - 47 , - 268 , - 89 , - 150 , - 131 , - 32 , - 173 , - 234 , - 215 , - 116 , - 257 , - 318 , - 299 , - 200 , - 21 , - 82 , - 63 , - 284 , - 105 , - 166 , - 147 , - 48 , - 189 , - 250 , - 231 , - 132 , - 273 , - 14 , - 315 , - 216 , - 37 , - 98 , - 79 , - 300 , - 121 , - 182 , - 163 , - 64 , - 205 , - 266 , - 247 , - 148 , - 289 , - 30 , - 11 , - 232 , - 53 , - 114 , - 95 , - 316 , - 137 , - 198 , - 179 , - 80 , - 221 , - 282 , - 263 , - 164 , - 305 , - 46 , - 27 , - 248 , - 69 , - 130 , - 111 , - 12 , - 153 , - 214 , - 195 , - 96 , - 237 , - 298 , - 279 , - 180 , - 1 , - 62 , - 43 , - 264 , - 85 , - 146 , - 127 , - 28 , - 169 , - 230 , - 211 , - 112 , - 253 , - 314 , - 295 , - 196 , - 17 , - 78 , - 59 , - 280 , - 101 , - 162 , - 143 , - 44 , - 185 , - 246 , - 227 , - 128 , - 269 , - 10 , - 311 , - 212 , - 33 , - 94 , - 75 , - 296 , - 117 , - 178 , - 159 , - 60 , - 201 , - 262 , - 243 , - 144 , - 285 , - 26 , - 7 , - 228 , - 49 , - 110 , - 91 , - 312 , - 133 , - 194 , - 175 , - 76 , - 217 , - 278 , - 259 , - 160 , - 301 , - 42 , - 23 , - 244 , - 65 , - 126 , - 107 , - 8 , - 149 , - 210 , - 191 , - 92 , - 233 , - 294 , - 275 , - 176 , - 317 , - 58 , - 39 , - 260 , - 81 , - 142 , - 123 , - 24 , - 165 , - 226 , - 207 , - 108 , - 249 , - 310 , - 291 , - 192 , - 13 , - 74 , - 55 , - 276 , - 97 , - 158 , - 139 , - 40 , - 181 , - 242 , - 223 , - 124 , - 265 , - 6 , - 307 , - 208 , - 29 , - 90 , - 71 , - 292 , - 113 , - 174 , - 155 , - 56 , - 197 , - 258 , - 239 , - 140 , - 281 , - 22 , - 3 , - 224 , - 45 , - 106 , - 87 , - 308 , - 129 , - 190 , - 171 , - 72 , - 213 , - 274 , - 255 , - 156 , - 297 , - 38 , - 19 , - 240 , - 61 , - 122 , - 103 , - 4 , - 145 , - 206 , - 187 , - 88 , - 229 , - 290 , - 271 , - 172 , - 313 , - 54 , - 35 , - 256 , - 77 , - 138 , - 119 , - 20 , - 161 , - 222 , - 203 , - 104 , - 245 , - 306 , - 287 , - 188 , - 9 , - 70 , - 51 , - 272 , - 93 , - 154 , - 135 , - 36 , - 177 , - 238 , - 219 , - 120 , - 261 , - 2 , - 303 , - 204 , - 25 , - 86 , - 67 , - 288 , - 109 , - 170 , - 151 , - 52 , - 193 , - 254 , - 235 , - 136 , - 277 , - 18 , - 319 , - 220 , - 41 , - 102 , - 83 , - 304 , - 125 , - 186 , - 167 , - 68 , - 209 , - 270 , - 251 , - 152 , - 293 , - 34 , - 15 , - 236 , - 57 , - 118 , - 99 , - 0 , - 103 , - 42 , - 145 , - 84 , - 187 , - 126 , - 229 , - 168 , - 271 , - 210 , - 313 , - 252 , - 27 , - 294 , - 69 , - 8 , - 111 , - 50 , - 153 , - 92 , - 195 , - 134 , - 237 , - 176 , - 279 , - 218 , - 321 , - 260 , - 35 , - 302 , - 77 , - 16 , - 119 , - 58 , - 161 , - 100 , - 203 , - 142 , - 245 , - 184 , - 287 , - 226 , - 1 , - 268 , - 43 , - 310 , - 85 , - 24 , - 127 , - 66 , - 169 , - 108 , - 211 , - 150 , - 253 , - 192 , - 295 , - 234 , - 9 , - 276 , - 51 , - 318 , - 93 , - 32 , - 135 , - 74 , - 177 , - 116 , - 219 , - 158 , - 261 , - 200 , - 303 , - 242 , - 17 , - 284 , - 59 , - 326 , - 101 , - 40 , - 143 , - 82 , - 185 , - 124 , - 227 , - 166 , - 269 , - 208 , - 311 , - 250 , - 25 , - 292 , - 67 , - 6 , - 109 , - 48 , - 151 , - 90 , - 193 , - 132 , - 235 , - 174 , - 277 , - 216 , - 319 , - 258 , - 33 , - 300 , - 75 , - 14 , - 117 , - 56 , - 159 , - 98 , - 201 , - 140 , - 243 , - 182 , - 285 , - 224 , - 327 , - 266 , - 41 , - 308 , - 83 , - 22 , - 125 , - 64 , - 167 , - 106 , - 209 , - 148 , - 251 , - 190 , - 293 , - 232 , - 7 , - 274 , - 49 , - 316 , - 91 , - 30 , - 133 , - 72 , - 175 , - 114 , - 217 , - 156 , - 259 , - 198 , - 301 , - 240 , - 15 , - 282 , - 57 , - 324 , - 99 , - 38 , - 141 , - 80 , - 183 , - 122 , - 225 , - 164 , - 267 , - 206 , - 309 , - 248 , - 23 , - 290 , - 65 , - 4 , - 107 , - 46 , - 149 , - 88 , - 191 , - 130 , - 233 , - 172 , - 275 , - 214 , - 317 , - 256 , - 31 , - 298 , - 73 , - 12 , - 115 , - 54 , - 157 , - 96 , - 199 , - 138 , - 241 , - 180 , - 283 , - 222 , - 325 , - 264 , - 39 , - 306 , - 81 , - 20 , - 123 , - 62 , - 165 , - 104 , - 207 , - 146 , - 249 , - 188 , - 291 , - 230 , - 5 , - 272 , - 47 , - 314 , - 89 , - 28 , - 131 , - 70 , - 173 , - 112 , - 215 , - 154 , - 257 , - 196 , - 299 , - 238 , - 13 , - 280 , - 55 , - 322 , - 97 , - 36 , - 139 , - 78 , - 181 , - 120 , - 223 , - 162 , - 265 , - 204 , - 307 , - 246 , - 21 , - 288 , - 63 , - 2 , - 105 , - 44 , - 147 , - 86 , - 189 , - 128 , - 231 , - 170 , - 273 , - 212 , - 315 , - 254 , - 29 , - 296 , - 71 , - 10 , - 113 , - 52 , - 155 , - 94 , - 197 , - 136 , - 239 , - 178 , - 281 , - 220 , - 323 , - 262 , - 37 , - 304 , - 79 , - 18 , - 121 , - 60 , - 163 , - 102 , - 205 , - 144 , - 247 , - 186 , - 289 , - 228 , - 3 , - 270 , - 45 , - 312 , - 87 , - 26 , - 129 , - 68 , - 171 , - 110 , - 213 , - 152 , - 255 , - 194 , - 297 , - 236 , - 11 , - 278 , - 53 , - 320 , - 95 , - 34 , - 137 , - 76 , - 179 , - 118 , - 221 , - 160 , - 263 , - 202 , - 305 , - 244 , - 19 , - 286 , - 61 , - 0 , - 199 , - 230 , - 93 , - 124 , - 323 , - 18 , - 217 , - 248 , - 111 , - 142 , - 5 , - 36 , - 235 , - 266 , - 129 , - 160 , - 23 , - 54 , - 253 , - 284 , - 147 , - 178 , - 41 , - 72 , - 271 , - 302 , - 165 , - 196 , - 59 , - 90 , - 289 , - 320 , - 183 , - 214 , - 77 , - 108 , - 307 , - 2 , - 201 , - 232 , - 95 , - 126 , - 325 , - 20 , - 219 , - 250 , - 113 , - 144 , - 7 , - 38 , - 237 , - 268 , - 131 , - 162 , - 25 , - 56 , - 255 , - 286 , - 149 , - 180 , - 43 , - 74 , - 273 , - 304 , - 167 , - 198 , - 61 , - 92 , - 291 , - 322 , - 185 , - 216 , - 79 , - 110 , - 309 , - 4 , - 203 , - 234 , - 97 , - 128 , - 327 , - 22 , - 221 , - 252 , - 115 , - 146 , - 9 , - 40 , - 239 , - 270 , - 133 , - 164 , - 27 , - 58 , - 257 , - 288 , - 151 , - 182 , - 45 , - 76 , - 275 , - 306 , - 169 , - 200 , - 63 , - 94 , - 293 , - 324 , - 187 , - 218 , - 81 , - 112 , - 311 , - 6 , - 205 , - 236 , - 99 , - 130 , - 329 , - 24 , - 223 , - 254 , - 117 , - 148 , - 11 , - 42 , - 241 , - 272 , - 135 , - 166 , - 29 , - 60 , - 259 , - 290 , - 153 , - 184 , - 47 , - 78 , - 277 , - 308 , - 171 , - 202 , - 65 , - 96 , - 295 , - 326 , - 189 , - 220 , - 83 , - 114 , - 313 , - 8 , - 207 , - 238 , - 101 , - 132 , - 331 , - 26 , - 225 , - 256 , - 119 , - 150 , - 13 , - 44 , - 243 , - 274 , - 137 , - 168 , - 31 , - 62 , - 261 , - 292 , - 155 , - 186 , - 49 , - 80 , - 279 , - 310 , - 173 , - 204 , - 67 , - 98 , - 297 , - 328 , - 191 , - 222 , - 85 , - 116 , - 315 , - 10 , - 209 , - 240 , - 103 , - 134 , - 333 , - 28 , - 227 , - 258 , - 121 , - 152 , - 15 , - 46 , - 245 , - 276 , - 139 , - 170 , - 33 , - 64 , - 263 , - 294 , - 157 , - 188 , - 51 , - 82 , - 281 , - 312 , - 175 , - 206 , - 69 , - 100 , - 299 , - 330 , - 193 , - 224 , - 87 , - 118 , - 317 , - 12 , - 211 , - 242 , - 105 , - 136 , - 335 , - 30 , - 229 , - 260 , - 123 , - 154 , - 17 , - 48 , - 247 , - 278 , - 141 , - 172 , - 35 , - 66 , - 265 , - 296 , - 159 , - 190 , - 53 , - 84 , - 283 , - 314 , - 177 , - 208 , - 71 , - 102 , - 301 , - 332 , - 195 , - 226 , - 89 , - 120 , - 319 , - 14 , - 213 , - 244 , - 107 , - 138 , - 1 , - 32 , - 231 , - 262 , - 125 , - 156 , - 19 , - 50 , - 249 , - 280 , - 143 , - 174 , - 37 , - 68 , - 267 , - 298 , - 161 , - 192 , - 55 , - 86 , - 285 , - 316 , - 179 , - 210 , - 73 , - 104 , - 303 , - 334 , - 197 , - 228 , - 91 , - 122 , - 321 , - 16 , - 215 , - 246 , - 109 , - 140 , - 3 , - 34 , - 233 , - 264 , - 127 , - 158 , - 21 , - 52 , - 251 , - 282 , - 145 , - 176 , - 39 , - 70 , - 269 , - 300 , - 163 , - 194 , - 57 , - 88 , - 287 , - 318 , - 181 , - 212 , - 75 , - 106 , - 305 , - 0 , - 279 , - 42 , - 321 , - 84 , - 19 , - 126 , - 61 , - 168 , - 103 , - 210 , - 145 , - 252 , - 187 , - 294 , - 229 , - 336 , - 271 , - 34 , - 313 , - 76 , - 11 , - 118 , - 53 , - 160 , - 95 , - 202 , - 137 , - 244 , - 179 , - 286 , - 221 , - 328 , - 263 , - 26 , - 305 , - 68 , - 3 , - 110 , - 45 , - 152 , - 87 , - 194 , - 129 , - 236 , - 171 , - 278 , - 213 , - 320 , - 255 , - 18 , - 297 , - 60 , - 339 , - 102 , - 37 , - 144 , - 79 , - 186 , - 121 , - 228 , - 163 , - 270 , - 205 , - 312 , - 247 , - 10 , - 289 , - 52 , - 331 , - 94 , - 29 , - 136 , - 71 , - 178 , - 113 , - 220 , - 155 , - 262 , - 197 , - 304 , - 239 , - 2 , - 281 , - 44 , - 323 , - 86 , - 21 , - 128 , - 63 , - 170 , - 105 , - 212 , - 147 , - 254 , - 189 , - 296 , - 231 , - 338 , - 273 , - 36 , - 315 , - 78 , - 13 , - 120 , - 55 , - 162 , - 97 , - 204 , - 139 , - 246 , - 181 , - 288 , - 223 , - 330 , - 265 , - 28 , - 307 , - 70 , - 5 , - 112 , - 47 , - 154 , - 89 , - 196 , - 131 , - 238 , - 173 , - 280 , - 215 , - 322 , - 257 , - 20 , - 299 , - 62 , - 341 , - 104 , - 39 , - 146 , - 81 , - 188 , - 123 , - 230 , - 165 , - 272 , - 207 , - 314 , - 249 , - 12 , - 291 , - 54 , - 333 , - 96 , - 31 , - 138 , - 73 , - 180 , - 115 , - 222 , - 157 , - 264 , - 199 , - 306 , - 241 , - 4 , - 283 , - 46 , - 325 , - 88 , - 23 , - 130 , - 65 , - 172 , - 107 , - 214 , - 149 , - 256 , - 191 , - 298 , - 233 , - 340 , - 275 , - 38 , - 317 , - 80 , - 15 , - 122 , - 57 , - 164 , - 99 , - 206 , - 141 , - 248 , - 183 , - 290 , - 225 , - 332 , - 267 , - 30 , - 309 , - 72 , - 7 , - 114 , - 49 , - 156 , - 91 , - 198 , - 133 , - 240 , - 175 , - 282 , - 217 , - 324 , - 259 , - 22 , - 301 , - 64 , - 343 , - 106 , - 41 , - 148 , - 83 , - 190 , - 125 , - 232 , - 167 , - 274 , - 209 , - 316 , - 251 , - 14 , - 293 , - 56 , - 335 , - 98 , - 33 , - 140 , - 75 , - 182 , - 117 , - 224 , - 159 , - 266 , - 201 , - 308 , - 243 , - 6 , - 285 , - 48 , - 327 , - 90 , - 25 , - 132 , - 67 , - 174 , - 109 , - 216 , - 151 , - 258 , - 193 , - 300 , - 235 , - 342 , - 277 , - 40 , - 319 , - 82 , - 17 , - 124 , - 59 , - 166 , - 101 , - 208 , - 143 , - 250 , - 185 , - 292 , - 227 , - 334 , - 269 , - 32 , - 311 , - 74 , - 9 , - 116 , - 51 , - 158 , - 93 , - 200 , - 135 , - 242 , - 177 , - 284 , - 219 , - 326 , - 261 , - 24 , - 303 , - 66 , - 1 , - 108 , - 43 , - 150 , - 85 , - 192 , - 127 , - 234 , - 169 , - 276 , - 211 , - 318 , - 253 , - 16 , - 295 , - 58 , - 337 , - 100 , - 35 , - 142 , - 77 , - 184 , - 119 , - 226 , - 161 , - 268 , - 203 , - 310 , - 245 , - 8 , - 287 , - 50 , - 329 , - 92 , - 27 , - 134 , - 69 , - 176 , - 111 , - 218 , - 153 , - 260 , - 195 , - 302 , - 237 , - 0 , - 65 , - 218 , - 107 , - 84 , - 149 , - 302 , - 191 , - 168 , - 233 , - 34 , - 275 , - 252 , - 317 , - 118 , - 7 , - 336 , - 49 , - 202 , - 91 , - 68 , - 133 , - 286 , - 175 , - 152 , - 217 , - 18 , - 259 , - 236 , - 301 , - 102 , - 343 , - 320 , - 33 , - 186 , - 75 , - 52 , - 117 , - 270 , - 159 , - 136 , - 201 , - 2 , - 243 , - 220 , - 285 , - 86 , - 327 , - 304 , - 17 , - 170 , - 59 , - 36 , - 101 , - 254 , - 143 , - 120 , - 185 , - 338 , - 227 , - 204 , - 269 , - 70 , - 311 , - 288 , - 1 , - 154 , - 43 , - 20 , - 85 , - 238 , - 127 , - 104 , - 169 , - 322 , - 211 , - 188 , - 253 , - 54 , - 295 , - 272 , - 337 , - 138 , - 27 , - 4 , - 69 , - 222 , - 111 , - 88 , - 153 , - 306 , - 195 , - 172 , - 237 , - 38 , - 279 , - 256 , - 321 , - 122 , - 11 , - 340 , - 53 , - 206 , - 95 , - 72 , - 137 , - 290 , - 179 , - 156 , - 221 , - 22 , - 263 , - 240 , - 305 , - 106 , - 347 , - 324 , - 37 , - 190 , - 79 , - 56 , - 121 , - 274 , - 163 , - 140 , - 205 , - 6 , - 247 , - 224 , - 289 , - 90 , - 331 , - 308 , - 21 , - 174 , - 63 , - 40 , - 105 , - 258 , - 147 , - 124 , - 189 , - 342 , - 231 , - 208 , - 273 , - 74 , - 315 , - 292 , - 5 , - 158 , - 47 , - 24 , - 89 , - 242 , - 131 , - 108 , - 173 , - 326 , - 215 , - 192 , - 257 , - 58 , - 299 , - 276 , - 341 , - 142 , - 31 , - 8 , - 73 , - 226 , - 115 , - 92 , - 157 , - 310 , - 199 , - 176 , - 241 , - 42 , - 283 , - 260 , - 325 , - 126 , - 15 , - 344 , - 57 , - 210 , - 99 , - 76 , - 141 , - 294 , - 183 , - 160 , - 225 , - 26 , - 267 , - 244 , - 309 , - 110 , - 351 , - 328 , - 41 , - 194 , - 83 , - 60 , - 125 , - 278 , - 167 , - 144 , - 209 , - 10 , - 251 , - 228 , - 293 , - 94 , - 335 , - 312 , - 25 , - 178 , - 67 , - 44 , - 109 , - 262 , - 151 , - 128 , - 193 , - 346 , - 235 , - 212 , - 277 , - 78 , - 319 , - 296 , - 9 , - 162 , - 51 , - 28 , - 93 , - 246 , - 135 , - 112 , - 177 , - 330 , - 219 , - 196 , - 261 , - 62 , - 303 , - 280 , - 345 , - 146 , - 35 , - 12 , - 77 , - 230 , - 119 , - 96 , - 161 , - 314 , - 203 , - 180 , - 245 , - 46 , - 287 , - 264 , - 329 , - 130 , - 19 , - 348 , - 61 , - 214 , - 103 , - 80 , - 145 , - 298 , - 187 , - 164 , - 229 , - 30 , - 271 , - 248 , - 313 , - 114 , - 3 , - 332 , - 45 , - 198 , - 87 , - 64 , - 129 , - 282 , - 171 , - 148 , - 213 , - 14 , - 255 , - 232 , - 297 , - 98 , - 339 , - 316 , - 29 , - 182 , - 71 , - 48 , - 113 , - 266 , - 155 , - 132 , - 197 , - 350 , - 239 , - 216 , - 281 , - 82 , - 323 , - 300 , - 13 , - 166 , - 55 , - 32 , - 97 , - 250 , - 139 , - 116 , - 181 , - 334 , - 223 , - 200 , - 265 , - 66 , - 307 , - 284 , - 349 , - 150 , - 39 , - 16 , - 81 , - 234 , - 123 , - 100 , - 165 , - 318 , - 207 , - 184 , - 249 , - 50 , - 291 , - 268 , - 333 , - 134 , - 23 , - 0 , - 223 , - 266 , - 129 , - 172 , - 35 , - 78 , - 301 , - 344 , - 207 , - 250 , - 113 , - 156 , - 19 , - 62 , - 285 , - 328 , - 191 , - 234 , - 97 , - 140 , - 3 , - 46 , - 269 , - 312 , - 175 , - 218 , - 81 , - 124 , - 347 , - 30 , - 253 , - 296 , - 159 , - 202 , - 65 , - 108 , - 331 , - 14 , - 237 , - 280 , - 143 , - 186 , - 49 , - 92 , - 315 , - 358 , - 221 , - 264 , - 127 , - 170 , - 33 , - 76 , - 299 , - 342 , - 205 , - 248 , - 111 , - 154 , - 17 , - 60 , - 283 , - 326 , - 189 , - 232 , - 95 , - 138 , - 1 , - 44 , - 267 , - 310 , - 173 , - 216 , - 79 , - 122 , - 345 , - 28 , - 251 , - 294 , - 157 , - 200 , - 63 , - 106 , - 329 , - 12 , - 235 , - 278 , - 141 , - 184 , - 47 , - 90 , - 313 , - 356 , - 219 , - 262 , - 125 , - 168 , - 31 , - 74 , - 297 , - 340 , - 203 , - 246 , - 109 , - 152 , - 15 , - 58 , - 281 , - 324 , - 187 , - 230 , - 93 , - 136 , - 359 , - 42 , - 265 , - 308 , - 171 , - 214 , - 77 , - 120 , - 343 , - 26 , - 249 , - 292 , - 155 , - 198 , - 61 , - 104 , - 327 , - 10 , - 233 , - 276 , - 139 , - 182 , - 45 , - 88 , - 311 , - 354 , - 217 , - 260 , - 123 , - 166 , - 29 , - 72 , - 295 , - 338 , - 201 , - 244 , - 107 , - 150 , - 13 , - 56 , - 279 , - 322 , - 185 , - 228 , - 91 , - 134 , - 357 , - 40 , - 263 , - 306 , - 169 , - 212 , - 75 , - 118 , - 341 , - 24 , - 247 , - 290 , - 153 , - 196 , - 59 , - 102 , - 325 , - 8 , - 231 , - 274 , - 137 , - 180 , - 43 , - 86 , - 309 , - 352 , - 215 , - 258 , - 121 , - 164 , - 27 , - 70 , - 293 , - 336 , - 199 , - 242 , - 105 , - 148 , - 11 , - 54 , - 277 , - 320 , - 183 , - 226 , - 89 , - 132 , - 355 , - 38 , - 261 , - 304 , - 167 , - 210 , - 73 , - 116 , - 339 , - 22 , - 245 , - 288 , - 151 , - 194 , - 57 , - 100 , - 323 , - 6 , - 229 , - 272 , - 135 , - 178 , - 41 , - 84 , - 307 , - 350 , - 213 , - 256 , - 119 , - 162 , - 25 , - 68 , - 291 , - 334 , - 197 , - 240 , - 103 , - 146 , - 9 , - 52 , - 275 , - 318 , - 181 , - 224 , - 87 , - 130 , - 353 , - 36 , - 259 , - 302 , - 165 , - 208 , - 71 , - 114 , - 337 , - 20 , - 243 , - 286 , - 149 , - 192 , - 55 , - 98 , - 321 , - 4 , - 227 , - 270 , - 133 , - 176 , - 39 , - 82 , - 305 , - 348 , - 211 , - 254 , - 117 , - 160 , - 23 , - 66 , - 289 , - 332 , - 195 , - 238 , - 101 , - 144 , - 7 , - 50 , - 273 , - 316 , - 179 , - 222 , - 85 , - 128 , - 351 , - 34 , - 257 , - 300 , - 163 , - 206 , - 69 , - 112 , - 335 , - 18 , - 241 , - 284 , - 147 , - 190 , - 53 , - 96 , - 319 , - 2 , - 225 , - 268 , - 131 , - 174 , - 37 , - 80 , - 303 , - 346 , - 209 , - 252 , - 115 , - 158 , - 21 , - 64 , - 287 , - 330 , - 193 , - 236 , - 99 , - 142 , - 5 , - 48 , - 271 , - 314 , - 177 , - 220 , - 83 , - 126 , - 349 , - 32 , - 255 , - 298 , - 161 , - 204 , - 67 , - 110 , - 333 , - 16 , - 239 , - 282 , - 145 , - 188 , - 51 , - 94 , - 317 , - 0 , - 127 , - 346 , - 289 , - 324 , - 83 , - 302 , - 245 , - 280 , - 39 , - 258 , - 201 , - 236 , - 363 , - 214 , - 157 , - 192 , - 319 , - 170 , - 113 , - 148 , - 275 , - 126 , - 69 , - 104 , - 231 , - 82 , - 25 , - 60 , - 187 , - 38 , - 349 , - 16 , - 143 , - 362 , - 305 , - 340 , - 99 , - 318 , - 261 , - 296 , - 55 , - 274 , - 217 , - 252 , - 11 , - 230 , - 173 , - 208 , - 335 , - 186 , - 129 , - 164 , - 291 , - 142 , - 85 , - 120 , - 247 , - 98 , - 41 , - 76 , - 203 , - 54 , - 365 , - 32 , - 159 , - 10 , - 321 , - 356 , - 115 , - 334 , - 277 , - 312 , - 71 , - 290 , - 233 , - 268 , - 27 , - 246 , - 189 , - 224 , - 351 , - 202 , - 145 , - 180 , - 307 , - 158 , - 101 , - 136 , - 263 , - 114 , - 57 , - 92 , - 219 , - 70 , - 13 , - 48 , - 175 , - 26 , - 337 , - 4 , - 131 , - 350 , - 293 , - 328 , - 87 , - 306 , - 249 , - 284 , - 43 , - 262 , - 205 , - 240 , - 367 , - 218 , - 161 , - 196 , - 323 , - 174 , - 117 , - 152 , - 279 , - 130 , - 73 , - 108 , - 235 , - 86 , - 29 , - 64 , - 191 , - 42 , - 353 , - 20 , - 147 , - 366 , - 309 , - 344 , - 103 , - 322 , - 265 , - 300 , - 59 , - 278 , - 221 , - 256 , - 15 , - 234 , - 177 , - 212 , - 339 , - 190 , - 133 , - 168 , - 295 , - 146 , - 89 , - 124 , - 251 , - 102 , - 45 , - 80 , - 207 , - 58 , - 1 , - 36 , - 163 , - 14 , - 325 , - 360 , - 119 , - 338 , - 281 , - 316 , - 75 , - 294 , - 237 , - 272 , - 31 , - 250 , - 193 , - 228 , - 355 , - 206 , - 149 , - 184 , - 311 , - 162 , - 105 , - 140 , - 267 , - 118 , - 61 , - 96 , - 223 , - 74 , - 17 , - 52 , - 179 , - 30 , - 341 , - 8 , - 135 , - 354 , - 297 , - 332 , - 91 , - 310 , - 253 , - 288 , - 47 , - 266 , - 209 , - 244 , - 3 , - 222 , - 165 , - 200 , - 327 , - 178 , - 121 , - 156 , - 283 , - 134 , - 77 , - 112 , - 239 , - 90 , - 33 , - 68 , - 195 , - 46 , - 357 , - 24 , - 151 , - 2 , - 313 , - 348 , - 107 , - 326 , - 269 , - 304 , - 63 , - 282 , - 225 , - 260 , - 19 , - 238 , - 181 , - 216 , - 343 , - 194 , - 137 , - 172 , - 299 , - 150 , - 93 , - 128 , - 255 , - 106 , - 49 , - 84 , - 211 , - 62 , - 5 , - 40 , - 167 , - 18 , - 329 , - 364 , - 123 , - 342 , - 285 , - 320 , - 79 , - 298 , - 241 , - 276 , - 35 , - 254 , - 197 , - 232 , - 359 , - 210 , - 153 , - 188 , - 315 , - 166 , - 109 , - 144 , - 271 , - 122 , - 65 , - 100 , - 227 , - 78 , - 21 , - 56 , - 183 , - 34 , - 345 , - 12 , - 139 , - 358 , - 301 , - 336 , - 95 , - 314 , - 257 , - 292 , - 51 , - 270 , - 213 , - 248 , - 7 , - 226 , - 169 , - 204 , - 331 , - 182 , - 125 , - 160 , - 287 , - 138 , - 81 , - 116 , - 243 , - 94 , - 37 , - 72 , - 199 , - 50 , - 361 , - 28 , - 155 , - 6 , - 317 , - 352 , - 111 , - 330 , - 273 , - 308 , - 67 , - 286 , - 229 , - 264 , - 23 , - 242 , - 185 , - 220 , - 347 , - 198 , - 141 , - 176 , - 303 , - 154 , - 97 , - 132 , - 259 , - 110 , - 53 , - 88 , - 215 , - 66 , - 9 , - 44 , - 171 , - 22 , - 333 , - 0 , - 139 , - 90 , - 229 , - 180 , - 319 , - 270 , - 33 , - 360 , - 123 , - 74 , - 213 , - 164 , - 303 , - 254 , - 17 , - 344 , - 107 , - 58 , - 197 , - 148 , - 287 , - 238 , - 1 , - 328 , - 91 , - 42 , - 181 , - 132 , - 271 , - 222 , - 361 , - 312 , - 75 , - 26 , - 165 , - 116 , - 255 , - 206 , - 345 , - 296 , - 59 , - 10 , - 149 , - 100 , - 239 , - 190 , - 329 , - 280 , - 43 , - 370 , - 133 , - 84 , - 223 , - 174 , - 313 , - 264 , - 27 , - 354 , - 117 , - 68 , - 207 , - 158 , - 297 , - 248 , - 11 , - 338 , - 101 , - 52 , - 191 , - 142 , - 281 , - 232 , - 371 , - 322 , - 85 , - 36 , - 175 , - 126 , - 265 , - 216 , - 355 , - 306 , - 69 , - 20 , - 159 , - 110 , - 249 , - 200 , - 339 , - 290 , - 53 , - 4 , - 143 , - 94 , - 233 , - 184 , - 323 , - 274 , - 37 , - 364 , - 127 , - 78 , - 217 , - 168 , - 307 , - 258 , - 21 , - 348 , - 111 , - 62 , - 201 , - 152 , - 291 , - 242 , - 5 , - 332 , - 95 , - 46 , - 185 , - 136 , - 275 , - 226 , - 365 , - 316 , - 79 , - 30 , - 169 , - 120 , - 259 , - 210 , - 349 , - 300 , - 63 , - 14 , - 153 , - 104 , - 243 , - 194 , - 333 , - 284 , - 47 , - 374 , - 137 , - 88 , - 227 , - 178 , - 317 , - 268 , - 31 , - 358 , - 121 , - 72 , - 211 , - 162 , - 301 , - 252 , - 15 , - 342 , - 105 , - 56 , - 195 , - 146 , - 285 , - 236 , - 375 , - 326 , - 89 , - 40 , - 179 , - 130 , - 269 , - 220 , - 359 , - 310 , - 73 , - 24 , - 163 , - 114 , - 253 , - 204 , - 343 , - 294 , - 57 , - 8 , - 147 , - 98 , - 237 , - 188 , - 327 , - 278 , - 41 , - 368 , - 131 , - 82 , - 221 , - 172 , - 311 , - 262 , - 25 , - 352 , - 115 , - 66 , - 205 , - 156 , - 295 , - 246 , - 9 , - 336 , - 99 , - 50 , - 189 , - 140 , - 279 , - 230 , - 369 , - 320 , - 83 , - 34 , - 173 , - 124 , - 263 , - 214 , - 353 , - 304 , - 67 , - 18 , - 157 , - 108 , - 247 , - 198 , - 337 , - 288 , - 51 , - 2 , - 141 , - 92 , - 231 , - 182 , - 321 , - 272 , - 35 , - 362 , - 125 , - 76 , - 215 , - 166 , - 305 , - 256 , - 19 , - 346 , - 109 , - 60 , - 199 , - 150 , - 289 , - 240 , - 3 , - 330 , - 93 , - 44 , - 183 , - 134 , - 273 , - 224 , - 363 , - 314 , - 77 , - 28 , - 167 , - 118 , - 257 , - 208 , - 347 , - 298 , - 61 , - 12 , - 151 , - 102 , - 241 , - 192 , - 331 , - 282 , - 45 , - 372 , - 135 , - 86 , - 225 , - 176 , - 315 , - 266 , - 29 , - 356 , - 119 , - 70 , - 209 , - 160 , - 299 , - 250 , - 13 , - 340 , - 103 , - 54 , - 193 , - 144 , - 283 , - 234 , - 373 , - 324 , - 87 , - 38 , - 177 , - 128 , - 267 , - 218 , - 357 , - 308 , - 71 , - 22 , - 161 , - 112 , - 251 , - 202 , - 341 , - 292 , - 55 , - 6 , - 145 , - 96 , - 235 , - 186 , - 325 , - 276 , - 39 , - 366 , - 129 , - 80 , - 219 , - 170 , - 309 , - 260 , - 23 , - 350 , - 113 , - 64 , - 203 , - 154 , - 293 , - 244 , - 7 , - 334 , - 97 , - 48 , - 187 , - 138 , - 277 , - 228 , - 367 , - 318 , - 81 , - 32 , - 171 , - 122 , - 261 , - 212 , - 351 , - 302 , - 65 , - 16 , - 155 , - 106 , - 245 , - 196 , - 335 , - 286 , - 49 , - 0 , - 71 , - 238 , - 117 , - 92 , - 163 , - 330 , - 209 , - 184 , - 255 , - 38 , - 301 , - 276 , - 347 , - 130 , - 9 , - 368 , - 55 , - 222 , - 101 , - 76 , - 147 , - 314 , - 193 , - 168 , - 239 , - 22 , - 285 , - 260 , - 331 , - 114 , - 377 , - 352 , - 39 , - 206 , - 85 , - 60 , - 131 , - 298 , - 177 , - 152 , - 223 , - 6 , - 269 , - 244 , - 315 , - 98 , - 361 , - 336 , - 23 , - 190 , - 69 , - 44 , - 115 , - 282 , - 161 , - 136 , - 207 , - 374 , - 253 , - 228 , - 299 , - 82 , - 345 , - 320 , - 7 , - 174 , - 53 , - 28 , - 99 , - 266 , - 145 , - 120 , - 191 , - 358 , - 237 , - 212 , - 283 , - 66 , - 329 , - 304 , - 375 , - 158 , - 37 , - 12 , - 83 , - 250 , - 129 , - 104 , - 175 , - 342 , - 221 , - 196 , - 267 , - 50 , - 313 , - 288 , - 359 , - 142 , - 21 , - 380 , - 67 , - 234 , - 113 , - 88 , - 159 , - 326 , - 205 , - 180 , - 251 , - 34 , - 297 , - 272 , - 343 , - 126 , - 5 , - 364 , - 51 , - 218 , - 97 , - 72 , - 143 , - 310 , - 189 , - 164 , - 235 , - 18 , - 281 , - 256 , - 327 , - 110 , - 373 , - 348 , - 35 , - 202 , - 81 , - 56 , - 127 , - 294 , - 173 , - 148 , - 219 , - 2 , - 265 , - 240 , - 311 , - 94 , - 357 , - 332 , - 19 , - 186 , - 65 , - 40 , - 111 , - 278 , - 157 , - 132 , - 203 , - 370 , - 249 , - 224 , - 295 , - 78 , - 341 , - 316 , - 3 , - 170 , - 49 , - 24 , - 95 , - 262 , - 141 , - 116 , - 187 , - 354 , - 233 , - 208 , - 279 , - 62 , - 325 , - 300 , - 371 , - 154 , - 33 , - 8 , - 79 , - 246 , - 125 , - 100 , - 171 , - 338 , - 217 , - 192 , - 263 , - 46 , - 309 , - 284 , - 355 , - 138 , - 17 , - 376 , - 63 , - 230 , - 109 , - 84 , - 155 , - 322 , - 201 , - 176 , - 247 , - 30 , - 293 , - 268 , - 339 , - 122 , - 1 , - 360 , - 47 , - 214 , - 93 , - 68 , - 139 , - 306 , - 185 , - 160 , - 231 , - 14 , - 277 , - 252 , - 323 , - 106 , - 369 , - 344 , - 31 , - 198 , - 77 , - 52 , - 123 , - 290 , - 169 , - 144 , - 215 , - 382 , - 261 , - 236 , - 307 , - 90 , - 353 , - 328 , - 15 , - 182 , - 61 , - 36 , - 107 , - 274 , - 153 , - 128 , - 199 , - 366 , - 245 , - 220 , - 291 , - 74 , - 337 , - 312 , - 383 , - 166 , - 45 , - 20 , - 91 , - 258 , - 137 , - 112 , - 183 , - 350 , - 229 , - 204 , - 275 , - 58 , - 321 , - 296 , - 367 , - 150 , - 29 , - 4 , - 75 , - 242 , - 121 , - 96 , - 167 , - 334 , - 213 , - 188 , - 259 , - 42 , - 305 , - 280 , - 351 , - 134 , - 13 , - 372 , - 59 , - 226 , - 105 , - 80 , - 151 , - 318 , - 197 , - 172 , - 243 , - 26 , - 289 , - 264 , - 335 , - 118 , - 381 , - 356 , - 43 , - 210 , - 89 , - 64 , - 135 , - 302 , - 181 , - 156 , - 227 , - 10 , - 273 , - 248 , - 319 , - 102 , - 365 , - 340 , - 27 , - 194 , - 73 , - 48 , - 119 , - 286 , - 165 , - 140 , - 211 , - 378 , - 257 , - 232 , - 303 , - 86 , - 349 , - 324 , - 11 , - 178 , - 57 , - 32 , - 103 , - 270 , - 149 , - 124 , - 195 , - 362 , - 241 , - 216 , - 287 , - 70 , - 333 , - 308 , - 379 , - 162 , - 41 , - 16 , - 87 , - 254 , - 133 , - 108 , - 179 , - 346 , - 225 , - 200 , - 271 , - 54 , - 317 , - 292 , - 363 , - 146 , - 25 , - 0 , - 341 , - 94 , - 43 , - 188 , - 137 , - 282 , - 231 , - 376 , - 325 , - 78 , - 27 , - 172 , - 121 , - 266 , - 215 , - 360 , - 309 , - 62 , - 11 , - 156 , - 105 , - 250 , - 199 , - 344 , - 293 , - 46 , - 387 , - 140 , - 89 , - 234 , - 183 , - 328 , - 277 , - 30 , - 371 , - 124 , - 73 , - 218 , - 167 , - 312 , - 261 , - 14 , - 355 , - 108 , - 57 , - 202 , - 151 , - 296 , - 245 , - 390 , - 339 , - 92 , - 41 , - 186 , - 135 , - 280 , - 229 , - 374 , - 323 , - 76 , - 25 , - 170 , - 119 , - 264 , - 213 , - 358 , - 307 , - 60 , - 9 , - 154 , - 103 , - 248 , - 197 , - 342 , - 291 , - 44 , - 385 , - 138 , - 87 , - 232 , - 181 , - 326 , - 275 , - 28 , - 369 , - 122 , - 71 , - 216 , - 165 , - 310 , - 259 , - 12 , - 353 , - 106 , - 55 , - 200 , - 149 , - 294 , - 243 , - 388 , - 337 , - 90 , - 39 , - 184 , - 133 , - 278 , - 227 , - 372 , - 321 , - 74 , - 23 , - 168 , - 117 , - 262 , - 211 , - 356 , - 305 , - 58 , - 7 , - 152 , - 101 , - 246 , - 195 , - 340 , - 289 , - 42 , - 383 , - 136 , - 85 , - 230 , - 179 , - 324 , - 273 , - 26 , - 367 , - 120 , - 69 , - 214 , - 163 , - 308 , - 257 , - 10 , - 351 , - 104 , - 53 , - 198 , - 147 , - 292 , - 241 , - 386 , - 335 , - 88 , - 37 , - 182 , - 131 , - 276 , - 225 , - 370 , - 319 , - 72 , - 21 , - 166 , - 115 , - 260 , - 209 , - 354 , - 303 , - 56 , - 5 , - 150 , - 99 , - 244 , - 193 , - 338 , - 287 , - 40 , - 381 , - 134 , - 83 , - 228 , - 177 , - 322 , - 271 , - 24 , - 365 , - 118 , - 67 , - 212 , - 161 , - 306 , - 255 , - 8 , - 349 , - 102 , - 51 , - 196 , - 145 , - 290 , - 239 , - 384 , - 333 , - 86 , - 35 , - 180 , - 129 , - 274 , - 223 , - 368 , - 317 , - 70 , - 19 , - 164 , - 113 , - 258 , - 207 , - 352 , - 301 , - 54 , - 3 , - 148 , - 97 , - 242 , - 191 , - 336 , - 285 , - 38 , - 379 , - 132 , - 81 , - 226 , - 175 , - 320 , - 269 , - 22 , - 363 , - 116 , - 65 , - 210 , - 159 , - 304 , - 253 , - 6 , - 347 , - 100 , - 49 , - 194 , - 143 , - 288 , - 237 , - 382 , - 331 , - 84 , - 33 , - 178 , - 127 , - 272 , - 221 , - 366 , - 315 , - 68 , - 17 , - 162 , - 111 , - 256 , - 205 , - 350 , - 299 , - 52 , - 1 , - 146 , - 95 , - 240 , - 189 , - 334 , - 283 , - 36 , - 377 , - 130 , - 79 , - 224 , - 173 , - 318 , - 267 , - 20 , - 361 , - 114 , - 63 , - 208 , - 157 , - 302 , - 251 , - 4 , - 345 , - 98 , - 47 , - 192 , - 141 , - 286 , - 235 , - 380 , - 329 , - 82 , - 31 , - 176 , - 125 , - 270 , - 219 , - 364 , - 313 , - 66 , - 15 , - 160 , - 109 , - 254 , - 203 , - 348 , - 297 , - 50 , - 391 , - 144 , - 93 , - 238 , - 187 , - 332 , - 281 , - 34 , - 375 , - 128 , - 77 , - 222 , - 171 , - 316 , - 265 , - 18 , - 359 , - 112 , - 61 , - 206 , - 155 , - 300 , - 249 , - 2 , - 343 , - 96 , - 45 , - 190 , - 139 , - 284 , - 233 , - 378 , - 327 , - 80 , - 29 , - 174 , - 123 , - 268 , - 217 , - 362 , - 311 , - 64 , - 13 , - 158 , - 107 , - 252 , - 201 , - 346 , - 295 , - 48 , - 389 , - 142 , - 91 , - 236 , - 185 , - 330 , - 279 , - 32 , - 373 , - 126 , - 75 , - 220 , - 169 , - 314 , - 263 , - 16 , - 357 , - 110 , - 59 , - 204 , - 153 , - 298 , - 247 , - 0 , - 191 , - 62 , - 13 , - 44 , - 155 , - 346 , - 217 , - 168 , - 199 , - 310 , - 101 , - 372 , - 323 , - 354 , - 65 , - 256 , - 127 , - 78 , - 109 , - 220 , - 11 , - 282 , - 233 , - 264 , - 375 , - 166 , - 37 , - 388 , - 19 , - 130 , - 321 , - 192 , - 143 , - 174 , - 285 , - 76 , - 347 , - 298 , - 329 , - 40 , - 231 , - 102 , - 53 , - 84 , - 195 , - 386 , - 257 , - 208 , - 239 , - 350 , - 141 , - 12 , - 363 , - 394 , - 105 , - 296 , - 167 , - 118 , - 149 , - 260 , - 51 , - 322 , - 273 , - 304 , - 15 , - 206 , - 77 , - 28 , - 59 , - 170 , - 361 , - 232 , - 183 , - 214 , - 325 , - 116 , - 387 , - 338 , - 369 , - 80 , - 271 , - 142 , - 93 , - 124 , - 235 , - 26 , - 297 , - 248 , - 279 , - 390 , - 181 , - 52 , - 3 , - 34 , - 145 , - 336 , - 207 , - 158 , - 189 , - 300 , - 91 , - 362 , - 313 , - 344 , - 55 , - 246 , - 117 , - 68 , - 99 , - 210 , - 1 , - 272 , - 223 , - 254 , - 365 , - 156 , - 27 , - 378 , - 9 , - 120 , - 311 , - 182 , - 133 , - 164 , - 275 , - 66 , - 337 , - 288 , - 319 , - 30 , - 221 , - 92 , - 43 , - 74 , - 185 , - 376 , - 247 , - 198 , - 229 , - 340 , - 131 , - 2 , - 353 , - 384 , - 95 , - 286 , - 157 , - 108 , - 139 , - 250 , - 41 , - 312 , - 263 , - 294 , - 5 , - 196 , - 67 , - 18 , - 49 , - 160 , - 351 , - 222 , - 173 , - 204 , - 315 , - 106 , - 377 , - 328 , - 359 , - 70 , - 261 , - 132 , - 83 , - 114 , - 225 , - 16 , - 287 , - 238 , - 269 , - 380 , - 171 , - 42 , - 393 , - 24 , - 135 , - 326 , - 197 , - 148 , - 179 , - 290 , - 81 , - 352 , - 303 , - 334 , - 45 , - 236 , - 107 , - 58 , - 89 , - 200 , - 391 , - 262 , - 213 , - 244 , - 355 , - 146 , - 17 , - 368 , - 399 , - 110 , - 301 , - 172 , - 123 , - 154 , - 265 , - 56 , - 327 , - 278 , - 309 , - 20 , - 211 , - 82 , - 33 , - 64 , - 175 , - 366 , - 237 , - 188 , - 219 , - 330 , - 121 , - 392 , - 343 , - 374 , - 85 , - 276 , - 147 , - 98 , - 129 , - 240 , - 31 , - 302 , - 253 , - 284 , - 395 , - 186 , - 57 , - 8 , - 39 , - 150 , - 341 , - 212 , - 163 , - 194 , - 305 , - 96 , - 367 , - 318 , - 349 , - 60 , - 251 , - 122 , - 73 , - 104 , - 215 , - 6 , - 277 , - 228 , - 259 , - 370 , - 161 , - 32 , - 383 , - 14 , - 125 , - 316 , - 187 , - 138 , - 169 , - 280 , - 71 , - 342 , - 293 , - 324 , - 35 , - 226 , - 97 , - 48 , - 79 , - 190 , - 381 , - 252 , - 203 , - 234 , - 345 , - 136 , - 7 , - 358 , - 389 , - 100 , - 291 , - 162 , - 113 , - 144 , - 255 , - 46 , - 317 , - 268 , - 299 , - 10 , - 201 , - 72 , - 23 , - 54 , - 165 , - 356 , - 227 , - 178 , - 209 , - 320 , - 111 , - 382 , - 333 , - 364 , - 75 , - 266 , - 137 , - 88 , - 119 , - 230 , - 21 , - 292 , - 243 , - 274 , - 385 , - 176 , - 47 , - 398 , - 29 , - 140 , - 331 , - 202 , - 153 , - 184 , - 295 , - 86 , - 357 , - 308 , - 339 , - 50 , - 241 , - 112 , - 63 , - 94 , - 205 , - 396 , - 267 , - 218 , - 249 , - 360 , - 151 , - 22 , - 373 , - 4 , - 115 , - 306 , - 177 , - 128 , - 159 , - 270 , - 61 , - 332 , - 283 , - 314 , - 25 , - 216 , - 87 , - 38 , - 69 , - 180 , - 371 , - 242 , - 193 , - 224 , - 335 , - 126 , - 397 , - 348 , - 379 , - 90 , - 281 , - 152 , - 103 , - 134 , - 245 , - 36 , - 307 , - 258 , - 289 , - 0 , - 257 , - 310 , - 159 , - 212 , - 61 , - 114 , - 371 , - 16 , - 273 , - 326 , - 175 , - 228 , - 77 , - 130 , - 387 , - 32 , - 289 , - 342 , - 191 , - 244 , - 93 , - 146 , - 403 , - 48 , - 305 , - 358 , - 207 , - 260 , - 109 , - 162 , - 11 , - 64 , - 321 , - 374 , - 223 , - 276 , - 125 , - 178 , - 27 , - 80 , - 337 , - 390 , - 239 , - 292 , - 141 , - 194 , - 43 , - 96 , - 353 , - 406 , - 255 , - 308 , - 157 , - 210 , - 59 , - 112 , - 369 , - 14 , - 271 , - 324 , - 173 , - 226 , - 75 , - 128 , - 385 , - 30 , - 287 , - 340 , - 189 , - 242 , - 91 , - 144 , - 401 , - 46 , - 303 , - 356 , - 205 , - 258 , - 107 , - 160 , - 9 , - 62 , - 319 , - 372 , - 221 , - 274 , - 123 , - 176 , - 25 , - 78 , - 335 , - 388 , - 237 , - 290 , - 139 , - 192 , - 41 , - 94 , - 351 , - 404 , - 253 , - 306 , - 155 , - 208 , - 57 , - 110 , - 367 , - 12 , - 269 , - 322 , - 171 , - 224 , - 73 , - 126 , - 383 , - 28 , - 285 , - 338 , - 187 , - 240 , - 89 , - 142 , - 399 , - 44 , - 301 , - 354 , - 203 , - 256 , - 105 , - 158 , - 7 , - 60 , - 317 , - 370 , - 219 , - 272 , - 121 , - 174 , - 23 , - 76 , - 333 , - 386 , - 235 , - 288 , - 137 , - 190 , - 39 , - 92 , - 349 , - 402 , - 251 , - 304 , - 153 , - 206 , - 55 , - 108 , - 365 , - 10 , - 267 , - 320 , - 169 , - 222 , - 71 , - 124 , - 381 , - 26 , - 283 , - 336 , - 185 , - 238 , - 87 , - 140 , - 397 , - 42 , - 299 , - 352 , - 201 , - 254 , - 103 , - 156 , - 5 , - 58 , - 315 , - 368 , - 217 , - 270 , - 119 , - 172 , - 21 , - 74 , - 331 , - 384 , - 233 , - 286 , - 135 , - 188 , - 37 , - 90 , - 347 , - 400 , - 249 , - 302 , - 151 , - 204 , - 53 , - 106 , - 363 , - 8 , - 265 , - 318 , - 167 , - 220 , - 69 , - 122 , - 379 , - 24 , - 281 , - 334 , - 183 , - 236 , - 85 , - 138 , - 395 , - 40 , - 297 , - 350 , - 199 , - 252 , - 101 , - 154 , - 3 , - 56 , - 313 , - 366 , - 215 , - 268 , - 117 , - 170 , - 19 , - 72 , - 329 , - 382 , - 231 , - 284 , - 133 , - 186 , - 35 , - 88 , - 345 , - 398 , - 247 , - 300 , - 149 , - 202 , - 51 , - 104 , - 361 , - 6 , - 263 , - 316 , - 165 , - 218 , - 67 , - 120 , - 377 , - 22 , - 279 , - 332 , - 181 , - 234 , - 83 , - 136 , - 393 , - 38 , - 295 , - 348 , - 197 , - 250 , - 99 , - 152 , - 1 , - 54 , - 311 , - 364 , - 213 , - 266 , - 115 , - 168 , - 17 , - 70 , - 327 , - 380 , - 229 , - 282 , - 131 , - 184 , - 33 , - 86 , - 343 , - 396 , - 245 , - 298 , - 147 , - 200 , - 49 , - 102 , - 359 , - 4 , - 261 , - 314 , - 163 , - 216 , - 65 , - 118 , - 375 , - 20 , - 277 , - 330 , - 179 , - 232 , - 81 , - 134 , - 391 , - 36 , - 293 , - 346 , - 195 , - 248 , - 97 , - 150 , - 407 , - 52 , - 309 , - 362 , - 211 , - 264 , - 113 , - 166 , - 15 , - 68 , - 325 , - 378 , - 227 , - 280 , - 129 , - 182 , - 31 , - 84 , - 341 , - 394 , - 243 , - 296 , - 145 , - 198 , - 47 , - 100 , - 357 , - 2 , - 259 , - 312 , - 161 , - 214 , - 63 , - 116 , - 373 , - 18 , - 275 , - 328 , - 177 , - 230 , - 79 , - 132 , - 389 , - 34 , - 291 , - 344 , - 193 , - 246 , - 95 , - 148 , - 405 , - 50 , - 307 , - 360 , - 209 , - 262 , - 111 , - 164 , - 13 , - 66 , - 323 , - 376 , - 225 , - 278 , - 127 , - 180 , - 29 , - 82 , - 339 , - 392 , - 241 , - 294 , - 143 , - 196 , - 45 , - 98 , - 355 , - 0 , - 77 , - 258 , - 127 , - 100 , - 177 , - 358 , - 227 , - 200 , - 277 , - 42 , - 327 , - 300 , - 377 , - 142 , - 11 , - 400 , - 61 , - 242 , - 111 , - 84 , - 161 , - 342 , - 211 , - 184 , - 261 , - 26 , - 311 , - 284 , - 361 , - 126 , - 411 , - 384 , - 45 , - 226 , - 95 , - 68 , - 145 , - 326 , - 195 , - 168 , - 245 , - 10 , - 295 , - 268 , - 345 , - 110 , - 395 , - 368 , - 29 , - 210 , - 79 , - 52 , - 129 , - 310 , - 179 , - 152 , - 229 , - 410 , - 279 , - 252 , - 329 , - 94 , - 379 , - 352 , - 13 , - 194 , - 63 , - 36 , - 113 , - 294 , - 163 , - 136 , - 213 , - 394 , - 263 , - 236 , - 313 , - 78 , - 363 , - 336 , - 413 , - 178 , - 47 , - 20 , - 97 , - 278 , - 147 , - 120 , - 197 , - 378 , - 247 , - 220 , - 297 , - 62 , - 347 , - 320 , - 397 , - 162 , - 31 , - 4 , - 81 , - 262 , - 131 , - 104 , - 181 , - 362 , - 231 , - 204 , - 281 , - 46 , - 331 , - 304 , - 381 , - 146 , - 15 , - 404 , - 65 , - 246 , - 115 , - 88 , - 165 , - 346 , - 215 , - 188 , - 265 , - 30 , - 315 , - 288 , - 365 , - 130 , - 415 , - 388 , - 49 , - 230 , - 99 , - 72 , - 149 , - 330 , - 199 , - 172 , - 249 , - 14 , - 299 , - 272 , - 349 , - 114 , - 399 , - 372 , - 33 , - 214 , - 83 , - 56 , - 133 , - 314 , - 183 , - 156 , - 233 , - 414 , - 283 , - 256 , - 333 , - 98 , - 383 , - 356 , - 17 , - 198 , - 67 , - 40 , - 117 , - 298 , - 167 , - 140 , - 217 , - 398 , - 267 , - 240 , - 317 , - 82 , - 367 , - 340 , - 1 , - 182 , - 51 , - 24 , - 101 , - 282 , - 151 , - 124 , - 201 , - 382 , - 251 , - 224 , - 301 , - 66 , - 351 , - 324 , - 401 , - 166 , - 35 , - 8 , - 85 , - 266 , - 135 , - 108 , - 185 , - 366 , - 235 , - 208 , - 285 , - 50 , - 335 , - 308 , - 385 , - 150 , - 19 , - 408 , - 69 , - 250 , - 119 , - 92 , - 169 , - 350 , - 219 , - 192 , - 269 , - 34 , - 319 , - 292 , - 369 , - 134 , - 3 , - 392 , - 53 , - 234 , - 103 , - 76 , - 153 , - 334 , - 203 , - 176 , - 253 , - 18 , - 303 , - 276 , - 353 , - 118 , - 403 , - 376 , - 37 , - 218 , - 87 , - 60 , - 137 , - 318 , - 187 , - 160 , - 237 , - 2 , - 287 , - 260 , - 337 , - 102 , - 387 , - 360 , - 21 , - 202 , - 71 , - 44 , - 121 , - 302 , - 171 , - 144 , - 221 , - 402 , - 271 , - 244 , - 321 , - 86 , - 371 , - 344 , - 5 , - 186 , - 55 , - 28 , - 105 , - 286 , - 155 , - 128 , - 205 , - 386 , - 255 , - 228 , - 305 , - 70 , - 355 , - 328 , - 405 , - 170 , - 39 , - 12 , - 89 , - 270 , - 139 , - 112 , - 189 , - 370 , - 239 , - 212 , - 289 , - 54 , - 339 , - 312 , - 389 , - 154 , - 23 , - 412 , - 73 , - 254 , - 123 , - 96 , - 173 , - 354 , - 223 , - 196 , - 273 , - 38 , - 323 , - 296 , - 373 , - 138 , - 7 , - 396 , - 57 , - 238 , - 107 , - 80 , - 157 , - 338 , - 207 , - 180 , - 257 , - 22 , - 307 , - 280 , - 357 , - 122 , - 407 , - 380 , - 41 , - 222 , - 91 , - 64 , - 141 , - 322 , - 191 , - 164 , - 241 , - 6 , - 291 , - 264 , - 341 , - 106 , - 391 , - 364 , - 25 , - 206 , - 75 , - 48 , - 125 , - 306 , - 175 , - 148 , - 225 , - 406 , - 275 , - 248 , - 325 , - 90 , - 375 , - 348 , - 9 , - 190 , - 59 , - 32 , - 109 , - 290 , - 159 , - 132 , - 209 , - 390 , - 259 , - 232 , - 309 , - 74 , - 359 , - 332 , - 409 , - 174 , - 43 , - 16 , - 93 , - 274 , - 143 , - 116 , - 193 , - 374 , - 243 , - 216 , - 293 , - 58 , - 343 , - 316 , - 393 , - 158 , - 27 , - 0 , - 157 , - 102 , - 259 , - 204 , - 361 , - 306 , - 39 , - 408 , - 141 , - 86 , - 243 , - 188 , - 345 , - 290 , - 23 , - 392 , - 125 , - 70 , - 227 , - 172 , - 329 , - 274 , - 7 , - 376 , - 109 , - 54 , - 211 , - 156 , - 313 , - 258 , - 415 , - 360 , - 93 , - 38 , - 195 , - 140 , - 297 , - 242 , - 399 , - 344 , - 77 , - 22 , - 179 , - 124 , - 281 , - 226 , - 383 , - 328 , - 61 , - 6 , - 163 , - 108 , - 265 , - 210 , - 367 , - 312 , - 45 , - 414 , - 147 , - 92 , - 249 , - 194 , - 351 , - 296 , - 29 , - 398 , - 131 , - 76 , - 233 , - 178 , - 335 , - 280 , - 13 , - 382 , - 115 , - 60 , - 217 , - 162 , - 319 , - 264 , - 421 , - 366 , - 99 , - 44 , - 201 , - 146 , - 303 , - 248 , - 405 , - 350 , - 83 , - 28 , - 185 , - 130 , - 287 , - 232 , - 389 , - 334 , - 67 , - 12 , - 169 , - 114 , - 271 , - 216 , - 373 , - 318 , - 51 , - 420 , - 153 , - 98 , - 255 , - 200 , - 357 , - 302 , - 35 , - 404 , - 137 , - 82 , - 239 , - 184 , - 341 , - 286 , - 19 , - 388 , - 121 , - 66 , - 223 , - 168 , - 325 , - 270 , - 3 , - 372 , - 105 , - 50 , - 207 , - 152 , - 309 , - 254 , - 411 , - 356 , - 89 , - 34 , - 191 , - 136 , - 293 , - 238 , - 395 , - 340 , - 73 , - 18 , - 175 , - 120 , - 277 , - 222 , - 379 , - 324 , - 57 , - 2 , - 159 , - 104 , - 261 , - 206 , - 363 , - 308 , - 41 , - 410 , - 143 , - 88 , - 245 , - 190 , - 347 , - 292 , - 25 , - 394 , - 127 , - 72 , - 229 , - 174 , - 331 , - 276 , - 9 , - 378 , - 111 , - 56 , - 213 , - 158 , - 315 , - 260 , - 417 , - 362 , - 95 , - 40 , - 197 , - 142 , - 299 , - 244 , - 401 , - 346 , - 79 , - 24 , - 181 , - 126 , - 283 , - 228 , - 385 , - 330 , - 63 , - 8 , - 165 , - 110 , - 267 , - 212 , - 369 , - 314 , - 47 , - 416 , - 149 , - 94 , - 251 , - 196 , - 353 , - 298 , - 31 , - 400 , - 133 , - 78 , - 235 , - 180 , - 337 , - 282 , - 15 , - 384 , - 117 , - 62 , - 219 , - 164 , - 321 , - 266 , - 423 , - 368 , - 101 , - 46 , - 203 , - 148 , - 305 , - 250 , - 407 , - 352 , - 85 , - 30 , - 187 , - 132 , - 289 , - 234 , - 391 , - 336 , - 69 , - 14 , - 171 , - 116 , - 273 , - 218 , - 375 , - 320 , - 53 , - 422 , - 155 , - 100 , - 257 , - 202 , - 359 , - 304 , - 37 , - 406 , - 139 , - 84 , - 241 , - 186 , - 343 , - 288 , - 21 , - 390 , - 123 , - 68 , - 225 , - 170 , - 327 , - 272 , - 5 , - 374 , - 107 , - 52 , - 209 , - 154 , - 311 , - 256 , - 413 , - 358 , - 91 , - 36 , - 193 , - 138 , - 295 , - 240 , - 397 , - 342 , - 75 , - 20 , - 177 , - 122 , - 279 , - 224 , - 381 , - 326 , - 59 , - 4 , - 161 , - 106 , - 263 , - 208 , - 365 , - 310 , - 43 , - 412 , - 145 , - 90 , - 247 , - 192 , - 349 , - 294 , - 27 , - 396 , - 129 , - 74 , - 231 , - 176 , - 333 , - 278 , - 11 , - 380 , - 113 , - 58 , - 215 , - 160 , - 317 , - 262 , - 419 , - 364 , - 97 , - 42 , - 199 , - 144 , - 301 , - 246 , - 403 , - 348 , - 81 , - 26 , - 183 , - 128 , - 285 , - 230 , - 387 , - 332 , - 65 , - 10 , - 167 , - 112 , - 269 , - 214 , - 371 , - 316 , - 49 , - 418 , - 151 , - 96 , - 253 , - 198 , - 355 , - 300 , - 33 , - 402 , - 135 , - 80 , - 237 , - 182 , - 339 , - 284 , - 17 , - 386 , - 119 , - 64 , - 221 , - 166 , - 323 , - 268 , - 1 , - 370 , - 103 , - 48 , - 205 , - 150 , - 307 , - 252 , - 409 , - 354 , - 87 , - 32 , - 189 , - 134 , - 291 , - 236 , - 393 , - 338 , - 71 , - 16 , - 173 , - 118 , - 275 , - 220 , - 377 , - 322 , - 55 , - 0 , - 119 , - 382 , - 357 , - 44 , - 307 , - 282 , - 401 , - 232 , - 207 , - 326 , - 157 , - 132 , - 251 , - 82 , - 57 , - 176 , - 7 , - 414 , - 101 , - 364 , - 339 , - 26 , - 289 , - 264 , - 383 , - 214 , - 189 , - 308 , - 139 , - 114 , - 233 , - 64 , - 39 , - 158 , - 421 , - 396 , - 83 , - 346 , - 321 , - 8 , - 271 , - 246 , - 365 , - 196 , - 171 , - 290 , - 121 , - 96 , - 215 , - 46 , - 21 , - 140 , - 403 , - 378 , - 65 , - 328 , - 303 , - 422 , - 253 , - 228 , - 347 , - 178 , - 153 , - 272 , - 103 , - 78 , - 197 , - 28 , - 3 , - 122 , - 385 , - 360 , - 47 , - 310 , - 285 , - 404 , - 235 , - 210 , - 329 , - 160 , - 135 , - 254 , - 85 , - 60 , - 179 , - 10 , - 417 , - 104 , - 367 , - 342 , - 29 , - 292 , - 267 , - 386 , - 217 , - 192 , - 311 , - 142 , - 117 , - 236 , - 67 , - 42 , - 161 , - 424 , - 399 , - 86 , - 349 , - 324 , - 11 , - 274 , - 249 , - 368 , - 199 , - 174 , - 293 , - 124 , - 99 , - 218 , - 49 , - 24 , - 143 , - 406 , - 381 , - 68 , - 331 , - 306 , - 425 , - 256 , - 231 , - 350 , - 181 , - 156 , - 275 , - 106 , - 81 , - 200 , - 31 , - 6 , - 125 , - 388 , - 363 , - 50 , - 313 , - 288 , - 407 , - 238 , - 213 , - 332 , - 163 , - 138 , - 257 , - 88 , - 63 , - 182 , - 13 , - 420 , - 107 , - 370 , - 345 , - 32 , - 295 , - 270 , - 389 , - 220 , - 195 , - 314 , - 145 , - 120 , - 239 , - 70 , - 45 , - 164 , - 427 , - 402 , - 89 , - 352 , - 327 , - 14 , - 277 , - 252 , - 371 , - 202 , - 177 , - 296 , - 127 , - 102 , - 221 , - 52 , - 27 , - 146 , - 409 , - 384 , - 71 , - 334 , - 309 , - 428 , - 259 , - 234 , - 353 , - 184 , - 159 , - 278 , - 109 , - 84 , - 203 , - 34 , - 9 , - 128 , - 391 , - 366 , - 53 , - 316 , - 291 , - 410 , - 241 , - 216 , - 335 , - 166 , - 141 , - 260 , - 91 , - 66 , - 185 , - 16 , - 423 , - 110 , - 373 , - 348 , - 35 , - 298 , - 273 , - 392 , - 223 , - 198 , - 317 , - 148 , - 123 , - 242 , - 73 , - 48 , - 167 , - 430 , - 405 , - 92 , - 355 , - 330 , - 17 , - 280 , - 255 , - 374 , - 205 , - 180 , - 299 , - 130 , - 105 , - 224 , - 55 , - 30 , - 149 , - 412 , - 387 , - 74 , - 337 , - 312 , - 431 , - 262 , - 237 , - 356 , - 187 , - 162 , - 281 , - 112 , - 87 , - 206 , - 37 , - 12 , - 131 , - 394 , - 369 , - 56 , - 319 , - 294 , - 413 , - 244 , - 219 , - 338 , - 169 , - 144 , - 263 , - 94 , - 69 , - 188 , - 19 , - 426 , - 113 , - 376 , - 351 , - 38 , - 301 , - 276 , - 395 , - 226 , - 201 , - 320 , - 151 , - 126 , - 245 , - 76 , - 51 , - 170 , - 1 , - 408 , - 95 , - 358 , - 333 , - 20 , - 283 , - 258 , - 377 , - 208 , - 183 , - 302 , - 133 , - 108 , - 227 , - 58 , - 33 , - 152 , - 415 , - 390 , - 77 , - 340 , - 315 , - 2 , - 265 , - 240 , - 359 , - 190 , - 165 , - 284 , - 115 , - 90 , - 209 , - 40 , - 15 , - 134 , - 397 , - 372 , - 59 , - 322 , - 297 , - 416 , - 247 , - 222 , - 341 , - 172 , - 147 , - 266 , - 97 , - 72 , - 191 , - 22 , - 429 , - 116 , - 379 , - 354 , - 41 , - 304 , - 279 , - 398 , - 229 , - 204 , - 323 , - 154 , - 129 , - 248 , - 79 , - 54 , - 173 , - 4 , - 411 , - 98 , - 361 , - 336 , - 23 , - 286 , - 261 , - 380 , - 211 , - 186 , - 305 , - 136 , - 111 , - 230 , - 61 , - 36 , - 155 , - 418 , - 393 , - 80 , - 343 , - 318 , - 5 , - 268 , - 243 , - 362 , - 193 , - 168 , - 287 , - 118 , - 93 , - 212 , - 43 , - 18 , - 137 , - 400 , - 375 , - 62 , - 325 , - 300 , - 419 , - 250 , - 225 , - 344 , - 175 , - 150 , - 269 , - 100 , - 75 , - 194 , - 25 , - 0 , - 201 , - 182 , - 383 , - 364 , - 125 , - 106 , - 307 , - 288 , - 49 , - 30 , - 231 , - 212 , - 413 , - 394 , - 155 , - 136 , - 337 , - 318 , - 79 , - 60 , - 261 , - 242 , - 3 , - 424 , - 185 , - 166 , - 367 , - 348 , - 109 , - 90 , - 291 , - 272 , - 33 , - 14 , - 215 , - 196 , - 397 , - 378 , - 139 , - 120 , - 321 , - 302 , - 63 , - 44 , - 245 , - 226 , - 427 , - 408 , - 169 , - 150 , - 351 , - 332 , - 93 , - 74 , - 275 , - 256 , - 17 , - 438 , - 199 , - 180 , - 381 , - 362 , - 123 , - 104 , - 305 , - 286 , - 47 , - 28 , - 229 , - 210 , - 411 , - 392 , - 153 , - 134 , - 335 , - 316 , - 77 , - 58 , - 259 , - 240 , - 1 , - 422 , - 183 , - 164 , - 365 , - 346 , - 107 , - 88 , - 289 , - 270 , - 31 , - 12 , - 213 , - 194 , - 395 , - 376 , - 137 , - 118 , - 319 , - 300 , - 61 , - 42 , - 243 , - 224 , - 425 , - 406 , - 167 , - 148 , - 349 , - 330 , - 91 , - 72 , - 273 , - 254 , - 15 , - 436 , - 197 , - 178 , - 379 , - 360 , - 121 , - 102 , - 303 , - 284 , - 45 , - 26 , - 227 , - 208 , - 409 , - 390 , - 151 , - 132 , - 333 , - 314 , - 75 , - 56 , - 257 , - 238 , - 439 , - 420 , - 181 , - 162 , - 363 , - 344 , - 105 , - 86 , - 287 , - 268 , - 29 , - 10 , - 211 , - 192 , - 393 , - 374 , - 135 , - 116 , - 317 , - 298 , - 59 , - 40 , - 241 , - 222 , - 423 , - 404 , - 165 , - 146 , - 347 , - 328 , - 89 , - 70 , - 271 , - 252 , - 13 , - 434 , - 195 , - 176 , - 377 , - 358 , - 119 , - 100 , - 301 , - 282 , - 43 , - 24 , - 225 , - 206 , - 407 , - 388 , - 149 , - 130 , - 331 , - 312 , - 73 , - 54 , - 255 , - 236 , - 437 , - 418 , - 179 , - 160 , - 361 , - 342 , - 103 , - 84 , - 285 , - 266 , - 27 , - 8 , - 209 , - 190 , - 391 , - 372 , - 133 , - 114 , - 315 , - 296 , - 57 , - 38 , - 239 , - 220 , - 421 , - 402 , - 163 , - 144 , - 345 , - 326 , - 87 , - 68 , - 269 , - 250 , - 11 , - 432 , - 193 , - 174 , - 375 , - 356 , - 117 , - 98 , - 299 , - 280 , - 41 , - 22 , - 223 , - 204 , - 405 , - 386 , - 147 , - 128 , - 329 , - 310 , - 71 , - 52 , - 253 , - 234 , - 435 , - 416 , - 177 , - 158 , - 359 , - 340 , - 101 , - 82 , - 283 , - 264 , - 25 , - 6 , - 207 , - 188 , - 389 , - 370 , - 131 , - 112 , - 313 , - 294 , - 55 , - 36 , - 237 , - 218 , - 419 , - 400 , - 161 , - 142 , - 343 , - 324 , - 85 , - 66 , - 267 , - 248 , - 9 , - 430 , - 191 , - 172 , - 373 , - 354 , - 115 , - 96 , - 297 , - 278 , - 39 , - 20 , - 221 , - 202 , - 403 , - 384 , - 145 , - 126 , - 327 , - 308 , - 69 , - 50 , - 251 , - 232 , - 433 , - 414 , - 175 , - 156 , - 357 , - 338 , - 99 , - 80 , - 281 , - 262 , - 23 , - 4 , - 205 , - 186 , - 387 , - 368 , - 129 , - 110 , - 311 , - 292 , - 53 , - 34 , - 235 , - 216 , - 417 , - 398 , - 159 , - 140 , - 341 , - 322 , - 83 , - 64 , - 265 , - 246 , - 7 , - 428 , - 189 , - 170 , - 371 , - 352 , - 113 , - 94 , - 295 , - 276 , - 37 , - 18 , - 219 , - 200 , - 401 , - 382 , - 143 , - 124 , - 325 , - 306 , - 67 , - 48 , - 249 , - 230 , - 431 , - 412 , - 173 , - 154 , - 355 , - 336 , - 97 , - 78 , - 279 , - 260 , - 21 , - 2 , - 203 , - 184 , - 385 , - 366 , - 127 , - 108 , - 309 , - 290 , - 51 , - 32 , - 233 , - 214 , - 415 , - 396 , - 157 , - 138 , - 339 , - 320 , - 81 , - 62 , - 263 , - 244 , - 5 , - 426 , - 187 , - 168 , - 369 , - 350 , - 111 , - 92 , - 293 , - 274 , - 35 , - 16 , - 217 , - 198 , - 399 , - 380 , - 141 , - 122 , - 323 , - 304 , - 65 , - 46 , - 247 , - 228 , - 429 , - 410 , - 171 , - 152 , - 353 , - 334 , - 95 , - 76 , - 277 , - 258 , - 19 , - 0 , - 197 , - 282 , - 255 , - 116 , - 313 , - 398 , - 371 , - 232 , - 429 , - 66 , - 39 , - 348 , - 97 , - 182 , - 155 , - 16 , - 213 , - 298 , - 271 , - 132 , - 329 , - 414 , - 387 , - 248 , - 445 , - 82 , - 55 , - 364 , - 113 , - 198 , - 171 , - 32 , - 229 , - 314 , - 287 , - 148 , - 345 , - 430 , - 403 , - 264 , - 13 , - 98 , - 71 , - 380 , - 129 , - 214 , - 187 , - 48 , - 245 , - 330 , - 303 , - 164 , - 361 , - 446 , - 419 , - 280 , - 29 , - 114 , - 87 , - 396 , - 145 , - 230 , - 203 , - 64 , - 261 , - 346 , - 319 , - 180 , - 377 , - 14 , - 435 , - 296 , - 45 , - 130 , - 103 , - 412 , - 161 , - 246 , - 219 , - 80 , - 277 , - 362 , - 335 , - 196 , - 393 , - 30 , - 3 , - 312 , - 61 , - 146 , - 119 , - 428 , - 177 , - 262 , - 235 , - 96 , - 293 , - 378 , - 351 , - 212 , - 409 , - 46 , - 19 , - 328 , - 77 , - 162 , - 135 , - 444 , - 193 , - 278 , - 251 , - 112 , - 309 , - 394 , - 367 , - 228 , - 425 , - 62 , - 35 , - 344 , - 93 , - 178 , - 151 , - 12 , - 209 , - 294 , - 267 , - 128 , - 325 , - 410 , - 383 , - 244 , - 441 , - 78 , - 51 , - 360 , - 109 , - 194 , - 167 , - 28 , - 225 , - 310 , - 283 , - 144 , - 341 , - 426 , - 399 , - 260 , - 9 , - 94 , - 67 , - 376 , - 125 , - 210 , - 183 , - 44 , - 241 , - 326 , - 299 , - 160 , - 357 , - 442 , - 415 , - 276 , - 25 , - 110 , - 83 , - 392 , - 141 , - 226 , - 199 , - 60 , - 257 , - 342 , - 315 , - 176 , - 373 , - 10 , - 431 , - 292 , - 41 , - 126 , - 99 , - 408 , - 157 , - 242 , - 215 , - 76 , - 273 , - 358 , - 331 , - 192 , - 389 , - 26 , - 447 , - 308 , - 57 , - 142 , - 115 , - 424 , - 173 , - 258 , - 231 , - 92 , - 289 , - 374 , - 347 , - 208 , - 405 , - 42 , - 15 , - 324 , - 73 , - 158 , - 131 , - 440 , - 189 , - 274 , - 247 , - 108 , - 305 , - 390 , - 363 , - 224 , - 421 , - 58 , - 31 , - 340 , - 89 , - 174 , - 147 , - 8 , - 205 , - 290 , - 263 , - 124 , - 321 , - 406 , - 379 , - 240 , - 437 , - 74 , - 47 , - 356 , - 105 , - 190 , - 163 , - 24 , - 221 , - 306 , - 279 , - 140 , - 337 , - 422 , - 395 , - 256 , - 5 , - 90 , - 63 , - 372 , - 121 , - 206 , - 179 , - 40 , - 237 , - 322 , - 295 , - 156 , - 353 , - 438 , - 411 , - 272 , - 21 , - 106 , - 79 , - 388 , - 137 , - 222 , - 195 , - 56 , - 253 , - 338 , - 311 , - 172 , - 369 , - 6 , - 427 , - 288 , - 37 , - 122 , - 95 , - 404 , - 153 , - 238 , - 211 , - 72 , - 269 , - 354 , - 327 , - 188 , - 385 , - 22 , - 443 , - 304 , - 53 , - 138 , - 111 , - 420 , - 169 , - 254 , - 227 , - 88 , - 285 , - 370 , - 343 , - 204 , - 401 , - 38 , - 11 , - 320 , - 69 , - 154 , - 127 , - 436 , - 185 , - 270 , - 243 , - 104 , - 301 , - 386 , - 359 , - 220 , - 417 , - 54 , - 27 , - 336 , - 85 , - 170 , - 143 , - 4 , - 201 , - 286 , - 259 , - 120 , - 317 , - 402 , - 375 , - 236 , - 433 , - 70 , - 43 , - 352 , - 101 , - 186 , - 159 , - 20 , - 217 , - 302 , - 275 , - 136 , - 333 , - 418 , - 391 , - 252 , - 1 , - 86 , - 59 , - 368 , - 117 , - 202 , - 175 , - 36 , - 233 , - 318 , - 291 , - 152 , - 349 , - 434 , - 407 , - 268 , - 17 , - 102 , - 75 , - 384 , - 133 , - 218 , - 191 , - 52 , - 249 , - 334 , - 307 , - 168 , - 365 , - 2 , - 423 , - 284 , - 33 , - 118 , - 91 , - 400 , - 149 , - 234 , - 207 , - 68 , - 265 , - 350 , - 323 , - 184 , - 381 , - 18 , - 439 , - 300 , - 49 , - 134 , - 107 , - 416 , - 165 , - 250 , - 223 , - 84 , - 281 , - 366 , - 339 , - 200 , - 397 , - 34 , - 7 , - 316 , - 65 , - 150 , - 123 , - 432 , - 181 , - 266 , - 239 , - 100 , - 297 , - 382 , - 355 , - 216 , - 413 , - 50 , - 23 , - 332 , - 81 , - 166 , - 139 , - 0 , - 143 , - 58 , - 201 , - 116 , - 259 , - 174 , - 317 , - 232 , - 375 , - 290 , - 433 , - 348 , - 35 , - 406 , - 93 , - 8 , - 151 , - 66 , - 209 , - 124 , - 267 , - 182 , - 325 , - 240 , - 383 , - 298 , - 441 , - 356 , - 43 , - 414 , - 101 , - 16 , - 159 , - 74 , - 217 , - 132 , - 275 , - 190 , - 333 , - 248 , - 391 , - 306 , - 449 , - 364 , - 51 , - 422 , - 109 , - 24 , - 167 , - 82 , - 225 , - 140 , - 283 , - 198 , - 341 , - 256 , - 399 , - 314 , - 1 , - 372 , - 59 , - 430 , - 117 , - 32 , - 175 , - 90 , - 233 , - 148 , - 291 , - 206 , - 349 , - 264 , - 407 , - 322 , - 9 , - 380 , - 67 , - 438 , - 125 , - 40 , - 183 , - 98 , - 241 , - 156 , - 299 , - 214 , - 357 , - 272 , - 415 , - 330 , - 17 , - 388 , - 75 , - 446 , - 133 , - 48 , - 191 , - 106 , - 249 , - 164 , - 307 , - 222 , - 365 , - 280 , - 423 , - 338 , - 25 , - 396 , - 83 , - 454 , - 141 , - 56 , - 199 , - 114 , - 257 , - 172 , - 315 , - 230 , - 373 , - 288 , - 431 , - 346 , - 33 , - 404 , - 91 , - 6 , - 149 , - 64 , - 207 , - 122 , - 265 , - 180 , - 323 , - 238 , - 381 , - 296 , - 439 , - 354 , - 41 , - 412 , - 99 , - 14 , - 157 , - 72 , - 215 , - 130 , - 273 , - 188 , - 331 , - 246 , - 389 , - 304 , - 447 , - 362 , - 49 , - 420 , - 107 , - 22 , - 165 , - 80 , - 223 , - 138 , - 281 , - 196 , - 339 , - 254 , - 397 , - 312 , - 455 , - 370 , - 57 , - 428 , - 115 , - 30 , - 173 , - 88 , - 231 , - 146 , - 289 , - 204 , - 347 , - 262 , - 405 , - 320 , - 7 , - 378 , - 65 , - 436 , - 123 , - 38 , - 181 , - 96 , - 239 , - 154 , - 297 , - 212 , - 355 , - 270 , - 413 , - 328 , - 15 , - 386 , - 73 , - 444 , - 131 , - 46 , - 189 , - 104 , - 247 , - 162 , - 305 , - 220 , - 363 , - 278 , - 421 , - 336 , - 23 , - 394 , - 81 , - 452 , - 139 , - 54 , - 197 , - 112 , - 255 , - 170 , - 313 , - 228 , - 371 , - 286 , - 429 , - 344 , - 31 , - 402 , - 89 , - 4 , - 147 , - 62 , - 205 , - 120 , - 263 , - 178 , - 321 , - 236 , - 379 , - 294 , - 437 , - 352 , - 39 , - 410 , - 97 , - 12 , - 155 , - 70 , - 213 , - 128 , - 271 , - 186 , - 329 , - 244 , - 387 , - 302 , - 445 , - 360 , - 47 , - 418 , - 105 , - 20 , - 163 , - 78 , - 221 , - 136 , - 279 , - 194 , - 337 , - 252 , - 395 , - 310 , - 453 , - 368 , - 55 , - 426 , - 113 , - 28 , - 171 , - 86 , - 229 , - 144 , - 287 , - 202 , - 345 , - 260 , - 403 , - 318 , - 5 , - 376 , - 63 , - 434 , - 121 , - 36 , - 179 , - 94 , - 237 , - 152 , - 295 , - 210 , - 353 , - 268 , - 411 , - 326 , - 13 , - 384 , - 71 , - 442 , - 129 , - 44 , - 187 , - 102 , - 245 , - 160 , - 303 , - 218 , - 361 , - 276 , - 419 , - 334 , - 21 , - 392 , - 79 , - 450 , - 137 , - 52 , - 195 , - 110 , - 253 , - 168 , - 311 , - 226 , - 369 , - 284 , - 427 , - 342 , - 29 , - 400 , - 87 , - 2 , - 145 , - 60 , - 203 , - 118 , - 261 , - 176 , - 319 , - 234 , - 377 , - 292 , - 435 , - 350 , - 37 , - 408 , - 95 , - 10 , - 153 , - 68 , - 211 , - 126 , - 269 , - 184 , - 327 , - 242 , - 385 , - 300 , - 443 , - 358 , - 45 , - 416 , - 103 , - 18 , - 161 , - 76 , - 219 , - 134 , - 277 , - 192 , - 335 , - 250 , - 393 , - 308 , - 451 , - 366 , - 53 , - 424 , - 111 , - 26 , - 169 , - 84 , - 227 , - 142 , - 285 , - 200 , - 343 , - 258 , - 401 , - 316 , - 3 , - 374 , - 61 , - 432 , - 119 , - 34 , - 177 , - 92 , - 235 , - 150 , - 293 , - 208 , - 351 , - 266 , - 409 , - 324 , - 11 , - 382 , - 69 , - 440 , - 127 , - 42 , - 185 , - 100 , - 243 , - 158 , - 301 , - 216 , - 359 , - 274 , - 417 , - 332 , - 19 , - 390 , - 77 , - 448 , - 135 , - 50 , - 193 , - 108 , - 251 , - 166 , - 309 , - 224 , - 367 , - 282 , - 425 , - 340 , - 27 , - 398 , - 85 , - 0 , - 305 , - 262 , - 335 , - 60 , - 365 , - 322 , - 395 , - 120 , - 425 , - 382 , - 455 , - 180 , - 21 , - 442 , - 51 , - 240 , - 81 , - 38 , - 111 , - 300 , - 141 , - 98 , - 171 , - 360 , - 201 , - 158 , - 231 , - 420 , - 261 , - 218 , - 291 , - 16 , - 321 , - 278 , - 351 , - 76 , - 381 , - 338 , - 411 , - 136 , - 441 , - 398 , - 7 , - 196 , - 37 , - 458 , - 67 , - 256 , - 97 , - 54 , - 127 , - 316 , - 157 , - 114 , - 187 , - 376 , - 217 , - 174 , - 247 , - 436 , - 277 , - 234 , - 307 , - 32 , - 337 , - 294 , - 367 , - 92 , - 397 , - 354 , - 427 , - 152 , - 457 , - 414 , - 23 , - 212 , - 53 , - 10 , - 83 , - 272 , - 113 , - 70 , - 143 , - 332 , - 173 , - 130 , - 203 , - 392 , - 233 , - 190 , - 263 , - 452 , - 293 , - 250 , - 323 , - 48 , - 353 , - 310 , - 383 , - 108 , - 413 , - 370 , - 443 , - 168 , - 9 , - 430 , - 39 , - 228 , - 69 , - 26 , - 99 , - 288 , - 129 , - 86 , - 159 , - 348 , - 189 , - 146 , - 219 , - 408 , - 249 , - 206 , - 279 , - 4 , - 309 , - 266 , - 339 , - 64 , - 369 , - 326 , - 399 , - 124 , - 429 , - 386 , - 459 , - 184 , - 25 , - 446 , - 55 , - 244 , - 85 , - 42 , - 115 , - 304 , - 145 , - 102 , - 175 , - 364 , - 205 , - 162 , - 235 , - 424 , - 265 , - 222 , - 295 , - 20 , - 325 , - 282 , - 355 , - 80 , - 385 , - 342 , - 415 , - 140 , - 445 , - 402 , - 11 , - 200 , - 41 , - 462 , - 71 , - 260 , - 101 , - 58 , - 131 , - 320 , - 161 , - 118 , - 191 , - 380 , - 221 , - 178 , - 251 , - 440 , - 281 , - 238 , - 311 , - 36 , - 341 , - 298 , - 371 , - 96 , - 401 , - 358 , - 431 , - 156 , - 461 , - 418 , - 27 , - 216 , - 57 , - 14 , - 87 , - 276 , - 117 , - 74 , - 147 , - 336 , - 177 , - 134 , - 207 , - 396 , - 237 , - 194 , - 267 , - 456 , - 297 , - 254 , - 327 , - 52 , - 357 , - 314 , - 387 , - 112 , - 417 , - 374 , - 447 , - 172 , - 13 , - 434 , - 43 , - 232 , - 73 , - 30 , - 103 , - 292 , - 133 , - 90 , - 163 , - 352 , - 193 , - 150 , - 223 , - 412 , - 253 , - 210 , - 283 , - 8 , - 313 , - 270 , - 343 , - 68 , - 373 , - 330 , - 403 , - 128 , - 433 , - 390 , - 463 , - 188 , - 29 , - 450 , - 59 , - 248 , - 89 , - 46 , - 119 , - 308 , - 149 , - 106 , - 179 , - 368 , - 209 , - 166 , - 239 , - 428 , - 269 , - 226 , - 299 , - 24 , - 329 , - 286 , - 359 , - 84 , - 389 , - 346 , - 419 , - 144 , - 449 , - 406 , - 15 , - 204 , - 45 , - 2 , - 75 , - 264 , - 105 , - 62 , - 135 , - 324 , - 165 , - 122 , - 195 , - 384 , - 225 , - 182 , - 255 , - 444 , - 285 , - 242 , - 315 , - 40 , - 345 , - 302 , - 375 , - 100 , - 405 , - 362 , - 435 , - 160 , - 1 , - 422 , - 31 , - 220 , - 61 , - 18 , - 91 , - 280 , - 121 , - 78 , - 151 , - 340 , - 181 , - 138 , - 211 , - 400 , - 241 , - 198 , - 271 , - 460 , - 301 , - 258 , - 331 , - 56 , - 361 , - 318 , - 391 , - 116 , - 421 , - 378 , - 451 , - 176 , - 17 , - 438 , - 47 , - 236 , - 77 , - 34 , - 107 , - 296 , - 137 , - 94 , - 167 , - 356 , - 197 , - 154 , - 227 , - 416 , - 257 , - 214 , - 287 , - 12 , - 317 , - 274 , - 347 , - 72 , - 377 , - 334 , - 407 , - 132 , - 437 , - 394 , - 3 , - 192 , - 33 , - 454 , - 63 , - 252 , - 93 , - 50 , - 123 , - 312 , - 153 , - 110 , - 183 , - 372 , - 213 , - 170 , - 243 , - 432 , - 273 , - 230 , - 303 , - 28 , - 333 , - 290 , - 363 , - 88 , - 393 , - 350 , - 423 , - 148 , - 453 , - 410 , - 19 , - 208 , - 49 , - 6 , - 79 , - 268 , - 109 , - 66 , - 139 , - 328 , - 169 , - 126 , - 199 , - 388 , - 229 , - 186 , - 259 , - 448 , - 289 , - 246 , - 319 , - 44 , - 349 , - 306 , - 379 , - 104 , - 409 , - 366 , - 439 , - 164 , - 5 , - 426 , - 35 , - 224 , - 65 , - 22 , - 95 , - 284 , - 125 , - 82 , - 155 , - 344 , - 185 , - 142 , - 215 , - 404 , - 245 , - 202 , - 275 , - 0 , - 147 , - 58 , - 205 , - 116 , - 263 , - 174 , - 321 , - 232 , - 379 , - 290 , - 437 , - 348 , - 23 , - 406 , - 81 , - 464 , - 139 , - 50 , - 197 , - 108 , - 255 , - 166 , - 313 , - 224 , - 371 , - 282 , - 429 , - 340 , - 15 , - 398 , - 73 , - 456 , - 131 , - 42 , - 189 , - 100 , - 247 , - 158 , - 305 , - 216 , - 363 , - 274 , - 421 , - 332 , - 7 , - 390 , - 65 , - 448 , - 123 , - 34 , - 181 , - 92 , - 239 , - 150 , - 297 , - 208 , - 355 , - 266 , - 413 , - 324 , - 471 , - 382 , - 57 , - 440 , - 115 , - 26 , - 173 , - 84 , - 231 , - 142 , - 289 , - 200 , - 347 , - 258 , - 405 , - 316 , - 463 , - 374 , - 49 , - 432 , - 107 , - 18 , - 165 , - 76 , - 223 , - 134 , - 281 , - 192 , - 339 , - 250 , - 397 , - 308 , - 455 , - 366 , - 41 , - 424 , - 99 , - 10 , - 157 , - 68 , - 215 , - 126 , - 273 , - 184 , - 331 , - 242 , - 389 , - 300 , - 447 , - 358 , - 33 , - 416 , - 91 , - 2 , - 149 , - 60 , - 207 , - 118 , - 265 , - 176 , - 323 , - 234 , - 381 , - 292 , - 439 , - 350 , - 25 , - 408 , - 83 , - 466 , - 141 , - 52 , - 199 , - 110 , - 257 , - 168 , - 315 , - 226 , - 373 , - 284 , - 431 , - 342 , - 17 , - 400 , - 75 , - 458 , - 133 , - 44 , - 191 , - 102 , - 249 , - 160 , - 307 , - 218 , - 365 , - 276 , - 423 , - 334 , - 9 , - 392 , - 67 , - 450 , - 125 , - 36 , - 183 , - 94 , - 241 , - 152 , - 299 , - 210 , - 357 , - 268 , - 415 , - 326 , - 1 , - 384 , - 59 , - 442 , - 117 , - 28 , - 175 , - 86 , - 233 , - 144 , - 291 , - 202 , - 349 , - 260 , - 407 , - 318 , - 465 , - 376 , - 51 , - 434 , - 109 , - 20 , - 167 , - 78 , - 225 , - 136 , - 283 , - 194 , - 341 , - 252 , - 399 , - 310 , - 457 , - 368 , - 43 , - 426 , - 101 , - 12 , - 159 , - 70 , - 217 , - 128 , - 275 , - 186 , - 333 , - 244 , - 391 , - 302 , - 449 , - 360 , - 35 , - 418 , - 93 , - 4 , - 151 , - 62 , - 209 , - 120 , - 267 , - 178 , - 325 , - 236 , - 383 , - 294 , - 441 , - 352 , - 27 , - 410 , - 85 , - 468 , - 143 , - 54 , - 201 , - 112 , - 259 , - 170 , - 317 , - 228 , - 375 , - 286 , - 433 , - 344 , - 19 , - 402 , - 77 , - 460 , - 135 , - 46 , - 193 , - 104 , - 251 , - 162 , - 309 , - 220 , - 367 , - 278 , - 425 , - 336 , - 11 , - 394 , - 69 , - 452 , - 127 , - 38 , - 185 , - 96 , - 243 , - 154 , - 301 , - 212 , - 359 , - 270 , - 417 , - 328 , - 3 , - 386 , - 61 , - 444 , - 119 , - 30 , - 177 , - 88 , - 235 , - 146 , - 293 , - 204 , - 351 , - 262 , - 409 , - 320 , - 467 , - 378 , - 53 , - 436 , - 111 , - 22 , - 169 , - 80 , - 227 , - 138 , - 285 , - 196 , - 343 , - 254 , - 401 , - 312 , - 459 , - 370 , - 45 , - 428 , - 103 , - 14 , - 161 , - 72 , - 219 , - 130 , - 277 , - 188 , - 335 , - 246 , - 393 , - 304 , - 451 , - 362 , - 37 , - 420 , - 95 , - 6 , - 153 , - 64 , - 211 , - 122 , - 269 , - 180 , - 327 , - 238 , - 385 , - 296 , - 443 , - 354 , - 29 , - 412 , - 87 , - 470 , - 145 , - 56 , - 203 , - 114 , - 261 , - 172 , - 319 , - 230 , - 377 , - 288 , - 435 , - 346 , - 21 , - 404 , - 79 , - 462 , - 137 , - 48 , - 195 , - 106 , - 253 , - 164 , - 311 , - 222 , - 369 , - 280 , - 427 , - 338 , - 13 , - 396 , - 71 , - 454 , - 129 , - 40 , - 187 , - 98 , - 245 , - 156 , - 303 , - 214 , - 361 , - 272 , - 419 , - 330 , - 5 , - 388 , - 63 , - 446 , - 121 , - 32 , - 179 , - 90 , - 237 , - 148 , - 295 , - 206 , - 353 , - 264 , - 411 , - 322 , - 469 , - 380 , - 55 , - 438 , - 113 , - 24 , - 171 , - 82 , - 229 , - 140 , - 287 , - 198 , - 345 , - 256 , - 403 , - 314 , - 461 , - 372 , - 47 , - 430 , - 105 , - 16 , - 163 , - 74 , - 221 , - 132 , - 279 , - 190 , - 337 , - 248 , - 395 , - 306 , - 453 , - 364 , - 39 , - 422 , - 97 , - 8 , - 155 , - 66 , - 213 , - 124 , - 271 , - 182 , - 329 , - 240 , - 387 , - 298 , - 445 , - 356 , - 31 , - 414 , - 89 , - 0 , - 269 , - 418 , - 447 , - 356 , - 145 , - 294 , - 323 , - 232 , - 21 , - 170 , - 199 , - 108 , - 377 , - 46 , - 75 , - 464 , - 253 , - 402 , - 431 , - 340 , - 129 , - 278 , - 307 , - 216 , - 5 , - 154 , - 183 , - 92 , - 361 , - 30 , - 59 , - 448 , - 237 , - 386 , - 415 , - 324 , - 113 , - 262 , - 291 , - 200 , - 469 , - 138 , - 167 , - 76 , - 345 , - 14 , - 43 , - 432 , - 221 , - 370 , - 399 , - 308 , - 97 , - 246 , - 275 , - 184 , - 453 , - 122 , - 151 , - 60 , - 329 , - 478 , - 27 , - 416 , - 205 , - 354 , - 383 , - 292 , - 81 , - 230 , - 259 , - 168 , - 437 , - 106 , - 135 , - 44 , - 313 , - 462 , - 11 , - 400 , - 189 , - 338 , - 367 , - 276 , - 65 , - 214 , - 243 , - 152 , - 421 , - 90 , - 119 , - 28 , - 297 , - 446 , - 475 , - 384 , - 173 , - 322 , - 351 , - 260 , - 49 , - 198 , - 227 , - 136 , - 405 , - 74 , - 103 , - 12 , - 281 , - 430 , - 459 , - 368 , - 157 , - 306 , - 335 , - 244 , - 33 , - 182 , - 211 , - 120 , - 389 , - 58 , - 87 , - 476 , - 265 , - 414 , - 443 , - 352 , - 141 , - 290 , - 319 , - 228 , - 17 , - 166 , - 195 , - 104 , - 373 , - 42 , - 71 , - 460 , - 249 , - 398 , - 427 , - 336 , - 125 , - 274 , - 303 , - 212 , - 1 , - 150 , - 179 , - 88 , - 357 , - 26 , - 55 , - 444 , - 233 , - 382 , - 411 , - 320 , - 109 , - 258 , - 287 , - 196 , - 465 , - 134 , - 163 , - 72 , - 341 , - 10 , - 39 , - 428 , - 217 , - 366 , - 395 , - 304 , - 93 , - 242 , - 271 , - 180 , - 449 , - 118 , - 147 , - 56 , - 325 , - 474 , - 23 , - 412 , - 201 , - 350 , - 379 , - 288 , - 77 , - 226 , - 255 , - 164 , - 433 , - 102 , - 131 , - 40 , - 309 , - 458 , - 7 , - 396 , - 185 , - 334 , - 363 , - 272 , - 61 , - 210 , - 239 , - 148 , - 417 , - 86 , - 115 , - 24 , - 293 , - 442 , - 471 , - 380 , - 169 , - 318 , - 347 , - 256 , - 45 , - 194 , - 223 , - 132 , - 401 , - 70 , - 99 , - 8 , - 277 , - 426 , - 455 , - 364 , - 153 , - 302 , - 331 , - 240 , - 29 , - 178 , - 207 , - 116 , - 385 , - 54 , - 83 , - 472 , - 261 , - 410 , - 439 , - 348 , - 137 , - 286 , - 315 , - 224 , - 13 , - 162 , - 191 , - 100 , - 369 , - 38 , - 67 , - 456 , - 245 , - 394 , - 423 , - 332 , - 121 , - 270 , - 299 , - 208 , - 477 , - 146 , - 175 , - 84 , - 353 , - 22 , - 51 , - 440 , - 229 , - 378 , - 407 , - 316 , - 105 , - 254 , - 283 , - 192 , - 461 , - 130 , - 159 , - 68 , - 337 , - 6 , - 35 , - 424 , - 213 , - 362 , - 391 , - 300 , - 89 , - 238 , - 267 , - 176 , - 445 , - 114 , - 143 , - 52 , - 321 , - 470 , - 19 , - 408 , - 197 , - 346 , - 375 , - 284 , - 73 , - 222 , - 251 , - 160 , - 429 , - 98 , - 127 , - 36 , - 305 , - 454 , - 3 , - 392 , - 181 , - 330 , - 359 , - 268 , - 57 , - 206 , - 235 , - 144 , - 413 , - 82 , - 111 , - 20 , - 289 , - 438 , - 467 , - 376 , - 165 , - 314 , - 343 , - 252 , - 41 , - 190 , - 219 , - 128 , - 397 , - 66 , - 95 , - 4 , - 273 , - 422 , - 451 , - 360 , - 149 , - 298 , - 327 , - 236 , - 25 , - 174 , - 203 , - 112 , - 381 , - 50 , - 79 , - 468 , - 257 , - 406 , - 435 , - 344 , - 133 , - 282 , - 311 , - 220 , - 9 , - 158 , - 187 , - 96 , - 365 , - 34 , - 63 , - 452 , - 241 , - 390 , - 419 , - 328 , - 117 , - 266 , - 295 , - 204 , - 473 , - 142 , - 171 , - 80 , - 349 , - 18 , - 47 , - 436 , - 225 , - 374 , - 403 , - 312 , - 101 , - 250 , - 279 , - 188 , - 457 , - 126 , - 155 , - 64 , - 333 , - 2 , - 31 , - 420 , - 209 , - 358 , - 387 , - 296 , - 85 , - 234 , - 263 , - 172 , - 441 , - 110 , - 139 , - 48 , - 317 , - 466 , - 15 , - 404 , - 193 , - 342 , - 371 , - 280 , - 69 , - 218 , - 247 , - 156 , - 425 , - 94 , - 123 , - 32 , - 301 , - 450 , - 479 , - 388 , - 177 , - 326 , - 355 , - 264 , - 53 , - 202 , - 231 , - 140 , - 409 , - 78 , - 107 , - 16 , - 285 , - 434 , - 463 , - 372 , - 161 , - 310 , - 339 , - 248 , - 37 , - 186 , - 215 , - 124 , - 393 , - 62 , - 91 , - 0 , - 213 , - 182 , - 395 , - 364 , - 89 , - 58 , - 271 , - 240 , - 453 , - 422 , - 147 , - 116 , - 329 , - 298 , - 23 , - 480 , - 205 , - 174 , - 387 , - 356 , - 81 , - 50 , - 263 , - 232 , - 445 , - 414 , - 139 , - 108 , - 321 , - 290 , - 15 , - 472 , - 197 , - 166 , - 379 , - 348 , - 73 , - 42 , - 255 , - 224 , - 437 , - 406 , - 131 , - 100 , - 313 , - 282 , - 7 , - 464 , - 189 , - 158 , - 371 , - 340 , - 65 , - 34 , - 247 , - 216 , - 429 , - 398 , - 123 , - 92 , - 305 , - 274 , - 487 , - 456 , - 181 , - 150 , - 363 , - 332 , - 57 , - 26 , - 239 , - 208 , - 421 , - 390 , - 115 , - 84 , - 297 , - 266 , - 479 , - 448 , - 173 , - 142 , - 355 , - 324 , - 49 , - 18 , - 231 , - 200 , - 413 , - 382 , - 107 , - 76 , - 289 , - 258 , - 471 , - 440 , - 165 , - 134 , - 347 , - 316 , - 41 , - 10 , - 223 , - 192 , - 405 , - 374 , - 99 , - 68 , - 281 , - 250 , - 463 , - 432 , - 157 , - 126 , - 339 , - 308 , - 33 , - 2 , - 215 , - 184 , - 397 , - 366 , - 91 , - 60 , - 273 , - 242 , - 455 , - 424 , - 149 , - 118 , - 331 , - 300 , - 25 , - 482 , - 207 , - 176 , - 389 , - 358 , - 83 , - 52 , - 265 , - 234 , - 447 , - 416 , - 141 , - 110 , - 323 , - 292 , - 17 , - 474 , - 199 , - 168 , - 381 , - 350 , - 75 , - 44 , - 257 , - 226 , - 439 , - 408 , - 133 , - 102 , - 315 , - 284 , - 9 , - 466 , - 191 , - 160 , - 373 , - 342 , - 67 , - 36 , - 249 , - 218 , - 431 , - 400 , - 125 , - 94 , - 307 , - 276 , - 1 , - 458 , - 183 , - 152 , - 365 , - 334 , - 59 , - 28 , - 241 , - 210 , - 423 , - 392 , - 117 , - 86 , - 299 , - 268 , - 481 , - 450 , - 175 , - 144 , - 357 , - 326 , - 51 , - 20 , - 233 , - 202 , - 415 , - 384 , - 109 , - 78 , - 291 , - 260 , - 473 , - 442 , - 167 , - 136 , - 349 , - 318 , - 43 , - 12 , - 225 , - 194 , - 407 , - 376 , - 101 , - 70 , - 283 , - 252 , - 465 , - 434 , - 159 , - 128 , - 341 , - 310 , - 35 , - 4 , - 217 , - 186 , - 399 , - 368 , - 93 , - 62 , - 275 , - 244 , - 457 , - 426 , - 151 , - 120 , - 333 , - 302 , - 27 , - 484 , - 209 , - 178 , - 391 , - 360 , - 85 , - 54 , - 267 , - 236 , - 449 , - 418 , - 143 , - 112 , - 325 , - 294 , - 19 , - 476 , - 201 , - 170 , - 383 , - 352 , - 77 , - 46 , - 259 , - 228 , - 441 , - 410 , - 135 , - 104 , - 317 , - 286 , - 11 , - 468 , - 193 , - 162 , - 375 , - 344 , - 69 , - 38 , - 251 , - 220 , - 433 , - 402 , - 127 , - 96 , - 309 , - 278 , - 3 , - 460 , - 185 , - 154 , - 367 , - 336 , - 61 , - 30 , - 243 , - 212 , - 425 , - 394 , - 119 , - 88 , - 301 , - 270 , - 483 , - 452 , - 177 , - 146 , - 359 , - 328 , - 53 , - 22 , - 235 , - 204 , - 417 , - 386 , - 111 , - 80 , - 293 , - 262 , - 475 , - 444 , - 169 , - 138 , - 351 , - 320 , - 45 , - 14 , - 227 , - 196 , - 409 , - 378 , - 103 , - 72 , - 285 , - 254 , - 467 , - 436 , - 161 , - 130 , - 343 , - 312 , - 37 , - 6 , - 219 , - 188 , - 401 , - 370 , - 95 , - 64 , - 277 , - 246 , - 459 , - 428 , - 153 , - 122 , - 335 , - 304 , - 29 , - 486 , - 211 , - 180 , - 393 , - 362 , - 87 , - 56 , - 269 , - 238 , - 451 , - 420 , - 145 , - 114 , - 327 , - 296 , - 21 , - 478 , - 203 , - 172 , - 385 , - 354 , - 79 , - 48 , - 261 , - 230 , - 443 , - 412 , - 137 , - 106 , - 319 , - 288 , - 13 , - 470 , - 195 , - 164 , - 377 , - 346 , - 71 , - 40 , - 253 , - 222 , - 435 , - 404 , - 129 , - 98 , - 311 , - 280 , - 5 , - 462 , - 187 , - 156 , - 369 , - 338 , - 63 , - 32 , - 245 , - 214 , - 427 , - 396 , - 121 , - 90 , - 303 , - 272 , - 485 , - 454 , - 179 , - 148 , - 361 , - 330 , - 55 , - 24 , - 237 , - 206 , - 419 , - 388 , - 113 , - 82 , - 295 , - 264 , - 477 , - 446 , - 171 , - 140 , - 353 , - 322 , - 47 , - 16 , - 229 , - 198 , - 411 , - 380 , - 105 , - 74 , - 287 , - 256 , - 469 , - 438 , - 163 , - 132 , - 345 , - 314 , - 39 , - 8 , - 221 , - 190 , - 403 , - 372 , - 97 , - 66 , - 279 , - 248 , - 461 , - 430 , - 155 , - 124 , - 337 , - 306 , - 31 , - 0 , - 219 , - 66 , - 37 , - 132 , - 351 , - 198 , - 169 , - 264 , - 483 , - 330 , - 301 , - 396 , - 119 , - 462 , - 433 , - 32 , - 251 , - 98 , - 69 , - 164 , - 383 , - 230 , - 201 , - 296 , - 19 , - 362 , - 333 , - 428 , - 151 , - 494 , - 465 , - 64 , - 283 , - 130 , - 101 , - 196 , - 415 , - 262 , - 233 , - 328 , - 51 , - 394 , - 365 , - 460 , - 183 , - 30 , - 1 , - 96 , - 315 , - 162 , - 133 , - 228 , - 447 , - 294 , - 265 , - 360 , - 83 , - 426 , - 397 , - 492 , - 215 , - 62 , - 33 , - 128 , - 347 , - 194 , - 165 , - 260 , - 479 , - 326 , - 297 , - 392 , - 115 , - 458 , - 429 , - 28 , - 247 , - 94 , - 65 , - 160 , - 379 , - 226 , - 197 , - 292 , - 15 , - 358 , - 329 , - 424 , - 147 , - 490 , - 461 , - 60 , - 279 , - 126 , - 97 , - 192 , - 411 , - 258 , - 229 , - 324 , - 47 , - 390 , - 361 , - 456 , - 179 , - 26 , - 493 , - 92 , - 311 , - 158 , - 129 , - 224 , - 443 , - 290 , - 261 , - 356 , - 79 , - 422 , - 393 , - 488 , - 211 , - 58 , - 29 , - 124 , - 343 , - 190 , - 161 , - 256 , - 475 , - 322 , - 293 , - 388 , - 111 , - 454 , - 425 , - 24 , - 243 , - 90 , - 61 , - 156 , - 375 , - 222 , - 193 , - 288 , - 11 , - 354 , - 325 , - 420 , - 143 , - 486 , - 457 , - 56 , - 275 , - 122 , - 93 , - 188 , - 407 , - 254 , - 225 , - 320 , - 43 , - 386 , - 357 , - 452 , - 175 , - 22 , - 489 , - 88 , - 307 , - 154 , - 125 , - 220 , - 439 , - 286 , - 257 , - 352 , - 75 , - 418 , - 389 , - 484 , - 207 , - 54 , - 25 , - 120 , - 339 , - 186 , - 157 , - 252 , - 471 , - 318 , - 289 , - 384 , - 107 , - 450 , - 421 , - 20 , - 239 , - 86 , - 57 , - 152 , - 371 , - 218 , - 189 , - 284 , - 7 , - 350 , - 321 , - 416 , - 139 , - 482 , - 453 , - 52 , - 271 , - 118 , - 89 , - 184 , - 403 , - 250 , - 221 , - 316 , - 39 , - 382 , - 353 , - 448 , - 171 , - 18 , - 485 , - 84 , - 303 , - 150 , - 121 , - 216 , - 435 , - 282 , - 253 , - 348 , - 71 , - 414 , - 385 , - 480 , - 203 , - 50 , - 21 , - 116 , - 335 , - 182 , - 153 , - 248 , - 467 , - 314 , - 285 , - 380 , - 103 , - 446 , - 417 , - 16 , - 235 , - 82 , - 53 , - 148 , - 367 , - 214 , - 185 , - 280 , - 3 , - 346 , - 317 , - 412 , - 135 , - 478 , - 449 , - 48 , - 267 , - 114 , - 85 , - 180 , - 399 , - 246 , - 217 , - 312 , - 35 , - 378 , - 349 , - 444 , - 167 , - 14 , - 481 , - 80 , - 299 , - 146 , - 117 , - 212 , - 431 , - 278 , - 249 , - 344 , - 67 , - 410 , - 381 , - 476 , - 199 , - 46 , - 17 , - 112 , - 331 , - 178 , - 149 , - 244 , - 463 , - 310 , - 281 , - 376 , - 99 , - 442 , - 413 , - 12 , - 231 , - 78 , - 49 , - 144 , - 363 , - 210 , - 181 , - 276 , - 495 , - 342 , - 313 , - 408 , - 131 , - 474 , - 445 , - 44 , - 263 , - 110 , - 81 , - 176 , - 395 , - 242 , - 213 , - 308 , - 31 , - 374 , - 345 , - 440 , - 163 , - 10 , - 477 , - 76 , - 295 , - 142 , - 113 , - 208 , - 427 , - 274 , - 245 , - 340 , - 63 , - 406 , - 377 , - 472 , - 195 , - 42 , - 13 , - 108 , - 327 , - 174 , - 145 , - 240 , - 459 , - 306 , - 277 , - 372 , - 95 , - 438 , - 409 , - 8 , - 227 , - 74 , - 45 , - 140 , - 359 , - 206 , - 177 , - 272 , - 491 , - 338 , - 309 , - 404 , - 127 , - 470 , - 441 , - 40 , - 259 , - 106 , - 77 , - 172 , - 391 , - 238 , - 209 , - 304 , - 27 , - 370 , - 341 , - 436 , - 159 , - 6 , - 473 , - 72 , - 291 , - 138 , - 109 , - 204 , - 423 , - 270 , - 241 , - 336 , - 59 , - 402 , - 373 , - 468 , - 191 , - 38 , - 9 , - 104 , - 323 , - 170 , - 141 , - 236 , - 455 , - 302 , - 273 , - 368 , - 91 , - 434 , - 405 , - 4 , - 223 , - 70 , - 41 , - 136 , - 355 , - 202 , - 173 , - 268 , - 487 , - 334 , - 305 , - 400 , - 123 , - 466 , - 437 , - 36 , - 255 , - 102 , - 73 , - 168 , - 387 , - 234 , - 205 , - 300 , - 23 , - 366 , - 337 , - 432 , - 155 , - 2 , - 469 , - 68 , - 287 , - 134 , - 105 , - 200 , - 419 , - 266 , - 237 , - 332 , - 55 , - 398 , - 369 , - 464 , - 187 , - 34 , - 5 , - 100 , - 319 , - 166 , - 137 , - 232 , - 451 , - 298 , - 269 , - 364 , - 87 , - 430 , - 401 , - 0 , - 139 , - 446 , - 417 , - 52 , - 359 , - 330 , - 469 , - 272 , - 243 , - 382 , - 185 , - 156 , - 295 , - 98 , - 69 , - 208 , - 11 , - 486 , - 121 , - 428 , - 399 , - 34 , - 341 , - 312 , - 451 , - 254 , - 225 , - 364 , - 167 , - 138 , - 277 , - 80 , - 51 , - 190 , - 497 , - 468 , - 103 , - 410 , - 381 , - 16 , - 323 , - 294 , - 433 , - 236 , - 207 , - 346 , - 149 , - 120 , - 259 , - 62 , - 33 , - 172 , - 479 , - 450 , - 85 , - 392 , - 363 , - 502 , - 305 , - 276 , - 415 , - 218 , - 189 , - 328 , - 131 , - 102 , - 241 , - 44 , - 15 , - 154 , - 461 , - 432 , - 67 , - 374 , - 345 , - 484 , - 287 , - 258 , - 397 , - 200 , - 171 , - 310 , - 113 , - 84 , - 223 , - 26 , - 501 , - 136 , - 443 , - 414 , - 49 , - 356 , - 327 , - 466 , - 269 , - 240 , - 379 , - 182 , - 153 , - 292 , - 95 , - 66 , - 205 , - 8 , - 483 , - 118 , - 425 , - 396 , - 31 , - 338 , - 309 , - 448 , - 251 , - 222 , - 361 , - 164 , - 135 , - 274 , - 77 , - 48 , - 187 , - 494 , - 465 , - 100 , - 407 , - 378 , - 13 , - 320 , - 291 , - 430 , - 233 , - 204 , - 343 , - 146 , - 117 , - 256 , - 59 , - 30 , - 169 , - 476 , - 447 , - 82 , - 389 , - 360 , - 499 , - 302 , - 273 , - 412 , - 215 , - 186 , - 325 , - 128 , - 99 , - 238 , - 41 , - 12 , - 151 , - 458 , - 429 , - 64 , - 371 , - 342 , - 481 , - 284 , - 255 , - 394 , - 197 , - 168 , - 307 , - 110 , - 81 , - 220 , - 23 , - 498 , - 133 , - 440 , - 411 , - 46 , - 353 , - 324 , - 463 , - 266 , - 237 , - 376 , - 179 , - 150 , - 289 , - 92 , - 63 , - 202 , - 5 , - 480 , - 115 , - 422 , - 393 , - 28 , - 335 , - 306 , - 445 , - 248 , - 219 , - 358 , - 161 , - 132 , - 271 , - 74 , - 45 , - 184 , - 491 , - 462 , - 97 , - 404 , - 375 , - 10 , - 317 , - 288 , - 427 , - 230 , - 201 , - 340 , - 143 , - 114 , - 253 , - 56 , - 27 , - 166 , - 473 , - 444 , - 79 , - 386 , - 357 , - 496 , - 299 , - 270 , - 409 , - 212 , - 183 , - 322 , - 125 , - 96 , - 235 , - 38 , - 9 , - 148 , - 455 , - 426 , - 61 , - 368 , - 339 , - 478 , - 281 , - 252 , - 391 , - 194 , - 165 , - 304 , - 107 , - 78 , - 217 , - 20 , - 495 , - 130 , - 437 , - 408 , - 43 , - 350 , - 321 , - 460 , - 263 , - 234 , - 373 , - 176 , - 147 , - 286 , - 89 , - 60 , - 199 , - 2 , - 477 , - 112 , - 419 , - 390 , - 25 , - 332 , - 303 , - 442 , - 245 , - 216 , - 355 , - 158 , - 129 , - 268 , - 71 , - 42 , - 181 , - 488 , - 459 , - 94 , - 401 , - 372 , - 7 , - 314 , - 285 , - 424 , - 227 , - 198 , - 337 , - 140 , - 111 , - 250 , - 53 , - 24 , - 163 , - 470 , - 441 , - 76 , - 383 , - 354 , - 493 , - 296 , - 267 , - 406 , - 209 , - 180 , - 319 , - 122 , - 93 , - 232 , - 35 , - 6 , - 145 , - 452 , - 423 , - 58 , - 365 , - 336 , - 475 , - 278 , - 249 , - 388 , - 191 , - 162 , - 301 , - 104 , - 75 , - 214 , - 17 , - 492 , - 127 , - 434 , - 405 , - 40 , - 347 , - 318 , - 457 , - 260 , - 231 , - 370 , - 173 , - 144 , - 283 , - 86 , - 57 , - 196 , - 503 , - 474 , - 109 , - 416 , - 387 , - 22 , - 329 , - 300 , - 439 , - 242 , - 213 , - 352 , - 155 , - 126 , - 265 , - 68 , - 39 , - 178 , - 485 , - 456 , - 91 , - 398 , - 369 , - 4 , - 311 , - 282 , - 421 , - 224 , - 195 , - 334 , - 137 , - 108 , - 247 , - 50 , - 21 , - 160 , - 467 , - 438 , - 73 , - 380 , - 351 , - 490 , - 293 , - 264 , - 403 , - 206 , - 177 , - 316 , - 119 , - 90 , - 229 , - 32 , - 3 , - 142 , - 449 , - 420 , - 55 , - 362 , - 333 , - 472 , - 275 , - 246 , - 385 , - 188 , - 159 , - 298 , - 101 , - 72 , - 211 , - 14 , - 489 , - 124 , - 431 , - 402 , - 37 , - 344 , - 315 , - 454 , - 257 , - 228 , - 367 , - 170 , - 141 , - 280 , - 83 , - 54 , - 193 , - 500 , - 471 , - 106 , - 413 , - 384 , - 19 , - 326 , - 297 , - 436 , - 239 , - 210 , - 349 , - 152 , - 123 , - 262 , - 65 , - 36 , - 175 , - 482 , - 453 , - 88 , - 395 , - 366 , - 1 , - 308 , - 279 , - 418 , - 221 , - 192 , - 331 , - 134 , - 105 , - 244 , - 47 , - 18 , - 157 , - 464 , - 435 , - 70 , - 377 , - 348 , - 487 , - 290 , - 261 , - 400 , - 203 , - 174 , - 313 , - 116 , - 87 , - 226 , - 29 , - 0 , - 95 , - 318 , - 157 , - 124 , - 219 , - 442 , - 281 , - 248 , - 343 , - 54 , - 405 , - 372 , - 467 , - 178 , - 17 , - 496 , - 79 , - 302 , - 141 , - 108 , - 203 , - 426 , - 265 , - 232 , - 327 , - 38 , - 389 , - 356 , - 451 , - 162 , - 1 , - 480 , - 63 , - 286 , - 125 , - 92 , - 187 , - 410 , - 249 , - 216 , - 311 , - 22 , - 373 , - 340 , - 435 , - 146 , - 497 , - 464 , - 47 , - 270 , - 109 , - 76 , - 171 , - 394 , - 233 , - 200 , - 295 , - 6 , - 357 , - 324 , - 419 , - 130 , - 481 , - 448 , - 31 , - 254 , - 93 , - 60 , - 155 , - 378 , - 217 , - 184 , - 279 , - 502 , - 341 , - 308 , - 403 , - 114 , - 465 , - 432 , - 15 , - 238 , - 77 , - 44 , - 139 , - 362 , - 201 , - 168 , - 263 , - 486 , - 325 , - 292 , - 387 , - 98 , - 449 , - 416 , - 511 , - 222 , - 61 , - 28 , - 123 , - 346 , - 185 , - 152 , - 247 , - 470 , - 309 , - 276 , - 371 , - 82 , - 433 , - 400 , - 495 , - 206 , - 45 , - 12 , - 107 , - 330 , - 169 , - 136 , - 231 , - 454 , - 293 , - 260 , - 355 , - 66 , - 417 , - 384 , - 479 , - 190 , - 29 , - 508 , - 91 , - 314 , - 153 , - 120 , - 215 , - 438 , - 277 , - 244 , - 339 , - 50 , - 401 , - 368 , - 463 , - 174 , - 13 , - 492 , - 75 , - 298 , - 137 , - 104 , - 199 , - 422 , - 261 , - 228 , - 323 , - 34 , - 385 , - 352 , - 447 , - 158 , - 509 , - 476 , - 59 , - 282 , - 121 , - 88 , - 183 , - 406 , - 245 , - 212 , - 307 , - 18 , - 369 , - 336 , - 431 , - 142 , - 493 , - 460 , - 43 , - 266 , - 105 , - 72 , - 167 , - 390 , - 229 , - 196 , - 291 , - 2 , - 353 , - 320 , - 415 , - 126 , - 477 , - 444 , - 27 , - 250 , - 89 , - 56 , - 151 , - 374 , - 213 , - 180 , - 275 , - 498 , - 337 , - 304 , - 399 , - 110 , - 461 , - 428 , - 11 , - 234 , - 73 , - 40 , - 135 , - 358 , - 197 , - 164 , - 259 , - 482 , - 321 , - 288 , - 383 , - 94 , - 445 , - 412 , - 507 , - 218 , - 57 , - 24 , - 119 , - 342 , - 181 , - 148 , - 243 , - 466 , - 305 , - 272 , - 367 , - 78 , - 429 , - 396 , - 491 , - 202 , - 41 , - 8 , - 103 , - 326 , - 165 , - 132 , - 227 , - 450 , - 289 , - 256 , - 351 , - 62 , - 413 , - 380 , - 475 , - 186 , - 25 , - 504 , - 87 , - 310 , - 149 , - 116 , - 211 , - 434 , - 273 , - 240 , - 335 , - 46 , - 397 , - 364 , - 459 , - 170 , - 9 , - 488 , - 71 , - 294 , - 133 , - 100 , - 195 , - 418 , - 257 , - 224 , - 319 , - 30 , - 381 , - 348 , - 443 , - 154 , - 505 , - 472 , - 55 , - 278 , - 117 , - 84 , - 179 , - 402 , - 241 , - 208 , - 303 , - 14 , - 365 , - 332 , - 427 , - 138 , - 489 , - 456 , - 39 , - 262 , - 101 , - 68 , - 163 , - 386 , - 225 , - 192 , - 287 , - 510 , - 349 , - 316 , - 411 , - 122 , - 473 , - 440 , - 23 , - 246 , - 85 , - 52 , - 147 , - 370 , - 209 , - 176 , - 271 , - 494 , - 333 , - 300 , - 395 , - 106 , - 457 , - 424 , - 7 , - 230 , - 69 , - 36 , - 131 , - 354 , - 193 , - 160 , - 255 , - 478 , - 317 , - 284 , - 379 , - 90 , - 441 , - 408 , - 503 , - 214 , - 53 , - 20 , - 115 , - 338 , - 177 , - 144 , - 239 , - 462 , - 301 , - 268 , - 363 , - 74 , - 425 , - 392 , - 487 , - 198 , - 37 , - 4 , - 99 , - 322 , - 161 , - 128 , - 223 , - 446 , - 285 , - 252 , - 347 , - 58 , - 409 , - 376 , - 471 , - 182 , - 21 , - 500 , - 83 , - 306 , - 145 , - 112 , - 207 , - 430 , - 269 , - 236 , - 331 , - 42 , - 393 , - 360 , - 455 , - 166 , - 5 , - 484 , - 67 , - 290 , - 129 , - 96 , - 191 , - 414 , - 253 , - 220 , - 315 , - 26 , - 377 , - 344 , - 439 , - 150 , - 501 , - 468 , - 51 , - 274 , - 113 , - 80 , - 175 , - 398 , - 237 , - 204 , - 299 , - 10 , - 361 , - 328 , - 423 , - 134 , - 485 , - 452 , - 35 , - 258 , - 97 , - 64 , - 159 , - 382 , - 221 , - 188 , - 283 , - 506 , - 345 , - 312 , - 407 , - 118 , - 469 , - 436 , - 19 , - 242 , - 81 , - 48 , - 143 , - 366 , - 205 , - 172 , - 267 , - 490 , - 329 , - 296 , - 391 , - 102 , - 453 , - 420 , - 3 , - 226 , - 65 , - 32 , - 127 , - 350 , - 189 , - 156 , - 251 , - 474 , - 313 , - 280 , - 375 , - 86 , - 437 , - 404 , - 499 , - 210 , - 49 , - 16 , - 111 , - 334 , - 173 , - 140 , - 235 , - 458 , - 297 , - 264 , - 359 , - 70 , - 421 , - 388 , - 483 , - 194 , - 33 , - 0 , - 83 , - 298 , - 117 , - 68 , - 151 , - 366 , - 185 , - 136 , - 219 , - 434 , - 253 , - 204 , - 287 , - 502 , - 321 , - 272 , - 355 , - 42 , - 389 , - 340 , - 423 , - 110 , - 457 , - 408 , - 491 , - 178 , - 525 , - 476 , - 31 , - 246 , - 65 , - 16 , - 99 , - 314 , - 133 , - 84 , - 167 , - 382 , - 201 , - 152 , - 235 , - 450 , - 269 , - 220 , - 303 , - 518 , - 337 , - 288 , - 371 , - 58 , - 405 , - 356 , - 439 , - 126 , - 473 , - 424 , - 507 , - 194 , - 13 , - 492 , - 47 , - 262 , - 81 , - 32 , - 115 , - 330 , - 149 , - 100 , - 183 , - 398 , - 217 , - 168 , - 251 , - 466 , - 285 , - 236 , - 319 , - 6 , - 353 , - 304 , - 387 , - 74 , - 421 , - 372 , - 455 , - 142 , - 489 , - 440 , - 523 , - 210 , - 29 , - 508 , - 63 , - 278 , - 97 , - 48 , - 131 , - 346 , - 165 , - 116 , - 199 , - 414 , - 233 , - 184 , - 267 , - 482 , - 301 , - 252 , - 335 , - 22 , - 369 , - 320 , - 403 , - 90 , - 437 , - 388 , - 471 , - 158 , - 505 , - 456 , - 11 , - 226 , - 45 , - 524 , - 79 , - 294 , - 113 , - 64 , - 147 , - 362 , - 181 , - 132 , - 215 , - 430 , - 249 , - 200 , - 283 , - 498 , - 317 , - 268 , - 351 , - 38 , - 385 , - 336 , - 419 , - 106 , - 453 , - 404 , - 487 , - 174 , - 521 , - 472 , - 27 , - 242 , - 61 , - 12 , - 95 , - 310 , - 129 , - 80 , - 163 , - 378 , - 197 , - 148 , - 231 , - 446 , - 265 , - 216 , - 299 , - 514 , - 333 , - 284 , - 367 , - 54 , - 401 , - 352 , - 435 , - 122 , - 469 , - 420 , - 503 , - 190 , - 9 , - 488 , - 43 , - 258 , - 77 , - 28 , - 111 , - 326 , - 145 , - 96 , - 179 , - 394 , - 213 , - 164 , - 247 , - 462 , - 281 , - 232 , - 315 , - 2 , - 349 , - 300 , - 383 , - 70 , - 417 , - 368 , - 451 , - 138 , - 485 , - 436 , - 519 , - 206 , - 25 , - 504 , - 59 , - 274 , - 93 , - 44 , - 127 , - 342 , - 161 , - 112 , - 195 , - 410 , - 229 , - 180 , - 263 , - 478 , - 297 , - 248 , - 331 , - 18 , - 365 , - 316 , - 399 , - 86 , - 433 , - 384 , - 467 , - 154 , - 501 , - 452 , - 7 , - 222 , - 41 , - 520 , - 75 , - 290 , - 109 , - 60 , - 143 , - 358 , - 177 , - 128 , - 211 , - 426 , - 245 , - 196 , - 279 , - 494 , - 313 , - 264 , - 347 , - 34 , - 381 , - 332 , - 415 , - 102 , - 449 , - 400 , - 483 , - 170 , - 517 , - 468 , - 23 , - 238 , - 57 , - 8 , - 91 , - 306 , - 125 , - 76 , - 159 , - 374 , - 193 , - 144 , - 227 , - 442 , - 261 , - 212 , - 295 , - 510 , - 329 , - 280 , - 363 , - 50 , - 397 , - 348 , - 431 , - 118 , - 465 , - 416 , - 499 , - 186 , - 5 , - 484 , - 39 , - 254 , - 73 , - 24 , - 107 , - 322 , - 141 , - 92 , - 175 , - 390 , - 209 , - 160 , - 243 , - 458 , - 277 , - 228 , - 311 , - 526 , - 345 , - 296 , - 379 , - 66 , - 413 , - 364 , - 447 , - 134 , - 481 , - 432 , - 515 , - 202 , - 21 , - 500 , - 55 , - 270 , - 89 , - 40 , - 123 , - 338 , - 157 , - 108 , - 191 , - 406 , - 225 , - 176 , - 259 , - 474 , - 293 , - 244 , - 327 , - 14 , - 361 , - 312 , - 395 , - 82 , - 429 , - 380 , - 463 , - 150 , - 497 , - 448 , - 3 , - 218 , - 37 , - 516 , - 71 , - 286 , - 105 , - 56 , - 139 , - 354 , - 173 , - 124 , - 207 , - 422 , - 241 , - 192 , - 275 , - 490 , - 309 , - 260 , - 343 , - 30 , - 377 , - 328 , - 411 , - 98 , - 445 , - 396 , - 479 , - 166 , - 513 , - 464 , - 19 , - 234 , - 53 , - 4 , - 87 , - 302 , - 121 , - 72 , - 155 , - 370 , - 189 , - 140 , - 223 , - 438 , - 257 , - 208 , - 291 , - 506 , - 325 , - 276 , - 359 , - 46 , - 393 , - 344 , - 427 , - 114 , - 461 , - 412 , - 495 , - 182 , - 1 , - 480 , - 35 , - 250 , - 69 , - 20 , - 103 , - 318 , - 137 , - 88 , - 171 , - 386 , - 205 , - 156 , - 239 , - 454 , - 273 , - 224 , - 307 , - 522 , - 341 , - 292 , - 375 , - 62 , - 409 , - 360 , - 443 , - 130 , - 477 , - 428 , - 511 , - 198 , - 17 , - 496 , - 51 , - 266 , - 85 , - 36 , - 119 , - 334 , - 153 , - 104 , - 187 , - 402 , - 221 , - 172 , - 255 , - 470 , - 289 , - 240 , - 323 , - 10 , - 357 , - 308 , - 391 , - 78 , - 425 , - 376 , - 459 , - 146 , - 493 , - 444 , - 527 , - 214 , - 33 , - 512 , - 67 , - 282 , - 101 , - 52 , - 135 , - 350 , - 169 , - 120 , - 203 , - 418 , - 237 , - 188 , - 271 , - 486 , - 305 , - 256 , - 339 , - 26 , - 373 , - 324 , - 407 , - 94 , - 441 , - 392 , - 475 , - 162 , - 509 , - 460 , - 15 , - 230 , - 49 , - 0 , - 103 , - 342 , - 173 , - 140 , - 243 , - 482 , - 313 , - 280 , - 383 , - 78 , - 453 , - 420 , - 523 , - 218 , - 49 , - 16 , - 119 , - 358 , - 189 , - 156 , - 259 , - 498 , - 329 , - 296 , - 399 , - 94 , - 469 , - 436 , - 539 , - 234 , - 65 , - 32 , - 135 , - 374 , - 205 , - 172 , - 275 , - 514 , - 345 , - 312 , - 415 , - 110 , - 485 , - 452 , - 11 , - 250 , - 81 , - 48 , - 151 , - 390 , - 221 , - 188 , - 291 , - 530 , - 361 , - 328 , - 431 , - 126 , - 501 , - 468 , - 27 , - 266 , - 97 , - 64 , - 167 , - 406 , - 237 , - 204 , - 307 , - 2 , - 377 , - 344 , - 447 , - 142 , - 517 , - 484 , - 43 , - 282 , - 113 , - 80 , - 183 , - 422 , - 253 , - 220 , - 323 , - 18 , - 393 , - 360 , - 463 , - 158 , - 533 , - 500 , - 59 , - 298 , - 129 , - 96 , - 199 , - 438 , - 269 , - 236 , - 339 , - 34 , - 409 , - 376 , - 479 , - 174 , - 5 , - 516 , - 75 , - 314 , - 145 , - 112 , - 215 , - 454 , - 285 , - 252 , - 355 , - 50 , - 425 , - 392 , - 495 , - 190 , - 21 , - 532 , - 91 , - 330 , - 161 , - 128 , - 231 , - 470 , - 301 , - 268 , - 371 , - 66 , - 441 , - 408 , - 511 , - 206 , - 37 , - 4 , - 107 , - 346 , - 177 , - 144 , - 247 , - 486 , - 317 , - 284 , - 387 , - 82 , - 457 , - 424 , - 527 , - 222 , - 53 , - 20 , - 123 , - 362 , - 193 , - 160 , - 263 , - 502 , - 333 , - 300 , - 403 , - 98 , - 473 , - 440 , - 543 , - 238 , - 69 , - 36 , - 139 , - 378 , - 209 , - 176 , - 279 , - 518 , - 349 , - 316 , - 419 , - 114 , - 489 , - 456 , - 15 , - 254 , - 85 , - 52 , - 155 , - 394 , - 225 , - 192 , - 295 , - 534 , - 365 , - 332 , - 435 , - 130 , - 505 , - 472 , - 31 , - 270 , - 101 , - 68 , - 171 , - 410 , - 241 , - 208 , - 311 , - 6 , - 381 , - 348 , - 451 , - 146 , - 521 , - 488 , - 47 , - 286 , - 117 , - 84 , - 187 , - 426 , - 257 , - 224 , - 327 , - 22 , - 397 , - 364 , - 467 , - 162 , - 537 , - 504 , - 63 , - 302 , - 133 , - 100 , - 203 , - 442 , - 273 , - 240 , - 343 , - 38 , - 413 , - 380 , - 483 , - 178 , - 9 , - 520 , - 79 , - 318 , - 149 , - 116 , - 219 , - 458 , - 289 , - 256 , - 359 , - 54 , - 429 , - 396 , - 499 , - 194 , - 25 , - 536 , - 95 , - 334 , - 165 , - 132 , - 235 , - 474 , - 305 , - 272 , - 375 , - 70 , - 445 , - 412 , - 515 , - 210 , - 41 , - 8 , - 111 , - 350 , - 181 , - 148 , - 251 , - 490 , - 321 , - 288 , - 391 , - 86 , - 461 , - 428 , - 531 , - 226 , - 57 , - 24 , - 127 , - 366 , - 197 , - 164 , - 267 , - 506 , - 337 , - 304 , - 407 , - 102 , - 477 , - 444 , - 3 , - 242 , - 73 , - 40 , - 143 , - 382 , - 213 , - 180 , - 283 , - 522 , - 353 , - 320 , - 423 , - 118 , - 493 , - 460 , - 19 , - 258 , - 89 , - 56 , - 159 , - 398 , - 229 , - 196 , - 299 , - 538 , - 369 , - 336 , - 439 , - 134 , - 509 , - 476 , - 35 , - 274 , - 105 , - 72 , - 175 , - 414 , - 245 , - 212 , - 315 , - 10 , - 385 , - 352 , - 455 , - 150 , - 525 , - 492 , - 51 , - 290 , - 121 , - 88 , - 191 , - 430 , - 261 , - 228 , - 331 , - 26 , - 401 , - 368 , - 471 , - 166 , - 541 , - 508 , - 67 , - 306 , - 137 , - 104 , - 207 , - 446 , - 277 , - 244 , - 347 , - 42 , - 417 , - 384 , - 487 , - 182 , - 13 , - 524 , - 83 , - 322 , - 153 , - 120 , - 223 , - 462 , - 293 , - 260 , - 363 , - 58 , - 433 , - 400 , - 503 , - 198 , - 29 , - 540 , - 99 , - 338 , - 169 , - 136 , - 239 , - 478 , - 309 , - 276 , - 379 , - 74 , - 449 , - 416 , - 519 , - 214 , - 45 , - 12 , - 115 , - 354 , - 185 , - 152 , - 255 , - 494 , - 325 , - 292 , - 395 , - 90 , - 465 , - 432 , - 535 , - 230 , - 61 , - 28 , - 131 , - 370 , - 201 , - 168 , - 271 , - 510 , - 341 , - 308 , - 411 , - 106 , - 481 , - 448 , - 7 , - 246 , - 77 , - 44 , - 147 , - 386 , - 217 , - 184 , - 287 , - 526 , - 357 , - 324 , - 427 , - 122 , - 497 , - 464 , - 23 , - 262 , - 93 , - 60 , - 163 , - 402 , - 233 , - 200 , - 303 , - 542 , - 373 , - 340 , - 443 , - 138 , - 513 , - 480 , - 39 , - 278 , - 109 , - 76 , - 179 , - 418 , - 249 , - 216 , - 319 , - 14 , - 389 , - 356 , - 459 , - 154 , - 529 , - 496 , - 55 , - 294 , - 125 , - 92 , - 195 , - 434 , - 265 , - 232 , - 335 , - 30 , - 405 , - 372 , - 475 , - 170 , - 1 , - 512 , - 71 , - 310 , - 141 , - 108 , - 211 , - 450 , - 281 , - 248 , - 351 , - 46 , - 421 , - 388 , - 491 , - 186 , - 17 , - 528 , - 87 , - 326 , - 157 , - 124 , - 227 , - 466 , - 297 , - 264 , - 367 , - 62 , - 437 , - 404 , - 507 , - 202 , - 33 , - 0 , - 87 , - 454 , - 541 , - 348 , - 435 , - 242 , - 329 , - 136 , - 223 , - 30 , - 117 , - 484 , - 11 , - 378 , - 465 , - 272 , - 359 , - 166 , - 253 , - 60 , - 147 , - 514 , - 41 , - 408 , - 495 , - 302 , - 389 , - 196 , - 283 , - 90 , - 177 , - 544 , - 71 , - 438 , - 525 , - 332 , - 419 , - 226 , - 313 , - 120 , - 207 , - 14 , - 101 , - 468 , - 555 , - 362 , - 449 , - 256 , - 343 , - 150 , - 237 , - 44 , - 131 , - 498 , - 25 , - 392 , - 479 , - 286 , - 373 , - 180 , - 267 , - 74 , - 161 , - 528 , - 55 , - 422 , - 509 , - 316 , - 403 , - 210 , - 297 , - 104 , - 191 , - 558 , - 85 , - 452 , - 539 , - 346 , - 433 , - 240 , - 327 , - 134 , - 221 , - 28 , - 115 , - 482 , - 9 , - 376 , - 463 , - 270 , - 357 , - 164 , - 251 , - 58 , - 145 , - 512 , - 39 , - 406 , - 493 , - 300 , - 387 , - 194 , - 281 , - 88 , - 175 , - 542 , - 69 , - 436 , - 523 , - 330 , - 417 , - 224 , - 311 , - 118 , - 205 , - 12 , - 99 , - 466 , - 553 , - 360 , - 447 , - 254 , - 341 , - 148 , - 235 , - 42 , - 129 , - 496 , - 23 , - 390 , - 477 , - 284 , - 371 , - 178 , - 265 , - 72 , - 159 , - 526 , - 53 , - 420 , - 507 , - 314 , - 401 , - 208 , - 295 , - 102 , - 189 , - 556 , - 83 , - 450 , - 537 , - 344 , - 431 , - 238 , - 325 , - 132 , - 219 , - 26 , - 113 , - 480 , - 7 , - 374 , - 461 , - 268 , - 355 , - 162 , - 249 , - 56 , - 143 , - 510 , - 37 , - 404 , - 491 , - 298 , - 385 , - 192 , - 279 , - 86 , - 173 , - 540 , - 67 , - 434 , - 521 , - 328 , - 415 , - 222 , - 309 , - 116 , - 203 , - 10 , - 97 , - 464 , - 551 , - 358 , - 445 , - 252 , - 339 , - 146 , - 233 , - 40 , - 127 , - 494 , - 21 , - 388 , - 475 , - 282 , - 369 , - 176 , - 263 , - 70 , - 157 , - 524 , - 51 , - 418 , - 505 , - 312 , - 399 , - 206 , - 293 , - 100 , - 187 , - 554 , - 81 , - 448 , - 535 , - 342 , - 429 , - 236 , - 323 , - 130 , - 217 , - 24 , - 111 , - 478 , - 5 , - 372 , - 459 , - 266 , - 353 , - 160 , - 247 , - 54 , - 141 , - 508 , - 35 , - 402 , - 489 , - 296 , - 383 , - 190 , - 277 , - 84 , - 171 , - 538 , - 65 , - 432 , - 519 , - 326 , - 413 , - 220 , - 307 , - 114 , - 201 , - 8 , - 95 , - 462 , - 549 , - 356 , - 443 , - 250 , - 337 , - 144 , - 231 , - 38 , - 125 , - 492 , - 19 , - 386 , - 473 , - 280 , - 367 , - 174 , - 261 , - 68 , - 155 , - 522 , - 49 , - 416 , - 503 , - 310 , - 397 , - 204 , - 291 , - 98 , - 185 , - 552 , - 79 , - 446 , - 533 , - 340 , - 427 , - 234 , - 321 , - 128 , - 215 , - 22 , - 109 , - 476 , - 3 , - 370 , - 457 , - 264 , - 351 , - 158 , - 245 , - 52 , - 139 , - 506 , - 33 , - 400 , - 487 , - 294 , - 381 , - 188 , - 275 , - 82 , - 169 , - 536 , - 63 , - 430 , - 517 , - 324 , - 411 , - 218 , - 305 , - 112 , - 199 , - 6 , - 93 , - 460 , - 547 , - 354 , - 441 , - 248 , - 335 , - 142 , - 229 , - 36 , - 123 , - 490 , - 17 , - 384 , - 471 , - 278 , - 365 , - 172 , - 259 , - 66 , - 153 , - 520 , - 47 , - 414 , - 501 , - 308 , - 395 , - 202 , - 289 , - 96 , - 183 , - 550 , - 77 , - 444 , - 531 , - 338 , - 425 , - 232 , - 319 , - 126 , - 213 , - 20 , - 107 , - 474 , - 1 , - 368 , - 455 , - 262 , - 349 , - 156 , - 243 , - 50 , - 137 , - 504 , - 31 , - 398 , - 485 , - 292 , - 379 , - 186 , - 273 , - 80 , - 167 , - 534 , - 61 , - 428 , - 515 , - 322 , - 409 , - 216 , - 303 , - 110 , - 197 , - 4 , - 91 , - 458 , - 545 , - 352 , - 439 , - 246 , - 333 , - 140 , - 227 , - 34 , - 121 , - 488 , - 15 , - 382 , - 469 , - 276 , - 363 , - 170 , - 257 , - 64 , - 151 , - 518 , - 45 , - 412 , - 499 , - 306 , - 393 , - 200 , - 287 , - 94 , - 181 , - 548 , - 75 , - 442 , - 529 , - 336 , - 423 , - 230 , - 317 , - 124 , - 211 , - 18 , - 105 , - 472 , - 559 , - 366 , - 453 , - 260 , - 347 , - 154 , - 241 , - 48 , - 135 , - 502 , - 29 , - 396 , - 483 , - 290 , - 377 , - 184 , - 271 , - 78 , - 165 , - 532 , - 59 , - 426 , - 513 , - 320 , - 407 , - 214 , - 301 , - 108 , - 195 , - 2 , - 89 , - 456 , - 543 , - 350 , - 437 , - 244 , - 331 , - 138 , - 225 , - 32 , - 119 , - 486 , - 13 , - 380 , - 467 , - 274 , - 361 , - 168 , - 255 , - 62 , - 149 , - 516 , - 43 , - 410 , - 497 , - 304 , - 391 , - 198 , - 285 , - 92 , - 179 , - 546 , - 73 , - 440 , - 527 , - 334 , - 421 , - 228 , - 315 , - 122 , - 209 , - 16 , - 103 , - 470 , - 557 , - 364 , - 451 , - 258 , - 345 , - 152 , - 239 , - 46 , - 133 , - 500 , - 27 , - 394 , - 481 , - 288 , - 375 , - 182 , - 269 , - 76 , - 163 , - 530 , - 57 , - 424 , - 511 , - 318 , - 405 , - 212 , - 299 , - 106 , - 193 , - 0 , - 161 , - 514 , - 483 , - 68 , - 421 , - 390 , - 551 , - 328 , - 297 , - 458 , - 235 , - 204 , - 365 , - 142 , - 111 , - 272 , - 49 , - 18 , - 179 , - 532 , - 501 , - 86 , - 439 , - 408 , - 569 , - 346 , - 315 , - 476 , - 253 , - 222 , - 383 , - 160 , - 129 , - 290 , - 67 , - 36 , - 197 , - 550 , - 519 , - 104 , - 457 , - 426 , - 11 , - 364 , - 333 , - 494 , - 271 , - 240 , - 401 , - 178 , - 147 , - 308 , - 85 , - 54 , - 215 , - 568 , - 537 , - 122 , - 475 , - 444 , - 29 , - 382 , - 351 , - 512 , - 289 , - 258 , - 419 , - 196 , - 165 , - 326 , - 103 , - 72 , - 233 , - 10 , - 555 , - 140 , - 493 , - 462 , - 47 , - 400 , - 369 , - 530 , - 307 , - 276 , - 437 , - 214 , - 183 , - 344 , - 121 , - 90 , - 251 , - 28 , - 573 , - 158 , - 511 , - 480 , - 65 , - 418 , - 387 , - 548 , - 325 , - 294 , - 455 , - 232 , - 201 , - 362 , - 139 , - 108 , - 269 , - 46 , - 15 , - 176 , - 529 , - 498 , - 83 , - 436 , - 405 , - 566 , - 343 , - 312 , - 473 , - 250 , - 219 , - 380 , - 157 , - 126 , - 287 , - 64 , - 33 , - 194 , - 547 , - 516 , - 101 , - 454 , - 423 , - 8 , - 361 , - 330 , - 491 , - 268 , - 237 , - 398 , - 175 , - 144 , - 305 , - 82 , - 51 , - 212 , - 565 , - 534 , - 119 , - 472 , - 441 , - 26 , - 379 , - 348 , - 509 , - 286 , - 255 , - 416 , - 193 , - 162 , - 323 , - 100 , - 69 , - 230 , - 7 , - 552 , - 137 , - 490 , - 459 , - 44 , - 397 , - 366 , - 527 , - 304 , - 273 , - 434 , - 211 , - 180 , - 341 , - 118 , - 87 , - 248 , - 25 , - 570 , - 155 , - 508 , - 477 , - 62 , - 415 , - 384 , - 545 , - 322 , - 291 , - 452 , - 229 , - 198 , - 359 , - 136 , - 105 , - 266 , - 43 , - 12 , - 173 , - 526 , - 495 , - 80 , - 433 , - 402 , - 563 , - 340 , - 309 , - 470 , - 247 , - 216 , - 377 , - 154 , - 123 , - 284 , - 61 , - 30 , - 191 , - 544 , - 513 , - 98 , - 451 , - 420 , - 5 , - 358 , - 327 , - 488 , - 265 , - 234 , - 395 , - 172 , - 141 , - 302 , - 79 , - 48 , - 209 , - 562 , - 531 , - 116 , - 469 , - 438 , - 23 , - 376 , - 345 , - 506 , - 283 , - 252 , - 413 , - 190 , - 159 , - 320 , - 97 , - 66 , - 227 , - 4 , - 549 , - 134 , - 487 , - 456 , - 41 , - 394 , - 363 , - 524 , - 301 , - 270 , - 431 , - 208 , - 177 , - 338 , - 115 , - 84 , - 245 , - 22 , - 567 , - 152 , - 505 , - 474 , - 59 , - 412 , - 381 , - 542 , - 319 , - 288 , - 449 , - 226 , - 195 , - 356 , - 133 , - 102 , - 263 , - 40 , - 9 , - 170 , - 523 , - 492 , - 77 , - 430 , - 399 , - 560 , - 337 , - 306 , - 467 , - 244 , - 213 , - 374 , - 151 , - 120 , - 281 , - 58 , - 27 , - 188 , - 541 , - 510 , - 95 , - 448 , - 417 , - 2 , - 355 , - 324 , - 485 , - 262 , - 231 , - 392 , - 169 , - 138 , - 299 , - 76 , - 45 , - 206 , - 559 , - 528 , - 113 , - 466 , - 435 , - 20 , - 373 , - 342 , - 503 , - 280 , - 249 , - 410 , - 187 , - 156 , - 317 , - 94 , - 63 , - 224 , - 1 , - 546 , - 131 , - 484 , - 453 , - 38 , - 391 , - 360 , - 521 , - 298 , - 267 , - 428 , - 205 , - 174 , - 335 , - 112 , - 81 , - 242 , - 19 , - 564 , - 149 , - 502 , - 471 , - 56 , - 409 , - 378 , - 539 , - 316 , - 285 , - 446 , - 223 , - 192 , - 353 , - 130 , - 99 , - 260 , - 37 , - 6 , - 167 , - 520 , - 489 , - 74 , - 427 , - 396 , - 557 , - 334 , - 303 , - 464 , - 241 , - 210 , - 371 , - 148 , - 117 , - 278 , - 55 , - 24 , - 185 , - 538 , - 507 , - 92 , - 445 , - 414 , - 575 , - 352 , - 321 , - 482 , - 259 , - 228 , - 389 , - 166 , - 135 , - 296 , - 73 , - 42 , - 203 , - 556 , - 525 , - 110 , - 463 , - 432 , - 17 , - 370 , - 339 , - 500 , - 277 , - 246 , - 407 , - 184 , - 153 , - 314 , - 91 , - 60 , - 221 , - 574 , - 543 , - 128 , - 481 , - 450 , - 35 , - 388 , - 357 , - 518 , - 295 , - 264 , - 425 , - 202 , - 171 , - 332 , - 109 , - 78 , - 239 , - 16 , - 561 , - 146 , - 499 , - 468 , - 53 , - 406 , - 375 , - 536 , - 313 , - 282 , - 443 , - 220 , - 189 , - 350 , - 127 , - 96 , - 257 , - 34 , - 3 , - 164 , - 517 , - 486 , - 71 , - 424 , - 393 , - 554 , - 331 , - 300 , - 461 , - 238 , - 207 , - 368 , - 145 , - 114 , - 275 , - 52 , - 21 , - 182 , - 535 , - 504 , - 89 , - 442 , - 411 , - 572 , - 349 , - 318 , - 479 , - 256 , - 225 , - 386 , - 163 , - 132 , - 293 , - 70 , - 39 , - 200 , - 553 , - 522 , - 107 , - 460 , - 429 , - 14 , - 367 , - 336 , - 497 , - 274 , - 243 , - 404 , - 181 , - 150 , - 311 , - 88 , - 57 , - 218 , - 571 , - 540 , - 125 , - 478 , - 447 , - 32 , - 385 , - 354 , - 515 , - 292 , - 261 , - 422 , - 199 , - 168 , - 329 , - 106 , - 75 , - 236 , - 13 , - 558 , - 143 , - 496 , - 465 , - 50 , - 403 , - 372 , - 533 , - 310 , - 279 , - 440 , - 217 , - 186 , - 347 , - 124 , - 93 , - 254 , - 31 , - 0 , - 93 , - 334 , - 131 , - 76 , - 169 , - 410 , - 207 , - 152 , - 245 , - 486 , - 283 , - 228 , - 321 , - 562 , - 359 , - 304 , - 397 , - 46 , - 435 , - 380 , - 473 , - 122 , - 511 , - 456 , - 549 , - 198 , - 587 , - 532 , - 33 , - 274 , - 71 , - 16 , - 109 , - 350 , - 147 , - 92 , - 185 , - 426 , - 223 , - 168 , - 261 , - 502 , - 299 , - 244 , - 337 , - 578 , - 375 , - 320 , - 413 , - 62 , - 451 , - 396 , - 489 , - 138 , - 527 , - 472 , - 565 , - 214 , - 11 , - 548 , - 49 , - 290 , - 87 , - 32 , - 125 , - 366 , - 163 , - 108 , - 201 , - 442 , - 239 , - 184 , - 277 , - 518 , - 315 , - 260 , - 353 , - 2 , - 391 , - 336 , - 429 , - 78 , - 467 , - 412 , - 505 , - 154 , - 543 , - 488 , - 581 , - 230 , - 27 , - 564 , - 65 , - 306 , - 103 , - 48 , - 141 , - 382 , - 179 , - 124 , - 217 , - 458 , - 255 , - 200 , - 293 , - 534 , - 331 , - 276 , - 369 , - 18 , - 407 , - 352 , - 445 , - 94 , - 483 , - 428 , - 521 , - 170 , - 559 , - 504 , - 5 , - 246 , - 43 , - 580 , - 81 , - 322 , - 119 , - 64 , - 157 , - 398 , - 195 , - 140 , - 233 , - 474 , - 271 , - 216 , - 309 , - 550 , - 347 , - 292 , - 385 , - 34 , - 423 , - 368 , - 461 , - 110 , - 499 , - 444 , - 537 , - 186 , - 575 , - 520 , - 21 , - 262 , - 59 , - 4 , - 97 , - 338 , - 135 , - 80 , - 173 , - 414 , - 211 , - 156 , - 249 , - 490 , - 287 , - 232 , - 325 , - 566 , - 363 , - 308 , - 401 , - 50 , - 439 , - 384 , - 477 , - 126 , - 515 , - 460 , - 553 , - 202 , - 591 , - 536 , - 37 , - 278 , - 75 , - 20 , - 113 , - 354 , - 151 , - 96 , - 189 , - 430 , - 227 , - 172 , - 265 , - 506 , - 303 , - 248 , - 341 , - 582 , - 379 , - 324 , - 417 , - 66 , - 455 , - 400 , - 493 , - 142 , - 531 , - 476 , - 569 , - 218 , - 15 , - 552 , - 53 , - 294 , - 91 , - 36 , - 129 , - 370 , - 167 , - 112 , - 205 , - 446 , - 243 , - 188 , - 281 , - 522 , - 319 , - 264 , - 357 , - 6 , - 395 , - 340 , - 433 , - 82 , - 471 , - 416 , - 509 , - 158 , - 547 , - 492 , - 585 , - 234 , - 31 , - 568 , - 69 , - 310 , - 107 , - 52 , - 145 , - 386 , - 183 , - 128 , - 221 , - 462 , - 259 , - 204 , - 297 , - 538 , - 335 , - 280 , - 373 , - 22 , - 411 , - 356 , - 449 , - 98 , - 487 , - 432 , - 525 , - 174 , - 563 , - 508 , - 9 , - 250 , - 47 , - 584 , - 85 , - 326 , - 123 , - 68 , - 161 , - 402 , - 199 , - 144 , - 237 , - 478 , - 275 , - 220 , - 313 , - 554 , - 351 , - 296 , - 389 , - 38 , - 427 , - 372 , - 465 , - 114 , - 503 , - 448 , - 541 , - 190 , - 579 , - 524 , - 25 , - 266 , - 63 , - 8 , - 101 , - 342 , - 139 , - 84 , - 177 , - 418 , - 215 , - 160 , - 253 , - 494 , - 291 , - 236 , - 329 , - 570 , - 367 , - 312 , - 405 , - 54 , - 443 , - 388 , - 481 , - 130 , - 519 , - 464 , - 557 , - 206 , - 3 , - 540 , - 41 , - 282 , - 79 , - 24 , - 117 , - 358 , - 155 , - 100 , - 193 , - 434 , - 231 , - 176 , - 269 , - 510 , - 307 , - 252 , - 345 , - 586 , - 383 , - 328 , - 421 , - 70 , - 459 , - 404 , - 497 , - 146 , - 535 , - 480 , - 573 , - 222 , - 19 , - 556 , - 57 , - 298 , - 95 , - 40 , - 133 , - 374 , - 171 , - 116 , - 209 , - 450 , - 247 , - 192 , - 285 , - 526 , - 323 , - 268 , - 361 , - 10 , - 399 , - 344 , - 437 , - 86 , - 475 , - 420 , - 513 , - 162 , - 551 , - 496 , - 589 , - 238 , - 35 , - 572 , - 73 , - 314 , - 111 , - 56 , - 149 , - 390 , - 187 , - 132 , - 225 , - 466 , - 263 , - 208 , - 301 , - 542 , - 339 , - 284 , - 377 , - 26 , - 415 , - 360 , - 453 , - 102 , - 491 , - 436 , - 529 , - 178 , - 567 , - 512 , - 13 , - 254 , - 51 , - 588 , - 89 , - 330 , - 127 , - 72 , - 165 , - 406 , - 203 , - 148 , - 241 , - 482 , - 279 , - 224 , - 317 , - 558 , - 355 , - 300 , - 393 , - 42 , - 431 , - 376 , - 469 , - 118 , - 507 , - 452 , - 545 , - 194 , - 583 , - 528 , - 29 , - 270 , - 67 , - 12 , - 105 , - 346 , - 143 , - 88 , - 181 , - 422 , - 219 , - 164 , - 257 , - 498 , - 295 , - 240 , - 333 , - 574 , - 371 , - 316 , - 409 , - 58 , - 447 , - 392 , - 485 , - 134 , - 523 , - 468 , - 561 , - 210 , - 7 , - 544 , - 45 , - 286 , - 83 , - 28 , - 121 , - 362 , - 159 , - 104 , - 197 , - 438 , - 235 , - 180 , - 273 , - 514 , - 311 , - 256 , - 349 , - 590 , - 387 , - 332 , - 425 , - 74 , - 463 , - 408 , - 501 , - 150 , - 539 , - 484 , - 577 , - 226 , - 23 , - 560 , - 61 , - 302 , - 99 , - 44 , - 137 , - 378 , - 175 , - 120 , - 213 , - 454 , - 251 , - 196 , - 289 , - 530 , - 327 , - 272 , - 365 , - 14 , - 403 , - 348 , - 441 , - 90 , - 479 , - 424 , - 517 , - 166 , - 555 , - 500 , - 1 , - 242 , - 39 , - 576 , - 77 , - 318 , - 115 , - 60 , - 153 , - 394 , - 191 , - 136 , - 229 , - 470 , - 267 , - 212 , - 305 , - 546 , - 343 , - 288 , - 381 , - 30 , - 419 , - 364 , - 457 , - 106 , - 495 , - 440 , - 533 , - 182 , - 571 , - 516 , - 17 , - 258 , - 55 , - 0 , - 113 , - 378 , - 187 , - 148 , - 261 , - 526 , - 335 , - 296 , - 409 , - 66 , - 483 , - 444 , - 557 , - 214 , - 23 , - 592 , - 97 , - 362 , - 171 , - 132 , - 245 , - 510 , - 319 , - 280 , - 393 , - 50 , - 467 , - 428 , - 541 , - 198 , - 7 , - 576 , - 81 , - 346 , - 155 , - 116 , - 229 , - 494 , - 303 , - 264 , - 377 , - 34 , - 451 , - 412 , - 525 , - 182 , - 599 , - 560 , - 65 , - 330 , - 139 , - 100 , - 213 , - 478 , - 287 , - 248 , - 361 , - 18 , - 435 , - 396 , - 509 , - 166 , - 583 , - 544 , - 49 , - 314 , - 123 , - 84 , - 197 , - 462 , - 271 , - 232 , - 345 , - 2 , - 419 , - 380 , - 493 , - 150 , - 567 , - 528 , - 33 , - 298 , - 107 , - 68 , - 181 , - 446 , - 255 , - 216 , - 329 , - 594 , - 403 , - 364 , - 477 , - 134 , - 551 , - 512 , - 17 , - 282 , - 91 , - 52 , - 165 , - 430 , - 239 , - 200 , - 313 , - 578 , - 387 , - 348 , - 461 , - 118 , - 535 , - 496 , - 1 , - 266 , - 75 , - 36 , - 149 , - 414 , - 223 , - 184 , - 297 , - 562 , - 371 , - 332 , - 445 , - 102 , - 519 , - 480 , - 593 , - 250 , - 59 , - 20 , - 133 , - 398 , - 207 , - 168 , - 281 , - 546 , - 355 , - 316 , - 429 , - 86 , - 503 , - 464 , - 577 , - 234 , - 43 , - 4 , - 117 , - 382 , - 191 , - 152 , - 265 , - 530 , - 339 , - 300 , - 413 , - 70 , - 487 , - 448 , - 561 , - 218 , - 27 , - 596 , - 101 , - 366 , - 175 , - 136 , - 249 , - 514 , - 323 , - 284 , - 397 , - 54 , - 471 , - 432 , - 545 , - 202 , - 11 , - 580 , - 85 , - 350 , - 159 , - 120 , - 233 , - 498 , - 307 , - 268 , - 381 , - 38 , - 455 , - 416 , - 529 , - 186 , - 603 , - 564 , - 69 , - 334 , - 143 , - 104 , - 217 , - 482 , - 291 , - 252 , - 365 , - 22 , - 439 , - 400 , - 513 , - 170 , - 587 , - 548 , - 53 , - 318 , - 127 , - 88 , - 201 , - 466 , - 275 , - 236 , - 349 , - 6 , - 423 , - 384 , - 497 , - 154 , - 571 , - 532 , - 37 , - 302 , - 111 , - 72 , - 185 , - 450 , - 259 , - 220 , - 333 , - 598 , - 407 , - 368 , - 481 , - 138 , - 555 , - 516 , - 21 , - 286 , - 95 , - 56 , - 169 , - 434 , - 243 , - 204 , - 317 , - 582 , - 391 , - 352 , - 465 , - 122 , - 539 , - 500 , - 5 , - 270 , - 79 , - 40 , - 153 , - 418 , - 227 , - 188 , - 301 , - 566 , - 375 , - 336 , - 449 , - 106 , - 523 , - 484 , - 597 , - 254 , - 63 , - 24 , - 137 , - 402 , - 211 , - 172 , - 285 , - 550 , - 359 , - 320 , - 433 , - 90 , - 507 , - 468 , - 581 , - 238 , - 47 , - 8 , - 121 , - 386 , - 195 , - 156 , - 269 , - 534 , - 343 , - 304 , - 417 , - 74 , - 491 , - 452 , - 565 , - 222 , - 31 , - 600 , - 105 , - 370 , - 179 , - 140 , - 253 , - 518 , - 327 , - 288 , - 401 , - 58 , - 475 , - 436 , - 549 , - 206 , - 15 , - 584 , - 89 , - 354 , - 163 , - 124 , - 237 , - 502 , - 311 , - 272 , - 385 , - 42 , - 459 , - 420 , - 533 , - 190 , - 607 , - 568 , - 73 , - 338 , - 147 , - 108 , - 221 , - 486 , - 295 , - 256 , - 369 , - 26 , - 443 , - 404 , - 517 , - 174 , - 591 , - 552 , - 57 , - 322 , - 131 , - 92 , - 205 , - 470 , - 279 , - 240 , - 353 , - 10 , - 427 , - 388 , - 501 , - 158 , - 575 , - 536 , - 41 , - 306 , - 115 , - 76 , - 189 , - 454 , - 263 , - 224 , - 337 , - 602 , - 411 , - 372 , - 485 , - 142 , - 559 , - 520 , - 25 , - 290 , - 99 , - 60 , - 173 , - 438 , - 247 , - 208 , - 321 , - 586 , - 395 , - 356 , - 469 , - 126 , - 543 , - 504 , - 9 , - 274 , - 83 , - 44 , - 157 , - 422 , - 231 , - 192 , - 305 , - 570 , - 379 , - 340 , - 453 , - 110 , - 527 , - 488 , - 601 , - 258 , - 67 , - 28 , - 141 , - 406 , - 215 , - 176 , - 289 , - 554 , - 363 , - 324 , - 437 , - 94 , - 511 , - 472 , - 585 , - 242 , - 51 , - 12 , - 125 , - 390 , - 199 , - 160 , - 273 , - 538 , - 347 , - 308 , - 421 , - 78 , - 495 , - 456 , - 569 , - 226 , - 35 , - 604 , - 109 , - 374 , - 183 , - 144 , - 257 , - 522 , - 331 , - 292 , - 405 , - 62 , - 479 , - 440 , - 553 , - 210 , - 19 , - 588 , - 93 , - 358 , - 167 , - 128 , - 241 , - 506 , - 315 , - 276 , - 389 , - 46 , - 463 , - 424 , - 537 , - 194 , - 3 , - 572 , - 77 , - 342 , - 151 , - 112 , - 225 , - 490 , - 299 , - 260 , - 373 , - 30 , - 447 , - 408 , - 521 , - 178 , - 595 , - 556 , - 61 , - 326 , - 135 , - 96 , - 209 , - 474 , - 283 , - 244 , - 357 , - 14 , - 431 , - 392 , - 505 , - 162 , - 579 , - 540 , - 45 , - 310 , - 119 , - 80 , - 193 , - 458 , - 267 , - 228 , - 341 , - 606 , - 415 , - 376 , - 489 , - 146 , - 563 , - 524 , - 29 , - 294 , - 103 , - 64 , - 177 , - 442 , - 251 , - 212 , - 325 , - 590 , - 399 , - 360 , - 473 , - 130 , - 547 , - 508 , - 13 , - 278 , - 87 , - 48 , - 161 , - 426 , - 235 , - 196 , - 309 , - 574 , - 383 , - 344 , - 457 , - 114 , - 531 , - 492 , - 605 , - 262 , - 71 , - 32 , - 145 , - 410 , - 219 , - 180 , - 293 , - 558 , - 367 , - 328 , - 441 , - 98 , - 515 , - 476 , - 589 , - 246 , - 55 , - 16 , - 129 , - 394 , - 203 , - 164 , - 277 , - 542 , - 351 , - 312 , - 425 , - 82 , - 499 , - 460 , - 573 , - 230 , - 39 , - 0 , - 275 , - 394 , - 357 , - 164 , - 439 , - 558 , - 521 , - 328 , - 603 , - 98 , - 61 , - 492 , - 143 , - 262 , - 225 , - 32 , - 307 , - 426 , - 389 , - 196 , - 471 , - 590 , - 553 , - 360 , - 11 , - 130 , - 93 , - 524 , - 175 , - 294 , - 257 , - 64 , - 339 , - 458 , - 421 , - 228 , - 503 , - 622 , - 585 , - 392 , - 43 , - 162 , - 125 , - 556 , - 207 , - 326 , - 289 , - 96 , - 371 , - 490 , - 453 , - 260 , - 535 , - 30 , - 617 , - 424 , - 75 , - 194 , - 157 , - 588 , - 239 , - 358 , - 321 , - 128 , - 403 , - 522 , - 485 , - 292 , - 567 , - 62 , - 25 , - 456 , - 107 , - 226 , - 189 , - 620 , - 271 , - 390 , - 353 , - 160 , - 435 , - 554 , - 517 , - 324 , - 599 , - 94 , - 57 , - 488 , - 139 , - 258 , - 221 , - 28 , - 303 , - 422 , - 385 , - 192 , - 467 , - 586 , - 549 , - 356 , - 7 , - 126 , - 89 , - 520 , - 171 , - 290 , - 253 , - 60 , - 335 , - 454 , - 417 , - 224 , - 499 , - 618 , - 581 , - 388 , - 39 , - 158 , - 121 , - 552 , - 203 , - 322 , - 285 , - 92 , - 367 , - 486 , - 449 , - 256 , - 531 , - 26 , - 613 , - 420 , - 71 , - 190 , - 153 , - 584 , - 235 , - 354 , - 317 , - 124 , - 399 , - 518 , - 481 , - 288 , - 563 , - 58 , - 21 , - 452 , - 103 , - 222 , - 185 , - 616 , - 267 , - 386 , - 349 , - 156 , - 431 , - 550 , - 513 , - 320 , - 595 , - 90 , - 53 , - 484 , - 135 , - 254 , - 217 , - 24 , - 299 , - 418 , - 381 , - 188 , - 463 , - 582 , - 545 , - 352 , - 3 , - 122 , - 85 , - 516 , - 167 , - 286 , - 249 , - 56 , - 331 , - 450 , - 413 , - 220 , - 495 , - 614 , - 577 , - 384 , - 35 , - 154 , - 117 , - 548 , - 199 , - 318 , - 281 , - 88 , - 363 , - 482 , - 445 , - 252 , - 527 , - 22 , - 609 , - 416 , - 67 , - 186 , - 149 , - 580 , - 231 , - 350 , - 313 , - 120 , - 395 , - 514 , - 477 , - 284 , - 559 , - 54 , - 17 , - 448 , - 99 , - 218 , - 181 , - 612 , - 263 , - 382 , - 345 , - 152 , - 427 , - 546 , - 509 , - 316 , - 591 , - 86 , - 49 , - 480 , - 131 , - 250 , - 213 , - 20 , - 295 , - 414 , - 377 , - 184 , - 459 , - 578 , - 541 , - 348 , - 623 , - 118 , - 81 , - 512 , - 163 , - 282 , - 245 , - 52 , - 327 , - 446 , - 409 , - 216 , - 491 , - 610 , - 573 , - 380 , - 31 , - 150 , - 113 , - 544 , - 195 , - 314 , - 277 , - 84 , - 359 , - 478 , - 441 , - 248 , - 523 , - 18 , - 605 , - 412 , - 63 , - 182 , - 145 , - 576 , - 227 , - 346 , - 309 , - 116 , - 391 , - 510 , - 473 , - 280 , - 555 , - 50 , - 13 , - 444 , - 95 , - 214 , - 177 , - 608 , - 259 , - 378 , - 341 , - 148 , - 423 , - 542 , - 505 , - 312 , - 587 , - 82 , - 45 , - 476 , - 127 , - 246 , - 209 , - 16 , - 291 , - 410 , - 373 , - 180 , - 455 , - 574 , - 537 , - 344 , - 619 , - 114 , - 77 , - 508 , - 159 , - 278 , - 241 , - 48 , - 323 , - 442 , - 405 , - 212 , - 487 , - 606 , - 569 , - 376 , - 27 , - 146 , - 109 , - 540 , - 191 , - 310 , - 273 , - 80 , - 355 , - 474 , - 437 , - 244 , - 519 , - 14 , - 601 , - 408 , - 59 , - 178 , - 141 , - 572 , - 223 , - 342 , - 305 , - 112 , - 387 , - 506 , - 469 , - 276 , - 551 , - 46 , - 9 , - 440 , - 91 , - 210 , - 173 , - 604 , - 255 , - 374 , - 337 , - 144 , - 419 , - 538 , - 501 , - 308 , - 583 , - 78 , - 41 , - 472 , - 123 , - 242 , - 205 , - 12 , - 287 , - 406 , - 369 , - 176 , - 451 , - 570 , - 533 , - 340 , - 615 , - 110 , - 73 , - 504 , - 155 , - 274 , - 237 , - 44 , - 319 , - 438 , - 401 , - 208 , - 483 , - 602 , - 565 , - 372 , - 23 , - 142 , - 105 , - 536 , - 187 , - 306 , - 269 , - 76 , - 351 , - 470 , - 433 , - 240 , - 515 , - 10 , - 597 , - 404 , - 55 , - 174 , - 137 , - 568 , - 219 , - 338 , - 301 , - 108 , - 383 , - 502 , - 465 , - 272 , - 547 , - 42 , - 5 , - 436 , - 87 , - 206 , - 169 , - 600 , - 251 , - 370 , - 333 , - 140 , - 415 , - 534 , - 497 , - 304 , - 579 , - 74 , - 37 , - 468 , - 119 , - 238 , - 201 , - 8 , - 283 , - 402 , - 365 , - 172 , - 447 , - 566 , - 529 , - 336 , - 611 , - 106 , - 69 , - 500 , - 151 , - 270 , - 233 , - 40 , - 315 , - 434 , - 397 , - 204 , - 479 , - 598 , - 561 , - 368 , - 19 , - 138 , - 101 , - 532 , - 183 , - 302 , - 265 , - 72 , - 347 , - 466 , - 429 , - 236 , - 511 , - 6 , - 593 , - 400 , - 51 , - 170 , - 133 , - 564 , - 215 , - 334 , - 297 , - 104 , - 379 , - 498 , - 461 , - 268 , - 543 , - 38 , - 1 , - 432 , - 83 , - 202 , - 165 , - 596 , - 247 , - 366 , - 329 , - 136 , - 411 , - 530 , - 493 , - 300 , - 575 , - 70 , - 33 , - 464 , - 115 , - 234 , - 197 , - 4 , - 279 , - 398 , - 361 , - 168 , - 443 , - 562 , - 525 , - 332 , - 607 , - 102 , - 65 , - 496 , - 147 , - 266 , - 229 , - 36 , - 311 , - 430 , - 393 , - 200 , - 475 , - 594 , - 557 , - 364 , - 15 , - 134 , - 97 , - 528 , - 179 , - 298 , - 261 , - 68 , - 343 , - 462 , - 425 , - 232 , - 507 , - 2 , - 589 , - 396 , - 47 , - 166 , - 129 , - 560 , - 211 , - 330 , - 293 , - 100 , - 375 , - 494 , - 457 , - 264 , - 539 , - 34 , - 621 , - 428 , - 79 , - 198 , - 161 , - 592 , - 243 , - 362 , - 325 , - 132 , - 407 , - 526 , - 489 , - 296 , - 571 , - 66 , - 29 , - 460 , - 111 , - 230 , - 193 , - 0 , - 119 , - 398 , - 197 , - 156 , - 275 , - 554 , - 353 , - 312 , - 431 , - 70 , - 509 , - 468 , - 587 , - 226 , - 25 , - 624 , - 103 , - 382 , - 181 , - 140 , - 259 , - 538 , - 337 , - 296 , - 415 , - 54 , - 493 , - 452 , - 571 , - 210 , - 9 , - 608 , - 87 , - 366 , - 165 , - 124 , - 243 , - 522 , - 321 , - 280 , - 399 , - 38 , - 477 , - 436 , - 555 , - 194 , - 633 , - 592 , - 71 , - 350 , - 149 , - 108 , - 227 , - 506 , - 305 , - 264 , - 383 , - 22 , - 461 , - 420 , - 539 , - 178 , - 617 , - 576 , - 55 , - 334 , - 133 , - 92 , - 211 , - 490 , - 289 , - 248 , - 367 , - 6 , - 445 , - 404 , - 523 , - 162 , - 601 , - 560 , - 39 , - 318 , - 117 , - 76 , - 195 , - 474 , - 273 , - 232 , - 351 , - 630 , - 429 , - 388 , - 507 , - 146 , - 585 , - 544 , - 23 , - 302 , - 101 , - 60 , - 179 , - 458 , - 257 , - 216 , - 335 , - 614 , - 413 , - 372 , - 491 , - 130 , - 569 , - 528 , - 7 , - 286 , - 85 , - 44 , - 163 , - 442 , - 241 , - 200 , - 319 , - 598 , - 397 , - 356 , - 475 , - 114 , - 553 , - 512 , - 631 , - 270 , - 69 , - 28 , - 147 , - 426 , - 225 , - 184 , - 303 , - 582 , - 381 , - 340 , - 459 , - 98 , - 537 , - 496 , - 615 , - 254 , - 53 , - 12 , - 131 , - 410 , - 209 , - 168 , - 287 , - 566 , - 365 , - 324 , - 443 , - 82 , - 521 , - 480 , - 599 , - 238 , - 37 , - 636 , - 115 , - 394 , - 193 , - 152 , - 271 , - 550 , - 349 , - 308 , - 427 , - 66 , - 505 , - 464 , - 583 , - 222 , - 21 , - 620 , - 99 , - 378 , - 177 , - 136 , - 255 , - 534 , - 333 , - 292 , - 411 , - 50 , - 489 , - 448 , - 567 , - 206 , - 5 , - 604 , - 83 , - 362 , - 161 , - 120 , - 239 , - 518 , - 317 , - 276 , - 395 , - 34 , - 473 , - 432 , - 551 , - 190 , - 629 , - 588 , - 67 , - 346 , - 145 , - 104 , - 223 , - 502 , - 301 , - 260 , - 379 , - 18 , - 457 , - 416 , - 535 , - 174 , - 613 , - 572 , - 51 , - 330 , - 129 , - 88 , - 207 , - 486 , - 285 , - 244 , - 363 , - 2 , - 441 , - 400 , - 519 , - 158 , - 597 , - 556 , - 35 , - 314 , - 113 , - 72 , - 191 , - 470 , - 269 , - 228 , - 347 , - 626 , - 425 , - 384 , - 503 , - 142 , - 581 , - 540 , - 19 , - 298 , - 97 , - 56 , - 175 , - 454 , - 253 , - 212 , - 331 , - 610 , - 409 , - 368 , - 487 , - 126 , - 565 , - 524 , - 3 , - 282 , - 81 , - 40 , - 159 , - 438 , - 237 , - 196 , - 315 , - 594 , - 393 , - 352 , - 471 , - 110 , - 549 , - 508 , - 627 , - 266 , - 65 , - 24 , - 143 , - 422 , - 221 , - 180 , - 299 , - 578 , - 377 , - 336 , - 455 , - 94 , - 533 , - 492 , - 611 , - 250 , - 49 , - 8 , - 127 , - 406 , - 205 , - 164 , - 283 , - 562 , - 361 , - 320 , - 439 , - 78 , - 517 , - 476 , - 595 , - 234 , - 33 , - 632 , - 111 , - 390 , - 189 , - 148 , - 267 , - 546 , - 345 , - 304 , - 423 , - 62 , - 501 , - 460 , - 579 , - 218 , - 17 , - 616 , - 95 , - 374 , - 173 , - 132 , - 251 , - 530 , - 329 , - 288 , - 407 , - 46 , - 485 , - 444 , - 563 , - 202 , - 1 , - 600 , - 79 , - 358 , - 157 , - 116 , - 235 , - 514 , - 313 , - 272 , - 391 , - 30 , - 469 , - 428 , - 547 , - 186 , - 625 , - 584 , - 63 , - 342 , - 141 , - 100 , - 219 , - 498 , - 297 , - 256 , - 375 , - 14 , - 453 , - 412 , - 531 , - 170 , - 609 , - 568 , - 47 , - 326 , - 125 , - 84 , - 203 , - 482 , - 281 , - 240 , - 359 , - 638 , - 437 , - 396 , - 515 , - 154 , - 593 , - 552 , - 31 , - 310 , - 109 , - 68 , - 187 , - 466 , - 265 , - 224 , - 343 , - 622 , - 421 , - 380 , - 499 , - 138 , - 577 , - 536 , - 15 , - 294 , - 93 , - 52 , - 171 , - 450 , - 249 , - 208 , - 327 , - 606 , - 405 , - 364 , - 483 , - 122 , - 561 , - 520 , - 639 , - 278 , - 77 , - 36 , - 155 , - 434 , - 233 , - 192 , - 311 , - 590 , - 389 , - 348 , - 467 , - 106 , - 545 , - 504 , - 623 , - 262 , - 61 , - 20 , - 139 , - 418 , - 217 , - 176 , - 295 , - 574 , - 373 , - 332 , - 451 , - 90 , - 529 , - 488 , - 607 , - 246 , - 45 , - 4 , - 123 , - 402 , - 201 , - 160 , - 279 , - 558 , - 357 , - 316 , - 435 , - 74 , - 513 , - 472 , - 591 , - 230 , - 29 , - 628 , - 107 , - 386 , - 185 , - 144 , - 263 , - 542 , - 341 , - 300 , - 419 , - 58 , - 497 , - 456 , - 575 , - 214 , - 13 , - 612 , - 91 , - 370 , - 169 , - 128 , - 247 , - 526 , - 325 , - 284 , - 403 , - 42 , - 481 , - 440 , - 559 , - 198 , - 637 , - 596 , - 75 , - 354 , - 153 , - 112 , - 231 , - 510 , - 309 , - 268 , - 387 , - 26 , - 465 , - 424 , - 543 , - 182 , - 621 , - 580 , - 59 , - 338 , - 137 , - 96 , - 215 , - 494 , - 293 , - 252 , - 371 , - 10 , - 449 , - 408 , - 527 , - 166 , - 605 , - 564 , - 43 , - 322 , - 121 , - 80 , - 199 , - 478 , - 277 , - 236 , - 355 , - 634 , - 433 , - 392 , - 511 , - 150 , - 589 , - 548 , - 27 , - 306 , - 105 , - 64 , - 183 , - 462 , - 261 , - 220 , - 339 , - 618 , - 417 , - 376 , - 495 , - 134 , - 573 , - 532 , - 11 , - 290 , - 89 , - 48 , - 167 , - 446 , - 245 , - 204 , - 323 , - 602 , - 401 , - 360 , - 479 , - 118 , - 557 , - 516 , - 635 , - 274 , - 73 , - 32 , - 151 , - 430 , - 229 , - 188 , - 307 , - 586 , - 385 , - 344 , - 463 , - 102 , - 541 , - 500 , - 619 , - 258 , - 57 , - 16 , - 135 , - 414 , - 213 , - 172 , - 291 , - 570 , - 369 , - 328 , - 447 , - 86 , - 525 , - 484 , - 603 , - 242 , - 41 , - 0 , - 267 , - 42 , - 637 , - 84 , - 351 , - 126 , - 65 , - 168 , - 435 , - 210 , - 149 , - 252 , - 519 , - 294 , - 233 , - 336 , - 603 , - 378 , - 317 , - 420 , - 31 , - 462 , - 401 , - 504 , - 115 , - 546 , - 485 , - 588 , - 199 , - 630 , - 569 , - 16 , - 283 , - 58 , - 653 , - 100 , - 367 , - 142 , - 81 , - 184 , - 451 , - 226 , - 165 , - 268 , - 535 , - 310 , - 249 , - 352 , - 619 , - 394 , - 333 , - 436 , - 47 , - 478 , - 417 , - 520 , - 131 , - 562 , - 501 , - 604 , - 215 , - 646 , - 585 , - 32 , - 299 , - 74 , - 13 , - 116 , - 383 , - 158 , - 97 , - 200 , - 467 , - 242 , - 181 , - 284 , - 551 , - 326 , - 265 , - 368 , - 635 , - 410 , - 349 , - 452 , - 63 , - 494 , - 433 , - 536 , - 147 , - 578 , - 517 , - 620 , - 231 , - 6 , - 601 , - 48 , - 315 , - 90 , - 29 , - 132 , - 399 , - 174 , - 113 , - 216 , - 483 , - 258 , - 197 , - 300 , - 567 , - 342 , - 281 , - 384 , - 651 , - 426 , - 365 , - 468 , - 79 , - 510 , - 449 , - 552 , - 163 , - 594 , - 533 , - 636 , - 247 , - 22 , - 617 , - 64 , - 331 , - 106 , - 45 , - 148 , - 415 , - 190 , - 129 , - 232 , - 499 , - 274 , - 213 , - 316 , - 583 , - 358 , - 297 , - 400 , - 11 , - 442 , - 381 , - 484 , - 95 , - 526 , - 465 , - 568 , - 179 , - 610 , - 549 , - 652 , - 263 , - 38 , - 633 , - 80 , - 347 , - 122 , - 61 , - 164 , - 431 , - 206 , - 145 , - 248 , - 515 , - 290 , - 229 , - 332 , - 599 , - 374 , - 313 , - 416 , - 27 , - 458 , - 397 , - 500 , - 111 , - 542 , - 481 , - 584 , - 195 , - 626 , - 565 , - 12 , - 279 , - 54 , - 649 , - 96 , - 363 , - 138 , - 77 , - 180 , - 447 , - 222 , - 161 , - 264 , - 531 , - 306 , - 245 , - 348 , - 615 , - 390 , - 329 , - 432 , - 43 , - 474 , - 413 , - 516 , - 127 , - 558 , - 497 , - 600 , - 211 , - 642 , - 581 , - 28 , - 295 , - 70 , - 9 , - 112 , - 379 , - 154 , - 93 , - 196 , - 463 , - 238 , - 177 , - 280 , - 547 , - 322 , - 261 , - 364 , - 631 , - 406 , - 345 , - 448 , - 59 , - 490 , - 429 , - 532 , - 143 , - 574 , - 513 , - 616 , - 227 , - 2 , - 597 , - 44 , - 311 , - 86 , - 25 , - 128 , - 395 , - 170 , - 109 , - 212 , - 479 , - 254 , - 193 , - 296 , - 563 , - 338 , - 277 , - 380 , - 647 , - 422 , - 361 , - 464 , - 75 , - 506 , - 445 , - 548 , - 159 , - 590 , - 529 , - 632 , - 243 , - 18 , - 613 , - 60 , - 327 , - 102 , - 41 , - 144 , - 411 , - 186 , - 125 , - 228 , - 495 , - 270 , - 209 , - 312 , - 579 , - 354 , - 293 , - 396 , - 7 , - 438 , - 377 , - 480 , - 91 , - 522 , - 461 , - 564 , - 175 , - 606 , - 545 , - 648 , - 259 , - 34 , - 629 , - 76 , - 343 , - 118 , - 57 , - 160 , - 427 , - 202 , - 141 , - 244 , - 511 , - 286 , - 225 , - 328 , - 595 , - 370 , - 309 , - 412 , - 23 , - 454 , - 393 , - 496 , - 107 , - 538 , - 477 , - 580 , - 191 , - 622 , - 561 , - 8 , - 275 , - 50 , - 645 , - 92 , - 359 , - 134 , - 73 , - 176 , - 443 , - 218 , - 157 , - 260 , - 527 , - 302 , - 241 , - 344 , - 611 , - 386 , - 325 , - 428 , - 39 , - 470 , - 409 , - 512 , - 123 , - 554 , - 493 , - 596 , - 207 , - 638 , - 577 , - 24 , - 291 , - 66 , - 5 , - 108 , - 375 , - 150 , - 89 , - 192 , - 459 , - 234 , - 173 , - 276 , - 543 , - 318 , - 257 , - 360 , - 627 , - 402 , - 341 , - 444 , - 55 , - 486 , - 425 , - 528 , - 139 , - 570 , - 509 , - 612 , - 223 , - 654 , - 593 , - 40 , - 307 , - 82 , - 21 , - 124 , - 391 , - 166 , - 105 , - 208 , - 475 , - 250 , - 189 , - 292 , - 559 , - 334 , - 273 , - 376 , - 643 , - 418 , - 357 , - 460 , - 71 , - 502 , - 441 , - 544 , - 155 , - 586 , - 525 , - 628 , - 239 , - 14 , - 609 , - 56 , - 323 , - 98 , - 37 , - 140 , - 407 , - 182 , - 121 , - 224 , - 491 , - 266 , - 205 , - 308 , - 575 , - 350 , - 289 , - 392 , - 3 , - 434 , - 373 , - 476 , - 87 , - 518 , - 457 , - 560 , - 171 , - 602 , - 541 , - 644 , - 255 , - 30 , - 625 , - 72 , - 339 , - 114 , - 53 , - 156 , - 423 , - 198 , - 137 , - 240 , - 507 , - 282 , - 221 , - 324 , - 591 , - 366 , - 305 , - 408 , - 19 , - 450 , - 389 , - 492 , - 103 , - 534 , - 473 , - 576 , - 187 , - 618 , - 557 , - 4 , - 271 , - 46 , - 641 , - 88 , - 355 , - 130 , - 69 , - 172 , - 439 , - 214 , - 153 , - 256 , - 523 , - 298 , - 237 , - 340 , - 607 , - 382 , - 321 , - 424 , - 35 , - 466 , - 405 , - 508 , - 119 , - 550 , - 489 , - 592 , - 203 , - 634 , - 573 , - 20 , - 287 , - 62 , - 1 , - 104 , - 371 , - 146 , - 85 , - 188 , - 455 , - 230 , - 169 , - 272 , - 539 , - 314 , - 253 , - 356 , - 623 , - 398 , - 337 , - 440 , - 51 , - 482 , - 421 , - 524 , - 135 , - 566 , - 505 , - 608 , - 219 , - 650 , - 589 , - 36 , - 303 , - 78 , - 17 , - 120 , - 387 , - 162 , - 101 , - 204 , - 471 , - 246 , - 185 , - 288 , - 555 , - 330 , - 269 , - 372 , - 639 , - 414 , - 353 , - 456 , - 67 , - 498 , - 437 , - 540 , - 151 , - 582 , - 521 , - 624 , - 235 , - 10 , - 605 , - 52 , - 319 , - 94 , - 33 , - 136 , - 403 , - 178 , - 117 , - 220 , - 487 , - 262 , - 201 , - 304 , - 571 , - 346 , - 285 , - 388 , - 655 , - 430 , - 369 , - 472 , - 83 , - 514 , - 453 , - 556 , - 167 , - 598 , - 537 , - 640 , - 251 , - 26 , - 621 , - 68 , - 335 , - 110 , - 49 , - 152 , - 419 , - 194 , - 133 , - 236 , - 503 , - 278 , - 217 , - 320 , - 587 , - 362 , - 301 , - 404 , - 15 , - 446 , - 385 , - 488 , - 99 , - 530 , - 469 , - 572 , - 183 , - 614 , - 553 , - 0 , - 295 , - 422 , - 381 , - 172 , - 467 , - 594 , - 553 , - 344 , - 639 , - 94 , - 53 , - 516 , - 139 , - 266 , - 225 , - 16 , - 311 , - 438 , - 397 , - 188 , - 483 , - 610 , - 569 , - 360 , - 655 , - 110 , - 69 , - 532 , - 155 , - 282 , - 241 , - 32 , - 327 , - 454 , - 413 , - 204 , - 499 , - 626 , - 585 , - 376 , - 671 , - 126 , - 85 , - 548 , - 171 , - 298 , - 257 , - 48 , - 343 , - 470 , - 429 , - 220 , - 515 , - 642 , - 601 , - 392 , - 15 , - 142 , - 101 , - 564 , - 187 , - 314 , - 273 , - 64 , - 359 , - 486 , - 445 , - 236 , - 531 , - 658 , - 617 , - 408 , - 31 , - 158 , - 117 , - 580 , - 203 , - 330 , - 289 , - 80 , - 375 , - 502 , - 461 , - 252 , - 547 , - 2 , - 633 , - 424 , - 47 , - 174 , - 133 , - 596 , - 219 , - 346 , - 305 , - 96 , - 391 , - 518 , - 477 , - 268 , - 563 , - 18 , - 649 , - 440 , - 63 , - 190 , - 149 , - 612 , - 235 , - 362 , - 321 , - 112 , - 407 , - 534 , - 493 , - 284 , - 579 , - 34 , - 665 , - 456 , - 79 , - 206 , - 165 , - 628 , - 251 , - 378 , - 337 , - 128 , - 423 , - 550 , - 509 , - 300 , - 595 , - 50 , - 9 , - 472 , - 95 , - 222 , - 181 , - 644 , - 267 , - 394 , - 353 , - 144 , - 439 , - 566 , - 525 , - 316 , - 611 , - 66 , - 25 , - 488 , - 111 , - 238 , - 197 , - 660 , - 283 , - 410 , - 369 , - 160 , - 455 , - 582 , - 541 , - 332 , - 627 , - 82 , - 41 , - 504 , - 127 , - 254 , - 213 , - 4 , - 299 , - 426 , - 385 , - 176 , - 471 , - 598 , - 557 , - 348 , - 643 , - 98 , - 57 , - 520 , - 143 , - 270 , - 229 , - 20 , - 315 , - 442 , - 401 , - 192 , - 487 , - 614 , - 573 , - 364 , - 659 , - 114 , - 73 , - 536 , - 159 , - 286 , - 245 , - 36 , - 331 , - 458 , - 417 , - 208 , - 503 , - 630 , - 589 , - 380 , - 3 , - 130 , - 89 , - 552 , - 175 , - 302 , - 261 , - 52 , - 347 , - 474 , - 433 , - 224 , - 519 , - 646 , - 605 , - 396 , - 19 , - 146 , - 105 , - 568 , - 191 , - 318 , - 277 , - 68 , - 363 , - 490 , - 449 , - 240 , - 535 , - 662 , - 621 , - 412 , - 35 , - 162 , - 121 , - 584 , - 207 , - 334 , - 293 , - 84 , - 379 , - 506 , - 465 , - 256 , - 551 , - 6 , - 637 , - 428 , - 51 , - 178 , - 137 , - 600 , - 223 , - 350 , - 309 , - 100 , - 395 , - 522 , - 481 , - 272 , - 567 , - 22 , - 653 , - 444 , - 67 , - 194 , - 153 , - 616 , - 239 , - 366 , - 325 , - 116 , - 411 , - 538 , - 497 , - 288 , - 583 , - 38 , - 669 , - 460 , - 83 , - 210 , - 169 , - 632 , - 255 , - 382 , - 341 , - 132 , - 427 , - 554 , - 513 , - 304 , - 599 , - 54 , - 13 , - 476 , - 99 , - 226 , - 185 , - 648 , - 271 , - 398 , - 357 , - 148 , - 443 , - 570 , - 529 , - 320 , - 615 , - 70 , - 29 , - 492 , - 115 , - 242 , - 201 , - 664 , - 287 , - 414 , - 373 , - 164 , - 459 , - 586 , - 545 , - 336 , - 631 , - 86 , - 45 , - 508 , - 131 , - 258 , - 217 , - 8 , - 303 , - 430 , - 389 , - 180 , - 475 , - 602 , - 561 , - 352 , - 647 , - 102 , - 61 , - 524 , - 147 , - 274 , - 233 , - 24 , - 319 , - 446 , - 405 , - 196 , - 491 , - 618 , - 577 , - 368 , - 663 , - 118 , - 77 , - 540 , - 163 , - 290 , - 249 , - 40 , - 335 , - 462 , - 421 , - 212 , - 507 , - 634 , - 593 , - 384 , - 7 , - 134 , - 93 , - 556 , - 179 , - 306 , - 265 , - 56 , - 351 , - 478 , - 437 , - 228 , - 523 , - 650 , - 609 , - 400 , - 23 , - 150 , - 109 , - 572 , - 195 , - 322 , - 281 , - 72 , - 367 , - 494 , - 453 , - 244 , - 539 , - 666 , - 625 , - 416 , - 39 , - 166 , - 125 , - 588 , - 211 , - 338 , - 297 , - 88 , - 383 , - 510 , - 469 , - 260 , - 555 , - 10 , - 641 , - 432 , - 55 , - 182 , - 141 , - 604 , - 227 , - 354 , - 313 , - 104 , - 399 , - 526 , - 485 , - 276 , - 571 , - 26 , - 657 , - 448 , - 71 , - 198 , - 157 , - 620 , - 243 , - 370 , - 329 , - 120 , - 415 , - 542 , - 501 , - 292 , - 587 , - 42 , - 1 , - 464 , - 87 , - 214 , - 173 , - 636 , - 259 , - 386 , - 345 , - 136 , - 431 , - 558 , - 517 , - 308 , - 603 , - 58 , - 17 , - 480 , - 103 , - 230 , - 189 , - 652 , - 275 , - 402 , - 361 , - 152 , - 447 , - 574 , - 533 , - 324 , - 619 , - 74 , - 33 , - 496 , - 119 , - 246 , - 205 , - 668 , - 291 , - 418 , - 377 , - 168 , - 463 , - 590 , - 549 , - 340 , - 635 , - 90 , - 49 , - 512 , - 135 , - 262 , - 221 , - 12 , - 307 , - 434 , - 393 , - 184 , - 479 , - 606 , - 565 , - 356 , - 651 , - 106 , - 65 , - 528 , - 151 , - 278 , - 237 , - 28 , - 323 , - 450 , - 409 , - 200 , - 495 , - 622 , - 581 , - 372 , - 667 , - 122 , - 81 , - 544 , - 167 , - 294 , - 253 , - 44 , - 339 , - 466 , - 425 , - 216 , - 511 , - 638 , - 597 , - 388 , - 11 , - 138 , - 97 , - 560 , - 183 , - 310 , - 269 , - 60 , - 355 , - 482 , - 441 , - 232 , - 527 , - 654 , - 613 , - 404 , - 27 , - 154 , - 113 , - 576 , - 199 , - 326 , - 285 , - 76 , - 371 , - 498 , - 457 , - 248 , - 543 , - 670 , - 629 , - 420 , - 43 , - 170 , - 129 , - 592 , - 215 , - 342 , - 301 , - 92 , - 387 , - 514 , - 473 , - 264 , - 559 , - 14 , - 645 , - 436 , - 59 , - 186 , - 145 , - 608 , - 231 , - 358 , - 317 , - 108 , - 403 , - 530 , - 489 , - 280 , - 575 , - 30 , - 661 , - 452 , - 75 , - 202 , - 161 , - 624 , - 247 , - 374 , - 333 , - 124 , - 419 , - 546 , - 505 , - 296 , - 591 , - 46 , - 5 , - 468 , - 91 , - 218 , - 177 , - 640 , - 263 , - 390 , - 349 , - 140 , - 435 , - 562 , - 521 , - 312 , - 607 , - 62 , - 21 , - 484 , - 107 , - 234 , - 193 , - 656 , - 279 , - 406 , - 365 , - 156 , - 451 , - 578 , - 537 , - 328 , - 623 , - 78 , - 37 , - 500 , - 123 , - 250 , - 209 , - 0 , - 107 , - 386 , - 149 , - 84 , - 191 , - 470 , - 233 , - 168 , - 275 , - 554 , - 317 , - 252 , - 359 , - 638 , - 401 , - 336 , - 443 , - 34 , - 485 , - 420 , - 527 , - 118 , - 569 , - 504 , - 611 , - 202 , - 653 , - 588 , - 7 , - 286 , - 49 , - 672 , - 91 , - 370 , - 133 , - 68 , - 175 , - 454 , - 217 , - 152 , - 259 , - 538 , - 301 , - 236 , - 343 , - 622 , - 385 , - 320 , - 427 , - 18 , - 469 , - 404 , - 511 , - 102 , - 553 , - 488 , - 595 , - 186 , - 637 , - 572 , - 679 , - 270 , - 33 , - 656 , - 75 , - 354 , - 117 , - 52 , - 159 , - 438 , - 201 , - 136 , - 243 , - 522 , - 285 , - 220 , - 327 , - 606 , - 369 , - 304 , - 411 , - 2 , - 453 , - 388 , - 495 , - 86 , - 537 , - 472 , - 579 , - 170 , - 621 , - 556 , - 663 , - 254 , - 17 , - 640 , - 59 , - 338 , - 101 , - 36 , - 143 , - 422 , - 185 , - 120 , - 227 , - 506 , - 269 , - 204 , - 311 , - 590 , - 353 , - 288 , - 395 , - 674 , - 437 , - 372 , - 479 , - 70 , - 521 , - 456 , - 563 , - 154 , - 605 , - 540 , - 647 , - 238 , - 1 , - 624 , - 43 , - 322 , - 85 , - 20 , - 127 , - 406 , - 169 , - 104 , - 211 , - 490 , - 253 , - 188 , - 295 , - 574 , - 337 , - 272 , - 379 , - 658 , - 421 , - 356 , - 463 , - 54 , - 505 , - 440 , - 547 , - 138 , - 589 , - 524 , - 631 , - 222 , - 673 , - 608 , - 27 , - 306 , - 69 , - 4 , - 111 , - 390 , - 153 , - 88 , - 195 , - 474 , - 237 , - 172 , - 279 , - 558 , - 321 , - 256 , - 363 , - 642 , - 405 , - 340 , - 447 , - 38 , - 489 , - 424 , - 531 , - 122 , - 573 , - 508 , - 615 , - 206 , - 657 , - 592 , - 11 , - 290 , - 53 , - 676 , - 95 , - 374 , - 137 , - 72 , - 179 , - 458 , - 221 , - 156 , - 263 , - 542 , - 305 , - 240 , - 347 , - 626 , - 389 , - 324 , - 431 , - 22 , - 473 , - 408 , - 515 , - 106 , - 557 , - 492 , - 599 , - 190 , - 641 , - 576 , - 683 , - 274 , - 37 , - 660 , - 79 , - 358 , - 121 , - 56 , - 163 , - 442 , - 205 , - 140 , - 247 , - 526 , - 289 , - 224 , - 331 , - 610 , - 373 , - 308 , - 415 , - 6 , - 457 , - 392 , - 499 , - 90 , - 541 , - 476 , - 583 , - 174 , - 625 , - 560 , - 667 , - 258 , - 21 , - 644 , - 63 , - 342 , - 105 , - 40 , - 147 , - 426 , - 189 , - 124 , - 231 , - 510 , - 273 , - 208 , - 315 , - 594 , - 357 , - 292 , - 399 , - 678 , - 441 , - 376 , - 483 , - 74 , - 525 , - 460 , - 567 , - 158 , - 609 , - 544 , - 651 , - 242 , - 5 , - 628 , - 47 , - 326 , - 89 , - 24 , - 131 , - 410 , - 173 , - 108 , - 215 , - 494 , - 257 , - 192 , - 299 , - 578 , - 341 , - 276 , - 383 , - 662 , - 425 , - 360 , - 467 , - 58 , - 509 , - 444 , - 551 , - 142 , - 593 , - 528 , - 635 , - 226 , - 677 , - 612 , - 31 , - 310 , - 73 , - 8 , - 115 , - 394 , - 157 , - 92 , - 199 , - 478 , - 241 , - 176 , - 283 , - 562 , - 325 , - 260 , - 367 , - 646 , - 409 , - 344 , - 451 , - 42 , - 493 , - 428 , - 535 , - 126 , - 577 , - 512 , - 619 , - 210 , - 661 , - 596 , - 15 , - 294 , - 57 , - 680 , - 99 , - 378 , - 141 , - 76 , - 183 , - 462 , - 225 , - 160 , - 267 , - 546 , - 309 , - 244 , - 351 , - 630 , - 393 , - 328 , - 435 , - 26 , - 477 , - 412 , - 519 , - 110 , - 561 , - 496 , - 603 , - 194 , - 645 , - 580 , - 687 , - 278 , - 41 , - 664 , - 83 , - 362 , - 125 , - 60 , - 167 , - 446 , - 209 , - 144 , - 251 , - 530 , - 293 , - 228 , - 335 , - 614 , - 377 , - 312 , - 419 , - 10 , - 461 , - 396 , - 503 , - 94 , - 545 , - 480 , - 587 , - 178 , - 629 , - 564 , - 671 , - 262 , - 25 , - 648 , - 67 , - 346 , - 109 , - 44 , - 151 , - 430 , - 193 , - 128 , - 235 , - 514 , - 277 , - 212 , - 319 , - 598 , - 361 , - 296 , - 403 , - 682 , - 445 , - 380 , - 487 , - 78 , - 529 , - 464 , - 571 , - 162 , - 613 , - 548 , - 655 , - 246 , - 9 , - 632 , - 51 , - 330 , - 93 , - 28 , - 135 , - 414 , - 177 , - 112 , - 219 , - 498 , - 261 , - 196 , - 303 , - 582 , - 345 , - 280 , - 387 , - 666 , - 429 , - 364 , - 471 , - 62 , - 513 , - 448 , - 555 , - 146 , - 597 , - 532 , - 639 , - 230 , - 681 , - 616 , - 35 , - 314 , - 77 , - 12 , - 119 , - 398 , - 161 , - 96 , - 203 , - 482 , - 245 , - 180 , - 287 , - 566 , - 329 , - 264 , - 371 , - 650 , - 413 , - 348 , - 455 , - 46 , - 497 , - 432 , - 539 , - 130 , - 581 , - 516 , - 623 , - 214 , - 665 , - 600 , - 19 , - 298 , - 61 , - 684 , - 103 , - 382 , - 145 , - 80 , - 187 , - 466 , - 229 , - 164 , - 271 , - 550 , - 313 , - 248 , - 355 , - 634 , - 397 , - 332 , - 439 , - 30 , - 481 , - 416 , - 523 , - 114 , - 565 , - 500 , - 607 , - 198 , - 649 , - 584 , - 3 , - 282 , - 45 , - 668 , - 87 , - 366 , - 129 , - 64 , - 171 , - 450 , - 213 , - 148 , - 255 , - 534 , - 297 , - 232 , - 339 , - 618 , - 381 , - 316 , - 423 , - 14 , - 465 , - 400 , - 507 , - 98 , - 549 , - 484 , - 591 , - 182 , - 633 , - 568 , - 675 , - 266 , - 29 , - 652 , - 71 , - 350 , - 113 , - 48 , - 155 , - 434 , - 197 , - 132 , - 239 , - 518 , - 281 , - 216 , - 323 , - 602 , - 365 , - 300 , - 407 , - 686 , - 449 , - 384 , - 491 , - 82 , - 533 , - 468 , - 575 , - 166 , - 617 , - 552 , - 659 , - 250 , - 13 , - 636 , - 55 , - 334 , - 97 , - 32 , - 139 , - 418 , - 181 , - 116 , - 223 , - 502 , - 265 , - 200 , - 307 , - 586 , - 349 , - 284 , - 391 , - 670 , - 433 , - 368 , - 475 , - 66 , - 517 , - 452 , - 559 , - 150 , - 601 , - 536 , - 643 , - 234 , - 685 , - 620 , - 39 , - 318 , - 81 , - 16 , - 123 , - 402 , - 165 , - 100 , - 207 , - 486 , - 249 , - 184 , - 291 , - 570 , - 333 , - 268 , - 375 , - 654 , - 417 , - 352 , - 459 , - 50 , - 501 , - 436 , - 543 , - 134 , - 585 , - 520 , - 627 , - 218 , - 669 , - 604 , - 23 , - 302 , - 65 , - 0 , - 199 , - 486 , - 157 , - 620 , - 467 , - 402 , - 425 , - 536 , - 31 , - 318 , - 693 , - 452 , - 299 , - 234 , - 257 , - 368 , - 567 , - 150 , - 525 , - 284 , - 131 , - 66 , - 89 , - 200 , - 399 , - 686 , - 357 , - 116 , - 667 , - 602 , - 625 , - 32 , - 231 , - 518 , - 189 , - 652 , - 499 , - 434 , - 457 , - 568 , - 63 , - 350 , - 21 , - 484 , - 331 , - 266 , - 289 , - 400 , - 599 , - 182 , - 557 , - 316 , - 163 , - 98 , - 121 , - 232 , - 431 , - 14 , - 389 , - 148 , - 699 , - 634 , - 657 , - 64 , - 263 , - 550 , - 221 , - 684 , - 531 , - 466 , - 489 , - 600 , - 95 , - 382 , - 53 , - 516 , - 363 , - 298 , - 321 , - 432 , - 631 , - 214 , - 589 , - 348 , - 195 , - 130 , - 153 , - 264 , - 463 , - 46 , - 421 , - 180 , - 27 , - 666 , - 689 , - 96 , - 295 , - 582 , - 253 , - 12 , - 563 , - 498 , - 521 , - 632 , - 127 , - 414 , - 85 , - 548 , - 395 , - 330 , - 353 , - 464 , - 663 , - 246 , - 621 , - 380 , - 227 , - 162 , - 185 , - 296 , - 495 , - 78 , - 453 , - 212 , - 59 , - 698 , - 17 , - 128 , - 327 , - 614 , - 285 , - 44 , - 595 , - 530 , - 553 , - 664 , - 159 , - 446 , - 117 , - 580 , - 427 , - 362 , - 385 , - 496 , - 695 , - 278 , - 653 , - 412 , - 259 , - 194 , - 217 , - 328 , - 527 , - 110 , - 485 , - 244 , - 91 , - 26 , - 49 , - 160 , - 359 , - 646 , - 317 , - 76 , - 627 , - 562 , - 585 , - 696 , - 191 , - 478 , - 149 , - 612 , - 459 , - 394 , - 417 , - 528 , - 23 , - 310 , - 685 , - 444 , - 291 , - 226 , - 249 , - 360 , - 559 , - 142 , - 517 , - 276 , - 123 , - 58 , - 81 , - 192 , - 391 , - 678 , - 349 , - 108 , - 659 , - 594 , - 617 , - 24 , - 223 , - 510 , - 181 , - 644 , - 491 , - 426 , - 449 , - 560 , - 55 , - 342 , - 13 , - 476 , - 323 , - 258 , - 281 , - 392 , - 591 , - 174 , - 549 , - 308 , - 155 , - 90 , - 113 , - 224 , - 423 , - 6 , - 381 , - 140 , - 691 , - 626 , - 649 , - 56 , - 255 , - 542 , - 213 , - 676 , - 523 , - 458 , - 481 , - 592 , - 87 , - 374 , - 45 , - 508 , - 355 , - 290 , - 313 , - 424 , - 623 , - 206 , - 581 , - 340 , - 187 , - 122 , - 145 , - 256 , - 455 , - 38 , - 413 , - 172 , - 19 , - 658 , - 681 , - 88 , - 287 , - 574 , - 245 , - 4 , - 555 , - 490 , - 513 , - 624 , - 119 , - 406 , - 77 , - 540 , - 387 , - 322 , - 345 , - 456 , - 655 , - 238 , - 613 , - 372 , - 219 , - 154 , - 177 , - 288 , - 487 , - 70 , - 445 , - 204 , - 51 , - 690 , - 9 , - 120 , - 319 , - 606 , - 277 , - 36 , - 587 , - 522 , - 545 , - 656 , - 151 , - 438 , - 109 , - 572 , - 419 , - 354 , - 377 , - 488 , - 687 , - 270 , - 645 , - 404 , - 251 , - 186 , - 209 , - 320 , - 519 , - 102 , - 477 , - 236 , - 83 , - 18 , - 41 , - 152 , - 351 , - 638 , - 309 , - 68 , - 619 , - 554 , - 577 , - 688 , - 183 , - 470 , - 141 , - 604 , - 451 , - 386 , - 409 , - 520 , - 15 , - 302 , - 677 , - 436 , - 283 , - 218 , - 241 , - 352 , - 551 , - 134 , - 509 , - 268 , - 115 , - 50 , - 73 , - 184 , - 383 , - 670 , - 341 , - 100 , - 651 , - 586 , - 609 , - 16 , - 215 , - 502 , - 173 , - 636 , - 483 , - 418 , - 441 , - 552 , - 47 , - 334 , - 5 , - 468 , - 315 , - 250 , - 273 , - 384 , - 583 , - 166 , - 541 , - 300 , - 147 , - 82 , - 105 , - 216 , - 415 , - 702 , - 373 , - 132 , - 683 , - 618 , - 641 , - 48 , - 247 , - 534 , - 205 , - 668 , - 515 , - 450 , - 473 , - 584 , - 79 , - 366 , - 37 , - 500 , - 347 , - 282 , - 305 , - 416 , - 615 , - 198 , - 573 , - 332 , - 179 , - 114 , - 137 , - 248 , - 447 , - 30 , - 405 , - 164 , - 11 , - 650 , - 673 , - 80 , - 279 , - 566 , - 237 , - 700 , - 547 , - 482 , - 505 , - 616 , - 111 , - 398 , - 69 , - 532 , - 379 , - 314 , - 337 , - 448 , - 647 , - 230 , - 605 , - 364 , - 211 , - 146 , - 169 , - 280 , - 479 , - 62 , - 437 , - 196 , - 43 , - 682 , - 1 , - 112 , - 311 , - 598 , - 269 , - 28 , - 579 , - 514 , - 537 , - 648 , - 143 , - 430 , - 101 , - 564 , - 411 , - 346 , - 369 , - 480 , - 679 , - 262 , - 637 , - 396 , - 243 , - 178 , - 201 , - 312 , - 511 , - 94 , - 469 , - 228 , - 75 , - 10 , - 33 , - 144 , - 343 , - 630 , - 301 , - 60 , - 611 , - 546 , - 569 , - 680 , - 175 , - 462 , - 133 , - 596 , - 443 , - 378 , - 401 , - 512 , - 7 , - 294 , - 669 , - 428 , - 275 , - 210 , - 233 , - 344 , - 543 , - 126 , - 501 , - 260 , - 107 , - 42 , - 65 , - 176 , - 375 , - 662 , - 333 , - 92 , - 643 , - 578 , - 601 , - 8 , - 207 , - 494 , - 165 , - 628 , - 475 , - 410 , - 433 , - 544 , - 39 , - 326 , - 701 , - 460 , - 307 , - 242 , - 265 , - 376 , - 575 , - 158 , - 533 , - 292 , - 139 , - 74 , - 97 , - 208 , - 407 , - 694 , - 365 , - 124 , - 675 , - 610 , - 633 , - 40 , - 239 , - 526 , - 197 , - 660 , - 507 , - 442 , - 465 , - 576 , - 71 , - 358 , - 29 , - 492 , - 339 , - 274 , - 297 , - 408 , - 607 , - 190 , - 565 , - 324 , - 171 , - 106 , - 129 , - 240 , - 439 , - 22 , - 397 , - 156 , - 3 , - 642 , - 665 , - 72 , - 271 , - 558 , - 229 , - 692 , - 539 , - 474 , - 497 , - 608 , - 103 , - 390 , - 61 , - 524 , - 371 , - 306 , - 329 , - 440 , - 639 , - 222 , - 597 , - 356 , - 203 , - 138 , - 161 , - 272 , - 471 , - 54 , - 429 , - 188 , - 35 , - 674 , - 697 , - 104 , - 303 , - 590 , - 261 , - 20 , - 571 , - 506 , - 529 , - 640 , - 135 , - 422 , - 93 , - 556 , - 403 , - 338 , - 361 , - 472 , - 671 , - 254 , - 629 , - 388 , - 235 , - 170 , - 193 , - 304 , - 503 , - 86 , - 461 , - 220 , - 67 , - 2 , - 25 , - 136 , - 335 , - 622 , - 293 , - 52 , - 603 , - 538 , - 561 , - 672 , - 167 , - 454 , - 125 , - 588 , - 435 , - 370 , - 393 , - 504 , - 703 , - 286 , - 661 , - 420 , - 267 , - 202 , - 225 , - 336 , - 535 , - 118 , - 493 , - 252 , - 99 , - 34 , - 57 , - 168 , - 367 , - 654 , - 325 , - 84 , - 635 , - 570 , - 593 , - 0 , - 199 , - 638 , - 597 , - 76 , - 515 , - 474 , - 673 , - 392 , - 351 , - 550 , - 269 , - 228 , - 427 , - 146 , - 105 , - 304 , - 23 , - 702 , - 181 , - 620 , - 579 , - 58 , - 497 , - 456 , - 655 , - 374 , - 333 , - 532 , - 251 , - 210 , - 409 , - 128 , - 87 , - 286 , - 5 , - 684 , - 163 , - 602 , - 561 , - 40 , - 479 , - 438 , - 637 , - 356 , - 315 , - 514 , - 233 , - 192 , - 391 , - 110 , - 69 , - 268 , - 707 , - 666 , - 145 , - 584 , - 543 , - 22 , - 461 , - 420 , - 619 , - 338 , - 297 , - 496 , - 215 , - 174 , - 373 , - 92 , - 51 , - 250 , - 689 , - 648 , - 127 , - 566 , - 525 , - 4 , - 443 , - 402 , - 601 , - 320 , - 279 , - 478 , - 197 , - 156 , - 355 , - 74 , - 33 , - 232 , - 671 , - 630 , - 109 , - 548 , - 507 , - 706 , - 425 , - 384 , - 583 , - 302 , - 261 , - 460 , - 179 , - 138 , - 337 , - 56 , - 15 , - 214 , - 653 , - 612 , - 91 , - 530 , - 489 , - 688 , - 407 , - 366 , - 565 , - 284 , - 243 , - 442 , - 161 , - 120 , - 319 , - 38 , - 717 , - 196 , - 635 , - 594 , - 73 , - 512 , - 471 , - 670 , - 389 , - 348 , - 547 , - 266 , - 225 , - 424 , - 143 , - 102 , - 301 , - 20 , - 699 , - 178 , - 617 , - 576 , - 55 , - 494 , - 453 , - 652 , - 371 , - 330 , - 529 , - 248 , - 207 , - 406 , - 125 , - 84 , - 283 , - 2 , - 681 , - 160 , - 599 , - 558 , - 37 , - 476 , - 435 , - 634 , - 353 , - 312 , - 511 , - 230 , - 189 , - 388 , - 107 , - 66 , - 265 , - 704 , - 663 , - 142 , - 581 , - 540 , - 19 , - 458 , - 417 , - 616 , - 335 , - 294 , - 493 , - 212 , - 171 , - 370 , - 89 , - 48 , - 247 , - 686 , - 645 , - 124 , - 563 , - 522 , - 1 , - 440 , - 399 , - 598 , - 317 , - 276 , - 475 , - 194 , - 153 , - 352 , - 71 , - 30 , - 229 , - 668 , - 627 , - 106 , - 545 , - 504 , - 703 , - 422 , - 381 , - 580 , - 299 , - 258 , - 457 , - 176 , - 135 , - 334 , - 53 , - 12 , - 211 , - 650 , - 609 , - 88 , - 527 , - 486 , - 685 , - 404 , - 363 , - 562 , - 281 , - 240 , - 439 , - 158 , - 117 , - 316 , - 35 , - 714 , - 193 , - 632 , - 591 , - 70 , - 509 , - 468 , - 667 , - 386 , - 345 , - 544 , - 263 , - 222 , - 421 , - 140 , - 99 , - 298 , - 17 , - 696 , - 175 , - 614 , - 573 , - 52 , - 491 , - 450 , - 649 , - 368 , - 327 , - 526 , - 245 , - 204 , - 403 , - 122 , - 81 , - 280 , - 719 , - 678 , - 157 , - 596 , - 555 , - 34 , - 473 , - 432 , - 631 , - 350 , - 309 , - 508 , - 227 , - 186 , - 385 , - 104 , - 63 , - 262 , - 701 , - 660 , - 139 , - 578 , - 537 , - 16 , - 455 , - 414 , - 613 , - 332 , - 291 , - 490 , - 209 , - 168 , - 367 , - 86 , - 45 , - 244 , - 683 , - 642 , - 121 , - 560 , - 519 , - 718 , - 437 , - 396 , - 595 , - 314 , - 273 , - 472 , - 191 , - 150 , - 349 , - 68 , - 27 , - 226 , - 665 , - 624 , - 103 , - 542 , - 501 , - 700 , - 419 , - 378 , - 577 , - 296 , - 255 , - 454 , - 173 , - 132 , - 331 , - 50 , - 9 , - 208 , - 647 , - 606 , - 85 , - 524 , - 483 , - 682 , - 401 , - 360 , - 559 , - 278 , - 237 , - 436 , - 155 , - 114 , - 313 , - 32 , - 711 , - 190 , - 629 , - 588 , - 67 , - 506 , - 465 , - 664 , - 383 , - 342 , - 541 , - 260 , - 219 , - 418 , - 137 , - 96 , - 295 , - 14 , - 693 , - 172 , - 611 , - 570 , - 49 , - 488 , - 447 , - 646 , - 365 , - 324 , - 523 , - 242 , - 201 , - 400 , - 119 , - 78 , - 277 , - 716 , - 675 , - 154 , - 593 , - 552 , - 31 , - 470 , - 429 , - 628 , - 347 , - 306 , - 505 , - 224 , - 183 , - 382 , - 101 , - 60 , - 259 , - 698 , - 657 , - 136 , - 575 , - 534 , - 13 , - 452 , - 411 , - 610 , - 329 , - 288 , - 487 , - 206 , - 165 , - 364 , - 83 , - 42 , - 241 , - 680 , - 639 , - 118 , - 557 , - 516 , - 715 , - 434 , - 393 , - 592 , - 311 , - 270 , - 469 , - 188 , - 147 , - 346 , - 65 , - 24 , - 223 , - 662 , - 621 , - 100 , - 539 , - 498 , - 697 , - 416 , - 375 , - 574 , - 293 , - 252 , - 451 , - 170 , - 129 , - 328 , - 47 , - 6 , - 205 , - 644 , - 603 , - 82 , - 521 , - 480 , - 679 , - 398 , - 357 , - 556 , - 275 , - 234 , - 433 , - 152 , - 111 , - 310 , - 29 , - 708 , - 187 , - 626 , - 585 , - 64 , - 503 , - 462 , - 661 , - 380 , - 339 , - 538 , - 257 , - 216 , - 415 , - 134 , - 93 , - 292 , - 11 , - 690 , - 169 , - 608 , - 567 , - 46 , - 485 , - 444 , - 643 , - 362 , - 321 , - 520 , - 239 , - 198 , - 397 , - 116 , - 75 , - 274 , - 713 , - 672 , - 151 , - 590 , - 549 , - 28 , - 467 , - 426 , - 625 , - 344 , - 303 , - 502 , - 221 , - 180 , - 379 , - 98 , - 57 , - 256 , - 695 , - 654 , - 133 , - 572 , - 531 , - 10 , - 449 , - 408 , - 607 , - 326 , - 285 , - 484 , - 203 , - 162 , - 361 , - 80 , - 39 , - 238 , - 677 , - 636 , - 115 , - 554 , - 513 , - 712 , - 431 , - 390 , - 589 , - 308 , - 267 , - 466 , - 185 , - 144 , - 343 , - 62 , - 21 , - 220 , - 659 , - 618 , - 97 , - 536 , - 495 , - 694 , - 413 , - 372 , - 571 , - 290 , - 249 , - 448 , - 167 , - 126 , - 325 , - 44 , - 3 , - 202 , - 641 , - 600 , - 79 , - 518 , - 477 , - 676 , - 395 , - 354 , - 553 , - 272 , - 231 , - 430 , - 149 , - 108 , - 307 , - 26 , - 705 , - 184 , - 623 , - 582 , - 61 , - 500 , - 459 , - 658 , - 377 , - 336 , - 535 , - 254 , - 213 , - 412 , - 131 , - 90 , - 289 , - 8 , - 687 , - 166 , - 605 , - 564 , - 43 , - 482 , - 441 , - 640 , - 359 , - 318 , - 517 , - 236 , - 195 , - 394 , - 113 , - 72 , - 271 , - 710 , - 669 , - 148 , - 587 , - 546 , - 25 , - 464 , - 423 , - 622 , - 341 , - 300 , - 499 , - 218 , - 177 , - 376 , - 95 , - 54 , - 253 , - 692 , - 651 , - 130 , - 569 , - 528 , - 7 , - 446 , - 405 , - 604 , - 323 , - 282 , - 481 , - 200 , - 159 , - 358 , - 77 , - 36 , - 235 , - 674 , - 633 , - 112 , - 551 , - 510 , - 709 , - 428 , - 387 , - 586 , - 305 , - 264 , - 463 , - 182 , - 141 , - 340 , - 59 , - 18 , - 217 , - 656 , - 615 , - 94 , - 533 , - 492 , - 691 , - 410 , - 369 , - 568 , - 287 , - 246 , - 445 , - 164 , - 123 , - 322 , - 41 , - 0 , - 231 , - 646 , - 509 , - 556 , - 51 , - 466 , - 329 , - 376 , - 607 , - 286 , - 149 , - 196 , - 427 , - 106 , - 705 , - 16 , - 247 , - 662 , - 525 , - 572 , - 67 , - 482 , - 345 , - 392 , - 623 , - 302 , - 165 , - 212 , - 443 , - 122 , - 721 , - 32 , - 263 , - 678 , - 541 , - 588 , - 83 , - 498 , - 361 , - 408 , - 639 , - 318 , - 181 , - 228 , - 459 , - 138 , - 1 , - 48 , - 279 , - 694 , - 557 , - 604 , - 99 , - 514 , - 377 , - 424 , - 655 , - 334 , - 197 , - 244 , - 475 , - 154 , - 17 , - 64 , - 295 , - 710 , - 573 , - 620 , - 115 , - 530 , - 393 , - 440 , - 671 , - 350 , - 213 , - 260 , - 491 , - 170 , - 33 , - 80 , - 311 , - 726 , - 589 , - 636 , - 131 , - 546 , - 409 , - 456 , - 687 , - 366 , - 229 , - 276 , - 507 , - 186 , - 49 , - 96 , - 327 , - 6 , - 605 , - 652 , - 147 , - 562 , - 425 , - 472 , - 703 , - 382 , - 245 , - 292 , - 523 , - 202 , - 65 , - 112 , - 343 , - 22 , - 621 , - 668 , - 163 , - 578 , - 441 , - 488 , - 719 , - 398 , - 261 , - 308 , - 539 , - 218 , - 81 , - 128 , - 359 , - 38 , - 637 , - 684 , - 179 , - 594 , - 457 , - 504 , - 735 , - 414 , - 277 , - 324 , - 555 , - 234 , - 97 , - 144 , - 375 , - 54 , - 653 , - 700 , - 195 , - 610 , - 473 , - 520 , - 15 , - 430 , - 293 , - 340 , - 571 , - 250 , - 113 , - 160 , - 391 , - 70 , - 669 , - 716 , - 211 , - 626 , - 489 , - 536 , - 31 , - 446 , - 309 , - 356 , - 587 , - 266 , - 129 , - 176 , - 407 , - 86 , - 685 , - 732 , - 227 , - 642 , - 505 , - 552 , - 47 , - 462 , - 325 , - 372 , - 603 , - 282 , - 145 , - 192 , - 423 , - 102 , - 701 , - 12 , - 243 , - 658 , - 521 , - 568 , - 63 , - 478 , - 341 , - 388 , - 619 , - 298 , - 161 , - 208 , - 439 , - 118 , - 717 , - 28 , - 259 , - 674 , - 537 , - 584 , - 79 , - 494 , - 357 , - 404 , - 635 , - 314 , - 177 , - 224 , - 455 , - 134 , - 733 , - 44 , - 275 , - 690 , - 553 , - 600 , - 95 , - 510 , - 373 , - 420 , - 651 , - 330 , - 193 , - 240 , - 471 , - 150 , - 13 , - 60 , - 291 , - 706 , - 569 , - 616 , - 111 , - 526 , - 389 , - 436 , - 667 , - 346 , - 209 , - 256 , - 487 , - 166 , - 29 , - 76 , - 307 , - 722 , - 585 , - 632 , - 127 , - 542 , - 405 , - 452 , - 683 , - 362 , - 225 , - 272 , - 503 , - 182 , - 45 , - 92 , - 323 , - 2 , - 601 , - 648 , - 143 , - 558 , - 421 , - 468 , - 699 , - 378 , - 241 , - 288 , - 519 , - 198 , - 61 , - 108 , - 339 , - 18 , - 617 , - 664 , - 159 , - 574 , - 437 , - 484 , - 715 , - 394 , - 257 , - 304 , - 535 , - 214 , - 77 , - 124 , - 355 , - 34 , - 633 , - 680 , - 175 , - 590 , - 453 , - 500 , - 731 , - 410 , - 273 , - 320 , - 551 , - 230 , - 93 , - 140 , - 371 , - 50 , - 649 , - 696 , - 191 , - 606 , - 469 , - 516 , - 11 , - 426 , - 289 , - 336 , - 567 , - 246 , - 109 , - 156 , - 387 , - 66 , - 665 , - 712 , - 207 , - 622 , - 485 , - 532 , - 27 , - 442 , - 305 , - 352 , - 583 , - 262 , - 125 , - 172 , - 403 , - 82 , - 681 , - 728 , - 223 , - 638 , - 501 , - 548 , - 43 , - 458 , - 321 , - 368 , - 599 , - 278 , - 141 , - 188 , - 419 , - 98 , - 697 , - 8 , - 239 , - 654 , - 517 , - 564 , - 59 , - 474 , - 337 , - 384 , - 615 , - 294 , - 157 , - 204 , - 435 , - 114 , - 713 , - 24 , - 255 , - 670 , - 533 , - 580 , - 75 , - 490 , - 353 , - 400 , - 631 , - 310 , - 173 , - 220 , - 451 , - 130 , - 729 , - 40 , - 271 , - 686 , - 549 , - 596 , - 91 , - 506 , - 369 , - 416 , - 647 , - 326 , - 189 , - 236 , - 467 , - 146 , - 9 , - 56 , - 287 , - 702 , - 565 , - 612 , - 107 , - 522 , - 385 , - 432 , - 663 , - 342 , - 205 , - 252 , - 483 , - 162 , - 25 , - 72 , - 303 , - 718 , - 581 , - 628 , - 123 , - 538 , - 401 , - 448 , - 679 , - 358 , - 221 , - 268 , - 499 , - 178 , - 41 , - 88 , - 319 , - 734 , - 597 , - 644 , - 139 , - 554 , - 417 , - 464 , - 695 , - 374 , - 237 , - 284 , - 515 , - 194 , - 57 , - 104 , - 335 , - 14 , - 613 , - 660 , - 155 , - 570 , - 433 , - 480 , - 711 , - 390 , - 253 , - 300 , - 531 , - 210 , - 73 , - 120 , - 351 , - 30 , - 629 , - 676 , - 171 , - 586 , - 449 , - 496 , - 727 , - 406 , - 269 , - 316 , - 547 , - 226 , - 89 , - 136 , - 367 , - 46 , - 645 , - 692 , - 187 , - 602 , - 465 , - 512 , - 7 , - 422 , - 285 , - 332 , - 563 , - 242 , - 105 , - 152 , - 383 , - 62 , - 661 , - 708 , - 203 , - 618 , - 481 , - 528 , - 23 , - 438 , - 301 , - 348 , - 579 , - 258 , - 121 , - 168 , - 399 , - 78 , - 677 , - 724 , - 219 , - 634 , - 497 , - 544 , - 39 , - 454 , - 317 , - 364 , - 595 , - 274 , - 137 , - 184 , - 415 , - 94 , - 693 , - 4 , - 235 , - 650 , - 513 , - 560 , - 55 , - 470 , - 333 , - 380 , - 611 , - 290 , - 153 , - 200 , - 431 , - 110 , - 709 , - 20 , - 251 , - 666 , - 529 , - 576 , - 71 , - 486 , - 349 , - 396 , - 627 , - 306 , - 169 , - 216 , - 447 , - 126 , - 725 , - 36 , - 267 , - 682 , - 545 , - 592 , - 87 , - 502 , - 365 , - 412 , - 643 , - 322 , - 185 , - 232 , - 463 , - 142 , - 5 , - 52 , - 283 , - 698 , - 561 , - 608 , - 103 , - 518 , - 381 , - 428 , - 659 , - 338 , - 201 , - 248 , - 479 , - 158 , - 21 , - 68 , - 299 , - 714 , - 577 , - 624 , - 119 , - 534 , - 397 , - 444 , - 675 , - 354 , - 217 , - 264 , - 495 , - 174 , - 37 , - 84 , - 315 , - 730 , - 593 , - 640 , - 135 , - 550 , - 413 , - 460 , - 691 , - 370 , - 233 , - 280 , - 511 , - 190 , - 53 , - 100 , - 331 , - 10 , - 609 , - 656 , - 151 , - 566 , - 429 , - 476 , - 707 , - 386 , - 249 , - 296 , - 527 , - 206 , - 69 , - 116 , - 347 , - 26 , - 625 , - 672 , - 167 , - 582 , - 445 , - 492 , - 723 , - 402 , - 265 , - 312 , - 543 , - 222 , - 85 , - 132 , - 363 , - 42 , - 641 , - 688 , - 183 , - 598 , - 461 , - 508 , - 3 , - 418 , - 281 , - 328 , - 559 , - 238 , - 101 , - 148 , - 379 , - 58 , - 657 , - 704 , - 199 , - 614 , - 477 , - 524 , - 19 , - 434 , - 297 , - 344 , - 575 , - 254 , - 117 , - 164 , - 395 , - 74 , - 673 , - 720 , - 215 , - 630 , - 493 , - 540 , - 35 , - 450 , - 313 , - 360 , - 591 , - 270 , - 133 , - 180 , - 411 , - 90 , - 689 , - 0 , - 117 , - 422 , - 163 , - 92 , - 209 , - 514 , - 255 , - 184 , - 301 , - 606 , - 347 , - 276 , - 393 , - 698 , - 439 , - 368 , - 485 , - 38 , - 531 , - 460 , - 577 , - 130 , - 623 , - 552 , - 669 , - 222 , - 715 , - 644 , - 9 , - 314 , - 55 , - 736 , - 101 , - 406 , - 147 , - 76 , - 193 , - 498 , - 239 , - 168 , - 285 , - 590 , - 331 , - 260 , - 377 , - 682 , - 423 , - 352 , - 469 , - 22 , - 515 , - 444 , - 561 , - 114 , - 607 , - 536 , - 653 , - 206 , - 699 , - 628 , - 745 , - 298 , - 39 , - 720 , - 85 , - 390 , - 131 , - 60 , - 177 , - 482 , - 223 , - 152 , - 269 , - 574 , - 315 , - 244 , - 361 , - 666 , - 407 , - 336 , - 453 , - 6 , - 499 , - 428 , - 545 , - 98 , - 591 , - 520 , - 637 , - 190 , - 683 , - 612 , - 729 , - 282 , - 23 , - 704 , - 69 , - 374 , - 115 , - 44 , - 161 , - 466 , - 207 , - 136 , - 253 , - 558 , - 299 , - 228 , - 345 , - 650 , - 391 , - 320 , - 437 , - 742 , - 483 , - 412 , - 529 , - 82 , - 575 , - 504 , - 621 , - 174 , - 667 , - 596 , - 713 , - 266 , - 7 , - 688 , - 53 , - 358 , - 99 , - 28 , - 145 , - 450 , - 191 , - 120 , - 237 , - 542 , - 283 , - 212 , - 329 , - 634 , - 375 , - 304 , - 421 , - 726 , - 467 , - 396 , - 513 , - 66 , - 559 , - 488 , - 605 , - 158 , - 651 , - 580 , - 697 , - 250 , - 743 , - 672 , - 37 , - 342 , - 83 , - 12 , - 129 , - 434 , - 175 , - 104 , - 221 , - 526 , - 267 , - 196 , - 313 , - 618 , - 359 , - 288 , - 405 , - 710 , - 451 , - 380 , - 497 , - 50 , - 543 , - 472 , - 589 , - 142 , - 635 , - 564 , - 681 , - 234 , - 727 , - 656 , - 21 , - 326 , - 67 , - 748 , - 113 , - 418 , - 159 , - 88 , - 205 , - 510 , - 251 , - 180 , - 297 , - 602 , - 343 , - 272 , - 389 , - 694 , - 435 , - 364 , - 481 , - 34 , - 527 , - 456 , - 573 , - 126 , - 619 , - 548 , - 665 , - 218 , - 711 , - 640 , - 5 , - 310 , - 51 , - 732 , - 97 , - 402 , - 143 , - 72 , - 189 , - 494 , - 235 , - 164 , - 281 , - 586 , - 327 , - 256 , - 373 , - 678 , - 419 , - 348 , - 465 , - 18 , - 511 , - 440 , - 557 , - 110 , - 603 , - 532 , - 649 , - 202 , - 695 , - 624 , - 741 , - 294 , - 35 , - 716 , - 81 , - 386 , - 127 , - 56 , - 173 , - 478 , - 219 , - 148 , - 265 , - 570 , - 311 , - 240 , - 357 , - 662 , - 403 , - 332 , - 449 , - 2 , - 495 , - 424 , - 541 , - 94 , - 587 , - 516 , - 633 , - 186 , - 679 , - 608 , - 725 , - 278 , - 19 , - 700 , - 65 , - 370 , - 111 , - 40 , - 157 , - 462 , - 203 , - 132 , - 249 , - 554 , - 295 , - 224 , - 341 , - 646 , - 387 , - 316 , - 433 , - 738 , - 479 , - 408 , - 525 , - 78 , - 571 , - 500 , - 617 , - 170 , - 663 , - 592 , - 709 , - 262 , - 3 , - 684 , - 49 , - 354 , - 95 , - 24 , - 141 , - 446 , - 187 , - 116 , - 233 , - 538 , - 279 , - 208 , - 325 , - 630 , - 371 , - 300 , - 417 , - 722 , - 463 , - 392 , - 509 , - 62 , - 555 , - 484 , - 601 , - 154 , - 647 , - 576 , - 693 , - 246 , - 739 , - 668 , - 33 , - 338 , - 79 , - 8 , - 125 , - 430 , - 171 , - 100 , - 217 , - 522 , - 263 , - 192 , - 309 , - 614 , - 355 , - 284 , - 401 , - 706 , - 447 , - 376 , - 493 , - 46 , - 539 , - 468 , - 585 , - 138 , - 631 , - 560 , - 677 , - 230 , - 723 , - 652 , - 17 , - 322 , - 63 , - 744 , - 109 , - 414 , - 155 , - 84 , - 201 , - 506 , - 247 , - 176 , - 293 , - 598 , - 339 , - 268 , - 385 , - 690 , - 431 , - 360 , - 477 , - 30 , - 523 , - 452 , - 569 , - 122 , - 615 , - 544 , - 661 , - 214 , - 707 , - 636 , - 1 , - 306 , - 47 , - 728 , - 93 , - 398 , - 139 , - 68 , - 185 , - 490 , - 231 , - 160 , - 277 , - 582 , - 323 , - 252 , - 369 , - 674 , - 415 , - 344 , - 461 , - 14 , - 507 , - 436 , - 553 , - 106 , - 599 , - 528 , - 645 , - 198 , - 691 , - 620 , - 737 , - 290 , - 31 , - 712 , - 77 , - 382 , - 123 , - 52 , - 169 , - 474 , - 215 , - 144 , - 261 , - 566 , - 307 , - 236 , - 353 , - 658 , - 399 , - 328 , - 445 , - 750 , - 491 , - 420 , - 537 , - 90 , - 583 , - 512 , - 629 , - 182 , - 675 , - 604 , - 721 , - 274 , - 15 , - 696 , - 61 , - 366 , - 107 , - 36 , - 153 , - 458 , - 199 , - 128 , - 245 , - 550 , - 291 , - 220 , - 337 , - 642 , - 383 , - 312 , - 429 , - 734 , - 475 , - 404 , - 521 , - 74 , - 567 , - 496 , - 613 , - 166 , - 659 , - 588 , - 705 , - 258 , - 751 , - 680 , - 45 , - 350 , - 91 , - 20 , - 137 , - 442 , - 183 , - 112 , - 229 , - 534 , - 275 , - 204 , - 321 , - 626 , - 367 , - 296 , - 413 , - 718 , - 459 , - 388 , - 505 , - 58 , - 551 , - 480 , - 597 , - 150 , - 643 , - 572 , - 689 , - 242 , - 735 , - 664 , - 29 , - 334 , - 75 , - 4 , - 121 , - 426 , - 167 , - 96 , - 213 , - 518 , - 259 , - 188 , - 305 , - 610 , - 351 , - 280 , - 397 , - 702 , - 443 , - 372 , - 489 , - 42 , - 535 , - 464 , - 581 , - 134 , - 627 , - 556 , - 673 , - 226 , - 719 , - 648 , - 13 , - 318 , - 59 , - 740 , - 105 , - 410 , - 151 , - 80 , - 197 , - 502 , - 243 , - 172 , - 289 , - 594 , - 335 , - 264 , - 381 , - 686 , - 427 , - 356 , - 473 , - 26 , - 519 , - 448 , - 565 , - 118 , - 611 , - 540 , - 657 , - 210 , - 703 , - 632 , - 749 , - 302 , - 43 , - 724 , - 89 , - 394 , - 135 , - 64 , - 181 , - 486 , - 227 , - 156 , - 273 , - 578 , - 319 , - 248 , - 365 , - 670 , - 411 , - 340 , - 457 , - 10 , - 503 , - 432 , - 549 , - 102 , - 595 , - 524 , - 641 , - 194 , - 687 , - 616 , - 733 , - 286 , - 27 , - 708 , - 73 , - 378 , - 119 , - 48 , - 165 , - 470 , - 211 , - 140 , - 257 , - 562 , - 303 , - 232 , - 349 , - 654 , - 395 , - 324 , - 441 , - 746 , - 487 , - 416 , - 533 , - 86 , - 579 , - 508 , - 625 , - 178 , - 671 , - 600 , - 717 , - 270 , - 11 , - 692 , - 57 , - 362 , - 103 , - 32 , - 149 , - 454 , - 195 , - 124 , - 241 , - 546 , - 287 , - 216 , - 333 , - 638 , - 379 , - 308 , - 425 , - 730 , - 471 , - 400 , - 517 , - 70 , - 563 , - 492 , - 609 , - 162 , - 655 , - 584 , - 701 , - 254 , - 747 , - 676 , - 41 , - 346 , - 87 , - 16 , - 133 , - 438 , - 179 , - 108 , - 225 , - 530 , - 271 , - 200 , - 317 , - 622 , - 363 , - 292 , - 409 , - 714 , - 455 , - 384 , - 501 , - 54 , - 547 , - 476 , - 593 , - 146 , - 639 , - 568 , - 685 , - 238 , - 731 , - 660 , - 25 , - 330 , - 71 , - 0 , - 265 , - 626 , - 315 , - 100 , - 749 , - 726 , - 31 , - 200 , - 465 , - 58 , - 515 , - 300 , - 181 , - 158 , - 231 , - 400 , - 665 , - 258 , - 715 , - 500 , - 381 , - 358 , - 431 , - 600 , - 97 , - 458 , - 147 , - 700 , - 581 , - 558 , - 631 , - 32 , - 297 , - 658 , - 347 , - 132 , - 13 , - 758 , - 63 , - 232 , - 497 , - 90 , - 547 , - 332 , - 213 , - 190 , - 263 , - 432 , - 697 , - 290 , - 747 , - 532 , - 413 , - 390 , - 463 , - 632 , - 129 , - 490 , - 179 , - 732 , - 613 , - 590 , - 663 , - 64 , - 329 , - 690 , - 379 , - 164 , - 45 , - 22 , - 95 , - 264 , - 529 , - 122 , - 579 , - 364 , - 245 , - 222 , - 295 , - 464 , - 729 , - 322 , - 11 , - 564 , - 445 , - 422 , - 495 , - 664 , - 161 , - 522 , - 211 , - 764 , - 645 , - 622 , - 695 , - 96 , - 361 , - 722 , - 411 , - 196 , - 77 , - 54 , - 127 , - 296 , - 561 , - 154 , - 611 , - 396 , - 277 , - 254 , - 327 , - 496 , - 761 , - 354 , - 43 , - 596 , - 477 , - 454 , - 527 , - 696 , - 193 , - 554 , - 243 , - 28 , - 677 , - 654 , - 727 , - 128 , - 393 , - 754 , - 443 , - 228 , - 109 , - 86 , - 159 , - 328 , - 593 , - 186 , - 643 , - 428 , - 309 , - 286 , - 359 , - 528 , - 25 , - 386 , - 75 , - 628 , - 509 , - 486 , - 559 , - 728 , - 225 , - 586 , - 275 , - 60 , - 709 , - 686 , - 759 , - 160 , - 425 , - 18 , - 475 , - 260 , - 141 , - 118 , - 191 , - 360 , - 625 , - 218 , - 675 , - 460 , - 341 , - 318 , - 391 , - 560 , - 57 , - 418 , - 107 , - 660 , - 541 , - 518 , - 591 , - 760 , - 257 , - 618 , - 307 , - 92 , - 741 , - 718 , - 23 , - 192 , - 457 , - 50 , - 507 , - 292 , - 173 , - 150 , - 223 , - 392 , - 657 , - 250 , - 707 , - 492 , - 373 , - 350 , - 423 , - 592 , - 89 , - 450 , - 139 , - 692 , - 573 , - 550 , - 623 , - 24 , - 289 , - 650 , - 339 , - 124 , - 5 , - 750 , - 55 , - 224 , - 489 , - 82 , - 539 , - 324 , - 205 , - 182 , - 255 , - 424 , - 689 , - 282 , - 739 , - 524 , - 405 , - 382 , - 455 , - 624 , - 121 , - 482 , - 171 , - 724 , - 605 , - 582 , - 655 , - 56 , - 321 , - 682 , - 371 , - 156 , - 37 , - 14 , - 87 , - 256 , - 521 , - 114 , - 571 , - 356 , - 237 , - 214 , - 287 , - 456 , - 721 , - 314 , - 3 , - 556 , - 437 , - 414 , - 487 , - 656 , - 153 , - 514 , - 203 , - 756 , - 637 , - 614 , - 687 , - 88 , - 353 , - 714 , - 403 , - 188 , - 69 , - 46 , - 119 , - 288 , - 553 , - 146 , - 603 , - 388 , - 269 , - 246 , - 319 , - 488 , - 753 , - 346 , - 35 , - 588 , - 469 , - 446 , - 519 , - 688 , - 185 , - 546 , - 235 , - 20 , - 669 , - 646 , - 719 , - 120 , - 385 , - 746 , - 435 , - 220 , - 101 , - 78 , - 151 , - 320 , - 585 , - 178 , - 635 , - 420 , - 301 , - 278 , - 351 , - 520 , - 17 , - 378 , - 67 , - 620 , - 501 , - 478 , - 551 , - 720 , - 217 , - 578 , - 267 , - 52 , - 701 , - 678 , - 751 , - 152 , - 417 , - 10 , - 467 , - 252 , - 133 , - 110 , - 183 , - 352 , - 617 , - 210 , - 667 , - 452 , - 333 , - 310 , - 383 , - 552 , - 49 , - 410 , - 99 , - 652 , - 533 , - 510 , - 583 , - 752 , - 249 , - 610 , - 299 , - 84 , - 733 , - 710 , - 15 , - 184 , - 449 , - 42 , - 499 , - 284 , - 165 , - 142 , - 215 , - 384 , - 649 , - 242 , - 699 , - 484 , - 365 , - 342 , - 415 , - 584 , - 81 , - 442 , - 131 , - 684 , - 565 , - 542 , - 615 , - 16 , - 281 , - 642 , - 331 , - 116 , - 765 , - 742 , - 47 , - 216 , - 481 , - 74 , - 531 , - 316 , - 197 , - 174 , - 247 , - 416 , - 681 , - 274 , - 731 , - 516 , - 397 , - 374 , - 447 , - 616 , - 113 , - 474 , - 163 , - 716 , - 597 , - 574 , - 647 , - 48 , - 313 , - 674 , - 363 , - 148 , - 29 , - 6 , - 79 , - 248 , - 513 , - 106 , - 563 , - 348 , - 229 , - 206 , - 279 , - 448 , - 713 , - 306 , - 763 , - 548 , - 429 , - 406 , - 479 , - 648 , - 145 , - 506 , - 195 , - 748 , - 629 , - 606 , - 679 , - 80 , - 345 , - 706 , - 395 , - 180 , - 61 , - 38 , - 111 , - 280 , - 545 , - 138 , - 595 , - 380 , - 261 , - 238 , - 311 , - 480 , - 745 , - 338 , - 27 , - 580 , - 461 , - 438 , - 511 , - 680 , - 177 , - 538 , - 227 , - 12 , - 661 , - 638 , - 711 , - 112 , - 377 , - 738 , - 427 , - 212 , - 93 , - 70 , - 143 , - 312 , - 577 , - 170 , - 627 , - 412 , - 293 , - 270 , - 343 , - 512 , - 9 , - 370 , - 59 , - 612 , - 493 , - 470 , - 543 , - 712 , - 209 , - 570 , - 259 , - 44 , - 693 , - 670 , - 743 , - 144 , - 409 , - 2 , - 459 , - 244 , - 125 , - 102 , - 175 , - 344 , - 609 , - 202 , - 659 , - 444 , - 325 , - 302 , - 375 , - 544 , - 41 , - 402 , - 91 , - 644 , - 525 , - 502 , - 575 , - 744 , - 241 , - 602 , - 291 , - 76 , - 725 , - 702 , - 7 , - 176 , - 441 , - 34 , - 491 , - 276 , - 157 , - 134 , - 207 , - 376 , - 641 , - 234 , - 691 , - 476 , - 357 , - 334 , - 407 , - 576 , - 73 , - 434 , - 123 , - 676 , - 557 , - 534 , - 607 , - 8 , - 273 , - 634 , - 323 , - 108 , - 757 , - 734 , - 39 , - 208 , - 473 , - 66 , - 523 , - 308 , - 189 , - 166 , - 239 , - 408 , - 673 , - 266 , - 723 , - 508 , - 389 , - 366 , - 439 , - 608 , - 105 , - 466 , - 155 , - 708 , - 589 , - 566 , - 639 , - 40 , - 305 , - 666 , - 355 , - 140 , - 21 , - 766 , - 71 , - 240 , - 505 , - 98 , - 555 , - 340 , - 221 , - 198 , - 271 , - 440 , - 705 , - 298 , - 755 , - 540 , - 421 , - 398 , - 471 , - 640 , - 137 , - 498 , - 187 , - 740 , - 621 , - 598 , - 671 , - 72 , - 337 , - 698 , - 387 , - 172 , - 53 , - 30 , - 103 , - 272 , - 537 , - 130 , - 587 , - 372 , - 253 , - 230 , - 303 , - 472 , - 737 , - 330 , - 19 , - 572 , - 453 , - 430 , - 503 , - 672 , - 169 , - 530 , - 219 , - 4 , - 653 , - 630 , - 703 , - 104 , - 369 , - 730 , - 419 , - 204 , - 85 , - 62 , - 135 , - 304 , - 569 , - 162 , - 619 , - 404 , - 285 , - 262 , - 335 , - 504 , - 1 , - 362 , - 51 , - 604 , - 485 , - 462 , - 535 , - 704 , - 201 , - 562 , - 251 , - 36 , - 685 , - 662 , - 735 , - 136 , - 401 , - 762 , - 451 , - 236 , - 117 , - 94 , - 167 , - 336 , - 601 , - 194 , - 651 , - 436 , - 317 , - 294 , - 367 , - 536 , - 33 , - 394 , - 83 , - 636 , - 517 , - 494 , - 567 , - 736 , - 233 , - 594 , - 283 , - 68 , - 717 , - 694 , - 767 , - 168 , - 433 , - 26 , - 483 , - 268 , - 149 , - 126 , - 199 , - 368 , - 633 , - 226 , - 683 , - 468 , - 349 , - 326 , - 399 , - 568 , - 65 , - 426 , - 115 , - 668 , - 549 , - 526 , - 599 , - 0 , - 123 , - 442 , - 173 , - 100 , - 223 , - 542 , - 273 , - 200 , - 323 , - 642 , - 373 , - 300 , - 423 , - 742 , - 473 , - 400 , - 523 , - 58 , - 573 , - 500 , - 623 , - 158 , - 673 , - 600 , - 723 , - 258 , - 773 , - 700 , - 39 , - 358 , - 89 , - 16 , - 139 , - 458 , - 189 , - 116 , - 239 , - 558 , - 289 , - 216 , - 339 , - 658 , - 389 , - 316 , - 439 , - 758 , - 489 , - 416 , - 539 , - 74 , - 589 , - 516 , - 639 , - 174 , - 689 , - 616 , - 739 , - 274 , - 5 , - 716 , - 55 , - 374 , - 105 , - 32 , - 155 , - 474 , - 205 , - 132 , - 255 , - 574 , - 305 , - 232 , - 355 , - 674 , - 405 , - 332 , - 455 , - 774 , - 505 , - 432 , - 555 , - 90 , - 605 , - 532 , - 655 , - 190 , - 705 , - 632 , - 755 , - 290 , - 21 , - 732 , - 71 , - 390 , - 121 , - 48 , - 171 , - 490 , - 221 , - 148 , - 271 , - 590 , - 321 , - 248 , - 371 , - 690 , - 421 , - 348 , - 471 , - 6 , - 521 , - 448 , - 571 , - 106 , - 621 , - 548 , - 671 , - 206 , - 721 , - 648 , - 771 , - 306 , - 37 , - 748 , - 87 , - 406 , - 137 , - 64 , - 187 , - 506 , - 237 , - 164 , - 287 , - 606 , - 337 , - 264 , - 387 , - 706 , - 437 , - 364 , - 487 , - 22 , - 537 , - 464 , - 587 , - 122 , - 637 , - 564 , - 687 , - 222 , - 737 , - 664 , - 3 , - 322 , - 53 , - 764 , - 103 , - 422 , - 153 , - 80 , - 203 , - 522 , - 253 , - 180 , - 303 , - 622 , - 353 , - 280 , - 403 , - 722 , - 453 , - 380 , - 503 , - 38 , - 553 , - 480 , - 603 , - 138 , - 653 , - 580 , - 703 , - 238 , - 753 , - 680 , - 19 , - 338 , - 69 , - 780 , - 119 , - 438 , - 169 , - 96 , - 219 , - 538 , - 269 , - 196 , - 319 , - 638 , - 369 , - 296 , - 419 , - 738 , - 469 , - 396 , - 519 , - 54 , - 569 , - 496 , - 619 , - 154 , - 669 , - 596 , - 719 , - 254 , - 769 , - 696 , - 35 , - 354 , - 85 , - 12 , - 135 , - 454 , - 185 , - 112 , - 235 , - 554 , - 285 , - 212 , - 335 , - 654 , - 385 , - 312 , - 435 , - 754 , - 485 , - 412 , - 535 , - 70 , - 585 , - 512 , - 635 , - 170 , - 685 , - 612 , - 735 , - 270 , - 1 , - 712 , - 51 , - 370 , - 101 , - 28 , - 151 , - 470 , - 201 , - 128 , - 251 , - 570 , - 301 , - 228 , - 351 , - 670 , - 401 , - 328 , - 451 , - 770 , - 501 , - 428 , - 551 , - 86 , - 601 , - 528 , - 651 , - 186 , - 701 , - 628 , - 751 , - 286 , - 17 , - 728 , - 67 , - 386 , - 117 , - 44 , - 167 , - 486 , - 217 , - 144 , - 267 , - 586 , - 317 , - 244 , - 367 , - 686 , - 417 , - 344 , - 467 , - 2 , - 517 , - 444 , - 567 , - 102 , - 617 , - 544 , - 667 , - 202 , - 717 , - 644 , - 767 , - 302 , - 33 , - 744 , - 83 , - 402 , - 133 , - 60 , - 183 , - 502 , - 233 , - 160 , - 283 , - 602 , - 333 , - 260 , - 383 , - 702 , - 433 , - 360 , - 483 , - 18 , - 533 , - 460 , - 583 , - 118 , - 633 , - 560 , - 683 , - 218 , - 733 , - 660 , - 783 , - 318 , - 49 , - 760 , - 99 , - 418 , - 149 , - 76 , - 199 , - 518 , - 249 , - 176 , - 299 , - 618 , - 349 , - 276 , - 399 , - 718 , - 449 , - 376 , - 499 , - 34 , - 549 , - 476 , - 599 , - 134 , - 649 , - 576 , - 699 , - 234 , - 749 , - 676 , - 15 , - 334 , - 65 , - 776 , - 115 , - 434 , - 165 , - 92 , - 215 , - 534 , - 265 , - 192 , - 315 , - 634 , - 365 , - 292 , - 415 , - 734 , - 465 , - 392 , - 515 , - 50 , - 565 , - 492 , - 615 , - 150 , - 665 , - 592 , - 715 , - 250 , - 765 , - 692 , - 31 , - 350 , - 81 , - 8 , - 131 , - 450 , - 181 , - 108 , - 231 , - 550 , - 281 , - 208 , - 331 , - 650 , - 381 , - 308 , - 431 , - 750 , - 481 , - 408 , - 531 , - 66 , - 581 , - 508 , - 631 , - 166 , - 681 , - 608 , - 731 , - 266 , - 781 , - 708 , - 47 , - 366 , - 97 , - 24 , - 147 , - 466 , - 197 , - 124 , - 247 , - 566 , - 297 , - 224 , - 347 , - 666 , - 397 , - 324 , - 447 , - 766 , - 497 , - 424 , - 547 , - 82 , - 597 , - 524 , - 647 , - 182 , - 697 , - 624 , - 747 , - 282 , - 13 , - 724 , - 63 , - 382 , - 113 , - 40 , - 163 , - 482 , - 213 , - 140 , - 263 , - 582 , - 313 , - 240 , - 363 , - 682 , - 413 , - 340 , - 463 , - 782 , - 513 , - 440 , - 563 , - 98 , - 613 , - 540 , - 663 , - 198 , - 713 , - 640 , - 763 , - 298 , - 29 , - 740 , - 79 , - 398 , - 129 , - 56 , - 179 , - 498 , - 229 , - 156 , - 279 , - 598 , - 329 , - 256 , - 379 , - 698 , - 429 , - 356 , - 479 , - 14 , - 529 , - 456 , - 579 , - 114 , - 629 , - 556 , - 679 , - 214 , - 729 , - 656 , - 779 , - 314 , - 45 , - 756 , - 95 , - 414 , - 145 , - 72 , - 195 , - 514 , - 245 , - 172 , - 295 , - 614 , - 345 , - 272 , - 395 , - 714 , - 445 , - 372 , - 495 , - 30 , - 545 , - 472 , - 595 , - 130 , - 645 , - 572 , - 695 , - 230 , - 745 , - 672 , - 11 , - 330 , - 61 , - 772 , - 111 , - 430 , - 161 , - 88 , - 211 , - 530 , - 261 , - 188 , - 311 , - 630 , - 361 , - 288 , - 411 , - 730 , - 461 , - 388 , - 511 , - 46 , - 561 , - 488 , - 611 , - 146 , - 661 , - 588 , - 711 , - 246 , - 761 , - 688 , - 27 , - 346 , - 77 , - 4 , - 127 , - 446 , - 177 , - 104 , - 227 , - 546 , - 277 , - 204 , - 327 , - 646 , - 377 , - 304 , - 427 , - 746 , - 477 , - 404 , - 527 , - 62 , - 577 , - 504 , - 627 , - 162 , - 677 , - 604 , - 727 , - 262 , - 777 , - 704 , - 43 , - 362 , - 93 , - 20 , - 143 , - 462 , - 193 , - 120 , - 243 , - 562 , - 293 , - 220 , - 343 , - 662 , - 393 , - 320 , - 443 , - 762 , - 493 , - 420 , - 543 , - 78 , - 593 , - 520 , - 643 , - 178 , - 693 , - 620 , - 743 , - 278 , - 9 , - 720 , - 59 , - 378 , - 109 , - 36 , - 159 , - 478 , - 209 , - 136 , - 259 , - 578 , - 309 , - 236 , - 359 , - 678 , - 409 , - 336 , - 459 , - 778 , - 509 , - 436 , - 559 , - 94 , - 609 , - 536 , - 659 , - 194 , - 709 , - 636 , - 759 , - 294 , - 25 , - 736 , - 75 , - 394 , - 125 , - 52 , - 175 , - 494 , - 225 , - 152 , - 275 , - 594 , - 325 , - 252 , - 375 , - 694 , - 425 , - 352 , - 475 , - 10 , - 525 , - 452 , - 575 , - 110 , - 625 , - 552 , - 675 , - 210 , - 725 , - 652 , - 775 , - 310 , - 41 , - 752 , - 91 , - 410 , - 141 , - 68 , - 191 , - 510 , - 241 , - 168 , - 291 , - 610 , - 341 , - 268 , - 391 , - 710 , - 441 , - 368 , - 491 , - 26 , - 541 , - 468 , - 591 , - 126 , - 641 , - 568 , - 691 , - 226 , - 741 , - 668 , - 7 , - 326 , - 57 , - 768 , - 107 , - 426 , - 157 , - 84 , - 207 , - 526 , - 257 , - 184 , - 307 , - 626 , - 357 , - 284 , - 407 , - 726 , - 457 , - 384 , - 507 , - 42 , - 557 , - 484 , - 607 , - 142 , - 657 , - 584 , - 707 , - 242 , - 757 , - 684 , - 23 , - 342 , - 73 , - 0 , - 97 , - 354 , - 771 , - 548 , - 485 , - 582 , - 39 , - 456 , - 233 , - 170 , - 267 , - 524 , - 141 , - 718 , - 655 , - 752 , - 209 , - 626 , - 403 , - 340 , - 437 , - 694 , - 311 , - 88 , - 25 , - 122 , - 379 , - 796 , - 573 , - 510 , - 607 , - 64 , - 481 , - 258 , - 195 , - 292 , - 549 , - 166 , - 743 , - 680 , - 777 , - 234 , - 651 , - 428 , - 365 , - 462 , - 719 , - 336 , - 113 , - 50 , - 147 , - 404 , - 21 , - 598 , - 535 , - 632 , - 89 , - 506 , - 283 , - 220 , - 317 , - 574 , - 191 , - 768 , - 705 , - 2 , - 259 , - 676 , - 453 , - 390 , - 487 , - 744 , - 361 , - 138 , - 75 , - 172 , - 429 , - 46 , - 623 , - 560 , - 657 , - 114 , - 531 , - 308 , - 245 , - 342 , - 599 , - 216 , - 793 , - 730 , - 27 , - 284 , - 701 , - 478 , - 415 , - 512 , - 769 , - 386 , - 163 , - 100 , - 197 , - 454 , - 71 , - 648 , - 585 , - 682 , - 139 , - 556 , - 333 , - 270 , - 367 , - 624 , - 241 , - 18 , - 755 , - 52 , - 309 , - 726 , - 503 , - 440 , - 537 , - 794 , - 411 , - 188 , - 125 , - 222 , - 479 , - 96 , - 673 , - 610 , - 707 , - 164 , - 581 , - 358 , - 295 , - 392 , - 649 , - 266 , - 43 , - 780 , - 77 , - 334 , - 751 , - 528 , - 465 , - 562 , - 19 , - 436 , - 213 , - 150 , - 247 , - 504 , - 121 , - 698 , - 635 , - 732 , - 189 , - 606 , - 383 , - 320 , - 417 , - 674 , - 291 , - 68 , - 5 , - 102 , - 359 , - 776 , - 553 , - 490 , - 587 , - 44 , - 461 , - 238 , - 175 , - 272 , - 529 , - 146 , - 723 , - 660 , - 757 , - 214 , - 631 , - 408 , - 345 , - 442 , - 699 , - 316 , - 93 , - 30 , - 127 , - 384 , - 1 , - 578 , - 515 , - 612 , - 69 , - 486 , - 263 , - 200 , - 297 , - 554 , - 171 , - 748 , - 685 , - 782 , - 239 , - 656 , - 433 , - 370 , - 467 , - 724 , - 341 , - 118 , - 55 , - 152 , - 409 , - 26 , - 603 , - 540 , - 637 , - 94 , - 511 , - 288 , - 225 , - 322 , - 579 , - 196 , - 773 , - 710 , - 7 , - 264 , - 681 , - 458 , - 395 , - 492 , - 749 , - 366 , - 143 , - 80 , - 177 , - 434 , - 51 , - 628 , - 565 , - 662 , - 119 , - 536 , - 313 , - 250 , - 347 , - 604 , - 221 , - 798 , - 735 , - 32 , - 289 , - 706 , - 483 , - 420 , - 517 , - 774 , - 391 , - 168 , - 105 , - 202 , - 459 , - 76 , - 653 , - 590 , - 687 , - 144 , - 561 , - 338 , - 275 , - 372 , - 629 , - 246 , - 23 , - 760 , - 57 , - 314 , - 731 , - 508 , - 445 , - 542 , - 799 , - 416 , - 193 , - 130 , - 227 , - 484 , - 101 , - 678 , - 615 , - 712 , - 169 , - 586 , - 363 , - 300 , - 397 , - 654 , - 271 , - 48 , - 785 , - 82 , - 339 , - 756 , - 533 , - 470 , - 567 , - 24 , - 441 , - 218 , - 155 , - 252 , - 509 , - 126 , - 703 , - 640 , - 737 , - 194 , - 611 , - 388 , - 325 , - 422 , - 679 , - 296 , - 73 , - 10 , - 107 , - 364 , - 781 , - 558 , - 495 , - 592 , - 49 , - 466 , - 243 , - 180 , - 277 , - 534 , - 151 , - 728 , - 665 , - 762 , - 219 , - 636 , - 413 , - 350 , - 447 , - 704 , - 321 , - 98 , - 35 , - 132 , - 389 , - 6 , - 583 , - 520 , - 617 , - 74 , - 491 , - 268 , - 205 , - 302 , - 559 , - 176 , - 753 , - 690 , - 787 , - 244 , - 661 , - 438 , - 375 , - 472 , - 729 , - 346 , - 123 , - 60 , - 157 , - 414 , - 31 , - 608 , - 545 , - 642 , - 99 , - 516 , - 293 , - 230 , - 327 , - 584 , - 201 , - 778 , - 715 , - 12 , - 269 , - 686 , - 463 , - 400 , - 497 , - 754 , - 371 , - 148 , - 85 , - 182 , - 439 , - 56 , - 633 , - 570 , - 667 , - 124 , - 541 , - 318 , - 255 , - 352 , - 609 , - 226 , - 3 , - 740 , - 37 , - 294 , - 711 , - 488 , - 425 , - 522 , - 779 , - 396 , - 173 , - 110 , - 207 , - 464 , - 81 , - 658 , - 595 , - 692 , - 149 , - 566 , - 343 , - 280 , - 377 , - 634 , - 251 , - 28 , - 765 , - 62 , - 319 , - 736 , - 513 , - 450 , - 547 , - 4 , - 421 , - 198 , - 135 , - 232 , - 489 , - 106 , - 683 , - 620 , - 717 , - 174 , - 591 , - 368 , - 305 , - 402 , - 659 , - 276 , - 53 , - 790 , - 87 , - 344 , - 761 , - 538 , - 475 , - 572 , - 29 , - 446 , - 223 , - 160 , - 257 , - 514 , - 131 , - 708 , - 645 , - 742 , - 199 , - 616 , - 393 , - 330 , - 427 , - 684 , - 301 , - 78 , - 15 , - 112 , - 369 , - 786 , - 563 , - 500 , - 597 , - 54 , - 471 , - 248 , - 185 , - 282 , - 539 , - 156 , - 733 , - 670 , - 767 , - 224 , - 641 , - 418 , - 355 , - 452 , - 709 , - 326 , - 103 , - 40 , - 137 , - 394 , - 11 , - 588 , - 525 , - 622 , - 79 , - 496 , - 273 , - 210 , - 307 , - 564 , - 181 , - 758 , - 695 , - 792 , - 249 , - 666 , - 443 , - 380 , - 477 , - 734 , - 351 , - 128 , - 65 , - 162 , - 419 , - 36 , - 613 , - 550 , - 647 , - 104 , - 521 , - 298 , - 235 , - 332 , - 589 , - 206 , - 783 , - 720 , - 17 , - 274 , - 691 , - 468 , - 405 , - 502 , - 759 , - 376 , - 153 , - 90 , - 187 , - 444 , - 61 , - 638 , - 575 , - 672 , - 129 , - 546 , - 323 , - 260 , - 357 , - 614 , - 231 , - 8 , - 745 , - 42 , - 299 , - 716 , - 493 , - 430 , - 527 , - 784 , - 401 , - 178 , - 115 , - 212 , - 469 , - 86 , - 663 , - 600 , - 697 , - 154 , - 571 , - 348 , - 285 , - 382 , - 639 , - 256 , - 33 , - 770 , - 67 , - 324 , - 741 , - 518 , - 455 , - 552 , - 9 , - 426 , - 203 , - 140 , - 237 , - 494 , - 111 , - 688 , - 625 , - 722 , - 179 , - 596 , - 373 , - 310 , - 407 , - 664 , - 281 , - 58 , - 795 , - 92 , - 349 , - 766 , - 543 , - 480 , - 577 , - 34 , - 451 , - 228 , - 165 , - 262 , - 519 , - 136 , - 713 , - 650 , - 747 , - 204 , - 621 , - 398 , - 335 , - 432 , - 689 , - 306 , - 83 , - 20 , - 117 , - 374 , - 791 , - 568 , - 505 , - 602 , - 59 , - 476 , - 253 , - 190 , - 287 , - 544 , - 161 , - 738 , - 675 , - 772 , - 229 , - 646 , - 423 , - 360 , - 457 , - 714 , - 331 , - 108 , - 45 , - 142 , - 399 , - 16 , - 593 , - 530 , - 627 , - 84 , - 501 , - 278 , - 215 , - 312 , - 569 , - 186 , - 763 , - 700 , - 797 , - 254 , - 671 , - 448 , - 385 , - 482 , - 739 , - 356 , - 133 , - 70 , - 167 , - 424 , - 41 , - 618 , - 555 , - 652 , - 109 , - 526 , - 303 , - 240 , - 337 , - 594 , - 211 , - 788 , - 725 , - 22 , - 279 , - 696 , - 473 , - 410 , - 507 , - 764 , - 381 , - 158 , - 95 , - 192 , - 449 , - 66 , - 643 , - 580 , - 677 , - 134 , - 551 , - 328 , - 265 , - 362 , - 619 , - 236 , - 13 , - 750 , - 47 , - 304 , - 721 , - 498 , - 435 , - 532 , - 789 , - 406 , - 183 , - 120 , - 217 , - 474 , - 91 , - 668 , - 605 , - 702 , - 159 , - 576 , - 353 , - 290 , - 387 , - 644 , - 261 , - 38 , - 775 , - 72 , - 329 , - 746 , - 523 , - 460 , - 557 , - 14 , - 431 , - 208 , - 145 , - 242 , - 499 , - 116 , - 693 , - 630 , - 727 , - 184 , - 601 , - 378 , - 315 , - 412 , - 669 , - 286 , - 63 , - 0 , - 229 , - 662 , - 483 , - 508 , - 737 , - 354 , - 175 , - 200 , - 429 , - 46 , - 683 , - 708 , - 121 , - 554 , - 375 , - 400 , - 629 , - 246 , - 67 , - 92 , - 321 , - 754 , - 575 , - 600 , - 13 , - 446 , - 267 , - 292 , - 521 , - 138 , - 775 , - 800 , - 213 , - 646 , - 467 , - 492 , - 721 , - 338 , - 159 , - 184 , - 413 , - 30 , - 667 , - 692 , - 105 , - 538 , - 359 , - 384 , - 613 , - 230 , - 51 , - 76 , - 305 , - 738 , - 559 , - 584 , - 813 , - 430 , - 251 , - 276 , - 505 , - 122 , - 759 , - 784 , - 197 , - 630 , - 451 , - 476 , - 705 , - 322 , - 143 , - 168 , - 397 , - 14 , - 651 , - 676 , - 89 , - 522 , - 343 , - 368 , - 597 , - 214 , - 35 , - 60 , - 289 , - 722 , - 543 , - 568 , - 797 , - 414 , - 235 , - 260 , - 489 , - 106 , - 743 , - 768 , - 181 , - 614 , - 435 , - 460 , - 689 , - 306 , - 127 , - 152 , - 381 , - 814 , - 635 , - 660 , - 73 , - 506 , - 327 , - 352 , - 581 , - 198 , - 19 , - 44 , - 273 , - 706 , - 527 , - 552 , - 781 , - 398 , - 219 , - 244 , - 473 , - 90 , - 727 , - 752 , - 165 , - 598 , - 419 , - 444 , - 673 , - 290 , - 111 , - 136 , - 365 , - 798 , - 619 , - 644 , - 57 , - 490 , - 311 , - 336 , - 565 , - 182 , - 3 , - 28 , - 257 , - 690 , - 511 , - 536 , - 765 , - 382 , - 203 , - 228 , - 457 , - 74 , - 711 , - 736 , - 149 , - 582 , - 403 , - 428 , - 657 , - 274 , - 95 , - 120 , - 349 , - 782 , - 603 , - 628 , - 41 , - 474 , - 295 , - 320 , - 549 , - 166 , - 803 , - 12 , - 241 , - 674 , - 495 , - 520 , - 749 , - 366 , - 187 , - 212 , - 441 , - 58 , - 695 , - 720 , - 133 , - 566 , - 387 , - 412 , - 641 , - 258 , - 79 , - 104 , - 333 , - 766 , - 587 , - 612 , - 25 , - 458 , - 279 , - 304 , - 533 , - 150 , - 787 , - 812 , - 225 , - 658 , - 479 , - 504 , - 733 , - 350 , - 171 , - 196 , - 425 , - 42 , - 679 , - 704 , - 117 , - 550 , - 371 , - 396 , - 625 , - 242 , - 63 , - 88 , - 317 , - 750 , - 571 , - 596 , - 9 , - 442 , - 263 , - 288 , - 517 , - 134 , - 771 , - 796 , - 209 , - 642 , - 463 , - 488 , - 717 , - 334 , - 155 , - 180 , - 409 , - 26 , - 663 , - 688 , - 101 , - 534 , - 355 , - 380 , - 609 , - 226 , - 47 , - 72 , - 301 , - 734 , - 555 , - 580 , - 809 , - 426 , - 247 , - 272 , - 501 , - 118 , - 755 , - 780 , - 193 , - 626 , - 447 , - 472 , - 701 , - 318 , - 139 , - 164 , - 393 , - 10 , - 647 , - 672 , - 85 , - 518 , - 339 , - 364 , - 593 , - 210 , - 31 , - 56 , - 285 , - 718 , - 539 , - 564 , - 793 , - 410 , - 231 , - 256 , - 485 , - 102 , - 739 , - 764 , - 177 , - 610 , - 431 , - 456 , - 685 , - 302 , - 123 , - 148 , - 377 , - 810 , - 631 , - 656 , - 69 , - 502 , - 323 , - 348 , - 577 , - 194 , - 15 , - 40 , - 269 , - 702 , - 523 , - 548 , - 777 , - 394 , - 215 , - 240 , - 469 , - 86 , - 723 , - 748 , - 161 , - 594 , - 415 , - 440 , - 669 , - 286 , - 107 , - 132 , - 361 , - 794 , - 615 , - 640 , - 53 , - 486 , - 307 , - 332 , - 561 , - 178 , - 815 , - 24 , - 253 , - 686 , - 507 , - 532 , - 761 , - 378 , - 199 , - 224 , - 453 , - 70 , - 707 , - 732 , - 145 , - 578 , - 399 , - 424 , - 653 , - 270 , - 91 , - 116 , - 345 , - 778 , - 599 , - 624 , - 37 , - 470 , - 291 , - 316 , - 545 , - 162 , - 799 , - 8 , - 237 , - 670 , - 491 , - 516 , - 745 , - 362 , - 183 , - 208 , - 437 , - 54 , - 691 , - 716 , - 129 , - 562 , - 383 , - 408 , - 637 , - 254 , - 75 , - 100 , - 329 , - 762 , - 583 , - 608 , - 21 , - 454 , - 275 , - 300 , - 529 , - 146 , - 783 , - 808 , - 221 , - 654 , - 475 , - 500 , - 729 , - 346 , - 167 , - 192 , - 421 , - 38 , - 675 , - 700 , - 113 , - 546 , - 367 , - 392 , - 621 , - 238 , - 59 , - 84 , - 313 , - 746 , - 567 , - 592 , - 5 , - 438 , - 259 , - 284 , - 513 , - 130 , - 767 , - 792 , - 205 , - 638 , - 459 , - 484 , - 713 , - 330 , - 151 , - 176 , - 405 , - 22 , - 659 , - 684 , - 97 , - 530 , - 351 , - 376 , - 605 , - 222 , - 43 , - 68 , - 297 , - 730 , - 551 , - 576 , - 805 , - 422 , - 243 , - 268 , - 497 , - 114 , - 751 , - 776 , - 189 , - 622 , - 443 , - 468 , - 697 , - 314 , - 135 , - 160 , - 389 , - 6 , - 643 , - 668 , - 81 , - 514 , - 335 , - 360 , - 589 , - 206 , - 27 , - 52 , - 281 , - 714 , - 535 , - 560 , - 789 , - 406 , - 227 , - 252 , - 481 , - 98 , - 735 , - 760 , - 173 , - 606 , - 427 , - 452 , - 681 , - 298 , - 119 , - 144 , - 373 , - 806 , - 627 , - 652 , - 65 , - 498 , - 319 , - 344 , - 573 , - 190 , - 11 , - 36 , - 265 , - 698 , - 519 , - 544 , - 773 , - 390 , - 211 , - 236 , - 465 , - 82 , - 719 , - 744 , - 157 , - 590 , - 411 , - 436 , - 665 , - 282 , - 103 , - 128 , - 357 , - 790 , - 611 , - 636 , - 49 , - 482 , - 303 , - 328 , - 557 , - 174 , - 811 , - 20 , - 249 , - 682 , - 503 , - 528 , - 757 , - 374 , - 195 , - 220 , - 449 , - 66 , - 703 , - 728 , - 141 , - 574 , - 395 , - 420 , - 649 , - 266 , - 87 , - 112 , - 341 , - 774 , - 595 , - 620 , - 33 , - 466 , - 287 , - 312 , - 541 , - 158 , - 795 , - 4 , - 233 , - 666 , - 487 , - 512 , - 741 , - 358 , - 179 , - 204 , - 433 , - 50 , - 687 , - 712 , - 125 , - 558 , - 379 , - 404 , - 633 , - 250 , - 71 , - 96 , - 325 , - 758 , - 579 , - 604 , - 17 , - 450 , - 271 , - 296 , - 525 , - 142 , - 779 , - 804 , - 217 , - 650 , - 471 , - 496 , - 725 , - 342 , - 163 , - 188 , - 417 , - 34 , - 671 , - 696 , - 109 , - 542 , - 363 , - 388 , - 617 , - 234 , - 55 , - 80 , - 309 , - 742 , - 563 , - 588 , - 1 , - 434 , - 255 , - 280 , - 509 , - 126 , - 763 , - 788 , - 201 , - 634 , - 455 , - 480 , - 709 , - 326 , - 147 , - 172 , - 401 , - 18 , - 655 , - 680 , - 93 , - 526 , - 347 , - 372 , - 601 , - 218 , - 39 , - 64 , - 293 , - 726 , - 547 , - 572 , - 801 , - 418 , - 239 , - 264 , - 493 , - 110 , - 747 , - 772 , - 185 , - 618 , - 439 , - 464 , - 693 , - 310 , - 131 , - 156 , - 385 , - 2 , - 639 , - 664 , - 77 , - 510 , - 331 , - 356 , - 585 , - 202 , - 23 , - 48 , - 277 , - 710 , - 531 , - 556 , - 785 , - 402 , - 223 , - 248 , - 477 , - 94 , - 731 , - 756 , - 169 , - 602 , - 423 , - 448 , - 677 , - 294 , - 115 , - 140 , - 369 , - 802 , - 623 , - 648 , - 61 , - 494 , - 315 , - 340 , - 569 , - 186 , - 7 , - 32 , - 261 , - 694 , - 515 , - 540 , - 769 , - 386 , - 207 , - 232 , - 461 , - 78 , - 715 , - 740 , - 153 , - 586 , - 407 , - 432 , - 661 , - 278 , - 99 , - 124 , - 353 , - 786 , - 607 , - 632 , - 45 , - 478 , - 299 , - 324 , - 553 , - 170 , - 807 , - 16 , - 245 , - 678 , - 499 , - 524 , - 753 , - 370 , - 191 , - 216 , - 445 , - 62 , - 699 , - 724 , - 137 , - 570 , - 391 , - 416 , - 645 , - 262 , - 83 , - 108 , - 337 , - 770 , - 591 , - 616 , - 29 , - 462 , - 283 , - 308 , - 537 , - 154 , - 791 , - 0 , - 77 , - 258 , - 543 , - 100 , - 593 , - 358 , - 227 , - 200 , - 277 , - 458 , - 743 , - 300 , - 793 , - 558 , - 427 , - 400 , - 477 , - 658 , - 111 , - 500 , - 161 , - 758 , - 627 , - 600 , - 677 , - 26 , - 311 , - 700 , - 361 , - 126 , - 827 , - 800 , - 45 , - 226 , - 511 , - 68 , - 561 , - 326 , - 195 , - 168 , - 245 , - 426 , - 711 , - 268 , - 761 , - 526 , - 395 , - 368 , - 445 , - 626 , - 79 , - 468 , - 129 , - 726 , - 595 , - 568 , - 645 , - 826 , - 279 , - 668 , - 329 , - 94 , - 795 , - 768 , - 13 , - 194 , - 479 , - 36 , - 529 , - 294 , - 163 , - 136 , - 213 , - 394 , - 679 , - 236 , - 729 , - 494 , - 363 , - 336 , - 413 , - 594 , - 47 , - 436 , - 97 , - 694 , - 563 , - 536 , - 613 , - 794 , - 247 , - 636 , - 297 , - 62 , - 763 , - 736 , - 813 , - 162 , - 447 , - 4 , - 497 , - 262 , - 131 , - 104 , - 181 , - 362 , - 647 , - 204 , - 697 , - 462 , - 331 , - 304 , - 381 , - 562 , - 15 , - 404 , - 65 , - 662 , - 531 , - 504 , - 581 , - 762 , - 215 , - 604 , - 265 , - 30 , - 731 , - 704 , - 781 , - 130 , - 415 , - 804 , - 465 , - 230 , - 99 , - 72 , - 149 , - 330 , - 615 , - 172 , - 665 , - 430 , - 299 , - 272 , - 349 , - 530 , - 815 , - 372 , - 33 , - 630 , - 499 , - 472 , - 549 , - 730 , - 183 , - 572 , - 233 , - 830 , - 699 , - 672 , - 749 , - 98 , - 383 , - 772 , - 433 , - 198 , - 67 , - 40 , - 117 , - 298 , - 583 , - 140 , - 633 , - 398 , - 267 , - 240 , - 317 , - 498 , - 783 , - 340 , - 1 , - 598 , - 467 , - 440 , - 517 , - 698 , - 151 , - 540 , - 201 , - 798 , - 667 , - 640 , - 717 , - 66 , - 351 , - 740 , - 401 , - 166 , - 35 , - 8 , - 85 , - 266 , - 551 , - 108 , - 601 , - 366 , - 235 , - 208 , - 285 , - 466 , - 751 , - 308 , - 801 , - 566 , - 435 , - 408 , - 485 , - 666 , - 119 , - 508 , - 169 , - 766 , - 635 , - 608 , - 685 , - 34 , - 319 , - 708 , - 369 , - 134 , - 3 , - 808 , - 53 , - 234 , - 519 , - 76 , - 569 , - 334 , - 203 , - 176 , - 253 , - 434 , - 719 , - 276 , - 769 , - 534 , - 403 , - 376 , - 453 , - 634 , - 87 , - 476 , - 137 , - 734 , - 603 , - 576 , - 653 , - 2 , - 287 , - 676 , - 337 , - 102 , - 803 , - 776 , - 21 , - 202 , - 487 , - 44 , - 537 , - 302 , - 171 , - 144 , - 221 , - 402 , - 687 , - 244 , - 737 , - 502 , - 371 , - 344 , - 421 , - 602 , - 55 , - 444 , - 105 , - 702 , - 571 , - 544 , - 621 , - 802 , - 255 , - 644 , - 305 , - 70 , - 771 , - 744 , - 821 , - 170 , - 455 , - 12 , - 505 , - 270 , - 139 , - 112 , - 189 , - 370 , - 655 , - 212 , - 705 , - 470 , - 339 , - 312 , - 389 , - 570 , - 23 , - 412 , - 73 , - 670 , - 539 , - 512 , - 589 , - 770 , - 223 , - 612 , - 273 , - 38 , - 739 , - 712 , - 789 , - 138 , - 423 , - 812 , - 473 , - 238 , - 107 , - 80 , - 157 , - 338 , - 623 , - 180 , - 673 , - 438 , - 307 , - 280 , - 357 , - 538 , - 823 , - 380 , - 41 , - 638 , - 507 , - 480 , - 557 , - 738 , - 191 , - 580 , - 241 , - 6 , - 707 , - 680 , - 757 , - 106 , - 391 , - 780 , - 441 , - 206 , - 75 , - 48 , - 125 , - 306 , - 591 , - 148 , - 641 , - 406 , - 275 , - 248 , - 325 , - 506 , - 791 , - 348 , - 9 , - 606 , - 475 , - 448 , - 525 , - 706 , - 159 , - 548 , - 209 , - 806 , - 675 , - 648 , - 725 , - 74 , - 359 , - 748 , - 409 , - 174 , - 43 , - 16 , - 93 , - 274 , - 559 , - 116 , - 609 , - 374 , - 243 , - 216 , - 293 , - 474 , - 759 , - 316 , - 809 , - 574 , - 443 , - 416 , - 493 , - 674 , - 127 , - 516 , - 177 , - 774 , - 643 , - 616 , - 693 , - 42 , - 327 , - 716 , - 377 , - 142 , - 11 , - 816 , - 61 , - 242 , - 527 , - 84 , - 577 , - 342 , - 211 , - 184 , - 261 , - 442 , - 727 , - 284 , - 777 , - 542 , - 411 , - 384 , - 461 , - 642 , - 95 , - 484 , - 145 , - 742 , - 611 , - 584 , - 661 , - 10 , - 295 , - 684 , - 345 , - 110 , - 811 , - 784 , - 29 , - 210 , - 495 , - 52 , - 545 , - 310 , - 179 , - 152 , - 229 , - 410 , - 695 , - 252 , - 745 , - 510 , - 379 , - 352 , - 429 , - 610 , - 63 , - 452 , - 113 , - 710 , - 579 , - 552 , - 629 , - 810 , - 263 , - 652 , - 313 , - 78 , - 779 , - 752 , - 829 , - 178 , - 463 , - 20 , - 513 , - 278 , - 147 , - 120 , - 197 , - 378 , - 663 , - 220 , - 713 , - 478 , - 347 , - 320 , - 397 , - 578 , - 31 , - 420 , - 81 , - 678 , - 547 , - 520 , - 597 , - 778 , - 231 , - 620 , - 281 , - 46 , - 747 , - 720 , - 797 , - 146 , - 431 , - 820 , - 481 , - 246 , - 115 , - 88 , - 165 , - 346 , - 631 , - 188 , - 681 , - 446 , - 315 , - 288 , - 365 , - 546 , - 831 , - 388 , - 49 , - 646 , - 515 , - 488 , - 565 , - 746 , - 199 , - 588 , - 249 , - 14 , - 715 , - 688 , - 765 , - 114 , - 399 , - 788 , - 449 , - 214 , - 83 , - 56 , - 133 , - 314 , - 599 , - 156 , - 649 , - 414 , - 283 , - 256 , - 333 , - 514 , - 799 , - 356 , - 17 , - 614 , - 483 , - 456 , - 533 , - 714 , - 167 , - 556 , - 217 , - 814 , - 683 , - 656 , - 733 , - 82 , - 367 , - 756 , - 417 , - 182 , - 51 , - 24 , - 101 , - 282 , - 567 , - 124 , - 617 , - 382 , - 251 , - 224 , - 301 , - 482 , - 767 , - 324 , - 817 , - 582 , - 451 , - 424 , - 501 , - 682 , - 135 , - 524 , - 185 , - 782 , - 651 , - 624 , - 701 , - 50 , - 335 , - 724 , - 385 , - 150 , - 19 , - 824 , - 69 , - 250 , - 535 , - 92 , - 585 , - 350 , - 219 , - 192 , - 269 , - 450 , - 735 , - 292 , - 785 , - 550 , - 419 , - 392 , - 469 , - 650 , - 103 , - 492 , - 153 , - 750 , - 619 , - 592 , - 669 , - 18 , - 303 , - 692 , - 353 , - 118 , - 819 , - 792 , - 37 , - 218 , - 503 , - 60 , - 553 , - 318 , - 187 , - 160 , - 237 , - 418 , - 703 , - 260 , - 753 , - 518 , - 387 , - 360 , - 437 , - 618 , - 71 , - 460 , - 121 , - 718 , - 587 , - 560 , - 637 , - 818 , - 271 , - 660 , - 321 , - 86 , - 787 , - 760 , - 5 , - 186 , - 471 , - 28 , - 521 , - 286 , - 155 , - 128 , - 205 , - 386 , - 671 , - 228 , - 721 , - 486 , - 355 , - 328 , - 405 , - 586 , - 39 , - 428 , - 89 , - 686 , - 555 , - 528 , - 605 , - 786 , - 239 , - 628 , - 289 , - 54 , - 755 , - 728 , - 805 , - 154 , - 439 , - 828 , - 489 , - 254 , - 123 , - 96 , - 173 , - 354 , - 639 , - 196 , - 689 , - 454 , - 323 , - 296 , - 373 , - 554 , - 7 , - 396 , - 57 , - 654 , - 523 , - 496 , - 573 , - 754 , - 207 , - 596 , - 257 , - 22 , - 723 , - 696 , - 773 , - 122 , - 407 , - 796 , - 457 , - 222 , - 91 , - 64 , - 141 , - 322 , - 607 , - 164 , - 657 , - 422 , - 291 , - 264 , - 341 , - 522 , - 807 , - 364 , - 25 , - 622 , - 491 , - 464 , - 541 , - 722 , - 175 , - 564 , - 225 , - 822 , - 691 , - 664 , - 741 , - 90 , - 375 , - 764 , - 425 , - 190 , - 59 , - 32 , - 109 , - 290 , - 575 , - 132 , - 625 , - 390 , - 259 , - 232 , - 309 , - 490 , - 775 , - 332 , - 825 , - 590 , - 459 , - 432 , - 509 , - 690 , - 143 , - 532 , - 193 , - 790 , - 659 , - 632 , - 709 , - 58 , - 343 , - 732 , - 393 , - 158 , - 27 , - 0 , - 345 , - 54 , - 823 , - 108 , - 453 , - 162 , - 83 , - 216 , - 561 , - 270 , - 191 , - 324 , - 669 , - 378 , - 299 , - 432 , - 777 , - 486 , - 407 , - 540 , - 37 , - 594 , - 515 , - 648 , - 145 , - 702 , - 623 , - 756 , - 253 , - 810 , - 731 , - 16 , - 361 , - 70 , - 839 , - 124 , - 469 , - 178 , - 99 , - 232 , - 577 , - 286 , - 207 , - 340 , - 685 , - 394 , - 315 , - 448 , - 793 , - 502 , - 423 , - 556 , - 53 , - 610 , - 531 , - 664 , - 161 , - 718 , - 639 , - 772 , - 269 , - 826 , - 747 , - 32 , - 377 , - 86 , - 7 , - 140 , - 485 , - 194 , - 115 , - 248 , - 593 , - 302 , - 223 , - 356 , - 701 , - 410 , - 331 , - 464 , - 809 , - 518 , - 439 , - 572 , - 69 , - 626 , - 547 , - 680 , - 177 , - 734 , - 655 , - 788 , - 285 , - 842 , - 763 , - 48 , - 393 , - 102 , - 23 , - 156 , - 501 , - 210 , - 131 , - 264 , - 609 , - 318 , - 239 , - 372 , - 717 , - 426 , - 347 , - 480 , - 825 , - 534 , - 455 , - 588 , - 85 , - 642 , - 563 , - 696 , - 193 , - 750 , - 671 , - 804 , - 301 , - 10 , - 779 , - 64 , - 409 , - 118 , - 39 , - 172 , - 517 , - 226 , - 147 , - 280 , - 625 , - 334 , - 255 , - 388 , - 733 , - 442 , - 363 , - 496 , - 841 , - 550 , - 471 , - 604 , - 101 , - 658 , - 579 , - 712 , - 209 , - 766 , - 687 , - 820 , - 317 , - 26 , - 795 , - 80 , - 425 , - 134 , - 55 , - 188 , - 533 , - 242 , - 163 , - 296 , - 641 , - 350 , - 271 , - 404 , - 749 , - 458 , - 379 , - 512 , - 9 , - 566 , - 487 , - 620 , - 117 , - 674 , - 595 , - 728 , - 225 , - 782 , - 703 , - 836 , - 333 , - 42 , - 811 , - 96 , - 441 , - 150 , - 71 , - 204 , - 549 , - 258 , - 179 , - 312 , - 657 , - 366 , - 287 , - 420 , - 765 , - 474 , - 395 , - 528 , - 25 , - 582 , - 503 , - 636 , - 133 , - 690 , - 611 , - 744 , - 241 , - 798 , - 719 , - 4 , - 349 , - 58 , - 827 , - 112 , - 457 , - 166 , - 87 , - 220 , - 565 , - 274 , - 195 , - 328 , - 673 , - 382 , - 303 , - 436 , - 781 , - 490 , - 411 , - 544 , - 41 , - 598 , - 519 , - 652 , - 149 , - 706 , - 627 , - 760 , - 257 , - 814 , - 735 , - 20 , - 365 , - 74 , - 843 , - 128 , - 473 , - 182 , - 103 , - 236 , - 581 , - 290 , - 211 , - 344 , - 689 , - 398 , - 319 , - 452 , - 797 , - 506 , - 427 , - 560 , - 57 , - 614 , - 535 , - 668 , - 165 , - 722 , - 643 , - 776 , - 273 , - 830 , - 751 , - 36 , - 381 , - 90 , - 11 , - 144 , - 489 , - 198 , - 119 , - 252 , - 597 , - 306 , - 227 , - 360 , - 705 , - 414 , - 335 , - 468 , - 813 , - 522 , - 443 , - 576 , - 73 , - 630 , - 551 , - 684 , - 181 , - 738 , - 659 , - 792 , - 289 , - 846 , - 767 , - 52 , - 397 , - 106 , - 27 , - 160 , - 505 , - 214 , - 135 , - 268 , - 613 , - 322 , - 243 , - 376 , - 721 , - 430 , - 351 , - 484 , - 829 , - 538 , - 459 , - 592 , - 89 , - 646 , - 567 , - 700 , - 197 , - 754 , - 675 , - 808 , - 305 , - 14 , - 783 , - 68 , - 413 , - 122 , - 43 , - 176 , - 521 , - 230 , - 151 , - 284 , - 629 , - 338 , - 259 , - 392 , - 737 , - 446 , - 367 , - 500 , - 845 , - 554 , - 475 , - 608 , - 105 , - 662 , - 583 , - 716 , - 213 , - 770 , - 691 , - 824 , - 321 , - 30 , - 799 , - 84 , - 429 , - 138 , - 59 , - 192 , - 537 , - 246 , - 167 , - 300 , - 645 , - 354 , - 275 , - 408 , - 753 , - 462 , - 383 , - 516 , - 13 , - 570 , - 491 , - 624 , - 121 , - 678 , - 599 , - 732 , - 229 , - 786 , - 707 , - 840 , - 337 , - 46 , - 815 , - 100 , - 445 , - 154 , - 75 , - 208 , - 553 , - 262 , - 183 , - 316 , - 661 , - 370 , - 291 , - 424 , - 769 , - 478 , - 399 , - 532 , - 29 , - 586 , - 507 , - 640 , - 137 , - 694 , - 615 , - 748 , - 245 , - 802 , - 723 , - 8 , - 353 , - 62 , - 831 , - 116 , - 461 , - 170 , - 91 , - 224 , - 569 , - 278 , - 199 , - 332 , - 677 , - 386 , - 307 , - 440 , - 785 , - 494 , - 415 , - 548 , - 45 , - 602 , - 523 , - 656 , - 153 , - 710 , - 631 , - 764 , - 261 , - 818 , - 739 , - 24 , - 369 , - 78 , - 847 , - 132 , - 477 , - 186 , - 107 , - 240 , - 585 , - 294 , - 215 , - 348 , - 693 , - 402 , - 323 , - 456 , - 801 , - 510 , - 431 , - 564 , - 61 , - 618 , - 539 , - 672 , - 169 , - 726 , - 647 , - 780 , - 277 , - 834 , - 755 , - 40 , - 385 , - 94 , - 15 , - 148 , - 493 , - 202 , - 123 , - 256 , - 601 , - 310 , - 231 , - 364 , - 709 , - 418 , - 339 , - 472 , - 817 , - 526 , - 447 , - 580 , - 77 , - 634 , - 555 , - 688 , - 185 , - 742 , - 663 , - 796 , - 293 , - 2 , - 771 , - 56 , - 401 , - 110 , - 31 , - 164 , - 509 , - 218 , - 139 , - 272 , - 617 , - 326 , - 247 , - 380 , - 725 , - 434 , - 355 , - 488 , - 833 , - 542 , - 463 , - 596 , - 93 , - 650 , - 571 , - 704 , - 201 , - 758 , - 679 , - 812 , - 309 , - 18 , - 787 , - 72 , - 417 , - 126 , - 47 , - 180 , - 525 , - 234 , - 155 , - 288 , - 633 , - 342 , - 263 , - 396 , - 741 , - 450 , - 371 , - 504 , - 1 , - 558 , - 479 , - 612 , - 109 , - 666 , - 587 , - 720 , - 217 , - 774 , - 695 , - 828 , - 325 , - 34 , - 803 , - 88 , - 433 , - 142 , - 63 , - 196 , - 541 , - 250 , - 171 , - 304 , - 649 , - 358 , - 279 , - 412 , - 757 , - 466 , - 387 , - 520 , - 17 , - 574 , - 495 , - 628 , - 125 , - 682 , - 603 , - 736 , - 233 , - 790 , - 711 , - 844 , - 341 , - 50 , - 819 , - 104 , - 449 , - 158 , - 79 , - 212 , - 557 , - 266 , - 187 , - 320 , - 665 , - 374 , - 295 , - 428 , - 773 , - 482 , - 403 , - 536 , - 33 , - 590 , - 511 , - 644 , - 141 , - 698 , - 619 , - 752 , - 249 , - 806 , - 727 , - 12 , - 357 , - 66 , - 835 , - 120 , - 465 , - 174 , - 95 , - 228 , - 573 , - 282 , - 203 , - 336 , - 681 , - 390 , - 311 , - 444 , - 789 , - 498 , - 419 , - 552 , - 49 , - 606 , - 527 , - 660 , - 157 , - 714 , - 635 , - 768 , - 265 , - 822 , - 743 , - 28 , - 373 , - 82 , - 3 , - 136 , - 481 , - 190 , - 111 , - 244 , - 589 , - 298 , - 219 , - 352 , - 697 , - 406 , - 327 , - 460 , - 805 , - 514 , - 435 , - 568 , - 65 , - 622 , - 543 , - 676 , - 173 , - 730 , - 651 , - 784 , - 281 , - 838 , - 759 , - 44 , - 389 , - 98 , - 19 , - 152 , - 497 , - 206 , - 127 , - 260 , - 605 , - 314 , - 235 , - 368 , - 713 , - 422 , - 343 , - 476 , - 821 , - 530 , - 451 , - 584 , - 81 , - 638 , - 559 , - 692 , - 189 , - 746 , - 667 , - 800 , - 297 , - 6 , - 775 , - 60 , - 405 , - 114 , - 35 , - 168 , - 513 , - 222 , - 143 , - 276 , - 621 , - 330 , - 251 , - 384 , - 729 , - 438 , - 359 , - 492 , - 837 , - 546 , - 467 , - 600 , - 97 , - 654 , - 575 , - 708 , - 205 , - 762 , - 683 , - 816 , - 313 , - 22 , - 791 , - 76 , - 421 , - 130 , - 51 , - 184 , - 529 , - 238 , - 159 , - 292 , - 637 , - 346 , - 267 , - 400 , - 745 , - 454 , - 375 , - 508 , - 5 , - 562 , - 483 , - 616 , - 113 , - 670 , - 591 , - 724 , - 221 , - 778 , - 699 , - 832 , - 329 , - 38 , - 807 , - 92 , - 437 , - 146 , - 67 , - 200 , - 545 , - 254 , - 175 , - 308 , - 653 , - 362 , - 283 , - 416 , - 761 , - 470 , - 391 , - 524 , - 21 , - 578 , - 499 , - 632 , - 129 , - 686 , - 607 , - 740 , - 237 , - 794 , - 715 , - 0 , - 65 , - 226 , - 483 , - 836 , - 421 , - 102 , - 743 , - 616 , - 585 , - 650 , - 811 , - 204 , - 557 , - 142 , - 687 , - 464 , - 337 , - 306 , - 371 , - 532 , - 789 , - 278 , - 727 , - 408 , - 185 , - 58 , - 27 , - 92 , - 253 , - 510 , - 863 , - 448 , - 129 , - 770 , - 643 , - 612 , - 677 , - 838 , - 231 , - 584 , - 169 , - 714 , - 491 , - 364 , - 333 , - 398 , - 559 , - 816 , - 305 , - 754 , - 435 , - 212 , - 85 , - 54 , - 119 , - 280 , - 537 , - 26 , - 475 , - 156 , - 797 , - 670 , - 639 , - 704 , - 1 , - 258 , - 611 , - 196 , - 741 , - 518 , - 391 , - 360 , - 425 , - 586 , - 843 , - 332 , - 781 , - 462 , - 239 , - 112 , - 81 , - 146 , - 307 , - 564 , - 53 , - 502 , - 183 , - 824 , - 697 , - 666 , - 731 , - 28 , - 285 , - 638 , - 223 , - 768 , - 545 , - 418 , - 387 , - 452 , - 613 , - 6 , - 359 , - 808 , - 489 , - 266 , - 139 , - 108 , - 173 , - 334 , - 591 , - 80 , - 529 , - 210 , - 851 , - 724 , - 693 , - 758 , - 55 , - 312 , - 665 , - 250 , - 795 , - 572 , - 445 , - 414 , - 479 , - 640 , - 33 , - 386 , - 835 , - 516 , - 293 , - 166 , - 135 , - 200 , - 361 , - 618 , - 107 , - 556 , - 237 , - 14 , - 751 , - 720 , - 785 , - 82 , - 339 , - 692 , - 277 , - 822 , - 599 , - 472 , - 441 , - 506 , - 667 , - 60 , - 413 , - 862 , - 543 , - 320 , - 193 , - 162 , - 227 , - 388 , - 645 , - 134 , - 583 , - 264 , - 41 , - 778 , - 747 , - 812 , - 109 , - 366 , - 719 , - 304 , - 849 , - 626 , - 499 , - 468 , - 533 , - 694 , - 87 , - 440 , - 25 , - 570 , - 347 , - 220 , - 189 , - 254 , - 415 , - 672 , - 161 , - 610 , - 291 , - 68 , - 805 , - 774 , - 839 , - 136 , - 393 , - 746 , - 331 , - 12 , - 653 , - 526 , - 495 , - 560 , - 721 , - 114 , - 467 , - 52 , - 597 , - 374 , - 247 , - 216 , - 281 , - 442 , - 699 , - 188 , - 637 , - 318 , - 95 , - 832 , - 801 , - 2 , - 163 , - 420 , - 773 , - 358 , - 39 , - 680 , - 553 , - 522 , - 587 , - 748 , - 141 , - 494 , - 79 , - 624 , - 401 , - 274 , - 243 , - 308 , - 469 , - 726 , - 215 , - 664 , - 345 , - 122 , - 859 , - 828 , - 29 , - 190 , - 447 , - 800 , - 385 , - 66 , - 707 , - 580 , - 549 , - 614 , - 775 , - 168 , - 521 , - 106 , - 651 , - 428 , - 301 , - 270 , - 335 , - 496 , - 753 , - 242 , - 691 , - 372 , - 149 , - 22 , - 855 , - 56 , - 217 , - 474 , - 827 , - 412 , - 93 , - 734 , - 607 , - 576 , - 641 , - 802 , - 195 , - 548 , - 133 , - 678 , - 455 , - 328 , - 297 , - 362 , - 523 , - 780 , - 269 , - 718 , - 399 , - 176 , - 49 , - 18 , - 83 , - 244 , - 501 , - 854 , - 439 , - 120 , - 761 , - 634 , - 603 , - 668 , - 829 , - 222 , - 575 , - 160 , - 705 , - 482 , - 355 , - 324 , - 389 , - 550 , - 807 , - 296 , - 745 , - 426 , - 203 , - 76 , - 45 , - 110 , - 271 , - 528 , - 17 , - 466 , - 147 , - 788 , - 661 , - 630 , - 695 , - 856 , - 249 , - 602 , - 187 , - 732 , - 509 , - 382 , - 351 , - 416 , - 577 , - 834 , - 323 , - 772 , - 453 , - 230 , - 103 , - 72 , - 137 , - 298 , - 555 , - 44 , - 493 , - 174 , - 815 , - 688 , - 657 , - 722 , - 19 , - 276 , - 629 , - 214 , - 759 , - 536 , - 409 , - 378 , - 443 , - 604 , - 861 , - 350 , - 799 , - 480 , - 257 , - 130 , - 99 , - 164 , - 325 , - 582 , - 71 , - 520 , - 201 , - 842 , - 715 , - 684 , - 749 , - 46 , - 303 , - 656 , - 241 , - 786 , - 563 , - 436 , - 405 , - 470 , - 631 , - 24 , - 377 , - 826 , - 507 , - 284 , - 157 , - 126 , - 191 , - 352 , - 609 , - 98 , - 547 , - 228 , - 5 , - 742 , - 711 , - 776 , - 73 , - 330 , - 683 , - 268 , - 813 , - 590 , - 463 , - 432 , - 497 , - 658 , - 51 , - 404 , - 853 , - 534 , - 311 , - 184 , - 153 , - 218 , - 379 , - 636 , - 125 , - 574 , - 255 , - 32 , - 769 , - 738 , - 803 , - 100 , - 357 , - 710 , - 295 , - 840 , - 617 , - 490 , - 459 , - 524 , - 685 , - 78 , - 431 , - 16 , - 561 , - 338 , - 211 , - 180 , - 245 , - 406 , - 663 , - 152 , - 601 , - 282 , - 59 , - 796 , - 765 , - 830 , - 127 , - 384 , - 737 , - 322 , - 3 , - 644 , - 517 , - 486 , - 551 , - 712 , - 105 , - 458 , - 43 , - 588 , - 365 , - 238 , - 207 , - 272 , - 433 , - 690 , - 179 , - 628 , - 309 , - 86 , - 823 , - 792 , - 857 , - 154 , - 411 , - 764 , - 349 , - 30 , - 671 , - 544 , - 513 , - 578 , - 739 , - 132 , - 485 , - 70 , - 615 , - 392 , - 265 , - 234 , - 299 , - 460 , - 717 , - 206 , - 655 , - 336 , - 113 , - 850 , - 819 , - 20 , - 181 , - 438 , - 791 , - 376 , - 57 , - 698 , - 571 , - 540 , - 605 , - 766 , - 159 , - 512 , - 97 , - 642 , - 419 , - 292 , - 261 , - 326 , - 487 , - 744 , - 233 , - 682 , - 363 , - 140 , - 13 , - 846 , - 47 , - 208 , - 465 , - 818 , - 403 , - 84 , - 725 , - 598 , - 567 , - 632 , - 793 , - 186 , - 539 , - 124 , - 669 , - 446 , - 319 , - 288 , - 353 , - 514 , - 771 , - 260 , - 709 , - 390 , - 167 , - 40 , - 9 , - 74 , - 235 , - 492 , - 845 , - 430 , - 111 , - 752 , - 625 , - 594 , - 659 , - 820 , - 213 , - 566 , - 151 , - 696 , - 473 , - 346 , - 315 , - 380 , - 541 , - 798 , - 287 , - 736 , - 417 , - 194 , - 67 , - 36 , - 101 , - 262 , - 519 , - 8 , - 457 , - 138 , - 779 , - 652 , - 621 , - 686 , - 847 , - 240 , - 593 , - 178 , - 723 , - 500 , - 373 , - 342 , - 407 , - 568 , - 825 , - 314 , - 763 , - 444 , - 221 , - 94 , - 63 , - 128 , - 289 , - 546 , - 35 , - 484 , - 165 , - 806 , - 679 , - 648 , - 713 , - 10 , - 267 , - 620 , - 205 , - 750 , - 527 , - 400 , - 369 , - 434 , - 595 , - 852 , - 341 , - 790 , - 471 , - 248 , - 121 , - 90 , - 155 , - 316 , - 573 , - 62 , - 511 , - 192 , - 833 , - 706 , - 675 , - 740 , - 37 , - 294 , - 647 , - 232 , - 777 , - 554 , - 427 , - 396 , - 461 , - 622 , - 15 , - 368 , - 817 , - 498 , - 275 , - 148 , - 117 , - 182 , - 343 , - 600 , - 89 , - 538 , - 219 , - 860 , - 733 , - 702 , - 767 , - 64 , - 321 , - 674 , - 259 , - 804 , - 581 , - 454 , - 423 , - 488 , - 649 , - 42 , - 395 , - 844 , - 525 , - 302 , - 175 , - 144 , - 209 , - 370 , - 627 , - 116 , - 565 , - 246 , - 23 , - 760 , - 729 , - 794 , - 91 , - 348 , - 701 , - 286 , - 831 , - 608 , - 481 , - 450 , - 515 , - 676 , - 69 , - 422 , - 7 , - 552 , - 329 , - 202 , - 171 , - 236 , - 397 , - 654 , - 143 , - 592 , - 273 , - 50 , - 787 , - 756 , - 821 , - 118 , - 375 , - 728 , - 313 , - 858 , - 635 , - 508 , - 477 , - 542 , - 703 , - 96 , - 449 , - 34 , - 579 , - 356 , - 229 , - 198 , - 263 , - 424 , - 681 , - 170 , - 619 , - 300 , - 77 , - 814 , - 783 , - 848 , - 145 , - 402 , - 755 , - 340 , - 21 , - 662 , - 535 , - 504 , - 569 , - 730 , - 123 , - 476 , - 61 , - 606 , - 383 , - 256 , - 225 , - 290 , - 451 , - 708 , - 197 , - 646 , - 327 , - 104 , - 841 , - 810 , - 11 , - 172 , - 429 , - 782 , - 367 , - 48 , - 689 , - 562 , - 531 , - 596 , - 757 , - 150 , - 503 , - 88 , - 633 , - 410 , - 283 , - 252 , - 317 , - 478 , - 735 , - 224 , - 673 , - 354 , - 131 , - 4 , - 837 , - 38 , - 199 , - 456 , - 809 , - 394 , - 75 , - 716 , - 589 , - 558 , - 623 , - 784 , - 177 , - 530 , - 115 , - 660 , - 437 , - 310 , - 279 , - 344 , - 505 , - 762 , - 251 , - 700 , - 381 , - 158 , - 31 , - 0 , - 247 , - 714 , - 521 , - 548 , - 795 , - 382 , - 189 , - 216 , - 463 , - 50 , - 737 , - 764 , - 131 , - 598 , - 405 , - 432 , - 679 , - 266 , - 73 , - 100 , - 347 , - 814 , - 621 , - 648 , - 15 , - 482 , - 289 , - 316 , - 563 , - 150 , - 837 , - 864 , - 231 , - 698 , - 505 , - 532 , - 779 , - 366 , - 173 , - 200 , - 447 , - 34 , - 721 , - 748 , - 115 , - 582 , - 389 , - 416 , - 663 , - 250 , - 57 , - 84 , - 331 , - 798 , - 605 , - 632 , - 879 , - 466 , - 273 , - 300 , - 547 , - 134 , - 821 , - 848 , - 215 , - 682 , - 489 , - 516 , - 763 , - 350 , - 157 , - 184 , - 431 , - 18 , - 705 , - 732 , - 99 , - 566 , - 373 , - 400 , - 647 , - 234 , - 41 , - 68 , - 315 , - 782 , - 589 , - 616 , - 863 , - 450 , - 257 , - 284 , - 531 , - 118 , - 805 , - 832 , - 199 , - 666 , - 473 , - 500 , - 747 , - 334 , - 141 , - 168 , - 415 , - 2 , - 689 , - 716 , - 83 , - 550 , - 357 , - 384 , - 631 , - 218 , - 25 , - 52 , - 299 , - 766 , - 573 , - 600 , - 847 , - 434 , - 241 , - 268 , - 515 , - 102 , - 789 , - 816 , - 183 , - 650 , - 457 , - 484 , - 731 , - 318 , - 125 , - 152 , - 399 , - 866 , - 673 , - 700 , - 67 , - 534 , - 341 , - 368 , - 615 , - 202 , - 9 , - 36 , - 283 , - 750 , - 557 , - 584 , - 831 , - 418 , - 225 , - 252 , - 499 , - 86 , - 773 , - 800 , - 167 , - 634 , - 441 , - 468 , - 715 , - 302 , - 109 , - 136 , - 383 , - 850 , - 657 , - 684 , - 51 , - 518 , - 325 , - 352 , - 599 , - 186 , - 873 , - 20 , - 267 , - 734 , - 541 , - 568 , - 815 , - 402 , - 209 , - 236 , - 483 , - 70 , - 757 , - 784 , - 151 , - 618 , - 425 , - 452 , - 699 , - 286 , - 93 , - 120 , - 367 , - 834 , - 641 , - 668 , - 35 , - 502 , - 309 , - 336 , - 583 , - 170 , - 857 , - 4 , - 251 , - 718 , - 525 , - 552 , - 799 , - 386 , - 193 , - 220 , - 467 , - 54 , - 741 , - 768 , - 135 , - 602 , - 409 , - 436 , - 683 , - 270 , - 77 , - 104 , - 351 , - 818 , - 625 , - 652 , - 19 , - 486 , - 293 , - 320 , - 567 , - 154 , - 841 , - 868 , - 235 , - 702 , - 509 , - 536 , - 783 , - 370 , - 177 , - 204 , - 451 , - 38 , - 725 , - 752 , - 119 , - 586 , - 393 , - 420 , - 667 , - 254 , - 61 , - 88 , - 335 , - 802 , - 609 , - 636 , - 3 , - 470 , - 277 , - 304 , - 551 , - 138 , - 825 , - 852 , - 219 , - 686 , - 493 , - 520 , - 767 , - 354 , - 161 , - 188 , - 435 , - 22 , - 709 , - 736 , - 103 , - 570 , - 377 , - 404 , - 651 , - 238 , - 45 , - 72 , - 319 , - 786 , - 593 , - 620 , - 867 , - 454 , - 261 , - 288 , - 535 , - 122 , - 809 , - 836 , - 203 , - 670 , - 477 , - 504 , - 751 , - 338 , - 145 , - 172 , - 419 , - 6 , - 693 , - 720 , - 87 , - 554 , - 361 , - 388 , - 635 , - 222 , - 29 , - 56 , - 303 , - 770 , - 577 , - 604 , - 851 , - 438 , - 245 , - 272 , - 519 , - 106 , - 793 , - 820 , - 187 , - 654 , - 461 , - 488 , - 735 , - 322 , - 129 , - 156 , - 403 , - 870 , - 677 , - 704 , - 71 , - 538 , - 345 , - 372 , - 619 , - 206 , - 13 , - 40 , - 287 , - 754 , - 561 , - 588 , - 835 , - 422 , - 229 , - 256 , - 503 , - 90 , - 777 , - 804 , - 171 , - 638 , - 445 , - 472 , - 719 , - 306 , - 113 , - 140 , - 387 , - 854 , - 661 , - 688 , - 55 , - 522 , - 329 , - 356 , - 603 , - 190 , - 877 , - 24 , - 271 , - 738 , - 545 , - 572 , - 819 , - 406 , - 213 , - 240 , - 487 , - 74 , - 761 , - 788 , - 155 , - 622 , - 429 , - 456 , - 703 , - 290 , - 97 , - 124 , - 371 , - 838 , - 645 , - 672 , - 39 , - 506 , - 313 , - 340 , - 587 , - 174 , - 861 , - 8 , - 255 , - 722 , - 529 , - 556 , - 803 , - 390 , - 197 , - 224 , - 471 , - 58 , - 745 , - 772 , - 139 , - 606 , - 413 , - 440 , - 687 , - 274 , - 81 , - 108 , - 355 , - 822 , - 629 , - 656 , - 23 , - 490 , - 297 , - 324 , - 571 , - 158 , - 845 , - 872 , - 239 , - 706 , - 513 , - 540 , - 787 , - 374 , - 181 , - 208 , - 455 , - 42 , - 729 , - 756 , - 123 , - 590 , - 397 , - 424 , - 671 , - 258 , - 65 , - 92 , - 339 , - 806 , - 613 , - 640 , - 7 , - 474 , - 281 , - 308 , - 555 , - 142 , - 829 , - 856 , - 223 , - 690 , - 497 , - 524 , - 771 , - 358 , - 165 , - 192 , - 439 , - 26 , - 713 , - 740 , - 107 , - 574 , - 381 , - 408 , - 655 , - 242 , - 49 , - 76 , - 323 , - 790 , - 597 , - 624 , - 871 , - 458 , - 265 , - 292 , - 539 , - 126 , - 813 , - 840 , - 207 , - 674 , - 481 , - 508 , - 755 , - 342 , - 149 , - 176 , - 423 , - 10 , - 697 , - 724 , - 91 , - 558 , - 365 , - 392 , - 639 , - 226 , - 33 , - 60 , - 307 , - 774 , - 581 , - 608 , - 855 , - 442 , - 249 , - 276 , - 523 , - 110 , - 797 , - 824 , - 191 , - 658 , - 465 , - 492 , - 739 , - 326 , - 133 , - 160 , - 407 , - 874 , - 681 , - 708 , - 75 , - 542 , - 349 , - 376 , - 623 , - 210 , - 17 , - 44 , - 291 , - 758 , - 565 , - 592 , - 839 , - 426 , - 233 , - 260 , - 507 , - 94 , - 781 , - 808 , - 175 , - 642 , - 449 , - 476 , - 723 , - 310 , - 117 , - 144 , - 391 , - 858 , - 665 , - 692 , - 59 , - 526 , - 333 , - 360 , - 607 , - 194 , - 1 , - 28 , - 275 , - 742 , - 549 , - 576 , - 823 , - 410 , - 217 , - 244 , - 491 , - 78 , - 765 , - 792 , - 159 , - 626 , - 433 , - 460 , - 707 , - 294 , - 101 , - 128 , - 375 , - 842 , - 649 , - 676 , - 43 , - 510 , - 317 , - 344 , - 591 , - 178 , - 865 , - 12 , - 259 , - 726 , - 533 , - 560 , - 807 , - 394 , - 201 , - 228 , - 475 , - 62 , - 749 , - 776 , - 143 , - 610 , - 417 , - 444 , - 691 , - 278 , - 85 , - 112 , - 359 , - 826 , - 633 , - 660 , - 27 , - 494 , - 301 , - 328 , - 575 , - 162 , - 849 , - 876 , - 243 , - 710 , - 517 , - 544 , - 791 , - 378 , - 185 , - 212 , - 459 , - 46 , - 733 , - 760 , - 127 , - 594 , - 401 , - 428 , - 675 , - 262 , - 69 , - 96 , - 343 , - 810 , - 617 , - 644 , - 11 , - 478 , - 285 , - 312 , - 559 , - 146 , - 833 , - 860 , - 227 , - 694 , - 501 , - 528 , - 775 , - 362 , - 169 , - 196 , - 443 , - 30 , - 717 , - 744 , - 111 , - 578 , - 385 , - 412 , - 659 , - 246 , - 53 , - 80 , - 327 , - 794 , - 601 , - 628 , - 875 , - 462 , - 269 , - 296 , - 543 , - 130 , - 817 , - 844 , - 211 , - 678 , - 485 , - 512 , - 759 , - 346 , - 153 , - 180 , - 427 , - 14 , - 701 , - 728 , - 95 , - 562 , - 369 , - 396 , - 643 , - 230 , - 37 , - 64 , - 311 , - 778 , - 585 , - 612 , - 859 , - 446 , - 253 , - 280 , - 527 , - 114 , - 801 , - 828 , - 195 , - 662 , - 469 , - 496 , - 743 , - 330 , - 137 , - 164 , - 411 , - 878 , - 685 , - 712 , - 79 , - 546 , - 353 , - 380 , - 627 , - 214 , - 21 , - 48 , - 295 , - 762 , - 569 , - 596 , - 843 , - 430 , - 237 , - 264 , - 511 , - 98 , - 785 , - 812 , - 179 , - 646 , - 453 , - 480 , - 727 , - 314 , - 121 , - 148 , - 395 , - 862 , - 669 , - 696 , - 63 , - 530 , - 337 , - 364 , - 611 , - 198 , - 5 , - 32 , - 279 , - 746 , - 553 , - 580 , - 827 , - 414 , - 221 , - 248 , - 495 , - 82 , - 769 , - 796 , - 163 , - 630 , - 437 , - 464 , - 711 , - 298 , - 105 , - 132 , - 379 , - 846 , - 653 , - 680 , - 47 , - 514 , - 321 , - 348 , - 595 , - 182 , - 869 , - 16 , - 263 , - 730 , - 537 , - 564 , - 811 , - 398 , - 205 , - 232 , - 479 , - 66 , - 753 , - 780 , - 147 , - 614 , - 421 , - 448 , - 695 , - 282 , - 89 , - 116 , - 363 , - 830 , - 637 , - 664 , - 31 , - 498 , - 305 , - 332 , - 579 , - 166 , - 853 , - 0 , - 327 , - 878 , - 757 , - 860 , - 291 , - 842 , - 721 , - 824 , - 255 , - 806 , - 685 , - 788 , - 219 , - 770 , - 649 , - 752 , - 183 , - 734 , - 613 , - 716 , - 147 , - 698 , - 577 , - 680 , - 111 , - 662 , - 541 , - 644 , - 75 , - 626 , - 505 , - 608 , - 39 , - 590 , - 469 , - 572 , - 3 , - 554 , - 433 , - 536 , - 863 , - 518 , - 397 , - 500 , - 827 , - 482 , - 361 , - 464 , - 791 , - 446 , - 325 , - 428 , - 755 , - 410 , - 289 , - 392 , - 719 , - 374 , - 253 , - 356 , - 683 , - 338 , - 217 , - 320 , - 647 , - 302 , - 181 , - 284 , - 611 , - 266 , - 145 , - 248 , - 575 , - 230 , - 109 , - 212 , - 539 , - 194 , - 73 , - 176 , - 503 , - 158 , - 37 , - 140 , - 467 , - 122 , - 1 , - 104 , - 431 , - 86 , - 861 , - 68 , - 395 , - 50 , - 825 , - 32 , - 359 , - 14 , - 789 , - 892 , - 323 , - 874 , - 753 , - 856 , - 287 , - 838 , - 717 , - 820 , - 251 , - 802 , - 681 , - 784 , - 215 , - 766 , - 645 , - 748 , - 179 , - 730 , - 609 , - 712 , - 143 , - 694 , - 573 , - 676 , - 107 , - 658 , - 537 , - 640 , - 71 , - 622 , - 501 , - 604 , - 35 , - 586 , - 465 , - 568 , - 895 , - 550 , - 429 , - 532 , - 859 , - 514 , - 393 , - 496 , - 823 , - 478 , - 357 , - 460 , - 787 , - 442 , - 321 , - 424 , - 751 , - 406 , - 285 , - 388 , - 715 , - 370 , - 249 , - 352 , - 679 , - 334 , - 213 , - 316 , - 643 , - 298 , - 177 , - 280 , - 607 , - 262 , - 141 , - 244 , - 571 , - 226 , - 105 , - 208 , - 535 , - 190 , - 69 , - 172 , - 499 , - 154 , - 33 , - 136 , - 463 , - 118 , - 893 , - 100 , - 427 , - 82 , - 857 , - 64 , - 391 , - 46 , - 821 , - 28 , - 355 , - 10 , - 785 , - 888 , - 319 , - 870 , - 749 , - 852 , - 283 , - 834 , - 713 , - 816 , - 247 , - 798 , - 677 , - 780 , - 211 , - 762 , - 641 , - 744 , - 175 , - 726 , - 605 , - 708 , - 139 , - 690 , - 569 , - 672 , - 103 , - 654 , - 533 , - 636 , - 67 , - 618 , - 497 , - 600 , - 31 , - 582 , - 461 , - 564 , - 891 , - 546 , - 425 , - 528 , - 855 , - 510 , - 389 , - 492 , - 819 , - 474 , - 353 , - 456 , - 783 , - 438 , - 317 , - 420 , - 747 , - 402 , - 281 , - 384 , - 711 , - 366 , - 245 , - 348 , - 675 , - 330 , - 209 , - 312 , - 639 , - 294 , - 173 , - 276 , - 603 , - 258 , - 137 , - 240 , - 567 , - 222 , - 101 , - 204 , - 531 , - 186 , - 65 , - 168 , - 495 , - 150 , - 29 , - 132 , - 459 , - 114 , - 889 , - 96 , - 423 , - 78 , - 853 , - 60 , - 387 , - 42 , - 817 , - 24 , - 351 , - 6 , - 781 , - 884 , - 315 , - 866 , - 745 , - 848 , - 279 , - 830 , - 709 , - 812 , - 243 , - 794 , - 673 , - 776 , - 207 , - 758 , - 637 , - 740 , - 171 , - 722 , - 601 , - 704 , - 135 , - 686 , - 565 , - 668 , - 99 , - 650 , - 529 , - 632 , - 63 , - 614 , - 493 , - 596 , - 27 , - 578 , - 457 , - 560 , - 887 , - 542 , - 421 , - 524 , - 851 , - 506 , - 385 , - 488 , - 815 , - 470 , - 349 , - 452 , - 779 , - 434 , - 313 , - 416 , - 743 , - 398 , - 277 , - 380 , - 707 , - 362 , - 241 , - 344 , - 671 , - 326 , - 205 , - 308 , - 635 , - 290 , - 169 , - 272 , - 599 , - 254 , - 133 , - 236 , - 563 , - 218 , - 97 , - 200 , - 527 , - 182 , - 61 , - 164 , - 491 , - 146 , - 25 , - 128 , - 455 , - 110 , - 885 , - 92 , - 419 , - 74 , - 849 , - 56 , - 383 , - 38 , - 813 , - 20 , - 347 , - 2 , - 777 , - 880 , - 311 , - 862 , - 741 , - 844 , - 275 , - 826 , - 705 , - 808 , - 239 , - 790 , - 669 , - 772 , - 203 , - 754 , - 633 , - 736 , - 167 , - 718 , - 597 , - 700 , - 131 , - 682 , - 561 , - 664 , - 95 , - 646 , - 525 , - 628 , - 59 , - 610 , - 489 , - 592 , - 23 , - 574 , - 453 , - 556 , - 883 , - 538 , - 417 , - 520 , - 847 , - 502 , - 381 , - 484 , - 811 , - 466 , - 345 , - 448 , - 775 , - 430 , - 309 , - 412 , - 739 , - 394 , - 273 , - 376 , - 703 , - 358 , - 237 , - 340 , - 667 , - 322 , - 201 , - 304 , - 631 , - 286 , - 165 , - 268 , - 595 , - 250 , - 129 , - 232 , - 559 , - 214 , - 93 , - 196 , - 523 , - 178 , - 57 , - 160 , - 487 , - 142 , - 21 , - 124 , - 451 , - 106 , - 881 , - 88 , - 415 , - 70 , - 845 , - 52 , - 379 , - 34 , - 809 , - 16 , - 343 , - 894 , - 773 , - 876 , - 307 , - 858 , - 737 , - 840 , - 271 , - 822 , - 701 , - 804 , - 235 , - 786 , - 665 , - 768 , - 199 , - 750 , - 629 , - 732 , - 163 , - 714 , - 593 , - 696 , - 127 , - 678 , - 557 , - 660 , - 91 , - 642 , - 521 , - 624 , - 55 , - 606 , - 485 , - 588 , - 19 , - 570 , - 449 , - 552 , - 879 , - 534 , - 413 , - 516 , - 843 , - 498 , - 377 , - 480 , - 807 , - 462 , - 341 , - 444 , - 771 , - 426 , - 305 , - 408 , - 735 , - 390 , - 269 , - 372 , - 699 , - 354 , - 233 , - 336 , - 663 , - 318 , - 197 , - 300 , - 627 , - 282 , - 161 , - 264 , - 591 , - 246 , - 125 , - 228 , - 555 , - 210 , - 89 , - 192 , - 519 , - 174 , - 53 , - 156 , - 483 , - 138 , - 17 , - 120 , - 447 , - 102 , - 877 , - 84 , - 411 , - 66 , - 841 , - 48 , - 375 , - 30 , - 805 , - 12 , - 339 , - 890 , - 769 , - 872 , - 303 , - 854 , - 733 , - 836 , - 267 , - 818 , - 697 , - 800 , - 231 , - 782 , - 661 , - 764 , - 195 , - 746 , - 625 , - 728 , - 159 , - 710 , - 589 , - 692 , - 123 , - 674 , - 553 , - 656 , - 87 , - 638 , - 517 , - 620 , - 51 , - 602 , - 481 , - 584 , - 15 , - 566 , - 445 , - 548 , - 875 , - 530 , - 409 , - 512 , - 839 , - 494 , - 373 , - 476 , - 803 , - 458 , - 337 , - 440 , - 767 , - 422 , - 301 , - 404 , - 731 , - 386 , - 265 , - 368 , - 695 , - 350 , - 229 , - 332 , - 659 , - 314 , - 193 , - 296 , - 623 , - 278 , - 157 , - 260 , - 587 , - 242 , - 121 , - 224 , - 551 , - 206 , - 85 , - 188 , - 515 , - 170 , - 49 , - 152 , - 479 , - 134 , - 13 , - 116 , - 443 , - 98 , - 873 , - 80 , - 407 , - 62 , - 837 , - 44 , - 371 , - 26 , - 801 , - 8 , - 335 , - 886 , - 765 , - 868 , - 299 , - 850 , - 729 , - 832 , - 263 , - 814 , - 693 , - 796 , - 227 , - 778 , - 657 , - 760 , - 191 , - 742 , - 621 , - 724 , - 155 , - 706 , - 585 , - 688 , - 119 , - 670 , - 549 , - 652 , - 83 , - 634 , - 513 , - 616 , - 47 , - 598 , - 477 , - 580 , - 11 , - 562 , - 441 , - 544 , - 871 , - 526 , - 405 , - 508 , - 835 , - 490 , - 369 , - 472 , - 799 , - 454 , - 333 , - 436 , - 763 , - 418 , - 297 , - 400 , - 727 , - 382 , - 261 , - 364 , - 691 , - 346 , - 225 , - 328 , - 655 , - 310 , - 189 , - 292 , - 619 , - 274 , - 153 , - 256 , - 583 , - 238 , - 117 , - 220 , - 547 , - 202 , - 81 , - 184 , - 511 , - 166 , - 45 , - 148 , - 475 , - 130 , - 9 , - 112 , - 439 , - 94 , - 869 , - 76 , - 403 , - 58 , - 833 , - 40 , - 367 , - 22 , - 797 , - 4 , - 331 , - 882 , - 761 , - 864 , - 295 , - 846 , - 725 , - 828 , - 259 , - 810 , - 689 , - 792 , - 223 , - 774 , - 653 , - 756 , - 187 , - 738 , - 617 , - 720 , - 151 , - 702 , - 581 , - 684 , - 115 , - 666 , - 545 , - 648 , - 79 , - 630 , - 509 , - 612 , - 43 , - 594 , - 473 , - 576 , - 7 , - 558 , - 437 , - 540 , - 867 , - 522 , - 401 , - 504 , - 831 , - 486 , - 365 , - 468 , - 795 , - 450 , - 329 , - 432 , - 759 , - 414 , - 293 , - 396 , - 723 , - 378 , - 257 , - 360 , - 687 , - 342 , - 221 , - 324 , - 651 , - 306 , - 185 , - 288 , - 615 , - 270 , - 149 , - 252 , - 579 , - 234 , - 113 , - 216 , - 543 , - 198 , - 77 , - 180 , - 507 , - 162 , - 41 , - 144 , - 471 , - 126 , - 5 , - 108 , - 435 , - 90 , - 865 , - 72 , - 399 , - 54 , - 829 , - 36 , - 363 , - 18 , - 793 , - 0 , - 143 , - 514 , - 201 , - 116 , - 259 , - 630 , - 317 , - 232 , - 375 , - 746 , - 433 , - 348 , - 491 , - 862 , - 549 , - 464 , - 607 , - 66 , - 665 , - 580 , - 723 , - 182 , - 781 , - 696 , - 839 , - 298 , - 897 , - 812 , - 43 , - 414 , - 101 , - 16 , - 159 , - 530 , - 217 , - 132 , - 275 , - 646 , - 333 , - 248 , - 391 , - 762 , - 449 , - 364 , - 507 , - 878 , - 565 , - 480 , - 623 , - 82 , - 681 , - 596 , - 739 , - 198 , - 797 , - 712 , - 855 , - 314 , - 1 , - 828 , - 59 , - 430 , - 117 , - 32 , - 175 , - 546 , - 233 , - 148 , - 291 , - 662 , - 349 , - 264 , - 407 , - 778 , - 465 , - 380 , - 523 , - 894 , - 581 , - 496 , - 639 , - 98 , - 697 , - 612 , - 755 , - 214 , - 813 , - 728 , - 871 , - 330 , - 17 , - 844 , - 75 , - 446 , - 133 , - 48 , - 191 , - 562 , - 249 , - 164 , - 307 , - 678 , - 365 , - 280 , - 423 , - 794 , - 481 , - 396 , - 539 , - 910 , - 597 , - 512 , - 655 , - 114 , - 713 , - 628 , - 771 , - 230 , - 829 , - 744 , - 887 , - 346 , - 33 , - 860 , - 91 , - 462 , - 149 , - 64 , - 207 , - 578 , - 265 , - 180 , - 323 , - 694 , - 381 , - 296 , - 439 , - 810 , - 497 , - 412 , - 555 , - 14 , - 613 , - 528 , - 671 , - 130 , - 729 , - 644 , - 787 , - 246 , - 845 , - 760 , - 903 , - 362 , - 49 , - 876 , - 107 , - 478 , - 165 , - 80 , - 223 , - 594 , - 281 , - 196 , - 339 , - 710 , - 397 , - 312 , - 455 , - 826 , - 513 , - 428 , - 571 , - 30 , - 629 , - 544 , - 687 , - 146 , - 745 , - 660 , - 803 , - 262 , - 861 , - 776 , - 7 , - 378 , - 65 , - 892 , - 123 , - 494 , - 181 , - 96 , - 239 , - 610 , - 297 , - 212 , - 355 , - 726 , - 413 , - 328 , - 471 , - 842 , - 529 , - 444 , - 587 , - 46 , - 645 , - 560 , - 703 , - 162 , - 761 , - 676 , - 819 , - 278 , - 877 , - 792 , - 23 , - 394 , - 81 , - 908 , - 139 , - 510 , - 197 , - 112 , - 255 , - 626 , - 313 , - 228 , - 371 , - 742 , - 429 , - 344 , - 487 , - 858 , - 545 , - 460 , - 603 , - 62 , - 661 , - 576 , - 719 , - 178 , - 777 , - 692 , - 835 , - 294 , - 893 , - 808 , - 39 , - 410 , - 97 , - 12 , - 155 , - 526 , - 213 , - 128 , - 271 , - 642 , - 329 , - 244 , - 387 , - 758 , - 445 , - 360 , - 503 , - 874 , - 561 , - 476 , - 619 , - 78 , - 677 , - 592 , - 735 , - 194 , - 793 , - 708 , - 851 , - 310 , - 909 , - 824 , - 55 , - 426 , - 113 , - 28 , - 171 , - 542 , - 229 , - 144 , - 287 , - 658 , - 345 , - 260 , - 403 , - 774 , - 461 , - 376 , - 519 , - 890 , - 577 , - 492 , - 635 , - 94 , - 693 , - 608 , - 751 , - 210 , - 809 , - 724 , - 867 , - 326 , - 13 , - 840 , - 71 , - 442 , - 129 , - 44 , - 187 , - 558 , - 245 , - 160 , - 303 , - 674 , - 361 , - 276 , - 419 , - 790 , - 477 , - 392 , - 535 , - 906 , - 593 , - 508 , - 651 , - 110 , - 709 , - 624 , - 767 , - 226 , - 825 , - 740 , - 883 , - 342 , - 29 , - 856 , - 87 , - 458 , - 145 , - 60 , - 203 , - 574 , - 261 , - 176 , - 319 , - 690 , - 377 , - 292 , - 435 , - 806 , - 493 , - 408 , - 551 , - 10 , - 609 , - 524 , - 667 , - 126 , - 725 , - 640 , - 783 , - 242 , - 841 , - 756 , - 899 , - 358 , - 45 , - 872 , - 103 , - 474 , - 161 , - 76 , - 219 , - 590 , - 277 , - 192 , - 335 , - 706 , - 393 , - 308 , - 451 , - 822 , - 509 , - 424 , - 567 , - 26 , - 625 , - 540 , - 683 , - 142 , - 741 , - 656 , - 799 , - 258 , - 857 , - 772 , - 3 , - 374 , - 61 , - 888 , - 119 , - 490 , - 177 , - 92 , - 235 , - 606 , - 293 , - 208 , - 351 , - 722 , - 409 , - 324 , - 467 , - 838 , - 525 , - 440 , - 583 , - 42 , - 641 , - 556 , - 699 , - 158 , - 757 , - 672 , - 815 , - 274 , - 873 , - 788 , - 19 , - 390 , - 77 , - 904 , - 135 , - 506 , - 193 , - 108 , - 251 , - 622 , - 309 , - 224 , - 367 , - 738 , - 425 , - 340 , - 483 , - 854 , - 541 , - 456 , - 599 , - 58 , - 657 , - 572 , - 715 , - 174 , - 773 , - 688 , - 831 , - 290 , - 889 , - 804 , - 35 , - 406 , - 93 , - 8 , - 151 , - 522 , - 209 , - 124 , - 267 , - 638 , - 325 , - 240 , - 383 , - 754 , - 441 , - 356 , - 499 , - 870 , - 557 , - 472 , - 615 , - 74 , - 673 , - 588 , - 731 , - 190 , - 789 , - 704 , - 847 , - 306 , - 905 , - 820 , - 51 , - 422 , - 109 , - 24 , - 167 , - 538 , - 225 , - 140 , - 283 , - 654 , - 341 , - 256 , - 399 , - 770 , - 457 , - 372 , - 515 , - 886 , - 573 , - 488 , - 631 , - 90 , - 689 , - 604 , - 747 , - 206 , - 805 , - 720 , - 863 , - 322 , - 9 , - 836 , - 67 , - 438 , - 125 , - 40 , - 183 , - 554 , - 241 , - 156 , - 299 , - 670 , - 357 , - 272 , - 415 , - 786 , - 473 , - 388 , - 531 , - 902 , - 589 , - 504 , - 647 , - 106 , - 705 , - 620 , - 763 , - 222 , - 821 , - 736 , - 879 , - 338 , - 25 , - 852 , - 83 , - 454 , - 141 , - 56 , - 199 , - 570 , - 257 , - 172 , - 315 , - 686 , - 373 , - 288 , - 431 , - 802 , - 489 , - 404 , - 547 , - 6 , - 605 , - 520 , - 663 , - 122 , - 721 , - 636 , - 779 , - 238 , - 837 , - 752 , - 895 , - 354 , - 41 , - 868 , - 99 , - 470 , - 157 , - 72 , - 215 , - 586 , - 273 , - 188 , - 331 , - 702 , - 389 , - 304 , - 447 , - 818 , - 505 , - 420 , - 563 , - 22 , - 621 , - 536 , - 679 , - 138 , - 737 , - 652 , - 795 , - 254 , - 853 , - 768 , - 911 , - 370 , - 57 , - 884 , - 115 , - 486 , - 173 , - 88 , - 231 , - 602 , - 289 , - 204 , - 347 , - 718 , - 405 , - 320 , - 463 , - 834 , - 521 , - 436 , - 579 , - 38 , - 637 , - 552 , - 695 , - 154 , - 753 , - 668 , - 811 , - 270 , - 869 , - 784 , - 15 , - 386 , - 73 , - 900 , - 131 , - 502 , - 189 , - 104 , - 247 , - 618 , - 305 , - 220 , - 363 , - 734 , - 421 , - 336 , - 479 , - 850 , - 537 , - 452 , - 595 , - 54 , - 653 , - 568 , - 711 , - 170 , - 769 , - 684 , - 827 , - 286 , - 885 , - 800 , - 31 , - 402 , - 89 , - 4 , - 147 , - 518 , - 205 , - 120 , - 263 , - 634 , - 321 , - 236 , - 379 , - 750 , - 437 , - 352 , - 495 , - 866 , - 553 , - 468 , - 611 , - 70 , - 669 , - 584 , - 727 , - 186 , - 785 , - 700 , - 843 , - 302 , - 901 , - 816 , - 47 , - 418 , - 105 , - 20 , - 163 , - 534 , - 221 , - 136 , - 279 , - 650 , - 337 , - 252 , - 395 , - 766 , - 453 , - 368 , - 511 , - 882 , - 569 , - 484 , - 627 , - 86 , - 685 , - 600 , - 743 , - 202 , - 801 , - 716 , - 859 , - 318 , - 5 , - 832 , - 63 , - 434 , - 121 , - 36 , - 179 , - 550 , - 237 , - 152 , - 295 , - 666 , - 353 , - 268 , - 411 , - 782 , - 469 , - 384 , - 527 , - 898 , - 585 , - 500 , - 643 , - 102 , - 701 , - 616 , - 759 , - 218 , - 817 , - 732 , - 875 , - 334 , - 21 , - 848 , - 79 , - 450 , - 137 , - 52 , - 195 , - 566 , - 253 , - 168 , - 311 , - 682 , - 369 , - 284 , - 427 , - 798 , - 485 , - 400 , - 543 , - 2 , - 601 , - 516 , - 659 , - 118 , - 717 , - 632 , - 775 , - 234 , - 833 , - 748 , - 891 , - 350 , - 37 , - 864 , - 95 , - 466 , - 153 , - 68 , - 211 , - 582 , - 269 , - 184 , - 327 , - 698 , - 385 , - 300 , - 443 , - 814 , - 501 , - 416 , - 559 , - 18 , - 617 , - 532 , - 675 , - 134 , - 733 , - 648 , - 791 , - 250 , - 849 , - 764 , - 907 , - 366 , - 53 , - 880 , - 111 , - 482 , - 169 , - 84 , - 227 , - 598 , - 285 , - 200 , - 343 , - 714 , - 401 , - 316 , - 459 , - 830 , - 517 , - 432 , - 575 , - 34 , - 633 , - 548 , - 691 , - 150 , - 749 , - 664 , - 807 , - 266 , - 865 , - 780 , - 11 , - 382 , - 69 , - 896 , - 127 , - 498 , - 185 , - 100 , - 243 , - 614 , - 301 , - 216 , - 359 , - 730 , - 417 , - 332 , - 475 , - 846 , - 533 , - 448 , - 591 , - 50 , - 649 , - 564 , - 707 , - 166 , - 765 , - 680 , - 823 , - 282 , - 881 , - 796 , - 27 , - 398 , - 85 , - 0 , - 73 , - 262 , - 567 , - 60 , - 597 , - 322 , - 163 , - 120 , - 193 , - 382 , - 687 , - 180 , - 717 , - 442 , - 283 , - 240 , - 313 , - 502 , - 807 , - 300 , - 837 , - 562 , - 403 , - 360 , - 433 , - 622 , - 927 , - 420 , - 29 , - 682 , - 523 , - 480 , - 553 , - 742 , - 119 , - 540 , - 149 , - 802 , - 643 , - 600 , - 673 , - 862 , - 239 , - 660 , - 269 , - 922 , - 763 , - 720 , - 793 , - 54 , - 359 , - 780 , - 389 , - 114 , - 883 , - 840 , - 913 , - 174 , - 479 , - 900 , - 509 , - 234 , - 75 , - 32 , - 105 , - 294 , - 599 , - 92 , - 629 , - 354 , - 195 , - 152 , - 225 , - 414 , - 719 , - 212 , - 749 , - 474 , - 315 , - 272 , - 345 , - 534 , - 839 , - 332 , - 869 , - 594 , - 435 , - 392 , - 465 , - 654 , - 31 , - 452 , - 61 , - 714 , - 555 , - 512 , - 585 , - 774 , - 151 , - 572 , - 181 , - 834 , - 675 , - 632 , - 705 , - 894 , - 271 , - 692 , - 301 , - 26 , - 795 , - 752 , - 825 , - 86 , - 391 , - 812 , - 421 , - 146 , - 915 , - 872 , - 17 , - 206 , - 511 , - 4 , - 541 , - 266 , - 107 , - 64 , - 137 , - 326 , - 631 , - 124 , - 661 , - 386 , - 227 , - 184 , - 257 , - 446 , - 751 , - 244 , - 781 , - 506 , - 347 , - 304 , - 377 , - 566 , - 871 , - 364 , - 901 , - 626 , - 467 , - 424 , - 497 , - 686 , - 63 , - 484 , - 93 , - 746 , - 587 , - 544 , - 617 , - 806 , - 183 , - 604 , - 213 , - 866 , - 707 , - 664 , - 737 , - 926 , - 303 , - 724 , - 333 , - 58 , - 827 , - 784 , - 857 , - 118 , - 423 , - 844 , - 453 , - 178 , - 19 , - 904 , - 49 , - 238 , - 543 , - 36 , - 573 , - 298 , - 139 , - 96 , - 169 , - 358 , - 663 , - 156 , - 693 , - 418 , - 259 , - 216 , - 289 , - 478 , - 783 , - 276 , - 813 , - 538 , - 379 , - 336 , - 409 , - 598 , - 903 , - 396 , - 5 , - 658 , - 499 , - 456 , - 529 , - 718 , - 95 , - 516 , - 125 , - 778 , - 619 , - 576 , - 649 , - 838 , - 215 , - 636 , - 245 , - 898 , - 739 , - 696 , - 769 , - 30 , - 335 , - 756 , - 365 , - 90 , - 859 , - 816 , - 889 , - 150 , - 455 , - 876 , - 485 , - 210 , - 51 , - 8 , - 81 , - 270 , - 575 , - 68 , - 605 , - 330 , - 171 , - 128 , - 201 , - 390 , - 695 , - 188 , - 725 , - 450 , - 291 , - 248 , - 321 , - 510 , - 815 , - 308 , - 845 , - 570 , - 411 , - 368 , - 441 , - 630 , - 7 , - 428 , - 37 , - 690 , - 531 , - 488 , - 561 , - 750 , - 127 , - 548 , - 157 , - 810 , - 651 , - 608 , - 681 , - 870 , - 247 , - 668 , - 277 , - 2 , - 771 , - 728 , - 801 , - 62 , - 367 , - 788 , - 397 , - 122 , - 891 , - 848 , - 921 , - 182 , - 487 , - 908 , - 517 , - 242 , - 83 , - 40 , - 113 , - 302 , - 607 , - 100 , - 637 , - 362 , - 203 , - 160 , - 233 , - 422 , - 727 , - 220 , - 757 , - 482 , - 323 , - 280 , - 353 , - 542 , - 847 , - 340 , - 877 , - 602 , - 443 , - 400 , - 473 , - 662 , - 39 , - 460 , - 69 , - 722 , - 563 , - 520 , - 593 , - 782 , - 159 , - 580 , - 189 , - 842 , - 683 , - 640 , - 713 , - 902 , - 279 , - 700 , - 309 , - 34 , - 803 , - 760 , - 833 , - 94 , - 399 , - 820 , - 429 , - 154 , - 923 , - 880 , - 25 , - 214 , - 519 , - 12 , - 549 , - 274 , - 115 , - 72 , - 145 , - 334 , - 639 , - 132 , - 669 , - 394 , - 235 , - 192 , - 265 , - 454 , - 759 , - 252 , - 789 , - 514 , - 355 , - 312 , - 385 , - 574 , - 879 , - 372 , - 909 , - 634 , - 475 , - 432 , - 505 , - 694 , - 71 , - 492 , - 101 , - 754 , - 595 , - 552 , - 625 , - 814 , - 191 , - 612 , - 221 , - 874 , - 715 , - 672 , - 745 , - 6 , - 311 , - 732 , - 341 , - 66 , - 835 , - 792 , - 865 , - 126 , - 431 , - 852 , - 461 , - 186 , - 27 , - 912 , - 57 , - 246 , - 551 , - 44 , - 581 , - 306 , - 147 , - 104 , - 177 , - 366 , - 671 , - 164 , - 701 , - 426 , - 267 , - 224 , - 297 , - 486 , - 791 , - 284 , - 821 , - 546 , - 387 , - 344 , - 417 , - 606 , - 911 , - 404 , - 13 , - 666 , - 507 , - 464 , - 537 , - 726 , - 103 , - 524 , - 133 , - 786 , - 627 , - 584 , - 657 , - 846 , - 223 , - 644 , - 253 , - 906 , - 747 , - 704 , - 777 , - 38 , - 343 , - 764 , - 373 , - 98 , - 867 , - 824 , - 897 , - 158 , - 463 , - 884 , - 493 , - 218 , - 59 , - 16 , - 89 , - 278 , - 583 , - 76 , - 613 , - 338 , - 179 , - 136 , - 209 , - 398 , - 703 , - 196 , - 733 , - 458 , - 299 , - 256 , - 329 , - 518 , - 823 , - 316 , - 853 , - 578 , - 419 , - 376 , - 449 , - 638 , - 15 , - 436 , - 45 , - 698 , - 539 , - 496 , - 569 , - 758 , - 135 , - 556 , - 165 , - 818 , - 659 , - 616 , - 689 , - 878 , - 255 , - 676 , - 285 , - 10 , - 779 , - 736 , - 809 , - 70 , - 375 , - 796 , - 405 , - 130 , - 899 , - 856 , - 1 , - 190 , - 495 , - 916 , - 525 , - 250 , - 91 , - 48 , - 121 , - 310 , - 615 , - 108 , - 645 , - 370 , - 211 , - 168 , - 241 , - 430 , - 735 , - 228 , - 765 , - 490 , - 331 , - 288 , - 361 , - 550 , - 855 , - 348 , - 885 , - 610 , - 451 , - 408 , - 481 , - 670 , - 47 , - 468 , - 77 , - 730 , - 571 , - 528 , - 601 , - 790 , - 167 , - 588 , - 197 , - 850 , - 691 , - 648 , - 721 , - 910 , - 287 , - 708 , - 317 , - 42 , - 811 , - 768 , - 841 , - 102 , - 407 , - 828 , - 437 , - 162 , - 3 , - 888 , - 33 , - 222 , - 527 , - 20 , - 557 , - 282 , - 123 , - 80 , - 153 , - 342 , - 647 , - 140 , - 677 , - 402 , - 243 , - 200 , - 273 , - 462 , - 767 , - 260 , - 797 , - 522 , - 363 , - 320 , - 393 , - 582 , - 887 , - 380 , - 917 , - 642 , - 483 , - 440 , - 513 , - 702 , - 79 , - 500 , - 109 , - 762 , - 603 , - 560 , - 633 , - 822 , - 199 , - 620 , - 229 , - 882 , - 723 , - 680 , - 753 , - 14 , - 319 , - 740 , - 349 , - 74 , - 843 , - 800 , - 873 , - 134 , - 439 , - 860 , - 469 , - 194 , - 35 , - 920 , - 65 , - 254 , - 559 , - 52 , - 589 , - 314 , - 155 , - 112 , - 185 , - 374 , - 679 , - 172 , - 709 , - 434 , - 275 , - 232 , - 305 , - 494 , - 799 , - 292 , - 829 , - 554 , - 395 , - 352 , - 425 , - 614 , - 919 , - 412 , - 21 , - 674 , - 515 , - 472 , - 545 , - 734 , - 111 , - 532 , - 141 , - 794 , - 635 , - 592 , - 665 , - 854 , - 231 , - 652 , - 261 , - 914 , - 755 , - 712 , - 785 , - 46 , - 351 , - 772 , - 381 , - 106 , - 875 , - 832 , - 905 , - 166 , - 471 , - 892 , - 501 , - 226 , - 67 , - 24 , - 97 , - 286 , - 591 , - 84 , - 621 , - 346 , - 187 , - 144 , - 217 , - 406 , - 711 , - 204 , - 741 , - 466 , - 307 , - 264 , - 337 , - 526 , - 831 , - 324 , - 861 , - 586 , - 427 , - 384 , - 457 , - 646 , - 23 , - 444 , - 53 , - 706 , - 547 , - 504 , - 577 , - 766 , - 143 , - 564 , - 173 , - 826 , - 667 , - 624 , - 697 , - 886 , - 263 , - 684 , - 293 , - 18 , - 787 , - 744 , - 817 , - 78 , - 383 , - 804 , - 413 , - 138 , - 907 , - 864 , - 9 , - 198 , - 503 , - 924 , - 533 , - 258 , - 99 , - 56 , - 129 , - 318 , - 623 , - 116 , - 653 , - 378 , - 219 , - 176 , - 249 , - 438 , - 743 , - 236 , - 773 , - 498 , - 339 , - 296 , - 369 , - 558 , - 863 , - 356 , - 893 , - 618 , - 459 , - 416 , - 489 , - 678 , - 55 , - 476 , - 85 , - 738 , - 579 , - 536 , - 609 , - 798 , - 175 , - 596 , - 205 , - 858 , - 699 , - 656 , - 729 , - 918 , - 295 , - 716 , - 325 , - 50 , - 819 , - 776 , - 849 , - 110 , - 415 , - 836 , - 445 , - 170 , - 11 , - 896 , - 41 , - 230 , - 535 , - 28 , - 565 , - 290 , - 131 , - 88 , - 161 , - 350 , - 655 , - 148 , - 685 , - 410 , - 251 , - 208 , - 281 , - 470 , - 775 , - 268 , - 805 , - 530 , - 371 , - 328 , - 401 , - 590 , - 895 , - 388 , - 925 , - 650 , - 491 , - 448 , - 521 , - 710 , - 87 , - 508 , - 117 , - 770 , - 611 , - 568 , - 641 , - 830 , - 207 , - 628 , - 237 , - 890 , - 731 , - 688 , - 761 , - 22 , - 327 , - 748 , - 357 , - 82 , - 851 , - 808 , - 881 , - 142 , - 447 , - 868 , - 477 , - 202 , - 43 , - 0 , - 265 , - 766 , - 559 , - 588 , - 853 , - 410 , - 203 , - 232 , - 497 , - 54 , - 791 , - 820 , - 141 , - 642 , - 435 , - 464 , - 729 , - 286 , - 79 , - 108 , - 373 , - 874 , - 667 , - 696 , - 17 , - 518 , - 311 , - 340 , - 605 , - 162 , - 899 , - 928 , - 249 , - 750 , - 543 , - 572 , - 837 , - 394 , - 187 , - 216 , - 481 , - 38 , - 775 , - 804 , - 125 , - 626 , - 419 , - 448 , - 713 , - 270 , - 63 , - 92 , - 357 , - 858 , - 651 , - 680 , - 1 , - 502 , - 295 , - 324 , - 589 , - 146 , - 883 , - 912 , - 233 , - 734 , - 527 , - 556 , - 821 , - 378 , - 171 , - 200 , - 465 , - 22 , - 759 , - 788 , - 109 , - 610 , - 403 , - 432 , - 697 , - 254 , - 47 , - 76 , - 341 , - 842 , - 635 , - 664 , - 929 , - 486 , - 279 , - 308 , - 573 , - 130 , - 867 , - 896 , - 217 , - 718 , - 511 , - 540 , - 805 , - 362 , - 155 , - 184 , - 449 , - 6 , - 743 , - 772 , - 93 , - 594 , - 387 , - 416 , - 681 , - 238 , - 31 , - 60 , - 325 , - 826 , - 619 , - 648 , - 913 , - 470 , - 263 , - 292 , - 557 , - 114 , - 851 , - 880 , - 201 , - 702 , - 495 , - 524 , - 789 , - 346 , - 139 , - 168 , - 433 , - 934 , - 727 , - 756 , - 77 , - 578 , - 371 , - 400 , - 665 , - 222 , - 15 , - 44 , - 309 , - 810 , - 603 , - 632 , - 897 , - 454 , - 247 , - 276 , - 541 , - 98 , - 835 , - 864 , - 185 , - 686 , - 479 , - 508 , - 773 , - 330 , - 123 , - 152 , - 417 , - 918 , - 711 , - 740 , - 61 , - 562 , - 355 , - 384 , - 649 , - 206 , - 943 , - 28 , - 293 , - 794 , - 587 , - 616 , - 881 , - 438 , - 231 , - 260 , - 525 , - 82 , - 819 , - 848 , - 169 , - 670 , - 463 , - 492 , - 757 , - 314 , - 107 , - 136 , - 401 , - 902 , - 695 , - 724 , - 45 , - 546 , - 339 , - 368 , - 633 , - 190 , - 927 , - 12 , - 277 , - 778 , - 571 , - 600 , - 865 , - 422 , - 215 , - 244 , - 509 , - 66 , - 803 , - 832 , - 153 , - 654 , - 447 , - 476 , - 741 , - 298 , - 91 , - 120 , - 385 , - 886 , - 679 , - 708 , - 29 , - 530 , - 323 , - 352 , - 617 , - 174 , - 911 , - 940 , - 261 , - 762 , - 555 , - 584 , - 849 , - 406 , - 199 , - 228 , - 493 , - 50 , - 787 , - 816 , - 137 , - 638 , - 431 , - 460 , - 725 , - 282 , - 75 , - 104 , - 369 , - 870 , - 663 , - 692 , - 13 , - 514 , - 307 , - 336 , - 601 , - 158 , - 895 , - 924 , - 245 , - 746 , - 539 , - 568 , - 833 , - 390 , - 183 , - 212 , - 477 , - 34 , - 771 , - 800 , - 121 , - 622 , - 415 , - 444 , - 709 , - 266 , - 59 , - 88 , - 353 , - 854 , - 647 , - 676 , - 941 , - 498 , - 291 , - 320 , - 585 , - 142 , - 879 , - 908 , - 229 , - 730 , - 523 , - 552 , - 817 , - 374 , - 167 , - 196 , - 461 , - 18 , - 755 , - 784 , - 105 , - 606 , - 399 , - 428 , - 693 , - 250 , - 43 , - 72 , - 337 , - 838 , - 631 , - 660 , - 925 , - 482 , - 275 , - 304 , - 569 , - 126 , - 863 , - 892 , - 213 , - 714 , - 507 , - 536 , - 801 , - 358 , - 151 , - 180 , - 445 , - 2 , - 739 , - 768 , - 89 , - 590 , - 383 , - 412 , - 677 , - 234 , - 27 , - 56 , - 321 , - 822 , - 615 , - 644 , - 909 , - 466 , - 259 , - 288 , - 553 , - 110 , - 847 , - 876 , - 197 , - 698 , - 491 , - 520 , - 785 , - 342 , - 135 , - 164 , - 429 , - 930 , - 723 , - 752 , - 73 , - 574 , - 367 , - 396 , - 661 , - 218 , - 11 , - 40 , - 305 , - 806 , - 599 , - 628 , - 893 , - 450 , - 243 , - 272 , - 537 , - 94 , - 831 , - 860 , - 181 , - 682 , - 475 , - 504 , - 769 , - 326 , - 119 , - 148 , - 413 , - 914 , - 707 , - 736 , - 57 , - 558 , - 351 , - 380 , - 645 , - 202 , - 939 , - 24 , - 289 , - 790 , - 583 , - 612 , - 877 , - 434 , - 227 , - 256 , - 521 , - 78 , - 815 , - 844 , - 165 , - 666 , - 459 , - 488 , - 753 , - 310 , - 103 , - 132 , - 397 , - 898 , - 691 , - 720 , - 41 , - 542 , - 335 , - 364 , - 629 , - 186 , - 923 , - 8 , - 273 , - 774 , - 567 , - 596 , - 861 , - 418 , - 211 , - 240 , - 505 , - 62 , - 799 , - 828 , - 149 , - 650 , - 443 , - 472 , - 737 , - 294 , - 87 , - 116 , - 381 , - 882 , - 675 , - 704 , - 25 , - 526 , - 319 , - 348 , - 613 , - 170 , - 907 , - 936 , - 257 , - 758 , - 551 , - 580 , - 845 , - 402 , - 195 , - 224 , - 489 , - 46 , - 783 , - 812 , - 133 , - 634 , - 427 , - 456 , - 721 , - 278 , - 71 , - 100 , - 365 , - 866 , - 659 , - 688 , - 9 , - 510 , - 303 , - 332 , - 597 , - 154 , - 891 , - 920 , - 241 , - 742 , - 535 , - 564 , - 829 , - 386 , - 179 , - 208 , - 473 , - 30 , - 767 , - 796 , - 117 , - 618 , - 411 , - 440 , - 705 , - 262 , - 55 , - 84 , - 349 , - 850 , - 643 , - 672 , - 937 , - 494 , - 287 , - 316 , - 581 , - 138 , - 875 , - 904 , - 225 , - 726 , - 519 , - 548 , - 813 , - 370 , - 163 , - 192 , - 457 , - 14 , - 751 , - 780 , - 101 , - 602 , - 395 , - 424 , - 689 , - 246 , - 39 , - 68 , - 333 , - 834 , - 627 , - 656 , - 921 , - 478 , - 271 , - 300 , - 565 , - 122 , - 859 , - 888 , - 209 , - 710 , - 503 , - 532 , - 797 , - 354 , - 147 , - 176 , - 441 , - 942 , - 735 , - 764 , - 85 , - 586 , - 379 , - 408 , - 673 , - 230 , - 23 , - 52 , - 317 , - 818 , - 611 , - 640 , - 905 , - 462 , - 255 , - 284 , - 549 , - 106 , - 843 , - 872 , - 193 , - 694 , - 487 , - 516 , - 781 , - 338 , - 131 , - 160 , - 425 , - 926 , - 719 , - 748 , - 69 , - 570 , - 363 , - 392 , - 657 , - 214 , - 7 , - 36 , - 301 , - 802 , - 595 , - 624 , - 889 , - 446 , - 239 , - 268 , - 533 , - 90 , - 827 , - 856 , - 177 , - 678 , - 471 , - 500 , - 765 , - 322 , - 115 , - 144 , - 409 , - 910 , - 703 , - 732 , - 53 , - 554 , - 347 , - 376 , - 641 , - 198 , - 935 , - 20 , - 285 , - 786 , - 579 , - 608 , - 873 , - 430 , - 223 , - 252 , - 517 , - 74 , - 811 , - 840 , - 161 , - 662 , - 455 , - 484 , - 749 , - 306 , - 99 , - 128 , - 393 , - 894 , - 687 , - 716 , - 37 , - 538 , - 331 , - 360 , - 625 , - 182 , - 919 , - 4 , - 269 , - 770 , - 563 , - 592 , - 857 , - 414 , - 207 , - 236 , - 501 , - 58 , - 795 , - 824 , - 145 , - 646 , - 439 , - 468 , - 733 , - 290 , - 83 , - 112 , - 377 , - 878 , - 671 , - 700 , - 21 , - 522 , - 315 , - 344 , - 609 , - 166 , - 903 , - 932 , - 253 , - 754 , - 547 , - 576 , - 841 , - 398 , - 191 , - 220 , - 485 , - 42 , - 779 , - 808 , - 129 , - 630 , - 423 , - 452 , - 717 , - 274 , - 67 , - 96 , - 361 , - 862 , - 655 , - 684 , - 5 , - 506 , - 299 , - 328 , - 593 , - 150 , - 887 , - 916 , - 237 , - 738 , - 531 , - 560 , - 825 , - 382 , - 175 , - 204 , - 469 , - 26 , - 763 , - 792 , - 113 , - 614 , - 407 , - 436 , - 701 , - 258 , - 51 , - 80 , - 345 , - 846 , - 639 , - 668 , - 933 , - 490 , - 283 , - 312 , - 577 , - 134 , - 871 , - 900 , - 221 , - 722 , - 515 , - 544 , - 809 , - 366 , - 159 , - 188 , - 453 , - 10 , - 747 , - 776 , - 97 , - 598 , - 391 , - 420 , - 685 , - 242 , - 35 , - 64 , - 329 , - 830 , - 623 , - 652 , - 917 , - 474 , - 267 , - 296 , - 561 , - 118 , - 855 , - 884 , - 205 , - 706 , - 499 , - 528 , - 793 , - 350 , - 143 , - 172 , - 437 , - 938 , - 731 , - 760 , - 81 , - 582 , - 375 , - 404 , - 669 , - 226 , - 19 , - 48 , - 313 , - 814 , - 607 , - 636 , - 901 , - 458 , - 251 , - 280 , - 545 , - 102 , - 839 , - 868 , - 189 , - 690 , - 483 , - 512 , - 777 , - 334 , - 127 , - 156 , - 421 , - 922 , - 715 , - 744 , - 65 , - 566 , - 359 , - 388 , - 653 , - 210 , - 3 , - 32 , - 297 , - 798 , - 591 , - 620 , - 885 , - 442 , - 235 , - 264 , - 529 , - 86 , - 823 , - 852 , - 173 , - 674 , - 467 , - 496 , - 761 , - 318 , - 111 , - 140 , - 405 , - 906 , - 699 , - 728 , - 49 , - 550 , - 343 , - 372 , - 637 , - 194 , - 931 , - 16 , - 281 , - 782 , - 575 , - 604 , - 869 , - 426 , - 219 , - 248 , - 513 , - 70 , - 807 , - 836 , - 157 , - 658 , - 451 , - 480 , - 745 , - 302 , - 95 , - 124 , - 389 , - 890 , - 683 , - 712 , - 33 , - 534 , - 327 , - 356 , - 621 , - 178 , - 915 , - 0 , - 89 , - 298 , - 627 , - 116 , - 685 , - 414 , - 263 , - 232 , - 321 , - 530 , - 859 , - 348 , - 917 , - 646 , - 495 , - 464 , - 553 , - 762 , - 131 , - 580 , - 189 , - 878 , - 727 , - 696 , - 785 , - 34 , - 363 , - 812 , - 421 , - 150 , - 959 , - 928 , - 57 , - 266 , - 595 , - 84 , - 653 , - 382 , - 231 , - 200 , - 289 , - 498 , - 827 , - 316 , - 885 , - 614 , - 463 , - 432 , - 521 , - 730 , - 99 , - 548 , - 157 , - 846 , - 695 , - 664 , - 753 , - 2 , - 331 , - 780 , - 389 , - 118 , - 927 , - 896 , - 25 , - 234 , - 563 , - 52 , - 621 , - 350 , - 199 , - 168 , - 257 , - 466 , - 795 , - 284 , - 853 , - 582 , - 431 , - 400 , - 489 , - 698 , - 67 , - 516 , - 125 , - 814 , - 663 , - 632 , - 721 , - 930 , - 299 , - 748 , - 357 , - 86 , - 895 , - 864 , - 953 , - 202 , - 531 , - 20 , - 589 , - 318 , - 167 , - 136 , - 225 , - 434 , - 763 , - 252 , - 821 , - 550 , - 399 , - 368 , - 457 , - 666 , - 35 , - 484 , - 93 , - 782 , - 631 , - 600 , - 689 , - 898 , - 267 , - 716 , - 325 , - 54 , - 863 , - 832 , - 921 , - 170 , - 499 , - 948 , - 557 , - 286 , - 135 , - 104 , - 193 , - 402 , - 731 , - 220 , - 789 , - 518 , - 367 , - 336 , - 425 , - 634 , - 3 , - 452 , - 61 , - 750 , - 599 , - 568 , - 657 , - 866 , - 235 , - 684 , - 293 , - 22 , - 831 , - 800 , - 889 , - 138 , - 467 , - 916 , - 525 , - 254 , - 103 , - 72 , - 161 , - 370 , - 699 , - 188 , - 757 , - 486 , - 335 , - 304 , - 393 , - 602 , - 931 , - 420 , - 29 , - 718 , - 567 , - 536 , - 625 , - 834 , - 203 , - 652 , - 261 , - 950 , - 799 , - 768 , - 857 , - 106 , - 435 , - 884 , - 493 , - 222 , - 71 , - 40 , - 129 , - 338 , - 667 , - 156 , - 725 , - 454 , - 303 , - 272 , - 361 , - 570 , - 899 , - 388 , - 957 , - 686 , - 535 , - 504 , - 593 , - 802 , - 171 , - 620 , - 229 , - 918 , - 767 , - 736 , - 825 , - 74 , - 403 , - 852 , - 461 , - 190 , - 39 , - 8 , - 97 , - 306 , - 635 , - 124 , - 693 , - 422 , - 271 , - 240 , - 329 , - 538 , - 867 , - 356 , - 925 , - 654 , - 503 , - 472 , - 561 , - 770 , - 139 , - 588 , - 197 , - 886 , - 735 , - 704 , - 793 , - 42 , - 371 , - 820 , - 429 , - 158 , - 7 , - 936 , - 65 , - 274 , - 603 , - 92 , - 661 , - 390 , - 239 , - 208 , - 297 , - 506 , - 835 , - 324 , - 893 , - 622 , - 471 , - 440 , - 529 , - 738 , - 107 , - 556 , - 165 , - 854 , - 703 , - 672 , - 761 , - 10 , - 339 , - 788 , - 397 , - 126 , - 935 , - 904 , - 33 , - 242 , - 571 , - 60 , - 629 , - 358 , - 207 , - 176 , - 265 , - 474 , - 803 , - 292 , - 861 , - 590 , - 439 , - 408 , - 497 , - 706 , - 75 , - 524 , - 133 , - 822 , - 671 , - 640 , - 729 , - 938 , - 307 , - 756 , - 365 , - 94 , - 903 , - 872 , - 1 , - 210 , - 539 , - 28 , - 597 , - 326 , - 175 , - 144 , - 233 , - 442 , - 771 , - 260 , - 829 , - 558 , - 407 , - 376 , - 465 , - 674 , - 43 , - 492 , - 101 , - 790 , - 639 , - 608 , - 697 , - 906 , - 275 , - 724 , - 333 , - 62 , - 871 , - 840 , - 929 , - 178 , - 507 , - 956 , - 565 , - 294 , - 143 , - 112 , - 201 , - 410 , - 739 , - 228 , - 797 , - 526 , - 375 , - 344 , - 433 , - 642 , - 11 , - 460 , - 69 , - 758 , - 607 , - 576 , - 665 , - 874 , - 243 , - 692 , - 301 , - 30 , - 839 , - 808 , - 897 , - 146 , - 475 , - 924 , - 533 , - 262 , - 111 , - 80 , - 169 , - 378 , - 707 , - 196 , - 765 , - 494 , - 343 , - 312 , - 401 , - 610 , - 939 , - 428 , - 37 , - 726 , - 575 , - 544 , - 633 , - 842 , - 211 , - 660 , - 269 , - 958 , - 807 , - 776 , - 865 , - 114 , - 443 , - 892 , - 501 , - 230 , - 79 , - 48 , - 137 , - 346 , - 675 , - 164 , - 733 , - 462 , - 311 , - 280 , - 369 , - 578 , - 907 , - 396 , - 5 , - 694 , - 543 , - 512 , - 601 , - 810 , - 179 , - 628 , - 237 , - 926 , - 775 , - 744 , - 833 , - 82 , - 411 , - 860 , - 469 , - 198 , - 47 , - 16 , - 105 , - 314 , - 643 , - 132 , - 701 , - 430 , - 279 , - 248 , - 337 , - 546 , - 875 , - 364 , - 933 , - 662 , - 511 , - 480 , - 569 , - 778 , - 147 , - 596 , - 205 , - 894 , - 743 , - 712 , - 801 , - 50 , - 379 , - 828 , - 437 , - 166 , - 15 , - 944 , - 73 , - 282 , - 611 , - 100 , - 669 , - 398 , - 247 , - 216 , - 305 , - 514 , - 843 , - 332 , - 901 , - 630 , - 479 , - 448 , - 537 , - 746 , - 115 , - 564 , - 173 , - 862 , - 711 , - 680 , - 769 , - 18 , - 347 , - 796 , - 405 , - 134 , - 943 , - 912 , - 41 , - 250 , - 579 , - 68 , - 637 , - 366 , - 215 , - 184 , - 273 , - 482 , - 811 , - 300 , - 869 , - 598 , - 447 , - 416 , - 505 , - 714 , - 83 , - 532 , - 141 , - 830 , - 679 , - 648 , - 737 , - 946 , - 315 , - 764 , - 373 , - 102 , - 911 , - 880 , - 9 , - 218 , - 547 , - 36 , - 605 , - 334 , - 183 , - 152 , - 241 , - 450 , - 779 , - 268 , - 837 , - 566 , - 415 , - 384 , - 473 , - 682 , - 51 , - 500 , - 109 , - 798 , - 647 , - 616 , - 705 , - 914 , - 283 , - 732 , - 341 , - 70 , - 879 , - 848 , - 937 , - 186 , - 515 , - 4 , - 573 , - 302 , - 151 , - 120 , - 209 , - 418 , - 747 , - 236 , - 805 , - 534 , - 383 , - 352 , - 441 , - 650 , - 19 , - 468 , - 77 , - 766 , - 615 , - 584 , - 673 , - 882 , - 251 , - 700 , - 309 , - 38 , - 847 , - 816 , - 905 , - 154 , - 483 , - 932 , - 541 , - 270 , - 119 , - 88 , - 177 , - 386 , - 715 , - 204 , - 773 , - 502 , - 351 , - 320 , - 409 , - 618 , - 947 , - 436 , - 45 , - 734 , - 583 , - 552 , - 641 , - 850 , - 219 , - 668 , - 277 , - 6 , - 815 , - 784 , - 873 , - 122 , - 451 , - 900 , - 509 , - 238 , - 87 , - 56 , - 145 , - 354 , - 683 , - 172 , - 741 , - 470 , - 319 , - 288 , - 377 , - 586 , - 915 , - 404 , - 13 , - 702 , - 551 , - 520 , - 609 , - 818 , - 187 , - 636 , - 245 , - 934 , - 783 , - 752 , - 841 , - 90 , - 419 , - 868 , - 477 , - 206 , - 55 , - 24 , - 113 , - 322 , - 651 , - 140 , - 709 , - 438 , - 287 , - 256 , - 345 , - 554 , - 883 , - 372 , - 941 , - 670 , - 519 , - 488 , - 577 , - 786 , - 155 , - 604 , - 213 , - 902 , - 751 , - 720 , - 809 , - 58 , - 387 , - 836 , - 445 , - 174 , - 23 , - 952 , - 81 , - 290 , - 619 , - 108 , - 677 , - 406 , - 255 , - 224 , - 313 , - 522 , - 851 , - 340 , - 909 , - 638 , - 487 , - 456 , - 545 , - 754 , - 123 , - 572 , - 181 , - 870 , - 719 , - 688 , - 777 , - 26 , - 355 , - 804 , - 413 , - 142 , - 951 , - 920 , - 49 , - 258 , - 587 , - 76 , - 645 , - 374 , - 223 , - 192 , - 281 , - 490 , - 819 , - 308 , - 877 , - 606 , - 455 , - 424 , - 513 , - 722 , - 91 , - 540 , - 149 , - 838 , - 687 , - 656 , - 745 , - 954 , - 323 , - 772 , - 381 , - 110 , - 919 , - 888 , - 17 , - 226 , - 555 , - 44 , - 613 , - 342 , - 191 , - 160 , - 249 , - 458 , - 787 , - 276 , - 845 , - 574 , - 423 , - 392 , - 481 , - 690 , - 59 , - 508 , - 117 , - 806 , - 655 , - 624 , - 713 , - 922 , - 291 , - 740 , - 349 , - 78 , - 887 , - 856 , - 945 , - 194 , - 523 , - 12 , - 581 , - 310 , - 159 , - 128 , - 217 , - 426 , - 755 , - 244 , - 813 , - 542 , - 391 , - 360 , - 449 , - 658 , - 27 , - 476 , - 85 , - 774 , - 623 , - 592 , - 681 , - 890 , - 259 , - 708 , - 317 , - 46 , - 855 , - 824 , - 913 , - 162 , - 491 , - 940 , - 549 , - 278 , - 127 , - 96 , - 185 , - 394 , - 723 , - 212 , - 781 , - 510 , - 359 , - 328 , - 417 , - 626 , - 955 , - 444 , - 53 , - 742 , - 591 , - 560 , - 649 , - 858 , - 227 , - 676 , - 285 , - 14 , - 823 , - 792 , - 881 , - 130 , - 459 , - 908 , - 517 , - 246 , - 95 , - 64 , - 153 , - 362 , - 691 , - 180 , - 749 , - 478 , - 327 , - 296 , - 385 , - 594 , - 923 , - 412 , - 21 , - 710 , - 559 , - 528 , - 617 , - 826 , - 195 , - 644 , - 253 , - 942 , - 791 , - 760 , - 849 , - 98 , - 427 , - 876 , - 485 , - 214 , - 63 , - 32 , - 121 , - 330 , - 659 , - 148 , - 717 , - 446 , - 295 , - 264 , - 353 , - 562 , - 891 , - 380 , - 949 , - 678 , - 527 , - 496 , - 585 , - 794 , - 163 , - 612 , - 221 , - 910 , - 759 , - 728 , - 817 , - 66 , - 395 , - 844 , - 453 , - 182 , - 31 , - 0 , - 181 , - 606 , - 299 , - 236 , - 417 , - 842 , - 535 , - 472 , - 653 , - 102 , - 771 , - 708 , - 889 , - 338 , - 31 , - 944 , - 149 , - 574 , - 267 , - 204 , - 385 , - 810 , - 503 , - 440 , - 621 , - 70 , - 739 , - 676 , - 857 , - 306 , - 975 , - 912 , - 117 , - 542 , - 235 , - 172 , - 353 , - 778 , - 471 , - 408 , - 589 , - 38 , - 707 , - 644 , - 825 , - 274 , - 943 , - 880 , - 85 , - 510 , - 203 , - 140 , - 321 , - 746 , - 439 , - 376 , - 557 , - 6 , - 675 , - 612 , - 793 , - 242 , - 911 , - 848 , - 53 , - 478 , - 171 , - 108 , - 289 , - 714 , - 407 , - 344 , - 525 , - 950 , - 643 , - 580 , - 761 , - 210 , - 879 , - 816 , - 21 , - 446 , - 139 , - 76 , - 257 , - 682 , - 375 , - 312 , - 493 , - 918 , - 611 , - 548 , - 729 , - 178 , - 847 , - 784 , - 965 , - 414 , - 107 , - 44 , - 225 , - 650 , - 343 , - 280 , - 461 , - 886 , - 579 , - 516 , - 697 , - 146 , - 815 , - 752 , - 933 , - 382 , - 75 , - 12 , - 193 , - 618 , - 311 , - 248 , - 429 , - 854 , - 547 , - 484 , - 665 , - 114 , - 783 , - 720 , - 901 , - 350 , - 43 , - 956 , - 161 , - 586 , - 279 , - 216 , - 397 , - 822 , - 515 , - 452 , - 633 , - 82 , - 751 , - 688 , - 869 , - 318 , - 11 , - 924 , - 129 , - 554 , - 247 , - 184 , - 365 , - 790 , - 483 , - 420 , - 601 , - 50 , - 719 , - 656 , - 837 , - 286 , - 955 , - 892 , - 97 , - 522 , - 215 , - 152 , - 333 , - 758 , - 451 , - 388 , - 569 , - 18 , - 687 , - 624 , - 805 , - 254 , - 923 , - 860 , - 65 , - 490 , - 183 , - 120 , - 301 , - 726 , - 419 , - 356 , - 537 , - 962 , - 655 , - 592 , - 773 , - 222 , - 891 , - 828 , - 33 , - 458 , - 151 , - 88 , - 269 , - 694 , - 387 , - 324 , - 505 , - 930 , - 623 , - 560 , - 741 , - 190 , - 859 , - 796 , - 1 , - 426 , - 119 , - 56 , - 237 , - 662 , - 355 , - 292 , - 473 , - 898 , - 591 , - 528 , - 709 , - 158 , - 827 , - 764 , - 945 , - 394 , - 87 , - 24 , - 205 , - 630 , - 323 , - 260 , - 441 , - 866 , - 559 , - 496 , - 677 , - 126 , - 795 , - 732 , - 913 , - 362 , - 55 , - 968 , - 173 , - 598 , - 291 , - 228 , - 409 , - 834 , - 527 , - 464 , - 645 , - 94 , - 763 , - 700 , - 881 , - 330 , - 23 , - 936 , - 141 , - 566 , - 259 , - 196 , - 377 , - 802 , - 495 , - 432 , - 613 , - 62 , - 731 , - 668 , - 849 , - 298 , - 967 , - 904 , - 109 , - 534 , - 227 , - 164 , - 345 , - 770 , - 463 , - 400 , - 581 , - 30 , - 699 , - 636 , - 817 , - 266 , - 935 , - 872 , - 77 , - 502 , - 195 , - 132 , - 313 , - 738 , - 431 , - 368 , - 549 , - 974 , - 667 , - 604 , - 785 , - 234 , - 903 , - 840 , - 45 , - 470 , - 163 , - 100 , - 281 , - 706 , - 399 , - 336 , - 517 , - 942 , - 635 , - 572 , - 753 , - 202 , - 871 , - 808 , - 13 , - 438 , - 131 , - 68 , - 249 , - 674 , - 367 , - 304 , - 485 , - 910 , - 603 , - 540 , - 721 , - 170 , - 839 , - 776 , - 957 , - 406 , - 99 , - 36 , - 217 , - 642 , - 335 , - 272 , - 453 , - 878 , - 571 , - 508 , - 689 , - 138 , - 807 , - 744 , - 925 , - 374 , - 67 , - 4 , - 185 , - 610 , - 303 , - 240 , - 421 , - 846 , - 539 , - 476 , - 657 , - 106 , - 775 , - 712 , - 893 , - 342 , - 35 , - 948 , - 153 , - 578 , - 271 , - 208 , - 389 , - 814 , - 507 , - 444 , - 625 , - 74 , - 743 , - 680 , - 861 , - 310 , - 3 , - 916 , - 121 , - 546 , - 239 , - 176 , - 357 , - 782 , - 475 , - 412 , - 593 , - 42 , - 711 , - 648 , - 829 , - 278 , - 947 , - 884 , - 89 , - 514 , - 207 , - 144 , - 325 , - 750 , - 443 , - 380 , - 561 , - 10 , - 679 , - 616 , - 797 , - 246 , - 915 , - 852 , - 57 , - 482 , - 175 , - 112 , - 293 , - 718 , - 411 , - 348 , - 529 , - 954 , - 647 , - 584 , - 765 , - 214 , - 883 , - 820 , - 25 , - 450 , - 143 , - 80 , - 261 , - 686 , - 379 , - 316 , - 497 , - 922 , - 615 , - 552 , - 733 , - 182 , - 851 , - 788 , - 969 , - 418 , - 111 , - 48 , - 229 , - 654 , - 347 , - 284 , - 465 , - 890 , - 583 , - 520 , - 701 , - 150 , - 819 , - 756 , - 937 , - 386 , - 79 , - 16 , - 197 , - 622 , - 315 , - 252 , - 433 , - 858 , - 551 , - 488 , - 669 , - 118 , - 787 , - 724 , - 905 , - 354 , - 47 , - 960 , - 165 , - 590 , - 283 , - 220 , - 401 , - 826 , - 519 , - 456 , - 637 , - 86 , - 755 , - 692 , - 873 , - 322 , - 15 , - 928 , - 133 , - 558 , - 251 , - 188 , - 369 , - 794 , - 487 , - 424 , - 605 , - 54 , - 723 , - 660 , - 841 , - 290 , - 959 , - 896 , - 101 , - 526 , - 219 , - 156 , - 337 , - 762 , - 455 , - 392 , - 573 , - 22 , - 691 , - 628 , - 809 , - 258 , - 927 , - 864 , - 69 , - 494 , - 187 , - 124 , - 305 , - 730 , - 423 , - 360 , - 541 , - 966 , - 659 , - 596 , - 777 , - 226 , - 895 , - 832 , - 37 , - 462 , - 155 , - 92 , - 273 , - 698 , - 391 , - 328 , - 509 , - 934 , - 627 , - 564 , - 745 , - 194 , - 863 , - 800 , - 5 , - 430 , - 123 , - 60 , - 241 , - 666 , - 359 , - 296 , - 477 , - 902 , - 595 , - 532 , - 713 , - 162 , - 831 , - 768 , - 949 , - 398 , - 91 , - 28 , - 209 , - 634 , - 327 , - 264 , - 445 , - 870 , - 563 , - 500 , - 681 , - 130 , - 799 , - 736 , - 917 , - 366 , - 59 , - 972 , - 177 , - 602 , - 295 , - 232 , - 413 , - 838 , - 531 , - 468 , - 649 , - 98 , - 767 , - 704 , - 885 , - 334 , - 27 , - 940 , - 145 , - 570 , - 263 , - 200 , - 381 , - 806 , - 499 , - 436 , - 617 , - 66 , - 735 , - 672 , - 853 , - 302 , - 971 , - 908 , - 113 , - 538 , - 231 , - 168 , - 349 , - 774 , - 467 , - 404 , - 585 , - 34 , - 703 , - 640 , - 821 , - 270 , - 939 , - 876 , - 81 , - 506 , - 199 , - 136 , - 317 , - 742 , - 435 , - 372 , - 553 , - 2 , - 671 , - 608 , - 789 , - 238 , - 907 , - 844 , - 49 , - 474 , - 167 , - 104 , - 285 , - 710 , - 403 , - 340 , - 521 , - 946 , - 639 , - 576 , - 757 , - 206 , - 875 , - 812 , - 17 , - 442 , - 135 , - 72 , - 253 , - 678 , - 371 , - 308 , - 489 , - 914 , - 607 , - 544 , - 725 , - 174 , - 843 , - 780 , - 961 , - 410 , - 103 , - 40 , - 221 , - 646 , - 339 , - 276 , - 457 , - 882 , - 575 , - 512 , - 693 , - 142 , - 811 , - 748 , - 929 , - 378 , - 71 , - 8 , - 189 , - 614 , - 307 , - 244 , - 425 , - 850 , - 543 , - 480 , - 661 , - 110 , - 779 , - 716 , - 897 , - 346 , - 39 , - 952 , - 157 , - 582 , - 275 , - 212 , - 393 , - 818 , - 511 , - 448 , - 629 , - 78 , - 747 , - 684 , - 865 , - 314 , - 7 , - 920 , - 125 , - 550 , - 243 , - 180 , - 361 , - 786 , - 479 , - 416 , - 597 , - 46 , - 715 , - 652 , - 833 , - 282 , - 951 , - 888 , - 93 , - 518 , - 211 , - 148 , - 329 , - 754 , - 447 , - 384 , - 565 , - 14 , - 683 , - 620 , - 801 , - 250 , - 919 , - 856 , - 61 , - 486 , - 179 , - 116 , - 297 , - 722 , - 415 , - 352 , - 533 , - 958 , - 651 , - 588 , - 769 , - 218 , - 887 , - 824 , - 29 , - 454 , - 147 , - 84 , - 265 , - 690 , - 383 , - 320 , - 501 , - 926 , - 619 , - 556 , - 737 , - 186 , - 855 , - 792 , - 973 , - 422 , - 115 , - 52 , - 233 , - 658 , - 351 , - 288 , - 469 , - 894 , - 587 , - 524 , - 705 , - 154 , - 823 , - 760 , - 941 , - 390 , - 83 , - 20 , - 201 , - 626 , - 319 , - 256 , - 437 , - 862 , - 555 , - 492 , - 673 , - 122 , - 791 , - 728 , - 909 , - 358 , - 51 , - 964 , - 169 , - 594 , - 287 , - 224 , - 405 , - 830 , - 523 , - 460 , - 641 , - 90 , - 759 , - 696 , - 877 , - 326 , - 19 , - 932 , - 137 , - 562 , - 255 , - 192 , - 373 , - 798 , - 491 , - 428 , - 609 , - 58 , - 727 , - 664 , - 845 , - 294 , - 963 , - 900 , - 105 , - 530 , - 223 , - 160 , - 341 , - 766 , - 459 , - 396 , - 577 , - 26 , - 695 , - 632 , - 813 , - 262 , - 931 , - 868 , - 73 , - 498 , - 191 , - 128 , - 309 , - 734 , - 427 , - 364 , - 545 , - 970 , - 663 , - 600 , - 781 , - 230 , - 899 , - 836 , - 41 , - 466 , - 159 , - 96 , - 277 , - 702 , - 395 , - 332 , - 513 , - 938 , - 631 , - 568 , - 749 , - 198 , - 867 , - 804 , - 9 , - 434 , - 127 , - 64 , - 245 , - 670 , - 363 , - 300 , - 481 , - 906 , - 599 , - 536 , - 717 , - 166 , - 835 , - 772 , - 953 , - 402 , - 95 , - 32 , - 213 , - 638 , - 331 , - 268 , - 449 , - 874 , - 567 , - 504 , - 685 , - 134 , - 803 , - 740 , - 921 , - 370 , - 63 , - 0 , - 189 , - 626 , - 319 , - 260 , - 449 , - 886 , - 579 , - 520 , - 709 , - 154 , - 839 , - 780 , - 969 , - 414 , - 107 , - 48 , - 237 , - 674 , - 367 , - 308 , - 497 , - 934 , - 627 , - 568 , - 757 , - 202 , - 887 , - 828 , - 25 , - 462 , - 155 , - 96 , - 285 , - 722 , - 415 , - 356 , - 545 , - 982 , - 675 , - 616 , - 805 , - 250 , - 935 , - 876 , - 73 , - 510 , - 203 , - 144 , - 333 , - 770 , - 463 , - 404 , - 593 , - 38 , - 723 , - 664 , - 853 , - 298 , - 983 , - 924 , - 121 , - 558 , - 251 , - 192 , - 381 , - 818 , - 511 , - 452 , - 641 , - 86 , - 771 , - 712 , - 901 , - 346 , - 39 , - 972 , - 169 , - 606 , - 299 , - 240 , - 429 , - 866 , - 559 , - 500 , - 689 , - 134 , - 819 , - 760 , - 949 , - 394 , - 87 , - 28 , - 217 , - 654 , - 347 , - 288 , - 477 , - 914 , - 607 , - 548 , - 737 , - 182 , - 867 , - 808 , - 5 , - 442 , - 135 , - 76 , - 265 , - 702 , - 395 , - 336 , - 525 , - 962 , - 655 , - 596 , - 785 , - 230 , - 915 , - 856 , - 53 , - 490 , - 183 , - 124 , - 313 , - 750 , - 443 , - 384 , - 573 , - 18 , - 703 , - 644 , - 833 , - 278 , - 963 , - 904 , - 101 , - 538 , - 231 , - 172 , - 361 , - 798 , - 491 , - 432 , - 621 , - 66 , - 751 , - 692 , - 881 , - 326 , - 19 , - 952 , - 149 , - 586 , - 279 , - 220 , - 409 , - 846 , - 539 , - 480 , - 669 , - 114 , - 799 , - 740 , - 929 , - 374 , - 67 , - 8 , - 197 , - 634 , - 327 , - 268 , - 457 , - 894 , - 587 , - 528 , - 717 , - 162 , - 847 , - 788 , - 977 , - 422 , - 115 , - 56 , - 245 , - 682 , - 375 , - 316 , - 505 , - 942 , - 635 , - 576 , - 765 , - 210 , - 895 , - 836 , - 33 , - 470 , - 163 , - 104 , - 293 , - 730 , - 423 , - 364 , - 553 , - 990 , - 683 , - 624 , - 813 , - 258 , - 943 , - 884 , - 81 , - 518 , - 211 , - 152 , - 341 , - 778 , - 471 , - 412 , - 601 , - 46 , - 731 , - 672 , - 861 , - 306 , - 991 , - 932 , - 129 , - 566 , - 259 , - 200 , - 389 , - 826 , - 519 , - 460 , - 649 , - 94 , - 779 , - 720 , - 909 , - 354 , - 47 , - 980 , - 177 , - 614 , - 307 , - 248 , - 437 , - 874 , - 567 , - 508 , - 697 , - 142 , - 827 , - 768 , - 957 , - 402 , - 95 , - 36 , - 225 , - 662 , - 355 , - 296 , - 485 , - 922 , - 615 , - 556 , - 745 , - 190 , - 875 , - 816 , - 13 , - 450 , - 143 , - 84 , - 273 , - 710 , - 403 , - 344 , - 533 , - 970 , - 663 , - 604 , - 793 , - 238 , - 923 , - 864 , - 61 , - 498 , - 191 , - 132 , - 321 , - 758 , - 451 , - 392 , - 581 , - 26 , - 711 , - 652 , - 841 , - 286 , - 971 , - 912 , - 109 , - 546 , - 239 , - 180 , - 369 , - 806 , - 499 , - 440 , - 629 , - 74 , - 759 , - 700 , - 889 , - 334 , - 27 , - 960 , - 157 , - 594 , - 287 , - 228 , - 417 , - 854 , - 547 , - 488 , - 677 , - 122 , - 807 , - 748 , - 937 , - 382 , - 75 , - 16 , - 205 , - 642 , - 335 , - 276 , - 465 , - 902 , - 595 , - 536 , - 725 , - 170 , - 855 , - 796 , - 985 , - 430 , - 123 , - 64 , - 253 , - 690 , - 383 , - 324 , - 513 , - 950 , - 643 , - 584 , - 773 , - 218 , - 903 , - 844 , - 41 , - 478 , - 171 , - 112 , - 301 , - 738 , - 431 , - 372 , - 561 , - 6 , - 691 , - 632 , - 821 , - 266 , - 951 , - 892 , - 89 , - 526 , - 219 , - 160 , - 349 , - 786 , - 479 , - 420 , - 609 , - 54 , - 739 , - 680 , - 869 , - 314 , - 7 , - 940 , - 137 , - 574 , - 267 , - 208 , - 397 , - 834 , - 527 , - 468 , - 657 , - 102 , - 787 , - 728 , - 917 , - 362 , - 55 , - 988 , - 185 , - 622 , - 315 , - 256 , - 445 , - 882 , - 575 , - 516 , - 705 , - 150 , - 835 , - 776 , - 965 , - 410 , - 103 , - 44 , - 233 , - 670 , - 363 , - 304 , - 493 , - 930 , - 623 , - 564 , - 753 , - 198 , - 883 , - 824 , - 21 , - 458 , - 151 , - 92 , - 281 , - 718 , - 411 , - 352 , - 541 , - 978 , - 671 , - 612 , - 801 , - 246 , - 931 , - 872 , - 69 , - 506 , - 199 , - 140 , - 329 , - 766 , - 459 , - 400 , - 589 , - 34 , - 719 , - 660 , - 849 , - 294 , - 979 , - 920 , - 117 , - 554 , - 247 , - 188 , - 377 , - 814 , - 507 , - 448 , - 637 , - 82 , - 767 , - 708 , - 897 , - 342 , - 35 , - 968 , - 165 , - 602 , - 295 , - 236 , - 425 , - 862 , - 555 , - 496 , - 685 , - 130 , - 815 , - 756 , - 945 , - 390 , - 83 , - 24 , - 213 , - 650 , - 343 , - 284 , - 473 , - 910 , - 603 , - 544 , - 733 , - 178 , - 863 , - 804 , - 1 , - 438 , - 131 , - 72 , - 261 , - 698 , - 391 , - 332 , - 521 , - 958 , - 651 , - 592 , - 781 , - 226 , - 911 , - 852 , - 49 , - 486 , - 179 , - 120 , - 309 , - 746 , - 439 , - 380 , - 569 , - 14 , - 699 , - 640 , - 829 , - 274 , - 959 , - 900 , - 97 , - 534 , - 227 , - 168 , - 357 , - 794 , - 487 , - 428 , - 617 , - 62 , - 747 , - 688 , - 877 , - 322 , - 15 , - 948 , - 145 , - 582 , - 275 , - 216 , - 405 , - 842 , - 535 , - 476 , - 665 , - 110 , - 795 , - 736 , - 925 , - 370 , - 63 , - 4 , - 193 , - 630 , - 323 , - 264 , - 453 , - 890 , - 583 , - 524 , - 713 , - 158 , - 843 , - 784 , - 973 , - 418 , - 111 , - 52 , - 241 , - 678 , - 371 , - 312 , - 501 , - 938 , - 631 , - 572 , - 761 , - 206 , - 891 , - 832 , - 29 , - 466 , - 159 , - 100 , - 289 , - 726 , - 419 , - 360 , - 549 , - 986 , - 679 , - 620 , - 809 , - 254 , - 939 , - 880 , - 77 , - 514 , - 207 , - 148 , - 337 , - 774 , - 467 , - 408 , - 597 , - 42 , - 727 , - 668 , - 857 , - 302 , - 987 , - 928 , - 125 , - 562 , - 255 , - 196 , - 385 , - 822 , - 515 , - 456 , - 645 , - 90 , - 775 , - 716 , - 905 , - 350 , - 43 , - 976 , - 173 , - 610 , - 303 , - 244 , - 433 , - 870 , - 563 , - 504 , - 693 , - 138 , - 823 , - 764 , - 953 , - 398 , - 91 , - 32 , - 221 , - 658 , - 351 , - 292 , - 481 , - 918 , - 611 , - 552 , - 741 , - 186 , - 871 , - 812 , - 9 , - 446 , - 139 , - 80 , - 269 , - 706 , - 399 , - 340 , - 529 , - 966 , - 659 , - 600 , - 789 , - 234 , - 919 , - 860 , - 57 , - 494 , - 187 , - 128 , - 317 , - 754 , - 447 , - 388 , - 577 , - 22 , - 707 , - 648 , - 837 , - 282 , - 967 , - 908 , - 105 , - 542 , - 235 , - 176 , - 365 , - 802 , - 495 , - 436 , - 625 , - 70 , - 755 , - 696 , - 885 , - 330 , - 23 , - 956 , - 153 , - 590 , - 283 , - 224 , - 413 , - 850 , - 543 , - 484 , - 673 , - 118 , - 803 , - 744 , - 933 , - 378 , - 71 , - 12 , - 201 , - 638 , - 331 , - 272 , - 461 , - 898 , - 591 , - 532 , - 721 , - 166 , - 851 , - 792 , - 981 , - 426 , - 119 , - 60 , - 249 , - 686 , - 379 , - 320 , - 509 , - 946 , - 639 , - 580 , - 769 , - 214 , - 899 , - 840 , - 37 , - 474 , - 167 , - 108 , - 297 , - 734 , - 427 , - 368 , - 557 , - 2 , - 687 , - 628 , - 817 , - 262 , - 947 , - 888 , - 85 , - 522 , - 215 , - 156 , - 345 , - 782 , - 475 , - 416 , - 605 , - 50 , - 735 , - 676 , - 865 , - 310 , - 3 , - 936 , - 133 , - 570 , - 263 , - 204 , - 393 , - 830 , - 523 , - 464 , - 653 , - 98 , - 783 , - 724 , - 913 , - 358 , - 51 , - 984 , - 181 , - 618 , - 311 , - 252 , - 441 , - 878 , - 571 , - 512 , - 701 , - 146 , - 831 , - 772 , - 961 , - 406 , - 99 , - 40 , - 229 , - 666 , - 359 , - 300 , - 489 , - 926 , - 619 , - 560 , - 749 , - 194 , - 879 , - 820 , - 17 , - 454 , - 147 , - 88 , - 277 , - 714 , - 407 , - 348 , - 537 , - 974 , - 667 , - 608 , - 797 , - 242 , - 927 , - 868 , - 65 , - 502 , - 195 , - 136 , - 325 , - 762 , - 455 , - 396 , - 585 , - 30 , - 715 , - 656 , - 845 , - 290 , - 975 , - 916 , - 113 , - 550 , - 243 , - 184 , - 373 , - 810 , - 503 , - 444 , - 633 , - 78 , - 763 , - 704 , - 893 , - 338 , - 31 , - 964 , - 161 , - 598 , - 291 , - 232 , - 421 , - 858 , - 551 , - 492 , - 681 , - 126 , - 811 , - 752 , - 941 , - 386 , - 79 , - 20 , - 209 , - 646 , - 339 , - 280 , - 469 , - 906 , - 599 , - 540 , - 729 , - 174 , - 859 , - 800 , - 989 , - 434 , - 127 , - 68 , - 257 , - 694 , - 387 , - 328 , - 517 , - 954 , - 647 , - 588 , - 777 , - 222 , - 907 , - 848 , - 45 , - 482 , - 175 , - 116 , - 305 , - 742 , - 435 , - 376 , - 565 , - 10 , - 695 , - 636 , - 825 , - 270 , - 955 , - 896 , - 93 , - 530 , - 223 , - 164 , - 353 , - 790 , - 483 , - 424 , - 613 , - 58 , - 743 , - 684 , - 873 , - 318 , - 11 , - 944 , - 141 , - 578 , - 271 , - 212 , - 401 , - 838 , - 531 , - 472 , - 661 , - 106 , - 791 , - 732 , - 921 , - 366 , - 59 , - 0 , - 139 , - 446 , - 921 , - 556 , - 359 , - 330 , - 469 , - 776 , - 243 , - 886 , - 689 , - 660 , - 799 , - 98 , - 573 , - 208 , - 11 , - 990 , - 121 , - 428 , - 903 , - 538 , - 341 , - 312 , - 451 , - 758 , - 225 , - 868 , - 671 , - 642 , - 781 , - 80 , - 555 , - 190 , - 1001 , - 972 , - 103 , - 410 , - 885 , - 520 , - 323 , - 294 , - 433 , - 740 , - 207 , - 850 , - 653 , - 624 , - 763 , - 62 , - 537 , - 172 , - 983 , - 954 , - 85 , - 392 , - 867 , - 502 , - 305 , - 276 , - 415 , - 722 , - 189 , - 832 , - 635 , - 606 , - 745 , - 44 , - 519 , - 154 , - 965 , - 936 , - 67 , - 374 , - 849 , - 484 , - 287 , - 258 , - 397 , - 704 , - 171 , - 814 , - 617 , - 588 , - 727 , - 26 , - 501 , - 136 , - 947 , - 918 , - 49 , - 356 , - 831 , - 466 , - 269 , - 240 , - 379 , - 686 , - 153 , - 796 , - 599 , - 570 , - 709 , - 8 , - 483 , - 118 , - 929 , - 900 , - 31 , - 338 , - 813 , - 448 , - 251 , - 222 , - 361 , - 668 , - 135 , - 778 , - 581 , - 552 , - 691 , - 998 , - 465 , - 100 , - 911 , - 882 , - 13 , - 320 , - 795 , - 430 , - 233 , - 204 , - 343 , - 650 , - 117 , - 760 , - 563 , - 534 , - 673 , - 980 , - 447 , - 82 , - 893 , - 864 , - 1003 , - 302 , - 777 , - 412 , - 215 , - 186 , - 325 , - 632 , - 99 , - 742 , - 545 , - 516 , - 655 , - 962 , - 429 , - 64 , - 875 , - 846 , - 985 , - 284 , - 759 , - 394 , - 197 , - 168 , - 307 , - 614 , - 81 , - 724 , - 527 , - 498 , - 637 , - 944 , - 411 , - 46 , - 857 , - 828 , - 967 , - 266 , - 741 , - 376 , - 179 , - 150 , - 289 , - 596 , - 63 , - 706 , - 509 , - 480 , - 619 , - 926 , - 393 , - 28 , - 839 , - 810 , - 949 , - 248 , - 723 , - 358 , - 161 , - 132 , - 271 , - 578 , - 45 , - 688 , - 491 , - 462 , - 601 , - 908 , - 375 , - 10 , - 821 , - 792 , - 931 , - 230 , - 705 , - 340 , - 143 , - 114 , - 253 , - 560 , - 27 , - 670 , - 473 , - 444 , - 583 , - 890 , - 357 , - 1000 , - 803 , - 774 , - 913 , - 212 , - 687 , - 322 , - 125 , - 96 , - 235 , - 542 , - 9 , - 652 , - 455 , - 426 , - 565 , - 872 , - 339 , - 982 , - 785 , - 756 , - 895 , - 194 , - 669 , - 304 , - 107 , - 78 , - 217 , - 524 , - 999 , - 634 , - 437 , - 408 , - 547 , - 854 , - 321 , - 964 , - 767 , - 738 , - 877 , - 176 , - 651 , - 286 , - 89 , - 60 , - 199 , - 506 , - 981 , - 616 , - 419 , - 390 , - 529 , - 836 , - 303 , - 946 , - 749 , - 720 , - 859 , - 158 , - 633 , - 268 , - 71 , - 42 , - 181 , - 488 , - 963 , - 598 , - 401 , - 372 , - 511 , - 818 , - 285 , - 928 , - 731 , - 702 , - 841 , - 140 , - 615 , - 250 , - 53 , - 24 , - 163 , - 470 , - 945 , - 580 , - 383 , - 354 , - 493 , - 800 , - 267 , - 910 , - 713 , - 684 , - 823 , - 122 , - 597 , - 232 , - 35 , - 6 , - 145 , - 452 , - 927 , - 562 , - 365 , - 336 , - 475 , - 782 , - 249 , - 892 , - 695 , - 666 , - 805 , - 104 , - 579 , - 214 , - 17 , - 996 , - 127 , - 434 , - 909 , - 544 , - 347 , - 318 , - 457 , - 764 , - 231 , - 874 , - 677 , - 648 , - 787 , - 86 , - 561 , - 196 , - 1007 , - 978 , - 109 , - 416 , - 891 , - 526 , - 329 , - 300 , - 439 , - 746 , - 213 , - 856 , - 659 , - 630 , - 769 , - 68 , - 543 , - 178 , - 989 , - 960 , - 91 , - 398 , - 873 , - 508 , - 311 , - 282 , - 421 , - 728 , - 195 , - 838 , - 641 , - 612 , - 751 , - 50 , - 525 , - 160 , - 971 , - 942 , - 73 , - 380 , - 855 , - 490 , - 293 , - 264 , - 403 , - 710 , - 177 , - 820 , - 623 , - 594 , - 733 , - 32 , - 507 , - 142 , - 953 , - 924 , - 55 , - 362 , - 837 , - 472 , - 275 , - 246 , - 385 , - 692 , - 159 , - 802 , - 605 , - 576 , - 715 , - 14 , - 489 , - 124 , - 935 , - 906 , - 37 , - 344 , - 819 , - 454 , - 257 , - 228 , - 367 , - 674 , - 141 , - 784 , - 587 , - 558 , - 697 , - 1004 , - 471 , - 106 , - 917 , - 888 , - 19 , - 326 , - 801 , - 436 , - 239 , - 210 , - 349 , - 656 , - 123 , - 766 , - 569 , - 540 , - 679 , - 986 , - 453 , - 88 , - 899 , - 870 , - 1 , - 308 , - 783 , - 418 , - 221 , - 192 , - 331 , - 638 , - 105 , - 748 , - 551 , - 522 , - 661 , - 968 , - 435 , - 70 , - 881 , - 852 , - 991 , - 290 , - 765 , - 400 , - 203 , - 174 , - 313 , - 620 , - 87 , - 730 , - 533 , - 504 , - 643 , - 950 , - 417 , - 52 , - 863 , - 834 , - 973 , - 272 , - 747 , - 382 , - 185 , - 156 , - 295 , - 602 , - 69 , - 712 , - 515 , - 486 , - 625 , - 932 , - 399 , - 34 , - 845 , - 816 , - 955 , - 254 , - 729 , - 364 , - 167 , - 138 , - 277 , - 584 , - 51 , - 694 , - 497 , - 468 , - 607 , - 914 , - 381 , - 16 , - 827 , - 798 , - 937 , - 236 , - 711 , - 346 , - 149 , - 120 , - 259 , - 566 , - 33 , - 676 , - 479 , - 450 , - 589 , - 896 , - 363 , - 1006 , - 809 , - 780 , - 919 , - 218 , - 693 , - 328 , - 131 , - 102 , - 241 , - 548 , - 15 , - 658 , - 461 , - 432 , - 571 , - 878 , - 345 , - 988 , - 791 , - 762 , - 901 , - 200 , - 675 , - 310 , - 113 , - 84 , - 223 , - 530 , - 1005 , - 640 , - 443 , - 414 , - 553 , - 860 , - 327 , - 970 , - 773 , - 744 , - 883 , - 182 , - 657 , - 292 , - 95 , - 66 , - 205 , - 512 , - 987 , - 622 , - 425 , - 396 , - 535 , - 842 , - 309 , - 952 , - 755 , - 726 , - 865 , - 164 , - 639 , - 274 , - 77 , - 48 , - 187 , - 494 , - 969 , - 604 , - 407 , - 378 , - 517 , - 824 , - 291 , - 934 , - 737 , - 708 , - 847 , - 146 , - 621 , - 256 , - 59 , - 30 , - 169 , - 476 , - 951 , - 586 , - 389 , - 360 , - 499 , - 806 , - 273 , - 916 , - 719 , - 690 , - 829 , - 128 , - 603 , - 238 , - 41 , - 12 , - 151 , - 458 , - 933 , - 568 , - 371 , - 342 , - 481 , - 788 , - 255 , - 898 , - 701 , - 672 , - 811 , - 110 , - 585 , - 220 , - 23 , - 1002 , - 133 , - 440 , - 915 , - 550 , - 353 , - 324 , - 463 , - 770 , - 237 , - 880 , - 683 , - 654 , - 793 , - 92 , - 567 , - 202 , - 5 , - 984 , - 115 , - 422 , - 897 , - 532 , - 335 , - 306 , - 445 , - 752 , - 219 , - 862 , - 665 , - 636 , - 775 , - 74 , - 549 , - 184 , - 995 , - 966 , - 97 , - 404 , - 879 , - 514 , - 317 , - 288 , - 427 , - 734 , - 201 , - 844 , - 647 , - 618 , - 757 , - 56 , - 531 , - 166 , - 977 , - 948 , - 79 , - 386 , - 861 , - 496 , - 299 , - 270 , - 409 , - 716 , - 183 , - 826 , - 629 , - 600 , - 739 , - 38 , - 513 , - 148 , - 959 , - 930 , - 61 , - 368 , - 843 , - 478 , - 281 , - 252 , - 391 , - 698 , - 165 , - 808 , - 611 , - 582 , - 721 , - 20 , - 495 , - 130 , - 941 , - 912 , - 43 , - 350 , - 825 , - 460 , - 263 , - 234 , - 373 , - 680 , - 147 , - 790 , - 593 , - 564 , - 703 , - 2 , - 477 , - 112 , - 923 , - 894 , - 25 , - 332 , - 807 , - 442 , - 245 , - 216 , - 355 , - 662 , - 129 , - 772 , - 575 , - 546 , - 685 , - 992 , - 459 , - 94 , - 905 , - 876 , - 7 , - 314 , - 789 , - 424 , - 227 , - 198 , - 337 , - 644 , - 111 , - 754 , - 557 , - 528 , - 667 , - 974 , - 441 , - 76 , - 887 , - 858 , - 997 , - 296 , - 771 , - 406 , - 209 , - 180 , - 319 , - 626 , - 93 , - 736 , - 539 , - 510 , - 649 , - 956 , - 423 , - 58 , - 869 , - 840 , - 979 , - 278 , - 753 , - 388 , - 191 , - 162 , - 301 , - 608 , - 75 , - 718 , - 521 , - 492 , - 631 , - 938 , - 405 , - 40 , - 851 , - 822 , - 961 , - 260 , - 735 , - 370 , - 173 , - 144 , - 283 , - 590 , - 57 , - 700 , - 503 , - 474 , - 613 , - 920 , - 387 , - 22 , - 833 , - 804 , - 943 , - 242 , - 717 , - 352 , - 155 , - 126 , - 265 , - 572 , - 39 , - 682 , - 485 , - 456 , - 595 , - 902 , - 369 , - 4 , - 815 , - 786 , - 925 , - 224 , - 699 , - 334 , - 137 , - 108 , - 247 , - 554 , - 21 , - 664 , - 467 , - 438 , - 577 , - 884 , - 351 , - 994 , - 797 , - 768 , - 907 , - 206 , - 681 , - 316 , - 119 , - 90 , - 229 , - 536 , - 3 , - 646 , - 449 , - 420 , - 559 , - 866 , - 333 , - 976 , - 779 , - 750 , - 889 , - 188 , - 663 , - 298 , - 101 , - 72 , - 211 , - 518 , - 993 , - 628 , - 431 , - 402 , - 541 , - 848 , - 315 , - 958 , - 761 , - 732 , - 871 , - 170 , - 645 , - 280 , - 83 , - 54 , - 193 , - 500 , - 975 , - 610 , - 413 , - 384 , - 523 , - 830 , - 297 , - 940 , - 743 , - 714 , - 853 , - 152 , - 627 , - 262 , - 65 , - 36 , - 175 , - 482 , - 957 , - 592 , - 395 , - 366 , - 505 , - 812 , - 279 , - 922 , - 725 , - 696 , - 835 , - 134 , - 609 , - 244 , - 47 , - 18 , - 157 , - 464 , - 939 , - 574 , - 377 , - 348 , - 487 , - 794 , - 261 , - 904 , - 707 , - 678 , - 817 , - 116 , - 591 , - 226 , - 29 , - 0 , - 95 , - 318 , - 669 , - 124 , - 731 , - 442 , - 281 , - 248 , - 343 , - 566 , - 917 , - 372 , - 979 , - 690 , - 529 , - 496 , - 591 , - 814 , - 141 , - 620 , - 203 , - 938 , - 777 , - 744 , - 839 , - 38 , - 389 , - 868 , - 451 , - 162 , - 1 , - 992 , - 63 , - 286 , - 637 , - 92 , - 699 , - 410 , - 249 , - 216 , - 311 , - 534 , - 885 , - 340 , - 947 , - 658 , - 497 , - 464 , - 559 , - 782 , - 109 , - 588 , - 171 , - 906 , - 745 , - 712 , - 807 , - 6 , - 357 , - 836 , - 419 , - 130 , - 993 , - 960 , - 31 , - 254 , - 605 , - 60 , - 667 , - 378 , - 217 , - 184 , - 279 , - 502 , - 853 , - 308 , - 915 , - 626 , - 465 , - 432 , - 527 , - 750 , - 77 , - 556 , - 139 , - 874 , - 713 , - 680 , - 775 , - 998 , - 325 , - 804 , - 387 , - 98 , - 961 , - 928 , - 1023 , - 222 , - 573 , - 28 , - 635 , - 346 , - 185 , - 152 , - 247 , - 470 , - 821 , - 276 , - 883 , - 594 , - 433 , - 400 , - 495 , - 718 , - 45 , - 524 , - 107 , - 842 , - 681 , - 648 , - 743 , - 966 , - 293 , - 772 , - 355 , - 66 , - 929 , - 896 , - 991 , - 190 , - 541 , - 1020 , - 603 , - 314 , - 153 , - 120 , - 215 , - 438 , - 789 , - 244 , - 851 , - 562 , - 401 , - 368 , - 463 , - 686 , - 13 , - 492 , - 75 , - 810 , - 649 , - 616 , - 711 , - 934 , - 261 , - 740 , - 323 , - 34 , - 897 , - 864 , - 959 , - 158 , - 509 , - 988 , - 571 , - 282 , - 121 , - 88 , - 183 , - 406 , - 757 , - 212 , - 819 , - 530 , - 369 , - 336 , - 431 , - 654 , - 1005 , - 460 , - 43 , - 778 , - 617 , - 584 , - 679 , - 902 , - 229 , - 708 , - 291 , - 2 , - 865 , - 832 , - 927 , - 126 , - 477 , - 956 , - 539 , - 250 , - 89 , - 56 , - 151 , - 374 , - 725 , - 180 , - 787 , - 498 , - 337 , - 304 , - 399 , - 622 , - 973 , - 428 , - 11 , - 746 , - 585 , - 552 , - 647 , - 870 , - 197 , - 676 , - 259 , - 994 , - 833 , - 800 , - 895 , - 94 , - 445 , - 924 , - 507 , - 218 , - 57 , - 24 , - 119 , - 342 , - 693 , - 148 , - 755 , - 466 , - 305 , - 272 , - 367 , - 590 , - 941 , - 396 , - 1003 , - 714 , - 553 , - 520 , - 615 , - 838 , - 165 , - 644 , - 227 , - 962 , - 801 , - 768 , - 863 , - 62 , - 413 , - 892 , - 475 , - 186 , - 25 , - 1016 , - 87 , - 310 , - 661 , - 116 , - 723 , - 434 , - 273 , - 240 , - 335 , - 558 , - 909 , - 364 , - 971 , - 682 , - 521 , - 488 , - 583 , - 806 , - 133 , - 612 , - 195 , - 930 , - 769 , - 736 , - 831 , - 30 , - 381 , - 860 , - 443 , - 154 , - 1017 , - 984 , - 55 , - 278 , - 629 , - 84 , - 691 , - 402 , - 241 , - 208 , - 303 , - 526 , - 877 , - 332 , - 939 , - 650 , - 489 , - 456 , - 551 , - 774 , - 101 , - 580 , - 163 , - 898 , - 737 , - 704 , - 799 , - 1022 , - 349 , - 828 , - 411 , - 122 , - 985 , - 952 , - 23 , - 246 , - 597 , - 52 , - 659 , - 370 , - 209 , - 176 , - 271 , - 494 , - 845 , - 300 , - 907 , - 618 , - 457 , - 424 , - 519 , - 742 , - 69 , - 548 , - 131 , - 866 , - 705 , - 672 , - 767 , - 990 , - 317 , - 796 , - 379 , - 90 , - 953 , - 920 , - 1015 , - 214 , - 565 , - 20 , - 627 , - 338 , - 177 , - 144 , - 239 , - 462 , - 813 , - 268 , - 875 , - 586 , - 425 , - 392 , - 487 , - 710 , - 37 , - 516 , - 99 , - 834 , - 673 , - 640 , - 735 , - 958 , - 285 , - 764 , - 347 , - 58 , - 921 , - 888 , - 983 , - 182 , - 533 , - 1012 , - 595 , - 306 , - 145 , - 112 , - 207 , - 430 , - 781 , - 236 , - 843 , - 554 , - 393 , - 360 , - 455 , - 678 , - 5 , - 484 , - 67 , - 802 , - 641 , - 608 , - 703 , - 926 , - 253 , - 732 , - 315 , - 26 , - 889 , - 856 , - 951 , - 150 , - 501 , - 980 , - 563 , - 274 , - 113 , - 80 , - 175 , - 398 , - 749 , - 204 , - 811 , - 522 , - 361 , - 328 , - 423 , - 646 , - 997 , - 452 , - 35 , - 770 , - 609 , - 576 , - 671 , - 894 , - 221 , - 700 , - 283 , - 1018 , - 857 , - 824 , - 919 , - 118 , - 469 , - 948 , - 531 , - 242 , - 81 , - 48 , - 143 , - 366 , - 717 , - 172 , - 779 , - 490 , - 329 , - 296 , - 391 , - 614 , - 965 , - 420 , - 3 , - 738 , - 577 , - 544 , - 639 , - 862 , - 189 , - 668 , - 251 , - 986 , - 825 , - 792 , - 887 , - 86 , - 437 , - 916 , - 499 , - 210 , - 49 , - 16 , - 111 , - 334 , - 685 , - 140 , - 747 , - 458 , - 297 , - 264 , - 359 , - 582 , - 933 , - 388 , - 995 , - 706 , - 545 , - 512 , - 607 , - 830 , - 157 , - 636 , - 219 , - 954 , - 793 , - 760 , - 855 , - 54 , - 405 , - 884 , - 467 , - 178 , - 17 , - 1008 , - 79 , - 302 , - 653 , - 108 , - 715 , - 426 , - 265 , - 232 , - 327 , - 550 , - 901 , - 356 , - 963 , - 674 , - 513 , - 480 , - 575 , - 798 , - 125 , - 604 , - 187 , - 922 , - 761 , - 728 , - 823 , - 22 , - 373 , - 852 , - 435 , - 146 , - 1009 , - 976 , - 47 , - 270 , - 621 , - 76 , - 683 , - 394 , - 233 , - 200 , - 295 , - 518 , - 869 , - 324 , - 931 , - 642 , - 481 , - 448 , - 543 , - 766 , - 93 , - 572 , - 155 , - 890 , - 729 , - 696 , - 791 , - 1014 , - 341 , - 820 , - 403 , - 114 , - 977 , - 944 , - 15 , - 238 , - 589 , - 44 , - 651 , - 362 , - 201 , - 168 , - 263 , - 486 , - 837 , - 292 , - 899 , - 610 , - 449 , - 416 , - 511 , - 734 , - 61 , - 540 , - 123 , - 858 , - 697 , - 664 , - 759 , - 982 , - 309 , - 788 , - 371 , - 82 , - 945 , - 912 , - 1007 , - 206 , - 557 , - 12 , - 619 , - 330 , - 169 , - 136 , - 231 , - 454 , - 805 , - 260 , - 867 , - 578 , - 417 , - 384 , - 479 , - 702 , - 29 , - 508 , - 91 , - 826 , - 665 , - 632 , - 727 , - 950 , - 277 , - 756 , - 339 , - 50 , - 913 , - 880 , - 975 , - 174 , - 525 , - 1004 , - 587 , - 298 , - 137 , - 104 , - 199 , - 422 , - 773 , - 228 , - 835 , - 546 , - 385 , - 352 , - 447 , - 670 , - 1021 , - 476 , - 59 , - 794 , - 633 , - 600 , - 695 , - 918 , - 245 , - 724 , - 307 , - 18 , - 881 , - 848 , - 943 , - 142 , - 493 , - 972 , - 555 , - 266 , - 105 , - 72 , - 167 , - 390 , - 741 , - 196 , - 803 , - 514 , - 353 , - 320 , - 415 , - 638 , - 989 , - 444 , - 27 , - 762 , - 601 , - 568 , - 663 , - 886 , - 213 , - 692 , - 275 , - 1010 , - 849 , - 816 , - 911 , - 110 , - 461 , - 940 , - 523 , - 234 , - 73 , - 40 , - 135 , - 358 , - 709 , - 164 , - 771 , - 482 , - 321 , - 288 , - 383 , - 606 , - 957 , - 412 , - 1019 , - 730 , - 569 , - 536 , - 631 , - 854 , - 181 , - 660 , - 243 , - 978 , - 817 , - 784 , - 879 , - 78 , - 429 , - 908 , - 491 , - 202 , - 41 , - 8 , - 103 , - 326 , - 677 , - 132 , - 739 , - 450 , - 289 , - 256 , - 351 , - 574 , - 925 , - 380 , - 987 , - 698 , - 537 , - 504 , - 599 , - 822 , - 149 , - 628 , - 211 , - 946 , - 785 , - 752 , - 847 , - 46 , - 397 , - 876 , - 459 , - 170 , - 9 , - 1000 , - 71 , - 294 , - 645 , - 100 , - 707 , - 418 , - 257 , - 224 , - 319 , - 542 , - 893 , - 348 , - 955 , - 666 , - 505 , - 472 , - 567 , - 790 , - 117 , - 596 , - 179 , - 914 , - 753 , - 720 , - 815 , - 14 , - 365 , - 844 , - 427 , - 138 , - 1001 , - 968 , - 39 , - 262 , - 613 , - 68 , - 675 , - 386 , - 225 , - 192 , - 287 , - 510 , - 861 , - 316 , - 923 , - 634 , - 473 , - 440 , - 535 , - 758 , - 85 , - 564 , - 147 , - 882 , - 721 , - 688 , - 783 , - 1006 , - 333 , - 812 , - 395 , - 106 , - 969 , - 936 , - 7 , - 230 , - 581 , - 36 , - 643 , - 354 , - 193 , - 160 , - 255 , - 478 , - 829 , - 284 , - 891 , - 602 , - 441 , - 408 , - 503 , - 726 , - 53 , - 532 , - 115 , - 850 , - 689 , - 656 , - 751 , - 974 , - 301 , - 780 , - 363 , - 74 , - 937 , - 904 , - 999 , - 198 , - 549 , - 4 , - 611 , - 322 , - 161 , - 128 , - 223 , - 446 , - 797 , - 252 , - 859 , - 570 , - 409 , - 376 , - 471 , - 694 , - 21 , - 500 , - 83 , - 818 , - 657 , - 624 , - 719 , - 942 , - 269 , - 748 , - 331 , - 42 , - 905 , - 872 , - 967 , - 166 , - 517 , - 996 , - 579 , - 290 , - 129 , - 96 , - 191 , - 414 , - 765 , - 220 , - 827 , - 538 , - 377 , - 344 , - 439 , - 662 , - 1013 , - 468 , - 51 , - 786 , - 625 , - 592 , - 687 , - 910 , - 237 , - 716 , - 299 , - 10 , - 873 , - 840 , - 935 , - 134 , - 485 , - 964 , - 547 , - 258 , - 97 , - 64 , - 159 , - 382 , - 733 , - 188 , - 795 , - 506 , - 345 , - 312 , - 407 , - 630 , - 981 , - 436 , - 19 , - 754 , - 593 , - 560 , - 655 , - 878 , - 205 , - 684 , - 267 , - 1002 , - 841 , - 808 , - 903 , - 102 , - 453 , - 932 , - 515 , - 226 , - 65 , - 32 , - 127 , - 350 , - 701 , - 156 , - 763 , - 474 , - 313 , - 280 , - 375 , - 598 , - 949 , - 404 , - 1011 , - 722 , - 561 , - 528 , - 623 , - 846 , - 173 , - 652 , - 235 , - 970 , - 809 , - 776 , - 871 , - 70 , - 421 , - 900 , - 483 , - 194 , - 33 , - 0 , - 83 , - 298 , - 645 , - 68 , - 679 , - 366 , - 185 , - 136 , - 219 , - 434 , - 781 , - 204 , - 815 , - 502 , - 321 , - 272 , - 355 , - 570 , - 917 , - 340 , - 951 , - 638 , - 457 , - 408 , - 491 , - 706 , - 1053 , - 476 , - 31 , - 774 , - 593 , - 544 , - 627 , - 842 , - 133 , - 612 , - 167 , - 910 , - 729 , - 680 , - 763 , - 978 , - 269 , - 748 , - 303 , - 1046 , - 865 , - 816 , - 899 , - 58 , - 405 , - 884 , - 439 , - 126 , - 1001 , - 952 , - 1035 , - 194 , - 541 , - 1020 , - 575 , - 262 , - 81 , - 32 , - 115 , - 330 , - 677 , - 100 , - 711 , - 398 , - 217 , - 168 , - 251 , - 466 , - 813 , - 236 , - 847 , - 534 , - 353 , - 304 , - 387 , - 602 , - 949 , - 372 , - 983 , - 670 , - 489 , - 440 , - 523 , - 738 , - 29 , - 508 , - 63 , - 806 , - 625 , - 576 , - 659 , - 874 , - 165 , - 644 , - 199 , - 942 , - 761 , - 712 , - 795 , - 1010 , - 301 , - 780 , - 335 , - 22 , - 897 , - 848 , - 931 , - 90 , - 437 , - 916 , - 471 , - 158 , - 1033 , - 984 , - 11 , - 226 , - 573 , - 1052 , - 607 , - 294 , - 113 , - 64 , - 147 , - 362 , - 709 , - 132 , - 743 , - 430 , - 249 , - 200 , - 283 , - 498 , - 845 , - 268 , - 879 , - 566 , - 385 , - 336 , - 419 , - 634 , - 981 , - 404 , - 1015 , - 702 , - 521 , - 472 , - 555 , - 770 , - 61 , - 540 , - 95 , - 838 , - 657 , - 608 , - 691 , - 906 , - 197 , - 676 , - 231 , - 974 , - 793 , - 744 , - 827 , - 1042 , - 333 , - 812 , - 367 , - 54 , - 929 , - 880 , - 963 , - 122 , - 469 , - 948 , - 503 , - 190 , - 9 , - 1016 , - 43 , - 258 , - 605 , - 28 , - 639 , - 326 , - 145 , - 96 , - 179 , - 394 , - 741 , - 164 , - 775 , - 462 , - 281 , - 232 , - 315 , - 530 , - 877 , - 300 , - 911 , - 598 , - 417 , - 368 , - 451 , - 666 , - 1013 , - 436 , - 1047 , - 734 , - 553 , - 504 , - 587 , - 802 , - 93 , - 572 , - 127 , - 870 , - 689 , - 640 , - 723 , - 938 , - 229 , - 708 , - 263 , - 1006 , - 825 , - 776 , - 859 , - 18 , - 365 , - 844 , - 399 , - 86 , - 961 , - 912 , - 995 , - 154 , - 501 , - 980 , - 535 , - 222 , - 41 , - 1048 , - 75 , - 290 , - 637 , - 60 , - 671 , - 358 , - 177 , - 128 , - 211 , - 426 , - 773 , - 196 , - 807 , - 494 , - 313 , - 264 , - 347 , - 562 , - 909 , - 332 , - 943 , - 630 , - 449 , - 400 , - 483 , - 698 , - 1045 , - 468 , - 23 , - 766 , - 585 , - 536 , - 619 , - 834 , - 125 , - 604 , - 159 , - 902 , - 721 , - 672 , - 755 , - 970 , - 261 , - 740 , - 295 , - 1038 , - 857 , - 808 , - 891 , - 50 , - 397 , - 876 , - 431 , - 118 , - 993 , - 944 , - 1027 , - 186 , - 533 , - 1012 , - 567 , - 254 , - 73 , - 24 , - 107 , - 322 , - 669 , - 92 , - 703 , - 390 , - 209 , - 160 , - 243 , - 458 , - 805 , - 228 , - 839 , - 526 , - 345 , - 296 , - 379 , - 594 , - 941 , - 364 , - 975 , - 662 , - 481 , - 432 , - 515 , - 730 , - 21 , - 500 , - 55 , - 798 , - 617 , - 568 , - 651 , - 866 , - 157 , - 636 , - 191 , - 934 , - 753 , - 704 , - 787 , - 1002 , - 293 , - 772 , - 327 , - 14 , - 889 , - 840 , - 923 , - 82 , - 429 , - 908 , - 463 , - 150 , - 1025 , - 976 , - 3 , - 218 , - 565 , - 1044 , - 599 , - 286 , - 105 , - 56 , - 139 , - 354 , - 701 , - 124 , - 735 , - 422 , - 241 , - 192 , - 275 , - 490 , - 837 , - 260 , - 871 , - 558 , - 377 , - 328 , - 411 , - 626 , - 973 , - 396 , - 1007 , - 694 , - 513 , - 464 , - 547 , - 762 , - 53 , - 532 , - 87 , - 830 , - 649 , - 600 , - 683 , - 898 , - 189 , - 668 , - 223 , - 966 , - 785 , - 736 , - 819 , - 1034 , - 325 , - 804 , - 359 , - 46 , - 921 , - 872 , - 955 , - 114 , - 461 , - 940 , - 495 , - 182 , - 1 , - 1008 , - 35 , - 250 , - 597 , - 20 , - 631 , - 318 , - 137 , - 88 , - 171 , - 386 , - 733 , - 156 , - 767 , - 454 , - 273 , - 224 , - 307 , - 522 , - 869 , - 292 , - 903 , - 590 , - 409 , - 360 , - 443 , - 658 , - 1005 , - 428 , - 1039 , - 726 , - 545 , - 496 , - 579 , - 794 , - 85 , - 564 , - 119 , - 862 , - 681 , - 632 , - 715 , - 930 , - 221 , - 700 , - 255 , - 998 , - 817 , - 768 , - 851 , - 10 , - 357 , - 836 , - 391 , - 78 , - 953 , - 904 , - 987 , - 146 , - 493 , - 972 , - 527 , - 214 , - 33 , - 1040 , - 67 , - 282 , - 629 , - 52 , - 663 , - 350 , - 169 , - 120 , - 203 , - 418 , - 765 , - 188 , - 799 , - 486 , - 305 , - 256 , - 339 , - 554 , - 901 , - 324 , - 935 , - 622 , - 441 , - 392 , - 475 , - 690 , - 1037 , - 460 , - 15 , - 758 , - 577 , - 528 , - 611 , - 826 , - 117 , - 596 , - 151 , - 894 , - 713 , - 664 , - 747 , - 962 , - 253 , - 732 , - 287 , - 1030 , - 849 , - 800 , - 883 , - 42 , - 389 , - 868 , - 423 , - 110 , - 985 , - 936 , - 1019 , - 178 , - 525 , - 1004 , - 559 , - 246 , - 65 , - 16 , - 99 , - 314 , - 661 , - 84 , - 695 , - 382 , - 201 , - 152 , - 235 , - 450 , - 797 , - 220 , - 831 , - 518 , - 337 , - 288 , - 371 , - 586 , - 933 , - 356 , - 967 , - 654 , - 473 , - 424 , - 507 , - 722 , - 13 , - 492 , - 47 , - 790 , - 609 , - 560 , - 643 , - 858 , - 149 , - 628 , - 183 , - 926 , - 745 , - 696 , - 779 , - 994 , - 285 , - 764 , - 319 , - 6 , - 881 , - 832 , - 915 , - 74 , - 421 , - 900 , - 455 , - 142 , - 1017 , - 968 , - 1051 , - 210 , - 557 , - 1036 , - 591 , - 278 , - 97 , - 48 , - 131 , - 346 , - 693 , - 116 , - 727 , - 414 , - 233 , - 184 , - 267 , - 482 , - 829 , - 252 , - 863 , - 550 , - 369 , - 320 , - 403 , - 618 , - 965 , - 388 , - 999 , - 686 , - 505 , - 456 , - 539 , - 754 , - 45 , - 524 , - 79 , - 822 , - 641 , - 592 , - 675 , - 890 , - 181 , - 660 , - 215 , - 958 , - 777 , - 728 , - 811 , - 1026 , - 317 , - 796 , - 351 , - 38 , - 913 , - 864 , - 947 , - 106 , - 453 , - 932 , - 487 , - 174 , - 1049 , - 1000 , - 27 , - 242 , - 589 , - 12 , - 623 , - 310 , - 129 , - 80 , - 163 , - 378 , - 725 , - 148 , - 759 , - 446 , - 265 , - 216 , - 299 , - 514 , - 861 , - 284 , - 895 , - 582 , - 401 , - 352 , - 435 , - 650 , - 997 , - 420 , - 1031 , - 718 , - 537 , - 488 , - 571 , - 786 , - 77 , - 556 , - 111 , - 854 , - 673 , - 624 , - 707 , - 922 , - 213 , - 692 , - 247 , - 990 , - 809 , - 760 , - 843 , - 2 , - 349 , - 828 , - 383 , - 70 , - 945 , - 896 , - 979 , - 138 , - 485 , - 964 , - 519 , - 206 , - 25 , - 1032 , - 59 , - 274 , - 621 , - 44 , - 655 , - 342 , - 161 , - 112 , - 195 , - 410 , - 757 , - 180 , - 791 , - 478 , - 297 , - 248 , - 331 , - 546 , - 893 , - 316 , - 927 , - 614 , - 433 , - 384 , - 467 , - 682 , - 1029 , - 452 , - 7 , - 750 , - 569 , - 520 , - 603 , - 818 , - 109 , - 588 , - 143 , - 886 , - 705 , - 656 , - 739 , - 954 , - 245 , - 724 , - 279 , - 1022 , - 841 , - 792 , - 875 , - 34 , - 381 , - 860 , - 415 , - 102 , - 977 , - 928 , - 1011 , - 170 , - 517 , - 996 , - 551 , - 238 , - 57 , - 8 , - 91 , - 306 , - 653 , - 76 , - 687 , - 374 , - 193 , - 144 , - 227 , - 442 , - 789 , - 212 , - 823 , - 510 , - 329 , - 280 , - 363 , - 578 , - 925 , - 348 , - 959 , - 646 , - 465 , - 416 , - 499 , - 714 , - 5 , - 484 , - 39 , - 782 , - 601 , - 552 , - 635 , - 850 , - 141 , - 620 , - 175 , - 918 , - 737 , - 688 , - 771 , - 986 , - 277 , - 756 , - 311 , - 1054 , - 873 , - 824 , - 907 , - 66 , - 413 , - 892 , - 447 , - 134 , - 1009 , - 960 , - 1043 , - 202 , - 549 , - 1028 , - 583 , - 270 , - 89 , - 40 , - 123 , - 338 , - 685 , - 108 , - 719 , - 406 , - 225 , - 176 , - 259 , - 474 , - 821 , - 244 , - 855 , - 542 , - 361 , - 312 , - 395 , - 610 , - 957 , - 380 , - 991 , - 678 , - 497 , - 448 , - 531 , - 746 , - 37 , - 516 , - 71 , - 814 , - 633 , - 584 , - 667 , - 882 , - 173 , - 652 , - 207 , - 950 , - 769 , - 720 , - 803 , - 1018 , - 309 , - 788 , - 343 , - 30 , - 905 , - 856 , - 939 , - 98 , - 445 , - 924 , - 479 , - 166 , - 1041 , - 992 , - 19 , - 234 , - 581 , - 4 , - 615 , - 302 , - 121 , - 72 , - 155 , - 370 , - 717 , - 140 , - 751 , - 438 , - 257 , - 208 , - 291 , - 506 , - 853 , - 276 , - 887 , - 574 , - 393 , - 344 , - 427 , - 642 , - 989 , - 412 , - 1023 , - 710 , - 529 , - 480 , - 563 , - 778 , - 69 , - 548 , - 103 , - 846 , - 665 , - 616 , - 699 , - 914 , - 205 , - 684 , - 239 , - 982 , - 801 , - 752 , - 835 , - 1050 , - 341 , - 820 , - 375 , - 62 , - 937 , - 888 , - 971 , - 130 , - 477 , - 956 , - 511 , - 198 , - 17 , - 1024 , - 51 , - 266 , - 613 , - 36 , - 647 , - 334 , - 153 , - 104 , - 187 , - 402 , - 749 , - 172 , - 783 , - 470 , - 289 , - 240 , - 323 , - 538 , - 885 , - 308 , - 919 , - 606 , - 425 , - 376 , - 459 , - 674 , - 1021 , - 444 , - 1055 , - 742 , - 561 , - 512 , - 595 , - 810 , - 101 , - 580 , - 135 , - 878 , - 697 , - 648 , - 731 , - 946 , - 237 , - 716 , - 271 , - 1014 , - 833 , - 784 , - 867 , - 26 , - 373 , - 852 , - 407 , - 94 , - 969 , - 920 , - 1003 , - 162 , - 509 , - 988 , - 543 , - 230 , - 49 , - 0 , - 375 , - 70 , - 173 , - 684 , - 515 , - 754 , - 313 , - 280 , - 655 , - 350 , - 453 , - 964 , - 795 , - 1034 , - 593 , - 560 , - 935 , - 630 , - 733 , - 156 , - 1075 , - 226 , - 873 , - 840 , - 127 , - 910 , - 1013 , - 436 , - 267 , - 506 , - 65 , - 32 , - 407 , - 102 , - 205 , - 716 , - 547 , - 786 , - 345 , - 312 , - 687 , - 382 , - 485 , - 996 , - 827 , - 1066 , - 625 , - 592 , - 967 , - 662 , - 765 , - 188 , - 19 , - 258 , - 905 , - 872 , - 159 , - 942 , - 1045 , - 468 , - 299 , - 538 , - 97 , - 64 , - 439 , - 134 , - 237 , - 748 , - 579 , - 818 , - 377 , - 344 , - 719 , - 414 , - 517 , - 1028 , - 859 , - 10 , - 657 , - 624 , - 999 , - 694 , - 797 , - 220 , - 51 , - 290 , - 937 , - 904 , - 191 , - 974 , - 1077 , - 500 , - 331 , - 570 , - 129 , - 96 , - 471 , - 166 , - 269 , - 780 , - 611 , - 850 , - 409 , - 376 , - 751 , - 446 , - 549 , - 1060 , - 891 , - 42 , - 689 , - 656 , - 1031 , - 726 , - 829 , - 252 , - 83 , - 322 , - 969 , - 936 , - 223 , - 1006 , - 21 , - 532 , - 363 , - 602 , - 161 , - 128 , - 503 , - 198 , - 301 , - 812 , - 643 , - 882 , - 441 , - 408 , - 783 , - 478 , - 581 , - 4 , - 923 , - 74 , - 721 , - 688 , - 1063 , - 758 , - 861 , - 284 , - 115 , - 354 , - 1001 , - 968 , - 255 , - 1038 , - 53 , - 564 , - 395 , - 634 , - 193 , - 160 , - 535 , - 230 , - 333 , - 844 , - 675 , - 914 , - 473 , - 440 , - 815 , - 510 , - 613 , - 36 , - 955 , - 106 , - 753 , - 720 , - 7 , - 790 , - 893 , - 316 , - 147 , - 386 , - 1033 , - 1000 , - 287 , - 1070 , - 85 , - 596 , - 427 , - 666 , - 225 , - 192 , - 567 , - 262 , - 365 , - 876 , - 707 , - 946 , - 505 , - 472 , - 847 , - 542 , - 645 , - 68 , - 987 , - 138 , - 785 , - 752 , - 39 , - 822 , - 925 , - 348 , - 179 , - 418 , - 1065 , - 1032 , - 319 , - 14 , - 117 , - 628 , - 459 , - 698 , - 257 , - 224 , - 599 , - 294 , - 397 , - 908 , - 739 , - 978 , - 537 , - 504 , - 879 , - 574 , - 677 , - 100 , - 1019 , - 170 , - 817 , - 784 , - 71 , - 854 , - 957 , - 380 , - 211 , - 450 , - 9 , - 1064 , - 351 , - 46 , - 149 , - 660 , - 491 , - 730 , - 289 , - 256 , - 631 , - 326 , - 429 , - 940 , - 771 , - 1010 , - 569 , - 536 , - 911 , - 606 , - 709 , - 132 , - 1051 , - 202 , - 849 , - 816 , - 103 , - 886 , - 989 , - 412 , - 243 , - 482 , - 41 , - 8 , - 383 , - 78 , - 181 , - 692 , - 523 , - 762 , - 321 , - 288 , - 663 , - 358 , - 461 , - 972 , - 803 , - 1042 , - 601 , - 568 , - 943 , - 638 , - 741 , - 164 , - 1083 , - 234 , - 881 , - 848 , - 135 , - 918 , - 1021 , - 444 , - 275 , - 514 , - 73 , - 40 , - 415 , - 110 , - 213 , - 724 , - 555 , - 794 , - 353 , - 320 , - 695 , - 390 , - 493 , - 1004 , - 835 , - 1074 , - 633 , - 600 , - 975 , - 670 , - 773 , - 196 , - 27 , - 266 , - 913 , - 880 , - 167 , - 950 , - 1053 , - 476 , - 307 , - 546 , - 105 , - 72 , - 447 , - 142 , - 245 , - 756 , - 587 , - 826 , - 385 , - 352 , - 727 , - 422 , - 525 , - 1036 , - 867 , - 18 , - 665 , - 632 , - 1007 , - 702 , - 805 , - 228 , - 59 , - 298 , - 945 , - 912 , - 199 , - 982 , - 1085 , - 508 , - 339 , - 578 , - 137 , - 104 , - 479 , - 174 , - 277 , - 788 , - 619 , - 858 , - 417 , - 384 , - 759 , - 454 , - 557 , - 1068 , - 899 , - 50 , - 697 , - 664 , - 1039 , - 734 , - 837 , - 260 , - 91 , - 330 , - 977 , - 944 , - 231 , - 1014 , - 29 , - 540 , - 371 , - 610 , - 169 , - 136 , - 511 , - 206 , - 309 , - 820 , - 651 , - 890 , - 449 , - 416 , - 791 , - 486 , - 589 , - 12 , - 931 , - 82 , - 729 , - 696 , - 1071 , - 766 , - 869 , - 292 , - 123 , - 362 , - 1009 , - 976 , - 263 , - 1046 , - 61 , - 572 , - 403 , - 642 , - 201 , - 168 , - 543 , - 238 , - 341 , - 852 , - 683 , - 922 , - 481 , - 448 , - 823 , - 518 , - 621 , - 44 , - 963 , - 114 , - 761 , - 728 , - 15 , - 798 , - 901 , - 324 , - 155 , - 394 , - 1041 , - 1008 , - 295 , - 1078 , - 93 , - 604 , - 435 , - 674 , - 233 , - 200 , - 575 , - 270 , - 373 , - 884 , - 715 , - 954 , - 513 , - 480 , - 855 , - 550 , - 653 , - 76 , - 995 , - 146 , - 793 , - 760 , - 47 , - 830 , - 933 , - 356 , - 187 , - 426 , - 1073 , - 1040 , - 327 , - 22 , - 125 , - 636 , - 467 , - 706 , - 265 , - 232 , - 607 , - 302 , - 405 , - 916 , - 747 , - 986 , - 545 , - 512 , - 887 , - 582 , - 685 , - 108 , - 1027 , - 178 , - 825 , - 792 , - 79 , - 862 , - 965 , - 388 , - 219 , - 458 , - 17 , - 1072 , - 359 , - 54 , - 157 , - 668 , - 499 , - 738 , - 297 , - 264 , - 639 , - 334 , - 437 , - 948 , - 779 , - 1018 , - 577 , - 544 , - 919 , - 614 , - 717 , - 140 , - 1059 , - 210 , - 857 , - 824 , - 111 , - 894 , - 997 , - 420 , - 251 , - 490 , - 49 , - 16 , - 391 , - 86 , - 189 , - 700 , - 531 , - 770 , - 329 , - 296 , - 671 , - 366 , - 469 , - 980 , - 811 , - 1050 , - 609 , - 576 , - 951 , - 646 , - 749 , - 172 , - 3 , - 242 , - 889 , - 856 , - 143 , - 926 , - 1029 , - 452 , - 283 , - 522 , - 81 , - 48 , - 423 , - 118 , - 221 , - 732 , - 563 , - 802 , - 361 , - 328 , - 703 , - 398 , - 501 , - 1012 , - 843 , - 1082 , - 641 , - 608 , - 983 , - 678 , - 781 , - 204 , - 35 , - 274 , - 921 , - 888 , - 175 , - 958 , - 1061 , - 484 , - 315 , - 554 , - 113 , - 80 , - 455 , - 150 , - 253 , - 764 , - 595 , - 834 , - 393 , - 360 , - 735 , - 430 , - 533 , - 1044 , - 875 , - 26 , - 673 , - 640 , - 1015 , - 710 , - 813 , - 236 , - 67 , - 306 , - 953 , - 920 , - 207 , - 990 , - 5 , - 516 , - 347 , - 586 , - 145 , - 112 , - 487 , - 182 , - 285 , - 796 , - 627 , - 866 , - 425 , - 392 , - 767 , - 462 , - 565 , - 1076 , - 907 , - 58 , - 705 , - 672 , - 1047 , - 742 , - 845 , - 268 , - 99 , - 338 , - 985 , - 952 , - 239 , - 1022 , - 37 , - 548 , - 379 , - 618 , - 177 , - 144 , - 519 , - 214 , - 317 , - 828 , - 659 , - 898 , - 457 , - 424 , - 799 , - 494 , - 597 , - 20 , - 939 , - 90 , - 737 , - 704 , - 1079 , - 774 , - 877 , - 300 , - 131 , - 370 , - 1017 , - 984 , - 271 , - 1054 , - 69 , - 580 , - 411 , - 650 , - 209 , - 176 , - 551 , - 246 , - 349 , - 860 , - 691 , - 930 , - 489 , - 456 , - 831 , - 526 , - 629 , - 52 , - 971 , - 122 , - 769 , - 736 , - 23 , - 806 , - 909 , - 332 , - 163 , - 402 , - 1049 , - 1016 , - 303 , - 1086 , - 101 , - 612 , - 443 , - 682 , - 241 , - 208 , - 583 , - 278 , - 381 , - 892 , - 723 , - 962 , - 521 , - 488 , - 863 , - 558 , - 661 , - 84 , - 1003 , - 154 , - 801 , - 768 , - 55 , - 838 , - 941 , - 364 , - 195 , - 434 , - 1081 , - 1048 , - 335 , - 30 , - 133 , - 644 , - 475 , - 714 , - 273 , - 240 , - 615 , - 310 , - 413 , - 924 , - 755 , - 994 , - 553 , - 520 , - 895 , - 590 , - 693 , - 116 , - 1035 , - 186 , - 833 , - 800 , - 87 , - 870 , - 973 , - 396 , - 227 , - 466 , - 25 , - 1080 , - 367 , - 62 , - 165 , - 676 , - 507 , - 746 , - 305 , - 272 , - 647 , - 342 , - 445 , - 956 , - 787 , - 1026 , - 585 , - 552 , - 927 , - 622 , - 725 , - 148 , - 1067 , - 218 , - 865 , - 832 , - 119 , - 902 , - 1005 , - 428 , - 259 , - 498 , - 57 , - 24 , - 399 , - 94 , - 197 , - 708 , - 539 , - 778 , - 337 , - 304 , - 679 , - 374 , - 477 , - 988 , - 819 , - 1058 , - 617 , - 584 , - 959 , - 654 , - 757 , - 180 , - 11 , - 250 , - 897 , - 864 , - 151 , - 934 , - 1037 , - 460 , - 291 , - 530 , - 89 , - 56 , - 431 , - 126 , - 229 , - 740 , - 571 , - 810 , - 369 , - 336 , - 711 , - 406 , - 509 , - 1020 , - 851 , - 2 , - 649 , - 616 , - 991 , - 686 , - 789 , - 212 , - 43 , - 282 , - 929 , - 896 , - 183 , - 966 , - 1069 , - 492 , - 323 , - 562 , - 121 , - 88 , - 463 , - 158 , - 261 , - 772 , - 603 , - 842 , - 401 , - 368 , - 743 , - 438 , - 541 , - 1052 , - 883 , - 34 , - 681 , - 648 , - 1023 , - 718 , - 821 , - 244 , - 75 , - 314 , - 961 , - 928 , - 215 , - 998 , - 13 , - 524 , - 355 , - 594 , - 153 , - 120 , - 495 , - 190 , - 293 , - 804 , - 635 , - 874 , - 433 , - 400 , - 775 , - 470 , - 573 , - 1084 , - 915 , - 66 , - 713 , - 680 , - 1055 , - 750 , - 853 , - 276 , - 107 , - 346 , - 993 , - 960 , - 247 , - 1030 , - 45 , - 556 , - 387 , - 626 , - 185 , - 152 , - 527 , - 222 , - 325 , - 836 , - 667 , - 906 , - 465 , - 432 , - 807 , - 502 , - 605 , - 28 , - 947 , - 98 , - 745 , - 712 , - 1087 , - 782 , - 885 , - 308 , - 139 , - 378 , - 1025 , - 992 , - 279 , - 1062 , - 77 , - 588 , - 419 , - 658 , - 217 , - 184 , - 559 , - 254 , - 357 , - 868 , - 699 , - 938 , - 497 , - 464 , - 839 , - 534 , - 637 , - 60 , - 979 , - 130 , - 777 , - 744 , - 31 , - 814 , - 917 , - 340 , - 171 , - 410 , - 1057 , - 1024 , - 311 , - 6 , - 109 , - 620 , - 451 , - 690 , - 249 , - 216 , - 591 , - 286 , - 389 , - 900 , - 731 , - 970 , - 529 , - 496 , - 871 , - 566 , - 669 , - 92 , - 1011 , - 162 , - 809 , - 776 , - 63 , - 846 , - 949 , - 372 , - 203 , - 442 , - 1 , - 1056 , - 343 , - 38 , - 141 , - 652 , - 483 , - 722 , - 281 , - 248 , - 623 , - 318 , - 421 , - 932 , - 763 , - 1002 , - 561 , - 528 , - 903 , - 598 , - 701 , - 124 , - 1043 , - 194 , - 841 , - 808 , - 95 , - 878 , - 981 , - 404 , - 235 , - 474 , - 33 , - 0 , - 207 , - 694 , - 341 , - 268 , - 475 , - 962 , - 609 , - 536 , - 743 , - 110 , - 877 , - 804 , - 1011 , - 378 , - 25 , - 1072 , - 159 , - 646 , - 293 , - 220 , - 427 , - 914 , - 561 , - 488 , - 695 , - 62 , - 829 , - 756 , - 963 , - 330 , - 1097 , - 1024 , - 111 , - 598 , - 245 , - 172 , - 379 , - 866 , - 513 , - 440 , - 647 , - 14 , - 781 , - 708 , - 915 , - 282 , - 1049 , - 976 , - 63 , - 550 , - 197 , - 124 , - 331 , - 818 , - 465 , - 392 , - 599 , - 1086 , - 733 , - 660 , - 867 , - 234 , - 1001 , - 928 , - 15 , - 502 , - 149 , - 76 , - 283 , - 770 , - 417 , - 344 , - 551 , - 1038 , - 685 , - 612 , - 819 , - 186 , - 953 , - 880 , - 1087 , - 454 , - 101 , - 28 , - 235 , - 722 , - 369 , - 296 , - 503 , - 990 , - 637 , - 564 , - 771 , - 138 , - 905 , - 832 , - 1039 , - 406 , - 53 , - 1100 , - 187 , - 674 , - 321 , - 248 , - 455 , - 942 , - 589 , - 516 , - 723 , - 90 , - 857 , - 784 , - 991 , - 358 , - 5 , - 1052 , - 139 , - 626 , - 273 , - 200 , - 407 , - 894 , - 541 , - 468 , - 675 , - 42 , - 809 , - 736 , - 943 , - 310 , - 1077 , - 1004 , - 91 , - 578 , - 225 , - 152 , - 359 , - 846 , - 493 , - 420 , - 627 , - 1114 , - 761 , - 688 , - 895 , - 262 , - 1029 , - 956 , - 43 , - 530 , - 177 , - 104 , - 311 , - 798 , - 445 , - 372 , - 579 , - 1066 , - 713 , - 640 , - 847 , - 214 , - 981 , - 908 , - 1115 , - 482 , - 129 , - 56 , - 263 , - 750 , - 397 , - 324 , - 531 , - 1018 , - 665 , - 592 , - 799 , - 166 , - 933 , - 860 , - 1067 , - 434 , - 81 , - 8 , - 215 , - 702 , - 349 , - 276 , - 483 , - 970 , - 617 , - 544 , - 751 , - 118 , - 885 , - 812 , - 1019 , - 386 , - 33 , - 1080 , - 167 , - 654 , - 301 , - 228 , - 435 , - 922 , - 569 , - 496 , - 703 , - 70 , - 837 , - 764 , - 971 , - 338 , - 1105 , - 1032 , - 119 , - 606 , - 253 , - 180 , - 387 , - 874 , - 521 , - 448 , - 655 , - 22 , - 789 , - 716 , - 923 , - 290 , - 1057 , - 984 , - 71 , - 558 , - 205 , - 132 , - 339 , - 826 , - 473 , - 400 , - 607 , - 1094 , - 741 , - 668 , - 875 , - 242 , - 1009 , - 936 , - 23 , - 510 , - 157 , - 84 , - 291 , - 778 , - 425 , - 352 , - 559 , - 1046 , - 693 , - 620 , - 827 , - 194 , - 961 , - 888 , - 1095 , - 462 , - 109 , - 36 , - 243 , - 730 , - 377 , - 304 , - 511 , - 998 , - 645 , - 572 , - 779 , - 146 , - 913 , - 840 , - 1047 , - 414 , - 61 , - 1108 , - 195 , - 682 , - 329 , - 256 , - 463 , - 950 , - 597 , - 524 , - 731 , - 98 , - 865 , - 792 , - 999 , - 366 , - 13 , - 1060 , - 147 , - 634 , - 281 , - 208 , - 415 , - 902 , - 549 , - 476 , - 683 , - 50 , - 817 , - 744 , - 951 , - 318 , - 1085 , - 1012 , - 99 , - 586 , - 233 , - 160 , - 367 , - 854 , - 501 , - 428 , - 635 , - 2 , - 769 , - 696 , - 903 , - 270 , - 1037 , - 964 , - 51 , - 538 , - 185 , - 112 , - 319 , - 806 , - 453 , - 380 , - 587 , - 1074 , - 721 , - 648 , - 855 , - 222 , - 989 , - 916 , - 3 , - 490 , - 137 , - 64 , - 271 , - 758 , - 405 , - 332 , - 539 , - 1026 , - 673 , - 600 , - 807 , - 174 , - 941 , - 868 , - 1075 , - 442 , - 89 , - 16 , - 223 , - 710 , - 357 , - 284 , - 491 , - 978 , - 625 , - 552 , - 759 , - 126 , - 893 , - 820 , - 1027 , - 394 , - 41 , - 1088 , - 175 , - 662 , - 309 , - 236 , - 443 , - 930 , - 577 , - 504 , - 711 , - 78 , - 845 , - 772 , - 979 , - 346 , - 1113 , - 1040 , - 127 , - 614 , - 261 , - 188 , - 395 , - 882 , - 529 , - 456 , - 663 , - 30 , - 797 , - 724 , - 931 , - 298 , - 1065 , - 992 , - 79 , - 566 , - 213 , - 140 , - 347 , - 834 , - 481 , - 408 , - 615 , - 1102 , - 749 , - 676 , - 883 , - 250 , - 1017 , - 944 , - 31 , - 518 , - 165 , - 92 , - 299 , - 786 , - 433 , - 360 , - 567 , - 1054 , - 701 , - 628 , - 835 , - 202 , - 969 , - 896 , - 1103 , - 470 , - 117 , - 44 , - 251 , - 738 , - 385 , - 312 , - 519 , - 1006 , - 653 , - 580 , - 787 , - 154 , - 921 , - 848 , - 1055 , - 422 , - 69 , - 1116 , - 203 , - 690 , - 337 , - 264 , - 471 , - 958 , - 605 , - 532 , - 739 , - 106 , - 873 , - 800 , - 1007 , - 374 , - 21 , - 1068 , - 155 , - 642 , - 289 , - 216 , - 423 , - 910 , - 557 , - 484 , - 691 , - 58 , - 825 , - 752 , - 959 , - 326 , - 1093 , - 1020 , - 107 , - 594 , - 241 , - 168 , - 375 , - 862 , - 509 , - 436 , - 643 , - 10 , - 777 , - 704 , - 911 , - 278 , - 1045 , - 972 , - 59 , - 546 , - 193 , - 120 , - 327 , - 814 , - 461 , - 388 , - 595 , - 1082 , - 729 , - 656 , - 863 , - 230 , - 997 , - 924 , - 11 , - 498 , - 145 , - 72 , - 279 , - 766 , - 413 , - 340 , - 547 , - 1034 , - 681 , - 608 , - 815 , - 182 , - 949 , - 876 , - 1083 , - 450 , - 97 , - 24 , - 231 , - 718 , - 365 , - 292 , - 499 , - 986 , - 633 , - 560 , - 767 , - 134 , - 901 , - 828 , - 1035 , - 402 , - 49 , - 1096 , - 183 , - 670 , - 317 , - 244 , - 451 , - 938 , - 585 , - 512 , - 719 , - 86 , - 853 , - 780 , - 987 , - 354 , - 1 , - 1048 , - 135 , - 622 , - 269 , - 196 , - 403 , - 890 , - 537 , - 464 , - 671 , - 38 , - 805 , - 732 , - 939 , - 306 , - 1073 , - 1000 , - 87 , - 574 , - 221 , - 148 , - 355 , - 842 , - 489 , - 416 , - 623 , - 1110 , - 757 , - 684 , - 891 , - 258 , - 1025 , - 952 , - 39 , - 526 , - 173 , - 100 , - 307 , - 794 , - 441 , - 368 , - 575 , - 1062 , - 709 , - 636 , - 843 , - 210 , - 977 , - 904 , - 1111 , - 478 , - 125 , - 52 , - 259 , - 746 , - 393 , - 320 , - 527 , - 1014 , - 661 , - 588 , - 795 , - 162 , - 929 , - 856 , - 1063 , - 430 , - 77 , - 4 , - 211 , - 698 , - 345 , - 272 , - 479 , - 966 , - 613 , - 540 , - 747 , - 114 , - 881 , - 808 , - 1015 , - 382 , - 29 , - 1076 , - 163 , - 650 , - 297 , - 224 , - 431 , - 918 , - 565 , - 492 , - 699 , - 66 , - 833 , - 760 , - 967 , - 334 , - 1101 , - 1028 , - 115 , - 602 , - 249 , - 176 , - 383 , - 870 , - 517 , - 444 , - 651 , - 18 , - 785 , - 712 , - 919 , - 286 , - 1053 , - 980 , - 67 , - 554 , - 201 , - 128 , - 335 , - 822 , - 469 , - 396 , - 603 , - 1090 , - 737 , - 664 , - 871 , - 238 , - 1005 , - 932 , - 19 , - 506 , - 153 , - 80 , - 287 , - 774 , - 421 , - 348 , - 555 , - 1042 , - 689 , - 616 , - 823 , - 190 , - 957 , - 884 , - 1091 , - 458 , - 105 , - 32 , - 239 , - 726 , - 373 , - 300 , - 507 , - 994 , - 641 , - 568 , - 775 , - 142 , - 909 , - 836 , - 1043 , - 410 , - 57 , - 1104 , - 191 , - 678 , - 325 , - 252 , - 459 , - 946 , - 593 , - 520 , - 727 , - 94 , - 861 , - 788 , - 995 , - 362 , - 9 , - 1056 , - 143 , - 630 , - 277 , - 204 , - 411 , - 898 , - 545 , - 472 , - 679 , - 46 , - 813 , - 740 , - 947 , - 314 , - 1081 , - 1008 , - 95 , - 582 , - 229 , - 156 , - 363 , - 850 , - 497 , - 424 , - 631 , - 1118 , - 765 , - 692 , - 899 , - 266 , - 1033 , - 960 , - 47 , - 534 , - 181 , - 108 , - 315 , - 802 , - 449 , - 376 , - 583 , - 1070 , - 717 , - 644 , - 851 , - 218 , - 985 , - 912 , - 1119 , - 486 , - 133 , - 60 , - 267 , - 754 , - 401 , - 328 , - 535 , - 1022 , - 669 , - 596 , - 803 , - 170 , - 937 , - 864 , - 1071 , - 438 , - 85 , - 12 , - 219 , - 706 , - 353 , - 280 , - 487 , - 974 , - 621 , - 548 , - 755 , - 122 , - 889 , - 816 , - 1023 , - 390 , - 37 , - 1084 , - 171 , - 658 , - 305 , - 232 , - 439 , - 926 , - 573 , - 500 , - 707 , - 74 , - 841 , - 768 , - 975 , - 342 , - 1109 , - 1036 , - 123 , - 610 , - 257 , - 184 , - 391 , - 878 , - 525 , - 452 , - 659 , - 26 , - 793 , - 720 , - 927 , - 294 , - 1061 , - 988 , - 75 , - 562 , - 209 , - 136 , - 343 , - 830 , - 477 , - 404 , - 611 , - 1098 , - 745 , - 672 , - 879 , - 246 , - 1013 , - 940 , - 27 , - 514 , - 161 , - 88 , - 295 , - 782 , - 429 , - 356 , - 563 , - 1050 , - 697 , - 624 , - 831 , - 198 , - 965 , - 892 , - 1099 , - 466 , - 113 , - 40 , - 247 , - 734 , - 381 , - 308 , - 515 , - 1002 , - 649 , - 576 , - 783 , - 150 , - 917 , - 844 , - 1051 , - 418 , - 65 , - 1112 , - 199 , - 686 , - 333 , - 260 , - 467 , - 954 , - 601 , - 528 , - 735 , - 102 , - 869 , - 796 , - 1003 , - 370 , - 17 , - 1064 , - 151 , - 638 , - 285 , - 212 , - 419 , - 906 , - 553 , - 480 , - 687 , - 54 , - 821 , - 748 , - 955 , - 322 , - 1089 , - 1016 , - 103 , - 590 , - 237 , - 164 , - 371 , - 858 , - 505 , - 432 , - 639 , - 6 , - 773 , - 700 , - 907 , - 274 , - 1041 , - 968 , - 55 , - 542 , - 189 , - 116 , - 323 , - 810 , - 457 , - 384 , - 591 , - 1078 , - 725 , - 652 , - 859 , - 226 , - 993 , - 920 , - 7 , - 494 , - 141 , - 68 , - 275 , - 762 , - 409 , - 336 , - 543 , - 1030 , - 677 , - 604 , - 811 , - 178 , - 945 , - 872 , - 1079 , - 446 , - 93 , - 20 , - 227 , - 714 , - 361 , - 288 , - 495 , - 982 , - 629 , - 556 , - 763 , - 130 , - 897 , - 824 , - 1031 , - 398 , - 45 , - 1092 , - 179 , - 666 , - 313 , - 240 , - 447 , - 934 , - 581 , - 508 , - 715 , - 82 , - 849 , - 776 , - 983 , - 350 , - 1117 , - 1044 , - 131 , - 618 , - 265 , - 192 , - 399 , - 886 , - 533 , - 460 , - 667 , - 34 , - 801 , - 728 , - 935 , - 302 , - 1069 , - 996 , - 83 , - 570 , - 217 , - 144 , - 351 , - 838 , - 485 , - 412 , - 619 , - 1106 , - 753 , - 680 , - 887 , - 254 , - 1021 , - 948 , - 35 , - 522 , - 169 , - 96 , - 303 , - 790 , - 437 , - 364 , - 571 , - 1058 , - 705 , - 632 , - 839 , - 206 , - 973 , - 900 , - 1107 , - 474 , - 121 , - 48 , - 255 , - 742 , - 389 , - 316 , - 523 , - 1010 , - 657 , - 584 , - 791 , - 158 , - 925 , - 852 , - 1059 , - 426 , - 73 , - 0 , - 107 , - 358 , - 753 , - 140 , - 823 , - 498 , - 317 , - 280 , - 387 , - 638 , - 1033 , - 420 , - 1103 , - 778 , - 597 , - 560 , - 667 , - 918 , - 161 , - 700 , - 231 , - 1058 , - 877 , - 840 , - 947 , - 46 , - 441 , - 980 , - 511 , - 186 , - 5 , - 1120 , - 75 , - 326 , - 721 , - 108 , - 791 , - 466 , - 285 , - 248 , - 355 , - 606 , - 1001 , - 388 , - 1071 , - 746 , - 565 , - 528 , - 635 , - 886 , - 129 , - 668 , - 199 , - 1026 , - 845 , - 808 , - 915 , - 14 , - 409 , - 948 , - 479 , - 154 , - 1125 , - 1088 , - 43 , - 294 , - 689 , - 76 , - 759 , - 434 , - 253 , - 216 , - 323 , - 574 , - 969 , - 356 , - 1039 , - 714 , - 533 , - 496 , - 603 , - 854 , - 97 , - 636 , - 167 , - 994 , - 813 , - 776 , - 883 , - 1134 , - 377 , - 916 , - 447 , - 122 , - 1093 , - 1056 , - 11 , - 262 , - 657 , - 44 , - 727 , - 402 , - 221 , - 184 , - 291 , - 542 , - 937 , - 324 , - 1007 , - 682 , - 501 , - 464 , - 571 , - 822 , - 65 , - 604 , - 135 , - 962 , - 781 , - 744 , - 851 , - 1102 , - 345 , - 884 , - 415 , - 90 , - 1061 , - 1024 , - 1131 , - 230 , - 625 , - 12 , - 695 , - 370 , - 189 , - 152 , - 259 , - 510 , - 905 , - 292 , - 975 , - 650 , - 469 , - 432 , - 539 , - 790 , - 33 , - 572 , - 103 , - 930 , - 749 , - 712 , - 819 , - 1070 , - 313 , - 852 , - 383 , - 58 , - 1029 , - 992 , - 1099 , - 198 , - 593 , - 1132 , - 663 , - 338 , - 157 , - 120 , - 227 , - 478 , - 873 , - 260 , - 943 , - 618 , - 437 , - 400 , - 507 , - 758 , - 1 , - 540 , - 71 , - 898 , - 717 , - 680 , - 787 , - 1038 , - 281 , - 820 , - 351 , - 26 , - 997 , - 960 , - 1067 , - 166 , - 561 , - 1100 , - 631 , - 306 , - 125 , - 88 , - 195 , - 446 , - 841 , - 228 , - 911 , - 586 , - 405 , - 368 , - 475 , - 726 , - 1121 , - 508 , - 39 , - 866 , - 685 , - 648 , - 755 , - 1006 , - 249 , - 788 , - 319 , - 1146 , - 965 , - 928 , - 1035 , - 134 , - 529 , - 1068 , - 599 , - 274 , - 93 , - 56 , - 163 , - 414 , - 809 , - 196 , - 879 , - 554 , - 373 , - 336 , - 443 , - 694 , - 1089 , - 476 , - 7 , - 834 , - 653 , - 616 , - 723 , - 974 , - 217 , - 756 , - 287 , - 1114 , - 933 , - 896 , - 1003 , - 102 , - 497 , - 1036 , - 567 , - 242 , - 61 , - 24 , - 131 , - 382 , - 777 , - 164 , - 847 , - 522 , - 341 , - 304 , - 411 , - 662 , - 1057 , - 444 , - 1127 , - 802 , - 621 , - 584 , - 691 , - 942 , - 185 , - 724 , - 255 , - 1082 , - 901 , - 864 , - 971 , - 70 , - 465 , - 1004 , - 535 , - 210 , - 29 , - 1144 , - 99 , - 350 , - 745 , - 132 , - 815 , - 490 , - 309 , - 272 , - 379 , - 630 , - 1025 , - 412 , - 1095 , - 770 , - 589 , - 552 , - 659 , - 910 , - 153 , - 692 , - 223 , - 1050 , - 869 , - 832 , - 939 , - 38 , - 433 , - 972 , - 503 , - 178 , - 1149 , - 1112 , - 67 , - 318 , - 713 , - 100 , - 783 , - 458 , - 277 , - 240 , - 347 , - 598 , - 993 , - 380 , - 1063 , - 738 , - 557 , - 520 , - 627 , - 878 , - 121 , - 660 , - 191 , - 1018 , - 837 , - 800 , - 907 , - 6 , - 401 , - 940 , - 471 , - 146 , - 1117 , - 1080 , - 35 , - 286 , - 681 , - 68 , - 751 , - 426 , - 245 , - 208 , - 315 , - 566 , - 961 , - 348 , - 1031 , - 706 , - 525 , - 488 , - 595 , - 846 , - 89 , - 628 , - 159 , - 986 , - 805 , - 768 , - 875 , - 1126 , - 369 , - 908 , - 439 , - 114 , - 1085 , - 1048 , - 3 , - 254 , - 649 , - 36 , - 719 , - 394 , - 213 , - 176 , - 283 , - 534 , - 929 , - 316 , - 999 , - 674 , - 493 , - 456 , - 563 , - 814 , - 57 , - 596 , - 127 , - 954 , - 773 , - 736 , - 843 , - 1094 , - 337 , - 876 , - 407 , - 82 , - 1053 , - 1016 , - 1123 , - 222 , - 617 , - 4 , - 687 , - 362 , - 181 , - 144 , - 251 , - 502 , - 897 , - 284 , - 967 , - 642 , - 461 , - 424 , - 531 , - 782 , - 25 , - 564 , - 95 , - 922 , - 741 , - 704 , - 811 , - 1062 , - 305 , - 844 , - 375 , - 50 , - 1021 , - 984 , - 1091 , - 190 , - 585 , - 1124 , - 655 , - 330 , - 149 , - 112 , - 219 , - 470 , - 865 , - 252 , - 935 , - 610 , - 429 , - 392 , - 499 , - 750 , - 1145 , - 532 , - 63 , - 890 , - 709 , - 672 , - 779 , - 1030 , - 273 , - 812 , - 343 , - 18 , - 989 , - 952 , - 1059 , - 158 , - 553 , - 1092 , - 623 , - 298 , - 117 , - 80 , - 187 , - 438 , - 833 , - 220 , - 903 , - 578 , - 397 , - 360 , - 467 , - 718 , - 1113 , - 500 , - 31 , - 858 , - 677 , - 640 , - 747 , - 998 , - 241 , - 780 , - 311 , - 1138 , - 957 , - 920 , - 1027 , - 126 , - 521 , - 1060 , - 591 , - 266 , - 85 , - 48 , - 155 , - 406 , - 801 , - 188 , - 871 , - 546 , - 365 , - 328 , - 435 , - 686 , - 1081 , - 468 , - 1151 , - 826 , - 645 , - 608 , - 715 , - 966 , - 209 , - 748 , - 279 , - 1106 , - 925 , - 888 , - 995 , - 94 , - 489 , - 1028 , - 559 , - 234 , - 53 , - 16 , - 123 , - 374 , - 769 , - 156 , - 839 , - 514 , - 333 , - 296 , - 403 , - 654 , - 1049 , - 436 , - 1119 , - 794 , - 613 , - 576 , - 683 , - 934 , - 177 , - 716 , - 247 , - 1074 , - 893 , - 856 , - 963 , - 62 , - 457 , - 996 , - 527 , - 202 , - 21 , - 1136 , - 91 , - 342 , - 737 , - 124 , - 807 , - 482 , - 301 , - 264 , - 371 , - 622 , - 1017 , - 404 , - 1087 , - 762 , - 581 , - 544 , - 651 , - 902 , - 145 , - 684 , - 215 , - 1042 , - 861 , - 824 , - 931 , - 30 , - 425 , - 964 , - 495 , - 170 , - 1141 , - 1104 , - 59 , - 310 , - 705 , - 92 , - 775 , - 450 , - 269 , - 232 , - 339 , - 590 , - 985 , - 372 , - 1055 , - 730 , - 549 , - 512 , - 619 , - 870 , - 113 , - 652 , - 183 , - 1010 , - 829 , - 792 , - 899 , - 1150 , - 393 , - 932 , - 463 , - 138 , - 1109 , - 1072 , - 27 , - 278 , - 673 , - 60 , - 743 , - 418 , - 237 , - 200 , - 307 , - 558 , - 953 , - 340 , - 1023 , - 698 , - 517 , - 480 , - 587 , - 838 , - 81 , - 620 , - 151 , - 978 , - 797 , - 760 , - 867 , - 1118 , - 361 , - 900 , - 431 , - 106 , - 1077 , - 1040 , - 1147 , - 246 , - 641 , - 28 , - 711 , - 386 , - 205 , - 168 , - 275 , - 526 , - 921 , - 308 , - 991 , - 666 , - 485 , - 448 , - 555 , - 806 , - 49 , - 588 , - 119 , - 946 , - 765 , - 728 , - 835 , - 1086 , - 329 , - 868 , - 399 , - 74 , - 1045 , - 1008 , - 1115 , - 214 , - 609 , - 1148 , - 679 , - 354 , - 173 , - 136 , - 243 , - 494 , - 889 , - 276 , - 959 , - 634 , - 453 , - 416 , - 523 , - 774 , - 17 , - 556 , - 87 , - 914 , - 733 , - 696 , - 803 , - 1054 , - 297 , - 836 , - 367 , - 42 , - 1013 , - 976 , - 1083 , - 182 , - 577 , - 1116 , - 647 , - 322 , - 141 , - 104 , - 211 , - 462 , - 857 , - 244 , - 927 , - 602 , - 421 , - 384 , - 491 , - 742 , - 1137 , - 524 , - 55 , - 882 , - 701 , - 664 , - 771 , - 1022 , - 265 , - 804 , - 335 , - 10 , - 981 , - 944 , - 1051 , - 150 , - 545 , - 1084 , - 615 , - 290 , - 109 , - 72 , - 179 , - 430 , - 825 , - 212 , - 895 , - 570 , - 389 , - 352 , - 459 , - 710 , - 1105 , - 492 , - 23 , - 850 , - 669 , - 632 , - 739 , - 990 , - 233 , - 772 , - 303 , - 1130 , - 949 , - 912 , - 1019 , - 118 , - 513 , - 1052 , - 583 , - 258 , - 77 , - 40 , - 147 , - 398 , - 793 , - 180 , - 863 , - 538 , - 357 , - 320 , - 427 , - 678 , - 1073 , - 460 , - 1143 , - 818 , - 637 , - 600 , - 707 , - 958 , - 201 , - 740 , - 271 , - 1098 , - 917 , - 880 , - 987 , - 86 , - 481 , - 1020 , - 551 , - 226 , - 45 , - 8 , - 115 , - 366 , - 761 , - 148 , - 831 , - 506 , - 325 , - 288 , - 395 , - 646 , - 1041 , - 428 , - 1111 , - 786 , - 605 , - 568 , - 675 , - 926 , - 169 , - 708 , - 239 , - 1066 , - 885 , - 848 , - 955 , - 54 , - 449 , - 988 , - 519 , - 194 , - 13 , - 1128 , - 83 , - 334 , - 729 , - 116 , - 799 , - 474 , - 293 , - 256 , - 363 , - 614 , - 1009 , - 396 , - 1079 , - 754 , - 573 , - 536 , - 643 , - 894 , - 137 , - 676 , - 207 , - 1034 , - 853 , - 816 , - 923 , - 22 , - 417 , - 956 , - 487 , - 162 , - 1133 , - 1096 , - 51 , - 302 , - 697 , - 84 , - 767 , - 442 , - 261 , - 224 , - 331 , - 582 , - 977 , - 364 , - 1047 , - 722 , - 541 , - 504 , - 611 , - 862 , - 105 , - 644 , - 175 , - 1002 , - 821 , - 784 , - 891 , - 1142 , - 385 , - 924 , - 455 , - 130 , - 1101 , - 1064 , - 19 , - 270 , - 665 , - 52 , - 735 , - 410 , - 229 , - 192 , - 299 , - 550 , - 945 , - 332 , - 1015 , - 690 , - 509 , - 472 , - 579 , - 830 , - 73 , - 612 , - 143 , - 970 , - 789 , - 752 , - 859 , - 1110 , - 353 , - 892 , - 423 , - 98 , - 1069 , - 1032 , - 1139 , - 238 , - 633 , - 20 , - 703 , - 378 , - 197 , - 160 , - 267 , - 518 , - 913 , - 300 , - 983 , - 658 , - 477 , - 440 , - 547 , - 798 , - 41 , - 580 , - 111 , - 938 , - 757 , - 720 , - 827 , - 1078 , - 321 , - 860 , - 391 , - 66 , - 1037 , - 1000 , - 1107 , - 206 , - 601 , - 1140 , - 671 , - 346 , - 165 , - 128 , - 235 , - 486 , - 881 , - 268 , - 951 , - 626 , - 445 , - 408 , - 515 , - 766 , - 9 , - 548 , - 79 , - 906 , - 725 , - 688 , - 795 , - 1046 , - 289 , - 828 , - 359 , - 34 , - 1005 , - 968 , - 1075 , - 174 , - 569 , - 1108 , - 639 , - 314 , - 133 , - 96 , - 203 , - 454 , - 849 , - 236 , - 919 , - 594 , - 413 , - 376 , - 483 , - 734 , - 1129 , - 516 , - 47 , - 874 , - 693 , - 656 , - 763 , - 1014 , - 257 , - 796 , - 327 , - 2 , - 973 , - 936 , - 1043 , - 142 , - 537 , - 1076 , - 607 , - 282 , - 101 , - 64 , - 171 , - 422 , - 817 , - 204 , - 887 , - 562 , - 381 , - 344 , - 451 , - 702 , - 1097 , - 484 , - 15 , - 842 , - 661 , - 624 , - 731 , - 982 , - 225 , - 764 , - 295 , - 1122 , - 941 , - 904 , - 1011 , - 110 , - 505 , - 1044 , - 575 , - 250 , - 69 , - 32 , - 139 , - 390 , - 785 , - 172 , - 855 , - 530 , - 349 , - 312 , - 419 , - 670 , - 1065 , - 452 , - 1135 , - 810 , - 629 , - 592 , - 699 , - 950 , - 193 , - 732 , - 263 , - 1090 , - 909 , - 872 , - 979 , - 78 , - 473 , - 1012 , - 543 , - 218 , - 37 , - 0 , - 93 , - 334 , - 723 , - 76 , - 761 , - 410 , - 207 , - 152 , - 245 , - 486 , - 875 , - 228 , - 913 , - 562 , - 359 , - 304 , - 397 , - 638 , - 1027 , - 380 , - 1065 , - 714 , - 511 , - 456 , - 549 , - 790 , - 1179 , - 532 , - 33 , - 866 , - 663 , - 608 , - 701 , - 942 , - 147 , - 684 , - 185 , - 1018 , - 815 , - 760 , - 853 , - 1094 , - 299 , - 836 , - 337 , - 1170 , - 967 , - 912 , - 1005 , - 62 , - 451 , - 988 , - 489 , - 138 , - 1119 , - 1064 , - 1157 , - 214 , - 603 , - 1140 , - 641 , - 290 , - 87 , - 32 , - 125 , - 366 , - 755 , - 108 , - 793 , - 442 , - 239 , - 184 , - 277 , - 518 , - 907 , - 260 , - 945 , - 594 , - 391 , - 336 , - 429 , - 670 , - 1059 , - 412 , - 1097 , - 746 , - 543 , - 488 , - 581 , - 822 , - 27 , - 564 , - 65 , - 898 , - 695 , - 640 , - 733 , - 974 , - 179 , - 716 , - 217 , - 1050 , - 847 , - 792 , - 885 , - 1126 , - 331 , - 868 , - 369 , - 18 , - 999 , - 944 , - 1037 , - 94 , - 483 , - 1020 , - 521 , - 170 , - 1151 , - 1096 , - 5 , - 246 , - 635 , - 1172 , - 673 , - 322 , - 119 , - 64 , - 157 , - 398 , - 787 , - 140 , - 825 , - 474 , - 271 , - 216 , - 309 , - 550 , - 939 , - 292 , - 977 , - 626 , - 423 , - 368 , - 461 , - 702 , - 1091 , - 444 , - 1129 , - 778 , - 575 , - 520 , - 613 , - 854 , - 59 , - 596 , - 97 , - 930 , - 727 , - 672 , - 765 , - 1006 , - 211 , - 748 , - 249 , - 1082 , - 879 , - 824 , - 917 , - 1158 , - 363 , - 900 , - 401 , - 50 , - 1031 , - 976 , - 1069 , - 126 , - 515 , - 1052 , - 553 , - 202 , - 1183 , - 1128 , - 37 , - 278 , - 667 , - 20 , - 705 , - 354 , - 151 , - 96 , - 189 , - 430 , - 819 , - 172 , - 857 , - 506 , - 303 , - 248 , - 341 , - 582 , - 971 , - 324 , - 1009 , - 658 , - 455 , - 400 , - 493 , - 734 , - 1123 , - 476 , - 1161 , - 810 , - 607 , - 552 , - 645 , - 886 , - 91 , - 628 , - 129 , - 962 , - 759 , - 704 , - 797 , - 1038 , - 243 , - 780 , - 281 , - 1114 , - 911 , - 856 , - 949 , - 6 , - 395 , - 932 , - 433 , - 82 , - 1063 , - 1008 , - 1101 , - 158 , - 547 , - 1084 , - 585 , - 234 , - 31 , - 1160 , - 69 , - 310 , - 699 , - 52 , - 737 , - 386 , - 183 , - 128 , - 221 , - 462 , - 851 , - 204 , - 889 , - 538 , - 335 , - 280 , - 373 , - 614 , - 1003 , - 356 , - 1041 , - 690 , - 487 , - 432 , - 525 , - 766 , - 1155 , - 508 , - 9 , - 842 , - 639 , - 584 , - 677 , - 918 , - 123 , - 660 , - 161 , - 994 , - 791 , - 736 , - 829 , - 1070 , - 275 , - 812 , - 313 , - 1146 , - 943 , - 888 , - 981 , - 38 , - 427 , - 964 , - 465 , - 114 , - 1095 , - 1040 , - 1133 , - 190 , - 579 , - 1116 , - 617 , - 266 , - 63 , - 8 , - 101 , - 342 , - 731 , - 84 , - 769 , - 418 , - 215 , - 160 , - 253 , - 494 , - 883 , - 236 , - 921 , - 570 , - 367 , - 312 , - 405 , - 646 , - 1035 , - 388 , - 1073 , - 722 , - 519 , - 464 , - 557 , - 798 , - 3 , - 540 , - 41 , - 874 , - 671 , - 616 , - 709 , - 950 , - 155 , - 692 , - 193 , - 1026 , - 823 , - 768 , - 861 , - 1102 , - 307 , - 844 , - 345 , - 1178 , - 975 , - 920 , - 1013 , - 70 , - 459 , - 996 , - 497 , - 146 , - 1127 , - 1072 , - 1165 , - 222 , - 611 , - 1148 , - 649 , - 298 , - 95 , - 40 , - 133 , - 374 , - 763 , - 116 , - 801 , - 450 , - 247 , - 192 , - 285 , - 526 , - 915 , - 268 , - 953 , - 602 , - 399 , - 344 , - 437 , - 678 , - 1067 , - 420 , - 1105 , - 754 , - 551 , - 496 , - 589 , - 830 , - 35 , - 572 , - 73 , - 906 , - 703 , - 648 , - 741 , - 982 , - 187 , - 724 , - 225 , - 1058 , - 855 , - 800 , - 893 , - 1134 , - 339 , - 876 , - 377 , - 26 , - 1007 , - 952 , - 1045 , - 102 , - 491 , - 1028 , - 529 , - 178 , - 1159 , - 1104 , - 13 , - 254 , - 643 , - 1180 , - 681 , - 330 , - 127 , - 72 , - 165 , - 406 , - 795 , - 148 , - 833 , - 482 , - 279 , - 224 , - 317 , - 558 , - 947 , - 300 , - 985 , - 634 , - 431 , - 376 , - 469 , - 710 , - 1099 , - 452 , - 1137 , - 786 , - 583 , - 528 , - 621 , - 862 , - 67 , - 604 , - 105 , - 938 , - 735 , - 680 , - 773 , - 1014 , - 219 , - 756 , - 257 , - 1090 , - 887 , - 832 , - 925 , - 1166 , - 371 , - 908 , - 409 , - 58 , - 1039 , - 984 , - 1077 , - 134 , - 523 , - 1060 , - 561 , - 210 , - 7 , - 1136 , - 45 , - 286 , - 675 , - 28 , - 713 , - 362 , - 159 , - 104 , - 197 , - 438 , - 827 , - 180 , - 865 , - 514 , - 311 , - 256 , - 349 , - 590 , - 979 , - 332 , - 1017 , - 666 , - 463 , - 408 , - 501 , - 742 , - 1131 , - 484 , - 1169 , - 818 , - 615 , - 560 , - 653 , - 894 , - 99 , - 636 , - 137 , - 970 , - 767 , - 712 , - 805 , - 1046 , - 251 , - 788 , - 289 , - 1122 , - 919 , - 864 , - 957 , - 14 , - 403 , - 940 , - 441 , - 90 , - 1071 , - 1016 , - 1109 , - 166 , - 555 , - 1092 , - 593 , - 242 , - 39 , - 1168 , - 77 , - 318 , - 707 , - 60 , - 745 , - 394 , - 191 , - 136 , - 229 , - 470 , - 859 , - 212 , - 897 , - 546 , - 343 , - 288 , - 381 , - 622 , - 1011 , - 364 , - 1049 , - 698 , - 495 , - 440 , - 533 , - 774 , - 1163 , - 516 , - 17 , - 850 , - 647 , - 592 , - 685 , - 926 , - 131 , - 668 , - 169 , - 1002 , - 799 , - 744 , - 837 , - 1078 , - 283 , - 820 , - 321 , - 1154 , - 951 , - 896 , - 989 , - 46 , - 435 , - 972 , - 473 , - 122 , - 1103 , - 1048 , - 1141 , - 198 , - 587 , - 1124 , - 625 , - 274 , - 71 , - 16 , - 109 , - 350 , - 739 , - 92 , - 777 , - 426 , - 223 , - 168 , - 261 , - 502 , - 891 , - 244 , - 929 , - 578 , - 375 , - 320 , - 413 , - 654 , - 1043 , - 396 , - 1081 , - 730 , - 527 , - 472 , - 565 , - 806 , - 11 , - 548 , - 49 , - 882 , - 679 , - 624 , - 717 , - 958 , - 163 , - 700 , - 201 , - 1034 , - 831 , - 776 , - 869 , - 1110 , - 315 , - 852 , - 353 , - 2 , - 983 , - 928 , - 1021 , - 78 , - 467 , - 1004 , - 505 , - 154 , - 1135 , - 1080 , - 1173 , - 230 , - 619 , - 1156 , - 657 , - 306 , - 103 , - 48 , - 141 , - 382 , - 771 , - 124 , - 809 , - 458 , - 255 , - 200 , - 293 , - 534 , - 923 , - 276 , - 961 , - 610 , - 407 , - 352 , - 445 , - 686 , - 1075 , - 428 , - 1113 , - 762 , - 559 , - 504 , - 597 , - 838 , - 43 , - 580 , - 81 , - 914 , - 711 , - 656 , - 749 , - 990 , - 195 , - 732 , - 233 , - 1066 , - 863 , - 808 , - 901 , - 1142 , - 347 , - 884 , - 385 , - 34 , - 1015 , - 960 , - 1053 , - 110 , - 499 , - 1036 , - 537 , - 186 , - 1167 , - 1112 , - 21 , - 262 , - 651 , - 4 , - 689 , - 338 , - 135 , - 80 , - 173 , - 414 , - 803 , - 156 , - 841 , - 490 , - 287 , - 232 , - 325 , - 566 , - 955 , - 308 , - 993 , - 642 , - 439 , - 384 , - 477 , - 718 , - 1107 , - 460 , - 1145 , - 794 , - 591 , - 536 , - 629 , - 870 , - 75 , - 612 , - 113 , - 946 , - 743 , - 688 , - 781 , - 1022 , - 227 , - 764 , - 265 , - 1098 , - 895 , - 840 , - 933 , - 1174 , - 379 , - 916 , - 417 , - 66 , - 1047 , - 992 , - 1085 , - 142 , - 531 , - 1068 , - 569 , - 218 , - 15 , - 1144 , - 53 , - 294 , - 683 , - 36 , - 721 , - 370 , - 167 , - 112 , - 205 , - 446 , - 835 , - 188 , - 873 , - 522 , - 319 , - 264 , - 357 , - 598 , - 987 , - 340 , - 1025 , - 674 , - 471 , - 416 , - 509 , - 750 , - 1139 , - 492 , - 1177 , - 826 , - 623 , - 568 , - 661 , - 902 , - 107 , - 644 , - 145 , - 978 , - 775 , - 720 , - 813 , - 1054 , - 259 , - 796 , - 297 , - 1130 , - 927 , - 872 , - 965 , - 22 , - 411 , - 948 , - 449 , - 98 , - 1079 , - 1024 , - 1117 , - 174 , - 563 , - 1100 , - 601 , - 250 , - 47 , - 1176 , - 85 , - 326 , - 715 , - 68 , - 753 , - 402 , - 199 , - 144 , - 237 , - 478 , - 867 , - 220 , - 905 , - 554 , - 351 , - 296 , - 389 , - 630 , - 1019 , - 372 , - 1057 , - 706 , - 503 , - 448 , - 541 , - 782 , - 1171 , - 524 , - 25 , - 858 , - 655 , - 600 , - 693 , - 934 , - 139 , - 676 , - 177 , - 1010 , - 807 , - 752 , - 845 , - 1086 , - 291 , - 828 , - 329 , - 1162 , - 959 , - 904 , - 997 , - 54 , - 443 , - 980 , - 481 , - 130 , - 1111 , - 1056 , - 1149 , - 206 , - 595 , - 1132 , - 633 , - 282 , - 79 , - 24 , - 117 , - 358 , - 747 , - 100 , - 785 , - 434 , - 231 , - 176 , - 269 , - 510 , - 899 , - 252 , - 937 , - 586 , - 383 , - 328 , - 421 , - 662 , - 1051 , - 404 , - 1089 , - 738 , - 535 , - 480 , - 573 , - 814 , - 19 , - 556 , - 57 , - 890 , - 687 , - 632 , - 725 , - 966 , - 171 , - 708 , - 209 , - 1042 , - 839 , - 784 , - 877 , - 1118 , - 323 , - 860 , - 361 , - 10 , - 991 , - 936 , - 1029 , - 86 , - 475 , - 1012 , - 513 , - 162 , - 1143 , - 1088 , - 1181 , - 238 , - 627 , - 1164 , - 665 , - 314 , - 111 , - 56 , - 149 , - 390 , - 779 , - 132 , - 817 , - 466 , - 263 , - 208 , - 301 , - 542 , - 931 , - 284 , - 969 , - 618 , - 415 , - 360 , - 453 , - 694 , - 1083 , - 436 , - 1121 , - 770 , - 567 , - 512 , - 605 , - 846 , - 51 , - 588 , - 89 , - 922 , - 719 , - 664 , - 757 , - 998 , - 203 , - 740 , - 241 , - 1074 , - 871 , - 816 , - 909 , - 1150 , - 355 , - 892 , - 393 , - 42 , - 1023 , - 968 , - 1061 , - 118 , - 507 , - 1044 , - 545 , - 194 , - 1175 , - 1120 , - 29 , - 270 , - 659 , - 12 , - 697 , - 346 , - 143 , - 88 , - 181 , - 422 , - 811 , - 164 , - 849 , - 498 , - 295 , - 240 , - 333 , - 574 , - 963 , - 316 , - 1001 , - 650 , - 447 , - 392 , - 485 , - 726 , - 1115 , - 468 , - 1153 , - 802 , - 599 , - 544 , - 637 , - 878 , - 83 , - 620 , - 121 , - 954 , - 751 , - 696 , - 789 , - 1030 , - 235 , - 772 , - 273 , - 1106 , - 903 , - 848 , - 941 , - 1182 , - 387 , - 924 , - 425 , - 74 , - 1055 , - 1000 , - 1093 , - 150 , - 539 , - 1076 , - 577 , - 226 , - 23 , - 1152 , - 61 , - 302 , - 691 , - 44 , - 729 , - 378 , - 175 , - 120 , - 213 , - 454 , - 843 , - 196 , - 881 , - 530 , - 327 , - 272 , - 365 , - 606 , - 995 , - 348 , - 1033 , - 682 , - 479 , - 424 , - 517 , - 758 , - 1147 , - 500 , - 1 , - 834 , - 631 , - 576 , - 669 , - 910 , - 115 , - 652 , - 153 , - 986 , - 783 , - 728 , - 821 , - 1062 , - 267 , - 804 , - 305 , - 1138 , - 935 , - 880 , - 973 , - 30 , - 419 , - 956 , - 457 , - 106 , - 1087 , - 1032 , - 1125 , - 182 , - 571 , - 1108 , - 609 , - 258 , - 55 , - 0 , - 115 , - 382 , - 801 , - 156 , - 879 , - 538 , - 349 , - 312 , - 427 , - 694 , - 1113 , - 468 , - 1191 , - 850 , - 661 , - 624 , - 739 , - 1006 , - 209 , - 780 , - 287 , - 1162 , - 973 , - 936 , - 1051 , - 102 , - 521 , - 1092 , - 599 , - 258 , - 69 , - 32 , - 147 , - 414 , - 833 , - 188 , - 911 , - 570 , - 381 , - 344 , - 459 , - 726 , - 1145 , - 500 , - 7 , - 882 , - 693 , - 656 , - 771 , - 1038 , - 241 , - 812 , - 319 , - 1194 , - 1005 , - 968 , - 1083 , - 134 , - 553 , - 1124 , - 631 , - 290 , - 101 , - 64 , - 179 , - 446 , - 865 , - 220 , - 943 , - 602 , - 413 , - 376 , - 491 , - 758 , - 1177 , - 532 , - 39 , - 914 , - 725 , - 688 , - 803 , - 1070 , - 273 , - 844 , - 351 , - 10 , - 1037 , - 1000 , - 1115 , - 166 , - 585 , - 1156 , - 663 , - 322 , - 133 , - 96 , - 211 , - 478 , - 897 , - 252 , - 975 , - 634 , - 445 , - 408 , - 523 , - 790 , - 1209 , - 564 , - 71 , - 946 , - 757 , - 720 , - 835 , - 1102 , - 305 , - 876 , - 383 , - 42 , - 1069 , - 1032 , - 1147 , - 198 , - 617 , - 1188 , - 695 , - 354 , - 165 , - 128 , - 243 , - 510 , - 929 , - 284 , - 1007 , - 666 , - 477 , - 440 , - 555 , - 822 , - 25 , - 596 , - 103 , - 978 , - 789 , - 752 , - 867 , - 1134 , - 337 , - 908 , - 415 , - 74 , - 1101 , - 1064 , - 1179 , - 230 , - 649 , - 4 , - 727 , - 386 , - 197 , - 160 , - 275 , - 542 , - 961 , - 316 , - 1039 , - 698 , - 509 , - 472 , - 587 , - 854 , - 57 , - 628 , - 135 , - 1010 , - 821 , - 784 , - 899 , - 1166 , - 369 , - 940 , - 447 , - 106 , - 1133 , - 1096 , - 1211 , - 262 , - 681 , - 36 , - 759 , - 418 , - 229 , - 192 , - 307 , - 574 , - 993 , - 348 , - 1071 , - 730 , - 541 , - 504 , - 619 , - 886 , - 89 , - 660 , - 167 , - 1042 , - 853 , - 816 , - 931 , - 1198 , - 401 , - 972 , - 479 , - 138 , - 1165 , - 1128 , - 27 , - 294 , - 713 , - 68 , - 791 , - 450 , - 261 , - 224 , - 339 , - 606 , - 1025 , - 380 , - 1103 , - 762 , - 573 , - 536 , - 651 , - 918 , - 121 , - 692 , - 199 , - 1074 , - 885 , - 848 , - 963 , - 14 , - 433 , - 1004 , - 511 , - 170 , - 1197 , - 1160 , - 59 , - 326 , - 745 , - 100 , - 823 , - 482 , - 293 , - 256 , - 371 , - 638 , - 1057 , - 412 , - 1135 , - 794 , - 605 , - 568 , - 683 , - 950 , - 153 , - 724 , - 231 , - 1106 , - 917 , - 880 , - 995 , - 46 , - 465 , - 1036 , - 543 , - 202 , - 13 , - 1192 , - 91 , - 358 , - 777 , - 132 , - 855 , - 514 , - 325 , - 288 , - 403 , - 670 , - 1089 , - 444 , - 1167 , - 826 , - 637 , - 600 , - 715 , - 982 , - 185 , - 756 , - 263 , - 1138 , - 949 , - 912 , - 1027 , - 78 , - 497 , - 1068 , - 575 , - 234 , - 45 , - 8 , - 123 , - 390 , - 809 , - 164 , - 887 , - 546 , - 357 , - 320 , - 435 , - 702 , - 1121 , - 476 , - 1199 , - 858 , - 669 , - 632 , - 747 , - 1014 , - 217 , - 788 , - 295 , - 1170 , - 981 , - 944 , - 1059 , - 110 , - 529 , - 1100 , - 607 , - 266 , - 77 , - 40 , - 155 , - 422 , - 841 , - 196 , - 919 , - 578 , - 389 , - 352 , - 467 , - 734 , - 1153 , - 508 , - 15 , - 890 , - 701 , - 664 , - 779 , - 1046 , - 249 , - 820 , - 327 , - 1202 , - 1013 , - 976 , - 1091 , - 142 , - 561 , - 1132 , - 639 , - 298 , - 109 , - 72 , - 187 , - 454 , - 873 , - 228 , - 951 , - 610 , - 421 , - 384 , - 499 , - 766 , - 1185 , - 540 , - 47 , - 922 , - 733 , - 696 , - 811 , - 1078 , - 281 , - 852 , - 359 , - 18 , - 1045 , - 1008 , - 1123 , - 174 , - 593 , - 1164 , - 671 , - 330 , - 141 , - 104 , - 219 , - 486 , - 905 , - 260 , - 983 , - 642 , - 453 , - 416 , - 531 , - 798 , - 1 , - 572 , - 79 , - 954 , - 765 , - 728 , - 843 , - 1110 , - 313 , - 884 , - 391 , - 50 , - 1077 , - 1040 , - 1155 , - 206 , - 625 , - 1196 , - 703 , - 362 , - 173 , - 136 , - 251 , - 518 , - 937 , - 292 , - 1015 , - 674 , - 485 , - 448 , - 563 , - 830 , - 33 , - 604 , - 111 , - 986 , - 797 , - 760 , - 875 , - 1142 , - 345 , - 916 , - 423 , - 82 , - 1109 , - 1072 , - 1187 , - 238 , - 657 , - 12 , - 735 , - 394 , - 205 , - 168 , - 283 , - 550 , - 969 , - 324 , - 1047 , - 706 , - 517 , - 480 , - 595 , - 862 , - 65 , - 636 , - 143 , - 1018 , - 829 , - 792 , - 907 , - 1174 , - 377 , - 948 , - 455 , - 114 , - 1141 , - 1104 , - 3 , - 270 , - 689 , - 44 , - 767 , - 426 , - 237 , - 200 , - 315 , - 582 , - 1001 , - 356 , - 1079 , - 738 , - 549 , - 512 , - 627 , - 894 , - 97 , - 668 , - 175 , - 1050 , - 861 , - 824 , - 939 , - 1206 , - 409 , - 980 , - 487 , - 146 , - 1173 , - 1136 , - 35 , - 302 , - 721 , - 76 , - 799 , - 458 , - 269 , - 232 , - 347 , - 614 , - 1033 , - 388 , - 1111 , - 770 , - 581 , - 544 , - 659 , - 926 , - 129 , - 700 , - 207 , - 1082 , - 893 , - 856 , - 971 , - 22 , - 441 , - 1012 , - 519 , - 178 , - 1205 , - 1168 , - 67 , - 334 , - 753 , - 108 , - 831 , - 490 , - 301 , - 264 , - 379 , - 646 , - 1065 , - 420 , - 1143 , - 802 , - 613 , - 576 , - 691 , - 958 , - 161 , - 732 , - 239 , - 1114 , - 925 , - 888 , - 1003 , - 54 , - 473 , - 1044 , - 551 , - 210 , - 21 , - 1200 , - 99 , - 366 , - 785 , - 140 , - 863 , - 522 , - 333 , - 296 , - 411 , - 678 , - 1097 , - 452 , - 1175 , - 834 , - 645 , - 608 , - 723 , - 990 , - 193 , - 764 , - 271 , - 1146 , - 957 , - 920 , - 1035 , - 86 , - 505 , - 1076 , - 583 , - 242 , - 53 , - 16 , - 131 , - 398 , - 817 , - 172 , - 895 , - 554 , - 365 , - 328 , - 443 , - 710 , - 1129 , - 484 , - 1207 , - 866 , - 677 , - 640 , - 755 , - 1022 , - 225 , - 796 , - 303 , - 1178 , - 989 , - 952 , - 1067 , - 118 , - 537 , - 1108 , - 615 , - 274 , - 85 , - 48 , - 163 , - 430 , - 849 , - 204 , - 927 , - 586 , - 397 , - 360 , - 475 , - 742 , - 1161 , - 516 , - 23 , - 898 , - 709 , - 672 , - 787 , - 1054 , - 257 , - 828 , - 335 , - 1210 , - 1021 , - 984 , - 1099 , - 150 , - 569 , - 1140 , - 647 , - 306 , - 117 , - 80 , - 195 , - 462 , - 881 , - 236 , - 959 , - 618 , - 429 , - 392 , - 507 , - 774 , - 1193 , - 548 , - 55 , - 930 , - 741 , - 704 , - 819 , - 1086 , - 289 , - 860 , - 367 , - 26 , - 1053 , - 1016 , - 1131 , - 182 , - 601 , - 1172 , - 679 , - 338 , - 149 , - 112 , - 227 , - 494 , - 913 , - 268 , - 991 , - 650 , - 461 , - 424 , - 539 , - 806 , - 9 , - 580 , - 87 , - 962 , - 773 , - 736 , - 851 , - 1118 , - 321 , - 892 , - 399 , - 58 , - 1085 , - 1048 , - 1163 , - 214 , - 633 , - 1204 , - 711 , - 370 , - 181 , - 144 , - 259 , - 526 , - 945 , - 300 , - 1023 , - 682 , - 493 , - 456 , - 571 , - 838 , - 41 , - 612 , - 119 , - 994 , - 805 , - 768 , - 883 , - 1150 , - 353 , - 924 , - 431 , - 90 , - 1117 , - 1080 , - 1195 , - 246 , - 665 , - 20 , - 743 , - 402 , - 213 , - 176 , - 291 , - 558 , - 977 , - 332 , - 1055 , - 714 , - 525 , - 488 , - 603 , - 870 , - 73 , - 644 , - 151 , - 1026 , - 837 , - 800 , - 915 , - 1182 , - 385 , - 956 , - 463 , - 122 , - 1149 , - 1112 , - 11 , - 278 , - 697 , - 52 , - 775 , - 434 , - 245 , - 208 , - 323 , - 590 , - 1009 , - 364 , - 1087 , - 746 , - 557 , - 520 , - 635 , - 902 , - 105 , - 676 , - 183 , - 1058 , - 869 , - 832 , - 947 , - 1214 , - 417 , - 988 , - 495 , - 154 , - 1181 , - 1144 , - 43 , - 310 , - 729 , - 84 , - 807 , - 466 , - 277 , - 240 , - 355 , - 622 , - 1041 , - 396 , - 1119 , - 778 , - 589 , - 552 , - 667 , - 934 , - 137 , - 708 , - 215 , - 1090 , - 901 , - 864 , - 979 , - 30 , - 449 , - 1020 , - 527 , - 186 , - 1213 , - 1176 , - 75 , - 342 , - 761 , - 116 , - 839 , - 498 , - 309 , - 272 , - 387 , - 654 , - 1073 , - 428 , - 1151 , - 810 , - 621 , - 584 , - 699 , - 966 , - 169 , - 740 , - 247 , - 1122 , - 933 , - 896 , - 1011 , - 62 , - 481 , - 1052 , - 559 , - 218 , - 29 , - 1208 , - 107 , - 374 , - 793 , - 148 , - 871 , - 530 , - 341 , - 304 , - 419 , - 686 , - 1105 , - 460 , - 1183 , - 842 , - 653 , - 616 , - 731 , - 998 , - 201 , - 772 , - 279 , - 1154 , - 965 , - 928 , - 1043 , - 94 , - 513 , - 1084 , - 591 , - 250 , - 61 , - 24 , - 139 , - 406 , - 825 , - 180 , - 903 , - 562 , - 373 , - 336 , - 451 , - 718 , - 1137 , - 492 , - 1215 , - 874 , - 685 , - 648 , - 763 , - 1030 , - 233 , - 804 , - 311 , - 1186 , - 997 , - 960 , - 1075 , - 126 , - 545 , - 1116 , - 623 , - 282 , - 93 , - 56 , - 171 , - 438 , - 857 , - 212 , - 935 , - 594 , - 405 , - 368 , - 483 , - 750 , - 1169 , - 524 , - 31 , - 906 , - 717 , - 680 , - 795 , - 1062 , - 265 , - 836 , - 343 , - 2 , - 1029 , - 992 , - 1107 , - 158 , - 577 , - 1148 , - 655 , - 314 , - 125 , - 88 , - 203 , - 470 , - 889 , - 244 , - 967 , - 626 , - 437 , - 400 , - 515 , - 782 , - 1201 , - 556 , - 63 , - 938 , - 749 , - 712 , - 827 , - 1094 , - 297 , - 868 , - 375 , - 34 , - 1061 , - 1024 , - 1139 , - 190 , - 609 , - 1180 , - 687 , - 346 , - 157 , - 120 , - 235 , - 502 , - 921 , - 276 , - 999 , - 658 , - 469 , - 432 , - 547 , - 814 , - 17 , - 588 , - 95 , - 970 , - 781 , - 744 , - 859 , - 1126 , - 329 , - 900 , - 407 , - 66 , - 1093 , - 1056 , - 1171 , - 222 , - 641 , - 1212 , - 719 , - 378 , - 189 , - 152 , - 267 , - 534 , - 953 , - 308 , - 1031 , - 690 , - 501 , - 464 , - 579 , - 846 , - 49 , - 620 , - 127 , - 1002 , - 813 , - 776 , - 891 , - 1158 , - 361 , - 932 , - 439 , - 98 , - 1125 , - 1088 , - 1203 , - 254 , - 673 , - 28 , - 751 , - 410 , - 221 , - 184 , - 299 , - 566 , - 985 , - 340 , - 1063 , - 722 , - 533 , - 496 , - 611 , - 878 , - 81 , - 652 , - 159 , - 1034 , - 845 , - 808 , - 923 , - 1190 , - 393 , - 964 , - 471 , - 130 , - 1157 , - 1120 , - 19 , - 286 , - 705 , - 60 , - 783 , - 442 , - 253 , - 216 , - 331 , - 598 , - 1017 , - 372 , - 1095 , - 754 , - 565 , - 528 , - 643 , - 910 , - 113 , - 684 , - 191 , - 1066 , - 877 , - 840 , - 955 , - 6 , - 425 , - 996 , - 503 , - 162 , - 1189 , - 1152 , - 51 , - 318 , - 737 , - 92 , - 815 , - 474 , - 285 , - 248 , - 363 , - 630 , - 1049 , - 404 , - 1127 , - 786 , - 597 , - 560 , - 675 , - 942 , - 145 , - 716 , - 223 , - 1098 , - 909 , - 872 , - 987 , - 38 , - 457 , - 1028 , - 535 , - 194 , - 5 , - 1184 , - 83 , - 350 , - 769 , - 124 , - 847 , - 506 , - 317 , - 280 , - 395 , - 662 , - 1081 , - 436 , - 1159 , - 818 , - 629 , - 592 , - 707 , - 974 , - 177 , - 748 , - 255 , - 1130 , - 941 , - 904 , - 1019 , - 70 , - 489 , - 1060 , - 567 , - 226 , - 37 , - 0 , - 97 , - 350 , - 759 , - 76 , - 797 , - 426 , - 211 , - 152 , - 249 , - 502 , - 911 , - 228 , - 949 , - 578 , - 363 , - 304 , - 401 , - 654 , - 1063 , - 380 , - 1101 , - 730 , - 515 , - 456 , - 553 , - 806 , - 1215 , - 532 , - 5 , - 882 , - 667 , - 608 , - 705 , - 958 , - 119 , - 684 , - 157 , - 1034 , - 819 , - 760 , - 857 , - 1110 , - 271 , - 836 , - 309 , - 1186 , - 971 , - 912 , - 1009 , - 14 , - 423 , - 988 , - 461 , - 90 , - 1123 , - 1064 , - 1161 , - 166 , - 575 , - 1140 , - 613 , - 242 , - 27 , - 1216 , - 65 , - 318 , - 727 , - 44 , - 765 , - 394 , - 179 , - 120 , - 217 , - 470 , - 879 , - 196 , - 917 , - 546 , - 331 , - 272 , - 369 , - 622 , - 1031 , - 348 , - 1069 , - 698 , - 483 , - 424 , - 521 , - 774 , - 1183 , - 500 , - 1221 , - 850 , - 635 , - 576 , - 673 , - 926 , - 87 , - 652 , - 125 , - 1002 , - 787 , - 728 , - 825 , - 1078 , - 239 , - 804 , - 277 , - 1154 , - 939 , - 880 , - 977 , - 1230 , - 391 , - 956 , - 429 , - 58 , - 1091 , - 1032 , - 1129 , - 134 , - 543 , - 1108 , - 581 , - 210 , - 1243 , - 1184 , - 33 , - 286 , - 695 , - 12 , - 733 , - 362 , - 147 , - 88 , - 185 , - 438 , - 847 , - 164 , - 885 , - 514 , - 299 , - 240 , - 337 , - 590 , - 999 , - 316 , - 1037 , - 666 , - 451 , - 392 , - 489 , - 742 , - 1151 , - 468 , - 1189 , - 818 , - 603 , - 544 , - 641 , - 894 , - 55 , - 620 , - 93 , - 970 , - 755 , - 696 , - 793 , - 1046 , - 207 , - 772 , - 245 , - 1122 , - 907 , - 848 , - 945 , - 1198 , - 359 , - 924 , - 397 , - 26 , - 1059 , - 1000 , - 1097 , - 102 , - 511 , - 1076 , - 549 , - 178 , - 1211 , - 1152 , - 1 , - 254 , - 663 , - 1228 , - 701 , - 330 , - 115 , - 56 , - 153 , - 406 , - 815 , - 132 , - 853 , - 482 , - 267 , - 208 , - 305 , - 558 , - 967 , - 284 , - 1005 , - 634 , - 419 , - 360 , - 457 , - 710 , - 1119 , - 436 , - 1157 , - 786 , - 571 , - 512 , - 609 , - 862 , - 23 , - 588 , - 61 , - 938 , - 723 , - 664 , - 761 , - 1014 , - 175 , - 740 , - 213 , - 1090 , - 875 , - 816 , - 913 , - 1166 , - 327 , - 892 , - 365 , - 1242 , - 1027 , - 968 , - 1065 , - 70 , - 479 , - 1044 , - 517 , - 146 , - 1179 , - 1120 , - 1217 , - 222 , - 631 , - 1196 , - 669 , - 298 , - 83 , - 24 , - 121 , - 374 , - 783 , - 100 , - 821 , - 450 , - 235 , - 176 , - 273 , - 526 , - 935 , - 252 , - 973 , - 602 , - 387 , - 328 , - 425 , - 678 , - 1087 , - 404 , - 1125 , - 754 , - 539 , - 480 , - 577 , - 830 , - 1239 , - 556 , - 29 , - 906 , - 691 , - 632 , - 729 , - 982 , - 143 , - 708 , - 181 , - 1058 , - 843 , - 784 , - 881 , - 1134 , - 295 , - 860 , - 333 , - 1210 , - 995 , - 936 , - 1033 , - 38 , - 447 , - 1012 , - 485 , - 114 , - 1147 , - 1088 , - 1185 , - 190 , - 599 , - 1164 , - 637 , - 266 , - 51 , - 1240 , - 89 , - 342 , - 751 , - 68 , - 789 , - 418 , - 203 , - 144 , - 241 , - 494 , - 903 , - 220 , - 941 , - 570 , - 355 , - 296 , - 393 , - 646 , - 1055 , - 372 , - 1093 , - 722 , - 507 , - 448 , - 545 , - 798 , - 1207 , - 524 , - 1245 , - 874 , - 659 , - 600 , - 697 , - 950 , - 111 , - 676 , - 149 , - 1026 , - 811 , - 752 , - 849 , - 1102 , - 263 , - 828 , - 301 , - 1178 , - 963 , - 904 , - 1001 , - 6 , - 415 , - 980 , - 453 , - 82 , - 1115 , - 1056 , - 1153 , - 158 , - 567 , - 1132 , - 605 , - 234 , - 19 , - 1208 , - 57 , - 310 , - 719 , - 36 , - 757 , - 386 , - 171 , - 112 , - 209 , - 462 , - 871 , - 188 , - 909 , - 538 , - 323 , - 264 , - 361 , - 614 , - 1023 , - 340 , - 1061 , - 690 , - 475 , - 416 , - 513 , - 766 , - 1175 , - 492 , - 1213 , - 842 , - 627 , - 568 , - 665 , - 918 , - 79 , - 644 , - 117 , - 994 , - 779 , - 720 , - 817 , - 1070 , - 231 , - 796 , - 269 , - 1146 , - 931 , - 872 , - 969 , - 1222 , - 383 , - 948 , - 421 , - 50 , - 1083 , - 1024 , - 1121 , - 126 , - 535 , - 1100 , - 573 , - 202 , - 1235 , - 1176 , - 25 , - 278 , - 687 , - 4 , - 725 , - 354 , - 139 , - 80 , - 177 , - 430 , - 839 , - 156 , - 877 , - 506 , - 291 , - 232 , - 329 , - 582 , - 991 , - 308 , - 1029 , - 658 , - 443 , - 384 , - 481 , - 734 , - 1143 , - 460 , - 1181 , - 810 , - 595 , - 536 , - 633 , - 886 , - 47 , - 612 , - 85 , - 962 , - 747 , - 688 , - 785 , - 1038 , - 199 , - 764 , - 237 , - 1114 , - 899 , - 840 , - 937 , - 1190 , - 351 , - 916 , - 389 , - 18 , - 1051 , - 992 , - 1089 , - 94 , - 503 , - 1068 , - 541 , - 170 , - 1203 , - 1144 , - 1241 , - 246 , - 655 , - 1220 , - 693 , - 322 , - 107 , - 48 , - 145 , - 398 , - 807 , - 124 , - 845 , - 474 , - 259 , - 200 , - 297 , - 550 , - 959 , - 276 , - 997 , - 626 , - 411 , - 352 , - 449 , - 702 , - 1111 , - 428 , - 1149 , - 778 , - 563 , - 504 , - 601 , - 854 , - 15 , - 580 , - 53 , - 930 , - 715 , - 656 , - 753 , - 1006 , - 167 , - 732 , - 205 , - 1082 , - 867 , - 808 , - 905 , - 1158 , - 319 , - 884 , - 357 , - 1234 , - 1019 , - 960 , - 1057 , - 62 , - 471 , - 1036 , - 509 , - 138 , - 1171 , - 1112 , - 1209 , - 214 , - 623 , - 1188 , - 661 , - 290 , - 75 , - 16 , - 113 , - 366 , - 775 , - 92 , - 813 , - 442 , - 227 , - 168 , - 265 , - 518 , - 927 , - 244 , - 965 , - 594 , - 379 , - 320 , - 417 , - 670 , - 1079 , - 396 , - 1117 , - 746 , - 531 , - 472 , - 569 , - 822 , - 1231 , - 548 , - 21 , - 898 , - 683 , - 624 , - 721 , - 974 , - 135 , - 700 , - 173 , - 1050 , - 835 , - 776 , - 873 , - 1126 , - 287 , - 852 , - 325 , - 1202 , - 987 , - 928 , - 1025 , - 30 , - 439 , - 1004 , - 477 , - 106 , - 1139 , - 1080 , - 1177 , - 182 , - 591 , - 1156 , - 629 , - 258 , - 43 , - 1232 , - 81 , - 334 , - 743 , - 60 , - 781 , - 410 , - 195 , - 136 , - 233 , - 486 , - 895 , - 212 , - 933 , - 562 , - 347 , - 288 , - 385 , - 638 , - 1047 , - 364 , - 1085 , - 714 , - 499 , - 440 , - 537 , - 790 , - 1199 , - 516 , - 1237 , - 866 , - 651 , - 592 , - 689 , - 942 , - 103 , - 668 , - 141 , - 1018 , - 803 , - 744 , - 841 , - 1094 , - 255 , - 820 , - 293 , - 1170 , - 955 , - 896 , - 993 , - 1246 , - 407 , - 972 , - 445 , - 74 , - 1107 , - 1048 , - 1145 , - 150 , - 559 , - 1124 , - 597 , - 226 , - 11 , - 1200 , - 49 , - 302 , - 711 , - 28 , - 749 , - 378 , - 163 , - 104 , - 201 , - 454 , - 863 , - 180 , - 901 , - 530 , - 315 , - 256 , - 353 , - 606 , - 1015 , - 332 , - 1053 , - 682 , - 467 , - 408 , - 505 , - 758 , - 1167 , - 484 , - 1205 , - 834 , - 619 , - 560 , - 657 , - 910 , - 71 , - 636 , - 109 , - 986 , - 771 , - 712 , - 809 , - 1062 , - 223 , - 788 , - 261 , - 1138 , - 923 , - 864 , - 961 , - 1214 , - 375 , - 940 , - 413 , - 42 , - 1075 , - 1016 , - 1113 , - 118 , - 527 , - 1092 , - 565 , - 194 , - 1227 , - 1168 , - 17 , - 270 , - 679 , - 1244 , - 717 , - 346 , - 131 , - 72 , - 169 , - 422 , - 831 , - 148 , - 869 , - 498 , - 283 , - 224 , - 321 , - 574 , - 983 , - 300 , - 1021 , - 650 , - 435 , - 376 , - 473 , - 726 , - 1135 , - 452 , - 1173 , - 802 , - 587 , - 528 , - 625 , - 878 , - 39 , - 604 , - 77 , - 954 , - 739 , - 680 , - 777 , - 1030 , - 191 , - 756 , - 229 , - 1106 , - 891 , - 832 , - 929 , - 1182 , - 343 , - 908 , - 381 , - 10 , - 1043 , - 984 , - 1081 , - 86 , - 495 , - 1060 , - 533 , - 162 , - 1195 , - 1136 , - 1233 , - 238 , - 647 , - 1212 , - 685 , - 314 , - 99 , - 40 , - 137 , - 390 , - 799 , - 116 , - 837 , - 466 , - 251 , - 192 , - 289 , - 542 , - 951 , - 268 , - 989 , - 618 , - 403 , - 344 , - 441 , - 694 , - 1103 , - 420 , - 1141 , - 770 , - 555 , - 496 , - 593 , - 846 , - 7 , - 572 , - 45 , - 922 , - 707 , - 648 , - 745 , - 998 , - 159 , - 724 , - 197 , - 1074 , - 859 , - 800 , - 897 , - 1150 , - 311 , - 876 , - 349 , - 1226 , - 1011 , - 952 , - 1049 , - 54 , - 463 , - 1028 , - 501 , - 130 , - 1163 , - 1104 , - 1201 , - 206 , - 615 , - 1180 , - 653 , - 282 , - 67 , - 8 , - 105 , - 358 , - 767 , - 84 , - 805 , - 434 , - 219 , - 160 , - 257 , - 510 , - 919 , - 236 , - 957 , - 586 , - 371 , - 312 , - 409 , - 662 , - 1071 , - 388 , - 1109 , - 738 , - 523 , - 464 , - 561 , - 814 , - 1223 , - 540 , - 13 , - 890 , - 675 , - 616 , - 713 , - 966 , - 127 , - 692 , - 165 , - 1042 , - 827 , - 768 , - 865 , - 1118 , - 279 , - 844 , - 317 , - 1194 , - 979 , - 920 , - 1017 , - 22 , - 431 , - 996 , - 469 , - 98 , - 1131 , - 1072 , - 1169 , - 174 , - 583 , - 1148 , - 621 , - 250 , - 35 , - 1224 , - 73 , - 326 , - 735 , - 52 , - 773 , - 402 , - 187 , - 128 , - 225 , - 478 , - 887 , - 204 , - 925 , - 554 , - 339 , - 280 , - 377 , - 630 , - 1039 , - 356 , - 1077 , - 706 , - 491 , - 432 , - 529 , - 782 , - 1191 , - 508 , - 1229 , - 858 , - 643 , - 584 , - 681 , - 934 , - 95 , - 660 , - 133 , - 1010 , - 795 , - 736 , - 833 , - 1086 , - 247 , - 812 , - 285 , - 1162 , - 947 , - 888 , - 985 , - 1238 , - 399 , - 964 , - 437 , - 66 , - 1099 , - 1040 , - 1137 , - 142 , - 551 , - 1116 , - 589 , - 218 , - 3 , - 1192 , - 41 , - 294 , - 703 , - 20 , - 741 , - 370 , - 155 , - 96 , - 193 , - 446 , - 855 , - 172 , - 893 , - 522 , - 307 , - 248 , - 345 , - 598 , - 1007 , - 324 , - 1045 , - 674 , - 459 , - 400 , - 497 , - 750 , - 1159 , - 476 , - 1197 , - 826 , - 611 , - 552 , - 649 , - 902 , - 63 , - 628 , - 101 , - 978 , - 763 , - 704 , - 801 , - 1054 , - 215 , - 780 , - 253 , - 1130 , - 915 , - 856 , - 953 , - 1206 , - 367 , - 932 , - 405 , - 34 , - 1067 , - 1008 , - 1105 , - 110 , - 519 , - 1084 , - 557 , - 186 , - 1219 , - 1160 , - 9 , - 262 , - 671 , - 1236 , - 709 , - 338 , - 123 , - 64 , - 161 , - 414 , - 823 , - 140 , - 861 , - 490 , - 275 , - 216 , - 313 , - 566 , - 975 , - 292 , - 1013 , - 642 , - 427 , - 368 , - 465 , - 718 , - 1127 , - 444 , - 1165 , - 794 , - 579 , - 520 , - 617 , - 870 , - 31 , - 596 , - 69 , - 946 , - 731 , - 672 , - 769 , - 1022 , - 183 , - 748 , - 221 , - 1098 , - 883 , - 824 , - 921 , - 1174 , - 335 , - 900 , - 373 , - 2 , - 1035 , - 976 , - 1073 , - 78 , - 487 , - 1052 , - 525 , - 154 , - 1187 , - 1128 , - 1225 , - 230 , - 639 , - 1204 , - 677 , - 306 , - 91 , - 32 , - 129 , - 382 , - 791 , - 108 , - 829 , - 458 , - 243 , - 184 , - 281 , - 534 , - 943 , - 260 , - 981 , - 610 , - 395 , - 336 , - 433 , - 686 , - 1095 , - 412 , - 1133 , - 762 , - 547 , - 488 , - 585 , - 838 , - 1247 , - 564 , - 37 , - 914 , - 699 , - 640 , - 737 , - 990 , - 151 , - 716 , - 189 , - 1066 , - 851 , - 792 , - 889 , - 1142 , - 303 , - 868 , - 341 , - 1218 , - 1003 , - 944 , - 1041 , - 46 , - 455 , - 1020 , - 493 , - 122 , - 1155 , - 1096 , - 1193 , - 198 , - 607 , - 1172 , - 645 , - 274 , - 59 , - 0 , - 439 , - 78 , - 197 , - 796 , - 595 , - 874 , - 353 , - 312 , - 751 , - 390 , - 509 , - 1108 , - 907 , - 1186 , - 665 , - 624 , - 1063 , - 702 , - 821 , - 140 , - 1219 , - 218 , - 977 , - 936 , - 95 , - 1014 , - 1133 , - 452 , - 251 , - 530 , - 9 , - 1248 , - 407 , - 46 , - 165 , - 764 , - 563 , - 842 , - 321 , - 280 , - 719 , - 358 , - 477 , - 1076 , - 875 , - 1154 , - 633 , - 592 , - 1031 , - 670 , - 789 , - 108 , - 1187 , - 186 , - 945 , - 904 , - 63 , - 982 , - 1101 , - 420 , - 219 , - 498 , - 1257 , - 1216 , - 375 , - 14 , - 133 , - 732 , - 531 , - 810 , - 289 , - 248 , - 687 , - 326 , - 445 , - 1044 , - 843 , - 1122 , - 601 , - 560 , - 999 , - 638 , - 757 , - 76 , - 1155 , - 154 , - 913 , - 872 , - 31 , - 950 , - 1069 , - 388 , - 187 , - 466 , - 1225 , - 1184 , - 343 , - 1262 , - 101 , - 700 , - 499 , - 778 , - 257 , - 216 , - 655 , - 294 , - 413 , - 1012 , - 811 , - 1090 , - 569 , - 528 , - 967 , - 606 , - 725 , - 44 , - 1123 , - 122 , - 881 , - 840 , - 1279 , - 918 , - 1037 , - 356 , - 155 , - 434 , - 1193 , - 1152 , - 311 , - 1230 , - 69 , - 668 , - 467 , - 746 , - 225 , - 184 , - 623 , - 262 , - 381 , - 980 , - 779 , - 1058 , - 537 , - 496 , - 935 , - 574 , - 693 , - 12 , - 1091 , - 90 , - 849 , - 808 , - 1247 , - 886 , - 1005 , - 324 , - 123 , - 402 , - 1161 , - 1120 , - 279 , - 1198 , - 37 , - 636 , - 435 , - 714 , - 193 , - 152 , - 591 , - 230 , - 349 , - 948 , - 747 , - 1026 , - 505 , - 464 , - 903 , - 542 , - 661 , - 1260 , - 1059 , - 58 , - 817 , - 776 , - 1215 , - 854 , - 973 , - 292 , - 91 , - 370 , - 1129 , - 1088 , - 247 , - 1166 , - 5 , - 604 , - 403 , - 682 , - 161 , - 120 , - 559 , - 198 , - 317 , - 916 , - 715 , - 994 , - 473 , - 432 , - 871 , - 510 , - 629 , - 1228 , - 1027 , - 26 , - 785 , - 744 , - 1183 , - 822 , - 941 , - 260 , - 59 , - 338 , - 1097 , - 1056 , - 215 , - 1134 , - 1253 , - 572 , - 371 , - 650 , - 129 , - 88 , - 527 , - 166 , - 285 , - 884 , - 683 , - 962 , - 441 , - 400 , - 839 , - 478 , - 597 , - 1196 , - 995 , - 1274 , - 753 , - 712 , - 1151 , - 790 , - 909 , - 228 , - 27 , - 306 , - 1065 , - 1024 , - 183 , - 1102 , - 1221 , - 540 , - 339 , - 618 , - 97 , - 56 , - 495 , - 134 , - 253 , - 852 , - 651 , - 930 , - 409 , - 368 , - 807 , - 446 , - 565 , - 1164 , - 963 , - 1242 , - 721 , - 680 , - 1119 , - 758 , - 877 , - 196 , - 1275 , - 274 , - 1033 , - 992 , - 151 , - 1070 , - 1189 , - 508 , - 307 , - 586 , - 65 , - 24 , - 463 , - 102 , - 221 , - 820 , - 619 , - 898 , - 377 , - 336 , - 775 , - 414 , - 533 , - 1132 , - 931 , - 1210 , - 689 , - 648 , - 1087 , - 726 , - 845 , - 164 , - 1243 , - 242 , - 1001 , - 960 , - 119 , - 1038 , - 1157 , - 476 , - 275 , - 554 , - 33 , - 1272 , - 431 , - 70 , - 189 , - 788 , - 587 , - 866 , - 345 , - 304 , - 743 , - 382 , - 501 , - 1100 , - 899 , - 1178 , - 657 , - 616 , - 1055 , - 694 , - 813 , - 132 , - 1211 , - 210 , - 969 , - 928 , - 87 , - 1006 , - 1125 , - 444 , - 243 , - 522 , - 1 , - 1240 , - 399 , - 38 , - 157 , - 756 , - 555 , - 834 , - 313 , - 272 , - 711 , - 350 , - 469 , - 1068 , - 867 , - 1146 , - 625 , - 584 , - 1023 , - 662 , - 781 , - 100 , - 1179 , - 178 , - 937 , - 896 , - 55 , - 974 , - 1093 , - 412 , - 211 , - 490 , - 1249 , - 1208 , - 367 , - 6 , - 125 , - 724 , - 523 , - 802 , - 281 , - 240 , - 679 , - 318 , - 437 , - 1036 , - 835 , - 1114 , - 593 , - 552 , - 991 , - 630 , - 749 , - 68 , - 1147 , - 146 , - 905 , - 864 , - 23 , - 942 , - 1061 , - 380 , - 179 , - 458 , - 1217 , - 1176 , - 335 , - 1254 , - 93 , - 692 , - 491 , - 770 , - 249 , - 208 , - 647 , - 286 , - 405 , - 1004 , - 803 , - 1082 , - 561 , - 520 , - 959 , - 598 , - 717 , - 36 , - 1115 , - 114 , - 873 , - 832 , - 1271 , - 910 , - 1029 , - 348 , - 147 , - 426 , - 1185 , - 1144 , - 303 , - 1222 , - 61 , - 660 , - 459 , - 738 , - 217 , - 176 , - 615 , - 254 , - 373 , - 972 , - 771 , - 1050 , - 529 , - 488 , - 927 , - 566 , - 685 , - 4 , - 1083 , - 82 , - 841 , - 800 , - 1239 , - 878 , - 997 , - 316 , - 115 , - 394 , - 1153 , - 1112 , - 271 , - 1190 , - 29 , - 628 , - 427 , - 706 , - 185 , - 144 , - 583 , - 222 , - 341 , - 940 , - 739 , - 1018 , - 497 , - 456 , - 895 , - 534 , - 653 , - 1252 , - 1051 , - 50 , - 809 , - 768 , - 1207 , - 846 , - 965 , - 284 , - 83 , - 362 , - 1121 , - 1080 , - 239 , - 1158 , - 1277 , - 596 , - 395 , - 674 , - 153 , - 112 , - 551 , - 190 , - 309 , - 908 , - 707 , - 986 , - 465 , - 424 , - 863 , - 502 , - 621 , - 1220 , - 1019 , - 18 , - 777 , - 736 , - 1175 , - 814 , - 933 , - 252 , - 51 , - 330 , - 1089 , - 1048 , - 207 , - 1126 , - 1245 , - 564 , - 363 , - 642 , - 121 , - 80 , - 519 , - 158 , - 277 , - 876 , - 675 , - 954 , - 433 , - 392 , - 831 , - 470 , - 589 , - 1188 , - 987 , - 1266 , - 745 , - 704 , - 1143 , - 782 , - 901 , - 220 , - 19 , - 298 , - 1057 , - 1016 , - 175 , - 1094 , - 1213 , - 532 , - 331 , - 610 , - 89 , - 48 , - 487 , - 126 , - 245 , - 844 , - 643 , - 922 , - 401 , - 360 , - 799 , - 438 , - 557 , - 1156 , - 955 , - 1234 , - 713 , - 672 , - 1111 , - 750 , - 869 , - 188 , - 1267 , - 266 , - 1025 , - 984 , - 143 , - 1062 , - 1181 , - 500 , - 299 , - 578 , - 57 , - 16 , - 455 , - 94 , - 213 , - 812 , - 611 , - 890 , - 369 , - 328 , - 767 , - 406 , - 525 , - 1124 , - 923 , - 1202 , - 681 , - 640 , - 1079 , - 718 , - 837 , - 156 , - 1235 , - 234 , - 993 , - 952 , - 111 , - 1030 , - 1149 , - 468 , - 267 , - 546 , - 25 , - 1264 , - 423 , - 62 , - 181 , - 780 , - 579 , - 858 , - 337 , - 296 , - 735 , - 374 , - 493 , - 1092 , - 891 , - 1170 , - 649 , - 608 , - 1047 , - 686 , - 805 , - 124 , - 1203 , - 202 , - 961 , - 920 , - 79 , - 998 , - 1117 , - 436 , - 235 , - 514 , - 1273 , - 1232 , - 391 , - 30 , - 149 , - 748 , - 547 , - 826 , - 305 , - 264 , - 703 , - 342 , - 461 , - 1060 , - 859 , - 1138 , - 617 , - 576 , - 1015 , - 654 , - 773 , - 92 , - 1171 , - 170 , - 929 , - 888 , - 47 , - 966 , - 1085 , - 404 , - 203 , - 482 , - 1241 , - 1200 , - 359 , - 1278 , - 117 , - 716 , - 515 , - 794 , - 273 , - 232 , - 671 , - 310 , - 429 , - 1028 , - 827 , - 1106 , - 585 , - 544 , - 983 , - 622 , - 741 , - 60 , - 1139 , - 138 , - 897 , - 856 , - 15 , - 934 , - 1053 , - 372 , - 171 , - 450 , - 1209 , - 1168 , - 327 , - 1246 , - 85 , - 684 , - 483 , - 762 , - 241 , - 200 , - 639 , - 278 , - 397 , - 996 , - 795 , - 1074 , - 553 , - 512 , - 951 , - 590 , - 709 , - 28 , - 1107 , - 106 , - 865 , - 824 , - 1263 , - 902 , - 1021 , - 340 , - 139 , - 418 , - 1177 , - 1136 , - 295 , - 1214 , - 53 , - 652 , - 451 , - 730 , - 209 , - 168 , - 607 , - 246 , - 365 , - 964 , - 763 , - 1042 , - 521 , - 480 , - 919 , - 558 , - 677 , - 1276 , - 1075 , - 74 , - 833 , - 792 , - 1231 , - 870 , - 989 , - 308 , - 107 , - 386 , - 1145 , - 1104 , - 263 , - 1182 , - 21 , - 620 , - 419 , - 698 , - 177 , - 136 , - 575 , - 214 , - 333 , - 932 , - 731 , - 1010 , - 489 , - 448 , - 887 , - 526 , - 645 , - 1244 , - 1043 , - 42 , - 801 , - 760 , - 1199 , - 838 , - 957 , - 276 , - 75 , - 354 , - 1113 , - 1072 , - 231 , - 1150 , - 1269 , - 588 , - 387 , - 666 , - 145 , - 104 , - 543 , - 182 , - 301 , - 900 , - 699 , - 978 , - 457 , - 416 , - 855 , - 494 , - 613 , - 1212 , - 1011 , - 10 , - 769 , - 728 , - 1167 , - 806 , - 925 , - 244 , - 43 , - 322 , - 1081 , - 1040 , - 199 , - 1118 , - 1237 , - 556 , - 355 , - 634 , - 113 , - 72 , - 511 , - 150 , - 269 , - 868 , - 667 , - 946 , - 425 , - 384 , - 823 , - 462 , - 581 , - 1180 , - 979 , - 1258 , - 737 , - 696 , - 1135 , - 774 , - 893 , - 212 , - 11 , - 290 , - 1049 , - 1008 , - 167 , - 1086 , - 1205 , - 524 , - 323 , - 602 , - 81 , - 40 , - 479 , - 118 , - 237 , - 836 , - 635 , - 914 , - 393 , - 352 , - 791 , - 430 , - 549 , - 1148 , - 947 , - 1226 , - 705 , - 664 , - 1103 , - 742 , - 861 , - 180 , - 1259 , - 258 , - 1017 , - 976 , - 135 , - 1054 , - 1173 , - 492 , - 291 , - 570 , - 49 , - 8 , - 447 , - 86 , - 205 , - 804 , - 603 , - 882 , - 361 , - 320 , - 759 , - 398 , - 517 , - 1116 , - 915 , - 1194 , - 673 , - 632 , - 1071 , - 710 , - 829 , - 148 , - 1227 , - 226 , - 985 , - 944 , - 103 , - 1022 , - 1141 , - 460 , - 259 , - 538 , - 17 , - 1256 , - 415 , - 54 , - 173 , - 772 , - 571 , - 850 , - 329 , - 288 , - 727 , - 366 , - 485 , - 1084 , - 883 , - 1162 , - 641 , - 600 , - 1039 , - 678 , - 797 , - 116 , - 1195 , - 194 , - 953 , - 912 , - 71 , - 990 , - 1109 , - 428 , - 227 , - 506 , - 1265 , - 1224 , - 383 , - 22 , - 141 , - 740 , - 539 , - 818 , - 297 , - 256 , - 695 , - 334 , - 453 , - 1052 , - 851 , - 1130 , - 609 , - 568 , - 1007 , - 646 , - 765 , - 84 , - 1163 , - 162 , - 921 , - 880 , - 39 , - 958 , - 1077 , - 396 , - 195 , - 474 , - 1233 , - 1192 , - 351 , - 1270 , - 109 , - 708 , - 507 , - 786 , - 265 , - 224 , - 663 , - 302 , - 421 , - 1020 , - 819 , - 1098 , - 577 , - 536 , - 975 , - 614 , - 733 , - 52 , - 1131 , - 130 , - 889 , - 848 , - 7 , - 926 , - 1045 , - 364 , - 163 , - 442 , - 1201 , - 1160 , - 319 , - 1238 , - 77 , - 676 , - 475 , - 754 , - 233 , - 192 , - 631 , - 270 , - 389 , - 988 , - 787 , - 1066 , - 545 , - 504 , - 943 , - 582 , - 701 , - 20 , - 1099 , - 98 , - 857 , - 816 , - 1255 , - 894 , - 1013 , - 332 , - 131 , - 410 , - 1169 , - 1128 , - 287 , - 1206 , - 45 , - 644 , - 443 , - 722 , - 201 , - 160 , - 599 , - 238 , - 357 , - 956 , - 755 , - 1034 , - 513 , - 472 , - 911 , - 550 , - 669 , - 1268 , - 1067 , - 66 , - 825 , - 784 , - 1223 , - 862 , - 981 , - 300 , - 99 , - 378 , - 1137 , - 1096 , - 255 , - 1174 , - 13 , - 612 , - 411 , - 690 , - 169 , - 128 , - 567 , - 206 , - 325 , - 924 , - 723 , - 1002 , - 481 , - 440 , - 879 , - 518 , - 637 , - 1236 , - 1035 , - 34 , - 793 , - 752 , - 1191 , - 830 , - 949 , - 268 , - 67 , - 346 , - 1105 , - 1064 , - 223 , - 1142 , - 1261 , - 580 , - 379 , - 658 , - 137 , - 96 , - 535 , - 174 , - 293 , - 892 , - 691 , - 970 , - 449 , - 408 , - 847 , - 486 , - 605 , - 1204 , - 1003 , - 2 , - 761 , - 720 , - 1159 , - 798 , - 917 , - 236 , - 35 , - 314 , - 1073 , - 1032 , - 191 , - 1110 , - 1229 , - 548 , - 347 , - 626 , - 105 , - 64 , - 503 , - 142 , - 261 , - 860 , - 659 , - 938 , - 417 , - 376 , - 815 , - 454 , - 573 , - 1172 , - 971 , - 1250 , - 729 , - 688 , - 1127 , - 766 , - 885 , - 204 , - 3 , - 282 , - 1041 , - 1000 , - 159 , - 1078 , - 1197 , - 516 , - 315 , - 594 , - 73 , - 32 , - 471 , - 110 , - 229 , - 828 , - 627 , - 906 , - 385 , - 344 , - 783 , - 422 , - 541 , - 1140 , - 939 , - 1218 , - 697 , - 656 , - 1095 , - 734 , - 853 , - 172 , - 1251 , - 250 , - 1009 , - 968 , - 127 , - 1046 , - 1165 , - 484 , - 283 , - 562 , - 41 , - 0 , - 103 , - 370 , - 801 , - 84 , - 843 , - 454 , - 229 , - 168 , - 271 , - 538 , - 969 , - 252 , - 1011 , - 622 , - 397 , - 336 , - 439 , - 706 , - 1137 , - 420 , - 1179 , - 790 , - 565 , - 504 , - 607 , - 874 , - 1305 , - 588 , - 35 , - 958 , - 733 , - 672 , - 775 , - 1042 , - 161 , - 756 , - 203 , - 1126 , - 901 , - 840 , - 943 , - 1210 , - 329 , - 924 , - 371 , - 1294 , - 1069 , - 1008 , - 1111 , - 66 , - 497 , - 1092 , - 539 , - 150 , - 1237 , - 1176 , - 1279 , - 234 , - 665 , - 1260 , - 707 , - 318 , - 93 , - 32 , - 135 , - 402 , - 833 , - 116 , - 875 , - 486 , - 261 , - 200 , - 303 , - 570 , - 1001 , - 284 , - 1043 , - 654 , - 429 , - 368 , - 471 , - 738 , - 1169 , - 452 , - 1211 , - 822 , - 597 , - 536 , - 639 , - 906 , - 25 , - 620 , - 67 , - 990 , - 765 , - 704 , - 807 , - 1074 , - 193 , - 788 , - 235 , - 1158 , - 933 , - 872 , - 975 , - 1242 , - 361 , - 956 , - 403 , - 14 , - 1101 , - 1040 , - 1143 , - 98 , - 529 , - 1124 , - 571 , - 182 , - 1269 , - 1208 , - 1311 , - 266 , - 697 , - 1292 , - 739 , - 350 , - 125 , - 64 , - 167 , - 434 , - 865 , - 148 , - 907 , - 518 , - 293 , - 232 , - 335 , - 602 , - 1033 , - 316 , - 1075 , - 686 , - 461 , - 400 , - 503 , - 770 , - 1201 , - 484 , - 1243 , - 854 , - 629 , - 568 , - 671 , - 938 , - 57 , - 652 , - 99 , - 1022 , - 797 , - 736 , - 839 , - 1106 , - 225 , - 820 , - 267 , - 1190 , - 965 , - 904 , - 1007 , - 1274 , - 393 , - 988 , - 435 , - 46 , - 1133 , - 1072 , - 1175 , - 130 , - 561 , - 1156 , - 603 , - 214 , - 1301 , - 1240 , - 31 , - 298 , - 729 , - 12 , - 771 , - 382 , - 157 , - 96 , - 199 , - 466 , - 897 , - 180 , - 939 , - 550 , - 325 , - 264 , - 367 , - 634 , - 1065 , - 348 , - 1107 , - 718 , - 493 , - 432 , - 535 , - 802 , - 1233 , - 516 , - 1275 , - 886 , - 661 , - 600 , - 703 , - 970 , - 89 , - 684 , - 131 , - 1054 , - 829 , - 768 , - 871 , - 1138 , - 257 , - 852 , - 299 , - 1222 , - 997 , - 936 , - 1039 , - 1306 , - 425 , - 1020 , - 467 , - 78 , - 1165 , - 1104 , - 1207 , - 162 , - 593 , - 1188 , - 635 , - 246 , - 21 , - 1272 , - 63 , - 330 , - 761 , - 44 , - 803 , - 414 , - 189 , - 128 , - 231 , - 498 , - 929 , - 212 , - 971 , - 582 , - 357 , - 296 , - 399 , - 666 , - 1097 , - 380 , - 1139 , - 750 , - 525 , - 464 , - 567 , - 834 , - 1265 , - 548 , - 1307 , - 918 , - 693 , - 632 , - 735 , - 1002 , - 121 , - 716 , - 163 , - 1086 , - 861 , - 800 , - 903 , - 1170 , - 289 , - 884 , - 331 , - 1254 , - 1029 , - 968 , - 1071 , - 26 , - 457 , - 1052 , - 499 , - 110 , - 1197 , - 1136 , - 1239 , - 194 , - 625 , - 1220 , - 667 , - 278 , - 53 , - 1304 , - 95 , - 362 , - 793 , - 76 , - 835 , - 446 , - 221 , - 160 , - 263 , - 530 , - 961 , - 244 , - 1003 , - 614 , - 389 , - 328 , - 431 , - 698 , - 1129 , - 412 , - 1171 , - 782 , - 557 , - 496 , - 599 , - 866 , - 1297 , - 580 , - 27 , - 950 , - 725 , - 664 , - 767 , - 1034 , - 153 , - 748 , - 195 , - 1118 , - 893 , - 832 , - 935 , - 1202 , - 321 , - 916 , - 363 , - 1286 , - 1061 , - 1000 , - 1103 , - 58 , - 489 , - 1084 , - 531 , - 142 , - 1229 , - 1168 , - 1271 , - 226 , - 657 , - 1252 , - 699 , - 310 , - 85 , - 24 , - 127 , - 394 , - 825 , - 108 , - 867 , - 478 , - 253 , - 192 , - 295 , - 562 , - 993 , - 276 , - 1035 , - 646 , - 421 , - 360 , - 463 , - 730 , - 1161 , - 444 , - 1203 , - 814 , - 589 , - 528 , - 631 , - 898 , - 17 , - 612 , - 59 , - 982 , - 757 , - 696 , - 799 , - 1066 , - 185 , - 780 , - 227 , - 1150 , - 925 , - 864 , - 967 , - 1234 , - 353 , - 948 , - 395 , - 6 , - 1093 , - 1032 , - 1135 , - 90 , - 521 , - 1116 , - 563 , - 174 , - 1261 , - 1200 , - 1303 , - 258 , - 689 , - 1284 , - 731 , - 342 , - 117 , - 56 , - 159 , - 426 , - 857 , - 140 , - 899 , - 510 , - 285 , - 224 , - 327 , - 594 , - 1025 , - 308 , - 1067 , - 678 , - 453 , - 392 , - 495 , - 762 , - 1193 , - 476 , - 1235 , - 846 , - 621 , - 560 , - 663 , - 930 , - 49 , - 644 , - 91 , - 1014 , - 789 , - 728 , - 831 , - 1098 , - 217 , - 812 , - 259 , - 1182 , - 957 , - 896 , - 999 , - 1266 , - 385 , - 980 , - 427 , - 38 , - 1125 , - 1064 , - 1167 , - 122 , - 553 , - 1148 , - 595 , - 206 , - 1293 , - 1232 , - 23 , - 290 , - 721 , - 4 , - 763 , - 374 , - 149 , - 88 , - 191 , - 458 , - 889 , - 172 , - 931 , - 542 , - 317 , - 256 , - 359 , - 626 , - 1057 , - 340 , - 1099 , - 710 , - 485 , - 424 , - 527 , - 794 , - 1225 , - 508 , - 1267 , - 878 , - 653 , - 592 , - 695 , - 962 , - 81 , - 676 , - 123 , - 1046 , - 821 , - 760 , - 863 , - 1130 , - 249 , - 844 , - 291 , - 1214 , - 989 , - 928 , - 1031 , - 1298 , - 417 , - 1012 , - 459 , - 70 , - 1157 , - 1096 , - 1199 , - 154 , - 585 , - 1180 , - 627 , - 238 , - 13 , - 1264 , - 55 , - 322 , - 753 , - 36 , - 795 , - 406 , - 181 , - 120 , - 223 , - 490 , - 921 , - 204 , - 963 , - 574 , - 349 , - 288 , - 391 , - 658 , - 1089 , - 372 , - 1131 , - 742 , - 517 , - 456 , - 559 , - 826 , - 1257 , - 540 , - 1299 , - 910 , - 685 , - 624 , - 727 , - 994 , - 113 , - 708 , - 155 , - 1078 , - 853 , - 792 , - 895 , - 1162 , - 281 , - 876 , - 323 , - 1246 , - 1021 , - 960 , - 1063 , - 18 , - 449 , - 1044 , - 491 , - 102 , - 1189 , - 1128 , - 1231 , - 186 , - 617 , - 1212 , - 659 , - 270 , - 45 , - 1296 , - 87 , - 354 , - 785 , - 68 , - 827 , - 438 , - 213 , - 152 , - 255 , - 522 , - 953 , - 236 , - 995 , - 606 , - 381 , - 320 , - 423 , - 690 , - 1121 , - 404 , - 1163 , - 774 , - 549 , - 488 , - 591 , - 858 , - 1289 , - 572 , - 19 , - 942 , - 717 , - 656 , - 759 , - 1026 , - 145 , - 740 , - 187 , - 1110 , - 885 , - 824 , - 927 , - 1194 , - 313 , - 908 , - 355 , - 1278 , - 1053 , - 992 , - 1095 , - 50 , - 481 , - 1076 , - 523 , - 134 , - 1221 , - 1160 , - 1263 , - 218 , - 649 , - 1244 , - 691 , - 302 , - 77 , - 16 , - 119 , - 386 , - 817 , - 100 , - 859 , - 470 , - 245 , - 184 , - 287 , - 554 , - 985 , - 268 , - 1027 , - 638 , - 413 , - 352 , - 455 , - 722 , - 1153 , - 436 , - 1195 , - 806 , - 581 , - 520 , - 623 , - 890 , - 9 , - 604 , - 51 , - 974 , - 749 , - 688 , - 791 , - 1058 , - 177 , - 772 , - 219 , - 1142 , - 917 , - 856 , - 959 , - 1226 , - 345 , - 940 , - 387 , - 1310 , - 1085 , - 1024 , - 1127 , - 82 , - 513 , - 1108 , - 555 , - 166 , - 1253 , - 1192 , - 1295 , - 250 , - 681 , - 1276 , - 723 , - 334 , - 109 , - 48 , - 151 , - 418 , - 849 , - 132 , - 891 , - 502 , - 277 , - 216 , - 319 , - 586 , - 1017 , - 300 , - 1059 , - 670 , - 445 , - 384 , - 487 , - 754 , - 1185 , - 468 , - 1227 , - 838 , - 613 , - 552 , - 655 , - 922 , - 41 , - 636 , - 83 , - 1006 , - 781 , - 720 , - 823 , - 1090 , - 209 , - 804 , - 251 , - 1174 , - 949 , - 888 , - 991 , - 1258 , - 377 , - 972 , - 419 , - 30 , - 1117 , - 1056 , - 1159 , - 114 , - 545 , - 1140 , - 587 , - 198 , - 1285 , - 1224 , - 15 , - 282 , - 713 , - 1308 , - 755 , - 366 , - 141 , - 80 , - 183 , - 450 , - 881 , - 164 , - 923 , - 534 , - 309 , - 248 , - 351 , - 618 , - 1049 , - 332 , - 1091 , - 702 , - 477 , - 416 , - 519 , - 786 , - 1217 , - 500 , - 1259 , - 870 , - 645 , - 584 , - 687 , - 954 , - 73 , - 668 , - 115 , - 1038 , - 813 , - 752 , - 855 , - 1122 , - 241 , - 836 , - 283 , - 1206 , - 981 , - 920 , - 1023 , - 1290 , - 409 , - 1004 , - 451 , - 62 , - 1149 , - 1088 , - 1191 , - 146 , - 577 , - 1172 , - 619 , - 230 , - 5 , - 1256 , - 47 , - 314 , - 745 , - 28 , - 787 , - 398 , - 173 , - 112 , - 215 , - 482 , - 913 , - 196 , - 955 , - 566 , - 341 , - 280 , - 383 , - 650 , - 1081 , - 364 , - 1123 , - 734 , - 509 , - 448 , - 551 , - 818 , - 1249 , - 532 , - 1291 , - 902 , - 677 , - 616 , - 719 , - 986 , - 105 , - 700 , - 147 , - 1070 , - 845 , - 784 , - 887 , - 1154 , - 273 , - 868 , - 315 , - 1238 , - 1013 , - 952 , - 1055 , - 10 , - 441 , - 1036 , - 483 , - 94 , - 1181 , - 1120 , - 1223 , - 178 , - 609 , - 1204 , - 651 , - 262 , - 37 , - 1288 , - 79 , - 346 , - 777 , - 60 , - 819 , - 430 , - 205 , - 144 , - 247 , - 514 , - 945 , - 228 , - 987 , - 598 , - 373 , - 312 , - 415 , - 682 , - 1113 , - 396 , - 1155 , - 766 , - 541 , - 480 , - 583 , - 850 , - 1281 , - 564 , - 11 , - 934 , - 709 , - 648 , - 751 , - 1018 , - 137 , - 732 , - 179 , - 1102 , - 877 , - 816 , - 919 , - 1186 , - 305 , - 900 , - 347 , - 1270 , - 1045 , - 984 , - 1087 , - 42 , - 473 , - 1068 , - 515 , - 126 , - 1213 , - 1152 , - 1255 , - 210 , - 641 , - 1236 , - 683 , - 294 , - 69 , - 8 , - 111 , - 378 , - 809 , - 92 , - 851 , - 462 , - 237 , - 176 , - 279 , - 546 , - 977 , - 260 , - 1019 , - 630 , - 405 , - 344 , - 447 , - 714 , - 1145 , - 428 , - 1187 , - 798 , - 573 , - 512 , - 615 , - 882 , - 1 , - 596 , - 43 , - 966 , - 741 , - 680 , - 783 , - 1050 , - 169 , - 764 , - 211 , - 1134 , - 909 , - 848 , - 951 , - 1218 , - 337 , - 932 , - 379 , - 1302 , - 1077 , - 1016 , - 1119 , - 74 , - 505 , - 1100 , - 547 , - 158 , - 1245 , - 1184 , - 1287 , - 242 , - 673 , - 1268 , - 715 , - 326 , - 101 , - 40 , - 143 , - 410 , - 841 , - 124 , - 883 , - 494 , - 269 , - 208 , - 311 , - 578 , - 1009 , - 292 , - 1051 , - 662 , - 437 , - 376 , - 479 , - 746 , - 1177 , - 460 , - 1219 , - 830 , - 605 , - 544 , - 647 , - 914 , - 33 , - 628 , - 75 , - 998 , - 773 , - 712 , - 815 , - 1082 , - 201 , - 796 , - 243 , - 1166 , - 941 , - 880 , - 983 , - 1250 , - 369 , - 964 , - 411 , - 22 , - 1109 , - 1048 , - 1151 , - 106 , - 537 , - 1132 , - 579 , - 190 , - 1277 , - 1216 , - 7 , - 274 , - 705 , - 1300 , - 747 , - 358 , - 133 , - 72 , - 175 , - 442 , - 873 , - 156 , - 915 , - 526 , - 301 , - 240 , - 343 , - 610 , - 1041 , - 324 , - 1083 , - 694 , - 469 , - 408 , - 511 , - 778 , - 1209 , - 492 , - 1251 , - 862 , - 637 , - 576 , - 679 , - 946 , - 65 , - 660 , - 107 , - 1030 , - 805 , - 744 , - 847 , - 1114 , - 233 , - 828 , - 275 , - 1198 , - 973 , - 912 , - 1015 , - 1282 , - 401 , - 996 , - 443 , - 54 , - 1141 , - 1080 , - 1183 , - 138 , - 569 , - 1164 , - 611 , - 222 , - 1309 , - 1248 , - 39 , - 306 , - 737 , - 20 , - 779 , - 390 , - 165 , - 104 , - 207 , - 474 , - 905 , - 188 , - 947 , - 558 , - 333 , - 272 , - 375 , - 642 , - 1073 , - 356 , - 1115 , - 726 , - 501 , - 440 , - 543 , - 810 , - 1241 , - 524 , - 1283 , - 894 , - 669 , - 608 , - 711 , - 978 , - 97 , - 692 , - 139 , - 1062 , - 837 , - 776 , - 879 , - 1146 , - 265 , - 860 , - 307 , - 1230 , - 1005 , - 944 , - 1047 , - 2 , - 433 , - 1028 , - 475 , - 86 , - 1173 , - 1112 , - 1215 , - 170 , - 601 , - 1196 , - 643 , - 254 , - 29 , - 1280 , - 71 , - 338 , - 769 , - 52 , - 811 , - 422 , - 197 , - 136 , - 239 , - 506 , - 937 , - 220 , - 979 , - 590 , - 365 , - 304 , - 407 , - 674 , - 1105 , - 388 , - 1147 , - 758 , - 533 , - 472 , - 575 , - 842 , - 1273 , - 556 , - 3 , - 926 , - 701 , - 640 , - 743 , - 1010 , - 129 , - 724 , - 171 , - 1094 , - 869 , - 808 , - 911 , - 1178 , - 297 , - 892 , - 339 , - 1262 , - 1037 , - 976 , - 1079 , - 34 , - 465 , - 1060 , - 507 , - 118 , - 1205 , - 1144 , - 1247 , - 202 , - 633 , - 1228 , - 675 , - 286 , - 61 , - 0 , - 463 , - 86 , - 213 , - 844 , - 635 , - 930 , - 385 , - 344 , - 807 , - 430 , - 557 , - 1188 , - 979 , - 1274 , - 729 , - 688 , - 1151 , - 774 , - 901 , - 188 , - 1323 , - 274 , - 1073 , - 1032 , - 151 , - 1118 , - 1245 , - 532 , - 323 , - 618 , - 73 , - 32 , - 495 , - 118 , - 245 , - 876 , - 667 , - 962 , - 417 , - 376 , - 839 , - 462 , - 589 , - 1220 , - 1011 , - 1306 , - 761 , - 720 , - 1183 , - 806 , - 933 , - 220 , - 11 , - 306 , - 1105 , - 1064 , - 183 , - 1150 , - 1277 , - 564 , - 355 , - 650 , - 105 , - 64 , - 527 , - 150 , - 277 , - 908 , - 699 , - 994 , - 449 , - 408 , - 871 , - 494 , - 621 , - 1252 , - 1043 , - 1338 , - 793 , - 752 , - 1215 , - 838 , - 965 , - 252 , - 43 , - 338 , - 1137 , - 1096 , - 215 , - 1182 , - 1309 , - 596 , - 387 , - 682 , - 137 , - 96 , - 559 , - 182 , - 309 , - 940 , - 731 , - 1026 , - 481 , - 440 , - 903 , - 526 , - 653 , - 1284 , - 1075 , - 26 , - 825 , - 784 , - 1247 , - 870 , - 997 , - 284 , - 75 , - 370 , - 1169 , - 1128 , - 247 , - 1214 , - 1341 , - 628 , - 419 , - 714 , - 169 , - 128 , - 591 , - 214 , - 341 , - 972 , - 763 , - 1058 , - 513 , - 472 , - 935 , - 558 , - 685 , - 1316 , - 1107 , - 58 , - 857 , - 816 , - 1279 , - 902 , - 1029 , - 316 , - 107 , - 402 , - 1201 , - 1160 , - 279 , - 1246 , - 29 , - 660 , - 451 , - 746 , - 201 , - 160 , - 623 , - 246 , - 373 , - 1004 , - 795 , - 1090 , - 545 , - 504 , - 967 , - 590 , - 717 , - 4 , - 1139 , - 90 , - 889 , - 848 , - 1311 , - 934 , - 1061 , - 348 , - 139 , - 434 , - 1233 , - 1192 , - 311 , - 1278 , - 61 , - 692 , - 483 , - 778 , - 233 , - 192 , - 655 , - 278 , - 405 , - 1036 , - 827 , - 1122 , - 577 , - 536 , - 999 , - 622 , - 749 , - 36 , - 1171 , - 122 , - 921 , - 880 , - 1343 , - 966 , - 1093 , - 380 , - 171 , - 466 , - 1265 , - 1224 , - 343 , - 1310 , - 93 , - 724 , - 515 , - 810 , - 265 , - 224 , - 687 , - 310 , - 437 , - 1068 , - 859 , - 1154 , - 609 , - 568 , - 1031 , - 654 , - 781 , - 68 , - 1203 , - 154 , - 953 , - 912 , - 31 , - 998 , - 1125 , - 412 , - 203 , - 498 , - 1297 , - 1256 , - 375 , - 1342 , - 125 , - 756 , - 547 , - 842 , - 297 , - 256 , - 719 , - 342 , - 469 , - 1100 , - 891 , - 1186 , - 641 , - 600 , - 1063 , - 686 , - 813 , - 100 , - 1235 , - 186 , - 985 , - 944 , - 63 , - 1030 , - 1157 , - 444 , - 235 , - 530 , - 1329 , - 1288 , - 407 , - 30 , - 157 , - 788 , - 579 , - 874 , - 329 , - 288 , - 751 , - 374 , - 501 , - 1132 , - 923 , - 1218 , - 673 , - 632 , - 1095 , - 718 , - 845 , - 132 , - 1267 , - 218 , - 1017 , - 976 , - 95 , - 1062 , - 1189 , - 476 , - 267 , - 562 , - 17 , - 1320 , - 439 , - 62 , - 189 , - 820 , - 611 , - 906 , - 361 , - 320 , - 783 , - 406 , - 533 , - 1164 , - 955 , - 1250 , - 705 , - 664 , - 1127 , - 750 , - 877 , - 164 , - 1299 , - 250 , - 1049 , - 1008 , - 127 , - 1094 , - 1221 , - 508 , - 299 , - 594 , - 49 , - 8 , - 471 , - 94 , - 221 , - 852 , - 643 , - 938 , - 393 , - 352 , - 815 , - 438 , - 565 , - 1196 , - 987 , - 1282 , - 737 , - 696 , - 1159 , - 782 , - 909 , - 196 , - 1331 , - 282 , - 1081 , - 1040 , - 159 , - 1126 , - 1253 , - 540 , - 331 , - 626 , - 81 , - 40 , - 503 , - 126 , - 253 , - 884 , - 675 , - 970 , - 425 , - 384 , - 847 , - 470 , - 597 , - 1228 , - 1019 , - 1314 , - 769 , - 728 , - 1191 , - 814 , - 941 , - 228 , - 19 , - 314 , - 1113 , - 1072 , - 191 , - 1158 , - 1285 , - 572 , - 363 , - 658 , - 113 , - 72 , - 535 , - 158 , - 285 , - 916 , - 707 , - 1002 , - 457 , - 416 , - 879 , - 502 , - 629 , - 1260 , - 1051 , - 2 , - 801 , - 760 , - 1223 , - 846 , - 973 , - 260 , - 51 , - 346 , - 1145 , - 1104 , - 223 , - 1190 , - 1317 , - 604 , - 395 , - 690 , - 145 , - 104 , - 567 , - 190 , - 317 , - 948 , - 739 , - 1034 , - 489 , - 448 , - 911 , - 534 , - 661 , - 1292 , - 1083 , - 34 , - 833 , - 792 , - 1255 , - 878 , - 1005 , - 292 , - 83 , - 378 , - 1177 , - 1136 , - 255 , - 1222 , - 5 , - 636 , - 427 , - 722 , - 177 , - 136 , - 599 , - 222 , - 349 , - 980 , - 771 , - 1066 , - 521 , - 480 , - 943 , - 566 , - 693 , - 1324 , - 1115 , - 66 , - 865 , - 824 , - 1287 , - 910 , - 1037 , - 324 , - 115 , - 410 , - 1209 , - 1168 , - 287 , - 1254 , - 37 , - 668 , - 459 , - 754 , - 209 , - 168 , - 631 , - 254 , - 381 , - 1012 , - 803 , - 1098 , - 553 , - 512 , - 975 , - 598 , - 725 , - 12 , - 1147 , - 98 , - 897 , - 856 , - 1319 , - 942 , - 1069 , - 356 , - 147 , - 442 , - 1241 , - 1200 , - 319 , - 1286 , - 69 , - 700 , - 491 , - 786 , - 241 , - 200 , - 663 , - 286 , - 413 , - 1044 , - 835 , - 1130 , - 585 , - 544 , - 1007 , - 630 , - 757 , - 44 , - 1179 , - 130 , - 929 , - 888 , - 7 , - 974 , - 1101 , - 388 , - 179 , - 474 , - 1273 , - 1232 , - 351 , - 1318 , - 101 , - 732 , - 523 , - 818 , - 273 , - 232 , - 695 , - 318 , - 445 , - 1076 , - 867 , - 1162 , - 617 , - 576 , - 1039 , - 662 , - 789 , - 76 , - 1211 , - 162 , - 961 , - 920 , - 39 , - 1006 , - 1133 , - 420 , - 211 , - 506 , - 1305 , - 1264 , - 383 , - 6 , - 133 , - 764 , - 555 , - 850 , - 305 , - 264 , - 727 , - 350 , - 477 , - 1108 , - 899 , - 1194 , - 649 , - 608 , - 1071 , - 694 , - 821 , - 108 , - 1243 , - 194 , - 993 , - 952 , - 71 , - 1038 , - 1165 , - 452 , - 243 , - 538 , - 1337 , - 1296 , - 415 , - 38 , - 165 , - 796 , - 587 , - 882 , - 337 , - 296 , - 759 , - 382 , - 509 , - 1140 , - 931 , - 1226 , - 681 , - 640 , - 1103 , - 726 , - 853 , - 140 , - 1275 , - 226 , - 1025 , - 984 , - 103 , - 1070 , - 1197 , - 484 , - 275 , - 570 , - 25 , - 1328 , - 447 , - 70 , - 197 , - 828 , - 619 , - 914 , - 369 , - 328 , - 791 , - 414 , - 541 , - 1172 , - 963 , - 1258 , - 713 , - 672 , - 1135 , - 758 , - 885 , - 172 , - 1307 , - 258 , - 1057 , - 1016 , - 135 , - 1102 , - 1229 , - 516 , - 307 , - 602 , - 57 , - 16 , - 479 , - 102 , - 229 , - 860 , - 651 , - 946 , - 401 , - 360 , - 823 , - 446 , - 573 , - 1204 , - 995 , - 1290 , - 745 , - 704 , - 1167 , - 790 , - 917 , - 204 , - 1339 , - 290 , - 1089 , - 1048 , - 167 , - 1134 , - 1261 , - 548 , - 339 , - 634 , - 89 , - 48 , - 511 , - 134 , - 261 , - 892 , - 683 , - 978 , - 433 , - 392 , - 855 , - 478 , - 605 , - 1236 , - 1027 , - 1322 , - 777 , - 736 , - 1199 , - 822 , - 949 , - 236 , - 27 , - 322 , - 1121 , - 1080 , - 199 , - 1166 , - 1293 , - 580 , - 371 , - 666 , - 121 , - 80 , - 543 , - 166 , - 293 , - 924 , - 715 , - 1010 , - 465 , - 424 , - 887 , - 510 , - 637 , - 1268 , - 1059 , - 10 , - 809 , - 768 , - 1231 , - 854 , - 981 , - 268 , - 59 , - 354 , - 1153 , - 1112 , - 231 , - 1198 , - 1325 , - 612 , - 403 , - 698 , - 153 , - 112 , - 575 , - 198 , - 325 , - 956 , - 747 , - 1042 , - 497 , - 456 , - 919 , - 542 , - 669 , - 1300 , - 1091 , - 42 , - 841 , - 800 , - 1263 , - 886 , - 1013 , - 300 , - 91 , - 386 , - 1185 , - 1144 , - 263 , - 1230 , - 13 , - 644 , - 435 , - 730 , - 185 , - 144 , - 607 , - 230 , - 357 , - 988 , - 779 , - 1074 , - 529 , - 488 , - 951 , - 574 , - 701 , - 1332 , - 1123 , - 74 , - 873 , - 832 , - 1295 , - 918 , - 1045 , - 332 , - 123 , - 418 , - 1217 , - 1176 , - 295 , - 1262 , - 45 , - 676 , - 467 , - 762 , - 217 , - 176 , - 639 , - 262 , - 389 , - 1020 , - 811 , - 1106 , - 561 , - 520 , - 983 , - 606 , - 733 , - 20 , - 1155 , - 106 , - 905 , - 864 , - 1327 , - 950 , - 1077 , - 364 , - 155 , - 450 , - 1249 , - 1208 , - 327 , - 1294 , - 77 , - 708 , - 499 , - 794 , - 249 , - 208 , - 671 , - 294 , - 421 , - 1052 , - 843 , - 1138 , - 593 , - 552 , - 1015 , - 638 , - 765 , - 52 , - 1187 , - 138 , - 937 , - 896 , - 15 , - 982 , - 1109 , - 396 , - 187 , - 482 , - 1281 , - 1240 , - 359 , - 1326 , - 109 , - 740 , - 531 , - 826 , - 281 , - 240 , - 703 , - 326 , - 453 , - 1084 , - 875 , - 1170 , - 625 , - 584 , - 1047 , - 670 , - 797 , - 84 , - 1219 , - 170 , - 969 , - 928 , - 47 , - 1014 , - 1141 , - 428 , - 219 , - 514 , - 1313 , - 1272 , - 391 , - 14 , - 141 , - 772 , - 563 , - 858 , - 313 , - 272 , - 735 , - 358 , - 485 , - 1116 , - 907 , - 1202 , - 657 , - 616 , - 1079 , - 702 , - 829 , - 116 , - 1251 , - 202 , - 1001 , - 960 , - 79 , - 1046 , - 1173 , - 460 , - 251 , - 546 , - 1 , - 1304 , - 423 , - 46 , - 173 , - 804 , - 595 , - 890 , - 345 , - 304 , - 767 , - 390 , - 517 , - 1148 , - 939 , - 1234 , - 689 , - 648 , - 1111 , - 734 , - 861 , - 148 , - 1283 , - 234 , - 1033 , - 992 , - 111 , - 1078 , - 1205 , - 492 , - 283 , - 578 , - 33 , - 1336 , - 455 , - 78 , - 205 , - 836 , - 627 , - 922 , - 377 , - 336 , - 799 , - 422 , - 549 , - 1180 , - 971 , - 1266 , - 721 , - 680 , - 1143 , - 766 , - 893 , - 180 , - 1315 , - 266 , - 1065 , - 1024 , - 143 , - 1110 , - 1237 , - 524 , - 315 , - 610 , - 65 , - 24 , - 487 , - 110 , - 237 , - 868 , - 659 , - 954 , - 409 , - 368 , - 831 , - 454 , - 581 , - 1212 , - 1003 , - 1298 , - 753 , - 712 , - 1175 , - 798 , - 925 , - 212 , - 3 , - 298 , - 1097 , - 1056 , - 175 , - 1142 , - 1269 , - 556 , - 347 , - 642 , - 97 , - 56 , - 519 , - 142 , - 269 , - 900 , - 691 , - 986 , - 441 , - 400 , - 863 , - 486 , - 613 , - 1244 , - 1035 , - 1330 , - 785 , - 744 , - 1207 , - 830 , - 957 , - 244 , - 35 , - 330 , - 1129 , - 1088 , - 207 , - 1174 , - 1301 , - 588 , - 379 , - 674 , - 129 , - 88 , - 551 , - 174 , - 301 , - 932 , - 723 , - 1018 , - 473 , - 432 , - 895 , - 518 , - 645 , - 1276 , - 1067 , - 18 , - 817 , - 776 , - 1239 , - 862 , - 989 , - 276 , - 67 , - 362 , - 1161 , - 1120 , - 239 , - 1206 , - 1333 , - 620 , - 411 , - 706 , - 161 , - 120 , - 583 , - 206 , - 333 , - 964 , - 755 , - 1050 , - 505 , - 464 , - 927 , - 550 , - 677 , - 1308 , - 1099 , - 50 , - 849 , - 808 , - 1271 , - 894 , - 1021 , - 308 , - 99 , - 394 , - 1193 , - 1152 , - 271 , - 1238 , - 21 , - 652 , - 443 , - 738 , - 193 , - 152 , - 615 , - 238 , - 365 , - 996 , - 787 , - 1082 , - 537 , - 496 , - 959 , - 582 , - 709 , - 1340 , - 1131 , - 82 , - 881 , - 840 , - 1303 , - 926 , - 1053 , - 340 , - 131 , - 426 , - 1225 , - 1184 , - 303 , - 1270 , - 53 , - 684 , - 475 , - 770 , - 225 , - 184 , - 647 , - 270 , - 397 , - 1028 , - 819 , - 1114 , - 569 , - 528 , - 991 , - 614 , - 741 , - 28 , - 1163 , - 114 , - 913 , - 872 , - 1335 , - 958 , - 1085 , - 372 , - 163 , - 458 , - 1257 , - 1216 , - 335 , - 1302 , - 85 , - 716 , - 507 , - 802 , - 257 , - 216 , - 679 , - 302 , - 429 , - 1060 , - 851 , - 1146 , - 601 , - 560 , - 1023 , - 646 , - 773 , - 60 , - 1195 , - 146 , - 945 , - 904 , - 23 , - 990 , - 1117 , - 404 , - 195 , - 490 , - 1289 , - 1248 , - 367 , - 1334 , - 117 , - 748 , - 539 , - 834 , - 289 , - 248 , - 711 , - 334 , - 461 , - 1092 , - 883 , - 1178 , - 633 , - 592 , - 1055 , - 678 , - 805 , - 92 , - 1227 , - 178 , - 977 , - 936 , - 55 , - 1022 , - 1149 , - 436 , - 227 , - 522 , - 1321 , - 1280 , - 399 , - 22 , - 149 , - 780 , - 571 , - 866 , - 321 , - 280 , - 743 , - 366 , - 493 , - 1124 , - 915 , - 1210 , - 665 , - 624 , - 1087 , - 710 , - 837 , - 124 , - 1259 , - 210 , - 1009 , - 968 , - 87 , - 1054 , - 1181 , - 468 , - 259 , - 554 , - 9 , - 1312 , - 431 , - 54 , - 181 , - 812 , - 603 , - 898 , - 353 , - 312 , - 775 , - 398 , - 525 , - 1156 , - 947 , - 1242 , - 697 , - 656 , - 1119 , - 742 , - 869 , - 156 , - 1291 , - 242 , - 1041 , - 1000 , - 119 , - 1086 , - 1213 , - 500 , - 291 , - 586 , - 41 , - 0 , - 107 , - 386 , - 837 , - 84 , - 879 , - 470 , - 233 , - 168 , - 275 , - 554 , - 1005 , - 252 , - 1047 , - 638 , - 401 , - 336 , - 443 , - 722 , - 1173 , - 420 , - 1215 , - 806 , - 569 , - 504 , - 611 , - 890 , - 1341 , - 588 , - 7 , - 974 , - 737 , - 672 , - 779 , - 1058 , - 133 , - 756 , - 175 , - 1142 , - 905 , - 840 , - 947 , - 1226 , - 301 , - 924 , - 343 , - 1310 , - 1073 , - 1008 , - 1115 , - 18 , - 469 , - 1092 , - 511 , - 102 , - 1241 , - 1176 , - 1283 , - 186 , - 637 , - 1260 , - 679 , - 270 , - 33 , - 1344 , - 75 , - 354 , - 805 , - 52 , - 847 , - 438 , - 201 , - 136 , - 243 , - 522 , - 973 , - 220 , - 1015 , - 606 , - 369 , - 304 , - 411 , - 690 , - 1141 , - 388 , - 1183 , - 774 , - 537 , - 472 , - 579 , - 858 , - 1309 , - 556 , - 1351 , - 942 , - 705 , - 640 , - 747 , - 1026 , - 101 , - 724 , - 143 , - 1110 , - 873 , - 808 , - 915 , - 1194 , - 269 , - 892 , - 311 , - 1278 , - 1041 , - 976 , - 1083 , - 1362 , - 437 , - 1060 , - 479 , - 70 , - 1209 , - 1144 , - 1251 , - 154 , - 605 , - 1228 , - 647 , - 238 , - 1 , - 1312 , - 43 , - 322 , - 773 , - 20 , - 815 , - 406 , - 169 , - 104 , - 211 , - 490 , - 941 , - 188 , - 983 , - 574 , - 337 , - 272 , - 379 , - 658 , - 1109 , - 356 , - 1151 , - 742 , - 505 , - 440 , - 547 , - 826 , - 1277 , - 524 , - 1319 , - 910 , - 673 , - 608 , - 715 , - 994 , - 69 , - 692 , - 111 , - 1078 , - 841 , - 776 , - 883 , - 1162 , - 237 , - 860 , - 279 , - 1246 , - 1009 , - 944 , - 1051 , - 1330 , - 405 , - 1028 , - 447 , - 38 , - 1177 , - 1112 , - 1219 , - 122 , - 573 , - 1196 , - 615 , - 206 , - 1345 , - 1280 , - 11 , - 290 , - 741 , - 1364 , - 783 , - 374 , - 137 , - 72 , - 179 , - 458 , - 909 , - 156 , - 951 , - 542 , - 305 , - 240 , - 347 , - 626 , - 1077 , - 324 , - 1119 , - 710 , - 473 , - 408 , - 515 , - 794 , - 1245 , - 492 , - 1287 , - 878 , - 641 , - 576 , - 683 , - 962 , - 37 , - 660 , - 79 , - 1046 , - 809 , - 744 , - 851 , - 1130 , - 205 , - 828 , - 247 , - 1214 , - 977 , - 912 , - 1019 , - 1298 , - 373 , - 996 , - 415 , - 6 , - 1145 , - 1080 , - 1187 , - 90 , - 541 , - 1164 , - 583 , - 174 , - 1313 , - 1248 , - 1355 , - 258 , - 709 , - 1332 , - 751 , - 342 , - 105 , - 40 , - 147 , - 426 , - 877 , - 124 , - 919 , - 510 , - 273 , - 208 , - 315 , - 594 , - 1045 , - 292 , - 1087 , - 678 , - 441 , - 376 , - 483 , - 762 , - 1213 , - 460 , - 1255 , - 846 , - 609 , - 544 , - 651 , - 930 , - 5 , - 628 , - 47 , - 1014 , - 777 , - 712 , - 819 , - 1098 , - 173 , - 796 , - 215 , - 1182 , - 945 , - 880 , - 987 , - 1266 , - 341 , - 964 , - 383 , - 1350 , - 1113 , - 1048 , - 1155 , - 58 , - 509 , - 1132 , - 551 , - 142 , - 1281 , - 1216 , - 1323 , - 226 , - 677 , - 1300 , - 719 , - 310 , - 73 , - 8 , - 115 , - 394 , - 845 , - 92 , - 887 , - 478 , - 241 , - 176 , - 283 , - 562 , - 1013 , - 260 , - 1055 , - 646 , - 409 , - 344 , - 451 , - 730 , - 1181 , - 428 , - 1223 , - 814 , - 577 , - 512 , - 619 , - 898 , - 1349 , - 596 , - 15 , - 982 , - 745 , - 680 , - 787 , - 1066 , - 141 , - 764 , - 183 , - 1150 , - 913 , - 848 , - 955 , - 1234 , - 309 , - 932 , - 351 , - 1318 , - 1081 , - 1016 , - 1123 , - 26 , - 477 , - 1100 , - 519 , - 110 , - 1249 , - 1184 , - 1291 , - 194 , - 645 , - 1268 , - 687 , - 278 , - 41 , - 1352 , - 83 , - 362 , - 813 , - 60 , - 855 , - 446 , - 209 , - 144 , - 251 , - 530 , - 981 , - 228 , - 1023 , - 614 , - 377 , - 312 , - 419 , - 698 , - 1149 , - 396 , - 1191 , - 782 , - 545 , - 480 , - 587 , - 866 , - 1317 , - 564 , - 1359 , - 950 , - 713 , - 648 , - 755 , - 1034 , - 109 , - 732 , - 151 , - 1118 , - 881 , - 816 , - 923 , - 1202 , - 277 , - 900 , - 319 , - 1286 , - 1049 , - 984 , - 1091 , - 1370 , - 445 , - 1068 , - 487 , - 78 , - 1217 , - 1152 , - 1259 , - 162 , - 613 , - 1236 , - 655 , - 246 , - 9 , - 1320 , - 51 , - 330 , - 781 , - 28 , - 823 , - 414 , - 177 , - 112 , - 219 , - 498 , - 949 , - 196 , - 991 , - 582 , - 345 , - 280 , - 387 , - 666 , - 1117 , - 364 , - 1159 , - 750 , - 513 , - 448 , - 555 , - 834 , - 1285 , - 532 , - 1327 , - 918 , - 681 , - 616 , - 723 , - 1002 , - 77 , - 700 , - 119 , - 1086 , - 849 , - 784 , - 891 , - 1170 , - 245 , - 868 , - 287 , - 1254 , - 1017 , - 952 , - 1059 , - 1338 , - 413 , - 1036 , - 455 , - 46 , - 1185 , - 1120 , - 1227 , - 130 , - 581 , - 1204 , - 623 , - 214 , - 1353 , - 1288 , - 19 , - 298 , - 749 , - 1372 , - 791 , - 382 , - 145 , - 80 , - 187 , - 466 , - 917 , - 164 , - 959 , - 550 , - 313 , - 248 , - 355 , - 634 , - 1085 , - 332 , - 1127 , - 718 , - 481 , - 416 , - 523 , - 802 , - 1253 , - 500 , - 1295 , - 886 , - 649 , - 584 , - 691 , - 970 , - 45 , - 668 , - 87 , - 1054 , - 817 , - 752 , - 859 , - 1138 , - 213 , - 836 , - 255 , - 1222 , - 985 , - 920 , - 1027 , - 1306 , - 381 , - 1004 , - 423 , - 14 , - 1153 , - 1088 , - 1195 , - 98 , - 549 , - 1172 , - 591 , - 182 , - 1321 , - 1256 , - 1363 , - 266 , - 717 , - 1340 , - 759 , - 350 , - 113 , - 48 , - 155 , - 434 , - 885 , - 132 , - 927 , - 518 , - 281 , - 216 , - 323 , - 602 , - 1053 , - 300 , - 1095 , - 686 , - 449 , - 384 , - 491 , - 770 , - 1221 , - 468 , - 1263 , - 854 , - 617 , - 552 , - 659 , - 938 , - 13 , - 636 , - 55 , - 1022 , - 785 , - 720 , - 827 , - 1106 , - 181 , - 804 , - 223 , - 1190 , - 953 , - 888 , - 995 , - 1274 , - 349 , - 972 , - 391 , - 1358 , - 1121 , - 1056 , - 1163 , - 66 , - 517 , - 1140 , - 559 , - 150 , - 1289 , - 1224 , - 1331 , - 234 , - 685 , - 1308 , - 727 , - 318 , - 81 , - 16 , - 123 , - 402 , - 853 , - 100 , - 895 , - 486 , - 249 , - 184 , - 291 , - 570 , - 1021 , - 268 , - 1063 , - 654 , - 417 , - 352 , - 459 , - 738 , - 1189 , - 436 , - 1231 , - 822 , - 585 , - 520 , - 627 , - 906 , - 1357 , - 604 , - 23 , - 990 , - 753 , - 688 , - 795 , - 1074 , - 149 , - 772 , - 191 , - 1158 , - 921 , - 856 , - 963 , - 1242 , - 317 , - 940 , - 359 , - 1326 , - 1089 , - 1024 , - 1131 , - 34 , - 485 , - 1108 , - 527 , - 118 , - 1257 , - 1192 , - 1299 , - 202 , - 653 , - 1276 , - 695 , - 286 , - 49 , - 1360 , - 91 , - 370 , - 821 , - 68 , - 863 , - 454 , - 217 , - 152 , - 259 , - 538 , - 989 , - 236 , - 1031 , - 622 , - 385 , - 320 , - 427 , - 706 , - 1157 , - 404 , - 1199 , - 790 , - 553 , - 488 , - 595 , - 874 , - 1325 , - 572 , - 1367 , - 958 , - 721 , - 656 , - 763 , - 1042 , - 117 , - 740 , - 159 , - 1126 , - 889 , - 824 , - 931 , - 1210 , - 285 , - 908 , - 327 , - 1294 , - 1057 , - 992 , - 1099 , - 2 , - 453 , - 1076 , - 495 , - 86 , - 1225 , - 1160 , - 1267 , - 170 , - 621 , - 1244 , - 663 , - 254 , - 17 , - 1328 , - 59 , - 338 , - 789 , - 36 , - 831 , - 422 , - 185 , - 120 , - 227 , - 506 , - 957 , - 204 , - 999 , - 590 , - 353 , - 288 , - 395 , - 674 , - 1125 , - 372 , - 1167 , - 758 , - 521 , - 456 , - 563 , - 842 , - 1293 , - 540 , - 1335 , - 926 , - 689 , - 624 , - 731 , - 1010 , - 85 , - 708 , - 127 , - 1094 , - 857 , - 792 , - 899 , - 1178 , - 253 , - 876 , - 295 , - 1262 , - 1025 , - 960 , - 1067 , - 1346 , - 421 , - 1044 , - 463 , - 54 , - 1193 , - 1128 , - 1235 , - 138 , - 589 , - 1212 , - 631 , - 222 , - 1361 , - 1296 , - 27 , - 306 , - 757 , - 4 , - 799 , - 390 , - 153 , - 88 , - 195 , - 474 , - 925 , - 172 , - 967 , - 558 , - 321 , - 256 , - 363 , - 642 , - 1093 , - 340 , - 1135 , - 726 , - 489 , - 424 , - 531 , - 810 , - 1261 , - 508 , - 1303 , - 894 , - 657 , - 592 , - 699 , - 978 , - 53 , - 676 , - 95 , - 1062 , - 825 , - 760 , - 867 , - 1146 , - 221 , - 844 , - 263 , - 1230 , - 993 , - 928 , - 1035 , - 1314 , - 389 , - 1012 , - 431 , - 22 , - 1161 , - 1096 , - 1203 , - 106 , - 557 , - 1180 , - 599 , - 190 , - 1329 , - 1264 , - 1371 , - 274 , - 725 , - 1348 , - 767 , - 358 , - 121 , - 56 , - 163 , - 442 , - 893 , - 140 , - 935 , - 526 , - 289 , - 224 , - 331 , - 610 , - 1061 , - 308 , - 1103 , - 694 , - 457 , - 392 , - 499 , - 778 , - 1229 , - 476 , - 1271 , - 862 , - 625 , - 560 , - 667 , - 946 , - 21 , - 644 , - 63 , - 1030 , - 793 , - 728 , - 835 , - 1114 , - 189 , - 812 , - 231 , - 1198 , - 961 , - 896 , - 1003 , - 1282 , - 357 , - 980 , - 399 , - 1366 , - 1129 , - 1064 , - 1171 , - 74 , - 525 , - 1148 , - 567 , - 158 , - 1297 , - 1232 , - 1339 , - 242 , - 693 , - 1316 , - 735 , - 326 , - 89 , - 24 , - 131 , - 410 , - 861 , - 108 , - 903 , - 494 , - 257 , - 192 , - 299 , - 578 , - 1029 , - 276 , - 1071 , - 662 , - 425 , - 360 , - 467 , - 746 , - 1197 , - 444 , - 1239 , - 830 , - 593 , - 528 , - 635 , - 914 , - 1365 , - 612 , - 31 , - 998 , - 761 , - 696 , - 803 , - 1082 , - 157 , - 780 , - 199 , - 1166 , - 929 , - 864 , - 971 , - 1250 , - 325 , - 948 , - 367 , - 1334 , - 1097 , - 1032 , - 1139 , - 42 , - 493 , - 1116 , - 535 , - 126 , - 1265 , - 1200 , - 1307 , - 210 , - 661 , - 1284 , - 703 , - 294 , - 57 , - 1368 , - 99 , - 378 , - 829 , - 76 , - 871 , - 462 , - 225 , - 160 , - 267 , - 546 , - 997 , - 244 , - 1039 , - 630 , - 393 , - 328 , - 435 , - 714 , - 1165 , - 412 , - 1207 , - 798 , - 561 , - 496 , - 603 , - 882 , - 1333 , - 580 , - 1375 , - 966 , - 729 , - 664 , - 771 , - 1050 , - 125 , - 748 , - 167 , - 1134 , - 897 , - 832 , - 939 , - 1218 , - 293 , - 916 , - 335 , - 1302 , - 1065 , - 1000 , - 1107 , - 10 , - 461 , - 1084 , - 503 , - 94 , - 1233 , - 1168 , - 1275 , - 178 , - 629 , - 1252 , - 671 , - 262 , - 25 , - 1336 , - 67 , - 346 , - 797 , - 44 , - 839 , - 430 , - 193 , - 128 , - 235 , - 514 , - 965 , - 212 , - 1007 , - 598 , - 361 , - 296 , - 403 , - 682 , - 1133 , - 380 , - 1175 , - 766 , - 529 , - 464 , - 571 , - 850 , - 1301 , - 548 , - 1343 , - 934 , - 697 , - 632 , - 739 , - 1018 , - 93 , - 716 , - 135 , - 1102 , - 865 , - 800 , - 907 , - 1186 , - 261 , - 884 , - 303 , - 1270 , - 1033 , - 968 , - 1075 , - 1354 , - 429 , - 1052 , - 471 , - 62 , - 1201 , - 1136 , - 1243 , - 146 , - 597 , - 1220 , - 639 , - 230 , - 1369 , - 1304 , - 35 , - 314 , - 765 , - 12 , - 807 , - 398 , - 161 , - 96 , - 203 , - 482 , - 933 , - 180 , - 975 , - 566 , - 329 , - 264 , - 371 , - 650 , - 1101 , - 348 , - 1143 , - 734 , - 497 , - 432 , - 539 , - 818 , - 1269 , - 516 , - 1311 , - 902 , - 665 , - 600 , - 707 , - 986 , - 61 , - 684 , - 103 , - 1070 , - 833 , - 768 , - 875 , - 1154 , - 229 , - 852 , - 271 , - 1238 , - 1001 , - 936 , - 1043 , - 1322 , - 397 , - 1020 , - 439 , - 30 , - 1169 , - 1104 , - 1211 , - 114 , - 565 , - 1188 , - 607 , - 198 , - 1337 , - 1272 , - 3 , - 282 , - 733 , - 1356 , - 775 , - 366 , - 129 , - 64 , - 171 , - 450 , - 901 , - 148 , - 943 , - 534 , - 297 , - 232 , - 339 , - 618 , - 1069 , - 316 , - 1111 , - 702 , - 465 , - 400 , - 507 , - 786 , - 1237 , - 484 , - 1279 , - 870 , - 633 , - 568 , - 675 , - 954 , - 29 , - 652 , - 71 , - 1038 , - 801 , - 736 , - 843 , - 1122 , - 197 , - 820 , - 239 , - 1206 , - 969 , - 904 , - 1011 , - 1290 , - 365 , - 988 , - 407 , - 1374 , - 1137 , - 1072 , - 1179 , - 82 , - 533 , - 1156 , - 575 , - 166 , - 1305 , - 1240 , - 1347 , - 250 , - 701 , - 1324 , - 743 , - 334 , - 97 , - 32 , - 139 , - 418 , - 869 , - 116 , - 911 , - 502 , - 265 , - 200 , - 307 , - 586 , - 1037 , - 284 , - 1079 , - 670 , - 433 , - 368 , - 475 , - 754 , - 1205 , - 452 , - 1247 , - 838 , - 601 , - 536 , - 643 , - 922 , - 1373 , - 620 , - 39 , - 1006 , - 769 , - 704 , - 811 , - 1090 , - 165 , - 788 , - 207 , - 1174 , - 937 , - 872 , - 979 , - 1258 , - 333 , - 956 , - 375 , - 1342 , - 1105 , - 1040 , - 1147 , - 50 , - 501 , - 1124 , - 543 , - 134 , - 1273 , - 1208 , - 1315 , - 218 , - 669 , - 1292 , - 711 , - 302 , - 65 , - 0 , - 131 , - 438 , - 921 , - 172 , - 1007 , - 610 , - 389 , - 344 , - 475 , - 782 , - 1265 , - 516 , - 1351 , - 954 , - 733 , - 688 , - 819 , - 1126 , - 201 , - 860 , - 287 , - 1298 , - 1077 , - 1032 , - 1163 , - 62 , - 545 , - 1204 , - 631 , - 234 , - 13 , - 1376 , - 99 , - 406 , - 889 , - 140 , - 975 , - 578 , - 357 , - 312 , - 443 , - 750 , - 1233 , - 484 , - 1319 , - 922 , - 701 , - 656 , - 787 , - 1094 , - 169 , - 828 , - 255 , - 1266 , - 1045 , - 1000 , - 1131 , - 30 , - 513 , - 1172 , - 599 , - 202 , - 1389 , - 1344 , - 67 , - 374 , - 857 , - 108 , - 943 , - 546 , - 325 , - 280 , - 411 , - 718 , - 1201 , - 452 , - 1287 , - 890 , - 669 , - 624 , - 755 , - 1062 , - 137 , - 796 , - 223 , - 1234 , - 1013 , - 968 , - 1099 , - 1406 , - 481 , - 1140 , - 567 , - 170 , - 1357 , - 1312 , - 35 , - 342 , - 825 , - 76 , - 911 , - 514 , - 293 , - 248 , - 379 , - 686 , - 1169 , - 420 , - 1255 , - 858 , - 637 , - 592 , - 723 , - 1030 , - 105 , - 764 , - 191 , - 1202 , - 981 , - 936 , - 1067 , - 1374 , - 449 , - 1108 , - 535 , - 138 , - 1325 , - 1280 , - 3 , - 310 , - 793 , - 44 , - 879 , - 482 , - 261 , - 216 , - 347 , - 654 , - 1137 , - 388 , - 1223 , - 826 , - 605 , - 560 , - 691 , - 998 , - 73 , - 732 , - 159 , - 1170 , - 949 , - 904 , - 1035 , - 1342 , - 417 , - 1076 , - 503 , - 106 , - 1293 , - 1248 , - 1379 , - 278 , - 761 , - 12 , - 847 , - 450 , - 229 , - 184 , - 315 , - 622 , - 1105 , - 356 , - 1191 , - 794 , - 573 , - 528 , - 659 , - 966 , - 41 , - 700 , - 127 , - 1138 , - 917 , - 872 , - 1003 , - 1310 , - 385 , - 1044 , - 471 , - 74 , - 1261 , - 1216 , - 1347 , - 246 , - 729 , - 1388 , - 815 , - 418 , - 197 , - 152 , - 283 , - 590 , - 1073 , - 324 , - 1159 , - 762 , - 541 , - 496 , - 627 , - 934 , - 9 , - 668 , - 95 , - 1106 , - 885 , - 840 , - 971 , - 1278 , - 353 , - 1012 , - 439 , - 42 , - 1229 , - 1184 , - 1315 , - 214 , - 697 , - 1356 , - 783 , - 386 , - 165 , - 120 , - 251 , - 558 , - 1041 , - 292 , - 1127 , - 730 , - 509 , - 464 , - 595 , - 902 , - 1385 , - 636 , - 63 , - 1074 , - 853 , - 808 , - 939 , - 1246 , - 321 , - 980 , - 407 , - 10 , - 1197 , - 1152 , - 1283 , - 182 , - 665 , - 1324 , - 751 , - 354 , - 133 , - 88 , - 219 , - 526 , - 1009 , - 260 , - 1095 , - 698 , - 477 , - 432 , - 563 , - 870 , - 1353 , - 604 , - 31 , - 1042 , - 821 , - 776 , - 907 , - 1214 , - 289 , - 948 , - 375 , - 1386 , - 1165 , - 1120 , - 1251 , - 150 , - 633 , - 1292 , - 719 , - 322 , - 101 , - 56 , - 187 , - 494 , - 977 , - 228 , - 1063 , - 666 , - 445 , - 400 , - 531 , - 838 , - 1321 , - 572 , - 1407 , - 1010 , - 789 , - 744 , - 875 , - 1182 , - 257 , - 916 , - 343 , - 1354 , - 1133 , - 1088 , - 1219 , - 118 , - 601 , - 1260 , - 687 , - 290 , - 69 , - 24 , - 155 , - 462 , - 945 , - 196 , - 1031 , - 634 , - 413 , - 368 , - 499 , - 806 , - 1289 , - 540 , - 1375 , - 978 , - 757 , - 712 , - 843 , - 1150 , - 225 , - 884 , - 311 , - 1322 , - 1101 , - 1056 , - 1187 , - 86 , - 569 , - 1228 , - 655 , - 258 , - 37 , - 1400 , - 123 , - 430 , - 913 , - 164 , - 999 , - 602 , - 381 , - 336 , - 467 , - 774 , - 1257 , - 508 , - 1343 , - 946 , - 725 , - 680 , - 811 , - 1118 , - 193 , - 852 , - 279 , - 1290 , - 1069 , - 1024 , - 1155 , - 54 , - 537 , - 1196 , - 623 , - 226 , - 5 , - 1368 , - 91 , - 398 , - 881 , - 132 , - 967 , - 570 , - 349 , - 304 , - 435 , - 742 , - 1225 , - 476 , - 1311 , - 914 , - 693 , - 648 , - 779 , - 1086 , - 161 , - 820 , - 247 , - 1258 , - 1037 , - 992 , - 1123 , - 22 , - 505 , - 1164 , - 591 , - 194 , - 1381 , - 1336 , - 59 , - 366 , - 849 , - 100 , - 935 , - 538 , - 317 , - 272 , - 403 , - 710 , - 1193 , - 444 , - 1279 , - 882 , - 661 , - 616 , - 747 , - 1054 , - 129 , - 788 , - 215 , - 1226 , - 1005 , - 960 , - 1091 , - 1398 , - 473 , - 1132 , - 559 , - 162 , - 1349 , - 1304 , - 27 , - 334 , - 817 , - 68 , - 903 , - 506 , - 285 , - 240 , - 371 , - 678 , - 1161 , - 412 , - 1247 , - 850 , - 629 , - 584 , - 715 , - 1022 , - 97 , - 756 , - 183 , - 1194 , - 973 , - 928 , - 1059 , - 1366 , - 441 , - 1100 , - 527 , - 130 , - 1317 , - 1272 , - 1403 , - 302 , - 785 , - 36 , - 871 , - 474 , - 253 , - 208 , - 339 , - 646 , - 1129 , - 380 , - 1215 , - 818 , - 597 , - 552 , - 683 , - 990 , - 65 , - 724 , - 151 , - 1162 , - 941 , - 896 , - 1027 , - 1334 , - 409 , - 1068 , - 495 , - 98 , - 1285 , - 1240 , - 1371 , - 270 , - 753 , - 4 , - 839 , - 442 , - 221 , - 176 , - 307 , - 614 , - 1097 , - 348 , - 1183 , - 786 , - 565 , - 520 , - 651 , - 958 , - 33 , - 692 , - 119 , - 1130 , - 909 , - 864 , - 995 , - 1302 , - 377 , - 1036 , - 463 , - 66 , - 1253 , - 1208 , - 1339 , - 238 , - 721 , - 1380 , - 807 , - 410 , - 189 , - 144 , - 275 , - 582 , - 1065 , - 316 , - 1151 , - 754 , - 533 , - 488 , - 619 , - 926 , - 1 , - 660 , - 87 , - 1098 , - 877 , - 832 , - 963 , - 1270 , - 345 , - 1004 , - 431 , - 34 , - 1221 , - 1176 , - 1307 , - 206 , - 689 , - 1348 , - 775 , - 378 , - 157 , - 112 , - 243 , - 550 , - 1033 , - 284 , - 1119 , - 722 , - 501 , - 456 , - 587 , - 894 , - 1377 , - 628 , - 55 , - 1066 , - 845 , - 800 , - 931 , - 1238 , - 313 , - 972 , - 399 , - 2 , - 1189 , - 1144 , - 1275 , - 174 , - 657 , - 1316 , - 743 , - 346 , - 125 , - 80 , - 211 , - 518 , - 1001 , - 252 , - 1087 , - 690 , - 469 , - 424 , - 555 , - 862 , - 1345 , - 596 , - 23 , - 1034 , - 813 , - 768 , - 899 , - 1206 , - 281 , - 940 , - 367 , - 1378 , - 1157 , - 1112 , - 1243 , - 142 , - 625 , - 1284 , - 711 , - 314 , - 93 , - 48 , - 179 , - 486 , - 969 , - 220 , - 1055 , - 658 , - 437 , - 392 , - 523 , - 830 , - 1313 , - 564 , - 1399 , - 1002 , - 781 , - 736 , - 867 , - 1174 , - 249 , - 908 , - 335 , - 1346 , - 1125 , - 1080 , - 1211 , - 110 , - 593 , - 1252 , - 679 , - 282 , - 61 , - 16 , - 147 , - 454 , - 937 , - 188 , - 1023 , - 626 , - 405 , - 360 , - 491 , - 798 , - 1281 , - 532 , - 1367 , - 970 , - 749 , - 704 , - 835 , - 1142 , - 217 , - 876 , - 303 , - 1314 , - 1093 , - 1048 , - 1179 , - 78 , - 561 , - 1220 , - 647 , - 250 , - 29 , - 1392 , - 115 , - 422 , - 905 , - 156 , - 991 , - 594 , - 373 , - 328 , - 459 , - 766 , - 1249 , - 500 , - 1335 , - 938 , - 717 , - 672 , - 803 , - 1110 , - 185 , - 844 , - 271 , - 1282 , - 1061 , - 1016 , - 1147 , - 46 , - 529 , - 1188 , - 615 , - 218 , - 1405 , - 1360 , - 83 , - 390 , - 873 , - 124 , - 959 , - 562 , - 341 , - 296 , - 427 , - 734 , - 1217 , - 468 , - 1303 , - 906 , - 685 , - 640 , - 771 , - 1078 , - 153 , - 812 , - 239 , - 1250 , - 1029 , - 984 , - 1115 , - 14 , - 497 , - 1156 , - 583 , - 186 , - 1373 , - 1328 , - 51 , - 358 , - 841 , - 92 , - 927 , - 530 , - 309 , - 264 , - 395 , - 702 , - 1185 , - 436 , - 1271 , - 874 , - 653 , - 608 , - 739 , - 1046 , - 121 , - 780 , - 207 , - 1218 , - 997 , - 952 , - 1083 , - 1390 , - 465 , - 1124 , - 551 , - 154 , - 1341 , - 1296 , - 19 , - 326 , - 809 , - 60 , - 895 , - 498 , - 277 , - 232 , - 363 , - 670 , - 1153 , - 404 , - 1239 , - 842 , - 621 , - 576 , - 707 , - 1014 , - 89 , - 748 , - 175 , - 1186 , - 965 , - 920 , - 1051 , - 1358 , - 433 , - 1092 , - 519 , - 122 , - 1309 , - 1264 , - 1395 , - 294 , - 777 , - 28 , - 863 , - 466 , - 245 , - 200 , - 331 , - 638 , - 1121 , - 372 , - 1207 , - 810 , - 589 , - 544 , - 675 , - 982 , - 57 , - 716 , - 143 , - 1154 , - 933 , - 888 , - 1019 , - 1326 , - 401 , - 1060 , - 487 , - 90 , - 1277 , - 1232 , - 1363 , - 262 , - 745 , - 1404 , - 831 , - 434 , - 213 , - 168 , - 299 , - 606 , - 1089 , - 340 , - 1175 , - 778 , - 557 , - 512 , - 643 , - 950 , - 25 , - 684 , - 111 , - 1122 , - 901 , - 856 , - 987 , - 1294 , - 369 , - 1028 , - 455 , - 58 , - 1245 , - 1200 , - 1331 , - 230 , - 713 , - 1372 , - 799 , - 402 , - 181 , - 136 , - 267 , - 574 , - 1057 , - 308 , - 1143 , - 746 , - 525 , - 480 , - 611 , - 918 , - 1401 , - 652 , - 79 , - 1090 , - 869 , - 824 , - 955 , - 1262 , - 337 , - 996 , - 423 , - 26 , - 1213 , - 1168 , - 1299 , - 198 , - 681 , - 1340 , - 767 , - 370 , - 149 , - 104 , - 235 , - 542 , - 1025 , - 276 , - 1111 , - 714 , - 493 , - 448 , - 579 , - 886 , - 1369 , - 620 , - 47 , - 1058 , - 837 , - 792 , - 923 , - 1230 , - 305 , - 964 , - 391 , - 1402 , - 1181 , - 1136 , - 1267 , - 166 , - 649 , - 1308 , - 735 , - 338 , - 117 , - 72 , - 203 , - 510 , - 993 , - 244 , - 1079 , - 682 , - 461 , - 416 , - 547 , - 854 , - 1337 , - 588 , - 15 , - 1026 , - 805 , - 760 , - 891 , - 1198 , - 273 , - 932 , - 359 , - 1370 , - 1149 , - 1104 , - 1235 , - 134 , - 617 , - 1276 , - 703 , - 306 , - 85 , - 40 , - 171 , - 478 , - 961 , - 212 , - 1047 , - 650 , - 429 , - 384 , - 515 , - 822 , - 1305 , - 556 , - 1391 , - 994 , - 773 , - 728 , - 859 , - 1166 , - 241 , - 900 , - 327 , - 1338 , - 1117 , - 1072 , - 1203 , - 102 , - 585 , - 1244 , - 671 , - 274 , - 53 , - 8 , - 139 , - 446 , - 929 , - 180 , - 1015 , - 618 , - 397 , - 352 , - 483 , - 790 , - 1273 , - 524 , - 1359 , - 962 , - 741 , - 696 , - 827 , - 1134 , - 209 , - 868 , - 295 , - 1306 , - 1085 , - 1040 , - 1171 , - 70 , - 553 , - 1212 , - 639 , - 242 , - 21 , - 1384 , - 107 , - 414 , - 897 , - 148 , - 983 , - 586 , - 365 , - 320 , - 451 , - 758 , - 1241 , - 492 , - 1327 , - 930 , - 709 , - 664 , - 795 , - 1102 , - 177 , - 836 , - 263 , - 1274 , - 1053 , - 1008 , - 1139 , - 38 , - 521 , - 1180 , - 607 , - 210 , - 1397 , - 1352 , - 75 , - 382 , - 865 , - 116 , - 951 , - 554 , - 333 , - 288 , - 419 , - 726 , - 1209 , - 460 , - 1295 , - 898 , - 677 , - 632 , - 763 , - 1070 , - 145 , - 804 , - 231 , - 1242 , - 1021 , - 976 , - 1107 , - 6 , - 489 , - 1148 , - 575 , - 178 , - 1365 , - 1320 , - 43 , - 350 , - 833 , - 84 , - 919 , - 522 , - 301 , - 256 , - 387 , - 694 , - 1177 , - 428 , - 1263 , - 866 , - 645 , - 600 , - 731 , - 1038 , - 113 , - 772 , - 199 , - 1210 , - 989 , - 944 , - 1075 , - 1382 , - 457 , - 1116 , - 543 , - 146 , - 1333 , - 1288 , - 11 , - 318 , - 801 , - 52 , - 887 , - 490 , - 269 , - 224 , - 355 , - 662 , - 1145 , - 396 , - 1231 , - 834 , - 613 , - 568 , - 699 , - 1006 , - 81 , - 740 , - 167 , - 1178 , - 957 , - 912 , - 1043 , - 1350 , - 425 , - 1084 , - 511 , - 114 , - 1301 , - 1256 , - 1387 , - 286 , - 769 , - 20 , - 855 , - 458 , - 237 , - 192 , - 323 , - 630 , - 1113 , - 364 , - 1199 , - 802 , - 581 , - 536 , - 667 , - 974 , - 49 , - 708 , - 135 , - 1146 , - 925 , - 880 , - 1011 , - 1318 , - 393 , - 1052 , - 479 , - 82 , - 1269 , - 1224 , - 1355 , - 254 , - 737 , - 1396 , - 823 , - 426 , - 205 , - 160 , - 291 , - 598 , - 1081 , - 332 , - 1167 , - 770 , - 549 , - 504 , - 635 , - 942 , - 17 , - 676 , - 103 , - 1114 , - 893 , - 848 , - 979 , - 1286 , - 361 , - 1020 , - 447 , - 50 , - 1237 , - 1192 , - 1323 , - 222 , - 705 , - 1364 , - 791 , - 394 , - 173 , - 128 , - 259 , - 566 , - 1049 , - 300 , - 1135 , - 738 , - 517 , - 472 , - 603 , - 910 , - 1393 , - 644 , - 71 , - 1082 , - 861 , - 816 , - 947 , - 1254 , - 329 , - 988 , - 415 , - 18 , - 1205 , - 1160 , - 1291 , - 190 , - 673 , - 1332 , - 759 , - 362 , - 141 , - 96 , - 227 , - 534 , - 1017 , - 268 , - 1103 , - 706 , - 485 , - 440 , - 571 , - 878 , - 1361 , - 612 , - 39 , - 1050 , - 829 , - 784 , - 915 , - 1222 , - 297 , - 956 , - 383 , - 1394 , - 1173 , - 1128 , - 1259 , - 158 , - 641 , - 1300 , - 727 , - 330 , - 109 , - 64 , - 195 , - 502 , - 985 , - 236 , - 1071 , - 674 , - 453 , - 408 , - 539 , - 846 , - 1329 , - 580 , - 7 , - 1018 , - 797 , - 752 , - 883 , - 1190 , - 265 , - 924 , - 351 , - 1362 , - 1141 , - 1096 , - 1227 , - 126 , - 609 , - 1268 , - 695 , - 298 , - 77 , - 32 , - 163 , - 470 , - 953 , - 204 , - 1039 , - 642 , - 421 , - 376 , - 507 , - 814 , - 1297 , - 548 , - 1383 , - 986 , - 765 , - 720 , - 851 , - 1158 , - 233 , - 892 , - 319 , - 1330 , - 1109 , - 1064 , - 1195 , - 94 , - 577 , - 1236 , - 663 , - 266 , - 45 , - 0 , - 209 , - 538 , - 987 , - 116 , - 805 , - 174 , - 1103 , - 712 , - 441 , - 290 , - 259 , - 348 , - 557 , - 886 , - 1335 , - 464 , - 1153 , - 522 , - 11 , - 1060 , - 789 , - 638 , - 607 , - 696 , - 905 , - 1234 , - 243 , - 812 , - 61 , - 870 , - 359 , - 1408 , - 1137 , - 986 , - 955 , - 1044 , - 1253 , - 142 , - 591 , - 1160 , - 409 , - 1218 , - 707 , - 316 , - 45 , - 1334 , - 1303 , - 1392 , - 161 , - 490 , - 939 , - 68 , - 757 , - 126 , - 1055 , - 664 , - 393 , - 242 , - 211 , - 300 , - 509 , - 838 , - 1287 , - 416 , - 1105 , - 474 , - 1403 , - 1012 , - 741 , - 590 , - 559 , - 648 , - 857 , - 1186 , - 195 , - 764 , - 13 , - 822 , - 311 , - 1360 , - 1089 , - 938 , - 907 , - 996 , - 1205 , - 94 , - 543 , - 1112 , - 361 , - 1170 , - 659 , - 268 , - 1437 , - 1286 , - 1255 , - 1344 , - 113 , - 442 , - 891 , - 20 , - 709 , - 78 , - 1007 , - 616 , - 345 , - 194 , - 163 , - 252 , - 461 , - 790 , - 1239 , - 368 , - 1057 , - 426 , - 1355 , - 964 , - 693 , - 542 , - 511 , - 600 , - 809 , - 1138 , - 147 , - 716 , - 1405 , - 774 , - 263 , - 1312 , - 1041 , - 890 , - 859 , - 948 , - 1157 , - 46 , - 495 , - 1064 , - 313 , - 1122 , - 611 , - 220 , - 1389 , - 1238 , - 1207 , - 1296 , - 65 , - 394 , - 843 , - 1412 , - 661 , - 30 , - 959 , - 568 , - 297 , - 146 , - 115 , - 204 , - 413 , - 742 , - 1191 , - 320 , - 1009 , - 378 , - 1307 , - 916 , - 645 , - 494 , - 463 , - 552 , - 761 , - 1090 , - 99 , - 668 , - 1357 , - 726 , - 215 , - 1264 , - 993 , - 842 , - 811 , - 900 , - 1109 , - 1438 , - 447 , - 1016 , - 265 , - 1074 , - 563 , - 172 , - 1341 , - 1190 , - 1159 , - 1248 , - 17 , - 346 , - 795 , - 1364 , - 613 , - 1422 , - 911 , - 520 , - 249 , - 98 , - 67 , - 156 , - 365 , - 694 , - 1143 , - 272 , - 961 , - 330 , - 1259 , - 868 , - 597 , - 446 , - 415 , - 504 , - 713 , - 1042 , - 51 , - 620 , - 1309 , - 678 , - 167 , - 1216 , - 945 , - 794 , - 763 , - 852 , - 1061 , - 1390 , - 399 , - 968 , - 217 , - 1026 , - 515 , - 124 , - 1293 , - 1142 , - 1111 , - 1200 , - 1409 , - 298 , - 747 , - 1316 , - 565 , - 1374 , - 863 , - 472 , - 201 , - 50 , - 19 , - 108 , - 317 , - 646 , - 1095 , - 224 , - 913 , - 282 , - 1211 , - 820 , - 549 , - 398 , - 367 , - 456 , - 665 , - 994 , - 3 , - 572 , - 1261 , - 630 , - 119 , - 1168 , - 897 , - 746 , - 715 , - 804 , - 1013 , - 1342 , - 351 , - 920 , - 169 , - 978 , - 467 , - 76 , - 1245 , - 1094 , - 1063 , - 1152 , - 1361 , - 250 , - 699 , - 1268 , - 517 , - 1326 , - 815 , - 424 , - 153 , - 2 , - 1411 , - 60 , - 269 , - 598 , - 1047 , - 176 , - 865 , - 234 , - 1163 , - 772 , - 501 , - 350 , - 319 , - 408 , - 617 , - 946 , - 1395 , - 524 , - 1213 , - 582 , - 71 , - 1120 , - 849 , - 698 , - 667 , - 756 , - 965 , - 1294 , - 303 , - 872 , - 121 , - 930 , - 419 , - 28 , - 1197 , - 1046 , - 1015 , - 1104 , - 1313 , - 202 , - 651 , - 1220 , - 469 , - 1278 , - 767 , - 376 , - 105 , - 1394 , - 1363 , - 12 , - 221 , - 550 , - 999 , - 128 , - 817 , - 186 , - 1115 , - 724 , - 453 , - 302 , - 271 , - 360 , - 569 , - 898 , - 1347 , - 476 , - 1165 , - 534 , - 23 , - 1072 , - 801 , - 650 , - 619 , - 708 , - 917 , - 1246 , - 255 , - 824 , - 73 , - 882 , - 371 , - 1420 , - 1149 , - 998 , - 967 , - 1056 , - 1265 , - 154 , - 603 , - 1172 , - 421 , - 1230 , - 719 , - 328 , - 57 , - 1346 , - 1315 , - 1404 , - 173 , - 502 , - 951 , - 80 , - 769 , - 138 , - 1067 , - 676 , - 405 , - 254 , - 223 , - 312 , - 521 , - 850 , - 1299 , - 428 , - 1117 , - 486 , - 1415 , - 1024 , - 753 , - 602 , - 571 , - 660 , - 869 , - 1198 , - 207 , - 776 , - 25 , - 834 , - 323 , - 1372 , - 1101 , - 950 , - 919 , - 1008 , - 1217 , - 106 , - 555 , - 1124 , - 373 , - 1182 , - 671 , - 280 , - 9 , - 1298 , - 1267 , - 1356 , - 125 , - 454 , - 903 , - 32 , - 721 , - 90 , - 1019 , - 628 , - 357 , - 206 , - 175 , - 264 , - 473 , - 802 , - 1251 , - 380 , - 1069 , - 438 , - 1367 , - 976 , - 705 , - 554 , - 523 , - 612 , - 821 , - 1150 , - 159 , - 728 , - 1417 , - 786 , - 275 , - 1324 , - 1053 , - 902 , - 871 , - 960 , - 1169 , - 58 , - 507 , - 1076 , - 325 , - 1134 , - 623 , - 232 , - 1401 , - 1250 , - 1219 , - 1308 , - 77 , - 406 , - 855 , - 1424 , - 673 , - 42 , - 971 , - 580 , - 309 , - 158 , - 127 , - 216 , - 425 , - 754 , - 1203 , - 332 , - 1021 , - 390 , - 1319 , - 928 , - 657 , - 506 , - 475 , - 564 , - 773 , - 1102 , - 111 , - 680 , - 1369 , - 738 , - 227 , - 1276 , - 1005 , - 854 , - 823 , - 912 , - 1121 , - 10 , - 459 , - 1028 , - 277 , - 1086 , - 575 , - 184 , - 1353 , - 1202 , - 1171 , - 1260 , - 29 , - 358 , - 807 , - 1376 , - 625 , - 1434 , - 923 , - 532 , - 261 , - 110 , - 79 , - 168 , - 377 , - 706 , - 1155 , - 284 , - 973 , - 342 , - 1271 , - 880 , - 609 , - 458 , - 427 , - 516 , - 725 , - 1054 , - 63 , - 632 , - 1321 , - 690 , - 179 , - 1228 , - 957 , - 806 , - 775 , - 864 , - 1073 , - 1402 , - 411 , - 980 , - 229 , - 1038 , - 527 , - 136 , - 1305 , - 1154 , - 1123 , - 1212 , - 1421 , - 310 , - 759 , - 1328 , - 577 , - 1386 , - 875 , - 484 , - 213 , - 62 , - 31 , - 120 , - 329 , - 658 , - 1107 , - 236 , - 925 , - 294 , - 1223 , - 832 , - 561 , - 410 , - 379 , - 468 , - 677 , - 1006 , - 15 , - 584 , - 1273 , - 642 , - 131 , - 1180 , - 909 , - 758 , - 727 , - 816 , - 1025 , - 1354 , - 363 , - 932 , - 181 , - 990 , - 479 , - 88 , - 1257 , - 1106 , - 1075 , - 1164 , - 1373 , - 262 , - 711 , - 1280 , - 529 , - 1338 , - 827 , - 436 , - 165 , - 14 , - 1423 , - 72 , - 281 , - 610 , - 1059 , - 188 , - 877 , - 246 , - 1175 , - 784 , - 513 , - 362 , - 331 , - 420 , - 629 , - 958 , - 1407 , - 536 , - 1225 , - 594 , - 83 , - 1132 , - 861 , - 710 , - 679 , - 768 , - 977 , - 1306 , - 315 , - 884 , - 133 , - 942 , - 431 , - 40 , - 1209 , - 1058 , - 1027 , - 1116 , - 1325 , - 214 , - 663 , - 1232 , - 481 , - 1290 , - 779 , - 388 , - 117 , - 1406 , - 1375 , - 24 , - 233 , - 562 , - 1011 , - 140 , - 829 , - 198 , - 1127 , - 736 , - 465 , - 314 , - 283 , - 372 , - 581 , - 910 , - 1359 , - 488 , - 1177 , - 546 , - 35 , - 1084 , - 813 , - 662 , - 631 , - 720 , - 929 , - 1258 , - 267 , - 836 , - 85 , - 894 , - 383 , - 1432 , - 1161 , - 1010 , - 979 , - 1068 , - 1277 , - 166 , - 615 , - 1184 , - 433 , - 1242 , - 731 , - 340 , - 69 , - 1358 , - 1327 , - 1416 , - 185 , - 514 , - 963 , - 92 , - 781 , - 150 , - 1079 , - 688 , - 417 , - 266 , - 235 , - 324 , - 533 , - 862 , - 1311 , - 440 , - 1129 , - 498 , - 1427 , - 1036 , - 765 , - 614 , - 583 , - 672 , - 881 , - 1210 , - 219 , - 788 , - 37 , - 846 , - 335 , - 1384 , - 1113 , - 962 , - 931 , - 1020 , - 1229 , - 118 , - 567 , - 1136 , - 385 , - 1194 , - 683 , - 292 , - 21 , - 1310 , - 1279 , - 1368 , - 137 , - 466 , - 915 , - 44 , - 733 , - 102 , - 1031 , - 640 , - 369 , - 218 , - 187 , - 276 , - 485 , - 814 , - 1263 , - 392 , - 1081 , - 450 , - 1379 , - 988 , - 717 , - 566 , - 535 , - 624 , - 833 , - 1162 , - 171 , - 740 , - 1429 , - 798 , - 287 , - 1336 , - 1065 , - 914 , - 883 , - 972 , - 1181 , - 70 , - 519 , - 1088 , - 337 , - 1146 , - 635 , - 244 , - 1413 , - 1262 , - 1231 , - 1320 , - 89 , - 418 , - 867 , - 1436 , - 685 , - 54 , - 983 , - 592 , - 321 , - 170 , - 139 , - 228 , - 437 , - 766 , - 1215 , - 344 , - 1033 , - 402 , - 1331 , - 940 , - 669 , - 518 , - 487 , - 576 , - 785 , - 1114 , - 123 , - 692 , - 1381 , - 750 , - 239 , - 1288 , - 1017 , - 866 , - 835 , - 924 , - 1133 , - 22 , - 471 , - 1040 , - 289 , - 1098 , - 587 , - 196 , - 1365 , - 1214 , - 1183 , - 1272 , - 41 , - 370 , - 819 , - 1388 , - 637 , - 6 , - 935 , - 544 , - 273 , - 122 , - 91 , - 180 , - 389 , - 718 , - 1167 , - 296 , - 985 , - 354 , - 1283 , - 892 , - 621 , - 470 , - 439 , - 528 , - 737 , - 1066 , - 75 , - 644 , - 1333 , - 702 , - 191 , - 1240 , - 969 , - 818 , - 787 , - 876 , - 1085 , - 1414 , - 423 , - 992 , - 241 , - 1050 , - 539 , - 148 , - 1317 , - 1166 , - 1135 , - 1224 , - 1433 , - 322 , - 771 , - 1340 , - 589 , - 1398 , - 887 , - 496 , - 225 , - 74 , - 43 , - 132 , - 341 , - 670 , - 1119 , - 248 , - 937 , - 306 , - 1235 , - 844 , - 573 , - 422 , - 391 , - 480 , - 689 , - 1018 , - 27 , - 596 , - 1285 , - 654 , - 143 , - 1192 , - 921 , - 770 , - 739 , - 828 , - 1037 , - 1366 , - 375 , - 944 , - 193 , - 1002 , - 491 , - 100 , - 1269 , - 1118 , - 1087 , - 1176 , - 1385 , - 274 , - 723 , - 1292 , - 541 , - 1350 , - 839 , - 448 , - 177 , - 26 , - 1435 , - 84 , - 293 , - 622 , - 1071 , - 200 , - 889 , - 258 , - 1187 , - 796 , - 525 , - 374 , - 343 , - 432 , - 641 , - 970 , - 1419 , - 548 , - 1237 , - 606 , - 95 , - 1144 , - 873 , - 722 , - 691 , - 780 , - 989 , - 1318 , - 327 , - 896 , - 145 , - 954 , - 443 , - 52 , - 1221 , - 1070 , - 1039 , - 1128 , - 1337 , - 226 , - 675 , - 1244 , - 493 , - 1302 , - 791 , - 400 , - 129 , - 1418 , - 1387 , - 36 , - 245 , - 574 , - 1023 , - 152 , - 841 , - 210 , - 1139 , - 748 , - 477 , - 326 , - 295 , - 384 , - 593 , - 922 , - 1371 , - 500 , - 1189 , - 558 , - 47 , - 1096 , - 825 , - 674 , - 643 , - 732 , - 941 , - 1270 , - 279 , - 848 , - 97 , - 906 , - 395 , - 4 , - 1173 , - 1022 , - 991 , - 1080 , - 1289 , - 178 , - 627 , - 1196 , - 445 , - 1254 , - 743 , - 352 , - 81 , - 1370 , - 1339 , - 1428 , - 197 , - 526 , - 975 , - 104 , - 793 , - 162 , - 1091 , - 700 , - 429 , - 278 , - 247 , - 336 , - 545 , - 874 , - 1323 , - 452 , - 1141 , - 510 , - 1439 , - 1048 , - 777 , - 626 , - 595 , - 684 , - 893 , - 1222 , - 231 , - 800 , - 49 , - 858 , - 347 , - 1396 , - 1125 , - 974 , - 943 , - 1032 , - 1241 , - 130 , - 579 , - 1148 , - 397 , - 1206 , - 695 , - 304 , - 33 , - 1322 , - 1291 , - 1380 , - 149 , - 478 , - 927 , - 56 , - 745 , - 114 , - 1043 , - 652 , - 381 , - 230 , - 199 , - 288 , - 497 , - 826 , - 1275 , - 404 , - 1093 , - 462 , - 1391 , - 1000 , - 729 , - 578 , - 547 , - 636 , - 845 , - 1174 , - 183 , - 752 , - 1 , - 810 , - 299 , - 1348 , - 1077 , - 926 , - 895 , - 984 , - 1193 , - 82 , - 531 , - 1100 , - 349 , - 1158 , - 647 , - 256 , - 1425 , - 1274 , - 1243 , - 1332 , - 101 , - 430 , - 879 , - 8 , - 697 , - 66 , - 995 , - 604 , - 333 , - 182 , - 151 , - 240 , - 449 , - 778 , - 1227 , - 356 , - 1045 , - 414 , - 1343 , - 952 , - 681 , - 530 , - 499 , - 588 , - 797 , - 1126 , - 135 , - 704 , - 1393 , - 762 , - 251 , - 1300 , - 1029 , - 878 , - 847 , - 936 , - 1145 , - 34 , - 483 , - 1052 , - 301 , - 1110 , - 599 , - 208 , - 1377 , - 1226 , - 1195 , - 1284 , - 53 , - 382 , - 831 , - 1400 , - 649 , - 18 , - 947 , - 556 , - 285 , - 134 , - 103 , - 192 , - 401 , - 730 , - 1179 , - 308 , - 997 , - 366 , - 1295 , - 904 , - 633 , - 482 , - 451 , - 540 , - 749 , - 1078 , - 87 , - 656 , - 1345 , - 714 , - 203 , - 1252 , - 981 , - 830 , - 799 , - 888 , - 1097 , - 1426 , - 435 , - 1004 , - 253 , - 1062 , - 551 , - 160 , - 1329 , - 1178 , - 1147 , - 1236 , - 5 , - 334 , - 783 , - 1352 , - 601 , - 1410 , - 899 , - 508 , - 237 , - 86 , - 55 , - 144 , - 353 , - 682 , - 1131 , - 260 , - 949 , - 318 , - 1247 , - 856 , - 585 , - 434 , - 403 , - 492 , - 701 , - 1030 , - 39 , - 608 , - 1297 , - 666 , - 155 , - 1204 , - 933 , - 782 , - 751 , - 840 , - 1049 , - 1378 , - 387 , - 956 , - 205 , - 1014 , - 503 , - 112 , - 1281 , - 1130 , - 1099 , - 1188 , - 1397 , - 286 , - 735 , - 1304 , - 553 , - 1362 , - 851 , - 460 , - 189 , - 38 , - 7 , - 96 , - 305 , - 634 , - 1083 , - 212 , - 901 , - 270 , - 1199 , - 808 , - 537 , - 386 , - 355 , - 444 , - 653 , - 982 , - 1431 , - 560 , - 1249 , - 618 , - 107 , - 1156 , - 885 , - 734 , - 703 , - 792 , - 1001 , - 1330 , - 339 , - 908 , - 157 , - 966 , - 455 , - 64 , - 1233 , - 1082 , - 1051 , - 1140 , - 1349 , - 238 , - 687 , - 1256 , - 505 , - 1314 , - 803 , - 412 , - 141 , - 1430 , - 1399 , - 48 , - 257 , - 586 , - 1035 , - 164 , - 853 , - 222 , - 1151 , - 760 , - 489 , - 338 , - 307 , - 396 , - 605 , - 934 , - 1383 , - 512 , - 1201 , - 570 , - 59 , - 1108 , - 837 , - 686 , - 655 , - 744 , - 953 , - 1282 , - 291 , - 860 , - 109 , - 918 , - 407 , - 16 , - 1185 , - 1034 , - 1003 , - 1092 , - 1301 , - 190 , - 639 , - 1208 , - 457 , - 1266 , - 755 , - 364 , - 93 , - 1382 , - 1351 , - 0 , - 137 , - 458 , - 963 , - 180 , - 1053 , - 638 , - 407 , - 360 , - 497 , - 818 , - 1323 , - 540 , - 1413 , - 998 , - 767 , - 720 , - 857 , - 1178 , - 211 , - 900 , - 301 , - 1358 , - 1127 , - 1080 , - 1217 , - 66 , - 571 , - 1260 , - 661 , - 246 , - 15 , - 1440 , - 105 , - 426 , - 931 , - 148 , - 1021 , - 606 , - 375 , - 328 , - 465 , - 786 , - 1291 , - 508 , - 1381 , - 966 , - 735 , - 688 , - 825 , - 1146 , - 179 , - 868 , - 269 , - 1326 , - 1095 , - 1048 , - 1185 , - 34 , - 539 , - 1228 , - 629 , - 214 , - 1455 , - 1408 , - 73 , - 394 , - 899 , - 116 , - 989 , - 574 , - 343 , - 296 , - 433 , - 754 , - 1259 , - 476 , - 1349 , - 934 , - 703 , - 656 , - 793 , - 1114 , - 147 , - 836 , - 237 , - 1294 , - 1063 , - 1016 , - 1153 , - 2 , - 507 , - 1196 , - 597 , - 182 , - 1423 , - 1376 , - 41 , - 362 , - 867 , - 84 , - 957 , - 542 , - 311 , - 264 , - 401 , - 722 , - 1227 , - 444 , - 1317 , - 902 , - 671 , - 624 , - 761 , - 1082 , - 115 , - 804 , - 205 , - 1262 , - 1031 , - 984 , - 1121 , - 1442 , - 475 , - 1164 , - 565 , - 150 , - 1391 , - 1344 , - 9 , - 330 , - 835 , - 52 , - 925 , - 510 , - 279 , - 232 , - 369 , - 690 , - 1195 , - 412 , - 1285 , - 870 , - 639 , - 592 , - 729 , - 1050 , - 83 , - 772 , - 173 , - 1230 , - 999 , - 952 , - 1089 , - 1410 , - 443 , - 1132 , - 533 , - 118 , - 1359 , - 1312 , - 1449 , - 298 , - 803 , - 20 , - 893 , - 478 , - 247 , - 200 , - 337 , - 658 , - 1163 , - 380 , - 1253 , - 838 , - 607 , - 560 , - 697 , - 1018 , - 51 , - 740 , - 141 , - 1198 , - 967 , - 920 , - 1057 , - 1378 , - 411 , - 1100 , - 501 , - 86 , - 1327 , - 1280 , - 1417 , - 266 , - 771 , - 1460 , - 861 , - 446 , - 215 , - 168 , - 305 , - 626 , - 1131 , - 348 , - 1221 , - 806 , - 575 , - 528 , - 665 , - 986 , - 19 , - 708 , - 109 , - 1166 , - 935 , - 888 , - 1025 , - 1346 , - 379 , - 1068 , - 469 , - 54 , - 1295 , - 1248 , - 1385 , - 234 , - 739 , - 1428 , - 829 , - 414 , - 183 , - 136 , - 273 , - 594 , - 1099 , - 316 , - 1189 , - 774 , - 543 , - 496 , - 633 , - 954 , - 1459 , - 676 , - 77 , - 1134 , - 903 , - 856 , - 993 , - 1314 , - 347 , - 1036 , - 437 , - 22 , - 1263 , - 1216 , - 1353 , - 202 , - 707 , - 1396 , - 797 , - 382 , - 151 , - 104 , - 241 , - 562 , - 1067 , - 284 , - 1157 , - 742 , - 511 , - 464 , - 601 , - 922 , - 1427 , - 644 , - 45 , - 1102 , - 871 , - 824 , - 961 , - 1282 , - 315 , - 1004 , - 405 , - 1462 , - 1231 , - 1184 , - 1321 , - 170 , - 675 , - 1364 , - 765 , - 350 , - 119 , - 72 , - 209 , - 530 , - 1035 , - 252 , - 1125 , - 710 , - 479 , - 432 , - 569 , - 890 , - 1395 , - 612 , - 13 , - 1070 , - 839 , - 792 , - 929 , - 1250 , - 283 , - 972 , - 373 , - 1430 , - 1199 , - 1152 , - 1289 , - 138 , - 643 , - 1332 , - 733 , - 318 , - 87 , - 40 , - 177 , - 498 , - 1003 , - 220 , - 1093 , - 678 , - 447 , - 400 , - 537 , - 858 , - 1363 , - 580 , - 1453 , - 1038 , - 807 , - 760 , - 897 , - 1218 , - 251 , - 940 , - 341 , - 1398 , - 1167 , - 1120 , - 1257 , - 106 , - 611 , - 1300 , - 701 , - 286 , - 55 , - 8 , - 145 , - 466 , - 971 , - 188 , - 1061 , - 646 , - 415 , - 368 , - 505 , - 826 , - 1331 , - 548 , - 1421 , - 1006 , - 775 , - 728 , - 865 , - 1186 , - 219 , - 908 , - 309 , - 1366 , - 1135 , - 1088 , - 1225 , - 74 , - 579 , - 1268 , - 669 , - 254 , - 23 , - 1448 , - 113 , - 434 , - 939 , - 156 , - 1029 , - 614 , - 383 , - 336 , - 473 , - 794 , - 1299 , - 516 , - 1389 , - 974 , - 743 , - 696 , - 833 , - 1154 , - 187 , - 876 , - 277 , - 1334 , - 1103 , - 1056 , - 1193 , - 42 , - 547 , - 1236 , - 637 , - 222 , - 1463 , - 1416 , - 81 , - 402 , - 907 , - 124 , - 997 , - 582 , - 351 , - 304 , - 441 , - 762 , - 1267 , - 484 , - 1357 , - 942 , - 711 , - 664 , - 801 , - 1122 , - 155 , - 844 , - 245 , - 1302 , - 1071 , - 1024 , - 1161 , - 10 , - 515 , - 1204 , - 605 , - 190 , - 1431 , - 1384 , - 49 , - 370 , - 875 , - 92 , - 965 , - 550 , - 319 , - 272 , - 409 , - 730 , - 1235 , - 452 , - 1325 , - 910 , - 679 , - 632 , - 769 , - 1090 , - 123 , - 812 , - 213 , - 1270 , - 1039 , - 992 , - 1129 , - 1450 , - 483 , - 1172 , - 573 , - 158 , - 1399 , - 1352 , - 17 , - 338 , - 843 , - 60 , - 933 , - 518 , - 287 , - 240 , - 377 , - 698 , - 1203 , - 420 , - 1293 , - 878 , - 647 , - 600 , - 737 , - 1058 , - 91 , - 780 , - 181 , - 1238 , - 1007 , - 960 , - 1097 , - 1418 , - 451 , - 1140 , - 541 , - 126 , - 1367 , - 1320 , - 1457 , - 306 , - 811 , - 28 , - 901 , - 486 , - 255 , - 208 , - 345 , - 666 , - 1171 , - 388 , - 1261 , - 846 , - 615 , - 568 , - 705 , - 1026 , - 59 , - 748 , - 149 , - 1206 , - 975 , - 928 , - 1065 , - 1386 , - 419 , - 1108 , - 509 , - 94 , - 1335 , - 1288 , - 1425 , - 274 , - 779 , - 1468 , - 869 , - 454 , - 223 , - 176 , - 313 , - 634 , - 1139 , - 356 , - 1229 , - 814 , - 583 , - 536 , - 673 , - 994 , - 27 , - 716 , - 117 , - 1174 , - 943 , - 896 , - 1033 , - 1354 , - 387 , - 1076 , - 477 , - 62 , - 1303 , - 1256 , - 1393 , - 242 , - 747 , - 1436 , - 837 , - 422 , - 191 , - 144 , - 281 , - 602 , - 1107 , - 324 , - 1197 , - 782 , - 551 , - 504 , - 641 , - 962 , - 1467 , - 684 , - 85 , - 1142 , - 911 , - 864 , - 1001 , - 1322 , - 355 , - 1044 , - 445 , - 30 , - 1271 , - 1224 , - 1361 , - 210 , - 715 , - 1404 , - 805 , - 390 , - 159 , - 112 , - 249 , - 570 , - 1075 , - 292 , - 1165 , - 750 , - 519 , - 472 , - 609 , - 930 , - 1435 , - 652 , - 53 , - 1110 , - 879 , - 832 , - 969 , - 1290 , - 323 , - 1012 , - 413 , - 1470 , - 1239 , - 1192 , - 1329 , - 178 , - 683 , - 1372 , - 773 , - 358 , - 127 , - 80 , - 217 , - 538 , - 1043 , - 260 , - 1133 , - 718 , - 487 , - 440 , - 577 , - 898 , - 1403 , - 620 , - 21 , - 1078 , - 847 , - 800 , - 937 , - 1258 , - 291 , - 980 , - 381 , - 1438 , - 1207 , - 1160 , - 1297 , - 146 , - 651 , - 1340 , - 741 , - 326 , - 95 , - 48 , - 185 , - 506 , - 1011 , - 228 , - 1101 , - 686 , - 455 , - 408 , - 545 , - 866 , - 1371 , - 588 , - 1461 , - 1046 , - 815 , - 768 , - 905 , - 1226 , - 259 , - 948 , - 349 , - 1406 , - 1175 , - 1128 , - 1265 , - 114 , - 619 , - 1308 , - 709 , - 294 , - 63 , - 16 , - 153 , - 474 , - 979 , - 196 , - 1069 , - 654 , - 423 , - 376 , - 513 , - 834 , - 1339 , - 556 , - 1429 , - 1014 , - 783 , - 736 , - 873 , - 1194 , - 227 , - 916 , - 317 , - 1374 , - 1143 , - 1096 , - 1233 , - 82 , - 587 , - 1276 , - 677 , - 262 , - 31 , - 1456 , - 121 , - 442 , - 947 , - 164 , - 1037 , - 622 , - 391 , - 344 , - 481 , - 802 , - 1307 , - 524 , - 1397 , - 982 , - 751 , - 704 , - 841 , - 1162 , - 195 , - 884 , - 285 , - 1342 , - 1111 , - 1064 , - 1201 , - 50 , - 555 , - 1244 , - 645 , - 230 , - 1471 , - 1424 , - 89 , - 410 , - 915 , - 132 , - 1005 , - 590 , - 359 , - 312 , - 449 , - 770 , - 1275 , - 492 , - 1365 , - 950 , - 719 , - 672 , - 809 , - 1130 , - 163 , - 852 , - 253 , - 1310 , - 1079 , - 1032 , - 1169 , - 18 , - 523 , - 1212 , - 613 , - 198 , - 1439 , - 1392 , - 57 , - 378 , - 883 , - 100 , - 973 , - 558 , - 327 , - 280 , - 417 , - 738 , - 1243 , - 460 , - 1333 , - 918 , - 687 , - 640 , - 777 , - 1098 , - 131 , - 820 , - 221 , - 1278 , - 1047 , - 1000 , - 1137 , - 1458 , - 491 , - 1180 , - 581 , - 166 , - 1407 , - 1360 , - 25 , - 346 , - 851 , - 68 , - 941 , - 526 , - 295 , - 248 , - 385 , - 706 , - 1211 , - 428 , - 1301 , - 886 , - 655 , - 608 , - 745 , - 1066 , - 99 , - 788 , - 189 , - 1246 , - 1015 , - 968 , - 1105 , - 1426 , - 459 , - 1148 , - 549 , - 134 , - 1375 , - 1328 , - 1465 , - 314 , - 819 , - 36 , - 909 , - 494 , - 263 , - 216 , - 353 , - 674 , - 1179 , - 396 , - 1269 , - 854 , - 623 , - 576 , - 713 , - 1034 , - 67 , - 756 , - 157 , - 1214 , - 983 , - 936 , - 1073 , - 1394 , - 427 , - 1116 , - 517 , - 102 , - 1343 , - 1296 , - 1433 , - 282 , - 787 , - 4 , - 877 , - 462 , - 231 , - 184 , - 321 , - 642 , - 1147 , - 364 , - 1237 , - 822 , - 591 , - 544 , - 681 , - 1002 , - 35 , - 724 , - 125 , - 1182 , - 951 , - 904 , - 1041 , - 1362 , - 395 , - 1084 , - 485 , - 70 , - 1311 , - 1264 , - 1401 , - 250 , - 755 , - 1444 , - 845 , - 430 , - 199 , - 152 , - 289 , - 610 , - 1115 , - 332 , - 1205 , - 790 , - 559 , - 512 , - 649 , - 970 , - 3 , - 692 , - 93 , - 1150 , - 919 , - 872 , - 1009 , - 1330 , - 363 , - 1052 , - 453 , - 38 , - 1279 , - 1232 , - 1369 , - 218 , - 723 , - 1412 , - 813 , - 398 , - 167 , - 120 , - 257 , - 578 , - 1083 , - 300 , - 1173 , - 758 , - 527 , - 480 , - 617 , - 938 , - 1443 , - 660 , - 61 , - 1118 , - 887 , - 840 , - 977 , - 1298 , - 331 , - 1020 , - 421 , - 6 , - 1247 , - 1200 , - 1337 , - 186 , - 691 , - 1380 , - 781 , - 366 , - 135 , - 88 , - 225 , - 546 , - 1051 , - 268 , - 1141 , - 726 , - 495 , - 448 , - 585 , - 906 , - 1411 , - 628 , - 29 , - 1086 , - 855 , - 808 , - 945 , - 1266 , - 299 , - 988 , - 389 , - 1446 , - 1215 , - 1168 , - 1305 , - 154 , - 659 , - 1348 , - 749 , - 334 , - 103 , - 56 , - 193 , - 514 , - 1019 , - 236 , - 1109 , - 694 , - 463 , - 416 , - 553 , - 874 , - 1379 , - 596 , - 1469 , - 1054 , - 823 , - 776 , - 913 , - 1234 , - 267 , - 956 , - 357 , - 1414 , - 1183 , - 1136 , - 1273 , - 122 , - 627 , - 1316 , - 717 , - 302 , - 71 , - 24 , - 161 , - 482 , - 987 , - 204 , - 1077 , - 662 , - 431 , - 384 , - 521 , - 842 , - 1347 , - 564 , - 1437 , - 1022 , - 791 , - 744 , - 881 , - 1202 , - 235 , - 924 , - 325 , - 1382 , - 1151 , - 1104 , - 1241 , - 90 , - 595 , - 1284 , - 685 , - 270 , - 39 , - 1464 , - 129 , - 450 , - 955 , - 172 , - 1045 , - 630 , - 399 , - 352 , - 489 , - 810 , - 1315 , - 532 , - 1405 , - 990 , - 759 , - 712 , - 849 , - 1170 , - 203 , - 892 , - 293 , - 1350 , - 1119 , - 1072 , - 1209 , - 58 , - 563 , - 1252 , - 653 , - 238 , - 7 , - 1432 , - 97 , - 418 , - 923 , - 140 , - 1013 , - 598 , - 367 , - 320 , - 457 , - 778 , - 1283 , - 500 , - 1373 , - 958 , - 727 , - 680 , - 817 , - 1138 , - 171 , - 860 , - 261 , - 1318 , - 1087 , - 1040 , - 1177 , - 26 , - 531 , - 1220 , - 621 , - 206 , - 1447 , - 1400 , - 65 , - 386 , - 891 , - 108 , - 981 , - 566 , - 335 , - 288 , - 425 , - 746 , - 1251 , - 468 , - 1341 , - 926 , - 695 , - 648 , - 785 , - 1106 , - 139 , - 828 , - 229 , - 1286 , - 1055 , - 1008 , - 1145 , - 1466 , - 499 , - 1188 , - 589 , - 174 , - 1415 , - 1368 , - 33 , - 354 , - 859 , - 76 , - 949 , - 534 , - 303 , - 256 , - 393 , - 714 , - 1219 , - 436 , - 1309 , - 894 , - 663 , - 616 , - 753 , - 1074 , - 107 , - 796 , - 197 , - 1254 , - 1023 , - 976 , - 1113 , - 1434 , - 467 , - 1156 , - 557 , - 142 , - 1383 , - 1336 , - 1 , - 322 , - 827 , - 44 , - 917 , - 502 , - 271 , - 224 , - 361 , - 682 , - 1187 , - 404 , - 1277 , - 862 , - 631 , - 584 , - 721 , - 1042 , - 75 , - 764 , - 165 , - 1222 , - 991 , - 944 , - 1081 , - 1402 , - 435 , - 1124 , - 525 , - 110 , - 1351 , - 1304 , - 1441 , - 290 , - 795 , - 12 , - 885 , - 470 , - 239 , - 192 , - 329 , - 650 , - 1155 , - 372 , - 1245 , - 830 , - 599 , - 552 , - 689 , - 1010 , - 43 , - 732 , - 133 , - 1190 , - 959 , - 912 , - 1049 , - 1370 , - 403 , - 1092 , - 493 , - 78 , - 1319 , - 1272 , - 1409 , - 258 , - 763 , - 1452 , - 853 , - 438 , - 207 , - 160 , - 297 , - 618 , - 1123 , - 340 , - 1213 , - 798 , - 567 , - 520 , - 657 , - 978 , - 11 , - 700 , - 101 , - 1158 , - 927 , - 880 , - 1017 , - 1338 , - 371 , - 1060 , - 461 , - 46 , - 1287 , - 1240 , - 1377 , - 226 , - 731 , - 1420 , - 821 , - 406 , - 175 , - 128 , - 265 , - 586 , - 1091 , - 308 , - 1181 , - 766 , - 535 , - 488 , - 625 , - 946 , - 1451 , - 668 , - 69 , - 1126 , - 895 , - 848 , - 985 , - 1306 , - 339 , - 1028 , - 429 , - 14 , - 1255 , - 1208 , - 1345 , - 194 , - 699 , - 1388 , - 789 , - 374 , - 143 , - 96 , - 233 , - 554 , - 1059 , - 276 , - 1149 , - 734 , - 503 , - 456 , - 593 , - 914 , - 1419 , - 636 , - 37 , - 1094 , - 863 , - 816 , - 953 , - 1274 , - 307 , - 996 , - 397 , - 1454 , - 1223 , - 1176 , - 1313 , - 162 , - 667 , - 1356 , - 757 , - 342 , - 111 , - 64 , - 201 , - 522 , - 1027 , - 244 , - 1117 , - 702 , - 471 , - 424 , - 561 , - 882 , - 1387 , - 604 , - 5 , - 1062 , - 831 , - 784 , - 921 , - 1242 , - 275 , - 964 , - 365 , - 1422 , - 1191 , - 1144 , - 1281 , - 130 , - 635 , - 1324 , - 725 , - 310 , - 79 , - 32 , - 169 , - 490 , - 995 , - 212 , - 1085 , - 670 , - 439 , - 392 , - 529 , - 850 , - 1355 , - 572 , - 1445 , - 1030 , - 799 , - 752 , - 889 , - 1210 , - 243 , - 932 , - 333 , - 1390 , - 1159 , - 1112 , - 1249 , - 98 , - 603 , - 1292 , - 693 , - 278 , - 47 , - 0 , - 895 , - 474 , - 241 , - 196 , - 339 , - 670 , - 1189 , - 392 , - 1287 , - 866 , - 633 , - 588 , - 731 , - 1062 , - 77 , - 784 , - 175 , - 1258 , - 1025 , - 980 , - 1123 , - 1454 , - 469 , - 1176 , - 567 , - 146 , - 1417 , - 1372 , - 11 , - 342 , - 861 , - 64 , - 959 , - 538 , - 305 , - 260 , - 403 , - 734 , - 1253 , - 456 , - 1351 , - 930 , - 697 , - 652 , - 795 , - 1126 , - 141 , - 848 , - 239 , - 1322 , - 1089 , - 1044 , - 1187 , - 14 , - 533 , - 1240 , - 631 , - 210 , - 1481 , - 1436 , - 75 , - 406 , - 925 , - 128 , - 1023 , - 602 , - 369 , - 324 , - 467 , - 798 , - 1317 , - 520 , - 1415 , - 994 , - 761 , - 716 , - 859 , - 1190 , - 205 , - 912 , - 303 , - 1386 , - 1153 , - 1108 , - 1251 , - 78 , - 597 , - 1304 , - 695 , - 274 , - 41 , - 1500 , - 139 , - 470 , - 989 , - 192 , - 1087 , - 666 , - 433 , - 388 , - 531 , - 862 , - 1381 , - 584 , - 1479 , - 1058 , - 825 , - 780 , - 923 , - 1254 , - 269 , - 976 , - 367 , - 1450 , - 1217 , - 1172 , - 1315 , - 142 , - 661 , - 1368 , - 759 , - 338 , - 105 , - 60 , - 203 , - 534 , - 1053 , - 256 , - 1151 , - 730 , - 497 , - 452 , - 595 , - 926 , - 1445 , - 648 , - 39 , - 1122 , - 889 , - 844 , - 987 , - 1318 , - 333 , - 1040 , - 431 , - 10 , - 1281 , - 1236 , - 1379 , - 206 , - 725 , - 1432 , - 823 , - 402 , - 169 , - 124 , - 267 , - 598 , - 1117 , - 320 , - 1215 , - 794 , - 561 , - 516 , - 659 , - 990 , - 5 , - 712 , - 103 , - 1186 , - 953 , - 908 , - 1051 , - 1382 , - 397 , - 1104 , - 495 , - 74 , - 1345 , - 1300 , - 1443 , - 270 , - 789 , - 1496 , - 887 , - 466 , - 233 , - 188 , - 331 , - 662 , - 1181 , - 384 , - 1279 , - 858 , - 625 , - 580 , - 723 , - 1054 , - 69 , - 776 , - 167 , - 1250 , - 1017 , - 972 , - 1115 , - 1446 , - 461 , - 1168 , - 559 , - 138 , - 1409 , - 1364 , - 3 , - 334 , - 853 , - 56 , - 951 , - 530 , - 297 , - 252 , - 395 , - 726 , - 1245 , - 448 , - 1343 , - 922 , - 689 , - 644 , - 787 , - 1118 , - 133 , - 840 , - 231 , - 1314 , - 1081 , - 1036 , - 1179 , - 6 , - 525 , - 1232 , - 623 , - 202 , - 1473 , - 1428 , - 67 , - 398 , - 917 , - 120 , - 1015 , - 594 , - 361 , - 316 , - 459 , - 790 , - 1309 , - 512 , - 1407 , - 986 , - 753 , - 708 , - 851 , - 1182 , - 197 , - 904 , - 295 , - 1378 , - 1145 , - 1100 , - 1243 , - 70 , - 589 , - 1296 , - 687 , - 266 , - 33 , - 1492 , - 131 , - 462 , - 981 , - 184 , - 1079 , - 658 , - 425 , - 380 , - 523 , - 854 , - 1373 , - 576 , - 1471 , - 1050 , - 817 , - 772 , - 915 , - 1246 , - 261 , - 968 , - 359 , - 1442 , - 1209 , - 1164 , - 1307 , - 134 , - 653 , - 1360 , - 751 , - 330 , - 97 , - 52 , - 195 , - 526 , - 1045 , - 248 , - 1143 , - 722 , - 489 , - 444 , - 587 , - 918 , - 1437 , - 640 , - 31 , - 1114 , - 881 , - 836 , - 979 , - 1310 , - 325 , - 1032 , - 423 , - 2 , - 1273 , - 1228 , - 1371 , - 198 , - 717 , - 1424 , - 815 , - 394 , - 161 , - 116 , - 259 , - 590 , - 1109 , - 312 , - 1207 , - 786 , - 553 , - 508 , - 651 , - 982 , - 1501 , - 704 , - 95 , - 1178 , - 945 , - 900 , - 1043 , - 1374 , - 389 , - 1096 , - 487 , - 66 , - 1337 , - 1292 , - 1435 , - 262 , - 781 , - 1488 , - 879 , - 458 , - 225 , - 180 , - 323 , - 654 , - 1173 , - 376 , - 1271 , - 850 , - 617 , - 572 , - 715 , - 1046 , - 61 , - 768 , - 159 , - 1242 , - 1009 , - 964 , - 1107 , - 1438 , - 453 , - 1160 , - 551 , - 130 , - 1401 , - 1356 , - 1499 , - 326 , - 845 , - 48 , - 943 , - 522 , - 289 , - 244 , - 387 , - 718 , - 1237 , - 440 , - 1335 , - 914 , - 681 , - 636 , - 779 , - 1110 , - 125 , - 832 , - 223 , - 1306 , - 1073 , - 1028 , - 1171 , - 1502 , - 517 , - 1224 , - 615 , - 194 , - 1465 , - 1420 , - 59 , - 390 , - 909 , - 112 , - 1007 , - 586 , - 353 , - 308 , - 451 , - 782 , - 1301 , - 504 , - 1399 , - 978 , - 745 , - 700 , - 843 , - 1174 , - 189 , - 896 , - 287 , - 1370 , - 1137 , - 1092 , - 1235 , - 62 , - 581 , - 1288 , - 679 , - 258 , - 25 , - 1484 , - 123 , - 454 , - 973 , - 176 , - 1071 , - 650 , - 417 , - 372 , - 515 , - 846 , - 1365 , - 568 , - 1463 , - 1042 , - 809 , - 764 , - 907 , - 1238 , - 253 , - 960 , - 351 , - 1434 , - 1201 , - 1156 , - 1299 , - 126 , - 645 , - 1352 , - 743 , - 322 , - 89 , - 44 , - 187 , - 518 , - 1037 , - 240 , - 1135 , - 714 , - 481 , - 436 , - 579 , - 910 , - 1429 , - 632 , - 23 , - 1106 , - 873 , - 828 , - 971 , - 1302 , - 317 , - 1024 , - 415 , - 1498 , - 1265 , - 1220 , - 1363 , - 190 , - 709 , - 1416 , - 807 , - 386 , - 153 , - 108 , - 251 , - 582 , - 1101 , - 304 , - 1199 , - 778 , - 545 , - 500 , - 643 , - 974 , - 1493 , - 696 , - 87 , - 1170 , - 937 , - 892 , - 1035 , - 1366 , - 381 , - 1088 , - 479 , - 58 , - 1329 , - 1284 , - 1427 , - 254 , - 773 , - 1480 , - 871 , - 450 , - 217 , - 172 , - 315 , - 646 , - 1165 , - 368 , - 1263 , - 842 , - 609 , - 564 , - 707 , - 1038 , - 53 , - 760 , - 151 , - 1234 , - 1001 , - 956 , - 1099 , - 1430 , - 445 , - 1152 , - 543 , - 122 , - 1393 , - 1348 , - 1491 , - 318 , - 837 , - 40 , - 935 , - 514 , - 281 , - 236 , - 379 , - 710 , - 1229 , - 432 , - 1327 , - 906 , - 673 , - 628 , - 771 , - 1102 , - 117 , - 824 , - 215 , - 1298 , - 1065 , - 1020 , - 1163 , - 1494 , - 509 , - 1216 , - 607 , - 186 , - 1457 , - 1412 , - 51 , - 382 , - 901 , - 104 , - 999 , - 578 , - 345 , - 300 , - 443 , - 774 , - 1293 , - 496 , - 1391 , - 970 , - 737 , - 692 , - 835 , - 1166 , - 181 , - 888 , - 279 , - 1362 , - 1129 , - 1084 , - 1227 , - 54 , - 573 , - 1280 , - 671 , - 250 , - 17 , - 1476 , - 115 , - 446 , - 965 , - 168 , - 1063 , - 642 , - 409 , - 364 , - 507 , - 838 , - 1357 , - 560 , - 1455 , - 1034 , - 801 , - 756 , - 899 , - 1230 , - 245 , - 952 , - 343 , - 1426 , - 1193 , - 1148 , - 1291 , - 118 , - 637 , - 1344 , - 735 , - 314 , - 81 , - 36 , - 179 , - 510 , - 1029 , - 232 , - 1127 , - 706 , - 473 , - 428 , - 571 , - 902 , - 1421 , - 624 , - 15 , - 1098 , - 865 , - 820 , - 963 , - 1294 , - 309 , - 1016 , - 407 , - 1490 , - 1257 , - 1212 , - 1355 , - 182 , - 701 , - 1408 , - 799 , - 378 , - 145 , - 100 , - 243 , - 574 , - 1093 , - 296 , - 1191 , - 770 , - 537 , - 492 , - 635 , - 966 , - 1485 , - 688 , - 79 , - 1162 , - 929 , - 884 , - 1027 , - 1358 , - 373 , - 1080 , - 471 , - 50 , - 1321 , - 1276 , - 1419 , - 246 , - 765 , - 1472 , - 863 , - 442 , - 209 , - 164 , - 307 , - 638 , - 1157 , - 360 , - 1255 , - 834 , - 601 , - 556 , - 699 , - 1030 , - 45 , - 752 , - 143 , - 1226 , - 993 , - 948 , - 1091 , - 1422 , - 437 , - 1144 , - 535 , - 114 , - 1385 , - 1340 , - 1483 , - 310 , - 829 , - 32 , - 927 , - 506 , - 273 , - 228 , - 371 , - 702 , - 1221 , - 424 , - 1319 , - 898 , - 665 , - 620 , - 763 , - 1094 , - 109 , - 816 , - 207 , - 1290 , - 1057 , - 1012 , - 1155 , - 1486 , - 501 , - 1208 , - 599 , - 178 , - 1449 , - 1404 , - 43 , - 374 , - 893 , - 96 , - 991 , - 570 , - 337 , - 292 , - 435 , - 766 , - 1285 , - 488 , - 1383 , - 962 , - 729 , - 684 , - 827 , - 1158 , - 173 , - 880 , - 271 , - 1354 , - 1121 , - 1076 , - 1219 , - 46 , - 565 , - 1272 , - 663 , - 242 , - 9 , - 1468 , - 107 , - 438 , - 957 , - 160 , - 1055 , - 634 , - 401 , - 356 , - 499 , - 830 , - 1349 , - 552 , - 1447 , - 1026 , - 793 , - 748 , - 891 , - 1222 , - 237 , - 944 , - 335 , - 1418 , - 1185 , - 1140 , - 1283 , - 110 , - 629 , - 1336 , - 727 , - 306 , - 73 , - 28 , - 171 , - 502 , - 1021 , - 224 , - 1119 , - 698 , - 465 , - 420 , - 563 , - 894 , - 1413 , - 616 , - 7 , - 1090 , - 857 , - 812 , - 955 , - 1286 , - 301 , - 1008 , - 399 , - 1482 , - 1249 , - 1204 , - 1347 , - 174 , - 693 , - 1400 , - 791 , - 370 , - 137 , - 92 , - 235 , - 566 , - 1085 , - 288 , - 1183 , - 762 , - 529 , - 484 , - 627 , - 958 , - 1477 , - 680 , - 71 , - 1154 , - 921 , - 876 , - 1019 , - 1350 , - 365 , - 1072 , - 463 , - 42 , - 1313 , - 1268 , - 1411 , - 238 , - 757 , - 1464 , - 855 , - 434 , - 201 , - 156 , - 299 , - 630 , - 1149 , - 352 , - 1247 , - 826 , - 593 , - 548 , - 691 , - 1022 , - 37 , - 744 , - 135 , - 1218 , - 985 , - 940 , - 1083 , - 1414 , - 429 , - 1136 , - 527 , - 106 , - 1377 , - 1332 , - 1475 , - 302 , - 821 , - 24 , - 919 , - 498 , - 265 , - 220 , - 363 , - 694 , - 1213 , - 416 , - 1311 , - 890 , - 657 , - 612 , - 755 , - 1086 , - 101 , - 808 , - 199 , - 1282 , - 1049 , - 1004 , - 1147 , - 1478 , - 493 , - 1200 , - 591 , - 170 , - 1441 , - 1396 , - 35 , - 366 , - 885 , - 88 , - 983 , - 562 , - 329 , - 284 , - 427 , - 758 , - 1277 , - 480 , - 1375 , - 954 , - 721 , - 676 , - 819 , - 1150 , - 165 , - 872 , - 263 , - 1346 , - 1113 , - 1068 , - 1211 , - 38 , - 557 , - 1264 , - 655 , - 234 , - 1 , - 1460 , - 99 , - 430 , - 949 , - 152 , - 1047 , - 626 , - 393 , - 348 , - 491 , - 822 , - 1341 , - 544 , - 1439 , - 1018 , - 785 , - 740 , - 883 , - 1214 , - 229 , - 936 , - 327 , - 1410 , - 1177 , - 1132 , - 1275 , - 102 , - 621 , - 1328 , - 719 , - 298 , - 65 , - 20 , - 163 , - 494 , - 1013 , - 216 , - 1111 , - 690 , - 457 , - 412 , - 555 , - 886 , - 1405 , - 608 , - 1503 , - 1082 , - 849 , - 804 , - 947 , - 1278 , - 293 , - 1000 , - 391 , - 1474 , - 1241 , - 1196 , - 1339 , - 166 , - 685 , - 1392 , - 783 , - 362 , - 129 , - 84 , - 227 , - 558 , - 1077 , - 280 , - 1175 , - 754 , - 521 , - 476 , - 619 , - 950 , - 1469 , - 672 , - 63 , - 1146 , - 913 , - 868 , - 1011 , - 1342 , - 357 , - 1064 , - 455 , - 34 , - 1305 , - 1260 , - 1403 , - 230 , - 749 , - 1456 , - 847 , - 426 , - 193 , - 148 , - 291 , - 622 , - 1141 , - 344 , - 1239 , - 818 , - 585 , - 540 , - 683 , - 1014 , - 29 , - 736 , - 127 , - 1210 , - 977 , - 932 , - 1075 , - 1406 , - 421 , - 1128 , - 519 , - 98 , - 1369 , - 1324 , - 1467 , - 294 , - 813 , - 16 , - 911 , - 490 , - 257 , - 212 , - 355 , - 686 , - 1205 , - 408 , - 1303 , - 882 , - 649 , - 604 , - 747 , - 1078 , - 93 , - 800 , - 191 , - 1274 , - 1041 , - 996 , - 1139 , - 1470 , - 485 , - 1192 , - 583 , - 162 , - 1433 , - 1388 , - 27 , - 358 , - 877 , - 80 , - 975 , - 554 , - 321 , - 276 , - 419 , - 750 , - 1269 , - 472 , - 1367 , - 946 , - 713 , - 668 , - 811 , - 1142 , - 157 , - 864 , - 255 , - 1338 , - 1105 , - 1060 , - 1203 , - 30 , - 549 , - 1256 , - 647 , - 226 , - 1497 , - 1452 , - 91 , - 422 , - 941 , - 144 , - 1039 , - 618 , - 385 , - 340 , - 483 , - 814 , - 1333 , - 536 , - 1431 , - 1010 , - 777 , - 732 , - 875 , - 1206 , - 221 , - 928 , - 319 , - 1402 , - 1169 , - 1124 , - 1267 , - 94 , - 613 , - 1320 , - 711 , - 290 , - 57 , - 12 , - 155 , - 486 , - 1005 , - 208 , - 1103 , - 682 , - 449 , - 404 , - 547 , - 878 , - 1397 , - 600 , - 1495 , - 1074 , - 841 , - 796 , - 939 , - 1270 , - 285 , - 992 , - 383 , - 1466 , - 1233 , - 1188 , - 1331 , - 158 , - 677 , - 1384 , - 775 , - 354 , - 121 , - 76 , - 219 , - 550 , - 1069 , - 272 , - 1167 , - 746 , - 513 , - 468 , - 611 , - 942 , - 1461 , - 664 , - 55 , - 1138 , - 905 , - 860 , - 1003 , - 1334 , - 349 , - 1056 , - 447 , - 26 , - 1297 , - 1252 , - 1395 , - 222 , - 741 , - 1448 , - 839 , - 418 , - 185 , - 140 , - 283 , - 614 , - 1133 , - 336 , - 1231 , - 810 , - 577 , - 532 , - 675 , - 1006 , - 21 , - 728 , - 119 , - 1202 , - 969 , - 924 , - 1067 , - 1398 , - 413 , - 1120 , - 511 , - 90 , - 1361 , - 1316 , - 1459 , - 286 , - 805 , - 8 , - 903 , - 482 , - 249 , - 204 , - 347 , - 678 , - 1197 , - 400 , - 1295 , - 874 , - 641 , - 596 , - 739 , - 1070 , - 85 , - 792 , - 183 , - 1266 , - 1033 , - 988 , - 1131 , - 1462 , - 477 , - 1184 , - 575 , - 154 , - 1425 , - 1380 , - 19 , - 350 , - 869 , - 72 , - 967 , - 546 , - 313 , - 268 , - 411 , - 742 , - 1261 , - 464 , - 1359 , - 938 , - 705 , - 660 , - 803 , - 1134 , - 149 , - 856 , - 247 , - 1330 , - 1097 , - 1052 , - 1195 , - 22 , - 541 , - 1248 , - 639 , - 218 , - 1489 , - 1444 , - 83 , - 414 , - 933 , - 136 , - 1031 , - 610 , - 377 , - 332 , - 475 , - 806 , - 1325 , - 528 , - 1423 , - 1002 , - 769 , - 724 , - 867 , - 1198 , - 213 , - 920 , - 311 , - 1394 , - 1161 , - 1116 , - 1259 , - 86 , - 605 , - 1312 , - 703 , - 282 , - 49 , - 4 , - 147 , - 478 , - 997 , - 200 , - 1095 , - 674 , - 441 , - 396 , - 539 , - 870 , - 1389 , - 592 , - 1487 , - 1066 , - 833 , - 788 , - 931 , - 1262 , - 277 , - 984 , - 375 , - 1458 , - 1225 , - 1180 , - 1323 , - 150 , - 669 , - 1376 , - 767 , - 346 , - 113 , - 68 , - 211 , - 542 , - 1061 , - 264 , - 1159 , - 738 , - 505 , - 460 , - 603 , - 934 , - 1453 , - 656 , - 47 , - 1130 , - 897 , - 852 , - 995 , - 1326 , - 341 , - 1048 , - 439 , - 18 , - 1289 , - 1244 , - 1387 , - 214 , - 733 , - 1440 , - 831 , - 410 , - 177 , - 132 , - 275 , - 606 , - 1125 , - 328 , - 1223 , - 802 , - 569 , - 524 , - 667 , - 998 , - 13 , - 720 , - 111 , - 1194 , - 961 , - 916 , - 1059 , - 1390 , - 405 , - 1112 , - 503 , - 82 , - 1353 , - 1308 , - 1451 , - 278 , - 797 , - 0 , - 119 , - 334 , - 645 , - 1052 , - 19 , - 618 , - 1313 , - 568 , - 1455 , - 902 , - 445 , - 84 , - 1355 , - 1186 , - 1113 , - 1136 , - 1255 , - 1470 , - 245 , - 652 , - 1155 , - 218 , - 913 , - 168 , - 1055 , - 502 , - 45 , - 1220 , - 955 , - 786 , - 713 , - 736 , - 855 , - 1070 , - 1381 , - 252 , - 755 , - 1354 , - 513 , - 1304 , - 655 , - 102 , - 1181 , - 820 , - 555 , - 386 , - 313 , - 336 , - 455 , - 670 , - 981 , - 1388 , - 355 , - 954 , - 113 , - 904 , - 255 , - 1238 , - 781 , - 420 , - 155 , - 1522 , - 1449 , - 1472 , - 55 , - 270 , - 581 , - 988 , - 1491 , - 554 , - 1249 , - 504 , - 1391 , - 838 , - 381 , - 20 , - 1291 , - 1122 , - 1049 , - 1072 , - 1191 , - 1406 , - 181 , - 588 , - 1091 , - 154 , - 849 , - 104 , - 991 , - 438 , - 1517 , - 1156 , - 891 , - 722 , - 649 , - 672 , - 791 , - 1006 , - 1317 , - 188 , - 691 , - 1290 , - 449 , - 1240 , - 591 , - 38 , - 1117 , - 756 , - 491 , - 322 , - 249 , - 272 , - 391 , - 606 , - 917 , - 1324 , - 291 , - 890 , - 49 , - 840 , - 191 , - 1174 , - 717 , - 356 , - 91 , - 1458 , - 1385 , - 1408 , - 1527 , - 206 , - 517 , - 924 , - 1427 , - 490 , - 1185 , - 440 , - 1327 , - 774 , - 317 , - 1492 , - 1227 , - 1058 , - 985 , - 1008 , - 1127 , - 1342 , - 117 , - 524 , - 1027 , - 90 , - 785 , - 40 , - 927 , - 374 , - 1453 , - 1092 , - 827 , - 658 , - 585 , - 608 , - 727 , - 942 , - 1253 , - 124 , - 627 , - 1226 , - 385 , - 1176 , - 527 , - 1510 , - 1053 , - 692 , - 427 , - 258 , - 185 , - 208 , - 327 , - 542 , - 853 , - 1260 , - 227 , - 826 , - 1521 , - 776 , - 127 , - 1110 , - 653 , - 292 , - 27 , - 1394 , - 1321 , - 1344 , - 1463 , - 142 , - 453 , - 860 , - 1363 , - 426 , - 1121 , - 376 , - 1263 , - 710 , - 253 , - 1428 , - 1163 , - 994 , - 921 , - 944 , - 1063 , - 1278 , - 53 , - 460 , - 963 , - 26 , - 721 , - 1512 , - 863 , - 310 , - 1389 , - 1028 , - 763 , - 594 , - 521 , - 544 , - 663 , - 878 , - 1189 , - 60 , - 563 , - 1162 , - 321 , - 1112 , - 463 , - 1446 , - 989 , - 628 , - 363 , - 194 , - 121 , - 144 , - 263 , - 478 , - 789 , - 1196 , - 163 , - 762 , - 1457 , - 712 , - 63 , - 1046 , - 589 , - 228 , - 1499 , - 1330 , - 1257 , - 1280 , - 1399 , - 78 , - 389 , - 796 , - 1299 , - 362 , - 1057 , - 312 , - 1199 , - 646 , - 189 , - 1364 , - 1099 , - 930 , - 857 , - 880 , - 999 , - 1214 , - 1525 , - 396 , - 899 , - 1498 , - 657 , - 1448 , - 799 , - 246 , - 1325 , - 964 , - 699 , - 530 , - 457 , - 480 , - 599 , - 814 , - 1125 , - 1532 , - 499 , - 1098 , - 257 , - 1048 , - 399 , - 1382 , - 925 , - 564 , - 299 , - 130 , - 57 , - 80 , - 199 , - 414 , - 725 , - 1132 , - 99 , - 698 , - 1393 , - 648 , - 1535 , - 982 , - 525 , - 164 , - 1435 , - 1266 , - 1193 , - 1216 , - 1335 , - 14 , - 325 , - 732 , - 1235 , - 298 , - 993 , - 248 , - 1135 , - 582 , - 125 , - 1300 , - 1035 , - 866 , - 793 , - 816 , - 935 , - 1150 , - 1461 , - 332 , - 835 , - 1434 , - 593 , - 1384 , - 735 , - 182 , - 1261 , - 900 , - 635 , - 466 , - 393 , - 416 , - 535 , - 750 , - 1061 , - 1468 , - 435 , - 1034 , - 193 , - 984 , - 335 , - 1318 , - 861 , - 500 , - 235 , - 66 , - 1529 , - 16 , - 135 , - 350 , - 661 , - 1068 , - 35 , - 634 , - 1329 , - 584 , - 1471 , - 918 , - 461 , - 100 , - 1371 , - 1202 , - 1129 , - 1152 , - 1271 , - 1486 , - 261 , - 668 , - 1171 , - 234 , - 929 , - 184 , - 1071 , - 518 , - 61 , - 1236 , - 971 , - 802 , - 729 , - 752 , - 871 , - 1086 , - 1397 , - 268 , - 771 , - 1370 , - 529 , - 1320 , - 671 , - 118 , - 1197 , - 836 , - 571 , - 402 , - 329 , - 352 , - 471 , - 686 , - 997 , - 1404 , - 371 , - 970 , - 129 , - 920 , - 271 , - 1254 , - 797 , - 436 , - 171 , - 2 , - 1465 , - 1488 , - 71 , - 286 , - 597 , - 1004 , - 1507 , - 570 , - 1265 , - 520 , - 1407 , - 854 , - 397 , - 36 , - 1307 , - 1138 , - 1065 , - 1088 , - 1207 , - 1422 , - 197 , - 604 , - 1107 , - 170 , - 865 , - 120 , - 1007 , - 454 , - 1533 , - 1172 , - 907 , - 738 , - 665 , - 688 , - 807 , - 1022 , - 1333 , - 204 , - 707 , - 1306 , - 465 , - 1256 , - 607 , - 54 , - 1133 , - 772 , - 507 , - 338 , - 265 , - 288 , - 407 , - 622 , - 933 , - 1340 , - 307 , - 906 , - 65 , - 856 , - 207 , - 1190 , - 733 , - 372 , - 107 , - 1474 , - 1401 , - 1424 , - 7 , - 222 , - 533 , - 940 , - 1443 , - 506 , - 1201 , - 456 , - 1343 , - 790 , - 333 , - 1508 , - 1243 , - 1074 , - 1001 , - 1024 , - 1143 , - 1358 , - 133 , - 540 , - 1043 , - 106 , - 801 , - 56 , - 943 , - 390 , - 1469 , - 1108 , - 843 , - 674 , - 601 , - 624 , - 743 , - 958 , - 1269 , - 140 , - 643 , - 1242 , - 401 , - 1192 , - 543 , - 1526 , - 1069 , - 708 , - 443 , - 274 , - 201 , - 224 , - 343 , - 558 , - 869 , - 1276 , - 243 , - 842 , - 1 , - 792 , - 143 , - 1126 , - 669 , - 308 , - 43 , - 1410 , - 1337 , - 1360 , - 1479 , - 158 , - 469 , - 876 , - 1379 , - 442 , - 1137 , - 392 , - 1279 , - 726 , - 269 , - 1444 , - 1179 , - 1010 , - 937 , - 960 , - 1079 , - 1294 , - 69 , - 476 , - 979 , - 42 , - 737 , - 1528 , - 879 , - 326 , - 1405 , - 1044 , - 779 , - 610 , - 537 , - 560 , - 679 , - 894 , - 1205 , - 76 , - 579 , - 1178 , - 337 , - 1128 , - 479 , - 1462 , - 1005 , - 644 , - 379 , - 210 , - 137 , - 160 , - 279 , - 494 , - 805 , - 1212 , - 179 , - 778 , - 1473 , - 728 , - 79 , - 1062 , - 605 , - 244 , - 1515 , - 1346 , - 1273 , - 1296 , - 1415 , - 94 , - 405 , - 812 , - 1315 , - 378 , - 1073 , - 328 , - 1215 , - 662 , - 205 , - 1380 , - 1115 , - 946 , - 873 , - 896 , - 1015 , - 1230 , - 5 , - 412 , - 915 , - 1514 , - 673 , - 1464 , - 815 , - 262 , - 1341 , - 980 , - 715 , - 546 , - 473 , - 496 , - 615 , - 830 , - 1141 , - 12 , - 515 , - 1114 , - 273 , - 1064 , - 415 , - 1398 , - 941 , - 580 , - 315 , - 146 , - 73 , - 96 , - 215 , - 430 , - 741 , - 1148 , - 115 , - 714 , - 1409 , - 664 , - 15 , - 998 , - 541 , - 180 , - 1451 , - 1282 , - 1209 , - 1232 , - 1351 , - 30 , - 341 , - 748 , - 1251 , - 314 , - 1009 , - 264 , - 1151 , - 598 , - 141 , - 1316 , - 1051 , - 882 , - 809 , - 832 , - 951 , - 1166 , - 1477 , - 348 , - 851 , - 1450 , - 609 , - 1400 , - 751 , - 198 , - 1277 , - 916 , - 651 , - 482 , - 409 , - 432 , - 551 , - 766 , - 1077 , - 1484 , - 451 , - 1050 , - 209 , - 1000 , - 351 , - 1334 , - 877 , - 516 , - 251 , - 82 , - 9 , - 32 , - 151 , - 366 , - 677 , - 1084 , - 51 , - 650 , - 1345 , - 600 , - 1487 , - 934 , - 477 , - 116 , - 1387 , - 1218 , - 1145 , - 1168 , - 1287 , - 1502 , - 277 , - 684 , - 1187 , - 250 , - 945 , - 200 , - 1087 , - 534 , - 77 , - 1252 , - 987 , - 818 , - 745 , - 768 , - 887 , - 1102 , - 1413 , - 284 , - 787 , - 1386 , - 545 , - 1336 , - 687 , - 134 , - 1213 , - 852 , - 587 , - 418 , - 345 , - 368 , - 487 , - 702 , - 1013 , - 1420 , - 387 , - 986 , - 145 , - 936 , - 287 , - 1270 , - 813 , - 452 , - 187 , - 18 , - 1481 , - 1504 , - 87 , - 302 , - 613 , - 1020 , - 1523 , - 586 , - 1281 , - 536 , - 1423 , - 870 , - 413 , - 52 , - 1323 , - 1154 , - 1081 , - 1104 , - 1223 , - 1438 , - 213 , - 620 , - 1123 , - 186 , - 881 , - 136 , - 1023 , - 470 , - 13 , - 1188 , - 923 , - 754 , - 681 , - 704 , - 823 , - 1038 , - 1349 , - 220 , - 723 , - 1322 , - 481 , - 1272 , - 623 , - 70 , - 1149 , - 788 , - 523 , - 354 , - 281 , - 304 , - 423 , - 638 , - 949 , - 1356 , - 323 , - 922 , - 81 , - 872 , - 223 , - 1206 , - 749 , - 388 , - 123 , - 1490 , - 1417 , - 1440 , - 23 , - 238 , - 549 , - 956 , - 1459 , - 522 , - 1217 , - 472 , - 1359 , - 806 , - 349 , - 1524 , - 1259 , - 1090 , - 1017 , - 1040 , - 1159 , - 1374 , - 149 , - 556 , - 1059 , - 122 , - 817 , - 72 , - 959 , - 406 , - 1485 , - 1124 , - 859 , - 690 , - 617 , - 640 , - 759 , - 974 , - 1285 , - 156 , - 659 , - 1258 , - 417 , - 1208 , - 559 , - 6 , - 1085 , - 724 , - 459 , - 290 , - 217 , - 240 , - 359 , - 574 , - 885 , - 1292 , - 259 , - 858 , - 17 , - 808 , - 159 , - 1142 , - 685 , - 324 , - 59 , - 1426 , - 1353 , - 1376 , - 1495 , - 174 , - 485 , - 892 , - 1395 , - 458 , - 1153 , - 408 , - 1295 , - 742 , - 285 , - 1460 , - 1195 , - 1026 , - 953 , - 976 , - 1095 , - 1310 , - 85 , - 492 , - 995 , - 58 , - 753 , - 8 , - 895 , - 342 , - 1421 , - 1060 , - 795 , - 626 , - 553 , - 576 , - 695 , - 910 , - 1221 , - 92 , - 595 , - 1194 , - 353 , - 1144 , - 495 , - 1478 , - 1021 , - 660 , - 395 , - 226 , - 153 , - 176 , - 295 , - 510 , - 821 , - 1228 , - 195 , - 794 , - 1489 , - 744 , - 95 , - 1078 , - 621 , - 260 , - 1531 , - 1362 , - 1289 , - 1312 , - 1431 , - 110 , - 421 , - 828 , - 1331 , - 394 , - 1089 , - 344 , - 1231 , - 678 , - 221 , - 1396 , - 1131 , - 962 , - 889 , - 912 , - 1031 , - 1246 , - 21 , - 428 , - 931 , - 1530 , - 689 , - 1480 , - 831 , - 278 , - 1357 , - 996 , - 731 , - 562 , - 489 , - 512 , - 631 , - 846 , - 1157 , - 28 , - 531 , - 1130 , - 289 , - 1080 , - 431 , - 1414 , - 957 , - 596 , - 331 , - 162 , - 89 , - 112 , - 231 , - 446 , - 757 , - 1164 , - 131 , - 730 , - 1425 , - 680 , - 31 , - 1014 , - 557 , - 196 , - 1467 , - 1298 , - 1225 , - 1248 , - 1367 , - 46 , - 357 , - 764 , - 1267 , - 330 , - 1025 , - 280 , - 1167 , - 614 , - 157 , - 1332 , - 1067 , - 898 , - 825 , - 848 , - 967 , - 1182 , - 1493 , - 364 , - 867 , - 1466 , - 625 , - 1416 , - 767 , - 214 , - 1293 , - 932 , - 667 , - 498 , - 425 , - 448 , - 567 , - 782 , - 1093 , - 1500 , - 467 , - 1066 , - 225 , - 1016 , - 367 , - 1350 , - 893 , - 532 , - 267 , - 98 , - 25 , - 48 , - 167 , - 382 , - 693 , - 1100 , - 67 , - 666 , - 1361 , - 616 , - 1503 , - 950 , - 493 , - 132 , - 1403 , - 1234 , - 1161 , - 1184 , - 1303 , - 1518 , - 293 , - 700 , - 1203 , - 266 , - 961 , - 216 , - 1103 , - 550 , - 93 , - 1268 , - 1003 , - 834 , - 761 , - 784 , - 903 , - 1118 , - 1429 , - 300 , - 803 , - 1402 , - 561 , - 1352 , - 703 , - 150 , - 1229 , - 868 , - 603 , - 434 , - 361 , - 384 , - 503 , - 718 , - 1029 , - 1436 , - 403 , - 1002 , - 161 , - 952 , - 303 , - 1286 , - 829 , - 468 , - 203 , - 34 , - 1497 , - 1520 , - 103 , - 318 , - 629 , - 1036 , - 3 , - 602 , - 1297 , - 552 , - 1439 , - 886 , - 429 , - 68 , - 1339 , - 1170 , - 1097 , - 1120 , - 1239 , - 1454 , - 229 , - 636 , - 1139 , - 202 , - 897 , - 152 , - 1039 , - 486 , - 29 , - 1204 , - 939 , - 770 , - 697 , - 720 , - 839 , - 1054 , - 1365 , - 236 , - 739 , - 1338 , - 497 , - 1288 , - 639 , - 86 , - 1165 , - 804 , - 539 , - 370 , - 297 , - 320 , - 439 , - 654 , - 965 , - 1372 , - 339 , - 938 , - 97 , - 888 , - 239 , - 1222 , - 765 , - 404 , - 139 , - 1506 , - 1433 , - 1456 , - 39 , - 254 , - 565 , - 972 , - 1475 , - 538 , - 1233 , - 488 , - 1375 , - 822 , - 365 , - 4 , - 1275 , - 1106 , - 1033 , - 1056 , - 1175 , - 1390 , - 165 , - 572 , - 1075 , - 138 , - 833 , - 88 , - 975 , - 422 , - 1501 , - 1140 , - 875 , - 706 , - 633 , - 656 , - 775 , - 990 , - 1301 , - 172 , - 675 , - 1274 , - 433 , - 1224 , - 575 , - 22 , - 1101 , - 740 , - 475 , - 306 , - 233 , - 256 , - 375 , - 590 , - 901 , - 1308 , - 275 , - 874 , - 33 , - 824 , - 175 , - 1158 , - 701 , - 340 , - 75 , - 1442 , - 1369 , - 1392 , - 1511 , - 190 , - 501 , - 908 , - 1411 , - 474 , - 1169 , - 424 , - 1311 , - 758 , - 301 , - 1476 , - 1211 , - 1042 , - 969 , - 992 , - 1111 , - 1326 , - 101 , - 508 , - 1011 , - 74 , - 769 , - 24 , - 911 , - 358 , - 1437 , - 1076 , - 811 , - 642 , - 569 , - 592 , - 711 , - 926 , - 1237 , - 108 , - 611 , - 1210 , - 369 , - 1160 , - 511 , - 1494 , - 1037 , - 676 , - 411 , - 242 , - 169 , - 192 , - 311 , - 526 , - 837 , - 1244 , - 211 , - 810 , - 1505 , - 760 , - 111 , - 1094 , - 637 , - 276 , - 11 , - 1378 , - 1305 , - 1328 , - 1447 , - 126 , - 437 , - 844 , - 1347 , - 410 , - 1105 , - 360 , - 1247 , - 694 , - 237 , - 1412 , - 1147 , - 978 , - 905 , - 928 , - 1047 , - 1262 , - 37 , - 444 , - 947 , - 10 , - 705 , - 1496 , - 847 , - 294 , - 1373 , - 1012 , - 747 , - 578 , - 505 , - 528 , - 647 , - 862 , - 1173 , - 44 , - 547 , - 1146 , - 305 , - 1096 , - 447 , - 1430 , - 973 , - 612 , - 347 , - 178 , - 105 , - 128 , - 247 , - 462 , - 773 , - 1180 , - 147 , - 746 , - 1441 , - 696 , - 47 , - 1030 , - 573 , - 212 , - 1483 , - 1314 , - 1241 , - 1264 , - 1383 , - 62 , - 373 , - 780 , - 1283 , - 346 , - 1041 , - 296 , - 1183 , - 630 , - 173 , - 1348 , - 1083 , - 914 , - 841 , - 864 , - 983 , - 1198 , - 1509 , - 380 , - 883 , - 1482 , - 641 , - 1432 , - 783 , - 230 , - 1309 , - 948 , - 683 , - 514 , - 441 , - 464 , - 583 , - 798 , - 1109 , - 1516 , - 483 , - 1082 , - 241 , - 1032 , - 383 , - 1366 , - 909 , - 548 , - 283 , - 114 , - 41 , - 64 , - 183 , - 398 , - 709 , - 1116 , - 83 , - 682 , - 1377 , - 632 , - 1519 , - 966 , - 509 , - 148 , - 1419 , - 1250 , - 1177 , - 1200 , - 1319 , - 1534 , - 309 , - 716 , - 1219 , - 282 , - 977 , - 232 , - 1119 , - 566 , - 109 , - 1284 , - 1019 , - 850 , - 777 , - 800 , - 919 , - 1134 , - 1445 , - 316 , - 819 , - 1418 , - 577 , - 1368 , - 719 , - 166 , - 1245 , - 884 , - 619 , - 450 , - 377 , - 400 , - 519 , - 734 , - 1045 , - 1452 , - 419 , - 1018 , - 177 , - 968 , - 319 , - 1302 , - 845 , - 484 , - 219 , - 50 , - 1513 , - 0 , - 41 , - 138 , - 291 , - 500 , - 765 , - 1086 , - 1463 , - 328 , - 817 , - 1362 , - 395 , - 1052 , - 197 , - 966 , - 223 , - 1104 , - 473 , - 1466 , - 947 , - 484 , - 77 , - 1294 , - 999 , - 760 , - 577 , - 450 , - 379 , - 364 , - 405 , - 502 , - 655 , - 864 , - 1129 , - 1450 , - 259 , - 692 , - 1181 , - 158 , - 759 , - 1416 , - 561 , - 1330 , - 587 , - 1468 , - 837 , - 262 , - 1311 , - 848 , - 441 , - 90 , - 1363 , - 1124 , - 941 , - 814 , - 743 , - 728 , - 769 , - 866 , - 1019 , - 1228 , - 1493 , - 246 , - 623 , - 1056 , - 1545 , - 522 , - 1123 , - 212 , - 925 , - 126 , - 951 , - 264 , - 1201 , - 626 , - 107 , - 1212 , - 805 , - 454 , - 159 , - 1488 , - 1305 , - 1178 , - 1107 , - 1092 , - 1133 , - 1230 , - 1383 , - 24 , - 289 , - 610 , - 987 , - 1420 , - 341 , - 886 , - 1487 , - 576 , - 1289 , - 490 , - 1315 , - 628 , - 1565 , - 990 , - 471 , - 8 , - 1169 , - 818 , - 523 , - 284 , - 101 , - 1542 , - 1471 , - 1456 , - 1497 , - 26 , - 179 , - 388 , - 653 , - 974 , - 1351 , - 216 , - 705 , - 1250 , - 283 , - 940 , - 85 , - 854 , - 111 , - 992 , - 361 , - 1354 , - 835 , - 372 , - 1533 , - 1182 , - 887 , - 648 , - 465 , - 338 , - 267 , - 252 , - 293 , - 390 , - 543 , - 752 , - 1017 , - 1338 , - 147 , - 580 , - 1069 , - 46 , - 647 , - 1304 , - 449 , - 1218 , - 475 , - 1356 , - 725 , - 150 , - 1199 , - 736 , - 329 , - 1546 , - 1251 , - 1012 , - 829 , - 702 , - 631 , - 616 , - 657 , - 754 , - 907 , - 1116 , - 1381 , - 134 , - 511 , - 944 , - 1433 , - 410 , - 1011 , - 100 , - 813 , - 14 , - 839 , - 152 , - 1089 , - 514 , - 1563 , - 1100 , - 693 , - 342 , - 47 , - 1376 , - 1193 , - 1066 , - 995 , - 980 , - 1021 , - 1118 , - 1271 , - 1480 , - 177 , - 498 , - 875 , - 1308 , - 229 , - 774 , - 1375 , - 464 , - 1177 , - 378 , - 1203 , - 516 , - 1453 , - 878 , - 359 , - 1464 , - 1057 , - 706 , - 411 , - 172 , - 1557 , - 1430 , - 1359 , - 1344 , - 1385 , - 1482 , - 67 , - 276 , - 541 , - 862 , - 1239 , - 104 , - 593 , - 1138 , - 171 , - 828 , - 1541 , - 742 , - 1567 , - 880 , - 249 , - 1242 , - 723 , - 260 , - 1421 , - 1070 , - 775 , - 536 , - 353 , - 226 , - 155 , - 140 , - 181 , - 278 , - 431 , - 640 , - 905 , - 1226 , - 35 , - 468 , - 957 , - 1502 , - 535 , - 1192 , - 337 , - 1106 , - 363 , - 1244 , - 613 , - 38 , - 1087 , - 624 , - 217 , - 1434 , - 1139 , - 900 , - 717 , - 590 , - 519 , - 504 , - 545 , - 642 , - 795 , - 1004 , - 1269 , - 22 , - 399 , - 832 , - 1321 , - 298 , - 899 , - 1556 , - 701 , - 1470 , - 727 , - 40 , - 977 , - 402 , - 1451 , - 988 , - 581 , - 230 , - 1503 , - 1264 , - 1081 , - 954 , - 883 , - 868 , - 909 , - 1006 , - 1159 , - 1368 , - 65 , - 386 , - 763 , - 1196 , - 117 , - 662 , - 1263 , - 352 , - 1065 , - 266 , - 1091 , - 404 , - 1341 , - 766 , - 247 , - 1352 , - 945 , - 594 , - 299 , - 60 , - 1445 , - 1318 , - 1247 , - 1232 , - 1273 , - 1370 , - 1523 , - 164 , - 429 , - 750 , - 1127 , - 1560 , - 481 , - 1026 , - 59 , - 716 , - 1429 , - 630 , - 1455 , - 768 , - 137 , - 1130 , - 611 , - 148 , - 1309 , - 958 , - 663 , - 424 , - 241 , - 114 , - 43 , - 28 , - 69 , - 166 , - 319 , - 528 , - 793 , - 1114 , - 1491 , - 356 , - 845 , - 1390 , - 423 , - 1080 , - 225 , - 994 , - 251 , - 1132 , - 501 , - 1494 , - 975 , - 512 , - 105 , - 1322 , - 1027 , - 788 , - 605 , - 478 , - 407 , - 392 , - 433 , - 530 , - 683 , - 892 , - 1157 , - 1478 , - 287 , - 720 , - 1209 , - 186 , - 787 , - 1444 , - 589 , - 1358 , - 615 , - 1496 , - 865 , - 290 , - 1339 , - 876 , - 469 , - 118 , - 1391 , - 1152 , - 969 , - 842 , - 771 , - 756 , - 797 , - 894 , - 1047 , - 1256 , - 1521 , - 274 , - 651 , - 1084 , - 5 , - 550 , - 1151 , - 240 , - 953 , - 154 , - 979 , - 292 , - 1229 , - 654 , - 135 , - 1240 , - 833 , - 482 , - 187 , - 1516 , - 1333 , - 1206 , - 1135 , - 1120 , - 1161 , - 1258 , - 1411 , - 52 , - 317 , - 638 , - 1015 , - 1448 , - 369 , - 914 , - 1515 , - 604 , - 1317 , - 518 , - 1343 , - 656 , - 25 , - 1018 , - 499 , - 36 , - 1197 , - 846 , - 551 , - 312 , - 129 , - 2 , - 1499 , - 1484 , - 1525 , - 54 , - 207 , - 416 , - 681 , - 1002 , - 1379 , - 244 , - 733 , - 1278 , - 311 , - 968 , - 113 , - 882 , - 139 , - 1020 , - 389 , - 1382 , - 863 , - 400 , - 1561 , - 1210 , - 915 , - 676 , - 493 , - 366 , - 295 , - 280 , - 321 , - 418 , - 571 , - 780 , - 1045 , - 1366 , - 175 , - 608 , - 1097 , - 74 , - 675 , - 1332 , - 477 , - 1246 , - 503 , - 1384 , - 753 , - 178 , - 1227 , - 764 , - 357 , - 6 , - 1279 , - 1040 , - 857 , - 730 , - 659 , - 644 , - 685 , - 782 , - 935 , - 1144 , - 1409 , - 162 , - 539 , - 972 , - 1461 , - 438 , - 1039 , - 128 , - 841 , - 42 , - 867 , - 180 , - 1117 , - 542 , - 23 , - 1128 , - 721 , - 370 , - 75 , - 1404 , - 1221 , - 1094 , - 1023 , - 1008 , - 1049 , - 1146 , - 1299 , - 1508 , - 205 , - 526 , - 903 , - 1336 , - 257 , - 802 , - 1403 , - 492 , - 1205 , - 406 , - 1231 , - 544 , - 1481 , - 906 , - 387 , - 1492 , - 1085 , - 734 , - 439 , - 200 , - 17 , - 1458 , - 1387 , - 1372 , - 1413 , - 1510 , - 95 , - 304 , - 569 , - 890 , - 1267 , - 132 , - 621 , - 1166 , - 199 , - 856 , - 1 , - 770 , - 27 , - 908 , - 277 , - 1270 , - 751 , - 288 , - 1449 , - 1098 , - 803 , - 564 , - 381 , - 254 , - 183 , - 168 , - 209 , - 306 , - 459 , - 668 , - 933 , - 1254 , - 63 , - 496 , - 985 , - 1530 , - 563 , - 1220 , - 365 , - 1134 , - 391 , - 1272 , - 641 , - 66 , - 1115 , - 652 , - 245 , - 1462 , - 1167 , - 928 , - 745 , - 618 , - 547 , - 532 , - 573 , - 670 , - 823 , - 1032 , - 1297 , - 50 , - 427 , - 860 , - 1349 , - 326 , - 927 , - 16 , - 729 , - 1498 , - 755 , - 68 , - 1005 , - 430 , - 1479 , - 1016 , - 609 , - 258 , - 1531 , - 1292 , - 1109 , - 982 , - 911 , - 896 , - 937 , - 1034 , - 1187 , - 1396 , - 93 , - 414 , - 791 , - 1224 , - 145 , - 690 , - 1291 , - 380 , - 1093 , - 294 , - 1119 , - 432 , - 1369 , - 794 , - 275 , - 1380 , - 973 , - 622 , - 327 , - 88 , - 1473 , - 1346 , - 1275 , - 1260 , - 1301 , - 1398 , - 1551 , - 192 , - 457 , - 778 , - 1155 , - 20 , - 509 , - 1054 , - 87 , - 744 , - 1457 , - 658 , - 1483 , - 796 , - 165 , - 1158 , - 639 , - 176 , - 1337 , - 986 , - 691 , - 452 , - 269 , - 142 , - 71 , - 56 , - 97 , - 194 , - 347 , - 556 , - 821 , - 1142 , - 1519 , - 384 , - 873 , - 1418 , - 451 , - 1108 , - 253 , - 1022 , - 279 , - 1160 , - 529 , - 1522 , - 1003 , - 540 , - 133 , - 1350 , - 1055 , - 816 , - 633 , - 506 , - 435 , - 420 , - 461 , - 558 , - 711 , - 920 , - 1185 , - 1506 , - 315 , - 748 , - 1237 , - 214 , - 815 , - 1472 , - 617 , - 1386 , - 643 , - 1524 , - 893 , - 318 , - 1367 , - 904 , - 497 , - 146 , - 1419 , - 1180 , - 997 , - 870 , - 799 , - 784 , - 825 , - 922 , - 1075 , - 1284 , - 1549 , - 302 , - 679 , - 1112 , - 33 , - 578 , - 1179 , - 268 , - 981 , - 182 , - 1007 , - 320 , - 1257 , - 682 , - 163 , - 1268 , - 861 , - 510 , - 215 , - 1544 , - 1361 , - 1234 , - 1163 , - 1148 , - 1189 , - 1286 , - 1439 , - 80 , - 345 , - 666 , - 1043 , - 1476 , - 397 , - 942 , - 1543 , - 632 , - 1345 , - 546 , - 1371 , - 684 , - 53 , - 1046 , - 527 , - 64 , - 1225 , - 874 , - 579 , - 340 , - 157 , - 30 , - 1527 , - 1512 , - 1553 , - 82 , - 235 , - 444 , - 709 , - 1030 , - 1407 , - 272 , - 761 , - 1306 , - 339 , - 996 , - 141 , - 910 , - 167 , - 1048 , - 417 , - 1410 , - 891 , - 428 , - 21 , - 1238 , - 943 , - 704 , - 521 , - 394 , - 323 , - 308 , - 349 , - 446 , - 599 , - 808 , - 1073 , - 1394 , - 203 , - 636 , - 1125 , - 102 , - 703 , - 1360 , - 505 , - 1274 , - 531 , - 1412 , - 781 , - 206 , - 1255 , - 792 , - 385 , - 34 , - 1307 , - 1068 , - 885 , - 758 , - 687 , - 672 , - 713 , - 810 , - 963 , - 1172 , - 1437 , - 190 , - 567 , - 1000 , - 1489 , - 466 , - 1067 , - 156 , - 869 , - 70 , - 895 , - 208 , - 1145 , - 570 , - 51 , - 1156 , - 749 , - 398 , - 103 , - 1432 , - 1249 , - 1122 , - 1051 , - 1036 , - 1077 , - 1174 , - 1327 , - 1536 , - 233 , - 554 , - 931 , - 1364 , - 285 , - 830 , - 1431 , - 520 , - 1233 , - 434 , - 1259 , - 572 , - 1509 , - 934 , - 415 , - 1520 , - 1113 , - 762 , - 467 , - 228 , - 45 , - 1486 , - 1415 , - 1400 , - 1441 , - 1538 , - 123 , - 332 , - 597 , - 918 , - 1295 , - 160 , - 649 , - 1194 , - 227 , - 884 , - 29 , - 798 , - 55 , - 936 , - 305 , - 1298 , - 779 , - 316 , - 1477 , - 1126 , - 831 , - 592 , - 409 , - 282 , - 211 , - 196 , - 237 , - 334 , - 487 , - 696 , - 961 , - 1282 , - 91 , - 524 , - 1013 , - 1558 , - 591 , - 1248 , - 393 , - 1162 , - 419 , - 1300 , - 669 , - 94 , - 1143 , - 680 , - 273 , - 1490 , - 1195 , - 956 , - 773 , - 646 , - 575 , - 560 , - 601 , - 698 , - 851 , - 1060 , - 1325 , - 78 , - 455 , - 888 , - 1377 , - 354 , - 955 , - 44 , - 757 , - 1526 , - 783 , - 96 , - 1033 , - 458 , - 1507 , - 1044 , - 637 , - 286 , - 1559 , - 1320 , - 1137 , - 1010 , - 939 , - 924 , - 965 , - 1062 , - 1215 , - 1424 , - 121 , - 442 , - 819 , - 1252 , - 173 , - 718 , - 1319 , - 408 , - 1121 , - 322 , - 1147 , - 460 , - 1397 , - 822 , - 303 , - 1408 , - 1001 , - 650 , - 355 , - 116 , - 1501 , - 1374 , - 1303 , - 1288 , - 1329 , - 1426 , - 11 , - 220 , - 485 , - 806 , - 1183 , - 48 , - 537 , - 1082 , - 115 , - 772 , - 1485 , - 686 , - 1511 , - 824 , - 193 , - 1186 , - 667 , - 204 , - 1365 , - 1014 , - 719 , - 480 , - 297 , - 170 , - 99 , - 84 , - 125 , - 222 , - 375 , - 584 , - 849 , - 1170 , - 1547 , - 412 , - 901 , - 1446 , - 479 , - 1136 , - 281 , - 1050 , - 307 , - 1188 , - 557 , - 1550 , - 1031 , - 568 , - 161 , - 1378 , - 1083 , - 844 , - 661 , - 534 , - 463 , - 448 , - 489 , - 586 , - 739 , - 948 , - 1213 , - 1534 , - 343 , - 776 , - 1265 , - 242 , - 843 , - 1500 , - 645 , - 1414 , - 671 , - 1552 , - 921 , - 346 , - 1395 , - 932 , - 525 , - 174 , - 1447 , - 1208 , - 1025 , - 898 , - 827 , - 812 , - 853 , - 950 , - 1103 , - 1312 , - 9 , - 330 , - 707 , - 1140 , - 61 , - 606 , - 1207 , - 296 , - 1009 , - 210 , - 1035 , - 348 , - 1285 , - 710 , - 191 , - 1296 , - 889 , - 538 , - 243 , - 4 , - 1389 , - 1262 , - 1191 , - 1176 , - 1217 , - 1314 , - 1467 , - 108 , - 373 , - 694 , - 1071 , - 1504 , - 425 , - 970 , - 3 , - 660 , - 1373 , - 574 , - 1399 , - 712 , - 81 , - 1074 , - 555 , - 92 , - 1253 , - 902 , - 607 , - 368 , - 185 , - 58 , - 1555 , - 1540 , - 13 , - 110 , - 263 , - 472 , - 737 , - 1058 , - 1435 , - 300 , - 789 , - 1334 , - 367 , - 1024 , - 169 , - 938 , - 195 , - 1076 , - 445 , - 1438 , - 919 , - 456 , - 49 , - 1266 , - 971 , - 732 , - 549 , - 422 , - 351 , - 336 , - 377 , - 474 , - 627 , - 836 , - 1101 , - 1422 , - 231 , - 664 , - 1153 , - 130 , - 731 , - 1388 , - 533 , - 1302 , - 559 , - 1440 , - 809 , - 234 , - 1283 , - 820 , - 413 , - 62 , - 1335 , - 1096 , - 913 , - 786 , - 715 , - 700 , - 741 , - 838 , - 991 , - 1200 , - 1465 , - 218 , - 595 , - 1028 , - 1517 , - 494 , - 1095 , - 184 , - 897 , - 98 , - 923 , - 236 , - 1173 , - 598 , - 79 , - 1184 , - 777 , - 426 , - 131 , - 1460 , - 1277 , - 1150 , - 1079 , - 1064 , - 1105 , - 1202 , - 1355 , - 1564 , - 261 , - 582 , - 959 , - 1392 , - 313 , - 858 , - 1459 , - 548 , - 1261 , - 462 , - 1287 , - 600 , - 1537 , - 962 , - 443 , - 1548 , - 1141 , - 790 , - 495 , - 256 , - 73 , - 1514 , - 1443 , - 1428 , - 1469 , - 1566 , - 151 , - 360 , - 625 , - 946 , - 1323 , - 188 , - 677 , - 1222 , - 255 , - 912 , - 57 , - 826 , - 83 , - 964 , - 333 , - 1326 , - 807 , - 344 , - 1505 , - 1154 , - 859 , - 620 , - 437 , - 310 , - 239 , - 224 , - 265 , - 362 , - 515 , - 724 , - 989 , - 1310 , - 119 , - 552 , - 1041 , - 18 , - 619 , - 1276 , - 421 , - 1190 , - 447 , - 1328 , - 697 , - 122 , - 1171 , - 708 , - 301 , - 1518 , - 1223 , - 984 , - 801 , - 674 , - 603 , - 588 , - 629 , - 726 , - 879 , - 1088 , - 1353 , - 106 , - 483 , - 916 , - 1405 , - 382 , - 983 , - 72 , - 785 , - 1554 , - 811 , - 124 , - 1061 , - 486 , - 1535 , - 1072 , - 665 , - 314 , - 19 , - 1348 , - 1165 , - 1038 , - 967 , - 952 , - 993 , - 1090 , - 1243 , - 1452 , - 149 , - 470 , - 847 , - 1280 , - 201 , - 746 , - 1347 , - 436 , - 1149 , - 350 , - 1175 , - 488 , - 1425 , - 850 , - 331 , - 1436 , - 1029 , - 678 , - 383 , - 144 , - 1529 , - 1402 , - 1331 , - 1316 , - 1357 , - 1454 , - 39 , - 248 , - 513 , - 834 , - 1211 , - 76 , - 565 , - 1110 , - 143 , - 800 , - 1513 , - 714 , - 1539 , - 852 , - 221 , - 1214 , - 695 , - 232 , - 1393 , - 1042 , - 747 , - 508 , - 325 , - 198 , - 127 , - 112 , - 153 , - 250 , - 403 , - 612 , - 877 , - 1198 , - 7 , - 440 , - 929 , - 1474 , - 507 , - 1164 , - 309 , - 1078 , - 335 , - 1216 , - 585 , - 10 , - 1059 , - 596 , - 189 , - 1406 , - 1111 , - 872 , - 689 , - 562 , - 491 , - 476 , - 517 , - 614 , - 767 , - 976 , - 1241 , - 1562 , - 371 , - 804 , - 1293 , - 270 , - 871 , - 1528 , - 673 , - 1442 , - 699 , - 12 , - 949 , - 374 , - 1423 , - 960 , - 553 , - 202 , - 1475 , - 1236 , - 1053 , - 926 , - 855 , - 840 , - 881 , - 978 , - 1131 , - 1340 , - 37 , - 358 , - 735 , - 1168 , - 89 , - 634 , - 1235 , - 324 , - 1037 , - 238 , - 1063 , - 376 , - 1313 , - 738 , - 219 , - 1324 , - 917 , - 566 , - 271 , - 32 , - 1417 , - 1290 , - 1219 , - 1204 , - 1245 , - 1342 , - 1495 , - 136 , - 401 , - 722 , - 1099 , - 1532 , - 453 , - 998 , - 31 , - 688 , - 1401 , - 602 , - 1427 , - 740 , - 109 , - 1102 , - 583 , - 120 , - 1281 , - 930 , - 635 , - 396 , - 213 , - 86 , - 15 , - 0 , - 97 , - 354 , - 771 , - 1348 , - 485 , - 1382 , - 839 , - 456 , - 233 , - 170 , - 267 , - 524 , - 941 , - 1518 , - 655 , - 1552 , - 1009 , - 626 , - 403 , - 340 , - 437 , - 694 , - 1111 , - 88 , - 825 , - 122 , - 1179 , - 796 , - 573 , - 510 , - 607 , - 864 , - 1281 , - 258 , - 995 , - 292 , - 1349 , - 966 , - 743 , - 680 , - 777 , - 1034 , - 1451 , - 428 , - 1165 , - 462 , - 1519 , - 1136 , - 913 , - 850 , - 947 , - 1204 , - 21 , - 598 , - 1335 , - 632 , - 89 , - 1306 , - 1083 , - 1020 , - 1117 , - 1374 , - 191 , - 768 , - 1505 , - 802 , - 259 , - 1476 , - 1253 , - 1190 , - 1287 , - 1544 , - 361 , - 938 , - 75 , - 972 , - 429 , - 46 , - 1423 , - 1360 , - 1457 , - 114 , - 531 , - 1108 , - 245 , - 1142 , - 599 , - 216 , - 1593 , - 1530 , - 27 , - 284 , - 701 , - 1278 , - 415 , - 1312 , - 769 , - 386 , - 163 , - 100 , - 197 , - 454 , - 871 , - 1448 , - 585 , - 1482 , - 939 , - 556 , - 333 , - 270 , - 367 , - 624 , - 1041 , - 18 , - 755 , - 52 , - 1109 , - 726 , - 503 , - 440 , - 537 , - 794 , - 1211 , - 188 , - 925 , - 222 , - 1279 , - 896 , - 673 , - 610 , - 707 , - 964 , - 1381 , - 358 , - 1095 , - 392 , - 1449 , - 1066 , - 843 , - 780 , - 877 , - 1134 , - 1551 , - 528 , - 1265 , - 562 , - 19 , - 1236 , - 1013 , - 950 , - 1047 , - 1304 , - 121 , - 698 , - 1435 , - 732 , - 189 , - 1406 , - 1183 , - 1120 , - 1217 , - 1474 , - 291 , - 868 , - 5 , - 902 , - 359 , - 1576 , - 1353 , - 1290 , - 1387 , - 44 , - 461 , - 1038 , - 175 , - 1072 , - 529 , - 146 , - 1523 , - 1460 , - 1557 , - 214 , - 631 , - 1208 , - 345 , - 1242 , - 699 , - 316 , - 93 , - 30 , - 127 , - 384 , - 801 , - 1378 , - 515 , - 1412 , - 869 , - 486 , - 263 , - 200 , - 297 , - 554 , - 971 , - 1548 , - 685 , - 1582 , - 1039 , - 656 , - 433 , - 370 , - 467 , - 724 , - 1141 , - 118 , - 855 , - 152 , - 1209 , - 826 , - 603 , - 540 , - 637 , - 894 , - 1311 , - 288 , - 1025 , - 322 , - 1379 , - 996 , - 773 , - 710 , - 807 , - 1064 , - 1481 , - 458 , - 1195 , - 492 , - 1549 , - 1166 , - 943 , - 880 , - 977 , - 1234 , - 51 , - 628 , - 1365 , - 662 , - 119 , - 1336 , - 1113 , - 1050 , - 1147 , - 1404 , - 221 , - 798 , - 1535 , - 832 , - 289 , - 1506 , - 1283 , - 1220 , - 1317 , - 1574 , - 391 , - 968 , - 105 , - 1002 , - 459 , - 76 , - 1453 , - 1390 , - 1487 , - 144 , - 561 , - 1138 , - 275 , - 1172 , - 629 , - 246 , - 23 , - 1560 , - 57 , - 314 , - 731 , - 1308 , - 445 , - 1342 , - 799 , - 416 , - 193 , - 130 , - 227 , - 484 , - 901 , - 1478 , - 615 , - 1512 , - 969 , - 586 , - 363 , - 300 , - 397 , - 654 , - 1071 , - 48 , - 785 , - 82 , - 1139 , - 756 , - 533 , - 470 , - 567 , - 824 , - 1241 , - 218 , - 955 , - 252 , - 1309 , - 926 , - 703 , - 640 , - 737 , - 994 , - 1411 , - 388 , - 1125 , - 422 , - 1479 , - 1096 , - 873 , - 810 , - 907 , - 1164 , - 1581 , - 558 , - 1295 , - 592 , - 49 , - 1266 , - 1043 , - 980 , - 1077 , - 1334 , - 151 , - 728 , - 1465 , - 762 , - 219 , - 1436 , - 1213 , - 1150 , - 1247 , - 1504 , - 321 , - 898 , - 35 , - 932 , - 389 , - 6 , - 1383 , - 1320 , - 1417 , - 74 , - 491 , - 1068 , - 205 , - 1102 , - 559 , - 176 , - 1553 , - 1490 , - 1587 , - 244 , - 661 , - 1238 , - 375 , - 1272 , - 729 , - 346 , - 123 , - 60 , - 157 , - 414 , - 831 , - 1408 , - 545 , - 1442 , - 899 , - 516 , - 293 , - 230 , - 327 , - 584 , - 1001 , - 1578 , - 715 , - 12 , - 1069 , - 686 , - 463 , - 400 , - 497 , - 754 , - 1171 , - 148 , - 885 , - 182 , - 1239 , - 856 , - 633 , - 570 , - 667 , - 924 , - 1341 , - 318 , - 1055 , - 352 , - 1409 , - 1026 , - 803 , - 740 , - 837 , - 1094 , - 1511 , - 488 , - 1225 , - 522 , - 1579 , - 1196 , - 973 , - 910 , - 1007 , - 1264 , - 81 , - 658 , - 1395 , - 692 , - 149 , - 1366 , - 1143 , - 1080 , - 1177 , - 1434 , - 251 , - 828 , - 1565 , - 862 , - 319 , - 1536 , - 1313 , - 1250 , - 1347 , - 4 , - 421 , - 998 , - 135 , - 1032 , - 489 , - 106 , - 1483 , - 1420 , - 1517 , - 174 , - 591 , - 1168 , - 305 , - 1202 , - 659 , - 276 , - 53 , - 1590 , - 87 , - 344 , - 761 , - 1338 , - 475 , - 1372 , - 829 , - 446 , - 223 , - 160 , - 257 , - 514 , - 931 , - 1508 , - 645 , - 1542 , - 999 , - 616 , - 393 , - 330 , - 427 , - 684 , - 1101 , - 78 , - 815 , - 112 , - 1169 , - 786 , - 563 , - 500 , - 597 , - 854 , - 1271 , - 248 , - 985 , - 282 , - 1339 , - 956 , - 733 , - 670 , - 767 , - 1024 , - 1441 , - 418 , - 1155 , - 452 , - 1509 , - 1126 , - 903 , - 840 , - 937 , - 1194 , - 11 , - 588 , - 1325 , - 622 , - 79 , - 1296 , - 1073 , - 1010 , - 1107 , - 1364 , - 181 , - 758 , - 1495 , - 792 , - 249 , - 1466 , - 1243 , - 1180 , - 1277 , - 1534 , - 351 , - 928 , - 65 , - 962 , - 419 , - 36 , - 1413 , - 1350 , - 1447 , - 104 , - 521 , - 1098 , - 235 , - 1132 , - 589 , - 206 , - 1583 , - 1520 , - 17 , - 274 , - 691 , - 1268 , - 405 , - 1302 , - 759 , - 376 , - 153 , - 90 , - 187 , - 444 , - 861 , - 1438 , - 575 , - 1472 , - 929 , - 546 , - 323 , - 260 , - 357 , - 614 , - 1031 , - 8 , - 745 , - 42 , - 1099 , - 716 , - 493 , - 430 , - 527 , - 784 , - 1201 , - 178 , - 915 , - 212 , - 1269 , - 886 , - 663 , - 600 , - 697 , - 954 , - 1371 , - 348 , - 1085 , - 382 , - 1439 , - 1056 , - 833 , - 770 , - 867 , - 1124 , - 1541 , - 518 , - 1255 , - 552 , - 9 , - 1226 , - 1003 , - 940 , - 1037 , - 1294 , - 111 , - 688 , - 1425 , - 722 , - 179 , - 1396 , - 1173 , - 1110 , - 1207 , - 1464 , - 281 , - 858 , - 1595 , - 892 , - 349 , - 1566 , - 1343 , - 1280 , - 1377 , - 34 , - 451 , - 1028 , - 165 , - 1062 , - 519 , - 136 , - 1513 , - 1450 , - 1547 , - 204 , - 621 , - 1198 , - 335 , - 1232 , - 689 , - 306 , - 83 , - 20 , - 117 , - 374 , - 791 , - 1368 , - 505 , - 1402 , - 859 , - 476 , - 253 , - 190 , - 287 , - 544 , - 961 , - 1538 , - 675 , - 1572 , - 1029 , - 646 , - 423 , - 360 , - 457 , - 714 , - 1131 , - 108 , - 845 , - 142 , - 1199 , - 816 , - 593 , - 530 , - 627 , - 884 , - 1301 , - 278 , - 1015 , - 312 , - 1369 , - 986 , - 763 , - 700 , - 797 , - 1054 , - 1471 , - 448 , - 1185 , - 482 , - 1539 , - 1156 , - 933 , - 870 , - 967 , - 1224 , - 41 , - 618 , - 1355 , - 652 , - 109 , - 1326 , - 1103 , - 1040 , - 1137 , - 1394 , - 211 , - 788 , - 1525 , - 822 , - 279 , - 1496 , - 1273 , - 1210 , - 1307 , - 1564 , - 381 , - 958 , - 95 , - 992 , - 449 , - 66 , - 1443 , - 1380 , - 1477 , - 134 , - 551 , - 1128 , - 265 , - 1162 , - 619 , - 236 , - 13 , - 1550 , - 47 , - 304 , - 721 , - 1298 , - 435 , - 1332 , - 789 , - 406 , - 183 , - 120 , - 217 , - 474 , - 891 , - 1468 , - 605 , - 1502 , - 959 , - 576 , - 353 , - 290 , - 387 , - 644 , - 1061 , - 38 , - 775 , - 72 , - 1129 , - 746 , - 523 , - 460 , - 557 , - 814 , - 1231 , - 208 , - 945 , - 242 , - 1299 , - 916 , - 693 , - 630 , - 727 , - 984 , - 1401 , - 378 , - 1115 , - 412 , - 1469 , - 1086 , - 863 , - 800 , - 897 , - 1154 , - 1571 , - 548 , - 1285 , - 582 , - 39 , - 1256 , - 1033 , - 970 , - 1067 , - 1324 , - 141 , - 718 , - 1455 , - 752 , - 209 , - 1426 , - 1203 , - 1140 , - 1237 , - 1494 , - 311 , - 888 , - 25 , - 922 , - 379 , - 1596 , - 1373 , - 1310 , - 1407 , - 64 , - 481 , - 1058 , - 195 , - 1092 , - 549 , - 166 , - 1543 , - 1480 , - 1577 , - 234 , - 651 , - 1228 , - 365 , - 1262 , - 719 , - 336 , - 113 , - 50 , - 147 , - 404 , - 821 , - 1398 , - 535 , - 1432 , - 889 , - 506 , - 283 , - 220 , - 317 , - 574 , - 991 , - 1568 , - 705 , - 2 , - 1059 , - 676 , - 453 , - 390 , - 487 , - 744 , - 1161 , - 138 , - 875 , - 172 , - 1229 , - 846 , - 623 , - 560 , - 657 , - 914 , - 1331 , - 308 , - 1045 , - 342 , - 1399 , - 1016 , - 793 , - 730 , - 827 , - 1084 , - 1501 , - 478 , - 1215 , - 512 , - 1569 , - 1186 , - 963 , - 900 , - 997 , - 1254 , - 71 , - 648 , - 1385 , - 682 , - 139 , - 1356 , - 1133 , - 1070 , - 1167 , - 1424 , - 241 , - 818 , - 1555 , - 852 , - 309 , - 1526 , - 1303 , - 1240 , - 1337 , - 1594 , - 411 , - 988 , - 125 , - 1022 , - 479 , - 96 , - 1473 , - 1410 , - 1507 , - 164 , - 581 , - 1158 , - 295 , - 1192 , - 649 , - 266 , - 43 , - 1580 , - 77 , - 334 , - 751 , - 1328 , - 465 , - 1362 , - 819 , - 436 , - 213 , - 150 , - 247 , - 504 , - 921 , - 1498 , - 635 , - 1532 , - 989 , - 606 , - 383 , - 320 , - 417 , - 674 , - 1091 , - 68 , - 805 , - 102 , - 1159 , - 776 , - 553 , - 490 , - 587 , - 844 , - 1261 , - 238 , - 975 , - 272 , - 1329 , - 946 , - 723 , - 660 , - 757 , - 1014 , - 1431 , - 408 , - 1145 , - 442 , - 1499 , - 1116 , - 893 , - 830 , - 927 , - 1184 , - 1 , - 578 , - 1315 , - 612 , - 69 , - 1286 , - 1063 , - 1000 , - 1097 , - 1354 , - 171 , - 748 , - 1485 , - 782 , - 239 , - 1456 , - 1233 , - 1170 , - 1267 , - 1524 , - 341 , - 918 , - 55 , - 952 , - 409 , - 26 , - 1403 , - 1340 , - 1437 , - 94 , - 511 , - 1088 , - 225 , - 1122 , - 579 , - 196 , - 1573 , - 1510 , - 7 , - 264 , - 681 , - 1258 , - 395 , - 1292 , - 749 , - 366 , - 143 , - 80 , - 177 , - 434 , - 851 , - 1428 , - 565 , - 1462 , - 919 , - 536 , - 313 , - 250 , - 347 , - 604 , - 1021 , - 1598 , - 735 , - 32 , - 1089 , - 706 , - 483 , - 420 , - 517 , - 774 , - 1191 , - 168 , - 905 , - 202 , - 1259 , - 876 , - 653 , - 590 , - 687 , - 944 , - 1361 , - 338 , - 1075 , - 372 , - 1429 , - 1046 , - 823 , - 760 , - 857 , - 1114 , - 1531 , - 508 , - 1245 , - 542 , - 1599 , - 1216 , - 993 , - 930 , - 1027 , - 1284 , - 101 , - 678 , - 1415 , - 712 , - 169 , - 1386 , - 1163 , - 1100 , - 1197 , - 1454 , - 271 , - 848 , - 1585 , - 882 , - 339 , - 1556 , - 1333 , - 1270 , - 1367 , - 24 , - 441 , - 1018 , - 155 , - 1052 , - 509 , - 126 , - 1503 , - 1440 , - 1537 , - 194 , - 611 , - 1188 , - 325 , - 1222 , - 679 , - 296 , - 73 , - 10 , - 107 , - 364 , - 781 , - 1358 , - 495 , - 1392 , - 849 , - 466 , - 243 , - 180 , - 277 , - 534 , - 951 , - 1528 , - 665 , - 1562 , - 1019 , - 636 , - 413 , - 350 , - 447 , - 704 , - 1121 , - 98 , - 835 , - 132 , - 1189 , - 806 , - 583 , - 520 , - 617 , - 874 , - 1291 , - 268 , - 1005 , - 302 , - 1359 , - 976 , - 753 , - 690 , - 787 , - 1044 , - 1461 , - 438 , - 1175 , - 472 , - 1529 , - 1146 , - 923 , - 860 , - 957 , - 1214 , - 31 , - 608 , - 1345 , - 642 , - 99 , - 1316 , - 1093 , - 1030 , - 1127 , - 1384 , - 201 , - 778 , - 1515 , - 812 , - 269 , - 1486 , - 1263 , - 1200 , - 1297 , - 1554 , - 371 , - 948 , - 85 , - 982 , - 439 , - 56 , - 1433 , - 1370 , - 1467 , - 124 , - 541 , - 1118 , - 255 , - 1152 , - 609 , - 226 , - 3 , - 1540 , - 37 , - 294 , - 711 , - 1288 , - 425 , - 1322 , - 779 , - 396 , - 173 , - 110 , - 207 , - 464 , - 881 , - 1458 , - 595 , - 1492 , - 949 , - 566 , - 343 , - 280 , - 377 , - 634 , - 1051 , - 28 , - 765 , - 62 , - 1119 , - 736 , - 513 , - 450 , - 547 , - 804 , - 1221 , - 198 , - 935 , - 232 , - 1289 , - 906 , - 683 , - 620 , - 717 , - 974 , - 1391 , - 368 , - 1105 , - 402 , - 1459 , - 1076 , - 853 , - 790 , - 887 , - 1144 , - 1561 , - 538 , - 1275 , - 572 , - 29 , - 1246 , - 1023 , - 960 , - 1057 , - 1314 , - 131 , - 708 , - 1445 , - 742 , - 199 , - 1416 , - 1193 , - 1130 , - 1227 , - 1484 , - 301 , - 878 , - 15 , - 912 , - 369 , - 1586 , - 1363 , - 1300 , - 1397 , - 54 , - 471 , - 1048 , - 185 , - 1082 , - 539 , - 156 , - 1533 , - 1470 , - 1567 , - 224 , - 641 , - 1218 , - 355 , - 1252 , - 709 , - 326 , - 103 , - 40 , - 137 , - 394 , - 811 , - 1388 , - 525 , - 1422 , - 879 , - 496 , - 273 , - 210 , - 307 , - 564 , - 981 , - 1558 , - 695 , - 1592 , - 1049 , - 666 , - 443 , - 380 , - 477 , - 734 , - 1151 , - 128 , - 865 , - 162 , - 1219 , - 836 , - 613 , - 550 , - 647 , - 904 , - 1321 , - 298 , - 1035 , - 332 , - 1389 , - 1006 , - 783 , - 720 , - 817 , - 1074 , - 1491 , - 468 , - 1205 , - 502 , - 1559 , - 1176 , - 953 , - 890 , - 987 , - 1244 , - 61 , - 638 , - 1375 , - 672 , - 129 , - 1346 , - 1123 , - 1060 , - 1157 , - 1414 , - 231 , - 808 , - 1545 , - 842 , - 299 , - 1516 , - 1293 , - 1230 , - 1327 , - 1584 , - 401 , - 978 , - 115 , - 1012 , - 469 , - 86 , - 1463 , - 1400 , - 1497 , - 154 , - 571 , - 1148 , - 285 , - 1182 , - 639 , - 256 , - 33 , - 1570 , - 67 , - 324 , - 741 , - 1318 , - 455 , - 1352 , - 809 , - 426 , - 203 , - 140 , - 237 , - 494 , - 911 , - 1488 , - 625 , - 1522 , - 979 , - 596 , - 373 , - 310 , - 407 , - 664 , - 1081 , - 58 , - 795 , - 92 , - 1149 , - 766 , - 543 , - 480 , - 577 , - 834 , - 1251 , - 228 , - 965 , - 262 , - 1319 , - 936 , - 713 , - 650 , - 747 , - 1004 , - 1421 , - 398 , - 1135 , - 432 , - 1489 , - 1106 , - 883 , - 820 , - 917 , - 1174 , - 1591 , - 568 , - 1305 , - 602 , - 59 , - 1276 , - 1053 , - 990 , - 1087 , - 1344 , - 161 , - 738 , - 1475 , - 772 , - 229 , - 1446 , - 1223 , - 1160 , - 1257 , - 1514 , - 331 , - 908 , - 45 , - 942 , - 399 , - 16 , - 1393 , - 1330 , - 1427 , - 84 , - 501 , - 1078 , - 215 , - 1112 , - 569 , - 186 , - 1563 , - 1500 , - 1597 , - 254 , - 671 , - 1248 , - 385 , - 1282 , - 739 , - 356 , - 133 , - 70 , - 167 , - 424 , - 841 , - 1418 , - 555 , - 1452 , - 909 , - 526 , - 303 , - 240 , - 337 , - 594 , - 1011 , - 1588 , - 725 , - 22 , - 1079 , - 696 , - 473 , - 410 , - 507 , - 764 , - 1181 , - 158 , - 895 , - 192 , - 1249 , - 866 , - 643 , - 580 , - 677 , - 934 , - 1351 , - 328 , - 1065 , - 362 , - 1419 , - 1036 , - 813 , - 750 , - 847 , - 1104 , - 1521 , - 498 , - 1235 , - 532 , - 1589 , - 1206 , - 983 , - 920 , - 1017 , - 1274 , - 91 , - 668 , - 1405 , - 702 , - 159 , - 1376 , - 1153 , - 1090 , - 1187 , - 1444 , - 261 , - 838 , - 1575 , - 872 , - 329 , - 1546 , - 1323 , - 1260 , - 1357 , - 14 , - 431 , - 1008 , - 145 , - 1042 , - 499 , - 116 , - 1493 , - 1430 , - 1527 , - 184 , - 601 , - 1178 , - 315 , - 1212 , - 669 , - 286 , - 63 , - 0 , - 127 , - 458 , - 993 , - 100 , - 1043 , - 558 , - 277 , - 200 , - 327 , - 658 , - 1193 , - 300 , - 1243 , - 758 , - 477 , - 400 , - 527 , - 858 , - 1393 , - 500 , - 1443 , - 958 , - 677 , - 600 , - 727 , - 1058 , - 1593 , - 700 , - 11 , - 1158 , - 877 , - 800 , - 927 , - 1258 , - 161 , - 900 , - 211 , - 1358 , - 1077 , - 1000 , - 1127 , - 1458 , - 361 , - 1100 , - 411 , - 1558 , - 1277 , - 1200 , - 1327 , - 26 , - 561 , - 1300 , - 611 , - 126 , - 1477 , - 1400 , - 1527 , - 226 , - 761 , - 1500 , - 811 , - 326 , - 45 , - 1600 , - 95 , - 426 , - 961 , - 68 , - 1011 , - 526 , - 245 , - 168 , - 295 , - 626 , - 1161 , - 268 , - 1211 , - 726 , - 445 , - 368 , - 495 , - 826 , - 1361 , - 468 , - 1411 , - 926 , - 645 , - 568 , - 695 , - 1026 , - 1561 , - 668 , - 1611 , - 1126 , - 845 , - 768 , - 895 , - 1226 , - 129 , - 868 , - 179 , - 1326 , - 1045 , - 968 , - 1095 , - 1426 , - 329 , - 1068 , - 379 , - 1526 , - 1245 , - 1168 , - 1295 , - 1626 , - 529 , - 1268 , - 579 , - 94 , - 1445 , - 1368 , - 1495 , - 194 , - 729 , - 1468 , - 779 , - 294 , - 13 , - 1568 , - 63 , - 394 , - 929 , - 36 , - 979 , - 494 , - 213 , - 136 , - 263 , - 594 , - 1129 , - 236 , - 1179 , - 694 , - 413 , - 336 , - 463 , - 794 , - 1329 , - 436 , - 1379 , - 894 , - 613 , - 536 , - 663 , - 994 , - 1529 , - 636 , - 1579 , - 1094 , - 813 , - 736 , - 863 , - 1194 , - 97 , - 836 , - 147 , - 1294 , - 1013 , - 936 , - 1063 , - 1394 , - 297 , - 1036 , - 347 , - 1494 , - 1213 , - 1136 , - 1263 , - 1594 , - 497 , - 1236 , - 547 , - 62 , - 1413 , - 1336 , - 1463 , - 162 , - 697 , - 1436 , - 747 , - 262 , - 1613 , - 1536 , - 31 , - 362 , - 897 , - 4 , - 947 , - 462 , - 181 , - 104 , - 231 , - 562 , - 1097 , - 204 , - 1147 , - 662 , - 381 , - 304 , - 431 , - 762 , - 1297 , - 404 , - 1347 , - 862 , - 581 , - 504 , - 631 , - 962 , - 1497 , - 604 , - 1547 , - 1062 , - 781 , - 704 , - 831 , - 1162 , - 65 , - 804 , - 115 , - 1262 , - 981 , - 904 , - 1031 , - 1362 , - 265 , - 1004 , - 315 , - 1462 , - 1181 , - 1104 , - 1231 , - 1562 , - 465 , - 1204 , - 515 , - 30 , - 1381 , - 1304 , - 1431 , - 130 , - 665 , - 1404 , - 715 , - 230 , - 1581 , - 1504 , - 1631 , - 330 , - 865 , - 1604 , - 915 , - 430 , - 149 , - 72 , - 199 , - 530 , - 1065 , - 172 , - 1115 , - 630 , - 349 , - 272 , - 399 , - 730 , - 1265 , - 372 , - 1315 , - 830 , - 549 , - 472 , - 599 , - 930 , - 1465 , - 572 , - 1515 , - 1030 , - 749 , - 672 , - 799 , - 1130 , - 33 , - 772 , - 83 , - 1230 , - 949 , - 872 , - 999 , - 1330 , - 233 , - 972 , - 283 , - 1430 , - 1149 , - 1072 , - 1199 , - 1530 , - 433 , - 1172 , - 483 , - 1630 , - 1349 , - 1272 , - 1399 , - 98 , - 633 , - 1372 , - 683 , - 198 , - 1549 , - 1472 , - 1599 , - 298 , - 833 , - 1572 , - 883 , - 398 , - 117 , - 40 , - 167 , - 498 , - 1033 , - 140 , - 1083 , - 598 , - 317 , - 240 , - 367 , - 698 , - 1233 , - 340 , - 1283 , - 798 , - 517 , - 440 , - 567 , - 898 , - 1433 , - 540 , - 1483 , - 998 , - 717 , - 640 , - 767 , - 1098 , - 1 , - 740 , - 51 , - 1198 , - 917 , - 840 , - 967 , - 1298 , - 201 , - 940 , - 251 , - 1398 , - 1117 , - 1040 , - 1167 , - 1498 , - 401 , - 1140 , - 451 , - 1598 , - 1317 , - 1240 , - 1367 , - 66 , - 601 , - 1340 , - 651 , - 166 , - 1517 , - 1440 , - 1567 , - 266 , - 801 , - 1540 , - 851 , - 366 , - 85 , - 8 , - 135 , - 466 , - 1001 , - 108 , - 1051 , - 566 , - 285 , - 208 , - 335 , - 666 , - 1201 , - 308 , - 1251 , - 766 , - 485 , - 408 , - 535 , - 866 , - 1401 , - 508 , - 1451 , - 966 , - 685 , - 608 , - 735 , - 1066 , - 1601 , - 708 , - 19 , - 1166 , - 885 , - 808 , - 935 , - 1266 , - 169 , - 908 , - 219 , - 1366 , - 1085 , - 1008 , - 1135 , - 1466 , - 369 , - 1108 , - 419 , - 1566 , - 1285 , - 1208 , - 1335 , - 34 , - 569 , - 1308 , - 619 , - 134 , - 1485 , - 1408 , - 1535 , - 234 , - 769 , - 1508 , - 819 , - 334 , - 53 , - 1608 , - 103 , - 434 , - 969 , - 76 , - 1019 , - 534 , - 253 , - 176 , - 303 , - 634 , - 1169 , - 276 , - 1219 , - 734 , - 453 , - 376 , - 503 , - 834 , - 1369 , - 476 , - 1419 , - 934 , - 653 , - 576 , - 703 , - 1034 , - 1569 , - 676 , - 1619 , - 1134 , - 853 , - 776 , - 903 , - 1234 , - 137 , - 876 , - 187 , - 1334 , - 1053 , - 976 , - 1103 , - 1434 , - 337 , - 1076 , - 387 , - 1534 , - 1253 , - 1176 , - 1303 , - 2 , - 537 , - 1276 , - 587 , - 102 , - 1453 , - 1376 , - 1503 , - 202 , - 737 , - 1476 , - 787 , - 302 , - 21 , - 1576 , - 71 , - 402 , - 937 , - 44 , - 987 , - 502 , - 221 , - 144 , - 271 , - 602 , - 1137 , - 244 , - 1187 , - 702 , - 421 , - 344 , - 471 , - 802 , - 1337 , - 444 , - 1387 , - 902 , - 621 , - 544 , - 671 , - 1002 , - 1537 , - 644 , - 1587 , - 1102 , - 821 , - 744 , - 871 , - 1202 , - 105 , - 844 , - 155 , - 1302 , - 1021 , - 944 , - 1071 , - 1402 , - 305 , - 1044 , - 355 , - 1502 , - 1221 , - 1144 , - 1271 , - 1602 , - 505 , - 1244 , - 555 , - 70 , - 1421 , - 1344 , - 1471 , - 170 , - 705 , - 1444 , - 755 , - 270 , - 1621 , - 1544 , - 39 , - 370 , - 905 , - 12 , - 955 , - 470 , - 189 , - 112 , - 239 , - 570 , - 1105 , - 212 , - 1155 , - 670 , - 389 , - 312 , - 439 , - 770 , - 1305 , - 412 , - 1355 , - 870 , - 589 , - 512 , - 639 , - 970 , - 1505 , - 612 , - 1555 , - 1070 , - 789 , - 712 , - 839 , - 1170 , - 73 , - 812 , - 123 , - 1270 , - 989 , - 912 , - 1039 , - 1370 , - 273 , - 1012 , - 323 , - 1470 , - 1189 , - 1112 , - 1239 , - 1570 , - 473 , - 1212 , - 523 , - 38 , - 1389 , - 1312 , - 1439 , - 138 , - 673 , - 1412 , - 723 , - 238 , - 1589 , - 1512 , - 7 , - 338 , - 873 , - 1612 , - 923 , - 438 , - 157 , - 80 , - 207 , - 538 , - 1073 , - 180 , - 1123 , - 638 , - 357 , - 280 , - 407 , - 738 , - 1273 , - 380 , - 1323 , - 838 , - 557 , - 480 , - 607 , - 938 , - 1473 , - 580 , - 1523 , - 1038 , - 757 , - 680 , - 807 , - 1138 , - 41 , - 780 , - 91 , - 1238 , - 957 , - 880 , - 1007 , - 1338 , - 241 , - 980 , - 291 , - 1438 , - 1157 , - 1080 , - 1207 , - 1538 , - 441 , - 1180 , - 491 , - 6 , - 1357 , - 1280 , - 1407 , - 106 , - 641 , - 1380 , - 691 , - 206 , - 1557 , - 1480 , - 1607 , - 306 , - 841 , - 1580 , - 891 , - 406 , - 125 , - 48 , - 175 , - 506 , - 1041 , - 148 , - 1091 , - 606 , - 325 , - 248 , - 375 , - 706 , - 1241 , - 348 , - 1291 , - 806 , - 525 , - 448 , - 575 , - 906 , - 1441 , - 548 , - 1491 , - 1006 , - 725 , - 648 , - 775 , - 1106 , - 9 , - 748 , - 59 , - 1206 , - 925 , - 848 , - 975 , - 1306 , - 209 , - 948 , - 259 , - 1406 , - 1125 , - 1048 , - 1175 , - 1506 , - 409 , - 1148 , - 459 , - 1606 , - 1325 , - 1248 , - 1375 , - 74 , - 609 , - 1348 , - 659 , - 174 , - 1525 , - 1448 , - 1575 , - 274 , - 809 , - 1548 , - 859 , - 374 , - 93 , - 16 , - 143 , - 474 , - 1009 , - 116 , - 1059 , - 574 , - 293 , - 216 , - 343 , - 674 , - 1209 , - 316 , - 1259 , - 774 , - 493 , - 416 , - 543 , - 874 , - 1409 , - 516 , - 1459 , - 974 , - 693 , - 616 , - 743 , - 1074 , - 1609 , - 716 , - 27 , - 1174 , - 893 , - 816 , - 943 , - 1274 , - 177 , - 916 , - 227 , - 1374 , - 1093 , - 1016 , - 1143 , - 1474 , - 377 , - 1116 , - 427 , - 1574 , - 1293 , - 1216 , - 1343 , - 42 , - 577 , - 1316 , - 627 , - 142 , - 1493 , - 1416 , - 1543 , - 242 , - 777 , - 1516 , - 827 , - 342 , - 61 , - 1616 , - 111 , - 442 , - 977 , - 84 , - 1027 , - 542 , - 261 , - 184 , - 311 , - 642 , - 1177 , - 284 , - 1227 , - 742 , - 461 , - 384 , - 511 , - 842 , - 1377 , - 484 , - 1427 , - 942 , - 661 , - 584 , - 711 , - 1042 , - 1577 , - 684 , - 1627 , - 1142 , - 861 , - 784 , - 911 , - 1242 , - 145 , - 884 , - 195 , - 1342 , - 1061 , - 984 , - 1111 , - 1442 , - 345 , - 1084 , - 395 , - 1542 , - 1261 , - 1184 , - 1311 , - 10 , - 545 , - 1284 , - 595 , - 110 , - 1461 , - 1384 , - 1511 , - 210 , - 745 , - 1484 , - 795 , - 310 , - 29 , - 1584 , - 79 , - 410 , - 945 , - 52 , - 995 , - 510 , - 229 , - 152 , - 279 , - 610 , - 1145 , - 252 , - 1195 , - 710 , - 429 , - 352 , - 479 , - 810 , - 1345 , - 452 , - 1395 , - 910 , - 629 , - 552 , - 679 , - 1010 , - 1545 , - 652 , - 1595 , - 1110 , - 829 , - 752 , - 879 , - 1210 , - 113 , - 852 , - 163 , - 1310 , - 1029 , - 952 , - 1079 , - 1410 , - 313 , - 1052 , - 363 , - 1510 , - 1229 , - 1152 , - 1279 , - 1610 , - 513 , - 1252 , - 563 , - 78 , - 1429 , - 1352 , - 1479 , - 178 , - 713 , - 1452 , - 763 , - 278 , - 1629 , - 1552 , - 47 , - 378 , - 913 , - 20 , - 963 , - 478 , - 197 , - 120 , - 247 , - 578 , - 1113 , - 220 , - 1163 , - 678 , - 397 , - 320 , - 447 , - 778 , - 1313 , - 420 , - 1363 , - 878 , - 597 , - 520 , - 647 , - 978 , - 1513 , - 620 , - 1563 , - 1078 , - 797 , - 720 , - 847 , - 1178 , - 81 , - 820 , - 131 , - 1278 , - 997 , - 920 , - 1047 , - 1378 , - 281 , - 1020 , - 331 , - 1478 , - 1197 , - 1120 , - 1247 , - 1578 , - 481 , - 1220 , - 531 , - 46 , - 1397 , - 1320 , - 1447 , - 146 , - 681 , - 1420 , - 731 , - 246 , - 1597 , - 1520 , - 15 , - 346 , - 881 , - 1620 , - 931 , - 446 , - 165 , - 88 , - 215 , - 546 , - 1081 , - 188 , - 1131 , - 646 , - 365 , - 288 , - 415 , - 746 , - 1281 , - 388 , - 1331 , - 846 , - 565 , - 488 , - 615 , - 946 , - 1481 , - 588 , - 1531 , - 1046 , - 765 , - 688 , - 815 , - 1146 , - 49 , - 788 , - 99 , - 1246 , - 965 , - 888 , - 1015 , - 1346 , - 249 , - 988 , - 299 , - 1446 , - 1165 , - 1088 , - 1215 , - 1546 , - 449 , - 1188 , - 499 , - 14 , - 1365 , - 1288 , - 1415 , - 114 , - 649 , - 1388 , - 699 , - 214 , - 1565 , - 1488 , - 1615 , - 314 , - 849 , - 1588 , - 899 , - 414 , - 133 , - 56 , - 183 , - 514 , - 1049 , - 156 , - 1099 , - 614 , - 333 , - 256 , - 383 , - 714 , - 1249 , - 356 , - 1299 , - 814 , - 533 , - 456 , - 583 , - 914 , - 1449 , - 556 , - 1499 , - 1014 , - 733 , - 656 , - 783 , - 1114 , - 17 , - 756 , - 67 , - 1214 , - 933 , - 856 , - 983 , - 1314 , - 217 , - 956 , - 267 , - 1414 , - 1133 , - 1056 , - 1183 , - 1514 , - 417 , - 1156 , - 467 , - 1614 , - 1333 , - 1256 , - 1383 , - 82 , - 617 , - 1356 , - 667 , - 182 , - 1533 , - 1456 , - 1583 , - 282 , - 817 , - 1556 , - 867 , - 382 , - 101 , - 24 , - 151 , - 482 , - 1017 , - 124 , - 1067 , - 582 , - 301 , - 224 , - 351 , - 682 , - 1217 , - 324 , - 1267 , - 782 , - 501 , - 424 , - 551 , - 882 , - 1417 , - 524 , - 1467 , - 982 , - 701 , - 624 , - 751 , - 1082 , - 1617 , - 724 , - 35 , - 1182 , - 901 , - 824 , - 951 , - 1282 , - 185 , - 924 , - 235 , - 1382 , - 1101 , - 1024 , - 1151 , - 1482 , - 385 , - 1124 , - 435 , - 1582 , - 1301 , - 1224 , - 1351 , - 50 , - 585 , - 1324 , - 635 , - 150 , - 1501 , - 1424 , - 1551 , - 250 , - 785 , - 1524 , - 835 , - 350 , - 69 , - 1624 , - 119 , - 450 , - 985 , - 92 , - 1035 , - 550 , - 269 , - 192 , - 319 , - 650 , - 1185 , - 292 , - 1235 , - 750 , - 469 , - 392 , - 519 , - 850 , - 1385 , - 492 , - 1435 , - 950 , - 669 , - 592 , - 719 , - 1050 , - 1585 , - 692 , - 3 , - 1150 , - 869 , - 792 , - 919 , - 1250 , - 153 , - 892 , - 203 , - 1350 , - 1069 , - 992 , - 1119 , - 1450 , - 353 , - 1092 , - 403 , - 1550 , - 1269 , - 1192 , - 1319 , - 18 , - 553 , - 1292 , - 603 , - 118 , - 1469 , - 1392 , - 1519 , - 218 , - 753 , - 1492 , - 803 , - 318 , - 37 , - 1592 , - 87 , - 418 , - 953 , - 60 , - 1003 , - 518 , - 237 , - 160 , - 287 , - 618 , - 1153 , - 260 , - 1203 , - 718 , - 437 , - 360 , - 487 , - 818 , - 1353 , - 460 , - 1403 , - 918 , - 637 , - 560 , - 687 , - 1018 , - 1553 , - 660 , - 1603 , - 1118 , - 837 , - 760 , - 887 , - 1218 , - 121 , - 860 , - 171 , - 1318 , - 1037 , - 960 , - 1087 , - 1418 , - 321 , - 1060 , - 371 , - 1518 , - 1237 , - 1160 , - 1287 , - 1618 , - 521 , - 1260 , - 571 , - 86 , - 1437 , - 1360 , - 1487 , - 186 , - 721 , - 1460 , - 771 , - 286 , - 5 , - 1560 , - 55 , - 386 , - 921 , - 28 , - 971 , - 486 , - 205 , - 128 , - 255 , - 586 , - 1121 , - 228 , - 1171 , - 686 , - 405 , - 328 , - 455 , - 786 , - 1321 , - 428 , - 1371 , - 886 , - 605 , - 528 , - 655 , - 986 , - 1521 , - 628 , - 1571 , - 1086 , - 805 , - 728 , - 855 , - 1186 , - 89 , - 828 , - 139 , - 1286 , - 1005 , - 928 , - 1055 , - 1386 , - 289 , - 1028 , - 339 , - 1486 , - 1205 , - 1128 , - 1255 , - 1586 , - 489 , - 1228 , - 539 , - 54 , - 1405 , - 1328 , - 1455 , - 154 , - 689 , - 1428 , - 739 , - 254 , - 1605 , - 1528 , - 23 , - 354 , - 889 , - 1628 , - 939 , - 454 , - 173 , - 96 , - 223 , - 554 , - 1089 , - 196 , - 1139 , - 654 , - 373 , - 296 , - 423 , - 754 , - 1289 , - 396 , - 1339 , - 854 , - 573 , - 496 , - 623 , - 954 , - 1489 , - 596 , - 1539 , - 1054 , - 773 , - 696 , - 823 , - 1154 , - 57 , - 796 , - 107 , - 1254 , - 973 , - 896 , - 1023 , - 1354 , - 257 , - 996 , - 307 , - 1454 , - 1173 , - 1096 , - 1223 , - 1554 , - 457 , - 1196 , - 507 , - 22 , - 1373 , - 1296 , - 1423 , - 122 , - 657 , - 1396 , - 707 , - 222 , - 1573 , - 1496 , - 1623 , - 322 , - 857 , - 1596 , - 907 , - 422 , - 141 , - 64 , - 191 , - 522 , - 1057 , - 164 , - 1107 , - 622 , - 341 , - 264 , - 391 , - 722 , - 1257 , - 364 , - 1307 , - 822 , - 541 , - 464 , - 591 , - 922 , - 1457 , - 564 , - 1507 , - 1022 , - 741 , - 664 , - 791 , - 1122 , - 25 , - 764 , - 75 , - 1222 , - 941 , - 864 , - 991 , - 1322 , - 225 , - 964 , - 275 , - 1422 , - 1141 , - 1064 , - 1191 , - 1522 , - 425 , - 1164 , - 475 , - 1622 , - 1341 , - 1264 , - 1391 , - 90 , - 625 , - 1364 , - 675 , - 190 , - 1541 , - 1464 , - 1591 , - 290 , - 825 , - 1564 , - 875 , - 390 , - 109 , - 32 , - 159 , - 490 , - 1025 , - 132 , - 1075 , - 590 , - 309 , - 232 , - 359 , - 690 , - 1225 , - 332 , - 1275 , - 790 , - 509 , - 432 , - 559 , - 890 , - 1425 , - 532 , - 1475 , - 990 , - 709 , - 632 , - 759 , - 1090 , - 1625 , - 732 , - 43 , - 1190 , - 909 , - 832 , - 959 , - 1290 , - 193 , - 932 , - 243 , - 1390 , - 1109 , - 1032 , - 1159 , - 1490 , - 393 , - 1132 , - 443 , - 1590 , - 1309 , - 1232 , - 1359 , - 58 , - 593 , - 1332 , - 643 , - 158 , - 1509 , - 1432 , - 1559 , - 258 , - 793 , - 1532 , - 843 , - 358 , - 77 , - 0 , - 287 , - 782 , - 1485 , - 732 , - 187 , - 1514 , - 1385 , - 1464 , - 87 , - 582 , - 1285 , - 532 , - 1651 , - 1314 , - 1185 , - 1264 , - 1551 , - 382 , - 1085 , - 332 , - 1451 , - 1114 , - 985 , - 1064 , - 1351 , - 182 , - 885 , - 132 , - 1251 , - 914 , - 785 , - 864 , - 1151 , - 1646 , - 685 , - 1596 , - 1051 , - 714 , - 585 , - 664 , - 951 , - 1446 , - 485 , - 1396 , - 851 , - 514 , - 385 , - 464 , - 751 , - 1246 , - 285 , - 1196 , - 651 , - 314 , - 185 , - 264 , - 551 , - 1046 , - 85 , - 996 , - 451 , - 114 , - 1649 , - 64 , - 351 , - 846 , - 1549 , - 796 , - 251 , - 1578 , - 1449 , - 1528 , - 151 , - 646 , - 1349 , - 596 , - 51 , - 1378 , - 1249 , - 1328 , - 1615 , - 446 , - 1149 , - 396 , - 1515 , - 1178 , - 1049 , - 1128 , - 1415 , - 246 , - 949 , - 196 , - 1315 , - 978 , - 849 , - 928 , - 1215 , - 46 , - 749 , - 1660 , - 1115 , - 778 , - 649 , - 728 , - 1015 , - 1510 , - 549 , - 1460 , - 915 , - 578 , - 449 , - 528 , - 815 , - 1310 , - 349 , - 1260 , - 715 , - 378 , - 249 , - 328 , - 615 , - 1110 , - 149 , - 1060 , - 515 , - 178 , - 49 , - 128 , - 415 , - 910 , - 1613 , - 860 , - 315 , - 1642 , - 1513 , - 1592 , - 215 , - 710 , - 1413 , - 660 , - 115 , - 1442 , - 1313 , - 1392 , - 15 , - 510 , - 1213 , - 460 , - 1579 , - 1242 , - 1113 , - 1192 , - 1479 , - 310 , - 1013 , - 260 , - 1379 , - 1042 , - 913 , - 992 , - 1279 , - 110 , - 813 , - 60 , - 1179 , - 842 , - 713 , - 792 , - 1079 , - 1574 , - 613 , - 1524 , - 979 , - 642 , - 513 , - 592 , - 879 , - 1374 , - 413 , - 1324 , - 779 , - 442 , - 313 , - 392 , - 679 , - 1174 , - 213 , - 1124 , - 579 , - 242 , - 113 , - 192 , - 479 , - 974 , - 13 , - 924 , - 379 , - 42 , - 1577 , - 1656 , - 279 , - 774 , - 1477 , - 724 , - 179 , - 1506 , - 1377 , - 1456 , - 79 , - 574 , - 1277 , - 524 , - 1643 , - 1306 , - 1177 , - 1256 , - 1543 , - 374 , - 1077 , - 324 , - 1443 , - 1106 , - 977 , - 1056 , - 1343 , - 174 , - 877 , - 124 , - 1243 , - 906 , - 777 , - 856 , - 1143 , - 1638 , - 677 , - 1588 , - 1043 , - 706 , - 577 , - 656 , - 943 , - 1438 , - 477 , - 1388 , - 843 , - 506 , - 377 , - 456 , - 743 , - 1238 , - 277 , - 1188 , - 643 , - 306 , - 177 , - 256 , - 543 , - 1038 , - 77 , - 988 , - 443 , - 106 , - 1641 , - 56 , - 343 , - 838 , - 1541 , - 788 , - 243 , - 1570 , - 1441 , - 1520 , - 143 , - 638 , - 1341 , - 588 , - 43 , - 1370 , - 1241 , - 1320 , - 1607 , - 438 , - 1141 , - 388 , - 1507 , - 1170 , - 1041 , - 1120 , - 1407 , - 238 , - 941 , - 188 , - 1307 , - 970 , - 841 , - 920 , - 1207 , - 38 , - 741 , - 1652 , - 1107 , - 770 , - 641 , - 720 , - 1007 , - 1502 , - 541 , - 1452 , - 907 , - 570 , - 441 , - 520 , - 807 , - 1302 , - 341 , - 1252 , - 707 , - 370 , - 241 , - 320 , - 607 , - 1102 , - 141 , - 1052 , - 507 , - 170 , - 41 , - 120 , - 407 , - 902 , - 1605 , - 852 , - 307 , - 1634 , - 1505 , - 1584 , - 207 , - 702 , - 1405 , - 652 , - 107 , - 1434 , - 1305 , - 1384 , - 7 , - 502 , - 1205 , - 452 , - 1571 , - 1234 , - 1105 , - 1184 , - 1471 , - 302 , - 1005 , - 252 , - 1371 , - 1034 , - 905 , - 984 , - 1271 , - 102 , - 805 , - 52 , - 1171 , - 834 , - 705 , - 784 , - 1071 , - 1566 , - 605 , - 1516 , - 971 , - 634 , - 505 , - 584 , - 871 , - 1366 , - 405 , - 1316 , - 771 , - 434 , - 305 , - 384 , - 671 , - 1166 , - 205 , - 1116 , - 571 , - 234 , - 105 , - 184 , - 471 , - 966 , - 5 , - 916 , - 371 , - 34 , - 1569 , - 1648 , - 271 , - 766 , - 1469 , - 716 , - 171 , - 1498 , - 1369 , - 1448 , - 71 , - 566 , - 1269 , - 516 , - 1635 , - 1298 , - 1169 , - 1248 , - 1535 , - 366 , - 1069 , - 316 , - 1435 , - 1098 , - 969 , - 1048 , - 1335 , - 166 , - 869 , - 116 , - 1235 , - 898 , - 769 , - 848 , - 1135 , - 1630 , - 669 , - 1580 , - 1035 , - 698 , - 569 , - 648 , - 935 , - 1430 , - 469 , - 1380 , - 835 , - 498 , - 369 , - 448 , - 735 , - 1230 , - 269 , - 1180 , - 635 , - 298 , - 169 , - 248 , - 535 , - 1030 , - 69 , - 980 , - 435 , - 98 , - 1633 , - 48 , - 335 , - 830 , - 1533 , - 780 , - 235 , - 1562 , - 1433 , - 1512 , - 135 , - 630 , - 1333 , - 580 , - 35 , - 1362 , - 1233 , - 1312 , - 1599 , - 430 , - 1133 , - 380 , - 1499 , - 1162 , - 1033 , - 1112 , - 1399 , - 230 , - 933 , - 180 , - 1299 , - 962 , - 833 , - 912 , - 1199 , - 30 , - 733 , - 1644 , - 1099 , - 762 , - 633 , - 712 , - 999 , - 1494 , - 533 , - 1444 , - 899 , - 562 , - 433 , - 512 , - 799 , - 1294 , - 333 , - 1244 , - 699 , - 362 , - 233 , - 312 , - 599 , - 1094 , - 133 , - 1044 , - 499 , - 162 , - 33 , - 112 , - 399 , - 894 , - 1597 , - 844 , - 299 , - 1626 , - 1497 , - 1576 , - 199 , - 694 , - 1397 , - 644 , - 99 , - 1426 , - 1297 , - 1376 , - 1663 , - 494 , - 1197 , - 444 , - 1563 , - 1226 , - 1097 , - 1176 , - 1463 , - 294 , - 997 , - 244 , - 1363 , - 1026 , - 897 , - 976 , - 1263 , - 94 , - 797 , - 44 , - 1163 , - 826 , - 697 , - 776 , - 1063 , - 1558 , - 597 , - 1508 , - 963 , - 626 , - 497 , - 576 , - 863 , - 1358 , - 397 , - 1308 , - 763 , - 426 , - 297 , - 376 , - 663 , - 1158 , - 197 , - 1108 , - 563 , - 226 , - 97 , - 176 , - 463 , - 958 , - 1661 , - 908 , - 363 , - 26 , - 1561 , - 1640 , - 263 , - 758 , - 1461 , - 708 , - 163 , - 1490 , - 1361 , - 1440 , - 63 , - 558 , - 1261 , - 508 , - 1627 , - 1290 , - 1161 , - 1240 , - 1527 , - 358 , - 1061 , - 308 , - 1427 , - 1090 , - 961 , - 1040 , - 1327 , - 158 , - 861 , - 108 , - 1227 , - 890 , - 761 , - 840 , - 1127 , - 1622 , - 661 , - 1572 , - 1027 , - 690 , - 561 , - 640 , - 927 , - 1422 , - 461 , - 1372 , - 827 , - 490 , - 361 , - 440 , - 727 , - 1222 , - 261 , - 1172 , - 627 , - 290 , - 161 , - 240 , - 527 , - 1022 , - 61 , - 972 , - 427 , - 90 , - 1625 , - 40 , - 327 , - 822 , - 1525 , - 772 , - 227 , - 1554 , - 1425 , - 1504 , - 127 , - 622 , - 1325 , - 572 , - 27 , - 1354 , - 1225 , - 1304 , - 1591 , - 422 , - 1125 , - 372 , - 1491 , - 1154 , - 1025 , - 1104 , - 1391 , - 222 , - 925 , - 172 , - 1291 , - 954 , - 825 , - 904 , - 1191 , - 22 , - 725 , - 1636 , - 1091 , - 754 , - 625 , - 704 , - 991 , - 1486 , - 525 , - 1436 , - 891 , - 554 , - 425 , - 504 , - 791 , - 1286 , - 325 , - 1236 , - 691 , - 354 , - 225 , - 304 , - 591 , - 1086 , - 125 , - 1036 , - 491 , - 154 , - 25 , - 104 , - 391 , - 886 , - 1589 , - 836 , - 291 , - 1618 , - 1489 , - 1568 , - 191 , - 686 , - 1389 , - 636 , - 91 , - 1418 , - 1289 , - 1368 , - 1655 , - 486 , - 1189 , - 436 , - 1555 , - 1218 , - 1089 , - 1168 , - 1455 , - 286 , - 989 , - 236 , - 1355 , - 1018 , - 889 , - 968 , - 1255 , - 86 , - 789 , - 36 , - 1155 , - 818 , - 689 , - 768 , - 1055 , - 1550 , - 589 , - 1500 , - 955 , - 618 , - 489 , - 568 , - 855 , - 1350 , - 389 , - 1300 , - 755 , - 418 , - 289 , - 368 , - 655 , - 1150 , - 189 , - 1100 , - 555 , - 218 , - 89 , - 168 , - 455 , - 950 , - 1653 , - 900 , - 355 , - 18 , - 1553 , - 1632 , - 255 , - 750 , - 1453 , - 700 , - 155 , - 1482 , - 1353 , - 1432 , - 55 , - 550 , - 1253 , - 500 , - 1619 , - 1282 , - 1153 , - 1232 , - 1519 , - 350 , - 1053 , - 300 , - 1419 , - 1082 , - 953 , - 1032 , - 1319 , - 150 , - 853 , - 100 , - 1219 , - 882 , - 753 , - 832 , - 1119 , - 1614 , - 653 , - 1564 , - 1019 , - 682 , - 553 , - 632 , - 919 , - 1414 , - 453 , - 1364 , - 819 , - 482 , - 353 , - 432 , - 719 , - 1214 , - 253 , - 1164 , - 619 , - 282 , - 153 , - 232 , - 519 , - 1014 , - 53 , - 964 , - 419 , - 82 , - 1617 , - 32 , - 319 , - 814 , - 1517 , - 764 , - 219 , - 1546 , - 1417 , - 1496 , - 119 , - 614 , - 1317 , - 564 , - 19 , - 1346 , - 1217 , - 1296 , - 1583 , - 414 , - 1117 , - 364 , - 1483 , - 1146 , - 1017 , - 1096 , - 1383 , - 214 , - 917 , - 164 , - 1283 , - 946 , - 817 , - 896 , - 1183 , - 14 , - 717 , - 1628 , - 1083 , - 746 , - 617 , - 696 , - 983 , - 1478 , - 517 , - 1428 , - 883 , - 546 , - 417 , - 496 , - 783 , - 1278 , - 317 , - 1228 , - 683 , - 346 , - 217 , - 296 , - 583 , - 1078 , - 117 , - 1028 , - 483 , - 146 , - 17 , - 96 , - 383 , - 878 , - 1581 , - 828 , - 283 , - 1610 , - 1481 , - 1560 , - 183 , - 678 , - 1381 , - 628 , - 83 , - 1410 , - 1281 , - 1360 , - 1647 , - 478 , - 1181 , - 428 , - 1547 , - 1210 , - 1081 , - 1160 , - 1447 , - 278 , - 981 , - 228 , - 1347 , - 1010 , - 881 , - 960 , - 1247 , - 78 , - 781 , - 28 , - 1147 , - 810 , - 681 , - 760 , - 1047 , - 1542 , - 581 , - 1492 , - 947 , - 610 , - 481 , - 560 , - 847 , - 1342 , - 381 , - 1292 , - 747 , - 410 , - 281 , - 360 , - 647 , - 1142 , - 181 , - 1092 , - 547 , - 210 , - 81 , - 160 , - 447 , - 942 , - 1645 , - 892 , - 347 , - 10 , - 1545 , - 1624 , - 247 , - 742 , - 1445 , - 692 , - 147 , - 1474 , - 1345 , - 1424 , - 47 , - 542 , - 1245 , - 492 , - 1611 , - 1274 , - 1145 , - 1224 , - 1511 , - 342 , - 1045 , - 292 , - 1411 , - 1074 , - 945 , - 1024 , - 1311 , - 142 , - 845 , - 92 , - 1211 , - 874 , - 745 , - 824 , - 1111 , - 1606 , - 645 , - 1556 , - 1011 , - 674 , - 545 , - 624 , - 911 , - 1406 , - 445 , - 1356 , - 811 , - 474 , - 345 , - 424 , - 711 , - 1206 , - 245 , - 1156 , - 611 , - 274 , - 145 , - 224 , - 511 , - 1006 , - 45 , - 956 , - 411 , - 74 , - 1609 , - 24 , - 311 , - 806 , - 1509 , - 756 , - 211 , - 1538 , - 1409 , - 1488 , - 111 , - 606 , - 1309 , - 556 , - 11 , - 1338 , - 1209 , - 1288 , - 1575 , - 406 , - 1109 , - 356 , - 1475 , - 1138 , - 1009 , - 1088 , - 1375 , - 206 , - 909 , - 156 , - 1275 , - 938 , - 809 , - 888 , - 1175 , - 6 , - 709 , - 1620 , - 1075 , - 738 , - 609 , - 688 , - 975 , - 1470 , - 509 , - 1420 , - 875 , - 538 , - 409 , - 488 , - 775 , - 1270 , - 309 , - 1220 , - 675 , - 338 , - 209 , - 288 , - 575 , - 1070 , - 109 , - 1020 , - 475 , - 138 , - 9 , - 88 , - 375 , - 870 , - 1573 , - 820 , - 275 , - 1602 , - 1473 , - 1552 , - 175 , - 670 , - 1373 , - 620 , - 75 , - 1402 , - 1273 , - 1352 , - 1639 , - 470 , - 1173 , - 420 , - 1539 , - 1202 , - 1073 , - 1152 , - 1439 , - 270 , - 973 , - 220 , - 1339 , - 1002 , - 873 , - 952 , - 1239 , - 70 , - 773 , - 20 , - 1139 , - 802 , - 673 , - 752 , - 1039 , - 1534 , - 573 , - 1484 , - 939 , - 602 , - 473 , - 552 , - 839 , - 1334 , - 373 , - 1284 , - 739 , - 402 , - 273 , - 352 , - 639 , - 1134 , - 173 , - 1084 , - 539 , - 202 , - 73 , - 152 , - 439 , - 934 , - 1637 , - 884 , - 339 , - 2 , - 1537 , - 1616 , - 239 , - 734 , - 1437 , - 684 , - 139 , - 1466 , - 1337 , - 1416 , - 39 , - 534 , - 1237 , - 484 , - 1603 , - 1266 , - 1137 , - 1216 , - 1503 , - 334 , - 1037 , - 284 , - 1403 , - 1066 , - 937 , - 1016 , - 1303 , - 134 , - 837 , - 84 , - 1203 , - 866 , - 737 , - 816 , - 1103 , - 1598 , - 637 , - 1548 , - 1003 , - 666 , - 537 , - 616 , - 903 , - 1398 , - 437 , - 1348 , - 803 , - 466 , - 337 , - 416 , - 703 , - 1198 , - 237 , - 1148 , - 603 , - 266 , - 137 , - 216 , - 503 , - 998 , - 37 , - 948 , - 403 , - 66 , - 1601 , - 16 , - 303 , - 798 , - 1501 , - 748 , - 203 , - 1530 , - 1401 , - 1480 , - 103 , - 598 , - 1301 , - 548 , - 3 , - 1330 , - 1201 , - 1280 , - 1567 , - 398 , - 1101 , - 348 , - 1467 , - 1130 , - 1001 , - 1080 , - 1367 , - 198 , - 901 , - 148 , - 1267 , - 930 , - 801 , - 880 , - 1167 , - 1662 , - 701 , - 1612 , - 1067 , - 730 , - 601 , - 680 , - 967 , - 1462 , - 501 , - 1412 , - 867 , - 530 , - 401 , - 480 , - 767 , - 1262 , - 301 , - 1212 , - 667 , - 330 , - 201 , - 280 , - 567 , - 1062 , - 101 , - 1012 , - 467 , - 130 , - 1 , - 80 , - 367 , - 862 , - 1565 , - 812 , - 267 , - 1594 , - 1465 , - 1544 , - 167 , - 662 , - 1365 , - 612 , - 67 , - 1394 , - 1265 , - 1344 , - 1631 , - 462 , - 1165 , - 412 , - 1531 , - 1194 , - 1065 , - 1144 , - 1431 , - 262 , - 965 , - 212 , - 1331 , - 994 , - 865 , - 944 , - 1231 , - 62 , - 765 , - 12 , - 1131 , - 794 , - 665 , - 744 , - 1031 , - 1526 , - 565 , - 1476 , - 931 , - 594 , - 465 , - 544 , - 831 , - 1326 , - 365 , - 1276 , - 731 , - 394 , - 265 , - 344 , - 631 , - 1126 , - 165 , - 1076 , - 531 , - 194 , - 65 , - 144 , - 431 , - 926 , - 1629 , - 876 , - 331 , - 1658 , - 1529 , - 1608 , - 231 , - 726 , - 1429 , - 676 , - 131 , - 1458 , - 1329 , - 1408 , - 31 , - 526 , - 1229 , - 476 , - 1595 , - 1258 , - 1129 , - 1208 , - 1495 , - 326 , - 1029 , - 276 , - 1395 , - 1058 , - 929 , - 1008 , - 1295 , - 126 , - 829 , - 76 , - 1195 , - 858 , - 729 , - 808 , - 1095 , - 1590 , - 629 , - 1540 , - 995 , - 658 , - 529 , - 608 , - 895 , - 1390 , - 429 , - 1340 , - 795 , - 458 , - 329 , - 408 , - 695 , - 1190 , - 229 , - 1140 , - 595 , - 258 , - 129 , - 208 , - 495 , - 990 , - 29 , - 940 , - 395 , - 58 , - 1593 , - 8 , - 295 , - 790 , - 1493 , - 740 , - 195 , - 1522 , - 1393 , - 1472 , - 95 , - 590 , - 1293 , - 540 , - 1659 , - 1322 , - 1193 , - 1272 , - 1559 , - 390 , - 1093 , - 340 , - 1459 , - 1122 , - 993 , - 1072 , - 1359 , - 190 , - 893 , - 140 , - 1259 , - 922 , - 793 , - 872 , - 1159 , - 1654 , - 693 , - 1604 , - 1059 , - 722 , - 593 , - 672 , - 959 , - 1454 , - 493 , - 1404 , - 859 , - 522 , - 393 , - 472 , - 759 , - 1254 , - 293 , - 1204 , - 659 , - 322 , - 193 , - 272 , - 559 , - 1054 , - 93 , - 1004 , - 459 , - 122 , - 1657 , - 72 , - 359 , - 854 , - 1557 , - 804 , - 259 , - 1586 , - 1457 , - 1536 , - 159 , - 654 , - 1357 , - 604 , - 59 , - 1386 , - 1257 , - 1336 , - 1623 , - 454 , - 1157 , - 404 , - 1523 , - 1186 , - 1057 , - 1136 , - 1423 , - 254 , - 957 , - 204 , - 1323 , - 986 , - 857 , - 936 , - 1223 , - 54 , - 757 , - 4 , - 1123 , - 786 , - 657 , - 736 , - 1023 , - 1518 , - 557 , - 1468 , - 923 , - 586 , - 457 , - 536 , - 823 , - 1318 , - 357 , - 1268 , - 723 , - 386 , - 257 , - 336 , - 623 , - 1118 , - 157 , - 1068 , - 523 , - 186 , - 57 , - 136 , - 423 , - 918 , - 1621 , - 868 , - 323 , - 1650 , - 1521 , - 1600 , - 223 , - 718 , - 1421 , - 668 , - 123 , - 1450 , - 1321 , - 1400 , - 23 , - 518 , - 1221 , - 468 , - 1587 , - 1250 , - 1121 , - 1200 , - 1487 , - 318 , - 1021 , - 268 , - 1387 , - 1050 , - 921 , - 1000 , - 1287 , - 118 , - 821 , - 68 , - 1187 , - 850 , - 721 , - 800 , - 1087 , - 1582 , - 621 , - 1532 , - 987 , - 650 , - 521 , - 600 , - 887 , - 1382 , - 421 , - 1332 , - 787 , - 450 , - 321 , - 400 , - 687 , - 1182 , - 221 , - 1132 , - 587 , - 250 , - 121 , - 200 , - 487 , - 982 , - 21 , - 932 , - 387 , - 50 , - 1585 , - 0 , - 1009 , - 534 , - 271 , - 220 , - 381 , - 754 , - 1339 , - 440 , - 1449 , - 974 , - 711 , - 660 , - 821 , - 1194 , - 83 , - 880 , - 193 , - 1414 , - 1151 , - 1100 , - 1261 , - 1634 , - 523 , - 1320 , - 633 , - 158 , - 1591 , - 1540 , - 5 , - 378 , - 963 , - 64 , - 1073 , - 598 , - 335 , - 284 , - 445 , - 818 , - 1403 , - 504 , - 1513 , - 1038 , - 775 , - 724 , - 885 , - 1258 , - 147 , - 944 , - 257 , - 1478 , - 1215 , - 1164 , - 1325 , - 2 , - 587 , - 1384 , - 697 , - 222 , - 1655 , - 1604 , - 69 , - 442 , - 1027 , - 128 , - 1137 , - 662 , - 399 , - 348 , - 509 , - 882 , - 1467 , - 568 , - 1577 , - 1102 , - 839 , - 788 , - 949 , - 1322 , - 211 , - 1008 , - 321 , - 1542 , - 1279 , - 1228 , - 1389 , - 66 , - 651 , - 1448 , - 761 , - 286 , - 23 , - 1668 , - 133 , - 506 , - 1091 , - 192 , - 1201 , - 726 , - 463 , - 412 , - 573 , - 946 , - 1531 , - 632 , - 1641 , - 1166 , - 903 , - 852 , - 1013 , - 1386 , - 275 , - 1072 , - 385 , - 1606 , - 1343 , - 1292 , - 1453 , - 130 , - 715 , - 1512 , - 825 , - 350 , - 87 , - 36 , - 197 , - 570 , - 1155 , - 256 , - 1265 , - 790 , - 527 , - 476 , - 637 , - 1010 , - 1595 , - 696 , - 9 , - 1230 , - 967 , - 916 , - 1077 , - 1450 , - 339 , - 1136 , - 449 , - 1670 , - 1407 , - 1356 , - 1517 , - 194 , - 779 , - 1576 , - 889 , - 414 , - 151 , - 100 , - 261 , - 634 , - 1219 , - 320 , - 1329 , - 854 , - 591 , - 540 , - 701 , - 1074 , - 1659 , - 760 , - 73 , - 1294 , - 1031 , - 980 , - 1141 , - 1514 , - 403 , - 1200 , - 513 , - 38 , - 1471 , - 1420 , - 1581 , - 258 , - 843 , - 1640 , - 953 , - 478 , - 215 , - 164 , - 325 , - 698 , - 1283 , - 384 , - 1393 , - 918 , - 655 , - 604 , - 765 , - 1138 , - 27 , - 824 , - 137 , - 1358 , - 1095 , - 1044 , - 1205 , - 1578 , - 467 , - 1264 , - 577 , - 102 , - 1535 , - 1484 , - 1645 , - 322 , - 907 , - 8 , - 1017 , - 542 , - 279 , - 228 , - 389 , - 762 , - 1347 , - 448 , - 1457 , - 982 , - 719 , - 668 , - 829 , - 1202 , - 91 , - 888 , - 201 , - 1422 , - 1159 , - 1108 , - 1269 , - 1642 , - 531 , - 1328 , - 641 , - 166 , - 1599 , - 1548 , - 13 , - 386 , - 971 , - 72 , - 1081 , - 606 , - 343 , - 292 , - 453 , - 826 , - 1411 , - 512 , - 1521 , - 1046 , - 783 , - 732 , - 893 , - 1266 , - 155 , - 952 , - 265 , - 1486 , - 1223 , - 1172 , - 1333 , - 10 , - 595 , - 1392 , - 705 , - 230 , - 1663 , - 1612 , - 77 , - 450 , - 1035 , - 136 , - 1145 , - 670 , - 407 , - 356 , - 517 , - 890 , - 1475 , - 576 , - 1585 , - 1110 , - 847 , - 796 , - 957 , - 1330 , - 219 , - 1016 , - 329 , - 1550 , - 1287 , - 1236 , - 1397 , - 74 , - 659 , - 1456 , - 769 , - 294 , - 31 , - 1676 , - 141 , - 514 , - 1099 , - 200 , - 1209 , - 734 , - 471 , - 420 , - 581 , - 954 , - 1539 , - 640 , - 1649 , - 1174 , - 911 , - 860 , - 1021 , - 1394 , - 283 , - 1080 , - 393 , - 1614 , - 1351 , - 1300 , - 1461 , - 138 , - 723 , - 1520 , - 833 , - 358 , - 95 , - 44 , - 205 , - 578 , - 1163 , - 264 , - 1273 , - 798 , - 535 , - 484 , - 645 , - 1018 , - 1603 , - 704 , - 17 , - 1238 , - 975 , - 924 , - 1085 , - 1458 , - 347 , - 1144 , - 457 , - 1678 , - 1415 , - 1364 , - 1525 , - 202 , - 787 , - 1584 , - 897 , - 422 , - 159 , - 108 , - 269 , - 642 , - 1227 , - 328 , - 1337 , - 862 , - 599 , - 548 , - 709 , - 1082 , - 1667 , - 768 , - 81 , - 1302 , - 1039 , - 988 , - 1149 , - 1522 , - 411 , - 1208 , - 521 , - 46 , - 1479 , - 1428 , - 1589 , - 266 , - 851 , - 1648 , - 961 , - 486 , - 223 , - 172 , - 333 , - 706 , - 1291 , - 392 , - 1401 , - 926 , - 663 , - 612 , - 773 , - 1146 , - 35 , - 832 , - 145 , - 1366 , - 1103 , - 1052 , - 1213 , - 1586 , - 475 , - 1272 , - 585 , - 110 , - 1543 , - 1492 , - 1653 , - 330 , - 915 , - 16 , - 1025 , - 550 , - 287 , - 236 , - 397 , - 770 , - 1355 , - 456 , - 1465 , - 990 , - 727 , - 676 , - 837 , - 1210 , - 99 , - 896 , - 209 , - 1430 , - 1167 , - 1116 , - 1277 , - 1650 , - 539 , - 1336 , - 649 , - 174 , - 1607 , - 1556 , - 21 , - 394 , - 979 , - 80 , - 1089 , - 614 , - 351 , - 300 , - 461 , - 834 , - 1419 , - 520 , - 1529 , - 1054 , - 791 , - 740 , - 901 , - 1274 , - 163 , - 960 , - 273 , - 1494 , - 1231 , - 1180 , - 1341 , - 18 , - 603 , - 1400 , - 713 , - 238 , - 1671 , - 1620 , - 85 , - 458 , - 1043 , - 144 , - 1153 , - 678 , - 415 , - 364 , - 525 , - 898 , - 1483 , - 584 , - 1593 , - 1118 , - 855 , - 804 , - 965 , - 1338 , - 227 , - 1024 , - 337 , - 1558 , - 1295 , - 1244 , - 1405 , - 82 , - 667 , - 1464 , - 777 , - 302 , - 39 , - 1684 , - 149 , - 522 , - 1107 , - 208 , - 1217 , - 742 , - 479 , - 428 , - 589 , - 962 , - 1547 , - 648 , - 1657 , - 1182 , - 919 , - 868 , - 1029 , - 1402 , - 291 , - 1088 , - 401 , - 1622 , - 1359 , - 1308 , - 1469 , - 146 , - 731 , - 1528 , - 841 , - 366 , - 103 , - 52 , - 213 , - 586 , - 1171 , - 272 , - 1281 , - 806 , - 543 , - 492 , - 653 , - 1026 , - 1611 , - 712 , - 25 , - 1246 , - 983 , - 932 , - 1093 , - 1466 , - 355 , - 1152 , - 465 , - 1686 , - 1423 , - 1372 , - 1533 , - 210 , - 795 , - 1592 , - 905 , - 430 , - 167 , - 116 , - 277 , - 650 , - 1235 , - 336 , - 1345 , - 870 , - 607 , - 556 , - 717 , - 1090 , - 1675 , - 776 , - 89 , - 1310 , - 1047 , - 996 , - 1157 , - 1530 , - 419 , - 1216 , - 529 , - 54 , - 1487 , - 1436 , - 1597 , - 274 , - 859 , - 1656 , - 969 , - 494 , - 231 , - 180 , - 341 , - 714 , - 1299 , - 400 , - 1409 , - 934 , - 671 , - 620 , - 781 , - 1154 , - 43 , - 840 , - 153 , - 1374 , - 1111 , - 1060 , - 1221 , - 1594 , - 483 , - 1280 , - 593 , - 118 , - 1551 , - 1500 , - 1661 , - 338 , - 923 , - 24 , - 1033 , - 558 , - 295 , - 244 , - 405 , - 778 , - 1363 , - 464 , - 1473 , - 998 , - 735 , - 684 , - 845 , - 1218 , - 107 , - 904 , - 217 , - 1438 , - 1175 , - 1124 , - 1285 , - 1658 , - 547 , - 1344 , - 657 , - 182 , - 1615 , - 1564 , - 29 , - 402 , - 987 , - 88 , - 1097 , - 622 , - 359 , - 308 , - 469 , - 842 , - 1427 , - 528 , - 1537 , - 1062 , - 799 , - 748 , - 909 , - 1282 , - 171 , - 968 , - 281 , - 1502 , - 1239 , - 1188 , - 1349 , - 26 , - 611 , - 1408 , - 721 , - 246 , - 1679 , - 1628 , - 93 , - 466 , - 1051 , - 152 , - 1161 , - 686 , - 423 , - 372 , - 533 , - 906 , - 1491 , - 592 , - 1601 , - 1126 , - 863 , - 812 , - 973 , - 1346 , - 235 , - 1032 , - 345 , - 1566 , - 1303 , - 1252 , - 1413 , - 90 , - 675 , - 1472 , - 785 , - 310 , - 47 , - 1692 , - 157 , - 530 , - 1115 , - 216 , - 1225 , - 750 , - 487 , - 436 , - 597 , - 970 , - 1555 , - 656 , - 1665 , - 1190 , - 927 , - 876 , - 1037 , - 1410 , - 299 , - 1096 , - 409 , - 1630 , - 1367 , - 1316 , - 1477 , - 154 , - 739 , - 1536 , - 849 , - 374 , - 111 , - 60 , - 221 , - 594 , - 1179 , - 280 , - 1289 , - 814 , - 551 , - 500 , - 661 , - 1034 , - 1619 , - 720 , - 33 , - 1254 , - 991 , - 940 , - 1101 , - 1474 , - 363 , - 1160 , - 473 , - 1694 , - 1431 , - 1380 , - 1541 , - 218 , - 803 , - 1600 , - 913 , - 438 , - 175 , - 124 , - 285 , - 658 , - 1243 , - 344 , - 1353 , - 878 , - 615 , - 564 , - 725 , - 1098 , - 1683 , - 784 , - 97 , - 1318 , - 1055 , - 1004 , - 1165 , - 1538 , - 427 , - 1224 , - 537 , - 62 , - 1495 , - 1444 , - 1605 , - 282 , - 867 , - 1664 , - 977 , - 502 , - 239 , - 188 , - 349 , - 722 , - 1307 , - 408 , - 1417 , - 942 , - 679 , - 628 , - 789 , - 1162 , - 51 , - 848 , - 161 , - 1382 , - 1119 , - 1068 , - 1229 , - 1602 , - 491 , - 1288 , - 601 , - 126 , - 1559 , - 1508 , - 1669 , - 346 , - 931 , - 32 , - 1041 , - 566 , - 303 , - 252 , - 413 , - 786 , - 1371 , - 472 , - 1481 , - 1006 , - 743 , - 692 , - 853 , - 1226 , - 115 , - 912 , - 225 , - 1446 , - 1183 , - 1132 , - 1293 , - 1666 , - 555 , - 1352 , - 665 , - 190 , - 1623 , - 1572 , - 37 , - 410 , - 995 , - 96 , - 1105 , - 630 , - 367 , - 316 , - 477 , - 850 , - 1435 , - 536 , - 1545 , - 1070 , - 807 , - 756 , - 917 , - 1290 , - 179 , - 976 , - 289 , - 1510 , - 1247 , - 1196 , - 1357 , - 34 , - 619 , - 1416 , - 729 , - 254 , - 1687 , - 1636 , - 101 , - 474 , - 1059 , - 160 , - 1169 , - 694 , - 431 , - 380 , - 541 , - 914 , - 1499 , - 600 , - 1609 , - 1134 , - 871 , - 820 , - 981 , - 1354 , - 243 , - 1040 , - 353 , - 1574 , - 1311 , - 1260 , - 1421 , - 98 , - 683 , - 1480 , - 793 , - 318 , - 55 , - 4 , - 165 , - 538 , - 1123 , - 224 , - 1233 , - 758 , - 495 , - 444 , - 605 , - 978 , - 1563 , - 664 , - 1673 , - 1198 , - 935 , - 884 , - 1045 , - 1418 , - 307 , - 1104 , - 417 , - 1638 , - 1375 , - 1324 , - 1485 , - 162 , - 747 , - 1544 , - 857 , - 382 , - 119 , - 68 , - 229 , - 602 , - 1187 , - 288 , - 1297 , - 822 , - 559 , - 508 , - 669 , - 1042 , - 1627 , - 728 , - 41 , - 1262 , - 999 , - 948 , - 1109 , - 1482 , - 371 , - 1168 , - 481 , - 6 , - 1439 , - 1388 , - 1549 , - 226 , - 811 , - 1608 , - 921 , - 446 , - 183 , - 132 , - 293 , - 666 , - 1251 , - 352 , - 1361 , - 886 , - 623 , - 572 , - 733 , - 1106 , - 1691 , - 792 , - 105 , - 1326 , - 1063 , - 1012 , - 1173 , - 1546 , - 435 , - 1232 , - 545 , - 70 , - 1503 , - 1452 , - 1613 , - 290 , - 875 , - 1672 , - 985 , - 510 , - 247 , - 196 , - 357 , - 730 , - 1315 , - 416 , - 1425 , - 950 , - 687 , - 636 , - 797 , - 1170 , - 59 , - 856 , - 169 , - 1390 , - 1127 , - 1076 , - 1237 , - 1610 , - 499 , - 1296 , - 609 , - 134 , - 1567 , - 1516 , - 1677 , - 354 , - 939 , - 40 , - 1049 , - 574 , - 311 , - 260 , - 421 , - 794 , - 1379 , - 480 , - 1489 , - 1014 , - 751 , - 700 , - 861 , - 1234 , - 123 , - 920 , - 233 , - 1454 , - 1191 , - 1140 , - 1301 , - 1674 , - 563 , - 1360 , - 673 , - 198 , - 1631 , - 1580 , - 45 , - 418 , - 1003 , - 104 , - 1113 , - 638 , - 375 , - 324 , - 485 , - 858 , - 1443 , - 544 , - 1553 , - 1078 , - 815 , - 764 , - 925 , - 1298 , - 187 , - 984 , - 297 , - 1518 , - 1255 , - 1204 , - 1365 , - 42 , - 627 , - 1424 , - 737 , - 262 , - 1695 , - 1644 , - 109 , - 482 , - 1067 , - 168 , - 1177 , - 702 , - 439 , - 388 , - 549 , - 922 , - 1507 , - 608 , - 1617 , - 1142 , - 879 , - 828 , - 989 , - 1362 , - 251 , - 1048 , - 361 , - 1582 , - 1319 , - 1268 , - 1429 , - 106 , - 691 , - 1488 , - 801 , - 326 , - 63 , - 12 , - 173 , - 546 , - 1131 , - 232 , - 1241 , - 766 , - 503 , - 452 , - 613 , - 986 , - 1571 , - 672 , - 1681 , - 1206 , - 943 , - 892 , - 1053 , - 1426 , - 315 , - 1112 , - 425 , - 1646 , - 1383 , - 1332 , - 1493 , - 170 , - 755 , - 1552 , - 865 , - 390 , - 127 , - 76 , - 237 , - 610 , - 1195 , - 296 , - 1305 , - 830 , - 567 , - 516 , - 677 , - 1050 , - 1635 , - 736 , - 49 , - 1270 , - 1007 , - 956 , - 1117 , - 1490 , - 379 , - 1176 , - 489 , - 14 , - 1447 , - 1396 , - 1557 , - 234 , - 819 , - 1616 , - 929 , - 454 , - 191 , - 140 , - 301 , - 674 , - 1259 , - 360 , - 1369 , - 894 , - 631 , - 580 , - 741 , - 1114 , - 3 , - 800 , - 113 , - 1334 , - 1071 , - 1020 , - 1181 , - 1554 , - 443 , - 1240 , - 553 , - 78 , - 1511 , - 1460 , - 1621 , - 298 , - 883 , - 1680 , - 993 , - 518 , - 255 , - 204 , - 365 , - 738 , - 1323 , - 424 , - 1433 , - 958 , - 695 , - 644 , - 805 , - 1178 , - 67 , - 864 , - 177 , - 1398 , - 1135 , - 1084 , - 1245 , - 1618 , - 507 , - 1304 , - 617 , - 142 , - 1575 , - 1524 , - 1685 , - 362 , - 947 , - 48 , - 1057 , - 582 , - 319 , - 268 , - 429 , - 802 , - 1387 , - 488 , - 1497 , - 1022 , - 759 , - 708 , - 869 , - 1242 , - 131 , - 928 , - 241 , - 1462 , - 1199 , - 1148 , - 1309 , - 1682 , - 571 , - 1368 , - 681 , - 206 , - 1639 , - 1588 , - 53 , - 426 , - 1011 , - 112 , - 1121 , - 646 , - 383 , - 332 , - 493 , - 866 , - 1451 , - 552 , - 1561 , - 1086 , - 823 , - 772 , - 933 , - 1306 , - 195 , - 992 , - 305 , - 1526 , - 1263 , - 1212 , - 1373 , - 50 , - 635 , - 1432 , - 745 , - 270 , - 7 , - 1652 , - 117 , - 490 , - 1075 , - 176 , - 1185 , - 710 , - 447 , - 396 , - 557 , - 930 , - 1515 , - 616 , - 1625 , - 1150 , - 887 , - 836 , - 997 , - 1370 , - 259 , - 1056 , - 369 , - 1590 , - 1327 , - 1276 , - 1437 , - 114 , - 699 , - 1496 , - 809 , - 334 , - 71 , - 20 , - 181 , - 554 , - 1139 , - 240 , - 1249 , - 774 , - 511 , - 460 , - 621 , - 994 , - 1579 , - 680 , - 1689 , - 1214 , - 951 , - 900 , - 1061 , - 1434 , - 323 , - 1120 , - 433 , - 1654 , - 1391 , - 1340 , - 1501 , - 178 , - 763 , - 1560 , - 873 , - 398 , - 135 , - 84 , - 245 , - 618 , - 1203 , - 304 , - 1313 , - 838 , - 575 , - 524 , - 685 , - 1058 , - 1643 , - 744 , - 57 , - 1278 , - 1015 , - 964 , - 1125 , - 1498 , - 387 , - 1184 , - 497 , - 22 , - 1455 , - 1404 , - 1565 , - 242 , - 827 , - 1624 , - 937 , - 462 , - 199 , - 148 , - 309 , - 682 , - 1267 , - 368 , - 1377 , - 902 , - 639 , - 588 , - 749 , - 1122 , - 11 , - 808 , - 121 , - 1342 , - 1079 , - 1028 , - 1189 , - 1562 , - 451 , - 1248 , - 561 , - 86 , - 1519 , - 1468 , - 1629 , - 306 , - 891 , - 1688 , - 1001 , - 526 , - 263 , - 212 , - 373 , - 746 , - 1331 , - 432 , - 1441 , - 966 , - 703 , - 652 , - 813 , - 1186 , - 75 , - 872 , - 185 , - 1406 , - 1143 , - 1092 , - 1253 , - 1626 , - 515 , - 1312 , - 625 , - 150 , - 1583 , - 1532 , - 1693 , - 370 , - 955 , - 56 , - 1065 , - 590 , - 327 , - 276 , - 437 , - 810 , - 1395 , - 496 , - 1505 , - 1030 , - 767 , - 716 , - 877 , - 1250 , - 139 , - 936 , - 249 , - 1470 , - 1207 , - 1156 , - 1317 , - 1690 , - 579 , - 1376 , - 689 , - 214 , - 1647 , - 1596 , - 61 , - 434 , - 1019 , - 120 , - 1129 , - 654 , - 391 , - 340 , - 501 , - 874 , - 1459 , - 560 , - 1569 , - 1094 , - 831 , - 780 , - 941 , - 1314 , - 203 , - 1000 , - 313 , - 1534 , - 1271 , - 1220 , - 1381 , - 58 , - 643 , - 1440 , - 753 , - 278 , - 15 , - 1660 , - 125 , - 498 , - 1083 , - 184 , - 1193 , - 718 , - 455 , - 404 , - 565 , - 938 , - 1523 , - 624 , - 1633 , - 1158 , - 895 , - 844 , - 1005 , - 1378 , - 267 , - 1064 , - 377 , - 1598 , - 1335 , - 1284 , - 1445 , - 122 , - 707 , - 1504 , - 817 , - 342 , - 79 , - 28 , - 189 , - 562 , - 1147 , - 248 , - 1257 , - 782 , - 519 , - 468 , - 629 , - 1002 , - 1587 , - 688 , - 1 , - 1222 , - 959 , - 908 , - 1069 , - 1442 , - 331 , - 1128 , - 441 , - 1662 , - 1399 , - 1348 , - 1509 , - 186 , - 771 , - 1568 , - 881 , - 406 , - 143 , - 92 , - 253 , - 626 , - 1211 , - 312 , - 1321 , - 846 , - 583 , - 532 , - 693 , - 1066 , - 1651 , - 752 , - 65 , - 1286 , - 1023 , - 972 , - 1133 , - 1506 , - 395 , - 1192 , - 505 , - 30 , - 1463 , - 1412 , - 1573 , - 250 , - 835 , - 1632 , - 945 , - 470 , - 207 , - 156 , - 317 , - 690 , - 1275 , - 376 , - 1385 , - 910 , - 647 , - 596 , - 757 , - 1130 , - 19 , - 816 , - 129 , - 1350 , - 1087 , - 1036 , - 1197 , - 1570 , - 459 , - 1256 , - 569 , - 94 , - 1527 , - 1476 , - 1637 , - 314 , - 899 , - 0 , - 223 , - 638 , - 1245 , - 316 , - 1307 , - 762 , - 409 , - 248 , - 279 , - 502 , - 917 , - 1524 , - 595 , - 1586 , - 1041 , - 688 , - 527 , - 558 , - 781 , - 1196 , - 75 , - 874 , - 137 , - 1320 , - 967 , - 806 , - 837 , - 1060 , - 1475 , - 354 , - 1153 , - 416 , - 1599 , - 1246 , - 1085 , - 1116 , - 1339 , - 26 , - 633 , - 1432 , - 695 , - 150 , - 1525 , - 1364 , - 1395 , - 1618 , - 305 , - 912 , - 1711 , - 974 , - 429 , - 76 , - 1643 , - 1674 , - 169 , - 584 , - 1191 , - 262 , - 1253 , - 708 , - 355 , - 194 , - 225 , - 448 , - 863 , - 1470 , - 541 , - 1532 , - 987 , - 634 , - 473 , - 504 , - 727 , - 1142 , - 21 , - 820 , - 83 , - 1266 , - 913 , - 752 , - 783 , - 1006 , - 1421 , - 300 , - 1099 , - 362 , - 1545 , - 1192 , - 1031 , - 1062 , - 1285 , - 1700 , - 579 , - 1378 , - 641 , - 96 , - 1471 , - 1310 , - 1341 , - 1564 , - 251 , - 858 , - 1657 , - 920 , - 375 , - 22 , - 1589 , - 1620 , - 115 , - 530 , - 1137 , - 208 , - 1199 , - 654 , - 301 , - 140 , - 171 , - 394 , - 809 , - 1416 , - 487 , - 1478 , - 933 , - 580 , - 419 , - 450 , - 673 , - 1088 , - 1695 , - 766 , - 29 , - 1212 , - 859 , - 698 , - 729 , - 952 , - 1367 , - 246 , - 1045 , - 308 , - 1491 , - 1138 , - 977 , - 1008 , - 1231 , - 1646 , - 525 , - 1324 , - 587 , - 42 , - 1417 , - 1256 , - 1287 , - 1510 , - 197 , - 804 , - 1603 , - 866 , - 321 , - 1696 , - 1535 , - 1566 , - 61 , - 476 , - 1083 , - 154 , - 1145 , - 600 , - 247 , - 86 , - 117 , - 340 , - 755 , - 1362 , - 433 , - 1424 , - 879 , - 526 , - 365 , - 396 , - 619 , - 1034 , - 1641 , - 712 , - 1703 , - 1158 , - 805 , - 644 , - 675 , - 898 , - 1313 , - 192 , - 991 , - 254 , - 1437 , - 1084 , - 923 , - 954 , - 1177 , - 1592 , - 471 , - 1270 , - 533 , - 1716 , - 1363 , - 1202 , - 1233 , - 1456 , - 143 , - 750 , - 1549 , - 812 , - 267 , - 1642 , - 1481 , - 1512 , - 7 , - 422 , - 1029 , - 100 , - 1091 , - 546 , - 193 , - 32 , - 63 , - 286 , - 701 , - 1308 , - 379 , - 1370 , - 825 , - 472 , - 311 , - 342 , - 565 , - 980 , - 1587 , - 658 , - 1649 , - 1104 , - 751 , - 590 , - 621 , - 844 , - 1259 , - 138 , - 937 , - 200 , - 1383 , - 1030 , - 869 , - 900 , - 1123 , - 1538 , - 417 , - 1216 , - 479 , - 1662 , - 1309 , - 1148 , - 1179 , - 1402 , - 89 , - 696 , - 1495 , - 758 , - 213 , - 1588 , - 1427 , - 1458 , - 1681 , - 368 , - 975 , - 46 , - 1037 , - 492 , - 139 , - 1706 , - 9 , - 232 , - 647 , - 1254 , - 325 , - 1316 , - 771 , - 418 , - 257 , - 288 , - 511 , - 926 , - 1533 , - 604 , - 1595 , - 1050 , - 697 , - 536 , - 567 , - 790 , - 1205 , - 84 , - 883 , - 146 , - 1329 , - 976 , - 815 , - 846 , - 1069 , - 1484 , - 363 , - 1162 , - 425 , - 1608 , - 1255 , - 1094 , - 1125 , - 1348 , - 35 , - 642 , - 1441 , - 704 , - 159 , - 1534 , - 1373 , - 1404 , - 1627 , - 314 , - 921 , - 1720 , - 983 , - 438 , - 85 , - 1652 , - 1683 , - 178 , - 593 , - 1200 , - 271 , - 1262 , - 717 , - 364 , - 203 , - 234 , - 457 , - 872 , - 1479 , - 550 , - 1541 , - 996 , - 643 , - 482 , - 513 , - 736 , - 1151 , - 30 , - 829 , - 92 , - 1275 , - 922 , - 761 , - 792 , - 1015 , - 1430 , - 309 , - 1108 , - 371 , - 1554 , - 1201 , - 1040 , - 1071 , - 1294 , - 1709 , - 588 , - 1387 , - 650 , - 105 , - 1480 , - 1319 , - 1350 , - 1573 , - 260 , - 867 , - 1666 , - 929 , - 384 , - 31 , - 1598 , - 1629 , - 124 , - 539 , - 1146 , - 217 , - 1208 , - 663 , - 310 , - 149 , - 180 , - 403 , - 818 , - 1425 , - 496 , - 1487 , - 942 , - 589 , - 428 , - 459 , - 682 , - 1097 , - 1704 , - 775 , - 38 , - 1221 , - 868 , - 707 , - 738 , - 961 , - 1376 , - 255 , - 1054 , - 317 , - 1500 , - 1147 , - 986 , - 1017 , - 1240 , - 1655 , - 534 , - 1333 , - 596 , - 51 , - 1426 , - 1265 , - 1296 , - 1519 , - 206 , - 813 , - 1612 , - 875 , - 330 , - 1705 , - 1544 , - 1575 , - 70 , - 485 , - 1092 , - 163 , - 1154 , - 609 , - 256 , - 95 , - 126 , - 349 , - 764 , - 1371 , - 442 , - 1433 , - 888 , - 535 , - 374 , - 405 , - 628 , - 1043 , - 1650 , - 721 , - 1712 , - 1167 , - 814 , - 653 , - 684 , - 907 , - 1322 , - 201 , - 1000 , - 263 , - 1446 , - 1093 , - 932 , - 963 , - 1186 , - 1601 , - 480 , - 1279 , - 542 , - 1725 , - 1372 , - 1211 , - 1242 , - 1465 , - 152 , - 759 , - 1558 , - 821 , - 276 , - 1651 , - 1490 , - 1521 , - 16 , - 431 , - 1038 , - 109 , - 1100 , - 555 , - 202 , - 41 , - 72 , - 295 , - 710 , - 1317 , - 388 , - 1379 , - 834 , - 481 , - 320 , - 351 , - 574 , - 989 , - 1596 , - 667 , - 1658 , - 1113 , - 760 , - 599 , - 630 , - 853 , - 1268 , - 147 , - 946 , - 209 , - 1392 , - 1039 , - 878 , - 909 , - 1132 , - 1547 , - 426 , - 1225 , - 488 , - 1671 , - 1318 , - 1157 , - 1188 , - 1411 , - 98 , - 705 , - 1504 , - 767 , - 222 , - 1597 , - 1436 , - 1467 , - 1690 , - 377 , - 984 , - 55 , - 1046 , - 501 , - 148 , - 1715 , - 18 , - 241 , - 656 , - 1263 , - 334 , - 1325 , - 780 , - 427 , - 266 , - 297 , - 520 , - 935 , - 1542 , - 613 , - 1604 , - 1059 , - 706 , - 545 , - 576 , - 799 , - 1214 , - 93 , - 892 , - 155 , - 1338 , - 985 , - 824 , - 855 , - 1078 , - 1493 , - 372 , - 1171 , - 434 , - 1617 , - 1264 , - 1103 , - 1134 , - 1357 , - 44 , - 651 , - 1450 , - 713 , - 168 , - 1543 , - 1382 , - 1413 , - 1636 , - 323 , - 930 , - 1 , - 992 , - 447 , - 94 , - 1661 , - 1692 , - 187 , - 602 , - 1209 , - 280 , - 1271 , - 726 , - 373 , - 212 , - 243 , - 466 , - 881 , - 1488 , - 559 , - 1550 , - 1005 , - 652 , - 491 , - 522 , - 745 , - 1160 , - 39 , - 838 , - 101 , - 1284 , - 931 , - 770 , - 801 , - 1024 , - 1439 , - 318 , - 1117 , - 380 , - 1563 , - 1210 , - 1049 , - 1080 , - 1303 , - 1718 , - 597 , - 1396 , - 659 , - 114 , - 1489 , - 1328 , - 1359 , - 1582 , - 269 , - 876 , - 1675 , - 938 , - 393 , - 40 , - 1607 , - 1638 , - 133 , - 548 , - 1155 , - 226 , - 1217 , - 672 , - 319 , - 158 , - 189 , - 412 , - 827 , - 1434 , - 505 , - 1496 , - 951 , - 598 , - 437 , - 468 , - 691 , - 1106 , - 1713 , - 784 , - 47 , - 1230 , - 877 , - 716 , - 747 , - 970 , - 1385 , - 264 , - 1063 , - 326 , - 1509 , - 1156 , - 995 , - 1026 , - 1249 , - 1664 , - 543 , - 1342 , - 605 , - 60 , - 1435 , - 1274 , - 1305 , - 1528 , - 215 , - 822 , - 1621 , - 884 , - 339 , - 1714 , - 1553 , - 1584 , - 79 , - 494 , - 1101 , - 172 , - 1163 , - 618 , - 265 , - 104 , - 135 , - 358 , - 773 , - 1380 , - 451 , - 1442 , - 897 , - 544 , - 383 , - 414 , - 637 , - 1052 , - 1659 , - 730 , - 1721 , - 1176 , - 823 , - 662 , - 693 , - 916 , - 1331 , - 210 , - 1009 , - 272 , - 1455 , - 1102 , - 941 , - 972 , - 1195 , - 1610 , - 489 , - 1288 , - 551 , - 6 , - 1381 , - 1220 , - 1251 , - 1474 , - 161 , - 768 , - 1567 , - 830 , - 285 , - 1660 , - 1499 , - 1530 , - 25 , - 440 , - 1047 , - 118 , - 1109 , - 564 , - 211 , - 50 , - 81 , - 304 , - 719 , - 1326 , - 397 , - 1388 , - 843 , - 490 , - 329 , - 360 , - 583 , - 998 , - 1605 , - 676 , - 1667 , - 1122 , - 769 , - 608 , - 639 , - 862 , - 1277 , - 156 , - 955 , - 218 , - 1401 , - 1048 , - 887 , - 918 , - 1141 , - 1556 , - 435 , - 1234 , - 497 , - 1680 , - 1327 , - 1166 , - 1197 , - 1420 , - 107 , - 714 , - 1513 , - 776 , - 231 , - 1606 , - 1445 , - 1476 , - 1699 , - 386 , - 993 , - 64 , - 1055 , - 510 , - 157 , - 1724 , - 27 , - 250 , - 665 , - 1272 , - 343 , - 1334 , - 789 , - 436 , - 275 , - 306 , - 529 , - 944 , - 1551 , - 622 , - 1613 , - 1068 , - 715 , - 554 , - 585 , - 808 , - 1223 , - 102 , - 901 , - 164 , - 1347 , - 994 , - 833 , - 864 , - 1087 , - 1502 , - 381 , - 1180 , - 443 , - 1626 , - 1273 , - 1112 , - 1143 , - 1366 , - 53 , - 660 , - 1459 , - 722 , - 177 , - 1552 , - 1391 , - 1422 , - 1645 , - 332 , - 939 , - 10 , - 1001 , - 456 , - 103 , - 1670 , - 1701 , - 196 , - 611 , - 1218 , - 289 , - 1280 , - 735 , - 382 , - 221 , - 252 , - 475 , - 890 , - 1497 , - 568 , - 1559 , - 1014 , - 661 , - 500 , - 531 , - 754 , - 1169 , - 48 , - 847 , - 110 , - 1293 , - 940 , - 779 , - 810 , - 1033 , - 1448 , - 327 , - 1126 , - 389 , - 1572 , - 1219 , - 1058 , - 1089 , - 1312 , - 1727 , - 606 , - 1405 , - 668 , - 123 , - 1498 , - 1337 , - 1368 , - 1591 , - 278 , - 885 , - 1684 , - 947 , - 402 , - 49 , - 1616 , - 1647 , - 142 , - 557 , - 1164 , - 235 , - 1226 , - 681 , - 328 , - 167 , - 198 , - 421 , - 836 , - 1443 , - 514 , - 1505 , - 960 , - 607 , - 446 , - 477 , - 700 , - 1115 , - 1722 , - 793 , - 56 , - 1239 , - 886 , - 725 , - 756 , - 979 , - 1394 , - 273 , - 1072 , - 335 , - 1518 , - 1165 , - 1004 , - 1035 , - 1258 , - 1673 , - 552 , - 1351 , - 614 , - 69 , - 1444 , - 1283 , - 1314 , - 1537 , - 224 , - 831 , - 1630 , - 893 , - 348 , - 1723 , - 1562 , - 1593 , - 88 , - 503 , - 1110 , - 181 , - 1172 , - 627 , - 274 , - 113 , - 144 , - 367 , - 782 , - 1389 , - 460 , - 1451 , - 906 , - 553 , - 392 , - 423 , - 646 , - 1061 , - 1668 , - 739 , - 2 , - 1185 , - 832 , - 671 , - 702 , - 925 , - 1340 , - 219 , - 1018 , - 281 , - 1464 , - 1111 , - 950 , - 981 , - 1204 , - 1619 , - 498 , - 1297 , - 560 , - 15 , - 1390 , - 1229 , - 1260 , - 1483 , - 170 , - 777 , - 1576 , - 839 , - 294 , - 1669 , - 1508 , - 1539 , - 34 , - 449 , - 1056 , - 127 , - 1118 , - 573 , - 220 , - 59 , - 90 , - 313 , - 728 , - 1335 , - 406 , - 1397 , - 852 , - 499 , - 338 , - 369 , - 592 , - 1007 , - 1614 , - 685 , - 1676 , - 1131 , - 778 , - 617 , - 648 , - 871 , - 1286 , - 165 , - 964 , - 227 , - 1410 , - 1057 , - 896 , - 927 , - 1150 , - 1565 , - 444 , - 1243 , - 506 , - 1689 , - 1336 , - 1175 , - 1206 , - 1429 , - 116 , - 723 , - 1522 , - 785 , - 240 , - 1615 , - 1454 , - 1485 , - 1708 , - 395 , - 1002 , - 73 , - 1064 , - 519 , - 166 , - 5 , - 36 , - 259 , - 674 , - 1281 , - 352 , - 1343 , - 798 , - 445 , - 284 , - 315 , - 538 , - 953 , - 1560 , - 631 , - 1622 , - 1077 , - 724 , - 563 , - 594 , - 817 , - 1232 , - 111 , - 910 , - 173 , - 1356 , - 1003 , - 842 , - 873 , - 1096 , - 1511 , - 390 , - 1189 , - 452 , - 1635 , - 1282 , - 1121 , - 1152 , - 1375 , - 62 , - 669 , - 1468 , - 731 , - 186 , - 1561 , - 1400 , - 1431 , - 1654 , - 341 , - 948 , - 19 , - 1010 , - 465 , - 112 , - 1679 , - 1710 , - 205 , - 620 , - 1227 , - 298 , - 1289 , - 744 , - 391 , - 230 , - 261 , - 484 , - 899 , - 1506 , - 577 , - 1568 , - 1023 , - 670 , - 509 , - 540 , - 763 , - 1178 , - 57 , - 856 , - 119 , - 1302 , - 949 , - 788 , - 819 , - 1042 , - 1457 , - 336 , - 1135 , - 398 , - 1581 , - 1228 , - 1067 , - 1098 , - 1321 , - 8 , - 615 , - 1414 , - 677 , - 132 , - 1507 , - 1346 , - 1377 , - 1600 , - 287 , - 894 , - 1693 , - 956 , - 411 , - 58 , - 1625 , - 1656 , - 151 , - 566 , - 1173 , - 244 , - 1235 , - 690 , - 337 , - 176 , - 207 , - 430 , - 845 , - 1452 , - 523 , - 1514 , - 969 , - 616 , - 455 , - 486 , - 709 , - 1124 , - 3 , - 802 , - 65 , - 1248 , - 895 , - 734 , - 765 , - 988 , - 1403 , - 282 , - 1081 , - 344 , - 1527 , - 1174 , - 1013 , - 1044 , - 1267 , - 1682 , - 561 , - 1360 , - 623 , - 78 , - 1453 , - 1292 , - 1323 , - 1546 , - 233 , - 840 , - 1639 , - 902 , - 357 , - 4 , - 1571 , - 1602 , - 97 , - 512 , - 1119 , - 190 , - 1181 , - 636 , - 283 , - 122 , - 153 , - 376 , - 791 , - 1398 , - 469 , - 1460 , - 915 , - 562 , - 401 , - 432 , - 655 , - 1070 , - 1677 , - 748 , - 11 , - 1194 , - 841 , - 680 , - 711 , - 934 , - 1349 , - 228 , - 1027 , - 290 , - 1473 , - 1120 , - 959 , - 990 , - 1213 , - 1628 , - 507 , - 1306 , - 569 , - 24 , - 1399 , - 1238 , - 1269 , - 1492 , - 179 , - 786 , - 1585 , - 848 , - 303 , - 1678 , - 1517 , - 1548 , - 43 , - 458 , - 1065 , - 136 , - 1127 , - 582 , - 229 , - 68 , - 99 , - 322 , - 737 , - 1344 , - 415 , - 1406 , - 861 , - 508 , - 347 , - 378 , - 601 , - 1016 , - 1623 , - 694 , - 1685 , - 1140 , - 787 , - 626 , - 657 , - 880 , - 1295 , - 174 , - 973 , - 236 , - 1419 , - 1066 , - 905 , - 936 , - 1159 , - 1574 , - 453 , - 1252 , - 515 , - 1698 , - 1345 , - 1184 , - 1215 , - 1438 , - 125 , - 732 , - 1531 , - 794 , - 249 , - 1624 , - 1463 , - 1494 , - 1717 , - 404 , - 1011 , - 82 , - 1073 , - 528 , - 175 , - 14 , - 45 , - 268 , - 683 , - 1290 , - 361 , - 1352 , - 807 , - 454 , - 293 , - 324 , - 547 , - 962 , - 1569 , - 640 , - 1631 , - 1086 , - 733 , - 572 , - 603 , - 826 , - 1241 , - 120 , - 919 , - 182 , - 1365 , - 1012 , - 851 , - 882 , - 1105 , - 1520 , - 399 , - 1198 , - 461 , - 1644 , - 1291 , - 1130 , - 1161 , - 1384 , - 71 , - 678 , - 1477 , - 740 , - 195 , - 1570 , - 1409 , - 1440 , - 1663 , - 350 , - 957 , - 28 , - 1019 , - 474 , - 121 , - 1688 , - 1719 , - 214 , - 629 , - 1236 , - 307 , - 1298 , - 753 , - 400 , - 239 , - 270 , - 493 , - 908 , - 1515 , - 586 , - 1577 , - 1032 , - 679 , - 518 , - 549 , - 772 , - 1187 , - 66 , - 865 , - 128 , - 1311 , - 958 , - 797 , - 828 , - 1051 , - 1466 , - 345 , - 1144 , - 407 , - 1590 , - 1237 , - 1076 , - 1107 , - 1330 , - 17 , - 624 , - 1423 , - 686 , - 141 , - 1516 , - 1355 , - 1386 , - 1609 , - 296 , - 903 , - 1702 , - 965 , - 420 , - 67 , - 1634 , - 1665 , - 160 , - 575 , - 1182 , - 253 , - 1244 , - 699 , - 346 , - 185 , - 216 , - 439 , - 854 , - 1461 , - 532 , - 1523 , - 978 , - 625 , - 464 , - 495 , - 718 , - 1133 , - 12 , - 811 , - 74 , - 1257 , - 904 , - 743 , - 774 , - 997 , - 1412 , - 291 , - 1090 , - 353 , - 1536 , - 1183 , - 1022 , - 1053 , - 1276 , - 1691 , - 570 , - 1369 , - 632 , - 87 , - 1462 , - 1301 , - 1332 , - 1555 , - 242 , - 849 , - 1648 , - 911 , - 366 , - 13 , - 1580 , - 1611 , - 106 , - 521 , - 1128 , - 199 , - 1190 , - 645 , - 292 , - 131 , - 162 , - 385 , - 800 , - 1407 , - 478 , - 1469 , - 924 , - 571 , - 410 , - 441 , - 664 , - 1079 , - 1686 , - 757 , - 20 , - 1203 , - 850 , - 689 , - 720 , - 943 , - 1358 , - 237 , - 1036 , - 299 , - 1482 , - 1129 , - 968 , - 999 , - 1222 , - 1637 , - 516 , - 1315 , - 578 , - 33 , - 1408 , - 1247 , - 1278 , - 1501 , - 188 , - 795 , - 1594 , - 857 , - 312 , - 1687 , - 1526 , - 1557 , - 52 , - 467 , - 1074 , - 145 , - 1136 , - 591 , - 238 , - 77 , - 108 , - 331 , - 746 , - 1353 , - 424 , - 1415 , - 870 , - 517 , - 356 , - 387 , - 610 , - 1025 , - 1632 , - 703 , - 1694 , - 1149 , - 796 , - 635 , - 666 , - 889 , - 1304 , - 183 , - 982 , - 245 , - 1428 , - 1075 , - 914 , - 945 , - 1168 , - 1583 , - 462 , - 1261 , - 524 , - 1707 , - 1354 , - 1193 , - 1224 , - 1447 , - 134 , - 741 , - 1540 , - 803 , - 258 , - 1633 , - 1472 , - 1503 , - 1726 , - 413 , - 1020 , - 91 , - 1082 , - 537 , - 184 , - 23 , - 54 , - 277 , - 692 , - 1299 , - 370 , - 1361 , - 816 , - 463 , - 302 , - 333 , - 556 , - 971 , - 1578 , - 649 , - 1640 , - 1095 , - 742 , - 581 , - 612 , - 835 , - 1250 , - 129 , - 928 , - 191 , - 1374 , - 1021 , - 860 , - 891 , - 1114 , - 1529 , - 408 , - 1207 , - 470 , - 1653 , - 1300 , - 1139 , - 1170 , - 1393 , - 80 , - 687 , - 1486 , - 749 , - 204 , - 1579 , - 1418 , - 1449 , - 1672 , - 359 , - 966 , - 37 , - 1028 , - 483 , - 130 , - 1697 , - 0 , - 137 , - 494 , - 1071 , - 108 , - 1125 , - 602 , - 299 , - 216 , - 353 , - 710 , - 1287 , - 324 , - 1341 , - 818 , - 515 , - 432 , - 569 , - 926 , - 1503 , - 540 , - 1557 , - 1034 , - 731 , - 648 , - 785 , - 1142 , - 1719 , - 756 , - 13 , - 1250 , - 947 , - 864 , - 1001 , - 1358 , - 175 , - 972 , - 229 , - 1466 , - 1163 , - 1080 , - 1217 , - 1574 , - 391 , - 1188 , - 445 , - 1682 , - 1379 , - 1296 , - 1433 , - 30 , - 607 , - 1404 , - 661 , - 138 , - 1595 , - 1512 , - 1649 , - 246 , - 823 , - 1620 , - 877 , - 354 , - 51 , - 1728 , - 105 , - 462 , - 1039 , - 76 , - 1093 , - 570 , - 267 , - 184 , - 321 , - 678 , - 1255 , - 292 , - 1309 , - 786 , - 483 , - 400 , - 537 , - 894 , - 1471 , - 508 , - 1525 , - 1002 , - 699 , - 616 , - 753 , - 1110 , - 1687 , - 724 , - 1741 , - 1218 , - 915 , - 832 , - 969 , - 1326 , - 143 , - 940 , - 197 , - 1434 , - 1131 , - 1048 , - 1185 , - 1542 , - 359 , - 1156 , - 413 , - 1650 , - 1347 , - 1264 , - 1401 , - 1758 , - 575 , - 1372 , - 629 , - 106 , - 1563 , - 1480 , - 1617 , - 214 , - 791 , - 1588 , - 845 , - 322 , - 19 , - 1696 , - 73 , - 430 , - 1007 , - 44 , - 1061 , - 538 , - 235 , - 152 , - 289 , - 646 , - 1223 , - 260 , - 1277 , - 754 , - 451 , - 368 , - 505 , - 862 , - 1439 , - 476 , - 1493 , - 970 , - 667 , - 584 , - 721 , - 1078 , - 1655 , - 692 , - 1709 , - 1186 , - 883 , - 800 , - 937 , - 1294 , - 111 , - 908 , - 165 , - 1402 , - 1099 , - 1016 , - 1153 , - 1510 , - 327 , - 1124 , - 381 , - 1618 , - 1315 , - 1232 , - 1369 , - 1726 , - 543 , - 1340 , - 597 , - 74 , - 1531 , - 1448 , - 1585 , - 182 , - 759 , - 1556 , - 813 , - 290 , - 1747 , - 1664 , - 41 , - 398 , - 975 , - 12 , - 1029 , - 506 , - 203 , - 120 , - 257 , - 614 , - 1191 , - 228 , - 1245 , - 722 , - 419 , - 336 , - 473 , - 830 , - 1407 , - 444 , - 1461 , - 938 , - 635 , - 552 , - 689 , - 1046 , - 1623 , - 660 , - 1677 , - 1154 , - 851 , - 768 , - 905 , - 1262 , - 79 , - 876 , - 133 , - 1370 , - 1067 , - 984 , - 1121 , - 1478 , - 295 , - 1092 , - 349 , - 1586 , - 1283 , - 1200 , - 1337 , - 1694 , - 511 , - 1308 , - 565 , - 42 , - 1499 , - 1416 , - 1553 , - 150 , - 727 , - 1524 , - 781 , - 258 , - 1715 , - 1632 , - 9 , - 366 , - 943 , - 1740 , - 997 , - 474 , - 171 , - 88 , - 225 , - 582 , - 1159 , - 196 , - 1213 , - 690 , - 387 , - 304 , - 441 , - 798 , - 1375 , - 412 , - 1429 , - 906 , - 603 , - 520 , - 657 , - 1014 , - 1591 , - 628 , - 1645 , - 1122 , - 819 , - 736 , - 873 , - 1230 , - 47 , - 844 , - 101 , - 1338 , - 1035 , - 952 , - 1089 , - 1446 , - 263 , - 1060 , - 317 , - 1554 , - 1251 , - 1168 , - 1305 , - 1662 , - 479 , - 1276 , - 533 , - 10 , - 1467 , - 1384 , - 1521 , - 118 , - 695 , - 1492 , - 749 , - 226 , - 1683 , - 1600 , - 1737 , - 334 , - 911 , - 1708 , - 965 , - 442 , - 139 , - 56 , - 193 , - 550 , - 1127 , - 164 , - 1181 , - 658 , - 355 , - 272 , - 409 , - 766 , - 1343 , - 380 , - 1397 , - 874 , - 571 , - 488 , - 625 , - 982 , - 1559 , - 596 , - 1613 , - 1090 , - 787 , - 704 , - 841 , - 1198 , - 15 , - 812 , - 69 , - 1306 , - 1003 , - 920 , - 1057 , - 1414 , - 231 , - 1028 , - 285 , - 1522 , - 1219 , - 1136 , - 1273 , - 1630 , - 447 , - 1244 , - 501 , - 1738 , - 1435 , - 1352 , - 1489 , - 86 , - 663 , - 1460 , - 717 , - 194 , - 1651 , - 1568 , - 1705 , - 302 , - 879 , - 1676 , - 933 , - 410 , - 107 , - 24 , - 161 , - 518 , - 1095 , - 132 , - 1149 , - 626 , - 323 , - 240 , - 377 , - 734 , - 1311 , - 348 , - 1365 , - 842 , - 539 , - 456 , - 593 , - 950 , - 1527 , - 564 , - 1581 , - 1058 , - 755 , - 672 , - 809 , - 1166 , - 1743 , - 780 , - 37 , - 1274 , - 971 , - 888 , - 1025 , - 1382 , - 199 , - 996 , - 253 , - 1490 , - 1187 , - 1104 , - 1241 , - 1598 , - 415 , - 1212 , - 469 , - 1706 , - 1403 , - 1320 , - 1457 , - 54 , - 631 , - 1428 , - 685 , - 162 , - 1619 , - 1536 , - 1673 , - 270 , - 847 , - 1644 , - 901 , - 378 , - 75 , - 1752 , - 129 , - 486 , - 1063 , - 100 , - 1117 , - 594 , - 291 , - 208 , - 345 , - 702 , - 1279 , - 316 , - 1333 , - 810 , - 507 , - 424 , - 561 , - 918 , - 1495 , - 532 , - 1549 , - 1026 , - 723 , - 640 , - 777 , - 1134 , - 1711 , - 748 , - 5 , - 1242 , - 939 , - 856 , - 993 , - 1350 , - 167 , - 964 , - 221 , - 1458 , - 1155 , - 1072 , - 1209 , - 1566 , - 383 , - 1180 , - 437 , - 1674 , - 1371 , - 1288 , - 1425 , - 22 , - 599 , - 1396 , - 653 , - 130 , - 1587 , - 1504 , - 1641 , - 238 , - 815 , - 1612 , - 869 , - 346 , - 43 , - 1720 , - 97 , - 454 , - 1031 , - 68 , - 1085 , - 562 , - 259 , - 176 , - 313 , - 670 , - 1247 , - 284 , - 1301 , - 778 , - 475 , - 392 , - 529 , - 886 , - 1463 , - 500 , - 1517 , - 994 , - 691 , - 608 , - 745 , - 1102 , - 1679 , - 716 , - 1733 , - 1210 , - 907 , - 824 , - 961 , - 1318 , - 135 , - 932 , - 189 , - 1426 , - 1123 , - 1040 , - 1177 , - 1534 , - 351 , - 1148 , - 405 , - 1642 , - 1339 , - 1256 , - 1393 , - 1750 , - 567 , - 1364 , - 621 , - 98 , - 1555 , - 1472 , - 1609 , - 206 , - 783 , - 1580 , - 837 , - 314 , - 11 , - 1688 , - 65 , - 422 , - 999 , - 36 , - 1053 , - 530 , - 227 , - 144 , - 281 , - 638 , - 1215 , - 252 , - 1269 , - 746 , - 443 , - 360 , - 497 , - 854 , - 1431 , - 468 , - 1485 , - 962 , - 659 , - 576 , - 713 , - 1070 , - 1647 , - 684 , - 1701 , - 1178 , - 875 , - 792 , - 929 , - 1286 , - 103 , - 900 , - 157 , - 1394 , - 1091 , - 1008 , - 1145 , - 1502 , - 319 , - 1116 , - 373 , - 1610 , - 1307 , - 1224 , - 1361 , - 1718 , - 535 , - 1332 , - 589 , - 66 , - 1523 , - 1440 , - 1577 , - 174 , - 751 , - 1548 , - 805 , - 282 , - 1739 , - 1656 , - 33 , - 390 , - 967 , - 4 , - 1021 , - 498 , - 195 , - 112 , - 249 , - 606 , - 1183 , - 220 , - 1237 , - 714 , - 411 , - 328 , - 465 , - 822 , - 1399 , - 436 , - 1453 , - 930 , - 627 , - 544 , - 681 , - 1038 , - 1615 , - 652 , - 1669 , - 1146 , - 843 , - 760 , - 897 , - 1254 , - 71 , - 868 , - 125 , - 1362 , - 1059 , - 976 , - 1113 , - 1470 , - 287 , - 1084 , - 341 , - 1578 , - 1275 , - 1192 , - 1329 , - 1686 , - 503 , - 1300 , - 557 , - 34 , - 1491 , - 1408 , - 1545 , - 142 , - 719 , - 1516 , - 773 , - 250 , - 1707 , - 1624 , - 1 , - 358 , - 935 , - 1732 , - 989 , - 466 , - 163 , - 80 , - 217 , - 574 , - 1151 , - 188 , - 1205 , - 682 , - 379 , - 296 , - 433 , - 790 , - 1367 , - 404 , - 1421 , - 898 , - 595 , - 512 , - 649 , - 1006 , - 1583 , - 620 , - 1637 , - 1114 , - 811 , - 728 , - 865 , - 1222 , - 39 , - 836 , - 93 , - 1330 , - 1027 , - 944 , - 1081 , - 1438 , - 255 , - 1052 , - 309 , - 1546 , - 1243 , - 1160 , - 1297 , - 1654 , - 471 , - 1268 , - 525 , - 2 , - 1459 , - 1376 , - 1513 , - 110 , - 687 , - 1484 , - 741 , - 218 , - 1675 , - 1592 , - 1729 , - 326 , - 903 , - 1700 , - 957 , - 434 , - 131 , - 48 , - 185 , - 542 , - 1119 , - 156 , - 1173 , - 650 , - 347 , - 264 , - 401 , - 758 , - 1335 , - 372 , - 1389 , - 866 , - 563 , - 480 , - 617 , - 974 , - 1551 , - 588 , - 1605 , - 1082 , - 779 , - 696 , - 833 , - 1190 , - 7 , - 804 , - 61 , - 1298 , - 995 , - 912 , - 1049 , - 1406 , - 223 , - 1020 , - 277 , - 1514 , - 1211 , - 1128 , - 1265 , - 1622 , - 439 , - 1236 , - 493 , - 1730 , - 1427 , - 1344 , - 1481 , - 78 , - 655 , - 1452 , - 709 , - 186 , - 1643 , - 1560 , - 1697 , - 294 , - 871 , - 1668 , - 925 , - 402 , - 99 , - 16 , - 153 , - 510 , - 1087 , - 124 , - 1141 , - 618 , - 315 , - 232 , - 369 , - 726 , - 1303 , - 340 , - 1357 , - 834 , - 531 , - 448 , - 585 , - 942 , - 1519 , - 556 , - 1573 , - 1050 , - 747 , - 664 , - 801 , - 1158 , - 1735 , - 772 , - 29 , - 1266 , - 963 , - 880 , - 1017 , - 1374 , - 191 , - 988 , - 245 , - 1482 , - 1179 , - 1096 , - 1233 , - 1590 , - 407 , - 1204 , - 461 , - 1698 , - 1395 , - 1312 , - 1449 , - 46 , - 623 , - 1420 , - 677 , - 154 , - 1611 , - 1528 , - 1665 , - 262 , - 839 , - 1636 , - 893 , - 370 , - 67 , - 1744 , - 121 , - 478 , - 1055 , - 92 , - 1109 , - 586 , - 283 , - 200 , - 337 , - 694 , - 1271 , - 308 , - 1325 , - 802 , - 499 , - 416 , - 553 , - 910 , - 1487 , - 524 , - 1541 , - 1018 , - 715 , - 632 , - 769 , - 1126 , - 1703 , - 740 , - 1757 , - 1234 , - 931 , - 848 , - 985 , - 1342 , - 159 , - 956 , - 213 , - 1450 , - 1147 , - 1064 , - 1201 , - 1558 , - 375 , - 1172 , - 429 , - 1666 , - 1363 , - 1280 , - 1417 , - 14 , - 591 , - 1388 , - 645 , - 122 , - 1579 , - 1496 , - 1633 , - 230 , - 807 , - 1604 , - 861 , - 338 , - 35 , - 1712 , - 89 , - 446 , - 1023 , - 60 , - 1077 , - 554 , - 251 , - 168 , - 305 , - 662 , - 1239 , - 276 , - 1293 , - 770 , - 467 , - 384 , - 521 , - 878 , - 1455 , - 492 , - 1509 , - 986 , - 683 , - 600 , - 737 , - 1094 , - 1671 , - 708 , - 1725 , - 1202 , - 899 , - 816 , - 953 , - 1310 , - 127 , - 924 , - 181 , - 1418 , - 1115 , - 1032 , - 1169 , - 1526 , - 343 , - 1140 , - 397 , - 1634 , - 1331 , - 1248 , - 1385 , - 1742 , - 559 , - 1356 , - 613 , - 90 , - 1547 , - 1464 , - 1601 , - 198 , - 775 , - 1572 , - 829 , - 306 , - 3 , - 1680 , - 57 , - 414 , - 991 , - 28 , - 1045 , - 522 , - 219 , - 136 , - 273 , - 630 , - 1207 , - 244 , - 1261 , - 738 , - 435 , - 352 , - 489 , - 846 , - 1423 , - 460 , - 1477 , - 954 , - 651 , - 568 , - 705 , - 1062 , - 1639 , - 676 , - 1693 , - 1170 , - 867 , - 784 , - 921 , - 1278 , - 95 , - 892 , - 149 , - 1386 , - 1083 , - 1000 , - 1137 , - 1494 , - 311 , - 1108 , - 365 , - 1602 , - 1299 , - 1216 , - 1353 , - 1710 , - 527 , - 1324 , - 581 , - 58 , - 1515 , - 1432 , - 1569 , - 166 , - 743 , - 1540 , - 797 , - 274 , - 1731 , - 1648 , - 25 , - 382 , - 959 , - 1756 , - 1013 , - 490 , - 187 , - 104 , - 241 , - 598 , - 1175 , - 212 , - 1229 , - 706 , - 403 , - 320 , - 457 , - 814 , - 1391 , - 428 , - 1445 , - 922 , - 619 , - 536 , - 673 , - 1030 , - 1607 , - 644 , - 1661 , - 1138 , - 835 , - 752 , - 889 , - 1246 , - 63 , - 860 , - 117 , - 1354 , - 1051 , - 968 , - 1105 , - 1462 , - 279 , - 1076 , - 333 , - 1570 , - 1267 , - 1184 , - 1321 , - 1678 , - 495 , - 1292 , - 549 , - 26 , - 1483 , - 1400 , - 1537 , - 134 , - 711 , - 1508 , - 765 , - 242 , - 1699 , - 1616 , - 1753 , - 350 , - 927 , - 1724 , - 981 , - 458 , - 155 , - 72 , - 209 , - 566 , - 1143 , - 180 , - 1197 , - 674 , - 371 , - 288 , - 425 , - 782 , - 1359 , - 396 , - 1413 , - 890 , - 587 , - 504 , - 641 , - 998 , - 1575 , - 612 , - 1629 , - 1106 , - 803 , - 720 , - 857 , - 1214 , - 31 , - 828 , - 85 , - 1322 , - 1019 , - 936 , - 1073 , - 1430 , - 247 , - 1044 , - 301 , - 1538 , - 1235 , - 1152 , - 1289 , - 1646 , - 463 , - 1260 , - 517 , - 1754 , - 1451 , - 1368 , - 1505 , - 102 , - 679 , - 1476 , - 733 , - 210 , - 1667 , - 1584 , - 1721 , - 318 , - 895 , - 1692 , - 949 , - 426 , - 123 , - 40 , - 177 , - 534 , - 1111 , - 148 , - 1165 , - 642 , - 339 , - 256 , - 393 , - 750 , - 1327 , - 364 , - 1381 , - 858 , - 555 , - 472 , - 609 , - 966 , - 1543 , - 580 , - 1597 , - 1074 , - 771 , - 688 , - 825 , - 1182 , - 1759 , - 796 , - 53 , - 1290 , - 987 , - 904 , - 1041 , - 1398 , - 215 , - 1012 , - 269 , - 1506 , - 1203 , - 1120 , - 1257 , - 1614 , - 431 , - 1228 , - 485 , - 1722 , - 1419 , - 1336 , - 1473 , - 70 , - 647 , - 1444 , - 701 , - 178 , - 1635 , - 1552 , - 1689 , - 286 , - 863 , - 1660 , - 917 , - 394 , - 91 , - 8 , - 145 , - 502 , - 1079 , - 116 , - 1133 , - 610 , - 307 , - 224 , - 361 , - 718 , - 1295 , - 332 , - 1349 , - 826 , - 523 , - 440 , - 577 , - 934 , - 1511 , - 548 , - 1565 , - 1042 , - 739 , - 656 , - 793 , - 1150 , - 1727 , - 764 , - 21 , - 1258 , - 955 , - 872 , - 1009 , - 1366 , - 183 , - 980 , - 237 , - 1474 , - 1171 , - 1088 , - 1225 , - 1582 , - 399 , - 1196 , - 453 , - 1690 , - 1387 , - 1304 , - 1441 , - 38 , - 615 , - 1412 , - 669 , - 146 , - 1603 , - 1520 , - 1657 , - 254 , - 831 , - 1628 , - 885 , - 362 , - 59 , - 1736 , - 113 , - 470 , - 1047 , - 84 , - 1101 , - 578 , - 275 , - 192 , - 329 , - 686 , - 1263 , - 300 , - 1317 , - 794 , - 491 , - 408 , - 545 , - 902 , - 1479 , - 516 , - 1533 , - 1010 , - 707 , - 624 , - 761 , - 1118 , - 1695 , - 732 , - 1749 , - 1226 , - 923 , - 840 , - 977 , - 1334 , - 151 , - 948 , - 205 , - 1442 , - 1139 , - 1056 , - 1193 , - 1550 , - 367 , - 1164 , - 421 , - 1658 , - 1355 , - 1272 , - 1409 , - 6 , - 583 , - 1380 , - 637 , - 114 , - 1571 , - 1488 , - 1625 , - 222 , - 799 , - 1596 , - 853 , - 330 , - 27 , - 1704 , - 81 , - 438 , - 1015 , - 52 , - 1069 , - 546 , - 243 , - 160 , - 297 , - 654 , - 1231 , - 268 , - 1285 , - 762 , - 459 , - 376 , - 513 , - 870 , - 1447 , - 484 , - 1501 , - 978 , - 675 , - 592 , - 729 , - 1086 , - 1663 , - 700 , - 1717 , - 1194 , - 891 , - 808 , - 945 , - 1302 , - 119 , - 916 , - 173 , - 1410 , - 1107 , - 1024 , - 1161 , - 1518 , - 335 , - 1132 , - 389 , - 1626 , - 1323 , - 1240 , - 1377 , - 1734 , - 551 , - 1348 , - 605 , - 82 , - 1539 , - 1456 , - 1593 , - 190 , - 767 , - 1564 , - 821 , - 298 , - 1755 , - 1672 , - 49 , - 406 , - 983 , - 20 , - 1037 , - 514 , - 211 , - 128 , - 265 , - 622 , - 1199 , - 236 , - 1253 , - 730 , - 427 , - 344 , - 481 , - 838 , - 1415 , - 452 , - 1469 , - 946 , - 643 , - 560 , - 697 , - 1054 , - 1631 , - 668 , - 1685 , - 1162 , - 859 , - 776 , - 913 , - 1270 , - 87 , - 884 , - 141 , - 1378 , - 1075 , - 992 , - 1129 , - 1486 , - 303 , - 1100 , - 357 , - 1594 , - 1291 , - 1208 , - 1345 , - 1702 , - 519 , - 1316 , - 573 , - 50 , - 1507 , - 1424 , - 1561 , - 158 , - 735 , - 1532 , - 789 , - 266 , - 1723 , - 1640 , - 17 , - 374 , - 951 , - 1748 , - 1005 , - 482 , - 179 , - 96 , - 233 , - 590 , - 1167 , - 204 , - 1221 , - 698 , - 395 , - 312 , - 449 , - 806 , - 1383 , - 420 , - 1437 , - 914 , - 611 , - 528 , - 665 , - 1022 , - 1599 , - 636 , - 1653 , - 1130 , - 827 , - 744 , - 881 , - 1238 , - 55 , - 852 , - 109 , - 1346 , - 1043 , - 960 , - 1097 , - 1454 , - 271 , - 1068 , - 325 , - 1562 , - 1259 , - 1176 , - 1313 , - 1670 , - 487 , - 1284 , - 541 , - 18 , - 1475 , - 1392 , - 1529 , - 126 , - 703 , - 1500 , - 757 , - 234 , - 1691 , - 1608 , - 1745 , - 342 , - 919 , - 1716 , - 973 , - 450 , - 147 , - 64 , - 201 , - 558 , - 1135 , - 172 , - 1189 , - 666 , - 363 , - 280 , - 417 , - 774 , - 1351 , - 388 , - 1405 , - 882 , - 579 , - 496 , - 633 , - 990 , - 1567 , - 604 , - 1621 , - 1098 , - 795 , - 712 , - 849 , - 1206 , - 23 , - 820 , - 77 , - 1314 , - 1011 , - 928 , - 1065 , - 1422 , - 239 , - 1036 , - 293 , - 1530 , - 1227 , - 1144 , - 1281 , - 1638 , - 455 , - 1252 , - 509 , - 1746 , - 1443 , - 1360 , - 1497 , - 94 , - 671 , - 1468 , - 725 , - 202 , - 1659 , - 1576 , - 1713 , - 310 , - 887 , - 1684 , - 941 , - 418 , - 115 , - 32 , - 169 , - 526 , - 1103 , - 140 , - 1157 , - 634 , - 331 , - 248 , - 385 , - 742 , - 1319 , - 356 , - 1373 , - 850 , - 547 , - 464 , - 601 , - 958 , - 1535 , - 572 , - 1589 , - 1066 , - 763 , - 680 , - 817 , - 1174 , - 1751 , - 788 , - 45 , - 1282 , - 979 , - 896 , - 1033 , - 1390 , - 207 , - 1004 , - 261 , - 1498 , - 1195 , - 1112 , - 1249 , - 1606 , - 423 , - 1220 , - 477 , - 1714 , - 1411 , - 1328 , - 1465 , - 62 , - 639 , - 1436 , - 693 , - 170 , - 1627 , - 1544 , - 1681 , - 278 , - 855 , - 1652 , - 909 , - 386 , - 83 , - 0 , - 141 , - 506 , - 1095 , - 116 , - 1153 , - 622 , - 315 , - 232 , - 373 , - 738 , - 1327 , - 348 , - 1385 , - 854 , - 547 , - 464 , - 605 , - 970 , - 1559 , - 580 , - 1617 , - 1086 , - 779 , - 696 , - 837 , - 1202 , - 1791 , - 812 , - 57 , - 1318 , - 1011 , - 928 , - 1069 , - 1434 , - 231 , - 1044 , - 289 , - 1550 , - 1243 , - 1160 , - 1301 , - 1666 , - 463 , - 1276 , - 521 , - 1782 , - 1475 , - 1392 , - 1533 , - 106 , - 695 , - 1508 , - 753 , - 222 , - 1707 , - 1624 , - 1765 , - 338 , - 927 , - 1740 , - 985 , - 454 , - 147 , - 64 , - 205 , - 570 , - 1159 , - 180 , - 1217 , - 686 , - 379 , - 296 , - 437 , - 802 , - 1391 , - 412 , - 1449 , - 918 , - 611 , - 528 , - 669 , - 1034 , - 1623 , - 644 , - 1681 , - 1150 , - 843 , - 760 , - 901 , - 1266 , - 63 , - 876 , - 121 , - 1382 , - 1075 , - 992 , - 1133 , - 1498 , - 295 , - 1108 , - 353 , - 1614 , - 1307 , - 1224 , - 1365 , - 1730 , - 527 , - 1340 , - 585 , - 54 , - 1539 , - 1456 , - 1597 , - 170 , - 759 , - 1572 , - 817 , - 286 , - 1771 , - 1688 , - 37 , - 402 , - 991 , - 12 , - 1049 , - 518 , - 211 , - 128 , - 269 , - 634 , - 1223 , - 244 , - 1281 , - 750 , - 443 , - 360 , - 501 , - 866 , - 1455 , - 476 , - 1513 , - 982 , - 675 , - 592 , - 733 , - 1098 , - 1687 , - 708 , - 1745 , - 1214 , - 907 , - 824 , - 965 , - 1330 , - 127 , - 940 , - 185 , - 1446 , - 1139 , - 1056 , - 1197 , - 1562 , - 359 , - 1172 , - 417 , - 1678 , - 1371 , - 1288 , - 1429 , - 2 , - 591 , - 1404 , - 649 , - 118 , - 1603 , - 1520 , - 1661 , - 234 , - 823 , - 1636 , - 881 , - 350 , - 43 , - 1752 , - 101 , - 466 , - 1055 , - 76 , - 1113 , - 582 , - 275 , - 192 , - 333 , - 698 , - 1287 , - 308 , - 1345 , - 814 , - 507 , - 424 , - 565 , - 930 , - 1519 , - 540 , - 1577 , - 1046 , - 739 , - 656 , - 797 , - 1162 , - 1751 , - 772 , - 17 , - 1278 , - 971 , - 888 , - 1029 , - 1394 , - 191 , - 1004 , - 249 , - 1510 , - 1203 , - 1120 , - 1261 , - 1626 , - 423 , - 1236 , - 481 , - 1742 , - 1435 , - 1352 , - 1493 , - 66 , - 655 , - 1468 , - 713 , - 182 , - 1667 , - 1584 , - 1725 , - 298 , - 887 , - 1700 , - 945 , - 414 , - 107 , - 24 , - 165 , - 530 , - 1119 , - 140 , - 1177 , - 646 , - 339 , - 256 , - 397 , - 762 , - 1351 , - 372 , - 1409 , - 878 , - 571 , - 488 , - 629 , - 994 , - 1583 , - 604 , - 1641 , - 1110 , - 803 , - 720 , - 861 , - 1226 , - 23 , - 836 , - 81 , - 1342 , - 1035 , - 952 , - 1093 , - 1458 , - 255 , - 1068 , - 313 , - 1574 , - 1267 , - 1184 , - 1325 , - 1690 , - 487 , - 1300 , - 545 , - 14 , - 1499 , - 1416 , - 1557 , - 130 , - 719 , - 1532 , - 777 , - 246 , - 1731 , - 1648 , - 1789 , - 362 , - 951 , - 1764 , - 1009 , - 478 , - 171 , - 88 , - 229 , - 594 , - 1183 , - 204 , - 1241 , - 710 , - 403 , - 320 , - 461 , - 826 , - 1415 , - 436 , - 1473 , - 942 , - 635 , - 552 , - 693 , - 1058 , - 1647 , - 668 , - 1705 , - 1174 , - 867 , - 784 , - 925 , - 1290 , - 87 , - 900 , - 145 , - 1406 , - 1099 , - 1016 , - 1157 , - 1522 , - 319 , - 1132 , - 377 , - 1638 , - 1331 , - 1248 , - 1389 , - 1754 , - 551 , - 1364 , - 609 , - 78 , - 1563 , - 1480 , - 1621 , - 194 , - 783 , - 1596 , - 841 , - 310 , - 3 , - 1712 , - 61 , - 426 , - 1015 , - 36 , - 1073 , - 542 , - 235 , - 152 , - 293 , - 658 , - 1247 , - 268 , - 1305 , - 774 , - 467 , - 384 , - 525 , - 890 , - 1479 , - 500 , - 1537 , - 1006 , - 699 , - 616 , - 757 , - 1122 , - 1711 , - 732 , - 1769 , - 1238 , - 931 , - 848 , - 989 , - 1354 , - 151 , - 964 , - 209 , - 1470 , - 1163 , - 1080 , - 1221 , - 1586 , - 383 , - 1196 , - 441 , - 1702 , - 1395 , - 1312 , - 1453 , - 26 , - 615 , - 1428 , - 673 , - 142 , - 1627 , - 1544 , - 1685 , - 258 , - 847 , - 1660 , - 905 , - 374 , - 67 , - 1776 , - 125 , - 490 , - 1079 , - 100 , - 1137 , - 606 , - 299 , - 216 , - 357 , - 722 , - 1311 , - 332 , - 1369 , - 838 , - 531 , - 448 , - 589 , - 954 , - 1543 , - 564 , - 1601 , - 1070 , - 763 , - 680 , - 821 , - 1186 , - 1775 , - 796 , - 41 , - 1302 , - 995 , - 912 , - 1053 , - 1418 , - 215 , - 1028 , - 273 , - 1534 , - 1227 , - 1144 , - 1285 , - 1650 , - 447 , - 1260 , - 505 , - 1766 , - 1459 , - 1376 , - 1517 , - 90 , - 679 , - 1492 , - 737 , - 206 , - 1691 , - 1608 , - 1749 , - 322 , - 911 , - 1724 , - 969 , - 438 , - 131 , - 48 , - 189 , - 554 , - 1143 , - 164 , - 1201 , - 670 , - 363 , - 280 , - 421 , - 786 , - 1375 , - 396 , - 1433 , - 902 , - 595 , - 512 , - 653 , - 1018 , - 1607 , - 628 , - 1665 , - 1134 , - 827 , - 744 , - 885 , - 1250 , - 47 , - 860 , - 105 , - 1366 , - 1059 , - 976 , - 1117 , - 1482 , - 279 , - 1092 , - 337 , - 1598 , - 1291 , - 1208 , - 1349 , - 1714 , - 511 , - 1324 , - 569 , - 38 , - 1523 , - 1440 , - 1581 , - 154 , - 743 , - 1556 , - 801 , - 270 , - 1755 , - 1672 , - 21 , - 386 , - 975 , - 1788 , - 1033 , - 502 , - 195 , - 112 , - 253 , - 618 , - 1207 , - 228 , - 1265 , - 734 , - 427 , - 344 , - 485 , - 850 , - 1439 , - 460 , - 1497 , - 966 , - 659 , - 576 , - 717 , - 1082 , - 1671 , - 692 , - 1729 , - 1198 , - 891 , - 808 , - 949 , - 1314 , - 111 , - 924 , - 169 , - 1430 , - 1123 , - 1040 , - 1181 , - 1546 , - 343 , - 1156 , - 401 , - 1662 , - 1355 , - 1272 , - 1413 , - 1778 , - 575 , - 1388 , - 633 , - 102 , - 1587 , - 1504 , - 1645 , - 218 , - 807 , - 1620 , - 865 , - 334 , - 27 , - 1736 , - 85 , - 450 , - 1039 , - 60 , - 1097 , - 566 , - 259 , - 176 , - 317 , - 682 , - 1271 , - 292 , - 1329 , - 798 , - 491 , - 408 , - 549 , - 914 , - 1503 , - 524 , - 1561 , - 1030 , - 723 , - 640 , - 781 , - 1146 , - 1735 , - 756 , - 1 , - 1262 , - 955 , - 872 , - 1013 , - 1378 , - 175 , - 988 , - 233 , - 1494 , - 1187 , - 1104 , - 1245 , - 1610 , - 407 , - 1220 , - 465 , - 1726 , - 1419 , - 1336 , - 1477 , - 50 , - 639 , - 1452 , - 697 , - 166 , - 1651 , - 1568 , - 1709 , - 282 , - 871 , - 1684 , - 929 , - 398 , - 91 , - 8 , - 149 , - 514 , - 1103 , - 124 , - 1161 , - 630 , - 323 , - 240 , - 381 , - 746 , - 1335 , - 356 , - 1393 , - 862 , - 555 , - 472 , - 613 , - 978 , - 1567 , - 588 , - 1625 , - 1094 , - 787 , - 704 , - 845 , - 1210 , - 7 , - 820 , - 65 , - 1326 , - 1019 , - 936 , - 1077 , - 1442 , - 239 , - 1052 , - 297 , - 1558 , - 1251 , - 1168 , - 1309 , - 1674 , - 471 , - 1284 , - 529 , - 1790 , - 1483 , - 1400 , - 1541 , - 114 , - 703 , - 1516 , - 761 , - 230 , - 1715 , - 1632 , - 1773 , - 346 , - 935 , - 1748 , - 993 , - 462 , - 155 , - 72 , - 213 , - 578 , - 1167 , - 188 , - 1225 , - 694 , - 387 , - 304 , - 445 , - 810 , - 1399 , - 420 , - 1457 , - 926 , - 619 , - 536 , - 677 , - 1042 , - 1631 , - 652 , - 1689 , - 1158 , - 851 , - 768 , - 909 , - 1274 , - 71 , - 884 , - 129 , - 1390 , - 1083 , - 1000 , - 1141 , - 1506 , - 303 , - 1116 , - 361 , - 1622 , - 1315 , - 1232 , - 1373 , - 1738 , - 535 , - 1348 , - 593 , - 62 , - 1547 , - 1464 , - 1605 , - 178 , - 767 , - 1580 , - 825 , - 294 , - 1779 , - 1696 , - 45 , - 410 , - 999 , - 20 , - 1057 , - 526 , - 219 , - 136 , - 277 , - 642 , - 1231 , - 252 , - 1289 , - 758 , - 451 , - 368 , - 509 , - 874 , - 1463 , - 484 , - 1521 , - 990 , - 683 , - 600 , - 741 , - 1106 , - 1695 , - 716 , - 1753 , - 1222 , - 915 , - 832 , - 973 , - 1338 , - 135 , - 948 , - 193 , - 1454 , - 1147 , - 1064 , - 1205 , - 1570 , - 367 , - 1180 , - 425 , - 1686 , - 1379 , - 1296 , - 1437 , - 10 , - 599 , - 1412 , - 657 , - 126 , - 1611 , - 1528 , - 1669 , - 242 , - 831 , - 1644 , - 889 , - 358 , - 51 , - 1760 , - 109 , - 474 , - 1063 , - 84 , - 1121 , - 590 , - 283 , - 200 , - 341 , - 706 , - 1295 , - 316 , - 1353 , - 822 , - 515 , - 432 , - 573 , - 938 , - 1527 , - 548 , - 1585 , - 1054 , - 747 , - 664 , - 805 , - 1170 , - 1759 , - 780 , - 25 , - 1286 , - 979 , - 896 , - 1037 , - 1402 , - 199 , - 1012 , - 257 , - 1518 , - 1211 , - 1128 , - 1269 , - 1634 , - 431 , - 1244 , - 489 , - 1750 , - 1443 , - 1360 , - 1501 , - 74 , - 663 , - 1476 , - 721 , - 190 , - 1675 , - 1592 , - 1733 , - 306 , - 895 , - 1708 , - 953 , - 422 , - 115 , - 32 , - 173 , - 538 , - 1127 , - 148 , - 1185 , - 654 , - 347 , - 264 , - 405 , - 770 , - 1359 , - 380 , - 1417 , - 886 , - 579 , - 496 , - 637 , - 1002 , - 1591 , - 612 , - 1649 , - 1118 , - 811 , - 728 , - 869 , - 1234 , - 31 , - 844 , - 89 , - 1350 , - 1043 , - 960 , - 1101 , - 1466 , - 263 , - 1076 , - 321 , - 1582 , - 1275 , - 1192 , - 1333 , - 1698 , - 495 , - 1308 , - 553 , - 22 , - 1507 , - 1424 , - 1565 , - 138 , - 727 , - 1540 , - 785 , - 254 , - 1739 , - 1656 , - 5 , - 370 , - 959 , - 1772 , - 1017 , - 486 , - 179 , - 96 , - 237 , - 602 , - 1191 , - 212 , - 1249 , - 718 , - 411 , - 328 , - 469 , - 834 , - 1423 , - 444 , - 1481 , - 950 , - 643 , - 560 , - 701 , - 1066 , - 1655 , - 676 , - 1713 , - 1182 , - 875 , - 792 , - 933 , - 1298 , - 95 , - 908 , - 153 , - 1414 , - 1107 , - 1024 , - 1165 , - 1530 , - 327 , - 1140 , - 385 , - 1646 , - 1339 , - 1256 , - 1397 , - 1762 , - 559 , - 1372 , - 617 , - 86 , - 1571 , - 1488 , - 1629 , - 202 , - 791 , - 1604 , - 849 , - 318 , - 11 , - 1720 , - 69 , - 434 , - 1023 , - 44 , - 1081 , - 550 , - 243 , - 160 , - 301 , - 666 , - 1255 , - 276 , - 1313 , - 782 , - 475 , - 392 , - 533 , - 898 , - 1487 , - 508 , - 1545 , - 1014 , - 707 , - 624 , - 765 , - 1130 , - 1719 , - 740 , - 1777 , - 1246 , - 939 , - 856 , - 997 , - 1362 , - 159 , - 972 , - 217 , - 1478 , - 1171 , - 1088 , - 1229 , - 1594 , - 391 , - 1204 , - 449 , - 1710 , - 1403 , - 1320 , - 1461 , - 34 , - 623 , - 1436 , - 681 , - 150 , - 1635 , - 1552 , - 1693 , - 266 , - 855 , - 1668 , - 913 , - 382 , - 75 , - 1784 , - 133 , - 498 , - 1087 , - 108 , - 1145 , - 614 , - 307 , - 224 , - 365 , - 730 , - 1319 , - 340 , - 1377 , - 846 , - 539 , - 456 , - 597 , - 962 , - 1551 , - 572 , - 1609 , - 1078 , - 771 , - 688 , - 829 , - 1194 , - 1783 , - 804 , - 49 , - 1310 , - 1003 , - 920 , - 1061 , - 1426 , - 223 , - 1036 , - 281 , - 1542 , - 1235 , - 1152 , - 1293 , - 1658 , - 455 , - 1268 , - 513 , - 1774 , - 1467 , - 1384 , - 1525 , - 98 , - 687 , - 1500 , - 745 , - 214 , - 1699 , - 1616 , - 1757 , - 330 , - 919 , - 1732 , - 977 , - 446 , - 139 , - 56 , - 197 , - 562 , - 1151 , - 172 , - 1209 , - 678 , - 371 , - 288 , - 429 , - 794 , - 1383 , - 404 , - 1441 , - 910 , - 603 , - 520 , - 661 , - 1026 , - 1615 , - 636 , - 1673 , - 1142 , - 835 , - 752 , - 893 , - 1258 , - 55 , - 868 , - 113 , - 1374 , - 1067 , - 984 , - 1125 , - 1490 , - 287 , - 1100 , - 345 , - 1606 , - 1299 , - 1216 , - 1357 , - 1722 , - 519 , - 1332 , - 577 , - 46 , - 1531 , - 1448 , - 1589 , - 162 , - 751 , - 1564 , - 809 , - 278 , - 1763 , - 1680 , - 29 , - 394 , - 983 , - 4 , - 1041 , - 510 , - 203 , - 120 , - 261 , - 626 , - 1215 , - 236 , - 1273 , - 742 , - 435 , - 352 , - 493 , - 858 , - 1447 , - 468 , - 1505 , - 974 , - 667 , - 584 , - 725 , - 1090 , - 1679 , - 700 , - 1737 , - 1206 , - 899 , - 816 , - 957 , - 1322 , - 119 , - 932 , - 177 , - 1438 , - 1131 , - 1048 , - 1189 , - 1554 , - 351 , - 1164 , - 409 , - 1670 , - 1363 , - 1280 , - 1421 , - 1786 , - 583 , - 1396 , - 641 , - 110 , - 1595 , - 1512 , - 1653 , - 226 , - 815 , - 1628 , - 873 , - 342 , - 35 , - 1744 , - 93 , - 458 , - 1047 , - 68 , - 1105 , - 574 , - 267 , - 184 , - 325 , - 690 , - 1279 , - 300 , - 1337 , - 806 , - 499 , - 416 , - 557 , - 922 , - 1511 , - 532 , - 1569 , - 1038 , - 731 , - 648 , - 789 , - 1154 , - 1743 , - 764 , - 9 , - 1270 , - 963 , - 880 , - 1021 , - 1386 , - 183 , - 996 , - 241 , - 1502 , - 1195 , - 1112 , - 1253 , - 1618 , - 415 , - 1228 , - 473 , - 1734 , - 1427 , - 1344 , - 1485 , - 58 , - 647 , - 1460 , - 705 , - 174 , - 1659 , - 1576 , - 1717 , - 290 , - 879 , - 1692 , - 937 , - 406 , - 99 , - 16 , - 157 , - 522 , - 1111 , - 132 , - 1169 , - 638 , - 331 , - 248 , - 389 , - 754 , - 1343 , - 364 , - 1401 , - 870 , - 563 , - 480 , - 621 , - 986 , - 1575 , - 596 , - 1633 , - 1102 , - 795 , - 712 , - 853 , - 1218 , - 15 , - 828 , - 73 , - 1334 , - 1027 , - 944 , - 1085 , - 1450 , - 247 , - 1060 , - 305 , - 1566 , - 1259 , - 1176 , - 1317 , - 1682 , - 479 , - 1292 , - 537 , - 6 , - 1491 , - 1408 , - 1549 , - 122 , - 711 , - 1524 , - 769 , - 238 , - 1723 , - 1640 , - 1781 , - 354 , - 943 , - 1756 , - 1001 , - 470 , - 163 , - 80 , - 221 , - 586 , - 1175 , - 196 , - 1233 , - 702 , - 395 , - 312 , - 453 , - 818 , - 1407 , - 428 , - 1465 , - 934 , - 627 , - 544 , - 685 , - 1050 , - 1639 , - 660 , - 1697 , - 1166 , - 859 , - 776 , - 917 , - 1282 , - 79 , - 892 , - 137 , - 1398 , - 1091 , - 1008 , - 1149 , - 1514 , - 311 , - 1124 , - 369 , - 1630 , - 1323 , - 1240 , - 1381 , - 1746 , - 543 , - 1356 , - 601 , - 70 , - 1555 , - 1472 , - 1613 , - 186 , - 775 , - 1588 , - 833 , - 302 , - 1787 , - 1704 , - 53 , - 418 , - 1007 , - 28 , - 1065 , - 534 , - 227 , - 144 , - 285 , - 650 , - 1239 , - 260 , - 1297 , - 766 , - 459 , - 376 , - 517 , - 882 , - 1471 , - 492 , - 1529 , - 998 , - 691 , - 608 , - 749 , - 1114 , - 1703 , - 724 , - 1761 , - 1230 , - 923 , - 840 , - 981 , - 1346 , - 143 , - 956 , - 201 , - 1462 , - 1155 , - 1072 , - 1213 , - 1578 , - 375 , - 1188 , - 433 , - 1694 , - 1387 , - 1304 , - 1445 , - 18 , - 607 , - 1420 , - 665 , - 134 , - 1619 , - 1536 , - 1677 , - 250 , - 839 , - 1652 , - 897 , - 366 , - 59 , - 1768 , - 117 , - 482 , - 1071 , - 92 , - 1129 , - 598 , - 291 , - 208 , - 349 , - 714 , - 1303 , - 324 , - 1361 , - 830 , - 523 , - 440 , - 581 , - 946 , - 1535 , - 556 , - 1593 , - 1062 , - 755 , - 672 , - 813 , - 1178 , - 1767 , - 788 , - 33 , - 1294 , - 987 , - 904 , - 1045 , - 1410 , - 207 , - 1020 , - 265 , - 1526 , - 1219 , - 1136 , - 1277 , - 1642 , - 439 , - 1252 , - 497 , - 1758 , - 1451 , - 1368 , - 1509 , - 82 , - 671 , - 1484 , - 729 , - 198 , - 1683 , - 1600 , - 1741 , - 314 , - 903 , - 1716 , - 961 , - 430 , - 123 , - 40 , - 181 , - 546 , - 1135 , - 156 , - 1193 , - 662 , - 355 , - 272 , - 413 , - 778 , - 1367 , - 388 , - 1425 , - 894 , - 587 , - 504 , - 645 , - 1010 , - 1599 , - 620 , - 1657 , - 1126 , - 819 , - 736 , - 877 , - 1242 , - 39 , - 852 , - 97 , - 1358 , - 1051 , - 968 , - 1109 , - 1474 , - 271 , - 1084 , - 329 , - 1590 , - 1283 , - 1200 , - 1341 , - 1706 , - 503 , - 1316 , - 561 , - 30 , - 1515 , - 1432 , - 1573 , - 146 , - 735 , - 1548 , - 793 , - 262 , - 1747 , - 1664 , - 13 , - 378 , - 967 , - 1780 , - 1025 , - 494 , - 187 , - 104 , - 245 , - 610 , - 1199 , - 220 , - 1257 , - 726 , - 419 , - 336 , - 477 , - 842 , - 1431 , - 452 , - 1489 , - 958 , - 651 , - 568 , - 709 , - 1074 , - 1663 , - 684 , - 1721 , - 1190 , - 883 , - 800 , - 941 , - 1306 , - 103 , - 916 , - 161 , - 1422 , - 1115 , - 1032 , - 1173 , - 1538 , - 335 , - 1148 , - 393 , - 1654 , - 1347 , - 1264 , - 1405 , - 1770 , - 567 , - 1380 , - 625 , - 94 , - 1579 , - 1496 , - 1637 , - 210 , - 799 , - 1612 , - 857 , - 326 , - 19 , - 1728 , - 77 , - 442 , - 1031 , - 52 , - 1089 , - 558 , - 251 , - 168 , - 309 , - 674 , - 1263 , - 284 , - 1321 , - 790 , - 483 , - 400 , - 541 , - 906 , - 1495 , - 516 , - 1553 , - 1022 , - 715 , - 632 , - 773 , - 1138 , - 1727 , - 748 , - 1785 , - 1254 , - 947 , - 864 , - 1005 , - 1370 , - 167 , - 980 , - 225 , - 1486 , - 1179 , - 1096 , - 1237 , - 1602 , - 399 , - 1212 , - 457 , - 1718 , - 1411 , - 1328 , - 1469 , - 42 , - 631 , - 1444 , - 689 , - 158 , - 1643 , - 1560 , - 1701 , - 274 , - 863 , - 1676 , - 921 , - 390 , - 83 , - 0 , - 143 , - 514 , - 1113 , - 116 , - 1171 , - 630 , - 317 , - 232 , - 375 , - 746 , - 1345 , - 348 , - 1403 , - 862 , - 549 , - 464 , - 607 , - 978 , - 1577 , - 580 , - 1635 , - 1094 , - 781 , - 696 , - 839 , - 1210 , - 1809 , - 812 , - 43 , - 1326 , - 1013 , - 928 , - 1071 , - 1442 , - 217 , - 1044 , - 275 , - 1558 , - 1245 , - 1160 , - 1303 , - 1674 , - 449 , - 1276 , - 507 , - 1790 , - 1477 , - 1392 , - 1535 , - 82 , - 681 , - 1508 , - 739 , - 198 , - 1709 , - 1624 , - 1767 , - 314 , - 913 , - 1740 , - 971 , - 430 , - 117 , - 32 , - 175 , - 546 , - 1145 , - 148 , - 1203 , - 662 , - 349 , - 264 , - 407 , - 778 , - 1377 , - 380 , - 1435 , - 894 , - 581 , - 496 , - 639 , - 1010 , - 1609 , - 612 , - 1667 , - 1126 , - 813 , - 728 , - 871 , - 1242 , - 17 , - 844 , - 75 , - 1358 , - 1045 , - 960 , - 1103 , - 1474 , - 249 , - 1076 , - 307 , - 1590 , - 1277 , - 1192 , - 1335 , - 1706 , - 481 , - 1308 , - 539 , - 1822 , - 1509 , - 1424 , - 1567 , - 114 , - 713 , - 1540 , - 771 , - 230 , - 1741 , - 1656 , - 1799 , - 346 , - 945 , - 1772 , - 1003 , - 462 , - 149 , - 64 , - 207 , - 578 , - 1177 , - 180 , - 1235 , - 694 , - 381 , - 296 , - 439 , - 810 , - 1409 , - 412 , - 1467 , - 926 , - 613 , - 528 , - 671 , - 1042 , - 1641 , - 644 , - 1699 , - 1158 , - 845 , - 760 , - 903 , - 1274 , - 49 , - 876 , - 107 , - 1390 , - 1077 , - 992 , - 1135 , - 1506 , - 281 , - 1108 , - 339 , - 1622 , - 1309 , - 1224 , - 1367 , - 1738 , - 513 , - 1340 , - 571 , - 30 , - 1541 , - 1456 , - 1599 , - 146 , - 745 , - 1572 , - 803 , - 262 , - 1773 , - 1688 , - 7 , - 378 , - 977 , - 1804 , - 1035 , - 494 , - 181 , - 96 , - 239 , - 610 , - 1209 , - 212 , - 1267 , - 726 , - 413 , - 328 , - 471 , - 842 , - 1441 , - 444 , - 1499 , - 958 , - 645 , - 560 , - 703 , - 1074 , - 1673 , - 676 , - 1731 , - 1190 , - 877 , - 792 , - 935 , - 1306 , - 81 , - 908 , - 139 , - 1422 , - 1109 , - 1024 , - 1167 , - 1538 , - 313 , - 1140 , - 371 , - 1654 , - 1341 , - 1256 , - 1399 , - 1770 , - 545 , - 1372 , - 603 , - 62 , - 1573 , - 1488 , - 1631 , - 178 , - 777 , - 1604 , - 835 , - 294 , - 1805 , - 1720 , - 39 , - 410 , - 1009 , - 12 , - 1067 , - 526 , - 213 , - 128 , - 271 , - 642 , - 1241 , - 244 , - 1299 , - 758 , - 445 , - 360 , - 503 , - 874 , - 1473 , - 476 , - 1531 , - 990 , - 677 , - 592 , - 735 , - 1106 , - 1705 , - 708 , - 1763 , - 1222 , - 909 , - 824 , - 967 , - 1338 , - 113 , - 940 , - 171 , - 1454 , - 1141 , - 1056 , - 1199 , - 1570 , - 345 , - 1172 , - 403 , - 1686 , - 1373 , - 1288 , - 1431 , - 1802 , - 577 , - 1404 , - 635 , - 94 , - 1605 , - 1520 , - 1663 , - 210 , - 809 , - 1636 , - 867 , - 326 , - 13 , - 1752 , - 71 , - 442 , - 1041 , - 44 , - 1099 , - 558 , - 245 , - 160 , - 303 , - 674 , - 1273 , - 276 , - 1331 , - 790 , - 477 , - 392 , - 535 , - 906 , - 1505 , - 508 , - 1563 , - 1022 , - 709 , - 624 , - 767 , - 1138 , - 1737 , - 740 , - 1795 , - 1254 , - 941 , - 856 , - 999 , - 1370 , - 145 , - 972 , - 203 , - 1486 , - 1173 , - 1088 , - 1231 , - 1602 , - 377 , - 1204 , - 435 , - 1718 , - 1405 , - 1320 , - 1463 , - 10 , - 609 , - 1436 , - 667 , - 126 , - 1637 , - 1552 , - 1695 , - 242 , - 841 , - 1668 , - 899 , - 358 , - 45 , - 1784 , - 103 , - 474 , - 1073 , - 76 , - 1131 , - 590 , - 277 , - 192 , - 335 , - 706 , - 1305 , - 308 , - 1363 , - 822 , - 509 , - 424 , - 567 , - 938 , - 1537 , - 540 , - 1595 , - 1054 , - 741 , - 656 , - 799 , - 1170 , - 1769 , - 772 , - 3 , - 1286 , - 973 , - 888 , - 1031 , - 1402 , - 177 , - 1004 , - 235 , - 1518 , - 1205 , - 1120 , - 1263 , - 1634 , - 409 , - 1236 , - 467 , - 1750 , - 1437 , - 1352 , - 1495 , - 42 , - 641 , - 1468 , - 699 , - 158 , - 1669 , - 1584 , - 1727 , - 274 , - 873 , - 1700 , - 931 , - 390 , - 77 , - 1816 , - 135 , - 506 , - 1105 , - 108 , - 1163 , - 622 , - 309 , - 224 , - 367 , - 738 , - 1337 , - 340 , - 1395 , - 854 , - 541 , - 456 , - 599 , - 970 , - 1569 , - 572 , - 1627 , - 1086 , - 773 , - 688 , - 831 , - 1202 , - 1801 , - 804 , - 35 , - 1318 , - 1005 , - 920 , - 1063 , - 1434 , - 209 , - 1036 , - 267 , - 1550 , - 1237 , - 1152 , - 1295 , - 1666 , - 441 , - 1268 , - 499 , - 1782 , - 1469 , - 1384 , - 1527 , - 74 , - 673 , - 1500 , - 731 , - 190 , - 1701 , - 1616 , - 1759 , - 306 , - 905 , - 1732 , - 963 , - 422 , - 109 , - 24 , - 167 , - 538 , - 1137 , - 140 , - 1195 , - 654 , - 341 , - 256 , - 399 , - 770 , - 1369 , - 372 , - 1427 , - 886 , - 573 , - 488 , - 631 , - 1002 , - 1601 , - 604 , - 1659 , - 1118 , - 805 , - 720 , - 863 , - 1234 , - 9 , - 836 , - 67 , - 1350 , - 1037 , - 952 , - 1095 , - 1466 , - 241 , - 1068 , - 299 , - 1582 , - 1269 , - 1184 , - 1327 , - 1698 , - 473 , - 1300 , - 531 , - 1814 , - 1501 , - 1416 , - 1559 , - 106 , - 705 , - 1532 , - 763 , - 222 , - 1733 , - 1648 , - 1791 , - 338 , - 937 , - 1764 , - 995 , - 454 , - 141 , - 56 , - 199 , - 570 , - 1169 , - 172 , - 1227 , - 686 , - 373 , - 288 , - 431 , - 802 , - 1401 , - 404 , - 1459 , - 918 , - 605 , - 520 , - 663 , - 1034 , - 1633 , - 636 , - 1691 , - 1150 , - 837 , - 752 , - 895 , - 1266 , - 41 , - 868 , - 99 , - 1382 , - 1069 , - 984 , - 1127 , - 1498 , - 273 , - 1100 , - 331 , - 1614 , - 1301 , - 1216 , - 1359 , - 1730 , - 505 , - 1332 , - 563 , - 22 , - 1533 , - 1448 , - 1591 , - 138 , - 737 , - 1564 , - 795 , - 254 , - 1765 , - 1680 , - 1823 , - 370 , - 969 , - 1796 , - 1027 , - 486 , - 173 , - 88 , - 231 , - 602 , - 1201 , - 204 , - 1259 , - 718 , - 405 , - 320 , - 463 , - 834 , - 1433 , - 436 , - 1491 , - 950 , - 637 , - 552 , - 695 , - 1066 , - 1665 , - 668 , - 1723 , - 1182 , - 869 , - 784 , - 927 , - 1298 , - 73 , - 900 , - 131 , - 1414 , - 1101 , - 1016 , - 1159 , - 1530 , - 305 , - 1132 , - 363 , - 1646 , - 1333 , - 1248 , - 1391 , - 1762 , - 537 , - 1364 , - 595 , - 54 , - 1565 , - 1480 , - 1623 , - 170 , - 769 , - 1596 , - 827 , - 286 , - 1797 , - 1712 , - 31 , - 402 , - 1001 , - 4 , - 1059 , - 518 , - 205 , - 120 , - 263 , - 634 , - 1233 , - 236 , - 1291 , - 750 , - 437 , - 352 , - 495 , - 866 , - 1465 , - 468 , - 1523 , - 982 , - 669 , - 584 , - 727 , - 1098 , - 1697 , - 700 , - 1755 , - 1214 , - 901 , - 816 , - 959 , - 1330 , - 105 , - 932 , - 163 , - 1446 , - 1133 , - 1048 , - 1191 , - 1562 , - 337 , - 1164 , - 395 , - 1678 , - 1365 , - 1280 , - 1423 , - 1794 , - 569 , - 1396 , - 627 , - 86 , - 1597 , - 1512 , - 1655 , - 202 , - 801 , - 1628 , - 859 , - 318 , - 5 , - 1744 , - 63 , - 434 , - 1033 , - 36 , - 1091 , - 550 , - 237 , - 152 , - 295 , - 666 , - 1265 , - 268 , - 1323 , - 782 , - 469 , - 384 , - 527 , - 898 , - 1497 , - 500 , - 1555 , - 1014 , - 701 , - 616 , - 759 , - 1130 , - 1729 , - 732 , - 1787 , - 1246 , - 933 , - 848 , - 991 , - 1362 , - 137 , - 964 , - 195 , - 1478 , - 1165 , - 1080 , - 1223 , - 1594 , - 369 , - 1196 , - 427 , - 1710 , - 1397 , - 1312 , - 1455 , - 2 , - 601 , - 1428 , - 659 , - 118 , - 1629 , - 1544 , - 1687 , - 234 , - 833 , - 1660 , - 891 , - 350 , - 37 , - 1776 , - 95 , - 466 , - 1065 , - 68 , - 1123 , - 582 , - 269 , - 184 , - 327 , - 698 , - 1297 , - 300 , - 1355 , - 814 , - 501 , - 416 , - 559 , - 930 , - 1529 , - 532 , - 1587 , - 1046 , - 733 , - 648 , - 791 , - 1162 , - 1761 , - 764 , - 1819 , - 1278 , - 965 , - 880 , - 1023 , - 1394 , - 169 , - 996 , - 227 , - 1510 , - 1197 , - 1112 , - 1255 , - 1626 , - 401 , - 1228 , - 459 , - 1742 , - 1429 , - 1344 , - 1487 , - 34 , - 633 , - 1460 , - 691 , - 150 , - 1661 , - 1576 , - 1719 , - 266 , - 865 , - 1692 , - 923 , - 382 , - 69 , - 1808 , - 127 , - 498 , - 1097 , - 100 , - 1155 , - 614 , - 301 , - 216 , - 359 , - 730 , - 1329 , - 332 , - 1387 , - 846 , - 533 , - 448 , - 591 , - 962 , - 1561 , - 564 , - 1619 , - 1078 , - 765 , - 680 , - 823 , - 1194 , - 1793 , - 796 , - 27 , - 1310 , - 997 , - 912 , - 1055 , - 1426 , - 201 , - 1028 , - 259 , - 1542 , - 1229 , - 1144 , - 1287 , - 1658 , - 433 , - 1260 , - 491 , - 1774 , - 1461 , - 1376 , - 1519 , - 66 , - 665 , - 1492 , - 723 , - 182 , - 1693 , - 1608 , - 1751 , - 298 , - 897 , - 1724 , - 955 , - 414 , - 101 , - 16 , - 159 , - 530 , - 1129 , - 132 , - 1187 , - 646 , - 333 , - 248 , - 391 , - 762 , - 1361 , - 364 , - 1419 , - 878 , - 565 , - 480 , - 623 , - 994 , - 1593 , - 596 , - 1651 , - 1110 , - 797 , - 712 , - 855 , - 1226 , - 1 , - 828 , - 59 , - 1342 , - 1029 , - 944 , - 1087 , - 1458 , - 233 , - 1060 , - 291 , - 1574 , - 1261 , - 1176 , - 1319 , - 1690 , - 465 , - 1292 , - 523 , - 1806 , - 1493 , - 1408 , - 1551 , - 98 , - 697 , - 1524 , - 755 , - 214 , - 1725 , - 1640 , - 1783 , - 330 , - 929 , - 1756 , - 987 , - 446 , - 133 , - 48 , - 191 , - 562 , - 1161 , - 164 , - 1219 , - 678 , - 365 , - 280 , - 423 , - 794 , - 1393 , - 396 , - 1451 , - 910 , - 597 , - 512 , - 655 , - 1026 , - 1625 , - 628 , - 1683 , - 1142 , - 829 , - 744 , - 887 , - 1258 , - 33 , - 860 , - 91 , - 1374 , - 1061 , - 976 , - 1119 , - 1490 , - 265 , - 1092 , - 323 , - 1606 , - 1293 , - 1208 , - 1351 , - 1722 , - 497 , - 1324 , - 555 , - 14 , - 1525 , - 1440 , - 1583 , - 130 , - 729 , - 1556 , - 787 , - 246 , - 1757 , - 1672 , - 1815 , - 362 , - 961 , - 1788 , - 1019 , - 478 , - 165 , - 80 , - 223 , - 594 , - 1193 , - 196 , - 1251 , - 710 , - 397 , - 312 , - 455 , - 826 , - 1425 , - 428 , - 1483 , - 942 , - 629 , - 544 , - 687 , - 1058 , - 1657 , - 660 , - 1715 , - 1174 , - 861 , - 776 , - 919 , - 1290 , - 65 , - 892 , - 123 , - 1406 , - 1093 , - 1008 , - 1151 , - 1522 , - 297 , - 1124 , - 355 , - 1638 , - 1325 , - 1240 , - 1383 , - 1754 , - 529 , - 1356 , - 587 , - 46 , - 1557 , - 1472 , - 1615 , - 162 , - 761 , - 1588 , - 819 , - 278 , - 1789 , - 1704 , - 23 , - 394 , - 993 , - 1820 , - 1051 , - 510 , - 197 , - 112 , - 255 , - 626 , - 1225 , - 228 , - 1283 , - 742 , - 429 , - 344 , - 487 , - 858 , - 1457 , - 460 , - 1515 , - 974 , - 661 , - 576 , - 719 , - 1090 , - 1689 , - 692 , - 1747 , - 1206 , - 893 , - 808 , - 951 , - 1322 , - 97 , - 924 , - 155 , - 1438 , - 1125 , - 1040 , - 1183 , - 1554 , - 329 , - 1156 , - 387 , - 1670 , - 1357 , - 1272 , - 1415 , - 1786 , - 561 , - 1388 , - 619 , - 78 , - 1589 , - 1504 , - 1647 , - 194 , - 793 , - 1620 , - 851 , - 310 , - 1821 , - 1736 , - 55 , - 426 , - 1025 , - 28 , - 1083 , - 542 , - 229 , - 144 , - 287 , - 658 , - 1257 , - 260 , - 1315 , - 774 , - 461 , - 376 , - 519 , - 890 , - 1489 , - 492 , - 1547 , - 1006 , - 693 , - 608 , - 751 , - 1122 , - 1721 , - 724 , - 1779 , - 1238 , - 925 , - 840 , - 983 , - 1354 , - 129 , - 956 , - 187 , - 1470 , - 1157 , - 1072 , - 1215 , - 1586 , - 361 , - 1188 , - 419 , - 1702 , - 1389 , - 1304 , - 1447 , - 1818 , - 593 , - 1420 , - 651 , - 110 , - 1621 , - 1536 , - 1679 , - 226 , - 825 , - 1652 , - 883 , - 342 , - 29 , - 1768 , - 87 , - 458 , - 1057 , - 60 , - 1115 , - 574 , - 261 , - 176 , - 319 , - 690 , - 1289 , - 292 , - 1347 , - 806 , - 493 , - 408 , - 551 , - 922 , - 1521 , - 524 , - 1579 , - 1038 , - 725 , - 640 , - 783 , - 1154 , - 1753 , - 756 , - 1811 , - 1270 , - 957 , - 872 , - 1015 , - 1386 , - 161 , - 988 , - 219 , - 1502 , - 1189 , - 1104 , - 1247 , - 1618 , - 393 , - 1220 , - 451 , - 1734 , - 1421 , - 1336 , - 1479 , - 26 , - 625 , - 1452 , - 683 , - 142 , - 1653 , - 1568 , - 1711 , - 258 , - 857 , - 1684 , - 915 , - 374 , - 61 , - 1800 , - 119 , - 490 , - 1089 , - 92 , - 1147 , - 606 , - 293 , - 208 , - 351 , - 722 , - 1321 , - 324 , - 1379 , - 838 , - 525 , - 440 , - 583 , - 954 , - 1553 , - 556 , - 1611 , - 1070 , - 757 , - 672 , - 815 , - 1186 , - 1785 , - 788 , - 19 , - 1302 , - 989 , - 904 , - 1047 , - 1418 , - 193 , - 1020 , - 251 , - 1534 , - 1221 , - 1136 , - 1279 , - 1650 , - 425 , - 1252 , - 483 , - 1766 , - 1453 , - 1368 , - 1511 , - 58 , - 657 , - 1484 , - 715 , - 174 , - 1685 , - 1600 , - 1743 , - 290 , - 889 , - 1716 , - 947 , - 406 , - 93 , - 8 , - 151 , - 522 , - 1121 , - 124 , - 1179 , - 638 , - 325 , - 240 , - 383 , - 754 , - 1353 , - 356 , - 1411 , - 870 , - 557 , - 472 , - 615 , - 986 , - 1585 , - 588 , - 1643 , - 1102 , - 789 , - 704 , - 847 , - 1218 , - 1817 , - 820 , - 51 , - 1334 , - 1021 , - 936 , - 1079 , - 1450 , - 225 , - 1052 , - 283 , - 1566 , - 1253 , - 1168 , - 1311 , - 1682 , - 457 , - 1284 , - 515 , - 1798 , - 1485 , - 1400 , - 1543 , - 90 , - 689 , - 1516 , - 747 , - 206 , - 1717 , - 1632 , - 1775 , - 322 , - 921 , - 1748 , - 979 , - 438 , - 125 , - 40 , - 183 , - 554 , - 1153 , - 156 , - 1211 , - 670 , - 357 , - 272 , - 415 , - 786 , - 1385 , - 388 , - 1443 , - 902 , - 589 , - 504 , - 647 , - 1018 , - 1617 , - 620 , - 1675 , - 1134 , - 821 , - 736 , - 879 , - 1250 , - 25 , - 852 , - 83 , - 1366 , - 1053 , - 968 , - 1111 , - 1482 , - 257 , - 1084 , - 315 , - 1598 , - 1285 , - 1200 , - 1343 , - 1714 , - 489 , - 1316 , - 547 , - 6 , - 1517 , - 1432 , - 1575 , - 122 , - 721 , - 1548 , - 779 , - 238 , - 1749 , - 1664 , - 1807 , - 354 , - 953 , - 1780 , - 1011 , - 470 , - 157 , - 72 , - 215 , - 586 , - 1185 , - 188 , - 1243 , - 702 , - 389 , - 304 , - 447 , - 818 , - 1417 , - 420 , - 1475 , - 934 , - 621 , - 536 , - 679 , - 1050 , - 1649 , - 652 , - 1707 , - 1166 , - 853 , - 768 , - 911 , - 1282 , - 57 , - 884 , - 115 , - 1398 , - 1085 , - 1000 , - 1143 , - 1514 , - 289 , - 1116 , - 347 , - 1630 , - 1317 , - 1232 , - 1375 , - 1746 , - 521 , - 1348 , - 579 , - 38 , - 1549 , - 1464 , - 1607 , - 154 , - 753 , - 1580 , - 811 , - 270 , - 1781 , - 1696 , - 15 , - 386 , - 985 , - 1812 , - 1043 , - 502 , - 189 , - 104 , - 247 , - 618 , - 1217 , - 220 , - 1275 , - 734 , - 421 , - 336 , - 479 , - 850 , - 1449 , - 452 , - 1507 , - 966 , - 653 , - 568 , - 711 , - 1082 , - 1681 , - 684 , - 1739 , - 1198 , - 885 , - 800 , - 943 , - 1314 , - 89 , - 916 , - 147 , - 1430 , - 1117 , - 1032 , - 1175 , - 1546 , - 321 , - 1148 , - 379 , - 1662 , - 1349 , - 1264 , - 1407 , - 1778 , - 553 , - 1380 , - 611 , - 70 , - 1581 , - 1496 , - 1639 , - 186 , - 785 , - 1612 , - 843 , - 302 , - 1813 , - 1728 , - 47 , - 418 , - 1017 , - 20 , - 1075 , - 534 , - 221 , - 136 , - 279 , - 650 , - 1249 , - 252 , - 1307 , - 766 , - 453 , - 368 , - 511 , - 882 , - 1481 , - 484 , - 1539 , - 998 , - 685 , - 600 , - 743 , - 1114 , - 1713 , - 716 , - 1771 , - 1230 , - 917 , - 832 , - 975 , - 1346 , - 121 , - 948 , - 179 , - 1462 , - 1149 , - 1064 , - 1207 , - 1578 , - 353 , - 1180 , - 411 , - 1694 , - 1381 , - 1296 , - 1439 , - 1810 , - 585 , - 1412 , - 643 , - 102 , - 1613 , - 1528 , - 1671 , - 218 , - 817 , - 1644 , - 875 , - 334 , - 21 , - 1760 , - 79 , - 450 , - 1049 , - 52 , - 1107 , - 566 , - 253 , - 168 , - 311 , - 682 , - 1281 , - 284 , - 1339 , - 798 , - 485 , - 400 , - 543 , - 914 , - 1513 , - 516 , - 1571 , - 1030 , - 717 , - 632 , - 775 , - 1146 , - 1745 , - 748 , - 1803 , - 1262 , - 949 , - 864 , - 1007 , - 1378 , - 153 , - 980 , - 211 , - 1494 , - 1181 , - 1096 , - 1239 , - 1610 , - 385 , - 1212 , - 443 , - 1726 , - 1413 , - 1328 , - 1471 , - 18 , - 617 , - 1444 , - 675 , - 134 , - 1645 , - 1560 , - 1703 , - 250 , - 849 , - 1676 , - 907 , - 366 , - 53 , - 1792 , - 111 , - 482 , - 1081 , - 84 , - 1139 , - 598 , - 285 , - 200 , - 343 , - 714 , - 1313 , - 316 , - 1371 , - 830 , - 517 , - 432 , - 575 , - 946 , - 1545 , - 548 , - 1603 , - 1062 , - 749 , - 664 , - 807 , - 1178 , - 1777 , - 780 , - 11 , - 1294 , - 981 , - 896 , - 1039 , - 1410 , - 185 , - 1012 , - 243 , - 1526 , - 1213 , - 1128 , - 1271 , - 1642 , - 417 , - 1244 , - 475 , - 1758 , - 1445 , - 1360 , - 1503 , - 50 , - 649 , - 1476 , - 707 , - 166 , - 1677 , - 1592 , - 1735 , - 282 , - 881 , - 1708 , - 939 , - 398 , - 85 , - 0 , - 173 , - 578 , - 1215 , - 228 , - 1329 , - 806 , - 515 , - 456 , - 629 , - 1034 , - 1671 , - 684 , - 1785 , - 1262 , - 971 , - 912 , - 1085 , - 1490 , - 271 , - 1140 , - 385 , - 1718 , - 1427 , - 1368 , - 1541 , - 90 , - 727 , - 1596 , - 841 , - 318 , - 27 , - 1824 , - 141 , - 546 , - 1183 , - 196 , - 1297 , - 774 , - 483 , - 424 , - 597 , - 1002 , - 1639 , - 652 , - 1753 , - 1230 , - 939 , - 880 , - 1053 , - 1458 , - 239 , - 1108 , - 353 , - 1686 , - 1395 , - 1336 , - 1509 , - 58 , - 695 , - 1564 , - 809 , - 286 , - 1851 , - 1792 , - 109 , - 514 , - 1151 , - 164 , - 1265 , - 742 , - 451 , - 392 , - 565 , - 970 , - 1607 , - 620 , - 1721 , - 1198 , - 907 , - 848 , - 1021 , - 1426 , - 207 , - 1076 , - 321 , - 1654 , - 1363 , - 1304 , - 1477 , - 26 , - 663 , - 1532 , - 777 , - 254 , - 1819 , - 1760 , - 77 , - 482 , - 1119 , - 132 , - 1233 , - 710 , - 419 , - 360 , - 533 , - 938 , - 1575 , - 588 , - 1689 , - 1166 , - 875 , - 816 , - 989 , - 1394 , - 175 , - 1044 , - 289 , - 1622 , - 1331 , - 1272 , - 1445 , - 1850 , - 631 , - 1500 , - 745 , - 222 , - 1787 , - 1728 , - 45 , - 450 , - 1087 , - 100 , - 1201 , - 678 , - 387 , - 328 , - 501 , - 906 , - 1543 , - 556 , - 1657 , - 1134 , - 843 , - 784 , - 957 , - 1362 , - 143 , - 1012 , - 257 , - 1590 , - 1299 , - 1240 , - 1413 , - 1818 , - 599 , - 1468 , - 713 , - 190 , - 1755 , - 1696 , - 13 , - 418 , - 1055 , - 68 , - 1169 , - 646 , - 355 , - 296 , - 469 , - 874 , - 1511 , - 524 , - 1625 , - 1102 , - 811 , - 752 , - 925 , - 1330 , - 111 , - 980 , - 225 , - 1558 , - 1267 , - 1208 , - 1381 , - 1786 , - 567 , - 1436 , - 681 , - 158 , - 1723 , - 1664 , - 1837 , - 386 , - 1023 , - 36 , - 1137 , - 614 , - 323 , - 264 , - 437 , - 842 , - 1479 , - 492 , - 1593 , - 1070 , - 779 , - 720 , - 893 , - 1298 , - 79 , - 948 , - 193 , - 1526 , - 1235 , - 1176 , - 1349 , - 1754 , - 535 , - 1404 , - 649 , - 126 , - 1691 , - 1632 , - 1805 , - 354 , - 991 , - 4 , - 1105 , - 582 , - 291 , - 232 , - 405 , - 810 , - 1447 , - 460 , - 1561 , - 1038 , - 747 , - 688 , - 861 , - 1266 , - 47 , - 916 , - 161 , - 1494 , - 1203 , - 1144 , - 1317 , - 1722 , - 503 , - 1372 , - 617 , - 94 , - 1659 , - 1600 , - 1773 , - 322 , - 959 , - 1828 , - 1073 , - 550 , - 259 , - 200 , - 373 , - 778 , - 1415 , - 428 , - 1529 , - 1006 , - 715 , - 656 , - 829 , - 1234 , - 15 , - 884 , - 129 , - 1462 , - 1171 , - 1112 , - 1285 , - 1690 , - 471 , - 1340 , - 585 , - 62 , - 1627 , - 1568 , - 1741 , - 290 , - 927 , - 1796 , - 1041 , - 518 , - 227 , - 168 , - 341 , - 746 , - 1383 , - 396 , - 1497 , - 974 , - 683 , - 624 , - 797 , - 1202 , - 1839 , - 852 , - 97 , - 1430 , - 1139 , - 1080 , - 1253 , - 1658 , - 439 , - 1308 , - 553 , - 30 , - 1595 , - 1536 , - 1709 , - 258 , - 895 , - 1764 , - 1009 , - 486 , - 195 , - 136 , - 309 , - 714 , - 1351 , - 364 , - 1465 , - 942 , - 651 , - 592 , - 765 , - 1170 , - 1807 , - 820 , - 65 , - 1398 , - 1107 , - 1048 , - 1221 , - 1626 , - 407 , - 1276 , - 521 , - 1854 , - 1563 , - 1504 , - 1677 , - 226 , - 863 , - 1732 , - 977 , - 454 , - 163 , - 104 , - 277 , - 682 , - 1319 , - 332 , - 1433 , - 910 , - 619 , - 560 , - 733 , - 1138 , - 1775 , - 788 , - 33 , - 1366 , - 1075 , - 1016 , - 1189 , - 1594 , - 375 , - 1244 , - 489 , - 1822 , - 1531 , - 1472 , - 1645 , - 194 , - 831 , - 1700 , - 945 , - 422 , - 131 , - 72 , - 245 , - 650 , - 1287 , - 300 , - 1401 , - 878 , - 587 , - 528 , - 701 , - 1106 , - 1743 , - 756 , - 1 , - 1334 , - 1043 , - 984 , - 1157 , - 1562 , - 343 , - 1212 , - 457 , - 1790 , - 1499 , - 1440 , - 1613 , - 162 , - 799 , - 1668 , - 913 , - 390 , - 99 , - 40 , - 213 , - 618 , - 1255 , - 268 , - 1369 , - 846 , - 555 , - 496 , - 669 , - 1074 , - 1711 , - 724 , - 1825 , - 1302 , - 1011 , - 952 , - 1125 , - 1530 , - 311 , - 1180 , - 425 , - 1758 , - 1467 , - 1408 , - 1581 , - 130 , - 767 , - 1636 , - 881 , - 358 , - 67 , - 8 , - 181 , - 586 , - 1223 , - 236 , - 1337 , - 814 , - 523 , - 464 , - 637 , - 1042 , - 1679 , - 692 , - 1793 , - 1270 , - 979 , - 920 , - 1093 , - 1498 , - 279 , - 1148 , - 393 , - 1726 , - 1435 , - 1376 , - 1549 , - 98 , - 735 , - 1604 , - 849 , - 326 , - 35 , - 1832 , - 149 , - 554 , - 1191 , - 204 , - 1305 , - 782 , - 491 , - 432 , - 605 , - 1010 , - 1647 , - 660 , - 1761 , - 1238 , - 947 , - 888 , - 1061 , - 1466 , - 247 , - 1116 , - 361 , - 1694 , - 1403 , - 1344 , - 1517 , - 66 , - 703 , - 1572 , - 817 , - 294 , - 3 , - 1800 , - 117 , - 522 , - 1159 , - 172 , - 1273 , - 750 , - 459 , - 400 , - 573 , - 978 , - 1615 , - 628 , - 1729 , - 1206 , - 915 , - 856 , - 1029 , - 1434 , - 215 , - 1084 , - 329 , - 1662 , - 1371 , - 1312 , - 1485 , - 34 , - 671 , - 1540 , - 785 , - 262 , - 1827 , - 1768 , - 85 , - 490 , - 1127 , - 140 , - 1241 , - 718 , - 427 , - 368 , - 541 , - 946 , - 1583 , - 596 , - 1697 , - 1174 , - 883 , - 824 , - 997 , - 1402 , - 183 , - 1052 , - 297 , - 1630 , - 1339 , - 1280 , - 1453 , - 2 , - 639 , - 1508 , - 753 , - 230 , - 1795 , - 1736 , - 53 , - 458 , - 1095 , - 108 , - 1209 , - 686 , - 395 , - 336 , - 509 , - 914 , - 1551 , - 564 , - 1665 , - 1142 , - 851 , - 792 , - 965 , - 1370 , - 151 , - 1020 , - 265 , - 1598 , - 1307 , - 1248 , - 1421 , - 1826 , - 607 , - 1476 , - 721 , - 198 , - 1763 , - 1704 , - 21 , - 426 , - 1063 , - 76 , - 1177 , - 654 , - 363 , - 304 , - 477 , - 882 , - 1519 , - 532 , - 1633 , - 1110 , - 819 , - 760 , - 933 , - 1338 , - 119 , - 988 , - 233 , - 1566 , - 1275 , - 1216 , - 1389 , - 1794 , - 575 , - 1444 , - 689 , - 166 , - 1731 , - 1672 , - 1845 , - 394 , - 1031 , - 44 , - 1145 , - 622 , - 331 , - 272 , - 445 , - 850 , - 1487 , - 500 , - 1601 , - 1078 , - 787 , - 728 , - 901 , - 1306 , - 87 , - 956 , - 201 , - 1534 , - 1243 , - 1184 , - 1357 , - 1762 , - 543 , - 1412 , - 657 , - 134 , - 1699 , - 1640 , - 1813 , - 362 , - 999 , - 12 , - 1113 , - 590 , - 299 , - 240 , - 413 , - 818 , - 1455 , - 468 , - 1569 , - 1046 , - 755 , - 696 , - 869 , - 1274 , - 55 , - 924 , - 169 , - 1502 , - 1211 , - 1152 , - 1325 , - 1730 , - 511 , - 1380 , - 625 , - 102 , - 1667 , - 1608 , - 1781 , - 330 , - 967 , - 1836 , - 1081 , - 558 , - 267 , - 208 , - 381 , - 786 , - 1423 , - 436 , - 1537 , - 1014 , - 723 , - 664 , - 837 , - 1242 , - 23 , - 892 , - 137 , - 1470 , - 1179 , - 1120 , - 1293 , - 1698 , - 479 , - 1348 , - 593 , - 70 , - 1635 , - 1576 , - 1749 , - 298 , - 935 , - 1804 , - 1049 , - 526 , - 235 , - 176 , - 349 , - 754 , - 1391 , - 404 , - 1505 , - 982 , - 691 , - 632 , - 805 , - 1210 , - 1847 , - 860 , - 105 , - 1438 , - 1147 , - 1088 , - 1261 , - 1666 , - 447 , - 1316 , - 561 , - 38 , - 1603 , - 1544 , - 1717 , - 266 , - 903 , - 1772 , - 1017 , - 494 , - 203 , - 144 , - 317 , - 722 , - 1359 , - 372 , - 1473 , - 950 , - 659 , - 600 , - 773 , - 1178 , - 1815 , - 828 , - 73 , - 1406 , - 1115 , - 1056 , - 1229 , - 1634 , - 415 , - 1284 , - 529 , - 6 , - 1571 , - 1512 , - 1685 , - 234 , - 871 , - 1740 , - 985 , - 462 , - 171 , - 112 , - 285 , - 690 , - 1327 , - 340 , - 1441 , - 918 , - 627 , - 568 , - 741 , - 1146 , - 1783 , - 796 , - 41 , - 1374 , - 1083 , - 1024 , - 1197 , - 1602 , - 383 , - 1252 , - 497 , - 1830 , - 1539 , - 1480 , - 1653 , - 202 , - 839 , - 1708 , - 953 , - 430 , - 139 , - 80 , - 253 , - 658 , - 1295 , - 308 , - 1409 , - 886 , - 595 , - 536 , - 709 , - 1114 , - 1751 , - 764 , - 9 , - 1342 , - 1051 , - 992 , - 1165 , - 1570 , - 351 , - 1220 , - 465 , - 1798 , - 1507 , - 1448 , - 1621 , - 170 , - 807 , - 1676 , - 921 , - 398 , - 107 , - 48 , - 221 , - 626 , - 1263 , - 276 , - 1377 , - 854 , - 563 , - 504 , - 677 , - 1082 , - 1719 , - 732 , - 1833 , - 1310 , - 1019 , - 960 , - 1133 , - 1538 , - 319 , - 1188 , - 433 , - 1766 , - 1475 , - 1416 , - 1589 , - 138 , - 775 , - 1644 , - 889 , - 366 , - 75 , - 16 , - 189 , - 594 , - 1231 , - 244 , - 1345 , - 822 , - 531 , - 472 , - 645 , - 1050 , - 1687 , - 700 , - 1801 , - 1278 , - 987 , - 928 , - 1101 , - 1506 , - 287 , - 1156 , - 401 , - 1734 , - 1443 , - 1384 , - 1557 , - 106 , - 743 , - 1612 , - 857 , - 334 , - 43 , - 1840 , - 157 , - 562 , - 1199 , - 212 , - 1313 , - 790 , - 499 , - 440 , - 613 , - 1018 , - 1655 , - 668 , - 1769 , - 1246 , - 955 , - 896 , - 1069 , - 1474 , - 255 , - 1124 , - 369 , - 1702 , - 1411 , - 1352 , - 1525 , - 74 , - 711 , - 1580 , - 825 , - 302 , - 11 , - 1808 , - 125 , - 530 , - 1167 , - 180 , - 1281 , - 758 , - 467 , - 408 , - 581 , - 986 , - 1623 , - 636 , - 1737 , - 1214 , - 923 , - 864 , - 1037 , - 1442 , - 223 , - 1092 , - 337 , - 1670 , - 1379 , - 1320 , - 1493 , - 42 , - 679 , - 1548 , - 793 , - 270 , - 1835 , - 1776 , - 93 , - 498 , - 1135 , - 148 , - 1249 , - 726 , - 435 , - 376 , - 549 , - 954 , - 1591 , - 604 , - 1705 , - 1182 , - 891 , - 832 , - 1005 , - 1410 , - 191 , - 1060 , - 305 , - 1638 , - 1347 , - 1288 , - 1461 , - 10 , - 647 , - 1516 , - 761 , - 238 , - 1803 , - 1744 , - 61 , - 466 , - 1103 , - 116 , - 1217 , - 694 , - 403 , - 344 , - 517 , - 922 , - 1559 , - 572 , - 1673 , - 1150 , - 859 , - 800 , - 973 , - 1378 , - 159 , - 1028 , - 273 , - 1606 , - 1315 , - 1256 , - 1429 , - 1834 , - 615 , - 1484 , - 729 , - 206 , - 1771 , - 1712 , - 29 , - 434 , - 1071 , - 84 , - 1185 , - 662 , - 371 , - 312 , - 485 , - 890 , - 1527 , - 540 , - 1641 , - 1118 , - 827 , - 768 , - 941 , - 1346 , - 127 , - 996 , - 241 , - 1574 , - 1283 , - 1224 , - 1397 , - 1802 , - 583 , - 1452 , - 697 , - 174 , - 1739 , - 1680 , - 1853 , - 402 , - 1039 , - 52 , - 1153 , - 630 , - 339 , - 280 , - 453 , - 858 , - 1495 , - 508 , - 1609 , - 1086 , - 795 , - 736 , - 909 , - 1314 , - 95 , - 964 , - 209 , - 1542 , - 1251 , - 1192 , - 1365 , - 1770 , - 551 , - 1420 , - 665 , - 142 , - 1707 , - 1648 , - 1821 , - 370 , - 1007 , - 20 , - 1121 , - 598 , - 307 , - 248 , - 421 , - 826 , - 1463 , - 476 , - 1577 , - 1054 , - 763 , - 704 , - 877 , - 1282 , - 63 , - 932 , - 177 , - 1510 , - 1219 , - 1160 , - 1333 , - 1738 , - 519 , - 1388 , - 633 , - 110 , - 1675 , - 1616 , - 1789 , - 338 , - 975 , - 1844 , - 1089 , - 566 , - 275 , - 216 , - 389 , - 794 , - 1431 , - 444 , - 1545 , - 1022 , - 731 , - 672 , - 845 , - 1250 , - 31 , - 900 , - 145 , - 1478 , - 1187 , - 1128 , - 1301 , - 1706 , - 487 , - 1356 , - 601 , - 78 , - 1643 , - 1584 , - 1757 , - 306 , - 943 , - 1812 , - 1057 , - 534 , - 243 , - 184 , - 357 , - 762 , - 1399 , - 412 , - 1513 , - 990 , - 699 , - 640 , - 813 , - 1218 , - 1855 , - 868 , - 113 , - 1446 , - 1155 , - 1096 , - 1269 , - 1674 , - 455 , - 1324 , - 569 , - 46 , - 1611 , - 1552 , - 1725 , - 274 , - 911 , - 1780 , - 1025 , - 502 , - 211 , - 152 , - 325 , - 730 , - 1367 , - 380 , - 1481 , - 958 , - 667 , - 608 , - 781 , - 1186 , - 1823 , - 836 , - 81 , - 1414 , - 1123 , - 1064 , - 1237 , - 1642 , - 423 , - 1292 , - 537 , - 14 , - 1579 , - 1520 , - 1693 , - 242 , - 879 , - 1748 , - 993 , - 470 , - 179 , - 120 , - 293 , - 698 , - 1335 , - 348 , - 1449 , - 926 , - 635 , - 576 , - 749 , - 1154 , - 1791 , - 804 , - 49 , - 1382 , - 1091 , - 1032 , - 1205 , - 1610 , - 391 , - 1260 , - 505 , - 1838 , - 1547 , - 1488 , - 1661 , - 210 , - 847 , - 1716 , - 961 , - 438 , - 147 , - 88 , - 261 , - 666 , - 1303 , - 316 , - 1417 , - 894 , - 603 , - 544 , - 717 , - 1122 , - 1759 , - 772 , - 17 , - 1350 , - 1059 , - 1000 , - 1173 , - 1578 , - 359 , - 1228 , - 473 , - 1806 , - 1515 , - 1456 , - 1629 , - 178 , - 815 , - 1684 , - 929 , - 406 , - 115 , - 56 , - 229 , - 634 , - 1271 , - 284 , - 1385 , - 862 , - 571 , - 512 , - 685 , - 1090 , - 1727 , - 740 , - 1841 , - 1318 , - 1027 , - 968 , - 1141 , - 1546 , - 327 , - 1196 , - 441 , - 1774 , - 1483 , - 1424 , - 1597 , - 146 , - 783 , - 1652 , - 897 , - 374 , - 83 , - 24 , - 197 , - 602 , - 1239 , - 252 , - 1353 , - 830 , - 539 , - 480 , - 653 , - 1058 , - 1695 , - 708 , - 1809 , - 1286 , - 995 , - 936 , - 1109 , - 1514 , - 295 , - 1164 , - 409 , - 1742 , - 1451 , - 1392 , - 1565 , - 114 , - 751 , - 1620 , - 865 , - 342 , - 51 , - 1848 , - 165 , - 570 , - 1207 , - 220 , - 1321 , - 798 , - 507 , - 448 , - 621 , - 1026 , - 1663 , - 676 , - 1777 , - 1254 , - 963 , - 904 , - 1077 , - 1482 , - 263 , - 1132 , - 377 , - 1710 , - 1419 , - 1360 , - 1533 , - 82 , - 719 , - 1588 , - 833 , - 310 , - 19 , - 1816 , - 133 , - 538 , - 1175 , - 188 , - 1289 , - 766 , - 475 , - 416 , - 589 , - 994 , - 1631 , - 644 , - 1745 , - 1222 , - 931 , - 872 , - 1045 , - 1450 , - 231 , - 1100 , - 345 , - 1678 , - 1387 , - 1328 , - 1501 , - 50 , - 687 , - 1556 , - 801 , - 278 , - 1843 , - 1784 , - 101 , - 506 , - 1143 , - 156 , - 1257 , - 734 , - 443 , - 384 , - 557 , - 962 , - 1599 , - 612 , - 1713 , - 1190 , - 899 , - 840 , - 1013 , - 1418 , - 199 , - 1068 , - 313 , - 1646 , - 1355 , - 1296 , - 1469 , - 18 , - 655 , - 1524 , - 769 , - 246 , - 1811 , - 1752 , - 69 , - 474 , - 1111 , - 124 , - 1225 , - 702 , - 411 , - 352 , - 525 , - 930 , - 1567 , - 580 , - 1681 , - 1158 , - 867 , - 808 , - 981 , - 1386 , - 167 , - 1036 , - 281 , - 1614 , - 1323 , - 1264 , - 1437 , - 1842 , - 623 , - 1492 , - 737 , - 214 , - 1779 , - 1720 , - 37 , - 442 , - 1079 , - 92 , - 1193 , - 670 , - 379 , - 320 , - 493 , - 898 , - 1535 , - 548 , - 1649 , - 1126 , - 835 , - 776 , - 949 , - 1354 , - 135 , - 1004 , - 249 , - 1582 , - 1291 , - 1232 , - 1405 , - 1810 , - 591 , - 1460 , - 705 , - 182 , - 1747 , - 1688 , - 5 , - 410 , - 1047 , - 60 , - 1161 , - 638 , - 347 , - 288 , - 461 , - 866 , - 1503 , - 516 , - 1617 , - 1094 , - 803 , - 744 , - 917 , - 1322 , - 103 , - 972 , - 217 , - 1550 , - 1259 , - 1200 , - 1373 , - 1778 , - 559 , - 1428 , - 673 , - 150 , - 1715 , - 1656 , - 1829 , - 378 , - 1015 , - 28 , - 1129 , - 606 , - 315 , - 256 , - 429 , - 834 , - 1471 , - 484 , - 1585 , - 1062 , - 771 , - 712 , - 885 , - 1290 , - 71 , - 940 , - 185 , - 1518 , - 1227 , - 1168 , - 1341 , - 1746 , - 527 , - 1396 , - 641 , - 118 , - 1683 , - 1624 , - 1797 , - 346 , - 983 , - 1852 , - 1097 , - 574 , - 283 , - 224 , - 397 , - 802 , - 1439 , - 452 , - 1553 , - 1030 , - 739 , - 680 , - 853 , - 1258 , - 39 , - 908 , - 153 , - 1486 , - 1195 , - 1136 , - 1309 , - 1714 , - 495 , - 1364 , - 609 , - 86 , - 1651 , - 1592 , - 1765 , - 314 , - 951 , - 1820 , - 1065 , - 542 , - 251 , - 192 , - 365 , - 770 , - 1407 , - 420 , - 1521 , - 998 , - 707 , - 648 , - 821 , - 1226 , - 7 , - 876 , - 121 , - 1454 , - 1163 , - 1104 , - 1277 , - 1682 , - 463 , - 1332 , - 577 , - 54 , - 1619 , - 1560 , - 1733 , - 282 , - 919 , - 1788 , - 1033 , - 510 , - 219 , - 160 , - 333 , - 738 , - 1375 , - 388 , - 1489 , - 966 , - 675 , - 616 , - 789 , - 1194 , - 1831 , - 844 , - 89 , - 1422 , - 1131 , - 1072 , - 1245 , - 1650 , - 431 , - 1300 , - 545 , - 22 , - 1587 , - 1528 , - 1701 , - 250 , - 887 , - 1756 , - 1001 , - 478 , - 187 , - 128 , - 301 , - 706 , - 1343 , - 356 , - 1457 , - 934 , - 643 , - 584 , - 757 , - 1162 , - 1799 , - 812 , - 57 , - 1390 , - 1099 , - 1040 , - 1213 , - 1618 , - 399 , - 1268 , - 513 , - 1846 , - 1555 , - 1496 , - 1669 , - 218 , - 855 , - 1724 , - 969 , - 446 , - 155 , - 96 , - 269 , - 674 , - 1311 , - 324 , - 1425 , - 902 , - 611 , - 552 , - 725 , - 1130 , - 1767 , - 780 , - 25 , - 1358 , - 1067 , - 1008 , - 1181 , - 1586 , - 367 , - 1236 , - 481 , - 1814 , - 1523 , - 1464 , - 1637 , - 186 , - 823 , - 1692 , - 937 , - 414 , - 123 , - 64 , - 237 , - 642 , - 1279 , - 292 , - 1393 , - 870 , - 579 , - 520 , - 693 , - 1098 , - 1735 , - 748 , - 1849 , - 1326 , - 1035 , - 976 , - 1149 , - 1554 , - 335 , - 1204 , - 449 , - 1782 , - 1491 , - 1432 , - 1605 , - 154 , - 791 , - 1660 , - 905 , - 382 , - 91 , - 32 , - 205 , - 610 , - 1247 , - 260 , - 1361 , - 838 , - 547 , - 488 , - 661 , - 1066 , - 1703 , - 716 , - 1817 , - 1294 , - 1003 , - 944 , - 1117 , - 1522 , - 303 , - 1172 , - 417 , - 1750 , - 1459 , - 1400 , - 1573 , - 122 , - 759 , - 1628 , - 873 , - 350 , - 59 , - 0 , - 399 , - 1506 , - 1433 , - 180 , - 1523 , - 1686 , - 669 , - 360 , - 759 , - 1866 , - 1793 , - 540 , - 1883 , - 158 , - 1029 , - 720 , - 1119 , - 338 , - 265 , - 900 , - 355 , - 518 , - 1389 , - 1080 , - 1479 , - 698 , - 625 , - 1260 , - 715 , - 878 , - 1749 , - 1440 , - 1839 , - 1058 , - 985 , - 1620 , - 1075 , - 1238 , - 221 , - 1800 , - 311 , - 1418 , - 1345 , - 92 , - 1435 , - 1598 , - 581 , - 272 , - 671 , - 1778 , - 1705 , - 452 , - 1795 , - 70 , - 941 , - 632 , - 1031 , - 250 , - 177 , - 812 , - 267 , - 430 , - 1301 , - 992 , - 1391 , - 610 , - 537 , - 1172 , - 627 , - 790 , - 1661 , - 1352 , - 1751 , - 970 , - 897 , - 1532 , - 987 , - 1150 , - 133 , - 1712 , - 223 , - 1330 , - 1257 , - 4 , - 1347 , - 1510 , - 493 , - 184 , - 583 , - 1690 , - 1617 , - 364 , - 1707 , - 1870 , - 853 , - 544 , - 943 , - 162 , - 89 , - 724 , - 179 , - 342 , - 1213 , - 904 , - 1303 , - 522 , - 449 , - 1084 , - 539 , - 702 , - 1573 , - 1264 , - 1663 , - 882 , - 809 , - 1444 , - 899 , - 1062 , - 45 , - 1624 , - 135 , - 1242 , - 1169 , - 1804 , - 1259 , - 1422 , - 405 , - 96 , - 495 , - 1602 , - 1529 , - 276 , - 1619 , - 1782 , - 765 , - 456 , - 855 , - 74 , - 1 , - 636 , - 91 , - 254 , - 1125 , - 816 , - 1215 , - 434 , - 361 , - 996 , - 451 , - 614 , - 1485 , - 1176 , - 1575 , - 794 , - 721 , - 1356 , - 811 , - 974 , - 1845 , - 1536 , - 47 , - 1154 , - 1081 , - 1716 , - 1171 , - 1334 , - 317 , - 8 , - 407 , - 1514 , - 1441 , - 188 , - 1531 , - 1694 , - 677 , - 368 , - 767 , - 1874 , - 1801 , - 548 , - 3 , - 166 , - 1037 , - 728 , - 1127 , - 346 , - 273 , - 908 , - 363 , - 526 , - 1397 , - 1088 , - 1487 , - 706 , - 633 , - 1268 , - 723 , - 886 , - 1757 , - 1448 , - 1847 , - 1066 , - 993 , - 1628 , - 1083 , - 1246 , - 229 , - 1808 , - 319 , - 1426 , - 1353 , - 100 , - 1443 , - 1606 , - 589 , - 280 , - 679 , - 1786 , - 1713 , - 460 , - 1803 , - 78 , - 949 , - 640 , - 1039 , - 258 , - 185 , - 820 , - 275 , - 438 , - 1309 , - 1000 , - 1399 , - 618 , - 545 , - 1180 , - 635 , - 798 , - 1669 , - 1360 , - 1759 , - 978 , - 905 , - 1540 , - 995 , - 1158 , - 141 , - 1720 , - 231 , - 1338 , - 1265 , - 12 , - 1355 , - 1518 , - 501 , - 192 , - 591 , - 1698 , - 1625 , - 372 , - 1715 , - 1878 , - 861 , - 552 , - 951 , - 170 , - 97 , - 732 , - 187 , - 350 , - 1221 , - 912 , - 1311 , - 530 , - 457 , - 1092 , - 547 , - 710 , - 1581 , - 1272 , - 1671 , - 890 , - 817 , - 1452 , - 907 , - 1070 , - 53 , - 1632 , - 143 , - 1250 , - 1177 , - 1812 , - 1267 , - 1430 , - 413 , - 104 , - 503 , - 1610 , - 1537 , - 284 , - 1627 , - 1790 , - 773 , - 464 , - 863 , - 82 , - 9 , - 644 , - 99 , - 262 , - 1133 , - 824 , - 1223 , - 442 , - 369 , - 1004 , - 459 , - 622 , - 1493 , - 1184 , - 1583 , - 802 , - 729 , - 1364 , - 819 , - 982 , - 1853 , - 1544 , - 55 , - 1162 , - 1089 , - 1724 , - 1179 , - 1342 , - 325 , - 16 , - 415 , - 1522 , - 1449 , - 196 , - 1539 , - 1702 , - 685 , - 376 , - 775 , - 1882 , - 1809 , - 556 , - 11 , - 174 , - 1045 , - 736 , - 1135 , - 354 , - 281 , - 916 , - 371 , - 534 , - 1405 , - 1096 , - 1495 , - 714 , - 641 , - 1276 , - 731 , - 894 , - 1765 , - 1456 , - 1855 , - 1074 , - 1001 , - 1636 , - 1091 , - 1254 , - 237 , - 1816 , - 327 , - 1434 , - 1361 , - 108 , - 1451 , - 1614 , - 597 , - 288 , - 687 , - 1794 , - 1721 , - 468 , - 1811 , - 86 , - 957 , - 648 , - 1047 , - 266 , - 193 , - 828 , - 283 , - 446 , - 1317 , - 1008 , - 1407 , - 626 , - 553 , - 1188 , - 643 , - 806 , - 1677 , - 1368 , - 1767 , - 986 , - 913 , - 1548 , - 1003 , - 1166 , - 149 , - 1728 , - 239 , - 1346 , - 1273 , - 20 , - 1363 , - 1526 , - 509 , - 200 , - 599 , - 1706 , - 1633 , - 380 , - 1723 , - 1886 , - 869 , - 560 , - 959 , - 178 , - 105 , - 740 , - 195 , - 358 , - 1229 , - 920 , - 1319 , - 538 , - 465 , - 1100 , - 555 , - 718 , - 1589 , - 1280 , - 1679 , - 898 , - 825 , - 1460 , - 915 , - 1078 , - 61 , - 1640 , - 151 , - 1258 , - 1185 , - 1820 , - 1275 , - 1438 , - 421 , - 112 , - 511 , - 1618 , - 1545 , - 292 , - 1635 , - 1798 , - 781 , - 472 , - 871 , - 90 , - 17 , - 652 , - 107 , - 270 , - 1141 , - 832 , - 1231 , - 450 , - 377 , - 1012 , - 467 , - 630 , - 1501 , - 1192 , - 1591 , - 810 , - 737 , - 1372 , - 827 , - 990 , - 1861 , - 1552 , - 63 , - 1170 , - 1097 , - 1732 , - 1187 , - 1350 , - 333 , - 24 , - 423 , - 1530 , - 1457 , - 204 , - 1547 , - 1710 , - 693 , - 384 , - 783 , - 2 , - 1817 , - 564 , - 19 , - 182 , - 1053 , - 744 , - 1143 , - 362 , - 289 , - 924 , - 379 , - 542 , - 1413 , - 1104 , - 1503 , - 722 , - 649 , - 1284 , - 739 , - 902 , - 1773 , - 1464 , - 1863 , - 1082 , - 1009 , - 1644 , - 1099 , - 1262 , - 245 , - 1824 , - 335 , - 1442 , - 1369 , - 116 , - 1459 , - 1622 , - 605 , - 296 , - 695 , - 1802 , - 1729 , - 476 , - 1819 , - 94 , - 965 , - 656 , - 1055 , - 274 , - 201 , - 836 , - 291 , - 454 , - 1325 , - 1016 , - 1415 , - 634 , - 561 , - 1196 , - 651 , - 814 , - 1685 , - 1376 , - 1775 , - 994 , - 921 , - 1556 , - 1011 , - 1174 , - 157 , - 1736 , - 247 , - 1354 , - 1281 , - 28 , - 1371 , - 1534 , - 517 , - 208 , - 607 , - 1714 , - 1641 , - 388 , - 1731 , - 6 , - 877 , - 568 , - 967 , - 186 , - 113 , - 748 , - 203 , - 366 , - 1237 , - 928 , - 1327 , - 546 , - 473 , - 1108 , - 563 , - 726 , - 1597 , - 1288 , - 1687 , - 906 , - 833 , - 1468 , - 923 , - 1086 , - 69 , - 1648 , - 159 , - 1266 , - 1193 , - 1828 , - 1283 , - 1446 , - 429 , - 120 , - 519 , - 1626 , - 1553 , - 300 , - 1643 , - 1806 , - 789 , - 480 , - 879 , - 98 , - 25 , - 660 , - 115 , - 278 , - 1149 , - 840 , - 1239 , - 458 , - 385 , - 1020 , - 475 , - 638 , - 1509 , - 1200 , - 1599 , - 818 , - 745 , - 1380 , - 835 , - 998 , - 1869 , - 1560 , - 71 , - 1178 , - 1105 , - 1740 , - 1195 , - 1358 , - 341 , - 32 , - 431 , - 1538 , - 1465 , - 212 , - 1555 , - 1718 , - 701 , - 392 , - 791 , - 10 , - 1825 , - 572 , - 27 , - 190 , - 1061 , - 752 , - 1151 , - 370 , - 297 , - 932 , - 387 , - 550 , - 1421 , - 1112 , - 1511 , - 730 , - 657 , - 1292 , - 747 , - 910 , - 1781 , - 1472 , - 1871 , - 1090 , - 1017 , - 1652 , - 1107 , - 1270 , - 253 , - 1832 , - 343 , - 1450 , - 1377 , - 124 , - 1467 , - 1630 , - 613 , - 304 , - 703 , - 1810 , - 1737 , - 484 , - 1827 , - 102 , - 973 , - 664 , - 1063 , - 282 , - 209 , - 844 , - 299 , - 462 , - 1333 , - 1024 , - 1423 , - 642 , - 569 , - 1204 , - 659 , - 822 , - 1693 , - 1384 , - 1783 , - 1002 , - 929 , - 1564 , - 1019 , - 1182 , - 165 , - 1744 , - 255 , - 1362 , - 1289 , - 36 , - 1379 , - 1542 , - 525 , - 216 , - 615 , - 1722 , - 1649 , - 396 , - 1739 , - 14 , - 885 , - 576 , - 975 , - 194 , - 121 , - 756 , - 211 , - 374 , - 1245 , - 936 , - 1335 , - 554 , - 481 , - 1116 , - 571 , - 734 , - 1605 , - 1296 , - 1695 , - 914 , - 841 , - 1476 , - 931 , - 1094 , - 77 , - 1656 , - 167 , - 1274 , - 1201 , - 1836 , - 1291 , - 1454 , - 437 , - 128 , - 527 , - 1634 , - 1561 , - 308 , - 1651 , - 1814 , - 797 , - 488 , - 887 , - 106 , - 33 , - 668 , - 123 , - 286 , - 1157 , - 848 , - 1247 , - 466 , - 393 , - 1028 , - 483 , - 646 , - 1517 , - 1208 , - 1607 , - 826 , - 753 , - 1388 , - 843 , - 1006 , - 1877 , - 1568 , - 79 , - 1186 , - 1113 , - 1748 , - 1203 , - 1366 , - 349 , - 40 , - 439 , - 1546 , - 1473 , - 220 , - 1563 , - 1726 , - 709 , - 400 , - 799 , - 18 , - 1833 , - 580 , - 35 , - 198 , - 1069 , - 760 , - 1159 , - 378 , - 305 , - 940 , - 395 , - 558 , - 1429 , - 1120 , - 1519 , - 738 , - 665 , - 1300 , - 755 , - 918 , - 1789 , - 1480 , - 1879 , - 1098 , - 1025 , - 1660 , - 1115 , - 1278 , - 261 , - 1840 , - 351 , - 1458 , - 1385 , - 132 , - 1475 , - 1638 , - 621 , - 312 , - 711 , - 1818 , - 1745 , - 492 , - 1835 , - 110 , - 981 , - 672 , - 1071 , - 290 , - 217 , - 852 , - 307 , - 470 , - 1341 , - 1032 , - 1431 , - 650 , - 577 , - 1212 , - 667 , - 830 , - 1701 , - 1392 , - 1791 , - 1010 , - 937 , - 1572 , - 1027 , - 1190 , - 173 , - 1752 , - 263 , - 1370 , - 1297 , - 44 , - 1387 , - 1550 , - 533 , - 224 , - 623 , - 1730 , - 1657 , - 404 , - 1747 , - 22 , - 893 , - 584 , - 983 , - 202 , - 129 , - 764 , - 219 , - 382 , - 1253 , - 944 , - 1343 , - 562 , - 489 , - 1124 , - 579 , - 742 , - 1613 , - 1304 , - 1703 , - 922 , - 849 , - 1484 , - 939 , - 1102 , - 85 , - 1664 , - 175 , - 1282 , - 1209 , - 1844 , - 1299 , - 1462 , - 445 , - 136 , - 535 , - 1642 , - 1569 , - 316 , - 1659 , - 1822 , - 805 , - 496 , - 895 , - 114 , - 41 , - 676 , - 131 , - 294 , - 1165 , - 856 , - 1255 , - 474 , - 401 , - 1036 , - 491 , - 654 , - 1525 , - 1216 , - 1615 , - 834 , - 761 , - 1396 , - 851 , - 1014 , - 1885 , - 1576 , - 87 , - 1194 , - 1121 , - 1756 , - 1211 , - 1374 , - 357 , - 48 , - 447 , - 1554 , - 1481 , - 228 , - 1571 , - 1734 , - 717 , - 408 , - 807 , - 26 , - 1841 , - 588 , - 43 , - 206 , - 1077 , - 768 , - 1167 , - 386 , - 313 , - 948 , - 403 , - 566 , - 1437 , - 1128 , - 1527 , - 746 , - 673 , - 1308 , - 763 , - 926 , - 1797 , - 1488 , - 1887 , - 1106 , - 1033 , - 1668 , - 1123 , - 1286 , - 269 , - 1848 , - 359 , - 1466 , - 1393 , - 140 , - 1483 , - 1646 , - 629 , - 320 , - 719 , - 1826 , - 1753 , - 500 , - 1843 , - 118 , - 989 , - 680 , - 1079 , - 298 , - 225 , - 860 , - 315 , - 478 , - 1349 , - 1040 , - 1439 , - 658 , - 585 , - 1220 , - 675 , - 838 , - 1709 , - 1400 , - 1799 , - 1018 , - 945 , - 1580 , - 1035 , - 1198 , - 181 , - 1760 , - 271 , - 1378 , - 1305 , - 52 , - 1395 , - 1558 , - 541 , - 232 , - 631 , - 1738 , - 1665 , - 412 , - 1755 , - 30 , - 901 , - 592 , - 991 , - 210 , - 137 , - 772 , - 227 , - 390 , - 1261 , - 952 , - 1351 , - 570 , - 497 , - 1132 , - 587 , - 750 , - 1621 , - 1312 , - 1711 , - 930 , - 857 , - 1492 , - 947 , - 1110 , - 93 , - 1672 , - 183 , - 1290 , - 1217 , - 1852 , - 1307 , - 1470 , - 453 , - 144 , - 543 , - 1650 , - 1577 , - 324 , - 1667 , - 1830 , - 813 , - 504 , - 903 , - 122 , - 49 , - 684 , - 139 , - 302 , - 1173 , - 864 , - 1263 , - 482 , - 409 , - 1044 , - 499 , - 662 , - 1533 , - 1224 , - 1623 , - 842 , - 769 , - 1404 , - 859 , - 1022 , - 5 , - 1584 , - 95 , - 1202 , - 1129 , - 1764 , - 1219 , - 1382 , - 365 , - 56 , - 455 , - 1562 , - 1489 , - 236 , - 1579 , - 1742 , - 725 , - 416 , - 815 , - 34 , - 1849 , - 596 , - 51 , - 214 , - 1085 , - 776 , - 1175 , - 394 , - 321 , - 956 , - 411 , - 574 , - 1445 , - 1136 , - 1535 , - 754 , - 681 , - 1316 , - 771 , - 934 , - 1805 , - 1496 , - 7 , - 1114 , - 1041 , - 1676 , - 1131 , - 1294 , - 277 , - 1856 , - 367 , - 1474 , - 1401 , - 148 , - 1491 , - 1654 , - 637 , - 328 , - 727 , - 1834 , - 1761 , - 508 , - 1851 , - 126 , - 997 , - 688 , - 1087 , - 306 , - 233 , - 868 , - 323 , - 486 , - 1357 , - 1048 , - 1447 , - 666 , - 593 , - 1228 , - 683 , - 846 , - 1717 , - 1408 , - 1807 , - 1026 , - 953 , - 1588 , - 1043 , - 1206 , - 189 , - 1768 , - 279 , - 1386 , - 1313 , - 60 , - 1403 , - 1566 , - 549 , - 240 , - 639 , - 1746 , - 1673 , - 420 , - 1763 , - 38 , - 909 , - 600 , - 999 , - 218 , - 145 , - 780 , - 235 , - 398 , - 1269 , - 960 , - 1359 , - 578 , - 505 , - 1140 , - 595 , - 758 , - 1629 , - 1320 , - 1719 , - 938 , - 865 , - 1500 , - 955 , - 1118 , - 101 , - 1680 , - 191 , - 1298 , - 1225 , - 1860 , - 1315 , - 1478 , - 461 , - 152 , - 551 , - 1658 , - 1585 , - 332 , - 1675 , - 1838 , - 821 , - 512 , - 911 , - 130 , - 57 , - 692 , - 147 , - 310 , - 1181 , - 872 , - 1271 , - 490 , - 417 , - 1052 , - 507 , - 670 , - 1541 , - 1232 , - 1631 , - 850 , - 777 , - 1412 , - 867 , - 1030 , - 13 , - 1592 , - 103 , - 1210 , - 1137 , - 1772 , - 1227 , - 1390 , - 373 , - 64 , - 463 , - 1570 , - 1497 , - 244 , - 1587 , - 1750 , - 733 , - 424 , - 823 , - 42 , - 1857 , - 604 , - 59 , - 222 , - 1093 , - 784 , - 1183 , - 402 , - 329 , - 964 , - 419 , - 582 , - 1453 , - 1144 , - 1543 , - 762 , - 689 , - 1324 , - 779 , - 942 , - 1813 , - 1504 , - 15 , - 1122 , - 1049 , - 1684 , - 1139 , - 1302 , - 285 , - 1864 , - 375 , - 1482 , - 1409 , - 156 , - 1499 , - 1662 , - 645 , - 336 , - 735 , - 1842 , - 1769 , - 516 , - 1859 , - 134 , - 1005 , - 696 , - 1095 , - 314 , - 241 , - 876 , - 331 , - 494 , - 1365 , - 1056 , - 1455 , - 674 , - 601 , - 1236 , - 691 , - 854 , - 1725 , - 1416 , - 1815 , - 1034 , - 961 , - 1596 , - 1051 , - 1214 , - 197 , - 1776 , - 287 , - 1394 , - 1321 , - 68 , - 1411 , - 1574 , - 557 , - 248 , - 647 , - 1754 , - 1681 , - 428 , - 1771 , - 46 , - 917 , - 608 , - 1007 , - 226 , - 153 , - 788 , - 243 , - 406 , - 1277 , - 968 , - 1367 , - 586 , - 513 , - 1148 , - 603 , - 766 , - 1637 , - 1328 , - 1727 , - 946 , - 873 , - 1508 , - 963 , - 1126 , - 109 , - 1688 , - 199 , - 1306 , - 1233 , - 1868 , - 1323 , - 1486 , - 469 , - 160 , - 559 , - 1666 , - 1593 , - 340 , - 1683 , - 1846 , - 829 , - 520 , - 919 , - 138 , - 65 , - 700 , - 155 , - 318 , - 1189 , - 880 , - 1279 , - 498 , - 425 , - 1060 , - 515 , - 678 , - 1549 , - 1240 , - 1639 , - 858 , - 785 , - 1420 , - 875 , - 1038 , - 21 , - 1600 , - 111 , - 1218 , - 1145 , - 1780 , - 1235 , - 1398 , - 381 , - 72 , - 471 , - 1578 , - 1505 , - 252 , - 1595 , - 1758 , - 741 , - 432 , - 831 , - 50 , - 1865 , - 612 , - 67 , - 230 , - 1101 , - 792 , - 1191 , - 410 , - 337 , - 972 , - 427 , - 590 , - 1461 , - 1152 , - 1551 , - 770 , - 697 , - 1332 , - 787 , - 950 , - 1821 , - 1512 , - 23 , - 1130 , - 1057 , - 1692 , - 1147 , - 1310 , - 293 , - 1872 , - 383 , - 1490 , - 1417 , - 164 , - 1507 , - 1670 , - 653 , - 344 , - 743 , - 1850 , - 1777 , - 524 , - 1867 , - 142 , - 1013 , - 704 , - 1103 , - 322 , - 249 , - 884 , - 339 , - 502 , - 1373 , - 1064 , - 1463 , - 682 , - 609 , - 1244 , - 699 , - 862 , - 1733 , - 1424 , - 1823 , - 1042 , - 969 , - 1604 , - 1059 , - 1222 , - 205 , - 1784 , - 295 , - 1402 , - 1329 , - 76 , - 1419 , - 1582 , - 565 , - 256 , - 655 , - 1762 , - 1689 , - 436 , - 1779 , - 54 , - 925 , - 616 , - 1015 , - 234 , - 161 , - 796 , - 251 , - 414 , - 1285 , - 976 , - 1375 , - 594 , - 521 , - 1156 , - 611 , - 774 , - 1645 , - 1336 , - 1735 , - 954 , - 881 , - 1516 , - 971 , - 1134 , - 117 , - 1696 , - 207 , - 1314 , - 1241 , - 1876 , - 1331 , - 1494 , - 477 , - 168 , - 567 , - 1674 , - 1601 , - 348 , - 1691 , - 1854 , - 837 , - 528 , - 927 , - 146 , - 73 , - 708 , - 163 , - 326 , - 1197 , - 888 , - 1287 , - 506 , - 433 , - 1068 , - 523 , - 686 , - 1557 , - 1248 , - 1647 , - 866 , - 793 , - 1428 , - 883 , - 1046 , - 29 , - 1608 , - 119 , - 1226 , - 1153 , - 1788 , - 1243 , - 1406 , - 389 , - 80 , - 479 , - 1586 , - 1513 , - 260 , - 1603 , - 1766 , - 749 , - 440 , - 839 , - 58 , - 1873 , - 620 , - 75 , - 238 , - 1109 , - 800 , - 1199 , - 418 , - 345 , - 980 , - 435 , - 598 , - 1469 , - 1160 , - 1559 , - 778 , - 705 , - 1340 , - 795 , - 958 , - 1829 , - 1520 , - 31 , - 1138 , - 1065 , - 1700 , - 1155 , - 1318 , - 301 , - 1880 , - 391 , - 1498 , - 1425 , - 172 , - 1515 , - 1678 , - 661 , - 352 , - 751 , - 1858 , - 1785 , - 532 , - 1875 , - 150 , - 1021 , - 712 , - 1111 , - 330 , - 257 , - 892 , - 347 , - 510 , - 1381 , - 1072 , - 1471 , - 690 , - 617 , - 1252 , - 707 , - 870 , - 1741 , - 1432 , - 1831 , - 1050 , - 977 , - 1612 , - 1067 , - 1230 , - 213 , - 1792 , - 303 , - 1410 , - 1337 , - 84 , - 1427 , - 1590 , - 573 , - 264 , - 663 , - 1770 , - 1697 , - 444 , - 1787 , - 62 , - 933 , - 624 , - 1023 , - 242 , - 169 , - 804 , - 259 , - 422 , - 1293 , - 984 , - 1383 , - 602 , - 529 , - 1164 , - 619 , - 782 , - 1653 , - 1344 , - 1743 , - 962 , - 889 , - 1524 , - 979 , - 1142 , - 125 , - 1704 , - 215 , - 1322 , - 1249 , - 1884 , - 1339 , - 1502 , - 485 , - 176 , - 575 , - 1682 , - 1609 , - 356 , - 1699 , - 1862 , - 845 , - 536 , - 935 , - 154 , - 81 , - 716 , - 171 , - 334 , - 1205 , - 896 , - 1295 , - 514 , - 441 , - 1076 , - 531 , - 694 , - 1565 , - 1256 , - 1655 , - 874 , - 801 , - 1436 , - 891 , - 1054 , - 37 , - 1616 , - 127 , - 1234 , - 1161 , - 1796 , - 1251 , - 1414 , - 397 , - 88 , - 487 , - 1594 , - 1521 , - 268 , - 1611 , - 1774 , - 757 , - 448 , - 847 , - 66 , - 1881 , - 628 , - 83 , - 246 , - 1117 , - 808 , - 1207 , - 426 , - 353 , - 988 , - 443 , - 606 , - 1477 , - 1168 , - 1567 , - 786 , - 713 , - 1348 , - 803 , - 966 , - 1837 , - 1528 , - 39 , - 1146 , - 1073 , - 1708 , - 1163 , - 1326 , - 309 , - 0 , - 151 , - 542 , - 1173 , - 124 , - 1235 , - 666 , - 337 , - 248 , - 399 , - 790 , - 1421 , - 372 , - 1483 , - 914 , - 585 , - 496 , - 647 , - 1038 , - 1669 , - 620 , - 1731 , - 1162 , - 833 , - 744 , - 895 , - 1286 , - 1917 , - 868 , - 59 , - 1410 , - 1081 , - 992 , - 1143 , - 1534 , - 245 , - 1116 , - 307 , - 1658 , - 1329 , - 1240 , - 1391 , - 1782 , - 493 , - 1364 , - 555 , - 1906 , - 1577 , - 1488 , - 1639 , - 110 , - 741 , - 1612 , - 803 , - 234 , - 1825 , - 1736 , - 1887 , - 358 , - 989 , - 1860 , - 1051 , - 482 , - 153 , - 64 , - 215 , - 606 , - 1237 , - 188 , - 1299 , - 730 , - 401 , - 312 , - 463 , - 854 , - 1485 , - 436 , - 1547 , - 978 , - 649 , - 560 , - 711 , - 1102 , - 1733 , - 684 , - 1795 , - 1226 , - 897 , - 808 , - 959 , - 1350 , - 61 , - 932 , - 123 , - 1474 , - 1145 , - 1056 , - 1207 , - 1598 , - 309 , - 1180 , - 371 , - 1722 , - 1393 , - 1304 , - 1455 , - 1846 , - 557 , - 1428 , - 619 , - 50 , - 1641 , - 1552 , - 1703 , - 174 , - 805 , - 1676 , - 867 , - 298 , - 1889 , - 1800 , - 31 , - 422 , - 1053 , - 4 , - 1115 , - 546 , - 217 , - 128 , - 279 , - 670 , - 1301 , - 252 , - 1363 , - 794 , - 465 , - 376 , - 527 , - 918 , - 1549 , - 500 , - 1611 , - 1042 , - 713 , - 624 , - 775 , - 1166 , - 1797 , - 748 , - 1859 , - 1290 , - 961 , - 872 , - 1023 , - 1414 , - 125 , - 996 , - 187 , - 1538 , - 1209 , - 1120 , - 1271 , - 1662 , - 373 , - 1244 , - 435 , - 1786 , - 1457 , - 1368 , - 1519 , - 1910 , - 621 , - 1492 , - 683 , - 114 , - 1705 , - 1616 , - 1767 , - 238 , - 869 , - 1740 , - 931 , - 362 , - 33 , - 1864 , - 95 , - 486 , - 1117 , - 68 , - 1179 , - 610 , - 281 , - 192 , - 343 , - 734 , - 1365 , - 316 , - 1427 , - 858 , - 529 , - 440 , - 591 , - 982 , - 1613 , - 564 , - 1675 , - 1106 , - 777 , - 688 , - 839 , - 1230 , - 1861 , - 812 , - 3 , - 1354 , - 1025 , - 936 , - 1087 , - 1478 , - 189 , - 1060 , - 251 , - 1602 , - 1273 , - 1184 , - 1335 , - 1726 , - 437 , - 1308 , - 499 , - 1850 , - 1521 , - 1432 , - 1583 , - 54 , - 685 , - 1556 , - 747 , - 178 , - 1769 , - 1680 , - 1831 , - 302 , - 933 , - 1804 , - 995 , - 426 , - 97 , - 8 , - 159 , - 550 , - 1181 , - 132 , - 1243 , - 674 , - 345 , - 256 , - 407 , - 798 , - 1429 , - 380 , - 1491 , - 922 , - 593 , - 504 , - 655 , - 1046 , - 1677 , - 628 , - 1739 , - 1170 , - 841 , - 752 , - 903 , - 1294 , - 5 , - 876 , - 67 , - 1418 , - 1089 , - 1000 , - 1151 , - 1542 , - 253 , - 1124 , - 315 , - 1666 , - 1337 , - 1248 , - 1399 , - 1790 , - 501 , - 1372 , - 563 , - 1914 , - 1585 , - 1496 , - 1647 , - 118 , - 749 , - 1620 , - 811 , - 242 , - 1833 , - 1744 , - 1895 , - 366 , - 997 , - 1868 , - 1059 , - 490 , - 161 , - 72 , - 223 , - 614 , - 1245 , - 196 , - 1307 , - 738 , - 409 , - 320 , - 471 , - 862 , - 1493 , - 444 , - 1555 , - 986 , - 657 , - 568 , - 719 , - 1110 , - 1741 , - 692 , - 1803 , - 1234 , - 905 , - 816 , - 967 , - 1358 , - 69 , - 940 , - 131 , - 1482 , - 1153 , - 1064 , - 1215 , - 1606 , - 317 , - 1188 , - 379 , - 1730 , - 1401 , - 1312 , - 1463 , - 1854 , - 565 , - 1436 , - 627 , - 58 , - 1649 , - 1560 , - 1711 , - 182 , - 813 , - 1684 , - 875 , - 306 , - 1897 , - 1808 , - 39 , - 430 , - 1061 , - 12 , - 1123 , - 554 , - 225 , - 136 , - 287 , - 678 , - 1309 , - 260 , - 1371 , - 802 , - 473 , - 384 , - 535 , - 926 , - 1557 , - 508 , - 1619 , - 1050 , - 721 , - 632 , - 783 , - 1174 , - 1805 , - 756 , - 1867 , - 1298 , - 969 , - 880 , - 1031 , - 1422 , - 133 , - 1004 , - 195 , - 1546 , - 1217 , - 1128 , - 1279 , - 1670 , - 381 , - 1252 , - 443 , - 1794 , - 1465 , - 1376 , - 1527 , - 1918 , - 629 , - 1500 , - 691 , - 122 , - 1713 , - 1624 , - 1775 , - 246 , - 877 , - 1748 , - 939 , - 370 , - 41 , - 1872 , - 103 , - 494 , - 1125 , - 76 , - 1187 , - 618 , - 289 , - 200 , - 351 , - 742 , - 1373 , - 324 , - 1435 , - 866 , - 537 , - 448 , - 599 , - 990 , - 1621 , - 572 , - 1683 , - 1114 , - 785 , - 696 , - 847 , - 1238 , - 1869 , - 820 , - 11 , - 1362 , - 1033 , - 944 , - 1095 , - 1486 , - 197 , - 1068 , - 259 , - 1610 , - 1281 , - 1192 , - 1343 , - 1734 , - 445 , - 1316 , - 507 , - 1858 , - 1529 , - 1440 , - 1591 , - 62 , - 693 , - 1564 , - 755 , - 186 , - 1777 , - 1688 , - 1839 , - 310 , - 941 , - 1812 , - 1003 , - 434 , - 105 , - 16 , - 167 , - 558 , - 1189 , - 140 , - 1251 , - 682 , - 353 , - 264 , - 415 , - 806 , - 1437 , - 388 , - 1499 , - 930 , - 601 , - 512 , - 663 , - 1054 , - 1685 , - 636 , - 1747 , - 1178 , - 849 , - 760 , - 911 , - 1302 , - 13 , - 884 , - 75 , - 1426 , - 1097 , - 1008 , - 1159 , - 1550 , - 261 , - 1132 , - 323 , - 1674 , - 1345 , - 1256 , - 1407 , - 1798 , - 509 , - 1380 , - 571 , - 2 , - 1593 , - 1504 , - 1655 , - 126 , - 757 , - 1628 , - 819 , - 250 , - 1841 , - 1752 , - 1903 , - 374 , - 1005 , - 1876 , - 1067 , - 498 , - 169 , - 80 , - 231 , - 622 , - 1253 , - 204 , - 1315 , - 746 , - 417 , - 328 , - 479 , - 870 , - 1501 , - 452 , - 1563 , - 994 , - 665 , - 576 , - 727 , - 1118 , - 1749 , - 700 , - 1811 , - 1242 , - 913 , - 824 , - 975 , - 1366 , - 77 , - 948 , - 139 , - 1490 , - 1161 , - 1072 , - 1223 , - 1614 , - 325 , - 1196 , - 387 , - 1738 , - 1409 , - 1320 , - 1471 , - 1862 , - 573 , - 1444 , - 635 , - 66 , - 1657 , - 1568 , - 1719 , - 190 , - 821 , - 1692 , - 883 , - 314 , - 1905 , - 1816 , - 47 , - 438 , - 1069 , - 20 , - 1131 , - 562 , - 233 , - 144 , - 295 , - 686 , - 1317 , - 268 , - 1379 , - 810 , - 481 , - 392 , - 543 , - 934 , - 1565 , - 516 , - 1627 , - 1058 , - 729 , - 640 , - 791 , - 1182 , - 1813 , - 764 , - 1875 , - 1306 , - 977 , - 888 , - 1039 , - 1430 , - 141 , - 1012 , - 203 , - 1554 , - 1225 , - 1136 , - 1287 , - 1678 , - 389 , - 1260 , - 451 , - 1802 , - 1473 , - 1384 , - 1535 , - 6 , - 637 , - 1508 , - 699 , - 130 , - 1721 , - 1632 , - 1783 , - 254 , - 885 , - 1756 , - 947 , - 378 , - 49 , - 1880 , - 111 , - 502 , - 1133 , - 84 , - 1195 , - 626 , - 297 , - 208 , - 359 , - 750 , - 1381 , - 332 , - 1443 , - 874 , - 545 , - 456 , - 607 , - 998 , - 1629 , - 580 , - 1691 , - 1122 , - 793 , - 704 , - 855 , - 1246 , - 1877 , - 828 , - 19 , - 1370 , - 1041 , - 952 , - 1103 , - 1494 , - 205 , - 1076 , - 267 , - 1618 , - 1289 , - 1200 , - 1351 , - 1742 , - 453 , - 1324 , - 515 , - 1866 , - 1537 , - 1448 , - 1599 , - 70 , - 701 , - 1572 , - 763 , - 194 , - 1785 , - 1696 , - 1847 , - 318 , - 949 , - 1820 , - 1011 , - 442 , - 113 , - 24 , - 175 , - 566 , - 1197 , - 148 , - 1259 , - 690 , - 361 , - 272 , - 423 , - 814 , - 1445 , - 396 , - 1507 , - 938 , - 609 , - 520 , - 671 , - 1062 , - 1693 , - 644 , - 1755 , - 1186 , - 857 , - 768 , - 919 , - 1310 , - 21 , - 892 , - 83 , - 1434 , - 1105 , - 1016 , - 1167 , - 1558 , - 269 , - 1140 , - 331 , - 1682 , - 1353 , - 1264 , - 1415 , - 1806 , - 517 , - 1388 , - 579 , - 10 , - 1601 , - 1512 , - 1663 , - 134 , - 765 , - 1636 , - 827 , - 258 , - 1849 , - 1760 , - 1911 , - 382 , - 1013 , - 1884 , - 1075 , - 506 , - 177 , - 88 , - 239 , - 630 , - 1261 , - 212 , - 1323 , - 754 , - 425 , - 336 , - 487 , - 878 , - 1509 , - 460 , - 1571 , - 1002 , - 673 , - 584 , - 735 , - 1126 , - 1757 , - 708 , - 1819 , - 1250 , - 921 , - 832 , - 983 , - 1374 , - 85 , - 956 , - 147 , - 1498 , - 1169 , - 1080 , - 1231 , - 1622 , - 333 , - 1204 , - 395 , - 1746 , - 1417 , - 1328 , - 1479 , - 1870 , - 581 , - 1452 , - 643 , - 74 , - 1665 , - 1576 , - 1727 , - 198 , - 829 , - 1700 , - 891 , - 322 , - 1913 , - 1824 , - 55 , - 446 , - 1077 , - 28 , - 1139 , - 570 , - 241 , - 152 , - 303 , - 694 , - 1325 , - 276 , - 1387 , - 818 , - 489 , - 400 , - 551 , - 942 , - 1573 , - 524 , - 1635 , - 1066 , - 737 , - 648 , - 799 , - 1190 , - 1821 , - 772 , - 1883 , - 1314 , - 985 , - 896 , - 1047 , - 1438 , - 149 , - 1020 , - 211 , - 1562 , - 1233 , - 1144 , - 1295 , - 1686 , - 397 , - 1268 , - 459 , - 1810 , - 1481 , - 1392 , - 1543 , - 14 , - 645 , - 1516 , - 707 , - 138 , - 1729 , - 1640 , - 1791 , - 262 , - 893 , - 1764 , - 955 , - 386 , - 57 , - 1888 , - 119 , - 510 , - 1141 , - 92 , - 1203 , - 634 , - 305 , - 216 , - 367 , - 758 , - 1389 , - 340 , - 1451 , - 882 , - 553 , - 464 , - 615 , - 1006 , - 1637 , - 588 , - 1699 , - 1130 , - 801 , - 712 , - 863 , - 1254 , - 1885 , - 836 , - 27 , - 1378 , - 1049 , - 960 , - 1111 , - 1502 , - 213 , - 1084 , - 275 , - 1626 , - 1297 , - 1208 , - 1359 , - 1750 , - 461 , - 1332 , - 523 , - 1874 , - 1545 , - 1456 , - 1607 , - 78 , - 709 , - 1580 , - 771 , - 202 , - 1793 , - 1704 , - 1855 , - 326 , - 957 , - 1828 , - 1019 , - 450 , - 121 , - 32 , - 183 , - 574 , - 1205 , - 156 , - 1267 , - 698 , - 369 , - 280 , - 431 , - 822 , - 1453 , - 404 , - 1515 , - 946 , - 617 , - 528 , - 679 , - 1070 , - 1701 , - 652 , - 1763 , - 1194 , - 865 , - 776 , - 927 , - 1318 , - 29 , - 900 , - 91 , - 1442 , - 1113 , - 1024 , - 1175 , - 1566 , - 277 , - 1148 , - 339 , - 1690 , - 1361 , - 1272 , - 1423 , - 1814 , - 525 , - 1396 , - 587 , - 18 , - 1609 , - 1520 , - 1671 , - 142 , - 773 , - 1644 , - 835 , - 266 , - 1857 , - 1768 , - 1919 , - 390 , - 1021 , - 1892 , - 1083 , - 514 , - 185 , - 96 , - 247 , - 638 , - 1269 , - 220 , - 1331 , - 762 , - 433 , - 344 , - 495 , - 886 , - 1517 , - 468 , - 1579 , - 1010 , - 681 , - 592 , - 743 , - 1134 , - 1765 , - 716 , - 1827 , - 1258 , - 929 , - 840 , - 991 , - 1382 , - 93 , - 964 , - 155 , - 1506 , - 1177 , - 1088 , - 1239 , - 1630 , - 341 , - 1212 , - 403 , - 1754 , - 1425 , - 1336 , - 1487 , - 1878 , - 589 , - 1460 , - 651 , - 82 , - 1673 , - 1584 , - 1735 , - 206 , - 837 , - 1708 , - 899 , - 330 , - 1 , - 1832 , - 63 , - 454 , - 1085 , - 36 , - 1147 , - 578 , - 249 , - 160 , - 311 , - 702 , - 1333 , - 284 , - 1395 , - 826 , - 497 , - 408 , - 559 , - 950 , - 1581 , - 532 , - 1643 , - 1074 , - 745 , - 656 , - 807 , - 1198 , - 1829 , - 780 , - 1891 , - 1322 , - 993 , - 904 , - 1055 , - 1446 , - 157 , - 1028 , - 219 , - 1570 , - 1241 , - 1152 , - 1303 , - 1694 , - 405 , - 1276 , - 467 , - 1818 , - 1489 , - 1400 , - 1551 , - 22 , - 653 , - 1524 , - 715 , - 146 , - 1737 , - 1648 , - 1799 , - 270 , - 901 , - 1772 , - 963 , - 394 , - 65 , - 1896 , - 127 , - 518 , - 1149 , - 100 , - 1211 , - 642 , - 313 , - 224 , - 375 , - 766 , - 1397 , - 348 , - 1459 , - 890 , - 561 , - 472 , - 623 , - 1014 , - 1645 , - 596 , - 1707 , - 1138 , - 809 , - 720 , - 871 , - 1262 , - 1893 , - 844 , - 35 , - 1386 , - 1057 , - 968 , - 1119 , - 1510 , - 221 , - 1092 , - 283 , - 1634 , - 1305 , - 1216 , - 1367 , - 1758 , - 469 , - 1340 , - 531 , - 1882 , - 1553 , - 1464 , - 1615 , - 86 , - 717 , - 1588 , - 779 , - 210 , - 1801 , - 1712 , - 1863 , - 334 , - 965 , - 1836 , - 1027 , - 458 , - 129 , - 40 , - 191 , - 582 , - 1213 , - 164 , - 1275 , - 706 , - 377 , - 288 , - 439 , - 830 , - 1461 , - 412 , - 1523 , - 954 , - 625 , - 536 , - 687 , - 1078 , - 1709 , - 660 , - 1771 , - 1202 , - 873 , - 784 , - 935 , - 1326 , - 37 , - 908 , - 99 , - 1450 , - 1121 , - 1032 , - 1183 , - 1574 , - 285 , - 1156 , - 347 , - 1698 , - 1369 , - 1280 , - 1431 , - 1822 , - 533 , - 1404 , - 595 , - 26 , - 1617 , - 1528 , - 1679 , - 150 , - 781 , - 1652 , - 843 , - 274 , - 1865 , - 1776 , - 7 , - 398 , - 1029 , - 1900 , - 1091 , - 522 , - 193 , - 104 , - 255 , - 646 , - 1277 , - 228 , - 1339 , - 770 , - 441 , - 352 , - 503 , - 894 , - 1525 , - 476 , - 1587 , - 1018 , - 689 , - 600 , - 751 , - 1142 , - 1773 , - 724 , - 1835 , - 1266 , - 937 , - 848 , - 999 , - 1390 , - 101 , - 972 , - 163 , - 1514 , - 1185 , - 1096 , - 1247 , - 1638 , - 349 , - 1220 , - 411 , - 1762 , - 1433 , - 1344 , - 1495 , - 1886 , - 597 , - 1468 , - 659 , - 90 , - 1681 , - 1592 , - 1743 , - 214 , - 845 , - 1716 , - 907 , - 338 , - 9 , - 1840 , - 71 , - 462 , - 1093 , - 44 , - 1155 , - 586 , - 257 , - 168 , - 319 , - 710 , - 1341 , - 292 , - 1403 , - 834 , - 505 , - 416 , - 567 , - 958 , - 1589 , - 540 , - 1651 , - 1082 , - 753 , - 664 , - 815 , - 1206 , - 1837 , - 788 , - 1899 , - 1330 , - 1001 , - 912 , - 1063 , - 1454 , - 165 , - 1036 , - 227 , - 1578 , - 1249 , - 1160 , - 1311 , - 1702 , - 413 , - 1284 , - 475 , - 1826 , - 1497 , - 1408 , - 1559 , - 30 , - 661 , - 1532 , - 723 , - 154 , - 1745 , - 1656 , - 1807 , - 278 , - 909 , - 1780 , - 971 , - 402 , - 73 , - 1904 , - 135 , - 526 , - 1157 , - 108 , - 1219 , - 650 , - 321 , - 232 , - 383 , - 774 , - 1405 , - 356 , - 1467 , - 898 , - 569 , - 480 , - 631 , - 1022 , - 1653 , - 604 , - 1715 , - 1146 , - 817 , - 728 , - 879 , - 1270 , - 1901 , - 852 , - 43 , - 1394 , - 1065 , - 976 , - 1127 , - 1518 , - 229 , - 1100 , - 291 , - 1642 , - 1313 , - 1224 , - 1375 , - 1766 , - 477 , - 1348 , - 539 , - 1890 , - 1561 , - 1472 , - 1623 , - 94 , - 725 , - 1596 , - 787 , - 218 , - 1809 , - 1720 , - 1871 , - 342 , - 973 , - 1844 , - 1035 , - 466 , - 137 , - 48 , - 199 , - 590 , - 1221 , - 172 , - 1283 , - 714 , - 385 , - 296 , - 447 , - 838 , - 1469 , - 420 , - 1531 , - 962 , - 633 , - 544 , - 695 , - 1086 , - 1717 , - 668 , - 1779 , - 1210 , - 881 , - 792 , - 943 , - 1334 , - 45 , - 916 , - 107 , - 1458 , - 1129 , - 1040 , - 1191 , - 1582 , - 293 , - 1164 , - 355 , - 1706 , - 1377 , - 1288 , - 1439 , - 1830 , - 541 , - 1412 , - 603 , - 34 , - 1625 , - 1536 , - 1687 , - 158 , - 789 , - 1660 , - 851 , - 282 , - 1873 , - 1784 , - 15 , - 406 , - 1037 , - 1908 , - 1099 , - 530 , - 201 , - 112 , - 263 , - 654 , - 1285 , - 236 , - 1347 , - 778 , - 449 , - 360 , - 511 , - 902 , - 1533 , - 484 , - 1595 , - 1026 , - 697 , - 608 , - 759 , - 1150 , - 1781 , - 732 , - 1843 , - 1274 , - 945 , - 856 , - 1007 , - 1398 , - 109 , - 980 , - 171 , - 1522 , - 1193 , - 1104 , - 1255 , - 1646 , - 357 , - 1228 , - 419 , - 1770 , - 1441 , - 1352 , - 1503 , - 1894 , - 605 , - 1476 , - 667 , - 98 , - 1689 , - 1600 , - 1751 , - 222 , - 853 , - 1724 , - 915 , - 346 , - 17 , - 1848 , - 79 , - 470 , - 1101 , - 52 , - 1163 , - 594 , - 265 , - 176 , - 327 , - 718 , - 1349 , - 300 , - 1411 , - 842 , - 513 , - 424 , - 575 , - 966 , - 1597 , - 548 , - 1659 , - 1090 , - 761 , - 672 , - 823 , - 1214 , - 1845 , - 796 , - 1907 , - 1338 , - 1009 , - 920 , - 1071 , - 1462 , - 173 , - 1044 , - 235 , - 1586 , - 1257 , - 1168 , - 1319 , - 1710 , - 421 , - 1292 , - 483 , - 1834 , - 1505 , - 1416 , - 1567 , - 38 , - 669 , - 1540 , - 731 , - 162 , - 1753 , - 1664 , - 1815 , - 286 , - 917 , - 1788 , - 979 , - 410 , - 81 , - 1912 , - 143 , - 534 , - 1165 , - 116 , - 1227 , - 658 , - 329 , - 240 , - 391 , - 782 , - 1413 , - 364 , - 1475 , - 906 , - 577 , - 488 , - 639 , - 1030 , - 1661 , - 612 , - 1723 , - 1154 , - 825 , - 736 , - 887 , - 1278 , - 1909 , - 860 , - 51 , - 1402 , - 1073 , - 984 , - 1135 , - 1526 , - 237 , - 1108 , - 299 , - 1650 , - 1321 , - 1232 , - 1383 , - 1774 , - 485 , - 1356 , - 547 , - 1898 , - 1569 , - 1480 , - 1631 , - 102 , - 733 , - 1604 , - 795 , - 226 , - 1817 , - 1728 , - 1879 , - 350 , - 981 , - 1852 , - 1043 , - 474 , - 145 , - 56 , - 207 , - 598 , - 1229 , - 180 , - 1291 , - 722 , - 393 , - 304 , - 455 , - 846 , - 1477 , - 428 , - 1539 , - 970 , - 641 , - 552 , - 703 , - 1094 , - 1725 , - 676 , - 1787 , - 1218 , - 889 , - 800 , - 951 , - 1342 , - 53 , - 924 , - 115 , - 1466 , - 1137 , - 1048 , - 1199 , - 1590 , - 301 , - 1172 , - 363 , - 1714 , - 1385 , - 1296 , - 1447 , - 1838 , - 549 , - 1420 , - 611 , - 42 , - 1633 , - 1544 , - 1695 , - 166 , - 797 , - 1668 , - 859 , - 290 , - 1881 , - 1792 , - 23 , - 414 , - 1045 , - 1916 , - 1107 , - 538 , - 209 , - 120 , - 271 , - 662 , - 1293 , - 244 , - 1355 , - 786 , - 457 , - 368 , - 519 , - 910 , - 1541 , - 492 , - 1603 , - 1034 , - 705 , - 616 , - 767 , - 1158 , - 1789 , - 740 , - 1851 , - 1282 , - 953 , - 864 , - 1015 , - 1406 , - 117 , - 988 , - 179 , - 1530 , - 1201 , - 1112 , - 1263 , - 1654 , - 365 , - 1236 , - 427 , - 1778 , - 1449 , - 1360 , - 1511 , - 1902 , - 613 , - 1484 , - 675 , - 106 , - 1697 , - 1608 , - 1759 , - 230 , - 861 , - 1732 , - 923 , - 354 , - 25 , - 1856 , - 87 , - 478 , - 1109 , - 60 , - 1171 , - 602 , - 273 , - 184 , - 335 , - 726 , - 1357 , - 308 , - 1419 , - 850 , - 521 , - 432 , - 583 , - 974 , - 1605 , - 556 , - 1667 , - 1098 , - 769 , - 680 , - 831 , - 1222 , - 1853 , - 804 , - 1915 , - 1346 , - 1017 , - 928 , - 1079 , - 1470 , - 181 , - 1052 , - 243 , - 1594 , - 1265 , - 1176 , - 1327 , - 1718 , - 429 , - 1300 , - 491 , - 1842 , - 1513 , - 1424 , - 1575 , - 46 , - 677 , - 1548 , - 739 , - 170 , - 1761 , - 1672 , - 1823 , - 294 , - 925 , - 1796 , - 987 , - 418 , - 89 , - 0 , - 669 , - 606 , - 1763 , - 236 , - 1881 , - 842 , - 1023 , - 472 , - 1141 , - 1078 , - 283 , - 708 , - 401 , - 1314 , - 1495 , - 944 , - 1613 , - 1550 , - 755 , - 1180 , - 873 , - 1786 , - 15 , - 1416 , - 133 , - 70 , - 1227 , - 1652 , - 1345 , - 306 , - 487 , - 1888 , - 605 , - 542 , - 1699 , - 172 , - 1817 , - 778 , - 959 , - 408 , - 1077 , - 1014 , - 219 , - 644 , - 337 , - 1250 , - 1431 , - 880 , - 1549 , - 1486 , - 691 , - 1116 , - 809 , - 1722 , - 1903 , - 1352 , - 69 , - 6 , - 1163 , - 1588 , - 1281 , - 242 , - 423 , - 1824 , - 541 , - 478 , - 1635 , - 108 , - 1753 , - 714 , - 895 , - 344 , - 1013 , - 950 , - 155 , - 580 , - 273 , - 1186 , - 1367 , - 816 , - 1485 , - 1422 , - 627 , - 1052 , - 745 , - 1658 , - 1839 , - 1288 , - 5 , - 1894 , - 1099 , - 1524 , - 1217 , - 178 , - 359 , - 1760 , - 477 , - 414 , - 1571 , - 44 , - 1689 , - 650 , - 831 , - 280 , - 949 , - 886 , - 91 , - 516 , - 209 , - 1122 , - 1303 , - 752 , - 1421 , - 1358 , - 563 , - 988 , - 681 , - 1594 , - 1775 , - 1224 , - 1893 , - 1830 , - 1035 , - 1460 , - 1153 , - 114 , - 295 , - 1696 , - 413 , - 350 , - 1507 , - 1932 , - 1625 , - 586 , - 767 , - 216 , - 885 , - 822 , - 27 , - 452 , - 145 , - 1058 , - 1239 , - 688 , - 1357 , - 1294 , - 499 , - 924 , - 617 , - 1530 , - 1711 , - 1160 , - 1829 , - 1766 , - 971 , - 1396 , - 1089 , - 50 , - 231 , - 1632 , - 349 , - 286 , - 1443 , - 1868 , - 1561 , - 522 , - 703 , - 152 , - 821 , - 758 , - 1915 , - 388 , - 81 , - 994 , - 1175 , - 624 , - 1293 , - 1230 , - 435 , - 860 , - 553 , - 1466 , - 1647 , - 1096 , - 1765 , - 1702 , - 907 , - 1332 , - 1025 , - 1938 , - 167 , - 1568 , - 285 , - 222 , - 1379 , - 1804 , - 1497 , - 458 , - 639 , - 88 , - 757 , - 694 , - 1851 , - 324 , - 17 , - 930 , - 1111 , - 560 , - 1229 , - 1166 , - 371 , - 796 , - 489 , - 1402 , - 1583 , - 1032 , - 1701 , - 1638 , - 843 , - 1268 , - 961 , - 1874 , - 103 , - 1504 , - 221 , - 158 , - 1315 , - 1740 , - 1433 , - 394 , - 575 , - 24 , - 693 , - 630 , - 1787 , - 260 , - 1905 , - 866 , - 1047 , - 496 , - 1165 , - 1102 , - 307 , - 732 , - 425 , - 1338 , - 1519 , - 968 , - 1637 , - 1574 , - 779 , - 1204 , - 897 , - 1810 , - 39 , - 1440 , - 157 , - 94 , - 1251 , - 1676 , - 1369 , - 330 , - 511 , - 1912 , - 629 , - 566 , - 1723 , - 196 , - 1841 , - 802 , - 983 , - 432 , - 1101 , - 1038 , - 243 , - 668 , - 361 , - 1274 , - 1455 , - 904 , - 1573 , - 1510 , - 715 , - 1140 , - 833 , - 1746 , - 1927 , - 1376 , - 93 , - 30 , - 1187 , - 1612 , - 1305 , - 266 , - 447 , - 1848 , - 565 , - 502 , - 1659 , - 132 , - 1777 , - 738 , - 919 , - 368 , - 1037 , - 974 , - 179 , - 604 , - 297 , - 1210 , - 1391 , - 840 , - 1509 , - 1446 , - 651 , - 1076 , - 769 , - 1682 , - 1863 , - 1312 , - 29 , - 1918 , - 1123 , - 1548 , - 1241 , - 202 , - 383 , - 1784 , - 501 , - 438 , - 1595 , - 68 , - 1713 , - 674 , - 855 , - 304 , - 973 , - 910 , - 115 , - 540 , - 233 , - 1146 , - 1327 , - 776 , - 1445 , - 1382 , - 587 , - 1012 , - 705 , - 1618 , - 1799 , - 1248 , - 1917 , - 1854 , - 1059 , - 1484 , - 1177 , - 138 , - 319 , - 1720 , - 437 , - 374 , - 1531 , - 4 , - 1649 , - 610 , - 791 , - 240 , - 909 , - 846 , - 51 , - 476 , - 169 , - 1082 , - 1263 , - 712 , - 1381 , - 1318 , - 523 , - 948 , - 641 , - 1554 , - 1735 , - 1184 , - 1853 , - 1790 , - 995 , - 1420 , - 1113 , - 74 , - 255 , - 1656 , - 373 , - 310 , - 1467 , - 1892 , - 1585 , - 546 , - 727 , - 176 , - 845 , - 782 , - 1939 , - 412 , - 105 , - 1018 , - 1199 , - 648 , - 1317 , - 1254 , - 459 , - 884 , - 577 , - 1490 , - 1671 , - 1120 , - 1789 , - 1726 , - 931 , - 1356 , - 1049 , - 10 , - 191 , - 1592 , - 309 , - 246 , - 1403 , - 1828 , - 1521 , - 482 , - 663 , - 112 , - 781 , - 718 , - 1875 , - 348 , - 41 , - 954 , - 1135 , - 584 , - 1253 , - 1190 , - 395 , - 820 , - 513 , - 1426 , - 1607 , - 1056 , - 1725 , - 1662 , - 867 , - 1292 , - 985 , - 1898 , - 127 , - 1528 , - 245 , - 182 , - 1339 , - 1764 , - 1457 , - 418 , - 599 , - 48 , - 717 , - 654 , - 1811 , - 284 , - 1929 , - 890 , - 1071 , - 520 , - 1189 , - 1126 , - 331 , - 756 , - 449 , - 1362 , - 1543 , - 992 , - 1661 , - 1598 , - 803 , - 1228 , - 921 , - 1834 , - 63 , - 1464 , - 181 , - 118 , - 1275 , - 1700 , - 1393 , - 354 , - 535 , - 1936 , - 653 , - 590 , - 1747 , - 220 , - 1865 , - 826 , - 1007 , - 456 , - 1125 , - 1062 , - 267 , - 692 , - 385 , - 1298 , - 1479 , - 928 , - 1597 , - 1534 , - 739 , - 1164 , - 857 , - 1770 , - 1951 , - 1400 , - 117 , - 54 , - 1211 , - 1636 , - 1329 , - 290 , - 471 , - 1872 , - 589 , - 526 , - 1683 , - 156 , - 1801 , - 762 , - 943 , - 392 , - 1061 , - 998 , - 203 , - 628 , - 321 , - 1234 , - 1415 , - 864 , - 1533 , - 1470 , - 675 , - 1100 , - 793 , - 1706 , - 1887 , - 1336 , - 53 , - 1942 , - 1147 , - 1572 , - 1265 , - 226 , - 407 , - 1808 , - 525 , - 462 , - 1619 , - 92 , - 1737 , - 698 , - 879 , - 328 , - 997 , - 934 , - 139 , - 564 , - 257 , - 1170 , - 1351 , - 800 , - 1469 , - 1406 , - 611 , - 1036 , - 729 , - 1642 , - 1823 , - 1272 , - 1941 , - 1878 , - 1083 , - 1508 , - 1201 , - 162 , - 343 , - 1744 , - 461 , - 398 , - 1555 , - 28 , - 1673 , - 634 , - 815 , - 264 , - 933 , - 870 , - 75 , - 500 , - 193 , - 1106 , - 1287 , - 736 , - 1405 , - 1342 , - 547 , - 972 , - 665 , - 1578 , - 1759 , - 1208 , - 1877 , - 1814 , - 1019 , - 1444 , - 1137 , - 98 , - 279 , - 1680 , - 397 , - 334 , - 1491 , - 1916 , - 1609 , - 570 , - 751 , - 200 , - 869 , - 806 , - 11 , - 436 , - 129 , - 1042 , - 1223 , - 672 , - 1341 , - 1278 , - 483 , - 908 , - 601 , - 1514 , - 1695 , - 1144 , - 1813 , - 1750 , - 955 , - 1380 , - 1073 , - 34 , - 215 , - 1616 , - 333 , - 270 , - 1427 , - 1852 , - 1545 , - 506 , - 687 , - 136 , - 805 , - 742 , - 1899 , - 372 , - 65 , - 978 , - 1159 , - 608 , - 1277 , - 1214 , - 419 , - 844 , - 537 , - 1450 , - 1631 , - 1080 , - 1749 , - 1686 , - 891 , - 1316 , - 1009 , - 1922 , - 151 , - 1552 , - 269 , - 206 , - 1363 , - 1788 , - 1481 , - 442 , - 623 , - 72 , - 741 , - 678 , - 1835 , - 308 , - 1 , - 914 , - 1095 , - 544 , - 1213 , - 1150 , - 355 , - 780 , - 473 , - 1386 , - 1567 , - 1016 , - 1685 , - 1622 , - 827 , - 1252 , - 945 , - 1858 , - 87 , - 1488 , - 205 , - 142 , - 1299 , - 1724 , - 1417 , - 378 , - 559 , - 8 , - 677 , - 614 , - 1771 , - 244 , - 1889 , - 850 , - 1031 , - 480 , - 1149 , - 1086 , - 291 , - 716 , - 409 , - 1322 , - 1503 , - 952 , - 1621 , - 1558 , - 763 , - 1188 , - 881 , - 1794 , - 23 , - 1424 , - 141 , - 78 , - 1235 , - 1660 , - 1353 , - 314 , - 495 , - 1896 , - 613 , - 550 , - 1707 , - 180 , - 1825 , - 786 , - 967 , - 416 , - 1085 , - 1022 , - 227 , - 652 , - 345 , - 1258 , - 1439 , - 888 , - 1557 , - 1494 , - 699 , - 1124 , - 817 , - 1730 , - 1911 , - 1360 , - 77 , - 14 , - 1171 , - 1596 , - 1289 , - 250 , - 431 , - 1832 , - 549 , - 486 , - 1643 , - 116 , - 1761 , - 722 , - 903 , - 352 , - 1021 , - 958 , - 163 , - 588 , - 281 , - 1194 , - 1375 , - 824 , - 1493 , - 1430 , - 635 , - 1060 , - 753 , - 1666 , - 1847 , - 1296 , - 13 , - 1902 , - 1107 , - 1532 , - 1225 , - 186 , - 367 , - 1768 , - 485 , - 422 , - 1579 , - 52 , - 1697 , - 658 , - 839 , - 288 , - 957 , - 894 , - 99 , - 524 , - 217 , - 1130 , - 1311 , - 760 , - 1429 , - 1366 , - 571 , - 996 , - 689 , - 1602 , - 1783 , - 1232 , - 1901 , - 1838 , - 1043 , - 1468 , - 1161 , - 122 , - 303 , - 1704 , - 421 , - 358 , - 1515 , - 1940 , - 1633 , - 594 , - 775 , - 224 , - 893 , - 830 , - 35 , - 460 , - 153 , - 1066 , - 1247 , - 696 , - 1365 , - 1302 , - 507 , - 932 , - 625 , - 1538 , - 1719 , - 1168 , - 1837 , - 1774 , - 979 , - 1404 , - 1097 , - 58 , - 239 , - 1640 , - 357 , - 294 , - 1451 , - 1876 , - 1569 , - 530 , - 711 , - 160 , - 829 , - 766 , - 1923 , - 396 , - 89 , - 1002 , - 1183 , - 632 , - 1301 , - 1238 , - 443 , - 868 , - 561 , - 1474 , - 1655 , - 1104 , - 1773 , - 1710 , - 915 , - 1340 , - 1033 , - 1946 , - 175 , - 1576 , - 293 , - 230 , - 1387 , - 1812 , - 1505 , - 466 , - 647 , - 96 , - 765 , - 702 , - 1859 , - 332 , - 25 , - 938 , - 1119 , - 568 , - 1237 , - 1174 , - 379 , - 804 , - 497 , - 1410 , - 1591 , - 1040 , - 1709 , - 1646 , - 851 , - 1276 , - 969 , - 1882 , - 111 , - 1512 , - 229 , - 166 , - 1323 , - 1748 , - 1441 , - 402 , - 583 , - 32 , - 701 , - 638 , - 1795 , - 268 , - 1913 , - 874 , - 1055 , - 504 , - 1173 , - 1110 , - 315 , - 740 , - 433 , - 1346 , - 1527 , - 976 , - 1645 , - 1582 , - 787 , - 1212 , - 905 , - 1818 , - 47 , - 1448 , - 165 , - 102 , - 1259 , - 1684 , - 1377 , - 338 , - 519 , - 1920 , - 637 , - 574 , - 1731 , - 204 , - 1849 , - 810 , - 991 , - 440 , - 1109 , - 1046 , - 251 , - 676 , - 369 , - 1282 , - 1463 , - 912 , - 1581 , - 1518 , - 723 , - 1148 , - 841 , - 1754 , - 1935 , - 1384 , - 101 , - 38 , - 1195 , - 1620 , - 1313 , - 274 , - 455 , - 1856 , - 573 , - 510 , - 1667 , - 140 , - 1785 , - 746 , - 927 , - 376 , - 1045 , - 982 , - 187 , - 612 , - 305 , - 1218 , - 1399 , - 848 , - 1517 , - 1454 , - 659 , - 1084 , - 777 , - 1690 , - 1871 , - 1320 , - 37 , - 1926 , - 1131 , - 1556 , - 1249 , - 210 , - 391 , - 1792 , - 509 , - 446 , - 1603 , - 76 , - 1721 , - 682 , - 863 , - 312 , - 981 , - 918 , - 123 , - 548 , - 241 , - 1154 , - 1335 , - 784 , - 1453 , - 1390 , - 595 , - 1020 , - 713 , - 1626 , - 1807 , - 1256 , - 1925 , - 1862 , - 1067 , - 1492 , - 1185 , - 146 , - 327 , - 1728 , - 445 , - 382 , - 1539 , - 12 , - 1657 , - 618 , - 799 , - 248 , - 917 , - 854 , - 59 , - 484 , - 177 , - 1090 , - 1271 , - 720 , - 1389 , - 1326 , - 531 , - 956 , - 649 , - 1562 , - 1743 , - 1192 , - 1861 , - 1798 , - 1003 , - 1428 , - 1121 , - 82 , - 263 , - 1664 , - 381 , - 318 , - 1475 , - 1900 , - 1593 , - 554 , - 735 , - 184 , - 853 , - 790 , - 1947 , - 420 , - 113 , - 1026 , - 1207 , - 656 , - 1325 , - 1262 , - 467 , - 892 , - 585 , - 1498 , - 1679 , - 1128 , - 1797 , - 1734 , - 939 , - 1364 , - 1057 , - 18 , - 199 , - 1600 , - 317 , - 254 , - 1411 , - 1836 , - 1529 , - 490 , - 671 , - 120 , - 789 , - 726 , - 1883 , - 356 , - 49 , - 962 , - 1143 , - 592 , - 1261 , - 1198 , - 403 , - 828 , - 521 , - 1434 , - 1615 , - 1064 , - 1733 , - 1670 , - 875 , - 1300 , - 993 , - 1906 , - 135 , - 1536 , - 253 , - 190 , - 1347 , - 1772 , - 1465 , - 426 , - 607 , - 56 , - 725 , - 662 , - 1819 , - 292 , - 1937 , - 898 , - 1079 , - 528 , - 1197 , - 1134 , - 339 , - 764 , - 457 , - 1370 , - 1551 , - 1000 , - 1669 , - 1606 , - 811 , - 1236 , - 929 , - 1842 , - 71 , - 1472 , - 189 , - 126 , - 1283 , - 1708 , - 1401 , - 362 , - 543 , - 1944 , - 661 , - 598 , - 1755 , - 228 , - 1873 , - 834 , - 1015 , - 464 , - 1133 , - 1070 , - 275 , - 700 , - 393 , - 1306 , - 1487 , - 936 , - 1605 , - 1542 , - 747 , - 1172 , - 865 , - 1778 , - 7 , - 1408 , - 125 , - 62 , - 1219 , - 1644 , - 1337 , - 298 , - 479 , - 1880 , - 597 , - 534 , - 1691 , - 164 , - 1809 , - 770 , - 951 , - 400 , - 1069 , - 1006 , - 211 , - 636 , - 329 , - 1242 , - 1423 , - 872 , - 1541 , - 1478 , - 683 , - 1108 , - 801 , - 1714 , - 1895 , - 1344 , - 61 , - 1950 , - 1155 , - 1580 , - 1273 , - 234 , - 415 , - 1816 , - 533 , - 470 , - 1627 , - 100 , - 1745 , - 706 , - 887 , - 336 , - 1005 , - 942 , - 147 , - 572 , - 265 , - 1178 , - 1359 , - 808 , - 1477 , - 1414 , - 619 , - 1044 , - 737 , - 1650 , - 1831 , - 1280 , - 1949 , - 1886 , - 1091 , - 1516 , - 1209 , - 170 , - 351 , - 1752 , - 469 , - 406 , - 1563 , - 36 , - 1681 , - 642 , - 823 , - 272 , - 941 , - 878 , - 83 , - 508 , - 201 , - 1114 , - 1295 , - 744 , - 1413 , - 1350 , - 555 , - 980 , - 673 , - 1586 , - 1767 , - 1216 , - 1885 , - 1822 , - 1027 , - 1452 , - 1145 , - 106 , - 287 , - 1688 , - 405 , - 342 , - 1499 , - 1924 , - 1617 , - 578 , - 759 , - 208 , - 877 , - 814 , - 19 , - 444 , - 137 , - 1050 , - 1231 , - 680 , - 1349 , - 1286 , - 491 , - 916 , - 609 , - 1522 , - 1703 , - 1152 , - 1821 , - 1758 , - 963 , - 1388 , - 1081 , - 42 , - 223 , - 1624 , - 341 , - 278 , - 1435 , - 1860 , - 1553 , - 514 , - 695 , - 144 , - 813 , - 750 , - 1907 , - 380 , - 73 , - 986 , - 1167 , - 616 , - 1285 , - 1222 , - 427 , - 852 , - 545 , - 1458 , - 1639 , - 1088 , - 1757 , - 1694 , - 899 , - 1324 , - 1017 , - 1930 , - 159 , - 1560 , - 277 , - 214 , - 1371 , - 1796 , - 1489 , - 450 , - 631 , - 80 , - 749 , - 686 , - 1843 , - 316 , - 9 , - 922 , - 1103 , - 552 , - 1221 , - 1158 , - 363 , - 788 , - 481 , - 1394 , - 1575 , - 1024 , - 1693 , - 1630 , - 835 , - 1260 , - 953 , - 1866 , - 95 , - 1496 , - 213 , - 150 , - 1307 , - 1732 , - 1425 , - 386 , - 567 , - 16 , - 685 , - 622 , - 1779 , - 252 , - 1897 , - 858 , - 1039 , - 488 , - 1157 , - 1094 , - 299 , - 724 , - 417 , - 1330 , - 1511 , - 960 , - 1629 , - 1566 , - 771 , - 1196 , - 889 , - 1802 , - 31 , - 1432 , - 149 , - 86 , - 1243 , - 1668 , - 1361 , - 322 , - 503 , - 1904 , - 621 , - 558 , - 1715 , - 188 , - 1833 , - 794 , - 975 , - 424 , - 1093 , - 1030 , - 235 , - 660 , - 353 , - 1266 , - 1447 , - 896 , - 1565 , - 1502 , - 707 , - 1132 , - 825 , - 1738 , - 1919 , - 1368 , - 85 , - 22 , - 1179 , - 1604 , - 1297 , - 258 , - 439 , - 1840 , - 557 , - 494 , - 1651 , - 124 , - 1769 , - 730 , - 911 , - 360 , - 1029 , - 966 , - 171 , - 596 , - 289 , - 1202 , - 1383 , - 832 , - 1501 , - 1438 , - 643 , - 1068 , - 761 , - 1674 , - 1855 , - 1304 , - 21 , - 1910 , - 1115 , - 1540 , - 1233 , - 194 , - 375 , - 1776 , - 493 , - 430 , - 1587 , - 60 , - 1705 , - 666 , - 847 , - 296 , - 965 , - 902 , - 107 , - 532 , - 225 , - 1138 , - 1319 , - 768 , - 1437 , - 1374 , - 579 , - 1004 , - 697 , - 1610 , - 1791 , - 1240 , - 1909 , - 1846 , - 1051 , - 1476 , - 1169 , - 130 , - 311 , - 1712 , - 429 , - 366 , - 1523 , - 1948 , - 1641 , - 602 , - 783 , - 232 , - 901 , - 838 , - 43 , - 468 , - 161 , - 1074 , - 1255 , - 704 , - 1373 , - 1310 , - 515 , - 940 , - 633 , - 1546 , - 1727 , - 1176 , - 1845 , - 1782 , - 987 , - 1412 , - 1105 , - 66 , - 247 , - 1648 , - 365 , - 302 , - 1459 , - 1884 , - 1577 , - 538 , - 719 , - 168 , - 837 , - 774 , - 1931 , - 404 , - 97 , - 1010 , - 1191 , - 640 , - 1309 , - 1246 , - 451 , - 876 , - 569 , - 1482 , - 1663 , - 1112 , - 1781 , - 1718 , - 923 , - 1348 , - 1041 , - 2 , - 183 , - 1584 , - 301 , - 238 , - 1395 , - 1820 , - 1513 , - 474 , - 655 , - 104 , - 773 , - 710 , - 1867 , - 340 , - 33 , - 946 , - 1127 , - 576 , - 1245 , - 1182 , - 387 , - 812 , - 505 , - 1418 , - 1599 , - 1048 , - 1717 , - 1654 , - 859 , - 1284 , - 977 , - 1890 , - 119 , - 1520 , - 237 , - 174 , - 1331 , - 1756 , - 1449 , - 410 , - 591 , - 40 , - 709 , - 646 , - 1803 , - 276 , - 1921 , - 882 , - 1063 , - 512 , - 1181 , - 1118 , - 323 , - 748 , - 441 , - 1354 , - 1535 , - 984 , - 1653 , - 1590 , - 795 , - 1220 , - 913 , - 1826 , - 55 , - 1456 , - 173 , - 110 , - 1267 , - 1692 , - 1385 , - 346 , - 527 , - 1928 , - 645 , - 582 , - 1739 , - 212 , - 1857 , - 818 , - 999 , - 448 , - 1117 , - 1054 , - 259 , - 684 , - 377 , - 1290 , - 1471 , - 920 , - 1589 , - 1526 , - 731 , - 1156 , - 849 , - 1762 , - 1943 , - 1392 , - 109 , - 46 , - 1203 , - 1628 , - 1321 , - 282 , - 463 , - 1864 , - 581 , - 518 , - 1675 , - 148 , - 1793 , - 754 , - 935 , - 384 , - 1053 , - 990 , - 195 , - 620 , - 313 , - 1226 , - 1407 , - 856 , - 1525 , - 1462 , - 667 , - 1092 , - 785 , - 1698 , - 1879 , - 1328 , - 45 , - 1934 , - 1139 , - 1564 , - 1257 , - 218 , - 399 , - 1800 , - 517 , - 454 , - 1611 , - 84 , - 1729 , - 690 , - 871 , - 320 , - 989 , - 926 , - 131 , - 556 , - 249 , - 1162 , - 1343 , - 792 , - 1461 , - 1398 , - 603 , - 1028 , - 721 , - 1634 , - 1815 , - 1264 , - 1933 , - 1870 , - 1075 , - 1500 , - 1193 , - 154 , - 335 , - 1736 , - 453 , - 390 , - 1547 , - 20 , - 1665 , - 626 , - 807 , - 256 , - 925 , - 862 , - 67 , - 492 , - 185 , - 1098 , - 1279 , - 728 , - 1397 , - 1334 , - 539 , - 964 , - 657 , - 1570 , - 1751 , - 1200 , - 1869 , - 1806 , - 1011 , - 1436 , - 1129 , - 90 , - 271 , - 1672 , - 389 , - 326 , - 1483 , - 1908 , - 1601 , - 562 , - 743 , - 192 , - 861 , - 798 , - 3 , - 428 , - 121 , - 1034 , - 1215 , - 664 , - 1333 , - 1270 , - 475 , - 900 , - 593 , - 1506 , - 1687 , - 1136 , - 1805 , - 1742 , - 947 , - 1372 , - 1065 , - 26 , - 207 , - 1608 , - 325 , - 262 , - 1419 , - 1844 , - 1537 , - 498 , - 679 , - 128 , - 797 , - 734 , - 1891 , - 364 , - 57 , - 970 , - 1151 , - 600 , - 1269 , - 1206 , - 411 , - 836 , - 529 , - 1442 , - 1623 , - 1072 , - 1741 , - 1678 , - 883 , - 1308 , - 1001 , - 1914 , - 143 , - 1544 , - 261 , - 198 , - 1355 , - 1780 , - 1473 , - 434 , - 615 , - 64 , - 733 , - 670 , - 1827 , - 300 , - 1945 , - 906 , - 1087 , - 536 , - 1205 , - 1142 , - 347 , - 772 , - 465 , - 1378 , - 1559 , - 1008 , - 1677 , - 1614 , - 819 , - 1244 , - 937 , - 1850 , - 79 , - 1480 , - 197 , - 134 , - 1291 , - 1716 , - 1409 , - 370 , - 551 , - 0 , - 309 , - 866 , - 1671 , - 740 , - 57 , - 1606 , - 1419 , - 1480 , - 1789 , - 362 , - 1167 , - 236 , - 1537 , - 1102 , - 915 , - 976 , - 1285 , - 1842 , - 663 , - 1716 , - 1033 , - 598 , - 411 , - 472 , - 781 , - 1338 , - 159 , - 1212 , - 529 , - 94 , - 1891 , - 1952 , - 277 , - 834 , - 1639 , - 708 , - 25 , - 1574 , - 1387 , - 1448 , - 1757 , - 330 , - 1135 , - 204 , - 1505 , - 1070 , - 883 , - 944 , - 1253 , - 1810 , - 631 , - 1684 , - 1001 , - 566 , - 379 , - 440 , - 749 , - 1306 , - 127 , - 1180 , - 497 , - 62 , - 1859 , - 1920 , - 245 , - 802 , - 1607 , - 676 , - 1977 , - 1542 , - 1355 , - 1416 , - 1725 , - 298 , - 1103 , - 172 , - 1473 , - 1038 , - 851 , - 912 , - 1221 , - 1778 , - 599 , - 1652 , - 969 , - 534 , - 347 , - 408 , - 717 , - 1274 , - 95 , - 1148 , - 465 , - 30 , - 1827 , - 1888 , - 213 , - 770 , - 1575 , - 644 , - 1945 , - 1510 , - 1323 , - 1384 , - 1693 , - 266 , - 1071 , - 140 , - 1441 , - 1006 , - 819 , - 880 , - 1189 , - 1746 , - 567 , - 1620 , - 937 , - 502 , - 315 , - 376 , - 685 , - 1242 , - 63 , - 1116 , - 433 , - 1982 , - 1795 , - 1856 , - 181 , - 738 , - 1543 , - 612 , - 1913 , - 1478 , - 1291 , - 1352 , - 1661 , - 234 , - 1039 , - 108 , - 1409 , - 974 , - 787 , - 848 , - 1157 , - 1714 , - 535 , - 1588 , - 905 , - 470 , - 283 , - 344 , - 653 , - 1210 , - 31 , - 1084 , - 401 , - 1950 , - 1763 , - 1824 , - 149 , - 706 , - 1511 , - 580 , - 1881 , - 1446 , - 1259 , - 1320 , - 1629 , - 202 , - 1007 , - 76 , - 1377 , - 942 , - 755 , - 816 , - 1125 , - 1682 , - 503 , - 1556 , - 873 , - 438 , - 251 , - 312 , - 621 , - 1178 , - 1983 , - 1052 , - 369 , - 1918 , - 1731 , - 1792 , - 117 , - 674 , - 1479 , - 548 , - 1849 , - 1414 , - 1227 , - 1288 , - 1597 , - 170 , - 975 , - 44 , - 1345 , - 910 , - 723 , - 784 , - 1093 , - 1650 , - 471 , - 1524 , - 841 , - 406 , - 219 , - 280 , - 589 , - 1146 , - 1951 , - 1020 , - 337 , - 1886 , - 1699 , - 1760 , - 85 , - 642 , - 1447 , - 516 , - 1817 , - 1382 , - 1195 , - 1256 , - 1565 , - 138 , - 943 , - 12 , - 1313 , - 878 , - 691 , - 752 , - 1061 , - 1618 , - 439 , - 1492 , - 809 , - 374 , - 187 , - 248 , - 557 , - 1114 , - 1919 , - 988 , - 305 , - 1854 , - 1667 , - 1728 , - 53 , - 610 , - 1415 , - 484 , - 1785 , - 1350 , - 1163 , - 1224 , - 1533 , - 106 , - 911 , - 1964 , - 1281 , - 846 , - 659 , - 720 , - 1029 , - 1586 , - 407 , - 1460 , - 777 , - 342 , - 155 , - 216 , - 525 , - 1082 , - 1887 , - 956 , - 273 , - 1822 , - 1635 , - 1696 , - 21 , - 578 , - 1383 , - 452 , - 1753 , - 1318 , - 1131 , - 1192 , - 1501 , - 74 , - 879 , - 1932 , - 1249 , - 814 , - 627 , - 688 , - 997 , - 1554 , - 375 , - 1428 , - 745 , - 310 , - 123 , - 184 , - 493 , - 1050 , - 1855 , - 924 , - 241 , - 1790 , - 1603 , - 1664 , - 1973 , - 546 , - 1351 , - 420 , - 1721 , - 1286 , - 1099 , - 1160 , - 1469 , - 42 , - 847 , - 1900 , - 1217 , - 782 , - 595 , - 656 , - 965 , - 1522 , - 343 , - 1396 , - 713 , - 278 , - 91 , - 152 , - 461 , - 1018 , - 1823 , - 892 , - 209 , - 1758 , - 1571 , - 1632 , - 1941 , - 514 , - 1319 , - 388 , - 1689 , - 1254 , - 1067 , - 1128 , - 1437 , - 10 , - 815 , - 1868 , - 1185 , - 750 , - 563 , - 624 , - 933 , - 1490 , - 311 , - 1364 , - 681 , - 246 , - 59 , - 120 , - 429 , - 986 , - 1791 , - 860 , - 177 , - 1726 , - 1539 , - 1600 , - 1909 , - 482 , - 1287 , - 356 , - 1657 , - 1222 , - 1035 , - 1096 , - 1405 , - 1962 , - 783 , - 1836 , - 1153 , - 718 , - 531 , - 592 , - 901 , - 1458 , - 279 , - 1332 , - 649 , - 214 , - 27 , - 88 , - 397 , - 954 , - 1759 , - 828 , - 145 , - 1694 , - 1507 , - 1568 , - 1877 , - 450 , - 1255 , - 324 , - 1625 , - 1190 , - 1003 , - 1064 , - 1373 , - 1930 , - 751 , - 1804 , - 1121 , - 686 , - 499 , - 560 , - 869 , - 1426 , - 247 , - 1300 , - 617 , - 182 , - 1979 , - 56 , - 365 , - 922 , - 1727 , - 796 , - 113 , - 1662 , - 1475 , - 1536 , - 1845 , - 418 , - 1223 , - 292 , - 1593 , - 1158 , - 971 , - 1032 , - 1341 , - 1898 , - 719 , - 1772 , - 1089 , - 654 , - 467 , - 528 , - 837 , - 1394 , - 215 , - 1268 , - 585 , - 150 , - 1947 , - 24 , - 333 , - 890 , - 1695 , - 764 , - 81 , - 1630 , - 1443 , - 1504 , - 1813 , - 386 , - 1191 , - 260 , - 1561 , - 1126 , - 939 , - 1000 , - 1309 , - 1866 , - 687 , - 1740 , - 1057 , - 622 , - 435 , - 496 , - 805 , - 1362 , - 183 , - 1236 , - 553 , - 118 , - 1915 , - 1976 , - 301 , - 858 , - 1663 , - 732 , - 49 , - 1598 , - 1411 , - 1472 , - 1781 , - 354 , - 1159 , - 228 , - 1529 , - 1094 , - 907 , - 968 , - 1277 , - 1834 , - 655 , - 1708 , - 1025 , - 590 , - 403 , - 464 , - 773 , - 1330 , - 151 , - 1204 , - 521 , - 86 , - 1883 , - 1944 , - 269 , - 826 , - 1631 , - 700 , - 17 , - 1566 , - 1379 , - 1440 , - 1749 , - 322 , - 1127 , - 196 , - 1497 , - 1062 , - 875 , - 936 , - 1245 , - 1802 , - 623 , - 1676 , - 993 , - 558 , - 371 , - 432 , - 741 , - 1298 , - 119 , - 1172 , - 489 , - 54 , - 1851 , - 1912 , - 237 , - 794 , - 1599 , - 668 , - 1969 , - 1534 , - 1347 , - 1408 , - 1717 , - 290 , - 1095 , - 164 , - 1465 , - 1030 , - 843 , - 904 , - 1213 , - 1770 , - 591 , - 1644 , - 961 , - 526 , - 339 , - 400 , - 709 , - 1266 , - 87 , - 1140 , - 457 , - 22 , - 1819 , - 1880 , - 205 , - 762 , - 1567 , - 636 , - 1937 , - 1502 , - 1315 , - 1376 , - 1685 , - 258 , - 1063 , - 132 , - 1433 , - 998 , - 811 , - 872 , - 1181 , - 1738 , - 559 , - 1612 , - 929 , - 494 , - 307 , - 368 , - 677 , - 1234 , - 55 , - 1108 , - 425 , - 1974 , - 1787 , - 1848 , - 173 , - 730 , - 1535 , - 604 , - 1905 , - 1470 , - 1283 , - 1344 , - 1653 , - 226 , - 1031 , - 100 , - 1401 , - 966 , - 779 , - 840 , - 1149 , - 1706 , - 527 , - 1580 , - 897 , - 462 , - 275 , - 336 , - 645 , - 1202 , - 23 , - 1076 , - 393 , - 1942 , - 1755 , - 1816 , - 141 , - 698 , - 1503 , - 572 , - 1873 , - 1438 , - 1251 , - 1312 , - 1621 , - 194 , - 999 , - 68 , - 1369 , - 934 , - 747 , - 808 , - 1117 , - 1674 , - 495 , - 1548 , - 865 , - 430 , - 243 , - 304 , - 613 , - 1170 , - 1975 , - 1044 , - 361 , - 1910 , - 1723 , - 1784 , - 109 , - 666 , - 1471 , - 540 , - 1841 , - 1406 , - 1219 , - 1280 , - 1589 , - 162 , - 967 , - 36 , - 1337 , - 902 , - 715 , - 776 , - 1085 , - 1642 , - 463 , - 1516 , - 833 , - 398 , - 211 , - 272 , - 581 , - 1138 , - 1943 , - 1012 , - 329 , - 1878 , - 1691 , - 1752 , - 77 , - 634 , - 1439 , - 508 , - 1809 , - 1374 , - 1187 , - 1248 , - 1557 , - 130 , - 935 , - 4 , - 1305 , - 870 , - 683 , - 744 , - 1053 , - 1610 , - 431 , - 1484 , - 801 , - 366 , - 179 , - 240 , - 549 , - 1106 , - 1911 , - 980 , - 297 , - 1846 , - 1659 , - 1720 , - 45 , - 602 , - 1407 , - 476 , - 1777 , - 1342 , - 1155 , - 1216 , - 1525 , - 98 , - 903 , - 1956 , - 1273 , - 838 , - 651 , - 712 , - 1021 , - 1578 , - 399 , - 1452 , - 769 , - 334 , - 147 , - 208 , - 517 , - 1074 , - 1879 , - 948 , - 265 , - 1814 , - 1627 , - 1688 , - 13 , - 570 , - 1375 , - 444 , - 1745 , - 1310 , - 1123 , - 1184 , - 1493 , - 66 , - 871 , - 1924 , - 1241 , - 806 , - 619 , - 680 , - 989 , - 1546 , - 367 , - 1420 , - 737 , - 302 , - 115 , - 176 , - 485 , - 1042 , - 1847 , - 916 , - 233 , - 1782 , - 1595 , - 1656 , - 1965 , - 538 , - 1343 , - 412 , - 1713 , - 1278 , - 1091 , - 1152 , - 1461 , - 34 , - 839 , - 1892 , - 1209 , - 774 , - 587 , - 648 , - 957 , - 1514 , - 335 , - 1388 , - 705 , - 270 , - 83 , - 144 , - 453 , - 1010 , - 1815 , - 884 , - 201 , - 1750 , - 1563 , - 1624 , - 1933 , - 506 , - 1311 , - 380 , - 1681 , - 1246 , - 1059 , - 1120 , - 1429 , - 2 , - 807 , - 1860 , - 1177 , - 742 , - 555 , - 616 , - 925 , - 1482 , - 303 , - 1356 , - 673 , - 238 , - 51 , - 112 , - 421 , - 978 , - 1783 , - 852 , - 169 , - 1718 , - 1531 , - 1592 , - 1901 , - 474 , - 1279 , - 348 , - 1649 , - 1214 , - 1027 , - 1088 , - 1397 , - 1954 , - 775 , - 1828 , - 1145 , - 710 , - 523 , - 584 , - 893 , - 1450 , - 271 , - 1324 , - 641 , - 206 , - 19 , - 80 , - 389 , - 946 , - 1751 , - 820 , - 137 , - 1686 , - 1499 , - 1560 , - 1869 , - 442 , - 1247 , - 316 , - 1617 , - 1182 , - 995 , - 1056 , - 1365 , - 1922 , - 743 , - 1796 , - 1113 , - 678 , - 491 , - 552 , - 861 , - 1418 , - 239 , - 1292 , - 609 , - 174 , - 1971 , - 48 , - 357 , - 914 , - 1719 , - 788 , - 105 , - 1654 , - 1467 , - 1528 , - 1837 , - 410 , - 1215 , - 284 , - 1585 , - 1150 , - 963 , - 1024 , - 1333 , - 1890 , - 711 , - 1764 , - 1081 , - 646 , - 459 , - 520 , - 829 , - 1386 , - 207 , - 1260 , - 577 , - 142 , - 1939 , - 16 , - 325 , - 882 , - 1687 , - 756 , - 73 , - 1622 , - 1435 , - 1496 , - 1805 , - 378 , - 1183 , - 252 , - 1553 , - 1118 , - 931 , - 992 , - 1301 , - 1858 , - 679 , - 1732 , - 1049 , - 614 , - 427 , - 488 , - 797 , - 1354 , - 175 , - 1228 , - 545 , - 110 , - 1907 , - 1968 , - 293 , - 850 , - 1655 , - 724 , - 41 , - 1590 , - 1403 , - 1464 , - 1773 , - 346 , - 1151 , - 220 , - 1521 , - 1086 , - 899 , - 960 , - 1269 , - 1826 , - 647 , - 1700 , - 1017 , - 582 , - 395 , - 456 , - 765 , - 1322 , - 143 , - 1196 , - 513 , - 78 , - 1875 , - 1936 , - 261 , - 818 , - 1623 , - 692 , - 9 , - 1558 , - 1371 , - 1432 , - 1741 , - 314 , - 1119 , - 188 , - 1489 , - 1054 , - 867 , - 928 , - 1237 , - 1794 , - 615 , - 1668 , - 985 , - 550 , - 363 , - 424 , - 733 , - 1290 , - 111 , - 1164 , - 481 , - 46 , - 1843 , - 1904 , - 229 , - 786 , - 1591 , - 660 , - 1961 , - 1526 , - 1339 , - 1400 , - 1709 , - 282 , - 1087 , - 156 , - 1457 , - 1022 , - 835 , - 896 , - 1205 , - 1762 , - 583 , - 1636 , - 953 , - 518 , - 331 , - 392 , - 701 , - 1258 , - 79 , - 1132 , - 449 , - 14 , - 1811 , - 1872 , - 197 , - 754 , - 1559 , - 628 , - 1929 , - 1494 , - 1307 , - 1368 , - 1677 , - 250 , - 1055 , - 124 , - 1425 , - 990 , - 803 , - 864 , - 1173 , - 1730 , - 551 , - 1604 , - 921 , - 486 , - 299 , - 360 , - 669 , - 1226 , - 47 , - 1100 , - 417 , - 1966 , - 1779 , - 1840 , - 165 , - 722 , - 1527 , - 596 , - 1897 , - 1462 , - 1275 , - 1336 , - 1645 , - 218 , - 1023 , - 92 , - 1393 , - 958 , - 771 , - 832 , - 1141 , - 1698 , - 519 , - 1572 , - 889 , - 454 , - 267 , - 328 , - 637 , - 1194 , - 15 , - 1068 , - 385 , - 1934 , - 1747 , - 1808 , - 133 , - 690 , - 1495 , - 564 , - 1865 , - 1430 , - 1243 , - 1304 , - 1613 , - 186 , - 991 , - 60 , - 1361 , - 926 , - 739 , - 800 , - 1109 , - 1666 , - 487 , - 1540 , - 857 , - 422 , - 235 , - 296 , - 605 , - 1162 , - 1967 , - 1036 , - 353 , - 1902 , - 1715 , - 1776 , - 101 , - 658 , - 1463 , - 532 , - 1833 , - 1398 , - 1211 , - 1272 , - 1581 , - 154 , - 959 , - 28 , - 1329 , - 894 , - 707 , - 768 , - 1077 , - 1634 , - 455 , - 1508 , - 825 , - 390 , - 203 , - 264 , - 573 , - 1130 , - 1935 , - 1004 , - 321 , - 1870 , - 1683 , - 1744 , - 69 , - 626 , - 1431 , - 500 , - 1801 , - 1366 , - 1179 , - 1240 , - 1549 , - 122 , - 927 , - 1980 , - 1297 , - 862 , - 675 , - 736 , - 1045 , - 1602 , - 423 , - 1476 , - 793 , - 358 , - 171 , - 232 , - 541 , - 1098 , - 1903 , - 972 , - 289 , - 1838 , - 1651 , - 1712 , - 37 , - 594 , - 1399 , - 468 , - 1769 , - 1334 , - 1147 , - 1208 , - 1517 , - 90 , - 895 , - 1948 , - 1265 , - 830 , - 643 , - 704 , - 1013 , - 1570 , - 391 , - 1444 , - 761 , - 326 , - 139 , - 200 , - 509 , - 1066 , - 1871 , - 940 , - 257 , - 1806 , - 1619 , - 1680 , - 5 , - 562 , - 1367 , - 436 , - 1737 , - 1302 , - 1115 , - 1176 , - 1485 , - 58 , - 863 , - 1916 , - 1233 , - 798 , - 611 , - 672 , - 981 , - 1538 , - 359 , - 1412 , - 729 , - 294 , - 107 , - 168 , - 477 , - 1034 , - 1839 , - 908 , - 225 , - 1774 , - 1587 , - 1648 , - 1957 , - 530 , - 1335 , - 404 , - 1705 , - 1270 , - 1083 , - 1144 , - 1453 , - 26 , - 831 , - 1884 , - 1201 , - 766 , - 579 , - 640 , - 949 , - 1506 , - 327 , - 1380 , - 697 , - 262 , - 75 , - 136 , - 445 , - 1002 , - 1807 , - 876 , - 193 , - 1742 , - 1555 , - 1616 , - 1925 , - 498 , - 1303 , - 372 , - 1673 , - 1238 , - 1051 , - 1112 , - 1421 , - 1978 , - 799 , - 1852 , - 1169 , - 734 , - 547 , - 608 , - 917 , - 1474 , - 295 , - 1348 , - 665 , - 230 , - 43 , - 104 , - 413 , - 970 , - 1775 , - 844 , - 161 , - 1710 , - 1523 , - 1584 , - 1893 , - 466 , - 1271 , - 340 , - 1641 , - 1206 , - 1019 , - 1080 , - 1389 , - 1946 , - 767 , - 1820 , - 1137 , - 702 , - 515 , - 576 , - 885 , - 1442 , - 263 , - 1316 , - 633 , - 198 , - 11 , - 72 , - 381 , - 938 , - 1743 , - 812 , - 129 , - 1678 , - 1491 , - 1552 , - 1861 , - 434 , - 1239 , - 308 , - 1609 , - 1174 , - 987 , - 1048 , - 1357 , - 1914 , - 735 , - 1788 , - 1105 , - 670 , - 483 , - 544 , - 853 , - 1410 , - 231 , - 1284 , - 601 , - 166 , - 1963 , - 40 , - 349 , - 906 , - 1711 , - 780 , - 97 , - 1646 , - 1459 , - 1520 , - 1829 , - 402 , - 1207 , - 276 , - 1577 , - 1142 , - 955 , - 1016 , - 1325 , - 1882 , - 703 , - 1756 , - 1073 , - 638 , - 451 , - 512 , - 821 , - 1378 , - 199 , - 1252 , - 569 , - 134 , - 1931 , - 8 , - 317 , - 874 , - 1679 , - 748 , - 65 , - 1614 , - 1427 , - 1488 , - 1797 , - 370 , - 1175 , - 244 , - 1545 , - 1110 , - 923 , - 984 , - 1293 , - 1850 , - 671 , - 1724 , - 1041 , - 606 , - 419 , - 480 , - 789 , - 1346 , - 167 , - 1220 , - 537 , - 102 , - 1899 , - 1960 , - 285 , - 842 , - 1647 , - 716 , - 33 , - 1582 , - 1395 , - 1456 , - 1765 , - 338 , - 1143 , - 212 , - 1513 , - 1078 , - 891 , - 952 , - 1261 , - 1818 , - 639 , - 1692 , - 1009 , - 574 , - 387 , - 448 , - 757 , - 1314 , - 135 , - 1188 , - 505 , - 70 , - 1867 , - 1928 , - 253 , - 810 , - 1615 , - 684 , - 1 , - 1550 , - 1363 , - 1424 , - 1733 , - 306 , - 1111 , - 180 , - 1481 , - 1046 , - 859 , - 920 , - 1229 , - 1786 , - 607 , - 1660 , - 977 , - 542 , - 355 , - 416 , - 725 , - 1282 , - 103 , - 1156 , - 473 , - 38 , - 1835 , - 1896 , - 221 , - 778 , - 1583 , - 652 , - 1953 , - 1518 , - 1331 , - 1392 , - 1701 , - 274 , - 1079 , - 148 , - 1449 , - 1014 , - 827 , - 888 , - 1197 , - 1754 , - 575 , - 1628 , - 945 , - 510 , - 323 , - 384 , - 693 , - 1250 , - 71 , - 1124 , - 441 , - 6 , - 1803 , - 1864 , - 189 , - 746 , - 1551 , - 620 , - 1921 , - 1486 , - 1299 , - 1360 , - 1669 , - 242 , - 1047 , - 116 , - 1417 , - 982 , - 795 , - 856 , - 1165 , - 1722 , - 543 , - 1596 , - 913 , - 478 , - 291 , - 352 , - 661 , - 1218 , - 39 , - 1092 , - 409 , - 1958 , - 1771 , - 1832 , - 157 , - 714 , - 1519 , - 588 , - 1889 , - 1454 , - 1267 , - 1328 , - 1637 , - 210 , - 1015 , - 84 , - 1385 , - 950 , - 763 , - 824 , - 1133 , - 1690 , - 511 , - 1564 , - 881 , - 446 , - 259 , - 320 , - 629 , - 1186 , - 7 , - 1060 , - 377 , - 1926 , - 1739 , - 1800 , - 125 , - 682 , - 1487 , - 556 , - 1857 , - 1422 , - 1235 , - 1296 , - 1605 , - 178 , - 983 , - 52 , - 1353 , - 918 , - 731 , - 792 , - 1101 , - 1658 , - 479 , - 1532 , - 849 , - 414 , - 227 , - 288 , - 597 , - 1154 , - 1959 , - 1028 , - 345 , - 1894 , - 1707 , - 1768 , - 93 , - 650 , - 1455 , - 524 , - 1825 , - 1390 , - 1203 , - 1264 , - 1573 , - 146 , - 951 , - 20 , - 1321 , - 886 , - 699 , - 760 , - 1069 , - 1626 , - 447 , - 1500 , - 817 , - 382 , - 195 , - 256 , - 565 , - 1122 , - 1927 , - 996 , - 313 , - 1862 , - 1675 , - 1736 , - 61 , - 618 , - 1423 , - 492 , - 1793 , - 1358 , - 1171 , - 1232 , - 1541 , - 114 , - 919 , - 1972 , - 1289 , - 854 , - 667 , - 728 , - 1037 , - 1594 , - 415 , - 1468 , - 785 , - 350 , - 163 , - 224 , - 533 , - 1090 , - 1895 , - 964 , - 281 , - 1830 , - 1643 , - 1704 , - 29 , - 586 , - 1391 , - 460 , - 1761 , - 1326 , - 1139 , - 1200 , - 1509 , - 82 , - 887 , - 1940 , - 1257 , - 822 , - 635 , - 696 , - 1005 , - 1562 , - 383 , - 1436 , - 753 , - 318 , - 131 , - 192 , - 501 , - 1058 , - 1863 , - 932 , - 249 , - 1798 , - 1611 , - 1672 , - 1981 , - 554 , - 1359 , - 428 , - 1729 , - 1294 , - 1107 , - 1168 , - 1477 , - 50 , - 855 , - 1908 , - 1225 , - 790 , - 603 , - 664 , - 973 , - 1530 , - 351 , - 1404 , - 721 , - 286 , - 99 , - 160 , - 469 , - 1026 , - 1831 , - 900 , - 217 , - 1766 , - 1579 , - 1640 , - 1949 , - 522 , - 1327 , - 396 , - 1697 , - 1262 , - 1075 , - 1136 , - 1445 , - 18 , - 823 , - 1876 , - 1193 , - 758 , - 571 , - 632 , - 941 , - 1498 , - 319 , - 1372 , - 689 , - 254 , - 67 , - 128 , - 437 , - 994 , - 1799 , - 868 , - 185 , - 1734 , - 1547 , - 1608 , - 1917 , - 490 , - 1295 , - 364 , - 1665 , - 1230 , - 1043 , - 1104 , - 1413 , - 1970 , - 791 , - 1844 , - 1161 , - 726 , - 539 , - 600 , - 909 , - 1466 , - 287 , - 1340 , - 657 , - 222 , - 35 , - 96 , - 405 , - 962 , - 1767 , - 836 , - 153 , - 1702 , - 1515 , - 1576 , - 1885 , - 458 , - 1263 , - 332 , - 1633 , - 1198 , - 1011 , - 1072 , - 1381 , - 1938 , - 759 , - 1812 , - 1129 , - 694 , - 507 , - 568 , - 877 , - 1434 , - 255 , - 1308 , - 625 , - 190 , - 3 , - 64 , - 373 , - 930 , - 1735 , - 804 , - 121 , - 1670 , - 1483 , - 1544 , - 1853 , - 426 , - 1231 , - 300 , - 1601 , - 1166 , - 979 , - 1040 , - 1349 , - 1906 , - 727 , - 1780 , - 1097 , - 662 , - 475 , - 536 , - 845 , - 1402 , - 223 , - 1276 , - 593 , - 158 , - 1955 , - 32 , - 341 , - 898 , - 1703 , - 772 , - 89 , - 1638 , - 1451 , - 1512 , - 1821 , - 394 , - 1199 , - 268 , - 1569 , - 1134 , - 947 , - 1008 , - 1317 , - 1874 , - 695 , - 1748 , - 1065 , - 630 , - 443 , - 504 , - 813 , - 1370 , - 191 , - 1244 , - 561 , - 126 , - 1923 , - 0 , - 533 , - 1906 , - 87 , - 1124 , - 985 , - 1686 , - 1211 , - 1576 , - 765 , - 794 , - 1663 , - 1356 , - 1889 , - 1246 , - 1443 , - 464 , - 325 , - 1026 , - 551 , - 916 , - 105 , - 134 , - 1003 , - 696 , - 1229 , - 586 , - 783 , - 1820 , - 1681 , - 366 , - 1907 , - 256 , - 1461 , - 1490 , - 343 , - 36 , - 569 , - 1942 , - 123 , - 1160 , - 1021 , - 1722 , - 1247 , - 1612 , - 801 , - 830 , - 1699 , - 1392 , - 1925 , - 1282 , - 1479 , - 500 , - 361 , - 1062 , - 587 , - 952 , - 141 , - 170 , - 1039 , - 732 , - 1265 , - 622 , - 819 , - 1856 , - 1717 , - 402 , - 1943 , - 292 , - 1497 , - 1526 , - 379 , - 72 , - 605 , - 1978 , - 159 , - 1196 , - 1057 , - 1758 , - 1283 , - 1648 , - 837 , - 866 , - 1735 , - 1428 , - 1961 , - 1318 , - 1515 , - 536 , - 397 , - 1098 , - 623 , - 988 , - 177 , - 206 , - 1075 , - 768 , - 1301 , - 658 , - 855 , - 1892 , - 1753 , - 438 , - 1979 , - 328 , - 1533 , - 1562 , - 415 , - 108 , - 641 , - 2014 , - 195 , - 1232 , - 1093 , - 1794 , - 1319 , - 1684 , - 873 , - 902 , - 1771 , - 1464 , - 1997 , - 1354 , - 1551 , - 572 , - 433 , - 1134 , - 659 , - 1024 , - 213 , - 242 , - 1111 , - 804 , - 1337 , - 694 , - 891 , - 1928 , - 1789 , - 474 , - 2015 , - 364 , - 1569 , - 1598 , - 451 , - 144 , - 677 , - 34 , - 231 , - 1268 , - 1129 , - 1830 , - 1355 , - 1720 , - 909 , - 938 , - 1807 , - 1500 , - 17 , - 1390 , - 1587 , - 608 , - 469 , - 1170 , - 695 , - 1060 , - 249 , - 278 , - 1147 , - 840 , - 1373 , - 730 , - 927 , - 1964 , - 1825 , - 510 , - 35 , - 400 , - 1605 , - 1634 , - 487 , - 180 , - 713 , - 70 , - 267 , - 1304 , - 1165 , - 1866 , - 1391 , - 1756 , - 945 , - 974 , - 1843 , - 1536 , - 53 , - 1426 , - 1623 , - 644 , - 505 , - 1206 , - 731 , - 1096 , - 285 , - 314 , - 1183 , - 876 , - 1409 , - 766 , - 963 , - 2000 , - 1861 , - 546 , - 71 , - 436 , - 1641 , - 1670 , - 523 , - 216 , - 749 , - 106 , - 303 , - 1340 , - 1201 , - 1902 , - 1427 , - 1792 , - 981 , - 1010 , - 1879 , - 1572 , - 89 , - 1462 , - 1659 , - 680 , - 541 , - 1242 , - 767 , - 1132 , - 321 , - 350 , - 1219 , - 912 , - 1445 , - 802 , - 999 , - 20 , - 1897 , - 582 , - 107 , - 472 , - 1677 , - 1706 , - 559 , - 252 , - 785 , - 142 , - 339 , - 1376 , - 1237 , - 1938 , - 1463 , - 1828 , - 1017 , - 1046 , - 1915 , - 1608 , - 125 , - 1498 , - 1695 , - 716 , - 577 , - 1278 , - 803 , - 1168 , - 357 , - 386 , - 1255 , - 948 , - 1481 , - 838 , - 1035 , - 56 , - 1933 , - 618 , - 143 , - 508 , - 1713 , - 1742 , - 595 , - 288 , - 821 , - 178 , - 375 , - 1412 , - 1273 , - 1974 , - 1499 , - 1864 , - 1053 , - 1082 , - 1951 , - 1644 , - 161 , - 1534 , - 1731 , - 752 , - 613 , - 1314 , - 839 , - 1204 , - 393 , - 422 , - 1291 , - 984 , - 1517 , - 874 , - 1071 , - 92 , - 1969 , - 654 , - 179 , - 544 , - 1749 , - 1778 , - 631 , - 324 , - 857 , - 214 , - 411 , - 1448 , - 1309 , - 2010 , - 1535 , - 1900 , - 1089 , - 1118 , - 1987 , - 1680 , - 197 , - 1570 , - 1767 , - 788 , - 649 , - 1350 , - 875 , - 1240 , - 429 , - 458 , - 1327 , - 1020 , - 1553 , - 910 , - 1107 , - 128 , - 2005 , - 690 , - 215 , - 580 , - 1785 , - 1814 , - 667 , - 360 , - 893 , - 250 , - 447 , - 1484 , - 1345 , - 30 , - 1571 , - 1936 , - 1125 , - 1154 , - 7 , - 1716 , - 233 , - 1606 , - 1803 , - 824 , - 685 , - 1386 , - 911 , - 1276 , - 465 , - 494 , - 1363 , - 1056 , - 1589 , - 946 , - 1143 , - 164 , - 25 , - 726 , - 251 , - 616 , - 1821 , - 1850 , - 703 , - 396 , - 929 , - 286 , - 483 , - 1520 , - 1381 , - 66 , - 1607 , - 1972 , - 1161 , - 1190 , - 43 , - 1752 , - 269 , - 1642 , - 1839 , - 860 , - 721 , - 1422 , - 947 , - 1312 , - 501 , - 530 , - 1399 , - 1092 , - 1625 , - 982 , - 1179 , - 200 , - 61 , - 762 , - 287 , - 652 , - 1857 , - 1886 , - 739 , - 432 , - 965 , - 322 , - 519 , - 1556 , - 1417 , - 102 , - 1643 , - 2008 , - 1197 , - 1226 , - 79 , - 1788 , - 305 , - 1678 , - 1875 , - 896 , - 757 , - 1458 , - 983 , - 1348 , - 537 , - 566 , - 1435 , - 1128 , - 1661 , - 1018 , - 1215 , - 236 , - 97 , - 798 , - 323 , - 688 , - 1893 , - 1922 , - 775 , - 468 , - 1001 , - 358 , - 555 , - 1592 , - 1453 , - 138 , - 1679 , - 28 , - 1233 , - 1262 , - 115 , - 1824 , - 341 , - 1714 , - 1911 , - 932 , - 793 , - 1494 , - 1019 , - 1384 , - 573 , - 602 , - 1471 , - 1164 , - 1697 , - 1054 , - 1251 , - 272 , - 133 , - 834 , - 359 , - 724 , - 1929 , - 1958 , - 811 , - 504 , - 1037 , - 394 , - 591 , - 1628 , - 1489 , - 174 , - 1715 , - 64 , - 1269 , - 1298 , - 151 , - 1860 , - 377 , - 1750 , - 1947 , - 968 , - 829 , - 1530 , - 1055 , - 1420 , - 609 , - 638 , - 1507 , - 1200 , - 1733 , - 1090 , - 1287 , - 308 , - 169 , - 870 , - 395 , - 760 , - 1965 , - 1994 , - 847 , - 540 , - 1073 , - 430 , - 627 , - 1664 , - 1525 , - 210 , - 1751 , - 100 , - 1305 , - 1334 , - 187 , - 1896 , - 413 , - 1786 , - 1983 , - 1004 , - 865 , - 1566 , - 1091 , - 1456 , - 645 , - 674 , - 1543 , - 1236 , - 1769 , - 1126 , - 1323 , - 344 , - 205 , - 906 , - 431 , - 796 , - 2001 , - 14 , - 883 , - 576 , - 1109 , - 466 , - 663 , - 1700 , - 1561 , - 246 , - 1787 , - 136 , - 1341 , - 1370 , - 223 , - 1932 , - 449 , - 1822 , - 3 , - 1040 , - 901 , - 1602 , - 1127 , - 1492 , - 681 , - 710 , - 1579 , - 1272 , - 1805 , - 1162 , - 1359 , - 380 , - 241 , - 942 , - 467 , - 832 , - 21 , - 50 , - 919 , - 612 , - 1145 , - 502 , - 699 , - 1736 , - 1597 , - 282 , - 1823 , - 172 , - 1377 , - 1406 , - 259 , - 1968 , - 485 , - 1858 , - 39 , - 1076 , - 937 , - 1638 , - 1163 , - 1528 , - 717 , - 746 , - 1615 , - 1308 , - 1841 , - 1198 , - 1395 , - 416 , - 277 , - 978 , - 503 , - 868 , - 57 , - 86 , - 955 , - 648 , - 1181 , - 538 , - 735 , - 1772 , - 1633 , - 318 , - 1859 , - 208 , - 1413 , - 1442 , - 295 , - 2004 , - 521 , - 1894 , - 75 , - 1112 , - 973 , - 1674 , - 1199 , - 1564 , - 753 , - 782 , - 1651 , - 1344 , - 1877 , - 1234 , - 1431 , - 452 , - 313 , - 1014 , - 539 , - 904 , - 93 , - 122 , - 991 , - 684 , - 1217 , - 574 , - 771 , - 1808 , - 1669 , - 354 , - 1895 , - 244 , - 1449 , - 1478 , - 331 , - 24 , - 557 , - 1930 , - 111 , - 1148 , - 1009 , - 1710 , - 1235 , - 1600 , - 789 , - 818 , - 1687 , - 1380 , - 1913 , - 1270 , - 1467 , - 488 , - 349 , - 1050 , - 575 , - 940 , - 129 , - 158 , - 1027 , - 720 , - 1253 , - 610 , - 807 , - 1844 , - 1705 , - 390 , - 1931 , - 280 , - 1485 , - 1514 , - 367 , - 60 , - 593 , - 1966 , - 147 , - 1184 , - 1045 , - 1746 , - 1271 , - 1636 , - 825 , - 854 , - 1723 , - 1416 , - 1949 , - 1306 , - 1503 , - 524 , - 385 , - 1086 , - 611 , - 976 , - 165 , - 194 , - 1063 , - 756 , - 1289 , - 646 , - 843 , - 1880 , - 1741 , - 426 , - 1967 , - 316 , - 1521 , - 1550 , - 403 , - 96 , - 629 , - 2002 , - 183 , - 1220 , - 1081 , - 1782 , - 1307 , - 1672 , - 861 , - 890 , - 1759 , - 1452 , - 1985 , - 1342 , - 1539 , - 560 , - 421 , - 1122 , - 647 , - 1012 , - 201 , - 230 , - 1099 , - 792 , - 1325 , - 682 , - 879 , - 1916 , - 1777 , - 462 , - 2003 , - 352 , - 1557 , - 1586 , - 439 , - 132 , - 665 , - 22 , - 219 , - 1256 , - 1117 , - 1818 , - 1343 , - 1708 , - 897 , - 926 , - 1795 , - 1488 , - 5 , - 1378 , - 1575 , - 596 , - 457 , - 1158 , - 683 , - 1048 , - 237 , - 266 , - 1135 , - 828 , - 1361 , - 718 , - 915 , - 1952 , - 1813 , - 498 , - 23 , - 388 , - 1593 , - 1622 , - 475 , - 168 , - 701 , - 58 , - 255 , - 1292 , - 1153 , - 1854 , - 1379 , - 1744 , - 933 , - 962 , - 1831 , - 1524 , - 41 , - 1414 , - 1611 , - 632 , - 493 , - 1194 , - 719 , - 1084 , - 273 , - 302 , - 1171 , - 864 , - 1397 , - 754 , - 951 , - 1988 , - 1849 , - 534 , - 59 , - 424 , - 1629 , - 1658 , - 511 , - 204 , - 737 , - 94 , - 291 , - 1328 , - 1189 , - 1890 , - 1415 , - 1780 , - 969 , - 998 , - 1867 , - 1560 , - 77 , - 1450 , - 1647 , - 668 , - 529 , - 1230 , - 755 , - 1120 , - 309 , - 338 , - 1207 , - 900 , - 1433 , - 790 , - 987 , - 8 , - 1885 , - 570 , - 95 , - 460 , - 1665 , - 1694 , - 547 , - 240 , - 773 , - 130 , - 327 , - 1364 , - 1225 , - 1926 , - 1451 , - 1816 , - 1005 , - 1034 , - 1903 , - 1596 , - 113 , - 1486 , - 1683 , - 704 , - 565 , - 1266 , - 791 , - 1156 , - 345 , - 374 , - 1243 , - 936 , - 1469 , - 826 , - 1023 , - 44 , - 1921 , - 606 , - 131 , - 496 , - 1701 , - 1730 , - 583 , - 276 , - 809 , - 166 , - 363 , - 1400 , - 1261 , - 1962 , - 1487 , - 1852 , - 1041 , - 1070 , - 1939 , - 1632 , - 149 , - 1522 , - 1719 , - 740 , - 601 , - 1302 , - 827 , - 1192 , - 381 , - 410 , - 1279 , - 972 , - 1505 , - 862 , - 1059 , - 80 , - 1957 , - 642 , - 167 , - 532 , - 1737 , - 1766 , - 619 , - 312 , - 845 , - 202 , - 399 , - 1436 , - 1297 , - 1998 , - 1523 , - 1888 , - 1077 , - 1106 , - 1975 , - 1668 , - 185 , - 1558 , - 1755 , - 776 , - 637 , - 1338 , - 863 , - 1228 , - 417 , - 446 , - 1315 , - 1008 , - 1541 , - 898 , - 1095 , - 116 , - 1993 , - 678 , - 203 , - 568 , - 1773 , - 1802 , - 655 , - 348 , - 881 , - 238 , - 435 , - 1472 , - 1333 , - 18 , - 1559 , - 1924 , - 1113 , - 1142 , - 2011 , - 1704 , - 221 , - 1594 , - 1791 , - 812 , - 673 , - 1374 , - 899 , - 1264 , - 453 , - 482 , - 1351 , - 1044 , - 1577 , - 934 , - 1131 , - 152 , - 13 , - 714 , - 239 , - 604 , - 1809 , - 1838 , - 691 , - 384 , - 917 , - 274 , - 471 , - 1508 , - 1369 , - 54 , - 1595 , - 1960 , - 1149 , - 1178 , - 31 , - 1740 , - 257 , - 1630 , - 1827 , - 848 , - 709 , - 1410 , - 935 , - 1300 , - 489 , - 518 , - 1387 , - 1080 , - 1613 , - 970 , - 1167 , - 188 , - 49 , - 750 , - 275 , - 640 , - 1845 , - 1874 , - 727 , - 420 , - 953 , - 310 , - 507 , - 1544 , - 1405 , - 90 , - 1631 , - 1996 , - 1185 , - 1214 , - 67 , - 1776 , - 293 , - 1666 , - 1863 , - 884 , - 745 , - 1446 , - 971 , - 1336 , - 525 , - 554 , - 1423 , - 1116 , - 1649 , - 1006 , - 1203 , - 224 , - 85 , - 786 , - 311 , - 676 , - 1881 , - 1910 , - 763 , - 456 , - 989 , - 346 , - 543 , - 1580 , - 1441 , - 126 , - 1667 , - 16 , - 1221 , - 1250 , - 103 , - 1812 , - 329 , - 1702 , - 1899 , - 920 , - 781 , - 1482 , - 1007 , - 1372 , - 561 , - 590 , - 1459 , - 1152 , - 1685 , - 1042 , - 1239 , - 260 , - 121 , - 822 , - 347 , - 712 , - 1917 , - 1946 , - 799 , - 492 , - 1025 , - 382 , - 579 , - 1616 , - 1477 , - 162 , - 1703 , - 52 , - 1257 , - 1286 , - 139 , - 1848 , - 365 , - 1738 , - 1935 , - 956 , - 817 , - 1518 , - 1043 , - 1408 , - 597 , - 626 , - 1495 , - 1188 , - 1721 , - 1078 , - 1275 , - 296 , - 157 , - 858 , - 383 , - 748 , - 1953 , - 1982 , - 835 , - 528 , - 1061 , - 418 , - 615 , - 1652 , - 1513 , - 198 , - 1739 , - 88 , - 1293 , - 1322 , - 175 , - 1884 , - 401 , - 1774 , - 1971 , - 992 , - 853 , - 1554 , - 1079 , - 1444 , - 633 , - 662 , - 1531 , - 1224 , - 1757 , - 1114 , - 1311 , - 332 , - 193 , - 894 , - 419 , - 784 , - 1989 , - 2 , - 871 , - 564 , - 1097 , - 454 , - 651 , - 1688 , - 1549 , - 234 , - 1775 , - 124 , - 1329 , - 1358 , - 211 , - 1920 , - 437 , - 1810 , - 2007 , - 1028 , - 889 , - 1590 , - 1115 , - 1480 , - 669 , - 698 , - 1567 , - 1260 , - 1793 , - 1150 , - 1347 , - 368 , - 229 , - 930 , - 455 , - 820 , - 9 , - 38 , - 907 , - 600 , - 1133 , - 490 , - 687 , - 1724 , - 1585 , - 270 , - 1811 , - 160 , - 1365 , - 1394 , - 247 , - 1956 , - 473 , - 1846 , - 27 , - 1064 , - 925 , - 1626 , - 1151 , - 1516 , - 705 , - 734 , - 1603 , - 1296 , - 1829 , - 1186 , - 1383 , - 404 , - 265 , - 966 , - 491 , - 856 , - 45 , - 74 , - 943 , - 636 , - 1169 , - 526 , - 723 , - 1760 , - 1621 , - 306 , - 1847 , - 196 , - 1401 , - 1430 , - 283 , - 1992 , - 509 , - 1882 , - 63 , - 1100 , - 961 , - 1662 , - 1187 , - 1552 , - 741 , - 770 , - 1639 , - 1332 , - 1865 , - 1222 , - 1419 , - 440 , - 301 , - 1002 , - 527 , - 892 , - 81 , - 110 , - 979 , - 672 , - 1205 , - 562 , - 759 , - 1796 , - 1657 , - 342 , - 1883 , - 232 , - 1437 , - 1466 , - 319 , - 12 , - 545 , - 1918 , - 99 , - 1136 , - 997 , - 1698 , - 1223 , - 1588 , - 777 , - 806 , - 1675 , - 1368 , - 1901 , - 1258 , - 1455 , - 476 , - 337 , - 1038 , - 563 , - 928 , - 117 , - 146 , - 1015 , - 708 , - 1241 , - 598 , - 795 , - 1832 , - 1693 , - 378 , - 1919 , - 268 , - 1473 , - 1502 , - 355 , - 48 , - 581 , - 1954 , - 135 , - 1172 , - 1033 , - 1734 , - 1259 , - 1624 , - 813 , - 842 , - 1711 , - 1404 , - 1937 , - 1294 , - 1491 , - 512 , - 373 , - 1074 , - 599 , - 964 , - 153 , - 182 , - 1051 , - 744 , - 1277 , - 634 , - 831 , - 1868 , - 1729 , - 414 , - 1955 , - 304 , - 1509 , - 1538 , - 391 , - 84 , - 617 , - 1990 , - 171 , - 1208 , - 1069 , - 1770 , - 1295 , - 1660 , - 849 , - 878 , - 1747 , - 1440 , - 1973 , - 1330 , - 1527 , - 548 , - 409 , - 1110 , - 635 , - 1000 , - 189 , - 218 , - 1087 , - 780 , - 1313 , - 670 , - 867 , - 1904 , - 1765 , - 450 , - 1991 , - 340 , - 1545 , - 1574 , - 427 , - 120 , - 653 , - 10 , - 207 , - 1244 , - 1105 , - 1806 , - 1331 , - 1696 , - 885 , - 914 , - 1783 , - 1476 , - 2009 , - 1366 , - 1563 , - 584 , - 445 , - 1146 , - 671 , - 1036 , - 225 , - 254 , - 1123 , - 816 , - 1349 , - 706 , - 903 , - 1940 , - 1801 , - 486 , - 11 , - 376 , - 1581 , - 1610 , - 463 , - 156 , - 689 , - 46 , - 243 , - 1280 , - 1141 , - 1842 , - 1367 , - 1732 , - 921 , - 950 , - 1819 , - 1512 , - 29 , - 1402 , - 1599 , - 620 , - 481 , - 1182 , - 707 , - 1072 , - 261 , - 290 , - 1159 , - 852 , - 1385 , - 742 , - 939 , - 1976 , - 1837 , - 522 , - 47 , - 412 , - 1617 , - 1646 , - 499 , - 192 , - 725 , - 82 , - 279 , - 1316 , - 1177 , - 1878 , - 1403 , - 1768 , - 957 , - 986 , - 1855 , - 1548 , - 65 , - 1438 , - 1635 , - 656 , - 517 , - 1218 , - 743 , - 1108 , - 297 , - 326 , - 1195 , - 888 , - 1421 , - 778 , - 975 , - 2012 , - 1873 , - 558 , - 83 , - 448 , - 1653 , - 1682 , - 535 , - 228 , - 761 , - 118 , - 315 , - 1352 , - 1213 , - 1914 , - 1439 , - 1804 , - 993 , - 1022 , - 1891 , - 1584 , - 101 , - 1474 , - 1671 , - 692 , - 553 , - 1254 , - 779 , - 1144 , - 333 , - 362 , - 1231 , - 924 , - 1457 , - 814 , - 1011 , - 32 , - 1909 , - 594 , - 119 , - 484 , - 1689 , - 1718 , - 571 , - 264 , - 797 , - 154 , - 351 , - 1388 , - 1249 , - 1950 , - 1475 , - 1840 , - 1029 , - 1058 , - 1927 , - 1620 , - 137 , - 1510 , - 1707 , - 728 , - 589 , - 1290 , - 815 , - 1180 , - 369 , - 398 , - 1267 , - 960 , - 1493 , - 850 , - 1047 , - 68 , - 1945 , - 630 , - 155 , - 520 , - 1725 , - 1754 , - 607 , - 300 , - 833 , - 190 , - 387 , - 1424 , - 1285 , - 1986 , - 1511 , - 1876 , - 1065 , - 1094 , - 1963 , - 1656 , - 173 , - 1546 , - 1743 , - 764 , - 625 , - 1326 , - 851 , - 1216 , - 405 , - 434 , - 1303 , - 996 , - 1529 , - 886 , - 1083 , - 104 , - 1981 , - 666 , - 191 , - 556 , - 1761 , - 1790 , - 643 , - 336 , - 869 , - 226 , - 423 , - 1460 , - 1321 , - 6 , - 1547 , - 1912 , - 1101 , - 1130 , - 1999 , - 1692 , - 209 , - 1582 , - 1779 , - 800 , - 661 , - 1362 , - 887 , - 1252 , - 441 , - 470 , - 1339 , - 1032 , - 1565 , - 922 , - 1119 , - 140 , - 1 , - 702 , - 227 , - 592 , - 1797 , - 1826 , - 679 , - 372 , - 905 , - 262 , - 459 , - 1496 , - 1357 , - 42 , - 1583 , - 1948 , - 1137 , - 1166 , - 19 , - 1728 , - 245 , - 1618 , - 1815 , - 836 , - 697 , - 1398 , - 923 , - 1288 , - 477 , - 506 , - 1375 , - 1068 , - 1601 , - 958 , - 1155 , - 176 , - 37 , - 738 , - 263 , - 628 , - 1833 , - 1862 , - 715 , - 408 , - 941 , - 298 , - 495 , - 1532 , - 1393 , - 78 , - 1619 , - 1984 , - 1173 , - 1202 , - 55 , - 1764 , - 281 , - 1654 , - 1851 , - 872 , - 733 , - 1434 , - 959 , - 1324 , - 513 , - 542 , - 1411 , - 1104 , - 1637 , - 994 , - 1191 , - 212 , - 73 , - 774 , - 299 , - 664 , - 1869 , - 1898 , - 751 , - 444 , - 977 , - 334 , - 531 , - 1568 , - 1429 , - 114 , - 1655 , - 4 , - 1209 , - 1238 , - 91 , - 1800 , - 317 , - 1690 , - 1887 , - 908 , - 769 , - 1470 , - 995 , - 1360 , - 549 , - 578 , - 1447 , - 1140 , - 1673 , - 1030 , - 1227 , - 248 , - 109 , - 810 , - 335 , - 700 , - 1905 , - 1934 , - 787 , - 480 , - 1013 , - 370 , - 567 , - 1604 , - 1465 , - 150 , - 1691 , - 40 , - 1245 , - 1274 , - 127 , - 1836 , - 353 , - 1726 , - 1923 , - 944 , - 805 , - 1506 , - 1031 , - 1396 , - 585 , - 614 , - 1483 , - 1176 , - 1709 , - 1066 , - 1263 , - 284 , - 145 , - 846 , - 371 , - 736 , - 1941 , - 1970 , - 823 , - 516 , - 1049 , - 406 , - 603 , - 1640 , - 1501 , - 186 , - 1727 , - 76 , - 1281 , - 1310 , - 163 , - 1872 , - 389 , - 1762 , - 1959 , - 980 , - 841 , - 1542 , - 1067 , - 1432 , - 621 , - 650 , - 1519 , - 1212 , - 1745 , - 1102 , - 1299 , - 320 , - 181 , - 882 , - 407 , - 772 , - 1977 , - 2006 , - 859 , - 552 , - 1085 , - 442 , - 639 , - 1676 , - 1537 , - 222 , - 1763 , - 112 , - 1317 , - 1346 , - 199 , - 1908 , - 425 , - 1798 , - 1995 , - 1016 , - 877 , - 1578 , - 1103 , - 1468 , - 657 , - 686 , - 1555 , - 1248 , - 1781 , - 1138 , - 1335 , - 356 , - 217 , - 918 , - 443 , - 808 , - 2013 , - 26 , - 895 , - 588 , - 1121 , - 478 , - 675 , - 1712 , - 1573 , - 258 , - 1799 , - 148 , - 1353 , - 1382 , - 235 , - 1944 , - 461 , - 1834 , - 15 , - 1052 , - 913 , - 1614 , - 1139 , - 1504 , - 693 , - 722 , - 1591 , - 1284 , - 1817 , - 1174 , - 1371 , - 392 , - 253 , - 954 , - 479 , - 844 , - 33 , - 62 , - 931 , - 624 , - 1157 , - 514 , - 711 , - 1748 , - 1609 , - 294 , - 1835 , - 184 , - 1389 , - 1418 , - 271 , - 1980 , - 497 , - 1870 , - 51 , - 1088 , - 949 , - 1650 , - 1175 , - 1540 , - 729 , - 758 , - 1627 , - 1320 , - 1853 , - 1210 , - 1407 , - 428 , - 289 , - 990 , - 515 , - 880 , - 69 , - 98 , - 967 , - 660 , - 1193 , - 550 , - 747 , - 1784 , - 1645 , - 330 , - 1871 , - 220 , - 1425 , - 1454 , - 307 , - 0 , - 95 , - 318 , - 669 , - 1148 , - 1755 , - 442 , - 1305 , - 248 , - 1367 , - 566 , - 1941 , - 1396 , - 979 , - 690 , - 529 , - 496 , - 591 , - 814 , - 1165 , - 1644 , - 203 , - 938 , - 1801 , - 744 , - 1863 , - 1062 , - 389 , - 1892 , - 1475 , - 1186 , - 1025 , - 992 , - 1087 , - 1310 , - 1661 , - 92 , - 699 , - 1434 , - 249 , - 1240 , - 311 , - 1558 , - 885 , - 340 , - 1971 , - 1682 , - 1521 , - 1488 , - 1583 , - 1806 , - 109 , - 588 , - 1195 , - 1930 , - 745 , - 1736 , - 807 , - 6 , - 1381 , - 836 , - 419 , - 130 , - 2017 , - 1984 , - 31 , - 254 , - 605 , - 1084 , - 1691 , - 378 , - 1241 , - 184 , - 1303 , - 502 , - 1877 , - 1332 , - 915 , - 626 , - 465 , - 432 , - 527 , - 750 , - 1101 , - 1580 , - 139 , - 874 , - 1737 , - 680 , - 1799 , - 998 , - 325 , - 1828 , - 1411 , - 1122 , - 961 , - 928 , - 1023 , - 1246 , - 1597 , - 28 , - 635 , - 1370 , - 185 , - 1176 , - 247 , - 1494 , - 821 , - 276 , - 1907 , - 1618 , - 1457 , - 1424 , - 1519 , - 1742 , - 45 , - 524 , - 1131 , - 1866 , - 681 , - 1672 , - 743 , - 1990 , - 1317 , - 772 , - 355 , - 66 , - 1953 , - 1920 , - 2015 , - 190 , - 541 , - 1020 , - 1627 , - 314 , - 1177 , - 120 , - 1239 , - 438 , - 1813 , - 1268 , - 851 , - 562 , - 401 , - 368 , - 463 , - 686 , - 1037 , - 1516 , - 75 , - 810 , - 1673 , - 616 , - 1735 , - 934 , - 261 , - 1764 , - 1347 , - 1058 , - 897 , - 864 , - 959 , - 1182 , - 1533 , - 2012 , - 571 , - 1306 , - 121 , - 1112 , - 183 , - 1430 , - 757 , - 212 , - 1843 , - 1554 , - 1393 , - 1360 , - 1455 , - 1678 , - 2029 , - 460 , - 1067 , - 1802 , - 617 , - 1608 , - 679 , - 1926 , - 1253 , - 708 , - 291 , - 2 , - 1889 , - 1856 , - 1951 , - 126 , - 477 , - 956 , - 1563 , - 250 , - 1113 , - 56 , - 1175 , - 374 , - 1749 , - 1204 , - 787 , - 498 , - 337 , - 304 , - 399 , - 622 , - 973 , - 1452 , - 11 , - 746 , - 1609 , - 552 , - 1671 , - 870 , - 197 , - 1700 , - 1283 , - 994 , - 833 , - 800 , - 895 , - 1118 , - 1469 , - 1948 , - 507 , - 1242 , - 57 , - 1048 , - 119 , - 1366 , - 693 , - 148 , - 1779 , - 1490 , - 1329 , - 1296 , - 1391 , - 1614 , - 1965 , - 396 , - 1003 , - 1738 , - 553 , - 1544 , - 615 , - 1862 , - 1189 , - 644 , - 227 , - 1986 , - 1825 , - 1792 , - 1887 , - 62 , - 413 , - 892 , - 1499 , - 186 , - 1049 , - 2040 , - 1111 , - 310 , - 1685 , - 1140 , - 723 , - 434 , - 273 , - 240 , - 335 , - 558 , - 909 , - 1388 , - 1995 , - 682 , - 1545 , - 488 , - 1607 , - 806 , - 133 , - 1636 , - 1219 , - 930 , - 769 , - 736 , - 831 , - 1054 , - 1405 , - 1884 , - 443 , - 1178 , - 2041 , - 984 , - 55 , - 1302 , - 629 , - 84 , - 1715 , - 1426 , - 1265 , - 1232 , - 1327 , - 1550 , - 1901 , - 332 , - 939 , - 1674 , - 489 , - 1480 , - 551 , - 1798 , - 1125 , - 580 , - 163 , - 1922 , - 1761 , - 1728 , - 1823 , - 2046 , - 349 , - 828 , - 1435 , - 122 , - 985 , - 1976 , - 1047 , - 246 , - 1621 , - 1076 , - 659 , - 370 , - 209 , - 176 , - 271 , - 494 , - 845 , - 1324 , - 1931 , - 618 , - 1481 , - 424 , - 1543 , - 742 , - 69 , - 1572 , - 1155 , - 866 , - 705 , - 672 , - 767 , - 990 , - 1341 , - 1820 , - 379 , - 1114 , - 1977 , - 920 , - 2039 , - 1238 , - 565 , - 20 , - 1651 , - 1362 , - 1201 , - 1168 , - 1263 , - 1486 , - 1837 , - 268 , - 875 , - 1610 , - 425 , - 1416 , - 487 , - 1734 , - 1061 , - 516 , - 99 , - 1858 , - 1697 , - 1664 , - 1759 , - 1982 , - 285 , - 764 , - 1371 , - 58 , - 921 , - 1912 , - 983 , - 182 , - 1557 , - 1012 , - 595 , - 306 , - 145 , - 112 , - 207 , - 430 , - 781 , - 1260 , - 1867 , - 554 , - 1417 , - 360 , - 1479 , - 678 , - 5 , - 1508 , - 1091 , - 802 , - 641 , - 608 , - 703 , - 926 , - 1277 , - 1756 , - 315 , - 1050 , - 1913 , - 856 , - 1975 , - 1174 , - 501 , - 2004 , - 1587 , - 1298 , - 1137 , - 1104 , - 1199 , - 1422 , - 1773 , - 204 , - 811 , - 1546 , - 361 , - 1352 , - 423 , - 1670 , - 997 , - 452 , - 35 , - 1794 , - 1633 , - 1600 , - 1695 , - 1918 , - 221 , - 700 , - 1307 , - 2042 , - 857 , - 1848 , - 919 , - 118 , - 1493 , - 948 , - 531 , - 242 , - 81 , - 48 , - 143 , - 366 , - 717 , - 1196 , - 1803 , - 490 , - 1353 , - 296 , - 1415 , - 614 , - 1989 , - 1444 , - 1027 , - 738 , - 577 , - 544 , - 639 , - 862 , - 1213 , - 1692 , - 251 , - 986 , - 1849 , - 792 , - 1911 , - 1110 , - 437 , - 1940 , - 1523 , - 1234 , - 1073 , - 1040 , - 1135 , - 1358 , - 1709 , - 140 , - 747 , - 1482 , - 297 , - 1288 , - 359 , - 1606 , - 933 , - 388 , - 2019 , - 1730 , - 1569 , - 1536 , - 1631 , - 1854 , - 157 , - 636 , - 1243 , - 1978 , - 793 , - 1784 , - 855 , - 54 , - 1429 , - 884 , - 467 , - 178 , - 17 , - 2032 , - 79 , - 302 , - 653 , - 1132 , - 1739 , - 426 , - 1289 , - 232 , - 1351 , - 550 , - 1925 , - 1380 , - 963 , - 674 , - 513 , - 480 , - 575 , - 798 , - 1149 , - 1628 , - 187 , - 922 , - 1785 , - 728 , - 1847 , - 1046 , - 373 , - 1876 , - 1459 , - 1170 , - 1009 , - 976 , - 1071 , - 1294 , - 1645 , - 76 , - 683 , - 1418 , - 233 , - 1224 , - 295 , - 1542 , - 869 , - 324 , - 1955 , - 1666 , - 1505 , - 1472 , - 1567 , - 1790 , - 93 , - 572 , - 1179 , - 1914 , - 729 , - 1720 , - 791 , - 2038 , - 1365 , - 820 , - 403 , - 114 , - 2001 , - 1968 , - 15 , - 238 , - 589 , - 1068 , - 1675 , - 362 , - 1225 , - 168 , - 1287 , - 486 , - 1861 , - 1316 , - 899 , - 610 , - 449 , - 416 , - 511 , - 734 , - 1085 , - 1564 , - 123 , - 858 , - 1721 , - 664 , - 1783 , - 982 , - 309 , - 1812 , - 1395 , - 1106 , - 945 , - 912 , - 1007 , - 1230 , - 1581 , - 12 , - 619 , - 1354 , - 169 , - 1160 , - 231 , - 1478 , - 805 , - 260 , - 1891 , - 1602 , - 1441 , - 1408 , - 1503 , - 1726 , - 29 , - 508 , - 1115 , - 1850 , - 665 , - 1656 , - 727 , - 1974 , - 1301 , - 756 , - 339 , - 50 , - 1937 , - 1904 , - 1999 , - 174 , - 525 , - 1004 , - 1611 , - 298 , - 1161 , - 104 , - 1223 , - 422 , - 1797 , - 1252 , - 835 , - 546 , - 385 , - 352 , - 447 , - 670 , - 1021 , - 1500 , - 59 , - 794 , - 1657 , - 600 , - 1719 , - 918 , - 245 , - 1748 , - 1331 , - 1042 , - 881 , - 848 , - 943 , - 1166 , - 1517 , - 1996 , - 555 , - 1290 , - 105 , - 1096 , - 167 , - 1414 , - 741 , - 196 , - 1827 , - 1538 , - 1377 , - 1344 , - 1439 , - 1662 , - 2013 , - 444 , - 1051 , - 1786 , - 601 , - 1592 , - 663 , - 1910 , - 1237 , - 692 , - 275 , - 2034 , - 1873 , - 1840 , - 1935 , - 110 , - 461 , - 940 , - 1547 , - 234 , - 1097 , - 40 , - 1159 , - 358 , - 1733 , - 1188 , - 771 , - 482 , - 321 , - 288 , - 383 , - 606 , - 957 , - 1436 , - 2043 , - 730 , - 1593 , - 536 , - 1655 , - 854 , - 181 , - 1684 , - 1267 , - 978 , - 817 , - 784 , - 879 , - 1102 , - 1453 , - 1932 , - 491 , - 1226 , - 41 , - 1032 , - 103 , - 1350 , - 677 , - 132 , - 1763 , - 1474 , - 1313 , - 1280 , - 1375 , - 1598 , - 1949 , - 380 , - 987 , - 1722 , - 537 , - 1528 , - 599 , - 1846 , - 1173 , - 628 , - 211 , - 1970 , - 1809 , - 1776 , - 1871 , - 46 , - 397 , - 876 , - 1483 , - 170 , - 1033 , - 2024 , - 1095 , - 294 , - 1669 , - 1124 , - 707 , - 418 , - 257 , - 224 , - 319 , - 542 , - 893 , - 1372 , - 1979 , - 666 , - 1529 , - 472 , - 1591 , - 790 , - 117 , - 1620 , - 1203 , - 914 , - 753 , - 720 , - 815 , - 1038 , - 1389 , - 1868 , - 427 , - 1162 , - 2025 , - 968 , - 39 , - 1286 , - 613 , - 68 , - 1699 , - 1410 , - 1249 , - 1216 , - 1311 , - 1534 , - 1885 , - 316 , - 923 , - 1658 , - 473 , - 1464 , - 535 , - 1782 , - 1109 , - 564 , - 147 , - 1906 , - 1745 , - 1712 , - 1807 , - 2030 , - 333 , - 812 , - 1419 , - 106 , - 969 , - 1960 , - 1031 , - 230 , - 1605 , - 1060 , - 643 , - 354 , - 193 , - 160 , - 255 , - 478 , - 829 , - 1308 , - 1915 , - 602 , - 1465 , - 408 , - 1527 , - 726 , - 53 , - 1556 , - 1139 , - 850 , - 689 , - 656 , - 751 , - 974 , - 1325 , - 1804 , - 363 , - 1098 , - 1961 , - 904 , - 2023 , - 1222 , - 549 , - 4 , - 1635 , - 1346 , - 1185 , - 1152 , - 1247 , - 1470 , - 1821 , - 252 , - 859 , - 1594 , - 409 , - 1400 , - 471 , - 1718 , - 1045 , - 500 , - 83 , - 1842 , - 1681 , - 1648 , - 1743 , - 1966 , - 269 , - 748 , - 1355 , - 42 , - 905 , - 1896 , - 967 , - 166 , - 1541 , - 996 , - 579 , - 290 , - 129 , - 96 , - 191 , - 414 , - 765 , - 1244 , - 1851 , - 538 , - 1401 , - 344 , - 1463 , - 662 , - 2037 , - 1492 , - 1075 , - 786 , - 625 , - 592 , - 687 , - 910 , - 1261 , - 1740 , - 299 , - 1034 , - 1897 , - 840 , - 1959 , - 1158 , - 485 , - 1988 , - 1571 , - 1282 , - 1121 , - 1088 , - 1183 , - 1406 , - 1757 , - 188 , - 795 , - 1530 , - 345 , - 1336 , - 407 , - 1654 , - 981 , - 436 , - 19 , - 1778 , - 1617 , - 1584 , - 1679 , - 1902 , - 205 , - 684 , - 1291 , - 2026 , - 841 , - 1832 , - 903 , - 102 , - 1477 , - 932 , - 515 , - 226 , - 65 , - 32 , - 127 , - 350 , - 701 , - 1180 , - 1787 , - 474 , - 1337 , - 280 , - 1399 , - 598 , - 1973 , - 1428 , - 1011 , - 722 , - 561 , - 528 , - 623 , - 846 , - 1197 , - 1676 , - 235 , - 970 , - 1833 , - 776 , - 1895 , - 1094 , - 421 , - 1924 , - 1507 , - 1218 , - 1057 , - 1024 , - 1119 , - 1342 , - 1693 , - 124 , - 731 , - 1466 , - 281 , - 1272 , - 343 , - 1590 , - 917 , - 372 , - 2003 , - 1714 , - 1553 , - 1520 , - 1615 , - 1838 , - 141 , - 620 , - 1227 , - 1962 , - 777 , - 1768 , - 839 , - 38 , - 1413 , - 868 , - 451 , - 162 , - 1 , - 2016 , - 63 , - 286 , - 637 , - 1116 , - 1723 , - 410 , - 1273 , - 216 , - 1335 , - 534 , - 1909 , - 1364 , - 947 , - 658 , - 497 , - 464 , - 559 , - 782 , - 1133 , - 1612 , - 171 , - 906 , - 1769 , - 712 , - 1831 , - 1030 , - 357 , - 1860 , - 1443 , - 1154 , - 993 , - 960 , - 1055 , - 1278 , - 1629 , - 60 , - 667 , - 1402 , - 217 , - 1208 , - 279 , - 1526 , - 853 , - 308 , - 1939 , - 1650 , - 1489 , - 1456 , - 1551 , - 1774 , - 77 , - 556 , - 1163 , - 1898 , - 713 , - 1704 , - 775 , - 2022 , - 1349 , - 804 , - 387 , - 98 , - 1985 , - 1952 , - 2047 , - 222 , - 573 , - 1052 , - 1659 , - 346 , - 1209 , - 152 , - 1271 , - 470 , - 1845 , - 1300 , - 883 , - 594 , - 433 , - 400 , - 495 , - 718 , - 1069 , - 1548 , - 107 , - 842 , - 1705 , - 648 , - 1767 , - 966 , - 293 , - 1796 , - 1379 , - 1090 , - 929 , - 896 , - 991 , - 1214 , - 1565 , - 2044 , - 603 , - 1338 , - 153 , - 1144 , - 215 , - 1462 , - 789 , - 244 , - 1875 , - 1586 , - 1425 , - 1392 , - 1487 , - 1710 , - 13 , - 492 , - 1099 , - 1834 , - 649 , - 1640 , - 711 , - 1958 , - 1285 , - 740 , - 323 , - 34 , - 1921 , - 1888 , - 1983 , - 158 , - 509 , - 988 , - 1595 , - 282 , - 1145 , - 88 , - 1207 , - 406 , - 1781 , - 1236 , - 819 , - 530 , - 369 , - 336 , - 431 , - 654 , - 1005 , - 1484 , - 43 , - 778 , - 1641 , - 584 , - 1703 , - 902 , - 229 , - 1732 , - 1315 , - 1026 , - 865 , - 832 , - 927 , - 1150 , - 1501 , - 1980 , - 539 , - 1274 , - 89 , - 1080 , - 151 , - 1398 , - 725 , - 180 , - 1811 , - 1522 , - 1361 , - 1328 , - 1423 , - 1646 , - 1997 , - 428 , - 1035 , - 1770 , - 585 , - 1576 , - 647 , - 1894 , - 1221 , - 676 , - 259 , - 2018 , - 1857 , - 1824 , - 1919 , - 94 , - 445 , - 924 , - 1531 , - 218 , - 1081 , - 24 , - 1143 , - 342 , - 1717 , - 1172 , - 755 , - 466 , - 305 , - 272 , - 367 , - 590 , - 941 , - 1420 , - 2027 , - 714 , - 1577 , - 520 , - 1639 , - 838 , - 165 , - 1668 , - 1251 , - 962 , - 801 , - 768 , - 863 , - 1086 , - 1437 , - 1916 , - 475 , - 1210 , - 25 , - 1016 , - 87 , - 1334 , - 661 , - 116 , - 1747 , - 1458 , - 1297 , - 1264 , - 1359 , - 1582 , - 1933 , - 364 , - 971 , - 1706 , - 521 , - 1512 , - 583 , - 1830 , - 1157 , - 612 , - 195 , - 1954 , - 1793 , - 1760 , - 1855 , - 30 , - 381 , - 860 , - 1467 , - 154 , - 1017 , - 2008 , - 1079 , - 278 , - 1653 , - 1108 , - 691 , - 402 , - 241 , - 208 , - 303 , - 526 , - 877 , - 1356 , - 1963 , - 650 , - 1513 , - 456 , - 1575 , - 774 , - 101 , - 1604 , - 1187 , - 898 , - 737 , - 704 , - 799 , - 1022 , - 1373 , - 1852 , - 411 , - 1146 , - 2009 , - 952 , - 23 , - 1270 , - 597 , - 52 , - 1683 , - 1394 , - 1233 , - 1200 , - 1295 , - 1518 , - 1869 , - 300 , - 907 , - 1642 , - 457 , - 1448 , - 519 , - 1766 , - 1093 , - 548 , - 131 , - 1890 , - 1729 , - 1696 , - 1791 , - 2014 , - 317 , - 796 , - 1403 , - 90 , - 953 , - 1944 , - 1015 , - 214 , - 1589 , - 1044 , - 627 , - 338 , - 177 , - 144 , - 239 , - 462 , - 813 , - 1292 , - 1899 , - 586 , - 1449 , - 392 , - 1511 , - 710 , - 37 , - 1540 , - 1123 , - 834 , - 673 , - 640 , - 735 , - 958 , - 1309 , - 1788 , - 347 , - 1082 , - 1945 , - 888 , - 2007 , - 1206 , - 533 , - 2036 , - 1619 , - 1330 , - 1169 , - 1136 , - 1231 , - 1454 , - 1805 , - 236 , - 843 , - 1578 , - 393 , - 1384 , - 455 , - 1702 , - 1029 , - 484 , - 67 , - 1826 , - 1665 , - 1632 , - 1727 , - 1950 , - 253 , - 732 , - 1339 , - 26 , - 889 , - 1880 , - 951 , - 150 , - 1525 , - 980 , - 563 , - 274 , - 113 , - 80 , - 175 , - 398 , - 749 , - 1228 , - 1835 , - 522 , - 1385 , - 328 , - 1447 , - 646 , - 2021 , - 1476 , - 1059 , - 770 , - 609 , - 576 , - 671 , - 894 , - 1245 , - 1724 , - 283 , - 1018 , - 1881 , - 824 , - 1943 , - 1142 , - 469 , - 1972 , - 1555 , - 1266 , - 1105 , - 1072 , - 1167 , - 1390 , - 1741 , - 172 , - 779 , - 1514 , - 329 , - 1320 , - 391 , - 1638 , - 965 , - 420 , - 3 , - 1762 , - 1601 , - 1568 , - 1663 , - 1886 , - 189 , - 668 , - 1275 , - 2010 , - 825 , - 1816 , - 887 , - 86 , - 1461 , - 916 , - 499 , - 210 , - 49 , - 16 , - 111 , - 334 , - 685 , - 1164 , - 1771 , - 458 , - 1321 , - 264 , - 1383 , - 582 , - 1957 , - 1412 , - 995 , - 706 , - 545 , - 512 , - 607 , - 830 , - 1181 , - 1660 , - 219 , - 954 , - 1817 , - 760 , - 1879 , - 1078 , - 405 , - 1908 , - 1491 , - 1202 , - 1041 , - 1008 , - 1103 , - 1326 , - 1677 , - 108 , - 715 , - 1450 , - 265 , - 1256 , - 327 , - 1574 , - 901 , - 356 , - 1987 , - 1698 , - 1537 , - 1504 , - 1599 , - 1822 , - 125 , - 604 , - 1211 , - 1946 , - 761 , - 1752 , - 823 , - 22 , - 1397 , - 852 , - 435 , - 146 , - 2033 , - 2000 , - 47 , - 270 , - 621 , - 1100 , - 1707 , - 394 , - 1257 , - 200 , - 1319 , - 518 , - 1893 , - 1348 , - 931 , - 642 , - 481 , - 448 , - 543 , - 766 , - 1117 , - 1596 , - 155 , - 890 , - 1753 , - 696 , - 1815 , - 1014 , - 341 , - 1844 , - 1427 , - 1138 , - 977 , - 944 , - 1039 , - 1262 , - 1613 , - 44 , - 651 , - 1386 , - 201 , - 1192 , - 263 , - 1510 , - 837 , - 292 , - 1923 , - 1634 , - 1473 , - 1440 , - 1535 , - 1758 , - 61 , - 540 , - 1147 , - 1882 , - 697 , - 1688 , - 759 , - 2006 , - 1333 , - 788 , - 371 , - 82 , - 1969 , - 1936 , - 2031 , - 206 , - 557 , - 1036 , - 1643 , - 330 , - 1193 , - 136 , - 1255 , - 454 , - 1829 , - 1284 , - 867 , - 578 , - 417 , - 384 , - 479 , - 702 , - 1053 , - 1532 , - 91 , - 826 , - 1689 , - 632 , - 1751 , - 950 , - 277 , - 1780 , - 1363 , - 1074 , - 913 , - 880 , - 975 , - 1198 , - 1549 , - 2028 , - 587 , - 1322 , - 137 , - 1128 , - 199 , - 1446 , - 773 , - 228 , - 1859 , - 1570 , - 1409 , - 1376 , - 1471 , - 1694 , - 2045 , - 476 , - 1083 , - 1818 , - 633 , - 1624 , - 695 , - 1942 , - 1269 , - 724 , - 307 , - 18 , - 1905 , - 1872 , - 1967 , - 142 , - 493 , - 972 , - 1579 , - 266 , - 1129 , - 72 , - 1191 , - 390 , - 1765 , - 1220 , - 803 , - 514 , - 353 , - 320 , - 415 , - 638 , - 989 , - 1468 , - 27 , - 762 , - 1625 , - 568 , - 1687 , - 886 , - 213 , - 1716 , - 1299 , - 1010 , - 849 , - 816 , - 911 , - 1134 , - 1485 , - 1964 , - 523 , - 1258 , - 73 , - 1064 , - 135 , - 1382 , - 709 , - 164 , - 1795 , - 1506 , - 1345 , - 1312 , - 1407 , - 1630 , - 1981 , - 412 , - 1019 , - 1754 , - 569 , - 1560 , - 631 , - 1878 , - 1205 , - 660 , - 243 , - 2002 , - 1841 , - 1808 , - 1903 , - 78 , - 429 , - 908 , - 1515 , - 202 , - 1065 , - 8 , - 1127 , - 326 , - 1701 , - 1156 , - 739 , - 450 , - 289 , - 256 , - 351 , - 574 , - 925 , - 1404 , - 2011 , - 698 , - 1561 , - 504 , - 1623 , - 822 , - 149 , - 1652 , - 1235 , - 946 , - 785 , - 752 , - 847 , - 1070 , - 1421 , - 1900 , - 459 , - 1194 , - 9 , - 1000 , - 71 , - 1318 , - 645 , - 100 , - 1731 , - 1442 , - 1281 , - 1248 , - 1343 , - 1566 , - 1917 , - 348 , - 955 , - 1690 , - 505 , - 1496 , - 567 , - 1814 , - 1141 , - 596 , - 179 , - 1938 , - 1777 , - 1744 , - 1839 , - 14 , - 365 , - 844 , - 1451 , - 138 , - 1001 , - 1992 , - 1063 , - 262 , - 1637 , - 1092 , - 675 , - 386 , - 225 , - 192 , - 287 , - 510 , - 861 , - 1340 , - 1947 , - 634 , - 1497 , - 440 , - 1559 , - 758 , - 85 , - 1588 , - 1171 , - 882 , - 721 , - 688 , - 783 , - 1006 , - 1357 , - 1836 , - 395 , - 1130 , - 1993 , - 936 , - 7 , - 1254 , - 581 , - 36 , - 1667 , - 1378 , - 1217 , - 1184 , - 1279 , - 1502 , - 1853 , - 284 , - 891 , - 1626 , - 441 , - 1432 , - 503 , - 1750 , - 1077 , - 532 , - 115 , - 1874 , - 1713 , - 1680 , - 1775 , - 1998 , - 301 , - 780 , - 1387 , - 74 , - 937 , - 1928 , - 999 , - 198 , - 1573 , - 1028 , - 611 , - 322 , - 161 , - 128 , - 223 , - 446 , - 797 , - 1276 , - 1883 , - 570 , - 1433 , - 376 , - 1495 , - 694 , - 21 , - 1524 , - 1107 , - 818 , - 657 , - 624 , - 719 , - 942 , - 1293 , - 1772 , - 331 , - 1066 , - 1929 , - 872 , - 1991 , - 1190 , - 517 , - 2020 , - 1603 , - 1314 , - 1153 , - 1120 , - 1215 , - 1438 , - 1789 , - 220 , - 827 , - 1562 , - 377 , - 1368 , - 439 , - 1686 , - 1013 , - 468 , - 51 , - 1810 , - 1649 , - 1616 , - 1711 , - 1934 , - 237 , - 716 , - 1323 , - 10 , - 873 , - 1864 , - 935 , - 134 , - 1509 , - 964 , - 547 , - 258 , - 97 , - 64 , - 159 , - 382 , - 733 , - 1212 , - 1819 , - 506 , - 1369 , - 312 , - 1431 , - 630 , - 2005 , - 1460 , - 1043 , - 754 , - 593 , - 560 , - 655 , - 878 , - 1229 , - 1708 , - 267 , - 1002 , - 1865 , - 808 , - 1927 , - 1126 , - 453 , - 1956 , - 1539 , - 1250 , - 1089 , - 1056 , - 1151 , - 1374 , - 1725 , - 156 , - 763 , - 1498 , - 313 , - 1304 , - 375 , - 1622 , - 949 , - 404 , - 2035 , - 1746 , - 1585 , - 1552 , - 1647 , - 1870 , - 173 , - 652 , - 1259 , - 1994 , - 809 , - 1800 , - 871 , - 70 , - 1445 , - 900 , - 483 , - 194 , - 33 , - 0 , - 83 , - 298 , - 645 , - 1124 , - 1735 , - 366 , - 1241 , - 136 , - 1275 , - 434 , - 1837 , - 1260 , - 815 , - 502 , - 321 , - 272 , - 355 , - 570 , - 917 , - 1396 , - 2007 , - 638 , - 1513 , - 408 , - 1547 , - 706 , - 2109 , - 1532 , - 1087 , - 774 , - 593 , - 544 , - 627 , - 842 , - 1189 , - 1668 , - 167 , - 910 , - 1785 , - 680 , - 1819 , - 978 , - 269 , - 1804 , - 1359 , - 1046 , - 865 , - 816 , - 899 , - 1114 , - 1461 , - 1940 , - 439 , - 1182 , - 2057 , - 952 , - 2091 , - 1250 , - 541 , - 2076 , - 1631 , - 1318 , - 1137 , - 1088 , - 1171 , - 1386 , - 1733 , - 100 , - 711 , - 1454 , - 217 , - 1224 , - 251 , - 1522 , - 813 , - 236 , - 1903 , - 1590 , - 1409 , - 1360 , - 1443 , - 1658 , - 2005 , - 372 , - 983 , - 1726 , - 489 , - 1496 , - 523 , - 1794 , - 1085 , - 508 , - 63 , - 1862 , - 1681 , - 1632 , - 1715 , - 1930 , - 165 , - 644 , - 1255 , - 1998 , - 761 , - 1768 , - 795 , - 2066 , - 1357 , - 780 , - 335 , - 22 , - 1953 , - 1904 , - 1987 , - 90 , - 437 , - 916 , - 1527 , - 158 , - 1033 , - 2040 , - 1067 , - 226 , - 1629 , - 1052 , - 607 , - 294 , - 113 , - 64 , - 147 , - 362 , - 709 , - 1188 , - 1799 , - 430 , - 1305 , - 200 , - 1339 , - 498 , - 1901 , - 1324 , - 879 , - 566 , - 385 , - 336 , - 419 , - 634 , - 981 , - 1460 , - 2071 , - 702 , - 1577 , - 472 , - 1611 , - 770 , - 61 , - 1596 , - 1151 , - 838 , - 657 , - 608 , - 691 , - 906 , - 1253 , - 1732 , - 231 , - 974 , - 1849 , - 744 , - 1883 , - 1042 , - 333 , - 1868 , - 1423 , - 1110 , - 929 , - 880 , - 963 , - 1178 , - 1525 , - 2004 , - 503 , - 1246 , - 9 , - 1016 , - 43 , - 1314 , - 605 , - 28 , - 1695 , - 1382 , - 1201 , - 1152 , - 1235 , - 1450 , - 1797 , - 164 , - 775 , - 1518 , - 281 , - 1288 , - 315 , - 1586 , - 877 , - 300 , - 1967 , - 1654 , - 1473 , - 1424 , - 1507 , - 1722 , - 2069 , - 436 , - 1047 , - 1790 , - 553 , - 1560 , - 587 , - 1858 , - 1149 , - 572 , - 127 , - 1926 , - 1745 , - 1696 , - 1779 , - 1994 , - 229 , - 708 , - 1319 , - 2062 , - 825 , - 1832 , - 859 , - 18 , - 1421 , - 844 , - 399 , - 86 , - 2017 , - 1968 , - 2051 , - 154 , - 501 , - 980 , - 1591 , - 222 , - 1097 , - 2104 , - 1131 , - 290 , - 1693 , - 1116 , - 671 , - 358 , - 177 , - 128 , - 211 , - 426 , - 773 , - 1252 , - 1863 , - 494 , - 1369 , - 264 , - 1403 , - 562 , - 1965 , - 1388 , - 943 , - 630 , - 449 , - 400 , - 483 , - 698 , - 1045 , - 1524 , - 23 , - 766 , - 1641 , - 536 , - 1675 , - 834 , - 125 , - 1660 , - 1215 , - 902 , - 721 , - 672 , - 755 , - 970 , - 1317 , - 1796 , - 295 , - 1038 , - 1913 , - 808 , - 1947 , - 1106 , - 397 , - 1932 , - 1487 , - 1174 , - 993 , - 944 , - 1027 , - 1242 , - 1589 , - 2068 , - 567 , - 1310 , - 73 , - 1080 , - 107 , - 1378 , - 669 , - 92 , - 1759 , - 1446 , - 1265 , - 1216 , - 1299 , - 1514 , - 1861 , - 228 , - 839 , - 1582 , - 345 , - 1352 , - 379 , - 1650 , - 941 , - 364 , - 2031 , - 1718 , - 1537 , - 1488 , - 1571 , - 1786 , - 21 , - 500 , - 1111 , - 1854 , - 617 , - 1624 , - 651 , - 1922 , - 1213 , - 636 , - 191 , - 1990 , - 1809 , - 1760 , - 1843 , - 2058 , - 293 , - 772 , - 1383 , - 14 , - 889 , - 1896 , - 923 , - 82 , - 1485 , - 908 , - 463 , - 150 , - 2081 , - 2032 , - 3 , - 218 , - 565 , - 1044 , - 1655 , - 286 , - 1161 , - 56 , - 1195 , - 354 , - 1757 , - 1180 , - 735 , - 422 , - 241 , - 192 , - 275 , - 490 , - 837 , - 1316 , - 1927 , - 558 , - 1433 , - 328 , - 1467 , - 626 , - 2029 , - 1452 , - 1007 , - 694 , - 513 , - 464 , - 547 , - 762 , - 1109 , - 1588 , - 87 , - 830 , - 1705 , - 600 , - 1739 , - 898 , - 189 , - 1724 , - 1279 , - 966 , - 785 , - 736 , - 819 , - 1034 , - 1381 , - 1860 , - 359 , - 1102 , - 1977 , - 872 , - 2011 , - 1170 , - 461 , - 1996 , - 1551 , - 1238 , - 1057 , - 1008 , - 1091 , - 1306 , - 1653 , - 20 , - 631 , - 1374 , - 137 , - 1144 , - 171 , - 1442 , - 733 , - 156 , - 1823 , - 1510 , - 1329 , - 1280 , - 1363 , - 1578 , - 1925 , - 292 , - 903 , - 1646 , - 409 , - 1416 , - 443 , - 1714 , - 1005 , - 428 , - 2095 , - 1782 , - 1601 , - 1552 , - 1635 , - 1850 , - 85 , - 564 , - 1175 , - 1918 , - 681 , - 1688 , - 715 , - 1986 , - 1277 , - 700 , - 255 , - 2054 , - 1873 , - 1824 , - 1907 , - 10 , - 357 , - 836 , - 1447 , - 78 , - 953 , - 1960 , - 987 , - 146 , - 1549 , - 972 , - 527 , - 214 , - 33 , - 2096 , - 67 , - 282 , - 629 , - 1108 , - 1719 , - 350 , - 1225 , - 120 , - 1259 , - 418 , - 1821 , - 1244 , - 799 , - 486 , - 305 , - 256 , - 339 , - 554 , - 901 , - 1380 , - 1991 , - 622 , - 1497 , - 392 , - 1531 , - 690 , - 2093 , - 1516 , - 1071 , - 758 , - 577 , - 528 , - 611 , - 826 , - 1173 , - 1652 , - 151 , - 894 , - 1769 , - 664 , - 1803 , - 962 , - 253 , - 1788 , - 1343 , - 1030 , - 849 , - 800 , - 883 , - 1098 , - 1445 , - 1924 , - 423 , - 1166 , - 2041 , - 936 , - 2075 , - 1234 , - 525 , - 2060 , - 1615 , - 1302 , - 1121 , - 1072 , - 1155 , - 1370 , - 1717 , - 84 , - 695 , - 1438 , - 201 , - 1208 , - 235 , - 1506 , - 797 , - 220 , - 1887 , - 1574 , - 1393 , - 1344 , - 1427 , - 1642 , - 1989 , - 356 , - 967 , - 1710 , - 473 , - 1480 , - 507 , - 1778 , - 1069 , - 492 , - 47 , - 1846 , - 1665 , - 1616 , - 1699 , - 1914 , - 149 , - 628 , - 1239 , - 1982 , - 745 , - 1752 , - 779 , - 2050 , - 1341 , - 764 , - 319 , - 6 , - 1937 , - 1888 , - 1971 , - 74 , - 421 , - 900 , - 1511 , - 142 , - 1017 , - 2024 , - 1051 , - 210 , - 1613 , - 1036 , - 591 , - 278 , - 97 , - 48 , - 131 , - 346 , - 693 , - 1172 , - 1783 , - 414 , - 1289 , - 184 , - 1323 , - 482 , - 1885 , - 1308 , - 863 , - 550 , - 369 , - 320 , - 403 , - 618 , - 965 , - 1444 , - 2055 , - 686 , - 1561 , - 456 , - 1595 , - 754 , - 45 , - 1580 , - 1135 , - 822 , - 641 , - 592 , - 675 , - 890 , - 1237 , - 1716 , - 215 , - 958 , - 1833 , - 728 , - 1867 , - 1026 , - 317 , - 1852 , - 1407 , - 1094 , - 913 , - 864 , - 947 , - 1162 , - 1509 , - 1988 , - 487 , - 1230 , - 2105 , - 1000 , - 27 , - 1298 , - 589 , - 12 , - 1679 , - 1366 , - 1185 , - 1136 , - 1219 , - 1434 , - 1781 , - 148 , - 759 , - 1502 , - 265 , - 1272 , - 299 , - 1570 , - 861 , - 284 , - 1951 , - 1638 , - 1457 , - 1408 , - 1491 , - 1706 , - 2053 , - 420 , - 1031 , - 1774 , - 537 , - 1544 , - 571 , - 1842 , - 1133 , - 556 , - 111 , - 1910 , - 1729 , - 1680 , - 1763 , - 1978 , - 213 , - 692 , - 1303 , - 2046 , - 809 , - 1816 , - 843 , - 2 , - 1405 , - 828 , - 383 , - 70 , - 2001 , - 1952 , - 2035 , - 138 , - 485 , - 964 , - 1575 , - 206 , - 1081 , - 2088 , - 1115 , - 274 , - 1677 , - 1100 , - 655 , - 342 , - 161 , - 112 , - 195 , - 410 , - 757 , - 1236 , - 1847 , - 478 , - 1353 , - 248 , - 1387 , - 546 , - 1949 , - 1372 , - 927 , - 614 , - 433 , - 384 , - 467 , - 682 , - 1029 , - 1508 , - 7 , - 750 , - 1625 , - 520 , - 1659 , - 818 , - 109 , - 1644 , - 1199 , - 886 , - 705 , - 656 , - 739 , - 954 , - 1301 , - 1780 , - 279 , - 1022 , - 1897 , - 792 , - 1931 , - 1090 , - 381 , - 1916 , - 1471 , - 1158 , - 977 , - 928 , - 1011 , - 1226 , - 1573 , - 2052 , - 551 , - 1294 , - 57 , - 1064 , - 91 , - 1362 , - 653 , - 76 , - 1743 , - 1430 , - 1249 , - 1200 , - 1283 , - 1498 , - 1845 , - 212 , - 823 , - 1566 , - 329 , - 1336 , - 363 , - 1634 , - 925 , - 348 , - 2015 , - 1702 , - 1521 , - 1472 , - 1555 , - 1770 , - 5 , - 484 , - 1095 , - 1838 , - 601 , - 1608 , - 635 , - 1906 , - 1197 , - 620 , - 175 , - 1974 , - 1793 , - 1744 , - 1827 , - 2042 , - 277 , - 756 , - 1367 , - 2110 , - 873 , - 1880 , - 907 , - 66 , - 1469 , - 892 , - 447 , - 134 , - 2065 , - 2016 , - 2099 , - 202 , - 549 , - 1028 , - 1639 , - 270 , - 1145 , - 40 , - 1179 , - 338 , - 1741 , - 1164 , - 719 , - 406 , - 225 , - 176 , - 259 , - 474 , - 821 , - 1300 , - 1911 , - 542 , - 1417 , - 312 , - 1451 , - 610 , - 2013 , - 1436 , - 991 , - 678 , - 497 , - 448 , - 531 , - 746 , - 1093 , - 1572 , - 71 , - 814 , - 1689 , - 584 , - 1723 , - 882 , - 173 , - 1708 , - 1263 , - 950 , - 769 , - 720 , - 803 , - 1018 , - 1365 , - 1844 , - 343 , - 1086 , - 1961 , - 856 , - 1995 , - 1154 , - 445 , - 1980 , - 1535 , - 1222 , - 1041 , - 992 , - 1075 , - 1290 , - 1637 , - 4 , - 615 , - 1358 , - 121 , - 1128 , - 155 , - 1426 , - 717 , - 140 , - 1807 , - 1494 , - 1313 , - 1264 , - 1347 , - 1562 , - 1909 , - 276 , - 887 , - 1630 , - 393 , - 1400 , - 427 , - 1698 , - 989 , - 412 , - 2079 , - 1766 , - 1585 , - 1536 , - 1619 , - 1834 , - 69 , - 548 , - 1159 , - 1902 , - 665 , - 1672 , - 699 , - 1970 , - 1261 , - 684 , - 239 , - 2038 , - 1857 , - 1808 , - 1891 , - 2106 , - 341 , - 820 , - 1431 , - 62 , - 937 , - 1944 , - 971 , - 130 , - 1533 , - 956 , - 511 , - 198 , - 17 , - 2080 , - 51 , - 266 , - 613 , - 1092 , - 1703 , - 334 , - 1209 , - 104 , - 1243 , - 402 , - 1805 , - 1228 , - 783 , - 470 , - 289 , - 240 , - 323 , - 538 , - 885 , - 1364 , - 1975 , - 606 , - 1481 , - 376 , - 1515 , - 674 , - 2077 , - 1500 , - 1055 , - 742 , - 561 , - 512 , - 595 , - 810 , - 1157 , - 1636 , - 135 , - 878 , - 1753 , - 648 , - 1787 , - 946 , - 237 , - 1772 , - 1327 , - 1014 , - 833 , - 784 , - 867 , - 1082 , - 1429 , - 1908 , - 407 , - 1150 , - 2025 , - 920 , - 2059 , - 1218 , - 509 , - 2044 , - 1599 , - 1286 , - 1105 , - 1056 , - 1139 , - 1354 , - 1701 , - 68 , - 679 , - 1422 , - 185 , - 1192 , - 219 , - 1490 , - 781 , - 204 , - 1871 , - 1558 , - 1377 , - 1328 , - 1411 , - 1626 , - 1973 , - 340 , - 951 , - 1694 , - 457 , - 1464 , - 491 , - 1762 , - 1053 , - 476 , - 31 , - 1830 , - 1649 , - 1600 , - 1683 , - 1898 , - 133 , - 612 , - 1223 , - 1966 , - 729 , - 1736 , - 763 , - 2034 , - 1325 , - 748 , - 303 , - 2102 , - 1921 , - 1872 , - 1955 , - 58 , - 405 , - 884 , - 1495 , - 126 , - 1001 , - 2008 , - 1035 , - 194 , - 1597 , - 1020 , - 575 , - 262 , - 81 , - 32 , - 115 , - 330 , - 677 , - 1156 , - 1767 , - 398 , - 1273 , - 168 , - 1307 , - 466 , - 1869 , - 1292 , - 847 , - 534 , - 353 , - 304 , - 387 , - 602 , - 949 , - 1428 , - 2039 , - 670 , - 1545 , - 440 , - 1579 , - 738 , - 29 , - 1564 , - 1119 , - 806 , - 625 , - 576 , - 659 , - 874 , - 1221 , - 1700 , - 199 , - 942 , - 1817 , - 712 , - 1851 , - 1010 , - 301 , - 1836 , - 1391 , - 1078 , - 897 , - 848 , - 931 , - 1146 , - 1493 , - 1972 , - 471 , - 1214 , - 2089 , - 984 , - 11 , - 1282 , - 573 , - 2108 , - 1663 , - 1350 , - 1169 , - 1120 , - 1203 , - 1418 , - 1765 , - 132 , - 743 , - 1486 , - 249 , - 1256 , - 283 , - 1554 , - 845 , - 268 , - 1935 , - 1622 , - 1441 , - 1392 , - 1475 , - 1690 , - 2037 , - 404 , - 1015 , - 1758 , - 521 , - 1528 , - 555 , - 1826 , - 1117 , - 540 , - 95 , - 1894 , - 1713 , - 1664 , - 1747 , - 1962 , - 197 , - 676 , - 1287 , - 2030 , - 793 , - 1800 , - 827 , - 2098 , - 1389 , - 812 , - 367 , - 54 , - 1985 , - 1936 , - 2019 , - 122 , - 469 , - 948 , - 1559 , - 190 , - 1065 , - 2072 , - 1099 , - 258 , - 1661 , - 1084 , - 639 , - 326 , - 145 , - 96 , - 179 , - 394 , - 741 , - 1220 , - 1831 , - 462 , - 1337 , - 232 , - 1371 , - 530 , - 1933 , - 1356 , - 911 , - 598 , - 417 , - 368 , - 451 , - 666 , - 1013 , - 1492 , - 2103 , - 734 , - 1609 , - 504 , - 1643 , - 802 , - 93 , - 1628 , - 1183 , - 870 , - 689 , - 640 , - 723 , - 938 , - 1285 , - 1764 , - 263 , - 1006 , - 1881 , - 776 , - 1915 , - 1074 , - 365 , - 1900 , - 1455 , - 1142 , - 961 , - 912 , - 995 , - 1210 , - 1557 , - 2036 , - 535 , - 1278 , - 41 , - 1048 , - 75 , - 1346 , - 637 , - 60 , - 1727 , - 1414 , - 1233 , - 1184 , - 1267 , - 1482 , - 1829 , - 196 , - 807 , - 1550 , - 313 , - 1320 , - 347 , - 1618 , - 909 , - 332 , - 1999 , - 1686 , - 1505 , - 1456 , - 1539 , - 1754 , - 2101 , - 468 , - 1079 , - 1822 , - 585 , - 1592 , - 619 , - 1890 , - 1181 , - 604 , - 159 , - 1958 , - 1777 , - 1728 , - 1811 , - 2026 , - 261 , - 740 , - 1351 , - 2094 , - 857 , - 1864 , - 891 , - 50 , - 1453 , - 876 , - 431 , - 118 , - 2049 , - 2000 , - 2083 , - 186 , - 533 , - 1012 , - 1623 , - 254 , - 1129 , - 24 , - 1163 , - 322 , - 1725 , - 1148 , - 703 , - 390 , - 209 , - 160 , - 243 , - 458 , - 805 , - 1284 , - 1895 , - 526 , - 1401 , - 296 , - 1435 , - 594 , - 1997 , - 1420 , - 975 , - 662 , - 481 , - 432 , - 515 , - 730 , - 1077 , - 1556 , - 55 , - 798 , - 1673 , - 568 , - 1707 , - 866 , - 157 , - 1692 , - 1247 , - 934 , - 753 , - 704 , - 787 , - 1002 , - 1349 , - 1828 , - 327 , - 1070 , - 1945 , - 840 , - 1979 , - 1138 , - 429 , - 1964 , - 1519 , - 1206 , - 1025 , - 976 , - 1059 , - 1274 , - 1621 , - 2100 , - 599 , - 1342 , - 105 , - 1112 , - 139 , - 1410 , - 701 , - 124 , - 1791 , - 1478 , - 1297 , - 1248 , - 1331 , - 1546 , - 1893 , - 260 , - 871 , - 1614 , - 377 , - 1384 , - 411 , - 1682 , - 973 , - 396 , - 2063 , - 1750 , - 1569 , - 1520 , - 1603 , - 1818 , - 53 , - 532 , - 1143 , - 1886 , - 649 , - 1656 , - 683 , - 1954 , - 1245 , - 668 , - 223 , - 2022 , - 1841 , - 1792 , - 1875 , - 2090 , - 325 , - 804 , - 1415 , - 46 , - 921 , - 1928 , - 955 , - 114 , - 1517 , - 940 , - 495 , - 182 , - 1 , - 2064 , - 35 , - 250 , - 597 , - 1076 , - 1687 , - 318 , - 1193 , - 88 , - 1227 , - 386 , - 1789 , - 1212 , - 767 , - 454 , - 273 , - 224 , - 307 , - 522 , - 869 , - 1348 , - 1959 , - 590 , - 1465 , - 360 , - 1499 , - 658 , - 2061 , - 1484 , - 1039 , - 726 , - 545 , - 496 , - 579 , - 794 , - 1141 , - 1620 , - 119 , - 862 , - 1737 , - 632 , - 1771 , - 930 , - 221 , - 1756 , - 1311 , - 998 , - 817 , - 768 , - 851 , - 1066 , - 1413 , - 1892 , - 391 , - 1134 , - 2009 , - 904 , - 2043 , - 1202 , - 493 , - 2028 , - 1583 , - 1270 , - 1089 , - 1040 , - 1123 , - 1338 , - 1685 , - 52 , - 663 , - 1406 , - 169 , - 1176 , - 203 , - 1474 , - 765 , - 188 , - 1855 , - 1542 , - 1361 , - 1312 , - 1395 , - 1610 , - 1957 , - 324 , - 935 , - 1678 , - 441 , - 1448 , - 475 , - 1746 , - 1037 , - 460 , - 15 , - 1814 , - 1633 , - 1584 , - 1667 , - 1882 , - 117 , - 596 , - 1207 , - 1950 , - 713 , - 1720 , - 747 , - 2018 , - 1309 , - 732 , - 287 , - 2086 , - 1905 , - 1856 , - 1939 , - 42 , - 389 , - 868 , - 1479 , - 110 , - 985 , - 1992 , - 1019 , - 178 , - 1581 , - 1004 , - 559 , - 246 , - 65 , - 16 , - 99 , - 314 , - 661 , - 1140 , - 1751 , - 382 , - 1257 , - 152 , - 1291 , - 450 , - 1853 , - 1276 , - 831 , - 518 , - 337 , - 288 , - 371 , - 586 , - 933 , - 1412 , - 2023 , - 654 , - 1529 , - 424 , - 1563 , - 722 , - 13 , - 1548 , - 1103 , - 790 , - 609 , - 560 , - 643 , - 858 , - 1205 , - 1684 , - 183 , - 926 , - 1801 , - 696 , - 1835 , - 994 , - 285 , - 1820 , - 1375 , - 1062 , - 881 , - 832 , - 915 , - 1130 , - 1477 , - 1956 , - 455 , - 1198 , - 2073 , - 968 , - 2107 , - 1266 , - 557 , - 2092 , - 1647 , - 1334 , - 1153 , - 1104 , - 1187 , - 1402 , - 1749 , - 116 , - 727 , - 1470 , - 233 , - 1240 , - 267 , - 1538 , - 829 , - 252 , - 1919 , - 1606 , - 1425 , - 1376 , - 1459 , - 1674 , - 2021 , - 388 , - 999 , - 1742 , - 505 , - 1512 , - 539 , - 1810 , - 1101 , - 524 , - 79 , - 1878 , - 1697 , - 1648 , - 1731 , - 1946 , - 181 , - 660 , - 1271 , - 2014 , - 777 , - 1784 , - 811 , - 2082 , - 1373 , - 796 , - 351 , - 38 , - 1969 , - 1920 , - 2003 , - 106 , - 453 , - 932 , - 1543 , - 174 , - 1049 , - 2056 , - 1083 , - 242 , - 1645 , - 1068 , - 623 , - 310 , - 129 , - 80 , - 163 , - 378 , - 725 , - 1204 , - 1815 , - 446 , - 1321 , - 216 , - 1355 , - 514 , - 1917 , - 1340 , - 895 , - 582 , - 401 , - 352 , - 435 , - 650 , - 997 , - 1476 , - 2087 , - 718 , - 1593 , - 488 , - 1627 , - 786 , - 77 , - 1612 , - 1167 , - 854 , - 673 , - 624 , - 707 , - 922 , - 1269 , - 1748 , - 247 , - 990 , - 1865 , - 760 , - 1899 , - 1058 , - 349 , - 1884 , - 1439 , - 1126 , - 945 , - 896 , - 979 , - 1194 , - 1541 , - 2020 , - 519 , - 1262 , - 25 , - 1032 , - 59 , - 1330 , - 621 , - 44 , - 1711 , - 1398 , - 1217 , - 1168 , - 1251 , - 1466 , - 1813 , - 180 , - 791 , - 1534 , - 297 , - 1304 , - 331 , - 1602 , - 893 , - 316 , - 1983 , - 1670 , - 1489 , - 1440 , - 1523 , - 1738 , - 2085 , - 452 , - 1063 , - 1806 , - 569 , - 1576 , - 603 , - 1874 , - 1165 , - 588 , - 143 , - 1942 , - 1761 , - 1712 , - 1795 , - 2010 , - 245 , - 724 , - 1335 , - 2078 , - 841 , - 1848 , - 875 , - 34 , - 1437 , - 860 , - 415 , - 102 , - 2033 , - 1984 , - 2067 , - 170 , - 517 , - 996 , - 1607 , - 238 , - 1113 , - 8 , - 1147 , - 306 , - 1709 , - 1132 , - 687 , - 374 , - 193 , - 144 , - 227 , - 442 , - 789 , - 1268 , - 1879 , - 510 , - 1385 , - 280 , - 1419 , - 578 , - 1981 , - 1404 , - 959 , - 646 , - 465 , - 416 , - 499 , - 714 , - 1061 , - 1540 , - 39 , - 782 , - 1657 , - 552 , - 1691 , - 850 , - 141 , - 1676 , - 1231 , - 918 , - 737 , - 688 , - 771 , - 986 , - 1333 , - 1812 , - 311 , - 1054 , - 1929 , - 824 , - 1963 , - 1122 , - 413 , - 1948 , - 1503 , - 1190 , - 1009 , - 960 , - 1043 , - 1258 , - 1605 , - 2084 , - 583 , - 1326 , - 89 , - 1096 , - 123 , - 1394 , - 685 , - 108 , - 1775 , - 1462 , - 1281 , - 1232 , - 1315 , - 1530 , - 1877 , - 244 , - 855 , - 1598 , - 361 , - 1368 , - 395 , - 1666 , - 957 , - 380 , - 2047 , - 1734 , - 1553 , - 1504 , - 1587 , - 1802 , - 37 , - 516 , - 1127 , - 1870 , - 633 , - 1640 , - 667 , - 1938 , - 1229 , - 652 , - 207 , - 2006 , - 1825 , - 1776 , - 1859 , - 2074 , - 309 , - 788 , - 1399 , - 30 , - 905 , - 1912 , - 939 , - 98 , - 1501 , - 924 , - 479 , - 166 , - 2097 , - 2048 , - 19 , - 234 , - 581 , - 1060 , - 1671 , - 302 , - 1177 , - 72 , - 1211 , - 370 , - 1773 , - 1196 , - 751 , - 438 , - 257 , - 208 , - 291 , - 506 , - 853 , - 1332 , - 1943 , - 574 , - 1449 , - 344 , - 1483 , - 642 , - 2045 , - 1468 , - 1023 , - 710 , - 529 , - 480 , - 563 , - 778 , - 1125 , - 1604 , - 103 , - 846 , - 1721 , - 616 , - 1755 , - 914 , - 205 , - 1740 , - 1295 , - 982 , - 801 , - 752 , - 835 , - 1050 , - 1397 , - 1876 , - 375 , - 1118 , - 1993 , - 888 , - 2027 , - 1186 , - 477 , - 2012 , - 1567 , - 1254 , - 1073 , - 1024 , - 1107 , - 1322 , - 1669 , - 36 , - 647 , - 1390 , - 153 , - 1160 , - 187 , - 1458 , - 749 , - 172 , - 1839 , - 1526 , - 1345 , - 1296 , - 1379 , - 1594 , - 1941 , - 308 , - 919 , - 1662 , - 425 , - 1432 , - 459 , - 1730 , - 1021 , - 444 , - 2111 , - 1798 , - 1617 , - 1568 , - 1651 , - 1866 , - 101 , - 580 , - 1191 , - 1934 , - 697 , - 1704 , - 731 , - 2002 , - 1293 , - 716 , - 271 , - 2070 , - 1889 , - 1840 , - 1923 , - 26 , - 373 , - 852 , - 1463 , - 94 , - 969 , - 1976 , - 1003 , - 162 , - 1565 , - 988 , - 543 , - 230 , - 49 , - 0 , - 307 , - 886 , - 1737 , - 684 , - 2079 , - 1570 , - 1333 , - 1368 , - 1675 , - 78 , - 929 , - 2052 , - 1271 , - 762 , - 525 , - 560 , - 867 , - 1446 , - 121 , - 1244 , - 463 , - 2130 , - 1893 , - 1928 , - 59 , - 638 , - 1489 , - 436 , - 1831 , - 1322 , - 1085 , - 1120 , - 1427 , - 2006 , - 681 , - 1804 , - 1023 , - 514 , - 277 , - 312 , - 619 , - 1198 , - 2049 , - 996 , - 215 , - 1882 , - 1645 , - 1680 , - 1987 , - 390 , - 1241 , - 188 , - 1583 , - 1074 , - 837 , - 872 , - 1179 , - 1758 , - 433 , - 1556 , - 775 , - 266 , - 29 , - 64 , - 371 , - 950 , - 1801 , - 748 , - 2143 , - 1634 , - 1397 , - 1432 , - 1739 , - 142 , - 993 , - 2116 , - 1335 , - 826 , - 589 , - 624 , - 931 , - 1510 , - 185 , - 1308 , - 527 , - 18 , - 1957 , - 1992 , - 123 , - 702 , - 1553 , - 500 , - 1895 , - 1386 , - 1149 , - 1184 , - 1491 , - 2070 , - 745 , - 1868 , - 1087 , - 578 , - 341 , - 376 , - 683 , - 1262 , - 2113 , - 1060 , - 279 , - 1946 , - 1709 , - 1744 , - 2051 , - 454 , - 1305 , - 252 , - 1647 , - 1138 , - 901 , - 936 , - 1243 , - 1822 , - 497 , - 1620 , - 839 , - 330 , - 93 , - 128 , - 435 , - 1014 , - 1865 , - 812 , - 31 , - 1698 , - 1461 , - 1496 , - 1803 , - 206 , - 1057 , - 4 , - 1399 , - 890 , - 653 , - 688 , - 995 , - 1574 , - 249 , - 1372 , - 591 , - 82 , - 2021 , - 2056 , - 187 , - 766 , - 1617 , - 564 , - 1959 , - 1450 , - 1213 , - 1248 , - 1555 , - 2134 , - 809 , - 1932 , - 1151 , - 642 , - 405 , - 440 , - 747 , - 1326 , - 1 , - 1124 , - 343 , - 2010 , - 1773 , - 1808 , - 2115 , - 518 , - 1369 , - 316 , - 1711 , - 1202 , - 965 , - 1000 , - 1307 , - 1886 , - 561 , - 1684 , - 903 , - 394 , - 157 , - 192 , - 499 , - 1078 , - 1929 , - 876 , - 95 , - 1762 , - 1525 , - 1560 , - 1867 , - 270 , - 1121 , - 68 , - 1463 , - 954 , - 717 , - 752 , - 1059 , - 1638 , - 313 , - 1436 , - 655 , - 146 , - 2085 , - 2120 , - 251 , - 830 , - 1681 , - 628 , - 2023 , - 1514 , - 1277 , - 1312 , - 1619 , - 22 , - 873 , - 1996 , - 1215 , - 706 , - 469 , - 504 , - 811 , - 1390 , - 65 , - 1188 , - 407 , - 2074 , - 1837 , - 1872 , - 3 , - 582 , - 1433 , - 380 , - 1775 , - 1266 , - 1029 , - 1064 , - 1371 , - 1950 , - 625 , - 1748 , - 967 , - 458 , - 221 , - 256 , - 563 , - 1142 , - 1993 , - 940 , - 159 , - 1826 , - 1589 , - 1624 , - 1931 , - 334 , - 1185 , - 132 , - 1527 , - 1018 , - 781 , - 816 , - 1123 , - 1702 , - 377 , - 1500 , - 719 , - 210 , - 2149 , - 8 , - 315 , - 894 , - 1745 , - 692 , - 2087 , - 1578 , - 1341 , - 1376 , - 1683 , - 86 , - 937 , - 2060 , - 1279 , - 770 , - 533 , - 568 , - 875 , - 1454 , - 129 , - 1252 , - 471 , - 2138 , - 1901 , - 1936 , - 67 , - 646 , - 1497 , - 444 , - 1839 , - 1330 , - 1093 , - 1128 , - 1435 , - 2014 , - 689 , - 1812 , - 1031 , - 522 , - 285 , - 320 , - 627 , - 1206 , - 2057 , - 1004 , - 223 , - 1890 , - 1653 , - 1688 , - 1995 , - 398 , - 1249 , - 196 , - 1591 , - 1082 , - 845 , - 880 , - 1187 , - 1766 , - 441 , - 1564 , - 783 , - 274 , - 37 , - 72 , - 379 , - 958 , - 1809 , - 756 , - 2151 , - 1642 , - 1405 , - 1440 , - 1747 , - 150 , - 1001 , - 2124 , - 1343 , - 834 , - 597 , - 632 , - 939 , - 1518 , - 193 , - 1316 , - 535 , - 26 , - 1965 , - 2000 , - 131 , - 710 , - 1561 , - 508 , - 1903 , - 1394 , - 1157 , - 1192 , - 1499 , - 2078 , - 753 , - 1876 , - 1095 , - 586 , - 349 , - 384 , - 691 , - 1270 , - 2121 , - 1068 , - 287 , - 1954 , - 1717 , - 1752 , - 2059 , - 462 , - 1313 , - 260 , - 1655 , - 1146 , - 909 , - 944 , - 1251 , - 1830 , - 505 , - 1628 , - 847 , - 338 , - 101 , - 136 , - 443 , - 1022 , - 1873 , - 820 , - 39 , - 1706 , - 1469 , - 1504 , - 1811 , - 214 , - 1065 , - 12 , - 1407 , - 898 , - 661 , - 696 , - 1003 , - 1582 , - 257 , - 1380 , - 599 , - 90 , - 2029 , - 2064 , - 195 , - 774 , - 1625 , - 572 , - 1967 , - 1458 , - 1221 , - 1256 , - 1563 , - 2142 , - 817 , - 1940 , - 1159 , - 650 , - 413 , - 448 , - 755 , - 1334 , - 9 , - 1132 , - 351 , - 2018 , - 1781 , - 1816 , - 2123 , - 526 , - 1377 , - 324 , - 1719 , - 1210 , - 973 , - 1008 , - 1315 , - 1894 , - 569 , - 1692 , - 911 , - 402 , - 165 , - 200 , - 507 , - 1086 , - 1937 , - 884 , - 103 , - 1770 , - 1533 , - 1568 , - 1875 , - 278 , - 1129 , - 76 , - 1471 , - 962 , - 725 , - 760 , - 1067 , - 1646 , - 321 , - 1444 , - 663 , - 154 , - 2093 , - 2128 , - 259 , - 838 , - 1689 , - 636 , - 2031 , - 1522 , - 1285 , - 1320 , - 1627 , - 30 , - 881 , - 2004 , - 1223 , - 714 , - 477 , - 512 , - 819 , - 1398 , - 73 , - 1196 , - 415 , - 2082 , - 1845 , - 1880 , - 11 , - 590 , - 1441 , - 388 , - 1783 , - 1274 , - 1037 , - 1072 , - 1379 , - 1958 , - 633 , - 1756 , - 975 , - 466 , - 229 , - 264 , - 571 , - 1150 , - 2001 , - 948 , - 167 , - 1834 , - 1597 , - 1632 , - 1939 , - 342 , - 1193 , - 140 , - 1535 , - 1026 , - 789 , - 824 , - 1131 , - 1710 , - 385 , - 1508 , - 727 , - 218 , - 2157 , - 16 , - 323 , - 902 , - 1753 , - 700 , - 2095 , - 1586 , - 1349 , - 1384 , - 1691 , - 94 , - 945 , - 2068 , - 1287 , - 778 , - 541 , - 576 , - 883 , - 1462 , - 137 , - 1260 , - 479 , - 2146 , - 1909 , - 1944 , - 75 , - 654 , - 1505 , - 452 , - 1847 , - 1338 , - 1101 , - 1136 , - 1443 , - 2022 , - 697 , - 1820 , - 1039 , - 530 , - 293 , - 328 , - 635 , - 1214 , - 2065 , - 1012 , - 231 , - 1898 , - 1661 , - 1696 , - 2003 , - 406 , - 1257 , - 204 , - 1599 , - 1090 , - 853 , - 888 , - 1195 , - 1774 , - 449 , - 1572 , - 791 , - 282 , - 45 , - 80 , - 387 , - 966 , - 1817 , - 764 , - 2159 , - 1650 , - 1413 , - 1448 , - 1755 , - 158 , - 1009 , - 2132 , - 1351 , - 842 , - 605 , - 640 , - 947 , - 1526 , - 201 , - 1324 , - 543 , - 34 , - 1973 , - 2008 , - 139 , - 718 , - 1569 , - 516 , - 1911 , - 1402 , - 1165 , - 1200 , - 1507 , - 2086 , - 761 , - 1884 , - 1103 , - 594 , - 357 , - 392 , - 699 , - 1278 , - 2129 , - 1076 , - 295 , - 1962 , - 1725 , - 1760 , - 2067 , - 470 , - 1321 , - 268 , - 1663 , - 1154 , - 917 , - 952 , - 1259 , - 1838 , - 513 , - 1636 , - 855 , - 346 , - 109 , - 144 , - 451 , - 1030 , - 1881 , - 828 , - 47 , - 1714 , - 1477 , - 1512 , - 1819 , - 222 , - 1073 , - 20 , - 1415 , - 906 , - 669 , - 704 , - 1011 , - 1590 , - 265 , - 1388 , - 607 , - 98 , - 2037 , - 2072 , - 203 , - 782 , - 1633 , - 580 , - 1975 , - 1466 , - 1229 , - 1264 , - 1571 , - 2150 , - 825 , - 1948 , - 1167 , - 658 , - 421 , - 456 , - 763 , - 1342 , - 17 , - 1140 , - 359 , - 2026 , - 1789 , - 1824 , - 2131 , - 534 , - 1385 , - 332 , - 1727 , - 1218 , - 981 , - 1016 , - 1323 , - 1902 , - 577 , - 1700 , - 919 , - 410 , - 173 , - 208 , - 515 , - 1094 , - 1945 , - 892 , - 111 , - 1778 , - 1541 , - 1576 , - 1883 , - 286 , - 1137 , - 84 , - 1479 , - 970 , - 733 , - 768 , - 1075 , - 1654 , - 329 , - 1452 , - 671 , - 162 , - 2101 , - 2136 , - 267 , - 846 , - 1697 , - 644 , - 2039 , - 1530 , - 1293 , - 1328 , - 1635 , - 38 , - 889 , - 2012 , - 1231 , - 722 , - 485 , - 520 , - 827 , - 1406 , - 81 , - 1204 , - 423 , - 2090 , - 1853 , - 1888 , - 19 , - 598 , - 1449 , - 396 , - 1791 , - 1282 , - 1045 , - 1080 , - 1387 , - 1966 , - 641 , - 1764 , - 983 , - 474 , - 237 , - 272 , - 579 , - 1158 , - 2009 , - 956 , - 175 , - 1842 , - 1605 , - 1640 , - 1947 , - 350 , - 1201 , - 148 , - 1543 , - 1034 , - 797 , - 832 , - 1139 , - 1718 , - 393 , - 1516 , - 735 , - 226 , - 2165 , - 24 , - 331 , - 910 , - 1761 , - 708 , - 2103 , - 1594 , - 1357 , - 1392 , - 1699 , - 102 , - 953 , - 2076 , - 1295 , - 786 , - 549 , - 584 , - 891 , - 1470 , - 145 , - 1268 , - 487 , - 2154 , - 1917 , - 1952 , - 83 , - 662 , - 1513 , - 460 , - 1855 , - 1346 , - 1109 , - 1144 , - 1451 , - 2030 , - 705 , - 1828 , - 1047 , - 538 , - 301 , - 336 , - 643 , - 1222 , - 2073 , - 1020 , - 239 , - 1906 , - 1669 , - 1704 , - 2011 , - 414 , - 1265 , - 212 , - 1607 , - 1098 , - 861 , - 896 , - 1203 , - 1782 , - 457 , - 1580 , - 799 , - 290 , - 53 , - 88 , - 395 , - 974 , - 1825 , - 772 , - 2167 , - 1658 , - 1421 , - 1456 , - 1763 , - 166 , - 1017 , - 2140 , - 1359 , - 850 , - 613 , - 648 , - 955 , - 1534 , - 209 , - 1332 , - 551 , - 42 , - 1981 , - 2016 , - 147 , - 726 , - 1577 , - 524 , - 1919 , - 1410 , - 1173 , - 1208 , - 1515 , - 2094 , - 769 , - 1892 , - 1111 , - 602 , - 365 , - 400 , - 707 , - 1286 , - 2137 , - 1084 , - 303 , - 1970 , - 1733 , - 1768 , - 2075 , - 478 , - 1329 , - 276 , - 1671 , - 1162 , - 925 , - 960 , - 1267 , - 1846 , - 521 , - 1644 , - 863 , - 354 , - 117 , - 152 , - 459 , - 1038 , - 1889 , - 836 , - 55 , - 1722 , - 1485 , - 1520 , - 1827 , - 230 , - 1081 , - 28 , - 1423 , - 914 , - 677 , - 712 , - 1019 , - 1598 , - 273 , - 1396 , - 615 , - 106 , - 2045 , - 2080 , - 211 , - 790 , - 1641 , - 588 , - 1983 , - 1474 , - 1237 , - 1272 , - 1579 , - 2158 , - 833 , - 1956 , - 1175 , - 666 , - 429 , - 464 , - 771 , - 1350 , - 25 , - 1148 , - 367 , - 2034 , - 1797 , - 1832 , - 2139 , - 542 , - 1393 , - 340 , - 1735 , - 1226 , - 989 , - 1024 , - 1331 , - 1910 , - 585 , - 1708 , - 927 , - 418 , - 181 , - 216 , - 523 , - 1102 , - 1953 , - 900 , - 119 , - 1786 , - 1549 , - 1584 , - 1891 , - 294 , - 1145 , - 92 , - 1487 , - 978 , - 741 , - 776 , - 1083 , - 1662 , - 337 , - 1460 , - 679 , - 170 , - 2109 , - 2144 , - 275 , - 854 , - 1705 , - 652 , - 2047 , - 1538 , - 1301 , - 1336 , - 1643 , - 46 , - 897 , - 2020 , - 1239 , - 730 , - 493 , - 528 , - 835 , - 1414 , - 89 , - 1212 , - 431 , - 2098 , - 1861 , - 1896 , - 27 , - 606 , - 1457 , - 404 , - 1799 , - 1290 , - 1053 , - 1088 , - 1395 , - 1974 , - 649 , - 1772 , - 991 , - 482 , - 245 , - 280 , - 587 , - 1166 , - 2017 , - 964 , - 183 , - 1850 , - 1613 , - 1648 , - 1955 , - 358 , - 1209 , - 156 , - 1551 , - 1042 , - 805 , - 840 , - 1147 , - 1726 , - 401 , - 1524 , - 743 , - 234 , - 2173 , - 32 , - 339 , - 918 , - 1769 , - 716 , - 2111 , - 1602 , - 1365 , - 1400 , - 1707 , - 110 , - 961 , - 2084 , - 1303 , - 794 , - 557 , - 592 , - 899 , - 1478 , - 153 , - 1276 , - 495 , - 2162 , - 1925 , - 1960 , - 91 , - 670 , - 1521 , - 468 , - 1863 , - 1354 , - 1117 , - 1152 , - 1459 , - 2038 , - 713 , - 1836 , - 1055 , - 546 , - 309 , - 344 , - 651 , - 1230 , - 2081 , - 1028 , - 247 , - 1914 , - 1677 , - 1712 , - 2019 , - 422 , - 1273 , - 220 , - 1615 , - 1106 , - 869 , - 904 , - 1211 , - 1790 , - 465 , - 1588 , - 807 , - 298 , - 61 , - 96 , - 403 , - 982 , - 1833 , - 780 , - 2175 , - 1666 , - 1429 , - 1464 , - 1771 , - 174 , - 1025 , - 2148 , - 1367 , - 858 , - 621 , - 656 , - 963 , - 1542 , - 217 , - 1340 , - 559 , - 50 , - 1989 , - 2024 , - 155 , - 734 , - 1585 , - 532 , - 1927 , - 1418 , - 1181 , - 1216 , - 1523 , - 2102 , - 777 , - 1900 , - 1119 , - 610 , - 373 , - 408 , - 715 , - 1294 , - 2145 , - 1092 , - 311 , - 1978 , - 1741 , - 1776 , - 2083 , - 486 , - 1337 , - 284 , - 1679 , - 1170 , - 933 , - 968 , - 1275 , - 1854 , - 529 , - 1652 , - 871 , - 362 , - 125 , - 160 , - 467 , - 1046 , - 1897 , - 844 , - 63 , - 1730 , - 1493 , - 1528 , - 1835 , - 238 , - 1089 , - 36 , - 1431 , - 922 , - 685 , - 720 , - 1027 , - 1606 , - 281 , - 1404 , - 623 , - 114 , - 2053 , - 2088 , - 219 , - 798 , - 1649 , - 596 , - 1991 , - 1482 , - 1245 , - 1280 , - 1587 , - 2166 , - 841 , - 1964 , - 1183 , - 674 , - 437 , - 472 , - 779 , - 1358 , - 33 , - 1156 , - 375 , - 2042 , - 1805 , - 1840 , - 2147 , - 550 , - 1401 , - 348 , - 1743 , - 1234 , - 997 , - 1032 , - 1339 , - 1918 , - 593 , - 1716 , - 935 , - 426 , - 189 , - 224 , - 531 , - 1110 , - 1961 , - 908 , - 127 , - 1794 , - 1557 , - 1592 , - 1899 , - 302 , - 1153 , - 100 , - 1495 , - 986 , - 749 , - 784 , - 1091 , - 1670 , - 345 , - 1468 , - 687 , - 178 , - 2117 , - 2152 , - 283 , - 862 , - 1713 , - 660 , - 2055 , - 1546 , - 1309 , - 1344 , - 1651 , - 54 , - 905 , - 2028 , - 1247 , - 738 , - 501 , - 536 , - 843 , - 1422 , - 97 , - 1220 , - 439 , - 2106 , - 1869 , - 1904 , - 35 , - 614 , - 1465 , - 412 , - 1807 , - 1298 , - 1061 , - 1096 , - 1403 , - 1982 , - 657 , - 1780 , - 999 , - 490 , - 253 , - 288 , - 595 , - 1174 , - 2025 , - 972 , - 191 , - 1858 , - 1621 , - 1656 , - 1963 , - 366 , - 1217 , - 164 , - 1559 , - 1050 , - 813 , - 848 , - 1155 , - 1734 , - 409 , - 1532 , - 751 , - 242 , - 5 , - 40 , - 347 , - 926 , - 1777 , - 724 , - 2119 , - 1610 , - 1373 , - 1408 , - 1715 , - 118 , - 969 , - 2092 , - 1311 , - 802 , - 565 , - 600 , - 907 , - 1486 , - 161 , - 1284 , - 503 , - 2170 , - 1933 , - 1968 , - 99 , - 678 , - 1529 , - 476 , - 1871 , - 1362 , - 1125 , - 1160 , - 1467 , - 2046 , - 721 , - 1844 , - 1063 , - 554 , - 317 , - 352 , - 659 , - 1238 , - 2089 , - 1036 , - 255 , - 1922 , - 1685 , - 1720 , - 2027 , - 430 , - 1281 , - 228 , - 1623 , - 1114 , - 877 , - 912 , - 1219 , - 1798 , - 473 , - 1596 , - 815 , - 306 , - 69 , - 104 , - 411 , - 990 , - 1841 , - 788 , - 7 , - 1674 , - 1437 , - 1472 , - 1779 , - 182 , - 1033 , - 2156 , - 1375 , - 866 , - 629 , - 664 , - 971 , - 1550 , - 225 , - 1348 , - 567 , - 58 , - 1997 , - 2032 , - 163 , - 742 , - 1593 , - 540 , - 1935 , - 1426 , - 1189 , - 1224 , - 1531 , - 2110 , - 785 , - 1908 , - 1127 , - 618 , - 381 , - 416 , - 723 , - 1302 , - 2153 , - 1100 , - 319 , - 1986 , - 1749 , - 1784 , - 2091 , - 494 , - 1345 , - 292 , - 1687 , - 1178 , - 941 , - 976 , - 1283 , - 1862 , - 537 , - 1660 , - 879 , - 370 , - 133 , - 168 , - 475 , - 1054 , - 1905 , - 852 , - 71 , - 1738 , - 1501 , - 1536 , - 1843 , - 246 , - 1097 , - 44 , - 1439 , - 930 , - 693 , - 728 , - 1035 , - 1614 , - 289 , - 1412 , - 631 , - 122 , - 2061 , - 2096 , - 227 , - 806 , - 1657 , - 604 , - 1999 , - 1490 , - 1253 , - 1288 , - 1595 , - 2174 , - 849 , - 1972 , - 1191 , - 682 , - 445 , - 480 , - 787 , - 1366 , - 41 , - 1164 , - 383 , - 2050 , - 1813 , - 1848 , - 2155 , - 558 , - 1409 , - 356 , - 1751 , - 1242 , - 1005 , - 1040 , - 1347 , - 1926 , - 601 , - 1724 , - 943 , - 434 , - 197 , - 232 , - 539 , - 1118 , - 1969 , - 916 , - 135 , - 1802 , - 1565 , - 1600 , - 1907 , - 310 , - 1161 , - 108 , - 1503 , - 994 , - 757 , - 792 , - 1099 , - 1678 , - 353 , - 1476 , - 695 , - 186 , - 2125 , - 2160 , - 291 , - 870 , - 1721 , - 668 , - 2063 , - 1554 , - 1317 , - 1352 , - 1659 , - 62 , - 913 , - 2036 , - 1255 , - 746 , - 509 , - 544 , - 851 , - 1430 , - 105 , - 1228 , - 447 , - 2114 , - 1877 , - 1912 , - 43 , - 622 , - 1473 , - 420 , - 1815 , - 1306 , - 1069 , - 1104 , - 1411 , - 1990 , - 665 , - 1788 , - 1007 , - 498 , - 261 , - 296 , - 603 , - 1182 , - 2033 , - 980 , - 199 , - 1866 , - 1629 , - 1664 , - 1971 , - 374 , - 1225 , - 172 , - 1567 , - 1058 , - 821 , - 856 , - 1163 , - 1742 , - 417 , - 1540 , - 759 , - 250 , - 13 , - 48 , - 355 , - 934 , - 1785 , - 732 , - 2127 , - 1618 , - 1381 , - 1416 , - 1723 , - 126 , - 977 , - 2100 , - 1319 , - 810 , - 573 , - 608 , - 915 , - 1494 , - 169 , - 1292 , - 511 , - 2 , - 1941 , - 1976 , - 107 , - 686 , - 1537 , - 484 , - 1879 , - 1370 , - 1133 , - 1168 , - 1475 , - 2054 , - 729 , - 1852 , - 1071 , - 562 , - 325 , - 360 , - 667 , - 1246 , - 2097 , - 1044 , - 263 , - 1930 , - 1693 , - 1728 , - 2035 , - 438 , - 1289 , - 236 , - 1631 , - 1122 , - 885 , - 920 , - 1227 , - 1806 , - 481 , - 1604 , - 823 , - 314 , - 77 , - 112 , - 419 , - 998 , - 1849 , - 796 , - 15 , - 1682 , - 1445 , - 1480 , - 1787 , - 190 , - 1041 , - 2164 , - 1383 , - 874 , - 637 , - 672 , - 979 , - 1558 , - 233 , - 1356 , - 575 , - 66 , - 2005 , - 2040 , - 171 , - 750 , - 1601 , - 548 , - 1943 , - 1434 , - 1197 , - 1232 , - 1539 , - 2118 , - 793 , - 1916 , - 1135 , - 626 , - 389 , - 424 , - 731 , - 1310 , - 2161 , - 1108 , - 327 , - 1994 , - 1757 , - 1792 , - 2099 , - 502 , - 1353 , - 300 , - 1695 , - 1186 , - 949 , - 984 , - 1291 , - 1870 , - 545 , - 1668 , - 887 , - 378 , - 141 , - 176 , - 483 , - 1062 , - 1913 , - 860 , - 79 , - 1746 , - 1509 , - 1544 , - 1851 , - 254 , - 1105 , - 52 , - 1447 , - 938 , - 701 , - 736 , - 1043 , - 1622 , - 297 , - 1420 , - 639 , - 130 , - 2069 , - 2104 , - 235 , - 814 , - 1665 , - 612 , - 2007 , - 1498 , - 1261 , - 1296 , - 1603 , - 6 , - 857 , - 1980 , - 1199 , - 690 , - 453 , - 488 , - 795 , - 1374 , - 49 , - 1172 , - 391 , - 2058 , - 1821 , - 1856 , - 2163 , - 566 , - 1417 , - 364 , - 1759 , - 1250 , - 1013 , - 1048 , - 1355 , - 1934 , - 609 , - 1732 , - 951 , - 442 , - 205 , - 240 , - 547 , - 1126 , - 1977 , - 924 , - 143 , - 1810 , - 1573 , - 1608 , - 1915 , - 318 , - 1169 , - 116 , - 1511 , - 1002 , - 765 , - 800 , - 1107 , - 1686 , - 361 , - 1484 , - 703 , - 194 , - 2133 , - 2168 , - 299 , - 878 , - 1729 , - 676 , - 2071 , - 1562 , - 1325 , - 1360 , - 1667 , - 70 , - 921 , - 2044 , - 1263 , - 754 , - 517 , - 552 , - 859 , - 1438 , - 113 , - 1236 , - 455 , - 2122 , - 1885 , - 1920 , - 51 , - 630 , - 1481 , - 428 , - 1823 , - 1314 , - 1077 , - 1112 , - 1419 , - 1998 , - 673 , - 1796 , - 1015 , - 506 , - 269 , - 304 , - 611 , - 1190 , - 2041 , - 988 , - 207 , - 1874 , - 1637 , - 1672 , - 1979 , - 382 , - 1233 , - 180 , - 1575 , - 1066 , - 829 , - 864 , - 1171 , - 1750 , - 425 , - 1548 , - 767 , - 258 , - 21 , - 56 , - 363 , - 942 , - 1793 , - 740 , - 2135 , - 1626 , - 1389 , - 1424 , - 1731 , - 134 , - 985 , - 2108 , - 1327 , - 818 , - 581 , - 616 , - 923 , - 1502 , - 177 , - 1300 , - 519 , - 10 , - 1949 , - 1984 , - 115 , - 694 , - 1545 , - 492 , - 1887 , - 1378 , - 1141 , - 1176 , - 1483 , - 2062 , - 737 , - 1860 , - 1079 , - 570 , - 333 , - 368 , - 675 , - 1254 , - 2105 , - 1052 , - 271 , - 1938 , - 1701 , - 1736 , - 2043 , - 446 , - 1297 , - 244 , - 1639 , - 1130 , - 893 , - 928 , - 1235 , - 1814 , - 489 , - 1612 , - 831 , - 322 , - 85 , - 120 , - 427 , - 1006 , - 1857 , - 804 , - 23 , - 1690 , - 1453 , - 1488 , - 1795 , - 198 , - 1049 , - 2172 , - 1391 , - 882 , - 645 , - 680 , - 987 , - 1566 , - 241 , - 1364 , - 583 , - 74 , - 2013 , - 2048 , - 179 , - 758 , - 1609 , - 556 , - 1951 , - 1442 , - 1205 , - 1240 , - 1547 , - 2126 , - 801 , - 1924 , - 1143 , - 634 , - 397 , - 432 , - 739 , - 1318 , - 2169 , - 1116 , - 335 , - 2002 , - 1765 , - 1800 , - 2107 , - 510 , - 1361 , - 308 , - 1703 , - 1194 , - 957 , - 992 , - 1299 , - 1878 , - 553 , - 1676 , - 895 , - 386 , - 149 , - 184 , - 491 , - 1070 , - 1921 , - 868 , - 87 , - 1754 , - 1517 , - 1552 , - 1859 , - 262 , - 1113 , - 60 , - 1455 , - 946 , - 709 , - 744 , - 1051 , - 1630 , - 305 , - 1428 , - 647 , - 138 , - 2077 , - 2112 , - 243 , - 822 , - 1673 , - 620 , - 2015 , - 1506 , - 1269 , - 1304 , - 1611 , - 14 , - 865 , - 1988 , - 1207 , - 698 , - 461 , - 496 , - 803 , - 1382 , - 57 , - 1180 , - 399 , - 2066 , - 1829 , - 1864 , - 2171 , - 574 , - 1425 , - 372 , - 1767 , - 1258 , - 1021 , - 1056 , - 1363 , - 1942 , - 617 , - 1740 , - 959 , - 450 , - 213 , - 248 , - 555 , - 1134 , - 1985 , - 932 , - 151 , - 1818 , - 1581 , - 1616 , - 1923 , - 326 , - 1177 , - 124 , - 1519 , - 1010 , - 773 , - 808 , - 1115 , - 1694 , - 369 , - 1492 , - 711 , - 202 , - 2141 , - 0 , - 629 , - 2098 , - 2167 , - 836 , - 345 , - 694 , - 1883 , - 1672 , - 61 , - 1530 , - 1599 , - 268 , - 2017 , - 126 , - 1315 , - 1104 , - 1733 , - 962 , - 1031 , - 1940 , - 1449 , - 1798 , - 747 , - 536 , - 1165 , - 394 , - 463 , - 1372 , - 881 , - 1230 , - 179 , - 2208 , - 597 , - 2066 , - 2135 , - 804 , - 313 , - 662 , - 1851 , - 1640 , - 29 , - 1498 , - 1567 , - 236 , - 1985 , - 94 , - 1283 , - 1072 , - 1701 , - 930 , - 999 , - 1908 , - 1417 , - 1766 , - 715 , - 504 , - 1133 , - 362 , - 431 , - 1340 , - 849 , - 1198 , - 147 , - 2176 , - 565 , - 2034 , - 2103 , - 772 , - 281 , - 630 , - 1819 , - 1608 , - 2237 , - 1466 , - 1535 , - 204 , - 1953 , - 62 , - 1251 , - 1040 , - 1669 , - 898 , - 967 , - 1876 , - 1385 , - 1734 , - 683 , - 472 , - 1101 , - 330 , - 399 , - 1308 , - 817 , - 1166 , - 115 , - 2144 , - 533 , - 2002 , - 2071 , - 740 , - 249 , - 598 , - 1787 , - 1576 , - 2205 , - 1434 , - 1503 , - 172 , - 1921 , - 30 , - 1219 , - 1008 , - 1637 , - 866 , - 935 , - 1844 , - 1353 , - 1702 , - 651 , - 440 , - 1069 , - 298 , - 367 , - 1276 , - 785 , - 1134 , - 83 , - 2112 , - 501 , - 1970 , - 2039 , - 708 , - 217 , - 566 , - 1755 , - 1544 , - 2173 , - 1402 , - 1471 , - 140 , - 1889 , - 2238 , - 1187 , - 976 , - 1605 , - 834 , - 903 , - 1812 , - 1321 , - 1670 , - 619 , - 408 , - 1037 , - 266 , - 335 , - 1244 , - 753 , - 1102 , - 51 , - 2080 , - 469 , - 1938 , - 2007 , - 676 , - 185 , - 534 , - 1723 , - 1512 , - 2141 , - 1370 , - 1439 , - 108 , - 1857 , - 2206 , - 1155 , - 944 , - 1573 , - 802 , - 871 , - 1780 , - 1289 , - 1638 , - 587 , - 376 , - 1005 , - 234 , - 303 , - 1212 , - 721 , - 1070 , - 19 , - 2048 , - 437 , - 1906 , - 1975 , - 644 , - 153 , - 502 , - 1691 , - 1480 , - 2109 , - 1338 , - 1407 , - 76 , - 1825 , - 2174 , - 1123 , - 912 , - 1541 , - 770 , - 839 , - 1748 , - 1257 , - 1606 , - 555 , - 344 , - 973 , - 202 , - 271 , - 1180 , - 689 , - 1038 , - 2227 , - 2016 , - 405 , - 1874 , - 1943 , - 612 , - 121 , - 470 , - 1659 , - 1448 , - 2077 , - 1306 , - 1375 , - 44 , - 1793 , - 2142 , - 1091 , - 880 , - 1509 , - 738 , - 807 , - 1716 , - 1225 , - 1574 , - 523 , - 312 , - 941 , - 170 , - 239 , - 1148 , - 657 , - 1006 , - 2195 , - 1984 , - 373 , - 1842 , - 1911 , - 580 , - 89 , - 438 , - 1627 , - 1416 , - 2045 , - 1274 , - 1343 , - 12 , - 1761 , - 2110 , - 1059 , - 848 , - 1477 , - 706 , - 775 , - 1684 , - 1193 , - 1542 , - 491 , - 280 , - 909 , - 138 , - 207 , - 1116 , - 625 , - 974 , - 2163 , - 1952 , - 341 , - 1810 , - 1879 , - 548 , - 57 , - 406 , - 1595 , - 1384 , - 2013 , - 1242 , - 1311 , - 2220 , - 1729 , - 2078 , - 1027 , - 816 , - 1445 , - 674 , - 743 , - 1652 , - 1161 , - 1510 , - 459 , - 248 , - 877 , - 106 , - 175 , - 1084 , - 593 , - 942 , - 2131 , - 1920 , - 309 , - 1778 , - 1847 , - 516 , - 25 , - 374 , - 1563 , - 1352 , - 1981 , - 1210 , - 1279 , - 2188 , - 1697 , - 2046 , - 995 , - 784 , - 1413 , - 642 , - 711 , - 1620 , - 1129 , - 1478 , - 427 , - 216 , - 845 , - 74 , - 143 , - 1052 , - 561 , - 910 , - 2099 , - 1888 , - 277 , - 1746 , - 1815 , - 484 , - 2233 , - 342 , - 1531 , - 1320 , - 1949 , - 1178 , - 1247 , - 2156 , - 1665 , - 2014 , - 963 , - 752 , - 1381 , - 610 , - 679 , - 1588 , - 1097 , - 1446 , - 395 , - 184 , - 813 , - 42 , - 111 , - 1020 , - 529 , - 878 , - 2067 , - 1856 , - 245 , - 1714 , - 1783 , - 452 , - 2201 , - 310 , - 1499 , - 1288 , - 1917 , - 1146 , - 1215 , - 2124 , - 1633 , - 1982 , - 931 , - 720 , - 1349 , - 578 , - 647 , - 1556 , - 1065 , - 1414 , - 363 , - 152 , - 781 , - 10 , - 79 , - 988 , - 497 , - 846 , - 2035 , - 1824 , - 213 , - 1682 , - 1751 , - 420 , - 2169 , - 278 , - 1467 , - 1256 , - 1885 , - 1114 , - 1183 , - 2092 , - 1601 , - 1950 , - 899 , - 688 , - 1317 , - 546 , - 615 , - 1524 , - 1033 , - 1382 , - 331 , - 120 , - 749 , - 2218 , - 47 , - 956 , - 465 , - 814 , - 2003 , - 1792 , - 181 , - 1650 , - 1719 , - 388 , - 2137 , - 246 , - 1435 , - 1224 , - 1853 , - 1082 , - 1151 , - 2060 , - 1569 , - 1918 , - 867 , - 656 , - 1285 , - 514 , - 583 , - 1492 , - 1001 , - 1350 , - 299 , - 88 , - 717 , - 2186 , - 15 , - 924 , - 433 , - 782 , - 1971 , - 1760 , - 149 , - 1618 , - 1687 , - 356 , - 2105 , - 214 , - 1403 , - 1192 , - 1821 , - 1050 , - 1119 , - 2028 , - 1537 , - 1886 , - 835 , - 624 , - 1253 , - 482 , - 551 , - 1460 , - 969 , - 1318 , - 267 , - 56 , - 685 , - 2154 , - 2223 , - 892 , - 401 , - 750 , - 1939 , - 1728 , - 117 , - 1586 , - 1655 , - 324 , - 2073 , - 182 , - 1371 , - 1160 , - 1789 , - 1018 , - 1087 , - 1996 , - 1505 , - 1854 , - 803 , - 592 , - 1221 , - 450 , - 519 , - 1428 , - 937 , - 1286 , - 235 , - 24 , - 653 , - 2122 , - 2191 , - 860 , - 369 , - 718 , - 1907 , - 1696 , - 85 , - 1554 , - 1623 , - 292 , - 2041 , - 150 , - 1339 , - 1128 , - 1757 , - 986 , - 1055 , - 1964 , - 1473 , - 1822 , - 771 , - 560 , - 1189 , - 418 , - 487 , - 1396 , - 905 , - 1254 , - 203 , - 2232 , - 621 , - 2090 , - 2159 , - 828 , - 337 , - 686 , - 1875 , - 1664 , - 53 , - 1522 , - 1591 , - 260 , - 2009 , - 118 , - 1307 , - 1096 , - 1725 , - 954 , - 1023 , - 1932 , - 1441 , - 1790 , - 739 , - 528 , - 1157 , - 386 , - 455 , - 1364 , - 873 , - 1222 , - 171 , - 2200 , - 589 , - 2058 , - 2127 , - 796 , - 305 , - 654 , - 1843 , - 1632 , - 21 , - 1490 , - 1559 , - 228 , - 1977 , - 86 , - 1275 , - 1064 , - 1693 , - 922 , - 991 , - 1900 , - 1409 , - 1758 , - 707 , - 496 , - 1125 , - 354 , - 423 , - 1332 , - 841 , - 1190 , - 139 , - 2168 , - 557 , - 2026 , - 2095 , - 764 , - 273 , - 622 , - 1811 , - 1600 , - 2229 , - 1458 , - 1527 , - 196 , - 1945 , - 54 , - 1243 , - 1032 , - 1661 , - 890 , - 959 , - 1868 , - 1377 , - 1726 , - 675 , - 464 , - 1093 , - 322 , - 391 , - 1300 , - 809 , - 1158 , - 107 , - 2136 , - 525 , - 1994 , - 2063 , - 732 , - 241 , - 590 , - 1779 , - 1568 , - 2197 , - 1426 , - 1495 , - 164 , - 1913 , - 22 , - 1211 , - 1000 , - 1629 , - 858 , - 927 , - 1836 , - 1345 , - 1694 , - 643 , - 432 , - 1061 , - 290 , - 359 , - 1268 , - 777 , - 1126 , - 75 , - 2104 , - 493 , - 1962 , - 2031 , - 700 , - 209 , - 558 , - 1747 , - 1536 , - 2165 , - 1394 , - 1463 , - 132 , - 1881 , - 2230 , - 1179 , - 968 , - 1597 , - 826 , - 895 , - 1804 , - 1313 , - 1662 , - 611 , - 400 , - 1029 , - 258 , - 327 , - 1236 , - 745 , - 1094 , - 43 , - 2072 , - 461 , - 1930 , - 1999 , - 668 , - 177 , - 526 , - 1715 , - 1504 , - 2133 , - 1362 , - 1431 , - 100 , - 1849 , - 2198 , - 1147 , - 936 , - 1565 , - 794 , - 863 , - 1772 , - 1281 , - 1630 , - 579 , - 368 , - 997 , - 226 , - 295 , - 1204 , - 713 , - 1062 , - 11 , - 2040 , - 429 , - 1898 , - 1967 , - 636 , - 145 , - 494 , - 1683 , - 1472 , - 2101 , - 1330 , - 1399 , - 68 , - 1817 , - 2166 , - 1115 , - 904 , - 1533 , - 762 , - 831 , - 1740 , - 1249 , - 1598 , - 547 , - 336 , - 965 , - 194 , - 263 , - 1172 , - 681 , - 1030 , - 2219 , - 2008 , - 397 , - 1866 , - 1935 , - 604 , - 113 , - 462 , - 1651 , - 1440 , - 2069 , - 1298 , - 1367 , - 36 , - 1785 , - 2134 , - 1083 , - 872 , - 1501 , - 730 , - 799 , - 1708 , - 1217 , - 1566 , - 515 , - 304 , - 933 , - 162 , - 231 , - 1140 , - 649 , - 998 , - 2187 , - 1976 , - 365 , - 1834 , - 1903 , - 572 , - 81 , - 430 , - 1619 , - 1408 , - 2037 , - 1266 , - 1335 , - 4 , - 1753 , - 2102 , - 1051 , - 840 , - 1469 , - 698 , - 767 , - 1676 , - 1185 , - 1534 , - 483 , - 272 , - 901 , - 130 , - 199 , - 1108 , - 617 , - 966 , - 2155 , - 1944 , - 333 , - 1802 , - 1871 , - 540 , - 49 , - 398 , - 1587 , - 1376 , - 2005 , - 1234 , - 1303 , - 2212 , - 1721 , - 2070 , - 1019 , - 808 , - 1437 , - 666 , - 735 , - 1644 , - 1153 , - 1502 , - 451 , - 240 , - 869 , - 98 , - 167 , - 1076 , - 585 , - 934 , - 2123 , - 1912 , - 301 , - 1770 , - 1839 , - 508 , - 17 , - 366 , - 1555 , - 1344 , - 1973 , - 1202 , - 1271 , - 2180 , - 1689 , - 2038 , - 987 , - 776 , - 1405 , - 634 , - 703 , - 1612 , - 1121 , - 1470 , - 419 , - 208 , - 837 , - 66 , - 135 , - 1044 , - 553 , - 902 , - 2091 , - 1880 , - 269 , - 1738 , - 1807 , - 476 , - 2225 , - 334 , - 1523 , - 1312 , - 1941 , - 1170 , - 1239 , - 2148 , - 1657 , - 2006 , - 955 , - 744 , - 1373 , - 602 , - 671 , - 1580 , - 1089 , - 1438 , - 387 , - 176 , - 805 , - 34 , - 103 , - 1012 , - 521 , - 870 , - 2059 , - 1848 , - 237 , - 1706 , - 1775 , - 444 , - 2193 , - 302 , - 1491 , - 1280 , - 1909 , - 1138 , - 1207 , - 2116 , - 1625 , - 1974 , - 923 , - 712 , - 1341 , - 570 , - 639 , - 1548 , - 1057 , - 1406 , - 355 , - 144 , - 773 , - 2 , - 71 , - 980 , - 489 , - 838 , - 2027 , - 1816 , - 205 , - 1674 , - 1743 , - 412 , - 2161 , - 270 , - 1459 , - 1248 , - 1877 , - 1106 , - 1175 , - 2084 , - 1593 , - 1942 , - 891 , - 680 , - 1309 , - 538 , - 607 , - 1516 , - 1025 , - 1374 , - 323 , - 112 , - 741 , - 2210 , - 39 , - 948 , - 457 , - 806 , - 1995 , - 1784 , - 173 , - 1642 , - 1711 , - 380 , - 2129 , - 238 , - 1427 , - 1216 , - 1845 , - 1074 , - 1143 , - 2052 , - 1561 , - 1910 , - 859 , - 648 , - 1277 , - 506 , - 575 , - 1484 , - 993 , - 1342 , - 291 , - 80 , - 709 , - 2178 , - 7 , - 916 , - 425 , - 774 , - 1963 , - 1752 , - 141 , - 1610 , - 1679 , - 348 , - 2097 , - 206 , - 1395 , - 1184 , - 1813 , - 1042 , - 1111 , - 2020 , - 1529 , - 1878 , - 827 , - 616 , - 1245 , - 474 , - 543 , - 1452 , - 961 , - 1310 , - 259 , - 48 , - 677 , - 2146 , - 2215 , - 884 , - 393 , - 742 , - 1931 , - 1720 , - 109 , - 1578 , - 1647 , - 316 , - 2065 , - 174 , - 1363 , - 1152 , - 1781 , - 1010 , - 1079 , - 1988 , - 1497 , - 1846 , - 795 , - 584 , - 1213 , - 442 , - 511 , - 1420 , - 929 , - 1278 , - 227 , - 16 , - 645 , - 2114 , - 2183 , - 852 , - 361 , - 710 , - 1899 , - 1688 , - 77 , - 1546 , - 1615 , - 284 , - 2033 , - 142 , - 1331 , - 1120 , - 1749 , - 978 , - 1047 , - 1956 , - 1465 , - 1814 , - 763 , - 552 , - 1181 , - 410 , - 479 , - 1388 , - 897 , - 1246 , - 195 , - 2224 , - 613 , - 2082 , - 2151 , - 820 , - 329 , - 678 , - 1867 , - 1656 , - 45 , - 1514 , - 1583 , - 252 , - 2001 , - 110 , - 1299 , - 1088 , - 1717 , - 946 , - 1015 , - 1924 , - 1433 , - 1782 , - 731 , - 520 , - 1149 , - 378 , - 447 , - 1356 , - 865 , - 1214 , - 163 , - 2192 , - 581 , - 2050 , - 2119 , - 788 , - 297 , - 646 , - 1835 , - 1624 , - 13 , - 1482 , - 1551 , - 220 , - 1969 , - 78 , - 1267 , - 1056 , - 1685 , - 914 , - 983 , - 1892 , - 1401 , - 1750 , - 699 , - 488 , - 1117 , - 346 , - 415 , - 1324 , - 833 , - 1182 , - 131 , - 2160 , - 549 , - 2018 , - 2087 , - 756 , - 265 , - 614 , - 1803 , - 1592 , - 2221 , - 1450 , - 1519 , - 188 , - 1937 , - 46 , - 1235 , - 1024 , - 1653 , - 882 , - 951 , - 1860 , - 1369 , - 1718 , - 667 , - 456 , - 1085 , - 314 , - 383 , - 1292 , - 801 , - 1150 , - 99 , - 2128 , - 517 , - 1986 , - 2055 , - 724 , - 233 , - 582 , - 1771 , - 1560 , - 2189 , - 1418 , - 1487 , - 156 , - 1905 , - 14 , - 1203 , - 992 , - 1621 , - 850 , - 919 , - 1828 , - 1337 , - 1686 , - 635 , - 424 , - 1053 , - 282 , - 351 , - 1260 , - 769 , - 1118 , - 67 , - 2096 , - 485 , - 1954 , - 2023 , - 692 , - 201 , - 550 , - 1739 , - 1528 , - 2157 , - 1386 , - 1455 , - 124 , - 1873 , - 2222 , - 1171 , - 960 , - 1589 , - 818 , - 887 , - 1796 , - 1305 , - 1654 , - 603 , - 392 , - 1021 , - 250 , - 319 , - 1228 , - 737 , - 1086 , - 35 , - 2064 , - 453 , - 1922 , - 1991 , - 660 , - 169 , - 518 , - 1707 , - 1496 , - 2125 , - 1354 , - 1423 , - 92 , - 1841 , - 2190 , - 1139 , - 928 , - 1557 , - 786 , - 855 , - 1764 , - 1273 , - 1622 , - 571 , - 360 , - 989 , - 218 , - 287 , - 1196 , - 705 , - 1054 , - 3 , - 2032 , - 421 , - 1890 , - 1959 , - 628 , - 137 , - 486 , - 1675 , - 1464 , - 2093 , - 1322 , - 1391 , - 60 , - 1809 , - 2158 , - 1107 , - 896 , - 1525 , - 754 , - 823 , - 1732 , - 1241 , - 1590 , - 539 , - 328 , - 957 , - 186 , - 255 , - 1164 , - 673 , - 1022 , - 2211 , - 2000 , - 389 , - 1858 , - 1927 , - 596 , - 105 , - 454 , - 1643 , - 1432 , - 2061 , - 1290 , - 1359 , - 28 , - 1777 , - 2126 , - 1075 , - 864 , - 1493 , - 722 , - 791 , - 1700 , - 1209 , - 1558 , - 507 , - 296 , - 925 , - 154 , - 223 , - 1132 , - 641 , - 990 , - 2179 , - 1968 , - 357 , - 1826 , - 1895 , - 564 , - 73 , - 422 , - 1611 , - 1400 , - 2029 , - 1258 , - 1327 , - 2236 , - 1745 , - 2094 , - 1043 , - 832 , - 1461 , - 690 , - 759 , - 1668 , - 1177 , - 1526 , - 475 , - 264 , - 893 , - 122 , - 191 , - 1100 , - 609 , - 958 , - 2147 , - 1936 , - 325 , - 1794 , - 1863 , - 532 , - 41 , - 390 , - 1579 , - 1368 , - 1997 , - 1226 , - 1295 , - 2204 , - 1713 , - 2062 , - 1011 , - 800 , - 1429 , - 658 , - 727 , - 1636 , - 1145 , - 1494 , - 443 , - 232 , - 861 , - 90 , - 159 , - 1068 , - 577 , - 926 , - 2115 , - 1904 , - 293 , - 1762 , - 1831 , - 500 , - 9 , - 358 , - 1547 , - 1336 , - 1965 , - 1194 , - 1263 , - 2172 , - 1681 , - 2030 , - 979 , - 768 , - 1397 , - 626 , - 695 , - 1604 , - 1113 , - 1462 , - 411 , - 200 , - 829 , - 58 , - 127 , - 1036 , - 545 , - 894 , - 2083 , - 1872 , - 261 , - 1730 , - 1799 , - 468 , - 2217 , - 326 , - 1515 , - 1304 , - 1933 , - 1162 , - 1231 , - 2140 , - 1649 , - 1998 , - 947 , - 736 , - 1365 , - 594 , - 663 , - 1572 , - 1081 , - 1430 , - 379 , - 168 , - 797 , - 26 , - 95 , - 1004 , - 513 , - 862 , - 2051 , - 1840 , - 229 , - 1698 , - 1767 , - 436 , - 2185 , - 294 , - 1483 , - 1272 , - 1901 , - 1130 , - 1199 , - 2108 , - 1617 , - 1966 , - 915 , - 704 , - 1333 , - 562 , - 631 , - 1540 , - 1049 , - 1398 , - 347 , - 136 , - 765 , - 2234 , - 63 , - 972 , - 481 , - 830 , - 2019 , - 1808 , - 197 , - 1666 , - 1735 , - 404 , - 2153 , - 262 , - 1451 , - 1240 , - 1869 , - 1098 , - 1167 , - 2076 , - 1585 , - 1934 , - 883 , - 672 , - 1301 , - 530 , - 599 , - 1508 , - 1017 , - 1366 , - 315 , - 104 , - 733 , - 2202 , - 31 , - 940 , - 449 , - 798 , - 1987 , - 1776 , - 165 , - 1634 , - 1703 , - 372 , - 2121 , - 230 , - 1419 , - 1208 , - 1837 , - 1066 , - 1135 , - 2044 , - 1553 , - 1902 , - 851 , - 640 , - 1269 , - 498 , - 567 , - 1476 , - 985 , - 1334 , - 283 , - 72 , - 701 , - 2170 , - 2239 , - 908 , - 417 , - 766 , - 1955 , - 1744 , - 133 , - 1602 , - 1671 , - 340 , - 2089 , - 198 , - 1387 , - 1176 , - 1805 , - 1034 , - 1103 , - 2012 , - 1521 , - 1870 , - 819 , - 608 , - 1237 , - 466 , - 535 , - 1444 , - 953 , - 1302 , - 251 , - 40 , - 669 , - 2138 , - 2207 , - 876 , - 385 , - 734 , - 1923 , - 1712 , - 101 , - 1570 , - 1639 , - 308 , - 2057 , - 166 , - 1355 , - 1144 , - 1773 , - 1002 , - 1071 , - 1980 , - 1489 , - 1838 , - 787 , - 576 , - 1205 , - 434 , - 503 , - 1412 , - 921 , - 1270 , - 219 , - 8 , - 637 , - 2106 , - 2175 , - 844 , - 353 , - 702 , - 1891 , - 1680 , - 69 , - 1538 , - 1607 , - 276 , - 2025 , - 134 , - 1323 , - 1112 , - 1741 , - 970 , - 1039 , - 1948 , - 1457 , - 1806 , - 755 , - 544 , - 1173 , - 402 , - 471 , - 1380 , - 889 , - 1238 , - 187 , - 2216 , - 605 , - 2074 , - 2143 , - 812 , - 321 , - 670 , - 1859 , - 1648 , - 37 , - 1506 , - 1575 , - 244 , - 1993 , - 102 , - 1291 , - 1080 , - 1709 , - 938 , - 1007 , - 1916 , - 1425 , - 1774 , - 723 , - 512 , - 1141 , - 370 , - 439 , - 1348 , - 857 , - 1206 , - 155 , - 2184 , - 573 , - 2042 , - 2111 , - 780 , - 289 , - 638 , - 1827 , - 1616 , - 5 , - 1474 , - 1543 , - 212 , - 1961 , - 70 , - 1259 , - 1048 , - 1677 , - 906 , - 975 , - 1884 , - 1393 , - 1742 , - 691 , - 480 , - 1109 , - 338 , - 407 , - 1316 , - 825 , - 1174 , - 123 , - 2152 , - 541 , - 2010 , - 2079 , - 748 , - 257 , - 606 , - 1795 , - 1584 , - 2213 , - 1442 , - 1511 , - 180 , - 1929 , - 38 , - 1227 , - 1016 , - 1645 , - 874 , - 943 , - 1852 , - 1361 , - 1710 , - 659 , - 448 , - 1077 , - 306 , - 375 , - 1284 , - 793 , - 1142 , - 91 , - 2120 , - 509 , - 1978 , - 2047 , - 716 , - 225 , - 574 , - 1763 , - 1552 , - 2181 , - 1410 , - 1479 , - 148 , - 1897 , - 6 , - 1195 , - 984 , - 1613 , - 842 , - 911 , - 1820 , - 1329 , - 1678 , - 627 , - 416 , - 1045 , - 274 , - 343 , - 1252 , - 761 , - 1110 , - 59 , - 2088 , - 477 , - 1946 , - 2015 , - 684 , - 193 , - 542 , - 1731 , - 1520 , - 2149 , - 1378 , - 1447 , - 116 , - 1865 , - 2214 , - 1163 , - 952 , - 1581 , - 810 , - 879 , - 1788 , - 1297 , - 1646 , - 595 , - 384 , - 1013 , - 242 , - 311 , - 1220 , - 729 , - 1078 , - 27 , - 2056 , - 445 , - 1914 , - 1983 , - 652 , - 161 , - 510 , - 1699 , - 1488 , - 2117 , - 1346 , - 1415 , - 84 , - 1833 , - 2182 , - 1131 , - 920 , - 1549 , - 778 , - 847 , - 1756 , - 1265 , - 1614 , - 563 , - 352 , - 981 , - 210 , - 279 , - 1188 , - 697 , - 1046 , - 2235 , - 2024 , - 413 , - 1882 , - 1951 , - 620 , - 129 , - 478 , - 1667 , - 1456 , - 2085 , - 1314 , - 1383 , - 52 , - 1801 , - 2150 , - 1099 , - 888 , - 1517 , - 746 , - 815 , - 1724 , - 1233 , - 1582 , - 531 , - 320 , - 949 , - 178 , - 247 , - 1156 , - 665 , - 1014 , - 2203 , - 1992 , - 381 , - 1850 , - 1919 , - 588 , - 97 , - 446 , - 1635 , - 1424 , - 2053 , - 1282 , - 1351 , - 20 , - 1769 , - 2118 , - 1067 , - 856 , - 1485 , - 714 , - 783 , - 1692 , - 1201 , - 1550 , - 499 , - 288 , - 917 , - 146 , - 215 , - 1124 , - 633 , - 982 , - 2171 , - 1960 , - 349 , - 1818 , - 1887 , - 556 , - 65 , - 414 , - 1603 , - 1392 , - 2021 , - 1250 , - 1319 , - 2228 , - 1737 , - 2086 , - 1035 , - 824 , - 1453 , - 682 , - 751 , - 1660 , - 1169 , - 1518 , - 467 , - 256 , - 885 , - 114 , - 183 , - 1092 , - 601 , - 950 , - 2139 , - 1928 , - 317 , - 1786 , - 1855 , - 524 , - 33 , - 382 , - 1571 , - 1360 , - 1989 , - 1218 , - 1287 , - 2196 , - 1705 , - 2054 , - 1003 , - 792 , - 1421 , - 650 , - 719 , - 1628 , - 1137 , - 1486 , - 435 , - 224 , - 853 , - 82 , - 151 , - 1060 , - 569 , - 918 , - 2107 , - 1896 , - 285 , - 1754 , - 1823 , - 492 , - 1 , - 350 , - 1539 , - 1328 , - 1957 , - 1186 , - 1255 , - 2164 , - 1673 , - 2022 , - 971 , - 760 , - 1389 , - 618 , - 687 , - 1596 , - 1105 , - 1454 , - 403 , - 192 , - 821 , - 50 , - 119 , - 1028 , - 537 , - 886 , - 2075 , - 1864 , - 253 , - 1722 , - 1791 , - 460 , - 2209 , - 318 , - 1507 , - 1296 , - 1925 , - 1154 , - 1223 , - 2132 , - 1641 , - 1990 , - 939 , - 728 , - 1357 , - 586 , - 655 , - 1564 , - 1073 , - 1422 , - 371 , - 160 , - 789 , - 18 , - 87 , - 996 , - 505 , - 854 , - 2043 , - 1832 , - 221 , - 1690 , - 1759 , - 428 , - 2177 , - 286 , - 1475 , - 1264 , - 1893 , - 1122 , - 1191 , - 2100 , - 1609 , - 1958 , - 907 , - 696 , - 1325 , - 554 , - 623 , - 1532 , - 1041 , - 1390 , - 339 , - 128 , - 757 , - 2226 , - 55 , - 964 , - 473 , - 822 , - 2011 , - 1800 , - 189 , - 1658 , - 1727 , - 396 , - 2145 , - 254 , - 1443 , - 1232 , - 1861 , - 1090 , - 1159 , - 2068 , - 1577 , - 1926 , - 875 , - 664 , - 1293 , - 522 , - 591 , - 1500 , - 1009 , - 1358 , - 307 , - 96 , - 725 , - 2194 , - 23 , - 932 , - 441 , - 790 , - 1979 , - 1768 , - 157 , - 1626 , - 1695 , - 364 , - 2113 , - 222 , - 1411 , - 1200 , - 1829 , - 1058 , - 1127 , - 2036 , - 1545 , - 1894 , - 843 , - 632 , - 1261 , - 490 , - 559 , - 1468 , - 977 , - 1326 , - 275 , - 64 , - 693 , - 2162 , - 2231 , - 900 , - 409 , - 758 , - 1947 , - 1736 , - 125 , - 1594 , - 1663 , - 332 , - 2081 , - 190 , - 1379 , - 1168 , - 1797 , - 1026 , - 1095 , - 2004 , - 1513 , - 1862 , - 811 , - 600 , - 1229 , - 458 , - 527 , - 1436 , - 945 , - 1294 , - 243 , - 32 , - 661 , - 2130 , - 2199 , - 868 , - 377 , - 726 , - 1915 , - 1704 , - 93 , - 1562 , - 1631 , - 300 , - 2049 , - 158 , - 1347 , - 1136 , - 1765 , - 994 , - 1063 , - 1972 , - 1481 , - 1830 , - 779 , - 568 , - 1197 , - 426 , - 495 , - 1404 , - 913 , - 1262 , - 211 , - 0 , - 469 , - 1370 , - 399 , - 2164 , - 2057 , - 78 , - 835 , - 2024 , - 1341 , - 1090 , - 1271 , - 1884 , - 625 , - 2102 , - 1707 , - 1744 , - 2213 , - 810 , - 2143 , - 1604 , - 1497 , - 1822 , - 275 , - 1464 , - 781 , - 530 , - 711 , - 1324 , - 65 , - 1542 , - 1147 , - 1184 , - 1653 , - 250 , - 1583 , - 1044 , - 937 , - 1262 , - 2019 , - 904 , - 221 , - 2274 , - 151 , - 764 , - 1809 , - 982 , - 587 , - 624 , - 1093 , - 1994 , - 1023 , - 484 , - 377 , - 702 , - 1459 , - 344 , - 1965 , - 1714 , - 1895 , - 204 , - 1249 , - 422 , - 27 , - 64 , - 533 , - 1434 , - 463 , - 2228 , - 2121 , - 142 , - 899 , - 2088 , - 1405 , - 1154 , - 1335 , - 1948 , - 689 , - 2166 , - 1771 , - 1808 , - 2277 , - 874 , - 2207 , - 1668 , - 1561 , - 1886 , - 339 , - 1528 , - 845 , - 594 , - 775 , - 1388 , - 129 , - 1606 , - 1211 , - 1248 , - 1717 , - 314 , - 1647 , - 1108 , - 1001 , - 1326 , - 2083 , - 968 , - 285 , - 34 , - 215 , - 828 , - 1873 , - 1046 , - 651 , - 688 , - 1157 , - 2058 , - 1087 , - 548 , - 441 , - 766 , - 1523 , - 408 , - 2029 , - 1778 , - 1959 , - 268 , - 1313 , - 486 , - 91 , - 128 , - 597 , - 1498 , - 527 , - 2292 , - 2185 , - 206 , - 963 , - 2152 , - 1469 , - 1218 , - 1399 , - 2012 , - 753 , - 2230 , - 1835 , - 1872 , - 37 , - 938 , - 2271 , - 1732 , - 1625 , - 1950 , - 403 , - 1592 , - 909 , - 658 , - 839 , - 1452 , - 193 , - 1670 , - 1275 , - 1312 , - 1781 , - 378 , - 1711 , - 1172 , - 1065 , - 1390 , - 2147 , - 1032 , - 349 , - 98 , - 279 , - 892 , - 1937 , - 1110 , - 715 , - 752 , - 1221 , - 2122 , - 1151 , - 612 , - 505 , - 830 , - 1587 , - 472 , - 2093 , - 1842 , - 2023 , - 332 , - 1377 , - 550 , - 155 , - 192 , - 661 , - 1562 , - 591 , - 52 , - 2249 , - 270 , - 1027 , - 2216 , - 1533 , - 1282 , - 1463 , - 2076 , - 817 , - 2294 , - 1899 , - 1936 , - 101 , - 1002 , - 31 , - 1796 , - 1689 , - 2014 , - 467 , - 1656 , - 973 , - 722 , - 903 , - 1516 , - 257 , - 1734 , - 1339 , - 1376 , - 1845 , - 442 , - 1775 , - 1236 , - 1129 , - 1454 , - 2211 , - 1096 , - 413 , - 162 , - 343 , - 956 , - 2001 , - 1174 , - 779 , - 816 , - 1285 , - 2186 , - 1215 , - 676 , - 569 , - 894 , - 1651 , - 536 , - 2157 , - 1906 , - 2087 , - 396 , - 1441 , - 614 , - 219 , - 256 , - 725 , - 1626 , - 655 , - 116 , - 9 , - 334 , - 1091 , - 2280 , - 1597 , - 1346 , - 1527 , - 2140 , - 881 , - 54 , - 1963 , - 2000 , - 165 , - 1066 , - 95 , - 1860 , - 1753 , - 2078 , - 531 , - 1720 , - 1037 , - 786 , - 967 , - 1580 , - 321 , - 1798 , - 1403 , - 1440 , - 1909 , - 506 , - 1839 , - 1300 , - 1193 , - 1518 , - 2275 , - 1160 , - 477 , - 226 , - 407 , - 1020 , - 2065 , - 1238 , - 843 , - 880 , - 1349 , - 2250 , - 1279 , - 740 , - 633 , - 958 , - 1715 , - 600 , - 2221 , - 1970 , - 2151 , - 460 , - 1505 , - 678 , - 283 , - 320 , - 789 , - 1690 , - 719 , - 180 , - 73 , - 398 , - 1155 , - 40 , - 1661 , - 1410 , - 1591 , - 2204 , - 945 , - 118 , - 2027 , - 2064 , - 229 , - 1130 , - 159 , - 1924 , - 1817 , - 2142 , - 595 , - 1784 , - 1101 , - 850 , - 1031 , - 1644 , - 385 , - 1862 , - 1467 , - 1504 , - 1973 , - 570 , - 1903 , - 1364 , - 1257 , - 1582 , - 35 , - 1224 , - 541 , - 290 , - 471 , - 1084 , - 2129 , - 1302 , - 907 , - 944 , - 1413 , - 10 , - 1343 , - 804 , - 697 , - 1022 , - 1779 , - 664 , - 2285 , - 2034 , - 2215 , - 524 , - 1569 , - 742 , - 347 , - 384 , - 853 , - 1754 , - 783 , - 244 , - 137 , - 462 , - 1219 , - 104 , - 1725 , - 1474 , - 1655 , - 2268 , - 1009 , - 182 , - 2091 , - 2128 , - 293 , - 1194 , - 223 , - 1988 , - 1881 , - 2206 , - 659 , - 1848 , - 1165 , - 914 , - 1095 , - 1708 , - 449 , - 1926 , - 1531 , - 1568 , - 2037 , - 634 , - 1967 , - 1428 , - 1321 , - 1646 , - 99 , - 1288 , - 605 , - 354 , - 535 , - 1148 , - 2193 , - 1366 , - 971 , - 1008 , - 1477 , - 74 , - 1407 , - 868 , - 761 , - 1086 , - 1843 , - 728 , - 45 , - 2098 , - 2279 , - 588 , - 1633 , - 806 , - 411 , - 448 , - 917 , - 1818 , - 847 , - 308 , - 201 , - 526 , - 1283 , - 168 , - 1789 , - 1538 , - 1719 , - 28 , - 1073 , - 246 , - 2155 , - 2192 , - 357 , - 1258 , - 287 , - 2052 , - 1945 , - 2270 , - 723 , - 1912 , - 1229 , - 978 , - 1159 , - 1772 , - 513 , - 1990 , - 1595 , - 1632 , - 2101 , - 698 , - 2031 , - 1492 , - 1385 , - 1710 , - 163 , - 1352 , - 669 , - 418 , - 599 , - 1212 , - 2257 , - 1430 , - 1035 , - 1072 , - 1541 , - 138 , - 1471 , - 932 , - 825 , - 1150 , - 1907 , - 792 , - 109 , - 2162 , - 39 , - 652 , - 1697 , - 870 , - 475 , - 512 , - 981 , - 1882 , - 911 , - 372 , - 265 , - 590 , - 1347 , - 232 , - 1853 , - 1602 , - 1783 , - 92 , - 1137 , - 310 , - 2219 , - 2256 , - 421 , - 1322 , - 351 , - 2116 , - 2009 , - 30 , - 787 , - 1976 , - 1293 , - 1042 , - 1223 , - 1836 , - 577 , - 2054 , - 1659 , - 1696 , - 2165 , - 762 , - 2095 , - 1556 , - 1449 , - 1774 , - 227 , - 1416 , - 733 , - 482 , - 663 , - 1276 , - 17 , - 1494 , - 1099 , - 1136 , - 1605 , - 202 , - 1535 , - 996 , - 889 , - 1214 , - 1971 , - 856 , - 173 , - 2226 , - 103 , - 716 , - 1761 , - 934 , - 539 , - 576 , - 1045 , - 1946 , - 975 , - 436 , - 329 , - 654 , - 1411 , - 296 , - 1917 , - 1666 , - 1847 , - 156 , - 1201 , - 374 , - 2283 , - 16 , - 485 , - 1386 , - 415 , - 2180 , - 2073 , - 94 , - 851 , - 2040 , - 1357 , - 1106 , - 1287 , - 1900 , - 641 , - 2118 , - 1723 , - 1760 , - 2229 , - 826 , - 2159 , - 1620 , - 1513 , - 1838 , - 291 , - 1480 , - 797 , - 546 , - 727 , - 1340 , - 81 , - 1558 , - 1163 , - 1200 , - 1669 , - 266 , - 1599 , - 1060 , - 953 , - 1278 , - 2035 , - 920 , - 237 , - 2290 , - 167 , - 780 , - 1825 , - 998 , - 603 , - 640 , - 1109 , - 2010 , - 1039 , - 500 , - 393 , - 718 , - 1475 , - 360 , - 1981 , - 1730 , - 1911 , - 220 , - 1265 , - 438 , - 43 , - 80 , - 549 , - 1450 , - 479 , - 2244 , - 2137 , - 158 , - 915 , - 2104 , - 1421 , - 1170 , - 1351 , - 1964 , - 705 , - 2182 , - 1787 , - 1824 , - 2293 , - 890 , - 2223 , - 1684 , - 1577 , - 1902 , - 355 , - 1544 , - 861 , - 610 , - 791 , - 1404 , - 145 , - 1622 , - 1227 , - 1264 , - 1733 , - 330 , - 1663 , - 1124 , - 1017 , - 1342 , - 2099 , - 984 , - 301 , - 50 , - 231 , - 844 , - 1889 , - 1062 , - 667 , - 704 , - 1173 , - 2074 , - 1103 , - 564 , - 457 , - 782 , - 1539 , - 424 , - 2045 , - 1794 , - 1975 , - 284 , - 1329 , - 502 , - 107 , - 144 , - 613 , - 1514 , - 543 , - 4 , - 2201 , - 222 , - 979 , - 2168 , - 1485 , - 1234 , - 1415 , - 2028 , - 769 , - 2246 , - 1851 , - 1888 , - 53 , - 954 , - 2287 , - 1748 , - 1641 , - 1966 , - 419 , - 1608 , - 925 , - 674 , - 855 , - 1468 , - 209 , - 1686 , - 1291 , - 1328 , - 1797 , - 394 , - 1727 , - 1188 , - 1081 , - 1406 , - 2163 , - 1048 , - 365 , - 114 , - 295 , - 908 , - 1953 , - 1126 , - 731 , - 768 , - 1237 , - 2138 , - 1167 , - 628 , - 521 , - 846 , - 1603 , - 488 , - 2109 , - 1858 , - 2039 , - 348 , - 1393 , - 566 , - 171 , - 208 , - 677 , - 1578 , - 607 , - 68 , - 2265 , - 286 , - 1043 , - 2232 , - 1549 , - 1298 , - 1479 , - 2092 , - 833 , - 6 , - 1915 , - 1952 , - 117 , - 1018 , - 47 , - 1812 , - 1705 , - 2030 , - 483 , - 1672 , - 989 , - 738 , - 919 , - 1532 , - 273 , - 1750 , - 1355 , - 1392 , - 1861 , - 458 , - 1791 , - 1252 , - 1145 , - 1470 , - 2227 , - 1112 , - 429 , - 178 , - 359 , - 972 , - 2017 , - 1190 , - 795 , - 832 , - 1301 , - 2202 , - 1231 , - 692 , - 585 , - 910 , - 1667 , - 552 , - 2173 , - 1922 , - 2103 , - 412 , - 1457 , - 630 , - 235 , - 272 , - 741 , - 1642 , - 671 , - 132 , - 25 , - 350 , - 1107 , - 2296 , - 1613 , - 1362 , - 1543 , - 2156 , - 897 , - 70 , - 1979 , - 2016 , - 181 , - 1082 , - 111 , - 1876 , - 1769 , - 2094 , - 547 , - 1736 , - 1053 , - 802 , - 983 , - 1596 , - 337 , - 1814 , - 1419 , - 1456 , - 1925 , - 522 , - 1855 , - 1316 , - 1209 , - 1534 , - 2291 , - 1176 , - 493 , - 242 , - 423 , - 1036 , - 2081 , - 1254 , - 859 , - 896 , - 1365 , - 2266 , - 1295 , - 756 , - 649 , - 974 , - 1731 , - 616 , - 2237 , - 1986 , - 2167 , - 476 , - 1521 , - 694 , - 299 , - 336 , - 805 , - 1706 , - 735 , - 196 , - 89 , - 414 , - 1171 , - 56 , - 1677 , - 1426 , - 1607 , - 2220 , - 961 , - 134 , - 2043 , - 2080 , - 245 , - 1146 , - 175 , - 1940 , - 1833 , - 2158 , - 611 , - 1800 , - 1117 , - 866 , - 1047 , - 1660 , - 401 , - 1878 , - 1483 , - 1520 , - 1989 , - 586 , - 1919 , - 1380 , - 1273 , - 1598 , - 51 , - 1240 , - 557 , - 306 , - 487 , - 1100 , - 2145 , - 1318 , - 923 , - 960 , - 1429 , - 26 , - 1359 , - 820 , - 713 , - 1038 , - 1795 , - 680 , - 2301 , - 2050 , - 2231 , - 540 , - 1585 , - 758 , - 363 , - 400 , - 869 , - 1770 , - 799 , - 260 , - 153 , - 478 , - 1235 , - 120 , - 1741 , - 1490 , - 1671 , - 2284 , - 1025 , - 198 , - 2107 , - 2144 , - 309 , - 1210 , - 239 , - 2004 , - 1897 , - 2222 , - 675 , - 1864 , - 1181 , - 930 , - 1111 , - 1724 , - 465 , - 1942 , - 1547 , - 1584 , - 2053 , - 650 , - 1983 , - 1444 , - 1337 , - 1662 , - 115 , - 1304 , - 621 , - 370 , - 551 , - 1164 , - 2209 , - 1382 , - 987 , - 1024 , - 1493 , - 90 , - 1423 , - 884 , - 777 , - 1102 , - 1859 , - 744 , - 61 , - 2114 , - 2295 , - 604 , - 1649 , - 822 , - 427 , - 464 , - 933 , - 1834 , - 863 , - 324 , - 217 , - 542 , - 1299 , - 184 , - 1805 , - 1554 , - 1735 , - 44 , - 1089 , - 262 , - 2171 , - 2208 , - 373 , - 1274 , - 303 , - 2068 , - 1961 , - 2286 , - 739 , - 1928 , - 1245 , - 994 , - 1175 , - 1788 , - 529 , - 2006 , - 1611 , - 1648 , - 2117 , - 714 , - 2047 , - 1508 , - 1401 , - 1726 , - 179 , - 1368 , - 685 , - 434 , - 615 , - 1228 , - 2273 , - 1446 , - 1051 , - 1088 , - 1557 , - 154 , - 1487 , - 948 , - 841 , - 1166 , - 1923 , - 808 , - 125 , - 2178 , - 55 , - 668 , - 1713 , - 886 , - 491 , - 528 , - 997 , - 1898 , - 927 , - 388 , - 281 , - 606 , - 1363 , - 248 , - 1869 , - 1618 , - 1799 , - 108 , - 1153 , - 326 , - 2235 , - 2272 , - 437 , - 1338 , - 367 , - 2132 , - 2025 , - 46 , - 803 , - 1992 , - 1309 , - 1058 , - 1239 , - 1852 , - 593 , - 2070 , - 1675 , - 1712 , - 2181 , - 778 , - 2111 , - 1572 , - 1465 , - 1790 , - 243 , - 1432 , - 749 , - 498 , - 679 , - 1292 , - 33 , - 1510 , - 1115 , - 1152 , - 1621 , - 218 , - 1551 , - 1012 , - 905 , - 1230 , - 1987 , - 872 , - 189 , - 2242 , - 119 , - 732 , - 1777 , - 950 , - 555 , - 592 , - 1061 , - 1962 , - 991 , - 452 , - 345 , - 670 , - 1427 , - 312 , - 1933 , - 1682 , - 1863 , - 172 , - 1217 , - 390 , - 2299 , - 32 , - 501 , - 1402 , - 431 , - 2196 , - 2089 , - 110 , - 867 , - 2056 , - 1373 , - 1122 , - 1303 , - 1916 , - 657 , - 2134 , - 1739 , - 1776 , - 2245 , - 842 , - 2175 , - 1636 , - 1529 , - 1854 , - 307 , - 1496 , - 813 , - 562 , - 743 , - 1356 , - 97 , - 1574 , - 1179 , - 1216 , - 1685 , - 282 , - 1615 , - 1076 , - 969 , - 1294 , - 2051 , - 936 , - 253 , - 2 , - 183 , - 796 , - 1841 , - 1014 , - 619 , - 656 , - 1125 , - 2026 , - 1055 , - 516 , - 409 , - 734 , - 1491 , - 376 , - 1997 , - 1746 , - 1927 , - 236 , - 1281 , - 454 , - 59 , - 96 , - 565 , - 1466 , - 495 , - 2260 , - 2153 , - 174 , - 931 , - 2120 , - 1437 , - 1186 , - 1367 , - 1980 , - 721 , - 2198 , - 1803 , - 1840 , - 5 , - 906 , - 2239 , - 1700 , - 1593 , - 1918 , - 371 , - 1560 , - 877 , - 626 , - 807 , - 1420 , - 161 , - 1638 , - 1243 , - 1280 , - 1749 , - 346 , - 1679 , - 1140 , - 1033 , - 1358 , - 2115 , - 1000 , - 317 , - 66 , - 247 , - 860 , - 1905 , - 1078 , - 683 , - 720 , - 1189 , - 2090 , - 1119 , - 580 , - 473 , - 798 , - 1555 , - 440 , - 2061 , - 1810 , - 1991 , - 300 , - 1345 , - 518 , - 123 , - 160 , - 629 , - 1530 , - 559 , - 20 , - 2217 , - 238 , - 995 , - 2184 , - 1501 , - 1250 , - 1431 , - 2044 , - 785 , - 2262 , - 1867 , - 1904 , - 69 , - 970 , - 2303 , - 1764 , - 1657 , - 1982 , - 435 , - 1624 , - 941 , - 690 , - 871 , - 1484 , - 225 , - 1702 , - 1307 , - 1344 , - 1813 , - 410 , - 1743 , - 1204 , - 1097 , - 1422 , - 2179 , - 1064 , - 381 , - 130 , - 311 , - 924 , - 1969 , - 1142 , - 747 , - 784 , - 1253 , - 2154 , - 1183 , - 644 , - 537 , - 862 , - 1619 , - 504 , - 2125 , - 1874 , - 2055 , - 364 , - 1409 , - 582 , - 187 , - 224 , - 693 , - 1594 , - 623 , - 84 , - 2281 , - 302 , - 1059 , - 2248 , - 1565 , - 1314 , - 1495 , - 2108 , - 849 , - 22 , - 1931 , - 1968 , - 133 , - 1034 , - 63 , - 1828 , - 1721 , - 2046 , - 499 , - 1688 , - 1005 , - 754 , - 935 , - 1548 , - 289 , - 1766 , - 1371 , - 1408 , - 1877 , - 474 , - 1807 , - 1268 , - 1161 , - 1486 , - 2243 , - 1128 , - 445 , - 194 , - 375 , - 988 , - 2033 , - 1206 , - 811 , - 848 , - 1317 , - 2218 , - 1247 , - 708 , - 601 , - 926 , - 1683 , - 568 , - 2189 , - 1938 , - 2119 , - 428 , - 1473 , - 646 , - 251 , - 288 , - 757 , - 1658 , - 687 , - 148 , - 41 , - 366 , - 1123 , - 8 , - 1629 , - 1378 , - 1559 , - 2172 , - 913 , - 86 , - 1995 , - 2032 , - 197 , - 1098 , - 127 , - 1892 , - 1785 , - 2110 , - 563 , - 1752 , - 1069 , - 818 , - 999 , - 1612 , - 353 , - 1830 , - 1435 , - 1472 , - 1941 , - 538 , - 1871 , - 1332 , - 1225 , - 1550 , - 3 , - 1192 , - 509 , - 258 , - 439 , - 1052 , - 2097 , - 1270 , - 875 , - 912 , - 1381 , - 2282 , - 1311 , - 772 , - 665 , - 990 , - 1747 , - 632 , - 2253 , - 2002 , - 2183 , - 492 , - 1537 , - 710 , - 315 , - 352 , - 821 , - 1722 , - 751 , - 212 , - 105 , - 430 , - 1187 , - 72 , - 1693 , - 1442 , - 1623 , - 2236 , - 977 , - 150 , - 2059 , - 2096 , - 261 , - 1162 , - 191 , - 1956 , - 1849 , - 2174 , - 627 , - 1816 , - 1133 , - 882 , - 1063 , - 1676 , - 417 , - 1894 , - 1499 , - 1536 , - 2005 , - 602 , - 1935 , - 1396 , - 1289 , - 1614 , - 67 , - 1256 , - 573 , - 322 , - 503 , - 1116 , - 2161 , - 1334 , - 939 , - 976 , - 1445 , - 42 , - 1375 , - 836 , - 729 , - 1054 , - 1811 , - 696 , - 13 , - 2066 , - 2247 , - 556 , - 1601 , - 774 , - 379 , - 416 , - 885 , - 1786 , - 815 , - 276 , - 169 , - 494 , - 1251 , - 136 , - 1757 , - 1506 , - 1687 , - 2300 , - 1041 , - 214 , - 2123 , - 2160 , - 325 , - 1226 , - 255 , - 2020 , - 1913 , - 2238 , - 691 , - 1880 , - 1197 , - 946 , - 1127 , - 1740 , - 481 , - 1958 , - 1563 , - 1600 , - 2069 , - 666 , - 1999 , - 1460 , - 1353 , - 1678 , - 131 , - 1320 , - 637 , - 386 , - 567 , - 1180 , - 2225 , - 1398 , - 1003 , - 1040 , - 1509 , - 106 , - 1439 , - 900 , - 793 , - 1118 , - 1875 , - 760 , - 77 , - 2130 , - 7 , - 620 , - 1665 , - 838 , - 443 , - 480 , - 949 , - 1850 , - 879 , - 340 , - 233 , - 558 , - 1315 , - 200 , - 1821 , - 1570 , - 1751 , - 60 , - 1105 , - 278 , - 2187 , - 2224 , - 389 , - 1290 , - 319 , - 2084 , - 1977 , - 2302 , - 755 , - 1944 , - 1261 , - 1010 , - 1191 , - 1804 , - 545 , - 2022 , - 1627 , - 1664 , - 2133 , - 730 , - 2063 , - 1524 , - 1417 , - 1742 , - 195 , - 1384 , - 701 , - 450 , - 631 , - 1244 , - 2289 , - 1462 , - 1067 , - 1104 , - 1573 , - 170 , - 1503 , - 964 , - 857 , - 1182 , - 1939 , - 824 , - 141 , - 2194 , - 71 , - 684 , - 1729 , - 902 , - 507 , - 544 , - 1013 , - 1914 , - 943 , - 404 , - 297 , - 622 , - 1379 , - 264 , - 1885 , - 1634 , - 1815 , - 124 , - 1169 , - 342 , - 2251 , - 2288 , - 453 , - 1354 , - 383 , - 2148 , - 2041 , - 62 , - 819 , - 2008 , - 1325 , - 1074 , - 1255 , - 1868 , - 609 , - 2086 , - 1691 , - 1728 , - 2197 , - 794 , - 2127 , - 1588 , - 1481 , - 1806 , - 259 , - 1448 , - 765 , - 514 , - 695 , - 1308 , - 49 , - 1526 , - 1131 , - 1168 , - 1637 , - 234 , - 1567 , - 1028 , - 921 , - 1246 , - 2003 , - 888 , - 205 , - 2258 , - 135 , - 748 , - 1793 , - 966 , - 571 , - 608 , - 1077 , - 1978 , - 1007 , - 468 , - 361 , - 686 , - 1443 , - 328 , - 1949 , - 1698 , - 1879 , - 188 , - 1233 , - 406 , - 11 , - 48 , - 517 , - 1418 , - 447 , - 2212 , - 2105 , - 126 , - 883 , - 2072 , - 1389 , - 1138 , - 1319 , - 1932 , - 673 , - 2150 , - 1755 , - 1792 , - 2261 , - 858 , - 2191 , - 1652 , - 1545 , - 1870 , - 323 , - 1512 , - 829 , - 578 , - 759 , - 1372 , - 113 , - 1590 , - 1195 , - 1232 , - 1701 , - 298 , - 1631 , - 1092 , - 985 , - 1310 , - 2067 , - 952 , - 269 , - 18 , - 199 , - 812 , - 1857 , - 1030 , - 635 , - 672 , - 1141 , - 2042 , - 1071 , - 532 , - 425 , - 750 , - 1507 , - 392 , - 2013 , - 1762 , - 1943 , - 252 , - 1297 , - 470 , - 75 , - 112 , - 581 , - 1482 , - 511 , - 2276 , - 2169 , - 190 , - 947 , - 2136 , - 1453 , - 1202 , - 1383 , - 1996 , - 737 , - 2214 , - 1819 , - 1856 , - 21 , - 922 , - 2255 , - 1716 , - 1609 , - 1934 , - 387 , - 1576 , - 893 , - 642 , - 823 , - 1436 , - 177 , - 1654 , - 1259 , - 1296 , - 1765 , - 362 , - 1695 , - 1156 , - 1049 , - 1374 , - 2131 , - 1016 , - 333 , - 82 , - 263 , - 876 , - 1921 , - 1094 , - 699 , - 736 , - 1205 , - 2106 , - 1135 , - 596 , - 489 , - 814 , - 1571 , - 456 , - 2077 , - 1826 , - 2007 , - 316 , - 1361 , - 534 , - 139 , - 176 , - 645 , - 1546 , - 575 , - 36 , - 2233 , - 254 , - 1011 , - 2200 , - 1517 , - 1266 , - 1447 , - 2060 , - 801 , - 2278 , - 1883 , - 1920 , - 85 , - 986 , - 15 , - 1780 , - 1673 , - 1998 , - 451 , - 1640 , - 957 , - 706 , - 887 , - 1500 , - 241 , - 1718 , - 1323 , - 1360 , - 1829 , - 426 , - 1759 , - 1220 , - 1113 , - 1438 , - 2195 , - 1080 , - 397 , - 146 , - 327 , - 940 , - 1985 , - 1158 , - 763 , - 800 , - 1269 , - 2170 , - 1199 , - 660 , - 553 , - 878 , - 1635 , - 520 , - 2141 , - 1890 , - 2071 , - 380 , - 1425 , - 598 , - 203 , - 240 , - 709 , - 1610 , - 639 , - 100 , - 2297 , - 318 , - 1075 , - 2264 , - 1581 , - 1330 , - 1511 , - 2124 , - 865 , - 38 , - 1947 , - 1984 , - 149 , - 1050 , - 79 , - 1844 , - 1737 , - 2062 , - 515 , - 1704 , - 1021 , - 770 , - 951 , - 1564 , - 305 , - 1782 , - 1387 , - 1424 , - 1893 , - 490 , - 1823 , - 1284 , - 1177 , - 1502 , - 2259 , - 1144 , - 461 , - 210 , - 391 , - 1004 , - 2049 , - 1222 , - 827 , - 864 , - 1333 , - 2234 , - 1263 , - 724 , - 617 , - 942 , - 1699 , - 584 , - 2205 , - 1954 , - 2135 , - 444 , - 1489 , - 662 , - 267 , - 304 , - 773 , - 1674 , - 703 , - 164 , - 57 , - 382 , - 1139 , - 24 , - 1645 , - 1394 , - 1575 , - 2188 , - 929 , - 102 , - 2011 , - 2048 , - 213 , - 1114 , - 143 , - 1908 , - 1801 , - 2126 , - 579 , - 1768 , - 1085 , - 834 , - 1015 , - 1628 , - 369 , - 1846 , - 1451 , - 1488 , - 1957 , - 554 , - 1887 , - 1348 , - 1241 , - 1566 , - 19 , - 1208 , - 525 , - 274 , - 455 , - 1068 , - 2113 , - 1286 , - 891 , - 928 , - 1397 , - 2298 , - 1327 , - 788 , - 681 , - 1006 , - 1763 , - 648 , - 2269 , - 2018 , - 2199 , - 508 , - 1553 , - 726 , - 331 , - 368 , - 837 , - 1738 , - 767 , - 228 , - 121 , - 446 , - 1203 , - 88 , - 1709 , - 1458 , - 1639 , - 2252 , - 993 , - 166 , - 2075 , - 2112 , - 277 , - 1178 , - 207 , - 1972 , - 1865 , - 2190 , - 643 , - 1832 , - 1149 , - 898 , - 1079 , - 1692 , - 433 , - 1910 , - 1515 , - 1552 , - 2021 , - 618 , - 1951 , - 1412 , - 1305 , - 1630 , - 83 , - 1272 , - 589 , - 338 , - 519 , - 1132 , - 2177 , - 1350 , - 955 , - 992 , - 1461 , - 58 , - 1391 , - 852 , - 745 , - 1070 , - 1827 , - 712 , - 29 , - 2082 , - 2263 , - 572 , - 1617 , - 790 , - 395 , - 432 , - 901 , - 1802 , - 831 , - 292 , - 185 , - 510 , - 1267 , - 152 , - 1773 , - 1522 , - 1703 , - 12 , - 1057 , - 230 , - 2139 , - 2176 , - 341 , - 1242 , - 271 , - 2036 , - 1929 , - 2254 , - 707 , - 1896 , - 1213 , - 962 , - 1143 , - 1756 , - 497 , - 1974 , - 1579 , - 1616 , - 2085 , - 682 , - 2015 , - 1476 , - 1369 , - 1694 , - 147 , - 1336 , - 653 , - 402 , - 583 , - 1196 , - 2241 , - 1414 , - 1019 , - 1056 , - 1525 , - 122 , - 1455 , - 916 , - 809 , - 1134 , - 1891 , - 776 , - 93 , - 2146 , - 23 , - 636 , - 1681 , - 854 , - 459 , - 496 , - 965 , - 1866 , - 895 , - 356 , - 249 , - 574 , - 1331 , - 216 , - 1837 , - 1586 , - 1767 , - 76 , - 1121 , - 294 , - 2203 , - 2240 , - 405 , - 1306 , - 335 , - 2100 , - 1993 , - 14 , - 771 , - 1960 , - 1277 , - 1026 , - 1207 , - 1820 , - 561 , - 2038 , - 1643 , - 1680 , - 2149 , - 746 , - 2079 , - 1540 , - 1433 , - 1758 , - 211 , - 1400 , - 717 , - 466 , - 647 , - 1260 , - 1 , - 1478 , - 1083 , - 1120 , - 1589 , - 186 , - 1519 , - 980 , - 873 , - 1198 , - 1955 , - 840 , - 157 , - 2210 , - 87 , - 700 , - 1745 , - 918 , - 523 , - 560 , - 1029 , - 1930 , - 959 , - 420 , - 313 , - 638 , - 1395 , - 280 , - 1901 , - 1650 , - 1831 , - 140 , - 1185 , - 358 , - 2267 , - 0 , - 811 , - 142 , - 361 , - 1468 , - 1095 , - 1610 , - 645 , - 568 , - 1379 , - 710 , - 929 , - 2036 , - 1663 , - 2178 , - 1213 , - 1136 , - 1947 , - 1278 , - 1497 , - 236 , - 2231 , - 378 , - 1781 , - 1704 , - 147 , - 1846 , - 2065 , - 804 , - 431 , - 946 , - 2349 , - 2272 , - 715 , - 46 , - 265 , - 1372 , - 999 , - 1514 , - 549 , - 472 , - 1283 , - 614 , - 833 , - 1940 , - 1567 , - 2082 , - 1117 , - 1040 , - 1851 , - 1182 , - 1401 , - 140 , - 2135 , - 282 , - 1685 , - 1608 , - 51 , - 1750 , - 1969 , - 708 , - 335 , - 850 , - 2253 , - 2176 , - 619 , - 2318 , - 169 , - 1276 , - 903 , - 1418 , - 453 , - 376 , - 1187 , - 518 , - 737 , - 1844 , - 1471 , - 1986 , - 1021 , - 944 , - 1755 , - 1086 , - 1305 , - 44 , - 2039 , - 186 , - 1589 , - 1512 , - 2323 , - 1654 , - 1873 , - 612 , - 239 , - 754 , - 2157 , - 2080 , - 523 , - 2222 , - 73 , - 1180 , - 807 , - 1322 , - 357 , - 280 , - 1091 , - 422 , - 641 , - 1748 , - 1375 , - 1890 , - 925 , - 848 , - 1659 , - 990 , - 1209 , - 2316 , - 1943 , - 90 , - 1493 , - 1416 , - 2227 , - 1558 , - 1777 , - 516 , - 143 , - 658 , - 2061 , - 1984 , - 427 , - 2126 , - 2345 , - 1084 , - 711 , - 1226 , - 261 , - 184 , - 995 , - 326 , - 545 , - 1652 , - 1279 , - 1794 , - 829 , - 752 , - 1563 , - 894 , - 1113 , - 2220 , - 1847 , - 2362 , - 1397 , - 1320 , - 2131 , - 1462 , - 1681 , - 420 , - 47 , - 562 , - 1965 , - 1888 , - 331 , - 2030 , - 2249 , - 988 , - 615 , - 1130 , - 165 , - 88 , - 899 , - 230 , - 449 , - 1556 , - 1183 , - 1698 , - 733 , - 656 , - 1467 , - 798 , - 1017 , - 2124 , - 1751 , - 2266 , - 1301 , - 1224 , - 2035 , - 1366 , - 1585 , - 324 , - 2319 , - 466 , - 1869 , - 1792 , - 235 , - 1934 , - 2153 , - 892 , - 519 , - 1034 , - 69 , - 2360 , - 803 , - 134 , - 353 , - 1460 , - 1087 , - 1602 , - 637 , - 560 , - 1371 , - 702 , - 921 , - 2028 , - 1655 , - 2170 , - 1205 , - 1128 , - 1939 , - 1270 , - 1489 , - 228 , - 2223 , - 370 , - 1773 , - 1696 , - 139 , - 1838 , - 2057 , - 796 , - 423 , - 938 , - 2341 , - 2264 , - 707 , - 38 , - 257 , - 1364 , - 991 , - 1506 , - 541 , - 464 , - 1275 , - 606 , - 825 , - 1932 , - 1559 , - 2074 , - 1109 , - 1032 , - 1843 , - 1174 , - 1393 , - 132 , - 2127 , - 274 , - 1677 , - 1600 , - 43 , - 1742 , - 1961 , - 700 , - 327 , - 842 , - 2245 , - 2168 , - 611 , - 2310 , - 161 , - 1268 , - 895 , - 1410 , - 445 , - 368 , - 1179 , - 510 , - 729 , - 1836 , - 1463 , - 1978 , - 1013 , - 936 , - 1747 , - 1078 , - 1297 , - 36 , - 2031 , - 178 , - 1581 , - 1504 , - 2315 , - 1646 , - 1865 , - 604 , - 231 , - 746 , - 2149 , - 2072 , - 515 , - 2214 , - 65 , - 1172 , - 799 , - 1314 , - 349 , - 272 , - 1083 , - 414 , - 633 , - 1740 , - 1367 , - 1882 , - 917 , - 840 , - 1651 , - 982 , - 1201 , - 2308 , - 1935 , - 82 , - 1485 , - 1408 , - 2219 , - 1550 , - 1769 , - 508 , - 135 , - 650 , - 2053 , - 1976 , - 419 , - 2118 , - 2337 , - 1076 , - 703 , - 1218 , - 253 , - 176 , - 987 , - 318 , - 537 , - 1644 , - 1271 , - 1786 , - 821 , - 744 , - 1555 , - 886 , - 1105 , - 2212 , - 1839 , - 2354 , - 1389 , - 1312 , - 2123 , - 1454 , - 1673 , - 412 , - 39 , - 554 , - 1957 , - 1880 , - 323 , - 2022 , - 2241 , - 980 , - 607 , - 1122 , - 157 , - 80 , - 891 , - 222 , - 441 , - 1548 , - 1175 , - 1690 , - 725 , - 648 , - 1459 , - 790 , - 1009 , - 2116 , - 1743 , - 2258 , - 1293 , - 1216 , - 2027 , - 1358 , - 1577 , - 316 , - 2311 , - 458 , - 1861 , - 1784 , - 227 , - 1926 , - 2145 , - 884 , - 511 , - 1026 , - 61 , - 2352 , - 795 , - 126 , - 345 , - 1452 , - 1079 , - 1594 , - 629 , - 552 , - 1363 , - 694 , - 913 , - 2020 , - 1647 , - 2162 , - 1197 , - 1120 , - 1931 , - 1262 , - 1481 , - 220 , - 2215 , - 362 , - 1765 , - 1688 , - 131 , - 1830 , - 2049 , - 788 , - 415 , - 930 , - 2333 , - 2256 , - 699 , - 30 , - 249 , - 1356 , - 983 , - 1498 , - 533 , - 456 , - 1267 , - 598 , - 817 , - 1924 , - 1551 , - 2066 , - 1101 , - 1024 , - 1835 , - 1166 , - 1385 , - 124 , - 2119 , - 266 , - 1669 , - 1592 , - 35 , - 1734 , - 1953 , - 692 , - 319 , - 834 , - 2237 , - 2160 , - 603 , - 2302 , - 153 , - 1260 , - 887 , - 1402 , - 437 , - 360 , - 1171 , - 502 , - 721 , - 1828 , - 1455 , - 1970 , - 1005 , - 928 , - 1739 , - 1070 , - 1289 , - 28 , - 2023 , - 170 , - 1573 , - 1496 , - 2307 , - 1638 , - 1857 , - 596 , - 223 , - 738 , - 2141 , - 2064 , - 507 , - 2206 , - 57 , - 1164 , - 791 , - 1306 , - 341 , - 264 , - 1075 , - 406 , - 625 , - 1732 , - 1359 , - 1874 , - 909 , - 832 , - 1643 , - 974 , - 1193 , - 2300 , - 1927 , - 74 , - 1477 , - 1400 , - 2211 , - 1542 , - 1761 , - 500 , - 127 , - 642 , - 2045 , - 1968 , - 411 , - 2110 , - 2329 , - 1068 , - 695 , - 1210 , - 245 , - 168 , - 979 , - 310 , - 529 , - 1636 , - 1263 , - 1778 , - 813 , - 736 , - 1547 , - 878 , - 1097 , - 2204 , - 1831 , - 2346 , - 1381 , - 1304 , - 2115 , - 1446 , - 1665 , - 404 , - 31 , - 546 , - 1949 , - 1872 , - 315 , - 2014 , - 2233 , - 972 , - 599 , - 1114 , - 149 , - 72 , - 883 , - 214 , - 433 , - 1540 , - 1167 , - 1682 , - 717 , - 640 , - 1451 , - 782 , - 1001 , - 2108 , - 1735 , - 2250 , - 1285 , - 1208 , - 2019 , - 1350 , - 1569 , - 308 , - 2303 , - 450 , - 1853 , - 1776 , - 219 , - 1918 , - 2137 , - 876 , - 503 , - 1018 , - 53 , - 2344 , - 787 , - 118 , - 337 , - 1444 , - 1071 , - 1586 , - 621 , - 544 , - 1355 , - 686 , - 905 , - 2012 , - 1639 , - 2154 , - 1189 , - 1112 , - 1923 , - 1254 , - 1473 , - 212 , - 2207 , - 354 , - 1757 , - 1680 , - 123 , - 1822 , - 2041 , - 780 , - 407 , - 922 , - 2325 , - 2248 , - 691 , - 22 , - 241 , - 1348 , - 975 , - 1490 , - 525 , - 448 , - 1259 , - 590 , - 809 , - 1916 , - 1543 , - 2058 , - 1093 , - 1016 , - 1827 , - 1158 , - 1377 , - 116 , - 2111 , - 258 , - 1661 , - 1584 , - 27 , - 1726 , - 1945 , - 684 , - 311 , - 826 , - 2229 , - 2152 , - 595 , - 2294 , - 145 , - 1252 , - 879 , - 1394 , - 429 , - 352 , - 1163 , - 494 , - 713 , - 1820 , - 1447 , - 1962 , - 997 , - 920 , - 1731 , - 1062 , - 1281 , - 20 , - 2015 , - 162 , - 1565 , - 1488 , - 2299 , - 1630 , - 1849 , - 588 , - 215 , - 730 , - 2133 , - 2056 , - 499 , - 2198 , - 49 , - 1156 , - 783 , - 1298 , - 333 , - 256 , - 1067 , - 398 , - 617 , - 1724 , - 1351 , - 1866 , - 901 , - 824 , - 1635 , - 966 , - 1185 , - 2292 , - 1919 , - 66 , - 1469 , - 1392 , - 2203 , - 1534 , - 1753 , - 492 , - 119 , - 634 , - 2037 , - 1960 , - 403 , - 2102 , - 2321 , - 1060 , - 687 , - 1202 , - 237 , - 160 , - 971 , - 302 , - 521 , - 1628 , - 1255 , - 1770 , - 805 , - 728 , - 1539 , - 870 , - 1089 , - 2196 , - 1823 , - 2338 , - 1373 , - 1296 , - 2107 , - 1438 , - 1657 , - 396 , - 23 , - 538 , - 1941 , - 1864 , - 307 , - 2006 , - 2225 , - 964 , - 591 , - 1106 , - 141 , - 64 , - 875 , - 206 , - 425 , - 1532 , - 1159 , - 1674 , - 709 , - 632 , - 1443 , - 774 , - 993 , - 2100 , - 1727 , - 2242 , - 1277 , - 1200 , - 2011 , - 1342 , - 1561 , - 300 , - 2295 , - 442 , - 1845 , - 1768 , - 211 , - 1910 , - 2129 , - 868 , - 495 , - 1010 , - 45 , - 2336 , - 779 , - 110 , - 329 , - 1436 , - 1063 , - 1578 , - 613 , - 536 , - 1347 , - 678 , - 897 , - 2004 , - 1631 , - 2146 , - 1181 , - 1104 , - 1915 , - 1246 , - 1465 , - 204 , - 2199 , - 346 , - 1749 , - 1672 , - 115 , - 1814 , - 2033 , - 772 , - 399 , - 914 , - 2317 , - 2240 , - 683 , - 14 , - 233 , - 1340 , - 967 , - 1482 , - 517 , - 440 , - 1251 , - 582 , - 801 , - 1908 , - 1535 , - 2050 , - 1085 , - 1008 , - 1819 , - 1150 , - 1369 , - 108 , - 2103 , - 250 , - 1653 , - 1576 , - 19 , - 1718 , - 1937 , - 676 , - 303 , - 818 , - 2221 , - 2144 , - 587 , - 2286 , - 137 , - 1244 , - 871 , - 1386 , - 421 , - 344 , - 1155 , - 486 , - 705 , - 1812 , - 1439 , - 1954 , - 989 , - 912 , - 1723 , - 1054 , - 1273 , - 12 , - 2007 , - 154 , - 1557 , - 1480 , - 2291 , - 1622 , - 1841 , - 580 , - 207 , - 722 , - 2125 , - 2048 , - 491 , - 2190 , - 41 , - 1148 , - 775 , - 1290 , - 325 , - 248 , - 1059 , - 390 , - 609 , - 1716 , - 1343 , - 1858 , - 893 , - 816 , - 1627 , - 958 , - 1177 , - 2284 , - 1911 , - 58 , - 1461 , - 1384 , - 2195 , - 1526 , - 1745 , - 484 , - 111 , - 626 , - 2029 , - 1952 , - 395 , - 2094 , - 2313 , - 1052 , - 679 , - 1194 , - 229 , - 152 , - 963 , - 294 , - 513 , - 1620 , - 1247 , - 1762 , - 797 , - 720 , - 1531 , - 862 , - 1081 , - 2188 , - 1815 , - 2330 , - 1365 , - 1288 , - 2099 , - 1430 , - 1649 , - 388 , - 15 , - 530 , - 1933 , - 1856 , - 299 , - 1998 , - 2217 , - 956 , - 583 , - 1098 , - 133 , - 56 , - 867 , - 198 , - 417 , - 1524 , - 1151 , - 1666 , - 701 , - 624 , - 1435 , - 766 , - 985 , - 2092 , - 1719 , - 2234 , - 1269 , - 1192 , - 2003 , - 1334 , - 1553 , - 292 , - 2287 , - 434 , - 1837 , - 1760 , - 203 , - 1902 , - 2121 , - 860 , - 487 , - 1002 , - 37 , - 2328 , - 771 , - 102 , - 321 , - 1428 , - 1055 , - 1570 , - 605 , - 528 , - 1339 , - 670 , - 889 , - 1996 , - 1623 , - 2138 , - 1173 , - 1096 , - 1907 , - 1238 , - 1457 , - 196 , - 2191 , - 338 , - 1741 , - 1664 , - 107 , - 1806 , - 2025 , - 764 , - 391 , - 906 , - 2309 , - 2232 , - 675 , - 6 , - 225 , - 1332 , - 959 , - 1474 , - 509 , - 432 , - 1243 , - 574 , - 793 , - 1900 , - 1527 , - 2042 , - 1077 , - 1000 , - 1811 , - 1142 , - 1361 , - 100 , - 2095 , - 242 , - 1645 , - 1568 , - 11 , - 1710 , - 1929 , - 668 , - 295 , - 810 , - 2213 , - 2136 , - 579 , - 2278 , - 129 , - 1236 , - 863 , - 1378 , - 413 , - 336 , - 1147 , - 478 , - 697 , - 1804 , - 1431 , - 1946 , - 981 , - 904 , - 1715 , - 1046 , - 1265 , - 4 , - 1999 , - 146 , - 1549 , - 1472 , - 2283 , - 1614 , - 1833 , - 572 , - 199 , - 714 , - 2117 , - 2040 , - 483 , - 2182 , - 33 , - 1140 , - 767 , - 1282 , - 317 , - 240 , - 1051 , - 382 , - 601 , - 1708 , - 1335 , - 1850 , - 885 , - 808 , - 1619 , - 950 , - 1169 , - 2276 , - 1903 , - 50 , - 1453 , - 1376 , - 2187 , - 1518 , - 1737 , - 476 , - 103 , - 618 , - 2021 , - 1944 , - 387 , - 2086 , - 2305 , - 1044 , - 671 , - 1186 , - 221 , - 144 , - 955 , - 286 , - 505 , - 1612 , - 1239 , - 1754 , - 789 , - 712 , - 1523 , - 854 , - 1073 , - 2180 , - 1807 , - 2322 , - 1357 , - 1280 , - 2091 , - 1422 , - 1641 , - 380 , - 7 , - 522 , - 1925 , - 1848 , - 291 , - 1990 , - 2209 , - 948 , - 575 , - 1090 , - 125 , - 48 , - 859 , - 190 , - 409 , - 1516 , - 1143 , - 1658 , - 693 , - 616 , - 1427 , - 758 , - 977 , - 2084 , - 1711 , - 2226 , - 1261 , - 1184 , - 1995 , - 1326 , - 1545 , - 284 , - 2279 , - 426 , - 1829 , - 1752 , - 195 , - 1894 , - 2113 , - 852 , - 479 , - 994 , - 29 , - 2320 , - 763 , - 94 , - 313 , - 1420 , - 1047 , - 1562 , - 597 , - 520 , - 1331 , - 662 , - 881 , - 1988 , - 1615 , - 2130 , - 1165 , - 1088 , - 1899 , - 1230 , - 1449 , - 188 , - 2183 , - 330 , - 1733 , - 1656 , - 99 , - 1798 , - 2017 , - 756 , - 383 , - 898 , - 2301 , - 2224 , - 667 , - 2366 , - 217 , - 1324 , - 951 , - 1466 , - 501 , - 424 , - 1235 , - 566 , - 785 , - 1892 , - 1519 , - 2034 , - 1069 , - 992 , - 1803 , - 1134 , - 1353 , - 92 , - 2087 , - 234 , - 1637 , - 1560 , - 3 , - 1702 , - 1921 , - 660 , - 287 , - 802 , - 2205 , - 2128 , - 571 , - 2270 , - 121 , - 1228 , - 855 , - 1370 , - 405 , - 328 , - 1139 , - 470 , - 689 , - 1796 , - 1423 , - 1938 , - 973 , - 896 , - 1707 , - 1038 , - 1257 , - 2364 , - 1991 , - 138 , - 1541 , - 1464 , - 2275 , - 1606 , - 1825 , - 564 , - 191 , - 706 , - 2109 , - 2032 , - 475 , - 2174 , - 25 , - 1132 , - 759 , - 1274 , - 309 , - 232 , - 1043 , - 374 , - 593 , - 1700 , - 1327 , - 1842 , - 877 , - 800 , - 1611 , - 942 , - 1161 , - 2268 , - 1895 , - 42 , - 1445 , - 1368 , - 2179 , - 1510 , - 1729 , - 468 , - 95 , - 610 , - 2013 , - 1936 , - 379 , - 2078 , - 2297 , - 1036 , - 663 , - 1178 , - 213 , - 136 , - 947 , - 278 , - 497 , - 1604 , - 1231 , - 1746 , - 781 , - 704 , - 1515 , - 846 , - 1065 , - 2172 , - 1799 , - 2314 , - 1349 , - 1272 , - 2083 , - 1414 , - 1633 , - 372 , - 2367 , - 514 , - 1917 , - 1840 , - 283 , - 1982 , - 2201 , - 940 , - 567 , - 1082 , - 117 , - 40 , - 851 , - 182 , - 401 , - 1508 , - 1135 , - 1650 , - 685 , - 608 , - 1419 , - 750 , - 969 , - 2076 , - 1703 , - 2218 , - 1253 , - 1176 , - 1987 , - 1318 , - 1537 , - 276 , - 2271 , - 418 , - 1821 , - 1744 , - 187 , - 1886 , - 2105 , - 844 , - 471 , - 986 , - 21 , - 2312 , - 755 , - 86 , - 305 , - 1412 , - 1039 , - 1554 , - 589 , - 512 , - 1323 , - 654 , - 873 , - 1980 , - 1607 , - 2122 , - 1157 , - 1080 , - 1891 , - 1222 , - 1441 , - 180 , - 2175 , - 322 , - 1725 , - 1648 , - 91 , - 1790 , - 2009 , - 748 , - 375 , - 890 , - 2293 , - 2216 , - 659 , - 2358 , - 209 , - 1316 , - 943 , - 1458 , - 493 , - 416 , - 1227 , - 558 , - 777 , - 1884 , - 1511 , - 2026 , - 1061 , - 984 , - 1795 , - 1126 , - 1345 , - 84 , - 2079 , - 226 , - 1629 , - 1552 , - 2363 , - 1694 , - 1913 , - 652 , - 279 , - 794 , - 2197 , - 2120 , - 563 , - 2262 , - 113 , - 1220 , - 847 , - 1362 , - 397 , - 320 , - 1131 , - 462 , - 681 , - 1788 , - 1415 , - 1930 , - 965 , - 888 , - 1699 , - 1030 , - 1249 , - 2356 , - 1983 , - 130 , - 1533 , - 1456 , - 2267 , - 1598 , - 1817 , - 556 , - 183 , - 698 , - 2101 , - 2024 , - 467 , - 2166 , - 17 , - 1124 , - 751 , - 1266 , - 301 , - 224 , - 1035 , - 366 , - 585 , - 1692 , - 1319 , - 1834 , - 869 , - 792 , - 1603 , - 934 , - 1153 , - 2260 , - 1887 , - 34 , - 1437 , - 1360 , - 2171 , - 1502 , - 1721 , - 460 , - 87 , - 602 , - 2005 , - 1928 , - 371 , - 2070 , - 2289 , - 1028 , - 655 , - 1170 , - 205 , - 128 , - 939 , - 270 , - 489 , - 1596 , - 1223 , - 1738 , - 773 , - 696 , - 1507 , - 838 , - 1057 , - 2164 , - 1791 , - 2306 , - 1341 , - 1264 , - 2075 , - 1406 , - 1625 , - 364 , - 2359 , - 506 , - 1909 , - 1832 , - 275 , - 1974 , - 2193 , - 932 , - 559 , - 1074 , - 109 , - 32 , - 843 , - 174 , - 393 , - 1500 , - 1127 , - 1642 , - 677 , - 600 , - 1411 , - 742 , - 961 , - 2068 , - 1695 , - 2210 , - 1245 , - 1168 , - 1979 , - 1310 , - 1529 , - 268 , - 2263 , - 410 , - 1813 , - 1736 , - 179 , - 1878 , - 2097 , - 836 , - 463 , - 978 , - 13 , - 2304 , - 747 , - 78 , - 297 , - 1404 , - 1031 , - 1546 , - 581 , - 504 , - 1315 , - 646 , - 865 , - 1972 , - 1599 , - 2114 , - 1149 , - 1072 , - 1883 , - 1214 , - 1433 , - 172 , - 2167 , - 314 , - 1717 , - 1640 , - 83 , - 1782 , - 2001 , - 740 , - 367 , - 882 , - 2285 , - 2208 , - 651 , - 2350 , - 201 , - 1308 , - 935 , - 1450 , - 485 , - 408 , - 1219 , - 550 , - 769 , - 1876 , - 1503 , - 2018 , - 1053 , - 976 , - 1787 , - 1118 , - 1337 , - 76 , - 2071 , - 218 , - 1621 , - 1544 , - 2355 , - 1686 , - 1905 , - 644 , - 271 , - 786 , - 2189 , - 2112 , - 555 , - 2254 , - 105 , - 1212 , - 839 , - 1354 , - 389 , - 312 , - 1123 , - 454 , - 673 , - 1780 , - 1407 , - 1922 , - 957 , - 880 , - 1691 , - 1022 , - 1241 , - 2348 , - 1975 , - 122 , - 1525 , - 1448 , - 2259 , - 1590 , - 1809 , - 548 , - 175 , - 690 , - 2093 , - 2016 , - 459 , - 2158 , - 9 , - 1116 , - 743 , - 1258 , - 293 , - 216 , - 1027 , - 358 , - 577 , - 1684 , - 1311 , - 1826 , - 861 , - 784 , - 1595 , - 926 , - 1145 , - 2252 , - 1879 , - 26 , - 1429 , - 1352 , - 2163 , - 1494 , - 1713 , - 452 , - 79 , - 594 , - 1997 , - 1920 , - 363 , - 2062 , - 2281 , - 1020 , - 647 , - 1162 , - 197 , - 120 , - 931 , - 262 , - 481 , - 1588 , - 1215 , - 1730 , - 765 , - 688 , - 1499 , - 830 , - 1049 , - 2156 , - 1783 , - 2298 , - 1333 , - 1256 , - 2067 , - 1398 , - 1617 , - 356 , - 2351 , - 498 , - 1901 , - 1824 , - 267 , - 1966 , - 2185 , - 924 , - 551 , - 1066 , - 101 , - 24 , - 835 , - 166 , - 385 , - 1492 , - 1119 , - 1634 , - 669 , - 592 , - 1403 , - 734 , - 953 , - 2060 , - 1687 , - 2202 , - 1237 , - 1160 , - 1971 , - 1302 , - 1521 , - 260 , - 2255 , - 402 , - 1805 , - 1728 , - 171 , - 1870 , - 2089 , - 828 , - 455 , - 970 , - 5 , - 2296 , - 739 , - 70 , - 289 , - 1396 , - 1023 , - 1538 , - 573 , - 496 , - 1307 , - 638 , - 857 , - 1964 , - 1591 , - 2106 , - 1141 , - 1064 , - 1875 , - 1206 , - 1425 , - 164 , - 2159 , - 306 , - 1709 , - 1632 , - 75 , - 1774 , - 1993 , - 732 , - 359 , - 874 , - 2277 , - 2200 , - 643 , - 2342 , - 193 , - 1300 , - 927 , - 1442 , - 477 , - 400 , - 1211 , - 542 , - 761 , - 1868 , - 1495 , - 2010 , - 1045 , - 968 , - 1779 , - 1110 , - 1329 , - 68 , - 2063 , - 210 , - 1613 , - 1536 , - 2347 , - 1678 , - 1897 , - 636 , - 263 , - 778 , - 2181 , - 2104 , - 547 , - 2246 , - 97 , - 1204 , - 831 , - 1346 , - 381 , - 304 , - 1115 , - 446 , - 665 , - 1772 , - 1399 , - 1914 , - 949 , - 872 , - 1683 , - 1014 , - 1233 , - 2340 , - 1967 , - 114 , - 1517 , - 1440 , - 2251 , - 1582 , - 1801 , - 540 , - 167 , - 682 , - 2085 , - 2008 , - 451 , - 2150 , - 1 , - 1108 , - 735 , - 1250 , - 285 , - 208 , - 1019 , - 350 , - 569 , - 1676 , - 1303 , - 1818 , - 853 , - 776 , - 1587 , - 918 , - 1137 , - 2244 , - 1871 , - 18 , - 1421 , - 1344 , - 2155 , - 1486 , - 1705 , - 444 , - 71 , - 586 , - 1989 , - 1912 , - 355 , - 2054 , - 2273 , - 1012 , - 639 , - 1154 , - 189 , - 112 , - 923 , - 254 , - 473 , - 1580 , - 1207 , - 1722 , - 757 , - 680 , - 1491 , - 822 , - 1041 , - 2148 , - 1775 , - 2290 , - 1325 , - 1248 , - 2059 , - 1390 , - 1609 , - 348 , - 2343 , - 490 , - 1893 , - 1816 , - 259 , - 1958 , - 2177 , - 916 , - 543 , - 1058 , - 93 , - 16 , - 827 , - 158 , - 377 , - 1484 , - 1111 , - 1626 , - 661 , - 584 , - 1395 , - 726 , - 945 , - 2052 , - 1679 , - 2194 , - 1229 , - 1152 , - 1963 , - 1294 , - 1513 , - 252 , - 2247 , - 394 , - 1797 , - 1720 , - 163 , - 1862 , - 2081 , - 820 , - 447 , - 962 , - 2365 , - 2288 , - 731 , - 62 , - 281 , - 1388 , - 1015 , - 1530 , - 565 , - 488 , - 1299 , - 630 , - 849 , - 1956 , - 1583 , - 2098 , - 1133 , - 1056 , - 1867 , - 1198 , - 1417 , - 156 , - 2151 , - 298 , - 1701 , - 1624 , - 67 , - 1766 , - 1985 , - 724 , - 351 , - 866 , - 2269 , - 2192 , - 635 , - 2334 , - 185 , - 1292 , - 919 , - 1434 , - 469 , - 392 , - 1203 , - 534 , - 753 , - 1860 , - 1487 , - 2002 , - 1037 , - 960 , - 1771 , - 1102 , - 1321 , - 60 , - 2055 , - 202 , - 1605 , - 1528 , - 2339 , - 1670 , - 1889 , - 628 , - 255 , - 770 , - 2173 , - 2096 , - 539 , - 2238 , - 89 , - 1196 , - 823 , - 1338 , - 373 , - 296 , - 1107 , - 438 , - 657 , - 1764 , - 1391 , - 1906 , - 941 , - 864 , - 1675 , - 1006 , - 1225 , - 2332 , - 1959 , - 106 , - 1509 , - 1432 , - 2243 , - 1574 , - 1793 , - 532 , - 159 , - 674 , - 2077 , - 2000 , - 443 , - 2142 , - 2361 , - 1100 , - 727 , - 1242 , - 277 , - 200 , - 1011 , - 342 , - 561 , - 1668 , - 1295 , - 1810 , - 845 , - 768 , - 1579 , - 910 , - 1129 , - 2236 , - 1863 , - 10 , - 1413 , - 1336 , - 2147 , - 1478 , - 1697 , - 436 , - 63 , - 578 , - 1981 , - 1904 , - 347 , - 2046 , - 2265 , - 1004 , - 631 , - 1146 , - 181 , - 104 , - 915 , - 246 , - 465 , - 1572 , - 1199 , - 1714 , - 749 , - 672 , - 1483 , - 814 , - 1033 , - 2140 , - 1767 , - 2282 , - 1317 , - 1240 , - 2051 , - 1382 , - 1601 , - 340 , - 2335 , - 482 , - 1885 , - 1808 , - 251 , - 1950 , - 2169 , - 908 , - 535 , - 1050 , - 85 , - 8 , - 819 , - 150 , - 369 , - 1476 , - 1103 , - 1618 , - 653 , - 576 , - 1387 , - 718 , - 937 , - 2044 , - 1671 , - 2186 , - 1221 , - 1144 , - 1955 , - 1286 , - 1505 , - 244 , - 2239 , - 386 , - 1789 , - 1712 , - 155 , - 1854 , - 2073 , - 812 , - 439 , - 954 , - 2357 , - 2280 , - 723 , - 54 , - 273 , - 1380 , - 1007 , - 1522 , - 557 , - 480 , - 1291 , - 622 , - 841 , - 1948 , - 1575 , - 2090 , - 1125 , - 1048 , - 1859 , - 1190 , - 1409 , - 148 , - 2143 , - 290 , - 1693 , - 1616 , - 59 , - 1758 , - 1977 , - 716 , - 343 , - 858 , - 2261 , - 2184 , - 627 , - 2326 , - 177 , - 1284 , - 911 , - 1426 , - 461 , - 384 , - 1195 , - 526 , - 745 , - 1852 , - 1479 , - 1994 , - 1029 , - 952 , - 1763 , - 1094 , - 1313 , - 52 , - 2047 , - 194 , - 1597 , - 1520 , - 2331 , - 1662 , - 1881 , - 620 , - 247 , - 762 , - 2165 , - 2088 , - 531 , - 2230 , - 81 , - 1188 , - 815 , - 1330 , - 365 , - 288 , - 1099 , - 430 , - 649 , - 1756 , - 1383 , - 1898 , - 933 , - 856 , - 1667 , - 998 , - 1217 , - 2324 , - 1951 , - 98 , - 1501 , - 1424 , - 2235 , - 1566 , - 1785 , - 524 , - 151 , - 666 , - 2069 , - 1992 , - 435 , - 2134 , - 2353 , - 1092 , - 719 , - 1234 , - 269 , - 192 , - 1003 , - 334 , - 553 , - 1660 , - 1287 , - 1802 , - 837 , - 760 , - 1571 , - 902 , - 1121 , - 2228 , - 1855 , - 2 , - 1405 , - 1328 , - 2139 , - 1470 , - 1689 , - 428 , - 55 , - 570 , - 1973 , - 1896 , - 339 , - 2038 , - 2257 , - 996 , - 623 , - 1138 , - 173 , - 96 , - 907 , - 238 , - 457 , - 1564 , - 1191 , - 1706 , - 741 , - 664 , - 1475 , - 806 , - 1025 , - 2132 , - 1759 , - 2274 , - 1309 , - 1232 , - 2043 , - 1374 , - 1593 , - 332 , - 2327 , - 474 , - 1877 , - 1800 , - 243 , - 1942 , - 2161 , - 900 , - 527 , - 1042 , - 77 , - 0 , - 721 , - 2354 , - 35 , - 1060 , - 565 , - 982 , - 2311 , - 2120 , - 409 , - 2042 , - 2155 , - 748 , - 253 , - 670 , - 1999 , - 1808 , - 97 , - 1730 , - 1843 , - 436 , - 2373 , - 358 , - 1687 , - 1496 , - 2217 , - 1418 , - 1531 , - 124 , - 2061 , - 46 , - 1375 , - 1184 , - 1905 , - 1106 , - 1219 , - 2244 , - 1749 , - 2166 , - 1063 , - 872 , - 1593 , - 794 , - 907 , - 1932 , - 1437 , - 1854 , - 751 , - 560 , - 1281 , - 482 , - 595 , - 1620 , - 1125 , - 1542 , - 439 , - 248 , - 969 , - 170 , - 283 , - 1308 , - 813 , - 1230 , - 127 , - 2368 , - 657 , - 2290 , - 2403 , - 996 , - 501 , - 918 , - 2247 , - 2056 , - 345 , - 1978 , - 2091 , - 684 , - 189 , - 606 , - 1935 , - 1744 , - 33 , - 1666 , - 1779 , - 372 , - 2309 , - 294 , - 1623 , - 1432 , - 2153 , - 1354 , - 1467 , - 60 , - 1997 , - 2414 , - 1311 , - 1120 , - 1841 , - 1042 , - 1155 , - 2180 , - 1685 , - 2102 , - 999 , - 808 , - 1529 , - 730 , - 843 , - 1868 , - 1373 , - 1790 , - 687 , - 496 , - 1217 , - 418 , - 531 , - 1556 , - 1061 , - 1478 , - 375 , - 184 , - 905 , - 106 , - 219 , - 1244 , - 749 , - 1166 , - 63 , - 2304 , - 593 , - 2226 , - 2339 , - 932 , - 437 , - 854 , - 2183 , - 1992 , - 281 , - 1914 , - 2027 , - 620 , - 125 , - 542 , - 1871 , - 1680 , - 2401 , - 1602 , - 1715 , - 308 , - 2245 , - 230 , - 1559 , - 1368 , - 2089 , - 1290 , - 1403 , - 2428 , - 1933 , - 2350 , - 1247 , - 1056 , - 1777 , - 978 , - 1091 , - 2116 , - 1621 , - 2038 , - 935 , - 744 , - 1465 , - 666 , - 779 , - 1804 , - 1309 , - 1726 , - 623 , - 432 , - 1153 , - 354 , - 467 , - 1492 , - 997 , - 1414 , - 311 , - 120 , - 841 , - 42 , - 155 , - 1180 , - 685 , - 1102 , - 2431 , - 2240 , - 529 , - 2162 , - 2275 , - 868 , - 373 , - 790 , - 2119 , - 1928 , - 217 , - 1850 , - 1963 , - 556 , - 61 , - 478 , - 1807 , - 1616 , - 2337 , - 1538 , - 1651 , - 244 , - 2181 , - 166 , - 1495 , - 1304 , - 2025 , - 1226 , - 1339 , - 2364 , - 1869 , - 2286 , - 1183 , - 992 , - 1713 , - 914 , - 1027 , - 2052 , - 1557 , - 1974 , - 871 , - 680 , - 1401 , - 602 , - 715 , - 1740 , - 1245 , - 1662 , - 559 , - 368 , - 1089 , - 290 , - 403 , - 1428 , - 933 , - 1350 , - 247 , - 56 , - 777 , - 2410 , - 91 , - 1116 , - 621 , - 1038 , - 2367 , - 2176 , - 465 , - 2098 , - 2211 , - 804 , - 309 , - 726 , - 2055 , - 1864 , - 153 , - 1786 , - 1899 , - 492 , - 2429 , - 414 , - 1743 , - 1552 , - 2273 , - 1474 , - 1587 , - 180 , - 2117 , - 102 , - 1431 , - 1240 , - 1961 , - 1162 , - 1275 , - 2300 , - 1805 , - 2222 , - 1119 , - 928 , - 1649 , - 850 , - 963 , - 1988 , - 1493 , - 1910 , - 807 , - 616 , - 1337 , - 538 , - 651 , - 1676 , - 1181 , - 1598 , - 495 , - 304 , - 1025 , - 226 , - 339 , - 1364 , - 869 , - 1286 , - 183 , - 2424 , - 713 , - 2346 , - 27 , - 1052 , - 557 , - 974 , - 2303 , - 2112 , - 401 , - 2034 , - 2147 , - 740 , - 245 , - 662 , - 1991 , - 1800 , - 89 , - 1722 , - 1835 , - 428 , - 2365 , - 350 , - 1679 , - 1488 , - 2209 , - 1410 , - 1523 , - 116 , - 2053 , - 38 , - 1367 , - 1176 , - 1897 , - 1098 , - 1211 , - 2236 , - 1741 , - 2158 , - 1055 , - 864 , - 1585 , - 786 , - 899 , - 1924 , - 1429 , - 1846 , - 743 , - 552 , - 1273 , - 474 , - 587 , - 1612 , - 1117 , - 1534 , - 431 , - 240 , - 961 , - 162 , - 275 , - 1300 , - 805 , - 1222 , - 119 , - 2360 , - 649 , - 2282 , - 2395 , - 988 , - 493 , - 910 , - 2239 , - 2048 , - 337 , - 1970 , - 2083 , - 676 , - 181 , - 598 , - 1927 , - 1736 , - 25 , - 1658 , - 1771 , - 364 , - 2301 , - 286 , - 1615 , - 1424 , - 2145 , - 1346 , - 1459 , - 52 , - 1989 , - 2406 , - 1303 , - 1112 , - 1833 , - 1034 , - 1147 , - 2172 , - 1677 , - 2094 , - 991 , - 800 , - 1521 , - 722 , - 835 , - 1860 , - 1365 , - 1782 , - 679 , - 488 , - 1209 , - 410 , - 523 , - 1548 , - 1053 , - 1470 , - 367 , - 176 , - 897 , - 98 , - 211 , - 1236 , - 741 , - 1158 , - 55 , - 2296 , - 585 , - 2218 , - 2331 , - 924 , - 429 , - 846 , - 2175 , - 1984 , - 273 , - 1906 , - 2019 , - 612 , - 117 , - 534 , - 1863 , - 1672 , - 2393 , - 1594 , - 1707 , - 300 , - 2237 , - 222 , - 1551 , - 1360 , - 2081 , - 1282 , - 1395 , - 2420 , - 1925 , - 2342 , - 1239 , - 1048 , - 1769 , - 970 , - 1083 , - 2108 , - 1613 , - 2030 , - 927 , - 736 , - 1457 , - 658 , - 771 , - 1796 , - 1301 , - 1718 , - 615 , - 424 , - 1145 , - 346 , - 459 , - 1484 , - 989 , - 1406 , - 303 , - 112 , - 833 , - 34 , - 147 , - 1172 , - 677 , - 1094 , - 2423 , - 2232 , - 521 , - 2154 , - 2267 , - 860 , - 365 , - 782 , - 2111 , - 1920 , - 209 , - 1842 , - 1955 , - 548 , - 53 , - 470 , - 1799 , - 1608 , - 2329 , - 1530 , - 1643 , - 236 , - 2173 , - 158 , - 1487 , - 1296 , - 2017 , - 1218 , - 1331 , - 2356 , - 1861 , - 2278 , - 1175 , - 984 , - 1705 , - 906 , - 1019 , - 2044 , - 1549 , - 1966 , - 863 , - 672 , - 1393 , - 594 , - 707 , - 1732 , - 1237 , - 1654 , - 551 , - 360 , - 1081 , - 282 , - 395 , - 1420 , - 925 , - 1342 , - 239 , - 48 , - 769 , - 2402 , - 83 , - 1108 , - 613 , - 1030 , - 2359 , - 2168 , - 457 , - 2090 , - 2203 , - 796 , - 301 , - 718 , - 2047 , - 1856 , - 145 , - 1778 , - 1891 , - 484 , - 2421 , - 406 , - 1735 , - 1544 , - 2265 , - 1466 , - 1579 , - 172 , - 2109 , - 94 , - 1423 , - 1232 , - 1953 , - 1154 , - 1267 , - 2292 , - 1797 , - 2214 , - 1111 , - 920 , - 1641 , - 842 , - 955 , - 1980 , - 1485 , - 1902 , - 799 , - 608 , - 1329 , - 530 , - 643 , - 1668 , - 1173 , - 1590 , - 487 , - 296 , - 1017 , - 218 , - 331 , - 1356 , - 861 , - 1278 , - 175 , - 2416 , - 705 , - 2338 , - 19 , - 1044 , - 549 , - 966 , - 2295 , - 2104 , - 393 , - 2026 , - 2139 , - 732 , - 237 , - 654 , - 1983 , - 1792 , - 81 , - 1714 , - 1827 , - 420 , - 2357 , - 342 , - 1671 , - 1480 , - 2201 , - 1402 , - 1515 , - 108 , - 2045 , - 30 , - 1359 , - 1168 , - 1889 , - 1090 , - 1203 , - 2228 , - 1733 , - 2150 , - 1047 , - 856 , - 1577 , - 778 , - 891 , - 1916 , - 1421 , - 1838 , - 735 , - 544 , - 1265 , - 466 , - 579 , - 1604 , - 1109 , - 1526 , - 423 , - 232 , - 953 , - 154 , - 267 , - 1292 , - 797 , - 1214 , - 111 , - 2352 , - 641 , - 2274 , - 2387 , - 980 , - 485 , - 902 , - 2231 , - 2040 , - 329 , - 1962 , - 2075 , - 668 , - 173 , - 590 , - 1919 , - 1728 , - 17 , - 1650 , - 1763 , - 356 , - 2293 , - 278 , - 1607 , - 1416 , - 2137 , - 1338 , - 1451 , - 44 , - 1981 , - 2398 , - 1295 , - 1104 , - 1825 , - 1026 , - 1139 , - 2164 , - 1669 , - 2086 , - 983 , - 792 , - 1513 , - 714 , - 827 , - 1852 , - 1357 , - 1774 , - 671 , - 480 , - 1201 , - 402 , - 515 , - 1540 , - 1045 , - 1462 , - 359 , - 168 , - 889 , - 90 , - 203 , - 1228 , - 733 , - 1150 , - 47 , - 2288 , - 577 , - 2210 , - 2323 , - 916 , - 421 , - 838 , - 2167 , - 1976 , - 265 , - 1898 , - 2011 , - 604 , - 109 , - 526 , - 1855 , - 1664 , - 2385 , - 1586 , - 1699 , - 292 , - 2229 , - 214 , - 1543 , - 1352 , - 2073 , - 1274 , - 1387 , - 2412 , - 1917 , - 2334 , - 1231 , - 1040 , - 1761 , - 962 , - 1075 , - 2100 , - 1605 , - 2022 , - 919 , - 728 , - 1449 , - 650 , - 763 , - 1788 , - 1293 , - 1710 , - 607 , - 416 , - 1137 , - 338 , - 451 , - 1476 , - 981 , - 1398 , - 295 , - 104 , - 825 , - 26 , - 139 , - 1164 , - 669 , - 1086 , - 2415 , - 2224 , - 513 , - 2146 , - 2259 , - 852 , - 357 , - 774 , - 2103 , - 1912 , - 201 , - 1834 , - 1947 , - 540 , - 45 , - 462 , - 1791 , - 1600 , - 2321 , - 1522 , - 1635 , - 228 , - 2165 , - 150 , - 1479 , - 1288 , - 2009 , - 1210 , - 1323 , - 2348 , - 1853 , - 2270 , - 1167 , - 976 , - 1697 , - 898 , - 1011 , - 2036 , - 1541 , - 1958 , - 855 , - 664 , - 1385 , - 586 , - 699 , - 1724 , - 1229 , - 1646 , - 543 , - 352 , - 1073 , - 274 , - 387 , - 1412 , - 917 , - 1334 , - 231 , - 40 , - 761 , - 2394 , - 75 , - 1100 , - 605 , - 1022 , - 2351 , - 2160 , - 449 , - 2082 , - 2195 , - 788 , - 293 , - 710 , - 2039 , - 1848 , - 137 , - 1770 , - 1883 , - 476 , - 2413 , - 398 , - 1727 , - 1536 , - 2257 , - 1458 , - 1571 , - 164 , - 2101 , - 86 , - 1415 , - 1224 , - 1945 , - 1146 , - 1259 , - 2284 , - 1789 , - 2206 , - 1103 , - 912 , - 1633 , - 834 , - 947 , - 1972 , - 1477 , - 1894 , - 791 , - 600 , - 1321 , - 522 , - 635 , - 1660 , - 1165 , - 1582 , - 479 , - 288 , - 1009 , - 210 , - 323 , - 1348 , - 853 , - 1270 , - 167 , - 2408 , - 697 , - 2330 , - 11 , - 1036 , - 541 , - 958 , - 2287 , - 2096 , - 385 , - 2018 , - 2131 , - 724 , - 229 , - 646 , - 1975 , - 1784 , - 73 , - 1706 , - 1819 , - 412 , - 2349 , - 334 , - 1663 , - 1472 , - 2193 , - 1394 , - 1507 , - 100 , - 2037 , - 22 , - 1351 , - 1160 , - 1881 , - 1082 , - 1195 , - 2220 , - 1725 , - 2142 , - 1039 , - 848 , - 1569 , - 770 , - 883 , - 1908 , - 1413 , - 1830 , - 727 , - 536 , - 1257 , - 458 , - 571 , - 1596 , - 1101 , - 1518 , - 415 , - 224 , - 945 , - 146 , - 259 , - 1284 , - 789 , - 1206 , - 103 , - 2344 , - 633 , - 2266 , - 2379 , - 972 , - 477 , - 894 , - 2223 , - 2032 , - 321 , - 1954 , - 2067 , - 660 , - 165 , - 582 , - 1911 , - 1720 , - 9 , - 1642 , - 1755 , - 348 , - 2285 , - 270 , - 1599 , - 1408 , - 2129 , - 1330 , - 1443 , - 36 , - 1973 , - 2390 , - 1287 , - 1096 , - 1817 , - 1018 , - 1131 , - 2156 , - 1661 , - 2078 , - 975 , - 784 , - 1505 , - 706 , - 819 , - 1844 , - 1349 , - 1766 , - 663 , - 472 , - 1193 , - 394 , - 507 , - 1532 , - 1037 , - 1454 , - 351 , - 160 , - 881 , - 82 , - 195 , - 1220 , - 725 , - 1142 , - 39 , - 2280 , - 569 , - 2202 , - 2315 , - 908 , - 413 , - 830 , - 2159 , - 1968 , - 257 , - 1890 , - 2003 , - 596 , - 101 , - 518 , - 1847 , - 1656 , - 2377 , - 1578 , - 1691 , - 284 , - 2221 , - 206 , - 1535 , - 1344 , - 2065 , - 1266 , - 1379 , - 2404 , - 1909 , - 2326 , - 1223 , - 1032 , - 1753 , - 954 , - 1067 , - 2092 , - 1597 , - 2014 , - 911 , - 720 , - 1441 , - 642 , - 755 , - 1780 , - 1285 , - 1702 , - 599 , - 408 , - 1129 , - 330 , - 443 , - 1468 , - 973 , - 1390 , - 287 , - 96 , - 817 , - 18 , - 131 , - 1156 , - 661 , - 1078 , - 2407 , - 2216 , - 505 , - 2138 , - 2251 , - 844 , - 349 , - 766 , - 2095 , - 1904 , - 193 , - 1826 , - 1939 , - 532 , - 37 , - 454 , - 1783 , - 1592 , - 2313 , - 1514 , - 1627 , - 220 , - 2157 , - 142 , - 1471 , - 1280 , - 2001 , - 1202 , - 1315 , - 2340 , - 1845 , - 2262 , - 1159 , - 968 , - 1689 , - 890 , - 1003 , - 2028 , - 1533 , - 1950 , - 847 , - 656 , - 1377 , - 578 , - 691 , - 1716 , - 1221 , - 1638 , - 535 , - 344 , - 1065 , - 266 , - 379 , - 1404 , - 909 , - 1326 , - 223 , - 32 , - 753 , - 2386 , - 67 , - 1092 , - 597 , - 1014 , - 2343 , - 2152 , - 441 , - 2074 , - 2187 , - 780 , - 285 , - 702 , - 2031 , - 1840 , - 129 , - 1762 , - 1875 , - 468 , - 2405 , - 390 , - 1719 , - 1528 , - 2249 , - 1450 , - 1563 , - 156 , - 2093 , - 78 , - 1407 , - 1216 , - 1937 , - 1138 , - 1251 , - 2276 , - 1781 , - 2198 , - 1095 , - 904 , - 1625 , - 826 , - 939 , - 1964 , - 1469 , - 1886 , - 783 , - 592 , - 1313 , - 514 , - 627 , - 1652 , - 1157 , - 1574 , - 471 , - 280 , - 1001 , - 202 , - 315 , - 1340 , - 845 , - 1262 , - 159 , - 2400 , - 689 , - 2322 , - 3 , - 1028 , - 533 , - 950 , - 2279 , - 2088 , - 377 , - 2010 , - 2123 , - 716 , - 221 , - 638 , - 1967 , - 1776 , - 65 , - 1698 , - 1811 , - 404 , - 2341 , - 326 , - 1655 , - 1464 , - 2185 , - 1386 , - 1499 , - 92 , - 2029 , - 14 , - 1343 , - 1152 , - 1873 , - 1074 , - 1187 , - 2212 , - 1717 , - 2134 , - 1031 , - 840 , - 1561 , - 762 , - 875 , - 1900 , - 1405 , - 1822 , - 719 , - 528 , - 1249 , - 450 , - 563 , - 1588 , - 1093 , - 1510 , - 407 , - 216 , - 937 , - 138 , - 251 , - 1276 , - 781 , - 1198 , - 95 , - 2336 , - 625 , - 2258 , - 2371 , - 964 , - 469 , - 886 , - 2215 , - 2024 , - 313 , - 1946 , - 2059 , - 652 , - 157 , - 574 , - 1903 , - 1712 , - 1 , - 1634 , - 1747 , - 340 , - 2277 , - 262 , - 1591 , - 1400 , - 2121 , - 1322 , - 1435 , - 28 , - 1965 , - 2382 , - 1279 , - 1088 , - 1809 , - 1010 , - 1123 , - 2148 , - 1653 , - 2070 , - 967 , - 776 , - 1497 , - 698 , - 811 , - 1836 , - 1341 , - 1758 , - 655 , - 464 , - 1185 , - 386 , - 499 , - 1524 , - 1029 , - 1446 , - 343 , - 152 , - 873 , - 74 , - 187 , - 1212 , - 717 , - 1134 , - 31 , - 2272 , - 561 , - 2194 , - 2307 , - 900 , - 405 , - 822 , - 2151 , - 1960 , - 249 , - 1882 , - 1995 , - 588 , - 93 , - 510 , - 1839 , - 1648 , - 2369 , - 1570 , - 1683 , - 276 , - 2213 , - 198 , - 1527 , - 1336 , - 2057 , - 1258 , - 1371 , - 2396 , - 1901 , - 2318 , - 1215 , - 1024 , - 1745 , - 946 , - 1059 , - 2084 , - 1589 , - 2006 , - 903 , - 712 , - 1433 , - 634 , - 747 , - 1772 , - 1277 , - 1694 , - 591 , - 400 , - 1121 , - 322 , - 435 , - 1460 , - 965 , - 1382 , - 279 , - 88 , - 809 , - 10 , - 123 , - 1148 , - 653 , - 1070 , - 2399 , - 2208 , - 497 , - 2130 , - 2243 , - 836 , - 341 , - 758 , - 2087 , - 1896 , - 185 , - 1818 , - 1931 , - 524 , - 29 , - 446 , - 1775 , - 1584 , - 2305 , - 1506 , - 1619 , - 212 , - 2149 , - 134 , - 1463 , - 1272 , - 1993 , - 1194 , - 1307 , - 2332 , - 1837 , - 2254 , - 1151 , - 960 , - 1681 , - 882 , - 995 , - 2020 , - 1525 , - 1942 , - 839 , - 648 , - 1369 , - 570 , - 683 , - 1708 , - 1213 , - 1630 , - 527 , - 336 , - 1057 , - 258 , - 371 , - 1396 , - 901 , - 1318 , - 215 , - 24 , - 745 , - 2378 , - 59 , - 1084 , - 589 , - 1006 , - 2335 , - 2144 , - 433 , - 2066 , - 2179 , - 772 , - 277 , - 694 , - 2023 , - 1832 , - 121 , - 1754 , - 1867 , - 460 , - 2397 , - 382 , - 1711 , - 1520 , - 2241 , - 1442 , - 1555 , - 148 , - 2085 , - 70 , - 1399 , - 1208 , - 1929 , - 1130 , - 1243 , - 2268 , - 1773 , - 2190 , - 1087 , - 896 , - 1617 , - 818 , - 931 , - 1956 , - 1461 , - 1878 , - 775 , - 584 , - 1305 , - 506 , - 619 , - 1644 , - 1149 , - 1566 , - 463 , - 272 , - 993 , - 194 , - 307 , - 1332 , - 837 , - 1254 , - 151 , - 2392 , - 681 , - 2314 , - 2427 , - 1020 , - 525 , - 942 , - 2271 , - 2080 , - 369 , - 2002 , - 2115 , - 708 , - 213 , - 630 , - 1959 , - 1768 , - 57 , - 1690 , - 1803 , - 396 , - 2333 , - 318 , - 1647 , - 1456 , - 2177 , - 1378 , - 1491 , - 84 , - 2021 , - 6 , - 1335 , - 1144 , - 1865 , - 1066 , - 1179 , - 2204 , - 1709 , - 2126 , - 1023 , - 832 , - 1553 , - 754 , - 867 , - 1892 , - 1397 , - 1814 , - 711 , - 520 , - 1241 , - 442 , - 555 , - 1580 , - 1085 , - 1502 , - 399 , - 208 , - 929 , - 130 , - 243 , - 1268 , - 773 , - 1190 , - 87 , - 2328 , - 617 , - 2250 , - 2363 , - 956 , - 461 , - 878 , - 2207 , - 2016 , - 305 , - 1938 , - 2051 , - 644 , - 149 , - 566 , - 1895 , - 1704 , - 2425 , - 1626 , - 1739 , - 332 , - 2269 , - 254 , - 1583 , - 1392 , - 2113 , - 1314 , - 1427 , - 20 , - 1957 , - 2374 , - 1271 , - 1080 , - 1801 , - 1002 , - 1115 , - 2140 , - 1645 , - 2062 , - 959 , - 768 , - 1489 , - 690 , - 803 , - 1828 , - 1333 , - 1750 , - 647 , - 456 , - 1177 , - 378 , - 491 , - 1516 , - 1021 , - 1438 , - 335 , - 144 , - 865 , - 66 , - 179 , - 1204 , - 709 , - 1126 , - 23 , - 2264 , - 553 , - 2186 , - 2299 , - 892 , - 397 , - 814 , - 2143 , - 1952 , - 241 , - 1874 , - 1987 , - 580 , - 85 , - 502 , - 1831 , - 1640 , - 2361 , - 1562 , - 1675 , - 268 , - 2205 , - 190 , - 1519 , - 1328 , - 2049 , - 1250 , - 1363 , - 2388 , - 1893 , - 2310 , - 1207 , - 1016 , - 1737 , - 938 , - 1051 , - 2076 , - 1581 , - 1998 , - 895 , - 704 , - 1425 , - 626 , - 739 , - 1764 , - 1269 , - 1686 , - 583 , - 392 , - 1113 , - 314 , - 427 , - 1452 , - 957 , - 1374 , - 271 , - 80 , - 801 , - 2 , - 115 , - 1140 , - 645 , - 1062 , - 2391 , - 2200 , - 489 , - 2122 , - 2235 , - 828 , - 333 , - 750 , - 2079 , - 1888 , - 177 , - 1810 , - 1923 , - 516 , - 21 , - 438 , - 1767 , - 1576 , - 2297 , - 1498 , - 1611 , - 204 , - 2141 , - 126 , - 1455 , - 1264 , - 1985 , - 1186 , - 1299 , - 2324 , - 1829 , - 2246 , - 1143 , - 952 , - 1673 , - 874 , - 987 , - 2012 , - 1517 , - 1934 , - 831 , - 640 , - 1361 , - 562 , - 675 , - 1700 , - 1205 , - 1622 , - 519 , - 328 , - 1049 , - 250 , - 363 , - 1388 , - 893 , - 1310 , - 207 , - 16 , - 737 , - 2370 , - 51 , - 1076 , - 581 , - 998 , - 2327 , - 2136 , - 425 , - 2058 , - 2171 , - 764 , - 269 , - 686 , - 2015 , - 1824 , - 113 , - 1746 , - 1859 , - 452 , - 2389 , - 374 , - 1703 , - 1512 , - 2233 , - 1434 , - 1547 , - 140 , - 2077 , - 62 , - 1391 , - 1200 , - 1921 , - 1122 , - 1235 , - 2260 , - 1765 , - 2182 , - 1079 , - 888 , - 1609 , - 810 , - 923 , - 1948 , - 1453 , - 1870 , - 767 , - 576 , - 1297 , - 498 , - 611 , - 1636 , - 1141 , - 1558 , - 455 , - 264 , - 985 , - 186 , - 299 , - 1324 , - 829 , - 1246 , - 143 , - 2384 , - 673 , - 2306 , - 2419 , - 1012 , - 517 , - 934 , - 2263 , - 2072 , - 361 , - 1994 , - 2107 , - 700 , - 205 , - 622 , - 1951 , - 1760 , - 49 , - 1682 , - 1795 , - 388 , - 2325 , - 310 , - 1639 , - 1448 , - 2169 , - 1370 , - 1483 , - 76 , - 2013 , - 2430 , - 1327 , - 1136 , - 1857 , - 1058 , - 1171 , - 2196 , - 1701 , - 2118 , - 1015 , - 824 , - 1545 , - 746 , - 859 , - 1884 , - 1389 , - 1806 , - 703 , - 512 , - 1233 , - 434 , - 547 , - 1572 , - 1077 , - 1494 , - 391 , - 200 , - 921 , - 122 , - 235 , - 1260 , - 765 , - 1182 , - 79 , - 2320 , - 609 , - 2242 , - 2355 , - 948 , - 453 , - 870 , - 2199 , - 2008 , - 297 , - 1930 , - 2043 , - 636 , - 141 , - 558 , - 1887 , - 1696 , - 2417 , - 1618 , - 1731 , - 324 , - 2261 , - 246 , - 1575 , - 1384 , - 2105 , - 1306 , - 1419 , - 12 , - 1949 , - 2366 , - 1263 , - 1072 , - 1793 , - 994 , - 1107 , - 2132 , - 1637 , - 2054 , - 951 , - 760 , - 1481 , - 682 , - 795 , - 1820 , - 1325 , - 1742 , - 639 , - 448 , - 1169 , - 370 , - 483 , - 1508 , - 1013 , - 1430 , - 327 , - 136 , - 857 , - 58 , - 171 , - 1196 , - 701 , - 1118 , - 15 , - 2256 , - 545 , - 2178 , - 2291 , - 884 , - 389 , - 806 , - 2135 , - 1944 , - 233 , - 1866 , - 1979 , - 572 , - 77 , - 494 , - 1823 , - 1632 , - 2353 , - 1554 , - 1667 , - 260 , - 2197 , - 182 , - 1511 , - 1320 , - 2041 , - 1242 , - 1355 , - 2380 , - 1885 , - 2302 , - 1199 , - 1008 , - 1729 , - 930 , - 1043 , - 2068 , - 1573 , - 1990 , - 887 , - 696 , - 1417 , - 618 , - 731 , - 1756 , - 1261 , - 1678 , - 575 , - 384 , - 1105 , - 306 , - 419 , - 1444 , - 949 , - 1366 , - 263 , - 72 , - 793 , - 2426 , - 107 , - 1132 , - 637 , - 1054 , - 2383 , - 2192 , - 481 , - 2114 , - 2227 , - 820 , - 325 , - 742 , - 2071 , - 1880 , - 169 , - 1802 , - 1915 , - 508 , - 13 , - 430 , - 1759 , - 1568 , - 2289 , - 1490 , - 1603 , - 196 , - 2133 , - 118 , - 1447 , - 1256 , - 1977 , - 1178 , - 1291 , - 2316 , - 1821 , - 2238 , - 1135 , - 944 , - 1665 , - 866 , - 979 , - 2004 , - 1509 , - 1926 , - 823 , - 632 , - 1353 , - 554 , - 667 , - 1692 , - 1197 , - 1614 , - 511 , - 320 , - 1041 , - 242 , - 355 , - 1380 , - 885 , - 1302 , - 199 , - 8 , - 729 , - 2362 , - 43 , - 1068 , - 573 , - 990 , - 2319 , - 2128 , - 417 , - 2050 , - 2163 , - 756 , - 261 , - 678 , - 2007 , - 1816 , - 105 , - 1738 , - 1851 , - 444 , - 2381 , - 366 , - 1695 , - 1504 , - 2225 , - 1426 , - 1539 , - 132 , - 2069 , - 54 , - 1383 , - 1192 , - 1913 , - 1114 , - 1227 , - 2252 , - 1757 , - 2174 , - 1071 , - 880 , - 1601 , - 802 , - 915 , - 1940 , - 1445 , - 1862 , - 759 , - 568 , - 1289 , - 490 , - 603 , - 1628 , - 1133 , - 1550 , - 447 , - 256 , - 977 , - 178 , - 291 , - 1316 , - 821 , - 1238 , - 135 , - 2376 , - 665 , - 2298 , - 2411 , - 1004 , - 509 , - 926 , - 2255 , - 2064 , - 353 , - 1986 , - 2099 , - 692 , - 197 , - 614 , - 1943 , - 1752 , - 41 , - 1674 , - 1787 , - 380 , - 2317 , - 302 , - 1631 , - 1440 , - 2161 , - 1362 , - 1475 , - 68 , - 2005 , - 2422 , - 1319 , - 1128 , - 1849 , - 1050 , - 1163 , - 2188 , - 1693 , - 2110 , - 1007 , - 816 , - 1537 , - 738 , - 851 , - 1876 , - 1381 , - 1798 , - 695 , - 504 , - 1225 , - 426 , - 539 , - 1564 , - 1069 , - 1486 , - 383 , - 192 , - 913 , - 114 , - 227 , - 1252 , - 757 , - 1174 , - 71 , - 2312 , - 601 , - 2234 , - 2347 , - 940 , - 445 , - 862 , - 2191 , - 2000 , - 289 , - 1922 , - 2035 , - 628 , - 133 , - 550 , - 1879 , - 1688 , - 2409 , - 1610 , - 1723 , - 316 , - 2253 , - 238 , - 1567 , - 1376 , - 2097 , - 1298 , - 1411 , - 4 , - 1941 , - 2358 , - 1255 , - 1064 , - 1785 , - 986 , - 1099 , - 2124 , - 1629 , - 2046 , - 943 , - 752 , - 1473 , - 674 , - 787 , - 1812 , - 1317 , - 1734 , - 631 , - 440 , - 1161 , - 362 , - 475 , - 1500 , - 1005 , - 1422 , - 319 , - 128 , - 849 , - 50 , - 163 , - 1188 , - 693 , - 1110 , - 7 , - 2248 , - 537 , - 2170 , - 2283 , - 876 , - 381 , - 798 , - 2127 , - 1936 , - 225 , - 1858 , - 1971 , - 564 , - 69 , - 486 , - 1815 , - 1624 , - 2345 , - 1546 , - 1659 , - 252 , - 2189 , - 174 , - 1503 , - 1312 , - 2033 , - 1234 , - 1347 , - 2372 , - 1877 , - 2294 , - 1191 , - 1000 , - 1721 , - 922 , - 1035 , - 2060 , - 1565 , - 1982 , - 879 , - 688 , - 1409 , - 610 , - 723 , - 1748 , - 1253 , - 1670 , - 567 , - 376 , - 1097 , - 298 , - 411 , - 1436 , - 941 , - 1358 , - 255 , - 64 , - 785 , - 2418 , - 99 , - 1124 , - 629 , - 1046 , - 2375 , - 2184 , - 473 , - 2106 , - 2219 , - 812 , - 317 , - 734 , - 2063 , - 1872 , - 161 , - 1794 , - 1907 , - 500 , - 5 , - 422 , - 1751 , - 1560 , - 2281 , - 1482 , - 1595 , - 188 , - 2125 , - 110 , - 1439 , - 1248 , - 1969 , - 1170 , - 1283 , - 2308 , - 1813 , - 2230 , - 1127 , - 936 , - 1657 , - 858 , - 971 , - 1996 , - 1501 , - 1918 , - 815 , - 624 , - 1345 , - 546 , - 659 , - 1684 , - 1189 , - 1606 , - 503 , - 312 , - 1033 , - 234 , - 347 , - 1372 , - 877 , - 1294 , - 191 , - 0 , - 649 , - 2234 , - 2259 , - 724 , - 125 , - 462 , - 1735 , - 1448 , - 2097 , - 1186 , - 1211 , - 2172 , - 1573 , - 1910 , - 687 , - 400 , - 1049 , - 138 , - 163 , - 1124 , - 525 , - 862 , - 2135 , - 1848 , - 1 , - 1586 , - 1611 , - 76 , - 1973 , - 2310 , - 1087 , - 800 , - 1449 , - 538 , - 563 , - 1524 , - 925 , - 1262 , - 39 , - 2248 , - 401 , - 1986 , - 2011 , - 476 , - 2373 , - 214 , - 1487 , - 1200 , - 1849 , - 938 , - 963 , - 1924 , - 1325 , - 1662 , - 439 , - 152 , - 801 , - 2386 , - 2411 , - 876 , - 277 , - 614 , - 1887 , - 1600 , - 2249 , - 1338 , - 1363 , - 2324 , - 1725 , - 2062 , - 839 , - 552 , - 1201 , - 290 , - 315 , - 1276 , - 677 , - 1014 , - 2287 , - 2000 , - 153 , - 1738 , - 1763 , - 228 , - 2125 , - 2462 , - 1239 , - 952 , - 1601 , - 690 , - 715 , - 1676 , - 1077 , - 1414 , - 191 , - 2400 , - 553 , - 2138 , - 2163 , - 628 , - 29 , - 366 , - 1639 , - 1352 , - 2001 , - 1090 , - 1115 , - 2076 , - 1477 , - 1814 , - 591 , - 304 , - 953 , - 42 , - 67 , - 1028 , - 429 , - 766 , - 2039 , - 1752 , - 2401 , - 1490 , - 1515 , - 2476 , - 1877 , - 2214 , - 991 , - 704 , - 1353 , - 442 , - 467 , - 1428 , - 829 , - 1166 , - 2439 , - 2152 , - 305 , - 1890 , - 1915 , - 380 , - 2277 , - 118 , - 1391 , - 1104 , - 1753 , - 842 , - 867 , - 1828 , - 1229 , - 1566 , - 343 , - 56 , - 705 , - 2290 , - 2315 , - 780 , - 181 , - 518 , - 1791 , - 1504 , - 2153 , - 1242 , - 1267 , - 2228 , - 1629 , - 1966 , - 743 , - 456 , - 1105 , - 194 , - 219 , - 1180 , - 581 , - 918 , - 2191 , - 1904 , - 57 , - 1642 , - 1667 , - 132 , - 2029 , - 2366 , - 1143 , - 856 , - 1505 , - 594 , - 619 , - 1580 , - 981 , - 1318 , - 95 , - 2304 , - 457 , - 2042 , - 2067 , - 532 , - 2429 , - 270 , - 1543 , - 1256 , - 1905 , - 994 , - 1019 , - 1980 , - 1381 , - 1718 , - 495 , - 208 , - 857 , - 2442 , - 2467 , - 932 , - 333 , - 670 , - 1943 , - 1656 , - 2305 , - 1394 , - 1419 , - 2380 , - 1781 , - 2118 , - 895 , - 608 , - 1257 , - 346 , - 371 , - 1332 , - 733 , - 1070 , - 2343 , - 2056 , - 209 , - 1794 , - 1819 , - 284 , - 2181 , - 22 , - 1295 , - 1008 , - 1657 , - 746 , - 771 , - 1732 , - 1133 , - 1470 , - 247 , - 2456 , - 609 , - 2194 , - 2219 , - 684 , - 85 , - 422 , - 1695 , - 1408 , - 2057 , - 1146 , - 1171 , - 2132 , - 1533 , - 1870 , - 647 , - 360 , - 1009 , - 98 , - 123 , - 1084 , - 485 , - 822 , - 2095 , - 1808 , - 2457 , - 1546 , - 1571 , - 36 , - 1933 , - 2270 , - 1047 , - 760 , - 1409 , - 498 , - 523 , - 1484 , - 885 , - 1222 , - 2495 , - 2208 , - 361 , - 1946 , - 1971 , - 436 , - 2333 , - 174 , - 1447 , - 1160 , - 1809 , - 898 , - 923 , - 1884 , - 1285 , - 1622 , - 399 , - 112 , - 761 , - 2346 , - 2371 , - 836 , - 237 , - 574 , - 1847 , - 1560 , - 2209 , - 1298 , - 1323 , - 2284 , - 1685 , - 2022 , - 799 , - 512 , - 1161 , - 250 , - 275 , - 1236 , - 637 , - 974 , - 2247 , - 1960 , - 113 , - 1698 , - 1723 , - 188 , - 2085 , - 2422 , - 1199 , - 912 , - 1561 , - 650 , - 675 , - 1636 , - 1037 , - 1374 , - 151 , - 2360 , - 513 , - 2098 , - 2123 , - 588 , - 2485 , - 326 , - 1599 , - 1312 , - 1961 , - 1050 , - 1075 , - 2036 , - 1437 , - 1774 , - 551 , - 264 , - 913 , - 2 , - 27 , - 988 , - 389 , - 726 , - 1999 , - 1712 , - 2361 , - 1450 , - 1475 , - 2436 , - 1837 , - 2174 , - 951 , - 664 , - 1313 , - 402 , - 427 , - 1388 , - 789 , - 1126 , - 2399 , - 2112 , - 265 , - 1850 , - 1875 , - 340 , - 2237 , - 78 , - 1351 , - 1064 , - 1713 , - 802 , - 827 , - 1788 , - 1189 , - 1526 , - 303 , - 16 , - 665 , - 2250 , - 2275 , - 740 , - 141 , - 478 , - 1751 , - 1464 , - 2113 , - 1202 , - 1227 , - 2188 , - 1589 , - 1926 , - 703 , - 416 , - 1065 , - 154 , - 179 , - 1140 , - 541 , - 878 , - 2151 , - 1864 , - 17 , - 1602 , - 1627 , - 92 , - 1989 , - 2326 , - 1103 , - 816 , - 1465 , - 554 , - 579 , - 1540 , - 941 , - 1278 , - 55 , - 2264 , - 417 , - 2002 , - 2027 , - 492 , - 2389 , - 230 , - 1503 , - 1216 , - 1865 , - 954 , - 979 , - 1940 , - 1341 , - 1678 , - 455 , - 168 , - 817 , - 2402 , - 2427 , - 892 , - 293 , - 630 , - 1903 , - 1616 , - 2265 , - 1354 , - 1379 , - 2340 , - 1741 , - 2078 , - 855 , - 568 , - 1217 , - 306 , - 331 , - 1292 , - 693 , - 1030 , - 2303 , - 2016 , - 169 , - 1754 , - 1779 , - 244 , - 2141 , - 2478 , - 1255 , - 968 , - 1617 , - 706 , - 731 , - 1692 , - 1093 , - 1430 , - 207 , - 2416 , - 569 , - 2154 , - 2179 , - 644 , - 45 , - 382 , - 1655 , - 1368 , - 2017 , - 1106 , - 1131 , - 2092 , - 1493 , - 1830 , - 607 , - 320 , - 969 , - 58 , - 83 , - 1044 , - 445 , - 782 , - 2055 , - 1768 , - 2417 , - 1506 , - 1531 , - 2492 , - 1893 , - 2230 , - 1007 , - 720 , - 1369 , - 458 , - 483 , - 1444 , - 845 , - 1182 , - 2455 , - 2168 , - 321 , - 1906 , - 1931 , - 396 , - 2293 , - 134 , - 1407 , - 1120 , - 1769 , - 858 , - 883 , - 1844 , - 1245 , - 1582 , - 359 , - 72 , - 721 , - 2306 , - 2331 , - 796 , - 197 , - 534 , - 1807 , - 1520 , - 2169 , - 1258 , - 1283 , - 2244 , - 1645 , - 1982 , - 759 , - 472 , - 1121 , - 210 , - 235 , - 1196 , - 597 , - 934 , - 2207 , - 1920 , - 73 , - 1658 , - 1683 , - 148 , - 2045 , - 2382 , - 1159 , - 872 , - 1521 , - 610 , - 635 , - 1596 , - 997 , - 1334 , - 111 , - 2320 , - 473 , - 2058 , - 2083 , - 548 , - 2445 , - 286 , - 1559 , - 1272 , - 1921 , - 1010 , - 1035 , - 1996 , - 1397 , - 1734 , - 511 , - 224 , - 873 , - 2458 , - 2483 , - 948 , - 349 , - 686 , - 1959 , - 1672 , - 2321 , - 1410 , - 1435 , - 2396 , - 1797 , - 2134 , - 911 , - 624 , - 1273 , - 362 , - 387 , - 1348 , - 749 , - 1086 , - 2359 , - 2072 , - 225 , - 1810 , - 1835 , - 300 , - 2197 , - 38 , - 1311 , - 1024 , - 1673 , - 762 , - 787 , - 1748 , - 1149 , - 1486 , - 263 , - 2472 , - 625 , - 2210 , - 2235 , - 700 , - 101 , - 438 , - 1711 , - 1424 , - 2073 , - 1162 , - 1187 , - 2148 , - 1549 , - 1886 , - 663 , - 376 , - 1025 , - 114 , - 139 , - 1100 , - 501 , - 838 , - 2111 , - 1824 , - 2473 , - 1562 , - 1587 , - 52 , - 1949 , - 2286 , - 1063 , - 776 , - 1425 , - 514 , - 539 , - 1500 , - 901 , - 1238 , - 15 , - 2224 , - 377 , - 1962 , - 1987 , - 452 , - 2349 , - 190 , - 1463 , - 1176 , - 1825 , - 914 , - 939 , - 1900 , - 1301 , - 1638 , - 415 , - 128 , - 777 , - 2362 , - 2387 , - 852 , - 253 , - 590 , - 1863 , - 1576 , - 2225 , - 1314 , - 1339 , - 2300 , - 1701 , - 2038 , - 815 , - 528 , - 1177 , - 266 , - 291 , - 1252 , - 653 , - 990 , - 2263 , - 1976 , - 129 , - 1714 , - 1739 , - 204 , - 2101 , - 2438 , - 1215 , - 928 , - 1577 , - 666 , - 691 , - 1652 , - 1053 , - 1390 , - 167 , - 2376 , - 529 , - 2114 , - 2139 , - 604 , - 5 , - 342 , - 1615 , - 1328 , - 1977 , - 1066 , - 1091 , - 2052 , - 1453 , - 1790 , - 567 , - 280 , - 929 , - 18 , - 43 , - 1004 , - 405 , - 742 , - 2015 , - 1728 , - 2377 , - 1466 , - 1491 , - 2452 , - 1853 , - 2190 , - 967 , - 680 , - 1329 , - 418 , - 443 , - 1404 , - 805 , - 1142 , - 2415 , - 2128 , - 281 , - 1866 , - 1891 , - 356 , - 2253 , - 94 , - 1367 , - 1080 , - 1729 , - 818 , - 843 , - 1804 , - 1205 , - 1542 , - 319 , - 32 , - 681 , - 2266 , - 2291 , - 756 , - 157 , - 494 , - 1767 , - 1480 , - 2129 , - 1218 , - 1243 , - 2204 , - 1605 , - 1942 , - 719 , - 432 , - 1081 , - 170 , - 195 , - 1156 , - 557 , - 894 , - 2167 , - 1880 , - 33 , - 1618 , - 1643 , - 108 , - 2005 , - 2342 , - 1119 , - 832 , - 1481 , - 570 , - 595 , - 1556 , - 957 , - 1294 , - 71 , - 2280 , - 433 , - 2018 , - 2043 , - 508 , - 2405 , - 246 , - 1519 , - 1232 , - 1881 , - 970 , - 995 , - 1956 , - 1357 , - 1694 , - 471 , - 184 , - 833 , - 2418 , - 2443 , - 908 , - 309 , - 646 , - 1919 , - 1632 , - 2281 , - 1370 , - 1395 , - 2356 , - 1757 , - 2094 , - 871 , - 584 , - 1233 , - 322 , - 347 , - 1308 , - 709 , - 1046 , - 2319 , - 2032 , - 185 , - 1770 , - 1795 , - 260 , - 2157 , - 2494 , - 1271 , - 984 , - 1633 , - 722 , - 747 , - 1708 , - 1109 , - 1446 , - 223 , - 2432 , - 585 , - 2170 , - 2195 , - 660 , - 61 , - 398 , - 1671 , - 1384 , - 2033 , - 1122 , - 1147 , - 2108 , - 1509 , - 1846 , - 623 , - 336 , - 985 , - 74 , - 99 , - 1060 , - 461 , - 798 , - 2071 , - 1784 , - 2433 , - 1522 , - 1547 , - 12 , - 1909 , - 2246 , - 1023 , - 736 , - 1385 , - 474 , - 499 , - 1460 , - 861 , - 1198 , - 2471 , - 2184 , - 337 , - 1922 , - 1947 , - 412 , - 2309 , - 150 , - 1423 , - 1136 , - 1785 , - 874 , - 899 , - 1860 , - 1261 , - 1598 , - 375 , - 88 , - 737 , - 2322 , - 2347 , - 812 , - 213 , - 550 , - 1823 , - 1536 , - 2185 , - 1274 , - 1299 , - 2260 , - 1661 , - 1998 , - 775 , - 488 , - 1137 , - 226 , - 251 , - 1212 , - 613 , - 950 , - 2223 , - 1936 , - 89 , - 1674 , - 1699 , - 164 , - 2061 , - 2398 , - 1175 , - 888 , - 1537 , - 626 , - 651 , - 1612 , - 1013 , - 1350 , - 127 , - 2336 , - 489 , - 2074 , - 2099 , - 564 , - 2461 , - 302 , - 1575 , - 1288 , - 1937 , - 1026 , - 1051 , - 2012 , - 1413 , - 1750 , - 527 , - 240 , - 889 , - 2474 , - 3 , - 964 , - 365 , - 702 , - 1975 , - 1688 , - 2337 , - 1426 , - 1451 , - 2412 , - 1813 , - 2150 , - 927 , - 640 , - 1289 , - 378 , - 403 , - 1364 , - 765 , - 1102 , - 2375 , - 2088 , - 241 , - 1826 , - 1851 , - 316 , - 2213 , - 54 , - 1327 , - 1040 , - 1689 , - 778 , - 803 , - 1764 , - 1165 , - 1502 , - 279 , - 2488 , - 641 , - 2226 , - 2251 , - 716 , - 117 , - 454 , - 1727 , - 1440 , - 2089 , - 1178 , - 1203 , - 2164 , - 1565 , - 1902 , - 679 , - 392 , - 1041 , - 130 , - 155 , - 1116 , - 517 , - 854 , - 2127 , - 1840 , - 2489 , - 1578 , - 1603 , - 68 , - 1965 , - 2302 , - 1079 , - 792 , - 1441 , - 530 , - 555 , - 1516 , - 917 , - 1254 , - 31 , - 2240 , - 393 , - 1978 , - 2003 , - 468 , - 2365 , - 206 , - 1479 , - 1192 , - 1841 , - 930 , - 955 , - 1916 , - 1317 , - 1654 , - 431 , - 144 , - 793 , - 2378 , - 2403 , - 868 , - 269 , - 606 , - 1879 , - 1592 , - 2241 , - 1330 , - 1355 , - 2316 , - 1717 , - 2054 , - 831 , - 544 , - 1193 , - 282 , - 307 , - 1268 , - 669 , - 1006 , - 2279 , - 1992 , - 145 , - 1730 , - 1755 , - 220 , - 2117 , - 2454 , - 1231 , - 944 , - 1593 , - 682 , - 707 , - 1668 , - 1069 , - 1406 , - 183 , - 2392 , - 545 , - 2130 , - 2155 , - 620 , - 21 , - 358 , - 1631 , - 1344 , - 1993 , - 1082 , - 1107 , - 2068 , - 1469 , - 1806 , - 583 , - 296 , - 945 , - 34 , - 59 , - 1020 , - 421 , - 758 , - 2031 , - 1744 , - 2393 , - 1482 , - 1507 , - 2468 , - 1869 , - 2206 , - 983 , - 696 , - 1345 , - 434 , - 459 , - 1420 , - 821 , - 1158 , - 2431 , - 2144 , - 297 , - 1882 , - 1907 , - 372 , - 2269 , - 110 , - 1383 , - 1096 , - 1745 , - 834 , - 859 , - 1820 , - 1221 , - 1558 , - 335 , - 48 , - 697 , - 2282 , - 2307 , - 772 , - 173 , - 510 , - 1783 , - 1496 , - 2145 , - 1234 , - 1259 , - 2220 , - 1621 , - 1958 , - 735 , - 448 , - 1097 , - 186 , - 211 , - 1172 , - 573 , - 910 , - 2183 , - 1896 , - 49 , - 1634 , - 1659 , - 124 , - 2021 , - 2358 , - 1135 , - 848 , - 1497 , - 586 , - 611 , - 1572 , - 973 , - 1310 , - 87 , - 2296 , - 449 , - 2034 , - 2059 , - 524 , - 2421 , - 262 , - 1535 , - 1248 , - 1897 , - 986 , - 1011 , - 1972 , - 1373 , - 1710 , - 487 , - 200 , - 849 , - 2434 , - 2459 , - 924 , - 325 , - 662 , - 1935 , - 1648 , - 2297 , - 1386 , - 1411 , - 2372 , - 1773 , - 2110 , - 887 , - 600 , - 1249 , - 338 , - 363 , - 1324 , - 725 , - 1062 , - 2335 , - 2048 , - 201 , - 1786 , - 1811 , - 276 , - 2173 , - 14 , - 1287 , - 1000 , - 1649 , - 738 , - 763 , - 1724 , - 1125 , - 1462 , - 239 , - 2448 , - 601 , - 2186 , - 2211 , - 676 , - 77 , - 414 , - 1687 , - 1400 , - 2049 , - 1138 , - 1163 , - 2124 , - 1525 , - 1862 , - 639 , - 352 , - 1001 , - 90 , - 115 , - 1076 , - 477 , - 814 , - 2087 , - 1800 , - 2449 , - 1538 , - 1563 , - 28 , - 1925 , - 2262 , - 1039 , - 752 , - 1401 , - 490 , - 515 , - 1476 , - 877 , - 1214 , - 2487 , - 2200 , - 353 , - 1938 , - 1963 , - 428 , - 2325 , - 166 , - 1439 , - 1152 , - 1801 , - 890 , - 915 , - 1876 , - 1277 , - 1614 , - 391 , - 104 , - 753 , - 2338 , - 2363 , - 828 , - 229 , - 566 , - 1839 , - 1552 , - 2201 , - 1290 , - 1315 , - 2276 , - 1677 , - 2014 , - 791 , - 504 , - 1153 , - 242 , - 267 , - 1228 , - 629 , - 966 , - 2239 , - 1952 , - 105 , - 1690 , - 1715 , - 180 , - 2077 , - 2414 , - 1191 , - 904 , - 1553 , - 642 , - 667 , - 1628 , - 1029 , - 1366 , - 143 , - 2352 , - 505 , - 2090 , - 2115 , - 580 , - 2477 , - 318 , - 1591 , - 1304 , - 1953 , - 1042 , - 1067 , - 2028 , - 1429 , - 1766 , - 543 , - 256 , - 905 , - 2490 , - 19 , - 980 , - 381 , - 718 , - 1991 , - 1704 , - 2353 , - 1442 , - 1467 , - 2428 , - 1829 , - 2166 , - 943 , - 656 , - 1305 , - 394 , - 419 , - 1380 , - 781 , - 1118 , - 2391 , - 2104 , - 257 , - 1842 , - 1867 , - 332 , - 2229 , - 70 , - 1343 , - 1056 , - 1705 , - 794 , - 819 , - 1780 , - 1181 , - 1518 , - 295 , - 8 , - 657 , - 2242 , - 2267 , - 732 , - 133 , - 470 , - 1743 , - 1456 , - 2105 , - 1194 , - 1219 , - 2180 , - 1581 , - 1918 , - 695 , - 408 , - 1057 , - 146 , - 171 , - 1132 , - 533 , - 870 , - 2143 , - 1856 , - 9 , - 1594 , - 1619 , - 84 , - 1981 , - 2318 , - 1095 , - 808 , - 1457 , - 546 , - 571 , - 1532 , - 933 , - 1270 , - 47 , - 2256 , - 409 , - 1994 , - 2019 , - 484 , - 2381 , - 222 , - 1495 , - 1208 , - 1857 , - 946 , - 971 , - 1932 , - 1333 , - 1670 , - 447 , - 160 , - 809 , - 2394 , - 2419 , - 884 , - 285 , - 622 , - 1895 , - 1608 , - 2257 , - 1346 , - 1371 , - 2332 , - 1733 , - 2070 , - 847 , - 560 , - 1209 , - 298 , - 323 , - 1284 , - 685 , - 1022 , - 2295 , - 2008 , - 161 , - 1746 , - 1771 , - 236 , - 2133 , - 2470 , - 1247 , - 960 , - 1609 , - 698 , - 723 , - 1684 , - 1085 , - 1422 , - 199 , - 2408 , - 561 , - 2146 , - 2171 , - 636 , - 37 , - 374 , - 1647 , - 1360 , - 2009 , - 1098 , - 1123 , - 2084 , - 1485 , - 1822 , - 599 , - 312 , - 961 , - 50 , - 75 , - 1036 , - 437 , - 774 , - 2047 , - 1760 , - 2409 , - 1498 , - 1523 , - 2484 , - 1885 , - 2222 , - 999 , - 712 , - 1361 , - 450 , - 475 , - 1436 , - 837 , - 1174 , - 2447 , - 2160 , - 313 , - 1898 , - 1923 , - 388 , - 2285 , - 126 , - 1399 , - 1112 , - 1761 , - 850 , - 875 , - 1836 , - 1237 , - 1574 , - 351 , - 64 , - 713 , - 2298 , - 2323 , - 788 , - 189 , - 526 , - 1799 , - 1512 , - 2161 , - 1250 , - 1275 , - 2236 , - 1637 , - 1974 , - 751 , - 464 , - 1113 , - 202 , - 227 , - 1188 , - 589 , - 926 , - 2199 , - 1912 , - 65 , - 1650 , - 1675 , - 140 , - 2037 , - 2374 , - 1151 , - 864 , - 1513 , - 602 , - 627 , - 1588 , - 989 , - 1326 , - 103 , - 2312 , - 465 , - 2050 , - 2075 , - 540 , - 2437 , - 278 , - 1551 , - 1264 , - 1913 , - 1002 , - 1027 , - 1988 , - 1389 , - 1726 , - 503 , - 216 , - 865 , - 2450 , - 2475 , - 940 , - 341 , - 678 , - 1951 , - 1664 , - 2313 , - 1402 , - 1427 , - 2388 , - 1789 , - 2126 , - 903 , - 616 , - 1265 , - 354 , - 379 , - 1340 , - 741 , - 1078 , - 2351 , - 2064 , - 217 , - 1802 , - 1827 , - 292 , - 2189 , - 30 , - 1303 , - 1016 , - 1665 , - 754 , - 779 , - 1740 , - 1141 , - 1478 , - 255 , - 2464 , - 617 , - 2202 , - 2227 , - 692 , - 93 , - 430 , - 1703 , - 1416 , - 2065 , - 1154 , - 1179 , - 2140 , - 1541 , - 1878 , - 655 , - 368 , - 1017 , - 106 , - 131 , - 1092 , - 493 , - 830 , - 2103 , - 1816 , - 2465 , - 1554 , - 1579 , - 44 , - 1941 , - 2278 , - 1055 , - 768 , - 1417 , - 506 , - 531 , - 1492 , - 893 , - 1230 , - 7 , - 2216 , - 369 , - 1954 , - 1979 , - 444 , - 2341 , - 182 , - 1455 , - 1168 , - 1817 , - 906 , - 931 , - 1892 , - 1293 , - 1630 , - 407 , - 120 , - 769 , - 2354 , - 2379 , - 844 , - 245 , - 582 , - 1855 , - 1568 , - 2217 , - 1306 , - 1331 , - 2292 , - 1693 , - 2030 , - 807 , - 520 , - 1169 , - 258 , - 283 , - 1244 , - 645 , - 982 , - 2255 , - 1968 , - 121 , - 1706 , - 1731 , - 196 , - 2093 , - 2430 , - 1207 , - 920 , - 1569 , - 658 , - 683 , - 1644 , - 1045 , - 1382 , - 159 , - 2368 , - 521 , - 2106 , - 2131 , - 596 , - 2493 , - 334 , - 1607 , - 1320 , - 1969 , - 1058 , - 1083 , - 2044 , - 1445 , - 1782 , - 559 , - 272 , - 921 , - 10 , - 35 , - 996 , - 397 , - 734 , - 2007 , - 1720 , - 2369 , - 1458 , - 1483 , - 2444 , - 1845 , - 2182 , - 959 , - 672 , - 1321 , - 410 , - 435 , - 1396 , - 797 , - 1134 , - 2407 , - 2120 , - 273 , - 1858 , - 1883 , - 348 , - 2245 , - 86 , - 1359 , - 1072 , - 1721 , - 810 , - 835 , - 1796 , - 1197 , - 1534 , - 311 , - 24 , - 673 , - 2258 , - 2283 , - 748 , - 149 , - 486 , - 1759 , - 1472 , - 2121 , - 1210 , - 1235 , - 2196 , - 1597 , - 1934 , - 711 , - 424 , - 1073 , - 162 , - 187 , - 1148 , - 549 , - 886 , - 2159 , - 1872 , - 25 , - 1610 , - 1635 , - 100 , - 1997 , - 2334 , - 1111 , - 824 , - 1473 , - 562 , - 587 , - 1548 , - 949 , - 1286 , - 63 , - 2272 , - 425 , - 2010 , - 2035 , - 500 , - 2397 , - 238 , - 1511 , - 1224 , - 1873 , - 962 , - 987 , - 1948 , - 1349 , - 1686 , - 463 , - 176 , - 825 , - 2410 , - 2435 , - 900 , - 301 , - 638 , - 1911 , - 1624 , - 2273 , - 1362 , - 1387 , - 2348 , - 1749 , - 2086 , - 863 , - 576 , - 1225 , - 314 , - 339 , - 1300 , - 701 , - 1038 , - 2311 , - 2024 , - 177 , - 1762 , - 1787 , - 252 , - 2149 , - 2486 , - 1263 , - 976 , - 1625 , - 714 , - 739 , - 1700 , - 1101 , - 1438 , - 215 , - 2424 , - 577 , - 2162 , - 2187 , - 652 , - 53 , - 390 , - 1663 , - 1376 , - 2025 , - 1114 , - 1139 , - 2100 , - 1501 , - 1838 , - 615 , - 328 , - 977 , - 66 , - 91 , - 1052 , - 453 , - 790 , - 2063 , - 1776 , - 2425 , - 1514 , - 1539 , - 4 , - 1901 , - 2238 , - 1015 , - 728 , - 1377 , - 466 , - 491 , - 1452 , - 853 , - 1190 , - 2463 , - 2176 , - 329 , - 1914 , - 1939 , - 404 , - 2301 , - 142 , - 1415 , - 1128 , - 1777 , - 866 , - 891 , - 1852 , - 1253 , - 1590 , - 367 , - 80 , - 729 , - 2314 , - 2339 , - 804 , - 205 , - 542 , - 1815 , - 1528 , - 2177 , - 1266 , - 1291 , - 2252 , - 1653 , - 1990 , - 767 , - 480 , - 1129 , - 218 , - 243 , - 1204 , - 605 , - 942 , - 2215 , - 1928 , - 81 , - 1666 , - 1691 , - 156 , - 2053 , - 2390 , - 1167 , - 880 , - 1529 , - 618 , - 643 , - 1604 , - 1005 , - 1342 , - 119 , - 2328 , - 481 , - 2066 , - 2091 , - 556 , - 2453 , - 294 , - 1567 , - 1280 , - 1929 , - 1018 , - 1043 , - 2004 , - 1405 , - 1742 , - 519 , - 232 , - 881 , - 2466 , - 2491 , - 956 , - 357 , - 694 , - 1967 , - 1680 , - 2329 , - 1418 , - 1443 , - 2404 , - 1805 , - 2142 , - 919 , - 632 , - 1281 , - 370 , - 395 , - 1356 , - 757 , - 1094 , - 2367 , - 2080 , - 233 , - 1818 , - 1843 , - 308 , - 2205 , - 46 , - 1319 , - 1032 , - 1681 , - 770 , - 795 , - 1756 , - 1157 , - 1494 , - 271 , - 2480 , - 633 , - 2218 , - 2243 , - 708 , - 109 , - 446 , - 1719 , - 1432 , - 2081 , - 1170 , - 1195 , - 2156 , - 1557 , - 1894 , - 671 , - 384 , - 1033 , - 122 , - 147 , - 1108 , - 509 , - 846 , - 2119 , - 1832 , - 2481 , - 1570 , - 1595 , - 60 , - 1957 , - 2294 , - 1071 , - 784 , - 1433 , - 522 , - 547 , - 1508 , - 909 , - 1246 , - 23 , - 2232 , - 385 , - 1970 , - 1995 , - 460 , - 2357 , - 198 , - 1471 , - 1184 , - 1833 , - 922 , - 947 , - 1908 , - 1309 , - 1646 , - 423 , - 136 , - 785 , - 2370 , - 2395 , - 860 , - 261 , - 598 , - 1871 , - 1584 , - 2233 , - 1322 , - 1347 , - 2308 , - 1709 , - 2046 , - 823 , - 536 , - 1185 , - 274 , - 299 , - 1260 , - 661 , - 998 , - 2271 , - 1984 , - 137 , - 1722 , - 1747 , - 212 , - 2109 , - 2446 , - 1223 , - 936 , - 1585 , - 674 , - 699 , - 1660 , - 1061 , - 1398 , - 175 , - 2384 , - 537 , - 2122 , - 2147 , - 612 , - 13 , - 350 , - 1623 , - 1336 , - 1985 , - 1074 , - 1099 , - 2060 , - 1461 , - 1798 , - 575 , - 288 , - 937 , - 26 , - 51 , - 1012 , - 413 , - 750 , - 2023 , - 1736 , - 2385 , - 1474 , - 1499 , - 2460 , - 1861 , - 2198 , - 975 , - 688 , - 1337 , - 426 , - 451 , - 1412 , - 813 , - 1150 , - 2423 , - 2136 , - 289 , - 1874 , - 1899 , - 364 , - 2261 , - 102 , - 1375 , - 1088 , - 1737 , - 826 , - 851 , - 1812 , - 1213 , - 1550 , - 327 , - 40 , - 689 , - 2274 , - 2299 , - 764 , - 165 , - 502 , - 1775 , - 1488 , - 2137 , - 1226 , - 1251 , - 2212 , - 1613 , - 1950 , - 727 , - 440 , - 1089 , - 178 , - 203 , - 1164 , - 565 , - 902 , - 2175 , - 1888 , - 41 , - 1626 , - 1651 , - 116 , - 2013 , - 2350 , - 1127 , - 840 , - 1489 , - 578 , - 603 , - 1564 , - 965 , - 1302 , - 79 , - 2288 , - 441 , - 2026 , - 2051 , - 516 , - 2413 , - 254 , - 1527 , - 1240 , - 1889 , - 978 , - 1003 , - 1964 , - 1365 , - 1702 , - 479 , - 192 , - 841 , - 2426 , - 2451 , - 916 , - 317 , - 654 , - 1927 , - 1640 , - 2289 , - 1378 , - 1403 , - 2364 , - 1765 , - 2102 , - 879 , - 592 , - 1241 , - 330 , - 355 , - 1316 , - 717 , - 1054 , - 2327 , - 2040 , - 193 , - 1778 , - 1803 , - 268 , - 2165 , - 6 , - 1279 , - 992 , - 1641 , - 730 , - 755 , - 1716 , - 1117 , - 1454 , - 231 , - 2440 , - 593 , - 2178 , - 2203 , - 668 , - 69 , - 406 , - 1679 , - 1392 , - 2041 , - 1130 , - 1155 , - 2116 , - 1517 , - 1854 , - 631 , - 344 , - 993 , - 82 , - 107 , - 1068 , - 469 , - 806 , - 2079 , - 1792 , - 2441 , - 1530 , - 1555 , - 20 , - 1917 , - 2254 , - 1031 , - 744 , - 1393 , - 482 , - 507 , - 1468 , - 869 , - 1206 , - 2479 , - 2192 , - 345 , - 1930 , - 1955 , - 420 , - 2317 , - 158 , - 1431 , - 1144 , - 1793 , - 882 , - 907 , - 1868 , - 1269 , - 1606 , - 383 , - 96 , - 745 , - 2330 , - 2355 , - 820 , - 221 , - 558 , - 1831 , - 1544 , - 2193 , - 1282 , - 1307 , - 2268 , - 1669 , - 2006 , - 783 , - 496 , - 1145 , - 234 , - 259 , - 1220 , - 621 , - 958 , - 2231 , - 1944 , - 97 , - 1682 , - 1707 , - 172 , - 2069 , - 2406 , - 1183 , - 896 , - 1545 , - 634 , - 659 , - 1620 , - 1021 , - 1358 , - 135 , - 2344 , - 497 , - 2082 , - 2107 , - 572 , - 2469 , - 310 , - 1583 , - 1296 , - 1945 , - 1034 , - 1059 , - 2020 , - 1421 , - 1758 , - 535 , - 248 , - 897 , - 2482 , - 11 , - 972 , - 373 , - 710 , - 1983 , - 1696 , - 2345 , - 1434 , - 1459 , - 2420 , - 1821 , - 2158 , - 935 , - 648 , - 1297 , - 386 , - 411 , - 1372 , - 773 , - 1110 , - 2383 , - 2096 , - 249 , - 1834 , - 1859 , - 324 , - 2221 , - 62 , - 1335 , - 1048 , - 1697 , - 786 , - 811 , - 1772 , - 1173 , - 1510 , - 287 , - 0 , - 119 , - 398 , - 837 , - 1436 , - 2195 , - 554 , - 1633 , - 312 , - 1711 , - 710 , - 2429 , - 1748 , - 1227 , - 866 , - 665 , - 624 , - 743 , - 1022 , - 1461 , - 2060 , - 259 , - 1178 , - 2257 , - 936 , - 2335 , - 1334 , - 493 , - 2372 , - 1851 , - 1490 , - 1289 , - 1248 , - 1367 , - 1646 , - 2085 , - 124 , - 883 , - 1802 , - 321 , - 1560 , - 399 , - 1958 , - 1117 , - 436 , - 2475 , - 2114 , - 1913 , - 1872 , - 1991 , - 2270 , - 149 , - 748 , - 1507 , - 2426 , - 945 , - 2184 , - 1023 , - 22 , - 1741 , - 1060 , - 539 , - 178 , - 2537 , - 2496 , - 55 , - 334 , - 773 , - 1372 , - 2131 , - 490 , - 1569 , - 248 , - 1647 , - 646 , - 2365 , - 1684 , - 1163 , - 802 , - 601 , - 560 , - 679 , - 958 , - 1397 , - 1996 , - 195 , - 1114 , - 2193 , - 872 , - 2271 , - 1270 , - 429 , - 2308 , - 1787 , - 1426 , - 1225 , - 1184 , - 1303 , - 1582 , - 2021 , - 60 , - 819 , - 1738 , - 257 , - 1496 , - 335 , - 1894 , - 1053 , - 372 , - 2411 , - 2050 , - 1849 , - 1808 , - 1927 , - 2206 , - 85 , - 684 , - 1443 , - 2362 , - 881 , - 2120 , - 959 , - 2518 , - 1677 , - 996 , - 475 , - 114 , - 2473 , - 2432 , - 2551 , - 270 , - 709 , - 1308 , - 2067 , - 426 , - 1505 , - 184 , - 1583 , - 582 , - 2301 , - 1620 , - 1099 , - 738 , - 537 , - 496 , - 615 , - 894 , - 1333 , - 1932 , - 131 , - 1050 , - 2129 , - 808 , - 2207 , - 1206 , - 365 , - 2244 , - 1723 , - 1362 , - 1161 , - 1120 , - 1239 , - 1518 , - 1957 , - 2556 , - 755 , - 1674 , - 193 , - 1432 , - 271 , - 1830 , - 989 , - 308 , - 2347 , - 1986 , - 1785 , - 1744 , - 1863 , - 2142 , - 21 , - 620 , - 1379 , - 2298 , - 817 , - 2056 , - 895 , - 2454 , - 1613 , - 932 , - 411 , - 50 , - 2409 , - 2368 , - 2487 , - 206 , - 645 , - 1244 , - 2003 , - 362 , - 1441 , - 120 , - 1519 , - 518 , - 2237 , - 1556 , - 1035 , - 674 , - 473 , - 432 , - 551 , - 830 , - 1269 , - 1868 , - 67 , - 986 , - 2065 , - 744 , - 2143 , - 1142 , - 301 , - 2180 , - 1659 , - 1298 , - 1097 , - 1056 , - 1175 , - 1454 , - 1893 , - 2492 , - 691 , - 1610 , - 129 , - 1368 , - 207 , - 1766 , - 925 , - 244 , - 2283 , - 1922 , - 1721 , - 1680 , - 1799 , - 2078 , - 2517 , - 556 , - 1315 , - 2234 , - 753 , - 1992 , - 831 , - 2390 , - 1549 , - 868 , - 347 , - 2546 , - 2345 , - 2304 , - 2423 , - 142 , - 581 , - 1180 , - 1939 , - 298 , - 1377 , - 56 , - 1455 , - 454 , - 2173 , - 1492 , - 971 , - 610 , - 409 , - 368 , - 487 , - 766 , - 1205 , - 1804 , - 3 , - 922 , - 2001 , - 680 , - 2079 , - 1078 , - 237 , - 2116 , - 1595 , - 1234 , - 1033 , - 992 , - 1111 , - 1390 , - 1829 , - 2428 , - 627 , - 1546 , - 65 , - 1304 , - 143 , - 1702 , - 861 , - 180 , - 2219 , - 1858 , - 1657 , - 1616 , - 1735 , - 2014 , - 2453 , - 492 , - 1251 , - 2170 , - 689 , - 1928 , - 767 , - 2326 , - 1485 , - 804 , - 283 , - 2482 , - 2281 , - 2240 , - 2359 , - 78 , - 517 , - 1116 , - 1875 , - 234 , - 1313 , - 2552 , - 1391 , - 390 , - 2109 , - 1428 , - 907 , - 546 , - 345 , - 304 , - 423 , - 702 , - 1141 , - 1740 , - 2499 , - 858 , - 1937 , - 616 , - 2015 , - 1014 , - 173 , - 2052 , - 1531 , - 1170 , - 969 , - 928 , - 1047 , - 1326 , - 1765 , - 2364 , - 563 , - 1482 , - 1 , - 1240 , - 79 , - 1638 , - 797 , - 116 , - 2155 , - 1794 , - 1593 , - 1552 , - 1671 , - 1950 , - 2389 , - 428 , - 1187 , - 2106 , - 625 , - 1864 , - 703 , - 2262 , - 1421 , - 740 , - 219 , - 2418 , - 2217 , - 2176 , - 2295 , - 14 , - 453 , - 1052 , - 1811 , - 170 , - 1249 , - 2488 , - 1327 , - 326 , - 2045 , - 1364 , - 843 , - 482 , - 281 , - 240 , - 359 , - 638 , - 1077 , - 1676 , - 2435 , - 794 , - 1873 , - 552 , - 1951 , - 950 , - 109 , - 1988 , - 1467 , - 1106 , - 905 , - 864 , - 983 , - 1262 , - 1701 , - 2300 , - 499 , - 1418 , - 2497 , - 1176 , - 15 , - 1574 , - 733 , - 52 , - 2091 , - 1730 , - 1529 , - 1488 , - 1607 , - 1886 , - 2325 , - 364 , - 1123 , - 2042 , - 561 , - 1800 , - 639 , - 2198 , - 1357 , - 676 , - 155 , - 2354 , - 2153 , - 2112 , - 2231 , - 2510 , - 389 , - 988 , - 1747 , - 106 , - 1185 , - 2424 , - 1263 , - 262 , - 1981 , - 1300 , - 779 , - 418 , - 217 , - 176 , - 295 , - 574 , - 1013 , - 1612 , - 2371 , - 730 , - 1809 , - 488 , - 1887 , - 886 , - 45 , - 1924 , - 1403 , - 1042 , - 841 , - 800 , - 919 , - 1198 , - 1637 , - 2236 , - 435 , - 1354 , - 2433 , - 1112 , - 2511 , - 1510 , - 669 , - 2548 , - 2027 , - 1666 , - 1465 , - 1424 , - 1543 , - 1822 , - 2261 , - 300 , - 1059 , - 1978 , - 497 , - 1736 , - 575 , - 2134 , - 1293 , - 612 , - 91 , - 2290 , - 2089 , - 2048 , - 2167 , - 2446 , - 325 , - 924 , - 1683 , - 42 , - 1121 , - 2360 , - 1199 , - 198 , - 1917 , - 1236 , - 715 , - 354 , - 153 , - 112 , - 231 , - 510 , - 949 , - 1548 , - 2307 , - 666 , - 1745 , - 424 , - 1823 , - 822 , - 2541 , - 1860 , - 1339 , - 978 , - 777 , - 736 , - 855 , - 1134 , - 1573 , - 2172 , - 371 , - 1290 , - 2369 , - 1048 , - 2447 , - 1446 , - 605 , - 2484 , - 1963 , - 1602 , - 1401 , - 1360 , - 1479 , - 1758 , - 2197 , - 236 , - 995 , - 1914 , - 433 , - 1672 , - 511 , - 2070 , - 1229 , - 548 , - 27 , - 2226 , - 2025 , - 1984 , - 2103 , - 2382 , - 261 , - 860 , - 1619 , - 2538 , - 1057 , - 2296 , - 1135 , - 134 , - 1853 , - 1172 , - 651 , - 290 , - 89 , - 48 , - 167 , - 446 , - 885 , - 1484 , - 2243 , - 602 , - 1681 , - 360 , - 1759 , - 758 , - 2477 , - 1796 , - 1275 , - 914 , - 713 , - 672 , - 791 , - 1070 , - 1509 , - 2108 , - 307 , - 1226 , - 2305 , - 984 , - 2383 , - 1382 , - 541 , - 2420 , - 1899 , - 1538 , - 1337 , - 1296 , - 1415 , - 1694 , - 2133 , - 172 , - 931 , - 1850 , - 369 , - 1608 , - 447 , - 2006 , - 1165 , - 484 , - 2523 , - 2162 , - 1961 , - 1920 , - 2039 , - 2318 , - 197 , - 796 , - 1555 , - 2474 , - 993 , - 2232 , - 1071 , - 70 , - 1789 , - 1108 , - 587 , - 226 , - 25 , - 2544 , - 103 , - 382 , - 821 , - 1420 , - 2179 , - 538 , - 1617 , - 296 , - 1695 , - 694 , - 2413 , - 1732 , - 1211 , - 850 , - 649 , - 608 , - 727 , - 1006 , - 1445 , - 2044 , - 243 , - 1162 , - 2241 , - 920 , - 2319 , - 1318 , - 477 , - 2356 , - 1835 , - 1474 , - 1273 , - 1232 , - 1351 , - 1630 , - 2069 , - 108 , - 867 , - 1786 , - 305 , - 1544 , - 383 , - 1942 , - 1101 , - 420 , - 2459 , - 2098 , - 1897 , - 1856 , - 1975 , - 2254 , - 133 , - 732 , - 1491 , - 2410 , - 929 , - 2168 , - 1007 , - 6 , - 1725 , - 1044 , - 523 , - 162 , - 2521 , - 2480 , - 39 , - 318 , - 757 , - 1356 , - 2115 , - 474 , - 1553 , - 232 , - 1631 , - 630 , - 2349 , - 1668 , - 1147 , - 786 , - 585 , - 544 , - 663 , - 942 , - 1381 , - 1980 , - 179 , - 1098 , - 2177 , - 856 , - 2255 , - 1254 , - 413 , - 2292 , - 1771 , - 1410 , - 1209 , - 1168 , - 1287 , - 1566 , - 2005 , - 44 , - 803 , - 1722 , - 241 , - 1480 , - 319 , - 1878 , - 1037 , - 356 , - 2395 , - 2034 , - 1833 , - 1792 , - 1911 , - 2190 , - 69 , - 668 , - 1427 , - 2346 , - 865 , - 2104 , - 943 , - 2502 , - 1661 , - 980 , - 459 , - 98 , - 2457 , - 2416 , - 2535 , - 254 , - 693 , - 1292 , - 2051 , - 410 , - 1489 , - 168 , - 1567 , - 566 , - 2285 , - 1604 , - 1083 , - 722 , - 521 , - 480 , - 599 , - 878 , - 1317 , - 1916 , - 115 , - 1034 , - 2113 , - 792 , - 2191 , - 1190 , - 349 , - 2228 , - 1707 , - 1346 , - 1145 , - 1104 , - 1223 , - 1502 , - 1941 , - 2540 , - 739 , - 1658 , - 177 , - 1416 , - 255 , - 1814 , - 973 , - 292 , - 2331 , - 1970 , - 1769 , - 1728 , - 1847 , - 2126 , - 5 , - 604 , - 1363 , - 2282 , - 801 , - 2040 , - 879 , - 2438 , - 1597 , - 916 , - 395 , - 34 , - 2393 , - 2352 , - 2471 , - 190 , - 629 , - 1228 , - 1987 , - 346 , - 1425 , - 104 , - 1503 , - 502 , - 2221 , - 1540 , - 1019 , - 658 , - 457 , - 416 , - 535 , - 814 , - 1253 , - 1852 , - 51 , - 970 , - 2049 , - 728 , - 2127 , - 1126 , - 285 , - 2164 , - 1643 , - 1282 , - 1081 , - 1040 , - 1159 , - 1438 , - 1877 , - 2476 , - 675 , - 1594 , - 113 , - 1352 , - 191 , - 1750 , - 909 , - 228 , - 2267 , - 1906 , - 1705 , - 1664 , - 1783 , - 2062 , - 2501 , - 540 , - 1299 , - 2218 , - 737 , - 1976 , - 815 , - 2374 , - 1533 , - 852 , - 331 , - 2530 , - 2329 , - 2288 , - 2407 , - 126 , - 565 , - 1164 , - 1923 , - 282 , - 1361 , - 40 , - 1439 , - 438 , - 2157 , - 1476 , - 955 , - 594 , - 393 , - 352 , - 471 , - 750 , - 1189 , - 1788 , - 2547 , - 906 , - 1985 , - 664 , - 2063 , - 1062 , - 221 , - 2100 , - 1579 , - 1218 , - 1017 , - 976 , - 1095 , - 1374 , - 1813 , - 2412 , - 611 , - 1530 , - 49 , - 1288 , - 127 , - 1686 , - 845 , - 164 , - 2203 , - 1842 , - 1641 , - 1600 , - 1719 , - 1998 , - 2437 , - 476 , - 1235 , - 2154 , - 673 , - 1912 , - 751 , - 2310 , - 1469 , - 788 , - 267 , - 2466 , - 2265 , - 2224 , - 2343 , - 62 , - 501 , - 1100 , - 1859 , - 218 , - 1297 , - 2536 , - 1375 , - 374 , - 2093 , - 1412 , - 891 , - 530 , - 329 , - 288 , - 407 , - 686 , - 1125 , - 1724 , - 2483 , - 842 , - 1921 , - 600 , - 1999 , - 998 , - 157 , - 2036 , - 1515 , - 1154 , - 953 , - 912 , - 1031 , - 1310 , - 1749 , - 2348 , - 547 , - 1466 , - 2545 , - 1224 , - 63 , - 1622 , - 781 , - 100 , - 2139 , - 1778 , - 1577 , - 1536 , - 1655 , - 1934 , - 2373 , - 412 , - 1171 , - 2090 , - 609 , - 1848 , - 687 , - 2246 , - 1405 , - 724 , - 203 , - 2402 , - 2201 , - 2160 , - 2279 , - 2558 , - 437 , - 1036 , - 1795 , - 154 , - 1233 , - 2472 , - 1311 , - 310 , - 2029 , - 1348 , - 827 , - 466 , - 265 , - 224 , - 343 , - 622 , - 1061 , - 1660 , - 2419 , - 778 , - 1857 , - 536 , - 1935 , - 934 , - 93 , - 1972 , - 1451 , - 1090 , - 889 , - 848 , - 967 , - 1246 , - 1685 , - 2284 , - 483 , - 1402 , - 2481 , - 1160 , - 2559 , - 1558 , - 717 , - 36 , - 2075 , - 1714 , - 1513 , - 1472 , - 1591 , - 1870 , - 2309 , - 348 , - 1107 , - 2026 , - 545 , - 1784 , - 623 , - 2182 , - 1341 , - 660 , - 139 , - 2338 , - 2137 , - 2096 , - 2215 , - 2494 , - 373 , - 972 , - 1731 , - 90 , - 1169 , - 2408 , - 1247 , - 246 , - 1965 , - 1284 , - 763 , - 402 , - 201 , - 160 , - 279 , - 558 , - 997 , - 1596 , - 2355 , - 714 , - 1793 , - 472 , - 1871 , - 870 , - 29 , - 1908 , - 1387 , - 1026 , - 825 , - 784 , - 903 , - 1182 , - 1621 , - 2220 , - 419 , - 1338 , - 2417 , - 1096 , - 2495 , - 1494 , - 653 , - 2532 , - 2011 , - 1650 , - 1449 , - 1408 , - 1527 , - 1806 , - 2245 , - 284 , - 1043 , - 1962 , - 481 , - 1720 , - 559 , - 2118 , - 1277 , - 596 , - 75 , - 2274 , - 2073 , - 2032 , - 2151 , - 2430 , - 309 , - 908 , - 1667 , - 26 , - 1105 , - 2344 , - 1183 , - 182 , - 1901 , - 1220 , - 699 , - 338 , - 137 , - 96 , - 215 , - 494 , - 933 , - 1532 , - 2291 , - 650 , - 1729 , - 408 , - 1807 , - 806 , - 2525 , - 1844 , - 1323 , - 962 , - 761 , - 720 , - 839 , - 1118 , - 1557 , - 2156 , - 355 , - 1274 , - 2353 , - 1032 , - 2431 , - 1430 , - 589 , - 2468 , - 1947 , - 1586 , - 1385 , - 1344 , - 1463 , - 1742 , - 2181 , - 220 , - 979 , - 1898 , - 417 , - 1656 , - 495 , - 2054 , - 1213 , - 532 , - 11 , - 2210 , - 2009 , - 1968 , - 2087 , - 2366 , - 245 , - 844 , - 1603 , - 2522 , - 1041 , - 2280 , - 1119 , - 118 , - 1837 , - 1156 , - 635 , - 274 , - 73 , - 32 , - 151 , - 430 , - 869 , - 1468 , - 2227 , - 586 , - 1665 , - 344 , - 1743 , - 742 , - 2461 , - 1780 , - 1259 , - 898 , - 697 , - 656 , - 775 , - 1054 , - 1493 , - 2092 , - 291 , - 1210 , - 2289 , - 968 , - 2367 , - 1366 , - 525 , - 2404 , - 1883 , - 1522 , - 1321 , - 1280 , - 1399 , - 1678 , - 2117 , - 156 , - 915 , - 1834 , - 353 , - 1592 , - 431 , - 1990 , - 1149 , - 468 , - 2507 , - 2146 , - 1945 , - 1904 , - 2023 , - 2302 , - 181 , - 780 , - 1539 , - 2458 , - 977 , - 2216 , - 1055 , - 54 , - 1773 , - 1092 , - 571 , - 210 , - 9 , - 2528 , - 87 , - 366 , - 805 , - 1404 , - 2163 , - 522 , - 1601 , - 280 , - 1679 , - 678 , - 2397 , - 1716 , - 1195 , - 834 , - 633 , - 592 , - 711 , - 990 , - 1429 , - 2028 , - 227 , - 1146 , - 2225 , - 904 , - 2303 , - 1302 , - 461 , - 2340 , - 1819 , - 1458 , - 1257 , - 1216 , - 1335 , - 1614 , - 2053 , - 92 , - 851 , - 1770 , - 289 , - 1528 , - 367 , - 1926 , - 1085 , - 404 , - 2443 , - 2082 , - 1881 , - 1840 , - 1959 , - 2238 , - 117 , - 716 , - 1475 , - 2394 , - 913 , - 2152 , - 991 , - 2550 , - 1709 , - 1028 , - 507 , - 146 , - 2505 , - 2464 , - 23 , - 302 , - 741 , - 1340 , - 2099 , - 458 , - 1537 , - 216 , - 1615 , - 614 , - 2333 , - 1652 , - 1131 , - 770 , - 569 , - 528 , - 647 , - 926 , - 1365 , - 1964 , - 163 , - 1082 , - 2161 , - 840 , - 2239 , - 1238 , - 397 , - 2276 , - 1755 , - 1394 , - 1193 , - 1152 , - 1271 , - 1550 , - 1989 , - 28 , - 787 , - 1706 , - 225 , - 1464 , - 303 , - 1862 , - 1021 , - 340 , - 2379 , - 2018 , - 1817 , - 1776 , - 1895 , - 2174 , - 53 , - 652 , - 1411 , - 2330 , - 849 , - 2088 , - 927 , - 2486 , - 1645 , - 964 , - 443 , - 82 , - 2441 , - 2400 , - 2519 , - 238 , - 677 , - 1276 , - 2035 , - 394 , - 1473 , - 152 , - 1551 , - 550 , - 2269 , - 1588 , - 1067 , - 706 , - 505 , - 464 , - 583 , - 862 , - 1301 , - 1900 , - 99 , - 1018 , - 2097 , - 776 , - 2175 , - 1174 , - 333 , - 2212 , - 1691 , - 1330 , - 1129 , - 1088 , - 1207 , - 1486 , - 1925 , - 2524 , - 723 , - 1642 , - 161 , - 1400 , - 239 , - 1798 , - 957 , - 276 , - 2315 , - 1954 , - 1753 , - 1712 , - 1831 , - 2110 , - 2549 , - 588 , - 1347 , - 2266 , - 785 , - 2024 , - 863 , - 2422 , - 1581 , - 900 , - 379 , - 18 , - 2377 , - 2336 , - 2455 , - 174 , - 613 , - 1212 , - 1971 , - 330 , - 1409 , - 88 , - 1487 , - 486 , - 2205 , - 1524 , - 1003 , - 642 , - 441 , - 400 , - 519 , - 798 , - 1237 , - 1836 , - 35 , - 954 , - 2033 , - 712 , - 2111 , - 1110 , - 269 , - 2148 , - 1627 , - 1266 , - 1065 , - 1024 , - 1143 , - 1422 , - 1861 , - 2460 , - 659 , - 1578 , - 97 , - 1336 , - 175 , - 1734 , - 893 , - 212 , - 2251 , - 1890 , - 1689 , - 1648 , - 1767 , - 2046 , - 2485 , - 524 , - 1283 , - 2202 , - 721 , - 1960 , - 799 , - 2358 , - 1517 , - 836 , - 315 , - 2514 , - 2313 , - 2272 , - 2391 , - 110 , - 549 , - 1148 , - 1907 , - 266 , - 1345 , - 24 , - 1423 , - 422 , - 2141 , - 1460 , - 939 , - 578 , - 377 , - 336 , - 455 , - 734 , - 1173 , - 1772 , - 2531 , - 890 , - 1969 , - 648 , - 2047 , - 1046 , - 205 , - 2084 , - 1563 , - 1202 , - 1001 , - 960 , - 1079 , - 1358 , - 1797 , - 2396 , - 595 , - 1514 , - 33 , - 1272 , - 111 , - 1670 , - 829 , - 148 , - 2187 , - 1826 , - 1625 , - 1584 , - 1703 , - 1982 , - 2421 , - 460 , - 1219 , - 2138 , - 657 , - 1896 , - 735 , - 2294 , - 1453 , - 772 , - 251 , - 2450 , - 2249 , - 2208 , - 2327 , - 46 , - 485 , - 1084 , - 1843 , - 202 , - 1281 , - 2520 , - 1359 , - 358 , - 2077 , - 1396 , - 875 , - 514 , - 313 , - 272 , - 391 , - 670 , - 1109 , - 1708 , - 2467 , - 826 , - 1905 , - 584 , - 1983 , - 982 , - 141 , - 2020 , - 1499 , - 1138 , - 937 , - 896 , - 1015 , - 1294 , - 1733 , - 2332 , - 531 , - 1450 , - 2529 , - 1208 , - 47 , - 1606 , - 765 , - 84 , - 2123 , - 1762 , - 1561 , - 1520 , - 1639 , - 1918 , - 2357 , - 396 , - 1155 , - 2074 , - 593 , - 1832 , - 671 , - 2230 , - 1389 , - 708 , - 187 , - 2386 , - 2185 , - 2144 , - 2263 , - 2542 , - 421 , - 1020 , - 1779 , - 138 , - 1217 , - 2456 , - 1295 , - 294 , - 2013 , - 1332 , - 811 , - 450 , - 249 , - 208 , - 327 , - 606 , - 1045 , - 1644 , - 2403 , - 762 , - 1841 , - 520 , - 1919 , - 918 , - 77 , - 1956 , - 1435 , - 1074 , - 873 , - 832 , - 951 , - 1230 , - 1669 , - 2268 , - 467 , - 1386 , - 2465 , - 1144 , - 2543 , - 1542 , - 701 , - 20 , - 2059 , - 1698 , - 1497 , - 1456 , - 1575 , - 1854 , - 2293 , - 332 , - 1091 , - 2010 , - 529 , - 1768 , - 607 , - 2166 , - 1325 , - 644 , - 123 , - 2322 , - 2121 , - 2080 , - 2199 , - 2478 , - 357 , - 956 , - 1715 , - 74 , - 1153 , - 2392 , - 1231 , - 230 , - 1949 , - 1268 , - 747 , - 386 , - 185 , - 144 , - 263 , - 542 , - 981 , - 1580 , - 2339 , - 698 , - 1777 , - 456 , - 1855 , - 854 , - 13 , - 1892 , - 1371 , - 1010 , - 809 , - 768 , - 887 , - 1166 , - 1605 , - 2204 , - 403 , - 1322 , - 2401 , - 1080 , - 2479 , - 1478 , - 637 , - 2516 , - 1995 , - 1634 , - 1433 , - 1392 , - 1511 , - 1790 , - 2229 , - 268 , - 1027 , - 1946 , - 465 , - 1704 , - 543 , - 2102 , - 1261 , - 580 , - 59 , - 2258 , - 2057 , - 2016 , - 2135 , - 2414 , - 293 , - 892 , - 1651 , - 10 , - 1089 , - 2328 , - 1167 , - 166 , - 1885 , - 1204 , - 683 , - 322 , - 121 , - 80 , - 199 , - 478 , - 917 , - 1516 , - 2275 , - 634 , - 1713 , - 392 , - 1791 , - 790 , - 2509 , - 1828 , - 1307 , - 946 , - 745 , - 704 , - 823 , - 1102 , - 1541 , - 2140 , - 339 , - 1258 , - 2337 , - 1016 , - 2415 , - 1414 , - 573 , - 2452 , - 1931 , - 1570 , - 1369 , - 1328 , - 1447 , - 1726 , - 2165 , - 204 , - 963 , - 1882 , - 401 , - 1640 , - 479 , - 2038 , - 1197 , - 516 , - 2555 , - 2194 , - 1993 , - 1952 , - 2071 , - 2350 , - 229 , - 828 , - 1587 , - 2506 , - 1025 , - 2264 , - 1103 , - 102 , - 1821 , - 1140 , - 619 , - 258 , - 57 , - 16 , - 135 , - 414 , - 853 , - 1452 , - 2211 , - 570 , - 1649 , - 328 , - 1727 , - 726 , - 2445 , - 1764 , - 1243 , - 882 , - 681 , - 640 , - 759 , - 1038 , - 1477 , - 2076 , - 275 , - 1194 , - 2273 , - 952 , - 2351 , - 1350 , - 509 , - 2388 , - 1867 , - 1506 , - 1305 , - 1264 , - 1383 , - 1662 , - 2101 , - 140 , - 899 , - 1818 , - 337 , - 1576 , - 415 , - 1974 , - 1133 , - 452 , - 2491 , - 2130 , - 1929 , - 1888 , - 2007 , - 2286 , - 165 , - 764 , - 1523 , - 2442 , - 961 , - 2200 , - 1039 , - 38 , - 1757 , - 1076 , - 555 , - 194 , - 2553 , - 2512 , - 71 , - 350 , - 789 , - 1388 , - 2147 , - 506 , - 1585 , - 264 , - 1663 , - 662 , - 2381 , - 1700 , - 1179 , - 818 , - 617 , - 576 , - 695 , - 974 , - 1413 , - 2012 , - 211 , - 1130 , - 2209 , - 888 , - 2287 , - 1286 , - 445 , - 2324 , - 1803 , - 1442 , - 1241 , - 1200 , - 1319 , - 1598 , - 2037 , - 76 , - 835 , - 1754 , - 273 , - 1512 , - 351 , - 1910 , - 1069 , - 388 , - 2427 , - 2066 , - 1865 , - 1824 , - 1943 , - 2222 , - 101 , - 700 , - 1459 , - 2378 , - 897 , - 2136 , - 975 , - 2534 , - 1693 , - 1012 , - 491 , - 130 , - 2489 , - 2448 , - 7 , - 286 , - 725 , - 1324 , - 2083 , - 442 , - 1521 , - 200 , - 1599 , - 598 , - 2317 , - 1636 , - 1115 , - 754 , - 553 , - 512 , - 631 , - 910 , - 1349 , - 1948 , - 147 , - 1066 , - 2145 , - 824 , - 2223 , - 1222 , - 381 , - 2260 , - 1739 , - 1378 , - 1177 , - 1136 , - 1255 , - 1534 , - 1973 , - 12 , - 771 , - 1690 , - 209 , - 1448 , - 287 , - 1846 , - 1005 , - 324 , - 2363 , - 2002 , - 1801 , - 1760 , - 1879 , - 2158 , - 37 , - 636 , - 1395 , - 2314 , - 833 , - 2072 , - 911 , - 2470 , - 1629 , - 948 , - 427 , - 66 , - 2425 , - 2384 , - 2503 , - 222 , - 661 , - 1260 , - 2019 , - 378 , - 1457 , - 136 , - 1535 , - 534 , - 2253 , - 1572 , - 1051 , - 690 , - 489 , - 448 , - 567 , - 846 , - 1285 , - 1884 , - 83 , - 1002 , - 2081 , - 760 , - 2159 , - 1158 , - 317 , - 2196 , - 1675 , - 1314 , - 1113 , - 1072 , - 1191 , - 1470 , - 1909 , - 2508 , - 707 , - 1626 , - 145 , - 1384 , - 223 , - 1782 , - 941 , - 260 , - 2299 , - 1938 , - 1737 , - 1696 , - 1815 , - 2094 , - 2533 , - 572 , - 1331 , - 2250 , - 769 , - 2008 , - 847 , - 2406 , - 1565 , - 884 , - 363 , - 2 , - 2361 , - 2320 , - 2439 , - 158 , - 597 , - 1196 , - 1955 , - 314 , - 1393 , - 72 , - 1471 , - 470 , - 2189 , - 1508 , - 987 , - 626 , - 425 , - 384 , - 503 , - 782 , - 1221 , - 1820 , - 19 , - 938 , - 2017 , - 696 , - 2095 , - 1094 , - 253 , - 2132 , - 1611 , - 1250 , - 1049 , - 1008 , - 1127 , - 1406 , - 1845 , - 2444 , - 643 , - 1562 , - 81 , - 1320 , - 159 , - 1718 , - 877 , - 196 , - 2235 , - 1874 , - 1673 , - 1632 , - 1751 , - 2030 , - 2469 , - 508 , - 1267 , - 2186 , - 705 , - 1944 , - 783 , - 2342 , - 1501 , - 820 , - 299 , - 2498 , - 2297 , - 2256 , - 2375 , - 94 , - 533 , - 1132 , - 1891 , - 250 , - 1329 , - 8 , - 1407 , - 406 , - 2125 , - 1444 , - 923 , - 562 , - 361 , - 320 , - 439 , - 718 , - 1157 , - 1756 , - 2515 , - 874 , - 1953 , - 632 , - 2031 , - 1030 , - 189 , - 2068 , - 1547 , - 1186 , - 985 , - 944 , - 1063 , - 1342 , - 1781 , - 2380 , - 579 , - 1498 , - 17 , - 1256 , - 95 , - 1654 , - 813 , - 132 , - 2171 , - 1810 , - 1609 , - 1568 , - 1687 , - 1966 , - 2405 , - 444 , - 1203 , - 2122 , - 641 , - 1880 , - 719 , - 2278 , - 1437 , - 756 , - 235 , - 2434 , - 2233 , - 2192 , - 2311 , - 30 , - 469 , - 1068 , - 1827 , - 186 , - 1265 , - 2504 , - 1343 , - 342 , - 2061 , - 1380 , - 859 , - 498 , - 297 , - 256 , - 375 , - 654 , - 1093 , - 1692 , - 2451 , - 810 , - 1889 , - 568 , - 1967 , - 966 , - 125 , - 2004 , - 1483 , - 1122 , - 921 , - 880 , - 999 , - 1278 , - 1717 , - 2316 , - 515 , - 1434 , - 2513 , - 1192 , - 31 , - 1590 , - 749 , - 68 , - 2107 , - 1746 , - 1545 , - 1504 , - 1623 , - 1902 , - 2341 , - 380 , - 1139 , - 2058 , - 577 , - 1816 , - 655 , - 2214 , - 1373 , - 692 , - 171 , - 2370 , - 2169 , - 2128 , - 2247 , - 2526 , - 405 , - 1004 , - 1763 , - 122 , - 1201 , - 2440 , - 1279 , - 278 , - 1997 , - 1316 , - 795 , - 434 , - 233 , - 192 , - 311 , - 590 , - 1029 , - 1628 , - 2387 , - 746 , - 1825 , - 504 , - 1903 , - 902 , - 61 , - 1940 , - 1419 , - 1058 , - 857 , - 816 , - 935 , - 1214 , - 1653 , - 2252 , - 451 , - 1370 , - 2449 , - 1128 , - 2527 , - 1526 , - 685 , - 4 , - 2043 , - 1682 , - 1481 , - 1440 , - 1559 , - 1838 , - 2277 , - 316 , - 1075 , - 1994 , - 513 , - 1752 , - 591 , - 2150 , - 1309 , - 628 , - 107 , - 2306 , - 2105 , - 2064 , - 2183 , - 2462 , - 341 , - 940 , - 1699 , - 58 , - 1137 , - 2376 , - 1215 , - 214 , - 1933 , - 1252 , - 731 , - 370 , - 169 , - 128 , - 247 , - 526 , - 965 , - 1564 , - 2323 , - 682 , - 1761 , - 440 , - 1839 , - 838 , - 2557 , - 1876 , - 1355 , - 994 , - 793 , - 752 , - 871 , - 1150 , - 1589 , - 2188 , - 387 , - 1306 , - 2385 , - 1064 , - 2463 , - 1462 , - 621 , - 2500 , - 1979 , - 1618 , - 1417 , - 1376 , - 1495 , - 1774 , - 2213 , - 252 , - 1011 , - 1930 , - 449 , - 1688 , - 527 , - 2086 , - 1245 , - 564 , - 43 , - 2242 , - 2041 , - 2000 , - 2119 , - 2398 , - 277 , - 876 , - 1635 , - 2554 , - 1073 , - 2312 , - 1151 , - 150 , - 1869 , - 1188 , - 667 , - 306 , - 105 , - 64 , - 183 , - 462 , - 901 , - 1500 , - 2259 , - 618 , - 1697 , - 376 , - 1775 , - 774 , - 2493 , - 1812 , - 1291 , - 930 , - 729 , - 688 , - 807 , - 1086 , - 1525 , - 2124 , - 323 , - 1242 , - 2321 , - 1000 , - 2399 , - 1398 , - 557 , - 2436 , - 1915 , - 1554 , - 1353 , - 1312 , - 1431 , - 1710 , - 2149 , - 188 , - 947 , - 1866 , - 385 , - 1624 , - 463 , - 2022 , - 1181 , - 500 , - 2539 , - 2178 , - 1977 , - 1936 , - 2055 , - 2334 , - 213 , - 812 , - 1571 , - 2490 , - 1009 , - 2248 , - 1087 , - 86 , - 1805 , - 1124 , - 603 , - 242 , - 41 , - 0 , - 191 , - 710 , - 1557 , - 108 , - 1611 , - 818 , - 353 , - 216 , - 407 , - 926 , - 1773 , - 324 , - 1827 , - 1034 , - 569 , - 432 , - 623 , - 1142 , - 1989 , - 540 , - 2043 , - 1250 , - 785 , - 648 , - 839 , - 1358 , - 2205 , - 756 , - 2259 , - 1466 , - 1001 , - 864 , - 1055 , - 1574 , - 2421 , - 972 , - 2475 , - 1682 , - 1217 , - 1080 , - 1271 , - 1790 , - 13 , - 1188 , - 67 , - 1898 , - 1433 , - 1296 , - 1487 , - 2006 , - 229 , - 1404 , - 283 , - 2114 , - 1649 , - 1512 , - 1703 , - 2222 , - 445 , - 1620 , - 499 , - 2330 , - 1865 , - 1728 , - 1919 , - 2438 , - 661 , - 1836 , - 715 , - 2546 , - 2081 , - 1944 , - 2135 , - 30 , - 877 , - 2052 , - 931 , - 138 , - 2297 , - 2160 , - 2351 , - 246 , - 1093 , - 2268 , - 1147 , - 354 , - 2513 , - 2376 , - 2567 , - 462 , - 1309 , - 2484 , - 1363 , - 570 , - 105 , - 2592 , - 159 , - 678 , - 1525 , - 76 , - 1579 , - 786 , - 321 , - 184 , - 375 , - 894 , - 1741 , - 292 , - 1795 , - 1002 , - 537 , - 400 , - 591 , - 1110 , - 1957 , - 508 , - 2011 , - 1218 , - 753 , - 616 , - 807 , - 1326 , - 2173 , - 724 , - 2227 , - 1434 , - 969 , - 832 , - 1023 , - 1542 , - 2389 , - 940 , - 2443 , - 1650 , - 1185 , - 1048 , - 1239 , - 1758 , - 2605 , - 1156 , - 35 , - 1866 , - 1401 , - 1264 , - 1455 , - 1974 , - 197 , - 1372 , - 251 , - 2082 , - 1617 , - 1480 , - 1671 , - 2190 , - 413 , - 1588 , - 467 , - 2298 , - 1833 , - 1696 , - 1887 , - 2406 , - 629 , - 1804 , - 683 , - 2514 , - 2049 , - 1912 , - 2103 , - 2622 , - 845 , - 2020 , - 899 , - 106 , - 2265 , - 2128 , - 2319 , - 214 , - 1061 , - 2236 , - 1115 , - 322 , - 2481 , - 2344 , - 2535 , - 430 , - 1277 , - 2452 , - 1331 , - 538 , - 73 , - 2560 , - 127 , - 646 , - 1493 , - 44 , - 1547 , - 754 , - 289 , - 152 , - 343 , - 862 , - 1709 , - 260 , - 1763 , - 970 , - 505 , - 368 , - 559 , - 1078 , - 1925 , - 476 , - 1979 , - 1186 , - 721 , - 584 , - 775 , - 1294 , - 2141 , - 692 , - 2195 , - 1402 , - 937 , - 800 , - 991 , - 1510 , - 2357 , - 908 , - 2411 , - 1618 , - 1153 , - 1016 , - 1207 , - 1726 , - 2573 , - 1124 , - 3 , - 1834 , - 1369 , - 1232 , - 1423 , - 1942 , - 165 , - 1340 , - 219 , - 2050 , - 1585 , - 1448 , - 1639 , - 2158 , - 381 , - 1556 , - 435 , - 2266 , - 1801 , - 1664 , - 1855 , - 2374 , - 597 , - 1772 , - 651 , - 2482 , - 2017 , - 1880 , - 2071 , - 2590 , - 813 , - 1988 , - 867 , - 74 , - 2233 , - 2096 , - 2287 , - 182 , - 1029 , - 2204 , - 1083 , - 290 , - 2449 , - 2312 , - 2503 , - 398 , - 1245 , - 2420 , - 1299 , - 506 , - 41 , - 2528 , - 95 , - 614 , - 1461 , - 12 , - 1515 , - 722 , - 257 , - 120 , - 311 , - 830 , - 1677 , - 228 , - 1731 , - 938 , - 473 , - 336 , - 527 , - 1046 , - 1893 , - 444 , - 1947 , - 1154 , - 689 , - 552 , - 743 , - 1262 , - 2109 , - 660 , - 2163 , - 1370 , - 905 , - 768 , - 959 , - 1478 , - 2325 , - 876 , - 2379 , - 1586 , - 1121 , - 984 , - 1175 , - 1694 , - 2541 , - 1092 , - 2595 , - 1802 , - 1337 , - 1200 , - 1391 , - 1910 , - 133 , - 1308 , - 187 , - 2018 , - 1553 , - 1416 , - 1607 , - 2126 , - 349 , - 1524 , - 403 , - 2234 , - 1769 , - 1632 , - 1823 , - 2342 , - 565 , - 1740 , - 619 , - 2450 , - 1985 , - 1848 , - 2039 , - 2558 , - 781 , - 1956 , - 835 , - 42 , - 2201 , - 2064 , - 2255 , - 150 , - 997 , - 2172 , - 1051 , - 258 , - 2417 , - 2280 , - 2471 , - 366 , - 1213 , - 2388 , - 1267 , - 474 , - 9 , - 2496 , - 63 , - 582 , - 1429 , - 2604 , - 1483 , - 690 , - 225 , - 88 , - 279 , - 798 , - 1645 , - 196 , - 1699 , - 906 , - 441 , - 304 , - 495 , - 1014 , - 1861 , - 412 , - 1915 , - 1122 , - 657 , - 520 , - 711 , - 1230 , - 2077 , - 628 , - 2131 , - 1338 , - 873 , - 736 , - 927 , - 1446 , - 2293 , - 844 , - 2347 , - 1554 , - 1089 , - 952 , - 1143 , - 1662 , - 2509 , - 1060 , - 2563 , - 1770 , - 1305 , - 1168 , - 1359 , - 1878 , - 101 , - 1276 , - 155 , - 1986 , - 1521 , - 1384 , - 1575 , - 2094 , - 317 , - 1492 , - 371 , - 2202 , - 1737 , - 1600 , - 1791 , - 2310 , - 533 , - 1708 , - 587 , - 2418 , - 1953 , - 1816 , - 2007 , - 2526 , - 749 , - 1924 , - 803 , - 10 , - 2169 , - 2032 , - 2223 , - 118 , - 965 , - 2140 , - 1019 , - 226 , - 2385 , - 2248 , - 2439 , - 334 , - 1181 , - 2356 , - 1235 , - 442 , - 2601 , - 2464 , - 31 , - 550 , - 1397 , - 2572 , - 1451 , - 658 , - 193 , - 56 , - 247 , - 766 , - 1613 , - 164 , - 1667 , - 874 , - 409 , - 272 , - 463 , - 982 , - 1829 , - 380 , - 1883 , - 1090 , - 625 , - 488 , - 679 , - 1198 , - 2045 , - 596 , - 2099 , - 1306 , - 841 , - 704 , - 895 , - 1414 , - 2261 , - 812 , - 2315 , - 1522 , - 1057 , - 920 , - 1111 , - 1630 , - 2477 , - 1028 , - 2531 , - 1738 , - 1273 , - 1136 , - 1327 , - 1846 , - 69 , - 1244 , - 123 , - 1954 , - 1489 , - 1352 , - 1543 , - 2062 , - 285 , - 1460 , - 339 , - 2170 , - 1705 , - 1568 , - 1759 , - 2278 , - 501 , - 1676 , - 555 , - 2386 , - 1921 , - 1784 , - 1975 , - 2494 , - 717 , - 1892 , - 771 , - 2602 , - 2137 , - 2000 , - 2191 , - 86 , - 933 , - 2108 , - 987 , - 194 , - 2353 , - 2216 , - 2407 , - 302 , - 1149 , - 2324 , - 1203 , - 410 , - 2569 , - 2432 , - 2623 , - 518 , - 1365 , - 2540 , - 1419 , - 626 , - 161 , - 24 , - 215 , - 734 , - 1581 , - 132 , - 1635 , - 842 , - 377 , - 240 , - 431 , - 950 , - 1797 , - 348 , - 1851 , - 1058 , - 593 , - 456 , - 647 , - 1166 , - 2013 , - 564 , - 2067 , - 1274 , - 809 , - 672 , - 863 , - 1382 , - 2229 , - 780 , - 2283 , - 1490 , - 1025 , - 888 , - 1079 , - 1598 , - 2445 , - 996 , - 2499 , - 1706 , - 1241 , - 1104 , - 1295 , - 1814 , - 37 , - 1212 , - 91 , - 1922 , - 1457 , - 1320 , - 1511 , - 2030 , - 253 , - 1428 , - 307 , - 2138 , - 1673 , - 1536 , - 1727 , - 2246 , - 469 , - 1644 , - 523 , - 2354 , - 1889 , - 1752 , - 1943 , - 2462 , - 685 , - 1860 , - 739 , - 2570 , - 2105 , - 1968 , - 2159 , - 54 , - 901 , - 2076 , - 955 , - 162 , - 2321 , - 2184 , - 2375 , - 270 , - 1117 , - 2292 , - 1171 , - 378 , - 2537 , - 2400 , - 2591 , - 486 , - 1333 , - 2508 , - 1387 , - 594 , - 129 , - 2616 , - 183 , - 702 , - 1549 , - 100 , - 1603 , - 810 , - 345 , - 208 , - 399 , - 918 , - 1765 , - 316 , - 1819 , - 1026 , - 561 , - 424 , - 615 , - 1134 , - 1981 , - 532 , - 2035 , - 1242 , - 777 , - 640 , - 831 , - 1350 , - 2197 , - 748 , - 2251 , - 1458 , - 993 , - 856 , - 1047 , - 1566 , - 2413 , - 964 , - 2467 , - 1674 , - 1209 , - 1072 , - 1263 , - 1782 , - 5 , - 1180 , - 59 , - 1890 , - 1425 , - 1288 , - 1479 , - 1998 , - 221 , - 1396 , - 275 , - 2106 , - 1641 , - 1504 , - 1695 , - 2214 , - 437 , - 1612 , - 491 , - 2322 , - 1857 , - 1720 , - 1911 , - 2430 , - 653 , - 1828 , - 707 , - 2538 , - 2073 , - 1936 , - 2127 , - 22 , - 869 , - 2044 , - 923 , - 130 , - 2289 , - 2152 , - 2343 , - 238 , - 1085 , - 2260 , - 1139 , - 346 , - 2505 , - 2368 , - 2559 , - 454 , - 1301 , - 2476 , - 1355 , - 562 , - 97 , - 2584 , - 151 , - 670 , - 1517 , - 68 , - 1571 , - 778 , - 313 , - 176 , - 367 , - 886 , - 1733 , - 284 , - 1787 , - 994 , - 529 , - 392 , - 583 , - 1102 , - 1949 , - 500 , - 2003 , - 1210 , - 745 , - 608 , - 799 , - 1318 , - 2165 , - 716 , - 2219 , - 1426 , - 961 , - 824 , - 1015 , - 1534 , - 2381 , - 932 , - 2435 , - 1642 , - 1177 , - 1040 , - 1231 , - 1750 , - 2597 , - 1148 , - 27 , - 1858 , - 1393 , - 1256 , - 1447 , - 1966 , - 189 , - 1364 , - 243 , - 2074 , - 1609 , - 1472 , - 1663 , - 2182 , - 405 , - 1580 , - 459 , - 2290 , - 1825 , - 1688 , - 1879 , - 2398 , - 621 , - 1796 , - 675 , - 2506 , - 2041 , - 1904 , - 2095 , - 2614 , - 837 , - 2012 , - 891 , - 98 , - 2257 , - 2120 , - 2311 , - 206 , - 1053 , - 2228 , - 1107 , - 314 , - 2473 , - 2336 , - 2527 , - 422 , - 1269 , - 2444 , - 1323 , - 530 , - 65 , - 2552 , - 119 , - 638 , - 1485 , - 36 , - 1539 , - 746 , - 281 , - 144 , - 335 , - 854 , - 1701 , - 252 , - 1755 , - 962 , - 497 , - 360 , - 551 , - 1070 , - 1917 , - 468 , - 1971 , - 1178 , - 713 , - 576 , - 767 , - 1286 , - 2133 , - 684 , - 2187 , - 1394 , - 929 , - 792 , - 983 , - 1502 , - 2349 , - 900 , - 2403 , - 1610 , - 1145 , - 1008 , - 1199 , - 1718 , - 2565 , - 1116 , - 2619 , - 1826 , - 1361 , - 1224 , - 1415 , - 1934 , - 157 , - 1332 , - 211 , - 2042 , - 1577 , - 1440 , - 1631 , - 2150 , - 373 , - 1548 , - 427 , - 2258 , - 1793 , - 1656 , - 1847 , - 2366 , - 589 , - 1764 , - 643 , - 2474 , - 2009 , - 1872 , - 2063 , - 2582 , - 805 , - 1980 , - 859 , - 66 , - 2225 , - 2088 , - 2279 , - 174 , - 1021 , - 2196 , - 1075 , - 282 , - 2441 , - 2304 , - 2495 , - 390 , - 1237 , - 2412 , - 1291 , - 498 , - 33 , - 2520 , - 87 , - 606 , - 1453 , - 4 , - 1507 , - 714 , - 249 , - 112 , - 303 , - 822 , - 1669 , - 220 , - 1723 , - 930 , - 465 , - 328 , - 519 , - 1038 , - 1885 , - 436 , - 1939 , - 1146 , - 681 , - 544 , - 735 , - 1254 , - 2101 , - 652 , - 2155 , - 1362 , - 897 , - 760 , - 951 , - 1470 , - 2317 , - 868 , - 2371 , - 1578 , - 1113 , - 976 , - 1167 , - 1686 , - 2533 , - 1084 , - 2587 , - 1794 , - 1329 , - 1192 , - 1383 , - 1902 , - 125 , - 1300 , - 179 , - 2010 , - 1545 , - 1408 , - 1599 , - 2118 , - 341 , - 1516 , - 395 , - 2226 , - 1761 , - 1624 , - 1815 , - 2334 , - 557 , - 1732 , - 611 , - 2442 , - 1977 , - 1840 , - 2031 , - 2550 , - 773 , - 1948 , - 827 , - 34 , - 2193 , - 2056 , - 2247 , - 142 , - 989 , - 2164 , - 1043 , - 250 , - 2409 , - 2272 , - 2463 , - 358 , - 1205 , - 2380 , - 1259 , - 466 , - 1 , - 2488 , - 55 , - 574 , - 1421 , - 2596 , - 1475 , - 682 , - 217 , - 80 , - 271 , - 790 , - 1637 , - 188 , - 1691 , - 898 , - 433 , - 296 , - 487 , - 1006 , - 1853 , - 404 , - 1907 , - 1114 , - 649 , - 512 , - 703 , - 1222 , - 2069 , - 620 , - 2123 , - 1330 , - 865 , - 728 , - 919 , - 1438 , - 2285 , - 836 , - 2339 , - 1546 , - 1081 , - 944 , - 1135 , - 1654 , - 2501 , - 1052 , - 2555 , - 1762 , - 1297 , - 1160 , - 1351 , - 1870 , - 93 , - 1268 , - 147 , - 1978 , - 1513 , - 1376 , - 1567 , - 2086 , - 309 , - 1484 , - 363 , - 2194 , - 1729 , - 1592 , - 1783 , - 2302 , - 525 , - 1700 , - 579 , - 2410 , - 1945 , - 1808 , - 1999 , - 2518 , - 741 , - 1916 , - 795 , - 2 , - 2161 , - 2024 , - 2215 , - 110 , - 957 , - 2132 , - 1011 , - 218 , - 2377 , - 2240 , - 2431 , - 326 , - 1173 , - 2348 , - 1227 , - 434 , - 2593 , - 2456 , - 23 , - 542 , - 1389 , - 2564 , - 1443 , - 650 , - 185 , - 48 , - 239 , - 758 , - 1605 , - 156 , - 1659 , - 866 , - 401 , - 264 , - 455 , - 974 , - 1821 , - 372 , - 1875 , - 1082 , - 617 , - 480 , - 671 , - 1190 , - 2037 , - 588 , - 2091 , - 1298 , - 833 , - 696 , - 887 , - 1406 , - 2253 , - 804 , - 2307 , - 1514 , - 1049 , - 912 , - 1103 , - 1622 , - 2469 , - 1020 , - 2523 , - 1730 , - 1265 , - 1128 , - 1319 , - 1838 , - 61 , - 1236 , - 115 , - 1946 , - 1481 , - 1344 , - 1535 , - 2054 , - 277 , - 1452 , - 331 , - 2162 , - 1697 , - 1560 , - 1751 , - 2270 , - 493 , - 1668 , - 547 , - 2378 , - 1913 , - 1776 , - 1967 , - 2486 , - 709 , - 1884 , - 763 , - 2594 , - 2129 , - 1992 , - 2183 , - 78 , - 925 , - 2100 , - 979 , - 186 , - 2345 , - 2208 , - 2399 , - 294 , - 1141 , - 2316 , - 1195 , - 402 , - 2561 , - 2424 , - 2615 , - 510 , - 1357 , - 2532 , - 1411 , - 618 , - 153 , - 16 , - 207 , - 726 , - 1573 , - 124 , - 1627 , - 834 , - 369 , - 232 , - 423 , - 942 , - 1789 , - 340 , - 1843 , - 1050 , - 585 , - 448 , - 639 , - 1158 , - 2005 , - 556 , - 2059 , - 1266 , - 801 , - 664 , - 855 , - 1374 , - 2221 , - 772 , - 2275 , - 1482 , - 1017 , - 880 , - 1071 , - 1590 , - 2437 , - 988 , - 2491 , - 1698 , - 1233 , - 1096 , - 1287 , - 1806 , - 29 , - 1204 , - 83 , - 1914 , - 1449 , - 1312 , - 1503 , - 2022 , - 245 , - 1420 , - 299 , - 2130 , - 1665 , - 1528 , - 1719 , - 2238 , - 461 , - 1636 , - 515 , - 2346 , - 1881 , - 1744 , - 1935 , - 2454 , - 677 , - 1852 , - 731 , - 2562 , - 2097 , - 1960 , - 2151 , - 46 , - 893 , - 2068 , - 947 , - 154 , - 2313 , - 2176 , - 2367 , - 262 , - 1109 , - 2284 , - 1163 , - 370 , - 2529 , - 2392 , - 2583 , - 478 , - 1325 , - 2500 , - 1379 , - 586 , - 121 , - 2608 , - 175 , - 694 , - 1541 , - 92 , - 1595 , - 802 , - 337 , - 200 , - 391 , - 910 , - 1757 , - 308 , - 1811 , - 1018 , - 553 , - 416 , - 607 , - 1126 , - 1973 , - 524 , - 2027 , - 1234 , - 769 , - 632 , - 823 , - 1342 , - 2189 , - 740 , - 2243 , - 1450 , - 985 , - 848 , - 1039 , - 1558 , - 2405 , - 956 , - 2459 , - 1666 , - 1201 , - 1064 , - 1255 , - 1774 , - 2621 , - 1172 , - 51 , - 1882 , - 1417 , - 1280 , - 1471 , - 1990 , - 213 , - 1388 , - 267 , - 2098 , - 1633 , - 1496 , - 1687 , - 2206 , - 429 , - 1604 , - 483 , - 2314 , - 1849 , - 1712 , - 1903 , - 2422 , - 645 , - 1820 , - 699 , - 2530 , - 2065 , - 1928 , - 2119 , - 14 , - 861 , - 2036 , - 915 , - 122 , - 2281 , - 2144 , - 2335 , - 230 , - 1077 , - 2252 , - 1131 , - 338 , - 2497 , - 2360 , - 2551 , - 446 , - 1293 , - 2468 , - 1347 , - 554 , - 89 , - 2576 , - 143 , - 662 , - 1509 , - 60 , - 1563 , - 770 , - 305 , - 168 , - 359 , - 878 , - 1725 , - 276 , - 1779 , - 986 , - 521 , - 384 , - 575 , - 1094 , - 1941 , - 492 , - 1995 , - 1202 , - 737 , - 600 , - 791 , - 1310 , - 2157 , - 708 , - 2211 , - 1418 , - 953 , - 816 , - 1007 , - 1526 , - 2373 , - 924 , - 2427 , - 1634 , - 1169 , - 1032 , - 1223 , - 1742 , - 2589 , - 1140 , - 19 , - 1850 , - 1385 , - 1248 , - 1439 , - 1958 , - 181 , - 1356 , - 235 , - 2066 , - 1601 , - 1464 , - 1655 , - 2174 , - 397 , - 1572 , - 451 , - 2282 , - 1817 , - 1680 , - 1871 , - 2390 , - 613 , - 1788 , - 667 , - 2498 , - 2033 , - 1896 , - 2087 , - 2606 , - 829 , - 2004 , - 883 , - 90 , - 2249 , - 2112 , - 2303 , - 198 , - 1045 , - 2220 , - 1099 , - 306 , - 2465 , - 2328 , - 2519 , - 414 , - 1261 , - 2436 , - 1315 , - 522 , - 57 , - 2544 , - 111 , - 630 , - 1477 , - 28 , - 1531 , - 738 , - 273 , - 136 , - 327 , - 846 , - 1693 , - 244 , - 1747 , - 954 , - 489 , - 352 , - 543 , - 1062 , - 1909 , - 460 , - 1963 , - 1170 , - 705 , - 568 , - 759 , - 1278 , - 2125 , - 676 , - 2179 , - 1386 , - 921 , - 784 , - 975 , - 1494 , - 2341 , - 892 , - 2395 , - 1602 , - 1137 , - 1000 , - 1191 , - 1710 , - 2557 , - 1108 , - 2611 , - 1818 , - 1353 , - 1216 , - 1407 , - 1926 , - 149 , - 1324 , - 203 , - 2034 , - 1569 , - 1432 , - 1623 , - 2142 , - 365 , - 1540 , - 419 , - 2250 , - 1785 , - 1648 , - 1839 , - 2358 , - 581 , - 1756 , - 635 , - 2466 , - 2001 , - 1864 , - 2055 , - 2574 , - 797 , - 1972 , - 851 , - 58 , - 2217 , - 2080 , - 2271 , - 166 , - 1013 , - 2188 , - 1067 , - 274 , - 2433 , - 2296 , - 2487 , - 382 , - 1229 , - 2404 , - 1283 , - 490 , - 25 , - 2512 , - 79 , - 598 , - 1445 , - 2620 , - 1499 , - 706 , - 241 , - 104 , - 295 , - 814 , - 1661 , - 212 , - 1715 , - 922 , - 457 , - 320 , - 511 , - 1030 , - 1877 , - 428 , - 1931 , - 1138 , - 673 , - 536 , - 727 , - 1246 , - 2093 , - 644 , - 2147 , - 1354 , - 889 , - 752 , - 943 , - 1462 , - 2309 , - 860 , - 2363 , - 1570 , - 1105 , - 968 , - 1159 , - 1678 , - 2525 , - 1076 , - 2579 , - 1786 , - 1321 , - 1184 , - 1375 , - 1894 , - 117 , - 1292 , - 171 , - 2002 , - 1537 , - 1400 , - 1591 , - 2110 , - 333 , - 1508 , - 387 , - 2218 , - 1753 , - 1616 , - 1807 , - 2326 , - 549 , - 1724 , - 603 , - 2434 , - 1969 , - 1832 , - 2023 , - 2542 , - 765 , - 1940 , - 819 , - 26 , - 2185 , - 2048 , - 2239 , - 134 , - 981 , - 2156 , - 1035 , - 242 , - 2401 , - 2264 , - 2455 , - 350 , - 1197 , - 2372 , - 1251 , - 458 , - 2617 , - 2480 , - 47 , - 566 , - 1413 , - 2588 , - 1467 , - 674 , - 209 , - 72 , - 263 , - 782 , - 1629 , - 180 , - 1683 , - 890 , - 425 , - 288 , - 479 , - 998 , - 1845 , - 396 , - 1899 , - 1106 , - 641 , - 504 , - 695 , - 1214 , - 2061 , - 612 , - 2115 , - 1322 , - 857 , - 720 , - 911 , - 1430 , - 2277 , - 828 , - 2331 , - 1538 , - 1073 , - 936 , - 1127 , - 1646 , - 2493 , - 1044 , - 2547 , - 1754 , - 1289 , - 1152 , - 1343 , - 1862 , - 85 , - 1260 , - 139 , - 1970 , - 1505 , - 1368 , - 1559 , - 2078 , - 301 , - 1476 , - 355 , - 2186 , - 1721 , - 1584 , - 1775 , - 2294 , - 517 , - 1692 , - 571 , - 2402 , - 1937 , - 1800 , - 1991 , - 2510 , - 733 , - 1908 , - 787 , - 2618 , - 2153 , - 2016 , - 2207 , - 102 , - 949 , - 2124 , - 1003 , - 210 , - 2369 , - 2232 , - 2423 , - 318 , - 1165 , - 2340 , - 1219 , - 426 , - 2585 , - 2448 , - 15 , - 534 , - 1381 , - 2556 , - 1435 , - 642 , - 177 , - 40 , - 231 , - 750 , - 1597 , - 148 , - 1651 , - 858 , - 393 , - 256 , - 447 , - 966 , - 1813 , - 364 , - 1867 , - 1074 , - 609 , - 472 , - 663 , - 1182 , - 2029 , - 580 , - 2083 , - 1290 , - 825 , - 688 , - 879 , - 1398 , - 2245 , - 796 , - 2299 , - 1506 , - 1041 , - 904 , - 1095 , - 1614 , - 2461 , - 1012 , - 2515 , - 1722 , - 1257 , - 1120 , - 1311 , - 1830 , - 53 , - 1228 , - 107 , - 1938 , - 1473 , - 1336 , - 1527 , - 2046 , - 269 , - 1444 , - 323 , - 2154 , - 1689 , - 1552 , - 1743 , - 2262 , - 485 , - 1660 , - 539 , - 2370 , - 1905 , - 1768 , - 1959 , - 2478 , - 701 , - 1876 , - 755 , - 2586 , - 2121 , - 1984 , - 2175 , - 70 , - 917 , - 2092 , - 971 , - 178 , - 2337 , - 2200 , - 2391 , - 286 , - 1133 , - 2308 , - 1187 , - 394 , - 2553 , - 2416 , - 2607 , - 502 , - 1349 , - 2524 , - 1403 , - 610 , - 145 , - 8 , - 199 , - 718 , - 1565 , - 116 , - 1619 , - 826 , - 361 , - 224 , - 415 , - 934 , - 1781 , - 332 , - 1835 , - 1042 , - 577 , - 440 , - 631 , - 1150 , - 1997 , - 548 , - 2051 , - 1258 , - 793 , - 656 , - 847 , - 1366 , - 2213 , - 764 , - 2267 , - 1474 , - 1009 , - 872 , - 1063 , - 1582 , - 2429 , - 980 , - 2483 , - 1690 , - 1225 , - 1088 , - 1279 , - 1798 , - 21 , - 1196 , - 75 , - 1906 , - 1441 , - 1304 , - 1495 , - 2014 , - 237 , - 1412 , - 291 , - 2122 , - 1657 , - 1520 , - 1711 , - 2230 , - 453 , - 1628 , - 507 , - 2338 , - 1873 , - 1736 , - 1927 , - 2446 , - 669 , - 1844 , - 723 , - 2554 , - 2089 , - 1952 , - 2143 , - 38 , - 885 , - 2060 , - 939 , - 146 , - 2305 , - 2168 , - 2359 , - 254 , - 1101 , - 2276 , - 1155 , - 362 , - 2521 , - 2384 , - 2575 , - 470 , - 1317 , - 2492 , - 1371 , - 578 , - 113 , - 2600 , - 167 , - 686 , - 1533 , - 84 , - 1587 , - 794 , - 329 , - 192 , - 383 , - 902 , - 1749 , - 300 , - 1803 , - 1010 , - 545 , - 408 , - 599 , - 1118 , - 1965 , - 516 , - 2019 , - 1226 , - 761 , - 624 , - 815 , - 1334 , - 2181 , - 732 , - 2235 , - 1442 , - 977 , - 840 , - 1031 , - 1550 , - 2397 , - 948 , - 2451 , - 1658 , - 1193 , - 1056 , - 1247 , - 1766 , - 2613 , - 1164 , - 43 , - 1874 , - 1409 , - 1272 , - 1463 , - 1982 , - 205 , - 1380 , - 259 , - 2090 , - 1625 , - 1488 , - 1679 , - 2198 , - 421 , - 1596 , - 475 , - 2306 , - 1841 , - 1704 , - 1895 , - 2414 , - 637 , - 1812 , - 691 , - 2522 , - 2057 , - 1920 , - 2111 , - 6 , - 853 , - 2028 , - 907 , - 114 , - 2273 , - 2136 , - 2327 , - 222 , - 1069 , - 2244 , - 1123 , - 330 , - 2489 , - 2352 , - 2543 , - 438 , - 1285 , - 2460 , - 1339 , - 546 , - 81 , - 2568 , - 135 , - 654 , - 1501 , - 52 , - 1555 , - 762 , - 297 , - 160 , - 351 , - 870 , - 1717 , - 268 , - 1771 , - 978 , - 513 , - 376 , - 567 , - 1086 , - 1933 , - 484 , - 1987 , - 1194 , - 729 , - 592 , - 783 , - 1302 , - 2149 , - 700 , - 2203 , - 1410 , - 945 , - 808 , - 999 , - 1518 , - 2365 , - 916 , - 2419 , - 1626 , - 1161 , - 1024 , - 1215 , - 1734 , - 2581 , - 1132 , - 11 , - 1842 , - 1377 , - 1240 , - 1431 , - 1950 , - 173 , - 1348 , - 227 , - 2058 , - 1593 , - 1456 , - 1647 , - 2166 , - 389 , - 1564 , - 443 , - 2274 , - 1809 , - 1672 , - 1863 , - 2382 , - 605 , - 1780 , - 659 , - 2490 , - 2025 , - 1888 , - 2079 , - 2598 , - 821 , - 1996 , - 875 , - 82 , - 2241 , - 2104 , - 2295 , - 190 , - 1037 , - 2212 , - 1091 , - 298 , - 2457 , - 2320 , - 2511 , - 406 , - 1253 , - 2428 , - 1307 , - 514 , - 49 , - 2536 , - 103 , - 622 , - 1469 , - 20 , - 1523 , - 730 , - 265 , - 128 , - 319 , - 838 , - 1685 , - 236 , - 1739 , - 946 , - 481 , - 344 , - 535 , - 1054 , - 1901 , - 452 , - 1955 , - 1162 , - 697 , - 560 , - 751 , - 1270 , - 2117 , - 668 , - 2171 , - 1378 , - 913 , - 776 , - 967 , - 1486 , - 2333 , - 884 , - 2387 , - 1594 , - 1129 , - 992 , - 1183 , - 1702 , - 2549 , - 1100 , - 2603 , - 1810 , - 1345 , - 1208 , - 1399 , - 1918 , - 141 , - 1316 , - 195 , - 2026 , - 1561 , - 1424 , - 1615 , - 2134 , - 357 , - 1532 , - 411 , - 2242 , - 1777 , - 1640 , - 1831 , - 2350 , - 573 , - 1748 , - 627 , - 2458 , - 1993 , - 1856 , - 2047 , - 2566 , - 789 , - 1964 , - 843 , - 50 , - 2209 , - 2072 , - 2263 , - 158 , - 1005 , - 2180 , - 1059 , - 266 , - 2425 , - 2288 , - 2479 , - 374 , - 1221 , - 2396 , - 1275 , - 482 , - 17 , - 2504 , - 71 , - 590 , - 1437 , - 2612 , - 1491 , - 698 , - 233 , - 96 , - 287 , - 806 , - 1653 , - 204 , - 1707 , - 914 , - 449 , - 312 , - 503 , - 1022 , - 1869 , - 420 , - 1923 , - 1130 , - 665 , - 528 , - 719 , - 1238 , - 2085 , - 636 , - 2139 , - 1346 , - 881 , - 744 , - 935 , - 1454 , - 2301 , - 852 , - 2355 , - 1562 , - 1097 , - 960 , - 1151 , - 1670 , - 2517 , - 1068 , - 2571 , - 1778 , - 1313 , - 1176 , - 1367 , - 1886 , - 109 , - 1284 , - 163 , - 1994 , - 1529 , - 1392 , - 1583 , - 2102 , - 325 , - 1500 , - 379 , - 2210 , - 1745 , - 1608 , - 1799 , - 2318 , - 541 , - 1716 , - 595 , - 2426 , - 1961 , - 1824 , - 2015 , - 2534 , - 757 , - 1932 , - 811 , - 18 , - 2177 , - 2040 , - 2231 , - 126 , - 973 , - 2148 , - 1027 , - 234 , - 2393 , - 2256 , - 2447 , - 342 , - 1189 , - 2364 , - 1243 , - 450 , - 2609 , - 2472 , - 39 , - 558 , - 1405 , - 2580 , - 1459 , - 666 , - 201 , - 64 , - 255 , - 774 , - 1621 , - 172 , - 1675 , - 882 , - 417 , - 280 , - 471 , - 990 , - 1837 , - 388 , - 1891 , - 1098 , - 633 , - 496 , - 687 , - 1206 , - 2053 , - 604 , - 2107 , - 1314 , - 849 , - 712 , - 903 , - 1422 , - 2269 , - 820 , - 2323 , - 1530 , - 1065 , - 928 , - 1119 , - 1638 , - 2485 , - 1036 , - 2539 , - 1746 , - 1281 , - 1144 , - 1335 , - 1854 , - 77 , - 1252 , - 131 , - 1962 , - 1497 , - 1360 , - 1551 , - 2070 , - 293 , - 1468 , - 347 , - 2178 , - 1713 , - 1576 , - 1767 , - 2286 , - 509 , - 1684 , - 563 , - 2394 , - 1929 , - 1792 , - 1983 , - 2502 , - 725 , - 1900 , - 779 , - 2610 , - 2145 , - 2008 , - 2199 , - 94 , - 941 , - 2116 , - 995 , - 202 , - 2361 , - 2224 , - 2415 , - 310 , - 1157 , - 2332 , - 1211 , - 418 , - 2577 , - 2440 , - 7 , - 526 , - 1373 , - 2548 , - 1427 , - 634 , - 169 , - 32 , - 223 , - 742 , - 1589 , - 140 , - 1643 , - 850 , - 385 , - 248 , - 439 , - 958 , - 1805 , - 356 , - 1859 , - 1066 , - 601 , - 464 , - 655 , - 1174 , - 2021 , - 572 , - 2075 , - 1282 , - 817 , - 680 , - 871 , - 1390 , - 2237 , - 788 , - 2291 , - 1498 , - 1033 , - 896 , - 1087 , - 1606 , - 2453 , - 1004 , - 2507 , - 1714 , - 1249 , - 1112 , - 1303 , - 1822 , - 45 , - 1220 , - 99 , - 1930 , - 1465 , - 1328 , - 1519 , - 2038 , - 261 , - 1436 , - 315 , - 2146 , - 1681 , - 1544 , - 1735 , - 2254 , - 477 , - 1652 , - 531 , - 2362 , - 1897 , - 1760 , - 1951 , - 2470 , - 693 , - 1868 , - 747 , - 2578 , - 2113 , - 1976 , - 2167 , - 62 , - 909 , - 2084 , - 963 , - 170 , - 2329 , - 2192 , - 2383 , - 278 , - 1125 , - 2300 , - 1179 , - 386 , - 2545 , - 2408 , - 2599 , - 494 , - 1341 , - 2516 , - 1395 , - 602 , - 137 , - 0 , - 631 , - 2270 , - 2229 , - 508 , - 2483 , - 90 , - 1393 , - 1016 , - 1647 , - 598 , - 557 , - 1524 , - 811 , - 1106 , - 2409 , - 2032 , - 2663 , - 1614 , - 1573 , - 2540 , - 1827 , - 2122 , - 737 , - 360 , - 991 , - 2630 , - 2589 , - 868 , - 155 , - 450 , - 1753 , - 1376 , - 2007 , - 958 , - 917 , - 1884 , - 1171 , - 1466 , - 81 , - 2392 , - 335 , - 1974 , - 1933 , - 212 , - 2187 , - 2482 , - 1097 , - 720 , - 1351 , - 302 , - 261 , - 1228 , - 515 , - 810 , - 2113 , - 1736 , - 2367 , - 1318 , - 1277 , - 2244 , - 1531 , - 1826 , - 441 , - 64 , - 695 , - 2334 , - 2293 , - 572 , - 2547 , - 154 , - 1457 , - 1080 , - 1711 , - 662 , - 621 , - 1588 , - 875 , - 1170 , - 2473 , - 2096 , - 39 , - 1678 , - 1637 , - 2604 , - 1891 , - 2186 , - 801 , - 424 , - 1055 , - 6 , - 2653 , - 932 , - 219 , - 514 , - 1817 , - 1440 , - 2071 , - 1022 , - 981 , - 1948 , - 1235 , - 1530 , - 145 , - 2456 , - 399 , - 2038 , - 1997 , - 276 , - 2251 , - 2546 , - 1161 , - 784 , - 1415 , - 366 , - 325 , - 1292 , - 579 , - 874 , - 2177 , - 1800 , - 2431 , - 1382 , - 1341 , - 2308 , - 1595 , - 1890 , - 505 , - 128 , - 759 , - 2398 , - 2357 , - 636 , - 2611 , - 218 , - 1521 , - 1144 , - 1775 , - 726 , - 685 , - 1652 , - 939 , - 1234 , - 2537 , - 2160 , - 103 , - 1742 , - 1701 , - 2668 , - 1955 , - 2250 , - 865 , - 488 , - 1119 , - 70 , - 29 , - 996 , - 283 , - 578 , - 1881 , - 1504 , - 2135 , - 1086 , - 1045 , - 2012 , - 1299 , - 1594 , - 209 , - 2520 , - 463 , - 2102 , - 2061 , - 340 , - 2315 , - 2610 , - 1225 , - 848 , - 1479 , - 430 , - 389 , - 1356 , - 643 , - 938 , - 2241 , - 1864 , - 2495 , - 1446 , - 1405 , - 2372 , - 1659 , - 1954 , - 569 , - 192 , - 823 , - 2462 , - 2421 , - 700 , - 2675 , - 282 , - 1585 , - 1208 , - 1839 , - 790 , - 749 , - 1716 , - 1003 , - 1298 , - 2601 , - 2224 , - 167 , - 1806 , - 1765 , - 44 , - 2019 , - 2314 , - 929 , - 552 , - 1183 , - 134 , - 93 , - 1060 , - 347 , - 642 , - 1945 , - 1568 , - 2199 , - 1150 , - 1109 , - 2076 , - 1363 , - 1658 , - 273 , - 2584 , - 527 , - 2166 , - 2125 , - 404 , - 2379 , - 2674 , - 1289 , - 912 , - 1543 , - 494 , - 453 , - 1420 , - 707 , - 1002 , - 2305 , - 1928 , - 2559 , - 1510 , - 1469 , - 2436 , - 1723 , - 2018 , - 633 , - 256 , - 887 , - 2526 , - 2485 , - 764 , - 51 , - 346 , - 1649 , - 1272 , - 1903 , - 854 , - 813 , - 1780 , - 1067 , - 1362 , - 2665 , - 2288 , - 231 , - 1870 , - 1829 , - 108 , - 2083 , - 2378 , - 993 , - 616 , - 1247 , - 198 , - 157 , - 1124 , - 411 , - 706 , - 2009 , - 1632 , - 2263 , - 1214 , - 1173 , - 2140 , - 1427 , - 1722 , - 337 , - 2648 , - 591 , - 2230 , - 2189 , - 468 , - 2443 , - 50 , - 1353 , - 976 , - 1607 , - 558 , - 517 , - 1484 , - 771 , - 1066 , - 2369 , - 1992 , - 2623 , - 1574 , - 1533 , - 2500 , - 1787 , - 2082 , - 697 , - 320 , - 951 , - 2590 , - 2549 , - 828 , - 115 , - 410 , - 1713 , - 1336 , - 1967 , - 918 , - 877 , - 1844 , - 1131 , - 1426 , - 41 , - 2352 , - 295 , - 1934 , - 1893 , - 172 , - 2147 , - 2442 , - 1057 , - 680 , - 1311 , - 262 , - 221 , - 1188 , - 475 , - 770 , - 2073 , - 1696 , - 2327 , - 1278 , - 1237 , - 2204 , - 1491 , - 1786 , - 401 , - 24 , - 655 , - 2294 , - 2253 , - 532 , - 2507 , - 114 , - 1417 , - 1040 , - 1671 , - 622 , - 581 , - 1548 , - 835 , - 1130 , - 2433 , - 2056 , - 2687 , - 1638 , - 1597 , - 2564 , - 1851 , - 2146 , - 761 , - 384 , - 1015 , - 2654 , - 2613 , - 892 , - 179 , - 474 , - 1777 , - 1400 , - 2031 , - 982 , - 941 , - 1908 , - 1195 , - 1490 , - 105 , - 2416 , - 359 , - 1998 , - 1957 , - 236 , - 2211 , - 2506 , - 1121 , - 744 , - 1375 , - 326 , - 285 , - 1252 , - 539 , - 834 , - 2137 , - 1760 , - 2391 , - 1342 , - 1301 , - 2268 , - 1555 , - 1850 , - 465 , - 88 , - 719 , - 2358 , - 2317 , - 596 , - 2571 , - 178 , - 1481 , - 1104 , - 1735 , - 686 , - 645 , - 1612 , - 899 , - 1194 , - 2497 , - 2120 , - 63 , - 1702 , - 1661 , - 2628 , - 1915 , - 2210 , - 825 , - 448 , - 1079 , - 30 , - 2677 , - 956 , - 243 , - 538 , - 1841 , - 1464 , - 2095 , - 1046 , - 1005 , - 1972 , - 1259 , - 1554 , - 169 , - 2480 , - 423 , - 2062 , - 2021 , - 300 , - 2275 , - 2570 , - 1185 , - 808 , - 1439 , - 390 , - 349 , - 1316 , - 603 , - 898 , - 2201 , - 1824 , - 2455 , - 1406 , - 1365 , - 2332 , - 1619 , - 1914 , - 529 , - 152 , - 783 , - 2422 , - 2381 , - 660 , - 2635 , - 242 , - 1545 , - 1168 , - 1799 , - 750 , - 709 , - 1676 , - 963 , - 1258 , - 2561 , - 2184 , - 127 , - 1766 , - 1725 , - 4 , - 1979 , - 2274 , - 889 , - 512 , - 1143 , - 94 , - 53 , - 1020 , - 307 , - 602 , - 1905 , - 1528 , - 2159 , - 1110 , - 1069 , - 2036 , - 1323 , - 1618 , - 233 , - 2544 , - 487 , - 2126 , - 2085 , - 364 , - 2339 , - 2634 , - 1249 , - 872 , - 1503 , - 454 , - 413 , - 1380 , - 667 , - 962 , - 2265 , - 1888 , - 2519 , - 1470 , - 1429 , - 2396 , - 1683 , - 1978 , - 593 , - 216 , - 847 , - 2486 , - 2445 , - 724 , - 11 , - 306 , - 1609 , - 1232 , - 1863 , - 814 , - 773 , - 1740 , - 1027 , - 1322 , - 2625 , - 2248 , - 191 , - 1830 , - 1789 , - 68 , - 2043 , - 2338 , - 953 , - 576 , - 1207 , - 158 , - 117 , - 1084 , - 371 , - 666 , - 1969 , - 1592 , - 2223 , - 1174 , - 1133 , - 2100 , - 1387 , - 1682 , - 297 , - 2608 , - 551 , - 2190 , - 2149 , - 428 , - 2403 , - 10 , - 1313 , - 936 , - 1567 , - 518 , - 477 , - 1444 , - 731 , - 1026 , - 2329 , - 1952 , - 2583 , - 1534 , - 1493 , - 2460 , - 1747 , - 2042 , - 657 , - 280 , - 911 , - 2550 , - 2509 , - 788 , - 75 , - 370 , - 1673 , - 1296 , - 1927 , - 878 , - 837 , - 1804 , - 1091 , - 1386 , - 1 , - 2312 , - 255 , - 1894 , - 1853 , - 132 , - 2107 , - 2402 , - 1017 , - 640 , - 1271 , - 222 , - 181 , - 1148 , - 435 , - 730 , - 2033 , - 1656 , - 2287 , - 1238 , - 1197 , - 2164 , - 1451 , - 1746 , - 361 , - 2672 , - 615 , - 2254 , - 2213 , - 492 , - 2467 , - 74 , - 1377 , - 1000 , - 1631 , - 582 , - 541 , - 1508 , - 795 , - 1090 , - 2393 , - 2016 , - 2647 , - 1598 , - 1557 , - 2524 , - 1811 , - 2106 , - 721 , - 344 , - 975 , - 2614 , - 2573 , - 852 , - 139 , - 434 , - 1737 , - 1360 , - 1991 , - 942 , - 901 , - 1868 , - 1155 , - 1450 , - 65 , - 2376 , - 319 , - 1958 , - 1917 , - 196 , - 2171 , - 2466 , - 1081 , - 704 , - 1335 , - 286 , - 245 , - 1212 , - 499 , - 794 , - 2097 , - 1720 , - 2351 , - 1302 , - 1261 , - 2228 , - 1515 , - 1810 , - 425 , - 48 , - 679 , - 2318 , - 2277 , - 556 , - 2531 , - 138 , - 1441 , - 1064 , - 1695 , - 646 , - 605 , - 1572 , - 859 , - 1154 , - 2457 , - 2080 , - 23 , - 1662 , - 1621 , - 2588 , - 1875 , - 2170 , - 785 , - 408 , - 1039 , - 2678 , - 2637 , - 916 , - 203 , - 498 , - 1801 , - 1424 , - 2055 , - 1006 , - 965 , - 1932 , - 1219 , - 1514 , - 129 , - 2440 , - 383 , - 2022 , - 1981 , - 260 , - 2235 , - 2530 , - 1145 , - 768 , - 1399 , - 350 , - 309 , - 1276 , - 563 , - 858 , - 2161 , - 1784 , - 2415 , - 1366 , - 1325 , - 2292 , - 1579 , - 1874 , - 489 , - 112 , - 743 , - 2382 , - 2341 , - 620 , - 2595 , - 202 , - 1505 , - 1128 , - 1759 , - 710 , - 669 , - 1636 , - 923 , - 1218 , - 2521 , - 2144 , - 87 , - 1726 , - 1685 , - 2652 , - 1939 , - 2234 , - 849 , - 472 , - 1103 , - 54 , - 13 , - 980 , - 267 , - 562 , - 1865 , - 1488 , - 2119 , - 1070 , - 1029 , - 1996 , - 1283 , - 1578 , - 193 , - 2504 , - 447 , - 2086 , - 2045 , - 324 , - 2299 , - 2594 , - 1209 , - 832 , - 1463 , - 414 , - 373 , - 1340 , - 627 , - 922 , - 2225 , - 1848 , - 2479 , - 1430 , - 1389 , - 2356 , - 1643 , - 1938 , - 553 , - 176 , - 807 , - 2446 , - 2405 , - 684 , - 2659 , - 266 , - 1569 , - 1192 , - 1823 , - 774 , - 733 , - 1700 , - 987 , - 1282 , - 2585 , - 2208 , - 151 , - 1790 , - 1749 , - 28 , - 2003 , - 2298 , - 913 , - 536 , - 1167 , - 118 , - 77 , - 1044 , - 331 , - 626 , - 1929 , - 1552 , - 2183 , - 1134 , - 1093 , - 2060 , - 1347 , - 1642 , - 257 , - 2568 , - 511 , - 2150 , - 2109 , - 388 , - 2363 , - 2658 , - 1273 , - 896 , - 1527 , - 478 , - 437 , - 1404 , - 691 , - 986 , - 2289 , - 1912 , - 2543 , - 1494 , - 1453 , - 2420 , - 1707 , - 2002 , - 617 , - 240 , - 871 , - 2510 , - 2469 , - 748 , - 35 , - 330 , - 1633 , - 1256 , - 1887 , - 838 , - 797 , - 1764 , - 1051 , - 1346 , - 2649 , - 2272 , - 215 , - 1854 , - 1813 , - 92 , - 2067 , - 2362 , - 977 , - 600 , - 1231 , - 182 , - 141 , - 1108 , - 395 , - 690 , - 1993 , - 1616 , - 2247 , - 1198 , - 1157 , - 2124 , - 1411 , - 1706 , - 321 , - 2632 , - 575 , - 2214 , - 2173 , - 452 , - 2427 , - 34 , - 1337 , - 960 , - 1591 , - 542 , - 501 , - 1468 , - 755 , - 1050 , - 2353 , - 1976 , - 2607 , - 1558 , - 1517 , - 2484 , - 1771 , - 2066 , - 681 , - 304 , - 935 , - 2574 , - 2533 , - 812 , - 99 , - 394 , - 1697 , - 1320 , - 1951 , - 902 , - 861 , - 1828 , - 1115 , - 1410 , - 25 , - 2336 , - 279 , - 1918 , - 1877 , - 156 , - 2131 , - 2426 , - 1041 , - 664 , - 1295 , - 246 , - 205 , - 1172 , - 459 , - 754 , - 2057 , - 1680 , - 2311 , - 1262 , - 1221 , - 2188 , - 1475 , - 1770 , - 385 , - 8 , - 639 , - 2278 , - 2237 , - 516 , - 2491 , - 98 , - 1401 , - 1024 , - 1655 , - 606 , - 565 , - 1532 , - 819 , - 1114 , - 2417 , - 2040 , - 2671 , - 1622 , - 1581 , - 2548 , - 1835 , - 2130 , - 745 , - 368 , - 999 , - 2638 , - 2597 , - 876 , - 163 , - 458 , - 1761 , - 1384 , - 2015 , - 966 , - 925 , - 1892 , - 1179 , - 1474 , - 89 , - 2400 , - 343 , - 1982 , - 1941 , - 220 , - 2195 , - 2490 , - 1105 , - 728 , - 1359 , - 310 , - 269 , - 1236 , - 523 , - 818 , - 2121 , - 1744 , - 2375 , - 1326 , - 1285 , - 2252 , - 1539 , - 1834 , - 449 , - 72 , - 703 , - 2342 , - 2301 , - 580 , - 2555 , - 162 , - 1465 , - 1088 , - 1719 , - 670 , - 629 , - 1596 , - 883 , - 1178 , - 2481 , - 2104 , - 47 , - 1686 , - 1645 , - 2612 , - 1899 , - 2194 , - 809 , - 432 , - 1063 , - 14 , - 2661 , - 940 , - 227 , - 522 , - 1825 , - 1448 , - 2079 , - 1030 , - 989 , - 1956 , - 1243 , - 1538 , - 153 , - 2464 , - 407 , - 2046 , - 2005 , - 284 , - 2259 , - 2554 , - 1169 , - 792 , - 1423 , - 374 , - 333 , - 1300 , - 587 , - 882 , - 2185 , - 1808 , - 2439 , - 1390 , - 1349 , - 2316 , - 1603 , - 1898 , - 513 , - 136 , - 767 , - 2406 , - 2365 , - 644 , - 2619 , - 226 , - 1529 , - 1152 , - 1783 , - 734 , - 693 , - 1660 , - 947 , - 1242 , - 2545 , - 2168 , - 111 , - 1750 , - 1709 , - 2676 , - 1963 , - 2258 , - 873 , - 496 , - 1127 , - 78 , - 37 , - 1004 , - 291 , - 586 , - 1889 , - 1512 , - 2143 , - 1094 , - 1053 , - 2020 , - 1307 , - 1602 , - 217 , - 2528 , - 471 , - 2110 , - 2069 , - 348 , - 2323 , - 2618 , - 1233 , - 856 , - 1487 , - 438 , - 397 , - 1364 , - 651 , - 946 , - 2249 , - 1872 , - 2503 , - 1454 , - 1413 , - 2380 , - 1667 , - 1962 , - 577 , - 200 , - 831 , - 2470 , - 2429 , - 708 , - 2683 , - 290 , - 1593 , - 1216 , - 1847 , - 798 , - 757 , - 1724 , - 1011 , - 1306 , - 2609 , - 2232 , - 175 , - 1814 , - 1773 , - 52 , - 2027 , - 2322 , - 937 , - 560 , - 1191 , - 142 , - 101 , - 1068 , - 355 , - 650 , - 1953 , - 1576 , - 2207 , - 1158 , - 1117 , - 2084 , - 1371 , - 1666 , - 281 , - 2592 , - 535 , - 2174 , - 2133 , - 412 , - 2387 , - 2682 , - 1297 , - 920 , - 1551 , - 502 , - 461 , - 1428 , - 715 , - 1010 , - 2313 , - 1936 , - 2567 , - 1518 , - 1477 , - 2444 , - 1731 , - 2026 , - 641 , - 264 , - 895 , - 2534 , - 2493 , - 772 , - 59 , - 354 , - 1657 , - 1280 , - 1911 , - 862 , - 821 , - 1788 , - 1075 , - 1370 , - 2673 , - 2296 , - 239 , - 1878 , - 1837 , - 116 , - 2091 , - 2386 , - 1001 , - 624 , - 1255 , - 206 , - 165 , - 1132 , - 419 , - 714 , - 2017 , - 1640 , - 2271 , - 1222 , - 1181 , - 2148 , - 1435 , - 1730 , - 345 , - 2656 , - 599 , - 2238 , - 2197 , - 476 , - 2451 , - 58 , - 1361 , - 984 , - 1615 , - 566 , - 525 , - 1492 , - 779 , - 1074 , - 2377 , - 2000 , - 2631 , - 1582 , - 1541 , - 2508 , - 1795 , - 2090 , - 705 , - 328 , - 959 , - 2598 , - 2557 , - 836 , - 123 , - 418 , - 1721 , - 1344 , - 1975 , - 926 , - 885 , - 1852 , - 1139 , - 1434 , - 49 , - 2360 , - 303 , - 1942 , - 1901 , - 180 , - 2155 , - 2450 , - 1065 , - 688 , - 1319 , - 270 , - 229 , - 1196 , - 483 , - 778 , - 2081 , - 1704 , - 2335 , - 1286 , - 1245 , - 2212 , - 1499 , - 1794 , - 409 , - 32 , - 663 , - 2302 , - 2261 , - 540 , - 2515 , - 122 , - 1425 , - 1048 , - 1679 , - 630 , - 589 , - 1556 , - 843 , - 1138 , - 2441 , - 2064 , - 7 , - 1646 , - 1605 , - 2572 , - 1859 , - 2154 , - 769 , - 392 , - 1023 , - 2662 , - 2621 , - 900 , - 187 , - 482 , - 1785 , - 1408 , - 2039 , - 990 , - 949 , - 1916 , - 1203 , - 1498 , - 113 , - 2424 , - 367 , - 2006 , - 1965 , - 244 , - 2219 , - 2514 , - 1129 , - 752 , - 1383 , - 334 , - 293 , - 1260 , - 547 , - 842 , - 2145 , - 1768 , - 2399 , - 1350 , - 1309 , - 2276 , - 1563 , - 1858 , - 473 , - 96 , - 727 , - 2366 , - 2325 , - 604 , - 2579 , - 186 , - 1489 , - 1112 , - 1743 , - 694 , - 653 , - 1620 , - 907 , - 1202 , - 2505 , - 2128 , - 71 , - 1710 , - 1669 , - 2636 , - 1923 , - 2218 , - 833 , - 456 , - 1087 , - 38 , - 2685 , - 964 , - 251 , - 546 , - 1849 , - 1472 , - 2103 , - 1054 , - 1013 , - 1980 , - 1267 , - 1562 , - 177 , - 2488 , - 431 , - 2070 , - 2029 , - 308 , - 2283 , - 2578 , - 1193 , - 816 , - 1447 , - 398 , - 357 , - 1324 , - 611 , - 906 , - 2209 , - 1832 , - 2463 , - 1414 , - 1373 , - 2340 , - 1627 , - 1922 , - 537 , - 160 , - 791 , - 2430 , - 2389 , - 668 , - 2643 , - 250 , - 1553 , - 1176 , - 1807 , - 758 , - 717 , - 1684 , - 971 , - 1266 , - 2569 , - 2192 , - 135 , - 1774 , - 1733 , - 12 , - 1987 , - 2282 , - 897 , - 520 , - 1151 , - 102 , - 61 , - 1028 , - 315 , - 610 , - 1913 , - 1536 , - 2167 , - 1118 , - 1077 , - 2044 , - 1331 , - 1626 , - 241 , - 2552 , - 495 , - 2134 , - 2093 , - 372 , - 2347 , - 2642 , - 1257 , - 880 , - 1511 , - 462 , - 421 , - 1388 , - 675 , - 970 , - 2273 , - 1896 , - 2527 , - 1478 , - 1437 , - 2404 , - 1691 , - 1986 , - 601 , - 224 , - 855 , - 2494 , - 2453 , - 732 , - 19 , - 314 , - 1617 , - 1240 , - 1871 , - 822 , - 781 , - 1748 , - 1035 , - 1330 , - 2633 , - 2256 , - 199 , - 1838 , - 1797 , - 76 , - 2051 , - 2346 , - 961 , - 584 , - 1215 , - 166 , - 125 , - 1092 , - 379 , - 674 , - 1977 , - 1600 , - 2231 , - 1182 , - 1141 , - 2108 , - 1395 , - 1690 , - 305 , - 2616 , - 559 , - 2198 , - 2157 , - 436 , - 2411 , - 18 , - 1321 , - 944 , - 1575 , - 526 , - 485 , - 1452 , - 739 , - 1034 , - 2337 , - 1960 , - 2591 , - 1542 , - 1501 , - 2468 , - 1755 , - 2050 , - 665 , - 288 , - 919 , - 2558 , - 2517 , - 796 , - 83 , - 378 , - 1681 , - 1304 , - 1935 , - 886 , - 845 , - 1812 , - 1099 , - 1394 , - 9 , - 2320 , - 263 , - 1902 , - 1861 , - 140 , - 2115 , - 2410 , - 1025 , - 648 , - 1279 , - 230 , - 189 , - 1156 , - 443 , - 738 , - 2041 , - 1664 , - 2295 , - 1246 , - 1205 , - 2172 , - 1459 , - 1754 , - 369 , - 2680 , - 623 , - 2262 , - 2221 , - 500 , - 2475 , - 82 , - 1385 , - 1008 , - 1639 , - 590 , - 549 , - 1516 , - 803 , - 1098 , - 2401 , - 2024 , - 2655 , - 1606 , - 1565 , - 2532 , - 1819 , - 2114 , - 729 , - 352 , - 983 , - 2622 , - 2581 , - 860 , - 147 , - 442 , - 1745 , - 1368 , - 1999 , - 950 , - 909 , - 1876 , - 1163 , - 1458 , - 73 , - 2384 , - 327 , - 1966 , - 1925 , - 204 , - 2179 , - 2474 , - 1089 , - 712 , - 1343 , - 294 , - 253 , - 1220 , - 507 , - 802 , - 2105 , - 1728 , - 2359 , - 1310 , - 1269 , - 2236 , - 1523 , - 1818 , - 433 , - 56 , - 687 , - 2326 , - 2285 , - 564 , - 2539 , - 146 , - 1449 , - 1072 , - 1703 , - 654 , - 613 , - 1580 , - 867 , - 1162 , - 2465 , - 2088 , - 31 , - 1670 , - 1629 , - 2596 , - 1883 , - 2178 , - 793 , - 416 , - 1047 , - 2686 , - 2645 , - 924 , - 211 , - 506 , - 1809 , - 1432 , - 2063 , - 1014 , - 973 , - 1940 , - 1227 , - 1522 , - 137 , - 2448 , - 391 , - 2030 , - 1989 , - 268 , - 2243 , - 2538 , - 1153 , - 776 , - 1407 , - 358 , - 317 , - 1284 , - 571 , - 866 , - 2169 , - 1792 , - 2423 , - 1374 , - 1333 , - 2300 , - 1587 , - 1882 , - 497 , - 120 , - 751 , - 2390 , - 2349 , - 628 , - 2603 , - 210 , - 1513 , - 1136 , - 1767 , - 718 , - 677 , - 1644 , - 931 , - 1226 , - 2529 , - 2152 , - 95 , - 1734 , - 1693 , - 2660 , - 1947 , - 2242 , - 857 , - 480 , - 1111 , - 62 , - 21 , - 988 , - 275 , - 570 , - 1873 , - 1496 , - 2127 , - 1078 , - 1037 , - 2004 , - 1291 , - 1586 , - 201 , - 2512 , - 455 , - 2094 , - 2053 , - 332 , - 2307 , - 2602 , - 1217 , - 840 , - 1471 , - 422 , - 381 , - 1348 , - 635 , - 930 , - 2233 , - 1856 , - 2487 , - 1438 , - 1397 , - 2364 , - 1651 , - 1946 , - 561 , - 184 , - 815 , - 2454 , - 2413 , - 692 , - 2667 , - 274 , - 1577 , - 1200 , - 1831 , - 782 , - 741 , - 1708 , - 995 , - 1290 , - 2593 , - 2216 , - 159 , - 1798 , - 1757 , - 36 , - 2011 , - 2306 , - 921 , - 544 , - 1175 , - 126 , - 85 , - 1052 , - 339 , - 634 , - 1937 , - 1560 , - 2191 , - 1142 , - 1101 , - 2068 , - 1355 , - 1650 , - 265 , - 2576 , - 519 , - 2158 , - 2117 , - 396 , - 2371 , - 2666 , - 1281 , - 904 , - 1535 , - 486 , - 445 , - 1412 , - 699 , - 994 , - 2297 , - 1920 , - 2551 , - 1502 , - 1461 , - 2428 , - 1715 , - 2010 , - 625 , - 248 , - 879 , - 2518 , - 2477 , - 756 , - 43 , - 338 , - 1641 , - 1264 , - 1895 , - 846 , - 805 , - 1772 , - 1059 , - 1354 , - 2657 , - 2280 , - 223 , - 1862 , - 1821 , - 100 , - 2075 , - 2370 , - 985 , - 608 , - 1239 , - 190 , - 149 , - 1116 , - 403 , - 698 , - 2001 , - 1624 , - 2255 , - 1206 , - 1165 , - 2132 , - 1419 , - 1714 , - 329 , - 2640 , - 583 , - 2222 , - 2181 , - 460 , - 2435 , - 42 , - 1345 , - 968 , - 1599 , - 550 , - 509 , - 1476 , - 763 , - 1058 , - 2361 , - 1984 , - 2615 , - 1566 , - 1525 , - 2492 , - 1779 , - 2074 , - 689 , - 312 , - 943 , - 2582 , - 2541 , - 820 , - 107 , - 402 , - 1705 , - 1328 , - 1959 , - 910 , - 869 , - 1836 , - 1123 , - 1418 , - 33 , - 2344 , - 287 , - 1926 , - 1885 , - 164 , - 2139 , - 2434 , - 1049 , - 672 , - 1303 , - 254 , - 213 , - 1180 , - 467 , - 762 , - 2065 , - 1688 , - 2319 , - 1270 , - 1229 , - 2196 , - 1483 , - 1778 , - 393 , - 16 , - 647 , - 2286 , - 2245 , - 524 , - 2499 , - 106 , - 1409 , - 1032 , - 1663 , - 614 , - 573 , - 1540 , - 827 , - 1122 , - 2425 , - 2048 , - 2679 , - 1630 , - 1589 , - 2556 , - 1843 , - 2138 , - 753 , - 376 , - 1007 , - 2646 , - 2605 , - 884 , - 171 , - 466 , - 1769 , - 1392 , - 2023 , - 974 , - 933 , - 1900 , - 1187 , - 1482 , - 97 , - 2408 , - 351 , - 1990 , - 1949 , - 228 , - 2203 , - 2498 , - 1113 , - 736 , - 1367 , - 318 , - 277 , - 1244 , - 531 , - 826 , - 2129 , - 1752 , - 2383 , - 1334 , - 1293 , - 2260 , - 1547 , - 1842 , - 457 , - 80 , - 711 , - 2350 , - 2309 , - 588 , - 2563 , - 170 , - 1473 , - 1096 , - 1727 , - 678 , - 637 , - 1604 , - 891 , - 1186 , - 2489 , - 2112 , - 55 , - 1694 , - 1653 , - 2620 , - 1907 , - 2202 , - 817 , - 440 , - 1071 , - 22 , - 2669 , - 948 , - 235 , - 530 , - 1833 , - 1456 , - 2087 , - 1038 , - 997 , - 1964 , - 1251 , - 1546 , - 161 , - 2472 , - 415 , - 2054 , - 2013 , - 292 , - 2267 , - 2562 , - 1177 , - 800 , - 1431 , - 382 , - 341 , - 1308 , - 595 , - 890 , - 2193 , - 1816 , - 2447 , - 1398 , - 1357 , - 2324 , - 1611 , - 1906 , - 521 , - 144 , - 775 , - 2414 , - 2373 , - 652 , - 2627 , - 234 , - 1537 , - 1160 , - 1791 , - 742 , - 701 , - 1668 , - 955 , - 1250 , - 2553 , - 2176 , - 119 , - 1758 , - 1717 , - 2684 , - 1971 , - 2266 , - 881 , - 504 , - 1135 , - 86 , - 45 , - 1012 , - 299 , - 594 , - 1897 , - 1520 , - 2151 , - 1102 , - 1061 , - 2028 , - 1315 , - 1610 , - 225 , - 2536 , - 479 , - 2118 , - 2077 , - 356 , - 2331 , - 2626 , - 1241 , - 864 , - 1495 , - 446 , - 405 , - 1372 , - 659 , - 954 , - 2257 , - 1880 , - 2511 , - 1462 , - 1421 , - 2388 , - 1675 , - 1970 , - 585 , - 208 , - 839 , - 2478 , - 2437 , - 716 , - 3 , - 298 , - 1601 , - 1224 , - 1855 , - 806 , - 765 , - 1732 , - 1019 , - 1314 , - 2617 , - 2240 , - 183 , - 1822 , - 1781 , - 60 , - 2035 , - 2330 , - 945 , - 568 , - 1199 , - 150 , - 109 , - 1076 , - 363 , - 658 , - 1961 , - 1584 , - 2215 , - 1166 , - 1125 , - 2092 , - 1379 , - 1674 , - 289 , - 2600 , - 543 , - 2182 , - 2141 , - 420 , - 2395 , - 2 , - 1305 , - 928 , - 1559 , - 510 , - 469 , - 1436 , - 723 , - 1018 , - 2321 , - 1944 , - 2575 , - 1526 , - 1485 , - 2452 , - 1739 , - 2034 , - 649 , - 272 , - 903 , - 2542 , - 2501 , - 780 , - 67 , - 362 , - 1665 , - 1288 , - 1919 , - 870 , - 829 , - 1796 , - 1083 , - 1378 , - 2681 , - 2304 , - 247 , - 1886 , - 1845 , - 124 , - 2099 , - 2394 , - 1009 , - 632 , - 1263 , - 214 , - 173 , - 1140 , - 427 , - 722 , - 2025 , - 1648 , - 2279 , - 1230 , - 1189 , - 2156 , - 1443 , - 1738 , - 353 , - 2664 , - 607 , - 2246 , - 2205 , - 484 , - 2459 , - 66 , - 1369 , - 992 , - 1623 , - 574 , - 533 , - 1500 , - 787 , - 1082 , - 2385 , - 2008 , - 2639 , - 1590 , - 1549 , - 2516 , - 1803 , - 2098 , - 713 , - 336 , - 967 , - 2606 , - 2565 , - 844 , - 131 , - 426 , - 1729 , - 1352 , - 1983 , - 934 , - 893 , - 1860 , - 1147 , - 1442 , - 57 , - 2368 , - 311 , - 1950 , - 1909 , - 188 , - 2163 , - 2458 , - 1073 , - 696 , - 1327 , - 278 , - 237 , - 1204 , - 491 , - 786 , - 2089 , - 1712 , - 2343 , - 1294 , - 1253 , - 2220 , - 1507 , - 1802 , - 417 , - 40 , - 671 , - 2310 , - 2269 , - 548 , - 2523 , - 130 , - 1433 , - 1056 , - 1687 , - 638 , - 597 , - 1564 , - 851 , - 1146 , - 2449 , - 2072 , - 15 , - 1654 , - 1613 , - 2580 , - 1867 , - 2162 , - 777 , - 400 , - 1031 , - 2670 , - 2629 , - 908 , - 195 , - 490 , - 1793 , - 1416 , - 2047 , - 998 , - 957 , - 1924 , - 1211 , - 1506 , - 121 , - 2432 , - 375 , - 2014 , - 1973 , - 252 , - 2227 , - 2522 , - 1137 , - 760 , - 1391 , - 342 , - 301 , - 1268 , - 555 , - 850 , - 2153 , - 1776 , - 2407 , - 1358 , - 1317 , - 2284 , - 1571 , - 1866 , - 481 , - 104 , - 735 , - 2374 , - 2333 , - 612 , - 2587 , - 194 , - 1497 , - 1120 , - 1751 , - 702 , - 661 , - 1628 , - 915 , - 1210 , - 2513 , - 2136 , - 79 , - 1718 , - 1677 , - 2644 , - 1931 , - 2226 , - 841 , - 464 , - 1095 , - 46 , - 5 , - 972 , - 259 , - 554 , - 1857 , - 1480 , - 2111 , - 1062 , - 1021 , - 1988 , - 1275 , - 1570 , - 185 , - 2496 , - 439 , - 2078 , - 2037 , - 316 , - 2291 , - 2586 , - 1201 , - 824 , - 1455 , - 406 , - 365 , - 1332 , - 619 , - 914 , - 2217 , - 1840 , - 2471 , - 1422 , - 1381 , - 2348 , - 1635 , - 1930 , - 545 , - 168 , - 799 , - 2438 , - 2397 , - 676 , - 2651 , - 258 , - 1561 , - 1184 , - 1815 , - 766 , - 725 , - 1692 , - 979 , - 1274 , - 2577 , - 2200 , - 143 , - 1782 , - 1741 , - 20 , - 1995 , - 2290 , - 905 , - 528 , - 1159 , - 110 , - 69 , - 1036 , - 323 , - 618 , - 1921 , - 1544 , - 2175 , - 1126 , - 1085 , - 2052 , - 1339 , - 1634 , - 249 , - 2560 , - 503 , - 2142 , - 2101 , - 380 , - 2355 , - 2650 , - 1265 , - 888 , - 1519 , - 470 , - 429 , - 1396 , - 683 , - 978 , - 2281 , - 1904 , - 2535 , - 1486 , - 1445 , - 2412 , - 1699 , - 1994 , - 609 , - 232 , - 863 , - 2502 , - 2461 , - 740 , - 27 , - 322 , - 1625 , - 1248 , - 1879 , - 830 , - 789 , - 1756 , - 1043 , - 1338 , - 2641 , - 2264 , - 207 , - 1846 , - 1805 , - 84 , - 2059 , - 2354 , - 969 , - 592 , - 1223 , - 174 , - 133 , - 1100 , - 387 , - 682 , - 1985 , - 1608 , - 2239 , - 1190 , - 1149 , - 2116 , - 1403 , - 1698 , - 313 , - 2624 , - 567 , - 2206 , - 2165 , - 444 , - 2419 , - 26 , - 1329 , - 952 , - 1583 , - 534 , - 493 , - 1460 , - 747 , - 1042 , - 2345 , - 1968 , - 2599 , - 1550 , - 1509 , - 2476 , - 1763 , - 2058 , - 673 , - 296 , - 927 , - 2566 , - 2525 , - 804 , - 91 , - 386 , - 1689 , - 1312 , - 1943 , - 894 , - 853 , - 1820 , - 1107 , - 1402 , - 17 , - 2328 , - 271 , - 1910 , - 1869 , - 148 , - 2123 , - 2418 , - 1033 , - 656 , - 1287 , - 238 , - 197 , - 1164 , - 451 , - 746 , - 2049 , - 1672 , - 2303 , - 1254 , - 1213 , - 2180 , - 1467 , - 1762 , - 377 , - 0 , - 315 , - 974 , - 1977 , - 572 , - 2263 , - 1546 , - 1173 , - 1144 , - 1459 , - 2118 , - 369 , - 1716 , - 655 , - 2690 , - 2317 , - 2288 , - 2603 , - 510 , - 1513 , - 108 , - 1799 , - 1082 , - 709 , - 680 , - 995 , - 1654 , - 2657 , - 1252 , - 191 , - 2226 , - 1853 , - 1824 , - 2139 , - 46 , - 1049 , - 2396 , - 1335 , - 618 , - 245 , - 216 , - 531 , - 1190 , - 2193 , - 788 , - 2479 , - 1762 , - 1389 , - 1360 , - 1675 , - 2334 , - 585 , - 1932 , - 871 , - 154 , - 2533 , - 2504 , - 67 , - 726 , - 1729 , - 324 , - 2015 , - 1298 , - 925 , - 896 , - 1211 , - 1870 , - 121 , - 1468 , - 407 , - 2442 , - 2069 , - 2040 , - 2355 , - 262 , - 1265 , - 2612 , - 1551 , - 834 , - 461 , - 432 , - 747 , - 1406 , - 2409 , - 1004 , - 2695 , - 1978 , - 1605 , - 1576 , - 1891 , - 2550 , - 801 , - 2148 , - 1087 , - 370 , - 2749 , - 2720 , - 283 , - 942 , - 1945 , - 540 , - 2231 , - 1514 , - 1141 , - 1112 , - 1427 , - 2086 , - 337 , - 1684 , - 623 , - 2658 , - 2285 , - 2256 , - 2571 , - 478 , - 1481 , - 76 , - 1767 , - 1050 , - 677 , - 648 , - 963 , - 1622 , - 2625 , - 1220 , - 159 , - 2194 , - 1821 , - 1792 , - 2107 , - 14 , - 1017 , - 2364 , - 1303 , - 586 , - 213 , - 184 , - 499 , - 1158 , - 2161 , - 756 , - 2447 , - 1730 , - 1357 , - 1328 , - 1643 , - 2302 , - 553 , - 1900 , - 839 , - 122 , - 2501 , - 2472 , - 35 , - 694 , - 1697 , - 292 , - 1983 , - 1266 , - 893 , - 864 , - 1179 , - 1838 , - 89 , - 1436 , - 375 , - 2410 , - 2037 , - 2008 , - 2323 , - 230 , - 1233 , - 2580 , - 1519 , - 802 , - 429 , - 400 , - 715 , - 1374 , - 2377 , - 972 , - 2663 , - 1946 , - 1573 , - 1544 , - 1859 , - 2518 , - 769 , - 2116 , - 1055 , - 338 , - 2717 , - 2688 , - 251 , - 910 , - 1913 , - 508 , - 2199 , - 1482 , - 1109 , - 1080 , - 1395 , - 2054 , - 305 , - 1652 , - 591 , - 2626 , - 2253 , - 2224 , - 2539 , - 446 , - 1449 , - 44 , - 1735 , - 1018 , - 645 , - 616 , - 931 , - 1590 , - 2593 , - 1188 , - 127 , - 2162 , - 1789 , - 1760 , - 2075 , - 2734 , - 985 , - 2332 , - 1271 , - 554 , - 181 , - 152 , - 467 , - 1126 , - 2129 , - 724 , - 2415 , - 1698 , - 1325 , - 1296 , - 1611 , - 2270 , - 521 , - 1868 , - 807 , - 90 , - 2469 , - 2440 , - 3 , - 662 , - 1665 , - 260 , - 1951 , - 1234 , - 861 , - 832 , - 1147 , - 1806 , - 57 , - 1404 , - 343 , - 2378 , - 2005 , - 1976 , - 2291 , - 198 , - 1201 , - 2548 , - 1487 , - 770 , - 397 , - 368 , - 683 , - 1342 , - 2345 , - 940 , - 2631 , - 1914 , - 1541 , - 1512 , - 1827 , - 2486 , - 737 , - 2084 , - 1023 , - 306 , - 2685 , - 2656 , - 219 , - 878 , - 1881 , - 476 , - 2167 , - 1450 , - 1077 , - 1048 , - 1363 , - 2022 , - 273 , - 1620 , - 559 , - 2594 , - 2221 , - 2192 , - 2507 , - 414 , - 1417 , - 12 , - 1703 , - 986 , - 613 , - 584 , - 899 , - 1558 , - 2561 , - 1156 , - 95 , - 2130 , - 1757 , - 1728 , - 2043 , - 2702 , - 953 , - 2300 , - 1239 , - 522 , - 149 , - 120 , - 435 , - 1094 , - 2097 , - 692 , - 2383 , - 1666 , - 1293 , - 1264 , - 1579 , - 2238 , - 489 , - 1836 , - 775 , - 58 , - 2437 , - 2408 , - 2723 , - 630 , - 1633 , - 228 , - 1919 , - 1202 , - 829 , - 800 , - 1115 , - 1774 , - 25 , - 1372 , - 311 , - 2346 , - 1973 , - 1944 , - 2259 , - 166 , - 1169 , - 2516 , - 1455 , - 738 , - 365 , - 336 , - 651 , - 1310 , - 2313 , - 908 , - 2599 , - 1882 , - 1509 , - 1480 , - 1795 , - 2454 , - 705 , - 2052 , - 991 , - 274 , - 2653 , - 2624 , - 187 , - 846 , - 1849 , - 444 , - 2135 , - 1418 , - 1045 , - 1016 , - 1331 , - 1990 , - 241 , - 1588 , - 527 , - 2562 , - 2189 , - 2160 , - 2475 , - 382 , - 1385 , - 2732 , - 1671 , - 954 , - 581 , - 552 , - 867 , - 1526 , - 2529 , - 1124 , - 63 , - 2098 , - 1725 , - 1696 , - 2011 , - 2670 , - 921 , - 2268 , - 1207 , - 490 , - 117 , - 88 , - 403 , - 1062 , - 2065 , - 660 , - 2351 , - 1634 , - 1261 , - 1232 , - 1547 , - 2206 , - 457 , - 1804 , - 743 , - 26 , - 2405 , - 2376 , - 2691 , - 598 , - 1601 , - 196 , - 1887 , - 1170 , - 797 , - 768 , - 1083 , - 1742 , - 2745 , - 1340 , - 279 , - 2314 , - 1941 , - 1912 , - 2227 , - 134 , - 1137 , - 2484 , - 1423 , - 706 , - 333 , - 304 , - 619 , - 1278 , - 2281 , - 876 , - 2567 , - 1850 , - 1477 , - 1448 , - 1763 , - 2422 , - 673 , - 2020 , - 959 , - 242 , - 2621 , - 2592 , - 155 , - 814 , - 1817 , - 412 , - 2103 , - 1386 , - 1013 , - 984 , - 1299 , - 1958 , - 209 , - 1556 , - 495 , - 2530 , - 2157 , - 2128 , - 2443 , - 350 , - 1353 , - 2700 , - 1639 , - 922 , - 549 , - 520 , - 835 , - 1494 , - 2497 , - 1092 , - 31 , - 2066 , - 1693 , - 1664 , - 1979 , - 2638 , - 889 , - 2236 , - 1175 , - 458 , - 85 , - 56 , - 371 , - 1030 , - 2033 , - 628 , - 2319 , - 1602 , - 1229 , - 1200 , - 1515 , - 2174 , - 425 , - 1772 , - 711 , - 2746 , - 2373 , - 2344 , - 2659 , - 566 , - 1569 , - 164 , - 1855 , - 1138 , - 765 , - 736 , - 1051 , - 1710 , - 2713 , - 1308 , - 247 , - 2282 , - 1909 , - 1880 , - 2195 , - 102 , - 1105 , - 2452 , - 1391 , - 674 , - 301 , - 272 , - 587 , - 1246 , - 2249 , - 844 , - 2535 , - 1818 , - 1445 , - 1416 , - 1731 , - 2390 , - 641 , - 1988 , - 927 , - 210 , - 2589 , - 2560 , - 123 , - 782 , - 1785 , - 380 , - 2071 , - 1354 , - 981 , - 952 , - 1267 , - 1926 , - 177 , - 1524 , - 463 , - 2498 , - 2125 , - 2096 , - 2411 , - 318 , - 1321 , - 2668 , - 1607 , - 890 , - 517 , - 488 , - 803 , - 1462 , - 2465 , - 1060 , - 2751 , - 2034 , - 1661 , - 1632 , - 1947 , - 2606 , - 857 , - 2204 , - 1143 , - 426 , - 53 , - 24 , - 339 , - 998 , - 2001 , - 596 , - 2287 , - 1570 , - 1197 , - 1168 , - 1483 , - 2142 , - 393 , - 1740 , - 679 , - 2714 , - 2341 , - 2312 , - 2627 , - 534 , - 1537 , - 132 , - 1823 , - 1106 , - 733 , - 704 , - 1019 , - 1678 , - 2681 , - 1276 , - 215 , - 2250 , - 1877 , - 1848 , - 2163 , - 70 , - 1073 , - 2420 , - 1359 , - 642 , - 269 , - 240 , - 555 , - 1214 , - 2217 , - 812 , - 2503 , - 1786 , - 1413 , - 1384 , - 1699 , - 2358 , - 609 , - 1956 , - 895 , - 178 , - 2557 , - 2528 , - 91 , - 750 , - 1753 , - 348 , - 2039 , - 1322 , - 949 , - 920 , - 1235 , - 1894 , - 145 , - 1492 , - 431 , - 2466 , - 2093 , - 2064 , - 2379 , - 286 , - 1289 , - 2636 , - 1575 , - 858 , - 485 , - 456 , - 771 , - 1430 , - 2433 , - 1028 , - 2719 , - 2002 , - 1629 , - 1600 , - 1915 , - 2574 , - 825 , - 2172 , - 1111 , - 394 , - 21 , - 2744 , - 307 , - 966 , - 1969 , - 564 , - 2255 , - 1538 , - 1165 , - 1136 , - 1451 , - 2110 , - 361 , - 1708 , - 647 , - 2682 , - 2309 , - 2280 , - 2595 , - 502 , - 1505 , - 100 , - 1791 , - 1074 , - 701 , - 672 , - 987 , - 1646 , - 2649 , - 1244 , - 183 , - 2218 , - 1845 , - 1816 , - 2131 , - 38 , - 1041 , - 2388 , - 1327 , - 610 , - 237 , - 208 , - 523 , - 1182 , - 2185 , - 780 , - 2471 , - 1754 , - 1381 , - 1352 , - 1667 , - 2326 , - 577 , - 1924 , - 863 , - 146 , - 2525 , - 2496 , - 59 , - 718 , - 1721 , - 316 , - 2007 , - 1290 , - 917 , - 888 , - 1203 , - 1862 , - 113 , - 1460 , - 399 , - 2434 , - 2061 , - 2032 , - 2347 , - 254 , - 1257 , - 2604 , - 1543 , - 826 , - 453 , - 424 , - 739 , - 1398 , - 2401 , - 996 , - 2687 , - 1970 , - 1597 , - 1568 , - 1883 , - 2542 , - 793 , - 2140 , - 1079 , - 362 , - 2741 , - 2712 , - 275 , - 934 , - 1937 , - 532 , - 2223 , - 1506 , - 1133 , - 1104 , - 1419 , - 2078 , - 329 , - 1676 , - 615 , - 2650 , - 2277 , - 2248 , - 2563 , - 470 , - 1473 , - 68 , - 1759 , - 1042 , - 669 , - 640 , - 955 , - 1614 , - 2617 , - 1212 , - 151 , - 2186 , - 1813 , - 1784 , - 2099 , - 6 , - 1009 , - 2356 , - 1295 , - 578 , - 205 , - 176 , - 491 , - 1150 , - 2153 , - 748 , - 2439 , - 1722 , - 1349 , - 1320 , - 1635 , - 2294 , - 545 , - 1892 , - 831 , - 114 , - 2493 , - 2464 , - 27 , - 686 , - 1689 , - 284 , - 1975 , - 1258 , - 885 , - 856 , - 1171 , - 1830 , - 81 , - 1428 , - 367 , - 2402 , - 2029 , - 2000 , - 2315 , - 222 , - 1225 , - 2572 , - 1511 , - 794 , - 421 , - 392 , - 707 , - 1366 , - 2369 , - 964 , - 2655 , - 1938 , - 1565 , - 1536 , - 1851 , - 2510 , - 761 , - 2108 , - 1047 , - 330 , - 2709 , - 2680 , - 243 , - 902 , - 1905 , - 500 , - 2191 , - 1474 , - 1101 , - 1072 , - 1387 , - 2046 , - 297 , - 1644 , - 583 , - 2618 , - 2245 , - 2216 , - 2531 , - 438 , - 1441 , - 36 , - 1727 , - 1010 , - 637 , - 608 , - 923 , - 1582 , - 2585 , - 1180 , - 119 , - 2154 , - 1781 , - 1752 , - 2067 , - 2726 , - 977 , - 2324 , - 1263 , - 546 , - 173 , - 144 , - 459 , - 1118 , - 2121 , - 716 , - 2407 , - 1690 , - 1317 , - 1288 , - 1603 , - 2262 , - 513 , - 1860 , - 799 , - 82 , - 2461 , - 2432 , - 2747 , - 654 , - 1657 , - 252 , - 1943 , - 1226 , - 853 , - 824 , - 1139 , - 1798 , - 49 , - 1396 , - 335 , - 2370 , - 1997 , - 1968 , - 2283 , - 190 , - 1193 , - 2540 , - 1479 , - 762 , - 389 , - 360 , - 675 , - 1334 , - 2337 , - 932 , - 2623 , - 1906 , - 1533 , - 1504 , - 1819 , - 2478 , - 729 , - 2076 , - 1015 , - 298 , - 2677 , - 2648 , - 211 , - 870 , - 1873 , - 468 , - 2159 , - 1442 , - 1069 , - 1040 , - 1355 , - 2014 , - 265 , - 1612 , - 551 , - 2586 , - 2213 , - 2184 , - 2499 , - 406 , - 1409 , - 4 , - 1695 , - 978 , - 605 , - 576 , - 891 , - 1550 , - 2553 , - 1148 , - 87 , - 2122 , - 1749 , - 1720 , - 2035 , - 2694 , - 945 , - 2292 , - 1231 , - 514 , - 141 , - 112 , - 427 , - 1086 , - 2089 , - 684 , - 2375 , - 1658 , - 1285 , - 1256 , - 1571 , - 2230 , - 481 , - 1828 , - 767 , - 50 , - 2429 , - 2400 , - 2715 , - 622 , - 1625 , - 220 , - 1911 , - 1194 , - 821 , - 792 , - 1107 , - 1766 , - 17 , - 1364 , - 303 , - 2338 , - 1965 , - 1936 , - 2251 , - 158 , - 1161 , - 2508 , - 1447 , - 730 , - 357 , - 328 , - 643 , - 1302 , - 2305 , - 900 , - 2591 , - 1874 , - 1501 , - 1472 , - 1787 , - 2446 , - 697 , - 2044 , - 983 , - 266 , - 2645 , - 2616 , - 179 , - 838 , - 1841 , - 436 , - 2127 , - 1410 , - 1037 , - 1008 , - 1323 , - 1982 , - 233 , - 1580 , - 519 , - 2554 , - 2181 , - 2152 , - 2467 , - 374 , - 1377 , - 2724 , - 1663 , - 946 , - 573 , - 544 , - 859 , - 1518 , - 2521 , - 1116 , - 55 , - 2090 , - 1717 , - 1688 , - 2003 , - 2662 , - 913 , - 2260 , - 1199 , - 482 , - 109 , - 80 , - 395 , - 1054 , - 2057 , - 652 , - 2343 , - 1626 , - 1253 , - 1224 , - 1539 , - 2198 , - 449 , - 1796 , - 735 , - 18 , - 2397 , - 2368 , - 2683 , - 590 , - 1593 , - 188 , - 1879 , - 1162 , - 789 , - 760 , - 1075 , - 1734 , - 2737 , - 1332 , - 271 , - 2306 , - 1933 , - 1904 , - 2219 , - 126 , - 1129 , - 2476 , - 1415 , - 698 , - 325 , - 296 , - 611 , - 1270 , - 2273 , - 868 , - 2559 , - 1842 , - 1469 , - 1440 , - 1755 , - 2414 , - 665 , - 2012 , - 951 , - 234 , - 2613 , - 2584 , - 147 , - 806 , - 1809 , - 404 , - 2095 , - 1378 , - 1005 , - 976 , - 1291 , - 1950 , - 201 , - 1548 , - 487 , - 2522 , - 2149 , - 2120 , - 2435 , - 342 , - 1345 , - 2692 , - 1631 , - 914 , - 541 , - 512 , - 827 , - 1486 , - 2489 , - 1084 , - 23 , - 2058 , - 1685 , - 1656 , - 1971 , - 2630 , - 881 , - 2228 , - 1167 , - 450 , - 77 , - 48 , - 363 , - 1022 , - 2025 , - 620 , - 2311 , - 1594 , - 1221 , - 1192 , - 1507 , - 2166 , - 417 , - 1764 , - 703 , - 2738 , - 2365 , - 2336 , - 2651 , - 558 , - 1561 , - 156 , - 1847 , - 1130 , - 757 , - 728 , - 1043 , - 1702 , - 2705 , - 1300 , - 239 , - 2274 , - 1901 , - 1872 , - 2187 , - 94 , - 1097 , - 2444 , - 1383 , - 666 , - 293 , - 264 , - 579 , - 1238 , - 2241 , - 836 , - 2527 , - 1810 , - 1437 , - 1408 , - 1723 , - 2382 , - 633 , - 1980 , - 919 , - 202 , - 2581 , - 2552 , - 115 , - 774 , - 1777 , - 372 , - 2063 , - 1346 , - 973 , - 944 , - 1259 , - 1918 , - 169 , - 1516 , - 455 , - 2490 , - 2117 , - 2088 , - 2403 , - 310 , - 1313 , - 2660 , - 1599 , - 882 , - 509 , - 480 , - 795 , - 1454 , - 2457 , - 1052 , - 2743 , - 2026 , - 1653 , - 1624 , - 1939 , - 2598 , - 849 , - 2196 , - 1135 , - 418 , - 45 , - 16 , - 331 , - 990 , - 1993 , - 588 , - 2279 , - 1562 , - 1189 , - 1160 , - 1475 , - 2134 , - 385 , - 1732 , - 671 , - 2706 , - 2333 , - 2304 , - 2619 , - 526 , - 1529 , - 124 , - 1815 , - 1098 , - 725 , - 696 , - 1011 , - 1670 , - 2673 , - 1268 , - 207 , - 2242 , - 1869 , - 1840 , - 2155 , - 62 , - 1065 , - 2412 , - 1351 , - 634 , - 261 , - 232 , - 547 , - 1206 , - 2209 , - 804 , - 2495 , - 1778 , - 1405 , - 1376 , - 1691 , - 2350 , - 601 , - 1948 , - 887 , - 170 , - 2549 , - 2520 , - 83 , - 742 , - 1745 , - 340 , - 2031 , - 1314 , - 941 , - 912 , - 1227 , - 1886 , - 137 , - 1484 , - 423 , - 2458 , - 2085 , - 2056 , - 2371 , - 278 , - 1281 , - 2628 , - 1567 , - 850 , - 477 , - 448 , - 763 , - 1422 , - 2425 , - 1020 , - 2711 , - 1994 , - 1621 , - 1592 , - 1907 , - 2566 , - 817 , - 2164 , - 1103 , - 386 , - 13 , - 2736 , - 299 , - 958 , - 1961 , - 556 , - 2247 , - 1530 , - 1157 , - 1128 , - 1443 , - 2102 , - 353 , - 1700 , - 639 , - 2674 , - 2301 , - 2272 , - 2587 , - 494 , - 1497 , - 92 , - 1783 , - 1066 , - 693 , - 664 , - 979 , - 1638 , - 2641 , - 1236 , - 175 , - 2210 , - 1837 , - 1808 , - 2123 , - 30 , - 1033 , - 2380 , - 1319 , - 602 , - 229 , - 200 , - 515 , - 1174 , - 2177 , - 772 , - 2463 , - 1746 , - 1373 , - 1344 , - 1659 , - 2318 , - 569 , - 1916 , - 855 , - 138 , - 2517 , - 2488 , - 51 , - 710 , - 1713 , - 308 , - 1999 , - 1282 , - 909 , - 880 , - 1195 , - 1854 , - 105 , - 1452 , - 391 , - 2426 , - 2053 , - 2024 , - 2339 , - 246 , - 1249 , - 2596 , - 1535 , - 818 , - 445 , - 416 , - 731 , - 1390 , - 2393 , - 988 , - 2679 , - 1962 , - 1589 , - 1560 , - 1875 , - 2534 , - 785 , - 2132 , - 1071 , - 354 , - 2733 , - 2704 , - 267 , - 926 , - 1929 , - 524 , - 2215 , - 1498 , - 1125 , - 1096 , - 1411 , - 2070 , - 321 , - 1668 , - 607 , - 2642 , - 2269 , - 2240 , - 2555 , - 462 , - 1465 , - 60 , - 1751 , - 1034 , - 661 , - 632 , - 947 , - 1606 , - 2609 , - 1204 , - 143 , - 2178 , - 1805 , - 1776 , - 2091 , - 2750 , - 1001 , - 2348 , - 1287 , - 570 , - 197 , - 168 , - 483 , - 1142 , - 2145 , - 740 , - 2431 , - 1714 , - 1341 , - 1312 , - 1627 , - 2286 , - 537 , - 1884 , - 823 , - 106 , - 2485 , - 2456 , - 19 , - 678 , - 1681 , - 276 , - 1967 , - 1250 , - 877 , - 848 , - 1163 , - 1822 , - 73 , - 1420 , - 359 , - 2394 , - 2021 , - 1992 , - 2307 , - 214 , - 1217 , - 2564 , - 1503 , - 786 , - 413 , - 384 , - 699 , - 1358 , - 2361 , - 956 , - 2647 , - 1930 , - 1557 , - 1528 , - 1843 , - 2502 , - 753 , - 2100 , - 1039 , - 322 , - 2701 , - 2672 , - 235 , - 894 , - 1897 , - 492 , - 2183 , - 1466 , - 1093 , - 1064 , - 1379 , - 2038 , - 289 , - 1636 , - 575 , - 2610 , - 2237 , - 2208 , - 2523 , - 430 , - 1433 , - 28 , - 1719 , - 1002 , - 629 , - 600 , - 915 , - 1574 , - 2577 , - 1172 , - 111 , - 2146 , - 1773 , - 1744 , - 2059 , - 2718 , - 969 , - 2316 , - 1255 , - 538 , - 165 , - 136 , - 451 , - 1110 , - 2113 , - 708 , - 2399 , - 1682 , - 1309 , - 1280 , - 1595 , - 2254 , - 505 , - 1852 , - 791 , - 74 , - 2453 , - 2424 , - 2739 , - 646 , - 1649 , - 244 , - 1935 , - 1218 , - 845 , - 816 , - 1131 , - 1790 , - 41 , - 1388 , - 327 , - 2362 , - 1989 , - 1960 , - 2275 , - 182 , - 1185 , - 2532 , - 1471 , - 754 , - 381 , - 352 , - 667 , - 1326 , - 2329 , - 924 , - 2615 , - 1898 , - 1525 , - 1496 , - 1811 , - 2470 , - 721 , - 2068 , - 1007 , - 290 , - 2669 , - 2640 , - 203 , - 862 , - 1865 , - 460 , - 2151 , - 1434 , - 1061 , - 1032 , - 1347 , - 2006 , - 257 , - 1604 , - 543 , - 2578 , - 2205 , - 2176 , - 2491 , - 398 , - 1401 , - 2748 , - 1687 , - 970 , - 597 , - 568 , - 883 , - 1542 , - 2545 , - 1140 , - 79 , - 2114 , - 1741 , - 1712 , - 2027 , - 2686 , - 937 , - 2284 , - 1223 , - 506 , - 133 , - 104 , - 419 , - 1078 , - 2081 , - 676 , - 2367 , - 1650 , - 1277 , - 1248 , - 1563 , - 2222 , - 473 , - 1820 , - 759 , - 42 , - 2421 , - 2392 , - 2707 , - 614 , - 1617 , - 212 , - 1903 , - 1186 , - 813 , - 784 , - 1099 , - 1758 , - 9 , - 1356 , - 295 , - 2330 , - 1957 , - 1928 , - 2243 , - 150 , - 1153 , - 2500 , - 1439 , - 722 , - 349 , - 320 , - 635 , - 1294 , - 2297 , - 892 , - 2583 , - 1866 , - 1493 , - 1464 , - 1779 , - 2438 , - 689 , - 2036 , - 975 , - 258 , - 2637 , - 2608 , - 171 , - 830 , - 1833 , - 428 , - 2119 , - 1402 , - 1029 , - 1000 , - 1315 , - 1974 , - 225 , - 1572 , - 511 , - 2546 , - 2173 , - 2144 , - 2459 , - 366 , - 1369 , - 2716 , - 1655 , - 938 , - 565 , - 536 , - 851 , - 1510 , - 2513 , - 1108 , - 47 , - 2082 , - 1709 , - 1680 , - 1995 , - 2654 , - 905 , - 2252 , - 1191 , - 474 , - 101 , - 72 , - 387 , - 1046 , - 2049 , - 644 , - 2335 , - 1618 , - 1245 , - 1216 , - 1531 , - 2190 , - 441 , - 1788 , - 727 , - 10 , - 2389 , - 2360 , - 2675 , - 582 , - 1585 , - 180 , - 1871 , - 1154 , - 781 , - 752 , - 1067 , - 1726 , - 2729 , - 1324 , - 263 , - 2298 , - 1925 , - 1896 , - 2211 , - 118 , - 1121 , - 2468 , - 1407 , - 690 , - 317 , - 288 , - 603 , - 1262 , - 2265 , - 860 , - 2551 , - 1834 , - 1461 , - 1432 , - 1747 , - 2406 , - 657 , - 2004 , - 943 , - 226 , - 2605 , - 2576 , - 139 , - 798 , - 1801 , - 396 , - 2087 , - 1370 , - 997 , - 968 , - 1283 , - 1942 , - 193 , - 1540 , - 479 , - 2514 , - 2141 , - 2112 , - 2427 , - 334 , - 1337 , - 2684 , - 1623 , - 906 , - 533 , - 504 , - 819 , - 1478 , - 2481 , - 1076 , - 15 , - 2050 , - 1677 , - 1648 , - 1963 , - 2622 , - 873 , - 2220 , - 1159 , - 442 , - 69 , - 40 , - 355 , - 1014 , - 2017 , - 612 , - 2303 , - 1586 , - 1213 , - 1184 , - 1499 , - 2158 , - 409 , - 1756 , - 695 , - 2730 , - 2357 , - 2328 , - 2643 , - 550 , - 1553 , - 148 , - 1839 , - 1122 , - 749 , - 720 , - 1035 , - 1694 , - 2697 , - 1292 , - 231 , - 2266 , - 1893 , - 1864 , - 2179 , - 86 , - 1089 , - 2436 , - 1375 , - 658 , - 285 , - 256 , - 571 , - 1230 , - 2233 , - 828 , - 2519 , - 1802 , - 1429 , - 1400 , - 1715 , - 2374 , - 625 , - 1972 , - 911 , - 194 , - 2573 , - 2544 , - 107 , - 766 , - 1769 , - 364 , - 2055 , - 1338 , - 965 , - 936 , - 1251 , - 1910 , - 161 , - 1508 , - 447 , - 2482 , - 2109 , - 2080 , - 2395 , - 302 , - 1305 , - 2652 , - 1591 , - 874 , - 501 , - 472 , - 787 , - 1446 , - 2449 , - 1044 , - 2735 , - 2018 , - 1645 , - 1616 , - 1931 , - 2590 , - 841 , - 2188 , - 1127 , - 410 , - 37 , - 8 , - 323 , - 982 , - 1985 , - 580 , - 2271 , - 1554 , - 1181 , - 1152 , - 1467 , - 2126 , - 377 , - 1724 , - 663 , - 2698 , - 2325 , - 2296 , - 2611 , - 518 , - 1521 , - 116 , - 1807 , - 1090 , - 717 , - 688 , - 1003 , - 1662 , - 2665 , - 1260 , - 199 , - 2234 , - 1861 , - 1832 , - 2147 , - 54 , - 1057 , - 2404 , - 1343 , - 626 , - 253 , - 224 , - 539 , - 1198 , - 2201 , - 796 , - 2487 , - 1770 , - 1397 , - 1368 , - 1683 , - 2342 , - 593 , - 1940 , - 879 , - 162 , - 2541 , - 2512 , - 75 , - 734 , - 1737 , - 332 , - 2023 , - 1306 , - 933 , - 904 , - 1219 , - 1878 , - 129 , - 1476 , - 415 , - 2450 , - 2077 , - 2048 , - 2363 , - 270 , - 1273 , - 2620 , - 1559 , - 842 , - 469 , - 440 , - 755 , - 1414 , - 2417 , - 1012 , - 2703 , - 1986 , - 1613 , - 1584 , - 1899 , - 2558 , - 809 , - 2156 , - 1095 , - 378 , - 5 , - 2728 , - 291 , - 950 , - 1953 , - 548 , - 2239 , - 1522 , - 1149 , - 1120 , - 1435 , - 2094 , - 345 , - 1692 , - 631 , - 2666 , - 2293 , - 2264 , - 2579 , - 486 , - 1489 , - 84 , - 1775 , - 1058 , - 685 , - 656 , - 971 , - 1630 , - 2633 , - 1228 , - 167 , - 2202 , - 1829 , - 1800 , - 2115 , - 22 , - 1025 , - 2372 , - 1311 , - 594 , - 221 , - 192 , - 507 , - 1166 , - 2169 , - 764 , - 2455 , - 1738 , - 1365 , - 1336 , - 1651 , - 2310 , - 561 , - 1908 , - 847 , - 130 , - 2509 , - 2480 , - 43 , - 702 , - 1705 , - 300 , - 1991 , - 1274 , - 901 , - 872 , - 1187 , - 1846 , - 97 , - 1444 , - 383 , - 2418 , - 2045 , - 2016 , - 2331 , - 238 , - 1241 , - 2588 , - 1527 , - 810 , - 437 , - 408 , - 723 , - 1382 , - 2385 , - 980 , - 2671 , - 1954 , - 1581 , - 1552 , - 1867 , - 2526 , - 777 , - 2124 , - 1063 , - 346 , - 2725 , - 2696 , - 259 , - 918 , - 1921 , - 516 , - 2207 , - 1490 , - 1117 , - 1088 , - 1403 , - 2062 , - 313 , - 1660 , - 599 , - 2634 , - 2261 , - 2232 , - 2547 , - 454 , - 1457 , - 52 , - 1743 , - 1026 , - 653 , - 624 , - 939 , - 1598 , - 2601 , - 1196 , - 135 , - 2170 , - 1797 , - 1768 , - 2083 , - 2742 , - 993 , - 2340 , - 1279 , - 562 , - 189 , - 160 , - 475 , - 1134 , - 2137 , - 732 , - 2423 , - 1706 , - 1333 , - 1304 , - 1619 , - 2278 , - 529 , - 1876 , - 815 , - 98 , - 2477 , - 2448 , - 11 , - 670 , - 1673 , - 268 , - 1959 , - 1242 , - 869 , - 840 , - 1155 , - 1814 , - 65 , - 1412 , - 351 , - 2386 , - 2013 , - 1984 , - 2299 , - 206 , - 1209 , - 2556 , - 1495 , - 778 , - 405 , - 376 , - 691 , - 1350 , - 2353 , - 948 , - 2639 , - 1922 , - 1549 , - 1520 , - 1835 , - 2494 , - 745 , - 2092 , - 1031 , - 314 , - 2693 , - 2664 , - 227 , - 886 , - 1889 , - 484 , - 2175 , - 1458 , - 1085 , - 1056 , - 1371 , - 2030 , - 281 , - 1628 , - 567 , - 2602 , - 2229 , - 2200 , - 2515 , - 422 , - 1425 , - 20 , - 1711 , - 994 , - 621 , - 592 , - 907 , - 1566 , - 2569 , - 1164 , - 103 , - 2138 , - 1765 , - 1736 , - 2051 , - 2710 , - 961 , - 2308 , - 1247 , - 530 , - 157 , - 128 , - 443 , - 1102 , - 2105 , - 700 , - 2391 , - 1674 , - 1301 , - 1272 , - 1587 , - 2246 , - 497 , - 1844 , - 783 , - 66 , - 2445 , - 2416 , - 2731 , - 638 , - 1641 , - 236 , - 1927 , - 1210 , - 837 , - 808 , - 1123 , - 1782 , - 33 , - 1380 , - 319 , - 2354 , - 1981 , - 1952 , - 2267 , - 174 , - 1177 , - 2524 , - 1463 , - 746 , - 373 , - 344 , - 659 , - 1318 , - 2321 , - 916 , - 2607 , - 1890 , - 1517 , - 1488 , - 1803 , - 2462 , - 713 , - 2060 , - 999 , - 282 , - 2661 , - 2632 , - 195 , - 854 , - 1857 , - 452 , - 2143 , - 1426 , - 1053 , - 1024 , - 1339 , - 1998 , - 249 , - 1596 , - 535 , - 2570 , - 2197 , - 2168 , - 2483 , - 390 , - 1393 , - 2740 , - 1679 , - 962 , - 589 , - 560 , - 875 , - 1534 , - 2537 , - 1132 , - 71 , - 2106 , - 1733 , - 1704 , - 2019 , - 2678 , - 929 , - 2276 , - 1215 , - 498 , - 125 , - 96 , - 411 , - 1070 , - 2073 , - 668 , - 2359 , - 1642 , - 1269 , - 1240 , - 1555 , - 2214 , - 465 , - 1812 , - 751 , - 34 , - 2413 , - 2384 , - 2699 , - 606 , - 1609 , - 204 , - 1895 , - 1178 , - 805 , - 776 , - 1091 , - 1750 , - 1 , - 1348 , - 287 , - 2322 , - 1949 , - 1920 , - 2235 , - 142 , - 1145 , - 2492 , - 1431 , - 714 , - 341 , - 312 , - 627 , - 1286 , - 2289 , - 884 , - 2575 , - 1858 , - 1485 , - 1456 , - 1771 , - 2430 , - 681 , - 2028 , - 967 , - 250 , - 2629 , - 2600 , - 163 , - 822 , - 1825 , - 420 , - 2111 , - 1394 , - 1021 , - 992 , - 1307 , - 1966 , - 217 , - 1564 , - 503 , - 2538 , - 2165 , - 2136 , - 2451 , - 358 , - 1361 , - 2708 , - 1647 , - 930 , - 557 , - 528 , - 843 , - 1502 , - 2505 , - 1100 , - 39 , - 2074 , - 1701 , - 1672 , - 1987 , - 2646 , - 897 , - 2244 , - 1183 , - 466 , - 93 , - 64 , - 379 , - 1038 , - 2041 , - 636 , - 2327 , - 1610 , - 1237 , - 1208 , - 1523 , - 2182 , - 433 , - 1780 , - 719 , - 2 , - 2381 , - 2352 , - 2667 , - 574 , - 1577 , - 172 , - 1863 , - 1146 , - 773 , - 744 , - 1059 , - 1718 , - 2721 , - 1316 , - 255 , - 2290 , - 1917 , - 1888 , - 2203 , - 110 , - 1113 , - 2460 , - 1399 , - 682 , - 309 , - 280 , - 595 , - 1254 , - 2257 , - 852 , - 2543 , - 1826 , - 1453 , - 1424 , - 1739 , - 2398 , - 649 , - 1996 , - 935 , - 218 , - 2597 , - 2568 , - 131 , - 790 , - 1793 , - 388 , - 2079 , - 1362 , - 989 , - 960 , - 1275 , - 1934 , - 185 , - 1532 , - 471 , - 2506 , - 2133 , - 2104 , - 2419 , - 326 , - 1329 , - 2676 , - 1615 , - 898 , - 525 , - 496 , - 811 , - 1470 , - 2473 , - 1068 , - 7 , - 2042 , - 1669 , - 1640 , - 1955 , - 2614 , - 865 , - 2212 , - 1151 , - 434 , - 61 , - 32 , - 347 , - 1006 , - 2009 , - 604 , - 2295 , - 1578 , - 1205 , - 1176 , - 1491 , - 2150 , - 401 , - 1748 , - 687 , - 2722 , - 2349 , - 2320 , - 2635 , - 542 , - 1545 , - 140 , - 1831 , - 1114 , - 741 , - 712 , - 1027 , - 1686 , - 2689 , - 1284 , - 223 , - 2258 , - 1885 , - 1856 , - 2171 , - 78 , - 1081 , - 2428 , - 1367 , - 650 , - 277 , - 248 , - 563 , - 1222 , - 2225 , - 820 , - 2511 , - 1794 , - 1421 , - 1392 , - 1707 , - 2366 , - 617 , - 1964 , - 903 , - 186 , - 2565 , - 2536 , - 99 , - 758 , - 1761 , - 356 , - 2047 , - 1330 , - 957 , - 928 , - 1243 , - 1902 , - 153 , - 1500 , - 439 , - 2474 , - 2101 , - 2072 , - 2387 , - 294 , - 1297 , - 2644 , - 1583 , - 866 , - 493 , - 464 , - 779 , - 1438 , - 2441 , - 1036 , - 2727 , - 2010 , - 1637 , - 1608 , - 1923 , - 2582 , - 833 , - 2180 , - 1119 , - 402 , - 29 , - 0 , - 131 , - 438 , - 921 , - 1580 , - 2415 , - 610 , - 1797 , - 344 , - 1883 , - 782 , - 2673 , - 1924 , - 1351 , - 954 , - 733 , - 688 , - 819 , - 1126 , - 1609 , - 2268 , - 287 , - 1298 , - 2485 , - 1032 , - 2571 , - 1470 , - 545 , - 2612 , - 2039 , - 1642 , - 1421 , - 1376 , - 1507 , - 1814 , - 2297 , - 140 , - 975 , - 1986 , - 357 , - 1720 , - 443 , - 2158 , - 1233 , - 484 , - 2727 , - 2330 , - 2109 , - 2064 , - 2195 , - 2502 , - 169 , - 828 , - 1663 , - 2674 , - 1045 , - 2408 , - 1131 , - 30 , - 1921 , - 1172 , - 599 , - 202 , - 2797 , - 2752 , - 67 , - 374 , - 857 , - 1516 , - 2351 , - 546 , - 1733 , - 280 , - 1819 , - 718 , - 2609 , - 1860 , - 1287 , - 890 , - 669 , - 624 , - 755 , - 1062 , - 1545 , - 2204 , - 223 , - 1234 , - 2421 , - 968 , - 2507 , - 1406 , - 481 , - 2548 , - 1975 , - 1578 , - 1357 , - 1312 , - 1443 , - 1750 , - 2233 , - 76 , - 911 , - 1922 , - 293 , - 1656 , - 379 , - 2094 , - 1169 , - 420 , - 2663 , - 2266 , - 2045 , - 2000 , - 2131 , - 2438 , - 105 , - 764 , - 1599 , - 2610 , - 981 , - 2344 , - 1067 , - 2782 , - 1857 , - 1108 , - 535 , - 138 , - 2733 , - 2688 , - 3 , - 310 , - 793 , - 1452 , - 2287 , - 482 , - 1669 , - 216 , - 1755 , - 654 , - 2545 , - 1796 , - 1223 , - 826 , - 605 , - 560 , - 691 , - 998 , - 1481 , - 2140 , - 159 , - 1170 , - 2357 , - 904 , - 2443 , - 1342 , - 417 , - 2484 , - 1911 , - 1514 , - 1293 , - 1248 , - 1379 , - 1686 , - 2169 , - 12 , - 847 , - 1858 , - 229 , - 1592 , - 315 , - 2030 , - 1105 , - 356 , - 2599 , - 2202 , - 1981 , - 1936 , - 2067 , - 2374 , - 41 , - 700 , - 1535 , - 2546 , - 917 , - 2280 , - 1003 , - 2718 , - 1793 , - 1044 , - 471 , - 74 , - 2669 , - 2624 , - 2755 , - 246 , - 729 , - 1388 , - 2223 , - 418 , - 1605 , - 152 , - 1691 , - 590 , - 2481 , - 1732 , - 1159 , - 762 , - 541 , - 496 , - 627 , - 934 , - 1417 , - 2076 , - 95 , - 1106 , - 2293 , - 840 , - 2379 , - 1278 , - 353 , - 2420 , - 1847 , - 1450 , - 1229 , - 1184 , - 1315 , - 1622 , - 2105 , - 2764 , - 783 , - 1794 , - 165 , - 1528 , - 251 , - 1966 , - 1041 , - 292 , - 2535 , - 2138 , - 1917 , - 1872 , - 2003 , - 2310 , - 2793 , - 636 , - 1471 , - 2482 , - 853 , - 2216 , - 939 , - 2654 , - 1729 , - 980 , - 407 , - 10 , - 2605 , - 2560 , - 2691 , - 182 , - 665 , - 1324 , - 2159 , - 354 , - 1541 , - 88 , - 1627 , - 526 , - 2417 , - 1668 , - 1095 , - 698 , - 477 , - 432 , - 563 , - 870 , - 1353 , - 2012 , - 31 , - 1042 , - 2229 , - 776 , - 2315 , - 1214 , - 289 , - 2356 , - 1783 , - 1386 , - 1165 , - 1120 , - 1251 , - 1558 , - 2041 , - 2700 , - 719 , - 1730 , - 101 , - 1464 , - 187 , - 1902 , - 977 , - 228 , - 2471 , - 2074 , - 1853 , - 1808 , - 1939 , - 2246 , - 2729 , - 572 , - 1407 , - 2418 , - 789 , - 2152 , - 875 , - 2590 , - 1665 , - 916 , - 343 , - 2762 , - 2541 , - 2496 , - 2627 , - 118 , - 601 , - 1260 , - 2095 , - 290 , - 1477 , - 24 , - 1563 , - 462 , - 2353 , - 1604 , - 1031 , - 634 , - 413 , - 368 , - 499 , - 806 , - 1289 , - 1948 , - 2783 , - 978 , - 2165 , - 712 , - 2251 , - 1150 , - 225 , - 2292 , - 1719 , - 1322 , - 1101 , - 1056 , - 1187 , - 1494 , - 1977 , - 2636 , - 655 , - 1666 , - 37 , - 1400 , - 123 , - 1838 , - 913 , - 164 , - 2407 , - 2010 , - 1789 , - 1744 , - 1875 , - 2182 , - 2665 , - 508 , - 1343 , - 2354 , - 725 , - 2088 , - 811 , - 2526 , - 1601 , - 852 , - 279 , - 2698 , - 2477 , - 2432 , - 2563 , - 54 , - 537 , - 1196 , - 2031 , - 226 , - 1413 , - 2776 , - 1499 , - 398 , - 2289 , - 1540 , - 967 , - 570 , - 349 , - 304 , - 435 , - 742 , - 1225 , - 1884 , - 2719 , - 914 , - 2101 , - 648 , - 2187 , - 1086 , - 161 , - 2228 , - 1655 , - 1258 , - 1037 , - 992 , - 1123 , - 1430 , - 1913 , - 2572 , - 591 , - 1602 , - 2789 , - 1336 , - 59 , - 1774 , - 849 , - 100 , - 2343 , - 1946 , - 1725 , - 1680 , - 1811 , - 2118 , - 2601 , - 444 , - 1279 , - 2290 , - 661 , - 2024 , - 747 , - 2462 , - 1537 , - 788 , - 215 , - 2634 , - 2413 , - 2368 , - 2499 , - 2806 , - 473 , - 1132 , - 1967 , - 162 , - 1349 , - 2712 , - 1435 , - 334 , - 2225 , - 1476 , - 903 , - 506 , - 285 , - 240 , - 371 , - 678 , - 1161 , - 1820 , - 2655 , - 850 , - 2037 , - 584 , - 2123 , - 1022 , - 97 , - 2164 , - 1591 , - 1194 , - 973 , - 928 , - 1059 , - 1366 , - 1849 , - 2508 , - 527 , - 1538 , - 2725 , - 1272 , - 2811 , - 1710 , - 785 , - 36 , - 2279 , - 1882 , - 1661 , - 1616 , - 1747 , - 2054 , - 2537 , - 380 , - 1215 , - 2226 , - 597 , - 1960 , - 683 , - 2398 , - 1473 , - 724 , - 151 , - 2570 , - 2349 , - 2304 , - 2435 , - 2742 , - 409 , - 1068 , - 1903 , - 98 , - 1285 , - 2648 , - 1371 , - 270 , - 2161 , - 1412 , - 839 , - 442 , - 221 , - 176 , - 307 , - 614 , - 1097 , - 1756 , - 2591 , - 786 , - 1973 , - 520 , - 2059 , - 958 , - 33 , - 2100 , - 1527 , - 1130 , - 909 , - 864 , - 995 , - 1302 , - 1785 , - 2444 , - 463 , - 1474 , - 2661 , - 1208 , - 2747 , - 1646 , - 721 , - 2788 , - 2215 , - 1818 , - 1597 , - 1552 , - 1683 , - 1990 , - 2473 , - 316 , - 1151 , - 2162 , - 533 , - 1896 , - 619 , - 2334 , - 1409 , - 660 , - 87 , - 2506 , - 2285 , - 2240 , - 2371 , - 2678 , - 345 , - 1004 , - 1839 , - 34 , - 1221 , - 2584 , - 1307 , - 206 , - 2097 , - 1348 , - 775 , - 378 , - 157 , - 112 , - 243 , - 550 , - 1033 , - 1692 , - 2527 , - 722 , - 1909 , - 456 , - 1995 , - 894 , - 2785 , - 2036 , - 1463 , - 1066 , - 845 , - 800 , - 931 , - 1238 , - 1721 , - 2380 , - 399 , - 1410 , - 2597 , - 1144 , - 2683 , - 1582 , - 657 , - 2724 , - 2151 , - 1754 , - 1533 , - 1488 , - 1619 , - 1926 , - 2409 , - 252 , - 1087 , - 2098 , - 469 , - 1832 , - 555 , - 2270 , - 1345 , - 596 , - 23 , - 2442 , - 2221 , - 2176 , - 2307 , - 2614 , - 281 , - 940 , - 1775 , - 2786 , - 1157 , - 2520 , - 1243 , - 142 , - 2033 , - 1284 , - 711 , - 314 , - 93 , - 48 , - 179 , - 486 , - 969 , - 1628 , - 2463 , - 658 , - 1845 , - 392 , - 1931 , - 830 , - 2721 , - 1972 , - 1399 , - 1002 , - 781 , - 736 , - 867 , - 1174 , - 1657 , - 2316 , - 335 , - 1346 , - 2533 , - 1080 , - 2619 , - 1518 , - 593 , - 2660 , - 2087 , - 1690 , - 1469 , - 1424 , - 1555 , - 1862 , - 2345 , - 188 , - 1023 , - 2034 , - 405 , - 1768 , - 491 , - 2206 , - 1281 , - 532 , - 2775 , - 2378 , - 2157 , - 2112 , - 2243 , - 2550 , - 217 , - 876 , - 1711 , - 2722 , - 1093 , - 2456 , - 1179 , - 78 , - 1969 , - 1220 , - 647 , - 250 , - 29 , - 2800 , - 115 , - 422 , - 905 , - 1564 , - 2399 , - 594 , - 1781 , - 328 , - 1867 , - 766 , - 2657 , - 1908 , - 1335 , - 938 , - 717 , - 672 , - 803 , - 1110 , - 1593 , - 2252 , - 271 , - 1282 , - 2469 , - 1016 , - 2555 , - 1454 , - 529 , - 2596 , - 2023 , - 1626 , - 1405 , - 1360 , - 1491 , - 1798 , - 2281 , - 124 , - 959 , - 1970 , - 341 , - 1704 , - 427 , - 2142 , - 1217 , - 468 , - 2711 , - 2314 , - 2093 , - 2048 , - 2179 , - 2486 , - 153 , - 812 , - 1647 , - 2658 , - 1029 , - 2392 , - 1115 , - 14 , - 1905 , - 1156 , - 583 , - 186 , - 2781 , - 2736 , - 51 , - 358 , - 841 , - 1500 , - 2335 , - 530 , - 1717 , - 264 , - 1803 , - 702 , - 2593 , - 1844 , - 1271 , - 874 , - 653 , - 608 , - 739 , - 1046 , - 1529 , - 2188 , - 207 , - 1218 , - 2405 , - 952 , - 2491 , - 1390 , - 465 , - 2532 , - 1959 , - 1562 , - 1341 , - 1296 , - 1427 , - 1734 , - 2217 , - 60 , - 895 , - 1906 , - 277 , - 1640 , - 363 , - 2078 , - 1153 , - 404 , - 2647 , - 2250 , - 2029 , - 1984 , - 2115 , - 2422 , - 89 , - 748 , - 1583 , - 2594 , - 965 , - 2328 , - 1051 , - 2766 , - 1841 , - 1092 , - 519 , - 122 , - 2717 , - 2672 , - 2803 , - 294 , - 777 , - 1436 , - 2271 , - 466 , - 1653 , - 200 , - 1739 , - 638 , - 2529 , - 1780 , - 1207 , - 810 , - 589 , - 544 , - 675 , - 982 , - 1465 , - 2124 , - 143 , - 1154 , - 2341 , - 888 , - 2427 , - 1326 , - 401 , - 2468 , - 1895 , - 1498 , - 1277 , - 1232 , - 1363 , - 1670 , - 2153 , - 2812 , - 831 , - 1842 , - 213 , - 1576 , - 299 , - 2014 , - 1089 , - 340 , - 2583 , - 2186 , - 1965 , - 1920 , - 2051 , - 2358 , - 25 , - 684 , - 1519 , - 2530 , - 901 , - 2264 , - 987 , - 2702 , - 1777 , - 1028 , - 455 , - 58 , - 2653 , - 2608 , - 2739 , - 230 , - 713 , - 1372 , - 2207 , - 402 , - 1589 , - 136 , - 1675 , - 574 , - 2465 , - 1716 , - 1143 , - 746 , - 525 , - 480 , - 611 , - 918 , - 1401 , - 2060 , - 79 , - 1090 , - 2277 , - 824 , - 2363 , - 1262 , - 337 , - 2404 , - 1831 , - 1434 , - 1213 , - 1168 , - 1299 , - 1606 , - 2089 , - 2748 , - 767 , - 1778 , - 149 , - 1512 , - 235 , - 1950 , - 1025 , - 276 , - 2519 , - 2122 , - 1901 , - 1856 , - 1987 , - 2294 , - 2777 , - 620 , - 1455 , - 2466 , - 837 , - 2200 , - 923 , - 2638 , - 1713 , - 964 , - 391 , - 2810 , - 2589 , - 2544 , - 2675 , - 166 , - 649 , - 1308 , - 2143 , - 338 , - 1525 , - 72 , - 1611 , - 510 , - 2401 , - 1652 , - 1079 , - 682 , - 461 , - 416 , - 547 , - 854 , - 1337 , - 1996 , - 15 , - 1026 , - 2213 , - 760 , - 2299 , - 1198 , - 273 , - 2340 , - 1767 , - 1370 , - 1149 , - 1104 , - 1235 , - 1542 , - 2025 , - 2684 , - 703 , - 1714 , - 85 , - 1448 , - 171 , - 1886 , - 961 , - 212 , - 2455 , - 2058 , - 1837 , - 1792 , - 1923 , - 2230 , - 2713 , - 556 , - 1391 , - 2402 , - 773 , - 2136 , - 859 , - 2574 , - 1649 , - 900 , - 327 , - 2746 , - 2525 , - 2480 , - 2611 , - 102 , - 585 , - 1244 , - 2079 , - 274 , - 1461 , - 8 , - 1547 , - 446 , - 2337 , - 1588 , - 1015 , - 618 , - 397 , - 352 , - 483 , - 790 , - 1273 , - 1932 , - 2767 , - 962 , - 2149 , - 696 , - 2235 , - 1134 , - 209 , - 2276 , - 1703 , - 1306 , - 1085 , - 1040 , - 1171 , - 1478 , - 1961 , - 2620 , - 639 , - 1650 , - 21 , - 1384 , - 107 , - 1822 , - 897 , - 148 , - 2391 , - 1994 , - 1773 , - 1728 , - 1859 , - 2166 , - 2649 , - 492 , - 1327 , - 2338 , - 709 , - 2072 , - 795 , - 2510 , - 1585 , - 836 , - 263 , - 2682 , - 2461 , - 2416 , - 2547 , - 38 , - 521 , - 1180 , - 2015 , - 210 , - 1397 , - 2760 , - 1483 , - 382 , - 2273 , - 1524 , - 951 , - 554 , - 333 , - 288 , - 419 , - 726 , - 1209 , - 1868 , - 2703 , - 898 , - 2085 , - 632 , - 2171 , - 1070 , - 145 , - 2212 , - 1639 , - 1242 , - 1021 , - 976 , - 1107 , - 1414 , - 1897 , - 2556 , - 575 , - 1586 , - 2773 , - 1320 , - 43 , - 1758 , - 833 , - 84 , - 2327 , - 1930 , - 1709 , - 1664 , - 1795 , - 2102 , - 2585 , - 428 , - 1263 , - 2274 , - 645 , - 2008 , - 731 , - 2446 , - 1521 , - 772 , - 199 , - 2618 , - 2397 , - 2352 , - 2483 , - 2790 , - 457 , - 1116 , - 1951 , - 146 , - 1333 , - 2696 , - 1419 , - 318 , - 2209 , - 1460 , - 887 , - 490 , - 269 , - 224 , - 355 , - 662 , - 1145 , - 1804 , - 2639 , - 834 , - 2021 , - 568 , - 2107 , - 1006 , - 81 , - 2148 , - 1575 , - 1178 , - 957 , - 912 , - 1043 , - 1350 , - 1833 , - 2492 , - 511 , - 1522 , - 2709 , - 1256 , - 2795 , - 1694 , - 769 , - 20 , - 2263 , - 1866 , - 1645 , - 1600 , - 1731 , - 2038 , - 2521 , - 364 , - 1199 , - 2210 , - 581 , - 1944 , - 667 , - 2382 , - 1457 , - 708 , - 135 , - 2554 , - 2333 , - 2288 , - 2419 , - 2726 , - 393 , - 1052 , - 1887 , - 82 , - 1269 , - 2632 , - 1355 , - 254 , - 2145 , - 1396 , - 823 , - 426 , - 205 , - 160 , - 291 , - 598 , - 1081 , - 1740 , - 2575 , - 770 , - 1957 , - 504 , - 2043 , - 942 , - 17 , - 2084 , - 1511 , - 1114 , - 893 , - 848 , - 979 , - 1286 , - 1769 , - 2428 , - 447 , - 1458 , - 2645 , - 1192 , - 2731 , - 1630 , - 705 , - 2772 , - 2199 , - 1802 , - 1581 , - 1536 , - 1667 , - 1974 , - 2457 , - 300 , - 1135 , - 2146 , - 517 , - 1880 , - 603 , - 2318 , - 1393 , - 644 , - 71 , - 2490 , - 2269 , - 2224 , - 2355 , - 2662 , - 329 , - 988 , - 1823 , - 18 , - 1205 , - 2568 , - 1291 , - 190 , - 2081 , - 1332 , - 759 , - 362 , - 141 , - 96 , - 227 , - 534 , - 1017 , - 1676 , - 2511 , - 706 , - 1893 , - 440 , - 1979 , - 878 , - 2769 , - 2020 , - 1447 , - 1050 , - 829 , - 784 , - 915 , - 1222 , - 1705 , - 2364 , - 383 , - 1394 , - 2581 , - 1128 , - 2667 , - 1566 , - 641 , - 2708 , - 2135 , - 1738 , - 1517 , - 1472 , - 1603 , - 1910 , - 2393 , - 236 , - 1071 , - 2082 , - 453 , - 1816 , - 539 , - 2254 , - 1329 , - 580 , - 7 , - 2426 , - 2205 , - 2160 , - 2291 , - 2598 , - 265 , - 924 , - 1759 , - 2770 , - 1141 , - 2504 , - 1227 , - 126 , - 2017 , - 1268 , - 695 , - 298 , - 77 , - 32 , - 163 , - 470 , - 953 , - 1612 , - 2447 , - 642 , - 1829 , - 376 , - 1915 , - 814 , - 2705 , - 1956 , - 1383 , - 986 , - 765 , - 720 , - 851 , - 1158 , - 1641 , - 2300 , - 319 , - 1330 , - 2517 , - 1064 , - 2603 , - 1502 , - 577 , - 2644 , - 2071 , - 1674 , - 1453 , - 1408 , - 1539 , - 1846 , - 2329 , - 172 , - 1007 , - 2018 , - 389 , - 1752 , - 475 , - 2190 , - 1265 , - 516 , - 2759 , - 2362 , - 2141 , - 2096 , - 2227 , - 2534 , - 201 , - 860 , - 1695 , - 2706 , - 1077 , - 2440 , - 1163 , - 62 , - 1953 , - 1204 , - 631 , - 234 , - 13 , - 2784 , - 99 , - 406 , - 889 , - 1548 , - 2383 , - 578 , - 1765 , - 312 , - 1851 , - 750 , - 2641 , - 1892 , - 1319 , - 922 , - 701 , - 656 , - 787 , - 1094 , - 1577 , - 2236 , - 255 , - 1266 , - 2453 , - 1000 , - 2539 , - 1438 , - 513 , - 2580 , - 2007 , - 1610 , - 1389 , - 1344 , - 1475 , - 1782 , - 2265 , - 108 , - 943 , - 1954 , - 325 , - 1688 , - 411 , - 2126 , - 1201 , - 452 , - 2695 , - 2298 , - 2077 , - 2032 , - 2163 , - 2470 , - 137 , - 796 , - 1631 , - 2642 , - 1013 , - 2376 , - 1099 , - 2814 , - 1889 , - 1140 , - 567 , - 170 , - 2765 , - 2720 , - 35 , - 342 , - 825 , - 1484 , - 2319 , - 514 , - 1701 , - 248 , - 1787 , - 686 , - 2577 , - 1828 , - 1255 , - 858 , - 637 , - 592 , - 723 , - 1030 , - 1513 , - 2172 , - 191 , - 1202 , - 2389 , - 936 , - 2475 , - 1374 , - 449 , - 2516 , - 1943 , - 1546 , - 1325 , - 1280 , - 1411 , - 1718 , - 2201 , - 44 , - 879 , - 1890 , - 261 , - 1624 , - 347 , - 2062 , - 1137 , - 388 , - 2631 , - 2234 , - 2013 , - 1968 , - 2099 , - 2406 , - 73 , - 732 , - 1567 , - 2578 , - 949 , - 2312 , - 1035 , - 2750 , - 1825 , - 1076 , - 503 , - 106 , - 2701 , - 2656 , - 2787 , - 278 , - 761 , - 1420 , - 2255 , - 450 , - 1637 , - 184 , - 1723 , - 622 , - 2513 , - 1764 , - 1191 , - 794 , - 573 , - 528 , - 659 , - 966 , - 1449 , - 2108 , - 127 , - 1138 , - 2325 , - 872 , - 2411 , - 1310 , - 385 , - 2452 , - 1879 , - 1482 , - 1261 , - 1216 , - 1347 , - 1654 , - 2137 , - 2796 , - 815 , - 1826 , - 197 , - 1560 , - 283 , - 1998 , - 1073 , - 324 , - 2567 , - 2170 , - 1949 , - 1904 , - 2035 , - 2342 , - 9 , - 668 , - 1503 , - 2514 , - 885 , - 2248 , - 971 , - 2686 , - 1761 , - 1012 , - 439 , - 42 , - 2637 , - 2592 , - 2723 , - 214 , - 697 , - 1356 , - 2191 , - 386 , - 1573 , - 120 , - 1659 , - 558 , - 2449 , - 1700 , - 1127 , - 730 , - 509 , - 464 , - 595 , - 902 , - 1385 , - 2044 , - 63 , - 1074 , - 2261 , - 808 , - 2347 , - 1246 , - 321 , - 2388 , - 1815 , - 1418 , - 1197 , - 1152 , - 1283 , - 1590 , - 2073 , - 2732 , - 751 , - 1762 , - 133 , - 1496 , - 219 , - 1934 , - 1009 , - 260 , - 2503 , - 2106 , - 1885 , - 1840 , - 1971 , - 2278 , - 2761 , - 604 , - 1439 , - 2450 , - 821 , - 2184 , - 907 , - 2622 , - 1697 , - 948 , - 375 , - 2794 , - 2573 , - 2528 , - 2659 , - 150 , - 633 , - 1292 , - 2127 , - 322 , - 1509 , - 56 , - 1595 , - 494 , - 2385 , - 1636 , - 1063 , - 666 , - 445 , - 400 , - 531 , - 838 , - 1321 , - 1980 , - 2815 , - 1010 , - 2197 , - 744 , - 2283 , - 1182 , - 257 , - 2324 , - 1751 , - 1354 , - 1133 , - 1088 , - 1219 , - 1526 , - 2009 , - 2668 , - 687 , - 1698 , - 69 , - 1432 , - 155 , - 1870 , - 945 , - 196 , - 2439 , - 2042 , - 1821 , - 1776 , - 1907 , - 2214 , - 2697 , - 540 , - 1375 , - 2386 , - 757 , - 2120 , - 843 , - 2558 , - 1633 , - 884 , - 311 , - 2730 , - 2509 , - 2464 , - 2595 , - 86 , - 569 , - 1228 , - 2063 , - 258 , - 1445 , - 2808 , - 1531 , - 430 , - 2321 , - 1572 , - 999 , - 602 , - 381 , - 336 , - 467 , - 774 , - 1257 , - 1916 , - 2751 , - 946 , - 2133 , - 680 , - 2219 , - 1118 , - 193 , - 2260 , - 1687 , - 1290 , - 1069 , - 1024 , - 1155 , - 1462 , - 1945 , - 2604 , - 623 , - 1634 , - 5 , - 1368 , - 91 , - 1806 , - 881 , - 132 , - 2375 , - 1978 , - 1757 , - 1712 , - 1843 , - 2150 , - 2633 , - 476 , - 1311 , - 2322 , - 693 , - 2056 , - 779 , - 2494 , - 1569 , - 820 , - 247 , - 2666 , - 2445 , - 2400 , - 2531 , - 22 , - 505 , - 1164 , - 1999 , - 194 , - 1381 , - 2744 , - 1467 , - 366 , - 2257 , - 1508 , - 935 , - 538 , - 317 , - 272 , - 403 , - 710 , - 1193 , - 1852 , - 2687 , - 882 , - 2069 , - 616 , - 2155 , - 1054 , - 129 , - 2196 , - 1623 , - 1226 , - 1005 , - 960 , - 1091 , - 1398 , - 1881 , - 2540 , - 559 , - 1570 , - 2757 , - 1304 , - 27 , - 1742 , - 817 , - 68 , - 2311 , - 1914 , - 1693 , - 1648 , - 1779 , - 2086 , - 2569 , - 412 , - 1247 , - 2258 , - 629 , - 1992 , - 715 , - 2430 , - 1505 , - 756 , - 183 , - 2602 , - 2381 , - 2336 , - 2467 , - 2774 , - 441 , - 1100 , - 1935 , - 130 , - 1317 , - 2680 , - 1403 , - 302 , - 2193 , - 1444 , - 871 , - 474 , - 253 , - 208 , - 339 , - 646 , - 1129 , - 1788 , - 2623 , - 818 , - 2005 , - 552 , - 2091 , - 990 , - 65 , - 2132 , - 1559 , - 1162 , - 941 , - 896 , - 1027 , - 1334 , - 1817 , - 2476 , - 495 , - 1506 , - 2693 , - 1240 , - 2779 , - 1678 , - 753 , - 4 , - 2247 , - 1850 , - 1629 , - 1584 , - 1715 , - 2022 , - 2505 , - 348 , - 1183 , - 2194 , - 565 , - 1928 , - 651 , - 2366 , - 1441 , - 692 , - 119 , - 2538 , - 2317 , - 2272 , - 2403 , - 2710 , - 377 , - 1036 , - 1871 , - 66 , - 1253 , - 2616 , - 1339 , - 238 , - 2129 , - 1380 , - 807 , - 410 , - 189 , - 144 , - 275 , - 582 , - 1065 , - 1724 , - 2559 , - 754 , - 1941 , - 488 , - 2027 , - 926 , - 1 , - 2068 , - 1495 , - 1098 , - 877 , - 832 , - 963 , - 1270 , - 1753 , - 2412 , - 431 , - 1442 , - 2629 , - 1176 , - 2715 , - 1614 , - 689 , - 2756 , - 2183 , - 1786 , - 1565 , - 1520 , - 1651 , - 1958 , - 2441 , - 284 , - 1119 , - 2130 , - 501 , - 1864 , - 587 , - 2302 , - 1377 , - 628 , - 55 , - 2474 , - 2253 , - 2208 , - 2339 , - 2646 , - 313 , - 972 , - 1807 , - 2 , - 1189 , - 2552 , - 1275 , - 174 , - 2065 , - 1316 , - 743 , - 346 , - 125 , - 80 , - 211 , - 518 , - 1001 , - 1660 , - 2495 , - 690 , - 1877 , - 424 , - 1963 , - 862 , - 2753 , - 2004 , - 1431 , - 1034 , - 813 , - 768 , - 899 , - 1206 , - 1689 , - 2348 , - 367 , - 1378 , - 2565 , - 1112 , - 2651 , - 1550 , - 625 , - 2692 , - 2119 , - 1722 , - 1501 , - 1456 , - 1587 , - 1894 , - 2377 , - 220 , - 1055 , - 2066 , - 437 , - 1800 , - 523 , - 2238 , - 1313 , - 564 , - 2807 , - 2410 , - 2189 , - 2144 , - 2275 , - 2582 , - 249 , - 908 , - 1743 , - 2754 , - 1125 , - 2488 , - 1211 , - 110 , - 2001 , - 1252 , - 679 , - 282 , - 61 , - 16 , - 147 , - 454 , - 937 , - 1596 , - 2431 , - 626 , - 1813 , - 360 , - 1899 , - 798 , - 2689 , - 1940 , - 1367 , - 970 , - 749 , - 704 , - 835 , - 1142 , - 1625 , - 2284 , - 303 , - 1314 , - 2501 , - 1048 , - 2587 , - 1486 , - 561 , - 2628 , - 2055 , - 1658 , - 1437 , - 1392 , - 1523 , - 1830 , - 2313 , - 156 , - 991 , - 2002 , - 373 , - 1736 , - 459 , - 2174 , - 1249 , - 500 , - 2743 , - 2346 , - 2125 , - 2080 , - 2211 , - 2518 , - 185 , - 844 , - 1679 , - 2690 , - 1061 , - 2424 , - 1147 , - 46 , - 1937 , - 1188 , - 615 , - 218 , - 2813 , - 2768 , - 83 , - 390 , - 873 , - 1532 , - 2367 , - 562 , - 1749 , - 296 , - 1835 , - 734 , - 2625 , - 1876 , - 1303 , - 906 , - 685 , - 640 , - 771 , - 1078 , - 1561 , - 2220 , - 239 , - 1250 , - 2437 , - 984 , - 2523 , - 1422 , - 497 , - 2564 , - 1991 , - 1594 , - 1373 , - 1328 , - 1459 , - 1766 , - 2249 , - 92 , - 927 , - 1938 , - 309 , - 1672 , - 395 , - 2110 , - 1185 , - 436 , - 2679 , - 2282 , - 2061 , - 2016 , - 2147 , - 2454 , - 121 , - 780 , - 1615 , - 2626 , - 997 , - 2360 , - 1083 , - 2798 , - 1873 , - 1124 , - 551 , - 154 , - 2749 , - 2704 , - 19 , - 326 , - 809 , - 1468 , - 2303 , - 498 , - 1685 , - 232 , - 1771 , - 670 , - 2561 , - 1812 , - 1239 , - 842 , - 621 , - 576 , - 707 , - 1014 , - 1497 , - 2156 , - 175 , - 1186 , - 2373 , - 920 , - 2459 , - 1358 , - 433 , - 2500 , - 1927 , - 1530 , - 1309 , - 1264 , - 1395 , - 1702 , - 2185 , - 28 , - 863 , - 1874 , - 245 , - 1608 , - 331 , - 2046 , - 1121 , - 372 , - 2615 , - 2218 , - 1997 , - 1952 , - 2083 , - 2390 , - 57 , - 716 , - 1551 , - 2562 , - 933 , - 2296 , - 1019 , - 2734 , - 1809 , - 1060 , - 487 , - 90 , - 2685 , - 2640 , - 2771 , - 262 , - 745 , - 1404 , - 2239 , - 434 , - 1621 , - 168 , - 1707 , - 606 , - 2497 , - 1748 , - 1175 , - 778 , - 557 , - 512 , - 643 , - 950 , - 1433 , - 2092 , - 111 , - 1122 , - 2309 , - 856 , - 2395 , - 1294 , - 369 , - 2436 , - 1863 , - 1466 , - 1245 , - 1200 , - 1331 , - 1638 , - 2121 , - 2780 , - 799 , - 1810 , - 181 , - 1544 , - 267 , - 1982 , - 1057 , - 308 , - 2551 , - 2154 , - 1933 , - 1888 , - 2019 , - 2326 , - 2809 , - 652 , - 1487 , - 2498 , - 869 , - 2232 , - 955 , - 2670 , - 1745 , - 996 , - 423 , - 26 , - 2621 , - 2576 , - 2707 , - 198 , - 681 , - 1340 , - 2175 , - 370 , - 1557 , - 104 , - 1643 , - 542 , - 2433 , - 1684 , - 1111 , - 714 , - 493 , - 448 , - 579 , - 886 , - 1369 , - 2028 , - 47 , - 1058 , - 2245 , - 792 , - 2331 , - 1230 , - 305 , - 2372 , - 1799 , - 1402 , - 1181 , - 1136 , - 1267 , - 1574 , - 2057 , - 2716 , - 735 , - 1746 , - 117 , - 1480 , - 203 , - 1918 , - 993 , - 244 , - 2487 , - 2090 , - 1869 , - 1824 , - 1955 , - 2262 , - 2745 , - 588 , - 1423 , - 2434 , - 805 , - 2168 , - 891 , - 2606 , - 1681 , - 932 , - 359 , - 2778 , - 2557 , - 2512 , - 2643 , - 134 , - 617 , - 1276 , - 2111 , - 306 , - 1493 , - 40 , - 1579 , - 478 , - 2369 , - 1620 , - 1047 , - 650 , - 429 , - 384 , - 515 , - 822 , - 1305 , - 1964 , - 2799 , - 994 , - 2181 , - 728 , - 2267 , - 1166 , - 241 , - 2308 , - 1735 , - 1338 , - 1117 , - 1072 , - 1203 , - 1510 , - 1993 , - 2652 , - 671 , - 1682 , - 53 , - 1416 , - 139 , - 1854 , - 929 , - 180 , - 2423 , - 2026 , - 1805 , - 1760 , - 1891 , - 2198 , - 2681 , - 524 , - 1359 , - 2370 , - 741 , - 2104 , - 827 , - 2542 , - 1617 , - 868 , - 295 , - 2714 , - 2493 , - 2448 , - 2579 , - 70 , - 553 , - 1212 , - 2047 , - 242 , - 1429 , - 2792 , - 1515 , - 414 , - 2305 , - 1556 , - 983 , - 586 , - 365 , - 320 , - 451 , - 758 , - 1241 , - 1900 , - 2735 , - 930 , - 2117 , - 664 , - 2203 , - 1102 , - 177 , - 2244 , - 1671 , - 1274 , - 1053 , - 1008 , - 1139 , - 1446 , - 1929 , - 2588 , - 607 , - 1618 , - 2805 , - 1352 , - 75 , - 1790 , - 865 , - 116 , - 2359 , - 1962 , - 1741 , - 1696 , - 1827 , - 2134 , - 2617 , - 460 , - 1295 , - 2306 , - 677 , - 2040 , - 763 , - 2478 , - 1553 , - 804 , - 231 , - 2650 , - 2429 , - 2384 , - 2515 , - 6 , - 489 , - 1148 , - 1983 , - 178 , - 1365 , - 2728 , - 1451 , - 350 , - 2241 , - 1492 , - 919 , - 522 , - 301 , - 256 , - 387 , - 694 , - 1177 , - 1836 , - 2671 , - 866 , - 2053 , - 600 , - 2139 , - 1038 , - 113 , - 2180 , - 1607 , - 1210 , - 989 , - 944 , - 1075 , - 1382 , - 1865 , - 2524 , - 543 , - 1554 , - 2741 , - 1288 , - 11 , - 1726 , - 801 , - 52 , - 2295 , - 1898 , - 1677 , - 1632 , - 1763 , - 2070 , - 2553 , - 396 , - 1231 , - 2242 , - 613 , - 1976 , - 699 , - 2414 , - 1489 , - 740 , - 167 , - 2586 , - 2365 , - 2320 , - 2451 , - 2758 , - 425 , - 1084 , - 1919 , - 114 , - 1301 , - 2664 , - 1387 , - 286 , - 2177 , - 1428 , - 855 , - 458 , - 237 , - 192 , - 323 , - 630 , - 1113 , - 1772 , - 2607 , - 802 , - 1989 , - 536 , - 2075 , - 974 , - 49 , - 2116 , - 1543 , - 1146 , - 925 , - 880 , - 1011 , - 1318 , - 1801 , - 2460 , - 479 , - 1490 , - 2677 , - 1224 , - 2763 , - 1662 , - 737 , - 2804 , - 2231 , - 1834 , - 1613 , - 1568 , - 1699 , - 2006 , - 2489 , - 332 , - 1167 , - 2178 , - 549 , - 1912 , - 635 , - 2350 , - 1425 , - 676 , - 103 , - 2522 , - 2301 , - 2256 , - 2387 , - 2694 , - 361 , - 1020 , - 1855 , - 50 , - 1237 , - 2600 , - 1323 , - 222 , - 2113 , - 1364 , - 791 , - 394 , - 173 , - 128 , - 259 , - 566 , - 1049 , - 1708 , - 2543 , - 738 , - 1925 , - 472 , - 2011 , - 910 , - 2801 , - 2052 , - 1479 , - 1082 , - 861 , - 816 , - 947 , - 1254 , - 1737 , - 2396 , - 415 , - 1426 , - 2613 , - 1160 , - 2699 , - 1598 , - 673 , - 2740 , - 2167 , - 1770 , - 1549 , - 1504 , - 1635 , - 1942 , - 2425 , - 268 , - 1103 , - 2114 , - 485 , - 1848 , - 571 , - 2286 , - 1361 , - 612 , - 39 , - 2458 , - 2237 , - 2192 , - 2323 , - 2630 , - 297 , - 956 , - 1791 , - 2802 , - 1173 , - 2536 , - 1259 , - 158 , - 2049 , - 1300 , - 727 , - 330 , - 109 , - 64 , - 195 , - 502 , - 985 , - 1644 , - 2479 , - 674 , - 1861 , - 408 , - 1947 , - 846 , - 2737 , - 1988 , - 1415 , - 1018 , - 797 , - 752 , - 883 , - 1190 , - 1673 , - 2332 , - 351 , - 1362 , - 2549 , - 1096 , - 2635 , - 1534 , - 609 , - 2676 , - 2103 , - 1706 , - 1485 , - 1440 , - 1571 , - 1878 , - 2361 , - 204 , - 1039 , - 2050 , - 421 , - 1784 , - 507 , - 2222 , - 1297 , - 548 , - 2791 , - 2394 , - 2173 , - 2128 , - 2259 , - 2566 , - 233 , - 892 , - 1727 , - 2738 , - 1109 , - 2472 , - 1195 , - 94 , - 1985 , - 1236 , - 663 , - 266 , - 45 , - 0 , - 329 , - 1258 , - 2787 , - 2036 , - 1885 , - 2334 , - 503 , - 2152 , - 1521 , - 1490 , - 2059 , - 348 , - 2117 , - 1606 , - 1695 , - 2384 , - 793 , - 2682 , - 2291 , - 2500 , - 429 , - 1838 , - 967 , - 696 , - 1025 , - 1954 , - 603 , - 2732 , - 2581 , - 150 , - 1199 , - 2848 , - 2217 , - 2186 , - 2755 , - 1044 , - 2813 , - 2302 , - 2391 , - 200 , - 1489 , - 498 , - 107 , - 316 , - 1125 , - 2534 , - 1663 , - 1392 , - 1721 , - 2650 , - 1299 , - 548 , - 397 , - 846 , - 1895 , - 664 , - 33 , - 2 , - 571 , - 1740 , - 629 , - 118 , - 207 , - 896 , - 2185 , - 1194 , - 803 , - 1012 , - 1821 , - 350 , - 2359 , - 2088 , - 2417 , - 466 , - 1995 , - 1244 , - 1093 , - 1542 , - 2591 , - 1360 , - 729 , - 698 , - 1267 , - 2436 , - 1325 , - 814 , - 903 , - 1592 , - 1 , - 1890 , - 1499 , - 1708 , - 2517 , - 1046 , - 175 , - 2784 , - 233 , - 1162 , - 2691 , - 1940 , - 1789 , - 2238 , - 407 , - 2056 , - 1425 , - 1394 , - 1963 , - 252 , - 2021 , - 1510 , - 1599 , - 2288 , - 697 , - 2586 , - 2195 , - 2404 , - 333 , - 1742 , - 871 , - 600 , - 929 , - 1858 , - 507 , - 2636 , - 2485 , - 54 , - 1103 , - 2752 , - 2121 , - 2090 , - 2659 , - 948 , - 2717 , - 2206 , - 2295 , - 104 , - 1393 , - 402 , - 11 , - 220 , - 1029 , - 2438 , - 1567 , - 1296 , - 1625 , - 2554 , - 1203 , - 452 , - 301 , - 750 , - 1799 , - 568 , - 2817 , - 2786 , - 475 , - 1644 , - 533 , - 22 , - 111 , - 800 , - 2089 , - 1098 , - 707 , - 916 , - 1725 , - 254 , - 2263 , - 1992 , - 2321 , - 370 , - 1899 , - 1148 , - 997 , - 1446 , - 2495 , - 1264 , - 633 , - 602 , - 1171 , - 2340 , - 1229 , - 718 , - 807 , - 1496 , - 2785 , - 1794 , - 1403 , - 1612 , - 2421 , - 950 , - 79 , - 2688 , - 137 , - 1066 , - 2595 , - 1844 , - 1693 , - 2142 , - 311 , - 1960 , - 1329 , - 1298 , - 1867 , - 156 , - 1925 , - 1414 , - 1503 , - 2192 , - 601 , - 2490 , - 2099 , - 2308 , - 237 , - 1646 , - 775 , - 504 , - 833 , - 1762 , - 411 , - 2540 , - 2389 , - 2838 , - 1007 , - 2656 , - 2025 , - 1994 , - 2563 , - 852 , - 2621 , - 2110 , - 2199 , - 8 , - 1297 , - 306 , - 2795 , - 124 , - 933 , - 2342 , - 1471 , - 1200 , - 1529 , - 2458 , - 1107 , - 356 , - 205 , - 654 , - 1703 , - 472 , - 2721 , - 2690 , - 379 , - 1548 , - 437 , - 2806 , - 15 , - 704 , - 1993 , - 1002 , - 611 , - 820 , - 1629 , - 158 , - 2167 , - 1896 , - 2225 , - 274 , - 1803 , - 1052 , - 901 , - 1350 , - 2399 , - 1168 , - 537 , - 506 , - 1075 , - 2244 , - 1133 , - 622 , - 711 , - 1400 , - 2689 , - 1698 , - 1307 , - 1516 , - 2325 , - 854 , - 2863 , - 2592 , - 41 , - 970 , - 2499 , - 1748 , - 1597 , - 2046 , - 215 , - 1864 , - 1233 , - 1202 , - 1771 , - 60 , - 1829 , - 1318 , - 1407 , - 2096 , - 505 , - 2394 , - 2003 , - 2212 , - 141 , - 1550 , - 679 , - 408 , - 737 , - 1666 , - 315 , - 2444 , - 2293 , - 2742 , - 911 , - 2560 , - 1929 , - 1898 , - 2467 , - 756 , - 2525 , - 2014 , - 2103 , - 2792 , - 1201 , - 210 , - 2699 , - 28 , - 837 , - 2246 , - 1375 , - 1104 , - 1433 , - 2362 , - 1011 , - 260 , - 109 , - 558 , - 1607 , - 376 , - 2625 , - 2594 , - 283 , - 1452 , - 341 , - 2710 , - 2799 , - 608 , - 1897 , - 906 , - 515 , - 724 , - 1533 , - 62 , - 2071 , - 1800 , - 2129 , - 178 , - 1707 , - 956 , - 805 , - 1254 , - 2303 , - 1072 , - 441 , - 410 , - 979 , - 2148 , - 1037 , - 526 , - 615 , - 1304 , - 2593 , - 1602 , - 1211 , - 1420 , - 2229 , - 758 , - 2767 , - 2496 , - 2825 , - 874 , - 2403 , - 1652 , - 1501 , - 1950 , - 119 , - 1768 , - 1137 , - 1106 , - 1675 , - 2844 , - 1733 , - 1222 , - 1311 , - 2000 , - 409 , - 2298 , - 1907 , - 2116 , - 45 , - 1454 , - 583 , - 312 , - 641 , - 1570 , - 219 , - 2348 , - 2197 , - 2646 , - 815 , - 2464 , - 1833 , - 1802 , - 2371 , - 660 , - 2429 , - 1918 , - 2007 , - 2696 , - 1105 , - 114 , - 2603 , - 2812 , - 741 , - 2150 , - 1279 , - 1008 , - 1337 , - 2266 , - 915 , - 164 , - 13 , - 462 , - 1511 , - 280 , - 2529 , - 2498 , - 187 , - 1356 , - 245 , - 2614 , - 2703 , - 512 , - 1801 , - 810 , - 419 , - 628 , - 1437 , - 2846 , - 1975 , - 1704 , - 2033 , - 82 , - 1611 , - 860 , - 709 , - 1158 , - 2207 , - 976 , - 345 , - 314 , - 883 , - 2052 , - 941 , - 430 , - 519 , - 1208 , - 2497 , - 1506 , - 1115 , - 1324 , - 2133 , - 662 , - 2671 , - 2400 , - 2729 , - 778 , - 2307 , - 1556 , - 1405 , - 1854 , - 23 , - 1672 , - 1041 , - 1010 , - 1579 , - 2748 , - 1637 , - 1126 , - 1215 , - 1904 , - 313 , - 2202 , - 1811 , - 2020 , - 2829 , - 1358 , - 487 , - 216 , - 545 , - 1474 , - 123 , - 2252 , - 2101 , - 2550 , - 719 , - 2368 , - 1737 , - 1706 , - 2275 , - 564 , - 2333 , - 1822 , - 1911 , - 2600 , - 1009 , - 18 , - 2507 , - 2716 , - 645 , - 2054 , - 1183 , - 912 , - 1241 , - 2170 , - 819 , - 68 , - 2797 , - 366 , - 1415 , - 184 , - 2433 , - 2402 , - 91 , - 1260 , - 149 , - 2518 , - 2607 , - 416 , - 1705 , - 714 , - 323 , - 532 , - 1341 , - 2750 , - 1879 , - 1608 , - 1937 , - 2866 , - 1515 , - 764 , - 613 , - 1062 , - 2111 , - 880 , - 249 , - 218 , - 787 , - 1956 , - 845 , - 334 , - 423 , - 1112 , - 2401 , - 1410 , - 1019 , - 1228 , - 2037 , - 566 , - 2575 , - 2304 , - 2633 , - 682 , - 2211 , - 1460 , - 1309 , - 1758 , - 2807 , - 1576 , - 945 , - 914 , - 1483 , - 2652 , - 1541 , - 1030 , - 1119 , - 1808 , - 217 , - 2106 , - 1715 , - 1924 , - 2733 , - 1262 , - 391 , - 120 , - 449 , - 1378 , - 27 , - 2156 , - 2005 , - 2454 , - 623 , - 2272 , - 1641 , - 1610 , - 2179 , - 468 , - 2237 , - 1726 , - 1815 , - 2504 , - 913 , - 2802 , - 2411 , - 2620 , - 549 , - 1958 , - 1087 , - 816 , - 1145 , - 2074 , - 723 , - 2852 , - 2701 , - 270 , - 1319 , - 88 , - 2337 , - 2306 , - 2875 , - 1164 , - 53 , - 2422 , - 2511 , - 320 , - 1609 , - 618 , - 227 , - 436 , - 1245 , - 2654 , - 1783 , - 1512 , - 1841 , - 2770 , - 1419 , - 668 , - 517 , - 966 , - 2015 , - 784 , - 153 , - 122 , - 691 , - 1860 , - 749 , - 238 , - 327 , - 1016 , - 2305 , - 1314 , - 923 , - 1132 , - 1941 , - 470 , - 2479 , - 2208 , - 2537 , - 586 , - 2115 , - 1364 , - 1213 , - 1662 , - 2711 , - 1480 , - 849 , - 818 , - 1387 , - 2556 , - 1445 , - 934 , - 1023 , - 1712 , - 121 , - 2010 , - 1619 , - 1828 , - 2637 , - 1166 , - 295 , - 24 , - 353 , - 1282 , - 2811 , - 2060 , - 1909 , - 2358 , - 527 , - 2176 , - 1545 , - 1514 , - 2083 , - 372 , - 2141 , - 1630 , - 1719 , - 2408 , - 817 , - 2706 , - 2315 , - 2524 , - 453 , - 1862 , - 991 , - 720 , - 1049 , - 1978 , - 627 , - 2756 , - 2605 , - 174 , - 1223 , - 2872 , - 2241 , - 2210 , - 2779 , - 1068 , - 2837 , - 2326 , - 2415 , - 224 , - 1513 , - 522 , - 131 , - 340 , - 1149 , - 2558 , - 1687 , - 1416 , - 1745 , - 2674 , - 1323 , - 572 , - 421 , - 870 , - 1919 , - 688 , - 57 , - 26 , - 595 , - 1764 , - 653 , - 142 , - 231 , - 920 , - 2209 , - 1218 , - 827 , - 1036 , - 1845 , - 374 , - 2383 , - 2112 , - 2441 , - 490 , - 2019 , - 1268 , - 1117 , - 1566 , - 2615 , - 1384 , - 753 , - 722 , - 1291 , - 2460 , - 1349 , - 838 , - 927 , - 1616 , - 25 , - 1914 , - 1523 , - 1732 , - 2541 , - 1070 , - 199 , - 2808 , - 257 , - 1186 , - 2715 , - 1964 , - 1813 , - 2262 , - 431 , - 2080 , - 1449 , - 1418 , - 1987 , - 276 , - 2045 , - 1534 , - 1623 , - 2312 , - 721 , - 2610 , - 2219 , - 2428 , - 357 , - 1766 , - 895 , - 624 , - 953 , - 1882 , - 531 , - 2660 , - 2509 , - 78 , - 1127 , - 2776 , - 2145 , - 2114 , - 2683 , - 972 , - 2741 , - 2230 , - 2319 , - 128 , - 1417 , - 426 , - 35 , - 244 , - 1053 , - 2462 , - 1591 , - 1320 , - 1649 , - 2578 , - 1227 , - 476 , - 325 , - 774 , - 1823 , - 592 , - 2841 , - 2810 , - 499 , - 1668 , - 557 , - 46 , - 135 , - 824 , - 2113 , - 1122 , - 731 , - 940 , - 1749 , - 278 , - 2287 , - 2016 , - 2345 , - 394 , - 1923 , - 1172 , - 1021 , - 1470 , - 2519 , - 1288 , - 657 , - 626 , - 1195 , - 2364 , - 1253 , - 742 , - 831 , - 1520 , - 2809 , - 1818 , - 1427 , - 1636 , - 2445 , - 974 , - 103 , - 2712 , - 161 , - 1090 , - 2619 , - 1868 , - 1717 , - 2166 , - 335 , - 1984 , - 1353 , - 1322 , - 1891 , - 180 , - 1949 , - 1438 , - 1527 , - 2216 , - 625 , - 2514 , - 2123 , - 2332 , - 261 , - 1670 , - 799 , - 528 , - 857 , - 1786 , - 435 , - 2564 , - 2413 , - 2862 , - 1031 , - 2680 , - 2049 , - 2018 , - 2587 , - 876 , - 2645 , - 2134 , - 2223 , - 32 , - 1321 , - 330 , - 2819 , - 148 , - 957 , - 2366 , - 1495 , - 1224 , - 1553 , - 2482 , - 1131 , - 380 , - 229 , - 678 , - 1727 , - 496 , - 2745 , - 2714 , - 403 , - 1572 , - 461 , - 2830 , - 39 , - 728 , - 2017 , - 1026 , - 635 , - 844 , - 1653 , - 182 , - 2191 , - 1920 , - 2249 , - 298 , - 1827 , - 1076 , - 925 , - 1374 , - 2423 , - 1192 , - 561 , - 530 , - 1099 , - 2268 , - 1157 , - 646 , - 735 , - 1424 , - 2713 , - 1722 , - 1331 , - 1540 , - 2349 , - 878 , - 7 , - 2616 , - 65 , - 994 , - 2523 , - 1772 , - 1621 , - 2070 , - 239 , - 1888 , - 1257 , - 1226 , - 1795 , - 84 , - 1853 , - 1342 , - 1431 , - 2120 , - 529 , - 2418 , - 2027 , - 2236 , - 165 , - 1574 , - 703 , - 432 , - 761 , - 1690 , - 339 , - 2468 , - 2317 , - 2766 , - 935 , - 2584 , - 1953 , - 1922 , - 2491 , - 780 , - 2549 , - 2038 , - 2127 , - 2816 , - 1225 , - 234 , - 2723 , - 52 , - 861 , - 2270 , - 1399 , - 1128 , - 1457 , - 2386 , - 1035 , - 284 , - 133 , - 582 , - 1631 , - 400 , - 2649 , - 2618 , - 307 , - 1476 , - 365 , - 2734 , - 2823 , - 632 , - 1921 , - 930 , - 539 , - 748 , - 1557 , - 86 , - 2095 , - 1824 , - 2153 , - 202 , - 1731 , - 980 , - 829 , - 1278 , - 2327 , - 1096 , - 465 , - 434 , - 1003 , - 2172 , - 1061 , - 550 , - 639 , - 1328 , - 2617 , - 1626 , - 1235 , - 1444 , - 2253 , - 782 , - 2791 , - 2520 , - 2849 , - 898 , - 2427 , - 1676 , - 1525 , - 1974 , - 143 , - 1792 , - 1161 , - 1130 , - 1699 , - 2868 , - 1757 , - 1246 , - 1335 , - 2024 , - 433 , - 2322 , - 1931 , - 2140 , - 69 , - 1478 , - 607 , - 336 , - 665 , - 1594 , - 243 , - 2372 , - 2221 , - 2670 , - 839 , - 2488 , - 1857 , - 1826 , - 2395 , - 684 , - 2453 , - 1942 , - 2031 , - 2720 , - 1129 , - 138 , - 2627 , - 2836 , - 765 , - 2174 , - 1303 , - 1032 , - 1361 , - 2290 , - 939 , - 188 , - 37 , - 486 , - 1535 , - 304 , - 2553 , - 2522 , - 211 , - 1380 , - 269 , - 2638 , - 2727 , - 536 , - 1825 , - 834 , - 443 , - 652 , - 1461 , - 2870 , - 1999 , - 1728 , - 2057 , - 106 , - 1635 , - 884 , - 733 , - 1182 , - 2231 , - 1000 , - 369 , - 338 , - 907 , - 2076 , - 965 , - 454 , - 543 , - 1232 , - 2521 , - 1530 , - 1139 , - 1348 , - 2157 , - 686 , - 2695 , - 2424 , - 2753 , - 802 , - 2331 , - 1580 , - 1429 , - 1878 , - 47 , - 1696 , - 1065 , - 1034 , - 1603 , - 2772 , - 1661 , - 1150 , - 1239 , - 1928 , - 337 , - 2226 , - 1835 , - 2044 , - 2853 , - 1382 , - 511 , - 240 , - 569 , - 1498 , - 147 , - 2276 , - 2125 , - 2574 , - 743 , - 2392 , - 1761 , - 1730 , - 2299 , - 588 , - 2357 , - 1846 , - 1935 , - 2624 , - 1033 , - 42 , - 2531 , - 2740 , - 669 , - 2078 , - 1207 , - 936 , - 1265 , - 2194 , - 843 , - 92 , - 2821 , - 390 , - 1439 , - 208 , - 2457 , - 2426 , - 115 , - 1284 , - 173 , - 2542 , - 2631 , - 440 , - 1729 , - 738 , - 347 , - 556 , - 1365 , - 2774 , - 1903 , - 1632 , - 1961 , - 10 , - 1539 , - 788 , - 637 , - 1086 , - 2135 , - 904 , - 273 , - 242 , - 811 , - 1980 , - 869 , - 358 , - 447 , - 1136 , - 2425 , - 1434 , - 1043 , - 1252 , - 2061 , - 590 , - 2599 , - 2328 , - 2657 , - 706 , - 2235 , - 1484 , - 1333 , - 1782 , - 2831 , - 1600 , - 969 , - 938 , - 1507 , - 2676 , - 1565 , - 1054 , - 1143 , - 1832 , - 241 , - 2130 , - 1739 , - 1948 , - 2757 , - 1286 , - 415 , - 144 , - 473 , - 1402 , - 51 , - 2180 , - 2029 , - 2478 , - 647 , - 2296 , - 1665 , - 1634 , - 2203 , - 492 , - 2261 , - 1750 , - 1839 , - 2528 , - 937 , - 2826 , - 2435 , - 2644 , - 573 , - 1982 , - 1111 , - 840 , - 1169 , - 2098 , - 747 , - 2876 , - 2725 , - 294 , - 1343 , - 112 , - 2361 , - 2330 , - 19 , - 1188 , - 77 , - 2446 , - 2535 , - 344 , - 1633 , - 642 , - 251 , - 460 , - 1269 , - 2678 , - 1807 , - 1536 , - 1865 , - 2794 , - 1443 , - 692 , - 541 , - 990 , - 2039 , - 808 , - 177 , - 146 , - 715 , - 1884 , - 773 , - 262 , - 351 , - 1040 , - 2329 , - 1338 , - 947 , - 1156 , - 1965 , - 494 , - 2503 , - 2232 , - 2561 , - 610 , - 2139 , - 1388 , - 1237 , - 1686 , - 2735 , - 1504 , - 873 , - 842 , - 1411 , - 2580 , - 1469 , - 958 , - 1047 , - 1736 , - 145 , - 2034 , - 1643 , - 1852 , - 2661 , - 1190 , - 319 , - 48 , - 377 , - 1306 , - 2835 , - 2084 , - 1933 , - 2382 , - 551 , - 2200 , - 1569 , - 1538 , - 2107 , - 396 , - 2165 , - 1654 , - 1743 , - 2432 , - 841 , - 2730 , - 2339 , - 2548 , - 477 , - 1886 , - 1015 , - 744 , - 1073 , - 2002 , - 651 , - 2780 , - 2629 , - 198 , - 1247 , - 16 , - 2265 , - 2234 , - 2803 , - 1092 , - 2861 , - 2350 , - 2439 , - 248 , - 1537 , - 546 , - 155 , - 364 , - 1173 , - 2582 , - 1711 , - 1440 , - 1769 , - 2698 , - 1347 , - 596 , - 445 , - 894 , - 1943 , - 712 , - 81 , - 50 , - 619 , - 1788 , - 677 , - 166 , - 255 , - 944 , - 2233 , - 1242 , - 851 , - 1060 , - 1869 , - 398 , - 2407 , - 2136 , - 2465 , - 514 , - 2043 , - 1292 , - 1141 , - 1590 , - 2639 , - 1408 , - 777 , - 746 , - 1315 , - 2484 , - 1373 , - 862 , - 951 , - 1640 , - 49 , - 1938 , - 1547 , - 1756 , - 2565 , - 1094 , - 223 , - 2832 , - 281 , - 1210 , - 2739 , - 1988 , - 1837 , - 2286 , - 455 , - 2104 , - 1473 , - 1442 , - 2011 , - 300 , - 2069 , - 1558 , - 1647 , - 2336 , - 745 , - 2634 , - 2243 , - 2452 , - 381 , - 1790 , - 919 , - 648 , - 977 , - 1906 , - 555 , - 2684 , - 2533 , - 102 , - 1151 , - 2800 , - 2169 , - 2138 , - 2707 , - 996 , - 2765 , - 2254 , - 2343 , - 152 , - 1441 , - 450 , - 59 , - 268 , - 1077 , - 2486 , - 1615 , - 1344 , - 1673 , - 2602 , - 1251 , - 500 , - 349 , - 798 , - 1847 , - 616 , - 2865 , - 2834 , - 523 , - 1692 , - 581 , - 70 , - 159 , - 848 , - 2137 , - 1146 , - 755 , - 964 , - 1773 , - 302 , - 2311 , - 2040 , - 2369 , - 418 , - 1947 , - 1196 , - 1045 , - 1494 , - 2543 , - 1312 , - 681 , - 650 , - 1219 , - 2388 , - 1277 , - 766 , - 855 , - 1544 , - 2833 , - 1842 , - 1451 , - 1660 , - 2469 , - 998 , - 127 , - 2736 , - 185 , - 1114 , - 2643 , - 1892 , - 1741 , - 2190 , - 359 , - 2008 , - 1377 , - 1346 , - 1915 , - 204 , - 1973 , - 1462 , - 1551 , - 2240 , - 649 , - 2538 , - 2147 , - 2356 , - 285 , - 1694 , - 823 , - 552 , - 881 , - 1810 , - 459 , - 2588 , - 2437 , - 6 , - 1055 , - 2704 , - 2073 , - 2042 , - 2611 , - 900 , - 2669 , - 2158 , - 2247 , - 56 , - 1345 , - 354 , - 2843 , - 172 , - 981 , - 2390 , - 1519 , - 1248 , - 1577 , - 2506 , - 1155 , - 404 , - 253 , - 702 , - 1751 , - 520 , - 2769 , - 2738 , - 427 , - 1596 , - 485 , - 2854 , - 63 , - 752 , - 2041 , - 1050 , - 659 , - 868 , - 1677 , - 206 , - 2215 , - 1944 , - 2273 , - 322 , - 1851 , - 1100 , - 949 , - 1398 , - 2447 , - 1216 , - 585 , - 554 , - 1123 , - 2292 , - 1181 , - 670 , - 759 , - 1448 , - 2737 , - 1746 , - 1355 , - 1564 , - 2373 , - 902 , - 31 , - 2640 , - 89 , - 1018 , - 2547 , - 1796 , - 1645 , - 2094 , - 263 , - 1912 , - 1281 , - 1250 , - 1819 , - 108 , - 1877 , - 1366 , - 1455 , - 2144 , - 553 , - 2442 , - 2051 , - 2260 , - 189 , - 1598 , - 727 , - 456 , - 785 , - 1714 , - 363 , - 2492 , - 2341 , - 2790 , - 959 , - 2608 , - 1977 , - 1946 , - 2515 , - 804 , - 2573 , - 2062 , - 2151 , - 2840 , - 1249 , - 258 , - 2747 , - 76 , - 885 , - 2294 , - 1423 , - 1152 , - 1481 , - 2410 , - 1059 , - 308 , - 157 , - 606 , - 1655 , - 424 , - 2673 , - 2642 , - 331 , - 1500 , - 389 , - 2758 , - 2847 , - 656 , - 1945 , - 954 , - 563 , - 772 , - 1581 , - 110 , - 2119 , - 1848 , - 2177 , - 226 , - 1755 , - 1004 , - 853 , - 1302 , - 2351 , - 1120 , - 489 , - 458 , - 1027 , - 2196 , - 1085 , - 574 , - 663 , - 1352 , - 2641 , - 1650 , - 1259 , - 1468 , - 2277 , - 806 , - 2815 , - 2544 , - 2873 , - 922 , - 2451 , - 1700 , - 1549 , - 1998 , - 167 , - 1816 , - 1185 , - 1154 , - 1723 , - 12 , - 1781 , - 1270 , - 1359 , - 2048 , - 457 , - 2346 , - 1955 , - 2164 , - 93 , - 1502 , - 631 , - 360 , - 689 , - 1618 , - 267 , - 2396 , - 2245 , - 2694 , - 863 , - 2512 , - 1881 , - 1850 , - 2419 , - 708 , - 2477 , - 1966 , - 2055 , - 2744 , - 1153 , - 162 , - 2651 , - 2860 , - 789 , - 2198 , - 1327 , - 1056 , - 1385 , - 2314 , - 963 , - 212 , - 61 , - 510 , - 1559 , - 328 , - 2577 , - 2546 , - 235 , - 1404 , - 293 , - 2662 , - 2751 , - 560 , - 1849 , - 858 , - 467 , - 676 , - 1485 , - 14 , - 2023 , - 1752 , - 2081 , - 130 , - 1659 , - 908 , - 757 , - 1206 , - 2255 , - 1024 , - 393 , - 362 , - 931 , - 2100 , - 989 , - 478 , - 567 , - 1256 , - 2545 , - 1554 , - 1163 , - 1372 , - 2181 , - 710 , - 2719 , - 2448 , - 2777 , - 826 , - 2355 , - 1604 , - 1453 , - 1902 , - 71 , - 1720 , - 1089 , - 1058 , - 1627 , - 2796 , - 1685 , - 1174 , - 1263 , - 1952 , - 361 , - 2250 , - 1859 , - 2068 , - 2877 , - 1406 , - 535 , - 264 , - 593 , - 1522 , - 171 , - 2300 , - 2149 , - 2598 , - 767 , - 2416 , - 1785 , - 1754 , - 2323 , - 612 , - 2381 , - 1870 , - 1959 , - 2648 , - 1057 , - 66 , - 2555 , - 2764 , - 693 , - 2102 , - 1231 , - 960 , - 1289 , - 2218 , - 867 , - 116 , - 2845 , - 414 , - 1463 , - 232 , - 2481 , - 2450 , - 139 , - 1308 , - 197 , - 2566 , - 2655 , - 464 , - 1753 , - 762 , - 371 , - 580 , - 1389 , - 2798 , - 1927 , - 1656 , - 1985 , - 34 , - 1563 , - 812 , - 661 , - 1110 , - 2159 , - 928 , - 297 , - 266 , - 835 , - 2004 , - 893 , - 382 , - 471 , - 1160 , - 2449 , - 1458 , - 1067 , - 1276 , - 2085 , - 614 , - 2623 , - 2352 , - 2681 , - 730 , - 2259 , - 1508 , - 1357 , - 1806 , - 2855 , - 1624 , - 993 , - 962 , - 1531 , - 2700 , - 1589 , - 1078 , - 1167 , - 1856 , - 265 , - 2154 , - 1763 , - 1972 , - 2781 , - 1310 , - 439 , - 168 , - 497 , - 1426 , - 75 , - 2204 , - 2053 , - 2502 , - 671 , - 2320 , - 1689 , - 1658 , - 2227 , - 516 , - 2285 , - 1774 , - 1863 , - 2552 , - 961 , - 2850 , - 2459 , - 2668 , - 597 , - 2006 , - 1135 , - 864 , - 1193 , - 2122 , - 771 , - 20 , - 2749 , - 318 , - 1367 , - 136 , - 2385 , - 2354 , - 43 , - 1212 , - 101 , - 2470 , - 2559 , - 368 , - 1657 , - 666 , - 275 , - 484 , - 1293 , - 2702 , - 1831 , - 1560 , - 1889 , - 2818 , - 1467 , - 716 , - 565 , - 1014 , - 2063 , - 832 , - 201 , - 170 , - 739 , - 1908 , - 797 , - 286 , - 375 , - 1064 , - 2353 , - 1362 , - 971 , - 1180 , - 1989 , - 518 , - 2527 , - 2256 , - 2585 , - 634 , - 2163 , - 1412 , - 1261 , - 1710 , - 2759 , - 1528 , - 897 , - 866 , - 1435 , - 2604 , - 1493 , - 982 , - 1071 , - 1760 , - 169 , - 2058 , - 1667 , - 1876 , - 2685 , - 1214 , - 343 , - 72 , - 401 , - 1330 , - 2859 , - 2108 , - 1957 , - 2406 , - 575 , - 2224 , - 1593 , - 1562 , - 2131 , - 420 , - 2189 , - 1678 , - 1767 , - 2456 , - 865 , - 2754 , - 2363 , - 2572 , - 501 , - 1910 , - 1039 , - 768 , - 1097 , - 2026 , - 675 , - 2804 , - 2653 , - 222 , - 1271 , - 40 , - 2289 , - 2258 , - 2827 , - 1116 , - 5 , - 2374 , - 2463 , - 272 , - 1561 , - 570 , - 179 , - 388 , - 1197 , - 2606 , - 1735 , - 1464 , - 1793 , - 2722 , - 1371 , - 620 , - 469 , - 918 , - 1967 , - 736 , - 105 , - 74 , - 643 , - 1812 , - 701 , - 190 , - 279 , - 968 , - 2257 , - 1266 , - 875 , - 1084 , - 1893 , - 422 , - 2431 , - 2160 , - 2489 , - 538 , - 2067 , - 1316 , - 1165 , - 1614 , - 2663 , - 1432 , - 801 , - 770 , - 1339 , - 2508 , - 1397 , - 886 , - 975 , - 1664 , - 73 , - 1962 , - 1571 , - 1780 , - 2589 , - 1118 , - 247 , - 2856 , - 305 , - 1234 , - 2763 , - 2012 , - 1861 , - 2310 , - 479 , - 2128 , - 1497 , - 1466 , - 2035 , - 324 , - 2093 , - 1582 , - 1671 , - 2360 , - 769 , - 2658 , - 2267 , - 2476 , - 405 , - 1814 , - 943 , - 672 , - 1001 , - 1930 , - 579 , - 2708 , - 2557 , - 126 , - 1175 , - 2824 , - 2193 , - 2162 , - 2731 , - 1020 , - 2789 , - 2278 , - 2367 , - 176 , - 1465 , - 474 , - 83 , - 292 , - 1101 , - 2510 , - 1639 , - 1368 , - 1697 , - 2626 , - 1275 , - 524 , - 373 , - 822 , - 1871 , - 640 , - 9 , - 2858 , - 547 , - 1716 , - 605 , - 94 , - 183 , - 872 , - 2161 , - 1170 , - 779 , - 988 , - 1797 , - 326 , - 2335 , - 2064 , - 2393 , - 442 , - 1971 , - 1220 , - 1069 , - 1518 , - 2567 , - 1336 , - 705 , - 674 , - 1243 , - 2412 , - 1301 , - 790 , - 879 , - 1568 , - 2857 , - 1866 , - 1475 , - 1684 , - 2493 , - 1022 , - 151 , - 2760 , - 209 , - 1138 , - 2667 , - 1916 , - 1765 , - 2214 , - 383 , - 2032 , - 1401 , - 1370 , - 1939 , - 228 , - 1997 , - 1486 , - 1575 , - 2264 , - 673 , - 2562 , - 2171 , - 2380 , - 309 , - 1718 , - 847 , - 576 , - 905 , - 1834 , - 483 , - 2612 , - 2461 , - 30 , - 1079 , - 2728 , - 2097 , - 2066 , - 2635 , - 924 , - 2693 , - 2182 , - 2271 , - 80 , - 1369 , - 378 , - 2867 , - 196 , - 1005 , - 2414 , - 1543 , - 1272 , - 1601 , - 2530 , - 1179 , - 428 , - 277 , - 726 , - 1775 , - 544 , - 2793 , - 2762 , - 451 , - 1620 , - 509 , - 2878 , - 87 , - 776 , - 2065 , - 1074 , - 683 , - 892 , - 1701 , - 230 , - 2239 , - 1968 , - 2297 , - 346 , - 1875 , - 1124 , - 973 , - 1422 , - 2471 , - 1240 , - 609 , - 578 , - 1147 , - 2316 , - 1205 , - 694 , - 783 , - 1472 , - 2761 , - 1770 , - 1379 , - 1588 , - 2397 , - 926 , - 55 , - 2664 , - 113 , - 1042 , - 2571 , - 1820 , - 1669 , - 2118 , - 287 , - 1936 , - 1305 , - 1274 , - 1843 , - 132 , - 1901 , - 1390 , - 1479 , - 2168 , - 577 , - 2466 , - 2075 , - 2284 , - 213 , - 1622 , - 751 , - 480 , - 809 , - 1738 , - 387 , - 2516 , - 2365 , - 2814 , - 983 , - 2632 , - 2001 , - 1970 , - 2539 , - 828 , - 2597 , - 2086 , - 2175 , - 2864 , - 1273 , - 282 , - 2771 , - 100 , - 909 , - 2318 , - 1447 , - 1176 , - 1505 , - 2434 , - 1083 , - 332 , - 181 , - 630 , - 1679 , - 448 , - 2697 , - 2666 , - 355 , - 1524 , - 413 , - 2782 , - 2871 , - 680 , - 1969 , - 978 , - 587 , - 796 , - 1605 , - 134 , - 2143 , - 1872 , - 2201 , - 250 , - 1779 , - 1028 , - 877 , - 1326 , - 2375 , - 1144 , - 513 , - 482 , - 1051 , - 2220 , - 1109 , - 598 , - 687 , - 1376 , - 2665 , - 1674 , - 1283 , - 1492 , - 2301 , - 830 , - 2839 , - 2568 , - 17 , - 946 , - 2475 , - 1724 , - 1573 , - 2022 , - 191 , - 1840 , - 1209 , - 1178 , - 1747 , - 36 , - 1805 , - 1294 , - 1383 , - 2072 , - 481 , - 2370 , - 1979 , - 2188 , - 117 , - 1526 , - 655 , - 384 , - 713 , - 1642 , - 291 , - 2420 , - 2269 , - 2718 , - 887 , - 2536 , - 1905 , - 1874 , - 2443 , - 732 , - 2501 , - 1990 , - 2079 , - 2768 , - 1177 , - 186 , - 2675 , - 4 , - 813 , - 2222 , - 1351 , - 1080 , - 1409 , - 2338 , - 987 , - 236 , - 85 , - 534 , - 1583 , - 352 , - 2601 , - 2570 , - 259 , - 1428 , - 317 , - 2686 , - 2775 , - 584 , - 1873 , - 882 , - 491 , - 700 , - 1509 , - 38 , - 2047 , - 1776 , - 2105 , - 154 , - 1683 , - 932 , - 781 , - 1230 , - 2279 , - 1048 , - 417 , - 386 , - 955 , - 2124 , - 1013 , - 502 , - 591 , - 1280 , - 2569 , - 1578 , - 1187 , - 1396 , - 2205 , - 734 , - 2743 , - 2472 , - 2801 , - 850 , - 2379 , - 1628 , - 1477 , - 1926 , - 95 , - 1744 , - 1113 , - 1082 , - 1651 , - 2820 , - 1709 , - 1198 , - 1287 , - 1976 , - 385 , - 2274 , - 1883 , - 2092 , - 21 , - 1430 , - 559 , - 288 , - 617 , - 1546 , - 195 , - 2324 , - 2173 , - 2622 , - 791 , - 2440 , - 1809 , - 1778 , - 2347 , - 636 , - 2405 , - 1894 , - 1983 , - 2672 , - 1081 , - 90 , - 2579 , - 2788 , - 717 , - 2126 , - 1255 , - 984 , - 1313 , - 2242 , - 891 , - 140 , - 2869 , - 438 , - 1487 , - 256 , - 2505 , - 2474 , - 163 , - 1332 , - 221 , - 2590 , - 2679 , - 488 , - 1777 , - 786 , - 395 , - 604 , - 1413 , - 2822 , - 1951 , - 1680 , - 2009 , - 58 , - 1587 , - 836 , - 685 , - 1134 , - 2183 , - 952 , - 321 , - 290 , - 859 , - 2028 , - 917 , - 406 , - 495 , - 1184 , - 2473 , - 1482 , - 1091 , - 1300 , - 2109 , - 638 , - 2647 , - 2376 , - 2705 , - 754 , - 2283 , - 1532 , - 1381 , - 1830 , - 2879 , - 1648 , - 1017 , - 986 , - 1555 , - 2724 , - 1613 , - 1102 , - 1191 , - 1880 , - 289 , - 2178 , - 1787 , - 1996 , - 2805 , - 1334 , - 463 , - 192 , - 521 , - 1450 , - 99 , - 2228 , - 2077 , - 2526 , - 695 , - 2344 , - 1713 , - 1682 , - 2251 , - 540 , - 2309 , - 1798 , - 1887 , - 2576 , - 985 , - 2874 , - 2483 , - 2692 , - 621 , - 2030 , - 1159 , - 888 , - 1217 , - 2146 , - 795 , - 44 , - 2773 , - 342 , - 1391 , - 160 , - 2409 , - 2378 , - 67 , - 1236 , - 125 , - 2494 , - 2583 , - 392 , - 1681 , - 690 , - 299 , - 508 , - 1317 , - 2726 , - 1855 , - 1584 , - 1913 , - 2842 , - 1491 , - 740 , - 589 , - 1038 , - 2087 , - 856 , - 225 , - 194 , - 763 , - 1932 , - 821 , - 310 , - 399 , - 1088 , - 2377 , - 1386 , - 995 , - 1204 , - 2013 , - 542 , - 2551 , - 2280 , - 2609 , - 658 , - 2187 , - 1436 , - 1285 , - 1734 , - 2783 , - 1552 , - 921 , - 890 , - 1459 , - 2628 , - 1517 , - 1006 , - 1095 , - 1784 , - 193 , - 2082 , - 1691 , - 1900 , - 2709 , - 1238 , - 367 , - 96 , - 425 , - 1354 , - 3 , - 2132 , - 1981 , - 2430 , - 599 , - 2248 , - 1617 , - 1586 , - 2155 , - 444 , - 2213 , - 1702 , - 1791 , - 2480 , - 889 , - 2778 , - 2387 , - 2596 , - 525 , - 1934 , - 1063 , - 792 , - 1121 , - 2050 , - 699 , - 2828 , - 2677 , - 246 , - 1295 , - 64 , - 2313 , - 2282 , - 2851 , - 1140 , - 29 , - 2398 , - 2487 , - 296 , - 1585 , - 594 , - 203 , - 412 , - 1221 , - 2630 , - 1759 , - 1488 , - 1817 , - 2746 , - 1395 , - 644 , - 493 , - 942 , - 1991 , - 760 , - 129 , - 98 , - 667 , - 1836 , - 725 , - 214 , - 303 , - 992 , - 2281 , - 1290 , - 899 , - 1108 , - 1917 , - 446 , - 2455 , - 2184 , - 2513 , - 562 , - 2091 , - 1340 , - 1189 , - 1638 , - 2687 , - 1456 , - 825 , - 794 , - 1363 , - 2532 , - 1421 , - 910 , - 999 , - 1688 , - 97 , - 1986 , - 1595 , - 1804 , - 2613 , - 1142 , - 271 , - 0 , - 137 , - 458 , - 963 , - 1652 , - 2525 , - 638 , - 1879 , - 360 , - 1969 , - 818 , - 2795 , - 2012 , - 1413 , - 998 , - 767 , - 720 , - 857 , - 1178 , - 1683 , - 2372 , - 301 , - 1358 , - 2599 , - 1080 , - 2689 , - 1538 , - 571 , - 2732 , - 2133 , - 1718 , - 1487 , - 1440 , - 1577 , - 1898 , - 2403 , - 148 , - 1021 , - 2078 , - 375 , - 1800 , - 465 , - 2258 , - 1291 , - 508 , - 2853 , - 2438 , - 2207 , - 2160 , - 2297 , - 2618 , - 179 , - 868 , - 1741 , - 2798 , - 1095 , - 2520 , - 1185 , - 34 , - 2011 , - 1228 , - 629 , - 214 , - 2927 , - 2880 , - 73 , - 394 , - 899 , - 1588 , - 2461 , - 574 , - 1815 , - 296 , - 1905 , - 754 , - 2731 , - 1948 , - 1349 , - 934 , - 703 , - 656 , - 793 , - 1114 , - 1619 , - 2308 , - 237 , - 1294 , - 2535 , - 1016 , - 2625 , - 1474 , - 507 , - 2668 , - 2069 , - 1654 , - 1423 , - 1376 , - 1513 , - 1834 , - 2339 , - 84 , - 957 , - 2014 , - 311 , - 1736 , - 401 , - 2194 , - 1227 , - 444 , - 2789 , - 2374 , - 2143 , - 2096 , - 2233 , - 2554 , - 115 , - 804 , - 1677 , - 2734 , - 1031 , - 2456 , - 1121 , - 2914 , - 1947 , - 1164 , - 565 , - 150 , - 2863 , - 2816 , - 9 , - 330 , - 835 , - 1524 , - 2397 , - 510 , - 1751 , - 232 , - 1841 , - 690 , - 2667 , - 1884 , - 1285 , - 870 , - 639 , - 592 , - 729 , - 1050 , - 1555 , - 2244 , - 173 , - 1230 , - 2471 , - 952 , - 2561 , - 1410 , - 443 , - 2604 , - 2005 , - 1590 , - 1359 , - 1312 , - 1449 , - 1770 , - 2275 , - 20 , - 893 , - 1950 , - 247 , - 1672 , - 337 , - 2130 , - 1163 , - 380 , - 2725 , - 2310 , - 2079 , - 2032 , - 2169 , - 2490 , - 51 , - 740 , - 1613 , - 2670 , - 967 , - 2392 , - 1057 , - 2850 , - 1883 , - 1100 , - 501 , - 86 , - 2799 , - 2752 , - 2889 , - 266 , - 771 , - 1460 , - 2333 , - 446 , - 1687 , - 168 , - 1777 , - 626 , - 2603 , - 1820 , - 1221 , - 806 , - 575 , - 528 , - 665 , - 986 , - 1491 , - 2180 , - 109 , - 1166 , - 2407 , - 888 , - 2497 , - 1346 , - 379 , - 2540 , - 1941 , - 1526 , - 1295 , - 1248 , - 1385 , - 1706 , - 2211 , - 2900 , - 829 , - 1886 , - 183 , - 1608 , - 273 , - 2066 , - 1099 , - 316 , - 2661 , - 2246 , - 2015 , - 1968 , - 2105 , - 2426 , - 2931 , - 676 , - 1549 , - 2606 , - 903 , - 2328 , - 993 , - 2786 , - 1819 , - 1036 , - 437 , - 22 , - 2735 , - 2688 , - 2825 , - 202 , - 707 , - 1396 , - 2269 , - 382 , - 1623 , - 104 , - 1713 , - 562 , - 2539 , - 1756 , - 1157 , - 742 , - 511 , - 464 , - 601 , - 922 , - 1427 , - 2116 , - 45 , - 1102 , - 2343 , - 824 , - 2433 , - 1282 , - 315 , - 2476 , - 1877 , - 1462 , - 1231 , - 1184 , - 1321 , - 1642 , - 2147 , - 2836 , - 765 , - 1822 , - 119 , - 1544 , - 209 , - 2002 , - 1035 , - 252 , - 2597 , - 2182 , - 1951 , - 1904 , - 2041 , - 2362 , - 2867 , - 612 , - 1485 , - 2542 , - 839 , - 2264 , - 929 , - 2722 , - 1755 , - 972 , - 373 , - 2902 , - 2671 , - 2624 , - 2761 , - 138 , - 643 , - 1332 , - 2205 , - 318 , - 1559 , - 40 , - 1649 , - 498 , - 2475 , - 1692 , - 1093 , - 678 , - 447 , - 400 , - 537 , - 858 , - 1363 , - 2052 , - 2925 , - 1038 , - 2279 , - 760 , - 2369 , - 1218 , - 251 , - 2412 , - 1813 , - 1398 , - 1167 , - 1120 , - 1257 , - 1578 , - 2083 , - 2772 , - 701 , - 1758 , - 55 , - 1480 , - 145 , - 1938 , - 971 , - 188 , - 2533 , - 2118 , - 1887 , - 1840 , - 1977 , - 2298 , - 2803 , - 548 , - 1421 , - 2478 , - 775 , - 2200 , - 865 , - 2658 , - 1691 , - 908 , - 309 , - 2838 , - 2607 , - 2560 , - 2697 , - 74 , - 579 , - 1268 , - 2141 , - 254 , - 1495 , - 2920 , - 1585 , - 434 , - 2411 , - 1628 , - 1029 , - 614 , - 383 , - 336 , - 473 , - 794 , - 1299 , - 1988 , - 2861 , - 974 , - 2215 , - 696 , - 2305 , - 1154 , - 187 , - 2348 , - 1749 , - 1334 , - 1103 , - 1056 , - 1193 , - 1514 , - 2019 , - 2708 , - 637 , - 1694 , - 2935 , - 1416 , - 81 , - 1874 , - 907 , - 124 , - 2469 , - 2054 , - 1823 , - 1776 , - 1913 , - 2234 , - 2739 , - 484 , - 1357 , - 2414 , - 711 , - 2136 , - 801 , - 2594 , - 1627 , - 844 , - 245 , - 2774 , - 2543 , - 2496 , - 2633 , - 10 , - 515 , - 1204 , - 2077 , - 190 , - 1431 , - 2856 , - 1521 , - 370 , - 2347 , - 1564 , - 965 , - 550 , - 319 , - 272 , - 409 , - 730 , - 1235 , - 1924 , - 2797 , - 910 , - 2151 , - 632 , - 2241 , - 1090 , - 123 , - 2284 , - 1685 , - 1270 , - 1039 , - 992 , - 1129 , - 1450 , - 1955 , - 2644 , - 573 , - 1630 , - 2871 , - 1352 , - 17 , - 1810 , - 843 , - 60 , - 2405 , - 1990 , - 1759 , - 1712 , - 1849 , - 2170 , - 2675 , - 420 , - 1293 , - 2350 , - 647 , - 2072 , - 737 , - 2530 , - 1563 , - 780 , - 181 , - 2710 , - 2479 , - 2432 , - 2569 , - 2890 , - 451 , - 1140 , - 2013 , - 126 , - 1367 , - 2792 , - 1457 , - 306 , - 2283 , - 1500 , - 901 , - 486 , - 255 , - 208 , - 345 , - 666 , - 1171 , - 1860 , - 2733 , - 846 , - 2087 , - 568 , - 2177 , - 1026 , - 59 , - 2220 , - 1621 , - 1206 , - 975 , - 928 , - 1065 , - 1386 , - 1891 , - 2580 , - 509 , - 1566 , - 2807 , - 1288 , - 2897 , - 1746 , - 779 , - 2940 , - 2341 , - 1926 , - 1695 , - 1648 , - 1785 , - 2106 , - 2611 , - 356 , - 1229 , - 2286 , - 583 , - 2008 , - 673 , - 2466 , - 1499 , - 716 , - 117 , - 2646 , - 2415 , - 2368 , - 2505 , - 2826 , - 387 , - 1076 , - 1949 , - 62 , - 1303 , - 2728 , - 1393 , - 242 , - 2219 , - 1436 , - 837 , - 422 , - 191 , - 144 , - 281 , - 602 , - 1107 , - 1796 , - 2669 , - 782 , - 2023 , - 504 , - 2113 , - 962 , - 2939 , - 2156 , - 1557 , - 1142 , - 911 , - 864 , - 1001 , - 1322 , - 1827 , - 2516 , - 445 , - 1502 , - 2743 , - 1224 , - 2833 , - 1682 , - 715 , - 2876 , - 2277 , - 1862 , - 1631 , - 1584 , - 1721 , - 2042 , - 2547 , - 292 , - 1165 , - 2222 , - 519 , - 1944 , - 609 , - 2402 , - 1435 , - 652 , - 53 , - 2582 , - 2351 , - 2304 , - 2441 , - 2762 , - 323 , - 1012 , - 1885 , - 2942 , - 1239 , - 2664 , - 1329 , - 178 , - 2155 , - 1372 , - 773 , - 358 , - 127 , - 80 , - 217 , - 538 , - 1043 , - 1732 , - 2605 , - 718 , - 1959 , - 440 , - 2049 , - 898 , - 2875 , - 2092 , - 1493 , - 1078 , - 847 , - 800 , - 937 , - 1258 , - 1763 , - 2452 , - 381 , - 1438 , - 2679 , - 1160 , - 2769 , - 1618 , - 651 , - 2812 , - 2213 , - 1798 , - 1567 , - 1520 , - 1657 , - 1978 , - 2483 , - 228 , - 1101 , - 2158 , - 455 , - 1880 , - 545 , - 2338 , - 1371 , - 588 , - 2933 , - 2518 , - 2287 , - 2240 , - 2377 , - 2698 , - 259 , - 948 , - 1821 , - 2878 , - 1175 , - 2600 , - 1265 , - 114 , - 2091 , - 1308 , - 709 , - 294 , - 63 , - 16 , - 153 , - 474 , - 979 , - 1668 , - 2541 , - 654 , - 1895 , - 376 , - 1985 , - 834 , - 2811 , - 2028 , - 1429 , - 1014 , - 783 , - 736 , - 873 , - 1194 , - 1699 , - 2388 , - 317 , - 1374 , - 2615 , - 1096 , - 2705 , - 1554 , - 587 , - 2748 , - 2149 , - 1734 , - 1503 , - 1456 , - 1593 , - 1914 , - 2419 , - 164 , - 1037 , - 2094 , - 391 , - 1816 , - 481 , - 2274 , - 1307 , - 524 , - 2869 , - 2454 , - 2223 , - 2176 , - 2313 , - 2634 , - 195 , - 884 , - 1757 , - 2814 , - 1111 , - 2536 , - 1201 , - 50 , - 2027 , - 1244 , - 645 , - 230 , - 2943 , - 2896 , - 89 , - 410 , - 915 , - 1604 , - 2477 , - 590 , - 1831 , - 312 , - 1921 , - 770 , - 2747 , - 1964 , - 1365 , - 950 , - 719 , - 672 , - 809 , - 1130 , - 1635 , - 2324 , - 253 , - 1310 , - 2551 , - 1032 , - 2641 , - 1490 , - 523 , - 2684 , - 2085 , - 1670 , - 1439 , - 1392 , - 1529 , - 1850 , - 2355 , - 100 , - 973 , - 2030 , - 327 , - 1752 , - 417 , - 2210 , - 1243 , - 460 , - 2805 , - 2390 , - 2159 , - 2112 , - 2249 , - 2570 , - 131 , - 820 , - 1693 , - 2750 , - 1047 , - 2472 , - 1137 , - 2930 , - 1963 , - 1180 , - 581 , - 166 , - 2879 , - 2832 , - 25 , - 346 , - 851 , - 1540 , - 2413 , - 526 , - 1767 , - 248 , - 1857 , - 706 , - 2683 , - 1900 , - 1301 , - 886 , - 655 , - 608 , - 745 , - 1066 , - 1571 , - 2260 , - 189 , - 1246 , - 2487 , - 968 , - 2577 , - 1426 , - 459 , - 2620 , - 2021 , - 1606 , - 1375 , - 1328 , - 1465 , - 1786 , - 2291 , - 36 , - 909 , - 1966 , - 263 , - 1688 , - 353 , - 2146 , - 1179 , - 396 , - 2741 , - 2326 , - 2095 , - 2048 , - 2185 , - 2506 , - 67 , - 756 , - 1629 , - 2686 , - 983 , - 2408 , - 1073 , - 2866 , - 1899 , - 1116 , - 517 , - 102 , - 2815 , - 2768 , - 2905 , - 282 , - 787 , - 1476 , - 2349 , - 462 , - 1703 , - 184 , - 1793 , - 642 , - 2619 , - 1836 , - 1237 , - 822 , - 591 , - 544 , - 681 , - 1002 , - 1507 , - 2196 , - 125 , - 1182 , - 2423 , - 904 , - 2513 , - 1362 , - 395 , - 2556 , - 1957 , - 1542 , - 1311 , - 1264 , - 1401 , - 1722 , - 2227 , - 2916 , - 845 , - 1902 , - 199 , - 1624 , - 289 , - 2082 , - 1115 , - 332 , - 2677 , - 2262 , - 2031 , - 1984 , - 2121 , - 2442 , - 3 , - 692 , - 1565 , - 2622 , - 919 , - 2344 , - 1009 , - 2802 , - 1835 , - 1052 , - 453 , - 38 , - 2751 , - 2704 , - 2841 , - 218 , - 723 , - 1412 , - 2285 , - 398 , - 1639 , - 120 , - 1729 , - 578 , - 2555 , - 1772 , - 1173 , - 758 , - 527 , - 480 , - 617 , - 938 , - 1443 , - 2132 , - 61 , - 1118 , - 2359 , - 840 , - 2449 , - 1298 , - 331 , - 2492 , - 1893 , - 1478 , - 1247 , - 1200 , - 1337 , - 1658 , - 2163 , - 2852 , - 781 , - 1838 , - 135 , - 1560 , - 225 , - 2018 , - 1051 , - 268 , - 2613 , - 2198 , - 1967 , - 1920 , - 2057 , - 2378 , - 2883 , - 628 , - 1501 , - 2558 , - 855 , - 2280 , - 945 , - 2738 , - 1771 , - 988 , - 389 , - 2918 , - 2687 , - 2640 , - 2777 , - 154 , - 659 , - 1348 , - 2221 , - 334 , - 1575 , - 56 , - 1665 , - 514 , - 2491 , - 1708 , - 1109 , - 694 , - 463 , - 416 , - 553 , - 874 , - 1379 , - 2068 , - 2941 , - 1054 , - 2295 , - 776 , - 2385 , - 1234 , - 267 , - 2428 , - 1829 , - 1414 , - 1183 , - 1136 , - 1273 , - 1594 , - 2099 , - 2788 , - 717 , - 1774 , - 71 , - 1496 , - 161 , - 1954 , - 987 , - 204 , - 2549 , - 2134 , - 1903 , - 1856 , - 1993 , - 2314 , - 2819 , - 564 , - 1437 , - 2494 , - 791 , - 2216 , - 881 , - 2674 , - 1707 , - 924 , - 325 , - 2854 , - 2623 , - 2576 , - 2713 , - 90 , - 595 , - 1284 , - 2157 , - 270 , - 1511 , - 2936 , - 1601 , - 450 , - 2427 , - 1644 , - 1045 , - 630 , - 399 , - 352 , - 489 , - 810 , - 1315 , - 2004 , - 2877 , - 990 , - 2231 , - 712 , - 2321 , - 1170 , - 203 , - 2364 , - 1765 , - 1350 , - 1119 , - 1072 , - 1209 , - 1530 , - 2035 , - 2724 , - 653 , - 1710 , - 7 , - 1432 , - 97 , - 1890 , - 923 , - 140 , - 2485 , - 2070 , - 1839 , - 1792 , - 1929 , - 2250 , - 2755 , - 500 , - 1373 , - 2430 , - 727 , - 2152 , - 817 , - 2610 , - 1643 , - 860 , - 261 , - 2790 , - 2559 , - 2512 , - 2649 , - 26 , - 531 , - 1220 , - 2093 , - 206 , - 1447 , - 2872 , - 1537 , - 386 , - 2363 , - 1580 , - 981 , - 566 , - 335 , - 288 , - 425 , - 746 , - 1251 , - 1940 , - 2813 , - 926 , - 2167 , - 648 , - 2257 , - 1106 , - 139 , - 2300 , - 1701 , - 1286 , - 1055 , - 1008 , - 1145 , - 1466 , - 1971 , - 2660 , - 589 , - 1646 , - 2887 , - 1368 , - 33 , - 1826 , - 859 , - 76 , - 2421 , - 2006 , - 1775 , - 1728 , - 1865 , - 2186 , - 2691 , - 436 , - 1309 , - 2366 , - 663 , - 2088 , - 753 , - 2546 , - 1579 , - 796 , - 197 , - 2726 , - 2495 , - 2448 , - 2585 , - 2906 , - 467 , - 1156 , - 2029 , - 142 , - 1383 , - 2808 , - 1473 , - 322 , - 2299 , - 1516 , - 917 , - 502 , - 271 , - 224 , - 361 , - 682 , - 1187 , - 1876 , - 2749 , - 862 , - 2103 , - 584 , - 2193 , - 1042 , - 75 , - 2236 , - 1637 , - 1222 , - 991 , - 944 , - 1081 , - 1402 , - 1907 , - 2596 , - 525 , - 1582 , - 2823 , - 1304 , - 2913 , - 1762 , - 795 , - 12 , - 2357 , - 1942 , - 1711 , - 1664 , - 1801 , - 2122 , - 2627 , - 372 , - 1245 , - 2302 , - 599 , - 2024 , - 689 , - 2482 , - 1515 , - 732 , - 133 , - 2662 , - 2431 , - 2384 , - 2521 , - 2842 , - 403 , - 1092 , - 1965 , - 78 , - 1319 , - 2744 , - 1409 , - 258 , - 2235 , - 1452 , - 853 , - 438 , - 207 , - 160 , - 297 , - 618 , - 1123 , - 1812 , - 2685 , - 798 , - 2039 , - 520 , - 2129 , - 978 , - 11 , - 2172 , - 1573 , - 1158 , - 927 , - 880 , - 1017 , - 1338 , - 1843 , - 2532 , - 461 , - 1518 , - 2759 , - 1240 , - 2849 , - 1698 , - 731 , - 2892 , - 2293 , - 1878 , - 1647 , - 1600 , - 1737 , - 2058 , - 2563 , - 308 , - 1181 , - 2238 , - 535 , - 1960 , - 625 , - 2418 , - 1451 , - 668 , - 69 , - 2598 , - 2367 , - 2320 , - 2457 , - 2778 , - 339 , - 1028 , - 1901 , - 14 , - 1255 , - 2680 , - 1345 , - 194 , - 2171 , - 1388 , - 789 , - 374 , - 143 , - 96 , - 233 , - 554 , - 1059 , - 1748 , - 2621 , - 734 , - 1975 , - 456 , - 2065 , - 914 , - 2891 , - 2108 , - 1509 , - 1094 , - 863 , - 816 , - 953 , - 1274 , - 1779 , - 2468 , - 397 , - 1454 , - 2695 , - 1176 , - 2785 , - 1634 , - 667 , - 2828 , - 2229 , - 1814 , - 1583 , - 1536 , - 1673 , - 1994 , - 2499 , - 244 , - 1117 , - 2174 , - 471 , - 1896 , - 561 , - 2354 , - 1387 , - 604 , - 5 , - 2534 , - 2303 , - 2256 , - 2393 , - 2714 , - 275 , - 964 , - 1837 , - 2894 , - 1191 , - 2616 , - 1281 , - 130 , - 2107 , - 1324 , - 725 , - 310 , - 79 , - 32 , - 169 , - 490 , - 995 , - 1684 , - 2557 , - 670 , - 1911 , - 392 , - 2001 , - 850 , - 2827 , - 2044 , - 1445 , - 1030 , - 799 , - 752 , - 889 , - 1210 , - 1715 , - 2404 , - 333 , - 1390 , - 2631 , - 1112 , - 2721 , - 1570 , - 603 , - 2764 , - 2165 , - 1750 , - 1519 , - 1472 , - 1609 , - 1930 , - 2435 , - 180 , - 1053 , - 2110 , - 407 , - 1832 , - 497 , - 2290 , - 1323 , - 540 , - 2885 , - 2470 , - 2239 , - 2192 , - 2329 , - 2650 , - 211 , - 900 , - 1773 , - 2830 , - 1127 , - 2552 , - 1217 , - 66 , - 2043 , - 1260 , - 661 , - 246 , - 15 , - 2912 , - 105 , - 426 , - 931 , - 1620 , - 2493 , - 606 , - 1847 , - 328 , - 1937 , - 786 , - 2763 , - 1980 , - 1381 , - 966 , - 735 , - 688 , - 825 , - 1146 , - 1651 , - 2340 , - 269 , - 1326 , - 2567 , - 1048 , - 2657 , - 1506 , - 539 , - 2700 , - 2101 , - 1686 , - 1455 , - 1408 , - 1545 , - 1866 , - 2371 , - 116 , - 989 , - 2046 , - 343 , - 1768 , - 433 , - 2226 , - 1259 , - 476 , - 2821 , - 2406 , - 2175 , - 2128 , - 2265 , - 2586 , - 147 , - 836 , - 1709 , - 2766 , - 1063 , - 2488 , - 1153 , - 2 , - 1979 , - 1196 , - 597 , - 182 , - 2895 , - 2848 , - 41 , - 362 , - 867 , - 1556 , - 2429 , - 542 , - 1783 , - 264 , - 1873 , - 722 , - 2699 , - 1916 , - 1317 , - 902 , - 671 , - 624 , - 761 , - 1082 , - 1587 , - 2276 , - 205 , - 1262 , - 2503 , - 984 , - 2593 , - 1442 , - 475 , - 2636 , - 2037 , - 1622 , - 1391 , - 1344 , - 1481 , - 1802 , - 2307 , - 52 , - 925 , - 1982 , - 279 , - 1704 , - 369 , - 2162 , - 1195 , - 412 , - 2757 , - 2342 , - 2111 , - 2064 , - 2201 , - 2522 , - 83 , - 772 , - 1645 , - 2702 , - 999 , - 2424 , - 1089 , - 2882 , - 1915 , - 1132 , - 533 , - 118 , - 2831 , - 2784 , - 2921 , - 298 , - 803 , - 1492 , - 2365 , - 478 , - 1719 , - 200 , - 1809 , - 658 , - 2635 , - 1852 , - 1253 , - 838 , - 607 , - 560 , - 697 , - 1018 , - 1523 , - 2212 , - 141 , - 1198 , - 2439 , - 920 , - 2529 , - 1378 , - 411 , - 2572 , - 1973 , - 1558 , - 1327 , - 1280 , - 1417 , - 1738 , - 2243 , - 2932 , - 861 , - 1918 , - 215 , - 1640 , - 305 , - 2098 , - 1131 , - 348 , - 2693 , - 2278 , - 2047 , - 2000 , - 2137 , - 2458 , - 19 , - 708 , - 1581 , - 2638 , - 935 , - 2360 , - 1025 , - 2818 , - 1851 , - 1068 , - 469 , - 54 , - 2767 , - 2720 , - 2857 , - 234 , - 739 , - 1428 , - 2301 , - 414 , - 1655 , - 136 , - 1745 , - 594 , - 2571 , - 1788 , - 1189 , - 774 , - 543 , - 496 , - 633 , - 954 , - 1459 , - 2148 , - 77 , - 1134 , - 2375 , - 856 , - 2465 , - 1314 , - 347 , - 2508 , - 1909 , - 1494 , - 1263 , - 1216 , - 1353 , - 1674 , - 2179 , - 2868 , - 797 , - 1854 , - 151 , - 1576 , - 241 , - 2034 , - 1067 , - 284 , - 2629 , - 2214 , - 1983 , - 1936 , - 2073 , - 2394 , - 2899 , - 644 , - 1517 , - 2574 , - 871 , - 2296 , - 961 , - 2754 , - 1787 , - 1004 , - 405 , - 2934 , - 2703 , - 2656 , - 2793 , - 170 , - 675 , - 1364 , - 2237 , - 350 , - 1591 , - 72 , - 1681 , - 530 , - 2507 , - 1724 , - 1125 , - 710 , - 479 , - 432 , - 569 , - 890 , - 1395 , - 2084 , - 13 , - 1070 , - 2311 , - 792 , - 2401 , - 1250 , - 283 , - 2444 , - 1845 , - 1430 , - 1199 , - 1152 , - 1289 , - 1610 , - 2115 , - 2804 , - 733 , - 1790 , - 87 , - 1512 , - 177 , - 1970 , - 1003 , - 220 , - 2565 , - 2150 , - 1919 , - 1872 , - 2009 , - 2330 , - 2835 , - 580 , - 1453 , - 2510 , - 807 , - 2232 , - 897 , - 2690 , - 1723 , - 940 , - 341 , - 2870 , - 2639 , - 2592 , - 2729 , - 106 , - 611 , - 1300 , - 2173 , - 286 , - 1527 , - 8 , - 1617 , - 466 , - 2443 , - 1660 , - 1061 , - 646 , - 415 , - 368 , - 505 , - 826 , - 1331 , - 2020 , - 2893 , - 1006 , - 2247 , - 728 , - 2337 , - 1186 , - 219 , - 2380 , - 1781 , - 1366 , - 1135 , - 1088 , - 1225 , - 1546 , - 2051 , - 2740 , - 669 , - 1726 , - 23 , - 1448 , - 113 , - 1906 , - 939 , - 156 , - 2501 , - 2086 , - 1855 , - 1808 , - 1945 , - 2266 , - 2771 , - 516 , - 1389 , - 2446 , - 743 , - 2168 , - 833 , - 2626 , - 1659 , - 876 , - 277 , - 2806 , - 2575 , - 2528 , - 2665 , - 42 , - 547 , - 1236 , - 2109 , - 222 , - 1463 , - 2888 , - 1553 , - 402 , - 2379 , - 1596 , - 997 , - 582 , - 351 , - 304 , - 441 , - 762 , - 1267 , - 1956 , - 2829 , - 942 , - 2183 , - 664 , - 2273 , - 1122 , - 155 , - 2316 , - 1717 , - 1302 , - 1071 , - 1024 , - 1161 , - 1482 , - 1987 , - 2676 , - 605 , - 1662 , - 2903 , - 1384 , - 49 , - 1842 , - 875 , - 92 , - 2437 , - 2022 , - 1791 , - 1744 , - 1881 , - 2202 , - 2707 , - 452 , - 1325 , - 2382 , - 679 , - 2104 , - 769 , - 2562 , - 1595 , - 812 , - 213 , - 2742 , - 2511 , - 2464 , - 2601 , - 2922 , - 483 , - 1172 , - 2045 , - 158 , - 1399 , - 2824 , - 1489 , - 338 , - 2315 , - 1532 , - 933 , - 518 , - 287 , - 240 , - 377 , - 698 , - 1203 , - 1892 , - 2765 , - 878 , - 2119 , - 600 , - 2209 , - 1058 , - 91 , - 2252 , - 1653 , - 1238 , - 1007 , - 960 , - 1097 , - 1418 , - 1923 , - 2612 , - 541 , - 1598 , - 2839 , - 1320 , - 2929 , - 1778 , - 811 , - 28 , - 2373 , - 1958 , - 1727 , - 1680 , - 1817 , - 2138 , - 2643 , - 388 , - 1261 , - 2318 , - 615 , - 2040 , - 705 , - 2498 , - 1531 , - 748 , - 149 , - 2678 , - 2447 , - 2400 , - 2537 , - 2858 , - 419 , - 1108 , - 1981 , - 94 , - 1335 , - 2760 , - 1425 , - 274 , - 2251 , - 1468 , - 869 , - 454 , - 223 , - 176 , - 313 , - 634 , - 1139 , - 1828 , - 2701 , - 814 , - 2055 , - 536 , - 2145 , - 994 , - 27 , - 2188 , - 1589 , - 1174 , - 943 , - 896 , - 1033 , - 1354 , - 1859 , - 2548 , - 477 , - 1534 , - 2775 , - 1256 , - 2865 , - 1714 , - 747 , - 2908 , - 2309 , - 1894 , - 1663 , - 1616 , - 1753 , - 2074 , - 2579 , - 324 , - 1197 , - 2254 , - 551 , - 1976 , - 641 , - 2434 , - 1467 , - 684 , - 85 , - 2614 , - 2383 , - 2336 , - 2473 , - 2794 , - 355 , - 1044 , - 1917 , - 30 , - 1271 , - 2696 , - 1361 , - 210 , - 2187 , - 1404 , - 805 , - 390 , - 159 , - 112 , - 249 , - 570 , - 1075 , - 1764 , - 2637 , - 750 , - 1991 , - 472 , - 2081 , - 930 , - 2907 , - 2124 , - 1525 , - 1110 , - 879 , - 832 , - 969 , - 1290 , - 1795 , - 2484 , - 413 , - 1470 , - 2711 , - 1192 , - 2801 , - 1650 , - 683 , - 2844 , - 2245 , - 1830 , - 1599 , - 1552 , - 1689 , - 2010 , - 2515 , - 260 , - 1133 , - 2190 , - 487 , - 1912 , - 577 , - 2370 , - 1403 , - 620 , - 21 , - 2550 , - 2319 , - 2272 , - 2409 , - 2730 , - 291 , - 980 , - 1853 , - 2910 , - 1207 , - 2632 , - 1297 , - 146 , - 2123 , - 1340 , - 741 , - 326 , - 95 , - 48 , - 185 , - 506 , - 1011 , - 1700 , - 2573 , - 686 , - 1927 , - 408 , - 2017 , - 866 , - 2843 , - 2060 , - 1461 , - 1046 , - 815 , - 768 , - 905 , - 1226 , - 1731 , - 2420 , - 349 , - 1406 , - 2647 , - 1128 , - 2737 , - 1586 , - 619 , - 2780 , - 2181 , - 1766 , - 1535 , - 1488 , - 1625 , - 1946 , - 2451 , - 196 , - 1069 , - 2126 , - 423 , - 1848 , - 513 , - 2306 , - 1339 , - 556 , - 2901 , - 2486 , - 2255 , - 2208 , - 2345 , - 2666 , - 227 , - 916 , - 1789 , - 2846 , - 1143 , - 2568 , - 1233 , - 82 , - 2059 , - 1276 , - 677 , - 262 , - 31 , - 2928 , - 121 , - 442 , - 947 , - 1636 , - 2509 , - 622 , - 1863 , - 344 , - 1953 , - 802 , - 2779 , - 1996 , - 1397 , - 982 , - 751 , - 704 , - 841 , - 1162 , - 1667 , - 2356 , - 285 , - 1342 , - 2583 , - 1064 , - 2673 , - 1522 , - 555 , - 2716 , - 2117 , - 1702 , - 1471 , - 1424 , - 1561 , - 1882 , - 2387 , - 132 , - 1005 , - 2062 , - 359 , - 1784 , - 449 , - 2242 , - 1275 , - 492 , - 2837 , - 2422 , - 2191 , - 2144 , - 2281 , - 2602 , - 163 , - 852 , - 1725 , - 2782 , - 1079 , - 2504 , - 1169 , - 18 , - 1995 , - 1212 , - 613 , - 198 , - 2911 , - 2864 , - 57 , - 378 , - 883 , - 1572 , - 2445 , - 558 , - 1799 , - 280 , - 1889 , - 738 , - 2715 , - 1932 , - 1333 , - 918 , - 687 , - 640 , - 777 , - 1098 , - 1603 , - 2292 , - 221 , - 1278 , - 2519 , - 1000 , - 2609 , - 1458 , - 491 , - 2652 , - 2053 , - 1638 , - 1407 , - 1360 , - 1497 , - 1818 , - 2323 , - 68 , - 941 , - 1998 , - 295 , - 1720 , - 385 , - 2178 , - 1211 , - 428 , - 2773 , - 2358 , - 2127 , - 2080 , - 2217 , - 2538 , - 99 , - 788 , - 1661 , - 2718 , - 1015 , - 2440 , - 1105 , - 2898 , - 1931 , - 1148 , - 549 , - 134 , - 2847 , - 2800 , - 2937 , - 314 , - 819 , - 1508 , - 2381 , - 494 , - 1735 , - 216 , - 1825 , - 674 , - 2651 , - 1868 , - 1269 , - 854 , - 623 , - 576 , - 713 , - 1034 , - 1539 , - 2228 , - 157 , - 1214 , - 2455 , - 936 , - 2545 , - 1394 , - 427 , - 2588 , - 1989 , - 1574 , - 1343 , - 1296 , - 1433 , - 1754 , - 2259 , - 4 , - 877 , - 1934 , - 231 , - 1656 , - 321 , - 2114 , - 1147 , - 364 , - 2709 , - 2294 , - 2063 , - 2016 , - 2153 , - 2474 , - 35 , - 724 , - 1597 , - 2654 , - 951 , - 2376 , - 1041 , - 2834 , - 1867 , - 1084 , - 485 , - 70 , - 2783 , - 2736 , - 2873 , - 250 , - 755 , - 1444 , - 2317 , - 430 , - 1671 , - 152 , - 1761 , - 610 , - 2587 , - 1804 , - 1205 , - 790 , - 559 , - 512 , - 649 , - 970 , - 1475 , - 2164 , - 93 , - 1150 , - 2391 , - 872 , - 2481 , - 1330 , - 363 , - 2524 , - 1925 , - 1510 , - 1279 , - 1232 , - 1369 , - 1690 , - 2195 , - 2884 , - 813 , - 1870 , - 167 , - 1592 , - 257 , - 2050 , - 1083 , - 300 , - 2645 , - 2230 , - 1999 , - 1952 , - 2089 , - 2410 , - 2915 , - 660 , - 1533 , - 2590 , - 887 , - 2312 , - 977 , - 2770 , - 1803 , - 1020 , - 421 , - 6 , - 2719 , - 2672 , - 2809 , - 186 , - 691 , - 1380 , - 2253 , - 366 , - 1607 , - 88 , - 1697 , - 546 , - 2523 , - 1740 , - 1141 , - 726 , - 495 , - 448 , - 585 , - 906 , - 1411 , - 2100 , - 29 , - 1086 , - 2327 , - 808 , - 2417 , - 1266 , - 299 , - 2460 , - 1861 , - 1446 , - 1215 , - 1168 , - 1305 , - 1626 , - 2131 , - 2820 , - 749 , - 1806 , - 103 , - 1528 , - 193 , - 1986 , - 1019 , - 236 , - 2581 , - 2166 , - 1935 , - 1888 , - 2025 , - 2346 , - 2851 , - 596 , - 1469 , - 2526 , - 823 , - 2248 , - 913 , - 2706 , - 1739 , - 956 , - 357 , - 2886 , - 2655 , - 2608 , - 2745 , - 122 , - 627 , - 1316 , - 2189 , - 302 , - 1543 , - 24 , - 1633 , - 482 , - 2459 , - 1676 , - 1077 , - 662 , - 431 , - 384 , - 521 , - 842 , - 1347 , - 2036 , - 2909 , - 1022 , - 2263 , - 744 , - 2353 , - 1202 , - 235 , - 2396 , - 1797 , - 1382 , - 1151 , - 1104 , - 1241 , - 1562 , - 2067 , - 2756 , - 685 , - 1742 , - 39 , - 1464 , - 129 , - 1922 , - 955 , - 172 , - 2517 , - 2102 , - 1871 , - 1824 , - 1961 , - 2282 , - 2787 , - 532 , - 1405 , - 2462 , - 759 , - 2184 , - 849 , - 2642 , - 1675 , - 892 , - 293 , - 2822 , - 2591 , - 2544 , - 2681 , - 58 , - 563 , - 1252 , - 2125 , - 238 , - 1479 , - 2904 , - 1569 , - 418 , - 2395 , - 1612 , - 1013 , - 598 , - 367 , - 320 , - 457 , - 778 , - 1283 , - 1972 , - 2845 , - 958 , - 2199 , - 680 , - 2289 , - 1138 , - 171 , - 2332 , - 1733 , - 1318 , - 1087 , - 1040 , - 1177 , - 1498 , - 2003 , - 2692 , - 621 , - 1678 , - 2919 , - 1400 , - 65 , - 1858 , - 891 , - 108 , - 2453 , - 2038 , - 1807 , - 1760 , - 1897 , - 2218 , - 2723 , - 468 , - 1341 , - 2398 , - 695 , - 2120 , - 785 , - 2578 , - 1611 , - 828 , - 229 , - 2758 , - 2527 , - 2480 , - 2617 , - 2938 , - 499 , - 1188 , - 2061 , - 174 , - 1415 , - 2840 , - 1505 , - 354 , - 2331 , - 1548 , - 949 , - 534 , - 303 , - 256 , - 393 , - 714 , - 1219 , - 1908 , - 2781 , - 894 , - 2135 , - 616 , - 2225 , - 1074 , - 107 , - 2268 , - 1669 , - 1254 , - 1023 , - 976 , - 1113 , - 1434 , - 1939 , - 2628 , - 557 , - 1614 , - 2855 , - 1336 , - 1 , - 1794 , - 827 , - 44 , - 2389 , - 1974 , - 1743 , - 1696 , - 1833 , - 2154 , - 2659 , - 404 , - 1277 , - 2334 , - 631 , - 2056 , - 721 , - 2514 , - 1547 , - 764 , - 165 , - 2694 , - 2463 , - 2416 , - 2553 , - 2874 , - 435 , - 1124 , - 1997 , - 110 , - 1351 , - 2776 , - 1441 , - 290 , - 2267 , - 1484 , - 885 , - 470 , - 239 , - 192 , - 329 , - 650 , - 1155 , - 1844 , - 2717 , - 830 , - 2071 , - 552 , - 2161 , - 1010 , - 43 , - 2204 , - 1605 , - 1190 , - 959 , - 912 , - 1049 , - 1370 , - 1875 , - 2564 , - 493 , - 1550 , - 2791 , - 1272 , - 2881 , - 1730 , - 763 , - 2924 , - 2325 , - 1910 , - 1679 , - 1632 , - 1769 , - 2090 , - 2595 , - 340 , - 1213 , - 2270 , - 567 , - 1992 , - 657 , - 2450 , - 1483 , - 700 , - 101 , - 2630 , - 2399 , - 2352 , - 2489 , - 2810 , - 371 , - 1060 , - 1933 , - 46 , - 1287 , - 2712 , - 1377 , - 226 , - 2203 , - 1420 , - 821 , - 406 , - 175 , - 128 , - 265 , - 586 , - 1091 , - 1780 , - 2653 , - 766 , - 2007 , - 488 , - 2097 , - 946 , - 2923 , - 2140 , - 1541 , - 1126 , - 895 , - 848 , - 985 , - 1306 , - 1811 , - 2500 , - 429 , - 1486 , - 2727 , - 1208 , - 2817 , - 1666 , - 699 , - 2860 , - 2261 , - 1846 , - 1615 , - 1568 , - 1705 , - 2026 , - 2531 , - 276 , - 1149 , - 2206 , - 503 , - 1928 , - 593 , - 2386 , - 1419 , - 636 , - 37 , - 2566 , - 2335 , - 2288 , - 2425 , - 2746 , - 307 , - 996 , - 1869 , - 2926 , - 1223 , - 2648 , - 1313 , - 162 , - 2139 , - 1356 , - 757 , - 342 , - 111 , - 64 , - 201 , - 522 , - 1027 , - 1716 , - 2589 , - 702 , - 1943 , - 424 , - 2033 , - 882 , - 2859 , - 2076 , - 1477 , - 1062 , - 831 , - 784 , - 921 , - 1242 , - 1747 , - 2436 , - 365 , - 1422 , - 2663 , - 1144 , - 2753 , - 1602 , - 635 , - 2796 , - 2197 , - 1782 , - 1551 , - 1504 , - 1641 , - 1962 , - 2467 , - 212 , - 1085 , - 2142 , - 439 , - 1864 , - 529 , - 2322 , - 1355 , - 572 , - 2917 , - 2502 , - 2271 , - 2224 , - 2361 , - 2682 , - 243 , - 932 , - 1805 , - 2862 , - 1159 , - 2584 , - 1249 , - 98 , - 2075 , - 1292 , - 693 , - 278 , - 47 , - 0 , - 345 , - 1066 , - 2163 , - 628 , - 2477 , - 1694 , - 1287 , - 1256 , - 1601 , - 2322 , - 411 , - 1884 , - 725 , - 2950 , - 2543 , - 2512 , - 2857 , - 570 , - 1667 , - 132 , - 1981 , - 1198 , - 791 , - 760 , - 1105 , - 1826 , - 2923 , - 1388 , - 229 , - 2454 , - 2047 , - 2016 , - 2361 , - 74 , - 1171 , - 2644 , - 1485 , - 702 , - 295 , - 264 , - 609 , - 1330 , - 2427 , - 892 , - 2741 , - 1958 , - 1551 , - 1520 , - 1865 , - 2586 , - 675 , - 2148 , - 989 , - 206 , - 2807 , - 2776 , - 113 , - 834 , - 1931 , - 396 , - 2245 , - 1462 , - 1055 , - 1024 , - 1369 , - 2090 , - 179 , - 1652 , - 493 , - 2718 , - 2311 , - 2280 , - 2625 , - 338 , - 1435 , - 2908 , - 1749 , - 966 , - 559 , - 528 , - 873 , - 1594 , - 2691 , - 1156 , - 3005 , - 2222 , - 1815 , - 1784 , - 2129 , - 2850 , - 939 , - 2412 , - 1253 , - 470 , - 63 , - 32 , - 377 , - 1098 , - 2195 , - 660 , - 2509 , - 1726 , - 1319 , - 1288 , - 1633 , - 2354 , - 443 , - 1916 , - 757 , - 2982 , - 2575 , - 2544 , - 2889 , - 602 , - 1699 , - 164 , - 2013 , - 1230 , - 823 , - 792 , - 1137 , - 1858 , - 2955 , - 1420 , - 261 , - 2486 , - 2079 , - 2048 , - 2393 , - 106 , - 1203 , - 2676 , - 1517 , - 734 , - 327 , - 296 , - 641 , - 1362 , - 2459 , - 924 , - 2773 , - 1990 , - 1583 , - 1552 , - 1897 , - 2618 , - 707 , - 2180 , - 1021 , - 238 , - 2839 , - 2808 , - 145 , - 866 , - 1963 , - 428 , - 2277 , - 1494 , - 1087 , - 1056 , - 1401 , - 2122 , - 211 , - 1684 , - 525 , - 2750 , - 2343 , - 2312 , - 2657 , - 370 , - 1467 , - 2940 , - 1781 , - 998 , - 591 , - 560 , - 905 , - 1626 , - 2723 , - 1188 , - 29 , - 2254 , - 1847 , - 1816 , - 2161 , - 2882 , - 971 , - 2444 , - 1285 , - 502 , - 95 , - 64 , - 409 , - 1130 , - 2227 , - 692 , - 2541 , - 1758 , - 1351 , - 1320 , - 1665 , - 2386 , - 475 , - 1948 , - 789 , - 6 , - 2607 , - 2576 , - 2921 , - 634 , - 1731 , - 196 , - 2045 , - 1262 , - 855 , - 824 , - 1169 , - 1890 , - 2987 , - 1452 , - 293 , - 2518 , - 2111 , - 2080 , - 2425 , - 138 , - 1235 , - 2708 , - 1549 , - 766 , - 359 , - 328 , - 673 , - 1394 , - 2491 , - 956 , - 2805 , - 2022 , - 1615 , - 1584 , - 1929 , - 2650 , - 739 , - 2212 , - 1053 , - 270 , - 2871 , - 2840 , - 177 , - 898 , - 1995 , - 460 , - 2309 , - 1526 , - 1119 , - 1088 , - 1433 , - 2154 , - 243 , - 1716 , - 557 , - 2782 , - 2375 , - 2344 , - 2689 , - 402 , - 1499 , - 2972 , - 1813 , - 1030 , - 623 , - 592 , - 937 , - 1658 , - 2755 , - 1220 , - 61 , - 2286 , - 1879 , - 1848 , - 2193 , - 2914 , - 1003 , - 2476 , - 1317 , - 534 , - 127 , - 96 , - 441 , - 1162 , - 2259 , - 724 , - 2573 , - 1790 , - 1383 , - 1352 , - 1697 , - 2418 , - 507 , - 1980 , - 821 , - 38 , - 2639 , - 2608 , - 2953 , - 666 , - 1763 , - 228 , - 2077 , - 1294 , - 887 , - 856 , - 1201 , - 1922 , - 11 , - 1484 , - 325 , - 2550 , - 2143 , - 2112 , - 2457 , - 170 , - 1267 , - 2740 , - 1581 , - 798 , - 391 , - 360 , - 705 , - 1426 , - 2523 , - 988 , - 2837 , - 2054 , - 1647 , - 1616 , - 1961 , - 2682 , - 771 , - 2244 , - 1085 , - 302 , - 2903 , - 2872 , - 209 , - 930 , - 2027 , - 492 , - 2341 , - 1558 , - 1151 , - 1120 , - 1465 , - 2186 , - 275 , - 1748 , - 589 , - 2814 , - 2407 , - 2376 , - 2721 , - 434 , - 1531 , - 3004 , - 1845 , - 1062 , - 655 , - 624 , - 969 , - 1690 , - 2787 , - 1252 , - 93 , - 2318 , - 1911 , - 1880 , - 2225 , - 2946 , - 1035 , - 2508 , - 1349 , - 566 , - 159 , - 128 , - 473 , - 1194 , - 2291 , - 756 , - 2605 , - 1822 , - 1415 , - 1384 , - 1729 , - 2450 , - 539 , - 2012 , - 853 , - 70 , - 2671 , - 2640 , - 2985 , - 698 , - 1795 , - 260 , - 2109 , - 1326 , - 919 , - 888 , - 1233 , - 1954 , - 43 , - 1516 , - 357 , - 2582 , - 2175 , - 2144 , - 2489 , - 202 , - 1299 , - 2772 , - 1613 , - 830 , - 423 , - 392 , - 737 , - 1458 , - 2555 , - 1020 , - 2869 , - 2086 , - 1679 , - 1648 , - 1993 , - 2714 , - 803 , - 2276 , - 1117 , - 334 , - 2935 , - 2904 , - 241 , - 962 , - 2059 , - 524 , - 2373 , - 1590 , - 1183 , - 1152 , - 1497 , - 2218 , - 307 , - 1780 , - 621 , - 2846 , - 2439 , - 2408 , - 2753 , - 466 , - 1563 , - 28 , - 1877 , - 1094 , - 687 , - 656 , - 1001 , - 1722 , - 2819 , - 1284 , - 125 , - 2350 , - 1943 , - 1912 , - 2257 , - 2978 , - 1067 , - 2540 , - 1381 , - 598 , - 191 , - 160 , - 505 , - 1226 , - 2323 , - 788 , - 2637 , - 1854 , - 1447 , - 1416 , - 1761 , - 2482 , - 571 , - 2044 , - 885 , - 102 , - 2703 , - 2672 , - 9 , - 730 , - 1827 , - 292 , - 2141 , - 1358 , - 951 , - 920 , - 1265 , - 1986 , - 75 , - 1548 , - 389 , - 2614 , - 2207 , - 2176 , - 2521 , - 234 , - 1331 , - 2804 , - 1645 , - 862 , - 455 , - 424 , - 769 , - 1490 , - 2587 , - 1052 , - 2901 , - 2118 , - 1711 , - 1680 , - 2025 , - 2746 , - 835 , - 2308 , - 1149 , - 366 , - 2967 , - 2936 , - 273 , - 994 , - 2091 , - 556 , - 2405 , - 1622 , - 1215 , - 1184 , - 1529 , - 2250 , - 339 , - 1812 , - 653 , - 2878 , - 2471 , - 2440 , - 2785 , - 498 , - 1595 , - 60 , - 1909 , - 1126 , - 719 , - 688 , - 1033 , - 1754 , - 2851 , - 1316 , - 157 , - 2382 , - 1975 , - 1944 , - 2289 , - 2 , - 1099 , - 2572 , - 1413 , - 630 , - 223 , - 192 , - 537 , - 1258 , - 2355 , - 820 , - 2669 , - 1886 , - 1479 , - 1448 , - 1793 , - 2514 , - 603 , - 2076 , - 917 , - 134 , - 2735 , - 2704 , - 41 , - 762 , - 1859 , - 324 , - 2173 , - 1390 , - 983 , - 952 , - 1297 , - 2018 , - 107 , - 1580 , - 421 , - 2646 , - 2239 , - 2208 , - 2553 , - 266 , - 1363 , - 2836 , - 1677 , - 894 , - 487 , - 456 , - 801 , - 1522 , - 2619 , - 1084 , - 2933 , - 2150 , - 1743 , - 1712 , - 2057 , - 2778 , - 867 , - 2340 , - 1181 , - 398 , - 2999 , - 2968 , - 305 , - 1026 , - 2123 , - 588 , - 2437 , - 1654 , - 1247 , - 1216 , - 1561 , - 2282 , - 371 , - 1844 , - 685 , - 2910 , - 2503 , - 2472 , - 2817 , - 530 , - 1627 , - 92 , - 1941 , - 1158 , - 751 , - 720 , - 1065 , - 1786 , - 2883 , - 1348 , - 189 , - 2414 , - 2007 , - 1976 , - 2321 , - 34 , - 1131 , - 2604 , - 1445 , - 662 , - 255 , - 224 , - 569 , - 1290 , - 2387 , - 852 , - 2701 , - 1918 , - 1511 , - 1480 , - 1825 , - 2546 , - 635 , - 2108 , - 949 , - 166 , - 2767 , - 2736 , - 73 , - 794 , - 1891 , - 356 , - 2205 , - 1422 , - 1015 , - 984 , - 1329 , - 2050 , - 139 , - 1612 , - 453 , - 2678 , - 2271 , - 2240 , - 2585 , - 298 , - 1395 , - 2868 , - 1709 , - 926 , - 519 , - 488 , - 833 , - 1554 , - 2651 , - 1116 , - 2965 , - 2182 , - 1775 , - 1744 , - 2089 , - 2810 , - 899 , - 2372 , - 1213 , - 430 , - 23 , - 3000 , - 337 , - 1058 , - 2155 , - 620 , - 2469 , - 1686 , - 1279 , - 1248 , - 1593 , - 2314 , - 403 , - 1876 , - 717 , - 2942 , - 2535 , - 2504 , - 2849 , - 562 , - 1659 , - 124 , - 1973 , - 1190 , - 783 , - 752 , - 1097 , - 1818 , - 2915 , - 1380 , - 221 , - 2446 , - 2039 , - 2008 , - 2353 , - 66 , - 1163 , - 2636 , - 1477 , - 694 , - 287 , - 256 , - 601 , - 1322 , - 2419 , - 884 , - 2733 , - 1950 , - 1543 , - 1512 , - 1857 , - 2578 , - 667 , - 2140 , - 981 , - 198 , - 2799 , - 2768 , - 105 , - 826 , - 1923 , - 388 , - 2237 , - 1454 , - 1047 , - 1016 , - 1361 , - 2082 , - 171 , - 1644 , - 485 , - 2710 , - 2303 , - 2272 , - 2617 , - 330 , - 1427 , - 2900 , - 1741 , - 958 , - 551 , - 520 , - 865 , - 1586 , - 2683 , - 1148 , - 2997 , - 2214 , - 1807 , - 1776 , - 2121 , - 2842 , - 931 , - 2404 , - 1245 , - 462 , - 55 , - 24 , - 369 , - 1090 , - 2187 , - 652 , - 2501 , - 1718 , - 1311 , - 1280 , - 1625 , - 2346 , - 435 , - 1908 , - 749 , - 2974 , - 2567 , - 2536 , - 2881 , - 594 , - 1691 , - 156 , - 2005 , - 1222 , - 815 , - 784 , - 1129 , - 1850 , - 2947 , - 1412 , - 253 , - 2478 , - 2071 , - 2040 , - 2385 , - 98 , - 1195 , - 2668 , - 1509 , - 726 , - 319 , - 288 , - 633 , - 1354 , - 2451 , - 916 , - 2765 , - 1982 , - 1575 , - 1544 , - 1889 , - 2610 , - 699 , - 2172 , - 1013 , - 230 , - 2831 , - 2800 , - 137 , - 858 , - 1955 , - 420 , - 2269 , - 1486 , - 1079 , - 1048 , - 1393 , - 2114 , - 203 , - 1676 , - 517 , - 2742 , - 2335 , - 2304 , - 2649 , - 362 , - 1459 , - 2932 , - 1773 , - 990 , - 583 , - 552 , - 897 , - 1618 , - 2715 , - 1180 , - 21 , - 2246 , - 1839 , - 1808 , - 2153 , - 2874 , - 963 , - 2436 , - 1277 , - 494 , - 87 , - 56 , - 401 , - 1122 , - 2219 , - 684 , - 2533 , - 1750 , - 1343 , - 1312 , - 1657 , - 2378 , - 467 , - 1940 , - 781 , - 3006 , - 2599 , - 2568 , - 2913 , - 626 , - 1723 , - 188 , - 2037 , - 1254 , - 847 , - 816 , - 1161 , - 1882 , - 2979 , - 1444 , - 285 , - 2510 , - 2103 , - 2072 , - 2417 , - 130 , - 1227 , - 2700 , - 1541 , - 758 , - 351 , - 320 , - 665 , - 1386 , - 2483 , - 948 , - 2797 , - 2014 , - 1607 , - 1576 , - 1921 , - 2642 , - 731 , - 2204 , - 1045 , - 262 , - 2863 , - 2832 , - 169 , - 890 , - 1987 , - 452 , - 2301 , - 1518 , - 1111 , - 1080 , - 1425 , - 2146 , - 235 , - 1708 , - 549 , - 2774 , - 2367 , - 2336 , - 2681 , - 394 , - 1491 , - 2964 , - 1805 , - 1022 , - 615 , - 584 , - 929 , - 1650 , - 2747 , - 1212 , - 53 , - 2278 , - 1871 , - 1840 , - 2185 , - 2906 , - 995 , - 2468 , - 1309 , - 526 , - 119 , - 88 , - 433 , - 1154 , - 2251 , - 716 , - 2565 , - 1782 , - 1375 , - 1344 , - 1689 , - 2410 , - 499 , - 1972 , - 813 , - 30 , - 2631 , - 2600 , - 2945 , - 658 , - 1755 , - 220 , - 2069 , - 1286 , - 879 , - 848 , - 1193 , - 1914 , - 3 , - 1476 , - 317 , - 2542 , - 2135 , - 2104 , - 2449 , - 162 , - 1259 , - 2732 , - 1573 , - 790 , - 383 , - 352 , - 697 , - 1418 , - 2515 , - 980 , - 2829 , - 2046 , - 1639 , - 1608 , - 1953 , - 2674 , - 763 , - 2236 , - 1077 , - 294 , - 2895 , - 2864 , - 201 , - 922 , - 2019 , - 484 , - 2333 , - 1550 , - 1143 , - 1112 , - 1457 , - 2178 , - 267 , - 1740 , - 581 , - 2806 , - 2399 , - 2368 , - 2713 , - 426 , - 1523 , - 2996 , - 1837 , - 1054 , - 647 , - 616 , - 961 , - 1682 , - 2779 , - 1244 , - 85 , - 2310 , - 1903 , - 1872 , - 2217 , - 2938 , - 1027 , - 2500 , - 1341 , - 558 , - 151 , - 120 , - 465 , - 1186 , - 2283 , - 748 , - 2597 , - 1814 , - 1407 , - 1376 , - 1721 , - 2442 , - 531 , - 2004 , - 845 , - 62 , - 2663 , - 2632 , - 2977 , - 690 , - 1787 , - 252 , - 2101 , - 1318 , - 911 , - 880 , - 1225 , - 1946 , - 35 , - 1508 , - 349 , - 2574 , - 2167 , - 2136 , - 2481 , - 194 , - 1291 , - 2764 , - 1605 , - 822 , - 415 , - 384 , - 729 , - 1450 , - 2547 , - 1012 , - 2861 , - 2078 , - 1671 , - 1640 , - 1985 , - 2706 , - 795 , - 2268 , - 1109 , - 326 , - 2927 , - 2896 , - 233 , - 954 , - 2051 , - 516 , - 2365 , - 1582 , - 1175 , - 1144 , - 1489 , - 2210 , - 299 , - 1772 , - 613 , - 2838 , - 2431 , - 2400 , - 2745 , - 458 , - 1555 , - 20 , - 1869 , - 1086 , - 679 , - 648 , - 993 , - 1714 , - 2811 , - 1276 , - 117 , - 2342 , - 1935 , - 1904 , - 2249 , - 2970 , - 1059 , - 2532 , - 1373 , - 590 , - 183 , - 152 , - 497 , - 1218 , - 2315 , - 780 , - 2629 , - 1846 , - 1439 , - 1408 , - 1753 , - 2474 , - 563 , - 2036 , - 877 , - 94 , - 2695 , - 2664 , - 1 , - 722 , - 1819 , - 284 , - 2133 , - 1350 , - 943 , - 912 , - 1257 , - 1978 , - 67 , - 1540 , - 381 , - 2606 , - 2199 , - 2168 , - 2513 , - 226 , - 1323 , - 2796 , - 1637 , - 854 , - 447 , - 416 , - 761 , - 1482 , - 2579 , - 1044 , - 2893 , - 2110 , - 1703 , - 1672 , - 2017 , - 2738 , - 827 , - 2300 , - 1141 , - 358 , - 2959 , - 2928 , - 265 , - 986 , - 2083 , - 548 , - 2397 , - 1614 , - 1207 , - 1176 , - 1521 , - 2242 , - 331 , - 1804 , - 645 , - 2870 , - 2463 , - 2432 , - 2777 , - 490 , - 1587 , - 52 , - 1901 , - 1118 , - 711 , - 680 , - 1025 , - 1746 , - 2843 , - 1308 , - 149 , - 2374 , - 1967 , - 1936 , - 2281 , - 3002 , - 1091 , - 2564 , - 1405 , - 622 , - 215 , - 184 , - 529 , - 1250 , - 2347 , - 812 , - 2661 , - 1878 , - 1471 , - 1440 , - 1785 , - 2506 , - 595 , - 2068 , - 909 , - 126 , - 2727 , - 2696 , - 33 , - 754 , - 1851 , - 316 , - 2165 , - 1382 , - 975 , - 944 , - 1289 , - 2010 , - 99 , - 1572 , - 413 , - 2638 , - 2231 , - 2200 , - 2545 , - 258 , - 1355 , - 2828 , - 1669 , - 886 , - 479 , - 448 , - 793 , - 1514 , - 2611 , - 1076 , - 2925 , - 2142 , - 1735 , - 1704 , - 2049 , - 2770 , - 859 , - 2332 , - 1173 , - 390 , - 2991 , - 2960 , - 297 , - 1018 , - 2115 , - 580 , - 2429 , - 1646 , - 1239 , - 1208 , - 1553 , - 2274 , - 363 , - 1836 , - 677 , - 2902 , - 2495 , - 2464 , - 2809 , - 522 , - 1619 , - 84 , - 1933 , - 1150 , - 743 , - 712 , - 1057 , - 1778 , - 2875 , - 1340 , - 181 , - 2406 , - 1999 , - 1968 , - 2313 , - 26 , - 1123 , - 2596 , - 1437 , - 654 , - 247 , - 216 , - 561 , - 1282 , - 2379 , - 844 , - 2693 , - 1910 , - 1503 , - 1472 , - 1817 , - 2538 , - 627 , - 2100 , - 941 , - 158 , - 2759 , - 2728 , - 65 , - 786 , - 1883 , - 348 , - 2197 , - 1414 , - 1007 , - 976 , - 1321 , - 2042 , - 131 , - 1604 , - 445 , - 2670 , - 2263 , - 2232 , - 2577 , - 290 , - 1387 , - 2860 , - 1701 , - 918 , - 511 , - 480 , - 825 , - 1546 , - 2643 , - 1108 , - 2957 , - 2174 , - 1767 , - 1736 , - 2081 , - 2802 , - 891 , - 2364 , - 1205 , - 422 , - 15 , - 2992 , - 329 , - 1050 , - 2147 , - 612 , - 2461 , - 1678 , - 1271 , - 1240 , - 1585 , - 2306 , - 395 , - 1868 , - 709 , - 2934 , - 2527 , - 2496 , - 2841 , - 554 , - 1651 , - 116 , - 1965 , - 1182 , - 775 , - 744 , - 1089 , - 1810 , - 2907 , - 1372 , - 213 , - 2438 , - 2031 , - 2000 , - 2345 , - 58 , - 1155 , - 2628 , - 1469 , - 686 , - 279 , - 248 , - 593 , - 1314 , - 2411 , - 876 , - 2725 , - 1942 , - 1535 , - 1504 , - 1849 , - 2570 , - 659 , - 2132 , - 973 , - 190 , - 2791 , - 2760 , - 97 , - 818 , - 1915 , - 380 , - 2229 , - 1446 , - 1039 , - 1008 , - 1353 , - 2074 , - 163 , - 1636 , - 477 , - 2702 , - 2295 , - 2264 , - 2609 , - 322 , - 1419 , - 2892 , - 1733 , - 950 , - 543 , - 512 , - 857 , - 1578 , - 2675 , - 1140 , - 2989 , - 2206 , - 1799 , - 1768 , - 2113 , - 2834 , - 923 , - 2396 , - 1237 , - 454 , - 47 , - 16 , - 361 , - 1082 , - 2179 , - 644 , - 2493 , - 1710 , - 1303 , - 1272 , - 1617 , - 2338 , - 427 , - 1900 , - 741 , - 2966 , - 2559 , - 2528 , - 2873 , - 586 , - 1683 , - 148 , - 1997 , - 1214 , - 807 , - 776 , - 1121 , - 1842 , - 2939 , - 1404 , - 245 , - 2470 , - 2063 , - 2032 , - 2377 , - 90 , - 1187 , - 2660 , - 1501 , - 718 , - 311 , - 280 , - 625 , - 1346 , - 2443 , - 908 , - 2757 , - 1974 , - 1567 , - 1536 , - 1881 , - 2602 , - 691 , - 2164 , - 1005 , - 222 , - 2823 , - 2792 , - 129 , - 850 , - 1947 , - 412 , - 2261 , - 1478 , - 1071 , - 1040 , - 1385 , - 2106 , - 195 , - 1668 , - 509 , - 2734 , - 2327 , - 2296 , - 2641 , - 354 , - 1451 , - 2924 , - 1765 , - 982 , - 575 , - 544 , - 889 , - 1610 , - 2707 , - 1172 , - 13 , - 2238 , - 1831 , - 1800 , - 2145 , - 2866 , - 955 , - 2428 , - 1269 , - 486 , - 79 , - 48 , - 393 , - 1114 , - 2211 , - 676 , - 2525 , - 1742 , - 1335 , - 1304 , - 1649 , - 2370 , - 459 , - 1932 , - 773 , - 2998 , - 2591 , - 2560 , - 2905 , - 618 , - 1715 , - 180 , - 2029 , - 1246 , - 839 , - 808 , - 1153 , - 1874 , - 2971 , - 1436 , - 277 , - 2502 , - 2095 , - 2064 , - 2409 , - 122 , - 1219 , - 2692 , - 1533 , - 750 , - 343 , - 312 , - 657 , - 1378 , - 2475 , - 940 , - 2789 , - 2006 , - 1599 , - 1568 , - 1913 , - 2634 , - 723 , - 2196 , - 1037 , - 254 , - 2855 , - 2824 , - 161 , - 882 , - 1979 , - 444 , - 2293 , - 1510 , - 1103 , - 1072 , - 1417 , - 2138 , - 227 , - 1700 , - 541 , - 2766 , - 2359 , - 2328 , - 2673 , - 386 , - 1483 , - 2956 , - 1797 , - 1014 , - 607 , - 576 , - 921 , - 1642 , - 2739 , - 1204 , - 45 , - 2270 , - 1863 , - 1832 , - 2177 , - 2898 , - 987 , - 2460 , - 1301 , - 518 , - 111 , - 80 , - 425 , - 1146 , - 2243 , - 708 , - 2557 , - 1774 , - 1367 , - 1336 , - 1681 , - 2402 , - 491 , - 1964 , - 805 , - 22 , - 2623 , - 2592 , - 2937 , - 650 , - 1747 , - 212 , - 2061 , - 1278 , - 871 , - 840 , - 1185 , - 1906 , - 3003 , - 1468 , - 309 , - 2534 , - 2127 , - 2096 , - 2441 , - 154 , - 1251 , - 2724 , - 1565 , - 782 , - 375 , - 344 , - 689 , - 1410 , - 2507 , - 972 , - 2821 , - 2038 , - 1631 , - 1600 , - 1945 , - 2666 , - 755 , - 2228 , - 1069 , - 286 , - 2887 , - 2856 , - 193 , - 914 , - 2011 , - 476 , - 2325 , - 1542 , - 1135 , - 1104 , - 1449 , - 2170 , - 259 , - 1732 , - 573 , - 2798 , - 2391 , - 2360 , - 2705 , - 418 , - 1515 , - 2988 , - 1829 , - 1046 , - 639 , - 608 , - 953 , - 1674 , - 2771 , - 1236 , - 77 , - 2302 , - 1895 , - 1864 , - 2209 , - 2930 , - 1019 , - 2492 , - 1333 , - 550 , - 143 , - 112 , - 457 , - 1178 , - 2275 , - 740 , - 2589 , - 1806 , - 1399 , - 1368 , - 1713 , - 2434 , - 523 , - 1996 , - 837 , - 54 , - 2655 , - 2624 , - 2969 , - 682 , - 1779 , - 244 , - 2093 , - 1310 , - 903 , - 872 , - 1217 , - 1938 , - 27 , - 1500 , - 341 , - 2566 , - 2159 , - 2128 , - 2473 , - 186 , - 1283 , - 2756 , - 1597 , - 814 , - 407 , - 376 , - 721 , - 1442 , - 2539 , - 1004 , - 2853 , - 2070 , - 1663 , - 1632 , - 1977 , - 2698 , - 787 , - 2260 , - 1101 , - 318 , - 2919 , - 2888 , - 225 , - 946 , - 2043 , - 508 , - 2357 , - 1574 , - 1167 , - 1136 , - 1481 , - 2202 , - 291 , - 1764 , - 605 , - 2830 , - 2423 , - 2392 , - 2737 , - 450 , - 1547 , - 12 , - 1861 , - 1078 , - 671 , - 640 , - 985 , - 1706 , - 2803 , - 1268 , - 109 , - 2334 , - 1927 , - 1896 , - 2241 , - 2962 , - 1051 , - 2524 , - 1365 , - 582 , - 175 , - 144 , - 489 , - 1210 , - 2307 , - 772 , - 2621 , - 1838 , - 1431 , - 1400 , - 1745 , - 2466 , - 555 , - 2028 , - 869 , - 86 , - 2687 , - 2656 , - 3001 , - 714 , - 1811 , - 276 , - 2125 , - 1342 , - 935 , - 904 , - 1249 , - 1970 , - 59 , - 1532 , - 373 , - 2598 , - 2191 , - 2160 , - 2505 , - 218 , - 1315 , - 2788 , - 1629 , - 846 , - 439 , - 408 , - 753 , - 1474 , - 2571 , - 1036 , - 2885 , - 2102 , - 1695 , - 1664 , - 2009 , - 2730 , - 819 , - 2292 , - 1133 , - 350 , - 2951 , - 2920 , - 257 , - 978 , - 2075 , - 540 , - 2389 , - 1606 , - 1199 , - 1168 , - 1513 , - 2234 , - 323 , - 1796 , - 637 , - 2862 , - 2455 , - 2424 , - 2769 , - 482 , - 1579 , - 44 , - 1893 , - 1110 , - 703 , - 672 , - 1017 , - 1738 , - 2835 , - 1300 , - 141 , - 2366 , - 1959 , - 1928 , - 2273 , - 2994 , - 1083 , - 2556 , - 1397 , - 614 , - 207 , - 176 , - 521 , - 1242 , - 2339 , - 804 , - 2653 , - 1870 , - 1463 , - 1432 , - 1777 , - 2498 , - 587 , - 2060 , - 901 , - 118 , - 2719 , - 2688 , - 25 , - 746 , - 1843 , - 308 , - 2157 , - 1374 , - 967 , - 936 , - 1281 , - 2002 , - 91 , - 1564 , - 405 , - 2630 , - 2223 , - 2192 , - 2537 , - 250 , - 1347 , - 2820 , - 1661 , - 878 , - 471 , - 440 , - 785 , - 1506 , - 2603 , - 1068 , - 2917 , - 2134 , - 1727 , - 1696 , - 2041 , - 2762 , - 851 , - 2324 , - 1165 , - 382 , - 2983 , - 2952 , - 289 , - 1010 , - 2107 , - 572 , - 2421 , - 1638 , - 1231 , - 1200 , - 1545 , - 2266 , - 355 , - 1828 , - 669 , - 2894 , - 2487 , - 2456 , - 2801 , - 514 , - 1611 , - 76 , - 1925 , - 1142 , - 735 , - 704 , - 1049 , - 1770 , - 2867 , - 1332 , - 173 , - 2398 , - 1991 , - 1960 , - 2305 , - 18 , - 1115 , - 2588 , - 1429 , - 646 , - 239 , - 208 , - 553 , - 1274 , - 2371 , - 836 , - 2685 , - 1902 , - 1495 , - 1464 , - 1809 , - 2530 , - 619 , - 2092 , - 933 , - 150 , - 2751 , - 2720 , - 57 , - 778 , - 1875 , - 340 , - 2189 , - 1406 , - 999 , - 968 , - 1313 , - 2034 , - 123 , - 1596 , - 437 , - 2662 , - 2255 , - 2224 , - 2569 , - 282 , - 1379 , - 2852 , - 1693 , - 910 , - 503 , - 472 , - 817 , - 1538 , - 2635 , - 1100 , - 2949 , - 2166 , - 1759 , - 1728 , - 2073 , - 2794 , - 883 , - 2356 , - 1197 , - 414 , - 7 , - 2984 , - 321 , - 1042 , - 2139 , - 604 , - 2453 , - 1670 , - 1263 , - 1232 , - 1577 , - 2298 , - 387 , - 1860 , - 701 , - 2926 , - 2519 , - 2488 , - 2833 , - 546 , - 1643 , - 108 , - 1957 , - 1174 , - 767 , - 736 , - 1081 , - 1802 , - 2899 , - 1364 , - 205 , - 2430 , - 2023 , - 1992 , - 2337 , - 50 , - 1147 , - 2620 , - 1461 , - 678 , - 271 , - 240 , - 585 , - 1306 , - 2403 , - 868 , - 2717 , - 1934 , - 1527 , - 1496 , - 1841 , - 2562 , - 651 , - 2124 , - 965 , - 182 , - 2783 , - 2752 , - 89 , - 810 , - 1907 , - 372 , - 2221 , - 1438 , - 1031 , - 1000 , - 1345 , - 2066 , - 155 , - 1628 , - 469 , - 2694 , - 2287 , - 2256 , - 2601 , - 314 , - 1411 , - 2884 , - 1725 , - 942 , - 535 , - 504 , - 849 , - 1570 , - 2667 , - 1132 , - 2981 , - 2198 , - 1791 , - 1760 , - 2105 , - 2826 , - 915 , - 2388 , - 1229 , - 446 , - 39 , - 8 , - 353 , - 1074 , - 2171 , - 636 , - 2485 , - 1702 , - 1295 , - 1264 , - 1609 , - 2330 , - 419 , - 1892 , - 733 , - 2958 , - 2551 , - 2520 , - 2865 , - 578 , - 1675 , - 140 , - 1989 , - 1206 , - 799 , - 768 , - 1113 , - 1834 , - 2931 , - 1396 , - 237 , - 2462 , - 2055 , - 2024 , - 2369 , - 82 , - 1179 , - 2652 , - 1493 , - 710 , - 303 , - 272 , - 617 , - 1338 , - 2435 , - 900 , - 2749 , - 1966 , - 1559 , - 1528 , - 1873 , - 2594 , - 683 , - 2156 , - 997 , - 214 , - 2815 , - 2784 , - 121 , - 842 , - 1939 , - 404 , - 2253 , - 1470 , - 1063 , - 1032 , - 1377 , - 2098 , - 187 , - 1660 , - 501 , - 2726 , - 2319 , - 2288 , - 2633 , - 346 , - 1443 , - 2916 , - 1757 , - 974 , - 567 , - 536 , - 881 , - 1602 , - 2699 , - 1164 , - 5 , - 2230 , - 1823 , - 1792 , - 2137 , - 2858 , - 947 , - 2420 , - 1261 , - 478 , - 71 , - 40 , - 385 , - 1106 , - 2203 , - 668 , - 2517 , - 1734 , - 1327 , - 1296 , - 1641 , - 2362 , - 451 , - 1924 , - 765 , - 2990 , - 2583 , - 2552 , - 2897 , - 610 , - 1707 , - 172 , - 2021 , - 1238 , - 831 , - 800 , - 1145 , - 1866 , - 2963 , - 1428 , - 269 , - 2494 , - 2087 , - 2056 , - 2401 , - 114 , - 1211 , - 2684 , - 1525 , - 742 , - 335 , - 304 , - 649 , - 1370 , - 2467 , - 932 , - 2781 , - 1998 , - 1591 , - 1560 , - 1905 , - 2626 , - 715 , - 2188 , - 1029 , - 246 , - 2847 , - 2816 , - 153 , - 874 , - 1971 , - 436 , - 2285 , - 1502 , - 1095 , - 1064 , - 1409 , - 2130 , - 219 , - 1692 , - 533 , - 2758 , - 2351 , - 2320 , - 2665 , - 378 , - 1475 , - 2948 , - 1789 , - 1006 , - 599 , - 568 , - 913 , - 1634 , - 2731 , - 1196 , - 37 , - 2262 , - 1855 , - 1824 , - 2169 , - 2890 , - 979 , - 2452 , - 1293 , - 510 , - 103 , - 72 , - 417 , - 1138 , - 2235 , - 700 , - 2549 , - 1766 , - 1359 , - 1328 , - 1673 , - 2394 , - 483 , - 1956 , - 797 , - 14 , - 2615 , - 2584 , - 2929 , - 642 , - 1739 , - 204 , - 2053 , - 1270 , - 863 , - 832 , - 1177 , - 1898 , - 2995 , - 1460 , - 301 , - 2526 , - 2119 , - 2088 , - 2433 , - 146 , - 1243 , - 2716 , - 1557 , - 774 , - 367 , - 336 , - 681 , - 1402 , - 2499 , - 964 , - 2813 , - 2030 , - 1623 , - 1592 , - 1937 , - 2658 , - 747 , - 2220 , - 1061 , - 278 , - 2879 , - 2848 , - 185 , - 906 , - 2003 , - 468 , - 2317 , - 1534 , - 1127 , - 1096 , - 1441 , - 2162 , - 251 , - 1724 , - 565 , - 2790 , - 2383 , - 2352 , - 2697 , - 410 , - 1507 , - 2980 , - 1821 , - 1038 , - 631 , - 600 , - 945 , - 1666 , - 2763 , - 1228 , - 69 , - 2294 , - 1887 , - 1856 , - 2201 , - 2922 , - 1011 , - 2484 , - 1325 , - 542 , - 135 , - 104 , - 449 , - 1170 , - 2267 , - 732 , - 2581 , - 1798 , - 1391 , - 1360 , - 1705 , - 2426 , - 515 , - 1988 , - 829 , - 46 , - 2647 , - 2616 , - 2961 , - 674 , - 1771 , - 236 , - 2085 , - 1302 , - 895 , - 864 , - 1209 , - 1930 , - 19 , - 1492 , - 333 , - 2558 , - 2151 , - 2120 , - 2465 , - 178 , - 1275 , - 2748 , - 1589 , - 806 , - 399 , - 368 , - 713 , - 1434 , - 2531 , - 996 , - 2845 , - 2062 , - 1655 , - 1624 , - 1969 , - 2690 , - 779 , - 2252 , - 1093 , - 310 , - 2911 , - 2880 , - 217 , - 938 , - 2035 , - 500 , - 2349 , - 1566 , - 1159 , - 1128 , - 1473 , - 2194 , - 283 , - 1756 , - 597 , - 2822 , - 2415 , - 2384 , - 2729 , - 442 , - 1539 , - 4 , - 1853 , - 1070 , - 663 , - 632 , - 977 , - 1698 , - 2795 , - 1260 , - 101 , - 2326 , - 1919 , - 1888 , - 2233 , - 2954 , - 1043 , - 2516 , - 1357 , - 574 , - 167 , - 136 , - 481 , - 1202 , - 2299 , - 764 , - 2613 , - 1830 , - 1423 , - 1392 , - 1737 , - 2458 , - 547 , - 2020 , - 861 , - 78 , - 2679 , - 2648 , - 2993 , - 706 , - 1803 , - 268 , - 2117 , - 1334 , - 927 , - 896 , - 1241 , - 1962 , - 51 , - 1524 , - 365 , - 2590 , - 2183 , - 2152 , - 2497 , - 210 , - 1307 , - 2780 , - 1621 , - 838 , - 431 , - 400 , - 745 , - 1466 , - 2563 , - 1028 , - 2877 , - 2094 , - 1687 , - 1656 , - 2001 , - 2722 , - 811 , - 2284 , - 1125 , - 342 , - 2943 , - 2912 , - 249 , - 970 , - 2067 , - 532 , - 2381 , - 1598 , - 1191 , - 1160 , - 1505 , - 2226 , - 315 , - 1788 , - 629 , - 2854 , - 2447 , - 2416 , - 2761 , - 474 , - 1571 , - 36 , - 1885 , - 1102 , - 695 , - 664 , - 1009 , - 1730 , - 2827 , - 1292 , - 133 , - 2358 , - 1951 , - 1920 , - 2265 , - 2986 , - 1075 , - 2548 , - 1389 , - 606 , - 199 , - 168 , - 513 , - 1234 , - 2331 , - 796 , - 2645 , - 1862 , - 1455 , - 1424 , - 1769 , - 2490 , - 579 , - 2052 , - 893 , - 110 , - 2711 , - 2680 , - 17 , - 738 , - 1835 , - 300 , - 2149 , - 1366 , - 959 , - 928 , - 1273 , - 1994 , - 83 , - 1556 , - 397 , - 2622 , - 2215 , - 2184 , - 2529 , - 242 , - 1339 , - 2812 , - 1653 , - 870 , - 463 , - 432 , - 777 , - 1498 , - 2595 , - 1060 , - 2909 , - 2126 , - 1719 , - 1688 , - 2033 , - 2754 , - 843 , - 2316 , - 1157 , - 374 , - 2975 , - 2944 , - 281 , - 1002 , - 2099 , - 564 , - 2413 , - 1630 , - 1223 , - 1192 , - 1537 , - 2258 , - 347 , - 1820 , - 661 , - 2886 , - 2479 , - 2448 , - 2793 , - 506 , - 1603 , - 68 , - 1917 , - 1134 , - 727 , - 696 , - 1041 , - 1762 , - 2859 , - 1324 , - 165 , - 2390 , - 1983 , - 1952 , - 2297 , - 10 , - 1107 , - 2580 , - 1421 , - 638 , - 231 , - 200 , - 545 , - 1266 , - 2363 , - 828 , - 2677 , - 1894 , - 1487 , - 1456 , - 1801 , - 2522 , - 611 , - 2084 , - 925 , - 142 , - 2743 , - 2712 , - 49 , - 770 , - 1867 , - 332 , - 2181 , - 1398 , - 991 , - 960 , - 1305 , - 2026 , - 115 , - 1588 , - 429 , - 2654 , - 2247 , - 2216 , - 2561 , - 274 , - 1371 , - 2844 , - 1685 , - 902 , - 495 , - 464 , - 809 , - 1530 , - 2627 , - 1092 , - 2941 , - 2158 , - 1751 , - 1720 , - 2065 , - 2786 , - 875 , - 2348 , - 1189 , - 406 , - 3007 , - 2976 , - 313 , - 1034 , - 2131 , - 596 , - 2445 , - 1662 , - 1255 , - 1224 , - 1569 , - 2290 , - 379 , - 1852 , - 693 , - 2918 , - 2511 , - 2480 , - 2825 , - 538 , - 1635 , - 100 , - 1949 , - 1166 , - 759 , - 728 , - 1073 , - 1794 , - 2891 , - 1356 , - 197 , - 2422 , - 2015 , - 1984 , - 2329 , - 42 , - 1139 , - 2612 , - 1453 , - 670 , - 263 , - 232 , - 577 , - 1298 , - 2395 , - 860 , - 2709 , - 1926 , - 1519 , - 1488 , - 1833 , - 2554 , - 643 , - 2116 , - 957 , - 174 , - 2775 , - 2744 , - 81 , - 802 , - 1899 , - 364 , - 2213 , - 1430 , - 1023 , - 992 , - 1337 , - 2058 , - 147 , - 1620 , - 461 , - 2686 , - 2279 , - 2248 , - 2593 , - 306 , - 1403 , - 2876 , - 1717 , - 934 , - 527 , - 496 , - 841 , - 1562 , - 2659 , - 1124 , - 2973 , - 2190 , - 1783 , - 1752 , - 2097 , - 2818 , - 907 , - 2380 , - 1221 , - 438 , - 31 , - 0 , - 143 , - 478 , - 1005 , - 1724 , - 2635 , - 666 , - 1961 , - 376 , - 2055 , - 854 , - 2917 , - 2100 , - 1475 , - 1042 , - 801 , - 752 , - 895 , - 1230 , - 1757 , - 2476 , - 315 , - 1418 , - 2713 , - 1128 , - 2807 , - 1606 , - 597 , - 2852 , - 2227 , - 1794 , - 1553 , - 1504 , - 1647 , - 1982 , - 2509 , - 156 , - 1067 , - 2170 , - 393 , - 1880 , - 487 , - 2358 , - 1349 , - 532 , - 2979 , - 2546 , - 2305 , - 2256 , - 2399 , - 2734 , - 189 , - 908 , - 1819 , - 2922 , - 1145 , - 2632 , - 1239 , - 38 , - 2101 , - 1284 , - 659 , - 226 , - 3057 , - 3008 , - 79 , - 414 , - 941 , - 1660 , - 2571 , - 602 , - 1897 , - 312 , - 1991 , - 790 , - 2853 , - 2036 , - 1411 , - 978 , - 737 , - 688 , - 831 , - 1166 , - 1693 , - 2412 , - 251 , - 1354 , - 2649 , - 1064 , - 2743 , - 1542 , - 533 , - 2788 , - 2163 , - 1730 , - 1489 , - 1440 , - 1583 , - 1918 , - 2445 , - 92 , - 1003 , - 2106 , - 329 , - 1816 , - 423 , - 2294 , - 1285 , - 468 , - 2915 , - 2482 , - 2241 , - 2192 , - 2335 , - 2670 , - 125 , - 844 , - 1755 , - 2858 , - 1081 , - 2568 , - 1175 , - 3046 , - 2037 , - 1220 , - 595 , - 162 , - 2993 , - 2944 , - 15 , - 350 , - 877 , - 1596 , - 2507 , - 538 , - 1833 , - 248 , - 1927 , - 726 , - 2789 , - 1972 , - 1347 , - 914 , - 673 , - 624 , - 767 , - 1102 , - 1629 , - 2348 , - 187 , - 1290 , - 2585 , - 1000 , - 2679 , - 1478 , - 469 , - 2724 , - 2099 , - 1666 , - 1425 , - 1376 , - 1519 , - 1854 , - 2381 , - 28 , - 939 , - 2042 , - 265 , - 1752 , - 359 , - 2230 , - 1221 , - 404 , - 2851 , - 2418 , - 2177 , - 2128 , - 2271 , - 2606 , - 61 , - 780 , - 1691 , - 2794 , - 1017 , - 2504 , - 1111 , - 2982 , - 1973 , - 1156 , - 531 , - 98 , - 2929 , - 2880 , - 3023 , - 286 , - 813 , - 1532 , - 2443 , - 474 , - 1769 , - 184 , - 1863 , - 662 , - 2725 , - 1908 , - 1283 , - 850 , - 609 , - 560 , - 703 , - 1038 , - 1565 , - 2284 , - 123 , - 1226 , - 2521 , - 936 , - 2615 , - 1414 , - 405 , - 2660 , - 2035 , - 1602 , - 1361 , - 1312 , - 1455 , - 1790 , - 2317 , - 3036 , - 875 , - 1978 , - 201 , - 1688 , - 295 , - 2166 , - 1157 , - 340 , - 2787 , - 2354 , - 2113 , - 2064 , - 2207 , - 2542 , - 3069 , - 716 , - 1627 , - 2730 , - 953 , - 2440 , - 1047 , - 2918 , - 1909 , - 1092 , - 467 , - 34 , - 2865 , - 2816 , - 2959 , - 222 , - 749 , - 1468 , - 2379 , - 410 , - 1705 , - 120 , - 1799 , - 598 , - 2661 , - 1844 , - 1219 , - 786 , - 545 , - 496 , - 639 , - 974 , - 1501 , - 2220 , - 59 , - 1162 , - 2457 , - 872 , - 2551 , - 1350 , - 341 , - 2596 , - 1971 , - 1538 , - 1297 , - 1248 , - 1391 , - 1726 , - 2253 , - 2972 , - 811 , - 1914 , - 137 , - 1624 , - 231 , - 2102 , - 1093 , - 276 , - 2723 , - 2290 , - 2049 , - 2000 , - 2143 , - 2478 , - 3005 , - 652 , - 1563 , - 2666 , - 889 , - 2376 , - 983 , - 2854 , - 1845 , - 1028 , - 403 , - 3042 , - 2801 , - 2752 , - 2895 , - 158 , - 685 , - 1404 , - 2315 , - 346 , - 1641 , - 56 , - 1735 , - 534 , - 2597 , - 1780 , - 1155 , - 722 , - 481 , - 432 , - 575 , - 910 , - 1437 , - 2156 , - 3067 , - 1098 , - 2393 , - 808 , - 2487 , - 1286 , - 277 , - 2532 , - 1907 , - 1474 , - 1233 , - 1184 , - 1327 , - 1662 , - 2189 , - 2908 , - 747 , - 1850 , - 73 , - 1560 , - 167 , - 2038 , - 1029 , - 212 , - 2659 , - 2226 , - 1985 , - 1936 , - 2079 , - 2414 , - 2941 , - 588 , - 1499 , - 2602 , - 825 , - 2312 , - 919 , - 2790 , - 1781 , - 964 , - 339 , - 2978 , - 2737 , - 2688 , - 2831 , - 94 , - 621 , - 1340 , - 2251 , - 282 , - 1577 , - 3064 , - 1671 , - 470 , - 2533 , - 1716 , - 1091 , - 658 , - 417 , - 368 , - 511 , - 846 , - 1373 , - 2092 , - 3003 , - 1034 , - 2329 , - 744 , - 2423 , - 1222 , - 213 , - 2468 , - 1843 , - 1410 , - 1169 , - 1120 , - 1263 , - 1598 , - 2125 , - 2844 , - 683 , - 1786 , - 9 , - 1496 , - 103 , - 1974 , - 965 , - 148 , - 2595 , - 2162 , - 1921 , - 1872 , - 2015 , - 2350 , - 2877 , - 524 , - 1435 , - 2538 , - 761 , - 2248 , - 855 , - 2726 , - 1717 , - 900 , - 275 , - 2914 , - 2673 , - 2624 , - 2767 , - 30 , - 557 , - 1276 , - 2187 , - 218 , - 1513 , - 3000 , - 1607 , - 406 , - 2469 , - 1652 , - 1027 , - 594 , - 353 , - 304 , - 447 , - 782 , - 1309 , - 2028 , - 2939 , - 970 , - 2265 , - 680 , - 2359 , - 1158 , - 149 , - 2404 , - 1779 , - 1346 , - 1105 , - 1056 , - 1199 , - 1534 , - 2061 , - 2780 , - 619 , - 1722 , - 3017 , - 1432 , - 39 , - 1910 , - 901 , - 84 , - 2531 , - 2098 , - 1857 , - 1808 , - 1951 , - 2286 , - 2813 , - 460 , - 1371 , - 2474 , - 697 , - 2184 , - 791 , - 2662 , - 1653 , - 836 , - 211 , - 2850 , - 2609 , - 2560 , - 2703 , - 3038 , - 493 , - 1212 , - 2123 , - 154 , - 1449 , - 2936 , - 1543 , - 342 , - 2405 , - 1588 , - 963 , - 530 , - 289 , - 240 , - 383 , - 718 , - 1245 , - 1964 , - 2875 , - 906 , - 2201 , - 616 , - 2295 , - 1094 , - 85 , - 2340 , - 1715 , - 1282 , - 1041 , - 992 , - 1135 , - 1470 , - 1997 , - 2716 , - 555 , - 1658 , - 2953 , - 1368 , - 3047 , - 1846 , - 837 , - 20 , - 2467 , - 2034 , - 1793 , - 1744 , - 1887 , - 2222 , - 2749 , - 396 , - 1307 , - 2410 , - 633 , - 2120 , - 727 , - 2598 , - 1589 , - 772 , - 147 , - 2786 , - 2545 , - 2496 , - 2639 , - 2974 , - 429 , - 1148 , - 2059 , - 90 , - 1385 , - 2872 , - 1479 , - 278 , - 2341 , - 1524 , - 899 , - 466 , - 225 , - 176 , - 319 , - 654 , - 1181 , - 1900 , - 2811 , - 842 , - 2137 , - 552 , - 2231 , - 1030 , - 21 , - 2276 , - 1651 , - 1218 , - 977 , - 928 , - 1071 , - 1406 , - 1933 , - 2652 , - 491 , - 1594 , - 2889 , - 1304 , - 2983 , - 1782 , - 773 , - 3028 , - 2403 , - 1970 , - 1729 , - 1680 , - 1823 , - 2158 , - 2685 , - 332 , - 1243 , - 2346 , - 569 , - 2056 , - 663 , - 2534 , - 1525 , - 708 , - 83 , - 2722 , - 2481 , - 2432 , - 2575 , - 2910 , - 365 , - 1084 , - 1995 , - 26 , - 1321 , - 2808 , - 1415 , - 214 , - 2277 , - 1460 , - 835 , - 402 , - 161 , - 112 , - 255 , - 590 , - 1117 , - 1836 , - 2747 , - 778 , - 2073 , - 488 , - 2167 , - 966 , - 3029 , - 2212 , - 1587 , - 1154 , - 913 , - 864 , - 1007 , - 1342 , - 1869 , - 2588 , - 427 , - 1530 , - 2825 , - 1240 , - 2919 , - 1718 , - 709 , - 2964 , - 2339 , - 1906 , - 1665 , - 1616 , - 1759 , - 2094 , - 2621 , - 268 , - 1179 , - 2282 , - 505 , - 1992 , - 599 , - 2470 , - 1461 , - 644 , - 19 , - 2658 , - 2417 , - 2368 , - 2511 , - 2846 , - 301 , - 1020 , - 1931 , - 3034 , - 1257 , - 2744 , - 1351 , - 150 , - 2213 , - 1396 , - 771 , - 338 , - 97 , - 48 , - 191 , - 526 , - 1053 , - 1772 , - 2683 , - 714 , - 2009 , - 424 , - 2103 , - 902 , - 2965 , - 2148 , - 1523 , - 1090 , - 849 , - 800 , - 943 , - 1278 , - 1805 , - 2524 , - 363 , - 1466 , - 2761 , - 1176 , - 2855 , - 1654 , - 645 , - 2900 , - 2275 , - 1842 , - 1601 , - 1552 , - 1695 , - 2030 , - 2557 , - 204 , - 1115 , - 2218 , - 441 , - 1928 , - 535 , - 2406 , - 1397 , - 580 , - 3027 , - 2594 , - 2353 , - 2304 , - 2447 , - 2782 , - 237 , - 956 , - 1867 , - 2970 , - 1193 , - 2680 , - 1287 , - 86 , - 2149 , - 1332 , - 707 , - 274 , - 33 , - 3056 , - 127 , - 462 , - 989 , - 1708 , - 2619 , - 650 , - 1945 , - 360 , - 2039 , - 838 , - 2901 , - 2084 , - 1459 , - 1026 , - 785 , - 736 , - 879 , - 1214 , - 1741 , - 2460 , - 299 , - 1402 , - 2697 , - 1112 , - 2791 , - 1590 , - 581 , - 2836 , - 2211 , - 1778 , - 1537 , - 1488 , - 1631 , - 1966 , - 2493 , - 140 , - 1051 , - 2154 , - 377 , - 1864 , - 471 , - 2342 , - 1333 , - 516 , - 2963 , - 2530 , - 2289 , - 2240 , - 2383 , - 2718 , - 173 , - 892 , - 1803 , - 2906 , - 1129 , - 2616 , - 1223 , - 22 , - 2085 , - 1268 , - 643 , - 210 , - 3041 , - 2992 , - 63 , - 398 , - 925 , - 1644 , - 2555 , - 586 , - 1881 , - 296 , - 1975 , - 774 , - 2837 , - 2020 , - 1395 , - 962 , - 721 , - 672 , - 815 , - 1150 , - 1677 , - 2396 , - 235 , - 1338 , - 2633 , - 1048 , - 2727 , - 1526 , - 517 , - 2772 , - 2147 , - 1714 , - 1473 , - 1424 , - 1567 , - 1902 , - 2429 , - 76 , - 987 , - 2090 , - 313 , - 1800 , - 407 , - 2278 , - 1269 , - 452 , - 2899 , - 2466 , - 2225 , - 2176 , - 2319 , - 2654 , - 109 , - 828 , - 1739 , - 2842 , - 1065 , - 2552 , - 1159 , - 3030 , - 2021 , - 1204 , - 579 , - 146 , - 2977 , - 2928 , - 3071 , - 334 , - 861 , - 1580 , - 2491 , - 522 , - 1817 , - 232 , - 1911 , - 710 , - 2773 , - 1956 , - 1331 , - 898 , - 657 , - 608 , - 751 , - 1086 , - 1613 , - 2332 , - 171 , - 1274 , - 2569 , - 984 , - 2663 , - 1462 , - 453 , - 2708 , - 2083 , - 1650 , - 1409 , - 1360 , - 1503 , - 1838 , - 2365 , - 12 , - 923 , - 2026 , - 249 , - 1736 , - 343 , - 2214 , - 1205 , - 388 , - 2835 , - 2402 , - 2161 , - 2112 , - 2255 , - 2590 , - 45 , - 764 , - 1675 , - 2778 , - 1001 , - 2488 , - 1095 , - 2966 , - 1957 , - 1140 , - 515 , - 82 , - 2913 , - 2864 , - 3007 , - 270 , - 797 , - 1516 , - 2427 , - 458 , - 1753 , - 168 , - 1847 , - 646 , - 2709 , - 1892 , - 1267 , - 834 , - 593 , - 544 , - 687 , - 1022 , - 1549 , - 2268 , - 107 , - 1210 , - 2505 , - 920 , - 2599 , - 1398 , - 389 , - 2644 , - 2019 , - 1586 , - 1345 , - 1296 , - 1439 , - 1774 , - 2301 , - 3020 , - 859 , - 1962 , - 185 , - 1672 , - 279 , - 2150 , - 1141 , - 324 , - 2771 , - 2338 , - 2097 , - 2048 , - 2191 , - 2526 , - 3053 , - 700 , - 1611 , - 2714 , - 937 , - 2424 , - 1031 , - 2902 , - 1893 , - 1076 , - 451 , - 18 , - 2849 , - 2800 , - 2943 , - 206 , - 733 , - 1452 , - 2363 , - 394 , - 1689 , - 104 , - 1783 , - 582 , - 2645 , - 1828 , - 1203 , - 770 , - 529 , - 480 , - 623 , - 958 , - 1485 , - 2204 , - 43 , - 1146 , - 2441 , - 856 , - 2535 , - 1334 , - 325 , - 2580 , - 1955 , - 1522 , - 1281 , - 1232 , - 1375 , - 1710 , - 2237 , - 2956 , - 795 , - 1898 , - 121 , - 1608 , - 215 , - 2086 , - 1077 , - 260 , - 2707 , - 2274 , - 2033 , - 1984 , - 2127 , - 2462 , - 2989 , - 636 , - 1547 , - 2650 , - 873 , - 2360 , - 967 , - 2838 , - 1829 , - 1012 , - 387 , - 3026 , - 2785 , - 2736 , - 2879 , - 142 , - 669 , - 1388 , - 2299 , - 330 , - 1625 , - 40 , - 1719 , - 518 , - 2581 , - 1764 , - 1139 , - 706 , - 465 , - 416 , - 559 , - 894 , - 1421 , - 2140 , - 3051 , - 1082 , - 2377 , - 792 , - 2471 , - 1270 , - 261 , - 2516 , - 1891 , - 1458 , - 1217 , - 1168 , - 1311 , - 1646 , - 2173 , - 2892 , - 731 , - 1834 , - 57 , - 1544 , - 151 , - 2022 , - 1013 , - 196 , - 2643 , - 2210 , - 1969 , - 1920 , - 2063 , - 2398 , - 2925 , - 572 , - 1483 , - 2586 , - 809 , - 2296 , - 903 , - 2774 , - 1765 , - 948 , - 323 , - 2962 , - 2721 , - 2672 , - 2815 , - 78 , - 605 , - 1324 , - 2235 , - 266 , - 1561 , - 3048 , - 1655 , - 454 , - 2517 , - 1700 , - 1075 , - 642 , - 401 , - 352 , - 495 , - 830 , - 1357 , - 2076 , - 2987 , - 1018 , - 2313 , - 728 , - 2407 , - 1206 , - 197 , - 2452 , - 1827 , - 1394 , - 1153 , - 1104 , - 1247 , - 1582 , - 2109 , - 2828 , - 667 , - 1770 , - 3065 , - 1480 , - 87 , - 1958 , - 949 , - 132 , - 2579 , - 2146 , - 1905 , - 1856 , - 1999 , - 2334 , - 2861 , - 508 , - 1419 , - 2522 , - 745 , - 2232 , - 839 , - 2710 , - 1701 , - 884 , - 259 , - 2898 , - 2657 , - 2608 , - 2751 , - 14 , - 541 , - 1260 , - 2171 , - 202 , - 1497 , - 2984 , - 1591 , - 390 , - 2453 , - 1636 , - 1011 , - 578 , - 337 , - 288 , - 431 , - 766 , - 1293 , - 2012 , - 2923 , - 954 , - 2249 , - 664 , - 2343 , - 1142 , - 133 , - 2388 , - 1763 , - 1330 , - 1089 , - 1040 , - 1183 , - 1518 , - 2045 , - 2764 , - 603 , - 1706 , - 3001 , - 1416 , - 23 , - 1894 , - 885 , - 68 , - 2515 , - 2082 , - 1841 , - 1792 , - 1935 , - 2270 , - 2797 , - 444 , - 1355 , - 2458 , - 681 , - 2168 , - 775 , - 2646 , - 1637 , - 820 , - 195 , - 2834 , - 2593 , - 2544 , - 2687 , - 3022 , - 477 , - 1196 , - 2107 , - 138 , - 1433 , - 2920 , - 1527 , - 326 , - 2389 , - 1572 , - 947 , - 514 , - 273 , - 224 , - 367 , - 702 , - 1229 , - 1948 , - 2859 , - 890 , - 2185 , - 600 , - 2279 , - 1078 , - 69 , - 2324 , - 1699 , - 1266 , - 1025 , - 976 , - 1119 , - 1454 , - 1981 , - 2700 , - 539 , - 1642 , - 2937 , - 1352 , - 3031 , - 1830 , - 821 , - 4 , - 2451 , - 2018 , - 1777 , - 1728 , - 1871 , - 2206 , - 2733 , - 380 , - 1291 , - 2394 , - 617 , - 2104 , - 711 , - 2582 , - 1573 , - 756 , - 131 , - 2770 , - 2529 , - 2480 , - 2623 , - 2958 , - 413 , - 1132 , - 2043 , - 74 , - 1369 , - 2856 , - 1463 , - 262 , - 2325 , - 1508 , - 883 , - 450 , - 209 , - 160 , - 303 , - 638 , - 1165 , - 1884 , - 2795 , - 826 , - 2121 , - 536 , - 2215 , - 1014 , - 5 , - 2260 , - 1635 , - 1202 , - 961 , - 912 , - 1055 , - 1390 , - 1917 , - 2636 , - 475 , - 1578 , - 2873 , - 1288 , - 2967 , - 1766 , - 757 , - 3012 , - 2387 , - 1954 , - 1713 , - 1664 , - 1807 , - 2142 , - 2669 , - 316 , - 1227 , - 2330 , - 553 , - 2040 , - 647 , - 2518 , - 1509 , - 692 , - 67 , - 2706 , - 2465 , - 2416 , - 2559 , - 2894 , - 349 , - 1068 , - 1979 , - 10 , - 1305 , - 2792 , - 1399 , - 198 , - 2261 , - 1444 , - 819 , - 386 , - 145 , - 96 , - 239 , - 574 , - 1101 , - 1820 , - 2731 , - 762 , - 2057 , - 472 , - 2151 , - 950 , - 3013 , - 2196 , - 1571 , - 1138 , - 897 , - 848 , - 991 , - 1326 , - 1853 , - 2572 , - 411 , - 1514 , - 2809 , - 1224 , - 2903 , - 1702 , - 693 , - 2948 , - 2323 , - 1890 , - 1649 , - 1600 , - 1743 , - 2078 , - 2605 , - 252 , - 1163 , - 2266 , - 489 , - 1976 , - 583 , - 2454 , - 1445 , - 628 , - 3 , - 2642 , - 2401 , - 2352 , - 2495 , - 2830 , - 285 , - 1004 , - 1915 , - 3018 , - 1241 , - 2728 , - 1335 , - 134 , - 2197 , - 1380 , - 755 , - 322 , - 81 , - 32 , - 175 , - 510 , - 1037 , - 1756 , - 2667 , - 698 , - 1993 , - 408 , - 2087 , - 886 , - 2949 , - 2132 , - 1507 , - 1074 , - 833 , - 784 , - 927 , - 1262 , - 1789 , - 2508 , - 347 , - 1450 , - 2745 , - 1160 , - 2839 , - 1638 , - 629 , - 2884 , - 2259 , - 1826 , - 1585 , - 1536 , - 1679 , - 2014 , - 2541 , - 188 , - 1099 , - 2202 , - 425 , - 1912 , - 519 , - 2390 , - 1381 , - 564 , - 3011 , - 2578 , - 2337 , - 2288 , - 2431 , - 2766 , - 221 , - 940 , - 1851 , - 2954 , - 1177 , - 2664 , - 1271 , - 70 , - 2133 , - 1316 , - 691 , - 258 , - 17 , - 3040 , - 111 , - 446 , - 973 , - 1692 , - 2603 , - 634 , - 1929 , - 344 , - 2023 , - 822 , - 2885 , - 2068 , - 1443 , - 1010 , - 769 , - 720 , - 863 , - 1198 , - 1725 , - 2444 , - 283 , - 1386 , - 2681 , - 1096 , - 2775 , - 1574 , - 565 , - 2820 , - 2195 , - 1762 , - 1521 , - 1472 , - 1615 , - 1950 , - 2477 , - 124 , - 1035 , - 2138 , - 361 , - 1848 , - 455 , - 2326 , - 1317 , - 500 , - 2947 , - 2514 , - 2273 , - 2224 , - 2367 , - 2702 , - 157 , - 876 , - 1787 , - 2890 , - 1113 , - 2600 , - 1207 , - 6 , - 2069 , - 1252 , - 627 , - 194 , - 3025 , - 2976 , - 47 , - 382 , - 909 , - 1628 , - 2539 , - 570 , - 1865 , - 280 , - 1959 , - 758 , - 2821 , - 2004 , - 1379 , - 946 , - 705 , - 656 , - 799 , - 1134 , - 1661 , - 2380 , - 219 , - 1322 , - 2617 , - 1032 , - 2711 , - 1510 , - 501 , - 2756 , - 2131 , - 1698 , - 1457 , - 1408 , - 1551 , - 1886 , - 2413 , - 60 , - 971 , - 2074 , - 297 , - 1784 , - 391 , - 2262 , - 1253 , - 436 , - 2883 , - 2450 , - 2209 , - 2160 , - 2303 , - 2638 , - 93 , - 812 , - 1723 , - 2826 , - 1049 , - 2536 , - 1143 , - 3014 , - 2005 , - 1188 , - 563 , - 130 , - 2961 , - 2912 , - 3055 , - 318 , - 845 , - 1564 , - 2475 , - 506 , - 1801 , - 216 , - 1895 , - 694 , - 2757 , - 1940 , - 1315 , - 882 , - 641 , - 592 , - 735 , - 1070 , - 1597 , - 2316 , - 155 , - 1258 , - 2553 , - 968 , - 2647 , - 1446 , - 437 , - 2692 , - 2067 , - 1634 , - 1393 , - 1344 , - 1487 , - 1822 , - 2349 , - 3068 , - 907 , - 2010 , - 233 , - 1720 , - 327 , - 2198 , - 1189 , - 372 , - 2819 , - 2386 , - 2145 , - 2096 , - 2239 , - 2574 , - 29 , - 748 , - 1659 , - 2762 , - 985 , - 2472 , - 1079 , - 2950 , - 1941 , - 1124 , - 499 , - 66 , - 2897 , - 2848 , - 2991 , - 254 , - 781 , - 1500 , - 2411 , - 442 , - 1737 , - 152 , - 1831 , - 630 , - 2693 , - 1876 , - 1251 , - 818 , - 577 , - 528 , - 671 , - 1006 , - 1533 , - 2252 , - 91 , - 1194 , - 2489 , - 904 , - 2583 , - 1382 , - 373 , - 2628 , - 2003 , - 1570 , - 1329 , - 1280 , - 1423 , - 1758 , - 2285 , - 3004 , - 843 , - 1946 , - 169 , - 1656 , - 263 , - 2134 , - 1125 , - 308 , - 2755 , - 2322 , - 2081 , - 2032 , - 2175 , - 2510 , - 3037 , - 684 , - 1595 , - 2698 , - 921 , - 2408 , - 1015 , - 2886 , - 1877 , - 1060 , - 435 , - 2 , - 2833 , - 2784 , - 2927 , - 190 , - 717 , - 1436 , - 2347 , - 378 , - 1673 , - 88 , - 1767 , - 566 , - 2629 , - 1812 , - 1187 , - 754 , - 513 , - 464 , - 607 , - 942 , - 1469 , - 2188 , - 27 , - 1130 , - 2425 , - 840 , - 2519 , - 1318 , - 309 , - 2564 , - 1939 , - 1506 , - 1265 , - 1216 , - 1359 , - 1694 , - 2221 , - 2940 , - 779 , - 1882 , - 105 , - 1592 , - 199 , - 2070 , - 1061 , - 244 , - 2691 , - 2258 , - 2017 , - 1968 , - 2111 , - 2446 , - 2973 , - 620 , - 1531 , - 2634 , - 857 , - 2344 , - 951 , - 2822 , - 1813 , - 996 , - 371 , - 3010 , - 2769 , - 2720 , - 2863 , - 126 , - 653 , - 1372 , - 2283 , - 314 , - 1609 , - 24 , - 1703 , - 502 , - 2565 , - 1748 , - 1123 , - 690 , - 449 , - 400 , - 543 , - 878 , - 1405 , - 2124 , - 3035 , - 1066 , - 2361 , - 776 , - 2455 , - 1254 , - 245 , - 2500 , - 1875 , - 1442 , - 1201 , - 1152 , - 1295 , - 1630 , - 2157 , - 2876 , - 715 , - 1818 , - 41 , - 1528 , - 135 , - 2006 , - 997 , - 180 , - 2627 , - 2194 , - 1953 , - 1904 , - 2047 , - 2382 , - 2909 , - 556 , - 1467 , - 2570 , - 793 , - 2280 , - 887 , - 2758 , - 1749 , - 932 , - 307 , - 2946 , - 2705 , - 2656 , - 2799 , - 62 , - 589 , - 1308 , - 2219 , - 250 , - 1545 , - 3032 , - 1639 , - 438 , - 2501 , - 1684 , - 1059 , - 626 , - 385 , - 336 , - 479 , - 814 , - 1341 , - 2060 , - 2971 , - 1002 , - 2297 , - 712 , - 2391 , - 1190 , - 181 , - 2436 , - 1811 , - 1378 , - 1137 , - 1088 , - 1231 , - 1566 , - 2093 , - 2812 , - 651 , - 1754 , - 3049 , - 1464 , - 71 , - 1942 , - 933 , - 116 , - 2563 , - 2130 , - 1889 , - 1840 , - 1983 , - 2318 , - 2845 , - 492 , - 1403 , - 2506 , - 729 , - 2216 , - 823 , - 2694 , - 1685 , - 868 , - 243 , - 2882 , - 2641 , - 2592 , - 2735 , - 3070 , - 525 , - 1244 , - 2155 , - 186 , - 1481 , - 2968 , - 1575 , - 374 , - 2437 , - 1620 , - 995 , - 562 , - 321 , - 272 , - 415 , - 750 , - 1277 , - 1996 , - 2907 , - 938 , - 2233 , - 648 , - 2327 , - 1126 , - 117 , - 2372 , - 1747 , - 1314 , - 1073 , - 1024 , - 1167 , - 1502 , - 2029 , - 2748 , - 587 , - 1690 , - 2985 , - 1400 , - 7 , - 1878 , - 869 , - 52 , - 2499 , - 2066 , - 1825 , - 1776 , - 1919 , - 2254 , - 2781 , - 428 , - 1339 , - 2442 , - 665 , - 2152 , - 759 , - 2630 , - 1621 , - 804 , - 179 , - 2818 , - 2577 , - 2528 , - 2671 , - 3006 , - 461 , - 1180 , - 2091 , - 122 , - 1417 , - 2904 , - 1511 , - 310 , - 2373 , - 1556 , - 931 , - 498 , - 257 , - 208 , - 351 , - 686 , - 1213 , - 1932 , - 2843 , - 874 , - 2169 , - 584 , - 2263 , - 1062 , - 53 , - 2308 , - 1683 , - 1250 , - 1009 , - 960 , - 1103 , - 1438 , - 1965 , - 2684 , - 523 , - 1626 , - 2921 , - 1336 , - 3015 , - 1814 , - 805 , - 3060 , - 2435 , - 2002 , - 1761 , - 1712 , - 1855 , - 2190 , - 2717 , - 364 , - 1275 , - 2378 , - 601 , - 2088 , - 695 , - 2566 , - 1557 , - 740 , - 115 , - 2754 , - 2513 , - 2464 , - 2607 , - 2942 , - 397 , - 1116 , - 2027 , - 58 , - 1353 , - 2840 , - 1447 , - 246 , - 2309 , - 1492 , - 867 , - 434 , - 193 , - 144 , - 287 , - 622 , - 1149 , - 1868 , - 2779 , - 810 , - 2105 , - 520 , - 2199 , - 998 , - 3061 , - 2244 , - 1619 , - 1186 , - 945 , - 896 , - 1039 , - 1374 , - 1901 , - 2620 , - 459 , - 1562 , - 2857 , - 1272 , - 2951 , - 1750 , - 741 , - 2996 , - 2371 , - 1938 , - 1697 , - 1648 , - 1791 , - 2126 , - 2653 , - 300 , - 1211 , - 2314 , - 537 , - 2024 , - 631 , - 2502 , - 1493 , - 676 , - 51 , - 2690 , - 2449 , - 2400 , - 2543 , - 2878 , - 333 , - 1052 , - 1963 , - 3066 , - 1289 , - 2776 , - 1383 , - 182 , - 2245 , - 1428 , - 803 , - 370 , - 129 , - 80 , - 223 , - 558 , - 1085 , - 1804 , - 2715 , - 746 , - 2041 , - 456 , - 2135 , - 934 , - 2997 , - 2180 , - 1555 , - 1122 , - 881 , - 832 , - 975 , - 1310 , - 1837 , - 2556 , - 395 , - 1498 , - 2793 , - 1208 , - 2887 , - 1686 , - 677 , - 2932 , - 2307 , - 1874 , - 1633 , - 1584 , - 1727 , - 2062 , - 2589 , - 236 , - 1147 , - 2250 , - 473 , - 1960 , - 567 , - 2438 , - 1429 , - 612 , - 3059 , - 2626 , - 2385 , - 2336 , - 2479 , - 2814 , - 269 , - 988 , - 1899 , - 3002 , - 1225 , - 2712 , - 1319 , - 118 , - 2181 , - 1364 , - 739 , - 306 , - 65 , - 16 , - 159 , - 494 , - 1021 , - 1740 , - 2651 , - 682 , - 1977 , - 392 , - 2071 , - 870 , - 2933 , - 2116 , - 1491 , - 1058 , - 817 , - 768 , - 911 , - 1246 , - 1773 , - 2492 , - 331 , - 1434 , - 2729 , - 1144 , - 2823 , - 1622 , - 613 , - 2868 , - 2243 , - 1810 , - 1569 , - 1520 , - 1663 , - 1998 , - 2525 , - 172 , - 1083 , - 2186 , - 409 , - 1896 , - 503 , - 2374 , - 1365 , - 548 , - 2995 , - 2562 , - 2321 , - 2272 , - 2415 , - 2750 , - 205 , - 924 , - 1835 , - 2938 , - 1161 , - 2648 , - 1255 , - 54 , - 2117 , - 1300 , - 675 , - 242 , - 1 , - 3024 , - 95 , - 430 , - 957 , - 1676 , - 2587 , - 618 , - 1913 , - 328 , - 2007 , - 806 , - 2869 , - 2052 , - 1427 , - 994 , - 753 , - 704 , - 847 , - 1182 , - 1709 , - 2428 , - 267 , - 1370 , - 2665 , - 1080 , - 2759 , - 1558 , - 549 , - 2804 , - 2179 , - 1746 , - 1505 , - 1456 , - 1599 , - 1934 , - 2461 , - 108 , - 1019 , - 2122 , - 345 , - 1832 , - 439 , - 2310 , - 1301 , - 484 , - 2931 , - 2498 , - 2257 , - 2208 , - 2351 , - 2686 , - 141 , - 860 , - 1771 , - 2874 , - 1097 , - 2584 , - 1191 , - 3062 , - 2053 , - 1236 , - 611 , - 178 , - 3009 , - 2960 , - 31 , - 366 , - 893 , - 1612 , - 2523 , - 554 , - 1849 , - 264 , - 1943 , - 742 , - 2805 , - 1988 , - 1363 , - 930 , - 689 , - 640 , - 783 , - 1118 , - 1645 , - 2364 , - 203 , - 1306 , - 2601 , - 1016 , - 2695 , - 1494 , - 485 , - 2740 , - 2115 , - 1682 , - 1441 , - 1392 , - 1535 , - 1870 , - 2397 , - 44 , - 955 , - 2058 , - 281 , - 1768 , - 375 , - 2246 , - 1237 , - 420 , - 2867 , - 2434 , - 2193 , - 2144 , - 2287 , - 2622 , - 77 , - 796 , - 1707 , - 2810 , - 1033 , - 2520 , - 1127 , - 2998 , - 1989 , - 1172 , - 547 , - 114 , - 2945 , - 2896 , - 3039 , - 302 , - 829 , - 1548 , - 2459 , - 490 , - 1785 , - 200 , - 1879 , - 678 , - 2741 , - 1924 , - 1299 , - 866 , - 625 , - 576 , - 719 , - 1054 , - 1581 , - 2300 , - 139 , - 1242 , - 2537 , - 952 , - 2631 , - 1430 , - 421 , - 2676 , - 2051 , - 1618 , - 1377 , - 1328 , - 1471 , - 1806 , - 2333 , - 3052 , - 891 , - 1994 , - 217 , - 1704 , - 311 , - 2182 , - 1173 , - 356 , - 2803 , - 2370 , - 2129 , - 2080 , - 2223 , - 2558 , - 13 , - 732 , - 1643 , - 2746 , - 969 , - 2456 , - 1063 , - 2934 , - 1925 , - 1108 , - 483 , - 50 , - 2881 , - 2832 , - 2975 , - 238 , - 765 , - 1484 , - 2395 , - 426 , - 1721 , - 136 , - 1815 , - 614 , - 2677 , - 1860 , - 1235 , - 802 , - 561 , - 512 , - 655 , - 990 , - 1517 , - 2236 , - 75 , - 1178 , - 2473 , - 888 , - 2567 , - 1366 , - 357 , - 2612 , - 1987 , - 1554 , - 1313 , - 1264 , - 1407 , - 1742 , - 2269 , - 2988 , - 827 , - 1930 , - 153 , - 1640 , - 247 , - 2118 , - 1109 , - 292 , - 2739 , - 2306 , - 2065 , - 2016 , - 2159 , - 2494 , - 3021 , - 668 , - 1579 , - 2682 , - 905 , - 2392 , - 999 , - 2870 , - 1861 , - 1044 , - 419 , - 3058 , - 2817 , - 2768 , - 2911 , - 174 , - 701 , - 1420 , - 2331 , - 362 , - 1657 , - 72 , - 1751 , - 550 , - 2613 , - 1796 , - 1171 , - 738 , - 497 , - 448 , - 591 , - 926 , - 1453 , - 2172 , - 11 , - 1114 , - 2409 , - 824 , - 2503 , - 1302 , - 293 , - 2548 , - 1923 , - 1490 , - 1249 , - 1200 , - 1343 , - 1678 , - 2205 , - 2924 , - 763 , - 1866 , - 89 , - 1576 , - 183 , - 2054 , - 1045 , - 228 , - 2675 , - 2242 , - 2001 , - 1952 , - 2095 , - 2430 , - 2957 , - 604 , - 1515 , - 2618 , - 841 , - 2328 , - 935 , - 2806 , - 1797 , - 980 , - 355 , - 2994 , - 2753 , - 2704 , - 2847 , - 110 , - 637 , - 1356 , - 2267 , - 298 , - 1593 , - 8 , - 1687 , - 486 , - 2549 , - 1732 , - 1107 , - 674 , - 433 , - 384 , - 527 , - 862 , - 1389 , - 2108 , - 3019 , - 1050 , - 2345 , - 760 , - 2439 , - 1238 , - 229 , - 2484 , - 1859 , - 1426 , - 1185 , - 1136 , - 1279 , - 1614 , - 2141 , - 2860 , - 699 , - 1802 , - 25 , - 1512 , - 119 , - 1990 , - 981 , - 164 , - 2611 , - 2178 , - 1937 , - 1888 , - 2031 , - 2366 , - 2893 , - 540 , - 1451 , - 2554 , - 777 , - 2264 , - 871 , - 2742 , - 1733 , - 916 , - 291 , - 2930 , - 2689 , - 2640 , - 2783 , - 46 , - 573 , - 1292 , - 2203 , - 234 , - 1529 , - 3016 , - 1623 , - 422 , - 2485 , - 1668 , - 1043 , - 610 , - 369 , - 320 , - 463 , - 798 , - 1325 , - 2044 , - 2955 , - 986 , - 2281 , - 696 , - 2375 , - 1174 , - 165 , - 2420 , - 1795 , - 1362 , - 1121 , - 1072 , - 1215 , - 1550 , - 2077 , - 2796 , - 635 , - 1738 , - 3033 , - 1448 , - 55 , - 1926 , - 917 , - 100 , - 2547 , - 2114 , - 1873 , - 1824 , - 1967 , - 2302 , - 2829 , - 476 , - 1387 , - 2490 , - 713 , - 2200 , - 807 , - 2678 , - 1669 , - 852 , - 227 , - 2866 , - 2625 , - 2576 , - 2719 , - 3054 , - 509 , - 1228 , - 2139 , - 170 , - 1465 , - 2952 , - 1559 , - 358 , - 2421 , - 1604 , - 979 , - 546 , - 305 , - 256 , - 399 , - 734 , - 1261 , - 1980 , - 2891 , - 922 , - 2217 , - 632 , - 2311 , - 1110 , - 101 , - 2356 , - 1731 , - 1298 , - 1057 , - 1008 , - 1151 , - 1486 , - 2013 , - 2732 , - 571 , - 1674 , - 2969 , - 1384 , - 3063 , - 1862 , - 853 , - 36 , - 2483 , - 2050 , - 1809 , - 1760 , - 1903 , - 2238 , - 2765 , - 412 , - 1323 , - 2426 , - 649 , - 2136 , - 743 , - 2614 , - 1605 , - 788 , - 163 , - 2802 , - 2561 , - 2512 , - 2655 , - 2990 , - 445 , - 1164 , - 2075 , - 106 , - 1401 , - 2888 , - 1495 , - 294 , - 2357 , - 1540 , - 915 , - 482 , - 241 , - 192 , - 335 , - 670 , - 1197 , - 1916 , - 2827 , - 858 , - 2153 , - 568 , - 2247 , - 1046 , - 37 , - 2292 , - 1667 , - 1234 , - 993 , - 944 , - 1087 , - 1422 , - 1949 , - 2668 , - 507 , - 1610 , - 2905 , - 1320 , - 2999 , - 1798 , - 789 , - 3044 , - 2419 , - 1986 , - 1745 , - 1696 , - 1839 , - 2174 , - 2701 , - 348 , - 1259 , - 2362 , - 585 , - 2072 , - 679 , - 2550 , - 1541 , - 724 , - 99 , - 2738 , - 2497 , - 2448 , - 2591 , - 2926 , - 381 , - 1100 , - 2011 , - 42 , - 1337 , - 2824 , - 1431 , - 230 , - 2293 , - 1476 , - 851 , - 418 , - 177 , - 128 , - 271 , - 606 , - 1133 , - 1852 , - 2763 , - 794 , - 2089 , - 504 , - 2183 , - 982 , - 3045 , - 2228 , - 1603 , - 1170 , - 929 , - 880 , - 1023 , - 1358 , - 1885 , - 2604 , - 443 , - 1546 , - 2841 , - 1256 , - 2935 , - 1734 , - 725 , - 2980 , - 2355 , - 1922 , - 1681 , - 1632 , - 1775 , - 2110 , - 2637 , - 284 , - 1195 , - 2298 , - 521 , - 2008 , - 615 , - 2486 , - 1477 , - 660 , - 35 , - 2674 , - 2433 , - 2384 , - 2527 , - 2862 , - 317 , - 1036 , - 1947 , - 3050 , - 1273 , - 2760 , - 1367 , - 166 , - 2229 , - 1412 , - 787 , - 354 , - 113 , - 64 , - 207 , - 542 , - 1069 , - 1788 , - 2699 , - 730 , - 2025 , - 440 , - 2119 , - 918 , - 2981 , - 2164 , - 1539 , - 1106 , - 865 , - 816 , - 959 , - 1294 , - 1821 , - 2540 , - 379 , - 1482 , - 2777 , - 1192 , - 2871 , - 1670 , - 661 , - 2916 , - 2291 , - 1858 , - 1617 , - 1568 , - 1711 , - 2046 , - 2573 , - 220 , - 1131 , - 2234 , - 457 , - 1944 , - 551 , - 2422 , - 1413 , - 596 , - 3043 , - 2610 , - 2369 , - 2320 , - 2463 , - 2798 , - 253 , - 972 , - 1883 , - 2986 , - 1209 , - 2696 , - 1303 , - 102 , - 2165 , - 1348 , - 723 , - 290 , - 49 , - 0 , - 41 , - 138 , - 291 , - 500 , - 765 , - 1086 , - 1463 , - 1896 , - 2385 , - 2930 , - 395 , - 1052 , - 1765 , - 2534 , - 223 , - 1104 , - 2041 , - 3034 , - 947 , - 2052 , - 77 , - 1294 , - 2567 , - 760 , - 2145 , - 450 , - 1947 , - 364 , - 1973 , - 502 , - 2223 , - 864 , - 2697 , - 1450 , - 259 , - 2260 , - 1181 , - 158 , - 2327 , - 1416 , - 561 , - 2898 , - 2155 , - 1468 , - 837 , - 262 , - 2879 , - 2416 , - 2009 , - 1658 , - 1363 , - 1124 , - 941 , - 814 , - 743 , - 728 , - 769 , - 866 , - 1019 , - 1228 , - 1493 , - 1814 , - 2191 , - 2624 , - 3113 , - 522 , - 1123 , - 1780 , - 2493 , - 126 , - 951 , - 1832 , - 2769 , - 626 , - 1675 , - 2780 , - 805 , - 2022 , - 159 , - 1488 , - 2873 , - 1178 , - 2675 , - 1092 , - 2701 , - 1230 , - 2951 , - 1592 , - 289 , - 2178 , - 987 , - 2988 , - 1909 , - 886 , - 3055 , - 2144 , - 1289 , - 490 , - 2883 , - 2196 , - 1565 , - 990 , - 471 , - 8 , - 2737 , - 2386 , - 2091 , - 1852 , - 1669 , - 1542 , - 1471 , - 1456 , - 1497 , - 1594 , - 1747 , - 1956 , - 2221 , - 2542 , - 2919 , - 216 , - 705 , - 1250 , - 1851 , - 2508 , - 85 , - 854 , - 1679 , - 2560 , - 361 , - 1354 , - 2403 , - 372 , - 1533 , - 2750 , - 887 , - 2216 , - 465 , - 1906 , - 267 , - 1820 , - 293 , - 1958 , - 543 , - 2320 , - 1017 , - 2906 , - 1715 , - 580 , - 2637 , - 1614 , - 647 , - 2872 , - 2017 , - 1218 , - 475 , - 2924 , - 2293 , - 1718 , - 1199 , - 736 , - 329 , - 3114 , - 2819 , - 2580 , - 2397 , - 2270 , - 2199 , - 2184 , - 2225 , - 2322 , - 2475 , - 2684 , - 2949 , - 134 , - 511 , - 944 , - 1433 , - 1978 , - 2579 , - 100 , - 813 , - 1582 , - 2407 , - 152 , - 1089 , - 2082 , - 3131 , - 1100 , - 2261 , - 342 , - 1615 , - 2944 , - 1193 , - 2634 , - 995 , - 2548 , - 1021 , - 2686 , - 1271 , - 3048 , - 1745 , - 498 , - 2443 , - 1308 , - 229 , - 2342 , - 1375 , - 464 , - 2745 , - 1946 , - 1203 , - 516 , - 3021 , - 2446 , - 1927 , - 1464 , - 1057 , - 706 , - 411 , - 172 , - 3125 , - 2998 , - 2927 , - 2912 , - 2953 , - 3050 , - 67 , - 276 , - 541 , - 862 , - 1239 , - 1672 , - 2161 , - 2706 , - 171 , - 828 , - 1541 , - 2310 , - 3135 , - 880 , - 1817 , - 2810 , - 723 , - 1828 , - 2989 , - 1070 , - 2343 , - 536 , - 1921 , - 226 , - 1723 , - 140 , - 1749 , - 278 , - 1999 , - 640 , - 2473 , - 1226 , - 35 , - 2036 , - 957 , - 3070 , - 2103 , - 1192 , - 337 , - 2674 , - 1931 , - 1244 , - 613 , - 38 , - 2655 , - 2192 , - 1785 , - 1434 , - 1139 , - 900 , - 717 , - 590 , - 519 , - 504 , - 545 , - 642 , - 795 , - 1004 , - 1269 , - 1590 , - 1967 , - 2400 , - 2889 , - 298 , - 899 , - 1556 , - 2269 , - 3038 , - 727 , - 1608 , - 2545 , - 402 , - 1451 , - 2556 , - 581 , - 1798 , - 3071 , - 1264 , - 2649 , - 954 , - 2451 , - 868 , - 2477 , - 1006 , - 2727 , - 1368 , - 65 , - 1954 , - 763 , - 2764 , - 1685 , - 662 , - 2831 , - 1920 , - 1065 , - 266 , - 2659 , - 1972 , - 1341 , - 766 , - 247 , - 2920 , - 2513 , - 2162 , - 1867 , - 1628 , - 1445 , - 1318 , - 1247 , - 1232 , - 1273 , - 1370 , - 1523 , - 1732 , - 1997 , - 2318 , - 2695 , - 3128 , - 481 , - 1026 , - 1627 , - 2284 , - 2997 , - 630 , - 1455 , - 2336 , - 137 , - 1130 , - 2179 , - 148 , - 1309 , - 2526 , - 663 , - 1992 , - 241 , - 1682 , - 43 , - 1596 , - 69 , - 1734 , - 319 , - 2096 , - 793 , - 2682 , - 1491 , - 356 , - 2413 , - 1390 , - 423 , - 2648 , - 1793 , - 994 , - 251 , - 2700 , - 2069 , - 1494 , - 975 , - 512 , - 105 , - 2890 , - 2595 , - 2356 , - 2173 , - 2046 , - 1975 , - 1960 , - 2001 , - 2098 , - 2251 , - 2460 , - 2725 , - 3046 , - 287 , - 720 , - 1209 , - 1754 , - 2355 , - 3012 , - 589 , - 1358 , - 2183 , - 3064 , - 865 , - 1858 , - 2907 , - 876 , - 2037 , - 118 , - 1391 , - 2720 , - 969 , - 2410 , - 771 , - 2324 , - 797 , - 2462 , - 1047 , - 2824 , - 1521 , - 274 , - 2219 , - 1084 , - 5 , - 2118 , - 1151 , - 240 , - 2521 , - 1722 , - 979 , - 292 , - 2797 , - 2222 , - 1703 , - 1240 , - 833 , - 482 , - 187 , - 3084 , - 2901 , - 2774 , - 2703 , - 2688 , - 2729 , - 2826 , - 2979 , - 52 , - 317 , - 638 , - 1015 , - 1448 , - 1937 , - 2482 , - 3083 , - 604 , - 1317 , - 2086 , - 2911 , - 656 , - 1593 , - 2586 , - 499 , - 1604 , - 2765 , - 846 , - 2119 , - 312 , - 1697 , - 2 , - 1499 , - 3052 , - 1525 , - 54 , - 1775 , - 416 , - 2249 , - 1002 , - 2947 , - 1812 , - 733 , - 2846 , - 1879 , - 968 , - 113 , - 2450 , - 1707 , - 1020 , - 389 , - 2950 , - 2431 , - 1968 , - 1561 , - 1210 , - 915 , - 676 , - 493 , - 366 , - 295 , - 280 , - 321 , - 418 , - 571 , - 780 , - 1045 , - 1366 , - 1743 , - 2176 , - 2665 , - 74 , - 675 , - 1332 , - 2045 , - 2814 , - 503 , - 1384 , - 2321 , - 178 , - 1227 , - 2332 , - 357 , - 1574 , - 2847 , - 1040 , - 2425 , - 730 , - 2227 , - 644 , - 2253 , - 782 , - 2503 , - 1144 , - 2977 , - 1730 , - 539 , - 2540 , - 1461 , - 438 , - 2607 , - 1696 , - 841 , - 42 , - 2435 , - 1748 , - 1117 , - 542 , - 23 , - 2696 , - 2289 , - 1938 , - 1643 , - 1404 , - 1221 , - 1094 , - 1023 , - 1008 , - 1049 , - 1146 , - 1299 , - 1508 , - 1773 , - 2094 , - 2471 , - 2904 , - 257 , - 802 , - 1403 , - 2060 , - 2773 , - 406 , - 1231 , - 2112 , - 3049 , - 906 , - 1955 , - 3060 , - 1085 , - 2302 , - 439 , - 1768 , - 17 , - 1458 , - 2955 , - 1372 , - 2981 , - 1510 , - 95 , - 1872 , - 569 , - 2458 , - 1267 , - 132 , - 2189 , - 1166 , - 199 , - 2424 , - 1569 , - 770 , - 27 , - 2476 , - 1845 , - 1270 , - 751 , - 288 , - 3017 , - 2666 , - 2371 , - 2132 , - 1949 , - 1822 , - 1751 , - 1736 , - 1777 , - 1874 , - 2027 , - 2236 , - 2501 , - 2822 , - 63 , - 496 , - 985 , - 1530 , - 2131 , - 2788 , - 365 , - 1134 , - 1959 , - 2840 , - 641 , - 1634 , - 2683 , - 652 , - 1813 , - 3030 , - 1167 , - 2496 , - 745 , - 2186 , - 547 , - 2100 , - 573 , - 2238 , - 823 , - 2600 , - 1297 , - 50 , - 1995 , - 860 , - 2917 , - 1894 , - 927 , - 16 , - 2297 , - 1498 , - 755 , - 68 , - 2573 , - 1998 , - 1479 , - 1016 , - 609 , - 258 , - 3099 , - 2860 , - 2677 , - 2550 , - 2479 , - 2464 , - 2505 , - 2602 , - 2755 , - 2964 , - 93 , - 414 , - 791 , - 1224 , - 1713 , - 2258 , - 2859 , - 380 , - 1093 , - 1862 , - 2687 , - 432 , - 1369 , - 2362 , - 275 , - 1380 , - 2541 , - 622 , - 1895 , - 88 , - 1473 , - 2914 , - 1275 , - 2828 , - 1301 , - 2966 , - 1551 , - 192 , - 2025 , - 778 , - 2723 , - 1588 , - 509 , - 2622 , - 1655 , - 744 , - 3025 , - 2226 , - 1483 , - 796 , - 165 , - 2726 , - 2207 , - 1744 , - 1337 , - 986 , - 691 , - 452 , - 269 , - 142 , - 71 , - 56 , - 97 , - 194 , - 347 , - 556 , - 821 , - 1142 , - 1519 , - 1952 , - 2441 , - 2986 , - 451 , - 1108 , - 1821 , - 2590 , - 279 , - 1160 , - 2097 , - 3090 , - 1003 , - 2108 , - 133 , - 1350 , - 2623 , - 816 , - 2201 , - 506 , - 2003 , - 420 , - 2029 , - 558 , - 2279 , - 920 , - 2753 , - 1506 , - 315 , - 2316 , - 1237 , - 214 , - 2383 , - 1472 , - 617 , - 2954 , - 2211 , - 1524 , - 893 , - 318 , - 2935 , - 2472 , - 2065 , - 1714 , - 1419 , - 1180 , - 997 , - 870 , - 799 , - 784 , - 825 , - 922 , - 1075 , - 1284 , - 1549 , - 1870 , - 2247 , - 2680 , - 33 , - 578 , - 1179 , - 1836 , - 2549 , - 182 , - 1007 , - 1888 , - 2825 , - 682 , - 1731 , - 2836 , - 861 , - 2078 , - 215 , - 1544 , - 2929 , - 1234 , - 2731 , - 1148 , - 2757 , - 1286 , - 3007 , - 1648 , - 345 , - 2234 , - 1043 , - 3044 , - 1965 , - 942 , - 3111 , - 2200 , - 1345 , - 546 , - 2939 , - 2252 , - 1621 , - 1046 , - 527 , - 64 , - 2793 , - 2442 , - 2147 , - 1908 , - 1725 , - 1598 , - 1527 , - 1512 , - 1553 , - 1650 , - 1803 , - 2012 , - 2277 , - 2598 , - 2975 , - 272 , - 761 , - 1306 , - 1907 , - 2564 , - 141 , - 910 , - 1735 , - 2616 , - 417 , - 1410 , - 2459 , - 428 , - 1589 , - 2806 , - 943 , - 2272 , - 521 , - 1962 , - 323 , - 1876 , - 349 , - 2014 , - 599 , - 2376 , - 1073 , - 2962 , - 1771 , - 636 , - 2693 , - 1670 , - 703 , - 2928 , - 2073 , - 1274 , - 531 , - 2980 , - 2349 , - 1774 , - 1255 , - 792 , - 385 , - 34 , - 2875 , - 2636 , - 2453 , - 2326 , - 2255 , - 2240 , - 2281 , - 2378 , - 2531 , - 2740 , - 3005 , - 190 , - 567 , - 1000 , - 1489 , - 2034 , - 2635 , - 156 , - 869 , - 1638 , - 2463 , - 208 , - 1145 , - 2138 , - 51 , - 1156 , - 2317 , - 398 , - 1671 , - 3000 , - 1249 , - 2690 , - 1051 , - 2604 , - 1077 , - 2742 , - 1327 , - 3104 , - 1801 , - 554 , - 2499 , - 1364 , - 285 , - 2398 , - 1431 , - 520 , - 2801 , - 2002 , - 1259 , - 572 , - 3077 , - 2502 , - 1983 , - 1520 , - 1113 , - 762 , - 467 , - 228 , - 45 , - 3054 , - 2983 , - 2968 , - 3009 , - 3106 , - 123 , - 332 , - 597 , - 918 , - 1295 , - 1728 , - 2217 , - 2762 , - 227 , - 884 , - 1597 , - 2366 , - 55 , - 936 , - 1873 , - 2866 , - 779 , - 1884 , - 3045 , - 1126 , - 2399 , - 592 , - 1977 , - 282 , - 1779 , - 196 , - 1805 , - 334 , - 2055 , - 696 , - 2529 , - 1282 , - 91 , - 2092 , - 1013 , - 3126 , - 2159 , - 1248 , - 393 , - 2730 , - 1987 , - 1300 , - 669 , - 94 , - 2711 , - 2248 , - 1841 , - 1490 , - 1195 , - 956 , - 773 , - 646 , - 575 , - 560 , - 601 , - 698 , - 851 , - 1060 , - 1325 , - 1646 , - 2023 , - 2456 , - 2945 , - 354 , - 955 , - 1612 , - 2325 , - 3094 , - 783 , - 1664 , - 2601 , - 458 , - 1507 , - 2612 , - 637 , - 1854 , - 3127 , - 1320 , - 2705 , - 1010 , - 2507 , - 924 , - 2533 , - 1062 , - 2783 , - 1424 , - 121 , - 2010 , - 819 , - 2820 , - 1741 , - 718 , - 2887 , - 1976 , - 1121 , - 322 , - 2715 , - 2028 , - 1397 , - 822 , - 303 , - 2976 , - 2569 , - 2218 , - 1923 , - 1684 , - 1501 , - 1374 , - 1303 , - 1288 , - 1329 , - 1426 , - 1579 , - 1788 , - 2053 , - 2374 , - 2751 , - 48 , - 537 , - 1082 , - 1683 , - 2340 , - 3053 , - 686 , - 1511 , - 2392 , - 193 , - 1186 , - 2235 , - 204 , - 1365 , - 2582 , - 719 , - 2048 , - 297 , - 1738 , - 99 , - 1652 , - 125 , - 1790 , - 375 , - 2152 , - 849 , - 2738 , - 1547 , - 412 , - 2469 , - 1446 , - 479 , - 2704 , - 1849 , - 1050 , - 307 , - 2756 , - 2125 , - 1550 , - 1031 , - 568 , - 161 , - 2946 , - 2651 , - 2412 , - 2229 , - 2102 , - 2031 , - 2016 , - 2057 , - 2154 , - 2307 , - 2516 , - 2781 , - 3102 , - 343 , - 776 , - 1265 , - 1810 , - 2411 , - 3068 , - 645 , - 1414 , - 2239 , - 3120 , - 921 , - 1914 , - 2963 , - 932 , - 2093 , - 174 , - 1447 , - 2776 , - 1025 , - 2466 , - 827 , - 2380 , - 853 , - 2518 , - 1103 , - 2880 , - 1577 , - 330 , - 2275 , - 1140 , - 61 , - 2174 , - 1207 , - 296 , - 2577 , - 1778 , - 1035 , - 348 , - 2853 , - 2278 , - 1759 , - 1296 , - 889 , - 538 , - 243 , - 4 , - 2957 , - 2830 , - 2759 , - 2744 , - 2785 , - 2882 , - 3035 , - 108 , - 373 , - 694 , - 1071 , - 1504 , - 1993 , - 2538 , - 3 , - 660 , - 1373 , - 2142 , - 2967 , - 712 , - 1649 , - 2642 , - 555 , - 1660 , - 2821 , - 902 , - 2175 , - 368 , - 1753 , - 58 , - 1555 , - 3108 , - 1581 , - 110 , - 1831 , - 472 , - 2305 , - 1058 , - 3003 , - 1868 , - 789 , - 2902 , - 1935 , - 1024 , - 169 , - 2506 , - 1763 , - 1076 , - 445 , - 3006 , - 2487 , - 2024 , - 1617 , - 1266 , - 971 , - 732 , - 549 , - 422 , - 351 , - 336 , - 377 , - 474 , - 627 , - 836 , - 1101 , - 1422 , - 1799 , - 2232 , - 2721 , - 130 , - 731 , - 1388 , - 2101 , - 2870 , - 559 , - 1440 , - 2377 , - 234 , - 1283 , - 2388 , - 413 , - 1630 , - 2903 , - 1096 , - 2481 , - 786 , - 2283 , - 700 , - 2309 , - 838 , - 2559 , - 1200 , - 3033 , - 1786 , - 595 , - 2596 , - 1517 , - 494 , - 2663 , - 1752 , - 897 , - 98 , - 2491 , - 1804 , - 1173 , - 598 , - 79 , - 2752 , - 2345 , - 1994 , - 1699 , - 1460 , - 1277 , - 1150 , - 1079 , - 1064 , - 1105 , - 1202 , - 1355 , - 1564 , - 1829 , - 2150 , - 2527 , - 2960 , - 313 , - 858 , - 1459 , - 2116 , - 2829 , - 462 , - 1287 , - 2168 , - 3105 , - 962 , - 2011 , - 3116 , - 1141 , - 2358 , - 495 , - 1824 , - 73 , - 1514 , - 3011 , - 1428 , - 3037 , - 1566 , - 151 , - 1928 , - 625 , - 2514 , - 1323 , - 188 , - 2245 , - 1222 , - 255 , - 2480 , - 1625 , - 826 , - 83 , - 2532 , - 1901 , - 1326 , - 807 , - 344 , - 3073 , - 2722 , - 2427 , - 2188 , - 2005 , - 1878 , - 1807 , - 1792 , - 1833 , - 1930 , - 2083 , - 2292 , - 2557 , - 2878 , - 119 , - 552 , - 1041 , - 1586 , - 2187 , - 2844 , - 421 , - 1190 , - 2015 , - 2896 , - 697 , - 1690 , - 2739 , - 708 , - 1869 , - 3086 , - 1223 , - 2552 , - 801 , - 2242 , - 603 , - 2156 , - 629 , - 2294 , - 879 , - 2656 , - 1353 , - 106 , - 2051 , - 916 , - 2973 , - 1950 , - 983 , - 72 , - 2353 , - 1554 , - 811 , - 124 , - 2629 , - 2054 , - 1535 , - 1072 , - 665 , - 314 , - 19 , - 2916 , - 2733 , - 2606 , - 2535 , - 2520 , - 2561 , - 2658 , - 2811 , - 3020 , - 149 , - 470 , - 847 , - 1280 , - 1769 , - 2314 , - 2915 , - 436 , - 1149 , - 1918 , - 2743 , - 488 , - 1425 , - 2418 , - 331 , - 1436 , - 2597 , - 678 , - 1951 , - 144 , - 1529 , - 2970 , - 1331 , - 2884 , - 1357 , - 3022 , - 1607 , - 248 , - 2081 , - 834 , - 2779 , - 1644 , - 565 , - 2678 , - 1711 , - 800 , - 3081 , - 2282 , - 1539 , - 852 , - 221 , - 2782 , - 2263 , - 1800 , - 1393 , - 1042 , - 747 , - 508 , - 325 , - 198 , - 127 , - 112 , - 153 , - 250 , - 403 , - 612 , - 877 , - 1198 , - 1575 , - 2008 , - 2497 , - 3042 , - 507 , - 1164 , - 1877 , - 2646 , - 335 , - 1216 , - 2153 , - 10 , - 1059 , - 2164 , - 189 , - 1406 , - 2679 , - 872 , - 2257 , - 562 , - 2059 , - 476 , - 2085 , - 614 , - 2335 , - 976 , - 2809 , - 1562 , - 371 , - 2372 , - 1293 , - 270 , - 2439 , - 1528 , - 673 , - 3010 , - 2267 , - 1580 , - 949 , - 374 , - 2991 , - 2528 , - 2121 , - 1770 , - 1475 , - 1236 , - 1053 , - 926 , - 855 , - 840 , - 881 , - 978 , - 1131 , - 1340 , - 1605 , - 1926 , - 2303 , - 2736 , - 89 , - 634 , - 1235 , - 1892 , - 2605 , - 238 , - 1063 , - 1944 , - 2881 , - 738 , - 1787 , - 2892 , - 917 , - 2134 , - 271 , - 1600 , - 2985 , - 1290 , - 2787 , - 1204 , - 2813 , - 1342 , - 3063 , - 1704 , - 401 , - 2290 , - 1099 , - 3100 , - 2021 , - 998 , - 31 , - 2256 , - 1401 , - 602 , - 2995 , - 2308 , - 1677 , - 1102 , - 583 , - 120 , - 2849 , - 2498 , - 2203 , - 1964 , - 1781 , - 1654 , - 1583 , - 1568 , - 1609 , - 1706 , - 1859 , - 2068 , - 2333 , - 2654 , - 3031 , - 328 , - 817 , - 1362 , - 1963 , - 2620 , - 197 , - 966 , - 1791 , - 2672 , - 473 , - 1466 , - 2515 , - 484 , - 1645 , - 2862 , - 999 , - 2328 , - 577 , - 2018 , - 379 , - 1932 , - 405 , - 2070 , - 655 , - 2432 , - 1129 , - 3018 , - 1827 , - 692 , - 2749 , - 1726 , - 759 , - 2984 , - 2129 , - 1330 , - 587 , - 3036 , - 2405 , - 1830 , - 1311 , - 848 , - 441 , - 90 , - 2931 , - 2692 , - 2509 , - 2382 , - 2311 , - 2296 , - 2337 , - 2434 , - 2587 , - 2796 , - 3061 , - 246 , - 623 , - 1056 , - 1545 , - 2090 , - 2691 , - 212 , - 925 , - 1694 , - 2519 , - 264 , - 1201 , - 2194 , - 107 , - 1212 , - 2373 , - 454 , - 1727 , - 3056 , - 1305 , - 2746 , - 1107 , - 2660 , - 1133 , - 2798 , - 1383 , - 24 , - 1857 , - 610 , - 2555 , - 1420 , - 341 , - 2454 , - 1487 , - 576 , - 2857 , - 2058 , - 1315 , - 628 , - 3133 , - 2558 , - 2039 , - 1576 , - 1169 , - 818 , - 523 , - 284 , - 101 , - 3110 , - 3039 , - 3024 , - 3065 , - 26 , - 179 , - 388 , - 653 , - 974 , - 1351 , - 1784 , - 2273 , - 2818 , - 283 , - 940 , - 1653 , - 2422 , - 111 , - 992 , - 1929 , - 2922 , - 835 , - 1940 , - 3101 , - 1182 , - 2455 , - 648 , - 2033 , - 338 , - 1835 , - 252 , - 1861 , - 390 , - 2111 , - 752 , - 2585 , - 1338 , - 147 , - 2148 , - 1069 , - 46 , - 2215 , - 1304 , - 449 , - 2786 , - 2043 , - 1356 , - 725 , - 150 , - 2767 , - 2304 , - 1897 , - 1546 , - 1251 , - 1012 , - 829 , - 702 , - 631 , - 616 , - 657 , - 754 , - 907 , - 1116 , - 1381 , - 1702 , - 2079 , - 2512 , - 3001 , - 410 , - 1011 , - 1668 , - 2381 , - 14 , - 839 , - 1720 , - 2657 , - 514 , - 1563 , - 2668 , - 693 , - 1910 , - 47 , - 1376 , - 2761 , - 1066 , - 2563 , - 980 , - 2589 , - 1118 , - 2839 , - 1480 , - 177 , - 2066 , - 875 , - 2876 , - 1797 , - 774 , - 2943 , - 2032 , - 1177 , - 378 , - 2771 , - 2084 , - 1453 , - 878 , - 359 , - 3032 , - 2625 , - 2274 , - 1979 , - 1740 , - 1557 , - 1430 , - 1359 , - 1344 , - 1385 , - 1482 , - 1635 , - 1844 , - 2109 , - 2430 , - 2807 , - 104 , - 593 , - 1138 , - 1739 , - 2396 , - 3109 , - 742 , - 1567 , - 2448 , - 249 , - 1242 , - 2291 , - 260 , - 1421 , - 2638 , - 775 , - 2104 , - 353 , - 1794 , - 155 , - 1708 , - 181 , - 1846 , - 431 , - 2208 , - 905 , - 2794 , - 1603 , - 468 , - 2525 , - 1502 , - 535 , - 2760 , - 1905 , - 1106 , - 363 , - 2812 , - 2181 , - 1606 , - 1087 , - 624 , - 217 , - 3002 , - 2707 , - 2468 , - 2285 , - 2158 , - 2087 , - 2072 , - 2113 , - 2210 , - 2363 , - 2572 , - 2837 , - 22 , - 399 , - 832 , - 1321 , - 1866 , - 2467 , - 3124 , - 701 , - 1470 , - 2295 , - 40 , - 977 , - 1970 , - 3019 , - 988 , - 2149 , - 230 , - 1503 , - 2832 , - 1081 , - 2522 , - 883 , - 2436 , - 909 , - 2574 , - 1159 , - 2936 , - 1633 , - 386 , - 2331 , - 1196 , - 117 , - 2230 , - 1263 , - 352 , - 2633 , - 1834 , - 1091 , - 404 , - 2909 , - 2334 , - 1815 , - 1352 , - 945 , - 594 , - 299 , - 60 , - 3013 , - 2886 , - 2815 , - 2800 , - 2841 , - 2938 , - 3091 , - 164 , - 429 , - 750 , - 1127 , - 1560 , - 2049 , - 2594 , - 59 , - 716 , - 1429 , - 2198 , - 3023 , - 768 , - 1705 , - 2698 , - 611 , - 1716 , - 2877 , - 958 , - 2231 , - 424 , - 1809 , - 114 , - 1611 , - 28 , - 1637 , - 166 , - 1887 , - 528 , - 2361 , - 1114 , - 3059 , - 1924 , - 845 , - 2958 , - 1991 , - 1080 , - 225 , - 2562 , - 1819 , - 1132 , - 501 , - 3062 , - 2543 , - 2080 , - 1673 , - 1322 , - 1027 , - 788 , - 605 , - 478 , - 407 , - 392 , - 433 , - 530 , - 683 , - 892 , - 1157 , - 1478 , - 1855 , - 2288 , - 2777 , - 186 , - 787 , - 1444 , - 2157 , - 2926 , - 615 , - 1496 , - 2433 , - 290 , - 1339 , - 2444 , - 469 , - 1686 , - 2959 , - 1152 , - 2537 , - 842 , - 2339 , - 756 , - 2365 , - 894 , - 2615 , - 1256 , - 3089 , - 1842 , - 651 , - 2652 , - 1573 , - 550 , - 2719 , - 1808 , - 953 , - 154 , - 2547 , - 1860 , - 1229 , - 654 , - 135 , - 2808 , - 2401 , - 2050 , - 1755 , - 1516 , - 1333 , - 1206 , - 1135 , - 1120 , - 1161 , - 1258 , - 1411 , - 1620 , - 1885 , - 2206 , - 2583 , - 3016 , - 369 , - 914 , - 1515 , - 2172 , - 2885 , - 518 , - 1343 , - 2224 , - 25 , - 1018 , - 2067 , - 36 , - 1197 , - 2414 , - 551 , - 1880 , - 129 , - 1570 , - 3067 , - 1484 , - 3093 , - 1622 , - 207 , - 1984 , - 681 , - 2570 , - 1379 , - 244 , - 2301 , - 1278 , - 311 , - 2536 , - 1681 , - 882 , - 139 , - 2588 , - 1957 , - 1382 , - 863 , - 400 , - 3129 , - 2778 , - 2483 , - 2244 , - 2061 , - 1934 , - 1863 , - 1848 , - 1889 , - 1986 , - 2139 , - 2348 , - 2613 , - 2934 , - 175 , - 608 , - 1097 , - 1642 , - 2243 , - 2900 , - 477 , - 1246 , - 2071 , - 2952 , - 753 , - 1746 , - 2795 , - 764 , - 1925 , - 6 , - 1279 , - 2608 , - 857 , - 2298 , - 659 , - 2212 , - 685 , - 2350 , - 935 , - 2712 , - 1409 , - 162 , - 2107 , - 972 , - 3029 , - 2006 , - 1039 , - 128 , - 2409 , - 1610 , - 867 , - 180 , - 2685 , - 2110 , - 1591 , - 1128 , - 721 , - 370 , - 75 , - 2972 , - 2789 , - 2662 , - 2591 , - 2576 , - 2617 , - 2714 , - 2867 , - 3076 , - 205 , - 526 , - 903 , - 1336 , - 1825 , - 2370 , - 2971 , - 492 , - 1205 , - 1974 , - 2799 , - 544 , - 1481 , - 2474 , - 387 , - 1492 , - 2653 , - 734 , - 2007 , - 200 , - 1585 , - 3026 , - 1387 , - 2940 , - 1413 , - 3078 , - 1663 , - 304 , - 2137 , - 890 , - 2835 , - 1700 , - 621 , - 2734 , - 1767 , - 856 , - 1 , - 2338 , - 1595 , - 908 , - 277 , - 2838 , - 2319 , - 1856 , - 1449 , - 1098 , - 803 , - 564 , - 381 , - 254 , - 183 , - 168 , - 209 , - 306 , - 459 , - 668 , - 933 , - 1254 , - 1631 , - 2064 , - 2553 , - 3098 , - 563 , - 1220 , - 1933 , - 2702 , - 391 , - 1272 , - 2209 , - 66 , - 1115 , - 2220 , - 245 , - 1462 , - 2735 , - 928 , - 2313 , - 618 , - 2115 , - 532 , - 2141 , - 670 , - 2391 , - 1032 , - 2865 , - 1618 , - 427 , - 2428 , - 1349 , - 326 , - 2495 , - 1584 , - 729 , - 3066 , - 2323 , - 1636 , - 1005 , - 430 , - 3047 , - 2584 , - 2177 , - 1826 , - 1531 , - 1292 , - 1109 , - 982 , - 911 , - 896 , - 937 , - 1034 , - 1187 , - 1396 , - 1661 , - 1982 , - 2359 , - 2792 , - 145 , - 690 , - 1291 , - 1948 , - 2661 , - 294 , - 1119 , - 2000 , - 2937 , - 794 , - 1843 , - 2948 , - 973 , - 2190 , - 327 , - 1656 , - 3041 , - 1346 , - 2843 , - 1260 , - 2869 , - 1398 , - 3119 , - 1760 , - 457 , - 2346 , - 1155 , - 20 , - 2077 , - 1054 , - 87 , - 2312 , - 1457 , - 658 , - 3051 , - 2364 , - 1733 , - 1158 , - 639 , - 176 , - 2905 , - 2554 , - 2259 , - 2020 , - 1837 , - 1710 , - 1639 , - 1624 , - 1665 , - 1762 , - 1915 , - 2124 , - 2389 , - 2710 , - 3087 , - 384 , - 873 , - 1418 , - 2019 , - 2676 , - 253 , - 1022 , - 1847 , - 2728 , - 529 , - 1522 , - 2571 , - 540 , - 1701 , - 2918 , - 1055 , - 2384 , - 633 , - 2074 , - 435 , - 1988 , - 461 , - 2126 , - 711 , - 2488 , - 1185 , - 3074 , - 1883 , - 748 , - 2805 , - 1782 , - 815 , - 3040 , - 2185 , - 1386 , - 643 , - 3092 , - 2461 , - 1886 , - 1367 , - 904 , - 497 , - 146 , - 2987 , - 2748 , - 2565 , - 2438 , - 2367 , - 2352 , - 2393 , - 2490 , - 2643 , - 2852 , - 3117 , - 302 , - 679 , - 1112 , - 1601 , - 2146 , - 2747 , - 268 , - 981 , - 1750 , - 2575 , - 320 , - 1257 , - 2250 , - 163 , - 1268 , - 2429 , - 510 , - 1783 , - 3112 , - 1361 , - 2802 , - 1163 , - 2716 , - 1189 , - 2854 , - 1439 , - 80 , - 1913 , - 666 , - 2611 , - 1476 , - 397 , - 2510 , - 1543 , - 632 , - 2913 , - 2114 , - 1371 , - 684 , - 53 , - 2614 , - 2095 , - 1632 , - 1225 , - 874 , - 579 , - 340 , - 157 , - 30 , - 3095 , - 3080 , - 3121 , - 82 , - 235 , - 444 , - 709 , - 1030 , - 1407 , - 1840 , - 2329 , - 2874 , - 339 , - 996 , - 1709 , - 2478 , - 167 , - 1048 , - 1985 , - 2978 , - 891 , - 1996 , - 21 , - 1238 , - 2511 , - 704 , - 2089 , - 394 , - 1891 , - 308 , - 1917 , - 446 , - 2167 , - 808 , - 2641 , - 1394 , - 203 , - 2204 , - 1125 , - 102 , - 2271 , - 1360 , - 505 , - 2842 , - 2099 , - 1412 , - 781 , - 206 , - 2823 , - 2360 , - 1953 , - 1602 , - 1307 , - 1068 , - 885 , - 758 , - 687 , - 672 , - 713 , - 810 , - 963 , - 1172 , - 1437 , - 1758 , - 2135 , - 2568 , - 3057 , - 466 , - 1067 , - 1724 , - 2437 , - 70 , - 895 , - 1776 , - 2713 , - 570 , - 1619 , - 2724 , - 749 , - 1966 , - 103 , - 1432 , - 2817 , - 1122 , - 2619 , - 1036 , - 2645 , - 1174 , - 2895 , - 1536 , - 233 , - 2122 , - 931 , - 2932 , - 1853 , - 830 , - 2999 , - 2088 , - 1233 , - 434 , - 2827 , - 2140 , - 1509 , - 934 , - 415 , - 3088 , - 2681 , - 2330 , - 2035 , - 1796 , - 1613 , - 1486 , - 1415 , - 1400 , - 1441 , - 1538 , - 1691 , - 1900 , - 2165 , - 2486 , - 2863 , - 160 , - 649 , - 1194 , - 1795 , - 2452 , - 29 , - 798 , - 1623 , - 2504 , - 305 , - 1298 , - 2347 , - 316 , - 1477 , - 2694 , - 831 , - 2160 , - 409 , - 1850 , - 211 , - 1764 , - 237 , - 1902 , - 487 , - 2264 , - 961 , - 2850 , - 1659 , - 524 , - 2581 , - 1558 , - 591 , - 2816 , - 1961 , - 1162 , - 419 , - 2868 , - 2237 , - 1662 , - 1143 , - 680 , - 273 , - 3058 , - 2763 , - 2524 , - 2341 , - 2214 , - 2143 , - 2128 , - 2169 , - 2266 , - 2419 , - 2628 , - 2893 , - 78 , - 455 , - 888 , - 1377 , - 1922 , - 2523 , - 44 , - 757 , - 1526 , - 2351 , - 96 , - 1033 , - 2026 , - 3075 , - 1044 , - 2205 , - 286 , - 1559 , - 2888 , - 1137 , - 2578 , - 939 , - 2492 , - 965 , - 2630 , - 1215 , - 2992 , - 1689 , - 442 , - 2387 , - 1252 , - 173 , - 2286 , - 1319 , - 408 , - 2689 , - 1890 , - 1147 , - 460 , - 2965 , - 2390 , - 1871 , - 1408 , - 1001 , - 650 , - 355 , - 116 , - 3069 , - 2942 , - 2871 , - 2856 , - 2897 , - 2994 , - 11 , - 220 , - 485 , - 806 , - 1183 , - 1616 , - 2105 , - 2650 , - 115 , - 772 , - 1485 , - 2254 , - 3079 , - 824 , - 1761 , - 2754 , - 667 , - 1772 , - 2933 , - 1014 , - 2287 , - 480 , - 1865 , - 170 , - 1667 , - 84 , - 1693 , - 222 , - 1943 , - 584 , - 2417 , - 1170 , - 3115 , - 1980 , - 901 , - 3014 , - 2047 , - 1136 , - 281 , - 2618 , - 1875 , - 1188 , - 557 , - 3118 , - 2599 , - 2136 , - 1729 , - 1378 , - 1083 , - 844 , - 661 , - 534 , - 463 , - 448 , - 489 , - 586 , - 739 , - 948 , - 1213 , - 1534 , - 1911 , - 2344 , - 2833 , - 242 , - 843 , - 1500 , - 2213 , - 2982 , - 671 , - 1552 , - 2489 , - 346 , - 1395 , - 2500 , - 525 , - 1742 , - 3015 , - 1208 , - 2593 , - 898 , - 2395 , - 812 , - 2421 , - 950 , - 2671 , - 1312 , - 9 , - 1898 , - 707 , - 2708 , - 1629 , - 606 , - 2775 , - 1864 , - 1009 , - 210 , - 2603 , - 1916 , - 1285 , - 710 , - 191 , - 2864 , - 2457 , - 2106 , - 1811 , - 1572 , - 1389 , - 1262 , - 1191 , - 1176 , - 1217 , - 1314 , - 1467 , - 1676 , - 1941 , - 2262 , - 2639 , - 3072 , - 425 , - 970 , - 1571 , - 2228 , - 2941 , - 574 , - 1399 , - 2280 , - 81 , - 1074 , - 2123 , - 92 , - 1253 , - 2470 , - 607 , - 1936 , - 185 , - 1626 , - 3123 , - 1540 , - 13 , - 1678 , - 263 , - 2040 , - 737 , - 2626 , - 1435 , - 300 , - 2357 , - 1334 , - 367 , - 2592 , - 1737 , - 938 , - 195 , - 2644 , - 2013 , - 1438 , - 919 , - 456 , - 49 , - 2834 , - 2539 , - 2300 , - 2117 , - 1990 , - 1919 , - 1904 , - 1945 , - 2042 , - 2195 , - 2404 , - 2669 , - 2990 , - 231 , - 664 , - 1153 , - 1698 , - 2299 , - 2956 , - 533 , - 1302 , - 2127 , - 3008 , - 809 , - 1802 , - 2851 , - 820 , - 1981 , - 62 , - 1335 , - 2664 , - 913 , - 2354 , - 715 , - 2268 , - 741 , - 2406 , - 991 , - 2768 , - 1465 , - 218 , - 2163 , - 1028 , - 3085 , - 2062 , - 1095 , - 184 , - 2465 , - 1666 , - 923 , - 236 , - 2741 , - 2166 , - 1647 , - 1184 , - 777 , - 426 , - 131 , - 3028 , - 2845 , - 2718 , - 2647 , - 2632 , - 2673 , - 2770 , - 2923 , - 3132 , - 261 , - 582 , - 959 , - 1392 , - 1881 , - 2426 , - 3027 , - 548 , - 1261 , - 2030 , - 2855 , - 600 , - 1537 , - 2530 , - 443 , - 1548 , - 2709 , - 790 , - 2063 , - 256 , - 1641 , - 3082 , - 1443 , - 2996 , - 1469 , - 3134 , - 1719 , - 360 , - 2193 , - 946 , - 2891 , - 1756 , - 677 , - 2790 , - 1823 , - 912 , - 57 , - 2394 , - 1651 , - 964 , - 333 , - 2894 , - 2375 , - 1912 , - 1505 , - 1154 , - 859 , - 620 , - 437 , - 310 , - 239 , - 224 , - 265 , - 362 , - 515 , - 724 , - 989 , - 1310 , - 1687 , - 2120 , - 2609 , - 18 , - 619 , - 1276 , - 1989 , - 2758 , - 447 , - 1328 , - 2265 , - 122 , - 1171 , - 2276 , - 301 , - 1518 , - 2791 , - 984 , - 2369 , - 674 , - 2171 , - 588 , - 2197 , - 726 , - 2447 , - 1088 , - 2921 , - 1674 , - 483 , - 2484 , - 1405 , - 382 , - 2551 , - 1640 , - 785 , - 3122 , - 2379 , - 1692 , - 1061 , - 486 , - 3103 , - 2640 , - 2233 , - 1882 , - 1587 , - 1348 , - 1165 , - 1038 , - 967 , - 952 , - 993 , - 1090 , - 1243 , - 1452 , - 1717 , - 2038 , - 2415 , - 2848 , - 201 , - 746 , - 1347 , - 2004 , - 2717 , - 350 , - 1175 , - 2056 , - 2993 , - 850 , - 1899 , - 3004 , - 1029 , - 2246 , - 383 , - 1712 , - 3097 , - 1402 , - 2899 , - 1316 , - 2925 , - 1454 , - 39 , - 1816 , - 513 , - 2402 , - 1211 , - 76 , - 2133 , - 1110 , - 143 , - 2368 , - 1513 , - 714 , - 3107 , - 2420 , - 1789 , - 1214 , - 695 , - 232 , - 2961 , - 2610 , - 2315 , - 2076 , - 1893 , - 1766 , - 1695 , - 1680 , - 1721 , - 1818 , - 1971 , - 2180 , - 2445 , - 2766 , - 7 , - 440 , - 929 , - 1474 , - 2075 , - 2732 , - 309 , - 1078 , - 1903 , - 2784 , - 585 , - 1578 , - 2627 , - 596 , - 1757 , - 2974 , - 1111 , - 2440 , - 689 , - 2130 , - 491 , - 2044 , - 517 , - 2182 , - 767 , - 2544 , - 1241 , - 3130 , - 1939 , - 804 , - 2861 , - 1838 , - 871 , - 3096 , - 2241 , - 1442 , - 699 , - 12 , - 2517 , - 1942 , - 1423 , - 960 , - 553 , - 202 , - 3043 , - 2804 , - 2621 , - 2494 , - 2423 , - 2408 , - 2449 , - 2546 , - 2699 , - 2908 , - 37 , - 358 , - 735 , - 1168 , - 1657 , - 2202 , - 2803 , - 324 , - 1037 , - 1806 , - 2631 , - 376 , - 1313 , - 2306 , - 219 , - 1324 , - 2485 , - 566 , - 1839 , - 32 , - 1417 , - 2858 , - 1219 , - 2772 , - 1245 , - 2910 , - 1495 , - 136 , - 1969 , - 722 , - 2667 , - 1532 , - 453 , - 2566 , - 1599 , - 688 , - 2969 , - 2170 , - 1427 , - 740 , - 109 , - 2670 , - 2151 , - 1688 , - 1281 , - 930 , - 635 , - 396 , - 213 , - 86 , - 15 , - 0 , - 351 , - 1182 , - 2493 , - 1084 , - 155 , - 2906 , - 2937 , - 248 , - 1239 , - 2710 , - 1461 , - 692 , - 403 , - 594 , - 1265 , - 2416 , - 847 , - 2958 , - 2349 , - 2220 , - 2571 , - 202 , - 1513 , - 104 , - 2375 , - 1926 , - 1957 , - 2468 , - 259 , - 1730 , - 481 , - 2912 , - 2623 , - 2814 , - 285 , - 1436 , - 3067 , - 1978 , - 1369 , - 1240 , - 1591 , - 2422 , - 533 , - 2324 , - 1395 , - 946 , - 977 , - 1488 , - 2479 , - 750 , - 2701 , - 1932 , - 1643 , - 1834 , - 2505 , - 456 , - 2087 , - 998 , - 389 , - 260 , - 611 , - 1442 , - 2753 , - 1344 , - 415 , - 3166 , - 3197 , - 508 , - 1499 , - 2970 , - 1721 , - 952 , - 663 , - 854 , - 1525 , - 2676 , - 1107 , - 18 , - 2609 , - 2480 , - 2831 , - 462 , - 1773 , - 364 , - 2635 , - 2186 , - 2217 , - 2728 , - 519 , - 1990 , - 741 , - 3172 , - 2883 , - 3074 , - 545 , - 1696 , - 127 , - 2238 , - 1629 , - 1500 , - 1851 , - 2682 , - 793 , - 2584 , - 1655 , - 1206 , - 1237 , - 1748 , - 2739 , - 1010 , - 2961 , - 2192 , - 1903 , - 2094 , - 2765 , - 716 , - 2347 , - 1258 , - 649 , - 520 , - 871 , - 1702 , - 3013 , - 1604 , - 675 , - 226 , - 257 , - 768 , - 1759 , - 30 , - 1981 , - 1212 , - 923 , - 1114 , - 1785 , - 2936 , - 1367 , - 278 , - 2869 , - 2740 , - 3091 , - 722 , - 2033 , - 624 , - 2895 , - 2446 , - 2477 , - 2988 , - 779 , - 2250 , - 1001 , - 232 , - 3143 , - 134 , - 805 , - 1956 , - 387 , - 2498 , - 1889 , - 1760 , - 2111 , - 2942 , - 1053 , - 2844 , - 1915 , - 1466 , - 1497 , - 2008 , - 2999 , - 1270 , - 21 , - 2452 , - 2163 , - 2354 , - 3025 , - 976 , - 2607 , - 1518 , - 909 , - 780 , - 1131 , - 1962 , - 73 , - 1864 , - 935 , - 486 , - 517 , - 1028 , - 2019 , - 290 , - 2241 , - 1472 , - 1183 , - 1374 , - 2045 , - 3196 , - 1627 , - 538 , - 3129 , - 3000 , - 151 , - 982 , - 2293 , - 884 , - 3155 , - 2706 , - 2737 , - 48 , - 1039 , - 2510 , - 1261 , - 492 , - 203 , - 394 , - 1065 , - 2216 , - 647 , - 2758 , - 2149 , - 2020 , - 2371 , - 2 , - 1313 , - 3104 , - 2175 , - 1726 , - 1757 , - 2268 , - 59 , - 1530 , - 281 , - 2712 , - 2423 , - 2614 , - 85 , - 1236 , - 2867 , - 1778 , - 1169 , - 1040 , - 1391 , - 2222 , - 333 , - 2124 , - 1195 , - 746 , - 777 , - 1288 , - 2279 , - 550 , - 2501 , - 1732 , - 1443 , - 1634 , - 2305 , - 256 , - 1887 , - 798 , - 189 , - 60 , - 411 , - 1242 , - 2553 , - 1144 , - 215 , - 2966 , - 2997 , - 308 , - 1299 , - 2770 , - 1521 , - 752 , - 463 , - 654 , - 1325 , - 2476 , - 907 , - 3018 , - 2409 , - 2280 , - 2631 , - 262 , - 1573 , - 164 , - 2435 , - 1986 , - 2017 , - 2528 , - 319 , - 1790 , - 541 , - 2972 , - 2683 , - 2874 , - 345 , - 1496 , - 3127 , - 2038 , - 1429 , - 1300 , - 1651 , - 2482 , - 593 , - 2384 , - 1455 , - 1006 , - 1037 , - 1548 , - 2539 , - 810 , - 2761 , - 1992 , - 1703 , - 1894 , - 2565 , - 516 , - 2147 , - 1058 , - 449 , - 320 , - 671 , - 1502 , - 2813 , - 1404 , - 475 , - 26 , - 57 , - 568 , - 1559 , - 3030 , - 1781 , - 1012 , - 723 , - 914 , - 1585 , - 2736 , - 1167 , - 78 , - 2669 , - 2540 , - 2891 , - 522 , - 1833 , - 424 , - 2695 , - 2246 , - 2277 , - 2788 , - 579 , - 2050 , - 801 , - 32 , - 2943 , - 3134 , - 605 , - 1756 , - 187 , - 2298 , - 1689 , - 1560 , - 1911 , - 2742 , - 853 , - 2644 , - 1715 , - 1266 , - 1297 , - 1808 , - 2799 , - 1070 , - 3021 , - 2252 , - 1963 , - 2154 , - 2825 , - 776 , - 2407 , - 1318 , - 709 , - 580 , - 931 , - 1762 , - 3073 , - 1664 , - 735 , - 286 , - 317 , - 828 , - 1819 , - 90 , - 2041 , - 1272 , - 983 , - 1174 , - 1845 , - 2996 , - 1427 , - 338 , - 2929 , - 2800 , - 3151 , - 782 , - 2093 , - 684 , - 2955 , - 2506 , - 2537 , - 3048 , - 839 , - 2310 , - 1061 , - 292 , - 3 , - 194 , - 865 , - 2016 , - 447 , - 2558 , - 1949 , - 1820 , - 2171 , - 3002 , - 1113 , - 2904 , - 1975 , - 1526 , - 1557 , - 2068 , - 3059 , - 1330 , - 81 , - 2512 , - 2223 , - 2414 , - 3085 , - 1036 , - 2667 , - 1578 , - 969 , - 840 , - 1191 , - 2022 , - 133 , - 1924 , - 995 , - 546 , - 577 , - 1088 , - 2079 , - 350 , - 2301 , - 1532 , - 1243 , - 1434 , - 2105 , - 56 , - 1687 , - 598 , - 3189 , - 3060 , - 211 , - 1042 , - 2353 , - 944 , - 15 , - 2766 , - 2797 , - 108 , - 1099 , - 2570 , - 1321 , - 552 , - 263 , - 454 , - 1125 , - 2276 , - 707 , - 2818 , - 2209 , - 2080 , - 2431 , - 62 , - 1373 , - 3164 , - 2235 , - 1786 , - 1817 , - 2328 , - 119 , - 1590 , - 341 , - 2772 , - 2483 , - 2674 , - 145 , - 1296 , - 2927 , - 1838 , - 1229 , - 1100 , - 1451 , - 2282 , - 393 , - 2184 , - 1255 , - 806 , - 837 , - 1348 , - 2339 , - 610 , - 2561 , - 1792 , - 1503 , - 1694 , - 2365 , - 316 , - 1947 , - 858 , - 249 , - 120 , - 471 , - 1302 , - 2613 , - 1204 , - 275 , - 3026 , - 3057 , - 368 , - 1359 , - 2830 , - 1581 , - 812 , - 523 , - 714 , - 1385 , - 2536 , - 967 , - 3078 , - 2469 , - 2340 , - 2691 , - 322 , - 1633 , - 224 , - 2495 , - 2046 , - 2077 , - 2588 , - 379 , - 1850 , - 601 , - 3032 , - 2743 , - 2934 , - 405 , - 1556 , - 3187 , - 2098 , - 1489 , - 1360 , - 1711 , - 2542 , - 653 , - 2444 , - 1515 , - 1066 , - 1097 , - 1608 , - 2599 , - 870 , - 2821 , - 2052 , - 1763 , - 1954 , - 2625 , - 576 , - 2207 , - 1118 , - 509 , - 380 , - 731 , - 1562 , - 2873 , - 1464 , - 535 , - 86 , - 117 , - 628 , - 1619 , - 3090 , - 1841 , - 1072 , - 783 , - 974 , - 1645 , - 2796 , - 1227 , - 138 , - 2729 , - 2600 , - 2951 , - 582 , - 1893 , - 484 , - 2755 , - 2306 , - 2337 , - 2848 , - 639 , - 2110 , - 861 , - 92 , - 3003 , - 3194 , - 665 , - 1816 , - 247 , - 2358 , - 1749 , - 1620 , - 1971 , - 2802 , - 913 , - 2704 , - 1775 , - 1326 , - 1357 , - 1868 , - 2859 , - 1130 , - 3081 , - 2312 , - 2023 , - 2214 , - 2885 , - 836 , - 2467 , - 1378 , - 769 , - 640 , - 991 , - 1822 , - 3133 , - 1724 , - 795 , - 346 , - 377 , - 888 , - 1879 , - 150 , - 2101 , - 1332 , - 1043 , - 1234 , - 1905 , - 3056 , - 1487 , - 398 , - 2989 , - 2860 , - 11 , - 842 , - 2153 , - 744 , - 3015 , - 2566 , - 2597 , - 3108 , - 899 , - 2370 , - 1121 , - 352 , - 63 , - 254 , - 925 , - 2076 , - 507 , - 2618 , - 2009 , - 1880 , - 2231 , - 3062 , - 1173 , - 2964 , - 2035 , - 1586 , - 1617 , - 2128 , - 3119 , - 1390 , - 141 , - 2572 , - 2283 , - 2474 , - 3145 , - 1096 , - 2727 , - 1638 , - 1029 , - 900 , - 1251 , - 2082 , - 193 , - 1984 , - 1055 , - 606 , - 637 , - 1148 , - 2139 , - 410 , - 2361 , - 1592 , - 1303 , - 1494 , - 2165 , - 116 , - 1747 , - 658 , - 49 , - 3120 , - 271 , - 1102 , - 2413 , - 1004 , - 75 , - 2826 , - 2857 , - 168 , - 1159 , - 2630 , - 1381 , - 612 , - 323 , - 514 , - 1185 , - 2336 , - 767 , - 2878 , - 2269 , - 2140 , - 2491 , - 122 , - 1433 , - 24 , - 2295 , - 1846 , - 1877 , - 2388 , - 179 , - 1650 , - 401 , - 2832 , - 2543 , - 2734 , - 205 , - 1356 , - 2987 , - 1898 , - 1289 , - 1160 , - 1511 , - 2342 , - 453 , - 2244 , - 1315 , - 866 , - 897 , - 1408 , - 2399 , - 670 , - 2621 , - 1852 , - 1563 , - 1754 , - 2425 , - 376 , - 2007 , - 918 , - 309 , - 180 , - 531 , - 1362 , - 2673 , - 1264 , - 335 , - 3086 , - 3117 , - 428 , - 1419 , - 2890 , - 1641 , - 872 , - 583 , - 774 , - 1445 , - 2596 , - 1027 , - 3138 , - 2529 , - 2400 , - 2751 , - 382 , - 1693 , - 284 , - 2555 , - 2106 , - 2137 , - 2648 , - 439 , - 1910 , - 661 , - 3092 , - 2803 , - 2994 , - 465 , - 1616 , - 47 , - 2158 , - 1549 , - 1420 , - 1771 , - 2602 , - 713 , - 2504 , - 1575 , - 1126 , - 1157 , - 1668 , - 2659 , - 930 , - 2881 , - 2112 , - 1823 , - 2014 , - 2685 , - 636 , - 2267 , - 1178 , - 569 , - 440 , - 791 , - 1622 , - 2933 , - 1524 , - 595 , - 146 , - 177 , - 688 , - 1679 , - 3150 , - 1901 , - 1132 , - 843 , - 1034 , - 1705 , - 2856 , - 1287 , - 198 , - 2789 , - 2660 , - 3011 , - 642 , - 1953 , - 544 , - 2815 , - 2366 , - 2397 , - 2908 , - 699 , - 2170 , - 921 , - 152 , - 3063 , - 54 , - 725 , - 1876 , - 307 , - 2418 , - 1809 , - 1680 , - 2031 , - 2862 , - 973 , - 2764 , - 1835 , - 1386 , - 1417 , - 1928 , - 2919 , - 1190 , - 3141 , - 2372 , - 2083 , - 2274 , - 2945 , - 896 , - 2527 , - 1438 , - 829 , - 700 , - 1051 , - 1882 , - 3193 , - 1784 , - 855 , - 406 , - 437 , - 948 , - 1939 , - 210 , - 2161 , - 1392 , - 1103 , - 1294 , - 1965 , - 3116 , - 1547 , - 458 , - 3049 , - 2920 , - 71 , - 902 , - 2213 , - 804 , - 3075 , - 2626 , - 2657 , - 3168 , - 959 , - 2430 , - 1181 , - 412 , - 123 , - 314 , - 985 , - 2136 , - 567 , - 2678 , - 2069 , - 1940 , - 2291 , - 3122 , - 1233 , - 3024 , - 2095 , - 1646 , - 1677 , - 2188 , - 3179 , - 1450 , - 201 , - 2632 , - 2343 , - 2534 , - 5 , - 1156 , - 2787 , - 1698 , - 1089 , - 960 , - 1311 , - 2142 , - 253 , - 2044 , - 1115 , - 666 , - 697 , - 1208 , - 2199 , - 470 , - 2421 , - 1652 , - 1363 , - 1554 , - 2225 , - 176 , - 1807 , - 718 , - 109 , - 3180 , - 331 , - 1162 , - 2473 , - 1064 , - 135 , - 2886 , - 2917 , - 228 , - 1219 , - 2690 , - 1441 , - 672 , - 383 , - 574 , - 1245 , - 2396 , - 827 , - 2938 , - 2329 , - 2200 , - 2551 , - 182 , - 1493 , - 84 , - 2355 , - 1906 , - 1937 , - 2448 , - 239 , - 1710 , - 461 , - 2892 , - 2603 , - 2794 , - 265 , - 1416 , - 3047 , - 1958 , - 1349 , - 1220 , - 1571 , - 2402 , - 513 , - 2304 , - 1375 , - 926 , - 957 , - 1468 , - 2459 , - 730 , - 2681 , - 1912 , - 1623 , - 1814 , - 2485 , - 436 , - 2067 , - 978 , - 369 , - 240 , - 591 , - 1422 , - 2733 , - 1324 , - 395 , - 3146 , - 3177 , - 488 , - 1479 , - 2950 , - 1701 , - 932 , - 643 , - 834 , - 1505 , - 2656 , - 1087 , - 3198 , - 2589 , - 2460 , - 2811 , - 442 , - 1753 , - 344 , - 2615 , - 2166 , - 2197 , - 2708 , - 499 , - 1970 , - 721 , - 3152 , - 2863 , - 3054 , - 525 , - 1676 , - 107 , - 2218 , - 1609 , - 1480 , - 1831 , - 2662 , - 773 , - 2564 , - 1635 , - 1186 , - 1217 , - 1728 , - 2719 , - 990 , - 2941 , - 2172 , - 1883 , - 2074 , - 2745 , - 696 , - 2327 , - 1238 , - 629 , - 500 , - 851 , - 1682 , - 2993 , - 1584 , - 655 , - 206 , - 237 , - 748 , - 1739 , - 10 , - 1961 , - 1192 , - 903 , - 1094 , - 1765 , - 2916 , - 1347 , - 258 , - 2849 , - 2720 , - 3071 , - 702 , - 2013 , - 604 , - 2875 , - 2426 , - 2457 , - 2968 , - 759 , - 2230 , - 981 , - 212 , - 3123 , - 114 , - 785 , - 1936 , - 367 , - 2478 , - 1869 , - 1740 , - 2091 , - 2922 , - 1033 , - 2824 , - 1895 , - 1446 , - 1477 , - 1988 , - 2979 , - 1250 , - 1 , - 2432 , - 2143 , - 2334 , - 3005 , - 956 , - 2587 , - 1498 , - 889 , - 760 , - 1111 , - 1942 , - 53 , - 1844 , - 915 , - 466 , - 497 , - 1008 , - 1999 , - 270 , - 2221 , - 1452 , - 1163 , - 1354 , - 2025 , - 3176 , - 1607 , - 518 , - 3109 , - 2980 , - 131 , - 962 , - 2273 , - 864 , - 3135 , - 2686 , - 2717 , - 28 , - 1019 , - 2490 , - 1241 , - 472 , - 183 , - 374 , - 1045 , - 2196 , - 627 , - 2738 , - 2129 , - 2000 , - 2351 , - 3182 , - 1293 , - 3084 , - 2155 , - 1706 , - 1737 , - 2248 , - 39 , - 1510 , - 261 , - 2692 , - 2403 , - 2594 , - 65 , - 1216 , - 2847 , - 1758 , - 1149 , - 1020 , - 1371 , - 2202 , - 313 , - 2104 , - 1175 , - 726 , - 757 , - 1268 , - 2259 , - 530 , - 2481 , - 1712 , - 1423 , - 1614 , - 2285 , - 236 , - 1867 , - 778 , - 169 , - 40 , - 391 , - 1222 , - 2533 , - 1124 , - 195 , - 2946 , - 2977 , - 288 , - 1279 , - 2750 , - 1501 , - 732 , - 443 , - 634 , - 1305 , - 2456 , - 887 , - 2998 , - 2389 , - 2260 , - 2611 , - 242 , - 1553 , - 144 , - 2415 , - 1966 , - 1997 , - 2508 , - 299 , - 1770 , - 521 , - 2952 , - 2663 , - 2854 , - 325 , - 1476 , - 3107 , - 2018 , - 1409 , - 1280 , - 1631 , - 2462 , - 573 , - 2364 , - 1435 , - 986 , - 1017 , - 1528 , - 2519 , - 790 , - 2741 , - 1972 , - 1683 , - 1874 , - 2545 , - 496 , - 2127 , - 1038 , - 429 , - 300 , - 651 , - 1482 , - 2793 , - 1384 , - 455 , - 6 , - 37 , - 548 , - 1539 , - 3010 , - 1761 , - 992 , - 703 , - 894 , - 1565 , - 2716 , - 1147 , - 58 , - 2649 , - 2520 , - 2871 , - 502 , - 1813 , - 404 , - 2675 , - 2226 , - 2257 , - 2768 , - 559 , - 2030 , - 781 , - 12 , - 2923 , - 3114 , - 585 , - 1736 , - 167 , - 2278 , - 1669 , - 1540 , - 1891 , - 2722 , - 833 , - 2624 , - 1695 , - 1246 , - 1277 , - 1788 , - 2779 , - 1050 , - 3001 , - 2232 , - 1943 , - 2134 , - 2805 , - 756 , - 2387 , - 1298 , - 689 , - 560 , - 911 , - 1742 , - 3053 , - 1644 , - 715 , - 266 , - 297 , - 808 , - 1799 , - 70 , - 2021 , - 1252 , - 963 , - 1154 , - 1825 , - 2976 , - 1407 , - 318 , - 2909 , - 2780 , - 3131 , - 762 , - 2073 , - 664 , - 2935 , - 2486 , - 2517 , - 3028 , - 819 , - 2290 , - 1041 , - 272 , - 3183 , - 174 , - 845 , - 1996 , - 427 , - 2538 , - 1929 , - 1800 , - 2151 , - 2982 , - 1093 , - 2884 , - 1955 , - 1506 , - 1537 , - 2048 , - 3039 , - 1310 , - 61 , - 2492 , - 2203 , - 2394 , - 3065 , - 1016 , - 2647 , - 1558 , - 949 , - 820 , - 1171 , - 2002 , - 113 , - 1904 , - 975 , - 526 , - 557 , - 1068 , - 2059 , - 330 , - 2281 , - 1512 , - 1223 , - 1414 , - 2085 , - 36 , - 1667 , - 578 , - 3169 , - 3040 , - 191 , - 1022 , - 2333 , - 924 , - 3195 , - 2746 , - 2777 , - 88 , - 1079 , - 2550 , - 1301 , - 532 , - 243 , - 434 , - 1105 , - 2256 , - 687 , - 2798 , - 2189 , - 2060 , - 2411 , - 42 , - 1353 , - 3144 , - 2215 , - 1766 , - 1797 , - 2308 , - 99 , - 1570 , - 321 , - 2752 , - 2463 , - 2654 , - 125 , - 1276 , - 2907 , - 1818 , - 1209 , - 1080 , - 1431 , - 2262 , - 373 , - 2164 , - 1235 , - 786 , - 817 , - 1328 , - 2319 , - 590 , - 2541 , - 1772 , - 1483 , - 1674 , - 2345 , - 296 , - 1927 , - 838 , - 229 , - 100 , - 451 , - 1282 , - 2593 , - 1184 , - 255 , - 3006 , - 3037 , - 348 , - 1339 , - 2810 , - 1561 , - 792 , - 503 , - 694 , - 1365 , - 2516 , - 947 , - 3058 , - 2449 , - 2320 , - 2671 , - 302 , - 1613 , - 204 , - 2475 , - 2026 , - 2057 , - 2568 , - 359 , - 1830 , - 581 , - 3012 , - 2723 , - 2914 , - 385 , - 1536 , - 3167 , - 2078 , - 1469 , - 1340 , - 1691 , - 2522 , - 633 , - 2424 , - 1495 , - 1046 , - 1077 , - 1588 , - 2579 , - 850 , - 2801 , - 2032 , - 1743 , - 1934 , - 2605 , - 556 , - 2187 , - 1098 , - 489 , - 360 , - 711 , - 1542 , - 2853 , - 1444 , - 515 , - 66 , - 97 , - 608 , - 1599 , - 3070 , - 1821 , - 1052 , - 763 , - 954 , - 1625 , - 2776 , - 1207 , - 118 , - 2709 , - 2580 , - 2931 , - 562 , - 1873 , - 464 , - 2735 , - 2286 , - 2317 , - 2828 , - 619 , - 2090 , - 841 , - 72 , - 2983 , - 3174 , - 645 , - 1796 , - 227 , - 2338 , - 1729 , - 1600 , - 1951 , - 2782 , - 893 , - 2684 , - 1755 , - 1306 , - 1337 , - 1848 , - 2839 , - 1110 , - 3061 , - 2292 , - 2003 , - 2194 , - 2865 , - 816 , - 2447 , - 1358 , - 749 , - 620 , - 971 , - 1802 , - 3113 , - 1704 , - 775 , - 326 , - 357 , - 868 , - 1859 , - 130 , - 2081 , - 1312 , - 1023 , - 1214 , - 1885 , - 3036 , - 1467 , - 378 , - 2969 , - 2840 , - 3191 , - 822 , - 2133 , - 724 , - 2995 , - 2546 , - 2577 , - 3088 , - 879 , - 2350 , - 1101 , - 332 , - 43 , - 234 , - 905 , - 2056 , - 487 , - 2598 , - 1989 , - 1860 , - 2211 , - 3042 , - 1153 , - 2944 , - 2015 , - 1566 , - 1597 , - 2108 , - 3099 , - 1370 , - 121 , - 2552 , - 2263 , - 2454 , - 3125 , - 1076 , - 2707 , - 1618 , - 1009 , - 880 , - 1231 , - 2062 , - 173 , - 1964 , - 1035 , - 586 , - 617 , - 1128 , - 2119 , - 390 , - 2341 , - 1572 , - 1283 , - 1474 , - 2145 , - 96 , - 1727 , - 638 , - 29 , - 3100 , - 251 , - 1082 , - 2393 , - 984 , - 55 , - 2806 , - 2837 , - 148 , - 1139 , - 2610 , - 1361 , - 592 , - 303 , - 494 , - 1165 , - 2316 , - 747 , - 2858 , - 2249 , - 2120 , - 2471 , - 102 , - 1413 , - 4 , - 2275 , - 1826 , - 1857 , - 2368 , - 159 , - 1630 , - 381 , - 2812 , - 2523 , - 2714 , - 185 , - 1336 , - 2967 , - 1878 , - 1269 , - 1140 , - 1491 , - 2322 , - 433 , - 2224 , - 1295 , - 846 , - 877 , - 1388 , - 2379 , - 650 , - 2601 , - 1832 , - 1543 , - 1734 , - 2405 , - 356 , - 1987 , - 898 , - 289 , - 160 , - 511 , - 1342 , - 2653 , - 1244 , - 315 , - 3066 , - 3097 , - 408 , - 1399 , - 2870 , - 1621 , - 852 , - 563 , - 754 , - 1425 , - 2576 , - 1007 , - 3118 , - 2509 , - 2380 , - 2731 , - 362 , - 1673 , - 264 , - 2535 , - 2086 , - 2117 , - 2628 , - 419 , - 1890 , - 641 , - 3072 , - 2783 , - 2974 , - 445 , - 1596 , - 27 , - 2138 , - 1529 , - 1400 , - 1751 , - 2582 , - 693 , - 2484 , - 1555 , - 1106 , - 1137 , - 1648 , - 2639 , - 910 , - 2861 , - 2092 , - 1803 , - 1994 , - 2665 , - 616 , - 2247 , - 1158 , - 549 , - 420 , - 771 , - 1602 , - 2913 , - 1504 , - 575 , - 126 , - 157 , - 668 , - 1659 , - 3130 , - 1881 , - 1112 , - 823 , - 1014 , - 1685 , - 2836 , - 1267 , - 178 , - 2769 , - 2640 , - 2991 , - 622 , - 1933 , - 524 , - 2795 , - 2346 , - 2377 , - 2888 , - 679 , - 2150 , - 901 , - 132 , - 3043 , - 34 , - 705 , - 1856 , - 287 , - 2398 , - 1789 , - 1660 , - 2011 , - 2842 , - 953 , - 2744 , - 1815 , - 1366 , - 1397 , - 1908 , - 2899 , - 1170 , - 3121 , - 2352 , - 2063 , - 2254 , - 2925 , - 876 , - 2507 , - 1418 , - 809 , - 680 , - 1031 , - 1862 , - 3173 , - 1764 , - 835 , - 386 , - 417 , - 928 , - 1919 , - 190 , - 2141 , - 1372 , - 1083 , - 1274 , - 1945 , - 3096 , - 1527 , - 438 , - 3029 , - 2900 , - 51 , - 882 , - 2193 , - 784 , - 3055 , - 2606 , - 2637 , - 3148 , - 939 , - 2410 , - 1161 , - 392 , - 103 , - 294 , - 965 , - 2116 , - 547 , - 2658 , - 2049 , - 1920 , - 2271 , - 3102 , - 1213 , - 3004 , - 2075 , - 1626 , - 1657 , - 2168 , - 3159 , - 1430 , - 181 , - 2612 , - 2323 , - 2514 , - 3185 , - 1136 , - 2767 , - 1678 , - 1069 , - 940 , - 1291 , - 2122 , - 233 , - 2024 , - 1095 , - 646 , - 677 , - 1188 , - 2179 , - 450 , - 2401 , - 1632 , - 1343 , - 1534 , - 2205 , - 156 , - 1787 , - 698 , - 89 , - 3160 , - 311 , - 1142 , - 2453 , - 1044 , - 115 , - 2866 , - 2897 , - 208 , - 1199 , - 2670 , - 1421 , - 652 , - 363 , - 554 , - 1225 , - 2376 , - 807 , - 2918 , - 2309 , - 2180 , - 2531 , - 162 , - 1473 , - 64 , - 2335 , - 1886 , - 1917 , - 2428 , - 219 , - 1690 , - 441 , - 2872 , - 2583 , - 2774 , - 245 , - 1396 , - 3027 , - 1938 , - 1329 , - 1200 , - 1551 , - 2382 , - 493 , - 2284 , - 1355 , - 906 , - 937 , - 1448 , - 2439 , - 710 , - 2661 , - 1892 , - 1603 , - 1794 , - 2465 , - 416 , - 2047 , - 958 , - 349 , - 220 , - 571 , - 1402 , - 2713 , - 1304 , - 375 , - 3126 , - 3157 , - 468 , - 1459 , - 2930 , - 1681 , - 912 , - 623 , - 814 , - 1485 , - 2636 , - 1067 , - 3178 , - 2569 , - 2440 , - 2791 , - 422 , - 1733 , - 324 , - 2595 , - 2146 , - 2177 , - 2688 , - 479 , - 1950 , - 701 , - 3132 , - 2843 , - 3034 , - 505 , - 1656 , - 87 , - 2198 , - 1589 , - 1460 , - 1811 , - 2642 , - 753 , - 2544 , - 1615 , - 1166 , - 1197 , - 1708 , - 2699 , - 970 , - 2921 , - 2152 , - 1863 , - 2054 , - 2725 , - 676 , - 2307 , - 1218 , - 609 , - 480 , - 831 , - 1662 , - 2973 , - 1564 , - 635 , - 186 , - 217 , - 728 , - 1719 , - 3190 , - 1941 , - 1172 , - 883 , - 1074 , - 1745 , - 2896 , - 1327 , - 238 , - 2829 , - 2700 , - 3051 , - 682 , - 1993 , - 584 , - 2855 , - 2406 , - 2437 , - 2948 , - 739 , - 2210 , - 961 , - 192 , - 3103 , - 94 , - 765 , - 1916 , - 347 , - 2458 , - 1849 , - 1720 , - 2071 , - 2902 , - 1013 , - 2804 , - 1875 , - 1426 , - 1457 , - 1968 , - 2959 , - 1230 , - 3181 , - 2412 , - 2123 , - 2314 , - 2985 , - 936 , - 2567 , - 1478 , - 869 , - 740 , - 1091 , - 1922 , - 33 , - 1824 , - 895 , - 446 , - 477 , - 988 , - 1979 , - 250 , - 2201 , - 1432 , - 1143 , - 1334 , - 2005 , - 3156 , - 1587 , - 498 , - 3089 , - 2960 , - 111 , - 942 , - 2253 , - 844 , - 3115 , - 2666 , - 2697 , - 8 , - 999 , - 2470 , - 1221 , - 452 , - 163 , - 354 , - 1025 , - 2176 , - 607 , - 2718 , - 2109 , - 1980 , - 2331 , - 3162 , - 1273 , - 3064 , - 2135 , - 1686 , - 1717 , - 2228 , - 19 , - 1490 , - 241 , - 2672 , - 2383 , - 2574 , - 45 , - 1196 , - 2827 , - 1738 , - 1129 , - 1000 , - 1351 , - 2182 , - 293 , - 2084 , - 1155 , - 706 , - 737 , - 1248 , - 2239 , - 510 , - 2461 , - 1692 , - 1403 , - 1594 , - 2265 , - 216 , - 1847 , - 758 , - 149 , - 20 , - 371 , - 1202 , - 2513 , - 1104 , - 175 , - 2926 , - 2957 , - 268 , - 1259 , - 2730 , - 1481 , - 712 , - 423 , - 614 , - 1285 , - 2436 , - 867 , - 2978 , - 2369 , - 2240 , - 2591 , - 222 , - 1533 , - 124 , - 2395 , - 1946 , - 1977 , - 2488 , - 279 , - 1750 , - 501 , - 2932 , - 2643 , - 2834 , - 305 , - 1456 , - 3087 , - 1998 , - 1389 , - 1260 , - 1611 , - 2442 , - 553 , - 2344 , - 1415 , - 966 , - 997 , - 1508 , - 2499 , - 770 , - 2721 , - 1952 , - 1663 , - 1854 , - 2525 , - 476 , - 2107 , - 1018 , - 409 , - 280 , - 631 , - 1462 , - 2773 , - 1364 , - 435 , - 3186 , - 17 , - 528 , - 1519 , - 2990 , - 1741 , - 972 , - 683 , - 874 , - 1545 , - 2696 , - 1127 , - 38 , - 2629 , - 2500 , - 2851 , - 482 , - 1793 , - 384 , - 2655 , - 2206 , - 2237 , - 2748 , - 539 , - 2010 , - 761 , - 3192 , - 2903 , - 3094 , - 565 , - 1716 , - 147 , - 2258 , - 1649 , - 1520 , - 1871 , - 2702 , - 813 , - 2604 , - 1675 , - 1226 , - 1257 , - 1768 , - 2759 , - 1030 , - 2981 , - 2212 , - 1923 , - 2114 , - 2785 , - 736 , - 2367 , - 1278 , - 669 , - 540 , - 891 , - 1722 , - 3033 , - 1624 , - 695 , - 246 , - 277 , - 788 , - 1779 , - 50 , - 2001 , - 1232 , - 943 , - 1134 , - 1805 , - 2956 , - 1387 , - 298 , - 2889 , - 2760 , - 3111 , - 742 , - 2053 , - 644 , - 2915 , - 2466 , - 2497 , - 3008 , - 799 , - 2270 , - 1021 , - 252 , - 3163 , - 154 , - 825 , - 1976 , - 407 , - 2518 , - 1909 , - 1780 , - 2131 , - 2962 , - 1073 , - 2864 , - 1935 , - 1486 , - 1517 , - 2028 , - 3019 , - 1290 , - 41 , - 2472 , - 2183 , - 2374 , - 3045 , - 996 , - 2627 , - 1538 , - 929 , - 800 , - 1151 , - 1982 , - 93 , - 1884 , - 955 , - 506 , - 537 , - 1048 , - 2039 , - 310 , - 2261 , - 1492 , - 1203 , - 1394 , - 2065 , - 16 , - 1647 , - 558 , - 3149 , - 3020 , - 171 , - 1002 , - 2313 , - 904 , - 3175 , - 2726 , - 2757 , - 68 , - 1059 , - 2530 , - 1281 , - 512 , - 223 , - 414 , - 1085 , - 2236 , - 667 , - 2778 , - 2169 , - 2040 , - 2391 , - 22 , - 1333 , - 3124 , - 2195 , - 1746 , - 1777 , - 2288 , - 79 , - 1550 , - 301 , - 2732 , - 2443 , - 2634 , - 105 , - 1256 , - 2887 , - 1798 , - 1189 , - 1060 , - 1411 , - 2242 , - 353 , - 2144 , - 1215 , - 766 , - 797 , - 1308 , - 2299 , - 570 , - 2521 , - 1752 , - 1463 , - 1654 , - 2325 , - 276 , - 1907 , - 818 , - 209 , - 80 , - 431 , - 1262 , - 2573 , - 1164 , - 235 , - 2986 , - 3017 , - 328 , - 1319 , - 2790 , - 1541 , - 772 , - 483 , - 674 , - 1345 , - 2496 , - 927 , - 3038 , - 2429 , - 2300 , - 2651 , - 282 , - 1593 , - 184 , - 2455 , - 2006 , - 2037 , - 2548 , - 339 , - 1810 , - 561 , - 2992 , - 2703 , - 2894 , - 365 , - 1516 , - 3147 , - 2058 , - 1449 , - 1320 , - 1671 , - 2502 , - 613 , - 2404 , - 1475 , - 1026 , - 1057 , - 1568 , - 2559 , - 830 , - 2781 , - 2012 , - 1723 , - 1914 , - 2585 , - 536 , - 2167 , - 1078 , - 469 , - 340 , - 691 , - 1522 , - 2833 , - 1424 , - 495 , - 46 , - 77 , - 588 , - 1579 , - 3050 , - 1801 , - 1032 , - 743 , - 934 , - 1605 , - 2756 , - 1187 , - 98 , - 2689 , - 2560 , - 2911 , - 542 , - 1853 , - 444 , - 2715 , - 2266 , - 2297 , - 2808 , - 599 , - 2070 , - 821 , - 52 , - 2963 , - 3154 , - 625 , - 1776 , - 207 , - 2318 , - 1709 , - 1580 , - 1931 , - 2762 , - 873 , - 2664 , - 1735 , - 1286 , - 1317 , - 1828 , - 2819 , - 1090 , - 3041 , - 2272 , - 1983 , - 2174 , - 2845 , - 796 , - 2427 , - 1338 , - 729 , - 600 , - 951 , - 1782 , - 3093 , - 1684 , - 755 , - 306 , - 337 , - 848 , - 1839 , - 110 , - 2061 , - 1292 , - 1003 , - 1194 , - 1865 , - 3016 , - 1447 , - 358 , - 2949 , - 2820 , - 3171 , - 802 , - 2113 , - 704 , - 2975 , - 2526 , - 2557 , - 3068 , - 859 , - 2330 , - 1081 , - 312 , - 23 , - 214 , - 885 , - 2036 , - 467 , - 2578 , - 1969 , - 1840 , - 2191 , - 3022 , - 1133 , - 2924 , - 1995 , - 1546 , - 1577 , - 2088 , - 3079 , - 1350 , - 101 , - 2532 , - 2243 , - 2434 , - 3105 , - 1056 , - 2687 , - 1598 , - 989 , - 860 , - 1211 , - 2042 , - 153 , - 1944 , - 1015 , - 566 , - 597 , - 1108 , - 2099 , - 370 , - 2321 , - 1552 , - 1263 , - 1454 , - 2125 , - 76 , - 1707 , - 618 , - 9 , - 3080 , - 231 , - 1062 , - 2373 , - 964 , - 35 , - 2786 , - 2817 , - 128 , - 1119 , - 2590 , - 1341 , - 572 , - 283 , - 474 , - 1145 , - 2296 , - 727 , - 2838 , - 2229 , - 2100 , - 2451 , - 82 , - 1393 , - 3184 , - 2255 , - 1806 , - 1837 , - 2348 , - 139 , - 1610 , - 361 , - 2792 , - 2503 , - 2694 , - 165 , - 1316 , - 2947 , - 1858 , - 1249 , - 1120 , - 1471 , - 2302 , - 413 , - 2204 , - 1275 , - 826 , - 857 , - 1368 , - 2359 , - 630 , - 2581 , - 1812 , - 1523 , - 1714 , - 2385 , - 336 , - 1967 , - 878 , - 269 , - 140 , - 491 , - 1322 , - 2633 , - 1224 , - 295 , - 3046 , - 3077 , - 388 , - 1379 , - 2850 , - 1601 , - 832 , - 543 , - 734 , - 1405 , - 2556 , - 987 , - 3098 , - 2489 , - 2360 , - 2711 , - 342 , - 1653 , - 244 , - 2515 , - 2066 , - 2097 , - 2608 , - 399 , - 1870 , - 621 , - 3052 , - 2763 , - 2954 , - 425 , - 1576 , - 7 , - 2118 , - 1509 , - 1380 , - 1731 , - 2562 , - 673 , - 2464 , - 1535 , - 1086 , - 1117 , - 1628 , - 2619 , - 890 , - 2841 , - 2072 , - 1783 , - 1974 , - 2645 , - 596 , - 2227 , - 1138 , - 529 , - 400 , - 751 , - 1582 , - 2893 , - 1484 , - 555 , - 106 , - 137 , - 648 , - 1639 , - 3110 , - 1861 , - 1092 , - 803 , - 994 , - 1665 , - 2816 , - 1247 , - 158 , - 2749 , - 2620 , - 2971 , - 602 , - 1913 , - 504 , - 2775 , - 2326 , - 2357 , - 2868 , - 659 , - 2130 , - 881 , - 112 , - 3023 , - 14 , - 685 , - 1836 , - 267 , - 2378 , - 1769 , - 1640 , - 1991 , - 2822 , - 933 , - 2724 , - 1795 , - 1346 , - 1377 , - 1888 , - 2879 , - 1150 , - 3101 , - 2332 , - 2043 , - 2234 , - 2905 , - 856 , - 2487 , - 1398 , - 789 , - 660 , - 1011 , - 1842 , - 3153 , - 1744 , - 815 , - 366 , - 397 , - 908 , - 1899 , - 170 , - 2121 , - 1352 , - 1063 , - 1254 , - 1925 , - 3076 , - 1507 , - 418 , - 3009 , - 2880 , - 31 , - 862 , - 2173 , - 764 , - 3035 , - 2586 , - 2617 , - 3128 , - 919 , - 2390 , - 1141 , - 372 , - 83 , - 274 , - 945 , - 2096 , - 527 , - 2638 , - 2029 , - 1900 , - 2251 , - 3082 , - 1193 , - 2984 , - 2055 , - 1606 , - 1637 , - 2148 , - 3139 , - 1410 , - 161 , - 2592 , - 2303 , - 2494 , - 3165 , - 1116 , - 2747 , - 1658 , - 1049 , - 920 , - 1271 , - 2102 , - 213 , - 2004 , - 1075 , - 626 , - 657 , - 1168 , - 2159 , - 430 , - 2381 , - 1612 , - 1323 , - 1514 , - 2185 , - 136 , - 1767 , - 678 , - 69 , - 3140 , - 291 , - 1122 , - 2433 , - 1024 , - 95 , - 2846 , - 2877 , - 188 , - 1179 , - 2650 , - 1401 , - 632 , - 343 , - 534 , - 1205 , - 2356 , - 787 , - 2898 , - 2289 , - 2160 , - 2511 , - 142 , - 1453 , - 44 , - 2315 , - 1866 , - 1897 , - 2408 , - 199 , - 1670 , - 421 , - 2852 , - 2563 , - 2754 , - 225 , - 1376 , - 3007 , - 1918 , - 1309 , - 1180 , - 1531 , - 2362 , - 473 , - 2264 , - 1335 , - 886 , - 917 , - 1428 , - 2419 , - 690 , - 2641 , - 1872 , - 1583 , - 1774 , - 2445 , - 396 , - 2027 , - 938 , - 329 , - 200 , - 551 , - 1382 , - 2693 , - 1284 , - 355 , - 3106 , - 3137 , - 448 , - 1439 , - 2910 , - 1661 , - 892 , - 603 , - 794 , - 1465 , - 2616 , - 1047 , - 3158 , - 2549 , - 2420 , - 2771 , - 402 , - 1713 , - 304 , - 2575 , - 2126 , - 2157 , - 2668 , - 459 , - 1930 , - 681 , - 3112 , - 2823 , - 3014 , - 485 , - 1636 , - 67 , - 2178 , - 1569 , - 1440 , - 1791 , - 2622 , - 733 , - 2524 , - 1595 , - 1146 , - 1177 , - 1688 , - 2679 , - 950 , - 2901 , - 2132 , - 1843 , - 2034 , - 2705 , - 656 , - 2287 , - 1198 , - 589 , - 460 , - 811 , - 1642 , - 2953 , - 1544 , - 615 , - 166 , - 197 , - 708 , - 1699 , - 3170 , - 1921 , - 1152 , - 863 , - 1054 , - 1725 , - 2876 , - 1307 , - 218 , - 2809 , - 2680 , - 3031 , - 662 , - 1973 , - 564 , - 2835 , - 2386 , - 2417 , - 2928 , - 719 , - 2190 , - 941 , - 172 , - 3083 , - 74 , - 745 , - 1896 , - 327 , - 2438 , - 1829 , - 1700 , - 2051 , - 2882 , - 993 , - 2784 , - 1855 , - 1406 , - 1437 , - 1948 , - 2939 , - 1210 , - 3161 , - 2392 , - 2103 , - 2294 , - 2965 , - 916 , - 2547 , - 1458 , - 849 , - 720 , - 1071 , - 1902 , - 13 , - 1804 , - 875 , - 426 , - 457 , - 968 , - 1959 , - 230 , - 2181 , - 1412 , - 1123 , - 1314 , - 1985 , - 3136 , - 1567 , - 478 , - 3069 , - 2940 , - 91 , - 922 , - 2233 , - 824 , - 3095 , - 2646 , - 2677 , - 3188 , - 979 , - 2450 , - 1201 , - 432 , - 143 , - 334 , - 1005 , - 2156 , - 587 , - 2698 , - 2089 , - 1960 , - 2311 , - 3142 , - 1253 , - 3044 , - 2115 , - 1666 , - 1697 , - 2208 , - 3199 , - 1470 , - 221 , - 2652 , - 2363 , - 2554 , - 25 , - 1176 , - 2807 , - 1718 , - 1109 , - 980 , - 1331 , - 2162 , - 273 , - 2064 , - 1135 , - 686 , - 717 , - 1228 , - 2219 , - 490 , - 2441 , - 1672 , - 1383 , - 1574 , - 2245 , - 196 , - 1827 , - 738 , - 129 , - 0 , - 647 , - 1702 , - 3165 , - 1772 , - 787 , - 210 , - 41 , - 280 , - 927 , - 1982 , - 181 , - 2052 , - 1067 , - 490 , - 321 , - 560 , - 1207 , - 2262 , - 461 , - 2332 , - 1347 , - 770 , - 601 , - 840 , - 1487 , - 2542 , - 741 , - 2612 , - 1627 , - 1050 , - 881 , - 1120 , - 1767 , - 2822 , - 1021 , - 2892 , - 1907 , - 1330 , - 1161 , - 1400 , - 2047 , - 3102 , - 1301 , - 3172 , - 2187 , - 1610 , - 1441 , - 1680 , - 2327 , - 118 , - 1581 , - 188 , - 2467 , - 1890 , - 1721 , - 1960 , - 2607 , - 398 , - 1861 , - 468 , - 2747 , - 2170 , - 2001 , - 2240 , - 2887 , - 678 , - 2141 , - 748 , - 3027 , - 2450 , - 2281 , - 2520 , - 3167 , - 958 , - 2421 , - 1028 , - 43 , - 2730 , - 2561 , - 2800 , - 183 , - 1238 , - 2701 , - 1308 , - 323 , - 3010 , - 2841 , - 3080 , - 463 , - 1518 , - 2981 , - 1588 , - 603 , - 26 , - 3121 , - 96 , - 743 , - 1798 , - 3261 , - 1868 , - 883 , - 306 , - 137 , - 376 , - 1023 , - 2078 , - 277 , - 2148 , - 1163 , - 586 , - 417 , - 656 , - 1303 , - 2358 , - 557 , - 2428 , - 1443 , - 866 , - 697 , - 936 , - 1583 , - 2638 , - 837 , - 2708 , - 1723 , - 1146 , - 977 , - 1216 , - 1863 , - 2918 , - 1117 , - 2988 , - 2003 , - 1426 , - 1257 , - 1496 , - 2143 , - 3198 , - 1397 , - 4 , - 2283 , - 1706 , - 1537 , - 1776 , - 2423 , - 214 , - 1677 , - 284 , - 2563 , - 1986 , - 1817 , - 2056 , - 2703 , - 494 , - 1957 , - 564 , - 2843 , - 2266 , - 2097 , - 2336 , - 2983 , - 774 , - 2237 , - 844 , - 3123 , - 2546 , - 2377 , - 2616 , - 3263 , - 1054 , - 2517 , - 1124 , - 139 , - 2826 , - 2657 , - 2896 , - 279 , - 1334 , - 2797 , - 1404 , - 419 , - 3106 , - 2937 , - 3176 , - 559 , - 1614 , - 3077 , - 1684 , - 699 , - 122 , - 3217 , - 192 , - 839 , - 1894 , - 93 , - 1964 , - 979 , - 402 , - 233 , - 472 , - 1119 , - 2174 , - 373 , - 2244 , - 1259 , - 682 , - 513 , - 752 , - 1399 , - 2454 , - 653 , - 2524 , - 1539 , - 962 , - 793 , - 1032 , - 1679 , - 2734 , - 933 , - 2804 , - 1819 , - 1242 , - 1073 , - 1312 , - 1959 , - 3014 , - 1213 , - 3084 , - 2099 , - 1522 , - 1353 , - 1592 , - 2239 , - 30 , - 1493 , - 100 , - 2379 , - 1802 , - 1633 , - 1872 , - 2519 , - 310 , - 1773 , - 380 , - 2659 , - 2082 , - 1913 , - 2152 , - 2799 , - 590 , - 2053 , - 660 , - 2939 , - 2362 , - 2193 , - 2432 , - 3079 , - 870 , - 2333 , - 940 , - 3219 , - 2642 , - 2473 , - 2712 , - 95 , - 1150 , - 2613 , - 1220 , - 235 , - 2922 , - 2753 , - 2992 , - 375 , - 1430 , - 2893 , - 1500 , - 515 , - 3202 , - 3033 , - 8 , - 655 , - 1710 , - 3173 , - 1780 , - 795 , - 218 , - 49 , - 288 , - 935 , - 1990 , - 189 , - 2060 , - 1075 , - 498 , - 329 , - 568 , - 1215 , - 2270 , - 469 , - 2340 , - 1355 , - 778 , - 609 , - 848 , - 1495 , - 2550 , - 749 , - 2620 , - 1635 , - 1058 , - 889 , - 1128 , - 1775 , - 2830 , - 1029 , - 2900 , - 1915 , - 1338 , - 1169 , - 1408 , - 2055 , - 3110 , - 1309 , - 3180 , - 2195 , - 1618 , - 1449 , - 1688 , - 2335 , - 126 , - 1589 , - 196 , - 2475 , - 1898 , - 1729 , - 1968 , - 2615 , - 406 , - 1869 , - 476 , - 2755 , - 2178 , - 2009 , - 2248 , - 2895 , - 686 , - 2149 , - 756 , - 3035 , - 2458 , - 2289 , - 2528 , - 3175 , - 966 , - 2429 , - 1036 , - 51 , - 2738 , - 2569 , - 2808 , - 191 , - 1246 , - 2709 , - 1316 , - 331 , - 3018 , - 2849 , - 3088 , - 471 , - 1526 , - 2989 , - 1596 , - 611 , - 34 , - 3129 , - 104 , - 751 , - 1806 , - 5 , - 1876 , - 891 , - 314 , - 145 , - 384 , - 1031 , - 2086 , - 285 , - 2156 , - 1171 , - 594 , - 425 , - 664 , - 1311 , - 2366 , - 565 , - 2436 , - 1451 , - 874 , - 705 , - 944 , - 1591 , - 2646 , - 845 , - 2716 , - 1731 , - 1154 , - 985 , - 1224 , - 1871 , - 2926 , - 1125 , - 2996 , - 2011 , - 1434 , - 1265 , - 1504 , - 2151 , - 3206 , - 1405 , - 12 , - 2291 , - 1714 , - 1545 , - 1784 , - 2431 , - 222 , - 1685 , - 292 , - 2571 , - 1994 , - 1825 , - 2064 , - 2711 , - 502 , - 1965 , - 572 , - 2851 , - 2274 , - 2105 , - 2344 , - 2991 , - 782 , - 2245 , - 852 , - 3131 , - 2554 , - 2385 , - 2624 , - 7 , - 1062 , - 2525 , - 1132 , - 147 , - 2834 , - 2665 , - 2904 , - 287 , - 1342 , - 2805 , - 1412 , - 427 , - 3114 , - 2945 , - 3184 , - 567 , - 1622 , - 3085 , - 1692 , - 707 , - 130 , - 3225 , - 200 , - 847 , - 1902 , - 101 , - 1972 , - 987 , - 410 , - 241 , - 480 , - 1127 , - 2182 , - 381 , - 2252 , - 1267 , - 690 , - 521 , - 760 , - 1407 , - 2462 , - 661 , - 2532 , - 1547 , - 970 , - 801 , - 1040 , - 1687 , - 2742 , - 941 , - 2812 , - 1827 , - 1250 , - 1081 , - 1320 , - 1967 , - 3022 , - 1221 , - 3092 , - 2107 , - 1530 , - 1361 , - 1600 , - 2247 , - 38 , - 1501 , - 108 , - 2387 , - 1810 , - 1641 , - 1880 , - 2527 , - 318 , - 1781 , - 388 , - 2667 , - 2090 , - 1921 , - 2160 , - 2807 , - 598 , - 2061 , - 668 , - 2947 , - 2370 , - 2201 , - 2440 , - 3087 , - 878 , - 2341 , - 948 , - 3227 , - 2650 , - 2481 , - 2720 , - 103 , - 1158 , - 2621 , - 1228 , - 243 , - 2930 , - 2761 , - 3000 , - 383 , - 1438 , - 2901 , - 1508 , - 523 , - 3210 , - 3041 , - 16 , - 663 , - 1718 , - 3181 , - 1788 , - 803 , - 226 , - 57 , - 296 , - 943 , - 1998 , - 197 , - 2068 , - 1083 , - 506 , - 337 , - 576 , - 1223 , - 2278 , - 477 , - 2348 , - 1363 , - 786 , - 617 , - 856 , - 1503 , - 2558 , - 757 , - 2628 , - 1643 , - 1066 , - 897 , - 1136 , - 1783 , - 2838 , - 1037 , - 2908 , - 1923 , - 1346 , - 1177 , - 1416 , - 2063 , - 3118 , - 1317 , - 3188 , - 2203 , - 1626 , - 1457 , - 1696 , - 2343 , - 134 , - 1597 , - 204 , - 2483 , - 1906 , - 1737 , - 1976 , - 2623 , - 414 , - 1877 , - 484 , - 2763 , - 2186 , - 2017 , - 2256 , - 2903 , - 694 , - 2157 , - 764 , - 3043 , - 2466 , - 2297 , - 2536 , - 3183 , - 974 , - 2437 , - 1044 , - 59 , - 2746 , - 2577 , - 2816 , - 199 , - 1254 , - 2717 , - 1324 , - 339 , - 3026 , - 2857 , - 3096 , - 479 , - 1534 , - 2997 , - 1604 , - 619 , - 42 , - 3137 , - 112 , - 759 , - 1814 , - 13 , - 1884 , - 899 , - 322 , - 153 , - 392 , - 1039 , - 2094 , - 293 , - 2164 , - 1179 , - 602 , - 433 , - 672 , - 1319 , - 2374 , - 573 , - 2444 , - 1459 , - 882 , - 713 , - 952 , - 1599 , - 2654 , - 853 , - 2724 , - 1739 , - 1162 , - 993 , - 1232 , - 1879 , - 2934 , - 1133 , - 3004 , - 2019 , - 1442 , - 1273 , - 1512 , - 2159 , - 3214 , - 1413 , - 20 , - 2299 , - 1722 , - 1553 , - 1792 , - 2439 , - 230 , - 1693 , - 300 , - 2579 , - 2002 , - 1833 , - 2072 , - 2719 , - 510 , - 1973 , - 580 , - 2859 , - 2282 , - 2113 , - 2352 , - 2999 , - 790 , - 2253 , - 860 , - 3139 , - 2562 , - 2393 , - 2632 , - 15 , - 1070 , - 2533 , - 1140 , - 155 , - 2842 , - 2673 , - 2912 , - 295 , - 1350 , - 2813 , - 1420 , - 435 , - 3122 , - 2953 , - 3192 , - 575 , - 1630 , - 3093 , - 1700 , - 715 , - 138 , - 3233 , - 208 , - 855 , - 1910 , - 109 , - 1980 , - 995 , - 418 , - 249 , - 488 , - 1135 , - 2190 , - 389 , - 2260 , - 1275 , - 698 , - 529 , - 768 , - 1415 , - 2470 , - 669 , - 2540 , - 1555 , - 978 , - 809 , - 1048 , - 1695 , - 2750 , - 949 , - 2820 , - 1835 , - 1258 , - 1089 , - 1328 , - 1975 , - 3030 , - 1229 , - 3100 , - 2115 , - 1538 , - 1369 , - 1608 , - 2255 , - 46 , - 1509 , - 116 , - 2395 , - 1818 , - 1649 , - 1888 , - 2535 , - 326 , - 1789 , - 396 , - 2675 , - 2098 , - 1929 , - 2168 , - 2815 , - 606 , - 2069 , - 676 , - 2955 , - 2378 , - 2209 , - 2448 , - 3095 , - 886 , - 2349 , - 956 , - 3235 , - 2658 , - 2489 , - 2728 , - 111 , - 1166 , - 2629 , - 1236 , - 251 , - 2938 , - 2769 , - 3008 , - 391 , - 1446 , - 2909 , - 1516 , - 531 , - 3218 , - 3049 , - 24 , - 671 , - 1726 , - 3189 , - 1796 , - 811 , - 234 , - 65 , - 304 , - 951 , - 2006 , - 205 , - 2076 , - 1091 , - 514 , - 345 , - 584 , - 1231 , - 2286 , - 485 , - 2356 , - 1371 , - 794 , - 625 , - 864 , - 1511 , - 2566 , - 765 , - 2636 , - 1651 , - 1074 , - 905 , - 1144 , - 1791 , - 2846 , - 1045 , - 2916 , - 1931 , - 1354 , - 1185 , - 1424 , - 2071 , - 3126 , - 1325 , - 3196 , - 2211 , - 1634 , - 1465 , - 1704 , - 2351 , - 142 , - 1605 , - 212 , - 2491 , - 1914 , - 1745 , - 1984 , - 2631 , - 422 , - 1885 , - 492 , - 2771 , - 2194 , - 2025 , - 2264 , - 2911 , - 702 , - 2165 , - 772 , - 3051 , - 2474 , - 2305 , - 2544 , - 3191 , - 982 , - 2445 , - 1052 , - 67 , - 2754 , - 2585 , - 2824 , - 207 , - 1262 , - 2725 , - 1332 , - 347 , - 3034 , - 2865 , - 3104 , - 487 , - 1542 , - 3005 , - 1612 , - 627 , - 50 , - 3145 , - 120 , - 767 , - 1822 , - 21 , - 1892 , - 907 , - 330 , - 161 , - 400 , - 1047 , - 2102 , - 301 , - 2172 , - 1187 , - 610 , - 441 , - 680 , - 1327 , - 2382 , - 581 , - 2452 , - 1467 , - 890 , - 721 , - 960 , - 1607 , - 2662 , - 861 , - 2732 , - 1747 , - 1170 , - 1001 , - 1240 , - 1887 , - 2942 , - 1141 , - 3012 , - 2027 , - 1450 , - 1281 , - 1520 , - 2167 , - 3222 , - 1421 , - 28 , - 2307 , - 1730 , - 1561 , - 1800 , - 2447 , - 238 , - 1701 , - 308 , - 2587 , - 2010 , - 1841 , - 2080 , - 2727 , - 518 , - 1981 , - 588 , - 2867 , - 2290 , - 2121 , - 2360 , - 3007 , - 798 , - 2261 , - 868 , - 3147 , - 2570 , - 2401 , - 2640 , - 23 , - 1078 , - 2541 , - 1148 , - 163 , - 2850 , - 2681 , - 2920 , - 303 , - 1358 , - 2821 , - 1428 , - 443 , - 3130 , - 2961 , - 3200 , - 583 , - 1638 , - 3101 , - 1708 , - 723 , - 146 , - 3241 , - 216 , - 863 , - 1918 , - 117 , - 1988 , - 1003 , - 426 , - 257 , - 496 , - 1143 , - 2198 , - 397 , - 2268 , - 1283 , - 706 , - 537 , - 776 , - 1423 , - 2478 , - 677 , - 2548 , - 1563 , - 986 , - 817 , - 1056 , - 1703 , - 2758 , - 957 , - 2828 , - 1843 , - 1266 , - 1097 , - 1336 , - 1983 , - 3038 , - 1237 , - 3108 , - 2123 , - 1546 , - 1377 , - 1616 , - 2263 , - 54 , - 1517 , - 124 , - 2403 , - 1826 , - 1657 , - 1896 , - 2543 , - 334 , - 1797 , - 404 , - 2683 , - 2106 , - 1937 , - 2176 , - 2823 , - 614 , - 2077 , - 684 , - 2963 , - 2386 , - 2217 , - 2456 , - 3103 , - 894 , - 2357 , - 964 , - 3243 , - 2666 , - 2497 , - 2736 , - 119 , - 1174 , - 2637 , - 1244 , - 259 , - 2946 , - 2777 , - 3016 , - 399 , - 1454 , - 2917 , - 1524 , - 539 , - 3226 , - 3057 , - 32 , - 679 , - 1734 , - 3197 , - 1804 , - 819 , - 242 , - 73 , - 312 , - 959 , - 2014 , - 213 , - 2084 , - 1099 , - 522 , - 353 , - 592 , - 1239 , - 2294 , - 493 , - 2364 , - 1379 , - 802 , - 633 , - 872 , - 1519 , - 2574 , - 773 , - 2644 , - 1659 , - 1082 , - 913 , - 1152 , - 1799 , - 2854 , - 1053 , - 2924 , - 1939 , - 1362 , - 1193 , - 1432 , - 2079 , - 3134 , - 1333 , - 3204 , - 2219 , - 1642 , - 1473 , - 1712 , - 2359 , - 150 , - 1613 , - 220 , - 2499 , - 1922 , - 1753 , - 1992 , - 2639 , - 430 , - 1893 , - 500 , - 2779 , - 2202 , - 2033 , - 2272 , - 2919 , - 710 , - 2173 , - 780 , - 3059 , - 2482 , - 2313 , - 2552 , - 3199 , - 990 , - 2453 , - 1060 , - 75 , - 2762 , - 2593 , - 2832 , - 215 , - 1270 , - 2733 , - 1340 , - 355 , - 3042 , - 2873 , - 3112 , - 495 , - 1550 , - 3013 , - 1620 , - 635 , - 58 , - 3153 , - 128 , - 775 , - 1830 , - 29 , - 1900 , - 915 , - 338 , - 169 , - 408 , - 1055 , - 2110 , - 309 , - 2180 , - 1195 , - 618 , - 449 , - 688 , - 1335 , - 2390 , - 589 , - 2460 , - 1475 , - 898 , - 729 , - 968 , - 1615 , - 2670 , - 869 , - 2740 , - 1755 , - 1178 , - 1009 , - 1248 , - 1895 , - 2950 , - 1149 , - 3020 , - 2035 , - 1458 , - 1289 , - 1528 , - 2175 , - 3230 , - 1429 , - 36 , - 2315 , - 1738 , - 1569 , - 1808 , - 2455 , - 246 , - 1709 , - 316 , - 2595 , - 2018 , - 1849 , - 2088 , - 2735 , - 526 , - 1989 , - 596 , - 2875 , - 2298 , - 2129 , - 2368 , - 3015 , - 806 , - 2269 , - 876 , - 3155 , - 2578 , - 2409 , - 2648 , - 31 , - 1086 , - 2549 , - 1156 , - 171 , - 2858 , - 2689 , - 2928 , - 311 , - 1366 , - 2829 , - 1436 , - 451 , - 3138 , - 2969 , - 3208 , - 591 , - 1646 , - 3109 , - 1716 , - 731 , - 154 , - 3249 , - 224 , - 871 , - 1926 , - 125 , - 1996 , - 1011 , - 434 , - 265 , - 504 , - 1151 , - 2206 , - 405 , - 2276 , - 1291 , - 714 , - 545 , - 784 , - 1431 , - 2486 , - 685 , - 2556 , - 1571 , - 994 , - 825 , - 1064 , - 1711 , - 2766 , - 965 , - 2836 , - 1851 , - 1274 , - 1105 , - 1344 , - 1991 , - 3046 , - 1245 , - 3116 , - 2131 , - 1554 , - 1385 , - 1624 , - 2271 , - 62 , - 1525 , - 132 , - 2411 , - 1834 , - 1665 , - 1904 , - 2551 , - 342 , - 1805 , - 412 , - 2691 , - 2114 , - 1945 , - 2184 , - 2831 , - 622 , - 2085 , - 692 , - 2971 , - 2394 , - 2225 , - 2464 , - 3111 , - 902 , - 2365 , - 972 , - 3251 , - 2674 , - 2505 , - 2744 , - 127 , - 1182 , - 2645 , - 1252 , - 267 , - 2954 , - 2785 , - 3024 , - 407 , - 1462 , - 2925 , - 1532 , - 547 , - 3234 , - 3065 , - 40 , - 687 , - 1742 , - 3205 , - 1812 , - 827 , - 250 , - 81 , - 320 , - 967 , - 2022 , - 221 , - 2092 , - 1107 , - 530 , - 361 , - 600 , - 1247 , - 2302 , - 501 , - 2372 , - 1387 , - 810 , - 641 , - 880 , - 1527 , - 2582 , - 781 , - 2652 , - 1667 , - 1090 , - 921 , - 1160 , - 1807 , - 2862 , - 1061 , - 2932 , - 1947 , - 1370 , - 1201 , - 1440 , - 2087 , - 3142 , - 1341 , - 3212 , - 2227 , - 1650 , - 1481 , - 1720 , - 2367 , - 158 , - 1621 , - 228 , - 2507 , - 1930 , - 1761 , - 2000 , - 2647 , - 438 , - 1901 , - 508 , - 2787 , - 2210 , - 2041 , - 2280 , - 2927 , - 718 , - 2181 , - 788 , - 3067 , - 2490 , - 2321 , - 2560 , - 3207 , - 998 , - 2461 , - 1068 , - 83 , - 2770 , - 2601 , - 2840 , - 223 , - 1278 , - 2741 , - 1348 , - 363 , - 3050 , - 2881 , - 3120 , - 503 , - 1558 , - 3021 , - 1628 , - 643 , - 66 , - 3161 , - 136 , - 783 , - 1838 , - 37 , - 1908 , - 923 , - 346 , - 177 , - 416 , - 1063 , - 2118 , - 317 , - 2188 , - 1203 , - 626 , - 457 , - 696 , - 1343 , - 2398 , - 597 , - 2468 , - 1483 , - 906 , - 737 , - 976 , - 1623 , - 2678 , - 877 , - 2748 , - 1763 , - 1186 , - 1017 , - 1256 , - 1903 , - 2958 , - 1157 , - 3028 , - 2043 , - 1466 , - 1297 , - 1536 , - 2183 , - 3238 , - 1437 , - 44 , - 2323 , - 1746 , - 1577 , - 1816 , - 2463 , - 254 , - 1717 , - 324 , - 2603 , - 2026 , - 1857 , - 2096 , - 2743 , - 534 , - 1997 , - 604 , - 2883 , - 2306 , - 2137 , - 2376 , - 3023 , - 814 , - 2277 , - 884 , - 3163 , - 2586 , - 2417 , - 2656 , - 39 , - 1094 , - 2557 , - 1164 , - 179 , - 2866 , - 2697 , - 2936 , - 319 , - 1374 , - 2837 , - 1444 , - 459 , - 3146 , - 2977 , - 3216 , - 599 , - 1654 , - 3117 , - 1724 , - 739 , - 162 , - 3257 , - 232 , - 879 , - 1934 , - 133 , - 2004 , - 1019 , - 442 , - 273 , - 512 , - 1159 , - 2214 , - 413 , - 2284 , - 1299 , - 722 , - 553 , - 792 , - 1439 , - 2494 , - 693 , - 2564 , - 1579 , - 1002 , - 833 , - 1072 , - 1719 , - 2774 , - 973 , - 2844 , - 1859 , - 1282 , - 1113 , - 1352 , - 1999 , - 3054 , - 1253 , - 3124 , - 2139 , - 1562 , - 1393 , - 1632 , - 2279 , - 70 , - 1533 , - 140 , - 2419 , - 1842 , - 1673 , - 1912 , - 2559 , - 350 , - 1813 , - 420 , - 2699 , - 2122 , - 1953 , - 2192 , - 2839 , - 630 , - 2093 , - 700 , - 2979 , - 2402 , - 2233 , - 2472 , - 3119 , - 910 , - 2373 , - 980 , - 3259 , - 2682 , - 2513 , - 2752 , - 135 , - 1190 , - 2653 , - 1260 , - 275 , - 2962 , - 2793 , - 3032 , - 415 , - 1470 , - 2933 , - 1540 , - 555 , - 3242 , - 3073 , - 48 , - 695 , - 1750 , - 3213 , - 1820 , - 835 , - 258 , - 89 , - 328 , - 975 , - 2030 , - 229 , - 2100 , - 1115 , - 538 , - 369 , - 608 , - 1255 , - 2310 , - 509 , - 2380 , - 1395 , - 818 , - 649 , - 888 , - 1535 , - 2590 , - 789 , - 2660 , - 1675 , - 1098 , - 929 , - 1168 , - 1815 , - 2870 , - 1069 , - 2940 , - 1955 , - 1378 , - 1209 , - 1448 , - 2095 , - 3150 , - 1349 , - 3220 , - 2235 , - 1658 , - 1489 , - 1728 , - 2375 , - 166 , - 1629 , - 236 , - 2515 , - 1938 , - 1769 , - 2008 , - 2655 , - 446 , - 1909 , - 516 , - 2795 , - 2218 , - 2049 , - 2288 , - 2935 , - 726 , - 2189 , - 796 , - 3075 , - 2498 , - 2329 , - 2568 , - 3215 , - 1006 , - 2469 , - 1076 , - 91 , - 2778 , - 2609 , - 2848 , - 231 , - 1286 , - 2749 , - 1356 , - 371 , - 3058 , - 2889 , - 3128 , - 511 , - 1566 , - 3029 , - 1636 , - 651 , - 74 , - 3169 , - 144 , - 791 , - 1846 , - 45 , - 1916 , - 931 , - 354 , - 185 , - 424 , - 1071 , - 2126 , - 325 , - 2196 , - 1211 , - 634 , - 465 , - 704 , - 1351 , - 2406 , - 605 , - 2476 , - 1491 , - 914 , - 745 , - 984 , - 1631 , - 2686 , - 885 , - 2756 , - 1771 , - 1194 , - 1025 , - 1264 , - 1911 , - 2966 , - 1165 , - 3036 , - 2051 , - 1474 , - 1305 , - 1544 , - 2191 , - 3246 , - 1445 , - 52 , - 2331 , - 1754 , - 1585 , - 1824 , - 2471 , - 262 , - 1725 , - 332 , - 2611 , - 2034 , - 1865 , - 2104 , - 2751 , - 542 , - 2005 , - 612 , - 2891 , - 2314 , - 2145 , - 2384 , - 3031 , - 822 , - 2285 , - 892 , - 3171 , - 2594 , - 2425 , - 2664 , - 47 , - 1102 , - 2565 , - 1172 , - 187 , - 2874 , - 2705 , - 2944 , - 327 , - 1382 , - 2845 , - 1452 , - 467 , - 3154 , - 2985 , - 3224 , - 607 , - 1662 , - 3125 , - 1732 , - 747 , - 170 , - 1 , - 240 , - 887 , - 1942 , - 141 , - 2012 , - 1027 , - 450 , - 281 , - 520 , - 1167 , - 2222 , - 421 , - 2292 , - 1307 , - 730 , - 561 , - 800 , - 1447 , - 2502 , - 701 , - 2572 , - 1587 , - 1010 , - 841 , - 1080 , - 1727 , - 2782 , - 981 , - 2852 , - 1867 , - 1290 , - 1121 , - 1360 , - 2007 , - 3062 , - 1261 , - 3132 , - 2147 , - 1570 , - 1401 , - 1640 , - 2287 , - 78 , - 1541 , - 148 , - 2427 , - 1850 , - 1681 , - 1920 , - 2567 , - 358 , - 1821 , - 428 , - 2707 , - 2130 , - 1961 , - 2200 , - 2847 , - 638 , - 2101 , - 708 , - 2987 , - 2410 , - 2241 , - 2480 , - 3127 , - 918 , - 2381 , - 988 , - 3 , - 2690 , - 2521 , - 2760 , - 143 , - 1198 , - 2661 , - 1268 , - 283 , - 2970 , - 2801 , - 3040 , - 423 , - 1478 , - 2941 , - 1548 , - 563 , - 3250 , - 3081 , - 56 , - 703 , - 1758 , - 3221 , - 1828 , - 843 , - 266 , - 97 , - 336 , - 983 , - 2038 , - 237 , - 2108 , - 1123 , - 546 , - 377 , - 616 , - 1263 , - 2318 , - 517 , - 2388 , - 1403 , - 826 , - 657 , - 896 , - 1543 , - 2598 , - 797 , - 2668 , - 1683 , - 1106 , - 937 , - 1176 , - 1823 , - 2878 , - 1077 , - 2948 , - 1963 , - 1386 , - 1217 , - 1456 , - 2103 , - 3158 , - 1357 , - 3228 , - 2243 , - 1666 , - 1497 , - 1736 , - 2383 , - 174 , - 1637 , - 244 , - 2523 , - 1946 , - 1777 , - 2016 , - 2663 , - 454 , - 1917 , - 524 , - 2803 , - 2226 , - 2057 , - 2296 , - 2943 , - 734 , - 2197 , - 804 , - 3083 , - 2506 , - 2337 , - 2576 , - 3223 , - 1014 , - 2477 , - 1084 , - 99 , - 2786 , - 2617 , - 2856 , - 239 , - 1294 , - 2757 , - 1364 , - 379 , - 3066 , - 2897 , - 3136 , - 519 , - 1574 , - 3037 , - 1644 , - 659 , - 82 , - 3177 , - 152 , - 799 , - 1854 , - 53 , - 1924 , - 939 , - 362 , - 193 , - 432 , - 1079 , - 2134 , - 333 , - 2204 , - 1219 , - 642 , - 473 , - 712 , - 1359 , - 2414 , - 613 , - 2484 , - 1499 , - 922 , - 753 , - 992 , - 1639 , - 2694 , - 893 , - 2764 , - 1779 , - 1202 , - 1033 , - 1272 , - 1919 , - 2974 , - 1173 , - 3044 , - 2059 , - 1482 , - 1313 , - 1552 , - 2199 , - 3254 , - 1453 , - 60 , - 2339 , - 1762 , - 1593 , - 1832 , - 2479 , - 270 , - 1733 , - 340 , - 2619 , - 2042 , - 1873 , - 2112 , - 2759 , - 550 , - 2013 , - 620 , - 2899 , - 2322 , - 2153 , - 2392 , - 3039 , - 830 , - 2293 , - 900 , - 3179 , - 2602 , - 2433 , - 2672 , - 55 , - 1110 , - 2573 , - 1180 , - 195 , - 2882 , - 2713 , - 2952 , - 335 , - 1390 , - 2853 , - 1460 , - 475 , - 3162 , - 2993 , - 3232 , - 615 , - 1670 , - 3133 , - 1740 , - 755 , - 178 , - 9 , - 248 , - 895 , - 1950 , - 149 , - 2020 , - 1035 , - 458 , - 289 , - 528 , - 1175 , - 2230 , - 429 , - 2300 , - 1315 , - 738 , - 569 , - 808 , - 1455 , - 2510 , - 709 , - 2580 , - 1595 , - 1018 , - 849 , - 1088 , - 1735 , - 2790 , - 989 , - 2860 , - 1875 , - 1298 , - 1129 , - 1368 , - 2015 , - 3070 , - 1269 , - 3140 , - 2155 , - 1578 , - 1409 , - 1648 , - 2295 , - 86 , - 1549 , - 156 , - 2435 , - 1858 , - 1689 , - 1928 , - 2575 , - 366 , - 1829 , - 436 , - 2715 , - 2138 , - 1969 , - 2208 , - 2855 , - 646 , - 2109 , - 716 , - 2995 , - 2418 , - 2249 , - 2488 , - 3135 , - 926 , - 2389 , - 996 , - 11 , - 2698 , - 2529 , - 2768 , - 151 , - 1206 , - 2669 , - 1276 , - 291 , - 2978 , - 2809 , - 3048 , - 431 , - 1486 , - 2949 , - 1556 , - 571 , - 3258 , - 3089 , - 64 , - 711 , - 1766 , - 3229 , - 1836 , - 851 , - 274 , - 105 , - 344 , - 991 , - 2046 , - 245 , - 2116 , - 1131 , - 554 , - 385 , - 624 , - 1271 , - 2326 , - 525 , - 2396 , - 1411 , - 834 , - 665 , - 904 , - 1551 , - 2606 , - 805 , - 2676 , - 1691 , - 1114 , - 945 , - 1184 , - 1831 , - 2886 , - 1085 , - 2956 , - 1971 , - 1394 , - 1225 , - 1464 , - 2111 , - 3166 , - 1365 , - 3236 , - 2251 , - 1674 , - 1505 , - 1744 , - 2391 , - 182 , - 1645 , - 252 , - 2531 , - 1954 , - 1785 , - 2024 , - 2671 , - 462 , - 1925 , - 532 , - 2811 , - 2234 , - 2065 , - 2304 , - 2951 , - 742 , - 2205 , - 812 , - 3091 , - 2514 , - 2345 , - 2584 , - 3231 , - 1022 , - 2485 , - 1092 , - 107 , - 2794 , - 2625 , - 2864 , - 247 , - 1302 , - 2765 , - 1372 , - 387 , - 3074 , - 2905 , - 3144 , - 527 , - 1582 , - 3045 , - 1652 , - 667 , - 90 , - 3185 , - 160 , - 807 , - 1862 , - 61 , - 1932 , - 947 , - 370 , - 201 , - 440 , - 1087 , - 2142 , - 341 , - 2212 , - 1227 , - 650 , - 481 , - 720 , - 1367 , - 2422 , - 621 , - 2492 , - 1507 , - 930 , - 761 , - 1000 , - 1647 , - 2702 , - 901 , - 2772 , - 1787 , - 1210 , - 1041 , - 1280 , - 1927 , - 2982 , - 1181 , - 3052 , - 2067 , - 1490 , - 1321 , - 1560 , - 2207 , - 3262 , - 1461 , - 68 , - 2347 , - 1770 , - 1601 , - 1840 , - 2487 , - 278 , - 1741 , - 348 , - 2627 , - 2050 , - 1881 , - 2120 , - 2767 , - 558 , - 2021 , - 628 , - 2907 , - 2330 , - 2161 , - 2400 , - 3047 , - 838 , - 2301 , - 908 , - 3187 , - 2610 , - 2441 , - 2680 , - 63 , - 1118 , - 2581 , - 1188 , - 203 , - 2890 , - 2721 , - 2960 , - 343 , - 1398 , - 2861 , - 1468 , - 483 , - 3170 , - 3001 , - 3240 , - 623 , - 1678 , - 3141 , - 1748 , - 763 , - 186 , - 17 , - 256 , - 903 , - 1958 , - 157 , - 2028 , - 1043 , - 466 , - 297 , - 536 , - 1183 , - 2238 , - 437 , - 2308 , - 1323 , - 746 , - 577 , - 816 , - 1463 , - 2518 , - 717 , - 2588 , - 1603 , - 1026 , - 857 , - 1096 , - 1743 , - 2798 , - 997 , - 2868 , - 1883 , - 1306 , - 1137 , - 1376 , - 2023 , - 3078 , - 1277 , - 3148 , - 2163 , - 1586 , - 1417 , - 1656 , - 2303 , - 94 , - 1557 , - 164 , - 2443 , - 1866 , - 1697 , - 1936 , - 2583 , - 374 , - 1837 , - 444 , - 2723 , - 2146 , - 1977 , - 2216 , - 2863 , - 654 , - 2117 , - 724 , - 3003 , - 2426 , - 2257 , - 2496 , - 3143 , - 934 , - 2397 , - 1004 , - 19 , - 2706 , - 2537 , - 2776 , - 159 , - 1214 , - 2677 , - 1284 , - 299 , - 2986 , - 2817 , - 3056 , - 439 , - 1494 , - 2957 , - 1564 , - 579 , - 2 , - 3097 , - 72 , - 719 , - 1774 , - 3237 , - 1844 , - 859 , - 282 , - 113 , - 352 , - 999 , - 2054 , - 253 , - 2124 , - 1139 , - 562 , - 393 , - 632 , - 1279 , - 2334 , - 533 , - 2404 , - 1419 , - 842 , - 673 , - 912 , - 1559 , - 2614 , - 813 , - 2684 , - 1699 , - 1122 , - 953 , - 1192 , - 1839 , - 2894 , - 1093 , - 2964 , - 1979 , - 1402 , - 1233 , - 1472 , - 2119 , - 3174 , - 1373 , - 3244 , - 2259 , - 1682 , - 1513 , - 1752 , - 2399 , - 190 , - 1653 , - 260 , - 2539 , - 1962 , - 1793 , - 2032 , - 2679 , - 470 , - 1933 , - 540 , - 2819 , - 2242 , - 2073 , - 2312 , - 2959 , - 750 , - 2213 , - 820 , - 3099 , - 2522 , - 2353 , - 2592 , - 3239 , - 1030 , - 2493 , - 1100 , - 115 , - 2802 , - 2633 , - 2872 , - 255 , - 1310 , - 2773 , - 1380 , - 395 , - 3082 , - 2913 , - 3152 , - 535 , - 1590 , - 3053 , - 1660 , - 675 , - 98 , - 3193 , - 168 , - 815 , - 1870 , - 69 , - 1940 , - 955 , - 378 , - 209 , - 448 , - 1095 , - 2150 , - 349 , - 2220 , - 1235 , - 658 , - 489 , - 728 , - 1375 , - 2430 , - 629 , - 2500 , - 1515 , - 938 , - 769 , - 1008 , - 1655 , - 2710 , - 909 , - 2780 , - 1795 , - 1218 , - 1049 , - 1288 , - 1935 , - 2990 , - 1189 , - 3060 , - 2075 , - 1498 , - 1329 , - 1568 , - 2215 , - 6 , - 1469 , - 76 , - 2355 , - 1778 , - 1609 , - 1848 , - 2495 , - 286 , - 1749 , - 356 , - 2635 , - 2058 , - 1889 , - 2128 , - 2775 , - 566 , - 2029 , - 636 , - 2915 , - 2338 , - 2169 , - 2408 , - 3055 , - 846 , - 2309 , - 916 , - 3195 , - 2618 , - 2449 , - 2688 , - 71 , - 1126 , - 2589 , - 1196 , - 211 , - 2898 , - 2729 , - 2968 , - 351 , - 1406 , - 2869 , - 1476 , - 491 , - 3178 , - 3009 , - 3248 , - 631 , - 1686 , - 3149 , - 1756 , - 771 , - 194 , - 25 , - 264 , - 911 , - 1966 , - 165 , - 2036 , - 1051 , - 474 , - 305 , - 544 , - 1191 , - 2246 , - 445 , - 2316 , - 1331 , - 754 , - 585 , - 824 , - 1471 , - 2526 , - 725 , - 2596 , - 1611 , - 1034 , - 865 , - 1104 , - 1751 , - 2806 , - 1005 , - 2876 , - 1891 , - 1314 , - 1145 , - 1384 , - 2031 , - 3086 , - 1285 , - 3156 , - 2171 , - 1594 , - 1425 , - 1664 , - 2311 , - 102 , - 1565 , - 172 , - 2451 , - 1874 , - 1705 , - 1944 , - 2591 , - 382 , - 1845 , - 452 , - 2731 , - 2154 , - 1985 , - 2224 , - 2871 , - 662 , - 2125 , - 732 , - 3011 , - 2434 , - 2265 , - 2504 , - 3151 , - 942 , - 2405 , - 1012 , - 27 , - 2714 , - 2545 , - 2784 , - 167 , - 1222 , - 2685 , - 1292 , - 307 , - 2994 , - 2825 , - 3064 , - 447 , - 1502 , - 2965 , - 1572 , - 587 , - 10 , - 3105 , - 80 , - 727 , - 1782 , - 3245 , - 1852 , - 867 , - 290 , - 121 , - 360 , - 1007 , - 2062 , - 261 , - 2132 , - 1147 , - 570 , - 401 , - 640 , - 1287 , - 2342 , - 541 , - 2412 , - 1427 , - 850 , - 681 , - 920 , - 1567 , - 2622 , - 821 , - 2692 , - 1707 , - 1130 , - 961 , - 1200 , - 1847 , - 2902 , - 1101 , - 2972 , - 1987 , - 1410 , - 1241 , - 1480 , - 2127 , - 3182 , - 1381 , - 3252 , - 2267 , - 1690 , - 1521 , - 1760 , - 2407 , - 198 , - 1661 , - 268 , - 2547 , - 1970 , - 1801 , - 2040 , - 2687 , - 478 , - 1941 , - 548 , - 2827 , - 2250 , - 2081 , - 2320 , - 2967 , - 758 , - 2221 , - 828 , - 3107 , - 2530 , - 2361 , - 2600 , - 3247 , - 1038 , - 2501 , - 1108 , - 123 , - 2810 , - 2641 , - 2880 , - 263 , - 1318 , - 2781 , - 1388 , - 403 , - 3090 , - 2921 , - 3160 , - 543 , - 1598 , - 3061 , - 1668 , - 683 , - 106 , - 3201 , - 176 , - 823 , - 1878 , - 77 , - 1948 , - 963 , - 386 , - 217 , - 456 , - 1103 , - 2158 , - 357 , - 2228 , - 1243 , - 666 , - 497 , - 736 , - 1383 , - 2438 , - 637 , - 2508 , - 1523 , - 946 , - 777 , - 1016 , - 1663 , - 2718 , - 917 , - 2788 , - 1803 , - 1226 , - 1057 , - 1296 , - 1943 , - 2998 , - 1197 , - 3068 , - 2083 , - 1506 , - 1337 , - 1576 , - 2223 , - 14 , - 1477 , - 84 , - 2363 , - 1786 , - 1617 , - 1856 , - 2503 , - 294 , - 1757 , - 364 , - 2643 , - 2066 , - 1897 , - 2136 , - 2783 , - 574 , - 2037 , - 644 , - 2923 , - 2346 , - 2177 , - 2416 , - 3063 , - 854 , - 2317 , - 924 , - 3203 , - 2626 , - 2457 , - 2696 , - 79 , - 1134 , - 2597 , - 1204 , - 219 , - 2906 , - 2737 , - 2976 , - 359 , - 1414 , - 2877 , - 1484 , - 499 , - 3186 , - 3017 , - 3256 , - 639 , - 1694 , - 3157 , - 1764 , - 779 , - 202 , - 33 , - 272 , - 919 , - 1974 , - 173 , - 2044 , - 1059 , - 482 , - 313 , - 552 , - 1199 , - 2254 , - 453 , - 2324 , - 1339 , - 762 , - 593 , - 832 , - 1479 , - 2534 , - 733 , - 2604 , - 1619 , - 1042 , - 873 , - 1112 , - 1759 , - 2814 , - 1013 , - 2884 , - 1899 , - 1322 , - 1153 , - 1392 , - 2039 , - 3094 , - 1293 , - 3164 , - 2179 , - 1602 , - 1433 , - 1672 , - 2319 , - 110 , - 1573 , - 180 , - 2459 , - 1882 , - 1713 , - 1952 , - 2599 , - 390 , - 1853 , - 460 , - 2739 , - 2162 , - 1993 , - 2232 , - 2879 , - 670 , - 2133 , - 740 , - 3019 , - 2442 , - 2273 , - 2512 , - 3159 , - 950 , - 2413 , - 1020 , - 35 , - 2722 , - 2553 , - 2792 , - 175 , - 1230 , - 2693 , - 1300 , - 315 , - 3002 , - 2833 , - 3072 , - 455 , - 1510 , - 2973 , - 1580 , - 595 , - 18 , - 3113 , - 88 , - 735 , - 1790 , - 3253 , - 1860 , - 875 , - 298 , - 129 , - 368 , - 1015 , - 2070 , - 269 , - 2140 , - 1155 , - 578 , - 409 , - 648 , - 1295 , - 2350 , - 549 , - 2420 , - 1435 , - 858 , - 689 , - 928 , - 1575 , - 2630 , - 829 , - 2700 , - 1715 , - 1138 , - 969 , - 1208 , - 1855 , - 2910 , - 1109 , - 2980 , - 1995 , - 1418 , - 1249 , - 1488 , - 2135 , - 3190 , - 1389 , - 3260 , - 2275 , - 1698 , - 1529 , - 1768 , - 2415 , - 206 , - 1669 , - 276 , - 2555 , - 1978 , - 1809 , - 2048 , - 2695 , - 486 , - 1949 , - 556 , - 2835 , - 2258 , - 2089 , - 2328 , - 2975 , - 766 , - 2229 , - 836 , - 3115 , - 2538 , - 2369 , - 2608 , - 3255 , - 1046 , - 2509 , - 1116 , - 131 , - 2818 , - 2649 , - 2888 , - 271 , - 1326 , - 2789 , - 1396 , - 411 , - 3098 , - 2929 , - 3168 , - 551 , - 1606 , - 3069 , - 1676 , - 691 , - 114 , - 3209 , - 184 , - 831 , - 1886 , - 85 , - 1956 , - 971 , - 394 , - 225 , - 464 , - 1111 , - 2166 , - 365 , - 2236 , - 1251 , - 674 , - 505 , - 744 , - 1391 , - 2446 , - 645 , - 2516 , - 1531 , - 954 , - 785 , - 1024 , - 1671 , - 2726 , - 925 , - 2796 , - 1811 , - 1234 , - 1065 , - 1304 , - 1951 , - 3006 , - 1205 , - 3076 , - 2091 , - 1514 , - 1345 , - 1584 , - 2231 , - 22 , - 1485 , - 92 , - 2371 , - 1794 , - 1625 , - 1864 , - 2511 , - 302 , - 1765 , - 372 , - 2651 , - 2074 , - 1905 , - 2144 , - 2791 , - 582 , - 2045 , - 652 , - 2931 , - 2354 , - 2185 , - 2424 , - 3071 , - 862 , - 2325 , - 932 , - 3211 , - 2634 , - 2465 , - 2704 , - 87 , - 1142 , - 2605 , - 1212 , - 227 , - 2914 , - 2745 , - 2984 , - 367 , - 1422 , - 2885 , - 1492 , - 507 , - 3194 , - 3025 , - 0 , - 155 , - 518 , - 1089 , - 1868 , - 2855 , - 722 , - 2125 , - 408 , - 2227 , - 926 , - 3161 , - 2276 , - 1599 , - 1130 , - 869 , - 816 , - 971 , - 1334 , - 1905 , - 2684 , - 343 , - 1538 , - 2941 , - 1224 , - 3043 , - 1742 , - 649 , - 3092 , - 2415 , - 1946 , - 1685 , - 1632 , - 1787 , - 2150 , - 2721 , - 172 , - 1159 , - 2354 , - 429 , - 2040 , - 531 , - 2558 , - 1465 , - 580 , - 3231 , - 2762 , - 2501 , - 2448 , - 2603 , - 2966 , - 209 , - 988 , - 1975 , - 3170 , - 1245 , - 2856 , - 1347 , - 46 , - 2281 , - 1396 , - 719 , - 250 , - 3317 , - 3264 , - 91 , - 454 , - 1025 , - 1804 , - 2791 , - 658 , - 2061 , - 344 , - 2163 , - 862 , - 3097 , - 2212 , - 1535 , - 1066 , - 805 , - 752 , - 907 , - 1270 , - 1841 , - 2620 , - 279 , - 1474 , - 2877 , - 1160 , - 2979 , - 1678 , - 585 , - 3028 , - 2351 , - 1882 , - 1621 , - 1568 , - 1723 , - 2086 , - 2657 , - 108 , - 1095 , - 2290 , - 365 , - 1976 , - 467 , - 2494 , - 1401 , - 516 , - 3167 , - 2698 , - 2437 , - 2384 , - 2539 , - 2902 , - 145 , - 924 , - 1911 , - 3106 , - 1181 , - 2792 , - 1283 , - 3310 , - 2217 , - 1332 , - 655 , - 186 , - 3253 , - 3200 , - 27 , - 390 , - 961 , - 1740 , - 2727 , - 594 , - 1997 , - 280 , - 2099 , - 798 , - 3033 , - 2148 , - 1471 , - 1002 , - 741 , - 688 , - 843 , - 1206 , - 1777 , - 2556 , - 215 , - 1410 , - 2813 , - 1096 , - 2915 , - 1614 , - 521 , - 2964 , - 2287 , - 1818 , - 1557 , - 1504 , - 1659 , - 2022 , - 2593 , - 44 , - 1031 , - 2226 , - 301 , - 1912 , - 403 , - 2430 , - 1337 , - 452 , - 3103 , - 2634 , - 2373 , - 2320 , - 2475 , - 2838 , - 81 , - 860 , - 1847 , - 3042 , - 1117 , - 2728 , - 1219 , - 3246 , - 2153 , - 1268 , - 591 , - 122 , - 3189 , - 3136 , - 3291 , - 326 , - 897 , - 1676 , - 2663 , - 530 , - 1933 , - 216 , - 2035 , - 734 , - 2969 , - 2084 , - 1407 , - 938 , - 677 , - 624 , - 779 , - 1142 , - 1713 , - 2492 , - 151 , - 1346 , - 2749 , - 1032 , - 2851 , - 1550 , - 457 , - 2900 , - 2223 , - 1754 , - 1493 , - 1440 , - 1595 , - 1958 , - 2529 , - 3308 , - 967 , - 2162 , - 237 , - 1848 , - 339 , - 2366 , - 1273 , - 388 , - 3039 , - 2570 , - 2309 , - 2256 , - 2411 , - 2774 , - 17 , - 796 , - 1783 , - 2978 , - 1053 , - 2664 , - 1155 , - 3182 , - 2089 , - 1204 , - 527 , - 58 , - 3125 , - 3072 , - 3227 , - 262 , - 833 , - 1612 , - 2599 , - 466 , - 1869 , - 152 , - 1971 , - 670 , - 2905 , - 2020 , - 1343 , - 874 , - 613 , - 560 , - 715 , - 1078 , - 1649 , - 2428 , - 87 , - 1282 , - 2685 , - 968 , - 2787 , - 1486 , - 393 , - 2836 , - 2159 , - 1690 , - 1429 , - 1376 , - 1531 , - 1894 , - 2465 , - 3244 , - 903 , - 2098 , - 173 , - 1784 , - 275 , - 2302 , - 1209 , - 324 , - 2975 , - 2506 , - 2245 , - 2192 , - 2347 , - 2710 , - 3281 , - 732 , - 1719 , - 2914 , - 989 , - 2600 , - 1091 , - 3118 , - 2025 , - 1140 , - 463 , - 3322 , - 3061 , - 3008 , - 3163 , - 198 , - 769 , - 1548 , - 2535 , - 402 , - 1805 , - 88 , - 1907 , - 606 , - 2841 , - 1956 , - 1279 , - 810 , - 549 , - 496 , - 651 , - 1014 , - 1585 , - 2364 , - 23 , - 1218 , - 2621 , - 904 , - 2723 , - 1422 , - 329 , - 2772 , - 2095 , - 1626 , - 1365 , - 1312 , - 1467 , - 1830 , - 2401 , - 3180 , - 839 , - 2034 , - 109 , - 1720 , - 211 , - 2238 , - 1145 , - 260 , - 2911 , - 2442 , - 2181 , - 2128 , - 2283 , - 2646 , - 3217 , - 668 , - 1655 , - 2850 , - 925 , - 2536 , - 1027 , - 3054 , - 1961 , - 1076 , - 399 , - 3258 , - 2997 , - 2944 , - 3099 , - 134 , - 705 , - 1484 , - 2471 , - 338 , - 1741 , - 24 , - 1843 , - 542 , - 2777 , - 1892 , - 1215 , - 746 , - 485 , - 432 , - 587 , - 950 , - 1521 , - 2300 , - 3287 , - 1154 , - 2557 , - 840 , - 2659 , - 1358 , - 265 , - 2708 , - 2031 , - 1562 , - 1301 , - 1248 , - 1403 , - 1766 , - 2337 , - 3116 , - 775 , - 1970 , - 45 , - 1656 , - 147 , - 2174 , - 1081 , - 196 , - 2847 , - 2378 , - 2117 , - 2064 , - 2219 , - 2582 , - 3153 , - 604 , - 1591 , - 2786 , - 861 , - 2472 , - 963 , - 2990 , - 1897 , - 1012 , - 335 , - 3194 , - 2933 , - 2880 , - 3035 , - 70 , - 641 , - 1420 , - 2407 , - 274 , - 1677 , - 3288 , - 1779 , - 478 , - 2713 , - 1828 , - 1151 , - 682 , - 421 , - 368 , - 523 , - 886 , - 1457 , - 2236 , - 3223 , - 1090 , - 2493 , - 776 , - 2595 , - 1294 , - 201 , - 2644 , - 1967 , - 1498 , - 1237 , - 1184 , - 1339 , - 1702 , - 2273 , - 3052 , - 711 , - 1906 , - 3309 , - 1592 , - 83 , - 2110 , - 1017 , - 132 , - 2783 , - 2314 , - 2053 , - 2000 , - 2155 , - 2518 , - 3089 , - 540 , - 1527 , - 2722 , - 797 , - 2408 , - 899 , - 2926 , - 1833 , - 948 , - 271 , - 3130 , - 2869 , - 2816 , - 2971 , - 6 , - 577 , - 1356 , - 2343 , - 210 , - 1613 , - 3224 , - 1715 , - 414 , - 2649 , - 1764 , - 1087 , - 618 , - 357 , - 304 , - 459 , - 822 , - 1393 , - 2172 , - 3159 , - 1026 , - 2429 , - 712 , - 2531 , - 1230 , - 137 , - 2580 , - 1903 , - 1434 , - 1173 , - 1120 , - 1275 , - 1638 , - 2209 , - 2988 , - 647 , - 1842 , - 3245 , - 1528 , - 19 , - 2046 , - 953 , - 68 , - 2719 , - 2250 , - 1989 , - 1936 , - 2091 , - 2454 , - 3025 , - 476 , - 1463 , - 2658 , - 733 , - 2344 , - 835 , - 2862 , - 1769 , - 884 , - 207 , - 3066 , - 2805 , - 2752 , - 2907 , - 3270 , - 513 , - 1292 , - 2279 , - 146 , - 1549 , - 3160 , - 1651 , - 350 , - 2585 , - 1700 , - 1023 , - 554 , - 293 , - 240 , - 395 , - 758 , - 1329 , - 2108 , - 3095 , - 962 , - 2365 , - 648 , - 2467 , - 1166 , - 73 , - 2516 , - 1839 , - 1370 , - 1109 , - 1056 , - 1211 , - 1574 , - 2145 , - 2924 , - 583 , - 1778 , - 3181 , - 1464 , - 3283 , - 1982 , - 889 , - 4 , - 2655 , - 2186 , - 1925 , - 1872 , - 2027 , - 2390 , - 2961 , - 412 , - 1399 , - 2594 , - 669 , - 2280 , - 771 , - 2798 , - 1705 , - 820 , - 143 , - 3002 , - 2741 , - 2688 , - 2843 , - 3206 , - 449 , - 1228 , - 2215 , - 82 , - 1485 , - 3096 , - 1587 , - 286 , - 2521 , - 1636 , - 959 , - 490 , - 229 , - 176 , - 331 , - 694 , - 1265 , - 2044 , - 3031 , - 898 , - 2301 , - 584 , - 2403 , - 1102 , - 9 , - 2452 , - 1775 , - 1306 , - 1045 , - 992 , - 1147 , - 1510 , - 2081 , - 2860 , - 519 , - 1714 , - 3117 , - 1400 , - 3219 , - 1918 , - 825 , - 3268 , - 2591 , - 2122 , - 1861 , - 1808 , - 1963 , - 2326 , - 2897 , - 348 , - 1335 , - 2530 , - 605 , - 2216 , - 707 , - 2734 , - 1641 , - 756 , - 79 , - 2938 , - 2677 , - 2624 , - 2779 , - 3142 , - 385 , - 1164 , - 2151 , - 18 , - 1421 , - 3032 , - 1523 , - 222 , - 2457 , - 1572 , - 895 , - 426 , - 165 , - 112 , - 267 , - 630 , - 1201 , - 1980 , - 2967 , - 834 , - 2237 , - 520 , - 2339 , - 1038 , - 3273 , - 2388 , - 1711 , - 1242 , - 981 , - 928 , - 1083 , - 1446 , - 2017 , - 2796 , - 455 , - 1650 , - 3053 , - 1336 , - 3155 , - 1854 , - 761 , - 3204 , - 2527 , - 2058 , - 1797 , - 1744 , - 1899 , - 2262 , - 2833 , - 284 , - 1271 , - 2466 , - 541 , - 2152 , - 643 , - 2670 , - 1577 , - 692 , - 15 , - 2874 , - 2613 , - 2560 , - 2715 , - 3078 , - 321 , - 1100 , - 2087 , - 3282 , - 1357 , - 2968 , - 1459 , - 158 , - 2393 , - 1508 , - 831 , - 362 , - 101 , - 48 , - 203 , - 566 , - 1137 , - 1916 , - 2903 , - 770 , - 2173 , - 456 , - 2275 , - 974 , - 3209 , - 2324 , - 1647 , - 1178 , - 917 , - 864 , - 1019 , - 1382 , - 1953 , - 2732 , - 391 , - 1586 , - 2989 , - 1272 , - 3091 , - 1790 , - 697 , - 3140 , - 2463 , - 1994 , - 1733 , - 1680 , - 1835 , - 2198 , - 2769 , - 220 , - 1207 , - 2402 , - 477 , - 2088 , - 579 , - 2606 , - 1513 , - 628 , - 3279 , - 2810 , - 2549 , - 2496 , - 2651 , - 3014 , - 257 , - 1036 , - 2023 , - 3218 , - 1293 , - 2904 , - 1395 , - 94 , - 2329 , - 1444 , - 767 , - 298 , - 37 , - 3312 , - 139 , - 502 , - 1073 , - 1852 , - 2839 , - 706 , - 2109 , - 392 , - 2211 , - 910 , - 3145 , - 2260 , - 1583 , - 1114 , - 853 , - 800 , - 955 , - 1318 , - 1889 , - 2668 , - 327 , - 1522 , - 2925 , - 1208 , - 3027 , - 1726 , - 633 , - 3076 , - 2399 , - 1930 , - 1669 , - 1616 , - 1771 , - 2134 , - 2705 , - 156 , - 1143 , - 2338 , - 413 , - 2024 , - 515 , - 2542 , - 1449 , - 564 , - 3215 , - 2746 , - 2485 , - 2432 , - 2587 , - 2950 , - 193 , - 972 , - 1959 , - 3154 , - 1229 , - 2840 , - 1331 , - 30 , - 2265 , - 1380 , - 703 , - 234 , - 3301 , - 3248 , - 75 , - 438 , - 1009 , - 1788 , - 2775 , - 642 , - 2045 , - 328 , - 2147 , - 846 , - 3081 , - 2196 , - 1519 , - 1050 , - 789 , - 736 , - 891 , - 1254 , - 1825 , - 2604 , - 263 , - 1458 , - 2861 , - 1144 , - 2963 , - 1662 , - 569 , - 3012 , - 2335 , - 1866 , - 1605 , - 1552 , - 1707 , - 2070 , - 2641 , - 92 , - 1079 , - 2274 , - 349 , - 1960 , - 451 , - 2478 , - 1385 , - 500 , - 3151 , - 2682 , - 2421 , - 2368 , - 2523 , - 2886 , - 129 , - 908 , - 1895 , - 3090 , - 1165 , - 2776 , - 1267 , - 3294 , - 2201 , - 1316 , - 639 , - 170 , - 3237 , - 3184 , - 11 , - 374 , - 945 , - 1724 , - 2711 , - 578 , - 1981 , - 264 , - 2083 , - 782 , - 3017 , - 2132 , - 1455 , - 986 , - 725 , - 672 , - 827 , - 1190 , - 1761 , - 2540 , - 199 , - 1394 , - 2797 , - 1080 , - 2899 , - 1598 , - 505 , - 2948 , - 2271 , - 1802 , - 1541 , - 1488 , - 1643 , - 2006 , - 2577 , - 28 , - 1015 , - 2210 , - 285 , - 1896 , - 387 , - 2414 , - 1321 , - 436 , - 3087 , - 2618 , - 2357 , - 2304 , - 2459 , - 2822 , - 65 , - 844 , - 1831 , - 3026 , - 1101 , - 2712 , - 1203 , - 3230 , - 2137 , - 1252 , - 575 , - 106 , - 3173 , - 3120 , - 3275 , - 310 , - 881 , - 1660 , - 2647 , - 514 , - 1917 , - 200 , - 2019 , - 718 , - 2953 , - 2068 , - 1391 , - 922 , - 661 , - 608 , - 763 , - 1126 , - 1697 , - 2476 , - 135 , - 1330 , - 2733 , - 1016 , - 2835 , - 1534 , - 441 , - 2884 , - 2207 , - 1738 , - 1477 , - 1424 , - 1579 , - 1942 , - 2513 , - 3292 , - 951 , - 2146 , - 221 , - 1832 , - 323 , - 2350 , - 1257 , - 372 , - 3023 , - 2554 , - 2293 , - 2240 , - 2395 , - 2758 , - 1 , - 780 , - 1767 , - 2962 , - 1037 , - 2648 , - 1139 , - 3166 , - 2073 , - 1188 , - 511 , - 42 , - 3109 , - 3056 , - 3211 , - 246 , - 817 , - 1596 , - 2583 , - 450 , - 1853 , - 136 , - 1955 , - 654 , - 2889 , - 2004 , - 1327 , - 858 , - 597 , - 544 , - 699 , - 1062 , - 1633 , - 2412 , - 71 , - 1266 , - 2669 , - 952 , - 2771 , - 1470 , - 377 , - 2820 , - 2143 , - 1674 , - 1413 , - 1360 , - 1515 , - 1878 , - 2449 , - 3228 , - 887 , - 2082 , - 157 , - 1768 , - 259 , - 2286 , - 1193 , - 308 , - 2959 , - 2490 , - 2229 , - 2176 , - 2331 , - 2694 , - 3265 , - 716 , - 1703 , - 2898 , - 973 , - 2584 , - 1075 , - 3102 , - 2009 , - 1124 , - 447 , - 3306 , - 3045 , - 2992 , - 3147 , - 182 , - 753 , - 1532 , - 2519 , - 386 , - 1789 , - 72 , - 1891 , - 590 , - 2825 , - 1940 , - 1263 , - 794 , - 533 , - 480 , - 635 , - 998 , - 1569 , - 2348 , - 7 , - 1202 , - 2605 , - 888 , - 2707 , - 1406 , - 313 , - 2756 , - 2079 , - 1610 , - 1349 , - 1296 , - 1451 , - 1814 , - 2385 , - 3164 , - 823 , - 2018 , - 93 , - 1704 , - 195 , - 2222 , - 1129 , - 244 , - 2895 , - 2426 , - 2165 , - 2112 , - 2267 , - 2630 , - 3201 , - 652 , - 1639 , - 2834 , - 909 , - 2520 , - 1011 , - 3038 , - 1945 , - 1060 , - 383 , - 3242 , - 2981 , - 2928 , - 3083 , - 118 , - 689 , - 1468 , - 2455 , - 322 , - 1725 , - 8 , - 1827 , - 526 , - 2761 , - 1876 , - 1199 , - 730 , - 469 , - 416 , - 571 , - 934 , - 1505 , - 2284 , - 3271 , - 1138 , - 2541 , - 824 , - 2643 , - 1342 , - 249 , - 2692 , - 2015 , - 1546 , - 1285 , - 1232 , - 1387 , - 1750 , - 2321 , - 3100 , - 759 , - 1954 , - 29 , - 1640 , - 131 , - 2158 , - 1065 , - 180 , - 2831 , - 2362 , - 2101 , - 2048 , - 2203 , - 2566 , - 3137 , - 588 , - 1575 , - 2770 , - 845 , - 2456 , - 947 , - 2974 , - 1881 , - 996 , - 319 , - 3178 , - 2917 , - 2864 , - 3019 , - 54 , - 625 , - 1404 , - 2391 , - 258 , - 1661 , - 3272 , - 1763 , - 462 , - 2697 , - 1812 , - 1135 , - 666 , - 405 , - 352 , - 507 , - 870 , - 1441 , - 2220 , - 3207 , - 1074 , - 2477 , - 760 , - 2579 , - 1278 , - 185 , - 2628 , - 1951 , - 1482 , - 1221 , - 1168 , - 1323 , - 1686 , - 2257 , - 3036 , - 695 , - 1890 , - 3293 , - 1576 , - 67 , - 2094 , - 1001 , - 116 , - 2767 , - 2298 , - 2037 , - 1984 , - 2139 , - 2502 , - 3073 , - 524 , - 1511 , - 2706 , - 781 , - 2392 , - 883 , - 2910 , - 1817 , - 932 , - 255 , - 3114 , - 2853 , - 2800 , - 2955 , - 3318 , - 561 , - 1340 , - 2327 , - 194 , - 1597 , - 3208 , - 1699 , - 398 , - 2633 , - 1748 , - 1071 , - 602 , - 341 , - 288 , - 443 , - 806 , - 1377 , - 2156 , - 3143 , - 1010 , - 2413 , - 696 , - 2515 , - 1214 , - 121 , - 2564 , - 1887 , - 1418 , - 1157 , - 1104 , - 1259 , - 1622 , - 2193 , - 2972 , - 631 , - 1826 , - 3229 , - 1512 , - 3 , - 2030 , - 937 , - 52 , - 2703 , - 2234 , - 1973 , - 1920 , - 2075 , - 2438 , - 3009 , - 460 , - 1447 , - 2642 , - 717 , - 2328 , - 819 , - 2846 , - 1753 , - 868 , - 191 , - 3050 , - 2789 , - 2736 , - 2891 , - 3254 , - 497 , - 1276 , - 2263 , - 130 , - 1533 , - 3144 , - 1635 , - 334 , - 2569 , - 1684 , - 1007 , - 538 , - 277 , - 224 , - 379 , - 742 , - 1313 , - 2092 , - 3079 , - 946 , - 2349 , - 632 , - 2451 , - 1150 , - 57 , - 2500 , - 1823 , - 1354 , - 1093 , - 1040 , - 1195 , - 1558 , - 2129 , - 2908 , - 567 , - 1762 , - 3165 , - 1448 , - 3267 , - 1966 , - 873 , - 3316 , - 2639 , - 2170 , - 1909 , - 1856 , - 2011 , - 2374 , - 2945 , - 396 , - 1383 , - 2578 , - 653 , - 2264 , - 755 , - 2782 , - 1689 , - 804 , - 127 , - 2986 , - 2725 , - 2672 , - 2827 , - 3190 , - 433 , - 1212 , - 2199 , - 66 , - 1469 , - 3080 , - 1571 , - 270 , - 2505 , - 1620 , - 943 , - 474 , - 213 , - 160 , - 315 , - 678 , - 1249 , - 2028 , - 3015 , - 882 , - 2285 , - 568 , - 2387 , - 1086 , - 3321 , - 2436 , - 1759 , - 1290 , - 1029 , - 976 , - 1131 , - 1494 , - 2065 , - 2844 , - 503 , - 1698 , - 3101 , - 1384 , - 3203 , - 1902 , - 809 , - 3252 , - 2575 , - 2106 , - 1845 , - 1792 , - 1947 , - 2310 , - 2881 , - 332 , - 1319 , - 2514 , - 589 , - 2200 , - 691 , - 2718 , - 1625 , - 740 , - 63 , - 2922 , - 2661 , - 2608 , - 2763 , - 3126 , - 369 , - 1148 , - 2135 , - 2 , - 1405 , - 3016 , - 1507 , - 206 , - 2441 , - 1556 , - 879 , - 410 , - 149 , - 96 , - 251 , - 614 , - 1185 , - 1964 , - 2951 , - 818 , - 2221 , - 504 , - 2323 , - 1022 , - 3257 , - 2372 , - 1695 , - 1226 , - 965 , - 912 , - 1067 , - 1430 , - 2001 , - 2780 , - 439 , - 1634 , - 3037 , - 1320 , - 3139 , - 1838 , - 745 , - 3188 , - 2511 , - 2042 , - 1781 , - 1728 , - 1883 , - 2246 , - 2817 , - 268 , - 1255 , - 2450 , - 525 , - 2136 , - 627 , - 2654 , - 1561 , - 676 , - 3327 , - 2858 , - 2597 , - 2544 , - 2699 , - 3062 , - 305 , - 1084 , - 2071 , - 3266 , - 1341 , - 2952 , - 1443 , - 142 , - 2377 , - 1492 , - 815 , - 346 , - 85 , - 32 , - 187 , - 550 , - 1121 , - 1900 , - 2887 , - 754 , - 2157 , - 440 , - 2259 , - 958 , - 3193 , - 2308 , - 1631 , - 1162 , - 901 , - 848 , - 1003 , - 1366 , - 1937 , - 2716 , - 375 , - 1570 , - 2973 , - 1256 , - 3075 , - 1774 , - 681 , - 3124 , - 2447 , - 1978 , - 1717 , - 1664 , - 1819 , - 2182 , - 2753 , - 204 , - 1191 , - 2386 , - 461 , - 2072 , - 563 , - 2590 , - 1497 , - 612 , - 3263 , - 2794 , - 2533 , - 2480 , - 2635 , - 2998 , - 241 , - 1020 , - 2007 , - 3202 , - 1277 , - 2888 , - 1379 , - 78 , - 2313 , - 1428 , - 751 , - 282 , - 21 , - 3296 , - 123 , - 486 , - 1057 , - 1836 , - 2823 , - 690 , - 2093 , - 376 , - 2195 , - 894 , - 3129 , - 2244 , - 1567 , - 1098 , - 837 , - 784 , - 939 , - 1302 , - 1873 , - 2652 , - 311 , - 1506 , - 2909 , - 1192 , - 3011 , - 1710 , - 617 , - 3060 , - 2383 , - 1914 , - 1653 , - 1600 , - 1755 , - 2118 , - 2689 , - 140 , - 1127 , - 2322 , - 397 , - 2008 , - 499 , - 2526 , - 1433 , - 548 , - 3199 , - 2730 , - 2469 , - 2416 , - 2571 , - 2934 , - 177 , - 956 , - 1943 , - 3138 , - 1213 , - 2824 , - 1315 , - 14 , - 2249 , - 1364 , - 687 , - 218 , - 3285 , - 3232 , - 59 , - 422 , - 993 , - 1772 , - 2759 , - 626 , - 2029 , - 312 , - 2131 , - 830 , - 3065 , - 2180 , - 1503 , - 1034 , - 773 , - 720 , - 875 , - 1238 , - 1809 , - 2588 , - 247 , - 1442 , - 2845 , - 1128 , - 2947 , - 1646 , - 553 , - 2996 , - 2319 , - 1850 , - 1589 , - 1536 , - 1691 , - 2054 , - 2625 , - 76 , - 1063 , - 2258 , - 333 , - 1944 , - 435 , - 2462 , - 1369 , - 484 , - 3135 , - 2666 , - 2405 , - 2352 , - 2507 , - 2870 , - 113 , - 892 , - 1879 , - 3074 , - 1149 , - 2760 , - 1251 , - 3278 , - 2185 , - 1300 , - 623 , - 154 , - 3221 , - 3168 , - 3323 , - 358 , - 929 , - 1708 , - 2695 , - 562 , - 1965 , - 248 , - 2067 , - 766 , - 3001 , - 2116 , - 1439 , - 970 , - 709 , - 656 , - 811 , - 1174 , - 1745 , - 2524 , - 183 , - 1378 , - 2781 , - 1064 , - 2883 , - 1582 , - 489 , - 2932 , - 2255 , - 1786 , - 1525 , - 1472 , - 1627 , - 1990 , - 2561 , - 12 , - 999 , - 2194 , - 269 , - 1880 , - 371 , - 2398 , - 1305 , - 420 , - 3071 , - 2602 , - 2341 , - 2288 , - 2443 , - 2806 , - 49 , - 828 , - 1815 , - 3010 , - 1085 , - 2696 , - 1187 , - 3214 , - 2121 , - 1236 , - 559 , - 90 , - 3157 , - 3104 , - 3259 , - 294 , - 865 , - 1644 , - 2631 , - 498 , - 1901 , - 184 , - 2003 , - 702 , - 2937 , - 2052 , - 1375 , - 906 , - 645 , - 592 , - 747 , - 1110 , - 1681 , - 2460 , - 119 , - 1314 , - 2717 , - 1000 , - 2819 , - 1518 , - 425 , - 2868 , - 2191 , - 1722 , - 1461 , - 1408 , - 1563 , - 1926 , - 2497 , - 3276 , - 935 , - 2130 , - 205 , - 1816 , - 307 , - 2334 , - 1241 , - 356 , - 3007 , - 2538 , - 2277 , - 2224 , - 2379 , - 2742 , - 3313 , - 764 , - 1751 , - 2946 , - 1021 , - 2632 , - 1123 , - 3150 , - 2057 , - 1172 , - 495 , - 26 , - 3093 , - 3040 , - 3195 , - 230 , - 801 , - 1580 , - 2567 , - 434 , - 1837 , - 120 , - 1939 , - 638 , - 2873 , - 1988 , - 1311 , - 842 , - 581 , - 528 , - 683 , - 1046 , - 1617 , - 2396 , - 55 , - 1250 , - 2653 , - 936 , - 2755 , - 1454 , - 361 , - 2804 , - 2127 , - 1658 , - 1397 , - 1344 , - 1499 , - 1862 , - 2433 , - 3212 , - 871 , - 2066 , - 141 , - 1752 , - 243 , - 2270 , - 1177 , - 292 , - 2943 , - 2474 , - 2213 , - 2160 , - 2315 , - 2678 , - 3249 , - 700 , - 1687 , - 2882 , - 957 , - 2568 , - 1059 , - 3086 , - 1993 , - 1108 , - 431 , - 3290 , - 3029 , - 2976 , - 3131 , - 166 , - 737 , - 1516 , - 2503 , - 370 , - 1773 , - 56 , - 1875 , - 574 , - 2809 , - 1924 , - 1247 , - 778 , - 517 , - 464 , - 619 , - 982 , - 1553 , - 2332 , - 3319 , - 1186 , - 2589 , - 872 , - 2691 , - 1390 , - 297 , - 2740 , - 2063 , - 1594 , - 1333 , - 1280 , - 1435 , - 1798 , - 2369 , - 3148 , - 807 , - 2002 , - 77 , - 1688 , - 179 , - 2206 , - 1113 , - 228 , - 2879 , - 2410 , - 2149 , - 2096 , - 2251 , - 2614 , - 3185 , - 636 , - 1623 , - 2818 , - 893 , - 2504 , - 995 , - 3022 , - 1929 , - 1044 , - 367 , - 3226 , - 2965 , - 2912 , - 3067 , - 102 , - 673 , - 1452 , - 2439 , - 306 , - 1709 , - 3320 , - 1811 , - 510 , - 2745 , - 1860 , - 1183 , - 714 , - 453 , - 400 , - 555 , - 918 , - 1489 , - 2268 , - 3255 , - 1122 , - 2525 , - 808 , - 2627 , - 1326 , - 233 , - 2676 , - 1999 , - 1530 , - 1269 , - 1216 , - 1371 , - 1734 , - 2305 , - 3084 , - 743 , - 1938 , - 13 , - 1624 , - 115 , - 2142 , - 1049 , - 164 , - 2815 , - 2346 , - 2085 , - 2032 , - 2187 , - 2550 , - 3121 , - 572 , - 1559 , - 2754 , - 829 , - 2440 , - 931 , - 2958 , - 1865 , - 980 , - 303 , - 3162 , - 2901 , - 2848 , - 3003 , - 38 , - 609 , - 1388 , - 2375 , - 242 , - 1645 , - 3256 , - 1747 , - 446 , - 2681 , - 1796 , - 1119 , - 650 , - 389 , - 336 , - 491 , - 854 , - 1425 , - 2204 , - 3191 , - 1058 , - 2461 , - 744 , - 2563 , - 1262 , - 169 , - 2612 , - 1935 , - 1466 , - 1205 , - 1152 , - 1307 , - 1670 , - 2241 , - 3020 , - 679 , - 1874 , - 3277 , - 1560 , - 51 , - 2078 , - 985 , - 100 , - 2751 , - 2282 , - 2021 , - 1968 , - 2123 , - 2486 , - 3057 , - 508 , - 1495 , - 2690 , - 765 , - 2376 , - 867 , - 2894 , - 1801 , - 916 , - 239 , - 3098 , - 2837 , - 2784 , - 2939 , - 3302 , - 545 , - 1324 , - 2311 , - 178 , - 1581 , - 3192 , - 1683 , - 382 , - 2617 , - 1732 , - 1055 , - 586 , - 325 , - 272 , - 427 , - 790 , - 1361 , - 2140 , - 3127 , - 994 , - 2397 , - 680 , - 2499 , - 1198 , - 105 , - 2548 , - 1871 , - 1402 , - 1141 , - 1088 , - 1243 , - 1606 , - 2177 , - 2956 , - 615 , - 1810 , - 3213 , - 1496 , - 3315 , - 2014 , - 921 , - 36 , - 2687 , - 2218 , - 1957 , - 1904 , - 2059 , - 2422 , - 2993 , - 444 , - 1431 , - 2626 , - 701 , - 2312 , - 803 , - 2830 , - 1737 , - 852 , - 175 , - 3034 , - 2773 , - 2720 , - 2875 , - 3238 , - 481 , - 1260 , - 2247 , - 114 , - 1517 , - 3128 , - 1619 , - 318 , - 2553 , - 1668 , - 991 , - 522 , - 261 , - 208 , - 363 , - 726 , - 1297 , - 2076 , - 3063 , - 930 , - 2333 , - 616 , - 2435 , - 1134 , - 41 , - 2484 , - 1807 , - 1338 , - 1077 , - 1024 , - 1179 , - 1542 , - 2113 , - 2892 , - 551 , - 1746 , - 3149 , - 1432 , - 3251 , - 1950 , - 857 , - 3300 , - 2623 , - 2154 , - 1893 , - 1840 , - 1995 , - 2358 , - 2929 , - 380 , - 1367 , - 2562 , - 637 , - 2248 , - 739 , - 2766 , - 1673 , - 788 , - 111 , - 2970 , - 2709 , - 2656 , - 2811 , - 3174 , - 417 , - 1196 , - 2183 , - 50 , - 1453 , - 3064 , - 1555 , - 254 , - 2489 , - 1604 , - 927 , - 458 , - 197 , - 144 , - 299 , - 662 , - 1233 , - 2012 , - 2999 , - 866 , - 2269 , - 552 , - 2371 , - 1070 , - 3305 , - 2420 , - 1743 , - 1274 , - 1013 , - 960 , - 1115 , - 1478 , - 2049 , - 2828 , - 487 , - 1682 , - 3085 , - 1368 , - 3187 , - 1886 , - 793 , - 3236 , - 2559 , - 2090 , - 1829 , - 1776 , - 1931 , - 2294 , - 2865 , - 316 , - 1303 , - 2498 , - 573 , - 2184 , - 675 , - 2702 , - 1609 , - 724 , - 47 , - 2906 , - 2645 , - 2592 , - 2747 , - 3110 , - 353 , - 1132 , - 2119 , - 3314 , - 1389 , - 3000 , - 1491 , - 190 , - 2425 , - 1540 , - 863 , - 394 , - 133 , - 80 , - 235 , - 598 , - 1169 , - 1948 , - 2935 , - 802 , - 2205 , - 488 , - 2307 , - 1006 , - 3241 , - 2356 , - 1679 , - 1210 , - 949 , - 896 , - 1051 , - 1414 , - 1985 , - 2764 , - 423 , - 1618 , - 3021 , - 1304 , - 3123 , - 1822 , - 729 , - 3172 , - 2495 , - 2026 , - 1765 , - 1712 , - 1867 , - 2230 , - 2801 , - 252 , - 1239 , - 2434 , - 509 , - 2120 , - 611 , - 2638 , - 1545 , - 660 , - 3311 , - 2842 , - 2581 , - 2528 , - 2683 , - 3046 , - 289 , - 1068 , - 2055 , - 3250 , - 1325 , - 2936 , - 1427 , - 126 , - 2361 , - 1476 , - 799 , - 330 , - 69 , - 16 , - 171 , - 534 , - 1105 , - 1884 , - 2871 , - 738 , - 2141 , - 424 , - 2243 , - 942 , - 3177 , - 2292 , - 1615 , - 1146 , - 885 , - 832 , - 987 , - 1350 , - 1921 , - 2700 , - 359 , - 1554 , - 2957 , - 1240 , - 3059 , - 1758 , - 665 , - 3108 , - 2431 , - 1962 , - 1701 , - 1648 , - 1803 , - 2166 , - 2737 , - 188 , - 1175 , - 2370 , - 445 , - 2056 , - 547 , - 2574 , - 1481 , - 596 , - 3247 , - 2778 , - 2517 , - 2464 , - 2619 , - 2982 , - 225 , - 1004 , - 1991 , - 3186 , - 1261 , - 2872 , - 1363 , - 62 , - 2297 , - 1412 , - 735 , - 266 , - 5 , - 3280 , - 107 , - 470 , - 1041 , - 1820 , - 2807 , - 674 , - 2077 , - 360 , - 2179 , - 878 , - 3113 , - 2228 , - 1551 , - 1082 , - 821 , - 768 , - 923 , - 1286 , - 1857 , - 2636 , - 295 , - 1490 , - 2893 , - 1176 , - 2995 , - 1694 , - 601 , - 3044 , - 2367 , - 1898 , - 1637 , - 1584 , - 1739 , - 2102 , - 2673 , - 124 , - 1111 , - 2306 , - 381 , - 1992 , - 483 , - 2510 , - 1417 , - 532 , - 3183 , - 2714 , - 2453 , - 2400 , - 2555 , - 2918 , - 161 , - 940 , - 1927 , - 3122 , - 1197 , - 2808 , - 1299 , - 3326 , - 2233 , - 1348 , - 671 , - 202 , - 3269 , - 3216 , - 43 , - 406 , - 977 , - 1756 , - 2743 , - 610 , - 2013 , - 296 , - 2115 , - 814 , - 3049 , - 2164 , - 1487 , - 1018 , - 757 , - 704 , - 859 , - 1222 , - 1793 , - 2572 , - 231 , - 1426 , - 2829 , - 1112 , - 2931 , - 1630 , - 537 , - 2980 , - 2303 , - 1834 , - 1573 , - 1520 , - 1675 , - 2038 , - 2609 , - 60 , - 1047 , - 2242 , - 317 , - 1928 , - 419 , - 2446 , - 1353 , - 468 , - 3119 , - 2650 , - 2389 , - 2336 , - 2491 , - 2854 , - 97 , - 876 , - 1863 , - 3058 , - 1133 , - 2744 , - 1235 , - 3262 , - 2169 , - 1284 , - 607 , - 138 , - 3205 , - 3152 , - 3307 , - 342 , - 913 , - 1692 , - 2679 , - 546 , - 1949 , - 232 , - 2051 , - 750 , - 2985 , - 2100 , - 1423 , - 954 , - 693 , - 640 , - 795 , - 1158 , - 1729 , - 2508 , - 167 , - 1362 , - 2765 , - 1048 , - 2867 , - 1566 , - 473 , - 2916 , - 2239 , - 1770 , - 1509 , - 1456 , - 1611 , - 1974 , - 2545 , - 3324 , - 983 , - 2178 , - 253 , - 1864 , - 355 , - 2382 , - 1289 , - 404 , - 3055 , - 2586 , - 2325 , - 2272 , - 2427 , - 2790 , - 33 , - 812 , - 1799 , - 2994 , - 1069 , - 2680 , - 1171 , - 3198 , - 2105 , - 1220 , - 543 , - 74 , - 3141 , - 3088 , - 3243 , - 278 , - 849 , - 1628 , - 2615 , - 482 , - 1885 , - 168 , - 1987 , - 686 , - 2921 , - 2036 , - 1359 , - 890 , - 629 , - 576 , - 731 , - 1094 , - 1665 , - 2444 , - 103 , - 1298 , - 2701 , - 984 , - 2803 , - 1502 , - 409 , - 2852 , - 2175 , - 1706 , - 1445 , - 1392 , - 1547 , - 1910 , - 2481 , - 3260 , - 919 , - 2114 , - 189 , - 1800 , - 291 , - 2318 , - 1225 , - 340 , - 2991 , - 2522 , - 2261 , - 2208 , - 2363 , - 2726 , - 3297 , - 748 , - 1735 , - 2930 , - 1005 , - 2616 , - 1107 , - 3134 , - 2041 , - 1156 , - 479 , - 10 , - 3077 , - 3024 , - 3179 , - 214 , - 785 , - 1564 , - 2551 , - 418 , - 1821 , - 104 , - 1923 , - 622 , - 2857 , - 1972 , - 1295 , - 826 , - 565 , - 512 , - 667 , - 1030 , - 1601 , - 2380 , - 39 , - 1234 , - 2637 , - 920 , - 2739 , - 1438 , - 345 , - 2788 , - 2111 , - 1642 , - 1381 , - 1328 , - 1483 , - 1846 , - 2417 , - 3196 , - 855 , - 2050 , - 125 , - 1736 , - 227 , - 2254 , - 1161 , - 276 , - 2927 , - 2458 , - 2197 , - 2144 , - 2299 , - 2662 , - 3233 , - 684 , - 1671 , - 2866 , - 941 , - 2552 , - 1043 , - 3070 , - 1977 , - 1092 , - 415 , - 3274 , - 3013 , - 2960 , - 3115 , - 150 , - 721 , - 1500 , - 2487 , - 354 , - 1757 , - 40 , - 1859 , - 558 , - 2793 , - 1908 , - 1231 , - 762 , - 501 , - 448 , - 603 , - 966 , - 1537 , - 2316 , - 3303 , - 1170 , - 2573 , - 856 , - 2675 , - 1374 , - 281 , - 2724 , - 2047 , - 1578 , - 1317 , - 1264 , - 1419 , - 1782 , - 2353 , - 3132 , - 791 , - 1986 , - 61 , - 1672 , - 163 , - 2190 , - 1097 , - 212 , - 2863 , - 2394 , - 2133 , - 2080 , - 2235 , - 2598 , - 3169 , - 620 , - 1607 , - 2802 , - 877 , - 2488 , - 979 , - 3006 , - 1913 , - 1028 , - 351 , - 3210 , - 2949 , - 2896 , - 3051 , - 86 , - 657 , - 1436 , - 2423 , - 290 , - 1693 , - 3304 , - 1795 , - 494 , - 2729 , - 1844 , - 1167 , - 698 , - 437 , - 384 , - 539 , - 902 , - 1473 , - 2252 , - 3239 , - 1106 , - 2509 , - 792 , - 2611 , - 1310 , - 217 , - 2660 , - 1983 , - 1514 , - 1253 , - 1200 , - 1355 , - 1718 , - 2289 , - 3068 , - 727 , - 1922 , - 3325 , - 1608 , - 99 , - 2126 , - 1033 , - 148 , - 2799 , - 2330 , - 2069 , - 2016 , - 2171 , - 2534 , - 3105 , - 556 , - 1543 , - 2738 , - 813 , - 2424 , - 915 , - 2942 , - 1849 , - 964 , - 287 , - 3146 , - 2885 , - 2832 , - 2987 , - 22 , - 593 , - 1372 , - 2359 , - 226 , - 1629 , - 3240 , - 1731 , - 430 , - 2665 , - 1780 , - 1103 , - 634 , - 373 , - 320 , - 475 , - 838 , - 1409 , - 2188 , - 3175 , - 1042 , - 2445 , - 728 , - 2547 , - 1246 , - 153 , - 2596 , - 1919 , - 1450 , - 1189 , - 1136 , - 1291 , - 1654 , - 2225 , - 3004 , - 663 , - 1858 , - 3261 , - 1544 , - 35 , - 2062 , - 969 , - 84 , - 2735 , - 2266 , - 2005 , - 1952 , - 2107 , - 2470 , - 3041 , - 492 , - 1479 , - 2674 , - 749 , - 2360 , - 851 , - 2878 , - 1785 , - 900 , - 223 , - 3082 , - 2821 , - 2768 , - 2923 , - 3286 , - 529 , - 1308 , - 2295 , - 162 , - 1565 , - 3176 , - 1667 , - 366 , - 2601 , - 1716 , - 1039 , - 570 , - 309 , - 256 , - 411 , - 774 , - 1345 , - 2124 , - 3111 , - 978 , - 2381 , - 664 , - 2483 , - 1182 , - 89 , - 2532 , - 1855 , - 1386 , - 1125 , - 1072 , - 1227 , - 1590 , - 2161 , - 2940 , - 599 , - 1794 , - 3197 , - 1480 , - 3299 , - 1998 , - 905 , - 20 , - 2671 , - 2202 , - 1941 , - 1888 , - 2043 , - 2406 , - 2977 , - 428 , - 1415 , - 2610 , - 685 , - 2296 , - 787 , - 2814 , - 1721 , - 836 , - 159 , - 3018 , - 2757 , - 2704 , - 2859 , - 3222 , - 465 , - 1244 , - 2231 , - 98 , - 1501 , - 3112 , - 1603 , - 302 , - 2537 , - 1652 , - 975 , - 506 , - 245 , - 192 , - 347 , - 710 , - 1281 , - 2060 , - 3047 , - 914 , - 2317 , - 600 , - 2419 , - 1118 , - 25 , - 2468 , - 1791 , - 1322 , - 1061 , - 1008 , - 1163 , - 1526 , - 2097 , - 2876 , - 535 , - 1730 , - 3133 , - 1416 , - 3235 , - 1934 , - 841 , - 3284 , - 2607 , - 2138 , - 1877 , - 1824 , - 1979 , - 2342 , - 2913 , - 364 , - 1351 , - 2546 , - 621 , - 2232 , - 723 , - 2750 , - 1657 , - 772 , - 95 , - 2954 , - 2693 , - 2640 , - 2795 , - 3158 , - 401 , - 1180 , - 2167 , - 34 , - 1437 , - 3048 , - 1539 , - 238 , - 2473 , - 1588 , - 911 , - 442 , - 181 , - 128 , - 283 , - 646 , - 1217 , - 1996 , - 2983 , - 850 , - 2253 , - 536 , - 2355 , - 1054 , - 3289 , - 2404 , - 1727 , - 1258 , - 997 , - 944 , - 1099 , - 1462 , - 2033 , - 2812 , - 471 , - 1666 , - 3069 , - 1352 , - 3171 , - 1870 , - 777 , - 3220 , - 2543 , - 2074 , - 1813 , - 1760 , - 1915 , - 2278 , - 2849 , - 300 , - 1287 , - 2482 , - 557 , - 2168 , - 659 , - 2686 , - 1593 , - 708 , - 31 , - 2890 , - 2629 , - 2576 , - 2731 , - 3094 , - 337 , - 1116 , - 2103 , - 3298 , - 1373 , - 2984 , - 1475 , - 174 , - 2409 , - 1524 , - 847 , - 378 , - 117 , - 64 , - 219 , - 582 , - 1153 , - 1932 , - 2919 , - 786 , - 2189 , - 472 , - 2291 , - 990 , - 3225 , - 2340 , - 1663 , - 1194 , - 933 , - 880 , - 1035 , - 1398 , - 1969 , - 2748 , - 407 , - 1602 , - 3005 , - 1288 , - 3107 , - 1806 , - 713 , - 3156 , - 2479 , - 2010 , - 1749 , - 1696 , - 1851 , - 2214 , - 2785 , - 236 , - 1223 , - 2418 , - 493 , - 2104 , - 595 , - 2622 , - 1529 , - 644 , - 3295 , - 2826 , - 2565 , - 2512 , - 2667 , - 3030 , - 273 , - 1052 , - 2039 , - 3234 , - 1309 , - 2920 , - 1411 , - 110 , - 2345 , - 1460 , - 783 , - 314 , - 53 , - 0 , - 263 , - 950 , - 2061 , - 204 , - 2163 , - 1154 , - 569 , - 408 , - 671 , - 1358 , - 2469 , - 612 , - 2571 , - 1562 , - 977 , - 816 , - 1079 , - 1766 , - 2877 , - 1020 , - 2979 , - 1970 , - 1385 , - 1224 , - 1487 , - 2174 , - 3285 , - 1428 , - 3387 , - 2378 , - 1793 , - 1632 , - 1895 , - 2582 , - 301 , - 1836 , - 403 , - 2786 , - 2201 , - 2040 , - 2303 , - 2990 , - 709 , - 2244 , - 811 , - 3194 , - 2609 , - 2448 , - 2711 , - 6 , - 1117 , - 2652 , - 1219 , - 210 , - 3017 , - 2856 , - 3119 , - 414 , - 1525 , - 3060 , - 1627 , - 618 , - 33 , - 3264 , - 135 , - 822 , - 1933 , - 76 , - 2035 , - 1026 , - 441 , - 280 , - 543 , - 1230 , - 2341 , - 484 , - 2443 , - 1434 , - 849 , - 688 , - 951 , - 1638 , - 2749 , - 892 , - 2851 , - 1842 , - 1257 , - 1096 , - 1359 , - 2046 , - 3157 , - 1300 , - 3259 , - 2250 , - 1665 , - 1504 , - 1767 , - 2454 , - 173 , - 1708 , - 275 , - 2658 , - 2073 , - 1912 , - 2175 , - 2862 , - 581 , - 2116 , - 683 , - 3066 , - 2481 , - 2320 , - 2583 , - 3270 , - 989 , - 2524 , - 1091 , - 82 , - 2889 , - 2728 , - 2991 , - 286 , - 1397 , - 2932 , - 1499 , - 490 , - 3297 , - 3136 , - 7 , - 694 , - 1805 , - 3340 , - 1907 , - 898 , - 313 , - 152 , - 415 , - 1102 , - 2213 , - 356 , - 2315 , - 1306 , - 721 , - 560 , - 823 , - 1510 , - 2621 , - 764 , - 2723 , - 1714 , - 1129 , - 968 , - 1231 , - 1918 , - 3029 , - 1172 , - 3131 , - 2122 , - 1537 , - 1376 , - 1639 , - 2326 , - 45 , - 1580 , - 147 , - 2530 , - 1945 , - 1784 , - 2047 , - 2734 , - 453 , - 1988 , - 555 , - 2938 , - 2353 , - 2192 , - 2455 , - 3142 , - 861 , - 2396 , - 963 , - 3346 , - 2761 , - 2600 , - 2863 , - 158 , - 1269 , - 2804 , - 1371 , - 362 , - 3169 , - 3008 , - 3271 , - 566 , - 1677 , - 3212 , - 1779 , - 770 , - 185 , - 24 , - 287 , - 974 , - 2085 , - 228 , - 2187 , - 1178 , - 593 , - 432 , - 695 , - 1382 , - 2493 , - 636 , - 2595 , - 1586 , - 1001 , - 840 , - 1103 , - 1790 , - 2901 , - 1044 , - 3003 , - 1994 , - 1409 , - 1248 , - 1511 , - 2198 , - 3309 , - 1452 , - 19 , - 2402 , - 1817 , - 1656 , - 1919 , - 2606 , - 325 , - 1860 , - 427 , - 2810 , - 2225 , - 2064 , - 2327 , - 3014 , - 733 , - 2268 , - 835 , - 3218 , - 2633 , - 2472 , - 2735 , - 30 , - 1141 , - 2676 , - 1243 , - 234 , - 3041 , - 2880 , - 3143 , - 438 , - 1549 , - 3084 , - 1651 , - 642 , - 57 , - 3288 , - 159 , - 846 , - 1957 , - 100 , - 2059 , - 1050 , - 465 , - 304 , - 567 , - 1254 , - 2365 , - 508 , - 2467 , - 1458 , - 873 , - 712 , - 975 , - 1662 , - 2773 , - 916 , - 2875 , - 1866 , - 1281 , - 1120 , - 1383 , - 2070 , - 3181 , - 1324 , - 3283 , - 2274 , - 1689 , - 1528 , - 1791 , - 2478 , - 197 , - 1732 , - 299 , - 2682 , - 2097 , - 1936 , - 2199 , - 2886 , - 605 , - 2140 , - 707 , - 3090 , - 2505 , - 2344 , - 2607 , - 3294 , - 1013 , - 2548 , - 1115 , - 106 , - 2913 , - 2752 , - 3015 , - 310 , - 1421 , - 2956 , - 1523 , - 514 , - 3321 , - 3160 , - 31 , - 718 , - 1829 , - 3364 , - 1931 , - 922 , - 337 , - 176 , - 439 , - 1126 , - 2237 , - 380 , - 2339 , - 1330 , - 745 , - 584 , - 847 , - 1534 , - 2645 , - 788 , - 2747 , - 1738 , - 1153 , - 992 , - 1255 , - 1942 , - 3053 , - 1196 , - 3155 , - 2146 , - 1561 , - 1400 , - 1663 , - 2350 , - 69 , - 1604 , - 171 , - 2554 , - 1969 , - 1808 , - 2071 , - 2758 , - 477 , - 2012 , - 579 , - 2962 , - 2377 , - 2216 , - 2479 , - 3166 , - 885 , - 2420 , - 987 , - 3370 , - 2785 , - 2624 , - 2887 , - 182 , - 1293 , - 2828 , - 1395 , - 386 , - 3193 , - 3032 , - 3295 , - 590 , - 1701 , - 3236 , - 1803 , - 794 , - 209 , - 48 , - 311 , - 998 , - 2109 , - 252 , - 2211 , - 1202 , - 617 , - 456 , - 719 , - 1406 , - 2517 , - 660 , - 2619 , - 1610 , - 1025 , - 864 , - 1127 , - 1814 , - 2925 , - 1068 , - 3027 , - 2018 , - 1433 , - 1272 , - 1535 , - 2222 , - 3333 , - 1476 , - 43 , - 2426 , - 1841 , - 1680 , - 1943 , - 2630 , - 349 , - 1884 , - 451 , - 2834 , - 2249 , - 2088 , - 2351 , - 3038 , - 757 , - 2292 , - 859 , - 3242 , - 2657 , - 2496 , - 2759 , - 54 , - 1165 , - 2700 , - 1267 , - 258 , - 3065 , - 2904 , - 3167 , - 462 , - 1573 , - 3108 , - 1675 , - 666 , - 81 , - 3312 , - 183 , - 870 , - 1981 , - 124 , - 2083 , - 1074 , - 489 , - 328 , - 591 , - 1278 , - 2389 , - 532 , - 2491 , - 1482 , - 897 , - 736 , - 999 , - 1686 , - 2797 , - 940 , - 2899 , - 1890 , - 1305 , - 1144 , - 1407 , - 2094 , - 3205 , - 1348 , - 3307 , - 2298 , - 1713 , - 1552 , - 1815 , - 2502 , - 221 , - 1756 , - 323 , - 2706 , - 2121 , - 1960 , - 2223 , - 2910 , - 629 , - 2164 , - 731 , - 3114 , - 2529 , - 2368 , - 2631 , - 3318 , - 1037 , - 2572 , - 1139 , - 130 , - 2937 , - 2776 , - 3039 , - 334 , - 1445 , - 2980 , - 1547 , - 538 , - 3345 , - 3184 , - 55 , - 742 , - 1853 , - 3388 , - 1955 , - 946 , - 361 , - 200 , - 463 , - 1150 , - 2261 , - 404 , - 2363 , - 1354 , - 769 , - 608 , - 871 , - 1558 , - 2669 , - 812 , - 2771 , - 1762 , - 1177 , - 1016 , - 1279 , - 1966 , - 3077 , - 1220 , - 3179 , - 2170 , - 1585 , - 1424 , - 1687 , - 2374 , - 93 , - 1628 , - 195 , - 2578 , - 1993 , - 1832 , - 2095 , - 2782 , - 501 , - 2036 , - 603 , - 2986 , - 2401 , - 2240 , - 2503 , - 3190 , - 909 , - 2444 , - 1011 , - 2 , - 2809 , - 2648 , - 2911 , - 206 , - 1317 , - 2852 , - 1419 , - 410 , - 3217 , - 3056 , - 3319 , - 614 , - 1725 , - 3260 , - 1827 , - 818 , - 233 , - 72 , - 335 , - 1022 , - 2133 , - 276 , - 2235 , - 1226 , - 641 , - 480 , - 743 , - 1430 , - 2541 , - 684 , - 2643 , - 1634 , - 1049 , - 888 , - 1151 , - 1838 , - 2949 , - 1092 , - 3051 , - 2042 , - 1457 , - 1296 , - 1559 , - 2246 , - 3357 , - 1500 , - 67 , - 2450 , - 1865 , - 1704 , - 1967 , - 2654 , - 373 , - 1908 , - 475 , - 2858 , - 2273 , - 2112 , - 2375 , - 3062 , - 781 , - 2316 , - 883 , - 3266 , - 2681 , - 2520 , - 2783 , - 78 , - 1189 , - 2724 , - 1291 , - 282 , - 3089 , - 2928 , - 3191 , - 486 , - 1597 , - 3132 , - 1699 , - 690 , - 105 , - 3336 , - 207 , - 894 , - 2005 , - 148 , - 2107 , - 1098 , - 513 , - 352 , - 615 , - 1302 , - 2413 , - 556 , - 2515 , - 1506 , - 921 , - 760 , - 1023 , - 1710 , - 2821 , - 964 , - 2923 , - 1914 , - 1329 , - 1168 , - 1431 , - 2118 , - 3229 , - 1372 , - 3331 , - 2322 , - 1737 , - 1576 , - 1839 , - 2526 , - 245 , - 1780 , - 347 , - 2730 , - 2145 , - 1984 , - 2247 , - 2934 , - 653 , - 2188 , - 755 , - 3138 , - 2553 , - 2392 , - 2655 , - 3342 , - 1061 , - 2596 , - 1163 , - 154 , - 2961 , - 2800 , - 3063 , - 358 , - 1469 , - 3004 , - 1571 , - 562 , - 3369 , - 3208 , - 79 , - 766 , - 1877 , - 20 , - 1979 , - 970 , - 385 , - 224 , - 487 , - 1174 , - 2285 , - 428 , - 2387 , - 1378 , - 793 , - 632 , - 895 , - 1582 , - 2693 , - 836 , - 2795 , - 1786 , - 1201 , - 1040 , - 1303 , - 1990 , - 3101 , - 1244 , - 3203 , - 2194 , - 1609 , - 1448 , - 1711 , - 2398 , - 117 , - 1652 , - 219 , - 2602 , - 2017 , - 1856 , - 2119 , - 2806 , - 525 , - 2060 , - 627 , - 3010 , - 2425 , - 2264 , - 2527 , - 3214 , - 933 , - 2468 , - 1035 , - 26 , - 2833 , - 2672 , - 2935 , - 230 , - 1341 , - 2876 , - 1443 , - 434 , - 3241 , - 3080 , - 3343 , - 638 , - 1749 , - 3284 , - 1851 , - 842 , - 257 , - 96 , - 359 , - 1046 , - 2157 , - 300 , - 2259 , - 1250 , - 665 , - 504 , - 767 , - 1454 , - 2565 , - 708 , - 2667 , - 1658 , - 1073 , - 912 , - 1175 , - 1862 , - 2973 , - 1116 , - 3075 , - 2066 , - 1481 , - 1320 , - 1583 , - 2270 , - 3381 , - 1524 , - 91 , - 2474 , - 1889 , - 1728 , - 1991 , - 2678 , - 397 , - 1932 , - 499 , - 2882 , - 2297 , - 2136 , - 2399 , - 3086 , - 805 , - 2340 , - 907 , - 3290 , - 2705 , - 2544 , - 2807 , - 102 , - 1213 , - 2748 , - 1315 , - 306 , - 3113 , - 2952 , - 3215 , - 510 , - 1621 , - 3156 , - 1723 , - 714 , - 129 , - 3360 , - 231 , - 918 , - 2029 , - 172 , - 2131 , - 1122 , - 537 , - 376 , - 639 , - 1326 , - 2437 , - 580 , - 2539 , - 1530 , - 945 , - 784 , - 1047 , - 1734 , - 2845 , - 988 , - 2947 , - 1938 , - 1353 , - 1192 , - 1455 , - 2142 , - 3253 , - 1396 , - 3355 , - 2346 , - 1761 , - 1600 , - 1863 , - 2550 , - 269 , - 1804 , - 371 , - 2754 , - 2169 , - 2008 , - 2271 , - 2958 , - 677 , - 2212 , - 779 , - 3162 , - 2577 , - 2416 , - 2679 , - 3366 , - 1085 , - 2620 , - 1187 , - 178 , - 2985 , - 2824 , - 3087 , - 382 , - 1493 , - 3028 , - 1595 , - 586 , - 1 , - 3232 , - 103 , - 790 , - 1901 , - 44 , - 2003 , - 994 , - 409 , - 248 , - 511 , - 1198 , - 2309 , - 452 , - 2411 , - 1402 , - 817 , - 656 , - 919 , - 1606 , - 2717 , - 860 , - 2819 , - 1810 , - 1225 , - 1064 , - 1327 , - 2014 , - 3125 , - 1268 , - 3227 , - 2218 , - 1633 , - 1472 , - 1735 , - 2422 , - 141 , - 1676 , - 243 , - 2626 , - 2041 , - 1880 , - 2143 , - 2830 , - 549 , - 2084 , - 651 , - 3034 , - 2449 , - 2288 , - 2551 , - 3238 , - 957 , - 2492 , - 1059 , - 50 , - 2857 , - 2696 , - 2959 , - 254 , - 1365 , - 2900 , - 1467 , - 458 , - 3265 , - 3104 , - 3367 , - 662 , - 1773 , - 3308 , - 1875 , - 866 , - 281 , - 120 , - 383 , - 1070 , - 2181 , - 324 , - 2283 , - 1274 , - 689 , - 528 , - 791 , - 1478 , - 2589 , - 732 , - 2691 , - 1682 , - 1097 , - 936 , - 1199 , - 1886 , - 2997 , - 1140 , - 3099 , - 2090 , - 1505 , - 1344 , - 1607 , - 2294 , - 13 , - 1548 , - 115 , - 2498 , - 1913 , - 1752 , - 2015 , - 2702 , - 421 , - 1956 , - 523 , - 2906 , - 2321 , - 2160 , - 2423 , - 3110 , - 829 , - 2364 , - 931 , - 3314 , - 2729 , - 2568 , - 2831 , - 126 , - 1237 , - 2772 , - 1339 , - 330 , - 3137 , - 2976 , - 3239 , - 534 , - 1645 , - 3180 , - 1747 , - 738 , - 153 , - 3384 , - 255 , - 942 , - 2053 , - 196 , - 2155 , - 1146 , - 561 , - 400 , - 663 , - 1350 , - 2461 , - 604 , - 2563 , - 1554 , - 969 , - 808 , - 1071 , - 1758 , - 2869 , - 1012 , - 2971 , - 1962 , - 1377 , - 1216 , - 1479 , - 2166 , - 3277 , - 1420 , - 3379 , - 2370 , - 1785 , - 1624 , - 1887 , - 2574 , - 293 , - 1828 , - 395 , - 2778 , - 2193 , - 2032 , - 2295 , - 2982 , - 701 , - 2236 , - 803 , - 3186 , - 2601 , - 2440 , - 2703 , - 3390 , - 1109 , - 2644 , - 1211 , - 202 , - 3009 , - 2848 , - 3111 , - 406 , - 1517 , - 3052 , - 1619 , - 610 , - 25 , - 3256 , - 127 , - 814 , - 1925 , - 68 , - 2027 , - 1018 , - 433 , - 272 , - 535 , - 1222 , - 2333 , - 476 , - 2435 , - 1426 , - 841 , - 680 , - 943 , - 1630 , - 2741 , - 884 , - 2843 , - 1834 , - 1249 , - 1088 , - 1351 , - 2038 , - 3149 , - 1292 , - 3251 , - 2242 , - 1657 , - 1496 , - 1759 , - 2446 , - 165 , - 1700 , - 267 , - 2650 , - 2065 , - 1904 , - 2167 , - 2854 , - 573 , - 2108 , - 675 , - 3058 , - 2473 , - 2312 , - 2575 , - 3262 , - 981 , - 2516 , - 1083 , - 74 , - 2881 , - 2720 , - 2983 , - 278 , - 1389 , - 2924 , - 1491 , - 482 , - 3289 , - 3128 , - 3391 , - 686 , - 1797 , - 3332 , - 1899 , - 890 , - 305 , - 144 , - 407 , - 1094 , - 2205 , - 348 , - 2307 , - 1298 , - 713 , - 552 , - 815 , - 1502 , - 2613 , - 756 , - 2715 , - 1706 , - 1121 , - 960 , - 1223 , - 1910 , - 3021 , - 1164 , - 3123 , - 2114 , - 1529 , - 1368 , - 1631 , - 2318 , - 37 , - 1572 , - 139 , - 2522 , - 1937 , - 1776 , - 2039 , - 2726 , - 445 , - 1980 , - 547 , - 2930 , - 2345 , - 2184 , - 2447 , - 3134 , - 853 , - 2388 , - 955 , - 3338 , - 2753 , - 2592 , - 2855 , - 150 , - 1261 , - 2796 , - 1363 , - 354 , - 3161 , - 3000 , - 3263 , - 558 , - 1669 , - 3204 , - 1771 , - 762 , - 177 , - 16 , - 279 , - 966 , - 2077 , - 220 , - 2179 , - 1170 , - 585 , - 424 , - 687 , - 1374 , - 2485 , - 628 , - 2587 , - 1578 , - 993 , - 832 , - 1095 , - 1782 , - 2893 , - 1036 , - 2995 , - 1986 , - 1401 , - 1240 , - 1503 , - 2190 , - 3301 , - 1444 , - 11 , - 2394 , - 1809 , - 1648 , - 1911 , - 2598 , - 317 , - 1852 , - 419 , - 2802 , - 2217 , - 2056 , - 2319 , - 3006 , - 725 , - 2260 , - 827 , - 3210 , - 2625 , - 2464 , - 2727 , - 22 , - 1133 , - 2668 , - 1235 , - 226 , - 3033 , - 2872 , - 3135 , - 430 , - 1541 , - 3076 , - 1643 , - 634 , - 49 , - 3280 , - 151 , - 838 , - 1949 , - 92 , - 2051 , - 1042 , - 457 , - 296 , - 559 , - 1246 , - 2357 , - 500 , - 2459 , - 1450 , - 865 , - 704 , - 967 , - 1654 , - 2765 , - 908 , - 2867 , - 1858 , - 1273 , - 1112 , - 1375 , - 2062 , - 3173 , - 1316 , - 3275 , - 2266 , - 1681 , - 1520 , - 1783 , - 2470 , - 189 , - 1724 , - 291 , - 2674 , - 2089 , - 1928 , - 2191 , - 2878 , - 597 , - 2132 , - 699 , - 3082 , - 2497 , - 2336 , - 2599 , - 3286 , - 1005 , - 2540 , - 1107 , - 98 , - 2905 , - 2744 , - 3007 , - 302 , - 1413 , - 2948 , - 1515 , - 506 , - 3313 , - 3152 , - 23 , - 710 , - 1821 , - 3356 , - 1923 , - 914 , - 329 , - 168 , - 431 , - 1118 , - 2229 , - 372 , - 2331 , - 1322 , - 737 , - 576 , - 839 , - 1526 , - 2637 , - 780 , - 2739 , - 1730 , - 1145 , - 984 , - 1247 , - 1934 , - 3045 , - 1188 , - 3147 , - 2138 , - 1553 , - 1392 , - 1655 , - 2342 , - 61 , - 1596 , - 163 , - 2546 , - 1961 , - 1800 , - 2063 , - 2750 , - 469 , - 2004 , - 571 , - 2954 , - 2369 , - 2208 , - 2471 , - 3158 , - 877 , - 2412 , - 979 , - 3362 , - 2777 , - 2616 , - 2879 , - 174 , - 1285 , - 2820 , - 1387 , - 378 , - 3185 , - 3024 , - 3287 , - 582 , - 1693 , - 3228 , - 1795 , - 786 , - 201 , - 40 , - 303 , - 990 , - 2101 , - 244 , - 2203 , - 1194 , - 609 , - 448 , - 711 , - 1398 , - 2509 , - 652 , - 2611 , - 1602 , - 1017 , - 856 , - 1119 , - 1806 , - 2917 , - 1060 , - 3019 , - 2010 , - 1425 , - 1264 , - 1527 , - 2214 , - 3325 , - 1468 , - 35 , - 2418 , - 1833 , - 1672 , - 1935 , - 2622 , - 341 , - 1876 , - 443 , - 2826 , - 2241 , - 2080 , - 2343 , - 3030 , - 749 , - 2284 , - 851 , - 3234 , - 2649 , - 2488 , - 2751 , - 46 , - 1157 , - 2692 , - 1259 , - 250 , - 3057 , - 2896 , - 3159 , - 454 , - 1565 , - 3100 , - 1667 , - 658 , - 73 , - 3304 , - 175 , - 862 , - 1973 , - 116 , - 2075 , - 1066 , - 481 , - 320 , - 583 , - 1270 , - 2381 , - 524 , - 2483 , - 1474 , - 889 , - 728 , - 991 , - 1678 , - 2789 , - 932 , - 2891 , - 1882 , - 1297 , - 1136 , - 1399 , - 2086 , - 3197 , - 1340 , - 3299 , - 2290 , - 1705 , - 1544 , - 1807 , - 2494 , - 213 , - 1748 , - 315 , - 2698 , - 2113 , - 1952 , - 2215 , - 2902 , - 621 , - 2156 , - 723 , - 3106 , - 2521 , - 2360 , - 2623 , - 3310 , - 1029 , - 2564 , - 1131 , - 122 , - 2929 , - 2768 , - 3031 , - 326 , - 1437 , - 2972 , - 1539 , - 530 , - 3337 , - 3176 , - 47 , - 734 , - 1845 , - 3380 , - 1947 , - 938 , - 353 , - 192 , - 455 , - 1142 , - 2253 , - 396 , - 2355 , - 1346 , - 761 , - 600 , - 863 , - 1550 , - 2661 , - 804 , - 2763 , - 1754 , - 1169 , - 1008 , - 1271 , - 1958 , - 3069 , - 1212 , - 3171 , - 2162 , - 1577 , - 1416 , - 1679 , - 2366 , - 85 , - 1620 , - 187 , - 2570 , - 1985 , - 1824 , - 2087 , - 2774 , - 493 , - 2028 , - 595 , - 2978 , - 2393 , - 2232 , - 2495 , - 3182 , - 901 , - 2436 , - 1003 , - 3386 , - 2801 , - 2640 , - 2903 , - 198 , - 1309 , - 2844 , - 1411 , - 402 , - 3209 , - 3048 , - 3311 , - 606 , - 1717 , - 3252 , - 1819 , - 810 , - 225 , - 64 , - 327 , - 1014 , - 2125 , - 268 , - 2227 , - 1218 , - 633 , - 472 , - 735 , - 1422 , - 2533 , - 676 , - 2635 , - 1626 , - 1041 , - 880 , - 1143 , - 1830 , - 2941 , - 1084 , - 3043 , - 2034 , - 1449 , - 1288 , - 1551 , - 2238 , - 3349 , - 1492 , - 59 , - 2442 , - 1857 , - 1696 , - 1959 , - 2646 , - 365 , - 1900 , - 467 , - 2850 , - 2265 , - 2104 , - 2367 , - 3054 , - 773 , - 2308 , - 875 , - 3258 , - 2673 , - 2512 , - 2775 , - 70 , - 1181 , - 2716 , - 1283 , - 274 , - 3081 , - 2920 , - 3183 , - 478 , - 1589 , - 3124 , - 1691 , - 682 , - 97 , - 3328 , - 199 , - 886 , - 1997 , - 140 , - 2099 , - 1090 , - 505 , - 344 , - 607 , - 1294 , - 2405 , - 548 , - 2507 , - 1498 , - 913 , - 752 , - 1015 , - 1702 , - 2813 , - 956 , - 2915 , - 1906 , - 1321 , - 1160 , - 1423 , - 2110 , - 3221 , - 1364 , - 3323 , - 2314 , - 1729 , - 1568 , - 1831 , - 2518 , - 237 , - 1772 , - 339 , - 2722 , - 2137 , - 1976 , - 2239 , - 2926 , - 645 , - 2180 , - 747 , - 3130 , - 2545 , - 2384 , - 2647 , - 3334 , - 1053 , - 2588 , - 1155 , - 146 , - 2953 , - 2792 , - 3055 , - 350 , - 1461 , - 2996 , - 1563 , - 554 , - 3361 , - 3200 , - 71 , - 758 , - 1869 , - 12 , - 1971 , - 962 , - 377 , - 216 , - 479 , - 1166 , - 2277 , - 420 , - 2379 , - 1370 , - 785 , - 624 , - 887 , - 1574 , - 2685 , - 828 , - 2787 , - 1778 , - 1193 , - 1032 , - 1295 , - 1982 , - 3093 , - 1236 , - 3195 , - 2186 , - 1601 , - 1440 , - 1703 , - 2390 , - 109 , - 1644 , - 211 , - 2594 , - 2009 , - 1848 , - 2111 , - 2798 , - 517 , - 2052 , - 619 , - 3002 , - 2417 , - 2256 , - 2519 , - 3206 , - 925 , - 2460 , - 1027 , - 18 , - 2825 , - 2664 , - 2927 , - 222 , - 1333 , - 2868 , - 1435 , - 426 , - 3233 , - 3072 , - 3335 , - 630 , - 1741 , - 3276 , - 1843 , - 834 , - 249 , - 88 , - 351 , - 1038 , - 2149 , - 292 , - 2251 , - 1242 , - 657 , - 496 , - 759 , - 1446 , - 2557 , - 700 , - 2659 , - 1650 , - 1065 , - 904 , - 1167 , - 1854 , - 2965 , - 1108 , - 3067 , - 2058 , - 1473 , - 1312 , - 1575 , - 2262 , - 3373 , - 1516 , - 83 , - 2466 , - 1881 , - 1720 , - 1983 , - 2670 , - 389 , - 1924 , - 491 , - 2874 , - 2289 , - 2128 , - 2391 , - 3078 , - 797 , - 2332 , - 899 , - 3282 , - 2697 , - 2536 , - 2799 , - 94 , - 1205 , - 2740 , - 1307 , - 298 , - 3105 , - 2944 , - 3207 , - 502 , - 1613 , - 3148 , - 1715 , - 706 , - 121 , - 3352 , - 223 , - 910 , - 2021 , - 164 , - 2123 , - 1114 , - 529 , - 368 , - 631 , - 1318 , - 2429 , - 572 , - 2531 , - 1522 , - 937 , - 776 , - 1039 , - 1726 , - 2837 , - 980 , - 2939 , - 1930 , - 1345 , - 1184 , - 1447 , - 2134 , - 3245 , - 1388 , - 3347 , - 2338 , - 1753 , - 1592 , - 1855 , - 2542 , - 261 , - 1796 , - 363 , - 2746 , - 2161 , - 2000 , - 2263 , - 2950 , - 669 , - 2204 , - 771 , - 3154 , - 2569 , - 2408 , - 2671 , - 3358 , - 1077 , - 2612 , - 1179 , - 170 , - 2977 , - 2816 , - 3079 , - 374 , - 1485 , - 3020 , - 1587 , - 578 , - 3385 , - 3224 , - 95 , - 782 , - 1893 , - 36 , - 1995 , - 986 , - 401 , - 240 , - 503 , - 1190 , - 2301 , - 444 , - 2403 , - 1394 , - 809 , - 648 , - 911 , - 1598 , - 2709 , - 852 , - 2811 , - 1802 , - 1217 , - 1056 , - 1319 , - 2006 , - 3117 , - 1260 , - 3219 , - 2210 , - 1625 , - 1464 , - 1727 , - 2414 , - 133 , - 1668 , - 235 , - 2618 , - 2033 , - 1872 , - 2135 , - 2822 , - 541 , - 2076 , - 643 , - 3026 , - 2441 , - 2280 , - 2543 , - 3230 , - 949 , - 2484 , - 1051 , - 42 , - 2849 , - 2688 , - 2951 , - 246 , - 1357 , - 2892 , - 1459 , - 450 , - 3257 , - 3096 , - 3359 , - 654 , - 1765 , - 3300 , - 1867 , - 858 , - 273 , - 112 , - 375 , - 1062 , - 2173 , - 316 , - 2275 , - 1266 , - 681 , - 520 , - 783 , - 1470 , - 2581 , - 724 , - 2683 , - 1674 , - 1089 , - 928 , - 1191 , - 1878 , - 2989 , - 1132 , - 3091 , - 2082 , - 1497 , - 1336 , - 1599 , - 2286 , - 5 , - 1540 , - 107 , - 2490 , - 1905 , - 1744 , - 2007 , - 2694 , - 413 , - 1948 , - 515 , - 2898 , - 2313 , - 2152 , - 2415 , - 3102 , - 821 , - 2356 , - 923 , - 3306 , - 2721 , - 2560 , - 2823 , - 118 , - 1229 , - 2764 , - 1331 , - 322 , - 3129 , - 2968 , - 3231 , - 526 , - 1637 , - 3172 , - 1739 , - 730 , - 145 , - 3376 , - 247 , - 934 , - 2045 , - 188 , - 2147 , - 1138 , - 553 , - 392 , - 655 , - 1342 , - 2453 , - 596 , - 2555 , - 1546 , - 961 , - 800 , - 1063 , - 1750 , - 2861 , - 1004 , - 2963 , - 1954 , - 1369 , - 1208 , - 1471 , - 2158 , - 3269 , - 1412 , - 3371 , - 2362 , - 1777 , - 1616 , - 1879 , - 2566 , - 285 , - 1820 , - 387 , - 2770 , - 2185 , - 2024 , - 2287 , - 2974 , - 693 , - 2228 , - 795 , - 3178 , - 2593 , - 2432 , - 2695 , - 3382 , - 1101 , - 2636 , - 1203 , - 194 , - 3001 , - 2840 , - 3103 , - 398 , - 1509 , - 3044 , - 1611 , - 602 , - 17 , - 3248 , - 119 , - 806 , - 1917 , - 60 , - 2019 , - 1010 , - 425 , - 264 , - 527 , - 1214 , - 2325 , - 468 , - 2427 , - 1418 , - 833 , - 672 , - 935 , - 1622 , - 2733 , - 876 , - 2835 , - 1826 , - 1241 , - 1080 , - 1343 , - 2030 , - 3141 , - 1284 , - 3243 , - 2234 , - 1649 , - 1488 , - 1751 , - 2438 , - 157 , - 1692 , - 259 , - 2642 , - 2057 , - 1896 , - 2159 , - 2846 , - 565 , - 2100 , - 667 , - 3050 , - 2465 , - 2304 , - 2567 , - 3254 , - 973 , - 2508 , - 1075 , - 66 , - 2873 , - 2712 , - 2975 , - 270 , - 1381 , - 2916 , - 1483 , - 474 , - 3281 , - 3120 , - 3383 , - 678 , - 1789 , - 3324 , - 1891 , - 882 , - 297 , - 136 , - 399 , - 1086 , - 2197 , - 340 , - 2299 , - 1290 , - 705 , - 544 , - 807 , - 1494 , - 2605 , - 748 , - 2707 , - 1698 , - 1113 , - 952 , - 1215 , - 1902 , - 3013 , - 1156 , - 3115 , - 2106 , - 1521 , - 1360 , - 1623 , - 2310 , - 29 , - 1564 , - 131 , - 2514 , - 1929 , - 1768 , - 2031 , - 2718 , - 437 , - 1972 , - 539 , - 2922 , - 2337 , - 2176 , - 2439 , - 3126 , - 845 , - 2380 , - 947 , - 3330 , - 2745 , - 2584 , - 2847 , - 142 , - 1253 , - 2788 , - 1355 , - 346 , - 3153 , - 2992 , - 3255 , - 550 , - 1661 , - 3196 , - 1763 , - 754 , - 169 , - 8 , - 271 , - 958 , - 2069 , - 212 , - 2171 , - 1162 , - 577 , - 416 , - 679 , - 1366 , - 2477 , - 620 , - 2579 , - 1570 , - 985 , - 824 , - 1087 , - 1774 , - 2885 , - 1028 , - 2987 , - 1978 , - 1393 , - 1232 , - 1495 , - 2182 , - 3293 , - 1436 , - 3 , - 2386 , - 1801 , - 1640 , - 1903 , - 2590 , - 309 , - 1844 , - 411 , - 2794 , - 2209 , - 2048 , - 2311 , - 2998 , - 717 , - 2252 , - 819 , - 3202 , - 2617 , - 2456 , - 2719 , - 14 , - 1125 , - 2660 , - 1227 , - 218 , - 3025 , - 2864 , - 3127 , - 422 , - 1533 , - 3068 , - 1635 , - 626 , - 41 , - 3272 , - 143 , - 830 , - 1941 , - 84 , - 2043 , - 1034 , - 449 , - 288 , - 551 , - 1238 , - 2349 , - 492 , - 2451 , - 1442 , - 857 , - 696 , - 959 , - 1646 , - 2757 , - 900 , - 2859 , - 1850 , - 1265 , - 1104 , - 1367 , - 2054 , - 3165 , - 1308 , - 3267 , - 2258 , - 1673 , - 1512 , - 1775 , - 2462 , - 181 , - 1716 , - 283 , - 2666 , - 2081 , - 1920 , - 2183 , - 2870 , - 589 , - 2124 , - 691 , - 3074 , - 2489 , - 2328 , - 2591 , - 3278 , - 997 , - 2532 , - 1099 , - 90 , - 2897 , - 2736 , - 2999 , - 294 , - 1405 , - 2940 , - 1507 , - 498 , - 3305 , - 3144 , - 15 , - 702 , - 1813 , - 3348 , - 1915 , - 906 , - 321 , - 160 , - 423 , - 1110 , - 2221 , - 364 , - 2323 , - 1314 , - 729 , - 568 , - 831 , - 1518 , - 2629 , - 772 , - 2731 , - 1722 , - 1137 , - 976 , - 1239 , - 1926 , - 3037 , - 1180 , - 3139 , - 2130 , - 1545 , - 1384 , - 1647 , - 2334 , - 53 , - 1588 , - 155 , - 2538 , - 1953 , - 1792 , - 2055 , - 2742 , - 461 , - 1996 , - 563 , - 2946 , - 2361 , - 2200 , - 2463 , - 3150 , - 869 , - 2404 , - 971 , - 3354 , - 2769 , - 2608 , - 2871 , - 166 , - 1277 , - 2812 , - 1379 , - 370 , - 3177 , - 3016 , - 3279 , - 574 , - 1685 , - 3220 , - 1787 , - 778 , - 193 , - 32 , - 295 , - 982 , - 2093 , - 236 , - 2195 , - 1186 , - 601 , - 440 , - 703 , - 1390 , - 2501 , - 644 , - 2603 , - 1594 , - 1009 , - 848 , - 1111 , - 1798 , - 2909 , - 1052 , - 3011 , - 2002 , - 1417 , - 1256 , - 1519 , - 2206 , - 3317 , - 1460 , - 27 , - 2410 , - 1825 , - 1664 , - 1927 , - 2614 , - 333 , - 1868 , - 435 , - 2818 , - 2233 , - 2072 , - 2335 , - 3022 , - 741 , - 2276 , - 843 , - 3226 , - 2641 , - 2480 , - 2743 , - 38 , - 1149 , - 2684 , - 1251 , - 242 , - 3049 , - 2888 , - 3151 , - 446 , - 1557 , - 3092 , - 1659 , - 650 , - 65 , - 3296 , - 167 , - 854 , - 1965 , - 108 , - 2067 , - 1058 , - 473 , - 312 , - 575 , - 1262 , - 2373 , - 516 , - 2475 , - 1466 , - 881 , - 720 , - 983 , - 1670 , - 2781 , - 924 , - 2883 , - 1874 , - 1289 , - 1128 , - 1391 , - 2078 , - 3189 , - 1332 , - 3291 , - 2282 , - 1697 , - 1536 , - 1799 , - 2486 , - 205 , - 1740 , - 307 , - 2690 , - 2105 , - 1944 , - 2207 , - 2894 , - 613 , - 2148 , - 715 , - 3098 , - 2513 , - 2352 , - 2615 , - 3302 , - 1021 , - 2556 , - 1123 , - 114 , - 2921 , - 2760 , - 3023 , - 318 , - 1429 , - 2964 , - 1531 , - 522 , - 3329 , - 3168 , - 39 , - 726 , - 1837 , - 3372 , - 1939 , - 930 , - 345 , - 184 , - 447 , - 1134 , - 2245 , - 388 , - 2347 , - 1338 , - 753 , - 592 , - 855 , - 1542 , - 2653 , - 796 , - 2755 , - 1746 , - 1161 , - 1000 , - 1263 , - 1950 , - 3061 , - 1204 , - 3163 , - 2154 , - 1569 , - 1408 , - 1671 , - 2358 , - 77 , - 1612 , - 179 , - 2562 , - 1977 , - 1816 , - 2079 , - 2766 , - 485 , - 2020 , - 587 , - 2970 , - 2385 , - 2224 , - 2487 , - 3174 , - 893 , - 2428 , - 995 , - 3378 , - 2793 , - 2632 , - 2895 , - 190 , - 1301 , - 2836 , - 1403 , - 394 , - 3201 , - 3040 , - 3303 , - 598 , - 1709 , - 3244 , - 1811 , - 802 , - 217 , - 56 , - 319 , - 1006 , - 2117 , - 260 , - 2219 , - 1210 , - 625 , - 464 , - 727 , - 1414 , - 2525 , - 668 , - 2627 , - 1618 , - 1033 , - 872 , - 1135 , - 1822 , - 2933 , - 1076 , - 3035 , - 2026 , - 1441 , - 1280 , - 1543 , - 2230 , - 3341 , - 1484 , - 51 , - 2434 , - 1849 , - 1688 , - 1951 , - 2638 , - 357 , - 1892 , - 459 , - 2842 , - 2257 , - 2096 , - 2359 , - 3046 , - 765 , - 2300 , - 867 , - 3250 , - 2665 , - 2504 , - 2767 , - 62 , - 1173 , - 2708 , - 1275 , - 266 , - 3073 , - 2912 , - 3175 , - 470 , - 1581 , - 3116 , - 1683 , - 674 , - 89 , - 3320 , - 191 , - 878 , - 1989 , - 132 , - 2091 , - 1082 , - 497 , - 336 , - 599 , - 1286 , - 2397 , - 540 , - 2499 , - 1490 , - 905 , - 744 , - 1007 , - 1694 , - 2805 , - 948 , - 2907 , - 1898 , - 1313 , - 1152 , - 1415 , - 2102 , - 3213 , - 1356 , - 3315 , - 2306 , - 1721 , - 1560 , - 1823 , - 2510 , - 229 , - 1764 , - 331 , - 2714 , - 2129 , - 1968 , - 2231 , - 2918 , - 637 , - 2172 , - 739 , - 3122 , - 2537 , - 2376 , - 2639 , - 3326 , - 1045 , - 2580 , - 1147 , - 138 , - 2945 , - 2784 , - 3047 , - 342 , - 1453 , - 2988 , - 1555 , - 546 , - 3353 , - 3192 , - 63 , - 750 , - 1861 , - 4 , - 1963 , - 954 , - 369 , - 208 , - 471 , - 1158 , - 2269 , - 412 , - 2371 , - 1362 , - 777 , - 616 , - 879 , - 1566 , - 2677 , - 820 , - 2779 , - 1770 , - 1185 , - 1024 , - 1287 , - 1974 , - 3085 , - 1228 , - 3187 , - 2178 , - 1593 , - 1432 , - 1695 , - 2382 , - 101 , - 1636 , - 203 , - 2586 , - 2001 , - 1840 , - 2103 , - 2790 , - 509 , - 2044 , - 611 , - 2994 , - 2409 , - 2248 , - 2511 , - 3198 , - 917 , - 2452 , - 1019 , - 10 , - 2817 , - 2656 , - 2919 , - 214 , - 1325 , - 2860 , - 1427 , - 418 , - 3225 , - 3064 , - 3327 , - 622 , - 1733 , - 3268 , - 1835 , - 826 , - 241 , - 80 , - 343 , - 1030 , - 2141 , - 284 , - 2243 , - 1234 , - 649 , - 488 , - 751 , - 1438 , - 2549 , - 692 , - 2651 , - 1642 , - 1057 , - 896 , - 1159 , - 1846 , - 2957 , - 1100 , - 3059 , - 2050 , - 1465 , - 1304 , - 1567 , - 2254 , - 3365 , - 1508 , - 75 , - 2458 , - 1873 , - 1712 , - 1975 , - 2662 , - 381 , - 1916 , - 483 , - 2866 , - 2281 , - 2120 , - 2383 , - 3070 , - 789 , - 2324 , - 891 , - 3274 , - 2689 , - 2528 , - 2791 , - 86 , - 1197 , - 2732 , - 1299 , - 290 , - 3097 , - 2936 , - 3199 , - 494 , - 1605 , - 3140 , - 1707 , - 698 , - 113 , - 3344 , - 215 , - 902 , - 2013 , - 156 , - 2115 , - 1106 , - 521 , - 360 , - 623 , - 1310 , - 2421 , - 564 , - 2523 , - 1514 , - 929 , - 768 , - 1031 , - 1718 , - 2829 , - 972 , - 2931 , - 1922 , - 1337 , - 1176 , - 1439 , - 2126 , - 3237 , - 1380 , - 3339 , - 2330 , - 1745 , - 1584 , - 1847 , - 2534 , - 253 , - 1788 , - 355 , - 2738 , - 2153 , - 1992 , - 2255 , - 2942 , - 661 , - 2196 , - 763 , - 3146 , - 2561 , - 2400 , - 2663 , - 3350 , - 1069 , - 2604 , - 1171 , - 162 , - 2969 , - 2808 , - 3071 , - 366 , - 1477 , - 3012 , - 1579 , - 570 , - 3377 , - 3216 , - 87 , - 774 , - 1885 , - 28 , - 1987 , - 978 , - 393 , - 232 , - 495 , - 1182 , - 2293 , - 436 , - 2395 , - 1386 , - 801 , - 640 , - 903 , - 1590 , - 2701 , - 844 , - 2803 , - 1794 , - 1209 , - 1048 , - 1311 , - 1998 , - 3109 , - 1252 , - 3211 , - 2202 , - 1617 , - 1456 , - 1719 , - 2406 , - 125 , - 1660 , - 227 , - 2610 , - 2025 , - 1864 , - 2127 , - 2814 , - 533 , - 2068 , - 635 , - 3018 , - 2433 , - 2272 , - 2535 , - 3222 , - 941 , - 2476 , - 1043 , - 34 , - 2841 , - 2680 , - 2943 , - 238 , - 1349 , - 2884 , - 1451 , - 442 , - 3249 , - 3088 , - 3351 , - 646 , - 1757 , - 3292 , - 1859 , - 850 , - 265 , - 104 , - 367 , - 1054 , - 2165 , - 308 , - 2267 , - 1258 , - 673 , - 512 , - 775 , - 1462 , - 2573 , - 716 , - 2675 , - 1666 , - 1081 , - 920 , - 1183 , - 1870 , - 2981 , - 1124 , - 3083 , - 2074 , - 1489 , - 1328 , - 1591 , - 2278 , - 3389 , - 1532 , - 99 , - 2482 , - 1897 , - 1736 , - 1999 , - 2686 , - 405 , - 1940 , - 507 , - 2890 , - 2305 , - 2144 , - 2407 , - 3094 , - 813 , - 2348 , - 915 , - 3298 , - 2713 , - 2552 , - 2815 , - 110 , - 1221 , - 2756 , - 1323 , - 314 , - 3121 , - 2960 , - 3223 , - 518 , - 1629 , - 3164 , - 1731 , - 722 , - 137 , - 3368 , - 239 , - 926 , - 2037 , - 180 , - 2139 , - 1130 , - 545 , - 384 , - 647 , - 1334 , - 2445 , - 588 , - 2547 , - 1538 , - 953 , - 792 , - 1055 , - 1742 , - 2853 , - 996 , - 2955 , - 1946 , - 1361 , - 1200 , - 1463 , - 2150 , - 3261 , - 1404 , - 3363 , - 2354 , - 1769 , - 1608 , - 1871 , - 2558 , - 277 , - 1812 , - 379 , - 2762 , - 2177 , - 2016 , - 2279 , - 2966 , - 685 , - 2220 , - 787 , - 3170 , - 2585 , - 2424 , - 2687 , - 3374 , - 1093 , - 2628 , - 1195 , - 186 , - 2993 , - 2832 , - 3095 , - 390 , - 1501 , - 3036 , - 1603 , - 594 , - 9 , - 3240 , - 111 , - 798 , - 1909 , - 52 , - 2011 , - 1002 , - 417 , - 256 , - 519 , - 1206 , - 2317 , - 460 , - 2419 , - 1410 , - 825 , - 664 , - 927 , - 1614 , - 2725 , - 868 , - 2827 , - 1818 , - 1233 , - 1072 , - 1335 , - 2022 , - 3133 , - 1276 , - 3235 , - 2226 , - 1641 , - 1480 , - 1743 , - 2430 , - 149 , - 1684 , - 251 , - 2634 , - 2049 , - 1888 , - 2151 , - 2838 , - 557 , - 2092 , - 659 , - 3042 , - 2457 , - 2296 , - 2559 , - 3246 , - 965 , - 2500 , - 1067 , - 58 , - 2865 , - 2704 , - 2967 , - 262 , - 1373 , - 2908 , - 1475 , - 466 , - 3273 , - 3112 , - 3375 , - 670 , - 1781 , - 3316 , - 1883 , - 874 , - 289 , - 128 , - 391 , - 1078 , - 2189 , - 332 , - 2291 , - 1282 , - 697 , - 536 , - 799 , - 1486 , - 2597 , - 740 , - 2699 , - 1690 , - 1105 , - 944 , - 1207 , - 1894 , - 3005 , - 1148 , - 3107 , - 2098 , - 1513 , - 1352 , - 1615 , - 2302 , - 21 , - 1556 , - 123 , - 2506 , - 1921 , - 1760 , - 2023 , - 2710 , - 429 , - 1964 , - 531 , - 2914 , - 2329 , - 2168 , - 2431 , - 3118 , - 837 , - 2372 , - 939 , - 3322 , - 2737 , - 2576 , - 2839 , - 134 , - 1245 , - 2780 , - 1347 , - 338 , - 3145 , - 2984 , - 3247 , - 542 , - 1653 , - 3188 , - 1755 , - 746 , - 161 , - 0 , - 643 , - 1670 , - 3081 , - 1420 , - 143 , - 2706 , - 2197 , - 2072 , - 2331 , - 2974 , - 545 , - 1956 , - 295 , - 2474 , - 1581 , - 1072 , - 947 , - 1206 , - 1849 , - 2876 , - 831 , - 2626 , - 1349 , - 456 , - 3403 , - 3278 , - 81 , - 724 , - 1751 , - 3162 , - 1501 , - 224 , - 2787 , - 2278 , - 2153 , - 2412 , - 3055 , - 626 , - 2037 , - 376 , - 2555 , - 1662 , - 1153 , - 1028 , - 1287 , - 1930 , - 2957 , - 912 , - 2707 , - 1430 , - 537 , - 28 , - 3359 , - 162 , - 805 , - 1832 , - 3243 , - 1582 , - 305 , - 2868 , - 2359 , - 2234 , - 2493 , - 3136 , - 707 , - 2118 , - 457 , - 2636 , - 1743 , - 1234 , - 1109 , - 1368 , - 2011 , - 3038 , - 993 , - 2788 , - 1511 , - 618 , - 109 , - 3440 , - 243 , - 886 , - 1913 , - 3324 , - 1663 , - 386 , - 2949 , - 2440 , - 2315 , - 2574 , - 3217 , - 788 , - 2199 , - 538 , - 2717 , - 1824 , - 1315 , - 1190 , - 1449 , - 2092 , - 3119 , - 1074 , - 2869 , - 1592 , - 699 , - 190 , - 65 , - 324 , - 967 , - 1994 , - 3405 , - 1744 , - 467 , - 3030 , - 2521 , - 2396 , - 2655 , - 3298 , - 869 , - 2280 , - 619 , - 2798 , - 1905 , - 1396 , - 1271 , - 1530 , - 2173 , - 3200 , - 1155 , - 2950 , - 1673 , - 780 , - 271 , - 146 , - 405 , - 1048 , - 2075 , - 30 , - 1825 , - 548 , - 3111 , - 2602 , - 2477 , - 2736 , - 3379 , - 950 , - 2361 , - 700 , - 2879 , - 1986 , - 1477 , - 1352 , - 1611 , - 2254 , - 3281 , - 1236 , - 3031 , - 1754 , - 861 , - 352 , - 227 , - 486 , - 1129 , - 2156 , - 111 , - 1906 , - 629 , - 3192 , - 2683 , - 2558 , - 2817 , - 4 , - 1031 , - 2442 , - 781 , - 2960 , - 2067 , - 1558 , - 1433 , - 1692 , - 2335 , - 3362 , - 1317 , - 3112 , - 1835 , - 942 , - 433 , - 308 , - 567 , - 1210 , - 2237 , - 192 , - 1987 , - 710 , - 3273 , - 2764 , - 2639 , - 2898 , - 85 , - 1112 , - 2523 , - 862 , - 3041 , - 2148 , - 1639 , - 1514 , - 1773 , - 2416 , - 3443 , - 1398 , - 3193 , - 1916 , - 1023 , - 514 , - 389 , - 648 , - 1291 , - 2318 , - 273 , - 2068 , - 791 , - 3354 , - 2845 , - 2720 , - 2979 , - 166 , - 1193 , - 2604 , - 943 , - 3122 , - 2229 , - 1720 , - 1595 , - 1854 , - 2497 , - 68 , - 1479 , - 3274 , - 1997 , - 1104 , - 595 , - 470 , - 729 , - 1372 , - 2399 , - 354 , - 2149 , - 872 , - 3435 , - 2926 , - 2801 , - 3060 , - 247 , - 1274 , - 2685 , - 1024 , - 3203 , - 2310 , - 1801 , - 1676 , - 1935 , - 2578 , - 149 , - 1560 , - 3355 , - 2078 , - 1185 , - 676 , - 551 , - 810 , - 1453 , - 2480 , - 435 , - 2230 , - 953 , - 60 , - 3007 , - 2882 , - 3141 , - 328 , - 1355 , - 2766 , - 1105 , - 3284 , - 2391 , - 1882 , - 1757 , - 2016 , - 2659 , - 230 , - 1641 , - 3436 , - 2159 , - 1266 , - 757 , - 632 , - 891 , - 1534 , - 2561 , - 516 , - 2311 , - 1034 , - 141 , - 3088 , - 2963 , - 3222 , - 409 , - 1436 , - 2847 , - 1186 , - 3365 , - 2472 , - 1963 , - 1838 , - 2097 , - 2740 , - 311 , - 1722 , - 61 , - 2240 , - 1347 , - 838 , - 713 , - 972 , - 1615 , - 2642 , - 597 , - 2392 , - 1115 , - 222 , - 3169 , - 3044 , - 3303 , - 490 , - 1517 , - 2928 , - 1267 , - 3446 , - 2553 , - 2044 , - 1919 , - 2178 , - 2821 , - 392 , - 1803 , - 142 , - 2321 , - 1428 , - 919 , - 794 , - 1053 , - 1696 , - 2723 , - 678 , - 2473 , - 1196 , - 303 , - 3250 , - 3125 , - 3384 , - 571 , - 1598 , - 3009 , - 1348 , - 71 , - 2634 , - 2125 , - 2000 , - 2259 , - 2902 , - 473 , - 1884 , - 223 , - 2402 , - 1509 , - 1000 , - 875 , - 1134 , - 1777 , - 2804 , - 759 , - 2554 , - 1277 , - 384 , - 3331 , - 3206 , - 9 , - 652 , - 1679 , - 3090 , - 1429 , - 152 , - 2715 , - 2206 , - 2081 , - 2340 , - 2983 , - 554 , - 1965 , - 304 , - 2483 , - 1590 , - 1081 , - 956 , - 1215 , - 1858 , - 2885 , - 840 , - 2635 , - 1358 , - 465 , - 3412 , - 3287 , - 90 , - 733 , - 1760 , - 3171 , - 1510 , - 233 , - 2796 , - 2287 , - 2162 , - 2421 , - 3064 , - 635 , - 2046 , - 385 , - 2564 , - 1671 , - 1162 , - 1037 , - 1296 , - 1939 , - 2966 , - 921 , - 2716 , - 1439 , - 546 , - 37 , - 3368 , - 171 , - 814 , - 1841 , - 3252 , - 1591 , - 314 , - 2877 , - 2368 , - 2243 , - 2502 , - 3145 , - 716 , - 2127 , - 466 , - 2645 , - 1752 , - 1243 , - 1118 , - 1377 , - 2020 , - 3047 , - 1002 , - 2797 , - 1520 , - 627 , - 118 , - 3449 , - 252 , - 895 , - 1922 , - 3333 , - 1672 , - 395 , - 2958 , - 2449 , - 2324 , - 2583 , - 3226 , - 797 , - 2208 , - 547 , - 2726 , - 1833 , - 1324 , - 1199 , - 1458 , - 2101 , - 3128 , - 1083 , - 2878 , - 1601 , - 708 , - 199 , - 74 , - 333 , - 976 , - 2003 , - 3414 , - 1753 , - 476 , - 3039 , - 2530 , - 2405 , - 2664 , - 3307 , - 878 , - 2289 , - 628 , - 2807 , - 1914 , - 1405 , - 1280 , - 1539 , - 2182 , - 3209 , - 1164 , - 2959 , - 1682 , - 789 , - 280 , - 155 , - 414 , - 1057 , - 2084 , - 39 , - 1834 , - 557 , - 3120 , - 2611 , - 2486 , - 2745 , - 3388 , - 959 , - 2370 , - 709 , - 2888 , - 1995 , - 1486 , - 1361 , - 1620 , - 2263 , - 3290 , - 1245 , - 3040 , - 1763 , - 870 , - 361 , - 236 , - 495 , - 1138 , - 2165 , - 120 , - 1915 , - 638 , - 3201 , - 2692 , - 2567 , - 2826 , - 13 , - 1040 , - 2451 , - 790 , - 2969 , - 2076 , - 1567 , - 1442 , - 1701 , - 2344 , - 3371 , - 1326 , - 3121 , - 1844 , - 951 , - 442 , - 317 , - 576 , - 1219 , - 2246 , - 201 , - 1996 , - 719 , - 3282 , - 2773 , - 2648 , - 2907 , - 94 , - 1121 , - 2532 , - 871 , - 3050 , - 2157 , - 1648 , - 1523 , - 1782 , - 2425 , - 3452 , - 1407 , - 3202 , - 1925 , - 1032 , - 523 , - 398 , - 657 , - 1300 , - 2327 , - 282 , - 2077 , - 800 , - 3363 , - 2854 , - 2729 , - 2988 , - 175 , - 1202 , - 2613 , - 952 , - 3131 , - 2238 , - 1729 , - 1604 , - 1863 , - 2506 , - 77 , - 1488 , - 3283 , - 2006 , - 1113 , - 604 , - 479 , - 738 , - 1381 , - 2408 , - 363 , - 2158 , - 881 , - 3444 , - 2935 , - 2810 , - 3069 , - 256 , - 1283 , - 2694 , - 1033 , - 3212 , - 2319 , - 1810 , - 1685 , - 1944 , - 2587 , - 158 , - 1569 , - 3364 , - 2087 , - 1194 , - 685 , - 560 , - 819 , - 1462 , - 2489 , - 444 , - 2239 , - 962 , - 69 , - 3016 , - 2891 , - 3150 , - 337 , - 1364 , - 2775 , - 1114 , - 3293 , - 2400 , - 1891 , - 1766 , - 2025 , - 2668 , - 239 , - 1650 , - 3445 , - 2168 , - 1275 , - 766 , - 641 , - 900 , - 1543 , - 2570 , - 525 , - 2320 , - 1043 , - 150 , - 3097 , - 2972 , - 3231 , - 418 , - 1445 , - 2856 , - 1195 , - 3374 , - 2481 , - 1972 , - 1847 , - 2106 , - 2749 , - 320 , - 1731 , - 70 , - 2249 , - 1356 , - 847 , - 722 , - 981 , - 1624 , - 2651 , - 606 , - 2401 , - 1124 , - 231 , - 3178 , - 3053 , - 3312 , - 499 , - 1526 , - 2937 , - 1276 , - 3455 , - 2562 , - 2053 , - 1928 , - 2187 , - 2830 , - 401 , - 1812 , - 151 , - 2330 , - 1437 , - 928 , - 803 , - 1062 , - 1705 , - 2732 , - 687 , - 2482 , - 1205 , - 312 , - 3259 , - 3134 , - 3393 , - 580 , - 1607 , - 3018 , - 1357 , - 80 , - 2643 , - 2134 , - 2009 , - 2268 , - 2911 , - 482 , - 1893 , - 232 , - 2411 , - 1518 , - 1009 , - 884 , - 1143 , - 1786 , - 2813 , - 768 , - 2563 , - 1286 , - 393 , - 3340 , - 3215 , - 18 , - 661 , - 1688 , - 3099 , - 1438 , - 161 , - 2724 , - 2215 , - 2090 , - 2349 , - 2992 , - 563 , - 1974 , - 313 , - 2492 , - 1599 , - 1090 , - 965 , - 1224 , - 1867 , - 2894 , - 849 , - 2644 , - 1367 , - 474 , - 3421 , - 3296 , - 99 , - 742 , - 1769 , - 3180 , - 1519 , - 242 , - 2805 , - 2296 , - 2171 , - 2430 , - 3073 , - 644 , - 2055 , - 394 , - 2573 , - 1680 , - 1171 , - 1046 , - 1305 , - 1948 , - 2975 , - 930 , - 2725 , - 1448 , - 555 , - 46 , - 3377 , - 180 , - 823 , - 1850 , - 3261 , - 1600 , - 323 , - 2886 , - 2377 , - 2252 , - 2511 , - 3154 , - 725 , - 2136 , - 475 , - 2654 , - 1761 , - 1252 , - 1127 , - 1386 , - 2029 , - 3056 , - 1011 , - 2806 , - 1529 , - 636 , - 127 , - 2 , - 261 , - 904 , - 1931 , - 3342 , - 1681 , - 404 , - 2967 , - 2458 , - 2333 , - 2592 , - 3235 , - 806 , - 2217 , - 556 , - 2735 , - 1842 , - 1333 , - 1208 , - 1467 , - 2110 , - 3137 , - 1092 , - 2887 , - 1610 , - 717 , - 208 , - 83 , - 342 , - 985 , - 2012 , - 3423 , - 1762 , - 485 , - 3048 , - 2539 , - 2414 , - 2673 , - 3316 , - 887 , - 2298 , - 637 , - 2816 , - 1923 , - 1414 , - 1289 , - 1548 , - 2191 , - 3218 , - 1173 , - 2968 , - 1691 , - 798 , - 289 , - 164 , - 423 , - 1066 , - 2093 , - 48 , - 1843 , - 566 , - 3129 , - 2620 , - 2495 , - 2754 , - 3397 , - 968 , - 2379 , - 718 , - 2897 , - 2004 , - 1495 , - 1370 , - 1629 , - 2272 , - 3299 , - 1254 , - 3049 , - 1772 , - 879 , - 370 , - 245 , - 504 , - 1147 , - 2174 , - 129 , - 1924 , - 647 , - 3210 , - 2701 , - 2576 , - 2835 , - 22 , - 1049 , - 2460 , - 799 , - 2978 , - 2085 , - 1576 , - 1451 , - 1710 , - 2353 , - 3380 , - 1335 , - 3130 , - 1853 , - 960 , - 451 , - 326 , - 585 , - 1228 , - 2255 , - 210 , - 2005 , - 728 , - 3291 , - 2782 , - 2657 , - 2916 , - 103 , - 1130 , - 2541 , - 880 , - 3059 , - 2166 , - 1657 , - 1532 , - 1791 , - 2434 , - 5 , - 1416 , - 3211 , - 1934 , - 1041 , - 532 , - 407 , - 666 , - 1309 , - 2336 , - 291 , - 2086 , - 809 , - 3372 , - 2863 , - 2738 , - 2997 , - 184 , - 1211 , - 2622 , - 961 , - 3140 , - 2247 , - 1738 , - 1613 , - 1872 , - 2515 , - 86 , - 1497 , - 3292 , - 2015 , - 1122 , - 613 , - 488 , - 747 , - 1390 , - 2417 , - 372 , - 2167 , - 890 , - 3453 , - 2944 , - 2819 , - 3078 , - 265 , - 1292 , - 2703 , - 1042 , - 3221 , - 2328 , - 1819 , - 1694 , - 1953 , - 2596 , - 167 , - 1578 , - 3373 , - 2096 , - 1203 , - 694 , - 569 , - 828 , - 1471 , - 2498 , - 453 , - 2248 , - 971 , - 78 , - 3025 , - 2900 , - 3159 , - 346 , - 1373 , - 2784 , - 1123 , - 3302 , - 2409 , - 1900 , - 1775 , - 2034 , - 2677 , - 248 , - 1659 , - 3454 , - 2177 , - 1284 , - 775 , - 650 , - 909 , - 1552 , - 2579 , - 534 , - 2329 , - 1052 , - 159 , - 3106 , - 2981 , - 3240 , - 427 , - 1454 , - 2865 , - 1204 , - 3383 , - 2490 , - 1981 , - 1856 , - 2115 , - 2758 , - 329 , - 1740 , - 79 , - 2258 , - 1365 , - 856 , - 731 , - 990 , - 1633 , - 2660 , - 615 , - 2410 , - 1133 , - 240 , - 3187 , - 3062 , - 3321 , - 508 , - 1535 , - 2946 , - 1285 , - 8 , - 2571 , - 2062 , - 1937 , - 2196 , - 2839 , - 410 , - 1821 , - 160 , - 2339 , - 1446 , - 937 , - 812 , - 1071 , - 1714 , - 2741 , - 696 , - 2491 , - 1214 , - 321 , - 3268 , - 3143 , - 3402 , - 589 , - 1616 , - 3027 , - 1366 , - 89 , - 2652 , - 2143 , - 2018 , - 2277 , - 2920 , - 491 , - 1902 , - 241 , - 2420 , - 1527 , - 1018 , - 893 , - 1152 , - 1795 , - 2822 , - 777 , - 2572 , - 1295 , - 402 , - 3349 , - 3224 , - 27 , - 670 , - 1697 , - 3108 , - 1447 , - 170 , - 2733 , - 2224 , - 2099 , - 2358 , - 3001 , - 572 , - 1983 , - 322 , - 2501 , - 1608 , - 1099 , - 974 , - 1233 , - 1876 , - 2903 , - 858 , - 2653 , - 1376 , - 483 , - 3430 , - 3305 , - 108 , - 751 , - 1778 , - 3189 , - 1528 , - 251 , - 2814 , - 2305 , - 2180 , - 2439 , - 3082 , - 653 , - 2064 , - 403 , - 2582 , - 1689 , - 1180 , - 1055 , - 1314 , - 1957 , - 2984 , - 939 , - 2734 , - 1457 , - 564 , - 55 , - 3386 , - 189 , - 832 , - 1859 , - 3270 , - 1609 , - 332 , - 2895 , - 2386 , - 2261 , - 2520 , - 3163 , - 734 , - 2145 , - 484 , - 2663 , - 1770 , - 1261 , - 1136 , - 1395 , - 2038 , - 3065 , - 1020 , - 2815 , - 1538 , - 645 , - 136 , - 11 , - 270 , - 913 , - 1940 , - 3351 , - 1690 , - 413 , - 2976 , - 2467 , - 2342 , - 2601 , - 3244 , - 815 , - 2226 , - 565 , - 2744 , - 1851 , - 1342 , - 1217 , - 1476 , - 2119 , - 3146 , - 1101 , - 2896 , - 1619 , - 726 , - 217 , - 92 , - 351 , - 994 , - 2021 , - 3432 , - 1771 , - 494 , - 3057 , - 2548 , - 2423 , - 2682 , - 3325 , - 896 , - 2307 , - 646 , - 2825 , - 1932 , - 1423 , - 1298 , - 1557 , - 2200 , - 3227 , - 1182 , - 2977 , - 1700 , - 807 , - 298 , - 173 , - 432 , - 1075 , - 2102 , - 57 , - 1852 , - 575 , - 3138 , - 2629 , - 2504 , - 2763 , - 3406 , - 977 , - 2388 , - 727 , - 2906 , - 2013 , - 1504 , - 1379 , - 1638 , - 2281 , - 3308 , - 1263 , - 3058 , - 1781 , - 888 , - 379 , - 254 , - 513 , - 1156 , - 2183 , - 138 , - 1933 , - 656 , - 3219 , - 2710 , - 2585 , - 2844 , - 31 , - 1058 , - 2469 , - 808 , - 2987 , - 2094 , - 1585 , - 1460 , - 1719 , - 2362 , - 3389 , - 1344 , - 3139 , - 1862 , - 969 , - 460 , - 335 , - 594 , - 1237 , - 2264 , - 219 , - 2014 , - 737 , - 3300 , - 2791 , - 2666 , - 2925 , - 112 , - 1139 , - 2550 , - 889 , - 3068 , - 2175 , - 1666 , - 1541 , - 1800 , - 2443 , - 14 , - 1425 , - 3220 , - 1943 , - 1050 , - 541 , - 416 , - 675 , - 1318 , - 2345 , - 300 , - 2095 , - 818 , - 3381 , - 2872 , - 2747 , - 3006 , - 193 , - 1220 , - 2631 , - 970 , - 3149 , - 2256 , - 1747 , - 1622 , - 1881 , - 2524 , - 95 , - 1506 , - 3301 , - 2024 , - 1131 , - 622 , - 497 , - 756 , - 1399 , - 2426 , - 381 , - 2176 , - 899 , - 6 , - 2953 , - 2828 , - 3087 , - 274 , - 1301 , - 2712 , - 1051 , - 3230 , - 2337 , - 1828 , - 1703 , - 1962 , - 2605 , - 176 , - 1587 , - 3382 , - 2105 , - 1212 , - 703 , - 578 , - 837 , - 1480 , - 2507 , - 462 , - 2257 , - 980 , - 87 , - 3034 , - 2909 , - 3168 , - 355 , - 1382 , - 2793 , - 1132 , - 3311 , - 2418 , - 1909 , - 1784 , - 2043 , - 2686 , - 257 , - 1668 , - 7 , - 2186 , - 1293 , - 784 , - 659 , - 918 , - 1561 , - 2588 , - 543 , - 2338 , - 1061 , - 168 , - 3115 , - 2990 , - 3249 , - 436 , - 1463 , - 2874 , - 1213 , - 3392 , - 2499 , - 1990 , - 1865 , - 2124 , - 2767 , - 338 , - 1749 , - 88 , - 2267 , - 1374 , - 865 , - 740 , - 999 , - 1642 , - 2669 , - 624 , - 2419 , - 1142 , - 249 , - 3196 , - 3071 , - 3330 , - 517 , - 1544 , - 2955 , - 1294 , - 17 , - 2580 , - 2071 , - 1946 , - 2205 , - 2848 , - 419 , - 1830 , - 169 , - 2348 , - 1455 , - 946 , - 821 , - 1080 , - 1723 , - 2750 , - 705 , - 2500 , - 1223 , - 330 , - 3277 , - 3152 , - 3411 , - 598 , - 1625 , - 3036 , - 1375 , - 98 , - 2661 , - 2152 , - 2027 , - 2286 , - 2929 , - 500 , - 1911 , - 250 , - 2429 , - 1536 , - 1027 , - 902 , - 1161 , - 1804 , - 2831 , - 786 , - 2581 , - 1304 , - 411 , - 3358 , - 3233 , - 36 , - 679 , - 1706 , - 3117 , - 1456 , - 179 , - 2742 , - 2233 , - 2108 , - 2367 , - 3010 , - 581 , - 1992 , - 331 , - 2510 , - 1617 , - 1108 , - 983 , - 1242 , - 1885 , - 2912 , - 867 , - 2662 , - 1385 , - 492 , - 3439 , - 3314 , - 117 , - 760 , - 1787 , - 3198 , - 1537 , - 260 , - 2823 , - 2314 , - 2189 , - 2448 , - 3091 , - 662 , - 2073 , - 412 , - 2591 , - 1698 , - 1189 , - 1064 , - 1323 , - 1966 , - 2993 , - 948 , - 2743 , - 1466 , - 573 , - 64 , - 3395 , - 198 , - 841 , - 1868 , - 3279 , - 1618 , - 341 , - 2904 , - 2395 , - 2270 , - 2529 , - 3172 , - 743 , - 2154 , - 493 , - 2672 , - 1779 , - 1270 , - 1145 , - 1404 , - 2047 , - 3074 , - 1029 , - 2824 , - 1547 , - 654 , - 145 , - 20 , - 279 , - 922 , - 1949 , - 3360 , - 1699 , - 422 , - 2985 , - 2476 , - 2351 , - 2610 , - 3253 , - 824 , - 2235 , - 574 , - 2753 , - 1860 , - 1351 , - 1226 , - 1485 , - 2128 , - 3155 , - 1110 , - 2905 , - 1628 , - 735 , - 226 , - 101 , - 360 , - 1003 , - 2030 , - 3441 , - 1780 , - 503 , - 3066 , - 2557 , - 2432 , - 2691 , - 3334 , - 905 , - 2316 , - 655 , - 2834 , - 1941 , - 1432 , - 1307 , - 1566 , - 2209 , - 3236 , - 1191 , - 2986 , - 1709 , - 816 , - 307 , - 182 , - 441 , - 1084 , - 2111 , - 66 , - 1861 , - 584 , - 3147 , - 2638 , - 2513 , - 2772 , - 3415 , - 986 , - 2397 , - 736 , - 2915 , - 2022 , - 1513 , - 1388 , - 1647 , - 2290 , - 3317 , - 1272 , - 3067 , - 1790 , - 897 , - 388 , - 263 , - 522 , - 1165 , - 2192 , - 147 , - 1942 , - 665 , - 3228 , - 2719 , - 2594 , - 2853 , - 40 , - 1067 , - 2478 , - 817 , - 2996 , - 2103 , - 1594 , - 1469 , - 1728 , - 2371 , - 3398 , - 1353 , - 3148 , - 1871 , - 978 , - 469 , - 344 , - 603 , - 1246 , - 2273 , - 228 , - 2023 , - 746 , - 3309 , - 2800 , - 2675 , - 2934 , - 121 , - 1148 , - 2559 , - 898 , - 3077 , - 2184 , - 1675 , - 1550 , - 1809 , - 2452 , - 23 , - 1434 , - 3229 , - 1952 , - 1059 , - 550 , - 425 , - 684 , - 1327 , - 2354 , - 309 , - 2104 , - 827 , - 3390 , - 2881 , - 2756 , - 3015 , - 202 , - 1229 , - 2640 , - 979 , - 3158 , - 2265 , - 1756 , - 1631 , - 1890 , - 2533 , - 104 , - 1515 , - 3310 , - 2033 , - 1140 , - 631 , - 506 , - 765 , - 1408 , - 2435 , - 390 , - 2185 , - 908 , - 15 , - 2962 , - 2837 , - 3096 , - 283 , - 1310 , - 2721 , - 1060 , - 3239 , - 2346 , - 1837 , - 1712 , - 1971 , - 2614 , - 185 , - 1596 , - 3391 , - 2114 , - 1221 , - 712 , - 587 , - 846 , - 1489 , - 2516 , - 471 , - 2266 , - 989 , - 96 , - 3043 , - 2918 , - 3177 , - 364 , - 1391 , - 2802 , - 1141 , - 3320 , - 2427 , - 1918 , - 1793 , - 2052 , - 2695 , - 266 , - 1677 , - 16 , - 2195 , - 1302 , - 793 , - 668 , - 927 , - 1570 , - 2597 , - 552 , - 2347 , - 1070 , - 177 , - 3124 , - 2999 , - 3258 , - 445 , - 1472 , - 2883 , - 1222 , - 3401 , - 2508 , - 1999 , - 1874 , - 2133 , - 2776 , - 347 , - 1758 , - 97 , - 2276 , - 1383 , - 874 , - 749 , - 1008 , - 1651 , - 2678 , - 633 , - 2428 , - 1151 , - 258 , - 3205 , - 3080 , - 3339 , - 526 , - 1553 , - 2964 , - 1303 , - 26 , - 2589 , - 2080 , - 1955 , - 2214 , - 2857 , - 428 , - 1839 , - 178 , - 2357 , - 1464 , - 955 , - 830 , - 1089 , - 1732 , - 2759 , - 714 , - 2509 , - 1232 , - 339 , - 3286 , - 3161 , - 3420 , - 607 , - 1634 , - 3045 , - 1384 , - 107 , - 2670 , - 2161 , - 2036 , - 2295 , - 2938 , - 509 , - 1920 , - 259 , - 2438 , - 1545 , - 1036 , - 911 , - 1170 , - 1813 , - 2840 , - 795 , - 2590 , - 1313 , - 420 , - 3367 , - 3242 , - 45 , - 688 , - 1715 , - 3126 , - 1465 , - 188 , - 2751 , - 2242 , - 2117 , - 2376 , - 3019 , - 590 , - 2001 , - 340 , - 2519 , - 1626 , - 1117 , - 992 , - 1251 , - 1894 , - 2921 , - 876 , - 2671 , - 1394 , - 501 , - 3448 , - 3323 , - 126 , - 769 , - 1796 , - 3207 , - 1546 , - 269 , - 2832 , - 2323 , - 2198 , - 2457 , - 3100 , - 671 , - 2082 , - 421 , - 2600 , - 1707 , - 1198 , - 1073 , - 1332 , - 1975 , - 3002 , - 957 , - 2752 , - 1475 , - 582 , - 73 , - 3404 , - 207 , - 850 , - 1877 , - 3288 , - 1627 , - 350 , - 2913 , - 2404 , - 2279 , - 2538 , - 3181 , - 752 , - 2163 , - 502 , - 2681 , - 1788 , - 1279 , - 1154 , - 1413 , - 2056 , - 3083 , - 1038 , - 2833 , - 1556 , - 663 , - 154 , - 29 , - 288 , - 931 , - 1958 , - 3369 , - 1708 , - 431 , - 2994 , - 2485 , - 2360 , - 2619 , - 3262 , - 833 , - 2244 , - 583 , - 2762 , - 1869 , - 1360 , - 1235 , - 1494 , - 2137 , - 3164 , - 1119 , - 2914 , - 1637 , - 744 , - 235 , - 110 , - 369 , - 1012 , - 2039 , - 3450 , - 1789 , - 512 , - 3075 , - 2566 , - 2441 , - 2700 , - 3343 , - 914 , - 2325 , - 664 , - 2843 , - 1950 , - 1441 , - 1316 , - 1575 , - 2218 , - 3245 , - 1200 , - 2995 , - 1718 , - 825 , - 316 , - 191 , - 450 , - 1093 , - 2120 , - 75 , - 1870 , - 593 , - 3156 , - 2647 , - 2522 , - 2781 , - 3424 , - 995 , - 2406 , - 745 , - 2924 , - 2031 , - 1522 , - 1397 , - 1656 , - 2299 , - 3326 , - 1281 , - 3076 , - 1799 , - 906 , - 397 , - 272 , - 531 , - 1174 , - 2201 , - 156 , - 1951 , - 674 , - 3237 , - 2728 , - 2603 , - 2862 , - 49 , - 1076 , - 2487 , - 826 , - 3005 , - 2112 , - 1603 , - 1478 , - 1737 , - 2380 , - 3407 , - 1362 , - 3157 , - 1880 , - 987 , - 478 , - 353 , - 612 , - 1255 , - 2282 , - 237 , - 2032 , - 755 , - 3318 , - 2809 , - 2684 , - 2943 , - 130 , - 1157 , - 2568 , - 907 , - 3086 , - 2193 , - 1684 , - 1559 , - 1818 , - 2461 , - 32 , - 1443 , - 3238 , - 1961 , - 1068 , - 559 , - 434 , - 693 , - 1336 , - 2363 , - 318 , - 2113 , - 836 , - 3399 , - 2890 , - 2765 , - 3024 , - 211 , - 1238 , - 2649 , - 988 , - 3167 , - 2274 , - 1765 , - 1640 , - 1899 , - 2542 , - 113 , - 1524 , - 3319 , - 2042 , - 1149 , - 640 , - 515 , - 774 , - 1417 , - 2444 , - 399 , - 2194 , - 917 , - 24 , - 2971 , - 2846 , - 3105 , - 292 , - 1319 , - 2730 , - 1069 , - 3248 , - 2355 , - 1846 , - 1721 , - 1980 , - 2623 , - 194 , - 1605 , - 3400 , - 2123 , - 1230 , - 721 , - 596 , - 855 , - 1498 , - 2525 , - 480 , - 2275 , - 998 , - 105 , - 3052 , - 2927 , - 3186 , - 373 , - 1400 , - 2811 , - 1150 , - 3329 , - 2436 , - 1927 , - 1802 , - 2061 , - 2704 , - 275 , - 1686 , - 25 , - 2204 , - 1311 , - 802 , - 677 , - 936 , - 1579 , - 2606 , - 561 , - 2356 , - 1079 , - 186 , - 3133 , - 3008 , - 3267 , - 454 , - 1481 , - 2892 , - 1231 , - 3410 , - 2517 , - 2008 , - 1883 , - 2142 , - 2785 , - 356 , - 1767 , - 106 , - 2285 , - 1392 , - 883 , - 758 , - 1017 , - 1660 , - 2687 , - 642 , - 2437 , - 1160 , - 267 , - 3214 , - 3089 , - 3348 , - 535 , - 1562 , - 2973 , - 1312 , - 35 , - 2598 , - 2089 , - 1964 , - 2223 , - 2866 , - 437 , - 1848 , - 187 , - 2366 , - 1473 , - 964 , - 839 , - 1098 , - 1741 , - 2768 , - 723 , - 2518 , - 1241 , - 348 , - 3295 , - 3170 , - 3429 , - 616 , - 1643 , - 3054 , - 1393 , - 116 , - 2679 , - 2170 , - 2045 , - 2304 , - 2947 , - 518 , - 1929 , - 268 , - 2447 , - 1554 , - 1045 , - 920 , - 1179 , - 1822 , - 2849 , - 804 , - 2599 , - 1322 , - 429 , - 3376 , - 3251 , - 54 , - 697 , - 1724 , - 3135 , - 1474 , - 197 , - 2760 , - 2251 , - 2126 , - 2385 , - 3028 , - 599 , - 2010 , - 349 , - 2528 , - 1635 , - 1126 , - 1001 , - 1260 , - 1903 , - 2930 , - 885 , - 2680 , - 1403 , - 510 , - 1 , - 3332 , - 135 , - 778 , - 1805 , - 3216 , - 1555 , - 278 , - 2841 , - 2332 , - 2207 , - 2466 , - 3109 , - 680 , - 2091 , - 430 , - 2609 , - 1716 , - 1207 , - 1082 , - 1341 , - 1984 , - 3011 , - 966 , - 2761 , - 1484 , - 591 , - 82 , - 3413 , - 216 , - 859 , - 1886 , - 3297 , - 1636 , - 359 , - 2922 , - 2413 , - 2288 , - 2547 , - 3190 , - 761 , - 2172 , - 511 , - 2690 , - 1797 , - 1288 , - 1163 , - 1422 , - 2065 , - 3092 , - 1047 , - 2842 , - 1565 , - 672 , - 163 , - 38 , - 297 , - 940 , - 1967 , - 3378 , - 1717 , - 440 , - 3003 , - 2494 , - 2369 , - 2628 , - 3271 , - 842 , - 2253 , - 592 , - 2771 , - 1878 , - 1369 , - 1244 , - 1503 , - 2146 , - 3173 , - 1128 , - 2923 , - 1646 , - 753 , - 244 , - 119 , - 378 , - 1021 , - 2048 , - 3 , - 1798 , - 521 , - 3084 , - 2575 , - 2450 , - 2709 , - 3352 , - 923 , - 2334 , - 673 , - 2852 , - 1959 , - 1450 , - 1325 , - 1584 , - 2227 , - 3254 , - 1209 , - 3004 , - 1727 , - 834 , - 325 , - 200 , - 459 , - 1102 , - 2129 , - 84 , - 1879 , - 602 , - 3165 , - 2656 , - 2531 , - 2790 , - 3433 , - 1004 , - 2415 , - 754 , - 2933 , - 2040 , - 1531 , - 1406 , - 1665 , - 2308 , - 3335 , - 1290 , - 3085 , - 1808 , - 915 , - 406 , - 281 , - 540 , - 1183 , - 2210 , - 165 , - 1960 , - 683 , - 3246 , - 2737 , - 2612 , - 2871 , - 58 , - 1085 , - 2496 , - 835 , - 3014 , - 2121 , - 1612 , - 1487 , - 1746 , - 2389 , - 3416 , - 1371 , - 3166 , - 1889 , - 996 , - 487 , - 362 , - 621 , - 1264 , - 2291 , - 246 , - 2041 , - 764 , - 3327 , - 2818 , - 2693 , - 2952 , - 139 , - 1166 , - 2577 , - 916 , - 3095 , - 2202 , - 1693 , - 1568 , - 1827 , - 2470 , - 41 , - 1452 , - 3247 , - 1970 , - 1077 , - 568 , - 443 , - 702 , - 1345 , - 2372 , - 327 , - 2122 , - 845 , - 3408 , - 2899 , - 2774 , - 3033 , - 220 , - 1247 , - 2658 , - 997 , - 3176 , - 2283 , - 1774 , - 1649 , - 1908 , - 2551 , - 122 , - 1533 , - 3328 , - 2051 , - 1158 , - 649 , - 524 , - 783 , - 1426 , - 2453 , - 408 , - 2203 , - 926 , - 33 , - 2980 , - 2855 , - 3114 , - 301 , - 1328 , - 2739 , - 1078 , - 3257 , - 2364 , - 1855 , - 1730 , - 1989 , - 2632 , - 203 , - 1614 , - 3409 , - 2132 , - 1239 , - 730 , - 605 , - 864 , - 1507 , - 2534 , - 489 , - 2284 , - 1007 , - 114 , - 3061 , - 2936 , - 3195 , - 382 , - 1409 , - 2820 , - 1159 , - 3338 , - 2445 , - 1936 , - 1811 , - 2070 , - 2713 , - 284 , - 1695 , - 34 , - 2213 , - 1320 , - 811 , - 686 , - 945 , - 1588 , - 2615 , - 570 , - 2365 , - 1088 , - 195 , - 3142 , - 3017 , - 3276 , - 463 , - 1490 , - 2901 , - 1240 , - 3419 , - 2526 , - 2017 , - 1892 , - 2151 , - 2794 , - 365 , - 1776 , - 115 , - 2294 , - 1401 , - 892 , - 767 , - 1026 , - 1669 , - 2696 , - 651 , - 2446 , - 1169 , - 276 , - 3223 , - 3098 , - 3357 , - 544 , - 1571 , - 2982 , - 1321 , - 44 , - 2607 , - 2098 , - 1973 , - 2232 , - 2875 , - 446 , - 1857 , - 196 , - 2375 , - 1482 , - 973 , - 848 , - 1107 , - 1750 , - 2777 , - 732 , - 2527 , - 1250 , - 357 , - 3304 , - 3179 , - 3438 , - 625 , - 1652 , - 3063 , - 1402 , - 125 , - 2688 , - 2179 , - 2054 , - 2313 , - 2956 , - 527 , - 1938 , - 277 , - 2456 , - 1563 , - 1054 , - 929 , - 1188 , - 1831 , - 2858 , - 813 , - 2608 , - 1331 , - 438 , - 3385 , - 3260 , - 63 , - 706 , - 1733 , - 3144 , - 1483 , - 206 , - 2769 , - 2260 , - 2135 , - 2394 , - 3037 , - 608 , - 2019 , - 358 , - 2537 , - 1644 , - 1135 , - 1010 , - 1269 , - 1912 , - 2939 , - 894 , - 2689 , - 1412 , - 519 , - 10 , - 3341 , - 144 , - 787 , - 1814 , - 3225 , - 1564 , - 287 , - 2850 , - 2341 , - 2216 , - 2475 , - 3118 , - 689 , - 2100 , - 439 , - 2618 , - 1725 , - 1216 , - 1091 , - 1350 , - 1993 , - 3020 , - 975 , - 2770 , - 1493 , - 600 , - 91 , - 3422 , - 225 , - 868 , - 1895 , - 3306 , - 1645 , - 368 , - 2931 , - 2422 , - 2297 , - 2556 , - 3199 , - 770 , - 2181 , - 520 , - 2699 , - 1806 , - 1297 , - 1172 , - 1431 , - 2074 , - 3101 , - 1056 , - 2851 , - 1574 , - 681 , - 172 , - 47 , - 306 , - 949 , - 1976 , - 3387 , - 1726 , - 449 , - 3012 , - 2503 , - 2378 , - 2637 , - 3280 , - 851 , - 2262 , - 601 , - 2780 , - 1887 , - 1378 , - 1253 , - 1512 , - 2155 , - 3182 , - 1137 , - 2932 , - 1655 , - 762 , - 253 , - 128 , - 387 , - 1030 , - 2057 , - 12 , - 1807 , - 530 , - 3093 , - 2584 , - 2459 , - 2718 , - 3361 , - 932 , - 2343 , - 682 , - 2861 , - 1968 , - 1459 , - 1334 , - 1593 , - 2236 , - 3263 , - 1218 , - 3013 , - 1736 , - 843 , - 334 , - 209 , - 468 , - 1111 , - 2138 , - 93 , - 1888 , - 611 , - 3174 , - 2665 , - 2540 , - 2799 , - 3442 , - 1013 , - 2424 , - 763 , - 2942 , - 2049 , - 1540 , - 1415 , - 1674 , - 2317 , - 3344 , - 1299 , - 3094 , - 1817 , - 924 , - 415 , - 290 , - 549 , - 1192 , - 2219 , - 174 , - 1969 , - 692 , - 3255 , - 2746 , - 2621 , - 2880 , - 67 , - 1094 , - 2505 , - 844 , - 3023 , - 2130 , - 1621 , - 1496 , - 1755 , - 2398 , - 3425 , - 1380 , - 3175 , - 1898 , - 1005 , - 496 , - 371 , - 630 , - 1273 , - 2300 , - 255 , - 2050 , - 773 , - 3336 , - 2827 , - 2702 , - 2961 , - 148 , - 1175 , - 2586 , - 925 , - 3104 , - 2211 , - 1702 , - 1577 , - 1836 , - 2479 , - 50 , - 1461 , - 3256 , - 1979 , - 1086 , - 577 , - 452 , - 711 , - 1354 , - 2381 , - 336 , - 2131 , - 854 , - 3417 , - 2908 , - 2783 , - 3042 , - 229 , - 1256 , - 2667 , - 1006 , - 3185 , - 2292 , - 1783 , - 1658 , - 1917 , - 2560 , - 131 , - 1542 , - 3337 , - 2060 , - 1167 , - 658 , - 533 , - 792 , - 1435 , - 2462 , - 417 , - 2212 , - 935 , - 42 , - 2989 , - 2864 , - 3123 , - 310 , - 1337 , - 2748 , - 1087 , - 3266 , - 2373 , - 1864 , - 1739 , - 1998 , - 2641 , - 212 , - 1623 , - 3418 , - 2141 , - 1248 , - 739 , - 614 , - 873 , - 1516 , - 2543 , - 498 , - 2293 , - 1016 , - 123 , - 3070 , - 2945 , - 3204 , - 391 , - 1418 , - 2829 , - 1168 , - 3347 , - 2454 , - 1945 , - 1820 , - 2079 , - 2722 , - 293 , - 1704 , - 43 , - 2222 , - 1329 , - 820 , - 695 , - 954 , - 1597 , - 2624 , - 579 , - 2374 , - 1097 , - 204 , - 3151 , - 3026 , - 3285 , - 472 , - 1499 , - 2910 , - 1249 , - 3428 , - 2535 , - 2026 , - 1901 , - 2160 , - 2803 , - 374 , - 1785 , - 124 , - 2303 , - 1410 , - 901 , - 776 , - 1035 , - 1678 , - 2705 , - 660 , - 2455 , - 1178 , - 285 , - 3232 , - 3107 , - 3366 , - 553 , - 1580 , - 2991 , - 1330 , - 53 , - 2616 , - 2107 , - 1982 , - 2241 , - 2884 , - 455 , - 1866 , - 205 , - 2384 , - 1491 , - 982 , - 857 , - 1116 , - 1759 , - 2786 , - 741 , - 2536 , - 1259 , - 366 , - 3313 , - 3188 , - 3447 , - 634 , - 1661 , - 3072 , - 1411 , - 134 , - 2697 , - 2188 , - 2063 , - 2322 , - 2965 , - 536 , - 1947 , - 286 , - 2465 , - 1572 , - 1063 , - 938 , - 1197 , - 1840 , - 2867 , - 822 , - 2617 , - 1340 , - 447 , - 3394 , - 3269 , - 72 , - 715 , - 1742 , - 3153 , - 1492 , - 215 , - 2778 , - 2269 , - 2144 , - 2403 , - 3046 , - 617 , - 2028 , - 367 , - 2546 , - 1653 , - 1144 , - 1019 , - 1278 , - 1921 , - 2948 , - 903 , - 2698 , - 1421 , - 528 , - 19 , - 3350 , - 153 , - 796 , - 1823 , - 3234 , - 1573 , - 296 , - 2859 , - 2350 , - 2225 , - 2484 , - 3127 , - 698 , - 2109 , - 448 , - 2627 , - 1734 , - 1225 , - 1100 , - 1359 , - 2002 , - 3029 , - 984 , - 2779 , - 1502 , - 609 , - 100 , - 3431 , - 234 , - 877 , - 1904 , - 3315 , - 1654 , - 377 , - 2940 , - 2431 , - 2306 , - 2565 , - 3208 , - 779 , - 2190 , - 529 , - 2708 , - 1815 , - 1306 , - 1181 , - 1440 , - 2083 , - 3110 , - 1065 , - 2860 , - 1583 , - 690 , - 181 , - 56 , - 315 , - 958 , - 1985 , - 3396 , - 1735 , - 458 , - 3021 , - 2512 , - 2387 , - 2646 , - 3289 , - 860 , - 2271 , - 610 , - 2789 , - 1896 , - 1387 , - 1262 , - 1521 , - 2164 , - 3191 , - 1146 , - 2941 , - 1664 , - 771 , - 262 , - 137 , - 396 , - 1039 , - 2066 , - 21 , - 1816 , - 539 , - 3102 , - 2593 , - 2468 , - 2727 , - 3370 , - 941 , - 2352 , - 691 , - 2870 , - 1977 , - 1468 , - 1343 , - 1602 , - 2245 , - 3272 , - 1227 , - 3022 , - 1745 , - 852 , - 343 , - 218 , - 477 , - 1120 , - 2147 , - 102 , - 1897 , - 620 , - 3183 , - 2674 , - 2549 , - 2808 , - 3451 , - 1022 , - 2433 , - 772 , - 2951 , - 2058 , - 1549 , - 1424 , - 1683 , - 2326 , - 3353 , - 1308 , - 3103 , - 1826 , - 933 , - 424 , - 299 , - 558 , - 1201 , - 2228 , - 183 , - 1978 , - 701 , - 3264 , - 2755 , - 2630 , - 2889 , - 76 , - 1103 , - 2514 , - 853 , - 3032 , - 2139 , - 1630 , - 1505 , - 1764 , - 2407 , - 3434 , - 1389 , - 3184 , - 1907 , - 1014 , - 505 , - 380 , - 639 , - 1282 , - 2309 , - 264 , - 2059 , - 782 , - 3345 , - 2836 , - 2711 , - 2970 , - 157 , - 1184 , - 2595 , - 934 , - 3113 , - 2220 , - 1711 , - 1586 , - 1845 , - 2488 , - 59 , - 1470 , - 3265 , - 1988 , - 1095 , - 586 , - 461 , - 720 , - 1363 , - 2390 , - 345 , - 2140 , - 863 , - 3426 , - 2917 , - 2792 , - 3051 , - 238 , - 1265 , - 2676 , - 1015 , - 3194 , - 2301 , - 1792 , - 1667 , - 1926 , - 2569 , - 140 , - 1551 , - 3346 , - 2069 , - 1176 , - 667 , - 542 , - 801 , - 1444 , - 2471 , - 426 , - 2221 , - 944 , - 51 , - 2998 , - 2873 , - 3132 , - 319 , - 1346 , - 2757 , - 1096 , - 3275 , - 2382 , - 1873 , - 1748 , - 2007 , - 2650 , - 221 , - 1632 , - 3427 , - 2150 , - 1257 , - 748 , - 623 , - 882 , - 1525 , - 2552 , - 507 , - 2302 , - 1025 , - 132 , - 3079 , - 2954 , - 3213 , - 400 , - 1427 , - 2838 , - 1177 , - 3356 , - 2463 , - 1954 , - 1829 , - 2088 , - 2731 , - 302 , - 1713 , - 52 , - 2231 , - 1338 , - 829 , - 704 , - 963 , - 1606 , - 2633 , - 588 , - 2383 , - 1106 , - 213 , - 3160 , - 3035 , - 3294 , - 481 , - 1508 , - 2919 , - 1258 , - 3437 , - 2544 , - 2035 , - 1910 , - 2169 , - 2812 , - 383 , - 1794 , - 133 , - 2312 , - 1419 , - 910 , - 785 , - 1044 , - 1687 , - 2714 , - 669 , - 2464 , - 1187 , - 294 , - 3241 , - 3116 , - 3375 , - 562 , - 1589 , - 3000 , - 1339 , - 62 , - 2625 , - 2116 , - 1991 , - 2250 , - 2893 , - 464 , - 1875 , - 214 , - 2393 , - 1500 , - 991 , - 866 , - 1125 , - 1768 , - 2795 , - 750 , - 2545 , - 1268 , - 375 , - 3322 , - 3197 , - 0 , - 477 , - 1394 , - 2751 , - 1028 , - 3265 , - 2422 , - 2019 , - 2056 , - 2533 , - 3450 , - 1287 , - 3084 , - 1801 , - 958 , - 555 , - 592 , - 1069 , - 1986 , - 3343 , - 1620 , - 337 , - 3014 , - 2611 , - 2648 , - 3125 , - 522 , - 1879 , - 156 , - 2393 , - 1550 , - 1147 , - 1184 , - 1661 , - 2578 , - 415 , - 2212 , - 929 , - 86 , - 3203 , - 3240 , - 197 , - 1114 , - 2471 , - 748 , - 2985 , - 2142 , - 1739 , - 1776 , - 2253 , - 3170 , - 1007 , - 2804 , - 1521 , - 678 , - 275 , - 312 , - 789 , - 1706 , - 3063 , - 1340 , - 57 , - 2734 , - 2331 , - 2368 , - 2845 , - 242 , - 1599 , - 3396 , - 2113 , - 1270 , - 867 , - 904 , - 1381 , - 2298 , - 135 , - 1932 , - 649 , - 3326 , - 2923 , - 2960 , - 3437 , - 834 , - 2191 , - 468 , - 2705 , - 1862 , - 1459 , - 1496 , - 1973 , - 2890 , - 727 , - 2524 , - 1241 , - 398 , - 3515 , - 32 , - 509 , - 1426 , - 2783 , - 1060 , - 3297 , - 2454 , - 2051 , - 2088 , - 2565 , - 3482 , - 1319 , - 3116 , - 1833 , - 990 , - 587 , - 624 , - 1101 , - 2018 , - 3375 , - 1652 , - 369 , - 3046 , - 2643 , - 2680 , - 3157 , - 554 , - 1911 , - 188 , - 2425 , - 1582 , - 1179 , - 1216 , - 1693 , - 2610 , - 447 , - 2244 , - 961 , - 118 , - 3235 , - 3272 , - 229 , - 1146 , - 2503 , - 780 , - 3017 , - 2174 , - 1771 , - 1808 , - 2285 , - 3202 , - 1039 , - 2836 , - 1553 , - 710 , - 307 , - 344 , - 821 , - 1738 , - 3095 , - 1372 , - 89 , - 2766 , - 2363 , - 2400 , - 2877 , - 274 , - 1631 , - 3428 , - 2145 , - 1302 , - 899 , - 936 , - 1413 , - 2330 , - 167 , - 1964 , - 681 , - 3358 , - 2955 , - 2992 , - 3469 , - 866 , - 2223 , - 500 , - 2737 , - 1894 , - 1491 , - 1528 , - 2005 , - 2922 , - 759 , - 2556 , - 1273 , - 430 , - 27 , - 64 , - 541 , - 1458 , - 2815 , - 1092 , - 3329 , - 2486 , - 2083 , - 2120 , - 2597 , - 3514 , - 1351 , - 3148 , - 1865 , - 1022 , - 619 , - 656 , - 1133 , - 2050 , - 3407 , - 1684 , - 401 , - 3078 , - 2675 , - 2712 , - 3189 , - 586 , - 1943 , - 220 , - 2457 , - 1614 , - 1211 , - 1248 , - 1725 , - 2642 , - 479 , - 2276 , - 993 , - 150 , - 3267 , - 3304 , - 261 , - 1178 , - 2535 , - 812 , - 3049 , - 2206 , - 1803 , - 1840 , - 2317 , - 3234 , - 1071 , - 2868 , - 1585 , - 742 , - 339 , - 376 , - 853 , - 1770 , - 3127 , - 1404 , - 121 , - 2798 , - 2395 , - 2432 , - 2909 , - 306 , - 1663 , - 3460 , - 2177 , - 1334 , - 931 , - 968 , - 1445 , - 2362 , - 199 , - 1996 , - 713 , - 3390 , - 2987 , - 3024 , - 3501 , - 898 , - 2255 , - 532 , - 2769 , - 1926 , - 1523 , - 1560 , - 2037 , - 2954 , - 791 , - 2588 , - 1305 , - 462 , - 59 , - 96 , - 573 , - 1490 , - 2847 , - 1124 , - 3361 , - 2518 , - 2115 , - 2152 , - 2629 , - 26 , - 1383 , - 3180 , - 1897 , - 1054 , - 651 , - 688 , - 1165 , - 2082 , - 3439 , - 1716 , - 433 , - 3110 , - 2707 , - 2744 , - 3221 , - 618 , - 1975 , - 252 , - 2489 , - 1646 , - 1243 , - 1280 , - 1757 , - 2674 , - 511 , - 2308 , - 1025 , - 182 , - 3299 , - 3336 , - 293 , - 1210 , - 2567 , - 844 , - 3081 , - 2238 , - 1835 , - 1872 , - 2349 , - 3266 , - 1103 , - 2900 , - 1617 , - 774 , - 371 , - 408 , - 885 , - 1802 , - 3159 , - 1436 , - 153 , - 2830 , - 2427 , - 2464 , - 2941 , - 338 , - 1695 , - 3492 , - 2209 , - 1366 , - 963 , - 1000 , - 1477 , - 2394 , - 231 , - 2028 , - 745 , - 3422 , - 3019 , - 3056 , - 13 , - 930 , - 2287 , - 564 , - 2801 , - 1958 , - 1555 , - 1592 , - 2069 , - 2986 , - 823 , - 2620 , - 1337 , - 494 , - 91 , - 128 , - 605 , - 1522 , - 2879 , - 1156 , - 3393 , - 2550 , - 2147 , - 2184 , - 2661 , - 58 , - 1415 , - 3212 , - 1929 , - 1086 , - 683 , - 720 , - 1197 , - 2114 , - 3471 , - 1748 , - 465 , - 3142 , - 2739 , - 2776 , - 3253 , - 650 , - 2007 , - 284 , - 2521 , - 1678 , - 1275 , - 1312 , - 1789 , - 2706 , - 543 , - 2340 , - 1057 , - 214 , - 3331 , - 3368 , - 325 , - 1242 , - 2599 , - 876 , - 3113 , - 2270 , - 1867 , - 1904 , - 2381 , - 3298 , - 1135 , - 2932 , - 1649 , - 806 , - 403 , - 440 , - 917 , - 1834 , - 3191 , - 1468 , - 185 , - 2862 , - 2459 , - 2496 , - 2973 , - 370 , - 1727 , - 4 , - 2241 , - 1398 , - 995 , - 1032 , - 1509 , - 2426 , - 263 , - 2060 , - 777 , - 3454 , - 3051 , - 3088 , - 45 , - 962 , - 2319 , - 596 , - 2833 , - 1990 , - 1587 , - 1624 , - 2101 , - 3018 , - 855 , - 2652 , - 1369 , - 526 , - 123 , - 160 , - 637 , - 1554 , - 2911 , - 1188 , - 3425 , - 2582 , - 2179 , - 2216 , - 2693 , - 90 , - 1447 , - 3244 , - 1961 , - 1118 , - 715 , - 752 , - 1229 , - 2146 , - 3503 , - 1780 , - 497 , - 3174 , - 2771 , - 2808 , - 3285 , - 682 , - 2039 , - 316 , - 2553 , - 1710 , - 1307 , - 1344 , - 1821 , - 2738 , - 575 , - 2372 , - 1089 , - 246 , - 3363 , - 3400 , - 357 , - 1274 , - 2631 , - 908 , - 3145 , - 2302 , - 1899 , - 1936 , - 2413 , - 3330 , - 1167 , - 2964 , - 1681 , - 838 , - 435 , - 472 , - 949 , - 1866 , - 3223 , - 1500 , - 217 , - 2894 , - 2491 , - 2528 , - 3005 , - 402 , - 1759 , - 36 , - 2273 , - 1430 , - 1027 , - 1064 , - 1541 , - 2458 , - 295 , - 2092 , - 809 , - 3486 , - 3083 , - 3120 , - 77 , - 994 , - 2351 , - 628 , - 2865 , - 2022 , - 1619 , - 1656 , - 2133 , - 3050 , - 887 , - 2684 , - 1401 , - 558 , - 155 , - 192 , - 669 , - 1586 , - 2943 , - 1220 , - 3457 , - 2614 , - 2211 , - 2248 , - 2725 , - 122 , - 1479 , - 3276 , - 1993 , - 1150 , - 747 , - 784 , - 1261 , - 2178 , - 15 , - 1812 , - 529 , - 3206 , - 2803 , - 2840 , - 3317 , - 714 , - 2071 , - 348 , - 2585 , - 1742 , - 1339 , - 1376 , - 1853 , - 2770 , - 607 , - 2404 , - 1121 , - 278 , - 3395 , - 3432 , - 389 , - 1306 , - 2663 , - 940 , - 3177 , - 2334 , - 1931 , - 1968 , - 2445 , - 3362 , - 1199 , - 2996 , - 1713 , - 870 , - 467 , - 504 , - 981 , - 1898 , - 3255 , - 1532 , - 249 , - 2926 , - 2523 , - 2560 , - 3037 , - 434 , - 1791 , - 68 , - 2305 , - 1462 , - 1059 , - 1096 , - 1573 , - 2490 , - 327 , - 2124 , - 841 , - 3518 , - 3115 , - 3152 , - 109 , - 1026 , - 2383 , - 660 , - 2897 , - 2054 , - 1651 , - 1688 , - 2165 , - 3082 , - 919 , - 2716 , - 1433 , - 590 , - 187 , - 224 , - 701 , - 1618 , - 2975 , - 1252 , - 3489 , - 2646 , - 2243 , - 2280 , - 2757 , - 154 , - 1511 , - 3308 , - 2025 , - 1182 , - 779 , - 816 , - 1293 , - 2210 , - 47 , - 1844 , - 561 , - 3238 , - 2835 , - 2872 , - 3349 , - 746 , - 2103 , - 380 , - 2617 , - 1774 , - 1371 , - 1408 , - 1885 , - 2802 , - 639 , - 2436 , - 1153 , - 310 , - 3427 , - 3464 , - 421 , - 1338 , - 2695 , - 972 , - 3209 , - 2366 , - 1963 , - 2000 , - 2477 , - 3394 , - 1231 , - 3028 , - 1745 , - 902 , - 499 , - 536 , - 1013 , - 1930 , - 3287 , - 1564 , - 281 , - 2958 , - 2555 , - 2592 , - 3069 , - 466 , - 1823 , - 100 , - 2337 , - 1494 , - 1091 , - 1128 , - 1605 , - 2522 , - 359 , - 2156 , - 873 , - 30 , - 3147 , - 3184 , - 141 , - 1058 , - 2415 , - 692 , - 2929 , - 2086 , - 1683 , - 1720 , - 2197 , - 3114 , - 951 , - 2748 , - 1465 , - 622 , - 219 , - 256 , - 733 , - 1650 , - 3007 , - 1284 , - 1 , - 2678 , - 2275 , - 2312 , - 2789 , - 186 , - 1543 , - 3340 , - 2057 , - 1214 , - 811 , - 848 , - 1325 , - 2242 , - 79 , - 1876 , - 593 , - 3270 , - 2867 , - 2904 , - 3381 , - 778 , - 2135 , - 412 , - 2649 , - 1806 , - 1403 , - 1440 , - 1917 , - 2834 , - 671 , - 2468 , - 1185 , - 342 , - 3459 , - 3496 , - 453 , - 1370 , - 2727 , - 1004 , - 3241 , - 2398 , - 1995 , - 2032 , - 2509 , - 3426 , - 1263 , - 3060 , - 1777 , - 934 , - 531 , - 568 , - 1045 , - 1962 , - 3319 , - 1596 , - 313 , - 2990 , - 2587 , - 2624 , - 3101 , - 498 , - 1855 , - 132 , - 2369 , - 1526 , - 1123 , - 1160 , - 1637 , - 2554 , - 391 , - 2188 , - 905 , - 62 , - 3179 , - 3216 , - 173 , - 1090 , - 2447 , - 724 , - 2961 , - 2118 , - 1715 , - 1752 , - 2229 , - 3146 , - 983 , - 2780 , - 1497 , - 654 , - 251 , - 288 , - 765 , - 1682 , - 3039 , - 1316 , - 33 , - 2710 , - 2307 , - 2344 , - 2821 , - 218 , - 1575 , - 3372 , - 2089 , - 1246 , - 843 , - 880 , - 1357 , - 2274 , - 111 , - 1908 , - 625 , - 3302 , - 2899 , - 2936 , - 3413 , - 810 , - 2167 , - 444 , - 2681 , - 1838 , - 1435 , - 1472 , - 1949 , - 2866 , - 703 , - 2500 , - 1217 , - 374 , - 3491 , - 8 , - 485 , - 1402 , - 2759 , - 1036 , - 3273 , - 2430 , - 2027 , - 2064 , - 2541 , - 3458 , - 1295 , - 3092 , - 1809 , - 966 , - 563 , - 600 , - 1077 , - 1994 , - 3351 , - 1628 , - 345 , - 3022 , - 2619 , - 2656 , - 3133 , - 530 , - 1887 , - 164 , - 2401 , - 1558 , - 1155 , - 1192 , - 1669 , - 2586 , - 423 , - 2220 , - 937 , - 94 , - 3211 , - 3248 , - 205 , - 1122 , - 2479 , - 756 , - 2993 , - 2150 , - 1747 , - 1784 , - 2261 , - 3178 , - 1015 , - 2812 , - 1529 , - 686 , - 283 , - 320 , - 797 , - 1714 , - 3071 , - 1348 , - 65 , - 2742 , - 2339 , - 2376 , - 2853 , - 250 , - 1607 , - 3404 , - 2121 , - 1278 , - 875 , - 912 , - 1389 , - 2306 , - 143 , - 1940 , - 657 , - 3334 , - 2931 , - 2968 , - 3445 , - 842 , - 2199 , - 476 , - 2713 , - 1870 , - 1467 , - 1504 , - 1981 , - 2898 , - 735 , - 2532 , - 1249 , - 406 , - 3 , - 40 , - 517 , - 1434 , - 2791 , - 1068 , - 3305 , - 2462 , - 2059 , - 2096 , - 2573 , - 3490 , - 1327 , - 3124 , - 1841 , - 998 , - 595 , - 632 , - 1109 , - 2026 , - 3383 , - 1660 , - 377 , - 3054 , - 2651 , - 2688 , - 3165 , - 562 , - 1919 , - 196 , - 2433 , - 1590 , - 1187 , - 1224 , - 1701 , - 2618 , - 455 , - 2252 , - 969 , - 126 , - 3243 , - 3280 , - 237 , - 1154 , - 2511 , - 788 , - 3025 , - 2182 , - 1779 , - 1816 , - 2293 , - 3210 , - 1047 , - 2844 , - 1561 , - 718 , - 315 , - 352 , - 829 , - 1746 , - 3103 , - 1380 , - 97 , - 2774 , - 2371 , - 2408 , - 2885 , - 282 , - 1639 , - 3436 , - 2153 , - 1310 , - 907 , - 944 , - 1421 , - 2338 , - 175 , - 1972 , - 689 , - 3366 , - 2963 , - 3000 , - 3477 , - 874 , - 2231 , - 508 , - 2745 , - 1902 , - 1499 , - 1536 , - 2013 , - 2930 , - 767 , - 2564 , - 1281 , - 438 , - 35 , - 72 , - 549 , - 1466 , - 2823 , - 1100 , - 3337 , - 2494 , - 2091 , - 2128 , - 2605 , - 2 , - 1359 , - 3156 , - 1873 , - 1030 , - 627 , - 664 , - 1141 , - 2058 , - 3415 , - 1692 , - 409 , - 3086 , - 2683 , - 2720 , - 3197 , - 594 , - 1951 , - 228 , - 2465 , - 1622 , - 1219 , - 1256 , - 1733 , - 2650 , - 487 , - 2284 , - 1001 , - 158 , - 3275 , - 3312 , - 269 , - 1186 , - 2543 , - 820 , - 3057 , - 2214 , - 1811 , - 1848 , - 2325 , - 3242 , - 1079 , - 2876 , - 1593 , - 750 , - 347 , - 384 , - 861 , - 1778 , - 3135 , - 1412 , - 129 , - 2806 , - 2403 , - 2440 , - 2917 , - 314 , - 1671 , - 3468 , - 2185 , - 1342 , - 939 , - 976 , - 1453 , - 2370 , - 207 , - 2004 , - 721 , - 3398 , - 2995 , - 3032 , - 3509 , - 906 , - 2263 , - 540 , - 2777 , - 1934 , - 1531 , - 1568 , - 2045 , - 2962 , - 799 , - 2596 , - 1313 , - 470 , - 67 , - 104 , - 581 , - 1498 , - 2855 , - 1132 , - 3369 , - 2526 , - 2123 , - 2160 , - 2637 , - 34 , - 1391 , - 3188 , - 1905 , - 1062 , - 659 , - 696 , - 1173 , - 2090 , - 3447 , - 1724 , - 441 , - 3118 , - 2715 , - 2752 , - 3229 , - 626 , - 1983 , - 260 , - 2497 , - 1654 , - 1251 , - 1288 , - 1765 , - 2682 , - 519 , - 2316 , - 1033 , - 190 , - 3307 , - 3344 , - 301 , - 1218 , - 2575 , - 852 , - 3089 , - 2246 , - 1843 , - 1880 , - 2357 , - 3274 , - 1111 , - 2908 , - 1625 , - 782 , - 379 , - 416 , - 893 , - 1810 , - 3167 , - 1444 , - 161 , - 2838 , - 2435 , - 2472 , - 2949 , - 346 , - 1703 , - 3500 , - 2217 , - 1374 , - 971 , - 1008 , - 1485 , - 2402 , - 239 , - 2036 , - 753 , - 3430 , - 3027 , - 3064 , - 21 , - 938 , - 2295 , - 572 , - 2809 , - 1966 , - 1563 , - 1600 , - 2077 , - 2994 , - 831 , - 2628 , - 1345 , - 502 , - 99 , - 136 , - 613 , - 1530 , - 2887 , - 1164 , - 3401 , - 2558 , - 2155 , - 2192 , - 2669 , - 66 , - 1423 , - 3220 , - 1937 , - 1094 , - 691 , - 728 , - 1205 , - 2122 , - 3479 , - 1756 , - 473 , - 3150 , - 2747 , - 2784 , - 3261 , - 658 , - 2015 , - 292 , - 2529 , - 1686 , - 1283 , - 1320 , - 1797 , - 2714 , - 551 , - 2348 , - 1065 , - 222 , - 3339 , - 3376 , - 333 , - 1250 , - 2607 , - 884 , - 3121 , - 2278 , - 1875 , - 1912 , - 2389 , - 3306 , - 1143 , - 2940 , - 1657 , - 814 , - 411 , - 448 , - 925 , - 1842 , - 3199 , - 1476 , - 193 , - 2870 , - 2467 , - 2504 , - 2981 , - 378 , - 1735 , - 12 , - 2249 , - 1406 , - 1003 , - 1040 , - 1517 , - 2434 , - 271 , - 2068 , - 785 , - 3462 , - 3059 , - 3096 , - 53 , - 970 , - 2327 , - 604 , - 2841 , - 1998 , - 1595 , - 1632 , - 2109 , - 3026 , - 863 , - 2660 , - 1377 , - 534 , - 131 , - 168 , - 645 , - 1562 , - 2919 , - 1196 , - 3433 , - 2590 , - 2187 , - 2224 , - 2701 , - 98 , - 1455 , - 3252 , - 1969 , - 1126 , - 723 , - 760 , - 1237 , - 2154 , - 3511 , - 1788 , - 505 , - 3182 , - 2779 , - 2816 , - 3293 , - 690 , - 2047 , - 324 , - 2561 , - 1718 , - 1315 , - 1352 , - 1829 , - 2746 , - 583 , - 2380 , - 1097 , - 254 , - 3371 , - 3408 , - 365 , - 1282 , - 2639 , - 916 , - 3153 , - 2310 , - 1907 , - 1944 , - 2421 , - 3338 , - 1175 , - 2972 , - 1689 , - 846 , - 443 , - 480 , - 957 , - 1874 , - 3231 , - 1508 , - 225 , - 2902 , - 2499 , - 2536 , - 3013 , - 410 , - 1767 , - 44 , - 2281 , - 1438 , - 1035 , - 1072 , - 1549 , - 2466 , - 303 , - 2100 , - 817 , - 3494 , - 3091 , - 3128 , - 85 , - 1002 , - 2359 , - 636 , - 2873 , - 2030 , - 1627 , - 1664 , - 2141 , - 3058 , - 895 , - 2692 , - 1409 , - 566 , - 163 , - 200 , - 677 , - 1594 , - 2951 , - 1228 , - 3465 , - 2622 , - 2219 , - 2256 , - 2733 , - 130 , - 1487 , - 3284 , - 2001 , - 1158 , - 755 , - 792 , - 1269 , - 2186 , - 23 , - 1820 , - 537 , - 3214 , - 2811 , - 2848 , - 3325 , - 722 , - 2079 , - 356 , - 2593 , - 1750 , - 1347 , - 1384 , - 1861 , - 2778 , - 615 , - 2412 , - 1129 , - 286 , - 3403 , - 3440 , - 397 , - 1314 , - 2671 , - 948 , - 3185 , - 2342 , - 1939 , - 1976 , - 2453 , - 3370 , - 1207 , - 3004 , - 1721 , - 878 , - 475 , - 512 , - 989 , - 1906 , - 3263 , - 1540 , - 257 , - 2934 , - 2531 , - 2568 , - 3045 , - 442 , - 1799 , - 76 , - 2313 , - 1470 , - 1067 , - 1104 , - 1581 , - 2498 , - 335 , - 2132 , - 849 , - 6 , - 3123 , - 3160 , - 117 , - 1034 , - 2391 , - 668 , - 2905 , - 2062 , - 1659 , - 1696 , - 2173 , - 3090 , - 927 , - 2724 , - 1441 , - 598 , - 195 , - 232 , - 709 , - 1626 , - 2983 , - 1260 , - 3497 , - 2654 , - 2251 , - 2288 , - 2765 , - 162 , - 1519 , - 3316 , - 2033 , - 1190 , - 787 , - 824 , - 1301 , - 2218 , - 55 , - 1852 , - 569 , - 3246 , - 2843 , - 2880 , - 3357 , - 754 , - 2111 , - 388 , - 2625 , - 1782 , - 1379 , - 1416 , - 1893 , - 2810 , - 647 , - 2444 , - 1161 , - 318 , - 3435 , - 3472 , - 429 , - 1346 , - 2703 , - 980 , - 3217 , - 2374 , - 1971 , - 2008 , - 2485 , - 3402 , - 1239 , - 3036 , - 1753 , - 910 , - 507 , - 544 , - 1021 , - 1938 , - 3295 , - 1572 , - 289 , - 2966 , - 2563 , - 2600 , - 3077 , - 474 , - 1831 , - 108 , - 2345 , - 1502 , - 1099 , - 1136 , - 1613 , - 2530 , - 367 , - 2164 , - 881 , - 38 , - 3155 , - 3192 , - 149 , - 1066 , - 2423 , - 700 , - 2937 , - 2094 , - 1691 , - 1728 , - 2205 , - 3122 , - 959 , - 2756 , - 1473 , - 630 , - 227 , - 264 , - 741 , - 1658 , - 3015 , - 1292 , - 9 , - 2686 , - 2283 , - 2320 , - 2797 , - 194 , - 1551 , - 3348 , - 2065 , - 1222 , - 819 , - 856 , - 1333 , - 2250 , - 87 , - 1884 , - 601 , - 3278 , - 2875 , - 2912 , - 3389 , - 786 , - 2143 , - 420 , - 2657 , - 1814 , - 1411 , - 1448 , - 1925 , - 2842 , - 679 , - 2476 , - 1193 , - 350 , - 3467 , - 3504 , - 461 , - 1378 , - 2735 , - 1012 , - 3249 , - 2406 , - 2003 , - 2040 , - 2517 , - 3434 , - 1271 , - 3068 , - 1785 , - 942 , - 539 , - 576 , - 1053 , - 1970 , - 3327 , - 1604 , - 321 , - 2998 , - 2595 , - 2632 , - 3109 , - 506 , - 1863 , - 140 , - 2377 , - 1534 , - 1131 , - 1168 , - 1645 , - 2562 , - 399 , - 2196 , - 913 , - 70 , - 3187 , - 3224 , - 181 , - 1098 , - 2455 , - 732 , - 2969 , - 2126 , - 1723 , - 1760 , - 2237 , - 3154 , - 991 , - 2788 , - 1505 , - 662 , - 259 , - 296 , - 773 , - 1690 , - 3047 , - 1324 , - 41 , - 2718 , - 2315 , - 2352 , - 2829 , - 226 , - 1583 , - 3380 , - 2097 , - 1254 , - 851 , - 888 , - 1365 , - 2282 , - 119 , - 1916 , - 633 , - 3310 , - 2907 , - 2944 , - 3421 , - 818 , - 2175 , - 452 , - 2689 , - 1846 , - 1443 , - 1480 , - 1957 , - 2874 , - 711 , - 2508 , - 1225 , - 382 , - 3499 , - 16 , - 493 , - 1410 , - 2767 , - 1044 , - 3281 , - 2438 , - 2035 , - 2072 , - 2549 , - 3466 , - 1303 , - 3100 , - 1817 , - 974 , - 571 , - 608 , - 1085 , - 2002 , - 3359 , - 1636 , - 353 , - 3030 , - 2627 , - 2664 , - 3141 , - 538 , - 1895 , - 172 , - 2409 , - 1566 , - 1163 , - 1200 , - 1677 , - 2594 , - 431 , - 2228 , - 945 , - 102 , - 3219 , - 3256 , - 213 , - 1130 , - 2487 , - 764 , - 3001 , - 2158 , - 1755 , - 1792 , - 2269 , - 3186 , - 1023 , - 2820 , - 1537 , - 694 , - 291 , - 328 , - 805 , - 1722 , - 3079 , - 1356 , - 73 , - 2750 , - 2347 , - 2384 , - 2861 , - 258 , - 1615 , - 3412 , - 2129 , - 1286 , - 883 , - 920 , - 1397 , - 2314 , - 151 , - 1948 , - 665 , - 3342 , - 2939 , - 2976 , - 3453 , - 850 , - 2207 , - 484 , - 2721 , - 1878 , - 1475 , - 1512 , - 1989 , - 2906 , - 743 , - 2540 , - 1257 , - 414 , - 11 , - 48 , - 525 , - 1442 , - 2799 , - 1076 , - 3313 , - 2470 , - 2067 , - 2104 , - 2581 , - 3498 , - 1335 , - 3132 , - 1849 , - 1006 , - 603 , - 640 , - 1117 , - 2034 , - 3391 , - 1668 , - 385 , - 3062 , - 2659 , - 2696 , - 3173 , - 570 , - 1927 , - 204 , - 2441 , - 1598 , - 1195 , - 1232 , - 1709 , - 2626 , - 463 , - 2260 , - 977 , - 134 , - 3251 , - 3288 , - 245 , - 1162 , - 2519 , - 796 , - 3033 , - 2190 , - 1787 , - 1824 , - 2301 , - 3218 , - 1055 , - 2852 , - 1569 , - 726 , - 323 , - 360 , - 837 , - 1754 , - 3111 , - 1388 , - 105 , - 2782 , - 2379 , - 2416 , - 2893 , - 290 , - 1647 , - 3444 , - 2161 , - 1318 , - 915 , - 952 , - 1429 , - 2346 , - 183 , - 1980 , - 697 , - 3374 , - 2971 , - 3008 , - 3485 , - 882 , - 2239 , - 516 , - 2753 , - 1910 , - 1507 , - 1544 , - 2021 , - 2938 , - 775 , - 2572 , - 1289 , - 446 , - 43 , - 80 , - 557 , - 1474 , - 2831 , - 1108 , - 3345 , - 2502 , - 2099 , - 2136 , - 2613 , - 10 , - 1367 , - 3164 , - 1881 , - 1038 , - 635 , - 672 , - 1149 , - 2066 , - 3423 , - 1700 , - 417 , - 3094 , - 2691 , - 2728 , - 3205 , - 602 , - 1959 , - 236 , - 2473 , - 1630 , - 1227 , - 1264 , - 1741 , - 2658 , - 495 , - 2292 , - 1009 , - 166 , - 3283 , - 3320 , - 277 , - 1194 , - 2551 , - 828 , - 3065 , - 2222 , - 1819 , - 1856 , - 2333 , - 3250 , - 1087 , - 2884 , - 1601 , - 758 , - 355 , - 392 , - 869 , - 1786 , - 3143 , - 1420 , - 137 , - 2814 , - 2411 , - 2448 , - 2925 , - 322 , - 1679 , - 3476 , - 2193 , - 1350 , - 947 , - 984 , - 1461 , - 2378 , - 215 , - 2012 , - 729 , - 3406 , - 3003 , - 3040 , - 3517 , - 914 , - 2271 , - 548 , - 2785 , - 1942 , - 1539 , - 1576 , - 2053 , - 2970 , - 807 , - 2604 , - 1321 , - 478 , - 75 , - 112 , - 589 , - 1506 , - 2863 , - 1140 , - 3377 , - 2534 , - 2131 , - 2168 , - 2645 , - 42 , - 1399 , - 3196 , - 1913 , - 1070 , - 667 , - 704 , - 1181 , - 2098 , - 3455 , - 1732 , - 449 , - 3126 , - 2723 , - 2760 , - 3237 , - 634 , - 1991 , - 268 , - 2505 , - 1662 , - 1259 , - 1296 , - 1773 , - 2690 , - 527 , - 2324 , - 1041 , - 198 , - 3315 , - 3352 , - 309 , - 1226 , - 2583 , - 860 , - 3097 , - 2254 , - 1851 , - 1888 , - 2365 , - 3282 , - 1119 , - 2916 , - 1633 , - 790 , - 387 , - 424 , - 901 , - 1818 , - 3175 , - 1452 , - 169 , - 2846 , - 2443 , - 2480 , - 2957 , - 354 , - 1711 , - 3508 , - 2225 , - 1382 , - 979 , - 1016 , - 1493 , - 2410 , - 247 , - 2044 , - 761 , - 3438 , - 3035 , - 3072 , - 29 , - 946 , - 2303 , - 580 , - 2817 , - 1974 , - 1571 , - 1608 , - 2085 , - 3002 , - 839 , - 2636 , - 1353 , - 510 , - 107 , - 144 , - 621 , - 1538 , - 2895 , - 1172 , - 3409 , - 2566 , - 2163 , - 2200 , - 2677 , - 74 , - 1431 , - 3228 , - 1945 , - 1102 , - 699 , - 736 , - 1213 , - 2130 , - 3487 , - 1764 , - 481 , - 3158 , - 2755 , - 2792 , - 3269 , - 666 , - 2023 , - 300 , - 2537 , - 1694 , - 1291 , - 1328 , - 1805 , - 2722 , - 559 , - 2356 , - 1073 , - 230 , - 3347 , - 3384 , - 341 , - 1258 , - 2615 , - 892 , - 3129 , - 2286 , - 1883 , - 1920 , - 2397 , - 3314 , - 1151 , - 2948 , - 1665 , - 822 , - 419 , - 456 , - 933 , - 1850 , - 3207 , - 1484 , - 201 , - 2878 , - 2475 , - 2512 , - 2989 , - 386 , - 1743 , - 20 , - 2257 , - 1414 , - 1011 , - 1048 , - 1525 , - 2442 , - 279 , - 2076 , - 793 , - 3470 , - 3067 , - 3104 , - 61 , - 978 , - 2335 , - 612 , - 2849 , - 2006 , - 1603 , - 1640 , - 2117 , - 3034 , - 871 , - 2668 , - 1385 , - 542 , - 139 , - 176 , - 653 , - 1570 , - 2927 , - 1204 , - 3441 , - 2598 , - 2195 , - 2232 , - 2709 , - 106 , - 1463 , - 3260 , - 1977 , - 1134 , - 731 , - 768 , - 1245 , - 2162 , - 3519 , - 1796 , - 513 , - 3190 , - 2787 , - 2824 , - 3301 , - 698 , - 2055 , - 332 , - 2569 , - 1726 , - 1323 , - 1360 , - 1837 , - 2754 , - 591 , - 2388 , - 1105 , - 262 , - 3379 , - 3416 , - 373 , - 1290 , - 2647 , - 924 , - 3161 , - 2318 , - 1915 , - 1952 , - 2429 , - 3346 , - 1183 , - 2980 , - 1697 , - 854 , - 451 , - 488 , - 965 , - 1882 , - 3239 , - 1516 , - 233 , - 2910 , - 2507 , - 2544 , - 3021 , - 418 , - 1775 , - 52 , - 2289 , - 1446 , - 1043 , - 1080 , - 1557 , - 2474 , - 311 , - 2108 , - 825 , - 3502 , - 3099 , - 3136 , - 93 , - 1010 , - 2367 , - 644 , - 2881 , - 2038 , - 1635 , - 1672 , - 2149 , - 3066 , - 903 , - 2700 , - 1417 , - 574 , - 171 , - 208 , - 685 , - 1602 , - 2959 , - 1236 , - 3473 , - 2630 , - 2227 , - 2264 , - 2741 , - 138 , - 1495 , - 3292 , - 2009 , - 1166 , - 763 , - 800 , - 1277 , - 2194 , - 31 , - 1828 , - 545 , - 3222 , - 2819 , - 2856 , - 3333 , - 730 , - 2087 , - 364 , - 2601 , - 1758 , - 1355 , - 1392 , - 1869 , - 2786 , - 623 , - 2420 , - 1137 , - 294 , - 3411 , - 3448 , - 405 , - 1322 , - 2679 , - 956 , - 3193 , - 2350 , - 1947 , - 1984 , - 2461 , - 3378 , - 1215 , - 3012 , - 1729 , - 886 , - 483 , - 520 , - 997 , - 1914 , - 3271 , - 1548 , - 265 , - 2942 , - 2539 , - 2576 , - 3053 , - 450 , - 1807 , - 84 , - 2321 , - 1478 , - 1075 , - 1112 , - 1589 , - 2506 , - 343 , - 2140 , - 857 , - 14 , - 3131 , - 3168 , - 125 , - 1042 , - 2399 , - 676 , - 2913 , - 2070 , - 1667 , - 1704 , - 2181 , - 3098 , - 935 , - 2732 , - 1449 , - 606 , - 203 , - 240 , - 717 , - 1634 , - 2991 , - 1268 , - 3505 , - 2662 , - 2259 , - 2296 , - 2773 , - 170 , - 1527 , - 3324 , - 2041 , - 1198 , - 795 , - 832 , - 1309 , - 2226 , - 63 , - 1860 , - 577 , - 3254 , - 2851 , - 2888 , - 3365 , - 762 , - 2119 , - 396 , - 2633 , - 1790 , - 1387 , - 1424 , - 1901 , - 2818 , - 655 , - 2452 , - 1169 , - 326 , - 3443 , - 3480 , - 437 , - 1354 , - 2711 , - 988 , - 3225 , - 2382 , - 1979 , - 2016 , - 2493 , - 3410 , - 1247 , - 3044 , - 1761 , - 918 , - 515 , - 552 , - 1029 , - 1946 , - 3303 , - 1580 , - 297 , - 2974 , - 2571 , - 2608 , - 3085 , - 482 , - 1839 , - 116 , - 2353 , - 1510 , - 1107 , - 1144 , - 1621 , - 2538 , - 375 , - 2172 , - 889 , - 46 , - 3163 , - 3200 , - 157 , - 1074 , - 2431 , - 708 , - 2945 , - 2102 , - 1699 , - 1736 , - 2213 , - 3130 , - 967 , - 2764 , - 1481 , - 638 , - 235 , - 272 , - 749 , - 1666 , - 3023 , - 1300 , - 17 , - 2694 , - 2291 , - 2328 , - 2805 , - 202 , - 1559 , - 3356 , - 2073 , - 1230 , - 827 , - 864 , - 1341 , - 2258 , - 95 , - 1892 , - 609 , - 3286 , - 2883 , - 2920 , - 3397 , - 794 , - 2151 , - 428 , - 2665 , - 1822 , - 1419 , - 1456 , - 1933 , - 2850 , - 687 , - 2484 , - 1201 , - 358 , - 3475 , - 3512 , - 469 , - 1386 , - 2743 , - 1020 , - 3257 , - 2414 , - 2011 , - 2048 , - 2525 , - 3442 , - 1279 , - 3076 , - 1793 , - 950 , - 547 , - 584 , - 1061 , - 1978 , - 3335 , - 1612 , - 329 , - 3006 , - 2603 , - 2640 , - 3117 , - 514 , - 1871 , - 148 , - 2385 , - 1542 , - 1139 , - 1176 , - 1653 , - 2570 , - 407 , - 2204 , - 921 , - 78 , - 3195 , - 3232 , - 189 , - 1106 , - 2463 , - 740 , - 2977 , - 2134 , - 1731 , - 1768 , - 2245 , - 3162 , - 999 , - 2796 , - 1513 , - 670 , - 267 , - 304 , - 781 , - 1698 , - 3055 , - 1332 , - 49 , - 2726 , - 2323 , - 2360 , - 2837 , - 234 , - 1591 , - 3388 , - 2105 , - 1262 , - 859 , - 896 , - 1373 , - 2290 , - 127 , - 1924 , - 641 , - 3318 , - 2915 , - 2952 , - 3429 , - 826 , - 2183 , - 460 , - 2697 , - 1854 , - 1451 , - 1488 , - 1965 , - 2882 , - 719 , - 2516 , - 1233 , - 390 , - 3507 , - 24 , - 501 , - 1418 , - 2775 , - 1052 , - 3289 , - 2446 , - 2043 , - 2080 , - 2557 , - 3474 , - 1311 , - 3108 , - 1825 , - 982 , - 579 , - 616 , - 1093 , - 2010 , - 3367 , - 1644 , - 361 , - 3038 , - 2635 , - 2672 , - 3149 , - 546 , - 1903 , - 180 , - 2417 , - 1574 , - 1171 , - 1208 , - 1685 , - 2602 , - 439 , - 2236 , - 953 , - 110 , - 3227 , - 3264 , - 221 , - 1138 , - 2495 , - 772 , - 3009 , - 2166 , - 1763 , - 1800 , - 2277 , - 3194 , - 1031 , - 2828 , - 1545 , - 702 , - 299 , - 336 , - 813 , - 1730 , - 3087 , - 1364 , - 81 , - 2758 , - 2355 , - 2392 , - 2869 , - 266 , - 1623 , - 3420 , - 2137 , - 1294 , - 891 , - 928 , - 1405 , - 2322 , - 159 , - 1956 , - 673 , - 3350 , - 2947 , - 2984 , - 3461 , - 858 , - 2215 , - 492 , - 2729 , - 1886 , - 1483 , - 1520 , - 1997 , - 2914 , - 751 , - 2548 , - 1265 , - 422 , - 19 , - 56 , - 533 , - 1450 , - 2807 , - 1084 , - 3321 , - 2478 , - 2075 , - 2112 , - 2589 , - 3506 , - 1343 , - 3140 , - 1857 , - 1014 , - 611 , - 648 , - 1125 , - 2042 , - 3399 , - 1676 , - 393 , - 3070 , - 2667 , - 2704 , - 3181 , - 578 , - 1935 , - 212 , - 2449 , - 1606 , - 1203 , - 1240 , - 1717 , - 2634 , - 471 , - 2268 , - 985 , - 142 , - 3259 , - 3296 , - 253 , - 1170 , - 2527 , - 804 , - 3041 , - 2198 , - 1795 , - 1832 , - 2309 , - 3226 , - 1063 , - 2860 , - 1577 , - 734 , - 331 , - 368 , - 845 , - 1762 , - 3119 , - 1396 , - 113 , - 2790 , - 2387 , - 2424 , - 2901 , - 298 , - 1655 , - 3452 , - 2169 , - 1326 , - 923 , - 960 , - 1437 , - 2354 , - 191 , - 1988 , - 705 , - 3382 , - 2979 , - 3016 , - 3493 , - 890 , - 2247 , - 524 , - 2761 , - 1918 , - 1515 , - 1552 , - 2029 , - 2946 , - 783 , - 2580 , - 1297 , - 454 , - 51 , - 88 , - 565 , - 1482 , - 2839 , - 1116 , - 3353 , - 2510 , - 2107 , - 2144 , - 2621 , - 18 , - 1375 , - 3172 , - 1889 , - 1046 , - 643 , - 680 , - 1157 , - 2074 , - 3431 , - 1708 , - 425 , - 3102 , - 2699 , - 2736 , - 3213 , - 610 , - 1967 , - 244 , - 2481 , - 1638 , - 1235 , - 1272 , - 1749 , - 2666 , - 503 , - 2300 , - 1017 , - 174 , - 3291 , - 3328 , - 285 , - 1202 , - 2559 , - 836 , - 3073 , - 2230 , - 1827 , - 1864 , - 2341 , - 3258 , - 1095 , - 2892 , - 1609 , - 766 , - 363 , - 400 , - 877 , - 1794 , - 3151 , - 1428 , - 145 , - 2822 , - 2419 , - 2456 , - 2933 , - 330 , - 1687 , - 3484 , - 2201 , - 1358 , - 955 , - 992 , - 1469 , - 2386 , - 223 , - 2020 , - 737 , - 3414 , - 3011 , - 3048 , - 5 , - 922 , - 2279 , - 556 , - 2793 , - 1950 , - 1547 , - 1584 , - 2061 , - 2978 , - 815 , - 2612 , - 1329 , - 486 , - 83 , - 120 , - 597 , - 1514 , - 2871 , - 1148 , - 3385 , - 2542 , - 2139 , - 2176 , - 2653 , - 50 , - 1407 , - 3204 , - 1921 , - 1078 , - 675 , - 712 , - 1189 , - 2106 , - 3463 , - 1740 , - 457 , - 3134 , - 2731 , - 2768 , - 3245 , - 642 , - 1999 , - 276 , - 2513 , - 1670 , - 1267 , - 1304 , - 1781 , - 2698 , - 535 , - 2332 , - 1049 , - 206 , - 3323 , - 3360 , - 317 , - 1234 , - 2591 , - 868 , - 3105 , - 2262 , - 1859 , - 1896 , - 2373 , - 3290 , - 1127 , - 2924 , - 1641 , - 798 , - 395 , - 432 , - 909 , - 1826 , - 3183 , - 1460 , - 177 , - 2854 , - 2451 , - 2488 , - 2965 , - 362 , - 1719 , - 3516 , - 2233 , - 1390 , - 987 , - 1024 , - 1501 , - 2418 , - 255 , - 2052 , - 769 , - 3446 , - 3043 , - 3080 , - 37 , - 954 , - 2311 , - 588 , - 2825 , - 1982 , - 1579 , - 1616 , - 2093 , - 3010 , - 847 , - 2644 , - 1361 , - 518 , - 115 , - 152 , - 629 , - 1546 , - 2903 , - 1180 , - 3417 , - 2574 , - 2171 , - 2208 , - 2685 , - 82 , - 1439 , - 3236 , - 1953 , - 1110 , - 707 , - 744 , - 1221 , - 2138 , - 3495 , - 1772 , - 489 , - 3166 , - 2763 , - 2800 , - 3277 , - 674 , - 2031 , - 308 , - 2545 , - 1702 , - 1299 , - 1336 , - 1813 , - 2730 , - 567 , - 2364 , - 1081 , - 238 , - 3355 , - 3392 , - 349 , - 1266 , - 2623 , - 900 , - 3137 , - 2294 , - 1891 , - 1928 , - 2405 , - 3322 , - 1159 , - 2956 , - 1673 , - 830 , - 427 , - 464 , - 941 , - 1858 , - 3215 , - 1492 , - 209 , - 2886 , - 2483 , - 2520 , - 2997 , - 394 , - 1751 , - 28 , - 2265 , - 1422 , - 1019 , - 1056 , - 1533 , - 2450 , - 287 , - 2084 , - 801 , - 3478 , - 3075 , - 3112 , - 69 , - 986 , - 2343 , - 620 , - 2857 , - 2014 , - 1611 , - 1648 , - 2125 , - 3042 , - 879 , - 2676 , - 1393 , - 550 , - 147 , - 184 , - 661 , - 1578 , - 2935 , - 1212 , - 3449 , - 2606 , - 2203 , - 2240 , - 2717 , - 114 , - 1471 , - 3268 , - 1985 , - 1142 , - 739 , - 776 , - 1253 , - 2170 , - 7 , - 1804 , - 521 , - 3198 , - 2795 , - 2832 , - 3309 , - 706 , - 2063 , - 340 , - 2577 , - 1734 , - 1331 , - 1368 , - 1845 , - 2762 , - 599 , - 2396 , - 1113 , - 270 , - 3387 , - 3424 , - 381 , - 1298 , - 2655 , - 932 , - 3169 , - 2326 , - 1923 , - 1960 , - 2437 , - 3354 , - 1191 , - 2988 , - 1705 , - 862 , - 459 , - 496 , - 973 , - 1890 , - 3247 , - 1524 , - 241 , - 2918 , - 2515 , - 2552 , - 3029 , - 426 , - 1783 , - 60 , - 2297 , - 1454 , - 1051 , - 1088 , - 1565 , - 2482 , - 319 , - 2116 , - 833 , - 3510 , - 3107 , - 3144 , - 101 , - 1018 , - 2375 , - 652 , - 2889 , - 2046 , - 1643 , - 1680 , - 2157 , - 3074 , - 911 , - 2708 , - 1425 , - 582 , - 179 , - 216 , - 693 , - 1610 , - 2967 , - 1244 , - 3481 , - 2638 , - 2235 , - 2272 , - 2749 , - 146 , - 1503 , - 3300 , - 2017 , - 1174 , - 771 , - 808 , - 1285 , - 2202 , - 39 , - 1836 , - 553 , - 3230 , - 2827 , - 2864 , - 3341 , - 738 , - 2095 , - 372 , - 2609 , - 1766 , - 1363 , - 1400 , - 1877 , - 2794 , - 631 , - 2428 , - 1145 , - 302 , - 3419 , - 3456 , - 413 , - 1330 , - 2687 , - 964 , - 3201 , - 2358 , - 1955 , - 1992 , - 2469 , - 3386 , - 1223 , - 3020 , - 1737 , - 894 , - 491 , - 528 , - 1005 , - 1922 , - 3279 , - 1556 , - 273 , - 2950 , - 2547 , - 2584 , - 3061 , - 458 , - 1815 , - 92 , - 2329 , - 1486 , - 1083 , - 1120 , - 1597 , - 2514 , - 351 , - 2148 , - 865 , - 22 , - 3139 , - 3176 , - 133 , - 1050 , - 2407 , - 684 , - 2921 , - 2078 , - 1675 , - 1712 , - 2189 , - 3106 , - 943 , - 2740 , - 1457 , - 614 , - 211 , - 248 , - 725 , - 1642 , - 2999 , - 1276 , - 3513 , - 2670 , - 2267 , - 2304 , - 2781 , - 178 , - 1535 , - 3332 , - 2049 , - 1206 , - 803 , - 840 , - 1317 , - 2234 , - 71 , - 1868 , - 585 , - 3262 , - 2859 , - 2896 , - 3373 , - 770 , - 2127 , - 404 , - 2641 , - 1798 , - 1395 , - 1432 , - 1909 , - 2826 , - 663 , - 2460 , - 1177 , - 334 , - 3451 , - 3488 , - 445 , - 1362 , - 2719 , - 996 , - 3233 , - 2390 , - 1987 , - 2024 , - 2501 , - 3418 , - 1255 , - 3052 , - 1769 , - 926 , - 523 , - 560 , - 1037 , - 1954 , - 3311 , - 1588 , - 305 , - 2982 , - 2579 , - 2616 , - 3093 , - 490 , - 1847 , - 124 , - 2361 , - 1518 , - 1115 , - 1152 , - 1629 , - 2546 , - 383 , - 2180 , - 897 , - 54 , - 3171 , - 3208 , - 165 , - 1082 , - 2439 , - 716 , - 2953 , - 2110 , - 1707 , - 1744 , - 2221 , - 3138 , - 975 , - 2772 , - 1489 , - 646 , - 243 , - 280 , - 757 , - 1674 , - 3031 , - 1308 , - 25 , - 2702 , - 2299 , - 2336 , - 2813 , - 210 , - 1567 , - 3364 , - 2081 , - 1238 , - 835 , - 872 , - 1349 , - 2266 , - 103 , - 1900 , - 617 , - 3294 , - 2891 , - 2928 , - 3405 , - 802 , - 2159 , - 436 , - 2673 , - 1830 , - 1427 , - 1464 , - 1941 , - 2858 , - 695 , - 2492 , - 1209 , - 366 , - 3483 , - 0 , - 393 , - 1458 , - 3195 , - 2020 , - 1517 , - 1686 , - 2527 , - 456 , - 2641 , - 1914 , - 1859 , - 2476 , - 181 , - 2142 , - 1191 , - 912 , - 1305 , - 2370 , - 523 , - 2932 , - 2429 , - 2598 , - 3439 , - 1368 , - 3553 , - 2826 , - 2771 , - 3388 , - 1093 , - 3054 , - 2103 , - 1824 , - 2217 , - 3282 , - 1435 , - 260 , - 3341 , - 3510 , - 767 , - 2280 , - 881 , - 154 , - 99 , - 716 , - 2005 , - 382 , - 3015 , - 2736 , - 3129 , - 610 , - 2347 , - 1172 , - 669 , - 838 , - 1679 , - 3192 , - 1793 , - 1066 , - 1011 , - 1628 , - 2917 , - 1294 , - 343 , - 64 , - 457 , - 1522 , - 3259 , - 2084 , - 1581 , - 1750 , - 2591 , - 520 , - 2705 , - 1978 , - 1923 , - 2540 , - 245 , - 2206 , - 1255 , - 976 , - 1369 , - 2434 , - 587 , - 2996 , - 2493 , - 2662 , - 3503 , - 1432 , - 33 , - 2890 , - 2835 , - 3452 , - 1157 , - 3118 , - 2167 , - 1888 , - 2281 , - 3346 , - 1499 , - 324 , - 3405 , - 3574 , - 831 , - 2344 , - 945 , - 218 , - 163 , - 780 , - 2069 , - 446 , - 3079 , - 2800 , - 3193 , - 674 , - 2411 , - 1236 , - 733 , - 902 , - 1743 , - 3256 , - 1857 , - 1130 , - 1075 , - 1692 , - 2981 , - 1358 , - 407 , - 128 , - 521 , - 1586 , - 3323 , - 2148 , - 1645 , - 1814 , - 2655 , - 584 , - 2769 , - 2042 , - 1987 , - 2604 , - 309 , - 2270 , - 1319 , - 1040 , - 1433 , - 2498 , - 651 , - 3060 , - 2557 , - 2726 , - 3567 , - 1496 , - 97 , - 2954 , - 2899 , - 3516 , - 1221 , - 3182 , - 2231 , - 1952 , - 2345 , - 3410 , - 1563 , - 388 , - 3469 , - 54 , - 895 , - 2408 , - 1009 , - 282 , - 227 , - 844 , - 2133 , - 510 , - 3143 , - 2864 , - 3257 , - 738 , - 2475 , - 1300 , - 797 , - 966 , - 1807 , - 3320 , - 1921 , - 1194 , - 1139 , - 1756 , - 3045 , - 1422 , - 471 , - 192 , - 585 , - 1650 , - 3387 , - 2212 , - 1709 , - 1878 , - 2719 , - 648 , - 2833 , - 2106 , - 2051 , - 2668 , - 373 , - 2334 , - 1383 , - 1104 , - 1497 , - 2562 , - 715 , - 3124 , - 2621 , - 2790 , - 47 , - 1560 , - 161 , - 3018 , - 2963 , - 3580 , - 1285 , - 3246 , - 2295 , - 2016 , - 2409 , - 3474 , - 1627 , - 452 , - 3533 , - 118 , - 959 , - 2472 , - 1073 , - 346 , - 291 , - 908 , - 2197 , - 574 , - 3207 , - 2928 , - 3321 , - 802 , - 2539 , - 1364 , - 861 , - 1030 , - 1871 , - 3384 , - 1985 , - 1258 , - 1203 , - 1820 , - 3109 , - 1486 , - 535 , - 256 , - 649 , - 1714 , - 3451 , - 2276 , - 1773 , - 1942 , - 2783 , - 712 , - 2897 , - 2170 , - 2115 , - 2732 , - 437 , - 2398 , - 1447 , - 1168 , - 1561 , - 2626 , - 779 , - 3188 , - 2685 , - 2854 , - 111 , - 1624 , - 225 , - 3082 , - 3027 , - 60 , - 1349 , - 3310 , - 2359 , - 2080 , - 2473 , - 3538 , - 1691 , - 516 , - 13 , - 182 , - 1023 , - 2536 , - 1137 , - 410 , - 355 , - 972 , - 2261 , - 638 , - 3271 , - 2992 , - 3385 , - 866 , - 2603 , - 1428 , - 925 , - 1094 , - 1935 , - 3448 , - 2049 , - 1322 , - 1267 , - 1884 , - 3173 , - 1550 , - 599 , - 320 , - 713 , - 1778 , - 3515 , - 2340 , - 1837 , - 2006 , - 2847 , - 776 , - 2961 , - 2234 , - 2179 , - 2796 , - 501 , - 2462 , - 1511 , - 1232 , - 1625 , - 2690 , - 843 , - 3252 , - 2749 , - 2918 , - 175 , - 1688 , - 289 , - 3146 , - 3091 , - 124 , - 1413 , - 3374 , - 2423 , - 2144 , - 2537 , - 18 , - 1755 , - 580 , - 77 , - 246 , - 1087 , - 2600 , - 1201 , - 474 , - 419 , - 1036 , - 2325 , - 702 , - 3335 , - 3056 , - 3449 , - 930 , - 2667 , - 1492 , - 989 , - 1158 , - 1999 , - 3512 , - 2113 , - 1386 , - 1331 , - 1948 , - 3237 , - 1614 , - 663 , - 384 , - 777 , - 1842 , - 3579 , - 2404 , - 1901 , - 2070 , - 2911 , - 840 , - 3025 , - 2298 , - 2243 , - 2860 , - 565 , - 2526 , - 1575 , - 1296 , - 1689 , - 2754 , - 907 , - 3316 , - 2813 , - 2982 , - 239 , - 1752 , - 353 , - 3210 , - 3155 , - 188 , - 1477 , - 3438 , - 2487 , - 2208 , - 2601 , - 82 , - 1819 , - 644 , - 141 , - 310 , - 1151 , - 2664 , - 1265 , - 538 , - 483 , - 1100 , - 2389 , - 766 , - 3399 , - 3120 , - 3513 , - 994 , - 2731 , - 1556 , - 1053 , - 1222 , - 2063 , - 3576 , - 2177 , - 1450 , - 1395 , - 2012 , - 3301 , - 1678 , - 727 , - 448 , - 841 , - 1906 , - 59 , - 2468 , - 1965 , - 2134 , - 2975 , - 904 , - 3089 , - 2362 , - 2307 , - 2924 , - 629 , - 2590 , - 1639 , - 1360 , - 1753 , - 2818 , - 971 , - 3380 , - 2877 , - 3046 , - 303 , - 1816 , - 417 , - 3274 , - 3219 , - 252 , - 1541 , - 3502 , - 2551 , - 2272 , - 2665 , - 146 , - 1883 , - 708 , - 205 , - 374 , - 1215 , - 2728 , - 1329 , - 602 , - 547 , - 1164 , - 2453 , - 830 , - 3463 , - 3184 , - 3577 , - 1058 , - 2795 , - 1620 , - 1117 , - 1286 , - 2127 , - 56 , - 2241 , - 1514 , - 1459 , - 2076 , - 3365 , - 1742 , - 791 , - 512 , - 905 , - 1970 , - 123 , - 2532 , - 2029 , - 2198 , - 3039 , - 968 , - 3153 , - 2426 , - 2371 , - 2988 , - 693 , - 2654 , - 1703 , - 1424 , - 1817 , - 2882 , - 1035 , - 3444 , - 2941 , - 3110 , - 367 , - 1880 , - 481 , - 3338 , - 3283 , - 316 , - 1605 , - 3566 , - 2615 , - 2336 , - 2729 , - 210 , - 1947 , - 772 , - 269 , - 438 , - 1279 , - 2792 , - 1393 , - 666 , - 611 , - 1228 , - 2517 , - 894 , - 3527 , - 3248 , - 57 , - 1122 , - 2859 , - 1684 , - 1181 , - 1350 , - 2191 , - 120 , - 2305 , - 1578 , - 1523 , - 2140 , - 3429 , - 1806 , - 855 , - 576 , - 969 , - 2034 , - 187 , - 2596 , - 2093 , - 2262 , - 3103 , - 1032 , - 3217 , - 2490 , - 2435 , - 3052 , - 757 , - 2718 , - 1767 , - 1488 , - 1881 , - 2946 , - 1099 , - 3508 , - 3005 , - 3174 , - 431 , - 1944 , - 545 , - 3402 , - 3347 , - 380 , - 1669 , - 46 , - 2679 , - 2400 , - 2793 , - 274 , - 2011 , - 836 , - 333 , - 502 , - 1343 , - 2856 , - 1457 , - 730 , - 675 , - 1292 , - 2581 , - 958 , - 7 , - 3312 , - 121 , - 1186 , - 2923 , - 1748 , - 1245 , - 1414 , - 2255 , - 184 , - 2369 , - 1642 , - 1587 , - 2204 , - 3493 , - 1870 , - 919 , - 640 , - 1033 , - 2098 , - 251 , - 2660 , - 2157 , - 2326 , - 3167 , - 1096 , - 3281 , - 2554 , - 2499 , - 3116 , - 821 , - 2782 , - 1831 , - 1552 , - 1945 , - 3010 , - 1163 , - 3572 , - 3069 , - 3238 , - 495 , - 2008 , - 609 , - 3466 , - 3411 , - 444 , - 1733 , - 110 , - 2743 , - 2464 , - 2857 , - 338 , - 2075 , - 900 , - 397 , - 566 , - 1407 , - 2920 , - 1521 , - 794 , - 739 , - 1356 , - 2645 , - 1022 , - 71 , - 3376 , - 185 , - 1250 , - 2987 , - 1812 , - 1309 , - 1478 , - 2319 , - 248 , - 2433 , - 1706 , - 1651 , - 2268 , - 3557 , - 1934 , - 983 , - 704 , - 1097 , - 2162 , - 315 , - 2724 , - 2221 , - 2390 , - 3231 , - 1160 , - 3345 , - 2618 , - 2563 , - 3180 , - 885 , - 2846 , - 1895 , - 1616 , - 2009 , - 3074 , - 1227 , - 52 , - 3133 , - 3302 , - 559 , - 2072 , - 673 , - 3530 , - 3475 , - 508 , - 1797 , - 174 , - 2807 , - 2528 , - 2921 , - 402 , - 2139 , - 964 , - 461 , - 630 , - 1471 , - 2984 , - 1585 , - 858 , - 803 , - 1420 , - 2709 , - 1086 , - 135 , - 3440 , - 249 , - 1314 , - 3051 , - 1876 , - 1373 , - 1542 , - 2383 , - 312 , - 2497 , - 1770 , - 1715 , - 2332 , - 37 , - 1998 , - 1047 , - 768 , - 1161 , - 2226 , - 379 , - 2788 , - 2285 , - 2454 , - 3295 , - 1224 , - 3409 , - 2682 , - 2627 , - 3244 , - 949 , - 2910 , - 1959 , - 1680 , - 2073 , - 3138 , - 1291 , - 116 , - 3197 , - 3366 , - 623 , - 2136 , - 737 , - 10 , - 3539 , - 572 , - 1861 , - 238 , - 2871 , - 2592 , - 2985 , - 466 , - 2203 , - 1028 , - 525 , - 694 , - 1535 , - 3048 , - 1649 , - 922 , - 867 , - 1484 , - 2773 , - 1150 , - 199 , - 3504 , - 313 , - 1378 , - 3115 , - 1940 , - 1437 , - 1606 , - 2447 , - 376 , - 2561 , - 1834 , - 1779 , - 2396 , - 101 , - 2062 , - 1111 , - 832 , - 1225 , - 2290 , - 443 , - 2852 , - 2349 , - 2518 , - 3359 , - 1288 , - 3473 , - 2746 , - 2691 , - 3308 , - 1013 , - 2974 , - 2023 , - 1744 , - 2137 , - 3202 , - 1355 , - 180 , - 3261 , - 3430 , - 687 , - 2200 , - 801 , - 74 , - 19 , - 636 , - 1925 , - 302 , - 2935 , - 2656 , - 3049 , - 530 , - 2267 , - 1092 , - 589 , - 758 , - 1599 , - 3112 , - 1713 , - 986 , - 931 , - 1548 , - 2837 , - 1214 , - 263 , - 3568 , - 377 , - 1442 , - 3179 , - 2004 , - 1501 , - 1670 , - 2511 , - 440 , - 2625 , - 1898 , - 1843 , - 2460 , - 165 , - 2126 , - 1175 , - 896 , - 1289 , - 2354 , - 507 , - 2916 , - 2413 , - 2582 , - 3423 , - 1352 , - 3537 , - 2810 , - 2755 , - 3372 , - 1077 , - 3038 , - 2087 , - 1808 , - 2201 , - 3266 , - 1419 , - 244 , - 3325 , - 3494 , - 751 , - 2264 , - 865 , - 138 , - 83 , - 700 , - 1989 , - 366 , - 2999 , - 2720 , - 3113 , - 594 , - 2331 , - 1156 , - 653 , - 822 , - 1663 , - 3176 , - 1777 , - 1050 , - 995 , - 1612 , - 2901 , - 1278 , - 327 , - 48 , - 441 , - 1506 , - 3243 , - 2068 , - 1565 , - 1734 , - 2575 , - 504 , - 2689 , - 1962 , - 1907 , - 2524 , - 229 , - 2190 , - 1239 , - 960 , - 1353 , - 2418 , - 571 , - 2980 , - 2477 , - 2646 , - 3487 , - 1416 , - 17 , - 2874 , - 2819 , - 3436 , - 1141 , - 3102 , - 2151 , - 1872 , - 2265 , - 3330 , - 1483 , - 308 , - 3389 , - 3558 , - 815 , - 2328 , - 929 , - 202 , - 147 , - 764 , - 2053 , - 430 , - 3063 , - 2784 , - 3177 , - 658 , - 2395 , - 1220 , - 717 , - 886 , - 1727 , - 3240 , - 1841 , - 1114 , - 1059 , - 1676 , - 2965 , - 1342 , - 391 , - 112 , - 505 , - 1570 , - 3307 , - 2132 , - 1629 , - 1798 , - 2639 , - 568 , - 2753 , - 2026 , - 1971 , - 2588 , - 293 , - 2254 , - 1303 , - 1024 , - 1417 , - 2482 , - 635 , - 3044 , - 2541 , - 2710 , - 3551 , - 1480 , - 81 , - 2938 , - 2883 , - 3500 , - 1205 , - 3166 , - 2215 , - 1936 , - 2329 , - 3394 , - 1547 , - 372 , - 3453 , - 38 , - 879 , - 2392 , - 993 , - 266 , - 211 , - 828 , - 2117 , - 494 , - 3127 , - 2848 , - 3241 , - 722 , - 2459 , - 1284 , - 781 , - 950 , - 1791 , - 3304 , - 1905 , - 1178 , - 1123 , - 1740 , - 3029 , - 1406 , - 455 , - 176 , - 569 , - 1634 , - 3371 , - 2196 , - 1693 , - 1862 , - 2703 , - 632 , - 2817 , - 2090 , - 2035 , - 2652 , - 357 , - 2318 , - 1367 , - 1088 , - 1481 , - 2546 , - 699 , - 3108 , - 2605 , - 2774 , - 31 , - 1544 , - 145 , - 3002 , - 2947 , - 3564 , - 1269 , - 3230 , - 2279 , - 2000 , - 2393 , - 3458 , - 1611 , - 436 , - 3517 , - 102 , - 943 , - 2456 , - 1057 , - 330 , - 275 , - 892 , - 2181 , - 558 , - 3191 , - 2912 , - 3305 , - 786 , - 2523 , - 1348 , - 845 , - 1014 , - 1855 , - 3368 , - 1969 , - 1242 , - 1187 , - 1804 , - 3093 , - 1470 , - 519 , - 240 , - 633 , - 1698 , - 3435 , - 2260 , - 1757 , - 1926 , - 2767 , - 696 , - 2881 , - 2154 , - 2099 , - 2716 , - 421 , - 2382 , - 1431 , - 1152 , - 1545 , - 2610 , - 763 , - 3172 , - 2669 , - 2838 , - 95 , - 1608 , - 209 , - 3066 , - 3011 , - 44 , - 1333 , - 3294 , - 2343 , - 2064 , - 2457 , - 3522 , - 1675 , - 500 , - 3581 , - 166 , - 1007 , - 2520 , - 1121 , - 394 , - 339 , - 956 , - 2245 , - 622 , - 3255 , - 2976 , - 3369 , - 850 , - 2587 , - 1412 , - 909 , - 1078 , - 1919 , - 3432 , - 2033 , - 1306 , - 1251 , - 1868 , - 3157 , - 1534 , - 583 , - 304 , - 697 , - 1762 , - 3499 , - 2324 , - 1821 , - 1990 , - 2831 , - 760 , - 2945 , - 2218 , - 2163 , - 2780 , - 485 , - 2446 , - 1495 , - 1216 , - 1609 , - 2674 , - 827 , - 3236 , - 2733 , - 2902 , - 159 , - 1672 , - 273 , - 3130 , - 3075 , - 108 , - 1397 , - 3358 , - 2407 , - 2128 , - 2521 , - 2 , - 1739 , - 564 , - 61 , - 230 , - 1071 , - 2584 , - 1185 , - 458 , - 403 , - 1020 , - 2309 , - 686 , - 3319 , - 3040 , - 3433 , - 914 , - 2651 , - 1476 , - 973 , - 1142 , - 1983 , - 3496 , - 2097 , - 1370 , - 1315 , - 1932 , - 3221 , - 1598 , - 647 , - 368 , - 761 , - 1826 , - 3563 , - 2388 , - 1885 , - 2054 , - 2895 , - 824 , - 3009 , - 2282 , - 2227 , - 2844 , - 549 , - 2510 , - 1559 , - 1280 , - 1673 , - 2738 , - 891 , - 3300 , - 2797 , - 2966 , - 223 , - 1736 , - 337 , - 3194 , - 3139 , - 172 , - 1461 , - 3422 , - 2471 , - 2192 , - 2585 , - 66 , - 1803 , - 628 , - 125 , - 294 , - 1135 , - 2648 , - 1249 , - 522 , - 467 , - 1084 , - 2373 , - 750 , - 3383 , - 3104 , - 3497 , - 978 , - 2715 , - 1540 , - 1037 , - 1206 , - 2047 , - 3560 , - 2161 , - 1434 , - 1379 , - 1996 , - 3285 , - 1662 , - 711 , - 432 , - 825 , - 1890 , - 43 , - 2452 , - 1949 , - 2118 , - 2959 , - 888 , - 3073 , - 2346 , - 2291 , - 2908 , - 613 , - 2574 , - 1623 , - 1344 , - 1737 , - 2802 , - 955 , - 3364 , - 2861 , - 3030 , - 287 , - 1800 , - 401 , - 3258 , - 3203 , - 236 , - 1525 , - 3486 , - 2535 , - 2256 , - 2649 , - 130 , - 1867 , - 692 , - 189 , - 358 , - 1199 , - 2712 , - 1313 , - 586 , - 531 , - 1148 , - 2437 , - 814 , - 3447 , - 3168 , - 3561 , - 1042 , - 2779 , - 1604 , - 1101 , - 1270 , - 2111 , - 40 , - 2225 , - 1498 , - 1443 , - 2060 , - 3349 , - 1726 , - 775 , - 496 , - 889 , - 1954 , - 107 , - 2516 , - 2013 , - 2182 , - 3023 , - 952 , - 3137 , - 2410 , - 2355 , - 2972 , - 677 , - 2638 , - 1687 , - 1408 , - 1801 , - 2866 , - 1019 , - 3428 , - 2925 , - 3094 , - 351 , - 1864 , - 465 , - 3322 , - 3267 , - 300 , - 1589 , - 3550 , - 2599 , - 2320 , - 2713 , - 194 , - 1931 , - 756 , - 253 , - 422 , - 1263 , - 2776 , - 1377 , - 650 , - 595 , - 1212 , - 2501 , - 878 , - 3511 , - 3232 , - 41 , - 1106 , - 2843 , - 1668 , - 1165 , - 1334 , - 2175 , - 104 , - 2289 , - 1562 , - 1507 , - 2124 , - 3413 , - 1790 , - 839 , - 560 , - 953 , - 2018 , - 171 , - 2580 , - 2077 , - 2246 , - 3087 , - 1016 , - 3201 , - 2474 , - 2419 , - 3036 , - 741 , - 2702 , - 1751 , - 1472 , - 1865 , - 2930 , - 1083 , - 3492 , - 2989 , - 3158 , - 415 , - 1928 , - 529 , - 3386 , - 3331 , - 364 , - 1653 , - 30 , - 2663 , - 2384 , - 2777 , - 258 , - 1995 , - 820 , - 317 , - 486 , - 1327 , - 2840 , - 1441 , - 714 , - 659 , - 1276 , - 2565 , - 942 , - 3575 , - 3296 , - 105 , - 1170 , - 2907 , - 1732 , - 1229 , - 1398 , - 2239 , - 168 , - 2353 , - 1626 , - 1571 , - 2188 , - 3477 , - 1854 , - 903 , - 624 , - 1017 , - 2082 , - 235 , - 2644 , - 2141 , - 2310 , - 3151 , - 1080 , - 3265 , - 2538 , - 2483 , - 3100 , - 805 , - 2766 , - 1815 , - 1536 , - 1929 , - 2994 , - 1147 , - 3556 , - 3053 , - 3222 , - 479 , - 1992 , - 593 , - 3450 , - 3395 , - 428 , - 1717 , - 94 , - 2727 , - 2448 , - 2841 , - 322 , - 2059 , - 884 , - 381 , - 550 , - 1391 , - 2904 , - 1505 , - 778 , - 723 , - 1340 , - 2629 , - 1006 , - 55 , - 3360 , - 169 , - 1234 , - 2971 , - 1796 , - 1293 , - 1462 , - 2303 , - 232 , - 2417 , - 1690 , - 1635 , - 2252 , - 3541 , - 1918 , - 967 , - 688 , - 1081 , - 2146 , - 299 , - 2708 , - 2205 , - 2374 , - 3215 , - 1144 , - 3329 , - 2602 , - 2547 , - 3164 , - 869 , - 2830 , - 1879 , - 1600 , - 1993 , - 3058 , - 1211 , - 36 , - 3117 , - 3286 , - 543 , - 2056 , - 657 , - 3514 , - 3459 , - 492 , - 1781 , - 158 , - 2791 , - 2512 , - 2905 , - 386 , - 2123 , - 948 , - 445 , - 614 , - 1455 , - 2968 , - 1569 , - 842 , - 787 , - 1404 , - 2693 , - 1070 , - 119 , - 3424 , - 233 , - 1298 , - 3035 , - 1860 , - 1357 , - 1526 , - 2367 , - 296 , - 2481 , - 1754 , - 1699 , - 2316 , - 21 , - 1982 , - 1031 , - 752 , - 1145 , - 2210 , - 363 , - 2772 , - 2269 , - 2438 , - 3279 , - 1208 , - 3393 , - 2666 , - 2611 , - 3228 , - 933 , - 2894 , - 1943 , - 1664 , - 2057 , - 3122 , - 1275 , - 100 , - 3181 , - 3350 , - 607 , - 2120 , - 721 , - 3578 , - 3523 , - 556 , - 1845 , - 222 , - 2855 , - 2576 , - 2969 , - 450 , - 2187 , - 1012 , - 509 , - 678 , - 1519 , - 3032 , - 1633 , - 906 , - 851 , - 1468 , - 2757 , - 1134 , - 183 , - 3488 , - 297 , - 1362 , - 3099 , - 1924 , - 1421 , - 1590 , - 2431 , - 360 , - 2545 , - 1818 , - 1763 , - 2380 , - 85 , - 2046 , - 1095 , - 816 , - 1209 , - 2274 , - 427 , - 2836 , - 2333 , - 2502 , - 3343 , - 1272 , - 3457 , - 2730 , - 2675 , - 3292 , - 997 , - 2958 , - 2007 , - 1728 , - 2121 , - 3186 , - 1339 , - 164 , - 3245 , - 3414 , - 671 , - 2184 , - 785 , - 58 , - 3 , - 620 , - 1909 , - 286 , - 2919 , - 2640 , - 3033 , - 514 , - 2251 , - 1076 , - 573 , - 742 , - 1583 , - 3096 , - 1697 , - 970 , - 915 , - 1532 , - 2821 , - 1198 , - 247 , - 3552 , - 361 , - 1426 , - 3163 , - 1988 , - 1485 , - 1654 , - 2495 , - 424 , - 2609 , - 1882 , - 1827 , - 2444 , - 149 , - 2110 , - 1159 , - 880 , - 1273 , - 2338 , - 491 , - 2900 , - 2397 , - 2566 , - 3407 , - 1336 , - 3521 , - 2794 , - 2739 , - 3356 , - 1061 , - 3022 , - 2071 , - 1792 , - 2185 , - 3250 , - 1403 , - 228 , - 3309 , - 3478 , - 735 , - 2248 , - 849 , - 122 , - 67 , - 684 , - 1973 , - 350 , - 2983 , - 2704 , - 3097 , - 578 , - 2315 , - 1140 , - 637 , - 806 , - 1647 , - 3160 , - 1761 , - 1034 , - 979 , - 1596 , - 2885 , - 1262 , - 311 , - 32 , - 425 , - 1490 , - 3227 , - 2052 , - 1549 , - 1718 , - 2559 , - 488 , - 2673 , - 1946 , - 1891 , - 2508 , - 213 , - 2174 , - 1223 , - 944 , - 1337 , - 2402 , - 555 , - 2964 , - 2461 , - 2630 , - 3471 , - 1400 , - 1 , - 2858 , - 2803 , - 3420 , - 1125 , - 3086 , - 2135 , - 1856 , - 2249 , - 3314 , - 1467 , - 292 , - 3373 , - 3542 , - 799 , - 2312 , - 913 , - 186 , - 131 , - 748 , - 2037 , - 414 , - 3047 , - 2768 , - 3161 , - 642 , - 2379 , - 1204 , - 701 , - 870 , - 1711 , - 3224 , - 1825 , - 1098 , - 1043 , - 1660 , - 2949 , - 1326 , - 375 , - 96 , - 489 , - 1554 , - 3291 , - 2116 , - 1613 , - 1782 , - 2623 , - 552 , - 2737 , - 2010 , - 1955 , - 2572 , - 277 , - 2238 , - 1287 , - 1008 , - 1401 , - 2466 , - 619 , - 3028 , - 2525 , - 2694 , - 3535 , - 1464 , - 65 , - 2922 , - 2867 , - 3484 , - 1189 , - 3150 , - 2199 , - 1920 , - 2313 , - 3378 , - 1531 , - 356 , - 3437 , - 22 , - 863 , - 2376 , - 977 , - 250 , - 195 , - 812 , - 2101 , - 478 , - 3111 , - 2832 , - 3225 , - 706 , - 2443 , - 1268 , - 765 , - 934 , - 1775 , - 3288 , - 1889 , - 1162 , - 1107 , - 1724 , - 3013 , - 1390 , - 439 , - 160 , - 553 , - 1618 , - 3355 , - 2180 , - 1677 , - 1846 , - 2687 , - 616 , - 2801 , - 2074 , - 2019 , - 2636 , - 341 , - 2302 , - 1351 , - 1072 , - 1465 , - 2530 , - 683 , - 3092 , - 2589 , - 2758 , - 15 , - 1528 , - 129 , - 2986 , - 2931 , - 3548 , - 1253 , - 3214 , - 2263 , - 1984 , - 2377 , - 3442 , - 1595 , - 420 , - 3501 , - 86 , - 927 , - 2440 , - 1041 , - 314 , - 259 , - 876 , - 2165 , - 542 , - 3175 , - 2896 , - 3289 , - 770 , - 2507 , - 1332 , - 829 , - 998 , - 1839 , - 3352 , - 1953 , - 1226 , - 1171 , - 1788 , - 3077 , - 1454 , - 503 , - 224 , - 617 , - 1682 , - 3419 , - 2244 , - 1741 , - 1910 , - 2751 , - 680 , - 2865 , - 2138 , - 2083 , - 2700 , - 405 , - 2366 , - 1415 , - 1136 , - 1529 , - 2594 , - 747 , - 3156 , - 2653 , - 2822 , - 79 , - 1592 , - 193 , - 3050 , - 2995 , - 28 , - 1317 , - 3278 , - 2327 , - 2048 , - 2441 , - 3506 , - 1659 , - 484 , - 3565 , - 150 , - 991 , - 2504 , - 1105 , - 378 , - 323 , - 940 , - 2229 , - 606 , - 3239 , - 2960 , - 3353 , - 834 , - 2571 , - 1396 , - 893 , - 1062 , - 1903 , - 3416 , - 2017 , - 1290 , - 1235 , - 1852 , - 3141 , - 1518 , - 567 , - 288 , - 681 , - 1746 , - 3483 , - 2308 , - 1805 , - 1974 , - 2815 , - 744 , - 2929 , - 2202 , - 2147 , - 2764 , - 469 , - 2430 , - 1479 , - 1200 , - 1593 , - 2658 , - 811 , - 3220 , - 2717 , - 2886 , - 143 , - 1656 , - 257 , - 3114 , - 3059 , - 92 , - 1381 , - 3342 , - 2391 , - 2112 , - 2505 , - 3570 , - 1723 , - 548 , - 45 , - 214 , - 1055 , - 2568 , - 1169 , - 442 , - 387 , - 1004 , - 2293 , - 670 , - 3303 , - 3024 , - 3417 , - 898 , - 2635 , - 1460 , - 957 , - 1126 , - 1967 , - 3480 , - 2081 , - 1354 , - 1299 , - 1916 , - 3205 , - 1582 , - 631 , - 352 , - 745 , - 1810 , - 3547 , - 2372 , - 1869 , - 2038 , - 2879 , - 808 , - 2993 , - 2266 , - 2211 , - 2828 , - 533 , - 2494 , - 1543 , - 1264 , - 1657 , - 2722 , - 875 , - 3284 , - 2781 , - 2950 , - 207 , - 1720 , - 321 , - 3178 , - 3123 , - 156 , - 1445 , - 3406 , - 2455 , - 2176 , - 2569 , - 50 , - 1787 , - 612 , - 109 , - 278 , - 1119 , - 2632 , - 1233 , - 506 , - 451 , - 1068 , - 2357 , - 734 , - 3367 , - 3088 , - 3481 , - 962 , - 2699 , - 1524 , - 1021 , - 1190 , - 2031 , - 3544 , - 2145 , - 1418 , - 1363 , - 1980 , - 3269 , - 1646 , - 695 , - 416 , - 809 , - 1874 , - 27 , - 2436 , - 1933 , - 2102 , - 2943 , - 872 , - 3057 , - 2330 , - 2275 , - 2892 , - 597 , - 2558 , - 1607 , - 1328 , - 1721 , - 2786 , - 939 , - 3348 , - 2845 , - 3014 , - 271 , - 1784 , - 385 , - 3242 , - 3187 , - 220 , - 1509 , - 3470 , - 2519 , - 2240 , - 2633 , - 114 , - 1851 , - 676 , - 173 , - 342 , - 1183 , - 2696 , - 1297 , - 570 , - 515 , - 1132 , - 2421 , - 798 , - 3431 , - 3152 , - 3545 , - 1026 , - 2763 , - 1588 , - 1085 , - 1254 , - 2095 , - 24 , - 2209 , - 1482 , - 1427 , - 2044 , - 3333 , - 1710 , - 759 , - 480 , - 873 , - 1938 , - 91 , - 2500 , - 1997 , - 2166 , - 3007 , - 936 , - 3121 , - 2394 , - 2339 , - 2956 , - 661 , - 2622 , - 1671 , - 1392 , - 1785 , - 2850 , - 1003 , - 3412 , - 2909 , - 3078 , - 335 , - 1848 , - 449 , - 3306 , - 3251 , - 284 , - 1573 , - 3534 , - 2583 , - 2304 , - 2697 , - 178 , - 1915 , - 740 , - 237 , - 406 , - 1247 , - 2760 , - 1361 , - 634 , - 579 , - 1196 , - 2485 , - 862 , - 3495 , - 3216 , - 25 , - 1090 , - 2827 , - 1652 , - 1149 , - 1318 , - 2159 , - 88 , - 2273 , - 1546 , - 1491 , - 2108 , - 3397 , - 1774 , - 823 , - 544 , - 937 , - 2002 , - 155 , - 2564 , - 2061 , - 2230 , - 3071 , - 1000 , - 3185 , - 2458 , - 2403 , - 3020 , - 725 , - 2686 , - 1735 , - 1456 , - 1849 , - 2914 , - 1067 , - 3476 , - 2973 , - 3142 , - 399 , - 1912 , - 513 , - 3370 , - 3315 , - 348 , - 1637 , - 14 , - 2647 , - 2368 , - 2761 , - 242 , - 1979 , - 804 , - 301 , - 470 , - 1311 , - 2824 , - 1425 , - 698 , - 643 , - 1260 , - 2549 , - 926 , - 3559 , - 3280 , - 89 , - 1154 , - 2891 , - 1716 , - 1213 , - 1382 , - 2223 , - 152 , - 2337 , - 1610 , - 1555 , - 2172 , - 3461 , - 1838 , - 887 , - 608 , - 1001 , - 2066 , - 219 , - 2628 , - 2125 , - 2294 , - 3135 , - 1064 , - 3249 , - 2522 , - 2467 , - 3084 , - 789 , - 2750 , - 1799 , - 1520 , - 1913 , - 2978 , - 1131 , - 3540 , - 3037 , - 3206 , - 463 , - 1976 , - 577 , - 3434 , - 3379 , - 412 , - 1701 , - 78 , - 2711 , - 2432 , - 2825 , - 306 , - 2043 , - 868 , - 365 , - 534 , - 1375 , - 2888 , - 1489 , - 762 , - 707 , - 1324 , - 2613 , - 990 , - 39 , - 3344 , - 153 , - 1218 , - 2955 , - 1780 , - 1277 , - 1446 , - 2287 , - 216 , - 2401 , - 1674 , - 1619 , - 2236 , - 3525 , - 1902 , - 951 , - 672 , - 1065 , - 2130 , - 283 , - 2692 , - 2189 , - 2358 , - 3199 , - 1128 , - 3313 , - 2586 , - 2531 , - 3148 , - 853 , - 2814 , - 1863 , - 1584 , - 1977 , - 3042 , - 1195 , - 20 , - 3101 , - 3270 , - 527 , - 2040 , - 641 , - 3498 , - 3443 , - 476 , - 1765 , - 142 , - 2775 , - 2496 , - 2889 , - 370 , - 2107 , - 932 , - 429 , - 598 , - 1439 , - 2952 , - 1553 , - 826 , - 771 , - 1388 , - 2677 , - 1054 , - 103 , - 3408 , - 217 , - 1282 , - 3019 , - 1844 , - 1341 , - 1510 , - 2351 , - 280 , - 2465 , - 1738 , - 1683 , - 2300 , - 5 , - 1966 , - 1015 , - 736 , - 1129 , - 2194 , - 347 , - 2756 , - 2253 , - 2422 , - 3263 , - 1192 , - 3377 , - 2650 , - 2595 , - 3212 , - 917 , - 2878 , - 1927 , - 1648 , - 2041 , - 3106 , - 1259 , - 84 , - 3165 , - 3334 , - 591 , - 2104 , - 705 , - 3562 , - 3507 , - 540 , - 1829 , - 206 , - 2839 , - 2560 , - 2953 , - 434 , - 2171 , - 996 , - 493 , - 662 , - 1503 , - 3016 , - 1617 , - 890 , - 835 , - 1452 , - 2741 , - 1118 , - 167 , - 3472 , - 281 , - 1346 , - 3083 , - 1908 , - 1405 , - 1574 , - 2415 , - 344 , - 2529 , - 1802 , - 1747 , - 2364 , - 69 , - 2030 , - 1079 , - 800 , - 1193 , - 2258 , - 411 , - 2820 , - 2317 , - 2486 , - 3327 , - 1256 , - 3441 , - 2714 , - 2659 , - 3276 , - 981 , - 2942 , - 1991 , - 1712 , - 2105 , - 3170 , - 1323 , - 148 , - 3229 , - 3398 , - 655 , - 2168 , - 769 , - 42 , - 3571 , - 604 , - 1893 , - 270 , - 2903 , - 2624 , - 3017 , - 498 , - 2235 , - 1060 , - 557 , - 726 , - 1567 , - 3080 , - 1681 , - 954 , - 899 , - 1516 , - 2805 , - 1182 , - 231 , - 3536 , - 345 , - 1410 , - 3147 , - 1972 , - 1469 , - 1638 , - 2479 , - 408 , - 2593 , - 1866 , - 1811 , - 2428 , - 133 , - 2094 , - 1143 , - 864 , - 1257 , - 2322 , - 475 , - 2884 , - 2381 , - 2550 , - 3391 , - 1320 , - 3505 , - 2778 , - 2723 , - 3340 , - 1045 , - 3006 , - 2055 , - 1776 , - 2169 , - 3234 , - 1387 , - 212 , - 3293 , - 3462 , - 719 , - 2232 , - 833 , - 106 , - 51 , - 668 , - 1957 , - 334 , - 2967 , - 2688 , - 3081 , - 562 , - 2299 , - 1124 , - 621 , - 790 , - 1631 , - 3144 , - 1745 , - 1018 , - 963 , - 1580 , - 2869 , - 1246 , - 295 , - 16 , - 409 , - 1474 , - 3211 , - 2036 , - 1533 , - 1702 , - 2543 , - 472 , - 2657 , - 1930 , - 1875 , - 2492 , - 197 , - 2158 , - 1207 , - 928 , - 1321 , - 2386 , - 539 , - 2948 , - 2445 , - 2614 , - 3455 , - 1384 , - 3569 , - 2842 , - 2787 , - 3404 , - 1109 , - 3070 , - 2119 , - 1840 , - 2233 , - 3298 , - 1451 , - 276 , - 3357 , - 3526 , - 783 , - 2296 , - 897 , - 170 , - 115 , - 732 , - 2021 , - 398 , - 3031 , - 2752 , - 3145 , - 626 , - 2363 , - 1188 , - 685 , - 854 , - 1695 , - 3208 , - 1809 , - 1082 , - 1027 , - 1644 , - 2933 , - 1310 , - 359 , - 80 , - 473 , - 1538 , - 3275 , - 2100 , - 1597 , - 1766 , - 2607 , - 536 , - 2721 , - 1994 , - 1939 , - 2556 , - 261 , - 2222 , - 1271 , - 992 , - 1385 , - 2450 , - 603 , - 3012 , - 2509 , - 2678 , - 3519 , - 1448 , - 49 , - 2906 , - 2851 , - 3468 , - 1173 , - 3134 , - 2183 , - 1904 , - 2297 , - 3362 , - 1515 , - 340 , - 3421 , - 6 , - 847 , - 2360 , - 961 , - 234 , - 179 , - 796 , - 2085 , - 462 , - 3095 , - 2816 , - 3209 , - 690 , - 2427 , - 1252 , - 749 , - 918 , - 1759 , - 3272 , - 1873 , - 1146 , - 1091 , - 1708 , - 2997 , - 1374 , - 423 , - 144 , - 537 , - 1602 , - 3339 , - 2164 , - 1661 , - 1830 , - 2671 , - 600 , - 2785 , - 2058 , - 2003 , - 2620 , - 325 , - 2286 , - 1335 , - 1056 , - 1449 , - 2514 , - 667 , - 3076 , - 2573 , - 2742 , - 3583 , - 1512 , - 113 , - 2970 , - 2915 , - 3532 , - 1237 , - 3198 , - 2247 , - 1968 , - 2361 , - 3426 , - 1579 , - 404 , - 3485 , - 70 , - 911 , - 2424 , - 1025 , - 298 , - 243 , - 860 , - 2149 , - 526 , - 3159 , - 2880 , - 3273 , - 754 , - 2491 , - 1316 , - 813 , - 982 , - 1823 , - 3336 , - 1937 , - 1210 , - 1155 , - 1772 , - 3061 , - 1438 , - 487 , - 208 , - 601 , - 1666 , - 3403 , - 2228 , - 1725 , - 1894 , - 2735 , - 664 , - 2849 , - 2122 , - 2067 , - 2684 , - 389 , - 2350 , - 1399 , - 1120 , - 1513 , - 2578 , - 731 , - 3140 , - 2637 , - 2806 , - 63 , - 1576 , - 177 , - 3034 , - 2979 , - 12 , - 1301 , - 3262 , - 2311 , - 2032 , - 2425 , - 3490 , - 1643 , - 468 , - 3549 , - 134 , - 975 , - 2488 , - 1089 , - 362 , - 307 , - 924 , - 2213 , - 590 , - 3223 , - 2944 , - 3337 , - 818 , - 2555 , - 1380 , - 877 , - 1046 , - 1887 , - 3400 , - 2001 , - 1274 , - 1219 , - 1836 , - 3125 , - 1502 , - 551 , - 272 , - 665 , - 1730 , - 3467 , - 2292 , - 1789 , - 1958 , - 2799 , - 728 , - 2913 , - 2186 , - 2131 , - 2748 , - 453 , - 2414 , - 1463 , - 1184 , - 1577 , - 2642 , - 795 , - 3204 , - 2701 , - 2870 , - 127 , - 1640 , - 241 , - 3098 , - 3043 , - 76 , - 1365 , - 3326 , - 2375 , - 2096 , - 2489 , - 3554 , - 1707 , - 532 , - 29 , - 198 , - 1039 , - 2552 , - 1153 , - 426 , - 371 , - 988 , - 2277 , - 654 , - 3287 , - 3008 , - 3401 , - 882 , - 2619 , - 1444 , - 941 , - 1110 , - 1951 , - 3464 , - 2065 , - 1338 , - 1283 , - 1900 , - 3189 , - 1566 , - 615 , - 336 , - 729 , - 1794 , - 3531 , - 2356 , - 1853 , - 2022 , - 2863 , - 792 , - 2977 , - 2250 , - 2195 , - 2812 , - 517 , - 2478 , - 1527 , - 1248 , - 1641 , - 2706 , - 859 , - 3268 , - 2765 , - 2934 , - 191 , - 1704 , - 305 , - 3162 , - 3107 , - 140 , - 1429 , - 3390 , - 2439 , - 2160 , - 2553 , - 34 , - 1771 , - 596 , - 93 , - 262 , - 1103 , - 2616 , - 1217 , - 490 , - 435 , - 1052 , - 2341 , - 718 , - 3351 , - 3072 , - 3465 , - 946 , - 2683 , - 1508 , - 1005 , - 1174 , - 2015 , - 3528 , - 2129 , - 1402 , - 1347 , - 1964 , - 3253 , - 1630 , - 679 , - 400 , - 793 , - 1858 , - 11 , - 2420 , - 1917 , - 2086 , - 2927 , - 856 , - 3041 , - 2314 , - 2259 , - 2876 , - 581 , - 2542 , - 1591 , - 1312 , - 1705 , - 2770 , - 923 , - 3332 , - 2829 , - 2998 , - 255 , - 1768 , - 369 , - 3226 , - 3171 , - 204 , - 1493 , - 3454 , - 2503 , - 2224 , - 2617 , - 98 , - 1835 , - 660 , - 157 , - 326 , - 1167 , - 2680 , - 1281 , - 554 , - 499 , - 1116 , - 2405 , - 782 , - 3415 , - 3136 , - 3529 , - 1010 , - 2747 , - 1572 , - 1069 , - 1238 , - 2079 , - 8 , - 2193 , - 1466 , - 1411 , - 2028 , - 3317 , - 1694 , - 743 , - 464 , - 857 , - 1922 , - 75 , - 2484 , - 1981 , - 2150 , - 2991 , - 920 , - 3105 , - 2378 , - 2323 , - 2940 , - 645 , - 2606 , - 1655 , - 1376 , - 1769 , - 2834 , - 987 , - 3396 , - 2893 , - 3062 , - 319 , - 1832 , - 433 , - 3290 , - 3235 , - 268 , - 1557 , - 3518 , - 2567 , - 2288 , - 2681 , - 162 , - 1899 , - 724 , - 221 , - 390 , - 1231 , - 2744 , - 1345 , - 618 , - 563 , - 1180 , - 2469 , - 846 , - 3479 , - 3200 , - 9 , - 1074 , - 2811 , - 1636 , - 1133 , - 1302 , - 2143 , - 72 , - 2257 , - 1530 , - 1475 , - 2092 , - 3381 , - 1758 , - 807 , - 528 , - 921 , - 1986 , - 139 , - 2548 , - 2045 , - 2214 , - 3055 , - 984 , - 3169 , - 2442 , - 2387 , - 3004 , - 709 , - 2670 , - 1719 , - 1440 , - 1833 , - 2898 , - 1051 , - 3460 , - 2957 , - 3126 , - 383 , - 1896 , - 497 , - 3354 , - 3299 , - 332 , - 1621 , - 3582 , - 2631 , - 2352 , - 2745 , - 226 , - 1963 , - 788 , - 285 , - 454 , - 1295 , - 2808 , - 1409 , - 682 , - 627 , - 1244 , - 2533 , - 910 , - 3543 , - 3264 , - 73 , - 1138 , - 2875 , - 1700 , - 1197 , - 1366 , - 2207 , - 136 , - 2321 , - 1594 , - 1539 , - 2156 , - 3445 , - 1822 , - 871 , - 592 , - 985 , - 2050 , - 203 , - 2612 , - 2109 , - 2278 , - 3119 , - 1048 , - 3233 , - 2506 , - 2451 , - 3068 , - 773 , - 2734 , - 1783 , - 1504 , - 1897 , - 2962 , - 1115 , - 3524 , - 3021 , - 3190 , - 447 , - 1960 , - 561 , - 3418 , - 3363 , - 396 , - 1685 , - 62 , - 2695 , - 2416 , - 2809 , - 290 , - 2027 , - 852 , - 349 , - 518 , - 1359 , - 2872 , - 1473 , - 746 , - 691 , - 1308 , - 2597 , - 974 , - 23 , - 3328 , - 137 , - 1202 , - 2939 , - 1764 , - 1261 , - 1430 , - 2271 , - 200 , - 2385 , - 1658 , - 1603 , - 2220 , - 3509 , - 1886 , - 935 , - 656 , - 1049 , - 2114 , - 267 , - 2676 , - 2173 , - 2342 , - 3183 , - 1112 , - 3297 , - 2570 , - 2515 , - 3132 , - 837 , - 2798 , - 1847 , - 1568 , - 1961 , - 3026 , - 1179 , - 4 , - 3085 , - 3254 , - 511 , - 2024 , - 625 , - 3482 , - 3427 , - 460 , - 1749 , - 126 , - 2759 , - 2480 , - 2873 , - 354 , - 2091 , - 916 , - 413 , - 582 , - 1423 , - 2936 , - 1537 , - 810 , - 755 , - 1372 , - 2661 , - 1038 , - 87 , - 3392 , - 201 , - 1266 , - 3003 , - 1828 , - 1325 , - 1494 , - 2335 , - 264 , - 2449 , - 1722 , - 1667 , - 2284 , - 3573 , - 1950 , - 999 , - 720 , - 1113 , - 2178 , - 331 , - 2740 , - 2237 , - 2406 , - 3247 , - 1176 , - 3361 , - 2634 , - 2579 , - 3196 , - 901 , - 2862 , - 1911 , - 1632 , - 2025 , - 3090 , - 1243 , - 68 , - 3149 , - 3318 , - 575 , - 2088 , - 689 , - 3546 , - 3491 , - 524 , - 1813 , - 190 , - 2823 , - 2544 , - 2937 , - 418 , - 2155 , - 980 , - 477 , - 646 , - 1487 , - 3000 , - 1601 , - 874 , - 819 , - 1436 , - 2725 , - 1102 , - 151 , - 3456 , - 265 , - 1330 , - 3067 , - 1892 , - 1389 , - 1558 , - 2399 , - 328 , - 2513 , - 1786 , - 1731 , - 2348 , - 53 , - 2014 , - 1063 , - 784 , - 1177 , - 2242 , - 395 , - 2804 , - 2301 , - 2470 , - 3311 , - 1240 , - 3425 , - 2698 , - 2643 , - 3260 , - 965 , - 2926 , - 1975 , - 1696 , - 2089 , - 3154 , - 1307 , - 132 , - 3213 , - 3382 , - 639 , - 2152 , - 753 , - 26 , - 3555 , - 588 , - 1877 , - 254 , - 2887 , - 2608 , - 3001 , - 482 , - 2219 , - 1044 , - 541 , - 710 , - 1551 , - 3064 , - 1665 , - 938 , - 883 , - 1500 , - 2789 , - 1166 , - 215 , - 3520 , - 329 , - 1394 , - 3131 , - 1956 , - 1453 , - 1622 , - 2463 , - 392 , - 2577 , - 1850 , - 1795 , - 2412 , - 117 , - 2078 , - 1127 , - 848 , - 1241 , - 2306 , - 459 , - 2868 , - 2365 , - 2534 , - 3375 , - 1304 , - 3489 , - 2762 , - 2707 , - 3324 , - 1029 , - 2990 , - 2039 , - 1760 , - 2153 , - 3218 , - 1371 , - 196 , - 3277 , - 3446 , - 703 , - 2216 , - 817 , - 90 , - 35 , - 652 , - 1941 , - 318 , - 2951 , - 2672 , - 3065 , - 546 , - 2283 , - 1108 , - 605 , - 774 , - 1615 , - 3128 , - 1729 , - 1002 , - 947 , - 1564 , - 2853 , - 1230 , - 279 , - 0 , - 541 , - 1538 , - 2991 , - 1252 , - 3617 , - 2790 , - 2419 , - 2504 , - 3045 , - 394 , - 1847 , - 108 , - 2473 , - 1646 , - 1275 , - 1360 , - 1901 , - 2898 , - 703 , - 2612 , - 1329 , - 502 , - 131 , - 216 , - 757 , - 1754 , - 3207 , - 1468 , - 185 , - 3006 , - 2635 , - 2720 , - 3261 , - 610 , - 2063 , - 324 , - 2689 , - 1862 , - 1491 , - 1576 , - 2117 , - 3114 , - 919 , - 2828 , - 1545 , - 718 , - 347 , - 432 , - 973 , - 1970 , - 3423 , - 1684 , - 401 , - 3222 , - 2851 , - 2936 , - 3477 , - 826 , - 2279 , - 540 , - 2905 , - 2078 , - 1707 , - 1792 , - 2333 , - 3330 , - 1135 , - 3044 , - 1761 , - 934 , - 563 , - 648 , - 1189 , - 2186 , - 3639 , - 1900 , - 617 , - 3438 , - 3067 , - 3152 , - 45 , - 1042 , - 2495 , - 756 , - 3121 , - 2294 , - 1923 , - 2008 , - 2549 , - 3546 , - 1351 , - 3260 , - 1977 , - 1150 , - 779 , - 864 , - 1405 , - 2402 , - 207 , - 2116 , - 833 , - 6 , - 3283 , - 3368 , - 261 , - 1258 , - 2711 , - 972 , - 3337 , - 2510 , - 2139 , - 2224 , - 2765 , - 114 , - 1567 , - 3476 , - 2193 , - 1366 , - 995 , - 1080 , - 1621 , - 2618 , - 423 , - 2332 , - 1049 , - 222 , - 3499 , - 3584 , - 477 , - 1474 , - 2927 , - 1188 , - 3553 , - 2726 , - 2355 , - 2440 , - 2981 , - 330 , - 1783 , - 44 , - 2409 , - 1582 , - 1211 , - 1296 , - 1837 , - 2834 , - 639 , - 2548 , - 1265 , - 438 , - 67 , - 152 , - 693 , - 1690 , - 3143 , - 1404 , - 121 , - 2942 , - 2571 , - 2656 , - 3197 , - 546 , - 1999 , - 260 , - 2625 , - 1798 , - 1427 , - 1512 , - 2053 , - 3050 , - 855 , - 2764 , - 1481 , - 654 , - 283 , - 368 , - 909 , - 1906 , - 3359 , - 1620 , - 337 , - 3158 , - 2787 , - 2872 , - 3413 , - 762 , - 2215 , - 476 , - 2841 , - 2014 , - 1643 , - 1728 , - 2269 , - 3266 , - 1071 , - 2980 , - 1697 , - 870 , - 499 , - 584 , - 1125 , - 2122 , - 3575 , - 1836 , - 553 , - 3374 , - 3003 , - 3088 , - 3629 , - 978 , - 2431 , - 692 , - 3057 , - 2230 , - 1859 , - 1944 , - 2485 , - 3482 , - 1287 , - 3196 , - 1913 , - 1086 , - 715 , - 800 , - 1341 , - 2338 , - 143 , - 2052 , - 769 , - 3590 , - 3219 , - 3304 , - 197 , - 1194 , - 2647 , - 908 , - 3273 , - 2446 , - 2075 , - 2160 , - 2701 , - 50 , - 1503 , - 3412 , - 2129 , - 1302 , - 931 , - 1016 , - 1557 , - 2554 , - 359 , - 2268 , - 985 , - 158 , - 3435 , - 3520 , - 413 , - 1410 , - 2863 , - 1124 , - 3489 , - 2662 , - 2291 , - 2376 , - 2917 , - 266 , - 1719 , - 3628 , - 2345 , - 1518 , - 1147 , - 1232 , - 1773 , - 2770 , - 575 , - 2484 , - 1201 , - 374 , - 3 , - 88 , - 629 , - 1626 , - 3079 , - 1340 , - 57 , - 2878 , - 2507 , - 2592 , - 3133 , - 482 , - 1935 , - 196 , - 2561 , - 1734 , - 1363 , - 1448 , - 1989 , - 2986 , - 791 , - 2700 , - 1417 , - 590 , - 219 , - 304 , - 845 , - 1842 , - 3295 , - 1556 , - 273 , - 3094 , - 2723 , - 2808 , - 3349 , - 698 , - 2151 , - 412 , - 2777 , - 1950 , - 1579 , - 1664 , - 2205 , - 3202 , - 1007 , - 2916 , - 1633 , - 806 , - 435 , - 520 , - 1061 , - 2058 , - 3511 , - 1772 , - 489 , - 3310 , - 2939 , - 3024 , - 3565 , - 914 , - 2367 , - 628 , - 2993 , - 2166 , - 1795 , - 1880 , - 2421 , - 3418 , - 1223 , - 3132 , - 1849 , - 1022 , - 651 , - 736 , - 1277 , - 2274 , - 79 , - 1988 , - 705 , - 3526 , - 3155 , - 3240 , - 133 , - 1130 , - 2583 , - 844 , - 3209 , - 2382 , - 2011 , - 2096 , - 2637 , - 3634 , - 1439 , - 3348 , - 2065 , - 1238 , - 867 , - 952 , - 1493 , - 2490 , - 295 , - 2204 , - 921 , - 94 , - 3371 , - 3456 , - 349 , - 1346 , - 2799 , - 1060 , - 3425 , - 2598 , - 2227 , - 2312 , - 2853 , - 202 , - 1655 , - 3564 , - 2281 , - 1454 , - 1083 , - 1168 , - 1709 , - 2706 , - 511 , - 2420 , - 1137 , - 310 , - 3587 , - 24 , - 565 , - 1562 , - 3015 , - 1276 , - 3641 , - 2814 , - 2443 , - 2528 , - 3069 , - 418 , - 1871 , - 132 , - 2497 , - 1670 , - 1299 , - 1384 , - 1925 , - 2922 , - 727 , - 2636 , - 1353 , - 526 , - 155 , - 240 , - 781 , - 1778 , - 3231 , - 1492 , - 209 , - 3030 , - 2659 , - 2744 , - 3285 , - 634 , - 2087 , - 348 , - 2713 , - 1886 , - 1515 , - 1600 , - 2141 , - 3138 , - 943 , - 2852 , - 1569 , - 742 , - 371 , - 456 , - 997 , - 1994 , - 3447 , - 1708 , - 425 , - 3246 , - 2875 , - 2960 , - 3501 , - 850 , - 2303 , - 564 , - 2929 , - 2102 , - 1731 , - 1816 , - 2357 , - 3354 , - 1159 , - 3068 , - 1785 , - 958 , - 587 , - 672 , - 1213 , - 2210 , - 15 , - 1924 , - 641 , - 3462 , - 3091 , - 3176 , - 69 , - 1066 , - 2519 , - 780 , - 3145 , - 2318 , - 1947 , - 2032 , - 2573 , - 3570 , - 1375 , - 3284 , - 2001 , - 1174 , - 803 , - 888 , - 1429 , - 2426 , - 231 , - 2140 , - 857 , - 30 , - 3307 , - 3392 , - 285 , - 1282 , - 2735 , - 996 , - 3361 , - 2534 , - 2163 , - 2248 , - 2789 , - 138 , - 1591 , - 3500 , - 2217 , - 1390 , - 1019 , - 1104 , - 1645 , - 2642 , - 447 , - 2356 , - 1073 , - 246 , - 3523 , - 3608 , - 501 , - 1498 , - 2951 , - 1212 , - 3577 , - 2750 , - 2379 , - 2464 , - 3005 , - 354 , - 1807 , - 68 , - 2433 , - 1606 , - 1235 , - 1320 , - 1861 , - 2858 , - 663 , - 2572 , - 1289 , - 462 , - 91 , - 176 , - 717 , - 1714 , - 3167 , - 1428 , - 145 , - 2966 , - 2595 , - 2680 , - 3221 , - 570 , - 2023 , - 284 , - 2649 , - 1822 , - 1451 , - 1536 , - 2077 , - 3074 , - 879 , - 2788 , - 1505 , - 678 , - 307 , - 392 , - 933 , - 1930 , - 3383 , - 1644 , - 361 , - 3182 , - 2811 , - 2896 , - 3437 , - 786 , - 2239 , - 500 , - 2865 , - 2038 , - 1667 , - 1752 , - 2293 , - 3290 , - 1095 , - 3004 , - 1721 , - 894 , - 523 , - 608 , - 1149 , - 2146 , - 3599 , - 1860 , - 577 , - 3398 , - 3027 , - 3112 , - 5 , - 1002 , - 2455 , - 716 , - 3081 , - 2254 , - 1883 , - 1968 , - 2509 , - 3506 , - 1311 , - 3220 , - 1937 , - 1110 , - 739 , - 824 , - 1365 , - 2362 , - 167 , - 2076 , - 793 , - 3614 , - 3243 , - 3328 , - 221 , - 1218 , - 2671 , - 932 , - 3297 , - 2470 , - 2099 , - 2184 , - 2725 , - 74 , - 1527 , - 3436 , - 2153 , - 1326 , - 955 , - 1040 , - 1581 , - 2578 , - 383 , - 2292 , - 1009 , - 182 , - 3459 , - 3544 , - 437 , - 1434 , - 2887 , - 1148 , - 3513 , - 2686 , - 2315 , - 2400 , - 2941 , - 290 , - 1743 , - 4 , - 2369 , - 1542 , - 1171 , - 1256 , - 1797 , - 2794 , - 599 , - 2508 , - 1225 , - 398 , - 27 , - 112 , - 653 , - 1650 , - 3103 , - 1364 , - 81 , - 2902 , - 2531 , - 2616 , - 3157 , - 506 , - 1959 , - 220 , - 2585 , - 1758 , - 1387 , - 1472 , - 2013 , - 3010 , - 815 , - 2724 , - 1441 , - 614 , - 243 , - 328 , - 869 , - 1866 , - 3319 , - 1580 , - 297 , - 3118 , - 2747 , - 2832 , - 3373 , - 722 , - 2175 , - 436 , - 2801 , - 1974 , - 1603 , - 1688 , - 2229 , - 3226 , - 1031 , - 2940 , - 1657 , - 830 , - 459 , - 544 , - 1085 , - 2082 , - 3535 , - 1796 , - 513 , - 3334 , - 2963 , - 3048 , - 3589 , - 938 , - 2391 , - 652 , - 3017 , - 2190 , - 1819 , - 1904 , - 2445 , - 3442 , - 1247 , - 3156 , - 1873 , - 1046 , - 675 , - 760 , - 1301 , - 2298 , - 103 , - 2012 , - 729 , - 3550 , - 3179 , - 3264 , - 157 , - 1154 , - 2607 , - 868 , - 3233 , - 2406 , - 2035 , - 2120 , - 2661 , - 10 , - 1463 , - 3372 , - 2089 , - 1262 , - 891 , - 976 , - 1517 , - 2514 , - 319 , - 2228 , - 945 , - 118 , - 3395 , - 3480 , - 373 , - 1370 , - 2823 , - 1084 , - 3449 , - 2622 , - 2251 , - 2336 , - 2877 , - 226 , - 1679 , - 3588 , - 2305 , - 1478 , - 1107 , - 1192 , - 1733 , - 2730 , - 535 , - 2444 , - 1161 , - 334 , - 3611 , - 48 , - 589 , - 1586 , - 3039 , - 1300 , - 17 , - 2838 , - 2467 , - 2552 , - 3093 , - 442 , - 1895 , - 156 , - 2521 , - 1694 , - 1323 , - 1408 , - 1949 , - 2946 , - 751 , - 2660 , - 1377 , - 550 , - 179 , - 264 , - 805 , - 1802 , - 3255 , - 1516 , - 233 , - 3054 , - 2683 , - 2768 , - 3309 , - 658 , - 2111 , - 372 , - 2737 , - 1910 , - 1539 , - 1624 , - 2165 , - 3162 , - 967 , - 2876 , - 1593 , - 766 , - 395 , - 480 , - 1021 , - 2018 , - 3471 , - 1732 , - 449 , - 3270 , - 2899 , - 2984 , - 3525 , - 874 , - 2327 , - 588 , - 2953 , - 2126 , - 1755 , - 1840 , - 2381 , - 3378 , - 1183 , - 3092 , - 1809 , - 982 , - 611 , - 696 , - 1237 , - 2234 , - 39 , - 1948 , - 665 , - 3486 , - 3115 , - 3200 , - 93 , - 1090 , - 2543 , - 804 , - 3169 , - 2342 , - 1971 , - 2056 , - 2597 , - 3594 , - 1399 , - 3308 , - 2025 , - 1198 , - 827 , - 912 , - 1453 , - 2450 , - 255 , - 2164 , - 881 , - 54 , - 3331 , - 3416 , - 309 , - 1306 , - 2759 , - 1020 , - 3385 , - 2558 , - 2187 , - 2272 , - 2813 , - 162 , - 1615 , - 3524 , - 2241 , - 1414 , - 1043 , - 1128 , - 1669 , - 2666 , - 471 , - 2380 , - 1097 , - 270 , - 3547 , - 3632 , - 525 , - 1522 , - 2975 , - 1236 , - 3601 , - 2774 , - 2403 , - 2488 , - 3029 , - 378 , - 1831 , - 92 , - 2457 , - 1630 , - 1259 , - 1344 , - 1885 , - 2882 , - 687 , - 2596 , - 1313 , - 486 , - 115 , - 200 , - 741 , - 1738 , - 3191 , - 1452 , - 169 , - 2990 , - 2619 , - 2704 , - 3245 , - 594 , - 2047 , - 308 , - 2673 , - 1846 , - 1475 , - 1560 , - 2101 , - 3098 , - 903 , - 2812 , - 1529 , - 702 , - 331 , - 416 , - 957 , - 1954 , - 3407 , - 1668 , - 385 , - 3206 , - 2835 , - 2920 , - 3461 , - 810 , - 2263 , - 524 , - 2889 , - 2062 , - 1691 , - 1776 , - 2317 , - 3314 , - 1119 , - 3028 , - 1745 , - 918 , - 547 , - 632 , - 1173 , - 2170 , - 3623 , - 1884 , - 601 , - 3422 , - 3051 , - 3136 , - 29 , - 1026 , - 2479 , - 740 , - 3105 , - 2278 , - 1907 , - 1992 , - 2533 , - 3530 , - 1335 , - 3244 , - 1961 , - 1134 , - 763 , - 848 , - 1389 , - 2386 , - 191 , - 2100 , - 817 , - 3638 , - 3267 , - 3352 , - 245 , - 1242 , - 2695 , - 956 , - 3321 , - 2494 , - 2123 , - 2208 , - 2749 , - 98 , - 1551 , - 3460 , - 2177 , - 1350 , - 979 , - 1064 , - 1605 , - 2602 , - 407 , - 2316 , - 1033 , - 206 , - 3483 , - 3568 , - 461 , - 1458 , - 2911 , - 1172 , - 3537 , - 2710 , - 2339 , - 2424 , - 2965 , - 314 , - 1767 , - 28 , - 2393 , - 1566 , - 1195 , - 1280 , - 1821 , - 2818 , - 623 , - 2532 , - 1249 , - 422 , - 51 , - 136 , - 677 , - 1674 , - 3127 , - 1388 , - 105 , - 2926 , - 2555 , - 2640 , - 3181 , - 530 , - 1983 , - 244 , - 2609 , - 1782 , - 1411 , - 1496 , - 2037 , - 3034 , - 839 , - 2748 , - 1465 , - 638 , - 267 , - 352 , - 893 , - 1890 , - 3343 , - 1604 , - 321 , - 3142 , - 2771 , - 2856 , - 3397 , - 746 , - 2199 , - 460 , - 2825 , - 1998 , - 1627 , - 1712 , - 2253 , - 3250 , - 1055 , - 2964 , - 1681 , - 854 , - 483 , - 568 , - 1109 , - 2106 , - 3559 , - 1820 , - 537 , - 3358 , - 2987 , - 3072 , - 3613 , - 962 , - 2415 , - 676 , - 3041 , - 2214 , - 1843 , - 1928 , - 2469 , - 3466 , - 1271 , - 3180 , - 1897 , - 1070 , - 699 , - 784 , - 1325 , - 2322 , - 127 , - 2036 , - 753 , - 3574 , - 3203 , - 3288 , - 181 , - 1178 , - 2631 , - 892 , - 3257 , - 2430 , - 2059 , - 2144 , - 2685 , - 34 , - 1487 , - 3396 , - 2113 , - 1286 , - 915 , - 1000 , - 1541 , - 2538 , - 343 , - 2252 , - 969 , - 142 , - 3419 , - 3504 , - 397 , - 1394 , - 2847 , - 1108 , - 3473 , - 2646 , - 2275 , - 2360 , - 2901 , - 250 , - 1703 , - 3612 , - 2329 , - 1502 , - 1131 , - 1216 , - 1757 , - 2754 , - 559 , - 2468 , - 1185 , - 358 , - 3635 , - 72 , - 613 , - 1610 , - 3063 , - 1324 , - 41 , - 2862 , - 2491 , - 2576 , - 3117 , - 466 , - 1919 , - 180 , - 2545 , - 1718 , - 1347 , - 1432 , - 1973 , - 2970 , - 775 , - 2684 , - 1401 , - 574 , - 203 , - 288 , - 829 , - 1826 , - 3279 , - 1540 , - 257 , - 3078 , - 2707 , - 2792 , - 3333 , - 682 , - 2135 , - 396 , - 2761 , - 1934 , - 1563 , - 1648 , - 2189 , - 3186 , - 991 , - 2900 , - 1617 , - 790 , - 419 , - 504 , - 1045 , - 2042 , - 3495 , - 1756 , - 473 , - 3294 , - 2923 , - 3008 , - 3549 , - 898 , - 2351 , - 612 , - 2977 , - 2150 , - 1779 , - 1864 , - 2405 , - 3402 , - 1207 , - 3116 , - 1833 , - 1006 , - 635 , - 720 , - 1261 , - 2258 , - 63 , - 1972 , - 689 , - 3510 , - 3139 , - 3224 , - 117 , - 1114 , - 2567 , - 828 , - 3193 , - 2366 , - 1995 , - 2080 , - 2621 , - 3618 , - 1423 , - 3332 , - 2049 , - 1222 , - 851 , - 936 , - 1477 , - 2474 , - 279 , - 2188 , - 905 , - 78 , - 3355 , - 3440 , - 333 , - 1330 , - 2783 , - 1044 , - 3409 , - 2582 , - 2211 , - 2296 , - 2837 , - 186 , - 1639 , - 3548 , - 2265 , - 1438 , - 1067 , - 1152 , - 1693 , - 2690 , - 495 , - 2404 , - 1121 , - 294 , - 3571 , - 8 , - 549 , - 1546 , - 2999 , - 1260 , - 3625 , - 2798 , - 2427 , - 2512 , - 3053 , - 402 , - 1855 , - 116 , - 2481 , - 1654 , - 1283 , - 1368 , - 1909 , - 2906 , - 711 , - 2620 , - 1337 , - 510 , - 139 , - 224 , - 765 , - 1762 , - 3215 , - 1476 , - 193 , - 3014 , - 2643 , - 2728 , - 3269 , - 618 , - 2071 , - 332 , - 2697 , - 1870 , - 1499 , - 1584 , - 2125 , - 3122 , - 927 , - 2836 , - 1553 , - 726 , - 355 , - 440 , - 981 , - 1978 , - 3431 , - 1692 , - 409 , - 3230 , - 2859 , - 2944 , - 3485 , - 834 , - 2287 , - 548 , - 2913 , - 2086 , - 1715 , - 1800 , - 2341 , - 3338 , - 1143 , - 3052 , - 1769 , - 942 , - 571 , - 656 , - 1197 , - 2194 , - 3647 , - 1908 , - 625 , - 3446 , - 3075 , - 3160 , - 53 , - 1050 , - 2503 , - 764 , - 3129 , - 2302 , - 1931 , - 2016 , - 2557 , - 3554 , - 1359 , - 3268 , - 1985 , - 1158 , - 787 , - 872 , - 1413 , - 2410 , - 215 , - 2124 , - 841 , - 14 , - 3291 , - 3376 , - 269 , - 1266 , - 2719 , - 980 , - 3345 , - 2518 , - 2147 , - 2232 , - 2773 , - 122 , - 1575 , - 3484 , - 2201 , - 1374 , - 1003 , - 1088 , - 1629 , - 2626 , - 431 , - 2340 , - 1057 , - 230 , - 3507 , - 3592 , - 485 , - 1482 , - 2935 , - 1196 , - 3561 , - 2734 , - 2363 , - 2448 , - 2989 , - 338 , - 1791 , - 52 , - 2417 , - 1590 , - 1219 , - 1304 , - 1845 , - 2842 , - 647 , - 2556 , - 1273 , - 446 , - 75 , - 160 , - 701 , - 1698 , - 3151 , - 1412 , - 129 , - 2950 , - 2579 , - 2664 , - 3205 , - 554 , - 2007 , - 268 , - 2633 , - 1806 , - 1435 , - 1520 , - 2061 , - 3058 , - 863 , - 2772 , - 1489 , - 662 , - 291 , - 376 , - 917 , - 1914 , - 3367 , - 1628 , - 345 , - 3166 , - 2795 , - 2880 , - 3421 , - 770 , - 2223 , - 484 , - 2849 , - 2022 , - 1651 , - 1736 , - 2277 , - 3274 , - 1079 , - 2988 , - 1705 , - 878 , - 507 , - 592 , - 1133 , - 2130 , - 3583 , - 1844 , - 561 , - 3382 , - 3011 , - 3096 , - 3637 , - 986 , - 2439 , - 700 , - 3065 , - 2238 , - 1867 , - 1952 , - 2493 , - 3490 , - 1295 , - 3204 , - 1921 , - 1094 , - 723 , - 808 , - 1349 , - 2346 , - 151 , - 2060 , - 777 , - 3598 , - 3227 , - 3312 , - 205 , - 1202 , - 2655 , - 916 , - 3281 , - 2454 , - 2083 , - 2168 , - 2709 , - 58 , - 1511 , - 3420 , - 2137 , - 1310 , - 939 , - 1024 , - 1565 , - 2562 , - 367 , - 2276 , - 993 , - 166 , - 3443 , - 3528 , - 421 , - 1418 , - 2871 , - 1132 , - 3497 , - 2670 , - 2299 , - 2384 , - 2925 , - 274 , - 1727 , - 3636 , - 2353 , - 1526 , - 1155 , - 1240 , - 1781 , - 2778 , - 583 , - 2492 , - 1209 , - 382 , - 11 , - 96 , - 637 , - 1634 , - 3087 , - 1348 , - 65 , - 2886 , - 2515 , - 2600 , - 3141 , - 490 , - 1943 , - 204 , - 2569 , - 1742 , - 1371 , - 1456 , - 1997 , - 2994 , - 799 , - 2708 , - 1425 , - 598 , - 227 , - 312 , - 853 , - 1850 , - 3303 , - 1564 , - 281 , - 3102 , - 2731 , - 2816 , - 3357 , - 706 , - 2159 , - 420 , - 2785 , - 1958 , - 1587 , - 1672 , - 2213 , - 3210 , - 1015 , - 2924 , - 1641 , - 814 , - 443 , - 528 , - 1069 , - 2066 , - 3519 , - 1780 , - 497 , - 3318 , - 2947 , - 3032 , - 3573 , - 922 , - 2375 , - 636 , - 3001 , - 2174 , - 1803 , - 1888 , - 2429 , - 3426 , - 1231 , - 3140 , - 1857 , - 1030 , - 659 , - 744 , - 1285 , - 2282 , - 87 , - 1996 , - 713 , - 3534 , - 3163 , - 3248 , - 141 , - 1138 , - 2591 , - 852 , - 3217 , - 2390 , - 2019 , - 2104 , - 2645 , - 3642 , - 1447 , - 3356 , - 2073 , - 1246 , - 875 , - 960 , - 1501 , - 2498 , - 303 , - 2212 , - 929 , - 102 , - 3379 , - 3464 , - 357 , - 1354 , - 2807 , - 1068 , - 3433 , - 2606 , - 2235 , - 2320 , - 2861 , - 210 , - 1663 , - 3572 , - 2289 , - 1462 , - 1091 , - 1176 , - 1717 , - 2714 , - 519 , - 2428 , - 1145 , - 318 , - 3595 , - 32 , - 573 , - 1570 , - 3023 , - 1284 , - 1 , - 2822 , - 2451 , - 2536 , - 3077 , - 426 , - 1879 , - 140 , - 2505 , - 1678 , - 1307 , - 1392 , - 1933 , - 2930 , - 735 , - 2644 , - 1361 , - 534 , - 163 , - 248 , - 789 , - 1786 , - 3239 , - 1500 , - 217 , - 3038 , - 2667 , - 2752 , - 3293 , - 642 , - 2095 , - 356 , - 2721 , - 1894 , - 1523 , - 1608 , - 2149 , - 3146 , - 951 , - 2860 , - 1577 , - 750 , - 379 , - 464 , - 1005 , - 2002 , - 3455 , - 1716 , - 433 , - 3254 , - 2883 , - 2968 , - 3509 , - 858 , - 2311 , - 572 , - 2937 , - 2110 , - 1739 , - 1824 , - 2365 , - 3362 , - 1167 , - 3076 , - 1793 , - 966 , - 595 , - 680 , - 1221 , - 2218 , - 23 , - 1932 , - 649 , - 3470 , - 3099 , - 3184 , - 77 , - 1074 , - 2527 , - 788 , - 3153 , - 2326 , - 1955 , - 2040 , - 2581 , - 3578 , - 1383 , - 3292 , - 2009 , - 1182 , - 811 , - 896 , - 1437 , - 2434 , - 239 , - 2148 , - 865 , - 38 , - 3315 , - 3400 , - 293 , - 1290 , - 2743 , - 1004 , - 3369 , - 2542 , - 2171 , - 2256 , - 2797 , - 146 , - 1599 , - 3508 , - 2225 , - 1398 , - 1027 , - 1112 , - 1653 , - 2650 , - 455 , - 2364 , - 1081 , - 254 , - 3531 , - 3616 , - 509 , - 1506 , - 2959 , - 1220 , - 3585 , - 2758 , - 2387 , - 2472 , - 3013 , - 362 , - 1815 , - 76 , - 2441 , - 1614 , - 1243 , - 1328 , - 1869 , - 2866 , - 671 , - 2580 , - 1297 , - 470 , - 99 , - 184 , - 725 , - 1722 , - 3175 , - 1436 , - 153 , - 2974 , - 2603 , - 2688 , - 3229 , - 578 , - 2031 , - 292 , - 2657 , - 1830 , - 1459 , - 1544 , - 2085 , - 3082 , - 887 , - 2796 , - 1513 , - 686 , - 315 , - 400 , - 941 , - 1938 , - 3391 , - 1652 , - 369 , - 3190 , - 2819 , - 2904 , - 3445 , - 794 , - 2247 , - 508 , - 2873 , - 2046 , - 1675 , - 1760 , - 2301 , - 3298 , - 1103 , - 3012 , - 1729 , - 902 , - 531 , - 616 , - 1157 , - 2154 , - 3607 , - 1868 , - 585 , - 3406 , - 3035 , - 3120 , - 13 , - 1010 , - 2463 , - 724 , - 3089 , - 2262 , - 1891 , - 1976 , - 2517 , - 3514 , - 1319 , - 3228 , - 1945 , - 1118 , - 747 , - 832 , - 1373 , - 2370 , - 175 , - 2084 , - 801 , - 3622 , - 3251 , - 3336 , - 229 , - 1226 , - 2679 , - 940 , - 3305 , - 2478 , - 2107 , - 2192 , - 2733 , - 82 , - 1535 , - 3444 , - 2161 , - 1334 , - 963 , - 1048 , - 1589 , - 2586 , - 391 , - 2300 , - 1017 , - 190 , - 3467 , - 3552 , - 445 , - 1442 , - 2895 , - 1156 , - 3521 , - 2694 , - 2323 , - 2408 , - 2949 , - 298 , - 1751 , - 12 , - 2377 , - 1550 , - 1179 , - 1264 , - 1805 , - 2802 , - 607 , - 2516 , - 1233 , - 406 , - 35 , - 120 , - 661 , - 1658 , - 3111 , - 1372 , - 89 , - 2910 , - 2539 , - 2624 , - 3165 , - 514 , - 1967 , - 228 , - 2593 , - 1766 , - 1395 , - 1480 , - 2021 , - 3018 , - 823 , - 2732 , - 1449 , - 622 , - 251 , - 336 , - 877 , - 1874 , - 3327 , - 1588 , - 305 , - 3126 , - 2755 , - 2840 , - 3381 , - 730 , - 2183 , - 444 , - 2809 , - 1982 , - 1611 , - 1696 , - 2237 , - 3234 , - 1039 , - 2948 , - 1665 , - 838 , - 467 , - 552 , - 1093 , - 2090 , - 3543 , - 1804 , - 521 , - 3342 , - 2971 , - 3056 , - 3597 , - 946 , - 2399 , - 660 , - 3025 , - 2198 , - 1827 , - 1912 , - 2453 , - 3450 , - 1255 , - 3164 , - 1881 , - 1054 , - 683 , - 768 , - 1309 , - 2306 , - 111 , - 2020 , - 737 , - 3558 , - 3187 , - 3272 , - 165 , - 1162 , - 2615 , - 876 , - 3241 , - 2414 , - 2043 , - 2128 , - 2669 , - 18 , - 1471 , - 3380 , - 2097 , - 1270 , - 899 , - 984 , - 1525 , - 2522 , - 327 , - 2236 , - 953 , - 126 , - 3403 , - 3488 , - 381 , - 1378 , - 2831 , - 1092 , - 3457 , - 2630 , - 2259 , - 2344 , - 2885 , - 234 , - 1687 , - 3596 , - 2313 , - 1486 , - 1115 , - 1200 , - 1741 , - 2738 , - 543 , - 2452 , - 1169 , - 342 , - 3619 , - 56 , - 597 , - 1594 , - 3047 , - 1308 , - 25 , - 2846 , - 2475 , - 2560 , - 3101 , - 450 , - 1903 , - 164 , - 2529 , - 1702 , - 1331 , - 1416 , - 1957 , - 2954 , - 759 , - 2668 , - 1385 , - 558 , - 187 , - 272 , - 813 , - 1810 , - 3263 , - 1524 , - 241 , - 3062 , - 2691 , - 2776 , - 3317 , - 666 , - 2119 , - 380 , - 2745 , - 1918 , - 1547 , - 1632 , - 2173 , - 3170 , - 975 , - 2884 , - 1601 , - 774 , - 403 , - 488 , - 1029 , - 2026 , - 3479 , - 1740 , - 457 , - 3278 , - 2907 , - 2992 , - 3533 , - 882 , - 2335 , - 596 , - 2961 , - 2134 , - 1763 , - 1848 , - 2389 , - 3386 , - 1191 , - 3100 , - 1817 , - 990 , - 619 , - 704 , - 1245 , - 2242 , - 47 , - 1956 , - 673 , - 3494 , - 3123 , - 3208 , - 101 , - 1098 , - 2551 , - 812 , - 3177 , - 2350 , - 1979 , - 2064 , - 2605 , - 3602 , - 1407 , - 3316 , - 2033 , - 1206 , - 835 , - 920 , - 1461 , - 2458 , - 263 , - 2172 , - 889 , - 62 , - 3339 , - 3424 , - 317 , - 1314 , - 2767 , - 1028 , - 3393 , - 2566 , - 2195 , - 2280 , - 2821 , - 170 , - 1623 , - 3532 , - 2249 , - 1422 , - 1051 , - 1136 , - 1677 , - 2674 , - 479 , - 2388 , - 1105 , - 278 , - 3555 , - 3640 , - 533 , - 1530 , - 2983 , - 1244 , - 3609 , - 2782 , - 2411 , - 2496 , - 3037 , - 386 , - 1839 , - 100 , - 2465 , - 1638 , - 1267 , - 1352 , - 1893 , - 2890 , - 695 , - 2604 , - 1321 , - 494 , - 123 , - 208 , - 749 , - 1746 , - 3199 , - 1460 , - 177 , - 2998 , - 2627 , - 2712 , - 3253 , - 602 , - 2055 , - 316 , - 2681 , - 1854 , - 1483 , - 1568 , - 2109 , - 3106 , - 911 , - 2820 , - 1537 , - 710 , - 339 , - 424 , - 965 , - 1962 , - 3415 , - 1676 , - 393 , - 3214 , - 2843 , - 2928 , - 3469 , - 818 , - 2271 , - 532 , - 2897 , - 2070 , - 1699 , - 1784 , - 2325 , - 3322 , - 1127 , - 3036 , - 1753 , - 926 , - 555 , - 640 , - 1181 , - 2178 , - 3631 , - 1892 , - 609 , - 3430 , - 3059 , - 3144 , - 37 , - 1034 , - 2487 , - 748 , - 3113 , - 2286 , - 1915 , - 2000 , - 2541 , - 3538 , - 1343 , - 3252 , - 1969 , - 1142 , - 771 , - 856 , - 1397 , - 2394 , - 199 , - 2108 , - 825 , - 3646 , - 3275 , - 3360 , - 253 , - 1250 , - 2703 , - 964 , - 3329 , - 2502 , - 2131 , - 2216 , - 2757 , - 106 , - 1559 , - 3468 , - 2185 , - 1358 , - 987 , - 1072 , - 1613 , - 2610 , - 415 , - 2324 , - 1041 , - 214 , - 3491 , - 3576 , - 469 , - 1466 , - 2919 , - 1180 , - 3545 , - 2718 , - 2347 , - 2432 , - 2973 , - 322 , - 1775 , - 36 , - 2401 , - 1574 , - 1203 , - 1288 , - 1829 , - 2826 , - 631 , - 2540 , - 1257 , - 430 , - 59 , - 144 , - 685 , - 1682 , - 3135 , - 1396 , - 113 , - 2934 , - 2563 , - 2648 , - 3189 , - 538 , - 1991 , - 252 , - 2617 , - 1790 , - 1419 , - 1504 , - 2045 , - 3042 , - 847 , - 2756 , - 1473 , - 646 , - 275 , - 360 , - 901 , - 1898 , - 3351 , - 1612 , - 329 , - 3150 , - 2779 , - 2864 , - 3405 , - 754 , - 2207 , - 468 , - 2833 , - 2006 , - 1635 , - 1720 , - 2261 , - 3258 , - 1063 , - 2972 , - 1689 , - 862 , - 491 , - 576 , - 1117 , - 2114 , - 3567 , - 1828 , - 545 , - 3366 , - 2995 , - 3080 , - 3621 , - 970 , - 2423 , - 684 , - 3049 , - 2222 , - 1851 , - 1936 , - 2477 , - 3474 , - 1279 , - 3188 , - 1905 , - 1078 , - 707 , - 792 , - 1333 , - 2330 , - 135 , - 2044 , - 761 , - 3582 , - 3211 , - 3296 , - 189 , - 1186 , - 2639 , - 900 , - 3265 , - 2438 , - 2067 , - 2152 , - 2693 , - 42 , - 1495 , - 3404 , - 2121 , - 1294 , - 923 , - 1008 , - 1549 , - 2546 , - 351 , - 2260 , - 977 , - 150 , - 3427 , - 3512 , - 405 , - 1402 , - 2855 , - 1116 , - 3481 , - 2654 , - 2283 , - 2368 , - 2909 , - 258 , - 1711 , - 3620 , - 2337 , - 1510 , - 1139 , - 1224 , - 1765 , - 2762 , - 567 , - 2476 , - 1193 , - 366 , - 3643 , - 80 , - 621 , - 1618 , - 3071 , - 1332 , - 49 , - 2870 , - 2499 , - 2584 , - 3125 , - 474 , - 1927 , - 188 , - 2553 , - 1726 , - 1355 , - 1440 , - 1981 , - 2978 , - 783 , - 2692 , - 1409 , - 582 , - 211 , - 296 , - 837 , - 1834 , - 3287 , - 1548 , - 265 , - 3086 , - 2715 , - 2800 , - 3341 , - 690 , - 2143 , - 404 , - 2769 , - 1942 , - 1571 , - 1656 , - 2197 , - 3194 , - 999 , - 2908 , - 1625 , - 798 , - 427 , - 512 , - 1053 , - 2050 , - 3503 , - 1764 , - 481 , - 3302 , - 2931 , - 3016 , - 3557 , - 906 , - 2359 , - 620 , - 2985 , - 2158 , - 1787 , - 1872 , - 2413 , - 3410 , - 1215 , - 3124 , - 1841 , - 1014 , - 643 , - 728 , - 1269 , - 2266 , - 71 , - 1980 , - 697 , - 3518 , - 3147 , - 3232 , - 125 , - 1122 , - 2575 , - 836 , - 3201 , - 2374 , - 2003 , - 2088 , - 2629 , - 3626 , - 1431 , - 3340 , - 2057 , - 1230 , - 859 , - 944 , - 1485 , - 2482 , - 287 , - 2196 , - 913 , - 86 , - 3363 , - 3448 , - 341 , - 1338 , - 2791 , - 1052 , - 3417 , - 2590 , - 2219 , - 2304 , - 2845 , - 194 , - 1647 , - 3556 , - 2273 , - 1446 , - 1075 , - 1160 , - 1701 , - 2698 , - 503 , - 2412 , - 1129 , - 302 , - 3579 , - 16 , - 557 , - 1554 , - 3007 , - 1268 , - 3633 , - 2806 , - 2435 , - 2520 , - 3061 , - 410 , - 1863 , - 124 , - 2489 , - 1662 , - 1291 , - 1376 , - 1917 , - 2914 , - 719 , - 2628 , - 1345 , - 518 , - 147 , - 232 , - 773 , - 1770 , - 3223 , - 1484 , - 201 , - 3022 , - 2651 , - 2736 , - 3277 , - 626 , - 2079 , - 340 , - 2705 , - 1878 , - 1507 , - 1592 , - 2133 , - 3130 , - 935 , - 2844 , - 1561 , - 734 , - 363 , - 448 , - 989 , - 1986 , - 3439 , - 1700 , - 417 , - 3238 , - 2867 , - 2952 , - 3493 , - 842 , - 2295 , - 556 , - 2921 , - 2094 , - 1723 , - 1808 , - 2349 , - 3346 , - 1151 , - 3060 , - 1777 , - 950 , - 579 , - 664 , - 1205 , - 2202 , - 7 , - 1916 , - 633 , - 3454 , - 3083 , - 3168 , - 61 , - 1058 , - 2511 , - 772 , - 3137 , - 2310 , - 1939 , - 2024 , - 2565 , - 3562 , - 1367 , - 3276 , - 1993 , - 1166 , - 795 , - 880 , - 1421 , - 2418 , - 223 , - 2132 , - 849 , - 22 , - 3299 , - 3384 , - 277 , - 1274 , - 2727 , - 988 , - 3353 , - 2526 , - 2155 , - 2240 , - 2781 , - 130 , - 1583 , - 3492 , - 2209 , - 1382 , - 1011 , - 1096 , - 1637 , - 2634 , - 439 , - 2348 , - 1065 , - 238 , - 3515 , - 3600 , - 493 , - 1490 , - 2943 , - 1204 , - 3569 , - 2742 , - 2371 , - 2456 , - 2997 , - 346 , - 1799 , - 60 , - 2425 , - 1598 , - 1227 , - 1312 , - 1853 , - 2850 , - 655 , - 2564 , - 1281 , - 454 , - 83 , - 168 , - 709 , - 1706 , - 3159 , - 1420 , - 137 , - 2958 , - 2587 , - 2672 , - 3213 , - 562 , - 2015 , - 276 , - 2641 , - 1814 , - 1443 , - 1528 , - 2069 , - 3066 , - 871 , - 2780 , - 1497 , - 670 , - 299 , - 384 , - 925 , - 1922 , - 3375 , - 1636 , - 353 , - 3174 , - 2803 , - 2888 , - 3429 , - 778 , - 2231 , - 492 , - 2857 , - 2030 , - 1659 , - 1744 , - 2285 , - 3282 , - 1087 , - 2996 , - 1713 , - 886 , - 515 , - 600 , - 1141 , - 2138 , - 3591 , - 1852 , - 569 , - 3390 , - 3019 , - 3104 , - 3645 , - 994 , - 2447 , - 708 , - 3073 , - 2246 , - 1875 , - 1960 , - 2501 , - 3498 , - 1303 , - 3212 , - 1929 , - 1102 , - 731 , - 816 , - 1357 , - 2354 , - 159 , - 2068 , - 785 , - 3606 , - 3235 , - 3320 , - 213 , - 1210 , - 2663 , - 924 , - 3289 , - 2462 , - 2091 , - 2176 , - 2717 , - 66 , - 1519 , - 3428 , - 2145 , - 1318 , - 947 , - 1032 , - 1573 , - 2570 , - 375 , - 2284 , - 1001 , - 174 , - 3451 , - 3536 , - 429 , - 1426 , - 2879 , - 1140 , - 3505 , - 2678 , - 2307 , - 2392 , - 2933 , - 282 , - 1735 , - 3644 , - 2361 , - 1534 , - 1163 , - 1248 , - 1789 , - 2786 , - 591 , - 2500 , - 1217 , - 390 , - 19 , - 104 , - 645 , - 1642 , - 3095 , - 1356 , - 73 , - 2894 , - 2523 , - 2608 , - 3149 , - 498 , - 1951 , - 212 , - 2577 , - 1750 , - 1379 , - 1464 , - 2005 , - 3002 , - 807 , - 2716 , - 1433 , - 606 , - 235 , - 320 , - 861 , - 1858 , - 3311 , - 1572 , - 289 , - 3110 , - 2739 , - 2824 , - 3365 , - 714 , - 2167 , - 428 , - 2793 , - 1966 , - 1595 , - 1680 , - 2221 , - 3218 , - 1023 , - 2932 , - 1649 , - 822 , - 451 , - 536 , - 1077 , - 2074 , - 3527 , - 1788 , - 505 , - 3326 , - 2955 , - 3040 , - 3581 , - 930 , - 2383 , - 644 , - 3009 , - 2182 , - 1811 , - 1896 , - 2437 , - 3434 , - 1239 , - 3148 , - 1865 , - 1038 , - 667 , - 752 , - 1293 , - 2290 , - 95 , - 2004 , - 721 , - 3542 , - 3171 , - 3256 , - 149 , - 1146 , - 2599 , - 860 , - 3225 , - 2398 , - 2027 , - 2112 , - 2653 , - 2 , - 1455 , - 3364 , - 2081 , - 1254 , - 883 , - 968 , - 1509 , - 2506 , - 311 , - 2220 , - 937 , - 110 , - 3387 , - 3472 , - 365 , - 1362 , - 2815 , - 1076 , - 3441 , - 2614 , - 2243 , - 2328 , - 2869 , - 218 , - 1671 , - 3580 , - 2297 , - 1470 , - 1099 , - 1184 , - 1725 , - 2722 , - 527 , - 2436 , - 1153 , - 326 , - 3603 , - 40 , - 581 , - 1578 , - 3031 , - 1292 , - 9 , - 2830 , - 2459 , - 2544 , - 3085 , - 434 , - 1887 , - 148 , - 2513 , - 1686 , - 1315 , - 1400 , - 1941 , - 2938 , - 743 , - 2652 , - 1369 , - 542 , - 171 , - 256 , - 797 , - 1794 , - 3247 , - 1508 , - 225 , - 3046 , - 2675 , - 2760 , - 3301 , - 650 , - 2103 , - 364 , - 2729 , - 1902 , - 1531 , - 1616 , - 2157 , - 3154 , - 959 , - 2868 , - 1585 , - 758 , - 387 , - 472 , - 1013 , - 2010 , - 3463 , - 1724 , - 441 , - 3262 , - 2891 , - 2976 , - 3517 , - 866 , - 2319 , - 580 , - 2945 , - 2118 , - 1747 , - 1832 , - 2373 , - 3370 , - 1175 , - 3084 , - 1801 , - 974 , - 603 , - 688 , - 1229 , - 2226 , - 31 , - 1940 , - 657 , - 3478 , - 3107 , - 3192 , - 85 , - 1082 , - 2535 , - 796 , - 3161 , - 2334 , - 1963 , - 2048 , - 2589 , - 3586 , - 1391 , - 3300 , - 2017 , - 1190 , - 819 , - 904 , - 1445 , - 2442 , - 247 , - 2156 , - 873 , - 46 , - 3323 , - 3408 , - 301 , - 1298 , - 2751 , - 1012 , - 3377 , - 2550 , - 2179 , - 2264 , - 2805 , - 154 , - 1607 , - 3516 , - 2233 , - 1406 , - 1035 , - 1120 , - 1661 , - 2658 , - 463 , - 2372 , - 1089 , - 262 , - 3539 , - 3624 , - 517 , - 1514 , - 2967 , - 1228 , - 3593 , - 2766 , - 2395 , - 2480 , - 3021 , - 370 , - 1823 , - 84 , - 2449 , - 1622 , - 1251 , - 1336 , - 1877 , - 2874 , - 679 , - 2588 , - 1305 , - 478 , - 107 , - 192 , - 733 , - 1730 , - 3183 , - 1444 , - 161 , - 2982 , - 2611 , - 2696 , - 3237 , - 586 , - 2039 , - 300 , - 2665 , - 1838 , - 1467 , - 1552 , - 2093 , - 3090 , - 895 , - 2804 , - 1521 , - 694 , - 323 , - 408 , - 949 , - 1946 , - 3399 , - 1660 , - 377 , - 3198 , - 2827 , - 2912 , - 3453 , - 802 , - 2255 , - 516 , - 2881 , - 2054 , - 1683 , - 1768 , - 2309 , - 3306 , - 1111 , - 3020 , - 1737 , - 910 , - 539 , - 624 , - 1165 , - 2162 , - 3615 , - 1876 , - 593 , - 3414 , - 3043 , - 3128 , - 21 , - 1018 , - 2471 , - 732 , - 3097 , - 2270 , - 1899 , - 1984 , - 2525 , - 3522 , - 1327 , - 3236 , - 1953 , - 1126 , - 755 , - 840 , - 1381 , - 2378 , - 183 , - 2092 , - 809 , - 3630 , - 3259 , - 3344 , - 237 , - 1234 , - 2687 , - 948 , - 3313 , - 2486 , - 2115 , - 2200 , - 2741 , - 90 , - 1543 , - 3452 , - 2169 , - 1342 , - 971 , - 1056 , - 1597 , - 2594 , - 399 , - 2308 , - 1025 , - 198 , - 3475 , - 3560 , - 453 , - 1450 , - 2903 , - 1164 , - 3529 , - 2702 , - 2331 , - 2416 , - 2957 , - 306 , - 1759 , - 20 , - 2385 , - 1558 , - 1187 , - 1272 , - 1813 , - 2810 , - 615 , - 2524 , - 1241 , - 414 , - 43 , - 128 , - 669 , - 1666 , - 3119 , - 1380 , - 97 , - 2918 , - 2547 , - 2632 , - 3173 , - 522 , - 1975 , - 236 , - 2601 , - 1774 , - 1403 , - 1488 , - 2029 , - 3026 , - 831 , - 2740 , - 1457 , - 630 , - 259 , - 344 , - 885 , - 1882 , - 3335 , - 1596 , - 313 , - 3134 , - 2763 , - 2848 , - 3389 , - 738 , - 2191 , - 452 , - 2817 , - 1990 , - 1619 , - 1704 , - 2245 , - 3242 , - 1047 , - 2956 , - 1673 , - 846 , - 475 , - 560 , - 1101 , - 2098 , - 3551 , - 1812 , - 529 , - 3350 , - 2979 , - 3064 , - 3605 , - 954 , - 2407 , - 668 , - 3033 , - 2206 , - 1835 , - 1920 , - 2461 , - 3458 , - 1263 , - 3172 , - 1889 , - 1062 , - 691 , - 776 , - 1317 , - 2314 , - 119 , - 2028 , - 745 , - 3566 , - 3195 , - 3280 , - 173 , - 1170 , - 2623 , - 884 , - 3249 , - 2422 , - 2051 , - 2136 , - 2677 , - 26 , - 1479 , - 3388 , - 2105 , - 1278 , - 907 , - 992 , - 1533 , - 2530 , - 335 , - 2244 , - 961 , - 134 , - 3411 , - 3496 , - 389 , - 1386 , - 2839 , - 1100 , - 3465 , - 2638 , - 2267 , - 2352 , - 2893 , - 242 , - 1695 , - 3604 , - 2321 , - 1494 , - 1123 , - 1208 , - 1749 , - 2746 , - 551 , - 2460 , - 1177 , - 350 , - 3627 , - 64 , - 605 , - 1602 , - 3055 , - 1316 , - 33 , - 2854 , - 2483 , - 2568 , - 3109 , - 458 , - 1911 , - 172 , - 2537 , - 1710 , - 1339 , - 1424 , - 1965 , - 2962 , - 767 , - 2676 , - 1393 , - 566 , - 195 , - 280 , - 821 , - 1818 , - 3271 , - 1532 , - 249 , - 3070 , - 2699 , - 2784 , - 3325 , - 674 , - 2127 , - 388 , - 2753 , - 1926 , - 1555 , - 1640 , - 2181 , - 3178 , - 983 , - 2892 , - 1609 , - 782 , - 411 , - 496 , - 1037 , - 2034 , - 3487 , - 1748 , - 465 , - 3286 , - 2915 , - 3000 , - 3541 , - 890 , - 2343 , - 604 , - 2969 , - 2142 , - 1771 , - 1856 , - 2397 , - 3394 , - 1199 , - 3108 , - 1825 , - 998 , - 627 , - 712 , - 1253 , - 2250 , - 55 , - 1964 , - 681 , - 3502 , - 3131 , - 3216 , - 109 , - 1106 , - 2559 , - 820 , - 3185 , - 2358 , - 1987 , - 2072 , - 2613 , - 3610 , - 1415 , - 3324 , - 2041 , - 1214 , - 843 , - 928 , - 1469 , - 2466 , - 271 , - 2180 , - 897 , - 70 , - 3347 , - 3432 , - 325 , - 1322 , - 2775 , - 1036 , - 3401 , - 2574 , - 2203 , - 2288 , - 2829 , - 178 , - 1631 , - 3540 , - 2257 , - 1430 , - 1059 , - 1144 , - 1685 , - 2682 , - 487 , - 2396 , - 1113 , - 286 , - 3563 , - 0 , - 503 , - 1470 , - 2901 , - 1084 , - 3443 , - 2554 , - 2129 , - 2168 , - 2671 , - 3638 , - 1357 , - 3252 , - 1899 , - 1010 , - 585 , - 624 , - 1127 , - 2094 , - 3525 , - 1708 , - 355 , - 3178 , - 2753 , - 2792 , - 3295 , - 550 , - 1981 , - 164 , - 2523 , - 1634 , - 1209 , - 1248 , - 1751 , - 2718 , - 437 , - 2332 , - 979 , - 90 , - 3377 , - 3416 , - 207 , - 1174 , - 2605 , - 788 , - 3147 , - 2258 , - 1833 , - 1872 , - 2375 , - 3342 , - 1061 , - 2956 , - 1603 , - 714 , - 289 , - 328 , - 831 , - 1798 , - 3229 , - 1412 , - 59 , - 2882 , - 2457 , - 2496 , - 2999 , - 254 , - 1685 , - 3580 , - 2227 , - 1338 , - 913 , - 952 , - 1455 , - 2422 , - 141 , - 2036 , - 683 , - 3506 , - 3081 , - 3120 , - 3623 , - 878 , - 2309 , - 492 , - 2851 , - 1962 , - 1537 , - 1576 , - 2079 , - 3046 , - 765 , - 2660 , - 1307 , - 418 , - 3705 , - 32 , - 535 , - 1502 , - 2933 , - 1116 , - 3475 , - 2586 , - 2161 , - 2200 , - 2703 , - 3670 , - 1389 , - 3284 , - 1931 , - 1042 , - 617 , - 656 , - 1159 , - 2126 , - 3557 , - 1740 , - 387 , - 3210 , - 2785 , - 2824 , - 3327 , - 582 , - 2013 , - 196 , - 2555 , - 1666 , - 1241 , - 1280 , - 1783 , - 2750 , - 469 , - 2364 , - 1011 , - 122 , - 3409 , - 3448 , - 239 , - 1206 , - 2637 , - 820 , - 3179 , - 2290 , - 1865 , - 1904 , - 2407 , - 3374 , - 1093 , - 2988 , - 1635 , - 746 , - 321 , - 360 , - 863 , - 1830 , - 3261 , - 1444 , - 91 , - 2914 , - 2489 , - 2528 , - 3031 , - 286 , - 1717 , - 3612 , - 2259 , - 1370 , - 945 , - 984 , - 1487 , - 2454 , - 173 , - 2068 , - 715 , - 3538 , - 3113 , - 3152 , - 3655 , - 910 , - 2341 , - 524 , - 2883 , - 1994 , - 1569 , - 1608 , - 2111 , - 3078 , - 797 , - 2692 , - 1339 , - 450 , - 25 , - 64 , - 567 , - 1534 , - 2965 , - 1148 , - 3507 , - 2618 , - 2193 , - 2232 , - 2735 , - 3702 , - 1421 , - 3316 , - 1963 , - 1074 , - 649 , - 688 , - 1191 , - 2158 , - 3589 , - 1772 , - 419 , - 3242 , - 2817 , - 2856 , - 3359 , - 614 , - 2045 , - 228 , - 2587 , - 1698 , - 1273 , - 1312 , - 1815 , - 2782 , - 501 , - 2396 , - 1043 , - 154 , - 3441 , - 3480 , - 271 , - 1238 , - 2669 , - 852 , - 3211 , - 2322 , - 1897 , - 1936 , - 2439 , - 3406 , - 1125 , - 3020 , - 1667 , - 778 , - 353 , - 392 , - 895 , - 1862 , - 3293 , - 1476 , - 123 , - 2946 , - 2521 , - 2560 , - 3063 , - 318 , - 1749 , - 3644 , - 2291 , - 1402 , - 977 , - 1016 , - 1519 , - 2486 , - 205 , - 2100 , - 747 , - 3570 , - 3145 , - 3184 , - 3687 , - 942 , - 2373 , - 556 , - 2915 , - 2026 , - 1601 , - 1640 , - 2143 , - 3110 , - 829 , - 2724 , - 1371 , - 482 , - 57 , - 96 , - 599 , - 1566 , - 2997 , - 1180 , - 3539 , - 2650 , - 2225 , - 2264 , - 2767 , - 22 , - 1453 , - 3348 , - 1995 , - 1106 , - 681 , - 720 , - 1223 , - 2190 , - 3621 , - 1804 , - 451 , - 3274 , - 2849 , - 2888 , - 3391 , - 646 , - 2077 , - 260 , - 2619 , - 1730 , - 1305 , - 1344 , - 1847 , - 2814 , - 533 , - 2428 , - 1075 , - 186 , - 3473 , - 3512 , - 303 , - 1270 , - 2701 , - 884 , - 3243 , - 2354 , - 1929 , - 1968 , - 2471 , - 3438 , - 1157 , - 3052 , - 1699 , - 810 , - 385 , - 424 , - 927 , - 1894 , - 3325 , - 1508 , - 155 , - 2978 , - 2553 , - 2592 , - 3095 , - 350 , - 1781 , - 3676 , - 2323 , - 1434 , - 1009 , - 1048 , - 1551 , - 2518 , - 237 , - 2132 , - 779 , - 3602 , - 3177 , - 3216 , - 7 , - 974 , - 2405 , - 588 , - 2947 , - 2058 , - 1633 , - 1672 , - 2175 , - 3142 , - 861 , - 2756 , - 1403 , - 514 , - 89 , - 128 , - 631 , - 1598 , - 3029 , - 1212 , - 3571 , - 2682 , - 2257 , - 2296 , - 2799 , - 54 , - 1485 , - 3380 , - 2027 , - 1138 , - 713 , - 752 , - 1255 , - 2222 , - 3653 , - 1836 , - 483 , - 3306 , - 2881 , - 2920 , - 3423 , - 678 , - 2109 , - 292 , - 2651 , - 1762 , - 1337 , - 1376 , - 1879 , - 2846 , - 565 , - 2460 , - 1107 , - 218 , - 3505 , - 3544 , - 335 , - 1302 , - 2733 , - 916 , - 3275 , - 2386 , - 1961 , - 2000 , - 2503 , - 3470 , - 1189 , - 3084 , - 1731 , - 842 , - 417 , - 456 , - 959 , - 1926 , - 3357 , - 1540 , - 187 , - 3010 , - 2585 , - 2624 , - 3127 , - 382 , - 1813 , - 3708 , - 2355 , - 1466 , - 1041 , - 1080 , - 1583 , - 2550 , - 269 , - 2164 , - 811 , - 3634 , - 3209 , - 3248 , - 39 , - 1006 , - 2437 , - 620 , - 2979 , - 2090 , - 1665 , - 1704 , - 2207 , - 3174 , - 893 , - 2788 , - 1435 , - 546 , - 121 , - 160 , - 663 , - 1630 , - 3061 , - 1244 , - 3603 , - 2714 , - 2289 , - 2328 , - 2831 , - 86 , - 1517 , - 3412 , - 2059 , - 1170 , - 745 , - 784 , - 1287 , - 2254 , - 3685 , - 1868 , - 515 , - 3338 , - 2913 , - 2952 , - 3455 , - 710 , - 2141 , - 324 , - 2683 , - 1794 , - 1369 , - 1408 , - 1911 , - 2878 , - 597 , - 2492 , - 1139 , - 250 , - 3537 , - 3576 , - 367 , - 1334 , - 2765 , - 948 , - 3307 , - 2418 , - 1993 , - 2032 , - 2535 , - 3502 , - 1221 , - 3116 , - 1763 , - 874 , - 449 , - 488 , - 991 , - 1958 , - 3389 , - 1572 , - 219 , - 3042 , - 2617 , - 2656 , - 3159 , - 414 , - 1845 , - 28 , - 2387 , - 1498 , - 1073 , - 1112 , - 1615 , - 2582 , - 301 , - 2196 , - 843 , - 3666 , - 3241 , - 3280 , - 71 , - 1038 , - 2469 , - 652 , - 3011 , - 2122 , - 1697 , - 1736 , - 2239 , - 3206 , - 925 , - 2820 , - 1467 , - 578 , - 153 , - 192 , - 695 , - 1662 , - 3093 , - 1276 , - 3635 , - 2746 , - 2321 , - 2360 , - 2863 , - 118 , - 1549 , - 3444 , - 2091 , - 1202 , - 777 , - 816 , - 1319 , - 2286 , - 5 , - 1900 , - 547 , - 3370 , - 2945 , - 2984 , - 3487 , - 742 , - 2173 , - 356 , - 2715 , - 1826 , - 1401 , - 1440 , - 1943 , - 2910 , - 629 , - 2524 , - 1171 , - 282 , - 3569 , - 3608 , - 399 , - 1366 , - 2797 , - 980 , - 3339 , - 2450 , - 2025 , - 2064 , - 2567 , - 3534 , - 1253 , - 3148 , - 1795 , - 906 , - 481 , - 520 , - 1023 , - 1990 , - 3421 , - 1604 , - 251 , - 3074 , - 2649 , - 2688 , - 3191 , - 446 , - 1877 , - 60 , - 2419 , - 1530 , - 1105 , - 1144 , - 1647 , - 2614 , - 333 , - 2228 , - 875 , - 3698 , - 3273 , - 3312 , - 103 , - 1070 , - 2501 , - 684 , - 3043 , - 2154 , - 1729 , - 1768 , - 2271 , - 3238 , - 957 , - 2852 , - 1499 , - 610 , - 185 , - 224 , - 727 , - 1694 , - 3125 , - 1308 , - 3667 , - 2778 , - 2353 , - 2392 , - 2895 , - 150 , - 1581 , - 3476 , - 2123 , - 1234 , - 809 , - 848 , - 1351 , - 2318 , - 37 , - 1932 , - 579 , - 3402 , - 2977 , - 3016 , - 3519 , - 774 , - 2205 , - 388 , - 2747 , - 1858 , - 1433 , - 1472 , - 1975 , - 2942 , - 661 , - 2556 , - 1203 , - 314 , - 3601 , - 3640 , - 431 , - 1398 , - 2829 , - 1012 , - 3371 , - 2482 , - 2057 , - 2096 , - 2599 , - 3566 , - 1285 , - 3180 , - 1827 , - 938 , - 513 , - 552 , - 1055 , - 2022 , - 3453 , - 1636 , - 283 , - 3106 , - 2681 , - 2720 , - 3223 , - 478 , - 1909 , - 92 , - 2451 , - 1562 , - 1137 , - 1176 , - 1679 , - 2646 , - 365 , - 2260 , - 907 , - 18 , - 3305 , - 3344 , - 135 , - 1102 , - 2533 , - 716 , - 3075 , - 2186 , - 1761 , - 1800 , - 2303 , - 3270 , - 989 , - 2884 , - 1531 , - 642 , - 217 , - 256 , - 759 , - 1726 , - 3157 , - 1340 , - 3699 , - 2810 , - 2385 , - 2424 , - 2927 , - 182 , - 1613 , - 3508 , - 2155 , - 1266 , - 841 , - 880 , - 1383 , - 2350 , - 69 , - 1964 , - 611 , - 3434 , - 3009 , - 3048 , - 3551 , - 806 , - 2237 , - 420 , - 2779 , - 1890 , - 1465 , - 1504 , - 2007 , - 2974 , - 693 , - 2588 , - 1235 , - 346 , - 3633 , - 3672 , - 463 , - 1430 , - 2861 , - 1044 , - 3403 , - 2514 , - 2089 , - 2128 , - 2631 , - 3598 , - 1317 , - 3212 , - 1859 , - 970 , - 545 , - 584 , - 1087 , - 2054 , - 3485 , - 1668 , - 315 , - 3138 , - 2713 , - 2752 , - 3255 , - 510 , - 1941 , - 124 , - 2483 , - 1594 , - 1169 , - 1208 , - 1711 , - 2678 , - 397 , - 2292 , - 939 , - 50 , - 3337 , - 3376 , - 167 , - 1134 , - 2565 , - 748 , - 3107 , - 2218 , - 1793 , - 1832 , - 2335 , - 3302 , - 1021 , - 2916 , - 1563 , - 674 , - 249 , - 288 , - 791 , - 1758 , - 3189 , - 1372 , - 19 , - 2842 , - 2417 , - 2456 , - 2959 , - 214 , - 1645 , - 3540 , - 2187 , - 1298 , - 873 , - 912 , - 1415 , - 2382 , - 101 , - 1996 , - 643 , - 3466 , - 3041 , - 3080 , - 3583 , - 838 , - 2269 , - 452 , - 2811 , - 1922 , - 1497 , - 1536 , - 2039 , - 3006 , - 725 , - 2620 , - 1267 , - 378 , - 3665 , - 3704 , - 495 , - 1462 , - 2893 , - 1076 , - 3435 , - 2546 , - 2121 , - 2160 , - 2663 , - 3630 , - 1349 , - 3244 , - 1891 , - 1002 , - 577 , - 616 , - 1119 , - 2086 , - 3517 , - 1700 , - 347 , - 3170 , - 2745 , - 2784 , - 3287 , - 542 , - 1973 , - 156 , - 2515 , - 1626 , - 1201 , - 1240 , - 1743 , - 2710 , - 429 , - 2324 , - 971 , - 82 , - 3369 , - 3408 , - 199 , - 1166 , - 2597 , - 780 , - 3139 , - 2250 , - 1825 , - 1864 , - 2367 , - 3334 , - 1053 , - 2948 , - 1595 , - 706 , - 281 , - 320 , - 823 , - 1790 , - 3221 , - 1404 , - 51 , - 2874 , - 2449 , - 2488 , - 2991 , - 246 , - 1677 , - 3572 , - 2219 , - 1330 , - 905 , - 944 , - 1447 , - 2414 , - 133 , - 2028 , - 675 , - 3498 , - 3073 , - 3112 , - 3615 , - 870 , - 2301 , - 484 , - 2843 , - 1954 , - 1529 , - 1568 , - 2071 , - 3038 , - 757 , - 2652 , - 1299 , - 410 , - 3697 , - 24 , - 527 , - 1494 , - 2925 , - 1108 , - 3467 , - 2578 , - 2153 , - 2192 , - 2695 , - 3662 , - 1381 , - 3276 , - 1923 , - 1034 , - 609 , - 648 , - 1151 , - 2118 , - 3549 , - 1732 , - 379 , - 3202 , - 2777 , - 2816 , - 3319 , - 574 , - 2005 , - 188 , - 2547 , - 1658 , - 1233 , - 1272 , - 1775 , - 2742 , - 461 , - 2356 , - 1003 , - 114 , - 3401 , - 3440 , - 231 , - 1198 , - 2629 , - 812 , - 3171 , - 2282 , - 1857 , - 1896 , - 2399 , - 3366 , - 1085 , - 2980 , - 1627 , - 738 , - 313 , - 352 , - 855 , - 1822 , - 3253 , - 1436 , - 83 , - 2906 , - 2481 , - 2520 , - 3023 , - 278 , - 1709 , - 3604 , - 2251 , - 1362 , - 937 , - 976 , - 1479 , - 2446 , - 165 , - 2060 , - 707 , - 3530 , - 3105 , - 3144 , - 3647 , - 902 , - 2333 , - 516 , - 2875 , - 1986 , - 1561 , - 1600 , - 2103 , - 3070 , - 789 , - 2684 , - 1331 , - 442 , - 17 , - 56 , - 559 , - 1526 , - 2957 , - 1140 , - 3499 , - 2610 , - 2185 , - 2224 , - 2727 , - 3694 , - 1413 , - 3308 , - 1955 , - 1066 , - 641 , - 680 , - 1183 , - 2150 , - 3581 , - 1764 , - 411 , - 3234 , - 2809 , - 2848 , - 3351 , - 606 , - 2037 , - 220 , - 2579 , - 1690 , - 1265 , - 1304 , - 1807 , - 2774 , - 493 , - 2388 , - 1035 , - 146 , - 3433 , - 3472 , - 263 , - 1230 , - 2661 , - 844 , - 3203 , - 2314 , - 1889 , - 1928 , - 2431 , - 3398 , - 1117 , - 3012 , - 1659 , - 770 , - 345 , - 384 , - 887 , - 1854 , - 3285 , - 1468 , - 115 , - 2938 , - 2513 , - 2552 , - 3055 , - 310 , - 1741 , - 3636 , - 2283 , - 1394 , - 969 , - 1008 , - 1511 , - 2478 , - 197 , - 2092 , - 739 , - 3562 , - 3137 , - 3176 , - 3679 , - 934 , - 2365 , - 548 , - 2907 , - 2018 , - 1593 , - 1632 , - 2135 , - 3102 , - 821 , - 2716 , - 1363 , - 474 , - 49 , - 88 , - 591 , - 1558 , - 2989 , - 1172 , - 3531 , - 2642 , - 2217 , - 2256 , - 2759 , - 14 , - 1445 , - 3340 , - 1987 , - 1098 , - 673 , - 712 , - 1215 , - 2182 , - 3613 , - 1796 , - 443 , - 3266 , - 2841 , - 2880 , - 3383 , - 638 , - 2069 , - 252 , - 2611 , - 1722 , - 1297 , - 1336 , - 1839 , - 2806 , - 525 , - 2420 , - 1067 , - 178 , - 3465 , - 3504 , - 295 , - 1262 , - 2693 , - 876 , - 3235 , - 2346 , - 1921 , - 1960 , - 2463 , - 3430 , - 1149 , - 3044 , - 1691 , - 802 , - 377 , - 416 , - 919 , - 1886 , - 3317 , - 1500 , - 147 , - 2970 , - 2545 , - 2584 , - 3087 , - 342 , - 1773 , - 3668 , - 2315 , - 1426 , - 1001 , - 1040 , - 1543 , - 2510 , - 229 , - 2124 , - 771 , - 3594 , - 3169 , - 3208 , - 3711 , - 966 , - 2397 , - 580 , - 2939 , - 2050 , - 1625 , - 1664 , - 2167 , - 3134 , - 853 , - 2748 , - 1395 , - 506 , - 81 , - 120 , - 623 , - 1590 , - 3021 , - 1204 , - 3563 , - 2674 , - 2249 , - 2288 , - 2791 , - 46 , - 1477 , - 3372 , - 2019 , - 1130 , - 705 , - 744 , - 1247 , - 2214 , - 3645 , - 1828 , - 475 , - 3298 , - 2873 , - 2912 , - 3415 , - 670 , - 2101 , - 284 , - 2643 , - 1754 , - 1329 , - 1368 , - 1871 , - 2838 , - 557 , - 2452 , - 1099 , - 210 , - 3497 , - 3536 , - 327 , - 1294 , - 2725 , - 908 , - 3267 , - 2378 , - 1953 , - 1992 , - 2495 , - 3462 , - 1181 , - 3076 , - 1723 , - 834 , - 409 , - 448 , - 951 , - 1918 , - 3349 , - 1532 , - 179 , - 3002 , - 2577 , - 2616 , - 3119 , - 374 , - 1805 , - 3700 , - 2347 , - 1458 , - 1033 , - 1072 , - 1575 , - 2542 , - 261 , - 2156 , - 803 , - 3626 , - 3201 , - 3240 , - 31 , - 998 , - 2429 , - 612 , - 2971 , - 2082 , - 1657 , - 1696 , - 2199 , - 3166 , - 885 , - 2780 , - 1427 , - 538 , - 113 , - 152 , - 655 , - 1622 , - 3053 , - 1236 , - 3595 , - 2706 , - 2281 , - 2320 , - 2823 , - 78 , - 1509 , - 3404 , - 2051 , - 1162 , - 737 , - 776 , - 1279 , - 2246 , - 3677 , - 1860 , - 507 , - 3330 , - 2905 , - 2944 , - 3447 , - 702 , - 2133 , - 316 , - 2675 , - 1786 , - 1361 , - 1400 , - 1903 , - 2870 , - 589 , - 2484 , - 1131 , - 242 , - 3529 , - 3568 , - 359 , - 1326 , - 2757 , - 940 , - 3299 , - 2410 , - 1985 , - 2024 , - 2527 , - 3494 , - 1213 , - 3108 , - 1755 , - 866 , - 441 , - 480 , - 983 , - 1950 , - 3381 , - 1564 , - 211 , - 3034 , - 2609 , - 2648 , - 3151 , - 406 , - 1837 , - 20 , - 2379 , - 1490 , - 1065 , - 1104 , - 1607 , - 2574 , - 293 , - 2188 , - 835 , - 3658 , - 3233 , - 3272 , - 63 , - 1030 , - 2461 , - 644 , - 3003 , - 2114 , - 1689 , - 1728 , - 2231 , - 3198 , - 917 , - 2812 , - 1459 , - 570 , - 145 , - 184 , - 687 , - 1654 , - 3085 , - 1268 , - 3627 , - 2738 , - 2313 , - 2352 , - 2855 , - 110 , - 1541 , - 3436 , - 2083 , - 1194 , - 769 , - 808 , - 1311 , - 2278 , - 3709 , - 1892 , - 539 , - 3362 , - 2937 , - 2976 , - 3479 , - 734 , - 2165 , - 348 , - 2707 , - 1818 , - 1393 , - 1432 , - 1935 , - 2902 , - 621 , - 2516 , - 1163 , - 274 , - 3561 , - 3600 , - 391 , - 1358 , - 2789 , - 972 , - 3331 , - 2442 , - 2017 , - 2056 , - 2559 , - 3526 , - 1245 , - 3140 , - 1787 , - 898 , - 473 , - 512 , - 1015 , - 1982 , - 3413 , - 1596 , - 243 , - 3066 , - 2641 , - 2680 , - 3183 , - 438 , - 1869 , - 52 , - 2411 , - 1522 , - 1097 , - 1136 , - 1639 , - 2606 , - 325 , - 2220 , - 867 , - 3690 , - 3265 , - 3304 , - 95 , - 1062 , - 2493 , - 676 , - 3035 , - 2146 , - 1721 , - 1760 , - 2263 , - 3230 , - 949 , - 2844 , - 1491 , - 602 , - 177 , - 216 , - 719 , - 1686 , - 3117 , - 1300 , - 3659 , - 2770 , - 2345 , - 2384 , - 2887 , - 142 , - 1573 , - 3468 , - 2115 , - 1226 , - 801 , - 840 , - 1343 , - 2310 , - 29 , - 1924 , - 571 , - 3394 , - 2969 , - 3008 , - 3511 , - 766 , - 2197 , - 380 , - 2739 , - 1850 , - 1425 , - 1464 , - 1967 , - 2934 , - 653 , - 2548 , - 1195 , - 306 , - 3593 , - 3632 , - 423 , - 1390 , - 2821 , - 1004 , - 3363 , - 2474 , - 2049 , - 2088 , - 2591 , - 3558 , - 1277 , - 3172 , - 1819 , - 930 , - 505 , - 544 , - 1047 , - 2014 , - 3445 , - 1628 , - 275 , - 3098 , - 2673 , - 2712 , - 3215 , - 470 , - 1901 , - 84 , - 2443 , - 1554 , - 1129 , - 1168 , - 1671 , - 2638 , - 357 , - 2252 , - 899 , - 10 , - 3297 , - 3336 , - 127 , - 1094 , - 2525 , - 708 , - 3067 , - 2178 , - 1753 , - 1792 , - 2295 , - 3262 , - 981 , - 2876 , - 1523 , - 634 , - 209 , - 248 , - 751 , - 1718 , - 3149 , - 1332 , - 3691 , - 2802 , - 2377 , - 2416 , - 2919 , - 174 , - 1605 , - 3500 , - 2147 , - 1258 , - 833 , - 872 , - 1375 , - 2342 , - 61 , - 1956 , - 603 , - 3426 , - 3001 , - 3040 , - 3543 , - 798 , - 2229 , - 412 , - 2771 , - 1882 , - 1457 , - 1496 , - 1999 , - 2966 , - 685 , - 2580 , - 1227 , - 338 , - 3625 , - 3664 , - 455 , - 1422 , - 2853 , - 1036 , - 3395 , - 2506 , - 2081 , - 2120 , - 2623 , - 3590 , - 1309 , - 3204 , - 1851 , - 962 , - 537 , - 576 , - 1079 , - 2046 , - 3477 , - 1660 , - 307 , - 3130 , - 2705 , - 2744 , - 3247 , - 502 , - 1933 , - 116 , - 2475 , - 1586 , - 1161 , - 1200 , - 1703 , - 2670 , - 389 , - 2284 , - 931 , - 42 , - 3329 , - 3368 , - 159 , - 1126 , - 2557 , - 740 , - 3099 , - 2210 , - 1785 , - 1824 , - 2327 , - 3294 , - 1013 , - 2908 , - 1555 , - 666 , - 241 , - 280 , - 783 , - 1750 , - 3181 , - 1364 , - 11 , - 2834 , - 2409 , - 2448 , - 2951 , - 206 , - 1637 , - 3532 , - 2179 , - 1290 , - 865 , - 904 , - 1407 , - 2374 , - 93 , - 1988 , - 635 , - 3458 , - 3033 , - 3072 , - 3575 , - 830 , - 2261 , - 444 , - 2803 , - 1914 , - 1489 , - 1528 , - 2031 , - 2998 , - 717 , - 2612 , - 1259 , - 370 , - 3657 , - 3696 , - 487 , - 1454 , - 2885 , - 1068 , - 3427 , - 2538 , - 2113 , - 2152 , - 2655 , - 3622 , - 1341 , - 3236 , - 1883 , - 994 , - 569 , - 608 , - 1111 , - 2078 , - 3509 , - 1692 , - 339 , - 3162 , - 2737 , - 2776 , - 3279 , - 534 , - 1965 , - 148 , - 2507 , - 1618 , - 1193 , - 1232 , - 1735 , - 2702 , - 421 , - 2316 , - 963 , - 74 , - 3361 , - 3400 , - 191 , - 1158 , - 2589 , - 772 , - 3131 , - 2242 , - 1817 , - 1856 , - 2359 , - 3326 , - 1045 , - 2940 , - 1587 , - 698 , - 273 , - 312 , - 815 , - 1782 , - 3213 , - 1396 , - 43 , - 2866 , - 2441 , - 2480 , - 2983 , - 238 , - 1669 , - 3564 , - 2211 , - 1322 , - 897 , - 936 , - 1439 , - 2406 , - 125 , - 2020 , - 667 , - 3490 , - 3065 , - 3104 , - 3607 , - 862 , - 2293 , - 476 , - 2835 , - 1946 , - 1521 , - 1560 , - 2063 , - 3030 , - 749 , - 2644 , - 1291 , - 402 , - 3689 , - 16 , - 519 , - 1486 , - 2917 , - 1100 , - 3459 , - 2570 , - 2145 , - 2184 , - 2687 , - 3654 , - 1373 , - 3268 , - 1915 , - 1026 , - 601 , - 640 , - 1143 , - 2110 , - 3541 , - 1724 , - 371 , - 3194 , - 2769 , - 2808 , - 3311 , - 566 , - 1997 , - 180 , - 2539 , - 1650 , - 1225 , - 1264 , - 1767 , - 2734 , - 453 , - 2348 , - 995 , - 106 , - 3393 , - 3432 , - 223 , - 1190 , - 2621 , - 804 , - 3163 , - 2274 , - 1849 , - 1888 , - 2391 , - 3358 , - 1077 , - 2972 , - 1619 , - 730 , - 305 , - 344 , - 847 , - 1814 , - 3245 , - 1428 , - 75 , - 2898 , - 2473 , - 2512 , - 3015 , - 270 , - 1701 , - 3596 , - 2243 , - 1354 , - 929 , - 968 , - 1471 , - 2438 , - 157 , - 2052 , - 699 , - 3522 , - 3097 , - 3136 , - 3639 , - 894 , - 2325 , - 508 , - 2867 , - 1978 , - 1553 , - 1592 , - 2095 , - 3062 , - 781 , - 2676 , - 1323 , - 434 , - 9 , - 48 , - 551 , - 1518 , - 2949 , - 1132 , - 3491 , - 2602 , - 2177 , - 2216 , - 2719 , - 3686 , - 1405 , - 3300 , - 1947 , - 1058 , - 633 , - 672 , - 1175 , - 2142 , - 3573 , - 1756 , - 403 , - 3226 , - 2801 , - 2840 , - 3343 , - 598 , - 2029 , - 212 , - 2571 , - 1682 , - 1257 , - 1296 , - 1799 , - 2766 , - 485 , - 2380 , - 1027 , - 138 , - 3425 , - 3464 , - 255 , - 1222 , - 2653 , - 836 , - 3195 , - 2306 , - 1881 , - 1920 , - 2423 , - 3390 , - 1109 , - 3004 , - 1651 , - 762 , - 337 , - 376 , - 879 , - 1846 , - 3277 , - 1460 , - 107 , - 2930 , - 2505 , - 2544 , - 3047 , - 302 , - 1733 , - 3628 , - 2275 , - 1386 , - 961 , - 1000 , - 1503 , - 2470 , - 189 , - 2084 , - 731 , - 3554 , - 3129 , - 3168 , - 3671 , - 926 , - 2357 , - 540 , - 2899 , - 2010 , - 1585 , - 1624 , - 2127 , - 3094 , - 813 , - 2708 , - 1355 , - 466 , - 41 , - 80 , - 583 , - 1550 , - 2981 , - 1164 , - 3523 , - 2634 , - 2209 , - 2248 , - 2751 , - 6 , - 1437 , - 3332 , - 1979 , - 1090 , - 665 , - 704 , - 1207 , - 2174 , - 3605 , - 1788 , - 435 , - 3258 , - 2833 , - 2872 , - 3375 , - 630 , - 2061 , - 244 , - 2603 , - 1714 , - 1289 , - 1328 , - 1831 , - 2798 , - 517 , - 2412 , - 1059 , - 170 , - 3457 , - 3496 , - 287 , - 1254 , - 2685 , - 868 , - 3227 , - 2338 , - 1913 , - 1952 , - 2455 , - 3422 , - 1141 , - 3036 , - 1683 , - 794 , - 369 , - 408 , - 911 , - 1878 , - 3309 , - 1492 , - 139 , - 2962 , - 2537 , - 2576 , - 3079 , - 334 , - 1765 , - 3660 , - 2307 , - 1418 , - 993 , - 1032 , - 1535 , - 2502 , - 221 , - 2116 , - 763 , - 3586 , - 3161 , - 3200 , - 3703 , - 958 , - 2389 , - 572 , - 2931 , - 2042 , - 1617 , - 1656 , - 2159 , - 3126 , - 845 , - 2740 , - 1387 , - 498 , - 73 , - 112 , - 615 , - 1582 , - 3013 , - 1196 , - 3555 , - 2666 , - 2241 , - 2280 , - 2783 , - 38 , - 1469 , - 3364 , - 2011 , - 1122 , - 697 , - 736 , - 1239 , - 2206 , - 3637 , - 1820 , - 467 , - 3290 , - 2865 , - 2904 , - 3407 , - 662 , - 2093 , - 276 , - 2635 , - 1746 , - 1321 , - 1360 , - 1863 , - 2830 , - 549 , - 2444 , - 1091 , - 202 , - 3489 , - 3528 , - 319 , - 1286 , - 2717 , - 900 , - 3259 , - 2370 , - 1945 , - 1984 , - 2487 , - 3454 , - 1173 , - 3068 , - 1715 , - 826 , - 401 , - 440 , - 943 , - 1910 , - 3341 , - 1524 , - 171 , - 2994 , - 2569 , - 2608 , - 3111 , - 366 , - 1797 , - 3692 , - 2339 , - 1450 , - 1025 , - 1064 , - 1567 , - 2534 , - 253 , - 2148 , - 795 , - 3618 , - 3193 , - 3232 , - 23 , - 990 , - 2421 , - 604 , - 2963 , - 2074 , - 1649 , - 1688 , - 2191 , - 3158 , - 877 , - 2772 , - 1419 , - 530 , - 105 , - 144 , - 647 , - 1614 , - 3045 , - 1228 , - 3587 , - 2698 , - 2273 , - 2312 , - 2815 , - 70 , - 1501 , - 3396 , - 2043 , - 1154 , - 729 , - 768 , - 1271 , - 2238 , - 3669 , - 1852 , - 499 , - 3322 , - 2897 , - 2936 , - 3439 , - 694 , - 2125 , - 308 , - 2667 , - 1778 , - 1353 , - 1392 , - 1895 , - 2862 , - 581 , - 2476 , - 1123 , - 234 , - 3521 , - 3560 , - 351 , - 1318 , - 2749 , - 932 , - 3291 , - 2402 , - 1977 , - 2016 , - 2519 , - 3486 , - 1205 , - 3100 , - 1747 , - 858 , - 433 , - 472 , - 975 , - 1942 , - 3373 , - 1556 , - 203 , - 3026 , - 2601 , - 2640 , - 3143 , - 398 , - 1829 , - 12 , - 2371 , - 1482 , - 1057 , - 1096 , - 1599 , - 2566 , - 285 , - 2180 , - 827 , - 3650 , - 3225 , - 3264 , - 55 , - 1022 , - 2453 , - 636 , - 2995 , - 2106 , - 1681 , - 1720 , - 2223 , - 3190 , - 909 , - 2804 , - 1451 , - 562 , - 137 , - 176 , - 679 , - 1646 , - 3077 , - 1260 , - 3619 , - 2730 , - 2305 , - 2344 , - 2847 , - 102 , - 1533 , - 3428 , - 2075 , - 1186 , - 761 , - 800 , - 1303 , - 2270 , - 3701 , - 1884 , - 531 , - 3354 , - 2929 , - 2968 , - 3471 , - 726 , - 2157 , - 340 , - 2699 , - 1810 , - 1385 , - 1424 , - 1927 , - 2894 , - 613 , - 2508 , - 1155 , - 266 , - 3553 , - 3592 , - 383 , - 1350 , - 2781 , - 964 , - 3323 , - 2434 , - 2009 , - 2048 , - 2551 , - 3518 , - 1237 , - 3132 , - 1779 , - 890 , - 465 , - 504 , - 1007 , - 1974 , - 3405 , - 1588 , - 235 , - 3058 , - 2633 , - 2672 , - 3175 , - 430 , - 1861 , - 44 , - 2403 , - 1514 , - 1089 , - 1128 , - 1631 , - 2598 , - 317 , - 2212 , - 859 , - 3682 , - 3257 , - 3296 , - 87 , - 1054 , - 2485 , - 668 , - 3027 , - 2138 , - 1713 , - 1752 , - 2255 , - 3222 , - 941 , - 2836 , - 1483 , - 594 , - 169 , - 208 , - 711 , - 1678 , - 3109 , - 1292 , - 3651 , - 2762 , - 2337 , - 2376 , - 2879 , - 134 , - 1565 , - 3460 , - 2107 , - 1218 , - 793 , - 832 , - 1335 , - 2302 , - 21 , - 1916 , - 563 , - 3386 , - 2961 , - 3000 , - 3503 , - 758 , - 2189 , - 372 , - 2731 , - 1842 , - 1417 , - 1456 , - 1959 , - 2926 , - 645 , - 2540 , - 1187 , - 298 , - 3585 , - 3624 , - 415 , - 1382 , - 2813 , - 996 , - 3355 , - 2466 , - 2041 , - 2080 , - 2583 , - 3550 , - 1269 , - 3164 , - 1811 , - 922 , - 497 , - 536 , - 1039 , - 2006 , - 3437 , - 1620 , - 267 , - 3090 , - 2665 , - 2704 , - 3207 , - 462 , - 1893 , - 76 , - 2435 , - 1546 , - 1121 , - 1160 , - 1663 , - 2630 , - 349 , - 2244 , - 891 , - 2 , - 3289 , - 3328 , - 119 , - 1086 , - 2517 , - 700 , - 3059 , - 2170 , - 1745 , - 1784 , - 2287 , - 3254 , - 973 , - 2868 , - 1515 , - 626 , - 201 , - 240 , - 743 , - 1710 , - 3141 , - 1324 , - 3683 , - 2794 , - 2369 , - 2408 , - 2911 , - 166 , - 1597 , - 3492 , - 2139 , - 1250 , - 825 , - 864 , - 1367 , - 2334 , - 53 , - 1948 , - 595 , - 3418 , - 2993 , - 3032 , - 3535 , - 790 , - 2221 , - 404 , - 2763 , - 1874 , - 1449 , - 1488 , - 1991 , - 2958 , - 677 , - 2572 , - 1219 , - 330 , - 3617 , - 3656 , - 447 , - 1414 , - 2845 , - 1028 , - 3387 , - 2498 , - 2073 , - 2112 , - 2615 , - 3582 , - 1301 , - 3196 , - 1843 , - 954 , - 529 , - 568 , - 1071 , - 2038 , - 3469 , - 1652 , - 299 , - 3122 , - 2697 , - 2736 , - 3239 , - 494 , - 1925 , - 108 , - 2467 , - 1578 , - 1153 , - 1192 , - 1695 , - 2662 , - 381 , - 2276 , - 923 , - 34 , - 3321 , - 3360 , - 151 , - 1118 , - 2549 , - 732 , - 3091 , - 2202 , - 1777 , - 1816 , - 2319 , - 3286 , - 1005 , - 2900 , - 1547 , - 658 , - 233 , - 272 , - 775 , - 1742 , - 3173 , - 1356 , - 3 , - 2826 , - 2401 , - 2440 , - 2943 , - 198 , - 1629 , - 3524 , - 2171 , - 1282 , - 857 , - 896 , - 1399 , - 2366 , - 85 , - 1980 , - 627 , - 3450 , - 3025 , - 3064 , - 3567 , - 822 , - 2253 , - 436 , - 2795 , - 1906 , - 1481 , - 1520 , - 2023 , - 2990 , - 709 , - 2604 , - 1251 , - 362 , - 3649 , - 3688 , - 479 , - 1446 , - 2877 , - 1060 , - 3419 , - 2530 , - 2105 , - 2144 , - 2647 , - 3614 , - 1333 , - 3228 , - 1875 , - 986 , - 561 , - 600 , - 1103 , - 2070 , - 3501 , - 1684 , - 331 , - 3154 , - 2729 , - 2768 , - 3271 , - 526 , - 1957 , - 140 , - 2499 , - 1610 , - 1185 , - 1224 , - 1727 , - 2694 , - 413 , - 2308 , - 955 , - 66 , - 3353 , - 3392 , - 183 , - 1150 , - 2581 , - 764 , - 3123 , - 2234 , - 1809 , - 1848 , - 2351 , - 3318 , - 1037 , - 2932 , - 1579 , - 690 , - 265 , - 304 , - 807 , - 1774 , - 3205 , - 1388 , - 35 , - 2858 , - 2433 , - 2472 , - 2975 , - 230 , - 1661 , - 3556 , - 2203 , - 1314 , - 889 , - 928 , - 1431 , - 2398 , - 117 , - 2012 , - 659 , - 3482 , - 3057 , - 3096 , - 3599 , - 854 , - 2285 , - 468 , - 2827 , - 1938 , - 1513 , - 1552 , - 2055 , - 3022 , - 741 , - 2636 , - 1283 , - 394 , - 3681 , - 8 , - 511 , - 1478 , - 2909 , - 1092 , - 3451 , - 2562 , - 2137 , - 2176 , - 2679 , - 3646 , - 1365 , - 3260 , - 1907 , - 1018 , - 593 , - 632 , - 1135 , - 2102 , - 3533 , - 1716 , - 363 , - 3186 , - 2761 , - 2800 , - 3303 , - 558 , - 1989 , - 172 , - 2531 , - 1642 , - 1217 , - 1256 , - 1759 , - 2726 , - 445 , - 2340 , - 987 , - 98 , - 3385 , - 3424 , - 215 , - 1182 , - 2613 , - 796 , - 3155 , - 2266 , - 1841 , - 1880 , - 2383 , - 3350 , - 1069 , - 2964 , - 1611 , - 722 , - 297 , - 336 , - 839 , - 1806 , - 3237 , - 1420 , - 67 , - 2890 , - 2465 , - 2504 , - 3007 , - 262 , - 1693 , - 3588 , - 2235 , - 1346 , - 921 , - 960 , - 1463 , - 2430 , - 149 , - 2044 , - 691 , - 3514 , - 3089 , - 3128 , - 3631 , - 886 , - 2317 , - 500 , - 2859 , - 1970 , - 1545 , - 1584 , - 2087 , - 3054 , - 773 , - 2668 , - 1315 , - 426 , - 1 , - 40 , - 543 , - 1510 , - 2941 , - 1124 , - 3483 , - 2594 , - 2169 , - 2208 , - 2711 , - 3678 , - 1397 , - 3292 , - 1939 , - 1050 , - 625 , - 664 , - 1167 , - 2134 , - 3565 , - 1748 , - 395 , - 3218 , - 2793 , - 2832 , - 3335 , - 590 , - 2021 , - 204 , - 2563 , - 1674 , - 1249 , - 1288 , - 1791 , - 2758 , - 477 , - 2372 , - 1019 , - 130 , - 3417 , - 3456 , - 247 , - 1214 , - 2645 , - 828 , - 3187 , - 2298 , - 1873 , - 1912 , - 2415 , - 3382 , - 1101 , - 2996 , - 1643 , - 754 , - 329 , - 368 , - 871 , - 1838 , - 3269 , - 1452 , - 99 , - 2922 , - 2497 , - 2536 , - 3039 , - 294 , - 1725 , - 3620 , - 2267 , - 1378 , - 953 , - 992 , - 1495 , - 2462 , - 181 , - 2076 , - 723 , - 3546 , - 3121 , - 3160 , - 3663 , - 918 , - 2349 , - 532 , - 2891 , - 2002 , - 1577 , - 1616 , - 2119 , - 3086 , - 805 , - 2700 , - 1347 , - 458 , - 33 , - 72 , - 575 , - 1542 , - 2973 , - 1156 , - 3515 , - 2626 , - 2201 , - 2240 , - 2743 , - 3710 , - 1429 , - 3324 , - 1971 , - 1082 , - 657 , - 696 , - 1199 , - 2166 , - 3597 , - 1780 , - 427 , - 3250 , - 2825 , - 2864 , - 3367 , - 622 , - 2053 , - 236 , - 2595 , - 1706 , - 1281 , - 1320 , - 1823 , - 2790 , - 509 , - 2404 , - 1051 , - 162 , - 3449 , - 3488 , - 279 , - 1246 , - 2677 , - 860 , - 3219 , - 2330 , - 1905 , - 1944 , - 2447 , - 3414 , - 1133 , - 3028 , - 1675 , - 786 , - 361 , - 400 , - 903 , - 1870 , - 3301 , - 1484 , - 131 , - 2954 , - 2529 , - 2568 , - 3071 , - 326 , - 1757 , - 3652 , - 2299 , - 1410 , - 985 , - 1024 , - 1527 , - 2494 , - 213 , - 2108 , - 755 , - 3578 , - 3153 , - 3192 , - 3695 , - 950 , - 2381 , - 564 , - 2923 , - 2034 , - 1609 , - 1648 , - 2151 , - 3118 , - 837 , - 2732 , - 1379 , - 490 , - 65 , - 104 , - 607 , - 1574 , - 3005 , - 1188 , - 3547 , - 2658 , - 2233 , - 2272 , - 2775 , - 30 , - 1461 , - 3356 , - 2003 , - 1114 , - 689 , - 728 , - 1231 , - 2198 , - 3629 , - 1812 , - 459 , - 3282 , - 2857 , - 2896 , - 3399 , - 654 , - 2085 , - 268 , - 2627 , - 1738 , - 1313 , - 1352 , - 1855 , - 2822 , - 541 , - 2436 , - 1083 , - 194 , - 3481 , - 3520 , - 311 , - 1278 , - 2709 , - 892 , - 3251 , - 2362 , - 1937 , - 1976 , - 2479 , - 3446 , - 1165 , - 3060 , - 1707 , - 818 , - 393 , - 432 , - 935 , - 1902 , - 3333 , - 1516 , - 163 , - 2986 , - 2561 , - 2600 , - 3103 , - 358 , - 1789 , - 3684 , - 2331 , - 1442 , - 1017 , - 1056 , - 1559 , - 2526 , - 245 , - 2140 , - 787 , - 3610 , - 3185 , - 3224 , - 15 , - 982 , - 2413 , - 596 , - 2955 , - 2066 , - 1641 , - 1680 , - 2183 , - 3150 , - 869 , - 2764 , - 1411 , - 522 , - 97 , - 136 , - 639 , - 1606 , - 3037 , - 1220 , - 3579 , - 2690 , - 2265 , - 2304 , - 2807 , - 62 , - 1493 , - 3388 , - 2035 , - 1146 , - 721 , - 760 , - 1263 , - 2230 , - 3661 , - 1844 , - 491 , - 3314 , - 2889 , - 2928 , - 3431 , - 686 , - 2117 , - 300 , - 2659 , - 1770 , - 1345 , - 1384 , - 1887 , - 2854 , - 573 , - 2468 , - 1115 , - 226 , - 3513 , - 3552 , - 343 , - 1310 , - 2741 , - 924 , - 3283 , - 2394 , - 1969 , - 2008 , - 2511 , - 3478 , - 1197 , - 3092 , - 1739 , - 850 , - 425 , - 464 , - 967 , - 1934 , - 3365 , - 1548 , - 195 , - 3018 , - 2593 , - 2632 , - 3135 , - 390 , - 1821 , - 4 , - 2363 , - 1474 , - 1049 , - 1088 , - 1591 , - 2558 , - 277 , - 2172 , - 819 , - 3642 , - 3217 , - 3256 , - 47 , - 1014 , - 2445 , - 628 , - 2987 , - 2098 , - 1673 , - 1712 , - 2215 , - 3182 , - 901 , - 2796 , - 1443 , - 554 , - 129 , - 168 , - 671 , - 1638 , - 3069 , - 1252 , - 3611 , - 2722 , - 2297 , - 2336 , - 2839 , - 94 , - 1525 , - 3420 , - 2067 , - 1178 , - 753 , - 792 , - 1295 , - 2262 , - 3693 , - 1876 , - 523 , - 3346 , - 2921 , - 2960 , - 3463 , - 718 , - 2149 , - 332 , - 2691 , - 1802 , - 1377 , - 1416 , - 1919 , - 2886 , - 605 , - 2500 , - 1147 , - 258 , - 3545 , - 3584 , - 375 , - 1342 , - 2773 , - 956 , - 3315 , - 2426 , - 2001 , - 2040 , - 2543 , - 3510 , - 1229 , - 3124 , - 1771 , - 882 , - 457 , - 496 , - 999 , - 1966 , - 3397 , - 1580 , - 227 , - 3050 , - 2625 , - 2664 , - 3167 , - 422 , - 1853 , - 36 , - 2395 , - 1506 , - 1081 , - 1120 , - 1623 , - 2590 , - 309 , - 2204 , - 851 , - 3674 , - 3249 , - 3288 , - 79 , - 1046 , - 2477 , - 660 , - 3019 , - 2130 , - 1705 , - 1744 , - 2247 , - 3214 , - 933 , - 2828 , - 1475 , - 586 , - 161 , - 200 , - 703 , - 1670 , - 3101 , - 1284 , - 3643 , - 2754 , - 2329 , - 2368 , - 2871 , - 126 , - 1557 , - 3452 , - 2099 , - 1210 , - 785 , - 824 , - 1327 , - 2294 , - 13 , - 1908 , - 555 , - 3378 , - 2953 , - 2992 , - 3495 , - 750 , - 2181 , - 364 , - 2723 , - 1834 , - 1409 , - 1448 , - 1951 , - 2918 , - 637 , - 2532 , - 1179 , - 290 , - 3577 , - 3616 , - 407 , - 1374 , - 2805 , - 988 , - 3347 , - 2458 , - 2033 , - 2072 , - 2575 , - 3542 , - 1261 , - 3156 , - 1803 , - 914 , - 489 , - 528 , - 1031 , - 1998 , - 3429 , - 1612 , - 259 , - 3082 , - 2657 , - 2696 , - 3199 , - 454 , - 1885 , - 68 , - 2427 , - 1538 , - 1113 , - 1152 , - 1655 , - 2622 , - 341 , - 2236 , - 883 , - 3706 , - 3281 , - 3320 , - 111 , - 1078 , - 2509 , - 692 , - 3051 , - 2162 , - 1737 , - 1776 , - 2279 , - 3246 , - 965 , - 2860 , - 1507 , - 618 , - 193 , - 232 , - 735 , - 1702 , - 3133 , - 1316 , - 3675 , - 2786 , - 2361 , - 2400 , - 2903 , - 158 , - 1589 , - 3484 , - 2131 , - 1242 , - 817 , - 856 , - 1359 , - 2326 , - 45 , - 1940 , - 587 , - 3410 , - 2985 , - 3024 , - 3527 , - 782 , - 2213 , - 396 , - 2755 , - 1866 , - 1441 , - 1480 , - 1983 , - 2950 , - 669 , - 2564 , - 1211 , - 322 , - 3609 , - 3648 , - 439 , - 1406 , - 2837 , - 1020 , - 3379 , - 2490 , - 2065 , - 2104 , - 2607 , - 3574 , - 1293 , - 3188 , - 1835 , - 946 , - 521 , - 560 , - 1063 , - 2030 , - 3461 , - 1644 , - 291 , - 3114 , - 2689 , - 2728 , - 3231 , - 486 , - 1917 , - 100 , - 2459 , - 1570 , - 1145 , - 1184 , - 1687 , - 2654 , - 373 , - 2268 , - 915 , - 26 , - 3313 , - 3352 , - 143 , - 1110 , - 2541 , - 724 , - 3083 , - 2194 , - 1769 , - 1808 , - 2311 , - 3278 , - 997 , - 2892 , - 1539 , - 650 , - 225 , - 264 , - 767 , - 1734 , - 3165 , - 1348 , - 3707 , - 2818 , - 2393 , - 2432 , - 2935 , - 190 , - 1621 , - 3516 , - 2163 , - 1274 , - 849 , - 888 , - 1391 , - 2358 , - 77 , - 1972 , - 619 , - 3442 , - 3017 , - 3056 , - 3559 , - 814 , - 2245 , - 428 , - 2787 , - 1898 , - 1473 , - 1512 , - 2015 , - 2982 , - 701 , - 2596 , - 1243 , - 354 , - 3641 , - 3680 , - 471 , - 1438 , - 2869 , - 1052 , - 3411 , - 2522 , - 2097 , - 2136 , - 2639 , - 3606 , - 1325 , - 3220 , - 1867 , - 978 , - 553 , - 592 , - 1095 , - 2062 , - 3493 , - 1676 , - 323 , - 3146 , - 2721 , - 2760 , - 3263 , - 518 , - 1949 , - 132 , - 2491 , - 1602 , - 1177 , - 1216 , - 1719 , - 2686 , - 405 , - 2300 , - 947 , - 58 , - 3345 , - 3384 , - 175 , - 1142 , - 2573 , - 756 , - 3115 , - 2226 , - 1801 , - 1840 , - 2343 , - 3310 , - 1029 , - 2924 , - 1571 , - 682 , - 257 , - 296 , - 799 , - 1766 , - 3197 , - 1380 , - 27 , - 2850 , - 2425 , - 2464 , - 2967 , - 222 , - 1653 , - 3548 , - 2195 , - 1306 , - 881 , - 920 , - 1423 , - 2390 , - 109 , - 2004 , - 651 , - 3474 , - 3049 , - 3088 , - 3591 , - 846 , - 2277 , - 460 , - 2819 , - 1930 , - 1505 , - 1544 , - 2047 , - 3014 , - 733 , - 2628 , - 1275 , - 386 , - 3673 , - 0 , - 415 , - 1302 , - 2661 , - 716 , - 3019 , - 2018 , - 1489 , - 1432 , - 1847 , - 2734 , - 317 , - 2148 , - 675 , - 3450 , - 2921 , - 2864 , - 3279 , - 390 , - 1749 , - 3580 , - 2107 , - 1106 , - 577 , - 520 , - 935 , - 1822 , - 3181 , - 1236 , - 3539 , - 2538 , - 2009 , - 1952 , - 2367 , - 3254 , - 837 , - 2668 , - 1195 , - 194 , - 3441 , - 3384 , - 23 , - 910 , - 2269 , - 324 , - 2627 , - 1626 , - 1097 , - 1040 , - 1455 , - 2342 , - 3701 , - 1756 , - 283 , - 3058 , - 2529 , - 2472 , - 2887 , - 3774 , - 1357 , - 3188 , - 1715 , - 714 , - 185 , - 128 , - 543 , - 1430 , - 2789 , - 844 , - 3147 , - 2146 , - 1617 , - 1560 , - 1975 , - 2862 , - 445 , - 2276 , - 803 , - 3578 , - 3049 , - 2992 , - 3407 , - 518 , - 1877 , - 3708 , - 2235 , - 1234 , - 705 , - 648 , - 1063 , - 1950 , - 3309 , - 1364 , - 3667 , - 2666 , - 2137 , - 2080 , - 2495 , - 3382 , - 965 , - 2796 , - 1323 , - 322 , - 3569 , - 3512 , - 151 , - 1038 , - 2397 , - 452 , - 2755 , - 1754 , - 1225 , - 1168 , - 1583 , - 2470 , - 53 , - 1884 , - 411 , - 3186 , - 2657 , - 2600 , - 3015 , - 126 , - 1485 , - 3316 , - 1843 , - 842 , - 313 , - 256 , - 671 , - 1558 , - 2917 , - 972 , - 3275 , - 2274 , - 1745 , - 1688 , - 2103 , - 2990 , - 573 , - 2404 , - 931 , - 3706 , - 3177 , - 3120 , - 3535 , - 646 , - 2005 , - 60 , - 2363 , - 1362 , - 833 , - 776 , - 1191 , - 2078 , - 3437 , - 1492 , - 19 , - 2794 , - 2265 , - 2208 , - 2623 , - 3510 , - 1093 , - 2924 , - 1451 , - 450 , - 3697 , - 3640 , - 279 , - 1166 , - 2525 , - 580 , - 2883 , - 1882 , - 1353 , - 1296 , - 1711 , - 2598 , - 181 , - 2012 , - 539 , - 3314 , - 2785 , - 2728 , - 3143 , - 254 , - 1613 , - 3444 , - 1971 , - 970 , - 441 , - 384 , - 799 , - 1686 , - 3045 , - 1100 , - 3403 , - 2402 , - 1873 , - 1816 , - 2231 , - 3118 , - 701 , - 2532 , - 1059 , - 58 , - 3305 , - 3248 , - 3663 , - 774 , - 2133 , - 188 , - 2491 , - 1490 , - 961 , - 904 , - 1319 , - 2206 , - 3565 , - 1620 , - 147 , - 2922 , - 2393 , - 2336 , - 2751 , - 3638 , - 1221 , - 3052 , - 1579 , - 578 , - 49 , - 3768 , - 407 , - 1294 , - 2653 , - 708 , - 3011 , - 2010 , - 1481 , - 1424 , - 1839 , - 2726 , - 309 , - 2140 , - 667 , - 3442 , - 2913 , - 2856 , - 3271 , - 382 , - 1741 , - 3572 , - 2099 , - 1098 , - 569 , - 512 , - 927 , - 1814 , - 3173 , - 1228 , - 3531 , - 2530 , - 2001 , - 1944 , - 2359 , - 3246 , - 829 , - 2660 , - 1187 , - 186 , - 3433 , - 3376 , - 15 , - 902 , - 2261 , - 316 , - 2619 , - 1618 , - 1089 , - 1032 , - 1447 , - 2334 , - 3693 , - 1748 , - 275 , - 3050 , - 2521 , - 2464 , - 2879 , - 3766 , - 1349 , - 3180 , - 1707 , - 706 , - 177 , - 120 , - 535 , - 1422 , - 2781 , - 836 , - 3139 , - 2138 , - 1609 , - 1552 , - 1967 , - 2854 , - 437 , - 2268 , - 795 , - 3570 , - 3041 , - 2984 , - 3399 , - 510 , - 1869 , - 3700 , - 2227 , - 1226 , - 697 , - 640 , - 1055 , - 1942 , - 3301 , - 1356 , - 3659 , - 2658 , - 2129 , - 2072 , - 2487 , - 3374 , - 957 , - 2788 , - 1315 , - 314 , - 3561 , - 3504 , - 143 , - 1030 , - 2389 , - 444 , - 2747 , - 1746 , - 1217 , - 1160 , - 1575 , - 2462 , - 45 , - 1876 , - 403 , - 3178 , - 2649 , - 2592 , - 3007 , - 118 , - 1477 , - 3308 , - 1835 , - 834 , - 305 , - 248 , - 663 , - 1550 , - 2909 , - 964 , - 3267 , - 2266 , - 1737 , - 1680 , - 2095 , - 2982 , - 565 , - 2396 , - 923 , - 3698 , - 3169 , - 3112 , - 3527 , - 638 , - 1997 , - 52 , - 2355 , - 1354 , - 825 , - 768 , - 1183 , - 2070 , - 3429 , - 1484 , - 11 , - 2786 , - 2257 , - 2200 , - 2615 , - 3502 , - 1085 , - 2916 , - 1443 , - 442 , - 3689 , - 3632 , - 271 , - 1158 , - 2517 , - 572 , - 2875 , - 1874 , - 1345 , - 1288 , - 1703 , - 2590 , - 173 , - 2004 , - 531 , - 3306 , - 2777 , - 2720 , - 3135 , - 246 , - 1605 , - 3436 , - 1963 , - 962 , - 433 , - 376 , - 791 , - 1678 , - 3037 , - 1092 , - 3395 , - 2394 , - 1865 , - 1808 , - 2223 , - 3110 , - 693 , - 2524 , - 1051 , - 50 , - 3297 , - 3240 , - 3655 , - 766 , - 2125 , - 180 , - 2483 , - 1482 , - 953 , - 896 , - 1311 , - 2198 , - 3557 , - 1612 , - 139 , - 2914 , - 2385 , - 2328 , - 2743 , - 3630 , - 1213 , - 3044 , - 1571 , - 570 , - 41 , - 3760 , - 399 , - 1286 , - 2645 , - 700 , - 3003 , - 2002 , - 1473 , - 1416 , - 1831 , - 2718 , - 301 , - 2132 , - 659 , - 3434 , - 2905 , - 2848 , - 3263 , - 374 , - 1733 , - 3564 , - 2091 , - 1090 , - 561 , - 504 , - 919 , - 1806 , - 3165 , - 1220 , - 3523 , - 2522 , - 1993 , - 1936 , - 2351 , - 3238 , - 821 , - 2652 , - 1179 , - 178 , - 3425 , - 3368 , - 7 , - 894 , - 2253 , - 308 , - 2611 , - 1610 , - 1081 , - 1024 , - 1439 , - 2326 , - 3685 , - 1740 , - 267 , - 3042 , - 2513 , - 2456 , - 2871 , - 3758 , - 1341 , - 3172 , - 1699 , - 698 , - 169 , - 112 , - 527 , - 1414 , - 2773 , - 828 , - 3131 , - 2130 , - 1601 , - 1544 , - 1959 , - 2846 , - 429 , - 2260 , - 787 , - 3562 , - 3033 , - 2976 , - 3391 , - 502 , - 1861 , - 3692 , - 2219 , - 1218 , - 689 , - 632 , - 1047 , - 1934 , - 3293 , - 1348 , - 3651 , - 2650 , - 2121 , - 2064 , - 2479 , - 3366 , - 949 , - 2780 , - 1307 , - 306 , - 3553 , - 3496 , - 135 , - 1022 , - 2381 , - 436 , - 2739 , - 1738 , - 1209 , - 1152 , - 1567 , - 2454 , - 37 , - 1868 , - 395 , - 3170 , - 2641 , - 2584 , - 2999 , - 110 , - 1469 , - 3300 , - 1827 , - 826 , - 297 , - 240 , - 655 , - 1542 , - 2901 , - 956 , - 3259 , - 2258 , - 1729 , - 1672 , - 2087 , - 2974 , - 557 , - 2388 , - 915 , - 3690 , - 3161 , - 3104 , - 3519 , - 630 , - 1989 , - 44 , - 2347 , - 1346 , - 817 , - 760 , - 1175 , - 2062 , - 3421 , - 1476 , - 3 , - 2778 , - 2249 , - 2192 , - 2607 , - 3494 , - 1077 , - 2908 , - 1435 , - 434 , - 3681 , - 3624 , - 263 , - 1150 , - 2509 , - 564 , - 2867 , - 1866 , - 1337 , - 1280 , - 1695 , - 2582 , - 165 , - 1996 , - 523 , - 3298 , - 2769 , - 2712 , - 3127 , - 238 , - 1597 , - 3428 , - 1955 , - 954 , - 425 , - 368 , - 783 , - 1670 , - 3029 , - 1084 , - 3387 , - 2386 , - 1857 , - 1800 , - 2215 , - 3102 , - 685 , - 2516 , - 1043 , - 42 , - 3289 , - 3232 , - 3647 , - 758 , - 2117 , - 172 , - 2475 , - 1474 , - 945 , - 888 , - 1303 , - 2190 , - 3549 , - 1604 , - 131 , - 2906 , - 2377 , - 2320 , - 2735 , - 3622 , - 1205 , - 3036 , - 1563 , - 562 , - 33 , - 3752 , - 391 , - 1278 , - 2637 , - 692 , - 2995 , - 1994 , - 1465 , - 1408 , - 1823 , - 2710 , - 293 , - 2124 , - 651 , - 3426 , - 2897 , - 2840 , - 3255 , - 366 , - 1725 , - 3556 , - 2083 , - 1082 , - 553 , - 496 , - 911 , - 1798 , - 3157 , - 1212 , - 3515 , - 2514 , - 1985 , - 1928 , - 2343 , - 3230 , - 813 , - 2644 , - 1171 , - 170 , - 3417 , - 3360 , - 3775 , - 886 , - 2245 , - 300 , - 2603 , - 1602 , - 1073 , - 1016 , - 1431 , - 2318 , - 3677 , - 1732 , - 259 , - 3034 , - 2505 , - 2448 , - 2863 , - 3750 , - 1333 , - 3164 , - 1691 , - 690 , - 161 , - 104 , - 519 , - 1406 , - 2765 , - 820 , - 3123 , - 2122 , - 1593 , - 1536 , - 1951 , - 2838 , - 421 , - 2252 , - 779 , - 3554 , - 3025 , - 2968 , - 3383 , - 494 , - 1853 , - 3684 , - 2211 , - 1210 , - 681 , - 624 , - 1039 , - 1926 , - 3285 , - 1340 , - 3643 , - 2642 , - 2113 , - 2056 , - 2471 , - 3358 , - 941 , - 2772 , - 1299 , - 298 , - 3545 , - 3488 , - 127 , - 1014 , - 2373 , - 428 , - 2731 , - 1730 , - 1201 , - 1144 , - 1559 , - 2446 , - 29 , - 1860 , - 387 , - 3162 , - 2633 , - 2576 , - 2991 , - 102 , - 1461 , - 3292 , - 1819 , - 818 , - 289 , - 232 , - 647 , - 1534 , - 2893 , - 948 , - 3251 , - 2250 , - 1721 , - 1664 , - 2079 , - 2966 , - 549 , - 2380 , - 907 , - 3682 , - 3153 , - 3096 , - 3511 , - 622 , - 1981 , - 36 , - 2339 , - 1338 , - 809 , - 752 , - 1167 , - 2054 , - 3413 , - 1468 , - 3771 , - 2770 , - 2241 , - 2184 , - 2599 , - 3486 , - 1069 , - 2900 , - 1427 , - 426 , - 3673 , - 3616 , - 255 , - 1142 , - 2501 , - 556 , - 2859 , - 1858 , - 1329 , - 1272 , - 1687 , - 2574 , - 157 , - 1988 , - 515 , - 3290 , - 2761 , - 2704 , - 3119 , - 230 , - 1589 , - 3420 , - 1947 , - 946 , - 417 , - 360 , - 775 , - 1662 , - 3021 , - 1076 , - 3379 , - 2378 , - 1849 , - 1792 , - 2207 , - 3094 , - 677 , - 2508 , - 1035 , - 34 , - 3281 , - 3224 , - 3639 , - 750 , - 2109 , - 164 , - 2467 , - 1466 , - 937 , - 880 , - 1295 , - 2182 , - 3541 , - 1596 , - 123 , - 2898 , - 2369 , - 2312 , - 2727 , - 3614 , - 1197 , - 3028 , - 1555 , - 554 , - 25 , - 3744 , - 383 , - 1270 , - 2629 , - 684 , - 2987 , - 1986 , - 1457 , - 1400 , - 1815 , - 2702 , - 285 , - 2116 , - 643 , - 3418 , - 2889 , - 2832 , - 3247 , - 358 , - 1717 , - 3548 , - 2075 , - 1074 , - 545 , - 488 , - 903 , - 1790 , - 3149 , - 1204 , - 3507 , - 2506 , - 1977 , - 1920 , - 2335 , - 3222 , - 805 , - 2636 , - 1163 , - 162 , - 3409 , - 3352 , - 3767 , - 878 , - 2237 , - 292 , - 2595 , - 1594 , - 1065 , - 1008 , - 1423 , - 2310 , - 3669 , - 1724 , - 251 , - 3026 , - 2497 , - 2440 , - 2855 , - 3742 , - 1325 , - 3156 , - 1683 , - 682 , - 153 , - 96 , - 511 , - 1398 , - 2757 , - 812 , - 3115 , - 2114 , - 1585 , - 1528 , - 1943 , - 2830 , - 413 , - 2244 , - 771 , - 3546 , - 3017 , - 2960 , - 3375 , - 486 , - 1845 , - 3676 , - 2203 , - 1202 , - 673 , - 616 , - 1031 , - 1918 , - 3277 , - 1332 , - 3635 , - 2634 , - 2105 , - 2048 , - 2463 , - 3350 , - 933 , - 2764 , - 1291 , - 290 , - 3537 , - 3480 , - 119 , - 1006 , - 2365 , - 420 , - 2723 , - 1722 , - 1193 , - 1136 , - 1551 , - 2438 , - 21 , - 1852 , - 379 , - 3154 , - 2625 , - 2568 , - 2983 , - 94 , - 1453 , - 3284 , - 1811 , - 810 , - 281 , - 224 , - 639 , - 1526 , - 2885 , - 940 , - 3243 , - 2242 , - 1713 , - 1656 , - 2071 , - 2958 , - 541 , - 2372 , - 899 , - 3674 , - 3145 , - 3088 , - 3503 , - 614 , - 1973 , - 28 , - 2331 , - 1330 , - 801 , - 744 , - 1159 , - 2046 , - 3405 , - 1460 , - 3763 , - 2762 , - 2233 , - 2176 , - 2591 , - 3478 , - 1061 , - 2892 , - 1419 , - 418 , - 3665 , - 3608 , - 247 , - 1134 , - 2493 , - 548 , - 2851 , - 1850 , - 1321 , - 1264 , - 1679 , - 2566 , - 149 , - 1980 , - 507 , - 3282 , - 2753 , - 2696 , - 3111 , - 222 , - 1581 , - 3412 , - 1939 , - 938 , - 409 , - 352 , - 767 , - 1654 , - 3013 , - 1068 , - 3371 , - 2370 , - 1841 , - 1784 , - 2199 , - 3086 , - 669 , - 2500 , - 1027 , - 26 , - 3273 , - 3216 , - 3631 , - 742 , - 2101 , - 156 , - 2459 , - 1458 , - 929 , - 872 , - 1287 , - 2174 , - 3533 , - 1588 , - 115 , - 2890 , - 2361 , - 2304 , - 2719 , - 3606 , - 1189 , - 3020 , - 1547 , - 546 , - 17 , - 3736 , - 375 , - 1262 , - 2621 , - 676 , - 2979 , - 1978 , - 1449 , - 1392 , - 1807 , - 2694 , - 277 , - 2108 , - 635 , - 3410 , - 2881 , - 2824 , - 3239 , - 350 , - 1709 , - 3540 , - 2067 , - 1066 , - 537 , - 480 , - 895 , - 1782 , - 3141 , - 1196 , - 3499 , - 2498 , - 1969 , - 1912 , - 2327 , - 3214 , - 797 , - 2628 , - 1155 , - 154 , - 3401 , - 3344 , - 3759 , - 870 , - 2229 , - 284 , - 2587 , - 1586 , - 1057 , - 1000 , - 1415 , - 2302 , - 3661 , - 1716 , - 243 , - 3018 , - 2489 , - 2432 , - 2847 , - 3734 , - 1317 , - 3148 , - 1675 , - 674 , - 145 , - 88 , - 503 , - 1390 , - 2749 , - 804 , - 3107 , - 2106 , - 1577 , - 1520 , - 1935 , - 2822 , - 405 , - 2236 , - 763 , - 3538 , - 3009 , - 2952 , - 3367 , - 478 , - 1837 , - 3668 , - 2195 , - 1194 , - 665 , - 608 , - 1023 , - 1910 , - 3269 , - 1324 , - 3627 , - 2626 , - 2097 , - 2040 , - 2455 , - 3342 , - 925 , - 2756 , - 1283 , - 282 , - 3529 , - 3472 , - 111 , - 998 , - 2357 , - 412 , - 2715 , - 1714 , - 1185 , - 1128 , - 1543 , - 2430 , - 13 , - 1844 , - 371 , - 3146 , - 2617 , - 2560 , - 2975 , - 86 , - 1445 , - 3276 , - 1803 , - 802 , - 273 , - 216 , - 631 , - 1518 , - 2877 , - 932 , - 3235 , - 2234 , - 1705 , - 1648 , - 2063 , - 2950 , - 533 , - 2364 , - 891 , - 3666 , - 3137 , - 3080 , - 3495 , - 606 , - 1965 , - 20 , - 2323 , - 1322 , - 793 , - 736 , - 1151 , - 2038 , - 3397 , - 1452 , - 3755 , - 2754 , - 2225 , - 2168 , - 2583 , - 3470 , - 1053 , - 2884 , - 1411 , - 410 , - 3657 , - 3600 , - 239 , - 1126 , - 2485 , - 540 , - 2843 , - 1842 , - 1313 , - 1256 , - 1671 , - 2558 , - 141 , - 1972 , - 499 , - 3274 , - 2745 , - 2688 , - 3103 , - 214 , - 1573 , - 3404 , - 1931 , - 930 , - 401 , - 344 , - 759 , - 1646 , - 3005 , - 1060 , - 3363 , - 2362 , - 1833 , - 1776 , - 2191 , - 3078 , - 661 , - 2492 , - 1019 , - 18 , - 3265 , - 3208 , - 3623 , - 734 , - 2093 , - 148 , - 2451 , - 1450 , - 921 , - 864 , - 1279 , - 2166 , - 3525 , - 1580 , - 107 , - 2882 , - 2353 , - 2296 , - 2711 , - 3598 , - 1181 , - 3012 , - 1539 , - 538 , - 9 , - 3728 , - 367 , - 1254 , - 2613 , - 668 , - 2971 , - 1970 , - 1441 , - 1384 , - 1799 , - 2686 , - 269 , - 2100 , - 627 , - 3402 , - 2873 , - 2816 , - 3231 , - 342 , - 1701 , - 3532 , - 2059 , - 1058 , - 529 , - 472 , - 887 , - 1774 , - 3133 , - 1188 , - 3491 , - 2490 , - 1961 , - 1904 , - 2319 , - 3206 , - 789 , - 2620 , - 1147 , - 146 , - 3393 , - 3336 , - 3751 , - 862 , - 2221 , - 276 , - 2579 , - 1578 , - 1049 , - 992 , - 1407 , - 2294 , - 3653 , - 1708 , - 235 , - 3010 , - 2481 , - 2424 , - 2839 , - 3726 , - 1309 , - 3140 , - 1667 , - 666 , - 137 , - 80 , - 495 , - 1382 , - 2741 , - 796 , - 3099 , - 2098 , - 1569 , - 1512 , - 1927 , - 2814 , - 397 , - 2228 , - 755 , - 3530 , - 3001 , - 2944 , - 3359 , - 470 , - 1829 , - 3660 , - 2187 , - 1186 , - 657 , - 600 , - 1015 , - 1902 , - 3261 , - 1316 , - 3619 , - 2618 , - 2089 , - 2032 , - 2447 , - 3334 , - 917 , - 2748 , - 1275 , - 274 , - 3521 , - 3464 , - 103 , - 990 , - 2349 , - 404 , - 2707 , - 1706 , - 1177 , - 1120 , - 1535 , - 2422 , - 5 , - 1836 , - 363 , - 3138 , - 2609 , - 2552 , - 2967 , - 78 , - 1437 , - 3268 , - 1795 , - 794 , - 265 , - 208 , - 623 , - 1510 , - 2869 , - 924 , - 3227 , - 2226 , - 1697 , - 1640 , - 2055 , - 2942 , - 525 , - 2356 , - 883 , - 3658 , - 3129 , - 3072 , - 3487 , - 598 , - 1957 , - 12 , - 2315 , - 1314 , - 785 , - 728 , - 1143 , - 2030 , - 3389 , - 1444 , - 3747 , - 2746 , - 2217 , - 2160 , - 2575 , - 3462 , - 1045 , - 2876 , - 1403 , - 402 , - 3649 , - 3592 , - 231 , - 1118 , - 2477 , - 532 , - 2835 , - 1834 , - 1305 , - 1248 , - 1663 , - 2550 , - 133 , - 1964 , - 491 , - 3266 , - 2737 , - 2680 , - 3095 , - 206 , - 1565 , - 3396 , - 1923 , - 922 , - 393 , - 336 , - 751 , - 1638 , - 2997 , - 1052 , - 3355 , - 2354 , - 1825 , - 1768 , - 2183 , - 3070 , - 653 , - 2484 , - 1011 , - 10 , - 3257 , - 3200 , - 3615 , - 726 , - 2085 , - 140 , - 2443 , - 1442 , - 913 , - 856 , - 1271 , - 2158 , - 3517 , - 1572 , - 99 , - 2874 , - 2345 , - 2288 , - 2703 , - 3590 , - 1173 , - 3004 , - 1531 , - 530 , - 1 , - 3720 , - 359 , - 1246 , - 2605 , - 660 , - 2963 , - 1962 , - 1433 , - 1376 , - 1791 , - 2678 , - 261 , - 2092 , - 619 , - 3394 , - 2865 , - 2808 , - 3223 , - 334 , - 1693 , - 3524 , - 2051 , - 1050 , - 521 , - 464 , - 879 , - 1766 , - 3125 , - 1180 , - 3483 , - 2482 , - 1953 , - 1896 , - 2311 , - 3198 , - 781 , - 2612 , - 1139 , - 138 , - 3385 , - 3328 , - 3743 , - 854 , - 2213 , - 268 , - 2571 , - 1570 , - 1041 , - 984 , - 1399 , - 2286 , - 3645 , - 1700 , - 227 , - 3002 , - 2473 , - 2416 , - 2831 , - 3718 , - 1301 , - 3132 , - 1659 , - 658 , - 129 , - 72 , - 487 , - 1374 , - 2733 , - 788 , - 3091 , - 2090 , - 1561 , - 1504 , - 1919 , - 2806 , - 389 , - 2220 , - 747 , - 3522 , - 2993 , - 2936 , - 3351 , - 462 , - 1821 , - 3652 , - 2179 , - 1178 , - 649 , - 592 , - 1007 , - 1894 , - 3253 , - 1308 , - 3611 , - 2610 , - 2081 , - 2024 , - 2439 , - 3326 , - 909 , - 2740 , - 1267 , - 266 , - 3513 , - 3456 , - 95 , - 982 , - 2341 , - 396 , - 2699 , - 1698 , - 1169 , - 1112 , - 1527 , - 2414 , - 3773 , - 1828 , - 355 , - 3130 , - 2601 , - 2544 , - 2959 , - 70 , - 1429 , - 3260 , - 1787 , - 786 , - 257 , - 200 , - 615 , - 1502 , - 2861 , - 916 , - 3219 , - 2218 , - 1689 , - 1632 , - 2047 , - 2934 , - 517 , - 2348 , - 875 , - 3650 , - 3121 , - 3064 , - 3479 , - 590 , - 1949 , - 4 , - 2307 , - 1306 , - 777 , - 720 , - 1135 , - 2022 , - 3381 , - 1436 , - 3739 , - 2738 , - 2209 , - 2152 , - 2567 , - 3454 , - 1037 , - 2868 , - 1395 , - 394 , - 3641 , - 3584 , - 223 , - 1110 , - 2469 , - 524 , - 2827 , - 1826 , - 1297 , - 1240 , - 1655 , - 2542 , - 125 , - 1956 , - 483 , - 3258 , - 2729 , - 2672 , - 3087 , - 198 , - 1557 , - 3388 , - 1915 , - 914 , - 385 , - 328 , - 743 , - 1630 , - 2989 , - 1044 , - 3347 , - 2346 , - 1817 , - 1760 , - 2175 , - 3062 , - 645 , - 2476 , - 1003 , - 2 , - 3249 , - 3192 , - 3607 , - 718 , - 2077 , - 132 , - 2435 , - 1434 , - 905 , - 848 , - 1263 , - 2150 , - 3509 , - 1564 , - 91 , - 2866 , - 2337 , - 2280 , - 2695 , - 3582 , - 1165 , - 2996 , - 1523 , - 522 , - 3769 , - 3712 , - 351 , - 1238 , - 2597 , - 652 , - 2955 , - 1954 , - 1425 , - 1368 , - 1783 , - 2670 , - 253 , - 2084 , - 611 , - 3386 , - 2857 , - 2800 , - 3215 , - 326 , - 1685 , - 3516 , - 2043 , - 1042 , - 513 , - 456 , - 871 , - 1758 , - 3117 , - 1172 , - 3475 , - 2474 , - 1945 , - 1888 , - 2303 , - 3190 , - 773 , - 2604 , - 1131 , - 130 , - 3377 , - 3320 , - 3735 , - 846 , - 2205 , - 260 , - 2563 , - 1562 , - 1033 , - 976 , - 1391 , - 2278 , - 3637 , - 1692 , - 219 , - 2994 , - 2465 , - 2408 , - 2823 , - 3710 , - 1293 , - 3124 , - 1651 , - 650 , - 121 , - 64 , - 479 , - 1366 , - 2725 , - 780 , - 3083 , - 2082 , - 1553 , - 1496 , - 1911 , - 2798 , - 381 , - 2212 , - 739 , - 3514 , - 2985 , - 2928 , - 3343 , - 454 , - 1813 , - 3644 , - 2171 , - 1170 , - 641 , - 584 , - 999 , - 1886 , - 3245 , - 1300 , - 3603 , - 2602 , - 2073 , - 2016 , - 2431 , - 3318 , - 901 , - 2732 , - 1259 , - 258 , - 3505 , - 3448 , - 87 , - 974 , - 2333 , - 388 , - 2691 , - 1690 , - 1161 , - 1104 , - 1519 , - 2406 , - 3765 , - 1820 , - 347 , - 3122 , - 2593 , - 2536 , - 2951 , - 62 , - 1421 , - 3252 , - 1779 , - 778 , - 249 , - 192 , - 607 , - 1494 , - 2853 , - 908 , - 3211 , - 2210 , - 1681 , - 1624 , - 2039 , - 2926 , - 509 , - 2340 , - 867 , - 3642 , - 3113 , - 3056 , - 3471 , - 582 , - 1941 , - 3772 , - 2299 , - 1298 , - 769 , - 712 , - 1127 , - 2014 , - 3373 , - 1428 , - 3731 , - 2730 , - 2201 , - 2144 , - 2559 , - 3446 , - 1029 , - 2860 , - 1387 , - 386 , - 3633 , - 3576 , - 215 , - 1102 , - 2461 , - 516 , - 2819 , - 1818 , - 1289 , - 1232 , - 1647 , - 2534 , - 117 , - 1948 , - 475 , - 3250 , - 2721 , - 2664 , - 3079 , - 190 , - 1549 , - 3380 , - 1907 , - 906 , - 377 , - 320 , - 735 , - 1622 , - 2981 , - 1036 , - 3339 , - 2338 , - 1809 , - 1752 , - 2167 , - 3054 , - 637 , - 2468 , - 995 , - 3770 , - 3241 , - 3184 , - 3599 , - 710 , - 2069 , - 124 , - 2427 , - 1426 , - 897 , - 840 , - 1255 , - 2142 , - 3501 , - 1556 , - 83 , - 2858 , - 2329 , - 2272 , - 2687 , - 3574 , - 1157 , - 2988 , - 1515 , - 514 , - 3761 , - 3704 , - 343 , - 1230 , - 2589 , - 644 , - 2947 , - 1946 , - 1417 , - 1360 , - 1775 , - 2662 , - 245 , - 2076 , - 603 , - 3378 , - 2849 , - 2792 , - 3207 , - 318 , - 1677 , - 3508 , - 2035 , - 1034 , - 505 , - 448 , - 863 , - 1750 , - 3109 , - 1164 , - 3467 , - 2466 , - 1937 , - 1880 , - 2295 , - 3182 , - 765 , - 2596 , - 1123 , - 122 , - 3369 , - 3312 , - 3727 , - 838 , - 2197 , - 252 , - 2555 , - 1554 , - 1025 , - 968 , - 1383 , - 2270 , - 3629 , - 1684 , - 211 , - 2986 , - 2457 , - 2400 , - 2815 , - 3702 , - 1285 , - 3116 , - 1643 , - 642 , - 113 , - 56 , - 471 , - 1358 , - 2717 , - 772 , - 3075 , - 2074 , - 1545 , - 1488 , - 1903 , - 2790 , - 373 , - 2204 , - 731 , - 3506 , - 2977 , - 2920 , - 3335 , - 446 , - 1805 , - 3636 , - 2163 , - 1162 , - 633 , - 576 , - 991 , - 1878 , - 3237 , - 1292 , - 3595 , - 2594 , - 2065 , - 2008 , - 2423 , - 3310 , - 893 , - 2724 , - 1251 , - 250 , - 3497 , - 3440 , - 79 , - 966 , - 2325 , - 380 , - 2683 , - 1682 , - 1153 , - 1096 , - 1511 , - 2398 , - 3757 , - 1812 , - 339 , - 3114 , - 2585 , - 2528 , - 2943 , - 54 , - 1413 , - 3244 , - 1771 , - 770 , - 241 , - 184 , - 599 , - 1486 , - 2845 , - 900 , - 3203 , - 2202 , - 1673 , - 1616 , - 2031 , - 2918 , - 501 , - 2332 , - 859 , - 3634 , - 3105 , - 3048 , - 3463 , - 574 , - 1933 , - 3764 , - 2291 , - 1290 , - 761 , - 704 , - 1119 , - 2006 , - 3365 , - 1420 , - 3723 , - 2722 , - 2193 , - 2136 , - 2551 , - 3438 , - 1021 , - 2852 , - 1379 , - 378 , - 3625 , - 3568 , - 207 , - 1094 , - 2453 , - 508 , - 2811 , - 1810 , - 1281 , - 1224 , - 1639 , - 2526 , - 109 , - 1940 , - 467 , - 3242 , - 2713 , - 2656 , - 3071 , - 182 , - 1541 , - 3372 , - 1899 , - 898 , - 369 , - 312 , - 727 , - 1614 , - 2973 , - 1028 , - 3331 , - 2330 , - 1801 , - 1744 , - 2159 , - 3046 , - 629 , - 2460 , - 987 , - 3762 , - 3233 , - 3176 , - 3591 , - 702 , - 2061 , - 116 , - 2419 , - 1418 , - 889 , - 832 , - 1247 , - 2134 , - 3493 , - 1548 , - 75 , - 2850 , - 2321 , - 2264 , - 2679 , - 3566 , - 1149 , - 2980 , - 1507 , - 506 , - 3753 , - 3696 , - 335 , - 1222 , - 2581 , - 636 , - 2939 , - 1938 , - 1409 , - 1352 , - 1767 , - 2654 , - 237 , - 2068 , - 595 , - 3370 , - 2841 , - 2784 , - 3199 , - 310 , - 1669 , - 3500 , - 2027 , - 1026 , - 497 , - 440 , - 855 , - 1742 , - 3101 , - 1156 , - 3459 , - 2458 , - 1929 , - 1872 , - 2287 , - 3174 , - 757 , - 2588 , - 1115 , - 114 , - 3361 , - 3304 , - 3719 , - 830 , - 2189 , - 244 , - 2547 , - 1546 , - 1017 , - 960 , - 1375 , - 2262 , - 3621 , - 1676 , - 203 , - 2978 , - 2449 , - 2392 , - 2807 , - 3694 , - 1277 , - 3108 , - 1635 , - 634 , - 105 , - 48 , - 463 , - 1350 , - 2709 , - 764 , - 3067 , - 2066 , - 1537 , - 1480 , - 1895 , - 2782 , - 365 , - 2196 , - 723 , - 3498 , - 2969 , - 2912 , - 3327 , - 438 , - 1797 , - 3628 , - 2155 , - 1154 , - 625 , - 568 , - 983 , - 1870 , - 3229 , - 1284 , - 3587 , - 2586 , - 2057 , - 2000 , - 2415 , - 3302 , - 885 , - 2716 , - 1243 , - 242 , - 3489 , - 3432 , - 71 , - 958 , - 2317 , - 372 , - 2675 , - 1674 , - 1145 , - 1088 , - 1503 , - 2390 , - 3749 , - 1804 , - 331 , - 3106 , - 2577 , - 2520 , - 2935 , - 46 , - 1405 , - 3236 , - 1763 , - 762 , - 233 , - 176 , - 591 , - 1478 , - 2837 , - 892 , - 3195 , - 2194 , - 1665 , - 1608 , - 2023 , - 2910 , - 493 , - 2324 , - 851 , - 3626 , - 3097 , - 3040 , - 3455 , - 566 , - 1925 , - 3756 , - 2283 , - 1282 , - 753 , - 696 , - 1111 , - 1998 , - 3357 , - 1412 , - 3715 , - 2714 , - 2185 , - 2128 , - 2543 , - 3430 , - 1013 , - 2844 , - 1371 , - 370 , - 3617 , - 3560 , - 199 , - 1086 , - 2445 , - 500 , - 2803 , - 1802 , - 1273 , - 1216 , - 1631 , - 2518 , - 101 , - 1932 , - 459 , - 3234 , - 2705 , - 2648 , - 3063 , - 174 , - 1533 , - 3364 , - 1891 , - 890 , - 361 , - 304 , - 719 , - 1606 , - 2965 , - 1020 , - 3323 , - 2322 , - 1793 , - 1736 , - 2151 , - 3038 , - 621 , - 2452 , - 979 , - 3754 , - 3225 , - 3168 , - 3583 , - 694 , - 2053 , - 108 , - 2411 , - 1410 , - 881 , - 824 , - 1239 , - 2126 , - 3485 , - 1540 , - 67 , - 2842 , - 2313 , - 2256 , - 2671 , - 3558 , - 1141 , - 2972 , - 1499 , - 498 , - 3745 , - 3688 , - 327 , - 1214 , - 2573 , - 628 , - 2931 , - 1930 , - 1401 , - 1344 , - 1759 , - 2646 , - 229 , - 2060 , - 587 , - 3362 , - 2833 , - 2776 , - 3191 , - 302 , - 1661 , - 3492 , - 2019 , - 1018 , - 489 , - 432 , - 847 , - 1734 , - 3093 , - 1148 , - 3451 , - 2450 , - 1921 , - 1864 , - 2279 , - 3166 , - 749 , - 2580 , - 1107 , - 106 , - 3353 , - 3296 , - 3711 , - 822 , - 2181 , - 236 , - 2539 , - 1538 , - 1009 , - 952 , - 1367 , - 2254 , - 3613 , - 1668 , - 195 , - 2970 , - 2441 , - 2384 , - 2799 , - 3686 , - 1269 , - 3100 , - 1627 , - 626 , - 97 , - 40 , - 455 , - 1342 , - 2701 , - 756 , - 3059 , - 2058 , - 1529 , - 1472 , - 1887 , - 2774 , - 357 , - 2188 , - 715 , - 3490 , - 2961 , - 2904 , - 3319 , - 430 , - 1789 , - 3620 , - 2147 , - 1146 , - 617 , - 560 , - 975 , - 1862 , - 3221 , - 1276 , - 3579 , - 2578 , - 2049 , - 1992 , - 2407 , - 3294 , - 877 , - 2708 , - 1235 , - 234 , - 3481 , - 3424 , - 63 , - 950 , - 2309 , - 364 , - 2667 , - 1666 , - 1137 , - 1080 , - 1495 , - 2382 , - 3741 , - 1796 , - 323 , - 3098 , - 2569 , - 2512 , - 2927 , - 38 , - 1397 , - 3228 , - 1755 , - 754 , - 225 , - 168 , - 583 , - 1470 , - 2829 , - 884 , - 3187 , - 2186 , - 1657 , - 1600 , - 2015 , - 2902 , - 485 , - 2316 , - 843 , - 3618 , - 3089 , - 3032 , - 3447 , - 558 , - 1917 , - 3748 , - 2275 , - 1274 , - 745 , - 688 , - 1103 , - 1990 , - 3349 , - 1404 , - 3707 , - 2706 , - 2177 , - 2120 , - 2535 , - 3422 , - 1005 , - 2836 , - 1363 , - 362 , - 3609 , - 3552 , - 191 , - 1078 , - 2437 , - 492 , - 2795 , - 1794 , - 1265 , - 1208 , - 1623 , - 2510 , - 93 , - 1924 , - 451 , - 3226 , - 2697 , - 2640 , - 3055 , - 166 , - 1525 , - 3356 , - 1883 , - 882 , - 353 , - 296 , - 711 , - 1598 , - 2957 , - 1012 , - 3315 , - 2314 , - 1785 , - 1728 , - 2143 , - 3030 , - 613 , - 2444 , - 971 , - 3746 , - 3217 , - 3160 , - 3575 , - 686 , - 2045 , - 100 , - 2403 , - 1402 , - 873 , - 816 , - 1231 , - 2118 , - 3477 , - 1532 , - 59 , - 2834 , - 2305 , - 2248 , - 2663 , - 3550 , - 1133 , - 2964 , - 1491 , - 490 , - 3737 , - 3680 , - 319 , - 1206 , - 2565 , - 620 , - 2923 , - 1922 , - 1393 , - 1336 , - 1751 , - 2638 , - 221 , - 2052 , - 579 , - 3354 , - 2825 , - 2768 , - 3183 , - 294 , - 1653 , - 3484 , - 2011 , - 1010 , - 481 , - 424 , - 839 , - 1726 , - 3085 , - 1140 , - 3443 , - 2442 , - 1913 , - 1856 , - 2271 , - 3158 , - 741 , - 2572 , - 1099 , - 98 , - 3345 , - 3288 , - 3703 , - 814 , - 2173 , - 228 , - 2531 , - 1530 , - 1001 , - 944 , - 1359 , - 2246 , - 3605 , - 1660 , - 187 , - 2962 , - 2433 , - 2376 , - 2791 , - 3678 , - 1261 , - 3092 , - 1619 , - 618 , - 89 , - 32 , - 447 , - 1334 , - 2693 , - 748 , - 3051 , - 2050 , - 1521 , - 1464 , - 1879 , - 2766 , - 349 , - 2180 , - 707 , - 3482 , - 2953 , - 2896 , - 3311 , - 422 , - 1781 , - 3612 , - 2139 , - 1138 , - 609 , - 552 , - 967 , - 1854 , - 3213 , - 1268 , - 3571 , - 2570 , - 2041 , - 1984 , - 2399 , - 3286 , - 869 , - 2700 , - 1227 , - 226 , - 3473 , - 3416 , - 55 , - 942 , - 2301 , - 356 , - 2659 , - 1658 , - 1129 , - 1072 , - 1487 , - 2374 , - 3733 , - 1788 , - 315 , - 3090 , - 2561 , - 2504 , - 2919 , - 30 , - 1389 , - 3220 , - 1747 , - 746 , - 217 , - 160 , - 575 , - 1462 , - 2821 , - 876 , - 3179 , - 2178 , - 1649 , - 1592 , - 2007 , - 2894 , - 477 , - 2308 , - 835 , - 3610 , - 3081 , - 3024 , - 3439 , - 550 , - 1909 , - 3740 , - 2267 , - 1266 , - 737 , - 680 , - 1095 , - 1982 , - 3341 , - 1396 , - 3699 , - 2698 , - 2169 , - 2112 , - 2527 , - 3414 , - 997 , - 2828 , - 1355 , - 354 , - 3601 , - 3544 , - 183 , - 1070 , - 2429 , - 484 , - 2787 , - 1786 , - 1257 , - 1200 , - 1615 , - 2502 , - 85 , - 1916 , - 443 , - 3218 , - 2689 , - 2632 , - 3047 , - 158 , - 1517 , - 3348 , - 1875 , - 874 , - 345 , - 288 , - 703 , - 1590 , - 2949 , - 1004 , - 3307 , - 2306 , - 1777 , - 1720 , - 2135 , - 3022 , - 605 , - 2436 , - 963 , - 3738 , - 3209 , - 3152 , - 3567 , - 678 , - 2037 , - 92 , - 2395 , - 1394 , - 865 , - 808 , - 1223 , - 2110 , - 3469 , - 1524 , - 51 , - 2826 , - 2297 , - 2240 , - 2655 , - 3542 , - 1125 , - 2956 , - 1483 , - 482 , - 3729 , - 3672 , - 311 , - 1198 , - 2557 , - 612 , - 2915 , - 1914 , - 1385 , - 1328 , - 1743 , - 2630 , - 213 , - 2044 , - 571 , - 3346 , - 2817 , - 2760 , - 3175 , - 286 , - 1645 , - 3476 , - 2003 , - 1002 , - 473 , - 416 , - 831 , - 1718 , - 3077 , - 1132 , - 3435 , - 2434 , - 1905 , - 1848 , - 2263 , - 3150 , - 733 , - 2564 , - 1091 , - 90 , - 3337 , - 3280 , - 3695 , - 806 , - 2165 , - 220 , - 2523 , - 1522 , - 993 , - 936 , - 1351 , - 2238 , - 3597 , - 1652 , - 179 , - 2954 , - 2425 , - 2368 , - 2783 , - 3670 , - 1253 , - 3084 , - 1611 , - 610 , - 81 , - 24 , - 439 , - 1326 , - 2685 , - 740 , - 3043 , - 2042 , - 1513 , - 1456 , - 1871 , - 2758 , - 341 , - 2172 , - 699 , - 3474 , - 2945 , - 2888 , - 3303 , - 414 , - 1773 , - 3604 , - 2131 , - 1130 , - 601 , - 544 , - 959 , - 1846 , - 3205 , - 1260 , - 3563 , - 2562 , - 2033 , - 1976 , - 2391 , - 3278 , - 861 , - 2692 , - 1219 , - 218 , - 3465 , - 3408 , - 47 , - 934 , - 2293 , - 348 , - 2651 , - 1650 , - 1121 , - 1064 , - 1479 , - 2366 , - 3725 , - 1780 , - 307 , - 3082 , - 2553 , - 2496 , - 2911 , - 22 , - 1381 , - 3212 , - 1739 , - 738 , - 209 , - 152 , - 567 , - 1454 , - 2813 , - 868 , - 3171 , - 2170 , - 1641 , - 1584 , - 1999 , - 2886 , - 469 , - 2300 , - 827 , - 3602 , - 3073 , - 3016 , - 3431 , - 542 , - 1901 , - 3732 , - 2259 , - 1258 , - 729 , - 672 , - 1087 , - 1974 , - 3333 , - 1388 , - 3691 , - 2690 , - 2161 , - 2104 , - 2519 , - 3406 , - 989 , - 2820 , - 1347 , - 346 , - 3593 , - 3536 , - 175 , - 1062 , - 2421 , - 476 , - 2779 , - 1778 , - 1249 , - 1192 , - 1607 , - 2494 , - 77 , - 1908 , - 435 , - 3210 , - 2681 , - 2624 , - 3039 , - 150 , - 1509 , - 3340 , - 1867 , - 866 , - 337 , - 280 , - 695 , - 1582 , - 2941 , - 996 , - 3299 , - 2298 , - 1769 , - 1712 , - 2127 , - 3014 , - 597 , - 2428 , - 955 , - 3730 , - 3201 , - 3144 , - 3559 , - 670 , - 2029 , - 84 , - 2387 , - 1386 , - 857 , - 800 , - 1215 , - 2102 , - 3461 , - 1516 , - 43 , - 2818 , - 2289 , - 2232 , - 2647 , - 3534 , - 1117 , - 2948 , - 1475 , - 474 , - 3721 , - 3664 , - 303 , - 1190 , - 2549 , - 604 , - 2907 , - 1906 , - 1377 , - 1320 , - 1735 , - 2622 , - 205 , - 2036 , - 563 , - 3338 , - 2809 , - 2752 , - 3167 , - 278 , - 1637 , - 3468 , - 1995 , - 994 , - 465 , - 408 , - 823 , - 1710 , - 3069 , - 1124 , - 3427 , - 2426 , - 1897 , - 1840 , - 2255 , - 3142 , - 725 , - 2556 , - 1083 , - 82 , - 3329 , - 3272 , - 3687 , - 798 , - 2157 , - 212 , - 2515 , - 1514 , - 985 , - 928 , - 1343 , - 2230 , - 3589 , - 1644 , - 171 , - 2946 , - 2417 , - 2360 , - 2775 , - 3662 , - 1245 , - 3076 , - 1603 , - 602 , - 73 , - 16 , - 431 , - 1318 , - 2677 , - 732 , - 3035 , - 2034 , - 1505 , - 1448 , - 1863 , - 2750 , - 333 , - 2164 , - 691 , - 3466 , - 2937 , - 2880 , - 3295 , - 406 , - 1765 , - 3596 , - 2123 , - 1122 , - 593 , - 536 , - 951 , - 1838 , - 3197 , - 1252 , - 3555 , - 2554 , - 2025 , - 1968 , - 2383 , - 3270 , - 853 , - 2684 , - 1211 , - 210 , - 3457 , - 3400 , - 39 , - 926 , - 2285 , - 340 , - 2643 , - 1642 , - 1113 , - 1056 , - 1471 , - 2358 , - 3717 , - 1772 , - 299 , - 3074 , - 2545 , - 2488 , - 2903 , - 14 , - 1373 , - 3204 , - 1731 , - 730 , - 201 , - 144 , - 559 , - 1446 , - 2805 , - 860 , - 3163 , - 2162 , - 1633 , - 1576 , - 1991 , - 2878 , - 461 , - 2292 , - 819 , - 3594 , - 3065 , - 3008 , - 3423 , - 534 , - 1893 , - 3724 , - 2251 , - 1250 , - 721 , - 664 , - 1079 , - 1966 , - 3325 , - 1380 , - 3683 , - 2682 , - 2153 , - 2096 , - 2511 , - 3398 , - 981 , - 2812 , - 1339 , - 338 , - 3585 , - 3528 , - 167 , - 1054 , - 2413 , - 468 , - 2771 , - 1770 , - 1241 , - 1184 , - 1599 , - 2486 , - 69 , - 1900 , - 427 , - 3202 , - 2673 , - 2616 , - 3031 , - 142 , - 1501 , - 3332 , - 1859 , - 858 , - 329 , - 272 , - 687 , - 1574 , - 2933 , - 988 , - 3291 , - 2290 , - 1761 , - 1704 , - 2119 , - 3006 , - 589 , - 2420 , - 947 , - 3722 , - 3193 , - 3136 , - 3551 , - 662 , - 2021 , - 76 , - 2379 , - 1378 , - 849 , - 792 , - 1207 , - 2094 , - 3453 , - 1508 , - 35 , - 2810 , - 2281 , - 2224 , - 2639 , - 3526 , - 1109 , - 2940 , - 1467 , - 466 , - 3713 , - 3656 , - 295 , - 1182 , - 2541 , - 596 , - 2899 , - 1898 , - 1369 , - 1312 , - 1727 , - 2614 , - 197 , - 2028 , - 555 , - 3330 , - 2801 , - 2744 , - 3159 , - 270 , - 1629 , - 3460 , - 1987 , - 986 , - 457 , - 400 , - 815 , - 1702 , - 3061 , - 1116 , - 3419 , - 2418 , - 1889 , - 1832 , - 2247 , - 3134 , - 717 , - 2548 , - 1075 , - 74 , - 3321 , - 3264 , - 3679 , - 790 , - 2149 , - 204 , - 2507 , - 1506 , - 977 , - 920 , - 1335 , - 2222 , - 3581 , - 1636 , - 163 , - 2938 , - 2409 , - 2352 , - 2767 , - 3654 , - 1237 , - 3068 , - 1595 , - 594 , - 65 , - 8 , - 423 , - 1310 , - 2669 , - 724 , - 3027 , - 2026 , - 1497 , - 1440 , - 1855 , - 2742 , - 325 , - 2156 , - 683 , - 3458 , - 2929 , - 2872 , - 3287 , - 398 , - 1757 , - 3588 , - 2115 , - 1114 , - 585 , - 528 , - 943 , - 1830 , - 3189 , - 1244 , - 3547 , - 2546 , - 2017 , - 1960 , - 2375 , - 3262 , - 845 , - 2676 , - 1203 , - 202 , - 3449 , - 3392 , - 31 , - 918 , - 2277 , - 332 , - 2635 , - 1634 , - 1105 , - 1048 , - 1463 , - 2350 , - 3709 , - 1764 , - 291 , - 3066 , - 2537 , - 2480 , - 2895 , - 6 , - 1365 , - 3196 , - 1723 , - 722 , - 193 , - 136 , - 551 , - 1438 , - 2797 , - 852 , - 3155 , - 2154 , - 1625 , - 1568 , - 1983 , - 2870 , - 453 , - 2284 , - 811 , - 3586 , - 3057 , - 3000 , - 3415 , - 526 , - 1885 , - 3716 , - 2243 , - 1242 , - 713 , - 656 , - 1071 , - 1958 , - 3317 , - 1372 , - 3675 , - 2674 , - 2145 , - 2088 , - 2503 , - 3390 , - 973 , - 2804 , - 1331 , - 330 , - 3577 , - 3520 , - 159 , - 1046 , - 2405 , - 460 , - 2763 , - 1762 , - 1233 , - 1176 , - 1591 , - 2478 , - 61 , - 1892 , - 419 , - 3194 , - 2665 , - 2608 , - 3023 , - 134 , - 1493 , - 3324 , - 1851 , - 850 , - 321 , - 264 , - 679 , - 1566 , - 2925 , - 980 , - 3283 , - 2282 , - 1753 , - 1696 , - 2111 , - 2998 , - 581 , - 2412 , - 939 , - 3714 , - 3185 , - 3128 , - 3543 , - 654 , - 2013 , - 68 , - 2371 , - 1370 , - 841 , - 784 , - 1199 , - 2086 , - 3445 , - 1500 , - 27 , - 2802 , - 2273 , - 2216 , - 2631 , - 3518 , - 1101 , - 2932 , - 1459 , - 458 , - 3705 , - 3648 , - 287 , - 1174 , - 2533 , - 588 , - 2891 , - 1890 , - 1361 , - 1304 , - 1719 , - 2606 , - 189 , - 2020 , - 547 , - 3322 , - 2793 , - 2736 , - 3151 , - 262 , - 1621 , - 3452 , - 1979 , - 978 , - 449 , - 392 , - 807 , - 1694 , - 3053 , - 1108 , - 3411 , - 2410 , - 1881 , - 1824 , - 2239 , - 3126 , - 709 , - 2540 , - 1067 , - 66 , - 3313 , - 3256 , - 3671 , - 782 , - 2141 , - 196 , - 2499 , - 1498 , - 969 , - 912 , - 1327 , - 2214 , - 3573 , - 1628 , - 155 , - 2930 , - 2401 , - 2344 , - 2759 , - 3646 , - 1229 , - 3060 , - 1587 , - 586 , - 57 , - 0 , - 451 , - 1142 , - 2073 , - 3244 , - 815 , - 2466 , - 517 , - 2648 , - 1179 , - 3790 , - 2801 , - 2052 , - 1543 , - 1274 , - 1245 , - 1456 , - 1907 , - 2598 , - 3529 , - 860 , - 2271 , - 82 , - 1973 , - 264 , - 2635 , - 1406 , - 417 , - 3508 , - 2999 , - 2730 , - 2701 , - 2912 , - 3363 , - 214 , - 1145 , - 2316 , - 3727 , - 1538 , - 3429 , - 1720 , - 251 , - 2862 , - 1873 , - 1124 , - 615 , - 346 , - 317 , - 528 , - 979 , - 1670 , - 2601 , - 3772 , - 1343 , - 2994 , - 1045 , - 3176 , - 1707 , - 478 , - 3329 , - 2580 , - 2071 , - 1802 , - 1773 , - 1984 , - 2435 , - 3126 , - 217 , - 1388 , - 2799 , - 610 , - 2501 , - 792 , - 3163 , - 1934 , - 945 , - 196 , - 3527 , - 3258 , - 3229 , - 3440 , - 51 , - 742 , - 1673 , - 2844 , - 415 , - 2066 , - 117 , - 2248 , - 779 , - 3390 , - 2401 , - 1652 , - 1143 , - 874 , - 845 , - 1056 , - 1507 , - 2198 , - 3129 , - 460 , - 1871 , - 3522 , - 1573 , - 3704 , - 2235 , - 1006 , - 17 , - 3108 , - 2599 , - 2330 , - 2301 , - 2512 , - 2963 , - 3654 , - 745 , - 1916 , - 3327 , - 1138 , - 3029 , - 1320 , - 3691 , - 2462 , - 1473 , - 724 , - 215 , - 3786 , - 3757 , - 128 , - 579 , - 1270 , - 2201 , - 3372 , - 943 , - 2594 , - 645 , - 2776 , - 1307 , - 78 , - 2929 , - 2180 , - 1671 , - 1402 , - 1373 , - 1584 , - 2035 , - 2726 , - 3657 , - 988 , - 2399 , - 210 , - 2101 , - 392 , - 2763 , - 1534 , - 545 , - 3636 , - 3127 , - 2858 , - 2829 , - 3040 , - 3491 , - 342 , - 1273 , - 2444 , - 15 , - 1666 , - 3557 , - 1848 , - 379 , - 2990 , - 2001 , - 1252 , - 743 , - 474 , - 445 , - 656 , - 1107 , - 1798 , - 2729 , - 60 , - 1471 , - 3122 , - 1173 , - 3304 , - 1835 , - 606 , - 3457 , - 2708 , - 2199 , - 1930 , - 1901 , - 2112 , - 2563 , - 3254 , - 345 , - 1516 , - 2927 , - 738 , - 2629 , - 920 , - 3291 , - 2062 , - 1073 , - 324 , - 3655 , - 3386 , - 3357 , - 3568 , - 179 , - 870 , - 1801 , - 2972 , - 543 , - 2194 , - 245 , - 2376 , - 907 , - 3518 , - 2529 , - 1780 , - 1271 , - 1002 , - 973 , - 1184 , - 1635 , - 2326 , - 3257 , - 588 , - 1999 , - 3650 , - 1701 , - 3832 , - 2363 , - 1134 , - 145 , - 3236 , - 2727 , - 2458 , - 2429 , - 2640 , - 3091 , - 3782 , - 873 , - 2044 , - 3455 , - 1266 , - 3157 , - 1448 , - 3819 , - 2590 , - 1601 , - 852 , - 343 , - 74 , - 45 , - 256 , - 707 , - 1398 , - 2329 , - 3500 , - 1071 , - 2722 , - 773 , - 2904 , - 1435 , - 206 , - 3057 , - 2308 , - 1799 , - 1530 , - 1501 , - 1712 , - 2163 , - 2854 , - 3785 , - 1116 , - 2527 , - 338 , - 2229 , - 520 , - 2891 , - 1662 , - 673 , - 3764 , - 3255 , - 2986 , - 2957 , - 3168 , - 3619 , - 470 , - 1401 , - 2572 , - 143 , - 1794 , - 3685 , - 1976 , - 507 , - 3118 , - 2129 , - 1380 , - 871 , - 602 , - 573 , - 784 , - 1235 , - 1926 , - 2857 , - 188 , - 1599 , - 3250 , - 1301 , - 3432 , - 1963 , - 734 , - 3585 , - 2836 , - 2327 , - 2058 , - 2029 , - 2240 , - 2691 , - 3382 , - 473 , - 1644 , - 3055 , - 866 , - 2757 , - 1048 , - 3419 , - 2190 , - 1201 , - 452 , - 3783 , - 3514 , - 3485 , - 3696 , - 307 , - 998 , - 1929 , - 3100 , - 671 , - 2322 , - 373 , - 2504 , - 1035 , - 3646 , - 2657 , - 1908 , - 1399 , - 1130 , - 1101 , - 1312 , - 1763 , - 2454 , - 3385 , - 716 , - 2127 , - 3778 , - 1829 , - 120 , - 2491 , - 1262 , - 273 , - 3364 , - 2855 , - 2586 , - 2557 , - 2768 , - 3219 , - 70 , - 1001 , - 2172 , - 3583 , - 1394 , - 3285 , - 1576 , - 107 , - 2718 , - 1729 , - 980 , - 471 , - 202 , - 173 , - 384 , - 835 , - 1526 , - 2457 , - 3628 , - 1199 , - 2850 , - 901 , - 3032 , - 1563 , - 334 , - 3185 , - 2436 , - 1927 , - 1658 , - 1629 , - 1840 , - 2291 , - 2982 , - 73 , - 1244 , - 2655 , - 466 , - 2357 , - 648 , - 3019 , - 1790 , - 801 , - 52 , - 3383 , - 3114 , - 3085 , - 3296 , - 3747 , - 598 , - 1529 , - 2700 , - 271 , - 1922 , - 3813 , - 2104 , - 635 , - 3246 , - 2257 , - 1508 , - 999 , - 730 , - 701 , - 912 , - 1363 , - 2054 , - 2985 , - 316 , - 1727 , - 3378 , - 1429 , - 3560 , - 2091 , - 862 , - 3713 , - 2964 , - 2455 , - 2186 , - 2157 , - 2368 , - 2819 , - 3510 , - 601 , - 1772 , - 3183 , - 994 , - 2885 , - 1176 , - 3547 , - 2318 , - 1329 , - 580 , - 71 , - 3642 , - 3613 , - 3824 , - 435 , - 1126 , - 2057 , - 3228 , - 799 , - 2450 , - 501 , - 2632 , - 1163 , - 3774 , - 2785 , - 2036 , - 1527 , - 1258 , - 1229 , - 1440 , - 1891 , - 2582 , - 3513 , - 844 , - 2255 , - 66 , - 1957 , - 248 , - 2619 , - 1390 , - 401 , - 3492 , - 2983 , - 2714 , - 2685 , - 2896 , - 3347 , - 198 , - 1129 , - 2300 , - 3711 , - 1522 , - 3413 , - 1704 , - 235 , - 2846 , - 1857 , - 1108 , - 599 , - 330 , - 301 , - 512 , - 963 , - 1654 , - 2585 , - 3756 , - 1327 , - 2978 , - 1029 , - 3160 , - 1691 , - 462 , - 3313 , - 2564 , - 2055 , - 1786 , - 1757 , - 1968 , - 2419 , - 3110 , - 201 , - 1372 , - 2783 , - 594 , - 2485 , - 776 , - 3147 , - 1918 , - 929 , - 180 , - 3511 , - 3242 , - 3213 , - 3424 , - 35 , - 726 , - 1657 , - 2828 , - 399 , - 2050 , - 101 , - 2232 , - 763 , - 3374 , - 2385 , - 1636 , - 1127 , - 858 , - 829 , - 1040 , - 1491 , - 2182 , - 3113 , - 444 , - 1855 , - 3506 , - 1557 , - 3688 , - 2219 , - 990 , - 1 , - 3092 , - 2583 , - 2314 , - 2285 , - 2496 , - 2947 , - 3638 , - 729 , - 1900 , - 3311 , - 1122 , - 3013 , - 1304 , - 3675 , - 2446 , - 1457 , - 708 , - 199 , - 3770 , - 3741 , - 112 , - 563 , - 1254 , - 2185 , - 3356 , - 927 , - 2578 , - 629 , - 2760 , - 1291 , - 62 , - 2913 , - 2164 , - 1655 , - 1386 , - 1357 , - 1568 , - 2019 , - 2710 , - 3641 , - 972 , - 2383 , - 194 , - 2085 , - 376 , - 2747 , - 1518 , - 529 , - 3620 , - 3111 , - 2842 , - 2813 , - 3024 , - 3475 , - 326 , - 1257 , - 2428 , - 3839 , - 1650 , - 3541 , - 1832 , - 363 , - 2974 , - 1985 , - 1236 , - 727 , - 458 , - 429 , - 640 , - 1091 , - 1782 , - 2713 , - 44 , - 1455 , - 3106 , - 1157 , - 3288 , - 1819 , - 590 , - 3441 , - 2692 , - 2183 , - 1914 , - 1885 , - 2096 , - 2547 , - 3238 , - 329 , - 1500 , - 2911 , - 722 , - 2613 , - 904 , - 3275 , - 2046 , - 1057 , - 308 , - 3639 , - 3370 , - 3341 , - 3552 , - 163 , - 854 , - 1785 , - 2956 , - 527 , - 2178 , - 229 , - 2360 , - 891 , - 3502 , - 2513 , - 1764 , - 1255 , - 986 , - 957 , - 1168 , - 1619 , - 2310 , - 3241 , - 572 , - 1983 , - 3634 , - 1685 , - 3816 , - 2347 , - 1118 , - 129 , - 3220 , - 2711 , - 2442 , - 2413 , - 2624 , - 3075 , - 3766 , - 857 , - 2028 , - 3439 , - 1250 , - 3141 , - 1432 , - 3803 , - 2574 , - 1585 , - 836 , - 327 , - 58 , - 29 , - 240 , - 691 , - 1382 , - 2313 , - 3484 , - 1055 , - 2706 , - 757 , - 2888 , - 1419 , - 190 , - 3041 , - 2292 , - 1783 , - 1514 , - 1485 , - 1696 , - 2147 , - 2838 , - 3769 , - 1100 , - 2511 , - 322 , - 2213 , - 504 , - 2875 , - 1646 , - 657 , - 3748 , - 3239 , - 2970 , - 2941 , - 3152 , - 3603 , - 454 , - 1385 , - 2556 , - 127 , - 1778 , - 3669 , - 1960 , - 491 , - 3102 , - 2113 , - 1364 , - 855 , - 586 , - 557 , - 768 , - 1219 , - 1910 , - 2841 , - 172 , - 1583 , - 3234 , - 1285 , - 3416 , - 1947 , - 718 , - 3569 , - 2820 , - 2311 , - 2042 , - 2013 , - 2224 , - 2675 , - 3366 , - 457 , - 1628 , - 3039 , - 850 , - 2741 , - 1032 , - 3403 , - 2174 , - 1185 , - 436 , - 3767 , - 3498 , - 3469 , - 3680 , - 291 , - 982 , - 1913 , - 3084 , - 655 , - 2306 , - 357 , - 2488 , - 1019 , - 3630 , - 2641 , - 1892 , - 1383 , - 1114 , - 1085 , - 1296 , - 1747 , - 2438 , - 3369 , - 700 , - 2111 , - 3762 , - 1813 , - 104 , - 2475 , - 1246 , - 257 , - 3348 , - 2839 , - 2570 , - 2541 , - 2752 , - 3203 , - 54 , - 985 , - 2156 , - 3567 , - 1378 , - 3269 , - 1560 , - 91 , - 2702 , - 1713 , - 964 , - 455 , - 186 , - 157 , - 368 , - 819 , - 1510 , - 2441 , - 3612 , - 1183 , - 2834 , - 885 , - 3016 , - 1547 , - 318 , - 3169 , - 2420 , - 1911 , - 1642 , - 1613 , - 1824 , - 2275 , - 2966 , - 57 , - 1228 , - 2639 , - 450 , - 2341 , - 632 , - 3003 , - 1774 , - 785 , - 36 , - 3367 , - 3098 , - 3069 , - 3280 , - 3731 , - 582 , - 1513 , - 2684 , - 255 , - 1906 , - 3797 , - 2088 , - 619 , - 3230 , - 2241 , - 1492 , - 983 , - 714 , - 685 , - 896 , - 1347 , - 2038 , - 2969 , - 300 , - 1711 , - 3362 , - 1413 , - 3544 , - 2075 , - 846 , - 3697 , - 2948 , - 2439 , - 2170 , - 2141 , - 2352 , - 2803 , - 3494 , - 585 , - 1756 , - 3167 , - 978 , - 2869 , - 1160 , - 3531 , - 2302 , - 1313 , - 564 , - 55 , - 3626 , - 3597 , - 3808 , - 419 , - 1110 , - 2041 , - 3212 , - 783 , - 2434 , - 485 , - 2616 , - 1147 , - 3758 , - 2769 , - 2020 , - 1511 , - 1242 , - 1213 , - 1424 , - 1875 , - 2566 , - 3497 , - 828 , - 2239 , - 50 , - 1941 , - 232 , - 2603 , - 1374 , - 385 , - 3476 , - 2967 , - 2698 , - 2669 , - 2880 , - 3331 , - 182 , - 1113 , - 2284 , - 3695 , - 1506 , - 3397 , - 1688 , - 219 , - 2830 , - 1841 , - 1092 , - 583 , - 314 , - 285 , - 496 , - 947 , - 1638 , - 2569 , - 3740 , - 1311 , - 2962 , - 1013 , - 3144 , - 1675 , - 446 , - 3297 , - 2548 , - 2039 , - 1770 , - 1741 , - 1952 , - 2403 , - 3094 , - 185 , - 1356 , - 2767 , - 578 , - 2469 , - 760 , - 3131 , - 1902 , - 913 , - 164 , - 3495 , - 3226 , - 3197 , - 3408 , - 19 , - 710 , - 1641 , - 2812 , - 383 , - 2034 , - 85 , - 2216 , - 747 , - 3358 , - 2369 , - 1620 , - 1111 , - 842 , - 813 , - 1024 , - 1475 , - 2166 , - 3097 , - 428 , - 1839 , - 3490 , - 1541 , - 3672 , - 2203 , - 974 , - 3825 , - 3076 , - 2567 , - 2298 , - 2269 , - 2480 , - 2931 , - 3622 , - 713 , - 1884 , - 3295 , - 1106 , - 2997 , - 1288 , - 3659 , - 2430 , - 1441 , - 692 , - 183 , - 3754 , - 3725 , - 96 , - 547 , - 1238 , - 2169 , - 3340 , - 911 , - 2562 , - 613 , - 2744 , - 1275 , - 46 , - 2897 , - 2148 , - 1639 , - 1370 , - 1341 , - 1552 , - 2003 , - 2694 , - 3625 , - 956 , - 2367 , - 178 , - 2069 , - 360 , - 2731 , - 1502 , - 513 , - 3604 , - 3095 , - 2826 , - 2797 , - 3008 , - 3459 , - 310 , - 1241 , - 2412 , - 3823 , - 1634 , - 3525 , - 1816 , - 347 , - 2958 , - 1969 , - 1220 , - 711 , - 442 , - 413 , - 624 , - 1075 , - 1766 , - 2697 , - 28 , - 1439 , - 3090 , - 1141 , - 3272 , - 1803 , - 574 , - 3425 , - 2676 , - 2167 , - 1898 , - 1869 , - 2080 , - 2531 , - 3222 , - 313 , - 1484 , - 2895 , - 706 , - 2597 , - 888 , - 3259 , - 2030 , - 1041 , - 292 , - 3623 , - 3354 , - 3325 , - 3536 , - 147 , - 838 , - 1769 , - 2940 , - 511 , - 2162 , - 213 , - 2344 , - 875 , - 3486 , - 2497 , - 1748 , - 1239 , - 970 , - 941 , - 1152 , - 1603 , - 2294 , - 3225 , - 556 , - 1967 , - 3618 , - 1669 , - 3800 , - 2331 , - 1102 , - 113 , - 3204 , - 2695 , - 2426 , - 2397 , - 2608 , - 3059 , - 3750 , - 841 , - 2012 , - 3423 , - 1234 , - 3125 , - 1416 , - 3787 , - 2558 , - 1569 , - 820 , - 311 , - 42 , - 13 , - 224 , - 675 , - 1366 , - 2297 , - 3468 , - 1039 , - 2690 , - 741 , - 2872 , - 1403 , - 174 , - 3025 , - 2276 , - 1767 , - 1498 , - 1469 , - 1680 , - 2131 , - 2822 , - 3753 , - 1084 , - 2495 , - 306 , - 2197 , - 488 , - 2859 , - 1630 , - 641 , - 3732 , - 3223 , - 2954 , - 2925 , - 3136 , - 3587 , - 438 , - 1369 , - 2540 , - 111 , - 1762 , - 3653 , - 1944 , - 475 , - 3086 , - 2097 , - 1348 , - 839 , - 570 , - 541 , - 752 , - 1203 , - 1894 , - 2825 , - 156 , - 1567 , - 3218 , - 1269 , - 3400 , - 1931 , - 702 , - 3553 , - 2804 , - 2295 , - 2026 , - 1997 , - 2208 , - 2659 , - 3350 , - 441 , - 1612 , - 3023 , - 834 , - 2725 , - 1016 , - 3387 , - 2158 , - 1169 , - 420 , - 3751 , - 3482 , - 3453 , - 3664 , - 275 , - 966 , - 1897 , - 3068 , - 639 , - 2290 , - 341 , - 2472 , - 1003 , - 3614 , - 2625 , - 1876 , - 1367 , - 1098 , - 1069 , - 1280 , - 1731 , - 2422 , - 3353 , - 684 , - 2095 , - 3746 , - 1797 , - 88 , - 2459 , - 1230 , - 241 , - 3332 , - 2823 , - 2554 , - 2525 , - 2736 , - 3187 , - 38 , - 969 , - 2140 , - 3551 , - 1362 , - 3253 , - 1544 , - 75 , - 2686 , - 1697 , - 948 , - 439 , - 170 , - 141 , - 352 , - 803 , - 1494 , - 2425 , - 3596 , - 1167 , - 2818 , - 869 , - 3000 , - 1531 , - 302 , - 3153 , - 2404 , - 1895 , - 1626 , - 1597 , - 1808 , - 2259 , - 2950 , - 41 , - 1212 , - 2623 , - 434 , - 2325 , - 616 , - 2987 , - 1758 , - 769 , - 20 , - 3351 , - 3082 , - 3053 , - 3264 , - 3715 , - 566 , - 1497 , - 2668 , - 239 , - 1890 , - 3781 , - 2072 , - 603 , - 3214 , - 2225 , - 1476 , - 967 , - 698 , - 669 , - 880 , - 1331 , - 2022 , - 2953 , - 284 , - 1695 , - 3346 , - 1397 , - 3528 , - 2059 , - 830 , - 3681 , - 2932 , - 2423 , - 2154 , - 2125 , - 2336 , - 2787 , - 3478 , - 569 , - 1740 , - 3151 , - 962 , - 2853 , - 1144 , - 3515 , - 2286 , - 1297 , - 548 , - 39 , - 3610 , - 3581 , - 3792 , - 403 , - 1094 , - 2025 , - 3196 , - 767 , - 2418 , - 469 , - 2600 , - 1131 , - 3742 , - 2753 , - 2004 , - 1495 , - 1226 , - 1197 , - 1408 , - 1859 , - 2550 , - 3481 , - 812 , - 2223 , - 34 , - 1925 , - 216 , - 2587 , - 1358 , - 369 , - 3460 , - 2951 , - 2682 , - 2653 , - 2864 , - 3315 , - 166 , - 1097 , - 2268 , - 3679 , - 1490 , - 3381 , - 1672 , - 203 , - 2814 , - 1825 , - 1076 , - 567 , - 298 , - 269 , - 480 , - 931 , - 1622 , - 2553 , - 3724 , - 1295 , - 2946 , - 997 , - 3128 , - 1659 , - 430 , - 3281 , - 2532 , - 2023 , - 1754 , - 1725 , - 1936 , - 2387 , - 3078 , - 169 , - 1340 , - 2751 , - 562 , - 2453 , - 744 , - 3115 , - 1886 , - 897 , - 148 , - 3479 , - 3210 , - 3181 , - 3392 , - 3 , - 694 , - 1625 , - 2796 , - 367 , - 2018 , - 69 , - 2200 , - 731 , - 3342 , - 2353 , - 1604 , - 1095 , - 826 , - 797 , - 1008 , - 1459 , - 2150 , - 3081 , - 412 , - 1823 , - 3474 , - 1525 , - 3656 , - 2187 , - 958 , - 3809 , - 3060 , - 2551 , - 2282 , - 2253 , - 2464 , - 2915 , - 3606 , - 697 , - 1868 , - 3279 , - 1090 , - 2981 , - 1272 , - 3643 , - 2414 , - 1425 , - 676 , - 167 , - 3738 , - 3709 , - 80 , - 531 , - 1222 , - 2153 , - 3324 , - 895 , - 2546 , - 597 , - 2728 , - 1259 , - 30 , - 2881 , - 2132 , - 1623 , - 1354 , - 1325 , - 1536 , - 1987 , - 2678 , - 3609 , - 940 , - 2351 , - 162 , - 2053 , - 344 , - 2715 , - 1486 , - 497 , - 3588 , - 3079 , - 2810 , - 2781 , - 2992 , - 3443 , - 294 , - 1225 , - 2396 , - 3807 , - 1618 , - 3509 , - 1800 , - 331 , - 2942 , - 1953 , - 1204 , - 695 , - 426 , - 397 , - 608 , - 1059 , - 1750 , - 2681 , - 12 , - 1423 , - 3074 , - 1125 , - 3256 , - 1787 , - 558 , - 3409 , - 2660 , - 2151 , - 1882 , - 1853 , - 2064 , - 2515 , - 3206 , - 297 , - 1468 , - 2879 , - 690 , - 2581 , - 872 , - 3243 , - 2014 , - 1025 , - 276 , - 3607 , - 3338 , - 3309 , - 3520 , - 131 , - 822 , - 1753 , - 2924 , - 495 , - 2146 , - 197 , - 2328 , - 859 , - 3470 , - 2481 , - 1732 , - 1223 , - 954 , - 925 , - 1136 , - 1587 , - 2278 , - 3209 , - 540 , - 1951 , - 3602 , - 1653 , - 3784 , - 2315 , - 1086 , - 97 , - 3188 , - 2679 , - 2410 , - 2381 , - 2592 , - 3043 , - 3734 , - 825 , - 1996 , - 3407 , - 1218 , - 3109 , - 1400 , - 3771 , - 2542 , - 1553 , - 804 , - 295 , - 26 , - 3837 , - 208 , - 659 , - 1350 , - 2281 , - 3452 , - 1023 , - 2674 , - 725 , - 2856 , - 1387 , - 158 , - 3009 , - 2260 , - 1751 , - 1482 , - 1453 , - 1664 , - 2115 , - 2806 , - 3737 , - 1068 , - 2479 , - 290 , - 2181 , - 472 , - 2843 , - 1614 , - 625 , - 3716 , - 3207 , - 2938 , - 2909 , - 3120 , - 3571 , - 422 , - 1353 , - 2524 , - 95 , - 1746 , - 3637 , - 1928 , - 459 , - 3070 , - 2081 , - 1332 , - 823 , - 554 , - 525 , - 736 , - 1187 , - 1878 , - 2809 , - 140 , - 1551 , - 3202 , - 1253 , - 3384 , - 1915 , - 686 , - 3537 , - 2788 , - 2279 , - 2010 , - 1981 , - 2192 , - 2643 , - 3334 , - 425 , - 1596 , - 3007 , - 818 , - 2709 , - 1000 , - 3371 , - 2142 , - 1153 , - 404 , - 3735 , - 3466 , - 3437 , - 3648 , - 259 , - 950 , - 1881 , - 3052 , - 623 , - 2274 , - 325 , - 2456 , - 987 , - 3598 , - 2609 , - 1860 , - 1351 , - 1082 , - 1053 , - 1264 , - 1715 , - 2406 , - 3337 , - 668 , - 2079 , - 3730 , - 1781 , - 72 , - 2443 , - 1214 , - 225 , - 3316 , - 2807 , - 2538 , - 2509 , - 2720 , - 3171 , - 22 , - 953 , - 2124 , - 3535 , - 1346 , - 3237 , - 1528 , - 59 , - 2670 , - 1681 , - 932 , - 423 , - 154 , - 125 , - 336 , - 787 , - 1478 , - 2409 , - 3580 , - 1151 , - 2802 , - 853 , - 2984 , - 1515 , - 286 , - 3137 , - 2388 , - 1879 , - 1610 , - 1581 , - 1792 , - 2243 , - 2934 , - 25 , - 1196 , - 2607 , - 418 , - 2309 , - 600 , - 2971 , - 1742 , - 753 , - 4 , - 3335 , - 3066 , - 3037 , - 3248 , - 3699 , - 550 , - 1481 , - 2652 , - 223 , - 1874 , - 3765 , - 2056 , - 587 , - 3198 , - 2209 , - 1460 , - 951 , - 682 , - 653 , - 864 , - 1315 , - 2006 , - 2937 , - 268 , - 1679 , - 3330 , - 1381 , - 3512 , - 2043 , - 814 , - 3665 , - 2916 , - 2407 , - 2138 , - 2109 , - 2320 , - 2771 , - 3462 , - 553 , - 1724 , - 3135 , - 946 , - 2837 , - 1128 , - 3499 , - 2270 , - 1281 , - 532 , - 23 , - 3594 , - 3565 , - 3776 , - 387 , - 1078 , - 2009 , - 3180 , - 751 , - 2402 , - 453 , - 2584 , - 1115 , - 3726 , - 2737 , - 1988 , - 1479 , - 1210 , - 1181 , - 1392 , - 1843 , - 2534 , - 3465 , - 796 , - 2207 , - 18 , - 1909 , - 200 , - 2571 , - 1342 , - 353 , - 3444 , - 2935 , - 2666 , - 2637 , - 2848 , - 3299 , - 150 , - 1081 , - 2252 , - 3663 , - 1474 , - 3365 , - 1656 , - 187 , - 2798 , - 1809 , - 1060 , - 551 , - 282 , - 253 , - 464 , - 915 , - 1606 , - 2537 , - 3708 , - 1279 , - 2930 , - 981 , - 3112 , - 1643 , - 414 , - 3265 , - 2516 , - 2007 , - 1738 , - 1709 , - 1920 , - 2371 , - 3062 , - 153 , - 1324 , - 2735 , - 546 , - 2437 , - 728 , - 3099 , - 1870 , - 881 , - 132 , - 3463 , - 3194 , - 3165 , - 3376 , - 3827 , - 678 , - 1609 , - 2780 , - 351 , - 2002 , - 53 , - 2184 , - 715 , - 3326 , - 2337 , - 1588 , - 1079 , - 810 , - 781 , - 992 , - 1443 , - 2134 , - 3065 , - 396 , - 1807 , - 3458 , - 1509 , - 3640 , - 2171 , - 942 , - 3793 , - 3044 , - 2535 , - 2266 , - 2237 , - 2448 , - 2899 , - 3590 , - 681 , - 1852 , - 3263 , - 1074 , - 2965 , - 1256 , - 3627 , - 2398 , - 1409 , - 660 , - 151 , - 3722 , - 3693 , - 64 , - 515 , - 1206 , - 2137 , - 3308 , - 879 , - 2530 , - 581 , - 2712 , - 1243 , - 14 , - 2865 , - 2116 , - 1607 , - 1338 , - 1309 , - 1520 , - 1971 , - 2662 , - 3593 , - 924 , - 2335 , - 146 , - 2037 , - 328 , - 2699 , - 1470 , - 481 , - 3572 , - 3063 , - 2794 , - 2765 , - 2976 , - 3427 , - 278 , - 1209 , - 2380 , - 3791 , - 1602 , - 3493 , - 1784 , - 315 , - 2926 , - 1937 , - 1188 , - 679 , - 410 , - 381 , - 592 , - 1043 , - 1734 , - 2665 , - 3836 , - 1407 , - 3058 , - 1109 , - 3240 , - 1771 , - 542 , - 3393 , - 2644 , - 2135 , - 1866 , - 1837 , - 2048 , - 2499 , - 3190 , - 281 , - 1452 , - 2863 , - 674 , - 2565 , - 856 , - 3227 , - 1998 , - 1009 , - 260 , - 3591 , - 3322 , - 3293 , - 3504 , - 115 , - 806 , - 1737 , - 2908 , - 479 , - 2130 , - 181 , - 2312 , - 843 , - 3454 , - 2465 , - 1716 , - 1207 , - 938 , - 909 , - 1120 , - 1571 , - 2262 , - 3193 , - 524 , - 1935 , - 3586 , - 1637 , - 3768 , - 2299 , - 1070 , - 81 , - 3172 , - 2663 , - 2394 , - 2365 , - 2576 , - 3027 , - 3718 , - 809 , - 1980 , - 3391 , - 1202 , - 3093 , - 1384 , - 3755 , - 2526 , - 1537 , - 788 , - 279 , - 10 , - 3821 , - 192 , - 643 , - 1334 , - 2265 , - 3436 , - 1007 , - 2658 , - 709 , - 2840 , - 1371 , - 142 , - 2993 , - 2244 , - 1735 , - 1466 , - 1437 , - 1648 , - 2099 , - 2790 , - 3721 , - 1052 , - 2463 , - 274 , - 2165 , - 456 , - 2827 , - 1598 , - 609 , - 3700 , - 3191 , - 2922 , - 2893 , - 3104 , - 3555 , - 406 , - 1337 , - 2508 , - 79 , - 1730 , - 3621 , - 1912 , - 443 , - 3054 , - 2065 , - 1316 , - 807 , - 538 , - 509 , - 720 , - 1171 , - 1862 , - 2793 , - 124 , - 1535 , - 3186 , - 1237 , - 3368 , - 1899 , - 670 , - 3521 , - 2772 , - 2263 , - 1994 , - 1965 , - 2176 , - 2627 , - 3318 , - 409 , - 1580 , - 2991 , - 802 , - 2693 , - 984 , - 3355 , - 2126 , - 1137 , - 388 , - 3719 , - 3450 , - 3421 , - 3632 , - 243 , - 934 , - 1865 , - 3036 , - 607 , - 2258 , - 309 , - 2440 , - 971 , - 3582 , - 2593 , - 1844 , - 1335 , - 1066 , - 1037 , - 1248 , - 1699 , - 2390 , - 3321 , - 652 , - 2063 , - 3714 , - 1765 , - 56 , - 2427 , - 1198 , - 209 , - 3300 , - 2791 , - 2522 , - 2493 , - 2704 , - 3155 , - 6 , - 937 , - 2108 , - 3519 , - 1330 , - 3221 , - 1512 , - 43 , - 2654 , - 1665 , - 916 , - 407 , - 138 , - 109 , - 320 , - 771 , - 1462 , - 2393 , - 3564 , - 1135 , - 2786 , - 837 , - 2968 , - 1499 , - 270 , - 3121 , - 2372 , - 1863 , - 1594 , - 1565 , - 1776 , - 2227 , - 2918 , - 9 , - 1180 , - 2591 , - 402 , - 2293 , - 584 , - 2955 , - 1726 , - 737 , - 3828 , - 3319 , - 3050 , - 3021 , - 3232 , - 3683 , - 534 , - 1465 , - 2636 , - 207 , - 1858 , - 3749 , - 2040 , - 571 , - 3182 , - 2193 , - 1444 , - 935 , - 666 , - 637 , - 848 , - 1299 , - 1990 , - 2921 , - 252 , - 1663 , - 3314 , - 1365 , - 3496 , - 2027 , - 798 , - 3649 , - 2900 , - 2391 , - 2122 , - 2093 , - 2304 , - 2755 , - 3446 , - 537 , - 1708 , - 3119 , - 930 , - 2821 , - 1112 , - 3483 , - 2254 , - 1265 , - 516 , - 7 , - 3578 , - 3549 , - 3760 , - 371 , - 1062 , - 1993 , - 3164 , - 735 , - 2386 , - 437 , - 2568 , - 1099 , - 3710 , - 2721 , - 1972 , - 1463 , - 1194 , - 1165 , - 1376 , - 1827 , - 2518 , - 3449 , - 780 , - 2191 , - 2 , - 1893 , - 184 , - 2555 , - 1326 , - 337 , - 3428 , - 2919 , - 2650 , - 2621 , - 2832 , - 3283 , - 134 , - 1065 , - 2236 , - 3647 , - 1458 , - 3349 , - 1640 , - 171 , - 2782 , - 1793 , - 1044 , - 535 , - 266 , - 237 , - 448 , - 899 , - 1590 , - 2521 , - 3692 , - 1263 , - 2914 , - 965 , - 3096 , - 1627 , - 398 , - 3249 , - 2500 , - 1991 , - 1722 , - 1693 , - 1904 , - 2355 , - 3046 , - 137 , - 1308 , - 2719 , - 530 , - 2421 , - 712 , - 3083 , - 1854 , - 865 , - 116 , - 3447 , - 3178 , - 3149 , - 3360 , - 3811 , - 662 , - 1593 , - 2764 , - 335 , - 1986 , - 37 , - 2168 , - 699 , - 3310 , - 2321 , - 1572 , - 1063 , - 794 , - 765 , - 976 , - 1427 , - 2118 , - 3049 , - 380 , - 1791 , - 3442 , - 1493 , - 3624 , - 2155 , - 926 , - 3777 , - 3028 , - 2519 , - 2250 , - 2221 , - 2432 , - 2883 , - 3574 , - 665 , - 1836 , - 3247 , - 1058 , - 2949 , - 1240 , - 3611 , - 2382 , - 1393 , - 644 , - 135 , - 3706 , - 3677 , - 48 , - 499 , - 1190 , - 2121 , - 3292 , - 863 , - 2514 , - 565 , - 2696 , - 1227 , - 3838 , - 2849 , - 2100 , - 1591 , - 1322 , - 1293 , - 1504 , - 1955 , - 2646 , - 3577 , - 908 , - 2319 , - 130 , - 2021 , - 312 , - 2683 , - 1454 , - 465 , - 3556 , - 3047 , - 2778 , - 2749 , - 2960 , - 3411 , - 262 , - 1193 , - 2364 , - 3775 , - 1586 , - 3477 , - 1768 , - 299 , - 2910 , - 1921 , - 1172 , - 663 , - 394 , - 365 , - 576 , - 1027 , - 1718 , - 2649 , - 3820 , - 1391 , - 3042 , - 1093 , - 3224 , - 1755 , - 526 , - 3377 , - 2628 , - 2119 , - 1850 , - 1821 , - 2032 , - 2483 , - 3174 , - 265 , - 1436 , - 2847 , - 658 , - 2549 , - 840 , - 3211 , - 1982 , - 993 , - 244 , - 3575 , - 3306 , - 3277 , - 3488 , - 99 , - 790 , - 1721 , - 2892 , - 463 , - 2114 , - 165 , - 2296 , - 827 , - 3438 , - 2449 , - 1700 , - 1191 , - 922 , - 893 , - 1104 , - 1555 , - 2246 , - 3177 , - 508 , - 1919 , - 3570 , - 1621 , - 3752 , - 2283 , - 1054 , - 65 , - 3156 , - 2647 , - 2378 , - 2349 , - 2560 , - 3011 , - 3702 , - 793 , - 1964 , - 3375 , - 1186 , - 3077 , - 1368 , - 3739 , - 2510 , - 1521 , - 772 , - 263 , - 3834 , - 3805 , - 176 , - 627 , - 1318 , - 2249 , - 3420 , - 991 , - 2642 , - 693 , - 2824 , - 1355 , - 126 , - 2977 , - 2228 , - 1719 , - 1450 , - 1421 , - 1632 , - 2083 , - 2774 , - 3705 , - 1036 , - 2447 , - 258 , - 2149 , - 440 , - 2811 , - 1582 , - 593 , - 3684 , - 3175 , - 2906 , - 2877 , - 3088 , - 3539 , - 390 , - 1321 , - 2492 , - 63 , - 1714 , - 3605 , - 1896 , - 427 , - 3038 , - 2049 , - 1300 , - 791 , - 522 , - 493 , - 704 , - 1155 , - 1846 , - 2777 , - 108 , - 1519 , - 3170 , - 1221 , - 3352 , - 1883 , - 654 , - 3505 , - 2756 , - 2247 , - 1978 , - 1949 , - 2160 , - 2611 , - 3302 , - 393 , - 1564 , - 2975 , - 786 , - 2677 , - 968 , - 3339 , - 2110 , - 1121 , - 372 , - 3703 , - 3434 , - 3405 , - 3616 , - 227 , - 918 , - 1849 , - 3020 , - 591 , - 2242 , - 293 , - 2424 , - 955 , - 3566 , - 2577 , - 1828 , - 1319 , - 1050 , - 1021 , - 1232 , - 1683 , - 2374 , - 3305 , - 636 , - 2047 , - 3698 , - 1749 , - 40 , - 2411 , - 1182 , - 193 , - 3284 , - 2775 , - 2506 , - 2477 , - 2688 , - 3139 , - 3830 , - 921 , - 2092 , - 3503 , - 1314 , - 3205 , - 1496 , - 27 , - 2638 , - 1649 , - 900 , - 391 , - 122 , - 93 , - 304 , - 755 , - 1446 , - 2377 , - 3548 , - 1119 , - 2770 , - 821 , - 2952 , - 1483 , - 254 , - 3105 , - 2356 , - 1847 , - 1578 , - 1549 , - 1760 , - 2211 , - 2902 , - 3833 , - 1164 , - 2575 , - 386 , - 2277 , - 568 , - 2939 , - 1710 , - 721 , - 3812 , - 3303 , - 3034 , - 3005 , - 3216 , - 3667 , - 518 , - 1449 , - 2620 , - 191 , - 1842 , - 3733 , - 2024 , - 555 , - 3166 , - 2177 , - 1428 , - 919 , - 650 , - 621 , - 832 , - 1283 , - 1974 , - 2905 , - 236 , - 1647 , - 3298 , - 1349 , - 3480 , - 2011 , - 782 , - 3633 , - 2884 , - 2375 , - 2106 , - 2077 , - 2288 , - 2739 , - 3430 , - 521 , - 1692 , - 3103 , - 914 , - 2805 , - 1096 , - 3467 , - 2238 , - 1249 , - 500 , - 3831 , - 3562 , - 3533 , - 3744 , - 355 , - 1046 , - 1977 , - 3148 , - 719 , - 2370 , - 421 , - 2552 , - 1083 , - 3694 , - 2705 , - 1956 , - 1447 , - 1178 , - 1149 , - 1360 , - 1811 , - 2502 , - 3433 , - 764 , - 2175 , - 3826 , - 1877 , - 168 , - 2539 , - 1310 , - 321 , - 3412 , - 2903 , - 2634 , - 2605 , - 2816 , - 3267 , - 118 , - 1049 , - 2220 , - 3631 , - 1442 , - 3333 , - 1624 , - 155 , - 2766 , - 1777 , - 1028 , - 519 , - 250 , - 221 , - 432 , - 883 , - 1574 , - 2505 , - 3676 , - 1247 , - 2898 , - 949 , - 3080 , - 1611 , - 382 , - 3233 , - 2484 , - 1975 , - 1706 , - 1677 , - 1888 , - 2339 , - 3030 , - 121 , - 1292 , - 2703 , - 514 , - 2405 , - 696 , - 3067 , - 1838 , - 849 , - 100 , - 3431 , - 3162 , - 3133 , - 3344 , - 3795 , - 646 , - 1577 , - 2748 , - 319 , - 1970 , - 21 , - 2152 , - 683 , - 3294 , - 2305 , - 1556 , - 1047 , - 778 , - 749 , - 960 , - 1411 , - 2102 , - 3033 , - 364 , - 1775 , - 3426 , - 1477 , - 3608 , - 2139 , - 910 , - 3761 , - 3012 , - 2503 , - 2234 , - 2205 , - 2416 , - 2867 , - 3558 , - 649 , - 1820 , - 3231 , - 1042 , - 2933 , - 1224 , - 3595 , - 2366 , - 1377 , - 628 , - 119 , - 3690 , - 3661 , - 32 , - 483 , - 1174 , - 2105 , - 3276 , - 847 , - 2498 , - 549 , - 2680 , - 1211 , - 3822 , - 2833 , - 2084 , - 1575 , - 1306 , - 1277 , - 1488 , - 1939 , - 2630 , - 3561 , - 892 , - 2303 , - 114 , - 2005 , - 296 , - 2667 , - 1438 , - 449 , - 3540 , - 3031 , - 2762 , - 2733 , - 2944 , - 3395 , - 246 , - 1177 , - 2348 , - 3759 , - 1570 , - 3461 , - 1752 , - 283 , - 2894 , - 1905 , - 1156 , - 647 , - 378 , - 349 , - 560 , - 1011 , - 1702 , - 2633 , - 3804 , - 1375 , - 3026 , - 1077 , - 3208 , - 1739 , - 510 , - 3361 , - 2612 , - 2103 , - 1834 , - 1805 , - 2016 , - 2467 , - 3158 , - 249 , - 1420 , - 2831 , - 642 , - 2533 , - 824 , - 3195 , - 1966 , - 977 , - 228 , - 3559 , - 3290 , - 3261 , - 3472 , - 83 , - 774 , - 1705 , - 2876 , - 447 , - 2098 , - 149 , - 2280 , - 811 , - 3422 , - 2433 , - 1684 , - 1175 , - 906 , - 877 , - 1088 , - 1539 , - 2230 , - 3161 , - 492 , - 1903 , - 3554 , - 1605 , - 3736 , - 2267 , - 1038 , - 49 , - 3140 , - 2631 , - 2362 , - 2333 , - 2544 , - 2995 , - 3686 , - 777 , - 1948 , - 3359 , - 1170 , - 3061 , - 1352 , - 3723 , - 2494 , - 1505 , - 756 , - 247 , - 3818 , - 3789 , - 160 , - 611 , - 1302 , - 2233 , - 3404 , - 975 , - 2626 , - 677 , - 2808 , - 1339 , - 110 , - 2961 , - 2212 , - 1703 , - 1434 , - 1405 , - 1616 , - 2067 , - 2758 , - 3689 , - 1020 , - 2431 , - 242 , - 2133 , - 424 , - 2795 , - 1566 , - 577 , - 3668 , - 3159 , - 2890 , - 2861 , - 3072 , - 3523 , - 374 , - 1305 , - 2476 , - 47 , - 1698 , - 3589 , - 1880 , - 411 , - 3022 , - 2033 , - 1284 , - 775 , - 506 , - 477 , - 688 , - 1139 , - 1830 , - 2761 , - 92 , - 1503 , - 3154 , - 1205 , - 3336 , - 1867 , - 638 , - 3489 , - 2740 , - 2231 , - 1962 , - 1933 , - 2144 , - 2595 , - 3286 , - 377 , - 1548 , - 2959 , - 770 , - 2661 , - 952 , - 3323 , - 2094 , - 1105 , - 356 , - 3687 , - 3418 , - 3389 , - 3600 , - 211 , - 902 , - 1833 , - 3004 , - 575 , - 2226 , - 277 , - 2408 , - 939 , - 3550 , - 2561 , - 1812 , - 1303 , - 1034 , - 1005 , - 1216 , - 1667 , - 2358 , - 3289 , - 620 , - 2031 , - 3682 , - 1733 , - 24 , - 2395 , - 1166 , - 177 , - 3268 , - 2759 , - 2490 , - 2461 , - 2672 , - 3123 , - 3814 , - 905 , - 2076 , - 3487 , - 1298 , - 3189 , - 1480 , - 11 , - 2622 , - 1633 , - 884 , - 375 , - 106 , - 77 , - 288 , - 739 , - 1430 , - 2361 , - 3532 , - 1103 , - 2754 , - 805 , - 2936 , - 1467 , - 238 , - 3089 , - 2340 , - 1831 , - 1562 , - 1533 , - 1744 , - 2195 , - 2886 , - 3817 , - 1148 , - 2559 , - 370 , - 2261 , - 552 , - 2923 , - 1694 , - 705 , - 3796 , - 3287 , - 3018 , - 2989 , - 3200 , - 3651 , - 502 , - 1433 , - 2604 , - 175 , - 1826 , - 3717 , - 2008 , - 539 , - 3150 , - 2161 , - 1412 , - 903 , - 634 , - 605 , - 816 , - 1267 , - 1958 , - 2889 , - 220 , - 1631 , - 3282 , - 1333 , - 3464 , - 1995 , - 766 , - 3617 , - 2868 , - 2359 , - 2090 , - 2061 , - 2272 , - 2723 , - 3414 , - 505 , - 1676 , - 3087 , - 898 , - 2789 , - 1080 , - 3451 , - 2222 , - 1233 , - 484 , - 3815 , - 3546 , - 3517 , - 3728 , - 339 , - 1030 , - 1961 , - 3132 , - 703 , - 2354 , - 405 , - 2536 , - 1067 , - 3678 , - 2689 , - 1940 , - 1431 , - 1162 , - 1133 , - 1344 , - 1795 , - 2486 , - 3417 , - 748 , - 2159 , - 3810 , - 1861 , - 152 , - 2523 , - 1294 , - 305 , - 3396 , - 2887 , - 2618 , - 2589 , - 2800 , - 3251 , - 102 , - 1033 , - 2204 , - 3615 , - 1426 , - 3317 , - 1608 , - 139 , - 2750 , - 1761 , - 1012 , - 503 , - 234 , - 205 , - 416 , - 867 , - 1558 , - 2489 , - 3660 , - 1231 , - 2882 , - 933 , - 3064 , - 1595 , - 366 , - 3217 , - 2468 , - 1959 , - 1690 , - 1661 , - 1872 , - 2323 , - 3014 , - 105 , - 1276 , - 2687 , - 498 , - 2389 , - 680 , - 3051 , - 1822 , - 833 , - 84 , - 3415 , - 3146 , - 3117 , - 3328 , - 3779 , - 630 , - 1561 , - 2732 , - 303 , - 1954 , - 5 , - 2136 , - 667 , - 3278 , - 2289 , - 1540 , - 1031 , - 762 , - 733 , - 944 , - 1395 , - 2086 , - 3017 , - 348 , - 1759 , - 3410 , - 1461 , - 3592 , - 2123 , - 894 , - 3745 , - 2996 , - 2487 , - 2218 , - 2189 , - 2400 , - 2851 , - 3542 , - 633 , - 1804 , - 3215 , - 1026 , - 2917 , - 1208 , - 3579 , - 2350 , - 1361 , - 612 , - 103 , - 3674 , - 3645 , - 16 , - 467 , - 1158 , - 2089 , - 3260 , - 831 , - 2482 , - 533 , - 2664 , - 1195 , - 3806 , - 2817 , - 2068 , - 1559 , - 1290 , - 1261 , - 1472 , - 1923 , - 2614 , - 3545 , - 876 , - 2287 , - 98 , - 1989 , - 280 , - 2651 , - 1422 , - 433 , - 3524 , - 3015 , - 2746 , - 2717 , - 2928 , - 3379 , - 230 , - 1161 , - 2332 , - 3743 , - 1554 , - 3445 , - 1736 , - 267 , - 2878 , - 1889 , - 1140 , - 631 , - 362 , - 333 , - 544 , - 995 , - 1686 , - 2617 , - 3788 , - 1359 , - 3010 , - 1061 , - 3192 , - 1723 , - 494 , - 3345 , - 2596 , - 2087 , - 1818 , - 1789 , - 2000 , - 2451 , - 3142 , - 233 , - 1404 , - 2815 , - 626 , - 2517 , - 808 , - 3179 , - 1950 , - 961 , - 212 , - 3543 , - 3274 , - 3245 , - 3456 , - 67 , - 758 , - 1689 , - 2860 , - 431 , - 2082 , - 133 , - 2264 , - 795 , - 3406 , - 2417 , - 1668 , - 1159 , - 890 , - 861 , - 1072 , - 1523 , - 2214 , - 3145 , - 476 , - 1887 , - 3538 , - 1589 , - 3720 , - 2251 , - 1022 , - 33 , - 3124 , - 2615 , - 2346 , - 2317 , - 2528 , - 2979 , - 3670 , - 761 , - 1932 , - 3343 , - 1154 , - 3045 , - 1336 , - 3707 , - 2478 , - 1489 , - 740 , - 231 , - 3802 , - 3773 , - 144 , - 595 , - 1286 , - 2217 , - 3388 , - 959 , - 2610 , - 661 , - 2792 , - 1323 , - 94 , - 2945 , - 2196 , - 1687 , - 1418 , - 1389 , - 1600 , - 2051 , - 2742 , - 3673 , - 1004 , - 2415 , - 226 , - 2117 , - 408 , - 2779 , - 1550 , - 561 , - 3652 , - 3143 , - 2874 , - 2845 , - 3056 , - 3507 , - 358 , - 1289 , - 2460 , - 31 , - 1682 , - 3573 , - 1864 , - 395 , - 3006 , - 2017 , - 1268 , - 759 , - 490 , - 461 , - 672 , - 1123 , - 1814 , - 2745 , - 76 , - 1487 , - 3138 , - 1189 , - 3320 , - 1851 , - 622 , - 3473 , - 2724 , - 2215 , - 1946 , - 1917 , - 2128 , - 2579 , - 3270 , - 361 , - 1532 , - 2943 , - 754 , - 2645 , - 936 , - 3307 , - 2078 , - 1089 , - 340 , - 3671 , - 3402 , - 3373 , - 3584 , - 195 , - 886 , - 1817 , - 2988 , - 559 , - 2210 , - 261 , - 2392 , - 923 , - 3534 , - 2545 , - 1796 , - 1287 , - 1018 , - 989 , - 1200 , - 1651 , - 2342 , - 3273 , - 604 , - 2015 , - 3666 , - 1717 , - 8 , - 2379 , - 1150 , - 161 , - 3252 , - 2743 , - 2474 , - 2445 , - 2656 , - 3107 , - 3798 , - 889 , - 2060 , - 3471 , - 1282 , - 3173 , - 1464 , - 3835 , - 2606 , - 1617 , - 868 , - 359 , - 90 , - 61 , - 272 , - 723 , - 1414 , - 2345 , - 3516 , - 1087 , - 2738 , - 789 , - 2920 , - 1451 , - 222 , - 3073 , - 2324 , - 1815 , - 1546 , - 1517 , - 1728 , - 2179 , - 2870 , - 3801 , - 1132 , - 2543 , - 354 , - 2245 , - 536 , - 2907 , - 1678 , - 689 , - 3780 , - 3271 , - 3002 , - 2973 , - 3184 , - 3635 , - 486 , - 1417 , - 2588 , - 159 , - 1810 , - 3701 , - 1992 , - 523 , - 3134 , - 2145 , - 1396 , - 887 , - 618 , - 589 , - 800 , - 1251 , - 1942 , - 2873 , - 204 , - 1615 , - 3266 , - 1317 , - 3448 , - 1979 , - 750 , - 3601 , - 2852 , - 2343 , - 2074 , - 2045 , - 2256 , - 2707 , - 3398 , - 489 , - 1660 , - 3071 , - 882 , - 2773 , - 1064 , - 3435 , - 2206 , - 1217 , - 468 , - 3799 , - 3530 , - 3501 , - 3712 , - 323 , - 1014 , - 1945 , - 3116 , - 687 , - 2338 , - 389 , - 2520 , - 1051 , - 3662 , - 2673 , - 1924 , - 1415 , - 1146 , - 1117 , - 1328 , - 1779 , - 2470 , - 3401 , - 732 , - 2143 , - 3794 , - 1845 , - 136 , - 2507 , - 1278 , - 289 , - 3380 , - 2871 , - 2602 , - 2573 , - 2784 , - 3235 , - 86 , - 1017 , - 2188 , - 3599 , - 1410 , - 3301 , - 1592 , - 123 , - 2734 , - 1745 , - 996 , - 487 , - 218 , - 189 , - 400 , - 851 , - 1542 , - 2473 , - 3644 , - 1215 , - 2866 , - 917 , - 3048 , - 1579 , - 350 , - 3201 , - 2452 , - 1943 , - 1674 , - 1645 , - 1856 , - 2307 , - 2998 , - 89 , - 1260 , - 2671 , - 482 , - 2373 , - 664 , - 3035 , - 1806 , - 817 , - 68 , - 3399 , - 3130 , - 3101 , - 3312 , - 3763 , - 614 , - 1545 , - 2716 , - 287 , - 1938 , - 3829 , - 2120 , - 651 , - 3262 , - 2273 , - 1524 , - 1015 , - 746 , - 717 , - 928 , - 1379 , - 2070 , - 3001 , - 332 , - 1743 , - 3394 , - 1445 , - 3576 , - 2107 , - 878 , - 3729 , - 2980 , - 2471 , - 2202 , - 2173 , - 2384 , - 2835 , - 3526 , - 617 , - 1788 , - 3199 , - 1010 , - 2901 , - 1192 , - 3563 , - 2334 , - 1345 , - 596 , - 87 , - 3658 , - 3629 , - 0 , - 607 , - 1702 , - 3285 , - 1452 , - 107 , - 3154 , - 2785 , - 2904 , - 3511 , - 702 , - 2285 , - 452 , - 3011 , - 2154 , - 1785 , - 1904 , - 2511 , - 3606 , - 1285 , - 3356 , - 2011 , - 1154 , - 785 , - 904 , - 1511 , - 2606 , - 285 , - 2356 , - 1011 , - 154 , - 3689 , - 3808 , - 511 , - 1606 , - 3189 , - 1356 , - 11 , - 3058 , - 2689 , - 2808 , - 3415 , - 606 , - 2189 , - 356 , - 2915 , - 2058 , - 1689 , - 1808 , - 2415 , - 3510 , - 1189 , - 3260 , - 1915 , - 1058 , - 689 , - 808 , - 1415 , - 2510 , - 189 , - 2260 , - 915 , - 58 , - 3593 , - 3712 , - 415 , - 1510 , - 3093 , - 1260 , - 3819 , - 2962 , - 2593 , - 2712 , - 3319 , - 510 , - 2093 , - 260 , - 2819 , - 1962 , - 1593 , - 1712 , - 2319 , - 3414 , - 1093 , - 3164 , - 1819 , - 962 , - 593 , - 712 , - 1319 , - 2414 , - 93 , - 2164 , - 819 , - 3866 , - 3497 , - 3616 , - 319 , - 1414 , - 2997 , - 1164 , - 3723 , - 2866 , - 2497 , - 2616 , - 3223 , - 414 , - 1997 , - 164 , - 2723 , - 1866 , - 1497 , - 1616 , - 2223 , - 3318 , - 997 , - 3068 , - 1723 , - 866 , - 497 , - 616 , - 1223 , - 2318 , - 3901 , - 2068 , - 723 , - 3770 , - 3401 , - 3520 , - 223 , - 1318 , - 2901 , - 1068 , - 3627 , - 2770 , - 2401 , - 2520 , - 3127 , - 318 , - 1901 , - 68 , - 2627 , - 1770 , - 1401 , - 1520 , - 2127 , - 3222 , - 901 , - 2972 , - 1627 , - 770 , - 401 , - 520 , - 1127 , - 2222 , - 3805 , - 1972 , - 627 , - 3674 , - 3305 , - 3424 , - 127 , - 1222 , - 2805 , - 972 , - 3531 , - 2674 , - 2305 , - 2424 , - 3031 , - 222 , - 1805 , - 3876 , - 2531 , - 1674 , - 1305 , - 1424 , - 2031 , - 3126 , - 805 , - 2876 , - 1531 , - 674 , - 305 , - 424 , - 1031 , - 2126 , - 3709 , - 1876 , - 531 , - 3578 , - 3209 , - 3328 , - 31 , - 1126 , - 2709 , - 876 , - 3435 , - 2578 , - 2209 , - 2328 , - 2935 , - 126 , - 1709 , - 3780 , - 2435 , - 1578 , - 1209 , - 1328 , - 1935 , - 3030 , - 709 , - 2780 , - 1435 , - 578 , - 209 , - 328 , - 935 , - 2030 , - 3613 , - 1780 , - 435 , - 3482 , - 3113 , - 3232 , - 3839 , - 1030 , - 2613 , - 780 , - 3339 , - 2482 , - 2113 , - 2232 , - 2839 , - 30 , - 1613 , - 3684 , - 2339 , - 1482 , - 1113 , - 1232 , - 1839 , - 2934 , - 613 , - 2684 , - 1339 , - 482 , - 113 , - 232 , - 839 , - 1934 , - 3517 , - 1684 , - 339 , - 3386 , - 3017 , - 3136 , - 3743 , - 934 , - 2517 , - 684 , - 3243 , - 2386 , - 2017 , - 2136 , - 2743 , - 3838 , - 1517 , - 3588 , - 2243 , - 1386 , - 1017 , - 1136 , - 1743 , - 2838 , - 517 , - 2588 , - 1243 , - 386 , - 17 , - 136 , - 743 , - 1838 , - 3421 , - 1588 , - 243 , - 3290 , - 2921 , - 3040 , - 3647 , - 838 , - 2421 , - 588 , - 3147 , - 2290 , - 1921 , - 2040 , - 2647 , - 3742 , - 1421 , - 3492 , - 2147 , - 1290 , - 921 , - 1040 , - 1647 , - 2742 , - 421 , - 2492 , - 1147 , - 290 , - 3825 , - 40 , - 647 , - 1742 , - 3325 , - 1492 , - 147 , - 3194 , - 2825 , - 2944 , - 3551 , - 742 , - 2325 , - 492 , - 3051 , - 2194 , - 1825 , - 1944 , - 2551 , - 3646 , - 1325 , - 3396 , - 2051 , - 1194 , - 825 , - 944 , - 1551 , - 2646 , - 325 , - 2396 , - 1051 , - 194 , - 3729 , - 3848 , - 551 , - 1646 , - 3229 , - 1396 , - 51 , - 3098 , - 2729 , - 2848 , - 3455 , - 646 , - 2229 , - 396 , - 2955 , - 2098 , - 1729 , - 1848 , - 2455 , - 3550 , - 1229 , - 3300 , - 1955 , - 1098 , - 729 , - 848 , - 1455 , - 2550 , - 229 , - 2300 , - 955 , - 98 , - 3633 , - 3752 , - 455 , - 1550 , - 3133 , - 1300 , - 3859 , - 3002 , - 2633 , - 2752 , - 3359 , - 550 , - 2133 , - 300 , - 2859 , - 2002 , - 1633 , - 1752 , - 2359 , - 3454 , - 1133 , - 3204 , - 1859 , - 1002 , - 633 , - 752 , - 1359 , - 2454 , - 133 , - 2204 , - 859 , - 2 , - 3537 , - 3656 , - 359 , - 1454 , - 3037 , - 1204 , - 3763 , - 2906 , - 2537 , - 2656 , - 3263 , - 454 , - 2037 , - 204 , - 2763 , - 1906 , - 1537 , - 1656 , - 2263 , - 3358 , - 1037 , - 3108 , - 1763 , - 906 , - 537 , - 656 , - 1263 , - 2358 , - 37 , - 2108 , - 763 , - 3810 , - 3441 , - 3560 , - 263 , - 1358 , - 2941 , - 1108 , - 3667 , - 2810 , - 2441 , - 2560 , - 3167 , - 358 , - 1941 , - 108 , - 2667 , - 1810 , - 1441 , - 1560 , - 2167 , - 3262 , - 941 , - 3012 , - 1667 , - 810 , - 441 , - 560 , - 1167 , - 2262 , - 3845 , - 2012 , - 667 , - 3714 , - 3345 , - 3464 , - 167 , - 1262 , - 2845 , - 1012 , - 3571 , - 2714 , - 2345 , - 2464 , - 3071 , - 262 , - 1845 , - 12 , - 2571 , - 1714 , - 1345 , - 1464 , - 2071 , - 3166 , - 845 , - 2916 , - 1571 , - 714 , - 345 , - 464 , - 1071 , - 2166 , - 3749 , - 1916 , - 571 , - 3618 , - 3249 , - 3368 , - 71 , - 1166 , - 2749 , - 916 , - 3475 , - 2618 , - 2249 , - 2368 , - 2975 , - 166 , - 1749 , - 3820 , - 2475 , - 1618 , - 1249 , - 1368 , - 1975 , - 3070 , - 749 , - 2820 , - 1475 , - 618 , - 249 , - 368 , - 975 , - 2070 , - 3653 , - 1820 , - 475 , - 3522 , - 3153 , - 3272 , - 3879 , - 1070 , - 2653 , - 820 , - 3379 , - 2522 , - 2153 , - 2272 , - 2879 , - 70 , - 1653 , - 3724 , - 2379 , - 1522 , - 1153 , - 1272 , - 1879 , - 2974 , - 653 , - 2724 , - 1379 , - 522 , - 153 , - 272 , - 879 , - 1974 , - 3557 , - 1724 , - 379 , - 3426 , - 3057 , - 3176 , - 3783 , - 974 , - 2557 , - 724 , - 3283 , - 2426 , - 2057 , - 2176 , - 2783 , - 3878 , - 1557 , - 3628 , - 2283 , - 1426 , - 1057 , - 1176 , - 1783 , - 2878 , - 557 , - 2628 , - 1283 , - 426 , - 57 , - 176 , - 783 , - 1878 , - 3461 , - 1628 , - 283 , - 3330 , - 2961 , - 3080 , - 3687 , - 878 , - 2461 , - 628 , - 3187 , - 2330 , - 1961 , - 2080 , - 2687 , - 3782 , - 1461 , - 3532 , - 2187 , - 1330 , - 961 , - 1080 , - 1687 , - 2782 , - 461 , - 2532 , - 1187 , - 330 , - 3865 , - 80 , - 687 , - 1782 , - 3365 , - 1532 , - 187 , - 3234 , - 2865 , - 2984 , - 3591 , - 782 , - 2365 , - 532 , - 3091 , - 2234 , - 1865 , - 1984 , - 2591 , - 3686 , - 1365 , - 3436 , - 2091 , - 1234 , - 865 , - 984 , - 1591 , - 2686 , - 365 , - 2436 , - 1091 , - 234 , - 3769 , - 3888 , - 591 , - 1686 , - 3269 , - 1436 , - 91 , - 3138 , - 2769 , - 2888 , - 3495 , - 686 , - 2269 , - 436 , - 2995 , - 2138 , - 1769 , - 1888 , - 2495 , - 3590 , - 1269 , - 3340 , - 1995 , - 1138 , - 769 , - 888 , - 1495 , - 2590 , - 269 , - 2340 , - 995 , - 138 , - 3673 , - 3792 , - 495 , - 1590 , - 3173 , - 1340 , - 3899 , - 3042 , - 2673 , - 2792 , - 3399 , - 590 , - 2173 , - 340 , - 2899 , - 2042 , - 1673 , - 1792 , - 2399 , - 3494 , - 1173 , - 3244 , - 1899 , - 1042 , - 673 , - 792 , - 1399 , - 2494 , - 173 , - 2244 , - 899 , - 42 , - 3577 , - 3696 , - 399 , - 1494 , - 3077 , - 1244 , - 3803 , - 2946 , - 2577 , - 2696 , - 3303 , - 494 , - 2077 , - 244 , - 2803 , - 1946 , - 1577 , - 1696 , - 2303 , - 3398 , - 1077 , - 3148 , - 1803 , - 946 , - 577 , - 696 , - 1303 , - 2398 , - 77 , - 2148 , - 803 , - 3850 , - 3481 , - 3600 , - 303 , - 1398 , - 2981 , - 1148 , - 3707 , - 2850 , - 2481 , - 2600 , - 3207 , - 398 , - 1981 , - 148 , - 2707 , - 1850 , - 1481 , - 1600 , - 2207 , - 3302 , - 981 , - 3052 , - 1707 , - 850 , - 481 , - 600 , - 1207 , - 2302 , - 3885 , - 2052 , - 707 , - 3754 , - 3385 , - 3504 , - 207 , - 1302 , - 2885 , - 1052 , - 3611 , - 2754 , - 2385 , - 2504 , - 3111 , - 302 , - 1885 , - 52 , - 2611 , - 1754 , - 1385 , - 1504 , - 2111 , - 3206 , - 885 , - 2956 , - 1611 , - 754 , - 385 , - 504 , - 1111 , - 2206 , - 3789 , - 1956 , - 611 , - 3658 , - 3289 , - 3408 , - 111 , - 1206 , - 2789 , - 956 , - 3515 , - 2658 , - 2289 , - 2408 , - 3015 , - 206 , - 1789 , - 3860 , - 2515 , - 1658 , - 1289 , - 1408 , - 2015 , - 3110 , - 789 , - 2860 , - 1515 , - 658 , - 289 , - 408 , - 1015 , - 2110 , - 3693 , - 1860 , - 515 , - 3562 , - 3193 , - 3312 , - 15 , - 1110 , - 2693 , - 860 , - 3419 , - 2562 , - 2193 , - 2312 , - 2919 , - 110 , - 1693 , - 3764 , - 2419 , - 1562 , - 1193 , - 1312 , - 1919 , - 3014 , - 693 , - 2764 , - 1419 , - 562 , - 193 , - 312 , - 919 , - 2014 , - 3597 , - 1764 , - 419 , - 3466 , - 3097 , - 3216 , - 3823 , - 1014 , - 2597 , - 764 , - 3323 , - 2466 , - 2097 , - 2216 , - 2823 , - 14 , - 1597 , - 3668 , - 2323 , - 1466 , - 1097 , - 1216 , - 1823 , - 2918 , - 597 , - 2668 , - 1323 , - 466 , - 97 , - 216 , - 823 , - 1918 , - 3501 , - 1668 , - 323 , - 3370 , - 3001 , - 3120 , - 3727 , - 918 , - 2501 , - 668 , - 3227 , - 2370 , - 2001 , - 2120 , - 2727 , - 3822 , - 1501 , - 3572 , - 2227 , - 1370 , - 1001 , - 1120 , - 1727 , - 2822 , - 501 , - 2572 , - 1227 , - 370 , - 1 , - 120 , - 727 , - 1822 , - 3405 , - 1572 , - 227 , - 3274 , - 2905 , - 3024 , - 3631 , - 822 , - 2405 , - 572 , - 3131 , - 2274 , - 1905 , - 2024 , - 2631 , - 3726 , - 1405 , - 3476 , - 2131 , - 1274 , - 905 , - 1024 , - 1631 , - 2726 , - 405 , - 2476 , - 1131 , - 274 , - 3809 , - 24 , - 631 , - 1726 , - 3309 , - 1476 , - 131 , - 3178 , - 2809 , - 2928 , - 3535 , - 726 , - 2309 , - 476 , - 3035 , - 2178 , - 1809 , - 1928 , - 2535 , - 3630 , - 1309 , - 3380 , - 2035 , - 1178 , - 809 , - 928 , - 1535 , - 2630 , - 309 , - 2380 , - 1035 , - 178 , - 3713 , - 3832 , - 535 , - 1630 , - 3213 , - 1380 , - 35 , - 3082 , - 2713 , - 2832 , - 3439 , - 630 , - 2213 , - 380 , - 2939 , - 2082 , - 1713 , - 1832 , - 2439 , - 3534 , - 1213 , - 3284 , - 1939 , - 1082 , - 713 , - 832 , - 1439 , - 2534 , - 213 , - 2284 , - 939 , - 82 , - 3617 , - 3736 , - 439 , - 1534 , - 3117 , - 1284 , - 3843 , - 2986 , - 2617 , - 2736 , - 3343 , - 534 , - 2117 , - 284 , - 2843 , - 1986 , - 1617 , - 1736 , - 2343 , - 3438 , - 1117 , - 3188 , - 1843 , - 986 , - 617 , - 736 , - 1343 , - 2438 , - 117 , - 2188 , - 843 , - 3890 , - 3521 , - 3640 , - 343 , - 1438 , - 3021 , - 1188 , - 3747 , - 2890 , - 2521 , - 2640 , - 3247 , - 438 , - 2021 , - 188 , - 2747 , - 1890 , - 1521 , - 1640 , - 2247 , - 3342 , - 1021 , - 3092 , - 1747 , - 890 , - 521 , - 640 , - 1247 , - 2342 , - 21 , - 2092 , - 747 , - 3794 , - 3425 , - 3544 , - 247 , - 1342 , - 2925 , - 1092 , - 3651 , - 2794 , - 2425 , - 2544 , - 3151 , - 342 , - 1925 , - 92 , - 2651 , - 1794 , - 1425 , - 1544 , - 2151 , - 3246 , - 925 , - 2996 , - 1651 , - 794 , - 425 , - 544 , - 1151 , - 2246 , - 3829 , - 1996 , - 651 , - 3698 , - 3329 , - 3448 , - 151 , - 1246 , - 2829 , - 996 , - 3555 , - 2698 , - 2329 , - 2448 , - 3055 , - 246 , - 1829 , - 3900 , - 2555 , - 1698 , - 1329 , - 1448 , - 2055 , - 3150 , - 829 , - 2900 , - 1555 , - 698 , - 329 , - 448 , - 1055 , - 2150 , - 3733 , - 1900 , - 555 , - 3602 , - 3233 , - 3352 , - 55 , - 1150 , - 2733 , - 900 , - 3459 , - 2602 , - 2233 , - 2352 , - 2959 , - 150 , - 1733 , - 3804 , - 2459 , - 1602 , - 1233 , - 1352 , - 1959 , - 3054 , - 733 , - 2804 , - 1459 , - 602 , - 233 , - 352 , - 959 , - 2054 , - 3637 , - 1804 , - 459 , - 3506 , - 3137 , - 3256 , - 3863 , - 1054 , - 2637 , - 804 , - 3363 , - 2506 , - 2137 , - 2256 , - 2863 , - 54 , - 1637 , - 3708 , - 2363 , - 1506 , - 1137 , - 1256 , - 1863 , - 2958 , - 637 , - 2708 , - 1363 , - 506 , - 137 , - 256 , - 863 , - 1958 , - 3541 , - 1708 , - 363 , - 3410 , - 3041 , - 3160 , - 3767 , - 958 , - 2541 , - 708 , - 3267 , - 2410 , - 2041 , - 2160 , - 2767 , - 3862 , - 1541 , - 3612 , - 2267 , - 1410 , - 1041 , - 1160 , - 1767 , - 2862 , - 541 , - 2612 , - 1267 , - 410 , - 41 , - 160 , - 767 , - 1862 , - 3445 , - 1612 , - 267 , - 3314 , - 2945 , - 3064 , - 3671 , - 862 , - 2445 , - 612 , - 3171 , - 2314 , - 1945 , - 2064 , - 2671 , - 3766 , - 1445 , - 3516 , - 2171 , - 1314 , - 945 , - 1064 , - 1671 , - 2766 , - 445 , - 2516 , - 1171 , - 314 , - 3849 , - 64 , - 671 , - 1766 , - 3349 , - 1516 , - 171 , - 3218 , - 2849 , - 2968 , - 3575 , - 766 , - 2349 , - 516 , - 3075 , - 2218 , - 1849 , - 1968 , - 2575 , - 3670 , - 1349 , - 3420 , - 2075 , - 1218 , - 849 , - 968 , - 1575 , - 2670 , - 349 , - 2420 , - 1075 , - 218 , - 3753 , - 3872 , - 575 , - 1670 , - 3253 , - 1420 , - 75 , - 3122 , - 2753 , - 2872 , - 3479 , - 670 , - 2253 , - 420 , - 2979 , - 2122 , - 1753 , - 1872 , - 2479 , - 3574 , - 1253 , - 3324 , - 1979 , - 1122 , - 753 , - 872 , - 1479 , - 2574 , - 253 , - 2324 , - 979 , - 122 , - 3657 , - 3776 , - 479 , - 1574 , - 3157 , - 1324 , - 3883 , - 3026 , - 2657 , - 2776 , - 3383 , - 574 , - 2157 , - 324 , - 2883 , - 2026 , - 1657 , - 1776 , - 2383 , - 3478 , - 1157 , - 3228 , - 1883 , - 1026 , - 657 , - 776 , - 1383 , - 2478 , - 157 , - 2228 , - 883 , - 26 , - 3561 , - 3680 , - 383 , - 1478 , - 3061 , - 1228 , - 3787 , - 2930 , - 2561 , - 2680 , - 3287 , - 478 , - 2061 , - 228 , - 2787 , - 1930 , - 1561 , - 1680 , - 2287 , - 3382 , - 1061 , - 3132 , - 1787 , - 930 , - 561 , - 680 , - 1287 , - 2382 , - 61 , - 2132 , - 787 , - 3834 , - 3465 , - 3584 , - 287 , - 1382 , - 2965 , - 1132 , - 3691 , - 2834 , - 2465 , - 2584 , - 3191 , - 382 , - 1965 , - 132 , - 2691 , - 1834 , - 1465 , - 1584 , - 2191 , - 3286 , - 965 , - 3036 , - 1691 , - 834 , - 465 , - 584 , - 1191 , - 2286 , - 3869 , - 2036 , - 691 , - 3738 , - 3369 , - 3488 , - 191 , - 1286 , - 2869 , - 1036 , - 3595 , - 2738 , - 2369 , - 2488 , - 3095 , - 286 , - 1869 , - 36 , - 2595 , - 1738 , - 1369 , - 1488 , - 2095 , - 3190 , - 869 , - 2940 , - 1595 , - 738 , - 369 , - 488 , - 1095 , - 2190 , - 3773 , - 1940 , - 595 , - 3642 , - 3273 , - 3392 , - 95 , - 1190 , - 2773 , - 940 , - 3499 , - 2642 , - 2273 , - 2392 , - 2999 , - 190 , - 1773 , - 3844 , - 2499 , - 1642 , - 1273 , - 1392 , - 1999 , - 3094 , - 773 , - 2844 , - 1499 , - 642 , - 273 , - 392 , - 999 , - 2094 , - 3677 , - 1844 , - 499 , - 3546 , - 3177 , - 3296 , - 3903 , - 1094 , - 2677 , - 844 , - 3403 , - 2546 , - 2177 , - 2296 , - 2903 , - 94 , - 1677 , - 3748 , - 2403 , - 1546 , - 1177 , - 1296 , - 1903 , - 2998 , - 677 , - 2748 , - 1403 , - 546 , - 177 , - 296 , - 903 , - 1998 , - 3581 , - 1748 , - 403 , - 3450 , - 3081 , - 3200 , - 3807 , - 998 , - 2581 , - 748 , - 3307 , - 2450 , - 2081 , - 2200 , - 2807 , - 3902 , - 1581 , - 3652 , - 2307 , - 1450 , - 1081 , - 1200 , - 1807 , - 2902 , - 581 , - 2652 , - 1307 , - 450 , - 81 , - 200 , - 807 , - 1902 , - 3485 , - 1652 , - 307 , - 3354 , - 2985 , - 3104 , - 3711 , - 902 , - 2485 , - 652 , - 3211 , - 2354 , - 1985 , - 2104 , - 2711 , - 3806 , - 1485 , - 3556 , - 2211 , - 1354 , - 985 , - 1104 , - 1711 , - 2806 , - 485 , - 2556 , - 1211 , - 354 , - 3889 , - 104 , - 711 , - 1806 , - 3389 , - 1556 , - 211 , - 3258 , - 2889 , - 3008 , - 3615 , - 806 , - 2389 , - 556 , - 3115 , - 2258 , - 1889 , - 2008 , - 2615 , - 3710 , - 1389 , - 3460 , - 2115 , - 1258 , - 889 , - 1008 , - 1615 , - 2710 , - 389 , - 2460 , - 1115 , - 258 , - 3793 , - 8 , - 615 , - 1710 , - 3293 , - 1460 , - 115 , - 3162 , - 2793 , - 2912 , - 3519 , - 710 , - 2293 , - 460 , - 3019 , - 2162 , - 1793 , - 1912 , - 2519 , - 3614 , - 1293 , - 3364 , - 2019 , - 1162 , - 793 , - 912 , - 1519 , - 2614 , - 293 , - 2364 , - 1019 , - 162 , - 3697 , - 3816 , - 519 , - 1614 , - 3197 , - 1364 , - 19 , - 3066 , - 2697 , - 2816 , - 3423 , - 614 , - 2197 , - 364 , - 2923 , - 2066 , - 1697 , - 1816 , - 2423 , - 3518 , - 1197 , - 3268 , - 1923 , - 1066 , - 697 , - 816 , - 1423 , - 2518 , - 197 , - 2268 , - 923 , - 66 , - 3601 , - 3720 , - 423 , - 1518 , - 3101 , - 1268 , - 3827 , - 2970 , - 2601 , - 2720 , - 3327 , - 518 , - 2101 , - 268 , - 2827 , - 1970 , - 1601 , - 1720 , - 2327 , - 3422 , - 1101 , - 3172 , - 1827 , - 970 , - 601 , - 720 , - 1327 , - 2422 , - 101 , - 2172 , - 827 , - 3874 , - 3505 , - 3624 , - 327 , - 1422 , - 3005 , - 1172 , - 3731 , - 2874 , - 2505 , - 2624 , - 3231 , - 422 , - 2005 , - 172 , - 2731 , - 1874 , - 1505 , - 1624 , - 2231 , - 3326 , - 1005 , - 3076 , - 1731 , - 874 , - 505 , - 624 , - 1231 , - 2326 , - 5 , - 2076 , - 731 , - 3778 , - 3409 , - 3528 , - 231 , - 1326 , - 2909 , - 1076 , - 3635 , - 2778 , - 2409 , - 2528 , - 3135 , - 326 , - 1909 , - 76 , - 2635 , - 1778 , - 1409 , - 1528 , - 2135 , - 3230 , - 909 , - 2980 , - 1635 , - 778 , - 409 , - 528 , - 1135 , - 2230 , - 3813 , - 1980 , - 635 , - 3682 , - 3313 , - 3432 , - 135 , - 1230 , - 2813 , - 980 , - 3539 , - 2682 , - 2313 , - 2432 , - 3039 , - 230 , - 1813 , - 3884 , - 2539 , - 1682 , - 1313 , - 1432 , - 2039 , - 3134 , - 813 , - 2884 , - 1539 , - 682 , - 313 , - 432 , - 1039 , - 2134 , - 3717 , - 1884 , - 539 , - 3586 , - 3217 , - 3336 , - 39 , - 1134 , - 2717 , - 884 , - 3443 , - 2586 , - 2217 , - 2336 , - 2943 , - 134 , - 1717 , - 3788 , - 2443 , - 1586 , - 1217 , - 1336 , - 1943 , - 3038 , - 717 , - 2788 , - 1443 , - 586 , - 217 , - 336 , - 943 , - 2038 , - 3621 , - 1788 , - 443 , - 3490 , - 3121 , - 3240 , - 3847 , - 1038 , - 2621 , - 788 , - 3347 , - 2490 , - 2121 , - 2240 , - 2847 , - 38 , - 1621 , - 3692 , - 2347 , - 1490 , - 1121 , - 1240 , - 1847 , - 2942 , - 621 , - 2692 , - 1347 , - 490 , - 121 , - 240 , - 847 , - 1942 , - 3525 , - 1692 , - 347 , - 3394 , - 3025 , - 3144 , - 3751 , - 942 , - 2525 , - 692 , - 3251 , - 2394 , - 2025 , - 2144 , - 2751 , - 3846 , - 1525 , - 3596 , - 2251 , - 1394 , - 1025 , - 1144 , - 1751 , - 2846 , - 525 , - 2596 , - 1251 , - 394 , - 25 , - 144 , - 751 , - 1846 , - 3429 , - 1596 , - 251 , - 3298 , - 2929 , - 3048 , - 3655 , - 846 , - 2429 , - 596 , - 3155 , - 2298 , - 1929 , - 2048 , - 2655 , - 3750 , - 1429 , - 3500 , - 2155 , - 1298 , - 929 , - 1048 , - 1655 , - 2750 , - 429 , - 2500 , - 1155 , - 298 , - 3833 , - 48 , - 655 , - 1750 , - 3333 , - 1500 , - 155 , - 3202 , - 2833 , - 2952 , - 3559 , - 750 , - 2333 , - 500 , - 3059 , - 2202 , - 1833 , - 1952 , - 2559 , - 3654 , - 1333 , - 3404 , - 2059 , - 1202 , - 833 , - 952 , - 1559 , - 2654 , - 333 , - 2404 , - 1059 , - 202 , - 3737 , - 3856 , - 559 , - 1654 , - 3237 , - 1404 , - 59 , - 3106 , - 2737 , - 2856 , - 3463 , - 654 , - 2237 , - 404 , - 2963 , - 2106 , - 1737 , - 1856 , - 2463 , - 3558 , - 1237 , - 3308 , - 1963 , - 1106 , - 737 , - 856 , - 1463 , - 2558 , - 237 , - 2308 , - 963 , - 106 , - 3641 , - 3760 , - 463 , - 1558 , - 3141 , - 1308 , - 3867 , - 3010 , - 2641 , - 2760 , - 3367 , - 558 , - 2141 , - 308 , - 2867 , - 2010 , - 1641 , - 1760 , - 2367 , - 3462 , - 1141 , - 3212 , - 1867 , - 1010 , - 641 , - 760 , - 1367 , - 2462 , - 141 , - 2212 , - 867 , - 10 , - 3545 , - 3664 , - 367 , - 1462 , - 3045 , - 1212 , - 3771 , - 2914 , - 2545 , - 2664 , - 3271 , - 462 , - 2045 , - 212 , - 2771 , - 1914 , - 1545 , - 1664 , - 2271 , - 3366 , - 1045 , - 3116 , - 1771 , - 914 , - 545 , - 664 , - 1271 , - 2366 , - 45 , - 2116 , - 771 , - 3818 , - 3449 , - 3568 , - 271 , - 1366 , - 2949 , - 1116 , - 3675 , - 2818 , - 2449 , - 2568 , - 3175 , - 366 , - 1949 , - 116 , - 2675 , - 1818 , - 1449 , - 1568 , - 2175 , - 3270 , - 949 , - 3020 , - 1675 , - 818 , - 449 , - 568 , - 1175 , - 2270 , - 3853 , - 2020 , - 675 , - 3722 , - 3353 , - 3472 , - 175 , - 1270 , - 2853 , - 1020 , - 3579 , - 2722 , - 2353 , - 2472 , - 3079 , - 270 , - 1853 , - 20 , - 2579 , - 1722 , - 1353 , - 1472 , - 2079 , - 3174 , - 853 , - 2924 , - 1579 , - 722 , - 353 , - 472 , - 1079 , - 2174 , - 3757 , - 1924 , - 579 , - 3626 , - 3257 , - 3376 , - 79 , - 1174 , - 2757 , - 924 , - 3483 , - 2626 , - 2257 , - 2376 , - 2983 , - 174 , - 1757 , - 3828 , - 2483 , - 1626 , - 1257 , - 1376 , - 1983 , - 3078 , - 757 , - 2828 , - 1483 , - 626 , - 257 , - 376 , - 983 , - 2078 , - 3661 , - 1828 , - 483 , - 3530 , - 3161 , - 3280 , - 3887 , - 1078 , - 2661 , - 828 , - 3387 , - 2530 , - 2161 , - 2280 , - 2887 , - 78 , - 1661 , - 3732 , - 2387 , - 1530 , - 1161 , - 1280 , - 1887 , - 2982 , - 661 , - 2732 , - 1387 , - 530 , - 161 , - 280 , - 887 , - 1982 , - 3565 , - 1732 , - 387 , - 3434 , - 3065 , - 3184 , - 3791 , - 982 , - 2565 , - 732 , - 3291 , - 2434 , - 2065 , - 2184 , - 2791 , - 3886 , - 1565 , - 3636 , - 2291 , - 1434 , - 1065 , - 1184 , - 1791 , - 2886 , - 565 , - 2636 , - 1291 , - 434 , - 65 , - 184 , - 791 , - 1886 , - 3469 , - 1636 , - 291 , - 3338 , - 2969 , - 3088 , - 3695 , - 886 , - 2469 , - 636 , - 3195 , - 2338 , - 1969 , - 2088 , - 2695 , - 3790 , - 1469 , - 3540 , - 2195 , - 1338 , - 969 , - 1088 , - 1695 , - 2790 , - 469 , - 2540 , - 1195 , - 338 , - 3873 , - 88 , - 695 , - 1790 , - 3373 , - 1540 , - 195 , - 3242 , - 2873 , - 2992 , - 3599 , - 790 , - 2373 , - 540 , - 3099 , - 2242 , - 1873 , - 1992 , - 2599 , - 3694 , - 1373 , - 3444 , - 2099 , - 1242 , - 873 , - 992 , - 1599 , - 2694 , - 373 , - 2444 , - 1099 , - 242 , - 3777 , - 3896 , - 599 , - 1694 , - 3277 , - 1444 , - 99 , - 3146 , - 2777 , - 2896 , - 3503 , - 694 , - 2277 , - 444 , - 3003 , - 2146 , - 1777 , - 1896 , - 2503 , - 3598 , - 1277 , - 3348 , - 2003 , - 1146 , - 777 , - 896 , - 1503 , - 2598 , - 277 , - 2348 , - 1003 , - 146 , - 3681 , - 3800 , - 503 , - 1598 , - 3181 , - 1348 , - 3 , - 3050 , - 2681 , - 2800 , - 3407 , - 598 , - 2181 , - 348 , - 2907 , - 2050 , - 1681 , - 1800 , - 2407 , - 3502 , - 1181 , - 3252 , - 1907 , - 1050 , - 681 , - 800 , - 1407 , - 2502 , - 181 , - 2252 , - 907 , - 50 , - 3585 , - 3704 , - 407 , - 1502 , - 3085 , - 1252 , - 3811 , - 2954 , - 2585 , - 2704 , - 3311 , - 502 , - 2085 , - 252 , - 2811 , - 1954 , - 1585 , - 1704 , - 2311 , - 3406 , - 1085 , - 3156 , - 1811 , - 954 , - 585 , - 704 , - 1311 , - 2406 , - 85 , - 2156 , - 811 , - 3858 , - 3489 , - 3608 , - 311 , - 1406 , - 2989 , - 1156 , - 3715 , - 2858 , - 2489 , - 2608 , - 3215 , - 406 , - 1989 , - 156 , - 2715 , - 1858 , - 1489 , - 1608 , - 2215 , - 3310 , - 989 , - 3060 , - 1715 , - 858 , - 489 , - 608 , - 1215 , - 2310 , - 3893 , - 2060 , - 715 , - 3762 , - 3393 , - 3512 , - 215 , - 1310 , - 2893 , - 1060 , - 3619 , - 2762 , - 2393 , - 2512 , - 3119 , - 310 , - 1893 , - 60 , - 2619 , - 1762 , - 1393 , - 1512 , - 2119 , - 3214 , - 893 , - 2964 , - 1619 , - 762 , - 393 , - 512 , - 1119 , - 2214 , - 3797 , - 1964 , - 619 , - 3666 , - 3297 , - 3416 , - 119 , - 1214 , - 2797 , - 964 , - 3523 , - 2666 , - 2297 , - 2416 , - 3023 , - 214 , - 1797 , - 3868 , - 2523 , - 1666 , - 1297 , - 1416 , - 2023 , - 3118 , - 797 , - 2868 , - 1523 , - 666 , - 297 , - 416 , - 1023 , - 2118 , - 3701 , - 1868 , - 523 , - 3570 , - 3201 , - 3320 , - 23 , - 1118 , - 2701 , - 868 , - 3427 , - 2570 , - 2201 , - 2320 , - 2927 , - 118 , - 1701 , - 3772 , - 2427 , - 1570 , - 1201 , - 1320 , - 1927 , - 3022 , - 701 , - 2772 , - 1427 , - 570 , - 201 , - 320 , - 927 , - 2022 , - 3605 , - 1772 , - 427 , - 3474 , - 3105 , - 3224 , - 3831 , - 1022 , - 2605 , - 772 , - 3331 , - 2474 , - 2105 , - 2224 , - 2831 , - 22 , - 1605 , - 3676 , - 2331 , - 1474 , - 1105 , - 1224 , - 1831 , - 2926 , - 605 , - 2676 , - 1331 , - 474 , - 105 , - 224 , - 831 , - 1926 , - 3509 , - 1676 , - 331 , - 3378 , - 3009 , - 3128 , - 3735 , - 926 , - 2509 , - 676 , - 3235 , - 2378 , - 2009 , - 2128 , - 2735 , - 3830 , - 1509 , - 3580 , - 2235 , - 1378 , - 1009 , - 1128 , - 1735 , - 2830 , - 509 , - 2580 , - 1235 , - 378 , - 9 , - 128 , - 735 , - 1830 , - 3413 , - 1580 , - 235 , - 3282 , - 2913 , - 3032 , - 3639 , - 830 , - 2413 , - 580 , - 3139 , - 2282 , - 1913 , - 2032 , - 2639 , - 3734 , - 1413 , - 3484 , - 2139 , - 1282 , - 913 , - 1032 , - 1639 , - 2734 , - 413 , - 2484 , - 1139 , - 282 , - 3817 , - 32 , - 639 , - 1734 , - 3317 , - 1484 , - 139 , - 3186 , - 2817 , - 2936 , - 3543 , - 734 , - 2317 , - 484 , - 3043 , - 2186 , - 1817 , - 1936 , - 2543 , - 3638 , - 1317 , - 3388 , - 2043 , - 1186 , - 817 , - 936 , - 1543 , - 2638 , - 317 , - 2388 , - 1043 , - 186 , - 3721 , - 3840 , - 543 , - 1638 , - 3221 , - 1388 , - 43 , - 3090 , - 2721 , - 2840 , - 3447 , - 638 , - 2221 , - 388 , - 2947 , - 2090 , - 1721 , - 1840 , - 2447 , - 3542 , - 1221 , - 3292 , - 1947 , - 1090 , - 721 , - 840 , - 1447 , - 2542 , - 221 , - 2292 , - 947 , - 90 , - 3625 , - 3744 , - 447 , - 1542 , - 3125 , - 1292 , - 3851 , - 2994 , - 2625 , - 2744 , - 3351 , - 542 , - 2125 , - 292 , - 2851 , - 1994 , - 1625 , - 1744 , - 2351 , - 3446 , - 1125 , - 3196 , - 1851 , - 994 , - 625 , - 744 , - 1351 , - 2446 , - 125 , - 2196 , - 851 , - 3898 , - 3529 , - 3648 , - 351 , - 1446 , - 3029 , - 1196 , - 3755 , - 2898 , - 2529 , - 2648 , - 3255 , - 446 , - 2029 , - 196 , - 2755 , - 1898 , - 1529 , - 1648 , - 2255 , - 3350 , - 1029 , - 3100 , - 1755 , - 898 , - 529 , - 648 , - 1255 , - 2350 , - 29 , - 2100 , - 755 , - 3802 , - 3433 , - 3552 , - 255 , - 1350 , - 2933 , - 1100 , - 3659 , - 2802 , - 2433 , - 2552 , - 3159 , - 350 , - 1933 , - 100 , - 2659 , - 1802 , - 1433 , - 1552 , - 2159 , - 3254 , - 933 , - 3004 , - 1659 , - 802 , - 433 , - 552 , - 1159 , - 2254 , - 3837 , - 2004 , - 659 , - 3706 , - 3337 , - 3456 , - 159 , - 1254 , - 2837 , - 1004 , - 3563 , - 2706 , - 2337 , - 2456 , - 3063 , - 254 , - 1837 , - 4 , - 2563 , - 1706 , - 1337 , - 1456 , - 2063 , - 3158 , - 837 , - 2908 , - 1563 , - 706 , - 337 , - 456 , - 1063 , - 2158 , - 3741 , - 1908 , - 563 , - 3610 , - 3241 , - 3360 , - 63 , - 1158 , - 2741 , - 908 , - 3467 , - 2610 , - 2241 , - 2360 , - 2967 , - 158 , - 1741 , - 3812 , - 2467 , - 1610 , - 1241 , - 1360 , - 1967 , - 3062 , - 741 , - 2812 , - 1467 , - 610 , - 241 , - 360 , - 967 , - 2062 , - 3645 , - 1812 , - 467 , - 3514 , - 3145 , - 3264 , - 3871 , - 1062 , - 2645 , - 812 , - 3371 , - 2514 , - 2145 , - 2264 , - 2871 , - 62 , - 1645 , - 3716 , - 2371 , - 1514 , - 1145 , - 1264 , - 1871 , - 2966 , - 645 , - 2716 , - 1371 , - 514 , - 145 , - 264 , - 871 , - 1966 , - 3549 , - 1716 , - 371 , - 3418 , - 3049 , - 3168 , - 3775 , - 966 , - 2549 , - 716 , - 3275 , - 2418 , - 2049 , - 2168 , - 2775 , - 3870 , - 1549 , - 3620 , - 2275 , - 1418 , - 1049 , - 1168 , - 1775 , - 2870 , - 549 , - 2620 , - 1275 , - 418 , - 49 , - 168 , - 775 , - 1870 , - 3453 , - 1620 , - 275 , - 3322 , - 2953 , - 3072 , - 3679 , - 870 , - 2453 , - 620 , - 3179 , - 2322 , - 1953 , - 2072 , - 2679 , - 3774 , - 1453 , - 3524 , - 2179 , - 1322 , - 953 , - 1072 , - 1679 , - 2774 , - 453 , - 2524 , - 1179 , - 322 , - 3857 , - 72 , - 679 , - 1774 , - 3357 , - 1524 , - 179 , - 3226 , - 2857 , - 2976 , - 3583 , - 774 , - 2357 , - 524 , - 3083 , - 2226 , - 1857 , - 1976 , - 2583 , - 3678 , - 1357 , - 3428 , - 2083 , - 1226 , - 857 , - 976 , - 1583 , - 2678 , - 357 , - 2428 , - 1083 , - 226 , - 3761 , - 3880 , - 583 , - 1678 , - 3261 , - 1428 , - 83 , - 3130 , - 2761 , - 2880 , - 3487 , - 678 , - 2261 , - 428 , - 2987 , - 2130 , - 1761 , - 1880 , - 2487 , - 3582 , - 1261 , - 3332 , - 1987 , - 1130 , - 761 , - 880 , - 1487 , - 2582 , - 261 , - 2332 , - 987 , - 130 , - 3665 , - 3784 , - 487 , - 1582 , - 3165 , - 1332 , - 3891 , - 3034 , - 2665 , - 2784 , - 3391 , - 582 , - 2165 , - 332 , - 2891 , - 2034 , - 1665 , - 1784 , - 2391 , - 3486 , - 1165 , - 3236 , - 1891 , - 1034 , - 665 , - 784 , - 1391 , - 2486 , - 165 , - 2236 , - 891 , - 34 , - 3569 , - 3688 , - 391 , - 1486 , - 3069 , - 1236 , - 3795 , - 2938 , - 2569 , - 2688 , - 3295 , - 486 , - 2069 , - 236 , - 2795 , - 1938 , - 1569 , - 1688 , - 2295 , - 3390 , - 1069 , - 3140 , - 1795 , - 938 , - 569 , - 688 , - 1295 , - 2390 , - 69 , - 2140 , - 795 , - 3842 , - 3473 , - 3592 , - 295 , - 1390 , - 2973 , - 1140 , - 3699 , - 2842 , - 2473 , - 2592 , - 3199 , - 390 , - 1973 , - 140 , - 2699 , - 1842 , - 1473 , - 1592 , - 2199 , - 3294 , - 973 , - 3044 , - 1699 , - 842 , - 473 , - 592 , - 1199 , - 2294 , - 3877 , - 2044 , - 699 , - 3746 , - 3377 , - 3496 , - 199 , - 1294 , - 2877 , - 1044 , - 3603 , - 2746 , - 2377 , - 2496 , - 3103 , - 294 , - 1877 , - 44 , - 2603 , - 1746 , - 1377 , - 1496 , - 2103 , - 3198 , - 877 , - 2948 , - 1603 , - 746 , - 377 , - 496 , - 1103 , - 2198 , - 3781 , - 1948 , - 603 , - 3650 , - 3281 , - 3400 , - 103 , - 1198 , - 2781 , - 948 , - 3507 , - 2650 , - 2281 , - 2400 , - 3007 , - 198 , - 1781 , - 3852 , - 2507 , - 1650 , - 1281 , - 1400 , - 2007 , - 3102 , - 781 , - 2852 , - 1507 , - 650 , - 281 , - 400 , - 1007 , - 2102 , - 3685 , - 1852 , - 507 , - 3554 , - 3185 , - 3304 , - 7 , - 1102 , - 2685 , - 852 , - 3411 , - 2554 , - 2185 , - 2304 , - 2911 , - 102 , - 1685 , - 3756 , - 2411 , - 1554 , - 1185 , - 1304 , - 1911 , - 3006 , - 685 , - 2756 , - 1411 , - 554 , - 185 , - 304 , - 911 , - 2006 , - 3589 , - 1756 , - 411 , - 3458 , - 3089 , - 3208 , - 3815 , - 1006 , - 2589 , - 756 , - 3315 , - 2458 , - 2089 , - 2208 , - 2815 , - 6 , - 1589 , - 3660 , - 2315 , - 1458 , - 1089 , - 1208 , - 1815 , - 2910 , - 589 , - 2660 , - 1315 , - 458 , - 89 , - 208 , - 815 , - 1910 , - 3493 , - 1660 , - 315 , - 3362 , - 2993 , - 3112 , - 3719 , - 910 , - 2493 , - 660 , - 3219 , - 2362 , - 1993 , - 2112 , - 2719 , - 3814 , - 1493 , - 3564 , - 2219 , - 1362 , - 993 , - 1112 , - 1719 , - 2814 , - 493 , - 2564 , - 1219 , - 362 , - 3897 , - 112 , - 719 , - 1814 , - 3397 , - 1564 , - 219 , - 3266 , - 2897 , - 3016 , - 3623 , - 814 , - 2397 , - 564 , - 3123 , - 2266 , - 1897 , - 2016 , - 2623 , - 3718 , - 1397 , - 3468 , - 2123 , - 1266 , - 897 , - 1016 , - 1623 , - 2718 , - 397 , - 2468 , - 1123 , - 266 , - 3801 , - 16 , - 623 , - 1718 , - 3301 , - 1468 , - 123 , - 3170 , - 2801 , - 2920 , - 3527 , - 718 , - 2301 , - 468 , - 3027 , - 2170 , - 1801 , - 1920 , - 2527 , - 3622 , - 1301 , - 3372 , - 2027 , - 1170 , - 801 , - 920 , - 1527 , - 2622 , - 301 , - 2372 , - 1027 , - 170 , - 3705 , - 3824 , - 527 , - 1622 , - 3205 , - 1372 , - 27 , - 3074 , - 2705 , - 2824 , - 3431 , - 622 , - 2205 , - 372 , - 2931 , - 2074 , - 1705 , - 1824 , - 2431 , - 3526 , - 1205 , - 3276 , - 1931 , - 1074 , - 705 , - 824 , - 1431 , - 2526 , - 205 , - 2276 , - 931 , - 74 , - 3609 , - 3728 , - 431 , - 1526 , - 3109 , - 1276 , - 3835 , - 2978 , - 2609 , - 2728 , - 3335 , - 526 , - 2109 , - 276 , - 2835 , - 1978 , - 1609 , - 1728 , - 2335 , - 3430 , - 1109 , - 3180 , - 1835 , - 978 , - 609 , - 728 , - 1335 , - 2430 , - 109 , - 2180 , - 835 , - 3882 , - 3513 , - 3632 , - 335 , - 1430 , - 3013 , - 1180 , - 3739 , - 2882 , - 2513 , - 2632 , - 3239 , - 430 , - 2013 , - 180 , - 2739 , - 1882 , - 1513 , - 1632 , - 2239 , - 3334 , - 1013 , - 3084 , - 1739 , - 882 , - 513 , - 632 , - 1239 , - 2334 , - 13 , - 2084 , - 739 , - 3786 , - 3417 , - 3536 , - 239 , - 1334 , - 2917 , - 1084 , - 3643 , - 2786 , - 2417 , - 2536 , - 3143 , - 334 , - 1917 , - 84 , - 2643 , - 1786 , - 1417 , - 1536 , - 2143 , - 3238 , - 917 , - 2988 , - 1643 , - 786 , - 417 , - 536 , - 1143 , - 2238 , - 3821 , - 1988 , - 643 , - 3690 , - 3321 , - 3440 , - 143 , - 1238 , - 2821 , - 988 , - 3547 , - 2690 , - 2321 , - 2440 , - 3047 , - 238 , - 1821 , - 3892 , - 2547 , - 1690 , - 1321 , - 1440 , - 2047 , - 3142 , - 821 , - 2892 , - 1547 , - 690 , - 321 , - 440 , - 1047 , - 2142 , - 3725 , - 1892 , - 547 , - 3594 , - 3225 , - 3344 , - 47 , - 1142 , - 2725 , - 892 , - 3451 , - 2594 , - 2225 , - 2344 , - 2951 , - 142 , - 1725 , - 3796 , - 2451 , - 1594 , - 1225 , - 1344 , - 1951 , - 3046 , - 725 , - 2796 , - 1451 , - 594 , - 225 , - 344 , - 951 , - 2046 , - 3629 , - 1796 , - 451 , - 3498 , - 3129 , - 3248 , - 3855 , - 1046 , - 2629 , - 796 , - 3355 , - 2498 , - 2129 , - 2248 , - 2855 , - 46 , - 1629 , - 3700 , - 2355 , - 1498 , - 1129 , - 1248 , - 1855 , - 2950 , - 629 , - 2700 , - 1355 , - 498 , - 129 , - 248 , - 855 , - 1950 , - 3533 , - 1700 , - 355 , - 3402 , - 3033 , - 3152 , - 3759 , - 950 , - 2533 , - 700 , - 3259 , - 2402 , - 2033 , - 2152 , - 2759 , - 3854 , - 1533 , - 3604 , - 2259 , - 1402 , - 1033 , - 1152 , - 1759 , - 2854 , - 533 , - 2604 , - 1259 , - 402 , - 33 , - 152 , - 759 , - 1854 , - 3437 , - 1604 , - 259 , - 3306 , - 2937 , - 3056 , - 3663 , - 854 , - 2437 , - 604 , - 3163 , - 2306 , - 1937 , - 2056 , - 2663 , - 3758 , - 1437 , - 3508 , - 2163 , - 1306 , - 937 , - 1056 , - 1663 , - 2758 , - 437 , - 2508 , - 1163 , - 306 , - 3841 , - 56 , - 663 , - 1758 , - 3341 , - 1508 , - 163 , - 3210 , - 2841 , - 2960 , - 3567 , - 758 , - 2341 , - 508 , - 3067 , - 2210 , - 1841 , - 1960 , - 2567 , - 3662 , - 1341 , - 3412 , - 2067 , - 1210 , - 841 , - 960 , - 1567 , - 2662 , - 341 , - 2412 , - 1067 , - 210 , - 3745 , - 3864 , - 567 , - 1662 , - 3245 , - 1412 , - 67 , - 3114 , - 2745 , - 2864 , - 3471 , - 662 , - 2245 , - 412 , - 2971 , - 2114 , - 1745 , - 1864 , - 2471 , - 3566 , - 1245 , - 3316 , - 1971 , - 1114 , - 745 , - 864 , - 1471 , - 2566 , - 245 , - 2316 , - 971 , - 114 , - 3649 , - 3768 , - 471 , - 1566 , - 3149 , - 1316 , - 3875 , - 3018 , - 2649 , - 2768 , - 3375 , - 566 , - 2149 , - 316 , - 2875 , - 2018 , - 1649 , - 1768 , - 2375 , - 3470 , - 1149 , - 3220 , - 1875 , - 1018 , - 649 , - 768 , - 1375 , - 2470 , - 149 , - 2220 , - 875 , - 18 , - 3553 , - 3672 , - 375 , - 1470 , - 3053 , - 1220 , - 3779 , - 2922 , - 2553 , - 2672 , - 3279 , - 470 , - 2053 , - 220 , - 2779 , - 1922 , - 1553 , - 1672 , - 2279 , - 3374 , - 1053 , - 3124 , - 1779 , - 922 , - 553 , - 672 , - 1279 , - 2374 , - 53 , - 2124 , - 779 , - 3826 , - 3457 , - 3576 , - 279 , - 1374 , - 2957 , - 1124 , - 3683 , - 2826 , - 2457 , - 2576 , - 3183 , - 374 , - 1957 , - 124 , - 2683 , - 1826 , - 1457 , - 1576 , - 2183 , - 3278 , - 957 , - 3028 , - 1683 , - 826 , - 457 , - 576 , - 1183 , - 2278 , - 3861 , - 2028 , - 683 , - 3730 , - 3361 , - 3480 , - 183 , - 1278 , - 2861 , - 1028 , - 3587 , - 2730 , - 2361 , - 2480 , - 3087 , - 278 , - 1861 , - 28 , - 2587 , - 1730 , - 1361 , - 1480 , - 2087 , - 3182 , - 861 , - 2932 , - 1587 , - 730 , - 361 , - 480 , - 1087 , - 2182 , - 3765 , - 1932 , - 587 , - 3634 , - 3265 , - 3384 , - 87 , - 1182 , - 2765 , - 932 , - 3491 , - 2634 , - 2265 , - 2384 , - 2991 , - 182 , - 1765 , - 3836 , - 2491 , - 1634 , - 1265 , - 1384 , - 1991 , - 3086 , - 765 , - 2836 , - 1491 , - 634 , - 265 , - 384 , - 991 , - 2086 , - 3669 , - 1836 , - 491 , - 3538 , - 3169 , - 3288 , - 3895 , - 1086 , - 2669 , - 836 , - 3395 , - 2538 , - 2169 , - 2288 , - 2895 , - 86 , - 1669 , - 3740 , - 2395 , - 1538 , - 1169 , - 1288 , - 1895 , - 2990 , - 669 , - 2740 , - 1395 , - 538 , - 169 , - 288 , - 895 , - 1990 , - 3573 , - 1740 , - 395 , - 3442 , - 3073 , - 3192 , - 3799 , - 990 , - 2573 , - 740 , - 3299 , - 2442 , - 2073 , - 2192 , - 2799 , - 3894 , - 1573 , - 3644 , - 2299 , - 1442 , - 1073 , - 1192 , - 1799 , - 2894 , - 573 , - 2644 , - 1299 , - 442 , - 73 , - 192 , - 799 , - 1894 , - 3477 , - 1644 , - 299 , - 3346 , - 2977 , - 3096 , - 3703 , - 894 , - 2477 , - 644 , - 3203 , - 2346 , - 1977 , - 2096 , - 2703 , - 3798 , - 1477 , - 3548 , - 2203 , - 1346 , - 977 , - 1096 , - 1703 , - 2798 , - 477 , - 2548 , - 1203 , - 346 , - 3881 , - 96 , - 703 , - 1798 , - 3381 , - 1548 , - 203 , - 3250 , - 2881 , - 3000 , - 3607 , - 798 , - 2381 , - 548 , - 3107 , - 2250 , - 1881 , - 2000 , - 2607 , - 3702 , - 1381 , - 3452 , - 2107 , - 1250 , - 881 , - 1000 , - 1607 , - 2702 , - 381 , - 2452 , - 1107 , - 250 , - 3785 , - 0 , - 623 , - 1742 , - 3357 , - 1500 , - 139 , - 3242 , - 2873 , - 3000 , - 3623 , - 774 , - 2389 , - 532 , - 3139 , - 2274 , - 1905 , - 2032 , - 2655 , - 3774 , - 1421 , - 3532 , - 2171 , - 1306 , - 937 , - 1064 , - 1687 , - 2806 , - 453 , - 2564 , - 1203 , - 338 , - 3937 , - 96 , - 719 , - 1838 , - 3453 , - 1596 , - 235 , - 3338 , - 2969 , - 3096 , - 3719 , - 870 , - 2485 , - 628 , - 3235 , - 2370 , - 2001 , - 2128 , - 2751 , - 3870 , - 1517 , - 3628 , - 2267 , - 1402 , - 1033 , - 1160 , - 1783 , - 2902 , - 549 , - 2660 , - 1299 , - 434 , - 65 , - 192 , - 815 , - 1934 , - 3549 , - 1692 , - 331 , - 3434 , - 3065 , - 3192 , - 3815 , - 966 , - 2581 , - 724 , - 3331 , - 2466 , - 2097 , - 2224 , - 2847 , - 3966 , - 1613 , - 3724 , - 2363 , - 1498 , - 1129 , - 1256 , - 1879 , - 2998 , - 645 , - 2756 , - 1395 , - 530 , - 161 , - 288 , - 911 , - 2030 , - 3645 , - 1788 , - 427 , - 3530 , - 3161 , - 3288 , - 3911 , - 1062 , - 2677 , - 820 , - 3427 , - 2562 , - 2193 , - 2320 , - 2943 , - 94 , - 1709 , - 3820 , - 2459 , - 1594 , - 1225 , - 1352 , - 1975 , - 3094 , - 741 , - 2852 , - 1491 , - 626 , - 257 , - 384 , - 1007 , - 2126 , - 3741 , - 1884 , - 523 , - 3626 , - 3257 , - 3384 , - 39 , - 1158 , - 2773 , - 916 , - 3523 , - 2658 , - 2289 , - 2416 , - 3039 , - 190 , - 1805 , - 3916 , - 2555 , - 1690 , - 1321 , - 1448 , - 2071 , - 3190 , - 837 , - 2948 , - 1587 , - 722 , - 353 , - 480 , - 1103 , - 2222 , - 3837 , - 1980 , - 619 , - 3722 , - 3353 , - 3480 , - 135 , - 1254 , - 2869 , - 1012 , - 3619 , - 2754 , - 2385 , - 2512 , - 3135 , - 286 , - 1901 , - 44 , - 2651 , - 1786 , - 1417 , - 1544 , - 2167 , - 3286 , - 933 , - 3044 , - 1683 , - 818 , - 449 , - 576 , - 1199 , - 2318 , - 3933 , - 2076 , - 715 , - 3818 , - 3449 , - 3576 , - 231 , - 1350 , - 2965 , - 1108 , - 3715 , - 2850 , - 2481 , - 2608 , - 3231 , - 382 , - 1997 , - 140 , - 2747 , - 1882 , - 1513 , - 1640 , - 2263 , - 3382 , - 1029 , - 3140 , - 1779 , - 914 , - 545 , - 672 , - 1295 , - 2414 , - 61 , - 2172 , - 811 , - 3914 , - 3545 , - 3672 , - 327 , - 1446 , - 3061 , - 1204 , - 3811 , - 2946 , - 2577 , - 2704 , - 3327 , - 478 , - 2093 , - 236 , - 2843 , - 1978 , - 1609 , - 1736 , - 2359 , - 3478 , - 1125 , - 3236 , - 1875 , - 1010 , - 641 , - 768 , - 1391 , - 2510 , - 157 , - 2268 , - 907 , - 42 , - 3641 , - 3768 , - 423 , - 1542 , - 3157 , - 1300 , - 3907 , - 3042 , - 2673 , - 2800 , - 3423 , - 574 , - 2189 , - 332 , - 2939 , - 2074 , - 1705 , - 1832 , - 2455 , - 3574 , - 1221 , - 3332 , - 1971 , - 1106 , - 737 , - 864 , - 1487 , - 2606 , - 253 , - 2364 , - 1003 , - 138 , - 3737 , - 3864 , - 519 , - 1638 , - 3253 , - 1396 , - 35 , - 3138 , - 2769 , - 2896 , - 3519 , - 670 , - 2285 , - 428 , - 3035 , - 2170 , - 1801 , - 1928 , - 2551 , - 3670 , - 1317 , - 3428 , - 2067 , - 1202 , - 833 , - 960 , - 1583 , - 2702 , - 349 , - 2460 , - 1099 , - 234 , - 3833 , - 3960 , - 615 , - 1734 , - 3349 , - 1492 , - 131 , - 3234 , - 2865 , - 2992 , - 3615 , - 766 , - 2381 , - 524 , - 3131 , - 2266 , - 1897 , - 2024 , - 2647 , - 3766 , - 1413 , - 3524 , - 2163 , - 1298 , - 929 , - 1056 , - 1679 , - 2798 , - 445 , - 2556 , - 1195 , - 330 , - 3929 , - 88 , - 711 , - 1830 , - 3445 , - 1588 , - 227 , - 3330 , - 2961 , - 3088 , - 3711 , - 862 , - 2477 , - 620 , - 3227 , - 2362 , - 1993 , - 2120 , - 2743 , - 3862 , - 1509 , - 3620 , - 2259 , - 1394 , - 1025 , - 1152 , - 1775 , - 2894 , - 541 , - 2652 , - 1291 , - 426 , - 57 , - 184 , - 807 , - 1926 , - 3541 , - 1684 , - 323 , - 3426 , - 3057 , - 3184 , - 3807 , - 958 , - 2573 , - 716 , - 3323 , - 2458 , - 2089 , - 2216 , - 2839 , - 3958 , - 1605 , - 3716 , - 2355 , - 1490 , - 1121 , - 1248 , - 1871 , - 2990 , - 637 , - 2748 , - 1387 , - 522 , - 153 , - 280 , - 903 , - 2022 , - 3637 , - 1780 , - 419 , - 3522 , - 3153 , - 3280 , - 3903 , - 1054 , - 2669 , - 812 , - 3419 , - 2554 , - 2185 , - 2312 , - 2935 , - 86 , - 1701 , - 3812 , - 2451 , - 1586 , - 1217 , - 1344 , - 1967 , - 3086 , - 733 , - 2844 , - 1483 , - 618 , - 249 , - 376 , - 999 , - 2118 , - 3733 , - 1876 , - 515 , - 3618 , - 3249 , - 3376 , - 31 , - 1150 , - 2765 , - 908 , - 3515 , - 2650 , - 2281 , - 2408 , - 3031 , - 182 , - 1797 , - 3908 , - 2547 , - 1682 , - 1313 , - 1440 , - 2063 , - 3182 , - 829 , - 2940 , - 1579 , - 714 , - 345 , - 472 , - 1095 , - 2214 , - 3829 , - 1972 , - 611 , - 3714 , - 3345 , - 3472 , - 127 , - 1246 , - 2861 , - 1004 , - 3611 , - 2746 , - 2377 , - 2504 , - 3127 , - 278 , - 1893 , - 36 , - 2643 , - 1778 , - 1409 , - 1536 , - 2159 , - 3278 , - 925 , - 3036 , - 1675 , - 810 , - 441 , - 568 , - 1191 , - 2310 , - 3925 , - 2068 , - 707 , - 3810 , - 3441 , - 3568 , - 223 , - 1342 , - 2957 , - 1100 , - 3707 , - 2842 , - 2473 , - 2600 , - 3223 , - 374 , - 1989 , - 132 , - 2739 , - 1874 , - 1505 , - 1632 , - 2255 , - 3374 , - 1021 , - 3132 , - 1771 , - 906 , - 537 , - 664 , - 1287 , - 2406 , - 53 , - 2164 , - 803 , - 3906 , - 3537 , - 3664 , - 319 , - 1438 , - 3053 , - 1196 , - 3803 , - 2938 , - 2569 , - 2696 , - 3319 , - 470 , - 2085 , - 228 , - 2835 , - 1970 , - 1601 , - 1728 , - 2351 , - 3470 , - 1117 , - 3228 , - 1867 , - 1002 , - 633 , - 760 , - 1383 , - 2502 , - 149 , - 2260 , - 899 , - 34 , - 3633 , - 3760 , - 415 , - 1534 , - 3149 , - 1292 , - 3899 , - 3034 , - 2665 , - 2792 , - 3415 , - 566 , - 2181 , - 324 , - 2931 , - 2066 , - 1697 , - 1824 , - 2447 , - 3566 , - 1213 , - 3324 , - 1963 , - 1098 , - 729 , - 856 , - 1479 , - 2598 , - 245 , - 2356 , - 995 , - 130 , - 3729 , - 3856 , - 511 , - 1630 , - 3245 , - 1388 , - 27 , - 3130 , - 2761 , - 2888 , - 3511 , - 662 , - 2277 , - 420 , - 3027 , - 2162 , - 1793 , - 1920 , - 2543 , - 3662 , - 1309 , - 3420 , - 2059 , - 1194 , - 825 , - 952 , - 1575 , - 2694 , - 341 , - 2452 , - 1091 , - 226 , - 3825 , - 3952 , - 607 , - 1726 , - 3341 , - 1484 , - 123 , - 3226 , - 2857 , - 2984 , - 3607 , - 758 , - 2373 , - 516 , - 3123 , - 2258 , - 1889 , - 2016 , - 2639 , - 3758 , - 1405 , - 3516 , - 2155 , - 1290 , - 921 , - 1048 , - 1671 , - 2790 , - 437 , - 2548 , - 1187 , - 322 , - 3921 , - 80 , - 703 , - 1822 , - 3437 , - 1580 , - 219 , - 3322 , - 2953 , - 3080 , - 3703 , - 854 , - 2469 , - 612 , - 3219 , - 2354 , - 1985 , - 2112 , - 2735 , - 3854 , - 1501 , - 3612 , - 2251 , - 1386 , - 1017 , - 1144 , - 1767 , - 2886 , - 533 , - 2644 , - 1283 , - 418 , - 49 , - 176 , - 799 , - 1918 , - 3533 , - 1676 , - 315 , - 3418 , - 3049 , - 3176 , - 3799 , - 950 , - 2565 , - 708 , - 3315 , - 2450 , - 2081 , - 2208 , - 2831 , - 3950 , - 1597 , - 3708 , - 2347 , - 1482 , - 1113 , - 1240 , - 1863 , - 2982 , - 629 , - 2740 , - 1379 , - 514 , - 145 , - 272 , - 895 , - 2014 , - 3629 , - 1772 , - 411 , - 3514 , - 3145 , - 3272 , - 3895 , - 1046 , - 2661 , - 804 , - 3411 , - 2546 , - 2177 , - 2304 , - 2927 , - 78 , - 1693 , - 3804 , - 2443 , - 1578 , - 1209 , - 1336 , - 1959 , - 3078 , - 725 , - 2836 , - 1475 , - 610 , - 241 , - 368 , - 991 , - 2110 , - 3725 , - 1868 , - 507 , - 3610 , - 3241 , - 3368 , - 23 , - 1142 , - 2757 , - 900 , - 3507 , - 2642 , - 2273 , - 2400 , - 3023 , - 174 , - 1789 , - 3900 , - 2539 , - 1674 , - 1305 , - 1432 , - 2055 , - 3174 , - 821 , - 2932 , - 1571 , - 706 , - 337 , - 464 , - 1087 , - 2206 , - 3821 , - 1964 , - 603 , - 3706 , - 3337 , - 3464 , - 119 , - 1238 , - 2853 , - 996 , - 3603 , - 2738 , - 2369 , - 2496 , - 3119 , - 270 , - 1885 , - 28 , - 2635 , - 1770 , - 1401 , - 1528 , - 2151 , - 3270 , - 917 , - 3028 , - 1667 , - 802 , - 433 , - 560 , - 1183 , - 2302 , - 3917 , - 2060 , - 699 , - 3802 , - 3433 , - 3560 , - 215 , - 1334 , - 2949 , - 1092 , - 3699 , - 2834 , - 2465 , - 2592 , - 3215 , - 366 , - 1981 , - 124 , - 2731 , - 1866 , - 1497 , - 1624 , - 2247 , - 3366 , - 1013 , - 3124 , - 1763 , - 898 , - 529 , - 656 , - 1279 , - 2398 , - 45 , - 2156 , - 795 , - 3898 , - 3529 , - 3656 , - 311 , - 1430 , - 3045 , - 1188 , - 3795 , - 2930 , - 2561 , - 2688 , - 3311 , - 462 , - 2077 , - 220 , - 2827 , - 1962 , - 1593 , - 1720 , - 2343 , - 3462 , - 1109 , - 3220 , - 1859 , - 994 , - 625 , - 752 , - 1375 , - 2494 , - 141 , - 2252 , - 891 , - 26 , - 3625 , - 3752 , - 407 , - 1526 , - 3141 , - 1284 , - 3891 , - 3026 , - 2657 , - 2784 , - 3407 , - 558 , - 2173 , - 316 , - 2923 , - 2058 , - 1689 , - 1816 , - 2439 , - 3558 , - 1205 , - 3316 , - 1955 , - 1090 , - 721 , - 848 , - 1471 , - 2590 , - 237 , - 2348 , - 987 , - 122 , - 3721 , - 3848 , - 503 , - 1622 , - 3237 , - 1380 , - 19 , - 3122 , - 2753 , - 2880 , - 3503 , - 654 , - 2269 , - 412 , - 3019 , - 2154 , - 1785 , - 1912 , - 2535 , - 3654 , - 1301 , - 3412 , - 2051 , - 1186 , - 817 , - 944 , - 1567 , - 2686 , - 333 , - 2444 , - 1083 , - 218 , - 3817 , - 3944 , - 599 , - 1718 , - 3333 , - 1476 , - 115 , - 3218 , - 2849 , - 2976 , - 3599 , - 750 , - 2365 , - 508 , - 3115 , - 2250 , - 1881 , - 2008 , - 2631 , - 3750 , - 1397 , - 3508 , - 2147 , - 1282 , - 913 , - 1040 , - 1663 , - 2782 , - 429 , - 2540 , - 1179 , - 314 , - 3913 , - 72 , - 695 , - 1814 , - 3429 , - 1572 , - 211 , - 3314 , - 2945 , - 3072 , - 3695 , - 846 , - 2461 , - 604 , - 3211 , - 2346 , - 1977 , - 2104 , - 2727 , - 3846 , - 1493 , - 3604 , - 2243 , - 1378 , - 1009 , - 1136 , - 1759 , - 2878 , - 525 , - 2636 , - 1275 , - 410 , - 41 , - 168 , - 791 , - 1910 , - 3525 , - 1668 , - 307 , - 3410 , - 3041 , - 3168 , - 3791 , - 942 , - 2557 , - 700 , - 3307 , - 2442 , - 2073 , - 2200 , - 2823 , - 3942 , - 1589 , - 3700 , - 2339 , - 1474 , - 1105 , - 1232 , - 1855 , - 2974 , - 621 , - 2732 , - 1371 , - 506 , - 137 , - 264 , - 887 , - 2006 , - 3621 , - 1764 , - 403 , - 3506 , - 3137 , - 3264 , - 3887 , - 1038 , - 2653 , - 796 , - 3403 , - 2538 , - 2169 , - 2296 , - 2919 , - 70 , - 1685 , - 3796 , - 2435 , - 1570 , - 1201 , - 1328 , - 1951 , - 3070 , - 717 , - 2828 , - 1467 , - 602 , - 233 , - 360 , - 983 , - 2102 , - 3717 , - 1860 , - 499 , - 3602 , - 3233 , - 3360 , - 15 , - 1134 , - 2749 , - 892 , - 3499 , - 2634 , - 2265 , - 2392 , - 3015 , - 166 , - 1781 , - 3892 , - 2531 , - 1666 , - 1297 , - 1424 , - 2047 , - 3166 , - 813 , - 2924 , - 1563 , - 698 , - 329 , - 456 , - 1079 , - 2198 , - 3813 , - 1956 , - 595 , - 3698 , - 3329 , - 3456 , - 111 , - 1230 , - 2845 , - 988 , - 3595 , - 2730 , - 2361 , - 2488 , - 3111 , - 262 , - 1877 , - 20 , - 2627 , - 1762 , - 1393 , - 1520 , - 2143 , - 3262 , - 909 , - 3020 , - 1659 , - 794 , - 425 , - 552 , - 1175 , - 2294 , - 3909 , - 2052 , - 691 , - 3794 , - 3425 , - 3552 , - 207 , - 1326 , - 2941 , - 1084 , - 3691 , - 2826 , - 2457 , - 2584 , - 3207 , - 358 , - 1973 , - 116 , - 2723 , - 1858 , - 1489 , - 1616 , - 2239 , - 3358 , - 1005 , - 3116 , - 1755 , - 890 , - 521 , - 648 , - 1271 , - 2390 , - 37 , - 2148 , - 787 , - 3890 , - 3521 , - 3648 , - 303 , - 1422 , - 3037 , - 1180 , - 3787 , - 2922 , - 2553 , - 2680 , - 3303 , - 454 , - 2069 , - 212 , - 2819 , - 1954 , - 1585 , - 1712 , - 2335 , - 3454 , - 1101 , - 3212 , - 1851 , - 986 , - 617 , - 744 , - 1367 , - 2486 , - 133 , - 2244 , - 883 , - 18 , - 3617 , - 3744 , - 399 , - 1518 , - 3133 , - 1276 , - 3883 , - 3018 , - 2649 , - 2776 , - 3399 , - 550 , - 2165 , - 308 , - 2915 , - 2050 , - 1681 , - 1808 , - 2431 , - 3550 , - 1197 , - 3308 , - 1947 , - 1082 , - 713 , - 840 , - 1463 , - 2582 , - 229 , - 2340 , - 979 , - 114 , - 3713 , - 3840 , - 495 , - 1614 , - 3229 , - 1372 , - 11 , - 3114 , - 2745 , - 2872 , - 3495 , - 646 , - 2261 , - 404 , - 3011 , - 2146 , - 1777 , - 1904 , - 2527 , - 3646 , - 1293 , - 3404 , - 2043 , - 1178 , - 809 , - 936 , - 1559 , - 2678 , - 325 , - 2436 , - 1075 , - 210 , - 3809 , - 3936 , - 591 , - 1710 , - 3325 , - 1468 , - 107 , - 3210 , - 2841 , - 2968 , - 3591 , - 742 , - 2357 , - 500 , - 3107 , - 2242 , - 1873 , - 2000 , - 2623 , - 3742 , - 1389 , - 3500 , - 2139 , - 1274 , - 905 , - 1032 , - 1655 , - 2774 , - 421 , - 2532 , - 1171 , - 306 , - 3905 , - 64 , - 687 , - 1806 , - 3421 , - 1564 , - 203 , - 3306 , - 2937 , - 3064 , - 3687 , - 838 , - 2453 , - 596 , - 3203 , - 2338 , - 1969 , - 2096 , - 2719 , - 3838 , - 1485 , - 3596 , - 2235 , - 1370 , - 1001 , - 1128 , - 1751 , - 2870 , - 517 , - 2628 , - 1267 , - 402 , - 33 , - 160 , - 783 , - 1902 , - 3517 , - 1660 , - 299 , - 3402 , - 3033 , - 3160 , - 3783 , - 934 , - 2549 , - 692 , - 3299 , - 2434 , - 2065 , - 2192 , - 2815 , - 3934 , - 1581 , - 3692 , - 2331 , - 1466 , - 1097 , - 1224 , - 1847 , - 2966 , - 613 , - 2724 , - 1363 , - 498 , - 129 , - 256 , - 879 , - 1998 , - 3613 , - 1756 , - 395 , - 3498 , - 3129 , - 3256 , - 3879 , - 1030 , - 2645 , - 788 , - 3395 , - 2530 , - 2161 , - 2288 , - 2911 , - 62 , - 1677 , - 3788 , - 2427 , - 1562 , - 1193 , - 1320 , - 1943 , - 3062 , - 709 , - 2820 , - 1459 , - 594 , - 225 , - 352 , - 975 , - 2094 , - 3709 , - 1852 , - 491 , - 3594 , - 3225 , - 3352 , - 7 , - 1126 , - 2741 , - 884 , - 3491 , - 2626 , - 2257 , - 2384 , - 3007 , - 158 , - 1773 , - 3884 , - 2523 , - 1658 , - 1289 , - 1416 , - 2039 , - 3158 , - 805 , - 2916 , - 1555 , - 690 , - 321 , - 448 , - 1071 , - 2190 , - 3805 , - 1948 , - 587 , - 3690 , - 3321 , - 3448 , - 103 , - 1222 , - 2837 , - 980 , - 3587 , - 2722 , - 2353 , - 2480 , - 3103 , - 254 , - 1869 , - 12 , - 2619 , - 1754 , - 1385 , - 1512 , - 2135 , - 3254 , - 901 , - 3012 , - 1651 , - 786 , - 417 , - 544 , - 1167 , - 2286 , - 3901 , - 2044 , - 683 , - 3786 , - 3417 , - 3544 , - 199 , - 1318 , - 2933 , - 1076 , - 3683 , - 2818 , - 2449 , - 2576 , - 3199 , - 350 , - 1965 , - 108 , - 2715 , - 1850 , - 1481 , - 1608 , - 2231 , - 3350 , - 997 , - 3108 , - 1747 , - 882 , - 513 , - 640 , - 1263 , - 2382 , - 29 , - 2140 , - 779 , - 3882 , - 3513 , - 3640 , - 295 , - 1414 , - 3029 , - 1172 , - 3779 , - 2914 , - 2545 , - 2672 , - 3295 , - 446 , - 2061 , - 204 , - 2811 , - 1946 , - 1577 , - 1704 , - 2327 , - 3446 , - 1093 , - 3204 , - 1843 , - 978 , - 609 , - 736 , - 1359 , - 2478 , - 125 , - 2236 , - 875 , - 10 , - 3609 , - 3736 , - 391 , - 1510 , - 3125 , - 1268 , - 3875 , - 3010 , - 2641 , - 2768 , - 3391 , - 542 , - 2157 , - 300 , - 2907 , - 2042 , - 1673 , - 1800 , - 2423 , - 3542 , - 1189 , - 3300 , - 1939 , - 1074 , - 705 , - 832 , - 1455 , - 2574 , - 221 , - 2332 , - 971 , - 106 , - 3705 , - 3832 , - 487 , - 1606 , - 3221 , - 1364 , - 3 , - 3106 , - 2737 , - 2864 , - 3487 , - 638 , - 2253 , - 396 , - 3003 , - 2138 , - 1769 , - 1896 , - 2519 , - 3638 , - 1285 , - 3396 , - 2035 , - 1170 , - 801 , - 928 , - 1551 , - 2670 , - 317 , - 2428 , - 1067 , - 202 , - 3801 , - 3928 , - 583 , - 1702 , - 3317 , - 1460 , - 99 , - 3202 , - 2833 , - 2960 , - 3583 , - 734 , - 2349 , - 492 , - 3099 , - 2234 , - 1865 , - 1992 , - 2615 , - 3734 , - 1381 , - 3492 , - 2131 , - 1266 , - 897 , - 1024 , - 1647 , - 2766 , - 413 , - 2524 , - 1163 , - 298 , - 3897 , - 56 , - 679 , - 1798 , - 3413 , - 1556 , - 195 , - 3298 , - 2929 , - 3056 , - 3679 , - 830 , - 2445 , - 588 , - 3195 , - 2330 , - 1961 , - 2088 , - 2711 , - 3830 , - 1477 , - 3588 , - 2227 , - 1362 , - 993 , - 1120 , - 1743 , - 2862 , - 509 , - 2620 , - 1259 , - 394 , - 25 , - 152 , - 775 , - 1894 , - 3509 , - 1652 , - 291 , - 3394 , - 3025 , - 3152 , - 3775 , - 926 , - 2541 , - 684 , - 3291 , - 2426 , - 2057 , - 2184 , - 2807 , - 3926 , - 1573 , - 3684 , - 2323 , - 1458 , - 1089 , - 1216 , - 1839 , - 2958 , - 605 , - 2716 , - 1355 , - 490 , - 121 , - 248 , - 871 , - 1990 , - 3605 , - 1748 , - 387 , - 3490 , - 3121 , - 3248 , - 3871 , - 1022 , - 2637 , - 780 , - 3387 , - 2522 , - 2153 , - 2280 , - 2903 , - 54 , - 1669 , - 3780 , - 2419 , - 1554 , - 1185 , - 1312 , - 1935 , - 3054 , - 701 , - 2812 , - 1451 , - 586 , - 217 , - 344 , - 967 , - 2086 , - 3701 , - 1844 , - 483 , - 3586 , - 3217 , - 3344 , - 3967 , - 1118 , - 2733 , - 876 , - 3483 , - 2618 , - 2249 , - 2376 , - 2999 , - 150 , - 1765 , - 3876 , - 2515 , - 1650 , - 1281 , - 1408 , - 2031 , - 3150 , - 797 , - 2908 , - 1547 , - 682 , - 313 , - 440 , - 1063 , - 2182 , - 3797 , - 1940 , - 579 , - 3682 , - 3313 , - 3440 , - 95 , - 1214 , - 2829 , - 972 , - 3579 , - 2714 , - 2345 , - 2472 , - 3095 , - 246 , - 1861 , - 4 , - 2611 , - 1746 , - 1377 , - 1504 , - 2127 , - 3246 , - 893 , - 3004 , - 1643 , - 778 , - 409 , - 536 , - 1159 , - 2278 , - 3893 , - 2036 , - 675 , - 3778 , - 3409 , - 3536 , - 191 , - 1310 , - 2925 , - 1068 , - 3675 , - 2810 , - 2441 , - 2568 , - 3191 , - 342 , - 1957 , - 100 , - 2707 , - 1842 , - 1473 , - 1600 , - 2223 , - 3342 , - 989 , - 3100 , - 1739 , - 874 , - 505 , - 632 , - 1255 , - 2374 , - 21 , - 2132 , - 771 , - 3874 , - 3505 , - 3632 , - 287 , - 1406 , - 3021 , - 1164 , - 3771 , - 2906 , - 2537 , - 2664 , - 3287 , - 438 , - 2053 , - 196 , - 2803 , - 1938 , - 1569 , - 1696 , - 2319 , - 3438 , - 1085 , - 3196 , - 1835 , - 970 , - 601 , - 728 , - 1351 , - 2470 , - 117 , - 2228 , - 867 , - 2 , - 3601 , - 3728 , - 383 , - 1502 , - 3117 , - 1260 , - 3867 , - 3002 , - 2633 , - 2760 , - 3383 , - 534 , - 2149 , - 292 , - 2899 , - 2034 , - 1665 , - 1792 , - 2415 , - 3534 , - 1181 , - 3292 , - 1931 , - 1066 , - 697 , - 824 , - 1447 , - 2566 , - 213 , - 2324 , - 963 , - 98 , - 3697 , - 3824 , - 479 , - 1598 , - 3213 , - 1356 , - 3963 , - 3098 , - 2729 , - 2856 , - 3479 , - 630 , - 2245 , - 388 , - 2995 , - 2130 , - 1761 , - 1888 , - 2511 , - 3630 , - 1277 , - 3388 , - 2027 , - 1162 , - 793 , - 920 , - 1543 , - 2662 , - 309 , - 2420 , - 1059 , - 194 , - 3793 , - 3920 , - 575 , - 1694 , - 3309 , - 1452 , - 91 , - 3194 , - 2825 , - 2952 , - 3575 , - 726 , - 2341 , - 484 , - 3091 , - 2226 , - 1857 , - 1984 , - 2607 , - 3726 , - 1373 , - 3484 , - 2123 , - 1258 , - 889 , - 1016 , - 1639 , - 2758 , - 405 , - 2516 , - 1155 , - 290 , - 3889 , - 48 , - 671 , - 1790 , - 3405 , - 1548 , - 187 , - 3290 , - 2921 , - 3048 , - 3671 , - 822 , - 2437 , - 580 , - 3187 , - 2322 , - 1953 , - 2080 , - 2703 , - 3822 , - 1469 , - 3580 , - 2219 , - 1354 , - 985 , - 1112 , - 1735 , - 2854 , - 501 , - 2612 , - 1251 , - 386 , - 17 , - 144 , - 767 , - 1886 , - 3501 , - 1644 , - 283 , - 3386 , - 3017 , - 3144 , - 3767 , - 918 , - 2533 , - 676 , - 3283 , - 2418 , - 2049 , - 2176 , - 2799 , - 3918 , - 1565 , - 3676 , - 2315 , - 1450 , - 1081 , - 1208 , - 1831 , - 2950 , - 597 , - 2708 , - 1347 , - 482 , - 113 , - 240 , - 863 , - 1982 , - 3597 , - 1740 , - 379 , - 3482 , - 3113 , - 3240 , - 3863 , - 1014 , - 2629 , - 772 , - 3379 , - 2514 , - 2145 , - 2272 , - 2895 , - 46 , - 1661 , - 3772 , - 2411 , - 1546 , - 1177 , - 1304 , - 1927 , - 3046 , - 693 , - 2804 , - 1443 , - 578 , - 209 , - 336 , - 959 , - 2078 , - 3693 , - 1836 , - 475 , - 3578 , - 3209 , - 3336 , - 3959 , - 1110 , - 2725 , - 868 , - 3475 , - 2610 , - 2241 , - 2368 , - 2991 , - 142 , - 1757 , - 3868 , - 2507 , - 1642 , - 1273 , - 1400 , - 2023 , - 3142 , - 789 , - 2900 , - 1539 , - 674 , - 305 , - 432 , - 1055 , - 2174 , - 3789 , - 1932 , - 571 , - 3674 , - 3305 , - 3432 , - 87 , - 1206 , - 2821 , - 964 , - 3571 , - 2706 , - 2337 , - 2464 , - 3087 , - 238 , - 1853 , - 3964 , - 2603 , - 1738 , - 1369 , - 1496 , - 2119 , - 3238 , - 885 , - 2996 , - 1635 , - 770 , - 401 , - 528 , - 1151 , - 2270 , - 3885 , - 2028 , - 667 , - 3770 , - 3401 , - 3528 , - 183 , - 1302 , - 2917 , - 1060 , - 3667 , - 2802 , - 2433 , - 2560 , - 3183 , - 334 , - 1949 , - 92 , - 2699 , - 1834 , - 1465 , - 1592 , - 2215 , - 3334 , - 981 , - 3092 , - 1731 , - 866 , - 497 , - 624 , - 1247 , - 2366 , - 13 , - 2124 , - 763 , - 3866 , - 3497 , - 3624 , - 279 , - 1398 , - 3013 , - 1156 , - 3763 , - 2898 , - 2529 , - 2656 , - 3279 , - 430 , - 2045 , - 188 , - 2795 , - 1930 , - 1561 , - 1688 , - 2311 , - 3430 , - 1077 , - 3188 , - 1827 , - 962 , - 593 , - 720 , - 1343 , - 2462 , - 109 , - 2220 , - 859 , - 3962 , - 3593 , - 3720 , - 375 , - 1494 , - 3109 , - 1252 , - 3859 , - 2994 , - 2625 , - 2752 , - 3375 , - 526 , - 2141 , - 284 , - 2891 , - 2026 , - 1657 , - 1784 , - 2407 , - 3526 , - 1173 , - 3284 , - 1923 , - 1058 , - 689 , - 816 , - 1439 , - 2558 , - 205 , - 2316 , - 955 , - 90 , - 3689 , - 3816 , - 471 , - 1590 , - 3205 , - 1348 , - 3955 , - 3090 , - 2721 , - 2848 , - 3471 , - 622 , - 2237 , - 380 , - 2987 , - 2122 , - 1753 , - 1880 , - 2503 , - 3622 , - 1269 , - 3380 , - 2019 , - 1154 , - 785 , - 912 , - 1535 , - 2654 , - 301 , - 2412 , - 1051 , - 186 , - 3785 , - 3912 , - 567 , - 1686 , - 3301 , - 1444 , - 83 , - 3186 , - 2817 , - 2944 , - 3567 , - 718 , - 2333 , - 476 , - 3083 , - 2218 , - 1849 , - 1976 , - 2599 , - 3718 , - 1365 , - 3476 , - 2115 , - 1250 , - 881 , - 1008 , - 1631 , - 2750 , - 397 , - 2508 , - 1147 , - 282 , - 3881 , - 40 , - 663 , - 1782 , - 3397 , - 1540 , - 179 , - 3282 , - 2913 , - 3040 , - 3663 , - 814 , - 2429 , - 572 , - 3179 , - 2314 , - 1945 , - 2072 , - 2695 , - 3814 , - 1461 , - 3572 , - 2211 , - 1346 , - 977 , - 1104 , - 1727 , - 2846 , - 493 , - 2604 , - 1243 , - 378 , - 9 , - 136 , - 759 , - 1878 , - 3493 , - 1636 , - 275 , - 3378 , - 3009 , - 3136 , - 3759 , - 910 , - 2525 , - 668 , - 3275 , - 2410 , - 2041 , - 2168 , - 2791 , - 3910 , - 1557 , - 3668 , - 2307 , - 1442 , - 1073 , - 1200 , - 1823 , - 2942 , - 589 , - 2700 , - 1339 , - 474 , - 105 , - 232 , - 855 , - 1974 , - 3589 , - 1732 , - 371 , - 3474 , - 3105 , - 3232 , - 3855 , - 1006 , - 2621 , - 764 , - 3371 , - 2506 , - 2137 , - 2264 , - 2887 , - 38 , - 1653 , - 3764 , - 2403 , - 1538 , - 1169 , - 1296 , - 1919 , - 3038 , - 685 , - 2796 , - 1435 , - 570 , - 201 , - 328 , - 951 , - 2070 , - 3685 , - 1828 , - 467 , - 3570 , - 3201 , - 3328 , - 3951 , - 1102 , - 2717 , - 860 , - 3467 , - 2602 , - 2233 , - 2360 , - 2983 , - 134 , - 1749 , - 3860 , - 2499 , - 1634 , - 1265 , - 1392 , - 2015 , - 3134 , - 781 , - 2892 , - 1531 , - 666 , - 297 , - 424 , - 1047 , - 2166 , - 3781 , - 1924 , - 563 , - 3666 , - 3297 , - 3424 , - 79 , - 1198 , - 2813 , - 956 , - 3563 , - 2698 , - 2329 , - 2456 , - 3079 , - 230 , - 1845 , - 3956 , - 2595 , - 1730 , - 1361 , - 1488 , - 2111 , - 3230 , - 877 , - 2988 , - 1627 , - 762 , - 393 , - 520 , - 1143 , - 2262 , - 3877 , - 2020 , - 659 , - 3762 , - 3393 , - 3520 , - 175 , - 1294 , - 2909 , - 1052 , - 3659 , - 2794 , - 2425 , - 2552 , - 3175 , - 326 , - 1941 , - 84 , - 2691 , - 1826 , - 1457 , - 1584 , - 2207 , - 3326 , - 973 , - 3084 , - 1723 , - 858 , - 489 , - 616 , - 1239 , - 2358 , - 5 , - 2116 , - 755 , - 3858 , - 3489 , - 3616 , - 271 , - 1390 , - 3005 , - 1148 , - 3755 , - 2890 , - 2521 , - 2648 , - 3271 , - 422 , - 2037 , - 180 , - 2787 , - 1922 , - 1553 , - 1680 , - 2303 , - 3422 , - 1069 , - 3180 , - 1819 , - 954 , - 585 , - 712 , - 1335 , - 2454 , - 101 , - 2212 , - 851 , - 3954 , - 3585 , - 3712 , - 367 , - 1486 , - 3101 , - 1244 , - 3851 , - 2986 , - 2617 , - 2744 , - 3367 , - 518 , - 2133 , - 276 , - 2883 , - 2018 , - 1649 , - 1776 , - 2399 , - 3518 , - 1165 , - 3276 , - 1915 , - 1050 , - 681 , - 808 , - 1431 , - 2550 , - 197 , - 2308 , - 947 , - 82 , - 3681 , - 3808 , - 463 , - 1582 , - 3197 , - 1340 , - 3947 , - 3082 , - 2713 , - 2840 , - 3463 , - 614 , - 2229 , - 372 , - 2979 , - 2114 , - 1745 , - 1872 , - 2495 , - 3614 , - 1261 , - 3372 , - 2011 , - 1146 , - 777 , - 904 , - 1527 , - 2646 , - 293 , - 2404 , - 1043 , - 178 , - 3777 , - 3904 , - 559 , - 1678 , - 3293 , - 1436 , - 75 , - 3178 , - 2809 , - 2936 , - 3559 , - 710 , - 2325 , - 468 , - 3075 , - 2210 , - 1841 , - 1968 , - 2591 , - 3710 , - 1357 , - 3468 , - 2107 , - 1242 , - 873 , - 1000 , - 1623 , - 2742 , - 389 , - 2500 , - 1139 , - 274 , - 3873 , - 32 , - 655 , - 1774 , - 3389 , - 1532 , - 171 , - 3274 , - 2905 , - 3032 , - 3655 , - 806 , - 2421 , - 564 , - 3171 , - 2306 , - 1937 , - 2064 , - 2687 , - 3806 , - 1453 , - 3564 , - 2203 , - 1338 , - 969 , - 1096 , - 1719 , - 2838 , - 485 , - 2596 , - 1235 , - 370 , - 1 , - 128 , - 751 , - 1870 , - 3485 , - 1628 , - 267 , - 3370 , - 3001 , - 3128 , - 3751 , - 902 , - 2517 , - 660 , - 3267 , - 2402 , - 2033 , - 2160 , - 2783 , - 3902 , - 1549 , - 3660 , - 2299 , - 1434 , - 1065 , - 1192 , - 1815 , - 2934 , - 581 , - 2692 , - 1331 , - 466 , - 97 , - 224 , - 847 , - 1966 , - 3581 , - 1724 , - 363 , - 3466 , - 3097 , - 3224 , - 3847 , - 998 , - 2613 , - 756 , - 3363 , - 2498 , - 2129 , - 2256 , - 2879 , - 30 , - 1645 , - 3756 , - 2395 , - 1530 , - 1161 , - 1288 , - 1911 , - 3030 , - 677 , - 2788 , - 1427 , - 562 , - 193 , - 320 , - 943 , - 2062 , - 3677 , - 1820 , - 459 , - 3562 , - 3193 , - 3320 , - 3943 , - 1094 , - 2709 , - 852 , - 3459 , - 2594 , - 2225 , - 2352 , - 2975 , - 126 , - 1741 , - 3852 , - 2491 , - 1626 , - 1257 , - 1384 , - 2007 , - 3126 , - 773 , - 2884 , - 1523 , - 658 , - 289 , - 416 , - 1039 , - 2158 , - 3773 , - 1916 , - 555 , - 3658 , - 3289 , - 3416 , - 71 , - 1190 , - 2805 , - 948 , - 3555 , - 2690 , - 2321 , - 2448 , - 3071 , - 222 , - 1837 , - 3948 , - 2587 , - 1722 , - 1353 , - 1480 , - 2103 , - 3222 , - 869 , - 2980 , - 1619 , - 754 , - 385 , - 512 , - 1135 , - 2254 , - 3869 , - 2012 , - 651 , - 3754 , - 3385 , - 3512 , - 167 , - 1286 , - 2901 , - 1044 , - 3651 , - 2786 , - 2417 , - 2544 , - 3167 , - 318 , - 1933 , - 76 , - 2683 , - 1818 , - 1449 , - 1576 , - 2199 , - 3318 , - 965 , - 3076 , - 1715 , - 850 , - 481 , - 608 , - 1231 , - 2350 , - 3965 , - 2108 , - 747 , - 3850 , - 3481 , - 3608 , - 263 , - 1382 , - 2997 , - 1140 , - 3747 , - 2882 , - 2513 , - 2640 , - 3263 , - 414 , - 2029 , - 172 , - 2779 , - 1914 , - 1545 , - 1672 , - 2295 , - 3414 , - 1061 , - 3172 , - 1811 , - 946 , - 577 , - 704 , - 1327 , - 2446 , - 93 , - 2204 , - 843 , - 3946 , - 3577 , - 3704 , - 359 , - 1478 , - 3093 , - 1236 , - 3843 , - 2978 , - 2609 , - 2736 , - 3359 , - 510 , - 2125 , - 268 , - 2875 , - 2010 , - 1641 , - 1768 , - 2391 , - 3510 , - 1157 , - 3268 , - 1907 , - 1042 , - 673 , - 800 , - 1423 , - 2542 , - 189 , - 2300 , - 939 , - 74 , - 3673 , - 3800 , - 455 , - 1574 , - 3189 , - 1332 , - 3939 , - 3074 , - 2705 , - 2832 , - 3455 , - 606 , - 2221 , - 364 , - 2971 , - 2106 , - 1737 , - 1864 , - 2487 , - 3606 , - 1253 , - 3364 , - 2003 , - 1138 , - 769 , - 896 , - 1519 , - 2638 , - 285 , - 2396 , - 1035 , - 170 , - 3769 , - 3896 , - 551 , - 1670 , - 3285 , - 1428 , - 67 , - 3170 , - 2801 , - 2928 , - 3551 , - 702 , - 2317 , - 460 , - 3067 , - 2202 , - 1833 , - 1960 , - 2583 , - 3702 , - 1349 , - 3460 , - 2099 , - 1234 , - 865 , - 992 , - 1615 , - 2734 , - 381 , - 2492 , - 1131 , - 266 , - 3865 , - 24 , - 647 , - 1766 , - 3381 , - 1524 , - 163 , - 3266 , - 2897 , - 3024 , - 3647 , - 798 , - 2413 , - 556 , - 3163 , - 2298 , - 1929 , - 2056 , - 2679 , - 3798 , - 1445 , - 3556 , - 2195 , - 1330 , - 961 , - 1088 , - 1711 , - 2830 , - 477 , - 2588 , - 1227 , - 362 , - 3961 , - 120 , - 743 , - 1862 , - 3477 , - 1620 , - 259 , - 3362 , - 2993 , - 3120 , - 3743 , - 894 , - 2509 , - 652 , - 3259 , - 2394 , - 2025 , - 2152 , - 2775 , - 3894 , - 1541 , - 3652 , - 2291 , - 1426 , - 1057 , - 1184 , - 1807 , - 2926 , - 573 , - 2684 , - 1323 , - 458 , - 89 , - 216 , - 839 , - 1958 , - 3573 , - 1716 , - 355 , - 3458 , - 3089 , - 3216 , - 3839 , - 990 , - 2605 , - 748 , - 3355 , - 2490 , - 2121 , - 2248 , - 2871 , - 22 , - 1637 , - 3748 , - 2387 , - 1522 , - 1153 , - 1280 , - 1903 , - 3022 , - 669 , - 2780 , - 1419 , - 554 , - 185 , - 312 , - 935 , - 2054 , - 3669 , - 1812 , - 451 , - 3554 , - 3185 , - 3312 , - 3935 , - 1086 , - 2701 , - 844 , - 3451 , - 2586 , - 2217 , - 2344 , - 2967 , - 118 , - 1733 , - 3844 , - 2483 , - 1618 , - 1249 , - 1376 , - 1999 , - 3118 , - 765 , - 2876 , - 1515 , - 650 , - 281 , - 408 , - 1031 , - 2150 , - 3765 , - 1908 , - 547 , - 3650 , - 3281 , - 3408 , - 63 , - 1182 , - 2797 , - 940 , - 3547 , - 2682 , - 2313 , - 2440 , - 3063 , - 214 , - 1829 , - 3940 , - 2579 , - 1714 , - 1345 , - 1472 , - 2095 , - 3214 , - 861 , - 2972 , - 1611 , - 746 , - 377 , - 504 , - 1127 , - 2246 , - 3861 , - 2004 , - 643 , - 3746 , - 3377 , - 3504 , - 159 , - 1278 , - 2893 , - 1036 , - 3643 , - 2778 , - 2409 , - 2536 , - 3159 , - 310 , - 1925 , - 68 , - 2675 , - 1810 , - 1441 , - 1568 , - 2191 , - 3310 , - 957 , - 3068 , - 1707 , - 842 , - 473 , - 600 , - 1223 , - 2342 , - 3957 , - 2100 , - 739 , - 3842 , - 3473 , - 3600 , - 255 , - 1374 , - 2989 , - 1132 , - 3739 , - 2874 , - 2505 , - 2632 , - 3255 , - 406 , - 2021 , - 164 , - 2771 , - 1906 , - 1537 , - 1664 , - 2287 , - 3406 , - 1053 , - 3164 , - 1803 , - 938 , - 569 , - 696 , - 1319 , - 2438 , - 85 , - 2196 , - 835 , - 3938 , - 3569 , - 3696 , - 351 , - 1470 , - 3085 , - 1228 , - 3835 , - 2970 , - 2601 , - 2728 , - 3351 , - 502 , - 2117 , - 260 , - 2867 , - 2002 , - 1633 , - 1760 , - 2383 , - 3502 , - 1149 , - 3260 , - 1899 , - 1034 , - 665 , - 792 , - 1415 , - 2534 , - 181 , - 2292 , - 931 , - 66 , - 3665 , - 3792 , - 447 , - 1566 , - 3181 , - 1324 , - 3931 , - 3066 , - 2697 , - 2824 , - 3447 , - 598 , - 2213 , - 356 , - 2963 , - 2098 , - 1729 , - 1856 , - 2479 , - 3598 , - 1245 , - 3356 , - 1995 , - 1130 , - 761 , - 888 , - 1511 , - 2630 , - 277 , - 2388 , - 1027 , - 162 , - 3761 , - 3888 , - 543 , - 1662 , - 3277 , - 1420 , - 59 , - 3162 , - 2793 , - 2920 , - 3543 , - 694 , - 2309 , - 452 , - 3059 , - 2194 , - 1825 , - 1952 , - 2575 , - 3694 , - 1341 , - 3452 , - 2091 , - 1226 , - 857 , - 984 , - 1607 , - 2726 , - 373 , - 2484 , - 1123 , - 258 , - 3857 , - 16 , - 639 , - 1758 , - 3373 , - 1516 , - 155 , - 3258 , - 2889 , - 3016 , - 3639 , - 790 , - 2405 , - 548 , - 3155 , - 2290 , - 1921 , - 2048 , - 2671 , - 3790 , - 1437 , - 3548 , - 2187 , - 1322 , - 953 , - 1080 , - 1703 , - 2822 , - 469 , - 2580 , - 1219 , - 354 , - 3953 , - 112 , - 735 , - 1854 , - 3469 , - 1612 , - 251 , - 3354 , - 2985 , - 3112 , - 3735 , - 886 , - 2501 , - 644 , - 3251 , - 2386 , - 2017 , - 2144 , - 2767 , - 3886 , - 1533 , - 3644 , - 2283 , - 1418 , - 1049 , - 1176 , - 1799 , - 2918 , - 565 , - 2676 , - 1315 , - 450 , - 81 , - 208 , - 831 , - 1950 , - 3565 , - 1708 , - 347 , - 3450 , - 3081 , - 3208 , - 3831 , - 982 , - 2597 , - 740 , - 3347 , - 2482 , - 2113 , - 2240 , - 2863 , - 14 , - 1629 , - 3740 , - 2379 , - 1514 , - 1145 , - 1272 , - 1895 , - 3014 , - 661 , - 2772 , - 1411 , - 546 , - 177 , - 304 , - 927 , - 2046 , - 3661 , - 1804 , - 443 , - 3546 , - 3177 , - 3304 , - 3927 , - 1078 , - 2693 , - 836 , - 3443 , - 2578 , - 2209 , - 2336 , - 2959 , - 110 , - 1725 , - 3836 , - 2475 , - 1610 , - 1241 , - 1368 , - 1991 , - 3110 , - 757 , - 2868 , - 1507 , - 642 , - 273 , - 400 , - 1023 , - 2142 , - 3757 , - 1900 , - 539 , - 3642 , - 3273 , - 3400 , - 55 , - 1174 , - 2789 , - 932 , - 3539 , - 2674 , - 2305 , - 2432 , - 3055 , - 206 , - 1821 , - 3932 , - 2571 , - 1706 , - 1337 , - 1464 , - 2087 , - 3206 , - 853 , - 2964 , - 1603 , - 738 , - 369 , - 496 , - 1119 , - 2238 , - 3853 , - 1996 , - 635 , - 3738 , - 3369 , - 3496 , - 151 , - 1270 , - 2885 , - 1028 , - 3635 , - 2770 , - 2401 , - 2528 , - 3151 , - 302 , - 1917 , - 60 , - 2667 , - 1802 , - 1433 , - 1560 , - 2183 , - 3302 , - 949 , - 3060 , - 1699 , - 834 , - 465 , - 592 , - 1215 , - 2334 , - 3949 , - 2092 , - 731 , - 3834 , - 3465 , - 3592 , - 247 , - 1366 , - 2981 , - 1124 , - 3731 , - 2866 , - 2497 , - 2624 , - 3247 , - 398 , - 2013 , - 156 , - 2763 , - 1898 , - 1529 , - 1656 , - 2279 , - 3398 , - 1045 , - 3156 , - 1795 , - 930 , - 561 , - 688 , - 1311 , - 2430 , - 77 , - 2188 , - 827 , - 3930 , - 3561 , - 3688 , - 343 , - 1462 , - 3077 , - 1220 , - 3827 , - 2962 , - 2593 , - 2720 , - 3343 , - 494 , - 2109 , - 252 , - 2859 , - 1994 , - 1625 , - 1752 , - 2375 , - 3494 , - 1141 , - 3252 , - 1891 , - 1026 , - 657 , - 784 , - 1407 , - 2526 , - 173 , - 2284 , - 923 , - 58 , - 3657 , - 3784 , - 439 , - 1558 , - 3173 , - 1316 , - 3923 , - 3058 , - 2689 , - 2816 , - 3439 , - 590 , - 2205 , - 348 , - 2955 , - 2090 , - 1721 , - 1848 , - 2471 , - 3590 , - 1237 , - 3348 , - 1987 , - 1122 , - 753 , - 880 , - 1503 , - 2622 , - 269 , - 2380 , - 1019 , - 154 , - 3753 , - 3880 , - 535 , - 1654 , - 3269 , - 1412 , - 51 , - 3154 , - 2785 , - 2912 , - 3535 , - 686 , - 2301 , - 444 , - 3051 , - 2186 , - 1817 , - 1944 , - 2567 , - 3686 , - 1333 , - 3444 , - 2083 , - 1218 , - 849 , - 976 , - 1599 , - 2718 , - 365 , - 2476 , - 1115 , - 250 , - 3849 , - 8 , - 631 , - 1750 , - 3365 , - 1508 , - 147 , - 3250 , - 2881 , - 3008 , - 3631 , - 782 , - 2397 , - 540 , - 3147 , - 2282 , - 1913 , - 2040 , - 2663 , - 3782 , - 1429 , - 3540 , - 2179 , - 1314 , - 945 , - 1072 , - 1695 , - 2814 , - 461 , - 2572 , - 1211 , - 346 , - 3945 , - 104 , - 727 , - 1846 , - 3461 , - 1604 , - 243 , - 3346 , - 2977 , - 3104 , - 3727 , - 878 , - 2493 , - 636 , - 3243 , - 2378 , - 2009 , - 2136 , - 2759 , - 3878 , - 1525 , - 3636 , - 2275 , - 1410 , - 1041 , - 1168 , - 1791 , - 2910 , - 557 , - 2668 , - 1307 , - 442 , - 73 , - 200 , - 823 , - 1942 , - 3557 , - 1700 , - 339 , - 3442 , - 3073 , - 3200 , - 3823 , - 974 , - 2589 , - 732 , - 3339 , - 2474 , - 2105 , - 2232 , - 2855 , - 6 , - 1621 , - 3732 , - 2371 , - 1506 , - 1137 , - 1264 , - 1887 , - 3006 , - 653 , - 2764 , - 1403 , - 538 , - 169 , - 296 , - 919 , - 2038 , - 3653 , - 1796 , - 435 , - 3538 , - 3169 , - 3296 , - 3919 , - 1070 , - 2685 , - 828 , - 3435 , - 2570 , - 2201 , - 2328 , - 2951 , - 102 , - 1717 , - 3828 , - 2467 , - 1602 , - 1233 , - 1360 , - 1983 , - 3102 , - 749 , - 2860 , - 1499 , - 634 , - 265 , - 392 , - 1015 , - 2134 , - 3749 , - 1892 , - 531 , - 3634 , - 3265 , - 3392 , - 47 , - 1166 , - 2781 , - 924 , - 3531 , - 2666 , - 2297 , - 2424 , - 3047 , - 198 , - 1813 , - 3924 , - 2563 , - 1698 , - 1329 , - 1456 , - 2079 , - 3198 , - 845 , - 2956 , - 1595 , - 730 , - 361 , - 488 , - 1111 , - 2230 , - 3845 , - 1988 , - 627 , - 3730 , - 3361 , - 3488 , - 143 , - 1262 , - 2877 , - 1020 , - 3627 , - 2762 , - 2393 , - 2520 , - 3143 , - 294 , - 1909 , - 52 , - 2659 , - 1794 , - 1425 , - 1552 , - 2175 , - 3294 , - 941 , - 3052 , - 1691 , - 826 , - 457 , - 584 , - 1207 , - 2326 , - 3941 , - 2084 , - 723 , - 3826 , - 3457 , - 3584 , - 239 , - 1358 , - 2973 , - 1116 , - 3723 , - 2858 , - 2489 , - 2616 , - 3239 , - 390 , - 2005 , - 148 , - 2755 , - 1890 , - 1521 , - 1648 , - 2271 , - 3390 , - 1037 , - 3148 , - 1787 , - 922 , - 553 , - 680 , - 1303 , - 2422 , - 69 , - 2180 , - 819 , - 3922 , - 3553 , - 3680 , - 335 , - 1454 , - 3069 , - 1212 , - 3819 , - 2954 , - 2585 , - 2712 , - 3335 , - 486 , - 2101 , - 244 , - 2851 , - 1986 , - 1617 , - 1744 , - 2367 , - 3486 , - 1133 , - 3244 , - 1883 , - 1018 , - 649 , - 776 , - 1399 , - 2518 , - 165 , - 2276 , - 915 , - 50 , - 3649 , - 3776 , - 431 , - 1550 , - 3165 , - 1308 , - 3915 , - 3050 , - 2681 , - 2808 , - 3431 , - 582 , - 2197 , - 340 , - 2947 , - 2082 , - 1713 , - 1840 , - 2463 , - 3582 , - 1229 , - 3340 , - 1979 , - 1114 , - 745 , - 872 , - 1495 , - 2614 , - 261 , - 2372 , - 1011 , - 146 , - 3745 , - 3872 , - 527 , - 1646 , - 3261 , - 1404 , - 43 , - 3146 , - 2777 , - 2904 , - 3527 , - 678 , - 2293 , - 436 , - 3043 , - 2178 , - 1809 , - 1936 , - 2559 , - 3678 , - 1325 , - 3436 , - 2075 , - 1210 , - 841 , - 968 , - 1591 , - 2710 , - 357 , - 2468 , - 1107 , - 242 , - 3841 , - 0 , - 295 , - 926 , - 1893 , - 3196 , - 803 , - 2778 , - 1057 , - 3704 , - 2655 , - 1942 , - 1565 , - 1524 , - 1819 , - 2450 , - 3417 , - 688 , - 2327 , - 270 , - 2581 , - 1196 , - 147 , - 3466 , - 3089 , - 3048 , - 3343 , - 3974 , - 909 , - 2212 , - 3851 , - 1794 , - 73 , - 2720 , - 1671 , - 958 , - 581 , - 540 , - 835 , - 1466 , - 2433 , - 3736 , - 1343 , - 3318 , - 1597 , - 212 , - 3195 , - 2482 , - 2105 , - 2064 , - 2359 , - 2990 , - 3957 , - 1228 , - 2867 , - 810 , - 3121 , - 1736 , - 687 , - 4006 , - 3629 , - 3588 , - 3883 , - 482 , - 1449 , - 2752 , - 359 , - 2334 , - 613 , - 3260 , - 2211 , - 1498 , - 1121 , - 1080 , - 1375 , - 2006 , - 2973 , - 244 , - 1883 , - 3858 , - 2137 , - 752 , - 3735 , - 3022 , - 2645 , - 2604 , - 2899 , - 3530 , - 465 , - 1768 , - 3407 , - 1350 , - 3661 , - 2276 , - 1227 , - 514 , - 137 , - 96 , - 391 , - 1022 , - 1989 , - 3292 , - 899 , - 2874 , - 1153 , - 3800 , - 2751 , - 2038 , - 1661 , - 1620 , - 1915 , - 2546 , - 3513 , - 784 , - 2423 , - 366 , - 2677 , - 1292 , - 243 , - 3562 , - 3185 , - 3144 , - 3439 , - 38 , - 1005 , - 2308 , - 3947 , - 1890 , - 169 , - 2816 , - 1767 , - 1054 , - 677 , - 636 , - 931 , - 1562 , - 2529 , - 3832 , - 1439 , - 3414 , - 1693 , - 308 , - 3291 , - 2578 , - 2201 , - 2160 , - 2455 , - 3086 , - 21 , - 1324 , - 2963 , - 906 , - 3217 , - 1832 , - 783 , - 70 , - 3725 , - 3684 , - 3979 , - 578 , - 1545 , - 2848 , - 455 , - 2430 , - 709 , - 3356 , - 2307 , - 1594 , - 1217 , - 1176 , - 1471 , - 2102 , - 3069 , - 340 , - 1979 , - 3954 , - 2233 , - 848 , - 3831 , - 3118 , - 2741 , - 2700 , - 2995 , - 3626 , - 561 , - 1864 , - 3503 , - 1446 , - 3757 , - 2372 , - 1323 , - 610 , - 233 , - 192 , - 487 , - 1118 , - 2085 , - 3388 , - 995 , - 2970 , - 1249 , - 3896 , - 2847 , - 2134 , - 1757 , - 1716 , - 2011 , - 2642 , - 3609 , - 880 , - 2519 , - 462 , - 2773 , - 1388 , - 339 , - 3658 , - 3281 , - 3240 , - 3535 , - 134 , - 1101 , - 2404 , - 11 , - 1986 , - 265 , - 2912 , - 1863 , - 1150 , - 773 , - 732 , - 1027 , - 1658 , - 2625 , - 3928 , - 1535 , - 3510 , - 1789 , - 404 , - 3387 , - 2674 , - 2297 , - 2256 , - 2551 , - 3182 , - 117 , - 1420 , - 3059 , - 1002 , - 3313 , - 1928 , - 879 , - 166 , - 3821 , - 3780 , - 43 , - 674 , - 1641 , - 2944 , - 551 , - 2526 , - 805 , - 3452 , - 2403 , - 1690 , - 1313 , - 1272 , - 1567 , - 2198 , - 3165 , - 436 , - 2075 , - 18 , - 2329 , - 944 , - 3927 , - 3214 , - 2837 , - 2796 , - 3091 , - 3722 , - 657 , - 1960 , - 3599 , - 1542 , - 3853 , - 2468 , - 1419 , - 706 , - 329 , - 288 , - 583 , - 1214 , - 2181 , - 3484 , - 1091 , - 3066 , - 1345 , - 3992 , - 2943 , - 2230 , - 1853 , - 1812 , - 2107 , - 2738 , - 3705 , - 976 , - 2615 , - 558 , - 2869 , - 1484 , - 435 , - 3754 , - 3377 , - 3336 , - 3631 , - 230 , - 1197 , - 2500 , - 107 , - 2082 , - 361 , - 3008 , - 1959 , - 1246 , - 869 , - 828 , - 1123 , - 1754 , - 2721 , - 4024 , - 1631 , - 3606 , - 1885 , - 500 , - 3483 , - 2770 , - 2393 , - 2352 , - 2647 , - 3278 , - 213 , - 1516 , - 3155 , - 1098 , - 3409 , - 2024 , - 975 , - 262 , - 3917 , - 3876 , - 139 , - 770 , - 1737 , - 3040 , - 647 , - 2622 , - 901 , - 3548 , - 2499 , - 1786 , - 1409 , - 1368 , - 1663 , - 2294 , - 3261 , - 532 , - 2171 , - 114 , - 2425 , - 1040 , - 4023 , - 3310 , - 2933 , - 2892 , - 3187 , - 3818 , - 753 , - 2056 , - 3695 , - 1638 , - 3949 , - 2564 , - 1515 , - 802 , - 425 , - 384 , - 679 , - 1310 , - 2277 , - 3580 , - 1187 , - 3162 , - 1441 , - 56 , - 3039 , - 2326 , - 1949 , - 1908 , - 2203 , - 2834 , - 3801 , - 1072 , - 2711 , - 654 , - 2965 , - 1580 , - 531 , - 3850 , - 3473 , - 3432 , - 3727 , - 326 , - 1293 , - 2596 , - 203 , - 2178 , - 457 , - 3104 , - 2055 , - 1342 , - 965 , - 924 , - 1219 , - 1850 , - 2817 , - 88 , - 1727 , - 3702 , - 1981 , - 596 , - 3579 , - 2866 , - 2489 , - 2448 , - 2743 , - 3374 , - 309 , - 1612 , - 3251 , - 1194 , - 3505 , - 2120 , - 1071 , - 358 , - 4013 , - 3972 , - 235 , - 866 , - 1833 , - 3136 , - 743 , - 2718 , - 997 , - 3644 , - 2595 , - 1882 , - 1505 , - 1464 , - 1759 , - 2390 , - 3357 , - 628 , - 2267 , - 210 , - 2521 , - 1136 , - 87 , - 3406 , - 3029 , - 2988 , - 3283 , - 3914 , - 849 , - 2152 , - 3791 , - 1734 , - 13 , - 2660 , - 1611 , - 898 , - 521 , - 480 , - 775 , - 1406 , - 2373 , - 3676 , - 1283 , - 3258 , - 1537 , - 152 , - 3135 , - 2422 , - 2045 , - 2004 , - 2299 , - 2930 , - 3897 , - 1168 , - 2807 , - 750 , - 3061 , - 1676 , - 627 , - 3946 , - 3569 , - 3528 , - 3823 , - 422 , - 1389 , - 2692 , - 299 , - 2274 , - 553 , - 3200 , - 2151 , - 1438 , - 1061 , - 1020 , - 1315 , - 1946 , - 2913 , - 184 , - 1823 , - 3798 , - 2077 , - 692 , - 3675 , - 2962 , - 2585 , - 2544 , - 2839 , - 3470 , - 405 , - 1708 , - 3347 , - 1290 , - 3601 , - 2216 , - 1167 , - 454 , - 77 , - 36 , - 331 , - 962 , - 1929 , - 3232 , - 839 , - 2814 , - 1093 , - 3740 , - 2691 , - 1978 , - 1601 , - 1560 , - 1855 , - 2486 , - 3453 , - 724 , - 2363 , - 306 , - 2617 , - 1232 , - 183 , - 3502 , - 3125 , - 3084 , - 3379 , - 4010 , - 945 , - 2248 , - 3887 , - 1830 , - 109 , - 2756 , - 1707 , - 994 , - 617 , - 576 , - 871 , - 1502 , - 2469 , - 3772 , - 1379 , - 3354 , - 1633 , - 248 , - 3231 , - 2518 , - 2141 , - 2100 , - 2395 , - 3026 , - 3993 , - 1264 , - 2903 , - 846 , - 3157 , - 1772 , - 723 , - 10 , - 3665 , - 3624 , - 3919 , - 518 , - 1485 , - 2788 , - 395 , - 2370 , - 649 , - 3296 , - 2247 , - 1534 , - 1157 , - 1116 , - 1411 , - 2042 , - 3009 , - 280 , - 1919 , - 3894 , - 2173 , - 788 , - 3771 , - 3058 , - 2681 , - 2640 , - 2935 , - 3566 , - 501 , - 1804 , - 3443 , - 1386 , - 3697 , - 2312 , - 1263 , - 550 , - 173 , - 132 , - 427 , - 1058 , - 2025 , - 3328 , - 935 , - 2910 , - 1189 , - 3836 , - 2787 , - 2074 , - 1697 , - 1656 , - 1951 , - 2582 , - 3549 , - 820 , - 2459 , - 402 , - 2713 , - 1328 , - 279 , - 3598 , - 3221 , - 3180 , - 3475 , - 74 , - 1041 , - 2344 , - 3983 , - 1926 , - 205 , - 2852 , - 1803 , - 1090 , - 713 , - 672 , - 967 , - 1598 , - 2565 , - 3868 , - 1475 , - 3450 , - 1729 , - 344 , - 3327 , - 2614 , - 2237 , - 2196 , - 2491 , - 3122 , - 57 , - 1360 , - 2999 , - 942 , - 3253 , - 1868 , - 819 , - 106 , - 3761 , - 3720 , - 4015 , - 614 , - 1581 , - 2884 , - 491 , - 2466 , - 745 , - 3392 , - 2343 , - 1630 , - 1253 , - 1212 , - 1507 , - 2138 , - 3105 , - 376 , - 2015 , - 3990 , - 2269 , - 884 , - 3867 , - 3154 , - 2777 , - 2736 , - 3031 , - 3662 , - 597 , - 1900 , - 3539 , - 1482 , - 3793 , - 2408 , - 1359 , - 646 , - 269 , - 228 , - 523 , - 1154 , - 2121 , - 3424 , - 1031 , - 3006 , - 1285 , - 3932 , - 2883 , - 2170 , - 1793 , - 1752 , - 2047 , - 2678 , - 3645 , - 916 , - 2555 , - 498 , - 2809 , - 1424 , - 375 , - 3694 , - 3317 , - 3276 , - 3571 , - 170 , - 1137 , - 2440 , - 47 , - 2022 , - 301 , - 2948 , - 1899 , - 1186 , - 809 , - 768 , - 1063 , - 1694 , - 2661 , - 3964 , - 1571 , - 3546 , - 1825 , - 440 , - 3423 , - 2710 , - 2333 , - 2292 , - 2587 , - 3218 , - 153 , - 1456 , - 3095 , - 1038 , - 3349 , - 1964 , - 915 , - 202 , - 3857 , - 3816 , - 79 , - 710 , - 1677 , - 2980 , - 587 , - 2562 , - 841 , - 3488 , - 2439 , - 1726 , - 1349 , - 1308 , - 1603 , - 2234 , - 3201 , - 472 , - 2111 , - 54 , - 2365 , - 980 , - 3963 , - 3250 , - 2873 , - 2832 , - 3127 , - 3758 , - 693 , - 1996 , - 3635 , - 1578 , - 3889 , - 2504 , - 1455 , - 742 , - 365 , - 324 , - 619 , - 1250 , - 2217 , - 3520 , - 1127 , - 3102 , - 1381 , - 4028 , - 2979 , - 2266 , - 1889 , - 1848 , - 2143 , - 2774 , - 3741 , - 1012 , - 2651 , - 594 , - 2905 , - 1520 , - 471 , - 3790 , - 3413 , - 3372 , - 3667 , - 266 , - 1233 , - 2536 , - 143 , - 2118 , - 397 , - 3044 , - 1995 , - 1282 , - 905 , - 864 , - 1159 , - 1790 , - 2757 , - 28 , - 1667 , - 3642 , - 1921 , - 536 , - 3519 , - 2806 , - 2429 , - 2388 , - 2683 , - 3314 , - 249 , - 1552 , - 3191 , - 1134 , - 3445 , - 2060 , - 1011 , - 298 , - 3953 , - 3912 , - 175 , - 806 , - 1773 , - 3076 , - 683 , - 2658 , - 937 , - 3584 , - 2535 , - 1822 , - 1445 , - 1404 , - 1699 , - 2330 , - 3297 , - 568 , - 2207 , - 150 , - 2461 , - 1076 , - 27 , - 3346 , - 2969 , - 2928 , - 3223 , - 3854 , - 789 , - 2092 , - 3731 , - 1674 , - 3985 , - 2600 , - 1551 , - 838 , - 461 , - 420 , - 715 , - 1346 , - 2313 , - 3616 , - 1223 , - 3198 , - 1477 , - 92 , - 3075 , - 2362 , - 1985 , - 1944 , - 2239 , - 2870 , - 3837 , - 1108 , - 2747 , - 690 , - 3001 , - 1616 , - 567 , - 3886 , - 3509 , - 3468 , - 3763 , - 362 , - 1329 , - 2632 , - 239 , - 2214 , - 493 , - 3140 , - 2091 , - 1378 , - 1001 , - 960 , - 1255 , - 1886 , - 2853 , - 124 , - 1763 , - 3738 , - 2017 , - 632 , - 3615 , - 2902 , - 2525 , - 2484 , - 2779 , - 3410 , - 345 , - 1648 , - 3287 , - 1230 , - 3541 , - 2156 , - 1107 , - 394 , - 17 , - 4008 , - 271 , - 902 , - 1869 , - 3172 , - 779 , - 2754 , - 1033 , - 3680 , - 2631 , - 1918 , - 1541 , - 1500 , - 1795 , - 2426 , - 3393 , - 664 , - 2303 , - 246 , - 2557 , - 1172 , - 123 , - 3442 , - 3065 , - 3024 , - 3319 , - 3950 , - 885 , - 2188 , - 3827 , - 1770 , - 49 , - 2696 , - 1647 , - 934 , - 557 , - 516 , - 811 , - 1442 , - 2409 , - 3712 , - 1319 , - 3294 , - 1573 , - 188 , - 3171 , - 2458 , - 2081 , - 2040 , - 2335 , - 2966 , - 3933 , - 1204 , - 2843 , - 786 , - 3097 , - 1712 , - 663 , - 3982 , - 3605 , - 3564 , - 3859 , - 458 , - 1425 , - 2728 , - 335 , - 2310 , - 589 , - 3236 , - 2187 , - 1474 , - 1097 , - 1056 , - 1351 , - 1982 , - 2949 , - 220 , - 1859 , - 3834 , - 2113 , - 728 , - 3711 , - 2998 , - 2621 , - 2580 , - 2875 , - 3506 , - 441 , - 1744 , - 3383 , - 1326 , - 3637 , - 2252 , - 1203 , - 490 , - 113 , - 72 , - 367 , - 998 , - 1965 , - 3268 , - 875 , - 2850 , - 1129 , - 3776 , - 2727 , - 2014 , - 1637 , - 1596 , - 1891 , - 2522 , - 3489 , - 760 , - 2399 , - 342 , - 2653 , - 1268 , - 219 , - 3538 , - 3161 , - 3120 , - 3415 , - 14 , - 981 , - 2284 , - 3923 , - 1866 , - 145 , - 2792 , - 1743 , - 1030 , - 653 , - 612 , - 907 , - 1538 , - 2505 , - 3808 , - 1415 , - 3390 , - 1669 , - 284 , - 3267 , - 2554 , - 2177 , - 2136 , - 2431 , - 3062 , - 4029 , - 1300 , - 2939 , - 882 , - 3193 , - 1808 , - 759 , - 46 , - 3701 , - 3660 , - 3955 , - 554 , - 1521 , - 2824 , - 431 , - 2406 , - 685 , - 3332 , - 2283 , - 1570 , - 1193 , - 1152 , - 1447 , - 2078 , - 3045 , - 316 , - 1955 , - 3930 , - 2209 , - 824 , - 3807 , - 3094 , - 2717 , - 2676 , - 2971 , - 3602 , - 537 , - 1840 , - 3479 , - 1422 , - 3733 , - 2348 , - 1299 , - 586 , - 209 , - 168 , - 463 , - 1094 , - 2061 , - 3364 , - 971 , - 2946 , - 1225 , - 3872 , - 2823 , - 2110 , - 1733 , - 1692 , - 1987 , - 2618 , - 3585 , - 856 , - 2495 , - 438 , - 2749 , - 1364 , - 315 , - 3634 , - 3257 , - 3216 , - 3511 , - 110 , - 1077 , - 2380 , - 4019 , - 1962 , - 241 , - 2888 , - 1839 , - 1126 , - 749 , - 708 , - 1003 , - 1634 , - 2601 , - 3904 , - 1511 , - 3486 , - 1765 , - 380 , - 3363 , - 2650 , - 2273 , - 2232 , - 2527 , - 3158 , - 93 , - 1396 , - 3035 , - 978 , - 3289 , - 1904 , - 855 , - 142 , - 3797 , - 3756 , - 19 , - 650 , - 1617 , - 2920 , - 527 , - 2502 , - 781 , - 3428 , - 2379 , - 1666 , - 1289 , - 1248 , - 1543 , - 2174 , - 3141 , - 412 , - 2051 , - 4026 , - 2305 , - 920 , - 3903 , - 3190 , - 2813 , - 2772 , - 3067 , - 3698 , - 633 , - 1936 , - 3575 , - 1518 , - 3829 , - 2444 , - 1395 , - 682 , - 305 , - 264 , - 559 , - 1190 , - 2157 , - 3460 , - 1067 , - 3042 , - 1321 , - 3968 , - 2919 , - 2206 , - 1829 , - 1788 , - 2083 , - 2714 , - 3681 , - 952 , - 2591 , - 534 , - 2845 , - 1460 , - 411 , - 3730 , - 3353 , - 3312 , - 3607 , - 206 , - 1173 , - 2476 , - 83 , - 2058 , - 337 , - 2984 , - 1935 , - 1222 , - 845 , - 804 , - 1099 , - 1730 , - 2697 , - 4000 , - 1607 , - 3582 , - 1861 , - 476 , - 3459 , - 2746 , - 2369 , - 2328 , - 2623 , - 3254 , - 189 , - 1492 , - 3131 , - 1074 , - 3385 , - 2000 , - 951 , - 238 , - 3893 , - 3852 , - 115 , - 746 , - 1713 , - 3016 , - 623 , - 2598 , - 877 , - 3524 , - 2475 , - 1762 , - 1385 , - 1344 , - 1639 , - 2270 , - 3237 , - 508 , - 2147 , - 90 , - 2401 , - 1016 , - 3999 , - 3286 , - 2909 , - 2868 , - 3163 , - 3794 , - 729 , - 2032 , - 3671 , - 1614 , - 3925 , - 2540 , - 1491 , - 778 , - 401 , - 360 , - 655 , - 1286 , - 2253 , - 3556 , - 1163 , - 3138 , - 1417 , - 32 , - 3015 , - 2302 , - 1925 , - 1884 , - 2179 , - 2810 , - 3777 , - 1048 , - 2687 , - 630 , - 2941 , - 1556 , - 507 , - 3826 , - 3449 , - 3408 , - 3703 , - 302 , - 1269 , - 2572 , - 179 , - 2154 , - 433 , - 3080 , - 2031 , - 1318 , - 941 , - 900 , - 1195 , - 1826 , - 2793 , - 64 , - 1703 , - 3678 , - 1957 , - 572 , - 3555 , - 2842 , - 2465 , - 2424 , - 2719 , - 3350 , - 285 , - 1588 , - 3227 , - 1170 , - 3481 , - 2096 , - 1047 , - 334 , - 3989 , - 3948 , - 211 , - 842 , - 1809 , - 3112 , - 719 , - 2694 , - 973 , - 3620 , - 2571 , - 1858 , - 1481 , - 1440 , - 1735 , - 2366 , - 3333 , - 604 , - 2243 , - 186 , - 2497 , - 1112 , - 63 , - 3382 , - 3005 , - 2964 , - 3259 , - 3890 , - 825 , - 2128 , - 3767 , - 1710 , - 4021 , - 2636 , - 1587 , - 874 , - 497 , - 456 , - 751 , - 1382 , - 2349 , - 3652 , - 1259 , - 3234 , - 1513 , - 128 , - 3111 , - 2398 , - 2021 , - 1980 , - 2275 , - 2906 , - 3873 , - 1144 , - 2783 , - 726 , - 3037 , - 1652 , - 603 , - 3922 , - 3545 , - 3504 , - 3799 , - 398 , - 1365 , - 2668 , - 275 , - 2250 , - 529 , - 3176 , - 2127 , - 1414 , - 1037 , - 996 , - 1291 , - 1922 , - 2889 , - 160 , - 1799 , - 3774 , - 2053 , - 668 , - 3651 , - 2938 , - 2561 , - 2520 , - 2815 , - 3446 , - 381 , - 1684 , - 3323 , - 1266 , - 3577 , - 2192 , - 1143 , - 430 , - 53 , - 12 , - 307 , - 938 , - 1905 , - 3208 , - 815 , - 2790 , - 1069 , - 3716 , - 2667 , - 1954 , - 1577 , - 1536 , - 1831 , - 2462 , - 3429 , - 700 , - 2339 , - 282 , - 2593 , - 1208 , - 159 , - 3478 , - 3101 , - 3060 , - 3355 , - 3986 , - 921 , - 2224 , - 3863 , - 1806 , - 85 , - 2732 , - 1683 , - 970 , - 593 , - 552 , - 847 , - 1478 , - 2445 , - 3748 , - 1355 , - 3330 , - 1609 , - 224 , - 3207 , - 2494 , - 2117 , - 2076 , - 2371 , - 3002 , - 3969 , - 1240 , - 2879 , - 822 , - 3133 , - 1748 , - 699 , - 4018 , - 3641 , - 3600 , - 3895 , - 494 , - 1461 , - 2764 , - 371 , - 2346 , - 625 , - 3272 , - 2223 , - 1510 , - 1133 , - 1092 , - 1387 , - 2018 , - 2985 , - 256 , - 1895 , - 3870 , - 2149 , - 764 , - 3747 , - 3034 , - 2657 , - 2616 , - 2911 , - 3542 , - 477 , - 1780 , - 3419 , - 1362 , - 3673 , - 2288 , - 1239 , - 526 , - 149 , - 108 , - 403 , - 1034 , - 2001 , - 3304 , - 911 , - 2886 , - 1165 , - 3812 , - 2763 , - 2050 , - 1673 , - 1632 , - 1927 , - 2558 , - 3525 , - 796 , - 2435 , - 378 , - 2689 , - 1304 , - 255 , - 3574 , - 3197 , - 3156 , - 3451 , - 50 , - 1017 , - 2320 , - 3959 , - 1902 , - 181 , - 2828 , - 1779 , - 1066 , - 689 , - 648 , - 943 , - 1574 , - 2541 , - 3844 , - 1451 , - 3426 , - 1705 , - 320 , - 3303 , - 2590 , - 2213 , - 2172 , - 2467 , - 3098 , - 33 , - 1336 , - 2975 , - 918 , - 3229 , - 1844 , - 795 , - 82 , - 3737 , - 3696 , - 3991 , - 590 , - 1557 , - 2860 , - 467 , - 2442 , - 721 , - 3368 , - 2319 , - 1606 , - 1229 , - 1188 , - 1483 , - 2114 , - 3081 , - 352 , - 1991 , - 3966 , - 2245 , - 860 , - 3843 , - 3130 , - 2753 , - 2712 , - 3007 , - 3638 , - 573 , - 1876 , - 3515 , - 1458 , - 3769 , - 2384 , - 1335 , - 622 , - 245 , - 204 , - 499 , - 1130 , - 2097 , - 3400 , - 1007 , - 2982 , - 1261 , - 3908 , - 2859 , - 2146 , - 1769 , - 1728 , - 2023 , - 2654 , - 3621 , - 892 , - 2531 , - 474 , - 2785 , - 1400 , - 351 , - 3670 , - 3293 , - 3252 , - 3547 , - 146 , - 1113 , - 2416 , - 23 , - 1998 , - 277 , - 2924 , - 1875 , - 1162 , - 785 , - 744 , - 1039 , - 1670 , - 2637 , - 3940 , - 1547 , - 3522 , - 1801 , - 416 , - 3399 , - 2686 , - 2309 , - 2268 , - 2563 , - 3194 , - 129 , - 1432 , - 3071 , - 1014 , - 3325 , - 1940 , - 891 , - 178 , - 3833 , - 3792 , - 55 , - 686 , - 1653 , - 2956 , - 563 , - 2538 , - 817 , - 3464 , - 2415 , - 1702 , - 1325 , - 1284 , - 1579 , - 2210 , - 3177 , - 448 , - 2087 , - 30 , - 2341 , - 956 , - 3939 , - 3226 , - 2849 , - 2808 , - 3103 , - 3734 , - 669 , - 1972 , - 3611 , - 1554 , - 3865 , - 2480 , - 1431 , - 718 , - 341 , - 300 , - 595 , - 1226 , - 2193 , - 3496 , - 1103 , - 3078 , - 1357 , - 4004 , - 2955 , - 2242 , - 1865 , - 1824 , - 2119 , - 2750 , - 3717 , - 988 , - 2627 , - 570 , - 2881 , - 1496 , - 447 , - 3766 , - 3389 , - 3348 , - 3643 , - 242 , - 1209 , - 2512 , - 119 , - 2094 , - 373 , - 3020 , - 1971 , - 1258 , - 881 , - 840 , - 1135 , - 1766 , - 2733 , - 4 , - 1643 , - 3618 , - 1897 , - 512 , - 3495 , - 2782 , - 2405 , - 2364 , - 2659 , - 3290 , - 225 , - 1528 , - 3167 , - 1110 , - 3421 , - 2036 , - 987 , - 274 , - 3929 , - 3888 , - 151 , - 782 , - 1749 , - 3052 , - 659 , - 2634 , - 913 , - 3560 , - 2511 , - 1798 , - 1421 , - 1380 , - 1675 , - 2306 , - 3273 , - 544 , - 2183 , - 126 , - 2437 , - 1052 , - 3 , - 3322 , - 2945 , - 2904 , - 3199 , - 3830 , - 765 , - 2068 , - 3707 , - 1650 , - 3961 , - 2576 , - 1527 , - 814 , - 437 , - 396 , - 691 , - 1322 , - 2289 , - 3592 , - 1199 , - 3174 , - 1453 , - 68 , - 3051 , - 2338 , - 1961 , - 1920 , - 2215 , - 2846 , - 3813 , - 1084 , - 2723 , - 666 , - 2977 , - 1592 , - 543 , - 3862 , - 3485 , - 3444 , - 3739 , - 338 , - 1305 , - 2608 , - 215 , - 2190 , - 469 , - 3116 , - 2067 , - 1354 , - 977 , - 936 , - 1231 , - 1862 , - 2829 , - 100 , - 1739 , - 3714 , - 1993 , - 608 , - 3591 , - 2878 , - 2501 , - 2460 , - 2755 , - 3386 , - 321 , - 1624 , - 3263 , - 1206 , - 3517 , - 2132 , - 1083 , - 370 , - 4025 , - 3984 , - 247 , - 878 , - 1845 , - 3148 , - 755 , - 2730 , - 1009 , - 3656 , - 2607 , - 1894 , - 1517 , - 1476 , - 1771 , - 2402 , - 3369 , - 640 , - 2279 , - 222 , - 2533 , - 1148 , - 99 , - 3418 , - 3041 , - 3000 , - 3295 , - 3926 , - 861 , - 2164 , - 3803 , - 1746 , - 25 , - 2672 , - 1623 , - 910 , - 533 , - 492 , - 787 , - 1418 , - 2385 , - 3688 , - 1295 , - 3270 , - 1549 , - 164 , - 3147 , - 2434 , - 2057 , - 2016 , - 2311 , - 2942 , - 3909 , - 1180 , - 2819 , - 762 , - 3073 , - 1688 , - 639 , - 3958 , - 3581 , - 3540 , - 3835 , - 434 , - 1401 , - 2704 , - 311 , - 2286 , - 565 , - 3212 , - 2163 , - 1450 , - 1073 , - 1032 , - 1327 , - 1958 , - 2925 , - 196 , - 1835 , - 3810 , - 2089 , - 704 , - 3687 , - 2974 , - 2597 , - 2556 , - 2851 , - 3482 , - 417 , - 1720 , - 3359 , - 1302 , - 3613 , - 2228 , - 1179 , - 466 , - 89 , - 48 , - 343 , - 974 , - 1941 , - 3244 , - 851 , - 2826 , - 1105 , - 3752 , - 2703 , - 1990 , - 1613 , - 1572 , - 1867 , - 2498 , - 3465 , - 736 , - 2375 , - 318 , - 2629 , - 1244 , - 195 , - 3514 , - 3137 , - 3096 , - 3391 , - 4022 , - 957 , - 2260 , - 3899 , - 1842 , - 121 , - 2768 , - 1719 , - 1006 , - 629 , - 588 , - 883 , - 1514 , - 2481 , - 3784 , - 1391 , - 3366 , - 1645 , - 260 , - 3243 , - 2530 , - 2153 , - 2112 , - 2407 , - 3038 , - 4005 , - 1276 , - 2915 , - 858 , - 3169 , - 1784 , - 735 , - 22 , - 3677 , - 3636 , - 3931 , - 530 , - 1497 , - 2800 , - 407 , - 2382 , - 661 , - 3308 , - 2259 , - 1546 , - 1169 , - 1128 , - 1423 , - 2054 , - 3021 , - 292 , - 1931 , - 3906 , - 2185 , - 800 , - 3783 , - 3070 , - 2693 , - 2652 , - 2947 , - 3578 , - 513 , - 1816 , - 3455 , - 1398 , - 3709 , - 2324 , - 1275 , - 562 , - 185 , - 144 , - 439 , - 1070 , - 2037 , - 3340 , - 947 , - 2922 , - 1201 , - 3848 , - 2799 , - 2086 , - 1709 , - 1668 , - 1963 , - 2594 , - 3561 , - 832 , - 2471 , - 414 , - 2725 , - 1340 , - 291 , - 3610 , - 3233 , - 3192 , - 3487 , - 86 , - 1053 , - 2356 , - 3995 , - 1938 , - 217 , - 2864 , - 1815 , - 1102 , - 725 , - 684 , - 979 , - 1610 , - 2577 , - 3880 , - 1487 , - 3462 , - 1741 , - 356 , - 3339 , - 2626 , - 2249 , - 2208 , - 2503 , - 3134 , - 69 , - 1372 , - 3011 , - 954 , - 3265 , - 1880 , - 831 , - 118 , - 3773 , - 3732 , - 4027 , - 626 , - 1593 , - 2896 , - 503 , - 2478 , - 757 , - 3404 , - 2355 , - 1642 , - 1265 , - 1224 , - 1519 , - 2150 , - 3117 , - 388 , - 2027 , - 4002 , - 2281 , - 896 , - 3879 , - 3166 , - 2789 , - 2748 , - 3043 , - 3674 , - 609 , - 1912 , - 3551 , - 1494 , - 3805 , - 2420 , - 1371 , - 658 , - 281 , - 240 , - 535 , - 1166 , - 2133 , - 3436 , - 1043 , - 3018 , - 1297 , - 3944 , - 2895 , - 2182 , - 1805 , - 1764 , - 2059 , - 2690 , - 3657 , - 928 , - 2567 , - 510 , - 2821 , - 1436 , - 387 , - 3706 , - 3329 , - 3288 , - 3583 , - 182 , - 1149 , - 2452 , - 59 , - 2034 , - 313 , - 2960 , - 1911 , - 1198 , - 821 , - 780 , - 1075 , - 1706 , - 2673 , - 3976 , - 1583 , - 3558 , - 1837 , - 452 , - 3435 , - 2722 , - 2345 , - 2304 , - 2599 , - 3230 , - 165 , - 1468 , - 3107 , - 1050 , - 3361 , - 1976 , - 927 , - 214 , - 3869 , - 3828 , - 91 , - 722 , - 1689 , - 2992 , - 599 , - 2574 , - 853 , - 3500 , - 2451 , - 1738 , - 1361 , - 1320 , - 1615 , - 2246 , - 3213 , - 484 , - 2123 , - 66 , - 2377 , - 992 , - 3975 , - 3262 , - 2885 , - 2844 , - 3139 , - 3770 , - 705 , - 2008 , - 3647 , - 1590 , - 3901 , - 2516 , - 1467 , - 754 , - 377 , - 336 , - 631 , - 1262 , - 2229 , - 3532 , - 1139 , - 3114 , - 1393 , - 8 , - 2991 , - 2278 , - 1901 , - 1860 , - 2155 , - 2786 , - 3753 , - 1024 , - 2663 , - 606 , - 2917 , - 1532 , - 483 , - 3802 , - 3425 , - 3384 , - 3679 , - 278 , - 1245 , - 2548 , - 155 , - 2130 , - 409 , - 3056 , - 2007 , - 1294 , - 917 , - 876 , - 1171 , - 1802 , - 2769 , - 40 , - 1679 , - 3654 , - 1933 , - 548 , - 3531 , - 2818 , - 2441 , - 2400 , - 2695 , - 3326 , - 261 , - 1564 , - 3203 , - 1146 , - 3457 , - 2072 , - 1023 , - 310 , - 3965 , - 3924 , - 187 , - 818 , - 1785 , - 3088 , - 695 , - 2670 , - 949 , - 3596 , - 2547 , - 1834 , - 1457 , - 1416 , - 1711 , - 2342 , - 3309 , - 580 , - 2219 , - 162 , - 2473 , - 1088 , - 39 , - 3358 , - 2981 , - 2940 , - 3235 , - 3866 , - 801 , - 2104 , - 3743 , - 1686 , - 3997 , - 2612 , - 1563 , - 850 , - 473 , - 432 , - 727 , - 1358 , - 2325 , - 3628 , - 1235 , - 3210 , - 1489 , - 104 , - 3087 , - 2374 , - 1997 , - 1956 , - 2251 , - 2882 , - 3849 , - 1120 , - 2759 , - 702 , - 3013 , - 1628 , - 579 , - 3898 , - 3521 , - 3480 , - 3775 , - 374 , - 1341 , - 2644 , - 251 , - 2226 , - 505 , - 3152 , - 2103 , - 1390 , - 1013 , - 972 , - 1267 , - 1898 , - 2865 , - 136 , - 1775 , - 3750 , - 2029 , - 644 , - 3627 , - 2914 , - 2537 , - 2496 , - 2791 , - 3422 , - 357 , - 1660 , - 3299 , - 1242 , - 3553 , - 2168 , - 1119 , - 406 , - 29 , - 4020 , - 283 , - 914 , - 1881 , - 3184 , - 791 , - 2766 , - 1045 , - 3692 , - 2643 , - 1930 , - 1553 , - 1512 , - 1807 , - 2438 , - 3405 , - 676 , - 2315 , - 258 , - 2569 , - 1184 , - 135 , - 3454 , - 3077 , - 3036 , - 3331 , - 3962 , - 897 , - 2200 , - 3839 , - 1782 , - 61 , - 2708 , - 1659 , - 946 , - 569 , - 528 , - 823 , - 1454 , - 2421 , - 3724 , - 1331 , - 3306 , - 1585 , - 200 , - 3183 , - 2470 , - 2093 , - 2052 , - 2347 , - 2978 , - 3945 , - 1216 , - 2855 , - 798 , - 3109 , - 1724 , - 675 , - 3994 , - 3617 , - 3576 , - 3871 , - 470 , - 1437 , - 2740 , - 347 , - 2322 , - 601 , - 3248 , - 2199 , - 1486 , - 1109 , - 1068 , - 1363 , - 1994 , - 2961 , - 232 , - 1871 , - 3846 , - 2125 , - 740 , - 3723 , - 3010 , - 2633 , - 2592 , - 2887 , - 3518 , - 453 , - 1756 , - 3395 , - 1338 , - 3649 , - 2264 , - 1215 , - 502 , - 125 , - 84 , - 379 , - 1010 , - 1977 , - 3280 , - 887 , - 2862 , - 1141 , - 3788 , - 2739 , - 2026 , - 1649 , - 1608 , - 1903 , - 2534 , - 3501 , - 772 , - 2411 , - 354 , - 2665 , - 1280 , - 231 , - 3550 , - 3173 , - 3132 , - 3427 , - 26 , - 993 , - 2296 , - 3935 , - 1878 , - 157 , - 2804 , - 1755 , - 1042 , - 665 , - 624 , - 919 , - 1550 , - 2517 , - 3820 , - 1427 , - 3402 , - 1681 , - 296 , - 3279 , - 2566 , - 2189 , - 2148 , - 2443 , - 3074 , - 9 , - 1312 , - 2951 , - 894 , - 3205 , - 1820 , - 771 , - 58 , - 3713 , - 3672 , - 3967 , - 566 , - 1533 , - 2836 , - 443 , - 2418 , - 697 , - 3344 , - 2295 , - 1582 , - 1205 , - 1164 , - 1459 , - 2090 , - 3057 , - 328 , - 1967 , - 3942 , - 2221 , - 836 , - 3819 , - 3106 , - 2729 , - 2688 , - 2983 , - 3614 , - 549 , - 1852 , - 3491 , - 1434 , - 3745 , - 2360 , - 1311 , - 598 , - 221 , - 180 , - 475 , - 1106 , - 2073 , - 3376 , - 983 , - 2958 , - 1237 , - 3884 , - 2835 , - 2122 , - 1745 , - 1704 , - 1999 , - 2630 , - 3597 , - 868 , - 2507 , - 450 , - 2761 , - 1376 , - 327 , - 3646 , - 3269 , - 3228 , - 3523 , - 122 , - 1089 , - 2392 , - 4031 , - 1974 , - 253 , - 2900 , - 1851 , - 1138 , - 761 , - 720 , - 1015 , - 1646 , - 2613 , - 3916 , - 1523 , - 3498 , - 1777 , - 392 , - 3375 , - 2662 , - 2285 , - 2244 , - 2539 , - 3170 , - 105 , - 1408 , - 3047 , - 990 , - 3301 , - 1916 , - 867 , - 154 , - 3809 , - 3768 , - 31 , - 662 , - 1629 , - 2932 , - 539 , - 2514 , - 793 , - 3440 , - 2391 , - 1678 , - 1301 , - 1260 , - 1555 , - 2186 , - 3153 , - 424 , - 2063 , - 6 , - 2317 , - 932 , - 3915 , - 3202 , - 2825 , - 2784 , - 3079 , - 3710 , - 645 , - 1948 , - 3587 , - 1530 , - 3841 , - 2456 , - 1407 , - 694 , - 317 , - 276 , - 571 , - 1202 , - 2169 , - 3472 , - 1079 , - 3054 , - 1333 , - 3980 , - 2931 , - 2218 , - 1841 , - 1800 , - 2095 , - 2726 , - 3693 , - 964 , - 2603 , - 546 , - 2857 , - 1472 , - 423 , - 3742 , - 3365 , - 3324 , - 3619 , - 218 , - 1185 , - 2488 , - 95 , - 2070 , - 349 , - 2996 , - 1947 , - 1234 , - 857 , - 816 , - 1111 , - 1742 , - 2709 , - 4012 , - 1619 , - 3594 , - 1873 , - 488 , - 3471 , - 2758 , - 2381 , - 2340 , - 2635 , - 3266 , - 201 , - 1504 , - 3143 , - 1086 , - 3397 , - 2012 , - 963 , - 250 , - 3905 , - 3864 , - 127 , - 758 , - 1725 , - 3028 , - 635 , - 2610 , - 889 , - 3536 , - 2487 , - 1774 , - 1397 , - 1356 , - 1651 , - 2282 , - 3249 , - 520 , - 2159 , - 102 , - 2413 , - 1028 , - 4011 , - 3298 , - 2921 , - 2880 , - 3175 , - 3806 , - 741 , - 2044 , - 3683 , - 1626 , - 3937 , - 2552 , - 1503 , - 790 , - 413 , - 372 , - 667 , - 1298 , - 2265 , - 3568 , - 1175 , - 3150 , - 1429 , - 44 , - 3027 , - 2314 , - 1937 , - 1896 , - 2191 , - 2822 , - 3789 , - 1060 , - 2699 , - 642 , - 2953 , - 1568 , - 519 , - 3838 , - 3461 , - 3420 , - 3715 , - 314 , - 1281 , - 2584 , - 191 , - 2166 , - 445 , - 3092 , - 2043 , - 1330 , - 953 , - 912 , - 1207 , - 1838 , - 2805 , - 76 , - 1715 , - 3690 , - 1969 , - 584 , - 3567 , - 2854 , - 2477 , - 2436 , - 2731 , - 3362 , - 297 , - 1600 , - 3239 , - 1182 , - 3493 , - 2108 , - 1059 , - 346 , - 4001 , - 3960 , - 223 , - 854 , - 1821 , - 3124 , - 731 , - 2706 , - 985 , - 3632 , - 2583 , - 1870 , - 1493 , - 1452 , - 1747 , - 2378 , - 3345 , - 616 , - 2255 , - 198 , - 2509 , - 1124 , - 75 , - 3394 , - 3017 , - 2976 , - 3271 , - 3902 , - 837 , - 2140 , - 3779 , - 1722 , - 1 , - 2648 , - 1599 , - 886 , - 509 , - 468 , - 763 , - 1394 , - 2361 , - 3664 , - 1271 , - 3246 , - 1525 , - 140 , - 3123 , - 2410 , - 2033 , - 1992 , - 2287 , - 2918 , - 3885 , - 1156 , - 2795 , - 738 , - 3049 , - 1664 , - 615 , - 3934 , - 3557 , - 3516 , - 3811 , - 410 , - 1377 , - 2680 , - 287 , - 2262 , - 541 , - 3188 , - 2139 , - 1426 , - 1049 , - 1008 , - 1303 , - 1934 , - 2901 , - 172 , - 1811 , - 3786 , - 2065 , - 680 , - 3663 , - 2950 , - 2573 , - 2532 , - 2827 , - 3458 , - 393 , - 1696 , - 3335 , - 1278 , - 3589 , - 2204 , - 1155 , - 442 , - 65 , - 24 , - 319 , - 950 , - 1917 , - 3220 , - 827 , - 2802 , - 1081 , - 3728 , - 2679 , - 1966 , - 1589 , - 1548 , - 1843 , - 2474 , - 3441 , - 712 , - 2351 , - 294 , - 2605 , - 1220 , - 171 , - 3490 , - 3113 , - 3072 , - 3367 , - 3998 , - 933 , - 2236 , - 3875 , - 1818 , - 97 , - 2744 , - 1695 , - 982 , - 605 , - 564 , - 859 , - 1490 , - 2457 , - 3760 , - 1367 , - 3342 , - 1621 , - 236 , - 3219 , - 2506 , - 2129 , - 2088 , - 2383 , - 3014 , - 3981 , - 1252 , - 2891 , - 834 , - 3145 , - 1760 , - 711 , - 4030 , - 3653 , - 3612 , - 3907 , - 506 , - 1473 , - 2776 , - 383 , - 2358 , - 637 , - 3284 , - 2235 , - 1522 , - 1145 , - 1104 , - 1399 , - 2030 , - 2997 , - 268 , - 1907 , - 3882 , - 2161 , - 776 , - 3759 , - 3046 , - 2669 , - 2628 , - 2923 , - 3554 , - 489 , - 1792 , - 3431 , - 1374 , - 3685 , - 2300 , - 1251 , - 538 , - 161 , - 120 , - 415 , - 1046 , - 2013 , - 3316 , - 923 , - 2898 , - 1177 , - 3824 , - 2775 , - 2062 , - 1685 , - 1644 , - 1939 , - 2570 , - 3537 , - 808 , - 2447 , - 390 , - 2701 , - 1316 , - 267 , - 3586 , - 3209 , - 3168 , - 3463 , - 62 , - 1029 , - 2332 , - 3971 , - 1914 , - 193 , - 2840 , - 1791 , - 1078 , - 701 , - 660 , - 955 , - 1586 , - 2553 , - 3856 , - 1463 , - 3438 , - 1717 , - 332 , - 3315 , - 2602 , - 2225 , - 2184 , - 2479 , - 3110 , - 45 , - 1348 , - 2987 , - 930 , - 3241 , - 1856 , - 807 , - 94 , - 3749 , - 3708 , - 4003 , - 602 , - 1569 , - 2872 , - 479 , - 2454 , - 733 , - 3380 , - 2331 , - 1618 , - 1241 , - 1200 , - 1495 , - 2126 , - 3093 , - 364 , - 2003 , - 3978 , - 2257 , - 872 , - 3855 , - 3142 , - 2765 , - 2724 , - 3019 , - 3650 , - 585 , - 1888 , - 3527 , - 1470 , - 3781 , - 2396 , - 1347 , - 634 , - 257 , - 216 , - 511 , - 1142 , - 2109 , - 3412 , - 1019 , - 2994 , - 1273 , - 3920 , - 2871 , - 2158 , - 1781 , - 1740 , - 2035 , - 2666 , - 3633 , - 904 , - 2543 , - 486 , - 2797 , - 1412 , - 363 , - 3682 , - 3305 , - 3264 , - 3559 , - 158 , - 1125 , - 2428 , - 35 , - 2010 , - 289 , - 2936 , - 1887 , - 1174 , - 797 , - 756 , - 1051 , - 1682 , - 2649 , - 3952 , - 1559 , - 3534 , - 1813 , - 428 , - 3411 , - 2698 , - 2321 , - 2280 , - 2575 , - 3206 , - 141 , - 1444 , - 3083 , - 1026 , - 3337 , - 1952 , - 903 , - 190 , - 3845 , - 3804 , - 67 , - 698 , - 1665 , - 2968 , - 575 , - 2550 , - 829 , - 3476 , - 2427 , - 1714 , - 1337 , - 1296 , - 1591 , - 2222 , - 3189 , - 460 , - 2099 , - 42 , - 2353 , - 968 , - 3951 , - 3238 , - 2861 , - 2820 , - 3115 , - 3746 , - 681 , - 1984 , - 3623 , - 1566 , - 3877 , - 2492 , - 1443 , - 730 , - 353 , - 312 , - 607 , - 1238 , - 2205 , - 3508 , - 1115 , - 3090 , - 1369 , - 4016 , - 2967 , - 2254 , - 1877 , - 1836 , - 2131 , - 2762 , - 3729 , - 1000 , - 2639 , - 582 , - 2893 , - 1508 , - 459 , - 3778 , - 3401 , - 3360 , - 3655 , - 254 , - 1221 , - 2524 , - 131 , - 2106 , - 385 , - 3032 , - 1983 , - 1270 , - 893 , - 852 , - 1147 , - 1778 , - 2745 , - 16 , - 1655 , - 3630 , - 1909 , - 524 , - 3507 , - 2794 , - 2417 , - 2376 , - 2671 , - 3302 , - 237 , - 1540 , - 3179 , - 1122 , - 3433 , - 2048 , - 999 , - 286 , - 3941 , - 3900 , - 163 , - 794 , - 1761 , - 3064 , - 671 , - 2646 , - 925 , - 3572 , - 2523 , - 1810 , - 1433 , - 1392 , - 1687 , - 2318 , - 3285 , - 556 , - 2195 , - 138 , - 2449 , - 1064 , - 15 , - 3334 , - 2957 , - 2916 , - 3211 , - 3842 , - 777 , - 2080 , - 3719 , - 1662 , - 3973 , - 2588 , - 1539 , - 826 , - 449 , - 408 , - 703 , - 1334 , - 2301 , - 3604 , - 1211 , - 3186 , - 1465 , - 80 , - 3063 , - 2350 , - 1973 , - 1932 , - 2227 , - 2858 , - 3825 , - 1096 , - 2735 , - 678 , - 2989 , - 1604 , - 555 , - 3874 , - 3497 , - 3456 , - 3751 , - 350 , - 1317 , - 2620 , - 227 , - 2202 , - 481 , - 3128 , - 2079 , - 1366 , - 989 , - 948 , - 1243 , - 1874 , - 2841 , - 112 , - 1751 , - 3726 , - 2005 , - 620 , - 3603 , - 2890 , - 2513 , - 2472 , - 2767 , - 3398 , - 333 , - 1636 , - 3275 , - 1218 , - 3529 , - 2144 , - 1095 , - 382 , - 5 , - 3996 , - 259 , - 890 , - 1857 , - 3160 , - 767 , - 2742 , - 1021 , - 3668 , - 2619 , - 1906 , - 1529 , - 1488 , - 1783 , - 2414 , - 3381 , - 652 , - 2291 , - 234 , - 2545 , - 1160 , - 111 , - 3430 , - 3053 , - 3012 , - 3307 , - 3938 , - 873 , - 2176 , - 3815 , - 1758 , - 37 , - 2684 , - 1635 , - 922 , - 545 , - 504 , - 799 , - 1430 , - 2397 , - 3700 , - 1307 , - 3282 , - 1561 , - 176 , - 3159 , - 2446 , - 2069 , - 2028 , - 2323 , - 2954 , - 3921 , - 1192 , - 2831 , - 774 , - 3085 , - 1700 , - 651 , - 3970 , - 3593 , - 3552 , - 3847 , - 446 , - 1413 , - 2716 , - 323 , - 2298 , - 577 , - 3224 , - 2175 , - 1462 , - 1085 , - 1044 , - 1339 , - 1970 , - 2937 , - 208 , - 1847 , - 3822 , - 2101 , - 716 , - 3699 , - 2986 , - 2609 , - 2568 , - 2863 , - 3494 , - 429 , - 1732 , - 3371 , - 1314 , - 3625 , - 2240 , - 1191 , - 478 , - 101 , - 60 , - 355 , - 986 , - 1953 , - 3256 , - 863 , - 2838 , - 1117 , - 3764 , - 2715 , - 2002 , - 1625 , - 1584 , - 1879 , - 2510 , - 3477 , - 748 , - 2387 , - 330 , - 2641 , - 1256 , - 207 , - 3526 , - 3149 , - 3108 , - 3403 , - 2 , - 969 , - 2272 , - 3911 , - 1854 , - 133 , - 2780 , - 1731 , - 1018 , - 641 , - 600 , - 895 , - 1526 , - 2493 , - 3796 , - 1403 , - 3378 , - 1657 , - 272 , - 3255 , - 2542 , - 2165 , - 2124 , - 2419 , - 3050 , - 4017 , - 1288 , - 2927 , - 870 , - 3181 , - 1796 , - 747 , - 34 , - 3689 , - 3648 , - 3943 , - 542 , - 1509 , - 2812 , - 419 , - 2394 , - 673 , - 3320 , - 2271 , - 1558 , - 1181 , - 1140 , - 1435 , - 2066 , - 3033 , - 304 , - 1943 , - 3918 , - 2197 , - 812 , - 3795 , - 3082 , - 2705 , - 2664 , - 2959 , - 3590 , - 525 , - 1828 , - 3467 , - 1410 , - 3721 , - 2336 , - 1287 , - 574 , - 197 , - 156 , - 451 , - 1082 , - 2049 , - 3352 , - 959 , - 2934 , - 1213 , - 3860 , - 2811 , - 2098 , - 1721 , - 1680 , - 1975 , - 2606 , - 3573 , - 844 , - 2483 , - 426 , - 2737 , - 1352 , - 303 , - 3622 , - 3245 , - 3204 , - 3499 , - 98 , - 1065 , - 2368 , - 4007 , - 1950 , - 229 , - 2876 , - 1827 , - 1114 , - 737 , - 696 , - 991 , - 1622 , - 2589 , - 3892 , - 1499 , - 3474 , - 1753 , - 368 , - 3351 , - 2638 , - 2261 , - 2220 , - 2515 , - 3146 , - 81 , - 1384 , - 3023 , - 966 , - 3277 , - 1892 , - 843 , - 130 , - 3785 , - 3744 , - 7 , - 638 , - 1605 , - 2908 , - 515 , - 2490 , - 769 , - 3416 , - 2367 , - 1654 , - 1277 , - 1236 , - 1531 , - 2162 , - 3129 , - 400 , - 2039 , - 4014 , - 2293 , - 908 , - 3891 , - 3178 , - 2801 , - 2760 , - 3055 , - 3686 , - 621 , - 1924 , - 3563 , - 1506 , - 3817 , - 2432 , - 1383 , - 670 , - 293 , - 252 , - 547 , - 1178 , - 2145 , - 3448 , - 1055 , - 3030 , - 1309 , - 3956 , - 2907 , - 2194 , - 1817 , - 1776 , - 2071 , - 2702 , - 3669 , - 940 , - 2579 , - 522 , - 2833 , - 1448 , - 399 , - 3718 , - 3341 , - 3300 , - 3595 , - 194 , - 1161 , - 2464 , - 71 , - 2046 , - 325 , - 2972 , - 1923 , - 1210 , - 833 , - 792 , - 1087 , - 1718 , - 2685 , - 3988 , - 1595 , - 3570 , - 1849 , - 464 , - 3447 , - 2734 , - 2357 , - 2316 , - 2611 , - 3242 , - 177 , - 1480 , - 3119 , - 1062 , - 3373 , - 1988 , - 939 , - 226 , - 3881 , - 3840 , - 103 , - 734 , - 1701 , - 3004 , - 611 , - 2586 , - 865 , - 3512 , - 2463 , - 1750 , - 1373 , - 1332 , - 1627 , - 2258 , - 3225 , - 496 , - 2135 , - 78 , - 2389 , - 1004 , - 3987 , - 3274 , - 2897 , - 2856 , - 3151 , - 3782 , - 717 , - 2020 , - 3659 , - 1602 , - 3913 , - 2528 , - 1479 , - 766 , - 389 , - 348 , - 643 , - 1274 , - 2241 , - 3544 , - 1151 , - 3126 , - 1405 , - 20 , - 3003 , - 2290 , - 1913 , - 1872 , - 2167 , - 2798 , - 3765 , - 1036 , - 2675 , - 618 , - 2929 , - 1544 , - 495 , - 3814 , - 3437 , - 3396 , - 3691 , - 290 , - 1257 , - 2560 , - 167 , - 2142 , - 421 , - 3068 , - 2019 , - 1306 , - 929 , - 888 , - 1183 , - 1814 , - 2781 , - 52 , - 1691 , - 3666 , - 1945 , - 560 , - 3543 , - 2830 , - 2453 , - 2412 , - 2707 , - 3338 , - 273 , - 1576 , - 3215 , - 1158 , - 3469 , - 2084 , - 1035 , - 322 , - 3977 , - 3936 , - 199 , - 830 , - 1797 , - 3100 , - 707 , - 2682 , - 961 , - 3608 , - 2559 , - 1846 , - 1469 , - 1428 , - 1723 , - 2354 , - 3321 , - 592 , - 2231 , - 174 , - 2485 , - 1100 , - 51 , - 3370 , - 2993 , - 2952 , - 3247 , - 3878 , - 813 , - 2116 , - 3755 , - 1698 , - 4009 , - 2624 , - 1575 , - 862 , - 485 , - 444 , - 739 , - 1370 , - 2337 , - 3640 , - 1247 , - 3222 , - 1501 , - 116 , - 3099 , - 2386 , - 2009 , - 1968 , - 2263 , - 2894 , - 3861 , - 1132 , - 2771 , - 714 , - 3025 , - 1640 , - 591 , - 3910 , - 3533 , - 3492 , - 3787 , - 386 , - 1353 , - 2656 , - 263 , - 2238 , - 517 , - 3164 , - 2115 , - 1402 , - 1025 , - 984 , - 1279 , - 1910 , - 2877 , - 148 , - 1787 , - 3762 , - 2041 , - 656 , - 3639 , - 2926 , - 2549 , - 2508 , - 2803 , - 3434 , - 369 , - 1672 , - 3311 , - 1254 , - 3565 , - 2180 , - 1131 , - 418 , - 41 , - 0 , - 95 , - 318 , - 669 , - 1148 , - 1755 , - 2490 , - 3353 , - 248 , - 1367 , - 2614 , - 3989 , - 1396 , - 3027 , - 690 , - 2577 , - 496 , - 2639 , - 814 , - 3213 , - 1644 , - 203 , - 2986 , - 1801 , - 744 , - 3911 , - 3110 , - 2437 , - 1892 , - 1475 , - 1186 , - 1025 , - 992 , - 1087 , - 1310 , - 1661 , - 2140 , - 2747 , - 3482 , - 249 , - 1240 , - 2359 , - 3606 , - 885 , - 2388 , - 4019 , - 1682 , - 3569 , - 1488 , - 3631 , - 1806 , - 109 , - 2636 , - 1195 , - 3978 , - 2793 , - 1736 , - 807 , - 6 , - 3429 , - 2884 , - 2467 , - 2178 , - 2017 , - 1984 , - 2079 , - 2302 , - 2653 , - 3132 , - 3739 , - 378 , - 1241 , - 2232 , - 3351 , - 502 , - 1877 , - 3380 , - 915 , - 2674 , - 465 , - 2480 , - 527 , - 2798 , - 1101 , - 3628 , - 2187 , - 874 , - 3785 , - 2728 , - 1799 , - 998 , - 325 , - 3876 , - 3459 , - 3170 , - 3009 , - 2976 , - 3071 , - 3294 , - 3645 , - 28 , - 635 , - 1370 , - 2233 , - 3224 , - 247 , - 1494 , - 2869 , - 276 , - 1907 , - 3666 , - 1457 , - 3472 , - 1519 , - 3790 , - 2093 , - 524 , - 3179 , - 1866 , - 681 , - 3720 , - 2791 , - 1990 , - 1317 , - 772 , - 355 , - 66 , - 4001 , - 3968 , - 4063 , - 190 , - 541 , - 1020 , - 1627 , - 2362 , - 3225 , - 120 , - 1239 , - 2486 , - 3861 , - 1268 , - 2899 , - 562 , - 2449 , - 368 , - 2511 , - 686 , - 3085 , - 1516 , - 75 , - 2858 , - 1673 , - 616 , - 3783 , - 2982 , - 2309 , - 1764 , - 1347 , - 1058 , - 897 , - 864 , - 959 , - 1182 , - 1533 , - 2012 , - 2619 , - 3354 , - 121 , - 1112 , - 2231 , - 3478 , - 757 , - 2260 , - 3891 , - 1554 , - 3441 , - 1360 , - 3503 , - 1678 , - 4077 , - 2508 , - 1067 , - 3850 , - 2665 , - 1608 , - 679 , - 3974 , - 3301 , - 2756 , - 2339 , - 2050 , - 1889 , - 1856 , - 1951 , - 2174 , - 2525 , - 3004 , - 3611 , - 250 , - 1113 , - 2104 , - 3223 , - 374 , - 1749 , - 3252 , - 787 , - 2546 , - 337 , - 2352 , - 399 , - 2670 , - 973 , - 3500 , - 2059 , - 746 , - 3657 , - 2600 , - 1671 , - 870 , - 197 , - 3748 , - 3331 , - 3042 , - 2881 , - 2848 , - 2943 , - 3166 , - 3517 , - 3996 , - 507 , - 1242 , - 2105 , - 3096 , - 119 , - 1366 , - 2741 , - 148 , - 1779 , - 3538 , - 1329 , - 3344 , - 1391 , - 3662 , - 1965 , - 396 , - 3051 , - 1738 , - 553 , - 3592 , - 2663 , - 1862 , - 1189 , - 644 , - 227 , - 4034 , - 3873 , - 3840 , - 3935 , - 62 , - 413 , - 892 , - 1499 , - 2234 , - 3097 , - 4088 , - 1111 , - 2358 , - 3733 , - 1140 , - 2771 , - 434 , - 2321 , - 240 , - 2383 , - 558 , - 2957 , - 1388 , - 4043 , - 2730 , - 1545 , - 488 , - 3655 , - 2854 , - 2181 , - 1636 , - 1219 , - 930 , - 769 , - 736 , - 831 , - 1054 , - 1405 , - 1884 , - 2491 , - 3226 , - 4089 , - 984 , - 2103 , - 3350 , - 629 , - 2132 , - 3763 , - 1426 , - 3313 , - 1232 , - 3375 , - 1550 , - 3949 , - 2380 , - 939 , - 3722 , - 2537 , - 1480 , - 551 , - 3846 , - 3173 , - 2628 , - 2211 , - 1922 , - 1761 , - 1728 , - 1823 , - 2046 , - 2397 , - 2876 , - 3483 , - 122 , - 985 , - 1976 , - 3095 , - 246 , - 1621 , - 3124 , - 659 , - 2418 , - 209 , - 2224 , - 271 , - 2542 , - 845 , - 3372 , - 1931 , - 618 , - 3529 , - 2472 , - 1543 , - 742 , - 69 , - 3620 , - 3203 , - 2914 , - 2753 , - 2720 , - 2815 , - 3038 , - 3389 , - 3868 , - 379 , - 1114 , - 1977 , - 2968 , - 4087 , - 1238 , - 2613 , - 20 , - 1651 , - 3410 , - 1201 , - 3216 , - 1263 , - 3534 , - 1837 , - 268 , - 2923 , - 1610 , - 425 , - 3464 , - 2535 , - 1734 , - 1061 , - 516 , - 99 , - 3906 , - 3745 , - 3712 , - 3807 , - 4030 , - 285 , - 764 , - 1371 , - 2106 , - 2969 , - 3960 , - 983 , - 2230 , - 3605 , - 1012 , - 2643 , - 306 , - 2193 , - 112 , - 2255 , - 430 , - 2829 , - 1260 , - 3915 , - 2602 , - 1417 , - 360 , - 3527 , - 2726 , - 2053 , - 1508 , - 1091 , - 802 , - 641 , - 608 , - 703 , - 926 , - 1277 , - 1756 , - 2363 , - 3098 , - 3961 , - 856 , - 1975 , - 3222 , - 501 , - 2004 , - 3635 , - 1298 , - 3185 , - 1104 , - 3247 , - 1422 , - 3821 , - 2252 , - 811 , - 3594 , - 2409 , - 1352 , - 423 , - 3718 , - 3045 , - 2500 , - 2083 , - 1794 , - 1633 , - 1600 , - 1695 , - 1918 , - 2269 , - 2748 , - 3355 , - 4090 , - 857 , - 1848 , - 2967 , - 118 , - 1493 , - 2996 , - 531 , - 2290 , - 81 , - 2096 , - 143 , - 2414 , - 717 , - 3244 , - 1803 , - 490 , - 3401 , - 2344 , - 1415 , - 614 , - 4037 , - 3492 , - 3075 , - 2786 , - 2625 , - 2592 , - 2687 , - 2910 , - 3261 , - 3740 , - 251 , - 986 , - 1849 , - 2840 , - 3959 , - 1110 , - 2485 , - 3988 , - 1523 , - 3282 , - 1073 , - 3088 , - 1135 , - 3406 , - 1709 , - 140 , - 2795 , - 1482 , - 297 , - 3336 , - 2407 , - 1606 , - 933 , - 388 , - 4067 , - 3778 , - 3617 , - 3584 , - 3679 , - 3902 , - 157 , - 636 , - 1243 , - 1978 , - 2841 , - 3832 , - 855 , - 2102 , - 3477 , - 884 , - 2515 , - 178 , - 2065 , - 4080 , - 2127 , - 302 , - 2701 , - 1132 , - 3787 , - 2474 , - 1289 , - 232 , - 3399 , - 2598 , - 1925 , - 1380 , - 963 , - 674 , - 513 , - 480 , - 575 , - 798 , - 1149 , - 1628 , - 2235 , - 2970 , - 3833 , - 728 , - 1847 , - 3094 , - 373 , - 1876 , - 3507 , - 1170 , - 3057 , - 976 , - 3119 , - 1294 , - 3693 , - 2124 , - 683 , - 3466 , - 2281 , - 1224 , - 295 , - 3590 , - 2917 , - 2372 , - 1955 , - 1666 , - 1505 , - 1472 , - 1567 , - 1790 , - 2141 , - 2620 , - 3227 , - 3962 , - 729 , - 1720 , - 2839 , - 4086 , - 1365 , - 2868 , - 403 , - 2162 , - 4049 , - 1968 , - 15 , - 2286 , - 589 , - 3116 , - 1675 , - 362 , - 3273 , - 2216 , - 1287 , - 486 , - 3909 , - 3364 , - 2947 , - 2658 , - 2497 , - 2464 , - 2559 , - 2782 , - 3133 , - 3612 , - 123 , - 858 , - 1721 , - 2712 , - 3831 , - 982 , - 2357 , - 3860 , - 1395 , - 3154 , - 945 , - 2960 , - 1007 , - 3278 , - 1581 , - 12 , - 2667 , - 1354 , - 169 , - 3208 , - 2279 , - 1478 , - 805 , - 260 , - 3939 , - 3650 , - 3489 , - 3456 , - 3551 , - 3774 , - 29 , - 508 , - 1115 , - 1850 , - 2713 , - 3704 , - 727 , - 1974 , - 3349 , - 756 , - 2387 , - 50 , - 1937 , - 3952 , - 1999 , - 174 , - 2573 , - 1004 , - 3659 , - 2346 , - 1161 , - 104 , - 3271 , - 2470 , - 1797 , - 1252 , - 835 , - 546 , - 385 , - 352 , - 447 , - 670 , - 1021 , - 1500 , - 2107 , - 2842 , - 3705 , - 600 , - 1719 , - 2966 , - 245 , - 1748 , - 3379 , - 1042 , - 2929 , - 848 , - 2991 , - 1166 , - 3565 , - 1996 , - 555 , - 3338 , - 2153 , - 1096 , - 167 , - 3462 , - 2789 , - 2244 , - 1827 , - 1538 , - 1377 , - 1344 , - 1439 , - 1662 , - 2013 , - 2492 , - 3099 , - 3834 , - 601 , - 1592 , - 2711 , - 3958 , - 1237 , - 2740 , - 275 , - 2034 , - 3921 , - 1840 , - 3983 , - 2158 , - 461 , - 2988 , - 1547 , - 234 , - 3145 , - 2088 , - 1159 , - 358 , - 3781 , - 3236 , - 2819 , - 2530 , - 2369 , - 2336 , - 2431 , - 2654 , - 3005 , - 3484 , - 4091 , - 730 , - 1593 , - 2584 , - 3703 , - 854 , - 2229 , - 3732 , - 1267 , - 3026 , - 817 , - 2832 , - 879 , - 3150 , - 1453 , - 3980 , - 2539 , - 1226 , - 41 , - 3080 , - 2151 , - 1350 , - 677 , - 132 , - 3811 , - 3522 , - 3361 , - 3328 , - 3423 , - 3646 , - 3997 , - 380 , - 987 , - 1722 , - 2585 , - 3576 , - 599 , - 1846 , - 3221 , - 628 , - 2259 , - 4018 , - 1809 , - 3824 , - 1871 , - 46 , - 2445 , - 876 , - 3531 , - 2218 , - 1033 , - 4072 , - 3143 , - 2342 , - 1669 , - 1124 , - 707 , - 418 , - 257 , - 224 , - 319 , - 542 , - 893 , - 1372 , - 1979 , - 2714 , - 3577 , - 472 , - 1591 , - 2838 , - 117 , - 1620 , - 3251 , - 914 , - 2801 , - 720 , - 2863 , - 1038 , - 3437 , - 1868 , - 427 , - 3210 , - 2025 , - 968 , - 39 , - 3334 , - 2661 , - 2116 , - 1699 , - 1410 , - 1249 , - 1216 , - 1311 , - 1534 , - 1885 , - 2364 , - 2971 , - 3706 , - 473 , - 1464 , - 2583 , - 3830 , - 1109 , - 2612 , - 147 , - 1906 , - 3793 , - 1712 , - 3855 , - 2030 , - 333 , - 2860 , - 1419 , - 106 , - 3017 , - 1960 , - 1031 , - 230 , - 3653 , - 3108 , - 2691 , - 2402 , - 2241 , - 2208 , - 2303 , - 2526 , - 2877 , - 3356 , - 3963 , - 602 , - 1465 , - 2456 , - 3575 , - 726 , - 2101 , - 3604 , - 1139 , - 2898 , - 689 , - 2704 , - 751 , - 3022 , - 1325 , - 3852 , - 2411 , - 1098 , - 4009 , - 2952 , - 2023 , - 1222 , - 549 , - 4 , - 3683 , - 3394 , - 3233 , - 3200 , - 3295 , - 3518 , - 3869 , - 252 , - 859 , - 1594 , - 2457 , - 3448 , - 471 , - 1718 , - 3093 , - 500 , - 2131 , - 3890 , - 1681 , - 3696 , - 1743 , - 4014 , - 2317 , - 748 , - 3403 , - 2090 , - 905 , - 3944 , - 3015 , - 2214 , - 1541 , - 996 , - 579 , - 290 , - 129 , - 96 , - 191 , - 414 , - 765 , - 1244 , - 1851 , - 2586 , - 3449 , - 344 , - 1463 , - 2710 , - 4085 , - 1492 , - 3123 , - 786 , - 2673 , - 592 , - 2735 , - 910 , - 3309 , - 1740 , - 299 , - 3082 , - 1897 , - 840 , - 4007 , - 3206 , - 2533 , - 1988 , - 1571 , - 1282 , - 1121 , - 1088 , - 1183 , - 1406 , - 1757 , - 2236 , - 2843 , - 3578 , - 345 , - 1336 , - 2455 , - 3702 , - 981 , - 2484 , - 19 , - 1778 , - 3665 , - 1584 , - 3727 , - 1902 , - 205 , - 2732 , - 1291 , - 4074 , - 2889 , - 1832 , - 903 , - 102 , - 3525 , - 2980 , - 2563 , - 2274 , - 2113 , - 2080 , - 2175 , - 2398 , - 2749 , - 3228 , - 3835 , - 474 , - 1337 , - 2328 , - 3447 , - 598 , - 1973 , - 3476 , - 1011 , - 2770 , - 561 , - 2576 , - 623 , - 2894 , - 1197 , - 3724 , - 2283 , - 970 , - 3881 , - 2824 , - 1895 , - 1094 , - 421 , - 3972 , - 3555 , - 3266 , - 3105 , - 3072 , - 3167 , - 3390 , - 3741 , - 124 , - 731 , - 1466 , - 2329 , - 3320 , - 343 , - 1590 , - 2965 , - 372 , - 2003 , - 3762 , - 1553 , - 3568 , - 1615 , - 3886 , - 2189 , - 620 , - 3275 , - 1962 , - 777 , - 3816 , - 2887 , - 2086 , - 1413 , - 868 , - 451 , - 162 , - 1 , - 4064 , - 63 , - 286 , - 637 , - 1116 , - 1723 , - 2458 , - 3321 , - 216 , - 1335 , - 2582 , - 3957 , - 1364 , - 2995 , - 658 , - 2545 , - 464 , - 2607 , - 782 , - 3181 , - 1612 , - 171 , - 2954 , - 1769 , - 712 , - 3879 , - 3078 , - 2405 , - 1860 , - 1443 , - 1154 , - 993 , - 960 , - 1055 , - 1278 , - 1629 , - 2108 , - 2715 , - 3450 , - 217 , - 1208 , - 2327 , - 3574 , - 853 , - 2356 , - 3987 , - 1650 , - 3537 , - 1456 , - 3599 , - 1774 , - 77 , - 2604 , - 1163 , - 3946 , - 2761 , - 1704 , - 775 , - 4070 , - 3397 , - 2852 , - 2435 , - 2146 , - 1985 , - 1952 , - 2047 , - 2270 , - 2621 , - 3100 , - 3707 , - 346 , - 1209 , - 2200 , - 3319 , - 470 , - 1845 , - 3348 , - 883 , - 2642 , - 433 , - 2448 , - 495 , - 2766 , - 1069 , - 3596 , - 2155 , - 842 , - 3753 , - 2696 , - 1767 , - 966 , - 293 , - 3844 , - 3427 , - 3138 , - 2977 , - 2944 , - 3039 , - 3262 , - 3613 , - 4092 , - 603 , - 1338 , - 2201 , - 3192 , - 215 , - 1462 , - 2837 , - 244 , - 1875 , - 3634 , - 1425 , - 3440 , - 1487 , - 3758 , - 2061 , - 492 , - 3147 , - 1834 , - 649 , - 3688 , - 2759 , - 1958 , - 1285 , - 740 , - 323 , - 34 , - 3969 , - 3936 , - 4031 , - 158 , - 509 , - 988 , - 1595 , - 2330 , - 3193 , - 88 , - 1207 , - 2454 , - 3829 , - 1236 , - 2867 , - 530 , - 2417 , - 336 , - 2479 , - 654 , - 3053 , - 1484 , - 43 , - 2826 , - 1641 , - 584 , - 3751 , - 2950 , - 2277 , - 1732 , - 1315 , - 1026 , - 865 , - 832 , - 927 , - 1150 , - 1501 , - 1980 , - 2587 , - 3322 , - 89 , - 1080 , - 2199 , - 3446 , - 725 , - 2228 , - 3859 , - 1522 , - 3409 , - 1328 , - 3471 , - 1646 , - 4045 , - 2476 , - 1035 , - 3818 , - 2633 , - 1576 , - 647 , - 3942 , - 3269 , - 2724 , - 2307 , - 2018 , - 1857 , - 1824 , - 1919 , - 2142 , - 2493 , - 2972 , - 3579 , - 218 , - 1081 , - 2072 , - 3191 , - 342 , - 1717 , - 3220 , - 755 , - 2514 , - 305 , - 2320 , - 367 , - 2638 , - 941 , - 3468 , - 2027 , - 714 , - 3625 , - 2568 , - 1639 , - 838 , - 165 , - 3716 , - 3299 , - 3010 , - 2849 , - 2816 , - 2911 , - 3134 , - 3485 , - 3964 , - 475 , - 1210 , - 2073 , - 3064 , - 87 , - 1334 , - 2709 , - 116 , - 1747 , - 3506 , - 1297 , - 3312 , - 1359 , - 3630 , - 1933 , - 364 , - 3019 , - 1706 , - 521 , - 3560 , - 2631 , - 1830 , - 1157 , - 612 , - 195 , - 4002 , - 3841 , - 3808 , - 3903 , - 30 , - 381 , - 860 , - 1467 , - 2202 , - 3065 , - 4056 , - 1079 , - 2326 , - 3701 , - 1108 , - 2739 , - 402 , - 2289 , - 208 , - 2351 , - 526 , - 2925 , - 1356 , - 4011 , - 2698 , - 1513 , - 456 , - 3623 , - 2822 , - 2149 , - 1604 , - 1187 , - 898 , - 737 , - 704 , - 799 , - 1022 , - 1373 , - 1852 , - 2459 , - 3194 , - 4057 , - 952 , - 2071 , - 3318 , - 597 , - 2100 , - 3731 , - 1394 , - 3281 , - 1200 , - 3343 , - 1518 , - 3917 , - 2348 , - 907 , - 3690 , - 2505 , - 1448 , - 519 , - 3814 , - 3141 , - 2596 , - 2179 , - 1890 , - 1729 , - 1696 , - 1791 , - 2014 , - 2365 , - 2844 , - 3451 , - 90 , - 953 , - 1944 , - 3063 , - 214 , - 1589 , - 3092 , - 627 , - 2386 , - 177 , - 2192 , - 239 , - 2510 , - 813 , - 3340 , - 1899 , - 586 , - 3497 , - 2440 , - 1511 , - 710 , - 37 , - 3588 , - 3171 , - 2882 , - 2721 , - 2688 , - 2783 , - 3006 , - 3357 , - 3836 , - 347 , - 1082 , - 1945 , - 2936 , - 4055 , - 1206 , - 2581 , - 4084 , - 1619 , - 3378 , - 1169 , - 3184 , - 1231 , - 3502 , - 1805 , - 236 , - 2891 , - 1578 , - 393 , - 3432 , - 2503 , - 1702 , - 1029 , - 484 , - 67 , - 3874 , - 3713 , - 3680 , - 3775 , - 3998 , - 253 , - 732 , - 1339 , - 2074 , - 2937 , - 3928 , - 951 , - 2198 , - 3573 , - 980 , - 2611 , - 274 , - 2161 , - 80 , - 2223 , - 398 , - 2797 , - 1228 , - 3883 , - 2570 , - 1385 , - 328 , - 3495 , - 2694 , - 2021 , - 1476 , - 1059 , - 770 , - 609 , - 576 , - 671 , - 894 , - 1245 , - 1724 , - 2331 , - 3066 , - 3929 , - 824 , - 1943 , - 3190 , - 469 , - 1972 , - 3603 , - 1266 , - 3153 , - 1072 , - 3215 , - 1390 , - 3789 , - 2220 , - 779 , - 3562 , - 2377 , - 1320 , - 391 , - 3686 , - 3013 , - 2468 , - 2051 , - 1762 , - 1601 , - 1568 , - 1663 , - 1886 , - 2237 , - 2716 , - 3323 , - 4058 , - 825 , - 1816 , - 2935 , - 86 , - 1461 , - 2964 , - 499 , - 2258 , - 49 , - 2064 , - 111 , - 2382 , - 685 , - 3212 , - 1771 , - 458 , - 3369 , - 2312 , - 1383 , - 582 , - 4005 , - 3460 , - 3043 , - 2754 , - 2593 , - 2560 , - 2655 , - 2878 , - 3229 , - 3708 , - 219 , - 954 , - 1817 , - 2808 , - 3927 , - 1078 , - 2453 , - 3956 , - 1491 , - 3250 , - 1041 , - 3056 , - 1103 , - 3374 , - 1677 , - 108 , - 2763 , - 1450 , - 265 , - 3304 , - 2375 , - 1574 , - 901 , - 356 , - 4035 , - 3746 , - 3585 , - 3552 , - 3647 , - 3870 , - 125 , - 604 , - 1211 , - 1946 , - 2809 , - 3800 , - 823 , - 2070 , - 3445 , - 852 , - 2483 , - 146 , - 2033 , - 4048 , - 2095 , - 270 , - 2669 , - 1100 , - 3755 , - 2442 , - 1257 , - 200 , - 3367 , - 2566 , - 1893 , - 1348 , - 931 , - 642 , - 481 , - 448 , - 543 , - 766 , - 1117 , - 1596 , - 2203 , - 2938 , - 3801 , - 696 , - 1815 , - 3062 , - 341 , - 1844 , - 3475 , - 1138 , - 3025 , - 944 , - 3087 , - 1262 , - 3661 , - 2092 , - 651 , - 3434 , - 2249 , - 1192 , - 263 , - 3558 , - 2885 , - 2340 , - 1923 , - 1634 , - 1473 , - 1440 , - 1535 , - 1758 , - 2109 , - 2588 , - 3195 , - 3930 , - 697 , - 1688 , - 2807 , - 4054 , - 1333 , - 2836 , - 371 , - 2130 , - 4017 , - 1936 , - 4079 , - 2254 , - 557 , - 3084 , - 1643 , - 330 , - 3241 , - 2184 , - 1255 , - 454 , - 3877 , - 3332 , - 2915 , - 2626 , - 2465 , - 2432 , - 2527 , - 2750 , - 3101 , - 3580 , - 91 , - 826 , - 1689 , - 2680 , - 3799 , - 950 , - 2325 , - 3828 , - 1363 , - 3122 , - 913 , - 2928 , - 975 , - 3246 , - 1549 , - 4076 , - 2635 , - 1322 , - 137 , - 3176 , - 2247 , - 1446 , - 773 , - 228 , - 3907 , - 3618 , - 3457 , - 3424 , - 3519 , - 3742 , - 4093 , - 476 , - 1083 , - 1818 , - 2681 , - 3672 , - 695 , - 1942 , - 3317 , - 724 , - 2355 , - 18 , - 1905 , - 3920 , - 1967 , - 142 , - 2541 , - 972 , - 3627 , - 2314 , - 1129 , - 72 , - 3239 , - 2438 , - 1765 , - 1220 , - 803 , - 514 , - 353 , - 320 , - 415 , - 638 , - 989 , - 1468 , - 2075 , - 2810 , - 3673 , - 568 , - 1687 , - 2934 , - 213 , - 1716 , - 3347 , - 1010 , - 2897 , - 816 , - 2959 , - 1134 , - 3533 , - 1964 , - 523 , - 3306 , - 2121 , - 1064 , - 135 , - 3430 , - 2757 , - 2212 , - 1795 , - 1506 , - 1345 , - 1312 , - 1407 , - 1630 , - 1981 , - 2460 , - 3067 , - 3802 , - 569 , - 1560 , - 2679 , - 3926 , - 1205 , - 2708 , - 243 , - 2002 , - 3889 , - 1808 , - 3951 , - 2126 , - 429 , - 2956 , - 1515 , - 202 , - 3113 , - 2056 , - 1127 , - 326 , - 3749 , - 3204 , - 2787 , - 2498 , - 2337 , - 2304 , - 2399 , - 2622 , - 2973 , - 3452 , - 4059 , - 698 , - 1561 , - 2552 , - 3671 , - 822 , - 2197 , - 3700 , - 1235 , - 2994 , - 785 , - 2800 , - 847 , - 3118 , - 1421 , - 3948 , - 2507 , - 1194 , - 9 , - 3048 , - 2119 , - 1318 , - 645 , - 100 , - 3779 , - 3490 , - 3329 , - 3296 , - 3391 , - 3614 , - 3965 , - 348 , - 955 , - 1690 , - 2553 , - 3544 , - 567 , - 1814 , - 3189 , - 596 , - 2227 , - 3986 , - 1777 , - 3792 , - 1839 , - 14 , - 2413 , - 844 , - 3499 , - 2186 , - 1001 , - 4040 , - 3111 , - 2310 , - 1637 , - 1092 , - 675 , - 386 , - 225 , - 192 , - 287 , - 510 , - 861 , - 1340 , - 1947 , - 2682 , - 3545 , - 440 , - 1559 , - 2806 , - 85 , - 1588 , - 3219 , - 882 , - 2769 , - 688 , - 2831 , - 1006 , - 3405 , - 1836 , - 395 , - 3178 , - 1993 , - 936 , - 7 , - 3302 , - 2629 , - 2084 , - 1667 , - 1378 , - 1217 , - 1184 , - 1279 , - 1502 , - 1853 , - 2332 , - 2939 , - 3674 , - 441 , - 1432 , - 2551 , - 3798 , - 1077 , - 2580 , - 115 , - 1874 , - 3761 , - 1680 , - 3823 , - 1998 , - 301 , - 2828 , - 1387 , - 74 , - 2985 , - 1928 , - 999 , - 198 , - 3621 , - 3076 , - 2659 , - 2370 , - 2209 , - 2176 , - 2271 , - 2494 , - 2845 , - 3324 , - 3931 , - 570 , - 1433 , - 2424 , - 3543 , - 694 , - 2069 , - 3572 , - 1107 , - 2866 , - 657 , - 2672 , - 719 , - 2990 , - 1293 , - 3820 , - 2379 , - 1066 , - 3977 , - 2920 , - 1991 , - 1190 , - 517 , - 4068 , - 3651 , - 3362 , - 3201 , - 3168 , - 3263 , - 3486 , - 3837 , - 220 , - 827 , - 1562 , - 2425 , - 3416 , - 439 , - 1686 , - 3061 , - 468 , - 2099 , - 3858 , - 1649 , - 3664 , - 1711 , - 3982 , - 2285 , - 716 , - 3371 , - 2058 , - 873 , - 3912 , - 2983 , - 2182 , - 1509 , - 964 , - 547 , - 258 , - 97 , - 64 , - 159 , - 382 , - 733 , - 1212 , - 1819 , - 2554 , - 3417 , - 312 , - 1431 , - 2678 , - 4053 , - 1460 , - 3091 , - 754 , - 2641 , - 560 , - 2703 , - 878 , - 3277 , - 1708 , - 267 , - 3050 , - 1865 , - 808 , - 3975 , - 3174 , - 2501 , - 1956 , - 1539 , - 1250 , - 1089 , - 1056 , - 1151 , - 1374 , - 1725 , - 2204 , - 2811 , - 3546 , - 313 , - 1304 , - 2423 , - 3670 , - 949 , - 2452 , - 4083 , - 1746 , - 3633 , - 1552 , - 3695 , - 1870 , - 173 , - 2700 , - 1259 , - 4042 , - 2857 , - 1800 , - 871 , - 70 , - 3493 , - 2948 , - 2531 , - 2242 , - 2081 , - 2048 , - 2143 , - 2366 , - 2717 , - 3196 , - 3803 , - 442 , - 1305 , - 2296 , - 3415 , - 566 , - 1941 , - 3444 , - 979 , - 2738 , - 529 , - 2544 , - 591 , - 2862 , - 1165 , - 3692 , - 2251 , - 938 , - 3849 , - 2792 , - 1863 , - 1062 , - 389 , - 3940 , - 3523 , - 3234 , - 3073 , - 3040 , - 3135 , - 3358 , - 3709 , - 92 , - 699 , - 1434 , - 2297 , - 3288 , - 311 , - 1558 , - 2933 , - 340 , - 1971 , - 3730 , - 1521 , - 3536 , - 1583 , - 3854 , - 2157 , - 588 , - 3243 , - 1930 , - 745 , - 3784 , - 2855 , - 2054 , - 1381 , - 836 , - 419 , - 130 , - 4065 , - 4032 , - 31 , - 254 , - 605 , - 1084 , - 1691 , - 2426 , - 3289 , - 184 , - 1303 , - 2550 , - 3925 , - 1332 , - 2963 , - 626 , - 2513 , - 432 , - 2575 , - 750 , - 3149 , - 1580 , - 139 , - 2922 , - 1737 , - 680 , - 3847 , - 3046 , - 2373 , - 1828 , - 1411 , - 1122 , - 961 , - 928 , - 1023 , - 1246 , - 1597 , - 2076 , - 2683 , - 3418 , - 185 , - 1176 , - 2295 , - 3542 , - 821 , - 2324 , - 3955 , - 1618 , - 3505 , - 1424 , - 3567 , - 1742 , - 45 , - 2572 , - 1131 , - 3914 , - 2729 , - 1672 , - 743 , - 4038 , - 3365 , - 2820 , - 2403 , - 2114 , - 1953 , - 1920 , - 2015 , - 2238 , - 2589 , - 3068 , - 3675 , - 314 , - 1177 , - 2168 , - 3287 , - 438 , - 1813 , - 3316 , - 851 , - 2610 , - 401 , - 2416 , - 463 , - 2734 , - 1037 , - 3564 , - 2123 , - 810 , - 3721 , - 2664 , - 1735 , - 934 , - 261 , - 3812 , - 3395 , - 3106 , - 2945 , - 2912 , - 3007 , - 3230 , - 3581 , - 4060 , - 571 , - 1306 , - 2169 , - 3160 , - 183 , - 1430 , - 2805 , - 212 , - 1843 , - 3602 , - 1393 , - 3408 , - 1455 , - 3726 , - 2029 , - 460 , - 3115 , - 1802 , - 617 , - 3656 , - 2727 , - 1926 , - 1253 , - 708 , - 291 , - 2 , - 3937 , - 3904 , - 3999 , - 126 , - 477 , - 956 , - 1563 , - 2298 , - 3161 , - 56 , - 1175 , - 2422 , - 3797 , - 1204 , - 2835 , - 498 , - 2385 , - 304 , - 2447 , - 622 , - 3021 , - 1452 , - 11 , - 2794 , - 1609 , - 552 , - 3719 , - 2918 , - 2245 , - 1700 , - 1283 , - 994 , - 833 , - 800 , - 895 , - 1118 , - 1469 , - 1948 , - 2555 , - 3290 , - 57 , - 1048 , - 2167 , - 3414 , - 693 , - 2196 , - 3827 , - 1490 , - 3377 , - 1296 , - 3439 , - 1614 , - 4013 , - 2444 , - 1003 , - 3786 , - 2601 , - 1544 , - 615 , - 3910 , - 3237 , - 2692 , - 2275 , - 1986 , - 1825 , - 1792 , - 1887 , - 2110 , - 2461 , - 2940 , - 3547 , - 186 , - 1049 , - 2040 , - 3159 , - 310 , - 1685 , - 3188 , - 723 , - 2482 , - 273 , - 2288 , - 335 , - 2606 , - 909 , - 3436 , - 1995 , - 682 , - 3593 , - 2536 , - 1607 , - 806 , - 133 , - 3684 , - 3267 , - 2978 , - 2817 , - 2784 , - 2879 , - 3102 , - 3453 , - 3932 , - 443 , - 1178 , - 2041 , - 3032 , - 55 , - 1302 , - 2677 , - 84 , - 1715 , - 3474 , - 1265 , - 3280 , - 1327 , - 3598 , - 1901 , - 332 , - 2987 , - 1674 , - 489 , - 3528 , - 2599 , - 1798 , - 1125 , - 580 , - 163 , - 3970 , - 3809 , - 3776 , - 3871 , - 4094 , - 349 , - 828 , - 1435 , - 2170 , - 3033 , - 4024 , - 1047 , - 2294 , - 3669 , - 1076 , - 2707 , - 370 , - 2257 , - 176 , - 2319 , - 494 , - 2893 , - 1324 , - 3979 , - 2666 , - 1481 , - 424 , - 3591 , - 2790 , - 2117 , - 1572 , - 1155 , - 866 , - 705 , - 672 , - 767 , - 990 , - 1341 , - 1820 , - 2427 , - 3162 , - 4025 , - 920 , - 2039 , - 3286 , - 565 , - 2068 , - 3699 , - 1362 , - 3249 , - 1168 , - 3311 , - 1486 , - 3885 , - 2316 , - 875 , - 3658 , - 2473 , - 1416 , - 487 , - 3782 , - 3109 , - 2564 , - 2147 , - 1858 , - 1697 , - 1664 , - 1759 , - 1982 , - 2333 , - 2812 , - 3419 , - 58 , - 921 , - 1912 , - 3031 , - 182 , - 1557 , - 3060 , - 595 , - 2354 , - 145 , - 2160 , - 207 , - 2478 , - 781 , - 3308 , - 1867 , - 554 , - 3465 , - 2408 , - 1479 , - 678 , - 5 , - 3556 , - 3139 , - 2850 , - 2689 , - 2656 , - 2751 , - 2974 , - 3325 , - 3804 , - 315 , - 1050 , - 1913 , - 2904 , - 4023 , - 1174 , - 2549 , - 4052 , - 1587 , - 3346 , - 1137 , - 3152 , - 1199 , - 3470 , - 1773 , - 204 , - 2859 , - 1546 , - 361 , - 3400 , - 2471 , - 1670 , - 997 , - 452 , - 35 , - 3842 , - 3681 , - 3648 , - 3743 , - 3966 , - 221 , - 700 , - 1307 , - 2042 , - 2905 , - 3896 , - 919 , - 2166 , - 3541 , - 948 , - 2579 , - 242 , - 2129 , - 48 , - 2191 , - 366 , - 2765 , - 1196 , - 3851 , - 2538 , - 1353 , - 296 , - 3463 , - 2662 , - 1989 , - 1444 , - 1027 , - 738 , - 577 , - 544 , - 639 , - 862 , - 1213 , - 1692 , - 2299 , - 3034 , - 3897 , - 792 , - 1911 , - 3158 , - 437 , - 1940 , - 3571 , - 1234 , - 3121 , - 1040 , - 3183 , - 1358 , - 3757 , - 2188 , - 747 , - 3530 , - 2345 , - 1288 , - 359 , - 3654 , - 2981 , - 2436 , - 2019 , - 1730 , - 1569 , - 1536 , - 1631 , - 1854 , - 2205 , - 2684 , - 3291 , - 4026 , - 793 , - 1784 , - 2903 , - 54 , - 1429 , - 2932 , - 467 , - 2226 , - 17 , - 2032 , - 79 , - 2350 , - 653 , - 3180 , - 1739 , - 426 , - 3337 , - 2280 , - 1351 , - 550 , - 3973 , - 3428 , - 3011 , - 2722 , - 2561 , - 2528 , - 2623 , - 2846 , - 3197 , - 3676 , - 187 , - 922 , - 1785 , - 2776 , - 3895 , - 1046 , - 2421 , - 3924 , - 1459 , - 3218 , - 1009 , - 3024 , - 1071 , - 3342 , - 1645 , - 76 , - 2731 , - 1418 , - 233 , - 3272 , - 2343 , - 1542 , - 869 , - 324 , - 4003 , - 3714 , - 3553 , - 3520 , - 3615 , - 3838 , - 93 , - 572 , - 1179 , - 1914 , - 2777 , - 3768 , - 791 , - 2038 , - 3413 , - 820 , - 2451 , - 114 , - 2001 , - 4016 , - 2063 , - 238 , - 2637 , - 1068 , - 3723 , - 2410 , - 1225 , - 168 , - 3335 , - 2534 , - 1861 , - 1316 , - 899 , - 610 , - 449 , - 416 , - 511 , - 734 , - 1085 , - 1564 , - 2171 , - 2906 , - 3769 , - 664 , - 1783 , - 3030 , - 309 , - 1812 , - 3443 , - 1106 , - 2993 , - 912 , - 3055 , - 1230 , - 3629 , - 2060 , - 619 , - 3402 , - 2217 , - 1160 , - 231 , - 3526 , - 2853 , - 2308 , - 1891 , - 1602 , - 1441 , - 1408 , - 1503 , - 1726 , - 2077 , - 2556 , - 3163 , - 3898 , - 665 , - 1656 , - 2775 , - 4022 , - 1301 , - 2804 , - 339 , - 2098 , - 3985 , - 1904 , - 4047 , - 2222 , - 525 , - 3052 , - 1611 , - 298 , - 3209 , - 2152 , - 1223 , - 422 , - 3845 , - 3300 , - 2883 , - 2594 , - 2433 , - 2400 , - 2495 , - 2718 , - 3069 , - 3548 , - 59 , - 794 , - 1657 , - 2648 , - 3767 , - 918 , - 2293 , - 3796 , - 1331 , - 3090 , - 881 , - 2896 , - 943 , - 3214 , - 1517 , - 4044 , - 2603 , - 1290 , - 105 , - 3144 , - 2215 , - 1414 , - 741 , - 196 , - 3875 , - 3586 , - 3425 , - 3392 , - 3487 , - 3710 , - 4061 , - 444 , - 1051 , - 1786 , - 2649 , - 3640 , - 663 , - 1910 , - 3285 , - 692 , - 2323 , - 4082 , - 1873 , - 3888 , - 1935 , - 110 , - 2509 , - 940 , - 3595 , - 2282 , - 1097 , - 40 , - 3207 , - 2406 , - 1733 , - 1188 , - 771 , - 482 , - 321 , - 288 , - 383 , - 606 , - 957 , - 1436 , - 2043 , - 2778 , - 3641 , - 536 , - 1655 , - 2902 , - 181 , - 1684 , - 3315 , - 978 , - 2865 , - 784 , - 2927 , - 1102 , - 3501 , - 1932 , - 491 , - 3274 , - 2089 , - 1032 , - 103 , - 3398 , - 2725 , - 2180 , - 1763 , - 1474 , - 1313 , - 1280 , - 1375 , - 1598 , - 1949 , - 2428 , - 3035 , - 3770 , - 537 , - 1528 , - 2647 , - 3894 , - 1173 , - 2676 , - 211 , - 1970 , - 3857 , - 1776 , - 3919 , - 2094 , - 397 , - 2924 , - 1483 , - 170 , - 3081 , - 2024 , - 1095 , - 294 , - 3717 , - 3172 , - 2755 , - 2466 , - 2305 , - 2272 , - 2367 , - 2590 , - 2941 , - 3420 , - 4027 , - 666 , - 1529 , - 2520 , - 3639 , - 790 , - 2165 , - 3668 , - 1203 , - 2962 , - 753 , - 2768 , - 815 , - 3086 , - 1389 , - 3916 , - 2475 , - 1162 , - 4073 , - 3016 , - 2087 , - 1286 , - 613 , - 68 , - 3747 , - 3458 , - 3297 , - 3264 , - 3359 , - 3582 , - 3933 , - 316 , - 923 , - 1658 , - 2521 , - 3512 , - 535 , - 1782 , - 3157 , - 564 , - 2195 , - 3954 , - 1745 , - 3760 , - 1807 , - 4078 , - 2381 , - 812 , - 3467 , - 2154 , - 969 , - 4008 , - 3079 , - 2278 , - 1605 , - 1060 , - 643 , - 354 , - 193 , - 160 , - 255 , - 478 , - 829 , - 1308 , - 1915 , - 2650 , - 3513 , - 408 , - 1527 , - 2774 , - 53 , - 1556 , - 3187 , - 850 , - 2737 , - 656 , - 2799 , - 974 , - 3373 , - 1804 , - 363 , - 3146 , - 1961 , - 904 , - 4071 , - 3270 , - 2597 , - 2052 , - 1635 , - 1346 , - 1185 , - 1152 , - 1247 , - 1470 , - 1821 , - 2300 , - 2907 , - 3642 , - 409 , - 1400 , - 2519 , - 3766 , - 1045 , - 2548 , - 83 , - 1842 , - 3729 , - 1648 , - 3791 , - 1966 , - 269 , - 2796 , - 1355 , - 42 , - 2953 , - 1896 , - 967 , - 166 , - 3589 , - 3044 , - 2627 , - 2338 , - 2177 , - 2144 , - 2239 , - 2462 , - 2813 , - 3292 , - 3899 , - 538 , - 1401 , - 2392 , - 3511 , - 662 , - 2037 , - 3540 , - 1075 , - 2834 , - 625 , - 2640 , - 687 , - 2958 , - 1261 , - 3788 , - 2347 , - 1034 , - 3945 , - 2888 , - 1959 , - 1158 , - 485 , - 4036 , - 3619 , - 3330 , - 3169 , - 3136 , - 3231 , - 3454 , - 3805 , - 188 , - 795 , - 1530 , - 2393 , - 3384 , - 407 , - 1654 , - 3029 , - 436 , - 2067 , - 3826 , - 1617 , - 3632 , - 1679 , - 3950 , - 2253 , - 684 , - 3339 , - 2026 , - 841 , - 3880 , - 2951 , - 2150 , - 1477 , - 932 , - 515 , - 226 , - 65 , - 32 , - 127 , - 350 , - 701 , - 1180 , - 1787 , - 2522 , - 3385 , - 280 , - 1399 , - 2646 , - 4021 , - 1428 , - 3059 , - 722 , - 2609 , - 528 , - 2671 , - 846 , - 3245 , - 1676 , - 235 , - 3018 , - 1833 , - 776 , - 3943 , - 3142 , - 2469 , - 1924 , - 1507 , - 1218 , - 1057 , - 1024 , - 1119 , - 1342 , - 1693 , - 2172 , - 2779 , - 3514 , - 281 , - 1272 , - 2391 , - 3638 , - 917 , - 2420 , - 4051 , - 1714 , - 3601 , - 1520 , - 3663 , - 1838 , - 141 , - 2668 , - 1227 , - 4010 , - 2825 , - 1768 , - 839 , - 38 , - 3461 , - 2916 , - 2499 , - 2210 , - 2049 , - 2016 , - 2111 , - 2334 , - 2685 , - 3164 , - 3771 , - 410 , - 1273 , - 2264 , - 3383 , - 534 , - 1909 , - 3412 , - 947 , - 2706 , - 497 , - 2512 , - 559 , - 2830 , - 1133 , - 3660 , - 2219 , - 906 , - 3817 , - 2760 , - 1831 , - 1030 , - 357 , - 3908 , - 3491 , - 3202 , - 3041 , - 3008 , - 3103 , - 3326 , - 3677 , - 60 , - 667 , - 1402 , - 2265 , - 3256 , - 279 , - 1526 , - 2901 , - 308 , - 1939 , - 3698 , - 1489 , - 3504 , - 1551 , - 3822 , - 2125 , - 556 , - 3211 , - 1898 , - 713 , - 3752 , - 2823 , - 2022 , - 1349 , - 804 , - 387 , - 98 , - 4033 , - 4000 , - 4095 , - 222 , - 573 , - 1052 , - 1659 , - 2394 , - 3257 , - 152 , - 1271 , - 2518 , - 3893 , - 1300 , - 2931 , - 594 , - 2481 , - 400 , - 2543 , - 718 , - 3117 , - 1548 , - 107 , - 2890 , - 1705 , - 648 , - 3815 , - 3014 , - 2341 , - 1796 , - 1379 , - 1090 , - 929 , - 896 , - 991 , - 1214 , - 1565 , - 2044 , - 2651 , - 3386 , - 153 , - 1144 , - 2263 , - 3510 , - 789 , - 2292 , - 3923 , - 1586 , - 3473 , - 1392 , - 3535 , - 1710 , - 13 , - 2540 , - 1099 , - 3882 , - 2697 , - 1640 , - 711 , - 4006 , - 3333 , - 2788 , - 2371 , - 2082 , - 1921 , - 1888 , - 1983 , - 2206 , - 2557 , - 3036 , - 3643 , - 282 , - 1145 , - 2136 , - 3255 , - 406 , - 1781 , - 3284 , - 819 , - 2578 , - 369 , - 2384 , - 431 , - 2702 , - 1005 , - 3532 , - 2091 , - 778 , - 3689 , - 2632 , - 1703 , - 902 , - 229 , - 3780 , - 3363 , - 3074 , - 2913 , - 2880 , - 2975 , - 3198 , - 3549 , - 4028 , - 539 , - 1274 , - 2137 , - 3128 , - 151 , - 1398 , - 2773 , - 180 , - 1811 , - 3570 , - 1361 , - 3376 , - 1423 , - 3694 , - 1997 , - 428 , - 3083 , - 1770 , - 585 , - 3624 , - 2695 , - 1894 , - 1221 , - 676 , - 259 , - 4066 , - 3905 , - 3872 , - 3967 , - 94 , - 445 , - 924 , - 1531 , - 2266 , - 3129 , - 24 , - 1143 , - 2390 , - 3765 , - 1172 , - 2803 , - 466 , - 2353 , - 272 , - 2415 , - 590 , - 2989 , - 1420 , - 4075 , - 2762 , - 1577 , - 520 , - 3687 , - 2886 , - 2213 , - 1668 , - 1251 , - 962 , - 801 , - 768 , - 863 , - 1086 , - 1437 , - 1916 , - 2523 , - 3258 , - 25 , - 1016 , - 2135 , - 3382 , - 661 , - 2164 , - 3795 , - 1458 , - 3345 , - 1264 , - 3407 , - 1582 , - 3981 , - 2412 , - 971 , - 3754 , - 2569 , - 1512 , - 583 , - 3878 , - 3205 , - 2660 , - 2243 , - 1954 , - 1793 , - 1760 , - 1855 , - 2078 , - 2429 , - 2908 , - 3515 , - 154 , - 1017 , - 2008 , - 3127 , - 278 , - 1653 , - 3156 , - 691 , - 2450 , - 241 , - 2256 , - 303 , - 2574 , - 877 , - 3404 , - 1963 , - 650 , - 3561 , - 2504 , - 1575 , - 774 , - 101 , - 3652 , - 3235 , - 2946 , - 2785 , - 2752 , - 2847 , - 3070 , - 3421 , - 3900 , - 411 , - 1146 , - 2009 , - 3000 , - 23 , - 1270 , - 2645 , - 52 , - 1683 , - 3442 , - 1233 , - 3248 , - 1295 , - 3566 , - 1869 , - 300 , - 2955 , - 1642 , - 457 , - 3496 , - 2567 , - 1766 , - 1093 , - 548 , - 131 , - 3938 , - 3777 , - 3744 , - 3839 , - 4062 , - 317 , - 796 , - 1403 , - 2138 , - 3001 , - 3992 , - 1015 , - 2262 , - 3637 , - 1044 , - 2675 , - 338 , - 2225 , - 144 , - 2287 , - 462 , - 2861 , - 1292 , - 3947 , - 2634 , - 1449 , - 392 , - 3559 , - 2758 , - 2085 , - 1540 , - 1123 , - 834 , - 673 , - 640 , - 735 , - 958 , - 1309 , - 1788 , - 2395 , - 3130 , - 3993 , - 888 , - 2007 , - 3254 , - 533 , - 2036 , - 3667 , - 1330 , - 3217 , - 1136 , - 3279 , - 1454 , - 3853 , - 2284 , - 843 , - 3626 , - 2441 , - 1384 , - 455 , - 3750 , - 3077 , - 2532 , - 2115 , - 1826 , - 1665 , - 1632 , - 1727 , - 1950 , - 2301 , - 2780 , - 3387 , - 26 , - 889 , - 1880 , - 2999 , - 150 , - 1525 , - 3028 , - 563 , - 2322 , - 113 , - 2128 , - 175 , - 2446 , - 749 , - 3276 , - 1835 , - 522 , - 3433 , - 2376 , - 1447 , - 646 , - 4069 , - 3524 , - 3107 , - 2818 , - 2657 , - 2624 , - 2719 , - 2942 , - 3293 , - 3772 , - 283 , - 1018 , - 1881 , - 2872 , - 3991 , - 1142 , - 2517 , - 4020 , - 1555 , - 3314 , - 1105 , - 3120 , - 1167 , - 3438 , - 1741 , - 172 , - 2827 , - 1514 , - 329 , - 3368 , - 2439 , - 1638 , - 965 , - 420 , - 3 , - 3810 , - 3649 , - 3616 , - 3711 , - 3934 , - 189 , - 668 , - 1275 , - 2010 , - 2873 , - 3864 , - 887 , - 2134 , - 3509 , - 916 , - 2547 , - 210 , - 2097 , - 16 , - 2159 , - 334 , - 2733 , - 1164 , - 3819 , - 2506 , - 1321 , - 264 , - 3431 , - 2630 , - 1957 , - 1412 , - 995 , - 706 , - 545 , - 512 , - 607 , - 830 , - 1181 , - 1660 , - 2267 , - 3002 , - 3865 , - 760 , - 1879 , - 3126 , - 405 , - 1908 , - 3539 , - 1202 , - 3089 , - 1008 , - 3151 , - 1326 , - 3725 , - 2156 , - 715 , - 3498 , - 2313 , - 1256 , - 327 , - 3622 , - 2949 , - 2404 , - 1987 , - 1698 , - 1537 , - 1504 , - 1599 , - 1822 , - 2173 , - 2652 , - 3259 , - 3994 , - 761 , - 1752 , - 2871 , - 22 , - 1397 , - 2900 , - 435 , - 2194 , - 4081 , - 2000 , - 47 , - 2318 , - 621 , - 3148 , - 1707 , - 394 , - 3305 , - 2248 , - 1319 , - 518 , - 3941 , - 3396 , - 2979 , - 2690 , - 2529 , - 2496 , - 2591 , - 2814 , - 3165 , - 3644 , - 155 , - 890 , - 1753 , - 2744 , - 3863 , - 1014 , - 2389 , - 3892 , - 1427 , - 3186 , - 977 , - 2992 , - 1039 , - 3310 , - 1613 , - 44 , - 2699 , - 1386 , - 201 , - 3240 , - 2311 , - 1510 , - 837 , - 292 , - 3971 , - 3682 , - 3521 , - 3488 , - 3583 , - 3806 , - 61 , - 540 , - 1147 , - 1882 , - 2745 , - 3736 , - 759 , - 2006 , - 3381 , - 788 , - 2419 , - 82 , - 1969 , - 3984 , - 2031 , - 206 , - 2605 , - 1036 , - 3691 , - 2378 , - 1193 , - 136 , - 3303 , - 2502 , - 1829 , - 1284 , - 867 , - 578 , - 417 , - 384 , - 479 , - 702 , - 1053 , - 1532 , - 2139 , - 2874 , - 3737 , - 632 , - 1751 , - 2998 , - 277 , - 1780 , - 3411 , - 1074 , - 2961 , - 880 , - 3023 , - 1198 , - 3597 , - 2028 , - 587 , - 3370 , - 2185 , - 1128 , - 199 , - 3494 , - 2821 , - 2276 , - 1859 , - 1570 , - 1409 , - 1376 , - 1471 , - 1694 , - 2045 , - 2524 , - 3131 , - 3866 , - 633 , - 1624 , - 2743 , - 3990 , - 1269 , - 2772 , - 307 , - 2066 , - 3953 , - 1872 , - 4015 , - 2190 , - 493 , - 3020 , - 1579 , - 266 , - 3177 , - 2120 , - 1191 , - 390 , - 3813 , - 3268 , - 2851 , - 2562 , - 2401 , - 2368 , - 2463 , - 2686 , - 3037 , - 3516 , - 27 , - 762 , - 1625 , - 2616 , - 3735 , - 886 , - 2261 , - 3764 , - 1299 , - 3058 , - 849 , - 2864 , - 911 , - 3182 , - 1485 , - 4012 , - 2571 , - 1258 , - 73 , - 3112 , - 2183 , - 1382 , - 709 , - 164 , - 3843 , - 3554 , - 3393 , - 3360 , - 3455 , - 3678 , - 4029 , - 412 , - 1019 , - 1754 , - 2617 , - 3608 , - 631 , - 1878 , - 3253 , - 660 , - 2291 , - 4050 , - 1841 , - 3856 , - 1903 , - 78 , - 2477 , - 908 , - 3563 , - 2250 , - 1065 , - 8 , - 3175 , - 2374 , - 1701 , - 1156 , - 739 , - 450 , - 289 , - 256 , - 351 , - 574 , - 925 , - 1404 , - 2011 , - 2746 , - 3609 , - 504 , - 1623 , - 2870 , - 149 , - 1652 , - 3283 , - 946 , - 2833 , - 752 , - 2895 , - 1070 , - 3469 , - 1900 , - 459 , - 3242 , - 2057 , - 1000 , - 71 , - 3366 , - 2693 , - 2148 , - 1731 , - 1442 , - 1281 , - 1248 , - 1343 , - 1566 , - 1917 , - 2396 , - 3003 , - 3738 , - 505 , - 1496 , - 2615 , - 3862 , - 1141 , - 2644 , - 179 , - 1938 , - 3825 , - 1744 , - 3887 , - 2062 , - 365 , - 2892 , - 1451 , - 138 , - 3049 , - 1992 , - 1063 , - 262 , - 3685 , - 3140 , - 2723 , - 2434 , - 2273 , - 2240 , - 2335 , - 2558 , - 2909 , - 3388 , - 3995 , - 634 , - 1497 , - 2488 , - 3607 , - 758 , - 2133 , - 3636 , - 1171 , - 2930 , - 721 , - 2736 , - 783 , - 3054 , - 1357 , - 3884 , - 2443 , - 1130 , - 4041 , - 2984 , - 2055 , - 1254 , - 581 , - 36 , - 3715 , - 3426 , - 3265 , - 3232 , - 3327 , - 3550 , - 3901 , - 284 , - 891 , - 1626 , - 2489 , - 3480 , - 503 , - 1750 , - 3125 , - 532 , - 2163 , - 3922 , - 1713 , - 3728 , - 1775 , - 4046 , - 2349 , - 780 , - 3435 , - 2122 , - 937 , - 3976 , - 3047 , - 2246 , - 1573 , - 1028 , - 611 , - 322 , - 161 , - 128 , - 223 , - 446 , - 797 , - 1276 , - 1883 , - 2618 , - 3481 , - 376 , - 1495 , - 2742 , - 21 , - 1524 , - 3155 , - 818 , - 2705 , - 624 , - 2767 , - 942 , - 3341 , - 1772 , - 331 , - 3114 , - 1929 , - 872 , - 4039 , - 3238 , - 2565 , - 2020 , - 1603 , - 1314 , - 1153 , - 1120 , - 1215 , - 1438 , - 1789 , - 2268 , - 2875 , - 3610 , - 377 , - 1368 , - 2487 , - 3734 , - 1013 , - 2516 , - 51 , - 1810 , - 3697 , - 1616 , - 3759 , - 1934 , - 237 , - 2764 , - 1323 , - 10 , - 2921 , - 1864 , - 935 , - 134 , - 3557 , - 3012 , - 2595 , - 2306 , - 2145 , - 2112 , - 2207 , - 2430 , - 2781 , - 3260 , - 3867 , - 506 , - 1369 , - 2360 , - 3479 , - 630 , - 2005 , - 3508 , - 1043 , - 2802 , - 593 , - 2608 , - 655 , - 2926 , - 1229 , - 3756 , - 2315 , - 1002 , - 3913 , - 2856 , - 1927 , - 1126 , - 453 , - 4004 , - 3587 , - 3298 , - 3137 , - 3104 , - 3199 , - 3422 , - 3773 , - 156 , - 763 , - 1498 , - 2361 , - 3352 , - 375 , - 1622 , - 2997 , - 404 , - 2035 , - 3794 , - 1585 , - 3600 , - 1647 , - 3918 , - 2221 , - 652 , - 3307 , - 1994 , - 809 , - 3848 , - 2919 , - 2118 , - 1445 , - 900 , - 483 , - 194 , - 33 , - 0 , - 163 , - 586 , - 1269 , - 2212 , - 3415 , - 718 , - 2441 , - 264 , - 2507 , - 850 , - 3613 , - 2476 , - 1599 , - 982 , - 625 , - 528 , - 691 , - 1114 , - 1797 , - 2740 , - 3943 , - 1246 , - 2969 , - 792 , - 3035 , - 1378 , - 4141 , - 3004 , - 2127 , - 1510 , - 1153 , - 1056 , - 1219 , - 1642 , - 2325 , - 3268 , - 311 , - 1774 , - 3497 , - 1320 , - 3563 , - 1906 , - 509 , - 3532 , - 2655 , - 2038 , - 1681 , - 1584 , - 1747 , - 2170 , - 2853 , - 3796 , - 839 , - 2302 , - 4025 , - 1848 , - 4091 , - 2434 , - 1037 , - 4060 , - 3183 , - 2566 , - 2209 , - 2112 , - 2275 , - 2698 , - 3381 , - 164 , - 1367 , - 2830 , - 393 , - 2376 , - 459 , - 2962 , - 1565 , - 428 , - 3711 , - 3094 , - 2737 , - 2640 , - 2803 , - 3226 , - 3909 , - 692 , - 1895 , - 3358 , - 921 , - 2904 , - 987 , - 3490 , - 2093 , - 956 , - 79 , - 3622 , - 3265 , - 3168 , - 3331 , - 3754 , - 277 , - 1220 , - 2423 , - 3886 , - 1449 , - 3432 , - 1515 , - 4018 , - 2621 , - 1484 , - 607 , - 4150 , - 3793 , - 3696 , - 3859 , - 122 , - 805 , - 1748 , - 2951 , - 254 , - 1977 , - 3960 , - 2043 , - 386 , - 3149 , - 2012 , - 1135 , - 518 , - 161 , - 64 , - 227 , - 650 , - 1333 , - 2276 , - 3479 , - 782 , - 2505 , - 328 , - 2571 , - 914 , - 3677 , - 2540 , - 1663 , - 1046 , - 689 , - 592 , - 755 , - 1178 , - 1861 , - 2804 , - 4007 , - 1310 , - 3033 , - 856 , - 3099 , - 1442 , - 45 , - 3068 , - 2191 , - 1574 , - 1217 , - 1120 , - 1283 , - 1706 , - 2389 , - 3332 , - 375 , - 1838 , - 3561 , - 1384 , - 3627 , - 1970 , - 573 , - 3596 , - 2719 , - 2102 , - 1745 , - 1648 , - 1811 , - 2234 , - 2917 , - 3860 , - 903 , - 2366 , - 4089 , - 1912 , - 4155 , - 2498 , - 1101 , - 4124 , - 3247 , - 2630 , - 2273 , - 2176 , - 2339 , - 2762 , - 3445 , - 228 , - 1431 , - 2894 , - 457 , - 2440 , - 523 , - 3026 , - 1629 , - 492 , - 3775 , - 3158 , - 2801 , - 2704 , - 2867 , - 3290 , - 3973 , - 756 , - 1959 , - 3422 , - 985 , - 2968 , - 1051 , - 3554 , - 2157 , - 1020 , - 143 , - 3686 , - 3329 , - 3232 , - 3395 , - 3818 , - 341 , - 1284 , - 2487 , - 3950 , - 1513 , - 3496 , - 1579 , - 4082 , - 2685 , - 1548 , - 671 , - 54 , - 3857 , - 3760 , - 3923 , - 186 , - 869 , - 1812 , - 3015 , - 318 , - 2041 , - 4024 , - 2107 , - 450 , - 3213 , - 2076 , - 1199 , - 582 , - 225 , - 128 , - 291 , - 714 , - 1397 , - 2340 , - 3543 , - 846 , - 2569 , - 392 , - 2635 , - 978 , - 3741 , - 2604 , - 1727 , - 1110 , - 753 , - 656 , - 819 , - 1242 , - 1925 , - 2868 , - 4071 , - 1374 , - 3097 , - 920 , - 3163 , - 1506 , - 109 , - 3132 , - 2255 , - 1638 , - 1281 , - 1184 , - 1347 , - 1770 , - 2453 , - 3396 , - 439 , - 1902 , - 3625 , - 1448 , - 3691 , - 2034 , - 637 , - 3660 , - 2783 , - 2166 , - 1809 , - 1712 , - 1875 , - 2298 , - 2981 , - 3924 , - 967 , - 2430 , - 4153 , - 1976 , - 59 , - 2562 , - 1165 , - 28 , - 3311 , - 2694 , - 2337 , - 2240 , - 2403 , - 2826 , - 3509 , - 292 , - 1495 , - 2958 , - 521 , - 2504 , - 587 , - 3090 , - 1693 , - 556 , - 3839 , - 3222 , - 2865 , - 2768 , - 2931 , - 3354 , - 4037 , - 820 , - 2023 , - 3486 , - 1049 , - 3032 , - 1115 , - 3618 , - 2221 , - 1084 , - 207 , - 3750 , - 3393 , - 3296 , - 3459 , - 3882 , - 405 , - 1348 , - 2551 , - 4014 , - 1577 , - 3560 , - 1643 , - 4146 , - 2749 , - 1612 , - 735 , - 118 , - 3921 , - 3824 , - 3987 , - 250 , - 933 , - 1876 , - 3079 , - 382 , - 2105 , - 4088 , - 2171 , - 514 , - 3277 , - 2140 , - 1263 , - 646 , - 289 , - 192 , - 355 , - 778 , - 1461 , - 2404 , - 3607 , - 910 , - 2633 , - 456 , - 2699 , - 1042 , - 3805 , - 2668 , - 1791 , - 1174 , - 817 , - 720 , - 883 , - 1306 , - 1989 , - 2932 , - 4135 , - 1438 , - 3161 , - 984 , - 3227 , - 1570 , - 173 , - 3196 , - 2319 , - 1702 , - 1345 , - 1248 , - 1411 , - 1834 , - 2517 , - 3460 , - 503 , - 1966 , - 3689 , - 1512 , - 3755 , - 2098 , - 701 , - 3724 , - 2847 , - 2230 , - 1873 , - 1776 , - 1939 , - 2362 , - 3045 , - 3988 , - 1031 , - 2494 , - 57 , - 2040 , - 123 , - 2626 , - 1229 , - 92 , - 3375 , - 2758 , - 2401 , - 2304 , - 2467 , - 2890 , - 3573 , - 356 , - 1559 , - 3022 , - 585 , - 2568 , - 651 , - 3154 , - 1757 , - 620 , - 3903 , - 3286 , - 2929 , - 2832 , - 2995 , - 3418 , - 4101 , - 884 , - 2087 , - 3550 , - 1113 , - 3096 , - 1179 , - 3682 , - 2285 , - 1148 , - 271 , - 3814 , - 3457 , - 3360 , - 3523 , - 3946 , - 469 , - 1412 , - 2615 , - 4078 , - 1641 , - 3624 , - 1707 , - 50 , - 2813 , - 1676 , - 799 , - 182 , - 3985 , - 3888 , - 4051 , - 314 , - 997 , - 1940 , - 3143 , - 446 , - 2169 , - 4152 , - 2235 , - 578 , - 3341 , - 2204 , - 1327 , - 710 , - 353 , - 256 , - 419 , - 842 , - 1525 , - 2468 , - 3671 , - 974 , - 2697 , - 520 , - 2763 , - 1106 , - 3869 , - 2732 , - 1855 , - 1238 , - 881 , - 784 , - 947 , - 1370 , - 2053 , - 2996 , - 39 , - 1502 , - 3225 , - 1048 , - 3291 , - 1634 , - 237 , - 3260 , - 2383 , - 1766 , - 1409 , - 1312 , - 1475 , - 1898 , - 2581 , - 3524 , - 567 , - 2030 , - 3753 , - 1576 , - 3819 , - 2162 , - 765 , - 3788 , - 2911 , - 2294 , - 1937 , - 1840 , - 2003 , - 2426 , - 3109 , - 4052 , - 1095 , - 2558 , - 121 , - 2104 , - 187 , - 2690 , - 1293 , - 156 , - 3439 , - 2822 , - 2465 , - 2368 , - 2531 , - 2954 , - 3637 , - 420 , - 1623 , - 3086 , - 649 , - 2632 , - 715 , - 3218 , - 1821 , - 684 , - 3967 , - 3350 , - 2993 , - 2896 , - 3059 , - 3482 , - 5 , - 948 , - 2151 , - 3614 , - 1177 , - 3160 , - 1243 , - 3746 , - 2349 , - 1212 , - 335 , - 3878 , - 3521 , - 3424 , - 3587 , - 4010 , - 533 , - 1476 , - 2679 , - 4142 , - 1705 , - 3688 , - 1771 , - 114 , - 2877 , - 1740 , - 863 , - 246 , - 4049 , - 3952 , - 4115 , - 378 , - 1061 , - 2004 , - 3207 , - 510 , - 2233 , - 56 , - 2299 , - 642 , - 3405 , - 2268 , - 1391 , - 774 , - 417 , - 320 , - 483 , - 906 , - 1589 , - 2532 , - 3735 , - 1038 , - 2761 , - 584 , - 2827 , - 1170 , - 3933 , - 2796 , - 1919 , - 1302 , - 945 , - 848 , - 1011 , - 1434 , - 2117 , - 3060 , - 103 , - 1566 , - 3289 , - 1112 , - 3355 , - 1698 , - 301 , - 3324 , - 2447 , - 1830 , - 1473 , - 1376 , - 1539 , - 1962 , - 2645 , - 3588 , - 631 , - 2094 , - 3817 , - 1640 , - 3883 , - 2226 , - 829 , - 3852 , - 2975 , - 2358 , - 2001 , - 1904 , - 2067 , - 2490 , - 3173 , - 4116 , - 1159 , - 2622 , - 185 , - 2168 , - 251 , - 2754 , - 1357 , - 220 , - 3503 , - 2886 , - 2529 , - 2432 , - 2595 , - 3018 , - 3701 , - 484 , - 1687 , - 3150 , - 713 , - 2696 , - 779 , - 3282 , - 1885 , - 748 , - 4031 , - 3414 , - 3057 , - 2960 , - 3123 , - 3546 , - 69 , - 1012 , - 2215 , - 3678 , - 1241 , - 3224 , - 1307 , - 3810 , - 2413 , - 1276 , - 399 , - 3942 , - 3585 , - 3488 , - 3651 , - 4074 , - 597 , - 1540 , - 2743 , - 46 , - 1769 , - 3752 , - 1835 , - 178 , - 2941 , - 1804 , - 927 , - 310 , - 4113 , - 4016 , - 19 , - 442 , - 1125 , - 2068 , - 3271 , - 574 , - 2297 , - 120 , - 2363 , - 706 , - 3469 , - 2332 , - 1455 , - 838 , - 481 , - 384 , - 547 , - 970 , - 1653 , - 2596 , - 3799 , - 1102 , - 2825 , - 648 , - 2891 , - 1234 , - 3997 , - 2860 , - 1983 , - 1366 , - 1009 , - 912 , - 1075 , - 1498 , - 2181 , - 3124 , - 167 , - 1630 , - 3353 , - 1176 , - 3419 , - 1762 , - 365 , - 3388 , - 2511 , - 1894 , - 1537 , - 1440 , - 1603 , - 2026 , - 2709 , - 3652 , - 695 , - 2158 , - 3881 , - 1704 , - 3947 , - 2290 , - 893 , - 3916 , - 3039 , - 2422 , - 2065 , - 1968 , - 2131 , - 2554 , - 3237 , - 20 , - 1223 , - 2686 , - 249 , - 2232 , - 315 , - 2818 , - 1421 , - 284 , - 3567 , - 2950 , - 2593 , - 2496 , - 2659 , - 3082 , - 3765 , - 548 , - 1751 , - 3214 , - 777 , - 2760 , - 843 , - 3346 , - 1949 , - 812 , - 4095 , - 3478 , - 3121 , - 3024 , - 3187 , - 3610 , - 133 , - 1076 , - 2279 , - 3742 , - 1305 , - 3288 , - 1371 , - 3874 , - 2477 , - 1340 , - 463 , - 4006 , - 3649 , - 3552 , - 3715 , - 4138 , - 661 , - 1604 , - 2807 , - 110 , - 1833 , - 3816 , - 1899 , - 242 , - 3005 , - 1868 , - 991 , - 374 , - 17 , - 4080 , - 83 , - 506 , - 1189 , - 2132 , - 3335 , - 638 , - 2361 , - 184 , - 2427 , - 770 , - 3533 , - 2396 , - 1519 , - 902 , - 545 , - 448 , - 611 , - 1034 , - 1717 , - 2660 , - 3863 , - 1166 , - 2889 , - 712 , - 2955 , - 1298 , - 4061 , - 2924 , - 2047 , - 1430 , - 1073 , - 976 , - 1139 , - 1562 , - 2245 , - 3188 , - 231 , - 1694 , - 3417 , - 1240 , - 3483 , - 1826 , - 429 , - 3452 , - 2575 , - 1958 , - 1601 , - 1504 , - 1667 , - 2090 , - 2773 , - 3716 , - 759 , - 2222 , - 3945 , - 1768 , - 4011 , - 2354 , - 957 , - 3980 , - 3103 , - 2486 , - 2129 , - 2032 , - 2195 , - 2618 , - 3301 , - 84 , - 1287 , - 2750 , - 313 , - 2296 , - 379 , - 2882 , - 1485 , - 348 , - 3631 , - 3014 , - 2657 , - 2560 , - 2723 , - 3146 , - 3829 , - 612 , - 1815 , - 3278 , - 841 , - 2824 , - 907 , - 3410 , - 2013 , - 876 , - 4159 , - 3542 , - 3185 , - 3088 , - 3251 , - 3674 , - 197 , - 1140 , - 2343 , - 3806 , - 1369 , - 3352 , - 1435 , - 3938 , - 2541 , - 1404 , - 527 , - 4070 , - 3713 , - 3616 , - 3779 , - 42 , - 725 , - 1668 , - 2871 , - 174 , - 1897 , - 3880 , - 1963 , - 306 , - 3069 , - 1932 , - 1055 , - 438 , - 81 , - 4144 , - 147 , - 570 , - 1253 , - 2196 , - 3399 , - 702 , - 2425 , - 248 , - 2491 , - 834 , - 3597 , - 2460 , - 1583 , - 966 , - 609 , - 512 , - 675 , - 1098 , - 1781 , - 2724 , - 3927 , - 1230 , - 2953 , - 776 , - 3019 , - 1362 , - 4125 , - 2988 , - 2111 , - 1494 , - 1137 , - 1040 , - 1203 , - 1626 , - 2309 , - 3252 , - 295 , - 1758 , - 3481 , - 1304 , - 3547 , - 1890 , - 493 , - 3516 , - 2639 , - 2022 , - 1665 , - 1568 , - 1731 , - 2154 , - 2837 , - 3780 , - 823 , - 2286 , - 4009 , - 1832 , - 4075 , - 2418 , - 1021 , - 4044 , - 3167 , - 2550 , - 2193 , - 2096 , - 2259 , - 2682 , - 3365 , - 148 , - 1351 , - 2814 , - 377 , - 2360 , - 443 , - 2946 , - 1549 , - 412 , - 3695 , - 3078 , - 2721 , - 2624 , - 2787 , - 3210 , - 3893 , - 676 , - 1879 , - 3342 , - 905 , - 2888 , - 971 , - 3474 , - 2077 , - 940 , - 63 , - 3606 , - 3249 , - 3152 , - 3315 , - 3738 , - 261 , - 1204 , - 2407 , - 3870 , - 1433 , - 3416 , - 1499 , - 4002 , - 2605 , - 1468 , - 591 , - 4134 , - 3777 , - 3680 , - 3843 , - 106 , - 789 , - 1732 , - 2935 , - 238 , - 1961 , - 3944 , - 2027 , - 370 , - 3133 , - 1996 , - 1119 , - 502 , - 145 , - 48 , - 211 , - 634 , - 1317 , - 2260 , - 3463 , - 766 , - 2489 , - 312 , - 2555 , - 898 , - 3661 , - 2524 , - 1647 , - 1030 , - 673 , - 576 , - 739 , - 1162 , - 1845 , - 2788 , - 3991 , - 1294 , - 3017 , - 840 , - 3083 , - 1426 , - 29 , - 3052 , - 2175 , - 1558 , - 1201 , - 1104 , - 1267 , - 1690 , - 2373 , - 3316 , - 359 , - 1822 , - 3545 , - 1368 , - 3611 , - 1954 , - 557 , - 3580 , - 2703 , - 2086 , - 1729 , - 1632 , - 1795 , - 2218 , - 2901 , - 3844 , - 887 , - 2350 , - 4073 , - 1896 , - 4139 , - 2482 , - 1085 , - 4108 , - 3231 , - 2614 , - 2257 , - 2160 , - 2323 , - 2746 , - 3429 , - 212 , - 1415 , - 2878 , - 441 , - 2424 , - 507 , - 3010 , - 1613 , - 476 , - 3759 , - 3142 , - 2785 , - 2688 , - 2851 , - 3274 , - 3957 , - 740 , - 1943 , - 3406 , - 969 , - 2952 , - 1035 , - 3538 , - 2141 , - 1004 , - 127 , - 3670 , - 3313 , - 3216 , - 3379 , - 3802 , - 325 , - 1268 , - 2471 , - 3934 , - 1497 , - 3480 , - 1563 , - 4066 , - 2669 , - 1532 , - 655 , - 38 , - 3841 , - 3744 , - 3907 , - 170 , - 853 , - 1796 , - 2999 , - 302 , - 2025 , - 4008 , - 2091 , - 434 , - 3197 , - 2060 , - 1183 , - 566 , - 209 , - 112 , - 275 , - 698 , - 1381 , - 2324 , - 3527 , - 830 , - 2553 , - 376 , - 2619 , - 962 , - 3725 , - 2588 , - 1711 , - 1094 , - 737 , - 640 , - 803 , - 1226 , - 1909 , - 2852 , - 4055 , - 1358 , - 3081 , - 904 , - 3147 , - 1490 , - 93 , - 3116 , - 2239 , - 1622 , - 1265 , - 1168 , - 1331 , - 1754 , - 2437 , - 3380 , - 423 , - 1886 , - 3609 , - 1432 , - 3675 , - 2018 , - 621 , - 3644 , - 2767 , - 2150 , - 1793 , - 1696 , - 1859 , - 2282 , - 2965 , - 3908 , - 951 , - 2414 , - 4137 , - 1960 , - 43 , - 2546 , - 1149 , - 12 , - 3295 , - 2678 , - 2321 , - 2224 , - 2387 , - 2810 , - 3493 , - 276 , - 1479 , - 2942 , - 505 , - 2488 , - 571 , - 3074 , - 1677 , - 540 , - 3823 , - 3206 , - 2849 , - 2752 , - 2915 , - 3338 , - 4021 , - 804 , - 2007 , - 3470 , - 1033 , - 3016 , - 1099 , - 3602 , - 2205 , - 1068 , - 191 , - 3734 , - 3377 , - 3280 , - 3443 , - 3866 , - 389 , - 1332 , - 2535 , - 3998 , - 1561 , - 3544 , - 1627 , - 4130 , - 2733 , - 1596 , - 719 , - 102 , - 3905 , - 3808 , - 3971 , - 234 , - 917 , - 1860 , - 3063 , - 366 , - 2089 , - 4072 , - 2155 , - 498 , - 3261 , - 2124 , - 1247 , - 630 , - 273 , - 176 , - 339 , - 762 , - 1445 , - 2388 , - 3591 , - 894 , - 2617 , - 440 , - 2683 , - 1026 , - 3789 , - 2652 , - 1775 , - 1158 , - 801 , - 704 , - 867 , - 1290 , - 1973 , - 2916 , - 4119 , - 1422 , - 3145 , - 968 , - 3211 , - 1554 , - 157 , - 3180 , - 2303 , - 1686 , - 1329 , - 1232 , - 1395 , - 1818 , - 2501 , - 3444 , - 487 , - 1950 , - 3673 , - 1496 , - 3739 , - 2082 , - 685 , - 3708 , - 2831 , - 2214 , - 1857 , - 1760 , - 1923 , - 2346 , - 3029 , - 3972 , - 1015 , - 2478 , - 41 , - 2024 , - 107 , - 2610 , - 1213 , - 76 , - 3359 , - 2742 , - 2385 , - 2288 , - 2451 , - 2874 , - 3557 , - 340 , - 1543 , - 3006 , - 569 , - 2552 , - 635 , - 3138 , - 1741 , - 604 , - 3887 , - 3270 , - 2913 , - 2816 , - 2979 , - 3402 , - 4085 , - 868 , - 2071 , - 3534 , - 1097 , - 3080 , - 1163 , - 3666 , - 2269 , - 1132 , - 255 , - 3798 , - 3441 , - 3344 , - 3507 , - 3930 , - 453 , - 1396 , - 2599 , - 4062 , - 1625 , - 3608 , - 1691 , - 34 , - 2797 , - 1660 , - 783 , - 166 , - 3969 , - 3872 , - 4035 , - 298 , - 981 , - 1924 , - 3127 , - 430 , - 2153 , - 4136 , - 2219 , - 562 , - 3325 , - 2188 , - 1311 , - 694 , - 337 , - 240 , - 403 , - 826 , - 1509 , - 2452 , - 3655 , - 958 , - 2681 , - 504 , - 2747 , - 1090 , - 3853 , - 2716 , - 1839 , - 1222 , - 865 , - 768 , - 931 , - 1354 , - 2037 , - 2980 , - 23 , - 1486 , - 3209 , - 1032 , - 3275 , - 1618 , - 221 , - 3244 , - 2367 , - 1750 , - 1393 , - 1296 , - 1459 , - 1882 , - 2565 , - 3508 , - 551 , - 2014 , - 3737 , - 1560 , - 3803 , - 2146 , - 749 , - 3772 , - 2895 , - 2278 , - 1921 , - 1824 , - 1987 , - 2410 , - 3093 , - 4036 , - 1079 , - 2542 , - 105 , - 2088 , - 171 , - 2674 , - 1277 , - 140 , - 3423 , - 2806 , - 2449 , - 2352 , - 2515 , - 2938 , - 3621 , - 404 , - 1607 , - 3070 , - 633 , - 2616 , - 699 , - 3202 , - 1805 , - 668 , - 3951 , - 3334 , - 2977 , - 2880 , - 3043 , - 3466 , - 4149 , - 932 , - 2135 , - 3598 , - 1161 , - 3144 , - 1227 , - 3730 , - 2333 , - 1196 , - 319 , - 3862 , - 3505 , - 3408 , - 3571 , - 3994 , - 517 , - 1460 , - 2663 , - 4126 , - 1689 , - 3672 , - 1755 , - 98 , - 2861 , - 1724 , - 847 , - 230 , - 4033 , - 3936 , - 4099 , - 362 , - 1045 , - 1988 , - 3191 , - 494 , - 2217 , - 40 , - 2283 , - 626 , - 3389 , - 2252 , - 1375 , - 758 , - 401 , - 304 , - 467 , - 890 , - 1573 , - 2516 , - 3719 , - 1022 , - 2745 , - 568 , - 2811 , - 1154 , - 3917 , - 2780 , - 1903 , - 1286 , - 929 , - 832 , - 995 , - 1418 , - 2101 , - 3044 , - 87 , - 1550 , - 3273 , - 1096 , - 3339 , - 1682 , - 285 , - 3308 , - 2431 , - 1814 , - 1457 , - 1360 , - 1523 , - 1946 , - 2629 , - 3572 , - 615 , - 2078 , - 3801 , - 1624 , - 3867 , - 2210 , - 813 , - 3836 , - 2959 , - 2342 , - 1985 , - 1888 , - 2051 , - 2474 , - 3157 , - 4100 , - 1143 , - 2606 , - 169 , - 2152 , - 235 , - 2738 , - 1341 , - 204 , - 3487 , - 2870 , - 2513 , - 2416 , - 2579 , - 3002 , - 3685 , - 468 , - 1671 , - 3134 , - 697 , - 2680 , - 763 , - 3266 , - 1869 , - 732 , - 4015 , - 3398 , - 3041 , - 2944 , - 3107 , - 3530 , - 53 , - 996 , - 2199 , - 3662 , - 1225 , - 3208 , - 1291 , - 3794 , - 2397 , - 1260 , - 383 , - 3926 , - 3569 , - 3472 , - 3635 , - 4058 , - 581 , - 1524 , - 2727 , - 30 , - 1753 , - 3736 , - 1819 , - 162 , - 2925 , - 1788 , - 911 , - 294 , - 4097 , - 4000 , - 3 , - 426 , - 1109 , - 2052 , - 3255 , - 558 , - 2281 , - 104 , - 2347 , - 690 , - 3453 , - 2316 , - 1439 , - 822 , - 465 , - 368 , - 531 , - 954 , - 1637 , - 2580 , - 3783 , - 1086 , - 2809 , - 632 , - 2875 , - 1218 , - 3981 , - 2844 , - 1967 , - 1350 , - 993 , - 896 , - 1059 , - 1482 , - 2165 , - 3108 , - 151 , - 1614 , - 3337 , - 1160 , - 3403 , - 1746 , - 349 , - 3372 , - 2495 , - 1878 , - 1521 , - 1424 , - 1587 , - 2010 , - 2693 , - 3636 , - 679 , - 2142 , - 3865 , - 1688 , - 3931 , - 2274 , - 877 , - 3900 , - 3023 , - 2406 , - 2049 , - 1952 , - 2115 , - 2538 , - 3221 , - 4 , - 1207 , - 2670 , - 233 , - 2216 , - 299 , - 2802 , - 1405 , - 268 , - 3551 , - 2934 , - 2577 , - 2480 , - 2643 , - 3066 , - 3749 , - 532 , - 1735 , - 3198 , - 761 , - 2744 , - 827 , - 3330 , - 1933 , - 796 , - 4079 , - 3462 , - 3105 , - 3008 , - 3171 , - 3594 , - 117 , - 1060 , - 2263 , - 3726 , - 1289 , - 3272 , - 1355 , - 3858 , - 2461 , - 1324 , - 447 , - 3990 , - 3633 , - 3536 , - 3699 , - 4122 , - 645 , - 1588 , - 2791 , - 94 , - 1817 , - 3800 , - 1883 , - 226 , - 2989 , - 1852 , - 975 , - 358 , - 1 , - 4064 , - 67 , - 490 , - 1173 , - 2116 , - 3319 , - 622 , - 2345 , - 168 , - 2411 , - 754 , - 3517 , - 2380 , - 1503 , - 886 , - 529 , - 432 , - 595 , - 1018 , - 1701 , - 2644 , - 3847 , - 1150 , - 2873 , - 696 , - 2939 , - 1282 , - 4045 , - 2908 , - 2031 , - 1414 , - 1057 , - 960 , - 1123 , - 1546 , - 2229 , - 3172 , - 215 , - 1678 , - 3401 , - 1224 , - 3467 , - 1810 , - 413 , - 3436 , - 2559 , - 1942 , - 1585 , - 1488 , - 1651 , - 2074 , - 2757 , - 3700 , - 743 , - 2206 , - 3929 , - 1752 , - 3995 , - 2338 , - 941 , - 3964 , - 3087 , - 2470 , - 2113 , - 2016 , - 2179 , - 2602 , - 3285 , - 68 , - 1271 , - 2734 , - 297 , - 2280 , - 363 , - 2866 , - 1469 , - 332 , - 3615 , - 2998 , - 2641 , - 2544 , - 2707 , - 3130 , - 3813 , - 596 , - 1799 , - 3262 , - 825 , - 2808 , - 891 , - 3394 , - 1997 , - 860 , - 4143 , - 3526 , - 3169 , - 3072 , - 3235 , - 3658 , - 181 , - 1124 , - 2327 , - 3790 , - 1353 , - 3336 , - 1419 , - 3922 , - 2525 , - 1388 , - 511 , - 4054 , - 3697 , - 3600 , - 3763 , - 26 , - 709 , - 1652 , - 2855 , - 158 , - 1881 , - 3864 , - 1947 , - 290 , - 3053 , - 1916 , - 1039 , - 422 , - 65 , - 4128 , - 131 , - 554 , - 1237 , - 2180 , - 3383 , - 686 , - 2409 , - 232 , - 2475 , - 818 , - 3581 , - 2444 , - 1567 , - 950 , - 593 , - 496 , - 659 , - 1082 , - 1765 , - 2708 , - 3911 , - 1214 , - 2937 , - 760 , - 3003 , - 1346 , - 4109 , - 2972 , - 2095 , - 1478 , - 1121 , - 1024 , - 1187 , - 1610 , - 2293 , - 3236 , - 279 , - 1742 , - 3465 , - 1288 , - 3531 , - 1874 , - 477 , - 3500 , - 2623 , - 2006 , - 1649 , - 1552 , - 1715 , - 2138 , - 2821 , - 3764 , - 807 , - 2270 , - 3993 , - 1816 , - 4059 , - 2402 , - 1005 , - 4028 , - 3151 , - 2534 , - 2177 , - 2080 , - 2243 , - 2666 , - 3349 , - 132 , - 1335 , - 2798 , - 361 , - 2344 , - 427 , - 2930 , - 1533 , - 396 , - 3679 , - 3062 , - 2705 , - 2608 , - 2771 , - 3194 , - 3877 , - 660 , - 1863 , - 3326 , - 889 , - 2872 , - 955 , - 3458 , - 2061 , - 924 , - 47 , - 3590 , - 3233 , - 3136 , - 3299 , - 3722 , - 245 , - 1188 , - 2391 , - 3854 , - 1417 , - 3400 , - 1483 , - 3986 , - 2589 , - 1452 , - 575 , - 4118 , - 3761 , - 3664 , - 3827 , - 90 , - 773 , - 1716 , - 2919 , - 222 , - 1945 , - 3928 , - 2011 , - 354 , - 3117 , - 1980 , - 1103 , - 486 , - 129 , - 32 , - 195 , - 618 , - 1301 , - 2244 , - 3447 , - 750 , - 2473 , - 296 , - 2539 , - 882 , - 3645 , - 2508 , - 1631 , - 1014 , - 657 , - 560 , - 723 , - 1146 , - 1829 , - 2772 , - 3975 , - 1278 , - 3001 , - 824 , - 3067 , - 1410 , - 13 , - 3036 , - 2159 , - 1542 , - 1185 , - 1088 , - 1251 , - 1674 , - 2357 , - 3300 , - 343 , - 1806 , - 3529 , - 1352 , - 3595 , - 1938 , - 541 , - 3564 , - 2687 , - 2070 , - 1713 , - 1616 , - 1779 , - 2202 , - 2885 , - 3828 , - 871 , - 2334 , - 4057 , - 1880 , - 4123 , - 2466 , - 1069 , - 4092 , - 3215 , - 2598 , - 2241 , - 2144 , - 2307 , - 2730 , - 3413 , - 196 , - 1399 , - 2862 , - 425 , - 2408 , - 491 , - 2994 , - 1597 , - 460 , - 3743 , - 3126 , - 2769 , - 2672 , - 2835 , - 3258 , - 3941 , - 724 , - 1927 , - 3390 , - 953 , - 2936 , - 1019 , - 3522 , - 2125 , - 988 , - 111 , - 3654 , - 3297 , - 3200 , - 3363 , - 3786 , - 309 , - 1252 , - 2455 , - 3918 , - 1481 , - 3464 , - 1547 , - 4050 , - 2653 , - 1516 , - 639 , - 22 , - 3825 , - 3728 , - 3891 , - 154 , - 837 , - 1780 , - 2983 , - 286 , - 2009 , - 3992 , - 2075 , - 418 , - 3181 , - 2044 , - 1167 , - 550 , - 193 , - 96 , - 259 , - 682 , - 1365 , - 2308 , - 3511 , - 814 , - 2537 , - 360 , - 2603 , - 946 , - 3709 , - 2572 , - 1695 , - 1078 , - 721 , - 624 , - 787 , - 1210 , - 1893 , - 2836 , - 4039 , - 1342 , - 3065 , - 888 , - 3131 , - 1474 , - 77 , - 3100 , - 2223 , - 1606 , - 1249 , - 1152 , - 1315 , - 1738 , - 2421 , - 3364 , - 407 , - 1870 , - 3593 , - 1416 , - 3659 , - 2002 , - 605 , - 3628 , - 2751 , - 2134 , - 1777 , - 1680 , - 1843 , - 2266 , - 2949 , - 3892 , - 935 , - 2398 , - 4121 , - 1944 , - 27 , - 2530 , - 1133 , - 4156 , - 3279 , - 2662 , - 2305 , - 2208 , - 2371 , - 2794 , - 3477 , - 260 , - 1463 , - 2926 , - 489 , - 2472 , - 555 , - 3058 , - 1661 , - 524 , - 3807 , - 3190 , - 2833 , - 2736 , - 2899 , - 3322 , - 4005 , - 788 , - 1991 , - 3454 , - 1017 , - 3000 , - 1083 , - 3586 , - 2189 , - 1052 , - 175 , - 3718 , - 3361 , - 3264 , - 3427 , - 3850 , - 373 , - 1316 , - 2519 , - 3982 , - 1545 , - 3528 , - 1611 , - 4114 , - 2717 , - 1580 , - 703 , - 86 , - 3889 , - 3792 , - 3955 , - 218 , - 901 , - 1844 , - 3047 , - 350 , - 2073 , - 4056 , - 2139 , - 482 , - 3245 , - 2108 , - 1231 , - 614 , - 257 , - 160 , - 323 , - 746 , - 1429 , - 2372 , - 3575 , - 878 , - 2601 , - 424 , - 2667 , - 1010 , - 3773 , - 2636 , - 1759 , - 1142 , - 785 , - 688 , - 851 , - 1274 , - 1957 , - 2900 , - 4103 , - 1406 , - 3129 , - 952 , - 3195 , - 1538 , - 141 , - 3164 , - 2287 , - 1670 , - 1313 , - 1216 , - 1379 , - 1802 , - 2485 , - 3428 , - 471 , - 1934 , - 3657 , - 1480 , - 3723 , - 2066 , - 669 , - 3692 , - 2815 , - 2198 , - 1841 , - 1744 , - 1907 , - 2330 , - 3013 , - 3956 , - 999 , - 2462 , - 25 , - 2008 , - 91 , - 2594 , - 1197 , - 60 , - 3343 , - 2726 , - 2369 , - 2272 , - 2435 , - 2858 , - 3541 , - 324 , - 1527 , - 2990 , - 553 , - 2536 , - 619 , - 3122 , - 1725 , - 588 , - 3871 , - 3254 , - 2897 , - 2800 , - 2963 , - 3386 , - 4069 , - 852 , - 2055 , - 3518 , - 1081 , - 3064 , - 1147 , - 3650 , - 2253 , - 1116 , - 239 , - 3782 , - 3425 , - 3328 , - 3491 , - 3914 , - 437 , - 1380 , - 2583 , - 4046 , - 1609 , - 3592 , - 1675 , - 18 , - 2781 , - 1644 , - 767 , - 150 , - 3953 , - 3856 , - 4019 , - 282 , - 965 , - 1908 , - 3111 , - 414 , - 2137 , - 4120 , - 2203 , - 546 , - 3309 , - 2172 , - 1295 , - 678 , - 321 , - 224 , - 387 , - 810 , - 1493 , - 2436 , - 3639 , - 942 , - 2665 , - 488 , - 2731 , - 1074 , - 3837 , - 2700 , - 1823 , - 1206 , - 849 , - 752 , - 915 , - 1338 , - 2021 , - 2964 , - 7 , - 1470 , - 3193 , - 1016 , - 3259 , - 1602 , - 205 , - 3228 , - 2351 , - 1734 , - 1377 , - 1280 , - 1443 , - 1866 , - 2549 , - 3492 , - 535 , - 1998 , - 3721 , - 1544 , - 3787 , - 2130 , - 733 , - 3756 , - 2879 , - 2262 , - 1905 , - 1808 , - 1971 , - 2394 , - 3077 , - 4020 , - 1063 , - 2526 , - 89 , - 2072 , - 155 , - 2658 , - 1261 , - 124 , - 3407 , - 2790 , - 2433 , - 2336 , - 2499 , - 2922 , - 3605 , - 388 , - 1591 , - 3054 , - 617 , - 2600 , - 683 , - 3186 , - 1789 , - 652 , - 3935 , - 3318 , - 2961 , - 2864 , - 3027 , - 3450 , - 4133 , - 916 , - 2119 , - 3582 , - 1145 , - 3128 , - 1211 , - 3714 , - 2317 , - 1180 , - 303 , - 3846 , - 3489 , - 3392 , - 3555 , - 3978 , - 501 , - 1444 , - 2647 , - 4110 , - 1673 , - 3656 , - 1739 , - 82 , - 2845 , - 1708 , - 831 , - 214 , - 4017 , - 3920 , - 4083 , - 346 , - 1029 , - 1972 , - 3175 , - 478 , - 2201 , - 24 , - 2267 , - 610 , - 3373 , - 2236 , - 1359 , - 742 , - 385 , - 288 , - 451 , - 874 , - 1557 , - 2500 , - 3703 , - 1006 , - 2729 , - 552 , - 2795 , - 1138 , - 3901 , - 2764 , - 1887 , - 1270 , - 913 , - 816 , - 979 , - 1402 , - 2085 , - 3028 , - 71 , - 1534 , - 3257 , - 1080 , - 3323 , - 1666 , - 269 , - 3292 , - 2415 , - 1798 , - 1441 , - 1344 , - 1507 , - 1930 , - 2613 , - 3556 , - 599 , - 2062 , - 3785 , - 1608 , - 3851 , - 2194 , - 797 , - 3820 , - 2943 , - 2326 , - 1969 , - 1872 , - 2035 , - 2458 , - 3141 , - 4084 , - 1127 , - 2590 , - 153 , - 2136 , - 219 , - 2722 , - 1325 , - 188 , - 3471 , - 2854 , - 2497 , - 2400 , - 2563 , - 2986 , - 3669 , - 452 , - 1655 , - 3118 , - 681 , - 2664 , - 747 , - 3250 , - 1853 , - 716 , - 3999 , - 3382 , - 3025 , - 2928 , - 3091 , - 3514 , - 37 , - 980 , - 2183 , - 3646 , - 1209 , - 3192 , - 1275 , - 3778 , - 2381 , - 1244 , - 367 , - 3910 , - 3553 , - 3456 , - 3619 , - 4042 , - 565 , - 1508 , - 2711 , - 14 , - 1737 , - 3720 , - 1803 , - 146 , - 2909 , - 1772 , - 895 , - 278 , - 4081 , - 3984 , - 4147 , - 410 , - 1093 , - 2036 , - 3239 , - 542 , - 2265 , - 88 , - 2331 , - 674 , - 3437 , - 2300 , - 1423 , - 806 , - 449 , - 352 , - 515 , - 938 , - 1621 , - 2564 , - 3767 , - 1070 , - 2793 , - 616 , - 2859 , - 1202 , - 3965 , - 2828 , - 1951 , - 1334 , - 977 , - 880 , - 1043 , - 1466 , - 2149 , - 3092 , - 135 , - 1598 , - 3321 , - 1144 , - 3387 , - 1730 , - 333 , - 3356 , - 2479 , - 1862 , - 1505 , - 1408 , - 1571 , - 1994 , - 2677 , - 3620 , - 663 , - 2126 , - 3849 , - 1672 , - 3915 , - 2258 , - 861 , - 3884 , - 3007 , - 2390 , - 2033 , - 1936 , - 2099 , - 2522 , - 3205 , - 4148 , - 1191 , - 2654 , - 217 , - 2200 , - 283 , - 2786 , - 1389 , - 252 , - 3535 , - 2918 , - 2561 , - 2464 , - 2627 , - 3050 , - 3733 , - 516 , - 1719 , - 3182 , - 745 , - 2728 , - 811 , - 3314 , - 1917 , - 780 , - 4063 , - 3446 , - 3089 , - 2992 , - 3155 , - 3578 , - 101 , - 1044 , - 2247 , - 3710 , - 1273 , - 3256 , - 1339 , - 3842 , - 2445 , - 1308 , - 431 , - 3974 , - 3617 , - 3520 , - 3683 , - 4106 , - 629 , - 1572 , - 2775 , - 78 , - 1801 , - 3784 , - 1867 , - 210 , - 2973 , - 1836 , - 959 , - 342 , - 4145 , - 4048 , - 51 , - 474 , - 1157 , - 2100 , - 3303 , - 606 , - 2329 , - 152 , - 2395 , - 738 , - 3501 , - 2364 , - 1487 , - 870 , - 513 , - 416 , - 579 , - 1002 , - 1685 , - 2628 , - 3831 , - 1134 , - 2857 , - 680 , - 2923 , - 1266 , - 4029 , - 2892 , - 2015 , - 1398 , - 1041 , - 944 , - 1107 , - 1530 , - 2213 , - 3156 , - 199 , - 1662 , - 3385 , - 1208 , - 3451 , - 1794 , - 397 , - 3420 , - 2543 , - 1926 , - 1569 , - 1472 , - 1635 , - 2058 , - 2741 , - 3684 , - 727 , - 2190 , - 3913 , - 1736 , - 3979 , - 2322 , - 925 , - 3948 , - 3071 , - 2454 , - 2097 , - 2000 , - 2163 , - 2586 , - 3269 , - 52 , - 1255 , - 2718 , - 281 , - 2264 , - 347 , - 2850 , - 1453 , - 316 , - 3599 , - 2982 , - 2625 , - 2528 , - 2691 , - 3114 , - 3797 , - 580 , - 1783 , - 3246 , - 809 , - 2792 , - 875 , - 3378 , - 1981 , - 844 , - 4127 , - 3510 , - 3153 , - 3056 , - 3219 , - 3642 , - 165 , - 1108 , - 2311 , - 3774 , - 1337 , - 3320 , - 1403 , - 3906 , - 2509 , - 1372 , - 495 , - 4038 , - 3681 , - 3584 , - 3747 , - 10 , - 693 , - 1636 , - 2839 , - 142 , - 1865 , - 3848 , - 1931 , - 274 , - 3037 , - 1900 , - 1023 , - 406 , - 49 , - 4112 , - 115 , - 538 , - 1221 , - 2164 , - 3367 , - 670 , - 2393 , - 216 , - 2459 , - 802 , - 3565 , - 2428 , - 1551 , - 934 , - 577 , - 480 , - 643 , - 1066 , - 1749 , - 2692 , - 3895 , - 1198 , - 2921 , - 744 , - 2987 , - 1330 , - 4093 , - 2956 , - 2079 , - 1462 , - 1105 , - 1008 , - 1171 , - 1594 , - 2277 , - 3220 , - 263 , - 1726 , - 3449 , - 1272 , - 3515 , - 1858 , - 461 , - 3484 , - 2607 , - 1990 , - 1633 , - 1536 , - 1699 , - 2122 , - 2805 , - 3748 , - 791 , - 2254 , - 3977 , - 1800 , - 4043 , - 2386 , - 989 , - 4012 , - 3135 , - 2518 , - 2161 , - 2064 , - 2227 , - 2650 , - 3333 , - 116 , - 1319 , - 2782 , - 345 , - 2328 , - 411 , - 2914 , - 1517 , - 380 , - 3663 , - 3046 , - 2689 , - 2592 , - 2755 , - 3178 , - 3861 , - 644 , - 1847 , - 3310 , - 873 , - 2856 , - 939 , - 3442 , - 2045 , - 908 , - 31 , - 3574 , - 3217 , - 3120 , - 3283 , - 3706 , - 229 , - 1172 , - 2375 , - 3838 , - 1401 , - 3384 , - 1467 , - 3970 , - 2573 , - 1436 , - 559 , - 4102 , - 3745 , - 3648 , - 3811 , - 74 , - 757 , - 1700 , - 2903 , - 206 , - 1929 , - 3912 , - 1995 , - 338 , - 3101 , - 1964 , - 1087 , - 470 , - 113 , - 16 , - 179 , - 602 , - 1285 , - 2228 , - 3431 , - 734 , - 2457 , - 280 , - 2523 , - 866 , - 3629 , - 2492 , - 1615 , - 998 , - 641 , - 544 , - 707 , - 1130 , - 1813 , - 2756 , - 3959 , - 1262 , - 2985 , - 808 , - 3051 , - 1394 , - 4157 , - 3020 , - 2143 , - 1526 , - 1169 , - 1072 , - 1235 , - 1658 , - 2341 , - 3284 , - 327 , - 1790 , - 3513 , - 1336 , - 3579 , - 1922 , - 525 , - 3548 , - 2671 , - 2054 , - 1697 , - 1600 , - 1763 , - 2186 , - 2869 , - 3812 , - 855 , - 2318 , - 4041 , - 1864 , - 4107 , - 2450 , - 1053 , - 4076 , - 3199 , - 2582 , - 2225 , - 2128 , - 2291 , - 2714 , - 3397 , - 180 , - 1383 , - 2846 , - 409 , - 2392 , - 475 , - 2978 , - 1581 , - 444 , - 3727 , - 3110 , - 2753 , - 2656 , - 2819 , - 3242 , - 3925 , - 708 , - 1911 , - 3374 , - 937 , - 2920 , - 1003 , - 3506 , - 2109 , - 972 , - 95 , - 3638 , - 3281 , - 3184 , - 3347 , - 3770 , - 293 , - 1236 , - 2439 , - 3902 , - 1465 , - 3448 , - 1531 , - 4034 , - 2637 , - 1500 , - 623 , - 6 , - 3809 , - 3712 , - 3875 , - 138 , - 821 , - 1764 , - 2967 , - 270 , - 1993 , - 3976 , - 2059 , - 402 , - 3165 , - 2028 , - 1151 , - 534 , - 177 , - 80 , - 243 , - 666 , - 1349 , - 2292 , - 3495 , - 798 , - 2521 , - 344 , - 2587 , - 930 , - 3693 , - 2556 , - 1679 , - 1062 , - 705 , - 608 , - 771 , - 1194 , - 1877 , - 2820 , - 4023 , - 1326 , - 3049 , - 872 , - 3115 , - 1458 , - 61 , - 3084 , - 2207 , - 1590 , - 1233 , - 1136 , - 1299 , - 1722 , - 2405 , - 3348 , - 391 , - 1854 , - 3577 , - 1400 , - 3643 , - 1986 , - 589 , - 3612 , - 2735 , - 2118 , - 1761 , - 1664 , - 1827 , - 2250 , - 2933 , - 3876 , - 919 , - 2382 , - 4105 , - 1928 , - 11 , - 2514 , - 1117 , - 4140 , - 3263 , - 2646 , - 2289 , - 2192 , - 2355 , - 2778 , - 3461 , - 244 , - 1447 , - 2910 , - 473 , - 2456 , - 539 , - 3042 , - 1645 , - 508 , - 3791 , - 3174 , - 2817 , - 2720 , - 2883 , - 3306 , - 3989 , - 772 , - 1975 , - 3438 , - 1001 , - 2984 , - 1067 , - 3570 , - 2173 , - 1036 , - 159 , - 3702 , - 3345 , - 3248 , - 3411 , - 3834 , - 357 , - 1300 , - 2503 , - 3966 , - 1529 , - 3512 , - 1595 , - 4098 , - 2701 , - 1564 , - 687 , - 70 , - 3873 , - 3776 , - 3939 , - 202 , - 885 , - 1828 , - 3031 , - 334 , - 2057 , - 4040 , - 2123 , - 466 , - 3229 , - 2092 , - 1215 , - 598 , - 241 , - 144 , - 307 , - 730 , - 1413 , - 2356 , - 3559 , - 862 , - 2585 , - 408 , - 2651 , - 994 , - 3757 , - 2620 , - 1743 , - 1126 , - 769 , - 672 , - 835 , - 1258 , - 1941 , - 2884 , - 4087 , - 1390 , - 3113 , - 936 , - 3179 , - 1522 , - 125 , - 3148 , - 2271 , - 1654 , - 1297 , - 1200 , - 1363 , - 1786 , - 2469 , - 3412 , - 455 , - 1918 , - 3641 , - 1464 , - 3707 , - 2050 , - 653 , - 3676 , - 2799 , - 2182 , - 1825 , - 1728 , - 1891 , - 2314 , - 2997 , - 3940 , - 983 , - 2446 , - 9 , - 1992 , - 75 , - 2578 , - 1181 , - 44 , - 3327 , - 2710 , - 2353 , - 2256 , - 2419 , - 2842 , - 3525 , - 308 , - 1511 , - 2974 , - 537 , - 2520 , - 603 , - 3106 , - 1709 , - 572 , - 3855 , - 3238 , - 2881 , - 2784 , - 2947 , - 3370 , - 4053 , - 836 , - 2039 , - 3502 , - 1065 , - 3048 , - 1131 , - 3634 , - 2237 , - 1100 , - 223 , - 3766 , - 3409 , - 3312 , - 3475 , - 3898 , - 421 , - 1364 , - 2567 , - 4030 , - 1593 , - 3576 , - 1659 , - 2 , - 2765 , - 1628 , - 751 , - 134 , - 3937 , - 3840 , - 4003 , - 266 , - 949 , - 1892 , - 3095 , - 398 , - 2121 , - 4104 , - 2187 , - 530 , - 3293 , - 2156 , - 1279 , - 662 , - 305 , - 208 , - 371 , - 794 , - 1477 , - 2420 , - 3623 , - 926 , - 2649 , - 472 , - 2715 , - 1058 , - 3821 , - 2684 , - 1807 , - 1190 , - 833 , - 736 , - 899 , - 1322 , - 2005 , - 2948 , - 4151 , - 1454 , - 3177 , - 1000 , - 3243 , - 1586 , - 189 , - 3212 , - 2335 , - 1718 , - 1361 , - 1264 , - 1427 , - 1850 , - 2533 , - 3476 , - 519 , - 1982 , - 3705 , - 1528 , - 3771 , - 2114 , - 717 , - 3740 , - 2863 , - 2246 , - 1889 , - 1792 , - 1955 , - 2378 , - 3061 , - 4004 , - 1047 , - 2510 , - 73 , - 2056 , - 139 , - 2642 , - 1245 , - 108 , - 3391 , - 2774 , - 2417 , - 2320 , - 2483 , - 2906 , - 3589 , - 372 , - 1575 , - 3038 , - 601 , - 2584 , - 667 , - 3170 , - 1773 , - 636 , - 3919 , - 3302 , - 2945 , - 2848 , - 3011 , - 3434 , - 4117 , - 900 , - 2103 , - 3566 , - 1129 , - 3112 , - 1195 , - 3698 , - 2301 , - 1164 , - 287 , - 3830 , - 3473 , - 3376 , - 3539 , - 3962 , - 485 , - 1428 , - 2631 , - 4094 , - 1657 , - 3640 , - 1723 , - 66 , - 2829 , - 1692 , - 815 , - 198 , - 4001 , - 3904 , - 4067 , - 330 , - 1013 , - 1956 , - 3159 , - 462 , - 2185 , - 8 , - 2251 , - 594 , - 3357 , - 2220 , - 1343 , - 726 , - 369 , - 272 , - 435 , - 858 , - 1541 , - 2484 , - 3687 , - 990 , - 2713 , - 536 , - 2779 , - 1122 , - 3885 , - 2748 , - 1871 , - 1254 , - 897 , - 800 , - 963 , - 1386 , - 2069 , - 3012 , - 55 , - 1518 , - 3241 , - 1064 , - 3307 , - 1650 , - 253 , - 3276 , - 2399 , - 1782 , - 1425 , - 1328 , - 1491 , - 1914 , - 2597 , - 3540 , - 583 , - 2046 , - 3769 , - 1592 , - 3835 , - 2178 , - 781 , - 3804 , - 2927 , - 2310 , - 1953 , - 1856 , - 2019 , - 2442 , - 3125 , - 4068 , - 1111 , - 2574 , - 137 , - 2120 , - 203 , - 2706 , - 1309 , - 172 , - 3455 , - 2838 , - 2481 , - 2384 , - 2547 , - 2970 , - 3653 , - 436 , - 1639 , - 3102 , - 665 , - 2648 , - 731 , - 3234 , - 1837 , - 700 , - 3983 , - 3366 , - 3009 , - 2912 , - 3075 , - 3498 , - 21 , - 964 , - 2167 , - 3630 , - 1193 , - 3176 , - 1259 , - 3762 , - 2365 , - 1228 , - 351 , - 3894 , - 3537 , - 3440 , - 3603 , - 4026 , - 549 , - 1492 , - 2695 , - 4158 , - 1721 , - 3704 , - 1787 , - 130 , - 2893 , - 1756 , - 879 , - 262 , - 4065 , - 3968 , - 4131 , - 394 , - 1077 , - 2020 , - 3223 , - 526 , - 2249 , - 72 , - 2315 , - 658 , - 3421 , - 2284 , - 1407 , - 790 , - 433 , - 336 , - 499 , - 922 , - 1605 , - 2548 , - 3751 , - 1054 , - 2777 , - 600 , - 2843 , - 1186 , - 3949 , - 2812 , - 1935 , - 1318 , - 961 , - 864 , - 1027 , - 1450 , - 2133 , - 3076 , - 119 , - 1582 , - 3305 , - 1128 , - 3371 , - 1714 , - 317 , - 3340 , - 2463 , - 1846 , - 1489 , - 1392 , - 1555 , - 1978 , - 2661 , - 3604 , - 647 , - 2110 , - 3833 , - 1656 , - 3899 , - 2242 , - 845 , - 3868 , - 2991 , - 2374 , - 2017 , - 1920 , - 2083 , - 2506 , - 3189 , - 4132 , - 1175 , - 2638 , - 201 , - 2184 , - 267 , - 2770 , - 1373 , - 236 , - 3519 , - 2902 , - 2545 , - 2448 , - 2611 , - 3034 , - 3717 , - 500 , - 1703 , - 3166 , - 729 , - 2712 , - 795 , - 3298 , - 1901 , - 764 , - 4047 , - 3430 , - 3073 , - 2976 , - 3139 , - 3562 , - 85 , - 1028 , - 2231 , - 3694 , - 1257 , - 3240 , - 1323 , - 3826 , - 2429 , - 1292 , - 415 , - 3958 , - 3601 , - 3504 , - 3667 , - 4090 , - 613 , - 1556 , - 2759 , - 62 , - 1785 , - 3768 , - 1851 , - 194 , - 2957 , - 1820 , - 943 , - 326 , - 4129 , - 4032 , - 35 , - 458 , - 1141 , - 2084 , - 3287 , - 590 , - 2313 , - 136 , - 2379 , - 722 , - 3485 , - 2348 , - 1471 , - 854 , - 497 , - 400 , - 563 , - 986 , - 1669 , - 2612 , - 3815 , - 1118 , - 2841 , - 664 , - 2907 , - 1250 , - 4013 , - 2876 , - 1999 , - 1382 , - 1025 , - 928 , - 1091 , - 1514 , - 2197 , - 3140 , - 183 , - 1646 , - 3369 , - 1192 , - 3435 , - 1778 , - 381 , - 3404 , - 2527 , - 1910 , - 1553 , - 1456 , - 1619 , - 2042 , - 2725 , - 3668 , - 711 , - 2174 , - 3897 , - 1720 , - 3963 , - 2306 , - 909 , - 3932 , - 3055 , - 2438 , - 2081 , - 1984 , - 2147 , - 2570 , - 3253 , - 36 , - 1239 , - 2702 , - 265 , - 2248 , - 331 , - 2834 , - 1437 , - 300 , - 3583 , - 2966 , - 2609 , - 2512 , - 2675 , - 3098 , - 3781 , - 564 , - 1767 , - 3230 , - 793 , - 2776 , - 859 , - 3362 , - 1965 , - 828 , - 4111 , - 3494 , - 3137 , - 3040 , - 3203 , - 3626 , - 149 , - 1092 , - 2295 , - 3758 , - 1321 , - 3304 , - 1387 , - 3890 , - 2493 , - 1356 , - 479 , - 4022 , - 3665 , - 3568 , - 3731 , - 4154 , - 677 , - 1620 , - 2823 , - 126 , - 1849 , - 3832 , - 1915 , - 258 , - 3021 , - 1884 , - 1007 , - 390 , - 33 , - 4096 , - 99 , - 522 , - 1205 , - 2148 , - 3351 , - 654 , - 2377 , - 200 , - 2443 , - 786 , - 3549 , - 2412 , - 1535 , - 918 , - 561 , - 464 , - 627 , - 1050 , - 1733 , - 2676 , - 3879 , - 1182 , - 2905 , - 728 , - 2971 , - 1314 , - 4077 , - 2940 , - 2063 , - 1446 , - 1089 , - 992 , - 1155 , - 1578 , - 2261 , - 3204 , - 247 , - 1710 , - 3433 , - 1256 , - 3499 , - 1842 , - 445 , - 3468 , - 2591 , - 1974 , - 1617 , - 1520 , - 1683 , - 2106 , - 2789 , - 3732 , - 775 , - 2238 , - 3961 , - 1784 , - 4027 , - 2370 , - 973 , - 3996 , - 3119 , - 2502 , - 2145 , - 2048 , - 2211 , - 2634 , - 3317 , - 100 , - 1303 , - 2766 , - 329 , - 2312 , - 395 , - 2898 , - 1501 , - 364 , - 3647 , - 3030 , - 2673 , - 2576 , - 2739 , - 3162 , - 3845 , - 628 , - 1831 , - 3294 , - 857 , - 2840 , - 923 , - 3426 , - 2029 , - 892 , - 15 , - 3558 , - 3201 , - 3104 , - 3267 , - 3690 , - 213 , - 1156 , - 2359 , - 3822 , - 1385 , - 3368 , - 1451 , - 3954 , - 2557 , - 1420 , - 543 , - 4086 , - 3729 , - 3632 , - 3795 , - 58 , - 741 , - 1684 , - 2887 , - 190 , - 1913 , - 3896 , - 1979 , - 322 , - 3085 , - 1948 , - 1071 , - 454 , - 97 , - 0 , - 307 , - 1142 , - 2505 , - 172 , - 2591 , - 1314 , - 565 , - 344 , - 651 , - 1486 , - 2849 , - 516 , - 2935 , - 1658 , - 909 , - 688 , - 995 , - 1830 , - 3193 , - 860 , - 3279 , - 2002 , - 1253 , - 1032 , - 1339 , - 2174 , - 3537 , - 1204 , - 3623 , - 2346 , - 1597 , - 1376 , - 1683 , - 2518 , - 3881 , - 1548 , - 3967 , - 2690 , - 1941 , - 1720 , - 2027 , - 2862 , - 1 , - 1892 , - 87 , - 3034 , - 2285 , - 2064 , - 2371 , - 3206 , - 345 , - 2236 , - 431 , - 3378 , - 2629 , - 2408 , - 2715 , - 3550 , - 689 , - 2580 , - 775 , - 3722 , - 2973 , - 2752 , - 3059 , - 3894 , - 1033 , - 2924 , - 1119 , - 4066 , - 3317 , - 3096 , - 3403 , - 14 , - 1377 , - 3268 , - 1463 , - 186 , - 3661 , - 3440 , - 3747 , - 358 , - 1721 , - 3612 , - 1807 , - 530 , - 4005 , - 3784 , - 4091 , - 702 , - 2065 , - 3956 , - 2151 , - 874 , - 125 , - 4128 , - 211 , - 1046 , - 2409 , - 76 , - 2495 , - 1218 , - 469 , - 248 , - 555 , - 1390 , - 2753 , - 420 , - 2839 , - 1562 , - 813 , - 592 , - 899 , - 1734 , - 3097 , - 764 , - 3183 , - 1906 , - 1157 , - 936 , - 1243 , - 2078 , - 3441 , - 1108 , - 3527 , - 2250 , - 1501 , - 1280 , - 1587 , - 2422 , - 3785 , - 1452 , - 3871 , - 2594 , - 1845 , - 1624 , - 1931 , - 2766 , - 4129 , - 1796 , - 4215 , - 2938 , - 2189 , - 1968 , - 2275 , - 3110 , - 249 , - 2140 , - 335 , - 3282 , - 2533 , - 2312 , - 2619 , - 3454 , - 593 , - 2484 , - 679 , - 3626 , - 2877 , - 2656 , - 2963 , - 3798 , - 937 , - 2828 , - 1023 , - 3970 , - 3221 , - 3000 , - 3307 , - 4142 , - 1281 , - 3172 , - 1367 , - 90 , - 3565 , - 3344 , - 3651 , - 262 , - 1625 , - 3516 , - 1711 , - 434 , - 3909 , - 3688 , - 3995 , - 606 , - 1969 , - 3860 , - 2055 , - 778 , - 29 , - 4032 , - 115 , - 950 , - 2313 , - 4204 , - 2399 , - 1122 , - 373 , - 152 , - 459 , - 1294 , - 2657 , - 324 , - 2743 , - 1466 , - 717 , - 496 , - 803 , - 1638 , - 3001 , - 668 , - 3087 , - 1810 , - 1061 , - 840 , - 1147 , - 1982 , - 3345 , - 1012 , - 3431 , - 2154 , - 1405 , - 1184 , - 1491 , - 2326 , - 3689 , - 1356 , - 3775 , - 2498 , - 1749 , - 1528 , - 1835 , - 2670 , - 4033 , - 1700 , - 4119 , - 2842 , - 2093 , - 1872 , - 2179 , - 3014 , - 153 , - 2044 , - 239 , - 3186 , - 2437 , - 2216 , - 2523 , - 3358 , - 497 , - 2388 , - 583 , - 3530 , - 2781 , - 2560 , - 2867 , - 3702 , - 841 , - 2732 , - 927 , - 3874 , - 3125 , - 2904 , - 3211 , - 4046 , - 1185 , - 3076 , - 1271 , - 4218 , - 3469 , - 3248 , - 3555 , - 166 , - 1529 , - 3420 , - 1615 , - 338 , - 3813 , - 3592 , - 3899 , - 510 , - 1873 , - 3764 , - 1959 , - 682 , - 4157 , - 3936 , - 19 , - 854 , - 2217 , - 4108 , - 2303 , - 1026 , - 277 , - 56 , - 363 , - 1198 , - 2561 , - 228 , - 2647 , - 1370 , - 621 , - 400 , - 707 , - 1542 , - 2905 , - 572 , - 2991 , - 1714 , - 965 , - 744 , - 1051 , - 1886 , - 3249 , - 916 , - 3335 , - 2058 , - 1309 , - 1088 , - 1395 , - 2230 , - 3593 , - 1260 , - 3679 , - 2402 , - 1653 , - 1432 , - 1739 , - 2574 , - 3937 , - 1604 , - 4023 , - 2746 , - 1997 , - 1776 , - 2083 , - 2918 , - 57 , - 1948 , - 143 , - 3090 , - 2341 , - 2120 , - 2427 , - 3262 , - 401 , - 2292 , - 487 , - 3434 , - 2685 , - 2464 , - 2771 , - 3606 , - 745 , - 2636 , - 831 , - 3778 , - 3029 , - 2808 , - 3115 , - 3950 , - 1089 , - 2980 , - 1175 , - 4122 , - 3373 , - 3152 , - 3459 , - 70 , - 1433 , - 3324 , - 1519 , - 242 , - 3717 , - 3496 , - 3803 , - 414 , - 1777 , - 3668 , - 1863 , - 586 , - 4061 , - 3840 , - 4147 , - 758 , - 2121 , - 4012 , - 2207 , - 930 , - 181 , - 4184 , - 267 , - 1102 , - 2465 , - 132 , - 2551 , - 1274 , - 525 , - 304 , - 611 , - 1446 , - 2809 , - 476 , - 2895 , - 1618 , - 869 , - 648 , - 955 , - 1790 , - 3153 , - 820 , - 3239 , - 1962 , - 1213 , - 992 , - 1299 , - 2134 , - 3497 , - 1164 , - 3583 , - 2306 , - 1557 , - 1336 , - 1643 , - 2478 , - 3841 , - 1508 , - 3927 , - 2650 , - 1901 , - 1680 , - 1987 , - 2822 , - 4185 , - 1852 , - 47 , - 2994 , - 2245 , - 2024 , - 2331 , - 3166 , - 305 , - 2196 , - 391 , - 3338 , - 2589 , - 2368 , - 2675 , - 3510 , - 649 , - 2540 , - 735 , - 3682 , - 2933 , - 2712 , - 3019 , - 3854 , - 993 , - 2884 , - 1079 , - 4026 , - 3277 , - 3056 , - 3363 , - 4198 , - 1337 , - 3228 , - 1423 , - 146 , - 3621 , - 3400 , - 3707 , - 318 , - 1681 , - 3572 , - 1767 , - 490 , - 3965 , - 3744 , - 4051 , - 662 , - 2025 , - 3916 , - 2111 , - 834 , - 85 , - 4088 , - 171 , - 1006 , - 2369 , - 36 , - 2455 , - 1178 , - 429 , - 208 , - 515 , - 1350 , - 2713 , - 380 , - 2799 , - 1522 , - 773 , - 552 , - 859 , - 1694 , - 3057 , - 724 , - 3143 , - 1866 , - 1117 , - 896 , - 1203 , - 2038 , - 3401 , - 1068 , - 3487 , - 2210 , - 1461 , - 1240 , - 1547 , - 2382 , - 3745 , - 1412 , - 3831 , - 2554 , - 1805 , - 1584 , - 1891 , - 2726 , - 4089 , - 1756 , - 4175 , - 2898 , - 2149 , - 1928 , - 2235 , - 3070 , - 209 , - 2100 , - 295 , - 3242 , - 2493 , - 2272 , - 2579 , - 3414 , - 553 , - 2444 , - 639 , - 3586 , - 2837 , - 2616 , - 2923 , - 3758 , - 897 , - 2788 , - 983 , - 3930 , - 3181 , - 2960 , - 3267 , - 4102 , - 1241 , - 3132 , - 1327 , - 50 , - 3525 , - 3304 , - 3611 , - 222 , - 1585 , - 3476 , - 1671 , - 394 , - 3869 , - 3648 , - 3955 , - 566 , - 1929 , - 3820 , - 2015 , - 738 , - 4213 , - 3992 , - 75 , - 910 , - 2273 , - 4164 , - 2359 , - 1082 , - 333 , - 112 , - 419 , - 1254 , - 2617 , - 284 , - 2703 , - 1426 , - 677 , - 456 , - 763 , - 1598 , - 2961 , - 628 , - 3047 , - 1770 , - 1021 , - 800 , - 1107 , - 1942 , - 3305 , - 972 , - 3391 , - 2114 , - 1365 , - 1144 , - 1451 , - 2286 , - 3649 , - 1316 , - 3735 , - 2458 , - 1709 , - 1488 , - 1795 , - 2630 , - 3993 , - 1660 , - 4079 , - 2802 , - 2053 , - 1832 , - 2139 , - 2974 , - 113 , - 2004 , - 199 , - 3146 , - 2397 , - 2176 , - 2483 , - 3318 , - 457 , - 2348 , - 543 , - 3490 , - 2741 , - 2520 , - 2827 , - 3662 , - 801 , - 2692 , - 887 , - 3834 , - 3085 , - 2864 , - 3171 , - 4006 , - 1145 , - 3036 , - 1231 , - 4178 , - 3429 , - 3208 , - 3515 , - 126 , - 1489 , - 3380 , - 1575 , - 298 , - 3773 , - 3552 , - 3859 , - 470 , - 1833 , - 3724 , - 1919 , - 642 , - 4117 , - 3896 , - 4203 , - 814 , - 2177 , - 4068 , - 2263 , - 986 , - 237 , - 16 , - 323 , - 1158 , - 2521 , - 188 , - 2607 , - 1330 , - 581 , - 360 , - 667 , - 1502 , - 2865 , - 532 , - 2951 , - 1674 , - 925 , - 704 , - 1011 , - 1846 , - 3209 , - 876 , - 3295 , - 2018 , - 1269 , - 1048 , - 1355 , - 2190 , - 3553 , - 1220 , - 3639 , - 2362 , - 1613 , - 1392 , - 1699 , - 2534 , - 3897 , - 1564 , - 3983 , - 2706 , - 1957 , - 1736 , - 2043 , - 2878 , - 17 , - 1908 , - 103 , - 3050 , - 2301 , - 2080 , - 2387 , - 3222 , - 361 , - 2252 , - 447 , - 3394 , - 2645 , - 2424 , - 2731 , - 3566 , - 705 , - 2596 , - 791 , - 3738 , - 2989 , - 2768 , - 3075 , - 3910 , - 1049 , - 2940 , - 1135 , - 4082 , - 3333 , - 3112 , - 3419 , - 30 , - 1393 , - 3284 , - 1479 , - 202 , - 3677 , - 3456 , - 3763 , - 374 , - 1737 , - 3628 , - 1823 , - 546 , - 4021 , - 3800 , - 4107 , - 718 , - 2081 , - 3972 , - 2167 , - 890 , - 141 , - 4144 , - 227 , - 1062 , - 2425 , - 92 , - 2511 , - 1234 , - 485 , - 264 , - 571 , - 1406 , - 2769 , - 436 , - 2855 , - 1578 , - 829 , - 608 , - 915 , - 1750 , - 3113 , - 780 , - 3199 , - 1922 , - 1173 , - 952 , - 1259 , - 2094 , - 3457 , - 1124 , - 3543 , - 2266 , - 1517 , - 1296 , - 1603 , - 2438 , - 3801 , - 1468 , - 3887 , - 2610 , - 1861 , - 1640 , - 1947 , - 2782 , - 4145 , - 1812 , - 7 , - 2954 , - 2205 , - 1984 , - 2291 , - 3126 , - 265 , - 2156 , - 351 , - 3298 , - 2549 , - 2328 , - 2635 , - 3470 , - 609 , - 2500 , - 695 , - 3642 , - 2893 , - 2672 , - 2979 , - 3814 , - 953 , - 2844 , - 1039 , - 3986 , - 3237 , - 3016 , - 3323 , - 4158 , - 1297 , - 3188 , - 1383 , - 106 , - 3581 , - 3360 , - 3667 , - 278 , - 1641 , - 3532 , - 1727 , - 450 , - 3925 , - 3704 , - 4011 , - 622 , - 1985 , - 3876 , - 2071 , - 794 , - 45 , - 4048 , - 131 , - 966 , - 2329 , - 4220 , - 2415 , - 1138 , - 389 , - 168 , - 475 , - 1310 , - 2673 , - 340 , - 2759 , - 1482 , - 733 , - 512 , - 819 , - 1654 , - 3017 , - 684 , - 3103 , - 1826 , - 1077 , - 856 , - 1163 , - 1998 , - 3361 , - 1028 , - 3447 , - 2170 , - 1421 , - 1200 , - 1507 , - 2342 , - 3705 , - 1372 , - 3791 , - 2514 , - 1765 , - 1544 , - 1851 , - 2686 , - 4049 , - 1716 , - 4135 , - 2858 , - 2109 , - 1888 , - 2195 , - 3030 , - 169 , - 2060 , - 255 , - 3202 , - 2453 , - 2232 , - 2539 , - 3374 , - 513 , - 2404 , - 599 , - 3546 , - 2797 , - 2576 , - 2883 , - 3718 , - 857 , - 2748 , - 943 , - 3890 , - 3141 , - 2920 , - 3227 , - 4062 , - 1201 , - 3092 , - 1287 , - 10 , - 3485 , - 3264 , - 3571 , - 182 , - 1545 , - 3436 , - 1631 , - 354 , - 3829 , - 3608 , - 3915 , - 526 , - 1889 , - 3780 , - 1975 , - 698 , - 4173 , - 3952 , - 35 , - 870 , - 2233 , - 4124 , - 2319 , - 1042 , - 293 , - 72 , - 379 , - 1214 , - 2577 , - 244 , - 2663 , - 1386 , - 637 , - 416 , - 723 , - 1558 , - 2921 , - 588 , - 3007 , - 1730 , - 981 , - 760 , - 1067 , - 1902 , - 3265 , - 932 , - 3351 , - 2074 , - 1325 , - 1104 , - 1411 , - 2246 , - 3609 , - 1276 , - 3695 , - 2418 , - 1669 , - 1448 , - 1755 , - 2590 , - 3953 , - 1620 , - 4039 , - 2762 , - 2013 , - 1792 , - 2099 , - 2934 , - 73 , - 1964 , - 159 , - 3106 , - 2357 , - 2136 , - 2443 , - 3278 , - 417 , - 2308 , - 503 , - 3450 , - 2701 , - 2480 , - 2787 , - 3622 , - 761 , - 2652 , - 847 , - 3794 , - 3045 , - 2824 , - 3131 , - 3966 , - 1105 , - 2996 , - 1191 , - 4138 , - 3389 , - 3168 , - 3475 , - 86 , - 1449 , - 3340 , - 1535 , - 258 , - 3733 , - 3512 , - 3819 , - 430 , - 1793 , - 3684 , - 1879 , - 602 , - 4077 , - 3856 , - 4163 , - 774 , - 2137 , - 4028 , - 2223 , - 946 , - 197 , - 4200 , - 283 , - 1118 , - 2481 , - 148 , - 2567 , - 1290 , - 541 , - 320 , - 627 , - 1462 , - 2825 , - 492 , - 2911 , - 1634 , - 885 , - 664 , - 971 , - 1806 , - 3169 , - 836 , - 3255 , - 1978 , - 1229 , - 1008 , - 1315 , - 2150 , - 3513 , - 1180 , - 3599 , - 2322 , - 1573 , - 1352 , - 1659 , - 2494 , - 3857 , - 1524 , - 3943 , - 2666 , - 1917 , - 1696 , - 2003 , - 2838 , - 4201 , - 1868 , - 63 , - 3010 , - 2261 , - 2040 , - 2347 , - 3182 , - 321 , - 2212 , - 407 , - 3354 , - 2605 , - 2384 , - 2691 , - 3526 , - 665 , - 2556 , - 751 , - 3698 , - 2949 , - 2728 , - 3035 , - 3870 , - 1009 , - 2900 , - 1095 , - 4042 , - 3293 , - 3072 , - 3379 , - 4214 , - 1353 , - 3244 , - 1439 , - 162 , - 3637 , - 3416 , - 3723 , - 334 , - 1697 , - 3588 , - 1783 , - 506 , - 3981 , - 3760 , - 4067 , - 678 , - 2041 , - 3932 , - 2127 , - 850 , - 101 , - 4104 , - 187 , - 1022 , - 2385 , - 52 , - 2471 , - 1194 , - 445 , - 224 , - 531 , - 1366 , - 2729 , - 396 , - 2815 , - 1538 , - 789 , - 568 , - 875 , - 1710 , - 3073 , - 740 , - 3159 , - 1882 , - 1133 , - 912 , - 1219 , - 2054 , - 3417 , - 1084 , - 3503 , - 2226 , - 1477 , - 1256 , - 1563 , - 2398 , - 3761 , - 1428 , - 3847 , - 2570 , - 1821 , - 1600 , - 1907 , - 2742 , - 4105 , - 1772 , - 4191 , - 2914 , - 2165 , - 1944 , - 2251 , - 3086 , - 225 , - 2116 , - 311 , - 3258 , - 2509 , - 2288 , - 2595 , - 3430 , - 569 , - 2460 , - 655 , - 3602 , - 2853 , - 2632 , - 2939 , - 3774 , - 913 , - 2804 , - 999 , - 3946 , - 3197 , - 2976 , - 3283 , - 4118 , - 1257 , - 3148 , - 1343 , - 66 , - 3541 , - 3320 , - 3627 , - 238 , - 1601 , - 3492 , - 1687 , - 410 , - 3885 , - 3664 , - 3971 , - 582 , - 1945 , - 3836 , - 2031 , - 754 , - 5 , - 4008 , - 91 , - 926 , - 2289 , - 4180 , - 2375 , - 1098 , - 349 , - 128 , - 435 , - 1270 , - 2633 , - 300 , - 2719 , - 1442 , - 693 , - 472 , - 779 , - 1614 , - 2977 , - 644 , - 3063 , - 1786 , - 1037 , - 816 , - 1123 , - 1958 , - 3321 , - 988 , - 3407 , - 2130 , - 1381 , - 1160 , - 1467 , - 2302 , - 3665 , - 1332 , - 3751 , - 2474 , - 1725 , - 1504 , - 1811 , - 2646 , - 4009 , - 1676 , - 4095 , - 2818 , - 2069 , - 1848 , - 2155 , - 2990 , - 129 , - 2020 , - 215 , - 3162 , - 2413 , - 2192 , - 2499 , - 3334 , - 473 , - 2364 , - 559 , - 3506 , - 2757 , - 2536 , - 2843 , - 3678 , - 817 , - 2708 , - 903 , - 3850 , - 3101 , - 2880 , - 3187 , - 4022 , - 1161 , - 3052 , - 1247 , - 4194 , - 3445 , - 3224 , - 3531 , - 142 , - 1505 , - 3396 , - 1591 , - 314 , - 3789 , - 3568 , - 3875 , - 486 , - 1849 , - 3740 , - 1935 , - 658 , - 4133 , - 3912 , - 4219 , - 830 , - 2193 , - 4084 , - 2279 , - 1002 , - 253 , - 32 , - 339 , - 1174 , - 2537 , - 204 , - 2623 , - 1346 , - 597 , - 376 , - 683 , - 1518 , - 2881 , - 548 , - 2967 , - 1690 , - 941 , - 720 , - 1027 , - 1862 , - 3225 , - 892 , - 3311 , - 2034 , - 1285 , - 1064 , - 1371 , - 2206 , - 3569 , - 1236 , - 3655 , - 2378 , - 1629 , - 1408 , - 1715 , - 2550 , - 3913 , - 1580 , - 3999 , - 2722 , - 1973 , - 1752 , - 2059 , - 2894 , - 33 , - 1924 , - 119 , - 3066 , - 2317 , - 2096 , - 2403 , - 3238 , - 377 , - 2268 , - 463 , - 3410 , - 2661 , - 2440 , - 2747 , - 3582 , - 721 , - 2612 , - 807 , - 3754 , - 3005 , - 2784 , - 3091 , - 3926 , - 1065 , - 2956 , - 1151 , - 4098 , - 3349 , - 3128 , - 3435 , - 46 , - 1409 , - 3300 , - 1495 , - 218 , - 3693 , - 3472 , - 3779 , - 390 , - 1753 , - 3644 , - 1839 , - 562 , - 4037 , - 3816 , - 4123 , - 734 , - 2097 , - 3988 , - 2183 , - 906 , - 157 , - 4160 , - 243 , - 1078 , - 2441 , - 108 , - 2527 , - 1250 , - 501 , - 280 , - 587 , - 1422 , - 2785 , - 452 , - 2871 , - 1594 , - 845 , - 624 , - 931 , - 1766 , - 3129 , - 796 , - 3215 , - 1938 , - 1189 , - 968 , - 1275 , - 2110 , - 3473 , - 1140 , - 3559 , - 2282 , - 1533 , - 1312 , - 1619 , - 2454 , - 3817 , - 1484 , - 3903 , - 2626 , - 1877 , - 1656 , - 1963 , - 2798 , - 4161 , - 1828 , - 23 , - 2970 , - 2221 , - 2000 , - 2307 , - 3142 , - 281 , - 2172 , - 367 , - 3314 , - 2565 , - 2344 , - 2651 , - 3486 , - 625 , - 2516 , - 711 , - 3658 , - 2909 , - 2688 , - 2995 , - 3830 , - 969 , - 2860 , - 1055 , - 4002 , - 3253 , - 3032 , - 3339 , - 4174 , - 1313 , - 3204 , - 1399 , - 122 , - 3597 , - 3376 , - 3683 , - 294 , - 1657 , - 3548 , - 1743 , - 466 , - 3941 , - 3720 , - 4027 , - 638 , - 2001 , - 3892 , - 2087 , - 810 , - 61 , - 4064 , - 147 , - 982 , - 2345 , - 12 , - 2431 , - 1154 , - 405 , - 184 , - 491 , - 1326 , - 2689 , - 356 , - 2775 , - 1498 , - 749 , - 528 , - 835 , - 1670 , - 3033 , - 700 , - 3119 , - 1842 , - 1093 , - 872 , - 1179 , - 2014 , - 3377 , - 1044 , - 3463 , - 2186 , - 1437 , - 1216 , - 1523 , - 2358 , - 3721 , - 1388 , - 3807 , - 2530 , - 1781 , - 1560 , - 1867 , - 2702 , - 4065 , - 1732 , - 4151 , - 2874 , - 2125 , - 1904 , - 2211 , - 3046 , - 185 , - 2076 , - 271 , - 3218 , - 2469 , - 2248 , - 2555 , - 3390 , - 529 , - 2420 , - 615 , - 3562 , - 2813 , - 2592 , - 2899 , - 3734 , - 873 , - 2764 , - 959 , - 3906 , - 3157 , - 2936 , - 3243 , - 4078 , - 1217 , - 3108 , - 1303 , - 26 , - 3501 , - 3280 , - 3587 , - 198 , - 1561 , - 3452 , - 1647 , - 370 , - 3845 , - 3624 , - 3931 , - 542 , - 1905 , - 3796 , - 1991 , - 714 , - 4189 , - 3968 , - 51 , - 886 , - 2249 , - 4140 , - 2335 , - 1058 , - 309 , - 88 , - 395 , - 1230 , - 2593 , - 260 , - 2679 , - 1402 , - 653 , - 432 , - 739 , - 1574 , - 2937 , - 604 , - 3023 , - 1746 , - 997 , - 776 , - 1083 , - 1918 , - 3281 , - 948 , - 3367 , - 2090 , - 1341 , - 1120 , - 1427 , - 2262 , - 3625 , - 1292 , - 3711 , - 2434 , - 1685 , - 1464 , - 1771 , - 2606 , - 3969 , - 1636 , - 4055 , - 2778 , - 2029 , - 1808 , - 2115 , - 2950 , - 89 , - 1980 , - 175 , - 3122 , - 2373 , - 2152 , - 2459 , - 3294 , - 433 , - 2324 , - 519 , - 3466 , - 2717 , - 2496 , - 2803 , - 3638 , - 777 , - 2668 , - 863 , - 3810 , - 3061 , - 2840 , - 3147 , - 3982 , - 1121 , - 3012 , - 1207 , - 4154 , - 3405 , - 3184 , - 3491 , - 102 , - 1465 , - 3356 , - 1551 , - 274 , - 3749 , - 3528 , - 3835 , - 446 , - 1809 , - 3700 , - 1895 , - 618 , - 4093 , - 3872 , - 4179 , - 790 , - 2153 , - 4044 , - 2239 , - 962 , - 213 , - 4216 , - 299 , - 1134 , - 2497 , - 164 , - 2583 , - 1306 , - 557 , - 336 , - 643 , - 1478 , - 2841 , - 508 , - 2927 , - 1650 , - 901 , - 680 , - 987 , - 1822 , - 3185 , - 852 , - 3271 , - 1994 , - 1245 , - 1024 , - 1331 , - 2166 , - 3529 , - 1196 , - 3615 , - 2338 , - 1589 , - 1368 , - 1675 , - 2510 , - 3873 , - 1540 , - 3959 , - 2682 , - 1933 , - 1712 , - 2019 , - 2854 , - 4217 , - 1884 , - 79 , - 3026 , - 2277 , - 2056 , - 2363 , - 3198 , - 337 , - 2228 , - 423 , - 3370 , - 2621 , - 2400 , - 2707 , - 3542 , - 681 , - 2572 , - 767 , - 3714 , - 2965 , - 2744 , - 3051 , - 3886 , - 1025 , - 2916 , - 1111 , - 4058 , - 3309 , - 3088 , - 3395 , - 6 , - 1369 , - 3260 , - 1455 , - 178 , - 3653 , - 3432 , - 3739 , - 350 , - 1713 , - 3604 , - 1799 , - 522 , - 3997 , - 3776 , - 4083 , - 694 , - 2057 , - 3948 , - 2143 , - 866 , - 117 , - 4120 , - 203 , - 1038 , - 2401 , - 68 , - 2487 , - 1210 , - 461 , - 240 , - 547 , - 1382 , - 2745 , - 412 , - 2831 , - 1554 , - 805 , - 584 , - 891 , - 1726 , - 3089 , - 756 , - 3175 , - 1898 , - 1149 , - 928 , - 1235 , - 2070 , - 3433 , - 1100 , - 3519 , - 2242 , - 1493 , - 1272 , - 1579 , - 2414 , - 3777 , - 1444 , - 3863 , - 2586 , - 1837 , - 1616 , - 1923 , - 2758 , - 4121 , - 1788 , - 4207 , - 2930 , - 2181 , - 1960 , - 2267 , - 3102 , - 241 , - 2132 , - 327 , - 3274 , - 2525 , - 2304 , - 2611 , - 3446 , - 585 , - 2476 , - 671 , - 3618 , - 2869 , - 2648 , - 2955 , - 3790 , - 929 , - 2820 , - 1015 , - 3962 , - 3213 , - 2992 , - 3299 , - 4134 , - 1273 , - 3164 , - 1359 , - 82 , - 3557 , - 3336 , - 3643 , - 254 , - 1617 , - 3508 , - 1703 , - 426 , - 3901 , - 3680 , - 3987 , - 598 , - 1961 , - 3852 , - 2047 , - 770 , - 21 , - 4024 , - 107 , - 942 , - 2305 , - 4196 , - 2391 , - 1114 , - 365 , - 144 , - 451 , - 1286 , - 2649 , - 316 , - 2735 , - 1458 , - 709 , - 488 , - 795 , - 1630 , - 2993 , - 660 , - 3079 , - 1802 , - 1053 , - 832 , - 1139 , - 1974 , - 3337 , - 1004 , - 3423 , - 2146 , - 1397 , - 1176 , - 1483 , - 2318 , - 3681 , - 1348 , - 3767 , - 2490 , - 1741 , - 1520 , - 1827 , - 2662 , - 4025 , - 1692 , - 4111 , - 2834 , - 2085 , - 1864 , - 2171 , - 3006 , - 145 , - 2036 , - 231 , - 3178 , - 2429 , - 2208 , - 2515 , - 3350 , - 489 , - 2380 , - 575 , - 3522 , - 2773 , - 2552 , - 2859 , - 3694 , - 833 , - 2724 , - 919 , - 3866 , - 3117 , - 2896 , - 3203 , - 4038 , - 1177 , - 3068 , - 1263 , - 4210 , - 3461 , - 3240 , - 3547 , - 158 , - 1521 , - 3412 , - 1607 , - 330 , - 3805 , - 3584 , - 3891 , - 502 , - 1865 , - 3756 , - 1951 , - 674 , - 4149 , - 3928 , - 11 , - 846 , - 2209 , - 4100 , - 2295 , - 1018 , - 269 , - 48 , - 355 , - 1190 , - 2553 , - 220 , - 2639 , - 1362 , - 613 , - 392 , - 699 , - 1534 , - 2897 , - 564 , - 2983 , - 1706 , - 957 , - 736 , - 1043 , - 1878 , - 3241 , - 908 , - 3327 , - 2050 , - 1301 , - 1080 , - 1387 , - 2222 , - 3585 , - 1252 , - 3671 , - 2394 , - 1645 , - 1424 , - 1731 , - 2566 , - 3929 , - 1596 , - 4015 , - 2738 , - 1989 , - 1768 , - 2075 , - 2910 , - 49 , - 1940 , - 135 , - 3082 , - 2333 , - 2112 , - 2419 , - 3254 , - 393 , - 2284 , - 479 , - 3426 , - 2677 , - 2456 , - 2763 , - 3598 , - 737 , - 2628 , - 823 , - 3770 , - 3021 , - 2800 , - 3107 , - 3942 , - 1081 , - 2972 , - 1167 , - 4114 , - 3365 , - 3144 , - 3451 , - 62 , - 1425 , - 3316 , - 1511 , - 234 , - 3709 , - 3488 , - 3795 , - 406 , - 1769 , - 3660 , - 1855 , - 578 , - 4053 , - 3832 , - 4139 , - 750 , - 2113 , - 4004 , - 2199 , - 922 , - 173 , - 4176 , - 259 , - 1094 , - 2457 , - 124 , - 2543 , - 1266 , - 517 , - 296 , - 603 , - 1438 , - 2801 , - 468 , - 2887 , - 1610 , - 861 , - 640 , - 947 , - 1782 , - 3145 , - 812 , - 3231 , - 1954 , - 1205 , - 984 , - 1291 , - 2126 , - 3489 , - 1156 , - 3575 , - 2298 , - 1549 , - 1328 , - 1635 , - 2470 , - 3833 , - 1500 , - 3919 , - 2642 , - 1893 , - 1672 , - 1979 , - 2814 , - 4177 , - 1844 , - 39 , - 2986 , - 2237 , - 2016 , - 2323 , - 3158 , - 297 , - 2188 , - 383 , - 3330 , - 2581 , - 2360 , - 2667 , - 3502 , - 641 , - 2532 , - 727 , - 3674 , - 2925 , - 2704 , - 3011 , - 3846 , - 985 , - 2876 , - 1071 , - 4018 , - 3269 , - 3048 , - 3355 , - 4190 , - 1329 , - 3220 , - 1415 , - 138 , - 3613 , - 3392 , - 3699 , - 310 , - 1673 , - 3564 , - 1759 , - 482 , - 3957 , - 3736 , - 4043 , - 654 , - 2017 , - 3908 , - 2103 , - 826 , - 77 , - 4080 , - 163 , - 998 , - 2361 , - 28 , - 2447 , - 1170 , - 421 , - 200 , - 507 , - 1342 , - 2705 , - 372 , - 2791 , - 1514 , - 765 , - 544 , - 851 , - 1686 , - 3049 , - 716 , - 3135 , - 1858 , - 1109 , - 888 , - 1195 , - 2030 , - 3393 , - 1060 , - 3479 , - 2202 , - 1453 , - 1232 , - 1539 , - 2374 , - 3737 , - 1404 , - 3823 , - 2546 , - 1797 , - 1576 , - 1883 , - 2718 , - 4081 , - 1748 , - 4167 , - 2890 , - 2141 , - 1920 , - 2227 , - 3062 , - 201 , - 2092 , - 287 , - 3234 , - 2485 , - 2264 , - 2571 , - 3406 , - 545 , - 2436 , - 631 , - 3578 , - 2829 , - 2608 , - 2915 , - 3750 , - 889 , - 2780 , - 975 , - 3922 , - 3173 , - 2952 , - 3259 , - 4094 , - 1233 , - 3124 , - 1319 , - 42 , - 3517 , - 3296 , - 3603 , - 214 , - 1577 , - 3468 , - 1663 , - 386 , - 3861 , - 3640 , - 3947 , - 558 , - 1921 , - 3812 , - 2007 , - 730 , - 4205 , - 3984 , - 67 , - 902 , - 2265 , - 4156 , - 2351 , - 1074 , - 325 , - 104 , - 411 , - 1246 , - 2609 , - 276 , - 2695 , - 1418 , - 669 , - 448 , - 755 , - 1590 , - 2953 , - 620 , - 3039 , - 1762 , - 1013 , - 792 , - 1099 , - 1934 , - 3297 , - 964 , - 3383 , - 2106 , - 1357 , - 1136 , - 1443 , - 2278 , - 3641 , - 1308 , - 3727 , - 2450 , - 1701 , - 1480 , - 1787 , - 2622 , - 3985 , - 1652 , - 4071 , - 2794 , - 2045 , - 1824 , - 2131 , - 2966 , - 105 , - 1996 , - 191 , - 3138 , - 2389 , - 2168 , - 2475 , - 3310 , - 449 , - 2340 , - 535 , - 3482 , - 2733 , - 2512 , - 2819 , - 3654 , - 793 , - 2684 , - 879 , - 3826 , - 3077 , - 2856 , - 3163 , - 3998 , - 1137 , - 3028 , - 1223 , - 4170 , - 3421 , - 3200 , - 3507 , - 118 , - 1481 , - 3372 , - 1567 , - 290 , - 3765 , - 3544 , - 3851 , - 462 , - 1825 , - 3716 , - 1911 , - 634 , - 4109 , - 3888 , - 4195 , - 806 , - 2169 , - 4060 , - 2255 , - 978 , - 229 , - 8 , - 315 , - 1150 , - 2513 , - 180 , - 2599 , - 1322 , - 573 , - 352 , - 659 , - 1494 , - 2857 , - 524 , - 2943 , - 1666 , - 917 , - 696 , - 1003 , - 1838 , - 3201 , - 868 , - 3287 , - 2010 , - 1261 , - 1040 , - 1347 , - 2182 , - 3545 , - 1212 , - 3631 , - 2354 , - 1605 , - 1384 , - 1691 , - 2526 , - 3889 , - 1556 , - 3975 , - 2698 , - 1949 , - 1728 , - 2035 , - 2870 , - 9 , - 1900 , - 95 , - 3042 , - 2293 , - 2072 , - 2379 , - 3214 , - 353 , - 2244 , - 439 , - 3386 , - 2637 , - 2416 , - 2723 , - 3558 , - 697 , - 2588 , - 783 , - 3730 , - 2981 , - 2760 , - 3067 , - 3902 , - 1041 , - 2932 , - 1127 , - 4074 , - 3325 , - 3104 , - 3411 , - 22 , - 1385 , - 3276 , - 1471 , - 194 , - 3669 , - 3448 , - 3755 , - 366 , - 1729 , - 3620 , - 1815 , - 538 , - 4013 , - 3792 , - 4099 , - 710 , - 2073 , - 3964 , - 2159 , - 882 , - 133 , - 4136 , - 219 , - 1054 , - 2417 , - 84 , - 2503 , - 1226 , - 477 , - 256 , - 563 , - 1398 , - 2761 , - 428 , - 2847 , - 1570 , - 821 , - 600 , - 907 , - 1742 , - 3105 , - 772 , - 3191 , - 1914 , - 1165 , - 944 , - 1251 , - 2086 , - 3449 , - 1116 , - 3535 , - 2258 , - 1509 , - 1288 , - 1595 , - 2430 , - 3793 , - 1460 , - 3879 , - 2602 , - 1853 , - 1632 , - 1939 , - 2774 , - 4137 , - 1804 , - 4223 , - 2946 , - 2197 , - 1976 , - 2283 , - 3118 , - 257 , - 2148 , - 343 , - 3290 , - 2541 , - 2320 , - 2627 , - 3462 , - 601 , - 2492 , - 687 , - 3634 , - 2885 , - 2664 , - 2971 , - 3806 , - 945 , - 2836 , - 1031 , - 3978 , - 3229 , - 3008 , - 3315 , - 4150 , - 1289 , - 3180 , - 1375 , - 98 , - 3573 , - 3352 , - 3659 , - 270 , - 1633 , - 3524 , - 1719 , - 442 , - 3917 , - 3696 , - 4003 , - 614 , - 1977 , - 3868 , - 2063 , - 786 , - 37 , - 4040 , - 123 , - 958 , - 2321 , - 4212 , - 2407 , - 1130 , - 381 , - 160 , - 467 , - 1302 , - 2665 , - 332 , - 2751 , - 1474 , - 725 , - 504 , - 811 , - 1646 , - 3009 , - 676 , - 3095 , - 1818 , - 1069 , - 848 , - 1155 , - 1990 , - 3353 , - 1020 , - 3439 , - 2162 , - 1413 , - 1192 , - 1499 , - 2334 , - 3697 , - 1364 , - 3783 , - 2506 , - 1757 , - 1536 , - 1843 , - 2678 , - 4041 , - 1708 , - 4127 , - 2850 , - 2101 , - 1880 , - 2187 , - 3022 , - 161 , - 2052 , - 247 , - 3194 , - 2445 , - 2224 , - 2531 , - 3366 , - 505 , - 2396 , - 591 , - 3538 , - 2789 , - 2568 , - 2875 , - 3710 , - 849 , - 2740 , - 935 , - 3882 , - 3133 , - 2912 , - 3219 , - 4054 , - 1193 , - 3084 , - 1279 , - 2 , - 3477 , - 3256 , - 3563 , - 174 , - 1537 , - 3428 , - 1623 , - 346 , - 3821 , - 3600 , - 3907 , - 518 , - 1881 , - 3772 , - 1967 , - 690 , - 4165 , - 3944 , - 27 , - 862 , - 2225 , - 4116 , - 2311 , - 1034 , - 285 , - 64 , - 371 , - 1206 , - 2569 , - 236 , - 2655 , - 1378 , - 629 , - 408 , - 715 , - 1550 , - 2913 , - 580 , - 2999 , - 1722 , - 973 , - 752 , - 1059 , - 1894 , - 3257 , - 924 , - 3343 , - 2066 , - 1317 , - 1096 , - 1403 , - 2238 , - 3601 , - 1268 , - 3687 , - 2410 , - 1661 , - 1440 , - 1747 , - 2582 , - 3945 , - 1612 , - 4031 , - 2754 , - 2005 , - 1784 , - 2091 , - 2926 , - 65 , - 1956 , - 151 , - 3098 , - 2349 , - 2128 , - 2435 , - 3270 , - 409 , - 2300 , - 495 , - 3442 , - 2693 , - 2472 , - 2779 , - 3614 , - 753 , - 2644 , - 839 , - 3786 , - 3037 , - 2816 , - 3123 , - 3958 , - 1097 , - 2988 , - 1183 , - 4130 , - 3381 , - 3160 , - 3467 , - 78 , - 1441 , - 3332 , - 1527 , - 250 , - 3725 , - 3504 , - 3811 , - 422 , - 1785 , - 3676 , - 1871 , - 594 , - 4069 , - 3848 , - 4155 , - 766 , - 2129 , - 4020 , - 2215 , - 938 , - 189 , - 4192 , - 275 , - 1110 , - 2473 , - 140 , - 2559 , - 1282 , - 533 , - 312 , - 619 , - 1454 , - 2817 , - 484 , - 2903 , - 1626 , - 877 , - 656 , - 963 , - 1798 , - 3161 , - 828 , - 3247 , - 1970 , - 1221 , - 1000 , - 1307 , - 2142 , - 3505 , - 1172 , - 3591 , - 2314 , - 1565 , - 1344 , - 1651 , - 2486 , - 3849 , - 1516 , - 3935 , - 2658 , - 1909 , - 1688 , - 1995 , - 2830 , - 4193 , - 1860 , - 55 , - 3002 , - 2253 , - 2032 , - 2339 , - 3174 , - 313 , - 2204 , - 399 , - 3346 , - 2597 , - 2376 , - 2683 , - 3518 , - 657 , - 2548 , - 743 , - 3690 , - 2941 , - 2720 , - 3027 , - 3862 , - 1001 , - 2892 , - 1087 , - 4034 , - 3285 , - 3064 , - 3371 , - 4206 , - 1345 , - 3236 , - 1431 , - 154 , - 3629 , - 3408 , - 3715 , - 326 , - 1689 , - 3580 , - 1775 , - 498 , - 3973 , - 3752 , - 4059 , - 670 , - 2033 , - 3924 , - 2119 , - 842 , - 93 , - 4096 , - 179 , - 1014 , - 2377 , - 44 , - 2463 , - 1186 , - 437 , - 216 , - 523 , - 1358 , - 2721 , - 388 , - 2807 , - 1530 , - 781 , - 560 , - 867 , - 1702 , - 3065 , - 732 , - 3151 , - 1874 , - 1125 , - 904 , - 1211 , - 2046 , - 3409 , - 1076 , - 3495 , - 2218 , - 1469 , - 1248 , - 1555 , - 2390 , - 3753 , - 1420 , - 3839 , - 2562 , - 1813 , - 1592 , - 1899 , - 2734 , - 4097 , - 1764 , - 4183 , - 2906 , - 2157 , - 1936 , - 2243 , - 3078 , - 217 , - 2108 , - 303 , - 3250 , - 2501 , - 2280 , - 2587 , - 3422 , - 561 , - 2452 , - 647 , - 3594 , - 2845 , - 2624 , - 2931 , - 3766 , - 905 , - 2796 , - 991 , - 3938 , - 3189 , - 2968 , - 3275 , - 4110 , - 1249 , - 3140 , - 1335 , - 58 , - 3533 , - 3312 , - 3619 , - 230 , - 1593 , - 3484 , - 1679 , - 402 , - 3877 , - 3656 , - 3963 , - 574 , - 1937 , - 3828 , - 2023 , - 746 , - 4221 , - 4000 , - 83 , - 918 , - 2281 , - 4172 , - 2367 , - 1090 , - 341 , - 120 , - 427 , - 1262 , - 2625 , - 292 , - 2711 , - 1434 , - 685 , - 464 , - 771 , - 1606 , - 2969 , - 636 , - 3055 , - 1778 , - 1029 , - 808 , - 1115 , - 1950 , - 3313 , - 980 , - 3399 , - 2122 , - 1373 , - 1152 , - 1459 , - 2294 , - 3657 , - 1324 , - 3743 , - 2466 , - 1717 , - 1496 , - 1803 , - 2638 , - 4001 , - 1668 , - 4087 , - 2810 , - 2061 , - 1840 , - 2147 , - 2982 , - 121 , - 2012 , - 207 , - 3154 , - 2405 , - 2184 , - 2491 , - 3326 , - 465 , - 2356 , - 551 , - 3498 , - 2749 , - 2528 , - 2835 , - 3670 , - 809 , - 2700 , - 895 , - 3842 , - 3093 , - 2872 , - 3179 , - 4014 , - 1153 , - 3044 , - 1239 , - 4186 , - 3437 , - 3216 , - 3523 , - 134 , - 1497 , - 3388 , - 1583 , - 306 , - 3781 , - 3560 , - 3867 , - 478 , - 1841 , - 3732 , - 1927 , - 650 , - 4125 , - 3904 , - 4211 , - 822 , - 2185 , - 4076 , - 2271 , - 994 , - 245 , - 24 , - 331 , - 1166 , - 2529 , - 196 , - 2615 , - 1338 , - 589 , - 368 , - 675 , - 1510 , - 2873 , - 540 , - 2959 , - 1682 , - 933 , - 712 , - 1019 , - 1854 , - 3217 , - 884 , - 3303 , - 2026 , - 1277 , - 1056 , - 1363 , - 2198 , - 3561 , - 1228 , - 3647 , - 2370 , - 1621 , - 1400 , - 1707 , - 2542 , - 3905 , - 1572 , - 3991 , - 2714 , - 1965 , - 1744 , - 2051 , - 2886 , - 25 , - 1916 , - 111 , - 3058 , - 2309 , - 2088 , - 2395 , - 3230 , - 369 , - 2260 , - 455 , - 3402 , - 2653 , - 2432 , - 2739 , - 3574 , - 713 , - 2604 , - 799 , - 3746 , - 2997 , - 2776 , - 3083 , - 3918 , - 1057 , - 2948 , - 1143 , - 4090 , - 3341 , - 3120 , - 3427 , - 38 , - 1401 , - 3292 , - 1487 , - 210 , - 3685 , - 3464 , - 3771 , - 382 , - 1745 , - 3636 , - 1831 , - 554 , - 4029 , - 3808 , - 4115 , - 726 , - 2089 , - 3980 , - 2175 , - 898 , - 149 , - 4152 , - 235 , - 1070 , - 2433 , - 100 , - 2519 , - 1242 , - 493 , - 272 , - 579 , - 1414 , - 2777 , - 444 , - 2863 , - 1586 , - 837 , - 616 , - 923 , - 1758 , - 3121 , - 788 , - 3207 , - 1930 , - 1181 , - 960 , - 1267 , - 2102 , - 3465 , - 1132 , - 3551 , - 2274 , - 1525 , - 1304 , - 1611 , - 2446 , - 3809 , - 1476 , - 3895 , - 2618 , - 1869 , - 1648 , - 1955 , - 2790 , - 4153 , - 1820 , - 15 , - 2962 , - 2213 , - 1992 , - 2299 , - 3134 , - 273 , - 2164 , - 359 , - 3306 , - 2557 , - 2336 , - 2643 , - 3478 , - 617 , - 2508 , - 703 , - 3650 , - 2901 , - 2680 , - 2987 , - 3822 , - 961 , - 2852 , - 1047 , - 3994 , - 3245 , - 3024 , - 3331 , - 4166 , - 1305 , - 3196 , - 1391 , - 114 , - 3589 , - 3368 , - 3675 , - 286 , - 1649 , - 3540 , - 1735 , - 458 , - 3933 , - 3712 , - 4019 , - 630 , - 1993 , - 3884 , - 2079 , - 802 , - 53 , - 4056 , - 139 , - 974 , - 2337 , - 4 , - 2423 , - 1146 , - 397 , - 176 , - 483 , - 1318 , - 2681 , - 348 , - 2767 , - 1490 , - 741 , - 520 , - 827 , - 1662 , - 3025 , - 692 , - 3111 , - 1834 , - 1085 , - 864 , - 1171 , - 2006 , - 3369 , - 1036 , - 3455 , - 2178 , - 1429 , - 1208 , - 1515 , - 2350 , - 3713 , - 1380 , - 3799 , - 2522 , - 1773 , - 1552 , - 1859 , - 2694 , - 4057 , - 1724 , - 4143 , - 2866 , - 2117 , - 1896 , - 2203 , - 3038 , - 177 , - 2068 , - 263 , - 3210 , - 2461 , - 2240 , - 2547 , - 3382 , - 521 , - 2412 , - 607 , - 3554 , - 2805 , - 2584 , - 2891 , - 3726 , - 865 , - 2756 , - 951 , - 3898 , - 3149 , - 2928 , - 3235 , - 4070 , - 1209 , - 3100 , - 1295 , - 18 , - 3493 , - 3272 , - 3579 , - 190 , - 1553 , - 3444 , - 1639 , - 362 , - 3837 , - 3616 , - 3923 , - 534 , - 1897 , - 3788 , - 1983 , - 706 , - 4181 , - 3960 , - 43 , - 878 , - 2241 , - 4132 , - 2327 , - 1050 , - 301 , - 80 , - 387 , - 1222 , - 2585 , - 252 , - 2671 , - 1394 , - 645 , - 424 , - 731 , - 1566 , - 2929 , - 596 , - 3015 , - 1738 , - 989 , - 768 , - 1075 , - 1910 , - 3273 , - 940 , - 3359 , - 2082 , - 1333 , - 1112 , - 1419 , - 2254 , - 3617 , - 1284 , - 3703 , - 2426 , - 1677 , - 1456 , - 1763 , - 2598 , - 3961 , - 1628 , - 4047 , - 2770 , - 2021 , - 1800 , - 2107 , - 2942 , - 81 , - 1972 , - 167 , - 3114 , - 2365 , - 2144 , - 2451 , - 3286 , - 425 , - 2316 , - 511 , - 3458 , - 2709 , - 2488 , - 2795 , - 3630 , - 769 , - 2660 , - 855 , - 3802 , - 3053 , - 2832 , - 3139 , - 3974 , - 1113 , - 3004 , - 1199 , - 4146 , - 3397 , - 3176 , - 3483 , - 94 , - 1457 , - 3348 , - 1543 , - 266 , - 3741 , - 3520 , - 3827 , - 438 , - 1801 , - 3692 , - 1887 , - 610 , - 4085 , - 3864 , - 4171 , - 782 , - 2145 , - 4036 , - 2231 , - 954 , - 205 , - 4208 , - 291 , - 1126 , - 2489 , - 156 , - 2575 , - 1298 , - 549 , - 328 , - 635 , - 1470 , - 2833 , - 500 , - 2919 , - 1642 , - 893 , - 672 , - 979 , - 1814 , - 3177 , - 844 , - 3263 , - 1986 , - 1237 , - 1016 , - 1323 , - 2158 , - 3521 , - 1188 , - 3607 , - 2330 , - 1581 , - 1360 , - 1667 , - 2502 , - 3865 , - 1532 , - 3951 , - 2674 , - 1925 , - 1704 , - 2011 , - 2846 , - 4209 , - 1876 , - 71 , - 3018 , - 2269 , - 2048 , - 2355 , - 3190 , - 329 , - 2220 , - 415 , - 3362 , - 2613 , - 2392 , - 2699 , - 3534 , - 673 , - 2564 , - 759 , - 3706 , - 2957 , - 2736 , - 3043 , - 3878 , - 1017 , - 2908 , - 1103 , - 4050 , - 3301 , - 3080 , - 3387 , - 4222 , - 1361 , - 3252 , - 1447 , - 170 , - 3645 , - 3424 , - 3731 , - 342 , - 1705 , - 3596 , - 1791 , - 514 , - 3989 , - 3768 , - 4075 , - 686 , - 2049 , - 3940 , - 2135 , - 858 , - 109 , - 4112 , - 195 , - 1030 , - 2393 , - 60 , - 2479 , - 1202 , - 453 , - 232 , - 539 , - 1374 , - 2737 , - 404 , - 2823 , - 1546 , - 797 , - 576 , - 883 , - 1718 , - 3081 , - 748 , - 3167 , - 1890 , - 1141 , - 920 , - 1227 , - 2062 , - 3425 , - 1092 , - 3511 , - 2234 , - 1485 , - 1264 , - 1571 , - 2406 , - 3769 , - 1436 , - 3855 , - 2578 , - 1829 , - 1608 , - 1915 , - 2750 , - 4113 , - 1780 , - 4199 , - 2922 , - 2173 , - 1952 , - 2259 , - 3094 , - 233 , - 2124 , - 319 , - 3266 , - 2517 , - 2296 , - 2603 , - 3438 , - 577 , - 2468 , - 663 , - 3610 , - 2861 , - 2640 , - 2947 , - 3782 , - 921 , - 2812 , - 1007 , - 3954 , - 3205 , - 2984 , - 3291 , - 4126 , - 1265 , - 3156 , - 1351 , - 74 , - 3549 , - 3328 , - 3635 , - 246 , - 1609 , - 3500 , - 1695 , - 418 , - 3893 , - 3672 , - 3979 , - 590 , - 1953 , - 3844 , - 2039 , - 762 , - 13 , - 4016 , - 99 , - 934 , - 2297 , - 4188 , - 2383 , - 1106 , - 357 , - 136 , - 443 , - 1278 , - 2641 , - 308 , - 2727 , - 1450 , - 701 , - 480 , - 787 , - 1622 , - 2985 , - 652 , - 3071 , - 1794 , - 1045 , - 824 , - 1131 , - 1966 , - 3329 , - 996 , - 3415 , - 2138 , - 1389 , - 1168 , - 1475 , - 2310 , - 3673 , - 1340 , - 3759 , - 2482 , - 1733 , - 1512 , - 1819 , - 2654 , - 4017 , - 1684 , - 4103 , - 2826 , - 2077 , - 1856 , - 2163 , - 2998 , - 137 , - 2028 , - 223 , - 3170 , - 2421 , - 2200 , - 2507 , - 3342 , - 481 , - 2372 , - 567 , - 3514 , - 2765 , - 2544 , - 2851 , - 3686 , - 825 , - 2716 , - 911 , - 3858 , - 3109 , - 2888 , - 3195 , - 4030 , - 1169 , - 3060 , - 1255 , - 4202 , - 3453 , - 3232 , - 3539 , - 150 , - 1513 , - 3404 , - 1599 , - 322 , - 3797 , - 3576 , - 3883 , - 494 , - 1857 , - 3748 , - 1943 , - 666 , - 4141 , - 3920 , - 3 , - 838 , - 2201 , - 4092 , - 2287 , - 1010 , - 261 , - 40 , - 347 , - 1182 , - 2545 , - 212 , - 2631 , - 1354 , - 605 , - 384 , - 691 , - 1526 , - 2889 , - 556 , - 2975 , - 1698 , - 949 , - 728 , - 1035 , - 1870 , - 3233 , - 900 , - 3319 , - 2042 , - 1293 , - 1072 , - 1379 , - 2214 , - 3577 , - 1244 , - 3663 , - 2386 , - 1637 , - 1416 , - 1723 , - 2558 , - 3921 , - 1588 , - 4007 , - 2730 , - 1981 , - 1760 , - 2067 , - 2902 , - 41 , - 1932 , - 127 , - 3074 , - 2325 , - 2104 , - 2411 , - 3246 , - 385 , - 2276 , - 471 , - 3418 , - 2669 , - 2448 , - 2755 , - 3590 , - 729 , - 2620 , - 815 , - 3762 , - 3013 , - 2792 , - 3099 , - 3934 , - 1073 , - 2964 , - 1159 , - 4106 , - 3357 , - 3136 , - 3443 , - 54 , - 1417 , - 3308 , - 1503 , - 226 , - 3701 , - 3480 , - 3787 , - 398 , - 1761 , - 3652 , - 1847 , - 570 , - 4045 , - 3824 , - 4131 , - 742 , - 2105 , - 3996 , - 2191 , - 914 , - 165 , - 4168 , - 251 , - 1086 , - 2449 , - 116 , - 2535 , - 1258 , - 509 , - 288 , - 595 , - 1430 , - 2793 , - 460 , - 2879 , - 1602 , - 853 , - 632 , - 939 , - 1774 , - 3137 , - 804 , - 3223 , - 1946 , - 1197 , - 976 , - 1283 , - 2118 , - 3481 , - 1148 , - 3567 , - 2290 , - 1541 , - 1320 , - 1627 , - 2462 , - 3825 , - 1492 , - 3911 , - 2634 , - 1885 , - 1664 , - 1971 , - 2806 , - 4169 , - 1836 , - 31 , - 2978 , - 2229 , - 2008 , - 2315 , - 3150 , - 289 , - 2180 , - 375 , - 3322 , - 2573 , - 2352 , - 2659 , - 3494 , - 633 , - 2524 , - 719 , - 3666 , - 2917 , - 2696 , - 3003 , - 3838 , - 977 , - 2868 , - 1063 , - 4010 , - 3261 , - 3040 , - 3347 , - 4182 , - 1321 , - 3212 , - 1407 , - 130 , - 3605 , - 3384 , - 3691 , - 302 , - 1665 , - 3556 , - 1751 , - 474 , - 3949 , - 3728 , - 4035 , - 646 , - 2009 , - 3900 , - 2095 , - 818 , - 69 , - 4072 , - 155 , - 990 , - 2353 , - 20 , - 2439 , - 1162 , - 413 , - 192 , - 499 , - 1334 , - 2697 , - 364 , - 2783 , - 1506 , - 757 , - 536 , - 843 , - 1678 , - 3041 , - 708 , - 3127 , - 1850 , - 1101 , - 880 , - 1187 , - 2022 , - 3385 , - 1052 , - 3471 , - 2194 , - 1445 , - 1224 , - 1531 , - 2366 , - 3729 , - 1396 , - 3815 , - 2538 , - 1789 , - 1568 , - 1875 , - 2710 , - 4073 , - 1740 , - 4159 , - 2882 , - 2133 , - 1912 , - 2219 , - 3054 , - 193 , - 2084 , - 279 , - 3226 , - 2477 , - 2256 , - 2563 , - 3398 , - 537 , - 2428 , - 623 , - 3570 , - 2821 , - 2600 , - 2907 , - 3742 , - 881 , - 2772 , - 967 , - 3914 , - 3165 , - 2944 , - 3251 , - 4086 , - 1225 , - 3116 , - 1311 , - 34 , - 3509 , - 3288 , - 3595 , - 206 , - 1569 , - 3460 , - 1655 , - 378 , - 3853 , - 3632 , - 3939 , - 550 , - 1913 , - 3804 , - 1999 , - 722 , - 4197 , - 3976 , - 59 , - 894 , - 2257 , - 4148 , - 2343 , - 1066 , - 317 , - 96 , - 403 , - 1238 , - 2601 , - 268 , - 2687 , - 1410 , - 661 , - 440 , - 747 , - 1582 , - 2945 , - 612 , - 3031 , - 1754 , - 1005 , - 784 , - 1091 , - 1926 , - 3289 , - 956 , - 3375 , - 2098 , - 1349 , - 1128 , - 1435 , - 2270 , - 3633 , - 1300 , - 3719 , - 2442 , - 1693 , - 1472 , - 1779 , - 2614 , - 3977 , - 1644 , - 4063 , - 2786 , - 2037 , - 1816 , - 2123 , - 2958 , - 97 , - 1988 , - 183 , - 3130 , - 2381 , - 2160 , - 2467 , - 3302 , - 441 , - 2332 , - 527 , - 3474 , - 2725 , - 2504 , - 2811 , - 3646 , - 785 , - 2676 , - 871 , - 3818 , - 3069 , - 2848 , - 3155 , - 3990 , - 1129 , - 3020 , - 1215 , - 4162 , - 3413 , - 3192 , - 3499 , - 110 , - 1473 , - 3364 , - 1559 , - 282 , - 3757 , - 3536 , - 3843 , - 454 , - 1817 , - 3708 , - 1903 , - 626 , - 4101 , - 3880 , - 4187 , - 798 , - 2161 , - 4052 , - 2247 , - 970 , - 221 , - 0 , - 167 , - 602 , - 1305 , - 2276 , - 3515 , - 734 , - 2509 , - 264 , - 2575 , - 866 , - 3713 , - 2540 , - 1635 , - 998 , - 629 , - 528 , - 695 , - 1130 , - 1833 , - 2804 , - 4043 , - 1262 , - 3037 , - 792 , - 3103 , - 1394 , - 4241 , - 3068 , - 2163 , - 1526 , - 1157 , - 1056 , - 1223 , - 1658 , - 2361 , - 3332 , - 283 , - 1790 , - 3565 , - 1320 , - 3631 , - 1922 , - 481 , - 3596 , - 2691 , - 2054 , - 1685 , - 1584 , - 1751 , - 2186 , - 2889 , - 3860 , - 811 , - 2318 , - 4093 , - 1848 , - 4159 , - 2450 , - 1009 , - 4124 , - 3219 , - 2582 , - 2213 , - 2112 , - 2279 , - 2714 , - 3417 , - 100 , - 1339 , - 2846 , - 333 , - 2376 , - 399 , - 2978 , - 1537 , - 364 , - 3747 , - 3110 , - 2741 , - 2640 , - 2807 , - 3242 , - 3945 , - 628 , - 1867 , - 3374 , - 861 , - 2904 , - 927 , - 3506 , - 2065 , - 892 , - 4275 , - 3638 , - 3269 , - 3168 , - 3335 , - 3770 , - 185 , - 1156 , - 2395 , - 3902 , - 1389 , - 3432 , - 1455 , - 4034 , - 2593 , - 1420 , - 515 , - 4166 , - 3797 , - 3696 , - 3863 , - 10 , - 713 , - 1684 , - 2923 , - 142 , - 1917 , - 3960 , - 1983 , - 274 , - 3121 , - 1948 , - 1043 , - 406 , - 37 , - 4224 , - 103 , - 538 , - 1241 , - 2212 , - 3451 , - 670 , - 2445 , - 200 , - 2511 , - 802 , - 3649 , - 2476 , - 1571 , - 934 , - 565 , - 464 , - 631 , - 1066 , - 1769 , - 2740 , - 3979 , - 1198 , - 2973 , - 728 , - 3039 , - 1330 , - 4177 , - 3004 , - 2099 , - 1462 , - 1093 , - 992 , - 1159 , - 1594 , - 2297 , - 3268 , - 219 , - 1726 , - 3501 , - 1256 , - 3567 , - 1858 , - 417 , - 3532 , - 2627 , - 1990 , - 1621 , - 1520 , - 1687 , - 2122 , - 2825 , - 3796 , - 747 , - 2254 , - 4029 , - 1784 , - 4095 , - 2386 , - 945 , - 4060 , - 3155 , - 2518 , - 2149 , - 2048 , - 2215 , - 2650 , - 3353 , - 36 , - 1275 , - 2782 , - 269 , - 2312 , - 335 , - 2914 , - 1473 , - 300 , - 3683 , - 3046 , - 2677 , - 2576 , - 2743 , - 3178 , - 3881 , - 564 , - 1803 , - 3310 , - 797 , - 2840 , - 863 , - 3442 , - 2001 , - 828 , - 4211 , - 3574 , - 3205 , - 3104 , - 3271 , - 3706 , - 121 , - 1092 , - 2331 , - 3838 , - 1325 , - 3368 , - 1391 , - 3970 , - 2529 , - 1356 , - 451 , - 4102 , - 3733 , - 3632 , - 3799 , - 4234 , - 649 , - 1620 , - 2859 , - 78 , - 1853 , - 3896 , - 1919 , - 210 , - 3057 , - 1884 , - 979 , - 342 , - 4261 , - 4160 , - 39 , - 474 , - 1177 , - 2148 , - 3387 , - 606 , - 2381 , - 136 , - 2447 , - 738 , - 3585 , - 2412 , - 1507 , - 870 , - 501 , - 400 , - 567 , - 1002 , - 1705 , - 2676 , - 3915 , - 1134 , - 2909 , - 664 , - 2975 , - 1266 , - 4113 , - 2940 , - 2035 , - 1398 , - 1029 , - 928 , - 1095 , - 1530 , - 2233 , - 3204 , - 155 , - 1662 , - 3437 , - 1192 , - 3503 , - 1794 , - 353 , - 3468 , - 2563 , - 1926 , - 1557 , - 1456 , - 1623 , - 2058 , - 2761 , - 3732 , - 683 , - 2190 , - 3965 , - 1720 , - 4031 , - 2322 , - 881 , - 3996 , - 3091 , - 2454 , - 2085 , - 1984 , - 2151 , - 2586 , - 3289 , - 4260 , - 1211 , - 2718 , - 205 , - 2248 , - 271 , - 2850 , - 1409 , - 236 , - 3619 , - 2982 , - 2613 , - 2512 , - 2679 , - 3114 , - 3817 , - 500 , - 1739 , - 3246 , - 733 , - 2776 , - 799 , - 3378 , - 1937 , - 764 , - 4147 , - 3510 , - 3141 , - 3040 , - 3207 , - 3642 , - 57 , - 1028 , - 2267 , - 3774 , - 1261 , - 3304 , - 1327 , - 3906 , - 2465 , - 1292 , - 387 , - 4038 , - 3669 , - 3568 , - 3735 , - 4170 , - 585 , - 1556 , - 2795 , - 14 , - 1789 , - 3832 , - 1855 , - 146 , - 2993 , - 1820 , - 915 , - 278 , - 4197 , - 4096 , - 4263 , - 410 , - 1113 , - 2084 , - 3323 , - 542 , - 2317 , - 72 , - 2383 , - 674 , - 3521 , - 2348 , - 1443 , - 806 , - 437 , - 336 , - 503 , - 938 , - 1641 , - 2612 , - 3851 , - 1070 , - 2845 , - 600 , - 2911 , - 1202 , - 4049 , - 2876 , - 1971 , - 1334 , - 965 , - 864 , - 1031 , - 1466 , - 2169 , - 3140 , - 91 , - 1598 , - 3373 , - 1128 , - 3439 , - 1730 , - 289 , - 3404 , - 2499 , - 1862 , - 1493 , - 1392 , - 1559 , - 1994 , - 2697 , - 3668 , - 619 , - 2126 , - 3901 , - 1656 , - 3967 , - 2258 , - 817 , - 3932 , - 3027 , - 2390 , - 2021 , - 1920 , - 2087 , - 2522 , - 3225 , - 4196 , - 1147 , - 2654 , - 141 , - 2184 , - 207 , - 2786 , - 1345 , - 172 , - 3555 , - 2918 , - 2549 , - 2448 , - 2615 , - 3050 , - 3753 , - 436 , - 1675 , - 3182 , - 669 , - 2712 , - 735 , - 3314 , - 1873 , - 700 , - 4083 , - 3446 , - 3077 , - 2976 , - 3143 , - 3578 , - 4281 , - 964 , - 2203 , - 3710 , - 1197 , - 3240 , - 1263 , - 3842 , - 2401 , - 1228 , - 323 , - 3974 , - 3605 , - 3504 , - 3671 , - 4106 , - 521 , - 1492 , - 2731 , - 4238 , - 1725 , - 3768 , - 1791 , - 82 , - 2929 , - 1756 , - 851 , - 214 , - 4133 , - 4032 , - 4199 , - 346 , - 1049 , - 2020 , - 3259 , - 478 , - 2253 , - 8 , - 2319 , - 610 , - 3457 , - 2284 , - 1379 , - 742 , - 373 , - 272 , - 439 , - 874 , - 1577 , - 2548 , - 3787 , - 1006 , - 2781 , - 536 , - 2847 , - 1138 , - 3985 , - 2812 , - 1907 , - 1270 , - 901 , - 800 , - 967 , - 1402 , - 2105 , - 3076 , - 27 , - 1534 , - 3309 , - 1064 , - 3375 , - 1666 , - 225 , - 3340 , - 2435 , - 1798 , - 1429 , - 1328 , - 1495 , - 1930 , - 2633 , - 3604 , - 555 , - 2062 , - 3837 , - 1592 , - 3903 , - 2194 , - 753 , - 3868 , - 2963 , - 2326 , - 1957 , - 1856 , - 2023 , - 2458 , - 3161 , - 4132 , - 1083 , - 2590 , - 77 , - 2120 , - 143 , - 2722 , - 1281 , - 108 , - 3491 , - 2854 , - 2485 , - 2384 , - 2551 , - 2986 , - 3689 , - 372 , - 1611 , - 3118 , - 605 , - 2648 , - 671 , - 3250 , - 1809 , - 636 , - 4019 , - 3382 , - 3013 , - 2912 , - 3079 , - 3514 , - 4217 , - 900 , - 2139 , - 3646 , - 1133 , - 3176 , - 1199 , - 3778 , - 2337 , - 1164 , - 259 , - 3910 , - 3541 , - 3440 , - 3607 , - 4042 , - 457 , - 1428 , - 2667 , - 4174 , - 1661 , - 3704 , - 1727 , - 18 , - 2865 , - 1692 , - 787 , - 150 , - 4069 , - 3968 , - 4135 , - 282 , - 985 , - 1956 , - 3195 , - 414 , - 2189 , - 4232 , - 2255 , - 546 , - 3393 , - 2220 , - 1315 , - 678 , - 309 , - 208 , - 375 , - 810 , - 1513 , - 2484 , - 3723 , - 942 , - 2717 , - 472 , - 2783 , - 1074 , - 3921 , - 2748 , - 1843 , - 1206 , - 837 , - 736 , - 903 , - 1338 , - 2041 , - 3012 , - 4251 , - 1470 , - 3245 , - 1000 , - 3311 , - 1602 , - 161 , - 3276 , - 2371 , - 1734 , - 1365 , - 1264 , - 1431 , - 1866 , - 2569 , - 3540 , - 491 , - 1998 , - 3773 , - 1528 , - 3839 , - 2130 , - 689 , - 3804 , - 2899 , - 2262 , - 1893 , - 1792 , - 1959 , - 2394 , - 3097 , - 4068 , - 1019 , - 2526 , - 13 , - 2056 , - 79 , - 2658 , - 1217 , - 44 , - 3427 , - 2790 , - 2421 , - 2320 , - 2487 , - 2922 , - 3625 , - 308 , - 1547 , - 3054 , - 541 , - 2584 , - 607 , - 3186 , - 1745 , - 572 , - 3955 , - 3318 , - 2949 , - 2848 , - 3015 , - 3450 , - 4153 , - 836 , - 2075 , - 3582 , - 1069 , - 3112 , - 1135 , - 3714 , - 2273 , - 1100 , - 195 , - 3846 , - 3477 , - 3376 , - 3543 , - 3978 , - 393 , - 1364 , - 2603 , - 4110 , - 1597 , - 3640 , - 1663 , - 4242 , - 2801 , - 1628 , - 723 , - 86 , - 4005 , - 3904 , - 4071 , - 218 , - 921 , - 1892 , - 3131 , - 350 , - 2125 , - 4168 , - 2191 , - 482 , - 3329 , - 2156 , - 1251 , - 614 , - 245 , - 144 , - 311 , - 746 , - 1449 , - 2420 , - 3659 , - 878 , - 2653 , - 408 , - 2719 , - 1010 , - 3857 , - 2684 , - 1779 , - 1142 , - 773 , - 672 , - 839 , - 1274 , - 1977 , - 2948 , - 4187 , - 1406 , - 3181 , - 936 , - 3247 , - 1538 , - 97 , - 3212 , - 2307 , - 1670 , - 1301 , - 1200 , - 1367 , - 1802 , - 2505 , - 3476 , - 427 , - 1934 , - 3709 , - 1464 , - 3775 , - 2066 , - 625 , - 3740 , - 2835 , - 2198 , - 1829 , - 1728 , - 1895 , - 2330 , - 3033 , - 4004 , - 955 , - 2462 , - 4237 , - 1992 , - 15 , - 2594 , - 1153 , - 4268 , - 3363 , - 2726 , - 2357 , - 2256 , - 2423 , - 2858 , - 3561 , - 244 , - 1483 , - 2990 , - 477 , - 2520 , - 543 , - 3122 , - 1681 , - 508 , - 3891 , - 3254 , - 2885 , - 2784 , - 2951 , - 3386 , - 4089 , - 772 , - 2011 , - 3518 , - 1005 , - 3048 , - 1071 , - 3650 , - 2209 , - 1036 , - 131 , - 3782 , - 3413 , - 3312 , - 3479 , - 3914 , - 329 , - 1300 , - 2539 , - 4046 , - 1533 , - 3576 , - 1599 , - 4178 , - 2737 , - 1564 , - 659 , - 22 , - 3941 , - 3840 , - 4007 , - 154 , - 857 , - 1828 , - 3067 , - 286 , - 2061 , - 4104 , - 2127 , - 418 , - 3265 , - 2092 , - 1187 , - 550 , - 181 , - 80 , - 247 , - 682 , - 1385 , - 2356 , - 3595 , - 814 , - 2589 , - 344 , - 2655 , - 946 , - 3793 , - 2620 , - 1715 , - 1078 , - 709 , - 608 , - 775 , - 1210 , - 1913 , - 2884 , - 4123 , - 1342 , - 3117 , - 872 , - 3183 , - 1474 , - 33 , - 3148 , - 2243 , - 1606 , - 1237 , - 1136 , - 1303 , - 1738 , - 2441 , - 3412 , - 363 , - 1870 , - 3645 , - 1400 , - 3711 , - 2002 , - 561 , - 3676 , - 2771 , - 2134 , - 1765 , - 1664 , - 1831 , - 2266 , - 2969 , - 3940 , - 891 , - 2398 , - 4173 , - 1928 , - 4239 , - 2530 , - 1089 , - 4204 , - 3299 , - 2662 , - 2293 , - 2192 , - 2359 , - 2794 , - 3497 , - 180 , - 1419 , - 2926 , - 413 , - 2456 , - 479 , - 3058 , - 1617 , - 444 , - 3827 , - 3190 , - 2821 , - 2720 , - 2887 , - 3322 , - 4025 , - 708 , - 1947 , - 3454 , - 941 , - 2984 , - 1007 , - 3586 , - 2145 , - 972 , - 67 , - 3718 , - 3349 , - 3248 , - 3415 , - 3850 , - 265 , - 1236 , - 2475 , - 3982 , - 1469 , - 3512 , - 1535 , - 4114 , - 2673 , - 1500 , - 595 , - 4246 , - 3877 , - 3776 , - 3943 , - 90 , - 793 , - 1764 , - 3003 , - 222 , - 1997 , - 4040 , - 2063 , - 354 , - 3201 , - 2028 , - 1123 , - 486 , - 117 , - 16 , - 183 , - 618 , - 1321 , - 2292 , - 3531 , - 750 , - 2525 , - 280 , - 2591 , - 882 , - 3729 , - 2556 , - 1651 , - 1014 , - 645 , - 544 , - 711 , - 1146 , - 1849 , - 2820 , - 4059 , - 1278 , - 3053 , - 808 , - 3119 , - 1410 , - 4257 , - 3084 , - 2179 , - 1542 , - 1173 , - 1072 , - 1239 , - 1674 , - 2377 , - 3348 , - 299 , - 1806 , - 3581 , - 1336 , - 3647 , - 1938 , - 497 , - 3612 , - 2707 , - 2070 , - 1701 , - 1600 , - 1767 , - 2202 , - 2905 , - 3876 , - 827 , - 2334 , - 4109 , - 1864 , - 4175 , - 2466 , - 1025 , - 4140 , - 3235 , - 2598 , - 2229 , - 2128 , - 2295 , - 2730 , - 3433 , - 116 , - 1355 , - 2862 , - 349 , - 2392 , - 415 , - 2994 , - 1553 , - 380 , - 3763 , - 3126 , - 2757 , - 2656 , - 2823 , - 3258 , - 3961 , - 644 , - 1883 , - 3390 , - 877 , - 2920 , - 943 , - 3522 , - 2081 , - 908 , - 3 , - 3654 , - 3285 , - 3184 , - 3351 , - 3786 , - 201 , - 1172 , - 2411 , - 3918 , - 1405 , - 3448 , - 1471 , - 4050 , - 2609 , - 1436 , - 531 , - 4182 , - 3813 , - 3712 , - 3879 , - 26 , - 729 , - 1700 , - 2939 , - 158 , - 1933 , - 3976 , - 1999 , - 290 , - 3137 , - 1964 , - 1059 , - 422 , - 53 , - 4240 , - 119 , - 554 , - 1257 , - 2228 , - 3467 , - 686 , - 2461 , - 216 , - 2527 , - 818 , - 3665 , - 2492 , - 1587 , - 950 , - 581 , - 480 , - 647 , - 1082 , - 1785 , - 2756 , - 3995 , - 1214 , - 2989 , - 744 , - 3055 , - 1346 , - 4193 , - 3020 , - 2115 , - 1478 , - 1109 , - 1008 , - 1175 , - 1610 , - 2313 , - 3284 , - 235 , - 1742 , - 3517 , - 1272 , - 3583 , - 1874 , - 433 , - 3548 , - 2643 , - 2006 , - 1637 , - 1536 , - 1703 , - 2138 , - 2841 , - 3812 , - 763 , - 2270 , - 4045 , - 1800 , - 4111 , - 2402 , - 961 , - 4076 , - 3171 , - 2534 , - 2165 , - 2064 , - 2231 , - 2666 , - 3369 , - 52 , - 1291 , - 2798 , - 285 , - 2328 , - 351 , - 2930 , - 1489 , - 316 , - 3699 , - 3062 , - 2693 , - 2592 , - 2759 , - 3194 , - 3897 , - 580 , - 1819 , - 3326 , - 813 , - 2856 , - 879 , - 3458 , - 2017 , - 844 , - 4227 , - 3590 , - 3221 , - 3120 , - 3287 , - 3722 , - 137 , - 1108 , - 2347 , - 3854 , - 1341 , - 3384 , - 1407 , - 3986 , - 2545 , - 1372 , - 467 , - 4118 , - 3749 , - 3648 , - 3815 , - 4250 , - 665 , - 1636 , - 2875 , - 94 , - 1869 , - 3912 , - 1935 , - 226 , - 3073 , - 1900 , - 995 , - 358 , - 4277 , - 4176 , - 55 , - 490 , - 1193 , - 2164 , - 3403 , - 622 , - 2397 , - 152 , - 2463 , - 754 , - 3601 , - 2428 , - 1523 , - 886 , - 517 , - 416 , - 583 , - 1018 , - 1721 , - 2692 , - 3931 , - 1150 , - 2925 , - 680 , - 2991 , - 1282 , - 4129 , - 2956 , - 2051 , - 1414 , - 1045 , - 944 , - 1111 , - 1546 , - 2249 , - 3220 , - 171 , - 1678 , - 3453 , - 1208 , - 3519 , - 1810 , - 369 , - 3484 , - 2579 , - 1942 , - 1573 , - 1472 , - 1639 , - 2074 , - 2777 , - 3748 , - 699 , - 2206 , - 3981 , - 1736 , - 4047 , - 2338 , - 897 , - 4012 , - 3107 , - 2470 , - 2101 , - 2000 , - 2167 , - 2602 , - 3305 , - 4276 , - 1227 , - 2734 , - 221 , - 2264 , - 287 , - 2866 , - 1425 , - 252 , - 3635 , - 2998 , - 2629 , - 2528 , - 2695 , - 3130 , - 3833 , - 516 , - 1755 , - 3262 , - 749 , - 2792 , - 815 , - 3394 , - 1953 , - 780 , - 4163 , - 3526 , - 3157 , - 3056 , - 3223 , - 3658 , - 73 , - 1044 , - 2283 , - 3790 , - 1277 , - 3320 , - 1343 , - 3922 , - 2481 , - 1308 , - 403 , - 4054 , - 3685 , - 3584 , - 3751 , - 4186 , - 601 , - 1572 , - 2811 , - 30 , - 1805 , - 3848 , - 1871 , - 162 , - 3009 , - 1836 , - 931 , - 294 , - 4213 , - 4112 , - 4279 , - 426 , - 1129 , - 2100 , - 3339 , - 558 , - 2333 , - 88 , - 2399 , - 690 , - 3537 , - 2364 , - 1459 , - 822 , - 453 , - 352 , - 519 , - 954 , - 1657 , - 2628 , - 3867 , - 1086 , - 2861 , - 616 , - 2927 , - 1218 , - 4065 , - 2892 , - 1987 , - 1350 , - 981 , - 880 , - 1047 , - 1482 , - 2185 , - 3156 , - 107 , - 1614 , - 3389 , - 1144 , - 3455 , - 1746 , - 305 , - 3420 , - 2515 , - 1878 , - 1509 , - 1408 , - 1575 , - 2010 , - 2713 , - 3684 , - 635 , - 2142 , - 3917 , - 1672 , - 3983 , - 2274 , - 833 , - 3948 , - 3043 , - 2406 , - 2037 , - 1936 , - 2103 , - 2538 , - 3241 , - 4212 , - 1163 , - 2670 , - 157 , - 2200 , - 223 , - 2802 , - 1361 , - 188 , - 3571 , - 2934 , - 2565 , - 2464 , - 2631 , - 3066 , - 3769 , - 452 , - 1691 , - 3198 , - 685 , - 2728 , - 751 , - 3330 , - 1889 , - 716 , - 4099 , - 3462 , - 3093 , - 2992 , - 3159 , - 3594 , - 9 , - 980 , - 2219 , - 3726 , - 1213 , - 3256 , - 1279 , - 3858 , - 2417 , - 1244 , - 339 , - 3990 , - 3621 , - 3520 , - 3687 , - 4122 , - 537 , - 1508 , - 2747 , - 4254 , - 1741 , - 3784 , - 1807 , - 98 , - 2945 , - 1772 , - 867 , - 230 , - 4149 , - 4048 , - 4215 , - 362 , - 1065 , - 2036 , - 3275 , - 494 , - 2269 , - 24 , - 2335 , - 626 , - 3473 , - 2300 , - 1395 , - 758 , - 389 , - 288 , - 455 , - 890 , - 1593 , - 2564 , - 3803 , - 1022 , - 2797 , - 552 , - 2863 , - 1154 , - 4001 , - 2828 , - 1923 , - 1286 , - 917 , - 816 , - 983 , - 1418 , - 2121 , - 3092 , - 43 , - 1550 , - 3325 , - 1080 , - 3391 , - 1682 , - 241 , - 3356 , - 2451 , - 1814 , - 1445 , - 1344 , - 1511 , - 1946 , - 2649 , - 3620 , - 571 , - 2078 , - 3853 , - 1608 , - 3919 , - 2210 , - 769 , - 3884 , - 2979 , - 2342 , - 1973 , - 1872 , - 2039 , - 2474 , - 3177 , - 4148 , - 1099 , - 2606 , - 93 , - 2136 , - 159 , - 2738 , - 1297 , - 124 , - 3507 , - 2870 , - 2501 , - 2400 , - 2567 , - 3002 , - 3705 , - 388 , - 1627 , - 3134 , - 621 , - 2664 , - 687 , - 3266 , - 1825 , - 652 , - 4035 , - 3398 , - 3029 , - 2928 , - 3095 , - 3530 , - 4233 , - 916 , - 2155 , - 3662 , - 1149 , - 3192 , - 1215 , - 3794 , - 2353 , - 1180 , - 275 , - 3926 , - 3557 , - 3456 , - 3623 , - 4058 , - 473 , - 1444 , - 2683 , - 4190 , - 1677 , - 3720 , - 1743 , - 34 , - 2881 , - 1708 , - 803 , - 166 , - 4085 , - 3984 , - 4151 , - 298 , - 1001 , - 1972 , - 3211 , - 430 , - 2205 , - 4248 , - 2271 , - 562 , - 3409 , - 2236 , - 1331 , - 694 , - 325 , - 224 , - 391 , - 826 , - 1529 , - 2500 , - 3739 , - 958 , - 2733 , - 488 , - 2799 , - 1090 , - 3937 , - 2764 , - 1859 , - 1222 , - 853 , - 752 , - 919 , - 1354 , - 2057 , - 3028 , - 4267 , - 1486 , - 3261 , - 1016 , - 3327 , - 1618 , - 177 , - 3292 , - 2387 , - 1750 , - 1381 , - 1280 , - 1447 , - 1882 , - 2585 , - 3556 , - 507 , - 2014 , - 3789 , - 1544 , - 3855 , - 2146 , - 705 , - 3820 , - 2915 , - 2278 , - 1909 , - 1808 , - 1975 , - 2410 , - 3113 , - 4084 , - 1035 , - 2542 , - 29 , - 2072 , - 95 , - 2674 , - 1233 , - 60 , - 3443 , - 2806 , - 2437 , - 2336 , - 2503 , - 2938 , - 3641 , - 324 , - 1563 , - 3070 , - 557 , - 2600 , - 623 , - 3202 , - 1761 , - 588 , - 3971 , - 3334 , - 2965 , - 2864 , - 3031 , - 3466 , - 4169 , - 852 , - 2091 , - 3598 , - 1085 , - 3128 , - 1151 , - 3730 , - 2289 , - 1116 , - 211 , - 3862 , - 3493 , - 3392 , - 3559 , - 3994 , - 409 , - 1380 , - 2619 , - 4126 , - 1613 , - 3656 , - 1679 , - 4258 , - 2817 , - 1644 , - 739 , - 102 , - 4021 , - 3920 , - 4087 , - 234 , - 937 , - 1908 , - 3147 , - 366 , - 2141 , - 4184 , - 2207 , - 498 , - 3345 , - 2172 , - 1267 , - 630 , - 261 , - 160 , - 327 , - 762 , - 1465 , - 2436 , - 3675 , - 894 , - 2669 , - 424 , - 2735 , - 1026 , - 3873 , - 2700 , - 1795 , - 1158 , - 789 , - 688 , - 855 , - 1290 , - 1993 , - 2964 , - 4203 , - 1422 , - 3197 , - 952 , - 3263 , - 1554 , - 113 , - 3228 , - 2323 , - 1686 , - 1317 , - 1216 , - 1383 , - 1818 , - 2521 , - 3492 , - 443 , - 1950 , - 3725 , - 1480 , - 3791 , - 2082 , - 641 , - 3756 , - 2851 , - 2214 , - 1845 , - 1744 , - 1911 , - 2346 , - 3049 , - 4020 , - 971 , - 2478 , - 4253 , - 2008 , - 31 , - 2610 , - 1169 , - 4284 , - 3379 , - 2742 , - 2373 , - 2272 , - 2439 , - 2874 , - 3577 , - 260 , - 1499 , - 3006 , - 493 , - 2536 , - 559 , - 3138 , - 1697 , - 524 , - 3907 , - 3270 , - 2901 , - 2800 , - 2967 , - 3402 , - 4105 , - 788 , - 2027 , - 3534 , - 1021 , - 3064 , - 1087 , - 3666 , - 2225 , - 1052 , - 147 , - 3798 , - 3429 , - 3328 , - 3495 , - 3930 , - 345 , - 1316 , - 2555 , - 4062 , - 1549 , - 3592 , - 1615 , - 4194 , - 2753 , - 1580 , - 675 , - 38 , - 3957 , - 3856 , - 4023 , - 170 , - 873 , - 1844 , - 3083 , - 302 , - 2077 , - 4120 , - 2143 , - 434 , - 3281 , - 2108 , - 1203 , - 566 , - 197 , - 96 , - 263 , - 698 , - 1401 , - 2372 , - 3611 , - 830 , - 2605 , - 360 , - 2671 , - 962 , - 3809 , - 2636 , - 1731 , - 1094 , - 725 , - 624 , - 791 , - 1226 , - 1929 , - 2900 , - 4139 , - 1358 , - 3133 , - 888 , - 3199 , - 1490 , - 49 , - 3164 , - 2259 , - 1622 , - 1253 , - 1152 , - 1319 , - 1754 , - 2457 , - 3428 , - 379 , - 1886 , - 3661 , - 1416 , - 3727 , - 2018 , - 577 , - 3692 , - 2787 , - 2150 , - 1781 , - 1680 , - 1847 , - 2282 , - 2985 , - 3956 , - 907 , - 2414 , - 4189 , - 1944 , - 4255 , - 2546 , - 1105 , - 4220 , - 3315 , - 2678 , - 2309 , - 2208 , - 2375 , - 2810 , - 3513 , - 196 , - 1435 , - 2942 , - 429 , - 2472 , - 495 , - 3074 , - 1633 , - 460 , - 3843 , - 3206 , - 2837 , - 2736 , - 2903 , - 3338 , - 4041 , - 724 , - 1963 , - 3470 , - 957 , - 3000 , - 1023 , - 3602 , - 2161 , - 988 , - 83 , - 3734 , - 3365 , - 3264 , - 3431 , - 3866 , - 281 , - 1252 , - 2491 , - 3998 , - 1485 , - 3528 , - 1551 , - 4130 , - 2689 , - 1516 , - 611 , - 4262 , - 3893 , - 3792 , - 3959 , - 106 , - 809 , - 1780 , - 3019 , - 238 , - 2013 , - 4056 , - 2079 , - 370 , - 3217 , - 2044 , - 1139 , - 502 , - 133 , - 32 , - 199 , - 634 , - 1337 , - 2308 , - 3547 , - 766 , - 2541 , - 296 , - 2607 , - 898 , - 3745 , - 2572 , - 1667 , - 1030 , - 661 , - 560 , - 727 , - 1162 , - 1865 , - 2836 , - 4075 , - 1294 , - 3069 , - 824 , - 3135 , - 1426 , - 4273 , - 3100 , - 2195 , - 1558 , - 1189 , - 1088 , - 1255 , - 1690 , - 2393 , - 3364 , - 315 , - 1822 , - 3597 , - 1352 , - 3663 , - 1954 , - 513 , - 3628 , - 2723 , - 2086 , - 1717 , - 1616 , - 1783 , - 2218 , - 2921 , - 3892 , - 843 , - 2350 , - 4125 , - 1880 , - 4191 , - 2482 , - 1041 , - 4156 , - 3251 , - 2614 , - 2245 , - 2144 , - 2311 , - 2746 , - 3449 , - 132 , - 1371 , - 2878 , - 365 , - 2408 , - 431 , - 3010 , - 1569 , - 396 , - 3779 , - 3142 , - 2773 , - 2672 , - 2839 , - 3274 , - 3977 , - 660 , - 1899 , - 3406 , - 893 , - 2936 , - 959 , - 3538 , - 2097 , - 924 , - 19 , - 3670 , - 3301 , - 3200 , - 3367 , - 3802 , - 217 , - 1188 , - 2427 , - 3934 , - 1421 , - 3464 , - 1487 , - 4066 , - 2625 , - 1452 , - 547 , - 4198 , - 3829 , - 3728 , - 3895 , - 42 , - 745 , - 1716 , - 2955 , - 174 , - 1949 , - 3992 , - 2015 , - 306 , - 3153 , - 1980 , - 1075 , - 438 , - 69 , - 4256 , - 135 , - 570 , - 1273 , - 2244 , - 3483 , - 702 , - 2477 , - 232 , - 2543 , - 834 , - 3681 , - 2508 , - 1603 , - 966 , - 597 , - 496 , - 663 , - 1098 , - 1801 , - 2772 , - 4011 , - 1230 , - 3005 , - 760 , - 3071 , - 1362 , - 4209 , - 3036 , - 2131 , - 1494 , - 1125 , - 1024 , - 1191 , - 1626 , - 2329 , - 3300 , - 251 , - 1758 , - 3533 , - 1288 , - 3599 , - 1890 , - 449 , - 3564 , - 2659 , - 2022 , - 1653 , - 1552 , - 1719 , - 2154 , - 2857 , - 3828 , - 779 , - 2286 , - 4061 , - 1816 , - 4127 , - 2418 , - 977 , - 4092 , - 3187 , - 2550 , - 2181 , - 2080 , - 2247 , - 2682 , - 3385 , - 68 , - 1307 , - 2814 , - 301 , - 2344 , - 367 , - 2946 , - 1505 , - 332 , - 3715 , - 3078 , - 2709 , - 2608 , - 2775 , - 3210 , - 3913 , - 596 , - 1835 , - 3342 , - 829 , - 2872 , - 895 , - 3474 , - 2033 , - 860 , - 4243 , - 3606 , - 3237 , - 3136 , - 3303 , - 3738 , - 153 , - 1124 , - 2363 , - 3870 , - 1357 , - 3400 , - 1423 , - 4002 , - 2561 , - 1388 , - 483 , - 4134 , - 3765 , - 3664 , - 3831 , - 4266 , - 681 , - 1652 , - 2891 , - 110 , - 1885 , - 3928 , - 1951 , - 242 , - 3089 , - 1916 , - 1011 , - 374 , - 5 , - 4192 , - 71 , - 506 , - 1209 , - 2180 , - 3419 , - 638 , - 2413 , - 168 , - 2479 , - 770 , - 3617 , - 2444 , - 1539 , - 902 , - 533 , - 432 , - 599 , - 1034 , - 1737 , - 2708 , - 3947 , - 1166 , - 2941 , - 696 , - 3007 , - 1298 , - 4145 , - 2972 , - 2067 , - 1430 , - 1061 , - 960 , - 1127 , - 1562 , - 2265 , - 3236 , - 187 , - 1694 , - 3469 , - 1224 , - 3535 , - 1826 , - 385 , - 3500 , - 2595 , - 1958 , - 1589 , - 1488 , - 1655 , - 2090 , - 2793 , - 3764 , - 715 , - 2222 , - 3997 , - 1752 , - 4063 , - 2354 , - 913 , - 4028 , - 3123 , - 2486 , - 2117 , - 2016 , - 2183 , - 2618 , - 3321 , - 4 , - 1243 , - 2750 , - 237 , - 2280 , - 303 , - 2882 , - 1441 , - 268 , - 3651 , - 3014 , - 2645 , - 2544 , - 2711 , - 3146 , - 3849 , - 532 , - 1771 , - 3278 , - 765 , - 2808 , - 831 , - 3410 , - 1969 , - 796 , - 4179 , - 3542 , - 3173 , - 3072 , - 3239 , - 3674 , - 89 , - 1060 , - 2299 , - 3806 , - 1293 , - 3336 , - 1359 , - 3938 , - 2497 , - 1324 , - 419 , - 4070 , - 3701 , - 3600 , - 3767 , - 4202 , - 617 , - 1588 , - 2827 , - 46 , - 1821 , - 3864 , - 1887 , - 178 , - 3025 , - 1852 , - 947 , - 310 , - 4229 , - 4128 , - 7 , - 442 , - 1145 , - 2116 , - 3355 , - 574 , - 2349 , - 104 , - 2415 , - 706 , - 3553 , - 2380 , - 1475 , - 838 , - 469 , - 368 , - 535 , - 970 , - 1673 , - 2644 , - 3883 , - 1102 , - 2877 , - 632 , - 2943 , - 1234 , - 4081 , - 2908 , - 2003 , - 1366 , - 997 , - 896 , - 1063 , - 1498 , - 2201 , - 3172 , - 123 , - 1630 , - 3405 , - 1160 , - 3471 , - 1762 , - 321 , - 3436 , - 2531 , - 1894 , - 1525 , - 1424 , - 1591 , - 2026 , - 2729 , - 3700 , - 651 , - 2158 , - 3933 , - 1688 , - 3999 , - 2290 , - 849 , - 3964 , - 3059 , - 2422 , - 2053 , - 1952 , - 2119 , - 2554 , - 3257 , - 4228 , - 1179 , - 2686 , - 173 , - 2216 , - 239 , - 2818 , - 1377 , - 204 , - 3587 , - 2950 , - 2581 , - 2480 , - 2647 , - 3082 , - 3785 , - 468 , - 1707 , - 3214 , - 701 , - 2744 , - 767 , - 3346 , - 1905 , - 732 , - 4115 , - 3478 , - 3109 , - 3008 , - 3175 , - 3610 , - 25 , - 996 , - 2235 , - 3742 , - 1229 , - 3272 , - 1295 , - 3874 , - 2433 , - 1260 , - 355 , - 4006 , - 3637 , - 3536 , - 3703 , - 4138 , - 553 , - 1524 , - 2763 , - 4270 , - 1757 , - 3800 , - 1823 , - 114 , - 2961 , - 1788 , - 883 , - 246 , - 4165 , - 4064 , - 4231 , - 378 , - 1081 , - 2052 , - 3291 , - 510 , - 2285 , - 40 , - 2351 , - 642 , - 3489 , - 2316 , - 1411 , - 774 , - 405 , - 304 , - 471 , - 906 , - 1609 , - 2580 , - 3819 , - 1038 , - 2813 , - 568 , - 2879 , - 1170 , - 4017 , - 2844 , - 1939 , - 1302 , - 933 , - 832 , - 999 , - 1434 , - 2137 , - 3108 , - 59 , - 1566 , - 3341 , - 1096 , - 3407 , - 1698 , - 257 , - 3372 , - 2467 , - 1830 , - 1461 , - 1360 , - 1527 , - 1962 , - 2665 , - 3636 , - 587 , - 2094 , - 3869 , - 1624 , - 3935 , - 2226 , - 785 , - 3900 , - 2995 , - 2358 , - 1989 , - 1888 , - 2055 , - 2490 , - 3193 , - 4164 , - 1115 , - 2622 , - 109 , - 2152 , - 175 , - 2754 , - 1313 , - 140 , - 3523 , - 2886 , - 2517 , - 2416 , - 2583 , - 3018 , - 3721 , - 404 , - 1643 , - 3150 , - 637 , - 2680 , - 703 , - 3282 , - 1841 , - 668 , - 4051 , - 3414 , - 3045 , - 2944 , - 3111 , - 3546 , - 4249 , - 932 , - 2171 , - 3678 , - 1165 , - 3208 , - 1231 , - 3810 , - 2369 , - 1196 , - 291 , - 3942 , - 3573 , - 3472 , - 3639 , - 4074 , - 489 , - 1460 , - 2699 , - 4206 , - 1693 , - 3736 , - 1759 , - 50 , - 2897 , - 1724 , - 819 , - 182 , - 4101 , - 4000 , - 4167 , - 314 , - 1017 , - 1988 , - 3227 , - 446 , - 2221 , - 4264 , - 2287 , - 578 , - 3425 , - 2252 , - 1347 , - 710 , - 341 , - 240 , - 407 , - 842 , - 1545 , - 2516 , - 3755 , - 974 , - 2749 , - 504 , - 2815 , - 1106 , - 3953 , - 2780 , - 1875 , - 1238 , - 869 , - 768 , - 935 , - 1370 , - 2073 , - 3044 , - 4283 , - 1502 , - 3277 , - 1032 , - 3343 , - 1634 , - 193 , - 3308 , - 2403 , - 1766 , - 1397 , - 1296 , - 1463 , - 1898 , - 2601 , - 3572 , - 523 , - 2030 , - 3805 , - 1560 , - 3871 , - 2162 , - 721 , - 3836 , - 2931 , - 2294 , - 1925 , - 1824 , - 1991 , - 2426 , - 3129 , - 4100 , - 1051 , - 2558 , - 45 , - 2088 , - 111 , - 2690 , - 1249 , - 76 , - 3459 , - 2822 , - 2453 , - 2352 , - 2519 , - 2954 , - 3657 , - 340 , - 1579 , - 3086 , - 573 , - 2616 , - 639 , - 3218 , - 1777 , - 604 , - 3987 , - 3350 , - 2981 , - 2880 , - 3047 , - 3482 , - 4185 , - 868 , - 2107 , - 3614 , - 1101 , - 3144 , - 1167 , - 3746 , - 2305 , - 1132 , - 227 , - 3878 , - 3509 , - 3408 , - 3575 , - 4010 , - 425 , - 1396 , - 2635 , - 4142 , - 1629 , - 3672 , - 1695 , - 4274 , - 2833 , - 1660 , - 755 , - 118 , - 4037 , - 3936 , - 4103 , - 250 , - 953 , - 1924 , - 3163 , - 382 , - 2157 , - 4200 , - 2223 , - 514 , - 3361 , - 2188 , - 1283 , - 646 , - 277 , - 176 , - 343 , - 778 , - 1481 , - 2452 , - 3691 , - 910 , - 2685 , - 440 , - 2751 , - 1042 , - 3889 , - 2716 , - 1811 , - 1174 , - 805 , - 704 , - 871 , - 1306 , - 2009 , - 2980 , - 4219 , - 1438 , - 3213 , - 968 , - 3279 , - 1570 , - 129 , - 3244 , - 2339 , - 1702 , - 1333 , - 1232 , - 1399 , - 1834 , - 2537 , - 3508 , - 459 , - 1966 , - 3741 , - 1496 , - 3807 , - 2098 , - 657 , - 3772 , - 2867 , - 2230 , - 1861 , - 1760 , - 1927 , - 2362 , - 3065 , - 4036 , - 987 , - 2494 , - 4269 , - 2024 , - 47 , - 2626 , - 1185 , - 12 , - 3395 , - 2758 , - 2389 , - 2288 , - 2455 , - 2890 , - 3593 , - 276 , - 1515 , - 3022 , - 509 , - 2552 , - 575 , - 3154 , - 1713 , - 540 , - 3923 , - 3286 , - 2917 , - 2816 , - 2983 , - 3418 , - 4121 , - 804 , - 2043 , - 3550 , - 1037 , - 3080 , - 1103 , - 3682 , - 2241 , - 1068 , - 163 , - 3814 , - 3445 , - 3344 , - 3511 , - 3946 , - 361 , - 1332 , - 2571 , - 4078 , - 1565 , - 3608 , - 1631 , - 4210 , - 2769 , - 1596 , - 691 , - 54 , - 3973 , - 3872 , - 4039 , - 186 , - 889 , - 1860 , - 3099 , - 318 , - 2093 , - 4136 , - 2159 , - 450 , - 3297 , - 2124 , - 1219 , - 582 , - 213 , - 112 , - 279 , - 714 , - 1417 , - 2388 , - 3627 , - 846 , - 2621 , - 376 , - 2687 , - 978 , - 3825 , - 2652 , - 1747 , - 1110 , - 741 , - 640 , - 807 , - 1242 , - 1945 , - 2916 , - 4155 , - 1374 , - 3149 , - 904 , - 3215 , - 1506 , - 65 , - 3180 , - 2275 , - 1638 , - 1269 , - 1168 , - 1335 , - 1770 , - 2473 , - 3444 , - 395 , - 1902 , - 3677 , - 1432 , - 3743 , - 2034 , - 593 , - 3708 , - 2803 , - 2166 , - 1797 , - 1696 , - 1863 , - 2298 , - 3001 , - 3972 , - 923 , - 2430 , - 4205 , - 1960 , - 4271 , - 2562 , - 1121 , - 4236 , - 3331 , - 2694 , - 2325 , - 2224 , - 2391 , - 2826 , - 3529 , - 212 , - 1451 , - 2958 , - 445 , - 2488 , - 511 , - 3090 , - 1649 , - 476 , - 3859 , - 3222 , - 2853 , - 2752 , - 2919 , - 3354 , - 4057 , - 740 , - 1979 , - 3486 , - 973 , - 3016 , - 1039 , - 3618 , - 2177 , - 1004 , - 99 , - 3750 , - 3381 , - 3280 , - 3447 , - 3882 , - 297 , - 1268 , - 2507 , - 4014 , - 1501 , - 3544 , - 1567 , - 4146 , - 2705 , - 1532 , - 627 , - 4278 , - 3909 , - 3808 , - 3975 , - 122 , - 825 , - 1796 , - 3035 , - 254 , - 2029 , - 4072 , - 2095 , - 386 , - 3233 , - 2060 , - 1155 , - 518 , - 149 , - 48 , - 215 , - 650 , - 1353 , - 2324 , - 3563 , - 782 , - 2557 , - 312 , - 2623 , - 914 , - 3761 , - 2588 , - 1683 , - 1046 , - 677 , - 576 , - 743 , - 1178 , - 1881 , - 2852 , - 4091 , - 1310 , - 3085 , - 840 , - 3151 , - 1442 , - 1 , - 3116 , - 2211 , - 1574 , - 1205 , - 1104 , - 1271 , - 1706 , - 2409 , - 3380 , - 331 , - 1838 , - 3613 , - 1368 , - 3679 , - 1970 , - 529 , - 3644 , - 2739 , - 2102 , - 1733 , - 1632 , - 1799 , - 2234 , - 2937 , - 3908 , - 859 , - 2366 , - 4141 , - 1896 , - 4207 , - 2498 , - 1057 , - 4172 , - 3267 , - 2630 , - 2261 , - 2160 , - 2327 , - 2762 , - 3465 , - 148 , - 1387 , - 2894 , - 381 , - 2424 , - 447 , - 3026 , - 1585 , - 412 , - 3795 , - 3158 , - 2789 , - 2688 , - 2855 , - 3290 , - 3993 , - 676 , - 1915 , - 3422 , - 909 , - 2952 , - 975 , - 3554 , - 2113 , - 940 , - 35 , - 3686 , - 3317 , - 3216 , - 3383 , - 3818 , - 233 , - 1204 , - 2443 , - 3950 , - 1437 , - 3480 , - 1503 , - 4082 , - 2641 , - 1468 , - 563 , - 4214 , - 3845 , - 3744 , - 3911 , - 58 , - 761 , - 1732 , - 2971 , - 190 , - 1965 , - 4008 , - 2031 , - 322 , - 3169 , - 1996 , - 1091 , - 454 , - 85 , - 4272 , - 151 , - 586 , - 1289 , - 2260 , - 3499 , - 718 , - 2493 , - 248 , - 2559 , - 850 , - 3697 , - 2524 , - 1619 , - 982 , - 613 , - 512 , - 679 , - 1114 , - 1817 , - 2788 , - 4027 , - 1246 , - 3021 , - 776 , - 3087 , - 1378 , - 4225 , - 3052 , - 2147 , - 1510 , - 1141 , - 1040 , - 1207 , - 1642 , - 2345 , - 3316 , - 267 , - 1774 , - 3549 , - 1304 , - 3615 , - 1906 , - 465 , - 3580 , - 2675 , - 2038 , - 1669 , - 1568 , - 1735 , - 2170 , - 2873 , - 3844 , - 795 , - 2302 , - 4077 , - 1832 , - 4143 , - 2434 , - 993 , - 4108 , - 3203 , - 2566 , - 2197 , - 2096 , - 2263 , - 2698 , - 3401 , - 84 , - 1323 , - 2830 , - 317 , - 2360 , - 383 , - 2962 , - 1521 , - 348 , - 3731 , - 3094 , - 2725 , - 2624 , - 2791 , - 3226 , - 3929 , - 612 , - 1851 , - 3358 , - 845 , - 2888 , - 911 , - 3490 , - 2049 , - 876 , - 4259 , - 3622 , - 3253 , - 3152 , - 3319 , - 3754 , - 169 , - 1140 , - 2379 , - 3886 , - 1373 , - 3416 , - 1439 , - 4018 , - 2577 , - 1404 , - 499 , - 4150 , - 3781 , - 3680 , - 3847 , - 4282 , - 697 , - 1668 , - 2907 , - 126 , - 1901 , - 3944 , - 1967 , - 258 , - 3105 , - 1932 , - 1027 , - 390 , - 21 , - 4208 , - 87 , - 522 , - 1225 , - 2196 , - 3435 , - 654 , - 2429 , - 184 , - 2495 , - 786 , - 3633 , - 2460 , - 1555 , - 918 , - 549 , - 448 , - 615 , - 1050 , - 1753 , - 2724 , - 3963 , - 1182 , - 2957 , - 712 , - 3023 , - 1314 , - 4161 , - 2988 , - 2083 , - 1446 , - 1077 , - 976 , - 1143 , - 1578 , - 2281 , - 3252 , - 203 , - 1710 , - 3485 , - 1240 , - 3551 , - 1842 , - 401 , - 3516 , - 2611 , - 1974 , - 1605 , - 1504 , - 1671 , - 2106 , - 2809 , - 3780 , - 731 , - 2238 , - 4013 , - 1768 , - 4079 , - 2370 , - 929 , - 4044 , - 3139 , - 2502 , - 2133 , - 2032 , - 2199 , - 2634 , - 3337 , - 20 , - 1259 , - 2766 , - 253 , - 2296 , - 319 , - 2898 , - 1457 , - 284 , - 3667 , - 3030 , - 2661 , - 2560 , - 2727 , - 3162 , - 3865 , - 548 , - 1787 , - 3294 , - 781 , - 2824 , - 847 , - 3426 , - 1985 , - 812 , - 4195 , - 3558 , - 3189 , - 3088 , - 3255 , - 3690 , - 105 , - 1076 , - 2315 , - 3822 , - 1309 , - 3352 , - 1375 , - 3954 , - 2513 , - 1340 , - 435 , - 4086 , - 3717 , - 3616 , - 3783 , - 4218 , - 633 , - 1604 , - 2843 , - 62 , - 1837 , - 3880 , - 1903 , - 194 , - 3041 , - 1868 , - 963 , - 326 , - 4245 , - 4144 , - 23 , - 458 , - 1161 , - 2132 , - 3371 , - 590 , - 2365 , - 120 , - 2431 , - 722 , - 3569 , - 2396 , - 1491 , - 854 , - 485 , - 384 , - 551 , - 986 , - 1689 , - 2660 , - 3899 , - 1118 , - 2893 , - 648 , - 2959 , - 1250 , - 4097 , - 2924 , - 2019 , - 1382 , - 1013 , - 912 , - 1079 , - 1514 , - 2217 , - 3188 , - 139 , - 1646 , - 3421 , - 1176 , - 3487 , - 1778 , - 337 , - 3452 , - 2547 , - 1910 , - 1541 , - 1440 , - 1607 , - 2042 , - 2745 , - 3716 , - 667 , - 2174 , - 3949 , - 1704 , - 4015 , - 2306 , - 865 , - 3980 , - 3075 , - 2438 , - 2069 , - 1968 , - 2135 , - 2570 , - 3273 , - 4244 , - 1195 , - 2702 , - 189 , - 2232 , - 255 , - 2834 , - 1393 , - 220 , - 3603 , - 2966 , - 2597 , - 2496 , - 2663 , - 3098 , - 3801 , - 484 , - 1723 , - 3230 , - 717 , - 2760 , - 783 , - 3362 , - 1921 , - 748 , - 4131 , - 3494 , - 3125 , - 3024 , - 3191 , - 3626 , - 41 , - 1012 , - 2251 , - 3758 , - 1245 , - 3288 , - 1311 , - 3890 , - 2449 , - 1276 , - 371 , - 4022 , - 3653 , - 3552 , - 3719 , - 4154 , - 569 , - 1540 , - 2779 , - 4286 , - 1773 , - 3816 , - 1839 , - 130 , - 2977 , - 1804 , - 899 , - 262 , - 4181 , - 4080 , - 4247 , - 394 , - 1097 , - 2068 , - 3307 , - 526 , - 2301 , - 56 , - 2367 , - 658 , - 3505 , - 2332 , - 1427 , - 790 , - 421 , - 320 , - 487 , - 922 , - 1625 , - 2596 , - 3835 , - 1054 , - 2829 , - 584 , - 2895 , - 1186 , - 4033 , - 2860 , - 1955 , - 1318 , - 949 , - 848 , - 1015 , - 1450 , - 2153 , - 3124 , - 75 , - 1582 , - 3357 , - 1112 , - 3423 , - 1714 , - 273 , - 3388 , - 2483 , - 1846 , - 1477 , - 1376 , - 1543 , - 1978 , - 2681 , - 3652 , - 603 , - 2110 , - 3885 , - 1640 , - 3951 , - 2242 , - 801 , - 3916 , - 3011 , - 2374 , - 2005 , - 1904 , - 2071 , - 2506 , - 3209 , - 4180 , - 1131 , - 2638 , - 125 , - 2168 , - 191 , - 2770 , - 1329 , - 156 , - 3539 , - 2902 , - 2533 , - 2432 , - 2599 , - 3034 , - 3737 , - 420 , - 1659 , - 3166 , - 653 , - 2696 , - 719 , - 3298 , - 1857 , - 684 , - 4067 , - 3430 , - 3061 , - 2960 , - 3127 , - 3562 , - 4265 , - 948 , - 2187 , - 3694 , - 1181 , - 3224 , - 1247 , - 3826 , - 2385 , - 1212 , - 307 , - 3958 , - 3589 , - 3488 , - 3655 , - 4090 , - 505 , - 1476 , - 2715 , - 4222 , - 1709 , - 3752 , - 1775 , - 66 , - 2913 , - 1740 , - 835 , - 198 , - 4117 , - 4016 , - 4183 , - 330 , - 1033 , - 2004 , - 3243 , - 462 , - 2237 , - 4280 , - 2303 , - 594 , - 3441 , - 2268 , - 1363 , - 726 , - 357 , - 256 , - 423 , - 858 , - 1561 , - 2532 , - 3771 , - 990 , - 2765 , - 520 , - 2831 , - 1122 , - 3969 , - 2796 , - 1891 , - 1254 , - 885 , - 784 , - 951 , - 1386 , - 2089 , - 3060 , - 11 , - 1518 , - 3293 , - 1048 , - 3359 , - 1650 , - 209 , - 3324 , - 2419 , - 1782 , - 1413 , - 1312 , - 1479 , - 1914 , - 2617 , - 3588 , - 539 , - 2046 , - 3821 , - 1576 , - 3887 , - 2178 , - 737 , - 3852 , - 2947 , - 2310 , - 1941 , - 1840 , - 2007 , - 2442 , - 3145 , - 4116 , - 1067 , - 2574 , - 61 , - 2104 , - 127 , - 2706 , - 1265 , - 92 , - 3475 , - 2838 , - 2469 , - 2368 , - 2535 , - 2970 , - 3673 , - 356 , - 1595 , - 3102 , - 589 , - 2632 , - 655 , - 3234 , - 1793 , - 620 , - 4003 , - 3366 , - 2997 , - 2896 , - 3063 , - 3498 , - 4201 , - 884 , - 2123 , - 3630 , - 1117 , - 3160 , - 1183 , - 3762 , - 2321 , - 1148 , - 243 , - 3894 , - 3525 , - 3424 , - 3591 , - 4026 , - 441 , - 1412 , - 2651 , - 4158 , - 1645 , - 3688 , - 1711 , - 2 , - 2849 , - 1676 , - 771 , - 134 , - 4053 , - 3952 , - 4119 , - 266 , - 969 , - 1940 , - 3179 , - 398 , - 2173 , - 4216 , - 2239 , - 530 , - 3377 , - 2204 , - 1299 , - 662 , - 293 , - 192 , - 359 , - 794 , - 1497 , - 2468 , - 3707 , - 926 , - 2701 , - 456 , - 2767 , - 1058 , - 3905 , - 2732 , - 1827 , - 1190 , - 821 , - 720 , - 887 , - 1322 , - 2025 , - 2996 , - 4235 , - 1454 , - 3229 , - 984 , - 3295 , - 1586 , - 145 , - 3260 , - 2355 , - 1718 , - 1349 , - 1248 , - 1415 , - 1850 , - 2553 , - 3524 , - 475 , - 1982 , - 3757 , - 1512 , - 3823 , - 2114 , - 673 , - 3788 , - 2883 , - 2246 , - 1877 , - 1776 , - 1943 , - 2378 , - 3081 , - 4052 , - 1003 , - 2510 , - 4285 , - 2040 , - 63 , - 2642 , - 1201 , - 28 , - 3411 , - 2774 , - 2405 , - 2304 , - 2471 , - 2906 , - 3609 , - 292 , - 1531 , - 3038 , - 525 , - 2568 , - 591 , - 3170 , - 1729 , - 556 , - 3939 , - 3302 , - 2933 , - 2832 , - 2999 , - 3434 , - 4137 , - 820 , - 2059 , - 3566 , - 1053 , - 3096 , - 1119 , - 3698 , - 2257 , - 1084 , - 179 , - 3830 , - 3461 , - 3360 , - 3527 , - 3962 , - 377 , - 1348 , - 2587 , - 4094 , - 1581 , - 3624 , - 1647 , - 4226 , - 2785 , - 1612 , - 707 , - 70 , - 3989 , - 3888 , - 4055 , - 202 , - 905 , - 1876 , - 3115 , - 334 , - 2109 , - 4152 , - 2175 , - 466 , - 3313 , - 2140 , - 1235 , - 598 , - 229 , - 128 , - 295 , - 730 , - 1433 , - 2404 , - 3643 , - 862 , - 2637 , - 392 , - 2703 , - 994 , - 3841 , - 2668 , - 1763 , - 1126 , - 757 , - 656 , - 823 , - 1258 , - 1961 , - 2932 , - 4171 , - 1390 , - 3165 , - 920 , - 3231 , - 1522 , - 81 , - 3196 , - 2291 , - 1654 , - 1285 , - 1184 , - 1351 , - 1786 , - 2489 , - 3460 , - 411 , - 1918 , - 3693 , - 1448 , - 3759 , - 2050 , - 609 , - 3724 , - 2819 , - 2182 , - 1813 , - 1712 , - 1879 , - 2314 , - 3017 , - 3988 , - 939 , - 2446 , - 4221 , - 1976 , - 4287 , - 2578 , - 1137 , - 4252 , - 3347 , - 2710 , - 2341 , - 2240 , - 2407 , - 2842 , - 3545 , - 228 , - 1467 , - 2974 , - 461 , - 2504 , - 527 , - 3106 , - 1665 , - 492 , - 3875 , - 3238 , - 2869 , - 2768 , - 2935 , - 3370 , - 4073 , - 756 , - 1995 , - 3502 , - 989 , - 3032 , - 1055 , - 3634 , - 2193 , - 1020 , - 115 , - 3766 , - 3397 , - 3296 , - 3463 , - 3898 , - 313 , - 1284 , - 2523 , - 4030 , - 1517 , - 3560 , - 1583 , - 4162 , - 2721 , - 1548 , - 643 , - 6 , - 3925 , - 3824 , - 3991 , - 138 , - 841 , - 1812 , - 3051 , - 270 , - 2045 , - 4088 , - 2111 , - 402 , - 3249 , - 2076 , - 1171 , - 534 , - 165 , - 64 , - 231 , - 666 , - 1369 , - 2340 , - 3579 , - 798 , - 2573 , - 328 , - 2639 , - 930 , - 3777 , - 2604 , - 1699 , - 1062 , - 693 , - 592 , - 759 , - 1194 , - 1897 , - 2868 , - 4107 , - 1326 , - 3101 , - 856 , - 3167 , - 1458 , - 17 , - 3132 , - 2227 , - 1590 , - 1221 , - 1120 , - 1287 , - 1722 , - 2425 , - 3396 , - 347 , - 1854 , - 3629 , - 1384 , - 3695 , - 1986 , - 545 , - 3660 , - 2755 , - 2118 , - 1749 , - 1648 , - 1815 , - 2250 , - 2953 , - 3924 , - 875 , - 2382 , - 4157 , - 1912 , - 4223 , - 2514 , - 1073 , - 4188 , - 3283 , - 2646 , - 2277 , - 2176 , - 2343 , - 2778 , - 3481 , - 164 , - 1403 , - 2910 , - 397 , - 2440 , - 463 , - 3042 , - 1601 , - 428 , - 3811 , - 3174 , - 2805 , - 2704 , - 2871 , - 3306 , - 4009 , - 692 , - 1931 , - 3438 , - 925 , - 2968 , - 991 , - 3570 , - 2129 , - 956 , - 51 , - 3702 , - 3333 , - 3232 , - 3399 , - 3834 , - 249 , - 1220 , - 2459 , - 3966 , - 1453 , - 3496 , - 1519 , - 4098 , - 2657 , - 1484 , - 579 , - 4230 , - 3861 , - 3760 , - 3927 , - 74 , - 777 , - 1748 , - 2987 , - 206 , - 1981 , - 4024 , - 2047 , - 338 , - 3185 , - 2012 , - 1107 , - 470 , - 101 , - 0 , - 885 , - 2586 , - 751 , - 4084 , - 3881 , - 142 , - 1571 , - 3816 , - 2525 , - 2050 , - 2391 , - 3548 , - 1169 , - 3958 , - 3211 , - 3280 , - 4165 , - 1514 , - 4031 , - 3012 , - 2809 , - 3422 , - 499 , - 2744 , - 1453 , - 978 , - 1319 , - 2476 , - 97 , - 2886 , - 2139 , - 2208 , - 3093 , - 442 , - 2959 , - 1940 , - 1737 , - 2350 , - 3779 , - 1672 , - 381 , - 4258 , - 247 , - 1404 , - 3377 , - 1814 , - 1067 , - 1136 , - 2021 , - 3722 , - 1887 , - 868 , - 665 , - 1278 , - 2707 , - 600 , - 3661 , - 3186 , - 3527 , - 332 , - 2305 , - 742 , - 4347 , - 64 , - 949 , - 2650 , - 815 , - 4148 , - 3945 , - 206 , - 1635 , - 3880 , - 2589 , - 2114 , - 2455 , - 3612 , - 1233 , - 4022 , - 3275 , - 3344 , - 4229 , - 1578 , - 4095 , - 3076 , - 2873 , - 3486 , - 563 , - 2808 , - 1517 , - 1042 , - 1383 , - 2540 , - 161 , - 2950 , - 2203 , - 2272 , - 3157 , - 506 , - 3023 , - 2004 , - 1801 , - 2414 , - 3843 , - 1736 , - 445 , - 4322 , - 311 , - 1468 , - 3441 , - 1878 , - 1131 , - 1200 , - 2085 , - 3786 , - 1951 , - 932 , - 729 , - 1342 , - 2771 , - 664 , - 3725 , - 3250 , - 3591 , - 396 , - 2369 , - 806 , - 59 , - 128 , - 1013 , - 2714 , - 879 , - 4212 , - 4009 , - 270 , - 1699 , - 3944 , - 2653 , - 2178 , - 2519 , - 3676 , - 1297 , - 4086 , - 3339 , - 3408 , - 4293 , - 1642 , - 4159 , - 3140 , - 2937 , - 3550 , - 627 , - 2872 , - 1581 , - 1106 , - 1447 , - 2604 , - 225 , - 3014 , - 2267 , - 2336 , - 3221 , - 570 , - 3087 , - 2068 , - 1865 , - 2478 , - 3907 , - 1800 , - 509 , - 34 , - 375 , - 1532 , - 3505 , - 1942 , - 1195 , - 1264 , - 2149 , - 3850 , - 2015 , - 996 , - 793 , - 1406 , - 2835 , - 728 , - 3789 , - 3314 , - 3655 , - 460 , - 2433 , - 870 , - 123 , - 192 , - 1077 , - 2778 , - 943 , - 4276 , - 4073 , - 334 , - 1763 , - 4008 , - 2717 , - 2242 , - 2583 , - 3740 , - 1361 , - 4150 , - 3403 , - 3472 , - 5 , - 1706 , - 4223 , - 3204 , - 3001 , - 3614 , - 691 , - 2936 , - 1645 , - 1170 , - 1511 , - 2668 , - 289 , - 3078 , - 2331 , - 2400 , - 3285 , - 634 , - 3151 , - 2132 , - 1929 , - 2542 , - 3971 , - 1864 , - 573 , - 98 , - 439 , - 1596 , - 3569 , - 2006 , - 1259 , - 1328 , - 2213 , - 3914 , - 2079 , - 1060 , - 857 , - 1470 , - 2899 , - 792 , - 3853 , - 3378 , - 3719 , - 524 , - 2497 , - 934 , - 187 , - 256 , - 1141 , - 2842 , - 1007 , - 4340 , - 4137 , - 398 , - 1827 , - 4072 , - 2781 , - 2306 , - 2647 , - 3804 , - 1425 , - 4214 , - 3467 , - 3536 , - 69 , - 1770 , - 4287 , - 3268 , - 3065 , - 3678 , - 755 , - 3000 , - 1709 , - 1234 , - 1575 , - 2732 , - 353 , - 3142 , - 2395 , - 2464 , - 3349 , - 698 , - 3215 , - 2196 , - 1993 , - 2606 , - 4035 , - 1928 , - 637 , - 162 , - 503 , - 1660 , - 3633 , - 2070 , - 1323 , - 1392 , - 2277 , - 3978 , - 2143 , - 1124 , - 921 , - 1534 , - 2963 , - 856 , - 3917 , - 3442 , - 3783 , - 588 , - 2561 , - 998 , - 251 , - 320 , - 1205 , - 2906 , - 1071 , - 52 , - 4201 , - 462 , - 1891 , - 4136 , - 2845 , - 2370 , - 2711 , - 3868 , - 1489 , - 4278 , - 3531 , - 3600 , - 133 , - 1834 , - 4351 , - 3332 , - 3129 , - 3742 , - 819 , - 3064 , - 1773 , - 1298 , - 1639 , - 2796 , - 417 , - 3206 , - 2459 , - 2528 , - 3413 , - 762 , - 3279 , - 2260 , - 2057 , - 2670 , - 4099 , - 1992 , - 701 , - 226 , - 567 , - 1724 , - 3697 , - 2134 , - 1387 , - 1456 , - 2341 , - 4042 , - 2207 , - 1188 , - 985 , - 1598 , - 3027 , - 920 , - 3981 , - 3506 , - 3847 , - 652 , - 2625 , - 1062 , - 315 , - 384 , - 1269 , - 2970 , - 1135 , - 116 , - 4265 , - 526 , - 1955 , - 4200 , - 2909 , - 2434 , - 2775 , - 3932 , - 1553 , - 4342 , - 3595 , - 3664 , - 197 , - 1898 , - 63 , - 3396 , - 3193 , - 3806 , - 883 , - 3128 , - 1837 , - 1362 , - 1703 , - 2860 , - 481 , - 3270 , - 2523 , - 2592 , - 3477 , - 826 , - 3343 , - 2324 , - 2121 , - 2734 , - 4163 , - 2056 , - 765 , - 290 , - 631 , - 1788 , - 3761 , - 2198 , - 1451 , - 1520 , - 2405 , - 4106 , - 2271 , - 1252 , - 1049 , - 1662 , - 3091 , - 984 , - 4045 , - 3570 , - 3911 , - 716 , - 2689 , - 1126 , - 379 , - 448 , - 1333 , - 3034 , - 1199 , - 180 , - 4329 , - 590 , - 2019 , - 4264 , - 2973 , - 2498 , - 2839 , - 3996 , - 1617 , - 54 , - 3659 , - 3728 , - 261 , - 1962 , - 127 , - 3460 , - 3257 , - 3870 , - 947 , - 3192 , - 1901 , - 1426 , - 1767 , - 2924 , - 545 , - 3334 , - 2587 , - 2656 , - 3541 , - 890 , - 3407 , - 2388 , - 2185 , - 2798 , - 4227 , - 2120 , - 829 , - 354 , - 695 , - 1852 , - 3825 , - 2262 , - 1515 , - 1584 , - 2469 , - 4170 , - 2335 , - 1316 , - 1113 , - 1726 , - 3155 , - 1048 , - 4109 , - 3634 , - 3975 , - 780 , - 2753 , - 1190 , - 443 , - 512 , - 1397 , - 3098 , - 1263 , - 244 , - 41 , - 654 , - 2083 , - 4328 , - 3037 , - 2562 , - 2903 , - 4060 , - 1681 , - 118 , - 3723 , - 3792 , - 325 , - 2026 , - 191 , - 3524 , - 3321 , - 3934 , - 1011 , - 3256 , - 1965 , - 1490 , - 1831 , - 2988 , - 609 , - 3398 , - 2651 , - 2720 , - 3605 , - 954 , - 3471 , - 2452 , - 2249 , - 2862 , - 4291 , - 2184 , - 893 , - 418 , - 759 , - 1916 , - 3889 , - 2326 , - 1579 , - 1648 , - 2533 , - 4234 , - 2399 , - 1380 , - 1177 , - 1790 , - 3219 , - 1112 , - 4173 , - 3698 , - 4039 , - 844 , - 2817 , - 1254 , - 507 , - 576 , - 1461 , - 3162 , - 1327 , - 308 , - 105 , - 718 , - 2147 , - 40 , - 3101 , - 2626 , - 2967 , - 4124 , - 1745 , - 182 , - 3787 , - 3856 , - 389 , - 2090 , - 255 , - 3588 , - 3385 , - 3998 , - 1075 , - 3320 , - 2029 , - 1554 , - 1895 , - 3052 , - 673 , - 3462 , - 2715 , - 2784 , - 3669 , - 1018 , - 3535 , - 2516 , - 2313 , - 2926 , - 3 , - 2248 , - 957 , - 482 , - 823 , - 1980 , - 3953 , - 2390 , - 1643 , - 1712 , - 2597 , - 4298 , - 2463 , - 1444 , - 1241 , - 1854 , - 3283 , - 1176 , - 4237 , - 3762 , - 4103 , - 908 , - 2881 , - 1318 , - 571 , - 640 , - 1525 , - 3226 , - 1391 , - 372 , - 169 , - 782 , - 2211 , - 104 , - 3165 , - 2690 , - 3031 , - 4188 , - 1809 , - 246 , - 3851 , - 3920 , - 453 , - 2154 , - 319 , - 3652 , - 3449 , - 4062 , - 1139 , - 3384 , - 2093 , - 1618 , - 1959 , - 3116 , - 737 , - 3526 , - 2779 , - 2848 , - 3733 , - 1082 , - 3599 , - 2580 , - 2377 , - 2990 , - 67 , - 2312 , - 1021 , - 546 , - 887 , - 2044 , - 4017 , - 2454 , - 1707 , - 1776 , - 2661 , - 10 , - 2527 , - 1508 , - 1305 , - 1918 , - 3347 , - 1240 , - 4301 , - 3826 , - 4167 , - 972 , - 2945 , - 1382 , - 635 , - 704 , - 1589 , - 3290 , - 1455 , - 436 , - 233 , - 846 , - 2275 , - 168 , - 3229 , - 2754 , - 3095 , - 4252 , - 1873 , - 310 , - 3915 , - 3984 , - 517 , - 2218 , - 383 , - 3716 , - 3513 , - 4126 , - 1203 , - 3448 , - 2157 , - 1682 , - 2023 , - 3180 , - 801 , - 3590 , - 2843 , - 2912 , - 3797 , - 1146 , - 3663 , - 2644 , - 2441 , - 3054 , - 131 , - 2376 , - 1085 , - 610 , - 951 , - 2108 , - 4081 , - 2518 , - 1771 , - 1840 , - 2725 , - 74 , - 2591 , - 1572 , - 1369 , - 1982 , - 3411 , - 1304 , - 13 , - 3890 , - 4231 , - 1036 , - 3009 , - 1446 , - 699 , - 768 , - 1653 , - 3354 , - 1519 , - 500 , - 297 , - 910 , - 2339 , - 232 , - 3293 , - 2818 , - 3159 , - 4316 , - 1937 , - 374 , - 3979 , - 4048 , - 581 , - 2282 , - 447 , - 3780 , - 3577 , - 4190 , - 1267 , - 3512 , - 2221 , - 1746 , - 2087 , - 3244 , - 865 , - 3654 , - 2907 , - 2976 , - 3861 , - 1210 , - 3727 , - 2708 , - 2505 , - 3118 , - 195 , - 2440 , - 1149 , - 674 , - 1015 , - 2172 , - 4145 , - 2582 , - 1835 , - 1904 , - 2789 , - 138 , - 2655 , - 1636 , - 1433 , - 2046 , - 3475 , - 1368 , - 77 , - 3954 , - 4295 , - 1100 , - 3073 , - 1510 , - 763 , - 832 , - 1717 , - 3418 , - 1583 , - 564 , - 361 , - 974 , - 2403 , - 296 , - 3357 , - 2882 , - 3223 , - 28 , - 2001 , - 438 , - 4043 , - 4112 , - 645 , - 2346 , - 511 , - 3844 , - 3641 , - 4254 , - 1331 , - 3576 , - 2285 , - 1810 , - 2151 , - 3308 , - 929 , - 3718 , - 2971 , - 3040 , - 3925 , - 1274 , - 3791 , - 2772 , - 2569 , - 3182 , - 259 , - 2504 , - 1213 , - 738 , - 1079 , - 2236 , - 4209 , - 2646 , - 1899 , - 1968 , - 2853 , - 202 , - 2719 , - 1700 , - 1497 , - 2110 , - 3539 , - 1432 , - 141 , - 4018 , - 7 , - 1164 , - 3137 , - 1574 , - 827 , - 896 , - 1781 , - 3482 , - 1647 , - 628 , - 425 , - 1038 , - 2467 , - 360 , - 3421 , - 2946 , - 3287 , - 92 , - 2065 , - 502 , - 4107 , - 4176 , - 709 , - 2410 , - 575 , - 3908 , - 3705 , - 4318 , - 1395 , - 3640 , - 2349 , - 1874 , - 2215 , - 3372 , - 993 , - 3782 , - 3035 , - 3104 , - 3989 , - 1338 , - 3855 , - 2836 , - 2633 , - 3246 , - 323 , - 2568 , - 1277 , - 802 , - 1143 , - 2300 , - 4273 , - 2710 , - 1963 , - 2032 , - 2917 , - 266 , - 2783 , - 1764 , - 1561 , - 2174 , - 3603 , - 1496 , - 205 , - 4082 , - 71 , - 1228 , - 3201 , - 1638 , - 891 , - 960 , - 1845 , - 3546 , - 1711 , - 692 , - 489 , - 1102 , - 2531 , - 424 , - 3485 , - 3010 , - 3351 , - 156 , - 2129 , - 566 , - 4171 , - 4240 , - 773 , - 2474 , - 639 , - 3972 , - 3769 , - 30 , - 1459 , - 3704 , - 2413 , - 1938 , - 2279 , - 3436 , - 1057 , - 3846 , - 3099 , - 3168 , - 4053 , - 1402 , - 3919 , - 2900 , - 2697 , - 3310 , - 387 , - 2632 , - 1341 , - 866 , - 1207 , - 2364 , - 4337 , - 2774 , - 2027 , - 2096 , - 2981 , - 330 , - 2847 , - 1828 , - 1625 , - 2238 , - 3667 , - 1560 , - 269 , - 4146 , - 135 , - 1292 , - 3265 , - 1702 , - 955 , - 1024 , - 1909 , - 3610 , - 1775 , - 756 , - 553 , - 1166 , - 2595 , - 488 , - 3549 , - 3074 , - 3415 , - 220 , - 2193 , - 630 , - 4235 , - 4304 , - 837 , - 2538 , - 703 , - 4036 , - 3833 , - 94 , - 1523 , - 3768 , - 2477 , - 2002 , - 2343 , - 3500 , - 1121 , - 3910 , - 3163 , - 3232 , - 4117 , - 1466 , - 3983 , - 2964 , - 2761 , - 3374 , - 451 , - 2696 , - 1405 , - 930 , - 1271 , - 2428 , - 49 , - 2838 , - 2091 , - 2160 , - 3045 , - 394 , - 2911 , - 1892 , - 1689 , - 2302 , - 3731 , - 1624 , - 333 , - 4210 , - 199 , - 1356 , - 3329 , - 1766 , - 1019 , - 1088 , - 1973 , - 3674 , - 1839 , - 820 , - 617 , - 1230 , - 2659 , - 552 , - 3613 , - 3138 , - 3479 , - 284 , - 2257 , - 694 , - 4299 , - 16 , - 901 , - 2602 , - 767 , - 4100 , - 3897 , - 158 , - 1587 , - 3832 , - 2541 , - 2066 , - 2407 , - 3564 , - 1185 , - 3974 , - 3227 , - 3296 , - 4181 , - 1530 , - 4047 , - 3028 , - 2825 , - 3438 , - 515 , - 2760 , - 1469 , - 994 , - 1335 , - 2492 , - 113 , - 2902 , - 2155 , - 2224 , - 3109 , - 458 , - 2975 , - 1956 , - 1753 , - 2366 , - 3795 , - 1688 , - 397 , - 4274 , - 263 , - 1420 , - 3393 , - 1830 , - 1083 , - 1152 , - 2037 , - 3738 , - 1903 , - 884 , - 681 , - 1294 , - 2723 , - 616 , - 3677 , - 3202 , - 3543 , - 348 , - 2321 , - 758 , - 11 , - 80 , - 965 , - 2666 , - 831 , - 4164 , - 3961 , - 222 , - 1651 , - 3896 , - 2605 , - 2130 , - 2471 , - 3628 , - 1249 , - 4038 , - 3291 , - 3360 , - 4245 , - 1594 , - 4111 , - 3092 , - 2889 , - 3502 , - 579 , - 2824 , - 1533 , - 1058 , - 1399 , - 2556 , - 177 , - 2966 , - 2219 , - 2288 , - 3173 , - 522 , - 3039 , - 2020 , - 1817 , - 2430 , - 3859 , - 1752 , - 461 , - 4338 , - 327 , - 1484 , - 3457 , - 1894 , - 1147 , - 1216 , - 2101 , - 3802 , - 1967 , - 948 , - 745 , - 1358 , - 2787 , - 680 , - 3741 , - 3266 , - 3607 , - 412 , - 2385 , - 822 , - 75 , - 144 , - 1029 , - 2730 , - 895 , - 4228 , - 4025 , - 286 , - 1715 , - 3960 , - 2669 , - 2194 , - 2535 , - 3692 , - 1313 , - 4102 , - 3355 , - 3424 , - 4309 , - 1658 , - 4175 , - 3156 , - 2953 , - 3566 , - 643 , - 2888 , - 1597 , - 1122 , - 1463 , - 2620 , - 241 , - 3030 , - 2283 , - 2352 , - 3237 , - 586 , - 3103 , - 2084 , - 1881 , - 2494 , - 3923 , - 1816 , - 525 , - 50 , - 391 , - 1548 , - 3521 , - 1958 , - 1211 , - 1280 , - 2165 , - 3866 , - 2031 , - 1012 , - 809 , - 1422 , - 2851 , - 744 , - 3805 , - 3330 , - 3671 , - 476 , - 2449 , - 886 , - 139 , - 208 , - 1093 , - 2794 , - 959 , - 4292 , - 4089 , - 350 , - 1779 , - 4024 , - 2733 , - 2258 , - 2599 , - 3756 , - 1377 , - 4166 , - 3419 , - 3488 , - 21 , - 1722 , - 4239 , - 3220 , - 3017 , - 3630 , - 707 , - 2952 , - 1661 , - 1186 , - 1527 , - 2684 , - 305 , - 3094 , - 2347 , - 2416 , - 3301 , - 650 , - 3167 , - 2148 , - 1945 , - 2558 , - 3987 , - 1880 , - 589 , - 114 , - 455 , - 1612 , - 3585 , - 2022 , - 1275 , - 1344 , - 2229 , - 3930 , - 2095 , - 1076 , - 873 , - 1486 , - 2915 , - 808 , - 3869 , - 3394 , - 3735 , - 540 , - 2513 , - 950 , - 203 , - 272 , - 1157 , - 2858 , - 1023 , - 4 , - 4153 , - 414 , - 1843 , - 4088 , - 2797 , - 2322 , - 2663 , - 3820 , - 1441 , - 4230 , - 3483 , - 3552 , - 85 , - 1786 , - 4303 , - 3284 , - 3081 , - 3694 , - 771 , - 3016 , - 1725 , - 1250 , - 1591 , - 2748 , - 369 , - 3158 , - 2411 , - 2480 , - 3365 , - 714 , - 3231 , - 2212 , - 2009 , - 2622 , - 4051 , - 1944 , - 653 , - 178 , - 519 , - 1676 , - 3649 , - 2086 , - 1339 , - 1408 , - 2293 , - 3994 , - 2159 , - 1140 , - 937 , - 1550 , - 2979 , - 872 , - 3933 , - 3458 , - 3799 , - 604 , - 2577 , - 1014 , - 267 , - 336 , - 1221 , - 2922 , - 1087 , - 68 , - 4217 , - 478 , - 1907 , - 4152 , - 2861 , - 2386 , - 2727 , - 3884 , - 1505 , - 4294 , - 3547 , - 3616 , - 149 , - 1850 , - 15 , - 3348 , - 3145 , - 3758 , - 835 , - 3080 , - 1789 , - 1314 , - 1655 , - 2812 , - 433 , - 3222 , - 2475 , - 2544 , - 3429 , - 778 , - 3295 , - 2276 , - 2073 , - 2686 , - 4115 , - 2008 , - 717 , - 242 , - 583 , - 1740 , - 3713 , - 2150 , - 1403 , - 1472 , - 2357 , - 4058 , - 2223 , - 1204 , - 1001 , - 1614 , - 3043 , - 936 , - 3997 , - 3522 , - 3863 , - 668 , - 2641 , - 1078 , - 331 , - 400 , - 1285 , - 2986 , - 1151 , - 132 , - 4281 , - 542 , - 1971 , - 4216 , - 2925 , - 2450 , - 2791 , - 3948 , - 1569 , - 6 , - 3611 , - 3680 , - 213 , - 1914 , - 79 , - 3412 , - 3209 , - 3822 , - 899 , - 3144 , - 1853 , - 1378 , - 1719 , - 2876 , - 497 , - 3286 , - 2539 , - 2608 , - 3493 , - 842 , - 3359 , - 2340 , - 2137 , - 2750 , - 4179 , - 2072 , - 781 , - 306 , - 647 , - 1804 , - 3777 , - 2214 , - 1467 , - 1536 , - 2421 , - 4122 , - 2287 , - 1268 , - 1065 , - 1678 , - 3107 , - 1000 , - 4061 , - 3586 , - 3927 , - 732 , - 2705 , - 1142 , - 395 , - 464 , - 1349 , - 3050 , - 1215 , - 196 , - 4345 , - 606 , - 2035 , - 4280 , - 2989 , - 2514 , - 2855 , - 4012 , - 1633 , - 70 , - 3675 , - 3744 , - 277 , - 1978 , - 143 , - 3476 , - 3273 , - 3886 , - 963 , - 3208 , - 1917 , - 1442 , - 1783 , - 2940 , - 561 , - 3350 , - 2603 , - 2672 , - 3557 , - 906 , - 3423 , - 2404 , - 2201 , - 2814 , - 4243 , - 2136 , - 845 , - 370 , - 711 , - 1868 , - 3841 , - 2278 , - 1531 , - 1600 , - 2485 , - 4186 , - 2351 , - 1332 , - 1129 , - 1742 , - 3171 , - 1064 , - 4125 , - 3650 , - 3991 , - 796 , - 2769 , - 1206 , - 459 , - 528 , - 1413 , - 3114 , - 1279 , - 260 , - 57 , - 670 , - 2099 , - 4344 , - 3053 , - 2578 , - 2919 , - 4076 , - 1697 , - 134 , - 3739 , - 3808 , - 341 , - 2042 , - 207 , - 3540 , - 3337 , - 3950 , - 1027 , - 3272 , - 1981 , - 1506 , - 1847 , - 3004 , - 625 , - 3414 , - 2667 , - 2736 , - 3621 , - 970 , - 3487 , - 2468 , - 2265 , - 2878 , - 4307 , - 2200 , - 909 , - 434 , - 775 , - 1932 , - 3905 , - 2342 , - 1595 , - 1664 , - 2549 , - 4250 , - 2415 , - 1396 , - 1193 , - 1806 , - 3235 , - 1128 , - 4189 , - 3714 , - 4055 , - 860 , - 2833 , - 1270 , - 523 , - 592 , - 1477 , - 3178 , - 1343 , - 324 , - 121 , - 734 , - 2163 , - 56 , - 3117 , - 2642 , - 2983 , - 4140 , - 1761 , - 198 , - 3803 , - 3872 , - 405 , - 2106 , - 271 , - 3604 , - 3401 , - 4014 , - 1091 , - 3336 , - 2045 , - 1570 , - 1911 , - 3068 , - 689 , - 3478 , - 2731 , - 2800 , - 3685 , - 1034 , - 3551 , - 2532 , - 2329 , - 2942 , - 19 , - 2264 , - 973 , - 498 , - 839 , - 1996 , - 3969 , - 2406 , - 1659 , - 1728 , - 2613 , - 4314 , - 2479 , - 1460 , - 1257 , - 1870 , - 3299 , - 1192 , - 4253 , - 3778 , - 4119 , - 924 , - 2897 , - 1334 , - 587 , - 656 , - 1541 , - 3242 , - 1407 , - 388 , - 185 , - 798 , - 2227 , - 120 , - 3181 , - 2706 , - 3047 , - 4204 , - 1825 , - 262 , - 3867 , - 3936 , - 469 , - 2170 , - 335 , - 3668 , - 3465 , - 4078 , - 1155 , - 3400 , - 2109 , - 1634 , - 1975 , - 3132 , - 753 , - 3542 , - 2795 , - 2864 , - 3749 , - 1098 , - 3615 , - 2596 , - 2393 , - 3006 , - 83 , - 2328 , - 1037 , - 562 , - 903 , - 2060 , - 4033 , - 2470 , - 1723 , - 1792 , - 2677 , - 26 , - 2543 , - 1524 , - 1321 , - 1934 , - 3363 , - 1256 , - 4317 , - 3842 , - 4183 , - 988 , - 2961 , - 1398 , - 651 , - 720 , - 1605 , - 3306 , - 1471 , - 452 , - 249 , - 862 , - 2291 , - 184 , - 3245 , - 2770 , - 3111 , - 4268 , - 1889 , - 326 , - 3931 , - 4000 , - 533 , - 2234 , - 399 , - 3732 , - 3529 , - 4142 , - 1219 , - 3464 , - 2173 , - 1698 , - 2039 , - 3196 , - 817 , - 3606 , - 2859 , - 2928 , - 3813 , - 1162 , - 3679 , - 2660 , - 2457 , - 3070 , - 147 , - 2392 , - 1101 , - 626 , - 967 , - 2124 , - 4097 , - 2534 , - 1787 , - 1856 , - 2741 , - 90 , - 2607 , - 1588 , - 1385 , - 1998 , - 3427 , - 1320 , - 29 , - 3906 , - 4247 , - 1052 , - 3025 , - 1462 , - 715 , - 784 , - 1669 , - 3370 , - 1535 , - 516 , - 313 , - 926 , - 2355 , - 248 , - 3309 , - 2834 , - 3175 , - 4332 , - 1953 , - 390 , - 3995 , - 4064 , - 597 , - 2298 , - 463 , - 3796 , - 3593 , - 4206 , - 1283 , - 3528 , - 2237 , - 1762 , - 2103 , - 3260 , - 881 , - 3670 , - 2923 , - 2992 , - 3877 , - 1226 , - 3743 , - 2724 , - 2521 , - 3134 , - 211 , - 2456 , - 1165 , - 690 , - 1031 , - 2188 , - 4161 , - 2598 , - 1851 , - 1920 , - 2805 , - 154 , - 2671 , - 1652 , - 1449 , - 2062 , - 3491 , - 1384 , - 93 , - 3970 , - 4311 , - 1116 , - 3089 , - 1526 , - 779 , - 848 , - 1733 , - 3434 , - 1599 , - 580 , - 377 , - 990 , - 2419 , - 312 , - 3373 , - 2898 , - 3239 , - 44 , - 2017 , - 454 , - 4059 , - 4128 , - 661 , - 2362 , - 527 , - 3860 , - 3657 , - 4270 , - 1347 , - 3592 , - 2301 , - 1826 , - 2167 , - 3324 , - 945 , - 3734 , - 2987 , - 3056 , - 3941 , - 1290 , - 3807 , - 2788 , - 2585 , - 3198 , - 275 , - 2520 , - 1229 , - 754 , - 1095 , - 2252 , - 4225 , - 2662 , - 1915 , - 1984 , - 2869 , - 218 , - 2735 , - 1716 , - 1513 , - 2126 , - 3555 , - 1448 , - 157 , - 4034 , - 23 , - 1180 , - 3153 , - 1590 , - 843 , - 912 , - 1797 , - 3498 , - 1663 , - 644 , - 441 , - 1054 , - 2483 , - 376 , - 3437 , - 2962 , - 3303 , - 108 , - 2081 , - 518 , - 4123 , - 4192 , - 725 , - 2426 , - 591 , - 3924 , - 3721 , - 4334 , - 1411 , - 3656 , - 2365 , - 1890 , - 2231 , - 3388 , - 1009 , - 3798 , - 3051 , - 3120 , - 4005 , - 1354 , - 3871 , - 2852 , - 2649 , - 3262 , - 339 , - 2584 , - 1293 , - 818 , - 1159 , - 2316 , - 4289 , - 2726 , - 1979 , - 2048 , - 2933 , - 282 , - 2799 , - 1780 , - 1577 , - 2190 , - 3619 , - 1512 , - 221 , - 4098 , - 87 , - 1244 , - 3217 , - 1654 , - 907 , - 976 , - 1861 , - 3562 , - 1727 , - 708 , - 505 , - 1118 , - 2547 , - 440 , - 3501 , - 3026 , - 3367 , - 172 , - 2145 , - 582 , - 4187 , - 4256 , - 789 , - 2490 , - 655 , - 3988 , - 3785 , - 46 , - 1475 , - 3720 , - 2429 , - 1954 , - 2295 , - 3452 , - 1073 , - 3862 , - 3115 , - 3184 , - 4069 , - 1418 , - 3935 , - 2916 , - 2713 , - 3326 , - 403 , - 2648 , - 1357 , - 882 , - 1223 , - 2380 , - 1 , - 2790 , - 2043 , - 2112 , - 2997 , - 346 , - 2863 , - 1844 , - 1641 , - 2254 , - 3683 , - 1576 , - 285 , - 4162 , - 151 , - 1308 , - 3281 , - 1718 , - 971 , - 1040 , - 1925 , - 3626 , - 1791 , - 772 , - 569 , - 1182 , - 2611 , - 504 , - 3565 , - 3090 , - 3431 , - 236 , - 2209 , - 646 , - 4251 , - 4320 , - 853 , - 2554 , - 719 , - 4052 , - 3849 , - 110 , - 1539 , - 3784 , - 2493 , - 2018 , - 2359 , - 3516 , - 1137 , - 3926 , - 3179 , - 3248 , - 4133 , - 1482 , - 3999 , - 2980 , - 2777 , - 3390 , - 467 , - 2712 , - 1421 , - 946 , - 1287 , - 2444 , - 65 , - 2854 , - 2107 , - 2176 , - 3061 , - 410 , - 2927 , - 1908 , - 1705 , - 2318 , - 3747 , - 1640 , - 349 , - 4226 , - 215 , - 1372 , - 3345 , - 1782 , - 1035 , - 1104 , - 1989 , - 3690 , - 1855 , - 836 , - 633 , - 1246 , - 2675 , - 568 , - 3629 , - 3154 , - 3495 , - 300 , - 2273 , - 710 , - 4315 , - 32 , - 917 , - 2618 , - 783 , - 4116 , - 3913 , - 174 , - 1603 , - 3848 , - 2557 , - 2082 , - 2423 , - 3580 , - 1201 , - 3990 , - 3243 , - 3312 , - 4197 , - 1546 , - 4063 , - 3044 , - 2841 , - 3454 , - 531 , - 2776 , - 1485 , - 1010 , - 1351 , - 2508 , - 129 , - 2918 , - 2171 , - 2240 , - 3125 , - 474 , - 2991 , - 1972 , - 1769 , - 2382 , - 3811 , - 1704 , - 413 , - 4290 , - 279 , - 1436 , - 3409 , - 1846 , - 1099 , - 1168 , - 2053 , - 3754 , - 1919 , - 900 , - 697 , - 1310 , - 2739 , - 632 , - 3693 , - 3218 , - 3559 , - 364 , - 2337 , - 774 , - 27 , - 96 , - 981 , - 2682 , - 847 , - 4180 , - 3977 , - 238 , - 1667 , - 3912 , - 2621 , - 2146 , - 2487 , - 3644 , - 1265 , - 4054 , - 3307 , - 3376 , - 4261 , - 1610 , - 4127 , - 3108 , - 2905 , - 3518 , - 595 , - 2840 , - 1549 , - 1074 , - 1415 , - 2572 , - 193 , - 2982 , - 2235 , - 2304 , - 3189 , - 538 , - 3055 , - 2036 , - 1833 , - 2446 , - 3875 , - 1768 , - 477 , - 2 , - 343 , - 1500 , - 3473 , - 1910 , - 1163 , - 1232 , - 2117 , - 3818 , - 1983 , - 964 , - 761 , - 1374 , - 2803 , - 696 , - 3757 , - 3282 , - 3623 , - 428 , - 2401 , - 838 , - 91 , - 160 , - 1045 , - 2746 , - 911 , - 4244 , - 4041 , - 302 , - 1731 , - 3976 , - 2685 , - 2210 , - 2551 , - 3708 , - 1329 , - 4118 , - 3371 , - 3440 , - 4325 , - 1674 , - 4191 , - 3172 , - 2969 , - 3582 , - 659 , - 2904 , - 1613 , - 1138 , - 1479 , - 2636 , - 257 , - 3046 , - 2299 , - 2368 , - 3253 , - 602 , - 3119 , - 2100 , - 1897 , - 2510 , - 3939 , - 1832 , - 541 , - 66 , - 407 , - 1564 , - 3537 , - 1974 , - 1227 , - 1296 , - 2181 , - 3882 , - 2047 , - 1028 , - 825 , - 1438 , - 2867 , - 760 , - 3821 , - 3346 , - 3687 , - 492 , - 2465 , - 902 , - 155 , - 224 , - 1109 , - 2810 , - 975 , - 4308 , - 4105 , - 366 , - 1795 , - 4040 , - 2749 , - 2274 , - 2615 , - 3772 , - 1393 , - 4182 , - 3435 , - 3504 , - 37 , - 1738 , - 4255 , - 3236 , - 3033 , - 3646 , - 723 , - 2968 , - 1677 , - 1202 , - 1543 , - 2700 , - 321 , - 3110 , - 2363 , - 2432 , - 3317 , - 666 , - 3183 , - 2164 , - 1961 , - 2574 , - 4003 , - 1896 , - 605 , - 130 , - 471 , - 1628 , - 3601 , - 2038 , - 1291 , - 1360 , - 2245 , - 3946 , - 2111 , - 1092 , - 889 , - 1502 , - 2931 , - 824 , - 3885 , - 3410 , - 3751 , - 556 , - 2529 , - 966 , - 219 , - 288 , - 1173 , - 2874 , - 1039 , - 20 , - 4169 , - 430 , - 1859 , - 4104 , - 2813 , - 2338 , - 2679 , - 3836 , - 1457 , - 4246 , - 3499 , - 3568 , - 101 , - 1802 , - 4319 , - 3300 , - 3097 , - 3710 , - 787 , - 3032 , - 1741 , - 1266 , - 1607 , - 2764 , - 385 , - 3174 , - 2427 , - 2496 , - 3381 , - 730 , - 3247 , - 2228 , - 2025 , - 2638 , - 4067 , - 1960 , - 669 , - 194 , - 535 , - 1692 , - 3665 , - 2102 , - 1355 , - 1424 , - 2309 , - 4010 , - 2175 , - 1156 , - 953 , - 1566 , - 2995 , - 888 , - 3949 , - 3474 , - 3815 , - 620 , - 2593 , - 1030 , - 283 , - 352 , - 1237 , - 2938 , - 1103 , - 84 , - 4233 , - 494 , - 1923 , - 4168 , - 2877 , - 2402 , - 2743 , - 3900 , - 1521 , - 4310 , - 3563 , - 3632 , - 165 , - 1866 , - 31 , - 3364 , - 3161 , - 3774 , - 851 , - 3096 , - 1805 , - 1330 , - 1671 , - 2828 , - 449 , - 3238 , - 2491 , - 2560 , - 3445 , - 794 , - 3311 , - 2292 , - 2089 , - 2702 , - 4131 , - 2024 , - 733 , - 258 , - 599 , - 1756 , - 3729 , - 2166 , - 1419 , - 1488 , - 2373 , - 4074 , - 2239 , - 1220 , - 1017 , - 1630 , - 3059 , - 952 , - 4013 , - 3538 , - 3879 , - 684 , - 2657 , - 1094 , - 347 , - 416 , - 1301 , - 3002 , - 1167 , - 148 , - 4297 , - 558 , - 1987 , - 4232 , - 2941 , - 2466 , - 2807 , - 3964 , - 1585 , - 22 , - 3627 , - 3696 , - 229 , - 1930 , - 95 , - 3428 , - 3225 , - 3838 , - 915 , - 3160 , - 1869 , - 1394 , - 1735 , - 2892 , - 513 , - 3302 , - 2555 , - 2624 , - 3509 , - 858 , - 3375 , - 2356 , - 2153 , - 2766 , - 4195 , - 2088 , - 797 , - 322 , - 663 , - 1820 , - 3793 , - 2230 , - 1483 , - 1552 , - 2437 , - 4138 , - 2303 , - 1284 , - 1081 , - 1694 , - 3123 , - 1016 , - 4077 , - 3602 , - 3943 , - 748 , - 2721 , - 1158 , - 411 , - 480 , - 1365 , - 3066 , - 1231 , - 212 , - 9 , - 622 , - 2051 , - 4296 , - 3005 , - 2530 , - 2871 , - 4028 , - 1649 , - 86 , - 3691 , - 3760 , - 293 , - 1994 , - 159 , - 3492 , - 3289 , - 3902 , - 979 , - 3224 , - 1933 , - 1458 , - 1799 , - 2956 , - 577 , - 3366 , - 2619 , - 2688 , - 3573 , - 922 , - 3439 , - 2420 , - 2217 , - 2830 , - 4259 , - 2152 , - 861 , - 386 , - 727 , - 1884 , - 3857 , - 2294 , - 1547 , - 1616 , - 2501 , - 4202 , - 2367 , - 1348 , - 1145 , - 1758 , - 3187 , - 1080 , - 4141 , - 3666 , - 4007 , - 812 , - 2785 , - 1222 , - 475 , - 544 , - 1429 , - 3130 , - 1295 , - 276 , - 73 , - 686 , - 2115 , - 8 , - 3069 , - 2594 , - 2935 , - 4092 , - 1713 , - 150 , - 3755 , - 3824 , - 357 , - 2058 , - 223 , - 3556 , - 3353 , - 3966 , - 1043 , - 3288 , - 1997 , - 1522 , - 1863 , - 3020 , - 641 , - 3430 , - 2683 , - 2752 , - 3637 , - 986 , - 3503 , - 2484 , - 2281 , - 2894 , - 4323 , - 2216 , - 925 , - 450 , - 791 , - 1948 , - 3921 , - 2358 , - 1611 , - 1680 , - 2565 , - 4266 , - 2431 , - 1412 , - 1209 , - 1822 , - 3251 , - 1144 , - 4205 , - 3730 , - 4071 , - 876 , - 2849 , - 1286 , - 539 , - 608 , - 1493 , - 3194 , - 1359 , - 340 , - 137 , - 750 , - 2179 , - 72 , - 3133 , - 2658 , - 2999 , - 4156 , - 1777 , - 214 , - 3819 , - 3888 , - 421 , - 2122 , - 287 , - 3620 , - 3417 , - 4030 , - 1107 , - 3352 , - 2061 , - 1586 , - 1927 , - 3084 , - 705 , - 3494 , - 2747 , - 2816 , - 3701 , - 1050 , - 3567 , - 2548 , - 2345 , - 2958 , - 35 , - 2280 , - 989 , - 514 , - 855 , - 2012 , - 3985 , - 2422 , - 1675 , - 1744 , - 2629 , - 4330 , - 2495 , - 1476 , - 1273 , - 1886 , - 3315 , - 1208 , - 4269 , - 3794 , - 4135 , - 940 , - 2913 , - 1350 , - 603 , - 672 , - 1557 , - 3258 , - 1423 , - 404 , - 201 , - 814 , - 2243 , - 136 , - 3197 , - 2722 , - 3063 , - 4220 , - 1841 , - 278 , - 3883 , - 3952 , - 485 , - 2186 , - 351 , - 3684 , - 3481 , - 4094 , - 1171 , - 3416 , - 2125 , - 1650 , - 1991 , - 3148 , - 769 , - 3558 , - 2811 , - 2880 , - 3765 , - 1114 , - 3631 , - 2612 , - 2409 , - 3022 , - 99 , - 2344 , - 1053 , - 578 , - 919 , - 2076 , - 4049 , - 2486 , - 1739 , - 1808 , - 2693 , - 42 , - 2559 , - 1540 , - 1337 , - 1950 , - 3379 , - 1272 , - 4333 , - 3858 , - 4199 , - 1004 , - 2977 , - 1414 , - 667 , - 736 , - 1621 , - 3322 , - 1487 , - 468 , - 265 , - 878 , - 2307 , - 200 , - 3261 , - 2786 , - 3127 , - 4284 , - 1905 , - 342 , - 3947 , - 4016 , - 549 , - 2250 , - 415 , - 3748 , - 3545 , - 4158 , - 1235 , - 3480 , - 2189 , - 1714 , - 2055 , - 3212 , - 833 , - 3622 , - 2875 , - 2944 , - 3829 , - 1178 , - 3695 , - 2676 , - 2473 , - 3086 , - 163 , - 2408 , - 1117 , - 642 , - 983 , - 2140 , - 4113 , - 2550 , - 1803 , - 1872 , - 2757 , - 106 , - 2623 , - 1604 , - 1401 , - 2014 , - 3443 , - 1336 , - 45 , - 3922 , - 4263 , - 1068 , - 3041 , - 1478 , - 731 , - 800 , - 1685 , - 3386 , - 1551 , - 532 , - 329 , - 942 , - 2371 , - 264 , - 3325 , - 2850 , - 3191 , - 4348 , - 1969 , - 406 , - 4011 , - 4080 , - 613 , - 2314 , - 479 , - 3812 , - 3609 , - 4222 , - 1299 , - 3544 , - 2253 , - 1778 , - 2119 , - 3276 , - 897 , - 3686 , - 2939 , - 3008 , - 3893 , - 1242 , - 3759 , - 2740 , - 2537 , - 3150 , - 227 , - 2472 , - 1181 , - 706 , - 1047 , - 2204 , - 4177 , - 2614 , - 1867 , - 1936 , - 2821 , - 170 , - 2687 , - 1668 , - 1465 , - 2078 , - 3507 , - 1400 , - 109 , - 3986 , - 4327 , - 1132 , - 3105 , - 1542 , - 795 , - 864 , - 1749 , - 3450 , - 1615 , - 596 , - 393 , - 1006 , - 2435 , - 328 , - 3389 , - 2914 , - 3255 , - 60 , - 2033 , - 470 , - 4075 , - 4144 , - 677 , - 2378 , - 543 , - 3876 , - 3673 , - 4286 , - 1363 , - 3608 , - 2317 , - 1842 , - 2183 , - 3340 , - 961 , - 3750 , - 3003 , - 3072 , - 3957 , - 1306 , - 3823 , - 2804 , - 2601 , - 3214 , - 291 , - 2536 , - 1245 , - 770 , - 1111 , - 2268 , - 4241 , - 2678 , - 1931 , - 2000 , - 2885 , - 234 , - 2751 , - 1732 , - 1529 , - 2142 , - 3571 , - 1464 , - 173 , - 4050 , - 39 , - 1196 , - 3169 , - 1606 , - 859 , - 928 , - 1813 , - 3514 , - 1679 , - 660 , - 457 , - 1070 , - 2499 , - 392 , - 3453 , - 2978 , - 3319 , - 124 , - 2097 , - 534 , - 4139 , - 4208 , - 741 , - 2442 , - 607 , - 3940 , - 3737 , - 4350 , - 1427 , - 3672 , - 2381 , - 1906 , - 2247 , - 3404 , - 1025 , - 3814 , - 3067 , - 3136 , - 4021 , - 1370 , - 3887 , - 2868 , - 2665 , - 3278 , - 355 , - 2600 , - 1309 , - 834 , - 1175 , - 2332 , - 4305 , - 2742 , - 1995 , - 2064 , - 2949 , - 298 , - 2815 , - 1796 , - 1593 , - 2206 , - 3635 , - 1528 , - 237 , - 4114 , - 103 , - 1260 , - 3233 , - 1670 , - 923 , - 992 , - 1877 , - 3578 , - 1743 , - 724 , - 521 , - 1134 , - 2563 , - 456 , - 3517 , - 3042 , - 3383 , - 188 , - 2161 , - 598 , - 4203 , - 4272 , - 805 , - 2506 , - 671 , - 4004 , - 3801 , - 62 , - 1491 , - 3736 , - 2445 , - 1970 , - 2311 , - 3468 , - 1089 , - 3878 , - 3131 , - 3200 , - 4085 , - 1434 , - 3951 , - 2932 , - 2729 , - 3342 , - 419 , - 2664 , - 1373 , - 898 , - 1239 , - 2396 , - 17 , - 2806 , - 2059 , - 2128 , - 3013 , - 362 , - 2879 , - 1860 , - 1657 , - 2270 , - 3699 , - 1592 , - 301 , - 4178 , - 167 , - 1324 , - 3297 , - 1734 , - 987 , - 1056 , - 1941 , - 3642 , - 1807 , - 788 , - 585 , - 1198 , - 2627 , - 520 , - 3581 , - 3106 , - 3447 , - 252 , - 2225 , - 662 , - 4267 , - 4336 , - 869 , - 2570 , - 735 , - 4068 , - 3865 , - 126 , - 1555 , - 3800 , - 2509 , - 2034 , - 2375 , - 3532 , - 1153 , - 3942 , - 3195 , - 3264 , - 4149 , - 1498 , - 4015 , - 2996 , - 2793 , - 3406 , - 483 , - 2728 , - 1437 , - 962 , - 1303 , - 2460 , - 81 , - 2870 , - 2123 , - 2192 , - 3077 , - 426 , - 2943 , - 1924 , - 1721 , - 2334 , - 3763 , - 1656 , - 365 , - 4242 , - 231 , - 1388 , - 3361 , - 1798 , - 1051 , - 1120 , - 2005 , - 3706 , - 1871 , - 852 , - 649 , - 1262 , - 2691 , - 584 , - 3645 , - 3170 , - 3511 , - 316 , - 2289 , - 726 , - 4331 , - 48 , - 933 , - 2634 , - 799 , - 4132 , - 3929 , - 190 , - 1619 , - 3864 , - 2573 , - 2098 , - 2439 , - 3596 , - 1217 , - 4006 , - 3259 , - 3328 , - 4213 , - 1562 , - 4079 , - 3060 , - 2857 , - 3470 , - 547 , - 2792 , - 1501 , - 1026 , - 1367 , - 2524 , - 145 , - 2934 , - 2187 , - 2256 , - 3141 , - 490 , - 3007 , - 1988 , - 1785 , - 2398 , - 3827 , - 1720 , - 429 , - 4306 , - 295 , - 1452 , - 3425 , - 1862 , - 1115 , - 1184 , - 2069 , - 3770 , - 1935 , - 916 , - 713 , - 1326 , - 2755 , - 648 , - 3709 , - 3234 , - 3575 , - 380 , - 2353 , - 790 , - 43 , - 112 , - 997 , - 2698 , - 863 , - 4196 , - 3993 , - 254 , - 1683 , - 3928 , - 2637 , - 2162 , - 2503 , - 3660 , - 1281 , - 4070 , - 3323 , - 3392 , - 4277 , - 1626 , - 4143 , - 3124 , - 2921 , - 3534 , - 611 , - 2856 , - 1565 , - 1090 , - 1431 , - 2588 , - 209 , - 2998 , - 2251 , - 2320 , - 3205 , - 554 , - 3071 , - 2052 , - 1849 , - 2462 , - 3891 , - 1784 , - 493 , - 18 , - 359 , - 1516 , - 3489 , - 1926 , - 1179 , - 1248 , - 2133 , - 3834 , - 1999 , - 980 , - 777 , - 1390 , - 2819 , - 712 , - 3773 , - 3298 , - 3639 , - 444 , - 2417 , - 854 , - 107 , - 176 , - 1061 , - 2762 , - 927 , - 4260 , - 4057 , - 318 , - 1747 , - 3992 , - 2701 , - 2226 , - 2567 , - 3724 , - 1345 , - 4134 , - 3387 , - 3456 , - 4341 , - 1690 , - 4207 , - 3188 , - 2985 , - 3598 , - 675 , - 2920 , - 1629 , - 1154 , - 1495 , - 2652 , - 273 , - 3062 , - 2315 , - 2384 , - 3269 , - 618 , - 3135 , - 2116 , - 1913 , - 2526 , - 3955 , - 1848 , - 557 , - 82 , - 423 , - 1580 , - 3553 , - 1990 , - 1243 , - 1312 , - 2197 , - 3898 , - 2063 , - 1044 , - 841 , - 1454 , - 2883 , - 776 , - 3837 , - 3362 , - 3703 , - 508 , - 2481 , - 918 , - 171 , - 240 , - 1125 , - 2826 , - 991 , - 4324 , - 4121 , - 382 , - 1811 , - 4056 , - 2765 , - 2290 , - 2631 , - 3788 , - 1409 , - 4198 , - 3451 , - 3520 , - 53 , - 1754 , - 4271 , - 3252 , - 3049 , - 3662 , - 739 , - 2984 , - 1693 , - 1218 , - 1559 , - 2716 , - 337 , - 3126 , - 2379 , - 2448 , - 3333 , - 682 , - 3199 , - 2180 , - 1977 , - 2590 , - 4019 , - 1912 , - 621 , - 146 , - 487 , - 1644 , - 3617 , - 2054 , - 1307 , - 1376 , - 2261 , - 3962 , - 2127 , - 1108 , - 905 , - 1518 , - 2947 , - 840 , - 3901 , - 3426 , - 3767 , - 572 , - 2545 , - 982 , - 235 , - 304 , - 1189 , - 2890 , - 1055 , - 36 , - 4185 , - 446 , - 1875 , - 4120 , - 2829 , - 2354 , - 2695 , - 3852 , - 1473 , - 4262 , - 3515 , - 3584 , - 117 , - 1818 , - 4335 , - 3316 , - 3113 , - 3726 , - 803 , - 3048 , - 1757 , - 1282 , - 1623 , - 2780 , - 401 , - 3190 , - 2443 , - 2512 , - 3397 , - 746 , - 3263 , - 2244 , - 2041 , - 2654 , - 4083 , - 1976 , - 685 , - 210 , - 551 , - 1708 , - 3681 , - 2118 , - 1371 , - 1440 , - 2325 , - 4026 , - 2191 , - 1172 , - 969 , - 1582 , - 3011 , - 904 , - 3965 , - 3490 , - 3831 , - 636 , - 2609 , - 1046 , - 299 , - 368 , - 1253 , - 2954 , - 1119 , - 100 , - 4249 , - 510 , - 1939 , - 4184 , - 2893 , - 2418 , - 2759 , - 3916 , - 1537 , - 4326 , - 3579 , - 3648 , - 181 , - 1882 , - 47 , - 3380 , - 3177 , - 3790 , - 867 , - 3112 , - 1821 , - 1346 , - 1687 , - 2844 , - 465 , - 3254 , - 2507 , - 2576 , - 3461 , - 810 , - 3327 , - 2308 , - 2105 , - 2718 , - 4147 , - 2040 , - 749 , - 274 , - 615 , - 1772 , - 3745 , - 2182 , - 1435 , - 1504 , - 2389 , - 4090 , - 2255 , - 1236 , - 1033 , - 1646 , - 3075 , - 968 , - 4029 , - 3554 , - 3895 , - 700 , - 2673 , - 1110 , - 363 , - 432 , - 1317 , - 3018 , - 1183 , - 164 , - 4313 , - 574 , - 2003 , - 4248 , - 2957 , - 2482 , - 2823 , - 3980 , - 1601 , - 38 , - 3643 , - 3712 , - 245 , - 1946 , - 111 , - 3444 , - 3241 , - 3854 , - 931 , - 3176 , - 1885 , - 1410 , - 1751 , - 2908 , - 529 , - 3318 , - 2571 , - 2640 , - 3525 , - 874 , - 3391 , - 2372 , - 2169 , - 2782 , - 4211 , - 2104 , - 813 , - 338 , - 679 , - 1836 , - 3809 , - 2246 , - 1499 , - 1568 , - 2453 , - 4154 , - 2319 , - 1300 , - 1097 , - 1710 , - 3139 , - 1032 , - 4093 , - 3618 , - 3959 , - 764 , - 2737 , - 1174 , - 427 , - 496 , - 1381 , - 3082 , - 1247 , - 228 , - 25 , - 638 , - 2067 , - 4312 , - 3021 , - 2546 , - 2887 , - 4044 , - 1665 , - 102 , - 3707 , - 3776 , - 309 , - 2010 , - 175 , - 3508 , - 3305 , - 3918 , - 995 , - 3240 , - 1949 , - 1474 , - 1815 , - 2972 , - 593 , - 3382 , - 2635 , - 2704 , - 3589 , - 938 , - 3455 , - 2436 , - 2233 , - 2846 , - 4275 , - 2168 , - 877 , - 402 , - 743 , - 1900 , - 3873 , - 2310 , - 1563 , - 1632 , - 2517 , - 4218 , - 2383 , - 1364 , - 1161 , - 1774 , - 3203 , - 1096 , - 4157 , - 3682 , - 4023 , - 828 , - 2801 , - 1238 , - 491 , - 560 , - 1445 , - 3146 , - 1311 , - 292 , - 89 , - 702 , - 2131 , - 24 , - 3085 , - 2610 , - 2951 , - 4108 , - 1729 , - 166 , - 3771 , - 3840 , - 373 , - 2074 , - 239 , - 3572 , - 3369 , - 3982 , - 1059 , - 3304 , - 2013 , - 1538 , - 1879 , - 3036 , - 657 , - 3446 , - 2699 , - 2768 , - 3653 , - 1002 , - 3519 , - 2500 , - 2297 , - 2910 , - 4339 , - 2232 , - 941 , - 466 , - 807 , - 1964 , - 3937 , - 2374 , - 1627 , - 1696 , - 2581 , - 4282 , - 2447 , - 1428 , - 1225 , - 1838 , - 3267 , - 1160 , - 4221 , - 3746 , - 4087 , - 892 , - 2865 , - 1302 , - 555 , - 624 , - 1509 , - 3210 , - 1375 , - 356 , - 153 , - 766 , - 2195 , - 88 , - 3149 , - 2674 , - 3015 , - 4172 , - 1793 , - 230 , - 3835 , - 3904 , - 437 , - 2138 , - 303 , - 3636 , - 3433 , - 4046 , - 1123 , - 3368 , - 2077 , - 1602 , - 1943 , - 3100 , - 721 , - 3510 , - 2763 , - 2832 , - 3717 , - 1066 , - 3583 , - 2564 , - 2361 , - 2974 , - 51 , - 2296 , - 1005 , - 530 , - 871 , - 2028 , - 4001 , - 2438 , - 1691 , - 1760 , - 2645 , - 4346 , - 2511 , - 1492 , - 1289 , - 1902 , - 3331 , - 1224 , - 4285 , - 3810 , - 4151 , - 956 , - 2929 , - 1366 , - 619 , - 688 , - 1573 , - 3274 , - 1439 , - 420 , - 217 , - 830 , - 2259 , - 152 , - 3213 , - 2738 , - 3079 , - 4236 , - 1857 , - 294 , - 3899 , - 3968 , - 501 , - 2202 , - 367 , - 3700 , - 3497 , - 4110 , - 1187 , - 3432 , - 2141 , - 1666 , - 2007 , - 3164 , - 785 , - 3574 , - 2827 , - 2896 , - 3781 , - 1130 , - 3647 , - 2628 , - 2425 , - 3038 , - 115 , - 2360 , - 1069 , - 594 , - 935 , - 2092 , - 4065 , - 2502 , - 1755 , - 1824 , - 2709 , - 58 , - 2575 , - 1556 , - 1353 , - 1966 , - 3395 , - 1288 , - 4349 , - 3874 , - 4215 , - 1020 , - 2993 , - 1430 , - 683 , - 752 , - 1637 , - 3338 , - 1503 , - 484 , - 281 , - 894 , - 2323 , - 216 , - 3277 , - 2802 , - 3143 , - 4300 , - 1921 , - 358 , - 3963 , - 4032 , - 565 , - 2266 , - 431 , - 3764 , - 3561 , - 4174 , - 1251 , - 3496 , - 2205 , - 1730 , - 2071 , - 3228 , - 849 , - 3638 , - 2891 , - 2960 , - 3845 , - 1194 , - 3711 , - 2692 , - 2489 , - 3102 , - 179 , - 2424 , - 1133 , - 658 , - 999 , - 2156 , - 4129 , - 2566 , - 1819 , - 1888 , - 2773 , - 122 , - 2639 , - 1620 , - 1417 , - 2030 , - 3459 , - 1352 , - 61 , - 3938 , - 4279 , - 1084 , - 3057 , - 1494 , - 747 , - 816 , - 1701 , - 3402 , - 1567 , - 548 , - 345 , - 958 , - 2387 , - 280 , - 3341 , - 2866 , - 3207 , - 12 , - 1985 , - 422 , - 4027 , - 4096 , - 629 , - 2330 , - 495 , - 3828 , - 3625 , - 4238 , - 1315 , - 3560 , - 2269 , - 1794 , - 2135 , - 3292 , - 913 , - 3702 , - 2955 , - 3024 , - 3909 , - 1258 , - 3775 , - 2756 , - 2553 , - 3166 , - 243 , - 2488 , - 1197 , - 722 , - 1063 , - 2220 , - 4193 , - 2630 , - 1883 , - 1952 , - 2837 , - 186 , - 2703 , - 1684 , - 1481 , - 2094 , - 3523 , - 1416 , - 125 , - 4002 , - 4343 , - 1148 , - 3121 , - 1558 , - 811 , - 880 , - 1765 , - 3466 , - 1631 , - 612 , - 409 , - 1022 , - 2451 , - 344 , - 3405 , - 2930 , - 3271 , - 76 , - 2049 , - 486 , - 4091 , - 4160 , - 693 , - 2394 , - 559 , - 3892 , - 3689 , - 4302 , - 1379 , - 3624 , - 2333 , - 1858 , - 2199 , - 3356 , - 977 , - 3766 , - 3019 , - 3088 , - 3973 , - 1322 , - 3839 , - 2820 , - 2617 , - 3230 , - 307 , - 2552 , - 1261 , - 786 , - 1127 , - 2284 , - 4257 , - 2694 , - 1947 , - 2016 , - 2901 , - 250 , - 2767 , - 1748 , - 1545 , - 2158 , - 3587 , - 1480 , - 189 , - 4066 , - 55 , - 1212 , - 3185 , - 1622 , - 875 , - 944 , - 1829 , - 3530 , - 1695 , - 676 , - 473 , - 1086 , - 2515 , - 408 , - 3469 , - 2994 , - 3335 , - 140 , - 2113 , - 550 , - 4155 , - 4224 , - 757 , - 2458 , - 623 , - 3956 , - 3753 , - 14 , - 1443 , - 3688 , - 2397 , - 1922 , - 2263 , - 3420 , - 1041 , - 3830 , - 3083 , - 3152 , - 4037 , - 1386 , - 3903 , - 2884 , - 2681 , - 3294 , - 371 , - 2616 , - 1325 , - 850 , - 1191 , - 2348 , - 4321 , - 2758 , - 2011 , - 2080 , - 2965 , - 314 , - 2831 , - 1812 , - 1609 , - 2222 , - 3651 , - 1544 , - 253 , - 4130 , - 119 , - 1276 , - 3249 , - 1686 , - 939 , - 1008 , - 1893 , - 3594 , - 1759 , - 740 , - 537 , - 1150 , - 2579 , - 472 , - 3533 , - 3058 , - 3399 , - 204 , - 2177 , - 614 , - 4219 , - 4288 , - 821 , - 2522 , - 687 , - 4020 , - 3817 , - 78 , - 1507 , - 3752 , - 2461 , - 1986 , - 2327 , - 3484 , - 1105 , - 3894 , - 3147 , - 3216 , - 4101 , - 1450 , - 3967 , - 2948 , - 2745 , - 3358 , - 435 , - 2680 , - 1389 , - 914 , - 1255 , - 2412 , - 33 , - 2822 , - 2075 , - 2144 , - 3029 , - 378 , - 2895 , - 1876 , - 1673 , - 2286 , - 3715 , - 1608 , - 317 , - 4194 , - 183 , - 1340 , - 3313 , - 1750 , - 1003 , - 1072 , - 1957 , - 3658 , - 1823 , - 804 , - 601 , - 1214 , - 2643 , - 536 , - 3597 , - 3122 , - 3463 , - 268 , - 2241 , - 678 , - 4283 , - 0 , - 173 , - 622 , - 1347 , - 2348 , - 3625 , - 762 , - 2591 , - 280 , - 2661 , - 902 , - 3835 , - 2628 , - 1697 , - 1042 , - 663 , - 560 , - 733 , - 1182 , - 1907 , - 2908 , - 4185 , - 1322 , - 3151 , - 840 , - 3221 , - 1462 , - 4395 , - 3188 , - 2257 , - 1602 , - 1223 , - 1120 , - 1293 , - 1742 , - 2467 , - 3468 , - 329 , - 1882 , - 3711 , - 1400 , - 3781 , - 2022 , - 539 , - 3748 , - 2817 , - 2162 , - 1783 , - 1680 , - 1853 , - 2302 , - 3027 , - 4028 , - 889 , - 2442 , - 4271 , - 1960 , - 4341 , - 2582 , - 1099 , - 4308 , - 3377 , - 2722 , - 2343 , - 2240 , - 2413 , - 2862 , - 3587 , - 172 , - 1449 , - 3002 , - 415 , - 2520 , - 485 , - 3142 , - 1659 , - 452 , - 3937 , - 3282 , - 2903 , - 2800 , - 2973 , - 3422 , - 4147 , - 732 , - 2009 , - 3562 , - 975 , - 3080 , - 1045 , - 3702 , - 2219 , - 1012 , - 81 , - 3842 , - 3463 , - 3360 , - 3533 , - 3982 , - 291 , - 1292 , - 2569 , - 4122 , - 1535 , - 3640 , - 1605 , - 4262 , - 2779 , - 1572 , - 641 , - 4402 , - 4023 , - 3920 , - 4093 , - 126 , - 851 , - 1852 , - 3129 , - 266 , - 2095 , - 4200 , - 2165 , - 406 , - 3339 , - 2132 , - 1201 , - 546 , - 167 , - 64 , - 237 , - 686 , - 1411 , - 2412 , - 3689 , - 826 , - 2655 , - 344 , - 2725 , - 966 , - 3899 , - 2692 , - 1761 , - 1106 , - 727 , - 624 , - 797 , - 1246 , - 1971 , - 2972 , - 4249 , - 1386 , - 3215 , - 904 , - 3285 , - 1526 , - 43 , - 3252 , - 2321 , - 1666 , - 1287 , - 1184 , - 1357 , - 1806 , - 2531 , - 3532 , - 393 , - 1946 , - 3775 , - 1464 , - 3845 , - 2086 , - 603 , - 3812 , - 2881 , - 2226 , - 1847 , - 1744 , - 1917 , - 2366 , - 3091 , - 4092 , - 953 , - 2506 , - 4335 , - 2024 , - 4405 , - 2646 , - 1163 , - 4372 , - 3441 , - 2786 , - 2407 , - 2304 , - 2477 , - 2926 , - 3651 , - 236 , - 1513 , - 3066 , - 479 , - 2584 , - 549 , - 3206 , - 1723 , - 516 , - 4001 , - 3346 , - 2967 , - 2864 , - 3037 , - 3486 , - 4211 , - 796 , - 2073 , - 3626 , - 1039 , - 3144 , - 1109 , - 3766 , - 2283 , - 1076 , - 145 , - 3906 , - 3527 , - 3424 , - 3597 , - 4046 , - 355 , - 1356 , - 2633 , - 4186 , - 1599 , - 3704 , - 1669 , - 4326 , - 2843 , - 1636 , - 705 , - 50 , - 4087 , - 3984 , - 4157 , - 190 , - 915 , - 1916 , - 3193 , - 330 , - 2159 , - 4264 , - 2229 , - 470 , - 3403 , - 2196 , - 1265 , - 610 , - 231 , - 128 , - 301 , - 750 , - 1475 , - 2476 , - 3753 , - 890 , - 2719 , - 408 , - 2789 , - 1030 , - 3963 , - 2756 , - 1825 , - 1170 , - 791 , - 688 , - 861 , - 1310 , - 2035 , - 3036 , - 4313 , - 1450 , - 3279 , - 968 , - 3349 , - 1590 , - 107 , - 3316 , - 2385 , - 1730 , - 1351 , - 1248 , - 1421 , - 1870 , - 2595 , - 3596 , - 457 , - 2010 , - 3839 , - 1528 , - 3909 , - 2150 , - 667 , - 3876 , - 2945 , - 2290 , - 1911 , - 1808 , - 1981 , - 2430 , - 3155 , - 4156 , - 1017 , - 2570 , - 4399 , - 2088 , - 53 , - 2710 , - 1227 , - 20 , - 3505 , - 2850 , - 2471 , - 2368 , - 2541 , - 2990 , - 3715 , - 300 , - 1577 , - 3130 , - 543 , - 2648 , - 613 , - 3270 , - 1787 , - 580 , - 4065 , - 3410 , - 3031 , - 2928 , - 3101 , - 3550 , - 4275 , - 860 , - 2137 , - 3690 , - 1103 , - 3208 , - 1173 , - 3830 , - 2347 , - 1140 , - 209 , - 3970 , - 3591 , - 3488 , - 3661 , - 4110 , - 419 , - 1420 , - 2697 , - 4250 , - 1663 , - 3768 , - 1733 , - 4390 , - 2907 , - 1700 , - 769 , - 114 , - 4151 , - 4048 , - 4221 , - 254 , - 979 , - 1980 , - 3257 , - 394 , - 2223 , - 4328 , - 2293 , - 534 , - 3467 , - 2260 , - 1329 , - 674 , - 295 , - 192 , - 365 , - 814 , - 1539 , - 2540 , - 3817 , - 954 , - 2783 , - 472 , - 2853 , - 1094 , - 4027 , - 2820 , - 1889 , - 1234 , - 855 , - 752 , - 925 , - 1374 , - 2099 , - 3100 , - 4377 , - 1514 , - 3343 , - 1032 , - 3413 , - 1654 , - 171 , - 3380 , - 2449 , - 1794 , - 1415 , - 1312 , - 1485 , - 1934 , - 2659 , - 3660 , - 521 , - 2074 , - 3903 , - 1592 , - 3973 , - 2214 , - 731 , - 3940 , - 3009 , - 2354 , - 1975 , - 1872 , - 2045 , - 2494 , - 3219 , - 4220 , - 1081 , - 2634 , - 47 , - 2152 , - 117 , - 2774 , - 1291 , - 84 , - 3569 , - 2914 , - 2535 , - 2432 , - 2605 , - 3054 , - 3779 , - 364 , - 1641 , - 3194 , - 607 , - 2712 , - 677 , - 3334 , - 1851 , - 644 , - 4129 , - 3474 , - 3095 , - 2992 , - 3165 , - 3614 , - 4339 , - 924 , - 2201 , - 3754 , - 1167 , - 3272 , - 1237 , - 3894 , - 2411 , - 1204 , - 273 , - 4034 , - 3655 , - 3552 , - 3725 , - 4174 , - 483 , - 1484 , - 2761 , - 4314 , - 1727 , - 3832 , - 1797 , - 38 , - 2971 , - 1764 , - 833 , - 178 , - 4215 , - 4112 , - 4285 , - 318 , - 1043 , - 2044 , - 3321 , - 458 , - 2287 , - 4392 , - 2357 , - 598 , - 3531 , - 2324 , - 1393 , - 738 , - 359 , - 256 , - 429 , - 878 , - 1603 , - 2604 , - 3881 , - 1018 , - 2847 , - 536 , - 2917 , - 1158 , - 4091 , - 2884 , - 1953 , - 1298 , - 919 , - 816 , - 989 , - 1438 , - 2163 , - 3164 , - 25 , - 1578 , - 3407 , - 1096 , - 3477 , - 1718 , - 235 , - 3444 , - 2513 , - 1858 , - 1479 , - 1376 , - 1549 , - 1998 , - 2723 , - 3724 , - 585 , - 2138 , - 3967 , - 1656 , - 4037 , - 2278 , - 795 , - 4004 , - 3073 , - 2418 , - 2039 , - 1936 , - 2109 , - 2558 , - 3283 , - 4284 , - 1145 , - 2698 , - 111 , - 2216 , - 181 , - 2838 , - 1355 , - 148 , - 3633 , - 2978 , - 2599 , - 2496 , - 2669 , - 3118 , - 3843 , - 428 , - 1705 , - 3258 , - 671 , - 2776 , - 741 , - 3398 , - 1915 , - 708 , - 4193 , - 3538 , - 3159 , - 3056 , - 3229 , - 3678 , - 4403 , - 988 , - 2265 , - 3818 , - 1231 , - 3336 , - 1301 , - 3958 , - 2475 , - 1268 , - 337 , - 4098 , - 3719 , - 3616 , - 3789 , - 4238 , - 547 , - 1548 , - 2825 , - 4378 , - 1791 , - 3896 , - 1861 , - 102 , - 3035 , - 1828 , - 897 , - 242 , - 4279 , - 4176 , - 4349 , - 382 , - 1107 , - 2108 , - 3385 , - 522 , - 2351 , - 40 , - 2421 , - 662 , - 3595 , - 2388 , - 1457 , - 802 , - 423 , - 320 , - 493 , - 942 , - 1667 , - 2668 , - 3945 , - 1082 , - 2911 , - 600 , - 2981 , - 1222 , - 4155 , - 2948 , - 2017 , - 1362 , - 983 , - 880 , - 1053 , - 1502 , - 2227 , - 3228 , - 89 , - 1642 , - 3471 , - 1160 , - 3541 , - 1782 , - 299 , - 3508 , - 2577 , - 1922 , - 1543 , - 1440 , - 1613 , - 2062 , - 2787 , - 3788 , - 649 , - 2202 , - 4031 , - 1720 , - 4101 , - 2342 , - 859 , - 4068 , - 3137 , - 2482 , - 2103 , - 2000 , - 2173 , - 2622 , - 3347 , - 4348 , - 1209 , - 2762 , - 175 , - 2280 , - 245 , - 2902 , - 1419 , - 212 , - 3697 , - 3042 , - 2663 , - 2560 , - 2733 , - 3182 , - 3907 , - 492 , - 1769 , - 3322 , - 735 , - 2840 , - 805 , - 3462 , - 1979 , - 772 , - 4257 , - 3602 , - 3223 , - 3120 , - 3293 , - 3742 , - 51 , - 1052 , - 2329 , - 3882 , - 1295 , - 3400 , - 1365 , - 4022 , - 2539 , - 1332 , - 401 , - 4162 , - 3783 , - 3680 , - 3853 , - 4302 , - 611 , - 1612 , - 2889 , - 26 , - 1855 , - 3960 , - 1925 , - 166 , - 3099 , - 1892 , - 961 , - 306 , - 4343 , - 4240 , - 4413 , - 446 , - 1171 , - 2172 , - 3449 , - 586 , - 2415 , - 104 , - 2485 , - 726 , - 3659 , - 2452 , - 1521 , - 866 , - 487 , - 384 , - 557 , - 1006 , - 1731 , - 2732 , - 4009 , - 1146 , - 2975 , - 664 , - 3045 , - 1286 , - 4219 , - 3012 , - 2081 , - 1426 , - 1047 , - 944 , - 1117 , - 1566 , - 2291 , - 3292 , - 153 , - 1706 , - 3535 , - 1224 , - 3605 , - 1846 , - 363 , - 3572 , - 2641 , - 1986 , - 1607 , - 1504 , - 1677 , - 2126 , - 2851 , - 3852 , - 713 , - 2266 , - 4095 , - 1784 , - 4165 , - 2406 , - 923 , - 4132 , - 3201 , - 2546 , - 2167 , - 2064 , - 2237 , - 2686 , - 3411 , - 4412 , - 1273 , - 2826 , - 239 , - 2344 , - 309 , - 2966 , - 1483 , - 276 , - 3761 , - 3106 , - 2727 , - 2624 , - 2797 , - 3246 , - 3971 , - 556 , - 1833 , - 3386 , - 799 , - 2904 , - 869 , - 3526 , - 2043 , - 836 , - 4321 , - 3666 , - 3287 , - 3184 , - 3357 , - 3806 , - 115 , - 1116 , - 2393 , - 3946 , - 1359 , - 3464 , - 1429 , - 4086 , - 2603 , - 1396 , - 465 , - 4226 , - 3847 , - 3744 , - 3917 , - 4366 , - 675 , - 1676 , - 2953 , - 90 , - 1919 , - 4024 , - 1989 , - 230 , - 3163 , - 1956 , - 1025 , - 370 , - 4407 , - 4304 , - 61 , - 510 , - 1235 , - 2236 , - 3513 , - 650 , - 2479 , - 168 , - 2549 , - 790 , - 3723 , - 2516 , - 1585 , - 930 , - 551 , - 448 , - 621 , - 1070 , - 1795 , - 2796 , - 4073 , - 1210 , - 3039 , - 728 , - 3109 , - 1350 , - 4283 , - 3076 , - 2145 , - 1490 , - 1111 , - 1008 , - 1181 , - 1630 , - 2355 , - 3356 , - 217 , - 1770 , - 3599 , - 1288 , - 3669 , - 1910 , - 427 , - 3636 , - 2705 , - 2050 , - 1671 , - 1568 , - 1741 , - 2190 , - 2915 , - 3916 , - 777 , - 2330 , - 4159 , - 1848 , - 4229 , - 2470 , - 987 , - 4196 , - 3265 , - 2610 , - 2231 , - 2128 , - 2301 , - 2750 , - 3475 , - 60 , - 1337 , - 2890 , - 303 , - 2408 , - 373 , - 3030 , - 1547 , - 340 , - 3825 , - 3170 , - 2791 , - 2688 , - 2861 , - 3310 , - 4035 , - 620 , - 1897 , - 3450 , - 863 , - 2968 , - 933 , - 3590 , - 2107 , - 900 , - 4385 , - 3730 , - 3351 , - 3248 , - 3421 , - 3870 , - 179 , - 1180 , - 2457 , - 4010 , - 1423 , - 3528 , - 1493 , - 4150 , - 2667 , - 1460 , - 529 , - 4290 , - 3911 , - 3808 , - 3981 , - 14 , - 739 , - 1740 , - 3017 , - 154 , - 1983 , - 4088 , - 2053 , - 294 , - 3227 , - 2020 , - 1089 , - 434 , - 55 , - 4368 , - 125 , - 574 , - 1299 , - 2300 , - 3577 , - 714 , - 2543 , - 232 , - 2613 , - 854 , - 3787 , - 2580 , - 1649 , - 994 , - 615 , - 512 , - 685 , - 1134 , - 1859 , - 2860 , - 4137 , - 1274 , - 3103 , - 792 , - 3173 , - 1414 , - 4347 , - 3140 , - 2209 , - 1554 , - 1175 , - 1072 , - 1245 , - 1694 , - 2419 , - 3420 , - 281 , - 1834 , - 3663 , - 1352 , - 3733 , - 1974 , - 491 , - 3700 , - 2769 , - 2114 , - 1735 , - 1632 , - 1805 , - 2254 , - 2979 , - 3980 , - 841 , - 2394 , - 4223 , - 1912 , - 4293 , - 2534 , - 1051 , - 4260 , - 3329 , - 2674 , - 2295 , - 2192 , - 2365 , - 2814 , - 3539 , - 124 , - 1401 , - 2954 , - 367 , - 2472 , - 437 , - 3094 , - 1611 , - 404 , - 3889 , - 3234 , - 2855 , - 2752 , - 2925 , - 3374 , - 4099 , - 684 , - 1961 , - 3514 , - 927 , - 3032 , - 997 , - 3654 , - 2171 , - 964 , - 33 , - 3794 , - 3415 , - 3312 , - 3485 , - 3934 , - 243 , - 1244 , - 2521 , - 4074 , - 1487 , - 3592 , - 1557 , - 4214 , - 2731 , - 1524 , - 593 , - 4354 , - 3975 , - 3872 , - 4045 , - 78 , - 803 , - 1804 , - 3081 , - 218 , - 2047 , - 4152 , - 2117 , - 358 , - 3291 , - 2084 , - 1153 , - 498 , - 119 , - 16 , - 189 , - 638 , - 1363 , - 2364 , - 3641 , - 778 , - 2607 , - 296 , - 2677 , - 918 , - 3851 , - 2644 , - 1713 , - 1058 , - 679 , - 576 , - 749 , - 1198 , - 1923 , - 2924 , - 4201 , - 1338 , - 3167 , - 856 , - 3237 , - 1478 , - 4411 , - 3204 , - 2273 , - 1618 , - 1239 , - 1136 , - 1309 , - 1758 , - 2483 , - 3484 , - 345 , - 1898 , - 3727 , - 1416 , - 3797 , - 2038 , - 555 , - 3764 , - 2833 , - 2178 , - 1799 , - 1696 , - 1869 , - 2318 , - 3043 , - 4044 , - 905 , - 2458 , - 4287 , - 1976 , - 4357 , - 2598 , - 1115 , - 4324 , - 3393 , - 2738 , - 2359 , - 2256 , - 2429 , - 2878 , - 3603 , - 188 , - 1465 , - 3018 , - 431 , - 2536 , - 501 , - 3158 , - 1675 , - 468 , - 3953 , - 3298 , - 2919 , - 2816 , - 2989 , - 3438 , - 4163 , - 748 , - 2025 , - 3578 , - 991 , - 3096 , - 1061 , - 3718 , - 2235 , - 1028 , - 97 , - 3858 , - 3479 , - 3376 , - 3549 , - 3998 , - 307 , - 1308 , - 2585 , - 4138 , - 1551 , - 3656 , - 1621 , - 4278 , - 2795 , - 1588 , - 657 , - 2 , - 4039 , - 3936 , - 4109 , - 142 , - 867 , - 1868 , - 3145 , - 282 , - 2111 , - 4216 , - 2181 , - 422 , - 3355 , - 2148 , - 1217 , - 562 , - 183 , - 80 , - 253 , - 702 , - 1427 , - 2428 , - 3705 , - 842 , - 2671 , - 360 , - 2741 , - 982 , - 3915 , - 2708 , - 1777 , - 1122 , - 743 , - 640 , - 813 , - 1262 , - 1987 , - 2988 , - 4265 , - 1402 , - 3231 , - 920 , - 3301 , - 1542 , - 59 , - 3268 , - 2337 , - 1682 , - 1303 , - 1200 , - 1373 , - 1822 , - 2547 , - 3548 , - 409 , - 1962 , - 3791 , - 1480 , - 3861 , - 2102 , - 619 , - 3828 , - 2897 , - 2242 , - 1863 , - 1760 , - 1933 , - 2382 , - 3107 , - 4108 , - 969 , - 2522 , - 4351 , - 2040 , - 5 , - 2662 , - 1179 , - 4388 , - 3457 , - 2802 , - 2423 , - 2320 , - 2493 , - 2942 , - 3667 , - 252 , - 1529 , - 3082 , - 495 , - 2600 , - 565 , - 3222 , - 1739 , - 532 , - 4017 , - 3362 , - 2983 , - 2880 , - 3053 , - 3502 , - 4227 , - 812 , - 2089 , - 3642 , - 1055 , - 3160 , - 1125 , - 3782 , - 2299 , - 1092 , - 161 , - 3922 , - 3543 , - 3440 , - 3613 , - 4062 , - 371 , - 1372 , - 2649 , - 4202 , - 1615 , - 3720 , - 1685 , - 4342 , - 2859 , - 1652 , - 721 , - 66 , - 4103 , - 4000 , - 4173 , - 206 , - 931 , - 1932 , - 3209 , - 346 , - 2175 , - 4280 , - 2245 , - 486 , - 3419 , - 2212 , - 1281 , - 626 , - 247 , - 144 , - 317 , - 766 , - 1491 , - 2492 , - 3769 , - 906 , - 2735 , - 424 , - 2805 , - 1046 , - 3979 , - 2772 , - 1841 , - 1186 , - 807 , - 704 , - 877 , - 1326 , - 2051 , - 3052 , - 4329 , - 1466 , - 3295 , - 984 , - 3365 , - 1606 , - 123 , - 3332 , - 2401 , - 1746 , - 1367 , - 1264 , - 1437 , - 1886 , - 2611 , - 3612 , - 473 , - 2026 , - 3855 , - 1544 , - 3925 , - 2166 , - 683 , - 3892 , - 2961 , - 2306 , - 1927 , - 1824 , - 1997 , - 2446 , - 3171 , - 4172 , - 1033 , - 2586 , - 4415 , - 2104 , - 69 , - 2726 , - 1243 , - 36 , - 3521 , - 2866 , - 2487 , - 2384 , - 2557 , - 3006 , - 3731 , - 316 , - 1593 , - 3146 , - 559 , - 2664 , - 629 , - 3286 , - 1803 , - 596 , - 4081 , - 3426 , - 3047 , - 2944 , - 3117 , - 3566 , - 4291 , - 876 , - 2153 , - 3706 , - 1119 , - 3224 , - 1189 , - 3846 , - 2363 , - 1156 , - 225 , - 3986 , - 3607 , - 3504 , - 3677 , - 4126 , - 435 , - 1436 , - 2713 , - 4266 , - 1679 , - 3784 , - 1749 , - 4406 , - 2923 , - 1716 , - 785 , - 130 , - 4167 , - 4064 , - 4237 , - 270 , - 995 , - 1996 , - 3273 , - 410 , - 2239 , - 4344 , - 2309 , - 550 , - 3483 , - 2276 , - 1345 , - 690 , - 311 , - 208 , - 381 , - 830 , - 1555 , - 2556 , - 3833 , - 970 , - 2799 , - 488 , - 2869 , - 1110 , - 4043 , - 2836 , - 1905 , - 1250 , - 871 , - 768 , - 941 , - 1390 , - 2115 , - 3116 , - 4393 , - 1530 , - 3359 , - 1048 , - 3429 , - 1670 , - 187 , - 3396 , - 2465 , - 1810 , - 1431 , - 1328 , - 1501 , - 1950 , - 2675 , - 3676 , - 537 , - 2090 , - 3919 , - 1608 , - 3989 , - 2230 , - 747 , - 3956 , - 3025 , - 2370 , - 1991 , - 1888 , - 2061 , - 2510 , - 3235 , - 4236 , - 1097 , - 2650 , - 63 , - 2168 , - 133 , - 2790 , - 1307 , - 100 , - 3585 , - 2930 , - 2551 , - 2448 , - 2621 , - 3070 , - 3795 , - 380 , - 1657 , - 3210 , - 623 , - 2728 , - 693 , - 3350 , - 1867 , - 660 , - 4145 , - 3490 , - 3111 , - 3008 , - 3181 , - 3630 , - 4355 , - 940 , - 2217 , - 3770 , - 1183 , - 3288 , - 1253 , - 3910 , - 2427 , - 1220 , - 289 , - 4050 , - 3671 , - 3568 , - 3741 , - 4190 , - 499 , - 1500 , - 2777 , - 4330 , - 1743 , - 3848 , - 1813 , - 54 , - 2987 , - 1780 , - 849 , - 194 , - 4231 , - 4128 , - 4301 , - 334 , - 1059 , - 2060 , - 3337 , - 474 , - 2303 , - 4408 , - 2373 , - 614 , - 3547 , - 2340 , - 1409 , - 754 , - 375 , - 272 , - 445 , - 894 , - 1619 , - 2620 , - 3897 , - 1034 , - 2863 , - 552 , - 2933 , - 1174 , - 4107 , - 2900 , - 1969 , - 1314 , - 935 , - 832 , - 1005 , - 1454 , - 2179 , - 3180 , - 41 , - 1594 , - 3423 , - 1112 , - 3493 , - 1734 , - 251 , - 3460 , - 2529 , - 1874 , - 1495 , - 1392 , - 1565 , - 2014 , - 2739 , - 3740 , - 601 , - 2154 , - 3983 , - 1672 , - 4053 , - 2294 , - 811 , - 4020 , - 3089 , - 2434 , - 2055 , - 1952 , - 2125 , - 2574 , - 3299 , - 4300 , - 1161 , - 2714 , - 127 , - 2232 , - 197 , - 2854 , - 1371 , - 164 , - 3649 , - 2994 , - 2615 , - 2512 , - 2685 , - 3134 , - 3859 , - 444 , - 1721 , - 3274 , - 687 , - 2792 , - 757 , - 3414 , - 1931 , - 724 , - 4209 , - 3554 , - 3175 , - 3072 , - 3245 , - 3694 , - 3 , - 1004 , - 2281 , - 3834 , - 1247 , - 3352 , - 1317 , - 3974 , - 2491 , - 1284 , - 353 , - 4114 , - 3735 , - 3632 , - 3805 , - 4254 , - 563 , - 1564 , - 2841 , - 4394 , - 1807 , - 3912 , - 1877 , - 118 , - 3051 , - 1844 , - 913 , - 258 , - 4295 , - 4192 , - 4365 , - 398 , - 1123 , - 2124 , - 3401 , - 538 , - 2367 , - 56 , - 2437 , - 678 , - 3611 , - 2404 , - 1473 , - 818 , - 439 , - 336 , - 509 , - 958 , - 1683 , - 2684 , - 3961 , - 1098 , - 2927 , - 616 , - 2997 , - 1238 , - 4171 , - 2964 , - 2033 , - 1378 , - 999 , - 896 , - 1069 , - 1518 , - 2243 , - 3244 , - 105 , - 1658 , - 3487 , - 1176 , - 3557 , - 1798 , - 315 , - 3524 , - 2593 , - 1938 , - 1559 , - 1456 , - 1629 , - 2078 , - 2803 , - 3804 , - 665 , - 2218 , - 4047 , - 1736 , - 4117 , - 2358 , - 875 , - 4084 , - 3153 , - 2498 , - 2119 , - 2016 , - 2189 , - 2638 , - 3363 , - 4364 , - 1225 , - 2778 , - 191 , - 2296 , - 261 , - 2918 , - 1435 , - 228 , - 3713 , - 3058 , - 2679 , - 2576 , - 2749 , - 3198 , - 3923 , - 508 , - 1785 , - 3338 , - 751 , - 2856 , - 821 , - 3478 , - 1995 , - 788 , - 4273 , - 3618 , - 3239 , - 3136 , - 3309 , - 3758 , - 67 , - 1068 , - 2345 , - 3898 , - 1311 , - 3416 , - 1381 , - 4038 , - 2555 , - 1348 , - 417 , - 4178 , - 3799 , - 3696 , - 3869 , - 4318 , - 627 , - 1628 , - 2905 , - 42 , - 1871 , - 3976 , - 1941 , - 182 , - 3115 , - 1908 , - 977 , - 322 , - 4359 , - 4256 , - 13 , - 462 , - 1187 , - 2188 , - 3465 , - 602 , - 2431 , - 120 , - 2501 , - 742 , - 3675 , - 2468 , - 1537 , - 882 , - 503 , - 400 , - 573 , - 1022 , - 1747 , - 2748 , - 4025 , - 1162 , - 2991 , - 680 , - 3061 , - 1302 , - 4235 , - 3028 , - 2097 , - 1442 , - 1063 , - 960 , - 1133 , - 1582 , - 2307 , - 3308 , - 169 , - 1722 , - 3551 , - 1240 , - 3621 , - 1862 , - 379 , - 3588 , - 2657 , - 2002 , - 1623 , - 1520 , - 1693 , - 2142 , - 2867 , - 3868 , - 729 , - 2282 , - 4111 , - 1800 , - 4181 , - 2422 , - 939 , - 4148 , - 3217 , - 2562 , - 2183 , - 2080 , - 2253 , - 2702 , - 3427 , - 12 , - 1289 , - 2842 , - 255 , - 2360 , - 325 , - 2982 , - 1499 , - 292 , - 3777 , - 3122 , - 2743 , - 2640 , - 2813 , - 3262 , - 3987 , - 572 , - 1849 , - 3402 , - 815 , - 2920 , - 885 , - 3542 , - 2059 , - 852 , - 4337 , - 3682 , - 3303 , - 3200 , - 3373 , - 3822 , - 131 , - 1132 , - 2409 , - 3962 , - 1375 , - 3480 , - 1445 , - 4102 , - 2619 , - 1412 , - 481 , - 4242 , - 3863 , - 3760 , - 3933 , - 4382 , - 691 , - 1692 , - 2969 , - 106 , - 1935 , - 4040 , - 2005 , - 246 , - 3179 , - 1972 , - 1041 , - 386 , - 7 , - 4320 , - 77 , - 526 , - 1251 , - 2252 , - 3529 , - 666 , - 2495 , - 184 , - 2565 , - 806 , - 3739 , - 2532 , - 1601 , - 946 , - 567 , - 464 , - 637 , - 1086 , - 1811 , - 2812 , - 4089 , - 1226 , - 3055 , - 744 , - 3125 , - 1366 , - 4299 , - 3092 , - 2161 , - 1506 , - 1127 , - 1024 , - 1197 , - 1646 , - 2371 , - 3372 , - 233 , - 1786 , - 3615 , - 1304 , - 3685 , - 1926 , - 443 , - 3652 , - 2721 , - 2066 , - 1687 , - 1584 , - 1757 , - 2206 , - 2931 , - 3932 , - 793 , - 2346 , - 4175 , - 1864 , - 4245 , - 2486 , - 1003 , - 4212 , - 3281 , - 2626 , - 2247 , - 2144 , - 2317 , - 2766 , - 3491 , - 76 , - 1353 , - 2906 , - 319 , - 2424 , - 389 , - 3046 , - 1563 , - 356 , - 3841 , - 3186 , - 2807 , - 2704 , - 2877 , - 3326 , - 4051 , - 636 , - 1913 , - 3466 , - 879 , - 2984 , - 949 , - 3606 , - 2123 , - 916 , - 4401 , - 3746 , - 3367 , - 3264 , - 3437 , - 3886 , - 195 , - 1196 , - 2473 , - 4026 , - 1439 , - 3544 , - 1509 , - 4166 , - 2683 , - 1476 , - 545 , - 4306 , - 3927 , - 3824 , - 3997 , - 30 , - 755 , - 1756 , - 3033 , - 170 , - 1999 , - 4104 , - 2069 , - 310 , - 3243 , - 2036 , - 1105 , - 450 , - 71 , - 4384 , - 141 , - 590 , - 1315 , - 2316 , - 3593 , - 730 , - 2559 , - 248 , - 2629 , - 870 , - 3803 , - 2596 , - 1665 , - 1010 , - 631 , - 528 , - 701 , - 1150 , - 1875 , - 2876 , - 4153 , - 1290 , - 3119 , - 808 , - 3189 , - 1430 , - 4363 , - 3156 , - 2225 , - 1570 , - 1191 , - 1088 , - 1261 , - 1710 , - 2435 , - 3436 , - 297 , - 1850 , - 3679 , - 1368 , - 3749 , - 1990 , - 507 , - 3716 , - 2785 , - 2130 , - 1751 , - 1648 , - 1821 , - 2270 , - 2995 , - 3996 , - 857 , - 2410 , - 4239 , - 1928 , - 4309 , - 2550 , - 1067 , - 4276 , - 3345 , - 2690 , - 2311 , - 2208 , - 2381 , - 2830 , - 3555 , - 140 , - 1417 , - 2970 , - 383 , - 2488 , - 453 , - 3110 , - 1627 , - 420 , - 3905 , - 3250 , - 2871 , - 2768 , - 2941 , - 3390 , - 4115 , - 700 , - 1977 , - 3530 , - 943 , - 3048 , - 1013 , - 3670 , - 2187 , - 980 , - 49 , - 3810 , - 3431 , - 3328 , - 3501 , - 3950 , - 259 , - 1260 , - 2537 , - 4090 , - 1503 , - 3608 , - 1573 , - 4230 , - 2747 , - 1540 , - 609 , - 4370 , - 3991 , - 3888 , - 4061 , - 94 , - 819 , - 1820 , - 3097 , - 234 , - 2063 , - 4168 , - 2133 , - 374 , - 3307 , - 2100 , - 1169 , - 514 , - 135 , - 32 , - 205 , - 654 , - 1379 , - 2380 , - 3657 , - 794 , - 2623 , - 312 , - 2693 , - 934 , - 3867 , - 2660 , - 1729 , - 1074 , - 695 , - 592 , - 765 , - 1214 , - 1939 , - 2940 , - 4217 , - 1354 , - 3183 , - 872 , - 3253 , - 1494 , - 11 , - 3220 , - 2289 , - 1634 , - 1255 , - 1152 , - 1325 , - 1774 , - 2499 , - 3500 , - 361 , - 1914 , - 3743 , - 1432 , - 3813 , - 2054 , - 571 , - 3780 , - 2849 , - 2194 , - 1815 , - 1712 , - 1885 , - 2334 , - 3059 , - 4060 , - 921 , - 2474 , - 4303 , - 1992 , - 4373 , - 2614 , - 1131 , - 4340 , - 3409 , - 2754 , - 2375 , - 2272 , - 2445 , - 2894 , - 3619 , - 204 , - 1481 , - 3034 , - 447 , - 2552 , - 517 , - 3174 , - 1691 , - 484 , - 3969 , - 3314 , - 2935 , - 2832 , - 3005 , - 3454 , - 4179 , - 764 , - 2041 , - 3594 , - 1007 , - 3112 , - 1077 , - 3734 , - 2251 , - 1044 , - 113 , - 3874 , - 3495 , - 3392 , - 3565 , - 4014 , - 323 , - 1324 , - 2601 , - 4154 , - 1567 , - 3672 , - 1637 , - 4294 , - 2811 , - 1604 , - 673 , - 18 , - 4055 , - 3952 , - 4125 , - 158 , - 883 , - 1884 , - 3161 , - 298 , - 2127 , - 4232 , - 2197 , - 438 , - 3371 , - 2164 , - 1233 , - 578 , - 199 , - 96 , - 269 , - 718 , - 1443 , - 2444 , - 3721 , - 858 , - 2687 , - 376 , - 2757 , - 998 , - 3931 , - 2724 , - 1793 , - 1138 , - 759 , - 656 , - 829 , - 1278 , - 2003 , - 3004 , - 4281 , - 1418 , - 3247 , - 936 , - 3317 , - 1558 , - 75 , - 3284 , - 2353 , - 1698 , - 1319 , - 1216 , - 1389 , - 1838 , - 2563 , - 3564 , - 425 , - 1978 , - 3807 , - 1496 , - 3877 , - 2118 , - 635 , - 3844 , - 2913 , - 2258 , - 1879 , - 1776 , - 1949 , - 2398 , - 3123 , - 4124 , - 985 , - 2538 , - 4367 , - 2056 , - 21 , - 2678 , - 1195 , - 4404 , - 3473 , - 2818 , - 2439 , - 2336 , - 2509 , - 2958 , - 3683 , - 268 , - 1545 , - 3098 , - 511 , - 2616 , - 581 , - 3238 , - 1755 , - 548 , - 4033 , - 3378 , - 2999 , - 2896 , - 3069 , - 3518 , - 4243 , - 828 , - 2105 , - 3658 , - 1071 , - 3176 , - 1141 , - 3798 , - 2315 , - 1108 , - 177 , - 3938 , - 3559 , - 3456 , - 3629 , - 4078 , - 387 , - 1388 , - 2665 , - 4218 , - 1631 , - 3736 , - 1701 , - 4358 , - 2875 , - 1668 , - 737 , - 82 , - 4119 , - 4016 , - 4189 , - 222 , - 947 , - 1948 , - 3225 , - 362 , - 2191 , - 4296 , - 2261 , - 502 , - 3435 , - 2228 , - 1297 , - 642 , - 263 , - 160 , - 333 , - 782 , - 1507 , - 2508 , - 3785 , - 922 , - 2751 , - 440 , - 2821 , - 1062 , - 3995 , - 2788 , - 1857 , - 1202 , - 823 , - 720 , - 893 , - 1342 , - 2067 , - 3068 , - 4345 , - 1482 , - 3311 , - 1000 , - 3381 , - 1622 , - 139 , - 3348 , - 2417 , - 1762 , - 1383 , - 1280 , - 1453 , - 1902 , - 2627 , - 3628 , - 489 , - 2042 , - 3871 , - 1560 , - 3941 , - 2182 , - 699 , - 3908 , - 2977 , - 2322 , - 1943 , - 1840 , - 2013 , - 2462 , - 3187 , - 4188 , - 1049 , - 2602 , - 15 , - 2120 , - 85 , - 2742 , - 1259 , - 52 , - 3537 , - 2882 , - 2503 , - 2400 , - 2573 , - 3022 , - 3747 , - 332 , - 1609 , - 3162 , - 575 , - 2680 , - 645 , - 3302 , - 1819 , - 612 , - 4097 , - 3442 , - 3063 , - 2960 , - 3133 , - 3582 , - 4307 , - 892 , - 2169 , - 3722 , - 1135 , - 3240 , - 1205 , - 3862 , - 2379 , - 1172 , - 241 , - 4002 , - 3623 , - 3520 , - 3693 , - 4142 , - 451 , - 1452 , - 2729 , - 4282 , - 1695 , - 3800 , - 1765 , - 6 , - 2939 , - 1732 , - 801 , - 146 , - 4183 , - 4080 , - 4253 , - 286 , - 1011 , - 2012 , - 3289 , - 426 , - 2255 , - 4360 , - 2325 , - 566 , - 3499 , - 2292 , - 1361 , - 706 , - 327 , - 224 , - 397 , - 846 , - 1571 , - 2572 , - 3849 , - 986 , - 2815 , - 504 , - 2885 , - 1126 , - 4059 , - 2852 , - 1921 , - 1266 , - 887 , - 784 , - 957 , - 1406 , - 2131 , - 3132 , - 4409 , - 1546 , - 3375 , - 1064 , - 3445 , - 1686 , - 203 , - 3412 , - 2481 , - 1826 , - 1447 , - 1344 , - 1517 , - 1966 , - 2691 , - 3692 , - 553 , - 2106 , - 3935 , - 1624 , - 4005 , - 2246 , - 763 , - 3972 , - 3041 , - 2386 , - 2007 , - 1904 , - 2077 , - 2526 , - 3251 , - 4252 , - 1113 , - 2666 , - 79 , - 2184 , - 149 , - 2806 , - 1323 , - 116 , - 3601 , - 2946 , - 2567 , - 2464 , - 2637 , - 3086 , - 3811 , - 396 , - 1673 , - 3226 , - 639 , - 2744 , - 709 , - 3366 , - 1883 , - 676 , - 4161 , - 3506 , - 3127 , - 3024 , - 3197 , - 3646 , - 4371 , - 956 , - 2233 , - 3786 , - 1199 , - 3304 , - 1269 , - 3926 , - 2443 , - 1236 , - 305 , - 4066 , - 3687 , - 3584 , - 3757 , - 4206 , - 515 , - 1516 , - 2793 , - 4346 , - 1759 , - 3864 , - 1829 , - 70 , - 3003 , - 1796 , - 865 , - 210 , - 4247 , - 4144 , - 4317 , - 350 , - 1075 , - 2076 , - 3353 , - 490 , - 2319 , - 8 , - 2389 , - 630 , - 3563 , - 2356 , - 1425 , - 770 , - 391 , - 288 , - 461 , - 910 , - 1635 , - 2636 , - 3913 , - 1050 , - 2879 , - 568 , - 2949 , - 1190 , - 4123 , - 2916 , - 1985 , - 1330 , - 951 , - 848 , - 1021 , - 1470 , - 2195 , - 3196 , - 57 , - 1610 , - 3439 , - 1128 , - 3509 , - 1750 , - 267 , - 3476 , - 2545 , - 1890 , - 1511 , - 1408 , - 1581 , - 2030 , - 2755 , - 3756 , - 617 , - 2170 , - 3999 , - 1688 , - 4069 , - 2310 , - 827 , - 4036 , - 3105 , - 2450 , - 2071 , - 1968 , - 2141 , - 2590 , - 3315 , - 4316 , - 1177 , - 2730 , - 143 , - 2248 , - 213 , - 2870 , - 1387 , - 180 , - 3665 , - 3010 , - 2631 , - 2528 , - 2701 , - 3150 , - 3875 , - 460 , - 1737 , - 3290 , - 703 , - 2808 , - 773 , - 3430 , - 1947 , - 740 , - 4225 , - 3570 , - 3191 , - 3088 , - 3261 , - 3710 , - 19 , - 1020 , - 2297 , - 3850 , - 1263 , - 3368 , - 1333 , - 3990 , - 2507 , - 1300 , - 369 , - 4130 , - 3751 , - 3648 , - 3821 , - 4270 , - 579 , - 1580 , - 2857 , - 4410 , - 1823 , - 3928 , - 1893 , - 134 , - 3067 , - 1860 , - 929 , - 274 , - 4311 , - 4208 , - 4381 , - 414 , - 1139 , - 2140 , - 3417 , - 554 , - 2383 , - 72 , - 2453 , - 694 , - 3627 , - 2420 , - 1489 , - 834 , - 455 , - 352 , - 525 , - 974 , - 1699 , - 2700 , - 3977 , - 1114 , - 2943 , - 632 , - 3013 , - 1254 , - 4187 , - 2980 , - 2049 , - 1394 , - 1015 , - 912 , - 1085 , - 1534 , - 2259 , - 3260 , - 121 , - 1674 , - 3503 , - 1192 , - 3573 , - 1814 , - 331 , - 3540 , - 2609 , - 1954 , - 1575 , - 1472 , - 1645 , - 2094 , - 2819 , - 3820 , - 681 , - 2234 , - 4063 , - 1752 , - 4133 , - 2374 , - 891 , - 4100 , - 3169 , - 2514 , - 2135 , - 2032 , - 2205 , - 2654 , - 3379 , - 4380 , - 1241 , - 2794 , - 207 , - 2312 , - 277 , - 2934 , - 1451 , - 244 , - 3729 , - 3074 , - 2695 , - 2592 , - 2765 , - 3214 , - 3939 , - 524 , - 1801 , - 3354 , - 767 , - 2872 , - 837 , - 3494 , - 2011 , - 804 , - 4289 , - 3634 , - 3255 , - 3152 , - 3325 , - 3774 , - 83 , - 1084 , - 2361 , - 3914 , - 1327 , - 3432 , - 1397 , - 4054 , - 2571 , - 1364 , - 433 , - 4194 , - 3815 , - 3712 , - 3885 , - 4334 , - 643 , - 1644 , - 2921 , - 58 , - 1887 , - 3992 , - 1957 , - 198 , - 3131 , - 1924 , - 993 , - 338 , - 4375 , - 4272 , - 29 , - 478 , - 1203 , - 2204 , - 3481 , - 618 , - 2447 , - 136 , - 2517 , - 758 , - 3691 , - 2484 , - 1553 , - 898 , - 519 , - 416 , - 589 , - 1038 , - 1763 , - 2764 , - 4041 , - 1178 , - 3007 , - 696 , - 3077 , - 1318 , - 4251 , - 3044 , - 2113 , - 1458 , - 1079 , - 976 , - 1149 , - 1598 , - 2323 , - 3324 , - 185 , - 1738 , - 3567 , - 1256 , - 3637 , - 1878 , - 395 , - 3604 , - 2673 , - 2018 , - 1639 , - 1536 , - 1709 , - 2158 , - 2883 , - 3884 , - 745 , - 2298 , - 4127 , - 1816 , - 4197 , - 2438 , - 955 , - 4164 , - 3233 , - 2578 , - 2199 , - 2096 , - 2269 , - 2718 , - 3443 , - 28 , - 1305 , - 2858 , - 271 , - 2376 , - 341 , - 2998 , - 1515 , - 308 , - 3793 , - 3138 , - 2759 , - 2656 , - 2829 , - 3278 , - 4003 , - 588 , - 1865 , - 3418 , - 831 , - 2936 , - 901 , - 3558 , - 2075 , - 868 , - 4353 , - 3698 , - 3319 , - 3216 , - 3389 , - 3838 , - 147 , - 1148 , - 2425 , - 3978 , - 1391 , - 3496 , - 1461 , - 4118 , - 2635 , - 1428 , - 497 , - 4258 , - 3879 , - 3776 , - 3949 , - 4398 , - 707 , - 1708 , - 2985 , - 122 , - 1951 , - 4056 , - 2021 , - 262 , - 3195 , - 1988 , - 1057 , - 402 , - 23 , - 4336 , - 93 , - 542 , - 1267 , - 2268 , - 3545 , - 682 , - 2511 , - 200 , - 2581 , - 822 , - 3755 , - 2548 , - 1617 , - 962 , - 583 , - 480 , - 653 , - 1102 , - 1827 , - 2828 , - 4105 , - 1242 , - 3071 , - 760 , - 3141 , - 1382 , - 4315 , - 3108 , - 2177 , - 1522 , - 1143 , - 1040 , - 1213 , - 1662 , - 2387 , - 3388 , - 249 , - 1802 , - 3631 , - 1320 , - 3701 , - 1942 , - 459 , - 3668 , - 2737 , - 2082 , - 1703 , - 1600 , - 1773 , - 2222 , - 2947 , - 3948 , - 809 , - 2362 , - 4191 , - 1880 , - 4261 , - 2502 , - 1019 , - 4228 , - 3297 , - 2642 , - 2263 , - 2160 , - 2333 , - 2782 , - 3507 , - 92 , - 1369 , - 2922 , - 335 , - 2440 , - 405 , - 3062 , - 1579 , - 372 , - 3857 , - 3202 , - 2823 , - 2720 , - 2893 , - 3342 , - 4067 , - 652 , - 1929 , - 3482 , - 895 , - 3000 , - 965 , - 3622 , - 2139 , - 932 , - 1 , - 3762 , - 3383 , - 3280 , - 3453 , - 3902 , - 211 , - 1212 , - 2489 , - 4042 , - 1455 , - 3560 , - 1525 , - 4182 , - 2699 , - 1492 , - 561 , - 4322 , - 3943 , - 3840 , - 4013 , - 46 , - 771 , - 1772 , - 3049 , - 186 , - 2015 , - 4120 , - 2085 , - 326 , - 3259 , - 2052 , - 1121 , - 466 , - 87 , - 4400 , - 157 , - 606 , - 1331 , - 2332 , - 3609 , - 746 , - 2575 , - 264 , - 2645 , - 886 , - 3819 , - 2612 , - 1681 , - 1026 , - 647 , - 544 , - 717 , - 1166 , - 1891 , - 2892 , - 4169 , - 1306 , - 3135 , - 824 , - 3205 , - 1446 , - 4379 , - 3172 , - 2241 , - 1586 , - 1207 , - 1104 , - 1277 , - 1726 , - 2451 , - 3452 , - 313 , - 1866 , - 3695 , - 1384 , - 3765 , - 2006 , - 523 , - 3732 , - 2801 , - 2146 , - 1767 , - 1664 , - 1837 , - 2286 , - 3011 , - 4012 , - 873 , - 2426 , - 4255 , - 1944 , - 4325 , - 2566 , - 1083 , - 4292 , - 3361 , - 2706 , - 2327 , - 2224 , - 2397 , - 2846 , - 3571 , - 156 , - 1433 , - 2986 , - 399 , - 2504 , - 469 , - 3126 , - 1643 , - 436 , - 3921 , - 3266 , - 2887 , - 2784 , - 2957 , - 3406 , - 4131 , - 716 , - 1993 , - 3546 , - 959 , - 3064 , - 1029 , - 3686 , - 2203 , - 996 , - 65 , - 3826 , - 3447 , - 3344 , - 3517 , - 3966 , - 275 , - 1276 , - 2553 , - 4106 , - 1519 , - 3624 , - 1589 , - 4246 , - 2763 , - 1556 , - 625 , - 4386 , - 4007 , - 3904 , - 4077 , - 110 , - 835 , - 1836 , - 3113 , - 250 , - 2079 , - 4184 , - 2149 , - 390 , - 3323 , - 2116 , - 1185 , - 530 , - 151 , - 48 , - 221 , - 670 , - 1395 , - 2396 , - 3673 , - 810 , - 2639 , - 328 , - 2709 , - 950 , - 3883 , - 2676 , - 1745 , - 1090 , - 711 , - 608 , - 781 , - 1230 , - 1955 , - 2956 , - 4233 , - 1370 , - 3199 , - 888 , - 3269 , - 1510 , - 27 , - 3236 , - 2305 , - 1650 , - 1271 , - 1168 , - 1341 , - 1790 , - 2515 , - 3516 , - 377 , - 1930 , - 3759 , - 1448 , - 3829 , - 2070 , - 587 , - 3796 , - 2865 , - 2210 , - 1831 , - 1728 , - 1901 , - 2350 , - 3075 , - 4076 , - 937 , - 2490 , - 4319 , - 2008 , - 4389 , - 2630 , - 1147 , - 4356 , - 3425 , - 2770 , - 2391 , - 2288 , - 2461 , - 2910 , - 3635 , - 220 , - 1497 , - 3050 , - 463 , - 2568 , - 533 , - 3190 , - 1707 , - 500 , - 3985 , - 3330 , - 2951 , - 2848 , - 3021 , - 3470 , - 4195 , - 780 , - 2057 , - 3610 , - 1023 , - 3128 , - 1093 , - 3750 , - 2267 , - 1060 , - 129 , - 3890 , - 3511 , - 3408 , - 3581 , - 4030 , - 339 , - 1340 , - 2617 , - 4170 , - 1583 , - 3688 , - 1653 , - 4310 , - 2827 , - 1620 , - 689 , - 34 , - 4071 , - 3968 , - 4141 , - 174 , - 899 , - 1900 , - 3177 , - 314 , - 2143 , - 4248 , - 2213 , - 454 , - 3387 , - 2180 , - 1249 , - 594 , - 215 , - 112 , - 285 , - 734 , - 1459 , - 2460 , - 3737 , - 874 , - 2703 , - 392 , - 2773 , - 1014 , - 3947 , - 2740 , - 1809 , - 1154 , - 775 , - 672 , - 845 , - 1294 , - 2019 , - 3020 , - 4297 , - 1434 , - 3263 , - 952 , - 3333 , - 1574 , - 91 , - 3300 , - 2369 , - 1714 , - 1335 , - 1232 , - 1405 , - 1854 , - 2579 , - 3580 , - 441 , - 1994 , - 3823 , - 1512 , - 3893 , - 2134 , - 651 , - 3860 , - 2929 , - 2274 , - 1895 , - 1792 , - 1965 , - 2414 , - 3139 , - 4140 , - 1001 , - 2554 , - 4383 , - 2072 , - 37 , - 2694 , - 1211 , - 4 , - 3489 , - 2834 , - 2455 , - 2352 , - 2525 , - 2974 , - 3699 , - 284 , - 1561 , - 3114 , - 527 , - 2632 , - 597 , - 3254 , - 1771 , - 564 , - 4049 , - 3394 , - 3015 , - 2912 , - 3085 , - 3534 , - 4259 , - 844 , - 2121 , - 3674 , - 1087 , - 3192 , - 1157 , - 3814 , - 2331 , - 1124 , - 193 , - 3954 , - 3575 , - 3472 , - 3645 , - 4094 , - 403 , - 1404 , - 2681 , - 4234 , - 1647 , - 3752 , - 1717 , - 4374 , - 2891 , - 1684 , - 753 , - 98 , - 4135 , - 4032 , - 4205 , - 238 , - 963 , - 1964 , - 3241 , - 378 , - 2207 , - 4312 , - 2277 , - 518 , - 3451 , - 2244 , - 1313 , - 658 , - 279 , - 176 , - 349 , - 798 , - 1523 , - 2524 , - 3801 , - 938 , - 2767 , - 456 , - 2837 , - 1078 , - 4011 , - 2804 , - 1873 , - 1218 , - 839 , - 736 , - 909 , - 1358 , - 2083 , - 3084 , - 4361 , - 1498 , - 3327 , - 1016 , - 3397 , - 1638 , - 155 , - 3364 , - 2433 , - 1778 , - 1399 , - 1296 , - 1469 , - 1918 , - 2643 , - 3644 , - 505 , - 2058 , - 3887 , - 1576 , - 3957 , - 2198 , - 715 , - 3924 , - 2993 , - 2338 , - 1959 , - 1856 , - 2029 , - 2478 , - 3203 , - 4204 , - 1065 , - 2618 , - 31 , - 2136 , - 101 , - 2758 , - 1275 , - 68 , - 3553 , - 2898 , - 2519 , - 2416 , - 2589 , - 3038 , - 3763 , - 348 , - 1625 , - 3178 , - 591 , - 2696 , - 661 , - 3318 , - 1835 , - 628 , - 4113 , - 3458 , - 3079 , - 2976 , - 3149 , - 3598 , - 4323 , - 908 , - 2185 , - 3738 , - 1151 , - 3256 , - 1221 , - 3878 , - 2395 , - 1188 , - 257 , - 4018 , - 3639 , - 3536 , - 3709 , - 4158 , - 467 , - 1468 , - 2745 , - 4298 , - 1711 , - 3816 , - 1781 , - 22 , - 2955 , - 1748 , - 817 , - 162 , - 4199 , - 4096 , - 4269 , - 302 , - 1027 , - 2028 , - 3305 , - 442 , - 2271 , - 4376 , - 2341 , - 582 , - 3515 , - 2308 , - 1377 , - 722 , - 343 , - 240 , - 413 , - 862 , - 1587 , - 2588 , - 3865 , - 1002 , - 2831 , - 520 , - 2901 , - 1142 , - 4075 , - 2868 , - 1937 , - 1282 , - 903 , - 800 , - 973 , - 1422 , - 2147 , - 3148 , - 9 , - 1562 , - 3391 , - 1080 , - 3461 , - 1702 , - 219 , - 3428 , - 2497 , - 1842 , - 1463 , - 1360 , - 1533 , - 1982 , - 2707 , - 3708 , - 569 , - 2122 , - 3951 , - 1640 , - 4021 , - 2262 , - 779 , - 3988 , - 3057 , - 2402 , - 2023 , - 1920 , - 2093 , - 2542 , - 3267 , - 4268 , - 1129 , - 2682 , - 95 , - 2200 , - 165 , - 2822 , - 1339 , - 132 , - 3617 , - 2962 , - 2583 , - 2480 , - 2653 , - 3102 , - 3827 , - 412 , - 1689 , - 3242 , - 655 , - 2760 , - 725 , - 3382 , - 1899 , - 692 , - 4177 , - 3522 , - 3143 , - 3040 , - 3213 , - 3662 , - 4387 , - 972 , - 2249 , - 3802 , - 1215 , - 3320 , - 1285 , - 3942 , - 2459 , - 1252 , - 321 , - 4082 , - 3703 , - 3600 , - 3773 , - 4222 , - 531 , - 1532 , - 2809 , - 4362 , - 1775 , - 3880 , - 1845 , - 86 , - 3019 , - 1812 , - 881 , - 226 , - 4263 , - 4160 , - 4333 , - 366 , - 1091 , - 2092 , - 3369 , - 506 , - 2335 , - 24 , - 2405 , - 646 , - 3579 , - 2372 , - 1441 , - 786 , - 407 , - 304 , - 477 , - 926 , - 1651 , - 2652 , - 3929 , - 1066 , - 2895 , - 584 , - 2965 , - 1206 , - 4139 , - 2932 , - 2001 , - 1346 , - 967 , - 864 , - 1037 , - 1486 , - 2211 , - 3212 , - 73 , - 1626 , - 3455 , - 1144 , - 3525 , - 1766 , - 283 , - 3492 , - 2561 , - 1906 , - 1527 , - 1424 , - 1597 , - 2046 , - 2771 , - 3772 , - 633 , - 2186 , - 4015 , - 1704 , - 4085 , - 2326 , - 843 , - 4052 , - 3121 , - 2466 , - 2087 , - 1984 , - 2157 , - 2606 , - 3331 , - 4332 , - 1193 , - 2746 , - 159 , - 2264 , - 229 , - 2886 , - 1403 , - 196 , - 3681 , - 3026 , - 2647 , - 2544 , - 2717 , - 3166 , - 3891 , - 476 , - 1753 , - 3306 , - 719 , - 2824 , - 789 , - 3446 , - 1963 , - 756 , - 4241 , - 3586 , - 3207 , - 3104 , - 3277 , - 3726 , - 35 , - 1036 , - 2313 , - 3866 , - 1279 , - 3384 , - 1349 , - 4006 , - 2523 , - 1316 , - 385 , - 4146 , - 3767 , - 3664 , - 3837 , - 4286 , - 595 , - 1596 , - 2873 , - 10 , - 1839 , - 3944 , - 1909 , - 150 , - 3083 , - 1876 , - 945 , - 290 , - 4327 , - 4224 , - 4397 , - 430 , - 1155 , - 2156 , - 3433 , - 570 , - 2399 , - 88 , - 2469 , - 710 , - 3643 , - 2436 , - 1505 , - 850 , - 471 , - 368 , - 541 , - 990 , - 1715 , - 2716 , - 3993 , - 1130 , - 2959 , - 648 , - 3029 , - 1270 , - 4203 , - 2996 , - 2065 , - 1410 , - 1031 , - 928 , - 1101 , - 1550 , - 2275 , - 3276 , - 137 , - 1690 , - 3519 , - 1208 , - 3589 , - 1830 , - 347 , - 3556 , - 2625 , - 1970 , - 1591 , - 1488 , - 1661 , - 2110 , - 2835 , - 3836 , - 697 , - 2250 , - 4079 , - 1768 , - 4149 , - 2390 , - 907 , - 4116 , - 3185 , - 2530 , - 2151 , - 2048 , - 2221 , - 2670 , - 3395 , - 4396 , - 1257 , - 2810 , - 223 , - 2328 , - 293 , - 2950 , - 1467 , - 260 , - 3745 , - 3090 , - 2711 , - 2608 , - 2781 , - 3230 , - 3955 , - 540 , - 1817 , - 3370 , - 783 , - 2888 , - 853 , - 3510 , - 2027 , - 820 , - 4305 , - 3650 , - 3271 , - 3168 , - 3341 , - 3790 , - 99 , - 1100 , - 2377 , - 3930 , - 1343 , - 3448 , - 1413 , - 4070 , - 2587 , - 1380 , - 449 , - 4210 , - 3831 , - 3728 , - 3901 , - 4350 , - 659 , - 1660 , - 2937 , - 74 , - 1903 , - 4008 , - 1973 , - 214 , - 3147 , - 1940 , - 1009 , - 354 , - 4391 , - 4288 , - 45 , - 494 , - 1219 , - 2220 , - 3497 , - 634 , - 2463 , - 152 , - 2533 , - 774 , - 3707 , - 2500 , - 1569 , - 914 , - 535 , - 432 , - 605 , - 1054 , - 1779 , - 2780 , - 4057 , - 1194 , - 3023 , - 712 , - 3093 , - 1334 , - 4267 , - 3060 , - 2129 , - 1474 , - 1095 , - 992 , - 1165 , - 1614 , - 2339 , - 3340 , - 201 , - 1754 , - 3583 , - 1272 , - 3653 , - 1894 , - 411 , - 3620 , - 2689 , - 2034 , - 1655 , - 1552 , - 1725 , - 2174 , - 2899 , - 3900 , - 761 , - 2314 , - 4143 , - 1832 , - 4213 , - 2454 , - 971 , - 4180 , - 3249 , - 2594 , - 2215 , - 2112 , - 2285 , - 2734 , - 3459 , - 44 , - 1321 , - 2874 , - 287 , - 2392 , - 357 , - 3014 , - 1531 , - 324 , - 3809 , - 3154 , - 2775 , - 2672 , - 2845 , - 3294 , - 4019 , - 604 , - 1881 , - 3434 , - 847 , - 2952 , - 917 , - 3574 , - 2091 , - 884 , - 4369 , - 3714 , - 3335 , - 3232 , - 3405 , - 3854 , - 163 , - 1164 , - 2441 , - 3994 , - 1407 , - 3512 , - 1477 , - 4134 , - 2651 , - 1444 , - 513 , - 4274 , - 3895 , - 3792 , - 3965 , - 4414 , - 723 , - 1724 , - 3001 , - 138 , - 1967 , - 4072 , - 2037 , - 278 , - 3211 , - 2004 , - 1073 , - 418 , - 39 , - 4352 , - 109 , - 558 , - 1283 , - 2284 , - 3561 , - 698 , - 2527 , - 216 , - 2597 , - 838 , - 3771 , - 2564 , - 1633 , - 978 , - 599 , - 496 , - 669 , - 1118 , - 1843 , - 2844 , - 4121 , - 1258 , - 3087 , - 776 , - 3157 , - 1398 , - 4331 , - 3124 , - 2193 , - 1538 , - 1159 , - 1056 , - 1229 , - 1678 , - 2403 , - 3404 , - 265 , - 1818 , - 3647 , - 1336 , - 3717 , - 1958 , - 475 , - 3684 , - 2753 , - 2098 , - 1719 , - 1616 , - 1789 , - 2238 , - 2963 , - 3964 , - 825 , - 2378 , - 4207 , - 1896 , - 4277 , - 2518 , - 1035 , - 4244 , - 3313 , - 2658 , - 2279 , - 2176 , - 2349 , - 2798 , - 3523 , - 108 , - 1385 , - 2938 , - 351 , - 2456 , - 421 , - 3078 , - 1595 , - 388 , - 3873 , - 3218 , - 2839 , - 2736 , - 2909 , - 3358 , - 4083 , - 668 , - 1945 , - 3498 , - 911 , - 3016 , - 981 , - 3638 , - 2155 , - 948 , - 17 , - 3778 , - 3399 , - 3296 , - 3469 , - 3918 , - 227 , - 1228 , - 2505 , - 4058 , - 1471 , - 3576 , - 1541 , - 4198 , - 2715 , - 1508 , - 577 , - 4338 , - 3959 , - 3856 , - 4029 , - 62 , - 787 , - 1788 , - 3065 , - 202 , - 2031 , - 4136 , - 2101 , - 342 , - 3275 , - 2068 , - 1137 , - 482 , - 103 , - 0 , - 513 , - 1586 , - 3219 , - 932 , - 3685 , - 2518 , - 1911 , - 1864 , - 2377 , - 3450 , - 603 , - 2796 , - 1069 , - 4382 , - 3775 , - 3728 , - 4241 , - 834 , - 2467 , - 180 , - 2933 , - 1766 , - 1159 , - 1112 , - 1625 , - 2698 , - 4331 , - 2044 , - 317 , - 3630 , - 3023 , - 2976 , - 3489 , - 82 , - 1715 , - 3908 , - 2181 , - 1014 , - 407 , - 360 , - 873 , - 1946 , - 3579 , - 1292 , - 4045 , - 2878 , - 2271 , - 2224 , - 2737 , - 3810 , - 963 , - 3156 , - 1429 , - 262 , - 4135 , - 4088 , - 121 , - 1194 , - 2827 , - 540 , - 3293 , - 2126 , - 1519 , - 1472 , - 1985 , - 3058 , - 211 , - 2404 , - 677 , - 3990 , - 3383 , - 3336 , - 3849 , - 442 , - 2075 , - 4268 , - 2541 , - 1374 , - 767 , - 720 , - 1233 , - 2306 , - 3939 , - 1652 , - 4405 , - 3238 , - 2631 , - 2584 , - 3097 , - 4170 , - 1323 , - 3516 , - 1789 , - 622 , - 15 , - 4448 , - 481 , - 1554 , - 3187 , - 900 , - 3653 , - 2486 , - 1879 , - 1832 , - 2345 , - 3418 , - 571 , - 2764 , - 1037 , - 4350 , - 3743 , - 3696 , - 4209 , - 802 , - 2435 , - 148 , - 2901 , - 1734 , - 1127 , - 1080 , - 1593 , - 2666 , - 4299 , - 2012 , - 285 , - 3598 , - 2991 , - 2944 , - 3457 , - 50 , - 1683 , - 3876 , - 2149 , - 982 , - 375 , - 328 , - 841 , - 1914 , - 3547 , - 1260 , - 4013 , - 2846 , - 2239 , - 2192 , - 2705 , - 3778 , - 931 , - 3124 , - 1397 , - 230 , - 4103 , - 4056 , - 89 , - 1162 , - 2795 , - 508 , - 3261 , - 2094 , - 1487 , - 1440 , - 1953 , - 3026 , - 179 , - 2372 , - 645 , - 3958 , - 3351 , - 3304 , - 3817 , - 410 , - 2043 , - 4236 , - 2509 , - 1342 , - 735 , - 688 , - 1201 , - 2274 , - 3907 , - 1620 , - 4373 , - 3206 , - 2599 , - 2552 , - 3065 , - 4138 , - 1291 , - 3484 , - 1757 , - 590 , - 4463 , - 4416 , - 449 , - 1522 , - 3155 , - 868 , - 3621 , - 2454 , - 1847 , - 1800 , - 2313 , - 3386 , - 539 , - 2732 , - 1005 , - 4318 , - 3711 , - 3664 , - 4177 , - 770 , - 2403 , - 116 , - 2869 , - 1702 , - 1095 , - 1048 , - 1561 , - 2634 , - 4267 , - 1980 , - 253 , - 3566 , - 2959 , - 2912 , - 3425 , - 18 , - 1651 , - 3844 , - 2117 , - 950 , - 343 , - 296 , - 809 , - 1882 , - 3515 , - 1228 , - 3981 , - 2814 , - 2207 , - 2160 , - 2673 , - 3746 , - 899 , - 3092 , - 1365 , - 198 , - 4071 , - 4024 , - 57 , - 1130 , - 2763 , - 476 , - 3229 , - 2062 , - 1455 , - 1408 , - 1921 , - 2994 , - 147 , - 2340 , - 613 , - 3926 , - 3319 , - 3272 , - 3785 , - 378 , - 2011 , - 4204 , - 2477 , - 1310 , - 703 , - 656 , - 1169 , - 2242 , - 3875 , - 1588 , - 4341 , - 3174 , - 2567 , - 2520 , - 3033 , - 4106 , - 1259 , - 3452 , - 1725 , - 558 , - 4431 , - 4384 , - 417 , - 1490 , - 3123 , - 836 , - 3589 , - 2422 , - 1815 , - 1768 , - 2281 , - 3354 , - 507 , - 2700 , - 973 , - 4286 , - 3679 , - 3632 , - 4145 , - 738 , - 2371 , - 84 , - 2837 , - 1670 , - 1063 , - 1016 , - 1529 , - 2602 , - 4235 , - 1948 , - 221 , - 3534 , - 2927 , - 2880 , - 3393 , - 4466 , - 1619 , - 3812 , - 2085 , - 918 , - 311 , - 264 , - 777 , - 1850 , - 3483 , - 1196 , - 3949 , - 2782 , - 2175 , - 2128 , - 2641 , - 3714 , - 867 , - 3060 , - 1333 , - 166 , - 4039 , - 3992 , - 25 , - 1098 , - 2731 , - 444 , - 3197 , - 2030 , - 1423 , - 1376 , - 1889 , - 2962 , - 115 , - 2308 , - 581 , - 3894 , - 3287 , - 3240 , - 3753 , - 346 , - 1979 , - 4172 , - 2445 , - 1278 , - 671 , - 624 , - 1137 , - 2210 , - 3843 , - 1556 , - 4309 , - 3142 , - 2535 , - 2488 , - 3001 , - 4074 , - 1227 , - 3420 , - 1693 , - 526 , - 4399 , - 4352 , - 385 , - 1458 , - 3091 , - 804 , - 3557 , - 2390 , - 1783 , - 1736 , - 2249 , - 3322 , - 475 , - 2668 , - 941 , - 4254 , - 3647 , - 3600 , - 4113 , - 706 , - 2339 , - 52 , - 2805 , - 1638 , - 1031 , - 984 , - 1497 , - 2570 , - 4203 , - 1916 , - 189 , - 3502 , - 2895 , - 2848 , - 3361 , - 4434 , - 1587 , - 3780 , - 2053 , - 886 , - 279 , - 232 , - 745 , - 1818 , - 3451 , - 1164 , - 3917 , - 2750 , - 2143 , - 2096 , - 2609 , - 3682 , - 835 , - 3028 , - 1301 , - 134 , - 4007 , - 3960 , - 4473 , - 1066 , - 2699 , - 412 , - 3165 , - 1998 , - 1391 , - 1344 , - 1857 , - 2930 , - 83 , - 2276 , - 549 , - 3862 , - 3255 , - 3208 , - 3721 , - 314 , - 1947 , - 4140 , - 2413 , - 1246 , - 639 , - 592 , - 1105 , - 2178 , - 3811 , - 1524 , - 4277 , - 3110 , - 2503 , - 2456 , - 2969 , - 4042 , - 1195 , - 3388 , - 1661 , - 494 , - 4367 , - 4320 , - 353 , - 1426 , - 3059 , - 772 , - 3525 , - 2358 , - 1751 , - 1704 , - 2217 , - 3290 , - 443 , - 2636 , - 909 , - 4222 , - 3615 , - 3568 , - 4081 , - 674 , - 2307 , - 20 , - 2773 , - 1606 , - 999 , - 952 , - 1465 , - 2538 , - 4171 , - 1884 , - 157 , - 3470 , - 2863 , - 2816 , - 3329 , - 4402 , - 1555 , - 3748 , - 2021 , - 854 , - 247 , - 200 , - 713 , - 1786 , - 3419 , - 1132 , - 3885 , - 2718 , - 2111 , - 2064 , - 2577 , - 3650 , - 803 , - 2996 , - 1269 , - 102 , - 3975 , - 3928 , - 4441 , - 1034 , - 2667 , - 380 , - 3133 , - 1966 , - 1359 , - 1312 , - 1825 , - 2898 , - 51 , - 2244 , - 517 , - 3830 , - 3223 , - 3176 , - 3689 , - 282 , - 1915 , - 4108 , - 2381 , - 1214 , - 607 , - 560 , - 1073 , - 2146 , - 3779 , - 1492 , - 4245 , - 3078 , - 2471 , - 2424 , - 2937 , - 4010 , - 1163 , - 3356 , - 1629 , - 462 , - 4335 , - 4288 , - 321 , - 1394 , - 3027 , - 740 , - 3493 , - 2326 , - 1719 , - 1672 , - 2185 , - 3258 , - 411 , - 2604 , - 877 , - 4190 , - 3583 , - 3536 , - 4049 , - 642 , - 2275 , - 4468 , - 2741 , - 1574 , - 967 , - 920 , - 1433 , - 2506 , - 4139 , - 1852 , - 125 , - 3438 , - 2831 , - 2784 , - 3297 , - 4370 , - 1523 , - 3716 , - 1989 , - 822 , - 215 , - 168 , - 681 , - 1754 , - 3387 , - 1100 , - 3853 , - 2686 , - 2079 , - 2032 , - 2545 , - 3618 , - 771 , - 2964 , - 1237 , - 70 , - 3943 , - 3896 , - 4409 , - 1002 , - 2635 , - 348 , - 3101 , - 1934 , - 1327 , - 1280 , - 1793 , - 2866 , - 19 , - 2212 , - 485 , - 3798 , - 3191 , - 3144 , - 3657 , - 250 , - 1883 , - 4076 , - 2349 , - 1182 , - 575 , - 528 , - 1041 , - 2114 , - 3747 , - 1460 , - 4213 , - 3046 , - 2439 , - 2392 , - 2905 , - 3978 , - 1131 , - 3324 , - 1597 , - 430 , - 4303 , - 4256 , - 289 , - 1362 , - 2995 , - 708 , - 3461 , - 2294 , - 1687 , - 1640 , - 2153 , - 3226 , - 379 , - 2572 , - 845 , - 4158 , - 3551 , - 3504 , - 4017 , - 610 , - 2243 , - 4436 , - 2709 , - 1542 , - 935 , - 888 , - 1401 , - 2474 , - 4107 , - 1820 , - 93 , - 3406 , - 2799 , - 2752 , - 3265 , - 4338 , - 1491 , - 3684 , - 1957 , - 790 , - 183 , - 136 , - 649 , - 1722 , - 3355 , - 1068 , - 3821 , - 2654 , - 2047 , - 2000 , - 2513 , - 3586 , - 739 , - 2932 , - 1205 , - 38 , - 3911 , - 3864 , - 4377 , - 970 , - 2603 , - 316 , - 3069 , - 1902 , - 1295 , - 1248 , - 1761 , - 2834 , - 4467 , - 2180 , - 453 , - 3766 , - 3159 , - 3112 , - 3625 , - 218 , - 1851 , - 4044 , - 2317 , - 1150 , - 543 , - 496 , - 1009 , - 2082 , - 3715 , - 1428 , - 4181 , - 3014 , - 2407 , - 2360 , - 2873 , - 3946 , - 1099 , - 3292 , - 1565 , - 398 , - 4271 , - 4224 , - 257 , - 1330 , - 2963 , - 676 , - 3429 , - 2262 , - 1655 , - 1608 , - 2121 , - 3194 , - 347 , - 2540 , - 813 , - 4126 , - 3519 , - 3472 , - 3985 , - 578 , - 2211 , - 4404 , - 2677 , - 1510 , - 903 , - 856 , - 1369 , - 2442 , - 4075 , - 1788 , - 61 , - 3374 , - 2767 , - 2720 , - 3233 , - 4306 , - 1459 , - 3652 , - 1925 , - 758 , - 151 , - 104 , - 617 , - 1690 , - 3323 , - 1036 , - 3789 , - 2622 , - 2015 , - 1968 , - 2481 , - 3554 , - 707 , - 2900 , - 1173 , - 6 , - 3879 , - 3832 , - 4345 , - 938 , - 2571 , - 284 , - 3037 , - 1870 , - 1263 , - 1216 , - 1729 , - 2802 , - 4435 , - 2148 , - 421 , - 3734 , - 3127 , - 3080 , - 3593 , - 186 , - 1819 , - 4012 , - 2285 , - 1118 , - 511 , - 464 , - 977 , - 2050 , - 3683 , - 1396 , - 4149 , - 2982 , - 2375 , - 2328 , - 2841 , - 3914 , - 1067 , - 3260 , - 1533 , - 366 , - 4239 , - 4192 , - 225 , - 1298 , - 2931 , - 644 , - 3397 , - 2230 , - 1623 , - 1576 , - 2089 , - 3162 , - 315 , - 2508 , - 781 , - 4094 , - 3487 , - 3440 , - 3953 , - 546 , - 2179 , - 4372 , - 2645 , - 1478 , - 871 , - 824 , - 1337 , - 2410 , - 4043 , - 1756 , - 29 , - 3342 , - 2735 , - 2688 , - 3201 , - 4274 , - 1427 , - 3620 , - 1893 , - 726 , - 119 , - 72 , - 585 , - 1658 , - 3291 , - 1004 , - 3757 , - 2590 , - 1983 , - 1936 , - 2449 , - 3522 , - 675 , - 2868 , - 1141 , - 4454 , - 3847 , - 3800 , - 4313 , - 906 , - 2539 , - 252 , - 3005 , - 1838 , - 1231 , - 1184 , - 1697 , - 2770 , - 4403 , - 2116 , - 389 , - 3702 , - 3095 , - 3048 , - 3561 , - 154 , - 1787 , - 3980 , - 2253 , - 1086 , - 479 , - 432 , - 945 , - 2018 , - 3651 , - 1364 , - 4117 , - 2950 , - 2343 , - 2296 , - 2809 , - 3882 , - 1035 , - 3228 , - 1501 , - 334 , - 4207 , - 4160 , - 193 , - 1266 , - 2899 , - 612 , - 3365 , - 2198 , - 1591 , - 1544 , - 2057 , - 3130 , - 283 , - 2476 , - 749 , - 4062 , - 3455 , - 3408 , - 3921 , - 514 , - 2147 , - 4340 , - 2613 , - 1446 , - 839 , - 792 , - 1305 , - 2378 , - 4011 , - 1724 , - 4477 , - 3310 , - 2703 , - 2656 , - 3169 , - 4242 , - 1395 , - 3588 , - 1861 , - 694 , - 87 , - 40 , - 553 , - 1626 , - 3259 , - 972 , - 3725 , - 2558 , - 1951 , - 1904 , - 2417 , - 3490 , - 643 , - 2836 , - 1109 , - 4422 , - 3815 , - 3768 , - 4281 , - 874 , - 2507 , - 220 , - 2973 , - 1806 , - 1199 , - 1152 , - 1665 , - 2738 , - 4371 , - 2084 , - 357 , - 3670 , - 3063 , - 3016 , - 3529 , - 122 , - 1755 , - 3948 , - 2221 , - 1054 , - 447 , - 400 , - 913 , - 1986 , - 3619 , - 1332 , - 4085 , - 2918 , - 2311 , - 2264 , - 2777 , - 3850 , - 1003 , - 3196 , - 1469 , - 302 , - 4175 , - 4128 , - 161 , - 1234 , - 2867 , - 580 , - 3333 , - 2166 , - 1559 , - 1512 , - 2025 , - 3098 , - 251 , - 2444 , - 717 , - 4030 , - 3423 , - 3376 , - 3889 , - 482 , - 2115 , - 4308 , - 2581 , - 1414 , - 807 , - 760 , - 1273 , - 2346 , - 3979 , - 1692 , - 4445 , - 3278 , - 2671 , - 2624 , - 3137 , - 4210 , - 1363 , - 3556 , - 1829 , - 662 , - 55 , - 8 , - 521 , - 1594 , - 3227 , - 940 , - 3693 , - 2526 , - 1919 , - 1872 , - 2385 , - 3458 , - 611 , - 2804 , - 1077 , - 4390 , - 3783 , - 3736 , - 4249 , - 842 , - 2475 , - 188 , - 2941 , - 1774 , - 1167 , - 1120 , - 1633 , - 2706 , - 4339 , - 2052 , - 325 , - 3638 , - 3031 , - 2984 , - 3497 , - 90 , - 1723 , - 3916 , - 2189 , - 1022 , - 415 , - 368 , - 881 , - 1954 , - 3587 , - 1300 , - 4053 , - 2886 , - 2279 , - 2232 , - 2745 , - 3818 , - 971 , - 3164 , - 1437 , - 270 , - 4143 , - 4096 , - 129 , - 1202 , - 2835 , - 548 , - 3301 , - 2134 , - 1527 , - 1480 , - 1993 , - 3066 , - 219 , - 2412 , - 685 , - 3998 , - 3391 , - 3344 , - 3857 , - 450 , - 2083 , - 4276 , - 2549 , - 1382 , - 775 , - 728 , - 1241 , - 2314 , - 3947 , - 1660 , - 4413 , - 3246 , - 2639 , - 2592 , - 3105 , - 4178 , - 1331 , - 3524 , - 1797 , - 630 , - 23 , - 4456 , - 489 , - 1562 , - 3195 , - 908 , - 3661 , - 2494 , - 1887 , - 1840 , - 2353 , - 3426 , - 579 , - 2772 , - 1045 , - 4358 , - 3751 , - 3704 , - 4217 , - 810 , - 2443 , - 156 , - 2909 , - 1742 , - 1135 , - 1088 , - 1601 , - 2674 , - 4307 , - 2020 , - 293 , - 3606 , - 2999 , - 2952 , - 3465 , - 58 , - 1691 , - 3884 , - 2157 , - 990 , - 383 , - 336 , - 849 , - 1922 , - 3555 , - 1268 , - 4021 , - 2854 , - 2247 , - 2200 , - 2713 , - 3786 , - 939 , - 3132 , - 1405 , - 238 , - 4111 , - 4064 , - 97 , - 1170 , - 2803 , - 516 , - 3269 , - 2102 , - 1495 , - 1448 , - 1961 , - 3034 , - 187 , - 2380 , - 653 , - 3966 , - 3359 , - 3312 , - 3825 , - 418 , - 2051 , - 4244 , - 2517 , - 1350 , - 743 , - 696 , - 1209 , - 2282 , - 3915 , - 1628 , - 4381 , - 3214 , - 2607 , - 2560 , - 3073 , - 4146 , - 1299 , - 3492 , - 1765 , - 598 , - 4471 , - 4424 , - 457 , - 1530 , - 3163 , - 876 , - 3629 , - 2462 , - 1855 , - 1808 , - 2321 , - 3394 , - 547 , - 2740 , - 1013 , - 4326 , - 3719 , - 3672 , - 4185 , - 778 , - 2411 , - 124 , - 2877 , - 1710 , - 1103 , - 1056 , - 1569 , - 2642 , - 4275 , - 1988 , - 261 , - 3574 , - 2967 , - 2920 , - 3433 , - 26 , - 1659 , - 3852 , - 2125 , - 958 , - 351 , - 304 , - 817 , - 1890 , - 3523 , - 1236 , - 3989 , - 2822 , - 2215 , - 2168 , - 2681 , - 3754 , - 907 , - 3100 , - 1373 , - 206 , - 4079 , - 4032 , - 65 , - 1138 , - 2771 , - 484 , - 3237 , - 2070 , - 1463 , - 1416 , - 1929 , - 3002 , - 155 , - 2348 , - 621 , - 3934 , - 3327 , - 3280 , - 3793 , - 386 , - 2019 , - 4212 , - 2485 , - 1318 , - 711 , - 664 , - 1177 , - 2250 , - 3883 , - 1596 , - 4349 , - 3182 , - 2575 , - 2528 , - 3041 , - 4114 , - 1267 , - 3460 , - 1733 , - 566 , - 4439 , - 4392 , - 425 , - 1498 , - 3131 , - 844 , - 3597 , - 2430 , - 1823 , - 1776 , - 2289 , - 3362 , - 515 , - 2708 , - 981 , - 4294 , - 3687 , - 3640 , - 4153 , - 746 , - 2379 , - 92 , - 2845 , - 1678 , - 1071 , - 1024 , - 1537 , - 2610 , - 4243 , - 1956 , - 229 , - 3542 , - 2935 , - 2888 , - 3401 , - 4474 , - 1627 , - 3820 , - 2093 , - 926 , - 319 , - 272 , - 785 , - 1858 , - 3491 , - 1204 , - 3957 , - 2790 , - 2183 , - 2136 , - 2649 , - 3722 , - 875 , - 3068 , - 1341 , - 174 , - 4047 , - 4000 , - 33 , - 1106 , - 2739 , - 452 , - 3205 , - 2038 , - 1431 , - 1384 , - 1897 , - 2970 , - 123 , - 2316 , - 589 , - 3902 , - 3295 , - 3248 , - 3761 , - 354 , - 1987 , - 4180 , - 2453 , - 1286 , - 679 , - 632 , - 1145 , - 2218 , - 3851 , - 1564 , - 4317 , - 3150 , - 2543 , - 2496 , - 3009 , - 4082 , - 1235 , - 3428 , - 1701 , - 534 , - 4407 , - 4360 , - 393 , - 1466 , - 3099 , - 812 , - 3565 , - 2398 , - 1791 , - 1744 , - 2257 , - 3330 , - 483 , - 2676 , - 949 , - 4262 , - 3655 , - 3608 , - 4121 , - 714 , - 2347 , - 60 , - 2813 , - 1646 , - 1039 , - 992 , - 1505 , - 2578 , - 4211 , - 1924 , - 197 , - 3510 , - 2903 , - 2856 , - 3369 , - 4442 , - 1595 , - 3788 , - 2061 , - 894 , - 287 , - 240 , - 753 , - 1826 , - 3459 , - 1172 , - 3925 , - 2758 , - 2151 , - 2104 , - 2617 , - 3690 , - 843 , - 3036 , - 1309 , - 142 , - 4015 , - 3968 , - 1 , - 1074 , - 2707 , - 420 , - 3173 , - 2006 , - 1399 , - 1352 , - 1865 , - 2938 , - 91 , - 2284 , - 557 , - 3870 , - 3263 , - 3216 , - 3729 , - 322 , - 1955 , - 4148 , - 2421 , - 1254 , - 647 , - 600 , - 1113 , - 2186 , - 3819 , - 1532 , - 4285 , - 3118 , - 2511 , - 2464 , - 2977 , - 4050 , - 1203 , - 3396 , - 1669 , - 502 , - 4375 , - 4328 , - 361 , - 1434 , - 3067 , - 780 , - 3533 , - 2366 , - 1759 , - 1712 , - 2225 , - 3298 , - 451 , - 2644 , - 917 , - 4230 , - 3623 , - 3576 , - 4089 , - 682 , - 2315 , - 28 , - 2781 , - 1614 , - 1007 , - 960 , - 1473 , - 2546 , - 4179 , - 1892 , - 165 , - 3478 , - 2871 , - 2824 , - 3337 , - 4410 , - 1563 , - 3756 , - 2029 , - 862 , - 255 , - 208 , - 721 , - 1794 , - 3427 , - 1140 , - 3893 , - 2726 , - 2119 , - 2072 , - 2585 , - 3658 , - 811 , - 3004 , - 1277 , - 110 , - 3983 , - 3936 , - 4449 , - 1042 , - 2675 , - 388 , - 3141 , - 1974 , - 1367 , - 1320 , - 1833 , - 2906 , - 59 , - 2252 , - 525 , - 3838 , - 3231 , - 3184 , - 3697 , - 290 , - 1923 , - 4116 , - 2389 , - 1222 , - 615 , - 568 , - 1081 , - 2154 , - 3787 , - 1500 , - 4253 , - 3086 , - 2479 , - 2432 , - 2945 , - 4018 , - 1171 , - 3364 , - 1637 , - 470 , - 4343 , - 4296 , - 329 , - 1402 , - 3035 , - 748 , - 3501 , - 2334 , - 1727 , - 1680 , - 2193 , - 3266 , - 419 , - 2612 , - 885 , - 4198 , - 3591 , - 3544 , - 4057 , - 650 , - 2283 , - 4476 , - 2749 , - 1582 , - 975 , - 928 , - 1441 , - 2514 , - 4147 , - 1860 , - 133 , - 3446 , - 2839 , - 2792 , - 3305 , - 4378 , - 1531 , - 3724 , - 1997 , - 830 , - 223 , - 176 , - 689 , - 1762 , - 3395 , - 1108 , - 3861 , - 2694 , - 2087 , - 2040 , - 2553 , - 3626 , - 779 , - 2972 , - 1245 , - 78 , - 3951 , - 3904 , - 4417 , - 1010 , - 2643 , - 356 , - 3109 , - 1942 , - 1335 , - 1288 , - 1801 , - 2874 , - 27 , - 2220 , - 493 , - 3806 , - 3199 , - 3152 , - 3665 , - 258 , - 1891 , - 4084 , - 2357 , - 1190 , - 583 , - 536 , - 1049 , - 2122 , - 3755 , - 1468 , - 4221 , - 3054 , - 2447 , - 2400 , - 2913 , - 3986 , - 1139 , - 3332 , - 1605 , - 438 , - 4311 , - 4264 , - 297 , - 1370 , - 3003 , - 716 , - 3469 , - 2302 , - 1695 , - 1648 , - 2161 , - 3234 , - 387 , - 2580 , - 853 , - 4166 , - 3559 , - 3512 , - 4025 , - 618 , - 2251 , - 4444 , - 2717 , - 1550 , - 943 , - 896 , - 1409 , - 2482 , - 4115 , - 1828 , - 101 , - 3414 , - 2807 , - 2760 , - 3273 , - 4346 , - 1499 , - 3692 , - 1965 , - 798 , - 191 , - 144 , - 657 , - 1730 , - 3363 , - 1076 , - 3829 , - 2662 , - 2055 , - 2008 , - 2521 , - 3594 , - 747 , - 2940 , - 1213 , - 46 , - 3919 , - 3872 , - 4385 , - 978 , - 2611 , - 324 , - 3077 , - 1910 , - 1303 , - 1256 , - 1769 , - 2842 , - 4475 , - 2188 , - 461 , - 3774 , - 3167 , - 3120 , - 3633 , - 226 , - 1859 , - 4052 , - 2325 , - 1158 , - 551 , - 504 , - 1017 , - 2090 , - 3723 , - 1436 , - 4189 , - 3022 , - 2415 , - 2368 , - 2881 , - 3954 , - 1107 , - 3300 , - 1573 , - 406 , - 4279 , - 4232 , - 265 , - 1338 , - 2971 , - 684 , - 3437 , - 2270 , - 1663 , - 1616 , - 2129 , - 3202 , - 355 , - 2548 , - 821 , - 4134 , - 3527 , - 3480 , - 3993 , - 586 , - 2219 , - 4412 , - 2685 , - 1518 , - 911 , - 864 , - 1377 , - 2450 , - 4083 , - 1796 , - 69 , - 3382 , - 2775 , - 2728 , - 3241 , - 4314 , - 1467 , - 3660 , - 1933 , - 766 , - 159 , - 112 , - 625 , - 1698 , - 3331 , - 1044 , - 3797 , - 2630 , - 2023 , - 1976 , - 2489 , - 3562 , - 715 , - 2908 , - 1181 , - 14 , - 3887 , - 3840 , - 4353 , - 946 , - 2579 , - 292 , - 3045 , - 1878 , - 1271 , - 1224 , - 1737 , - 2810 , - 4443 , - 2156 , - 429 , - 3742 , - 3135 , - 3088 , - 3601 , - 194 , - 1827 , - 4020 , - 2293 , - 1126 , - 519 , - 472 , - 985 , - 2058 , - 3691 , - 1404 , - 4157 , - 2990 , - 2383 , - 2336 , - 2849 , - 3922 , - 1075 , - 3268 , - 1541 , - 374 , - 4247 , - 4200 , - 233 , - 1306 , - 2939 , - 652 , - 3405 , - 2238 , - 1631 , - 1584 , - 2097 , - 3170 , - 323 , - 2516 , - 789 , - 4102 , - 3495 , - 3448 , - 3961 , - 554 , - 2187 , - 4380 , - 2653 , - 1486 , - 879 , - 832 , - 1345 , - 2418 , - 4051 , - 1764 , - 37 , - 3350 , - 2743 , - 2696 , - 3209 , - 4282 , - 1435 , - 3628 , - 1901 , - 734 , - 127 , - 80 , - 593 , - 1666 , - 3299 , - 1012 , - 3765 , - 2598 , - 1991 , - 1944 , - 2457 , - 3530 , - 683 , - 2876 , - 1149 , - 4462 , - 3855 , - 3808 , - 4321 , - 914 , - 2547 , - 260 , - 3013 , - 1846 , - 1239 , - 1192 , - 1705 , - 2778 , - 4411 , - 2124 , - 397 , - 3710 , - 3103 , - 3056 , - 3569 , - 162 , - 1795 , - 3988 , - 2261 , - 1094 , - 487 , - 440 , - 953 , - 2026 , - 3659 , - 1372 , - 4125 , - 2958 , - 2351 , - 2304 , - 2817 , - 3890 , - 1043 , - 3236 , - 1509 , - 342 , - 4215 , - 4168 , - 201 , - 1274 , - 2907 , - 620 , - 3373 , - 2206 , - 1599 , - 1552 , - 2065 , - 3138 , - 291 , - 2484 , - 757 , - 4070 , - 3463 , - 3416 , - 3929 , - 522 , - 2155 , - 4348 , - 2621 , - 1454 , - 847 , - 800 , - 1313 , - 2386 , - 4019 , - 1732 , - 5 , - 3318 , - 2711 , - 2664 , - 3177 , - 4250 , - 1403 , - 3596 , - 1869 , - 702 , - 95 , - 48 , - 561 , - 1634 , - 3267 , - 980 , - 3733 , - 2566 , - 1959 , - 1912 , - 2425 , - 3498 , - 651 , - 2844 , - 1117 , - 4430 , - 3823 , - 3776 , - 4289 , - 882 , - 2515 , - 228 , - 2981 , - 1814 , - 1207 , - 1160 , - 1673 , - 2746 , - 4379 , - 2092 , - 365 , - 3678 , - 3071 , - 3024 , - 3537 , - 130 , - 1763 , - 3956 , - 2229 , - 1062 , - 455 , - 408 , - 921 , - 1994 , - 3627 , - 1340 , - 4093 , - 2926 , - 2319 , - 2272 , - 2785 , - 3858 , - 1011 , - 3204 , - 1477 , - 310 , - 4183 , - 4136 , - 169 , - 1242 , - 2875 , - 588 , - 3341 , - 2174 , - 1567 , - 1520 , - 2033 , - 3106 , - 259 , - 2452 , - 725 , - 4038 , - 3431 , - 3384 , - 3897 , - 490 , - 2123 , - 4316 , - 2589 , - 1422 , - 815 , - 768 , - 1281 , - 2354 , - 3987 , - 1700 , - 4453 , - 3286 , - 2679 , - 2632 , - 3145 , - 4218 , - 1371 , - 3564 , - 1837 , - 670 , - 63 , - 16 , - 529 , - 1602 , - 3235 , - 948 , - 3701 , - 2534 , - 1927 , - 1880 , - 2393 , - 3466 , - 619 , - 2812 , - 1085 , - 4398 , - 3791 , - 3744 , - 4257 , - 850 , - 2483 , - 196 , - 2949 , - 1782 , - 1175 , - 1128 , - 1641 , - 2714 , - 4347 , - 2060 , - 333 , - 3646 , - 3039 , - 2992 , - 3505 , - 98 , - 1731 , - 3924 , - 2197 , - 1030 , - 423 , - 376 , - 889 , - 1962 , - 3595 , - 1308 , - 4061 , - 2894 , - 2287 , - 2240 , - 2753 , - 3826 , - 979 , - 3172 , - 1445 , - 278 , - 4151 , - 4104 , - 137 , - 1210 , - 2843 , - 556 , - 3309 , - 2142 , - 1535 , - 1488 , - 2001 , - 3074 , - 227 , - 2420 , - 693 , - 4006 , - 3399 , - 3352 , - 3865 , - 458 , - 2091 , - 4284 , - 2557 , - 1390 , - 783 , - 736 , - 1249 , - 2322 , - 3955 , - 1668 , - 4421 , - 3254 , - 2647 , - 2600 , - 3113 , - 4186 , - 1339 , - 3532 , - 1805 , - 638 , - 31 , - 4464 , - 497 , - 1570 , - 3203 , - 916 , - 3669 , - 2502 , - 1895 , - 1848 , - 2361 , - 3434 , - 587 , - 2780 , - 1053 , - 4366 , - 3759 , - 3712 , - 4225 , - 818 , - 2451 , - 164 , - 2917 , - 1750 , - 1143 , - 1096 , - 1609 , - 2682 , - 4315 , - 2028 , - 301 , - 3614 , - 3007 , - 2960 , - 3473 , - 66 , - 1699 , - 3892 , - 2165 , - 998 , - 391 , - 344 , - 857 , - 1930 , - 3563 , - 1276 , - 4029 , - 2862 , - 2255 , - 2208 , - 2721 , - 3794 , - 947 , - 3140 , - 1413 , - 246 , - 4119 , - 4072 , - 105 , - 1178 , - 2811 , - 524 , - 3277 , - 2110 , - 1503 , - 1456 , - 1969 , - 3042 , - 195 , - 2388 , - 661 , - 3974 , - 3367 , - 3320 , - 3833 , - 426 , - 2059 , - 4252 , - 2525 , - 1358 , - 751 , - 704 , - 1217 , - 2290 , - 3923 , - 1636 , - 4389 , - 3222 , - 2615 , - 2568 , - 3081 , - 4154 , - 1307 , - 3500 , - 1773 , - 606 , - 4479 , - 4432 , - 465 , - 1538 , - 3171 , - 884 , - 3637 , - 2470 , - 1863 , - 1816 , - 2329 , - 3402 , - 555 , - 2748 , - 1021 , - 4334 , - 3727 , - 3680 , - 4193 , - 786 , - 2419 , - 132 , - 2885 , - 1718 , - 1111 , - 1064 , - 1577 , - 2650 , - 4283 , - 1996 , - 269 , - 3582 , - 2975 , - 2928 , - 3441 , - 34 , - 1667 , - 3860 , - 2133 , - 966 , - 359 , - 312 , - 825 , - 1898 , - 3531 , - 1244 , - 3997 , - 2830 , - 2223 , - 2176 , - 2689 , - 3762 , - 915 , - 3108 , - 1381 , - 214 , - 4087 , - 4040 , - 73 , - 1146 , - 2779 , - 492 , - 3245 , - 2078 , - 1471 , - 1424 , - 1937 , - 3010 , - 163 , - 2356 , - 629 , - 3942 , - 3335 , - 3288 , - 3801 , - 394 , - 2027 , - 4220 , - 2493 , - 1326 , - 719 , - 672 , - 1185 , - 2258 , - 3891 , - 1604 , - 4357 , - 3190 , - 2583 , - 2536 , - 3049 , - 4122 , - 1275 , - 3468 , - 1741 , - 574 , - 4447 , - 4400 , - 433 , - 1506 , - 3139 , - 852 , - 3605 , - 2438 , - 1831 , - 1784 , - 2297 , - 3370 , - 523 , - 2716 , - 989 , - 4302 , - 3695 , - 3648 , - 4161 , - 754 , - 2387 , - 100 , - 2853 , - 1686 , - 1079 , - 1032 , - 1545 , - 2618 , - 4251 , - 1964 , - 237 , - 3550 , - 2943 , - 2896 , - 3409 , - 2 , - 1635 , - 3828 , - 2101 , - 934 , - 327 , - 280 , - 793 , - 1866 , - 3499 , - 1212 , - 3965 , - 2798 , - 2191 , - 2144 , - 2657 , - 3730 , - 883 , - 3076 , - 1349 , - 182 , - 4055 , - 4008 , - 41 , - 1114 , - 2747 , - 460 , - 3213 , - 2046 , - 1439 , - 1392 , - 1905 , - 2978 , - 131 , - 2324 , - 597 , - 3910 , - 3303 , - 3256 , - 3769 , - 362 , - 1995 , - 4188 , - 2461 , - 1294 , - 687 , - 640 , - 1153 , - 2226 , - 3859 , - 1572 , - 4325 , - 3158 , - 2551 , - 2504 , - 3017 , - 4090 , - 1243 , - 3436 , - 1709 , - 542 , - 4415 , - 4368 , - 401 , - 1474 , - 3107 , - 820 , - 3573 , - 2406 , - 1799 , - 1752 , - 2265 , - 3338 , - 491 , - 2684 , - 957 , - 4270 , - 3663 , - 3616 , - 4129 , - 722 , - 2355 , - 68 , - 2821 , - 1654 , - 1047 , - 1000 , - 1513 , - 2586 , - 4219 , - 1932 , - 205 , - 3518 , - 2911 , - 2864 , - 3377 , - 4450 , - 1603 , - 3796 , - 2069 , - 902 , - 295 , - 248 , - 761 , - 1834 , - 3467 , - 1180 , - 3933 , - 2766 , - 2159 , - 2112 , - 2625 , - 3698 , - 851 , - 3044 , - 1317 , - 150 , - 4023 , - 3976 , - 9 , - 1082 , - 2715 , - 428 , - 3181 , - 2014 , - 1407 , - 1360 , - 1873 , - 2946 , - 99 , - 2292 , - 565 , - 3878 , - 3271 , - 3224 , - 3737 , - 330 , - 1963 , - 4156 , - 2429 , - 1262 , - 655 , - 608 , - 1121 , - 2194 , - 3827 , - 1540 , - 4293 , - 3126 , - 2519 , - 2472 , - 2985 , - 4058 , - 1211 , - 3404 , - 1677 , - 510 , - 4383 , - 4336 , - 369 , - 1442 , - 3075 , - 788 , - 3541 , - 2374 , - 1767 , - 1720 , - 2233 , - 3306 , - 459 , - 2652 , - 925 , - 4238 , - 3631 , - 3584 , - 4097 , - 690 , - 2323 , - 36 , - 2789 , - 1622 , - 1015 , - 968 , - 1481 , - 2554 , - 4187 , - 1900 , - 173 , - 3486 , - 2879 , - 2832 , - 3345 , - 4418 , - 1571 , - 3764 , - 2037 , - 870 , - 263 , - 216 , - 729 , - 1802 , - 3435 , - 1148 , - 3901 , - 2734 , - 2127 , - 2080 , - 2593 , - 3666 , - 819 , - 3012 , - 1285 , - 118 , - 3991 , - 3944 , - 4457 , - 1050 , - 2683 , - 396 , - 3149 , - 1982 , - 1375 , - 1328 , - 1841 , - 2914 , - 67 , - 2260 , - 533 , - 3846 , - 3239 , - 3192 , - 3705 , - 298 , - 1931 , - 4124 , - 2397 , - 1230 , - 623 , - 576 , - 1089 , - 2162 , - 3795 , - 1508 , - 4261 , - 3094 , - 2487 , - 2440 , - 2953 , - 4026 , - 1179 , - 3372 , - 1645 , - 478 , - 4351 , - 4304 , - 337 , - 1410 , - 3043 , - 756 , - 3509 , - 2342 , - 1735 , - 1688 , - 2201 , - 3274 , - 427 , - 2620 , - 893 , - 4206 , - 3599 , - 3552 , - 4065 , - 658 , - 2291 , - 4 , - 2757 , - 1590 , - 983 , - 936 , - 1449 , - 2522 , - 4155 , - 1868 , - 141 , - 3454 , - 2847 , - 2800 , - 3313 , - 4386 , - 1539 , - 3732 , - 2005 , - 838 , - 231 , - 184 , - 697 , - 1770 , - 3403 , - 1116 , - 3869 , - 2702 , - 2095 , - 2048 , - 2561 , - 3634 , - 787 , - 2980 , - 1253 , - 86 , - 3959 , - 3912 , - 4425 , - 1018 , - 2651 , - 364 , - 3117 , - 1950 , - 1343 , - 1296 , - 1809 , - 2882 , - 35 , - 2228 , - 501 , - 3814 , - 3207 , - 3160 , - 3673 , - 266 , - 1899 , - 4092 , - 2365 , - 1198 , - 591 , - 544 , - 1057 , - 2130 , - 3763 , - 1476 , - 4229 , - 3062 , - 2455 , - 2408 , - 2921 , - 3994 , - 1147 , - 3340 , - 1613 , - 446 , - 4319 , - 4272 , - 305 , - 1378 , - 3011 , - 724 , - 3477 , - 2310 , - 1703 , - 1656 , - 2169 , - 3242 , - 395 , - 2588 , - 861 , - 4174 , - 3567 , - 3520 , - 4033 , - 626 , - 2259 , - 4452 , - 2725 , - 1558 , - 951 , - 904 , - 1417 , - 2490 , - 4123 , - 1836 , - 109 , - 3422 , - 2815 , - 2768 , - 3281 , - 4354 , - 1507 , - 3700 , - 1973 , - 806 , - 199 , - 152 , - 665 , - 1738 , - 3371 , - 1084 , - 3837 , - 2670 , - 2063 , - 2016 , - 2529 , - 3602 , - 755 , - 2948 , - 1221 , - 54 , - 3927 , - 3880 , - 4393 , - 986 , - 2619 , - 332 , - 3085 , - 1918 , - 1311 , - 1264 , - 1777 , - 2850 , - 3 , - 2196 , - 469 , - 3782 , - 3175 , - 3128 , - 3641 , - 234 , - 1867 , - 4060 , - 2333 , - 1166 , - 559 , - 512 , - 1025 , - 2098 , - 3731 , - 1444 , - 4197 , - 3030 , - 2423 , - 2376 , - 2889 , - 3962 , - 1115 , - 3308 , - 1581 , - 414 , - 4287 , - 4240 , - 273 , - 1346 , - 2979 , - 692 , - 3445 , - 2278 , - 1671 , - 1624 , - 2137 , - 3210 , - 363 , - 2556 , - 829 , - 4142 , - 3535 , - 3488 , - 4001 , - 594 , - 2227 , - 4420 , - 2693 , - 1526 , - 919 , - 872 , - 1385 , - 2458 , - 4091 , - 1804 , - 77 , - 3390 , - 2783 , - 2736 , - 3249 , - 4322 , - 1475 , - 3668 , - 1941 , - 774 , - 167 , - 120 , - 633 , - 1706 , - 3339 , - 1052 , - 3805 , - 2638 , - 2031 , - 1984 , - 2497 , - 3570 , - 723 , - 2916 , - 1189 , - 22 , - 3895 , - 3848 , - 4361 , - 954 , - 2587 , - 300 , - 3053 , - 1886 , - 1279 , - 1232 , - 1745 , - 2818 , - 4451 , - 2164 , - 437 , - 3750 , - 3143 , - 3096 , - 3609 , - 202 , - 1835 , - 4028 , - 2301 , - 1134 , - 527 , - 480 , - 993 , - 2066 , - 3699 , - 1412 , - 4165 , - 2998 , - 2391 , - 2344 , - 2857 , - 3930 , - 1083 , - 3276 , - 1549 , - 382 , - 4255 , - 4208 , - 241 , - 1314 , - 2947 , - 660 , - 3413 , - 2246 , - 1639 , - 1592 , - 2105 , - 3178 , - 331 , - 2524 , - 797 , - 4110 , - 3503 , - 3456 , - 3969 , - 562 , - 2195 , - 4388 , - 2661 , - 1494 , - 887 , - 840 , - 1353 , - 2426 , - 4059 , - 1772 , - 45 , - 3358 , - 2751 , - 2704 , - 3217 , - 4290 , - 1443 , - 3636 , - 1909 , - 742 , - 135 , - 88 , - 601 , - 1674 , - 3307 , - 1020 , - 3773 , - 2606 , - 1999 , - 1952 , - 2465 , - 3538 , - 691 , - 2884 , - 1157 , - 4470 , - 3863 , - 3816 , - 4329 , - 922 , - 2555 , - 268 , - 3021 , - 1854 , - 1247 , - 1200 , - 1713 , - 2786 , - 4419 , - 2132 , - 405 , - 3718 , - 3111 , - 3064 , - 3577 , - 170 , - 1803 , - 3996 , - 2269 , - 1102 , - 495 , - 448 , - 961 , - 2034 , - 3667 , - 1380 , - 4133 , - 2966 , - 2359 , - 2312 , - 2825 , - 3898 , - 1051 , - 3244 , - 1517 , - 350 , - 4223 , - 4176 , - 209 , - 1282 , - 2915 , - 628 , - 3381 , - 2214 , - 1607 , - 1560 , - 2073 , - 3146 , - 299 , - 2492 , - 765 , - 4078 , - 3471 , - 3424 , - 3937 , - 530 , - 2163 , - 4356 , - 2629 , - 1462 , - 855 , - 808 , - 1321 , - 2394 , - 4027 , - 1740 , - 13 , - 3326 , - 2719 , - 2672 , - 3185 , - 4258 , - 1411 , - 3604 , - 1877 , - 710 , - 103 , - 56 , - 569 , - 1642 , - 3275 , - 988 , - 3741 , - 2574 , - 1967 , - 1920 , - 2433 , - 3506 , - 659 , - 2852 , - 1125 , - 4438 , - 3831 , - 3784 , - 4297 , - 890 , - 2523 , - 236 , - 2989 , - 1822 , - 1215 , - 1168 , - 1681 , - 2754 , - 4387 , - 2100 , - 373 , - 3686 , - 3079 , - 3032 , - 3545 , - 138 , - 1771 , - 3964 , - 2237 , - 1070 , - 463 , - 416 , - 929 , - 2002 , - 3635 , - 1348 , - 4101 , - 2934 , - 2327 , - 2280 , - 2793 , - 3866 , - 1019 , - 3212 , - 1485 , - 318 , - 4191 , - 4144 , - 177 , - 1250 , - 2883 , - 596 , - 3349 , - 2182 , - 1575 , - 1528 , - 2041 , - 3114 , - 267 , - 2460 , - 733 , - 4046 , - 3439 , - 3392 , - 3905 , - 498 , - 2131 , - 4324 , - 2597 , - 1430 , - 823 , - 776 , - 1289 , - 2362 , - 3995 , - 1708 , - 4461 , - 3294 , - 2687 , - 2640 , - 3153 , - 4226 , - 1379 , - 3572 , - 1845 , - 678 , - 71 , - 24 , - 537 , - 1610 , - 3243 , - 956 , - 3709 , - 2542 , - 1935 , - 1888 , - 2401 , - 3474 , - 627 , - 2820 , - 1093 , - 4406 , - 3799 , - 3752 , - 4265 , - 858 , - 2491 , - 204 , - 2957 , - 1790 , - 1183 , - 1136 , - 1649 , - 2722 , - 4355 , - 2068 , - 341 , - 3654 , - 3047 , - 3000 , - 3513 , - 106 , - 1739 , - 3932 , - 2205 , - 1038 , - 431 , - 384 , - 897 , - 1970 , - 3603 , - 1316 , - 4069 , - 2902 , - 2295 , - 2248 , - 2761 , - 3834 , - 987 , - 3180 , - 1453 , - 286 , - 4159 , - 4112 , - 145 , - 1218 , - 2851 , - 564 , - 3317 , - 2150 , - 1543 , - 1496 , - 2009 , - 3082 , - 235 , - 2428 , - 701 , - 4014 , - 3407 , - 3360 , - 3873 , - 466 , - 2099 , - 4292 , - 2565 , - 1398 , - 791 , - 744 , - 1257 , - 2330 , - 3963 , - 1676 , - 4429 , - 3262 , - 2655 , - 2608 , - 3121 , - 4194 , - 1347 , - 3540 , - 1813 , - 646 , - 39 , - 4472 , - 505 , - 1578 , - 3211 , - 924 , - 3677 , - 2510 , - 1903 , - 1856 , - 2369 , - 3442 , - 595 , - 2788 , - 1061 , - 4374 , - 3767 , - 3720 , - 4233 , - 826 , - 2459 , - 172 , - 2925 , - 1758 , - 1151 , - 1104 , - 1617 , - 2690 , - 4323 , - 2036 , - 309 , - 3622 , - 3015 , - 2968 , - 3481 , - 74 , - 1707 , - 3900 , - 2173 , - 1006 , - 399 , - 352 , - 865 , - 1938 , - 3571 , - 1284 , - 4037 , - 2870 , - 2263 , - 2216 , - 2729 , - 3802 , - 955 , - 3148 , - 1421 , - 254 , - 4127 , - 4080 , - 113 , - 1186 , - 2819 , - 532 , - 3285 , - 2118 , - 1511 , - 1464 , - 1977 , - 3050 , - 203 , - 2396 , - 669 , - 3982 , - 3375 , - 3328 , - 3841 , - 434 , - 2067 , - 4260 , - 2533 , - 1366 , - 759 , - 712 , - 1225 , - 2298 , - 3931 , - 1644 , - 4397 , - 3230 , - 2623 , - 2576 , - 3089 , - 4162 , - 1315 , - 3508 , - 1781 , - 614 , - 7 , - 4440 , - 473 , - 1546 , - 3179 , - 892 , - 3645 , - 2478 , - 1871 , - 1824 , - 2337 , - 3410 , - 563 , - 2756 , - 1029 , - 4342 , - 3735 , - 3688 , - 4201 , - 794 , - 2427 , - 140 , - 2893 , - 1726 , - 1119 , - 1072 , - 1585 , - 2658 , - 4291 , - 2004 , - 277 , - 3590 , - 2983 , - 2936 , - 3449 , - 42 , - 1675 , - 3868 , - 2141 , - 974 , - 367 , - 320 , - 833 , - 1906 , - 3539 , - 1252 , - 4005 , - 2838 , - 2231 , - 2184 , - 2697 , - 3770 , - 923 , - 3116 , - 1389 , - 222 , - 4095 , - 4048 , - 81 , - 1154 , - 2787 , - 500 , - 3253 , - 2086 , - 1479 , - 1432 , - 1945 , - 3018 , - 171 , - 2364 , - 637 , - 3950 , - 3343 , - 3296 , - 3809 , - 402 , - 2035 , - 4228 , - 2501 , - 1334 , - 727 , - 680 , - 1193 , - 2266 , - 3899 , - 1612 , - 4365 , - 3198 , - 2591 , - 2544 , - 3057 , - 4130 , - 1283 , - 3476 , - 1749 , - 582 , - 4455 , - 4408 , - 441 , - 1514 , - 3147 , - 860 , - 3613 , - 2446 , - 1839 , - 1792 , - 2305 , - 3378 , - 531 , - 2724 , - 997 , - 4310 , - 3703 , - 3656 , - 4169 , - 762 , - 2395 , - 108 , - 2861 , - 1694 , - 1087 , - 1040 , - 1553 , - 2626 , - 4259 , - 1972 , - 245 , - 3558 , - 2951 , - 2904 , - 3417 , - 10 , - 1643 , - 3836 , - 2109 , - 942 , - 335 , - 288 , - 801 , - 1874 , - 3507 , - 1220 , - 3973 , - 2806 , - 2199 , - 2152 , - 2665 , - 3738 , - 891 , - 3084 , - 1357 , - 190 , - 4063 , - 4016 , - 49 , - 1122 , - 2755 , - 468 , - 3221 , - 2054 , - 1447 , - 1400 , - 1913 , - 2986 , - 139 , - 2332 , - 605 , - 3918 , - 3311 , - 3264 , - 3777 , - 370 , - 2003 , - 4196 , - 2469 , - 1302 , - 695 , - 648 , - 1161 , - 2234 , - 3867 , - 1580 , - 4333 , - 3166 , - 2559 , - 2512 , - 3025 , - 4098 , - 1251 , - 3444 , - 1717 , - 550 , - 4423 , - 4376 , - 409 , - 1482 , - 3115 , - 828 , - 3581 , - 2414 , - 1807 , - 1760 , - 2273 , - 3346 , - 499 , - 2692 , - 965 , - 4278 , - 3671 , - 3624 , - 4137 , - 730 , - 2363 , - 76 , - 2829 , - 1662 , - 1055 , - 1008 , - 1521 , - 2594 , - 4227 , - 1940 , - 213 , - 3526 , - 2919 , - 2872 , - 3385 , - 4458 , - 1611 , - 3804 , - 2077 , - 910 , - 303 , - 256 , - 769 , - 1842 , - 3475 , - 1188 , - 3941 , - 2774 , - 2167 , - 2120 , - 2633 , - 3706 , - 859 , - 3052 , - 1325 , - 158 , - 4031 , - 3984 , - 17 , - 1090 , - 2723 , - 436 , - 3189 , - 2022 , - 1415 , - 1368 , - 1881 , - 2954 , - 107 , - 2300 , - 573 , - 3886 , - 3279 , - 3232 , - 3745 , - 338 , - 1971 , - 4164 , - 2437 , - 1270 , - 663 , - 616 , - 1129 , - 2202 , - 3835 , - 1548 , - 4301 , - 3134 , - 2527 , - 2480 , - 2993 , - 4066 , - 1219 , - 3412 , - 1685 , - 518 , - 4391 , - 4344 , - 377 , - 1450 , - 3083 , - 796 , - 3549 , - 2382 , - 1775 , - 1728 , - 2241 , - 3314 , - 467 , - 2660 , - 933 , - 4246 , - 3639 , - 3592 , - 4105 , - 698 , - 2331 , - 44 , - 2797 , - 1630 , - 1023 , - 976 , - 1489 , - 2562 , - 4195 , - 1908 , - 181 , - 3494 , - 2887 , - 2840 , - 3353 , - 4426 , - 1579 , - 3772 , - 2045 , - 878 , - 271 , - 224 , - 737 , - 1810 , - 3443 , - 1156 , - 3909 , - 2742 , - 2135 , - 2088 , - 2601 , - 3674 , - 827 , - 3020 , - 1293 , - 126 , - 3999 , - 3952 , - 4465 , - 1058 , - 2691 , - 404 , - 3157 , - 1990 , - 1383 , - 1336 , - 1849 , - 2922 , - 75 , - 2268 , - 541 , - 3854 , - 3247 , - 3200 , - 3713 , - 306 , - 1939 , - 4132 , - 2405 , - 1238 , - 631 , - 584 , - 1097 , - 2170 , - 3803 , - 1516 , - 4269 , - 3102 , - 2495 , - 2448 , - 2961 , - 4034 , - 1187 , - 3380 , - 1653 , - 486 , - 4359 , - 4312 , - 345 , - 1418 , - 3051 , - 764 , - 3517 , - 2350 , - 1743 , - 1696 , - 2209 , - 3282 , - 435 , - 2628 , - 901 , - 4214 , - 3607 , - 3560 , - 4073 , - 666 , - 2299 , - 12 , - 2765 , - 1598 , - 991 , - 944 , - 1457 , - 2530 , - 4163 , - 1876 , - 149 , - 3462 , - 2855 , - 2808 , - 3321 , - 4394 , - 1547 , - 3740 , - 2013 , - 846 , - 239 , - 192 , - 705 , - 1778 , - 3411 , - 1124 , - 3877 , - 2710 , - 2103 , - 2056 , - 2569 , - 3642 , - 795 , - 2988 , - 1261 , - 94 , - 3967 , - 3920 , - 4433 , - 1026 , - 2659 , - 372 , - 3125 , - 1958 , - 1351 , - 1304 , - 1817 , - 2890 , - 43 , - 2236 , - 509 , - 3822 , - 3215 , - 3168 , - 3681 , - 274 , - 1907 , - 4100 , - 2373 , - 1206 , - 599 , - 552 , - 1065 , - 2138 , - 3771 , - 1484 , - 4237 , - 3070 , - 2463 , - 2416 , - 2929 , - 4002 , - 1155 , - 3348 , - 1621 , - 454 , - 4327 , - 4280 , - 313 , - 1386 , - 3019 , - 732 , - 3485 , - 2318 , - 1711 , - 1664 , - 2177 , - 3250 , - 403 , - 2596 , - 869 , - 4182 , - 3575 , - 3528 , - 4041 , - 634 , - 2267 , - 4460 , - 2733 , - 1566 , - 959 , - 912 , - 1425 , - 2498 , - 4131 , - 1844 , - 117 , - 3430 , - 2823 , - 2776 , - 3289 , - 4362 , - 1515 , - 3708 , - 1981 , - 814 , - 207 , - 160 , - 673 , - 1746 , - 3379 , - 1092 , - 3845 , - 2678 , - 2071 , - 2024 , - 2537 , - 3610 , - 763 , - 2956 , - 1229 , - 62 , - 3935 , - 3888 , - 4401 , - 994 , - 2627 , - 340 , - 3093 , - 1926 , - 1319 , - 1272 , - 1785 , - 2858 , - 11 , - 2204 , - 477 , - 3790 , - 3183 , - 3136 , - 3649 , - 242 , - 1875 , - 4068 , - 2341 , - 1174 , - 567 , - 520 , - 1033 , - 2106 , - 3739 , - 1452 , - 4205 , - 3038 , - 2431 , - 2384 , - 2897 , - 3970 , - 1123 , - 3316 , - 1589 , - 422 , - 4295 , - 4248 , - 281 , - 1354 , - 2987 , - 700 , - 3453 , - 2286 , - 1679 , - 1632 , - 2145 , - 3218 , - 371 , - 2564 , - 837 , - 4150 , - 3543 , - 3496 , - 4009 , - 602 , - 2235 , - 4428 , - 2701 , - 1534 , - 927 , - 880 , - 1393 , - 2466 , - 4099 , - 1812 , - 85 , - 3398 , - 2791 , - 2744 , - 3257 , - 4330 , - 1483 , - 3676 , - 1949 , - 782 , - 175 , - 128 , - 641 , - 1714 , - 3347 , - 1060 , - 3813 , - 2646 , - 2039 , - 1992 , - 2505 , - 3578 , - 731 , - 2924 , - 1197 , - 30 , - 3903 , - 3856 , - 4369 , - 962 , - 2595 , - 308 , - 3061 , - 1894 , - 1287 , - 1240 , - 1753 , - 2826 , - 4459 , - 2172 , - 445 , - 3758 , - 3151 , - 3104 , - 3617 , - 210 , - 1843 , - 4036 , - 2309 , - 1142 , - 535 , - 488 , - 1001 , - 2074 , - 3707 , - 1420 , - 4173 , - 3006 , - 2399 , - 2352 , - 2865 , - 3938 , - 1091 , - 3284 , - 1557 , - 390 , - 4263 , - 4216 , - 249 , - 1322 , - 2955 , - 668 , - 3421 , - 2254 , - 1647 , - 1600 , - 2113 , - 3186 , - 339 , - 2532 , - 805 , - 4118 , - 3511 , - 3464 , - 3977 , - 570 , - 2203 , - 4396 , - 2669 , - 1502 , - 895 , - 848 , - 1361 , - 2434 , - 4067 , - 1780 , - 53 , - 3366 , - 2759 , - 2712 , - 3225 , - 4298 , - 1451 , - 3644 , - 1917 , - 750 , - 143 , - 96 , - 609 , - 1682 , - 3315 , - 1028 , - 3781 , - 2614 , - 2007 , - 1960 , - 2473 , - 3546 , - 699 , - 2892 , - 1165 , - 4478 , - 3871 , - 3824 , - 4337 , - 930 , - 2563 , - 276 , - 3029 , - 1862 , - 1255 , - 1208 , - 1721 , - 2794 , - 4427 , - 2140 , - 413 , - 3726 , - 3119 , - 3072 , - 3585 , - 178 , - 1811 , - 4004 , - 2277 , - 1110 , - 503 , - 456 , - 969 , - 2042 , - 3675 , - 1388 , - 4141 , - 2974 , - 2367 , - 2320 , - 2833 , - 3906 , - 1059 , - 3252 , - 1525 , - 358 , - 4231 , - 4184 , - 217 , - 1290 , - 2923 , - 636 , - 3389 , - 2222 , - 1615 , - 1568 , - 2081 , - 3154 , - 307 , - 2500 , - 773 , - 4086 , - 3479 , - 3432 , - 3945 , - 538 , - 2171 , - 4364 , - 2637 , - 1470 , - 863 , - 816 , - 1329 , - 2402 , - 4035 , - 1748 , - 21 , - 3334 , - 2727 , - 2680 , - 3193 , - 4266 , - 1419 , - 3612 , - 1885 , - 718 , - 111 , - 64 , - 577 , - 1650 , - 3283 , - 996 , - 3749 , - 2582 , - 1975 , - 1928 , - 2441 , - 3514 , - 667 , - 2860 , - 1133 , - 4446 , - 3839 , - 3792 , - 4305 , - 898 , - 2531 , - 244 , - 2997 , - 1830 , - 1223 , - 1176 , - 1689 , - 2762 , - 4395 , - 2108 , - 381 , - 3694 , - 3087 , - 3040 , - 3553 , - 146 , - 1779 , - 3972 , - 2245 , - 1078 , - 471 , - 424 , - 937 , - 2010 , - 3643 , - 1356 , - 4109 , - 2942 , - 2335 , - 2288 , - 2801 , - 3874 , - 1027 , - 3220 , - 1493 , - 326 , - 4199 , - 4152 , - 185 , - 1258 , - 2891 , - 604 , - 3357 , - 2190 , - 1583 , - 1536 , - 2049 , - 3122 , - 275 , - 2468 , - 741 , - 4054 , - 3447 , - 3400 , - 3913 , - 506 , - 2139 , - 4332 , - 2605 , - 1438 , - 831 , - 784 , - 1297 , - 2370 , - 4003 , - 1716 , - 4469 , - 3302 , - 2695 , - 2648 , - 3161 , - 4234 , - 1387 , - 3580 , - 1853 , - 686 , - 79 , - 32 , - 545 , - 1618 , - 3251 , - 964 , - 3717 , - 2550 , - 1943 , - 1896 , - 2409 , - 3482 , - 635 , - 2828 , - 1101 , - 4414 , - 3807 , - 3760 , - 4273 , - 866 , - 2499 , - 212 , - 2965 , - 1798 , - 1191 , - 1144 , - 1657 , - 2730 , - 4363 , - 2076 , - 349 , - 3662 , - 3055 , - 3008 , - 3521 , - 114 , - 1747 , - 3940 , - 2213 , - 1046 , - 439 , - 392 , - 905 , - 1978 , - 3611 , - 1324 , - 4077 , - 2910 , - 2303 , - 2256 , - 2769 , - 3842 , - 995 , - 3188 , - 1461 , - 294 , - 4167 , - 4120 , - 153 , - 1226 , - 2859 , - 572 , - 3325 , - 2158 , - 1551 , - 1504 , - 2017 , - 3090 , - 243 , - 2436 , - 709 , - 4022 , - 3415 , - 3368 , - 3881 , - 474 , - 2107 , - 4300 , - 2573 , - 1406 , - 799 , - 752 , - 1265 , - 2338 , - 3971 , - 1684 , - 4437 , - 3270 , - 2663 , - 2616 , - 3129 , - 4202 , - 1355 , - 3548 , - 1821 , - 654 , - 47 , - 0 , - 499 , - 1282 , - 2349 , - 3700 , - 791 , - 2710 , - 369 , - 2856 , - 1083 , - 4138 , - 2933 , - 2012 , - 1375 , - 1022 , - 953 , - 1168 , - 1667 , - 2450 , - 3517 , - 324 , - 1959 , - 3878 , - 1537 , - 4024 , - 2251 , - 762 , - 4101 , - 3180 , - 2543 , - 2190 , - 2121 , - 2336 , - 2835 , - 3618 , - 141 , - 1492 , - 3127 , - 502 , - 2705 , - 648 , - 3419 , - 1930 , - 725 , - 4348 , - 3711 , - 3358 , - 3289 , - 3504 , - 4003 , - 242 , - 1309 , - 2660 , - 4295 , - 1670 , - 3873 , - 1816 , - 43 , - 3098 , - 1893 , - 972 , - 335 , - 4526 , - 4457 , - 128 , - 627 , - 1410 , - 2477 , - 3828 , - 919 , - 2838 , - 497 , - 2984 , - 1211 , - 4266 , - 3061 , - 2140 , - 1503 , - 1150 , - 1081 , - 1296 , - 1795 , - 2578 , - 3645 , - 452 , - 2087 , - 4006 , - 1665 , - 4152 , - 2379 , - 890 , - 4229 , - 3308 , - 2671 , - 2318 , - 2249 , - 2464 , - 2963 , - 3746 , - 269 , - 1620 , - 3255 , - 630 , - 2833 , - 776 , - 3547 , - 2058 , - 853 , - 4476 , - 3839 , - 3486 , - 3417 , - 3632 , - 4131 , - 370 , - 1437 , - 2788 , - 4423 , - 1798 , - 4001 , - 1944 , - 171 , - 3226 , - 2021 , - 1100 , - 463 , - 110 , - 41 , - 256 , - 755 , - 1538 , - 2605 , - 3956 , - 1047 , - 2966 , - 625 , - 3112 , - 1339 , - 4394 , - 3189 , - 2268 , - 1631 , - 1278 , - 1209 , - 1424 , - 1923 , - 2706 , - 3773 , - 580 , - 2215 , - 4134 , - 1793 , - 4280 , - 2507 , - 1018 , - 4357 , - 3436 , - 2799 , - 2446 , - 2377 , - 2592 , - 3091 , - 3874 , - 397 , - 1748 , - 3383 , - 758 , - 2961 , - 904 , - 3675 , - 2186 , - 981 , - 60 , - 3967 , - 3614 , - 3545 , - 3760 , - 4259 , - 498 , - 1565 , - 2916 , - 7 , - 1926 , - 4129 , - 2072 , - 299 , - 3354 , - 2149 , - 1228 , - 591 , - 238 , - 169 , - 384 , - 883 , - 1666 , - 2733 , - 4084 , - 1175 , - 3094 , - 753 , - 3240 , - 1467 , - 4522 , - 3317 , - 2396 , - 1759 , - 1406 , - 1337 , - 1552 , - 2051 , - 2834 , - 3901 , - 708 , - 2343 , - 4262 , - 1921 , - 4408 , - 2635 , - 1146 , - 4485 , - 3564 , - 2927 , - 2574 , - 2505 , - 2720 , - 3219 , - 4002 , - 525 , - 1876 , - 3511 , - 886 , - 3089 , - 1032 , - 3803 , - 2314 , - 1109 , - 188 , - 4095 , - 3742 , - 3673 , - 3888 , - 4387 , - 626 , - 1693 , - 3044 , - 135 , - 2054 , - 4257 , - 2200 , - 427 , - 3482 , - 2277 , - 1356 , - 719 , - 366 , - 297 , - 512 , - 1011 , - 1794 , - 2861 , - 4212 , - 1303 , - 3222 , - 881 , - 3368 , - 1595 , - 106 , - 3445 , - 2524 , - 1887 , - 1534 , - 1465 , - 1680 , - 2179 , - 2962 , - 4029 , - 836 , - 2471 , - 4390 , - 2049 , - 4536 , - 2763 , - 1274 , - 69 , - 3692 , - 3055 , - 2702 , - 2633 , - 2848 , - 3347 , - 4130 , - 653 , - 2004 , - 3639 , - 1014 , - 3217 , - 1160 , - 3931 , - 2442 , - 1237 , - 316 , - 4223 , - 3870 , - 3801 , - 4016 , - 4515 , - 754 , - 1821 , - 3172 , - 263 , - 2182 , - 4385 , - 2328 , - 555 , - 3610 , - 2405 , - 1484 , - 847 , - 494 , - 425 , - 640 , - 1139 , - 1922 , - 2989 , - 4340 , - 1431 , - 3350 , - 1009 , - 3496 , - 1723 , - 234 , - 3573 , - 2652 , - 2015 , - 1662 , - 1593 , - 1808 , - 2307 , - 3090 , - 4157 , - 964 , - 2599 , - 4518 , - 2177 , - 120 , - 2891 , - 1402 , - 197 , - 3820 , - 3183 , - 2830 , - 2761 , - 2976 , - 3475 , - 4258 , - 781 , - 2132 , - 3767 , - 1142 , - 3345 , - 1288 , - 4059 , - 2570 , - 1365 , - 444 , - 4351 , - 3998 , - 3929 , - 4144 , - 99 , - 882 , - 1949 , - 3300 , - 391 , - 2310 , - 4513 , - 2456 , - 683 , - 3738 , - 2533 , - 1612 , - 975 , - 622 , - 553 , - 768 , - 1267 , - 2050 , - 3117 , - 4468 , - 1559 , - 3478 , - 1137 , - 3624 , - 1851 , - 362 , - 3701 , - 2780 , - 2143 , - 1790 , - 1721 , - 1936 , - 2435 , - 3218 , - 4285 , - 1092 , - 2727 , - 102 , - 2305 , - 248 , - 3019 , - 1530 , - 325 , - 3948 , - 3311 , - 2958 , - 2889 , - 3104 , - 3603 , - 4386 , - 909 , - 2260 , - 3895 , - 1270 , - 3473 , - 1416 , - 4187 , - 2698 , - 1493 , - 572 , - 4479 , - 4126 , - 4057 , - 4272 , - 227 , - 1010 , - 2077 , - 3428 , - 519 , - 2438 , - 97 , - 2584 , - 811 , - 3866 , - 2661 , - 1740 , - 1103 , - 750 , - 681 , - 896 , - 1395 , - 2178 , - 3245 , - 52 , - 1687 , - 3606 , - 1265 , - 3752 , - 1979 , - 490 , - 3829 , - 2908 , - 2271 , - 1918 , - 1849 , - 2064 , - 2563 , - 3346 , - 4413 , - 1220 , - 2855 , - 230 , - 2433 , - 376 , - 3147 , - 1658 , - 453 , - 4076 , - 3439 , - 3086 , - 3017 , - 3232 , - 3731 , - 4514 , - 1037 , - 2388 , - 4023 , - 1398 , - 3601 , - 1544 , - 4315 , - 2826 , - 1621 , - 700 , - 63 , - 4254 , - 4185 , - 4400 , - 355 , - 1138 , - 2205 , - 3556 , - 647 , - 2566 , - 225 , - 2712 , - 939 , - 3994 , - 2789 , - 1868 , - 1231 , - 878 , - 809 , - 1024 , - 1523 , - 2306 , - 3373 , - 180 , - 1815 , - 3734 , - 1393 , - 3880 , - 2107 , - 618 , - 3957 , - 3036 , - 2399 , - 2046 , - 1977 , - 2192 , - 2691 , - 3474 , - 4541 , - 1348 , - 2983 , - 358 , - 2561 , - 504 , - 3275 , - 1786 , - 581 , - 4204 , - 3567 , - 3214 , - 3145 , - 3360 , - 3859 , - 98 , - 1165 , - 2516 , - 4151 , - 1526 , - 3729 , - 1672 , - 4443 , - 2954 , - 1749 , - 828 , - 191 , - 4382 , - 4313 , - 4528 , - 483 , - 1266 , - 2333 , - 3684 , - 775 , - 2694 , - 353 , - 2840 , - 1067 , - 4122 , - 2917 , - 1996 , - 1359 , - 1006 , - 937 , - 1152 , - 1651 , - 2434 , - 3501 , - 308 , - 1943 , - 3862 , - 1521 , - 4008 , - 2235 , - 746 , - 4085 , - 3164 , - 2527 , - 2174 , - 2105 , - 2320 , - 2819 , - 3602 , - 125 , - 1476 , - 3111 , - 486 , - 2689 , - 632 , - 3403 , - 1914 , - 709 , - 4332 , - 3695 , - 3342 , - 3273 , - 3488 , - 3987 , - 226 , - 1293 , - 2644 , - 4279 , - 1654 , - 3857 , - 1800 , - 27 , - 3082 , - 1877 , - 956 , - 319 , - 4510 , - 4441 , - 112 , - 611 , - 1394 , - 2461 , - 3812 , - 903 , - 2822 , - 481 , - 2968 , - 1195 , - 4250 , - 3045 , - 2124 , - 1487 , - 1134 , - 1065 , - 1280 , - 1779 , - 2562 , - 3629 , - 436 , - 2071 , - 3990 , - 1649 , - 4136 , - 2363 , - 874 , - 4213 , - 3292 , - 2655 , - 2302 , - 2233 , - 2448 , - 2947 , - 3730 , - 253 , - 1604 , - 3239 , - 614 , - 2817 , - 760 , - 3531 , - 2042 , - 837 , - 4460 , - 3823 , - 3470 , - 3401 , - 3616 , - 4115 , - 354 , - 1421 , - 2772 , - 4407 , - 1782 , - 3985 , - 1928 , - 155 , - 3210 , - 2005 , - 1084 , - 447 , - 94 , - 25 , - 240 , - 739 , - 1522 , - 2589 , - 3940 , - 1031 , - 2950 , - 609 , - 3096 , - 1323 , - 4378 , - 3173 , - 2252 , - 1615 , - 1262 , - 1193 , - 1408 , - 1907 , - 2690 , - 3757 , - 564 , - 2199 , - 4118 , - 1777 , - 4264 , - 2491 , - 1002 , - 4341 , - 3420 , - 2783 , - 2430 , - 2361 , - 2576 , - 3075 , - 3858 , - 381 , - 1732 , - 3367 , - 742 , - 2945 , - 888 , - 3659 , - 2170 , - 965 , - 44 , - 3951 , - 3598 , - 3529 , - 3744 , - 4243 , - 482 , - 1549 , - 2900 , - 4535 , - 1910 , - 4113 , - 2056 , - 283 , - 3338 , - 2133 , - 1212 , - 575 , - 222 , - 153 , - 368 , - 867 , - 1650 , - 2717 , - 4068 , - 1159 , - 3078 , - 737 , - 3224 , - 1451 , - 4506 , - 3301 , - 2380 , - 1743 , - 1390 , - 1321 , - 1536 , - 2035 , - 2818 , - 3885 , - 692 , - 2327 , - 4246 , - 1905 , - 4392 , - 2619 , - 1130 , - 4469 , - 3548 , - 2911 , - 2558 , - 2489 , - 2704 , - 3203 , - 3986 , - 509 , - 1860 , - 3495 , - 870 , - 3073 , - 1016 , - 3787 , - 2298 , - 1093 , - 172 , - 4079 , - 3726 , - 3657 , - 3872 , - 4371 , - 610 , - 1677 , - 3028 , - 119 , - 2038 , - 4241 , - 2184 , - 411 , - 3466 , - 2261 , - 1340 , - 703 , - 350 , - 281 , - 496 , - 995 , - 1778 , - 2845 , - 4196 , - 1287 , - 3206 , - 865 , - 3352 , - 1579 , - 90 , - 3429 , - 2508 , - 1871 , - 1518 , - 1449 , - 1664 , - 2163 , - 2946 , - 4013 , - 820 , - 2455 , - 4374 , - 2033 , - 4520 , - 2747 , - 1258 , - 53 , - 3676 , - 3039 , - 2686 , - 2617 , - 2832 , - 3331 , - 4114 , - 637 , - 1988 , - 3623 , - 998 , - 3201 , - 1144 , - 3915 , - 2426 , - 1221 , - 300 , - 4207 , - 3854 , - 3785 , - 4000 , - 4499 , - 738 , - 1805 , - 3156 , - 247 , - 2166 , - 4369 , - 2312 , - 539 , - 3594 , - 2389 , - 1468 , - 831 , - 478 , - 409 , - 624 , - 1123 , - 1906 , - 2973 , - 4324 , - 1415 , - 3334 , - 993 , - 3480 , - 1707 , - 218 , - 3557 , - 2636 , - 1999 , - 1646 , - 1577 , - 1792 , - 2291 , - 3074 , - 4141 , - 948 , - 2583 , - 4502 , - 2161 , - 104 , - 2875 , - 1386 , - 181 , - 3804 , - 3167 , - 2814 , - 2745 , - 2960 , - 3459 , - 4242 , - 765 , - 2116 , - 3751 , - 1126 , - 3329 , - 1272 , - 4043 , - 2554 , - 1349 , - 428 , - 4335 , - 3982 , - 3913 , - 4128 , - 83 , - 866 , - 1933 , - 3284 , - 375 , - 2294 , - 4497 , - 2440 , - 667 , - 3722 , - 2517 , - 1596 , - 959 , - 606 , - 537 , - 752 , - 1251 , - 2034 , - 3101 , - 4452 , - 1543 , - 3462 , - 1121 , - 3608 , - 1835 , - 346 , - 3685 , - 2764 , - 2127 , - 1774 , - 1705 , - 1920 , - 2419 , - 3202 , - 4269 , - 1076 , - 2711 , - 86 , - 2289 , - 232 , - 3003 , - 1514 , - 309 , - 3932 , - 3295 , - 2942 , - 2873 , - 3088 , - 3587 , - 4370 , - 893 , - 2244 , - 3879 , - 1254 , - 3457 , - 1400 , - 4171 , - 2682 , - 1477 , - 556 , - 4463 , - 4110 , - 4041 , - 4256 , - 211 , - 994 , - 2061 , - 3412 , - 503 , - 2422 , - 81 , - 2568 , - 795 , - 3850 , - 2645 , - 1724 , - 1087 , - 734 , - 665 , - 880 , - 1379 , - 2162 , - 3229 , - 36 , - 1671 , - 3590 , - 1249 , - 3736 , - 1963 , - 474 , - 3813 , - 2892 , - 2255 , - 1902 , - 1833 , - 2048 , - 2547 , - 3330 , - 4397 , - 1204 , - 2839 , - 214 , - 2417 , - 360 , - 3131 , - 1642 , - 437 , - 4060 , - 3423 , - 3070 , - 3001 , - 3216 , - 3715 , - 4498 , - 1021 , - 2372 , - 4007 , - 1382 , - 3585 , - 1528 , - 4299 , - 2810 , - 1605 , - 684 , - 47 , - 4238 , - 4169 , - 4384 , - 339 , - 1122 , - 2189 , - 3540 , - 631 , - 2550 , - 209 , - 2696 , - 923 , - 3978 , - 2773 , - 1852 , - 1215 , - 862 , - 793 , - 1008 , - 1507 , - 2290 , - 3357 , - 164 , - 1799 , - 3718 , - 1377 , - 3864 , - 2091 , - 602 , - 3941 , - 3020 , - 2383 , - 2030 , - 1961 , - 2176 , - 2675 , - 3458 , - 4525 , - 1332 , - 2967 , - 342 , - 2545 , - 488 , - 3259 , - 1770 , - 565 , - 4188 , - 3551 , - 3198 , - 3129 , - 3344 , - 3843 , - 82 , - 1149 , - 2500 , - 4135 , - 1510 , - 3713 , - 1656 , - 4427 , - 2938 , - 1733 , - 812 , - 175 , - 4366 , - 4297 , - 4512 , - 467 , - 1250 , - 2317 , - 3668 , - 759 , - 2678 , - 337 , - 2824 , - 1051 , - 4106 , - 2901 , - 1980 , - 1343 , - 990 , - 921 , - 1136 , - 1635 , - 2418 , - 3485 , - 292 , - 1927 , - 3846 , - 1505 , - 3992 , - 2219 , - 730 , - 4069 , - 3148 , - 2511 , - 2158 , - 2089 , - 2304 , - 2803 , - 3586 , - 109 , - 1460 , - 3095 , - 470 , - 2673 , - 616 , - 3387 , - 1898 , - 693 , - 4316 , - 3679 , - 3326 , - 3257 , - 3472 , - 3971 , - 210 , - 1277 , - 2628 , - 4263 , - 1638 , - 3841 , - 1784 , - 11 , - 3066 , - 1861 , - 940 , - 303 , - 4494 , - 4425 , - 96 , - 595 , - 1378 , - 2445 , - 3796 , - 887 , - 2806 , - 465 , - 2952 , - 1179 , - 4234 , - 3029 , - 2108 , - 1471 , - 1118 , - 1049 , - 1264 , - 1763 , - 2546 , - 3613 , - 420 , - 2055 , - 3974 , - 1633 , - 4120 , - 2347 , - 858 , - 4197 , - 3276 , - 2639 , - 2286 , - 2217 , - 2432 , - 2931 , - 3714 , - 237 , - 1588 , - 3223 , - 598 , - 2801 , - 744 , - 3515 , - 2026 , - 821 , - 4444 , - 3807 , - 3454 , - 3385 , - 3600 , - 4099 , - 338 , - 1405 , - 2756 , - 4391 , - 1766 , - 3969 , - 1912 , - 139 , - 3194 , - 1989 , - 1068 , - 431 , - 78 , - 9 , - 224 , - 723 , - 1506 , - 2573 , - 3924 , - 1015 , - 2934 , - 593 , - 3080 , - 1307 , - 4362 , - 3157 , - 2236 , - 1599 , - 1246 , - 1177 , - 1392 , - 1891 , - 2674 , - 3741 , - 548 , - 2183 , - 4102 , - 1761 , - 4248 , - 2475 , - 986 , - 4325 , - 3404 , - 2767 , - 2414 , - 2345 , - 2560 , - 3059 , - 3842 , - 365 , - 1716 , - 3351 , - 726 , - 2929 , - 872 , - 3643 , - 2154 , - 949 , - 28 , - 3935 , - 3582 , - 3513 , - 3728 , - 4227 , - 466 , - 1533 , - 2884 , - 4519 , - 1894 , - 4097 , - 2040 , - 267 , - 3322 , - 2117 , - 1196 , - 559 , - 206 , - 137 , - 352 , - 851 , - 1634 , - 2701 , - 4052 , - 1143 , - 3062 , - 721 , - 3208 , - 1435 , - 4490 , - 3285 , - 2364 , - 1727 , - 1374 , - 1305 , - 1520 , - 2019 , - 2802 , - 3869 , - 676 , - 2311 , - 4230 , - 1889 , - 4376 , - 2603 , - 1114 , - 4453 , - 3532 , - 2895 , - 2542 , - 2473 , - 2688 , - 3187 , - 3970 , - 493 , - 1844 , - 3479 , - 854 , - 3057 , - 1000 , - 3771 , - 2282 , - 1077 , - 156 , - 4063 , - 3710 , - 3641 , - 3856 , - 4355 , - 594 , - 1661 , - 3012 , - 103 , - 2022 , - 4225 , - 2168 , - 395 , - 3450 , - 2245 , - 1324 , - 687 , - 334 , - 265 , - 480 , - 979 , - 1762 , - 2829 , - 4180 , - 1271 , - 3190 , - 849 , - 3336 , - 1563 , - 74 , - 3413 , - 2492 , - 1855 , - 1502 , - 1433 , - 1648 , - 2147 , - 2930 , - 3997 , - 804 , - 2439 , - 4358 , - 2017 , - 4504 , - 2731 , - 1242 , - 37 , - 3660 , - 3023 , - 2670 , - 2601 , - 2816 , - 3315 , - 4098 , - 621 , - 1972 , - 3607 , - 982 , - 3185 , - 1128 , - 3899 , - 2410 , - 1205 , - 284 , - 4191 , - 3838 , - 3769 , - 3984 , - 4483 , - 722 , - 1789 , - 3140 , - 231 , - 2150 , - 4353 , - 2296 , - 523 , - 3578 , - 2373 , - 1452 , - 815 , - 462 , - 393 , - 608 , - 1107 , - 1890 , - 2957 , - 4308 , - 1399 , - 3318 , - 977 , - 3464 , - 1691 , - 202 , - 3541 , - 2620 , - 1983 , - 1630 , - 1561 , - 1776 , - 2275 , - 3058 , - 4125 , - 932 , - 2567 , - 4486 , - 2145 , - 88 , - 2859 , - 1370 , - 165 , - 3788 , - 3151 , - 2798 , - 2729 , - 2944 , - 3443 , - 4226 , - 749 , - 2100 , - 3735 , - 1110 , - 3313 , - 1256 , - 4027 , - 2538 , - 1333 , - 412 , - 4319 , - 3966 , - 3897 , - 4112 , - 67 , - 850 , - 1917 , - 3268 , - 359 , - 2278 , - 4481 , - 2424 , - 651 , - 3706 , - 2501 , - 1580 , - 943 , - 590 , - 521 , - 736 , - 1235 , - 2018 , - 3085 , - 4436 , - 1527 , - 3446 , - 1105 , - 3592 , - 1819 , - 330 , - 3669 , - 2748 , - 2111 , - 1758 , - 1689 , - 1904 , - 2403 , - 3186 , - 4253 , - 1060 , - 2695 , - 70 , - 2273 , - 216 , - 2987 , - 1498 , - 293 , - 3916 , - 3279 , - 2926 , - 2857 , - 3072 , - 3571 , - 4354 , - 877 , - 2228 , - 3863 , - 1238 , - 3441 , - 1384 , - 4155 , - 2666 , - 1461 , - 540 , - 4447 , - 4094 , - 4025 , - 4240 , - 195 , - 978 , - 2045 , - 3396 , - 487 , - 2406 , - 65 , - 2552 , - 779 , - 3834 , - 2629 , - 1708 , - 1071 , - 718 , - 649 , - 864 , - 1363 , - 2146 , - 3213 , - 20 , - 1655 , - 3574 , - 1233 , - 3720 , - 1947 , - 458 , - 3797 , - 2876 , - 2239 , - 1886 , - 1817 , - 2032 , - 2531 , - 3314 , - 4381 , - 1188 , - 2823 , - 198 , - 2401 , - 344 , - 3115 , - 1626 , - 421 , - 4044 , - 3407 , - 3054 , - 2985 , - 3200 , - 3699 , - 4482 , - 1005 , - 2356 , - 3991 , - 1366 , - 3569 , - 1512 , - 4283 , - 2794 , - 1589 , - 668 , - 31 , - 4222 , - 4153 , - 4368 , - 323 , - 1106 , - 2173 , - 3524 , - 615 , - 2534 , - 193 , - 2680 , - 907 , - 3962 , - 2757 , - 1836 , - 1199 , - 846 , - 777 , - 992 , - 1491 , - 2274 , - 3341 , - 148 , - 1783 , - 3702 , - 1361 , - 3848 , - 2075 , - 586 , - 3925 , - 3004 , - 2367 , - 2014 , - 1945 , - 2160 , - 2659 , - 3442 , - 4509 , - 1316 , - 2951 , - 326 , - 2529 , - 472 , - 3243 , - 1754 , - 549 , - 4172 , - 3535 , - 3182 , - 3113 , - 3328 , - 3827 , - 66 , - 1133 , - 2484 , - 4119 , - 1494 , - 3697 , - 1640 , - 4411 , - 2922 , - 1717 , - 796 , - 159 , - 4350 , - 4281 , - 4496 , - 451 , - 1234 , - 2301 , - 3652 , - 743 , - 2662 , - 321 , - 2808 , - 1035 , - 4090 , - 2885 , - 1964 , - 1327 , - 974 , - 905 , - 1120 , - 1619 , - 2402 , - 3469 , - 276 , - 1911 , - 3830 , - 1489 , - 3976 , - 2203 , - 714 , - 4053 , - 3132 , - 2495 , - 2142 , - 2073 , - 2288 , - 2787 , - 3570 , - 93 , - 1444 , - 3079 , - 454 , - 2657 , - 600 , - 3371 , - 1882 , - 677 , - 4300 , - 3663 , - 3310 , - 3241 , - 3456 , - 3955 , - 194 , - 1261 , - 2612 , - 4247 , - 1622 , - 3825 , - 1768 , - 4539 , - 3050 , - 1845 , - 924 , - 287 , - 4478 , - 4409 , - 80 , - 579 , - 1362 , - 2429 , - 3780 , - 871 , - 2790 , - 449 , - 2936 , - 1163 , - 4218 , - 3013 , - 2092 , - 1455 , - 1102 , - 1033 , - 1248 , - 1747 , - 2530 , - 3597 , - 404 , - 2039 , - 3958 , - 1617 , - 4104 , - 2331 , - 842 , - 4181 , - 3260 , - 2623 , - 2270 , - 2201 , - 2416 , - 2915 , - 3698 , - 221 , - 1572 , - 3207 , - 582 , - 2785 , - 728 , - 3499 , - 2010 , - 805 , - 4428 , - 3791 , - 3438 , - 3369 , - 3584 , - 4083 , - 322 , - 1389 , - 2740 , - 4375 , - 1750 , - 3953 , - 1896 , - 123 , - 3178 , - 1973 , - 1052 , - 415 , - 62 , - 4537 , - 208 , - 707 , - 1490 , - 2557 , - 3908 , - 999 , - 2918 , - 577 , - 3064 , - 1291 , - 4346 , - 3141 , - 2220 , - 1583 , - 1230 , - 1161 , - 1376 , - 1875 , - 2658 , - 3725 , - 532 , - 2167 , - 4086 , - 1745 , - 4232 , - 2459 , - 970 , - 4309 , - 3388 , - 2751 , - 2398 , - 2329 , - 2544 , - 3043 , - 3826 , - 349 , - 1700 , - 3335 , - 710 , - 2913 , - 856 , - 3627 , - 2138 , - 933 , - 12 , - 3919 , - 3566 , - 3497 , - 3712 , - 4211 , - 450 , - 1517 , - 2868 , - 4503 , - 1878 , - 4081 , - 2024 , - 251 , - 3306 , - 2101 , - 1180 , - 543 , - 190 , - 121 , - 336 , - 835 , - 1618 , - 2685 , - 4036 , - 1127 , - 3046 , - 705 , - 3192 , - 1419 , - 4474 , - 3269 , - 2348 , - 1711 , - 1358 , - 1289 , - 1504 , - 2003 , - 2786 , - 3853 , - 660 , - 2295 , - 4214 , - 1873 , - 4360 , - 2587 , - 1098 , - 4437 , - 3516 , - 2879 , - 2526 , - 2457 , - 2672 , - 3171 , - 3954 , - 477 , - 1828 , - 3463 , - 838 , - 3041 , - 984 , - 3755 , - 2266 , - 1061 , - 140 , - 4047 , - 3694 , - 3625 , - 3840 , - 4339 , - 578 , - 1645 , - 2996 , - 87 , - 2006 , - 4209 , - 2152 , - 379 , - 3434 , - 2229 , - 1308 , - 671 , - 318 , - 249 , - 464 , - 963 , - 1746 , - 2813 , - 4164 , - 1255 , - 3174 , - 833 , - 3320 , - 1547 , - 58 , - 3397 , - 2476 , - 1839 , - 1486 , - 1417 , - 1632 , - 2131 , - 2914 , - 3981 , - 788 , - 2423 , - 4342 , - 2001 , - 4488 , - 2715 , - 1226 , - 21 , - 3644 , - 3007 , - 2654 , - 2585 , - 2800 , - 3299 , - 4082 , - 605 , - 1956 , - 3591 , - 966 , - 3169 , - 1112 , - 3883 , - 2394 , - 1189 , - 268 , - 4175 , - 3822 , - 3753 , - 3968 , - 4467 , - 706 , - 1773 , - 3124 , - 215 , - 2134 , - 4337 , - 2280 , - 507 , - 3562 , - 2357 , - 1436 , - 799 , - 446 , - 377 , - 592 , - 1091 , - 1874 , - 2941 , - 4292 , - 1383 , - 3302 , - 961 , - 3448 , - 1675 , - 186 , - 3525 , - 2604 , - 1967 , - 1614 , - 1545 , - 1760 , - 2259 , - 3042 , - 4109 , - 916 , - 2551 , - 4470 , - 2129 , - 72 , - 2843 , - 1354 , - 149 , - 3772 , - 3135 , - 2782 , - 2713 , - 2928 , - 3427 , - 4210 , - 733 , - 2084 , - 3719 , - 1094 , - 3297 , - 1240 , - 4011 , - 2522 , - 1317 , - 396 , - 4303 , - 3950 , - 3881 , - 4096 , - 51 , - 834 , - 1901 , - 3252 , - 343 , - 2262 , - 4465 , - 2408 , - 635 , - 3690 , - 2485 , - 1564 , - 927 , - 574 , - 505 , - 720 , - 1219 , - 2002 , - 3069 , - 4420 , - 1511 , - 3430 , - 1089 , - 3576 , - 1803 , - 314 , - 3653 , - 2732 , - 2095 , - 1742 , - 1673 , - 1888 , - 2387 , - 3170 , - 4237 , - 1044 , - 2679 , - 54 , - 2257 , - 200 , - 2971 , - 1482 , - 277 , - 3900 , - 3263 , - 2910 , - 2841 , - 3056 , - 3555 , - 4338 , - 861 , - 2212 , - 3847 , - 1222 , - 3425 , - 1368 , - 4139 , - 2650 , - 1445 , - 524 , - 4431 , - 4078 , - 4009 , - 4224 , - 179 , - 962 , - 2029 , - 3380 , - 471 , - 2390 , - 49 , - 2536 , - 763 , - 3818 , - 2613 , - 1692 , - 1055 , - 702 , - 633 , - 848 , - 1347 , - 2130 , - 3197 , - 4 , - 1639 , - 3558 , - 1217 , - 3704 , - 1931 , - 442 , - 3781 , - 2860 , - 2223 , - 1870 , - 1801 , - 2016 , - 2515 , - 3298 , - 4365 , - 1172 , - 2807 , - 182 , - 2385 , - 328 , - 3099 , - 1610 , - 405 , - 4028 , - 3391 , - 3038 , - 2969 , - 3184 , - 3683 , - 4466 , - 989 , - 2340 , - 3975 , - 1350 , - 3553 , - 1496 , - 4267 , - 2778 , - 1573 , - 652 , - 15 , - 4206 , - 4137 , - 4352 , - 307 , - 1090 , - 2157 , - 3508 , - 599 , - 2518 , - 177 , - 2664 , - 891 , - 3946 , - 2741 , - 1820 , - 1183 , - 830 , - 761 , - 976 , - 1475 , - 2258 , - 3325 , - 132 , - 1767 , - 3686 , - 1345 , - 3832 , - 2059 , - 570 , - 3909 , - 2988 , - 2351 , - 1998 , - 1929 , - 2144 , - 2643 , - 3426 , - 4493 , - 1300 , - 2935 , - 310 , - 2513 , - 456 , - 3227 , - 1738 , - 533 , - 4156 , - 3519 , - 3166 , - 3097 , - 3312 , - 3811 , - 50 , - 1117 , - 2468 , - 4103 , - 1478 , - 3681 , - 1624 , - 4395 , - 2906 , - 1701 , - 780 , - 143 , - 4334 , - 4265 , - 4480 , - 435 , - 1218 , - 2285 , - 3636 , - 727 , - 2646 , - 305 , - 2792 , - 1019 , - 4074 , - 2869 , - 1948 , - 1311 , - 958 , - 889 , - 1104 , - 1603 , - 2386 , - 3453 , - 260 , - 1895 , - 3814 , - 1473 , - 3960 , - 2187 , - 698 , - 4037 , - 3116 , - 2479 , - 2126 , - 2057 , - 2272 , - 2771 , - 3554 , - 77 , - 1428 , - 3063 , - 438 , - 2641 , - 584 , - 3355 , - 1866 , - 661 , - 4284 , - 3647 , - 3294 , - 3225 , - 3440 , - 3939 , - 178 , - 1245 , - 2596 , - 4231 , - 1606 , - 3809 , - 1752 , - 4523 , - 3034 , - 1829 , - 908 , - 271 , - 4462 , - 4393 , - 64 , - 563 , - 1346 , - 2413 , - 3764 , - 855 , - 2774 , - 433 , - 2920 , - 1147 , - 4202 , - 2997 , - 2076 , - 1439 , - 1086 , - 1017 , - 1232 , - 1731 , - 2514 , - 3581 , - 388 , - 2023 , - 3942 , - 1601 , - 4088 , - 2315 , - 826 , - 4165 , - 3244 , - 2607 , - 2254 , - 2185 , - 2400 , - 2899 , - 3682 , - 205 , - 1556 , - 3191 , - 566 , - 2769 , - 712 , - 3483 , - 1994 , - 789 , - 4412 , - 3775 , - 3422 , - 3353 , - 3568 , - 4067 , - 306 , - 1373 , - 2724 , - 4359 , - 1734 , - 3937 , - 1880 , - 107 , - 3162 , - 1957 , - 1036 , - 399 , - 46 , - 4521 , - 192 , - 691 , - 1474 , - 2541 , - 3892 , - 983 , - 2902 , - 561 , - 3048 , - 1275 , - 4330 , - 3125 , - 2204 , - 1567 , - 1214 , - 1145 , - 1360 , - 1859 , - 2642 , - 3709 , - 516 , - 2151 , - 4070 , - 1729 , - 4216 , - 2443 , - 954 , - 4293 , - 3372 , - 2735 , - 2382 , - 2313 , - 2528 , - 3027 , - 3810 , - 333 , - 1684 , - 3319 , - 694 , - 2897 , - 840 , - 3611 , - 2122 , - 917 , - 4540 , - 3903 , - 3550 , - 3481 , - 3696 , - 4195 , - 434 , - 1501 , - 2852 , - 4487 , - 1862 , - 4065 , - 2008 , - 235 , - 3290 , - 2085 , - 1164 , - 527 , - 174 , - 105 , - 320 , - 819 , - 1602 , - 2669 , - 4020 , - 1111 , - 3030 , - 689 , - 3176 , - 1403 , - 4458 , - 3253 , - 2332 , - 1695 , - 1342 , - 1273 , - 1488 , - 1987 , - 2770 , - 3837 , - 644 , - 2279 , - 4198 , - 1857 , - 4344 , - 2571 , - 1082 , - 4421 , - 3500 , - 2863 , - 2510 , - 2441 , - 2656 , - 3155 , - 3938 , - 461 , - 1812 , - 3447 , - 822 , - 3025 , - 968 , - 3739 , - 2250 , - 1045 , - 124 , - 4031 , - 3678 , - 3609 , - 3824 , - 4323 , - 562 , - 1629 , - 2980 , - 71 , - 1990 , - 4193 , - 2136 , - 363 , - 3418 , - 2213 , - 1292 , - 655 , - 302 , - 233 , - 448 , - 947 , - 1730 , - 2797 , - 4148 , - 1239 , - 3158 , - 817 , - 3304 , - 1531 , - 42 , - 3381 , - 2460 , - 1823 , - 1470 , - 1401 , - 1616 , - 2115 , - 2898 , - 3965 , - 772 , - 2407 , - 4326 , - 1985 , - 4472 , - 2699 , - 1210 , - 5 , - 3628 , - 2991 , - 2638 , - 2569 , - 2784 , - 3283 , - 4066 , - 589 , - 1940 , - 3575 , - 950 , - 3153 , - 1096 , - 3867 , - 2378 , - 1173 , - 252 , - 4159 , - 3806 , - 3737 , - 3952 , - 4451 , - 690 , - 1757 , - 3108 , - 199 , - 2118 , - 4321 , - 2264 , - 491 , - 3546 , - 2341 , - 1420 , - 783 , - 430 , - 361 , - 576 , - 1075 , - 1858 , - 2925 , - 4276 , - 1367 , - 3286 , - 945 , - 3432 , - 1659 , - 170 , - 3509 , - 2588 , - 1951 , - 1598 , - 1529 , - 1744 , - 2243 , - 3026 , - 4093 , - 900 , - 2535 , - 4454 , - 2113 , - 56 , - 2827 , - 1338 , - 133 , - 3756 , - 3119 , - 2766 , - 2697 , - 2912 , - 3411 , - 4194 , - 717 , - 2068 , - 3703 , - 1078 , - 3281 , - 1224 , - 3995 , - 2506 , - 1301 , - 380 , - 4287 , - 3934 , - 3865 , - 4080 , - 35 , - 818 , - 1885 , - 3236 , - 327 , - 2246 , - 4449 , - 2392 , - 619 , - 3674 , - 2469 , - 1548 , - 911 , - 558 , - 489 , - 704 , - 1203 , - 1986 , - 3053 , - 4404 , - 1495 , - 3414 , - 1073 , - 3560 , - 1787 , - 298 , - 3637 , - 2716 , - 2079 , - 1726 , - 1657 , - 1872 , - 2371 , - 3154 , - 4221 , - 1028 , - 2663 , - 38 , - 2241 , - 184 , - 2955 , - 1466 , - 261 , - 3884 , - 3247 , - 2894 , - 2825 , - 3040 , - 3539 , - 4322 , - 845 , - 2196 , - 3831 , - 1206 , - 3409 , - 1352 , - 4123 , - 2634 , - 1429 , - 508 , - 4415 , - 4062 , - 3993 , - 4208 , - 163 , - 946 , - 2013 , - 3364 , - 455 , - 2374 , - 33 , - 2520 , - 747 , - 3802 , - 2597 , - 1676 , - 1039 , - 686 , - 617 , - 832 , - 1331 , - 2114 , - 3181 , - 4532 , - 1623 , - 3542 , - 1201 , - 3688 , - 1915 , - 426 , - 3765 , - 2844 , - 2207 , - 1854 , - 1785 , - 2000 , - 2499 , - 3282 , - 4349 , - 1156 , - 2791 , - 166 , - 2369 , - 312 , - 3083 , - 1594 , - 389 , - 4012 , - 3375 , - 3022 , - 2953 , - 3168 , - 3667 , - 4450 , - 973 , - 2324 , - 3959 , - 1334 , - 3537 , - 1480 , - 4251 , - 2762 , - 1557 , - 636 , - 4543 , - 4190 , - 4121 , - 4336 , - 291 , - 1074 , - 2141 , - 3492 , - 583 , - 2502 , - 161 , - 2648 , - 875 , - 3930 , - 2725 , - 1804 , - 1167 , - 814 , - 745 , - 960 , - 1459 , - 2242 , - 3309 , - 116 , - 1751 , - 3670 , - 1329 , - 3816 , - 2043 , - 554 , - 3893 , - 2972 , - 2335 , - 1982 , - 1913 , - 2128 , - 2627 , - 3410 , - 4477 , - 1284 , - 2919 , - 294 , - 2497 , - 440 , - 3211 , - 1722 , - 517 , - 4140 , - 3503 , - 3150 , - 3081 , - 3296 , - 3795 , - 34 , - 1101 , - 2452 , - 4087 , - 1462 , - 3665 , - 1608 , - 4379 , - 2890 , - 1685 , - 764 , - 127 , - 4318 , - 4249 , - 4464 , - 419 , - 1202 , - 2269 , - 3620 , - 711 , - 2630 , - 289 , - 2776 , - 1003 , - 4058 , - 2853 , - 1932 , - 1295 , - 942 , - 873 , - 1088 , - 1587 , - 2370 , - 3437 , - 244 , - 1879 , - 3798 , - 1457 , - 3944 , - 2171 , - 682 , - 4021 , - 3100 , - 2463 , - 2110 , - 2041 , - 2256 , - 2755 , - 3538 , - 61 , - 1412 , - 3047 , - 422 , - 2625 , - 568 , - 3339 , - 1850 , - 645 , - 4268 , - 3631 , - 3278 , - 3209 , - 3424 , - 3923 , - 162 , - 1229 , - 2580 , - 4215 , - 1590 , - 3793 , - 1736 , - 4507 , - 3018 , - 1813 , - 892 , - 255 , - 4446 , - 4377 , - 48 , - 547 , - 1330 , - 2397 , - 3748 , - 839 , - 2758 , - 417 , - 2904 , - 1131 , - 4186 , - 2981 , - 2060 , - 1423 , - 1070 , - 1001 , - 1216 , - 1715 , - 2498 , - 3565 , - 372 , - 2007 , - 3926 , - 1585 , - 4072 , - 2299 , - 810 , - 4149 , - 3228 , - 2591 , - 2238 , - 2169 , - 2384 , - 2883 , - 3666 , - 189 , - 1540 , - 3175 , - 550 , - 2753 , - 696 , - 3467 , - 1978 , - 773 , - 4396 , - 3759 , - 3406 , - 3337 , - 3552 , - 4051 , - 290 , - 1357 , - 2708 , - 4343 , - 1718 , - 3921 , - 1864 , - 91 , - 3146 , - 1941 , - 1020 , - 383 , - 30 , - 4505 , - 176 , - 675 , - 1458 , - 2525 , - 3876 , - 967 , - 2886 , - 545 , - 3032 , - 1259 , - 4314 , - 3109 , - 2188 , - 1551 , - 1198 , - 1129 , - 1344 , - 1843 , - 2626 , - 3693 , - 500 , - 2135 , - 4054 , - 1713 , - 4200 , - 2427 , - 938 , - 4277 , - 3356 , - 2719 , - 2366 , - 2297 , - 2512 , - 3011 , - 3794 , - 317 , - 1668 , - 3303 , - 678 , - 2881 , - 824 , - 3595 , - 2106 , - 901 , - 4524 , - 3887 , - 3534 , - 3465 , - 3680 , - 4179 , - 418 , - 1485 , - 2836 , - 4471 , - 1846 , - 4049 , - 1992 , - 219 , - 3274 , - 2069 , - 1148 , - 511 , - 158 , - 89 , - 304 , - 803 , - 1586 , - 2653 , - 4004 , - 1095 , - 3014 , - 673 , - 3160 , - 1387 , - 4442 , - 3237 , - 2316 , - 1679 , - 1326 , - 1257 , - 1472 , - 1971 , - 2754 , - 3821 , - 628 , - 2263 , - 4182 , - 1841 , - 4328 , - 2555 , - 1066 , - 4405 , - 3484 , - 2847 , - 2494 , - 2425 , - 2640 , - 3139 , - 3922 , - 445 , - 1796 , - 3431 , - 806 , - 3009 , - 952 , - 3723 , - 2234 , - 1029 , - 108 , - 4015 , - 3662 , - 3593 , - 3808 , - 4307 , - 546 , - 1613 , - 2964 , - 55 , - 1974 , - 4177 , - 2120 , - 347 , - 3402 , - 2197 , - 1276 , - 639 , - 286 , - 217 , - 432 , - 931 , - 1714 , - 2781 , - 4132 , - 1223 , - 3142 , - 801 , - 3288 , - 1515 , - 26 , - 3365 , - 2444 , - 1807 , - 1454 , - 1385 , - 1600 , - 2099 , - 2882 , - 3949 , - 756 , - 2391 , - 4310 , - 1969 , - 4456 , - 2683 , - 1194 , - 4533 , - 3612 , - 2975 , - 2622 , - 2553 , - 2768 , - 3267 , - 4050 , - 573 , - 1924 , - 3559 , - 934 , - 3137 , - 1080 , - 3851 , - 2362 , - 1157 , - 236 , - 4143 , - 3790 , - 3721 , - 3936 , - 4435 , - 674 , - 1741 , - 3092 , - 183 , - 2102 , - 4305 , - 2248 , - 475 , - 3530 , - 2325 , - 1404 , - 767 , - 414 , - 345 , - 560 , - 1059 , - 1842 , - 2909 , - 4260 , - 1351 , - 3270 , - 929 , - 3416 , - 1643 , - 154 , - 3493 , - 2572 , - 1935 , - 1582 , - 1513 , - 1728 , - 2227 , - 3010 , - 4077 , - 884 , - 2519 , - 4438 , - 2097 , - 40 , - 2811 , - 1322 , - 117 , - 3740 , - 3103 , - 2750 , - 2681 , - 2896 , - 3395 , - 4178 , - 701 , - 2052 , - 3687 , - 1062 , - 3265 , - 1208 , - 3979 , - 2490 , - 1285 , - 364 , - 4271 , - 3918 , - 3849 , - 4064 , - 19 , - 802 , - 1869 , - 3220 , - 311 , - 2230 , - 4433 , - 2376 , - 603 , - 3658 , - 2453 , - 1532 , - 895 , - 542 , - 473 , - 688 , - 1187 , - 1970 , - 3037 , - 4388 , - 1479 , - 3398 , - 1057 , - 3544 , - 1771 , - 282 , - 3621 , - 2700 , - 2063 , - 1710 , - 1641 , - 1856 , - 2355 , - 3138 , - 4205 , - 1012 , - 2647 , - 22 , - 2225 , - 168 , - 2939 , - 1450 , - 245 , - 3868 , - 3231 , - 2878 , - 2809 , - 3024 , - 3523 , - 4306 , - 829 , - 2180 , - 3815 , - 1190 , - 3393 , - 1336 , - 4107 , - 2618 , - 1413 , - 492 , - 4399 , - 4046 , - 3977 , - 4192 , - 147 , - 930 , - 1997 , - 3348 , - 439 , - 2358 , - 17 , - 2504 , - 731 , - 3786 , - 2581 , - 1660 , - 1023 , - 670 , - 601 , - 816 , - 1315 , - 2098 , - 3165 , - 4516 , - 1607 , - 3526 , - 1185 , - 3672 , - 1899 , - 410 , - 3749 , - 2828 , - 2191 , - 1838 , - 1769 , - 1984 , - 2483 , - 3266 , - 4333 , - 1140 , - 2775 , - 150 , - 2353 , - 296 , - 3067 , - 1578 , - 373 , - 3996 , - 3359 , - 3006 , - 2937 , - 3152 , - 3651 , - 4434 , - 957 , - 2308 , - 3943 , - 1318 , - 3521 , - 1464 , - 4235 , - 2746 , - 1541 , - 620 , - 4527 , - 4174 , - 4105 , - 4320 , - 275 , - 1058 , - 2125 , - 3476 , - 567 , - 2486 , - 145 , - 2632 , - 859 , - 3914 , - 2709 , - 1788 , - 1151 , - 798 , - 729 , - 944 , - 1443 , - 2226 , - 3293 , - 100 , - 1735 , - 3654 , - 1313 , - 3800 , - 2027 , - 538 , - 3877 , - 2956 , - 2319 , - 1966 , - 1897 , - 2112 , - 2611 , - 3394 , - 4461 , - 1268 , - 2903 , - 278 , - 2481 , - 424 , - 3195 , - 1706 , - 501 , - 4124 , - 3487 , - 3134 , - 3065 , - 3280 , - 3779 , - 18 , - 1085 , - 2436 , - 4071 , - 1446 , - 3649 , - 1592 , - 4363 , - 2874 , - 1669 , - 748 , - 111 , - 4302 , - 4233 , - 4448 , - 403 , - 1186 , - 2253 , - 3604 , - 695 , - 2614 , - 273 , - 2760 , - 987 , - 4042 , - 2837 , - 1916 , - 1279 , - 926 , - 857 , - 1072 , - 1571 , - 2354 , - 3421 , - 228 , - 1863 , - 3782 , - 1441 , - 3928 , - 2155 , - 666 , - 4005 , - 3084 , - 2447 , - 2094 , - 2025 , - 2240 , - 2739 , - 3522 , - 45 , - 1396 , - 3031 , - 406 , - 2609 , - 552 , - 3323 , - 1834 , - 629 , - 4252 , - 3615 , - 3262 , - 3193 , - 3408 , - 3907 , - 146 , - 1213 , - 2564 , - 4199 , - 1574 , - 3777 , - 1720 , - 4491 , - 3002 , - 1797 , - 876 , - 239 , - 4430 , - 4361 , - 32 , - 531 , - 1314 , - 2381 , - 3732 , - 823 , - 2742 , - 401 , - 2888 , - 1115 , - 4170 , - 2965 , - 2044 , - 1407 , - 1054 , - 985 , - 1200 , - 1699 , - 2482 , - 3549 , - 356 , - 1991 , - 3910 , - 1569 , - 4056 , - 2283 , - 794 , - 4133 , - 3212 , - 2575 , - 2222 , - 2153 , - 2368 , - 2867 , - 3650 , - 173 , - 1524 , - 3159 , - 534 , - 2737 , - 680 , - 3451 , - 1962 , - 757 , - 4380 , - 3743 , - 3390 , - 3321 , - 3536 , - 4035 , - 274 , - 1341 , - 2692 , - 4327 , - 1702 , - 3905 , - 1848 , - 75 , - 3130 , - 1925 , - 1004 , - 367 , - 14 , - 4489 , - 160 , - 659 , - 1442 , - 2509 , - 3860 , - 951 , - 2870 , - 529 , - 3016 , - 1243 , - 4298 , - 3093 , - 2172 , - 1535 , - 1182 , - 1113 , - 1328 , - 1827 , - 2610 , - 3677 , - 484 , - 2119 , - 4038 , - 1697 , - 4184 , - 2411 , - 922 , - 4261 , - 3340 , - 2703 , - 2350 , - 2281 , - 2496 , - 2995 , - 3778 , - 301 , - 1652 , - 3287 , - 662 , - 2865 , - 808 , - 3579 , - 2090 , - 885 , - 4508 , - 3871 , - 3518 , - 3449 , - 3664 , - 4163 , - 402 , - 1469 , - 2820 , - 4455 , - 1830 , - 4033 , - 1976 , - 203 , - 3258 , - 2053 , - 1132 , - 495 , - 142 , - 73 , - 288 , - 787 , - 1570 , - 2637 , - 3988 , - 1079 , - 2998 , - 657 , - 3144 , - 1371 , - 4426 , - 3221 , - 2300 , - 1663 , - 1310 , - 1241 , - 1456 , - 1955 , - 2738 , - 3805 , - 612 , - 2247 , - 4166 , - 1825 , - 4312 , - 2539 , - 1050 , - 4389 , - 3468 , - 2831 , - 2478 , - 2409 , - 2624 , - 3123 , - 3906 , - 429 , - 1780 , - 3415 , - 790 , - 2993 , - 936 , - 3707 , - 2218 , - 1013 , - 92 , - 3999 , - 3646 , - 3577 , - 3792 , - 4291 , - 530 , - 1597 , - 2948 , - 39 , - 1958 , - 4161 , - 2104 , - 331 , - 3386 , - 2181 , - 1260 , - 623 , - 270 , - 201 , - 416 , - 915 , - 1698 , - 2765 , - 4116 , - 1207 , - 3126 , - 785 , - 3272 , - 1499 , - 10 , - 3349 , - 2428 , - 1791 , - 1438 , - 1369 , - 1584 , - 2083 , - 2866 , - 3933 , - 740 , - 2375 , - 4294 , - 1953 , - 4440 , - 2667 , - 1178 , - 4517 , - 3596 , - 2959 , - 2606 , - 2537 , - 2752 , - 3251 , - 4034 , - 557 , - 1908 , - 3543 , - 918 , - 3121 , - 1064 , - 3835 , - 2346 , - 1141 , - 220 , - 4127 , - 3774 , - 3705 , - 3920 , - 4419 , - 658 , - 1725 , - 3076 , - 167 , - 2086 , - 4289 , - 2232 , - 459 , - 3514 , - 2309 , - 1388 , - 751 , - 398 , - 329 , - 544 , - 1043 , - 1826 , - 2893 , - 4244 , - 1335 , - 3254 , - 913 , - 3400 , - 1627 , - 138 , - 3477 , - 2556 , - 1919 , - 1566 , - 1497 , - 1712 , - 2211 , - 2994 , - 4061 , - 868 , - 2503 , - 4422 , - 2081 , - 24 , - 2795 , - 1306 , - 101 , - 3724 , - 3087 , - 2734 , - 2665 , - 2880 , - 3379 , - 4162 , - 685 , - 2036 , - 3671 , - 1046 , - 3249 , - 1192 , - 3963 , - 2474 , - 1269 , - 348 , - 4255 , - 3902 , - 3833 , - 4048 , - 3 , - 786 , - 1853 , - 3204 , - 295 , - 2214 , - 4417 , - 2360 , - 587 , - 3642 , - 2437 , - 1516 , - 879 , - 526 , - 457 , - 672 , - 1171 , - 1954 , - 3021 , - 4372 , - 1463 , - 3382 , - 1041 , - 3528 , - 1755 , - 266 , - 3605 , - 2684 , - 2047 , - 1694 , - 1625 , - 1840 , - 2339 , - 3122 , - 4189 , - 996 , - 2631 , - 6 , - 2209 , - 152 , - 2923 , - 1434 , - 229 , - 3852 , - 3215 , - 2862 , - 2793 , - 3008 , - 3507 , - 4290 , - 813 , - 2164 , - 3799 , - 1174 , - 3377 , - 1320 , - 4091 , - 2602 , - 1397 , - 476 , - 4383 , - 4030 , - 3961 , - 4176 , - 131 , - 914 , - 1981 , - 3332 , - 423 , - 2342 , - 1 , - 2488 , - 715 , - 3770 , - 2565 , - 1644 , - 1007 , - 654 , - 585 , - 800 , - 1299 , - 2082 , - 3149 , - 4500 , - 1591 , - 3510 , - 1169 , - 3656 , - 1883 , - 394 , - 3733 , - 2812 , - 2175 , - 1822 , - 1753 , - 1968 , - 2467 , - 3250 , - 4317 , - 1124 , - 2759 , - 134 , - 2337 , - 280 , - 3051 , - 1562 , - 357 , - 3980 , - 3343 , - 2990 , - 2921 , - 3136 , - 3635 , - 4418 , - 941 , - 2292 , - 3927 , - 1302 , - 3505 , - 1448 , - 4219 , - 2730 , - 1525 , - 604 , - 4511 , - 4158 , - 4089 , - 4304 , - 259 , - 1042 , - 2109 , - 3460 , - 551 , - 2470 , - 129 , - 2616 , - 843 , - 3898 , - 2693 , - 1772 , - 1135 , - 782 , - 713 , - 928 , - 1427 , - 2210 , - 3277 , - 84 , - 1719 , - 3638 , - 1297 , - 3784 , - 2011 , - 522 , - 3861 , - 2940 , - 2303 , - 1950 , - 1881 , - 2096 , - 2595 , - 3378 , - 4445 , - 1252 , - 2887 , - 262 , - 2465 , - 408 , - 3179 , - 1690 , - 485 , - 4108 , - 3471 , - 3118 , - 3049 , - 3264 , - 3763 , - 2 , - 1069 , - 2420 , - 4055 , - 1430 , - 3633 , - 1576 , - 4347 , - 2858 , - 1653 , - 732 , - 95 , - 4286 , - 4217 , - 4432 , - 387 , - 1170 , - 2237 , - 3588 , - 679 , - 2598 , - 257 , - 2744 , - 971 , - 4026 , - 2821 , - 1900 , - 1263 , - 910 , - 841 , - 1056 , - 1555 , - 2338 , - 3405 , - 212 , - 1847 , - 3766 , - 1425 , - 3912 , - 2139 , - 650 , - 3989 , - 3068 , - 2431 , - 2078 , - 2009 , - 2224 , - 2723 , - 3506 , - 29 , - 1380 , - 3015 , - 390 , - 2593 , - 536 , - 3307 , - 1818 , - 613 , - 4236 , - 3599 , - 3246 , - 3177 , - 3392 , - 3891 , - 130 , - 1197 , - 2548 , - 4183 , - 1558 , - 3761 , - 1704 , - 4475 , - 2986 , - 1781 , - 860 , - 223 , - 4414 , - 4345 , - 16 , - 515 , - 1298 , - 2365 , - 3716 , - 807 , - 2726 , - 385 , - 2872 , - 1099 , - 4154 , - 2949 , - 2028 , - 1391 , - 1038 , - 969 , - 1184 , - 1683 , - 2466 , - 3533 , - 340 , - 1975 , - 3894 , - 1553 , - 4040 , - 2267 , - 778 , - 4117 , - 3196 , - 2559 , - 2206 , - 2137 , - 2352 , - 2851 , - 3634 , - 157 , - 1508 , - 3143 , - 518 , - 2721 , - 664 , - 3435 , - 1946 , - 741 , - 4364 , - 3727 , - 3374 , - 3305 , - 3520 , - 4019 , - 258 , - 1325 , - 2676 , - 4311 , - 1686 , - 3889 , - 1832 , - 59 , - 3114 , - 1909 , - 988 , - 351 , - 4542 , - 4473 , - 144 , - 643 , - 1426 , - 2493 , - 3844 , - 935 , - 2854 , - 513 , - 3000 , - 1227 , - 4282 , - 3077 , - 2156 , - 1519 , - 1166 , - 1097 , - 1312 , - 1811 , - 2594 , - 3661 , - 468 , - 2103 , - 4022 , - 1681 , - 4168 , - 2395 , - 906 , - 4245 , - 3324 , - 2687 , - 2334 , - 2265 , - 2480 , - 2979 , - 3762 , - 285 , - 1636 , - 3271 , - 646 , - 2849 , - 792 , - 3563 , - 2074 , - 869 , - 4492 , - 3855 , - 3502 , - 3433 , - 3648 , - 4147 , - 386 , - 1453 , - 2804 , - 4439 , - 1814 , - 4017 , - 1960 , - 187 , - 3242 , - 2037 , - 1116 , - 479 , - 126 , - 57 , - 272 , - 771 , - 1554 , - 2621 , - 3972 , - 1063 , - 2982 , - 641 , - 3128 , - 1355 , - 4410 , - 3205 , - 2284 , - 1647 , - 1294 , - 1225 , - 1440 , - 1939 , - 2722 , - 3789 , - 596 , - 2231 , - 4150 , - 1809 , - 4296 , - 2523 , - 1034 , - 4373 , - 3452 , - 2815 , - 2462 , - 2393 , - 2608 , - 3107 , - 3890 , - 413 , - 1764 , - 3399 , - 774 , - 2977 , - 920 , - 3691 , - 2202 , - 997 , - 76 , - 3983 , - 3630 , - 3561 , - 3776 , - 4275 , - 514 , - 1581 , - 2932 , - 23 , - 1942 , - 4145 , - 2088 , - 315 , - 3370 , - 2165 , - 1244 , - 607 , - 254 , - 185 , - 400 , - 899 , - 1682 , - 2749 , - 4100 , - 1191 , - 3110 , - 769 , - 3256 , - 1483 , - 4538 , - 3333 , - 2412 , - 1775 , - 1422 , - 1353 , - 1568 , - 2067 , - 2850 , - 3917 , - 724 , - 2359 , - 4278 , - 1937 , - 4424 , - 2651 , - 1162 , - 4501 , - 3580 , - 2943 , - 2590 , - 2521 , - 2736 , - 3235 , - 4018 , - 541 , - 1892 , - 3527 , - 902 , - 3105 , - 1048 , - 3819 , - 2330 , - 1125 , - 204 , - 4111 , - 3758 , - 3689 , - 3904 , - 4403 , - 642 , - 1709 , - 3060 , - 151 , - 2070 , - 4273 , - 2216 , - 443 , - 3498 , - 2293 , - 1372 , - 735 , - 382 , - 313 , - 528 , - 1027 , - 1810 , - 2877 , - 4228 , - 1319 , - 3238 , - 897 , - 3384 , - 1611 , - 122 , - 3461 , - 2540 , - 1903 , - 1550 , - 1481 , - 1696 , - 2195 , - 2978 , - 4045 , - 852 , - 2487 , - 4406 , - 2065 , - 8 , - 2779 , - 1290 , - 85 , - 3708 , - 3071 , - 2718 , - 2649 , - 2864 , - 3363 , - 4146 , - 669 , - 2020 , - 3655 , - 1030 , - 3233 , - 1176 , - 3947 , - 2458 , - 1253 , - 332 , - 4239 , - 3886 , - 3817 , - 4032 , - 4531 , - 770 , - 1837 , - 3188 , - 279 , - 2198 , - 4401 , - 2344 , - 571 , - 3626 , - 2421 , - 1500 , - 863 , - 510 , - 441 , - 656 , - 1155 , - 1938 , - 3005 , - 4356 , - 1447 , - 3366 , - 1025 , - 3512 , - 1739 , - 250 , - 3589 , - 2668 , - 2031 , - 1678 , - 1609 , - 1824 , - 2323 , - 3106 , - 4173 , - 980 , - 2615 , - 4534 , - 2193 , - 136 , - 2907 , - 1418 , - 213 , - 3836 , - 3199 , - 2846 , - 2777 , - 2992 , - 3491 , - 4274 , - 797 , - 2148 , - 3783 , - 1158 , - 3361 , - 1304 , - 4075 , - 2586 , - 1381 , - 460 , - 4367 , - 4014 , - 3945 , - 4160 , - 115 , - 898 , - 1965 , - 3316 , - 407 , - 2326 , - 4529 , - 2472 , - 699 , - 3754 , - 2549 , - 1628 , - 991 , - 638 , - 569 , - 784 , - 1283 , - 2066 , - 3133 , - 4484 , - 1575 , - 3494 , - 1153 , - 3640 , - 1867 , - 378 , - 3717 , - 2796 , - 2159 , - 1806 , - 1737 , - 1952 , - 2451 , - 3234 , - 4301 , - 1108 , - 2743 , - 118 , - 2321 , - 264 , - 3035 , - 1546 , - 341 , - 3964 , - 3327 , - 2974 , - 2905 , - 3120 , - 3619 , - 4402 , - 925 , - 2276 , - 3911 , - 1286 , - 3489 , - 1432 , - 4203 , - 2714 , - 1509 , - 588 , - 4495 , - 4142 , - 4073 , - 4288 , - 243 , - 1026 , - 2093 , - 3444 , - 535 , - 2454 , - 113 , - 2600 , - 827 , - 3882 , - 2677 , - 1756 , - 1119 , - 766 , - 697 , - 912 , - 1411 , - 2194 , - 3261 , - 68 , - 1703 , - 3622 , - 1281 , - 3768 , - 1995 , - 506 , - 3845 , - 2924 , - 2287 , - 1934 , - 1865 , - 2080 , - 2579 , - 3362 , - 4429 , - 1236 , - 2871 , - 246 , - 2449 , - 392 , - 3163 , - 1674 , - 469 , - 4092 , - 3455 , - 3102 , - 3033 , - 3248 , - 3747 , - 4530 , - 1053 , - 2404 , - 4039 , - 1414 , - 3617 , - 1560 , - 4331 , - 2842 , - 1637 , - 716 , - 79 , - 4270 , - 4201 , - 4416 , - 371 , - 1154 , - 2221 , - 3572 , - 663 , - 2582 , - 241 , - 2728 , - 955 , - 4010 , - 2805 , - 1884 , - 1247 , - 894 , - 825 , - 1040 , - 1539 , - 2322 , - 3389 , - 196 , - 1831 , - 3750 , - 1409 , - 3896 , - 2123 , - 634 , - 3973 , - 3052 , - 2415 , - 2062 , - 1993 , - 2208 , - 2707 , - 3490 , - 13 , - 1364 , - 2999 , - 374 , - 2577 , - 520 , - 3291 , - 1802 , - 597 , - 4220 , - 3583 , - 3230 , - 3161 , - 3376 , - 3875 , - 114 , - 1181 , - 2532 , - 4167 , - 1542 , - 3745 , - 1688 , - 4459 , - 2970 , - 1765 , - 844 , - 207 , - 4398 , - 4329 , - 0 , - 817 , - 2594 , - 723 , - 4420 , - 4469 , - 870 , - 2839 , - 1160 , - 441 , - 682 , - 1883 , - 4044 , - 2557 , - 2030 , - 2463 , - 3856 , - 1601 , - 306 , - 4579 , - 596 , - 2181 , - 118 , - 3623 , - 3480 , - 4297 , - 1466 , - 4203 , - 3292 , - 3341 , - 4350 , - 1711 , - 32 , - 3921 , - 4162 , - 755 , - 2916 , - 1429 , - 902 , - 1335 , - 2728 , - 473 , - 3786 , - 3451 , - 4076 , - 1053 , - 3598 , - 2495 , - 2352 , - 3169 , - 338 , - 3075 , - 2164 , - 2213 , - 3222 , - 583 , - 3512 , - 2793 , - 3034 , - 4235 , - 1788 , - 301 , - 4382 , - 207 , - 1600 , - 3953 , - 2658 , - 2323 , - 2948 , - 4533 , - 2470 , - 1367 , - 1224 , - 2041 , - 3818 , - 1947 , - 1036 , - 1085 , - 2094 , - 4063 , - 2384 , - 1665 , - 1906 , - 3107 , - 660 , - 3781 , - 3254 , - 3687 , - 472 , - 2825 , - 1530 , - 1195 , - 1820 , - 3405 , - 1342 , - 239 , - 96 , - 913 , - 2690 , - 819 , - 4516 , - 4565 , - 966 , - 2935 , - 1256 , - 537 , - 778 , - 1979 , - 4140 , - 2653 , - 2126 , - 2559 , - 3952 , - 1697 , - 402 , - 67 , - 692 , - 2277 , - 214 , - 3719 , - 3576 , - 4393 , - 1562 , - 4299 , - 3388 , - 3437 , - 4446 , - 1807 , - 128 , - 4017 , - 4258 , - 851 , - 3012 , - 1525 , - 998 , - 1431 , - 2824 , - 569 , - 3882 , - 3547 , - 4172 , - 1149 , - 3694 , - 2591 , - 2448 , - 3265 , - 434 , - 3171 , - 2260 , - 2309 , - 3318 , - 679 , - 3608 , - 2889 , - 3130 , - 4331 , - 1884 , - 397 , - 4478 , - 303 , - 1696 , - 4049 , - 2754 , - 2419 , - 3044 , - 21 , - 2566 , - 1463 , - 1320 , - 2137 , - 3914 , - 2043 , - 1132 , - 1181 , - 2190 , - 4159 , - 2480 , - 1761 , - 2002 , - 3203 , - 756 , - 3877 , - 3350 , - 3783 , - 568 , - 2921 , - 1626 , - 1291 , - 1916 , - 3501 , - 1438 , - 335 , - 192 , - 1009 , - 2786 , - 915 , - 4 , - 53 , - 1062 , - 3031 , - 1352 , - 633 , - 874 , - 2075 , - 4236 , - 2749 , - 2222 , - 2655 , - 4048 , - 1793 , - 498 , - 163 , - 788 , - 2373 , - 310 , - 3815 , - 3672 , - 4489 , - 1658 , - 4395 , - 3484 , - 3533 , - 4542 , - 1903 , - 224 , - 4113 , - 4354 , - 947 , - 3108 , - 1621 , - 1094 , - 1527 , - 2920 , - 665 , - 3978 , - 3643 , - 4268 , - 1245 , - 3790 , - 2687 , - 2544 , - 3361 , - 530 , - 3267 , - 2356 , - 2405 , - 3414 , - 775 , - 3704 , - 2985 , - 3226 , - 4427 , - 1980 , - 493 , - 4574 , - 399 , - 1792 , - 4145 , - 2850 , - 2515 , - 3140 , - 117 , - 2662 , - 1559 , - 1416 , - 2233 , - 4010 , - 2139 , - 1228 , - 1277 , - 2286 , - 4255 , - 2576 , - 1857 , - 2098 , - 3299 , - 852 , - 3973 , - 3446 , - 3879 , - 664 , - 3017 , - 1722 , - 1387 , - 2012 , - 3597 , - 1534 , - 431 , - 288 , - 1105 , - 2882 , - 1011 , - 100 , - 149 , - 1158 , - 3127 , - 1448 , - 729 , - 970 , - 2171 , - 4332 , - 2845 , - 2318 , - 2751 , - 4144 , - 1889 , - 594 , - 259 , - 884 , - 2469 , - 406 , - 3911 , - 3768 , - 4585 , - 1754 , - 4491 , - 3580 , - 3629 , - 30 , - 1999 , - 320 , - 4209 , - 4450 , - 1043 , - 3204 , - 1717 , - 1190 , - 1623 , - 3016 , - 761 , - 4074 , - 3739 , - 4364 , - 1341 , - 3886 , - 2783 , - 2640 , - 3457 , - 626 , - 3363 , - 2452 , - 2501 , - 3510 , - 871 , - 3800 , - 3081 , - 3322 , - 4523 , - 2076 , - 589 , - 62 , - 495 , - 1888 , - 4241 , - 2946 , - 2611 , - 3236 , - 213 , - 2758 , - 1655 , - 1512 , - 2329 , - 4106 , - 2235 , - 1324 , - 1373 , - 2382 , - 4351 , - 2672 , - 1953 , - 2194 , - 3395 , - 948 , - 4069 , - 3542 , - 3975 , - 760 , - 3113 , - 1818 , - 1483 , - 2108 , - 3693 , - 1630 , - 527 , - 384 , - 1201 , - 2978 , - 1107 , - 196 , - 245 , - 1254 , - 3223 , - 1544 , - 825 , - 1066 , - 2267 , - 4428 , - 2941 , - 2414 , - 2847 , - 4240 , - 1985 , - 690 , - 355 , - 980 , - 2565 , - 502 , - 4007 , - 3864 , - 73 , - 1850 , - 4587 , - 3676 , - 3725 , - 126 , - 2095 , - 416 , - 4305 , - 4546 , - 1139 , - 3300 , - 1813 , - 1286 , - 1719 , - 3112 , - 857 , - 4170 , - 3835 , - 4460 , - 1437 , - 3982 , - 2879 , - 2736 , - 3553 , - 722 , - 3459 , - 2548 , - 2597 , - 3606 , - 967 , - 3896 , - 3177 , - 3418 , - 11 , - 2172 , - 685 , - 158 , - 591 , - 1984 , - 4337 , - 3042 , - 2707 , - 3332 , - 309 , - 2854 , - 1751 , - 1608 , - 2425 , - 4202 , - 2331 , - 1420 , - 1469 , - 2478 , - 4447 , - 2768 , - 2049 , - 2290 , - 3491 , - 1044 , - 4165 , - 3638 , - 4071 , - 856 , - 3209 , - 1914 , - 1579 , - 2204 , - 3789 , - 1726 , - 623 , - 480 , - 1297 , - 3074 , - 1203 , - 292 , - 341 , - 1350 , - 3319 , - 1640 , - 921 , - 1162 , - 2363 , - 4524 , - 3037 , - 2510 , - 2943 , - 4336 , - 2081 , - 786 , - 451 , - 1076 , - 2661 , - 598 , - 4103 , - 3960 , - 169 , - 1946 , - 75 , - 3772 , - 3821 , - 222 , - 2191 , - 512 , - 4401 , - 34 , - 1235 , - 3396 , - 1909 , - 1382 , - 1815 , - 3208 , - 953 , - 4266 , - 3931 , - 4556 , - 1533 , - 4078 , - 2975 , - 2832 , - 3649 , - 818 , - 3555 , - 2644 , - 2693 , - 3702 , - 1063 , - 3992 , - 3273 , - 3514 , - 107 , - 2268 , - 781 , - 254 , - 687 , - 2080 , - 4433 , - 3138 , - 2803 , - 3428 , - 405 , - 2950 , - 1847 , - 1704 , - 2521 , - 4298 , - 2427 , - 1516 , - 1565 , - 2574 , - 4543 , - 2864 , - 2145 , - 2386 , - 3587 , - 1140 , - 4261 , - 3734 , - 4167 , - 952 , - 3305 , - 2010 , - 1675 , - 2300 , - 3885 , - 1822 , - 719 , - 576 , - 1393 , - 3170 , - 1299 , - 388 , - 437 , - 1446 , - 3415 , - 1736 , - 1017 , - 1258 , - 2459 , - 12 , - 3133 , - 2606 , - 3039 , - 4432 , - 2177 , - 882 , - 547 , - 1172 , - 2757 , - 694 , - 4199 , - 4056 , - 265 , - 2042 , - 171 , - 3868 , - 3917 , - 318 , - 2287 , - 608 , - 4497 , - 130 , - 1331 , - 3492 , - 2005 , - 1478 , - 1911 , - 3304 , - 1049 , - 4362 , - 4027 , - 44 , - 1629 , - 4174 , - 3071 , - 2928 , - 3745 , - 914 , - 3651 , - 2740 , - 2789 , - 3798 , - 1159 , - 4088 , - 3369 , - 3610 , - 203 , - 2364 , - 877 , - 350 , - 783 , - 2176 , - 4529 , - 3234 , - 2899 , - 3524 , - 501 , - 3046 , - 1943 , - 1800 , - 2617 , - 4394 , - 2523 , - 1612 , - 1661 , - 2670 , - 31 , - 2960 , - 2241 , - 2482 , - 3683 , - 1236 , - 4357 , - 3830 , - 4263 , - 1048 , - 3401 , - 2106 , - 1771 , - 2396 , - 3981 , - 1918 , - 815 , - 672 , - 1489 , - 3266 , - 1395 , - 484 , - 533 , - 1542 , - 3511 , - 1832 , - 1113 , - 1354 , - 2555 , - 108 , - 3229 , - 2702 , - 3135 , - 4528 , - 2273 , - 978 , - 643 , - 1268 , - 2853 , - 790 , - 4295 , - 4152 , - 361 , - 2138 , - 267 , - 3964 , - 4013 , - 414 , - 2383 , - 704 , - 4593 , - 226 , - 1427 , - 3588 , - 2101 , - 1574 , - 2007 , - 3400 , - 1145 , - 4458 , - 4123 , - 140 , - 1725 , - 4270 , - 3167 , - 3024 , - 3841 , - 1010 , - 3747 , - 2836 , - 2885 , - 3894 , - 1255 , - 4184 , - 3465 , - 3706 , - 299 , - 2460 , - 973 , - 446 , - 879 , - 2272 , - 17 , - 3330 , - 2995 , - 3620 , - 597 , - 3142 , - 2039 , - 1896 , - 2713 , - 4490 , - 2619 , - 1708 , - 1757 , - 2766 , - 127 , - 3056 , - 2337 , - 2578 , - 3779 , - 1332 , - 4453 , - 3926 , - 4359 , - 1144 , - 3497 , - 2202 , - 1867 , - 2492 , - 4077 , - 2014 , - 911 , - 768 , - 1585 , - 3362 , - 1491 , - 580 , - 629 , - 1638 , - 3607 , - 1928 , - 1209 , - 1450 , - 2651 , - 204 , - 3325 , - 2798 , - 3231 , - 16 , - 2369 , - 1074 , - 739 , - 1364 , - 2949 , - 886 , - 4391 , - 4248 , - 457 , - 2234 , - 363 , - 4060 , - 4109 , - 510 , - 2479 , - 800 , - 81 , - 322 , - 1523 , - 3684 , - 2197 , - 1670 , - 2103 , - 3496 , - 1241 , - 4554 , - 4219 , - 236 , - 1821 , - 4366 , - 3263 , - 3120 , - 3937 , - 1106 , - 3843 , - 2932 , - 2981 , - 3990 , - 1351 , - 4280 , - 3561 , - 3802 , - 395 , - 2556 , - 1069 , - 542 , - 975 , - 2368 , - 113 , - 3426 , - 3091 , - 3716 , - 693 , - 3238 , - 2135 , - 1992 , - 2809 , - 4586 , - 2715 , - 1804 , - 1853 , - 2862 , - 223 , - 3152 , - 2433 , - 2674 , - 3875 , - 1428 , - 4549 , - 4022 , - 4455 , - 1240 , - 3593 , - 2298 , - 1963 , - 2588 , - 4173 , - 2110 , - 1007 , - 864 , - 1681 , - 3458 , - 1587 , - 676 , - 725 , - 1734 , - 3703 , - 2024 , - 1305 , - 1546 , - 2747 , - 300 , - 3421 , - 2894 , - 3327 , - 112 , - 2465 , - 1170 , - 835 , - 1460 , - 3045 , - 982 , - 4487 , - 4344 , - 553 , - 2330 , - 459 , - 4156 , - 4205 , - 606 , - 2575 , - 896 , - 177 , - 418 , - 1619 , - 3780 , - 2293 , - 1766 , - 2199 , - 3592 , - 1337 , - 42 , - 4315 , - 332 , - 1917 , - 4462 , - 3359 , - 3216 , - 4033 , - 1202 , - 3939 , - 3028 , - 3077 , - 4086 , - 1447 , - 4376 , - 3657 , - 3898 , - 491 , - 2652 , - 1165 , - 638 , - 1071 , - 2464 , - 209 , - 3522 , - 3187 , - 3812 , - 789 , - 3334 , - 2231 , - 2088 , - 2905 , - 74 , - 2811 , - 1900 , - 1949 , - 2958 , - 319 , - 3248 , - 2529 , - 2770 , - 3971 , - 1524 , - 37 , - 4118 , - 4551 , - 1336 , - 3689 , - 2394 , - 2059 , - 2684 , - 4269 , - 2206 , - 1103 , - 960 , - 1777 , - 3554 , - 1683 , - 772 , - 821 , - 1830 , - 3799 , - 2120 , - 1401 , - 1642 , - 2843 , - 396 , - 3517 , - 2990 , - 3423 , - 208 , - 2561 , - 1266 , - 931 , - 1556 , - 3141 , - 1078 , - 4583 , - 4440 , - 649 , - 2426 , - 555 , - 4252 , - 4301 , - 702 , - 2671 , - 992 , - 273 , - 514 , - 1715 , - 3876 , - 2389 , - 1862 , - 2295 , - 3688 , - 1433 , - 138 , - 4411 , - 428 , - 2013 , - 4558 , - 3455 , - 3312 , - 4129 , - 1298 , - 4035 , - 3124 , - 3173 , - 4182 , - 1543 , - 4472 , - 3753 , - 3994 , - 587 , - 2748 , - 1261 , - 734 , - 1167 , - 2560 , - 305 , - 3618 , - 3283 , - 3908 , - 885 , - 3430 , - 2327 , - 2184 , - 3001 , - 170 , - 2907 , - 1996 , - 2045 , - 3054 , - 415 , - 3344 , - 2625 , - 2866 , - 4067 , - 1620 , - 133 , - 4214 , - 39 , - 1432 , - 3785 , - 2490 , - 2155 , - 2780 , - 4365 , - 2302 , - 1199 , - 1056 , - 1873 , - 3650 , - 1779 , - 868 , - 917 , - 1926 , - 3895 , - 2216 , - 1497 , - 1738 , - 2939 , - 492 , - 3613 , - 3086 , - 3519 , - 304 , - 2657 , - 1362 , - 1027 , - 1652 , - 3237 , - 1174 , - 71 , - 4536 , - 745 , - 2522 , - 651 , - 4348 , - 4397 , - 798 , - 2767 , - 1088 , - 369 , - 610 , - 1811 , - 3972 , - 2485 , - 1958 , - 2391 , - 3784 , - 1529 , - 234 , - 4507 , - 524 , - 2109 , - 46 , - 3551 , - 3408 , - 4225 , - 1394 , - 4131 , - 3220 , - 3269 , - 4278 , - 1639 , - 4568 , - 3849 , - 4090 , - 683 , - 2844 , - 1357 , - 830 , - 1263 , - 2656 , - 401 , - 3714 , - 3379 , - 4004 , - 981 , - 3526 , - 2423 , - 2280 , - 3097 , - 266 , - 3003 , - 2092 , - 2141 , - 3150 , - 511 , - 3440 , - 2721 , - 2962 , - 4163 , - 1716 , - 229 , - 4310 , - 135 , - 1528 , - 3881 , - 2586 , - 2251 , - 2876 , - 4461 , - 2398 , - 1295 , - 1152 , - 1969 , - 3746 , - 1875 , - 964 , - 1013 , - 2022 , - 3991 , - 2312 , - 1593 , - 1834 , - 3035 , - 588 , - 3709 , - 3182 , - 3615 , - 400 , - 2753 , - 1458 , - 1123 , - 1748 , - 3333 , - 1270 , - 167 , - 24 , - 841 , - 2618 , - 747 , - 4444 , - 4493 , - 894 , - 2863 , - 1184 , - 465 , - 706 , - 1907 , - 4068 , - 2581 , - 2054 , - 2487 , - 3880 , - 1625 , - 330 , - 4603 , - 620 , - 2205 , - 142 , - 3647 , - 3504 , - 4321 , - 1490 , - 4227 , - 3316 , - 3365 , - 4374 , - 1735 , - 56 , - 3945 , - 4186 , - 779 , - 2940 , - 1453 , - 926 , - 1359 , - 2752 , - 497 , - 3810 , - 3475 , - 4100 , - 1077 , - 3622 , - 2519 , - 2376 , - 3193 , - 362 , - 3099 , - 2188 , - 2237 , - 3246 , - 607 , - 3536 , - 2817 , - 3058 , - 4259 , - 1812 , - 325 , - 4406 , - 231 , - 1624 , - 3977 , - 2682 , - 2347 , - 2972 , - 4557 , - 2494 , - 1391 , - 1248 , - 2065 , - 3842 , - 1971 , - 1060 , - 1109 , - 2118 , - 4087 , - 2408 , - 1689 , - 1930 , - 3131 , - 684 , - 3805 , - 3278 , - 3711 , - 496 , - 2849 , - 1554 , - 1219 , - 1844 , - 3429 , - 1366 , - 263 , - 120 , - 937 , - 2714 , - 843 , - 4540 , - 4589 , - 990 , - 2959 , - 1280 , - 561 , - 802 , - 2003 , - 4164 , - 2677 , - 2150 , - 2583 , - 3976 , - 1721 , - 426 , - 91 , - 716 , - 2301 , - 238 , - 3743 , - 3600 , - 4417 , - 1586 , - 4323 , - 3412 , - 3461 , - 4470 , - 1831 , - 152 , - 4041 , - 4282 , - 875 , - 3036 , - 1549 , - 1022 , - 1455 , - 2848 , - 593 , - 3906 , - 3571 , - 4196 , - 1173 , - 3718 , - 2615 , - 2472 , - 3289 , - 458 , - 3195 , - 2284 , - 2333 , - 3342 , - 703 , - 3632 , - 2913 , - 3154 , - 4355 , - 1908 , - 421 , - 4502 , - 327 , - 1720 , - 4073 , - 2778 , - 2443 , - 3068 , - 45 , - 2590 , - 1487 , - 1344 , - 2161 , - 3938 , - 2067 , - 1156 , - 1205 , - 2214 , - 4183 , - 2504 , - 1785 , - 2026 , - 3227 , - 780 , - 3901 , - 3374 , - 3807 , - 592 , - 2945 , - 1650 , - 1315 , - 1940 , - 3525 , - 1462 , - 359 , - 216 , - 1033 , - 2810 , - 939 , - 28 , - 77 , - 1086 , - 3055 , - 1376 , - 657 , - 898 , - 2099 , - 4260 , - 2773 , - 2246 , - 2679 , - 4072 , - 1817 , - 522 , - 187 , - 812 , - 2397 , - 334 , - 3839 , - 3696 , - 4513 , - 1682 , - 4419 , - 3508 , - 3557 , - 4566 , - 1927 , - 248 , - 4137 , - 4378 , - 971 , - 3132 , - 1645 , - 1118 , - 1551 , - 2944 , - 689 , - 4002 , - 3667 , - 4292 , - 1269 , - 3814 , - 2711 , - 2568 , - 3385 , - 554 , - 3291 , - 2380 , - 2429 , - 3438 , - 799 , - 3728 , - 3009 , - 3250 , - 4451 , - 2004 , - 517 , - 4598 , - 423 , - 1816 , - 4169 , - 2874 , - 2539 , - 3164 , - 141 , - 2686 , - 1583 , - 1440 , - 2257 , - 4034 , - 2163 , - 1252 , - 1301 , - 2310 , - 4279 , - 2600 , - 1881 , - 2122 , - 3323 , - 876 , - 3997 , - 3470 , - 3903 , - 688 , - 3041 , - 1746 , - 1411 , - 2036 , - 3621 , - 1558 , - 455 , - 312 , - 1129 , - 2906 , - 1035 , - 124 , - 173 , - 1182 , - 3151 , - 1472 , - 753 , - 994 , - 2195 , - 4356 , - 2869 , - 2342 , - 2775 , - 4168 , - 1913 , - 618 , - 283 , - 908 , - 2493 , - 430 , - 3935 , - 3792 , - 1 , - 1778 , - 4515 , - 3604 , - 3653 , - 54 , - 2023 , - 344 , - 4233 , - 4474 , - 1067 , - 3228 , - 1741 , - 1214 , - 1647 , - 3040 , - 785 , - 4098 , - 3763 , - 4388 , - 1365 , - 3910 , - 2807 , - 2664 , - 3481 , - 650 , - 3387 , - 2476 , - 2525 , - 3534 , - 895 , - 3824 , - 3105 , - 3346 , - 4547 , - 2100 , - 613 , - 86 , - 519 , - 1912 , - 4265 , - 2970 , - 2635 , - 3260 , - 237 , - 2782 , - 1679 , - 1536 , - 2353 , - 4130 , - 2259 , - 1348 , - 1397 , - 2406 , - 4375 , - 2696 , - 1977 , - 2218 , - 3419 , - 972 , - 4093 , - 3566 , - 3999 , - 784 , - 3137 , - 1842 , - 1507 , - 2132 , - 3717 , - 1654 , - 551 , - 408 , - 1225 , - 3002 , - 1131 , - 220 , - 269 , - 1278 , - 3247 , - 1568 , - 849 , - 1090 , - 2291 , - 4452 , - 2965 , - 2438 , - 2871 , - 4264 , - 2009 , - 714 , - 379 , - 1004 , - 2589 , - 526 , - 4031 , - 3888 , - 97 , - 1874 , - 3 , - 3700 , - 3749 , - 150 , - 2119 , - 440 , - 4329 , - 4570 , - 1163 , - 3324 , - 1837 , - 1310 , - 1743 , - 3136 , - 881 , - 4194 , - 3859 , - 4484 , - 1461 , - 4006 , - 2903 , - 2760 , - 3577 , - 746 , - 3483 , - 2572 , - 2621 , - 3630 , - 991 , - 3920 , - 3201 , - 3442 , - 35 , - 2196 , - 709 , - 182 , - 615 , - 2008 , - 4361 , - 3066 , - 2731 , - 3356 , - 333 , - 2878 , - 1775 , - 1632 , - 2449 , - 4226 , - 2355 , - 1444 , - 1493 , - 2502 , - 4471 , - 2792 , - 2073 , - 2314 , - 3515 , - 1068 , - 4189 , - 3662 , - 4095 , - 880 , - 3233 , - 1938 , - 1603 , - 2228 , - 3813 , - 1750 , - 647 , - 504 , - 1321 , - 3098 , - 1227 , - 316 , - 365 , - 1374 , - 3343 , - 1664 , - 945 , - 1186 , - 2387 , - 4548 , - 3061 , - 2534 , - 2967 , - 4360 , - 2105 , - 810 , - 475 , - 1100 , - 2685 , - 622 , - 4127 , - 3984 , - 193 , - 1970 , - 99 , - 3796 , - 3845 , - 246 , - 2215 , - 536 , - 4425 , - 58 , - 1259 , - 3420 , - 1933 , - 1406 , - 1839 , - 3232 , - 977 , - 4290 , - 3955 , - 4580 , - 1557 , - 4102 , - 2999 , - 2856 , - 3673 , - 842 , - 3579 , - 2668 , - 2717 , - 3726 , - 1087 , - 4016 , - 3297 , - 3538 , - 131 , - 2292 , - 805 , - 278 , - 711 , - 2104 , - 4457 , - 3162 , - 2827 , - 3452 , - 429 , - 2974 , - 1871 , - 1728 , - 2545 , - 4322 , - 2451 , - 1540 , - 1589 , - 2598 , - 4567 , - 2888 , - 2169 , - 2410 , - 3611 , - 1164 , - 4285 , - 3758 , - 4191 , - 976 , - 3329 , - 2034 , - 1699 , - 2324 , - 3909 , - 1846 , - 743 , - 600 , - 1417 , - 3194 , - 1323 , - 412 , - 461 , - 1470 , - 3439 , - 1760 , - 1041 , - 1282 , - 2483 , - 36 , - 3157 , - 2630 , - 3063 , - 4456 , - 2201 , - 906 , - 571 , - 1196 , - 2781 , - 718 , - 4223 , - 4080 , - 289 , - 2066 , - 195 , - 3892 , - 3941 , - 342 , - 2311 , - 632 , - 4521 , - 154 , - 1355 , - 3516 , - 2029 , - 1502 , - 1935 , - 3328 , - 1073 , - 4386 , - 4051 , - 68 , - 1653 , - 4198 , - 3095 , - 2952 , - 3769 , - 938 , - 3675 , - 2764 , - 2813 , - 3822 , - 1183 , - 4112 , - 3393 , - 3634 , - 227 , - 2388 , - 901 , - 374 , - 807 , - 2200 , - 4553 , - 3258 , - 2923 , - 3548 , - 525 , - 3070 , - 1967 , - 1824 , - 2641 , - 4418 , - 2547 , - 1636 , - 1685 , - 2694 , - 55 , - 2984 , - 2265 , - 2506 , - 3707 , - 1260 , - 4381 , - 3854 , - 4287 , - 1072 , - 3425 , - 2130 , - 1795 , - 2420 , - 4005 , - 1942 , - 839 , - 696 , - 1513 , - 3290 , - 1419 , - 508 , - 557 , - 1566 , - 3535 , - 1856 , - 1137 , - 1378 , - 2579 , - 132 , - 3253 , - 2726 , - 3159 , - 4552 , - 2297 , - 1002 , - 667 , - 1292 , - 2877 , - 814 , - 4319 , - 4176 , - 385 , - 2162 , - 291 , - 3988 , - 4037 , - 438 , - 2407 , - 728 , - 9 , - 250 , - 1451 , - 3612 , - 2125 , - 1598 , - 2031 , - 3424 , - 1169 , - 4482 , - 4147 , - 164 , - 1749 , - 4294 , - 3191 , - 3048 , - 3865 , - 1034 , - 3771 , - 2860 , - 2909 , - 3918 , - 1279 , - 4208 , - 3489 , - 3730 , - 323 , - 2484 , - 997 , - 470 , - 903 , - 2296 , - 41 , - 3354 , - 3019 , - 3644 , - 621 , - 3166 , - 2063 , - 1920 , - 2737 , - 4514 , - 2643 , - 1732 , - 1781 , - 2790 , - 151 , - 3080 , - 2361 , - 2602 , - 3803 , - 1356 , - 4477 , - 3950 , - 4383 , - 1168 , - 3521 , - 2226 , - 1891 , - 2516 , - 4101 , - 2038 , - 935 , - 792 , - 1609 , - 3386 , - 1515 , - 604 , - 653 , - 1662 , - 3631 , - 1952 , - 1233 , - 1474 , - 2675 , - 228 , - 3349 , - 2822 , - 3255 , - 40 , - 2393 , - 1098 , - 763 , - 1388 , - 2973 , - 910 , - 4415 , - 4272 , - 481 , - 2258 , - 387 , - 4084 , - 4133 , - 534 , - 2503 , - 824 , - 105 , - 346 , - 1547 , - 3708 , - 2221 , - 1694 , - 2127 , - 3520 , - 1265 , - 4578 , - 4243 , - 260 , - 1845 , - 4390 , - 3287 , - 3144 , - 3961 , - 1130 , - 3867 , - 2956 , - 3005 , - 4014 , - 1375 , - 4304 , - 3585 , - 3826 , - 419 , - 2580 , - 1093 , - 566 , - 999 , - 2392 , - 137 , - 3450 , - 3115 , - 3740 , - 717 , - 3262 , - 2159 , - 2016 , - 2833 , - 2 , - 2739 , - 1828 , - 1877 , - 2886 , - 247 , - 3176 , - 2457 , - 2698 , - 3899 , - 1452 , - 4573 , - 4046 , - 4479 , - 1264 , - 3617 , - 2322 , - 1987 , - 2612 , - 4197 , - 2134 , - 1031 , - 888 , - 1705 , - 3482 , - 1611 , - 700 , - 749 , - 1758 , - 3727 , - 2048 , - 1329 , - 1570 , - 2771 , - 324 , - 3445 , - 2918 , - 3351 , - 136 , - 2489 , - 1194 , - 859 , - 1484 , - 3069 , - 1006 , - 4511 , - 4368 , - 577 , - 2354 , - 483 , - 4180 , - 4229 , - 630 , - 2599 , - 920 , - 201 , - 442 , - 1643 , - 3804 , - 2317 , - 1790 , - 2223 , - 3616 , - 1361 , - 66 , - 4339 , - 356 , - 1941 , - 4486 , - 3383 , - 3240 , - 4057 , - 1226 , - 3963 , - 3052 , - 3101 , - 4110 , - 1471 , - 4400 , - 3681 , - 3922 , - 515 , - 2676 , - 1189 , - 662 , - 1095 , - 2488 , - 233 , - 3546 , - 3211 , - 3836 , - 813 , - 3358 , - 2255 , - 2112 , - 2929 , - 98 , - 2835 , - 1924 , - 1973 , - 2982 , - 343 , - 3272 , - 2553 , - 2794 , - 3995 , - 1548 , - 61 , - 4142 , - 4575 , - 1360 , - 3713 , - 2418 , - 2083 , - 2708 , - 4293 , - 2230 , - 1127 , - 984 , - 1801 , - 3578 , - 1707 , - 796 , - 845 , - 1854 , - 3823 , - 2144 , - 1425 , - 1666 , - 2867 , - 420 , - 3541 , - 3014 , - 3447 , - 232 , - 2585 , - 1290 , - 955 , - 1580 , - 3165 , - 1102 , - 4607 , - 4464 , - 673 , - 2450 , - 579 , - 4276 , - 4325 , - 726 , - 2695 , - 1016 , - 297 , - 538 , - 1739 , - 3900 , - 2413 , - 1886 , - 2319 , - 3712 , - 1457 , - 162 , - 4435 , - 452 , - 2037 , - 4582 , - 3479 , - 3336 , - 4153 , - 1322 , - 4059 , - 3148 , - 3197 , - 4206 , - 1567 , - 4496 , - 3777 , - 4018 , - 611 , - 2772 , - 1285 , - 758 , - 1191 , - 2584 , - 329 , - 3642 , - 3307 , - 3932 , - 909 , - 3454 , - 2351 , - 2208 , - 3025 , - 194 , - 2931 , - 2020 , - 2069 , - 3078 , - 439 , - 3368 , - 2649 , - 2890 , - 4091 , - 1644 , - 157 , - 4238 , - 63 , - 1456 , - 3809 , - 2514 , - 2179 , - 2804 , - 4389 , - 2326 , - 1223 , - 1080 , - 1897 , - 3674 , - 1803 , - 892 , - 941 , - 1950 , - 3919 , - 2240 , - 1521 , - 1762 , - 2963 , - 516 , - 3637 , - 3110 , - 3543 , - 328 , - 2681 , - 1386 , - 1051 , - 1676 , - 3261 , - 1198 , - 95 , - 4560 , - 769 , - 2546 , - 675 , - 4372 , - 4421 , - 822 , - 2791 , - 1112 , - 393 , - 634 , - 1835 , - 3996 , - 2509 , - 1982 , - 2415 , - 3808 , - 1553 , - 258 , - 4531 , - 548 , - 2133 , - 70 , - 3575 , - 3432 , - 4249 , - 1418 , - 4155 , - 3244 , - 3293 , - 4302 , - 1663 , - 4592 , - 3873 , - 4114 , - 707 , - 2868 , - 1381 , - 854 , - 1287 , - 2680 , - 425 , - 3738 , - 3403 , - 4028 , - 1005 , - 3550 , - 2447 , - 2304 , - 3121 , - 290 , - 3027 , - 2116 , - 2165 , - 3174 , - 535 , - 3464 , - 2745 , - 2986 , - 4187 , - 1740 , - 253 , - 4334 , - 159 , - 1552 , - 3905 , - 2610 , - 2275 , - 2900 , - 4485 , - 2422 , - 1319 , - 1176 , - 1993 , - 3770 , - 1899 , - 988 , - 1037 , - 2046 , - 4015 , - 2336 , - 1617 , - 1858 , - 3059 , - 612 , - 3733 , - 3206 , - 3639 , - 424 , - 2777 , - 1482 , - 1147 , - 1772 , - 3357 , - 1294 , - 191 , - 48 , - 865 , - 2642 , - 771 , - 4468 , - 4517 , - 918 , - 2887 , - 1208 , - 489 , - 730 , - 1931 , - 4092 , - 2605 , - 2078 , - 2511 , - 3904 , - 1649 , - 354 , - 19 , - 644 , - 2229 , - 166 , - 3671 , - 3528 , - 4345 , - 1514 , - 4251 , - 3340 , - 3389 , - 4398 , - 1759 , - 80 , - 3969 , - 4210 , - 803 , - 2964 , - 1477 , - 950 , - 1383 , - 2776 , - 521 , - 3834 , - 3499 , - 4124 , - 1101 , - 3646 , - 2543 , - 2400 , - 3217 , - 386 , - 3123 , - 2212 , - 2261 , - 3270 , - 631 , - 3560 , - 2841 , - 3082 , - 4283 , - 1836 , - 349 , - 4430 , - 255 , - 1648 , - 4001 , - 2706 , - 2371 , - 2996 , - 4581 , - 2518 , - 1415 , - 1272 , - 2089 , - 3866 , - 1995 , - 1084 , - 1133 , - 2142 , - 4111 , - 2432 , - 1713 , - 1954 , - 3155 , - 708 , - 3829 , - 3302 , - 3735 , - 520 , - 2873 , - 1578 , - 1243 , - 1868 , - 3453 , - 1390 , - 287 , - 144 , - 961 , - 2738 , - 867 , - 4564 , - 5 , - 1014 , - 2983 , - 1304 , - 585 , - 826 , - 2027 , - 4188 , - 2701 , - 2174 , - 2607 , - 4000 , - 1745 , - 450 , - 115 , - 740 , - 2325 , - 262 , - 3767 , - 3624 , - 4441 , - 1610 , - 4347 , - 3436 , - 3485 , - 4494 , - 1855 , - 176 , - 4065 , - 4306 , - 899 , - 3060 , - 1573 , - 1046 , - 1479 , - 2872 , - 617 , - 3930 , - 3595 , - 4220 , - 1197 , - 3742 , - 2639 , - 2496 , - 3313 , - 482 , - 3219 , - 2308 , - 2357 , - 3366 , - 727 , - 3656 , - 2937 , - 3178 , - 4379 , - 1932 , - 445 , - 4526 , - 351 , - 1744 , - 4097 , - 2802 , - 2467 , - 3092 , - 69 , - 2614 , - 1511 , - 1368 , - 2185 , - 3962 , - 2091 , - 1180 , - 1229 , - 2238 , - 4207 , - 2528 , - 1809 , - 2050 , - 3251 , - 804 , - 3925 , - 3398 , - 3831 , - 616 , - 2969 , - 1674 , - 1339 , - 1964 , - 3549 , - 1486 , - 383 , - 240 , - 1057 , - 2834 , - 963 , - 52 , - 101 , - 1110 , - 3079 , - 1400 , - 681 , - 922 , - 2123 , - 4284 , - 2797 , - 2270 , - 2703 , - 4096 , - 1841 , - 546 , - 211 , - 836 , - 2421 , - 358 , - 3863 , - 3720 , - 4537 , - 1706 , - 4443 , - 3532 , - 3581 , - 4590 , - 1951 , - 272 , - 4161 , - 4402 , - 995 , - 3156 , - 1669 , - 1142 , - 1575 , - 2968 , - 713 , - 4026 , - 3691 , - 4316 , - 1293 , - 3838 , - 2735 , - 2592 , - 3409 , - 578 , - 3315 , - 2404 , - 2453 , - 3462 , - 823 , - 3752 , - 3033 , - 3274 , - 4475 , - 2028 , - 541 , - 14 , - 447 , - 1840 , - 4193 , - 2898 , - 2563 , - 3188 , - 165 , - 2710 , - 1607 , - 1464 , - 2281 , - 4058 , - 2187 , - 1276 , - 1325 , - 2334 , - 4303 , - 2624 , - 1905 , - 2146 , - 3347 , - 900 , - 4021 , - 3494 , - 3927 , - 712 , - 3065 , - 1770 , - 1435 , - 2060 , - 3645 , - 1582 , - 479 , - 336 , - 1153 , - 2930 , - 1059 , - 148 , - 197 , - 1206 , - 3175 , - 1496 , - 777 , - 1018 , - 2219 , - 4380 , - 2893 , - 2366 , - 2799 , - 4192 , - 1937 , - 642 , - 307 , - 932 , - 2517 , - 454 , - 3959 , - 3816 , - 25 , - 1802 , - 4539 , - 3628 , - 3677 , - 78 , - 2047 , - 368 , - 4257 , - 4498 , - 1091 , - 3252 , - 1765 , - 1238 , - 1671 , - 3064 , - 809 , - 4122 , - 3787 , - 4412 , - 1389 , - 3934 , - 2831 , - 2688 , - 3505 , - 674 , - 3411 , - 2500 , - 2549 , - 3558 , - 919 , - 3848 , - 3129 , - 3370 , - 4571 , - 2124 , - 637 , - 110 , - 543 , - 1936 , - 4289 , - 2994 , - 2659 , - 3284 , - 261 , - 2806 , - 1703 , - 1560 , - 2377 , - 4154 , - 2283 , - 1372 , - 1421 , - 2430 , - 4399 , - 2720 , - 2001 , - 2242 , - 3443 , - 996 , - 4117 , - 3590 , - 4023 , - 808 , - 3161 , - 1866 , - 1531 , - 2156 , - 3741 , - 1678 , - 575 , - 432 , - 1249 , - 3026 , - 1155 , - 244 , - 293 , - 1302 , - 3271 , - 1592 , - 873 , - 1114 , - 2315 , - 4476 , - 2989 , - 2462 , - 2895 , - 4288 , - 2033 , - 738 , - 403 , - 1028 , - 2613 , - 550 , - 4055 , - 3912 , - 121 , - 1898 , - 27 , - 3724 , - 3773 , - 174 , - 2143 , - 464 , - 4353 , - 4594 , - 1187 , - 3348 , - 1861 , - 1334 , - 1767 , - 3160 , - 905 , - 4218 , - 3883 , - 4508 , - 1485 , - 4030 , - 2927 , - 2784 , - 3601 , - 770 , - 3507 , - 2596 , - 2645 , - 3654 , - 1015 , - 3944 , - 3225 , - 3466 , - 59 , - 2220 , - 733 , - 206 , - 639 , - 2032 , - 4385 , - 3090 , - 2755 , - 3380 , - 357 , - 2902 , - 1799 , - 1656 , - 2473 , - 4250 , - 2379 , - 1468 , - 1517 , - 2526 , - 4495 , - 2816 , - 2097 , - 2338 , - 3539 , - 1092 , - 4213 , - 3686 , - 4119 , - 904 , - 3257 , - 1962 , - 1627 , - 2252 , - 3837 , - 1774 , - 671 , - 528 , - 1345 , - 3122 , - 1251 , - 340 , - 389 , - 1398 , - 3367 , - 1688 , - 969 , - 1210 , - 2411 , - 4572 , - 3085 , - 2558 , - 2991 , - 4384 , - 2129 , - 834 , - 499 , - 1124 , - 2709 , - 646 , - 4151 , - 4008 , - 217 , - 1994 , - 123 , - 3820 , - 3869 , - 270 , - 2239 , - 560 , - 4449 , - 82 , - 1283 , - 3444 , - 1957 , - 1430 , - 1863 , - 3256 , - 1001 , - 4314 , - 3979 , - 4604 , - 1581 , - 4126 , - 3023 , - 2880 , - 3697 , - 866 , - 3603 , - 2692 , - 2741 , - 3750 , - 1111 , - 4040 , - 3321 , - 3562 , - 155 , - 2316 , - 829 , - 302 , - 735 , - 2128 , - 4481 , - 3186 , - 2851 , - 3476 , - 453 , - 2998 , - 1895 , - 1752 , - 2569 , - 4346 , - 2475 , - 1564 , - 1613 , - 2622 , - 4591 , - 2912 , - 2193 , - 2434 , - 3635 , - 1188 , - 4309 , - 3782 , - 4215 , - 1000 , - 3353 , - 2058 , - 1723 , - 2348 , - 3933 , - 1870 , - 767 , - 624 , - 1441 , - 3218 , - 1347 , - 436 , - 485 , - 1494 , - 3463 , - 1784 , - 1065 , - 1306 , - 2507 , - 60 , - 3181 , - 2654 , - 3087 , - 4480 , - 2225 , - 930 , - 595 , - 1220 , - 2805 , - 742 , - 4247 , - 4104 , - 313 , - 2090 , - 219 , - 3916 , - 3965 , - 366 , - 2335 , - 656 , - 4545 , - 178 , - 1379 , - 3540 , - 2053 , - 1526 , - 1959 , - 3352 , - 1097 , - 4410 , - 4075 , - 92 , - 1677 , - 4222 , - 3119 , - 2976 , - 3793 , - 962 , - 3699 , - 2788 , - 2837 , - 3846 , - 1207 , - 4136 , - 3417 , - 3658 , - 251 , - 2412 , - 925 , - 398 , - 831 , - 2224 , - 4577 , - 3282 , - 2947 , - 3572 , - 549 , - 3094 , - 1991 , - 1848 , - 2665 , - 4442 , - 2571 , - 1660 , - 1709 , - 2718 , - 79 , - 3008 , - 2289 , - 2530 , - 3731 , - 1284 , - 4405 , - 3878 , - 4311 , - 1096 , - 3449 , - 2154 , - 1819 , - 2444 , - 4029 , - 1966 , - 863 , - 720 , - 1537 , - 3314 , - 1443 , - 532 , - 581 , - 1590 , - 3559 , - 1880 , - 1161 , - 1402 , - 2603 , - 156 , - 3277 , - 2750 , - 3183 , - 4576 , - 2321 , - 1026 , - 691 , - 1316 , - 2901 , - 838 , - 4343 , - 4200 , - 409 , - 2186 , - 315 , - 4012 , - 4061 , - 462 , - 2431 , - 752 , - 33 , - 274 , - 1475 , - 3636 , - 2149 , - 1622 , - 2055 , - 3448 , - 1193 , - 4506 , - 4171 , - 188 , - 1773 , - 4318 , - 3215 , - 3072 , - 3889 , - 1058 , - 3795 , - 2884 , - 2933 , - 3942 , - 1303 , - 4232 , - 3513 , - 3754 , - 347 , - 2508 , - 1021 , - 494 , - 927 , - 2320 , - 65 , - 3378 , - 3043 , - 3668 , - 645 , - 3190 , - 2087 , - 1944 , - 2761 , - 4538 , - 2667 , - 1756 , - 1805 , - 2814 , - 175 , - 3104 , - 2385 , - 2626 , - 3827 , - 1380 , - 4501 , - 3974 , - 4407 , - 1192 , - 3545 , - 2250 , - 1915 , - 2540 , - 4125 , - 2062 , - 959 , - 816 , - 1633 , - 3410 , - 1539 , - 628 , - 677 , - 1686 , - 3655 , - 1976 , - 1257 , - 1498 , - 2699 , - 252 , - 3373 , - 2846 , - 3279 , - 64 , - 2417 , - 1122 , - 787 , - 1412 , - 2997 , - 934 , - 4439 , - 4296 , - 505 , - 2282 , - 411 , - 4108 , - 4157 , - 558 , - 2527 , - 848 , - 129 , - 370 , - 1571 , - 3732 , - 2245 , - 1718 , - 2151 , - 3544 , - 1289 , - 4602 , - 4267 , - 284 , - 1869 , - 4414 , - 3311 , - 3168 , - 3985 , - 1154 , - 3891 , - 2980 , - 3029 , - 4038 , - 1399 , - 4328 , - 3609 , - 3850 , - 443 , - 2604 , - 1117 , - 590 , - 1023 , - 2416 , - 161 , - 3474 , - 3139 , - 3764 , - 741 , - 3286 , - 2183 , - 2040 , - 2857 , - 26 , - 2763 , - 1852 , - 1901 , - 2910 , - 271 , - 3200 , - 2481 , - 2722 , - 3923 , - 1476 , - 4597 , - 4070 , - 4503 , - 1288 , - 3641 , - 2346 , - 2011 , - 2636 , - 4221 , - 2158 , - 1055 , - 912 , - 1729 , - 3506 , - 1635 , - 724 , - 773 , - 1782 , - 3751 , - 2072 , - 1353 , - 1594 , - 2795 , - 348 , - 3469 , - 2942 , - 3375 , - 160 , - 2513 , - 1218 , - 883 , - 1508 , - 3093 , - 1030 , - 4535 , - 4392 , - 601 , - 2378 , - 507 , - 4204 , - 4253 , - 654 , - 2623 , - 944 , - 225 , - 466 , - 1667 , - 3828 , - 2341 , - 1814 , - 2247 , - 3640 , - 1385 , - 90 , - 4363 , - 380 , - 1965 , - 4510 , - 3407 , - 3264 , - 4081 , - 1250 , - 3987 , - 3076 , - 3125 , - 4134 , - 1495 , - 4424 , - 3705 , - 3946 , - 539 , - 2700 , - 1213 , - 686 , - 1119 , - 2512 , - 257 , - 3570 , - 3235 , - 3860 , - 837 , - 3382 , - 2279 , - 2136 , - 2953 , - 122 , - 2859 , - 1948 , - 1997 , - 3006 , - 367 , - 3296 , - 2577 , - 2818 , - 4019 , - 1572 , - 85 , - 4166 , - 4599 , - 1384 , - 3737 , - 2442 , - 2107 , - 2732 , - 4317 , - 2254 , - 1151 , - 1008 , - 1825 , - 3602 , - 1731 , - 820 , - 869 , - 1878 , - 3847 , - 2168 , - 1449 , - 1690 , - 2891 , - 444 , - 3565 , - 3038 , - 3471 , - 256 , - 2609 , - 1314 , - 979 , - 1604 , - 3189 , - 1126 , - 23 , - 4488 , - 697 , - 2474 , - 603 , - 4300 , - 4349 , - 750 , - 2719 , - 1040 , - 321 , - 562 , - 1763 , - 3924 , - 2437 , - 1910 , - 2343 , - 3736 , - 1481 , - 186 , - 4459 , - 476 , - 2061 , - 4606 , - 3503 , - 3360 , - 4177 , - 1346 , - 4083 , - 3172 , - 3221 , - 4230 , - 1591 , - 4520 , - 3801 , - 4042 , - 635 , - 2796 , - 1309 , - 782 , - 1215 , - 2608 , - 353 , - 3666 , - 3331 , - 3956 , - 933 , - 3478 , - 2375 , - 2232 , - 3049 , - 218 , - 2955 , - 2044 , - 2093 , - 3102 , - 463 , - 3392 , - 2673 , - 2914 , - 4115 , - 1668 , - 181 , - 4262 , - 87 , - 1480 , - 3833 , - 2538 , - 2203 , - 2828 , - 4413 , - 2350 , - 1247 , - 1104 , - 1921 , - 3698 , - 1827 , - 916 , - 965 , - 1974 , - 3943 , - 2264 , - 1545 , - 1786 , - 2987 , - 540 , - 3661 , - 3134 , - 3567 , - 352 , - 2705 , - 1410 , - 1075 , - 1700 , - 3285 , - 1222 , - 119 , - 4584 , - 793 , - 2570 , - 699 , - 4396 , - 4445 , - 846 , - 2815 , - 1136 , - 417 , - 658 , - 1859 , - 4020 , - 2533 , - 2006 , - 2439 , - 3832 , - 1577 , - 282 , - 4555 , - 572 , - 2157 , - 94 , - 3599 , - 3456 , - 4273 , - 1442 , - 4179 , - 3268 , - 3317 , - 4326 , - 1687 , - 8 , - 3897 , - 4138 , - 731 , - 2892 , - 1405 , - 878 , - 1311 , - 2704 , - 449 , - 3762 , - 3427 , - 4052 , - 1029 , - 3574 , - 2471 , - 2328 , - 3145 , - 314 , - 3051 , - 2140 , - 2189 , - 3198 , - 559 , - 3488 , - 2769 , - 3010 , - 4211 , - 1764 , - 277 , - 4358 , - 183 , - 1576 , - 3929 , - 2634 , - 2299 , - 2924 , - 4509 , - 2446 , - 1343 , - 1200 , - 2017 , - 3794 , - 1923 , - 1012 , - 1061 , - 2070 , - 4039 , - 2360 , - 1641 , - 1882 , - 3083 , - 636 , - 3757 , - 3230 , - 3663 , - 448 , - 2801 , - 1506 , - 1171 , - 1796 , - 3381 , - 1318 , - 215 , - 72 , - 889 , - 2666 , - 795 , - 4492 , - 4541 , - 942 , - 2911 , - 1232 , - 513 , - 754 , - 1955 , - 4116 , - 2629 , - 2102 , - 2535 , - 3928 , - 1673 , - 378 , - 43 , - 668 , - 2253 , - 190 , - 3695 , - 3552 , - 4369 , - 1538 , - 4275 , - 3364 , - 3413 , - 4422 , - 1783 , - 104 , - 3993 , - 4234 , - 827 , - 2988 , - 1501 , - 974 , - 1407 , - 2800 , - 545 , - 3858 , - 3523 , - 4148 , - 1125 , - 3670 , - 2567 , - 2424 , - 3241 , - 410 , - 3147 , - 2236 , - 2285 , - 3294 , - 655 , - 3584 , - 2865 , - 3106 , - 4307 , - 1860 , - 373 , - 4454 , - 279 , - 1672 , - 4025 , - 2730 , - 2395 , - 3020 , - 4605 , - 2542 , - 1439 , - 1296 , - 2113 , - 3890 , - 2019 , - 1108 , - 1157 , - 2166 , - 4135 , - 2456 , - 1737 , - 1978 , - 3179 , - 732 , - 3853 , - 3326 , - 3759 , - 544 , - 2897 , - 1602 , - 1267 , - 1892 , - 3477 , - 1414 , - 311 , - 168 , - 985 , - 2762 , - 891 , - 4588 , - 29 , - 1038 , - 3007 , - 1328 , - 609 , - 850 , - 2051 , - 4212 , - 2725 , - 2198 , - 2631 , - 4024 , - 1769 , - 474 , - 139 , - 764 , - 2349 , - 286 , - 3791 , - 3648 , - 4465 , - 1634 , - 4371 , - 3460 , - 3509 , - 4518 , - 1879 , - 200 , - 4089 , - 4330 , - 923 , - 3084 , - 1597 , - 1070 , - 1503 , - 2896 , - 641 , - 3954 , - 3619 , - 4244 , - 1221 , - 3766 , - 2663 , - 2520 , - 3337 , - 506 , - 3243 , - 2332 , - 2381 , - 3390 , - 751 , - 3680 , - 2961 , - 3202 , - 4403 , - 1956 , - 469 , - 4550 , - 375 , - 1768 , - 4121 , - 2826 , - 2491 , - 3116 , - 93 , - 2638 , - 1535 , - 1392 , - 2209 , - 3986 , - 2115 , - 1204 , - 1253 , - 2262 , - 4231 , - 2552 , - 1833 , - 2074 , - 3275 , - 828 , - 3949 , - 3422 , - 3855 , - 640 , - 2993 , - 1698 , - 1363 , - 1988 , - 3573 , - 1510 , - 407 , - 264 , - 1081 , - 2858 , - 987 , - 76 , - 125 , - 1134 , - 3103 , - 1424 , - 705 , - 946 , - 2147 , - 4308 , - 2821 , - 2294 , - 2727 , - 4120 , - 1865 , - 570 , - 235 , - 860 , - 2445 , - 382 , - 3887 , - 3744 , - 4561 , - 1730 , - 4467 , - 3556 , - 3605 , - 6 , - 1975 , - 296 , - 4185 , - 4426 , - 1019 , - 3180 , - 1693 , - 1166 , - 1599 , - 2992 , - 737 , - 4050 , - 3715 , - 4340 , - 1317 , - 3862 , - 2759 , - 2616 , - 3433 , - 602 , - 3339 , - 2428 , - 2477 , - 3486 , - 847 , - 3776 , - 3057 , - 3298 , - 4499 , - 2052 , - 565 , - 38 , - 471 , - 1864 , - 4217 , - 2922 , - 2587 , - 3212 , - 189 , - 2734 , - 1631 , - 1488 , - 2305 , - 4082 , - 2211 , - 1300 , - 1349 , - 2358 , - 4327 , - 2648 , - 1929 , - 2170 , - 3371 , - 924 , - 4045 , - 3518 , - 3951 , - 736 , - 3089 , - 1794 , - 1459 , - 2084 , - 3669 , - 1606 , - 503 , - 360 , - 1177 , - 2954 , - 1083 , - 172 , - 221 , - 1230 , - 3199 , - 1520 , - 801 , - 1042 , - 2243 , - 4404 , - 2917 , - 2390 , - 2823 , - 4216 , - 1961 , - 666 , - 331 , - 956 , - 2541 , - 478 , - 3983 , - 3840 , - 49 , - 1826 , - 4563 , - 3652 , - 3701 , - 102 , - 2071 , - 392 , - 4281 , - 4522 , - 1115 , - 3276 , - 1789 , - 1262 , - 1695 , - 3088 , - 833 , - 4146 , - 3811 , - 4436 , - 1413 , - 3958 , - 2855 , - 2712 , - 3529 , - 698 , - 3435 , - 2524 , - 2573 , - 3582 , - 943 , - 3872 , - 3153 , - 3394 , - 4595 , - 2148 , - 661 , - 134 , - 567 , - 1960 , - 4313 , - 3018 , - 2683 , - 3308 , - 285 , - 2830 , - 1727 , - 1584 , - 2401 , - 4178 , - 2307 , - 1396 , - 1445 , - 2454 , - 4423 , - 2744 , - 2025 , - 2266 , - 3467 , - 1020 , - 4141 , - 3614 , - 4047 , - 832 , - 3185 , - 1890 , - 1555 , - 2180 , - 3765 , - 1702 , - 599 , - 456 , - 1273 , - 3050 , - 1179 , - 268 , - 317 , - 1326 , - 3295 , - 1616 , - 897 , - 1138 , - 2339 , - 4500 , - 3013 , - 2486 , - 2919 , - 4312 , - 2057 , - 762 , - 427 , - 1052 , - 2637 , - 574 , - 4079 , - 3936 , - 145 , - 1922 , - 51 , - 3748 , - 3797 , - 198 , - 2167 , - 488 , - 4377 , - 10 , - 1211 , - 3372 , - 1885 , - 1358 , - 1791 , - 3184 , - 929 , - 4242 , - 3907 , - 4532 , - 1509 , - 4054 , - 2951 , - 2808 , - 3625 , - 794 , - 3531 , - 2620 , - 2669 , - 3678 , - 1039 , - 3968 , - 3249 , - 3490 , - 83 , - 2244 , - 757 , - 230 , - 663 , - 2056 , - 4409 , - 3114 , - 2779 , - 3404 , - 381 , - 2926 , - 1823 , - 1680 , - 2497 , - 4274 , - 2403 , - 1492 , - 1541 , - 2550 , - 4519 , - 2840 , - 2121 , - 2362 , - 3563 , - 1116 , - 4237 , - 3710 , - 4143 , - 928 , - 3281 , - 1986 , - 1651 , - 2276 , - 3861 , - 1798 , - 695 , - 552 , - 1369 , - 3146 , - 1275 , - 364 , - 413 , - 1422 , - 3391 , - 1712 , - 993 , - 1234 , - 2435 , - 4596 , - 3109 , - 2582 , - 3015 , - 4408 , - 2153 , - 858 , - 523 , - 1148 , - 2733 , - 670 , - 4175 , - 4032 , - 241 , - 2018 , - 147 , - 3844 , - 3893 , - 294 , - 2263 , - 584 , - 4473 , - 106 , - 1307 , - 3468 , - 1981 , - 1454 , - 1887 , - 3280 , - 1025 , - 4338 , - 4003 , - 20 , - 1605 , - 4150 , - 3047 , - 2904 , - 3721 , - 890 , - 3627 , - 2716 , - 2765 , - 3774 , - 1135 , - 4064 , - 3345 , - 3586 , - 179 , - 2340 , - 853 , - 326 , - 759 , - 2152 , - 4505 , - 3210 , - 2875 , - 3500 , - 477 , - 3022 , - 1919 , - 1776 , - 2593 , - 4370 , - 2499 , - 1588 , - 1637 , - 2646 , - 7 , - 2936 , - 2217 , - 2458 , - 3659 , - 1212 , - 4333 , - 3806 , - 4239 , - 1024 , - 3377 , - 2082 , - 1747 , - 2372 , - 3957 , - 1894 , - 791 , - 648 , - 1465 , - 3242 , - 1371 , - 460 , - 509 , - 1518 , - 3487 , - 1808 , - 1089 , - 1330 , - 2531 , - 84 , - 3205 , - 2678 , - 3111 , - 4504 , - 2249 , - 954 , - 619 , - 1244 , - 2829 , - 766 , - 4271 , - 4128 , - 337 , - 2114 , - 243 , - 3940 , - 3989 , - 390 , - 2359 , - 680 , - 4569 , - 202 , - 1403 , - 3564 , - 2077 , - 1550 , - 1983 , - 3376 , - 1121 , - 4434 , - 4099 , - 116 , - 1701 , - 4246 , - 3143 , - 3000 , - 3817 , - 986 , - 3723 , - 2812 , - 2861 , - 3870 , - 1231 , - 4160 , - 3441 , - 3682 , - 275 , - 2436 , - 949 , - 422 , - 855 , - 2248 , - 4601 , - 3306 , - 2971 , - 3596 , - 573 , - 3118 , - 2015 , - 1872 , - 2689 , - 4466 , - 2595 , - 1684 , - 1733 , - 2742 , - 103 , - 3032 , - 2313 , - 2554 , - 3755 , - 1308 , - 4429 , - 3902 , - 4335 , - 1120 , - 3473 , - 2178 , - 1843 , - 2468 , - 4053 , - 1990 , - 887 , - 744 , - 1561 , - 3338 , - 1467 , - 556 , - 605 , - 1614 , - 3583 , - 1904 , - 1185 , - 1426 , - 2627 , - 180 , - 3301 , - 2774 , - 3207 , - 4600 , - 2345 , - 1050 , - 715 , - 1340 , - 2925 , - 862 , - 4367 , - 4224 , - 433 , - 2210 , - 339 , - 4036 , - 4085 , - 486 , - 2455 , - 776 , - 57 , - 298 , - 1499 , - 3660 , - 2173 , - 1646 , - 2079 , - 3472 , - 1217 , - 4530 , - 4195 , - 212 , - 1797 , - 4342 , - 3239 , - 3096 , - 3913 , - 1082 , - 3819 , - 2908 , - 2957 , - 3966 , - 1327 , - 4256 , - 3537 , - 3778 , - 371 , - 2532 , - 1045 , - 518 , - 951 , - 2344 , - 89 , - 3402 , - 3067 , - 3692 , - 669 , - 3214 , - 2111 , - 1968 , - 2785 , - 4562 , - 2691 , - 1780 , - 1829 , - 2838 , - 199 , - 3128 , - 2409 , - 2650 , - 3851 , - 1404 , - 4525 , - 3998 , - 4431 , - 1216 , - 3569 , - 2274 , - 1939 , - 2564 , - 4149 , - 2086 , - 983 , - 840 , - 1657 , - 3434 , - 1563 , - 652 , - 701 , - 1710 , - 3679 , - 2000 , - 1281 , - 1522 , - 2723 , - 276 , - 3397 , - 2870 , - 3303 , - 88 , - 2441 , - 1146 , - 811 , - 1436 , - 3021 , - 958 , - 4463 , - 4320 , - 529 , - 2306 , - 435 , - 4132 , - 4181 , - 582 , - 2551 , - 872 , - 153 , - 394 , - 1595 , - 3756 , - 2269 , - 1742 , - 2175 , - 3568 , - 1313 , - 18 , - 4291 , - 308 , - 1893 , - 4438 , - 3335 , - 3192 , - 4009 , - 1178 , - 3915 , - 3004 , - 3053 , - 4062 , - 1423 , - 4352 , - 3633 , - 3874 , - 467 , - 2628 , - 1141 , - 614 , - 1047 , - 2440 , - 185 , - 3498 , - 3163 , - 3788 , - 765 , - 3310 , - 2207 , - 2064 , - 2881 , - 50 , - 2787 , - 1876 , - 1925 , - 2934 , - 295 , - 3224 , - 2505 , - 2746 , - 3947 , - 1500 , - 13 , - 4094 , - 4527 , - 1312 , - 3665 , - 2370 , - 2035 , - 2660 , - 4245 , - 2182 , - 1079 , - 936 , - 1753 , - 3530 , - 1659 , - 748 , - 797 , - 1806 , - 3775 , - 2096 , - 1377 , - 1618 , - 2819 , - 372 , - 3493 , - 2966 , - 3399 , - 184 , - 2537 , - 1242 , - 907 , - 1532 , - 3117 , - 1054 , - 4559 , - 4416 , - 625 , - 2402 , - 531 , - 4228 , - 4277 , - 678 , - 2647 , - 968 , - 249 , - 490 , - 1691 , - 3852 , - 2365 , - 1838 , - 2271 , - 3664 , - 1409 , - 114 , - 4387 , - 404 , - 1989 , - 4534 , - 3431 , - 3288 , - 4105 , - 1274 , - 4011 , - 3100 , - 3149 , - 4158 , - 1519 , - 4448 , - 3729 , - 3970 , - 563 , - 2724 , - 1237 , - 710 , - 1143 , - 2536 , - 281 , - 3594 , - 3259 , - 3884 , - 861 , - 3406 , - 2303 , - 2160 , - 2977 , - 146 , - 2883 , - 1972 , - 2021 , - 3030 , - 391 , - 3320 , - 2601 , - 2842 , - 4043 , - 1596 , - 109 , - 4190 , - 15 , - 1408 , - 3761 , - 2466 , - 2131 , - 2756 , - 4341 , - 2278 , - 1175 , - 1032 , - 1849 , - 3626 , - 1755 , - 844 , - 893 , - 1902 , - 3871 , - 2192 , - 1473 , - 1714 , - 2915 , - 468 , - 3589 , - 3062 , - 3495 , - 280 , - 2633 , - 1338 , - 1003 , - 1628 , - 3213 , - 1150 , - 47 , - 4512 , - 721 , - 2498 , - 627 , - 4324 , - 4373 , - 774 , - 2743 , - 1064 , - 345 , - 586 , - 1787 , - 3948 , - 2461 , - 1934 , - 2367 , - 3760 , - 1505 , - 210 , - 4483 , - 500 , - 2085 , - 22 , - 3527 , - 3384 , - 4201 , - 1370 , - 4107 , - 3196 , - 3245 , - 4254 , - 1615 , - 4544 , - 3825 , - 4066 , - 659 , - 2820 , - 1333 , - 806 , - 1239 , - 2632 , - 377 , - 3690 , - 3355 , - 3980 , - 957 , - 3502 , - 2399 , - 2256 , - 3073 , - 242 , - 2979 , - 2068 , - 2117 , - 3126 , - 487 , - 3416 , - 2697 , - 2938 , - 4139 , - 1692 , - 205 , - 4286 , - 111 , - 1504 , - 3857 , - 2562 , - 2227 , - 2852 , - 4437 , - 2374 , - 1271 , - 1128 , - 1945 , - 3722 , - 1851 , - 940 , - 989 , - 1998 , - 3967 , - 2288 , - 1569 , - 1810 , - 3011 , - 564 , - 3685 , - 3158 , - 3591 , - 376 , - 2729 , - 1434 , - 1099 , - 1724 , - 3309 , - 1246 , - 143 , - 0 , - 183 , - 658 , - 1425 , - 2484 , - 3835 , - 806 , - 2741 , - 296 , - 2815 , - 954 , - 4057 , - 2780 , - 1795 , - 1102 , - 701 , - 592 , - 775 , - 1250 , - 2017 , - 3076 , - 4427 , - 1398 , - 3333 , - 888 , - 3407 , - 1546 , - 4649 , - 3372 , - 2387 , - 1694 , - 1293 , - 1184 , - 1367 , - 1842 , - 2609 , - 3668 , - 347 , - 1990 , - 3925 , - 1480 , - 3999 , - 2138 , - 569 , - 3964 , - 2979 , - 2286 , - 1885 , - 1776 , - 1959 , - 2434 , - 3201 , - 4260 , - 939 , - 2582 , - 4517 , - 2072 , - 4591 , - 2730 , - 1161 , - 4556 , - 3571 , - 2878 , - 2477 , - 2368 , - 2551 , - 3026 , - 3793 , - 180 , - 1531 , - 3174 , - 437 , - 2664 , - 511 , - 3322 , - 1753 , - 476 , - 4163 , - 3470 , - 3069 , - 2960 , - 3143 , - 3618 , - 4385 , - 772 , - 2123 , - 3766 , - 1029 , - 3256 , - 1103 , - 3914 , - 2345 , - 1068 , - 83 , - 4062 , - 3661 , - 3552 , - 3735 , - 4210 , - 305 , - 1364 , - 2715 , - 4358 , - 1621 , - 3848 , - 1695 , - 4506 , - 2937 , - 1660 , - 675 , - 4654 , - 4253 , - 4144 , - 4327 , - 130 , - 897 , - 1956 , - 3307 , - 278 , - 2213 , - 4440 , - 2287 , - 426 , - 3529 , - 2252 , - 1267 , - 574 , - 173 , - 64 , - 247 , - 722 , - 1489 , - 2548 , - 3899 , - 870 , - 2805 , - 360 , - 2879 , - 1018 , - 4121 , - 2844 , - 1859 , - 1166 , - 765 , - 656 , - 839 , - 1314 , - 2081 , - 3140 , - 4491 , - 1462 , - 3397 , - 952 , - 3471 , - 1610 , - 41 , - 3436 , - 2451 , - 1758 , - 1357 , - 1248 , - 1431 , - 1906 , - 2673 , - 3732 , - 411 , - 2054 , - 3989 , - 1544 , - 4063 , - 2202 , - 633 , - 4028 , - 3043 , - 2350 , - 1949 , - 1840 , - 2023 , - 2498 , - 3265 , - 4324 , - 1003 , - 2646 , - 4581 , - 2136 , - 4655 , - 2794 , - 1225 , - 4620 , - 3635 , - 2942 , - 2541 , - 2432 , - 2615 , - 3090 , - 3857 , - 244 , - 1595 , - 3238 , - 501 , - 2728 , - 575 , - 3386 , - 1817 , - 540 , - 4227 , - 3534 , - 3133 , - 3024 , - 3207 , - 3682 , - 4449 , - 836 , - 2187 , - 3830 , - 1093 , - 3320 , - 1167 , - 3978 , - 2409 , - 1132 , - 147 , - 4126 , - 3725 , - 3616 , - 3799 , - 4274 , - 369 , - 1428 , - 2779 , - 4422 , - 1685 , - 3912 , - 1759 , - 4570 , - 3001 , - 1724 , - 739 , - 46 , - 4317 , - 4208 , - 4391 , - 194 , - 961 , - 2020 , - 3371 , - 342 , - 2277 , - 4504 , - 2351 , - 490 , - 3593 , - 2316 , - 1331 , - 638 , - 237 , - 128 , - 311 , - 786 , - 1553 , - 2612 , - 3963 , - 934 , - 2869 , - 424 , - 2943 , - 1082 , - 4185 , - 2908 , - 1923 , - 1230 , - 829 , - 720 , - 903 , - 1378 , - 2145 , - 3204 , - 4555 , - 1526 , - 3461 , - 1016 , - 3535 , - 1674 , - 105 , - 3500 , - 2515 , - 1822 , - 1421 , - 1312 , - 1495 , - 1970 , - 2737 , - 3796 , - 475 , - 2118 , - 4053 , - 1608 , - 4127 , - 2266 , - 697 , - 4092 , - 3107 , - 2414 , - 2013 , - 1904 , - 2087 , - 2562 , - 3329 , - 4388 , - 1067 , - 2710 , - 4645 , - 2200 , - 47 , - 2858 , - 1289 , - 12 , - 3699 , - 3006 , - 2605 , - 2496 , - 2679 , - 3154 , - 3921 , - 308 , - 1659 , - 3302 , - 565 , - 2792 , - 639 , - 3450 , - 1881 , - 604 , - 4291 , - 3598 , - 3197 , - 3088 , - 3271 , - 3746 , - 4513 , - 900 , - 2251 , - 3894 , - 1157 , - 3384 , - 1231 , - 4042 , - 2473 , - 1196 , - 211 , - 4190 , - 3789 , - 3680 , - 3863 , - 4338 , - 433 , - 1492 , - 2843 , - 4486 , - 1749 , - 3976 , - 1823 , - 4634 , - 3065 , - 1788 , - 803 , - 110 , - 4381 , - 4272 , - 4455 , - 258 , - 1025 , - 2084 , - 3435 , - 406 , - 2341 , - 4568 , - 2415 , - 554 , - 3657 , - 2380 , - 1395 , - 702 , - 301 , - 192 , - 375 , - 850 , - 1617 , - 2676 , - 4027 , - 998 , - 2933 , - 488 , - 3007 , - 1146 , - 4249 , - 2972 , - 1987 , - 1294 , - 893 , - 784 , - 967 , - 1442 , - 2209 , - 3268 , - 4619 , - 1590 , - 3525 , - 1080 , - 3599 , - 1738 , - 169 , - 3564 , - 2579 , - 1886 , - 1485 , - 1376 , - 1559 , - 2034 , - 2801 , - 3860 , - 539 , - 2182 , - 4117 , - 1672 , - 4191 , - 2330 , - 761 , - 4156 , - 3171 , - 2478 , - 2077 , - 1968 , - 2151 , - 2626 , - 3393 , - 4452 , - 1131 , - 2774 , - 37 , - 2264 , - 111 , - 2922 , - 1353 , - 76 , - 3763 , - 3070 , - 2669 , - 2560 , - 2743 , - 3218 , - 3985 , - 372 , - 1723 , - 3366 , - 629 , - 2856 , - 703 , - 3514 , - 1945 , - 668 , - 4355 , - 3662 , - 3261 , - 3152 , - 3335 , - 3810 , - 4577 , - 964 , - 2315 , - 3958 , - 1221 , - 3448 , - 1295 , - 4106 , - 2537 , - 1260 , - 275 , - 4254 , - 3853 , - 3744 , - 3927 , - 4402 , - 497 , - 1556 , - 2907 , - 4550 , - 1813 , - 4040 , - 1887 , - 26 , - 3129 , - 1852 , - 867 , - 174 , - 4445 , - 4336 , - 4519 , - 322 , - 1089 , - 2148 , - 3499 , - 470 , - 2405 , - 4632 , - 2479 , - 618 , - 3721 , - 2444 , - 1459 , - 766 , - 365 , - 256 , - 439 , - 914 , - 1681 , - 2740 , - 4091 , - 1062 , - 2997 , - 552 , - 3071 , - 1210 , - 4313 , - 3036 , - 2051 , - 1358 , - 957 , - 848 , - 1031 , - 1506 , - 2273 , - 3332 , - 11 , - 1654 , - 3589 , - 1144 , - 3663 , - 1802 , - 233 , - 3628 , - 2643 , - 1950 , - 1549 , - 1440 , - 1623 , - 2098 , - 2865 , - 3924 , - 603 , - 2246 , - 4181 , - 1736 , - 4255 , - 2394 , - 825 , - 4220 , - 3235 , - 2542 , - 2141 , - 2032 , - 2215 , - 2690 , - 3457 , - 4516 , - 1195 , - 2838 , - 101 , - 2328 , - 175 , - 2986 , - 1417 , - 140 , - 3827 , - 3134 , - 2733 , - 2624 , - 2807 , - 3282 , - 4049 , - 436 , - 1787 , - 3430 , - 693 , - 2920 , - 767 , - 3578 , - 2009 , - 732 , - 4419 , - 3726 , - 3325 , - 3216 , - 3399 , - 3874 , - 4641 , - 1028 , - 2379 , - 4022 , - 1285 , - 3512 , - 1359 , - 4170 , - 2601 , - 1324 , - 339 , - 4318 , - 3917 , - 3808 , - 3991 , - 4466 , - 561 , - 1620 , - 2971 , - 4614 , - 1877 , - 4104 , - 1951 , - 90 , - 3193 , - 1916 , - 931 , - 238 , - 4509 , - 4400 , - 4583 , - 386 , - 1153 , - 2212 , - 3563 , - 534 , - 2469 , - 24 , - 2543 , - 682 , - 3785 , - 2508 , - 1523 , - 830 , - 429 , - 320 , - 503 , - 978 , - 1745 , - 2804 , - 4155 , - 1126 , - 3061 , - 616 , - 3135 , - 1274 , - 4377 , - 3100 , - 2115 , - 1422 , - 1021 , - 912 , - 1095 , - 1570 , - 2337 , - 3396 , - 75 , - 1718 , - 3653 , - 1208 , - 3727 , - 1866 , - 297 , - 3692 , - 2707 , - 2014 , - 1613 , - 1504 , - 1687 , - 2162 , - 2929 , - 3988 , - 667 , - 2310 , - 4245 , - 1800 , - 4319 , - 2458 , - 889 , - 4284 , - 3299 , - 2606 , - 2205 , - 2096 , - 2279 , - 2754 , - 3521 , - 4580 , - 1259 , - 2902 , - 165 , - 2392 , - 239 , - 3050 , - 1481 , - 204 , - 3891 , - 3198 , - 2797 , - 2688 , - 2871 , - 3346 , - 4113 , - 500 , - 1851 , - 3494 , - 757 , - 2984 , - 831 , - 3642 , - 2073 , - 796 , - 4483 , - 3790 , - 3389 , - 3280 , - 3463 , - 3938 , - 33 , - 1092 , - 2443 , - 4086 , - 1349 , - 3576 , - 1423 , - 4234 , - 2665 , - 1388 , - 403 , - 4382 , - 3981 , - 3872 , - 4055 , - 4530 , - 625 , - 1684 , - 3035 , - 6 , - 1941 , - 4168 , - 2015 , - 154 , - 3257 , - 1980 , - 995 , - 302 , - 4573 , - 4464 , - 4647 , - 450 , - 1217 , - 2276 , - 3627 , - 598 , - 2533 , - 88 , - 2607 , - 746 , - 3849 , - 2572 , - 1587 , - 894 , - 493 , - 384 , - 567 , - 1042 , - 1809 , - 2868 , - 4219 , - 1190 , - 3125 , - 680 , - 3199 , - 1338 , - 4441 , - 3164 , - 2179 , - 1486 , - 1085 , - 976 , - 1159 , - 1634 , - 2401 , - 3460 , - 139 , - 1782 , - 3717 , - 1272 , - 3791 , - 1930 , - 361 , - 3756 , - 2771 , - 2078 , - 1677 , - 1568 , - 1751 , - 2226 , - 2993 , - 4052 , - 731 , - 2374 , - 4309 , - 1864 , - 4383 , - 2522 , - 953 , - 4348 , - 3363 , - 2670 , - 2269 , - 2160 , - 2343 , - 2818 , - 3585 , - 4644 , - 1323 , - 2966 , - 229 , - 2456 , - 303 , - 3114 , - 1545 , - 268 , - 3955 , - 3262 , - 2861 , - 2752 , - 2935 , - 3410 , - 4177 , - 564 , - 1915 , - 3558 , - 821 , - 3048 , - 895 , - 3706 , - 2137 , - 860 , - 4547 , - 3854 , - 3453 , - 3344 , - 3527 , - 4002 , - 97 , - 1156 , - 2507 , - 4150 , - 1413 , - 3640 , - 1487 , - 4298 , - 2729 , - 1452 , - 467 , - 4446 , - 4045 , - 3936 , - 4119 , - 4594 , - 689 , - 1748 , - 3099 , - 70 , - 2005 , - 4232 , - 2079 , - 218 , - 3321 , - 2044 , - 1059 , - 366 , - 4637 , - 4528 , - 39 , - 514 , - 1281 , - 2340 , - 3691 , - 662 , - 2597 , - 152 , - 2671 , - 810 , - 3913 , - 2636 , - 1651 , - 958 , - 557 , - 448 , - 631 , - 1106 , - 1873 , - 2932 , - 4283 , - 1254 , - 3189 , - 744 , - 3263 , - 1402 , - 4505 , - 3228 , - 2243 , - 1550 , - 1149 , - 1040 , - 1223 , - 1698 , - 2465 , - 3524 , - 203 , - 1846 , - 3781 , - 1336 , - 3855 , - 1994 , - 425 , - 3820 , - 2835 , - 2142 , - 1741 , - 1632 , - 1815 , - 2290 , - 3057 , - 4116 , - 795 , - 2438 , - 4373 , - 1928 , - 4447 , - 2586 , - 1017 , - 4412 , - 3427 , - 2734 , - 2333 , - 2224 , - 2407 , - 2882 , - 3649 , - 36 , - 1387 , - 3030 , - 293 , - 2520 , - 367 , - 3178 , - 1609 , - 332 , - 4019 , - 3326 , - 2925 , - 2816 , - 2999 , - 3474 , - 4241 , - 628 , - 1979 , - 3622 , - 885 , - 3112 , - 959 , - 3770 , - 2201 , - 924 , - 4611 , - 3918 , - 3517 , - 3408 , - 3591 , - 4066 , - 161 , - 1220 , - 2571 , - 4214 , - 1477 , - 3704 , - 1551 , - 4362 , - 2793 , - 1516 , - 531 , - 4510 , - 4109 , - 4000 , - 4183 , - 4658 , - 753 , - 1812 , - 3163 , - 134 , - 2069 , - 4296 , - 2143 , - 282 , - 3385 , - 2108 , - 1123 , - 430 , - 29 , - 4592 , - 103 , - 578 , - 1345 , - 2404 , - 3755 , - 726 , - 2661 , - 216 , - 2735 , - 874 , - 3977 , - 2700 , - 1715 , - 1022 , - 621 , - 512 , - 695 , - 1170 , - 1937 , - 2996 , - 4347 , - 1318 , - 3253 , - 808 , - 3327 , - 1466 , - 4569 , - 3292 , - 2307 , - 1614 , - 1213 , - 1104 , - 1287 , - 1762 , - 2529 , - 3588 , - 267 , - 1910 , - 3845 , - 1400 , - 3919 , - 2058 , - 489 , - 3884 , - 2899 , - 2206 , - 1805 , - 1696 , - 1879 , - 2354 , - 3121 , - 4180 , - 859 , - 2502 , - 4437 , - 1992 , - 4511 , - 2650 , - 1081 , - 4476 , - 3491 , - 2798 , - 2397 , - 2288 , - 2471 , - 2946 , - 3713 , - 100 , - 1451 , - 3094 , - 357 , - 2584 , - 431 , - 3242 , - 1673 , - 396 , - 4083 , - 3390 , - 2989 , - 2880 , - 3063 , - 3538 , - 4305 , - 692 , - 2043 , - 3686 , - 949 , - 3176 , - 1023 , - 3834 , - 2265 , - 988 , - 3 , - 3982 , - 3581 , - 3472 , - 3655 , - 4130 , - 225 , - 1284 , - 2635 , - 4278 , - 1541 , - 3768 , - 1615 , - 4426 , - 2857 , - 1580 , - 595 , - 4574 , - 4173 , - 4064 , - 4247 , - 50 , - 817 , - 1876 , - 3227 , - 198 , - 2133 , - 4360 , - 2207 , - 346 , - 3449 , - 2172 , - 1187 , - 494 , - 93 , - 4656 , - 167 , - 642 , - 1409 , - 2468 , - 3819 , - 790 , - 2725 , - 280 , - 2799 , - 938 , - 4041 , - 2764 , - 1779 , - 1086 , - 685 , - 576 , - 759 , - 1234 , - 2001 , - 3060 , - 4411 , - 1382 , - 3317 , - 872 , - 3391 , - 1530 , - 4633 , - 3356 , - 2371 , - 1678 , - 1277 , - 1168 , - 1351 , - 1826 , - 2593 , - 3652 , - 331 , - 1974 , - 3909 , - 1464 , - 3983 , - 2122 , - 553 , - 3948 , - 2963 , - 2270 , - 1869 , - 1760 , - 1943 , - 2418 , - 3185 , - 4244 , - 923 , - 2566 , - 4501 , - 2056 , - 4575 , - 2714 , - 1145 , - 4540 , - 3555 , - 2862 , - 2461 , - 2352 , - 2535 , - 3010 , - 3777 , - 164 , - 1515 , - 3158 , - 421 , - 2648 , - 495 , - 3306 , - 1737 , - 460 , - 4147 , - 3454 , - 3053 , - 2944 , - 3127 , - 3602 , - 4369 , - 756 , - 2107 , - 3750 , - 1013 , - 3240 , - 1087 , - 3898 , - 2329 , - 1052 , - 67 , - 4046 , - 3645 , - 3536 , - 3719 , - 4194 , - 289 , - 1348 , - 2699 , - 4342 , - 1605 , - 3832 , - 1679 , - 4490 , - 2921 , - 1644 , - 659 , - 4638 , - 4237 , - 4128 , - 4311 , - 114 , - 881 , - 1940 , - 3291 , - 262 , - 2197 , - 4424 , - 2271 , - 410 , - 3513 , - 2236 , - 1251 , - 558 , - 157 , - 48 , - 231 , - 706 , - 1473 , - 2532 , - 3883 , - 854 , - 2789 , - 344 , - 2863 , - 1002 , - 4105 , - 2828 , - 1843 , - 1150 , - 749 , - 640 , - 823 , - 1298 , - 2065 , - 3124 , - 4475 , - 1446 , - 3381 , - 936 , - 3455 , - 1594 , - 25 , - 3420 , - 2435 , - 1742 , - 1341 , - 1232 , - 1415 , - 1890 , - 2657 , - 3716 , - 395 , - 2038 , - 3973 , - 1528 , - 4047 , - 2186 , - 617 , - 4012 , - 3027 , - 2334 , - 1933 , - 1824 , - 2007 , - 2482 , - 3249 , - 4308 , - 987 , - 2630 , - 4565 , - 2120 , - 4639 , - 2778 , - 1209 , - 4604 , - 3619 , - 2926 , - 2525 , - 2416 , - 2599 , - 3074 , - 3841 , - 228 , - 1579 , - 3222 , - 485 , - 2712 , - 559 , - 3370 , - 1801 , - 524 , - 4211 , - 3518 , - 3117 , - 3008 , - 3191 , - 3666 , - 4433 , - 820 , - 2171 , - 3814 , - 1077 , - 3304 , - 1151 , - 3962 , - 2393 , - 1116 , - 131 , - 4110 , - 3709 , - 3600 , - 3783 , - 4258 , - 353 , - 1412 , - 2763 , - 4406 , - 1669 , - 3896 , - 1743 , - 4554 , - 2985 , - 1708 , - 723 , - 30 , - 4301 , - 4192 , - 4375 , - 178 , - 945 , - 2004 , - 3355 , - 326 , - 2261 , - 4488 , - 2335 , - 474 , - 3577 , - 2300 , - 1315 , - 622 , - 221 , - 112 , - 295 , - 770 , - 1537 , - 2596 , - 3947 , - 918 , - 2853 , - 408 , - 2927 , - 1066 , - 4169 , - 2892 , - 1907 , - 1214 , - 813 , - 704 , - 887 , - 1362 , - 2129 , - 3188 , - 4539 , - 1510 , - 3445 , - 1000 , - 3519 , - 1658 , - 89 , - 3484 , - 2499 , - 1806 , - 1405 , - 1296 , - 1479 , - 1954 , - 2721 , - 3780 , - 459 , - 2102 , - 4037 , - 1592 , - 4111 , - 2250 , - 681 , - 4076 , - 3091 , - 2398 , - 1997 , - 1888 , - 2071 , - 2546 , - 3313 , - 4372 , - 1051 , - 2694 , - 4629 , - 2184 , - 31 , - 2842 , - 1273 , - 4668 , - 3683 , - 2990 , - 2589 , - 2480 , - 2663 , - 3138 , - 3905 , - 292 , - 1643 , - 3286 , - 549 , - 2776 , - 623 , - 3434 , - 1865 , - 588 , - 4275 , - 3582 , - 3181 , - 3072 , - 3255 , - 3730 , - 4497 , - 884 , - 2235 , - 3878 , - 1141 , - 3368 , - 1215 , - 4026 , - 2457 , - 1180 , - 195 , - 4174 , - 3773 , - 3664 , - 3847 , - 4322 , - 417 , - 1476 , - 2827 , - 4470 , - 1733 , - 3960 , - 1807 , - 4618 , - 3049 , - 1772 , - 787 , - 94 , - 4365 , - 4256 , - 4439 , - 242 , - 1009 , - 2068 , - 3419 , - 390 , - 2325 , - 4552 , - 2399 , - 538 , - 3641 , - 2364 , - 1379 , - 686 , - 285 , - 176 , - 359 , - 834 , - 1601 , - 2660 , - 4011 , - 982 , - 2917 , - 472 , - 2991 , - 1130 , - 4233 , - 2956 , - 1971 , - 1278 , - 877 , - 768 , - 951 , - 1426 , - 2193 , - 3252 , - 4603 , - 1574 , - 3509 , - 1064 , - 3583 , - 1722 , - 153 , - 3548 , - 2563 , - 1870 , - 1469 , - 1360 , - 1543 , - 2018 , - 2785 , - 3844 , - 523 , - 2166 , - 4101 , - 1656 , - 4175 , - 2314 , - 745 , - 4140 , - 3155 , - 2462 , - 2061 , - 1952 , - 2135 , - 2610 , - 3377 , - 4436 , - 1115 , - 2758 , - 21 , - 2248 , - 95 , - 2906 , - 1337 , - 60 , - 3747 , - 3054 , - 2653 , - 2544 , - 2727 , - 3202 , - 3969 , - 356 , - 1707 , - 3350 , - 613 , - 2840 , - 687 , - 3498 , - 1929 , - 652 , - 4339 , - 3646 , - 3245 , - 3136 , - 3319 , - 3794 , - 4561 , - 948 , - 2299 , - 3942 , - 1205 , - 3432 , - 1279 , - 4090 , - 2521 , - 1244 , - 259 , - 4238 , - 3837 , - 3728 , - 3911 , - 4386 , - 481 , - 1540 , - 2891 , - 4534 , - 1797 , - 4024 , - 1871 , - 10 , - 3113 , - 1836 , - 851 , - 158 , - 4429 , - 4320 , - 4503 , - 306 , - 1073 , - 2132 , - 3483 , - 454 , - 2389 , - 4616 , - 2463 , - 602 , - 3705 , - 2428 , - 1443 , - 750 , - 349 , - 240 , - 423 , - 898 , - 1665 , - 2724 , - 4075 , - 1046 , - 2981 , - 536 , - 3055 , - 1194 , - 4297 , - 3020 , - 2035 , - 1342 , - 941 , - 832 , - 1015 , - 1490 , - 2257 , - 3316 , - 4667 , - 1638 , - 3573 , - 1128 , - 3647 , - 1786 , - 217 , - 3612 , - 2627 , - 1934 , - 1533 , - 1424 , - 1607 , - 2082 , - 2849 , - 3908 , - 587 , - 2230 , - 4165 , - 1720 , - 4239 , - 2378 , - 809 , - 4204 , - 3219 , - 2526 , - 2125 , - 2016 , - 2199 , - 2674 , - 3441 , - 4500 , - 1179 , - 2822 , - 85 , - 2312 , - 159 , - 2970 , - 1401 , - 124 , - 3811 , - 3118 , - 2717 , - 2608 , - 2791 , - 3266 , - 4033 , - 420 , - 1771 , - 3414 , - 677 , - 2904 , - 751 , - 3562 , - 1993 , - 716 , - 4403 , - 3710 , - 3309 , - 3200 , - 3383 , - 3858 , - 4625 , - 1012 , - 2363 , - 4006 , - 1269 , - 3496 , - 1343 , - 4154 , - 2585 , - 1308 , - 323 , - 4302 , - 3901 , - 3792 , - 3975 , - 4450 , - 545 , - 1604 , - 2955 , - 4598 , - 1861 , - 4088 , - 1935 , - 74 , - 3177 , - 1900 , - 915 , - 222 , - 4493 , - 4384 , - 4567 , - 370 , - 1137 , - 2196 , - 3547 , - 518 , - 2453 , - 8 , - 2527 , - 666 , - 3769 , - 2492 , - 1507 , - 814 , - 413 , - 304 , - 487 , - 962 , - 1729 , - 2788 , - 4139 , - 1110 , - 3045 , - 600 , - 3119 , - 1258 , - 4361 , - 3084 , - 2099 , - 1406 , - 1005 , - 896 , - 1079 , - 1554 , - 2321 , - 3380 , - 59 , - 1702 , - 3637 , - 1192 , - 3711 , - 1850 , - 281 , - 3676 , - 2691 , - 1998 , - 1597 , - 1488 , - 1671 , - 2146 , - 2913 , - 3972 , - 651 , - 2294 , - 4229 , - 1784 , - 4303 , - 2442 , - 873 , - 4268 , - 3283 , - 2590 , - 2189 , - 2080 , - 2263 , - 2738 , - 3505 , - 4564 , - 1243 , - 2886 , - 149 , - 2376 , - 223 , - 3034 , - 1465 , - 188 , - 3875 , - 3182 , - 2781 , - 2672 , - 2855 , - 3330 , - 4097 , - 484 , - 1835 , - 3478 , - 741 , - 2968 , - 815 , - 3626 , - 2057 , - 780 , - 4467 , - 3774 , - 3373 , - 3264 , - 3447 , - 3922 , - 17 , - 1076 , - 2427 , - 4070 , - 1333 , - 3560 , - 1407 , - 4218 , - 2649 , - 1372 , - 387 , - 4366 , - 3965 , - 3856 , - 4039 , - 4514 , - 609 , - 1668 , - 3019 , - 4662 , - 1925 , - 4152 , - 1999 , - 138 , - 3241 , - 1964 , - 979 , - 286 , - 4557 , - 4448 , - 4631 , - 434 , - 1201 , - 2260 , - 3611 , - 582 , - 2517 , - 72 , - 2591 , - 730 , - 3833 , - 2556 , - 1571 , - 878 , - 477 , - 368 , - 551 , - 1026 , - 1793 , - 2852 , - 4203 , - 1174 , - 3109 , - 664 , - 3183 , - 1322 , - 4425 , - 3148 , - 2163 , - 1470 , - 1069 , - 960 , - 1143 , - 1618 , - 2385 , - 3444 , - 123 , - 1766 , - 3701 , - 1256 , - 3775 , - 1914 , - 345 , - 3740 , - 2755 , - 2062 , - 1661 , - 1552 , - 1735 , - 2210 , - 2977 , - 4036 , - 715 , - 2358 , - 4293 , - 1848 , - 4367 , - 2506 , - 937 , - 4332 , - 3347 , - 2654 , - 2253 , - 2144 , - 2327 , - 2802 , - 3569 , - 4628 , - 1307 , - 2950 , - 213 , - 2440 , - 287 , - 3098 , - 1529 , - 252 , - 3939 , - 3246 , - 2845 , - 2736 , - 2919 , - 3394 , - 4161 , - 548 , - 1899 , - 3542 , - 805 , - 3032 , - 879 , - 3690 , - 2121 , - 844 , - 4531 , - 3838 , - 3437 , - 3328 , - 3511 , - 3986 , - 81 , - 1140 , - 2491 , - 4134 , - 1397 , - 3624 , - 1471 , - 4282 , - 2713 , - 1436 , - 451 , - 4430 , - 4029 , - 3920 , - 4103 , - 4578 , - 673 , - 1732 , - 3083 , - 54 , - 1989 , - 4216 , - 2063 , - 202 , - 3305 , - 2028 , - 1043 , - 350 , - 4621 , - 4512 , - 23 , - 498 , - 1265 , - 2324 , - 3675 , - 646 , - 2581 , - 136 , - 2655 , - 794 , - 3897 , - 2620 , - 1635 , - 942 , - 541 , - 432 , - 615 , - 1090 , - 1857 , - 2916 , - 4267 , - 1238 , - 3173 , - 728 , - 3247 , - 1386 , - 4489 , - 3212 , - 2227 , - 1534 , - 1133 , - 1024 , - 1207 , - 1682 , - 2449 , - 3508 , - 187 , - 1830 , - 3765 , - 1320 , - 3839 , - 1978 , - 409 , - 3804 , - 2819 , - 2126 , - 1725 , - 1616 , - 1799 , - 2274 , - 3041 , - 4100 , - 779 , - 2422 , - 4357 , - 1912 , - 4431 , - 2570 , - 1001 , - 4396 , - 3411 , - 2718 , - 2317 , - 2208 , - 2391 , - 2866 , - 3633 , - 20 , - 1371 , - 3014 , - 277 , - 2504 , - 351 , - 3162 , - 1593 , - 316 , - 4003 , - 3310 , - 2909 , - 2800 , - 2983 , - 3458 , - 4225 , - 612 , - 1963 , - 3606 , - 869 , - 3096 , - 943 , - 3754 , - 2185 , - 908 , - 4595 , - 3902 , - 3501 , - 3392 , - 3575 , - 4050 , - 145 , - 1204 , - 2555 , - 4198 , - 1461 , - 3688 , - 1535 , - 4346 , - 2777 , - 1500 , - 515 , - 4494 , - 4093 , - 3984 , - 4167 , - 4642 , - 737 , - 1796 , - 3147 , - 118 , - 2053 , - 4280 , - 2127 , - 266 , - 3369 , - 2092 , - 1107 , - 414 , - 13 , - 4576 , - 87 , - 562 , - 1329 , - 2388 , - 3739 , - 710 , - 2645 , - 200 , - 2719 , - 858 , - 3961 , - 2684 , - 1699 , - 1006 , - 605 , - 496 , - 679 , - 1154 , - 1921 , - 2980 , - 4331 , - 1302 , - 3237 , - 792 , - 3311 , - 1450 , - 4553 , - 3276 , - 2291 , - 1598 , - 1197 , - 1088 , - 1271 , - 1746 , - 2513 , - 3572 , - 251 , - 1894 , - 3829 , - 1384 , - 3903 , - 2042 , - 473 , - 3868 , - 2883 , - 2190 , - 1789 , - 1680 , - 1863 , - 2338 , - 3105 , - 4164 , - 843 , - 2486 , - 4421 , - 1976 , - 4495 , - 2634 , - 1065 , - 4460 , - 3475 , - 2782 , - 2381 , - 2272 , - 2455 , - 2930 , - 3697 , - 84 , - 1435 , - 3078 , - 341 , - 2568 , - 415 , - 3226 , - 1657 , - 380 , - 4067 , - 3374 , - 2973 , - 2864 , - 3047 , - 3522 , - 4289 , - 676 , - 2027 , - 3670 , - 933 , - 3160 , - 1007 , - 3818 , - 2249 , - 972 , - 4659 , - 3966 , - 3565 , - 3456 , - 3639 , - 4114 , - 209 , - 1268 , - 2619 , - 4262 , - 1525 , - 3752 , - 1599 , - 4410 , - 2841 , - 1564 , - 579 , - 4558 , - 4157 , - 4048 , - 4231 , - 34 , - 801 , - 1860 , - 3211 , - 182 , - 2117 , - 4344 , - 2191 , - 330 , - 3433 , - 2156 , - 1171 , - 478 , - 77 , - 4640 , - 151 , - 626 , - 1393 , - 2452 , - 3803 , - 774 , - 2709 , - 264 , - 2783 , - 922 , - 4025 , - 2748 , - 1763 , - 1070 , - 669 , - 560 , - 743 , - 1218 , - 1985 , - 3044 , - 4395 , - 1366 , - 3301 , - 856 , - 3375 , - 1514 , - 4617 , - 3340 , - 2355 , - 1662 , - 1261 , - 1152 , - 1335 , - 1810 , - 2577 , - 3636 , - 315 , - 1958 , - 3893 , - 1448 , - 3967 , - 2106 , - 537 , - 3932 , - 2947 , - 2254 , - 1853 , - 1744 , - 1927 , - 2402 , - 3169 , - 4228 , - 907 , - 2550 , - 4485 , - 2040 , - 4559 , - 2698 , - 1129 , - 4524 , - 3539 , - 2846 , - 2445 , - 2336 , - 2519 , - 2994 , - 3761 , - 148 , - 1499 , - 3142 , - 405 , - 2632 , - 479 , - 3290 , - 1721 , - 444 , - 4131 , - 3438 , - 3037 , - 2928 , - 3111 , - 3586 , - 4353 , - 740 , - 2091 , - 3734 , - 997 , - 3224 , - 1071 , - 3882 , - 2313 , - 1036 , - 51 , - 4030 , - 3629 , - 3520 , - 3703 , - 4178 , - 273 , - 1332 , - 2683 , - 4326 , - 1589 , - 3816 , - 1663 , - 4474 , - 2905 , - 1628 , - 643 , - 4622 , - 4221 , - 4112 , - 4295 , - 98 , - 865 , - 1924 , - 3275 , - 246 , - 2181 , - 4408 , - 2255 , - 394 , - 3497 , - 2220 , - 1235 , - 542 , - 141 , - 32 , - 215 , - 690 , - 1457 , - 2516 , - 3867 , - 838 , - 2773 , - 328 , - 2847 , - 986 , - 4089 , - 2812 , - 1827 , - 1134 , - 733 , - 624 , - 807 , - 1282 , - 2049 , - 3108 , - 4459 , - 1430 , - 3365 , - 920 , - 3439 , - 1578 , - 9 , - 3404 , - 2419 , - 1726 , - 1325 , - 1216 , - 1399 , - 1874 , - 2641 , - 3700 , - 379 , - 2022 , - 3957 , - 1512 , - 4031 , - 2170 , - 601 , - 3996 , - 3011 , - 2318 , - 1917 , - 1808 , - 1991 , - 2466 , - 3233 , - 4292 , - 971 , - 2614 , - 4549 , - 2104 , - 4623 , - 2762 , - 1193 , - 4588 , - 3603 , - 2910 , - 2509 , - 2400 , - 2583 , - 3058 , - 3825 , - 212 , - 1563 , - 3206 , - 469 , - 2696 , - 543 , - 3354 , - 1785 , - 508 , - 4195 , - 3502 , - 3101 , - 2992 , - 3175 , - 3650 , - 4417 , - 804 , - 2155 , - 3798 , - 1061 , - 3288 , - 1135 , - 3946 , - 2377 , - 1100 , - 115 , - 4094 , - 3693 , - 3584 , - 3767 , - 4242 , - 337 , - 1396 , - 2747 , - 4390 , - 1653 , - 3880 , - 1727 , - 4538 , - 2969 , - 1692 , - 707 , - 14 , - 4285 , - 4176 , - 4359 , - 162 , - 929 , - 1988 , - 3339 , - 310 , - 2245 , - 4472 , - 2319 , - 458 , - 3561 , - 2284 , - 1299 , - 606 , - 205 , - 96 , - 279 , - 754 , - 1521 , - 2580 , - 3931 , - 902 , - 2837 , - 392 , - 2911 , - 1050 , - 4153 , - 2876 , - 1891 , - 1198 , - 797 , - 688 , - 871 , - 1346 , - 2113 , - 3172 , - 4523 , - 1494 , - 3429 , - 984 , - 3503 , - 1642 , - 73 , - 3468 , - 2483 , - 1790 , - 1389 , - 1280 , - 1463 , - 1938 , - 2705 , - 3764 , - 443 , - 2086 , - 4021 , - 1576 , - 4095 , - 2234 , - 665 , - 4060 , - 3075 , - 2382 , - 1981 , - 1872 , - 2055 , - 2530 , - 3297 , - 4356 , - 1035 , - 2678 , - 4613 , - 2168 , - 15 , - 2826 , - 1257 , - 4652 , - 3667 , - 2974 , - 2573 , - 2464 , - 2647 , - 3122 , - 3889 , - 276 , - 1627 , - 3270 , - 533 , - 2760 , - 607 , - 3418 , - 1849 , - 572 , - 4259 , - 3566 , - 3165 , - 3056 , - 3239 , - 3714 , - 4481 , - 868 , - 2219 , - 3862 , - 1125 , - 3352 , - 1199 , - 4010 , - 2441 , - 1164 , - 179 , - 4158 , - 3757 , - 3648 , - 3831 , - 4306 , - 401 , - 1460 , - 2811 , - 4454 , - 1717 , - 3944 , - 1791 , - 4602 , - 3033 , - 1756 , - 771 , - 78 , - 4349 , - 4240 , - 4423 , - 226 , - 993 , - 2052 , - 3403 , - 374 , - 2309 , - 4536 , - 2383 , - 522 , - 3625 , - 2348 , - 1363 , - 670 , - 269 , - 160 , - 343 , - 818 , - 1585 , - 2644 , - 3995 , - 966 , - 2901 , - 456 , - 2975 , - 1114 , - 4217 , - 2940 , - 1955 , - 1262 , - 861 , - 752 , - 935 , - 1410 , - 2177 , - 3236 , - 4587 , - 1558 , - 3493 , - 1048 , - 3567 , - 1706 , - 137 , - 3532 , - 2547 , - 1854 , - 1453 , - 1344 , - 1527 , - 2002 , - 2769 , - 3828 , - 507 , - 2150 , - 4085 , - 1640 , - 4159 , - 2298 , - 729 , - 4124 , - 3139 , - 2446 , - 2045 , - 1936 , - 2119 , - 2594 , - 3361 , - 4420 , - 1099 , - 2742 , - 5 , - 2232 , - 79 , - 2890 , - 1321 , - 44 , - 3731 , - 3038 , - 2637 , - 2528 , - 2711 , - 3186 , - 3953 , - 340 , - 1691 , - 3334 , - 597 , - 2824 , - 671 , - 3482 , - 1913 , - 636 , - 4323 , - 3630 , - 3229 , - 3120 , - 3303 , - 3778 , - 4545 , - 932 , - 2283 , - 3926 , - 1189 , - 3416 , - 1263 , - 4074 , - 2505 , - 1228 , - 243 , - 4222 , - 3821 , - 3712 , - 3895 , - 4370 , - 465 , - 1524 , - 2875 , - 4518 , - 1781 , - 4008 , - 1855 , - 4666 , - 3097 , - 1820 , - 835 , - 142 , - 4413 , - 4304 , - 4487 , - 290 , - 1057 , - 2116 , - 3467 , - 438 , - 2373 , - 4600 , - 2447 , - 586 , - 3689 , - 2412 , - 1427 , - 734 , - 333 , - 224 , - 407 , - 882 , - 1649 , - 2708 , - 4059 , - 1030 , - 2965 , - 520 , - 3039 , - 1178 , - 4281 , - 3004 , - 2019 , - 1326 , - 925 , - 816 , - 999 , - 1474 , - 2241 , - 3300 , - 4651 , - 1622 , - 3557 , - 1112 , - 3631 , - 1770 , - 201 , - 3596 , - 2611 , - 1918 , - 1517 , - 1408 , - 1591 , - 2066 , - 2833 , - 3892 , - 571 , - 2214 , - 4149 , - 1704 , - 4223 , - 2362 , - 793 , - 4188 , - 3203 , - 2510 , - 2109 , - 2000 , - 2183 , - 2658 , - 3425 , - 4484 , - 1163 , - 2806 , - 69 , - 2296 , - 143 , - 2954 , - 1385 , - 108 , - 3795 , - 3102 , - 2701 , - 2592 , - 2775 , - 3250 , - 4017 , - 404 , - 1755 , - 3398 , - 661 , - 2888 , - 735 , - 3546 , - 1977 , - 700 , - 4387 , - 3694 , - 3293 , - 3184 , - 3367 , - 3842 , - 4609 , - 996 , - 2347 , - 3990 , - 1253 , - 3480 , - 1327 , - 4138 , - 2569 , - 1292 , - 307 , - 4286 , - 3885 , - 3776 , - 3959 , - 4434 , - 529 , - 1588 , - 2939 , - 4582 , - 1845 , - 4072 , - 1919 , - 58 , - 3161 , - 1884 , - 899 , - 206 , - 4477 , - 4368 , - 4551 , - 354 , - 1121 , - 2180 , - 3531 , - 502 , - 2437 , - 4664 , - 2511 , - 650 , - 3753 , - 2476 , - 1491 , - 798 , - 397 , - 288 , - 471 , - 946 , - 1713 , - 2772 , - 4123 , - 1094 , - 3029 , - 584 , - 3103 , - 1242 , - 4345 , - 3068 , - 2083 , - 1390 , - 989 , - 880 , - 1063 , - 1538 , - 2305 , - 3364 , - 43 , - 1686 , - 3621 , - 1176 , - 3695 , - 1834 , - 265 , - 3660 , - 2675 , - 1982 , - 1581 , - 1472 , - 1655 , - 2130 , - 2897 , - 3956 , - 635 , - 2278 , - 4213 , - 1768 , - 4287 , - 2426 , - 857 , - 4252 , - 3267 , - 2574 , - 2173 , - 2064 , - 2247 , - 2722 , - 3489 , - 4548 , - 1227 , - 2870 , - 133 , - 2360 , - 207 , - 3018 , - 1449 , - 172 , - 3859 , - 3166 , - 2765 , - 2656 , - 2839 , - 3314 , - 4081 , - 468 , - 1819 , - 3462 , - 725 , - 2952 , - 799 , - 3610 , - 2041 , - 764 , - 4451 , - 3758 , - 3357 , - 3248 , - 3431 , - 3906 , - 1 , - 1060 , - 2411 , - 4054 , - 1317 , - 3544 , - 1391 , - 4202 , - 2633 , - 1356 , - 371 , - 4350 , - 3949 , - 3840 , - 4023 , - 4498 , - 593 , - 1652 , - 3003 , - 4646 , - 1909 , - 4136 , - 1983 , - 122 , - 3225 , - 1948 , - 963 , - 270 , - 4541 , - 4432 , - 4615 , - 418 , - 1185 , - 2244 , - 3595 , - 566 , - 2501 , - 56 , - 2575 , - 714 , - 3817 , - 2540 , - 1555 , - 862 , - 461 , - 352 , - 535 , - 1010 , - 1777 , - 2836 , - 4187 , - 1158 , - 3093 , - 648 , - 3167 , - 1306 , - 4409 , - 3132 , - 2147 , - 1454 , - 1053 , - 944 , - 1127 , - 1602 , - 2369 , - 3428 , - 107 , - 1750 , - 3685 , - 1240 , - 3759 , - 1898 , - 329 , - 3724 , - 2739 , - 2046 , - 1645 , - 1536 , - 1719 , - 2194 , - 2961 , - 4020 , - 699 , - 2342 , - 4277 , - 1832 , - 4351 , - 2490 , - 921 , - 4316 , - 3331 , - 2638 , - 2237 , - 2128 , - 2311 , - 2786 , - 3553 , - 4612 , - 1291 , - 2934 , - 197 , - 2424 , - 271 , - 3082 , - 1513 , - 236 , - 3923 , - 3230 , - 2829 , - 2720 , - 2903 , - 3378 , - 4145 , - 532 , - 1883 , - 3526 , - 789 , - 3016 , - 863 , - 3674 , - 2105 , - 828 , - 4515 , - 3822 , - 3421 , - 3312 , - 3495 , - 3970 , - 65 , - 1124 , - 2475 , - 4118 , - 1381 , - 3608 , - 1455 , - 4266 , - 2697 , - 1420 , - 435 , - 4414 , - 4013 , - 3904 , - 4087 , - 4562 , - 657 , - 1716 , - 3067 , - 38 , - 1973 , - 4200 , - 2047 , - 186 , - 3289 , - 2012 , - 1027 , - 334 , - 4605 , - 4496 , - 7 , - 482 , - 1249 , - 2308 , - 3659 , - 630 , - 2565 , - 120 , - 2639 , - 778 , - 3881 , - 2604 , - 1619 , - 926 , - 525 , - 416 , - 599 , - 1074 , - 1841 , - 2900 , - 4251 , - 1222 , - 3157 , - 712 , - 3231 , - 1370 , - 4473 , - 3196 , - 2211 , - 1518 , - 1117 , - 1008 , - 1191 , - 1666 , - 2433 , - 3492 , - 171 , - 1814 , - 3749 , - 1304 , - 3823 , - 1962 , - 393 , - 3788 , - 2803 , - 2110 , - 1709 , - 1600 , - 1783 , - 2258 , - 3025 , - 4084 , - 763 , - 2406 , - 4341 , - 1896 , - 4415 , - 2554 , - 985 , - 4380 , - 3395 , - 2702 , - 2301 , - 2192 , - 2375 , - 2850 , - 3617 , - 4 , - 1355 , - 2998 , - 261 , - 2488 , - 335 , - 3146 , - 1577 , - 300 , - 3987 , - 3294 , - 2893 , - 2784 , - 2967 , - 3442 , - 4209 , - 596 , - 1947 , - 3590 , - 853 , - 3080 , - 927 , - 3738 , - 2169 , - 892 , - 4579 , - 3886 , - 3485 , - 3376 , - 3559 , - 4034 , - 129 , - 1188 , - 2539 , - 4182 , - 1445 , - 3672 , - 1519 , - 4330 , - 2761 , - 1484 , - 499 , - 4478 , - 4077 , - 3968 , - 4151 , - 4626 , - 721 , - 1780 , - 3131 , - 102 , - 2037 , - 4264 , - 2111 , - 250 , - 3353 , - 2076 , - 1091 , - 398 , - 4669 , - 4560 , - 71 , - 546 , - 1313 , - 2372 , - 3723 , - 694 , - 2629 , - 184 , - 2703 , - 842 , - 3945 , - 2668 , - 1683 , - 990 , - 589 , - 480 , - 663 , - 1138 , - 1905 , - 2964 , - 4315 , - 1286 , - 3221 , - 776 , - 3295 , - 1434 , - 4537 , - 3260 , - 2275 , - 1582 , - 1181 , - 1072 , - 1255 , - 1730 , - 2497 , - 3556 , - 235 , - 1878 , - 3813 , - 1368 , - 3887 , - 2026 , - 457 , - 3852 , - 2867 , - 2174 , - 1773 , - 1664 , - 1847 , - 2322 , - 3089 , - 4148 , - 827 , - 2470 , - 4405 , - 1960 , - 4479 , - 2618 , - 1049 , - 4444 , - 3459 , - 2766 , - 2365 , - 2256 , - 2439 , - 2914 , - 3681 , - 68 , - 1419 , - 3062 , - 325 , - 2552 , - 399 , - 3210 , - 1641 , - 364 , - 4051 , - 3358 , - 2957 , - 2848 , - 3031 , - 3506 , - 4273 , - 660 , - 2011 , - 3654 , - 917 , - 3144 , - 991 , - 3802 , - 2233 , - 956 , - 4643 , - 3950 , - 3549 , - 3440 , - 3623 , - 4098 , - 193 , - 1252 , - 2603 , - 4246 , - 1509 , - 3736 , - 1583 , - 4394 , - 2825 , - 1548 , - 563 , - 4542 , - 4141 , - 4032 , - 4215 , - 18 , - 785 , - 1844 , - 3195 , - 166 , - 2101 , - 4328 , - 2175 , - 314 , - 3417 , - 2140 , - 1155 , - 462 , - 61 , - 4624 , - 135 , - 610 , - 1377 , - 2436 , - 3787 , - 758 , - 2693 , - 248 , - 2767 , - 906 , - 4009 , - 2732 , - 1747 , - 1054 , - 653 , - 544 , - 727 , - 1202 , - 1969 , - 3028 , - 4379 , - 1350 , - 3285 , - 840 , - 3359 , - 1498 , - 4601 , - 3324 , - 2339 , - 1646 , - 1245 , - 1136 , - 1319 , - 1794 , - 2561 , - 3620 , - 299 , - 1942 , - 3877 , - 1432 , - 3951 , - 2090 , - 521 , - 3916 , - 2931 , - 2238 , - 1837 , - 1728 , - 1911 , - 2386 , - 3153 , - 4212 , - 891 , - 2534 , - 4469 , - 2024 , - 4543 , - 2682 , - 1113 , - 4508 , - 3523 , - 2830 , - 2429 , - 2320 , - 2503 , - 2978 , - 3745 , - 132 , - 1483 , - 3126 , - 389 , - 2616 , - 463 , - 3274 , - 1705 , - 428 , - 4115 , - 3422 , - 3021 , - 2912 , - 3095 , - 3570 , - 4337 , - 724 , - 2075 , - 3718 , - 981 , - 3208 , - 1055 , - 3866 , - 2297 , - 1020 , - 35 , - 4014 , - 3613 , - 3504 , - 3687 , - 4162 , - 257 , - 1316 , - 2667 , - 4310 , - 1573 , - 3800 , - 1647 , - 4458 , - 2889 , - 1612 , - 627 , - 4606 , - 4205 , - 4096 , - 4279 , - 82 , - 849 , - 1908 , - 3259 , - 230 , - 2165 , - 4392 , - 2239 , - 378 , - 3481 , - 2204 , - 1219 , - 526 , - 125 , - 16 , - 199 , - 674 , - 1441 , - 2500 , - 3851 , - 822 , - 2757 , - 312 , - 2831 , - 970 , - 4073 , - 2796 , - 1811 , - 1118 , - 717 , - 608 , - 791 , - 1266 , - 2033 , - 3092 , - 4443 , - 1414 , - 3349 , - 904 , - 3423 , - 1562 , - 4665 , - 3388 , - 2403 , - 1710 , - 1309 , - 1200 , - 1383 , - 1858 , - 2625 , - 3684 , - 363 , - 2006 , - 3941 , - 1496 , - 4015 , - 2154 , - 585 , - 3980 , - 2995 , - 2302 , - 1901 , - 1792 , - 1975 , - 2450 , - 3217 , - 4276 , - 955 , - 2598 , - 4533 , - 2088 , - 4607 , - 2746 , - 1177 , - 4572 , - 3587 , - 2894 , - 2493 , - 2384 , - 2567 , - 3042 , - 3809 , - 196 , - 1547 , - 3190 , - 453 , - 2680 , - 527 , - 3338 , - 1769 , - 492 , - 4179 , - 3486 , - 3085 , - 2976 , - 3159 , - 3634 , - 4401 , - 788 , - 2139 , - 3782 , - 1045 , - 3272 , - 1119 , - 3930 , - 2361 , - 1084 , - 99 , - 4078 , - 3677 , - 3568 , - 3751 , - 4226 , - 321 , - 1380 , - 2731 , - 4374 , - 1637 , - 3864 , - 1711 , - 4522 , - 2953 , - 1676 , - 691 , - 4670 , - 4269 , - 4160 , - 4343 , - 146 , - 913 , - 1972 , - 3323 , - 294 , - 2229 , - 4456 , - 2303 , - 442 , - 3545 , - 2268 , - 1283 , - 590 , - 189 , - 80 , - 263 , - 738 , - 1505 , - 2564 , - 3915 , - 886 , - 2821 , - 376 , - 2895 , - 1034 , - 4137 , - 2860 , - 1875 , - 1182 , - 781 , - 672 , - 855 , - 1330 , - 2097 , - 3156 , - 4507 , - 1478 , - 3413 , - 968 , - 3487 , - 1626 , - 57 , - 3452 , - 2467 , - 1774 , - 1373 , - 1264 , - 1447 , - 1922 , - 2689 , - 3748 , - 427 , - 2070 , - 4005 , - 1560 , - 4079 , - 2218 , - 649 , - 4044 , - 3059 , - 2366 , - 1965 , - 1856 , - 2039 , - 2514 , - 3281 , - 4340 , - 1019 , - 2662 , - 4597 , - 2152 , - 4671 , - 2810 , - 1241 , - 4636 , - 3651 , - 2958 , - 2557 , - 2448 , - 2631 , - 3106 , - 3873 , - 260 , - 1611 , - 3254 , - 517 , - 2744 , - 591 , - 3402 , - 1833 , - 556 , - 4243 , - 3550 , - 3149 , - 3040 , - 3223 , - 3698 , - 4465 , - 852 , - 2203 , - 3846 , - 1109 , - 3336 , - 1183 , - 3994 , - 2425 , - 1148 , - 163 , - 4142 , - 3741 , - 3632 , - 3815 , - 4290 , - 385 , - 1444 , - 2795 , - 4438 , - 1701 , - 3928 , - 1775 , - 4586 , - 3017 , - 1740 , - 755 , - 62 , - 4333 , - 4224 , - 4407 , - 210 , - 977 , - 2036 , - 3387 , - 358 , - 2293 , - 4520 , - 2367 , - 506 , - 3609 , - 2332 , - 1347 , - 654 , - 253 , - 144 , - 327 , - 802 , - 1569 , - 2628 , - 3979 , - 950 , - 2885 , - 440 , - 2959 , - 1098 , - 4201 , - 2924 , - 1939 , - 1246 , - 845 , - 736 , - 919 , - 1394 , - 2161 , - 3220 , - 4571 , - 1542 , - 3477 , - 1032 , - 3551 , - 1690 , - 121 , - 3516 , - 2531 , - 1838 , - 1437 , - 1328 , - 1511 , - 1986 , - 2753 , - 3812 , - 491 , - 2134 , - 4069 , - 1624 , - 4143 , - 2282 , - 713 , - 4108 , - 3123 , - 2430 , - 2029 , - 1920 , - 2103 , - 2578 , - 3345 , - 4404 , - 1083 , - 2726 , - 4661 , - 2216 , - 63 , - 2874 , - 1305 , - 28 , - 3715 , - 3022 , - 2621 , - 2512 , - 2695 , - 3170 , - 3937 , - 324 , - 1675 , - 3318 , - 581 , - 2808 , - 655 , - 3466 , - 1897 , - 620 , - 4307 , - 3614 , - 3213 , - 3104 , - 3287 , - 3762 , - 4529 , - 916 , - 2267 , - 3910 , - 1173 , - 3400 , - 1247 , - 4058 , - 2489 , - 1212 , - 227 , - 4206 , - 3805 , - 3696 , - 3879 , - 4354 , - 449 , - 1508 , - 2859 , - 4502 , - 1765 , - 3992 , - 1839 , - 4650 , - 3081 , - 1804 , - 819 , - 126 , - 4397 , - 4288 , - 4471 , - 274 , - 1041 , - 2100 , - 3451 , - 422 , - 2357 , - 4584 , - 2431 , - 570 , - 3673 , - 2396 , - 1411 , - 718 , - 317 , - 208 , - 391 , - 866 , - 1633 , - 2692 , - 4043 , - 1014 , - 2949 , - 504 , - 3023 , - 1162 , - 4265 , - 2988 , - 2003 , - 1310 , - 909 , - 800 , - 983 , - 1458 , - 2225 , - 3284 , - 4635 , - 1606 , - 3541 , - 1096 , - 3615 , - 1754 , - 185 , - 3580 , - 2595 , - 1902 , - 1501 , - 1392 , - 1575 , - 2050 , - 2817 , - 3876 , - 555 , - 2198 , - 4133 , - 1688 , - 4207 , - 2346 , - 777 , - 4172 , - 3187 , - 2494 , - 2093 , - 1984 , - 2167 , - 2642 , - 3409 , - 4468 , - 1147 , - 2790 , - 53 , - 2280 , - 127 , - 2938 , - 1369 , - 92 , - 3779 , - 3086 , - 2685 , - 2576 , - 2759 , - 3234 , - 4001 , - 388 , - 1739 , - 3382 , - 645 , - 2872 , - 719 , - 3530 , - 1961 , - 684 , - 4371 , - 3678 , - 3277 , - 3168 , - 3351 , - 3826 , - 4593 , - 980 , - 2331 , - 3974 , - 1237 , - 3464 , - 1311 , - 4122 , - 2553 , - 1276 , - 291 , - 4270 , - 3869 , - 3760 , - 3943 , - 4418 , - 513 , - 1572 , - 2923 , - 4566 , - 1829 , - 4056 , - 1903 , - 42 , - 3145 , - 1868 , - 883 , - 190 , - 4461 , - 4352 , - 4535 , - 338 , - 1105 , - 2164 , - 3515 , - 486 , - 2421 , - 4648 , - 2495 , - 634 , - 3737 , - 2460 , - 1475 , - 782 , - 381 , - 272 , - 455 , - 930 , - 1697 , - 2756 , - 4107 , - 1078 , - 3013 , - 568 , - 3087 , - 1226 , - 4329 , - 3052 , - 2067 , - 1374 , - 973 , - 864 , - 1047 , - 1522 , - 2289 , - 3348 , - 27 , - 1670 , - 3605 , - 1160 , - 3679 , - 1818 , - 249 , - 3644 , - 2659 , - 1966 , - 1565 , - 1456 , - 1639 , - 2114 , - 2881 , - 3940 , - 619 , - 2262 , - 4197 , - 1752 , - 4271 , - 2410 , - 841 , - 4236 , - 3251 , - 2558 , - 2157 , - 2048 , - 2231 , - 2706 , - 3473 , - 4532 , - 1211 , - 2854 , - 117 , - 2344 , - 191 , - 3002 , - 1433 , - 156 , - 3843 , - 3150 , - 2749 , - 2640 , - 2823 , - 3298 , - 4065 , - 452 , - 1803 , - 3446 , - 709 , - 2936 , - 783 , - 3594 , - 2025 , - 748 , - 4435 , - 3742 , - 3341 , - 3232 , - 3415 , - 3890 , - 4657 , - 1044 , - 2395 , - 4038 , - 1301 , - 3528 , - 1375 , - 4186 , - 2617 , - 1340 , - 355 , - 4334 , - 3933 , - 3824 , - 4007 , - 4482 , - 577 , - 1636 , - 2987 , - 4630 , - 1893 , - 4120 , - 1967 , - 106 , - 3209 , - 1932 , - 947 , - 254 , - 4525 , - 4416 , - 4599 , - 402 , - 1169 , - 2228 , - 3579 , - 550 , - 2485 , - 40 , - 2559 , - 698 , - 3801 , - 2524 , - 1539 , - 846 , - 445 , - 336 , - 519 , - 994 , - 1761 , - 2820 , - 4171 , - 1142 , - 3077 , - 632 , - 3151 , - 1290 , - 4393 , - 3116 , - 2131 , - 1438 , - 1037 , - 928 , - 1111 , - 1586 , - 2353 , - 3412 , - 91 , - 1734 , - 3669 , - 1224 , - 3743 , - 1882 , - 313 , - 3708 , - 2723 , - 2030 , - 1629 , - 1520 , - 1703 , - 2178 , - 2945 , - 4004 , - 683 , - 2326 , - 4261 , - 1816 , - 4335 , - 2474 , - 905 , - 4300 , - 3315 , - 2622 , - 2221 , - 2112 , - 2295 , - 2770 , - 3537 , - 4596 , - 1275 , - 2918 , - 181 , - 2408 , - 255 , - 3066 , - 1497 , - 220 , - 3907 , - 3214 , - 2813 , - 2704 , - 2887 , - 3362 , - 4129 , - 516 , - 1867 , - 3510 , - 773 , - 3000 , - 847 , - 3658 , - 2089 , - 812 , - 4499 , - 3806 , - 3405 , - 3296 , - 3479 , - 3954 , - 49 , - 1108 , - 2459 , - 4102 , - 1365 , - 3592 , - 1439 , - 4250 , - 2681 , - 1404 , - 419 , - 4398 , - 3997 , - 3888 , - 4071 , - 4546 , - 641 , - 1700 , - 3051 , - 22 , - 1957 , - 4184 , - 2031 , - 170 , - 3273 , - 1996 , - 1011 , - 318 , - 4589 , - 4480 , - 4663 , - 466 , - 1233 , - 2292 , - 3643 , - 614 , - 2549 , - 104 , - 2623 , - 762 , - 3865 , - 2588 , - 1603 , - 910 , - 509 , - 400 , - 583 , - 1058 , - 1825 , - 2884 , - 4235 , - 1206 , - 3141 , - 696 , - 3215 , - 1354 , - 4457 , - 3180 , - 2195 , - 1502 , - 1101 , - 992 , - 1175 , - 1650 , - 2417 , - 3476 , - 155 , - 1798 , - 3733 , - 1288 , - 3807 , - 1946 , - 377 , - 3772 , - 2787 , - 2094 , - 1693 , - 1584 , - 1767 , - 2242 , - 3009 , - 4068 , - 747 , - 2390 , - 4325 , - 1880 , - 4399 , - 2538 , - 969 , - 4364 , - 3379 , - 2686 , - 2285 , - 2176 , - 2359 , - 2834 , - 3601 , - 4660 , - 1339 , - 2982 , - 245 , - 2472 , - 319 , - 3130 , - 1561 , - 284 , - 3971 , - 3278 , - 2877 , - 2768 , - 2951 , - 3426 , - 4193 , - 580 , - 1931 , - 3574 , - 837 , - 3064 , - 911 , - 3722 , - 2153 , - 876 , - 4563 , - 3870 , - 3469 , - 3360 , - 3543 , - 4018 , - 113 , - 1172 , - 2523 , - 4166 , - 1429 , - 3656 , - 1503 , - 4314 , - 2745 , - 1468 , - 483 , - 4462 , - 4061 , - 3952 , - 4135 , - 4610 , - 705 , - 1764 , - 3115 , - 86 , - 2021 , - 4248 , - 2095 , - 234 , - 3337 , - 2060 , - 1075 , - 382 , - 4653 , - 4544 , - 55 , - 530 , - 1297 , - 2356 , - 3707 , - 678 , - 2613 , - 168 , - 2687 , - 826 , - 3929 , - 2652 , - 1667 , - 974 , - 573 , - 464 , - 647 , - 1122 , - 1889 , - 2948 , - 4299 , - 1270 , - 3205 , - 760 , - 3279 , - 1418 , - 4521 , - 3244 , - 2259 , - 1566 , - 1165 , - 1056 , - 1239 , - 1714 , - 2481 , - 3540 , - 219 , - 1862 , - 3797 , - 1352 , - 3871 , - 2010 , - 441 , - 3836 , - 2851 , - 2158 , - 1757 , - 1648 , - 1831 , - 2306 , - 3073 , - 4132 , - 811 , - 2454 , - 4389 , - 1944 , - 4463 , - 2602 , - 1033 , - 4428 , - 3443 , - 2750 , - 2349 , - 2240 , - 2423 , - 2898 , - 3665 , - 52 , - 1403 , - 3046 , - 309 , - 2536 , - 383 , - 3194 , - 1625 , - 348 , - 4035 , - 3342 , - 2941 , - 2832 , - 3015 , - 3490 , - 4257 , - 644 , - 1995 , - 3638 , - 901 , - 3128 , - 975 , - 3786 , - 2217 , - 940 , - 4627 , - 3934 , - 3533 , - 3424 , - 3607 , - 4082 , - 177 , - 1236 , - 2587 , - 4230 , - 1493 , - 3720 , - 1567 , - 4378 , - 2809 , - 1532 , - 547 , - 4526 , - 4125 , - 4016 , - 4199 , - 2 , - 769 , - 1828 , - 3179 , - 150 , - 2085 , - 4312 , - 2159 , - 298 , - 3401 , - 2124 , - 1139 , - 446 , - 45 , - 4608 , - 119 , - 594 , - 1361 , - 2420 , - 3771 , - 742 , - 2677 , - 232 , - 2751 , - 890 , - 3993 , - 2716 , - 1731 , - 1038 , - 637 , - 528 , - 711 , - 1186 , - 1953 , - 3012 , - 4363 , - 1334 , - 3269 , - 824 , - 3343 , - 1482 , - 4585 , - 3308 , - 2323 , - 1630 , - 1229 , - 1120 , - 1303 , - 1778 , - 2545 , - 3604 , - 283 , - 1926 , - 3861 , - 1416 , - 3935 , - 2074 , - 505 , - 3900 , - 2915 , - 2222 , - 1821 , - 1712 , - 1895 , - 2370 , - 3137 , - 4196 , - 875 , - 2518 , - 4453 , - 2008 , - 4527 , - 2666 , - 1097 , - 4492 , - 3507 , - 2814 , - 2413 , - 2304 , - 2487 , - 2962 , - 3729 , - 116 , - 1467 , - 3110 , - 373 , - 2600 , - 447 , - 3258 , - 1689 , - 412 , - 4099 , - 3406 , - 3005 , - 2896 , - 3079 , - 3554 , - 4321 , - 708 , - 2059 , - 3702 , - 965 , - 3192 , - 1039 , - 3850 , - 2281 , - 1004 , - 19 , - 3998 , - 3597 , - 3488 , - 3671 , - 4146 , - 241 , - 1300 , - 2651 , - 4294 , - 1557 , - 3784 , - 1631 , - 4442 , - 2873 , - 1596 , - 611 , - 4590 , - 4189 , - 4080 , - 4263 , - 66 , - 833 , - 1892 , - 3243 , - 214 , - 2149 , - 4376 , - 2223 , - 362 , - 3465 , - 2188 , - 1203 , - 510 , - 109 , - 0 , - 515 , - 1918 , - 4209 , - 2652 , - 1983 , - 2202 , - 3309 , - 568 , - 3451 , - 2486 , - 2409 , - 3220 , - 183 , - 2770 , - 1509 , - 1136 , - 1651 , - 3054 , - 609 , - 3788 , - 3119 , - 3338 , - 4445 , - 1704 , - 4587 , - 3622 , - 3545 , - 4356 , - 1319 , - 3906 , - 2645 , - 2272 , - 2787 , - 4190 , - 1745 , - 188 , - 4255 , - 4474 , - 845 , - 2840 , - 987 , - 22 , - 4681 , - 756 , - 2455 , - 306 , - 3781 , - 3408 , - 3923 , - 590 , - 2881 , - 1324 , - 655 , - 874 , - 1981 , - 3976 , - 2123 , - 1158 , - 1081 , - 1892 , - 3591 , - 1442 , - 181 , - 4544 , - 323 , - 1726 , - 4017 , - 2460 , - 1791 , - 2010 , - 3117 , - 376 , - 3259 , - 2294 , - 2217 , - 3028 , - 4727 , - 2578 , - 1317 , - 944 , - 1459 , - 2862 , - 417 , - 3596 , - 2927 , - 3146 , - 4253 , - 1512 , - 4395 , - 3430 , - 3353 , - 4164 , - 1127 , - 3714 , - 2453 , - 2080 , - 2595 , - 3998 , - 1553 , - 4732 , - 4063 , - 4282 , - 653 , - 2648 , - 795 , - 4566 , - 4489 , - 564 , - 2263 , - 114 , - 3589 , - 3216 , - 3731 , - 398 , - 2689 , - 1132 , - 463 , - 682 , - 1789 , - 3784 , - 1931 , - 966 , - 889 , - 1700 , - 3399 , - 1250 , - 4725 , - 4352 , - 131 , - 1534 , - 3825 , - 2268 , - 1599 , - 1818 , - 2925 , - 184 , - 3067 , - 2102 , - 2025 , - 2836 , - 4535 , - 2386 , - 1125 , - 752 , - 1267 , - 2670 , - 225 , - 3404 , - 2735 , - 2954 , - 4061 , - 1320 , - 4203 , - 3238 , - 3161 , - 3972 , - 935 , - 3522 , - 2261 , - 1888 , - 2403 , - 3806 , - 1361 , - 4540 , - 3871 , - 4090 , - 461 , - 2456 , - 603 , - 4374 , - 4297 , - 372 , - 2071 , - 4658 , - 3397 , - 3024 , - 3539 , - 206 , - 2497 , - 940 , - 271 , - 490 , - 1597 , - 3592 , - 1739 , - 774 , - 697 , - 1508 , - 3207 , - 1058 , - 4533 , - 4160 , - 4675 , - 1342 , - 3633 , - 2076 , - 1407 , - 1626 , - 2733 , - 4728 , - 2875 , - 1910 , - 1833 , - 2644 , - 4343 , - 2194 , - 933 , - 560 , - 1075 , - 2478 , - 33 , - 3212 , - 2543 , - 2762 , - 3869 , - 1128 , - 4011 , - 3046 , - 2969 , - 3780 , - 743 , - 3330 , - 2069 , - 1696 , - 2211 , - 3614 , - 1169 , - 4348 , - 3679 , - 3898 , - 269 , - 2264 , - 411 , - 4182 , - 4105 , - 180 , - 1879 , - 4466 , - 3205 , - 2832 , - 3347 , - 14 , - 2305 , - 748 , - 79 , - 298 , - 1405 , - 3400 , - 1547 , - 582 , - 505 , - 1316 , - 3015 , - 866 , - 4341 , - 3968 , - 4483 , - 1150 , - 3441 , - 1884 , - 1215 , - 1434 , - 2541 , - 4536 , - 2683 , - 1718 , - 1641 , - 2452 , - 4151 , - 2002 , - 741 , - 368 , - 883 , - 2286 , - 4577 , - 3020 , - 2351 , - 2570 , - 3677 , - 936 , - 3819 , - 2854 , - 2777 , - 3588 , - 551 , - 3138 , - 1877 , - 1504 , - 2019 , - 3422 , - 977 , - 4156 , - 3487 , - 3706 , - 77 , - 2072 , - 219 , - 3990 , - 3913 , - 4724 , - 1687 , - 4274 , - 3013 , - 2640 , - 3155 , - 4558 , - 2113 , - 556 , - 4623 , - 106 , - 1213 , - 3208 , - 1355 , - 390 , - 313 , - 1124 , - 2823 , - 674 , - 4149 , - 3776 , - 4291 , - 958 , - 3249 , - 1692 , - 1023 , - 1242 , - 2349 , - 4344 , - 2491 , - 1526 , - 1449 , - 2260 , - 3959 , - 1810 , - 549 , - 176 , - 691 , - 2094 , - 4385 , - 2828 , - 2159 , - 2378 , - 3485 , - 744 , - 3627 , - 2662 , - 2585 , - 3396 , - 359 , - 2946 , - 1685 , - 1312 , - 1827 , - 3230 , - 785 , - 3964 , - 3295 , - 3514 , - 4621 , - 1880 , - 27 , - 3798 , - 3721 , - 4532 , - 1495 , - 4082 , - 2821 , - 2448 , - 2963 , - 4366 , - 1921 , - 364 , - 4431 , - 4650 , - 1021 , - 3016 , - 1163 , - 198 , - 121 , - 932 , - 2631 , - 482 , - 3957 , - 3584 , - 4099 , - 766 , - 3057 , - 1500 , - 831 , - 1050 , - 2157 , - 4152 , - 2299 , - 1334 , - 1257 , - 2068 , - 3767 , - 1618 , - 357 , - 4720 , - 499 , - 1902 , - 4193 , - 2636 , - 1967 , - 2186 , - 3293 , - 552 , - 3435 , - 2470 , - 2393 , - 3204 , - 167 , - 2754 , - 1493 , - 1120 , - 1635 , - 3038 , - 593 , - 3772 , - 3103 , - 3322 , - 4429 , - 1688 , - 4571 , - 3606 , - 3529 , - 4340 , - 1303 , - 3890 , - 2629 , - 2256 , - 2771 , - 4174 , - 1729 , - 172 , - 4239 , - 4458 , - 829 , - 2824 , - 971 , - 6 , - 4665 , - 740 , - 2439 , - 290 , - 3765 , - 3392 , - 3907 , - 574 , - 2865 , - 1308 , - 639 , - 858 , - 1965 , - 3960 , - 2107 , - 1142 , - 1065 , - 1876 , - 3575 , - 1426 , - 165 , - 4528 , - 307 , - 1710 , - 4001 , - 2444 , - 1775 , - 1994 , - 3101 , - 360 , - 3243 , - 2278 , - 2201 , - 3012 , - 4711 , - 2562 , - 1301 , - 928 , - 1443 , - 2846 , - 401 , - 3580 , - 2911 , - 3130 , - 4237 , - 1496 , - 4379 , - 3414 , - 3337 , - 4148 , - 1111 , - 3698 , - 2437 , - 2064 , - 2579 , - 3982 , - 1537 , - 4716 , - 4047 , - 4266 , - 637 , - 2632 , - 779 , - 4550 , - 4473 , - 548 , - 2247 , - 98 , - 3573 , - 3200 , - 3715 , - 382 , - 2673 , - 1116 , - 447 , - 666 , - 1773 , - 3768 , - 1915 , - 950 , - 873 , - 1684 , - 3383 , - 1234 , - 4709 , - 4336 , - 115 , - 1518 , - 3809 , - 2252 , - 1583 , - 1802 , - 2909 , - 168 , - 3051 , - 2086 , - 2009 , - 2820 , - 4519 , - 2370 , - 1109 , - 736 , - 1251 , - 2654 , - 209 , - 3388 , - 2719 , - 2938 , - 4045 , - 1304 , - 4187 , - 3222 , - 3145 , - 3956 , - 919 , - 3506 , - 2245 , - 1872 , - 2387 , - 3790 , - 1345 , - 4524 , - 3855 , - 4074 , - 445 , - 2440 , - 587 , - 4358 , - 4281 , - 356 , - 2055 , - 4642 , - 3381 , - 3008 , - 3523 , - 190 , - 2481 , - 924 , - 255 , - 474 , - 1581 , - 3576 , - 1723 , - 758 , - 681 , - 1492 , - 3191 , - 1042 , - 4517 , - 4144 , - 4659 , - 1326 , - 3617 , - 2060 , - 1391 , - 1610 , - 2717 , - 4712 , - 2859 , - 1894 , - 1817 , - 2628 , - 4327 , - 2178 , - 917 , - 544 , - 1059 , - 2462 , - 17 , - 3196 , - 2527 , - 2746 , - 3853 , - 1112 , - 3995 , - 3030 , - 2953 , - 3764 , - 727 , - 3314 , - 2053 , - 1680 , - 2195 , - 3598 , - 1153 , - 4332 , - 3663 , - 3882 , - 253 , - 2248 , - 395 , - 4166 , - 4089 , - 164 , - 1863 , - 4450 , - 3189 , - 2816 , - 3331 , - 4734 , - 2289 , - 732 , - 63 , - 282 , - 1389 , - 3384 , - 1531 , - 566 , - 489 , - 1300 , - 2999 , - 850 , - 4325 , - 3952 , - 4467 , - 1134 , - 3425 , - 1868 , - 1199 , - 1418 , - 2525 , - 4520 , - 2667 , - 1702 , - 1625 , - 2436 , - 4135 , - 1986 , - 725 , - 352 , - 867 , - 2270 , - 4561 , - 3004 , - 2335 , - 2554 , - 3661 , - 920 , - 3803 , - 2838 , - 2761 , - 3572 , - 535 , - 3122 , - 1861 , - 1488 , - 2003 , - 3406 , - 961 , - 4140 , - 3471 , - 3690 , - 61 , - 2056 , - 203 , - 3974 , - 3897 , - 4708 , - 1671 , - 4258 , - 2997 , - 2624 , - 3139 , - 4542 , - 2097 , - 540 , - 4607 , - 90 , - 1197 , - 3192 , - 1339 , - 374 , - 297 , - 1108 , - 2807 , - 658 , - 4133 , - 3760 , - 4275 , - 942 , - 3233 , - 1676 , - 1007 , - 1226 , - 2333 , - 4328 , - 2475 , - 1510 , - 1433 , - 2244 , - 3943 , - 1794 , - 533 , - 160 , - 675 , - 2078 , - 4369 , - 2812 , - 2143 , - 2362 , - 3469 , - 728 , - 3611 , - 2646 , - 2569 , - 3380 , - 343 , - 2930 , - 1669 , - 1296 , - 1811 , - 3214 , - 769 , - 3948 , - 3279 , - 3498 , - 4605 , - 1864 , - 11 , - 3782 , - 3705 , - 4516 , - 1479 , - 4066 , - 2805 , - 2432 , - 2947 , - 4350 , - 1905 , - 348 , - 4415 , - 4634 , - 1005 , - 3000 , - 1147 , - 182 , - 105 , - 916 , - 2615 , - 466 , - 3941 , - 3568 , - 4083 , - 750 , - 3041 , - 1484 , - 815 , - 1034 , - 2141 , - 4136 , - 2283 , - 1318 , - 1241 , - 2052 , - 3751 , - 1602 , - 341 , - 4704 , - 483 , - 1886 , - 4177 , - 2620 , - 1951 , - 2170 , - 3277 , - 536 , - 3419 , - 2454 , - 2377 , - 3188 , - 151 , - 2738 , - 1477 , - 1104 , - 1619 , - 3022 , - 577 , - 3756 , - 3087 , - 3306 , - 4413 , - 1672 , - 4555 , - 3590 , - 3513 , - 4324 , - 1287 , - 3874 , - 2613 , - 2240 , - 2755 , - 4158 , - 1713 , - 156 , - 4223 , - 4442 , - 813 , - 2808 , - 955 , - 4726 , - 4649 , - 724 , - 2423 , - 274 , - 3749 , - 3376 , - 3891 , - 558 , - 2849 , - 1292 , - 623 , - 842 , - 1949 , - 3944 , - 2091 , - 1126 , - 1049 , - 1860 , - 3559 , - 1410 , - 149 , - 4512 , - 291 , - 1694 , - 3985 , - 2428 , - 1759 , - 1978 , - 3085 , - 344 , - 3227 , - 2262 , - 2185 , - 2996 , - 4695 , - 2546 , - 1285 , - 912 , - 1427 , - 2830 , - 385 , - 3564 , - 2895 , - 3114 , - 4221 , - 1480 , - 4363 , - 3398 , - 3321 , - 4132 , - 1095 , - 3682 , - 2421 , - 2048 , - 2563 , - 3966 , - 1521 , - 4700 , - 4031 , - 4250 , - 621 , - 2616 , - 763 , - 4534 , - 4457 , - 532 , - 2231 , - 82 , - 3557 , - 3184 , - 3699 , - 366 , - 2657 , - 1100 , - 431 , - 650 , - 1757 , - 3752 , - 1899 , - 934 , - 857 , - 1668 , - 3367 , - 1218 , - 4693 , - 4320 , - 99 , - 1502 , - 3793 , - 2236 , - 1567 , - 1786 , - 2893 , - 152 , - 3035 , - 2070 , - 1993 , - 2804 , - 4503 , - 2354 , - 1093 , - 720 , - 1235 , - 2638 , - 193 , - 3372 , - 2703 , - 2922 , - 4029 , - 1288 , - 4171 , - 3206 , - 3129 , - 3940 , - 903 , - 3490 , - 2229 , - 1856 , - 2371 , - 3774 , - 1329 , - 4508 , - 3839 , - 4058 , - 429 , - 2424 , - 571 , - 4342 , - 4265 , - 340 , - 2039 , - 4626 , - 3365 , - 2992 , - 3507 , - 174 , - 2465 , - 908 , - 239 , - 458 , - 1565 , - 3560 , - 1707 , - 742 , - 665 , - 1476 , - 3175 , - 1026 , - 4501 , - 4128 , - 4643 , - 1310 , - 3601 , - 2044 , - 1375 , - 1594 , - 2701 , - 4696 , - 2843 , - 1878 , - 1801 , - 2612 , - 4311 , - 2162 , - 901 , - 528 , - 1043 , - 2446 , - 1 , - 3180 , - 2511 , - 2730 , - 3837 , - 1096 , - 3979 , - 3014 , - 2937 , - 3748 , - 711 , - 3298 , - 2037 , - 1664 , - 2179 , - 3582 , - 1137 , - 4316 , - 3647 , - 3866 , - 237 , - 2232 , - 379 , - 4150 , - 4073 , - 148 , - 1847 , - 4434 , - 3173 , - 2800 , - 3315 , - 4718 , - 2273 , - 716 , - 47 , - 266 , - 1373 , - 3368 , - 1515 , - 550 , - 473 , - 1284 , - 2983 , - 834 , - 4309 , - 3936 , - 4451 , - 1118 , - 3409 , - 1852 , - 1183 , - 1402 , - 2509 , - 4504 , - 2651 , - 1686 , - 1609 , - 2420 , - 4119 , - 1970 , - 709 , - 336 , - 851 , - 2254 , - 4545 , - 2988 , - 2319 , - 2538 , - 3645 , - 904 , - 3787 , - 2822 , - 2745 , - 3556 , - 519 , - 3106 , - 1845 , - 1472 , - 1987 , - 3390 , - 945 , - 4124 , - 3455 , - 3674 , - 45 , - 2040 , - 187 , - 3958 , - 3881 , - 4692 , - 1655 , - 4242 , - 2981 , - 2608 , - 3123 , - 4526 , - 2081 , - 524 , - 4591 , - 74 , - 1181 , - 3176 , - 1323 , - 358 , - 281 , - 1092 , - 2791 , - 642 , - 4117 , - 3744 , - 4259 , - 926 , - 3217 , - 1660 , - 991 , - 1210 , - 2317 , - 4312 , - 2459 , - 1494 , - 1417 , - 2228 , - 3927 , - 1778 , - 517 , - 144 , - 659 , - 2062 , - 4353 , - 2796 , - 2127 , - 2346 , - 3453 , - 712 , - 3595 , - 2630 , - 2553 , - 3364 , - 327 , - 2914 , - 1653 , - 1280 , - 1795 , - 3198 , - 753 , - 3932 , - 3263 , - 3482 , - 4589 , - 1848 , - 4731 , - 3766 , - 3689 , - 4500 , - 1463 , - 4050 , - 2789 , - 2416 , - 2931 , - 4334 , - 1889 , - 332 , - 4399 , - 4618 , - 989 , - 2984 , - 1131 , - 166 , - 89 , - 900 , - 2599 , - 450 , - 3925 , - 3552 , - 4067 , - 734 , - 3025 , - 1468 , - 799 , - 1018 , - 2125 , - 4120 , - 2267 , - 1302 , - 1225 , - 2036 , - 3735 , - 1586 , - 325 , - 4688 , - 467 , - 1870 , - 4161 , - 2604 , - 1935 , - 2154 , - 3261 , - 520 , - 3403 , - 2438 , - 2361 , - 3172 , - 135 , - 2722 , - 1461 , - 1088 , - 1603 , - 3006 , - 561 , - 3740 , - 3071 , - 3290 , - 4397 , - 1656 , - 4539 , - 3574 , - 3497 , - 4308 , - 1271 , - 3858 , - 2597 , - 2224 , - 2739 , - 4142 , - 1697 , - 140 , - 4207 , - 4426 , - 797 , - 2792 , - 939 , - 4710 , - 4633 , - 708 , - 2407 , - 258 , - 3733 , - 3360 , - 3875 , - 542 , - 2833 , - 1276 , - 607 , - 826 , - 1933 , - 3928 , - 2075 , - 1110 , - 1033 , - 1844 , - 3543 , - 1394 , - 133 , - 4496 , - 275 , - 1678 , - 3969 , - 2412 , - 1743 , - 1962 , - 3069 , - 328 , - 3211 , - 2246 , - 2169 , - 2980 , - 4679 , - 2530 , - 1269 , - 896 , - 1411 , - 2814 , - 369 , - 3548 , - 2879 , - 3098 , - 4205 , - 1464 , - 4347 , - 3382 , - 3305 , - 4116 , - 1079 , - 3666 , - 2405 , - 2032 , - 2547 , - 3950 , - 1505 , - 4684 , - 4015 , - 4234 , - 605 , - 2600 , - 747 , - 4518 , - 4441 , - 516 , - 2215 , - 66 , - 3541 , - 3168 , - 3683 , - 350 , - 2641 , - 1084 , - 415 , - 634 , - 1741 , - 3736 , - 1883 , - 918 , - 841 , - 1652 , - 3351 , - 1202 , - 4677 , - 4304 , - 83 , - 1486 , - 3777 , - 2220 , - 1551 , - 1770 , - 2877 , - 136 , - 3019 , - 2054 , - 1977 , - 2788 , - 4487 , - 2338 , - 1077 , - 704 , - 1219 , - 2622 , - 177 , - 3356 , - 2687 , - 2906 , - 4013 , - 1272 , - 4155 , - 3190 , - 3113 , - 3924 , - 887 , - 3474 , - 2213 , - 1840 , - 2355 , - 3758 , - 1313 , - 4492 , - 3823 , - 4042 , - 413 , - 2408 , - 555 , - 4326 , - 4249 , - 324 , - 2023 , - 4610 , - 3349 , - 2976 , - 3491 , - 158 , - 2449 , - 892 , - 223 , - 442 , - 1549 , - 3544 , - 1691 , - 726 , - 649 , - 1460 , - 3159 , - 1010 , - 4485 , - 4112 , - 4627 , - 1294 , - 3585 , - 2028 , - 1359 , - 1578 , - 2685 , - 4680 , - 2827 , - 1862 , - 1785 , - 2596 , - 4295 , - 2146 , - 885 , - 512 , - 1027 , - 2430 , - 4721 , - 3164 , - 2495 , - 2714 , - 3821 , - 1080 , - 3963 , - 2998 , - 2921 , - 3732 , - 695 , - 3282 , - 2021 , - 1648 , - 2163 , - 3566 , - 1121 , - 4300 , - 3631 , - 3850 , - 221 , - 2216 , - 363 , - 4134 , - 4057 , - 132 , - 1831 , - 4418 , - 3157 , - 2784 , - 3299 , - 4702 , - 2257 , - 700 , - 31 , - 250 , - 1357 , - 3352 , - 1499 , - 534 , - 457 , - 1268 , - 2967 , - 818 , - 4293 , - 3920 , - 4435 , - 1102 , - 3393 , - 1836 , - 1167 , - 1386 , - 2493 , - 4488 , - 2635 , - 1670 , - 1593 , - 2404 , - 4103 , - 1954 , - 693 , - 320 , - 835 , - 2238 , - 4529 , - 2972 , - 2303 , - 2522 , - 3629 , - 888 , - 3771 , - 2806 , - 2729 , - 3540 , - 503 , - 3090 , - 1829 , - 1456 , - 1971 , - 3374 , - 929 , - 4108 , - 3439 , - 3658 , - 29 , - 2024 , - 171 , - 3942 , - 3865 , - 4676 , - 1639 , - 4226 , - 2965 , - 2592 , - 3107 , - 4510 , - 2065 , - 508 , - 4575 , - 58 , - 1165 , - 3160 , - 1307 , - 342 , - 265 , - 1076 , - 2775 , - 626 , - 4101 , - 3728 , - 4243 , - 910 , - 3201 , - 1644 , - 975 , - 1194 , - 2301 , - 4296 , - 2443 , - 1478 , - 1401 , - 2212 , - 3911 , - 1762 , - 501 , - 128 , - 643 , - 2046 , - 4337 , - 2780 , - 2111 , - 2330 , - 3437 , - 696 , - 3579 , - 2614 , - 2537 , - 3348 , - 311 , - 2898 , - 1637 , - 1264 , - 1779 , - 3182 , - 737 , - 3916 , - 3247 , - 3466 , - 4573 , - 1832 , - 4715 , - 3750 , - 3673 , - 4484 , - 1447 , - 4034 , - 2773 , - 2400 , - 2915 , - 4318 , - 1873 , - 316 , - 4383 , - 4602 , - 973 , - 2968 , - 1115 , - 150 , - 73 , - 884 , - 2583 , - 434 , - 3909 , - 3536 , - 4051 , - 718 , - 3009 , - 1452 , - 783 , - 1002 , - 2109 , - 4104 , - 2251 , - 1286 , - 1209 , - 2020 , - 3719 , - 1570 , - 309 , - 4672 , - 451 , - 1854 , - 4145 , - 2588 , - 1919 , - 2138 , - 3245 , - 504 , - 3387 , - 2422 , - 2345 , - 3156 , - 119 , - 2706 , - 1445 , - 1072 , - 1587 , - 2990 , - 545 , - 3724 , - 3055 , - 3274 , - 4381 , - 1640 , - 4523 , - 3558 , - 3481 , - 4292 , - 1255 , - 3842 , - 2581 , - 2208 , - 2723 , - 4126 , - 1681 , - 124 , - 4191 , - 4410 , - 781 , - 2776 , - 923 , - 4694 , - 4617 , - 692 , - 2391 , - 242 , - 3717 , - 3344 , - 3859 , - 526 , - 2817 , - 1260 , - 591 , - 810 , - 1917 , - 3912 , - 2059 , - 1094 , - 1017 , - 1828 , - 3527 , - 1378 , - 117 , - 4480 , - 259 , - 1662 , - 3953 , - 2396 , - 1727 , - 1946 , - 3053 , - 312 , - 3195 , - 2230 , - 2153 , - 2964 , - 4663 , - 2514 , - 1253 , - 880 , - 1395 , - 2798 , - 353 , - 3532 , - 2863 , - 3082 , - 4189 , - 1448 , - 4331 , - 3366 , - 3289 , - 4100 , - 1063 , - 3650 , - 2389 , - 2016 , - 2531 , - 3934 , - 1489 , - 4668 , - 3999 , - 4218 , - 589 , - 2584 , - 731 , - 4502 , - 4425 , - 500 , - 2199 , - 50 , - 3525 , - 3152 , - 3667 , - 334 , - 2625 , - 1068 , - 399 , - 618 , - 1725 , - 3720 , - 1867 , - 902 , - 825 , - 1636 , - 3335 , - 1186 , - 4661 , - 4288 , - 67 , - 1470 , - 3761 , - 2204 , - 1535 , - 1754 , - 2861 , - 120 , - 3003 , - 2038 , - 1961 , - 2772 , - 4471 , - 2322 , - 1061 , - 688 , - 1203 , - 2606 , - 161 , - 3340 , - 2671 , - 2890 , - 3997 , - 1256 , - 4139 , - 3174 , - 3097 , - 3908 , - 871 , - 3458 , - 2197 , - 1824 , - 2339 , - 3742 , - 1297 , - 4476 , - 3807 , - 4026 , - 397 , - 2392 , - 539 , - 4310 , - 4233 , - 308 , - 2007 , - 4594 , - 3333 , - 2960 , - 3475 , - 142 , - 2433 , - 876 , - 207 , - 426 , - 1533 , - 3528 , - 1675 , - 710 , - 633 , - 1444 , - 3143 , - 994 , - 4469 , - 4096 , - 4611 , - 1278 , - 3569 , - 2012 , - 1343 , - 1562 , - 2669 , - 4664 , - 2811 , - 1846 , - 1769 , - 2580 , - 4279 , - 2130 , - 869 , - 496 , - 1011 , - 2414 , - 4705 , - 3148 , - 2479 , - 2698 , - 3805 , - 1064 , - 3947 , - 2982 , - 2905 , - 3716 , - 679 , - 3266 , - 2005 , - 1632 , - 2147 , - 3550 , - 1105 , - 4284 , - 3615 , - 3834 , - 205 , - 2200 , - 347 , - 4118 , - 4041 , - 116 , - 1815 , - 4402 , - 3141 , - 2768 , - 3283 , - 4686 , - 2241 , - 684 , - 15 , - 234 , - 1341 , - 3336 , - 1483 , - 518 , - 441 , - 1252 , - 2951 , - 802 , - 4277 , - 3904 , - 4419 , - 1086 , - 3377 , - 1820 , - 1151 , - 1370 , - 2477 , - 4472 , - 2619 , - 1654 , - 1577 , - 2388 , - 4087 , - 1938 , - 677 , - 304 , - 819 , - 2222 , - 4513 , - 2956 , - 2287 , - 2506 , - 3613 , - 872 , - 3755 , - 2790 , - 2713 , - 3524 , - 487 , - 3074 , - 1813 , - 1440 , - 1955 , - 3358 , - 913 , - 4092 , - 3423 , - 3642 , - 13 , - 2008 , - 155 , - 3926 , - 3849 , - 4660 , - 1623 , - 4210 , - 2949 , - 2576 , - 3091 , - 4494 , - 2049 , - 492 , - 4559 , - 42 , - 1149 , - 3144 , - 1291 , - 326 , - 249 , - 1060 , - 2759 , - 610 , - 4085 , - 3712 , - 4227 , - 894 , - 3185 , - 1628 , - 959 , - 1178 , - 2285 , - 4280 , - 2427 , - 1462 , - 1385 , - 2196 , - 3895 , - 1746 , - 485 , - 112 , - 627 , - 2030 , - 4321 , - 2764 , - 2095 , - 2314 , - 3421 , - 680 , - 3563 , - 2598 , - 2521 , - 3332 , - 295 , - 2882 , - 1621 , - 1248 , - 1763 , - 3166 , - 721 , - 3900 , - 3231 , - 3450 , - 4557 , - 1816 , - 4699 , - 3734 , - 3657 , - 4468 , - 1431 , - 4018 , - 2757 , - 2384 , - 2899 , - 4302 , - 1857 , - 300 , - 4367 , - 4586 , - 957 , - 2952 , - 1099 , - 134 , - 57 , - 868 , - 2567 , - 418 , - 3893 , - 3520 , - 4035 , - 702 , - 2993 , - 1436 , - 767 , - 986 , - 2093 , - 4088 , - 2235 , - 1270 , - 1193 , - 2004 , - 3703 , - 1554 , - 293 , - 4656 , - 435 , - 1838 , - 4129 , - 2572 , - 1903 , - 2122 , - 3229 , - 488 , - 3371 , - 2406 , - 2329 , - 3140 , - 103 , - 2690 , - 1429 , - 1056 , - 1571 , - 2974 , - 529 , - 3708 , - 3039 , - 3258 , - 4365 , - 1624 , - 4507 , - 3542 , - 3465 , - 4276 , - 1239 , - 3826 , - 2565 , - 2192 , - 2707 , - 4110 , - 1665 , - 108 , - 4175 , - 4394 , - 765 , - 2760 , - 907 , - 4678 , - 4601 , - 676 , - 2375 , - 226 , - 3701 , - 3328 , - 3843 , - 510 , - 2801 , - 1244 , - 575 , - 794 , - 1901 , - 3896 , - 2043 , - 1078 , - 1001 , - 1812 , - 3511 , - 1362 , - 101 , - 4464 , - 243 , - 1646 , - 3937 , - 2380 , - 1711 , - 1930 , - 3037 , - 296 , - 3179 , - 2214 , - 2137 , - 2948 , - 4647 , - 2498 , - 1237 , - 864 , - 1379 , - 2782 , - 337 , - 3516 , - 2847 , - 3066 , - 4173 , - 1432 , - 4315 , - 3350 , - 3273 , - 4084 , - 1047 , - 3634 , - 2373 , - 2000 , - 2515 , - 3918 , - 1473 , - 4652 , - 3983 , - 4202 , - 573 , - 2568 , - 715 , - 4486 , - 4409 , - 484 , - 2183 , - 34 , - 3509 , - 3136 , - 3651 , - 318 , - 2609 , - 1052 , - 383 , - 602 , - 1709 , - 3704 , - 1851 , - 886 , - 809 , - 1620 , - 3319 , - 1170 , - 4645 , - 4272 , - 51 , - 1454 , - 3745 , - 2188 , - 1519 , - 1738 , - 2845 , - 104 , - 2987 , - 2022 , - 1945 , - 2756 , - 4455 , - 2306 , - 1045 , - 672 , - 1187 , - 2590 , - 145 , - 3324 , - 2655 , - 2874 , - 3981 , - 1240 , - 4123 , - 3158 , - 3081 , - 3892 , - 855 , - 3442 , - 2181 , - 1808 , - 2323 , - 3726 , - 1281 , - 4460 , - 3791 , - 4010 , - 381 , - 2376 , - 523 , - 4294 , - 4217 , - 292 , - 1991 , - 4578 , - 3317 , - 2944 , - 3459 , - 126 , - 2417 , - 860 , - 191 , - 410 , - 1517 , - 3512 , - 1659 , - 694 , - 617 , - 1428 , - 3127 , - 978 , - 4453 , - 4080 , - 4595 , - 1262 , - 3553 , - 1996 , - 1327 , - 1546 , - 2653 , - 4648 , - 2795 , - 1830 , - 1753 , - 2564 , - 4263 , - 2114 , - 853 , - 480 , - 995 , - 2398 , - 4689 , - 3132 , - 2463 , - 2682 , - 3789 , - 1048 , - 3931 , - 2966 , - 2889 , - 3700 , - 663 , - 3250 , - 1989 , - 1616 , - 2131 , - 3534 , - 1089 , - 4268 , - 3599 , - 3818 , - 189 , - 2184 , - 331 , - 4102 , - 4025 , - 100 , - 1799 , - 4386 , - 3125 , - 2752 , - 3267 , - 4670 , - 2225 , - 668 , - 4735 , - 218 , - 1325 , - 3320 , - 1467 , - 502 , - 425 , - 1236 , - 2935 , - 786 , - 4261 , - 3888 , - 4403 , - 1070 , - 3361 , - 1804 , - 1135 , - 1354 , - 2461 , - 4456 , - 2603 , - 1638 , - 1561 , - 2372 , - 4071 , - 1922 , - 661 , - 288 , - 803 , - 2206 , - 4497 , - 2940 , - 2271 , - 2490 , - 3597 , - 856 , - 3739 , - 2774 , - 2697 , - 3508 , - 471 , - 3058 , - 1797 , - 1424 , - 1939 , - 3342 , - 897 , - 4076 , - 3407 , - 3626 , - 4733 , - 1992 , - 139 , - 3910 , - 3833 , - 4644 , - 1607 , - 4194 , - 2933 , - 2560 , - 3075 , - 4478 , - 2033 , - 476 , - 4543 , - 26 , - 1133 , - 3128 , - 1275 , - 310 , - 233 , - 1044 , - 2743 , - 594 , - 4069 , - 3696 , - 4211 , - 878 , - 3169 , - 1612 , - 943 , - 1162 , - 2269 , - 4264 , - 2411 , - 1446 , - 1369 , - 2180 , - 3879 , - 1730 , - 469 , - 96 , - 611 , - 2014 , - 4305 , - 2748 , - 2079 , - 2298 , - 3405 , - 664 , - 3547 , - 2582 , - 2505 , - 3316 , - 279 , - 2866 , - 1605 , - 1232 , - 1747 , - 3150 , - 705 , - 3884 , - 3215 , - 3434 , - 4541 , - 1800 , - 4683 , - 3718 , - 3641 , - 4452 , - 1415 , - 4002 , - 2741 , - 2368 , - 2883 , - 4286 , - 1841 , - 284 , - 4351 , - 4570 , - 941 , - 2936 , - 1083 , - 118 , - 41 , - 852 , - 2551 , - 402 , - 3877 , - 3504 , - 4019 , - 686 , - 2977 , - 1420 , - 751 , - 970 , - 2077 , - 4072 , - 2219 , - 1254 , - 1177 , - 1988 , - 3687 , - 1538 , - 277 , - 4640 , - 419 , - 1822 , - 4113 , - 2556 , - 1887 , - 2106 , - 3213 , - 472 , - 3355 , - 2390 , - 2313 , - 3124 , - 87 , - 2674 , - 1413 , - 1040 , - 1555 , - 2958 , - 513 , - 3692 , - 3023 , - 3242 , - 4349 , - 1608 , - 4491 , - 3526 , - 3449 , - 4260 , - 1223 , - 3810 , - 2549 , - 2176 , - 2691 , - 4094 , - 1649 , - 92 , - 4159 , - 4378 , - 749 , - 2744 , - 891 , - 4662 , - 4585 , - 660 , - 2359 , - 210 , - 3685 , - 3312 , - 3827 , - 494 , - 2785 , - 1228 , - 559 , - 778 , - 1885 , - 3880 , - 2027 , - 1062 , - 985 , - 1796 , - 3495 , - 1346 , - 85 , - 4448 , - 227 , - 1630 , - 3921 , - 2364 , - 1695 , - 1914 , - 3021 , - 280 , - 3163 , - 2198 , - 2121 , - 2932 , - 4631 , - 2482 , - 1221 , - 848 , - 1363 , - 2766 , - 321 , - 3500 , - 2831 , - 3050 , - 4157 , - 1416 , - 4299 , - 3334 , - 3257 , - 4068 , - 1031 , - 3618 , - 2357 , - 1984 , - 2499 , - 3902 , - 1457 , - 4636 , - 3967 , - 4186 , - 557 , - 2552 , - 699 , - 4470 , - 4393 , - 468 , - 2167 , - 18 , - 3493 , - 3120 , - 3635 , - 302 , - 2593 , - 1036 , - 367 , - 586 , - 1693 , - 3688 , - 1835 , - 870 , - 793 , - 1604 , - 3303 , - 1154 , - 4629 , - 4256 , - 35 , - 1438 , - 3729 , - 2172 , - 1503 , - 1722 , - 2829 , - 88 , - 2971 , - 2006 , - 1929 , - 2740 , - 4439 , - 2290 , - 1029 , - 656 , - 1171 , - 2574 , - 129 , - 3308 , - 2639 , - 2858 , - 3965 , - 1224 , - 4107 , - 3142 , - 3065 , - 3876 , - 839 , - 3426 , - 2165 , - 1792 , - 2307 , - 3710 , - 1265 , - 4444 , - 3775 , - 3994 , - 365 , - 2360 , - 507 , - 4278 , - 4201 , - 276 , - 1975 , - 4562 , - 3301 , - 2928 , - 3443 , - 110 , - 2401 , - 844 , - 175 , - 394 , - 1501 , - 3496 , - 1643 , - 678 , - 601 , - 1412 , - 3111 , - 962 , - 4437 , - 4064 , - 4579 , - 1246 , - 3537 , - 1980 , - 1311 , - 1530 , - 2637 , - 4632 , - 2779 , - 1814 , - 1737 , - 2548 , - 4247 , - 2098 , - 837 , - 464 , - 979 , - 2382 , - 4673 , - 3116 , - 2447 , - 2666 , - 3773 , - 1032 , - 3915 , - 2950 , - 2873 , - 3684 , - 647 , - 3234 , - 1973 , - 1600 , - 2115 , - 3518 , - 1073 , - 4252 , - 3583 , - 3802 , - 173 , - 2168 , - 315 , - 4086 , - 4009 , - 84 , - 1783 , - 4370 , - 3109 , - 2736 , - 3251 , - 4654 , - 2209 , - 652 , - 4719 , - 202 , - 1309 , - 3304 , - 1451 , - 486 , - 409 , - 1220 , - 2919 , - 770 , - 4245 , - 3872 , - 4387 , - 1054 , - 3345 , - 1788 , - 1119 , - 1338 , - 2445 , - 4440 , - 2587 , - 1622 , - 1545 , - 2356 , - 4055 , - 1906 , - 645 , - 272 , - 787 , - 2190 , - 4481 , - 2924 , - 2255 , - 2474 , - 3581 , - 840 , - 3723 , - 2758 , - 2681 , - 3492 , - 455 , - 3042 , - 1781 , - 1408 , - 1923 , - 3326 , - 881 , - 4060 , - 3391 , - 3610 , - 4717 , - 1976 , - 123 , - 3894 , - 3817 , - 4628 , - 1591 , - 4178 , - 2917 , - 2544 , - 3059 , - 4462 , - 2017 , - 460 , - 4527 , - 10 , - 1117 , - 3112 , - 1259 , - 294 , - 217 , - 1028 , - 2727 , - 578 , - 4053 , - 3680 , - 4195 , - 862 , - 3153 , - 1596 , - 927 , - 1146 , - 2253 , - 4248 , - 2395 , - 1430 , - 1353 , - 2164 , - 3863 , - 1714 , - 453 , - 80 , - 595 , - 1998 , - 4289 , - 2732 , - 2063 , - 2282 , - 3389 , - 648 , - 3531 , - 2566 , - 2489 , - 3300 , - 263 , - 2850 , - 1589 , - 1216 , - 1731 , - 3134 , - 689 , - 3868 , - 3199 , - 3418 , - 4525 , - 1784 , - 4667 , - 3702 , - 3625 , - 4436 , - 1399 , - 3986 , - 2725 , - 2352 , - 2867 , - 4270 , - 1825 , - 268 , - 4335 , - 4554 , - 925 , - 2920 , - 1067 , - 102 , - 25 , - 836 , - 2535 , - 386 , - 3861 , - 3488 , - 4003 , - 670 , - 2961 , - 1404 , - 735 , - 954 , - 2061 , - 4056 , - 2203 , - 1238 , - 1161 , - 1972 , - 3671 , - 1522 , - 261 , - 4624 , - 403 , - 1806 , - 4097 , - 2540 , - 1871 , - 2090 , - 3197 , - 456 , - 3339 , - 2374 , - 2297 , - 3108 , - 71 , - 2658 , - 1397 , - 1024 , - 1539 , - 2942 , - 497 , - 3676 , - 3007 , - 3226 , - 4333 , - 1592 , - 4475 , - 3510 , - 3433 , - 4244 , - 1207 , - 3794 , - 2533 , - 2160 , - 2675 , - 4078 , - 1633 , - 76 , - 4143 , - 4362 , - 733 , - 2728 , - 875 , - 4646 , - 4569 , - 644 , - 2343 , - 194 , - 3669 , - 3296 , - 3811 , - 478 , - 2769 , - 1212 , - 543 , - 762 , - 1869 , - 3864 , - 2011 , - 1046 , - 969 , - 1780 , - 3479 , - 1330 , - 69 , - 4432 , - 211 , - 1614 , - 3905 , - 2348 , - 1679 , - 1898 , - 3005 , - 264 , - 3147 , - 2182 , - 2105 , - 2916 , - 4615 , - 2466 , - 1205 , - 832 , - 1347 , - 2750 , - 305 , - 3484 , - 2815 , - 3034 , - 4141 , - 1400 , - 4283 , - 3318 , - 3241 , - 4052 , - 1015 , - 3602 , - 2341 , - 1968 , - 2483 , - 3886 , - 1441 , - 4620 , - 3951 , - 4170 , - 541 , - 2536 , - 683 , - 4454 , - 4377 , - 452 , - 2151 , - 2 , - 3477 , - 3104 , - 3619 , - 286 , - 2577 , - 1020 , - 351 , - 570 , - 1677 , - 3672 , - 1819 , - 854 , - 777 , - 1588 , - 3287 , - 1138 , - 4613 , - 4240 , - 19 , - 1422 , - 3713 , - 2156 , - 1487 , - 1706 , - 2813 , - 72 , - 2955 , - 1990 , - 1913 , - 2724 , - 4423 , - 2274 , - 1013 , - 640 , - 1155 , - 2558 , - 113 , - 3292 , - 2623 , - 2842 , - 3949 , - 1208 , - 4091 , - 3126 , - 3049 , - 3860 , - 823 , - 3410 , - 2149 , - 1776 , - 2291 , - 3694 , - 1249 , - 4428 , - 3759 , - 3978 , - 349 , - 2344 , - 491 , - 4262 , - 4185 , - 260 , - 1959 , - 4546 , - 3285 , - 2912 , - 3427 , - 94 , - 2385 , - 828 , - 159 , - 378 , - 1485 , - 3480 , - 1627 , - 662 , - 585 , - 1396 , - 3095 , - 946 , - 4421 , - 4048 , - 4563 , - 1230 , - 3521 , - 1964 , - 1295 , - 1514 , - 2621 , - 4616 , - 2763 , - 1798 , - 1721 , - 2532 , - 4231 , - 2082 , - 821 , - 448 , - 963 , - 2366 , - 4657 , - 3100 , - 2431 , - 2650 , - 3757 , - 1016 , - 3899 , - 2934 , - 2857 , - 3668 , - 631 , - 3218 , - 1957 , - 1584 , - 2099 , - 3502 , - 1057 , - 4236 , - 3567 , - 3786 , - 157 , - 2152 , - 299 , - 4070 , - 3993 , - 68 , - 1767 , - 4354 , - 3093 , - 2720 , - 3235 , - 4638 , - 2193 , - 636 , - 4703 , - 186 , - 1293 , - 3288 , - 1435 , - 470 , - 393 , - 1204 , - 2903 , - 754 , - 4229 , - 3856 , - 4371 , - 1038 , - 3329 , - 1772 , - 1103 , - 1322 , - 2429 , - 4424 , - 2571 , - 1606 , - 1529 , - 2340 , - 4039 , - 1890 , - 629 , - 256 , - 771 , - 2174 , - 4465 , - 2908 , - 2239 , - 2458 , - 3565 , - 824 , - 3707 , - 2742 , - 2665 , - 3476 , - 439 , - 3026 , - 1765 , - 1392 , - 1907 , - 3310 , - 865 , - 4044 , - 3375 , - 3594 , - 4701 , - 1960 , - 107 , - 3878 , - 3801 , - 4612 , - 1575 , - 4162 , - 2901 , - 2528 , - 3043 , - 4446 , - 2001 , - 444 , - 4511 , - 4730 , - 1101 , - 3096 , - 1243 , - 278 , - 201 , - 1012 , - 2711 , - 562 , - 4037 , - 3664 , - 4179 , - 846 , - 3137 , - 1580 , - 911 , - 1130 , - 2237 , - 4232 , - 2379 , - 1414 , - 1337 , - 2148 , - 3847 , - 1698 , - 437 , - 64 , - 579 , - 1982 , - 4273 , - 2716 , - 2047 , - 2266 , - 3373 , - 632 , - 3515 , - 2550 , - 2473 , - 3284 , - 247 , - 2834 , - 1573 , - 1200 , - 1715 , - 3118 , - 673 , - 3852 , - 3183 , - 3402 , - 4509 , - 1768 , - 4651 , - 3686 , - 3609 , - 4420 , - 1383 , - 3970 , - 2709 , - 2336 , - 2851 , - 4254 , - 1809 , - 252 , - 4319 , - 4538 , - 909 , - 2904 , - 1051 , - 86 , - 9 , - 820 , - 2519 , - 370 , - 3845 , - 3472 , - 3987 , - 654 , - 2945 , - 1388 , - 719 , - 938 , - 2045 , - 4040 , - 2187 , - 1222 , - 1145 , - 1956 , - 3655 , - 1506 , - 245 , - 4608 , - 387 , - 1790 , - 4081 , - 2524 , - 1855 , - 2074 , - 3181 , - 440 , - 3323 , - 2358 , - 2281 , - 3092 , - 55 , - 2642 , - 1381 , - 1008 , - 1523 , - 2926 , - 481 , - 3660 , - 2991 , - 3210 , - 4317 , - 1576 , - 4459 , - 3494 , - 3417 , - 4228 , - 1191 , - 3778 , - 2517 , - 2144 , - 2659 , - 4062 , - 1617 , - 60 , - 4127 , - 4346 , - 717 , - 2712 , - 859 , - 4630 , - 4553 , - 628 , - 2327 , - 178 , - 3653 , - 3280 , - 3795 , - 462 , - 2753 , - 1196 , - 527 , - 746 , - 1853 , - 3848 , - 1995 , - 1030 , - 953 , - 1764 , - 3463 , - 1314 , - 53 , - 4416 , - 195 , - 1598 , - 3889 , - 2332 , - 1663 , - 1882 , - 2989 , - 248 , - 3131 , - 2166 , - 2089 , - 2900 , - 4599 , - 2450 , - 1189 , - 816 , - 1331 , - 2734 , - 289 , - 3468 , - 2799 , - 3018 , - 4125 , - 1384 , - 4267 , - 3302 , - 3225 , - 4036 , - 999 , - 3586 , - 2325 , - 1952 , - 2467 , - 3870 , - 1425 , - 4604 , - 3935 , - 4154 , - 525 , - 2520 , - 667 , - 4438 , - 4361 , - 436 , - 2135 , - 4722 , - 3461 , - 3088 , - 3603 , - 270 , - 2561 , - 1004 , - 335 , - 554 , - 1661 , - 3656 , - 1803 , - 838 , - 761 , - 1572 , - 3271 , - 1122 , - 4597 , - 4224 , - 3 , - 1406 , - 3697 , - 2140 , - 1471 , - 1690 , - 2797 , - 56 , - 2939 , - 1974 , - 1897 , - 2708 , - 4407 , - 2258 , - 997 , - 624 , - 1139 , - 2542 , - 97 , - 3276 , - 2607 , - 2826 , - 3933 , - 1192 , - 4075 , - 3110 , - 3033 , - 3844 , - 807 , - 3394 , - 2133 , - 1760 , - 2275 , - 3678 , - 1233 , - 4412 , - 3743 , - 3962 , - 333 , - 2328 , - 475 , - 4246 , - 4169 , - 244 , - 1943 , - 4530 , - 3269 , - 2896 , - 3411 , - 78 , - 2369 , - 812 , - 143 , - 362 , - 1469 , - 3464 , - 1611 , - 646 , - 569 , - 1380 , - 3079 , - 930 , - 4405 , - 4032 , - 4547 , - 1214 , - 3505 , - 1948 , - 1279 , - 1498 , - 2605 , - 4600 , - 2747 , - 1782 , - 1705 , - 2516 , - 4215 , - 2066 , - 805 , - 432 , - 947 , - 2350 , - 4641 , - 3084 , - 2415 , - 2634 , - 3741 , - 1000 , - 3883 , - 2918 , - 2841 , - 3652 , - 615 , - 3202 , - 1941 , - 1568 , - 2083 , - 3486 , - 1041 , - 4220 , - 3551 , - 3770 , - 141 , - 2136 , - 283 , - 4054 , - 3977 , - 52 , - 1751 , - 4338 , - 3077 , - 2704 , - 3219 , - 4622 , - 2177 , - 620 , - 4687 , - 170 , - 1277 , - 3272 , - 1419 , - 454 , - 377 , - 1188 , - 2887 , - 738 , - 4213 , - 3840 , - 4355 , - 1022 , - 3313 , - 1756 , - 1087 , - 1306 , - 2413 , - 4408 , - 2555 , - 1590 , - 1513 , - 2324 , - 4023 , - 1874 , - 613 , - 240 , - 755 , - 2158 , - 4449 , - 2892 , - 2223 , - 2442 , - 3549 , - 808 , - 3691 , - 2726 , - 2649 , - 3460 , - 423 , - 3010 , - 1749 , - 1376 , - 1891 , - 3294 , - 849 , - 4028 , - 3359 , - 3578 , - 4685 , - 1944 , - 91 , - 3862 , - 3785 , - 4596 , - 1559 , - 4146 , - 2885 , - 2512 , - 3027 , - 4430 , - 1985 , - 428 , - 4495 , - 4714 , - 1085 , - 3080 , - 1227 , - 262 , - 185 , - 996 , - 2695 , - 546 , - 4021 , - 3648 , - 4163 , - 830 , - 3121 , - 1564 , - 895 , - 1114 , - 2221 , - 4216 , - 2363 , - 1398 , - 1321 , - 2132 , - 3831 , - 1682 , - 421 , - 48 , - 563 , - 1966 , - 4257 , - 2700 , - 2031 , - 2250 , - 3357 , - 616 , - 3499 , - 2534 , - 2457 , - 3268 , - 231 , - 2818 , - 1557 , - 1184 , - 1699 , - 3102 , - 657 , - 3836 , - 3167 , - 3386 , - 4493 , - 1752 , - 4635 , - 3670 , - 3593 , - 4404 , - 1367 , - 3954 , - 2693 , - 2320 , - 2835 , - 4238 , - 1793 , - 236 , - 4303 , - 4522 , - 893 , - 2888 , - 1035 , - 70 , - 4729 , - 804 , - 2503 , - 354 , - 3829 , - 3456 , - 3971 , - 638 , - 2929 , - 1372 , - 703 , - 922 , - 2029 , - 4024 , - 2171 , - 1206 , - 1129 , - 1940 , - 3639 , - 1490 , - 229 , - 4592 , - 371 , - 1774 , - 4065 , - 2508 , - 1839 , - 2058 , - 3165 , - 424 , - 3307 , - 2342 , - 2265 , - 3076 , - 39 , - 2626 , - 1365 , - 992 , - 1507 , - 2910 , - 465 , - 3644 , - 2975 , - 3194 , - 4301 , - 1560 , - 4443 , - 3478 , - 3401 , - 4212 , - 1175 , - 3762 , - 2501 , - 2128 , - 2643 , - 4046 , - 1601 , - 44 , - 4111 , - 4330 , - 701 , - 2696 , - 843 , - 4614 , - 4537 , - 612 , - 2311 , - 162 , - 3637 , - 3264 , - 3779 , - 446 , - 2737 , - 1180 , - 511 , - 730 , - 1837 , - 3832 , - 1979 , - 1014 , - 937 , - 1748 , - 3447 , - 1298 , - 37 , - 4400 , - 179 , - 1582 , - 3873 , - 2316 , - 1647 , - 1866 , - 2973 , - 232 , - 3115 , - 2150 , - 2073 , - 2884 , - 4583 , - 2434 , - 1173 , - 800 , - 1315 , - 2718 , - 273 , - 3452 , - 2783 , - 3002 , - 4109 , - 1368 , - 4251 , - 3286 , - 3209 , - 4020 , - 983 , - 3570 , - 2309 , - 1936 , - 2451 , - 3854 , - 1409 , - 4588 , - 3919 , - 4138 , - 509 , - 2504 , - 651 , - 4422 , - 4345 , - 420 , - 2119 , - 4706 , - 3445 , - 3072 , - 3587 , - 254 , - 2545 , - 988 , - 319 , - 538 , - 1645 , - 3640 , - 1787 , - 822 , - 745 , - 1556 , - 3255 , - 1106 , - 4581 , - 4208 , - 4723 , - 1390 , - 3681 , - 2124 , - 1455 , - 1674 , - 2781 , - 40 , - 2923 , - 1958 , - 1881 , - 2692 , - 4391 , - 2242 , - 981 , - 608 , - 1123 , - 2526 , - 81 , - 3260 , - 2591 , - 2810 , - 3917 , - 1176 , - 4059 , - 3094 , - 3017 , - 3828 , - 791 , - 3378 , - 2117 , - 1744 , - 2259 , - 3662 , - 1217 , - 4396 , - 3727 , - 3946 , - 317 , - 2312 , - 459 , - 4230 , - 4153 , - 228 , - 1927 , - 4514 , - 3253 , - 2880 , - 3395 , - 62 , - 2353 , - 796 , - 127 , - 346 , - 1453 , - 3448 , - 1595 , - 630 , - 553 , - 1364 , - 3063 , - 914 , - 4389 , - 4016 , - 4531 , - 1198 , - 3489 , - 1932 , - 1263 , - 1482 , - 2589 , - 4584 , - 2731 , - 1766 , - 1689 , - 2500 , - 4199 , - 2050 , - 789 , - 416 , - 931 , - 2334 , - 4625 , - 3068 , - 2399 , - 2618 , - 3725 , - 984 , - 3867 , - 2902 , - 2825 , - 3636 , - 599 , - 3186 , - 1925 , - 1552 , - 2067 , - 3470 , - 1025 , - 4204 , - 3535 , - 3754 , - 125 , - 2120 , - 267 , - 4038 , - 3961 , - 36 , - 1735 , - 4322 , - 3061 , - 2688 , - 3203 , - 4606 , - 2161 , - 604 , - 4671 , - 154 , - 1261 , - 3256 , - 1403 , - 438 , - 361 , - 1172 , - 2871 , - 722 , - 4197 , - 3824 , - 4339 , - 1006 , - 3297 , - 1740 , - 1071 , - 1290 , - 2397 , - 4392 , - 2539 , - 1574 , - 1497 , - 2308 , - 4007 , - 1858 , - 597 , - 224 , - 739 , - 2142 , - 4433 , - 2876 , - 2207 , - 2426 , - 3533 , - 792 , - 3675 , - 2710 , - 2633 , - 3444 , - 407 , - 2994 , - 1733 , - 1360 , - 1875 , - 3278 , - 833 , - 4012 , - 3343 , - 3562 , - 4669 , - 1928 , - 75 , - 3846 , - 3769 , - 4580 , - 1543 , - 4130 , - 2869 , - 2496 , - 3011 , - 4414 , - 1969 , - 412 , - 4479 , - 4698 , - 1069 , - 3064 , - 1211 , - 246 , - 169 , - 980 , - 2679 , - 530 , - 4005 , - 3632 , - 4147 , - 814 , - 3105 , - 1548 , - 879 , - 1098 , - 2205 , - 4200 , - 2347 , - 1382 , - 1305 , - 2116 , - 3815 , - 1666 , - 405 , - 32 , - 547 , - 1950 , - 4241 , - 2684 , - 2015 , - 2234 , - 3341 , - 600 , - 3483 , - 2518 , - 2441 , - 3252 , - 215 , - 2802 , - 1541 , - 1168 , - 1683 , - 3086 , - 641 , - 3820 , - 3151 , - 3370 , - 4477 , - 1736 , - 4619 , - 3654 , - 3577 , - 4388 , - 1351 , - 3938 , - 2677 , - 2304 , - 2819 , - 4222 , - 1777 , - 220 , - 4287 , - 4506 , - 877 , - 2872 , - 1019 , - 54 , - 4713 , - 788 , - 2487 , - 338 , - 3813 , - 3440 , - 3955 , - 622 , - 2913 , - 1356 , - 687 , - 906 , - 2013 , - 4008 , - 2155 , - 1190 , - 1113 , - 1924 , - 3623 , - 1474 , - 213 , - 4576 , - 355 , - 1758 , - 4049 , - 2492 , - 1823 , - 2042 , - 3149 , - 408 , - 3291 , - 2326 , - 2249 , - 3060 , - 23 , - 2610 , - 1349 , - 976 , - 1491 , - 2894 , - 449 , - 3628 , - 2959 , - 3178 , - 4285 , - 1544 , - 4427 , - 3462 , - 3385 , - 4196 , - 1159 , - 3746 , - 2485 , - 2112 , - 2627 , - 4030 , - 1585 , - 28 , - 4095 , - 4314 , - 685 , - 2680 , - 827 , - 4598 , - 4521 , - 596 , - 2295 , - 146 , - 3621 , - 3248 , - 3763 , - 430 , - 2721 , - 1164 , - 495 , - 714 , - 1821 , - 3816 , - 1963 , - 998 , - 921 , - 1732 , - 3431 , - 1282 , - 21 , - 4384 , - 163 , - 1566 , - 3857 , - 2300 , - 1631 , - 1850 , - 2957 , - 216 , - 3099 , - 2134 , - 2057 , - 2868 , - 4567 , - 2418 , - 1157 , - 784 , - 1299 , - 2702 , - 257 , - 3436 , - 2767 , - 2986 , - 4093 , - 1352 , - 4235 , - 3270 , - 3193 , - 4004 , - 967 , - 3554 , - 2293 , - 1920 , - 2435 , - 3838 , - 1393 , - 4572 , - 3903 , - 4122 , - 493 , - 2488 , - 635 , - 4406 , - 4329 , - 404 , - 2103 , - 4690 , - 3429 , - 3056 , - 3571 , - 238 , - 2529 , - 972 , - 303 , - 522 , - 1629 , - 3624 , - 1771 , - 806 , - 729 , - 1540 , - 3239 , - 1090 , - 4565 , - 4192 , - 4707 , - 1374 , - 3665 , - 2108 , - 1439 , - 1658 , - 2765 , - 24 , - 2907 , - 1942 , - 1865 , - 2676 , - 4375 , - 2226 , - 965 , - 592 , - 1107 , - 2510 , - 65 , - 3244 , - 2575 , - 2794 , - 3901 , - 1160 , - 4043 , - 3078 , - 3001 , - 3812 , - 775 , - 3362 , - 2101 , - 1728 , - 2243 , - 3646 , - 1201 , - 4380 , - 3711 , - 3930 , - 301 , - 2296 , - 443 , - 4214 , - 4137 , - 212 , - 1911 , - 4498 , - 3237 , - 2864 , - 3379 , - 46 , - 2337 , - 780 , - 111 , - 330 , - 1437 , - 3432 , - 1579 , - 614 , - 537 , - 1348 , - 3047 , - 898 , - 4373 , - 4000 , - 4515 , - 1182 , - 3473 , - 1916 , - 1247 , - 1466 , - 2573 , - 4568 , - 2715 , - 1750 , - 1673 , - 2484 , - 4183 , - 2034 , - 773 , - 400 , - 915 , - 2318 , - 4609 , - 3052 , - 2383 , - 2602 , - 3709 , - 968 , - 3851 , - 2886 , - 2809 , - 3620 , - 583 , - 3170 , - 1909 , - 1536 , - 2051 , - 3454 , - 1009 , - 4188 , - 3519 , - 3738 , - 109 , - 2104 , - 251 , - 4022 , - 3945 , - 20 , - 1719 , - 4306 , - 3045 , - 2672 , - 3187 , - 4590 , - 2145 , - 588 , - 4655 , - 138 , - 1245 , - 3240 , - 1387 , - 422 , - 345 , - 1156 , - 2855 , - 706 , - 4181 , - 3808 , - 4323 , - 990 , - 3281 , - 1724 , - 1055 , - 1274 , - 2381 , - 4376 , - 2523 , - 1558 , - 1481 , - 2292 , - 3991 , - 1842 , - 581 , - 208 , - 723 , - 2126 , - 4417 , - 2860 , - 2191 , - 2410 , - 3517 , - 776 , - 3659 , - 2694 , - 2617 , - 3428 , - 391 , - 2978 , - 1717 , - 1344 , - 1859 , - 3262 , - 817 , - 3996 , - 3327 , - 3546 , - 4653 , - 1912 , - 59 , - 3830 , - 3753 , - 4564 , - 1527 , - 4114 , - 2853 , - 2480 , - 2995 , - 4398 , - 1953 , - 396 , - 4463 , - 4682 , - 1053 , - 3048 , - 1195 , - 230 , - 153 , - 964 , - 2663 , - 514 , - 3989 , - 3616 , - 4131 , - 798 , - 3089 , - 1532 , - 863 , - 1082 , - 2189 , - 4184 , - 2331 , - 1366 , - 1289 , - 2100 , - 3799 , - 1650 , - 389 , - 16 , - 531 , - 1934 , - 4225 , - 2668 , - 1999 , - 2218 , - 3325 , - 584 , - 3467 , - 2502 , - 2425 , - 3236 , - 199 , - 2786 , - 1525 , - 1152 , - 1667 , - 3070 , - 625 , - 3804 , - 3135 , - 3354 , - 4461 , - 1720 , - 4603 , - 3638 , - 3561 , - 4372 , - 1335 , - 3922 , - 2661 , - 2288 , - 2803 , - 4206 , - 1761 , - 204 , - 4271 , - 4490 , - 861 , - 2856 , - 1003 , - 38 , - 4697 , - 772 , - 2471 , - 322 , - 3797 , - 3424 , - 3939 , - 606 , - 2897 , - 1340 , - 671 , - 890 , - 1997 , - 3992 , - 2139 , - 1174 , - 1097 , - 1908 , - 3607 , - 1458 , - 197 , - 4560 , - 339 , - 1742 , - 4033 , - 2476 , - 1807 , - 2026 , - 3133 , - 392 , - 3275 , - 2310 , - 2233 , - 3044 , - 7 , - 2594 , - 1333 , - 960 , - 1475 , - 2878 , - 433 , - 3612 , - 2943 , - 3162 , - 4269 , - 1528 , - 4411 , - 3446 , - 3369 , - 4180 , - 1143 , - 3730 , - 2469 , - 2096 , - 2611 , - 4014 , - 1569 , - 12 , - 4079 , - 4298 , - 669 , - 2664 , - 811 , - 4582 , - 4505 , - 580 , - 2279 , - 130 , - 3605 , - 3232 , - 3747 , - 414 , - 2705 , - 1148 , - 479 , - 698 , - 1805 , - 3800 , - 1947 , - 982 , - 905 , - 1716 , - 3415 , - 1266 , - 5 , - 4368 , - 147 , - 1550 , - 3841 , - 2284 , - 1615 , - 1834 , - 2941 , - 200 , - 3083 , - 2118 , - 2041 , - 2852 , - 4551 , - 2402 , - 1141 , - 768 , - 1283 , - 2686 , - 241 , - 3420 , - 2751 , - 2970 , - 4077 , - 1336 , - 4219 , - 3254 , - 3177 , - 3988 , - 951 , - 3538 , - 2277 , - 1904 , - 2419 , - 3822 , - 1377 , - 4556 , - 3887 , - 4106 , - 477 , - 2472 , - 619 , - 4390 , - 4313 , - 388 , - 2087 , - 4674 , - 3413 , - 3040 , - 3555 , - 222 , - 2513 , - 956 , - 287 , - 506 , - 1613 , - 3608 , - 1755 , - 790 , - 713 , - 1524 , - 3223 , - 1074 , - 4549 , - 4176 , - 4691 , - 1358 , - 3649 , - 2092 , - 1423 , - 1642 , - 2749 , - 8 , - 2891 , - 1926 , - 1849 , - 2660 , - 4359 , - 2210 , - 949 , - 576 , - 1091 , - 2494 , - 49 , - 3228 , - 2559 , - 2778 , - 3885 , - 1144 , - 4027 , - 3062 , - 2985 , - 3796 , - 759 , - 3346 , - 2085 , - 1712 , - 2227 , - 3630 , - 1185 , - 4364 , - 3695 , - 3914 , - 285 , - 2280 , - 427 , - 4198 , - 4121 , - 196 , - 1895 , - 4482 , - 3221 , - 2848 , - 3363 , - 30 , - 2321 , - 764 , - 95 , - 314 , - 1421 , - 3416 , - 1563 , - 598 , - 521 , - 1332 , - 3031 , - 882 , - 4357 , - 3984 , - 4499 , - 1166 , - 3457 , - 1900 , - 1231 , - 1450 , - 2557 , - 4552 , - 2699 , - 1734 , - 1657 , - 2468 , - 4167 , - 2018 , - 757 , - 384 , - 899 , - 2302 , - 4593 , - 3036 , - 2367 , - 2586 , - 3693 , - 952 , - 3835 , - 2870 , - 2793 , - 3604 , - 567 , - 3154 , - 1893 , - 1520 , - 2035 , - 3438 , - 993 , - 4172 , - 3503 , - 3722 , - 93 , - 2088 , - 235 , - 4006 , - 3929 , - 4 , - 1703 , - 4290 , - 3029 , - 2656 , - 3171 , - 4574 , - 2129 , - 572 , - 4639 , - 122 , - 1229 , - 3224 , - 1371 , - 406 , - 329 , - 1140 , - 2839 , - 690 , - 4165 , - 3792 , - 4307 , - 974 , - 3265 , - 1708 , - 1039 , - 1258 , - 2365 , - 4360 , - 2507 , - 1542 , - 1465 , - 2276 , - 3975 , - 1826 , - 565 , - 192 , - 707 , - 2110 , - 4401 , - 2844 , - 2175 , - 2394 , - 3501 , - 760 , - 3643 , - 2678 , - 2601 , - 3412 , - 375 , - 2962 , - 1701 , - 1328 , - 1843 , - 3246 , - 801 , - 3980 , - 3311 , - 3530 , - 4637 , - 1896 , - 43 , - 3814 , - 3737 , - 4548 , - 1511 , - 4098 , - 2837 , - 2464 , - 2979 , - 4382 , - 1937 , - 380 , - 4447 , - 4666 , - 1037 , - 3032 , - 1179 , - 214 , - 137 , - 948 , - 2647 , - 498 , - 3973 , - 3600 , - 4115 , - 782 , - 3073 , - 1516 , - 847 , - 1066 , - 2173 , - 4168 , - 2315 , - 1350 , - 1273 , - 2084 , - 3783 , - 1634 , - 373 , - 0 , - 191 , - 622 , - 1293 , - 2204 , - 3355 , - 4746 , - 1577 , - 3448 , - 759 , - 3110 , - 901 , - 3732 , - 2003 , - 514 , - 4065 , - 3056 , - 2287 , - 1758 , - 1469 , - 1420 , - 1611 , - 2042 , - 2713 , - 3624 , - 4775 , - 1366 , - 2997 , - 68 , - 2179 , - 4530 , - 2321 , - 352 , - 3423 , - 1934 , - 685 , - 4476 , - 3707 , - 3178 , - 2889 , - 2840 , - 3031 , - 3462 , - 4133 , - 244 , - 1395 , - 2786 , - 4417 , - 1488 , - 3599 , - 1150 , - 3741 , - 1772 , - 43 , - 3354 , - 2105 , - 1096 , - 327 , - 4598 , - 4309 , - 4260 , - 4451 , - 82 , - 753 , - 1664 , - 2815 , - 4206 , - 1037 , - 2908 , - 219 , - 2570 , - 361 , - 3192 , - 1463 , - 4774 , - 3525 , - 2516 , - 1747 , - 1218 , - 929 , - 880 , - 1071 , - 1502 , - 2173 , - 3084 , - 4235 , - 826 , - 2457 , - 4328 , - 1639 , - 3990 , - 1781 , - 4612 , - 2883 , - 1394 , - 145 , - 3936 , - 3167 , - 2638 , - 2349 , - 2300 , - 2491 , - 2922 , - 3593 , - 4504 , - 855 , - 2246 , - 3877 , - 948 , - 3059 , - 610 , - 3201 , - 1232 , - 4303 , - 2814 , - 1565 , - 556 , - 4587 , - 4058 , - 3769 , - 3720 , - 3911 , - 4342 , - 213 , - 1124 , - 2275 , - 3666 , - 497 , - 2368 , - 4479 , - 2030 , - 4621 , - 2652 , - 923 , - 4234 , - 2985 , - 1976 , - 1207 , - 678 , - 389 , - 340 , - 531 , - 962 , - 1633 , - 2544 , - 3695 , - 286 , - 1917 , - 3788 , - 1099 , - 3450 , - 1241 , - 4072 , - 2343 , - 854 , - 4405 , - 3396 , - 2627 , - 2098 , - 1809 , - 1760 , - 1951 , - 2382 , - 3053 , - 3964 , - 315 , - 1706 , - 3337 , - 408 , - 2519 , - 70 , - 2661 , - 692 , - 3763 , - 2274 , - 1025 , - 16 , - 4047 , - 3518 , - 3229 , - 3180 , - 3371 , - 3802 , - 4473 , - 584 , - 1735 , - 3126 , - 4757 , - 1828 , - 3939 , - 1490 , - 4081 , - 2112 , - 383 , - 3694 , - 2445 , - 1436 , - 667 , - 138 , - 4649 , - 4600 , - 4791 , - 422 , - 1093 , - 2004 , - 3155 , - 4546 , - 1377 , - 3248 , - 559 , - 2910 , - 701 , - 3532 , - 1803 , - 314 , - 3865 , - 2856 , - 2087 , - 1558 , - 1269 , - 1220 , - 1411 , - 1842 , - 2513 , - 3424 , - 4575 , - 1166 , - 2797 , - 4668 , - 1979 , - 4330 , - 2121 , - 152 , - 3223 , - 1734 , - 485 , - 4276 , - 3507 , - 2978 , - 2689 , - 2640 , - 2831 , - 3262 , - 3933 , - 44 , - 1195 , - 2586 , - 4217 , - 1288 , - 3399 , - 950 , - 3541 , - 1572 , - 4643 , - 3154 , - 1905 , - 896 , - 127 , - 4398 , - 4109 , - 4060 , - 4251 , - 4682 , - 553 , - 1464 , - 2615 , - 4006 , - 837 , - 2708 , - 19 , - 2370 , - 161 , - 2992 , - 1263 , - 4574 , - 3325 , - 2316 , - 1547 , - 1018 , - 729 , - 680 , - 871 , - 1302 , - 1973 , - 2884 , - 4035 , - 626 , - 2257 , - 4128 , - 1439 , - 3790 , - 1581 , - 4412 , - 2683 , - 1194 , - 4745 , - 3736 , - 2967 , - 2438 , - 2149 , - 2100 , - 2291 , - 2722 , - 3393 , - 4304 , - 655 , - 2046 , - 3677 , - 748 , - 2859 , - 410 , - 3001 , - 1032 , - 4103 , - 2614 , - 1365 , - 356 , - 4387 , - 3858 , - 3569 , - 3520 , - 3711 , - 4142 , - 13 , - 924 , - 2075 , - 3466 , - 297 , - 2168 , - 4279 , - 1830 , - 4421 , - 2452 , - 723 , - 4034 , - 2785 , - 1776 , - 1007 , - 478 , - 189 , - 140 , - 331 , - 762 , - 1433 , - 2344 , - 3495 , - 86 , - 1717 , - 3588 , - 899 , - 3250 , - 1041 , - 3872 , - 2143 , - 654 , - 4205 , - 3196 , - 2427 , - 1898 , - 1609 , - 1560 , - 1751 , - 2182 , - 2853 , - 3764 , - 115 , - 1506 , - 3137 , - 208 , - 2319 , - 4670 , - 2461 , - 492 , - 3563 , - 2074 , - 825 , - 4616 , - 3847 , - 3318 , - 3029 , - 2980 , - 3171 , - 3602 , - 4273 , - 384 , - 1535 , - 2926 , - 4557 , - 1628 , - 3739 , - 1290 , - 3881 , - 1912 , - 183 , - 3494 , - 2245 , - 1236 , - 467 , - 4738 , - 4449 , - 4400 , - 4591 , - 222 , - 893 , - 1804 , - 2955 , - 4346 , - 1177 , - 3048 , - 359 , - 2710 , - 501 , - 3332 , - 1603 , - 114 , - 3665 , - 2656 , - 1887 , - 1358 , - 1069 , - 1020 , - 1211 , - 1642 , - 2313 , - 3224 , - 4375 , - 966 , - 2597 , - 4468 , - 1779 , - 4130 , - 1921 , - 4752 , - 3023 , - 1534 , - 285 , - 4076 , - 3307 , - 2778 , - 2489 , - 2440 , - 2631 , - 3062 , - 3733 , - 4644 , - 995 , - 2386 , - 4017 , - 1088 , - 3199 , - 750 , - 3341 , - 1372 , - 4443 , - 2954 , - 1705 , - 696 , - 4727 , - 4198 , - 3909 , - 3860 , - 4051 , - 4482 , - 353 , - 1264 , - 2415 , - 3806 , - 637 , - 2508 , - 4619 , - 2170 , - 4761 , - 2792 , - 1063 , - 4374 , - 3125 , - 2116 , - 1347 , - 818 , - 529 , - 480 , - 671 , - 1102 , - 1773 , - 2684 , - 3835 , - 426 , - 2057 , - 3928 , - 1239 , - 3590 , - 1381 , - 4212 , - 2483 , - 994 , - 4545 , - 3536 , - 2767 , - 2238 , - 1949 , - 1900 , - 2091 , - 2522 , - 3193 , - 4104 , - 455 , - 1846 , - 3477 , - 548 , - 2659 , - 210 , - 2801 , - 832 , - 3903 , - 2414 , - 1165 , - 156 , - 4187 , - 3658 , - 3369 , - 3320 , - 3511 , - 3942 , - 4613 , - 724 , - 1875 , - 3266 , - 97 , - 1968 , - 4079 , - 1630 , - 4221 , - 2252 , - 523 , - 3834 , - 2585 , - 1576 , - 807 , - 278 , - 4789 , - 4740 , - 131 , - 562 , - 1233 , - 2144 , - 3295 , - 4686 , - 1517 , - 3388 , - 699 , - 3050 , - 841 , - 3672 , - 1943 , - 454 , - 4005 , - 2996 , - 2227 , - 1698 , - 1409 , - 1360 , - 1551 , - 1982 , - 2653 , - 3564 , - 4715 , - 1306 , - 2937 , - 8 , - 2119 , - 4470 , - 2261 , - 292 , - 3363 , - 1874 , - 625 , - 4416 , - 3647 , - 3118 , - 2829 , - 2780 , - 2971 , - 3402 , - 4073 , - 184 , - 1335 , - 2726 , - 4357 , - 1428 , - 3539 , - 1090 , - 3681 , - 1712 , - 4783 , - 3294 , - 2045 , - 1036 , - 267 , - 4538 , - 4249 , - 4200 , - 4391 , - 22 , - 693 , - 1604 , - 2755 , - 4146 , - 977 , - 2848 , - 159 , - 2510 , - 301 , - 3132 , - 1403 , - 4714 , - 3465 , - 2456 , - 1687 , - 1158 , - 869 , - 820 , - 1011 , - 1442 , - 2113 , - 3024 , - 4175 , - 766 , - 2397 , - 4268 , - 1579 , - 3930 , - 1721 , - 4552 , - 2823 , - 1334 , - 85 , - 3876 , - 3107 , - 2578 , - 2289 , - 2240 , - 2431 , - 2862 , - 3533 , - 4444 , - 795 , - 2186 , - 3817 , - 888 , - 2999 , - 550 , - 3141 , - 1172 , - 4243 , - 2754 , - 1505 , - 496 , - 4527 , - 3998 , - 3709 , - 3660 , - 3851 , - 4282 , - 153 , - 1064 , - 2215 , - 3606 , - 437 , - 2308 , - 4419 , - 1970 , - 4561 , - 2592 , - 863 , - 4174 , - 2925 , - 1916 , - 1147 , - 618 , - 329 , - 280 , - 471 , - 902 , - 1573 , - 2484 , - 3635 , - 226 , - 1857 , - 3728 , - 1039 , - 3390 , - 1181 , - 4012 , - 2283 , - 794 , - 4345 , - 3336 , - 2567 , - 2038 , - 1749 , - 1700 , - 1891 , - 2322 , - 2993 , - 3904 , - 255 , - 1646 , - 3277 , - 348 , - 2459 , - 10 , - 2601 , - 632 , - 3703 , - 2214 , - 965 , - 4756 , - 3987 , - 3458 , - 3169 , - 3120 , - 3311 , - 3742 , - 4413 , - 524 , - 1675 , - 3066 , - 4697 , - 1768 , - 3879 , - 1430 , - 4021 , - 2052 , - 323 , - 3634 , - 2385 , - 1376 , - 607 , - 78 , - 4589 , - 4540 , - 4731 , - 362 , - 1033 , - 1944 , - 3095 , - 4486 , - 1317 , - 3188 , - 499 , - 2850 , - 641 , - 3472 , - 1743 , - 254 , - 3805 , - 2796 , - 2027 , - 1498 , - 1209 , - 1160 , - 1351 , - 1782 , - 2453 , - 3364 , - 4515 , - 1106 , - 2737 , - 4608 , - 1919 , - 4270 , - 2061 , - 92 , - 3163 , - 1674 , - 425 , - 4216 , - 3447 , - 2918 , - 2629 , - 2580 , - 2771 , - 3202 , - 3873 , - 4784 , - 1135 , - 2526 , - 4157 , - 1228 , - 3339 , - 890 , - 3481 , - 1512 , - 4583 , - 3094 , - 1845 , - 836 , - 67 , - 4338 , - 4049 , - 4000 , - 4191 , - 4622 , - 493 , - 1404 , - 2555 , - 3946 , - 777 , - 2648 , - 4759 , - 2310 , - 101 , - 2932 , - 1203 , - 4514 , - 3265 , - 2256 , - 1487 , - 958 , - 669 , - 620 , - 811 , - 1242 , - 1913 , - 2824 , - 3975 , - 566 , - 2197 , - 4068 , - 1379 , - 3730 , - 1521 , - 4352 , - 2623 , - 1134 , - 4685 , - 3676 , - 2907 , - 2378 , - 2089 , - 2040 , - 2231 , - 2662 , - 3333 , - 4244 , - 595 , - 1986 , - 3617 , - 688 , - 2799 , - 350 , - 2941 , - 972 , - 4043 , - 2554 , - 1305 , - 296 , - 4327 , - 3798 , - 3509 , - 3460 , - 3651 , - 4082 , - 4753 , - 864 , - 2015 , - 3406 , - 237 , - 2108 , - 4219 , - 1770 , - 4361 , - 2392 , - 663 , - 3974 , - 2725 , - 1716 , - 947 , - 418 , - 129 , - 80 , - 271 , - 702 , - 1373 , - 2284 , - 3435 , - 26 , - 1657 , - 3528 , - 839 , - 3190 , - 981 , - 3812 , - 2083 , - 594 , - 4145 , - 3136 , - 2367 , - 1838 , - 1549 , - 1500 , - 1691 , - 2122 , - 2793 , - 3704 , - 55 , - 1446 , - 3077 , - 148 , - 2259 , - 4610 , - 2401 , - 432 , - 3503 , - 2014 , - 765 , - 4556 , - 3787 , - 3258 , - 2969 , - 2920 , - 3111 , - 3542 , - 4213 , - 324 , - 1475 , - 2866 , - 4497 , - 1568 , - 3679 , - 1230 , - 3821 , - 1852 , - 123 , - 3434 , - 2185 , - 1176 , - 407 , - 4678 , - 4389 , - 4340 , - 4531 , - 162 , - 833 , - 1744 , - 2895 , - 4286 , - 1117 , - 2988 , - 299 , - 2650 , - 441 , - 3272 , - 1543 , - 54 , - 3605 , - 2596 , - 1827 , - 1298 , - 1009 , - 960 , - 1151 , - 1582 , - 2253 , - 3164 , - 4315 , - 906 , - 2537 , - 4408 , - 1719 , - 4070 , - 1861 , - 4692 , - 2963 , - 1474 , - 225 , - 4016 , - 3247 , - 2718 , - 2429 , - 2380 , - 2571 , - 3002 , - 3673 , - 4584 , - 935 , - 2326 , - 3957 , - 1028 , - 3139 , - 690 , - 3281 , - 1312 , - 4383 , - 2894 , - 1645 , - 636 , - 4667 , - 4138 , - 3849 , - 3800 , - 3991 , - 4422 , - 293 , - 1204 , - 2355 , - 3746 , - 577 , - 2448 , - 4559 , - 2110 , - 4701 , - 2732 , - 1003 , - 4314 , - 3065 , - 2056 , - 1287 , - 758 , - 469 , - 420 , - 611 , - 1042 , - 1713 , - 2624 , - 3775 , - 366 , - 1997 , - 3868 , - 1179 , - 3530 , - 1321 , - 4152 , - 2423 , - 934 , - 4485 , - 3476 , - 2707 , - 2178 , - 1889 , - 1840 , - 2031 , - 2462 , - 3133 , - 4044 , - 395 , - 1786 , - 3417 , - 488 , - 2599 , - 150 , - 2741 , - 772 , - 3843 , - 2354 , - 1105 , - 96 , - 4127 , - 3598 , - 3309 , - 3260 , - 3451 , - 3882 , - 4553 , - 664 , - 1815 , - 3206 , - 37 , - 1908 , - 4019 , - 1570 , - 4161 , - 2192 , - 463 , - 3774 , - 2525 , - 1516 , - 747 , - 218 , - 4729 , - 4680 , - 71 , - 502 , - 1173 , - 2084 , - 3235 , - 4626 , - 1457 , - 3328 , - 639 , - 2990 , - 781 , - 3612 , - 1883 , - 394 , - 3945 , - 2936 , - 2167 , - 1638 , - 1349 , - 1300 , - 1491 , - 1922 , - 2593 , - 3504 , - 4655 , - 1246 , - 2877 , - 4748 , - 2059 , - 4410 , - 2201 , - 232 , - 3303 , - 1814 , - 565 , - 4356 , - 3587 , - 3058 , - 2769 , - 2720 , - 2911 , - 3342 , - 4013 , - 124 , - 1275 , - 2666 , - 4297 , - 1368 , - 3479 , - 1030 , - 3621 , - 1652 , - 4723 , - 3234 , - 1985 , - 976 , - 207 , - 4478 , - 4189 , - 4140 , - 4331 , - 4762 , - 633 , - 1544 , - 2695 , - 4086 , - 917 , - 2788 , - 99 , - 2450 , - 241 , - 3072 , - 1343 , - 4654 , - 3405 , - 2396 , - 1627 , - 1098 , - 809 , - 760 , - 951 , - 1382 , - 2053 , - 2964 , - 4115 , - 706 , - 2337 , - 4208 , - 1519 , - 3870 , - 1661 , - 4492 , - 2763 , - 1274 , - 25 , - 3816 , - 3047 , - 2518 , - 2229 , - 2180 , - 2371 , - 2802 , - 3473 , - 4384 , - 735 , - 2126 , - 3757 , - 828 , - 2939 , - 490 , - 3081 , - 1112 , - 4183 , - 2694 , - 1445 , - 436 , - 4467 , - 3938 , - 3649 , - 3600 , - 3791 , - 4222 , - 93 , - 1004 , - 2155 , - 3546 , - 377 , - 2248 , - 4359 , - 1910 , - 4501 , - 2532 , - 803 , - 4114 , - 2865 , - 1856 , - 1087 , - 558 , - 269 , - 220 , - 411 , - 842 , - 1513 , - 2424 , - 3575 , - 166 , - 1797 , - 3668 , - 979 , - 3330 , - 1121 , - 3952 , - 2223 , - 734 , - 4285 , - 3276 , - 2507 , - 1978 , - 1689 , - 1640 , - 1831 , - 2262 , - 2933 , - 3844 , - 195 , - 1586 , - 3217 , - 288 , - 2399 , - 4750 , - 2541 , - 572 , - 3643 , - 2154 , - 905 , - 4696 , - 3927 , - 3398 , - 3109 , - 3060 , - 3251 , - 3682 , - 4353 , - 464 , - 1615 , - 3006 , - 4637 , - 1708 , - 3819 , - 1370 , - 3961 , - 1992 , - 263 , - 3574 , - 2325 , - 1316 , - 547 , - 18 , - 4529 , - 4480 , - 4671 , - 302 , - 973 , - 1884 , - 3035 , - 4426 , - 1257 , - 3128 , - 439 , - 2790 , - 581 , - 3412 , - 1683 , - 194 , - 3745 , - 2736 , - 1967 , - 1438 , - 1149 , - 1100 , - 1291 , - 1722 , - 2393 , - 3304 , - 4455 , - 1046 , - 2677 , - 4548 , - 1859 , - 4210 , - 2001 , - 32 , - 3103 , - 1614 , - 365 , - 4156 , - 3387 , - 2858 , - 2569 , - 2520 , - 2711 , - 3142 , - 3813 , - 4724 , - 1075 , - 2466 , - 4097 , - 1168 , - 3279 , - 830 , - 3421 , - 1452 , - 4523 , - 3034 , - 1785 , - 776 , - 7 , - 4278 , - 3989 , - 3940 , - 4131 , - 4562 , - 433 , - 1344 , - 2495 , - 3886 , - 717 , - 2588 , - 4699 , - 2250 , - 41 , - 2872 , - 1143 , - 4454 , - 3205 , - 2196 , - 1427 , - 898 , - 609 , - 560 , - 751 , - 1182 , - 1853 , - 2764 , - 3915 , - 506 , - 2137 , - 4008 , - 1319 , - 3670 , - 1461 , - 4292 , - 2563 , - 1074 , - 4625 , - 3616 , - 2847 , - 2318 , - 2029 , - 1980 , - 2171 , - 2602 , - 3273 , - 4184 , - 535 , - 1926 , - 3557 , - 628 , - 2739 , - 290 , - 2881 , - 912 , - 3983 , - 2494 , - 1245 , - 236 , - 4267 , - 3738 , - 3449 , - 3400 , - 3591 , - 4022 , - 4693 , - 804 , - 1955 , - 3346 , - 177 , - 2048 , - 4159 , - 1710 , - 4301 , - 2332 , - 603 , - 3914 , - 2665 , - 1656 , - 887 , - 358 , - 69 , - 20 , - 211 , - 642 , - 1313 , - 2224 , - 3375 , - 4766 , - 1597 , - 3468 , - 779 , - 3130 , - 921 , - 3752 , - 2023 , - 534 , - 4085 , - 3076 , - 2307 , - 1778 , - 1489 , - 1440 , - 1631 , - 2062 , - 2733 , - 3644 , - 4795 , - 1386 , - 3017 , - 88 , - 2199 , - 4550 , - 2341 , - 372 , - 3443 , - 1954 , - 705 , - 4496 , - 3727 , - 3198 , - 2909 , - 2860 , - 3051 , - 3482 , - 4153 , - 264 , - 1415 , - 2806 , - 4437 , - 1508 , - 3619 , - 1170 , - 3761 , - 1792 , - 63 , - 3374 , - 2125 , - 1116 , - 347 , - 4618 , - 4329 , - 4280 , - 4471 , - 102 , - 773 , - 1684 , - 2835 , - 4226 , - 1057 , - 2928 , - 239 , - 2590 , - 381 , - 3212 , - 1483 , - 4794 , - 3545 , - 2536 , - 1767 , - 1238 , - 949 , - 900 , - 1091 , - 1522 , - 2193 , - 3104 , - 4255 , - 846 , - 2477 , - 4348 , - 1659 , - 4010 , - 1801 , - 4632 , - 2903 , - 1414 , - 165 , - 3956 , - 3187 , - 2658 , - 2369 , - 2320 , - 2511 , - 2942 , - 3613 , - 4524 , - 875 , - 2266 , - 3897 , - 968 , - 3079 , - 630 , - 3221 , - 1252 , - 4323 , - 2834 , - 1585 , - 576 , - 4607 , - 4078 , - 3789 , - 3740 , - 3931 , - 4362 , - 233 , - 1144 , - 2295 , - 3686 , - 517 , - 2388 , - 4499 , - 2050 , - 4641 , - 2672 , - 943 , - 4254 , - 3005 , - 1996 , - 1227 , - 698 , - 409 , - 360 , - 551 , - 982 , - 1653 , - 2564 , - 3715 , - 306 , - 1937 , - 3808 , - 1119 , - 3470 , - 1261 , - 4092 , - 2363 , - 874 , - 4425 , - 3416 , - 2647 , - 2118 , - 1829 , - 1780 , - 1971 , - 2402 , - 3073 , - 3984 , - 335 , - 1726 , - 3357 , - 428 , - 2539 , - 90 , - 2681 , - 712 , - 3783 , - 2294 , - 1045 , - 36 , - 4067 , - 3538 , - 3249 , - 3200 , - 3391 , - 3822 , - 4493 , - 604 , - 1755 , - 3146 , - 4777 , - 1848 , - 3959 , - 1510 , - 4101 , - 2132 , - 403 , - 3714 , - 2465 , - 1456 , - 687 , - 158 , - 4669 , - 4620 , - 11 , - 442 , - 1113 , - 2024 , - 3175 , - 4566 , - 1397 , - 3268 , - 579 , - 2930 , - 721 , - 3552 , - 1823 , - 334 , - 3885 , - 2876 , - 2107 , - 1578 , - 1289 , - 1240 , - 1431 , - 1862 , - 2533 , - 3444 , - 4595 , - 1186 , - 2817 , - 4688 , - 1999 , - 4350 , - 2141 , - 172 , - 3243 , - 1754 , - 505 , - 4296 , - 3527 , - 2998 , - 2709 , - 2660 , - 2851 , - 3282 , - 3953 , - 64 , - 1215 , - 2606 , - 4237 , - 1308 , - 3419 , - 970 , - 3561 , - 1592 , - 4663 , - 3174 , - 1925 , - 916 , - 147 , - 4418 , - 4129 , - 4080 , - 4271 , - 4702 , - 573 , - 1484 , - 2635 , - 4026 , - 857 , - 2728 , - 39 , - 2390 , - 181 , - 3012 , - 1283 , - 4594 , - 3345 , - 2336 , - 1567 , - 1038 , - 749 , - 700 , - 891 , - 1322 , - 1993 , - 2904 , - 4055 , - 646 , - 2277 , - 4148 , - 1459 , - 3810 , - 1601 , - 4432 , - 2703 , - 1214 , - 4765 , - 3756 , - 2987 , - 2458 , - 2169 , - 2120 , - 2311 , - 2742 , - 3413 , - 4324 , - 675 , - 2066 , - 3697 , - 768 , - 2879 , - 430 , - 3021 , - 1052 , - 4123 , - 2634 , - 1385 , - 376 , - 4407 , - 3878 , - 3589 , - 3540 , - 3731 , - 4162 , - 33 , - 944 , - 2095 , - 3486 , - 317 , - 2188 , - 4299 , - 1850 , - 4441 , - 2472 , - 743 , - 4054 , - 2805 , - 1796 , - 1027 , - 498 , - 209 , - 160 , - 351 , - 782 , - 1453 , - 2364 , - 3515 , - 106 , - 1737 , - 3608 , - 919 , - 3270 , - 1061 , - 3892 , - 2163 , - 674 , - 4225 , - 3216 , - 2447 , - 1918 , - 1629 , - 1580 , - 1771 , - 2202 , - 2873 , - 3784 , - 135 , - 1526 , - 3157 , - 228 , - 2339 , - 4690 , - 2481 , - 512 , - 3583 , - 2094 , - 845 , - 4636 , - 3867 , - 3338 , - 3049 , - 3000 , - 3191 , - 3622 , - 4293 , - 404 , - 1555 , - 2946 , - 4577 , - 1648 , - 3759 , - 1310 , - 3901 , - 1932 , - 203 , - 3514 , - 2265 , - 1256 , - 487 , - 4758 , - 4469 , - 4420 , - 4611 , - 242 , - 913 , - 1824 , - 2975 , - 4366 , - 1197 , - 3068 , - 379 , - 2730 , - 521 , - 3352 , - 1623 , - 134 , - 3685 , - 2676 , - 1907 , - 1378 , - 1089 , - 1040 , - 1231 , - 1662 , - 2333 , - 3244 , - 4395 , - 986 , - 2617 , - 4488 , - 1799 , - 4150 , - 1941 , - 4772 , - 3043 , - 1554 , - 305 , - 4096 , - 3327 , - 2798 , - 2509 , - 2460 , - 2651 , - 3082 , - 3753 , - 4664 , - 1015 , - 2406 , - 4037 , - 1108 , - 3219 , - 770 , - 3361 , - 1392 , - 4463 , - 2974 , - 1725 , - 716 , - 4747 , - 4218 , - 3929 , - 3880 , - 4071 , - 4502 , - 373 , - 1284 , - 2435 , - 3826 , - 657 , - 2528 , - 4639 , - 2190 , - 4781 , - 2812 , - 1083 , - 4394 , - 3145 , - 2136 , - 1367 , - 838 , - 549 , - 500 , - 691 , - 1122 , - 1793 , - 2704 , - 3855 , - 446 , - 2077 , - 3948 , - 1259 , - 3610 , - 1401 , - 4232 , - 2503 , - 1014 , - 4565 , - 3556 , - 2787 , - 2258 , - 1969 , - 1920 , - 2111 , - 2542 , - 3213 , - 4124 , - 475 , - 1866 , - 3497 , - 568 , - 2679 , - 230 , - 2821 , - 852 , - 3923 , - 2434 , - 1185 , - 176 , - 4207 , - 3678 , - 3389 , - 3340 , - 3531 , - 3962 , - 4633 , - 744 , - 1895 , - 3286 , - 117 , - 1988 , - 4099 , - 1650 , - 4241 , - 2272 , - 543 , - 3854 , - 2605 , - 1596 , - 827 , - 298 , - 9 , - 4760 , - 151 , - 582 , - 1253 , - 2164 , - 3315 , - 4706 , - 1537 , - 3408 , - 719 , - 3070 , - 861 , - 3692 , - 1963 , - 474 , - 4025 , - 3016 , - 2247 , - 1718 , - 1429 , - 1380 , - 1571 , - 2002 , - 2673 , - 3584 , - 4735 , - 1326 , - 2957 , - 28 , - 2139 , - 4490 , - 2281 , - 312 , - 3383 , - 1894 , - 645 , - 4436 , - 3667 , - 3138 , - 2849 , - 2800 , - 2991 , - 3422 , - 4093 , - 204 , - 1355 , - 2746 , - 4377 , - 1448 , - 3559 , - 1110 , - 3701 , - 1732 , - 3 , - 3314 , - 2065 , - 1056 , - 287 , - 4558 , - 4269 , - 4220 , - 4411 , - 42 , - 713 , - 1624 , - 2775 , - 4166 , - 997 , - 2868 , - 179 , - 2530 , - 321 , - 3152 , - 1423 , - 4734 , - 3485 , - 2476 , - 1707 , - 1178 , - 889 , - 840 , - 1031 , - 1462 , - 2133 , - 3044 , - 4195 , - 786 , - 2417 , - 4288 , - 1599 , - 3950 , - 1741 , - 4572 , - 2843 , - 1354 , - 105 , - 3896 , - 3127 , - 2598 , - 2309 , - 2260 , - 2451 , - 2882 , - 3553 , - 4464 , - 815 , - 2206 , - 3837 , - 908 , - 3019 , - 570 , - 3161 , - 1192 , - 4263 , - 2774 , - 1525 , - 516 , - 4547 , - 4018 , - 3729 , - 3680 , - 3871 , - 4302 , - 173 , - 1084 , - 2235 , - 3626 , - 457 , - 2328 , - 4439 , - 1990 , - 4581 , - 2612 , - 883 , - 4194 , - 2945 , - 1936 , - 1167 , - 638 , - 349 , - 300 , - 491 , - 922 , - 1593 , - 2504 , - 3655 , - 246 , - 1877 , - 3748 , - 1059 , - 3410 , - 1201 , - 4032 , - 2303 , - 814 , - 4365 , - 3356 , - 2587 , - 2058 , - 1769 , - 1720 , - 1911 , - 2342 , - 3013 , - 3924 , - 275 , - 1666 , - 3297 , - 368 , - 2479 , - 30 , - 2621 , - 652 , - 3723 , - 2234 , - 985 , - 4776 , - 4007 , - 3478 , - 3189 , - 3140 , - 3331 , - 3762 , - 4433 , - 544 , - 1695 , - 3086 , - 4717 , - 1788 , - 3899 , - 1450 , - 4041 , - 2072 , - 343 , - 3654 , - 2405 , - 1396 , - 627 , - 98 , - 4609 , - 4560 , - 4751 , - 382 , - 1053 , - 1964 , - 3115 , - 4506 , - 1337 , - 3208 , - 519 , - 2870 , - 661 , - 3492 , - 1763 , - 274 , - 3825 , - 2816 , - 2047 , - 1518 , - 1229 , - 1180 , - 1371 , - 1802 , - 2473 , - 3384 , - 4535 , - 1126 , - 2757 , - 4628 , - 1939 , - 4290 , - 2081 , - 112 , - 3183 , - 1694 , - 445 , - 4236 , - 3467 , - 2938 , - 2649 , - 2600 , - 2791 , - 3222 , - 3893 , - 4 , - 1155 , - 2546 , - 4177 , - 1248 , - 3359 , - 910 , - 3501 , - 1532 , - 4603 , - 3114 , - 1865 , - 856 , - 87 , - 4358 , - 4069 , - 4020 , - 4211 , - 4642 , - 513 , - 1424 , - 2575 , - 3966 , - 797 , - 2668 , - 4779 , - 2330 , - 121 , - 2952 , - 1223 , - 4534 , - 3285 , - 2276 , - 1507 , - 978 , - 689 , - 640 , - 831 , - 1262 , - 1933 , - 2844 , - 3995 , - 586 , - 2217 , - 4088 , - 1399 , - 3750 , - 1541 , - 4372 , - 2643 , - 1154 , - 4705 , - 3696 , - 2927 , - 2398 , - 2109 , - 2060 , - 2251 , - 2682 , - 3353 , - 4264 , - 615 , - 2006 , - 3637 , - 708 , - 2819 , - 370 , - 2961 , - 992 , - 4063 , - 2574 , - 1325 , - 316 , - 4347 , - 3818 , - 3529 , - 3480 , - 3671 , - 4102 , - 4773 , - 884 , - 2035 , - 3426 , - 257 , - 2128 , - 4239 , - 1790 , - 4381 , - 2412 , - 683 , - 3994 , - 2745 , - 1736 , - 967 , - 438 , - 149 , - 100 , - 291 , - 722 , - 1393 , - 2304 , - 3455 , - 46 , - 1677 , - 3548 , - 859 , - 3210 , - 1001 , - 3832 , - 2103 , - 614 , - 4165 , - 3156 , - 2387 , - 1858 , - 1569 , - 1520 , - 1711 , - 2142 , - 2813 , - 3724 , - 75 , - 1466 , - 3097 , - 168 , - 2279 , - 4630 , - 2421 , - 452 , - 3523 , - 2034 , - 785 , - 4576 , - 3807 , - 3278 , - 2989 , - 2940 , - 3131 , - 3562 , - 4233 , - 344 , - 1495 , - 2886 , - 4517 , - 1588 , - 3699 , - 1250 , - 3841 , - 1872 , - 143 , - 3454 , - 2205 , - 1196 , - 427 , - 4698 , - 4409 , - 4360 , - 4551 , - 182 , - 853 , - 1764 , - 2915 , - 4306 , - 1137 , - 3008 , - 319 , - 2670 , - 461 , - 3292 , - 1563 , - 74 , - 3625 , - 2616 , - 1847 , - 1318 , - 1029 , - 980 , - 1171 , - 1602 , - 2273 , - 3184 , - 4335 , - 926 , - 2557 , - 4428 , - 1739 , - 4090 , - 1881 , - 4712 , - 2983 , - 1494 , - 245 , - 4036 , - 3267 , - 2738 , - 2449 , - 2400 , - 2591 , - 3022 , - 3693 , - 4604 , - 955 , - 2346 , - 3977 , - 1048 , - 3159 , - 710 , - 3301 , - 1332 , - 4403 , - 2914 , - 1665 , - 656 , - 4687 , - 4158 , - 3869 , - 3820 , - 4011 , - 4442 , - 313 , - 1224 , - 2375 , - 3766 , - 597 , - 2468 , - 4579 , - 2130 , - 4721 , - 2752 , - 1023 , - 4334 , - 3085 , - 2076 , - 1307 , - 778 , - 489 , - 440 , - 631 , - 1062 , - 1733 , - 2644 , - 3795 , - 386 , - 2017 , - 3888 , - 1199 , - 3550 , - 1341 , - 4172 , - 2443 , - 954 , - 4505 , - 3496 , - 2727 , - 2198 , - 1909 , - 1860 , - 2051 , - 2482 , - 3153 , - 4064 , - 415 , - 1806 , - 3437 , - 508 , - 2619 , - 170 , - 2761 , - 792 , - 3863 , - 2374 , - 1125 , - 116 , - 4147 , - 3618 , - 3329 , - 3280 , - 3471 , - 3902 , - 4573 , - 684 , - 1835 , - 3226 , - 57 , - 1928 , - 4039 , - 1590 , - 4181 , - 2212 , - 483 , - 3794 , - 2545 , - 1536 , - 767 , - 238 , - 4749 , - 4700 , - 91 , - 522 , - 1193 , - 2104 , - 3255 , - 4646 , - 1477 , - 3348 , - 659 , - 3010 , - 801 , - 3632 , - 1903 , - 414 , - 3965 , - 2956 , - 2187 , - 1658 , - 1369 , - 1320 , - 1511 , - 1942 , - 2613 , - 3524 , - 4675 , - 1266 , - 2897 , - 4768 , - 2079 , - 4430 , - 2221 , - 252 , - 3323 , - 1834 , - 585 , - 4376 , - 3607 , - 3078 , - 2789 , - 2740 , - 2931 , - 3362 , - 4033 , - 144 , - 1295 , - 2686 , - 4317 , - 1388 , - 3499 , - 1050 , - 3641 , - 1672 , - 4743 , - 3254 , - 2005 , - 996 , - 227 , - 4498 , - 4209 , - 4160 , - 4351 , - 4782 , - 653 , - 1564 , - 2715 , - 4106 , - 937 , - 2808 , - 119 , - 2470 , - 261 , - 3092 , - 1363 , - 4674 , - 3425 , - 2416 , - 1647 , - 1118 , - 829 , - 780 , - 971 , - 1402 , - 2073 , - 2984 , - 4135 , - 726 , - 2357 , - 4228 , - 1539 , - 3890 , - 1681 , - 4512 , - 2783 , - 1294 , - 45 , - 3836 , - 3067 , - 2538 , - 2249 , - 2200 , - 2391 , - 2822 , - 3493 , - 4404 , - 755 , - 2146 , - 3777 , - 848 , - 2959 , - 510 , - 3101 , - 1132 , - 4203 , - 2714 , - 1465 , - 456 , - 4487 , - 3958 , - 3669 , - 3620 , - 3811 , - 4242 , - 113 , - 1024 , - 2175 , - 3566 , - 397 , - 2268 , - 4379 , - 1930 , - 4521 , - 2552 , - 823 , - 4134 , - 2885 , - 1876 , - 1107 , - 578 , - 289 , - 240 , - 431 , - 862 , - 1533 , - 2444 , - 3595 , - 186 , - 1817 , - 3688 , - 999 , - 3350 , - 1141 , - 3972 , - 2243 , - 754 , - 4305 , - 3296 , - 2527 , - 1998 , - 1709 , - 1660 , - 1851 , - 2282 , - 2953 , - 3864 , - 215 , - 1606 , - 3237 , - 308 , - 2419 , - 4770 , - 2561 , - 592 , - 3663 , - 2174 , - 925 , - 4716 , - 3947 , - 3418 , - 3129 , - 3080 , - 3271 , - 3702 , - 4373 , - 484 , - 1635 , - 3026 , - 4657 , - 1728 , - 3839 , - 1390 , - 3981 , - 2012 , - 283 , - 3594 , - 2345 , - 1336 , - 567 , - 38 , - 4549 , - 4500 , - 4691 , - 322 , - 993 , - 1904 , - 3055 , - 4446 , - 1277 , - 3148 , - 459 , - 2810 , - 601 , - 3432 , - 1703 , - 214 , - 3765 , - 2756 , - 1987 , - 1458 , - 1169 , - 1120 , - 1311 , - 1742 , - 2413 , - 3324 , - 4475 , - 1066 , - 2697 , - 4568 , - 1879 , - 4230 , - 2021 , - 52 , - 3123 , - 1634 , - 385 , - 4176 , - 3407 , - 2878 , - 2589 , - 2540 , - 2731 , - 3162 , - 3833 , - 4744 , - 1095 , - 2486 , - 4117 , - 1188 , - 3299 , - 850 , - 3441 , - 1472 , - 4543 , - 3054 , - 1805 , - 796 , - 27 , - 4298 , - 4009 , - 3960 , - 4151 , - 4582 , - 453 , - 1364 , - 2515 , - 3906 , - 737 , - 2608 , - 4719 , - 2270 , - 61 , - 2892 , - 1163 , - 4474 , - 3225 , - 2216 , - 1447 , - 918 , - 629 , - 580 , - 771 , - 1202 , - 1873 , - 2784 , - 3935 , - 526 , - 2157 , - 4028 , - 1339 , - 3690 , - 1481 , - 4312 , - 2583 , - 1094 , - 4645 , - 3636 , - 2867 , - 2338 , - 2049 , - 2000 , - 2191 , - 2622 , - 3293 , - 4204 , - 555 , - 1946 , - 3577 , - 648 , - 2759 , - 310 , - 2901 , - 932 , - 4003 , - 2514 , - 1265 , - 256 , - 4287 , - 3758 , - 3469 , - 3420 , - 3611 , - 4042 , - 4713 , - 824 , - 1975 , - 3366 , - 197 , - 2068 , - 4179 , - 1730 , - 4321 , - 2352 , - 623 , - 3934 , - 2685 , - 1676 , - 907 , - 378 , - 89 , - 40 , - 231 , - 662 , - 1333 , - 2244 , - 3395 , - 4786 , - 1617 , - 3488 , - 799 , - 3150 , - 941 , - 3772 , - 2043 , - 554 , - 4105 , - 3096 , - 2327 , - 1798 , - 1509 , - 1460 , - 1651 , - 2082 , - 2753 , - 3664 , - 15 , - 1406 , - 3037 , - 108 , - 2219 , - 4570 , - 2361 , - 392 , - 3463 , - 1974 , - 725 , - 4516 , - 3747 , - 3218 , - 2929 , - 2880 , - 3071 , - 3502 , - 4173 , - 284 , - 1435 , - 2826 , - 4457 , - 1528 , - 3639 , - 1190 , - 3781 , - 1812 , - 83 , - 3394 , - 2145 , - 1136 , - 367 , - 4638 , - 4349 , - 4300 , - 4491 , - 122 , - 793 , - 1704 , - 2855 , - 4246 , - 1077 , - 2948 , - 259 , - 2610 , - 401 , - 3232 , - 1503 , - 14 , - 3565 , - 2556 , - 1787 , - 1258 , - 969 , - 920 , - 1111 , - 1542 , - 2213 , - 3124 , - 4275 , - 866 , - 2497 , - 4368 , - 1679 , - 4030 , - 1821 , - 4652 , - 2923 , - 1434 , - 185 , - 3976 , - 3207 , - 2678 , - 2389 , - 2340 , - 2531 , - 2962 , - 3633 , - 4544 , - 895 , - 2286 , - 3917 , - 988 , - 3099 , - 650 , - 3241 , - 1272 , - 4343 , - 2854 , - 1605 , - 596 , - 4627 , - 4098 , - 3809 , - 3760 , - 3951 , - 4382 , - 253 , - 1164 , - 2315 , - 3706 , - 537 , - 2408 , - 4519 , - 2070 , - 4661 , - 2692 , - 963 , - 4274 , - 3025 , - 2016 , - 1247 , - 718 , - 429 , - 380 , - 571 , - 1002 , - 1673 , - 2584 , - 3735 , - 326 , - 1957 , - 3828 , - 1139 , - 3490 , - 1281 , - 4112 , - 2383 , - 894 , - 4445 , - 3436 , - 2667 , - 2138 , - 1849 , - 1800 , - 1991 , - 2422 , - 3093 , - 4004 , - 355 , - 1746 , - 3377 , - 448 , - 2559 , - 110 , - 2701 , - 732 , - 3803 , - 2314 , - 1065 , - 56 , - 4087 , - 3558 , - 3269 , - 3220 , - 3411 , - 3842 , - 4513 , - 624 , - 1775 , - 3166 , - 4797 , - 1868 , - 3979 , - 1530 , - 4121 , - 2152 , - 423 , - 3734 , - 2485 , - 1476 , - 707 , - 178 , - 4689 , - 4640 , - 31 , - 462 , - 1133 , - 2044 , - 3195 , - 4586 , - 1417 , - 3288 , - 599 , - 2950 , - 741 , - 3572 , - 1843 , - 354 , - 3905 , - 2896 , - 2127 , - 1598 , - 1309 , - 1260 , - 1451 , - 1882 , - 2553 , - 3464 , - 4615 , - 1206 , - 2837 , - 4708 , - 2019 , - 4370 , - 2161 , - 192 , - 3263 , - 1774 , - 525 , - 4316 , - 3547 , - 3018 , - 2729 , - 2680 , - 2871 , - 3302 , - 3973 , - 84 , - 1235 , - 2626 , - 4257 , - 1328 , - 3439 , - 990 , - 3581 , - 1612 , - 4683 , - 3194 , - 1945 , - 936 , - 167 , - 4438 , - 4149 , - 4100 , - 4291 , - 4722 , - 593 , - 1504 , - 2655 , - 4046 , - 877 , - 2748 , - 59 , - 2410 , - 201 , - 3032 , - 1303 , - 4614 , - 3365 , - 2356 , - 1587 , - 1058 , - 769 , - 720 , - 911 , - 1342 , - 2013 , - 2924 , - 4075 , - 666 , - 2297 , - 4168 , - 1479 , - 3830 , - 1621 , - 4452 , - 2723 , - 1234 , - 4785 , - 3776 , - 3007 , - 2478 , - 2189 , - 2140 , - 2331 , - 2762 , - 3433 , - 4344 , - 695 , - 2086 , - 3717 , - 788 , - 2899 , - 450 , - 3041 , - 1072 , - 4143 , - 2654 , - 1405 , - 396 , - 4427 , - 3898 , - 3609 , - 3560 , - 3751 , - 4182 , - 53 , - 964 , - 2115 , - 3506 , - 337 , - 2208 , - 4319 , - 1870 , - 4461 , - 2492 , - 763 , - 4074 , - 2825 , - 1816 , - 1047 , - 518 , - 229 , - 180 , - 371 , - 802 , - 1473 , - 2384 , - 3535 , - 126 , - 1757 , - 3628 , - 939 , - 3290 , - 1081 , - 3912 , - 2183 , - 694 , - 4245 , - 3236 , - 2467 , - 1938 , - 1649 , - 1600 , - 1791 , - 2222 , - 2893 , - 3804 , - 155 , - 1546 , - 3177 , - 248 , - 2359 , - 4710 , - 2501 , - 532 , - 3603 , - 2114 , - 865 , - 4656 , - 3887 , - 3358 , - 3069 , - 3020 , - 3211 , - 3642 , - 4313 , - 424 , - 1575 , - 2966 , - 4597 , - 1668 , - 3779 , - 1330 , - 3921 , - 1952 , - 223 , - 3534 , - 2285 , - 1276 , - 507 , - 4778 , - 4489 , - 4440 , - 4631 , - 262 , - 933 , - 1844 , - 2995 , - 4386 , - 1217 , - 3088 , - 399 , - 2750 , - 541 , - 3372 , - 1643 , - 154 , - 3705 , - 2696 , - 1927 , - 1398 , - 1109 , - 1060 , - 1251 , - 1682 , - 2353 , - 3264 , - 4415 , - 1006 , - 2637 , - 4508 , - 1819 , - 4170 , - 1961 , - 4792 , - 3063 , - 1574 , - 325 , - 4116 , - 3347 , - 2818 , - 2529 , - 2480 , - 2671 , - 3102 , - 3773 , - 4684 , - 1035 , - 2426 , - 4057 , - 1128 , - 3239 , - 790 , - 3381 , - 1412 , - 4483 , - 2994 , - 1745 , - 736 , - 4767 , - 4238 , - 3949 , - 3900 , - 4091 , - 4522 , - 393 , - 1304 , - 2455 , - 3846 , - 677 , - 2548 , - 4659 , - 2210 , - 1 , - 2832 , - 1103 , - 4414 , - 3165 , - 2156 , - 1387 , - 858 , - 569 , - 520 , - 711 , - 1142 , - 1813 , - 2724 , - 3875 , - 466 , - 2097 , - 3968 , - 1279 , - 3630 , - 1421 , - 4252 , - 2523 , - 1034 , - 4585 , - 3576 , - 2807 , - 2278 , - 1989 , - 1940 , - 2131 , - 2562 , - 3233 , - 4144 , - 495 , - 1886 , - 3517 , - 588 , - 2699 , - 250 , - 2841 , - 872 , - 3943 , - 2454 , - 1205 , - 196 , - 4227 , - 3698 , - 3409 , - 3360 , - 3551 , - 3982 , - 4653 , - 764 , - 1915 , - 3306 , - 137 , - 2008 , - 4119 , - 1670 , - 4261 , - 2292 , - 563 , - 3874 , - 2625 , - 1616 , - 847 , - 318 , - 29 , - 4780 , - 171 , - 602 , - 1273 , - 2184 , - 3335 , - 4726 , - 1557 , - 3428 , - 739 , - 3090 , - 881 , - 3712 , - 1983 , - 494 , - 4045 , - 3036 , - 2267 , - 1738 , - 1449 , - 1400 , - 1591 , - 2022 , - 2693 , - 3604 , - 4755 , - 1346 , - 2977 , - 48 , - 2159 , - 4510 , - 2301 , - 332 , - 3403 , - 1914 , - 665 , - 4456 , - 3687 , - 3158 , - 2869 , - 2820 , - 3011 , - 3442 , - 4113 , - 224 , - 1375 , - 2766 , - 4397 , - 1468 , - 3579 , - 1130 , - 3721 , - 1752 , - 23 , - 3334 , - 2085 , - 1076 , - 307 , - 4578 , - 4289 , - 4240 , - 4431 , - 62 , - 733 , - 1644 , - 2795 , - 4186 , - 1017 , - 2888 , - 199 , - 2550 , - 341 , - 3172 , - 1443 , - 4754 , - 3505 , - 2496 , - 1727 , - 1198 , - 909 , - 860 , - 1051 , - 1482 , - 2153 , - 3064 , - 4215 , - 806 , - 2437 , - 4308 , - 1619 , - 3970 , - 1761 , - 4592 , - 2863 , - 1374 , - 125 , - 3916 , - 3147 , - 2618 , - 2329 , - 2280 , - 2471 , - 2902 , - 3573 , - 4484 , - 835 , - 2226 , - 3857 , - 928 , - 3039 , - 590 , - 3181 , - 1212 , - 4283 , - 2794 , - 1545 , - 536 , - 4567 , - 4038 , - 3749 , - 3700 , - 3891 , - 4322 , - 193 , - 1104 , - 2255 , - 3646 , - 477 , - 2348 , - 4459 , - 2010 , - 4601 , - 2632 , - 903 , - 4214 , - 2965 , - 1956 , - 1187 , - 658 , - 369 , - 320 , - 511 , - 942 , - 1613 , - 2524 , - 3675 , - 266 , - 1897 , - 3768 , - 1079 , - 3430 , - 1221 , - 4052 , - 2323 , - 834 , - 4385 , - 3376 , - 2607 , - 2078 , - 1789 , - 1740 , - 1931 , - 2362 , - 3033 , - 3944 , - 295 , - 1686 , - 3317 , - 388 , - 2499 , - 50 , - 2641 , - 672 , - 3743 , - 2254 , - 1005 , - 4796 , - 4027 , - 3498 , - 3209 , - 3160 , - 3351 , - 3782 , - 4453 , - 564 , - 1715 , - 3106 , - 4737 , - 1808 , - 3919 , - 1470 , - 4061 , - 2092 , - 363 , - 3674 , - 2425 , - 1416 , - 647 , - 118 , - 4629 , - 4580 , - 4771 , - 402 , - 1073 , - 1984 , - 3135 , - 4526 , - 1357 , - 3228 , - 539 , - 2890 , - 681 , - 3512 , - 1783 , - 294 , - 3845 , - 2836 , - 2067 , - 1538 , - 1249 , - 1200 , - 1391 , - 1822 , - 2493 , - 3404 , - 4555 , - 1146 , - 2777 , - 4648 , - 1959 , - 4310 , - 2101 , - 132 , - 3203 , - 1714 , - 465 , - 4256 , - 3487 , - 2958 , - 2669 , - 2620 , - 2811 , - 3242 , - 3913 , - 24 , - 1175 , - 2566 , - 4197 , - 1268 , - 3379 , - 930 , - 3521 , - 1552 , - 4623 , - 3134 , - 1885 , - 876 , - 107 , - 4378 , - 4089 , - 4040 , - 4231 , - 4662 , - 533 , - 1444 , - 2595 , - 3986 , - 817 , - 2688 , - 4799 , - 2350 , - 141 , - 2972 , - 1243 , - 4554 , - 3305 , - 2296 , - 1527 , - 998 , - 709 , - 660 , - 851 , - 1282 , - 1953 , - 2864 , - 4015 , - 606 , - 2237 , - 4108 , - 1419 , - 3770 , - 1561 , - 4392 , - 2663 , - 1174 , - 4725 , - 3716 , - 2947 , - 2418 , - 2129 , - 2080 , - 2271 , - 2702 , - 3373 , - 4284 , - 635 , - 2026 , - 3657 , - 728 , - 2839 , - 390 , - 2981 , - 1012 , - 4083 , - 2594 , - 1345 , - 336 , - 4367 , - 3838 , - 3549 , - 3500 , - 3691 , - 4122 , - 4793 , - 904 , - 2055 , - 3446 , - 277 , - 2148 , - 4259 , - 1810 , - 4401 , - 2432 , - 703 , - 4014 , - 2765 , - 1756 , - 987 , - 458 , - 169 , - 120 , - 311 , - 742 , - 1413 , - 2324 , - 3475 , - 66 , - 1697 , - 3568 , - 879 , - 3230 , - 1021 , - 3852 , - 2123 , - 634 , - 4185 , - 3176 , - 2407 , - 1878 , - 1589 , - 1540 , - 1731 , - 2162 , - 2833 , - 3744 , - 95 , - 1486 , - 3117 , - 188 , - 2299 , - 4650 , - 2441 , - 472 , - 3543 , - 2054 , - 805 , - 4596 , - 3827 , - 3298 , - 3009 , - 2960 , - 3151 , - 3582 , - 4253 , - 364 , - 1515 , - 2906 , - 4537 , - 1608 , - 3719 , - 1270 , - 3861 , - 1892 , - 163 , - 3474 , - 2225 , - 1216 , - 447 , - 4718 , - 4429 , - 4380 , - 4571 , - 202 , - 873 , - 1784 , - 2935 , - 4326 , - 1157 , - 3028 , - 339 , - 2690 , - 481 , - 3312 , - 1583 , - 94 , - 3645 , - 2636 , - 1867 , - 1338 , - 1049 , - 1000 , - 1191 , - 1622 , - 2293 , - 3204 , - 4355 , - 946 , - 2577 , - 4448 , - 1759 , - 4110 , - 1901 , - 4732 , - 3003 , - 1514 , - 265 , - 4056 , - 3287 , - 2758 , - 2469 , - 2420 , - 2611 , - 3042 , - 3713 , - 4624 , - 975 , - 2366 , - 3997 , - 1068 , - 3179 , - 730 , - 3321 , - 1352 , - 4423 , - 2934 , - 1685 , - 676 , - 4707 , - 4178 , - 3889 , - 3840 , - 4031 , - 4462 , - 333 , - 1244 , - 2395 , - 3786 , - 617 , - 2488 , - 4599 , - 2150 , - 4741 , - 2772 , - 1043 , - 4354 , - 3105 , - 2096 , - 1327 , - 798 , - 509 , - 460 , - 651 , - 1082 , - 1753 , - 2664 , - 3815 , - 406 , - 2037 , - 3908 , - 1219 , - 3570 , - 1361 , - 4192 , - 2463 , - 974 , - 4525 , - 3516 , - 2747 , - 2218 , - 1929 , - 1880 , - 2071 , - 2502 , - 3173 , - 4084 , - 435 , - 1826 , - 3457 , - 528 , - 2639 , - 190 , - 2781 , - 812 , - 3883 , - 2394 , - 1145 , - 136 , - 4167 , - 3638 , - 3349 , - 3300 , - 3491 , - 3922 , - 4593 , - 704 , - 1855 , - 3246 , - 77 , - 1948 , - 4059 , - 1610 , - 4201 , - 2232 , - 503 , - 3814 , - 2565 , - 1556 , - 787 , - 258 , - 4769 , - 4720 , - 111 , - 542 , - 1213 , - 2124 , - 3275 , - 4666 , - 1497 , - 3368 , - 679 , - 3030 , - 821 , - 3652 , - 1923 , - 434 , - 3985 , - 2976 , - 2207 , - 1678 , - 1389 , - 1340 , - 1531 , - 1962 , - 2633 , - 3544 , - 4695 , - 1286 , - 2917 , - 4788 , - 2099 , - 4450 , - 2241 , - 272 , - 3343 , - 1854 , - 605 , - 4396 , - 3627 , - 3098 , - 2809 , - 2760 , - 2951 , - 3382 , - 4053 , - 164 , - 1315 , - 2706 , - 4337 , - 1408 , - 3519 , - 1070 , - 3661 , - 1692 , - 4763 , - 3274 , - 2025 , - 1016 , - 247 , - 4518 , - 4229 , - 4180 , - 4371 , - 2 , - 673 , - 1584 , - 2735 , - 4126 , - 957 , - 2828 , - 139 , - 2490 , - 281 , - 3112 , - 1383 , - 4694 , - 3445 , - 2436 , - 1667 , - 1138 , - 849 , - 800 , - 991 , - 1422 , - 2093 , - 3004 , - 4155 , - 746 , - 2377 , - 4248 , - 1559 , - 3910 , - 1701 , - 4532 , - 2803 , - 1314 , - 65 , - 3856 , - 3087 , - 2558 , - 2269 , - 2220 , - 2411 , - 2842 , - 3513 , - 4424 , - 775 , - 2166 , - 3797 , - 868 , - 2979 , - 530 , - 3121 , - 1152 , - 4223 , - 2734 , - 1485 , - 476 , - 4507 , - 3978 , - 3689 , - 3640 , - 3831 , - 4262 , - 133 , - 1044 , - 2195 , - 3586 , - 417 , - 2288 , - 4399 , - 1950 , - 4541 , - 2572 , - 843 , - 4154 , - 2905 , - 1896 , - 1127 , - 598 , - 309 , - 260 , - 451 , - 882 , - 1553 , - 2464 , - 3615 , - 206 , - 1837 , - 3708 , - 1019 , - 3370 , - 1161 , - 3992 , - 2263 , - 774 , - 4325 , - 3316 , - 2547 , - 2018 , - 1729 , - 1680 , - 1871 , - 2302 , - 2973 , - 3884 , - 235 , - 1626 , - 3257 , - 328 , - 2439 , - 4790 , - 2581 , - 612 , - 3683 , - 2194 , - 945 , - 4736 , - 3967 , - 3438 , - 3149 , - 3100 , - 3291 , - 3722 , - 4393 , - 504 , - 1655 , - 3046 , - 4677 , - 1748 , - 3859 , - 1410 , - 4001 , - 2032 , - 303 , - 3614 , - 2365 , - 1356 , - 587 , - 58 , - 4569 , - 4520 , - 4711 , - 342 , - 1013 , - 1924 , - 3075 , - 4466 , - 1297 , - 3168 , - 479 , - 2830 , - 621 , - 3452 , - 1723 , - 234 , - 3785 , - 2776 , - 2007 , - 1478 , - 1189 , - 1140 , - 1331 , - 1762 , - 2433 , - 3344 , - 4495 , - 1086 , - 2717 , - 4588 , - 1899 , - 4250 , - 2041 , - 72 , - 3143 , - 1654 , - 405 , - 4196 , - 3427 , - 2898 , - 2609 , - 2560 , - 2751 , - 3182 , - 3853 , - 4764 , - 1115 , - 2506 , - 4137 , - 1208 , - 3319 , - 870 , - 3461 , - 1492 , - 4563 , - 3074 , - 1825 , - 816 , - 47 , - 4318 , - 4029 , - 3980 , - 4171 , - 4602 , - 473 , - 1384 , - 2535 , - 3926 , - 757 , - 2628 , - 4739 , - 2290 , - 81 , - 2912 , - 1183 , - 4494 , - 3245 , - 2236 , - 1467 , - 938 , - 649 , - 600 , - 791 , - 1222 , - 1893 , - 2804 , - 3955 , - 546 , - 2177 , - 4048 , - 1359 , - 3710 , - 1501 , - 4332 , - 2603 , - 1114 , - 4665 , - 3656 , - 2887 , - 2358 , - 2069 , - 2020 , - 2211 , - 2642 , - 3313 , - 4224 , - 575 , - 1966 , - 3597 , - 668 , - 2779 , - 330 , - 2921 , - 952 , - 4023 , - 2534 , - 1285 , - 276 , - 4307 , - 3778 , - 3489 , - 3440 , - 3631 , - 4062 , - 4733 , - 844 , - 1995 , - 3386 , - 217 , - 2088 , - 4199 , - 1750 , - 4341 , - 2372 , - 643 , - 3954 , - 2705 , - 1696 , - 927 , - 398 , - 109 , - 60 , - 251 , - 682 , - 1353 , - 2264 , - 3415 , - 6 , - 1637 , - 3508 , - 819 , - 3170 , - 961 , - 3792 , - 2063 , - 574 , - 4125 , - 3116 , - 2347 , - 1818 , - 1529 , - 1480 , - 1671 , - 2102 , - 2773 , - 3684 , - 35 , - 1426 , - 3057 , - 128 , - 2239 , - 4590 , - 2381 , - 412 , - 3483 , - 1994 , - 745 , - 4536 , - 3767 , - 3238 , - 2949 , - 2900 , - 3091 , - 3522 , - 4193 , - 304 , - 1455 , - 2846 , - 4477 , - 1548 , - 3659 , - 1210 , - 3801 , - 1832 , - 103 , - 3414 , - 2165 , - 1156 , - 387 , - 4658 , - 4369 , - 4320 , - 4511 , - 142 , - 813 , - 1724 , - 2875 , - 4266 , - 1097 , - 2968 , - 279 , - 2630 , - 421 , - 3252 , - 1523 , - 34 , - 3585 , - 2576 , - 1807 , - 1278 , - 989 , - 940 , - 1131 , - 1562 , - 2233 , - 3144 , - 4295 , - 886 , - 2517 , - 4388 , - 1699 , - 4050 , - 1841 , - 4672 , - 2943 , - 1454 , - 205 , - 3996 , - 3227 , - 2698 , - 2409 , - 2360 , - 2551 , - 2982 , - 3653 , - 4564 , - 915 , - 2306 , - 3937 , - 1008 , - 3119 , - 670 , - 3261 , - 1292 , - 4363 , - 2874 , - 1625 , - 616 , - 4647 , - 4118 , - 3829 , - 3780 , - 3971 , - 4402 , - 273 , - 1184 , - 2335 , - 3726 , - 557 , - 2428 , - 4539 , - 2090 , - 4681 , - 2712 , - 983 , - 4294 , - 3045 , - 2036 , - 1267 , - 738 , - 449 , - 400 , - 591 , - 1022 , - 1693 , - 2604 , - 3755 , - 346 , - 1977 , - 3848 , - 1159 , - 3510 , - 1301 , - 4132 , - 2403 , - 914 , - 4465 , - 3456 , - 2687 , - 2158 , - 1869 , - 1820 , - 2011 , - 2442 , - 3113 , - 4024 , - 375 , - 1766 , - 3397 , - 468 , - 2579 , - 130 , - 2721 , - 752 , - 3823 , - 2334 , - 1085 , - 76 , - 4107 , - 3578 , - 3289 , - 3240 , - 3431 , - 3862 , - 4533 , - 644 , - 1795 , - 3186 , - 17 , - 1888 , - 3999 , - 1550 , - 4141 , - 2172 , - 443 , - 3754 , - 2505 , - 1496 , - 727 , - 198 , - 4709 , - 4660 , - 51 , - 482 , - 1153 , - 2064 , - 3215 , - 4606 , - 1437 , - 3308 , - 619 , - 2970 , - 761 , - 3592 , - 1863 , - 374 , - 3925 , - 2916 , - 2147 , - 1618 , - 1329 , - 1280 , - 1471 , - 1902 , - 2573 , - 3484 , - 4635 , - 1226 , - 2857 , - 4728 , - 2039 , - 4390 , - 2181 , - 212 , - 3283 , - 1794 , - 545 , - 4336 , - 3567 , - 3038 , - 2749 , - 2700 , - 2891 , - 3322 , - 3993 , - 104 , - 1255 , - 2646 , - 4277 , - 1348 , - 3459 , - 1010 , - 3601 , - 1632 , - 4703 , - 3214 , - 1965 , - 956 , - 187 , - 4458 , - 4169 , - 4120 , - 4311 , - 4742 , - 613 , - 1524 , - 2675 , - 4066 , - 897 , - 2768 , - 79 , - 2430 , - 221 , - 3052 , - 1323 , - 4634 , - 3385 , - 2376 , - 1607 , - 1078 , - 789 , - 740 , - 931 , - 1362 , - 2033 , - 2944 , - 4095 , - 686 , - 2317 , - 4188 , - 1499 , - 3850 , - 1641 , - 4472 , - 2743 , - 1254 , - 5 , - 3796 , - 3027 , - 2498 , - 2209 , - 2160 , - 2351 , - 2782 , - 3453 , - 4364 , - 715 , - 2106 , - 3737 , - 808 , - 2919 , - 470 , - 3061 , - 1092 , - 4163 , - 2674 , - 1425 , - 416 , - 4447 , - 3918 , - 3629 , - 3580 , - 3771 , - 4202 , - 73 , - 984 , - 2135 , - 3526 , - 357 , - 2228 , - 4339 , - 1890 , - 4481 , - 2512 , - 783 , - 4094 , - 2845 , - 1836 , - 1067 , - 538 , - 249 , - 200 , - 391 , - 822 , - 1493 , - 2404 , - 3555 , - 146 , - 1777 , - 3648 , - 959 , - 3310 , - 1101 , - 3932 , - 2203 , - 714 , - 4265 , - 3256 , - 2487 , - 1958 , - 1669 , - 1620 , - 1811 , - 2242 , - 2913 , - 3824 , - 175 , - 1566 , - 3197 , - 268 , - 2379 , - 4730 , - 2521 , - 552 , - 3623 , - 2134 , - 885 , - 4676 , - 3907 , - 3378 , - 3089 , - 3040 , - 3231 , - 3662 , - 4333 , - 444 , - 1595 , - 2986 , - 4617 , - 1688 , - 3799 , - 1350 , - 3941 , - 1972 , - 243 , - 3554 , - 2305 , - 1296 , - 527 , - 4798 , - 4509 , - 4460 , - 4651 , - 282 , - 953 , - 1864 , - 3015 , - 4406 , - 1237 , - 3108 , - 419 , - 2770 , - 561 , - 3392 , - 1663 , - 174 , - 3725 , - 2716 , - 1947 , - 1418 , - 1129 , - 1080 , - 1271 , - 1702 , - 2373 , - 3284 , - 4435 , - 1026 , - 2657 , - 4528 , - 1839 , - 4190 , - 1981 , - 12 , - 3083 , - 1594 , - 345 , - 4136 , - 3367 , - 2838 , - 2549 , - 2500 , - 2691 , - 3122 , - 3793 , - 4704 , - 1055 , - 2446 , - 4077 , - 1148 , - 3259 , - 810 , - 3401 , - 1432 , - 4503 , - 3014 , - 1765 , - 756 , - 4787 , - 4258 , - 3969 , - 3920 , - 4111 , - 4542 , - 413 , - 1324 , - 2475 , - 3866 , - 697 , - 2568 , - 4679 , - 2230 , - 21 , - 2852 , - 1123 , - 4434 , - 3185 , - 2176 , - 1407 , - 878 , - 589 , - 540 , - 731 , - 1162 , - 1833 , - 2744 , - 3895 , - 486 , - 2117 , - 3988 , - 1299 , - 3650 , - 1441 , - 4272 , - 2543 , - 1054 , - 4605 , - 3596 , - 2827 , - 2298 , - 2009 , - 1960 , - 2151 , - 2582 , - 3253 , - 4164 , - 515 , - 1906 , - 3537 , - 608 , - 2719 , - 270 , - 2861 , - 892 , - 3963 , - 2474 , - 1225 , - 216 , - 4247 , - 3718 , - 3429 , - 3380 , - 3571 , - 4002 , - 4673 , - 784 , - 1935 , - 3326 , - 157 , - 2028 , - 4139 , - 1690 , - 4281 , - 2312 , - 583 , - 3894 , - 2645 , - 1636 , - 867 , - 338 , - 49 , - 0 , - 189 , - 682 , - 1479 , - 2580 , - 3985 , - 830 , - 2843 , - 296 , - 2917 , - 978 , - 4207 , - 2876 , - 1849 , - 1126 , - 707 , - 592 , - 781 , - 1274 , - 2071 , - 3172 , - 4577 , - 1422 , - 3435 , - 888 , - 3509 , - 1570 , - 4799 , - 3468 , - 2441 , - 1718 , - 1299 , - 1184 , - 1373 , - 1866 , - 2663 , - 3764 , - 305 , - 2014 , - 4027 , - 1480 , - 4101 , - 2162 , - 527 , - 4060 , - 3033 , - 2310 , - 1891 , - 1776 , - 1965 , - 2458 , - 3255 , - 4356 , - 897 , - 2606 , - 4619 , - 2072 , - 4693 , - 2754 , - 1119 , - 4652 , - 3625 , - 2902 , - 2483 , - 2368 , - 2557 , - 3050 , - 3847 , - 84 , - 1489 , - 3198 , - 347 , - 2664 , - 421 , - 3346 , - 1711 , - 380 , - 4217 , - 3494 , - 3075 , - 2960 , - 3149 , - 3642 , - 4439 , - 676 , - 2081 , - 3790 , - 939 , - 3256 , - 1013 , - 3938 , - 2303 , - 972 , - 4809 , - 4086 , - 3667 , - 3552 , - 3741 , - 4234 , - 167 , - 1268 , - 2673 , - 4382 , - 1531 , - 3848 , - 1605 , - 4530 , - 2895 , - 1564 , - 537 , - 4678 , - 4259 , - 4144 , - 4333 , - 4826 , - 759 , - 1860 , - 3265 , - 110 , - 2123 , - 4440 , - 2197 , - 258 , - 3487 , - 2156 , - 1129 , - 406 , - 4851 , - 4736 , - 61 , - 554 , - 1351 , - 2452 , - 3857 , - 702 , - 2715 , - 168 , - 2789 , - 850 , - 4079 , - 2748 , - 1721 , - 998 , - 579 , - 464 , - 653 , - 1146 , - 1943 , - 3044 , - 4449 , - 1294 , - 3307 , - 760 , - 3381 , - 1442 , - 4671 , - 3340 , - 2313 , - 1590 , - 1171 , - 1056 , - 1245 , - 1738 , - 2535 , - 3636 , - 177 , - 1886 , - 3899 , - 1352 , - 3973 , - 2034 , - 399 , - 3932 , - 2905 , - 2182 , - 1763 , - 1648 , - 1837 , - 2330 , - 3127 , - 4228 , - 769 , - 2478 , - 4491 , - 1944 , - 4565 , - 2626 , - 991 , - 4524 , - 3497 , - 2774 , - 2355 , - 2240 , - 2429 , - 2922 , - 3719 , - 4820 , - 1361 , - 3070 , - 219 , - 2536 , - 293 , - 3218 , - 1583 , - 252 , - 4089 , - 3366 , - 2947 , - 2832 , - 3021 , - 3514 , - 4311 , - 548 , - 1953 , - 3662 , - 811 , - 3128 , - 885 , - 3810 , - 2175 , - 844 , - 4681 , - 3958 , - 3539 , - 3424 , - 3613 , - 4106 , - 39 , - 1140 , - 2545 , - 4254 , - 1403 , - 3720 , - 1477 , - 4402 , - 2767 , - 1436 , - 409 , - 4550 , - 4131 , - 4016 , - 4205 , - 4698 , - 631 , - 1732 , - 3137 , - 4846 , - 1995 , - 4312 , - 2069 , - 130 , - 3359 , - 2028 , - 1001 , - 278 , - 4723 , - 4608 , - 4797 , - 426 , - 1223 , - 2324 , - 3729 , - 574 , - 2587 , - 40 , - 2661 , - 722 , - 3951 , - 2620 , - 1593 , - 870 , - 451 , - 336 , - 525 , - 1018 , - 1815 , - 2916 , - 4321 , - 1166 , - 3179 , - 632 , - 3253 , - 1314 , - 4543 , - 3212 , - 2185 , - 1462 , - 1043 , - 928 , - 1117 , - 1610 , - 2407 , - 3508 , - 49 , - 1758 , - 3771 , - 1224 , - 3845 , - 1906 , - 271 , - 3804 , - 2777 , - 2054 , - 1635 , - 1520 , - 1709 , - 2202 , - 2999 , - 4100 , - 641 , - 2350 , - 4363 , - 1816 , - 4437 , - 2498 , - 863 , - 4396 , - 3369 , - 2646 , - 2227 , - 2112 , - 2301 , - 2794 , - 3591 , - 4692 , - 1233 , - 2942 , - 91 , - 2408 , - 165 , - 3090 , - 1455 , - 124 , - 3961 , - 3238 , - 2819 , - 2704 , - 2893 , - 3386 , - 4183 , - 420 , - 1825 , - 3534 , - 683 , - 3000 , - 757 , - 3682 , - 2047 , - 716 , - 4553 , - 3830 , - 3411 , - 3296 , - 3485 , - 3978 , - 4775 , - 1012 , - 2417 , - 4126 , - 1275 , - 3592 , - 1349 , - 4274 , - 2639 , - 1308 , - 281 , - 4422 , - 4003 , - 3888 , - 4077 , - 4570 , - 503 , - 1604 , - 3009 , - 4718 , - 1867 , - 4184 , - 1941 , - 2 , - 3231 , - 1900 , - 873 , - 150 , - 4595 , - 4480 , - 4669 , - 298 , - 1095 , - 2196 , - 3601 , - 446 , - 2459 , - 4776 , - 2533 , - 594 , - 3823 , - 2492 , - 1465 , - 742 , - 323 , - 208 , - 397 , - 890 , - 1687 , - 2788 , - 4193 , - 1038 , - 3051 , - 504 , - 3125 , - 1186 , - 4415 , - 3084 , - 2057 , - 1334 , - 915 , - 800 , - 989 , - 1482 , - 2279 , - 3380 , - 4785 , - 1630 , - 3643 , - 1096 , - 3717 , - 1778 , - 143 , - 3676 , - 2649 , - 1926 , - 1507 , - 1392 , - 1581 , - 2074 , - 2871 , - 3972 , - 513 , - 2222 , - 4235 , - 1688 , - 4309 , - 2370 , - 735 , - 4268 , - 3241 , - 2518 , - 2099 , - 1984 , - 2173 , - 2666 , - 3463 , - 4564 , - 1105 , - 2814 , - 4827 , - 2280 , - 37 , - 2962 , - 1327 , - 4860 , - 3833 , - 3110 , - 2691 , - 2576 , - 2765 , - 3258 , - 4055 , - 292 , - 1697 , - 3406 , - 555 , - 2872 , - 629 , - 3554 , - 1919 , - 588 , - 4425 , - 3702 , - 3283 , - 3168 , - 3357 , - 3850 , - 4647 , - 884 , - 2289 , - 3998 , - 1147 , - 3464 , - 1221 , - 4146 , - 2511 , - 1180 , - 153 , - 4294 , - 3875 , - 3760 , - 3949 , - 4442 , - 375 , - 1476 , - 2881 , - 4590 , - 1739 , - 4056 , - 1813 , - 4738 , - 3103 , - 1772 , - 745 , - 22 , - 4467 , - 4352 , - 4541 , - 170 , - 967 , - 2068 , - 3473 , - 318 , - 2331 , - 4648 , - 2405 , - 466 , - 3695 , - 2364 , - 1337 , - 614 , - 195 , - 80 , - 269 , - 762 , - 1559 , - 2660 , - 4065 , - 910 , - 2923 , - 376 , - 2997 , - 1058 , - 4287 , - 2956 , - 1929 , - 1206 , - 787 , - 672 , - 861 , - 1354 , - 2151 , - 3252 , - 4657 , - 1502 , - 3515 , - 968 , - 3589 , - 1650 , - 15 , - 3548 , - 2521 , - 1798 , - 1379 , - 1264 , - 1453 , - 1946 , - 2743 , - 3844 , - 385 , - 2094 , - 4107 , - 1560 , - 4181 , - 2242 , - 607 , - 4140 , - 3113 , - 2390 , - 1971 , - 1856 , - 2045 , - 2538 , - 3335 , - 4436 , - 977 , - 2686 , - 4699 , - 2152 , - 4773 , - 2834 , - 1199 , - 4732 , - 3705 , - 2982 , - 2563 , - 2448 , - 2637 , - 3130 , - 3927 , - 164 , - 1569 , - 3278 , - 427 , - 2744 , - 501 , - 3426 , - 1791 , - 460 , - 4297 , - 3574 , - 3155 , - 3040 , - 3229 , - 3722 , - 4519 , - 756 , - 2161 , - 3870 , - 1019 , - 3336 , - 1093 , - 4018 , - 2383 , - 1052 , - 25 , - 4166 , - 3747 , - 3632 , - 3821 , - 4314 , - 247 , - 1348 , - 2753 , - 4462 , - 1611 , - 3928 , - 1685 , - 4610 , - 2975 , - 1644 , - 617 , - 4758 , - 4339 , - 4224 , - 4413 , - 42 , - 839 , - 1940 , - 3345 , - 190 , - 2203 , - 4520 , - 2277 , - 338 , - 3567 , - 2236 , - 1209 , - 486 , - 67 , - 4816 , - 141 , - 634 , - 1431 , - 2532 , - 3937 , - 782 , - 2795 , - 248 , - 2869 , - 930 , - 4159 , - 2828 , - 1801 , - 1078 , - 659 , - 544 , - 733 , - 1226 , - 2023 , - 3124 , - 4529 , - 1374 , - 3387 , - 840 , - 3461 , - 1522 , - 4751 , - 3420 , - 2393 , - 1670 , - 1251 , - 1136 , - 1325 , - 1818 , - 2615 , - 3716 , - 257 , - 1966 , - 3979 , - 1432 , - 4053 , - 2114 , - 479 , - 4012 , - 2985 , - 2262 , - 1843 , - 1728 , - 1917 , - 2410 , - 3207 , - 4308 , - 849 , - 2558 , - 4571 , - 2024 , - 4645 , - 2706 , - 1071 , - 4604 , - 3577 , - 2854 , - 2435 , - 2320 , - 2509 , - 3002 , - 3799 , - 36 , - 1441 , - 3150 , - 299 , - 2616 , - 373 , - 3298 , - 1663 , - 332 , - 4169 , - 3446 , - 3027 , - 2912 , - 3101 , - 3594 , - 4391 , - 628 , - 2033 , - 3742 , - 891 , - 3208 , - 965 , - 3890 , - 2255 , - 924 , - 4761 , - 4038 , - 3619 , - 3504 , - 3693 , - 4186 , - 119 , - 1220 , - 2625 , - 4334 , - 1483 , - 3800 , - 1557 , - 4482 , - 2847 , - 1516 , - 489 , - 4630 , - 4211 , - 4096 , - 4285 , - 4778 , - 711 , - 1812 , - 3217 , - 62 , - 2075 , - 4392 , - 2149 , - 210 , - 3439 , - 2108 , - 1081 , - 358 , - 4803 , - 4688 , - 13 , - 506 , - 1303 , - 2404 , - 3809 , - 654 , - 2667 , - 120 , - 2741 , - 802 , - 4031 , - 2700 , - 1673 , - 950 , - 531 , - 416 , - 605 , - 1098 , - 1895 , - 2996 , - 4401 , - 1246 , - 3259 , - 712 , - 3333 , - 1394 , - 4623 , - 3292 , - 2265 , - 1542 , - 1123 , - 1008 , - 1197 , - 1690 , - 2487 , - 3588 , - 129 , - 1838 , - 3851 , - 1304 , - 3925 , - 1986 , - 351 , - 3884 , - 2857 , - 2134 , - 1715 , - 1600 , - 1789 , - 2282 , - 3079 , - 4180 , - 721 , - 2430 , - 4443 , - 1896 , - 4517 , - 2578 , - 943 , - 4476 , - 3449 , - 2726 , - 2307 , - 2192 , - 2381 , - 2874 , - 3671 , - 4772 , - 1313 , - 3022 , - 171 , - 2488 , - 245 , - 3170 , - 1535 , - 204 , - 4041 , - 3318 , - 2899 , - 2784 , - 2973 , - 3466 , - 4263 , - 500 , - 1905 , - 3614 , - 763 , - 3080 , - 837 , - 3762 , - 2127 , - 796 , - 4633 , - 3910 , - 3491 , - 3376 , - 3565 , - 4058 , - 4855 , - 1092 , - 2497 , - 4206 , - 1355 , - 3672 , - 1429 , - 4354 , - 2719 , - 1388 , - 361 , - 4502 , - 4083 , - 3968 , - 4157 , - 4650 , - 583 , - 1684 , - 3089 , - 4798 , - 1947 , - 4264 , - 2021 , - 82 , - 3311 , - 1980 , - 953 , - 230 , - 4675 , - 4560 , - 4749 , - 378 , - 1175 , - 2276 , - 3681 , - 526 , - 2539 , - 4856 , - 2613 , - 674 , - 3903 , - 2572 , - 1545 , - 822 , - 403 , - 288 , - 477 , - 970 , - 1767 , - 2868 , - 4273 , - 1118 , - 3131 , - 584 , - 3205 , - 1266 , - 4495 , - 3164 , - 2137 , - 1414 , - 995 , - 880 , - 1069 , - 1562 , - 2359 , - 3460 , - 1 , - 1710 , - 3723 , - 1176 , - 3797 , - 1858 , - 223 , - 3756 , - 2729 , - 2006 , - 1587 , - 1472 , - 1661 , - 2154 , - 2951 , - 4052 , - 593 , - 2302 , - 4315 , - 1768 , - 4389 , - 2450 , - 815 , - 4348 , - 3321 , - 2598 , - 2179 , - 2064 , - 2253 , - 2746 , - 3543 , - 4644 , - 1185 , - 2894 , - 43 , - 2360 , - 117 , - 3042 , - 1407 , - 76 , - 3913 , - 3190 , - 2771 , - 2656 , - 2845 , - 3338 , - 4135 , - 372 , - 1777 , - 3486 , - 635 , - 2952 , - 709 , - 3634 , - 1999 , - 668 , - 4505 , - 3782 , - 3363 , - 3248 , - 3437 , - 3930 , - 4727 , - 964 , - 2369 , - 4078 , - 1227 , - 3544 , - 1301 , - 4226 , - 2591 , - 1260 , - 233 , - 4374 , - 3955 , - 3840 , - 4029 , - 4522 , - 455 , - 1556 , - 2961 , - 4670 , - 1819 , - 4136 , - 1893 , - 4818 , - 3183 , - 1852 , - 825 , - 102 , - 4547 , - 4432 , - 4621 , - 250 , - 1047 , - 2148 , - 3553 , - 398 , - 2411 , - 4728 , - 2485 , - 546 , - 3775 , - 2444 , - 1417 , - 694 , - 275 , - 160 , - 349 , - 842 , - 1639 , - 2740 , - 4145 , - 990 , - 3003 , - 456 , - 3077 , - 1138 , - 4367 , - 3036 , - 2009 , - 1286 , - 867 , - 752 , - 941 , - 1434 , - 2231 , - 3332 , - 4737 , - 1582 , - 3595 , - 1048 , - 3669 , - 1730 , - 95 , - 3628 , - 2601 , - 1878 , - 1459 , - 1344 , - 1533 , - 2026 , - 2823 , - 3924 , - 465 , - 2174 , - 4187 , - 1640 , - 4261 , - 2322 , - 687 , - 4220 , - 3193 , - 2470 , - 2051 , - 1936 , - 2125 , - 2618 , - 3415 , - 4516 , - 1057 , - 2766 , - 4779 , - 2232 , - 4853 , - 2914 , - 1279 , - 4812 , - 3785 , - 3062 , - 2643 , - 2528 , - 2717 , - 3210 , - 4007 , - 244 , - 1649 , - 3358 , - 507 , - 2824 , - 581 , - 3506 , - 1871 , - 540 , - 4377 , - 3654 , - 3235 , - 3120 , - 3309 , - 3802 , - 4599 , - 836 , - 2241 , - 3950 , - 1099 , - 3416 , - 1173 , - 4098 , - 2463 , - 1132 , - 105 , - 4246 , - 3827 , - 3712 , - 3901 , - 4394 , - 327 , - 1428 , - 2833 , - 4542 , - 1691 , - 4008 , - 1765 , - 4690 , - 3055 , - 1724 , - 697 , - 4838 , - 4419 , - 4304 , - 4493 , - 122 , - 919 , - 2020 , - 3425 , - 270 , - 2283 , - 4600 , - 2357 , - 418 , - 3647 , - 2316 , - 1289 , - 566 , - 147 , - 32 , - 221 , - 714 , - 1511 , - 2612 , - 4017 , - 862 , - 2875 , - 328 , - 2949 , - 1010 , - 4239 , - 2908 , - 1881 , - 1158 , - 739 , - 624 , - 813 , - 1306 , - 2103 , - 3204 , - 4609 , - 1454 , - 3467 , - 920 , - 3541 , - 1602 , - 4831 , - 3500 , - 2473 , - 1750 , - 1331 , - 1216 , - 1405 , - 1898 , - 2695 , - 3796 , - 337 , - 2046 , - 4059 , - 1512 , - 4133 , - 2194 , - 559 , - 4092 , - 3065 , - 2342 , - 1923 , - 1808 , - 1997 , - 2490 , - 3287 , - 4388 , - 929 , - 2638 , - 4651 , - 2104 , - 4725 , - 2786 , - 1151 , - 4684 , - 3657 , - 2934 , - 2515 , - 2400 , - 2589 , - 3082 , - 3879 , - 116 , - 1521 , - 3230 , - 379 , - 2696 , - 453 , - 3378 , - 1743 , - 412 , - 4249 , - 3526 , - 3107 , - 2992 , - 3181 , - 3674 , - 4471 , - 708 , - 2113 , - 3822 , - 971 , - 3288 , - 1045 , - 3970 , - 2335 , - 1004 , - 4841 , - 4118 , - 3699 , - 3584 , - 3773 , - 4266 , - 199 , - 1300 , - 2705 , - 4414 , - 1563 , - 3880 , - 1637 , - 4562 , - 2927 , - 1596 , - 569 , - 4710 , - 4291 , - 4176 , - 4365 , - 4858 , - 791 , - 1892 , - 3297 , - 142 , - 2155 , - 4472 , - 2229 , - 290 , - 3519 , - 2188 , - 1161 , - 438 , - 19 , - 4768 , - 93 , - 586 , - 1383 , - 2484 , - 3889 , - 734 , - 2747 , - 200 , - 2821 , - 882 , - 4111 , - 2780 , - 1753 , - 1030 , - 611 , - 496 , - 685 , - 1178 , - 1975 , - 3076 , - 4481 , - 1326 , - 3339 , - 792 , - 3413 , - 1474 , - 4703 , - 3372 , - 2345 , - 1622 , - 1203 , - 1088 , - 1277 , - 1770 , - 2567 , - 3668 , - 209 , - 1918 , - 3931 , - 1384 , - 4005 , - 2066 , - 431 , - 3964 , - 2937 , - 2214 , - 1795 , - 1680 , - 1869 , - 2362 , - 3159 , - 4260 , - 801 , - 2510 , - 4523 , - 1976 , - 4597 , - 2658 , - 1023 , - 4556 , - 3529 , - 2806 , - 2387 , - 2272 , - 2461 , - 2954 , - 3751 , - 4852 , - 1393 , - 3102 , - 251 , - 2568 , - 325 , - 3250 , - 1615 , - 284 , - 4121 , - 3398 , - 2979 , - 2864 , - 3053 , - 3546 , - 4343 , - 580 , - 1985 , - 3694 , - 843 , - 3160 , - 917 , - 3842 , - 2207 , - 876 , - 4713 , - 3990 , - 3571 , - 3456 , - 3645 , - 4138 , - 71 , - 1172 , - 2577 , - 4286 , - 1435 , - 3752 , - 1509 , - 4434 , - 2799 , - 1468 , - 441 , - 4582 , - 4163 , - 4048 , - 4237 , - 4730 , - 663 , - 1764 , - 3169 , - 14 , - 2027 , - 4344 , - 2101 , - 162 , - 3391 , - 2060 , - 1033 , - 310 , - 4755 , - 4640 , - 4829 , - 458 , - 1255 , - 2356 , - 3761 , - 606 , - 2619 , - 72 , - 2693 , - 754 , - 3983 , - 2652 , - 1625 , - 902 , - 483 , - 368 , - 557 , - 1050 , - 1847 , - 2948 , - 4353 , - 1198 , - 3211 , - 664 , - 3285 , - 1346 , - 4575 , - 3244 , - 2217 , - 1494 , - 1075 , - 960 , - 1149 , - 1642 , - 2439 , - 3540 , - 81 , - 1790 , - 3803 , - 1256 , - 3877 , - 1938 , - 303 , - 3836 , - 2809 , - 2086 , - 1667 , - 1552 , - 1741 , - 2234 , - 3031 , - 4132 , - 673 , - 2382 , - 4395 , - 1848 , - 4469 , - 2530 , - 895 , - 4428 , - 3401 , - 2678 , - 2259 , - 2144 , - 2333 , - 2826 , - 3623 , - 4724 , - 1265 , - 2974 , - 123 , - 2440 , - 197 , - 3122 , - 1487 , - 156 , - 3993 , - 3270 , - 2851 , - 2736 , - 2925 , - 3418 , - 4215 , - 452 , - 1857 , - 3566 , - 715 , - 3032 , - 789 , - 3714 , - 2079 , - 748 , - 4585 , - 3862 , - 3443 , - 3328 , - 3517 , - 4010 , - 4807 , - 1044 , - 2449 , - 4158 , - 1307 , - 3624 , - 1381 , - 4306 , - 2671 , - 1340 , - 313 , - 4454 , - 4035 , - 3920 , - 4109 , - 4602 , - 535 , - 1636 , - 3041 , - 4750 , - 1899 , - 4216 , - 1973 , - 34 , - 3263 , - 1932 , - 905 , - 182 , - 4627 , - 4512 , - 4701 , - 330 , - 1127 , - 2228 , - 3633 , - 478 , - 2491 , - 4808 , - 2565 , - 626 , - 3855 , - 2524 , - 1497 , - 774 , - 355 , - 240 , - 429 , - 922 , - 1719 , - 2820 , - 4225 , - 1070 , - 3083 , - 536 , - 3157 , - 1218 , - 4447 , - 3116 , - 2089 , - 1366 , - 947 , - 832 , - 1021 , - 1514 , - 2311 , - 3412 , - 4817 , - 1662 , - 3675 , - 1128 , - 3749 , - 1810 , - 175 , - 3708 , - 2681 , - 1958 , - 1539 , - 1424 , - 1613 , - 2106 , - 2903 , - 4004 , - 545 , - 2254 , - 4267 , - 1720 , - 4341 , - 2402 , - 767 , - 4300 , - 3273 , - 2550 , - 2131 , - 2016 , - 2205 , - 2698 , - 3495 , - 4596 , - 1137 , - 2846 , - 4859 , - 2312 , - 69 , - 2994 , - 1359 , - 28 , - 3865 , - 3142 , - 2723 , - 2608 , - 2797 , - 3290 , - 4087 , - 324 , - 1729 , - 3438 , - 587 , - 2904 , - 661 , - 3586 , - 1951 , - 620 , - 4457 , - 3734 , - 3315 , - 3200 , - 3389 , - 3882 , - 4679 , - 916 , - 2321 , - 4030 , - 1179 , - 3496 , - 1253 , - 4178 , - 2543 , - 1212 , - 185 , - 4326 , - 3907 , - 3792 , - 3981 , - 4474 , - 407 , - 1508 , - 2913 , - 4622 , - 1771 , - 4088 , - 1845 , - 4770 , - 3135 , - 1804 , - 777 , - 54 , - 4499 , - 4384 , - 4573 , - 202 , - 999 , - 2100 , - 3505 , - 350 , - 2363 , - 4680 , - 2437 , - 498 , - 3727 , - 2396 , - 1369 , - 646 , - 227 , - 112 , - 301 , - 794 , - 1591 , - 2692 , - 4097 , - 942 , - 2955 , - 408 , - 3029 , - 1090 , - 4319 , - 2988 , - 1961 , - 1238 , - 819 , - 704 , - 893 , - 1386 , - 2183 , - 3284 , - 4689 , - 1534 , - 3547 , - 1000 , - 3621 , - 1682 , - 47 , - 3580 , - 2553 , - 1830 , - 1411 , - 1296 , - 1485 , - 1978 , - 2775 , - 3876 , - 417 , - 2126 , - 4139 , - 1592 , - 4213 , - 2274 , - 639 , - 4172 , - 3145 , - 2422 , - 2003 , - 1888 , - 2077 , - 2570 , - 3367 , - 4468 , - 1009 , - 2718 , - 4731 , - 2184 , - 4805 , - 2866 , - 1231 , - 4764 , - 3737 , - 3014 , - 2595 , - 2480 , - 2669 , - 3162 , - 3959 , - 196 , - 1601 , - 3310 , - 459 , - 2776 , - 533 , - 3458 , - 1823 , - 492 , - 4329 , - 3606 , - 3187 , - 3072 , - 3261 , - 3754 , - 4551 , - 788 , - 2193 , - 3902 , - 1051 , - 3368 , - 1125 , - 4050 , - 2415 , - 1084 , - 57 , - 4198 , - 3779 , - 3664 , - 3853 , - 4346 , - 279 , - 1380 , - 2785 , - 4494 , - 1643 , - 3960 , - 1717 , - 4642 , - 3007 , - 1676 , - 649 , - 4790 , - 4371 , - 4256 , - 4445 , - 74 , - 871 , - 1972 , - 3377 , - 222 , - 2235 , - 4552 , - 2309 , - 370 , - 3599 , - 2268 , - 1241 , - 518 , - 99 , - 4848 , - 173 , - 666 , - 1463 , - 2564 , - 3969 , - 814 , - 2827 , - 280 , - 2901 , - 962 , - 4191 , - 2860 , - 1833 , - 1110 , - 691 , - 576 , - 765 , - 1258 , - 2055 , - 3156 , - 4561 , - 1406 , - 3419 , - 872 , - 3493 , - 1554 , - 4783 , - 3452 , - 2425 , - 1702 , - 1283 , - 1168 , - 1357 , - 1850 , - 2647 , - 3748 , - 289 , - 1998 , - 4011 , - 1464 , - 4085 , - 2146 , - 511 , - 4044 , - 3017 , - 2294 , - 1875 , - 1760 , - 1949 , - 2442 , - 3239 , - 4340 , - 881 , - 2590 , - 4603 , - 2056 , - 4677 , - 2738 , - 1103 , - 4636 , - 3609 , - 2886 , - 2467 , - 2352 , - 2541 , - 3034 , - 3831 , - 68 , - 1473 , - 3182 , - 331 , - 2648 , - 405 , - 3330 , - 1695 , - 364 , - 4201 , - 3478 , - 3059 , - 2944 , - 3133 , - 3626 , - 4423 , - 660 , - 2065 , - 3774 , - 923 , - 3240 , - 997 , - 3922 , - 2287 , - 956 , - 4793 , - 4070 , - 3651 , - 3536 , - 3725 , - 4218 , - 151 , - 1252 , - 2657 , - 4366 , - 1515 , - 3832 , - 1589 , - 4514 , - 2879 , - 1548 , - 521 , - 4662 , - 4243 , - 4128 , - 4317 , - 4810 , - 743 , - 1844 , - 3249 , - 94 , - 2107 , - 4424 , - 2181 , - 242 , - 3471 , - 2140 , - 1113 , - 390 , - 4835 , - 4720 , - 45 , - 538 , - 1335 , - 2436 , - 3841 , - 686 , - 2699 , - 152 , - 2773 , - 834 , - 4063 , - 2732 , - 1705 , - 982 , - 563 , - 448 , - 637 , - 1130 , - 1927 , - 3028 , - 4433 , - 1278 , - 3291 , - 744 , - 3365 , - 1426 , - 4655 , - 3324 , - 2297 , - 1574 , - 1155 , - 1040 , - 1229 , - 1722 , - 2519 , - 3620 , - 161 , - 1870 , - 3883 , - 1336 , - 3957 , - 2018 , - 383 , - 3916 , - 2889 , - 2166 , - 1747 , - 1632 , - 1821 , - 2314 , - 3111 , - 4212 , - 753 , - 2462 , - 4475 , - 1928 , - 4549 , - 2610 , - 975 , - 4508 , - 3481 , - 2758 , - 2339 , - 2224 , - 2413 , - 2906 , - 3703 , - 4804 , - 1345 , - 3054 , - 203 , - 2520 , - 277 , - 3202 , - 1567 , - 236 , - 4073 , - 3350 , - 2931 , - 2816 , - 3005 , - 3498 , - 4295 , - 532 , - 1937 , - 3646 , - 795 , - 3112 , - 869 , - 3794 , - 2159 , - 828 , - 4665 , - 3942 , - 3523 , - 3408 , - 3597 , - 4090 , - 23 , - 1124 , - 2529 , - 4238 , - 1387 , - 3704 , - 1461 , - 4386 , - 2751 , - 1420 , - 393 , - 4534 , - 4115 , - 4000 , - 4189 , - 4682 , - 615 , - 1716 , - 3121 , - 4830 , - 1979 , - 4296 , - 2053 , - 114 , - 3343 , - 2012 , - 985 , - 262 , - 4707 , - 4592 , - 4781 , - 410 , - 1207 , - 2308 , - 3713 , - 558 , - 2571 , - 24 , - 2645 , - 706 , - 3935 , - 2604 , - 1577 , - 854 , - 435 , - 320 , - 509 , - 1002 , - 1799 , - 2900 , - 4305 , - 1150 , - 3163 , - 616 , - 3237 , - 1298 , - 4527 , - 3196 , - 2169 , - 1446 , - 1027 , - 912 , - 1101 , - 1594 , - 2391 , - 3492 , - 33 , - 1742 , - 3755 , - 1208 , - 3829 , - 1890 , - 255 , - 3788 , - 2761 , - 2038 , - 1619 , - 1504 , - 1693 , - 2186 , - 2983 , - 4084 , - 625 , - 2334 , - 4347 , - 1800 , - 4421 , - 2482 , - 847 , - 4380 , - 3353 , - 2630 , - 2211 , - 2096 , - 2285 , - 2778 , - 3575 , - 4676 , - 1217 , - 2926 , - 75 , - 2392 , - 149 , - 3074 , - 1439 , - 108 , - 3945 , - 3222 , - 2803 , - 2688 , - 2877 , - 3370 , - 4167 , - 404 , - 1809 , - 3518 , - 667 , - 2984 , - 741 , - 3666 , - 2031 , - 700 , - 4537 , - 3814 , - 3395 , - 3280 , - 3469 , - 3962 , - 4759 , - 996 , - 2401 , - 4110 , - 1259 , - 3576 , - 1333 , - 4258 , - 2623 , - 1292 , - 265 , - 4406 , - 3987 , - 3872 , - 4061 , - 4554 , - 487 , - 1588 , - 2993 , - 4702 , - 1851 , - 4168 , - 1925 , - 4850 , - 3215 , - 1884 , - 857 , - 134 , - 4579 , - 4464 , - 4653 , - 282 , - 1079 , - 2180 , - 3585 , - 430 , - 2443 , - 4760 , - 2517 , - 578 , - 3807 , - 2476 , - 1449 , - 726 , - 307 , - 192 , - 381 , - 874 , - 1671 , - 2772 , - 4177 , - 1022 , - 3035 , - 488 , - 3109 , - 1170 , - 4399 , - 3068 , - 2041 , - 1318 , - 899 , - 784 , - 973 , - 1466 , - 2263 , - 3364 , - 4769 , - 1614 , - 3627 , - 1080 , - 3701 , - 1762 , - 127 , - 3660 , - 2633 , - 1910 , - 1491 , - 1376 , - 1565 , - 2058 , - 2855 , - 3956 , - 497 , - 2206 , - 4219 , - 1672 , - 4293 , - 2354 , - 719 , - 4252 , - 3225 , - 2502 , - 2083 , - 1968 , - 2157 , - 2650 , - 3447 , - 4548 , - 1089 , - 2798 , - 4811 , - 2264 , - 21 , - 2946 , - 1311 , - 4844 , - 3817 , - 3094 , - 2675 , - 2560 , - 2749 , - 3242 , - 4039 , - 276 , - 1681 , - 3390 , - 539 , - 2856 , - 613 , - 3538 , - 1903 , - 572 , - 4409 , - 3686 , - 3267 , - 3152 , - 3341 , - 3834 , - 4631 , - 868 , - 2273 , - 3982 , - 1131 , - 3448 , - 1205 , - 4130 , - 2495 , - 1164 , - 137 , - 4278 , - 3859 , - 3744 , - 3933 , - 4426 , - 359 , - 1460 , - 2865 , - 4574 , - 1723 , - 4040 , - 1797 , - 4722 , - 3087 , - 1756 , - 729 , - 6 , - 4451 , - 4336 , - 4525 , - 154 , - 951 , - 2052 , - 3457 , - 302 , - 2315 , - 4632 , - 2389 , - 450 , - 3679 , - 2348 , - 1321 , - 598 , - 179 , - 64 , - 253 , - 746 , - 1543 , - 2644 , - 4049 , - 894 , - 2907 , - 360 , - 2981 , - 1042 , - 4271 , - 2940 , - 1913 , - 1190 , - 771 , - 656 , - 845 , - 1338 , - 2135 , - 3236 , - 4641 , - 1486 , - 3499 , - 952 , - 3573 , - 1634 , - 4863 , - 3532 , - 2505 , - 1782 , - 1363 , - 1248 , - 1437 , - 1930 , - 2727 , - 3828 , - 369 , - 2078 , - 4091 , - 1544 , - 4165 , - 2226 , - 591 , - 4124 , - 3097 , - 2374 , - 1955 , - 1840 , - 2029 , - 2522 , - 3319 , - 4420 , - 961 , - 2670 , - 4683 , - 2136 , - 4757 , - 2818 , - 1183 , - 4716 , - 3689 , - 2966 , - 2547 , - 2432 , - 2621 , - 3114 , - 3911 , - 148 , - 1553 , - 3262 , - 411 , - 2728 , - 485 , - 3410 , - 1775 , - 444 , - 4281 , - 3558 , - 3139 , - 3024 , - 3213 , - 3706 , - 4503 , - 740 , - 2145 , - 3854 , - 1003 , - 3320 , - 1077 , - 4002 , - 2367 , - 1036 , - 9 , - 4150 , - 3731 , - 3616 , - 3805 , - 4298 , - 231 , - 1332 , - 2737 , - 4446 , - 1595 , - 3912 , - 1669 , - 4594 , - 2959 , - 1628 , - 601 , - 4742 , - 4323 , - 4208 , - 4397 , - 26 , - 823 , - 1924 , - 3329 , - 174 , - 2187 , - 4504 , - 2261 , - 322 , - 3551 , - 2220 , - 1193 , - 470 , - 51 , - 4800 , - 125 , - 618 , - 1415 , - 2516 , - 3921 , - 766 , - 2779 , - 232 , - 2853 , - 914 , - 4143 , - 2812 , - 1785 , - 1062 , - 643 , - 528 , - 717 , - 1210 , - 2007 , - 3108 , - 4513 , - 1358 , - 3371 , - 824 , - 3445 , - 1506 , - 4735 , - 3404 , - 2377 , - 1654 , - 1235 , - 1120 , - 1309 , - 1802 , - 2599 , - 3700 , - 241 , - 1950 , - 3963 , - 1416 , - 4037 , - 2098 , - 463 , - 3996 , - 2969 , - 2246 , - 1827 , - 1712 , - 1901 , - 2394 , - 3191 , - 4292 , - 833 , - 2542 , - 4555 , - 2008 , - 4629 , - 2690 , - 1055 , - 4588 , - 3561 , - 2838 , - 2419 , - 2304 , - 2493 , - 2986 , - 3783 , - 20 , - 1425 , - 3134 , - 283 , - 2600 , - 357 , - 3282 , - 1647 , - 316 , - 4153 , - 3430 , - 3011 , - 2896 , - 3085 , - 3578 , - 4375 , - 612 , - 2017 , - 3726 , - 875 , - 3192 , - 949 , - 3874 , - 2239 , - 908 , - 4745 , - 4022 , - 3603 , - 3488 , - 3677 , - 4170 , - 103 , - 1204 , - 2609 , - 4318 , - 1467 , - 3784 , - 1541 , - 4466 , - 2831 , - 1500 , - 473 , - 4614 , - 4195 , - 4080 , - 4269 , - 4762 , - 695 , - 1796 , - 3201 , - 46 , - 2059 , - 4376 , - 2133 , - 194 , - 3423 , - 2092 , - 1065 , - 342 , - 4787 , - 4672 , - 4861 , - 490 , - 1287 , - 2388 , - 3793 , - 638 , - 2651 , - 104 , - 2725 , - 786 , - 4015 , - 2684 , - 1657 , - 934 , - 515 , - 400 , - 589 , - 1082 , - 1879 , - 2980 , - 4385 , - 1230 , - 3243 , - 696 , - 3317 , - 1378 , - 4607 , - 3276 , - 2249 , - 1526 , - 1107 , - 992 , - 1181 , - 1674 , - 2471 , - 3572 , - 113 , - 1822 , - 3835 , - 1288 , - 3909 , - 1970 , - 335 , - 3868 , - 2841 , - 2118 , - 1699 , - 1584 , - 1773 , - 2266 , - 3063 , - 4164 , - 705 , - 2414 , - 4427 , - 1880 , - 4501 , - 2562 , - 927 , - 4460 , - 3433 , - 2710 , - 2291 , - 2176 , - 2365 , - 2858 , - 3655 , - 4756 , - 1297 , - 3006 , - 155 , - 2472 , - 229 , - 3154 , - 1519 , - 188 , - 4025 , - 3302 , - 2883 , - 2768 , - 2957 , - 3450 , - 4247 , - 484 , - 1889 , - 3598 , - 747 , - 3064 , - 821 , - 3746 , - 2111 , - 780 , - 4617 , - 3894 , - 3475 , - 3360 , - 3549 , - 4042 , - 4839 , - 1076 , - 2481 , - 4190 , - 1339 , - 3656 , - 1413 , - 4338 , - 2703 , - 1372 , - 345 , - 4486 , - 4067 , - 3952 , - 4141 , - 4634 , - 567 , - 1668 , - 3073 , - 4782 , - 1931 , - 4248 , - 2005 , - 66 , - 3295 , - 1964 , - 937 , - 214 , - 4659 , - 4544 , - 4733 , - 362 , - 1159 , - 2260 , - 3665 , - 510 , - 2523 , - 4840 , - 2597 , - 658 , - 3887 , - 2556 , - 1529 , - 806 , - 387 , - 272 , - 461 , - 954 , - 1751 , - 2852 , - 4257 , - 1102 , - 3115 , - 568 , - 3189 , - 1250 , - 4479 , - 3148 , - 2121 , - 1398 , - 979 , - 864 , - 1053 , - 1546 , - 2343 , - 3444 , - 4849 , - 1694 , - 3707 , - 1160 , - 3781 , - 1842 , - 207 , - 3740 , - 2713 , - 1990 , - 1571 , - 1456 , - 1645 , - 2138 , - 2935 , - 4036 , - 577 , - 2286 , - 4299 , - 1752 , - 4373 , - 2434 , - 799 , - 4332 , - 3305 , - 2582 , - 2163 , - 2048 , - 2237 , - 2730 , - 3527 , - 4628 , - 1169 , - 2878 , - 27 , - 2344 , - 101 , - 3026 , - 1391 , - 60 , - 3897 , - 3174 , - 2755 , - 2640 , - 2829 , - 3322 , - 4119 , - 356 , - 1761 , - 3470 , - 619 , - 2936 , - 693 , - 3618 , - 1983 , - 652 , - 4489 , - 3766 , - 3347 , - 3232 , - 3421 , - 3914 , - 4711 , - 948 , - 2353 , - 4062 , - 1211 , - 3528 , - 1285 , - 4210 , - 2575 , - 1244 , - 217 , - 4358 , - 3939 , - 3824 , - 4013 , - 4506 , - 439 , - 1540 , - 2945 , - 4654 , - 1803 , - 4120 , - 1877 , - 4802 , - 3167 , - 1836 , - 809 , - 86 , - 4531 , - 4416 , - 4605 , - 234 , - 1031 , - 2132 , - 3537 , - 382 , - 2395 , - 4712 , - 2469 , - 530 , - 3759 , - 2428 , - 1401 , - 678 , - 259 , - 144 , - 333 , - 826 , - 1623 , - 2724 , - 4129 , - 974 , - 2987 , - 440 , - 3061 , - 1122 , - 4351 , - 3020 , - 1993 , - 1270 , - 851 , - 736 , - 925 , - 1418 , - 2215 , - 3316 , - 4721 , - 1566 , - 3579 , - 1032 , - 3653 , - 1714 , - 79 , - 3612 , - 2585 , - 1862 , - 1443 , - 1328 , - 1517 , - 2010 , - 2807 , - 3908 , - 449 , - 2158 , - 4171 , - 1624 , - 4245 , - 2306 , - 671 , - 4204 , - 3177 , - 2454 , - 2035 , - 1920 , - 2109 , - 2602 , - 3399 , - 4500 , - 1041 , - 2750 , - 4763 , - 2216 , - 4837 , - 2898 , - 1263 , - 4796 , - 3769 , - 3046 , - 2627 , - 2512 , - 2701 , - 3194 , - 3991 , - 228 , - 1633 , - 3342 , - 491 , - 2808 , - 565 , - 3490 , - 1855 , - 524 , - 4361 , - 3638 , - 3219 , - 3104 , - 3293 , - 3786 , - 4583 , - 820 , - 2225 , - 3934 , - 1083 , - 3400 , - 1157 , - 4082 , - 2447 , - 1116 , - 89 , - 4230 , - 3811 , - 3696 , - 3885 , - 4378 , - 311 , - 1412 , - 2817 , - 4526 , - 1675 , - 3992 , - 1749 , - 4674 , - 3039 , - 1708 , - 681 , - 4822 , - 4403 , - 4288 , - 4477 , - 106 , - 903 , - 2004 , - 3409 , - 254 , - 2267 , - 4584 , - 2341 , - 402 , - 3631 , - 2300 , - 1273 , - 550 , - 131 , - 16 , - 205 , - 698 , - 1495 , - 2596 , - 4001 , - 846 , - 2859 , - 312 , - 2933 , - 994 , - 4223 , - 2892 , - 1865 , - 1142 , - 723 , - 608 , - 797 , - 1290 , - 2087 , - 3188 , - 4593 , - 1438 , - 3451 , - 904 , - 3525 , - 1586 , - 4815 , - 3484 , - 2457 , - 1734 , - 1315 , - 1200 , - 1389 , - 1882 , - 2679 , - 3780 , - 321 , - 2030 , - 4043 , - 1496 , - 4117 , - 2178 , - 543 , - 4076 , - 3049 , - 2326 , - 1907 , - 1792 , - 1981 , - 2474 , - 3271 , - 4372 , - 913 , - 2622 , - 4635 , - 2088 , - 4709 , - 2770 , - 1135 , - 4668 , - 3641 , - 2918 , - 2499 , - 2384 , - 2573 , - 3066 , - 3863 , - 100 , - 1505 , - 3214 , - 363 , - 2680 , - 437 , - 3362 , - 1727 , - 396 , - 4233 , - 3510 , - 3091 , - 2976 , - 3165 , - 3658 , - 4455 , - 692 , - 2097 , - 3806 , - 955 , - 3272 , - 1029 , - 3954 , - 2319 , - 988 , - 4825 , - 4102 , - 3683 , - 3568 , - 3757 , - 4250 , - 183 , - 1284 , - 2689 , - 4398 , - 1547 , - 3864 , - 1621 , - 4546 , - 2911 , - 1580 , - 553 , - 4694 , - 4275 , - 4160 , - 4349 , - 4842 , - 775 , - 1876 , - 3281 , - 126 , - 2139 , - 4456 , - 2213 , - 274 , - 3503 , - 2172 , - 1145 , - 422 , - 3 , - 4752 , - 77 , - 570 , - 1367 , - 2468 , - 3873 , - 718 , - 2731 , - 184 , - 2805 , - 866 , - 4095 , - 2764 , - 1737 , - 1014 , - 595 , - 480 , - 669 , - 1162 , - 1959 , - 3060 , - 4465 , - 1310 , - 3323 , - 776 , - 3397 , - 1458 , - 4687 , - 3356 , - 2329 , - 1606 , - 1187 , - 1072 , - 1261 , - 1754 , - 2551 , - 3652 , - 193 , - 1902 , - 3915 , - 1368 , - 3989 , - 2050 , - 415 , - 3948 , - 2921 , - 2198 , - 1779 , - 1664 , - 1853 , - 2346 , - 3143 , - 4244 , - 785 , - 2494 , - 4507 , - 1960 , - 4581 , - 2642 , - 1007 , - 4540 , - 3513 , - 2790 , - 2371 , - 2256 , - 2445 , - 2938 , - 3735 , - 4836 , - 1377 , - 3086 , - 235 , - 2552 , - 309 , - 3234 , - 1599 , - 268 , - 4105 , - 3382 , - 2963 , - 2848 , - 3037 , - 3530 , - 4327 , - 564 , - 1969 , - 3678 , - 827 , - 3144 , - 901 , - 3826 , - 2191 , - 860 , - 4697 , - 3974 , - 3555 , - 3440 , - 3629 , - 4122 , - 55 , - 1156 , - 2561 , - 4270 , - 1419 , - 3736 , - 1493 , - 4418 , - 2783 , - 1452 , - 425 , - 4566 , - 4147 , - 4032 , - 4221 , - 4714 , - 647 , - 1748 , - 3153 , - 4862 , - 2011 , - 4328 , - 2085 , - 146 , - 3375 , - 2044 , - 1017 , - 294 , - 4739 , - 4624 , - 4813 , - 442 , - 1239 , - 2340 , - 3745 , - 590 , - 2603 , - 56 , - 2677 , - 738 , - 3967 , - 2636 , - 1609 , - 886 , - 467 , - 352 , - 541 , - 1034 , - 1831 , - 2932 , - 4337 , - 1182 , - 3195 , - 648 , - 3269 , - 1330 , - 4559 , - 3228 , - 2201 , - 1478 , - 1059 , - 944 , - 1133 , - 1626 , - 2423 , - 3524 , - 65 , - 1774 , - 3787 , - 1240 , - 3861 , - 1922 , - 287 , - 3820 , - 2793 , - 2070 , - 1651 , - 1536 , - 1725 , - 2218 , - 3015 , - 4116 , - 657 , - 2366 , - 4379 , - 1832 , - 4453 , - 2514 , - 879 , - 4412 , - 3385 , - 2662 , - 2243 , - 2128 , - 2317 , - 2810 , - 3607 , - 4708 , - 1249 , - 2958 , - 107 , - 2424 , - 181 , - 3106 , - 1471 , - 140 , - 3977 , - 3254 , - 2835 , - 2720 , - 2909 , - 3402 , - 4199 , - 436 , - 1841 , - 3550 , - 699 , - 3016 , - 773 , - 3698 , - 2063 , - 732 , - 4569 , - 3846 , - 3427 , - 3312 , - 3501 , - 3994 , - 4791 , - 1028 , - 2433 , - 4142 , - 1291 , - 3608 , - 1365 , - 4290 , - 2655 , - 1324 , - 297 , - 4438 , - 4019 , - 3904 , - 4093 , - 4586 , - 519 , - 1620 , - 3025 , - 4734 , - 1883 , - 4200 , - 1957 , - 18 , - 3247 , - 1916 , - 889 , - 166 , - 4611 , - 4496 , - 4685 , - 314 , - 1111 , - 2212 , - 3617 , - 462 , - 2475 , - 4792 , - 2549 , - 610 , - 3839 , - 2508 , - 1481 , - 758 , - 339 , - 224 , - 413 , - 906 , - 1703 , - 2804 , - 4209 , - 1054 , - 3067 , - 520 , - 3141 , - 1202 , - 4431 , - 3100 , - 2073 , - 1350 , - 931 , - 816 , - 1005 , - 1498 , - 2295 , - 3396 , - 4801 , - 1646 , - 3659 , - 1112 , - 3733 , - 1794 , - 159 , - 3692 , - 2665 , - 1942 , - 1523 , - 1408 , - 1597 , - 2090 , - 2887 , - 3988 , - 529 , - 2238 , - 4251 , - 1704 , - 4325 , - 2386 , - 751 , - 4284 , - 3257 , - 2534 , - 2115 , - 2000 , - 2189 , - 2682 , - 3479 , - 4580 , - 1121 , - 2830 , - 4843 , - 2296 , - 53 , - 2978 , - 1343 , - 12 , - 3849 , - 3126 , - 2707 , - 2592 , - 2781 , - 3274 , - 4071 , - 308 , - 1713 , - 3422 , - 571 , - 2888 , - 645 , - 3570 , - 1935 , - 604 , - 4441 , - 3718 , - 3299 , - 3184 , - 3373 , - 3866 , - 4663 , - 900 , - 2305 , - 4014 , - 1163 , - 3480 , - 1237 , - 4162 , - 2527 , - 1196 , - 169 , - 4310 , - 3891 , - 3776 , - 3965 , - 4458 , - 391 , - 1492 , - 2897 , - 4606 , - 1755 , - 4072 , - 1829 , - 4754 , - 3119 , - 1788 , - 761 , - 38 , - 4483 , - 4368 , - 4557 , - 186 , - 983 , - 2084 , - 3489 , - 334 , - 2347 , - 4664 , - 2421 , - 482 , - 3711 , - 2380 , - 1353 , - 630 , - 211 , - 96 , - 285 , - 778 , - 1575 , - 2676 , - 4081 , - 926 , - 2939 , - 392 , - 3013 , - 1074 , - 4303 , - 2972 , - 1945 , - 1222 , - 803 , - 688 , - 877 , - 1370 , - 2167 , - 3268 , - 4673 , - 1518 , - 3531 , - 984 , - 3605 , - 1666 , - 31 , - 3564 , - 2537 , - 1814 , - 1395 , - 1280 , - 1469 , - 1962 , - 2759 , - 3860 , - 401 , - 2110 , - 4123 , - 1576 , - 4197 , - 2258 , - 623 , - 4156 , - 3129 , - 2406 , - 1987 , - 1872 , - 2061 , - 2554 , - 3351 , - 4452 , - 993 , - 2702 , - 4715 , - 2168 , - 4789 , - 2850 , - 1215 , - 4748 , - 3721 , - 2998 , - 2579 , - 2464 , - 2653 , - 3146 , - 3943 , - 180 , - 1585 , - 3294 , - 443 , - 2760 , - 517 , - 3442 , - 1807 , - 476 , - 4313 , - 3590 , - 3171 , - 3056 , - 3245 , - 3738 , - 4535 , - 772 , - 2177 , - 3886 , - 1035 , - 3352 , - 1109 , - 4034 , - 2399 , - 1068 , - 41 , - 4182 , - 3763 , - 3648 , - 3837 , - 4330 , - 263 , - 1364 , - 2769 , - 4478 , - 1627 , - 3944 , - 1701 , - 4626 , - 2991 , - 1660 , - 633 , - 4774 , - 4355 , - 4240 , - 4429 , - 58 , - 855 , - 1956 , - 3361 , - 206 , - 2219 , - 4536 , - 2293 , - 354 , - 3583 , - 2252 , - 1225 , - 502 , - 83 , - 4832 , - 157 , - 650 , - 1447 , - 2548 , - 3953 , - 798 , - 2811 , - 264 , - 2885 , - 946 , - 4175 , - 2844 , - 1817 , - 1094 , - 675 , - 560 , - 749 , - 1242 , - 2039 , - 3140 , - 4545 , - 1390 , - 3403 , - 856 , - 3477 , - 1538 , - 4767 , - 3436 , - 2409 , - 1686 , - 1267 , - 1152 , - 1341 , - 1834 , - 2631 , - 3732 , - 273 , - 1982 , - 3995 , - 1448 , - 4069 , - 2130 , - 495 , - 4028 , - 3001 , - 2278 , - 1859 , - 1744 , - 1933 , - 2426 , - 3223 , - 4324 , - 865 , - 2574 , - 4587 , - 2040 , - 4661 , - 2722 , - 1087 , - 4620 , - 3593 , - 2870 , - 2451 , - 2336 , - 2525 , - 3018 , - 3815 , - 52 , - 1457 , - 3166 , - 315 , - 2632 , - 389 , - 3314 , - 1679 , - 348 , - 4185 , - 3462 , - 3043 , - 2928 , - 3117 , - 3610 , - 4407 , - 644 , - 2049 , - 3758 , - 907 , - 3224 , - 981 , - 3906 , - 2271 , - 940 , - 4777 , - 4054 , - 3635 , - 3520 , - 3709 , - 4202 , - 135 , - 1236 , - 2641 , - 4350 , - 1499 , - 3816 , - 1573 , - 4498 , - 2863 , - 1532 , - 505 , - 4646 , - 4227 , - 4112 , - 4301 , - 4794 , - 727 , - 1828 , - 3233 , - 78 , - 2091 , - 4408 , - 2165 , - 226 , - 3455 , - 2124 , - 1097 , - 374 , - 4819 , - 4704 , - 29 , - 522 , - 1319 , - 2420 , - 3825 , - 670 , - 2683 , - 136 , - 2757 , - 818 , - 4047 , - 2716 , - 1689 , - 966 , - 547 , - 432 , - 621 , - 1114 , - 1911 , - 3012 , - 4417 , - 1262 , - 3275 , - 728 , - 3349 , - 1410 , - 4639 , - 3308 , - 2281 , - 1558 , - 1139 , - 1024 , - 1213 , - 1706 , - 2503 , - 3604 , - 145 , - 1854 , - 3867 , - 1320 , - 3941 , - 2002 , - 367 , - 3900 , - 2873 , - 2150 , - 1731 , - 1616 , - 1805 , - 2298 , - 3095 , - 4196 , - 737 , - 2446 , - 4459 , - 1912 , - 4533 , - 2594 , - 959 , - 4492 , - 3465 , - 2742 , - 2323 , - 2208 , - 2397 , - 2890 , - 3687 , - 4788 , - 1329 , - 3038 , - 187 , - 2504 , - 261 , - 3186 , - 1551 , - 220 , - 4057 , - 3334 , - 2915 , - 2800 , - 2989 , - 3482 , - 4279 , - 516 , - 1921 , - 3630 , - 779 , - 3096 , - 853 , - 3778 , - 2143 , - 812 , - 4649 , - 3926 , - 3507 , - 3392 , - 3581 , - 4074 , - 7 , - 1108 , - 2513 , - 4222 , - 1371 , - 3688 , - 1445 , - 4370 , - 2735 , - 1404 , - 377 , - 4518 , - 4099 , - 3984 , - 4173 , - 4666 , - 599 , - 1700 , - 3105 , - 4814 , - 1963 , - 4280 , - 2037 , - 98 , - 3327 , - 1996 , - 969 , - 246 , - 4691 , - 4576 , - 4765 , - 394 , - 1191 , - 2292 , - 3697 , - 542 , - 2555 , - 8 , - 2629 , - 690 , - 3919 , - 2588 , - 1561 , - 838 , - 419 , - 304 , - 493 , - 986 , - 1783 , - 2884 , - 4289 , - 1134 , - 3147 , - 600 , - 3221 , - 1282 , - 4511 , - 3180 , - 2153 , - 1430 , - 1011 , - 896 , - 1085 , - 1578 , - 2375 , - 3476 , - 17 , - 1726 , - 3739 , - 1192 , - 3813 , - 1874 , - 239 , - 3772 , - 2745 , - 2022 , - 1603 , - 1488 , - 1677 , - 2170 , - 2967 , - 4068 , - 609 , - 2318 , - 4331 , - 1784 , - 4405 , - 2466 , - 831 , - 4364 , - 3337 , - 2614 , - 2195 , - 2080 , - 2269 , - 2762 , - 3559 , - 4660 , - 1201 , - 2910 , - 59 , - 2376 , - 133 , - 3058 , - 1423 , - 92 , - 3929 , - 3206 , - 2787 , - 2672 , - 2861 , - 3354 , - 4151 , - 388 , - 1793 , - 3502 , - 651 , - 2968 , - 725 , - 3650 , - 2015 , - 684 , - 4521 , - 3798 , - 3379 , - 3264 , - 3453 , - 3946 , - 4743 , - 980 , - 2385 , - 4094 , - 1243 , - 3560 , - 1317 , - 4242 , - 2607 , - 1276 , - 249 , - 4390 , - 3971 , - 3856 , - 4045 , - 4538 , - 471 , - 1572 , - 2977 , - 4686 , - 1835 , - 4152 , - 1909 , - 4834 , - 3199 , - 1868 , - 841 , - 118 , - 4563 , - 4448 , - 4637 , - 266 , - 1063 , - 2164 , - 3569 , - 414 , - 2427 , - 4744 , - 2501 , - 562 , - 3791 , - 2460 , - 1433 , - 710 , - 291 , - 176 , - 365 , - 858 , - 1655 , - 2756 , - 4161 , - 1006 , - 3019 , - 472 , - 3093 , - 1154 , - 4383 , - 3052 , - 2025 , - 1302 , - 883 , - 768 , - 957 , - 1450 , - 2247 , - 3348 , - 4753 , - 1598 , - 3611 , - 1064 , - 3685 , - 1746 , - 111 , - 3644 , - 2617 , - 1894 , - 1475 , - 1360 , - 1549 , - 2042 , - 2839 , - 3940 , - 481 , - 2190 , - 4203 , - 1656 , - 4277 , - 2338 , - 703 , - 4236 , - 3209 , - 2486 , - 2067 , - 1952 , - 2141 , - 2634 , - 3431 , - 4532 , - 1073 , - 2782 , - 4795 , - 2248 , - 5 , - 2930 , - 1295 , - 4828 , - 3801 , - 3078 , - 2659 , - 2544 , - 2733 , - 3226 , - 4023 , - 260 , - 1665 , - 3374 , - 523 , - 2840 , - 597 , - 3522 , - 1887 , - 556 , - 4393 , - 3670 , - 3251 , - 3136 , - 3325 , - 3818 , - 4615 , - 852 , - 2257 , - 3966 , - 1115 , - 3432 , - 1189 , - 4114 , - 2479 , - 1148 , - 121 , - 4262 , - 3843 , - 3728 , - 3917 , - 4410 , - 343 , - 1444 , - 2849 , - 4558 , - 1707 , - 4024 , - 1781 , - 4706 , - 3071 , - 1740 , - 713 , - 4854 , - 4435 , - 4320 , - 4509 , - 138 , - 935 , - 2036 , - 3441 , - 286 , - 2299 , - 4616 , - 2373 , - 434 , - 3663 , - 2332 , - 1305 , - 582 , - 163 , - 48 , - 237 , - 730 , - 1527 , - 2628 , - 4033 , - 878 , - 2891 , - 344 , - 2965 , - 1026 , - 4255 , - 2924 , - 1897 , - 1174 , - 755 , - 640 , - 829 , - 1322 , - 2119 , - 3220 , - 4625 , - 1470 , - 3483 , - 936 , - 3557 , - 1618 , - 4847 , - 3516 , - 2489 , - 1766 , - 1347 , - 1232 , - 1421 , - 1914 , - 2711 , - 3812 , - 353 , - 2062 , - 4075 , - 1528 , - 4149 , - 2210 , - 575 , - 4108 , - 3081 , - 2358 , - 1939 , - 1824 , - 2013 , - 2506 , - 3303 , - 4404 , - 945 , - 2654 , - 4667 , - 2120 , - 4741 , - 2802 , - 1167 , - 4700 , - 3673 , - 2950 , - 2531 , - 2416 , - 2605 , - 3098 , - 3895 , - 132 , - 1537 , - 3246 , - 395 , - 2712 , - 469 , - 3394 , - 1759 , - 428 , - 4265 , - 3542 , - 3123 , - 3008 , - 3197 , - 3690 , - 4487 , - 724 , - 2129 , - 3838 , - 987 , - 3304 , - 1061 , - 3986 , - 2351 , - 1020 , - 4857 , - 4134 , - 3715 , - 3600 , - 3789 , - 4282 , - 215 , - 1316 , - 2721 , - 4430 , - 1579 , - 3896 , - 1653 , - 4578 , - 2943 , - 1612 , - 585 , - 4726 , - 4307 , - 4192 , - 4381 , - 10 , - 807 , - 1908 , - 3313 , - 158 , - 2171 , - 4488 , - 2245 , - 306 , - 3535 , - 2204 , - 1177 , - 454 , - 35 , - 4784 , - 109 , - 602 , - 1399 , - 2500 , - 3905 , - 750 , - 2763 , - 216 , - 2837 , - 898 , - 4127 , - 2796 , - 1769 , - 1046 , - 627 , - 512 , - 701 , - 1194 , - 1991 , - 3092 , - 4497 , - 1342 , - 3355 , - 808 , - 3429 , - 1490 , - 4719 , - 3388 , - 2361 , - 1638 , - 1219 , - 1104 , - 1293 , - 1786 , - 2583 , - 3684 , - 225 , - 1934 , - 3947 , - 1400 , - 4021 , - 2082 , - 447 , - 3980 , - 2953 , - 2230 , - 1811 , - 1696 , - 1885 , - 2378 , - 3175 , - 4276 , - 817 , - 2526 , - 4539 , - 1992 , - 4613 , - 2674 , - 1039 , - 4572 , - 3545 , - 2822 , - 2403 , - 2288 , - 2477 , - 2970 , - 3767 , - 4 , - 1409 , - 3118 , - 267 , - 2584 , - 341 , - 3266 , - 1631 , - 300 , - 4137 , - 3414 , - 2995 , - 2880 , - 3069 , - 3562 , - 4359 , - 596 , - 2001 , - 3710 , - 859 , - 3176 , - 933 , - 3858 , - 2223 , - 892 , - 4729 , - 4006 , - 3587 , - 3472 , - 3661 , - 4154 , - 87 , - 1188 , - 2593 , - 4302 , - 1451 , - 3768 , - 1525 , - 4450 , - 2815 , - 1484 , - 457 , - 4598 , - 4179 , - 4064 , - 4253 , - 4746 , - 679 , - 1780 , - 3185 , - 30 , - 2043 , - 4360 , - 2117 , - 178 , - 3407 , - 2076 , - 1049 , - 326 , - 4771 , - 4656 , - 4845 , - 474 , - 1271 , - 2372 , - 3777 , - 622 , - 2635 , - 88 , - 2709 , - 770 , - 3999 , - 2668 , - 1641 , - 918 , - 499 , - 384 , - 573 , - 1066 , - 1863 , - 2964 , - 4369 , - 1214 , - 3227 , - 680 , - 3301 , - 1362 , - 4591 , - 3260 , - 2233 , - 1510 , - 1091 , - 976 , - 1165 , - 1658 , - 2455 , - 3556 , - 97 , - 1806 , - 3819 , - 1272 , - 3893 , - 1954 , - 319 , - 3852 , - 2825 , - 2102 , - 1683 , - 1568 , - 1757 , - 2250 , - 3047 , - 4148 , - 689 , - 2398 , - 4411 , - 1864 , - 4485 , - 2546 , - 911 , - 4444 , - 3417 , - 2694 , - 2275 , - 2160 , - 2349 , - 2842 , - 3639 , - 4740 , - 1281 , - 2990 , - 139 , - 2456 , - 213 , - 3138 , - 1503 , - 172 , - 4009 , - 3286 , - 2867 , - 2752 , - 2941 , - 3434 , - 4231 , - 468 , - 1873 , - 3582 , - 731 , - 3048 , - 805 , - 3730 , - 2095 , - 764 , - 4601 , - 3878 , - 3459 , - 3344 , - 3533 , - 4026 , - 4823 , - 1060 , - 2465 , - 4174 , - 1323 , - 3640 , - 1397 , - 4322 , - 2687 , - 1356 , - 329 , - 4470 , - 4051 , - 3936 , - 4125 , - 4618 , - 551 , - 1652 , - 3057 , - 4766 , - 1915 , - 4232 , - 1989 , - 50 , - 3279 , - 1948 , - 921 , - 198 , - 4643 , - 4528 , - 4717 , - 346 , - 1143 , - 2244 , - 3649 , - 494 , - 2507 , - 4824 , - 2581 , - 642 , - 3871 , - 2540 , - 1513 , - 790 , - 371 , - 256 , - 445 , - 938 , - 1735 , - 2836 , - 4241 , - 1086 , - 3099 , - 552 , - 3173 , - 1234 , - 4463 , - 3132 , - 2105 , - 1382 , - 963 , - 848 , - 1037 , - 1530 , - 2327 , - 3428 , - 4833 , - 1678 , - 3691 , - 1144 , - 3765 , - 1826 , - 191 , - 3724 , - 2697 , - 1974 , - 1555 , - 1440 , - 1629 , - 2122 , - 2919 , - 4020 , - 561 , - 2270 , - 4283 , - 1736 , - 4357 , - 2418 , - 783 , - 4316 , - 3289 , - 2566 , - 2147 , - 2032 , - 2221 , - 2714 , - 3511 , - 4612 , - 1153 , - 2862 , - 11 , - 2328 , - 85 , - 3010 , - 1375 , - 44 , - 3881 , - 3158 , - 2739 , - 2624 , - 2813 , - 3306 , - 4103 , - 340 , - 1745 , - 3454 , - 603 , - 2920 , - 677 , - 3602 , - 1967 , - 636 , - 4473 , - 3750 , - 3331 , - 3216 , - 3405 , - 3898 , - 4695 , - 932 , - 2337 , - 4046 , - 1195 , - 3512 , - 1269 , - 4194 , - 2559 , - 1228 , - 201 , - 4342 , - 3923 , - 3808 , - 3997 , - 4490 , - 423 , - 1524 , - 2929 , - 4638 , - 1787 , - 4104 , - 1861 , - 4786 , - 3151 , - 1820 , - 793 , - 70 , - 4515 , - 4400 , - 4589 , - 218 , - 1015 , - 2116 , - 3521 , - 366 , - 2379 , - 4696 , - 2453 , - 514 , - 3743 , - 2412 , - 1385 , - 662 , - 243 , - 128 , - 317 , - 810 , - 1607 , - 2708 , - 4113 , - 958 , - 2971 , - 424 , - 3045 , - 1106 , - 4335 , - 3004 , - 1977 , - 1254 , - 835 , - 720 , - 909 , - 1402 , - 2199 , - 3300 , - 4705 , - 1550 , - 3563 , - 1016 , - 3637 , - 1698 , - 63 , - 3596 , - 2569 , - 1846 , - 1427 , - 1312 , - 1501 , - 1994 , - 2791 , - 3892 , - 433 , - 2142 , - 4155 , - 1608 , - 4229 , - 2290 , - 655 , - 4188 , - 3161 , - 2438 , - 2019 , - 1904 , - 2093 , - 2586 , - 3383 , - 4484 , - 1025 , - 2734 , - 4747 , - 2200 , - 4821 , - 2882 , - 1247 , - 4780 , - 3753 , - 3030 , - 2611 , - 2496 , - 2685 , - 3178 , - 3975 , - 212 , - 1617 , - 3326 , - 475 , - 2792 , - 549 , - 3474 , - 1839 , - 508 , - 4345 , - 3622 , - 3203 , - 3088 , - 3277 , - 3770 , - 4567 , - 804 , - 2209 , - 3918 , - 1067 , - 3384 , - 1141 , - 4066 , - 2431 , - 1100 , - 73 , - 4214 , - 3795 , - 3680 , - 3869 , - 4362 , - 295 , - 1396 , - 2801 , - 4510 , - 1659 , - 3976 , - 1733 , - 4658 , - 3023 , - 1692 , - 665 , - 4806 , - 4387 , - 4272 , - 4461 , - 90 , - 887 , - 1988 , - 3393 , - 238 , - 2251 , - 4568 , - 2325 , - 386 , - 3615 , - 2284 , - 1257 , - 534 , - 115 , - 0 , - 501 , - 1926 , - 4275 , - 2620 , - 1889 , - 2082 , - 3199 , - 312 , - 3277 , - 2238 , - 2123 , - 2932 , - 4665 , - 2394 , - 1047 , - 624 , - 1125 , - 2550 , - 4899 , - 3244 , - 2513 , - 2706 , - 3823 , - 936 , - 3901 , - 2862 , - 2747 , - 3556 , - 361 , - 3018 , - 1671 , - 1248 , - 1749 , - 3174 , - 595 , - 3868 , - 3137 , - 3330 , - 4447 , - 1560 , - 4525 , - 3486 , - 3371 , - 4180 , - 985 , - 3642 , - 2295 , - 1872 , - 2373 , - 3798 , - 1219 , - 4492 , - 3761 , - 3954 , - 143 , - 2184 , - 221 , - 4110 , - 3995 , - 4804 , - 1609 , - 4266 , - 2919 , - 2496 , - 2997 , - 4422 , - 1843 , - 188 , - 4385 , - 4578 , - 767 , - 2808 , - 845 , - 4734 , - 4619 , - 500 , - 2233 , - 4890 , - 3543 , - 3120 , - 3621 , - 118 , - 2467 , - 812 , - 81 , - 274 , - 1391 , - 3432 , - 1469 , - 430 , - 315 , - 1124 , - 2857 , - 586 , - 4167 , - 3744 , - 4245 , - 742 , - 3091 , - 1436 , - 705 , - 898 , - 2015 , - 4056 , - 2093 , - 1054 , - 939 , - 1748 , - 3481 , - 1210 , - 4791 , - 4368 , - 4869 , - 1366 , - 3715 , - 2060 , - 1329 , - 1522 , - 2639 , - 4680 , - 2717 , - 1678 , - 1563 , - 2372 , - 4105 , - 1834 , - 487 , - 64 , - 565 , - 1990 , - 4339 , - 2684 , - 1953 , - 2146 , - 3263 , - 376 , - 3341 , - 2302 , - 2187 , - 2996 , - 4729 , - 2458 , - 1111 , - 688 , - 1189 , - 2614 , - 35 , - 3308 , - 2577 , - 2770 , - 3887 , - 1000 , - 3965 , - 2926 , - 2811 , - 3620 , - 425 , - 3082 , - 1735 , - 1312 , - 1813 , - 3238 , - 659 , - 3932 , - 3201 , - 3394 , - 4511 , - 1624 , - 4589 , - 3550 , - 3435 , - 4244 , - 1049 , - 3706 , - 2359 , - 1936 , - 2437 , - 3862 , - 1283 , - 4556 , - 3825 , - 4018 , - 207 , - 2248 , - 285 , - 4174 , - 4059 , - 4868 , - 1673 , - 4330 , - 2983 , - 2560 , - 3061 , - 4486 , - 1907 , - 252 , - 4449 , - 4642 , - 831 , - 2872 , - 909 , - 4798 , - 4683 , - 564 , - 2297 , - 26 , - 3607 , - 3184 , - 3685 , - 182 , - 2531 , - 876 , - 145 , - 338 , - 1455 , - 3496 , - 1533 , - 494 , - 379 , - 1188 , - 2921 , - 650 , - 4231 , - 3808 , - 4309 , - 806 , - 3155 , - 1500 , - 769 , - 962 , - 2079 , - 4120 , - 2157 , - 1118 , - 1003 , - 1812 , - 3545 , - 1274 , - 4855 , - 4432 , - 5 , - 1430 , - 3779 , - 2124 , - 1393 , - 1586 , - 2703 , - 4744 , - 2781 , - 1742 , - 1627 , - 2436 , - 4169 , - 1898 , - 551 , - 128 , - 629 , - 2054 , - 4403 , - 2748 , - 2017 , - 2210 , - 3327 , - 440 , - 3405 , - 2366 , - 2251 , - 3060 , - 4793 , - 2522 , - 1175 , - 752 , - 1253 , - 2678 , - 99 , - 3372 , - 2641 , - 2834 , - 3951 , - 1064 , - 4029 , - 2990 , - 2875 , - 3684 , - 489 , - 3146 , - 1799 , - 1376 , - 1877 , - 3302 , - 723 , - 3996 , - 3265 , - 3458 , - 4575 , - 1688 , - 4653 , - 3614 , - 3499 , - 4308 , - 1113 , - 3770 , - 2423 , - 2000 , - 2501 , - 3926 , - 1347 , - 4620 , - 3889 , - 4082 , - 271 , - 2312 , - 349 , - 4238 , - 4123 , - 4 , - 1737 , - 4394 , - 3047 , - 2624 , - 3125 , - 4550 , - 1971 , - 316 , - 4513 , - 4706 , - 895 , - 2936 , - 973 , - 4862 , - 4747 , - 628 , - 2361 , - 90 , - 3671 , - 3248 , - 3749 , - 246 , - 2595 , - 940 , - 209 , - 402 , - 1519 , - 3560 , - 1597 , - 558 , - 443 , - 1252 , - 2985 , - 714 , - 4295 , - 3872 , - 4373 , - 870 , - 3219 , - 1564 , - 833 , - 1026 , - 2143 , - 4184 , - 2221 , - 1182 , - 1067 , - 1876 , - 3609 , - 1338 , - 4919 , - 4496 , - 69 , - 1494 , - 3843 , - 2188 , - 1457 , - 1650 , - 2767 , - 4808 , - 2845 , - 1806 , - 1691 , - 2500 , - 4233 , - 1962 , - 615 , - 192 , - 693 , - 2118 , - 4467 , - 2812 , - 2081 , - 2274 , - 3391 , - 504 , - 3469 , - 2430 , - 2315 , - 3124 , - 4857 , - 2586 , - 1239 , - 816 , - 1317 , - 2742 , - 163 , - 3436 , - 2705 , - 2898 , - 4015 , - 1128 , - 4093 , - 3054 , - 2939 , - 3748 , - 553 , - 3210 , - 1863 , - 1440 , - 1941 , - 3366 , - 787 , - 4060 , - 3329 , - 3522 , - 4639 , - 1752 , - 4717 , - 3678 , - 3563 , - 4372 , - 1177 , - 3834 , - 2487 , - 2064 , - 2565 , - 3990 , - 1411 , - 4684 , - 3953 , - 4146 , - 335 , - 2376 , - 413 , - 4302 , - 4187 , - 68 , - 1801 , - 4458 , - 3111 , - 2688 , - 3189 , - 4614 , - 2035 , - 380 , - 4577 , - 4770 , - 959 , - 3000 , - 1037 , - 4926 , - 4811 , - 692 , - 2425 , - 154 , - 3735 , - 3312 , - 3813 , - 310 , - 2659 , - 1004 , - 273 , - 466 , - 1583 , - 3624 , - 1661 , - 622 , - 507 , - 1316 , - 3049 , - 778 , - 4359 , - 3936 , - 4437 , - 934 , - 3283 , - 1628 , - 897 , - 1090 , - 2207 , - 4248 , - 2285 , - 1246 , - 1131 , - 1940 , - 3673 , - 1402 , - 55 , - 4560 , - 133 , - 1558 , - 3907 , - 2252 , - 1521 , - 1714 , - 2831 , - 4872 , - 2909 , - 1870 , - 1755 , - 2564 , - 4297 , - 2026 , - 679 , - 256 , - 757 , - 2182 , - 4531 , - 2876 , - 2145 , - 2338 , - 3455 , - 568 , - 3533 , - 2494 , - 2379 , - 3188 , - 4921 , - 2650 , - 1303 , - 880 , - 1381 , - 2806 , - 227 , - 3500 , - 2769 , - 2962 , - 4079 , - 1192 , - 4157 , - 3118 , - 3003 , - 3812 , - 617 , - 3274 , - 1927 , - 1504 , - 2005 , - 3430 , - 851 , - 4124 , - 3393 , - 3586 , - 4703 , - 1816 , - 4781 , - 3742 , - 3627 , - 4436 , - 1241 , - 3898 , - 2551 , - 2128 , - 2629 , - 4054 , - 1475 , - 4748 , - 4017 , - 4210 , - 399 , - 2440 , - 477 , - 4366 , - 4251 , - 132 , - 1865 , - 4522 , - 3175 , - 2752 , - 3253 , - 4678 , - 2099 , - 444 , - 4641 , - 4834 , - 1023 , - 3064 , - 1101 , - 62 , - 4875 , - 756 , - 2489 , - 218 , - 3799 , - 3376 , - 3877 , - 374 , - 2723 , - 1068 , - 337 , - 530 , - 1647 , - 3688 , - 1725 , - 686 , - 571 , - 1380 , - 3113 , - 842 , - 4423 , - 4000 , - 4501 , - 998 , - 3347 , - 1692 , - 961 , - 1154 , - 2271 , - 4312 , - 2349 , - 1310 , - 1195 , - 2004 , - 3737 , - 1466 , - 119 , - 4624 , - 197 , - 1622 , - 3971 , - 2316 , - 1585 , - 1778 , - 2895 , - 8 , - 2973 , - 1934 , - 1819 , - 2628 , - 4361 , - 2090 , - 743 , - 320 , - 821 , - 2246 , - 4595 , - 2940 , - 2209 , - 2402 , - 3519 , - 632 , - 3597 , - 2558 , - 2443 , - 3252 , - 57 , - 2714 , - 1367 , - 944 , - 1445 , - 2870 , - 291 , - 3564 , - 2833 , - 3026 , - 4143 , - 1256 , - 4221 , - 3182 , - 3067 , - 3876 , - 681 , - 3338 , - 1991 , - 1568 , - 2069 , - 3494 , - 915 , - 4188 , - 3457 , - 3650 , - 4767 , - 1880 , - 4845 , - 3806 , - 3691 , - 4500 , - 1305 , - 3962 , - 2615 , - 2192 , - 2693 , - 4118 , - 1539 , - 4812 , - 4081 , - 4274 , - 463 , - 2504 , - 541 , - 4430 , - 4315 , - 196 , - 1929 , - 4586 , - 3239 , - 2816 , - 3317 , - 4742 , - 2163 , - 508 , - 4705 , - 4898 , - 1087 , - 3128 , - 1165 , - 126 , - 11 , - 820 , - 2553 , - 282 , - 3863 , - 3440 , - 3941 , - 438 , - 2787 , - 1132 , - 401 , - 594 , - 1711 , - 3752 , - 1789 , - 750 , - 635 , - 1444 , - 3177 , - 906 , - 4487 , - 4064 , - 4565 , - 1062 , - 3411 , - 1756 , - 1025 , - 1218 , - 2335 , - 4376 , - 2413 , - 1374 , - 1259 , - 2068 , - 3801 , - 1530 , - 183 , - 4688 , - 261 , - 1686 , - 4035 , - 2380 , - 1649 , - 1842 , - 2959 , - 72 , - 3037 , - 1998 , - 1883 , - 2692 , - 4425 , - 2154 , - 807 , - 384 , - 885 , - 2310 , - 4659 , - 3004 , - 2273 , - 2466 , - 3583 , - 696 , - 3661 , - 2622 , - 2507 , - 3316 , - 121 , - 2778 , - 1431 , - 1008 , - 1509 , - 2934 , - 355 , - 3628 , - 2897 , - 3090 , - 4207 , - 1320 , - 4285 , - 3246 , - 3131 , - 3940 , - 745 , - 3402 , - 2055 , - 1632 , - 2133 , - 3558 , - 979 , - 4252 , - 3521 , - 3714 , - 4831 , - 1944 , - 4909 , - 3870 , - 3755 , - 4564 , - 1369 , - 4026 , - 2679 , - 2256 , - 2757 , - 4182 , - 1603 , - 4876 , - 4145 , - 4338 , - 527 , - 2568 , - 605 , - 4494 , - 4379 , - 260 , - 1993 , - 4650 , - 3303 , - 2880 , - 3381 , - 4806 , - 2227 , - 572 , - 4769 , - 34 , - 1151 , - 3192 , - 1229 , - 190 , - 75 , - 884 , - 2617 , - 346 , - 3927 , - 3504 , - 4005 , - 502 , - 2851 , - 1196 , - 465 , - 658 , - 1775 , - 3816 , - 1853 , - 814 , - 699 , - 1508 , - 3241 , - 970 , - 4551 , - 4128 , - 4629 , - 1126 , - 3475 , - 1820 , - 1089 , - 1282 , - 2399 , - 4440 , - 2477 , - 1438 , - 1323 , - 2132 , - 3865 , - 1594 , - 247 , - 4752 , - 325 , - 1750 , - 4099 , - 2444 , - 1713 , - 1906 , - 3023 , - 136 , - 3101 , - 2062 , - 1947 , - 2756 , - 4489 , - 2218 , - 871 , - 448 , - 949 , - 2374 , - 4723 , - 3068 , - 2337 , - 2530 , - 3647 , - 760 , - 3725 , - 2686 , - 2571 , - 3380 , - 185 , - 2842 , - 1495 , - 1072 , - 1573 , - 2998 , - 419 , - 3692 , - 2961 , - 3154 , - 4271 , - 1384 , - 4349 , - 3310 , - 3195 , - 4004 , - 809 , - 3466 , - 2119 , - 1696 , - 2197 , - 3622 , - 1043 , - 4316 , - 3585 , - 3778 , - 4895 , - 2008 , - 45 , - 3934 , - 3819 , - 4628 , - 1433 , - 4090 , - 2743 , - 2320 , - 2821 , - 4246 , - 1667 , - 12 , - 4209 , - 4402 , - 591 , - 2632 , - 669 , - 4558 , - 4443 , - 324 , - 2057 , - 4714 , - 3367 , - 2944 , - 3445 , - 4870 , - 2291 , - 636 , - 4833 , - 98 , - 1215 , - 3256 , - 1293 , - 254 , - 139 , - 948 , - 2681 , - 410 , - 3991 , - 3568 , - 4069 , - 566 , - 2915 , - 1260 , - 529 , - 722 , - 1839 , - 3880 , - 1917 , - 878 , - 763 , - 1572 , - 3305 , - 1034 , - 4615 , - 4192 , - 4693 , - 1190 , - 3539 , - 1884 , - 1153 , - 1346 , - 2463 , - 4504 , - 2541 , - 1502 , - 1387 , - 2196 , - 3929 , - 1658 , - 311 , - 4816 , - 389 , - 1814 , - 4163 , - 2508 , - 1777 , - 1970 , - 3087 , - 200 , - 3165 , - 2126 , - 2011 , - 2820 , - 4553 , - 2282 , - 935 , - 512 , - 1013 , - 2438 , - 4787 , - 3132 , - 2401 , - 2594 , - 3711 , - 824 , - 3789 , - 2750 , - 2635 , - 3444 , - 249 , - 2906 , - 1559 , - 1136 , - 1637 , - 3062 , - 483 , - 3756 , - 3025 , - 3218 , - 4335 , - 1448 , - 4413 , - 3374 , - 3259 , - 4068 , - 873 , - 3530 , - 2183 , - 1760 , - 2261 , - 3686 , - 1107 , - 4380 , - 3649 , - 3842 , - 31 , - 2072 , - 109 , - 3998 , - 3883 , - 4692 , - 1497 , - 4154 , - 2807 , - 2384 , - 2885 , - 4310 , - 1731 , - 76 , - 4273 , - 4466 , - 655 , - 2696 , - 733 , - 4622 , - 4507 , - 388 , - 2121 , - 4778 , - 3431 , - 3008 , - 3509 , - 6 , - 2355 , - 700 , - 4897 , - 162 , - 1279 , - 3320 , - 1357 , - 318 , - 203 , - 1012 , - 2745 , - 474 , - 4055 , - 3632 , - 4133 , - 630 , - 2979 , - 1324 , - 593 , - 786 , - 1903 , - 3944 , - 1981 , - 942 , - 827 , - 1636 , - 3369 , - 1098 , - 4679 , - 4256 , - 4757 , - 1254 , - 3603 , - 1948 , - 1217 , - 1410 , - 2527 , - 4568 , - 2605 , - 1566 , - 1451 , - 2260 , - 3993 , - 1722 , - 375 , - 4880 , - 453 , - 1878 , - 4227 , - 2572 , - 1841 , - 2034 , - 3151 , - 264 , - 3229 , - 2190 , - 2075 , - 2884 , - 4617 , - 2346 , - 999 , - 576 , - 1077 , - 2502 , - 4851 , - 3196 , - 2465 , - 2658 , - 3775 , - 888 , - 3853 , - 2814 , - 2699 , - 3508 , - 313 , - 2970 , - 1623 , - 1200 , - 1701 , - 3126 , - 547 , - 3820 , - 3089 , - 3282 , - 4399 , - 1512 , - 4477 , - 3438 , - 3323 , - 4132 , - 937 , - 3594 , - 2247 , - 1824 , - 2325 , - 3750 , - 1171 , - 4444 , - 3713 , - 3906 , - 95 , - 2136 , - 173 , - 4062 , - 3947 , - 4756 , - 1561 , - 4218 , - 2871 , - 2448 , - 2949 , - 4374 , - 1795 , - 140 , - 4337 , - 4530 , - 719 , - 2760 , - 797 , - 4686 , - 4571 , - 452 , - 2185 , - 4842 , - 3495 , - 3072 , - 3573 , - 70 , - 2419 , - 764 , - 33 , - 226 , - 1343 , - 3384 , - 1421 , - 382 , - 267 , - 1076 , - 2809 , - 538 , - 4119 , - 3696 , - 4197 , - 694 , - 3043 , - 1388 , - 657 , - 850 , - 1967 , - 4008 , - 2045 , - 1006 , - 891 , - 1700 , - 3433 , - 1162 , - 4743 , - 4320 , - 4821 , - 1318 , - 3667 , - 2012 , - 1281 , - 1474 , - 2591 , - 4632 , - 2669 , - 1630 , - 1515 , - 2324 , - 4057 , - 1786 , - 439 , - 16 , - 517 , - 1942 , - 4291 , - 2636 , - 1905 , - 2098 , - 3215 , - 328 , - 3293 , - 2254 , - 2139 , - 2948 , - 4681 , - 2410 , - 1063 , - 640 , - 1141 , - 2566 , - 4915 , - 3260 , - 2529 , - 2722 , - 3839 , - 952 , - 3917 , - 2878 , - 2763 , - 3572 , - 377 , - 3034 , - 1687 , - 1264 , - 1765 , - 3190 , - 611 , - 3884 , - 3153 , - 3346 , - 4463 , - 1576 , - 4541 , - 3502 , - 3387 , - 4196 , - 1001 , - 3658 , - 2311 , - 1888 , - 2389 , - 3814 , - 1235 , - 4508 , - 3777 , - 3970 , - 159 , - 2200 , - 237 , - 4126 , - 4011 , - 4820 , - 1625 , - 4282 , - 2935 , - 2512 , - 3013 , - 4438 , - 1859 , - 204 , - 4401 , - 4594 , - 783 , - 2824 , - 861 , - 4750 , - 4635 , - 516 , - 2249 , - 4906 , - 3559 , - 3136 , - 3637 , - 134 , - 2483 , - 828 , - 97 , - 290 , - 1407 , - 3448 , - 1485 , - 446 , - 331 , - 1140 , - 2873 , - 602 , - 4183 , - 3760 , - 4261 , - 758 , - 3107 , - 1452 , - 721 , - 914 , - 2031 , - 4072 , - 2109 , - 1070 , - 955 , - 1764 , - 3497 , - 1226 , - 4807 , - 4384 , - 4885 , - 1382 , - 3731 , - 2076 , - 1345 , - 1538 , - 2655 , - 4696 , - 2733 , - 1694 , - 1579 , - 2388 , - 4121 , - 1850 , - 503 , - 80 , - 581 , - 2006 , - 4355 , - 2700 , - 1969 , - 2162 , - 3279 , - 392 , - 3357 , - 2318 , - 2203 , - 3012 , - 4745 , - 2474 , - 1127 , - 704 , - 1205 , - 2630 , - 51 , - 3324 , - 2593 , - 2786 , - 3903 , - 1016 , - 3981 , - 2942 , - 2827 , - 3636 , - 441 , - 3098 , - 1751 , - 1328 , - 1829 , - 3254 , - 675 , - 3948 , - 3217 , - 3410 , - 4527 , - 1640 , - 4605 , - 3566 , - 3451 , - 4260 , - 1065 , - 3722 , - 2375 , - 1952 , - 2453 , - 3878 , - 1299 , - 4572 , - 3841 , - 4034 , - 223 , - 2264 , - 301 , - 4190 , - 4075 , - 4884 , - 1689 , - 4346 , - 2999 , - 2576 , - 3077 , - 4502 , - 1923 , - 268 , - 4465 , - 4658 , - 847 , - 2888 , - 925 , - 4814 , - 4699 , - 580 , - 2313 , - 42 , - 3623 , - 3200 , - 3701 , - 198 , - 2547 , - 892 , - 161 , - 354 , - 1471 , - 3512 , - 1549 , - 510 , - 395 , - 1204 , - 2937 , - 666 , - 4247 , - 3824 , - 4325 , - 822 , - 3171 , - 1516 , - 785 , - 978 , - 2095 , - 4136 , - 2173 , - 1134 , - 1019 , - 1828 , - 3561 , - 1290 , - 4871 , - 4448 , - 21 , - 1446 , - 3795 , - 2140 , - 1409 , - 1602 , - 2719 , - 4760 , - 2797 , - 1758 , - 1643 , - 2452 , - 4185 , - 1914 , - 567 , - 144 , - 645 , - 2070 , - 4419 , - 2764 , - 2033 , - 2226 , - 3343 , - 456 , - 3421 , - 2382 , - 2267 , - 3076 , - 4809 , - 2538 , - 1191 , - 768 , - 1269 , - 2694 , - 115 , - 3388 , - 2657 , - 2850 , - 3967 , - 1080 , - 4045 , - 3006 , - 2891 , - 3700 , - 505 , - 3162 , - 1815 , - 1392 , - 1893 , - 3318 , - 739 , - 4012 , - 3281 , - 3474 , - 4591 , - 1704 , - 4669 , - 3630 , - 3515 , - 4324 , - 1129 , - 3786 , - 2439 , - 2016 , - 2517 , - 3942 , - 1363 , - 4636 , - 3905 , - 4098 , - 287 , - 2328 , - 365 , - 4254 , - 4139 , - 20 , - 1753 , - 4410 , - 3063 , - 2640 , - 3141 , - 4566 , - 1987 , - 332 , - 4529 , - 4722 , - 911 , - 2952 , - 989 , - 4878 , - 4763 , - 644 , - 2377 , - 106 , - 3687 , - 3264 , - 3765 , - 262 , - 2611 , - 956 , - 225 , - 418 , - 1535 , - 3576 , - 1613 , - 574 , - 459 , - 1268 , - 3001 , - 730 , - 4311 , - 3888 , - 4389 , - 886 , - 3235 , - 1580 , - 849 , - 1042 , - 2159 , - 4200 , - 2237 , - 1198 , - 1083 , - 1892 , - 3625 , - 1354 , - 7 , - 4512 , - 85 , - 1510 , - 3859 , - 2204 , - 1473 , - 1666 , - 2783 , - 4824 , - 2861 , - 1822 , - 1707 , - 2516 , - 4249 , - 1978 , - 631 , - 208 , - 709 , - 2134 , - 4483 , - 2828 , - 2097 , - 2290 , - 3407 , - 520 , - 3485 , - 2446 , - 2331 , - 3140 , - 4873 , - 2602 , - 1255 , - 832 , - 1333 , - 2758 , - 179 , - 3452 , - 2721 , - 2914 , - 4031 , - 1144 , - 4109 , - 3070 , - 2955 , - 3764 , - 569 , - 3226 , - 1879 , - 1456 , - 1957 , - 3382 , - 803 , - 4076 , - 3345 , - 3538 , - 4655 , - 1768 , - 4733 , - 3694 , - 3579 , - 4388 , - 1193 , - 3850 , - 2503 , - 2080 , - 2581 , - 4006 , - 1427 , - 4700 , - 3969 , - 4162 , - 351 , - 2392 , - 429 , - 4318 , - 4203 , - 84 , - 1817 , - 4474 , - 3127 , - 2704 , - 3205 , - 4630 , - 2051 , - 396 , - 4593 , - 4786 , - 975 , - 3016 , - 1053 , - 14 , - 4827 , - 708 , - 2441 , - 170 , - 3751 , - 3328 , - 3829 , - 326 , - 2675 , - 1020 , - 289 , - 482 , - 1599 , - 3640 , - 1677 , - 638 , - 523 , - 1332 , - 3065 , - 794 , - 4375 , - 3952 , - 4453 , - 950 , - 3299 , - 1644 , - 913 , - 1106 , - 2223 , - 4264 , - 2301 , - 1262 , - 1147 , - 1956 , - 3689 , - 1418 , - 71 , - 4576 , - 149 , - 1574 , - 3923 , - 2268 , - 1537 , - 1730 , - 2847 , - 4888 , - 2925 , - 1886 , - 1771 , - 2580 , - 4313 , - 2042 , - 695 , - 272 , - 773 , - 2198 , - 4547 , - 2892 , - 2161 , - 2354 , - 3471 , - 584 , - 3549 , - 2510 , - 2395 , - 3204 , - 9 , - 2666 , - 1319 , - 896 , - 1397 , - 2822 , - 243 , - 3516 , - 2785 , - 2978 , - 4095 , - 1208 , - 4173 , - 3134 , - 3019 , - 3828 , - 633 , - 3290 , - 1943 , - 1520 , - 2021 , - 3446 , - 867 , - 4140 , - 3409 , - 3602 , - 4719 , - 1832 , - 4797 , - 3758 , - 3643 , - 4452 , - 1257 , - 3914 , - 2567 , - 2144 , - 2645 , - 4070 , - 1491 , - 4764 , - 4033 , - 4226 , - 415 , - 2456 , - 493 , - 4382 , - 4267 , - 148 , - 1881 , - 4538 , - 3191 , - 2768 , - 3269 , - 4694 , - 2115 , - 460 , - 4657 , - 4850 , - 1039 , - 3080 , - 1117 , - 78 , - 4891 , - 772 , - 2505 , - 234 , - 3815 , - 3392 , - 3893 , - 390 , - 2739 , - 1084 , - 353 , - 546 , - 1663 , - 3704 , - 1741 , - 702 , - 587 , - 1396 , - 3129 , - 858 , - 4439 , - 4016 , - 4517 , - 1014 , - 3363 , - 1708 , - 977 , - 1170 , - 2287 , - 4328 , - 2365 , - 1326 , - 1211 , - 2020 , - 3753 , - 1482 , - 135 , - 4640 , - 213 , - 1638 , - 3987 , - 2332 , - 1601 , - 1794 , - 2911 , - 24 , - 2989 , - 1950 , - 1835 , - 2644 , - 4377 , - 2106 , - 759 , - 336 , - 837 , - 2262 , - 4611 , - 2956 , - 2225 , - 2418 , - 3535 , - 648 , - 3613 , - 2574 , - 2459 , - 3268 , - 73 , - 2730 , - 1383 , - 960 , - 1461 , - 2886 , - 307 , - 3580 , - 2849 , - 3042 , - 4159 , - 1272 , - 4237 , - 3198 , - 3083 , - 3892 , - 697 , - 3354 , - 2007 , - 1584 , - 2085 , - 3510 , - 931 , - 4204 , - 3473 , - 3666 , - 4783 , - 1896 , - 4861 , - 3822 , - 3707 , - 4516 , - 1321 , - 3978 , - 2631 , - 2208 , - 2709 , - 4134 , - 1555 , - 4828 , - 4097 , - 4290 , - 479 , - 2520 , - 557 , - 4446 , - 4331 , - 212 , - 1945 , - 4602 , - 3255 , - 2832 , - 3333 , - 4758 , - 2179 , - 524 , - 4721 , - 4914 , - 1103 , - 3144 , - 1181 , - 142 , - 27 , - 836 , - 2569 , - 298 , - 3879 , - 3456 , - 3957 , - 454 , - 2803 , - 1148 , - 417 , - 610 , - 1727 , - 3768 , - 1805 , - 766 , - 651 , - 1460 , - 3193 , - 922 , - 4503 , - 4080 , - 4581 , - 1078 , - 3427 , - 1772 , - 1041 , - 1234 , - 2351 , - 4392 , - 2429 , - 1390 , - 1275 , - 2084 , - 3817 , - 1546 , - 199 , - 4704 , - 277 , - 1702 , - 4051 , - 2396 , - 1665 , - 1858 , - 2975 , - 88 , - 3053 , - 2014 , - 1899 , - 2708 , - 4441 , - 2170 , - 823 , - 400 , - 901 , - 2326 , - 4675 , - 3020 , - 2289 , - 2482 , - 3599 , - 712 , - 3677 , - 2638 , - 2523 , - 3332 , - 137 , - 2794 , - 1447 , - 1024 , - 1525 , - 2950 , - 371 , - 3644 , - 2913 , - 3106 , - 4223 , - 1336 , - 4301 , - 3262 , - 3147 , - 3956 , - 761 , - 3418 , - 2071 , - 1648 , - 2149 , - 3574 , - 995 , - 4268 , - 3537 , - 3730 , - 4847 , - 1960 , - 4925 , - 3886 , - 3771 , - 4580 , - 1385 , - 4042 , - 2695 , - 2272 , - 2773 , - 4198 , - 1619 , - 4892 , - 4161 , - 4354 , - 543 , - 2584 , - 621 , - 4510 , - 4395 , - 276 , - 2009 , - 4666 , - 3319 , - 2896 , - 3397 , - 4822 , - 2243 , - 588 , - 4785 , - 50 , - 1167 , - 3208 , - 1245 , - 206 , - 91 , - 900 , - 2633 , - 362 , - 3943 , - 3520 , - 4021 , - 518 , - 2867 , - 1212 , - 481 , - 674 , - 1791 , - 3832 , - 1869 , - 830 , - 715 , - 1524 , - 3257 , - 986 , - 4567 , - 4144 , - 4645 , - 1142 , - 3491 , - 1836 , - 1105 , - 1298 , - 2415 , - 4456 , - 2493 , - 1454 , - 1339 , - 2148 , - 3881 , - 1610 , - 263 , - 4768 , - 341 , - 1766 , - 4115 , - 2460 , - 1729 , - 1922 , - 3039 , - 152 , - 3117 , - 2078 , - 1963 , - 2772 , - 4505 , - 2234 , - 887 , - 464 , - 965 , - 2390 , - 4739 , - 3084 , - 2353 , - 2546 , - 3663 , - 776 , - 3741 , - 2702 , - 2587 , - 3396 , - 201 , - 2858 , - 1511 , - 1088 , - 1589 , - 3014 , - 435 , - 3708 , - 2977 , - 3170 , - 4287 , - 1400 , - 4365 , - 3326 , - 3211 , - 4020 , - 825 , - 3482 , - 2135 , - 1712 , - 2213 , - 3638 , - 1059 , - 4332 , - 3601 , - 3794 , - 4911 , - 2024 , - 61 , - 3950 , - 3835 , - 4644 , - 1449 , - 4106 , - 2759 , - 2336 , - 2837 , - 4262 , - 1683 , - 28 , - 4225 , - 4418 , - 607 , - 2648 , - 685 , - 4574 , - 4459 , - 340 , - 2073 , - 4730 , - 3383 , - 2960 , - 3461 , - 4886 , - 2307 , - 652 , - 4849 , - 114 , - 1231 , - 3272 , - 1309 , - 270 , - 155 , - 964 , - 2697 , - 426 , - 4007 , - 3584 , - 4085 , - 582 , - 2931 , - 1276 , - 545 , - 738 , - 1855 , - 3896 , - 1933 , - 894 , - 779 , - 1588 , - 3321 , - 1050 , - 4631 , - 4208 , - 4709 , - 1206 , - 3555 , - 1900 , - 1169 , - 1362 , - 2479 , - 4520 , - 2557 , - 1518 , - 1403 , - 2212 , - 3945 , - 1674 , - 327 , - 4832 , - 405 , - 1830 , - 4179 , - 2524 , - 1793 , - 1986 , - 3103 , - 216 , - 3181 , - 2142 , - 2027 , - 2836 , - 4569 , - 2298 , - 951 , - 528 , - 1029 , - 2454 , - 4803 , - 3148 , - 2417 , - 2610 , - 3727 , - 840 , - 3805 , - 2766 , - 2651 , - 3460 , - 265 , - 2922 , - 1575 , - 1152 , - 1653 , - 3078 , - 499 , - 3772 , - 3041 , - 3234 , - 4351 , - 1464 , - 4429 , - 3390 , - 3275 , - 4084 , - 889 , - 3546 , - 2199 , - 1776 , - 2277 , - 3702 , - 1123 , - 4396 , - 3665 , - 3858 , - 47 , - 2088 , - 125 , - 4014 , - 3899 , - 4708 , - 1513 , - 4170 , - 2823 , - 2400 , - 2901 , - 4326 , - 1747 , - 92 , - 4289 , - 4482 , - 671 , - 2712 , - 749 , - 4638 , - 4523 , - 404 , - 2137 , - 4794 , - 3447 , - 3024 , - 3525 , - 22 , - 2371 , - 716 , - 4913 , - 178 , - 1295 , - 3336 , - 1373 , - 334 , - 219 , - 1028 , - 2761 , - 490 , - 4071 , - 3648 , - 4149 , - 646 , - 2995 , - 1340 , - 609 , - 802 , - 1919 , - 3960 , - 1997 , - 958 , - 843 , - 1652 , - 3385 , - 1114 , - 4695 , - 4272 , - 4773 , - 1270 , - 3619 , - 1964 , - 1233 , - 1426 , - 2543 , - 4584 , - 2621 , - 1582 , - 1467 , - 2276 , - 4009 , - 1738 , - 391 , - 4896 , - 469 , - 1894 , - 4243 , - 2588 , - 1857 , - 2050 , - 3167 , - 280 , - 3245 , - 2206 , - 2091 , - 2900 , - 4633 , - 2362 , - 1015 , - 592 , - 1093 , - 2518 , - 4867 , - 3212 , - 2481 , - 2674 , - 3791 , - 904 , - 3869 , - 2830 , - 2715 , - 3524 , - 329 , - 2986 , - 1639 , - 1216 , - 1717 , - 3142 , - 563 , - 3836 , - 3105 , - 3298 , - 4415 , - 1528 , - 4493 , - 3454 , - 3339 , - 4148 , - 953 , - 3610 , - 2263 , - 1840 , - 2341 , - 3766 , - 1187 , - 4460 , - 3729 , - 3922 , - 111 , - 2152 , - 189 , - 4078 , - 3963 , - 4772 , - 1577 , - 4234 , - 2887 , - 2464 , - 2965 , - 4390 , - 1811 , - 156 , - 4353 , - 4546 , - 735 , - 2776 , - 813 , - 4702 , - 4587 , - 468 , - 2201 , - 4858 , - 3511 , - 3088 , - 3589 , - 86 , - 2435 , - 780 , - 49 , - 242 , - 1359 , - 3400 , - 1437 , - 398 , - 283 , - 1092 , - 2825 , - 554 , - 4135 , - 3712 , - 4213 , - 710 , - 3059 , - 1404 , - 673 , - 866 , - 1983 , - 4024 , - 2061 , - 1022 , - 907 , - 1716 , - 3449 , - 1178 , - 4759 , - 4336 , - 4837 , - 1334 , - 3683 , - 2028 , - 1297 , - 1490 , - 2607 , - 4648 , - 2685 , - 1646 , - 1531 , - 2340 , - 4073 , - 1802 , - 455 , - 32 , - 533 , - 1958 , - 4307 , - 2652 , - 1921 , - 2114 , - 3231 , - 344 , - 3309 , - 2270 , - 2155 , - 2964 , - 4697 , - 2426 , - 1079 , - 656 , - 1157 , - 2582 , - 3 , - 3276 , - 2545 , - 2738 , - 3855 , - 968 , - 3933 , - 2894 , - 2779 , - 3588 , - 393 , - 3050 , - 1703 , - 1280 , - 1781 , - 3206 , - 627 , - 3900 , - 3169 , - 3362 , - 4479 , - 1592 , - 4557 , - 3518 , - 3403 , - 4212 , - 1017 , - 3674 , - 2327 , - 1904 , - 2405 , - 3830 , - 1251 , - 4524 , - 3793 , - 3986 , - 175 , - 2216 , - 253 , - 4142 , - 4027 , - 4836 , - 1641 , - 4298 , - 2951 , - 2528 , - 3029 , - 4454 , - 1875 , - 220 , - 4417 , - 4610 , - 799 , - 2840 , - 877 , - 4766 , - 4651 , - 532 , - 2265 , - 4922 , - 3575 , - 3152 , - 3653 , - 150 , - 2499 , - 844 , - 113 , - 306 , - 1423 , - 3464 , - 1501 , - 462 , - 347 , - 1156 , - 2889 , - 618 , - 4199 , - 3776 , - 4277 , - 774 , - 3123 , - 1468 , - 737 , - 930 , - 2047 , - 4088 , - 2125 , - 1086 , - 971 , - 1780 , - 3513 , - 1242 , - 4823 , - 4400 , - 4901 , - 1398 , - 3747 , - 2092 , - 1361 , - 1554 , - 2671 , - 4712 , - 2749 , - 1710 , - 1595 , - 2404 , - 4137 , - 1866 , - 519 , - 96 , - 597 , - 2022 , - 4371 , - 2716 , - 1985 , - 2178 , - 3295 , - 408 , - 3373 , - 2334 , - 2219 , - 3028 , - 4761 , - 2490 , - 1143 , - 720 , - 1221 , - 2646 , - 67 , - 3340 , - 2609 , - 2802 , - 3919 , - 1032 , - 3997 , - 2958 , - 2843 , - 3652 , - 457 , - 3114 , - 1767 , - 1344 , - 1845 , - 3270 , - 691 , - 3964 , - 3233 , - 3426 , - 4543 , - 1656 , - 4621 , - 3582 , - 3467 , - 4276 , - 1081 , - 3738 , - 2391 , - 1968 , - 2469 , - 3894 , - 1315 , - 4588 , - 3857 , - 4050 , - 239 , - 2280 , - 317 , - 4206 , - 4091 , - 4900 , - 1705 , - 4362 , - 3015 , - 2592 , - 3093 , - 4518 , - 1939 , - 284 , - 4481 , - 4674 , - 863 , - 2904 , - 941 , - 4830 , - 4715 , - 596 , - 2329 , - 58 , - 3639 , - 3216 , - 3717 , - 214 , - 2563 , - 908 , - 177 , - 370 , - 1487 , - 3528 , - 1565 , - 526 , - 411 , - 1220 , - 2953 , - 682 , - 4263 , - 3840 , - 4341 , - 838 , - 3187 , - 1532 , - 801 , - 994 , - 2111 , - 4152 , - 2189 , - 1150 , - 1035 , - 1844 , - 3577 , - 1306 , - 4887 , - 4464 , - 37 , - 1462 , - 3811 , - 2156 , - 1425 , - 1618 , - 2735 , - 4776 , - 2813 , - 1774 , - 1659 , - 2468 , - 4201 , - 1930 , - 583 , - 160 , - 661 , - 2086 , - 4435 , - 2780 , - 2049 , - 2242 , - 3359 , - 472 , - 3437 , - 2398 , - 2283 , - 3092 , - 4825 , - 2554 , - 1207 , - 784 , - 1285 , - 2710 , - 131 , - 3404 , - 2673 , - 2866 , - 3983 , - 1096 , - 4061 , - 3022 , - 2907 , - 3716 , - 521 , - 3178 , - 1831 , - 1408 , - 1909 , - 3334 , - 755 , - 4028 , - 3297 , - 3490 , - 4607 , - 1720 , - 4685 , - 3646 , - 3531 , - 4340 , - 1145 , - 3802 , - 2455 , - 2032 , - 2533 , - 3958 , - 1379 , - 4652 , - 3921 , - 4114 , - 303 , - 2344 , - 381 , - 4270 , - 4155 , - 36 , - 1769 , - 4426 , - 3079 , - 2656 , - 3157 , - 4582 , - 2003 , - 348 , - 4545 , - 4738 , - 927 , - 2968 , - 1005 , - 4894 , - 4779 , - 660 , - 2393 , - 122 , - 3703 , - 3280 , - 3781 , - 278 , - 2627 , - 972 , - 241 , - 434 , - 1551 , - 3592 , - 1629 , - 590 , - 475 , - 1284 , - 3017 , - 746 , - 4327 , - 3904 , - 4405 , - 902 , - 3251 , - 1596 , - 865 , - 1058 , - 2175 , - 4216 , - 2253 , - 1214 , - 1099 , - 1908 , - 3641 , - 1370 , - 23 , - 4528 , - 101 , - 1526 , - 3875 , - 2220 , - 1489 , - 1682 , - 2799 , - 4840 , - 2877 , - 1838 , - 1723 , - 2532 , - 4265 , - 1994 , - 647 , - 224 , - 725 , - 2150 , - 4499 , - 2844 , - 2113 , - 2306 , - 3423 , - 536 , - 3501 , - 2462 , - 2347 , - 3156 , - 4889 , - 2618 , - 1271 , - 848 , - 1349 , - 2774 , - 195 , - 3468 , - 2737 , - 2930 , - 4047 , - 1160 , - 4125 , - 3086 , - 2971 , - 3780 , - 585 , - 3242 , - 1895 , - 1472 , - 1973 , - 3398 , - 819 , - 4092 , - 3361 , - 3554 , - 4671 , - 1784 , - 4749 , - 3710 , - 3595 , - 4404 , - 1209 , - 3866 , - 2519 , - 2096 , - 2597 , - 4022 , - 1443 , - 4716 , - 3985 , - 4178 , - 367 , - 2408 , - 445 , - 4334 , - 4219 , - 100 , - 1833 , - 4490 , - 3143 , - 2720 , - 3221 , - 4646 , - 2067 , - 412 , - 4609 , - 4802 , - 991 , - 3032 , - 1069 , - 30 , - 4843 , - 724 , - 2457 , - 186 , - 3767 , - 3344 , - 3845 , - 342 , - 2691 , - 1036 , - 305 , - 498 , - 1615 , - 3656 , - 1693 , - 654 , - 539 , - 1348 , - 3081 , - 810 , - 4391 , - 3968 , - 4469 , - 966 , - 3315 , - 1660 , - 929 , - 1122 , - 2239 , - 4280 , - 2317 , - 1278 , - 1163 , - 1972 , - 3705 , - 1434 , - 87 , - 4592 , - 165 , - 1590 , - 3939 , - 2284 , - 1553 , - 1746 , - 2863 , - 4904 , - 2941 , - 1902 , - 1787 , - 2596 , - 4329 , - 2058 , - 711 , - 288 , - 789 , - 2214 , - 4563 , - 2908 , - 2177 , - 2370 , - 3487 , - 600 , - 3565 , - 2526 , - 2411 , - 3220 , - 25 , - 2682 , - 1335 , - 912 , - 1413 , - 2838 , - 259 , - 3532 , - 2801 , - 2994 , - 4111 , - 1224 , - 4189 , - 3150 , - 3035 , - 3844 , - 649 , - 3306 , - 1959 , - 1536 , - 2037 , - 3462 , - 883 , - 4156 , - 3425 , - 3618 , - 4735 , - 1848 , - 4813 , - 3774 , - 3659 , - 4468 , - 1273 , - 3930 , - 2583 , - 2160 , - 2661 , - 4086 , - 1507 , - 4780 , - 4049 , - 4242 , - 431 , - 2472 , - 509 , - 4398 , - 4283 , - 164 , - 1897 , - 4554 , - 3207 , - 2784 , - 3285 , - 4710 , - 2131 , - 476 , - 4673 , - 4866 , - 1055 , - 3096 , - 1133 , - 94 , - 4907 , - 788 , - 2521 , - 250 , - 3831 , - 3408 , - 3909 , - 406 , - 2755 , - 1100 , - 369 , - 562 , - 1679 , - 3720 , - 1757 , - 718 , - 603 , - 1412 , - 3145 , - 874 , - 4455 , - 4032 , - 4533 , - 1030 , - 3379 , - 1724 , - 993 , - 1186 , - 2303 , - 4344 , - 2381 , - 1342 , - 1227 , - 2036 , - 3769 , - 1498 , - 151 , - 4656 , - 229 , - 1654 , - 4003 , - 2348 , - 1617 , - 1810 , - 2927 , - 40 , - 3005 , - 1966 , - 1851 , - 2660 , - 4393 , - 2122 , - 775 , - 352 , - 853 , - 2278 , - 4627 , - 2972 , - 2241 , - 2434 , - 3551 , - 664 , - 3629 , - 2590 , - 2475 , - 3284 , - 89 , - 2746 , - 1399 , - 976 , - 1477 , - 2902 , - 323 , - 3596 , - 2865 , - 3058 , - 4175 , - 1288 , - 4253 , - 3214 , - 3099 , - 3908 , - 713 , - 3370 , - 2023 , - 1600 , - 2101 , - 3526 , - 947 , - 4220 , - 3489 , - 3682 , - 4799 , - 1912 , - 4877 , - 3838 , - 3723 , - 4532 , - 1337 , - 3994 , - 2647 , - 2224 , - 2725 , - 4150 , - 1571 , - 4844 , - 4113 , - 4306 , - 495 , - 2536 , - 573 , - 4462 , - 4347 , - 228 , - 1961 , - 4618 , - 3271 , - 2848 , - 3349 , - 4774 , - 2195 , - 540 , - 4737 , - 2 , - 1119 , - 3160 , - 1197 , - 158 , - 43 , - 852 , - 2585 , - 314 , - 3895 , - 3472 , - 3973 , - 470 , - 2819 , - 1164 , - 433 , - 626 , - 1743 , - 3784 , - 1821 , - 782 , - 667 , - 1476 , - 3209 , - 938 , - 4519 , - 4096 , - 4597 , - 1094 , - 3443 , - 1788 , - 1057 , - 1250 , - 2367 , - 4408 , - 2445 , - 1406 , - 1291 , - 2100 , - 3833 , - 1562 , - 215 , - 4720 , - 293 , - 1718 , - 4067 , - 2412 , - 1681 , - 1874 , - 2991 , - 104 , - 3069 , - 2030 , - 1915 , - 2724 , - 4457 , - 2186 , - 839 , - 416 , - 917 , - 2342 , - 4691 , - 3036 , - 2305 , - 2498 , - 3615 , - 728 , - 3693 , - 2654 , - 2539 , - 3348 , - 153 , - 2810 , - 1463 , - 1040 , - 1541 , - 2966 , - 387 , - 3660 , - 2929 , - 3122 , - 4239 , - 1352 , - 4317 , - 3278 , - 3163 , - 3972 , - 777 , - 3434 , - 2087 , - 1664 , - 2165 , - 3590 , - 1011 , - 4284 , - 3553 , - 3746 , - 4863 , - 1976 , - 13 , - 3902 , - 3787 , - 4596 , - 1401 , - 4058 , - 2711 , - 2288 , - 2789 , - 4214 , - 1635 , - 4908 , - 4177 , - 4370 , - 559 , - 2600 , - 637 , - 4526 , - 4411 , - 292 , - 2025 , - 4682 , - 3335 , - 2912 , - 3413 , - 4838 , - 2259 , - 604 , - 4801 , - 66 , - 1183 , - 3224 , - 1261 , - 222 , - 107 , - 916 , - 2649 , - 378 , - 3959 , - 3536 , - 4037 , - 534 , - 2883 , - 1228 , - 497 , - 690 , - 1807 , - 3848 , - 1885 , - 846 , - 731 , - 1540 , - 3273 , - 1002 , - 4583 , - 4160 , - 4661 , - 1158 , - 3507 , - 1852 , - 1121 , - 1314 , - 2431 , - 4472 , - 2509 , - 1470 , - 1355 , - 2164 , - 3897 , - 1626 , - 279 , - 4784 , - 357 , - 1782 , - 4131 , - 2476 , - 1745 , - 1938 , - 3055 , - 168 , - 3133 , - 2094 , - 1979 , - 2788 , - 4521 , - 2250 , - 903 , - 480 , - 981 , - 2406 , - 4755 , - 3100 , - 2369 , - 2562 , - 3679 , - 792 , - 3757 , - 2718 , - 2603 , - 3412 , - 217 , - 2874 , - 1527 , - 1104 , - 1605 , - 3030 , - 451 , - 3724 , - 2993 , - 3186 , - 4303 , - 1416 , - 4381 , - 3342 , - 3227 , - 4036 , - 841 , - 3498 , - 2151 , - 1728 , - 2229 , - 3654 , - 1075 , - 4348 , - 3617 , - 3810 , - 4927 , - 2040 , - 77 , - 3966 , - 3851 , - 4660 , - 1465 , - 4122 , - 2775 , - 2352 , - 2853 , - 4278 , - 1699 , - 44 , - 4241 , - 4434 , - 623 , - 2664 , - 701 , - 4590 , - 4475 , - 356 , - 2089 , - 4746 , - 3399 , - 2976 , - 3477 , - 4902 , - 2323 , - 668 , - 4865 , - 130 , - 1247 , - 3288 , - 1325 , - 286 , - 171 , - 980 , - 2713 , - 442 , - 4023 , - 3600 , - 4101 , - 598 , - 2947 , - 1292 , - 561 , - 754 , - 1871 , - 3912 , - 1949 , - 910 , - 795 , - 1604 , - 3337 , - 1066 , - 4647 , - 4224 , - 4725 , - 1222 , - 3571 , - 1916 , - 1185 , - 1378 , - 2495 , - 4536 , - 2573 , - 1534 , - 1419 , - 2228 , - 3961 , - 1690 , - 343 , - 4848 , - 421 , - 1846 , - 4195 , - 2540 , - 1809 , - 2002 , - 3119 , - 232 , - 3197 , - 2158 , - 2043 , - 2852 , - 4585 , - 2314 , - 967 , - 544 , - 1045 , - 2470 , - 4819 , - 3164 , - 2433 , - 2626 , - 3743 , - 856 , - 3821 , - 2782 , - 2667 , - 3476 , - 281 , - 2938 , - 1591 , - 1168 , - 1669 , - 3094 , - 515 , - 3788 , - 3057 , - 3250 , - 4367 , - 1480 , - 4445 , - 3406 , - 3291 , - 4100 , - 905 , - 3562 , - 2215 , - 1792 , - 2293 , - 3718 , - 1139 , - 4412 , - 3681 , - 3874 , - 63 , - 2104 , - 141 , - 4030 , - 3915 , - 4724 , - 1529 , - 4186 , - 2839 , - 2416 , - 2917 , - 4342 , - 1763 , - 108 , - 4305 , - 4498 , - 687 , - 2728 , - 765 , - 4654 , - 4539 , - 420 , - 2153 , - 4810 , - 3463 , - 3040 , - 3541 , - 38 , - 2387 , - 732 , - 1 , - 194 , - 1311 , - 3352 , - 1389 , - 350 , - 235 , - 1044 , - 2777 , - 506 , - 4087 , - 3664 , - 4165 , - 662 , - 3011 , - 1356 , - 625 , - 818 , - 1935 , - 3976 , - 2013 , - 974 , - 859 , - 1668 , - 3401 , - 1130 , - 4711 , - 4288 , - 4789 , - 1286 , - 3635 , - 1980 , - 1249 , - 1442 , - 2559 , - 4600 , - 2637 , - 1598 , - 1483 , - 2292 , - 4025 , - 1754 , - 407 , - 4912 , - 485 , - 1910 , - 4259 , - 2604 , - 1873 , - 2066 , - 3183 , - 296 , - 3261 , - 2222 , - 2107 , - 2916 , - 4649 , - 2378 , - 1031 , - 608 , - 1109 , - 2534 , - 4883 , - 3228 , - 2497 , - 2690 , - 3807 , - 920 , - 3885 , - 2846 , - 2731 , - 3540 , - 345 , - 3002 , - 1655 , - 1232 , - 1733 , - 3158 , - 579 , - 3852 , - 3121 , - 3314 , - 4431 , - 1544 , - 4509 , - 3470 , - 3355 , - 4164 , - 969 , - 3626 , - 2279 , - 1856 , - 2357 , - 3782 , - 1203 , - 4476 , - 3745 , - 3938 , - 127 , - 2168 , - 205 , - 4094 , - 3979 , - 4788 , - 1593 , - 4250 , - 2903 , - 2480 , - 2981 , - 4406 , - 1827 , - 172 , - 4369 , - 4562 , - 751 , - 2792 , - 829 , - 4718 , - 4603 , - 484 , - 2217 , - 4874 , - 3527 , - 3104 , - 3605 , - 102 , - 2451 , - 796 , - 65 , - 258 , - 1375 , - 3416 , - 1453 , - 414 , - 299 , - 1108 , - 2841 , - 570 , - 4151 , - 3728 , - 4229 , - 726 , - 3075 , - 1420 , - 689 , - 882 , - 1999 , - 4040 , - 2077 , - 1038 , - 923 , - 1732 , - 3465 , - 1194 , - 4775 , - 4352 , - 4853 , - 1350 , - 3699 , - 2044 , - 1313 , - 1506 , - 2623 , - 4664 , - 2701 , - 1662 , - 1547 , - 2356 , - 4089 , - 1818 , - 471 , - 48 , - 549 , - 1974 , - 4323 , - 2668 , - 1937 , - 2130 , - 3247 , - 360 , - 3325 , - 2286 , - 2171 , - 2980 , - 4713 , - 2442 , - 1095 , - 672 , - 1173 , - 2598 , - 19 , - 3292 , - 2561 , - 2754 , - 3871 , - 984 , - 3949 , - 2910 , - 2795 , - 3604 , - 409 , - 3066 , - 1719 , - 1296 , - 1797 , - 3222 , - 643 , - 3916 , - 3185 , - 3378 , - 4495 , - 1608 , - 4573 , - 3534 , - 3419 , - 4228 , - 1033 , - 3690 , - 2343 , - 1920 , - 2421 , - 3846 , - 1267 , - 4540 , - 3809 , - 4002 , - 191 , - 2232 , - 269 , - 4158 , - 4043 , - 4852 , - 1657 , - 4314 , - 2967 , - 2544 , - 3045 , - 4470 , - 1891 , - 236 , - 4433 , - 4626 , - 815 , - 2856 , - 893 , - 4782 , - 4667 , - 548 , - 2281 , - 10 , - 3591 , - 3168 , - 3669 , - 166 , - 2515 , - 860 , - 129 , - 322 , - 1439 , - 3480 , - 1517 , - 478 , - 363 , - 1172 , - 2905 , - 634 , - 4215 , - 3792 , - 4293 , - 790 , - 3139 , - 1484 , - 753 , - 946 , - 2063 , - 4104 , - 2141 , - 1102 , - 987 , - 1796 , - 3529 , - 1258 , - 4839 , - 4416 , - 4917 , - 1414 , - 3763 , - 2108 , - 1377 , - 1570 , - 2687 , - 4728 , - 2765 , - 1726 , - 1611 , - 2420 , - 4153 , - 1882 , - 535 , - 112 , - 613 , - 2038 , - 4387 , - 2732 , - 2001 , - 2194 , - 3311 , - 424 , - 3389 , - 2350 , - 2235 , - 3044 , - 4777 , - 2506 , - 1159 , - 736 , - 1237 , - 2662 , - 83 , - 3356 , - 2625 , - 2818 , - 3935 , - 1048 , - 4013 , - 2974 , - 2859 , - 3668 , - 473 , - 3130 , - 1783 , - 1360 , - 1861 , - 3286 , - 707 , - 3980 , - 3249 , - 3442 , - 4559 , - 1672 , - 4637 , - 3598 , - 3483 , - 4292 , - 1097 , - 3754 , - 2407 , - 1984 , - 2485 , - 3910 , - 1331 , - 4604 , - 3873 , - 4066 , - 255 , - 2296 , - 333 , - 4222 , - 4107 , - 4916 , - 1721 , - 4378 , - 3031 , - 2608 , - 3109 , - 4534 , - 1955 , - 300 , - 4497 , - 4690 , - 879 , - 2920 , - 957 , - 4846 , - 4731 , - 612 , - 2345 , - 74 , - 3655 , - 3232 , - 3733 , - 230 , - 2579 , - 924 , - 193 , - 386 , - 1503 , - 3544 , - 1581 , - 542 , - 427 , - 1236 , - 2969 , - 698 , - 4279 , - 3856 , - 4357 , - 854 , - 3203 , - 1548 , - 817 , - 1010 , - 2127 , - 4168 , - 2205 , - 1166 , - 1051 , - 1860 , - 3593 , - 1322 , - 4903 , - 4480 , - 53 , - 1478 , - 3827 , - 2172 , - 1441 , - 1634 , - 2751 , - 4792 , - 2829 , - 1790 , - 1675 , - 2484 , - 4217 , - 1946 , - 599 , - 176 , - 677 , - 2102 , - 4451 , - 2796 , - 2065 , - 2258 , - 3375 , - 488 , - 3453 , - 2414 , - 2299 , - 3108 , - 4841 , - 2570 , - 1223 , - 800 , - 1301 , - 2726 , - 147 , - 3420 , - 2689 , - 2882 , - 3999 , - 1112 , - 4077 , - 3038 , - 2923 , - 3732 , - 537 , - 3194 , - 1847 , - 1424 , - 1925 , - 3350 , - 771 , - 4044 , - 3313 , - 3506 , - 4623 , - 1736 , - 4701 , - 3662 , - 3547 , - 4356 , - 1161 , - 3818 , - 2471 , - 2048 , - 2549 , - 3974 , - 1395 , - 4668 , - 3937 , - 4130 , - 319 , - 2360 , - 397 , - 4286 , - 4171 , - 52 , - 1785 , - 4442 , - 3095 , - 2672 , - 3173 , - 4598 , - 2019 , - 364 , - 4561 , - 4754 , - 943 , - 2984 , - 1021 , - 4910 , - 4795 , - 676 , - 2409 , - 138 , - 3719 , - 3296 , - 3797 , - 294 , - 2643 , - 988 , - 257 , - 450 , - 1567 , - 3608 , - 1645 , - 606 , - 491 , - 1300 , - 3033 , - 762 , - 4343 , - 3920 , - 4421 , - 918 , - 3267 , - 1612 , - 881 , - 1074 , - 2191 , - 4232 , - 2269 , - 1230 , - 1115 , - 1924 , - 3657 , - 1386 , - 39 , - 4544 , - 117 , - 1542 , - 3891 , - 2236 , - 1505 , - 1698 , - 2815 , - 4856 , - 2893 , - 1854 , - 1739 , - 2548 , - 4281 , - 2010 , - 663 , - 240 , - 741 , - 2166 , - 4515 , - 2860 , - 2129 , - 2322 , - 3439 , - 552 , - 3517 , - 2478 , - 2363 , - 3172 , - 4905 , - 2634 , - 1287 , - 864 , - 1365 , - 2790 , - 211 , - 3484 , - 2753 , - 2946 , - 4063 , - 1176 , - 4141 , - 3102 , - 2987 , - 3796 , - 601 , - 3258 , - 1911 , - 1488 , - 1989 , - 3414 , - 835 , - 4108 , - 3377 , - 3570 , - 4687 , - 1800 , - 4765 , - 3726 , - 3611 , - 4420 , - 1225 , - 3882 , - 2535 , - 2112 , - 2613 , - 4038 , - 1459 , - 4732 , - 4001 , - 4194 , - 383 , - 2424 , - 461 , - 4350 , - 4235 , - 116 , - 1849 , - 4506 , - 3159 , - 2736 , - 3237 , - 4662 , - 2083 , - 428 , - 4625 , - 4818 , - 1007 , - 3048 , - 1085 , - 46 , - 4859 , - 740 , - 2473 , - 202 , - 3783 , - 3360 , - 3861 , - 358 , - 2707 , - 1052 , - 321 , - 514 , - 1631 , - 3672 , - 1709 , - 670 , - 555 , - 1364 , - 3097 , - 826 , - 4407 , - 3984 , - 4485 , - 982 , - 3331 , - 1676 , - 945 , - 1138 , - 2255 , - 4296 , - 2333 , - 1294 , - 1179 , - 1988 , - 3721 , - 1450 , - 103 , - 4608 , - 181 , - 1606 , - 3955 , - 2300 , - 1569 , - 1762 , - 2879 , - 4920 , - 2957 , - 1918 , - 1803 , - 2612 , - 4345 , - 2074 , - 727 , - 304 , - 805 , - 2230 , - 4579 , - 2924 , - 2193 , - 2386 , - 3503 , - 616 , - 3581 , - 2542 , - 2427 , - 3236 , - 41 , - 2698 , - 1351 , - 928 , - 1429 , - 2854 , - 275 , - 3548 , - 2817 , - 3010 , - 4127 , - 1240 , - 4205 , - 3166 , - 3051 , - 3860 , - 665 , - 3322 , - 1975 , - 1552 , - 2053 , - 3478 , - 899 , - 4172 , - 3441 , - 3634 , - 4751 , - 1864 , - 4829 , - 3790 , - 3675 , - 4484 , - 1289 , - 3946 , - 2599 , - 2176 , - 2677 , - 4102 , - 1523 , - 4796 , - 4065 , - 4258 , - 447 , - 2488 , - 525 , - 4414 , - 4299 , - 180 , - 1913 , - 4570 , - 3223 , - 2800 , - 3301 , - 4726 , - 2147 , - 492 , - 4689 , - 4882 , - 1071 , - 3112 , - 1149 , - 110 , - 4923 , - 804 , - 2537 , - 266 , - 3847 , - 3424 , - 3925 , - 422 , - 2771 , - 1116 , - 385 , - 578 , - 1695 , - 3736 , - 1773 , - 734 , - 619 , - 1428 , - 3161 , - 890 , - 4471 , - 4048 , - 4549 , - 1046 , - 3395 , - 1740 , - 1009 , - 1202 , - 2319 , - 4360 , - 2397 , - 1358 , - 1243 , - 2052 , - 3785 , - 1514 , - 167 , - 4672 , - 245 , - 1670 , - 4019 , - 2364 , - 1633 , - 1826 , - 2943 , - 56 , - 3021 , - 1982 , - 1867 , - 2676 , - 4409 , - 2138 , - 791 , - 368 , - 869 , - 2294 , - 4643 , - 2988 , - 2257 , - 2450 , - 3567 , - 680 , - 3645 , - 2606 , - 2491 , - 3300 , - 105 , - 2762 , - 1415 , - 992 , - 1493 , - 2918 , - 339 , - 3612 , - 2881 , - 3074 , - 4191 , - 1304 , - 4269 , - 3230 , - 3115 , - 3924 , - 729 , - 3386 , - 2039 , - 1616 , - 2117 , - 3542 , - 963 , - 4236 , - 3505 , - 3698 , - 4815 , - 1928 , - 4893 , - 3854 , - 3739 , - 4548 , - 1353 , - 4010 , - 2663 , - 2240 , - 2741 , - 4166 , - 1587 , - 4860 , - 4129 , - 4322 , - 511 , - 2552 , - 589 , - 4478 , - 4363 , - 244 , - 1977 , - 4634 , - 3287 , - 2864 , - 3365 , - 4790 , - 2211 , - 556 , - 4753 , - 18 , - 1135 , - 3176 , - 1213 , - 174 , - 59 , - 868 , - 2601 , - 330 , - 3911 , - 3488 , - 3989 , - 486 , - 2835 , - 1180 , - 449 , - 642 , - 1759 , - 3800 , - 1837 , - 798 , - 683 , - 1492 , - 3225 , - 954 , - 4535 , - 4112 , - 4613 , - 1110 , - 3459 , - 1804 , - 1073 , - 1266 , - 2383 , - 4424 , - 2461 , - 1422 , - 1307 , - 2116 , - 3849 , - 1578 , - 231 , - 4736 , - 309 , - 1734 , - 4083 , - 2428 , - 1697 , - 1890 , - 3007 , - 120 , - 3085 , - 2046 , - 1931 , - 2740 , - 4473 , - 2202 , - 855 , - 432 , - 933 , - 2358 , - 4707 , - 3052 , - 2321 , - 2514 , - 3631 , - 744 , - 3709 , - 2670 , - 2555 , - 3364 , - 169 , - 2826 , - 1479 , - 1056 , - 1557 , - 2982 , - 403 , - 3676 , - 2945 , - 3138 , - 4255 , - 1368 , - 4333 , - 3294 , - 3179 , - 3988 , - 793 , - 3450 , - 2103 , - 1680 , - 2181 , - 3606 , - 1027 , - 4300 , - 3569 , - 3762 , - 4879 , - 1992 , - 29 , - 3918 , - 3803 , - 4612 , - 1417 , - 4074 , - 2727 , - 2304 , - 2805 , - 4230 , - 1651 , - 4924 , - 4193 , - 4386 , - 575 , - 2616 , - 653 , - 4542 , - 4427 , - 308 , - 2041 , - 4698 , - 3351 , - 2928 , - 3429 , - 4854 , - 2275 , - 620 , - 4817 , - 82 , - 1199 , - 3240 , - 1277 , - 238 , - 123 , - 932 , - 2665 , - 394 , - 3975 , - 3552 , - 4053 , - 550 , - 2899 , - 1244 , - 513 , - 706 , - 1823 , - 3864 , - 1901 , - 862 , - 747 , - 1556 , - 3289 , - 1018 , - 4599 , - 4176 , - 4677 , - 1174 , - 3523 , - 1868 , - 1137 , - 1330 , - 2447 , - 4488 , - 2525 , - 1486 , - 1371 , - 2180 , - 3913 , - 1642 , - 295 , - 4800 , - 373 , - 1798 , - 4147 , - 2492 , - 1761 , - 1954 , - 3071 , - 184 , - 3149 , - 2110 , - 1995 , - 2804 , - 4537 , - 2266 , - 919 , - 496 , - 997 , - 2422 , - 4771 , - 3116 , - 2385 , - 2578 , - 3695 , - 808 , - 3773 , - 2734 , - 2619 , - 3428 , - 233 , - 2890 , - 1543 , - 1120 , - 1621 , - 3046 , - 467 , - 3740 , - 3009 , - 3202 , - 4319 , - 1432 , - 4397 , - 3358 , - 3243 , - 4052 , - 857 , - 3514 , - 2167 , - 1744 , - 2245 , - 3670 , - 1091 , - 4364 , - 3633 , - 3826 , - 15 , - 2056 , - 93 , - 3982 , - 3867 , - 4676 , - 1481 , - 4138 , - 2791 , - 2368 , - 2869 , - 4294 , - 1715 , - 60 , - 4257 , - 4450 , - 639 , - 2680 , - 717 , - 4606 , - 4491 , - 372 , - 2105 , - 4762 , - 3415 , - 2992 , - 3493 , - 4918 , - 2339 , - 684 , - 4881 , - 146 , - 1263 , - 3304 , - 1341 , - 302 , - 187 , - 996 , - 2729 , - 458 , - 4039 , - 3616 , - 4117 , - 614 , - 2963 , - 1308 , - 577 , - 770 , - 1887 , - 3928 , - 1965 , - 926 , - 811 , - 1620 , - 3353 , - 1082 , - 4663 , - 4240 , - 4741 , - 1238 , - 3587 , - 1932 , - 1201 , - 1394 , - 2511 , - 4552 , - 2589 , - 1550 , - 1435 , - 2244 , - 3977 , - 1706 , - 359 , - 4864 , - 437 , - 1862 , - 4211 , - 2556 , - 1825 , - 2018 , - 3135 , - 248 , - 3213 , - 2174 , - 2059 , - 2868 , - 4601 , - 2330 , - 983 , - 560 , - 1061 , - 2486 , - 4835 , - 3180 , - 2449 , - 2642 , - 3759 , - 872 , - 3837 , - 2798 , - 2683 , - 3492 , - 297 , - 2954 , - 1607 , - 1184 , - 1685 , - 3110 , - 531 , - 3804 , - 3073 , - 3266 , - 4383 , - 1496 , - 4461 , - 3422 , - 3307 , - 4116 , - 921 , - 3578 , - 2231 , - 1808 , - 2309 , - 3734 , - 1155 , - 4428 , - 3697 , - 3890 , - 79 , - 2120 , - 157 , - 4046 , - 3931 , - 4740 , - 1545 , - 4202 , - 2855 , - 2432 , - 2933 , - 4358 , - 1779 , - 124 , - 4321 , - 4514 , - 703 , - 2744 , - 781 , - 4670 , - 4555 , - 436 , - 2169 , - 4826 , - 3479 , - 3056 , - 3557 , - 54 , - 2403 , - 748 , - 17 , - 210 , - 1327 , - 3368 , - 1405 , - 366 , - 251 , - 1060 , - 2793 , - 522 , - 4103 , - 3680 , - 4181 , - 678 , - 3027 , - 1372 , - 641 , - 834 , - 1951 , - 3992 , - 2029 , - 990 , - 875 , - 1684 , - 3417 , - 1146 , - 4727 , - 4304 , - 4805 , - 1302 , - 3651 , - 1996 , - 1265 , - 1458 , - 2575 , - 4616 , - 2653 , - 1614 , - 1499 , - 2308 , - 4041 , - 1770 , - 423 , - 0 , - 361 , - 1190 , - 2487 , - 4252 , - 1493 , - 4194 , - 2371 , - 1016 , - 129 , - 4702 , - 4751 , - 276 , - 1261 , - 2714 , - 4635 , - 2032 , - 4889 , - 3222 , - 2023 , - 1292 , - 1029 , - 1234 , - 1907 , - 3048 , - 4657 , - 1742 , - 4287 , - 2308 , - 797 , - 4746 , - 4171 , - 4064 , - 4425 , - 262 , - 1559 , - 3324 , - 565 , - 3266 , - 1443 , - 88 , - 4193 , - 3774 , - 3823 , - 4340 , - 333 , - 1786 , - 3707 , - 1104 , - 3961 , - 2294 , - 1095 , - 364 , - 101 , - 306 , - 979 , - 2120 , - 3729 , - 814 , - 3359 , - 1380 , - 4861 , - 3818 , - 3243 , - 3136 , - 3497 , - 4326 , - 631 , - 2396 , - 4629 , - 2338 , - 515 , - 4152 , - 3265 , - 2846 , - 2895 , - 3412 , - 4397 , - 858 , - 2779 , - 176 , - 3033 , - 1366 , - 167 , - 4428 , - 4165 , - 4370 , - 51 , - 1192 , - 2801 , - 4878 , - 2431 , - 452 , - 3933 , - 2890 , - 2315 , - 2208 , - 2569 , - 3398 , - 4695 , - 1468 , - 3701 , - 1410 , - 4579 , - 3224 , - 2337 , - 1918 , - 1967 , - 2484 , - 3469 , - 4922 , - 1851 , - 4240 , - 2105 , - 438 , - 4231 , - 3500 , - 3237 , - 3442 , - 4115 , - 264 , - 1873 , - 3950 , - 1503 , - 4516 , - 3005 , - 1962 , - 1387 , - 1280 , - 1641 , - 2470 , - 3767 , - 540 , - 2773 , - 482 , - 3651 , - 2296 , - 1409 , - 990 , - 1039 , - 1556 , - 2541 , - 3994 , - 923 , - 3312 , - 1177 , - 4502 , - 3303 , - 2572 , - 2309 , - 2514 , - 3187 , - 4328 , - 945 , - 3022 , - 575 , - 3588 , - 2077 , - 1034 , - 459 , - 352 , - 713 , - 1542 , - 2839 , - 4604 , - 1845 , - 4546 , - 2723 , - 1368 , - 481 , - 62 , - 111 , - 628 , - 1613 , - 3066 , - 4987 , - 2384 , - 249 , - 3574 , - 2375 , - 1644 , - 1381 , - 1586 , - 2259 , - 3400 , - 17 , - 2094 , - 4639 , - 2660 , - 1149 , - 106 , - 4523 , - 4416 , - 4777 , - 614 , - 1911 , - 3676 , - 917 , - 3618 , - 1795 , - 440 , - 4545 , - 4126 , - 4175 , - 4692 , - 685 , - 2138 , - 4059 , - 1456 , - 4313 , - 2646 , - 1447 , - 716 , - 453 , - 658 , - 1331 , - 2472 , - 4081 , - 1166 , - 3711 , - 1732 , - 221 , - 4170 , - 3595 , - 3488 , - 3849 , - 4678 , - 983 , - 2748 , - 4981 , - 2690 , - 867 , - 4504 , - 3617 , - 3198 , - 3247 , - 3764 , - 4749 , - 1210 , - 3131 , - 528 , - 3385 , - 1718 , - 519 , - 4780 , - 4517 , - 4722 , - 403 , - 1544 , - 3153 , - 238 , - 2783 , - 804 , - 4285 , - 3242 , - 2667 , - 2560 , - 2921 , - 3750 , - 55 , - 1820 , - 4053 , - 1762 , - 4931 , - 3576 , - 2689 , - 2270 , - 2319 , - 2836 , - 3821 , - 282 , - 2203 , - 4592 , - 2457 , - 790 , - 4583 , - 3852 , - 3589 , - 3794 , - 4467 , - 616 , - 2225 , - 4302 , - 1855 , - 4868 , - 3357 , - 2314 , - 1739 , - 1632 , - 1993 , - 2822 , - 4119 , - 892 , - 3125 , - 834 , - 4003 , - 2648 , - 1761 , - 1342 , - 1391 , - 1908 , - 2893 , - 4346 , - 1275 , - 3664 , - 1529 , - 4854 , - 3655 , - 2924 , - 2661 , - 2866 , - 3539 , - 4680 , - 1297 , - 3374 , - 927 , - 3940 , - 2429 , - 1386 , - 811 , - 704 , - 1065 , - 1894 , - 3191 , - 4956 , - 2197 , - 4898 , - 3075 , - 1720 , - 833 , - 414 , - 463 , - 980 , - 1965 , - 3418 , - 347 , - 2736 , - 601 , - 3926 , - 2727 , - 1996 , - 1733 , - 1938 , - 2611 , - 3752 , - 369 , - 2446 , - 4991 , - 3012 , - 1501 , - 458 , - 4875 , - 4768 , - 137 , - 966 , - 2263 , - 4028 , - 1269 , - 3970 , - 2147 , - 792 , - 4897 , - 4478 , - 4527 , - 52 , - 1037 , - 2490 , - 4411 , - 1808 , - 4665 , - 2998 , - 1799 , - 1068 , - 805 , - 1010 , - 1683 , - 2824 , - 4433 , - 1518 , - 4063 , - 2084 , - 573 , - 4522 , - 3947 , - 3840 , - 4201 , - 38 , - 1335 , - 3100 , - 341 , - 3042 , - 1219 , - 4856 , - 3969 , - 3550 , - 3599 , - 4116 , - 109 , - 1562 , - 3483 , - 880 , - 3737 , - 2070 , - 871 , - 140 , - 4869 , - 82 , - 755 , - 1896 , - 3505 , - 590 , - 3135 , - 1156 , - 4637 , - 3594 , - 3019 , - 2912 , - 3273 , - 4102 , - 407 , - 2172 , - 4405 , - 2114 , - 291 , - 3928 , - 3041 , - 2622 , - 2671 , - 3188 , - 4173 , - 634 , - 2555 , - 4944 , - 2809 , - 1142 , - 4935 , - 4204 , - 3941 , - 4146 , - 4819 , - 968 , - 2577 , - 4654 , - 2207 , - 228 , - 3709 , - 2666 , - 2091 , - 1984 , - 2345 , - 3174 , - 4471 , - 1244 , - 3477 , - 1186 , - 4355 , - 3000 , - 2113 , - 1694 , - 1743 , - 2260 , - 3245 , - 4698 , - 1627 , - 4016 , - 1881 , - 214 , - 4007 , - 3276 , - 3013 , - 3218 , - 3891 , - 40 , - 1649 , - 3726 , - 1279 , - 4292 , - 2781 , - 1738 , - 1163 , - 1056 , - 1417 , - 2246 , - 3543 , - 316 , - 2549 , - 258 , - 3427 , - 2072 , - 1185 , - 766 , - 815 , - 1332 , - 2317 , - 3770 , - 699 , - 3088 , - 953 , - 4278 , - 3079 , - 2348 , - 2085 , - 2290 , - 2963 , - 4104 , - 721 , - 2798 , - 351 , - 3364 , - 1853 , - 810 , - 235 , - 128 , - 489 , - 1318 , - 2615 , - 4380 , - 1621 , - 4322 , - 2499 , - 1144 , - 257 , - 4830 , - 4879 , - 404 , - 1389 , - 2842 , - 4763 , - 2160 , - 25 , - 3350 , - 2151 , - 1420 , - 1157 , - 1362 , - 2035 , - 3176 , - 4785 , - 1870 , - 4415 , - 2436 , - 925 , - 4874 , - 4299 , - 4192 , - 4553 , - 390 , - 1687 , - 3452 , - 693 , - 3394 , - 1571 , - 216 , - 4321 , - 3902 , - 3951 , - 4468 , - 461 , - 1914 , - 3835 , - 1232 , - 4089 , - 2422 , - 1223 , - 492 , - 229 , - 434 , - 1107 , - 2248 , - 3857 , - 942 , - 3487 , - 1508 , - 4989 , - 3946 , - 3371 , - 3264 , - 3625 , - 4454 , - 759 , - 2524 , - 4757 , - 2466 , - 643 , - 4280 , - 3393 , - 2974 , - 3023 , - 3540 , - 4525 , - 986 , - 2907 , - 304 , - 3161 , - 1494 , - 295 , - 4556 , - 4293 , - 4498 , - 179 , - 1320 , - 2929 , - 14 , - 2559 , - 580 , - 4061 , - 3018 , - 2443 , - 2336 , - 2697 , - 3526 , - 4823 , - 1596 , - 3829 , - 1538 , - 4707 , - 3352 , - 2465 , - 2046 , - 2095 , - 2612 , - 3597 , - 58 , - 1979 , - 4368 , - 2233 , - 566 , - 4359 , - 3628 , - 3365 , - 3570 , - 4243 , - 392 , - 2001 , - 4078 , - 1631 , - 4644 , - 3133 , - 2090 , - 1515 , - 1408 , - 1769 , - 2598 , - 3895 , - 668 , - 2901 , - 610 , - 3779 , - 2424 , - 1537 , - 1118 , - 1167 , - 1684 , - 2669 , - 4122 , - 1051 , - 3440 , - 1305 , - 4630 , - 3431 , - 2700 , - 2437 , - 2642 , - 3315 , - 4456 , - 1073 , - 3150 , - 703 , - 3716 , - 2205 , - 1162 , - 587 , - 480 , - 841 , - 1670 , - 2967 , - 4732 , - 1973 , - 4674 , - 2851 , - 1496 , - 609 , - 190 , - 239 , - 756 , - 1741 , - 3194 , - 123 , - 2512 , - 377 , - 3702 , - 2503 , - 1772 , - 1509 , - 1714 , - 2387 , - 3528 , - 145 , - 2222 , - 4767 , - 2788 , - 1277 , - 234 , - 4651 , - 4544 , - 4905 , - 742 , - 2039 , - 3804 , - 1045 , - 3746 , - 1923 , - 568 , - 4673 , - 4254 , - 4303 , - 4820 , - 813 , - 2266 , - 4187 , - 1584 , - 4441 , - 2774 , - 1575 , - 844 , - 581 , - 786 , - 1459 , - 2600 , - 4209 , - 1294 , - 3839 , - 1860 , - 349 , - 4298 , - 3723 , - 3616 , - 3977 , - 4806 , - 1111 , - 2876 , - 117 , - 2818 , - 995 , - 4632 , - 3745 , - 3326 , - 3375 , - 3892 , - 4877 , - 1338 , - 3259 , - 656 , - 3513 , - 1846 , - 647 , - 4908 , - 4645 , - 4850 , - 531 , - 1672 , - 3281 , - 366 , - 2911 , - 932 , - 4413 , - 3370 , - 2795 , - 2688 , - 3049 , - 3878 , - 183 , - 1948 , - 4181 , - 1890 , - 67 , - 3704 , - 2817 , - 2398 , - 2447 , - 2964 , - 3949 , - 410 , - 2331 , - 4720 , - 2585 , - 918 , - 4711 , - 3980 , - 3717 , - 3922 , - 4595 , - 744 , - 2353 , - 4430 , - 1983 , - 4 , - 3485 , - 2442 , - 1867 , - 1760 , - 2121 , - 2950 , - 4247 , - 1020 , - 3253 , - 962 , - 4131 , - 2776 , - 1889 , - 1470 , - 1519 , - 2036 , - 3021 , - 4474 , - 1403 , - 3792 , - 1657 , - 4982 , - 3783 , - 3052 , - 2789 , - 2994 , - 3667 , - 4808 , - 1425 , - 3502 , - 1055 , - 4068 , - 2557 , - 1514 , - 939 , - 832 , - 1193 , - 2022 , - 3319 , - 92 , - 2325 , - 34 , - 3203 , - 1848 , - 961 , - 542 , - 591 , - 1108 , - 2093 , - 3546 , - 475 , - 2864 , - 729 , - 4054 , - 2855 , - 2124 , - 1861 , - 2066 , - 2739 , - 3880 , - 497 , - 2574 , - 127 , - 3140 , - 1629 , - 586 , - 11 , - 4896 , - 265 , - 1094 , - 2391 , - 4156 , - 1397 , - 4098 , - 2275 , - 920 , - 33 , - 4606 , - 4655 , - 180 , - 1165 , - 2618 , - 4539 , - 1936 , - 4793 , - 3126 , - 1927 , - 1196 , - 933 , - 1138 , - 1811 , - 2952 , - 4561 , - 1646 , - 4191 , - 2212 , - 701 , - 4650 , - 4075 , - 3968 , - 4329 , - 166 , - 1463 , - 3228 , - 469 , - 3170 , - 1347 , - 4984 , - 4097 , - 3678 , - 3727 , - 4244 , - 237 , - 1690 , - 3611 , - 1008 , - 3865 , - 2198 , - 999 , - 268 , - 5 , - 210 , - 883 , - 2024 , - 3633 , - 718 , - 3263 , - 1284 , - 4765 , - 3722 , - 3147 , - 3040 , - 3401 , - 4230 , - 535 , - 2300 , - 4533 , - 2242 , - 419 , - 4056 , - 3169 , - 2750 , - 2799 , - 3316 , - 4301 , - 762 , - 2683 , - 80 , - 2937 , - 1270 , - 71 , - 4332 , - 4069 , - 4274 , - 4947 , - 1096 , - 2705 , - 4782 , - 2335 , - 356 , - 3837 , - 2794 , - 2219 , - 2112 , - 2473 , - 3302 , - 4599 , - 1372 , - 3605 , - 1314 , - 4483 , - 3128 , - 2241 , - 1822 , - 1871 , - 2388 , - 3373 , - 4826 , - 1755 , - 4144 , - 2009 , - 342 , - 4135 , - 3404 , - 3141 , - 3346 , - 4019 , - 168 , - 1777 , - 3854 , - 1407 , - 4420 , - 2909 , - 1866 , - 1291 , - 1184 , - 1545 , - 2374 , - 3671 , - 444 , - 2677 , - 386 , - 3555 , - 2200 , - 1313 , - 894 , - 943 , - 1460 , - 2445 , - 3898 , - 827 , - 3216 , - 1081 , - 4406 , - 3207 , - 2476 , - 2213 , - 2418 , - 3091 , - 4232 , - 849 , - 2926 , - 479 , - 3492 , - 1981 , - 938 , - 363 , - 256 , - 617 , - 1446 , - 2743 , - 4508 , - 1749 , - 4450 , - 2627 , - 1272 , - 385 , - 4958 , - 15 , - 532 , - 1517 , - 2970 , - 4891 , - 2288 , - 153 , - 3478 , - 2279 , - 1548 , - 1285 , - 1490 , - 2163 , - 3304 , - 4913 , - 1998 , - 4543 , - 2564 , - 1053 , - 10 , - 4427 , - 4320 , - 4681 , - 518 , - 1815 , - 3580 , - 821 , - 3522 , - 1699 , - 344 , - 4449 , - 4030 , - 4079 , - 4596 , - 589 , - 2042 , - 3963 , - 1360 , - 4217 , - 2550 , - 1351 , - 620 , - 357 , - 562 , - 1235 , - 2376 , - 3985 , - 1070 , - 3615 , - 1636 , - 125 , - 4074 , - 3499 , - 3392 , - 3753 , - 4582 , - 887 , - 2652 , - 4885 , - 2594 , - 771 , - 4408 , - 3521 , - 3102 , - 3151 , - 3668 , - 4653 , - 1114 , - 3035 , - 432 , - 3289 , - 1622 , - 423 , - 4684 , - 4421 , - 4626 , - 307 , - 1448 , - 3057 , - 142 , - 2687 , - 708 , - 4189 , - 3146 , - 2571 , - 2464 , - 2825 , - 3654 , - 4951 , - 1724 , - 3957 , - 1666 , - 4835 , - 3480 , - 2593 , - 2174 , - 2223 , - 2740 , - 3725 , - 186 , - 2107 , - 4496 , - 2361 , - 694 , - 4487 , - 3756 , - 3493 , - 3698 , - 4371 , - 520 , - 2129 , - 4206 , - 1759 , - 4772 , - 3261 , - 2218 , - 1643 , - 1536 , - 1897 , - 2726 , - 4023 , - 796 , - 3029 , - 738 , - 3907 , - 2552 , - 1665 , - 1246 , - 1295 , - 1812 , - 2797 , - 4250 , - 1179 , - 3568 , - 1433 , - 4758 , - 3559 , - 2828 , - 2565 , - 2770 , - 3443 , - 4584 , - 1201 , - 3278 , - 831 , - 3844 , - 2333 , - 1290 , - 715 , - 608 , - 969 , - 1798 , - 3095 , - 4860 , - 2101 , - 4802 , - 2979 , - 1624 , - 737 , - 318 , - 367 , - 884 , - 1869 , - 3322 , - 251 , - 2640 , - 505 , - 3830 , - 2631 , - 1900 , - 1637 , - 1842 , - 2515 , - 3656 , - 273 , - 2350 , - 4895 , - 2916 , - 1405 , - 362 , - 4779 , - 4672 , - 41 , - 870 , - 2167 , - 3932 , - 1173 , - 3874 , - 2051 , - 696 , - 4801 , - 4382 , - 4431 , - 4948 , - 941 , - 2394 , - 4315 , - 1712 , - 4569 , - 2902 , - 1703 , - 972 , - 709 , - 914 , - 1587 , - 2728 , - 4337 , - 1422 , - 3967 , - 1988 , - 477 , - 4426 , - 3851 , - 3744 , - 4105 , - 4934 , - 1239 , - 3004 , - 245 , - 2946 , - 1123 , - 4760 , - 3873 , - 3454 , - 3503 , - 4020 , - 13 , - 1466 , - 3387 , - 784 , - 3641 , - 1974 , - 775 , - 44 , - 4773 , - 4978 , - 659 , - 1800 , - 3409 , - 494 , - 3039 , - 1060 , - 4541 , - 3498 , - 2923 , - 2816 , - 3177 , - 4006 , - 311 , - 2076 , - 4309 , - 2018 , - 195 , - 3832 , - 2945 , - 2526 , - 2575 , - 3092 , - 4077 , - 538 , - 2459 , - 4848 , - 2713 , - 1046 , - 4839 , - 4108 , - 3845 , - 4050 , - 4723 , - 872 , - 2481 , - 4558 , - 2111 , - 132 , - 3613 , - 2570 , - 1995 , - 1888 , - 2249 , - 3078 , - 4375 , - 1148 , - 3381 , - 1090 , - 4259 , - 2904 , - 2017 , - 1598 , - 1647 , - 2164 , - 3149 , - 4602 , - 1531 , - 3920 , - 1785 , - 118 , - 3911 , - 3180 , - 2917 , - 3122 , - 3795 , - 4936 , - 1553 , - 3630 , - 1183 , - 4196 , - 2685 , - 1642 , - 1067 , - 960 , - 1321 , - 2150 , - 3447 , - 220 , - 2453 , - 162 , - 3331 , - 1976 , - 1089 , - 670 , - 719 , - 1236 , - 2221 , - 3674 , - 603 , - 2992 , - 857 , - 4182 , - 2983 , - 2252 , - 1989 , - 2194 , - 2867 , - 4008 , - 625 , - 2702 , - 255 , - 3268 , - 1757 , - 714 , - 139 , - 32 , - 393 , - 1222 , - 2519 , - 4284 , - 1525 , - 4226 , - 2403 , - 1048 , - 161 , - 4734 , - 4783 , - 308 , - 1293 , - 2746 , - 4667 , - 2064 , - 4921 , - 3254 , - 2055 , - 1324 , - 1061 , - 1266 , - 1939 , - 3080 , - 4689 , - 1774 , - 4319 , - 2340 , - 829 , - 4778 , - 4203 , - 4096 , - 4457 , - 294 , - 1591 , - 3356 , - 597 , - 3298 , - 1475 , - 120 , - 4225 , - 3806 , - 3855 , - 4372 , - 365 , - 1818 , - 3739 , - 1136 , - 3993 , - 2326 , - 1127 , - 396 , - 133 , - 338 , - 1011 , - 2152 , - 3761 , - 846 , - 3391 , - 1412 , - 4893 , - 3850 , - 3275 , - 3168 , - 3529 , - 4358 , - 663 , - 2428 , - 4661 , - 2370 , - 547 , - 4184 , - 3297 , - 2878 , - 2927 , - 3444 , - 4429 , - 890 , - 2811 , - 208 , - 3065 , - 1398 , - 199 , - 4460 , - 4197 , - 4402 , - 83 , - 1224 , - 2833 , - 4910 , - 2463 , - 484 , - 3965 , - 2922 , - 2347 , - 2240 , - 2601 , - 3430 , - 4727 , - 1500 , - 3733 , - 1442 , - 4611 , - 3256 , - 2369 , - 1950 , - 1999 , - 2516 , - 3501 , - 4954 , - 1883 , - 4272 , - 2137 , - 470 , - 4263 , - 3532 , - 3269 , - 3474 , - 4147 , - 296 , - 1905 , - 3982 , - 1535 , - 4548 , - 3037 , - 1994 , - 1419 , - 1312 , - 1673 , - 2502 , - 3799 , - 572 , - 2805 , - 514 , - 3683 , - 2328 , - 1441 , - 1022 , - 1071 , - 1588 , - 2573 , - 4026 , - 955 , - 3344 , - 1209 , - 4534 , - 3335 , - 2604 , - 2341 , - 2546 , - 3219 , - 4360 , - 977 , - 3054 , - 607 , - 3620 , - 2109 , - 1066 , - 491 , - 384 , - 745 , - 1574 , - 2871 , - 4636 , - 1877 , - 4578 , - 2755 , - 1400 , - 513 , - 94 , - 143 , - 660 , - 1645 , - 3098 , - 27 , - 2416 , - 281 , - 3606 , - 2407 , - 1676 , - 1413 , - 1618 , - 2291 , - 3432 , - 49 , - 2126 , - 4671 , - 2692 , - 1181 , - 138 , - 4555 , - 4448 , - 4809 , - 646 , - 1943 , - 3708 , - 949 , - 3650 , - 1827 , - 472 , - 4577 , - 4158 , - 4207 , - 4724 , - 717 , - 2170 , - 4091 , - 1488 , - 4345 , - 2678 , - 1479 , - 748 , - 485 , - 690 , - 1363 , - 2504 , - 4113 , - 1198 , - 3743 , - 1764 , - 253 , - 4202 , - 3627 , - 3520 , - 3881 , - 4710 , - 1015 , - 2780 , - 21 , - 2722 , - 899 , - 4536 , - 3649 , - 3230 , - 3279 , - 3796 , - 4781 , - 1242 , - 3163 , - 560 , - 3417 , - 1750 , - 551 , - 4812 , - 4549 , - 4754 , - 435 , - 1576 , - 3185 , - 270 , - 2815 , - 836 , - 4317 , - 3274 , - 2699 , - 2592 , - 2953 , - 3782 , - 87 , - 1852 , - 4085 , - 1794 , - 4963 , - 3608 , - 2721 , - 2302 , - 2351 , - 2868 , - 3853 , - 314 , - 2235 , - 4624 , - 2489 , - 822 , - 4615 , - 3884 , - 3621 , - 3826 , - 4499 , - 648 , - 2257 , - 4334 , - 1887 , - 4900 , - 3389 , - 2346 , - 1771 , - 1664 , - 2025 , - 2854 , - 4151 , - 924 , - 3157 , - 866 , - 4035 , - 2680 , - 1793 , - 1374 , - 1423 , - 1940 , - 2925 , - 4378 , - 1307 , - 3696 , - 1561 , - 4886 , - 3687 , - 2956 , - 2693 , - 2898 , - 3571 , - 4712 , - 1329 , - 3406 , - 959 , - 3972 , - 2461 , - 1418 , - 843 , - 736 , - 1097 , - 1926 , - 3223 , - 4988 , - 2229 , - 4930 , - 3107 , - 1752 , - 865 , - 446 , - 495 , - 1012 , - 1997 , - 3450 , - 379 , - 2768 , - 633 , - 3958 , - 2759 , - 2028 , - 1765 , - 1970 , - 2643 , - 3784 , - 401 , - 2478 , - 31 , - 3044 , - 1533 , - 490 , - 4907 , - 4800 , - 169 , - 998 , - 2295 , - 4060 , - 1301 , - 4002 , - 2179 , - 824 , - 4929 , - 4510 , - 4559 , - 84 , - 1069 , - 2522 , - 4443 , - 1840 , - 4697 , - 3030 , - 1831 , - 1100 , - 837 , - 1042 , - 1715 , - 2856 , - 4465 , - 1550 , - 4095 , - 2116 , - 605 , - 4554 , - 3979 , - 3872 , - 4233 , - 70 , - 1367 , - 3132 , - 373 , - 3074 , - 1251 , - 4888 , - 4001 , - 3582 , - 3631 , - 4148 , - 141 , - 1594 , - 3515 , - 912 , - 3769 , - 2102 , - 903 , - 172 , - 4901 , - 114 , - 787 , - 1928 , - 3537 , - 622 , - 3167 , - 1188 , - 4669 , - 3626 , - 3051 , - 2944 , - 3305 , - 4134 , - 439 , - 2204 , - 4437 , - 2146 , - 323 , - 3960 , - 3073 , - 2654 , - 2703 , - 3220 , - 4205 , - 666 , - 2587 , - 4976 , - 2841 , - 1174 , - 4967 , - 4236 , - 3973 , - 4178 , - 4851 , - 1000 , - 2609 , - 4686 , - 2239 , - 260 , - 3741 , - 2698 , - 2123 , - 2016 , - 2377 , - 3206 , - 4503 , - 1276 , - 3509 , - 1218 , - 4387 , - 3032 , - 2145 , - 1726 , - 1775 , - 2292 , - 3277 , - 4730 , - 1659 , - 4048 , - 1913 , - 246 , - 4039 , - 3308 , - 3045 , - 3250 , - 3923 , - 72 , - 1681 , - 3758 , - 1311 , - 4324 , - 2813 , - 1770 , - 1195 , - 1088 , - 1449 , - 2278 , - 3575 , - 348 , - 2581 , - 290 , - 3459 , - 2104 , - 1217 , - 798 , - 847 , - 1364 , - 2349 , - 3802 , - 731 , - 3120 , - 985 , - 4310 , - 3111 , - 2380 , - 2117 , - 2322 , - 2995 , - 4136 , - 753 , - 2830 , - 383 , - 3396 , - 1885 , - 842 , - 267 , - 160 , - 521 , - 1350 , - 2647 , - 4412 , - 1653 , - 4354 , - 2531 , - 1176 , - 289 , - 4862 , - 4911 , - 436 , - 1421 , - 2874 , - 4795 , - 2192 , - 57 , - 3382 , - 2183 , - 1452 , - 1189 , - 1394 , - 2067 , - 3208 , - 4817 , - 1902 , - 4447 , - 2468 , - 957 , - 4906 , - 4331 , - 4224 , - 4585 , - 422 , - 1719 , - 3484 , - 725 , - 3426 , - 1603 , - 248 , - 4353 , - 3934 , - 3983 , - 4500 , - 493 , - 1946 , - 3867 , - 1264 , - 4121 , - 2454 , - 1255 , - 524 , - 261 , - 466 , - 1139 , - 2280 , - 3889 , - 974 , - 3519 , - 1540 , - 29 , - 3978 , - 3403 , - 3296 , - 3657 , - 4486 , - 791 , - 2556 , - 4789 , - 2498 , - 675 , - 4312 , - 3425 , - 3006 , - 3055 , - 3572 , - 4557 , - 1018 , - 2939 , - 336 , - 3193 , - 1526 , - 327 , - 4588 , - 4325 , - 4530 , - 211 , - 1352 , - 2961 , - 46 , - 2591 , - 612 , - 4093 , - 3050 , - 2475 , - 2368 , - 2729 , - 3558 , - 4855 , - 1628 , - 3861 , - 1570 , - 4739 , - 3384 , - 2497 , - 2078 , - 2127 , - 2644 , - 3629 , - 90 , - 2011 , - 4400 , - 2265 , - 598 , - 4391 , - 3660 , - 3397 , - 3602 , - 4275 , - 424 , - 2033 , - 4110 , - 1663 , - 4676 , - 3165 , - 2122 , - 1547 , - 1440 , - 1801 , - 2630 , - 3927 , - 700 , - 2933 , - 642 , - 3811 , - 2456 , - 1569 , - 1150 , - 1199 , - 1716 , - 2701 , - 4154 , - 1083 , - 3472 , - 1337 , - 4662 , - 3463 , - 2732 , - 2469 , - 2674 , - 3347 , - 4488 , - 1105 , - 3182 , - 735 , - 3748 , - 2237 , - 1194 , - 619 , - 512 , - 873 , - 1702 , - 2999 , - 4764 , - 2005 , - 4706 , - 2883 , - 1528 , - 641 , - 222 , - 271 , - 788 , - 1773 , - 3226 , - 155 , - 2544 , - 409 , - 3734 , - 2535 , - 1804 , - 1541 , - 1746 , - 2419 , - 3560 , - 177 , - 2254 , - 4799 , - 2820 , - 1309 , - 266 , - 4683 , - 4576 , - 4937 , - 774 , - 2071 , - 3836 , - 1077 , - 3778 , - 1955 , - 600 , - 4705 , - 4286 , - 4335 , - 4852 , - 845 , - 2298 , - 4219 , - 1616 , - 4473 , - 2806 , - 1607 , - 876 , - 613 , - 818 , - 1491 , - 2632 , - 4241 , - 1326 , - 3871 , - 1892 , - 381 , - 4330 , - 3755 , - 3648 , - 4009 , - 4838 , - 1143 , - 2908 , - 149 , - 2850 , - 1027 , - 4664 , - 3777 , - 3358 , - 3407 , - 3924 , - 4909 , - 1370 , - 3291 , - 688 , - 3545 , - 1878 , - 679 , - 4940 , - 4677 , - 4882 , - 563 , - 1704 , - 3313 , - 398 , - 2943 , - 964 , - 4445 , - 3402 , - 2827 , - 2720 , - 3081 , - 3910 , - 215 , - 1980 , - 4213 , - 1922 , - 99 , - 3736 , - 2849 , - 2430 , - 2479 , - 2996 , - 3981 , - 442 , - 2363 , - 4752 , - 2617 , - 950 , - 4743 , - 4012 , - 3749 , - 3954 , - 4627 , - 776 , - 2385 , - 4462 , - 2015 , - 36 , - 3517 , - 2474 , - 1899 , - 1792 , - 2153 , - 2982 , - 4279 , - 1052 , - 3285 , - 994 , - 4163 , - 2808 , - 1921 , - 1502 , - 1551 , - 2068 , - 3053 , - 4506 , - 1435 , - 3824 , - 1689 , - 22 , - 3815 , - 3084 , - 2821 , - 3026 , - 3699 , - 4840 , - 1457 , - 3534 , - 1087 , - 4100 , - 2589 , - 1546 , - 971 , - 864 , - 1225 , - 2054 , - 3351 , - 124 , - 2357 , - 66 , - 3235 , - 1880 , - 993 , - 574 , - 623 , - 1140 , - 2125 , - 3578 , - 507 , - 2896 , - 761 , - 4086 , - 2887 , - 2156 , - 1893 , - 2098 , - 2771 , - 3912 , - 529 , - 2606 , - 159 , - 3172 , - 1661 , - 618 , - 43 , - 4928 , - 297 , - 1126 , - 2423 , - 4188 , - 1429 , - 4130 , - 2307 , - 952 , - 65 , - 4638 , - 4687 , - 212 , - 1197 , - 2650 , - 4571 , - 1968 , - 4825 , - 3158 , - 1959 , - 1228 , - 965 , - 1170 , - 1843 , - 2984 , - 4593 , - 1678 , - 4223 , - 2244 , - 733 , - 4682 , - 4107 , - 4000 , - 4361 , - 198 , - 1495 , - 3260 , - 501 , - 3202 , - 1379 , - 24 , - 4129 , - 3710 , - 3759 , - 4276 , - 269 , - 1722 , - 3643 , - 1040 , - 3897 , - 2230 , - 1031 , - 300 , - 37 , - 242 , - 915 , - 2056 , - 3665 , - 750 , - 3295 , - 1316 , - 4797 , - 3754 , - 3179 , - 3072 , - 3433 , - 4262 , - 567 , - 2332 , - 4565 , - 2274 , - 451 , - 4088 , - 3201 , - 2782 , - 2831 , - 3348 , - 4333 , - 794 , - 2715 , - 112 , - 2969 , - 1302 , - 103 , - 4364 , - 4101 , - 4306 , - 4979 , - 1128 , - 2737 , - 4814 , - 2367 , - 388 , - 3869 , - 2826 , - 2251 , - 2144 , - 2505 , - 3334 , - 4631 , - 1404 , - 3637 , - 1346 , - 4515 , - 3160 , - 2273 , - 1854 , - 1903 , - 2420 , - 3405 , - 4858 , - 1787 , - 4176 , - 2041 , - 374 , - 4167 , - 3436 , - 3173 , - 3378 , - 4051 , - 200 , - 1809 , - 3886 , - 1439 , - 4452 , - 2941 , - 1898 , - 1323 , - 1216 , - 1577 , - 2406 , - 3703 , - 476 , - 2709 , - 418 , - 3587 , - 2232 , - 1345 , - 926 , - 975 , - 1492 , - 2477 , - 3930 , - 859 , - 3248 , - 1113 , - 4438 , - 3239 , - 2508 , - 2245 , - 2450 , - 3123 , - 4264 , - 881 , - 2958 , - 511 , - 3524 , - 2013 , - 970 , - 395 , - 288 , - 649 , - 1478 , - 2775 , - 4540 , - 1781 , - 4482 , - 2659 , - 1304 , - 417 , - 4990 , - 47 , - 564 , - 1549 , - 3002 , - 4923 , - 2320 , - 185 , - 3510 , - 2311 , - 1580 , - 1317 , - 1522 , - 2195 , - 3336 , - 4945 , - 2030 , - 4575 , - 2596 , - 1085 , - 42 , - 4459 , - 4352 , - 4713 , - 550 , - 1847 , - 3612 , - 853 , - 3554 , - 1731 , - 376 , - 4481 , - 4062 , - 4111 , - 4628 , - 621 , - 2074 , - 3995 , - 1392 , - 4249 , - 2582 , - 1383 , - 652 , - 389 , - 594 , - 1267 , - 2408 , - 4017 , - 1102 , - 3647 , - 1668 , - 157 , - 4106 , - 3531 , - 3424 , - 3785 , - 4614 , - 919 , - 2684 , - 4917 , - 2626 , - 803 , - 4440 , - 3553 , - 3134 , - 3183 , - 3700 , - 4685 , - 1146 , - 3067 , - 464 , - 3321 , - 1654 , - 455 , - 4716 , - 4453 , - 4658 , - 339 , - 1480 , - 3089 , - 174 , - 2719 , - 740 , - 4221 , - 3178 , - 2603 , - 2496 , - 2857 , - 3686 , - 4983 , - 1756 , - 3989 , - 1698 , - 4867 , - 3512 , - 2625 , - 2206 , - 2255 , - 2772 , - 3757 , - 218 , - 2139 , - 4528 , - 2393 , - 726 , - 4519 , - 3788 , - 3525 , - 3730 , - 4403 , - 552 , - 2161 , - 4238 , - 1791 , - 4804 , - 3293 , - 2250 , - 1675 , - 1568 , - 1929 , - 2758 , - 4055 , - 828 , - 3061 , - 770 , - 3939 , - 2584 , - 1697 , - 1278 , - 1327 , - 1844 , - 2829 , - 4282 , - 1211 , - 3600 , - 1465 , - 4790 , - 3591 , - 2860 , - 2597 , - 2802 , - 3475 , - 4616 , - 1233 , - 3310 , - 863 , - 3876 , - 2365 , - 1322 , - 747 , - 640 , - 1001 , - 1830 , - 3127 , - 4892 , - 2133 , - 4834 , - 3011 , - 1656 , - 769 , - 350 , - 399 , - 916 , - 1901 , - 3354 , - 283 , - 2672 , - 537 , - 3862 , - 2663 , - 1932 , - 1669 , - 1874 , - 2547 , - 3688 , - 305 , - 2382 , - 4927 , - 2948 , - 1437 , - 394 , - 4811 , - 4704 , - 73 , - 902 , - 2199 , - 3964 , - 1205 , - 3906 , - 2083 , - 728 , - 4833 , - 4414 , - 4463 , - 4980 , - 973 , - 2426 , - 4347 , - 1744 , - 4601 , - 2934 , - 1735 , - 1004 , - 741 , - 946 , - 1619 , - 2760 , - 4369 , - 1454 , - 3999 , - 2020 , - 509 , - 4458 , - 3883 , - 3776 , - 4137 , - 4966 , - 1271 , - 3036 , - 277 , - 2978 , - 1155 , - 4792 , - 3905 , - 3486 , - 3535 , - 4052 , - 45 , - 1498 , - 3419 , - 816 , - 3673 , - 2006 , - 807 , - 76 , - 4805 , - 18 , - 691 , - 1832 , - 3441 , - 526 , - 3071 , - 1092 , - 4573 , - 3530 , - 2955 , - 2848 , - 3209 , - 4038 , - 343 , - 2108 , - 4341 , - 2050 , - 227 , - 3864 , - 2977 , - 2558 , - 2607 , - 3124 , - 4109 , - 570 , - 2491 , - 4880 , - 2745 , - 1078 , - 4871 , - 4140 , - 3877 , - 4082 , - 4755 , - 904 , - 2513 , - 4590 , - 2143 , - 164 , - 3645 , - 2602 , - 2027 , - 1920 , - 2281 , - 3110 , - 4407 , - 1180 , - 3413 , - 1122 , - 4291 , - 2936 , - 2049 , - 1630 , - 1679 , - 2196 , - 3181 , - 4634 , - 1563 , - 3952 , - 1817 , - 150 , - 3943 , - 3212 , - 2949 , - 3154 , - 3827 , - 4968 , - 1585 , - 3662 , - 1215 , - 4228 , - 2717 , - 1674 , - 1099 , - 992 , - 1353 , - 2182 , - 3479 , - 252 , - 2485 , - 194 , - 3363 , - 2008 , - 1121 , - 702 , - 751 , - 1268 , - 2253 , - 3706 , - 635 , - 3024 , - 889 , - 4214 , - 3015 , - 2284 , - 2021 , - 2226 , - 2899 , - 4040 , - 657 , - 2734 , - 287 , - 3300 , - 1789 , - 746 , - 171 , - 64 , - 425 , - 1254 , - 2551 , - 4316 , - 1557 , - 4258 , - 2435 , - 1080 , - 193 , - 4766 , - 4815 , - 340 , - 1325 , - 2778 , - 4699 , - 2096 , - 4953 , - 3286 , - 2087 , - 1356 , - 1093 , - 1298 , - 1971 , - 3112 , - 4721 , - 1806 , - 4351 , - 2372 , - 861 , - 4810 , - 4235 , - 4128 , - 4489 , - 326 , - 1623 , - 3388 , - 629 , - 3330 , - 1507 , - 152 , - 4257 , - 3838 , - 3887 , - 4404 , - 397 , - 1850 , - 3771 , - 1168 , - 4025 , - 2358 , - 1159 , - 428 , - 165 , - 370 , - 1043 , - 2184 , - 3793 , - 878 , - 3423 , - 1444 , - 4925 , - 3882 , - 3307 , - 3200 , - 3561 , - 4390 , - 695 , - 2460 , - 4693 , - 2402 , - 579 , - 4216 , - 3329 , - 2910 , - 2959 , - 3476 , - 4461 , - 922 , - 2843 , - 240 , - 3097 , - 1430 , - 231 , - 4492 , - 4229 , - 4434 , - 115 , - 1256 , - 2865 , - 4942 , - 2495 , - 516 , - 3997 , - 2954 , - 2379 , - 2272 , - 2633 , - 3462 , - 4759 , - 1532 , - 3765 , - 1474 , - 4643 , - 3288 , - 2401 , - 1982 , - 2031 , - 2548 , - 3533 , - 4986 , - 1915 , - 4304 , - 2169 , - 502 , - 4295 , - 3564 , - 3301 , - 3506 , - 4179 , - 328 , - 1937 , - 4014 , - 1567 , - 4580 , - 3069 , - 2026 , - 1451 , - 1344 , - 1705 , - 2534 , - 3831 , - 604 , - 2837 , - 546 , - 3715 , - 2360 , - 1473 , - 1054 , - 1103 , - 1620 , - 2605 , - 4058 , - 987 , - 3376 , - 1241 , - 4566 , - 3367 , - 2636 , - 2373 , - 2578 , - 3251 , - 4392 , - 1009 , - 3086 , - 639 , - 3652 , - 2141 , - 1098 , - 523 , - 416 , - 777 , - 1606 , - 2903 , - 4668 , - 1909 , - 4610 , - 2787 , - 1432 , - 545 , - 126 , - 175 , - 692 , - 1677 , - 3130 , - 59 , - 2448 , - 313 , - 3638 , - 2439 , - 1708 , - 1445 , - 1650 , - 2323 , - 3464 , - 81 , - 2158 , - 4703 , - 2724 , - 1213 , - 170 , - 4587 , - 4480 , - 4841 , - 678 , - 1975 , - 3740 , - 981 , - 3682 , - 1859 , - 504 , - 4609 , - 4190 , - 4239 , - 4756 , - 749 , - 2202 , - 4123 , - 1520 , - 4377 , - 2710 , - 1511 , - 780 , - 517 , - 722 , - 1395 , - 2536 , - 4145 , - 1230 , - 3775 , - 1796 , - 285 , - 4234 , - 3659 , - 3552 , - 3913 , - 4742 , - 1047 , - 2812 , - 53 , - 2754 , - 931 , - 4568 , - 3681 , - 3262 , - 3311 , - 3828 , - 4813 , - 1274 , - 3195 , - 592 , - 3449 , - 1782 , - 583 , - 4844 , - 4581 , - 4786 , - 467 , - 1608 , - 3217 , - 302 , - 2847 , - 868 , - 4349 , - 3306 , - 2731 , - 2624 , - 2985 , - 3814 , - 119 , - 1884 , - 4117 , - 1826 , - 3 , - 3640 , - 2753 , - 2334 , - 2383 , - 2900 , - 3885 , - 346 , - 2267 , - 4656 , - 2521 , - 854 , - 4647 , - 3916 , - 3653 , - 3858 , - 4531 , - 680 , - 2289 , - 4366 , - 1919 , - 4932 , - 3421 , - 2378 , - 1803 , - 1696 , - 2057 , - 2886 , - 4183 , - 956 , - 3189 , - 898 , - 4067 , - 2712 , - 1825 , - 1406 , - 1455 , - 1972 , - 2957 , - 4410 , - 1339 , - 3728 , - 1593 , - 4918 , - 3719 , - 2988 , - 2725 , - 2930 , - 3603 , - 4744 , - 1361 , - 3438 , - 991 , - 4004 , - 2493 , - 1450 , - 875 , - 768 , - 1129 , - 1958 , - 3255 , - 28 , - 2261 , - 4962 , - 3139 , - 1784 , - 897 , - 478 , - 527 , - 1044 , - 2029 , - 3482 , - 411 , - 2800 , - 665 , - 3990 , - 2791 , - 2060 , - 1797 , - 2002 , - 2675 , - 3816 , - 433 , - 2510 , - 63 , - 3076 , - 1565 , - 522 , - 4939 , - 4832 , - 201 , - 1030 , - 2327 , - 4092 , - 1333 , - 4034 , - 2211 , - 856 , - 4961 , - 4542 , - 4591 , - 116 , - 1101 , - 2554 , - 4475 , - 1872 , - 4729 , - 3062 , - 1863 , - 1132 , - 869 , - 1074 , - 1747 , - 2888 , - 4497 , - 1582 , - 4127 , - 2148 , - 637 , - 4586 , - 4011 , - 3904 , - 4265 , - 102 , - 1399 , - 3164 , - 405 , - 3106 , - 1283 , - 4920 , - 4033 , - 3614 , - 3663 , - 4180 , - 173 , - 1626 , - 3547 , - 944 , - 3801 , - 2134 , - 935 , - 204 , - 4933 , - 146 , - 819 , - 1960 , - 3569 , - 654 , - 3199 , - 1220 , - 4701 , - 3658 , - 3083 , - 2976 , - 3337 , - 4166 , - 471 , - 2236 , - 4469 , - 2178 , - 355 , - 3992 , - 3105 , - 2686 , - 2735 , - 3252 , - 4237 , - 698 , - 2619 , - 16 , - 2873 , - 1206 , - 7 , - 4268 , - 4005 , - 4210 , - 4883 , - 1032 , - 2641 , - 4718 , - 2271 , - 292 , - 3773 , - 2730 , - 2155 , - 2048 , - 2409 , - 3238 , - 4535 , - 1308 , - 3541 , - 1250 , - 4419 , - 3064 , - 2177 , - 1758 , - 1807 , - 2324 , - 3309 , - 4762 , - 1691 , - 4080 , - 1945 , - 278 , - 4071 , - 3340 , - 3077 , - 3282 , - 3955 , - 104 , - 1713 , - 3790 , - 1343 , - 4356 , - 2845 , - 1802 , - 1227 , - 1120 , - 1481 , - 2310 , - 3607 , - 380 , - 2613 , - 322 , - 3491 , - 2136 , - 1249 , - 830 , - 879 , - 1396 , - 2381 , - 3834 , - 763 , - 3152 , - 1017 , - 4342 , - 3143 , - 2412 , - 2149 , - 2354 , - 3027 , - 4168 , - 785 , - 2862 , - 415 , - 3428 , - 1917 , - 874 , - 299 , - 192 , - 553 , - 1382 , - 2679 , - 4444 , - 1685 , - 4386 , - 2563 , - 1208 , - 321 , - 4894 , - 4943 , - 468 , - 1453 , - 2906 , - 4827 , - 2224 , - 89 , - 3414 , - 2215 , - 1484 , - 1221 , - 1426 , - 2099 , - 3240 , - 4849 , - 1934 , - 4479 , - 2500 , - 989 , - 4938 , - 4363 , - 4256 , - 4617 , - 454 , - 1751 , - 3516 , - 757 , - 3458 , - 1635 , - 280 , - 4385 , - 3966 , - 4015 , - 4532 , - 525 , - 1978 , - 3899 , - 1296 , - 4153 , - 2486 , - 1287 , - 556 , - 293 , - 498 , - 1171 , - 2312 , - 3921 , - 1006 , - 3551 , - 1572 , - 61 , - 4010 , - 3435 , - 3328 , - 3689 , - 4518 , - 823 , - 2588 , - 4821 , - 2530 , - 707 , - 4344 , - 3457 , - 3038 , - 3087 , - 3604 , - 4589 , - 1050 , - 2971 , - 368 , - 3225 , - 1558 , - 359 , - 4620 , - 4357 , - 4562 , - 243 , - 1384 , - 2993 , - 78 , - 2623 , - 644 , - 4125 , - 3082 , - 2507 , - 2400 , - 2761 , - 3590 , - 4887 , - 1660 , - 3893 , - 1602 , - 4771 , - 3416 , - 2529 , - 2110 , - 2159 , - 2676 , - 3661 , - 122 , - 2043 , - 4432 , - 2297 , - 630 , - 4423 , - 3692 , - 3429 , - 3634 , - 4307 , - 456 , - 2065 , - 4142 , - 1695 , - 4708 , - 3197 , - 2154 , - 1579 , - 1472 , - 1833 , - 2662 , - 3959 , - 732 , - 2965 , - 674 , - 3843 , - 2488 , - 1601 , - 1182 , - 1231 , - 1748 , - 2733 , - 4186 , - 1115 , - 3504 , - 1369 , - 4694 , - 3495 , - 2764 , - 2501 , - 2706 , - 3379 , - 4520 , - 1137 , - 3214 , - 767 , - 3780 , - 2269 , - 1226 , - 651 , - 544 , - 905 , - 1734 , - 3031 , - 4796 , - 2037 , - 4738 , - 2915 , - 1560 , - 673 , - 254 , - 303 , - 820 , - 1805 , - 3258 , - 187 , - 2576 , - 441 , - 3766 , - 2567 , - 1836 , - 1573 , - 1778 , - 2451 , - 3592 , - 209 , - 2286 , - 4831 , - 2852 , - 1341 , - 298 , - 4715 , - 4608 , - 4969 , - 806 , - 2103 , - 3868 , - 1109 , - 3810 , - 1987 , - 632 , - 4737 , - 4318 , - 4367 , - 4884 , - 877 , - 2330 , - 4251 , - 1648 , - 4505 , - 2838 , - 1639 , - 908 , - 645 , - 850 , - 1523 , - 2664 , - 4273 , - 1358 , - 3903 , - 1924 , - 413 , - 4362 , - 3787 , - 3680 , - 4041 , - 4870 , - 1175 , - 2940 , - 181 , - 2882 , - 1059 , - 4696 , - 3809 , - 3390 , - 3439 , - 3956 , - 4941 , - 1402 , - 3323 , - 720 , - 3577 , - 1910 , - 711 , - 4972 , - 4709 , - 4914 , - 595 , - 1736 , - 3345 , - 430 , - 2975 , - 996 , - 4477 , - 3434 , - 2859 , - 2752 , - 3113 , - 3942 , - 247 , - 2012 , - 4245 , - 1954 , - 131 , - 3768 , - 2881 , - 2462 , - 2511 , - 3028 , - 4013 , - 474 , - 2395 , - 4784 , - 2649 , - 982 , - 4775 , - 4044 , - 3781 , - 3986 , - 4659 , - 808 , - 2417 , - 4494 , - 2047 , - 68 , - 3549 , - 2506 , - 1931 , - 1824 , - 2185 , - 3014 , - 4311 , - 1084 , - 3317 , - 1026 , - 4195 , - 2840 , - 1953 , - 1534 , - 1583 , - 2100 , - 3085 , - 4538 , - 1467 , - 3856 , - 1721 , - 54 , - 3847 , - 3116 , - 2853 , - 3058 , - 3731 , - 4872 , - 1489 , - 3566 , - 1119 , - 4132 , - 2621 , - 1578 , - 1003 , - 896 , - 1257 , - 2086 , - 3383 , - 156 , - 2389 , - 98 , - 3267 , - 1912 , - 1025 , - 606 , - 655 , - 1172 , - 2157 , - 3610 , - 539 , - 2928 , - 793 , - 4118 , - 2919 , - 2188 , - 1925 , - 2130 , - 2803 , - 3944 , - 561 , - 2638 , - 191 , - 3204 , - 1693 , - 650 , - 75 , - 4960 , - 329 , - 1158 , - 2455 , - 4220 , - 1461 , - 4162 , - 2339 , - 984 , - 97 , - 4670 , - 4719 , - 244 , - 1229 , - 2682 , - 4603 , - 2000 , - 4857 , - 3190 , - 1991 , - 1260 , - 997 , - 1202 , - 1875 , - 3016 , - 4625 , - 1710 , - 4255 , - 2276 , - 765 , - 4714 , - 4139 , - 4032 , - 4393 , - 230 , - 1527 , - 3292 , - 533 , - 3234 , - 1411 , - 56 , - 4161 , - 3742 , - 3791 , - 4308 , - 301 , - 1754 , - 3675 , - 1072 , - 3929 , - 2262 , - 1063 , - 332 , - 69 , - 274 , - 947 , - 2088 , - 3697 , - 782 , - 3327 , - 1348 , - 4829 , - 3786 , - 3211 , - 3104 , - 3465 , - 4294 , - 599 , - 2364 , - 4597 , - 2306 , - 483 , - 4120 , - 3233 , - 2814 , - 2863 , - 3380 , - 4365 , - 826 , - 2747 , - 144 , - 3001 , - 1334 , - 135 , - 4396 , - 4133 , - 4338 , - 19 , - 1160 , - 2769 , - 4846 , - 2399 , - 420 , - 3901 , - 2858 , - 2283 , - 2176 , - 2537 , - 3366 , - 4663 , - 1436 , - 3669 , - 1378 , - 4547 , - 3192 , - 2305 , - 1886 , - 1935 , - 2452 , - 3437 , - 4890 , - 1819 , - 4208 , - 2073 , - 406 , - 4199 , - 3468 , - 3205 , - 3410 , - 4083 , - 232 , - 1841 , - 3918 , - 1471 , - 4484 , - 2973 , - 1930 , - 1355 , - 1248 , - 1609 , - 2438 , - 3735 , - 508 , - 2741 , - 450 , - 3619 , - 2264 , - 1377 , - 958 , - 1007 , - 1524 , - 2509 , - 3962 , - 891 , - 3280 , - 1145 , - 4470 , - 3271 , - 2540 , - 2277 , - 2482 , - 3155 , - 4296 , - 913 , - 2990 , - 543 , - 3556 , - 2045 , - 1002 , - 427 , - 320 , - 681 , - 1510 , - 2807 , - 4572 , - 1813 , - 4514 , - 2691 , - 1336 , - 449 , - 30 , - 79 , - 596 , - 1581 , - 3034 , - 4955 , - 2352 , - 217 , - 3542 , - 2343 , - 1612 , - 1349 , - 1554 , - 2227 , - 3368 , - 4977 , - 2062 , - 4607 , - 2628 , - 1117 , - 74 , - 4491 , - 4384 , - 4745 , - 582 , - 1879 , - 3644 , - 885 , - 3586 , - 1763 , - 408 , - 4513 , - 4094 , - 4143 , - 4660 , - 653 , - 2106 , - 4027 , - 1424 , - 4281 , - 2614 , - 1415 , - 684 , - 421 , - 626 , - 1299 , - 2440 , - 4049 , - 1134 , - 3679 , - 1700 , - 189 , - 4138 , - 3563 , - 3456 , - 3817 , - 4646 , - 951 , - 2716 , - 4949 , - 2658 , - 835 , - 4472 , - 3585 , - 3166 , - 3215 , - 3732 , - 4717 , - 1178 , - 3099 , - 496 , - 3353 , - 1686 , - 487 , - 4748 , - 4485 , - 4690 , - 371 , - 1512 , - 3121 , - 206 , - 2751 , - 772 , - 4253 , - 3210 , - 2635 , - 2528 , - 2889 , - 3718 , - 23 , - 1788 , - 4021 , - 1730 , - 4899 , - 3544 , - 2657 , - 2238 , - 2287 , - 2804 , - 3789 , - 250 , - 2171 , - 4560 , - 2425 , - 758 , - 4551 , - 3820 , - 3557 , - 3762 , - 4435 , - 584 , - 2193 , - 4270 , - 1823 , - 4836 , - 3325 , - 2282 , - 1707 , - 1600 , - 1961 , - 2790 , - 4087 , - 860 , - 3093 , - 802 , - 3971 , - 2616 , - 1729 , - 1310 , - 1359 , - 1876 , - 2861 , - 4314 , - 1243 , - 3632 , - 1497 , - 4822 , - 3623 , - 2892 , - 2629 , - 2834 , - 3507 , - 4648 , - 1265 , - 3342 , - 895 , - 3908 , - 2397 , - 1354 , - 779 , - 672 , - 1033 , - 1862 , - 3159 , - 4924 , - 2165 , - 4866 , - 3043 , - 1688 , - 801 , - 382 , - 431 , - 948 , - 1933 , - 3386 , - 315 , - 2704 , - 569 , - 3894 , - 2695 , - 1964 , - 1701 , - 1906 , - 2579 , - 3720 , - 337 , - 2414 , - 4959 , - 2980 , - 1469 , - 426 , - 4843 , - 4736 , - 105 , - 934 , - 2231 , - 3996 , - 1237 , - 3938 , - 2115 , - 760 , - 4865 , - 4446 , - 4495 , - 20 , - 1005 , - 2458 , - 4379 , - 1776 , - 4633 , - 2966 , - 1767 , - 1036 , - 773 , - 978 , - 1651 , - 2792 , - 4401 , - 1486 , - 4031 , - 2052 , - 541 , - 4490 , - 3915 , - 3808 , - 4169 , - 6 , - 1303 , - 3068 , - 309 , - 3010 , - 1187 , - 4824 , - 3937 , - 3518 , - 3567 , - 4084 , - 77 , - 1530 , - 3451 , - 848 , - 3705 , - 2038 , - 839 , - 108 , - 4837 , - 50 , - 723 , - 1864 , - 3473 , - 558 , - 3103 , - 1124 , - 4605 , - 3562 , - 2987 , - 2880 , - 3241 , - 4070 , - 375 , - 2140 , - 4373 , - 2082 , - 259 , - 3896 , - 3009 , - 2590 , - 2639 , - 3156 , - 4141 , - 602 , - 2523 , - 4912 , - 2777 , - 1110 , - 4903 , - 4172 , - 3909 , - 4114 , - 4787 , - 936 , - 2545 , - 4622 , - 2175 , - 196 , - 3677 , - 2634 , - 2059 , - 1952 , - 2313 , - 3142 , - 4439 , - 1212 , - 3445 , - 1154 , - 4323 , - 2968 , - 2081 , - 1662 , - 1711 , - 2228 , - 3213 , - 4666 , - 1595 , - 3984 , - 1849 , - 182 , - 3975 , - 3244 , - 2981 , - 3186 , - 3859 , - 8 , - 1617 , - 3694 , - 1247 , - 4260 , - 2749 , - 1706 , - 1131 , - 1024 , - 1385 , - 2214 , - 3511 , - 284 , - 2517 , - 226 , - 3395 , - 2040 , - 1153 , - 734 , - 783 , - 1300 , - 2285 , - 3738 , - 667 , - 3056 , - 921 , - 4246 , - 3047 , - 2316 , - 2053 , - 2258 , - 2931 , - 4072 , - 689 , - 2766 , - 319 , - 3332 , - 1821 , - 778 , - 203 , - 96 , - 457 , - 1286 , - 2583 , - 4348 , - 1589 , - 4290 , - 2467 , - 1112 , - 225 , - 4798 , - 4847 , - 372 , - 1357 , - 2810 , - 4731 , - 2128 , - 4985 , - 3318 , - 2119 , - 1388 , - 1125 , - 1330 , - 2003 , - 3144 , - 4753 , - 1838 , - 4383 , - 2404 , - 893 , - 4842 , - 4267 , - 4160 , - 4521 , - 358 , - 1655 , - 3420 , - 661 , - 3362 , - 1539 , - 184 , - 4289 , - 3870 , - 3919 , - 4436 , - 429 , - 1882 , - 3803 , - 1200 , - 4057 , - 2390 , - 1191 , - 460 , - 197 , - 402 , - 1075 , - 2216 , - 3825 , - 910 , - 3455 , - 1476 , - 4957 , - 3914 , - 3339 , - 3232 , - 3593 , - 4422 , - 727 , - 2492 , - 4725 , - 2434 , - 611 , - 4248 , - 3361 , - 2942 , - 2991 , - 3508 , - 4493 , - 954 , - 2875 , - 272 , - 3129 , - 1462 , - 263 , - 4524 , - 4261 , - 4466 , - 147 , - 1288 , - 2897 , - 4974 , - 2527 , - 548 , - 4029 , - 2986 , - 2411 , - 2304 , - 2665 , - 3494 , - 4791 , - 1564 , - 3797 , - 1506 , - 4675 , - 3320 , - 2433 , - 2014 , - 2063 , - 2580 , - 3565 , - 26 , - 1947 , - 4336 , - 2201 , - 534 , - 4327 , - 3596 , - 3333 , - 3538 , - 4211 , - 360 , - 1969 , - 4046 , - 1599 , - 4612 , - 3101 , - 2058 , - 1483 , - 1376 , - 1737 , - 2566 , - 3863 , - 636 , - 2869 , - 578 , - 3747 , - 2392 , - 1505 , - 1086 , - 1135 , - 1652 , - 2637 , - 4090 , - 1019 , - 3408 , - 1273 , - 4598 , - 3399 , - 2668 , - 2405 , - 2610 , - 3283 , - 4424 , - 1041 , - 3118 , - 671 , - 3684 , - 2173 , - 1130 , - 555 , - 448 , - 809 , - 1638 , - 2935 , - 4700 , - 1941 , - 4642 , - 2819 , - 1464 , - 577 , - 158 , - 207 , - 724 , - 1709 , - 3162 , - 91 , - 2480 , - 345 , - 3670 , - 2471 , - 1740 , - 1477 , - 1682 , - 2355 , - 3496 , - 113 , - 2190 , - 4735 , - 2756 , - 1245 , - 202 , - 4619 , - 4512 , - 4873 , - 710 , - 2007 , - 3772 , - 1013 , - 3714 , - 1891 , - 536 , - 4641 , - 4222 , - 4271 , - 4788 , - 781 , - 2234 , - 4155 , - 1552 , - 4409 , - 2742 , - 1543 , - 812 , - 549 , - 754 , - 1427 , - 2568 , - 4177 , - 1262 , - 3807 , - 1828 , - 317 , - 4266 , - 3691 , - 3584 , - 3945 , - 4774 , - 1079 , - 2844 , - 85 , - 2786 , - 963 , - 4600 , - 3713 , - 3294 , - 3343 , - 3860 , - 4845 , - 1306 , - 3227 , - 624 , - 3481 , - 1814 , - 615 , - 4876 , - 4613 , - 4818 , - 499 , - 1640 , - 3249 , - 334 , - 2879 , - 900 , - 4381 , - 3338 , - 2763 , - 2656 , - 3017 , - 3846 , - 151 , - 1916 , - 4149 , - 1858 , - 35 , - 3672 , - 2785 , - 2366 , - 2415 , - 2932 , - 3917 , - 378 , - 2299 , - 4688 , - 2553 , - 886 , - 4679 , - 3948 , - 3685 , - 3890 , - 4563 , - 712 , - 2321 , - 4398 , - 1951 , - 4964 , - 3453 , - 2410 , - 1835 , - 1728 , - 2089 , - 2918 , - 4215 , - 988 , - 3221 , - 930 , - 4099 , - 2744 , - 1857 , - 1438 , - 1487 , - 2004 , - 2989 , - 4442 , - 1371 , - 3760 , - 1625 , - 4950 , - 3751 , - 3020 , - 2757 , - 2962 , - 3635 , - 4776 , - 1393 , - 3470 , - 1023 , - 4036 , - 2525 , - 1482 , - 907 , - 800 , - 1161 , - 1990 , - 3287 , - 60 , - 2293 , - 2 , - 3171 , - 1816 , - 929 , - 510 , - 559 , - 1076 , - 2061 , - 3514 , - 443 , - 2832 , - 697 , - 4022 , - 2823 , - 2092 , - 1829 , - 2034 , - 2707 , - 3848 , - 465 , - 2542 , - 95 , - 3108 , - 1597 , - 554 , - 4971 , - 4864 , - 233 , - 1062 , - 2359 , - 4124 , - 1365 , - 4066 , - 2243 , - 888 , - 1 , - 4574 , - 4623 , - 148 , - 1133 , - 2586 , - 4507 , - 1904 , - 4761 , - 3094 , - 1895 , - 1164 , - 901 , - 1106 , - 1779 , - 2920 , - 4529 , - 1614 , - 4159 , - 2180 , - 669 , - 4618 , - 4043 , - 3936 , - 4297 , - 134 , - 1431 , - 3196 , - 437 , - 3138 , - 1315 , - 4952 , - 4065 , - 3646 , - 3695 , - 4212 , - 205 , - 1658 , - 3579 , - 976 , - 3833 , - 2166 , - 967 , - 236 , - 4965 , - 178 , - 851 , - 1992 , - 3601 , - 686 , - 3231 , - 1252 , - 4733 , - 3690 , - 3115 , - 3008 , - 3369 , - 4198 , - 503 , - 2268 , - 4501 , - 2210 , - 387 , - 4024 , - 3137 , - 2718 , - 2767 , - 3284 , - 4269 , - 730 , - 2651 , - 48 , - 2905 , - 1238 , - 39 , - 4300 , - 4037 , - 4242 , - 4915 , - 1064 , - 2673 , - 4750 , - 2303 , - 324 , - 3805 , - 2762 , - 2187 , - 2080 , - 2441 , - 3270 , - 4567 , - 1340 , - 3573 , - 1282 , - 4451 , - 3096 , - 2209 , - 1790 , - 1839 , - 2356 , - 3341 , - 4794 , - 1723 , - 4112 , - 1977 , - 310 , - 4103 , - 3372 , - 3109 , - 3314 , - 3987 , - 136 , - 1745 , - 3822 , - 1375 , - 4388 , - 2877 , - 1834 , - 1259 , - 1152 , - 1513 , - 2342 , - 3639 , - 412 , - 2645 , - 354 , - 3523 , - 2168 , - 1281 , - 862 , - 911 , - 1428 , - 2413 , - 3866 , - 795 , - 3184 , - 1049 , - 4374 , - 3175 , - 2444 , - 2181 , - 2386 , - 3059 , - 4200 , - 817 , - 2894 , - 447 , - 3460 , - 1949 , - 906 , - 331 , - 224 , - 585 , - 1414 , - 2711 , - 4476 , - 1717 , - 4418 , - 2595 , - 1240 , - 353 , - 4926 , - 4975 , - 500 , - 1485 , - 2938 , - 4859 , - 2256 , - 121 , - 3446 , - 2247 , - 1516 , - 1253 , - 1458 , - 2131 , - 3272 , - 4881 , - 1966 , - 4511 , - 2532 , - 1021 , - 4970 , - 4395 , - 4288 , - 4649 , - 486 , - 1783 , - 3548 , - 789 , - 3490 , - 1667 , - 312 , - 4417 , - 3998 , - 4047 , - 4564 , - 557 , - 2010 , - 3931 , - 1328 , - 4185 , - 2518 , - 1319 , - 588 , - 325 , - 530 , - 1203 , - 2344 , - 3953 , - 1038 , - 3583 , - 1604 , - 93 , - 4042 , - 3467 , - 3360 , - 3721 , - 4550 , - 855 , - 2620 , - 4853 , - 2562 , - 739 , - 4376 , - 3489 , - 3070 , - 3119 , - 3636 , - 4621 , - 1082 , - 3003 , - 400 , - 3257 , - 1590 , - 391 , - 4652 , - 4389 , - 4594 , - 275 , - 1416 , - 3025 , - 110 , - 2655 , - 676 , - 4157 , - 3114 , - 2539 , - 2432 , - 2793 , - 3622 , - 4919 , - 1692 , - 3925 , - 1634 , - 4803 , - 3448 , - 2561 , - 2142 , - 2191 , - 2708 , - 3693 , - 154 , - 2075 , - 4464 , - 2329 , - 662 , - 4455 , - 3724 , - 3461 , - 3666 , - 4339 , - 488 , - 2097 , - 4174 , - 1727 , - 4740 , - 3229 , - 2186 , - 1611 , - 1504 , - 1865 , - 2694 , - 3991 , - 764 , - 2997 , - 706 , - 3875 , - 2520 , - 1633 , - 1214 , - 1263 , - 1780 , - 2765 , - 4218 , - 1147 , - 3536 , - 1401 , - 4726 , - 3527 , - 2796 , - 2533 , - 2738 , - 3411 , - 4552 , - 1169 , - 3246 , - 799 , - 3812 , - 2301 , - 1258 , - 683 , - 576 , - 937 , - 1766 , - 3063 , - 4828 , - 2069 , - 4770 , - 2947 , - 1592 , - 705 , - 286 , - 335 , - 852 , - 1837 , - 3290 , - 219 , - 2608 , - 473 , - 3798 , - 2599 , - 1868 , - 1605 , - 1810 , - 2483 , - 3624 , - 241 , - 2318 , - 4863 , - 2884 , - 1373 , - 330 , - 4747 , - 4640 , - 9 , - 838 , - 2135 , - 3900 , - 1141 , - 3842 , - 2019 , - 664 , - 4769 , - 4350 , - 4399 , - 4916 , - 909 , - 2362 , - 4283 , - 1680 , - 4537 , - 2870 , - 1671 , - 940 , - 677 , - 882 , - 1555 , - 2696 , - 4305 , - 1390 , - 3935 , - 1956 , - 445 , - 4394 , - 3819 , - 3712 , - 4073 , - 4902 , - 1207 , - 2972 , - 213 , - 2914 , - 1091 , - 4728 , - 3841 , - 3422 , - 3471 , - 3988 , - 4973 , - 1434 , - 3355 , - 752 , - 3609 , - 1942 , - 743 , - 12 , - 4741 , - 4946 , - 627 , - 1768 , - 3377 , - 462 , - 3007 , - 1028 , - 4509 , - 3466 , - 2891 , - 2784 , - 3145 , - 3974 , - 279 , - 2044 , - 4277 , - 1986 , - 163 , - 3800 , - 2913 , - 2494 , - 2543 , - 3060 , - 4045 , - 506 , - 2427 , - 4816 , - 2681 , - 1014 , - 4807 , - 4076 , - 3813 , - 4018 , - 4691 , - 840 , - 2449 , - 4526 , - 2079 , - 100 , - 3581 , - 2538 , - 1963 , - 1856 , - 2217 , - 3046 , - 4343 , - 1116 , - 3349 , - 1058 , - 4227 , - 2872 , - 1985 , - 1566 , - 1615 , - 2132 , - 3117 , - 4570 , - 1499 , - 3888 , - 1753 , - 86 , - 3879 , - 3148 , - 2885 , - 3090 , - 3763 , - 4904 , - 1521 , - 3598 , - 1151 , - 4164 , - 2653 , - 1610 , - 1035 , - 928 , - 1289 , - 2118 , - 3415 , - 188 , - 2421 , - 130 , - 3299 , - 1944 , - 1057 , - 638 , - 687 , - 1204 , - 2189 , - 3642 , - 571 , - 2960 , - 825 , - 4150 , - 2951 , - 2220 , - 1957 , - 2162 , - 2835 , - 3976 , - 593 , - 2670 , - 223 , - 3236 , - 1725 , - 682 , - 107 , - 0 , - 197 , - 710 , - 1539 , - 2684 , - 4145 , - 866 , - 2959 , - 312 , - 3037 , - 1022 , - 4379 , - 2996 , - 1929 , - 1178 , - 743 , - 624 , - 821 , - 1334 , - 2163 , - 3308 , - 4769 , - 1490 , - 3583 , - 936 , - 3661 , - 1646 , - 5003 , - 3620 , - 2553 , - 1802 , - 1367 , - 1248 , - 1445 , - 1958 , - 2787 , - 3932 , - 337 , - 2114 , - 4207 , - 1560 , - 4285 , - 2270 , - 571 , - 4244 , - 3177 , - 2426 , - 1991 , - 1872 , - 2069 , - 2582 , - 3411 , - 4556 , - 961 , - 2738 , - 4831 , - 2184 , - 4909 , - 2894 , - 1195 , - 4868 , - 3801 , - 3050 , - 2615 , - 2496 , - 2693 , - 3206 , - 4035 , - 124 , - 1585 , - 3362 , - 399 , - 2808 , - 477 , - 3518 , - 1819 , - 436 , - 4425 , - 3674 , - 3239 , - 3120 , - 3317 , - 3830 , - 4659 , - 748 , - 2209 , - 3986 , - 1023 , - 3432 , - 1101 , - 4142 , - 2443 , - 1060 , - 5049 , - 4298 , - 3863 , - 3744 , - 3941 , - 4454 , - 227 , - 1372 , - 2833 , - 4610 , - 1647 , - 4056 , - 1725 , - 4766 , - 3067 , - 1684 , - 617 , - 4922 , - 4487 , - 4368 , - 4565 , - 22 , - 851 , - 1996 , - 3457 , - 178 , - 2271 , - 4680 , - 2349 , - 334 , - 3691 , - 2308 , - 1241 , - 490 , - 55 , - 4992 , - 133 , - 646 , - 1475 , - 2620 , - 4081 , - 802 , - 2895 , - 248 , - 2973 , - 958 , - 4315 , - 2932 , - 1865 , - 1114 , - 679 , - 560 , - 757 , - 1270 , - 2099 , - 3244 , - 4705 , - 1426 , - 3519 , - 872 , - 3597 , - 1582 , - 4939 , - 3556 , - 2489 , - 1738 , - 1303 , - 1184 , - 1381 , - 1894 , - 2723 , - 3868 , - 273 , - 2050 , - 4143 , - 1496 , - 4221 , - 2206 , - 507 , - 4180 , - 3113 , - 2362 , - 1927 , - 1808 , - 2005 , - 2518 , - 3347 , - 4492 , - 897 , - 2674 , - 4767 , - 2120 , - 4845 , - 2830 , - 1131 , - 4804 , - 3737 , - 2986 , - 2551 , - 2432 , - 2629 , - 3142 , - 3971 , - 60 , - 1521 , - 3298 , - 335 , - 2744 , - 413 , - 3454 , - 1755 , - 372 , - 4361 , - 3610 , - 3175 , - 3056 , - 3253 , - 3766 , - 4595 , - 684 , - 2145 , - 3922 , - 959 , - 3368 , - 1037 , - 4078 , - 2379 , - 996 , - 4985 , - 4234 , - 3799 , - 3680 , - 3877 , - 4390 , - 163 , - 1308 , - 2769 , - 4546 , - 1583 , - 3992 , - 1661 , - 4702 , - 3003 , - 1620 , - 553 , - 4858 , - 4423 , - 4304 , - 4501 , - 5014 , - 787 , - 1932 , - 3393 , - 114 , - 2207 , - 4616 , - 2285 , - 270 , - 3627 , - 2244 , - 1177 , - 426 , - 5047 , - 4928 , - 69 , - 582 , - 1411 , - 2556 , - 4017 , - 738 , - 2831 , - 184 , - 2909 , - 894 , - 4251 , - 2868 , - 1801 , - 1050 , - 615 , - 496 , - 693 , - 1206 , - 2035 , - 3180 , - 4641 , - 1362 , - 3455 , - 808 , - 3533 , - 1518 , - 4875 , - 3492 , - 2425 , - 1674 , - 1239 , - 1120 , - 1317 , - 1830 , - 2659 , - 3804 , - 209 , - 1986 , - 4079 , - 1432 , - 4157 , - 2142 , - 443 , - 4116 , - 3049 , - 2298 , - 1863 , - 1744 , - 1941 , - 2454 , - 3283 , - 4428 , - 833 , - 2610 , - 4703 , - 2056 , - 4781 , - 2766 , - 1067 , - 4740 , - 3673 , - 2922 , - 2487 , - 2368 , - 2565 , - 3078 , - 3907 , - 5052 , - 1457 , - 3234 , - 271 , - 2680 , - 349 , - 3390 , - 1691 , - 308 , - 4297 , - 3546 , - 3111 , - 2992 , - 3189 , - 3702 , - 4531 , - 620 , - 2081 , - 3858 , - 895 , - 3304 , - 973 , - 4014 , - 2315 , - 932 , - 4921 , - 4170 , - 3735 , - 3616 , - 3813 , - 4326 , - 99 , - 1244 , - 2705 , - 4482 , - 1519 , - 3928 , - 1597 , - 4638 , - 2939 , - 1556 , - 489 , - 4794 , - 4359 , - 4240 , - 4437 , - 4950 , - 723 , - 1868 , - 3329 , - 50 , - 2143 , - 4552 , - 2221 , - 206 , - 3563 , - 2180 , - 1113 , - 362 , - 4983 , - 4864 , - 5 , - 518 , - 1347 , - 2492 , - 3953 , - 674 , - 2767 , - 120 , - 2845 , - 830 , - 4187 , - 2804 , - 1737 , - 986 , - 551 , - 432 , - 629 , - 1142 , - 1971 , - 3116 , - 4577 , - 1298 , - 3391 , - 744 , - 3469 , - 1454 , - 4811 , - 3428 , - 2361 , - 1610 , - 1175 , - 1056 , - 1253 , - 1766 , - 2595 , - 3740 , - 145 , - 1922 , - 4015 , - 1368 , - 4093 , - 2078 , - 379 , - 4052 , - 2985 , - 2234 , - 1799 , - 1680 , - 1877 , - 2390 , - 3219 , - 4364 , - 769 , - 2546 , - 4639 , - 1992 , - 4717 , - 2702 , - 1003 , - 4676 , - 3609 , - 2858 , - 2423 , - 2304 , - 2501 , - 3014 , - 3843 , - 4988 , - 1393 , - 3170 , - 207 , - 2616 , - 285 , - 3326 , - 1627 , - 244 , - 4233 , - 3482 , - 3047 , - 2928 , - 3125 , - 3638 , - 4467 , - 556 , - 2017 , - 3794 , - 831 , - 3240 , - 909 , - 3950 , - 2251 , - 868 , - 4857 , - 4106 , - 3671 , - 3552 , - 3749 , - 4262 , - 35 , - 1180 , - 2641 , - 4418 , - 1455 , - 3864 , - 1533 , - 4574 , - 2875 , - 1492 , - 425 , - 4730 , - 4295 , - 4176 , - 4373 , - 4886 , - 659 , - 1804 , - 3265 , - 5042 , - 2079 , - 4488 , - 2157 , - 142 , - 3499 , - 2116 , - 1049 , - 298 , - 4919 , - 4800 , - 4997 , - 454 , - 1283 , - 2428 , - 3889 , - 610 , - 2703 , - 56 , - 2781 , - 766 , - 4123 , - 2740 , - 1673 , - 922 , - 487 , - 368 , - 565 , - 1078 , - 1907 , - 3052 , - 4513 , - 1234 , - 3327 , - 680 , - 3405 , - 1390 , - 4747 , - 3364 , - 2297 , - 1546 , - 1111 , - 992 , - 1189 , - 1702 , - 2531 , - 3676 , - 81 , - 1858 , - 3951 , - 1304 , - 4029 , - 2014 , - 315 , - 3988 , - 2921 , - 2170 , - 1735 , - 1616 , - 1813 , - 2326 , - 3155 , - 4300 , - 705 , - 2482 , - 4575 , - 1928 , - 4653 , - 2638 , - 939 , - 4612 , - 3545 , - 2794 , - 2359 , - 2240 , - 2437 , - 2950 , - 3779 , - 4924 , - 1329 , - 3106 , - 143 , - 2552 , - 221 , - 3262 , - 1563 , - 180 , - 4169 , - 3418 , - 2983 , - 2864 , - 3061 , - 3574 , - 4403 , - 492 , - 1953 , - 3730 , - 767 , - 3176 , - 845 , - 3886 , - 2187 , - 804 , - 4793 , - 4042 , - 3607 , - 3488 , - 3685 , - 4198 , - 5027 , - 1116 , - 2577 , - 4354 , - 1391 , - 3800 , - 1469 , - 4510 , - 2811 , - 1428 , - 361 , - 4666 , - 4231 , - 4112 , - 4309 , - 4822 , - 595 , - 1740 , - 3201 , - 4978 , - 2015 , - 4424 , - 2093 , - 78 , - 3435 , - 2052 , - 985 , - 234 , - 4855 , - 4736 , - 4933 , - 390 , - 1219 , - 2364 , - 3825 , - 546 , - 2639 , - 5048 , - 2717 , - 702 , - 4059 , - 2676 , - 1609 , - 858 , - 423 , - 304 , - 501 , - 1014 , - 1843 , - 2988 , - 4449 , - 1170 , - 3263 , - 616 , - 3341 , - 1326 , - 4683 , - 3300 , - 2233 , - 1482 , - 1047 , - 928 , - 1125 , - 1638 , - 2467 , - 3612 , - 17 , - 1794 , - 3887 , - 1240 , - 3965 , - 1950 , - 251 , - 3924 , - 2857 , - 2106 , - 1671 , - 1552 , - 1749 , - 2262 , - 3091 , - 4236 , - 641 , - 2418 , - 4511 , - 1864 , - 4589 , - 2574 , - 875 , - 4548 , - 3481 , - 2730 , - 2295 , - 2176 , - 2373 , - 2886 , - 3715 , - 4860 , - 1265 , - 3042 , - 79 , - 2488 , - 157 , - 3198 , - 1499 , - 116 , - 4105 , - 3354 , - 2919 , - 2800 , - 2997 , - 3510 , - 4339 , - 428 , - 1889 , - 3666 , - 703 , - 3112 , - 781 , - 3822 , - 2123 , - 740 , - 4729 , - 3978 , - 3543 , - 3424 , - 3621 , - 4134 , - 4963 , - 1052 , - 2513 , - 4290 , - 1327 , - 3736 , - 1405 , - 4446 , - 2747 , - 1364 , - 297 , - 4602 , - 4167 , - 4048 , - 4245 , - 4758 , - 531 , - 1676 , - 3137 , - 4914 , - 1951 , - 4360 , - 2029 , - 14 , - 3371 , - 1988 , - 921 , - 170 , - 4791 , - 4672 , - 4869 , - 326 , - 1155 , - 2300 , - 3761 , - 482 , - 2575 , - 4984 , - 2653 , - 638 , - 3995 , - 2612 , - 1545 , - 794 , - 359 , - 240 , - 437 , - 950 , - 1779 , - 2924 , - 4385 , - 1106 , - 3199 , - 552 , - 3277 , - 1262 , - 4619 , - 3236 , - 2169 , - 1418 , - 983 , - 864 , - 1061 , - 1574 , - 2403 , - 3548 , - 5009 , - 1730 , - 3823 , - 1176 , - 3901 , - 1886 , - 187 , - 3860 , - 2793 , - 2042 , - 1607 , - 1488 , - 1685 , - 2198 , - 3027 , - 4172 , - 577 , - 2354 , - 4447 , - 1800 , - 4525 , - 2510 , - 811 , - 4484 , - 3417 , - 2666 , - 2231 , - 2112 , - 2309 , - 2822 , - 3651 , - 4796 , - 1201 , - 2978 , - 15 , - 2424 , - 93 , - 3134 , - 1435 , - 52 , - 4041 , - 3290 , - 2855 , - 2736 , - 2933 , - 3446 , - 4275 , - 364 , - 1825 , - 3602 , - 639 , - 3048 , - 717 , - 3758 , - 2059 , - 676 , - 4665 , - 3914 , - 3479 , - 3360 , - 3557 , - 4070 , - 4899 , - 988 , - 2449 , - 4226 , - 1263 , - 3672 , - 1341 , - 4382 , - 2683 , - 1300 , - 233 , - 4538 , - 4103 , - 3984 , - 4181 , - 4694 , - 467 , - 1612 , - 3073 , - 4850 , - 1887 , - 4296 , - 1965 , - 5006 , - 3307 , - 1924 , - 857 , - 106 , - 4727 , - 4608 , - 4805 , - 262 , - 1091 , - 2236 , - 3697 , - 418 , - 2511 , - 4920 , - 2589 , - 574 , - 3931 , - 2548 , - 1481 , - 730 , - 295 , - 176 , - 373 , - 886 , - 1715 , - 2860 , - 4321 , - 1042 , - 3135 , - 488 , - 3213 , - 1198 , - 4555 , - 3172 , - 2105 , - 1354 , - 919 , - 800 , - 997 , - 1510 , - 2339 , - 3484 , - 4945 , - 1666 , - 3759 , - 1112 , - 3837 , - 1822 , - 123 , - 3796 , - 2729 , - 1978 , - 1543 , - 1424 , - 1621 , - 2134 , - 2963 , - 4108 , - 513 , - 2290 , - 4383 , - 1736 , - 4461 , - 2446 , - 747 , - 4420 , - 3353 , - 2602 , - 2167 , - 2048 , - 2245 , - 2758 , - 3587 , - 4732 , - 1137 , - 2914 , - 5007 , - 2360 , - 29 , - 3070 , - 1371 , - 5044 , - 3977 , - 3226 , - 2791 , - 2672 , - 2869 , - 3382 , - 4211 , - 300 , - 1761 , - 3538 , - 575 , - 2984 , - 653 , - 3694 , - 1995 , - 612 , - 4601 , - 3850 , - 3415 , - 3296 , - 3493 , - 4006 , - 4835 , - 924 , - 2385 , - 4162 , - 1199 , - 3608 , - 1277 , - 4318 , - 2619 , - 1236 , - 169 , - 4474 , - 4039 , - 3920 , - 4117 , - 4630 , - 403 , - 1548 , - 3009 , - 4786 , - 1823 , - 4232 , - 1901 , - 4942 , - 3243 , - 1860 , - 793 , - 42 , - 4663 , - 4544 , - 4741 , - 198 , - 1027 , - 2172 , - 3633 , - 354 , - 2447 , - 4856 , - 2525 , - 510 , - 3867 , - 2484 , - 1417 , - 666 , - 231 , - 112 , - 309 , - 822 , - 1651 , - 2796 , - 4257 , - 978 , - 3071 , - 424 , - 3149 , - 1134 , - 4491 , - 3108 , - 2041 , - 1290 , - 855 , - 736 , - 933 , - 1446 , - 2275 , - 3420 , - 4881 , - 1602 , - 3695 , - 1048 , - 3773 , - 1758 , - 59 , - 3732 , - 2665 , - 1914 , - 1479 , - 1360 , - 1557 , - 2070 , - 2899 , - 4044 , - 449 , - 2226 , - 4319 , - 1672 , - 4397 , - 2382 , - 683 , - 4356 , - 3289 , - 2538 , - 2103 , - 1984 , - 2181 , - 2694 , - 3523 , - 4668 , - 1073 , - 2850 , - 4943 , - 2296 , - 5021 , - 3006 , - 1307 , - 4980 , - 3913 , - 3162 , - 2727 , - 2608 , - 2805 , - 3318 , - 4147 , - 236 , - 1697 , - 3474 , - 511 , - 2920 , - 589 , - 3630 , - 1931 , - 548 , - 4537 , - 3786 , - 3351 , - 3232 , - 3429 , - 3942 , - 4771 , - 860 , - 2321 , - 4098 , - 1135 , - 3544 , - 1213 , - 4254 , - 2555 , - 1172 , - 105 , - 4410 , - 3975 , - 3856 , - 4053 , - 4566 , - 339 , - 1484 , - 2945 , - 4722 , - 1759 , - 4168 , - 1837 , - 4878 , - 3179 , - 1796 , - 729 , - 5034 , - 4599 , - 4480 , - 4677 , - 134 , - 963 , - 2108 , - 3569 , - 290 , - 2383 , - 4792 , - 2461 , - 446 , - 3803 , - 2420 , - 1353 , - 602 , - 167 , - 48 , - 245 , - 758 , - 1587 , - 2732 , - 4193 , - 914 , - 3007 , - 360 , - 3085 , - 1070 , - 4427 , - 3044 , - 1977 , - 1226 , - 791 , - 672 , - 869 , - 1382 , - 2211 , - 3356 , - 4817 , - 1538 , - 3631 , - 984 , - 3709 , - 1694 , - 5051 , - 3668 , - 2601 , - 1850 , - 1415 , - 1296 , - 1493 , - 2006 , - 2835 , - 3980 , - 385 , - 2162 , - 4255 , - 1608 , - 4333 , - 2318 , - 619 , - 4292 , - 3225 , - 2474 , - 2039 , - 1920 , - 2117 , - 2630 , - 3459 , - 4604 , - 1009 , - 2786 , - 4879 , - 2232 , - 4957 , - 2942 , - 1243 , - 4916 , - 3849 , - 3098 , - 2663 , - 2544 , - 2741 , - 3254 , - 4083 , - 172 , - 1633 , - 3410 , - 447 , - 2856 , - 525 , - 3566 , - 1867 , - 484 , - 4473 , - 3722 , - 3287 , - 3168 , - 3365 , - 3878 , - 4707 , - 796 , - 2257 , - 4034 , - 1071 , - 3480 , - 1149 , - 4190 , - 2491 , - 1108 , - 41 , - 4346 , - 3911 , - 3792 , - 3989 , - 4502 , - 275 , - 1420 , - 2881 , - 4658 , - 1695 , - 4104 , - 1773 , - 4814 , - 3115 , - 1732 , - 665 , - 4970 , - 4535 , - 4416 , - 4613 , - 70 , - 899 , - 2044 , - 3505 , - 226 , - 2319 , - 4728 , - 2397 , - 382 , - 3739 , - 2356 , - 1289 , - 538 , - 103 , - 5040 , - 181 , - 694 , - 1523 , - 2668 , - 4129 , - 850 , - 2943 , - 296 , - 3021 , - 1006 , - 4363 , - 2980 , - 1913 , - 1162 , - 727 , - 608 , - 805 , - 1318 , - 2147 , - 3292 , - 4753 , - 1474 , - 3567 , - 920 , - 3645 , - 1630 , - 4987 , - 3604 , - 2537 , - 1786 , - 1351 , - 1232 , - 1429 , - 1942 , - 2771 , - 3916 , - 321 , - 2098 , - 4191 , - 1544 , - 4269 , - 2254 , - 555 , - 4228 , - 3161 , - 2410 , - 1975 , - 1856 , - 2053 , - 2566 , - 3395 , - 4540 , - 945 , - 2722 , - 4815 , - 2168 , - 4893 , - 2878 , - 1179 , - 4852 , - 3785 , - 3034 , - 2599 , - 2480 , - 2677 , - 3190 , - 4019 , - 108 , - 1569 , - 3346 , - 383 , - 2792 , - 461 , - 3502 , - 1803 , - 420 , - 4409 , - 3658 , - 3223 , - 3104 , - 3301 , - 3814 , - 4643 , - 732 , - 2193 , - 3970 , - 1007 , - 3416 , - 1085 , - 4126 , - 2427 , - 1044 , - 5033 , - 4282 , - 3847 , - 3728 , - 3925 , - 4438 , - 211 , - 1356 , - 2817 , - 4594 , - 1631 , - 4040 , - 1709 , - 4750 , - 3051 , - 1668 , - 601 , - 4906 , - 4471 , - 4352 , - 4549 , - 6 , - 835 , - 1980 , - 3441 , - 162 , - 2255 , - 4664 , - 2333 , - 318 , - 3675 , - 2292 , - 1225 , - 474 , - 39 , - 4976 , - 117 , - 630 , - 1459 , - 2604 , - 4065 , - 786 , - 2879 , - 232 , - 2957 , - 942 , - 4299 , - 2916 , - 1849 , - 1098 , - 663 , - 544 , - 741 , - 1254 , - 2083 , - 3228 , - 4689 , - 1410 , - 3503 , - 856 , - 3581 , - 1566 , - 4923 , - 3540 , - 2473 , - 1722 , - 1287 , - 1168 , - 1365 , - 1878 , - 2707 , - 3852 , - 257 , - 2034 , - 4127 , - 1480 , - 4205 , - 2190 , - 491 , - 4164 , - 3097 , - 2346 , - 1911 , - 1792 , - 1989 , - 2502 , - 3331 , - 4476 , - 881 , - 2658 , - 4751 , - 2104 , - 4829 , - 2814 , - 1115 , - 4788 , - 3721 , - 2970 , - 2535 , - 2416 , - 2613 , - 3126 , - 3955 , - 44 , - 1505 , - 3282 , - 319 , - 2728 , - 397 , - 3438 , - 1739 , - 356 , - 4345 , - 3594 , - 3159 , - 3040 , - 3237 , - 3750 , - 4579 , - 668 , - 2129 , - 3906 , - 943 , - 3352 , - 1021 , - 4062 , - 2363 , - 980 , - 4969 , - 4218 , - 3783 , - 3664 , - 3861 , - 4374 , - 147 , - 1292 , - 2753 , - 4530 , - 1567 , - 3976 , - 1645 , - 4686 , - 2987 , - 1604 , - 537 , - 4842 , - 4407 , - 4288 , - 4485 , - 4998 , - 771 , - 1916 , - 3377 , - 98 , - 2191 , - 4600 , - 2269 , - 254 , - 3611 , - 2228 , - 1161 , - 410 , - 5031 , - 4912 , - 53 , - 566 , - 1395 , - 2540 , - 4001 , - 722 , - 2815 , - 168 , - 2893 , - 878 , - 4235 , - 2852 , - 1785 , - 1034 , - 599 , - 480 , - 677 , - 1190 , - 2019 , - 3164 , - 4625 , - 1346 , - 3439 , - 792 , - 3517 , - 1502 , - 4859 , - 3476 , - 2409 , - 1658 , - 1223 , - 1104 , - 1301 , - 1814 , - 2643 , - 3788 , - 193 , - 1970 , - 4063 , - 1416 , - 4141 , - 2126 , - 427 , - 4100 , - 3033 , - 2282 , - 1847 , - 1728 , - 1925 , - 2438 , - 3267 , - 4412 , - 817 , - 2594 , - 4687 , - 2040 , - 4765 , - 2750 , - 1051 , - 4724 , - 3657 , - 2906 , - 2471 , - 2352 , - 2549 , - 3062 , - 3891 , - 5036 , - 1441 , - 3218 , - 255 , - 2664 , - 333 , - 3374 , - 1675 , - 292 , - 4281 , - 3530 , - 3095 , - 2976 , - 3173 , - 3686 , - 4515 , - 604 , - 2065 , - 3842 , - 879 , - 3288 , - 957 , - 3998 , - 2299 , - 916 , - 4905 , - 4154 , - 3719 , - 3600 , - 3797 , - 4310 , - 83 , - 1228 , - 2689 , - 4466 , - 1503 , - 3912 , - 1581 , - 4622 , - 2923 , - 1540 , - 473 , - 4778 , - 4343 , - 4224 , - 4421 , - 4934 , - 707 , - 1852 , - 3313 , - 34 , - 2127 , - 4536 , - 2205 , - 190 , - 3547 , - 2164 , - 1097 , - 346 , - 4967 , - 4848 , - 5045 , - 502 , - 1331 , - 2476 , - 3937 , - 658 , - 2751 , - 104 , - 2829 , - 814 , - 4171 , - 2788 , - 1721 , - 970 , - 535 , - 416 , - 613 , - 1126 , - 1955 , - 3100 , - 4561 , - 1282 , - 3375 , - 728 , - 3453 , - 1438 , - 4795 , - 3412 , - 2345 , - 1594 , - 1159 , - 1040 , - 1237 , - 1750 , - 2579 , - 3724 , - 129 , - 1906 , - 3999 , - 1352 , - 4077 , - 2062 , - 363 , - 4036 , - 2969 , - 2218 , - 1783 , - 1664 , - 1861 , - 2374 , - 3203 , - 4348 , - 753 , - 2530 , - 4623 , - 1976 , - 4701 , - 2686 , - 987 , - 4660 , - 3593 , - 2842 , - 2407 , - 2288 , - 2485 , - 2998 , - 3827 , - 4972 , - 1377 , - 3154 , - 191 , - 2600 , - 269 , - 3310 , - 1611 , - 228 , - 4217 , - 3466 , - 3031 , - 2912 , - 3109 , - 3622 , - 4451 , - 540 , - 2001 , - 3778 , - 815 , - 3224 , - 893 , - 3934 , - 2235 , - 852 , - 4841 , - 4090 , - 3655 , - 3536 , - 3733 , - 4246 , - 19 , - 1164 , - 2625 , - 4402 , - 1439 , - 3848 , - 1517 , - 4558 , - 2859 , - 1476 , - 409 , - 4714 , - 4279 , - 4160 , - 4357 , - 4870 , - 643 , - 1788 , - 3249 , - 5026 , - 2063 , - 4472 , - 2141 , - 126 , - 3483 , - 2100 , - 1033 , - 282 , - 4903 , - 4784 , - 4981 , - 438 , - 1267 , - 2412 , - 3873 , - 594 , - 2687 , - 40 , - 2765 , - 750 , - 4107 , - 2724 , - 1657 , - 906 , - 471 , - 352 , - 549 , - 1062 , - 1891 , - 3036 , - 4497 , - 1218 , - 3311 , - 664 , - 3389 , - 1374 , - 4731 , - 3348 , - 2281 , - 1530 , - 1095 , - 976 , - 1173 , - 1686 , - 2515 , - 3660 , - 65 , - 1842 , - 3935 , - 1288 , - 4013 , - 1998 , - 299 , - 3972 , - 2905 , - 2154 , - 1719 , - 1600 , - 1797 , - 2310 , - 3139 , - 4284 , - 689 , - 2466 , - 4559 , - 1912 , - 4637 , - 2622 , - 923 , - 4596 , - 3529 , - 2778 , - 2343 , - 2224 , - 2421 , - 2934 , - 3763 , - 4908 , - 1313 , - 3090 , - 127 , - 2536 , - 205 , - 3246 , - 1547 , - 164 , - 4153 , - 3402 , - 2967 , - 2848 , - 3045 , - 3558 , - 4387 , - 476 , - 1937 , - 3714 , - 751 , - 3160 , - 829 , - 3870 , - 2171 , - 788 , - 4777 , - 4026 , - 3591 , - 3472 , - 3669 , - 4182 , - 5011 , - 1100 , - 2561 , - 4338 , - 1375 , - 3784 , - 1453 , - 4494 , - 2795 , - 1412 , - 345 , - 4650 , - 4215 , - 4096 , - 4293 , - 4806 , - 579 , - 1724 , - 3185 , - 4962 , - 1999 , - 4408 , - 2077 , - 62 , - 3419 , - 2036 , - 969 , - 218 , - 4839 , - 4720 , - 4917 , - 374 , - 1203 , - 2348 , - 3809 , - 530 , - 2623 , - 5032 , - 2701 , - 686 , - 4043 , - 2660 , - 1593 , - 842 , - 407 , - 288 , - 485 , - 998 , - 1827 , - 2972 , - 4433 , - 1154 , - 3247 , - 600 , - 3325 , - 1310 , - 4667 , - 3284 , - 2217 , - 1466 , - 1031 , - 912 , - 1109 , - 1622 , - 2451 , - 3596 , - 1 , - 1778 , - 3871 , - 1224 , - 3949 , - 1934 , - 235 , - 3908 , - 2841 , - 2090 , - 1655 , - 1536 , - 1733 , - 2246 , - 3075 , - 4220 , - 625 , - 2402 , - 4495 , - 1848 , - 4573 , - 2558 , - 859 , - 4532 , - 3465 , - 2714 , - 2279 , - 2160 , - 2357 , - 2870 , - 3699 , - 4844 , - 1249 , - 3026 , - 63 , - 2472 , - 141 , - 3182 , - 1483 , - 100 , - 4089 , - 3338 , - 2903 , - 2784 , - 2981 , - 3494 , - 4323 , - 412 , - 1873 , - 3650 , - 687 , - 3096 , - 765 , - 3806 , - 2107 , - 724 , - 4713 , - 3962 , - 3527 , - 3408 , - 3605 , - 4118 , - 4947 , - 1036 , - 2497 , - 4274 , - 1311 , - 3720 , - 1389 , - 4430 , - 2731 , - 1348 , - 281 , - 4586 , - 4151 , - 4032 , - 4229 , - 4742 , - 515 , - 1660 , - 3121 , - 4898 , - 1935 , - 4344 , - 2013 , - 5054 , - 3355 , - 1972 , - 905 , - 154 , - 4775 , - 4656 , - 4853 , - 310 , - 1139 , - 2284 , - 3745 , - 466 , - 2559 , - 4968 , - 2637 , - 622 , - 3979 , - 2596 , - 1529 , - 778 , - 343 , - 224 , - 421 , - 934 , - 1763 , - 2908 , - 4369 , - 1090 , - 3183 , - 536 , - 3261 , - 1246 , - 4603 , - 3220 , - 2153 , - 1402 , - 967 , - 848 , - 1045 , - 1558 , - 2387 , - 3532 , - 4993 , - 1714 , - 3807 , - 1160 , - 3885 , - 1870 , - 171 , - 3844 , - 2777 , - 2026 , - 1591 , - 1472 , - 1669 , - 2182 , - 3011 , - 4156 , - 561 , - 2338 , - 4431 , - 1784 , - 4509 , - 2494 , - 795 , - 4468 , - 3401 , - 2650 , - 2215 , - 2096 , - 2293 , - 2806 , - 3635 , - 4780 , - 1185 , - 2962 , - 5055 , - 2408 , - 77 , - 3118 , - 1419 , - 36 , - 4025 , - 3274 , - 2839 , - 2720 , - 2917 , - 3430 , - 4259 , - 348 , - 1809 , - 3586 , - 623 , - 3032 , - 701 , - 3742 , - 2043 , - 660 , - 4649 , - 3898 , - 3463 , - 3344 , - 3541 , - 4054 , - 4883 , - 972 , - 2433 , - 4210 , - 1247 , - 3656 , - 1325 , - 4366 , - 2667 , - 1284 , - 217 , - 4522 , - 4087 , - 3968 , - 4165 , - 4678 , - 451 , - 1596 , - 3057 , - 4834 , - 1871 , - 4280 , - 1949 , - 4990 , - 3291 , - 1908 , - 841 , - 90 , - 4711 , - 4592 , - 4789 , - 246 , - 1075 , - 2220 , - 3681 , - 402 , - 2495 , - 4904 , - 2573 , - 558 , - 3915 , - 2532 , - 1465 , - 714 , - 279 , - 160 , - 357 , - 870 , - 1699 , - 2844 , - 4305 , - 1026 , - 3119 , - 472 , - 3197 , - 1182 , - 4539 , - 3156 , - 2089 , - 1338 , - 903 , - 784 , - 981 , - 1494 , - 2323 , - 3468 , - 4929 , - 1650 , - 3743 , - 1096 , - 3821 , - 1806 , - 107 , - 3780 , - 2713 , - 1962 , - 1527 , - 1408 , - 1605 , - 2118 , - 2947 , - 4092 , - 497 , - 2274 , - 4367 , - 1720 , - 4445 , - 2430 , - 731 , - 4404 , - 3337 , - 2586 , - 2151 , - 2032 , - 2229 , - 2742 , - 3571 , - 4716 , - 1121 , - 2898 , - 4991 , - 2344 , - 13 , - 3054 , - 1355 , - 5028 , - 3961 , - 3210 , - 2775 , - 2656 , - 2853 , - 3366 , - 4195 , - 284 , - 1745 , - 3522 , - 559 , - 2968 , - 637 , - 3678 , - 1979 , - 596 , - 4585 , - 3834 , - 3399 , - 3280 , - 3477 , - 3990 , - 4819 , - 908 , - 2369 , - 4146 , - 1183 , - 3592 , - 1261 , - 4302 , - 2603 , - 1220 , - 153 , - 4458 , - 4023 , - 3904 , - 4101 , - 4614 , - 387 , - 1532 , - 2993 , - 4770 , - 1807 , - 4216 , - 1885 , - 4926 , - 3227 , - 1844 , - 777 , - 26 , - 4647 , - 4528 , - 4725 , - 182 , - 1011 , - 2156 , - 3617 , - 338 , - 2431 , - 4840 , - 2509 , - 494 , - 3851 , - 2468 , - 1401 , - 650 , - 215 , - 96 , - 293 , - 806 , - 1635 , - 2780 , - 4241 , - 962 , - 3055 , - 408 , - 3133 , - 1118 , - 4475 , - 3092 , - 2025 , - 1274 , - 839 , - 720 , - 917 , - 1430 , - 2259 , - 3404 , - 4865 , - 1586 , - 3679 , - 1032 , - 3757 , - 1742 , - 43 , - 3716 , - 2649 , - 1898 , - 1463 , - 1344 , - 1541 , - 2054 , - 2883 , - 4028 , - 433 , - 2210 , - 4303 , - 1656 , - 4381 , - 2366 , - 667 , - 4340 , - 3273 , - 2522 , - 2087 , - 1968 , - 2165 , - 2678 , - 3507 , - 4652 , - 1057 , - 2834 , - 4927 , - 2280 , - 5005 , - 2990 , - 1291 , - 4964 , - 3897 , - 3146 , - 2711 , - 2592 , - 2789 , - 3302 , - 4131 , - 220 , - 1681 , - 3458 , - 495 , - 2904 , - 573 , - 3614 , - 1915 , - 532 , - 4521 , - 3770 , - 3335 , - 3216 , - 3413 , - 3926 , - 4755 , - 844 , - 2305 , - 4082 , - 1119 , - 3528 , - 1197 , - 4238 , - 2539 , - 1156 , - 89 , - 4394 , - 3959 , - 3840 , - 4037 , - 4550 , - 323 , - 1468 , - 2929 , - 4706 , - 1743 , - 4152 , - 1821 , - 4862 , - 3163 , - 1780 , - 713 , - 5018 , - 4583 , - 4464 , - 4661 , - 118 , - 947 , - 2092 , - 3553 , - 274 , - 2367 , - 4776 , - 2445 , - 430 , - 3787 , - 2404 , - 1337 , - 586 , - 151 , - 32 , - 229 , - 742 , - 1571 , - 2716 , - 4177 , - 898 , - 2991 , - 344 , - 3069 , - 1054 , - 4411 , - 3028 , - 1961 , - 1210 , - 775 , - 656 , - 853 , - 1366 , - 2195 , - 3340 , - 4801 , - 1522 , - 3615 , - 968 , - 3693 , - 1678 , - 5035 , - 3652 , - 2585 , - 1834 , - 1399 , - 1280 , - 1477 , - 1990 , - 2819 , - 3964 , - 369 , - 2146 , - 4239 , - 1592 , - 4317 , - 2302 , - 603 , - 4276 , - 3209 , - 2458 , - 2023 , - 1904 , - 2101 , - 2614 , - 3443 , - 4588 , - 993 , - 2770 , - 4863 , - 2216 , - 4941 , - 2926 , - 1227 , - 4900 , - 3833 , - 3082 , - 2647 , - 2528 , - 2725 , - 3238 , - 4067 , - 156 , - 1617 , - 3394 , - 431 , - 2840 , - 509 , - 3550 , - 1851 , - 468 , - 4457 , - 3706 , - 3271 , - 3152 , - 3349 , - 3862 , - 4691 , - 780 , - 2241 , - 4018 , - 1055 , - 3464 , - 1133 , - 4174 , - 2475 , - 1092 , - 25 , - 4330 , - 3895 , - 3776 , - 3973 , - 4486 , - 259 , - 1404 , - 2865 , - 4642 , - 1679 , - 4088 , - 1757 , - 4798 , - 3099 , - 1716 , - 649 , - 4954 , - 4519 , - 4400 , - 4597 , - 54 , - 883 , - 2028 , - 3489 , - 210 , - 2303 , - 4712 , - 2381 , - 366 , - 3723 , - 2340 , - 1273 , - 522 , - 87 , - 5024 , - 165 , - 678 , - 1507 , - 2652 , - 4113 , - 834 , - 2927 , - 280 , - 3005 , - 990 , - 4347 , - 2964 , - 1897 , - 1146 , - 711 , - 592 , - 789 , - 1302 , - 2131 , - 3276 , - 4737 , - 1458 , - 3551 , - 904 , - 3629 , - 1614 , - 4971 , - 3588 , - 2521 , - 1770 , - 1335 , - 1216 , - 1413 , - 1926 , - 2755 , - 3900 , - 305 , - 2082 , - 4175 , - 1528 , - 4253 , - 2238 , - 539 , - 4212 , - 3145 , - 2394 , - 1959 , - 1840 , - 2037 , - 2550 , - 3379 , - 4524 , - 929 , - 2706 , - 4799 , - 2152 , - 4877 , - 2862 , - 1163 , - 4836 , - 3769 , - 3018 , - 2583 , - 2464 , - 2661 , - 3174 , - 4003 , - 92 , - 1553 , - 3330 , - 367 , - 2776 , - 445 , - 3486 , - 1787 , - 404 , - 4393 , - 3642 , - 3207 , - 3088 , - 3285 , - 3798 , - 4627 , - 716 , - 2177 , - 3954 , - 991 , - 3400 , - 1069 , - 4110 , - 2411 , - 1028 , - 5017 , - 4266 , - 3831 , - 3712 , - 3909 , - 4422 , - 195 , - 1340 , - 2801 , - 4578 , - 1615 , - 4024 , - 1693 , - 4734 , - 3035 , - 1652 , - 585 , - 4890 , - 4455 , - 4336 , - 4533 , - 5046 , - 819 , - 1964 , - 3425 , - 146 , - 2239 , - 4648 , - 2317 , - 302 , - 3659 , - 2276 , - 1209 , - 458 , - 23 , - 4960 , - 101 , - 614 , - 1443 , - 2588 , - 4049 , - 770 , - 2863 , - 216 , - 2941 , - 926 , - 4283 , - 2900 , - 1833 , - 1082 , - 647 , - 528 , - 725 , - 1238 , - 2067 , - 3212 , - 4673 , - 1394 , - 3487 , - 840 , - 3565 , - 1550 , - 4907 , - 3524 , - 2457 , - 1706 , - 1271 , - 1152 , - 1349 , - 1862 , - 2691 , - 3836 , - 241 , - 2018 , - 4111 , - 1464 , - 4189 , - 2174 , - 475 , - 4148 , - 3081 , - 2330 , - 1895 , - 1776 , - 1973 , - 2486 , - 3315 , - 4460 , - 865 , - 2642 , - 4735 , - 2088 , - 4813 , - 2798 , - 1099 , - 4772 , - 3705 , - 2954 , - 2519 , - 2400 , - 2597 , - 3110 , - 3939 , - 28 , - 1489 , - 3266 , - 303 , - 2712 , - 381 , - 3422 , - 1723 , - 340 , - 4329 , - 3578 , - 3143 , - 3024 , - 3221 , - 3734 , - 4563 , - 652 , - 2113 , - 3890 , - 927 , - 3336 , - 1005 , - 4046 , - 2347 , - 964 , - 4953 , - 4202 , - 3767 , - 3648 , - 3845 , - 4358 , - 131 , - 1276 , - 2737 , - 4514 , - 1551 , - 3960 , - 1629 , - 4670 , - 2971 , - 1588 , - 521 , - 4826 , - 4391 , - 4272 , - 4469 , - 4982 , - 755 , - 1900 , - 3361 , - 82 , - 2175 , - 4584 , - 2253 , - 238 , - 3595 , - 2212 , - 1145 , - 394 , - 5015 , - 4896 , - 37 , - 550 , - 1379 , - 2524 , - 3985 , - 706 , - 2799 , - 152 , - 2877 , - 862 , - 4219 , - 2836 , - 1769 , - 1018 , - 583 , - 464 , - 661 , - 1174 , - 2003 , - 3148 , - 4609 , - 1330 , - 3423 , - 776 , - 3501 , - 1486 , - 4843 , - 3460 , - 2393 , - 1642 , - 1207 , - 1088 , - 1285 , - 1798 , - 2627 , - 3772 , - 177 , - 1954 , - 4047 , - 1400 , - 4125 , - 2110 , - 411 , - 4084 , - 3017 , - 2266 , - 1831 , - 1712 , - 1909 , - 2422 , - 3251 , - 4396 , - 801 , - 2578 , - 4671 , - 2024 , - 4749 , - 2734 , - 1035 , - 4708 , - 3641 , - 2890 , - 2455 , - 2336 , - 2533 , - 3046 , - 3875 , - 5020 , - 1425 , - 3202 , - 239 , - 2648 , - 317 , - 3358 , - 1659 , - 276 , - 4265 , - 3514 , - 3079 , - 2960 , - 3157 , - 3670 , - 4499 , - 588 , - 2049 , - 3826 , - 863 , - 3272 , - 941 , - 3982 , - 2283 , - 900 , - 4889 , - 4138 , - 3703 , - 3584 , - 3781 , - 4294 , - 67 , - 1212 , - 2673 , - 4450 , - 1487 , - 3896 , - 1565 , - 4606 , - 2907 , - 1524 , - 457 , - 4762 , - 4327 , - 4208 , - 4405 , - 4918 , - 691 , - 1836 , - 3297 , - 18 , - 2111 , - 4520 , - 2189 , - 174 , - 3531 , - 2148 , - 1081 , - 330 , - 4951 , - 4832 , - 5029 , - 486 , - 1315 , - 2460 , - 3921 , - 642 , - 2735 , - 88 , - 2813 , - 798 , - 4155 , - 2772 , - 1705 , - 954 , - 519 , - 400 , - 597 , - 1110 , - 1939 , - 3084 , - 4545 , - 1266 , - 3359 , - 712 , - 3437 , - 1422 , - 4779 , - 3396 , - 2329 , - 1578 , - 1143 , - 1024 , - 1221 , - 1734 , - 2563 , - 3708 , - 113 , - 1890 , - 3983 , - 1336 , - 4061 , - 2046 , - 347 , - 4020 , - 2953 , - 2202 , - 1767 , - 1648 , - 1845 , - 2358 , - 3187 , - 4332 , - 737 , - 2514 , - 4607 , - 1960 , - 4685 , - 2670 , - 971 , - 4644 , - 3577 , - 2826 , - 2391 , - 2272 , - 2469 , - 2982 , - 3811 , - 4956 , - 1361 , - 3138 , - 175 , - 2584 , - 253 , - 3294 , - 1595 , - 212 , - 4201 , - 3450 , - 3015 , - 2896 , - 3093 , - 3606 , - 4435 , - 524 , - 1985 , - 3762 , - 799 , - 3208 , - 877 , - 3918 , - 2219 , - 836 , - 4825 , - 4074 , - 3639 , - 3520 , - 3717 , - 4230 , - 3 , - 1148 , - 2609 , - 4386 , - 1423 , - 3832 , - 1501 , - 4542 , - 2843 , - 1460 , - 393 , - 4698 , - 4263 , - 4144 , - 4341 , - 4854 , - 627 , - 1772 , - 3233 , - 5010 , - 2047 , - 4456 , - 2125 , - 110 , - 3467 , - 2084 , - 1017 , - 266 , - 4887 , - 4768 , - 4965 , - 422 , - 1251 , - 2396 , - 3857 , - 578 , - 2671 , - 24 , - 2749 , - 734 , - 4091 , - 2708 , - 1641 , - 890 , - 455 , - 336 , - 533 , - 1046 , - 1875 , - 3020 , - 4481 , - 1202 , - 3295 , - 648 , - 3373 , - 1358 , - 4715 , - 3332 , - 2265 , - 1514 , - 1079 , - 960 , - 1157 , - 1670 , - 2499 , - 3644 , - 49 , - 1826 , - 3919 , - 1272 , - 3997 , - 1982 , - 283 , - 3956 , - 2889 , - 2138 , - 1703 , - 1584 , - 1781 , - 2294 , - 3123 , - 4268 , - 673 , - 2450 , - 4543 , - 1896 , - 4621 , - 2606 , - 907 , - 4580 , - 3513 , - 2762 , - 2327 , - 2208 , - 2405 , - 2918 , - 3747 , - 4892 , - 1297 , - 3074 , - 111 , - 2520 , - 189 , - 3230 , - 1531 , - 148 , - 4137 , - 3386 , - 2951 , - 2832 , - 3029 , - 3542 , - 4371 , - 460 , - 1921 , - 3698 , - 735 , - 3144 , - 813 , - 3854 , - 2155 , - 772 , - 4761 , - 4010 , - 3575 , - 3456 , - 3653 , - 4166 , - 4995 , - 1084 , - 2545 , - 4322 , - 1359 , - 3768 , - 1437 , - 4478 , - 2779 , - 1396 , - 329 , - 4634 , - 4199 , - 4080 , - 4277 , - 4790 , - 563 , - 1708 , - 3169 , - 4946 , - 1983 , - 4392 , - 2061 , - 46 , - 3403 , - 2020 , - 953 , - 202 , - 4823 , - 4704 , - 4901 , - 358 , - 1187 , - 2332 , - 3793 , - 514 , - 2607 , - 5016 , - 2685 , - 670 , - 4027 , - 2644 , - 1577 , - 826 , - 391 , - 272 , - 469 , - 982 , - 1811 , - 2956 , - 4417 , - 1138 , - 3231 , - 584 , - 3309 , - 1294 , - 4651 , - 3268 , - 2201 , - 1450 , - 1015 , - 896 , - 1093 , - 1606 , - 2435 , - 3580 , - 5041 , - 1762 , - 3855 , - 1208 , - 3933 , - 1918 , - 219 , - 3892 , - 2825 , - 2074 , - 1639 , - 1520 , - 1717 , - 2230 , - 3059 , - 4204 , - 609 , - 2386 , - 4479 , - 1832 , - 4557 , - 2542 , - 843 , - 4516 , - 3449 , - 2698 , - 2263 , - 2144 , - 2341 , - 2854 , - 3683 , - 4828 , - 1233 , - 3010 , - 47 , - 2456 , - 125 , - 3166 , - 1467 , - 84 , - 4073 , - 3322 , - 2887 , - 2768 , - 2965 , - 3478 , - 4307 , - 396 , - 1857 , - 3634 , - 671 , - 3080 , - 749 , - 3790 , - 2091 , - 708 , - 4697 , - 3946 , - 3511 , - 3392 , - 3589 , - 4102 , - 4931 , - 1020 , - 2481 , - 4258 , - 1295 , - 3704 , - 1373 , - 4414 , - 2715 , - 1332 , - 265 , - 4570 , - 4135 , - 4016 , - 4213 , - 4726 , - 499 , - 1644 , - 3105 , - 4882 , - 1919 , - 4328 , - 1997 , - 5038 , - 3339 , - 1956 , - 889 , - 138 , - 4759 , - 4640 , - 4837 , - 294 , - 1123 , - 2268 , - 3729 , - 450 , - 2543 , - 4952 , - 2621 , - 606 , - 3963 , - 2580 , - 1513 , - 762 , - 327 , - 208 , - 405 , - 918 , - 1747 , - 2892 , - 4353 , - 1074 , - 3167 , - 520 , - 3245 , - 1230 , - 4587 , - 3204 , - 2137 , - 1386 , - 951 , - 832 , - 1029 , - 1542 , - 2371 , - 3516 , - 4977 , - 1698 , - 3791 , - 1144 , - 3869 , - 1854 , - 155 , - 3828 , - 2761 , - 2010 , - 1575 , - 1456 , - 1653 , - 2166 , - 2995 , - 4140 , - 545 , - 2322 , - 4415 , - 1768 , - 4493 , - 2478 , - 779 , - 4452 , - 3385 , - 2634 , - 2199 , - 2080 , - 2277 , - 2790 , - 3619 , - 4764 , - 1169 , - 2946 , - 5039 , - 2392 , - 61 , - 3102 , - 1403 , - 20 , - 4009 , - 3258 , - 2823 , - 2704 , - 2901 , - 3414 , - 4243 , - 332 , - 1793 , - 3570 , - 607 , - 3016 , - 685 , - 3726 , - 2027 , - 644 , - 4633 , - 3882 , - 3447 , - 3328 , - 3525 , - 4038 , - 4867 , - 956 , - 2417 , - 4194 , - 1231 , - 3640 , - 1309 , - 4350 , - 2651 , - 1268 , - 201 , - 4506 , - 4071 , - 3952 , - 4149 , - 4662 , - 435 , - 1580 , - 3041 , - 4818 , - 1855 , - 4264 , - 1933 , - 4974 , - 3275 , - 1892 , - 825 , - 74 , - 4695 , - 4576 , - 4773 , - 230 , - 1059 , - 2204 , - 3665 , - 386 , - 2479 , - 4888 , - 2557 , - 542 , - 3899 , - 2516 , - 1449 , - 698 , - 263 , - 144 , - 341 , - 854 , - 1683 , - 2828 , - 4289 , - 1010 , - 3103 , - 456 , - 3181 , - 1166 , - 4523 , - 3140 , - 2073 , - 1322 , - 887 , - 768 , - 965 , - 1478 , - 2307 , - 3452 , - 4913 , - 1634 , - 3727 , - 1080 , - 3805 , - 1790 , - 91 , - 3764 , - 2697 , - 1946 , - 1511 , - 1392 , - 1589 , - 2102 , - 2931 , - 4076 , - 481 , - 2258 , - 4351 , - 1704 , - 4429 , - 2414 , - 715 , - 4388 , - 3321 , - 2570 , - 2135 , - 2016 , - 2213 , - 2726 , - 3555 , - 4700 , - 1105 , - 2882 , - 4975 , - 2328 , - 5053 , - 3038 , - 1339 , - 5012 , - 3945 , - 3194 , - 2759 , - 2640 , - 2837 , - 3350 , - 4179 , - 268 , - 1729 , - 3506 , - 543 , - 2952 , - 621 , - 3662 , - 1963 , - 580 , - 4569 , - 3818 , - 3383 , - 3264 , - 3461 , - 3974 , - 4803 , - 892 , - 2353 , - 4130 , - 1167 , - 3576 , - 1245 , - 4286 , - 2587 , - 1204 , - 137 , - 4442 , - 4007 , - 3888 , - 4085 , - 4598 , - 371 , - 1516 , - 2977 , - 4754 , - 1791 , - 4200 , - 1869 , - 4910 , - 3211 , - 1828 , - 761 , - 10 , - 4631 , - 4512 , - 4709 , - 166 , - 995 , - 2140 , - 3601 , - 322 , - 2415 , - 4824 , - 2493 , - 478 , - 3835 , - 2452 , - 1385 , - 634 , - 199 , - 80 , - 277 , - 790 , - 1619 , - 2764 , - 4225 , - 946 , - 3039 , - 392 , - 3117 , - 1102 , - 4459 , - 3076 , - 2009 , - 1258 , - 823 , - 704 , - 901 , - 1414 , - 2243 , - 3388 , - 4849 , - 1570 , - 3663 , - 1016 , - 3741 , - 1726 , - 27 , - 3700 , - 2633 , - 1882 , - 1447 , - 1328 , - 1525 , - 2038 , - 2867 , - 4012 , - 417 , - 2194 , - 4287 , - 1640 , - 4365 , - 2350 , - 651 , - 4324 , - 3257 , - 2506 , - 2071 , - 1952 , - 2149 , - 2662 , - 3491 , - 4636 , - 1041 , - 2818 , - 4911 , - 2264 , - 4989 , - 2974 , - 1275 , - 4948 , - 3881 , - 3130 , - 2695 , - 2576 , - 2773 , - 3286 , - 4115 , - 204 , - 1665 , - 3442 , - 479 , - 2888 , - 557 , - 3598 , - 1899 , - 516 , - 4505 , - 3754 , - 3319 , - 3200 , - 3397 , - 3910 , - 4739 , - 828 , - 2289 , - 4066 , - 1103 , - 3512 , - 1181 , - 4222 , - 2523 , - 1140 , - 73 , - 4378 , - 3943 , - 3824 , - 4021 , - 4534 , - 307 , - 1452 , - 2913 , - 4690 , - 1727 , - 4136 , - 1805 , - 4846 , - 3147 , - 1764 , - 697 , - 5002 , - 4567 , - 4448 , - 4645 , - 102 , - 931 , - 2076 , - 3537 , - 258 , - 2351 , - 4760 , - 2429 , - 414 , - 3771 , - 2388 , - 1321 , - 570 , - 135 , - 16 , - 213 , - 726 , - 1555 , - 2700 , - 4161 , - 882 , - 2975 , - 328 , - 3053 , - 1038 , - 4395 , - 3012 , - 1945 , - 1194 , - 759 , - 640 , - 837 , - 1350 , - 2179 , - 3324 , - 4785 , - 1506 , - 3599 , - 952 , - 3677 , - 1662 , - 5019 , - 3636 , - 2569 , - 1818 , - 1383 , - 1264 , - 1461 , - 1974 , - 2803 , - 3948 , - 353 , - 2130 , - 4223 , - 1576 , - 4301 , - 2286 , - 587 , - 4260 , - 3193 , - 2442 , - 2007 , - 1888 , - 2085 , - 2598 , - 3427 , - 4572 , - 977 , - 2754 , - 4847 , - 2200 , - 4925 , - 2910 , - 1211 , - 4884 , - 3817 , - 3066 , - 2631 , - 2512 , - 2709 , - 3222 , - 4051 , - 140 , - 1601 , - 3378 , - 415 , - 2824 , - 493 , - 3534 , - 1835 , - 452 , - 4441 , - 3690 , - 3255 , - 3136 , - 3333 , - 3846 , - 4675 , - 764 , - 2225 , - 4002 , - 1039 , - 3448 , - 1117 , - 4158 , - 2459 , - 1076 , - 9 , - 4314 , - 3879 , - 3760 , - 3957 , - 4470 , - 243 , - 1388 , - 2849 , - 4626 , - 1663 , - 4072 , - 1741 , - 4782 , - 3083 , - 1700 , - 633 , - 4938 , - 4503 , - 4384 , - 4581 , - 38 , - 867 , - 2012 , - 3473 , - 194 , - 2287 , - 4696 , - 2365 , - 350 , - 3707 , - 2324 , - 1257 , - 506 , - 71 , - 5008 , - 149 , - 662 , - 1491 , - 2636 , - 4097 , - 818 , - 2911 , - 264 , - 2989 , - 974 , - 4331 , - 2948 , - 1881 , - 1130 , - 695 , - 576 , - 773 , - 1286 , - 2115 , - 3260 , - 4721 , - 1442 , - 3535 , - 888 , - 3613 , - 1598 , - 4955 , - 3572 , - 2505 , - 1754 , - 1319 , - 1200 , - 1397 , - 1910 , - 2739 , - 3884 , - 289 , - 2066 , - 4159 , - 1512 , - 4237 , - 2222 , - 523 , - 4196 , - 3129 , - 2378 , - 1943 , - 1824 , - 2021 , - 2534 , - 3363 , - 4508 , - 913 , - 2690 , - 4783 , - 2136 , - 4861 , - 2846 , - 1147 , - 4820 , - 3753 , - 3002 , - 2567 , - 2448 , - 2645 , - 3158 , - 3987 , - 76 , - 1537 , - 3314 , - 351 , - 2760 , - 429 , - 3470 , - 1771 , - 388 , - 4377 , - 3626 , - 3191 , - 3072 , - 3269 , - 3782 , - 4611 , - 700 , - 2161 , - 3938 , - 975 , - 3384 , - 1053 , - 4094 , - 2395 , - 1012 , - 5001 , - 4250 , - 3815 , - 3696 , - 3893 , - 4406 , - 179 , - 1324 , - 2785 , - 4562 , - 1599 , - 4008 , - 1677 , - 4718 , - 3019 , - 1636 , - 569 , - 4874 , - 4439 , - 4320 , - 4517 , - 5030 , - 803 , - 1948 , - 3409 , - 130 , - 2223 , - 4632 , - 2301 , - 286 , - 3643 , - 2260 , - 1193 , - 442 , - 7 , - 4944 , - 85 , - 598 , - 1427 , - 2572 , - 4033 , - 754 , - 2847 , - 200 , - 2925 , - 910 , - 4267 , - 2884 , - 1817 , - 1066 , - 631 , - 512 , - 709 , - 1222 , - 2051 , - 3196 , - 4657 , - 1378 , - 3471 , - 824 , - 3549 , - 1534 , - 4891 , - 3508 , - 2441 , - 1690 , - 1255 , - 1136 , - 1333 , - 1846 , - 2675 , - 3820 , - 225 , - 2002 , - 4095 , - 1448 , - 4173 , - 2158 , - 459 , - 4132 , - 3065 , - 2314 , - 1879 , - 1760 , - 1957 , - 2470 , - 3299 , - 4444 , - 849 , - 2626 , - 4719 , - 2072 , - 4797 , - 2782 , - 1083 , - 4756 , - 3689 , - 2938 , - 2503 , - 2384 , - 2581 , - 3094 , - 3923 , - 12 , - 1473 , - 3250 , - 287 , - 2696 , - 365 , - 3406 , - 1707 , - 324 , - 4313 , - 3562 , - 3127 , - 3008 , - 3205 , - 3718 , - 4547 , - 636 , - 2097 , - 3874 , - 911 , - 3320 , - 989 , - 4030 , - 2331 , - 948 , - 4937 , - 4186 , - 3751 , - 3632 , - 3829 , - 4342 , - 115 , - 1260 , - 2721 , - 4498 , - 1535 , - 3944 , - 1613 , - 4654 , - 2955 , - 1572 , - 505 , - 4810 , - 4375 , - 4256 , - 4453 , - 4966 , - 739 , - 1884 , - 3345 , - 66 , - 2159 , - 4568 , - 2237 , - 222 , - 3579 , - 2196 , - 1129 , - 378 , - 4999 , - 4880 , - 21 , - 534 , - 1363 , - 2508 , - 3969 , - 690 , - 2783 , - 136 , - 2861 , - 846 , - 4203 , - 2820 , - 1753 , - 1002 , - 567 , - 448 , - 645 , - 1158 , - 1987 , - 3132 , - 4593 , - 1314 , - 3407 , - 760 , - 3485 , - 1470 , - 4827 , - 3444 , - 2377 , - 1626 , - 1191 , - 1072 , - 1269 , - 1782 , - 2611 , - 3756 , - 161 , - 1938 , - 4031 , - 1384 , - 4109 , - 2094 , - 395 , - 4068 , - 3001 , - 2250 , - 1815 , - 1696 , - 1893 , - 2406 , - 3235 , - 4380 , - 785 , - 2562 , - 4655 , - 2008 , - 4733 , - 2718 , - 1019 , - 4692 , - 3625 , - 2874 , - 2439 , - 2320 , - 2517 , - 3030 , - 3859 , - 5004 , - 1409 , - 3186 , - 223 , - 2632 , - 301 , - 3342 , - 1643 , - 260 , - 4249 , - 3498 , - 3063 , - 2944 , - 3141 , - 3654 , - 4483 , - 572 , - 2033 , - 3810 , - 847 , - 3256 , - 925 , - 3966 , - 2267 , - 884 , - 4873 , - 4122 , - 3687 , - 3568 , - 3765 , - 4278 , - 51 , - 1196 , - 2657 , - 4434 , - 1471 , - 3880 , - 1549 , - 4590 , - 2891 , - 1508 , - 441 , - 4746 , - 4311 , - 4192 , - 4389 , - 4902 , - 675 , - 1820 , - 3281 , - 2 , - 2095 , - 4504 , - 2173 , - 158 , - 3515 , - 2132 , - 1065 , - 314 , - 4935 , - 4816 , - 5013 , - 470 , - 1299 , - 2444 , - 3905 , - 626 , - 2719 , - 72 , - 2797 , - 782 , - 4139 , - 2756 , - 1689 , - 938 , - 503 , - 384 , - 581 , - 1094 , - 1923 , - 3068 , - 4529 , - 1250 , - 3343 , - 696 , - 3421 , - 1406 , - 4763 , - 3380 , - 2313 , - 1562 , - 1127 , - 1008 , - 1205 , - 1718 , - 2547 , - 3692 , - 97 , - 1874 , - 3967 , - 1320 , - 4045 , - 2030 , - 331 , - 4004 , - 2937 , - 2186 , - 1751 , - 1632 , - 1829 , - 2342 , - 3171 , - 4316 , - 721 , - 2498 , - 4591 , - 1944 , - 4669 , - 2654 , - 955 , - 4628 , - 3561 , - 2810 , - 2375 , - 2256 , - 2453 , - 2966 , - 3795 , - 4940 , - 1345 , - 3122 , - 159 , - 2568 , - 237 , - 3278 , - 1579 , - 196 , - 4185 , - 3434 , - 2999 , - 2880 , - 3077 , - 3590 , - 4419 , - 508 , - 1969 , - 3746 , - 783 , - 3192 , - 861 , - 3902 , - 2203 , - 820 , - 4809 , - 4058 , - 3623 , - 3504 , - 3701 , - 4214 , - 5043 , - 1132 , - 2593 , - 4370 , - 1407 , - 3816 , - 1485 , - 4526 , - 2827 , - 1444 , - 377 , - 4682 , - 4247 , - 4128 , - 4325 , - 4838 , - 611 , - 1756 , - 3217 , - 4994 , - 2031 , - 4440 , - 2109 , - 94 , - 3451 , - 2068 , - 1001 , - 250 , - 4871 , - 4752 , - 4949 , - 406 , - 1235 , - 2380 , - 3841 , - 562 , - 2655 , - 8 , - 2733 , - 718 , - 4075 , - 2692 , - 1625 , - 874 , - 439 , - 320 , - 517 , - 1030 , - 1859 , - 3004 , - 4465 , - 1186 , - 3279 , - 632 , - 3357 , - 1342 , - 4699 , - 3316 , - 2249 , - 1498 , - 1063 , - 944 , - 1141 , - 1654 , - 2483 , - 3628 , - 33 , - 1810 , - 3903 , - 1256 , - 3981 , - 1966 , - 267 , - 3940 , - 2873 , - 2122 , - 1687 , - 1568 , - 1765 , - 2278 , - 3107 , - 4252 , - 657 , - 2434 , - 4527 , - 1880 , - 4605 , - 2590 , - 891 , - 4564 , - 3497 , - 2746 , - 2311 , - 2192 , - 2389 , - 2902 , - 3731 , - 4876 , - 1281 , - 3058 , - 95 , - 2504 , - 173 , - 3214 , - 1515 , - 132 , - 4121 , - 3370 , - 2935 , - 2816 , - 3013 , - 3526 , - 4355 , - 444 , - 1905 , - 3682 , - 719 , - 3128 , - 797 , - 3838 , - 2139 , - 756 , - 4745 , - 3994 , - 3559 , - 3440 , - 3637 , - 4150 , - 4979 , - 1068 , - 2529 , - 4306 , - 1343 , - 3752 , - 1421 , - 4462 , - 2763 , - 1380 , - 313 , - 4618 , - 4183 , - 4064 , - 4261 , - 4774 , - 547 , - 1692 , - 3153 , - 4930 , - 1967 , - 4376 , - 2045 , - 30 , - 3387 , - 2004 , - 937 , - 186 , - 4807 , - 4688 , - 4885 , - 342 , - 1171 , - 2316 , - 3777 , - 498 , - 2591 , - 5000 , - 2669 , - 654 , - 4011 , - 2628 , - 1561 , - 810 , - 375 , - 256 , - 453 , - 966 , - 1795 , - 2940 , - 4401 , - 1122 , - 3215 , - 568 , - 3293 , - 1278 , - 4635 , - 3252 , - 2185 , - 1434 , - 999 , - 880 , - 1077 , - 1590 , - 2419 , - 3564 , - 5025 , - 1746 , - 3839 , - 1192 , - 3917 , - 1902 , - 203 , - 3876 , - 2809 , - 2058 , - 1623 , - 1504 , - 1701 , - 2214 , - 3043 , - 4188 , - 593 , - 2370 , - 4463 , - 1816 , - 4541 , - 2526 , - 827 , - 4500 , - 3433 , - 2682 , - 2247 , - 2128 , - 2325 , - 2838 , - 3667 , - 4812 , - 1217 , - 2994 , - 31 , - 2440 , - 109 , - 3150 , - 1451 , - 68 , - 4057 , - 3306 , - 2871 , - 2752 , - 2949 , - 3462 , - 4291 , - 380 , - 1841 , - 3618 , - 655 , - 3064 , - 733 , - 3774 , - 2075 , - 692 , - 4681 , - 3930 , - 3495 , - 3376 , - 3573 , - 4086 , - 4915 , - 1004 , - 2465 , - 4242 , - 1279 , - 3688 , - 1357 , - 4398 , - 2699 , - 1316 , - 249 , - 4554 , - 4119 , - 4000 , - 4197 , - 4710 , - 483 , - 1628 , - 3089 , - 4866 , - 1903 , - 4312 , - 1981 , - 5022 , - 3323 , - 1940 , - 873 , - 122 , - 4743 , - 4624 , - 4821 , - 278 , - 1107 , - 2252 , - 3713 , - 434 , - 2527 , - 4936 , - 2605 , - 590 , - 3947 , - 2564 , - 1497 , - 746 , - 311 , - 192 , - 389 , - 902 , - 1731 , - 2876 , - 4337 , - 1058 , - 3151 , - 504 , - 3229 , - 1214 , - 4571 , - 3188 , - 2121 , - 1370 , - 935 , - 816 , - 1013 , - 1526 , - 2355 , - 3500 , - 4961 , - 1682 , - 3775 , - 1128 , - 3853 , - 1838 , - 139 , - 3812 , - 2745 , - 1994 , - 1559 , - 1440 , - 1637 , - 2150 , - 2979 , - 4124 , - 529 , - 2306 , - 4399 , - 1752 , - 4477 , - 2462 , - 763 , - 4436 , - 3369 , - 2618 , - 2183 , - 2064 , - 2261 , - 2774 , - 3603 , - 4748 , - 1153 , - 2930 , - 5023 , - 2376 , - 45 , - 3086 , - 1387 , - 4 , - 3993 , - 3242 , - 2807 , - 2688 , - 2885 , - 3398 , - 4227 , - 316 , - 1777 , - 3554 , - 591 , - 3000 , - 669 , - 3710 , - 2011 , - 628 , - 4617 , - 3866 , - 3431 , - 3312 , - 3509 , - 4022 , - 4851 , - 940 , - 2401 , - 4178 , - 1215 , - 3624 , - 1293 , - 4334 , - 2635 , - 1252 , - 185 , - 4490 , - 4055 , - 3936 , - 4133 , - 4646 , - 419 , - 1564 , - 3025 , - 4802 , - 1839 , - 4248 , - 1917 , - 4958 , - 3259 , - 1876 , - 809 , - 58 , - 4679 , - 4560 , - 4757 , - 214 , - 1043 , - 2188 , - 3649 , - 370 , - 2463 , - 4872 , - 2541 , - 526 , - 3883 , - 2500 , - 1433 , - 682 , - 247 , - 128 , - 325 , - 838 , - 1667 , - 2812 , - 4273 , - 994 , - 3087 , - 440 , - 3165 , - 1150 , - 4507 , - 3124 , - 2057 , - 1306 , - 871 , - 752 , - 949 , - 1462 , - 2291 , - 3436 , - 4897 , - 1618 , - 3711 , - 1064 , - 3789 , - 1774 , - 75 , - 3748 , - 2681 , - 1930 , - 1495 , - 1376 , - 1573 , - 2086 , - 2915 , - 4060 , - 465 , - 2242 , - 4335 , - 1688 , - 4413 , - 2398 , - 699 , - 4372 , - 3305 , - 2554 , - 2119 , - 2000 , - 2197 , - 2710 , - 3539 , - 4684 , - 1089 , - 2866 , - 4959 , - 2312 , - 5037 , - 3022 , - 1323 , - 4996 , - 3929 , - 3178 , - 2743 , - 2624 , - 2821 , - 3334 , - 4163 , - 252 , - 1713 , - 3490 , - 527 , - 2936 , - 605 , - 3646 , - 1947 , - 564 , - 4553 , - 3802 , - 3367 , - 3248 , - 3445 , - 3958 , - 4787 , - 876 , - 2337 , - 4114 , - 1151 , - 3560 , - 1229 , - 4270 , - 2571 , - 1188 , - 121 , - 4426 , - 3991 , - 3872 , - 4069 , - 4582 , - 355 , - 1500 , - 2961 , - 4738 , - 1775 , - 4184 , - 1853 , - 4894 , - 3195 , - 1812 , - 745 , - 5050 , - 4615 , - 4496 , - 4693 , - 150 , - 979 , - 2124 , - 3585 , - 306 , - 2399 , - 4808 , - 2477 , - 462 , - 3819 , - 2436 , - 1369 , - 618 , - 183 , - 64 , - 261 , - 774 , - 1603 , - 2748 , - 4209 , - 930 , - 3023 , - 376 , - 3101 , - 1086 , - 4443 , - 3060 , - 1993 , - 1242 , - 807 , - 688 , - 885 , - 1398 , - 2227 , - 3372 , - 4833 , - 1554 , - 3647 , - 1000 , - 3725 , - 1710 , - 11 , - 3684 , - 2617 , - 1866 , - 1431 , - 1312 , - 1509 , - 2022 , - 2851 , - 3996 , - 401 , - 2178 , - 4271 , - 1624 , - 4349 , - 2334 , - 635 , - 4308 , - 3241 , - 2490 , - 2055 , - 1936 , - 2133 , - 2646 , - 3475 , - 4620 , - 1025 , - 2802 , - 4895 , - 2248 , - 4973 , - 2958 , - 1259 , - 4932 , - 3865 , - 3114 , - 2679 , - 2560 , - 2757 , - 3270 , - 4099 , - 188 , - 1649 , - 3426 , - 463 , - 2872 , - 541 , - 3582 , - 1883 , - 500 , - 4489 , - 3738 , - 3303 , - 3184 , - 3381 , - 3894 , - 4723 , - 812 , - 2273 , - 4050 , - 1087 , - 3496 , - 1165 , - 4206 , - 2507 , - 1124 , - 57 , - 4362 , - 3927 , - 3808 , - 4005 , - 4518 , - 291 , - 1436 , - 2897 , - 4674 , - 1711 , - 4120 , - 1789 , - 4830 , - 3131 , - 1748 , - 681 , - 4986 , - 4551 , - 4432 , - 4629 , - 86 , - 915 , - 2060 , - 3521 , - 242 , - 2335 , - 4744 , - 2413 , - 398 , - 3755 , - 2372 , - 1305 , - 554 , - 119 , - 0 , - 119 , - 398 , - 837 , - 1436 , - 2195 , - 3114 , - 4193 , - 312 , - 1711 , - 3270 , - 4989 , - 1748 , - 3787 , - 866 , - 3225 , - 624 , - 3303 , - 1022 , - 4021 , - 2060 , - 259 , - 3738 , - 2257 , - 936 , - 4895 , - 3894 , - 3053 , - 2372 , - 1851 , - 1490 , - 1289 , - 1248 , - 1367 , - 1646 , - 2085 , - 2684 , - 3443 , - 4362 , - 321 , - 1560 , - 2959 , - 4518 , - 1117 , - 2996 , - 5035 , - 2114 , - 4473 , - 1872 , - 4551 , - 2270 , - 149 , - 3308 , - 1507 , - 4986 , - 3505 , - 2184 , - 1023 , - 22 , - 4301 , - 3620 , - 3099 , - 2738 , - 2537 , - 2496 , - 2615 , - 2894 , - 3333 , - 3932 , - 4691 , - 490 , - 1569 , - 2808 , - 4207 , - 646 , - 2365 , - 4244 , - 1163 , - 3362 , - 601 , - 3120 , - 679 , - 3518 , - 1397 , - 4556 , - 2755 , - 1114 , - 4753 , - 3432 , - 2271 , - 1270 , - 429 , - 4868 , - 4347 , - 3986 , - 3785 , - 3744 , - 3863 , - 4142 , - 4581 , - 60 , - 819 , - 1738 , - 2817 , - 4056 , - 335 , - 1894 , - 3613 , - 372 , - 2411 , - 4610 , - 1849 , - 4368 , - 1927 , - 4766 , - 2645 , - 684 , - 4003 , - 2362 , - 881 , - 4680 , - 3519 , - 2518 , - 1677 , - 996 , - 475 , - 114 , - 5033 , - 4992 , - 5111 , - 270 , - 709 , - 1308 , - 2067 , - 2986 , - 4065 , - 184 , - 1583 , - 3142 , - 4861 , - 1620 , - 3659 , - 738 , - 3097 , - 496 , - 3175 , - 894 , - 3893 , - 1932 , - 131 , - 3610 , - 2129 , - 808 , - 4767 , - 3766 , - 2925 , - 2244 , - 1723 , - 1362 , - 1161 , - 1120 , - 1239 , - 1518 , - 1957 , - 2556 , - 3315 , - 4234 , - 193 , - 1432 , - 2831 , - 4390 , - 989 , - 2868 , - 4907 , - 1986 , - 4345 , - 1744 , - 4423 , - 2142 , - 21 , - 3180 , - 1379 , - 4858 , - 3377 , - 2056 , - 895 , - 5014 , - 4173 , - 3492 , - 2971 , - 2610 , - 2409 , - 2368 , - 2487 , - 2766 , - 3205 , - 3804 , - 4563 , - 362 , - 1441 , - 2680 , - 4079 , - 518 , - 2237 , - 4116 , - 1035 , - 3234 , - 473 , - 2992 , - 551 , - 3390 , - 1269 , - 4428 , - 2627 , - 986 , - 4625 , - 3304 , - 2143 , - 1142 , - 301 , - 4740 , - 4219 , - 3858 , - 3657 , - 3616 , - 3735 , - 4014 , - 4453 , - 5052 , - 691 , - 1610 , - 2689 , - 3928 , - 207 , - 1766 , - 3485 , - 244 , - 2283 , - 4482 , - 1721 , - 4240 , - 1799 , - 4638 , - 2517 , - 556 , - 3875 , - 2234 , - 753 , - 4552 , - 3391 , - 2390 , - 1549 , - 868 , - 347 , - 5106 , - 4905 , - 4864 , - 4983 , - 142 , - 581 , - 1180 , - 1939 , - 2858 , - 3937 , - 56 , - 1455 , - 3014 , - 4733 , - 1492 , - 3531 , - 610 , - 2969 , - 368 , - 3047 , - 766 , - 3765 , - 1804 , - 3 , - 3482 , - 2001 , - 680 , - 4639 , - 3638 , - 2797 , - 2116 , - 1595 , - 1234 , - 1033 , - 992 , - 1111 , - 1390 , - 1829 , - 2428 , - 3187 , - 4106 , - 65 , - 1304 , - 2703 , - 4262 , - 861 , - 2740 , - 4779 , - 1858 , - 4217 , - 1616 , - 4295 , - 2014 , - 5013 , - 3052 , - 1251 , - 4730 , - 3249 , - 1928 , - 767 , - 4886 , - 4045 , - 3364 , - 2843 , - 2482 , - 2281 , - 2240 , - 2359 , - 2638 , - 3077 , - 3676 , - 4435 , - 234 , - 1313 , - 2552 , - 3951 , - 390 , - 2109 , - 3988 , - 907 , - 3106 , - 345 , - 2864 , - 423 , - 3262 , - 1141 , - 4300 , - 2499 , - 858 , - 4497 , - 3176 , - 2015 , - 1014 , - 173 , - 4612 , - 4091 , - 3730 , - 3529 , - 3488 , - 3607 , - 3886 , - 4325 , - 4924 , - 563 , - 1482 , - 2561 , - 3800 , - 79 , - 1638 , - 3357 , - 116 , - 2155 , - 4354 , - 1593 , - 4112 , - 1671 , - 4510 , - 2389 , - 428 , - 3747 , - 2106 , - 625 , - 4424 , - 3263 , - 2262 , - 1421 , - 740 , - 219 , - 4978 , - 4777 , - 4736 , - 4855 , - 14 , - 453 , - 1052 , - 1811 , - 2730 , - 3809 , - 5048 , - 1327 , - 2886 , - 4605 , - 1364 , - 3403 , - 482 , - 2841 , - 240 , - 2919 , - 638 , - 3637 , - 1676 , - 4995 , - 3354 , - 1873 , - 552 , - 4511 , - 3510 , - 2669 , - 1988 , - 1467 , - 1106 , - 905 , - 864 , - 983 , - 1262 , - 1701 , - 2300 , - 3059 , - 3978 , - 5057 , - 1176 , - 2575 , - 4134 , - 733 , - 2612 , - 4651 , - 1730 , - 4089 , - 1488 , - 4167 , - 1886 , - 4885 , - 2924 , - 1123 , - 4602 , - 3121 , - 1800 , - 639 , - 4758 , - 3917 , - 3236 , - 2715 , - 2354 , - 2153 , - 2112 , - 2231 , - 2510 , - 2949 , - 3548 , - 4307 , - 106 , - 1185 , - 2424 , - 3823 , - 262 , - 1981 , - 3860 , - 779 , - 2978 , - 217 , - 2736 , - 295 , - 3134 , - 1013 , - 4172 , - 2371 , - 730 , - 4369 , - 3048 , - 1887 , - 886 , - 45 , - 4484 , - 3963 , - 3602 , - 3401 , - 3360 , - 3479 , - 3758 , - 4197 , - 4796 , - 435 , - 1354 , - 2433 , - 3672 , - 5071 , - 1510 , - 3229 , - 5108 , - 2027 , - 4226 , - 1465 , - 3984 , - 1543 , - 4382 , - 2261 , - 300 , - 3619 , - 1978 , - 497 , - 4296 , - 3135 , - 2134 , - 1293 , - 612 , - 91 , - 4850 , - 4649 , - 4608 , - 4727 , - 5006 , - 325 , - 924 , - 1683 , - 2602 , - 3681 , - 4920 , - 1199 , - 2758 , - 4477 , - 1236 , - 3275 , - 354 , - 2713 , - 112 , - 2791 , - 510 , - 3509 , - 1548 , - 4867 , - 3226 , - 1745 , - 424 , - 4383 , - 3382 , - 2541 , - 1860 , - 1339 , - 978 , - 777 , - 736 , - 855 , - 1134 , - 1573 , - 2172 , - 2931 , - 3850 , - 4929 , - 1048 , - 2447 , - 4006 , - 605 , - 2484 , - 4523 , - 1602 , - 3961 , - 1360 , - 4039 , - 1758 , - 4757 , - 2796 , - 995 , - 4474 , - 2993 , - 1672 , - 511 , - 4630 , - 3789 , - 3108 , - 2587 , - 2226 , - 2025 , - 1984 , - 2103 , - 2382 , - 2821 , - 3420 , - 4179 , - 5098 , - 1057 , - 2296 , - 3695 , - 134 , - 1853 , - 3732 , - 651 , - 2850 , - 89 , - 2608 , - 167 , - 3006 , - 885 , - 4044 , - 2243 , - 602 , - 4241 , - 2920 , - 1759 , - 758 , - 5037 , - 4356 , - 3835 , - 3474 , - 3273 , - 3232 , - 3351 , - 3630 , - 4069 , - 4668 , - 307 , - 1226 , - 2305 , - 3544 , - 4943 , - 1382 , - 3101 , - 4980 , - 1899 , - 4098 , - 1337 , - 3856 , - 1415 , - 4254 , - 2133 , - 172 , - 3491 , - 1850 , - 369 , - 4168 , - 3007 , - 2006 , - 1165 , - 484 , - 5083 , - 4722 , - 4521 , - 4480 , - 4599 , - 4878 , - 197 , - 796 , - 1555 , - 2474 , - 3553 , - 4792 , - 1071 , - 2630 , - 4349 , - 1108 , - 3147 , - 226 , - 2585 , - 5104 , - 2663 , - 382 , - 3381 , - 1420 , - 4739 , - 3098 , - 1617 , - 296 , - 4255 , - 3254 , - 2413 , - 1732 , - 1211 , - 850 , - 649 , - 608 , - 727 , - 1006 , - 1445 , - 2044 , - 2803 , - 3722 , - 4801 , - 920 , - 2319 , - 3878 , - 477 , - 2356 , - 4395 , - 1474 , - 3833 , - 1232 , - 3911 , - 1630 , - 4629 , - 2668 , - 867 , - 4346 , - 2865 , - 1544 , - 383 , - 4502 , - 3661 , - 2980 , - 2459 , - 2098 , - 1897 , - 1856 , - 1975 , - 2254 , - 2693 , - 3292 , - 4051 , - 4970 , - 929 , - 2168 , - 3567 , - 6 , - 1725 , - 3604 , - 523 , - 2722 , - 5081 , - 2480 , - 39 , - 2878 , - 757 , - 3916 , - 2115 , - 474 , - 4113 , - 2792 , - 1631 , - 630 , - 4909 , - 4228 , - 3707 , - 3346 , - 3145 , - 3104 , - 3223 , - 3502 , - 3941 , - 4540 , - 179 , - 1098 , - 2177 , - 3416 , - 4815 , - 1254 , - 2973 , - 4852 , - 1771 , - 3970 , - 1209 , - 3728 , - 1287 , - 4126 , - 2005 , - 44 , - 3363 , - 1722 , - 241 , - 4040 , - 2879 , - 1878 , - 1037 , - 356 , - 4955 , - 4594 , - 4393 , - 4352 , - 4471 , - 4750 , - 69 , - 668 , - 1427 , - 2346 , - 3425 , - 4664 , - 943 , - 2502 , - 4221 , - 980 , - 3019 , - 98 , - 2457 , - 4976 , - 2535 , - 254 , - 3253 , - 1292 , - 4611 , - 2970 , - 1489 , - 168 , - 4127 , - 3126 , - 2285 , - 1604 , - 1083 , - 722 , - 521 , - 480 , - 599 , - 878 , - 1317 , - 1916 , - 2675 , - 3594 , - 4673 , - 792 , - 2191 , - 3750 , - 349 , - 2228 , - 4267 , - 1346 , - 3705 , - 1104 , - 3783 , - 1502 , - 4501 , - 2540 , - 739 , - 4218 , - 2737 , - 1416 , - 255 , - 4374 , - 3533 , - 2852 , - 2331 , - 1970 , - 1769 , - 1728 , - 1847 , - 2126 , - 2565 , - 3164 , - 3923 , - 4842 , - 801 , - 2040 , - 3439 , - 4998 , - 1597 , - 3476 , - 395 , - 2594 , - 4953 , - 2352 , - 5031 , - 2750 , - 629 , - 3788 , - 1987 , - 346 , - 3985 , - 2664 , - 1503 , - 502 , - 4781 , - 4100 , - 3579 , - 3218 , - 3017 , - 2976 , - 3095 , - 3374 , - 3813 , - 4412 , - 51 , - 970 , - 2049 , - 3288 , - 4687 , - 1126 , - 2845 , - 4724 , - 1643 , - 3842 , - 1081 , - 3600 , - 1159 , - 3998 , - 1877 , - 5036 , - 3235 , - 1594 , - 113 , - 3912 , - 2751 , - 1750 , - 909 , - 228 , - 4827 , - 4466 , - 4265 , - 4224 , - 4343 , - 4622 , - 5061 , - 540 , - 1299 , - 2218 , - 3297 , - 4536 , - 815 , - 2374 , - 4093 , - 852 , - 2891 , - 5090 , - 2329 , - 4848 , - 2407 , - 126 , - 3125 , - 1164 , - 4483 , - 2842 , - 1361 , - 40 , - 3999 , - 2998 , - 2157 , - 1476 , - 955 , - 594 , - 393 , - 352 , - 471 , - 750 , - 1189 , - 1788 , - 2547 , - 3466 , - 4545 , - 664 , - 2063 , - 3622 , - 221 , - 2100 , - 4139 , - 1218 , - 3577 , - 976 , - 3655 , - 1374 , - 4373 , - 2412 , - 611 , - 4090 , - 2609 , - 1288 , - 127 , - 4246 , - 3405 , - 2724 , - 2203 , - 1842 , - 1641 , - 1600 , - 1719 , - 1998 , - 2437 , - 3036 , - 3795 , - 4714 , - 673 , - 1912 , - 3311 , - 4870 , - 1469 , - 3348 , - 267 , - 2466 , - 4825 , - 2224 , - 4903 , - 2622 , - 501 , - 3660 , - 1859 , - 218 , - 3857 , - 2536 , - 1375 , - 374 , - 4653 , - 3972 , - 3451 , - 3090 , - 2889 , - 2848 , - 2967 , - 3246 , - 3685 , - 4284 , - 5043 , - 842 , - 1921 , - 3160 , - 4559 , - 998 , - 2717 , - 4596 , - 1515 , - 3714 , - 953 , - 3472 , - 1031 , - 3870 , - 1749 , - 4908 , - 3107 , - 1466 , - 5105 , - 3784 , - 2623 , - 1622 , - 781 , - 100 , - 4699 , - 4338 , - 4137 , - 4096 , - 4215 , - 4494 , - 4933 , - 412 , - 1171 , - 2090 , - 3169 , - 4408 , - 687 , - 2246 , - 3965 , - 724 , - 2763 , - 4962 , - 2201 , - 4720 , - 2279 , - 5118 , - 2997 , - 1036 , - 4355 , - 2714 , - 1233 , - 5032 , - 3871 , - 2870 , - 2029 , - 1348 , - 827 , - 466 , - 265 , - 224 , - 343 , - 622 , - 1061 , - 1660 , - 2419 , - 3338 , - 4417 , - 536 , - 1935 , - 3494 , - 93 , - 1972 , - 4011 , - 1090 , - 3449 , - 848 , - 3527 , - 1246 , - 4245 , - 2284 , - 483 , - 3962 , - 2481 , - 1160 , - 5119 , - 4118 , - 3277 , - 2596 , - 2075 , - 1714 , - 1513 , - 1472 , - 1591 , - 1870 , - 2309 , - 2908 , - 3667 , - 4586 , - 545 , - 1784 , - 3183 , - 4742 , - 1341 , - 3220 , - 139 , - 2338 , - 4697 , - 2096 , - 4775 , - 2494 , - 373 , - 3532 , - 1731 , - 90 , - 3729 , - 2408 , - 1247 , - 246 , - 4525 , - 3844 , - 3323 , - 2962 , - 2761 , - 2720 , - 2839 , - 3118 , - 3557 , - 4156 , - 4915 , - 714 , - 1793 , - 3032 , - 4431 , - 870 , - 2589 , - 4468 , - 1387 , - 3586 , - 825 , - 3344 , - 903 , - 3742 , - 1621 , - 4780 , - 2979 , - 1338 , - 4977 , - 3656 , - 2495 , - 1494 , - 653 , - 5092 , - 4571 , - 4210 , - 4009 , - 3968 , - 4087 , - 4366 , - 4805 , - 284 , - 1043 , - 1962 , - 3041 , - 4280 , - 559 , - 2118 , - 3837 , - 596 , - 2635 , - 4834 , - 2073 , - 4592 , - 2151 , - 4990 , - 2869 , - 908 , - 4227 , - 2586 , - 1105 , - 4904 , - 3743 , - 2742 , - 1901 , - 1220 , - 699 , - 338 , - 137 , - 96 , - 215 , - 494 , - 933 , - 1532 , - 2291 , - 3210 , - 4289 , - 408 , - 1807 , - 3366 , - 5085 , - 1844 , - 3883 , - 962 , - 3321 , - 720 , - 3399 , - 1118 , - 4117 , - 2156 , - 355 , - 3834 , - 2353 , - 1032 , - 4991 , - 3990 , - 3149 , - 2468 , - 1947 , - 1586 , - 1385 , - 1344 , - 1463 , - 1742 , - 2181 , - 2780 , - 3539 , - 4458 , - 417 , - 1656 , - 3055 , - 4614 , - 1213 , - 3092 , - 11 , - 2210 , - 4569 , - 1968 , - 4647 , - 2366 , - 245 , - 3404 , - 1603 , - 5082 , - 3601 , - 2280 , - 1119 , - 118 , - 4397 , - 3716 , - 3195 , - 2834 , - 2633 , - 2592 , - 2711 , - 2990 , - 3429 , - 4028 , - 4787 , - 586 , - 1665 , - 2904 , - 4303 , - 742 , - 2461 , - 4340 , - 1259 , - 3458 , - 697 , - 3216 , - 775 , - 3614 , - 1493 , - 4652 , - 2851 , - 1210 , - 4849 , - 3528 , - 2367 , - 1366 , - 525 , - 4964 , - 4443 , - 4082 , - 3881 , - 3840 , - 3959 , - 4238 , - 4677 , - 156 , - 915 , - 1834 , - 2913 , - 4152 , - 431 , - 1990 , - 3709 , - 468 , - 2507 , - 4706 , - 1945 , - 4464 , - 2023 , - 4862 , - 2741 , - 780 , - 4099 , - 2458 , - 977 , - 4776 , - 3615 , - 2614 , - 1773 , - 1092 , - 571 , - 210 , - 9 , - 5088 , - 87 , - 366 , - 805 , - 1404 , - 2163 , - 3082 , - 4161 , - 280 , - 1679 , - 3238 , - 4957 , - 1716 , - 3755 , - 834 , - 3193 , - 592 , - 3271 , - 990 , - 3989 , - 2028 , - 227 , - 3706 , - 2225 , - 904 , - 4863 , - 3862 , - 3021 , - 2340 , - 1819 , - 1458 , - 1257 , - 1216 , - 1335 , - 1614 , - 2053 , - 2652 , - 3411 , - 4330 , - 289 , - 1528 , - 2927 , - 4486 , - 1085 , - 2964 , - 5003 , - 2082 , - 4441 , - 1840 , - 4519 , - 2238 , - 117 , - 3276 , - 1475 , - 4954 , - 3473 , - 2152 , - 991 , - 5110 , - 4269 , - 3588 , - 3067 , - 2706 , - 2505 , - 2464 , - 2583 , - 2862 , - 3301 , - 3900 , - 4659 , - 458 , - 1537 , - 2776 , - 4175 , - 614 , - 2333 , - 4212 , - 1131 , - 3330 , - 569 , - 3088 , - 647 , - 3486 , - 1365 , - 4524 , - 2723 , - 1082 , - 4721 , - 3400 , - 2239 , - 1238 , - 397 , - 4836 , - 4315 , - 3954 , - 3753 , - 3712 , - 3831 , - 4110 , - 4549 , - 28 , - 787 , - 1706 , - 2785 , - 4024 , - 303 , - 1862 , - 3581 , - 340 , - 2379 , - 4578 , - 1817 , - 4336 , - 1895 , - 4734 , - 2613 , - 652 , - 3971 , - 2330 , - 849 , - 4648 , - 3487 , - 2486 , - 1645 , - 964 , - 443 , - 82 , - 5001 , - 4960 , - 5079 , - 238 , - 677 , - 1276 , - 2035 , - 2954 , - 4033 , - 152 , - 1551 , - 3110 , - 4829 , - 1588 , - 3627 , - 706 , - 3065 , - 464 , - 3143 , - 862 , - 3861 , - 1900 , - 99 , - 3578 , - 2097 , - 776 , - 4735 , - 3734 , - 2893 , - 2212 , - 1691 , - 1330 , - 1129 , - 1088 , - 1207 , - 1486 , - 1925 , - 2524 , - 3283 , - 4202 , - 161 , - 1400 , - 2799 , - 4358 , - 957 , - 2836 , - 4875 , - 1954 , - 4313 , - 1712 , - 4391 , - 2110 , - 5109 , - 3148 , - 1347 , - 4826 , - 3345 , - 2024 , - 863 , - 4982 , - 4141 , - 3460 , - 2939 , - 2578 , - 2377 , - 2336 , - 2455 , - 2734 , - 3173 , - 3772 , - 4531 , - 330 , - 1409 , - 2648 , - 4047 , - 486 , - 2205 , - 4084 , - 1003 , - 3202 , - 441 , - 2960 , - 519 , - 3358 , - 1237 , - 4396 , - 2595 , - 954 , - 4593 , - 3272 , - 2111 , - 1110 , - 269 , - 4708 , - 4187 , - 3826 , - 3625 , - 3584 , - 3703 , - 3982 , - 4421 , - 5020 , - 659 , - 1578 , - 2657 , - 3896 , - 175 , - 1734 , - 3453 , - 212 , - 2251 , - 4450 , - 1689 , - 4208 , - 1767 , - 4606 , - 2485 , - 524 , - 3843 , - 2202 , - 721 , - 4520 , - 3359 , - 2358 , - 1517 , - 836 , - 315 , - 5074 , - 4873 , - 4832 , - 4951 , - 110 , - 549 , - 1148 , - 1907 , - 2826 , - 3905 , - 24 , - 1423 , - 2982 , - 4701 , - 1460 , - 3499 , - 578 , - 2937 , - 336 , - 3015 , - 734 , - 3733 , - 1772 , - 5091 , - 3450 , - 1969 , - 648 , - 4607 , - 3606 , - 2765 , - 2084 , - 1563 , - 1202 , - 1001 , - 960 , - 1079 , - 1358 , - 1797 , - 2396 , - 3155 , - 4074 , - 33 , - 1272 , - 2671 , - 4230 , - 829 , - 2708 , - 4747 , - 1826 , - 4185 , - 1584 , - 4263 , - 1982 , - 4981 , - 3020 , - 1219 , - 4698 , - 3217 , - 1896 , - 735 , - 4854 , - 4013 , - 3332 , - 2811 , - 2450 , - 2249 , - 2208 , - 2327 , - 2606 , - 3045 , - 3644 , - 4403 , - 202 , - 1281 , - 2520 , - 3919 , - 358 , - 2077 , - 3956 , - 875 , - 3074 , - 313 , - 2832 , - 391 , - 3230 , - 1109 , - 4268 , - 2467 , - 826 , - 4465 , - 3144 , - 1983 , - 982 , - 141 , - 4580 , - 4059 , - 3698 , - 3497 , - 3456 , - 3575 , - 3854 , - 4293 , - 4892 , - 531 , - 1450 , - 2529 , - 3768 , - 47 , - 1606 , - 3325 , - 84 , - 2123 , - 4322 , - 1561 , - 4080 , - 1639 , - 4478 , - 2357 , - 396 , - 3715 , - 2074 , - 593 , - 4392 , - 3231 , - 2230 , - 1389 , - 708 , - 187 , - 4946 , - 4745 , - 4704 , - 4823 , - 5102 , - 421 , - 1020 , - 1779 , - 2698 , - 3777 , - 5016 , - 1295 , - 2854 , - 4573 , - 1332 , - 3371 , - 450 , - 2809 , - 208 , - 2887 , - 606 , - 3605 , - 1644 , - 4963 , - 3322 , - 1841 , - 520 , - 4479 , - 3478 , - 2637 , - 1956 , - 1435 , - 1074 , - 873 , - 832 , - 951 , - 1230 , - 1669 , - 2268 , - 3027 , - 3946 , - 5025 , - 1144 , - 2543 , - 4102 , - 701 , - 2580 , - 4619 , - 1698 , - 4057 , - 1456 , - 4135 , - 1854 , - 4853 , - 2892 , - 1091 , - 4570 , - 3089 , - 1768 , - 607 , - 4726 , - 3885 , - 3204 , - 2683 , - 2322 , - 2121 , - 2080 , - 2199 , - 2478 , - 2917 , - 3516 , - 4275 , - 74 , - 1153 , - 2392 , - 3791 , - 230 , - 1949 , - 3828 , - 747 , - 2946 , - 185 , - 2704 , - 263 , - 3102 , - 981 , - 4140 , - 2339 , - 698 , - 4337 , - 3016 , - 1855 , - 854 , - 13 , - 4452 , - 3931 , - 3570 , - 3369 , - 3328 , - 3447 , - 3726 , - 4165 , - 4764 , - 403 , - 1322 , - 2401 , - 3640 , - 5039 , - 1478 , - 3197 , - 5076 , - 1995 , - 4194 , - 1433 , - 3952 , - 1511 , - 4350 , - 2229 , - 268 , - 3587 , - 1946 , - 465 , - 4264 , - 3103 , - 2102 , - 1261 , - 580 , - 59 , - 4818 , - 4617 , - 4576 , - 4695 , - 4974 , - 293 , - 892 , - 1651 , - 2570 , - 3649 , - 4888 , - 1167 , - 2726 , - 4445 , - 1204 , - 3243 , - 322 , - 2681 , - 80 , - 2759 , - 478 , - 3477 , - 1516 , - 4835 , - 3194 , - 1713 , - 392 , - 4351 , - 3350 , - 2509 , - 1828 , - 1307 , - 946 , - 745 , - 704 , - 823 , - 1102 , - 1541 , - 2140 , - 2899 , - 3818 , - 4897 , - 1016 , - 2415 , - 3974 , - 573 , - 2452 , - 4491 , - 1570 , - 3929 , - 1328 , - 4007 , - 1726 , - 4725 , - 2764 , - 963 , - 4442 , - 2961 , - 1640 , - 479 , - 4598 , - 3757 , - 3076 , - 2555 , - 2194 , - 1993 , - 1952 , - 2071 , - 2350 , - 2789 , - 3388 , - 4147 , - 5066 , - 1025 , - 2264 , - 3663 , - 102 , - 1821 , - 3700 , - 619 , - 2818 , - 57 , - 2576 , - 135 , - 2974 , - 853 , - 4012 , - 2211 , - 570 , - 4209 , - 2888 , - 1727 , - 726 , - 5005 , - 4324 , - 3803 , - 3442 , - 3241 , - 3200 , - 3319 , - 3598 , - 4037 , - 4636 , - 275 , - 1194 , - 2273 , - 3512 , - 4911 , - 1350 , - 3069 , - 4948 , - 1867 , - 4066 , - 1305 , - 3824 , - 1383 , - 4222 , - 2101 , - 140 , - 3459 , - 1818 , - 337 , - 4136 , - 2975 , - 1974 , - 1133 , - 452 , - 5051 , - 4690 , - 4489 , - 4448 , - 4567 , - 4846 , - 165 , - 764 , - 1523 , - 2442 , - 3521 , - 4760 , - 1039 , - 2598 , - 4317 , - 1076 , - 3115 , - 194 , - 2553 , - 5072 , - 2631 , - 350 , - 3349 , - 1388 , - 4707 , - 3066 , - 1585 , - 264 , - 4223 , - 3222 , - 2381 , - 1700 , - 1179 , - 818 , - 617 , - 576 , - 695 , - 974 , - 1413 , - 2012 , - 2771 , - 3690 , - 4769 , - 888 , - 2287 , - 3846 , - 445 , - 2324 , - 4363 , - 1442 , - 3801 , - 1200 , - 3879 , - 1598 , - 4597 , - 2636 , - 835 , - 4314 , - 2833 , - 1512 , - 351 , - 4470 , - 3629 , - 2948 , - 2427 , - 2066 , - 1865 , - 1824 , - 1943 , - 2222 , - 2661 , - 3260 , - 4019 , - 4938 , - 897 , - 2136 , - 3535 , - 5094 , - 1693 , - 3572 , - 491 , - 2690 , - 5049 , - 2448 , - 7 , - 2846 , - 725 , - 3884 , - 2083 , - 442 , - 4081 , - 2760 , - 1599 , - 598 , - 4877 , - 4196 , - 3675 , - 3314 , - 3113 , - 3072 , - 3191 , - 3470 , - 3909 , - 4508 , - 147 , - 1066 , - 2145 , - 3384 , - 4783 , - 1222 , - 2941 , - 4820 , - 1739 , - 3938 , - 1177 , - 3696 , - 1255 , - 4094 , - 1973 , - 12 , - 3331 , - 1690 , - 209 , - 4008 , - 2847 , - 1846 , - 1005 , - 324 , - 4923 , - 4562 , - 4361 , - 4320 , - 4439 , - 4718 , - 37 , - 636 , - 1395 , - 2314 , - 3393 , - 4632 , - 911 , - 2470 , - 4189 , - 948 , - 2987 , - 66 , - 2425 , - 4944 , - 2503 , - 222 , - 3221 , - 1260 , - 4579 , - 2938 , - 1457 , - 136 , - 4095 , - 3094 , - 2253 , - 1572 , - 1051 , - 690 , - 489 , - 448 , - 567 , - 846 , - 1285 , - 1884 , - 2643 , - 3562 , - 4641 , - 760 , - 2159 , - 3718 , - 317 , - 2196 , - 4235 , - 1314 , - 3673 , - 1072 , - 3751 , - 1470 , - 4469 , - 2508 , - 707 , - 4186 , - 2705 , - 1384 , - 223 , - 4342 , - 3501 , - 2820 , - 2299 , - 1938 , - 1737 , - 1696 , - 1815 , - 2094 , - 2533 , - 3132 , - 3891 , - 4810 , - 769 , - 2008 , - 3407 , - 4966 , - 1565 , - 3444 , - 363 , - 2562 , - 4921 , - 2320 , - 4999 , - 2718 , - 597 , - 3756 , - 1955 , - 314 , - 3953 , - 2632 , - 1471 , - 470 , - 4749 , - 4068 , - 3547 , - 3186 , - 2985 , - 2944 , - 3063 , - 3342 , - 3781 , - 4380 , - 19 , - 938 , - 2017 , - 3256 , - 4655 , - 1094 , - 2813 , - 4692 , - 1611 , - 3810 , - 1049 , - 3568 , - 1127 , - 3966 , - 1845 , - 5004 , - 3203 , - 1562 , - 81 , - 3880 , - 2719 , - 1718 , - 877 , - 196 , - 4795 , - 4434 , - 4233 , - 4192 , - 4311 , - 4590 , - 5029 , - 508 , - 1267 , - 2186 , - 3265 , - 4504 , - 783 , - 2342 , - 4061 , - 820 , - 2859 , - 5058 , - 2297 , - 4816 , - 2375 , - 94 , - 3093 , - 1132 , - 4451 , - 2810 , - 1329 , - 8 , - 3967 , - 2966 , - 2125 , - 1444 , - 923 , - 562 , - 361 , - 320 , - 439 , - 718 , - 1157 , - 1756 , - 2515 , - 3434 , - 4513 , - 632 , - 2031 , - 3590 , - 189 , - 2068 , - 4107 , - 1186 , - 3545 , - 944 , - 3623 , - 1342 , - 4341 , - 2380 , - 579 , - 4058 , - 2577 , - 1256 , - 95 , - 4214 , - 3373 , - 2692 , - 2171 , - 1810 , - 1609 , - 1568 , - 1687 , - 1966 , - 2405 , - 3004 , - 3763 , - 4682 , - 641 , - 1880 , - 3279 , - 4838 , - 1437 , - 3316 , - 235 , - 2434 , - 4793 , - 2192 , - 4871 , - 2590 , - 469 , - 3628 , - 1827 , - 186 , - 3825 , - 2504 , - 1343 , - 342 , - 4621 , - 3940 , - 3419 , - 3058 , - 2857 , - 2816 , - 2935 , - 3214 , - 3653 , - 4252 , - 5011 , - 810 , - 1889 , - 3128 , - 4527 , - 966 , - 2685 , - 4564 , - 1483 , - 3682 , - 921 , - 3440 , - 999 , - 3838 , - 1717 , - 4876 , - 3075 , - 1434 , - 5073 , - 3752 , - 2591 , - 1590 , - 749 , - 68 , - 4667 , - 4306 , - 4105 , - 4064 , - 4183 , - 4462 , - 4901 , - 380 , - 1139 , - 2058 , - 3137 , - 4376 , - 655 , - 2214 , - 3933 , - 692 , - 2731 , - 4930 , - 2169 , - 4688 , - 2247 , - 5086 , - 2965 , - 1004 , - 4323 , - 2682 , - 1201 , - 5000 , - 3839 , - 2838 , - 1997 , - 1316 , - 795 , - 434 , - 233 , - 192 , - 311 , - 590 , - 1029 , - 1628 , - 2387 , - 3306 , - 4385 , - 504 , - 1903 , - 3462 , - 61 , - 1940 , - 3979 , - 1058 , - 3417 , - 816 , - 3495 , - 1214 , - 4213 , - 2252 , - 451 , - 3930 , - 2449 , - 1128 , - 5087 , - 4086 , - 3245 , - 2564 , - 2043 , - 1682 , - 1481 , - 1440 , - 1559 , - 1838 , - 2277 , - 2876 , - 3635 , - 4554 , - 513 , - 1752 , - 3151 , - 4710 , - 1309 , - 3188 , - 107 , - 2306 , - 4665 , - 2064 , - 4743 , - 2462 , - 341 , - 3500 , - 1699 , - 58 , - 3697 , - 2376 , - 1215 , - 214 , - 4493 , - 3812 , - 3291 , - 2930 , - 2729 , - 2688 , - 2807 , - 3086 , - 3525 , - 4124 , - 4883 , - 682 , - 1761 , - 3000 , - 4399 , - 838 , - 2557 , - 4436 , - 1355 , - 3554 , - 793 , - 3312 , - 871 , - 3710 , - 1589 , - 4748 , - 2947 , - 1306 , - 4945 , - 3624 , - 2463 , - 1462 , - 621 , - 5060 , - 4539 , - 4178 , - 3977 , - 3936 , - 4055 , - 4334 , - 4773 , - 252 , - 1011 , - 1930 , - 3009 , - 4248 , - 527 , - 2086 , - 3805 , - 564 , - 2603 , - 4802 , - 2041 , - 4560 , - 2119 , - 4958 , - 2837 , - 876 , - 4195 , - 2554 , - 1073 , - 4872 , - 3711 , - 2710 , - 1869 , - 1188 , - 667 , - 306 , - 105 , - 64 , - 183 , - 462 , - 901 , - 1500 , - 2259 , - 3178 , - 4257 , - 376 , - 1775 , - 3334 , - 5053 , - 1812 , - 3851 , - 930 , - 3289 , - 688 , - 3367 , - 1086 , - 4085 , - 2124 , - 323 , - 3802 , - 2321 , - 1000 , - 4959 , - 3958 , - 3117 , - 2436 , - 1915 , - 1554 , - 1353 , - 1312 , - 1431 , - 1710 , - 2149 , - 2748 , - 3507 , - 4426 , - 385 , - 1624 , - 3023 , - 4582 , - 1181 , - 3060 , - 5099 , - 2178 , - 4537 , - 1936 , - 4615 , - 2334 , - 213 , - 3372 , - 1571 , - 5050 , - 3569 , - 2248 , - 1087 , - 86 , - 4365 , - 3684 , - 3163 , - 2802 , - 2601 , - 2560 , - 2679 , - 2958 , - 3397 , - 3996 , - 4755 , - 554 , - 1633 , - 2872 , - 4271 , - 710 , - 2429 , - 4308 , - 1227 , - 3426 , - 665 , - 3184 , - 743 , - 3582 , - 1461 , - 4620 , - 2819 , - 1178 , - 4817 , - 3496 , - 2335 , - 1334 , - 493 , - 4932 , - 4411 , - 4050 , - 3849 , - 3808 , - 3927 , - 4206 , - 4645 , - 124 , - 883 , - 1802 , - 2881 , - 4120 , - 399 , - 1958 , - 3677 , - 436 , - 2475 , - 4674 , - 1913 , - 4432 , - 1991 , - 4830 , - 2709 , - 748 , - 4067 , - 2426 , - 945 , - 4744 , - 3583 , - 2582 , - 1741 , - 1060 , - 539 , - 178 , - 5097 , - 5056 , - 55 , - 334 , - 773 , - 1372 , - 2131 , - 3050 , - 4129 , - 248 , - 1647 , - 3206 , - 4925 , - 1684 , - 3723 , - 802 , - 3161 , - 560 , - 3239 , - 958 , - 3957 , - 1996 , - 195 , - 3674 , - 2193 , - 872 , - 4831 , - 3830 , - 2989 , - 2308 , - 1787 , - 1426 , - 1225 , - 1184 , - 1303 , - 1582 , - 2021 , - 2620 , - 3379 , - 4298 , - 257 , - 1496 , - 2895 , - 4454 , - 1053 , - 2932 , - 4971 , - 2050 , - 4409 , - 1808 , - 4487 , - 2206 , - 85 , - 3244 , - 1443 , - 4922 , - 3441 , - 2120 , - 959 , - 5078 , - 4237 , - 3556 , - 3035 , - 2674 , - 2473 , - 2432 , - 2551 , - 2830 , - 3269 , - 3868 , - 4627 , - 426 , - 1505 , - 2744 , - 4143 , - 582 , - 2301 , - 4180 , - 1099 , - 3298 , - 537 , - 3056 , - 615 , - 3454 , - 1333 , - 4492 , - 2691 , - 1050 , - 4689 , - 3368 , - 2207 , - 1206 , - 365 , - 4804 , - 4283 , - 3922 , - 3721 , - 3680 , - 3799 , - 4078 , - 4517 , - 5116 , - 755 , - 1674 , - 2753 , - 3992 , - 271 , - 1830 , - 3549 , - 308 , - 2347 , - 4546 , - 1785 , - 4304 , - 1863 , - 4702 , - 2581 , - 620 , - 3939 , - 2298 , - 817 , - 4616 , - 3455 , - 2454 , - 1613 , - 932 , - 411 , - 50 , - 4969 , - 4928 , - 5047 , - 206 , - 645 , - 1244 , - 2003 , - 2922 , - 4001 , - 120 , - 1519 , - 3078 , - 4797 , - 1556 , - 3595 , - 674 , - 3033 , - 432 , - 3111 , - 830 , - 3829 , - 1868 , - 67 , - 3546 , - 2065 , - 744 , - 4703 , - 3702 , - 2861 , - 2180 , - 1659 , - 1298 , - 1097 , - 1056 , - 1175 , - 1454 , - 1893 , - 2492 , - 3251 , - 4170 , - 129 , - 1368 , - 2767 , - 4326 , - 925 , - 2804 , - 4843 , - 1922 , - 4281 , - 1680 , - 4359 , - 2078 , - 5077 , - 3116 , - 1315 , - 4794 , - 3313 , - 1992 , - 831 , - 4950 , - 4109 , - 3428 , - 2907 , - 2546 , - 2345 , - 2304 , - 2423 , - 2702 , - 3141 , - 3740 , - 4499 , - 298 , - 1377 , - 2616 , - 4015 , - 454 , - 2173 , - 4052 , - 971 , - 3170 , - 409 , - 2928 , - 487 , - 3326 , - 1205 , - 4364 , - 2563 , - 922 , - 4561 , - 3240 , - 2079 , - 1078 , - 237 , - 4676 , - 4155 , - 3794 , - 3593 , - 3552 , - 3671 , - 3950 , - 4389 , - 4988 , - 627 , - 1546 , - 2625 , - 3864 , - 143 , - 1702 , - 3421 , - 180 , - 2219 , - 4418 , - 1657 , - 4176 , - 1735 , - 4574 , - 2453 , - 492 , - 3811 , - 2170 , - 689 , - 4488 , - 3327 , - 2326 , - 1485 , - 804 , - 283 , - 5042 , - 4841 , - 4800 , - 4919 , - 78 , - 517 , - 1116 , - 1875 , - 2794 , - 3873 , - 5112 , - 1391 , - 2950 , - 4669 , - 1428 , - 3467 , - 546 , - 2905 , - 304 , - 2983 , - 702 , - 3701 , - 1740 , - 5059 , - 3418 , - 1937 , - 616 , - 4575 , - 3574 , - 2733 , - 2052 , - 1531 , - 1170 , - 969 , - 928 , - 1047 , - 1326 , - 1765 , - 2364 , - 3123 , - 4042 , - 1 , - 1240 , - 2639 , - 4198 , - 797 , - 2676 , - 4715 , - 1794 , - 4153 , - 1552 , - 4231 , - 1950 , - 4949 , - 2988 , - 1187 , - 4666 , - 3185 , - 1864 , - 703 , - 4822 , - 3981 , - 3300 , - 2779 , - 2418 , - 2217 , - 2176 , - 2295 , - 2574 , - 3013 , - 3612 , - 4371 , - 170 , - 1249 , - 2488 , - 3887 , - 326 , - 2045 , - 3924 , - 843 , - 3042 , - 281 , - 2800 , - 359 , - 3198 , - 1077 , - 4236 , - 2435 , - 794 , - 4433 , - 3112 , - 1951 , - 950 , - 109 , - 4548 , - 4027 , - 3666 , - 3465 , - 3424 , - 3543 , - 3822 , - 4261 , - 4860 , - 499 , - 1418 , - 2497 , - 3736 , - 15 , - 1574 , - 3293 , - 52 , - 2091 , - 4290 , - 1529 , - 4048 , - 1607 , - 4446 , - 2325 , - 364 , - 3683 , - 2042 , - 561 , - 4360 , - 3199 , - 2198 , - 1357 , - 676 , - 155 , - 4914 , - 4713 , - 4672 , - 4791 , - 5070 , - 389 , - 988 , - 1747 , - 2666 , - 3745 , - 4984 , - 1263 , - 2822 , - 4541 , - 1300 , - 3339 , - 418 , - 2777 , - 176 , - 2855 , - 574 , - 3573 , - 1612 , - 4931 , - 3290 , - 1809 , - 488 , - 4447 , - 3446 , - 2605 , - 1924 , - 1403 , - 1042 , - 841 , - 800 , - 919 , - 1198 , - 1637 , - 2236 , - 2995 , - 3914 , - 4993 , - 1112 , - 2511 , - 4070 , - 669 , - 2548 , - 4587 , - 1666 , - 4025 , - 1424 , - 4103 , - 1822 , - 4821 , - 2860 , - 1059 , - 4538 , - 3057 , - 1736 , - 575 , - 4694 , - 3853 , - 3172 , - 2651 , - 2290 , - 2089 , - 2048 , - 2167 , - 2446 , - 2885 , - 3484 , - 4243 , - 42 , - 1121 , - 2360 , - 3759 , - 198 , - 1917 , - 3796 , - 715 , - 2914 , - 153 , - 2672 , - 231 , - 3070 , - 949 , - 4108 , - 2307 , - 666 , - 4305 , - 2984 , - 1823 , - 822 , - 5101 , - 4420 , - 3899 , - 3538 , - 3337 , - 3296 , - 3415 , - 3694 , - 4133 , - 4732 , - 371 , - 1290 , - 2369 , - 3608 , - 5007 , - 1446 , - 3165 , - 5044 , - 1963 , - 4162 , - 1401 , - 3920 , - 1479 , - 4318 , - 2197 , - 236 , - 3555 , - 1914 , - 433 , - 4232 , - 3071 , - 2070 , - 1229 , - 548 , - 27 , - 4786 , - 4585 , - 4544 , - 4663 , - 4942 , - 261 , - 860 , - 1619 , - 2538 , - 3617 , - 4856 , - 1135 , - 2694 , - 4413 , - 1172 , - 3211 , - 290 , - 2649 , - 48 , - 2727 , - 446 , - 3445 , - 1484 , - 4803 , - 3162 , - 1681 , - 360 , - 4319 , - 3318 , - 2477 , - 1796 , - 1275 , - 914 , - 713 , - 672 , - 791 , - 1070 , - 1509 , - 2108 , - 2867 , - 3786 , - 4865 , - 984 , - 2383 , - 3942 , - 541 , - 2420 , - 4459 , - 1538 , - 3897 , - 1296 , - 3975 , - 1694 , - 4693 , - 2732 , - 931 , - 4410 , - 2929 , - 1608 , - 447 , - 4566 , - 3725 , - 3044 , - 2523 , - 2162 , - 1961 , - 1920 , - 2039 , - 2318 , - 2757 , - 3356 , - 4115 , - 5034 , - 993 , - 2232 , - 3631 , - 70 , - 1789 , - 3668 , - 587 , - 2786 , - 25 , - 2544 , - 103 , - 2942 , - 821 , - 3980 , - 2179 , - 538 , - 4177 , - 2856 , - 1695 , - 694 , - 4973 , - 4292 , - 3771 , - 3410 , - 3209 , - 3168 , - 3287 , - 3566 , - 4005 , - 4604 , - 243 , - 1162 , - 2241 , - 3480 , - 4879 , - 1318 , - 3037 , - 4916 , - 1835 , - 4034 , - 1273 , - 3792 , - 1351 , - 4190 , - 2069 , - 108 , - 3427 , - 1786 , - 305 , - 4104 , - 2943 , - 1942 , - 1101 , - 420 , - 5019 , - 4658 , - 4457 , - 4416 , - 4535 , - 4814 , - 133 , - 732 , - 1491 , - 2410 , - 3489 , - 4728 , - 1007 , - 2566 , - 4285 , - 1044 , - 3083 , - 162 , - 2521 , - 5040 , - 2599 , - 318 , - 3317 , - 1356 , - 4675 , - 3034 , - 1553 , - 232 , - 4191 , - 3190 , - 2349 , - 1668 , - 1147 , - 786 , - 585 , - 544 , - 663 , - 942 , - 1381 , - 1980 , - 2739 , - 3658 , - 4737 , - 856 , - 2255 , - 3814 , - 413 , - 2292 , - 4331 , - 1410 , - 3769 , - 1168 , - 3847 , - 1566 , - 4565 , - 2604 , - 803 , - 4282 , - 2801 , - 1480 , - 319 , - 4438 , - 3597 , - 2916 , - 2395 , - 2034 , - 1833 , - 1792 , - 1911 , - 2190 , - 2629 , - 3228 , - 3987 , - 4906 , - 865 , - 2104 , - 3503 , - 5062 , - 1661 , - 3540 , - 459 , - 2658 , - 5017 , - 2416 , - 5095 , - 2814 , - 693 , - 3852 , - 2051 , - 410 , - 4049 , - 2728 , - 1567 , - 566 , - 4845 , - 4164 , - 3643 , - 3282 , - 3081 , - 3040 , - 3159 , - 3438 , - 3877 , - 4476 , - 115 , - 1034 , - 2113 , - 3352 , - 4751 , - 1190 , - 2909 , - 4788 , - 1707 , - 3906 , - 1145 , - 3664 , - 1223 , - 4062 , - 1941 , - 5100 , - 3299 , - 1658 , - 177 , - 3976 , - 2815 , - 1814 , - 973 , - 292 , - 4891 , - 4530 , - 4329 , - 4288 , - 4407 , - 4686 , - 5 , - 604 , - 1363 , - 2282 , - 3361 , - 4600 , - 879 , - 2438 , - 4157 , - 916 , - 2955 , - 34 , - 2393 , - 4912 , - 2471 , - 190 , - 3189 , - 1228 , - 4547 , - 2906 , - 1425 , - 104 , - 4063 , - 3062 , - 2221 , - 1540 , - 1019 , - 658 , - 457 , - 416 , - 535 , - 814 , - 1253 , - 1852 , - 2611 , - 3530 , - 4609 , - 728 , - 2127 , - 3686 , - 285 , - 2164 , - 4203 , - 1282 , - 3641 , - 1040 , - 3719 , - 1438 , - 4437 , - 2476 , - 675 , - 4154 , - 2673 , - 1352 , - 191 , - 4310 , - 3469 , - 2788 , - 2267 , - 1906 , - 1705 , - 1664 , - 1783 , - 2062 , - 2501 , - 3100 , - 3859 , - 4778 , - 737 , - 1976 , - 3375 , - 4934 , - 1533 , - 3412 , - 331 , - 2530 , - 4889 , - 2288 , - 4967 , - 2686 , - 565 , - 3724 , - 1923 , - 282 , - 3921 , - 2600 , - 1439 , - 438 , - 4717 , - 4036 , - 3515 , - 3154 , - 2953 , - 2912 , - 3031 , - 3310 , - 3749 , - 4348 , - 5107 , - 906 , - 1985 , - 3224 , - 4623 , - 1062 , - 2781 , - 4660 , - 1579 , - 3778 , - 1017 , - 3536 , - 1095 , - 3934 , - 1813 , - 4972 , - 3171 , - 1530 , - 49 , - 3848 , - 2687 , - 1686 , - 845 , - 164 , - 4763 , - 4402 , - 4201 , - 4160 , - 4279 , - 4558 , - 4997 , - 476 , - 1235 , - 2154 , - 3233 , - 4472 , - 751 , - 2310 , - 4029 , - 788 , - 2827 , - 5026 , - 2265 , - 4784 , - 2343 , - 62 , - 3061 , - 1100 , - 4419 , - 2778 , - 1297 , - 5096 , - 3935 , - 2934 , - 2093 , - 1412 , - 891 , - 530 , - 329 , - 288 , - 407 , - 686 , - 1125 , - 1724 , - 2483 , - 3402 , - 4481 , - 600 , - 1999 , - 3558 , - 157 , - 2036 , - 4075 , - 1154 , - 3513 , - 912 , - 3591 , - 1310 , - 4309 , - 2348 , - 547 , - 4026 , - 2545 , - 1224 , - 63 , - 4182 , - 3341 , - 2660 , - 2139 , - 1778 , - 1577 , - 1536 , - 1655 , - 1934 , - 2373 , - 2972 , - 3731 , - 4650 , - 609 , - 1848 , - 3247 , - 4806 , - 1405 , - 3284 , - 203 , - 2402 , - 4761 , - 2160 , - 4839 , - 2558 , - 437 , - 3596 , - 1795 , - 154 , - 3793 , - 2472 , - 1311 , - 310 , - 4589 , - 3908 , - 3387 , - 3026 , - 2825 , - 2784 , - 2903 , - 3182 , - 3621 , - 4220 , - 4979 , - 778 , - 1857 , - 3096 , - 4495 , - 934 , - 2653 , - 4532 , - 1451 , - 3650 , - 889 , - 3408 , - 967 , - 3806 , - 1685 , - 4844 , - 3043 , - 1402 , - 5041 , - 3720 , - 2559 , - 1558 , - 717 , - 36 , - 4635 , - 4274 , - 4073 , - 4032 , - 4151 , - 4430 , - 4869 , - 348 , - 1107 , - 2026 , - 3105 , - 4344 , - 623 , - 2182 , - 3901 , - 660 , - 2699 , - 4898 , - 2137 , - 4656 , - 2215 , - 5054 , - 2933 , - 972 , - 4291 , - 2650 , - 1169 , - 4968 , - 3807 , - 2806 , - 1965 , - 1284 , - 763 , - 402 , - 201 , - 160 , - 279 , - 558 , - 997 , - 1596 , - 2355 , - 3274 , - 4353 , - 472 , - 1871 , - 3430 , - 29 , - 1908 , - 3947 , - 1026 , - 3385 , - 784 , - 3463 , - 1182 , - 4181 , - 2220 , - 419 , - 3898 , - 2417 , - 1096 , - 5055 , - 4054 , - 3213 , - 2532 , - 2011 , - 1650 , - 1449 , - 1408 , - 1527 , - 1806 , - 2245 , - 2844 , - 3603 , - 4522 , - 481 , - 1720 , - 3119 , - 4678 , - 1277 , - 3156 , - 75 , - 2274 , - 4633 , - 2032 , - 4711 , - 2430 , - 309 , - 3468 , - 1667 , - 26 , - 3665 , - 2344 , - 1183 , - 182 , - 4461 , - 3780 , - 3259 , - 2898 , - 2697 , - 2656 , - 2775 , - 3054 , - 3493 , - 4092 , - 4851 , - 650 , - 1729 , - 2968 , - 4367 , - 806 , - 2525 , - 4404 , - 1323 , - 3522 , - 761 , - 3280 , - 839 , - 3678 , - 1557 , - 4716 , - 2915 , - 1274 , - 4913 , - 3592 , - 2431 , - 1430 , - 589 , - 5028 , - 4507 , - 4146 , - 3945 , - 3904 , - 4023 , - 4302 , - 4741 , - 220 , - 979 , - 1898 , - 2977 , - 4216 , - 495 , - 2054 , - 3773 , - 532 , - 2571 , - 4770 , - 2009 , - 4528 , - 2087 , - 4926 , - 2805 , - 844 , - 4163 , - 2522 , - 1041 , - 4840 , - 3679 , - 2678 , - 1837 , - 1156 , - 635 , - 274 , - 73 , - 32 , - 151 , - 430 , - 869 , - 1468 , - 2227 , - 3146 , - 4225 , - 344 , - 1743 , - 3302 , - 5021 , - 1780 , - 3819 , - 898 , - 3257 , - 656 , - 3335 , - 1054 , - 4053 , - 2092 , - 291 , - 3770 , - 2289 , - 968 , - 4927 , - 3926 , - 3085 , - 2404 , - 1883 , - 1522 , - 1321 , - 1280 , - 1399 , - 1678 , - 2117 , - 2716 , - 3475 , - 4394 , - 353 , - 1592 , - 2991 , - 4550 , - 1149 , - 3028 , - 5067 , - 2146 , - 4505 , - 1904 , - 4583 , - 2302 , - 181 , - 3340 , - 1539 , - 5018 , - 3537 , - 2216 , - 1055 , - 54 , - 4333 , - 3652 , - 3131 , - 2770 , - 2569 , - 2528 , - 2647 , - 2926 , - 3365 , - 3964 , - 4723 , - 522 , - 1601 , - 2840 , - 4239 , - 678 , - 2397 , - 4276 , - 1195 , - 3394 , - 633 , - 3152 , - 711 , - 3550 , - 1429 , - 4588 , - 2787 , - 1146 , - 4785 , - 3464 , - 2303 , - 1302 , - 461 , - 4900 , - 4379 , - 4018 , - 3817 , - 3776 , - 3895 , - 4174 , - 4613 , - 92 , - 851 , - 1770 , - 2849 , - 4088 , - 367 , - 1926 , - 3645 , - 404 , - 2443 , - 4642 , - 1881 , - 4400 , - 1959 , - 4798 , - 2677 , - 716 , - 4035 , - 2394 , - 913 , - 4712 , - 3551 , - 2550 , - 1709 , - 1028 , - 507 , - 146 , - 5065 , - 5024 , - 23 , - 302 , - 741 , - 1340 , - 2099 , - 3018 , - 4097 , - 216 , - 1615 , - 3174 , - 4893 , - 1652 , - 3691 , - 770 , - 3129 , - 528 , - 3207 , - 926 , - 3925 , - 1964 , - 163 , - 3642 , - 2161 , - 840 , - 4799 , - 3798 , - 2957 , - 2276 , - 1755 , - 1394 , - 1193 , - 1152 , - 1271 , - 1550 , - 1989 , - 2588 , - 3347 , - 4266 , - 225 , - 1464 , - 2863 , - 4422 , - 1021 , - 2900 , - 4939 , - 2018 , - 4377 , - 1776 , - 4455 , - 2174 , - 53 , - 3212 , - 1411 , - 4890 , - 3409 , - 2088 , - 927 , - 5046 , - 4205 , - 3524 , - 3003 , - 2642 , - 2441 , - 2400 , - 2519 , - 2798 , - 3237 , - 3836 , - 4595 , - 394 , - 1473 , - 2712 , - 4111 , - 550 , - 2269 , - 4148 , - 1067 , - 3266 , - 505 , - 3024 , - 583 , - 3422 , - 1301 , - 4460 , - 2659 , - 1018 , - 4657 , - 3336 , - 2175 , - 1174 , - 333 , - 4772 , - 4251 , - 3890 , - 3689 , - 3648 , - 3767 , - 4046 , - 4485 , - 5084 , - 723 , - 1642 , - 2721 , - 3960 , - 239 , - 1798 , - 3517 , - 276 , - 2315 , - 4514 , - 1753 , - 4272 , - 1831 , - 4670 , - 2549 , - 588 , - 3907 , - 2266 , - 785 , - 4584 , - 3423 , - 2422 , - 1581 , - 900 , - 379 , - 18 , - 4937 , - 4896 , - 5015 , - 174 , - 613 , - 1212 , - 1971 , - 2890 , - 3969 , - 88 , - 1487 , - 3046 , - 4765 , - 1524 , - 3563 , - 642 , - 3001 , - 400 , - 3079 , - 798 , - 3797 , - 1836 , - 35 , - 3514 , - 2033 , - 712 , - 4671 , - 3670 , - 2829 , - 2148 , - 1627 , - 1266 , - 1065 , - 1024 , - 1143 , - 1422 , - 1861 , - 2460 , - 3219 , - 4138 , - 97 , - 1336 , - 2735 , - 4294 , - 893 , - 2772 , - 4811 , - 1890 , - 4249 , - 1648 , - 4327 , - 2046 , - 5045 , - 3084 , - 1283 , - 4762 , - 3281 , - 1960 , - 799 , - 4918 , - 4077 , - 3396 , - 2875 , - 2514 , - 2313 , - 2272 , - 2391 , - 2670 , - 3109 , - 3708 , - 4467 , - 266 , - 1345 , - 2584 , - 3983 , - 422 , - 2141 , - 4020 , - 939 , - 3138 , - 377 , - 2896 , - 455 , - 3294 , - 1173 , - 4332 , - 2531 , - 890 , - 4529 , - 3208 , - 2047 , - 1046 , - 205 , - 4644 , - 4123 , - 3762 , - 3561 , - 3520 , - 3639 , - 3918 , - 4357 , - 4956 , - 595 , - 1514 , - 2593 , - 3832 , - 111 , - 1670 , - 3389 , - 148 , - 2187 , - 4386 , - 1625 , - 4144 , - 1703 , - 4542 , - 2421 , - 460 , - 3779 , - 2138 , - 657 , - 4456 , - 3295 , - 2294 , - 1453 , - 772 , - 251 , - 5010 , - 4809 , - 4768 , - 4887 , - 46 , - 485 , - 1084 , - 1843 , - 2762 , - 3841 , - 5080 , - 1359 , - 2918 , - 4637 , - 1396 , - 3435 , - 514 , - 2873 , - 272 , - 2951 , - 670 , - 3669 , - 1708 , - 5027 , - 3386 , - 1905 , - 584 , - 4543 , - 3542 , - 2701 , - 2020 , - 1499 , - 1138 , - 937 , - 896 , - 1015 , - 1294 , - 1733 , - 2332 , - 3091 , - 4010 , - 5089 , - 1208 , - 2607 , - 4166 , - 765 , - 2644 , - 4683 , - 1762 , - 4121 , - 1520 , - 4199 , - 1918 , - 4917 , - 2956 , - 1155 , - 4634 , - 3153 , - 1832 , - 671 , - 4790 , - 3949 , - 3268 , - 2747 , - 2386 , - 2185 , - 2144 , - 2263 , - 2542 , - 2981 , - 3580 , - 4339 , - 138 , - 1217 , - 2456 , - 3855 , - 294 , - 2013 , - 3892 , - 811 , - 3010 , - 249 , - 2768 , - 327 , - 3166 , - 1045 , - 4204 , - 2403 , - 762 , - 4401 , - 3080 , - 1919 , - 918 , - 77 , - 4516 , - 3995 , - 3634 , - 3433 , - 3392 , - 3511 , - 3790 , - 4229 , - 4828 , - 467 , - 1386 , - 2465 , - 3704 , - 5103 , - 1542 , - 3261 , - 20 , - 2059 , - 4258 , - 1497 , - 4016 , - 1575 , - 4414 , - 2293 , - 332 , - 3651 , - 2010 , - 529 , - 4328 , - 3167 , - 2166 , - 1325 , - 644 , - 123 , - 4882 , - 4681 , - 4640 , - 4759 , - 5038 , - 357 , - 956 , - 1715 , - 2634 , - 3713 , - 4952 , - 1231 , - 2790 , - 4509 , - 1268 , - 3307 , - 386 , - 2745 , - 144 , - 2823 , - 542 , - 3541 , - 1580 , - 4899 , - 3258 , - 1777 , - 456 , - 4415 , - 3414 , - 2573 , - 1892 , - 1371 , - 1010 , - 809 , - 768 , - 887 , - 1166 , - 1605 , - 2204 , - 2963 , - 3882 , - 4961 , - 1080 , - 2479 , - 4038 , - 637 , - 2516 , - 4555 , - 1634 , - 3993 , - 1392 , - 4071 , - 1790 , - 4789 , - 2828 , - 1027 , - 4506 , - 3025 , - 1704 , - 543 , - 4662 , - 3821 , - 3140 , - 2619 , - 2258 , - 2057 , - 2016 , - 2135 , - 2414 , - 2853 , - 3452 , - 4211 , - 10 , - 1089 , - 2328 , - 3727 , - 166 , - 1885 , - 3764 , - 683 , - 2882 , - 121 , - 2640 , - 199 , - 3038 , - 917 , - 4076 , - 2275 , - 634 , - 4273 , - 2952 , - 1791 , - 790 , - 5069 , - 4388 , - 3867 , - 3506 , - 3305 , - 3264 , - 3383 , - 3662 , - 4101 , - 4700 , - 339 , - 1258 , - 2337 , - 3576 , - 4975 , - 1414 , - 3133 , - 5012 , - 1931 , - 4130 , - 1369 , - 3888 , - 1447 , - 4286 , - 2165 , - 204 , - 3523 , - 1882 , - 401 , - 4200 , - 3039 , - 2038 , - 1197 , - 516 , - 5115 , - 4754 , - 4553 , - 4512 , - 4631 , - 4910 , - 229 , - 828 , - 1587 , - 2506 , - 3585 , - 4824 , - 1103 , - 2662 , - 4381 , - 1140 , - 3179 , - 258 , - 2617 , - 16 , - 2695 , - 414 , - 3413 , - 1452 , - 4771 , - 3130 , - 1649 , - 328 , - 4287 , - 3286 , - 2445 , - 1764 , - 1243 , - 882 , - 681 , - 640 , - 759 , - 1038 , - 1477 , - 2076 , - 2835 , - 3754 , - 4833 , - 952 , - 2351 , - 3910 , - 509 , - 2388 , - 4427 , - 1506 , - 3865 , - 1264 , - 3943 , - 1662 , - 4661 , - 2700 , - 899 , - 4378 , - 2897 , - 1576 , - 415 , - 4534 , - 3693 , - 3012 , - 2491 , - 2130 , - 1929 , - 1888 , - 2007 , - 2286 , - 2725 , - 3324 , - 4083 , - 5002 , - 961 , - 2200 , - 3599 , - 38 , - 1757 , - 3636 , - 555 , - 2754 , - 5113 , - 2512 , - 71 , - 2910 , - 789 , - 3948 , - 2147 , - 506 , - 4145 , - 2824 , - 1663 , - 662 , - 4941 , - 4260 , - 3739 , - 3378 , - 3177 , - 3136 , - 3255 , - 3534 , - 3973 , - 4572 , - 211 , - 1130 , - 2209 , - 3448 , - 4847 , - 1286 , - 3005 , - 4884 , - 1803 , - 4002 , - 1241 , - 3760 , - 1319 , - 4158 , - 2037 , - 76 , - 3395 , - 1754 , - 273 , - 4072 , - 2911 , - 1910 , - 1069 , - 388 , - 4987 , - 4626 , - 4425 , - 4384 , - 4503 , - 4782 , - 101 , - 700 , - 1459 , - 2378 , - 3457 , - 4696 , - 975 , - 2534 , - 4253 , - 1012 , - 3051 , - 130 , - 2489 , - 5008 , - 2567 , - 286 , - 3285 , - 1324 , - 4643 , - 3002 , - 1521 , - 200 , - 4159 , - 3158 , - 2317 , - 1636 , - 1115 , - 754 , - 553 , - 512 , - 631 , - 910 , - 1349 , - 1948 , - 2707 , - 3626 , - 4705 , - 824 , - 2223 , - 3782 , - 381 , - 2260 , - 4299 , - 1378 , - 3737 , - 1136 , - 3815 , - 1534 , - 4533 , - 2572 , - 771 , - 4250 , - 2769 , - 1448 , - 287 , - 4406 , - 3565 , - 2884 , - 2363 , - 2002 , - 1801 , - 1760 , - 1879 , - 2158 , - 2597 , - 3196 , - 3955 , - 4874 , - 833 , - 2072 , - 3471 , - 5030 , - 1629 , - 3508 , - 427 , - 2626 , - 4985 , - 2384 , - 5063 , - 2782 , - 661 , - 3820 , - 2019 , - 378 , - 4017 , - 2696 , - 1535 , - 534 , - 4813 , - 4132 , - 3611 , - 3250 , - 3049 , - 3008 , - 3127 , - 3406 , - 3845 , - 4444 , - 83 , - 1002 , - 2081 , - 3320 , - 4719 , - 1158 , - 2877 , - 4756 , - 1675 , - 3874 , - 1113 , - 3632 , - 1191 , - 4030 , - 1909 , - 5068 , - 3267 , - 1626 , - 145 , - 3944 , - 2783 , - 1782 , - 941 , - 260 , - 4859 , - 4498 , - 4297 , - 4256 , - 4375 , - 4654 , - 5093 , - 572 , - 1331 , - 2250 , - 3329 , - 4568 , - 847 , - 2406 , - 4125 , - 884 , - 2923 , - 2 , - 2361 , - 4880 , - 2439 , - 158 , - 3157 , - 1196 , - 4515 , - 2874 , - 1393 , - 72 , - 4031 , - 3030 , - 2189 , - 1508 , - 987 , - 626 , - 425 , - 384 , - 503 , - 782 , - 1221 , - 1820 , - 2579 , - 3498 , - 4577 , - 696 , - 2095 , - 3654 , - 253 , - 2132 , - 4171 , - 1250 , - 3609 , - 1008 , - 3687 , - 1406 , - 4405 , - 2444 , - 643 , - 4122 , - 2641 , - 1320 , - 159 , - 4278 , - 3437 , - 2756 , - 2235 , - 1874 , - 1673 , - 1632 , - 1751 , - 2030 , - 2469 , - 3068 , - 3827 , - 4746 , - 705 , - 1944 , - 3343 , - 4902 , - 1501 , - 3380 , - 299 , - 2498 , - 4857 , - 2256 , - 4935 , - 2654 , - 533 , - 3692 , - 1891 , - 250 , - 3889 , - 2568 , - 1407 , - 406 , - 4685 , - 4004 , - 3483 , - 3122 , - 2921 , - 2880 , - 2999 , - 3278 , - 3717 , - 4316 , - 5075 , - 874 , - 1953 , - 3192 , - 4591 , - 1030 , - 2749 , - 4628 , - 1547 , - 3746 , - 985 , - 3504 , - 1063 , - 3902 , - 1781 , - 4940 , - 3139 , - 1498 , - 17 , - 3816 , - 2655 , - 1654 , - 813 , - 132 , - 4731 , - 4370 , - 4169 , - 4128 , - 4247 , - 4526 , - 4965 , - 444 , - 1203 , - 2122 , - 3201 , - 4440 , - 719 , - 2278 , - 3997 , - 756 , - 2795 , - 4994 , - 2233 , - 4752 , - 2311 , - 30 , - 3029 , - 1068 , - 4387 , - 2746 , - 1265 , - 5064 , - 3903 , - 2902 , - 2061 , - 1380 , - 859 , - 498 , - 297 , - 256 , - 375 , - 654 , - 1093 , - 1692 , - 2451 , - 3370 , - 4449 , - 568 , - 1967 , - 3526 , - 125 , - 2004 , - 4043 , - 1122 , - 3481 , - 880 , - 3559 , - 1278 , - 4277 , - 2316 , - 515 , - 3994 , - 2513 , - 1192 , - 31 , - 4150 , - 3309 , - 2628 , - 2107 , - 1746 , - 1545 , - 1504 , - 1623 , - 1902 , - 2341 , - 2940 , - 3699 , - 4618 , - 577 , - 1816 , - 3215 , - 4774 , - 1373 , - 3252 , - 171 , - 2370 , - 4729 , - 2128 , - 4807 , - 2526 , - 405 , - 3564 , - 1763 , - 122 , - 3761 , - 2440 , - 1279 , - 278 , - 4557 , - 3876 , - 3355 , - 2994 , - 2793 , - 2752 , - 2871 , - 3150 , - 3589 , - 4188 , - 4947 , - 746 , - 1825 , - 3064 , - 4463 , - 902 , - 2621 , - 4500 , - 1419 , - 3618 , - 857 , - 3376 , - 935 , - 3774 , - 1653 , - 4812 , - 3011 , - 1370 , - 5009 , - 3688 , - 2527 , - 1526 , - 685 , - 4 , - 4603 , - 4242 , - 4041 , - 4000 , - 4119 , - 4398 , - 4837 , - 316 , - 1075 , - 1994 , - 3073 , - 4312 , - 591 , - 2150 , - 3869 , - 628 , - 2667 , - 4866 , - 2105 , - 4624 , - 2183 , - 5022 , - 2901 , - 940 , - 4259 , - 2618 , - 1137 , - 4936 , - 3775 , - 2774 , - 1933 , - 1252 , - 731 , - 370 , - 169 , - 128 , - 247 , - 526 , - 965 , - 1564 , - 2323 , - 3242 , - 4321 , - 440 , - 1839 , - 3398 , - 5117 , - 1876 , - 3915 , - 994 , - 3353 , - 752 , - 3431 , - 1150 , - 4149 , - 2188 , - 387 , - 3866 , - 2385 , - 1064 , - 5023 , - 4022 , - 3181 , - 2500 , - 1979 , - 1618 , - 1417 , - 1376 , - 1495 , - 1774 , - 2213 , - 2812 , - 3571 , - 4490 , - 449 , - 1688 , - 3087 , - 4646 , - 1245 , - 3124 , - 43 , - 2242 , - 4601 , - 2000 , - 4679 , - 2398 , - 277 , - 3436 , - 1635 , - 5114 , - 3633 , - 2312 , - 1151 , - 150 , - 4429 , - 3748 , - 3227 , - 2866 , - 2665 , - 2624 , - 2743 , - 3022 , - 3461 , - 4060 , - 4819 , - 618 , - 1697 , - 2936 , - 4335 , - 774 , - 2493 , - 4372 , - 1291 , - 3490 , - 729 , - 3248 , - 807 , - 3646 , - 1525 , - 4684 , - 2883 , - 1242 , - 4881 , - 3560 , - 2399 , - 1398 , - 557 , - 4996 , - 4475 , - 4114 , - 3913 , - 3872 , - 3991 , - 4270 , - 4709 , - 188 , - 947 , - 1866 , - 2945 , - 4184 , - 463 , - 2022 , - 3741 , - 500 , - 2539 , - 4738 , - 1977 , - 4496 , - 2055 , - 4894 , - 2773 , - 812 , - 4131 , - 2490 , - 1009 , - 4808 , - 3647 , - 2646 , - 1805 , - 1124 , - 603 , - 242 , - 41 , - 0 , - 127 , - 446 , - 957 , - 1660 , - 2555 , - 3642 , - 4921 , - 1208 , - 2871 , - 4726 , - 1589 , - 3828 , - 1075 , - 3698 , - 1329 , - 4336 , - 2351 , - 558 , - 4141 , - 2732 , - 1515 , - 490 , - 4841 , - 4200 , - 3751 , - 3494 , - 3429 , - 3556 , - 3875 , - 4386 , - 5089 , - 800 , - 1887 , - 3166 , - 4637 , - 1116 , - 2971 , - 5018 , - 2073 , - 4504 , - 1943 , - 4758 , - 2581 , - 596 , - 3987 , - 2386 , - 977 , - 4944 , - 3919 , - 3086 , - 2445 , - 1996 , - 1739 , - 1674 , - 1801 , - 2120 , - 2631 , - 3334 , - 4229 , - 132 , - 1411 , - 2882 , - 4545 , - 1216 , - 3263 , - 318 , - 2749 , - 188 , - 3003 , - 826 , - 4025 , - 2232 , - 631 , - 4406 , - 3189 , - 2164 , - 1331 , - 690 , - 241 , - 5168 , - 5103 , - 46 , - 365 , - 876 , - 1579 , - 2474 , - 3561 , - 4840 , - 1127 , - 2790 , - 4645 , - 1508 , - 3747 , - 994 , - 3617 , - 1248 , - 4255 , - 2270 , - 477 , - 4060 , - 2651 , - 1434 , - 409 , - 4760 , - 4119 , - 3670 , - 3413 , - 3348 , - 3475 , - 3794 , - 4305 , - 5008 , - 719 , - 1806 , - 3085 , - 4556 , - 1035 , - 2890 , - 4937 , - 1992 , - 4423 , - 1862 , - 4677 , - 2500 , - 515 , - 3906 , - 2305 , - 896 , - 4863 , - 3838 , - 3005 , - 2364 , - 1915 , - 1658 , - 1593 , - 1720 , - 2039 , - 2550 , - 3253 , - 4148 , - 51 , - 1330 , - 2801 , - 4464 , - 1135 , - 3182 , - 237 , - 2668 , - 107 , - 2922 , - 745 , - 3944 , - 2151 , - 550 , - 4325 , - 3108 , - 2083 , - 1250 , - 609 , - 160 , - 5087 , - 5022 , - 5149 , - 284 , - 795 , - 1498 , - 2393 , - 3480 , - 4759 , - 1046 , - 2709 , - 4564 , - 1427 , - 3666 , - 913 , - 3536 , - 1167 , - 4174 , - 2189 , - 396 , - 3979 , - 2570 , - 1353 , - 328 , - 4679 , - 4038 , - 3589 , - 3332 , - 3267 , - 3394 , - 3713 , - 4224 , - 4927 , - 638 , - 1725 , - 3004 , - 4475 , - 954 , - 2809 , - 4856 , - 1911 , - 4342 , - 1781 , - 4596 , - 2419 , - 434 , - 3825 , - 2224 , - 815 , - 4782 , - 3757 , - 2924 , - 2283 , - 1834 , - 1577 , - 1512 , - 1639 , - 1958 , - 2469 , - 3172 , - 4067 , - 5154 , - 1249 , - 2720 , - 4383 , - 1054 , - 3101 , - 156 , - 2587 , - 26 , - 2841 , - 664 , - 3863 , - 2070 , - 469 , - 4244 , - 3027 , - 2002 , - 1169 , - 528 , - 79 , - 5006 , - 4941 , - 5068 , - 203 , - 714 , - 1417 , - 2312 , - 3399 , - 4678 , - 965 , - 2628 , - 4483 , - 1346 , - 3585 , - 832 , - 3455 , - 1086 , - 4093 , - 2108 , - 315 , - 3898 , - 2489 , - 1272 , - 247 , - 4598 , - 3957 , - 3508 , - 3251 , - 3186 , - 3313 , - 3632 , - 4143 , - 4846 , - 557 , - 1644 , - 2923 , - 4394 , - 873 , - 2728 , - 4775 , - 1830 , - 4261 , - 1700 , - 4515 , - 2338 , - 353 , - 3744 , - 2143 , - 734 , - 4701 , - 3676 , - 2843 , - 2202 , - 1753 , - 1496 , - 1431 , - 1558 , - 1877 , - 2388 , - 3091 , - 3986 , - 5073 , - 1168 , - 2639 , - 4302 , - 973 , - 3020 , - 75 , - 2506 , - 5129 , - 2760 , - 583 , - 3782 , - 1989 , - 388 , - 4163 , - 2946 , - 1921 , - 1088 , - 447 , - 5182 , - 4925 , - 4860 , - 4987 , - 122 , - 633 , - 1336 , - 2231 , - 3318 , - 4597 , - 884 , - 2547 , - 4402 , - 1265 , - 3504 , - 751 , - 3374 , - 1005 , - 4012 , - 2027 , - 234 , - 3817 , - 2408 , - 1191 , - 166 , - 4517 , - 3876 , - 3427 , - 3170 , - 3105 , - 3232 , - 3551 , - 4062 , - 4765 , - 476 , - 1563 , - 2842 , - 4313 , - 792 , - 2647 , - 4694 , - 1749 , - 4180 , - 1619 , - 4434 , - 2257 , - 272 , - 3663 , - 2062 , - 653 , - 4620 , - 3595 , - 2762 , - 2121 , - 1672 , - 1415 , - 1350 , - 1477 , - 1796 , - 2307 , - 3010 , - 3905 , - 4992 , - 1087 , - 2558 , - 4221 , - 892 , - 2939 , - 5178 , - 2425 , - 5048 , - 2679 , - 502 , - 3701 , - 1908 , - 307 , - 4082 , - 2865 , - 1840 , - 1007 , - 366 , - 5101 , - 4844 , - 4779 , - 4906 , - 41 , - 552 , - 1255 , - 2150 , - 3237 , - 4516 , - 803 , - 2466 , - 4321 , - 1184 , - 3423 , - 670 , - 3293 , - 924 , - 3931 , - 1946 , - 153 , - 3736 , - 2327 , - 1110 , - 85 , - 4436 , - 3795 , - 3346 , - 3089 , - 3024 , - 3151 , - 3470 , - 3981 , - 4684 , - 395 , - 1482 , - 2761 , - 4232 , - 711 , - 2566 , - 4613 , - 1668 , - 4099 , - 1538 , - 4353 , - 2176 , - 191 , - 3582 , - 1981 , - 572 , - 4539 , - 3514 , - 2681 , - 2040 , - 1591 , - 1334 , - 1269 , - 1396 , - 1715 , - 2226 , - 2929 , - 3824 , - 4911 , - 1006 , - 2477 , - 4140 , - 811 , - 2858 , - 5097 , - 2344 , - 4967 , - 2598 , - 421 , - 3620 , - 1827 , - 226 , - 4001 , - 2784 , - 1759 , - 926 , - 285 , - 5020 , - 4763 , - 4698 , - 4825 , - 5144 , - 471 , - 1174 , - 2069 , - 3156 , - 4435 , - 722 , - 2385 , - 4240 , - 1103 , - 3342 , - 589 , - 3212 , - 843 , - 3850 , - 1865 , - 72 , - 3655 , - 2246 , - 1029 , - 4 , - 4355 , - 3714 , - 3265 , - 3008 , - 2943 , - 3070 , - 3389 , - 3900 , - 4603 , - 314 , - 1401 , - 2680 , - 4151 , - 630 , - 2485 , - 4532 , - 1587 , - 4018 , - 1457 , - 4272 , - 2095 , - 110 , - 3501 , - 1900 , - 491 , - 4458 , - 3433 , - 2600 , - 1959 , - 1510 , - 1253 , - 1188 , - 1315 , - 1634 , - 2145 , - 2848 , - 3743 , - 4830 , - 925 , - 2396 , - 4059 , - 730 , - 2777 , - 5016 , - 2263 , - 4886 , - 2517 , - 340 , - 3539 , - 1746 , - 145 , - 3920 , - 2703 , - 1678 , - 845 , - 204 , - 4939 , - 4682 , - 4617 , - 4744 , - 5063 , - 390 , - 1093 , - 1988 , - 3075 , - 4354 , - 641 , - 2304 , - 4159 , - 1022 , - 3261 , - 508 , - 3131 , - 762 , - 3769 , - 1784 , - 5175 , - 3574 , - 2165 , - 948 , - 5107 , - 4274 , - 3633 , - 3184 , - 2927 , - 2862 , - 2989 , - 3308 , - 3819 , - 4522 , - 233 , - 1320 , - 2599 , - 4070 , - 549 , - 2404 , - 4451 , - 1506 , - 3937 , - 1376 , - 4191 , - 2014 , - 29 , - 3420 , - 1819 , - 410 , - 4377 , - 3352 , - 2519 , - 1878 , - 1429 , - 1172 , - 1107 , - 1234 , - 1553 , - 2064 , - 2767 , - 3662 , - 4749 , - 844 , - 2315 , - 3978 , - 649 , - 2696 , - 4935 , - 2182 , - 4805 , - 2436 , - 259 , - 3458 , - 1665 , - 64 , - 3839 , - 2622 , - 1597 , - 764 , - 123 , - 4858 , - 4601 , - 4536 , - 4663 , - 4982 , - 309 , - 1012 , - 1907 , - 2994 , - 4273 , - 560 , - 2223 , - 4078 , - 941 , - 3180 , - 427 , - 3050 , - 681 , - 3688 , - 1703 , - 5094 , - 3493 , - 2084 , - 867 , - 5026 , - 4193 , - 3552 , - 3103 , - 2846 , - 2781 , - 2908 , - 3227 , - 3738 , - 4441 , - 152 , - 1239 , - 2518 , - 3989 , - 468 , - 2323 , - 4370 , - 1425 , - 3856 , - 1295 , - 4110 , - 1933 , - 5132 , - 3339 , - 1738 , - 329 , - 4296 , - 3271 , - 2438 , - 1797 , - 1348 , - 1091 , - 1026 , - 1153 , - 1472 , - 1983 , - 2686 , - 3581 , - 4668 , - 763 , - 2234 , - 3897 , - 568 , - 2615 , - 4854 , - 2101 , - 4724 , - 2355 , - 178 , - 3377 , - 1584 , - 5167 , - 3758 , - 2541 , - 1516 , - 683 , - 42 , - 4777 , - 4520 , - 4455 , - 4582 , - 4901 , - 228 , - 931 , - 1826 , - 2913 , - 4192 , - 479 , - 2142 , - 3997 , - 860 , - 3099 , - 346 , - 2969 , - 600 , - 3607 , - 1622 , - 5013 , - 3412 , - 2003 , - 786 , - 4945 , - 4112 , - 3471 , - 3022 , - 2765 , - 2700 , - 2827 , - 3146 , - 3657 , - 4360 , - 71 , - 1158 , - 2437 , - 3908 , - 387 , - 2242 , - 4289 , - 1344 , - 3775 , - 1214 , - 4029 , - 1852 , - 5051 , - 3258 , - 1657 , - 248 , - 4215 , - 3190 , - 2357 , - 1716 , - 1267 , - 1010 , - 945 , - 1072 , - 1391 , - 1902 , - 2605 , - 3500 , - 4587 , - 682 , - 2153 , - 3816 , - 487 , - 2534 , - 4773 , - 2020 , - 4643 , - 2274 , - 97 , - 3296 , - 1503 , - 5086 , - 3677 , - 2460 , - 1435 , - 602 , - 5145 , - 4696 , - 4439 , - 4374 , - 4501 , - 4820 , - 147 , - 850 , - 1745 , - 2832 , - 4111 , - 398 , - 2061 , - 3916 , - 779 , - 3018 , - 265 , - 2888 , - 519 , - 3526 , - 1541 , - 4932 , - 3331 , - 1922 , - 705 , - 4864 , - 4031 , - 3390 , - 2941 , - 2684 , - 2619 , - 2746 , - 3065 , - 3576 , - 4279 , - 5174 , - 1077 , - 2356 , - 3827 , - 306 , - 2161 , - 4208 , - 1263 , - 3694 , - 1133 , - 3948 , - 1771 , - 4970 , - 3177 , - 1576 , - 167 , - 4134 , - 3109 , - 2276 , - 1635 , - 1186 , - 929 , - 864 , - 991 , - 1310 , - 1821 , - 2524 , - 3419 , - 4506 , - 601 , - 2072 , - 3735 , - 406 , - 2453 , - 4692 , - 1939 , - 4562 , - 2193 , - 16 , - 3215 , - 1422 , - 5005 , - 3596 , - 2379 , - 1354 , - 521 , - 5064 , - 4615 , - 4358 , - 4293 , - 4420 , - 4739 , - 66 , - 769 , - 1664 , - 2751 , - 4030 , - 317 , - 1980 , - 3835 , - 698 , - 2937 , - 184 , - 2807 , - 438 , - 3445 , - 1460 , - 4851 , - 3250 , - 1841 , - 624 , - 4783 , - 3950 , - 3309 , - 2860 , - 2603 , - 2538 , - 2665 , - 2984 , - 3495 , - 4198 , - 5093 , - 996 , - 2275 , - 3746 , - 225 , - 2080 , - 4127 , - 1182 , - 3613 , - 1052 , - 3867 , - 1690 , - 4889 , - 3096 , - 1495 , - 86 , - 4053 , - 3028 , - 2195 , - 1554 , - 1105 , - 848 , - 783 , - 910 , - 1229 , - 1740 , - 2443 , - 3338 , - 4425 , - 520 , - 1991 , - 3654 , - 325 , - 2372 , - 4611 , - 1858 , - 4481 , - 2112 , - 5119 , - 3134 , - 1341 , - 4924 , - 3515 , - 2298 , - 1273 , - 440 , - 4983 , - 4534 , - 4277 , - 4212 , - 4339 , - 4658 , - 5169 , - 688 , - 1583 , - 2670 , - 3949 , - 236 , - 1899 , - 3754 , - 617 , - 2856 , - 103 , - 2726 , - 357 , - 3364 , - 1379 , - 4770 , - 3169 , - 1760 , - 543 , - 4702 , - 3869 , - 3228 , - 2779 , - 2522 , - 2457 , - 2584 , - 2903 , - 3414 , - 4117 , - 5012 , - 915 , - 2194 , - 3665 , - 144 , - 1999 , - 4046 , - 1101 , - 3532 , - 971 , - 3786 , - 1609 , - 4808 , - 3015 , - 1414 , - 5 , - 3972 , - 2947 , - 2114 , - 1473 , - 1024 , - 767 , - 702 , - 829 , - 1148 , - 1659 , - 2362 , - 3257 , - 4344 , - 439 , - 1910 , - 3573 , - 244 , - 2291 , - 4530 , - 1777 , - 4400 , - 2031 , - 5038 , - 3053 , - 1260 , - 4843 , - 3434 , - 2217 , - 1192 , - 359 , - 4902 , - 4453 , - 4196 , - 4131 , - 4258 , - 4577 , - 5088 , - 607 , - 1502 , - 2589 , - 3868 , - 155 , - 1818 , - 3673 , - 536 , - 2775 , - 22 , - 2645 , - 276 , - 3283 , - 1298 , - 4689 , - 3088 , - 1679 , - 462 , - 4621 , - 3788 , - 3147 , - 2698 , - 2441 , - 2376 , - 2503 , - 2822 , - 3333 , - 4036 , - 4931 , - 834 , - 2113 , - 3584 , - 63 , - 1918 , - 3965 , - 1020 , - 3451 , - 890 , - 3705 , - 1528 , - 4727 , - 2934 , - 1333 , - 5108 , - 3891 , - 2866 , - 2033 , - 1392 , - 943 , - 686 , - 621 , - 748 , - 1067 , - 1578 , - 2281 , - 3176 , - 4263 , - 358 , - 1829 , - 3492 , - 163 , - 2210 , - 4449 , - 1696 , - 4319 , - 1950 , - 4957 , - 2972 , - 1179 , - 4762 , - 3353 , - 2136 , - 1111 , - 278 , - 4821 , - 4372 , - 4115 , - 4050 , - 4177 , - 4496 , - 5007 , - 526 , - 1421 , - 2508 , - 3787 , - 74 , - 1737 , - 3592 , - 455 , - 2694 , - 5125 , - 2564 , - 195 , - 3202 , - 1217 , - 4608 , - 3007 , - 1598 , - 381 , - 4540 , - 3707 , - 3066 , - 2617 , - 2360 , - 2295 , - 2422 , - 2741 , - 3252 , - 3955 , - 4850 , - 753 , - 2032 , - 3503 , - 5166 , - 1837 , - 3884 , - 939 , - 3370 , - 809 , - 3624 , - 1447 , - 4646 , - 2853 , - 1252 , - 5027 , - 3810 , - 2785 , - 1952 , - 1311 , - 862 , - 605 , - 540 , - 667 , - 986 , - 1497 , - 2200 , - 3095 , - 4182 , - 277 , - 1748 , - 3411 , - 82 , - 2129 , - 4368 , - 1615 , - 4238 , - 1869 , - 4876 , - 2891 , - 1098 , - 4681 , - 3272 , - 2055 , - 1030 , - 197 , - 4740 , - 4291 , - 4034 , - 3969 , - 4096 , - 4415 , - 4926 , - 445 , - 1340 , - 2427 , - 3706 , - 5177 , - 1656 , - 3511 , - 374 , - 2613 , - 5044 , - 2483 , - 114 , - 3121 , - 1136 , - 4527 , - 2926 , - 1517 , - 300 , - 4459 , - 3626 , - 2985 , - 2536 , - 2279 , - 2214 , - 2341 , - 2660 , - 3171 , - 3874 , - 4769 , - 672 , - 1951 , - 3422 , - 5085 , - 1756 , - 3803 , - 858 , - 3289 , - 728 , - 3543 , - 1366 , - 4565 , - 2772 , - 1171 , - 4946 , - 3729 , - 2704 , - 1871 , - 1230 , - 781 , - 524 , - 459 , - 586 , - 905 , - 1416 , - 2119 , - 3014 , - 4101 , - 196 , - 1667 , - 3330 , - 1 , - 2048 , - 4287 , - 1534 , - 4157 , - 1788 , - 4795 , - 2810 , - 1017 , - 4600 , - 3191 , - 1974 , - 949 , - 116 , - 4659 , - 4210 , - 3953 , - 3888 , - 4015 , - 4334 , - 4845 , - 364 , - 1259 , - 2346 , - 3625 , - 5096 , - 1575 , - 3430 , - 293 , - 2532 , - 4963 , - 2402 , - 33 , - 3040 , - 1055 , - 4446 , - 2845 , - 1436 , - 219 , - 4378 , - 3545 , - 2904 , - 2455 , - 2198 , - 2133 , - 2260 , - 2579 , - 3090 , - 3793 , - 4688 , - 591 , - 1870 , - 3341 , - 5004 , - 1675 , - 3722 , - 777 , - 3208 , - 647 , - 3462 , - 1285 , - 4484 , - 2691 , - 1090 , - 4865 , - 3648 , - 2623 , - 1790 , - 1149 , - 700 , - 443 , - 378 , - 505 , - 824 , - 1335 , - 2038 , - 2933 , - 4020 , - 115 , - 1586 , - 3249 , - 5104 , - 1967 , - 4206 , - 1453 , - 4076 , - 1707 , - 4714 , - 2729 , - 936 , - 4519 , - 3110 , - 1893 , - 868 , - 35 , - 4578 , - 4129 , - 3872 , - 3807 , - 3934 , - 4253 , - 4764 , - 283 , - 1178 , - 2265 , - 3544 , - 5015 , - 1494 , - 3349 , - 212 , - 2451 , - 4882 , - 2321 , - 5136 , - 2959 , - 974 , - 4365 , - 2764 , - 1355 , - 138 , - 4297 , - 3464 , - 2823 , - 2374 , - 2117 , - 2052 , - 2179 , - 2498 , - 3009 , - 3712 , - 4607 , - 510 , - 1789 , - 3260 , - 4923 , - 1594 , - 3641 , - 696 , - 3127 , - 566 , - 3381 , - 1204 , - 4403 , - 2610 , - 1009 , - 4784 , - 3567 , - 2542 , - 1709 , - 1068 , - 619 , - 362 , - 297 , - 424 , - 743 , - 1254 , - 1957 , - 2852 , - 3939 , - 34 , - 1505 , - 3168 , - 5023 , - 1886 , - 4125 , - 1372 , - 3995 , - 1626 , - 4633 , - 2648 , - 855 , - 4438 , - 3029 , - 1812 , - 787 , - 5138 , - 4497 , - 4048 , - 3791 , - 3726 , - 3853 , - 4172 , - 4683 , - 202 , - 1097 , - 2184 , - 3463 , - 4934 , - 1413 , - 3268 , - 131 , - 2370 , - 4801 , - 2240 , - 5055 , - 2878 , - 893 , - 4284 , - 2683 , - 1274 , - 57 , - 4216 , - 3383 , - 2742 , - 2293 , - 2036 , - 1971 , - 2098 , - 2417 , - 2928 , - 3631 , - 4526 , - 429 , - 1708 , - 3179 , - 4842 , - 1513 , - 3560 , - 615 , - 3046 , - 485 , - 3300 , - 1123 , - 4322 , - 2529 , - 928 , - 4703 , - 3486 , - 2461 , - 1628 , - 987 , - 538 , - 281 , - 216 , - 343 , - 662 , - 1173 , - 1876 , - 2771 , - 3858 , - 5137 , - 1424 , - 3087 , - 4942 , - 1805 , - 4044 , - 1291 , - 3914 , - 1545 , - 4552 , - 2567 , - 774 , - 4357 , - 2948 , - 1731 , - 706 , - 5057 , - 4416 , - 3967 , - 3710 , - 3645 , - 3772 , - 4091 , - 4602 , - 121 , - 1016 , - 2103 , - 3382 , - 4853 , - 1332 , - 3187 , - 50 , - 2289 , - 4720 , - 2159 , - 4974 , - 2797 , - 812 , - 4203 , - 2602 , - 1193 , - 5160 , - 4135 , - 3302 , - 2661 , - 2212 , - 1955 , - 1890 , - 2017 , - 2336 , - 2847 , - 3550 , - 4445 , - 348 , - 1627 , - 3098 , - 4761 , - 1432 , - 3479 , - 534 , - 2965 , - 404 , - 3219 , - 1042 , - 4241 , - 2448 , - 847 , - 4622 , - 3405 , - 2380 , - 1547 , - 906 , - 457 , - 200 , - 135 , - 262 , - 581 , - 1092 , - 1795 , - 2690 , - 3777 , - 5056 , - 1343 , - 3006 , - 4861 , - 1724 , - 3963 , - 1210 , - 3833 , - 1464 , - 4471 , - 2486 , - 693 , - 4276 , - 2867 , - 1650 , - 625 , - 4976 , - 4335 , - 3886 , - 3629 , - 3564 , - 3691 , - 4010 , - 4521 , - 40 , - 935 , - 2022 , - 3301 , - 4772 , - 1251 , - 3106 , - 5153 , - 2208 , - 4639 , - 2078 , - 4893 , - 2716 , - 731 , - 4122 , - 2521 , - 1112 , - 5079 , - 4054 , - 3221 , - 2580 , - 2131 , - 1874 , - 1809 , - 1936 , - 2255 , - 2766 , - 3469 , - 4364 , - 267 , - 1546 , - 3017 , - 4680 , - 1351 , - 3398 , - 453 , - 2884 , - 323 , - 3138 , - 961 , - 4160 , - 2367 , - 766 , - 4541 , - 3324 , - 2299 , - 1466 , - 825 , - 376 , - 119 , - 54 , - 181 , - 500 , - 1011 , - 1714 , - 2609 , - 3696 , - 4975 , - 1262 , - 2925 , - 4780 , - 1643 , - 3882 , - 1129 , - 3752 , - 1383 , - 4390 , - 2405 , - 612 , - 4195 , - 2786 , - 1569 , - 544 , - 4895 , - 4254 , - 3805 , - 3548 , - 3483 , - 3610 , - 3929 , - 4440 , - 5143 , - 854 , - 1941 , - 3220 , - 4691 , - 1170 , - 3025 , - 5072 , - 2127 , - 4558 , - 1997 , - 4812 , - 2635 , - 650 , - 4041 , - 2440 , - 1031 , - 4998 , - 3973 , - 3140 , - 2499 , - 2050 , - 1793 , - 1728 , - 1855 , - 2174 , - 2685 , - 3388 , - 4283 , - 186 , - 1465 , - 2936 , - 4599 , - 1270 , - 3317 , - 372 , - 2803 , - 242 , - 3057 , - 880 , - 4079 , - 2286 , - 685 , - 4460 , - 3243 , - 2218 , - 1385 , - 744 , - 295 , - 38 , - 5157 , - 100 , - 419 , - 930 , - 1633 , - 2528 , - 3615 , - 4894 , - 1181 , - 2844 , - 4699 , - 1562 , - 3801 , - 1048 , - 3671 , - 1302 , - 4309 , - 2324 , - 531 , - 4114 , - 2705 , - 1488 , - 463 , - 4814 , - 4173 , - 3724 , - 3467 , - 3402 , - 3529 , - 3848 , - 4359 , - 5062 , - 773 , - 1860 , - 3139 , - 4610 , - 1089 , - 2944 , - 4991 , - 2046 , - 4477 , - 1916 , - 4731 , - 2554 , - 569 , - 3960 , - 2359 , - 950 , - 4917 , - 3892 , - 3059 , - 2418 , - 1969 , - 1712 , - 1647 , - 1774 , - 2093 , - 2604 , - 3307 , - 4202 , - 105 , - 1384 , - 2855 , - 4518 , - 1189 , - 3236 , - 291 , - 2722 , - 161 , - 2976 , - 799 , - 3998 , - 2205 , - 604 , - 4379 , - 3162 , - 2137 , - 1304 , - 663 , - 214 , - 5141 , - 5076 , - 19 , - 338 , - 849 , - 1552 , - 2447 , - 3534 , - 4813 , - 1100 , - 2763 , - 4618 , - 1481 , - 3720 , - 967 , - 3590 , - 1221 , - 4228 , - 2243 , - 450 , - 4033 , - 2624 , - 1407 , - 382 , - 4733 , - 4092 , - 3643 , - 3386 , - 3321 , - 3448 , - 3767 , - 4278 , - 4981 , - 692 , - 1779 , - 3058 , - 4529 , - 1008 , - 2863 , - 4910 , - 1965 , - 4396 , - 1835 , - 4650 , - 2473 , - 488 , - 3879 , - 2278 , - 869 , - 4836 , - 3811 , - 2978 , - 2337 , - 1888 , - 1631 , - 1566 , - 1693 , - 2012 , - 2523 , - 3226 , - 4121 , - 24 , - 1303 , - 2774 , - 4437 , - 1108 , - 3155 , - 210 , - 2641 , - 80 , - 2895 , - 718 , - 3917 , - 2124 , - 523 , - 4298 , - 3081 , - 2056 , - 1223 , - 582 , - 133 , - 5060 , - 4995 , - 5122 , - 257 , - 768 , - 1471 , - 2366 , - 3453 , - 4732 , - 1019 , - 2682 , - 4537 , - 1400 , - 3639 , - 886 , - 3509 , - 1140 , - 4147 , - 2162 , - 369 , - 3952 , - 2543 , - 1326 , - 301 , - 4652 , - 4011 , - 3562 , - 3305 , - 3240 , - 3367 , - 3686 , - 4197 , - 4900 , - 611 , - 1698 , - 2977 , - 4448 , - 927 , - 2782 , - 4829 , - 1884 , - 4315 , - 1754 , - 4569 , - 2392 , - 407 , - 3798 , - 2197 , - 788 , - 4755 , - 3730 , - 2897 , - 2256 , - 1807 , - 1550 , - 1485 , - 1612 , - 1931 , - 2442 , - 3145 , - 4040 , - 5127 , - 1222 , - 2693 , - 4356 , - 1027 , - 3074 , - 129 , - 2560 , - 5183 , - 2814 , - 637 , - 3836 , - 2043 , - 442 , - 4217 , - 3000 , - 1975 , - 1142 , - 501 , - 52 , - 4979 , - 4914 , - 5041 , - 176 , - 687 , - 1390 , - 2285 , - 3372 , - 4651 , - 938 , - 2601 , - 4456 , - 1319 , - 3558 , - 805 , - 3428 , - 1059 , - 4066 , - 2081 , - 288 , - 3871 , - 2462 , - 1245 , - 220 , - 4571 , - 3930 , - 3481 , - 3224 , - 3159 , - 3286 , - 3605 , - 4116 , - 4819 , - 530 , - 1617 , - 2896 , - 4367 , - 846 , - 2701 , - 4748 , - 1803 , - 4234 , - 1673 , - 4488 , - 2311 , - 326 , - 3717 , - 2116 , - 707 , - 4674 , - 3649 , - 2816 , - 2175 , - 1726 , - 1469 , - 1404 , - 1531 , - 1850 , - 2361 , - 3064 , - 3959 , - 5046 , - 1141 , - 2612 , - 4275 , - 946 , - 2993 , - 48 , - 2479 , - 5102 , - 2733 , - 556 , - 3755 , - 1962 , - 361 , - 4136 , - 2919 , - 1894 , - 1061 , - 420 , - 5155 , - 4898 , - 4833 , - 4960 , - 95 , - 606 , - 1309 , - 2204 , - 3291 , - 4570 , - 857 , - 2520 , - 4375 , - 1238 , - 3477 , - 724 , - 3347 , - 978 , - 3985 , - 2000 , - 207 , - 3790 , - 2381 , - 1164 , - 139 , - 4490 , - 3849 , - 3400 , - 3143 , - 3078 , - 3205 , - 3524 , - 4035 , - 4738 , - 449 , - 1536 , - 2815 , - 4286 , - 765 , - 2620 , - 4667 , - 1722 , - 4153 , - 1592 , - 4407 , - 2230 , - 245 , - 3636 , - 2035 , - 626 , - 4593 , - 3568 , - 2735 , - 2094 , - 1645 , - 1388 , - 1323 , - 1450 , - 1769 , - 2280 , - 2983 , - 3878 , - 4965 , - 1060 , - 2531 , - 4194 , - 865 , - 2912 , - 5151 , - 2398 , - 5021 , - 2652 , - 475 , - 3674 , - 1881 , - 280 , - 4055 , - 2838 , - 1813 , - 980 , - 339 , - 5074 , - 4817 , - 4752 , - 4879 , - 14 , - 525 , - 1228 , - 2123 , - 3210 , - 4489 , - 776 , - 2439 , - 4294 , - 1157 , - 3396 , - 643 , - 3266 , - 897 , - 3904 , - 1919 , - 126 , - 3709 , - 2300 , - 1083 , - 58 , - 4409 , - 3768 , - 3319 , - 3062 , - 2997 , - 3124 , - 3443 , - 3954 , - 4657 , - 368 , - 1455 , - 2734 , - 4205 , - 684 , - 2539 , - 4586 , - 1641 , - 4072 , - 1511 , - 4326 , - 2149 , - 164 , - 3555 , - 1954 , - 545 , - 4512 , - 3487 , - 2654 , - 2013 , - 1564 , - 1307 , - 1242 , - 1369 , - 1688 , - 2199 , - 2902 , - 3797 , - 4884 , - 979 , - 2450 , - 4113 , - 784 , - 2831 , - 5070 , - 2317 , - 4940 , - 2571 , - 394 , - 3593 , - 1800 , - 199 , - 3974 , - 2757 , - 1732 , - 899 , - 258 , - 4993 , - 4736 , - 4671 , - 4798 , - 5117 , - 444 , - 1147 , - 2042 , - 3129 , - 4408 , - 695 , - 2358 , - 4213 , - 1076 , - 3315 , - 562 , - 3185 , - 816 , - 3823 , - 1838 , - 45 , - 3628 , - 2219 , - 1002 , - 5161 , - 4328 , - 3687 , - 3238 , - 2981 , - 2916 , - 3043 , - 3362 , - 3873 , - 4576 , - 287 , - 1374 , - 2653 , - 4124 , - 603 , - 2458 , - 4505 , - 1560 , - 3991 , - 1430 , - 4245 , - 2068 , - 83 , - 3474 , - 1873 , - 464 , - 4431 , - 3406 , - 2573 , - 1932 , - 1483 , - 1226 , - 1161 , - 1288 , - 1607 , - 2118 , - 2821 , - 3716 , - 4803 , - 898 , - 2369 , - 4032 , - 703 , - 2750 , - 4989 , - 2236 , - 4859 , - 2490 , - 313 , - 3512 , - 1719 , - 118 , - 3893 , - 2676 , - 1651 , - 818 , - 177 , - 4912 , - 4655 , - 4590 , - 4717 , - 5036 , - 363 , - 1066 , - 1961 , - 3048 , - 4327 , - 614 , - 2277 , - 4132 , - 995 , - 3234 , - 481 , - 3104 , - 735 , - 3742 , - 1757 , - 5148 , - 3547 , - 2138 , - 921 , - 5080 , - 4247 , - 3606 , - 3157 , - 2900 , - 2835 , - 2962 , - 3281 , - 3792 , - 4495 , - 206 , - 1293 , - 2572 , - 4043 , - 522 , - 2377 , - 4424 , - 1479 , - 3910 , - 1349 , - 4164 , - 1987 , - 2 , - 3393 , - 1792 , - 383 , - 4350 , - 3325 , - 2492 , - 1851 , - 1402 , - 1145 , - 1080 , - 1207 , - 1526 , - 2037 , - 2740 , - 3635 , - 4722 , - 817 , - 2288 , - 3951 , - 622 , - 2669 , - 4908 , - 2155 , - 4778 , - 2409 , - 232 , - 3431 , - 1638 , - 37 , - 3812 , - 2595 , - 1570 , - 737 , - 96 , - 4831 , - 4574 , - 4509 , - 4636 , - 4955 , - 282 , - 985 , - 1880 , - 2967 , - 4246 , - 533 , - 2196 , - 4051 , - 914 , - 3153 , - 400 , - 3023 , - 654 , - 3661 , - 1676 , - 5067 , - 3466 , - 2057 , - 840 , - 4999 , - 4166 , - 3525 , - 3076 , - 2819 , - 2754 , - 2881 , - 3200 , - 3711 , - 4414 , - 125 , - 1212 , - 2491 , - 3962 , - 441 , - 2296 , - 4343 , - 1398 , - 3829 , - 1268 , - 4083 , - 1906 , - 5105 , - 3312 , - 1711 , - 302 , - 4269 , - 3244 , - 2411 , - 1770 , - 1321 , - 1064 , - 999 , - 1126 , - 1445 , - 1956 , - 2659 , - 3554 , - 4641 , - 736 , - 2207 , - 3870 , - 541 , - 2588 , - 4827 , - 2074 , - 4697 , - 2328 , - 151 , - 3350 , - 1557 , - 5140 , - 3731 , - 2514 , - 1489 , - 656 , - 15 , - 4750 , - 4493 , - 4428 , - 4555 , - 4874 , - 201 , - 904 , - 1799 , - 2886 , - 4165 , - 452 , - 2115 , - 3970 , - 833 , - 3072 , - 319 , - 2942 , - 573 , - 3580 , - 1595 , - 4986 , - 3385 , - 1976 , - 759 , - 4918 , - 4085 , - 3444 , - 2995 , - 2738 , - 2673 , - 2800 , - 3119 , - 3630 , - 4333 , - 44 , - 1131 , - 2410 , - 3881 , - 360 , - 2215 , - 4262 , - 1317 , - 3748 , - 1187 , - 4002 , - 1825 , - 5024 , - 3231 , - 1630 , - 221 , - 4188 , - 3163 , - 2330 , - 1689 , - 1240 , - 983 , - 918 , - 1045 , - 1364 , - 1875 , - 2578 , - 3473 , - 4560 , - 655 , - 2126 , - 3789 , - 460 , - 2507 , - 4746 , - 1993 , - 4616 , - 2247 , - 70 , - 3269 , - 1476 , - 5059 , - 3650 , - 2433 , - 1408 , - 575 , - 5118 , - 4669 , - 4412 , - 4347 , - 4474 , - 4793 , - 120 , - 823 , - 1718 , - 2805 , - 4084 , - 371 , - 2034 , - 3889 , - 752 , - 2991 , - 238 , - 2861 , - 492 , - 3499 , - 1514 , - 4905 , - 3304 , - 1895 , - 678 , - 4837 , - 4004 , - 3363 , - 2914 , - 2657 , - 2592 , - 2719 , - 3038 , - 3549 , - 4252 , - 5147 , - 1050 , - 2329 , - 3800 , - 279 , - 2134 , - 4181 , - 1236 , - 3667 , - 1106 , - 3921 , - 1744 , - 4943 , - 3150 , - 1549 , - 140 , - 4107 , - 3082 , - 2249 , - 1608 , - 1159 , - 902 , - 837 , - 964 , - 1283 , - 1794 , - 2497 , - 3392 , - 4479 , - 574 , - 2045 , - 3708 , - 379 , - 2426 , - 4665 , - 1912 , - 4535 , - 2166 , - 5173 , - 3188 , - 1395 , - 4978 , - 3569 , - 2352 , - 1327 , - 494 , - 5037 , - 4588 , - 4331 , - 4266 , - 4393 , - 4712 , - 39 , - 742 , - 1637 , - 2724 , - 4003 , - 290 , - 1953 , - 3808 , - 671 , - 2910 , - 157 , - 2780 , - 411 , - 3418 , - 1433 , - 4824 , - 3223 , - 1814 , - 597 , - 4756 , - 3923 , - 3282 , - 2833 , - 2576 , - 2511 , - 2638 , - 2957 , - 3468 , - 4171 , - 5066 , - 969 , - 2248 , - 3719 , - 198 , - 2053 , - 4100 , - 1155 , - 3586 , - 1025 , - 3840 , - 1663 , - 4862 , - 3069 , - 1468 , - 59 , - 4026 , - 3001 , - 2168 , - 1527 , - 1078 , - 821 , - 756 , - 883 , - 1202 , - 1713 , - 2416 , - 3311 , - 4398 , - 493 , - 1964 , - 3627 , - 298 , - 2345 , - 4584 , - 1831 , - 4454 , - 2085 , - 5092 , - 3107 , - 1314 , - 4897 , - 3488 , - 2271 , - 1246 , - 413 , - 4956 , - 4507 , - 4250 , - 4185 , - 4312 , - 4631 , - 5142 , - 661 , - 1556 , - 2643 , - 3922 , - 209 , - 1872 , - 3727 , - 590 , - 2829 , - 76 , - 2699 , - 330 , - 3337 , - 1352 , - 4743 , - 3142 , - 1733 , - 516 , - 4675 , - 3842 , - 3201 , - 2752 , - 2495 , - 2430 , - 2557 , - 2876 , - 3387 , - 4090 , - 4985 , - 888 , - 2167 , - 3638 , - 117 , - 1972 , - 4019 , - 1074 , - 3505 , - 944 , - 3759 , - 1582 , - 4781 , - 2988 , - 1387 , - 5162 , - 3945 , - 2920 , - 2087 , - 1446 , - 997 , - 740 , - 675 , - 802 , - 1121 , - 1632 , - 2335 , - 3230 , - 4317 , - 412 , - 1883 , - 3546 , - 217 , - 2264 , - 4503 , - 1750 , - 4373 , - 2004 , - 5011 , - 3026 , - 1233 , - 4816 , - 3407 , - 2190 , - 1165 , - 332 , - 4875 , - 4426 , - 4169 , - 4104 , - 4231 , - 4550 , - 5061 , - 580 , - 1475 , - 2562 , - 3841 , - 128 , - 1791 , - 3646 , - 509 , - 2748 , - 5179 , - 2618 , - 249 , - 3256 , - 1271 , - 4662 , - 3061 , - 1652 , - 435 , - 4594 , - 3761 , - 3120 , - 2671 , - 2414 , - 2349 , - 2476 , - 2795 , - 3306 , - 4009 , - 4904 , - 807 , - 2086 , - 3557 , - 36 , - 1891 , - 3938 , - 993 , - 3424 , - 863 , - 3678 , - 1501 , - 4700 , - 2907 , - 1306 , - 5081 , - 3864 , - 2839 , - 2006 , - 1365 , - 916 , - 659 , - 594 , - 721 , - 1040 , - 1551 , - 2254 , - 3149 , - 4236 , - 331 , - 1802 , - 3465 , - 136 , - 2183 , - 4422 , - 1669 , - 4292 , - 1923 , - 4930 , - 2945 , - 1152 , - 4735 , - 3326 , - 2109 , - 1084 , - 251 , - 4794 , - 4345 , - 4088 , - 4023 , - 4150 , - 4469 , - 4980 , - 499 , - 1394 , - 2481 , - 3760 , - 47 , - 1710 , - 3565 , - 428 , - 2667 , - 5098 , - 2537 , - 168 , - 3175 , - 1190 , - 4581 , - 2980 , - 1571 , - 354 , - 4513 , - 3680 , - 3039 , - 2590 , - 2333 , - 2268 , - 2395 , - 2714 , - 3225 , - 3928 , - 4823 , - 726 , - 2005 , - 3476 , - 5139 , - 1810 , - 3857 , - 912 , - 3343 , - 782 , - 3597 , - 1420 , - 4619 , - 2826 , - 1225 , - 5000 , - 3783 , - 2758 , - 1925 , - 1284 , - 835 , - 578 , - 513 , - 640 , - 959 , - 1470 , - 2173 , - 3068 , - 4155 , - 250 , - 1721 , - 3384 , - 55 , - 2102 , - 4341 , - 1588 , - 4211 , - 1842 , - 4849 , - 2864 , - 1071 , - 4654 , - 3245 , - 2028 , - 1003 , - 170 , - 4713 , - 4264 , - 4007 , - 3942 , - 4069 , - 4388 , - 4899 , - 418 , - 1313 , - 2400 , - 3679 , - 5150 , - 1629 , - 3484 , - 347 , - 2586 , - 5017 , - 2456 , - 87 , - 3094 , - 1109 , - 4500 , - 2899 , - 1490 , - 273 , - 4432 , - 3599 , - 2958 , - 2509 , - 2252 , - 2187 , - 2314 , - 2633 , - 3144 , - 3847 , - 4742 , - 645 , - 1924 , - 3395 , - 5058 , - 1729 , - 3776 , - 831 , - 3262 , - 701 , - 3516 , - 1339 , - 4538 , - 2745 , - 1144 , - 4919 , - 3702 , - 2677 , - 1844 , - 1203 , - 754 , - 497 , - 432 , - 559 , - 878 , - 1389 , - 2092 , - 2987 , - 4074 , - 169 , - 1640 , - 3303 , - 5158 , - 2021 , - 4260 , - 1507 , - 4130 , - 1761 , - 4768 , - 2783 , - 990 , - 4573 , - 3164 , - 1947 , - 922 , - 89 , - 4632 , - 4183 , - 3926 , - 3861 , - 3988 , - 4307 , - 4818 , - 337 , - 1232 , - 2319 , - 3598 , - 5069 , - 1548 , - 3403 , - 266 , - 2505 , - 4936 , - 2375 , - 6 , - 3013 , - 1028 , - 4419 , - 2818 , - 1409 , - 192 , - 4351 , - 3518 , - 2877 , - 2428 , - 2171 , - 2106 , - 2233 , - 2552 , - 3063 , - 3766 , - 4661 , - 564 , - 1843 , - 3314 , - 4977 , - 1648 , - 3695 , - 750 , - 3181 , - 620 , - 3435 , - 1258 , - 4457 , - 2664 , - 1063 , - 4838 , - 3621 , - 2596 , - 1763 , - 1122 , - 673 , - 416 , - 351 , - 478 , - 797 , - 1308 , - 2011 , - 2906 , - 3993 , - 88 , - 1559 , - 3222 , - 5077 , - 1940 , - 4179 , - 1426 , - 4049 , - 1680 , - 4687 , - 2702 , - 909 , - 4492 , - 3083 , - 1866 , - 841 , - 8 , - 4551 , - 4102 , - 3845 , - 3780 , - 3907 , - 4226 , - 4737 , - 256 , - 1151 , - 2238 , - 3517 , - 4988 , - 1467 , - 3322 , - 185 , - 2424 , - 4855 , - 2294 , - 5109 , - 2932 , - 947 , - 4338 , - 2737 , - 1328 , - 111 , - 4270 , - 3437 , - 2796 , - 2347 , - 2090 , - 2025 , - 2152 , - 2471 , - 2982 , - 3685 , - 4580 , - 483 , - 1762 , - 3233 , - 4896 , - 1567 , - 3614 , - 669 , - 3100 , - 539 , - 3354 , - 1177 , - 4376 , - 2583 , - 982 , - 4757 , - 3540 , - 2515 , - 1682 , - 1041 , - 592 , - 335 , - 270 , - 397 , - 716 , - 1227 , - 1930 , - 2825 , - 3912 , - 7 , - 1478 , - 3141 , - 4996 , - 1859 , - 4098 , - 1345 , - 3968 , - 1599 , - 4606 , - 2621 , - 828 , - 4411 , - 3002 , - 1785 , - 760 , - 5111 , - 4470 , - 4021 , - 3764 , - 3699 , - 3826 , - 4145 , - 4656 , - 175 , - 1070 , - 2157 , - 3436 , - 4907 , - 1386 , - 3241 , - 104 , - 2343 , - 4774 , - 2213 , - 5028 , - 2851 , - 866 , - 4257 , - 2656 , - 1247 , - 30 , - 4189 , - 3356 , - 2715 , - 2266 , - 2009 , - 1944 , - 2071 , - 2390 , - 2901 , - 3604 , - 4499 , - 402 , - 1681 , - 3152 , - 4815 , - 1486 , - 3533 , - 588 , - 3019 , - 458 , - 3273 , - 1096 , - 4295 , - 2502 , - 901 , - 4676 , - 3459 , - 2434 , - 1601 , - 960 , - 511 , - 254 , - 189 , - 316 , - 635 , - 1146 , - 1849 , - 2744 , - 3831 , - 5110 , - 1397 , - 3060 , - 4915 , - 1778 , - 4017 , - 1264 , - 3887 , - 1518 , - 4525 , - 2540 , - 747 , - 4330 , - 2921 , - 1704 , - 679 , - 5030 , - 4389 , - 3940 , - 3683 , - 3618 , - 3745 , - 4064 , - 4575 , - 94 , - 989 , - 2076 , - 3355 , - 4826 , - 1305 , - 3160 , - 23 , - 2262 , - 4693 , - 2132 , - 4947 , - 2770 , - 785 , - 4176 , - 2575 , - 1166 , - 5133 , - 4108 , - 3275 , - 2634 , - 2185 , - 1928 , - 1863 , - 1990 , - 2309 , - 2820 , - 3523 , - 4418 , - 321 , - 1600 , - 3071 , - 4734 , - 1405 , - 3452 , - 507 , - 2938 , - 377 , - 3192 , - 1015 , - 4214 , - 2421 , - 820 , - 4595 , - 3378 , - 2353 , - 1520 , - 879 , - 430 , - 173 , - 108 , - 235 , - 554 , - 1065 , - 1768 , - 2663 , - 3750 , - 5029 , - 1316 , - 2979 , - 4834 , - 1697 , - 3936 , - 1183 , - 3806 , - 1437 , - 4444 , - 2459 , - 666 , - 4249 , - 2840 , - 1623 , - 598 , - 4949 , - 4308 , - 3859 , - 3602 , - 3537 , - 3664 , - 3983 , - 4494 , - 13 , - 908 , - 1995 , - 3274 , - 4745 , - 1224 , - 3079 , - 5126 , - 2181 , - 4612 , - 2051 , - 4866 , - 2689 , - 704 , - 4095 , - 2494 , - 1085 , - 5052 , - 4027 , - 3194 , - 2553 , - 2104 , - 1847 , - 1782 , - 1909 , - 2228 , - 2739 , - 3442 , - 4337 , - 240 , - 1519 , - 2990 , - 4653 , - 1324 , - 3371 , - 426 , - 2857 , - 296 , - 3111 , - 934 , - 4133 , - 2340 , - 739 , - 4514 , - 3297 , - 2272 , - 1439 , - 798 , - 349 , - 92 , - 27 , - 154 , - 473 , - 984 , - 1687 , - 2582 , - 3669 , - 4948 , - 1235 , - 2898 , - 4753 , - 1616 , - 3855 , - 1102 , - 3725 , - 1356 , - 4363 , - 2378 , - 585 , - 4168 , - 2759 , - 1542 , - 517 , - 4868 , - 4227 , - 3778 , - 3521 , - 3456 , - 3583 , - 3902 , - 4413 , - 5116 , - 827 , - 1914 , - 3193 , - 4664 , - 1143 , - 2998 , - 5045 , - 2100 , - 4531 , - 1970 , - 4785 , - 2608 , - 623 , - 4014 , - 2413 , - 1004 , - 4971 , - 3946 , - 3113 , - 2472 , - 2023 , - 1766 , - 1701 , - 1828 , - 2147 , - 2658 , - 3361 , - 4256 , - 159 , - 1438 , - 2909 , - 4572 , - 1243 , - 3290 , - 345 , - 2776 , - 215 , - 3030 , - 853 , - 4052 , - 2259 , - 658 , - 4433 , - 3216 , - 2191 , - 1358 , - 717 , - 268 , - 11 , - 5130 , - 73 , - 392 , - 903 , - 1606 , - 2501 , - 3588 , - 4867 , - 1154 , - 2817 , - 4672 , - 1535 , - 3774 , - 1021 , - 3644 , - 1275 , - 4282 , - 2297 , - 504 , - 4087 , - 2678 , - 1461 , - 436 , - 4787 , - 4146 , - 3697 , - 3440 , - 3375 , - 3502 , - 3821 , - 4332 , - 5035 , - 746 , - 1833 , - 3112 , - 4583 , - 1062 , - 2917 , - 4964 , - 2019 , - 4450 , - 1889 , - 4704 , - 2527 , - 542 , - 3933 , - 2332 , - 923 , - 4890 , - 3865 , - 3032 , - 2391 , - 1942 , - 1685 , - 1620 , - 1747 , - 2066 , - 2577 , - 3280 , - 4175 , - 78 , - 1357 , - 2828 , - 4491 , - 1162 , - 3209 , - 264 , - 2695 , - 134 , - 2949 , - 772 , - 3971 , - 2178 , - 577 , - 4352 , - 3135 , - 2110 , - 1277 , - 636 , - 187 , - 5114 , - 5049 , - 5176 , - 311 , - 822 , - 1525 , - 2420 , - 3507 , - 4786 , - 1073 , - 2736 , - 4591 , - 1454 , - 3693 , - 940 , - 3563 , - 1194 , - 4201 , - 2216 , - 423 , - 4006 , - 2597 , - 1380 , - 355 , - 4706 , - 4065 , - 3616 , - 3359 , - 3294 , - 3421 , - 3740 , - 4251 , - 4954 , - 665 , - 1752 , - 3031 , - 4502 , - 981 , - 2836 , - 4883 , - 1938 , - 4369 , - 1808 , - 4623 , - 2446 , - 461 , - 3852 , - 2251 , - 842 , - 4809 , - 3784 , - 2951 , - 2310 , - 1861 , - 1604 , - 1539 , - 1666 , - 1985 , - 2496 , - 3199 , - 4094 , - 5181 , - 1276 , - 2747 , - 4410 , - 1081 , - 3128 , - 183 , - 2614 , - 53 , - 2868 , - 691 , - 3890 , - 2097 , - 496 , - 4271 , - 3054 , - 2029 , - 1196 , - 555 , - 106 , - 5033 , - 4968 , - 5095 , - 230 , - 741 , - 1444 , - 2339 , - 3426 , - 4705 , - 992 , - 2655 , - 4510 , - 1373 , - 3612 , - 859 , - 3482 , - 1113 , - 4120 , - 2135 , - 342 , - 3925 , - 2516 , - 1299 , - 274 , - 4625 , - 3984 , - 3535 , - 3278 , - 3213 , - 3340 , - 3659 , - 4170 , - 4873 , - 584 , - 1671 , - 2950 , - 4421 , - 900 , - 2755 , - 4802 , - 1857 , - 4288 , - 1727 , - 4542 , - 2365 , - 380 , - 3771 , - 2170 , - 761 , - 4728 , - 3703 , - 2870 , - 2229 , - 1780 , - 1523 , - 1458 , - 1585 , - 1904 , - 2415 , - 3118 , - 4013 , - 5100 , - 1195 , - 2666 , - 4329 , - 1000 , - 3047 , - 102 , - 2533 , - 5156 , - 2787 , - 610 , - 3809 , - 2016 , - 415 , - 4190 , - 2973 , - 1948 , - 1115 , - 474 , - 25 , - 4952 , - 4887 , - 5014 , - 149 , - 660 , - 1363 , - 2258 , - 3345 , - 4624 , - 911 , - 2574 , - 4429 , - 1292 , - 3531 , - 778 , - 3401 , - 1032 , - 4039 , - 2054 , - 261 , - 3844 , - 2435 , - 1218 , - 193 , - 4544 , - 3903 , - 3454 , - 3197 , - 3132 , - 3259 , - 3578 , - 4089 , - 4792 , - 503 , - 1590 , - 2869 , - 4340 , - 819 , - 2674 , - 4721 , - 1776 , - 4207 , - 1646 , - 4461 , - 2284 , - 299 , - 3690 , - 2089 , - 680 , - 4647 , - 3622 , - 2789 , - 2148 , - 1699 , - 1442 , - 1377 , - 1504 , - 1823 , - 2334 , - 3037 , - 3932 , - 5019 , - 1114 , - 2585 , - 4248 , - 919 , - 2966 , - 21 , - 2452 , - 5075 , - 2706 , - 529 , - 3728 , - 1935 , - 334 , - 4109 , - 2892 , - 1867 , - 1034 , - 393 , - 5128 , - 4871 , - 4806 , - 4933 , - 68 , - 579 , - 1282 , - 2177 , - 3264 , - 4543 , - 830 , - 2493 , - 4348 , - 1211 , - 3450 , - 697 , - 3320 , - 951 , - 3958 , - 1973 , - 180 , - 3763 , - 2354 , - 1137 , - 112 , - 4463 , - 3822 , - 3373 , - 3116 , - 3051 , - 3178 , - 3497 , - 4008 , - 4711 , - 422 , - 1509 , - 2788 , - 4259 , - 738 , - 2593 , - 4640 , - 1695 , - 4126 , - 1565 , - 4380 , - 2203 , - 218 , - 3609 , - 2008 , - 599 , - 4566 , - 3541 , - 2708 , - 2067 , - 1618 , - 1361 , - 1296 , - 1423 , - 1742 , - 2253 , - 2956 , - 3851 , - 4938 , - 1033 , - 2504 , - 4167 , - 838 , - 2885 , - 5124 , - 2371 , - 4994 , - 2625 , - 448 , - 3647 , - 1854 , - 253 , - 4028 , - 2811 , - 1786 , - 953 , - 312 , - 5047 , - 4790 , - 4725 , - 4852 , - 5171 , - 498 , - 1201 , - 2096 , - 3183 , - 4462 , - 749 , - 2412 , - 4267 , - 1130 , - 3369 , - 616 , - 3239 , - 870 , - 3877 , - 1892 , - 99 , - 3682 , - 2273 , - 1056 , - 31 , - 4382 , - 3741 , - 3292 , - 3035 , - 2970 , - 3097 , - 3416 , - 3927 , - 4630 , - 341 , - 1428 , - 2707 , - 4178 , - 657 , - 2512 , - 4559 , - 1614 , - 4045 , - 1484 , - 4299 , - 2122 , - 137 , - 3528 , - 1927 , - 518 , - 4485 , - 3460 , - 2627 , - 1986 , - 1537 , - 1280 , - 1215 , - 1342 , - 1661 , - 2172 , - 2875 , - 3770 , - 4857 , - 952 , - 2423 , - 4086 , - 757 , - 2804 , - 5043 , - 2290 , - 4913 , - 2544 , - 367 , - 3566 , - 1773 , - 172 , - 3947 , - 2730 , - 1705 , - 872 , - 231 , - 4966 , - 4709 , - 4644 , - 4771 , - 5090 , - 417 , - 1120 , - 2015 , - 3102 , - 4381 , - 668 , - 2331 , - 4186 , - 1049 , - 3288 , - 535 , - 3158 , - 789 , - 3796 , - 1811 , - 18 , - 3601 , - 2192 , - 975 , - 5134 , - 4301 , - 3660 , - 3211 , - 2954 , - 2889 , - 3016 , - 3335 , - 3846 , - 4549 , - 260 , - 1347 , - 2626 , - 4097 , - 576 , - 2431 , - 4478 , - 1533 , - 3964 , - 1403 , - 4218 , - 2041 , - 56 , - 3447 , - 1846 , - 437 , - 4404 , - 3379 , - 2546 , - 1905 , - 1456 , - 1199 , - 1134 , - 1261 , - 1580 , - 2091 , - 2794 , - 3689 , - 4776 , - 871 , - 2342 , - 4005 , - 676 , - 2723 , - 4962 , - 2209 , - 4832 , - 2463 , - 286 , - 3485 , - 1692 , - 91 , - 3866 , - 2649 , - 1624 , - 791 , - 150 , - 4885 , - 4628 , - 4563 , - 4690 , - 5009 , - 336 , - 1039 , - 1934 , - 3021 , - 4300 , - 587 , - 2250 , - 4105 , - 968 , - 3207 , - 454 , - 3077 , - 708 , - 3715 , - 1730 , - 5121 , - 3520 , - 2111 , - 894 , - 5053 , - 4220 , - 3579 , - 3130 , - 2873 , - 2808 , - 2935 , - 3254 , - 3765 , - 4468 , - 179 , - 1266 , - 2545 , - 4016 , - 495 , - 2350 , - 4397 , - 1452 , - 3883 , - 1322 , - 4137 , - 1960 , - 5159 , - 3366 , - 1765 , - 356 , - 4323 , - 3298 , - 2465 , - 1824 , - 1375 , - 1118 , - 1053 , - 1180 , - 1499 , - 2010 , - 2713 , - 3608 , - 4695 , - 790 , - 2261 , - 3924 , - 595 , - 2642 , - 4881 , - 2128 , - 4751 , - 2382 , - 205 , - 3404 , - 1611 , - 10 , - 3785 , - 2568 , - 1543 , - 710 , - 69 , - 4804 , - 4547 , - 4482 , - 4609 , - 4928 , - 255 , - 958 , - 1853 , - 2940 , - 4219 , - 506 , - 2169 , - 4024 , - 887 , - 3126 , - 373 , - 2996 , - 627 , - 3634 , - 1649 , - 5040 , - 3439 , - 2030 , - 813 , - 4972 , - 4139 , - 3498 , - 3049 , - 2792 , - 2727 , - 2854 , - 3173 , - 3684 , - 4387 , - 98 , - 1185 , - 2464 , - 3935 , - 414 , - 2269 , - 4316 , - 1371 , - 3802 , - 1241 , - 4056 , - 1879 , - 5078 , - 3285 , - 1684 , - 275 , - 4242 , - 3217 , - 2384 , - 1743 , - 1294 , - 1037 , - 972 , - 1099 , - 1418 , - 1929 , - 2632 , - 3527 , - 4614 , - 709 , - 2180 , - 3843 , - 514 , - 2561 , - 4800 , - 2047 , - 4670 , - 2301 , - 124 , - 3323 , - 1530 , - 5113 , - 3704 , - 2487 , - 1462 , - 629 , - 5172 , - 4723 , - 4466 , - 4401 , - 4528 , - 4847 , - 174 , - 877 , - 1772 , - 2859 , - 4138 , - 425 , - 2088 , - 3943 , - 806 , - 3045 , - 292 , - 2915 , - 546 , - 3553 , - 1568 , - 4959 , - 3358 , - 1949 , - 732 , - 4891 , - 4058 , - 3417 , - 2968 , - 2711 , - 2646 , - 2773 , - 3092 , - 3603 , - 4306 , - 17 , - 1104 , - 2383 , - 3854 , - 333 , - 2188 , - 4235 , - 1290 , - 3721 , - 1160 , - 3975 , - 1798 , - 4997 , - 3204 , - 1603 , - 194 , - 4161 , - 3136 , - 2303 , - 1662 , - 1213 , - 956 , - 891 , - 1018 , - 1337 , - 1848 , - 2551 , - 3446 , - 4533 , - 628 , - 2099 , - 3762 , - 433 , - 2480 , - 4719 , - 1966 , - 4589 , - 2220 , - 43 , - 3242 , - 1449 , - 5032 , - 3623 , - 2406 , - 1381 , - 548 , - 5091 , - 4642 , - 4385 , - 4320 , - 4447 , - 4766 , - 93 , - 796 , - 1691 , - 2778 , - 4057 , - 344 , - 2007 , - 3862 , - 725 , - 2964 , - 211 , - 2834 , - 465 , - 3472 , - 1487 , - 4878 , - 3277 , - 1868 , - 651 , - 4810 , - 3977 , - 3336 , - 2887 , - 2630 , - 2565 , - 2692 , - 3011 , - 3522 , - 4225 , - 5120 , - 1023 , - 2302 , - 3773 , - 252 , - 2107 , - 4154 , - 1209 , - 3640 , - 1079 , - 3894 , - 1717 , - 4916 , - 3123 , - 1522 , - 113 , - 4080 , - 3055 , - 2222 , - 1581 , - 1132 , - 875 , - 810 , - 937 , - 1256 , - 1767 , - 2470 , - 3365 , - 4452 , - 547 , - 2018 , - 3681 , - 352 , - 2399 , - 4638 , - 1885 , - 4508 , - 2139 , - 5146 , - 3161 , - 1368 , - 4951 , - 3542 , - 2325 , - 1300 , - 467 , - 5010 , - 4561 , - 4304 , - 4239 , - 4366 , - 4685 , - 12 , - 715 , - 1610 , - 2697 , - 3976 , - 263 , - 1926 , - 3781 , - 644 , - 2883 , - 130 , - 2753 , - 384 , - 3391 , - 1406 , - 4797 , - 3196 , - 1787 , - 570 , - 4729 , - 3896 , - 3255 , - 2806 , - 2549 , - 2484 , - 2611 , - 2930 , - 3441 , - 4144 , - 5039 , - 942 , - 2221 , - 3692 , - 171 , - 2026 , - 4073 , - 1128 , - 3559 , - 998 , - 3813 , - 1636 , - 4835 , - 3042 , - 1441 , - 32 , - 3999 , - 2974 , - 2141 , - 1500 , - 1051 , - 794 , - 729 , - 856 , - 1175 , - 1686 , - 2389 , - 3284 , - 4371 , - 466 , - 1937 , - 3600 , - 271 , - 2318 , - 4557 , - 1804 , - 4427 , - 2058 , - 5065 , - 3080 , - 1287 , - 4870 , - 3461 , - 2244 , - 1219 , - 386 , - 4929 , - 4480 , - 4223 , - 4158 , - 4285 , - 4604 , - 5115 , - 634 , - 1529 , - 2616 , - 3895 , - 182 , - 1845 , - 3700 , - 563 , - 2802 , - 49 , - 2672 , - 303 , - 3310 , - 1325 , - 4716 , - 3115 , - 1706 , - 489 , - 4648 , - 3815 , - 3174 , - 2725 , - 2468 , - 2403 , - 2530 , - 2849 , - 3360 , - 4063 , - 4958 , - 861 , - 2140 , - 3611 , - 90 , - 1945 , - 3992 , - 1047 , - 3478 , - 917 , - 3732 , - 1555 , - 4754 , - 2961 , - 1360 , - 5135 , - 3918 , - 2893 , - 2060 , - 1419 , - 970 , - 713 , - 648 , - 775 , - 1094 , - 1605 , - 2308 , - 3203 , - 4290 , - 385 , - 1856 , - 3519 , - 190 , - 2237 , - 4476 , - 1723 , - 4346 , - 1977 , - 4984 , - 2999 , - 1206 , - 4789 , - 3380 , - 2163 , - 1138 , - 305 , - 4848 , - 4399 , - 4142 , - 4077 , - 4204 , - 4523 , - 5034 , - 553 , - 1448 , - 2535 , - 3814 , - 101 , - 1764 , - 3619 , - 482 , - 2721 , - 5152 , - 2591 , - 222 , - 3229 , - 1244 , - 4635 , - 3034 , - 1625 , - 408 , - 4567 , - 3734 , - 3093 , - 2644 , - 2387 , - 2322 , - 2449 , - 2768 , - 3279 , - 3982 , - 4877 , - 780 , - 2059 , - 3530 , - 9 , - 1864 , - 3911 , - 966 , - 3397 , - 836 , - 3651 , - 1474 , - 4673 , - 2880 , - 1279 , - 5054 , - 3837 , - 2812 , - 1979 , - 1338 , - 889 , - 632 , - 567 , - 694 , - 1013 , - 1524 , - 2227 , - 3122 , - 4209 , - 304 , - 1775 , - 3438 , - 109 , - 2156 , - 4395 , - 1642 , - 4265 , - 1896 , - 4903 , - 2918 , - 1125 , - 4708 , - 3299 , - 2082 , - 1057 , - 224 , - 4767 , - 4318 , - 4061 , - 3996 , - 4123 , - 4442 , - 4953 , - 472 , - 1367 , - 2454 , - 3733 , - 20 , - 1683 , - 3538 , - 401 , - 2640 , - 5071 , - 2510 , - 141 , - 3148 , - 1163 , - 4554 , - 2953 , - 1544 , - 327 , - 4486 , - 3653 , - 3012 , - 2563 , - 2306 , - 2241 , - 2368 , - 2687 , - 3198 , - 3901 , - 4796 , - 699 , - 1978 , - 3449 , - 5112 , - 1783 , - 3830 , - 885 , - 3316 , - 755 , - 3570 , - 1393 , - 4592 , - 2799 , - 1198 , - 4973 , - 3756 , - 2731 , - 1898 , - 1257 , - 808 , - 551 , - 486 , - 613 , - 932 , - 1443 , - 2146 , - 3041 , - 4128 , - 223 , - 1694 , - 3357 , - 28 , - 2075 , - 4314 , - 1561 , - 4184 , - 1815 , - 4822 , - 2837 , - 1044 , - 4627 , - 3218 , - 2001 , - 976 , - 143 , - 4686 , - 4237 , - 3980 , - 3915 , - 4042 , - 4361 , - 4872 , - 391 , - 1286 , - 2373 , - 3652 , - 5123 , - 1602 , - 3457 , - 320 , - 2559 , - 4990 , - 2429 , - 60 , - 3067 , - 1082 , - 4473 , - 2872 , - 1463 , - 246 , - 4405 , - 3572 , - 2931 , - 2482 , - 2225 , - 2160 , - 2287 , - 2606 , - 3117 , - 3820 , - 4715 , - 618 , - 1897 , - 3368 , - 5031 , - 1702 , - 3749 , - 804 , - 3235 , - 674 , - 3489 , - 1312 , - 4511 , - 2718 , - 1117 , - 4892 , - 3675 , - 2650 , - 1817 , - 1176 , - 727 , - 470 , - 405 , - 532 , - 851 , - 1362 , - 2065 , - 2960 , - 4047 , - 142 , - 1613 , - 3276 , - 5131 , - 1994 , - 4233 , - 1480 , - 4103 , - 1734 , - 4741 , - 2756 , - 963 , - 4546 , - 3137 , - 1920 , - 895 , - 62 , - 4605 , - 4156 , - 3899 , - 3834 , - 3961 , - 4280 , - 4791 , - 310 , - 1205 , - 2292 , - 3571 , - 5042 , - 1521 , - 3376 , - 239 , - 2478 , - 4909 , - 2348 , - 5163 , - 2986 , - 1001 , - 4392 , - 2791 , - 1382 , - 165 , - 4324 , - 3491 , - 2850 , - 2401 , - 2144 , - 2079 , - 2206 , - 2525 , - 3036 , - 3739 , - 4634 , - 537 , - 1816 , - 3287 , - 4950 , - 1621 , - 3668 , - 723 , - 3154 , - 593 , - 3408 , - 1231 , - 4430 , - 2637 , - 1036 , - 4811 , - 3594 , - 2569 , - 1736 , - 1095 , - 646 , - 389 , - 324 , - 451 , - 770 , - 1281 , - 1984 , - 2879 , - 3966 , - 61 , - 1532 , - 3195 , - 5050 , - 1913 , - 4152 , - 1399 , - 4022 , - 1653 , - 4660 , - 2675 , - 882 , - 4465 , - 3056 , - 1839 , - 814 , - 5165 , - 4524 , - 4075 , - 3818 , - 3753 , - 3880 , - 4199 , - 4710 , - 229 , - 1124 , - 2211 , - 3490 , - 4961 , - 1440 , - 3295 , - 158 , - 2397 , - 4828 , - 2267 , - 5082 , - 2905 , - 920 , - 4311 , - 2710 , - 1301 , - 84 , - 4243 , - 3410 , - 2769 , - 2320 , - 2063 , - 1998 , - 2125 , - 2444 , - 2955 , - 3658 , - 4553 , - 456 , - 1735 , - 3206 , - 4869 , - 1540 , - 3587 , - 642 , - 3073 , - 512 , - 3327 , - 1150 , - 4349 , - 2556 , - 955 , - 4730 , - 3513 , - 2488 , - 1655 , - 1014 , - 565 , - 308 , - 243 , - 370 , - 689 , - 1200 , - 1903 , - 2798 , - 3885 , - 5164 , - 1451 , - 3114 , - 4969 , - 1832 , - 4071 , - 1318 , - 3941 , - 1572 , - 4579 , - 2594 , - 801 , - 4384 , - 2975 , - 1758 , - 733 , - 5084 , - 4443 , - 3994 , - 3737 , - 3672 , - 3799 , - 4118 , - 4629 , - 148 , - 1043 , - 2130 , - 3409 , - 4880 , - 1359 , - 3214 , - 77 , - 2316 , - 4747 , - 2186 , - 5001 , - 2824 , - 839 , - 4230 , - 2629 , - 1220 , - 3 , - 4162 , - 3329 , - 2688 , - 2239 , - 1982 , - 1917 , - 2044 , - 2363 , - 2874 , - 3577 , - 4472 , - 375 , - 1654 , - 3125 , - 4788 , - 1459 , - 3506 , - 561 , - 2992 , - 431 , - 3246 , - 1069 , - 4268 , - 2475 , - 874 , - 4649 , - 3432 , - 2407 , - 1574 , - 933 , - 484 , - 227 , - 162 , - 289 , - 608 , - 1119 , - 1822 , - 2717 , - 3804 , - 5083 , - 1370 , - 3033 , - 4888 , - 1751 , - 3990 , - 1237 , - 3860 , - 1491 , - 4498 , - 2513 , - 720 , - 4303 , - 2894 , - 1677 , - 652 , - 5003 , - 4362 , - 3913 , - 3656 , - 3591 , - 3718 , - 4037 , - 4548 , - 67 , - 962 , - 2049 , - 3328 , - 4799 , - 1278 , - 3133 , - 5180 , - 2235 , - 4666 , - 2105 , - 4920 , - 2743 , - 758 , - 4149 , - 2548 , - 1139 , - 5106 , - 4081 , - 3248 , - 2607 , - 2158 , - 1901 , - 1836 , - 1963 , - 2282 , - 2793 , - 3496 , - 4391 , - 294 , - 1573 , - 3044 , - 4707 , - 1378 , - 3425 , - 480 , - 2911 , - 350 , - 3165 , - 988 , - 4187 , - 2394 , - 793 , - 4568 , - 3351 , - 2326 , - 1493 , - 852 , - 403 , - 146 , - 81 , - 208 , - 527 , - 1038 , - 1741 , - 2636 , - 3723 , - 5002 , - 1289 , - 2952 , - 4807 , - 1670 , - 3909 , - 1156 , - 3779 , - 1410 , - 4417 , - 2432 , - 639 , - 4222 , - 2813 , - 1596 , - 571 , - 4922 , - 4281 , - 3832 , - 3575 , - 3510 , - 3637 , - 3956 , - 4467 , - 5170 , - 881 , - 1968 , - 3247 , - 4718 , - 1197 , - 3052 , - 5099 , - 2154 , - 4585 , - 2024 , - 4839 , - 2662 , - 677 , - 4068 , - 2467 , - 1058 , - 5025 , - 4000 , - 3167 , - 2526 , - 2077 , - 1820 , - 1755 , - 1882 , - 2201 , - 2712 , - 3415 , - 4310 , - 213 , - 1492 , - 2963 , - 4626 , - 1297 , - 3344 , - 399 , - 2830 , - 269 , - 3084 , - 907 , - 4106 , - 2313 , - 712 , - 4487 , - 3270 , - 2245 , - 1412 , - 771 , - 322 , - 65 , - 0 , - 1015 , - 3834 , - 3209 , - 4388 , - 2123 , - 1662 , - 3005 , - 904 , - 607 , - 2114 , - 177 , - 44 , - 1715 , - 5190 , - 5221 , - 1808 , - 199 , - 394 , - 2393 , - 948 , - 1307 , - 3470 , - 2189 , - 2712 , - 5039 , - 3922 , - 4609 , - 1852 , - 899 , - 1750 , - 4405 , - 3616 , - 4631 , - 2202 , - 1577 , - 2756 , - 491 , - 30 , - 1373 , - 4520 , - 4223 , - 482 , - 3793 , - 3660 , - 83 , - 3558 , - 3589 , - 176 , - 3815 , - 4010 , - 761 , - 4564 , - 4923 , - 1838 , - 557 , - 1080 , - 3407 , - 2290 , - 2977 , - 220 , - 4515 , - 118 , - 2773 , - 1984 , - 2999 , - 570 , - 5193 , - 1124 , - 4107 , - 3646 , - 4989 , - 2888 , - 2591 , - 4098 , - 2161 , - 2028 , - 3699 , - 1926 , - 1957 , - 3792 , - 2183 , - 2378 , - 4377 , - 2932 , - 3291 , - 206 , - 4173 , - 4696 , - 1775 , - 658 , - 1345 , - 3836 , - 2883 , - 3734 , - 1141 , - 352 , - 1367 , - 4186 , - 3561 , - 4740 , - 2475 , - 2014 , - 3357 , - 1256 , - 959 , - 2466 , - 529 , - 396 , - 2067 , - 294 , - 325 , - 2160 , - 551 , - 746 , - 2745 , - 1300 , - 1659 , - 3822 , - 2541 , - 3064 , - 143 , - 4274 , - 4961 , - 2204 , - 1251 , - 2102 , - 4757 , - 3968 , - 4983 , - 2554 , - 1929 , - 3108 , - 843 , - 382 , - 1725 , - 4872 , - 4575 , - 834 , - 4145 , - 4012 , - 435 , - 3910 , - 3941 , - 528 , - 4167 , - 4362 , - 1113 , - 4916 , - 27 , - 2190 , - 909 , - 1432 , - 3759 , - 2642 , - 3329 , - 572 , - 4867 , - 470 , - 3125 , - 2336 , - 3351 , - 922 , - 297 , - 1476 , - 4459 , - 3998 , - 93 , - 3240 , - 2943 , - 4450 , - 2513 , - 2380 , - 4051 , - 2278 , - 2309 , - 4144 , - 2535 , - 2730 , - 4729 , - 3284 , - 3643 , - 558 , - 4525 , - 5048 , - 2127 , - 1010 , - 1697 , - 4188 , - 3235 , - 4086 , - 1493 , - 704 , - 1719 , - 4538 , - 3913 , - 5092 , - 2827 , - 2366 , - 3709 , - 1608 , - 1311 , - 2818 , - 881 , - 748 , - 2419 , - 646 , - 677 , - 2512 , - 903 , - 1098 , - 3097 , - 1652 , - 2011 , - 4174 , - 2893 , - 3416 , - 495 , - 4626 , - 65 , - 2556 , - 1603 , - 2454 , - 5109 , - 4320 , - 87 , - 2906 , - 2281 , - 3460 , - 1195 , - 734 , - 2077 , - 5224 , - 4927 , - 1186 , - 4497 , - 4364 , - 787 , - 4262 , - 4293 , - 880 , - 4519 , - 4714 , - 1465 , - 20 , - 379 , - 2542 , - 1261 , - 1784 , - 4111 , - 2994 , - 3681 , - 924 , - 5219 , - 822 , - 3477 , - 2688 , - 3703 , - 1274 , - 649 , - 1828 , - 4811 , - 4350 , - 445 , - 3592 , - 3295 , - 4802 , - 2865 , - 2732 , - 4403 , - 2630 , - 2661 , - 4496 , - 2887 , - 3082 , - 5081 , - 3636 , - 3995 , - 910 , - 4877 , - 152 , - 2479 , - 1362 , - 2049 , - 4540 , - 3587 , - 4438 , - 1845 , - 1056 , - 2071 , - 4890 , - 4265 , - 196 , - 3179 , - 2718 , - 4061 , - 1960 , - 1663 , - 3170 , - 1233 , - 1100 , - 2771 , - 998 , - 1029 , - 2864 , - 1255 , - 1450 , - 3449 , - 2004 , - 2363 , - 4526 , - 3245 , - 3768 , - 847 , - 4978 , - 417 , - 2908 , - 1955 , - 2806 , - 213 , - 4672 , - 439 , - 3258 , - 2633 , - 3812 , - 1547 , - 1086 , - 2429 , - 328 , - 31 , - 1538 , - 4849 , - 4716 , - 1139 , - 4614 , - 4645 , - 1232 , - 4871 , - 5066 , - 1817 , - 372 , - 731 , - 2894 , - 1613 , - 2136 , - 4463 , - 3346 , - 4033 , - 1276 , - 323 , - 1174 , - 3829 , - 3040 , - 4055 , - 1626 , - 1001 , - 2180 , - 5163 , - 4702 , - 797 , - 3944 , - 3647 , - 5154 , - 3217 , - 3084 , - 4755 , - 2982 , - 3013 , - 4848 , - 3239 , - 3434 , - 185 , - 3988 , - 4347 , - 1262 , - 5229 , - 504 , - 2831 , - 1714 , - 2401 , - 4892 , - 3939 , - 4790 , - 2197 , - 1408 , - 2423 , - 5242 , - 4617 , - 548 , - 3531 , - 3070 , - 4413 , - 2312 , - 2015 , - 3522 , - 1585 , - 1452 , - 3123 , - 1350 , - 1381 , - 3216 , - 1607 , - 1802 , - 3801 , - 2356 , - 2715 , - 4878 , - 3597 , - 4120 , - 1199 , - 82 , - 769 , - 3260 , - 2307 , - 3158 , - 565 , - 5024 , - 791 , - 3610 , - 2985 , - 4164 , - 1899 , - 1438 , - 2781 , - 680 , - 383 , - 1890 , - 5201 , - 5068 , - 1491 , - 4966 , - 4997 , - 1584 , - 5223 , - 170 , - 2169 , - 724 , - 1083 , - 3246 , - 1965 , - 2488 , - 4815 , - 3698 , - 4385 , - 1628 , - 675 , - 1526 , - 4181 , - 3392 , - 4407 , - 1978 , - 1353 , - 2532 , - 267 , - 5054 , - 1149 , - 4296 , - 3999 , - 258 , - 3569 , - 3436 , - 5107 , - 3334 , - 3365 , - 5200 , - 3591 , - 3786 , - 537 , - 4340 , - 4699 , - 1614 , - 333 , - 856 , - 3183 , - 2066 , - 2753 , - 5244 , - 4291 , - 5142 , - 2549 , - 1760 , - 2775 , - 346 , - 4969 , - 900 , - 3883 , - 3422 , - 4765 , - 2664 , - 2367 , - 3874 , - 1937 , - 1804 , - 3475 , - 1702 , - 1733 , - 3568 , - 1959 , - 2154 , - 4153 , - 2708 , - 3067 , - 5230 , - 3949 , - 4472 , - 1551 , - 434 , - 1121 , - 3612 , - 2659 , - 3510 , - 917 , - 128 , - 1143 , - 3962 , - 3337 , - 4516 , - 2251 , - 1790 , - 3133 , - 1032 , - 735 , - 2242 , - 305 , - 172 , - 1843 , - 70 , - 101 , - 1936 , - 327 , - 522 , - 2521 , - 1076 , - 1435 , - 3598 , - 2317 , - 2840 , - 5167 , - 4050 , - 4737 , - 1980 , - 1027 , - 1878 , - 4533 , - 3744 , - 4759 , - 2330 , - 1705 , - 2884 , - 619 , - 158 , - 1501 , - 4648 , - 4351 , - 610 , - 3921 , - 3788 , - 211 , - 3686 , - 3717 , - 304 , - 3943 , - 4138 , - 889 , - 4692 , - 5051 , - 1966 , - 685 , - 1208 , - 3535 , - 2418 , - 3105 , - 348 , - 4643 , - 246 , - 2901 , - 2112 , - 3127 , - 698 , - 73 , - 1252 , - 4235 , - 3774 , - 5117 , - 3016 , - 2719 , - 4226 , - 2289 , - 2156 , - 3827 , - 2054 , - 2085 , - 3920 , - 2311 , - 2506 , - 4505 , - 3060 , - 3419 , - 334 , - 4301 , - 4824 , - 1903 , - 786 , - 1473 , - 3964 , - 3011 , - 3862 , - 1269 , - 480 , - 1495 , - 4314 , - 3689 , - 4868 , - 2603 , - 2142 , - 3485 , - 1384 , - 1087 , - 2594 , - 657 , - 524 , - 2195 , - 422 , - 453 , - 2288 , - 679 , - 874 , - 2873 , - 1428 , - 1787 , - 3950 , - 2669 , - 3192 , - 271 , - 4402 , - 5089 , - 2332 , - 1379 , - 2230 , - 4885 , - 4096 , - 5111 , - 2682 , - 2057 , - 3236 , - 971 , - 510 , - 1853 , - 5000 , - 4703 , - 962 , - 4273 , - 4140 , - 563 , - 4038 , - 4069 , - 656 , - 4295 , - 4490 , - 1241 , - 5044 , - 155 , - 2318 , - 1037 , - 1560 , - 3887 , - 2770 , - 3457 , - 700 , - 4995 , - 598 , - 3253 , - 2464 , - 3479 , - 1050 , - 425 , - 1604 , - 4587 , - 4126 , - 221 , - 3368 , - 3071 , - 4578 , - 2641 , - 2508 , - 4179 , - 2406 , - 2437 , - 4272 , - 2663 , - 2858 , - 4857 , - 3412 , - 3771 , - 686 , - 4653 , - 5176 , - 2255 , - 1138 , - 1825 , - 4316 , - 3363 , - 4214 , - 1621 , - 832 , - 1847 , - 4666 , - 4041 , - 5220 , - 2955 , - 2494 , - 3837 , - 1736 , - 1439 , - 2946 , - 1009 , - 876 , - 2547 , - 774 , - 805 , - 2640 , - 1031 , - 1226 , - 3225 , - 1780 , - 2139 , - 4302 , - 3021 , - 3544 , - 623 , - 4754 , - 193 , - 2684 , - 1731 , - 2582 , - 5237 , - 4448 , - 215 , - 3034 , - 2409 , - 3588 , - 1323 , - 862 , - 2205 , - 104 , - 5055 , - 1314 , - 4625 , - 4492 , - 915 , - 4390 , - 4421 , - 1008 , - 4647 , - 4842 , - 1593 , - 148 , - 507 , - 2670 , - 1389 , - 1912 , - 4239 , - 3122 , - 3809 , - 1052 , - 99 , - 950 , - 3605 , - 2816 , - 3831 , - 1402 , - 777 , - 1956 , - 4939 , - 4478 , - 573 , - 3720 , - 3423 , - 4930 , - 2993 , - 2860 , - 4531 , - 2758 , - 2789 , - 4624 , - 3015 , - 3210 , - 5209 , - 3764 , - 4123 , - 1038 , - 5005 , - 280 , - 2607 , - 1490 , - 2177 , - 4668 , - 3715 , - 4566 , - 1973 , - 1184 , - 2199 , - 5018 , - 4393 , - 324 , - 3307 , - 2846 , - 4189 , - 2088 , - 1791 , - 3298 , - 1361 , - 1228 , - 2899 , - 1126 , - 1157 , - 2992 , - 1383 , - 1578 , - 3577 , - 2132 , - 2491 , - 4654 , - 3373 , - 3896 , - 975 , - 5106 , - 545 , - 3036 , - 2083 , - 2934 , - 341 , - 4800 , - 567 , - 3386 , - 2761 , - 3940 , - 1675 , - 1214 , - 2557 , - 456 , - 159 , - 1666 , - 4977 , - 4844 , - 1267 , - 4742 , - 4773 , - 1360 , - 4999 , - 5194 , - 1945 , - 500 , - 859 , - 3022 , - 1741 , - 2264 , - 4591 , - 3474 , - 4161 , - 1404 , - 451 , - 1302 , - 3957 , - 3168 , - 4183 , - 1754 , - 1129 , - 2308 , - 43 , - 4830 , - 925 , - 4072 , - 3775 , - 34 , - 3345 , - 3212 , - 4883 , - 3110 , - 3141 , - 4976 , - 3367 , - 3562 , - 313 , - 4116 , - 4475 , - 1390 , - 109 , - 632 , - 2959 , - 1842 , - 2529 , - 5020 , - 4067 , - 4918 , - 2325 , - 1536 , - 2551 , - 122 , - 4745 , - 676 , - 3659 , - 3198 , - 4541 , - 2440 , - 2143 , - 3650 , - 1713 , - 1580 , - 3251 , - 1478 , - 1509 , - 3344 , - 1735 , - 1930 , - 3929 , - 2484 , - 2843 , - 5006 , - 3725 , - 4248 , - 1327 , - 210 , - 897 , - 3388 , - 2435 , - 3286 , - 693 , - 5152 , - 919 , - 3738 , - 3113 , - 4292 , - 2027 , - 1566 , - 2909 , - 808 , - 511 , - 2018 , - 81 , - 5196 , - 1619 , - 5094 , - 5125 , - 1712 , - 103 , - 298 , - 2297 , - 852 , - 1211 , - 3374 , - 2093 , - 2616 , - 4943 , - 3826 , - 4513 , - 1756 , - 803 , - 1654 , - 4309 , - 3520 , - 4535 , - 2106 , - 1481 , - 2660 , - 395 , - 5182 , - 1277 , - 4424 , - 4127 , - 386 , - 3697 , - 3564 , - 5235 , - 3462 , - 3493 , - 80 , - 3719 , - 3914 , - 665 , - 4468 , - 4827 , - 1742 , - 461 , - 984 , - 3311 , - 2194 , - 2881 , - 124 , - 4419 , - 22 , - 2677 , - 1888 , - 2903 , - 474 , - 5097 , - 1028 , - 4011 , - 3550 , - 4893 , - 2792 , - 2495 , - 4002 , - 2065 , - 1932 , - 3603 , - 1830 , - 1861 , - 3696 , - 2087 , - 2282 , - 4281 , - 2836 , - 3195 , - 110 , - 4077 , - 4600 , - 1679 , - 562 , - 1249 , - 3740 , - 2787 , - 3638 , - 1045 , - 256 , - 1271 , - 4090 , - 3465 , - 4644 , - 2379 , - 1918 , - 3261 , - 1160 , - 863 , - 2370 , - 433 , - 300 , - 1971 , - 198 , - 229 , - 2064 , - 455 , - 650 , - 2649 , - 1204 , - 1563 , - 3726 , - 2445 , - 2968 , - 47 , - 4178 , - 4865 , - 2108 , - 1155 , - 2006 , - 4661 , - 3872 , - 4887 , - 2458 , - 1833 , - 3012 , - 747 , - 286 , - 1629 , - 4776 , - 4479 , - 738 , - 4049 , - 3916 , - 339 , - 3814 , - 3845 , - 432 , - 4071 , - 4266 , - 1017 , - 4820 , - 5179 , - 2094 , - 813 , - 1336 , - 3663 , - 2546 , - 3233 , - 476 , - 4771 , - 374 , - 3029 , - 2240 , - 3255 , - 826 , - 201 , - 1380 , - 4363 , - 3902 , - 5245 , - 3144 , - 2847 , - 4354 , - 2417 , - 2284 , - 3955 , - 2182 , - 2213 , - 4048 , - 2439 , - 2634 , - 4633 , - 3188 , - 3547 , - 462 , - 4429 , - 4952 , - 2031 , - 914 , - 1601 , - 4092 , - 3139 , - 3990 , - 1397 , - 608 , - 1623 , - 4442 , - 3817 , - 4996 , - 2731 , - 2270 , - 3613 , - 1512 , - 1215 , - 2722 , - 785 , - 652 , - 2323 , - 550 , - 581 , - 2416 , - 807 , - 1002 , - 3001 , - 1556 , - 1915 , - 4078 , - 2797 , - 3320 , - 399 , - 4530 , - 5217 , - 2460 , - 1507 , - 2358 , - 5013 , - 4224 , - 5239 , - 2810 , - 2185 , - 3364 , - 1099 , - 638 , - 1981 , - 5128 , - 4831 , - 1090 , - 4401 , - 4268 , - 691 , - 4166 , - 4197 , - 784 , - 4423 , - 4618 , - 1369 , - 5172 , - 283 , - 2446 , - 1165 , - 1688 , - 4015 , - 2898 , - 3585 , - 828 , - 5123 , - 726 , - 3381 , - 2592 , - 3607 , - 1178 , - 553 , - 1732 , - 4715 , - 4254 , - 349 , - 3496 , - 3199 , - 4706 , - 2769 , - 2636 , - 4307 , - 2534 , - 2565 , - 4400 , - 2791 , - 2986 , - 4985 , - 3540 , - 3899 , - 814 , - 4781 , - 56 , - 2383 , - 1266 , - 1953 , - 4444 , - 3491 , - 4342 , - 1749 , - 960 , - 1975 , - 4794 , - 4169 , - 100 , - 3083 , - 2622 , - 3965 , - 1864 , - 1567 , - 3074 , - 1137 , - 1004 , - 2675 , - 902 , - 933 , - 2768 , - 1159 , - 1354 , - 3353 , - 1908 , - 2267 , - 4430 , - 3149 , - 3672 , - 751 , - 4882 , - 321 , - 2812 , - 1859 , - 2710 , - 117 , - 4576 , - 343 , - 3162 , - 2537 , - 3716 , - 1451 , - 990 , - 2333 , - 232 , - 5183 , - 1442 , - 4753 , - 4620 , - 1043 , - 4518 , - 4549 , - 1136 , - 4775 , - 4970 , - 1721 , - 276 , - 635 , - 2798 , - 1517 , - 2040 , - 4367 , - 3250 , - 3937 , - 1180 , - 227 , - 1078 , - 3733 , - 2944 , - 3959 , - 1530 , - 905 , - 2084 , - 5067 , - 4606 , - 701 , - 3848 , - 3551 , - 5058 , - 3121 , - 2988 , - 4659 , - 2886 , - 2917 , - 4752 , - 3143 , - 3338 , - 89 , - 3892 , - 4251 , - 1166 , - 5133 , - 408 , - 2735 , - 1618 , - 2305 , - 4796 , - 3843 , - 4694 , - 2101 , - 1312 , - 2327 , - 5146 , - 4521 , - 452 , - 3435 , - 2974 , - 4317 , - 2216 , - 1919 , - 3426 , - 1489 , - 1356 , - 3027 , - 1254 , - 1285 , - 3120 , - 1511 , - 1706 , - 3705 , - 2260 , - 2619 , - 4782 , - 3501 , - 4024 , - 1103 , - 5234 , - 673 , - 3164 , - 2211 , - 3062 , - 469 , - 4928 , - 695 , - 3514 , - 2889 , - 4068 , - 1803 , - 1342 , - 2685 , - 584 , - 287 , - 1794 , - 5105 , - 4972 , - 1395 , - 4870 , - 4901 , - 1488 , - 5127 , - 74 , - 2073 , - 628 , - 987 , - 3150 , - 1869 , - 2392 , - 4719 , - 3602 , - 4289 , - 1532 , - 579 , - 1430 , - 4085 , - 3296 , - 4311 , - 1882 , - 1257 , - 2436 , - 171 , - 4958 , - 1053 , - 4200 , - 3903 , - 162 , - 3473 , - 3340 , - 5011 , - 3238 , - 3269 , - 5104 , - 3495 , - 3690 , - 441 , - 4244 , - 4603 , - 1518 , - 237 , - 760 , - 3087 , - 1970 , - 2657 , - 5148 , - 4195 , - 5046 , - 2453 , - 1664 , - 2679 , - 250 , - 4873 , - 804 , - 3787 , - 3326 , - 4669 , - 2568 , - 2271 , - 3778 , - 1841 , - 1708 , - 3379 , - 1606 , - 1637 , - 3472 , - 1863 , - 2058 , - 4057 , - 2612 , - 2971 , - 5134 , - 3853 , - 4376 , - 1455 , - 338 , - 1025 , - 3516 , - 2563 , - 3414 , - 821 , - 32 , - 1047 , - 3866 , - 3241 , - 4420 , - 2155 , - 1694 , - 3037 , - 936 , - 639 , - 2146 , - 209 , - 76 , - 1747 , - 5222 , - 5 , - 1840 , - 231 , - 426 , - 2425 , - 980 , - 1339 , - 3502 , - 2221 , - 2744 , - 5071 , - 3954 , - 4641 , - 1884 , - 931 , - 1782 , - 4437 , - 3648 , - 4663 , - 2234 , - 1609 , - 2788 , - 523 , - 62 , - 1405 , - 4552 , - 4255 , - 514 , - 3825 , - 3692 , - 115 , - 3590 , - 3621 , - 208 , - 3847 , - 4042 , - 793 , - 4596 , - 4955 , - 1870 , - 589 , - 1112 , - 3439 , - 2322 , - 3009 , - 252 , - 4547 , - 150 , - 2805 , - 2016 , - 3031 , - 602 , - 5225 , - 1156 , - 4139 , - 3678 , - 5021 , - 2920 , - 2623 , - 4130 , - 2193 , - 2060 , - 3731 , - 1958 , - 1989 , - 3824 , - 2215 , - 2410 , - 4409 , - 2964 , - 3323 , - 238 , - 4205 , - 4728 , - 1807 , - 690 , - 1377 , - 3868 , - 2915 , - 3766 , - 1173 , - 384 , - 1399 , - 4218 , - 3593 , - 4772 , - 2507 , - 2046 , - 3389 , - 1288 , - 991 , - 2498 , - 561 , - 428 , - 2099 , - 326 , - 357 , - 2192 , - 583 , - 778 , - 2777 , - 1332 , - 1691 , - 3854 , - 2573 , - 3096 , - 175 , - 4306 , - 4993 , - 2236 , - 1283 , - 2134 , - 4789 , - 4000 , - 5015 , - 2586 , - 1961 , - 3140 , - 875 , - 414 , - 1757 , - 4904 , - 4607 , - 866 , - 4177 , - 4044 , - 467 , - 3942 , - 3973 , - 560 , - 4199 , - 4394 , - 1145 , - 4948 , - 59 , - 2222 , - 941 , - 1464 , - 3791 , - 2674 , - 3361 , - 604 , - 4899 , - 502 , - 3157 , - 2368 , - 3383 , - 954 , - 329 , - 1508 , - 4491 , - 4030 , - 125 , - 3272 , - 2975 , - 4482 , - 2545 , - 2412 , - 4083 , - 2310 , - 2341 , - 4176 , - 2567 , - 2762 , - 4761 , - 3316 , - 3675 , - 590 , - 4557 , - 5080 , - 2159 , - 1042 , - 1729 , - 4220 , - 3267 , - 4118 , - 1525 , - 736 , - 1751 , - 4570 , - 3945 , - 5124 , - 2859 , - 2398 , - 3741 , - 1640 , - 1343 , - 2850 , - 913 , - 780 , - 2451 , - 678 , - 709 , - 2544 , - 935 , - 1130 , - 3129 , - 1684 , - 2043 , - 4206 , - 2925 , - 3448 , - 527 , - 4658 , - 97 , - 2588 , - 1635 , - 2486 , - 5141 , - 4352 , - 119 , - 2938 , - 2313 , - 3492 , - 1227 , - 766 , - 2109 , - 8 , - 4959 , - 1218 , - 4529 , - 4396 , - 819 , - 4294 , - 4325 , - 912 , - 4551 , - 4746 , - 1497 , - 52 , - 411 , - 2574 , - 1293 , - 1816 , - 4143 , - 3026 , - 3713 , - 956 , - 3 , - 854 , - 3509 , - 2720 , - 3735 , - 1306 , - 681 , - 1860 , - 4843 , - 4382 , - 477 , - 3624 , - 3327 , - 4834 , - 2897 , - 2764 , - 4435 , - 2662 , - 2693 , - 4528 , - 2919 , - 3114 , - 5113 , - 3668 , - 4027 , - 942 , - 4909 , - 184 , - 2511 , - 1394 , - 2081 , - 4572 , - 3619 , - 4470 , - 1877 , - 1088 , - 2103 , - 4922 , - 4297 , - 228 , - 3211 , - 2750 , - 4093 , - 1992 , - 1695 , - 3202 , - 1265 , - 1132 , - 2803 , - 1030 , - 1061 , - 2896 , - 1287 , - 1482 , - 3481 , - 2036 , - 2395 , - 4558 , - 3277 , - 3800 , - 879 , - 5010 , - 449 , - 2940 , - 1987 , - 2838 , - 245 , - 4704 , - 471 , - 3290 , - 2665 , - 3844 , - 1579 , - 1118 , - 2461 , - 360 , - 63 , - 1570 , - 4881 , - 4748 , - 1171 , - 4646 , - 4677 , - 1264 , - 4903 , - 5098 , - 1849 , - 404 , - 763 , - 2926 , - 1645 , - 2168 , - 4495 , - 3378 , - 4065 , - 1308 , - 355 , - 1206 , - 3861 , - 3072 , - 4087 , - 1658 , - 1033 , - 2212 , - 5195 , - 4734 , - 829 , - 3976 , - 3679 , - 5186 , - 3249 , - 3116 , - 4787 , - 3014 , - 3045 , - 4880 , - 3271 , - 3466 , - 217 , - 4020 , - 4379 , - 1294 , - 13 , - 536 , - 2863 , - 1746 , - 2433 , - 4924 , - 3971 , - 4822 , - 2229 , - 1440 , - 2455 , - 26 , - 4649 , - 580 , - 3563 , - 3102 , - 4445 , - 2344 , - 2047 , - 3554 , - 1617 , - 1484 , - 3155 , - 1382 , - 1413 , - 3248 , - 1639 , - 1834 , - 3833 , - 2388 , - 2747 , - 4910 , - 3629 , - 4152 , - 1231 , - 114 , - 801 , - 3292 , - 2339 , - 3190 , - 597 , - 5056 , - 823 , - 3642 , - 3017 , - 4196 , - 1931 , - 1470 , - 2813 , - 712 , - 415 , - 1922 , - 5233 , - 5100 , - 1523 , - 4998 , - 5029 , - 1616 , - 7 , - 202 , - 2201 , - 756 , - 1115 , - 3278 , - 1997 , - 2520 , - 4847 , - 3730 , - 4417 , - 1660 , - 707 , - 1558 , - 4213 , - 3424 , - 4439 , - 2010 , - 1385 , - 2564 , - 299 , - 5086 , - 1181 , - 4328 , - 4031 , - 290 , - 3601 , - 3468 , - 5139 , - 3366 , - 3397 , - 5232 , - 3623 , - 3818 , - 569 , - 4372 , - 4731 , - 1646 , - 365 , - 888 , - 3215 , - 2098 , - 2785 , - 28 , - 4323 , - 5174 , - 2581 , - 1792 , - 2807 , - 378 , - 5001 , - 932 , - 3915 , - 3454 , - 4797 , - 2696 , - 2399 , - 3906 , - 1969 , - 1836 , - 3507 , - 1734 , - 1765 , - 3600 , - 1991 , - 2186 , - 4185 , - 2740 , - 3099 , - 14 , - 3981 , - 4504 , - 1583 , - 466 , - 1153 , - 3644 , - 2691 , - 3542 , - 949 , - 160 , - 1175 , - 3994 , - 3369 , - 4548 , - 2283 , - 1822 , - 3165 , - 1064 , - 767 , - 2274 , - 337 , - 204 , - 1875 , - 102 , - 133 , - 1968 , - 359 , - 554 , - 2553 , - 1108 , - 1467 , - 3630 , - 2349 , - 2872 , - 5199 , - 4082 , - 4769 , - 2012 , - 1059 , - 1910 , - 4565 , - 3776 , - 4791 , - 2362 , - 1737 , - 2916 , - 651 , - 190 , - 1533 , - 4680 , - 4383 , - 642 , - 3953 , - 3820 , - 243 , - 3718 , - 3749 , - 336 , - 3975 , - 4170 , - 921 , - 4724 , - 5083 , - 1998 , - 717 , - 1240 , - 3567 , - 2450 , - 3137 , - 380 , - 4675 , - 278 , - 2933 , - 2144 , - 3159 , - 730 , - 105 , - 1284 , - 4267 , - 3806 , - 5149 , - 3048 , - 2751 , - 4258 , - 2321 , - 2188 , - 3859 , - 2086 , - 2117 , - 3952 , - 2343 , - 2538 , - 4537 , - 3092 , - 3451 , - 366 , - 4333 , - 4856 , - 1935 , - 818 , - 1505 , - 3996 , - 3043 , - 3894 , - 1301 , - 512 , - 1527 , - 4346 , - 3721 , - 4900 , - 2635 , - 2174 , - 3517 , - 1416 , - 1119 , - 2626 , - 689 , - 556 , - 2227 , - 454 , - 485 , - 2320 , - 711 , - 906 , - 2905 , - 1460 , - 1819 , - 3982 , - 2701 , - 3224 , - 303 , - 4434 , - 5121 , - 2364 , - 1411 , - 2262 , - 4917 , - 4128 , - 5143 , - 2714 , - 2089 , - 3268 , - 1003 , - 542 , - 1885 , - 5032 , - 4735 , - 994 , - 4305 , - 4172 , - 595 , - 4070 , - 4101 , - 688 , - 4327 , - 4522 , - 1273 , - 5076 , - 187 , - 2350 , - 1069 , - 1592 , - 3919 , - 2802 , - 3489 , - 732 , - 5027 , - 630 , - 3285 , - 2496 , - 3511 , - 1082 , - 457 , - 1636 , - 4619 , - 4158 , - 253 , - 3400 , - 3103 , - 4610 , - 2673 , - 2540 , - 4211 , - 2438 , - 2469 , - 4304 , - 2695 , - 2890 , - 4889 , - 3444 , - 3803 , - 718 , - 4685 , - 5208 , - 2287 , - 1170 , - 1857 , - 4348 , - 3395 , - 4246 , - 1653 , - 864 , - 1879 , - 4698 , - 4073 , - 4 , - 2987 , - 2526 , - 3869 , - 1768 , - 1471 , - 2978 , - 1041 , - 908 , - 2579 , - 806 , - 837 , - 2672 , - 1063 , - 1258 , - 3257 , - 1812 , - 2171 , - 4334 , - 3053 , - 3576 , - 655 , - 4786 , - 225 , - 2716 , - 1763 , - 2614 , - 21 , - 4480 , - 247 , - 3066 , - 2441 , - 3620 , - 1355 , - 894 , - 2237 , - 136 , - 5087 , - 1346 , - 4657 , - 4524 , - 947 , - 4422 , - 4453 , - 1040 , - 4679 , - 4874 , - 1625 , - 180 , - 539 , - 2702 , - 1421 , - 1944 , - 4271 , - 3154 , - 3841 , - 1084 , - 131 , - 982 , - 3637 , - 2848 , - 3863 , - 1434 , - 809 , - 1988 , - 4971 , - 4510 , - 605 , - 3752 , - 3455 , - 4962 , - 3025 , - 2892 , - 4563 , - 2790 , - 2821 , - 4656 , - 3047 , - 3242 , - 5241 , - 3796 , - 4155 , - 1070 , - 5037 , - 312 , - 2639 , - 1522 , - 2209 , - 4700 , - 3747 , - 4598 , - 2005 , - 1216 , - 2231 , - 5050 , - 4425 , - 356 , - 3339 , - 2878 , - 4221 , - 2120 , - 1823 , - 3330 , - 1393 , - 1260 , - 2931 , - 1158 , - 1189 , - 3024 , - 1415 , - 1610 , - 3609 , - 2164 , - 2523 , - 4686 , - 3405 , - 3928 , - 1007 , - 5138 , - 577 , - 3068 , - 2115 , - 2966 , - 373 , - 4832 , - 599 , - 3418 , - 2793 , - 3972 , - 1707 , - 1246 , - 2589 , - 488 , - 191 , - 1698 , - 5009 , - 4876 , - 1299 , - 4774 , - 4805 , - 1392 , - 5031 , - 5226 , - 1977 , - 532 , - 891 , - 3054 , - 1773 , - 2296 , - 4623 , - 3506 , - 4193 , - 1436 , - 483 , - 1334 , - 3989 , - 3200 , - 4215 , - 1786 , - 1161 , - 2340 , - 75 , - 4862 , - 957 , - 4104 , - 3807 , - 66 , - 3377 , - 3244 , - 4915 , - 3142 , - 3173 , - 5008 , - 3399 , - 3594 , - 345 , - 4148 , - 4507 , - 1422 , - 141 , - 664 , - 2991 , - 1874 , - 2561 , - 5052 , - 4099 , - 4950 , - 2357 , - 1568 , - 2583 , - 154 , - 4777 , - 708 , - 3691 , - 3230 , - 4573 , - 2472 , - 2175 , - 3682 , - 1745 , - 1612 , - 3283 , - 1510 , - 1541 , - 3376 , - 1767 , - 1962 , - 3961 , - 2516 , - 2875 , - 5038 , - 3757 , - 4280 , - 1359 , - 242 , - 929 , - 3420 , - 2467 , - 3318 , - 725 , - 5184 , - 951 , - 3770 , - 3145 , - 4324 , - 2059 , - 1598 , - 2941 , - 840 , - 543 , - 2050 , - 113 , - 5228 , - 1651 , - 5126 , - 5157 , - 1744 , - 135 , - 330 , - 2329 , - 884 , - 1243 , - 3406 , - 2125 , - 2648 , - 4975 , - 3858 , - 4545 , - 1788 , - 835 , - 1686 , - 4341 , - 3552 , - 4567 , - 2138 , - 1513 , - 2692 , - 427 , - 5214 , - 1309 , - 4456 , - 4159 , - 418 , - 3729 , - 3596 , - 19 , - 3494 , - 3525 , - 112 , - 3751 , - 3946 , - 697 , - 4500 , - 4859 , - 1774 , - 493 , - 1016 , - 3343 , - 2226 , - 2913 , - 156 , - 4451 , - 54 , - 2709 , - 1920 , - 2935 , - 506 , - 5129 , - 1060 , - 4043 , - 3582 , - 4925 , - 2824 , - 2527 , - 4034 , - 2097 , - 1964 , - 3635 , - 1862 , - 1893 , - 3728 , - 2119 , - 2314 , - 4313 , - 2868 , - 3227 , - 142 , - 4109 , - 4632 , - 1711 , - 594 , - 1281 , - 3772 , - 2819 , - 3670 , - 1077 , - 288 , - 1303 , - 4122 , - 3497 , - 4676 , - 2411 , - 1950 , - 3293 , - 1192 , - 895 , - 2402 , - 465 , - 332 , - 2003 , - 230 , - 261 , - 2096 , - 487 , - 682 , - 2681 , - 1236 , - 1595 , - 3758 , - 2477 , - 3000 , - 79 , - 4210 , - 4897 , - 2140 , - 1187 , - 2038 , - 4693 , - 3904 , - 4919 , - 2490 , - 1865 , - 3044 , - 779 , - 318 , - 1661 , - 4808 , - 4511 , - 770 , - 4081 , - 3948 , - 371 , - 3846 , - 3877 , - 464 , - 4103 , - 4298 , - 1049 , - 4852 , - 5211 , - 2126 , - 845 , - 1368 , - 3695 , - 2578 , - 3265 , - 508 , - 4803 , - 406 , - 3061 , - 2272 , - 3287 , - 858 , - 233 , - 1412 , - 4395 , - 3934 , - 29 , - 3176 , - 2879 , - 4386 , - 2449 , - 2316 , - 3987 , - 2214 , - 2245 , - 4080 , - 2471 , - 2666 , - 4665 , - 3220 , - 3579 , - 494 , - 4461 , - 4984 , - 2063 , - 946 , - 1633 , - 4124 , - 3171 , - 4022 , - 1429 , - 640 , - 1655 , - 4474 , - 3849 , - 5028 , - 2763 , - 2302 , - 3645 , - 1544 , - 1247 , - 2754 , - 817 , - 684 , - 2355 , - 582 , - 613 , - 2448 , - 839 , - 1034 , - 3033 , - 1588 , - 1947 , - 4110 , - 2829 , - 3352 , - 431 , - 4562 , - 1 , - 2492 , - 1539 , - 2390 , - 5045 , - 4256 , - 23 , - 2842 , - 2217 , - 3396 , - 1131 , - 670 , - 2013 , - 5160 , - 4863 , - 1122 , - 4433 , - 4300 , - 723 , - 4198 , - 4229 , - 816 , - 4455 , - 4650 , - 1401 , - 5204 , - 315 , - 2478 , - 1197 , - 1720 , - 4047 , - 2930 , - 3617 , - 860 , - 5155 , - 758 , - 3413 , - 2624 , - 3639 , - 1210 , - 585 , - 1764 , - 4747 , - 4286 , - 381 , - 3528 , - 3231 , - 4738 , - 2801 , - 2668 , - 4339 , - 2566 , - 2597 , - 4432 , - 2823 , - 3018 , - 5017 , - 3572 , - 3931 , - 846 , - 4813 , - 88 , - 2415 , - 1298 , - 1985 , - 4476 , - 3523 , - 4374 , - 1781 , - 992 , - 2007 , - 4826 , - 4201 , - 132 , - 3115 , - 2654 , - 3997 , - 1896 , - 1599 , - 3106 , - 1169 , - 1036 , - 2707 , - 934 , - 965 , - 2800 , - 1191 , - 1386 , - 3385 , - 1940 , - 2299 , - 4462 , - 3181 , - 3704 , - 783 , - 4914 , - 353 , - 2844 , - 1891 , - 2742 , - 149 , - 4608 , - 375 , - 3194 , - 2569 , - 3748 , - 1483 , - 1022 , - 2365 , - 264 , - 5215 , - 1474 , - 4785 , - 4652 , - 1075 , - 4550 , - 4581 , - 1168 , - 4807 , - 5002 , - 1753 , - 308 , - 667 , - 2830 , - 1549 , - 2072 , - 4399 , - 3282 , - 3969 , - 1212 , - 259 , - 1110 , - 3765 , - 2976 , - 3991 , - 1562 , - 937 , - 2116 , - 5099 , - 4638 , - 733 , - 3880 , - 3583 , - 5090 , - 3153 , - 3020 , - 4691 , - 2918 , - 2949 , - 4784 , - 3175 , - 3370 , - 121 , - 3924 , - 4283 , - 1198 , - 5165 , - 440 , - 2767 , - 1650 , - 2337 , - 4828 , - 3875 , - 4726 , - 2133 , - 1344 , - 2359 , - 5178 , - 4553 , - 484 , - 3467 , - 3006 , - 4349 , - 2248 , - 1951 , - 3458 , - 1521 , - 1388 , - 3059 , - 1286 , - 1317 , - 3152 , - 1543 , - 1738 , - 3737 , - 2292 , - 2651 , - 4814 , - 3533 , - 4056 , - 1135 , - 18 , - 705 , - 3196 , - 2243 , - 3094 , - 501 , - 4960 , - 727 , - 3546 , - 2921 , - 4100 , - 1835 , - 1374 , - 2717 , - 616 , - 319 , - 1826 , - 5137 , - 5004 , - 1427 , - 4902 , - 4933 , - 1520 , - 5159 , - 106 , - 2105 , - 660 , - 1019 , - 3182 , - 1901 , - 2424 , - 4751 , - 3634 , - 4321 , - 1564 , - 611 , - 1462 , - 4117 , - 3328 , - 4343 , - 1914 , - 1289 , - 2468 , - 203 , - 4990 , - 1085 , - 4232 , - 3935 , - 194 , - 3505 , - 3372 , - 5043 , - 3270 , - 3301 , - 5136 , - 3527 , - 3722 , - 473 , - 4276 , - 4635 , - 1550 , - 269 , - 792 , - 3119 , - 2002 , - 2689 , - 5180 , - 4227 , - 5078 , - 2485 , - 1696 , - 2711 , - 282 , - 4905 , - 836 , - 3819 , - 3358 , - 4701 , - 2600 , - 2303 , - 3810 , - 1873 , - 1740 , - 3411 , - 1638 , - 1669 , - 3504 , - 1895 , - 2090 , - 4089 , - 2644 , - 3003 , - 5166 , - 3885 , - 4408 , - 1487 , - 370 , - 1057 , - 3548 , - 2595 , - 3446 , - 853 , - 64 , - 1079 , - 3898 , - 3273 , - 4452 , - 2187 , - 1726 , - 3069 , - 968 , - 671 , - 2178 , - 241 , - 108 , - 1779 , - 6 , - 37 , - 1872 , - 263 , - 458 , - 2457 , - 1012 , - 1371 , - 3534 , - 2253 , - 2776 , - 5103 , - 3986 , - 4673 , - 1916 , - 963 , - 1814 , - 4469 , - 3680 , - 4695 , - 2266 , - 1641 , - 2820 , - 555 , - 94 , - 1437 , - 4584 , - 4287 , - 546 , - 3857 , - 3724 , - 147 , - 3622 , - 3653 , - 240 , - 3879 , - 4074 , - 825 , - 4628 , - 4987 , - 1902 , - 621 , - 1144 , - 3471 , - 2354 , - 3041 , - 284 , - 4579 , - 182 , - 2837 , - 2048 , - 3063 , - 634 , - 9 , - 1188 , - 4171 , - 3710 , - 5053 , - 2952 , - 2655 , - 4162 , - 2225 , - 2092 , - 3763 , - 1990 , - 2021 , - 3856 , - 2247 , - 2442 , - 4441 , - 2996 , - 3355 , - 270 , - 4237 , - 4760 , - 1839 , - 722 , - 1409 , - 3900 , - 2947 , - 3798 , - 1205 , - 416 , - 1431 , - 4250 , - 3625 , - 4804 , - 2539 , - 2078 , - 3421 , - 1320 , - 1023 , - 2530 , - 593 , - 460 , - 2131 , - 358 , - 389 , - 2224 , - 615 , - 810 , - 2809 , - 1364 , - 1723 , - 3886 , - 2605 , - 3128 , - 207 , - 4338 , - 5025 , - 2268 , - 1315 , - 2166 , - 4821 , - 4032 , - 5047 , - 2618 , - 1993 , - 3172 , - 907 , - 446 , - 1789 , - 4936 , - 4639 , - 898 , - 4209 , - 4076 , - 499 , - 3974 , - 4005 , - 592 , - 4231 , - 4426 , - 1177 , - 4980 , - 91 , - 2254 , - 973 , - 1496 , - 3823 , - 2706 , - 3393 , - 636 , - 4931 , - 534 , - 3189 , - 2400 , - 3415 , - 986 , - 361 , - 1540 , - 4523 , - 4062 , - 157 , - 3304 , - 3007 , - 4514 , - 2577 , - 2444 , - 4115 , - 2342 , - 2373 , - 4208 , - 2599 , - 2794 , - 4793 , - 3348 , - 3707 , - 622 , - 4589 , - 5112 , - 2191 , - 1074 , - 1761 , - 4252 , - 3299 , - 4150 , - 1557 , - 768 , - 1783 , - 4602 , - 3977 , - 5156 , - 2891 , - 2430 , - 3773 , - 1672 , - 1375 , - 2882 , - 945 , - 812 , - 2483 , - 710 , - 741 , - 2576 , - 967 , - 1162 , - 3161 , - 1716 , - 2075 , - 4238 , - 2957 , - 3480 , - 559 , - 4690 , - 129 , - 2620 , - 1667 , - 2518 , - 5173 , - 4384 , - 151 , - 2970 , - 2345 , - 3524 , - 1259 , - 798 , - 2141 , - 40 , - 4991 , - 1250 , - 4561 , - 4428 , - 851 , - 4326 , - 4357 , - 944 , - 4583 , - 4778 , - 1529 , - 84 , - 443 , - 2606 , - 1325 , - 1848 , - 4175 , - 3058 , - 3745 , - 988 , - 35 , - 886 , - 3541 , - 2752 , - 3767 , - 1338 , - 713 , - 1892 , - 4875 , - 4414 , - 509 , - 3656 , - 3359 , - 4866 , - 2929 , - 2796 , - 4467 , - 2694 , - 2725 , - 4560 , - 2951 , - 3146 , - 5145 , - 3700 , - 4059 , - 974 , - 4941 , - 216 , - 2543 , - 1426 , - 2113 , - 4604 , - 3651 , - 4502 , - 1909 , - 1120 , - 2135 , - 4954 , - 4329 , - 260 , - 3243 , - 2782 , - 4125 , - 2024 , - 1727 , - 3234 , - 1297 , - 1164 , - 2835 , - 1062 , - 1093 , - 2928 , - 1319 , - 1514 , - 3513 , - 2068 , - 2427 , - 4590 , - 3309 , - 3832 , - 911 , - 5042 , - 481 , - 2972 , - 2019 , - 2870 , - 277 , - 4736 , - 503 , - 3322 , - 2697 , - 3876 , - 1611 , - 1150 , - 2493 , - 392 , - 95 , - 1602 , - 4913 , - 4780 , - 1203 , - 4678 , - 4709 , - 1296 , - 4935 , - 5130 , - 1881 , - 436 , - 795 , - 2958 , - 1677 , - 2200 , - 4527 , - 3410 , - 4097 , - 1340 , - 387 , - 1238 , - 3893 , - 3104 , - 4119 , - 1690 , - 1065 , - 2244 , - 5227 , - 4766 , - 861 , - 4008 , - 3711 , - 5218 , - 3281 , - 3148 , - 4819 , - 3046 , - 3077 , - 4912 , - 3303 , - 3498 , - 249 , - 4052 , - 4411 , - 1326 , - 45 , - 568 , - 2895 , - 1778 , - 2465 , - 4956 , - 4003 , - 4854 , - 2261 , - 1472 , - 2487 , - 58 , - 4681 , - 612 , - 3595 , - 3134 , - 4477 , - 2376 , - 2079 , - 3586 , - 1649 , - 1516 , - 3187 , - 1414 , - 1445 , - 3280 , - 1671 , - 1866 , - 3865 , - 2420 , - 2779 , - 4942 , - 3661 , - 4184 , - 1263 , - 146 , - 833 , - 3324 , - 2371 , - 3222 , - 629 , - 5088 , - 855 , - 3674 , - 3049 , - 4228 , - 1963 , - 1502 , - 2845 , - 744 , - 447 , - 1954 , - 17 , - 5132 , - 1555 , - 5030 , - 5061 , - 1648 , - 39 , - 234 , - 2233 , - 788 , - 1147 , - 3310 , - 2029 , - 2552 , - 4879 , - 3762 , - 4449 , - 1692 , - 739 , - 1590 , - 4245 , - 3456 , - 4471 , - 2042 , - 1417 , - 2596 , - 331 , - 5118 , - 1213 , - 4360 , - 4063 , - 322 , - 3633 , - 3500 , - 5171 , - 3398 , - 3429 , - 16 , - 3655 , - 3850 , - 601 , - 4404 , - 4763 , - 1678 , - 397 , - 920 , - 3247 , - 2130 , - 2817 , - 60 , - 4355 , - 5206 , - 2613 , - 1824 , - 2839 , - 410 , - 5033 , - 964 , - 3947 , - 3486 , - 4829 , - 2728 , - 2431 , - 3938 , - 2001 , - 1868 , - 3539 , - 1766 , - 1797 , - 3632 , - 2023 , - 2218 , - 4217 , - 2772 , - 3131 , - 46 , - 4013 , - 4536 , - 1615 , - 498 , - 1185 , - 3676 , - 2723 , - 3574 , - 981 , - 192 , - 1207 , - 4026 , - 3401 , - 4580 , - 2315 , - 1854 , - 3197 , - 1096 , - 799 , - 2306 , - 369 , - 236 , - 1907 , - 134 , - 165 , - 2000 , - 391 , - 586 , - 2585 , - 1140 , - 1499 , - 3662 , - 2381 , - 2904 , - 5231 , - 4114 , - 4801 , - 2044 , - 1091 , - 1942 , - 4597 , - 3808 , - 4823 , - 2394 , - 1769 , - 2948 , - 683 , - 222 , - 1565 , - 4712 , - 4415 , - 674 , - 3985 , - 3852 , - 275 , - 3750 , - 3781 , - 368 , - 4007 , - 4202 , - 953 , - 4756 , - 5115 , - 2030 , - 749 , - 1272 , - 3599 , - 2482 , - 3169 , - 412 , - 4707 , - 310 , - 2965 , - 2176 , - 3191 , - 762 , - 137 , - 1316 , - 4299 , - 3838 , - 5181 , - 3080 , - 2783 , - 4290 , - 2353 , - 2220 , - 3891 , - 2118 , - 2149 , - 3984 , - 2375 , - 2570 , - 4569 , - 3124 , - 3483 , - 398 , - 4365 , - 4888 , - 1967 , - 850 , - 1537 , - 4028 , - 3075 , - 3926 , - 1333 , - 544 , - 1559 , - 4378 , - 3753 , - 4932 , - 2667 , - 2206 , - 3549 , - 1448 , - 1151 , - 2658 , - 721 , - 588 , - 2259 , - 486 , - 517 , - 2352 , - 743 , - 938 , - 2937 , - 1492 , - 1851 , - 4014 , - 2733 , - 3256 , - 335 , - 4466 , - 5153 , - 2396 , - 1443 , - 2294 , - 4949 , - 4160 , - 5175 , - 2746 , - 2121 , - 3300 , - 1035 , - 574 , - 1917 , - 5064 , - 4767 , - 1026 , - 4337 , - 4204 , - 627 , - 4102 , - 4133 , - 720 , - 4359 , - 4554 , - 1305 , - 5108 , - 219 , - 2382 , - 1101 , - 1624 , - 3951 , - 2834 , - 3521 , - 764 , - 5059 , - 662 , - 3317 , - 2528 , - 3543 , - 1114 , - 489 , - 1668 , - 4651 , - 4190 , - 285 , - 3432 , - 3135 , - 4642 , - 2705 , - 2572 , - 4243 , - 2470 , - 2501 , - 4336 , - 2727 , - 2922 , - 4921 , - 3476 , - 3835 , - 750 , - 4717 , - 5240 , - 2319 , - 1202 , - 1889 , - 4380 , - 3427 , - 4278 , - 1685 , - 896 , - 1911 , - 4730 , - 4105 , - 36 , - 3019 , - 2558 , - 3901 , - 1800 , - 1503 , - 3010 , - 1073 , - 940 , - 2611 , - 838 , - 869 , - 2704 , - 1095 , - 1290 , - 3289 , - 1844 , - 2203 , - 4366 , - 3085 , - 3608 , - 687 , - 4818 , - 257 , - 2748 , - 1795 , - 2646 , - 53 , - 4512 , - 279 , - 3098 , - 2473 , - 3652 , - 1387 , - 926 , - 2269 , - 168 , - 5119 , - 1378 , - 4689 , - 4556 , - 979 , - 4454 , - 4485 , - 1072 , - 4711 , - 4906 , - 1657 , - 212 , - 571 , - 2734 , - 1453 , - 1976 , - 4303 , - 3186 , - 3873 , - 1116 , - 163 , - 1014 , - 3669 , - 2880 , - 3895 , - 1466 , - 841 , - 2020 , - 5003 , - 4542 , - 637 , - 3784 , - 3487 , - 4994 , - 3057 , - 2924 , - 4595 , - 2822 , - 2853 , - 4688 , - 3079 , - 3274 , - 25 , - 3828 , - 4187 , - 1102 , - 5069 , - 344 , - 2671 , - 1554 , - 2241 , - 4732 , - 3779 , - 4630 , - 2037 , - 1248 , - 2263 , - 5082 , - 4457 , - 388 , - 3371 , - 2910 , - 4253 , - 2152 , - 1855 , - 3362 , - 1425 , - 1292 , - 2963 , - 1190 , - 1221 , - 3056 , - 1447 , - 1642 , - 3641 , - 2196 , - 2555 , - 4718 , - 3437 , - 3960 , - 1039 , - 5170 , - 609 , - 3100 , - 2147 , - 2998 , - 405 , - 4864 , - 631 , - 3450 , - 2825 , - 4004 , - 1739 , - 1278 , - 2621 , - 520 , - 223 , - 1730 , - 5041 , - 4908 , - 1331 , - 4806 , - 4837 , - 1424 , - 5063 , - 10 , - 2009 , - 564 , - 923 , - 3086 , - 1805 , - 2328 , - 4655 , - 3538 , - 4225 , - 1468 , - 515 , - 1366 , - 4021 , - 3232 , - 4247 , - 1818 , - 1193 , - 2372 , - 107 , - 4894 , - 989 , - 4136 , - 3839 , - 98 , - 3409 , - 3276 , - 4947 , - 3174 , - 3205 , - 5040 , - 3431 , - 3626 , - 377 , - 4180 , - 4539 , - 1454 , - 173 , - 696 , - 3023 , - 1906 , - 2593 , - 5084 , - 4131 , - 4982 , - 2389 , - 1600 , - 2615 , - 186 , - 4809 , - 740 , - 3723 , - 3262 , - 4605 , - 2504 , - 2207 , - 3714 , - 1777 , - 1644 , - 3315 , - 1542 , - 1573 , - 3408 , - 1799 , - 1994 , - 3993 , - 2548 , - 2907 , - 5070 , - 3789 , - 4312 , - 1391 , - 274 , - 961 , - 3452 , - 2499 , - 3350 , - 757 , - 5216 , - 983 , - 3802 , - 3177 , - 4356 , - 2091 , - 1630 , - 2973 , - 872 , - 575 , - 2082 , - 145 , - 12 , - 1683 , - 5158 , - 5189 , - 1776 , - 167 , - 362 , - 2361 , - 916 , - 1275 , - 3438 , - 2157 , - 2680 , - 5007 , - 3890 , - 4577 , - 1820 , - 867 , - 1718 , - 4373 , - 3584 , - 4599 , - 2170 , - 1545 , - 2724 , - 459 , - 5246 , - 1341 , - 4488 , - 4191 , - 450 , - 3761 , - 3628 , - 51 , - 3526 , - 3557 , - 144 , - 3783 , - 3978 , - 729 , - 4532 , - 4891 , - 1806 , - 525 , - 1048 , - 3375 , - 2258 , - 2945 , - 188 , - 4483 , - 86 , - 2741 , - 1952 , - 2967 , - 538 , - 5161 , - 1092 , - 4075 , - 3614 , - 4957 , - 2856 , - 2559 , - 4066 , - 2129 , - 1996 , - 3667 , - 1894 , - 1925 , - 3760 , - 2151 , - 2346 , - 4345 , - 2900 , - 3259 , - 174 , - 4141 , - 4664 , - 1743 , - 626 , - 1313 , - 3804 , - 2851 , - 3702 , - 1109 , - 320 , - 1335 , - 4154 , - 3529 , - 4708 , - 2443 , - 1982 , - 3325 , - 1224 , - 927 , - 2434 , - 497 , - 364 , - 2035 , - 262 , - 293 , - 2128 , - 519 , - 714 , - 2713 , - 1268 , - 1627 , - 3790 , - 2509 , - 3032 , - 111 , - 4242 , - 4929 , - 2172 , - 1219 , - 2070 , - 4725 , - 3936 , - 4951 , - 2522 , - 1897 , - 3076 , - 811 , - 350 , - 1693 , - 4840 , - 4543 , - 802 , - 4113 , - 3980 , - 403 , - 3878 , - 3909 , - 496 , - 4135 , - 4330 , - 1081 , - 4884 , - 5243 , - 2158 , - 877 , - 1400 , - 3727 , - 2610 , - 3297 , - 540 , - 4835 , - 438 , - 3093 , - 2304 , - 3319 , - 890 , - 265 , - 1444 , - 4427 , - 3966 , - 61 , - 3208 , - 2911 , - 4418 , - 2481 , - 2348 , - 4019 , - 2246 , - 2277 , - 4112 , - 2503 , - 2698 , - 4697 , - 3252 , - 3611 , - 526 , - 4493 , - 5016 , - 2095 , - 978 , - 1665 , - 4156 , - 3203 , - 4054 , - 1461 , - 672 , - 1687 , - 4506 , - 3881 , - 5060 , - 2795 , - 2334 , - 3677 , - 1576 , - 1279 , - 2786 , - 849 , - 716 , - 2387 , - 614 , - 645 , - 2480 , - 871 , - 1066 , - 3065 , - 1620 , - 1979 , - 4142 , - 2861 , - 3384 , - 463 , - 4594 , - 33 , - 2524 , - 1571 , - 2422 , - 5077 , - 4288 , - 55 , - 2874 , - 2249 , - 3428 , - 1163 , - 702 , - 2045 , - 5192 , - 4895 , - 1154 , - 4465 , - 4332 , - 755 , - 4230 , - 4261 , - 848 , - 4487 , - 4682 , - 1433 , - 5236 , - 347 , - 2510 , - 1229 , - 1752 , - 4079 , - 2962 , - 3649 , - 892 , - 5187 , - 790 , - 3445 , - 2656 , - 3671 , - 1242 , - 617 , - 1796 , - 4779 , - 4318 , - 413 , - 3560 , - 3263 , - 4770 , - 2833 , - 2700 , - 4371 , - 2598 , - 2629 , - 4464 , - 2855 , - 3050 , - 5049 , - 3604 , - 3963 , - 878 , - 4845 , - 120 , - 2447 , - 1330 , - 2017 , - 4508 , - 3555 , - 4406 , - 1813 , - 1024 , - 2039 , - 4858 , - 4233 , - 164 , - 3147 , - 2686 , - 4029 , - 1928 , - 1631 , - 3138 , - 1201 , - 1068 , - 2739 , - 966 , - 997 , - 2832 , - 1223 , - 1418 , - 3417 , - 1972 , - 2331 , - 4494 , - 3213 , - 3736 , - 815 , - 4946 , - 385 , - 2876 , - 1923 , - 2774 , - 181 , - 4640 , - 407 , - 3226 , - 2601 , - 3780 , - 1515 , - 1054 , - 2397 , - 296 , - 5247 , - 1506 , - 4817 , - 4684 , - 1107 , - 4582 , - 4613 , - 1200 , - 4839 , - 5034 , - 1785 , - 340 , - 699 , - 2862 , - 1581 , - 2104 , - 4431 , - 3314 , - 4001 , - 1244 , - 291 , - 1142 , - 3797 , - 3008 , - 4023 , - 1594 , - 969 , - 2148 , - 5131 , - 4670 , - 765 , - 3912 , - 3615 , - 5122 , - 3185 , - 3052 , - 4723 , - 2950 , - 2981 , - 4816 , - 3207 , - 3402 , - 153 , - 3956 , - 4315 , - 1230 , - 5197 , - 472 , - 2799 , - 1682 , - 2369 , - 4860 , - 3907 , - 4758 , - 2165 , - 1376 , - 2391 , - 5210 , - 4585 , - 516 , - 3499 , - 3038 , - 4381 , - 2280 , - 1983 , - 3490 , - 1553 , - 1420 , - 3091 , - 1318 , - 1349 , - 3184 , - 1575 , - 1770 , - 3769 , - 2324 , - 2683 , - 4846 , - 3565 , - 4088 , - 1167 , - 50 , - 737 , - 3228 , - 2275 , - 3126 , - 533 , - 4992 , - 759 , - 3578 , - 2953 , - 4132 , - 1867 , - 1406 , - 2749 , - 648 , - 351 , - 1858 , - 5169 , - 5036 , - 1459 , - 4934 , - 4965 , - 1552 , - 5191 , - 138 , - 2137 , - 692 , - 1051 , - 3214 , - 1933 , - 2456 , - 4783 , - 3666 , - 4353 , - 1596 , - 643 , - 1494 , - 4149 , - 3360 , - 4375 , - 1946 , - 1321 , - 2500 , - 235 , - 5022 , - 1117 , - 4264 , - 3967 , - 226 , - 3537 , - 3404 , - 5075 , - 3302 , - 3333 , - 5168 , - 3559 , - 3754 , - 505 , - 4308 , - 4667 , - 1582 , - 301 , - 824 , - 3151 , - 2034 , - 2721 , - 5212 , - 4259 , - 5110 , - 2517 , - 1728 , - 2743 , - 314 , - 4937 , - 868 , - 3851 , - 3390 , - 4733 , - 2632 , - 2335 , - 3842 , - 1905 , - 1772 , - 3443 , - 1670 , - 1701 , - 3536 , - 1927 , - 2122 , - 4121 , - 2676 , - 3035 , - 5198 , - 3917 , - 4440 , - 1519 , - 402 , - 1089 , - 3580 , - 2627 , - 3478 , - 885 , - 96 , - 1111 , - 3930 , - 3305 , - 4484 , - 2219 , - 1758 , - 3101 , - 1000 , - 703 , - 2210 , - 273 , - 140 , - 1811 , - 38 , - 69 , - 1904 , - 295 , - 490 , - 2489 , - 1044 , - 1403 , - 3566 , - 2285 , - 2808 , - 5135 , - 4018 , - 4705 , - 1948 , - 995 , - 1846 , - 4501 , - 3712 , - 4727 , - 2298 , - 1673 , - 2852 , - 587 , - 126 , - 1469 , - 4616 , - 4319 , - 578 , - 3889 , - 3756 , - 179 , - 3654 , - 3685 , - 272 , - 3911 , - 4106 , - 857 , - 4660 , - 5019 , - 1934 , - 653 , - 1176 , - 3503 , - 2386 , - 3073 , - 316 , - 4611 , - 214 , - 2869 , - 2080 , - 3095 , - 666 , - 41 , - 1220 , - 4203 , - 3742 , - 5085 , - 2984 , - 2687 , - 4194 , - 2257 , - 2124 , - 3795 , - 2022 , - 2053 , - 3888 , - 2279 , - 2474 , - 4473 , - 3028 , - 3387 , - 302 , - 4269 , - 4792 , - 1871 , - 754 , - 1441 , - 3932 , - 2979 , - 3830 , - 1237 , - 448 , - 1463 , - 4282 , - 3657 , - 4836 , - 2571 , - 2110 , - 3453 , - 1352 , - 1055 , - 2562 , - 625 , - 492 , - 2163 , - 390 , - 421 , - 2256 , - 647 , - 842 , - 2841 , - 1396 , - 1755 , - 3918 , - 2637 , - 3160 , - 239 , - 4370 , - 5057 , - 2300 , - 1347 , - 2198 , - 4853 , - 4064 , - 5079 , - 2650 , - 2025 , - 3204 , - 939 , - 478 , - 1821 , - 4968 , - 4671 , - 930 , - 4241 , - 4108 , - 531 , - 4006 , - 4037 , - 624 , - 4263 , - 4458 , - 1209 , - 5012 , - 123 , - 2286 , - 1005 , - 1528 , - 3855 , - 2738 , - 3425 , - 668 , - 4963 , - 566 , - 3221 , - 2432 , - 3447 , - 1018 , - 393 , - 1572 , - 4555 , - 4094 , - 189 , - 3336 , - 3039 , - 4546 , - 2609 , - 2476 , - 4147 , - 2374 , - 2405 , - 4240 , - 2631 , - 2826 , - 4825 , - 3380 , - 3739 , - 654 , - 4621 , - 5144 , - 2223 , - 1106 , - 1793 , - 4284 , - 3331 , - 4182 , - 1589 , - 800 , - 1815 , - 4634 , - 4009 , - 5188 , - 2923 , - 2462 , - 3805 , - 1704 , - 1407 , - 2914 , - 977 , - 844 , - 2515 , - 742 , - 773 , - 2608 , - 999 , - 1194 , - 3193 , - 1748 , - 2107 , - 4270 , - 2989 , - 3512 , - 591 , - 4722 , - 161 , - 2652 , - 1699 , - 2550 , - 5205 , - 4416 , - 183 , - 3002 , - 2377 , - 3556 , - 1291 , - 830 , - 2173 , - 72 , - 5023 , - 1282 , - 4593 , - 4460 , - 883 , - 4358 , - 4389 , - 976 , - 4615 , - 4810 , - 1561 , - 116 , - 475 , - 2638 , - 1357 , - 1880 , - 4207 , - 3090 , - 3777 , - 1020 , - 67 , - 918 , - 3573 , - 2784 , - 3799 , - 1370 , - 745 , - 1924 , - 4907 , - 4446 , - 541 , - 3688 , - 3391 , - 4898 , - 2961 , - 2828 , - 4499 , - 2726 , - 2757 , - 4592 , - 2983 , - 3178 , - 5177 , - 3732 , - 4091 , - 1006 , - 4973 , - 248 , - 2575 , - 1458 , - 2145 , - 4636 , - 3683 , - 4534 , - 1941 , - 1152 , - 2167 , - 4986 , - 4361 , - 292 , - 3275 , - 2814 , - 4157 , - 2056 , - 1759 , - 3266 , - 1329 , - 1196 , - 2867 , - 1094 , - 1125 , - 2960 , - 1351 , - 1546 , - 3545 , - 2100 , - 2459 , - 4622 , - 3341 , - 3864 , - 943 , - 5074 , - 513 , - 3004 , - 2051 , - 2902 , - 309 , - 4768 , - 535 , - 3354 , - 2729 , - 3908 , - 1643 , - 1182 , - 2525 , - 424 , - 127 , - 1634 , - 4945 , - 4812 , - 1235 , - 4710 , - 4741 , - 1328 , - 4967 , - 5162 , - 1913 , - 468 , - 827 , - 2990 , - 1709 , - 2232 , - 4559 , - 3442 , - 4129 , - 1372 , - 419 , - 1270 , - 3925 , - 3136 , - 4151 , - 1722 , - 1097 , - 2276 , - 11 , - 4798 , - 893 , - 4040 , - 3743 , - 2 , - 3313 , - 3180 , - 4851 , - 3078 , - 3109 , - 4944 , - 3335 , - 3530 , - 281 , - 4084 , - 4443 , - 1358 , - 77 , - 600 , - 2927 , - 1810 , - 2497 , - 4988 , - 4035 , - 4886 , - 2293 , - 1504 , - 2519 , - 90 , - 4713 , - 644 , - 3627 , - 3166 , - 4509 , - 2408 , - 2111 , - 3618 , - 1681 , - 1548 , - 3219 , - 1446 , - 1477 , - 3312 , - 1703 , - 1898 , - 3897 , - 2452 , - 2811 , - 4974 , - 3693 , - 4216 , - 1295 , - 178 , - 865 , - 3356 , - 2403 , - 3254 , - 661 , - 5120 , - 887 , - 3706 , - 3081 , - 4260 , - 1995 , - 1534 , - 2877 , - 776 , - 479 , - 1986 , - 49 , - 5164 , - 1587 , - 5062 , - 5093 , - 1680 , - 71 , - 266 , - 2265 , - 820 , - 1179 , - 3342 , - 2061 , - 2584 , - 4911 , - 3794 , - 4481 , - 1724 , - 771 , - 1622 , - 4277 , - 3488 , - 4503 , - 2074 , - 1449 , - 2628 , - 363 , - 5150 , - 1245 , - 4392 , - 4095 , - 354 , - 3665 , - 3532 , - 5203 , - 3430 , - 3461 , - 48 , - 3687 , - 3882 , - 633 , - 4436 , - 4795 , - 1710 , - 429 , - 952 , - 3279 , - 2162 , - 2849 , - 92 , - 4387 , - 5238 , - 2645 , - 1856 , - 2871 , - 442 , - 5065 , - 996 , - 3979 , - 3518 , - 4861 , - 2760 , - 2463 , - 3970 , - 2033 , - 1900 , - 3571 , - 1798 , - 1829 , - 3664 , - 2055 , - 2250 , - 4249 , - 2804 , - 3163 , - 78 , - 4045 , - 4568 , - 1647 , - 530 , - 1217 , - 3708 , - 2755 , - 3606 , - 1013 , - 224 , - 1239 , - 4058 , - 3433 , - 4612 , - 2347 , - 1886 , - 3229 , - 1128 , - 831 , - 2338 , - 401 , - 268 , - 1939 , - 166 , - 197 , - 2032 , - 423 , - 618 , - 2617 , - 1172 , - 1531 , - 3694 , - 2413 , - 2936 , - 15 , - 4146 , - 4833 , - 2076 , - 1123 , - 1974 , - 4629 , - 3840 , - 4855 , - 2426 , - 1801 , - 2980 , - 715 , - 254 , - 1597 , - 4744 , - 4447 , - 706 , - 4017 , - 3884 , - 307 , - 3782 , - 3813 , - 400 , - 4039 , - 4234 , - 985 , - 4788 , - 5147 , - 2062 , - 781 , - 1304 , - 3631 , - 2514 , - 3201 , - 444 , - 4739 , - 342 , - 2997 , - 2208 , - 3223 , - 794 , - 169 , - 1348 , - 4331 , - 3870 , - 5213 , - 3112 , - 2815 , - 4322 , - 2385 , - 2252 , - 3923 , - 2150 , - 2181 , - 4016 , - 2407 , - 2602 , - 4601 , - 3156 , - 3515 , - 430 , - 4397 , - 4920 , - 1999 , - 882 , - 1569 , - 4060 , - 3107 , - 3958 , - 1365 , - 576 , - 1591 , - 4410 , - 3785 , - 4964 , - 2699 , - 2238 , - 3581 , - 1480 , - 1183 , - 2690 , - 753 , - 620 , - 2291 , - 518 , - 549 , - 2384 , - 775 , - 970 , - 2969 , - 1524 , - 1883 , - 4046 , - 2765 , - 3288 , - 367 , - 4498 , - 5185 , - 2428 , - 1475 , - 2326 , - 4981 , - 4192 , - 5207 , - 2778 , - 2153 , - 3332 , - 1067 , - 606 , - 1949 , - 5096 , - 4799 , - 1058 , - 4369 , - 4236 , - 659 , - 4134 , - 4165 , - 752 , - 4391 , - 4586 , - 1337 , - 5140 , - 251 , - 2414 , - 1133 , - 1656 , - 3983 , - 2866 , - 3553 , - 796 , - 5091 , - 694 , - 3349 , - 2560 , - 3575 , - 1146 , - 521 , - 1700 , - 4683 , - 4222 , - 317 , - 3464 , - 3167 , - 4674 , - 2737 , - 2604 , - 4275 , - 2502 , - 2533 , - 4368 , - 2759 , - 2954 , - 4953 , - 3508 , - 3867 , - 782 , - 4749 , - 24 , - 2351 , - 1234 , - 1921 , - 4412 , - 3459 , - 4310 , - 1717 , - 928 , - 1943 , - 4762 , - 4137 , - 68 , - 3051 , - 2590 , - 3933 , - 1832 , - 1535 , - 3042 , - 1105 , - 972 , - 2643 , - 870 , - 901 , - 2736 , - 1127 , - 1322 , - 3321 , - 1876 , - 2235 , - 4398 , - 3117 , - 3640 , - 719 , - 4850 , - 289 , - 2780 , - 1827 , - 2678 , - 85 , - 4544 , - 311 , - 3130 , - 2505 , - 3684 , - 1419 , - 958 , - 2301 , - 200 , - 5151 , - 1410 , - 4721 , - 4588 , - 1011 , - 4486 , - 4517 , - 1104 , - 4743 , - 4938 , - 1689 , - 244 , - 603 , - 2766 , - 1485 , - 2008 , - 4335 , - 3218 , - 3905 , - 1148 , - 195 , - 1046 , - 3701 , - 2912 , - 3927 , - 1498 , - 873 , - 2052 , - 5035 , - 4574 , - 669 , - 3816 , - 3519 , - 5026 , - 3089 , - 2956 , - 4627 , - 2854 , - 2885 , - 4720 , - 3111 , - 3306 , - 57 , - 3860 , - 4219 , - 1134 , - 5101 , - 376 , - 2703 , - 1586 , - 2273 , - 4764 , - 3811 , - 4662 , - 2069 , - 1280 , - 2295 , - 5114 , - 4489 , - 420 , - 3403 , - 2942 , - 4285 , - 2184 , - 1887 , - 3394 , - 1457 , - 1324 , - 2995 , - 1222 , - 1253 , - 3088 , - 1479 , - 1674 , - 3673 , - 2228 , - 2587 , - 4750 , - 3469 , - 3992 , - 1071 , - 5202 , - 641 , - 3132 , - 2179 , - 3030 , - 437 , - 4896 , - 663 , - 3482 , - 2857 , - 4036 , - 1771 , - 1310 , - 2653 , - 552 , - 255 , - 1762 , - 5073 , - 4940 , - 1363 , - 4838 , - 4869 , - 1456 , - 5095 , - 42 , - 2041 , - 596 , - 955 , - 3118 , - 1837 , - 2360 , - 4687 , - 3570 , - 4257 , - 1500 , - 547 , - 1398 , - 4053 , - 3264 , - 4279 , - 1850 , - 1225 , - 2404 , - 139 , - 4926 , - 1021 , - 4168 , - 3871 , - 130 , - 3441 , - 3308 , - 4979 , - 3206 , - 3237 , - 5072 , - 3463 , - 3658 , - 409 , - 4212 , - 4571 , - 1486 , - 205 , - 728 , - 3055 , - 1938 , - 2625 , - 5116 , - 4163 , - 5014 , - 2421 , - 1632 , - 2647 , - 218 , - 4841 , - 772 , - 3755 , - 3294 , - 4637 , - 2536 , - 2239 , - 3746 , - 1809 , - 1676 , - 3347 , - 1574 , - 1605 , - 3440 , - 1831 , - 2026 , - 4025 , - 2580 , - 2939 , - 5102 , - 3821 , - 4344 , - 1423 , - 306 , - 993 , - 3484 , - 2531 , - 3382 , - 789 , - 0 , - 207 , - 746 , - 1617 , - 2820 , - 4355 , - 910 , - 3109 , - 328 , - 3191 , - 1074 , - 4601 , - 3148 , - 2027 , - 1238 , - 781 , - 656 , - 863 , - 1402 , - 2273 , - 3476 , - 5011 , - 1566 , - 3765 , - 984 , - 3847 , - 1730 , - 5257 , - 3804 , - 2683 , - 1894 , - 1437 , - 1312 , - 1519 , - 2058 , - 2929 , - 4132 , - 355 , - 2222 , - 4421 , - 1640 , - 4503 , - 2386 , - 601 , - 4460 , - 3339 , - 2550 , - 2093 , - 1968 , - 2175 , - 2714 , - 3585 , - 4788 , - 1011 , - 2878 , - 5077 , - 2296 , - 5159 , - 3042 , - 1257 , - 5116 , - 3995 , - 3206 , - 2749 , - 2624 , - 2831 , - 3370 , - 4241 , - 132 , - 1667 , - 3534 , - 421 , - 2952 , - 503 , - 3698 , - 1913 , - 460 , - 4651 , - 3862 , - 3405 , - 3280 , - 3487 , - 4026 , - 4897 , - 788 , - 2323 , - 4190 , - 1077 , - 3608 , - 1159 , - 4354 , - 2569 , - 1116 , - 5307 , - 4518 , - 4061 , - 3936 , - 4143 , - 4682 , - 241 , - 1444 , - 2979 , - 4846 , - 1733 , - 4264 , - 1815 , - 5010 , - 3225 , - 1772 , - 651 , - 5174 , - 4717 , - 4592 , - 4799 , - 26 , - 897 , - 2100 , - 3635 , - 190 , - 2389 , - 4920 , - 2471 , - 354 , - 3881 , - 2428 , - 1307 , - 518 , - 61 , - 5248 , - 143 , - 682 , - 1553 , - 2756 , - 4291 , - 846 , - 3045 , - 264 , - 3127 , - 1010 , - 4537 , - 3084 , - 1963 , - 1174 , - 717 , - 592 , - 799 , - 1338 , - 2209 , - 3412 , - 4947 , - 1502 , - 3701 , - 920 , - 3783 , - 1666 , - 5193 , - 3740 , - 2619 , - 1830 , - 1373 , - 1248 , - 1455 , - 1994 , - 2865 , - 4068 , - 291 , - 2158 , - 4357 , - 1576 , - 4439 , - 2322 , - 537 , - 4396 , - 3275 , - 2486 , - 2029 , - 1904 , - 2111 , - 2650 , - 3521 , - 4724 , - 947 , - 2814 , - 5013 , - 2232 , - 5095 , - 2978 , - 1193 , - 5052 , - 3931 , - 3142 , - 2685 , - 2560 , - 2767 , - 3306 , - 4177 , - 68 , - 1603 , - 3470 , - 357 , - 2888 , - 439 , - 3634 , - 1849 , - 396 , - 4587 , - 3798 , - 3341 , - 3216 , - 3423 , - 3962 , - 4833 , - 724 , - 2259 , - 4126 , - 1013 , - 3544 , - 1095 , - 4290 , - 2505 , - 1052 , - 5243 , - 4454 , - 3997 , - 3872 , - 4079 , - 4618 , - 177 , - 1380 , - 2915 , - 4782 , - 1669 , - 4200 , - 1751 , - 4946 , - 3161 , - 1708 , - 587 , - 5110 , - 4653 , - 4528 , - 4735 , - 5274 , - 833 , - 2036 , - 3571 , - 126 , - 2325 , - 4856 , - 2407 , - 290 , - 3817 , - 2364 , - 1243 , - 454 , - 5309 , - 5184 , - 79 , - 618 , - 1489 , - 2692 , - 4227 , - 782 , - 2981 , - 200 , - 3063 , - 946 , - 4473 , - 3020 , - 1899 , - 1110 , - 653 , - 528 , - 735 , - 1274 , - 2145 , - 3348 , - 4883 , - 1438 , - 3637 , - 856 , - 3719 , - 1602 , - 5129 , - 3676 , - 2555 , - 1766 , - 1309 , - 1184 , - 1391 , - 1930 , - 2801 , - 4004 , - 227 , - 2094 , - 4293 , - 1512 , - 4375 , - 2258 , - 473 , - 4332 , - 3211 , - 2422 , - 1965 , - 1840 , - 2047 , - 2586 , - 3457 , - 4660 , - 883 , - 2750 , - 4949 , - 2168 , - 5031 , - 2914 , - 1129 , - 4988 , - 3867 , - 3078 , - 2621 , - 2496 , - 2703 , - 3242 , - 4113 , - 4 , - 1539 , - 3406 , - 293 , - 2824 , - 375 , - 3570 , - 1785 , - 332 , - 4523 , - 3734 , - 3277 , - 3152 , - 3359 , - 3898 , - 4769 , - 660 , - 2195 , - 4062 , - 949 , - 3480 , - 1031 , - 4226 , - 2441 , - 988 , - 5179 , - 4390 , - 3933 , - 3808 , - 4015 , - 4554 , - 113 , - 1316 , - 2851 , - 4718 , - 1605 , - 4136 , - 1687 , - 4882 , - 3097 , - 1644 , - 523 , - 5046 , - 4589 , - 4464 , - 4671 , - 5210 , - 769 , - 1972 , - 3507 , - 62 , - 2261 , - 4792 , - 2343 , - 226 , - 3753 , - 2300 , - 1179 , - 390 , - 5245 , - 5120 , - 15 , - 554 , - 1425 , - 2628 , - 4163 , - 718 , - 2917 , - 136 , - 2999 , - 882 , - 4409 , - 2956 , - 1835 , - 1046 , - 589 , - 464 , - 671 , - 1210 , - 2081 , - 3284 , - 4819 , - 1374 , - 3573 , - 792 , - 3655 , - 1538 , - 5065 , - 3612 , - 2491 , - 1702 , - 1245 , - 1120 , - 1327 , - 1866 , - 2737 , - 3940 , - 163 , - 2030 , - 4229 , - 1448 , - 4311 , - 2194 , - 409 , - 4268 , - 3147 , - 2358 , - 1901 , - 1776 , - 1983 , - 2522 , - 3393 , - 4596 , - 819 , - 2686 , - 4885 , - 2104 , - 4967 , - 2850 , - 1065 , - 4924 , - 3803 , - 3014 , - 2557 , - 2432 , - 2639 , - 3178 , - 4049 , - 5252 , - 1475 , - 3342 , - 229 , - 2760 , - 311 , - 3506 , - 1721 , - 268 , - 4459 , - 3670 , - 3213 , - 3088 , - 3295 , - 3834 , - 4705 , - 596 , - 2131 , - 3998 , - 885 , - 3416 , - 967 , - 4162 , - 2377 , - 924 , - 5115 , - 4326 , - 3869 , - 3744 , - 3951 , - 4490 , - 49 , - 1252 , - 2787 , - 4654 , - 1541 , - 4072 , - 1623 , - 4818 , - 3033 , - 1580 , - 459 , - 4982 , - 4525 , - 4400 , - 4607 , - 5146 , - 705 , - 1908 , - 3443 , - 5310 , - 2197 , - 4728 , - 2279 , - 162 , - 3689 , - 2236 , - 1115 , - 326 , - 5181 , - 5056 , - 5263 , - 490 , - 1361 , - 2564 , - 4099 , - 654 , - 2853 , - 72 , - 2935 , - 818 , - 4345 , - 2892 , - 1771 , - 982 , - 525 , - 400 , - 607 , - 1146 , - 2017 , - 3220 , - 4755 , - 1310 , - 3509 , - 728 , - 3591 , - 1474 , - 5001 , - 3548 , - 2427 , - 1638 , - 1181 , - 1056 , - 1263 , - 1802 , - 2673 , - 3876 , - 99 , - 1966 , - 4165 , - 1384 , - 4247 , - 2130 , - 345 , - 4204 , - 3083 , - 2294 , - 1837 , - 1712 , - 1919 , - 2458 , - 3329 , - 4532 , - 755 , - 2622 , - 4821 , - 2040 , - 4903 , - 2786 , - 1001 , - 4860 , - 3739 , - 2950 , - 2493 , - 2368 , - 2575 , - 3114 , - 3985 , - 5188 , - 1411 , - 3278 , - 165 , - 2696 , - 247 , - 3442 , - 1657 , - 204 , - 4395 , - 3606 , - 3149 , - 3024 , - 3231 , - 3770 , - 4641 , - 532 , - 2067 , - 3934 , - 821 , - 3352 , - 903 , - 4098 , - 2313 , - 860 , - 5051 , - 4262 , - 3805 , - 3680 , - 3887 , - 4426 , - 5297 , - 1188 , - 2723 , - 4590 , - 1477 , - 4008 , - 1559 , - 4754 , - 2969 , - 1516 , - 395 , - 4918 , - 4461 , - 4336 , - 4543 , - 5082 , - 641 , - 1844 , - 3379 , - 5246 , - 2133 , - 4664 , - 2215 , - 98 , - 3625 , - 2172 , - 1051 , - 262 , - 5117 , - 4992 , - 5199 , - 426 , - 1297 , - 2500 , - 4035 , - 590 , - 2789 , - 8 , - 2871 , - 754 , - 4281 , - 2828 , - 1707 , - 918 , - 461 , - 336 , - 543 , - 1082 , - 1953 , - 3156 , - 4691 , - 1246 , - 3445 , - 664 , - 3527 , - 1410 , - 4937 , - 3484 , - 2363 , - 1574 , - 1117 , - 992 , - 1199 , - 1738 , - 2609 , - 3812 , - 35 , - 1902 , - 4101 , - 1320 , - 4183 , - 2066 , - 281 , - 4140 , - 3019 , - 2230 , - 1773 , - 1648 , - 1855 , - 2394 , - 3265 , - 4468 , - 691 , - 2558 , - 4757 , - 1976 , - 4839 , - 2722 , - 937 , - 4796 , - 3675 , - 2886 , - 2429 , - 2304 , - 2511 , - 3050 , - 3921 , - 5124 , - 1347 , - 3214 , - 101 , - 2632 , - 183 , - 3378 , - 1593 , - 140 , - 4331 , - 3542 , - 3085 , - 2960 , - 3167 , - 3706 , - 4577 , - 468 , - 2003 , - 3870 , - 757 , - 3288 , - 839 , - 4034 , - 2249 , - 796 , - 4987 , - 4198 , - 3741 , - 3616 , - 3823 , - 4362 , - 5233 , - 1124 , - 2659 , - 4526 , - 1413 , - 3944 , - 1495 , - 4690 , - 2905 , - 1452 , - 331 , - 4854 , - 4397 , - 4272 , - 4479 , - 5018 , - 577 , - 1780 , - 3315 , - 5182 , - 2069 , - 4600 , - 2151 , - 34 , - 3561 , - 2108 , - 987 , - 198 , - 5053 , - 4928 , - 5135 , - 362 , - 1233 , - 2436 , - 3971 , - 526 , - 2725 , - 5256 , - 2807 , - 690 , - 4217 , - 2764 , - 1643 , - 854 , - 397 , - 272 , - 479 , - 1018 , - 1889 , - 3092 , - 4627 , - 1182 , - 3381 , - 600 , - 3463 , - 1346 , - 4873 , - 3420 , - 2299 , - 1510 , - 1053 , - 928 , - 1135 , - 1674 , - 2545 , - 3748 , - 5283 , - 1838 , - 4037 , - 1256 , - 4119 , - 2002 , - 217 , - 4076 , - 2955 , - 2166 , - 1709 , - 1584 , - 1791 , - 2330 , - 3201 , - 4404 , - 627 , - 2494 , - 4693 , - 1912 , - 4775 , - 2658 , - 873 , - 4732 , - 3611 , - 2822 , - 2365 , - 2240 , - 2447 , - 2986 , - 3857 , - 5060 , - 1283 , - 3150 , - 37 , - 2568 , - 119 , - 3314 , - 1529 , - 76 , - 4267 , - 3478 , - 3021 , - 2896 , - 3103 , - 3642 , - 4513 , - 404 , - 1939 , - 3806 , - 693 , - 3224 , - 775 , - 3970 , - 2185 , - 732 , - 4923 , - 4134 , - 3677 , - 3552 , - 3759 , - 4298 , - 5169 , - 1060 , - 2595 , - 4462 , - 1349 , - 3880 , - 1431 , - 4626 , - 2841 , - 1388 , - 267 , - 4790 , - 4333 , - 4208 , - 4415 , - 4954 , - 513 , - 1716 , - 3251 , - 5118 , - 2005 , - 4536 , - 2087 , - 5282 , - 3497 , - 2044 , - 923 , - 134 , - 4989 , - 4864 , - 5071 , - 298 , - 1169 , - 2372 , - 3907 , - 462 , - 2661 , - 5192 , - 2743 , - 626 , - 4153 , - 2700 , - 1579 , - 790 , - 333 , - 208 , - 415 , - 954 , - 1825 , - 3028 , - 4563 , - 1118 , - 3317 , - 536 , - 3399 , - 1282 , - 4809 , - 3356 , - 2235 , - 1446 , - 989 , - 864 , - 1071 , - 1610 , - 2481 , - 3684 , - 5219 , - 1774 , - 3973 , - 1192 , - 4055 , - 1938 , - 153 , - 4012 , - 2891 , - 2102 , - 1645 , - 1520 , - 1727 , - 2266 , - 3137 , - 4340 , - 563 , - 2430 , - 4629 , - 1848 , - 4711 , - 2594 , - 809 , - 4668 , - 3547 , - 2758 , - 2301 , - 2176 , - 2383 , - 2922 , - 3793 , - 4996 , - 1219 , - 3086 , - 5285 , - 2504 , - 55 , - 3250 , - 1465 , - 12 , - 4203 , - 3414 , - 2957 , - 2832 , - 3039 , - 3578 , - 4449 , - 340 , - 1875 , - 3742 , - 629 , - 3160 , - 711 , - 3906 , - 2121 , - 668 , - 4859 , - 4070 , - 3613 , - 3488 , - 3695 , - 4234 , - 5105 , - 996 , - 2531 , - 4398 , - 1285 , - 3816 , - 1367 , - 4562 , - 2777 , - 1324 , - 203 , - 4726 , - 4269 , - 4144 , - 4351 , - 4890 , - 449 , - 1652 , - 3187 , - 5054 , - 1941 , - 4472 , - 2023 , - 5218 , - 3433 , - 1980 , - 859 , - 70 , - 4925 , - 4800 , - 5007 , - 234 , - 1105 , - 2308 , - 3843 , - 398 , - 2597 , - 5128 , - 2679 , - 562 , - 4089 , - 2636 , - 1515 , - 726 , - 269 , - 144 , - 351 , - 890 , - 1761 , - 2964 , - 4499 , - 1054 , - 3253 , - 472 , - 3335 , - 1218 , - 4745 , - 3292 , - 2171 , - 1382 , - 925 , - 800 , - 1007 , - 1546 , - 2417 , - 3620 , - 5155 , - 1710 , - 3909 , - 1128 , - 3991 , - 1874 , - 89 , - 3948 , - 2827 , - 2038 , - 1581 , - 1456 , - 1663 , - 2202 , - 3073 , - 4276 , - 499 , - 2366 , - 4565 , - 1784 , - 4647 , - 2530 , - 745 , - 4604 , - 3483 , - 2694 , - 2237 , - 2112 , - 2319 , - 2858 , - 3729 , - 4932 , - 1155 , - 3022 , - 5221 , - 2440 , - 5303 , - 3186 , - 1401 , - 5260 , - 4139 , - 3350 , - 2893 , - 2768 , - 2975 , - 3514 , - 4385 , - 276 , - 1811 , - 3678 , - 565 , - 3096 , - 647 , - 3842 , - 2057 , - 604 , - 4795 , - 4006 , - 3549 , - 3424 , - 3631 , - 4170 , - 5041 , - 932 , - 2467 , - 4334 , - 1221 , - 3752 , - 1303 , - 4498 , - 2713 , - 1260 , - 139 , - 4662 , - 4205 , - 4080 , - 4287 , - 4826 , - 385 , - 1588 , - 3123 , - 4990 , - 1877 , - 4408 , - 1959 , - 5154 , - 3369 , - 1916 , - 795 , - 6 , - 4861 , - 4736 , - 4943 , - 170 , - 1041 , - 2244 , - 3779 , - 334 , - 2533 , - 5064 , - 2615 , - 498 , - 4025 , - 2572 , - 1451 , - 662 , - 205 , - 80 , - 287 , - 826 , - 1697 , - 2900 , - 4435 , - 990 , - 3189 , - 408 , - 3271 , - 1154 , - 4681 , - 3228 , - 2107 , - 1318 , - 861 , - 736 , - 943 , - 1482 , - 2353 , - 3556 , - 5091 , - 1646 , - 3845 , - 1064 , - 3927 , - 1810 , - 25 , - 3884 , - 2763 , - 1974 , - 1517 , - 1392 , - 1599 , - 2138 , - 3009 , - 4212 , - 435 , - 2302 , - 4501 , - 1720 , - 4583 , - 2466 , - 681 , - 4540 , - 3419 , - 2630 , - 2173 , - 2048 , - 2255 , - 2794 , - 3665 , - 4868 , - 1091 , - 2958 , - 5157 , - 2376 , - 5239 , - 3122 , - 1337 , - 5196 , - 4075 , - 3286 , - 2829 , - 2704 , - 2911 , - 3450 , - 4321 , - 212 , - 1747 , - 3614 , - 501 , - 3032 , - 583 , - 3778 , - 1993 , - 540 , - 4731 , - 3942 , - 3485 , - 3360 , - 3567 , - 4106 , - 4977 , - 868 , - 2403 , - 4270 , - 1157 , - 3688 , - 1239 , - 4434 , - 2649 , - 1196 , - 75 , - 4598 , - 4141 , - 4016 , - 4223 , - 4762 , - 321 , - 1524 , - 3059 , - 4926 , - 1813 , - 4344 , - 1895 , - 5090 , - 3305 , - 1852 , - 731 , - 5254 , - 4797 , - 4672 , - 4879 , - 106 , - 977 , - 2180 , - 3715 , - 270 , - 2469 , - 5000 , - 2551 , - 434 , - 3961 , - 2508 , - 1387 , - 598 , - 141 , - 16 , - 223 , - 762 , - 1633 , - 2836 , - 4371 , - 926 , - 3125 , - 344 , - 3207 , - 1090 , - 4617 , - 3164 , - 2043 , - 1254 , - 797 , - 672 , - 879 , - 1418 , - 2289 , - 3492 , - 5027 , - 1582 , - 3781 , - 1000 , - 3863 , - 1746 , - 5273 , - 3820 , - 2699 , - 1910 , - 1453 , - 1328 , - 1535 , - 2074 , - 2945 , - 4148 , - 371 , - 2238 , - 4437 , - 1656 , - 4519 , - 2402 , - 617 , - 4476 , - 3355 , - 2566 , - 2109 , - 1984 , - 2191 , - 2730 , - 3601 , - 4804 , - 1027 , - 2894 , - 5093 , - 2312 , - 5175 , - 3058 , - 1273 , - 5132 , - 4011 , - 3222 , - 2765 , - 2640 , - 2847 , - 3386 , - 4257 , - 148 , - 1683 , - 3550 , - 437 , - 2968 , - 519 , - 3714 , - 1929 , - 476 , - 4667 , - 3878 , - 3421 , - 3296 , - 3503 , - 4042 , - 4913 , - 804 , - 2339 , - 4206 , - 1093 , - 3624 , - 1175 , - 4370 , - 2585 , - 1132 , - 11 , - 4534 , - 4077 , - 3952 , - 4159 , - 4698 , - 257 , - 1460 , - 2995 , - 4862 , - 1749 , - 4280 , - 1831 , - 5026 , - 3241 , - 1788 , - 667 , - 5190 , - 4733 , - 4608 , - 4815 , - 42 , - 913 , - 2116 , - 3651 , - 206 , - 2405 , - 4936 , - 2487 , - 370 , - 3897 , - 2444 , - 1323 , - 534 , - 77 , - 5264 , - 159 , - 698 , - 1569 , - 2772 , - 4307 , - 862 , - 3061 , - 280 , - 3143 , - 1026 , - 4553 , - 3100 , - 1979 , - 1190 , - 733 , - 608 , - 815 , - 1354 , - 2225 , - 3428 , - 4963 , - 1518 , - 3717 , - 936 , - 3799 , - 1682 , - 5209 , - 3756 , - 2635 , - 1846 , - 1389 , - 1264 , - 1471 , - 2010 , - 2881 , - 4084 , - 307 , - 2174 , - 4373 , - 1592 , - 4455 , - 2338 , - 553 , - 4412 , - 3291 , - 2502 , - 2045 , - 1920 , - 2127 , - 2666 , - 3537 , - 4740 , - 963 , - 2830 , - 5029 , - 2248 , - 5111 , - 2994 , - 1209 , - 5068 , - 3947 , - 3158 , - 2701 , - 2576 , - 2783 , - 3322 , - 4193 , - 84 , - 1619 , - 3486 , - 373 , - 2904 , - 455 , - 3650 , - 1865 , - 412 , - 4603 , - 3814 , - 3357 , - 3232 , - 3439 , - 3978 , - 4849 , - 740 , - 2275 , - 4142 , - 1029 , - 3560 , - 1111 , - 4306 , - 2521 , - 1068 , - 5259 , - 4470 , - 4013 , - 3888 , - 4095 , - 4634 , - 193 , - 1396 , - 2931 , - 4798 , - 1685 , - 4216 , - 1767 , - 4962 , - 3177 , - 1724 , - 603 , - 5126 , - 4669 , - 4544 , - 4751 , - 5290 , - 849 , - 2052 , - 3587 , - 142 , - 2341 , - 4872 , - 2423 , - 306 , - 3833 , - 2380 , - 1259 , - 470 , - 13 , - 5200 , - 95 , - 634 , - 1505 , - 2708 , - 4243 , - 798 , - 2997 , - 216 , - 3079 , - 962 , - 4489 , - 3036 , - 1915 , - 1126 , - 669 , - 544 , - 751 , - 1290 , - 2161 , - 3364 , - 4899 , - 1454 , - 3653 , - 872 , - 3735 , - 1618 , - 5145 , - 3692 , - 2571 , - 1782 , - 1325 , - 1200 , - 1407 , - 1946 , - 2817 , - 4020 , - 243 , - 2110 , - 4309 , - 1528 , - 4391 , - 2274 , - 489 , - 4348 , - 3227 , - 2438 , - 1981 , - 1856 , - 2063 , - 2602 , - 3473 , - 4676 , - 899 , - 2766 , - 4965 , - 2184 , - 5047 , - 2930 , - 1145 , - 5004 , - 3883 , - 3094 , - 2637 , - 2512 , - 2719 , - 3258 , - 4129 , - 20 , - 1555 , - 3422 , - 309 , - 2840 , - 391 , - 3586 , - 1801 , - 348 , - 4539 , - 3750 , - 3293 , - 3168 , - 3375 , - 3914 , - 4785 , - 676 , - 2211 , - 4078 , - 965 , - 3496 , - 1047 , - 4242 , - 2457 , - 1004 , - 5195 , - 4406 , - 3949 , - 3824 , - 4031 , - 4570 , - 129 , - 1332 , - 2867 , - 4734 , - 1621 , - 4152 , - 1703 , - 4898 , - 3113 , - 1660 , - 539 , - 5062 , - 4605 , - 4480 , - 4687 , - 5226 , - 785 , - 1988 , - 3523 , - 78 , - 2277 , - 4808 , - 2359 , - 242 , - 3769 , - 2316 , - 1195 , - 406 , - 5261 , - 5136 , - 31 , - 570 , - 1441 , - 2644 , - 4179 , - 734 , - 2933 , - 152 , - 3015 , - 898 , - 4425 , - 2972 , - 1851 , - 1062 , - 605 , - 480 , - 687 , - 1226 , - 2097 , - 3300 , - 4835 , - 1390 , - 3589 , - 808 , - 3671 , - 1554 , - 5081 , - 3628 , - 2507 , - 1718 , - 1261 , - 1136 , - 1343 , - 1882 , - 2753 , - 3956 , - 179 , - 2046 , - 4245 , - 1464 , - 4327 , - 2210 , - 425 , - 4284 , - 3163 , - 2374 , - 1917 , - 1792 , - 1999 , - 2538 , - 3409 , - 4612 , - 835 , - 2702 , - 4901 , - 2120 , - 4983 , - 2866 , - 1081 , - 4940 , - 3819 , - 3030 , - 2573 , - 2448 , - 2655 , - 3194 , - 4065 , - 5268 , - 1491 , - 3358 , - 245 , - 2776 , - 327 , - 3522 , - 1737 , - 284 , - 4475 , - 3686 , - 3229 , - 3104 , - 3311 , - 3850 , - 4721 , - 612 , - 2147 , - 4014 , - 901 , - 3432 , - 983 , - 4178 , - 2393 , - 940 , - 5131 , - 4342 , - 3885 , - 3760 , - 3967 , - 4506 , - 65 , - 1268 , - 2803 , - 4670 , - 1557 , - 4088 , - 1639 , - 4834 , - 3049 , - 1596 , - 475 , - 4998 , - 4541 , - 4416 , - 4623 , - 5162 , - 721 , - 1924 , - 3459 , - 14 , - 2213 , - 4744 , - 2295 , - 178 , - 3705 , - 2252 , - 1131 , - 342 , - 5197 , - 5072 , - 5279 , - 506 , - 1377 , - 2580 , - 4115 , - 670 , - 2869 , - 88 , - 2951 , - 834 , - 4361 , - 2908 , - 1787 , - 998 , - 541 , - 416 , - 623 , - 1162 , - 2033 , - 3236 , - 4771 , - 1326 , - 3525 , - 744 , - 3607 , - 1490 , - 5017 , - 3564 , - 2443 , - 1654 , - 1197 , - 1072 , - 1279 , - 1818 , - 2689 , - 3892 , - 115 , - 1982 , - 4181 , - 1400 , - 4263 , - 2146 , - 361 , - 4220 , - 3099 , - 2310 , - 1853 , - 1728 , - 1935 , - 2474 , - 3345 , - 4548 , - 771 , - 2638 , - 4837 , - 2056 , - 4919 , - 2802 , - 1017 , - 4876 , - 3755 , - 2966 , - 2509 , - 2384 , - 2591 , - 3130 , - 4001 , - 5204 , - 1427 , - 3294 , - 181 , - 2712 , - 263 , - 3458 , - 1673 , - 220 , - 4411 , - 3622 , - 3165 , - 3040 , - 3247 , - 3786 , - 4657 , - 548 , - 2083 , - 3950 , - 837 , - 3368 , - 919 , - 4114 , - 2329 , - 876 , - 5067 , - 4278 , - 3821 , - 3696 , - 3903 , - 4442 , - 1 , - 1204 , - 2739 , - 4606 , - 1493 , - 4024 , - 1575 , - 4770 , - 2985 , - 1532 , - 411 , - 4934 , - 4477 , - 4352 , - 4559 , - 5098 , - 657 , - 1860 , - 3395 , - 5262 , - 2149 , - 4680 , - 2231 , - 114 , - 3641 , - 2188 , - 1067 , - 278 , - 5133 , - 5008 , - 5215 , - 442 , - 1313 , - 2516 , - 4051 , - 606 , - 2805 , - 24 , - 2887 , - 770 , - 4297 , - 2844 , - 1723 , - 934 , - 477 , - 352 , - 559 , - 1098 , - 1969 , - 3172 , - 4707 , - 1262 , - 3461 , - 680 , - 3543 , - 1426 , - 4953 , - 3500 , - 2379 , - 1590 , - 1133 , - 1008 , - 1215 , - 1754 , - 2625 , - 3828 , - 51 , - 1918 , - 4117 , - 1336 , - 4199 , - 2082 , - 297 , - 4156 , - 3035 , - 2246 , - 1789 , - 1664 , - 1871 , - 2410 , - 3281 , - 4484 , - 707 , - 2574 , - 4773 , - 1992 , - 4855 , - 2738 , - 953 , - 4812 , - 3691 , - 2902 , - 2445 , - 2320 , - 2527 , - 3066 , - 3937 , - 5140 , - 1363 , - 3230 , - 117 , - 2648 , - 199 , - 3394 , - 1609 , - 156 , - 4347 , - 3558 , - 3101 , - 2976 , - 3183 , - 3722 , - 4593 , - 484 , - 2019 , - 3886 , - 773 , - 3304 , - 855 , - 4050 , - 2265 , - 812 , - 5003 , - 4214 , - 3757 , - 3632 , - 3839 , - 4378 , - 5249 , - 1140 , - 2675 , - 4542 , - 1429 , - 3960 , - 1511 , - 4706 , - 2921 , - 1468 , - 347 , - 4870 , - 4413 , - 4288 , - 4495 , - 5034 , - 593 , - 1796 , - 3331 , - 5198 , - 2085 , - 4616 , - 2167 , - 50 , - 3577 , - 2124 , - 1003 , - 214 , - 5069 , - 4944 , - 5151 , - 378 , - 1249 , - 2452 , - 3987 , - 542 , - 2741 , - 5272 , - 2823 , - 706 , - 4233 , - 2780 , - 1659 , - 870 , - 413 , - 288 , - 495 , - 1034 , - 1905 , - 3108 , - 4643 , - 1198 , - 3397 , - 616 , - 3479 , - 1362 , - 4889 , - 3436 , - 2315 , - 1526 , - 1069 , - 944 , - 1151 , - 1690 , - 2561 , - 3764 , - 5299 , - 1854 , - 4053 , - 1272 , - 4135 , - 2018 , - 233 , - 4092 , - 2971 , - 2182 , - 1725 , - 1600 , - 1807 , - 2346 , - 3217 , - 4420 , - 643 , - 2510 , - 4709 , - 1928 , - 4791 , - 2674 , - 889 , - 4748 , - 3627 , - 2838 , - 2381 , - 2256 , - 2463 , - 3002 , - 3873 , - 5076 , - 1299 , - 3166 , - 53 , - 2584 , - 135 , - 3330 , - 1545 , - 92 , - 4283 , - 3494 , - 3037 , - 2912 , - 3119 , - 3658 , - 4529 , - 420 , - 1955 , - 3822 , - 709 , - 3240 , - 791 , - 3986 , - 2201 , - 748 , - 4939 , - 4150 , - 3693 , - 3568 , - 3775 , - 4314 , - 5185 , - 1076 , - 2611 , - 4478 , - 1365 , - 3896 , - 1447 , - 4642 , - 2857 , - 1404 , - 283 , - 4806 , - 4349 , - 4224 , - 4431 , - 4970 , - 529 , - 1732 , - 3267 , - 5134 , - 2021 , - 4552 , - 2103 , - 5298 , - 3513 , - 2060 , - 939 , - 150 , - 5005 , - 4880 , - 5087 , - 314 , - 1185 , - 2388 , - 3923 , - 478 , - 2677 , - 5208 , - 2759 , - 642 , - 4169 , - 2716 , - 1595 , - 806 , - 349 , - 224 , - 431 , - 970 , - 1841 , - 3044 , - 4579 , - 1134 , - 3333 , - 552 , - 3415 , - 1298 , - 4825 , - 3372 , - 2251 , - 1462 , - 1005 , - 880 , - 1087 , - 1626 , - 2497 , - 3700 , - 5235 , - 1790 , - 3989 , - 1208 , - 4071 , - 1954 , - 169 , - 4028 , - 2907 , - 2118 , - 1661 , - 1536 , - 1743 , - 2282 , - 3153 , - 4356 , - 579 , - 2446 , - 4645 , - 1864 , - 4727 , - 2610 , - 825 , - 4684 , - 3563 , - 2774 , - 2317 , - 2192 , - 2399 , - 2938 , - 3809 , - 5012 , - 1235 , - 3102 , - 5301 , - 2520 , - 71 , - 3266 , - 1481 , - 28 , - 4219 , - 3430 , - 2973 , - 2848 , - 3055 , - 3594 , - 4465 , - 356 , - 1891 , - 3758 , - 645 , - 3176 , - 727 , - 3922 , - 2137 , - 684 , - 4875 , - 4086 , - 3629 , - 3504 , - 3711 , - 4250 , - 5121 , - 1012 , - 2547 , - 4414 , - 1301 , - 3832 , - 1383 , - 4578 , - 2793 , - 1340 , - 219 , - 4742 , - 4285 , - 4160 , - 4367 , - 4906 , - 465 , - 1668 , - 3203 , - 5070 , - 1957 , - 4488 , - 2039 , - 5234 , - 3449 , - 1996 , - 875 , - 86 , - 4941 , - 4816 , - 5023 , - 250 , - 1121 , - 2324 , - 3859 , - 414 , - 2613 , - 5144 , - 2695 , - 578 , - 4105 , - 2652 , - 1531 , - 742 , - 285 , - 160 , - 367 , - 906 , - 1777 , - 2980 , - 4515 , - 1070 , - 3269 , - 488 , - 3351 , - 1234 , - 4761 , - 3308 , - 2187 , - 1398 , - 941 , - 816 , - 1023 , - 1562 , - 2433 , - 3636 , - 5171 , - 1726 , - 3925 , - 1144 , - 4007 , - 1890 , - 105 , - 3964 , - 2843 , - 2054 , - 1597 , - 1472 , - 1679 , - 2218 , - 3089 , - 4292 , - 515 , - 2382 , - 4581 , - 1800 , - 4663 , - 2546 , - 761 , - 4620 , - 3499 , - 2710 , - 2253 , - 2128 , - 2335 , - 2874 , - 3745 , - 4948 , - 1171 , - 3038 , - 5237 , - 2456 , - 7 , - 3202 , - 1417 , - 5276 , - 4155 , - 3366 , - 2909 , - 2784 , - 2991 , - 3530 , - 4401 , - 292 , - 1827 , - 3694 , - 581 , - 3112 , - 663 , - 3858 , - 2073 , - 620 , - 4811 , - 4022 , - 3565 , - 3440 , - 3647 , - 4186 , - 5057 , - 948 , - 2483 , - 4350 , - 1237 , - 3768 , - 1319 , - 4514 , - 2729 , - 1276 , - 155 , - 4678 , - 4221 , - 4096 , - 4303 , - 4842 , - 401 , - 1604 , - 3139 , - 5006 , - 1893 , - 4424 , - 1975 , - 5170 , - 3385 , - 1932 , - 811 , - 22 , - 4877 , - 4752 , - 4959 , - 186 , - 1057 , - 2260 , - 3795 , - 350 , - 2549 , - 5080 , - 2631 , - 514 , - 4041 , - 2588 , - 1467 , - 678 , - 221 , - 96 , - 303 , - 842 , - 1713 , - 2916 , - 4451 , - 1006 , - 3205 , - 424 , - 3287 , - 1170 , - 4697 , - 3244 , - 2123 , - 1334 , - 877 , - 752 , - 959 , - 1498 , - 2369 , - 3572 , - 5107 , - 1662 , - 3861 , - 1080 , - 3943 , - 1826 , - 41 , - 3900 , - 2779 , - 1990 , - 1533 , - 1408 , - 1615 , - 2154 , - 3025 , - 4228 , - 451 , - 2318 , - 4517 , - 1736 , - 4599 , - 2482 , - 697 , - 4556 , - 3435 , - 2646 , - 2189 , - 2064 , - 2271 , - 2810 , - 3681 , - 4884 , - 1107 , - 2974 , - 5173 , - 2392 , - 5255 , - 3138 , - 1353 , - 5212 , - 4091 , - 3302 , - 2845 , - 2720 , - 2927 , - 3466 , - 4337 , - 228 , - 1763 , - 3630 , - 517 , - 3048 , - 599 , - 3794 , - 2009 , - 556 , - 4747 , - 3958 , - 3501 , - 3376 , - 3583 , - 4122 , - 4993 , - 884 , - 2419 , - 4286 , - 1173 , - 3704 , - 1255 , - 4450 , - 2665 , - 1212 , - 91 , - 4614 , - 4157 , - 4032 , - 4239 , - 4778 , - 337 , - 1540 , - 3075 , - 4942 , - 1829 , - 4360 , - 1911 , - 5106 , - 3321 , - 1868 , - 747 , - 5270 , - 4813 , - 4688 , - 4895 , - 122 , - 993 , - 2196 , - 3731 , - 286 , - 2485 , - 5016 , - 2567 , - 450 , - 3977 , - 2524 , - 1403 , - 614 , - 157 , - 32 , - 239 , - 778 , - 1649 , - 2852 , - 4387 , - 942 , - 3141 , - 360 , - 3223 , - 1106 , - 4633 , - 3180 , - 2059 , - 1270 , - 813 , - 688 , - 895 , - 1434 , - 2305 , - 3508 , - 5043 , - 1598 , - 3797 , - 1016 , - 3879 , - 1762 , - 5289 , - 3836 , - 2715 , - 1926 , - 1469 , - 1344 , - 1551 , - 2090 , - 2961 , - 4164 , - 387 , - 2254 , - 4453 , - 1672 , - 4535 , - 2418 , - 633 , - 4492 , - 3371 , - 2582 , - 2125 , - 2000 , - 2207 , - 2746 , - 3617 , - 4820 , - 1043 , - 2910 , - 5109 , - 2328 , - 5191 , - 3074 , - 1289 , - 5148 , - 4027 , - 3238 , - 2781 , - 2656 , - 2863 , - 3402 , - 4273 , - 164 , - 1699 , - 3566 , - 453 , - 2984 , - 535 , - 3730 , - 1945 , - 492 , - 4683 , - 3894 , - 3437 , - 3312 , - 3519 , - 4058 , - 4929 , - 820 , - 2355 , - 4222 , - 1109 , - 3640 , - 1191 , - 4386 , - 2601 , - 1148 , - 27 , - 4550 , - 4093 , - 3968 , - 4175 , - 4714 , - 273 , - 1476 , - 3011 , - 4878 , - 1765 , - 4296 , - 1847 , - 5042 , - 3257 , - 1804 , - 683 , - 5206 , - 4749 , - 4624 , - 4831 , - 58 , - 929 , - 2132 , - 3667 , - 222 , - 2421 , - 4952 , - 2503 , - 386 , - 3913 , - 2460 , - 1339 , - 550 , - 93 , - 5280 , - 175 , - 714 , - 1585 , - 2788 , - 4323 , - 878 , - 3077 , - 296 , - 3159 , - 1042 , - 4569 , - 3116 , - 1995 , - 1206 , - 749 , - 624 , - 831 , - 1370 , - 2241 , - 3444 , - 4979 , - 1534 , - 3733 , - 952 , - 3815 , - 1698 , - 5225 , - 3772 , - 2651 , - 1862 , - 1405 , - 1280 , - 1487 , - 2026 , - 2897 , - 4100 , - 323 , - 2190 , - 4389 , - 1608 , - 4471 , - 2354 , - 569 , - 4428 , - 3307 , - 2518 , - 2061 , - 1936 , - 2143 , - 2682 , - 3553 , - 4756 , - 979 , - 2846 , - 5045 , - 2264 , - 5127 , - 3010 , - 1225 , - 5084 , - 3963 , - 3174 , - 2717 , - 2592 , - 2799 , - 3338 , - 4209 , - 100 , - 1635 , - 3502 , - 389 , - 2920 , - 471 , - 3666 , - 1881 , - 428 , - 4619 , - 3830 , - 3373 , - 3248 , - 3455 , - 3994 , - 4865 , - 756 , - 2291 , - 4158 , - 1045 , - 3576 , - 1127 , - 4322 , - 2537 , - 1084 , - 5275 , - 4486 , - 4029 , - 3904 , - 4111 , - 4650 , - 209 , - 1412 , - 2947 , - 4814 , - 1701 , - 4232 , - 1783 , - 4978 , - 3193 , - 1740 , - 619 , - 5142 , - 4685 , - 4560 , - 4767 , - 5306 , - 865 , - 2068 , - 3603 , - 158 , - 2357 , - 4888 , - 2439 , - 322 , - 3849 , - 2396 , - 1275 , - 486 , - 29 , - 5216 , - 111 , - 650 , - 1521 , - 2724 , - 4259 , - 814 , - 3013 , - 232 , - 3095 , - 978 , - 4505 , - 3052 , - 1931 , - 1142 , - 685 , - 560 , - 767 , - 1306 , - 2177 , - 3380 , - 4915 , - 1470 , - 3669 , - 888 , - 3751 , - 1634 , - 5161 , - 3708 , - 2587 , - 1798 , - 1341 , - 1216 , - 1423 , - 1962 , - 2833 , - 4036 , - 259 , - 2126 , - 4325 , - 1544 , - 4407 , - 2290 , - 505 , - 4364 , - 3243 , - 2454 , - 1997 , - 1872 , - 2079 , - 2618 , - 3489 , - 4692 , - 915 , - 2782 , - 4981 , - 2200 , - 5063 , - 2946 , - 1161 , - 5020 , - 3899 , - 3110 , - 2653 , - 2528 , - 2735 , - 3274 , - 4145 , - 36 , - 1571 , - 3438 , - 325 , - 2856 , - 407 , - 3602 , - 1817 , - 364 , - 4555 , - 3766 , - 3309 , - 3184 , - 3391 , - 3930 , - 4801 , - 692 , - 2227 , - 4094 , - 981 , - 3512 , - 1063 , - 4258 , - 2473 , - 1020 , - 5211 , - 4422 , - 3965 , - 3840 , - 4047 , - 4586 , - 145 , - 1348 , - 2883 , - 4750 , - 1637 , - 4168 , - 1719 , - 4914 , - 3129 , - 1676 , - 555 , - 5078 , - 4621 , - 4496 , - 4703 , - 5242 , - 801 , - 2004 , - 3539 , - 94 , - 2293 , - 4824 , - 2375 , - 258 , - 3785 , - 2332 , - 1211 , - 422 , - 5277 , - 5152 , - 47 , - 586 , - 1457 , - 2660 , - 4195 , - 750 , - 2949 , - 168 , - 3031 , - 914 , - 4441 , - 2988 , - 1867 , - 1078 , - 621 , - 496 , - 703 , - 1242 , - 2113 , - 3316 , - 4851 , - 1406 , - 3605 , - 824 , - 3687 , - 1570 , - 5097 , - 3644 , - 2523 , - 1734 , - 1277 , - 1152 , - 1359 , - 1898 , - 2769 , - 3972 , - 195 , - 2062 , - 4261 , - 1480 , - 4343 , - 2226 , - 441 , - 4300 , - 3179 , - 2390 , - 1933 , - 1808 , - 2015 , - 2554 , - 3425 , - 4628 , - 851 , - 2718 , - 4917 , - 2136 , - 4999 , - 2882 , - 1097 , - 4956 , - 3835 , - 3046 , - 2589 , - 2464 , - 2671 , - 3210 , - 4081 , - 5284 , - 1507 , - 3374 , - 261 , - 2792 , - 343 , - 3538 , - 1753 , - 300 , - 4491 , - 3702 , - 3245 , - 3120 , - 3327 , - 3866 , - 4737 , - 628 , - 2163 , - 4030 , - 917 , - 3448 , - 999 , - 4194 , - 2409 , - 956 , - 5147 , - 4358 , - 3901 , - 3776 , - 3983 , - 4522 , - 81 , - 1284 , - 2819 , - 4686 , - 1573 , - 4104 , - 1655 , - 4850 , - 3065 , - 1612 , - 491 , - 5014 , - 4557 , - 4432 , - 4639 , - 5178 , - 737 , - 1940 , - 3475 , - 30 , - 2229 , - 4760 , - 2311 , - 194 , - 3721 , - 2268 , - 1147 , - 358 , - 5213 , - 5088 , - 5295 , - 522 , - 1393 , - 2596 , - 4131 , - 686 , - 2885 , - 104 , - 2967 , - 850 , - 4377 , - 2924 , - 1803 , - 1014 , - 557 , - 432 , - 639 , - 1178 , - 2049 , - 3252 , - 4787 , - 1342 , - 3541 , - 760 , - 3623 , - 1506 , - 5033 , - 3580 , - 2459 , - 1670 , - 1213 , - 1088 , - 1295 , - 1834 , - 2705 , - 3908 , - 131 , - 1998 , - 4197 , - 1416 , - 4279 , - 2162 , - 377 , - 4236 , - 3115 , - 2326 , - 1869 , - 1744 , - 1951 , - 2490 , - 3361 , - 4564 , - 787 , - 2654 , - 4853 , - 2072 , - 4935 , - 2818 , - 1033 , - 4892 , - 3771 , - 2982 , - 2525 , - 2400 , - 2607 , - 3146 , - 4017 , - 5220 , - 1443 , - 3310 , - 197 , - 2728 , - 279 , - 3474 , - 1689 , - 236 , - 4427 , - 3638 , - 3181 , - 3056 , - 3263 , - 3802 , - 4673 , - 564 , - 2099 , - 3966 , - 853 , - 3384 , - 935 , - 4130 , - 2345 , - 892 , - 5083 , - 4294 , - 3837 , - 3712 , - 3919 , - 4458 , - 17 , - 1220 , - 2755 , - 4622 , - 1509 , - 4040 , - 1591 , - 4786 , - 3001 , - 1548 , - 427 , - 4950 , - 4493 , - 4368 , - 4575 , - 5114 , - 673 , - 1876 , - 3411 , - 5278 , - 2165 , - 4696 , - 2247 , - 130 , - 3657 , - 2204 , - 1083 , - 294 , - 5149 , - 5024 , - 5231 , - 458 , - 1329 , - 2532 , - 4067 , - 622 , - 2821 , - 40 , - 2903 , - 786 , - 4313 , - 2860 , - 1739 , - 950 , - 493 , - 368 , - 575 , - 1114 , - 1985 , - 3188 , - 4723 , - 1278 , - 3477 , - 696 , - 3559 , - 1442 , - 4969 , - 3516 , - 2395 , - 1606 , - 1149 , - 1024 , - 1231 , - 1770 , - 2641 , - 3844 , - 67 , - 1934 , - 4133 , - 1352 , - 4215 , - 2098 , - 313 , - 4172 , - 3051 , - 2262 , - 1805 , - 1680 , - 1887 , - 2426 , - 3297 , - 4500 , - 723 , - 2590 , - 4789 , - 2008 , - 4871 , - 2754 , - 969 , - 4828 , - 3707 , - 2918 , - 2461 , - 2336 , - 2543 , - 3082 , - 3953 , - 5156 , - 1379 , - 3246 , - 133 , - 2664 , - 215 , - 3410 , - 1625 , - 172 , - 4363 , - 3574 , - 3117 , - 2992 , - 3199 , - 3738 , - 4609 , - 500 , - 2035 , - 3902 , - 789 , - 3320 , - 871 , - 4066 , - 2281 , - 828 , - 5019 , - 4230 , - 3773 , - 3648 , - 3855 , - 4394 , - 5265 , - 1156 , - 2691 , - 4558 , - 1445 , - 3976 , - 1527 , - 4722 , - 2937 , - 1484 , - 363 , - 4886 , - 4429 , - 4304 , - 4511 , - 5050 , - 609 , - 1812 , - 3347 , - 5214 , - 2101 , - 4632 , - 2183 , - 66 , - 3593 , - 2140 , - 1019 , - 230 , - 5085 , - 4960 , - 5167 , - 394 , - 1265 , - 2468 , - 4003 , - 558 , - 2757 , - 5288 , - 2839 , - 722 , - 4249 , - 2796 , - 1675 , - 886 , - 429 , - 304 , - 511 , - 1050 , - 1921 , - 3124 , - 4659 , - 1214 , - 3413 , - 632 , - 3495 , - 1378 , - 4905 , - 3452 , - 2331 , - 1542 , - 1085 , - 960 , - 1167 , - 1706 , - 2577 , - 3780 , - 3 , - 1870 , - 4069 , - 1288 , - 4151 , - 2034 , - 249 , - 4108 , - 2987 , - 2198 , - 1741 , - 1616 , - 1823 , - 2362 , - 3233 , - 4436 , - 659 , - 2526 , - 4725 , - 1944 , - 4807 , - 2690 , - 905 , - 4764 , - 3643 , - 2854 , - 2397 , - 2272 , - 2479 , - 3018 , - 3889 , - 5092 , - 1315 , - 3182 , - 69 , - 2600 , - 151 , - 3346 , - 1561 , - 108 , - 4299 , - 3510 , - 3053 , - 2928 , - 3135 , - 3674 , - 4545 , - 436 , - 1971 , - 3838 , - 725 , - 3256 , - 807 , - 4002 , - 2217 , - 764 , - 4955 , - 4166 , - 3709 , - 3584 , - 3791 , - 4330 , - 5201 , - 1092 , - 2627 , - 4494 , - 1381 , - 3912 , - 1463 , - 4658 , - 2873 , - 1420 , - 299 , - 4822 , - 4365 , - 4240 , - 4447 , - 4986 , - 545 , - 1748 , - 3283 , - 5150 , - 2037 , - 4568 , - 2119 , - 2 , - 3529 , - 2076 , - 955 , - 166 , - 5021 , - 4896 , - 5103 , - 330 , - 1201 , - 2404 , - 3939 , - 494 , - 2693 , - 5224 , - 2775 , - 658 , - 4185 , - 2732 , - 1611 , - 822 , - 365 , - 240 , - 447 , - 986 , - 1857 , - 3060 , - 4595 , - 1150 , - 3349 , - 568 , - 3431 , - 1314 , - 4841 , - 3388 , - 2267 , - 1478 , - 1021 , - 896 , - 1103 , - 1642 , - 2513 , - 3716 , - 5251 , - 1806 , - 4005 , - 1224 , - 4087 , - 1970 , - 185 , - 4044 , - 2923 , - 2134 , - 1677 , - 1552 , - 1759 , - 2298 , - 3169 , - 4372 , - 595 , - 2462 , - 4661 , - 1880 , - 4743 , - 2626 , - 841 , - 4700 , - 3579 , - 2790 , - 2333 , - 2208 , - 2415 , - 2954 , - 3825 , - 5028 , - 1251 , - 3118 , - 5 , - 2536 , - 87 , - 3282 , - 1497 , - 44 , - 4235 , - 3446 , - 2989 , - 2864 , - 3071 , - 3610 , - 4481 , - 372 , - 1907 , - 3774 , - 661 , - 3192 , - 743 , - 3938 , - 2153 , - 700 , - 4891 , - 4102 , - 3645 , - 3520 , - 3727 , - 4266 , - 5137 , - 1028 , - 2563 , - 4430 , - 1317 , - 3848 , - 1399 , - 4594 , - 2809 , - 1356 , - 235 , - 4758 , - 4301 , - 4176 , - 4383 , - 4922 , - 481 , - 1684 , - 3219 , - 5086 , - 1973 , - 4504 , - 2055 , - 5250 , - 3465 , - 2012 , - 891 , - 102 , - 4957 , - 4832 , - 5039 , - 266 , - 1137 , - 2340 , - 3875 , - 430 , - 2629 , - 5160 , - 2711 , - 594 , - 4121 , - 2668 , - 1547 , - 758 , - 301 , - 176 , - 383 , - 922 , - 1793 , - 2996 , - 4531 , - 1086 , - 3285 , - 504 , - 3367 , - 1250 , - 4777 , - 3324 , - 2203 , - 1414 , - 957 , - 832 , - 1039 , - 1578 , - 2449 , - 3652 , - 5187 , - 1742 , - 3941 , - 1160 , - 4023 , - 1906 , - 121 , - 3980 , - 2859 , - 2070 , - 1613 , - 1488 , - 1695 , - 2234 , - 3105 , - 4308 , - 531 , - 2398 , - 4597 , - 1816 , - 4679 , - 2562 , - 777 , - 4636 , - 3515 , - 2726 , - 2269 , - 2144 , - 2351 , - 2890 , - 3761 , - 4964 , - 1187 , - 3054 , - 5253 , - 2472 , - 23 , - 3218 , - 1433 , - 5292 , - 4171 , - 3382 , - 2925 , - 2800 , - 3007 , - 3546 , - 4417 , - 308 , - 1843 , - 3710 , - 597 , - 3128 , - 679 , - 3874 , - 2089 , - 636 , - 4827 , - 4038 , - 3581 , - 3456 , - 3663 , - 4202 , - 5073 , - 964 , - 2499 , - 4366 , - 1253 , - 3784 , - 1335 , - 4530 , - 2745 , - 1292 , - 171 , - 4694 , - 4237 , - 4112 , - 4319 , - 4858 , - 417 , - 1620 , - 3155 , - 5022 , - 1909 , - 4440 , - 1991 , - 5186 , - 3401 , - 1948 , - 827 , - 38 , - 4893 , - 4768 , - 4975 , - 202 , - 1073 , - 2276 , - 3811 , - 366 , - 2565 , - 5096 , - 2647 , - 530 , - 4057 , - 2604 , - 1483 , - 694 , - 237 , - 112 , - 319 , - 858 , - 1729 , - 2932 , - 4467 , - 1022 , - 3221 , - 440 , - 3303 , - 1186 , - 4713 , - 3260 , - 2139 , - 1350 , - 893 , - 768 , - 975 , - 1514 , - 2385 , - 3588 , - 5123 , - 1678 , - 3877 , - 1096 , - 3959 , - 1842 , - 57 , - 3916 , - 2795 , - 2006 , - 1549 , - 1424 , - 1631 , - 2170 , - 3041 , - 4244 , - 467 , - 2334 , - 4533 , - 1752 , - 4615 , - 2498 , - 713 , - 4572 , - 3451 , - 2662 , - 2205 , - 2080 , - 2287 , - 2826 , - 3697 , - 4900 , - 1123 , - 2990 , - 5189 , - 2408 , - 5271 , - 3154 , - 1369 , - 5228 , - 4107 , - 3318 , - 2861 , - 2736 , - 2943 , - 3482 , - 4353 , - 244 , - 1779 , - 3646 , - 533 , - 3064 , - 615 , - 3810 , - 2025 , - 572 , - 4763 , - 3974 , - 3517 , - 3392 , - 3599 , - 4138 , - 5009 , - 900 , - 2435 , - 4302 , - 1189 , - 3720 , - 1271 , - 4466 , - 2681 , - 1228 , - 107 , - 4630 , - 4173 , - 4048 , - 4255 , - 4794 , - 353 , - 1556 , - 3091 , - 4958 , - 1845 , - 4376 , - 1927 , - 5122 , - 3337 , - 1884 , - 763 , - 5286 , - 4829 , - 4704 , - 4911 , - 138 , - 1009 , - 2212 , - 3747 , - 302 , - 2501 , - 5032 , - 2583 , - 466 , - 3993 , - 2540 , - 1419 , - 630 , - 173 , - 48 , - 255 , - 794 , - 1665 , - 2868 , - 4403 , - 958 , - 3157 , - 376 , - 3239 , - 1122 , - 4649 , - 3196 , - 2075 , - 1286 , - 829 , - 704 , - 911 , - 1450 , - 2321 , - 3524 , - 5059 , - 1614 , - 3813 , - 1032 , - 3895 , - 1778 , - 5305 , - 3852 , - 2731 , - 1942 , - 1485 , - 1360 , - 1567 , - 2106 , - 2977 , - 4180 , - 403 , - 2270 , - 4469 , - 1688 , - 4551 , - 2434 , - 649 , - 4508 , - 3387 , - 2598 , - 2141 , - 2016 , - 2223 , - 2762 , - 3633 , - 4836 , - 1059 , - 2926 , - 5125 , - 2344 , - 5207 , - 3090 , - 1305 , - 5164 , - 4043 , - 3254 , - 2797 , - 2672 , - 2879 , - 3418 , - 4289 , - 180 , - 1715 , - 3582 , - 469 , - 3000 , - 551 , - 3746 , - 1961 , - 508 , - 4699 , - 3910 , - 3453 , - 3328 , - 3535 , - 4074 , - 4945 , - 836 , - 2371 , - 4238 , - 1125 , - 3656 , - 1207 , - 4402 , - 2617 , - 1164 , - 43 , - 4566 , - 4109 , - 3984 , - 4191 , - 4730 , - 289 , - 1492 , - 3027 , - 4894 , - 1781 , - 4312 , - 1863 , - 5058 , - 3273 , - 1820 , - 699 , - 5222 , - 4765 , - 4640 , - 4847 , - 74 , - 945 , - 2148 , - 3683 , - 238 , - 2437 , - 4968 , - 2519 , - 402 , - 3929 , - 2476 , - 1355 , - 566 , - 109 , - 5296 , - 191 , - 730 , - 1601 , - 2804 , - 4339 , - 894 , - 3093 , - 312 , - 3175 , - 1058 , - 4585 , - 3132 , - 2011 , - 1222 , - 765 , - 640 , - 847 , - 1386 , - 2257 , - 3460 , - 4995 , - 1550 , - 3749 , - 968 , - 3831 , - 1714 , - 5241 , - 3788 , - 2667 , - 1878 , - 1421 , - 1296 , - 1503 , - 2042 , - 2913 , - 4116 , - 339 , - 2206 , - 4405 , - 1624 , - 4487 , - 2370 , - 585 , - 4444 , - 3323 , - 2534 , - 2077 , - 1952 , - 2159 , - 2698 , - 3569 , - 4772 , - 995 , - 2862 , - 5061 , - 2280 , - 5143 , - 3026 , - 1241 , - 5100 , - 3979 , - 3190 , - 2733 , - 2608 , - 2815 , - 3354 , - 4225 , - 116 , - 1651 , - 3518 , - 405 , - 2936 , - 487 , - 3682 , - 1897 , - 444 , - 4635 , - 3846 , - 3389 , - 3264 , - 3471 , - 4010 , - 4881 , - 772 , - 2307 , - 4174 , - 1061 , - 3592 , - 1143 , - 4338 , - 2553 , - 1100 , - 5291 , - 4502 , - 4045 , - 3920 , - 4127 , - 4666 , - 225 , - 1428 , - 2963 , - 4830 , - 1717 , - 4248 , - 1799 , - 4994 , - 3209 , - 1756 , - 635 , - 5158 , - 4701 , - 4576 , - 4783 , - 10 , - 881 , - 2084 , - 3619 , - 174 , - 2373 , - 4904 , - 2455 , - 338 , - 3865 , - 2412 , - 1291 , - 502 , - 45 , - 5232 , - 127 , - 666 , - 1537 , - 2740 , - 4275 , - 830 , - 3029 , - 248 , - 3111 , - 994 , - 4521 , - 3068 , - 1947 , - 1158 , - 701 , - 576 , - 783 , - 1322 , - 2193 , - 3396 , - 4931 , - 1486 , - 3685 , - 904 , - 3767 , - 1650 , - 5177 , - 3724 , - 2603 , - 1814 , - 1357 , - 1232 , - 1439 , - 1978 , - 2849 , - 4052 , - 275 , - 2142 , - 4341 , - 1560 , - 4423 , - 2306 , - 521 , - 4380 , - 3259 , - 2470 , - 2013 , - 1888 , - 2095 , - 2634 , - 3505 , - 4708 , - 931 , - 2798 , - 4997 , - 2216 , - 5079 , - 2962 , - 1177 , - 5036 , - 3915 , - 3126 , - 2669 , - 2544 , - 2751 , - 3290 , - 4161 , - 52 , - 1587 , - 3454 , - 341 , - 2872 , - 423 , - 3618 , - 1833 , - 380 , - 4571 , - 3782 , - 3325 , - 3200 , - 3407 , - 3946 , - 4817 , - 708 , - 2243 , - 4110 , - 997 , - 3528 , - 1079 , - 4274 , - 2489 , - 1036 , - 5227 , - 4438 , - 3981 , - 3856 , - 4063 , - 4602 , - 161 , - 1364 , - 2899 , - 4766 , - 1653 , - 4184 , - 1735 , - 4930 , - 3145 , - 1692 , - 571 , - 5094 , - 4637 , - 4512 , - 4719 , - 5258 , - 817 , - 2020 , - 3555 , - 110 , - 2309 , - 4840 , - 2391 , - 274 , - 3801 , - 2348 , - 1227 , - 438 , - 5293 , - 5168 , - 63 , - 602 , - 1473 , - 2676 , - 4211 , - 766 , - 2965 , - 184 , - 3047 , - 930 , - 4457 , - 3004 , - 1883 , - 1094 , - 637 , - 512 , - 719 , - 1258 , - 2129 , - 3332 , - 4867 , - 1422 , - 3621 , - 840 , - 3703 , - 1586 , - 5113 , - 3660 , - 2539 , - 1750 , - 1293 , - 1168 , - 1375 , - 1914 , - 2785 , - 3988 , - 211 , - 2078 , - 4277 , - 1496 , - 4359 , - 2242 , - 457 , - 4316 , - 3195 , - 2406 , - 1949 , - 1824 , - 2031 , - 2570 , - 3441 , - 4644 , - 867 , - 2734 , - 4933 , - 2152 , - 5015 , - 2898 , - 1113 , - 4972 , - 3851 , - 3062 , - 2605 , - 2480 , - 2687 , - 3226 , - 4097 , - 5300 , - 1523 , - 3390 , - 277 , - 2808 , - 359 , - 3554 , - 1769 , - 316 , - 4507 , - 3718 , - 3261 , - 3136 , - 3343 , - 3882 , - 4753 , - 644 , - 2179 , - 4046 , - 933 , - 3464 , - 1015 , - 4210 , - 2425 , - 972 , - 5163 , - 4374 , - 3917 , - 3792 , - 3999 , - 4538 , - 97 , - 1300 , - 2835 , - 4702 , - 1589 , - 4120 , - 1671 , - 4866 , - 3081 , - 1628 , - 507 , - 5030 , - 4573 , - 4448 , - 4655 , - 5194 , - 753 , - 1956 , - 3491 , - 46 , - 2245 , - 4776 , - 2327 , - 210 , - 3737 , - 2284 , - 1163 , - 374 , - 5229 , - 5104 , - 5311 , - 538 , - 1409 , - 2612 , - 4147 , - 702 , - 2901 , - 120 , - 2983 , - 866 , - 4393 , - 2940 , - 1819 , - 1030 , - 573 , - 448 , - 655 , - 1194 , - 2065 , - 3268 , - 4803 , - 1358 , - 3557 , - 776 , - 3639 , - 1522 , - 5049 , - 3596 , - 2475 , - 1686 , - 1229 , - 1104 , - 1311 , - 1850 , - 2721 , - 3924 , - 147 , - 2014 , - 4213 , - 1432 , - 4295 , - 2178 , - 393 , - 4252 , - 3131 , - 2342 , - 1885 , - 1760 , - 1967 , - 2506 , - 3377 , - 4580 , - 803 , - 2670 , - 4869 , - 2088 , - 4951 , - 2834 , - 1049 , - 4908 , - 3787 , - 2998 , - 2541 , - 2416 , - 2623 , - 3162 , - 4033 , - 5236 , - 1459 , - 3326 , - 213 , - 2744 , - 295 , - 3490 , - 1705 , - 252 , - 4443 , - 3654 , - 3197 , - 3072 , - 3279 , - 3818 , - 4689 , - 580 , - 2115 , - 3982 , - 869 , - 3400 , - 951 , - 4146 , - 2361 , - 908 , - 5099 , - 4310 , - 3853 , - 3728 , - 3935 , - 4474 , - 33 , - 1236 , - 2771 , - 4638 , - 1525 , - 4056 , - 1607 , - 4802 , - 3017 , - 1564 , - 443 , - 4966 , - 4509 , - 4384 , - 4591 , - 5130 , - 689 , - 1892 , - 3427 , - 5294 , - 2181 , - 4712 , - 2263 , - 146 , - 3673 , - 2220 , - 1099 , - 310 , - 5165 , - 5040 , - 5247 , - 474 , - 1345 , - 2548 , - 4083 , - 638 , - 2837 , - 56 , - 2919 , - 802 , - 4329 , - 2876 , - 1755 , - 966 , - 509 , - 384 , - 591 , - 1130 , - 2001 , - 3204 , - 4739 , - 1294 , - 3493 , - 712 , - 3575 , - 1458 , - 4985 , - 3532 , - 2411 , - 1622 , - 1165 , - 1040 , - 1247 , - 1786 , - 2657 , - 3860 , - 83 , - 1950 , - 4149 , - 1368 , - 4231 , - 2114 , - 329 , - 4188 , - 3067 , - 2278 , - 1821 , - 1696 , - 1903 , - 2442 , - 3313 , - 4516 , - 739 , - 2606 , - 4805 , - 2024 , - 4887 , - 2770 , - 985 , - 4844 , - 3723 , - 2934 , - 2477 , - 2352 , - 2559 , - 3098 , - 3969 , - 5172 , - 1395 , - 3262 , - 149 , - 2680 , - 231 , - 3426 , - 1641 , - 188 , - 4379 , - 3590 , - 3133 , - 3008 , - 3215 , - 3754 , - 4625 , - 516 , - 2051 , - 3918 , - 805 , - 3336 , - 887 , - 4082 , - 2297 , - 844 , - 5035 , - 4246 , - 3789 , - 3664 , - 3871 , - 4410 , - 5281 , - 1172 , - 2707 , - 4574 , - 1461 , - 3992 , - 1543 , - 4738 , - 2953 , - 1500 , - 379 , - 4902 , - 4445 , - 4320 , - 4527 , - 5066 , - 625 , - 1828 , - 3363 , - 5230 , - 2117 , - 4648 , - 2199 , - 82 , - 3609 , - 2156 , - 1035 , - 246 , - 5101 , - 4976 , - 5183 , - 410 , - 1281 , - 2484 , - 4019 , - 574 , - 2773 , - 5304 , - 2855 , - 738 , - 4265 , - 2812 , - 1691 , - 902 , - 445 , - 320 , - 527 , - 1066 , - 1937 , - 3140 , - 4675 , - 1230 , - 3429 , - 648 , - 3511 , - 1394 , - 4921 , - 3468 , - 2347 , - 1558 , - 1101 , - 976 , - 1183 , - 1722 , - 2593 , - 3796 , - 19 , - 1886 , - 4085 , - 1304 , - 4167 , - 2050 , - 265 , - 4124 , - 3003 , - 2214 , - 1757 , - 1632 , - 1839 , - 2378 , - 3249 , - 4452 , - 675 , - 2542 , - 4741 , - 1960 , - 4823 , - 2706 , - 921 , - 4780 , - 3659 , - 2870 , - 2413 , - 2288 , - 2495 , - 3034 , - 3905 , - 5108 , - 1331 , - 3198 , - 85 , - 2616 , - 167 , - 3362 , - 1577 , - 124 , - 4315 , - 3526 , - 3069 , - 2944 , - 3151 , - 3690 , - 4561 , - 452 , - 1987 , - 3854 , - 741 , - 3272 , - 823 , - 4018 , - 2233 , - 780 , - 4971 , - 4182 , - 3725 , - 3600 , - 3807 , - 4346 , - 5217 , - 1108 , - 2643 , - 4510 , - 1397 , - 3928 , - 1479 , - 4674 , - 2889 , - 1436 , - 315 , - 4838 , - 4381 , - 4256 , - 4463 , - 5002 , - 561 , - 1764 , - 3299 , - 5166 , - 2053 , - 4584 , - 2135 , - 18 , - 3545 , - 2092 , - 971 , - 182 , - 5037 , - 4912 , - 5119 , - 346 , - 1217 , - 2420 , - 3955 , - 510 , - 2709 , - 5240 , - 2791 , - 674 , - 4201 , - 2748 , - 1627 , - 838 , - 381 , - 256 , - 463 , - 1002 , - 1873 , - 3076 , - 4611 , - 1166 , - 3365 , - 584 , - 3447 , - 1330 , - 4857 , - 3404 , - 2283 , - 1494 , - 1037 , - 912 , - 1119 , - 1658 , - 2529 , - 3732 , - 5267 , - 1822 , - 4021 , - 1240 , - 4103 , - 1986 , - 201 , - 4060 , - 2939 , - 2150 , - 1693 , - 1568 , - 1775 , - 2314 , - 3185 , - 4388 , - 611 , - 2478 , - 4677 , - 1896 , - 4759 , - 2642 , - 857 , - 4716 , - 3595 , - 2806 , - 2349 , - 2224 , - 2431 , - 2970 , - 3841 , - 5044 , - 1267 , - 3134 , - 21 , - 2552 , - 103 , - 3298 , - 1513 , - 60 , - 4251 , - 3462 , - 3005 , - 2880 , - 3087 , - 3626 , - 4497 , - 388 , - 1923 , - 3790 , - 677 , - 3208 , - 759 , - 3954 , - 2169 , - 716 , - 4907 , - 4118 , - 3661 , - 3536 , - 3743 , - 4282 , - 5153 , - 1044 , - 2579 , - 4446 , - 1333 , - 3864 , - 1415 , - 4610 , - 2825 , - 1372 , - 251 , - 4774 , - 4317 , - 4192 , - 4399 , - 4938 , - 497 , - 1700 , - 3235 , - 5102 , - 1989 , - 4520 , - 2071 , - 5266 , - 3481 , - 2028 , - 907 , - 118 , - 4973 , - 4848 , - 5055 , - 282 , - 1153 , - 2356 , - 3891 , - 446 , - 2645 , - 5176 , - 2727 , - 610 , - 4137 , - 2684 , - 1563 , - 774 , - 317 , - 192 , - 399 , - 938 , - 1809 , - 3012 , - 4547 , - 1102 , - 3301 , - 520 , - 3383 , - 1266 , - 4793 , - 3340 , - 2219 , - 1430 , - 973 , - 848 , - 1055 , - 1594 , - 2465 , - 3668 , - 5203 , - 1758 , - 3957 , - 1176 , - 4039 , - 1922 , - 137 , - 3996 , - 2875 , - 2086 , - 1629 , - 1504 , - 1711 , - 2250 , - 3121 , - 4324 , - 547 , - 2414 , - 4613 , - 1832 , - 4695 , - 2578 , - 793 , - 4652 , - 3531 , - 2742 , - 2285 , - 2160 , - 2367 , - 2906 , - 3777 , - 4980 , - 1203 , - 3070 , - 5269 , - 2488 , - 39 , - 3234 , - 1449 , - 5308 , - 4187 , - 3398 , - 2941 , - 2816 , - 3023 , - 3562 , - 4433 , - 324 , - 1859 , - 3726 , - 613 , - 3144 , - 695 , - 3890 , - 2105 , - 652 , - 4843 , - 4054 , - 3597 , - 3472 , - 3679 , - 4218 , - 5089 , - 980 , - 2515 , - 4382 , - 1269 , - 3800 , - 1351 , - 4546 , - 2761 , - 1308 , - 187 , - 4710 , - 4253 , - 4128 , - 4335 , - 4874 , - 433 , - 1636 , - 3171 , - 5038 , - 1925 , - 4456 , - 2007 , - 5202 , - 3417 , - 1964 , - 843 , - 54 , - 4909 , - 4784 , - 4991 , - 218 , - 1089 , - 2292 , - 3827 , - 382 , - 2581 , - 5112 , - 2663 , - 546 , - 4073 , - 2620 , - 1499 , - 710 , - 253 , - 128 , - 335 , - 874 , - 1745 , - 2948 , - 4483 , - 1038 , - 3237 , - 456 , - 3319 , - 1202 , - 4729 , - 3276 , - 2155 , - 1366 , - 909 , - 784 , - 991 , - 1530 , - 2401 , - 3604 , - 5139 , - 1694 , - 3893 , - 1112 , - 3975 , - 1858 , - 73 , - 3932 , - 2811 , - 2022 , - 1565 , - 1440 , - 1647 , - 2186 , - 3057 , - 4260 , - 483 , - 2350 , - 4549 , - 1768 , - 4631 , - 2514 , - 729 , - 4588 , - 3467 , - 2678 , - 2221 , - 2096 , - 2303 , - 2842 , - 3713 , - 4916 , - 1139 , - 3006 , - 5205 , - 2424 , - 5287 , - 3170 , - 1385 , - 5244 , - 4123 , - 3334 , - 2877 , - 2752 , - 2959 , - 3498 , - 4369 , - 260 , - 1795 , - 3662 , - 549 , - 3080 , - 631 , - 3826 , - 2041 , - 588 , - 4779 , - 3990 , - 3533 , - 3408 , - 3615 , - 4154 , - 5025 , - 916 , - 2451 , - 4318 , - 1205 , - 3736 , - 1287 , - 4482 , - 2697 , - 1244 , - 123 , - 4646 , - 4189 , - 4064 , - 4271 , - 4810 , - 369 , - 1572 , - 3107 , - 4974 , - 1861 , - 4392 , - 1943 , - 5138 , - 3353 , - 1900 , - 779 , - 5302 , - 4845 , - 4720 , - 4927 , - 154 , - 1025 , - 2228 , - 3763 , - 318 , - 2517 , - 5048 , - 2599 , - 482 , - 4009 , - 2556 , - 1435 , - 646 , - 189 , - 64 , - 271 , - 810 , - 1681 , - 2884 , - 4419 , - 974 , - 3173 , - 392 , - 3255 , - 1138 , - 4665 , - 3212 , - 2091 , - 1302 , - 845 , - 720 , - 927 , - 1466 , - 2337 , - 3540 , - 5075 , - 1630 , - 3829 , - 1048 , - 3911 , - 1794 , - 9 , - 3868 , - 2747 , - 1958 , - 1501 , - 1376 , - 1583 , - 2122 , - 2993 , - 4196 , - 419 , - 2286 , - 4485 , - 1704 , - 4567 , - 2450 , - 665 , - 4524 , - 3403 , - 2614 , - 2157 , - 2032 , - 2239 , - 2778 , - 3649 , - 4852 , - 1075 , - 2942 , - 5141 , - 2360 , - 5223 , - 3106 , - 1321 , - 5180 , - 4059 , - 3270 , - 2813 , - 2688 , - 2895 , - 3434 , - 4305 , - 196 , - 1731 , - 3598 , - 485 , - 3016 , - 567 , - 3762 , - 1977 , - 524 , - 4715 , - 3926 , - 3469 , - 3344 , - 3551 , - 4090 , - 4961 , - 852 , - 2387 , - 4254 , - 1141 , - 3672 , - 1223 , - 4418 , - 2633 , - 1180 , - 59 , - 4582 , - 4125 , - 4000 , - 4207 , - 4746 , - 305 , - 1508 , - 3043 , - 4910 , - 1797 , - 4328 , - 1879 , - 5074 , - 3289 , - 1836 , - 715 , - 5238 , - 4781 , - 4656 , - 4863 , - 90 , - 961 , - 2164 , - 3699 , - 254 , - 2453 , - 4984 , - 2535 , - 418 , - 3945 , - 2492 , - 1371 , - 582 , - 125 , - 0 , - 587 , - 1846 , - 3777 , - 1004 , - 4279 , - 2850 , - 2093 , - 2008 , - 2595 , - 3854 , - 409 , - 3012 , - 911 , - 4858 , - 4101 , - 4016 , - 4603 , - 486 , - 2417 , - 5020 , - 2919 , - 1490 , - 733 , - 648 , - 1235 , - 2494 , - 4425 , - 1652 , - 4927 , - 3498 , - 2741 , - 2656 , - 3243 , - 4502 , - 1057 , - 3660 , - 1559 , - 130 , - 4749 , - 4664 , - 5251 , - 1134 , - 3065 , - 292 , - 3567 , - 2138 , - 1381 , - 1296 , - 1883 , - 3142 , - 5073 , - 2300 , - 199 , - 4146 , - 3389 , - 3304 , - 3891 , - 5150 , - 1705 , - 4308 , - 2207 , - 778 , - 21 , - 5312 , - 523 , - 1782 , - 3713 , - 940 , - 4215 , - 2786 , - 2029 , - 1944 , - 2531 , - 3790 , - 345 , - 2948 , - 847 , - 4794 , - 4037 , - 3952 , - 4539 , - 422 , - 2353 , - 4956 , - 2855 , - 1426 , - 669 , - 584 , - 1171 , - 2430 , - 4361 , - 1588 , - 4863 , - 3434 , - 2677 , - 2592 , - 3179 , - 4438 , - 993 , - 3596 , - 1495 , - 66 , - 4685 , - 4600 , - 5187 , - 1070 , - 3001 , - 228 , - 3503 , - 2074 , - 1317 , - 1232 , - 1819 , - 3078 , - 5009 , - 2236 , - 135 , - 4082 , - 3325 , - 3240 , - 3827 , - 5086 , - 1641 , - 4244 , - 2143 , - 714 , - 5333 , - 5248 , - 459 , - 1718 , - 3649 , - 876 , - 4151 , - 2722 , - 1965 , - 1880 , - 2467 , - 3726 , - 281 , - 2884 , - 783 , - 4730 , - 3973 , - 3888 , - 4475 , - 358 , - 2289 , - 4892 , - 2791 , - 1362 , - 605 , - 520 , - 1107 , - 2366 , - 4297 , - 1524 , - 4799 , - 3370 , - 2613 , - 2528 , - 3115 , - 4374 , - 929 , - 3532 , - 1431 , - 2 , - 4621 , - 4536 , - 5123 , - 1006 , - 2937 , - 164 , - 3439 , - 2010 , - 1253 , - 1168 , - 1755 , - 3014 , - 4945 , - 2172 , - 71 , - 4018 , - 3261 , - 3176 , - 3763 , - 5022 , - 1577 , - 4180 , - 2079 , - 650 , - 5269 , - 5184 , - 395 , - 1654 , - 3585 , - 812 , - 4087 , - 2658 , - 1901 , - 1816 , - 2403 , - 3662 , - 217 , - 2820 , - 719 , - 4666 , - 3909 , - 3824 , - 4411 , - 294 , - 2225 , - 4828 , - 2727 , - 1298 , - 541 , - 456 , - 1043 , - 2302 , - 4233 , - 1460 , - 4735 , - 3306 , - 2549 , - 2464 , - 3051 , - 4310 , - 865 , - 3468 , - 1367 , - 5314 , - 4557 , - 4472 , - 5059 , - 942 , - 2873 , - 100 , - 3375 , - 1946 , - 1189 , - 1104 , - 1691 , - 2950 , - 4881 , - 2108 , - 7 , - 3954 , - 3197 , - 3112 , - 3699 , - 4958 , - 1513 , - 4116 , - 2015 , - 586 , - 5205 , - 5120 , - 331 , - 1590 , - 3521 , - 748 , - 4023 , - 2594 , - 1837 , - 1752 , - 2339 , - 3598 , - 153 , - 2756 , - 655 , - 4602 , - 3845 , - 3760 , - 4347 , - 230 , - 2161 , - 4764 , - 2663 , - 1234 , - 477 , - 392 , - 979 , - 2238 , - 4169 , - 1396 , - 4671 , - 3242 , - 2485 , - 2400 , - 2987 , - 4246 , - 801 , - 3404 , - 1303 , - 5250 , - 4493 , - 4408 , - 4995 , - 878 , - 2809 , - 36 , - 3311 , - 1882 , - 1125 , - 1040 , - 1627 , - 2886 , - 4817 , - 2044 , - 5319 , - 3890 , - 3133 , - 3048 , - 3635 , - 4894 , - 1449 , - 4052 , - 1951 , - 522 , - 5141 , - 5056 , - 267 , - 1526 , - 3457 , - 684 , - 3959 , - 2530 , - 1773 , - 1688 , - 2275 , - 3534 , - 89 , - 2692 , - 591 , - 4538 , - 3781 , - 3696 , - 4283 , - 166 , - 2097 , - 4700 , - 2599 , - 1170 , - 413 , - 328 , - 915 , - 2174 , - 4105 , - 1332 , - 4607 , - 3178 , - 2421 , - 2336 , - 2923 , - 4182 , - 737 , - 3340 , - 1239 , - 5186 , - 4429 , - 4344 , - 4931 , - 814 , - 2745 , - 5348 , - 3247 , - 1818 , - 1061 , - 976 , - 1563 , - 2822 , - 4753 , - 1980 , - 5255 , - 3826 , - 3069 , - 2984 , - 3571 , - 4830 , - 1385 , - 3988 , - 1887 , - 458 , - 5077 , - 4992 , - 203 , - 1462 , - 3393 , - 620 , - 3895 , - 2466 , - 1709 , - 1624 , - 2211 , - 3470 , - 25 , - 2628 , - 527 , - 4474 , - 3717 , - 3632 , - 4219 , - 102 , - 2033 , - 4636 , - 2535 , - 1106 , - 349 , - 264 , - 851 , - 2110 , - 4041 , - 1268 , - 4543 , - 3114 , - 2357 , - 2272 , - 2859 , - 4118 , - 673 , - 3276 , - 1175 , - 5122 , - 4365 , - 4280 , - 4867 , - 750 , - 2681 , - 5284 , - 3183 , - 1754 , - 997 , - 912 , - 1499 , - 2758 , - 4689 , - 1916 , - 5191 , - 3762 , - 3005 , - 2920 , - 3507 , - 4766 , - 1321 , - 3924 , - 1823 , - 394 , - 5013 , - 4928 , - 139 , - 1398 , - 3329 , - 556 , - 3831 , - 2402 , - 1645 , - 1560 , - 2147 , - 3406 , - 5337 , - 2564 , - 463 , - 4410 , - 3653 , - 3568 , - 4155 , - 38 , - 1969 , - 4572 , - 2471 , - 1042 , - 285 , - 200 , - 787 , - 2046 , - 3977 , - 1204 , - 4479 , - 3050 , - 2293 , - 2208 , - 2795 , - 4054 , - 609 , - 3212 , - 1111 , - 5058 , - 4301 , - 4216 , - 4803 , - 686 , - 2617 , - 5220 , - 3119 , - 1690 , - 933 , - 848 , - 1435 , - 2694 , - 4625 , - 1852 , - 5127 , - 3698 , - 2941 , - 2856 , - 3443 , - 4702 , - 1257 , - 3860 , - 1759 , - 330 , - 4949 , - 4864 , - 75 , - 1334 , - 3265 , - 492 , - 3767 , - 2338 , - 1581 , - 1496 , - 2083 , - 3342 , - 5273 , - 2500 , - 399 , - 4346 , - 3589 , - 3504 , - 4091 , - 5350 , - 1905 , - 4508 , - 2407 , - 978 , - 221 , - 136 , - 723 , - 1982 , - 3913 , - 1140 , - 4415 , - 2986 , - 2229 , - 2144 , - 2731 , - 3990 , - 545 , - 3148 , - 1047 , - 4994 , - 4237 , - 4152 , - 4739 , - 622 , - 2553 , - 5156 , - 3055 , - 1626 , - 869 , - 784 , - 1371 , - 2630 , - 4561 , - 1788 , - 5063 , - 3634 , - 2877 , - 2792 , - 3379 , - 4638 , - 1193 , - 3796 , - 1695 , - 266 , - 4885 , - 4800 , - 11 , - 1270 , - 3201 , - 428 , - 3703 , - 2274 , - 1517 , - 1432 , - 2019 , - 3278 , - 5209 , - 2436 , - 335 , - 4282 , - 3525 , - 3440 , - 4027 , - 5286 , - 1841 , - 4444 , - 2343 , - 914 , - 157 , - 72 , - 659 , - 1918 , - 3849 , - 1076 , - 4351 , - 2922 , - 2165 , - 2080 , - 2667 , - 3926 , - 481 , - 3084 , - 983 , - 4930 , - 4173 , - 4088 , - 4675 , - 558 , - 2489 , - 5092 , - 2991 , - 1562 , - 805 , - 720 , - 1307 , - 2566 , - 4497 , - 1724 , - 4999 , - 3570 , - 2813 , - 2728 , - 3315 , - 4574 , - 1129 , - 3732 , - 1631 , - 202 , - 4821 , - 4736 , - 5323 , - 1206 , - 3137 , - 364 , - 3639 , - 2210 , - 1453 , - 1368 , - 1955 , - 3214 , - 5145 , - 2372 , - 271 , - 4218 , - 3461 , - 3376 , - 3963 , - 5222 , - 1777 , - 4380 , - 2279 , - 850 , - 93 , - 8 , - 595 , - 1854 , - 3785 , - 1012 , - 4287 , - 2858 , - 2101 , - 2016 , - 2603 , - 3862 , - 417 , - 3020 , - 919 , - 4866 , - 4109 , - 4024 , - 4611 , - 494 , - 2425 , - 5028 , - 2927 , - 1498 , - 741 , - 656 , - 1243 , - 2502 , - 4433 , - 1660 , - 4935 , - 3506 , - 2749 , - 2664 , - 3251 , - 4510 , - 1065 , - 3668 , - 1567 , - 138 , - 4757 , - 4672 , - 5259 , - 1142 , - 3073 , - 300 , - 3575 , - 2146 , - 1389 , - 1304 , - 1891 , - 3150 , - 5081 , - 2308 , - 207 , - 4154 , - 3397 , - 3312 , - 3899 , - 5158 , - 1713 , - 4316 , - 2215 , - 786 , - 29 , - 5320 , - 531 , - 1790 , - 3721 , - 948 , - 4223 , - 2794 , - 2037 , - 1952 , - 2539 , - 3798 , - 353 , - 2956 , - 855 , - 4802 , - 4045 , - 3960 , - 4547 , - 430 , - 2361 , - 4964 , - 2863 , - 1434 , - 677 , - 592 , - 1179 , - 2438 , - 4369 , - 1596 , - 4871 , - 3442 , - 2685 , - 2600 , - 3187 , - 4446 , - 1001 , - 3604 , - 1503 , - 74 , - 4693 , - 4608 , - 5195 , - 1078 , - 3009 , - 236 , - 3511 , - 2082 , - 1325 , - 1240 , - 1827 , - 3086 , - 5017 , - 2244 , - 143 , - 4090 , - 3333 , - 3248 , - 3835 , - 5094 , - 1649 , - 4252 , - 2151 , - 722 , - 5341 , - 5256 , - 467 , - 1726 , - 3657 , - 884 , - 4159 , - 2730 , - 1973 , - 1888 , - 2475 , - 3734 , - 289 , - 2892 , - 791 , - 4738 , - 3981 , - 3896 , - 4483 , - 366 , - 2297 , - 4900 , - 2799 , - 1370 , - 613 , - 528 , - 1115 , - 2374 , - 4305 , - 1532 , - 4807 , - 3378 , - 2621 , - 2536 , - 3123 , - 4382 , - 937 , - 3540 , - 1439 , - 10 , - 4629 , - 4544 , - 5131 , - 1014 , - 2945 , - 172 , - 3447 , - 2018 , - 1261 , - 1176 , - 1763 , - 3022 , - 4953 , - 2180 , - 79 , - 4026 , - 3269 , - 3184 , - 3771 , - 5030 , - 1585 , - 4188 , - 2087 , - 658 , - 5277 , - 5192 , - 403 , - 1662 , - 3593 , - 820 , - 4095 , - 2666 , - 1909 , - 1824 , - 2411 , - 3670 , - 225 , - 2828 , - 727 , - 4674 , - 3917 , - 3832 , - 4419 , - 302 , - 2233 , - 4836 , - 2735 , - 1306 , - 549 , - 464 , - 1051 , - 2310 , - 4241 , - 1468 , - 4743 , - 3314 , - 2557 , - 2472 , - 3059 , - 4318 , - 873 , - 3476 , - 1375 , - 5322 , - 4565 , - 4480 , - 5067 , - 950 , - 2881 , - 108 , - 3383 , - 1954 , - 1197 , - 1112 , - 1699 , - 2958 , - 4889 , - 2116 , - 15 , - 3962 , - 3205 , - 3120 , - 3707 , - 4966 , - 1521 , - 4124 , - 2023 , - 594 , - 5213 , - 5128 , - 339 , - 1598 , - 3529 , - 756 , - 4031 , - 2602 , - 1845 , - 1760 , - 2347 , - 3606 , - 161 , - 2764 , - 663 , - 4610 , - 3853 , - 3768 , - 4355 , - 238 , - 2169 , - 4772 , - 2671 , - 1242 , - 485 , - 400 , - 987 , - 2246 , - 4177 , - 1404 , - 4679 , - 3250 , - 2493 , - 2408 , - 2995 , - 4254 , - 809 , - 3412 , - 1311 , - 5258 , - 4501 , - 4416 , - 5003 , - 886 , - 2817 , - 44 , - 3319 , - 1890 , - 1133 , - 1048 , - 1635 , - 2894 , - 4825 , - 2052 , - 5327 , - 3898 , - 3141 , - 3056 , - 3643 , - 4902 , - 1457 , - 4060 , - 1959 , - 530 , - 5149 , - 5064 , - 275 , - 1534 , - 3465 , - 692 , - 3967 , - 2538 , - 1781 , - 1696 , - 2283 , - 3542 , - 97 , - 2700 , - 599 , - 4546 , - 3789 , - 3704 , - 4291 , - 174 , - 2105 , - 4708 , - 2607 , - 1178 , - 421 , - 336 , - 923 , - 2182 , - 4113 , - 1340 , - 4615 , - 3186 , - 2429 , - 2344 , - 2931 , - 4190 , - 745 , - 3348 , - 1247 , - 5194 , - 4437 , - 4352 , - 4939 , - 822 , - 2753 , - 5356 , - 3255 , - 1826 , - 1069 , - 984 , - 1571 , - 2830 , - 4761 , - 1988 , - 5263 , - 3834 , - 3077 , - 2992 , - 3579 , - 4838 , - 1393 , - 3996 , - 1895 , - 466 , - 5085 , - 5000 , - 211 , - 1470 , - 3401 , - 628 , - 3903 , - 2474 , - 1717 , - 1632 , - 2219 , - 3478 , - 33 , - 2636 , - 535 , - 4482 , - 3725 , - 3640 , - 4227 , - 110 , - 2041 , - 4644 , - 2543 , - 1114 , - 357 , - 272 , - 859 , - 2118 , - 4049 , - 1276 , - 4551 , - 3122 , - 2365 , - 2280 , - 2867 , - 4126 , - 681 , - 3284 , - 1183 , - 5130 , - 4373 , - 4288 , - 4875 , - 758 , - 2689 , - 5292 , - 3191 , - 1762 , - 1005 , - 920 , - 1507 , - 2766 , - 4697 , - 1924 , - 5199 , - 3770 , - 3013 , - 2928 , - 3515 , - 4774 , - 1329 , - 3932 , - 1831 , - 402 , - 5021 , - 4936 , - 147 , - 1406 , - 3337 , - 564 , - 3839 , - 2410 , - 1653 , - 1568 , - 2155 , - 3414 , - 5345 , - 2572 , - 471 , - 4418 , - 3661 , - 3576 , - 4163 , - 46 , - 1977 , - 4580 , - 2479 , - 1050 , - 293 , - 208 , - 795 , - 2054 , - 3985 , - 1212 , - 4487 , - 3058 , - 2301 , - 2216 , - 2803 , - 4062 , - 617 , - 3220 , - 1119 , - 5066 , - 4309 , - 4224 , - 4811 , - 694 , - 2625 , - 5228 , - 3127 , - 1698 , - 941 , - 856 , - 1443 , - 2702 , - 4633 , - 1860 , - 5135 , - 3706 , - 2949 , - 2864 , - 3451 , - 4710 , - 1265 , - 3868 , - 1767 , - 338 , - 4957 , - 4872 , - 83 , - 1342 , - 3273 , - 500 , - 3775 , - 2346 , - 1589 , - 1504 , - 2091 , - 3350 , - 5281 , - 2508 , - 407 , - 4354 , - 3597 , - 3512 , - 4099 , - 5358 , - 1913 , - 4516 , - 2415 , - 986 , - 229 , - 144 , - 731 , - 1990 , - 3921 , - 1148 , - 4423 , - 2994 , - 2237 , - 2152 , - 2739 , - 3998 , - 553 , - 3156 , - 1055 , - 5002 , - 4245 , - 4160 , - 4747 , - 630 , - 2561 , - 5164 , - 3063 , - 1634 , - 877 , - 792 , - 1379 , - 2638 , - 4569 , - 1796 , - 5071 , - 3642 , - 2885 , - 2800 , - 3387 , - 4646 , - 1201 , - 3804 , - 1703 , - 274 , - 4893 , - 4808 , - 19 , - 1278 , - 3209 , - 436 , - 3711 , - 2282 , - 1525 , - 1440 , - 2027 , - 3286 , - 5217 , - 2444 , - 343 , - 4290 , - 3533 , - 3448 , - 4035 , - 5294 , - 1849 , - 4452 , - 2351 , - 922 , - 165 , - 80 , - 667 , - 1926 , - 3857 , - 1084 , - 4359 , - 2930 , - 2173 , - 2088 , - 2675 , - 3934 , - 489 , - 3092 , - 991 , - 4938 , - 4181 , - 4096 , - 4683 , - 566 , - 2497 , - 5100 , - 2999 , - 1570 , - 813 , - 728 , - 1315 , - 2574 , - 4505 , - 1732 , - 5007 , - 3578 , - 2821 , - 2736 , - 3323 , - 4582 , - 1137 , - 3740 , - 1639 , - 210 , - 4829 , - 4744 , - 5331 , - 1214 , - 3145 , - 372 , - 3647 , - 2218 , - 1461 , - 1376 , - 1963 , - 3222 , - 5153 , - 2380 , - 279 , - 4226 , - 3469 , - 3384 , - 3971 , - 5230 , - 1785 , - 4388 , - 2287 , - 858 , - 101 , - 16 , - 603 , - 1862 , - 3793 , - 1020 , - 4295 , - 2866 , - 2109 , - 2024 , - 2611 , - 3870 , - 425 , - 3028 , - 927 , - 4874 , - 4117 , - 4032 , - 4619 , - 502 , - 2433 , - 5036 , - 2935 , - 1506 , - 749 , - 664 , - 1251 , - 2510 , - 4441 , - 1668 , - 4943 , - 3514 , - 2757 , - 2672 , - 3259 , - 4518 , - 1073 , - 3676 , - 1575 , - 146 , - 4765 , - 4680 , - 5267 , - 1150 , - 3081 , - 308 , - 3583 , - 2154 , - 1397 , - 1312 , - 1899 , - 3158 , - 5089 , - 2316 , - 215 , - 4162 , - 3405 , - 3320 , - 3907 , - 5166 , - 1721 , - 4324 , - 2223 , - 794 , - 37 , - 5328 , - 539 , - 1798 , - 3729 , - 956 , - 4231 , - 2802 , - 2045 , - 1960 , - 2547 , - 3806 , - 361 , - 2964 , - 863 , - 4810 , - 4053 , - 3968 , - 4555 , - 438 , - 2369 , - 4972 , - 2871 , - 1442 , - 685 , - 600 , - 1187 , - 2446 , - 4377 , - 1604 , - 4879 , - 3450 , - 2693 , - 2608 , - 3195 , - 4454 , - 1009 , - 3612 , - 1511 , - 82 , - 4701 , - 4616 , - 5203 , - 1086 , - 3017 , - 244 , - 3519 , - 2090 , - 1333 , - 1248 , - 1835 , - 3094 , - 5025 , - 2252 , - 151 , - 4098 , - 3341 , - 3256 , - 3843 , - 5102 , - 1657 , - 4260 , - 2159 , - 730 , - 5349 , - 5264 , - 475 , - 1734 , - 3665 , - 892 , - 4167 , - 2738 , - 1981 , - 1896 , - 2483 , - 3742 , - 297 , - 2900 , - 799 , - 4746 , - 3989 , - 3904 , - 4491 , - 374 , - 2305 , - 4908 , - 2807 , - 1378 , - 621 , - 536 , - 1123 , - 2382 , - 4313 , - 1540 , - 4815 , - 3386 , - 2629 , - 2544 , - 3131 , - 4390 , - 945 , - 3548 , - 1447 , - 18 , - 4637 , - 4552 , - 5139 , - 1022 , - 2953 , - 180 , - 3455 , - 2026 , - 1269 , - 1184 , - 1771 , - 3030 , - 4961 , - 2188 , - 87 , - 4034 , - 3277 , - 3192 , - 3779 , - 5038 , - 1593 , - 4196 , - 2095 , - 666 , - 5285 , - 5200 , - 411 , - 1670 , - 3601 , - 828 , - 4103 , - 2674 , - 1917 , - 1832 , - 2419 , - 3678 , - 233 , - 2836 , - 735 , - 4682 , - 3925 , - 3840 , - 4427 , - 310 , - 2241 , - 4844 , - 2743 , - 1314 , - 557 , - 472 , - 1059 , - 2318 , - 4249 , - 1476 , - 4751 , - 3322 , - 2565 , - 2480 , - 3067 , - 4326 , - 881 , - 3484 , - 1383 , - 5330 , - 4573 , - 4488 , - 5075 , - 958 , - 2889 , - 116 , - 3391 , - 1962 , - 1205 , - 1120 , - 1707 , - 2966 , - 4897 , - 2124 , - 23 , - 3970 , - 3213 , - 3128 , - 3715 , - 4974 , - 1529 , - 4132 , - 2031 , - 602 , - 5221 , - 5136 , - 347 , - 1606 , - 3537 , - 764 , - 4039 , - 2610 , - 1853 , - 1768 , - 2355 , - 3614 , - 169 , - 2772 , - 671 , - 4618 , - 3861 , - 3776 , - 4363 , - 246 , - 2177 , - 4780 , - 2679 , - 1250 , - 493 , - 408 , - 995 , - 2254 , - 4185 , - 1412 , - 4687 , - 3258 , - 2501 , - 2416 , - 3003 , - 4262 , - 817 , - 3420 , - 1319 , - 5266 , - 4509 , - 4424 , - 5011 , - 894 , - 2825 , - 52 , - 3327 , - 1898 , - 1141 , - 1056 , - 1643 , - 2902 , - 4833 , - 2060 , - 5335 , - 3906 , - 3149 , - 3064 , - 3651 , - 4910 , - 1465 , - 4068 , - 1967 , - 538 , - 5157 , - 5072 , - 283 , - 1542 , - 3473 , - 700 , - 3975 , - 2546 , - 1789 , - 1704 , - 2291 , - 3550 , - 105 , - 2708 , - 607 , - 4554 , - 3797 , - 3712 , - 4299 , - 182 , - 2113 , - 4716 , - 2615 , - 1186 , - 429 , - 344 , - 931 , - 2190 , - 4121 , - 1348 , - 4623 , - 3194 , - 2437 , - 2352 , - 2939 , - 4198 , - 753 , - 3356 , - 1255 , - 5202 , - 4445 , - 4360 , - 4947 , - 830 , - 2761 , - 5364 , - 3263 , - 1834 , - 1077 , - 992 , - 1579 , - 2838 , - 4769 , - 1996 , - 5271 , - 3842 , - 3085 , - 3000 , - 3587 , - 4846 , - 1401 , - 4004 , - 1903 , - 474 , - 5093 , - 5008 , - 219 , - 1478 , - 3409 , - 636 , - 3911 , - 2482 , - 1725 , - 1640 , - 2227 , - 3486 , - 41 , - 2644 , - 543 , - 4490 , - 3733 , - 3648 , - 4235 , - 118 , - 2049 , - 4652 , - 2551 , - 1122 , - 365 , - 280 , - 867 , - 2126 , - 4057 , - 1284 , - 4559 , - 3130 , - 2373 , - 2288 , - 2875 , - 4134 , - 689 , - 3292 , - 1191 , - 5138 , - 4381 , - 4296 , - 4883 , - 766 , - 2697 , - 5300 , - 3199 , - 1770 , - 1013 , - 928 , - 1515 , - 2774 , - 4705 , - 1932 , - 5207 , - 3778 , - 3021 , - 2936 , - 3523 , - 4782 , - 1337 , - 3940 , - 1839 , - 410 , - 5029 , - 4944 , - 155 , - 1414 , - 3345 , - 572 , - 3847 , - 2418 , - 1661 , - 1576 , - 2163 , - 3422 , - 5353 , - 2580 , - 479 , - 4426 , - 3669 , - 3584 , - 4171 , - 54 , - 1985 , - 4588 , - 2487 , - 1058 , - 301 , - 216 , - 803 , - 2062 , - 3993 , - 1220 , - 4495 , - 3066 , - 2309 , - 2224 , - 2811 , - 4070 , - 625 , - 3228 , - 1127 , - 5074 , - 4317 , - 4232 , - 4819 , - 702 , - 2633 , - 5236 , - 3135 , - 1706 , - 949 , - 864 , - 1451 , - 2710 , - 4641 , - 1868 , - 5143 , - 3714 , - 2957 , - 2872 , - 3459 , - 4718 , - 1273 , - 3876 , - 1775 , - 346 , - 4965 , - 4880 , - 91 , - 1350 , - 3281 , - 508 , - 3783 , - 2354 , - 1597 , - 1512 , - 2099 , - 3358 , - 5289 , - 2516 , - 415 , - 4362 , - 3605 , - 3520 , - 4107 , - 5366 , - 1921 , - 4524 , - 2423 , - 994 , - 237 , - 152 , - 739 , - 1998 , - 3929 , - 1156 , - 4431 , - 3002 , - 2245 , - 2160 , - 2747 , - 4006 , - 561 , - 3164 , - 1063 , - 5010 , - 4253 , - 4168 , - 4755 , - 638 , - 2569 , - 5172 , - 3071 , - 1642 , - 885 , - 800 , - 1387 , - 2646 , - 4577 , - 1804 , - 5079 , - 3650 , - 2893 , - 2808 , - 3395 , - 4654 , - 1209 , - 3812 , - 1711 , - 282 , - 4901 , - 4816 , - 27 , - 1286 , - 3217 , - 444 , - 3719 , - 2290 , - 1533 , - 1448 , - 2035 , - 3294 , - 5225 , - 2452 , - 351 , - 4298 , - 3541 , - 3456 , - 4043 , - 5302 , - 1857 , - 4460 , - 2359 , - 930 , - 173 , - 88 , - 675 , - 1934 , - 3865 , - 1092 , - 4367 , - 2938 , - 2181 , - 2096 , - 2683 , - 3942 , - 497 , - 3100 , - 999 , - 4946 , - 4189 , - 4104 , - 4691 , - 574 , - 2505 , - 5108 , - 3007 , - 1578 , - 821 , - 736 , - 1323 , - 2582 , - 4513 , - 1740 , - 5015 , - 3586 , - 2829 , - 2744 , - 3331 , - 4590 , - 1145 , - 3748 , - 1647 , - 218 , - 4837 , - 4752 , - 5339 , - 1222 , - 3153 , - 380 , - 3655 , - 2226 , - 1469 , - 1384 , - 1971 , - 3230 , - 5161 , - 2388 , - 287 , - 4234 , - 3477 , - 3392 , - 3979 , - 5238 , - 1793 , - 4396 , - 2295 , - 866 , - 109 , - 24 , - 611 , - 1870 , - 3801 , - 1028 , - 4303 , - 2874 , - 2117 , - 2032 , - 2619 , - 3878 , - 433 , - 3036 , - 935 , - 4882 , - 4125 , - 4040 , - 4627 , - 510 , - 2441 , - 5044 , - 2943 , - 1514 , - 757 , - 672 , - 1259 , - 2518 , - 4449 , - 1676 , - 4951 , - 3522 , - 2765 , - 2680 , - 3267 , - 4526 , - 1081 , - 3684 , - 1583 , - 154 , - 4773 , - 4688 , - 5275 , - 1158 , - 3089 , - 316 , - 3591 , - 2162 , - 1405 , - 1320 , - 1907 , - 3166 , - 5097 , - 2324 , - 223 , - 4170 , - 3413 , - 3328 , - 3915 , - 5174 , - 1729 , - 4332 , - 2231 , - 802 , - 45 , - 5336 , - 547 , - 1806 , - 3737 , - 964 , - 4239 , - 2810 , - 2053 , - 1968 , - 2555 , - 3814 , - 369 , - 2972 , - 871 , - 4818 , - 4061 , - 3976 , - 4563 , - 446 , - 2377 , - 4980 , - 2879 , - 1450 , - 693 , - 608 , - 1195 , - 2454 , - 4385 , - 1612 , - 4887 , - 3458 , - 2701 , - 2616 , - 3203 , - 4462 , - 1017 , - 3620 , - 1519 , - 90 , - 4709 , - 4624 , - 5211 , - 1094 , - 3025 , - 252 , - 3527 , - 2098 , - 1341 , - 1256 , - 1843 , - 3102 , - 5033 , - 2260 , - 159 , - 4106 , - 3349 , - 3264 , - 3851 , - 5110 , - 1665 , - 4268 , - 2167 , - 738 , - 5357 , - 5272 , - 483 , - 1742 , - 3673 , - 900 , - 4175 , - 2746 , - 1989 , - 1904 , - 2491 , - 3750 , - 305 , - 2908 , - 807 , - 4754 , - 3997 , - 3912 , - 4499 , - 382 , - 2313 , - 4916 , - 2815 , - 1386 , - 629 , - 544 , - 1131 , - 2390 , - 4321 , - 1548 , - 4823 , - 3394 , - 2637 , - 2552 , - 3139 , - 4398 , - 953 , - 3556 , - 1455 , - 26 , - 4645 , - 4560 , - 5147 , - 1030 , - 2961 , - 188 , - 3463 , - 2034 , - 1277 , - 1192 , - 1779 , - 3038 , - 4969 , - 2196 , - 95 , - 4042 , - 3285 , - 3200 , - 3787 , - 5046 , - 1601 , - 4204 , - 2103 , - 674 , - 5293 , - 5208 , - 419 , - 1678 , - 3609 , - 836 , - 4111 , - 2682 , - 1925 , - 1840 , - 2427 , - 3686 , - 241 , - 2844 , - 743 , - 4690 , - 3933 , - 3848 , - 4435 , - 318 , - 2249 , - 4852 , - 2751 , - 1322 , - 565 , - 480 , - 1067 , - 2326 , - 4257 , - 1484 , - 4759 , - 3330 , - 2573 , - 2488 , - 3075 , - 4334 , - 889 , - 3492 , - 1391 , - 5338 , - 4581 , - 4496 , - 5083 , - 966 , - 2897 , - 124 , - 3399 , - 1970 , - 1213 , - 1128 , - 1715 , - 2974 , - 4905 , - 2132 , - 31 , - 3978 , - 3221 , - 3136 , - 3723 , - 4982 , - 1537 , - 4140 , - 2039 , - 610 , - 5229 , - 5144 , - 355 , - 1614 , - 3545 , - 772 , - 4047 , - 2618 , - 1861 , - 1776 , - 2363 , - 3622 , - 177 , - 2780 , - 679 , - 4626 , - 3869 , - 3784 , - 4371 , - 254 , - 2185 , - 4788 , - 2687 , - 1258 , - 501 , - 416 , - 1003 , - 2262 , - 4193 , - 1420 , - 4695 , - 3266 , - 2509 , - 2424 , - 3011 , - 4270 , - 825 , - 3428 , - 1327 , - 5274 , - 4517 , - 4432 , - 5019 , - 902 , - 2833 , - 60 , - 3335 , - 1906 , - 1149 , - 1064 , - 1651 , - 2910 , - 4841 , - 2068 , - 5343 , - 3914 , - 3157 , - 3072 , - 3659 , - 4918 , - 1473 , - 4076 , - 1975 , - 546 , - 5165 , - 5080 , - 291 , - 1550 , - 3481 , - 708 , - 3983 , - 2554 , - 1797 , - 1712 , - 2299 , - 3558 , - 113 , - 2716 , - 615 , - 4562 , - 3805 , - 3720 , - 4307 , - 190 , - 2121 , - 4724 , - 2623 , - 1194 , - 437 , - 352 , - 939 , - 2198 , - 4129 , - 1356 , - 4631 , - 3202 , - 2445 , - 2360 , - 2947 , - 4206 , - 761 , - 3364 , - 1263 , - 5210 , - 4453 , - 4368 , - 4955 , - 838 , - 2769 , - 5372 , - 3271 , - 1842 , - 1085 , - 1000 , - 1587 , - 2846 , - 4777 , - 2004 , - 5279 , - 3850 , - 3093 , - 3008 , - 3595 , - 4854 , - 1409 , - 4012 , - 1911 , - 482 , - 5101 , - 5016 , - 227 , - 1486 , - 3417 , - 644 , - 3919 , - 2490 , - 1733 , - 1648 , - 2235 , - 3494 , - 49 , - 2652 , - 551 , - 4498 , - 3741 , - 3656 , - 4243 , - 126 , - 2057 , - 4660 , - 2559 , - 1130 , - 373 , - 288 , - 875 , - 2134 , - 4065 , - 1292 , - 4567 , - 3138 , - 2381 , - 2296 , - 2883 , - 4142 , - 697 , - 3300 , - 1199 , - 5146 , - 4389 , - 4304 , - 4891 , - 774 , - 2705 , - 5308 , - 3207 , - 1778 , - 1021 , - 936 , - 1523 , - 2782 , - 4713 , - 1940 , - 5215 , - 3786 , - 3029 , - 2944 , - 3531 , - 4790 , - 1345 , - 3948 , - 1847 , - 418 , - 5037 , - 4952 , - 163 , - 1422 , - 3353 , - 580 , - 3855 , - 2426 , - 1669 , - 1584 , - 2171 , - 3430 , - 5361 , - 2588 , - 487 , - 4434 , - 3677 , - 3592 , - 4179 , - 62 , - 1993 , - 4596 , - 2495 , - 1066 , - 309 , - 224 , - 811 , - 2070 , - 4001 , - 1228 , - 4503 , - 3074 , - 2317 , - 2232 , - 2819 , - 4078 , - 633 , - 3236 , - 1135 , - 5082 , - 4325 , - 4240 , - 4827 , - 710 , - 2641 , - 5244 , - 3143 , - 1714 , - 957 , - 872 , - 1459 , - 2718 , - 4649 , - 1876 , - 5151 , - 3722 , - 2965 , - 2880 , - 3467 , - 4726 , - 1281 , - 3884 , - 1783 , - 354 , - 4973 , - 4888 , - 99 , - 1358 , - 3289 , - 516 , - 3791 , - 2362 , - 1605 , - 1520 , - 2107 , - 3366 , - 5297 , - 2524 , - 423 , - 4370 , - 3613 , - 3528 , - 4115 , - 5374 , - 1929 , - 4532 , - 2431 , - 1002 , - 245 , - 160 , - 747 , - 2006 , - 3937 , - 1164 , - 4439 , - 3010 , - 2253 , - 2168 , - 2755 , - 4014 , - 569 , - 3172 , - 1071 , - 5018 , - 4261 , - 4176 , - 4763 , - 646 , - 2577 , - 5180 , - 3079 , - 1650 , - 893 , - 808 , - 1395 , - 2654 , - 4585 , - 1812 , - 5087 , - 3658 , - 2901 , - 2816 , - 3403 , - 4662 , - 1217 , - 3820 , - 1719 , - 290 , - 4909 , - 4824 , - 35 , - 1294 , - 3225 , - 452 , - 3727 , - 2298 , - 1541 , - 1456 , - 2043 , - 3302 , - 5233 , - 2460 , - 359 , - 4306 , - 3549 , - 3464 , - 4051 , - 5310 , - 1865 , - 4468 , - 2367 , - 938 , - 181 , - 96 , - 683 , - 1942 , - 3873 , - 1100 , - 4375 , - 2946 , - 2189 , - 2104 , - 2691 , - 3950 , - 505 , - 3108 , - 1007 , - 4954 , - 4197 , - 4112 , - 4699 , - 582 , - 2513 , - 5116 , - 3015 , - 1586 , - 829 , - 744 , - 1331 , - 2590 , - 4521 , - 1748 , - 5023 , - 3594 , - 2837 , - 2752 , - 3339 , - 4598 , - 1153 , - 3756 , - 1655 , - 226 , - 4845 , - 4760 , - 5347 , - 1230 , - 3161 , - 388 , - 3663 , - 2234 , - 1477 , - 1392 , - 1979 , - 3238 , - 5169 , - 2396 , - 295 , - 4242 , - 3485 , - 3400 , - 3987 , - 5246 , - 1801 , - 4404 , - 2303 , - 874 , - 117 , - 32 , - 619 , - 1878 , - 3809 , - 1036 , - 4311 , - 2882 , - 2125 , - 2040 , - 2627 , - 3886 , - 441 , - 3044 , - 943 , - 4890 , - 4133 , - 4048 , - 4635 , - 518 , - 2449 , - 5052 , - 2951 , - 1522 , - 765 , - 680 , - 1267 , - 2526 , - 4457 , - 1684 , - 4959 , - 3530 , - 2773 , - 2688 , - 3275 , - 4534 , - 1089 , - 3692 , - 1591 , - 162 , - 4781 , - 4696 , - 5283 , - 1166 , - 3097 , - 324 , - 3599 , - 2170 , - 1413 , - 1328 , - 1915 , - 3174 , - 5105 , - 2332 , - 231 , - 4178 , - 3421 , - 3336 , - 3923 , - 5182 , - 1737 , - 4340 , - 2239 , - 810 , - 53 , - 5344 , - 555 , - 1814 , - 3745 , - 972 , - 4247 , - 2818 , - 2061 , - 1976 , - 2563 , - 3822 , - 377 , - 2980 , - 879 , - 4826 , - 4069 , - 3984 , - 4571 , - 454 , - 2385 , - 4988 , - 2887 , - 1458 , - 701 , - 616 , - 1203 , - 2462 , - 4393 , - 1620 , - 4895 , - 3466 , - 2709 , - 2624 , - 3211 , - 4470 , - 1025 , - 3628 , - 1527 , - 98 , - 4717 , - 4632 , - 5219 , - 1102 , - 3033 , - 260 , - 3535 , - 2106 , - 1349 , - 1264 , - 1851 , - 3110 , - 5041 , - 2268 , - 167 , - 4114 , - 3357 , - 3272 , - 3859 , - 5118 , - 1673 , - 4276 , - 2175 , - 746 , - 5365 , - 5280 , - 491 , - 1750 , - 3681 , - 908 , - 4183 , - 2754 , - 1997 , - 1912 , - 2499 , - 3758 , - 313 , - 2916 , - 815 , - 4762 , - 4005 , - 3920 , - 4507 , - 390 , - 2321 , - 4924 , - 2823 , - 1394 , - 637 , - 552 , - 1139 , - 2398 , - 4329 , - 1556 , - 4831 , - 3402 , - 2645 , - 2560 , - 3147 , - 4406 , - 961 , - 3564 , - 1463 , - 34 , - 4653 , - 4568 , - 5155 , - 1038 , - 2969 , - 196 , - 3471 , - 2042 , - 1285 , - 1200 , - 1787 , - 3046 , - 4977 , - 2204 , - 103 , - 4050 , - 3293 , - 3208 , - 3795 , - 5054 , - 1609 , - 4212 , - 2111 , - 682 , - 5301 , - 5216 , - 427 , - 1686 , - 3617 , - 844 , - 4119 , - 2690 , - 1933 , - 1848 , - 2435 , - 3694 , - 249 , - 2852 , - 751 , - 4698 , - 3941 , - 3856 , - 4443 , - 326 , - 2257 , - 4860 , - 2759 , - 1330 , - 573 , - 488 , - 1075 , - 2334 , - 4265 , - 1492 , - 4767 , - 3338 , - 2581 , - 2496 , - 3083 , - 4342 , - 897 , - 3500 , - 1399 , - 5346 , - 4589 , - 4504 , - 5091 , - 974 , - 2905 , - 132 , - 3407 , - 1978 , - 1221 , - 1136 , - 1723 , - 2982 , - 4913 , - 2140 , - 39 , - 3986 , - 3229 , - 3144 , - 3731 , - 4990 , - 1545 , - 4148 , - 2047 , - 618 , - 5237 , - 5152 , - 363 , - 1622 , - 3553 , - 780 , - 4055 , - 2626 , - 1869 , - 1784 , - 2371 , - 3630 , - 185 , - 2788 , - 687 , - 4634 , - 3877 , - 3792 , - 4379 , - 262 , - 2193 , - 4796 , - 2695 , - 1266 , - 509 , - 424 , - 1011 , - 2270 , - 4201 , - 1428 , - 4703 , - 3274 , - 2517 , - 2432 , - 3019 , - 4278 , - 833 , - 3436 , - 1335 , - 5282 , - 4525 , - 4440 , - 5027 , - 910 , - 2841 , - 68 , - 3343 , - 1914 , - 1157 , - 1072 , - 1659 , - 2918 , - 4849 , - 2076 , - 5351 , - 3922 , - 3165 , - 3080 , - 3667 , - 4926 , - 1481 , - 4084 , - 1983 , - 554 , - 5173 , - 5088 , - 299 , - 1558 , - 3489 , - 716 , - 3991 , - 2562 , - 1805 , - 1720 , - 2307 , - 3566 , - 121 , - 2724 , - 623 , - 4570 , - 3813 , - 3728 , - 4315 , - 198 , - 2129 , - 4732 , - 2631 , - 1202 , - 445 , - 360 , - 947 , - 2206 , - 4137 , - 1364 , - 4639 , - 3210 , - 2453 , - 2368 , - 2955 , - 4214 , - 769 , - 3372 , - 1271 , - 5218 , - 4461 , - 4376 , - 4963 , - 846 , - 2777 , - 4 , - 3279 , - 1850 , - 1093 , - 1008 , - 1595 , - 2854 , - 4785 , - 2012 , - 5287 , - 3858 , - 3101 , - 3016 , - 3603 , - 4862 , - 1417 , - 4020 , - 1919 , - 490 , - 5109 , - 5024 , - 235 , - 1494 , - 3425 , - 652 , - 3927 , - 2498 , - 1741 , - 1656 , - 2243 , - 3502 , - 57 , - 2660 , - 559 , - 4506 , - 3749 , - 3664 , - 4251 , - 134 , - 2065 , - 4668 , - 2567 , - 1138 , - 381 , - 296 , - 883 , - 2142 , - 4073 , - 1300 , - 4575 , - 3146 , - 2389 , - 2304 , - 2891 , - 4150 , - 705 , - 3308 , - 1207 , - 5154 , - 4397 , - 4312 , - 4899 , - 782 , - 2713 , - 5316 , - 3215 , - 1786 , - 1029 , - 944 , - 1531 , - 2790 , - 4721 , - 1948 , - 5223 , - 3794 , - 3037 , - 2952 , - 3539 , - 4798 , - 1353 , - 3956 , - 1855 , - 426 , - 5045 , - 4960 , - 171 , - 1430 , - 3361 , - 588 , - 3863 , - 2434 , - 1677 , - 1592 , - 2179 , - 3438 , - 5369 , - 2596 , - 495 , - 4442 , - 3685 , - 3600 , - 4187 , - 70 , - 2001 , - 4604 , - 2503 , - 1074 , - 317 , - 232 , - 819 , - 2078 , - 4009 , - 1236 , - 4511 , - 3082 , - 2325 , - 2240 , - 2827 , - 4086 , - 641 , - 3244 , - 1143 , - 5090 , - 4333 , - 4248 , - 4835 , - 718 , - 2649 , - 5252 , - 3151 , - 1722 , - 965 , - 880 , - 1467 , - 2726 , - 4657 , - 1884 , - 5159 , - 3730 , - 2973 , - 2888 , - 3475 , - 4734 , - 1289 , - 3892 , - 1791 , - 362 , - 4981 , - 4896 , - 107 , - 1366 , - 3297 , - 524 , - 3799 , - 2370 , - 1613 , - 1528 , - 2115 , - 3374 , - 5305 , - 2532 , - 431 , - 4378 , - 3621 , - 3536 , - 4123 , - 6 , - 1937 , - 4540 , - 2439 , - 1010 , - 253 , - 168 , - 755 , - 2014 , - 3945 , - 1172 , - 4447 , - 3018 , - 2261 , - 2176 , - 2763 , - 4022 , - 577 , - 3180 , - 1079 , - 5026 , - 4269 , - 4184 , - 4771 , - 654 , - 2585 , - 5188 , - 3087 , - 1658 , - 901 , - 816 , - 1403 , - 2662 , - 4593 , - 1820 , - 5095 , - 3666 , - 2909 , - 2824 , - 3411 , - 4670 , - 1225 , - 3828 , - 1727 , - 298 , - 4917 , - 4832 , - 43 , - 1302 , - 3233 , - 460 , - 3735 , - 2306 , - 1549 , - 1464 , - 2051 , - 3310 , - 5241 , - 2468 , - 367 , - 4314 , - 3557 , - 3472 , - 4059 , - 5318 , - 1873 , - 4476 , - 2375 , - 946 , - 189 , - 104 , - 691 , - 1950 , - 3881 , - 1108 , - 4383 , - 2954 , - 2197 , - 2112 , - 2699 , - 3958 , - 513 , - 3116 , - 1015 , - 4962 , - 4205 , - 4120 , - 4707 , - 590 , - 2521 , - 5124 , - 3023 , - 1594 , - 837 , - 752 , - 1339 , - 2598 , - 4529 , - 1756 , - 5031 , - 3602 , - 2845 , - 2760 , - 3347 , - 4606 , - 1161 , - 3764 , - 1663 , - 234 , - 4853 , - 4768 , - 5355 , - 1238 , - 3169 , - 396 , - 3671 , - 2242 , - 1485 , - 1400 , - 1987 , - 3246 , - 5177 , - 2404 , - 303 , - 4250 , - 3493 , - 3408 , - 3995 , - 5254 , - 1809 , - 4412 , - 2311 , - 882 , - 125 , - 40 , - 627 , - 1886 , - 3817 , - 1044 , - 4319 , - 2890 , - 2133 , - 2048 , - 2635 , - 3894 , - 449 , - 3052 , - 951 , - 4898 , - 4141 , - 4056 , - 4643 , - 526 , - 2457 , - 5060 , - 2959 , - 1530 , - 773 , - 688 , - 1275 , - 2534 , - 4465 , - 1692 , - 4967 , - 3538 , - 2781 , - 2696 , - 3283 , - 4542 , - 1097 , - 3700 , - 1599 , - 170 , - 4789 , - 4704 , - 5291 , - 1174 , - 3105 , - 332 , - 3607 , - 2178 , - 1421 , - 1336 , - 1923 , - 3182 , - 5113 , - 2340 , - 239 , - 4186 , - 3429 , - 3344 , - 3931 , - 5190 , - 1745 , - 4348 , - 2247 , - 818 , - 61 , - 5352 , - 563 , - 1822 , - 3753 , - 980 , - 4255 , - 2826 , - 2069 , - 1984 , - 2571 , - 3830 , - 385 , - 2988 , - 887 , - 4834 , - 4077 , - 3992 , - 4579 , - 462 , - 2393 , - 4996 , - 2895 , - 1466 , - 709 , - 624 , - 1211 , - 2470 , - 4401 , - 1628 , - 4903 , - 3474 , - 2717 , - 2632 , - 3219 , - 4478 , - 1033 , - 3636 , - 1535 , - 106 , - 4725 , - 4640 , - 5227 , - 1110 , - 3041 , - 268 , - 3543 , - 2114 , - 1357 , - 1272 , - 1859 , - 3118 , - 5049 , - 2276 , - 175 , - 4122 , - 3365 , - 3280 , - 3867 , - 5126 , - 1681 , - 4284 , - 2183 , - 754 , - 5373 , - 5288 , - 499 , - 1758 , - 3689 , - 916 , - 4191 , - 2762 , - 2005 , - 1920 , - 2507 , - 3766 , - 321 , - 2924 , - 823 , - 4770 , - 4013 , - 3928 , - 4515 , - 398 , - 2329 , - 4932 , - 2831 , - 1402 , - 645 , - 560 , - 1147 , - 2406 , - 4337 , - 1564 , - 4839 , - 3410 , - 2653 , - 2568 , - 3155 , - 4414 , - 969 , - 3572 , - 1471 , - 42 , - 4661 , - 4576 , - 5163 , - 1046 , - 2977 , - 204 , - 3479 , - 2050 , - 1293 , - 1208 , - 1795 , - 3054 , - 4985 , - 2212 , - 111 , - 4058 , - 3301 , - 3216 , - 3803 , - 5062 , - 1617 , - 4220 , - 2119 , - 690 , - 5309 , - 5224 , - 435 , - 1694 , - 3625 , - 852 , - 4127 , - 2698 , - 1941 , - 1856 , - 2443 , - 3702 , - 257 , - 2860 , - 759 , - 4706 , - 3949 , - 3864 , - 4451 , - 334 , - 2265 , - 4868 , - 2767 , - 1338 , - 581 , - 496 , - 1083 , - 2342 , - 4273 , - 1500 , - 4775 , - 3346 , - 2589 , - 2504 , - 3091 , - 4350 , - 905 , - 3508 , - 1407 , - 5354 , - 4597 , - 4512 , - 5099 , - 982 , - 2913 , - 140 , - 3415 , - 1986 , - 1229 , - 1144 , - 1731 , - 2990 , - 4921 , - 2148 , - 47 , - 3994 , - 3237 , - 3152 , - 3739 , - 4998 , - 1553 , - 4156 , - 2055 , - 626 , - 5245 , - 5160 , - 371 , - 1630 , - 3561 , - 788 , - 4063 , - 2634 , - 1877 , - 1792 , - 2379 , - 3638 , - 193 , - 2796 , - 695 , - 4642 , - 3885 , - 3800 , - 4387 , - 270 , - 2201 , - 4804 , - 2703 , - 1274 , - 517 , - 432 , - 1019 , - 2278 , - 4209 , - 1436 , - 4711 , - 3282 , - 2525 , - 2440 , - 3027 , - 4286 , - 841 , - 3444 , - 1343 , - 5290 , - 4533 , - 4448 , - 5035 , - 918 , - 2849 , - 76 , - 3351 , - 1922 , - 1165 , - 1080 , - 1667 , - 2926 , - 4857 , - 2084 , - 5359 , - 3930 , - 3173 , - 3088 , - 3675 , - 4934 , - 1489 , - 4092 , - 1991 , - 562 , - 5181 , - 5096 , - 307 , - 1566 , - 3497 , - 724 , - 3999 , - 2570 , - 1813 , - 1728 , - 2315 , - 3574 , - 129 , - 2732 , - 631 , - 4578 , - 3821 , - 3736 , - 4323 , - 206 , - 2137 , - 4740 , - 2639 , - 1210 , - 453 , - 368 , - 955 , - 2214 , - 4145 , - 1372 , - 4647 , - 3218 , - 2461 , - 2376 , - 2963 , - 4222 , - 777 , - 3380 , - 1279 , - 5226 , - 4469 , - 4384 , - 4971 , - 854 , - 2785 , - 12 , - 3287 , - 1858 , - 1101 , - 1016 , - 1603 , - 2862 , - 4793 , - 2020 , - 5295 , - 3866 , - 3109 , - 3024 , - 3611 , - 4870 , - 1425 , - 4028 , - 1927 , - 498 , - 5117 , - 5032 , - 243 , - 1502 , - 3433 , - 660 , - 3935 , - 2506 , - 1749 , - 1664 , - 2251 , - 3510 , - 65 , - 2668 , - 567 , - 4514 , - 3757 , - 3672 , - 4259 , - 142 , - 2073 , - 4676 , - 2575 , - 1146 , - 389 , - 304 , - 891 , - 2150 , - 4081 , - 1308 , - 4583 , - 3154 , - 2397 , - 2312 , - 2899 , - 4158 , - 713 , - 3316 , - 1215 , - 5162 , - 4405 , - 4320 , - 4907 , - 790 , - 2721 , - 5324 , - 3223 , - 1794 , - 1037 , - 952 , - 1539 , - 2798 , - 4729 , - 1956 , - 5231 , - 3802 , - 3045 , - 2960 , - 3547 , - 4806 , - 1361 , - 3964 , - 1863 , - 434 , - 5053 , - 4968 , - 179 , - 1438 , - 3369 , - 596 , - 3871 , - 2442 , - 1685 , - 1600 , - 2187 , - 3446 , - 1 , - 2604 , - 503 , - 4450 , - 3693 , - 3608 , - 4195 , - 78 , - 2009 , - 4612 , - 2511 , - 1082 , - 325 , - 240 , - 827 , - 2086 , - 4017 , - 1244 , - 4519 , - 3090 , - 2333 , - 2248 , - 2835 , - 4094 , - 649 , - 3252 , - 1151 , - 5098 , - 4341 , - 4256 , - 4843 , - 726 , - 2657 , - 5260 , - 3159 , - 1730 , - 973 , - 888 , - 1475 , - 2734 , - 4665 , - 1892 , - 5167 , - 3738 , - 2981 , - 2896 , - 3483 , - 4742 , - 1297 , - 3900 , - 1799 , - 370 , - 4989 , - 4904 , - 115 , - 1374 , - 3305 , - 532 , - 3807 , - 2378 , - 1621 , - 1536 , - 2123 , - 3382 , - 5313 , - 2540 , - 439 , - 4386 , - 3629 , - 3544 , - 4131 , - 14 , - 1945 , - 4548 , - 2447 , - 1018 , - 261 , - 176 , - 763 , - 2022 , - 3953 , - 1180 , - 4455 , - 3026 , - 2269 , - 2184 , - 2771 , - 4030 , - 585 , - 3188 , - 1087 , - 5034 , - 4277 , - 4192 , - 4779 , - 662 , - 2593 , - 5196 , - 3095 , - 1666 , - 909 , - 824 , - 1411 , - 2670 , - 4601 , - 1828 , - 5103 , - 3674 , - 2917 , - 2832 , - 3419 , - 4678 , - 1233 , - 3836 , - 1735 , - 306 , - 4925 , - 4840 , - 51 , - 1310 , - 3241 , - 468 , - 3743 , - 2314 , - 1557 , - 1472 , - 2059 , - 3318 , - 5249 , - 2476 , - 375 , - 4322 , - 3565 , - 3480 , - 4067 , - 5326 , - 1881 , - 4484 , - 2383 , - 954 , - 197 , - 112 , - 699 , - 1958 , - 3889 , - 1116 , - 4391 , - 2962 , - 2205 , - 2120 , - 2707 , - 3966 , - 521 , - 3124 , - 1023 , - 4970 , - 4213 , - 4128 , - 4715 , - 598 , - 2529 , - 5132 , - 3031 , - 1602 , - 845 , - 760 , - 1347 , - 2606 , - 4537 , - 1764 , - 5039 , - 3610 , - 2853 , - 2768 , - 3355 , - 4614 , - 1169 , - 3772 , - 1671 , - 242 , - 4861 , - 4776 , - 5363 , - 1246 , - 3177 , - 404 , - 3679 , - 2250 , - 1493 , - 1408 , - 1995 , - 3254 , - 5185 , - 2412 , - 311 , - 4258 , - 3501 , - 3416 , - 4003 , - 5262 , - 1817 , - 4420 , - 2319 , - 890 , - 133 , - 48 , - 635 , - 1894 , - 3825 , - 1052 , - 4327 , - 2898 , - 2141 , - 2056 , - 2643 , - 3902 , - 457 , - 3060 , - 959 , - 4906 , - 4149 , - 4064 , - 4651 , - 534 , - 2465 , - 5068 , - 2967 , - 1538 , - 781 , - 696 , - 1283 , - 2542 , - 4473 , - 1700 , - 4975 , - 3546 , - 2789 , - 2704 , - 3291 , - 4550 , - 1105 , - 3708 , - 1607 , - 178 , - 4797 , - 4712 , - 5299 , - 1182 , - 3113 , - 340 , - 3615 , - 2186 , - 1429 , - 1344 , - 1931 , - 3190 , - 5121 , - 2348 , - 247 , - 4194 , - 3437 , - 3352 , - 3939 , - 5198 , - 1753 , - 4356 , - 2255 , - 826 , - 69 , - 5360 , - 571 , - 1830 , - 3761 , - 988 , - 4263 , - 2834 , - 2077 , - 1992 , - 2579 , - 3838 , - 393 , - 2996 , - 895 , - 4842 , - 4085 , - 4000 , - 4587 , - 470 , - 2401 , - 5004 , - 2903 , - 1474 , - 717 , - 632 , - 1219 , - 2478 , - 4409 , - 1636 , - 4911 , - 3482 , - 2725 , - 2640 , - 3227 , - 4486 , - 1041 , - 3644 , - 1543 , - 114 , - 4733 , - 4648 , - 5235 , - 1118 , - 3049 , - 276 , - 3551 , - 2122 , - 1365 , - 1280 , - 1867 , - 3126 , - 5057 , - 2284 , - 183 , - 4130 , - 3373 , - 3288 , - 3875 , - 5134 , - 1689 , - 4292 , - 2191 , - 762 , - 5 , - 5296 , - 507 , - 1766 , - 3697 , - 924 , - 4199 , - 2770 , - 2013 , - 1928 , - 2515 , - 3774 , - 329 , - 2932 , - 831 , - 4778 , - 4021 , - 3936 , - 4523 , - 406 , - 2337 , - 4940 , - 2839 , - 1410 , - 653 , - 568 , - 1155 , - 2414 , - 4345 , - 1572 , - 4847 , - 3418 , - 2661 , - 2576 , - 3163 , - 4422 , - 977 , - 3580 , - 1479 , - 50 , - 4669 , - 4584 , - 5171 , - 1054 , - 2985 , - 212 , - 3487 , - 2058 , - 1301 , - 1216 , - 1803 , - 3062 , - 4993 , - 2220 , - 119 , - 4066 , - 3309 , - 3224 , - 3811 , - 5070 , - 1625 , - 4228 , - 2127 , - 698 , - 5317 , - 5232 , - 443 , - 1702 , - 3633 , - 860 , - 4135 , - 2706 , - 1949 , - 1864 , - 2451 , - 3710 , - 265 , - 2868 , - 767 , - 4714 , - 3957 , - 3872 , - 4459 , - 342 , - 2273 , - 4876 , - 2775 , - 1346 , - 589 , - 504 , - 1091 , - 2350 , - 4281 , - 1508 , - 4783 , - 3354 , - 2597 , - 2512 , - 3099 , - 4358 , - 913 , - 3516 , - 1415 , - 5362 , - 4605 , - 4520 , - 5107 , - 990 , - 2921 , - 148 , - 3423 , - 1994 , - 1237 , - 1152 , - 1739 , - 2998 , - 4929 , - 2156 , - 55 , - 4002 , - 3245 , - 3160 , - 3747 , - 5006 , - 1561 , - 4164 , - 2063 , - 634 , - 5253 , - 5168 , - 379 , - 1638 , - 3569 , - 796 , - 4071 , - 2642 , - 1885 , - 1800 , - 2387 , - 3646 , - 201 , - 2804 , - 703 , - 4650 , - 3893 , - 3808 , - 4395 , - 278 , - 2209 , - 4812 , - 2711 , - 1282 , - 525 , - 440 , - 1027 , - 2286 , - 4217 , - 1444 , - 4719 , - 3290 , - 2533 , - 2448 , - 3035 , - 4294 , - 849 , - 3452 , - 1351 , - 5298 , - 4541 , - 4456 , - 5043 , - 926 , - 2857 , - 84 , - 3359 , - 1930 , - 1173 , - 1088 , - 1675 , - 2934 , - 4865 , - 2092 , - 5367 , - 3938 , - 3181 , - 3096 , - 3683 , - 4942 , - 1497 , - 4100 , - 1999 , - 570 , - 5189 , - 5104 , - 315 , - 1574 , - 3505 , - 732 , - 4007 , - 2578 , - 1821 , - 1736 , - 2323 , - 3582 , - 137 , - 2740 , - 639 , - 4586 , - 3829 , - 3744 , - 4331 , - 214 , - 2145 , - 4748 , - 2647 , - 1218 , - 461 , - 376 , - 963 , - 2222 , - 4153 , - 1380 , - 4655 , - 3226 , - 2469 , - 2384 , - 2971 , - 4230 , - 785 , - 3388 , - 1287 , - 5234 , - 4477 , - 4392 , - 4979 , - 862 , - 2793 , - 20 , - 3295 , - 1866 , - 1109 , - 1024 , - 1611 , - 2870 , - 4801 , - 2028 , - 5303 , - 3874 , - 3117 , - 3032 , - 3619 , - 4878 , - 1433 , - 4036 , - 1935 , - 506 , - 5125 , - 5040 , - 251 , - 1510 , - 3441 , - 668 , - 3943 , - 2514 , - 1757 , - 1672 , - 2259 , - 3518 , - 73 , - 2676 , - 575 , - 4522 , - 3765 , - 3680 , - 4267 , - 150 , - 2081 , - 4684 , - 2583 , - 1154 , - 397 , - 312 , - 899 , - 2158 , - 4089 , - 1316 , - 4591 , - 3162 , - 2405 , - 2320 , - 2907 , - 4166 , - 721 , - 3324 , - 1223 , - 5170 , - 4413 , - 4328 , - 4915 , - 798 , - 2729 , - 5332 , - 3231 , - 1802 , - 1045 , - 960 , - 1547 , - 2806 , - 4737 , - 1964 , - 5239 , - 3810 , - 3053 , - 2968 , - 3555 , - 4814 , - 1369 , - 3972 , - 1871 , - 442 , - 5061 , - 4976 , - 187 , - 1446 , - 3377 , - 604 , - 3879 , - 2450 , - 1693 , - 1608 , - 2195 , - 3454 , - 9 , - 2612 , - 511 , - 4458 , - 3701 , - 3616 , - 4203 , - 86 , - 2017 , - 4620 , - 2519 , - 1090 , - 333 , - 248 , - 835 , - 2094 , - 4025 , - 1252 , - 4527 , - 3098 , - 2341 , - 2256 , - 2843 , - 4102 , - 657 , - 3260 , - 1159 , - 5106 , - 4349 , - 4264 , - 4851 , - 734 , - 2665 , - 5268 , - 3167 , - 1738 , - 981 , - 896 , - 1483 , - 2742 , - 4673 , - 1900 , - 5175 , - 3746 , - 2989 , - 2904 , - 3491 , - 4750 , - 1305 , - 3908 , - 1807 , - 378 , - 4997 , - 4912 , - 123 , - 1382 , - 3313 , - 540 , - 3815 , - 2386 , - 1629 , - 1544 , - 2131 , - 3390 , - 5321 , - 2548 , - 447 , - 4394 , - 3637 , - 3552 , - 4139 , - 22 , - 1953 , - 4556 , - 2455 , - 1026 , - 269 , - 184 , - 771 , - 2030 , - 3961 , - 1188 , - 4463 , - 3034 , - 2277 , - 2192 , - 2779 , - 4038 , - 593 , - 3196 , - 1095 , - 5042 , - 4285 , - 4200 , - 4787 , - 670 , - 2601 , - 5204 , - 3103 , - 1674 , - 917 , - 832 , - 1419 , - 2678 , - 4609 , - 1836 , - 5111 , - 3682 , - 2925 , - 2840 , - 3427 , - 4686 , - 1241 , - 3844 , - 1743 , - 314 , - 4933 , - 4848 , - 59 , - 1318 , - 3249 , - 476 , - 3751 , - 2322 , - 1565 , - 1480 , - 2067 , - 3326 , - 5257 , - 2484 , - 383 , - 4330 , - 3573 , - 3488 , - 4075 , - 5334 , - 1889 , - 4492 , - 2391 , - 962 , - 205 , - 120 , - 707 , - 1966 , - 3897 , - 1124 , - 4399 , - 2970 , - 2213 , - 2128 , - 2715 , - 3974 , - 529 , - 3132 , - 1031 , - 4978 , - 4221 , - 4136 , - 4723 , - 606 , - 2537 , - 5140 , - 3039 , - 1610 , - 853 , - 768 , - 1355 , - 2614 , - 4545 , - 1772 , - 5047 , - 3618 , - 2861 , - 2776 , - 3363 , - 4622 , - 1177 , - 3780 , - 1679 , - 250 , - 4869 , - 4784 , - 5371 , - 1254 , - 3185 , - 412 , - 3687 , - 2258 , - 1501 , - 1416 , - 2003 , - 3262 , - 5193 , - 2420 , - 319 , - 4266 , - 3509 , - 3424 , - 4011 , - 5270 , - 1825 , - 4428 , - 2327 , - 898 , - 141 , - 56 , - 643 , - 1902 , - 3833 , - 1060 , - 4335 , - 2906 , - 2149 , - 2064 , - 2651 , - 3910 , - 465 , - 3068 , - 967 , - 4914 , - 4157 , - 4072 , - 4659 , - 542 , - 2473 , - 5076 , - 2975 , - 1546 , - 789 , - 704 , - 1291 , - 2550 , - 4481 , - 1708 , - 4983 , - 3554 , - 2797 , - 2712 , - 3299 , - 4558 , - 1113 , - 3716 , - 1615 , - 186 , - 4805 , - 4720 , - 5307 , - 1190 , - 3121 , - 348 , - 3623 , - 2194 , - 1437 , - 1352 , - 1939 , - 3198 , - 5129 , - 2356 , - 255 , - 4202 , - 3445 , - 3360 , - 3947 , - 5206 , - 1761 , - 4364 , - 2263 , - 834 , - 77 , - 5368 , - 579 , - 1838 , - 3769 , - 996 , - 4271 , - 2842 , - 2085 , - 2000 , - 2587 , - 3846 , - 401 , - 3004 , - 903 , - 4850 , - 4093 , - 4008 , - 4595 , - 478 , - 2409 , - 5012 , - 2911 , - 1482 , - 725 , - 640 , - 1227 , - 2486 , - 4417 , - 1644 , - 4919 , - 3490 , - 2733 , - 2648 , - 3235 , - 4494 , - 1049 , - 3652 , - 1551 , - 122 , - 4741 , - 4656 , - 5243 , - 1126 , - 3057 , - 284 , - 3559 , - 2130 , - 1373 , - 1288 , - 1875 , - 3134 , - 5065 , - 2292 , - 191 , - 4138 , - 3381 , - 3296 , - 3883 , - 5142 , - 1697 , - 4300 , - 2199 , - 770 , - 13 , - 5304 , - 515 , - 1774 , - 3705 , - 932 , - 4207 , - 2778 , - 2021 , - 1936 , - 2523 , - 3782 , - 337 , - 2940 , - 839 , - 4786 , - 4029 , - 3944 , - 4531 , - 414 , - 2345 , - 4948 , - 2847 , - 1418 , - 661 , - 576 , - 1163 , - 2422 , - 4353 , - 1580 , - 4855 , - 3426 , - 2669 , - 2584 , - 3171 , - 4430 , - 985 , - 3588 , - 1487 , - 58 , - 4677 , - 4592 , - 5179 , - 1062 , - 2993 , - 220 , - 3495 , - 2066 , - 1309 , - 1224 , - 1811 , - 3070 , - 5001 , - 2228 , - 127 , - 4074 , - 3317 , - 3232 , - 3819 , - 5078 , - 1633 , - 4236 , - 2135 , - 706 , - 5325 , - 5240 , - 451 , - 1710 , - 3641 , - 868 , - 4143 , - 2714 , - 1957 , - 1872 , - 2459 , - 3718 , - 273 , - 2876 , - 775 , - 4722 , - 3965 , - 3880 , - 4467 , - 350 , - 2281 , - 4884 , - 2783 , - 1354 , - 597 , - 512 , - 1099 , - 2358 , - 4289 , - 1516 , - 4791 , - 3362 , - 2605 , - 2520 , - 3107 , - 4366 , - 921 , - 3524 , - 1423 , - 5370 , - 4613 , - 4528 , - 5115 , - 998 , - 2929 , - 156 , - 3431 , - 2002 , - 1245 , - 1160 , - 1747 , - 3006 , - 4937 , - 2164 , - 63 , - 4010 , - 3253 , - 3168 , - 3755 , - 5014 , - 1569 , - 4172 , - 2071 , - 642 , - 5261 , - 5176 , - 387 , - 1646 , - 3577 , - 804 , - 4079 , - 2650 , - 1893 , - 1808 , - 2395 , - 3654 , - 209 , - 2812 , - 711 , - 4658 , - 3901 , - 3816 , - 4403 , - 286 , - 2217 , - 4820 , - 2719 , - 1290 , - 533 , - 448 , - 1035 , - 2294 , - 4225 , - 1452 , - 4727 , - 3298 , - 2541 , - 2456 , - 3043 , - 4302 , - 857 , - 3460 , - 1359 , - 5306 , - 4549 , - 4464 , - 5051 , - 934 , - 2865 , - 92 , - 3367 , - 1938 , - 1181 , - 1096 , - 1683 , - 2942 , - 4873 , - 2100 , - 5375 , - 3946 , - 3189 , - 3104 , - 3691 , - 4950 , - 1505 , - 4108 , - 2007 , - 578 , - 5197 , - 5112 , - 323 , - 1582 , - 3513 , - 740 , - 4015 , - 2586 , - 1829 , - 1744 , - 2331 , - 3590 , - 145 , - 2748 , - 647 , - 4594 , - 3837 , - 3752 , - 4339 , - 222 , - 2153 , - 4756 , - 2655 , - 1226 , - 469 , - 384 , - 971 , - 2230 , - 4161 , - 1388 , - 4663 , - 3234 , - 2477 , - 2392 , - 2979 , - 4238 , - 793 , - 3396 , - 1295 , - 5242 , - 4485 , - 4400 , - 4987 , - 870 , - 2801 , - 28 , - 3303 , - 1874 , - 1117 , - 1032 , - 1619 , - 2878 , - 4809 , - 2036 , - 5311 , - 3882 , - 3125 , - 3040 , - 3627 , - 4886 , - 1441 , - 4044 , - 1943 , - 514 , - 5133 , - 5048 , - 259 , - 1518 , - 3449 , - 676 , - 3951 , - 2522 , - 1765 , - 1680 , - 2267 , - 3526 , - 81 , - 2684 , - 583 , - 4530 , - 3773 , - 3688 , - 4275 , - 158 , - 2089 , - 4692 , - 2591 , - 1162 , - 405 , - 320 , - 907 , - 2166 , - 4097 , - 1324 , - 4599 , - 3170 , - 2413 , - 2328 , - 2915 , - 4174 , - 729 , - 3332 , - 1231 , - 5178 , - 4421 , - 4336 , - 4923 , - 806 , - 2737 , - 5340 , - 3239 , - 1810 , - 1053 , - 968 , - 1555 , - 2814 , - 4745 , - 1972 , - 5247 , - 3818 , - 3061 , - 2976 , - 3563 , - 4822 , - 1377 , - 3980 , - 1879 , - 450 , - 5069 , - 4984 , - 195 , - 1454 , - 3385 , - 612 , - 3887 , - 2458 , - 1701 , - 1616 , - 2203 , - 3462 , - 17 , - 2620 , - 519 , - 4466 , - 3709 , - 3624 , - 4211 , - 94 , - 2025 , - 4628 , - 2527 , - 1098 , - 341 , - 256 , - 843 , - 2102 , - 4033 , - 1260 , - 4535 , - 3106 , - 2349 , - 2264 , - 2851 , - 4110 , - 665 , - 3268 , - 1167 , - 5114 , - 4357 , - 4272 , - 4859 , - 742 , - 2673 , - 5276 , - 3175 , - 1746 , - 989 , - 904 , - 1491 , - 2750 , - 4681 , - 1908 , - 5183 , - 3754 , - 2997 , - 2912 , - 3499 , - 4758 , - 1313 , - 3916 , - 1815 , - 386 , - 5005 , - 4920 , - 131 , - 1390 , - 3321 , - 548 , - 3823 , - 2394 , - 1637 , - 1552 , - 2139 , - 3398 , - 5329 , - 2556 , - 455 , - 4402 , - 3645 , - 3560 , - 4147 , - 30 , - 1961 , - 4564 , - 2463 , - 1034 , - 277 , - 192 , - 779 , - 2038 , - 3969 , - 1196 , - 4471 , - 3042 , - 2285 , - 2200 , - 2787 , - 4046 , - 601 , - 3204 , - 1103 , - 5050 , - 4293 , - 4208 , - 4795 , - 678 , - 2609 , - 5212 , - 3111 , - 1682 , - 925 , - 840 , - 1427 , - 2686 , - 4617 , - 1844 , - 5119 , - 3690 , - 2933 , - 2848 , - 3435 , - 4694 , - 1249 , - 3852 , - 1751 , - 322 , - 4941 , - 4856 , - 67 , - 1326 , - 3257 , - 484 , - 3759 , - 2330 , - 1573 , - 1488 , - 2075 , - 3334 , - 5265 , - 2492 , - 391 , - 4338 , - 3581 , - 3496 , - 4083 , - 5342 , - 1897 , - 4500 , - 2399 , - 970 , - 213 , - 128 , - 715 , - 1974 , - 3905 , - 1132 , - 4407 , - 2978 , - 2221 , - 2136 , - 2723 , - 3982 , - 537 , - 3140 , - 1039 , - 4986 , - 4229 , - 4144 , - 4731 , - 614 , - 2545 , - 5148 , - 3047 , - 1618 , - 861 , - 776 , - 1363 , - 2622 , - 4553 , - 1780 , - 5055 , - 3626 , - 2869 , - 2784 , - 3371 , - 4630 , - 1185 , - 3788 , - 1687 , - 258 , - 4877 , - 4792 , - 3 , - 1262 , - 3193 , - 420 , - 3695 , - 2266 , - 1509 , - 1424 , - 2011 , - 3270 , - 5201 , - 2428 , - 327 , - 4274 , - 3517 , - 3432 , - 4019 , - 5278 , - 1833 , - 4436 , - 2335 , - 906 , - 149 , - 64 , - 651 , - 1910 , - 3841 , - 1068 , - 4343 , - 2914 , - 2157 , - 2072 , - 2659 , - 3918 , - 473 , - 3076 , - 975 , - 4922 , - 4165 , - 4080 , - 4667 , - 550 , - 2481 , - 5084 , - 2983 , - 1554 , - 797 , - 712 , - 1299 , - 2558 , - 4489 , - 1716 , - 4991 , - 3562 , - 2805 , - 2720 , - 3307 , - 4566 , - 1121 , - 3724 , - 1623 , - 194 , - 4813 , - 4728 , - 5315 , - 1198 , - 3129 , - 356 , - 3631 , - 2202 , - 1445 , - 1360 , - 1947 , - 3206 , - 5137 , - 2364 , - 263 , - 4210 , - 3453 , - 3368 , - 3955 , - 5214 , - 1769 , - 4372 , - 2271 , - 842 , - 85 , - 0 , - 213 , - 766 , - 1659 , - 2892 , - 4465 , - 938 , - 3191 , - 344 , - 3277 , - 1110 , - 4723 , - 3236 , - 2089 , - 1282 , - 815 , - 688 , - 901 , - 1454 , - 2347 , - 3580 , - 5153 , - 1626 , - 3879 , - 1032 , - 3965 , - 1798 , - 5411 , - 3924 , - 2777 , - 1970 , - 1503 , - 1376 , - 1589 , - 2142 , - 3035 , - 4268 , - 401 , - 2314 , - 4567 , - 1720 , - 4653 , - 2486 , - 659 , - 4612 , - 3465 , - 2658 , - 2191 , - 2064 , - 2277 , - 2830 , - 3723 , - 4956 , - 1089 , - 3002 , - 5255 , - 2408 , - 5341 , - 3174 , - 1347 , - 5300 , - 4153 , - 3346 , - 2879 , - 2752 , - 2965 , - 3518 , - 4411 , - 204 , - 1777 , - 3690 , - 503 , - 3096 , - 589 , - 3862 , - 2035 , - 548 , - 4841 , - 4034 , - 3567 , - 3440 , - 3653 , - 4206 , - 5099 , - 892 , - 2465 , - 4378 , - 1191 , - 3784 , - 1277 , - 4550 , - 2723 , - 1236 , - 89 , - 4722 , - 4255 , - 4128 , - 4341 , - 4894 , - 347 , - 1580 , - 3153 , - 5066 , - 1879 , - 4472 , - 1965 , - 5238 , - 3411 , - 1924 , - 777 , - 5410 , - 4943 , - 4816 , - 5029 , - 142 , - 1035 , - 2268 , - 3841 , - 314 , - 2567 , - 5160 , - 2653 , - 486 , - 4099 , - 2612 , - 1465 , - 658 , - 191 , - 64 , - 277 , - 830 , - 1723 , - 2956 , - 4529 , - 1002 , - 3255 , - 408 , - 3341 , - 1174 , - 4787 , - 3300 , - 2153 , - 1346 , - 879 , - 752 , - 965 , - 1518 , - 2411 , - 3644 , - 5217 , - 1690 , - 3943 , - 1096 , - 4029 , - 1862 , - 35 , - 3988 , - 2841 , - 2034 , - 1567 , - 1440 , - 1653 , - 2206 , - 3099 , - 4332 , - 465 , - 2378 , - 4631 , - 1784 , - 4717 , - 2550 , - 723 , - 4676 , - 3529 , - 2722 , - 2255 , - 2128 , - 2341 , - 2894 , - 3787 , - 5020 , - 1153 , - 3066 , - 5319 , - 2472 , - 5405 , - 3238 , - 1411 , - 5364 , - 4217 , - 3410 , - 2943 , - 2816 , - 3029 , - 3582 , - 4475 , - 268 , - 1841 , - 3754 , - 567 , - 3160 , - 653 , - 3926 , - 2099 , - 612 , - 4905 , - 4098 , - 3631 , - 3504 , - 3717 , - 4270 , - 5163 , - 956 , - 2529 , - 4442 , - 1255 , - 3848 , - 1341 , - 4614 , - 2787 , - 1300 , - 153 , - 4786 , - 4319 , - 4192 , - 4405 , - 4958 , - 411 , - 1644 , - 3217 , - 5130 , - 1943 , - 4536 , - 2029 , - 5302 , - 3475 , - 1988 , - 841 , - 34 , - 5007 , - 4880 , - 5093 , - 206 , - 1099 , - 2332 , - 3905 , - 378 , - 2631 , - 5224 , - 2717 , - 550 , - 4163 , - 2676 , - 1529 , - 722 , - 255 , - 128 , - 341 , - 894 , - 1787 , - 3020 , - 4593 , - 1066 , - 3319 , - 472 , - 3405 , - 1238 , - 4851 , - 3364 , - 2217 , - 1410 , - 943 , - 816 , - 1029 , - 1582 , - 2475 , - 3708 , - 5281 , - 1754 , - 4007 , - 1160 , - 4093 , - 1926 , - 99 , - 4052 , - 2905 , - 2098 , - 1631 , - 1504 , - 1717 , - 2270 , - 3163 , - 4396 , - 529 , - 2442 , - 4695 , - 1848 , - 4781 , - 2614 , - 787 , - 4740 , - 3593 , - 2786 , - 2319 , - 2192 , - 2405 , - 2958 , - 3851 , - 5084 , - 1217 , - 3130 , - 5383 , - 2536 , - 29 , - 3302 , - 1475 , - 5428 , - 4281 , - 3474 , - 3007 , - 2880 , - 3093 , - 3646 , - 4539 , - 332 , - 1905 , - 3818 , - 631 , - 3224 , - 717 , - 3990 , - 2163 , - 676 , - 4969 , - 4162 , - 3695 , - 3568 , - 3781 , - 4334 , - 5227 , - 1020 , - 2593 , - 4506 , - 1319 , - 3912 , - 1405 , - 4678 , - 2851 , - 1364 , - 217 , - 4850 , - 4383 , - 4256 , - 4469 , - 5022 , - 475 , - 1708 , - 3281 , - 5194 , - 2007 , - 4600 , - 2093 , - 5366 , - 3539 , - 2052 , - 905 , - 98 , - 5071 , - 4944 , - 5157 , - 270 , - 1163 , - 2396 , - 3969 , - 442 , - 2695 , - 5288 , - 2781 , - 614 , - 4227 , - 2740 , - 1593 , - 786 , - 319 , - 192 , - 405 , - 958 , - 1851 , - 3084 , - 4657 , - 1130 , - 3383 , - 536 , - 3469 , - 1302 , - 4915 , - 3428 , - 2281 , - 1474 , - 1007 , - 880 , - 1093 , - 1646 , - 2539 , - 3772 , - 5345 , - 1818 , - 4071 , - 1224 , - 4157 , - 1990 , - 163 , - 4116 , - 2969 , - 2162 , - 1695 , - 1568 , - 1781 , - 2334 , - 3227 , - 4460 , - 593 , - 2506 , - 4759 , - 1912 , - 4845 , - 2678 , - 851 , - 4804 , - 3657 , - 2850 , - 2383 , - 2256 , - 2469 , - 3022 , - 3915 , - 5148 , - 1281 , - 3194 , - 7 , - 2600 , - 93 , - 3366 , - 1539 , - 52 , - 4345 , - 3538 , - 3071 , - 2944 , - 3157 , - 3710 , - 4603 , - 396 , - 1969 , - 3882 , - 695 , - 3288 , - 781 , - 4054 , - 2227 , - 740 , - 5033 , - 4226 , - 3759 , - 3632 , - 3845 , - 4398 , - 5291 , - 1084 , - 2657 , - 4570 , - 1383 , - 3976 , - 1469 , - 4742 , - 2915 , - 1428 , - 281 , - 4914 , - 4447 , - 4320 , - 4533 , - 5086 , - 539 , - 1772 , - 3345 , - 5258 , - 2071 , - 4664 , - 2157 , - 5430 , - 3603 , - 2116 , - 969 , - 162 , - 5135 , - 5008 , - 5221 , - 334 , - 1227 , - 2460 , - 4033 , - 506 , - 2759 , - 5352 , - 2845 , - 678 , - 4291 , - 2804 , - 1657 , - 850 , - 383 , - 256 , - 469 , - 1022 , - 1915 , - 3148 , - 4721 , - 1194 , - 3447 , - 600 , - 3533 , - 1366 , - 4979 , - 3492 , - 2345 , - 1538 , - 1071 , - 944 , - 1157 , - 1710 , - 2603 , - 3836 , - 5409 , - 1882 , - 4135 , - 1288 , - 4221 , - 2054 , - 227 , - 4180 , - 3033 , - 2226 , - 1759 , - 1632 , - 1845 , - 2398 , - 3291 , - 4524 , - 657 , - 2570 , - 4823 , - 1976 , - 4909 , - 2742 , - 915 , - 4868 , - 3721 , - 2914 , - 2447 , - 2320 , - 2533 , - 3086 , - 3979 , - 5212 , - 1345 , - 3258 , - 71 , - 2664 , - 157 , - 3430 , - 1603 , - 116 , - 4409 , - 3602 , - 3135 , - 3008 , - 3221 , - 3774 , - 4667 , - 460 , - 2033 , - 3946 , - 759 , - 3352 , - 845 , - 4118 , - 2291 , - 804 , - 5097 , - 4290 , - 3823 , - 3696 , - 3909 , - 4462 , - 5355 , - 1148 , - 2721 , - 4634 , - 1447 , - 4040 , - 1533 , - 4806 , - 2979 , - 1492 , - 345 , - 4978 , - 4511 , - 4384 , - 4597 , - 5150 , - 603 , - 1836 , - 3409 , - 5322 , - 2135 , - 4728 , - 2221 , - 54 , - 3667 , - 2180 , - 1033 , - 226 , - 5199 , - 5072 , - 5285 , - 398 , - 1291 , - 2524 , - 4097 , - 570 , - 2823 , - 5416 , - 2909 , - 742 , - 4355 , - 2868 , - 1721 , - 914 , - 447 , - 320 , - 533 , - 1086 , - 1979 , - 3212 , - 4785 , - 1258 , - 3511 , - 664 , - 3597 , - 1430 , - 5043 , - 3556 , - 2409 , - 1602 , - 1135 , - 1008 , - 1221 , - 1774 , - 2667 , - 3900 , - 33 , - 1946 , - 4199 , - 1352 , - 4285 , - 2118 , - 291 , - 4244 , - 3097 , - 2290 , - 1823 , - 1696 , - 1909 , - 2462 , - 3355 , - 4588 , - 721 , - 2634 , - 4887 , - 2040 , - 4973 , - 2806 , - 979 , - 4932 , - 3785 , - 2978 , - 2511 , - 2384 , - 2597 , - 3150 , - 4043 , - 5276 , - 1409 , - 3322 , - 135 , - 2728 , - 221 , - 3494 , - 1667 , - 180 , - 4473 , - 3666 , - 3199 , - 3072 , - 3285 , - 3838 , - 4731 , - 524 , - 2097 , - 4010 , - 823 , - 3416 , - 909 , - 4182 , - 2355 , - 868 , - 5161 , - 4354 , - 3887 , - 3760 , - 3973 , - 4526 , - 5419 , - 1212 , - 2785 , - 4698 , - 1511 , - 4104 , - 1597 , - 4870 , - 3043 , - 1556 , - 409 , - 5042 , - 4575 , - 4448 , - 4661 , - 5214 , - 667 , - 1900 , - 3473 , - 5386 , - 2199 , - 4792 , - 2285 , - 118 , - 3731 , - 2244 , - 1097 , - 290 , - 5263 , - 5136 , - 5349 , - 462 , - 1355 , - 2588 , - 4161 , - 634 , - 2887 , - 40 , - 2973 , - 806 , - 4419 , - 2932 , - 1785 , - 978 , - 511 , - 384 , - 597 , - 1150 , - 2043 , - 3276 , - 4849 , - 1322 , - 3575 , - 728 , - 3661 , - 1494 , - 5107 , - 3620 , - 2473 , - 1666 , - 1199 , - 1072 , - 1285 , - 1838 , - 2731 , - 3964 , - 97 , - 2010 , - 4263 , - 1416 , - 4349 , - 2182 , - 355 , - 4308 , - 3161 , - 2354 , - 1887 , - 1760 , - 1973 , - 2526 , - 3419 , - 4652 , - 785 , - 2698 , - 4951 , - 2104 , - 5037 , - 2870 , - 1043 , - 4996 , - 3849 , - 3042 , - 2575 , - 2448 , - 2661 , - 3214 , - 4107 , - 5340 , - 1473 , - 3386 , - 199 , - 2792 , - 285 , - 3558 , - 1731 , - 244 , - 4537 , - 3730 , - 3263 , - 3136 , - 3349 , - 3902 , - 4795 , - 588 , - 2161 , - 4074 , - 887 , - 3480 , - 973 , - 4246 , - 2419 , - 932 , - 5225 , - 4418 , - 3951 , - 3824 , - 4037 , - 4590 , - 43 , - 1276 , - 2849 , - 4762 , - 1575 , - 4168 , - 1661 , - 4934 , - 3107 , - 1620 , - 473 , - 5106 , - 4639 , - 4512 , - 4725 , - 5278 , - 731 , - 1964 , - 3537 , - 10 , - 2263 , - 4856 , - 2349 , - 182 , - 3795 , - 2308 , - 1161 , - 354 , - 5327 , - 5200 , - 5413 , - 526 , - 1419 , - 2652 , - 4225 , - 698 , - 2951 , - 104 , - 3037 , - 870 , - 4483 , - 2996 , - 1849 , - 1042 , - 575 , - 448 , - 661 , - 1214 , - 2107 , - 3340 , - 4913 , - 1386 , - 3639 , - 792 , - 3725 , - 1558 , - 5171 , - 3684 , - 2537 , - 1730 , - 1263 , - 1136 , - 1349 , - 1902 , - 2795 , - 4028 , - 161 , - 2074 , - 4327 , - 1480 , - 4413 , - 2246 , - 419 , - 4372 , - 3225 , - 2418 , - 1951 , - 1824 , - 2037 , - 2590 , - 3483 , - 4716 , - 849 , - 2762 , - 5015 , - 2168 , - 5101 , - 2934 , - 1107 , - 5060 , - 3913 , - 3106 , - 2639 , - 2512 , - 2725 , - 3278 , - 4171 , - 5404 , - 1537 , - 3450 , - 263 , - 2856 , - 349 , - 3622 , - 1795 , - 308 , - 4601 , - 3794 , - 3327 , - 3200 , - 3413 , - 3966 , - 4859 , - 652 , - 2225 , - 4138 , - 951 , - 3544 , - 1037 , - 4310 , - 2483 , - 996 , - 5289 , - 4482 , - 4015 , - 3888 , - 4101 , - 4654 , - 107 , - 1340 , - 2913 , - 4826 , - 1639 , - 4232 , - 1725 , - 4998 , - 3171 , - 1684 , - 537 , - 5170 , - 4703 , - 4576 , - 4789 , - 5342 , - 795 , - 2028 , - 3601 , - 74 , - 2327 , - 4920 , - 2413 , - 246 , - 3859 , - 2372 , - 1225 , - 418 , - 5391 , - 5264 , - 37 , - 590 , - 1483 , - 2716 , - 4289 , - 762 , - 3015 , - 168 , - 3101 , - 934 , - 4547 , - 3060 , - 1913 , - 1106 , - 639 , - 512 , - 725 , - 1278 , - 2171 , - 3404 , - 4977 , - 1450 , - 3703 , - 856 , - 3789 , - 1622 , - 5235 , - 3748 , - 2601 , - 1794 , - 1327 , - 1200 , - 1413 , - 1966 , - 2859 , - 4092 , - 225 , - 2138 , - 4391 , - 1544 , - 4477 , - 2310 , - 483 , - 4436 , - 3289 , - 2482 , - 2015 , - 1888 , - 2101 , - 2654 , - 3547 , - 4780 , - 913 , - 2826 , - 5079 , - 2232 , - 5165 , - 2998 , - 1171 , - 5124 , - 3977 , - 3170 , - 2703 , - 2576 , - 2789 , - 3342 , - 4235 , - 28 , - 1601 , - 3514 , - 327 , - 2920 , - 413 , - 3686 , - 1859 , - 372 , - 4665 , - 3858 , - 3391 , - 3264 , - 3477 , - 4030 , - 4923 , - 716 , - 2289 , - 4202 , - 1015 , - 3608 , - 1101 , - 4374 , - 2547 , - 1060 , - 5353 , - 4546 , - 4079 , - 3952 , - 4165 , - 4718 , - 171 , - 1404 , - 2977 , - 4890 , - 1703 , - 4296 , - 1789 , - 5062 , - 3235 , - 1748 , - 601 , - 5234 , - 4767 , - 4640 , - 4853 , - 5406 , - 859 , - 2092 , - 3665 , - 138 , - 2391 , - 4984 , - 2477 , - 310 , - 3923 , - 2436 , - 1289 , - 482 , - 15 , - 5328 , - 101 , - 654 , - 1547 , - 2780 , - 4353 , - 826 , - 3079 , - 232 , - 3165 , - 998 , - 4611 , - 3124 , - 1977 , - 1170 , - 703 , - 576 , - 789 , - 1342 , - 2235 , - 3468 , - 5041 , - 1514 , - 3767 , - 920 , - 3853 , - 1686 , - 5299 , - 3812 , - 2665 , - 1858 , - 1391 , - 1264 , - 1477 , - 2030 , - 2923 , - 4156 , - 289 , - 2202 , - 4455 , - 1608 , - 4541 , - 2374 , - 547 , - 4500 , - 3353 , - 2546 , - 2079 , - 1952 , - 2165 , - 2718 , - 3611 , - 4844 , - 977 , - 2890 , - 5143 , - 2296 , - 5229 , - 3062 , - 1235 , - 5188 , - 4041 , - 3234 , - 2767 , - 2640 , - 2853 , - 3406 , - 4299 , - 92 , - 1665 , - 3578 , - 391 , - 2984 , - 477 , - 3750 , - 1923 , - 436 , - 4729 , - 3922 , - 3455 , - 3328 , - 3541 , - 4094 , - 4987 , - 780 , - 2353 , - 4266 , - 1079 , - 3672 , - 1165 , - 4438 , - 2611 , - 1124 , - 5417 , - 4610 , - 4143 , - 4016 , - 4229 , - 4782 , - 235 , - 1468 , - 3041 , - 4954 , - 1767 , - 4360 , - 1853 , - 5126 , - 3299 , - 1812 , - 665 , - 5298 , - 4831 , - 4704 , - 4917 , - 30 , - 923 , - 2156 , - 3729 , - 202 , - 2455 , - 5048 , - 2541 , - 374 , - 3987 , - 2500 , - 1353 , - 546 , - 79 , - 5392 , - 165 , - 718 , - 1611 , - 2844 , - 4417 , - 890 , - 3143 , - 296 , - 3229 , - 1062 , - 4675 , - 3188 , - 2041 , - 1234 , - 767 , - 640 , - 853 , - 1406 , - 2299 , - 3532 , - 5105 , - 1578 , - 3831 , - 984 , - 3917 , - 1750 , - 5363 , - 3876 , - 2729 , - 1922 , - 1455 , - 1328 , - 1541 , - 2094 , - 2987 , - 4220 , - 353 , - 2266 , - 4519 , - 1672 , - 4605 , - 2438 , - 611 , - 4564 , - 3417 , - 2610 , - 2143 , - 2016 , - 2229 , - 2782 , - 3675 , - 4908 , - 1041 , - 2954 , - 5207 , - 2360 , - 5293 , - 3126 , - 1299 , - 5252 , - 4105 , - 3298 , - 2831 , - 2704 , - 2917 , - 3470 , - 4363 , - 156 , - 1729 , - 3642 , - 455 , - 3048 , - 541 , - 3814 , - 1987 , - 500 , - 4793 , - 3986 , - 3519 , - 3392 , - 3605 , - 4158 , - 5051 , - 844 , - 2417 , - 4330 , - 1143 , - 3736 , - 1229 , - 4502 , - 2675 , - 1188 , - 41 , - 4674 , - 4207 , - 4080 , - 4293 , - 4846 , - 299 , - 1532 , - 3105 , - 5018 , - 1831 , - 4424 , - 1917 , - 5190 , - 3363 , - 1876 , - 729 , - 5362 , - 4895 , - 4768 , - 4981 , - 94 , - 987 , - 2220 , - 3793 , - 266 , - 2519 , - 5112 , - 2605 , - 438 , - 4051 , - 2564 , - 1417 , - 610 , - 143 , - 16 , - 229 , - 782 , - 1675 , - 2908 , - 4481 , - 954 , - 3207 , - 360 , - 3293 , - 1126 , - 4739 , - 3252 , - 2105 , - 1298 , - 831 , - 704 , - 917 , - 1470 , - 2363 , - 3596 , - 5169 , - 1642 , - 3895 , - 1048 , - 3981 , - 1814 , - 5427 , - 3940 , - 2793 , - 1986 , - 1519 , - 1392 , - 1605 , - 2158 , - 3051 , - 4284 , - 417 , - 2330 , - 4583 , - 1736 , - 4669 , - 2502 , - 675 , - 4628 , - 3481 , - 2674 , - 2207 , - 2080 , - 2293 , - 2846 , - 3739 , - 4972 , - 1105 , - 3018 , - 5271 , - 2424 , - 5357 , - 3190 , - 1363 , - 5316 , - 4169 , - 3362 , - 2895 , - 2768 , - 2981 , - 3534 , - 4427 , - 220 , - 1793 , - 3706 , - 519 , - 3112 , - 605 , - 3878 , - 2051 , - 564 , - 4857 , - 4050 , - 3583 , - 3456 , - 3669 , - 4222 , - 5115 , - 908 , - 2481 , - 4394 , - 1207 , - 3800 , - 1293 , - 4566 , - 2739 , - 1252 , - 105 , - 4738 , - 4271 , - 4144 , - 4357 , - 4910 , - 363 , - 1596 , - 3169 , - 5082 , - 1895 , - 4488 , - 1981 , - 5254 , - 3427 , - 1940 , - 793 , - 5426 , - 4959 , - 4832 , - 5045 , - 158 , - 1051 , - 2284 , - 3857 , - 330 , - 2583 , - 5176 , - 2669 , - 502 , - 4115 , - 2628 , - 1481 , - 674 , - 207 , - 80 , - 293 , - 846 , - 1739 , - 2972 , - 4545 , - 1018 , - 3271 , - 424 , - 3357 , - 1190 , - 4803 , - 3316 , - 2169 , - 1362 , - 895 , - 768 , - 981 , - 1534 , - 2427 , - 3660 , - 5233 , - 1706 , - 3959 , - 1112 , - 4045 , - 1878 , - 51 , - 4004 , - 2857 , - 2050 , - 1583 , - 1456 , - 1669 , - 2222 , - 3115 , - 4348 , - 481 , - 2394 , - 4647 , - 1800 , - 4733 , - 2566 , - 739 , - 4692 , - 3545 , - 2738 , - 2271 , - 2144 , - 2357 , - 2910 , - 3803 , - 5036 , - 1169 , - 3082 , - 5335 , - 2488 , - 5421 , - 3254 , - 1427 , - 5380 , - 4233 , - 3426 , - 2959 , - 2832 , - 3045 , - 3598 , - 4491 , - 284 , - 1857 , - 3770 , - 583 , - 3176 , - 669 , - 3942 , - 2115 , - 628 , - 4921 , - 4114 , - 3647 , - 3520 , - 3733 , - 4286 , - 5179 , - 972 , - 2545 , - 4458 , - 1271 , - 3864 , - 1357 , - 4630 , - 2803 , - 1316 , - 169 , - 4802 , - 4335 , - 4208 , - 4421 , - 4974 , - 427 , - 1660 , - 3233 , - 5146 , - 1959 , - 4552 , - 2045 , - 5318 , - 3491 , - 2004 , - 857 , - 50 , - 5023 , - 4896 , - 5109 , - 222 , - 1115 , - 2348 , - 3921 , - 394 , - 2647 , - 5240 , - 2733 , - 566 , - 4179 , - 2692 , - 1545 , - 738 , - 271 , - 144 , - 357 , - 910 , - 1803 , - 3036 , - 4609 , - 1082 , - 3335 , - 488 , - 3421 , - 1254 , - 4867 , - 3380 , - 2233 , - 1426 , - 959 , - 832 , - 1045 , - 1598 , - 2491 , - 3724 , - 5297 , - 1770 , - 4023 , - 1176 , - 4109 , - 1942 , - 115 , - 4068 , - 2921 , - 2114 , - 1647 , - 1520 , - 1733 , - 2286 , - 3179 , - 4412 , - 545 , - 2458 , - 4711 , - 1864 , - 4797 , - 2630 , - 803 , - 4756 , - 3609 , - 2802 , - 2335 , - 2208 , - 2421 , - 2974 , - 3867 , - 5100 , - 1233 , - 3146 , - 5399 , - 2552 , - 45 , - 3318 , - 1491 , - 4 , - 4297 , - 3490 , - 3023 , - 2896 , - 3109 , - 3662 , - 4555 , - 348 , - 1921 , - 3834 , - 647 , - 3240 , - 733 , - 4006 , - 2179 , - 692 , - 4985 , - 4178 , - 3711 , - 3584 , - 3797 , - 4350 , - 5243 , - 1036 , - 2609 , - 4522 , - 1335 , - 3928 , - 1421 , - 4694 , - 2867 , - 1380 , - 233 , - 4866 , - 4399 , - 4272 , - 4485 , - 5038 , - 491 , - 1724 , - 3297 , - 5210 , - 2023 , - 4616 , - 2109 , - 5382 , - 3555 , - 2068 , - 921 , - 114 , - 5087 , - 4960 , - 5173 , - 286 , - 1179 , - 2412 , - 3985 , - 458 , - 2711 , - 5304 , - 2797 , - 630 , - 4243 , - 2756 , - 1609 , - 802 , - 335 , - 208 , - 421 , - 974 , - 1867 , - 3100 , - 4673 , - 1146 , - 3399 , - 552 , - 3485 , - 1318 , - 4931 , - 3444 , - 2297 , - 1490 , - 1023 , - 896 , - 1109 , - 1662 , - 2555 , - 3788 , - 5361 , - 1834 , - 4087 , - 1240 , - 4173 , - 2006 , - 179 , - 4132 , - 2985 , - 2178 , - 1711 , - 1584 , - 1797 , - 2350 , - 3243 , - 4476 , - 609 , - 2522 , - 4775 , - 1928 , - 4861 , - 2694 , - 867 , - 4820 , - 3673 , - 2866 , - 2399 , - 2272 , - 2485 , - 3038 , - 3931 , - 5164 , - 1297 , - 3210 , - 23 , - 2616 , - 109 , - 3382 , - 1555 , - 68 , - 4361 , - 3554 , - 3087 , - 2960 , - 3173 , - 3726 , - 4619 , - 412 , - 1985 , - 3898 , - 711 , - 3304 , - 797 , - 4070 , - 2243 , - 756 , - 5049 , - 4242 , - 3775 , - 3648 , - 3861 , - 4414 , - 5307 , - 1100 , - 2673 , - 4586 , - 1399 , - 3992 , - 1485 , - 4758 , - 2931 , - 1444 , - 297 , - 4930 , - 4463 , - 4336 , - 4549 , - 5102 , - 555 , - 1788 , - 3361 , - 5274 , - 2087 , - 4680 , - 2173 , - 6 , - 3619 , - 2132 , - 985 , - 178 , - 5151 , - 5024 , - 5237 , - 350 , - 1243 , - 2476 , - 4049 , - 522 , - 2775 , - 5368 , - 2861 , - 694 , - 4307 , - 2820 , - 1673 , - 866 , - 399 , - 272 , - 485 , - 1038 , - 1931 , - 3164 , - 4737 , - 1210 , - 3463 , - 616 , - 3549 , - 1382 , - 4995 , - 3508 , - 2361 , - 1554 , - 1087 , - 960 , - 1173 , - 1726 , - 2619 , - 3852 , - 5425 , - 1898 , - 4151 , - 1304 , - 4237 , - 2070 , - 243 , - 4196 , - 3049 , - 2242 , - 1775 , - 1648 , - 1861 , - 2414 , - 3307 , - 4540 , - 673 , - 2586 , - 4839 , - 1992 , - 4925 , - 2758 , - 931 , - 4884 , - 3737 , - 2930 , - 2463 , - 2336 , - 2549 , - 3102 , - 3995 , - 5228 , - 1361 , - 3274 , - 87 , - 2680 , - 173 , - 3446 , - 1619 , - 132 , - 4425 , - 3618 , - 3151 , - 3024 , - 3237 , - 3790 , - 4683 , - 476 , - 2049 , - 3962 , - 775 , - 3368 , - 861 , - 4134 , - 2307 , - 820 , - 5113 , - 4306 , - 3839 , - 3712 , - 3925 , - 4478 , - 5371 , - 1164 , - 2737 , - 4650 , - 1463 , - 4056 , - 1549 , - 4822 , - 2995 , - 1508 , - 361 , - 4994 , - 4527 , - 4400 , - 4613 , - 5166 , - 619 , - 1852 , - 3425 , - 5338 , - 2151 , - 4744 , - 2237 , - 70 , - 3683 , - 2196 , - 1049 , - 242 , - 5215 , - 5088 , - 5301 , - 414 , - 1307 , - 2540 , - 4113 , - 586 , - 2839 , - 5432 , - 2925 , - 758 , - 4371 , - 2884 , - 1737 , - 930 , - 463 , - 336 , - 549 , - 1102 , - 1995 , - 3228 , - 4801 , - 1274 , - 3527 , - 680 , - 3613 , - 1446 , - 5059 , - 3572 , - 2425 , - 1618 , - 1151 , - 1024 , - 1237 , - 1790 , - 2683 , - 3916 , - 49 , - 1962 , - 4215 , - 1368 , - 4301 , - 2134 , - 307 , - 4260 , - 3113 , - 2306 , - 1839 , - 1712 , - 1925 , - 2478 , - 3371 , - 4604 , - 737 , - 2650 , - 4903 , - 2056 , - 4989 , - 2822 , - 995 , - 4948 , - 3801 , - 2994 , - 2527 , - 2400 , - 2613 , - 3166 , - 4059 , - 5292 , - 1425 , - 3338 , - 151 , - 2744 , - 237 , - 3510 , - 1683 , - 196 , - 4489 , - 3682 , - 3215 , - 3088 , - 3301 , - 3854 , - 4747 , - 540 , - 2113 , - 4026 , - 839 , - 3432 , - 925 , - 4198 , - 2371 , - 884 , - 5177 , - 4370 , - 3903 , - 3776 , - 3989 , - 4542 , - 5435 , - 1228 , - 2801 , - 4714 , - 1527 , - 4120 , - 1613 , - 4886 , - 3059 , - 1572 , - 425 , - 5058 , - 4591 , - 4464 , - 4677 , - 5230 , - 683 , - 1916 , - 3489 , - 5402 , - 2215 , - 4808 , - 2301 , - 134 , - 3747 , - 2260 , - 1113 , - 306 , - 5279 , - 5152 , - 5365 , - 478 , - 1371 , - 2604 , - 4177 , - 650 , - 2903 , - 56 , - 2989 , - 822 , - 4435 , - 2948 , - 1801 , - 994 , - 527 , - 400 , - 613 , - 1166 , - 2059 , - 3292 , - 4865 , - 1338 , - 3591 , - 744 , - 3677 , - 1510 , - 5123 , - 3636 , - 2489 , - 1682 , - 1215 , - 1088 , - 1301 , - 1854 , - 2747 , - 3980 , - 113 , - 2026 , - 4279 , - 1432 , - 4365 , - 2198 , - 371 , - 4324 , - 3177 , - 2370 , - 1903 , - 1776 , - 1989 , - 2542 , - 3435 , - 4668 , - 801 , - 2714 , - 4967 , - 2120 , - 5053 , - 2886 , - 1059 , - 5012 , - 3865 , - 3058 , - 2591 , - 2464 , - 2677 , - 3230 , - 4123 , - 5356 , - 1489 , - 3402 , - 215 , - 2808 , - 301 , - 3574 , - 1747 , - 260 , - 4553 , - 3746 , - 3279 , - 3152 , - 3365 , - 3918 , - 4811 , - 604 , - 2177 , - 4090 , - 903 , - 3496 , - 989 , - 4262 , - 2435 , - 948 , - 5241 , - 4434 , - 3967 , - 3840 , - 4053 , - 4606 , - 59 , - 1292 , - 2865 , - 4778 , - 1591 , - 4184 , - 1677 , - 4950 , - 3123 , - 1636 , - 489 , - 5122 , - 4655 , - 4528 , - 4741 , - 5294 , - 747 , - 1980 , - 3553 , - 26 , - 2279 , - 4872 , - 2365 , - 198 , - 3811 , - 2324 , - 1177 , - 370 , - 5343 , - 5216 , - 5429 , - 542 , - 1435 , - 2668 , - 4241 , - 714 , - 2967 , - 120 , - 3053 , - 886 , - 4499 , - 3012 , - 1865 , - 1058 , - 591 , - 464 , - 677 , - 1230 , - 2123 , - 3356 , - 4929 , - 1402 , - 3655 , - 808 , - 3741 , - 1574 , - 5187 , - 3700 , - 2553 , - 1746 , - 1279 , - 1152 , - 1365 , - 1918 , - 2811 , - 4044 , - 177 , - 2090 , - 4343 , - 1496 , - 4429 , - 2262 , - 435 , - 4388 , - 3241 , - 2434 , - 1967 , - 1840 , - 2053 , - 2606 , - 3499 , - 4732 , - 865 , - 2778 , - 5031 , - 2184 , - 5117 , - 2950 , - 1123 , - 5076 , - 3929 , - 3122 , - 2655 , - 2528 , - 2741 , - 3294 , - 4187 , - 5420 , - 1553 , - 3466 , - 279 , - 2872 , - 365 , - 3638 , - 1811 , - 324 , - 4617 , - 3810 , - 3343 , - 3216 , - 3429 , - 3982 , - 4875 , - 668 , - 2241 , - 4154 , - 967 , - 3560 , - 1053 , - 4326 , - 2499 , - 1012 , - 5305 , - 4498 , - 4031 , - 3904 , - 4117 , - 4670 , - 123 , - 1356 , - 2929 , - 4842 , - 1655 , - 4248 , - 1741 , - 5014 , - 3187 , - 1700 , - 553 , - 5186 , - 4719 , - 4592 , - 4805 , - 5358 , - 811 , - 2044 , - 3617 , - 90 , - 2343 , - 4936 , - 2429 , - 262 , - 3875 , - 2388 , - 1241 , - 434 , - 5407 , - 5280 , - 53 , - 606 , - 1499 , - 2732 , - 4305 , - 778 , - 3031 , - 184 , - 3117 , - 950 , - 4563 , - 3076 , - 1929 , - 1122 , - 655 , - 528 , - 741 , - 1294 , - 2187 , - 3420 , - 4993 , - 1466 , - 3719 , - 872 , - 3805 , - 1638 , - 5251 , - 3764 , - 2617 , - 1810 , - 1343 , - 1216 , - 1429 , - 1982 , - 2875 , - 4108 , - 241 , - 2154 , - 4407 , - 1560 , - 4493 , - 2326 , - 499 , - 4452 , - 3305 , - 2498 , - 2031 , - 1904 , - 2117 , - 2670 , - 3563 , - 4796 , - 929 , - 2842 , - 5095 , - 2248 , - 5181 , - 3014 , - 1187 , - 5140 , - 3993 , - 3186 , - 2719 , - 2592 , - 2805 , - 3358 , - 4251 , - 44 , - 1617 , - 3530 , - 343 , - 2936 , - 429 , - 3702 , - 1875 , - 388 , - 4681 , - 3874 , - 3407 , - 3280 , - 3493 , - 4046 , - 4939 , - 732 , - 2305 , - 4218 , - 1031 , - 3624 , - 1117 , - 4390 , - 2563 , - 1076 , - 5369 , - 4562 , - 4095 , - 3968 , - 4181 , - 4734 , - 187 , - 1420 , - 2993 , - 4906 , - 1719 , - 4312 , - 1805 , - 5078 , - 3251 , - 1764 , - 617 , - 5250 , - 4783 , - 4656 , - 4869 , - 5422 , - 875 , - 2108 , - 3681 , - 154 , - 2407 , - 5000 , - 2493 , - 326 , - 3939 , - 2452 , - 1305 , - 498 , - 31 , - 5344 , - 117 , - 670 , - 1563 , - 2796 , - 4369 , - 842 , - 3095 , - 248 , - 3181 , - 1014 , - 4627 , - 3140 , - 1993 , - 1186 , - 719 , - 592 , - 805 , - 1358 , - 2251 , - 3484 , - 5057 , - 1530 , - 3783 , - 936 , - 3869 , - 1702 , - 5315 , - 3828 , - 2681 , - 1874 , - 1407 , - 1280 , - 1493 , - 2046 , - 2939 , - 4172 , - 305 , - 2218 , - 4471 , - 1624 , - 4557 , - 2390 , - 563 , - 4516 , - 3369 , - 2562 , - 2095 , - 1968 , - 2181 , - 2734 , - 3627 , - 4860 , - 993 , - 2906 , - 5159 , - 2312 , - 5245 , - 3078 , - 1251 , - 5204 , - 4057 , - 3250 , - 2783 , - 2656 , - 2869 , - 3422 , - 4315 , - 108 , - 1681 , - 3594 , - 407 , - 3000 , - 493 , - 3766 , - 1939 , - 452 , - 4745 , - 3938 , - 3471 , - 3344 , - 3557 , - 4110 , - 5003 , - 796 , - 2369 , - 4282 , - 1095 , - 3688 , - 1181 , - 4454 , - 2627 , - 1140 , - 5433 , - 4626 , - 4159 , - 4032 , - 4245 , - 4798 , - 251 , - 1484 , - 3057 , - 4970 , - 1783 , - 4376 , - 1869 , - 5142 , - 3315 , - 1828 , - 681 , - 5314 , - 4847 , - 4720 , - 4933 , - 46 , - 939 , - 2172 , - 3745 , - 218 , - 2471 , - 5064 , - 2557 , - 390 , - 4003 , - 2516 , - 1369 , - 562 , - 95 , - 5408 , - 181 , - 734 , - 1627 , - 2860 , - 4433 , - 906 , - 3159 , - 312 , - 3245 , - 1078 , - 4691 , - 3204 , - 2057 , - 1250 , - 783 , - 656 , - 869 , - 1422 , - 2315 , - 3548 , - 5121 , - 1594 , - 3847 , - 1000 , - 3933 , - 1766 , - 5379 , - 3892 , - 2745 , - 1938 , - 1471 , - 1344 , - 1557 , - 2110 , - 3003 , - 4236 , - 369 , - 2282 , - 4535 , - 1688 , - 4621 , - 2454 , - 627 , - 4580 , - 3433 , - 2626 , - 2159 , - 2032 , - 2245 , - 2798 , - 3691 , - 4924 , - 1057 , - 2970 , - 5223 , - 2376 , - 5309 , - 3142 , - 1315 , - 5268 , - 4121 , - 3314 , - 2847 , - 2720 , - 2933 , - 3486 , - 4379 , - 172 , - 1745 , - 3658 , - 471 , - 3064 , - 557 , - 3830 , - 2003 , - 516 , - 4809 , - 4002 , - 3535 , - 3408 , - 3621 , - 4174 , - 5067 , - 860 , - 2433 , - 4346 , - 1159 , - 3752 , - 1245 , - 4518 , - 2691 , - 1204 , - 57 , - 4690 , - 4223 , - 4096 , - 4309 , - 4862 , - 315 , - 1548 , - 3121 , - 5034 , - 1847 , - 4440 , - 1933 , - 5206 , - 3379 , - 1892 , - 745 , - 5378 , - 4911 , - 4784 , - 4997 , - 110 , - 1003 , - 2236 , - 3809 , - 282 , - 2535 , - 5128 , - 2621 , - 454 , - 4067 , - 2580 , - 1433 , - 626 , - 159 , - 32 , - 245 , - 798 , - 1691 , - 2924 , - 4497 , - 970 , - 3223 , - 376 , - 3309 , - 1142 , - 4755 , - 3268 , - 2121 , - 1314 , - 847 , - 720 , - 933 , - 1486 , - 2379 , - 3612 , - 5185 , - 1658 , - 3911 , - 1064 , - 3997 , - 1830 , - 3 , - 3956 , - 2809 , - 2002 , - 1535 , - 1408 , - 1621 , - 2174 , - 3067 , - 4300 , - 433 , - 2346 , - 4599 , - 1752 , - 4685 , - 2518 , - 691 , - 4644 , - 3497 , - 2690 , - 2223 , - 2096 , - 2309 , - 2862 , - 3755 , - 4988 , - 1121 , - 3034 , - 5287 , - 2440 , - 5373 , - 3206 , - 1379 , - 5332 , - 4185 , - 3378 , - 2911 , - 2784 , - 2997 , - 3550 , - 4443 , - 236 , - 1809 , - 3722 , - 535 , - 3128 , - 621 , - 3894 , - 2067 , - 580 , - 4873 , - 4066 , - 3599 , - 3472 , - 3685 , - 4238 , - 5131 , - 924 , - 2497 , - 4410 , - 1223 , - 3816 , - 1309 , - 4582 , - 2755 , - 1268 , - 121 , - 4754 , - 4287 , - 4160 , - 4373 , - 4926 , - 379 , - 1612 , - 3185 , - 5098 , - 1911 , - 4504 , - 1997 , - 5270 , - 3443 , - 1956 , - 809 , - 2 , - 4975 , - 4848 , - 5061 , - 174 , - 1067 , - 2300 , - 3873 , - 346 , - 2599 , - 5192 , - 2685 , - 518 , - 4131 , - 2644 , - 1497 , - 690 , - 223 , - 96 , - 309 , - 862 , - 1755 , - 2988 , - 4561 , - 1034 , - 3287 , - 440 , - 3373 , - 1206 , - 4819 , - 3332 , - 2185 , - 1378 , - 911 , - 784 , - 997 , - 1550 , - 2443 , - 3676 , - 5249 , - 1722 , - 3975 , - 1128 , - 4061 , - 1894 , - 67 , - 4020 , - 2873 , - 2066 , - 1599 , - 1472 , - 1685 , - 2238 , - 3131 , - 4364 , - 497 , - 2410 , - 4663 , - 1816 , - 4749 , - 2582 , - 755 , - 4708 , - 3561 , - 2754 , - 2287 , - 2160 , - 2373 , - 2926 , - 3819 , - 5052 , - 1185 , - 3098 , - 5351 , - 2504 , - 5437 , - 3270 , - 1443 , - 5396 , - 4249 , - 3442 , - 2975 , - 2848 , - 3061 , - 3614 , - 4507 , - 300 , - 1873 , - 3786 , - 599 , - 3192 , - 685 , - 3958 , - 2131 , - 644 , - 4937 , - 4130 , - 3663 , - 3536 , - 3749 , - 4302 , - 5195 , - 988 , - 2561 , - 4474 , - 1287 , - 3880 , - 1373 , - 4646 , - 2819 , - 1332 , - 185 , - 4818 , - 4351 , - 4224 , - 4437 , - 4990 , - 443 , - 1676 , - 3249 , - 5162 , - 1975 , - 4568 , - 2061 , - 5334 , - 3507 , - 2020 , - 873 , - 66 , - 5039 , - 4912 , - 5125 , - 238 , - 1131 , - 2364 , - 3937 , - 410 , - 2663 , - 5256 , - 2749 , - 582 , - 4195 , - 2708 , - 1561 , - 754 , - 287 , - 160 , - 373 , - 926 , - 1819 , - 3052 , - 4625 , - 1098 , - 3351 , - 504 , - 3437 , - 1270 , - 4883 , - 3396 , - 2249 , - 1442 , - 975 , - 848 , - 1061 , - 1614 , - 2507 , - 3740 , - 5313 , - 1786 , - 4039 , - 1192 , - 4125 , - 1958 , - 131 , - 4084 , - 2937 , - 2130 , - 1663 , - 1536 , - 1749 , - 2302 , - 3195 , - 4428 , - 561 , - 2474 , - 4727 , - 1880 , - 4813 , - 2646 , - 819 , - 4772 , - 3625 , - 2818 , - 2351 , - 2224 , - 2437 , - 2990 , - 3883 , - 5116 , - 1249 , - 3162 , - 5415 , - 2568 , - 61 , - 3334 , - 1507 , - 20 , - 4313 , - 3506 , - 3039 , - 2912 , - 3125 , - 3678 , - 4571 , - 364 , - 1937 , - 3850 , - 663 , - 3256 , - 749 , - 4022 , - 2195 , - 708 , - 5001 , - 4194 , - 3727 , - 3600 , - 3813 , - 4366 , - 5259 , - 1052 , - 2625 , - 4538 , - 1351 , - 3944 , - 1437 , - 4710 , - 2883 , - 1396 , - 249 , - 4882 , - 4415 , - 4288 , - 4501 , - 5054 , - 507 , - 1740 , - 3313 , - 5226 , - 2039 , - 4632 , - 2125 , - 5398 , - 3571 , - 2084 , - 937 , - 130 , - 5103 , - 4976 , - 5189 , - 302 , - 1195 , - 2428 , - 4001 , - 474 , - 2727 , - 5320 , - 2813 , - 646 , - 4259 , - 2772 , - 1625 , - 818 , - 351 , - 224 , - 437 , - 990 , - 1883 , - 3116 , - 4689 , - 1162 , - 3415 , - 568 , - 3501 , - 1334 , - 4947 , - 3460 , - 2313 , - 1506 , - 1039 , - 912 , - 1125 , - 1678 , - 2571 , - 3804 , - 5377 , - 1850 , - 4103 , - 1256 , - 4189 , - 2022 , - 195 , - 4148 , - 3001 , - 2194 , - 1727 , - 1600 , - 1813 , - 2366 , - 3259 , - 4492 , - 625 , - 2538 , - 4791 , - 1944 , - 4877 , - 2710 , - 883 , - 4836 , - 3689 , - 2882 , - 2415 , - 2288 , - 2501 , - 3054 , - 3947 , - 5180 , - 1313 , - 3226 , - 39 , - 2632 , - 125 , - 3398 , - 1571 , - 84 , - 4377 , - 3570 , - 3103 , - 2976 , - 3189 , - 3742 , - 4635 , - 428 , - 2001 , - 3914 , - 727 , - 3320 , - 813 , - 4086 , - 2259 , - 772 , - 5065 , - 4258 , - 3791 , - 3664 , - 3877 , - 4430 , - 5323 , - 1116 , - 2689 , - 4602 , - 1415 , - 4008 , - 1501 , - 4774 , - 2947 , - 1460 , - 313 , - 4946 , - 4479 , - 4352 , - 4565 , - 5118 , - 571 , - 1804 , - 3377 , - 5290 , - 2103 , - 4696 , - 2189 , - 22 , - 3635 , - 2148 , - 1001 , - 194 , - 5167 , - 5040 , - 5253 , - 366 , - 1259 , - 2492 , - 4065 , - 538 , - 2791 , - 5384 , - 2877 , - 710 , - 4323 , - 2836 , - 1689 , - 882 , - 415 , - 288 , - 501 , - 1054 , - 1947 , - 3180 , - 4753 , - 1226 , - 3479 , - 632 , - 3565 , - 1398 , - 5011 , - 3524 , - 2377 , - 1570 , - 1103 , - 976 , - 1189 , - 1742 , - 2635 , - 3868 , - 1 , - 1914 , - 4167 , - 1320 , - 4253 , - 2086 , - 259 , - 4212 , - 3065 , - 2258 , - 1791 , - 1664 , - 1877 , - 2430 , - 3323 , - 4556 , - 689 , - 2602 , - 4855 , - 2008 , - 4941 , - 2774 , - 947 , - 4900 , - 3753 , - 2946 , - 2479 , - 2352 , - 2565 , - 3118 , - 4011 , - 5244 , - 1377 , - 3290 , - 103 , - 2696 , - 189 , - 3462 , - 1635 , - 148 , - 4441 , - 3634 , - 3167 , - 3040 , - 3253 , - 3806 , - 4699 , - 492 , - 2065 , - 3978 , - 791 , - 3384 , - 877 , - 4150 , - 2323 , - 836 , - 5129 , - 4322 , - 3855 , - 3728 , - 3941 , - 4494 , - 5387 , - 1180 , - 2753 , - 4666 , - 1479 , - 4072 , - 1565 , - 4838 , - 3011 , - 1524 , - 377 , - 5010 , - 4543 , - 4416 , - 4629 , - 5182 , - 635 , - 1868 , - 3441 , - 5354 , - 2167 , - 4760 , - 2253 , - 86 , - 3699 , - 2212 , - 1065 , - 258 , - 5231 , - 5104 , - 5317 , - 430 , - 1323 , - 2556 , - 4129 , - 602 , - 2855 , - 8 , - 2941 , - 774 , - 4387 , - 2900 , - 1753 , - 946 , - 479 , - 352 , - 565 , - 1118 , - 2011 , - 3244 , - 4817 , - 1290 , - 3543 , - 696 , - 3629 , - 1462 , - 5075 , - 3588 , - 2441 , - 1634 , - 1167 , - 1040 , - 1253 , - 1806 , - 2699 , - 3932 , - 65 , - 1978 , - 4231 , - 1384 , - 4317 , - 2150 , - 323 , - 4276 , - 3129 , - 2322 , - 1855 , - 1728 , - 1941 , - 2494 , - 3387 , - 4620 , - 753 , - 2666 , - 4919 , - 2072 , - 5005 , - 2838 , - 1011 , - 4964 , - 3817 , - 3010 , - 2543 , - 2416 , - 2629 , - 3182 , - 4075 , - 5308 , - 1441 , - 3354 , - 167 , - 2760 , - 253 , - 3526 , - 1699 , - 212 , - 4505 , - 3698 , - 3231 , - 3104 , - 3317 , - 3870 , - 4763 , - 556 , - 2129 , - 4042 , - 855 , - 3448 , - 941 , - 4214 , - 2387 , - 900 , - 5193 , - 4386 , - 3919 , - 3792 , - 4005 , - 4558 , - 11 , - 1244 , - 2817 , - 4730 , - 1543 , - 4136 , - 1629 , - 4902 , - 3075 , - 1588 , - 441 , - 5074 , - 4607 , - 4480 , - 4693 , - 5246 , - 699 , - 1932 , - 3505 , - 5418 , - 2231 , - 4824 , - 2317 , - 150 , - 3763 , - 2276 , - 1129 , - 322 , - 5295 , - 5168 , - 5381 , - 494 , - 1387 , - 2620 , - 4193 , - 666 , - 2919 , - 72 , - 3005 , - 838 , - 4451 , - 2964 , - 1817 , - 1010 , - 543 , - 416 , - 629 , - 1182 , - 2075 , - 3308 , - 4881 , - 1354 , - 3607 , - 760 , - 3693 , - 1526 , - 5139 , - 3652 , - 2505 , - 1698 , - 1231 , - 1104 , - 1317 , - 1870 , - 2763 , - 3996 , - 129 , - 2042 , - 4295 , - 1448 , - 4381 , - 2214 , - 387 , - 4340 , - 3193 , - 2386 , - 1919 , - 1792 , - 2005 , - 2558 , - 3451 , - 4684 , - 817 , - 2730 , - 4983 , - 2136 , - 5069 , - 2902 , - 1075 , - 5028 , - 3881 , - 3074 , - 2607 , - 2480 , - 2693 , - 3246 , - 4139 , - 5372 , - 1505 , - 3418 , - 231 , - 2824 , - 317 , - 3590 , - 1763 , - 276 , - 4569 , - 3762 , - 3295 , - 3168 , - 3381 , - 3934 , - 4827 , - 620 , - 2193 , - 4106 , - 919 , - 3512 , - 1005 , - 4278 , - 2451 , - 964 , - 5257 , - 4450 , - 3983 , - 3856 , - 4069 , - 4622 , - 75 , - 1308 , - 2881 , - 4794 , - 1607 , - 4200 , - 1693 , - 4966 , - 3139 , - 1652 , - 505 , - 5138 , - 4671 , - 4544 , - 4757 , - 5310 , - 763 , - 1996 , - 3569 , - 42 , - 2295 , - 4888 , - 2381 , - 214 , - 3827 , - 2340 , - 1193 , - 386 , - 5359 , - 5232 , - 5 , - 558 , - 1451 , - 2684 , - 4257 , - 730 , - 2983 , - 136 , - 3069 , - 902 , - 4515 , - 3028 , - 1881 , - 1074 , - 607 , - 480 , - 693 , - 1246 , - 2139 , - 3372 , - 4945 , - 1418 , - 3671 , - 824 , - 3757 , - 1590 , - 5203 , - 3716 , - 2569 , - 1762 , - 1295 , - 1168 , - 1381 , - 1934 , - 2827 , - 4060 , - 193 , - 2106 , - 4359 , - 1512 , - 4445 , - 2278 , - 451 , - 4404 , - 3257 , - 2450 , - 1983 , - 1856 , - 2069 , - 2622 , - 3515 , - 4748 , - 881 , - 2794 , - 5047 , - 2200 , - 5133 , - 2966 , - 1139 , - 5092 , - 3945 , - 3138 , - 2671 , - 2544 , - 2757 , - 3310 , - 4203 , - 5436 , - 1569 , - 3482 , - 295 , - 2888 , - 381 , - 3654 , - 1827 , - 340 , - 4633 , - 3826 , - 3359 , - 3232 , - 3445 , - 3998 , - 4891 , - 684 , - 2257 , - 4170 , - 983 , - 3576 , - 1069 , - 4342 , - 2515 , - 1028 , - 5321 , - 4514 , - 4047 , - 3920 , - 4133 , - 4686 , - 139 , - 1372 , - 2945 , - 4858 , - 1671 , - 4264 , - 1757 , - 5030 , - 3203 , - 1716 , - 569 , - 5202 , - 4735 , - 4608 , - 4821 , - 5374 , - 827 , - 2060 , - 3633 , - 106 , - 2359 , - 4952 , - 2445 , - 278 , - 3891 , - 2404 , - 1257 , - 450 , - 5423 , - 5296 , - 69 , - 622 , - 1515 , - 2748 , - 4321 , - 794 , - 3047 , - 200 , - 3133 , - 966 , - 4579 , - 3092 , - 1945 , - 1138 , - 671 , - 544 , - 757 , - 1310 , - 2203 , - 3436 , - 5009 , - 1482 , - 3735 , - 888 , - 3821 , - 1654 , - 5267 , - 3780 , - 2633 , - 1826 , - 1359 , - 1232 , - 1445 , - 1998 , - 2891 , - 4124 , - 257 , - 2170 , - 4423 , - 1576 , - 4509 , - 2342 , - 515 , - 4468 , - 3321 , - 2514 , - 2047 , - 1920 , - 2133 , - 2686 , - 3579 , - 4812 , - 945 , - 2858 , - 5111 , - 2264 , - 5197 , - 3030 , - 1203 , - 5156 , - 4009 , - 3202 , - 2735 , - 2608 , - 2821 , - 3374 , - 4267 , - 60 , - 1633 , - 3546 , - 359 , - 2952 , - 445 , - 3718 , - 1891 , - 404 , - 4697 , - 3890 , - 3423 , - 3296 , - 3509 , - 4062 , - 4955 , - 748 , - 2321 , - 4234 , - 1047 , - 3640 , - 1133 , - 4406 , - 2579 , - 1092 , - 5385 , - 4578 , - 4111 , - 3984 , - 4197 , - 4750 , - 203 , - 1436 , - 3009 , - 4922 , - 1735 , - 4328 , - 1821 , - 5094 , - 3267 , - 1780 , - 633 , - 5266 , - 4799 , - 4672 , - 4885 , - 5438 , - 891 , - 2124 , - 3697 , - 170 , - 2423 , - 5016 , - 2509 , - 342 , - 3955 , - 2468 , - 1321 , - 514 , - 47 , - 5360 , - 133 , - 686 , - 1579 , - 2812 , - 4385 , - 858 , - 3111 , - 264 , - 3197 , - 1030 , - 4643 , - 3156 , - 2009 , - 1202 , - 735 , - 608 , - 821 , - 1374 , - 2267 , - 3500 , - 5073 , - 1546 , - 3799 , - 952 , - 3885 , - 1718 , - 5331 , - 3844 , - 2697 , - 1890 , - 1423 , - 1296 , - 1509 , - 2062 , - 2955 , - 4188 , - 321 , - 2234 , - 4487 , - 1640 , - 4573 , - 2406 , - 579 , - 4532 , - 3385 , - 2578 , - 2111 , - 1984 , - 2197 , - 2750 , - 3643 , - 4876 , - 1009 , - 2922 , - 5175 , - 2328 , - 5261 , - 3094 , - 1267 , - 5220 , - 4073 , - 3266 , - 2799 , - 2672 , - 2885 , - 3438 , - 4331 , - 124 , - 1697 , - 3610 , - 423 , - 3016 , - 509 , - 3782 , - 1955 , - 468 , - 4761 , - 3954 , - 3487 , - 3360 , - 3573 , - 4126 , - 5019 , - 812 , - 2385 , - 4298 , - 1111 , - 3704 , - 1197 , - 4470 , - 2643 , - 1156 , - 9 , - 4642 , - 4175 , - 4048 , - 4261 , - 4814 , - 267 , - 1500 , - 3073 , - 4986 , - 1799 , - 4392 , - 1885 , - 5158 , - 3331 , - 1844 , - 697 , - 5330 , - 4863 , - 4736 , - 4949 , - 62 , - 955 , - 2188 , - 3761 , - 234 , - 2487 , - 5080 , - 2573 , - 406 , - 4019 , - 2532 , - 1385 , - 578 , - 111 , - 5424 , - 197 , - 750 , - 1643 , - 2876 , - 4449 , - 922 , - 3175 , - 328 , - 3261 , - 1094 , - 4707 , - 3220 , - 2073 , - 1266 , - 799 , - 672 , - 885 , - 1438 , - 2331 , - 3564 , - 5137 , - 1610 , - 3863 , - 1016 , - 3949 , - 1782 , - 5395 , - 3908 , - 2761 , - 1954 , - 1487 , - 1360 , - 1573 , - 2126 , - 3019 , - 4252 , - 385 , - 2298 , - 4551 , - 1704 , - 4637 , - 2470 , - 643 , - 4596 , - 3449 , - 2642 , - 2175 , - 2048 , - 2261 , - 2814 , - 3707 , - 4940 , - 1073 , - 2986 , - 5239 , - 2392 , - 5325 , - 3158 , - 1331 , - 5284 , - 4137 , - 3330 , - 2863 , - 2736 , - 2949 , - 3502 , - 4395 , - 188 , - 1761 , - 3674 , - 487 , - 3080 , - 573 , - 3846 , - 2019 , - 532 , - 4825 , - 4018 , - 3551 , - 3424 , - 3637 , - 4190 , - 5083 , - 876 , - 2449 , - 4362 , - 1175 , - 3768 , - 1261 , - 4534 , - 2707 , - 1220 , - 73 , - 4706 , - 4239 , - 4112 , - 4325 , - 4878 , - 331 , - 1564 , - 3137 , - 5050 , - 1863 , - 4456 , - 1949 , - 5222 , - 3395 , - 1908 , - 761 , - 5394 , - 4927 , - 4800 , - 5013 , - 126 , - 1019 , - 2252 , - 3825 , - 298 , - 2551 , - 5144 , - 2637 , - 470 , - 4083 , - 2596 , - 1449 , - 642 , - 175 , - 48 , - 261 , - 814 , - 1707 , - 2940 , - 4513 , - 986 , - 3239 , - 392 , - 3325 , - 1158 , - 4771 , - 3284 , - 2137 , - 1330 , - 863 , - 736 , - 949 , - 1502 , - 2395 , - 3628 , - 5201 , - 1674 , - 3927 , - 1080 , - 4013 , - 1846 , - 19 , - 3972 , - 2825 , - 2018 , - 1551 , - 1424 , - 1637 , - 2190 , - 3083 , - 4316 , - 449 , - 2362 , - 4615 , - 1768 , - 4701 , - 2534 , - 707 , - 4660 , - 3513 , - 2706 , - 2239 , - 2112 , - 2325 , - 2878 , - 3771 , - 5004 , - 1137 , - 3050 , - 5303 , - 2456 , - 5389 , - 3222 , - 1395 , - 5348 , - 4201 , - 3394 , - 2927 , - 2800 , - 3013 , - 3566 , - 4459 , - 252 , - 1825 , - 3738 , - 551 , - 3144 , - 637 , - 3910 , - 2083 , - 596 , - 4889 , - 4082 , - 3615 , - 3488 , - 3701 , - 4254 , - 5147 , - 940 , - 2513 , - 4426 , - 1239 , - 3832 , - 1325 , - 4598 , - 2771 , - 1284 , - 137 , - 4770 , - 4303 , - 4176 , - 4389 , - 4942 , - 395 , - 1628 , - 3201 , - 5114 , - 1927 , - 4520 , - 2013 , - 5286 , - 3459 , - 1972 , - 825 , - 18 , - 4991 , - 4864 , - 5077 , - 190 , - 1083 , - 2316 , - 3889 , - 362 , - 2615 , - 5208 , - 2701 , - 534 , - 4147 , - 2660 , - 1513 , - 706 , - 239 , - 112 , - 325 , - 878 , - 1771 , - 3004 , - 4577 , - 1050 , - 3303 , - 456 , - 3389 , - 1222 , - 4835 , - 3348 , - 2201 , - 1394 , - 927 , - 800 , - 1013 , - 1566 , - 2459 , - 3692 , - 5265 , - 1738 , - 3991 , - 1144 , - 4077 , - 1910 , - 83 , - 4036 , - 2889 , - 2082 , - 1615 , - 1488 , - 1701 , - 2254 , - 3147 , - 4380 , - 513 , - 2426 , - 4679 , - 1832 , - 4765 , - 2598 , - 771 , - 4724 , - 3577 , - 2770 , - 2303 , - 2176 , - 2389 , - 2942 , - 3835 , - 5068 , - 1201 , - 3114 , - 5367 , - 2520 , - 13 , - 3286 , - 1459 , - 5412 , - 4265 , - 3458 , - 2991 , - 2864 , - 3077 , - 3630 , - 4523 , - 316 , - 1889 , - 3802 , - 615 , - 3208 , - 701 , - 3974 , - 2147 , - 660 , - 4953 , - 4146 , - 3679 , - 3552 , - 3765 , - 4318 , - 5211 , - 1004 , - 2577 , - 4490 , - 1303 , - 3896 , - 1389 , - 4662 , - 2835 , - 1348 , - 201 , - 4834 , - 4367 , - 4240 , - 4453 , - 5006 , - 459 , - 1692 , - 3265 , - 5178 , - 1991 , - 4584 , - 2077 , - 5350 , - 3523 , - 2036 , - 889 , - 82 , - 5055 , - 4928 , - 5141 , - 254 , - 1147 , - 2380 , - 3953 , - 426 , - 2679 , - 5272 , - 2765 , - 598 , - 4211 , - 2724 , - 1577 , - 770 , - 303 , - 176 , - 389 , - 942 , - 1835 , - 3068 , - 4641 , - 1114 , - 3367 , - 520 , - 3453 , - 1286 , - 4899 , - 3412 , - 2265 , - 1458 , - 991 , - 864 , - 1077 , - 1630 , - 2523 , - 3756 , - 5329 , - 1802 , - 4055 , - 1208 , - 4141 , - 1974 , - 147 , - 4100 , - 2953 , - 2146 , - 1679 , - 1552 , - 1765 , - 2318 , - 3211 , - 4444 , - 577 , - 2490 , - 4743 , - 1896 , - 4829 , - 2662 , - 835 , - 4788 , - 3641 , - 2834 , - 2367 , - 2240 , - 2453 , - 3006 , - 3899 , - 5132 , - 1265 , - 3178 , - 5431 , - 2584 , - 77 , - 3350 , - 1523 , - 36 , - 4329 , - 3522 , - 3055 , - 2928 , - 3141 , - 3694 , - 4587 , - 380 , - 1953 , - 3866 , - 679 , - 3272 , - 765 , - 4038 , - 2211 , - 724 , - 5017 , - 4210 , - 3743 , - 3616 , - 3829 , - 4382 , - 5275 , - 1068 , - 2641 , - 4554 , - 1367 , - 3960 , - 1453 , - 4726 , - 2899 , - 1412 , - 265 , - 4898 , - 4431 , - 4304 , - 4517 , - 5070 , - 523 , - 1756 , - 3329 , - 5242 , - 2055 , - 4648 , - 2141 , - 5414 , - 3587 , - 2100 , - 953 , - 146 , - 5119 , - 4992 , - 5205 , - 318 , - 1211 , - 2444 , - 4017 , - 490 , - 2743 , - 5336 , - 2829 , - 662 , - 4275 , - 2788 , - 1641 , - 834 , - 367 , - 240 , - 453 , - 1006 , - 1899 , - 3132 , - 4705 , - 1178 , - 3431 , - 584 , - 3517 , - 1350 , - 4963 , - 3476 , - 2329 , - 1522 , - 1055 , - 928 , - 1141 , - 1694 , - 2587 , - 3820 , - 5393 , - 1866 , - 4119 , - 1272 , - 4205 , - 2038 , - 211 , - 4164 , - 3017 , - 2210 , - 1743 , - 1616 , - 1829 , - 2382 , - 3275 , - 4508 , - 641 , - 2554 , - 4807 , - 1960 , - 4893 , - 2726 , - 899 , - 4852 , - 3705 , - 2898 , - 2431 , - 2304 , - 2517 , - 3070 , - 3963 , - 5196 , - 1329 , - 3242 , - 55 , - 2648 , - 141 , - 3414 , - 1587 , - 100 , - 4393 , - 3586 , - 3119 , - 2992 , - 3205 , - 3758 , - 4651 , - 444 , - 2017 , - 3930 , - 743 , - 3336 , - 829 , - 4102 , - 2275 , - 788 , - 5081 , - 4274 , - 3807 , - 3680 , - 3893 , - 4446 , - 5339 , - 1132 , - 2705 , - 4618 , - 1431 , - 4024 , - 1517 , - 4790 , - 2963 , - 1476 , - 329 , - 4962 , - 4495 , - 4368 , - 4581 , - 5134 , - 587 , - 1820 , - 3393 , - 5306 , - 2119 , - 4712 , - 2205 , - 38 , - 3651 , - 2164 , - 1017 , - 210 , - 5183 , - 5056 , - 5269 , - 382 , - 1275 , - 2508 , - 4081 , - 554 , - 2807 , - 5400 , - 2893 , - 726 , - 4339 , - 2852 , - 1705 , - 898 , - 431 , - 304 , - 517 , - 1070 , - 1963 , - 3196 , - 4769 , - 1242 , - 3495 , - 648 , - 3581 , - 1414 , - 5027 , - 3540 , - 2393 , - 1586 , - 1119 , - 992 , - 1205 , - 1758 , - 2651 , - 3884 , - 17 , - 1930 , - 4183 , - 1336 , - 4269 , - 2102 , - 275 , - 4228 , - 3081 , - 2274 , - 1807 , - 1680 , - 1893 , - 2446 , - 3339 , - 4572 , - 705 , - 2618 , - 4871 , - 2024 , - 4957 , - 2790 , - 963 , - 4916 , - 3769 , - 2962 , - 2495 , - 2368 , - 2581 , - 3134 , - 4027 , - 5260 , - 1393 , - 3306 , - 119 , - 2712 , - 205 , - 3478 , - 1651 , - 164 , - 4457 , - 3650 , - 3183 , - 3056 , - 3269 , - 3822 , - 4715 , - 508 , - 2081 , - 3994 , - 807 , - 3400 , - 893 , - 4166 , - 2339 , - 852 , - 5145 , - 4338 , - 3871 , - 3744 , - 3957 , - 4510 , - 5403 , - 1196 , - 2769 , - 4682 , - 1495 , - 4088 , - 1581 , - 4854 , - 3027 , - 1540 , - 393 , - 5026 , - 4559 , - 4432 , - 4645 , - 5198 , - 651 , - 1884 , - 3457 , - 5370 , - 2183 , - 4776 , - 2269 , - 102 , - 3715 , - 2228 , - 1081 , - 274 , - 5247 , - 5120 , - 5333 , - 446 , - 1339 , - 2572 , - 4145 , - 618 , - 2871 , - 24 , - 2957 , - 790 , - 4403 , - 2916 , - 1769 , - 962 , - 495 , - 368 , - 581 , - 1134 , - 2027 , - 3260 , - 4833 , - 1306 , - 3559 , - 712 , - 3645 , - 1478 , - 5091 , - 3604 , - 2457 , - 1650 , - 1183 , - 1056 , - 1269 , - 1822 , - 2715 , - 3948 , - 81 , - 1994 , - 4247 , - 1400 , - 4333 , - 2166 , - 339 , - 4292 , - 3145 , - 2338 , - 1871 , - 1744 , - 1957 , - 2510 , - 3403 , - 4636 , - 769 , - 2682 , - 4935 , - 2088 , - 5021 , - 2854 , - 1027 , - 4980 , - 3833 , - 3026 , - 2559 , - 2432 , - 2645 , - 3198 , - 4091 , - 5324 , - 1457 , - 3370 , - 183 , - 2776 , - 269 , - 3542 , - 1715 , - 228 , - 4521 , - 3714 , - 3247 , - 3120 , - 3333 , - 3886 , - 4779 , - 572 , - 2145 , - 4058 , - 871 , - 3464 , - 957 , - 4230 , - 2403 , - 916 , - 5209 , - 4402 , - 3935 , - 3808 , - 4021 , - 4574 , - 27 , - 1260 , - 2833 , - 4746 , - 1559 , - 4152 , - 1645 , - 4918 , - 3091 , - 1604 , - 457 , - 5090 , - 4623 , - 4496 , - 4709 , - 5262 , - 715 , - 1948 , - 3521 , - 5434 , - 2247 , - 4840 , - 2333 , - 166 , - 3779 , - 2292 , - 1145 , - 338 , - 5311 , - 5184 , - 5397 , - 510 , - 1403 , - 2636 , - 4209 , - 682 , - 2935 , - 88 , - 3021 , - 854 , - 4467 , - 2980 , - 1833 , - 1026 , - 559 , - 432 , - 645 , - 1198 , - 2091 , - 3324 , - 4897 , - 1370 , - 3623 , - 776 , - 3709 , - 1542 , - 5155 , - 3668 , - 2521 , - 1714 , - 1247 , - 1120 , - 1333 , - 1886 , - 2779 , - 4012 , - 145 , - 2058 , - 4311 , - 1464 , - 4397 , - 2230 , - 403 , - 4356 , - 3209 , - 2402 , - 1935 , - 1808 , - 2021 , - 2574 , - 3467 , - 4700 , - 833 , - 2746 , - 4999 , - 2152 , - 5085 , - 2918 , - 1091 , - 5044 , - 3897 , - 3090 , - 2623 , - 2496 , - 2709 , - 3262 , - 4155 , - 5388 , - 1521 , - 3434 , - 247 , - 2840 , - 333 , - 3606 , - 1779 , - 292 , - 4585 , - 3778 , - 3311 , - 3184 , - 3397 , - 3950 , - 4843 , - 636 , - 2209 , - 4122 , - 935 , - 3528 , - 1021 , - 4294 , - 2467 , - 980 , - 5273 , - 4466 , - 3999 , - 3872 , - 4085 , - 4638 , - 91 , - 1324 , - 2897 , - 4810 , - 1623 , - 4216 , - 1709 , - 4982 , - 3155 , - 1668 , - 521 , - 5154 , - 4687 , - 4560 , - 4773 , - 5326 , - 779 , - 2012 , - 3585 , - 58 , - 2311 , - 4904 , - 2397 , - 230 , - 3843 , - 2356 , - 1209 , - 402 , - 5375 , - 5248 , - 21 , - 574 , - 1467 , - 2700 , - 4273 , - 746 , - 2999 , - 152 , - 3085 , - 918 , - 4531 , - 3044 , - 1897 , - 1090 , - 623 , - 496 , - 709 , - 1262 , - 2155 , - 3388 , - 4961 , - 1434 , - 3687 , - 840 , - 3773 , - 1606 , - 5219 , - 3732 , - 2585 , - 1778 , - 1311 , - 1184 , - 1397 , - 1950 , - 2843 , - 4076 , - 209 , - 2122 , - 4375 , - 1528 , - 4461 , - 2294 , - 467 , - 4420 , - 3273 , - 2466 , - 1999 , - 1872 , - 2085 , - 2638 , - 3531 , - 4764 , - 897 , - 2810 , - 5063 , - 2216 , - 5149 , - 2982 , - 1155 , - 5108 , - 3961 , - 3154 , - 2687 , - 2560 , - 2773 , - 3326 , - 4219 , - 12 , - 1585 , - 3498 , - 311 , - 2904 , - 397 , - 3670 , - 1843 , - 356 , - 4649 , - 3842 , - 3375 , - 3248 , - 3461 , - 4014 , - 4907 , - 700 , - 2273 , - 4186 , - 999 , - 3592 , - 1085 , - 4358 , - 2531 , - 1044 , - 5337 , - 4530 , - 4063 , - 3936 , - 4149 , - 4702 , - 155 , - 1388 , - 2961 , - 4874 , - 1687 , - 4280 , - 1773 , - 5046 , - 3219 , - 1732 , - 585 , - 5218 , - 4751 , - 4624 , - 4837 , - 5390 , - 843 , - 2076 , - 3649 , - 122 , - 2375 , - 4968 , - 2461 , - 294 , - 3907 , - 2420 , - 1273 , - 466 , - 5439 , - 5312 , - 85 , - 638 , - 1531 , - 2764 , - 4337 , - 810 , - 3063 , - 216 , - 3149 , - 982 , - 4595 , - 3108 , - 1961 , - 1154 , - 687 , - 560 , - 773 , - 1326 , - 2219 , - 3452 , - 5025 , - 1498 , - 3751 , - 904 , - 3837 , - 1670 , - 5283 , - 3796 , - 2649 , - 1842 , - 1375 , - 1248 , - 1461 , - 2014 , - 2907 , - 4140 , - 273 , - 2186 , - 4439 , - 1592 , - 4525 , - 2358 , - 531 , - 4484 , - 3337 , - 2530 , - 2063 , - 1936 , - 2149 , - 2702 , - 3595 , - 4828 , - 961 , - 2874 , - 5127 , - 2280 , - 5213 , - 3046 , - 1219 , - 5172 , - 4025 , - 3218 , - 2751 , - 2624 , - 2837 , - 3390 , - 4283 , - 76 , - 1649 , - 3562 , - 375 , - 2968 , - 461 , - 3734 , - 1907 , - 420 , - 4713 , - 3906 , - 3439 , - 3312 , - 3525 , - 4078 , - 4971 , - 764 , - 2337 , - 4250 , - 1063 , - 3656 , - 1149 , - 4422 , - 2595 , - 1108 , - 5401 , - 4594 , - 4127 , - 4000 , - 4213 , - 4766 , - 219 , - 1452 , - 3025 , - 4938 , - 1751 , - 4344 , - 1837 , - 5110 , - 3283 , - 1796 , - 649 , - 5282 , - 4815 , - 4688 , - 4901 , - 14 , - 907 , - 2140 , - 3713 , - 186 , - 2439 , - 5032 , - 2525 , - 358 , - 3971 , - 2484 , - 1337 , - 530 , - 63 , - 5376 , - 149 , - 702 , - 1595 , - 2828 , - 4401 , - 874 , - 3127 , - 280 , - 3213 , - 1046 , - 4659 , - 3172 , - 2025 , - 1218 , - 751 , - 624 , - 837 , - 1390 , - 2283 , - 3516 , - 5089 , - 1562 , - 3815 , - 968 , - 3901 , - 1734 , - 5347 , - 3860 , - 2713 , - 1906 , - 1439 , - 1312 , - 1525 , - 2078 , - 2971 , - 4204 , - 337 , - 2250 , - 4503 , - 1656 , - 4589 , - 2422 , - 595 , - 4548 , - 3401 , - 2594 , - 2127 , - 2000 , - 2213 , - 2766 , - 3659 , - 4892 , - 1025 , - 2938 , - 5191 , - 2344 , - 5277 , - 3110 , - 1283 , - 5236 , - 4089 , - 3282 , - 2815 , - 2688 , - 2901 , - 3454 , - 4347 , - 140 , - 1713 , - 3626 , - 439 , - 3032 , - 525 , - 3798 , - 1971 , - 484 , - 4777 , - 3970 , - 3503 , - 3376 , - 3589 , - 4142 , - 5035 , - 828 , - 2401 , - 4314 , - 1127 , - 3720 , - 1213 , - 4486 , - 2659 , - 1172 , - 25 , - 4658 , - 4191 , - 4064 , - 4277 , - 4830 , - 283 , - 1516 , - 3089 , - 5002 , - 1815 , - 4408 , - 1901 , - 5174 , - 3347 , - 1860 , - 713 , - 5346 , - 4879 , - 4752 , - 4965 , - 78 , - 971 , - 2204 , - 3777 , - 250 , - 2503 , - 5096 , - 2589 , - 422 , - 4035 , - 2548 , - 1401 , - 594 , - 127 , - 0 , - 107 , - 386 , - 837 , - 1460 , - 2255 , - 3222 , - 4361 , - 168 , - 1651 , - 3306 , - 5133 , - 1628 , - 3799 , - 638 , - 3153 , - 336 , - 3195 , - 722 , - 3925 , - 1796 , - 5343 , - 3558 , - 1945 , - 504 , - 4739 , - 3642 , - 2717 , - 1964 , - 1383 , - 974 , - 737 , - 672 , - 779 , - 1058 , - 1509 , - 2132 , - 2927 , - 3894 , - 5033 , - 840 , - 2323 , - 3978 , - 301 , - 2300 , - 4471 , - 1310 , - 3825 , - 1008 , - 3867 , - 1394 , - 4597 , - 2468 , - 511 , - 4230 , - 2617 , - 1176 , - 5411 , - 4314 , - 3389 , - 2636 , - 2055 , - 1646 , - 1409 , - 1344 , - 1451 , - 1730 , - 2181 , - 2804 , - 3599 , - 4566 , - 201 , - 1512 , - 2995 , - 4650 , - 973 , - 2972 , - 5143 , - 1982 , - 4497 , - 1680 , - 4539 , - 2066 , - 5269 , - 3140 , - 1183 , - 4902 , - 3289 , - 1848 , - 579 , - 4986 , - 4061 , - 3308 , - 2727 , - 2318 , - 2081 , - 2016 , - 2123 , - 2402 , - 2853 , - 3476 , - 4271 , - 5238 , - 873 , - 2184 , - 3667 , - 5322 , - 1645 , - 3644 , - 311 , - 2654 , - 5169 , - 2352 , - 5211 , - 2738 , - 437 , - 3812 , - 1855 , - 70 , - 3961 , - 2520 , - 1251 , - 154 , - 4733 , - 3980 , - 3399 , - 2990 , - 2753 , - 2688 , - 2795 , - 3074 , - 3525 , - 4148 , - 4943 , - 406 , - 1545 , - 2856 , - 4339 , - 490 , - 2317 , - 4316 , - 983 , - 3326 , - 337 , - 3024 , - 379 , - 3410 , - 1109 , - 4484 , - 2527 , - 742 , - 4633 , - 3192 , - 1923 , - 826 , - 5405 , - 4652 , - 4071 , - 3662 , - 3425 , - 3360 , - 3467 , - 3746 , - 4197 , - 4820 , - 111 , - 1078 , - 2217 , - 3528 , - 5011 , - 1162 , - 2989 , - 4988 , - 1655 , - 3998 , - 1009 , - 3696 , - 1051 , - 4082 , - 1781 , - 5156 , - 3199 , - 1414 , - 5305 , - 3864 , - 2595 , - 1498 , - 573 , - 5324 , - 4743 , - 4334 , - 4097 , - 4032 , - 4139 , - 4418 , - 4869 , - 5492 , - 783 , - 1750 , - 2889 , - 4200 , - 179 , - 1834 , - 3661 , - 156 , - 2327 , - 4670 , - 1681 , - 4368 , - 1723 , - 4754 , - 2453 , - 324 , - 3871 , - 2086 , - 473 , - 4536 , - 3267 , - 2170 , - 1245 , - 492 , - 5415 , - 5006 , - 4769 , - 4704 , - 4811 , - 5090 , - 37 , - 660 , - 1455 , - 2422 , - 3561 , - 4872 , - 851 , - 2506 , - 4333 , - 828 , - 2999 , - 5342 , - 2353 , - 5040 , - 2395 , - 5426 , - 3125 , - 996 , - 4543 , - 2758 , - 1145 , - 5208 , - 3939 , - 2842 , - 1917 , - 1164 , - 583 , - 174 , - 5441 , - 5376 , - 5483 , - 258 , - 709 , - 1332 , - 2127 , - 3094 , - 4233 , - 40 , - 1523 , - 3178 , - 5005 , - 1500 , - 3671 , - 510 , - 3025 , - 208 , - 3067 , - 594 , - 3797 , - 1668 , - 5215 , - 3430 , - 1817 , - 376 , - 4611 , - 3514 , - 2589 , - 1836 , - 1255 , - 846 , - 609 , - 544 , - 651 , - 930 , - 1381 , - 2004 , - 2799 , - 3766 , - 4905 , - 712 , - 2195 , - 3850 , - 173 , - 2172 , - 4343 , - 1182 , - 3697 , - 880 , - 3739 , - 1266 , - 4469 , - 2340 , - 383 , - 4102 , - 2489 , - 1048 , - 5283 , - 4186 , - 3261 , - 2508 , - 1927 , - 1518 , - 1281 , - 1216 , - 1323 , - 1602 , - 2053 , - 2676 , - 3471 , - 4438 , - 73 , - 1384 , - 2867 , - 4522 , - 845 , - 2844 , - 5015 , - 1854 , - 4369 , - 1552 , - 4411 , - 1938 , - 5141 , - 3012 , - 1055 , - 4774 , - 3161 , - 1720 , - 451 , - 4858 , - 3933 , - 3180 , - 2599 , - 2190 , - 1953 , - 1888 , - 1995 , - 2274 , - 2725 , - 3348 , - 4143 , - 5110 , - 745 , - 2056 , - 3539 , - 5194 , - 1517 , - 3516 , - 183 , - 2526 , - 5041 , - 2224 , - 5083 , - 2610 , - 309 , - 3684 , - 1727 , - 5446 , - 3833 , - 2392 , - 1123 , - 26 , - 4605 , - 3852 , - 3271 , - 2862 , - 2625 , - 2560 , - 2667 , - 2946 , - 3397 , - 4020 , - 4815 , - 278 , - 1417 , - 2728 , - 4211 , - 362 , - 2189 , - 4188 , - 855 , - 3198 , - 209 , - 2896 , - 251 , - 3282 , - 981 , - 4356 , - 2399 , - 614 , - 4505 , - 3064 , - 1795 , - 698 , - 5277 , - 4524 , - 3943 , - 3534 , - 3297 , - 3232 , - 3339 , - 3618 , - 4069 , - 4692 , - 5487 , - 950 , - 2089 , - 3400 , - 4883 , - 1034 , - 2861 , - 4860 , - 1527 , - 3870 , - 881 , - 3568 , - 923 , - 3954 , - 1653 , - 5028 , - 3071 , - 1286 , - 5177 , - 3736 , - 2467 , - 1370 , - 445 , - 5196 , - 4615 , - 4206 , - 3969 , - 3904 , - 4011 , - 4290 , - 4741 , - 5364 , - 655 , - 1622 , - 2761 , - 4072 , - 51 , - 1706 , - 3533 , - 28 , - 2199 , - 4542 , - 1553 , - 4240 , - 1595 , - 4626 , - 2325 , - 196 , - 3743 , - 1958 , - 345 , - 4408 , - 3139 , - 2042 , - 1117 , - 364 , - 5287 , - 4878 , - 4641 , - 4576 , - 4683 , - 4962 , - 5413 , - 532 , - 1327 , - 2294 , - 3433 , - 4744 , - 723 , - 2378 , - 4205 , - 700 , - 2871 , - 5214 , - 2225 , - 4912 , - 2267 , - 5298 , - 2997 , - 868 , - 4415 , - 2630 , - 1017 , - 5080 , - 3811 , - 2714 , - 1789 , - 1036 , - 455 , - 46 , - 5313 , - 5248 , - 5355 , - 130 , - 581 , - 1204 , - 1999 , - 2966 , - 4105 , - 5416 , - 1395 , - 3050 , - 4877 , - 1372 , - 3543 , - 382 , - 2897 , - 80 , - 2939 , - 466 , - 3669 , - 1540 , - 5087 , - 3302 , - 1689 , - 248 , - 4483 , - 3386 , - 2461 , - 1708 , - 1127 , - 718 , - 481 , - 416 , - 523 , - 802 , - 1253 , - 1876 , - 2671 , - 3638 , - 4777 , - 584 , - 2067 , - 3722 , - 45 , - 2044 , - 4215 , - 1054 , - 3569 , - 752 , - 3611 , - 1138 , - 4341 , - 2212 , - 255 , - 3974 , - 2361 , - 920 , - 5155 , - 4058 , - 3133 , - 2380 , - 1799 , - 1390 , - 1153 , - 1088 , - 1195 , - 1474 , - 1925 , - 2548 , - 3343 , - 4310 , - 5449 , - 1256 , - 2739 , - 4394 , - 717 , - 2716 , - 4887 , - 1726 , - 4241 , - 1424 , - 4283 , - 1810 , - 5013 , - 2884 , - 927 , - 4646 , - 3033 , - 1592 , - 323 , - 4730 , - 3805 , - 3052 , - 2471 , - 2062 , - 1825 , - 1760 , - 1867 , - 2146 , - 2597 , - 3220 , - 4015 , - 4982 , - 617 , - 1928 , - 3411 , - 5066 , - 1389 , - 3388 , - 55 , - 2398 , - 4913 , - 2096 , - 4955 , - 2482 , - 181 , - 3556 , - 1599 , - 5318 , - 3705 , - 2264 , - 995 , - 5402 , - 4477 , - 3724 , - 3143 , - 2734 , - 2497 , - 2432 , - 2539 , - 2818 , - 3269 , - 3892 , - 4687 , - 150 , - 1289 , - 2600 , - 4083 , - 234 , - 2061 , - 4060 , - 727 , - 3070 , - 81 , - 2768 , - 123 , - 3154 , - 853 , - 4228 , - 2271 , - 486 , - 4377 , - 2936 , - 1667 , - 570 , - 5149 , - 4396 , - 3815 , - 3406 , - 3169 , - 3104 , - 3211 , - 3490 , - 3941 , - 4564 , - 5359 , - 822 , - 1961 , - 3272 , - 4755 , - 906 , - 2733 , - 4732 , - 1399 , - 3742 , - 753 , - 3440 , - 795 , - 3826 , - 1525 , - 4900 , - 2943 , - 1158 , - 5049 , - 3608 , - 2339 , - 1242 , - 317 , - 5068 , - 4487 , - 4078 , - 3841 , - 3776 , - 3883 , - 4162 , - 4613 , - 5236 , - 527 , - 1494 , - 2633 , - 3944 , - 5427 , - 1578 , - 3405 , - 5404 , - 2071 , - 4414 , - 1425 , - 4112 , - 1467 , - 4498 , - 2197 , - 68 , - 3615 , - 1830 , - 217 , - 4280 , - 3011 , - 1914 , - 989 , - 236 , - 5159 , - 4750 , - 4513 , - 4448 , - 4555 , - 4834 , - 5285 , - 404 , - 1199 , - 2166 , - 3305 , - 4616 , - 595 , - 2250 , - 4077 , - 572 , - 2743 , - 5086 , - 2097 , - 4784 , - 2139 , - 5170 , - 2869 , - 740 , - 4287 , - 2502 , - 889 , - 4952 , - 3683 , - 2586 , - 1661 , - 908 , - 327 , - 5422 , - 5185 , - 5120 , - 5227 , - 2 , - 453 , - 1076 , - 1871 , - 2838 , - 3977 , - 5288 , - 1267 , - 2922 , - 4749 , - 1244 , - 3415 , - 254 , - 2769 , - 5456 , - 2811 , - 338 , - 3541 , - 1412 , - 4959 , - 3174 , - 1561 , - 120 , - 4355 , - 3258 , - 2333 , - 1580 , - 999 , - 590 , - 353 , - 288 , - 395 , - 674 , - 1125 , - 1748 , - 2543 , - 3510 , - 4649 , - 456 , - 1939 , - 3594 , - 5421 , - 1916 , - 4087 , - 926 , - 3441 , - 624 , - 3483 , - 1010 , - 4213 , - 2084 , - 127 , - 3846 , - 2233 , - 792 , - 5027 , - 3930 , - 3005 , - 2252 , - 1671 , - 1262 , - 1025 , - 960 , - 1067 , - 1346 , - 1797 , - 2420 , - 3215 , - 4182 , - 5321 , - 1128 , - 2611 , - 4266 , - 589 , - 2588 , - 4759 , - 1598 , - 4113 , - 1296 , - 4155 , - 1682 , - 4885 , - 2756 , - 799 , - 4518 , - 2905 , - 1464 , - 195 , - 4602 , - 3677 , - 2924 , - 2343 , - 1934 , - 1697 , - 1632 , - 1739 , - 2018 , - 2469 , - 3092 , - 3887 , - 4854 , - 489 , - 1800 , - 3283 , - 4938 , - 1261 , - 3260 , - 5431 , - 2270 , - 4785 , - 1968 , - 4827 , - 2354 , - 53 , - 3428 , - 1471 , - 5190 , - 3577 , - 2136 , - 867 , - 5274 , - 4349 , - 3596 , - 3015 , - 2606 , - 2369 , - 2304 , - 2411 , - 2690 , - 3141 , - 3764 , - 4559 , - 22 , - 1161 , - 2472 , - 3955 , - 106 , - 1933 , - 3932 , - 599 , - 2942 , - 5457 , - 2640 , - 5499 , - 3026 , - 725 , - 4100 , - 2143 , - 358 , - 4249 , - 2808 , - 1539 , - 442 , - 5021 , - 4268 , - 3687 , - 3278 , - 3041 , - 2976 , - 3083 , - 3362 , - 3813 , - 4436 , - 5231 , - 694 , - 1833 , - 3144 , - 4627 , - 778 , - 2605 , - 4604 , - 1271 , - 3614 , - 625 , - 3312 , - 667 , - 3698 , - 1397 , - 4772 , - 2815 , - 1030 , - 4921 , - 3480 , - 2211 , - 1114 , - 189 , - 4940 , - 4359 , - 3950 , - 3713 , - 3648 , - 3755 , - 4034 , - 4485 , - 5108 , - 399 , - 1366 , - 2505 , - 3816 , - 5299 , - 1450 , - 3277 , - 5276 , - 1943 , - 4286 , - 1297 , - 3984 , - 1339 , - 4370 , - 2069 , - 5444 , - 3487 , - 1702 , - 89 , - 4152 , - 2883 , - 1786 , - 861 , - 108 , - 5031 , - 4622 , - 4385 , - 4320 , - 4427 , - 4706 , - 5157 , - 276 , - 1071 , - 2038 , - 3177 , - 4488 , - 467 , - 2122 , - 3949 , - 444 , - 2615 , - 4958 , - 1969 , - 4656 , - 2011 , - 5042 , - 2741 , - 612 , - 4159 , - 2374 , - 761 , - 4824 , - 3555 , - 2458 , - 1533 , - 780 , - 199 , - 5294 , - 5057 , - 4992 , - 5099 , - 5378 , - 325 , - 948 , - 1743 , - 2710 , - 3849 , - 5160 , - 1139 , - 2794 , - 4621 , - 1116 , - 3287 , - 126 , - 2641 , - 5328 , - 2683 , - 210 , - 3413 , - 1284 , - 4831 , - 3046 , - 1433 , - 5496 , - 4227 , - 3130 , - 2205 , - 1452 , - 871 , - 462 , - 225 , - 160 , - 267 , - 546 , - 997 , - 1620 , - 2415 , - 3382 , - 4521 , - 328 , - 1811 , - 3466 , - 5293 , - 1788 , - 3959 , - 798 , - 3313 , - 496 , - 3355 , - 882 , - 4085 , - 1956 , - 5503 , - 3718 , - 2105 , - 664 , - 4899 , - 3802 , - 2877 , - 2124 , - 1543 , - 1134 , - 897 , - 832 , - 939 , - 1218 , - 1669 , - 2292 , - 3087 , - 4054 , - 5193 , - 1000 , - 2483 , - 4138 , - 461 , - 2460 , - 4631 , - 1470 , - 3985 , - 1168 , - 4027 , - 1554 , - 4757 , - 2628 , - 671 , - 4390 , - 2777 , - 1336 , - 67 , - 4474 , - 3549 , - 2796 , - 2215 , - 1806 , - 1569 , - 1504 , - 1611 , - 1890 , - 2341 , - 2964 , - 3759 , - 4726 , - 361 , - 1672 , - 3155 , - 4810 , - 1133 , - 3132 , - 5303 , - 2142 , - 4657 , - 1840 , - 4699 , - 2226 , - 5429 , - 3300 , - 1343 , - 5062 , - 3449 , - 2008 , - 739 , - 5146 , - 4221 , - 3468 , - 2887 , - 2478 , - 2241 , - 2176 , - 2283 , - 2562 , - 3013 , - 3636 , - 4431 , - 5398 , - 1033 , - 2344 , - 3827 , - 5482 , - 1805 , - 3804 , - 471 , - 2814 , - 5329 , - 2512 , - 5371 , - 2898 , - 597 , - 3972 , - 2015 , - 230 , - 4121 , - 2680 , - 1411 , - 314 , - 4893 , - 4140 , - 3559 , - 3150 , - 2913 , - 2848 , - 2955 , - 3234 , - 3685 , - 4308 , - 5103 , - 566 , - 1705 , - 3016 , - 4499 , - 650 , - 2477 , - 4476 , - 1143 , - 3486 , - 497 , - 3184 , - 539 , - 3570 , - 1269 , - 4644 , - 2687 , - 902 , - 4793 , - 3352 , - 2083 , - 986 , - 61 , - 4812 , - 4231 , - 3822 , - 3585 , - 3520 , - 3627 , - 3906 , - 4357 , - 4980 , - 271 , - 1238 , - 2377 , - 3688 , - 5171 , - 1322 , - 3149 , - 5148 , - 1815 , - 4158 , - 1169 , - 3856 , - 1211 , - 4242 , - 1941 , - 5316 , - 3359 , - 1574 , - 5465 , - 4024 , - 2755 , - 1658 , - 733 , - 5484 , - 4903 , - 4494 , - 4257 , - 4192 , - 4299 , - 4578 , - 5029 , - 148 , - 943 , - 1910 , - 3049 , - 4360 , - 339 , - 1994 , - 3821 , - 316 , - 2487 , - 4830 , - 1841 , - 4528 , - 1883 , - 4914 , - 2613 , - 484 , - 4031 , - 2246 , - 633 , - 4696 , - 3427 , - 2330 , - 1405 , - 652 , - 71 , - 5166 , - 4929 , - 4864 , - 4971 , - 5250 , - 197 , - 820 , - 1615 , - 2582 , - 3721 , - 5032 , - 1011 , - 2666 , - 4493 , - 988 , - 3159 , - 5502 , - 2513 , - 5200 , - 2555 , - 82 , - 3285 , - 1156 , - 4703 , - 2918 , - 1305 , - 5368 , - 4099 , - 3002 , - 2077 , - 1324 , - 743 , - 334 , - 97 , - 32 , - 139 , - 418 , - 869 , - 1492 , - 2287 , - 3254 , - 4393 , - 200 , - 1683 , - 3338 , - 5165 , - 1660 , - 3831 , - 670 , - 3185 , - 368 , - 3227 , - 754 , - 3957 , - 1828 , - 5375 , - 3590 , - 1977 , - 536 , - 4771 , - 3674 , - 2749 , - 1996 , - 1415 , - 1006 , - 769 , - 704 , - 811 , - 1090 , - 1541 , - 2164 , - 2959 , - 3926 , - 5065 , - 872 , - 2355 , - 4010 , - 333 , - 2332 , - 4503 , - 1342 , - 3857 , - 1040 , - 3899 , - 1426 , - 4629 , - 2500 , - 543 , - 4262 , - 2649 , - 1208 , - 5443 , - 4346 , - 3421 , - 2668 , - 2087 , - 1678 , - 1441 , - 1376 , - 1483 , - 1762 , - 2213 , - 2836 , - 3631 , - 4598 , - 233 , - 1544 , - 3027 , - 4682 , - 1005 , - 3004 , - 5175 , - 2014 , - 4529 , - 1712 , - 4571 , - 2098 , - 5301 , - 3172 , - 1215 , - 4934 , - 3321 , - 1880 , - 611 , - 5018 , - 4093 , - 3340 , - 2759 , - 2350 , - 2113 , - 2048 , - 2155 , - 2434 , - 2885 , - 3508 , - 4303 , - 5270 , - 905 , - 2216 , - 3699 , - 5354 , - 1677 , - 3676 , - 343 , - 2686 , - 5201 , - 2384 , - 5243 , - 2770 , - 469 , - 3844 , - 1887 , - 102 , - 3993 , - 2552 , - 1283 , - 186 , - 4765 , - 4012 , - 3431 , - 3022 , - 2785 , - 2720 , - 2827 , - 3106 , - 3557 , - 4180 , - 4975 , - 438 , - 1577 , - 2888 , - 4371 , - 522 , - 2349 , - 4348 , - 1015 , - 3358 , - 369 , - 3056 , - 411 , - 3442 , - 1141 , - 4516 , - 2559 , - 774 , - 4665 , - 3224 , - 1955 , - 858 , - 5437 , - 4684 , - 4103 , - 3694 , - 3457 , - 3392 , - 3499 , - 3778 , - 4229 , - 4852 , - 143 , - 1110 , - 2249 , - 3560 , - 5043 , - 1194 , - 3021 , - 5020 , - 1687 , - 4030 , - 1041 , - 3728 , - 1083 , - 4114 , - 1813 , - 5188 , - 3231 , - 1446 , - 5337 , - 3896 , - 2627 , - 1530 , - 605 , - 5356 , - 4775 , - 4366 , - 4129 , - 4064 , - 4171 , - 4450 , - 4901 , - 20 , - 815 , - 1782 , - 2921 , - 4232 , - 211 , - 1866 , - 3693 , - 188 , - 2359 , - 4702 , - 1713 , - 4400 , - 1755 , - 4786 , - 2485 , - 356 , - 3903 , - 2118 , - 505 , - 4568 , - 3299 , - 2202 , - 1277 , - 524 , - 5447 , - 5038 , - 4801 , - 4736 , - 4843 , - 5122 , - 69 , - 692 , - 1487 , - 2454 , - 3593 , - 4904 , - 883 , - 2538 , - 4365 , - 860 , - 3031 , - 5374 , - 2385 , - 5072 , - 2427 , - 5458 , - 3157 , - 1028 , - 4575 , - 2790 , - 1177 , - 5240 , - 3971 , - 2874 , - 1949 , - 1196 , - 615 , - 206 , - 5473 , - 5408 , - 11 , - 290 , - 741 , - 1364 , - 2159 , - 3126 , - 4265 , - 72 , - 1555 , - 3210 , - 5037 , - 1532 , - 3703 , - 542 , - 3057 , - 240 , - 3099 , - 626 , - 3829 , - 1700 , - 5247 , - 3462 , - 1849 , - 408 , - 4643 , - 3546 , - 2621 , - 1868 , - 1287 , - 878 , - 641 , - 576 , - 683 , - 962 , - 1413 , - 2036 , - 2831 , - 3798 , - 4937 , - 744 , - 2227 , - 3882 , - 205 , - 2204 , - 4375 , - 1214 , - 3729 , - 912 , - 3771 , - 1298 , - 4501 , - 2372 , - 415 , - 4134 , - 2521 , - 1080 , - 5315 , - 4218 , - 3293 , - 2540 , - 1959 , - 1550 , - 1313 , - 1248 , - 1355 , - 1634 , - 2085 , - 2708 , - 3503 , - 4470 , - 105 , - 1416 , - 2899 , - 4554 , - 877 , - 2876 , - 5047 , - 1886 , - 4401 , - 1584 , - 4443 , - 1970 , - 5173 , - 3044 , - 1087 , - 4806 , - 3193 , - 1752 , - 483 , - 4890 , - 3965 , - 3212 , - 2631 , - 2222 , - 1985 , - 1920 , - 2027 , - 2306 , - 2757 , - 3380 , - 4175 , - 5142 , - 777 , - 2088 , - 3571 , - 5226 , - 1549 , - 3548 , - 215 , - 2558 , - 5073 , - 2256 , - 5115 , - 2642 , - 341 , - 3716 , - 1759 , - 5478 , - 3865 , - 2424 , - 1155 , - 58 , - 4637 , - 3884 , - 3303 , - 2894 , - 2657 , - 2592 , - 2699 , - 2978 , - 3429 , - 4052 , - 4847 , - 310 , - 1449 , - 2760 , - 4243 , - 394 , - 2221 , - 4220 , - 887 , - 3230 , - 241 , - 2928 , - 283 , - 3314 , - 1013 , - 4388 , - 2431 , - 646 , - 4537 , - 3096 , - 1827 , - 730 , - 5309 , - 4556 , - 3975 , - 3566 , - 3329 , - 3264 , - 3371 , - 3650 , - 4101 , - 4724 , - 15 , - 982 , - 2121 , - 3432 , - 4915 , - 1066 , - 2893 , - 4892 , - 1559 , - 3902 , - 913 , - 3600 , - 955 , - 3986 , - 1685 , - 5060 , - 3103 , - 1318 , - 5209 , - 3768 , - 2499 , - 1402 , - 477 , - 5228 , - 4647 , - 4238 , - 4001 , - 3936 , - 4043 , - 4322 , - 4773 , - 5396 , - 687 , - 1654 , - 2793 , - 4104 , - 83 , - 1738 , - 3565 , - 60 , - 2231 , - 4574 , - 1585 , - 4272 , - 1627 , - 4658 , - 2357 , - 228 , - 3775 , - 1990 , - 377 , - 4440 , - 3171 , - 2074 , - 1149 , - 396 , - 5319 , - 4910 , - 4673 , - 4608 , - 4715 , - 4994 , - 5445 , - 564 , - 1359 , - 2326 , - 3465 , - 4776 , - 755 , - 2410 , - 4237 , - 732 , - 2903 , - 5246 , - 2257 , - 4944 , - 2299 , - 5330 , - 3029 , - 900 , - 4447 , - 2662 , - 1049 , - 5112 , - 3843 , - 2746 , - 1821 , - 1068 , - 487 , - 78 , - 5345 , - 5280 , - 5387 , - 162 , - 613 , - 1236 , - 2031 , - 2998 , - 4137 , - 5448 , - 1427 , - 3082 , - 4909 , - 1404 , - 3575 , - 414 , - 2929 , - 112 , - 2971 , - 498 , - 3701 , - 1572 , - 5119 , - 3334 , - 1721 , - 280 , - 4515 , - 3418 , - 2493 , - 1740 , - 1159 , - 750 , - 513 , - 448 , - 555 , - 834 , - 1285 , - 1908 , - 2703 , - 3670 , - 4809 , - 616 , - 2099 , - 3754 , - 77 , - 2076 , - 4247 , - 1086 , - 3601 , - 784 , - 3643 , - 1170 , - 4373 , - 2244 , - 287 , - 4006 , - 2393 , - 952 , - 5187 , - 4090 , - 3165 , - 2412 , - 1831 , - 1422 , - 1185 , - 1120 , - 1227 , - 1506 , - 1957 , - 2580 , - 3375 , - 4342 , - 5481 , - 1288 , - 2771 , - 4426 , - 749 , - 2748 , - 4919 , - 1758 , - 4273 , - 1456 , - 4315 , - 1842 , - 5045 , - 2916 , - 959 , - 4678 , - 3065 , - 1624 , - 355 , - 4762 , - 3837 , - 3084 , - 2503 , - 2094 , - 1857 , - 1792 , - 1899 , - 2178 , - 2629 , - 3252 , - 4047 , - 5014 , - 649 , - 1960 , - 3443 , - 5098 , - 1421 , - 3420 , - 87 , - 2430 , - 4945 , - 2128 , - 4987 , - 2514 , - 213 , - 3588 , - 1631 , - 5350 , - 3737 , - 2296 , - 1027 , - 5434 , - 4509 , - 3756 , - 3175 , - 2766 , - 2529 , - 2464 , - 2571 , - 2850 , - 3301 , - 3924 , - 4719 , - 182 , - 1321 , - 2632 , - 4115 , - 266 , - 2093 , - 4092 , - 759 , - 3102 , - 113 , - 2800 , - 155 , - 3186 , - 885 , - 4260 , - 2303 , - 518 , - 4409 , - 2968 , - 1699 , - 602 , - 5181 , - 4428 , - 3847 , - 3438 , - 3201 , - 3136 , - 3243 , - 3522 , - 3973 , - 4596 , - 5391 , - 854 , - 1993 , - 3304 , - 4787 , - 938 , - 2765 , - 4764 , - 1431 , - 3774 , - 785 , - 3472 , - 827 , - 3858 , - 1557 , - 4932 , - 2975 , - 1190 , - 5081 , - 3640 , - 2371 , - 1274 , - 349 , - 5100 , - 4519 , - 4110 , - 3873 , - 3808 , - 3915 , - 4194 , - 4645 , - 5268 , - 559 , - 1526 , - 2665 , - 3976 , - 5459 , - 1610 , - 3437 , - 5436 , - 2103 , - 4446 , - 1457 , - 4144 , - 1499 , - 4530 , - 2229 , - 100 , - 3647 , - 1862 , - 249 , - 4312 , - 3043 , - 1946 , - 1021 , - 268 , - 5191 , - 4782 , - 4545 , - 4480 , - 4587 , - 4866 , - 5317 , - 436 , - 1231 , - 2198 , - 3337 , - 4648 , - 627 , - 2282 , - 4109 , - 604 , - 2775 , - 5118 , - 2129 , - 4816 , - 2171 , - 5202 , - 2901 , - 772 , - 4319 , - 2534 , - 921 , - 4984 , - 3715 , - 2618 , - 1693 , - 940 , - 359 , - 5454 , - 5217 , - 5152 , - 5259 , - 34 , - 485 , - 1108 , - 1903 , - 2870 , - 4009 , - 5320 , - 1299 , - 2954 , - 4781 , - 1276 , - 3447 , - 286 , - 2801 , - 5488 , - 2843 , - 370 , - 3573 , - 1444 , - 4991 , - 3206 , - 1593 , - 152 , - 4387 , - 3290 , - 2365 , - 1612 , - 1031 , - 622 , - 385 , - 320 , - 427 , - 706 , - 1157 , - 1780 , - 2575 , - 3542 , - 4681 , - 488 , - 1971 , - 3626 , - 5453 , - 1948 , - 4119 , - 958 , - 3473 , - 656 , - 3515 , - 1042 , - 4245 , - 2116 , - 159 , - 3878 , - 2265 , - 824 , - 5059 , - 3962 , - 3037 , - 2284 , - 1703 , - 1294 , - 1057 , - 992 , - 1099 , - 1378 , - 1829 , - 2452 , - 3247 , - 4214 , - 5353 , - 1160 , - 2643 , - 4298 , - 621 , - 2620 , - 4791 , - 1630 , - 4145 , - 1328 , - 4187 , - 1714 , - 4917 , - 2788 , - 831 , - 4550 , - 2937 , - 1496 , - 227 , - 4634 , - 3709 , - 2956 , - 2375 , - 1966 , - 1729 , - 1664 , - 1771 , - 2050 , - 2501 , - 3124 , - 3919 , - 4886 , - 521 , - 1832 , - 3315 , - 4970 , - 1293 , - 3292 , - 5463 , - 2302 , - 4817 , - 2000 , - 4859 , - 2386 , - 85 , - 3460 , - 1503 , - 5222 , - 3609 , - 2168 , - 899 , - 5306 , - 4381 , - 3628 , - 3047 , - 2638 , - 2401 , - 2336 , - 2443 , - 2722 , - 3173 , - 3796 , - 4591 , - 54 , - 1193 , - 2504 , - 3987 , - 138 , - 1965 , - 3964 , - 631 , - 2974 , - 5489 , - 2672 , - 27 , - 3058 , - 757 , - 4132 , - 2175 , - 390 , - 4281 , - 2840 , - 1571 , - 474 , - 5053 , - 4300 , - 3719 , - 3310 , - 3073 , - 3008 , - 3115 , - 3394 , - 3845 , - 4468 , - 5263 , - 726 , - 1865 , - 3176 , - 4659 , - 810 , - 2637 , - 4636 , - 1303 , - 3646 , - 657 , - 3344 , - 699 , - 3730 , - 1429 , - 4804 , - 2847 , - 1062 , - 4953 , - 3512 , - 2243 , - 1146 , - 221 , - 4972 , - 4391 , - 3982 , - 3745 , - 3680 , - 3787 , - 4066 , - 4517 , - 5140 , - 431 , - 1398 , - 2537 , - 3848 , - 5331 , - 1482 , - 3309 , - 5308 , - 1975 , - 4318 , - 1329 , - 4016 , - 1371 , - 4402 , - 2101 , - 5476 , - 3519 , - 1734 , - 121 , - 4184 , - 2915 , - 1818 , - 893 , - 140 , - 5063 , - 4654 , - 4417 , - 4352 , - 4459 , - 4738 , - 5189 , - 308 , - 1103 , - 2070 , - 3209 , - 4520 , - 499 , - 2154 , - 3981 , - 476 , - 2647 , - 4990 , - 2001 , - 4688 , - 2043 , - 5074 , - 2773 , - 644 , - 4191 , - 2406 , - 793 , - 4856 , - 3587 , - 2490 , - 1565 , - 812 , - 231 , - 5326 , - 5089 , - 5024 , - 5131 , - 5410 , - 357 , - 980 , - 1775 , - 2742 , - 3881 , - 5192 , - 1171 , - 2826 , - 4653 , - 1148 , - 3319 , - 158 , - 2673 , - 5360 , - 2715 , - 242 , - 3445 , - 1316 , - 4863 , - 3078 , - 1465 , - 24 , - 4259 , - 3162 , - 2237 , - 1484 , - 903 , - 494 , - 257 , - 192 , - 299 , - 578 , - 1029 , - 1652 , - 2447 , - 3414 , - 4553 , - 360 , - 1843 , - 3498 , - 5325 , - 1820 , - 3991 , - 830 , - 3345 , - 528 , - 3387 , - 914 , - 4117 , - 1988 , - 31 , - 3750 , - 2137 , - 696 , - 4931 , - 3834 , - 2909 , - 2156 , - 1575 , - 1166 , - 929 , - 864 , - 971 , - 1250 , - 1701 , - 2324 , - 3119 , - 4086 , - 5225 , - 1032 , - 2515 , - 4170 , - 493 , - 2492 , - 4663 , - 1502 , - 4017 , - 1200 , - 4059 , - 1586 , - 4789 , - 2660 , - 703 , - 4422 , - 2809 , - 1368 , - 99 , - 4506 , - 3581 , - 2828 , - 2247 , - 1838 , - 1601 , - 1536 , - 1643 , - 1922 , - 2373 , - 2996 , - 3791 , - 4758 , - 393 , - 1704 , - 3187 , - 4842 , - 1165 , - 3164 , - 5335 , - 2174 , - 4689 , - 1872 , - 4731 , - 2258 , - 5461 , - 3332 , - 1375 , - 5094 , - 3481 , - 2040 , - 771 , - 5178 , - 4253 , - 3500 , - 2919 , - 2510 , - 2273 , - 2208 , - 2315 , - 2594 , - 3045 , - 3668 , - 4463 , - 5430 , - 1065 , - 2376 , - 3859 , - 10 , - 1837 , - 3836 , - 503 , - 2846 , - 5361 , - 2544 , - 5403 , - 2930 , - 629 , - 4004 , - 2047 , - 262 , - 4153 , - 2712 , - 1443 , - 346 , - 4925 , - 4172 , - 3591 , - 3182 , - 2945 , - 2880 , - 2987 , - 3266 , - 3717 , - 4340 , - 5135 , - 598 , - 1737 , - 3048 , - 4531 , - 682 , - 2509 , - 4508 , - 1175 , - 3518 , - 529 , - 3216 , - 571 , - 3602 , - 1301 , - 4676 , - 2719 , - 934 , - 4825 , - 3384 , - 2115 , - 1018 , - 93 , - 4844 , - 4263 , - 3854 , - 3617 , - 3552 , - 3659 , - 3938 , - 4389 , - 5012 , - 303 , - 1270 , - 2409 , - 3720 , - 5203 , - 1354 , - 3181 , - 5180 , - 1847 , - 4190 , - 1201 , - 3888 , - 1243 , - 4274 , - 1973 , - 5348 , - 3391 , - 1606 , - 5497 , - 4056 , - 2787 , - 1690 , - 765 , - 12 , - 4935 , - 4526 , - 4289 , - 4224 , - 4331 , - 4610 , - 5061 , - 180 , - 975 , - 1942 , - 3081 , - 4392 , - 371 , - 2026 , - 3853 , - 348 , - 2519 , - 4862 , - 1873 , - 4560 , - 1915 , - 4946 , - 2645 , - 516 , - 4063 , - 2278 , - 665 , - 4728 , - 3459 , - 2362 , - 1437 , - 684 , - 103 , - 5198 , - 4961 , - 4896 , - 5003 , - 5282 , - 229 , - 852 , - 1647 , - 2614 , - 3753 , - 5064 , - 1043 , - 2698 , - 4525 , - 1020 , - 3191 , - 30 , - 2545 , - 5232 , - 2587 , - 114 , - 3317 , - 1188 , - 4735 , - 2950 , - 1337 , - 5400 , - 4131 , - 3034 , - 2109 , - 1356 , - 775 , - 366 , - 129 , - 64 , - 171 , - 450 , - 901 , - 1524 , - 2319 , - 3286 , - 4425 , - 232 , - 1715 , - 3370 , - 5197 , - 1692 , - 3863 , - 702 , - 3217 , - 400 , - 3259 , - 786 , - 3989 , - 1860 , - 5407 , - 3622 , - 2009 , - 568 , - 4803 , - 3706 , - 2781 , - 2028 , - 1447 , - 1038 , - 801 , - 736 , - 843 , - 1122 , - 1573 , - 2196 , - 2991 , - 3958 , - 5097 , - 904 , - 2387 , - 4042 , - 365 , - 2364 , - 4535 , - 1374 , - 3889 , - 1072 , - 3931 , - 1458 , - 4661 , - 2532 , - 575 , - 4294 , - 2681 , - 1240 , - 5475 , - 4378 , - 3453 , - 2700 , - 2119 , - 1710 , - 1473 , - 1408 , - 1515 , - 1794 , - 2245 , - 2868 , - 3663 , - 4630 , - 265 , - 1576 , - 3059 , - 4714 , - 1037 , - 3036 , - 5207 , - 2046 , - 4561 , - 1744 , - 4603 , - 2130 , - 5333 , - 3204 , - 1247 , - 4966 , - 3353 , - 1912 , - 643 , - 5050 , - 4125 , - 3372 , - 2791 , - 2382 , - 2145 , - 2080 , - 2187 , - 2466 , - 2917 , - 3540 , - 4335 , - 5302 , - 937 , - 2248 , - 3731 , - 5386 , - 1709 , - 3708 , - 375 , - 2718 , - 5233 , - 2416 , - 5275 , - 2802 , - 501 , - 3876 , - 1919 , - 134 , - 4025 , - 2584 , - 1315 , - 218 , - 4797 , - 4044 , - 3463 , - 3054 , - 2817 , - 2752 , - 2859 , - 3138 , - 3589 , - 4212 , - 5007 , - 470 , - 1609 , - 2920 , - 4403 , - 554 , - 2381 , - 4380 , - 1047 , - 3390 , - 401 , - 3088 , - 443 , - 3474 , - 1173 , - 4548 , - 2591 , - 806 , - 4697 , - 3256 , - 1987 , - 890 , - 5469 , - 4716 , - 4135 , - 3726 , - 3489 , - 3424 , - 3531 , - 3810 , - 4261 , - 4884 , - 175 , - 1142 , - 2281 , - 3592 , - 5075 , - 1226 , - 3053 , - 5052 , - 1719 , - 4062 , - 1073 , - 3760 , - 1115 , - 4146 , - 1845 , - 5220 , - 3263 , - 1478 , - 5369 , - 3928 , - 2659 , - 1562 , - 637 , - 5388 , - 4807 , - 4398 , - 4161 , - 4096 , - 4203 , - 4482 , - 4933 , - 52 , - 847 , - 1814 , - 2953 , - 4264 , - 243 , - 1898 , - 3725 , - 220 , - 2391 , - 4734 , - 1745 , - 4432 , - 1787 , - 4818 , - 2517 , - 388 , - 3935 , - 2150 , - 537 , - 4600 , - 3331 , - 2234 , - 1309 , - 556 , - 5479 , - 5070 , - 4833 , - 4768 , - 4875 , - 5154 , - 101 , - 724 , - 1519 , - 2486 , - 3625 , - 4936 , - 915 , - 2570 , - 4397 , - 892 , - 3063 , - 5406 , - 2417 , - 5104 , - 2459 , - 5490 , - 3189 , - 1060 , - 4607 , - 2822 , - 1209 , - 5272 , - 4003 , - 2906 , - 1981 , - 1228 , - 647 , - 238 , - 1 , - 5440 , - 43 , - 322 , - 773 , - 1396 , - 2191 , - 3158 , - 4297 , - 104 , - 1587 , - 3242 , - 5069 , - 1564 , - 3735 , - 574 , - 3089 , - 272 , - 3131 , - 658 , - 3861 , - 1732 , - 5279 , - 3494 , - 1881 , - 440 , - 4675 , - 3578 , - 2653 , - 1900 , - 1319 , - 910 , - 673 , - 608 , - 715 , - 994 , - 1445 , - 2068 , - 2863 , - 3830 , - 4969 , - 776 , - 2259 , - 3914 , - 237 , - 2236 , - 4407 , - 1246 , - 3761 , - 944 , - 3803 , - 1330 , - 4533 , - 2404 , - 447 , - 4166 , - 2553 , - 1112 , - 5347 , - 4250 , - 3325 , - 2572 , - 1991 , - 1582 , - 1345 , - 1280 , - 1387 , - 1666 , - 2117 , - 2740 , - 3535 , - 4502 , - 137 , - 1448 , - 2931 , - 4586 , - 909 , - 2908 , - 5079 , - 1918 , - 4433 , - 1616 , - 4475 , - 2002 , - 5205 , - 3076 , - 1119 , - 4838 , - 3225 , - 1784 , - 515 , - 4922 , - 3997 , - 3244 , - 2663 , - 2254 , - 2017 , - 1952 , - 2059 , - 2338 , - 2789 , - 3412 , - 4207 , - 5174 , - 809 , - 2120 , - 3603 , - 5258 , - 1581 , - 3580 , - 247 , - 2590 , - 5105 , - 2288 , - 5147 , - 2674 , - 373 , - 3748 , - 1791 , - 6 , - 3897 , - 2456 , - 1187 , - 90 , - 4669 , - 3916 , - 3335 , - 2926 , - 2689 , - 2624 , - 2731 , - 3010 , - 3461 , - 4084 , - 4879 , - 342 , - 1481 , - 2792 , - 4275 , - 426 , - 2253 , - 4252 , - 919 , - 3262 , - 273 , - 2960 , - 315 , - 3346 , - 1045 , - 4420 , - 2463 , - 678 , - 4569 , - 3128 , - 1859 , - 762 , - 5341 , - 4588 , - 4007 , - 3598 , - 3361 , - 3296 , - 3403 , - 3682 , - 4133 , - 4756 , - 47 , - 1014 , - 2153 , - 3464 , - 4947 , - 1098 , - 2925 , - 4924 , - 1591 , - 3934 , - 945 , - 3632 , - 987 , - 4018 , - 1717 , - 5092 , - 3135 , - 1350 , - 5241 , - 3800 , - 2531 , - 1434 , - 509 , - 5260 , - 4679 , - 4270 , - 4033 , - 3968 , - 4075 , - 4354 , - 4805 , - 5428 , - 719 , - 1686 , - 2825 , - 4136 , - 115 , - 1770 , - 3597 , - 92 , - 2263 , - 4606 , - 1617 , - 4304 , - 1659 , - 4690 , - 2389 , - 260 , - 3807 , - 2022 , - 409 , - 4472 , - 3203 , - 2106 , - 1181 , - 428 , - 5351 , - 4942 , - 4705 , - 4640 , - 4747 , - 5026 , - 5477 , - 596 , - 1391 , - 2358 , - 3497 , - 4808 , - 787 , - 2442 , - 4269 , - 764 , - 2935 , - 5278 , - 2289 , - 4976 , - 2331 , - 5362 , - 3061 , - 932 , - 4479 , - 2694 , - 1081 , - 5144 , - 3875 , - 2778 , - 1853 , - 1100 , - 519 , - 110 , - 5377 , - 5312 , - 5419 , - 194 , - 645 , - 1268 , - 2063 , - 3030 , - 4169 , - 5480 , - 1459 , - 3114 , - 4941 , - 1436 , - 3607 , - 446 , - 2961 , - 144 , - 3003 , - 530 , - 3733 , - 1604 , - 5151 , - 3366 , - 1753 , - 312 , - 4547 , - 3450 , - 2525 , - 1772 , - 1191 , - 782 , - 545 , - 480 , - 587 , - 866 , - 1317 , - 1940 , - 2735 , - 3702 , - 4841 , - 648 , - 2131 , - 3786 , - 109 , - 2108 , - 4279 , - 1118 , - 3633 , - 816 , - 3675 , - 1202 , - 4405 , - 2276 , - 319 , - 4038 , - 2425 , - 984 , - 5219 , - 4122 , - 3197 , - 2444 , - 1863 , - 1454 , - 1217 , - 1152 , - 1259 , - 1538 , - 1989 , - 2612 , - 3407 , - 4374 , - 9 , - 1320 , - 2803 , - 4458 , - 781 , - 2780 , - 4951 , - 1790 , - 4305 , - 1488 , - 4347 , - 1874 , - 5077 , - 2948 , - 991 , - 4710 , - 3097 , - 1656 , - 387 , - 4794 , - 3869 , - 3116 , - 2535 , - 2126 , - 1889 , - 1824 , - 1931 , - 2210 , - 2661 , - 3284 , - 4079 , - 5046 , - 681 , - 1992 , - 3475 , - 5130 , - 1453 , - 3452 , - 119 , - 2462 , - 4977 , - 2160 , - 5019 , - 2546 , - 245 , - 3620 , - 1663 , - 5382 , - 3769 , - 2328 , - 1059 , - 5466 , - 4541 , - 3788 , - 3207 , - 2798 , - 2561 , - 2496 , - 2603 , - 2882 , - 3333 , - 3956 , - 4751 , - 214 , - 1353 , - 2664 , - 4147 , - 298 , - 2125 , - 4124 , - 791 , - 3134 , - 145 , - 2832 , - 187 , - 3218 , - 917 , - 4292 , - 2335 , - 550 , - 4441 , - 3000 , - 1731 , - 634 , - 5213 , - 4460 , - 3879 , - 3470 , - 3233 , - 3168 , - 3275 , - 3554 , - 4005 , - 4628 , - 5423 , - 886 , - 2025 , - 3336 , - 4819 , - 970 , - 2797 , - 4796 , - 1463 , - 3806 , - 817 , - 3504 , - 859 , - 3890 , - 1589 , - 4964 , - 3007 , - 1222 , - 5113 , - 3672 , - 2403 , - 1306 , - 381 , - 5132 , - 4551 , - 4142 , - 3905 , - 3840 , - 3947 , - 4226 , - 4677 , - 5300 , - 591 , - 1558 , - 2697 , - 4008 , - 5491 , - 1642 , - 3469 , - 5468 , - 2135 , - 4478 , - 1489 , - 4176 , - 1531 , - 4562 , - 2261 , - 132 , - 3679 , - 1894 , - 281 , - 4344 , - 3075 , - 1978 , - 1053 , - 300 , - 5223 , - 4814 , - 4577 , - 4512 , - 4619 , - 4898 , - 5349 , - 468 , - 1263 , - 2230 , - 3369 , - 4680 , - 659 , - 2314 , - 4141 , - 636 , - 2807 , - 5150 , - 2161 , - 4848 , - 2203 , - 5234 , - 2933 , - 804 , - 4351 , - 2566 , - 953 , - 5016 , - 3747 , - 2650 , - 1725 , - 972 , - 391 , - 5486 , - 5249 , - 5184 , - 5291 , - 66 , - 517 , - 1140 , - 1935 , - 2902 , - 4041 , - 5352 , - 1331 , - 2986 , - 4813 , - 1308 , - 3479 , - 318 , - 2833 , - 16 , - 2875 , - 402 , - 3605 , - 1476 , - 5023 , - 3238 , - 1625 , - 184 , - 4419 , - 3322 , - 2397 , - 1644 , - 1063 , - 654 , - 417 , - 352 , - 459 , - 738 , - 1189 , - 1812 , - 2607 , - 3574 , - 4713 , - 520 , - 2003 , - 3658 , - 5485 , - 1980 , - 4151 , - 990 , - 3505 , - 688 , - 3547 , - 1074 , - 4277 , - 2148 , - 191 , - 3910 , - 2297 , - 856 , - 5091 , - 3994 , - 3069 , - 2316 , - 1735 , - 1326 , - 1089 , - 1024 , - 1131 , - 1410 , - 1861 , - 2484 , - 3279 , - 4246 , - 5385 , - 1192 , - 2675 , - 4330 , - 653 , - 2652 , - 4823 , - 1662 , - 4177 , - 1360 , - 4219 , - 1746 , - 4949 , - 2820 , - 863 , - 4582 , - 2969 , - 1528 , - 259 , - 4666 , - 3741 , - 2988 , - 2407 , - 1998 , - 1761 , - 1696 , - 1803 , - 2082 , - 2533 , - 3156 , - 3951 , - 4918 , - 553 , - 1864 , - 3347 , - 5002 , - 1325 , - 3324 , - 5495 , - 2334 , - 4849 , - 2032 , - 4891 , - 2418 , - 117 , - 3492 , - 1535 , - 5254 , - 3641 , - 2200 , - 931 , - 5338 , - 4413 , - 3660 , - 3079 , - 2670 , - 2433 , - 2368 , - 2475 , - 2754 , - 3205 , - 3828 , - 4623 , - 86 , - 1225 , - 2536 , - 4019 , - 170 , - 1997 , - 3996 , - 663 , - 3006 , - 17 , - 2704 , - 59 , - 3090 , - 789 , - 4164 , - 2207 , - 422 , - 4313 , - 2872 , - 1603 , - 506 , - 5085 , - 4332 , - 3751 , - 3342 , - 3105 , - 3040 , - 3147 , - 3426 , - 3877 , - 4500 , - 5295 , - 758 , - 1897 , - 3208 , - 4691 , - 842 , - 2669 , - 4668 , - 1335 , - 3678 , - 689 , - 3376 , - 731 , - 3762 , - 1461 , - 4836 , - 2879 , - 1094 , - 4985 , - 3544 , - 2275 , - 1178 , - 253 , - 5004 , - 4423 , - 4014 , - 3777 , - 3712 , - 3819 , - 4098 , - 4549 , - 5172 , - 463 , - 1430 , - 2569 , - 3880 , - 5363 , - 1514 , - 3341 , - 5340 , - 2007 , - 4350 , - 1361 , - 4048 , - 1403 , - 4434 , - 2133 , - 4 , - 3551 , - 1766 , - 153 , - 4216 , - 2947 , - 1850 , - 925 , - 172 , - 5095 , - 4686 , - 4449 , - 4384 , - 4491 , - 4770 , - 5221 , - 340 , - 1135 , - 2102 , - 3241 , - 4552 , - 531 , - 2186 , - 4013 , - 508 , - 2679 , - 5022 , - 2033 , - 4720 , - 2075 , - 5106 , - 2805 , - 676 , - 4223 , - 2438 , - 825 , - 4888 , - 3619 , - 2522 , - 1597 , - 844 , - 263 , - 5358 , - 5121 , - 5056 , - 5163 , - 5442 , - 389 , - 1012 , - 1807 , - 2774 , - 3913 , - 5224 , - 1203 , - 2858 , - 4685 , - 1180 , - 3351 , - 190 , - 2705 , - 5392 , - 2747 , - 274 , - 3477 , - 1348 , - 4895 , - 3110 , - 1497 , - 56 , - 4291 , - 3194 , - 2269 , - 1516 , - 935 , - 526 , - 289 , - 224 , - 331 , - 610 , - 1061 , - 1684 , - 2479 , - 3446 , - 4585 , - 392 , - 1875 , - 3530 , - 5357 , - 1852 , - 4023 , - 862 , - 3377 , - 560 , - 3419 , - 946 , - 4149 , - 2020 , - 63 , - 3782 , - 2169 , - 728 , - 4963 , - 3866 , - 2941 , - 2188 , - 1607 , - 1198 , - 961 , - 896 , - 1003 , - 1282 , - 1733 , - 2356 , - 3151 , - 4118 , - 5257 , - 1064 , - 2547 , - 4202 , - 525 , - 2524 , - 4695 , - 1534 , - 4049 , - 1232 , - 4091 , - 1618 , - 4821 , - 2692 , - 735 , - 4454 , - 2841 , - 1400 , - 131 , - 4538 , - 3613 , - 2860 , - 2279 , - 1870 , - 1633 , - 1568 , - 1675 , - 1954 , - 2405 , - 3028 , - 3823 , - 4790 , - 425 , - 1736 , - 3219 , - 4874 , - 1197 , - 3196 , - 5367 , - 2206 , - 4721 , - 1904 , - 4763 , - 2290 , - 5493 , - 3364 , - 1407 , - 5126 , - 3513 , - 2072 , - 803 , - 5210 , - 4285 , - 3532 , - 2951 , - 2542 , - 2305 , - 2240 , - 2347 , - 2626 , - 3077 , - 3700 , - 4495 , - 5462 , - 1097 , - 2408 , - 3891 , - 42 , - 1869 , - 3868 , - 535 , - 2878 , - 5393 , - 2576 , - 5435 , - 2962 , - 661 , - 4036 , - 2079 , - 294 , - 4185 , - 2744 , - 1475 , - 378 , - 4957 , - 4204 , - 3623 , - 3214 , - 2977 , - 2912 , - 3019 , - 3298 , - 3749 , - 4372 , - 5167 , - 630 , - 1769 , - 3080 , - 4563 , - 714 , - 2541 , - 4540 , - 1207 , - 3550 , - 561 , - 3248 , - 603 , - 3634 , - 1333 , - 4708 , - 2751 , - 966 , - 4857 , - 3416 , - 2147 , - 1050 , - 125 , - 4876 , - 4295 , - 3886 , - 3649 , - 3584 , - 3691 , - 3970 , - 4421 , - 5044 , - 335 , - 1302 , - 2441 , - 3752 , - 5235 , - 1386 , - 3213 , - 5212 , - 1879 , - 4222 , - 1233 , - 3920 , - 1275 , - 4306 , - 2005 , - 5380 , - 3423 , - 1638 , - 25 , - 4088 , - 2819 , - 1722 , - 797 , - 44 , - 4967 , - 4558 , - 4321 , - 4256 , - 4363 , - 4642 , - 5093 , - 212 , - 1007 , - 1974 , - 3113 , - 4424 , - 403 , - 2058 , - 3885 , - 380 , - 2551 , - 4894 , - 1905 , - 4592 , - 1947 , - 4978 , - 2677 , - 548 , - 4095 , - 2310 , - 697 , - 4760 , - 3491 , - 2394 , - 1469 , - 716 , - 135 , - 5230 , - 4993 , - 4928 , - 5035 , - 5314 , - 261 , - 884 , - 1679 , - 2646 , - 3785 , - 5096 , - 1075 , - 2730 , - 4557 , - 1052 , - 3223 , - 62 , - 2577 , - 5264 , - 2619 , - 146 , - 3349 , - 1220 , - 4767 , - 2982 , - 1369 , - 5432 , - 4163 , - 3066 , - 2141 , - 1388 , - 807 , - 398 , - 161 , - 96 , - 203 , - 482 , - 933 , - 1556 , - 2351 , - 3318 , - 4457 , - 264 , - 1747 , - 3402 , - 5229 , - 1724 , - 3895 , - 734 , - 3249 , - 432 , - 3291 , - 818 , - 4021 , - 1892 , - 5439 , - 3654 , - 2041 , - 600 , - 4835 , - 3738 , - 2813 , - 2060 , - 1479 , - 1070 , - 833 , - 768 , - 875 , - 1154 , - 1605 , - 2228 , - 3023 , - 3990 , - 5129 , - 936 , - 2419 , - 4074 , - 397 , - 2396 , - 4567 , - 1406 , - 3921 , - 1104 , - 3963 , - 1490 , - 4693 , - 2564 , - 607 , - 4326 , - 2713 , - 1272 , - 3 , - 4410 , - 3485 , - 2732 , - 2151 , - 1742 , - 1505 , - 1440 , - 1547 , - 1826 , - 2277 , - 2900 , - 3695 , - 4662 , - 297 , - 1608 , - 3091 , - 4746 , - 1069 , - 3068 , - 5239 , - 2078 , - 4593 , - 1776 , - 4635 , - 2162 , - 5365 , - 3236 , - 1279 , - 4998 , - 3385 , - 1944 , - 675 , - 5082 , - 4157 , - 3404 , - 2823 , - 2414 , - 2177 , - 2112 , - 2219 , - 2498 , - 2949 , - 3572 , - 4367 , - 5334 , - 969 , - 2280 , - 3763 , - 5418 , - 1741 , - 3740 , - 407 , - 2750 , - 5265 , - 2448 , - 5307 , - 2834 , - 533 , - 3908 , - 1951 , - 166 , - 4057 , - 2616 , - 1347 , - 250 , - 4829 , - 4076 , - 3495 , - 3086 , - 2849 , - 2784 , - 2891 , - 3170 , - 3621 , - 4244 , - 5039 , - 502 , - 1641 , - 2952 , - 4435 , - 586 , - 2413 , - 4412 , - 1079 , - 3422 , - 433 , - 3120 , - 475 , - 3506 , - 1205 , - 4580 , - 2623 , - 838 , - 4729 , - 3288 , - 2019 , - 922 , - 5501 , - 4748 , - 4167 , - 3758 , - 3521 , - 3456 , - 3563 , - 3842 , - 4293 , - 4916 , - 207 , - 1174 , - 2313 , - 3624 , - 5107 , - 1258 , - 3085 , - 5084 , - 1751 , - 4094 , - 1105 , - 3792 , - 1147 , - 4178 , - 1877 , - 5252 , - 3295 , - 1510 , - 5401 , - 3960 , - 2691 , - 1594 , - 669 , - 5420 , - 4839 , - 4430 , - 4193 , - 4128 , - 4235 , - 4514 , - 4965 , - 84 , - 879 , - 1846 , - 2985 , - 4296 , - 275 , - 1930 , - 3757 , - 252 , - 2423 , - 4766 , - 1777 , - 4464 , - 1819 , - 4850 , - 2549 , - 420 , - 3967 , - 2182 , - 569 , - 4632 , - 3363 , - 2266 , - 1341 , - 588 , - 7 , - 5102 , - 4865 , - 4800 , - 4907 , - 5186 , - 133 , - 756 , - 1551 , - 2518 , - 3657 , - 4968 , - 947 , - 2602 , - 4429 , - 924 , - 3095 , - 5438 , - 2449 , - 5136 , - 2491 , - 18 , - 3221 , - 1092 , - 4639 , - 2854 , - 1241 , - 5304 , - 4035 , - 2938 , - 2013 , - 1260 , - 679 , - 270 , - 33 , - 5472 , - 75 , - 354 , - 805 , - 1428 , - 2223 , - 3190 , - 4329 , - 136 , - 1619 , - 3274 , - 5101 , - 1596 , - 3767 , - 606 , - 3121 , - 304 , - 3163 , - 690 , - 3893 , - 1764 , - 5311 , - 3526 , - 1913 , - 472 , - 4707 , - 3610 , - 2685 , - 1932 , - 1351 , - 942 , - 705 , - 640 , - 747 , - 1026 , - 1477 , - 2100 , - 2895 , - 3862 , - 5001 , - 808 , - 2291 , - 3946 , - 269 , - 2268 , - 4439 , - 1278 , - 3793 , - 976 , - 3835 , - 1362 , - 4565 , - 2436 , - 479 , - 4198 , - 2585 , - 1144 , - 5379 , - 4282 , - 3357 , - 2604 , - 2023 , - 1614 , - 1377 , - 1312 , - 1419 , - 1698 , - 2149 , - 2772 , - 3567 , - 4534 , - 169 , - 1480 , - 2963 , - 4618 , - 941 , - 2940 , - 5111 , - 1950 , - 4465 , - 1648 , - 4507 , - 2034 , - 5237 , - 3108 , - 1151 , - 4870 , - 3257 , - 1816 , - 547 , - 4954 , - 4029 , - 3276 , - 2695 , - 2286 , - 2049 , - 1984 , - 2091 , - 2370 , - 2821 , - 3444 , - 4239 , - 5206 , - 841 , - 2152 , - 3635 , - 5290 , - 1613 , - 3612 , - 279 , - 2622 , - 5137 , - 2320 , - 5179 , - 2706 , - 405 , - 3780 , - 1823 , - 38 , - 3929 , - 2488 , - 1219 , - 122 , - 4701 , - 3948 , - 3367 , - 2958 , - 2721 , - 2656 , - 2763 , - 3042 , - 3493 , - 4116 , - 4911 , - 374 , - 1513 , - 2824 , - 4307 , - 458 , - 2285 , - 4284 , - 951 , - 3294 , - 305 , - 2992 , - 347 , - 3378 , - 1077 , - 4452 , - 2495 , - 710 , - 4601 , - 3160 , - 1891 , - 794 , - 5373 , - 4620 , - 4039 , - 3630 , - 3393 , - 3328 , - 3435 , - 3714 , - 4165 , - 4788 , - 79 , - 1046 , - 2185 , - 3496 , - 4979 , - 1130 , - 2957 , - 4956 , - 1623 , - 3966 , - 977 , - 3664 , - 1019 , - 4050 , - 1749 , - 5124 , - 3167 , - 1382 , - 5273 , - 3832 , - 2563 , - 1466 , - 541 , - 5292 , - 4711 , - 4302 , - 4065 , - 4000 , - 4107 , - 4386 , - 4837 , - 5460 , - 751 , - 1718 , - 2857 , - 4168 , - 147 , - 1802 , - 3629 , - 124 , - 2295 , - 4638 , - 1649 , - 4336 , - 1691 , - 4722 , - 2421 , - 292 , - 3839 , - 2054 , - 441 , - 4504 , - 3235 , - 2138 , - 1213 , - 460 , - 5383 , - 4974 , - 4737 , - 4672 , - 4779 , - 5058 , - 5 , - 628 , - 1423 , - 2390 , - 3529 , - 4840 , - 819 , - 2474 , - 4301 , - 796 , - 2967 , - 5310 , - 2321 , - 5008 , - 2363 , - 5394 , - 3093 , - 964 , - 4511 , - 2726 , - 1113 , - 5176 , - 3907 , - 2810 , - 1885 , - 1132 , - 551 , - 142 , - 5409 , - 5344 , - 5451 , - 226 , - 677 , - 1300 , - 2095 , - 3062 , - 4201 , - 8 , - 1491 , - 3146 , - 4973 , - 1468 , - 3639 , - 478 , - 2993 , - 176 , - 3035 , - 562 , - 3765 , - 1636 , - 5183 , - 3398 , - 1785 , - 344 , - 4579 , - 3482 , - 2557 , - 1804 , - 1223 , - 814 , - 577 , - 512 , - 619 , - 898 , - 1349 , - 1972 , - 2767 , - 3734 , - 4873 , - 680 , - 2163 , - 3818 , - 141 , - 2140 , - 4311 , - 1150 , - 3665 , - 848 , - 3707 , - 1234 , - 4437 , - 2308 , - 351 , - 4070 , - 2457 , - 1016 , - 5251 , - 4154 , - 3229 , - 2476 , - 1895 , - 1486 , - 1249 , - 1184 , - 1291 , - 1570 , - 2021 , - 2644 , - 3439 , - 4406 , - 41 , - 1352 , - 2835 , - 4490 , - 813 , - 2812 , - 4983 , - 1822 , - 4337 , - 1520 , - 4379 , - 1906 , - 5109 , - 2980 , - 1023 , - 4742 , - 3129 , - 1688 , - 419 , - 4826 , - 3901 , - 3148 , - 2567 , - 2158 , - 1921 , - 1856 , - 1963 , - 2242 , - 2693 , - 3316 , - 4111 , - 5078 , - 713 , - 2024 , - 3507 , - 5162 , - 1485 , - 3484 , - 151 , - 2494 , - 5009 , - 2192 , - 5051 , - 2578 , - 277 , - 3652 , - 1695 , - 5414 , - 3801 , - 2360 , - 1091 , - 5498 , - 4573 , - 3820 , - 3239 , - 2830 , - 2593 , - 2528 , - 2635 , - 2914 , - 3365 , - 3988 , - 4783 , - 246 , - 1385 , - 2696 , - 4179 , - 330 , - 2157 , - 4156 , - 823 , - 3166 , - 177 , - 2864 , - 219 , - 3250 , - 949 , - 4324 , - 2367 , - 582 , - 4473 , - 3032 , - 1763 , - 666 , - 5245 , - 4492 , - 3911 , - 3502 , - 3265 , - 3200 , - 3307 , - 3586 , - 4037 , - 4660 , - 5455 , - 918 , - 2057 , - 3368 , - 4851 , - 1002 , - 2829 , - 4828 , - 1495 , - 3838 , - 849 , - 3536 , - 891 , - 3922 , - 1621 , - 4996 , - 3039 , - 1254 , - 5145 , - 3704 , - 2435 , - 1338 , - 413 , - 5164 , - 4583 , - 4174 , - 3937 , - 3872 , - 3979 , - 4258 , - 4709 , - 5332 , - 623 , - 1590 , - 2729 , - 4040 , - 19 , - 1674 , - 3501 , - 5500 , - 2167 , - 4510 , - 1521 , - 4208 , - 1563 , - 4594 , - 2293 , - 164 , - 3711 , - 1926 , - 313 , - 4376 , - 3107 , - 2010 , - 1085 , - 332 , - 5255 , - 4846 , - 4609 , - 4544 , - 4651 , - 4930 , - 5381 , - 500 , - 1295 , - 2262 , - 3401 , - 4712 , - 691 , - 2346 , - 4173 , - 668 , - 2839 , - 5182 , - 2193 , - 4880 , - 2235 , - 5266 , - 2965 , - 836 , - 4383 , - 2598 , - 985 , - 5048 , - 3779 , - 2682 , - 1757 , - 1004 , - 423 , - 14 , - 5281 , - 5216 , - 5323 , - 98 , - 549 , - 1172 , - 1967 , - 2934 , - 4073 , - 5384 , - 1363 , - 3018 , - 4845 , - 1340 , - 3511 , - 350 , - 2865 , - 48 , - 2907 , - 434 , - 3637 , - 1508 , - 5055 , - 3270 , - 1657 , - 216 , - 4451 , - 3354 , - 2429 , - 1676 , - 1095 , - 686 , - 449 , - 384 , - 491 , - 770 , - 1221 , - 1844 , - 2639 , - 3606 , - 4745 , - 552 , - 2035 , - 3690 , - 13 , - 2012 , - 4183 , - 1022 , - 3537 , - 720 , - 3579 , - 1106 , - 4309 , - 2180 , - 223 , - 3942 , - 2329 , - 888 , - 5123 , - 4026 , - 3101 , - 2348 , - 1767 , - 1358 , - 1121 , - 1056 , - 1163 , - 1442 , - 1893 , - 2516 , - 3311 , - 4278 , - 5417 , - 1224 , - 2707 , - 4362 , - 685 , - 2684 , - 4855 , - 1694 , - 4209 , - 1392 , - 4251 , - 1778 , - 4981 , - 2852 , - 895 , - 4614 , - 3001 , - 1560 , - 291 , - 4698 , - 3773 , - 3020 , - 2439 , - 2030 , - 1793 , - 1728 , - 1835 , - 2114 , - 2565 , - 3188 , - 3983 , - 4950 , - 585 , - 1896 , - 3379 , - 5034 , - 1357 , - 3356 , - 23 , - 2366 , - 4881 , - 2064 , - 4923 , - 2450 , - 149 , - 3524 , - 1567 , - 5286 , - 3673 , - 2232 , - 963 , - 5370 , - 4445 , - 3692 , - 3111 , - 2702 , - 2465 , - 2400 , - 2507 , - 2786 , - 3237 , - 3860 , - 4655 , - 118 , - 1257 , - 2568 , - 4051 , - 202 , - 2029 , - 4028 , - 695 , - 3038 , - 49 , - 2736 , - 91 , - 3122 , - 821 , - 4196 , - 2239 , - 454 , - 4345 , - 2904 , - 1635 , - 538 , - 5117 , - 4364 , - 3783 , - 3374 , - 3137 , - 3072 , - 3179 , - 3458 , - 3909 , - 4532 , - 5327 , - 790 , - 1929 , - 3240 , - 4723 , - 874 , - 2701 , - 4700 , - 1367 , - 3710 , - 721 , - 3408 , - 763 , - 3794 , - 1493 , - 4868 , - 2911 , - 1126 , - 5017 , - 3576 , - 2307 , - 1210 , - 285 , - 5036 , - 4455 , - 4046 , - 3809 , - 3744 , - 3851 , - 4130 , - 4581 , - 5204 , - 495 , - 1462 , - 2601 , - 3912 , - 5395 , - 1546 , - 3373 , - 5372 , - 2039 , - 4382 , - 1393 , - 4080 , - 1435 , - 4466 , - 2165 , - 36 , - 3583 , - 1798 , - 185 , - 4248 , - 2979 , - 1882 , - 957 , - 204 , - 5127 , - 4718 , - 4481 , - 4416 , - 4523 , - 4802 , - 5253 , - 372 , - 1167 , - 2134 , - 3273 , - 4584 , - 563 , - 2218 , - 4045 , - 540 , - 2711 , - 5054 , - 2065 , - 4752 , - 2107 , - 5138 , - 2837 , - 708 , - 4255 , - 2470 , - 857 , - 4920 , - 3651 , - 2554 , - 1629 , - 876 , - 295 , - 5390 , - 5153 , - 5088 , - 5195 , - 5474 , - 421 , - 1044 , - 1839 , - 2806 , - 3945 , - 5256 , - 1235 , - 2890 , - 4717 , - 1212 , - 3383 , - 222 , - 2737 , - 5424 , - 2779 , - 306 , - 3509 , - 1380 , - 4927 , - 3142 , - 1529 , - 88 , - 4323 , - 3226 , - 2301 , - 1548 , - 967 , - 558 , - 321 , - 256 , - 363 , - 642 , - 1093 , - 1716 , - 2511 , - 3478 , - 4617 , - 424 , - 1907 , - 3562 , - 5389 , - 1884 , - 4055 , - 894 , - 3409 , - 592 , - 3451 , - 978 , - 4181 , - 2052 , - 95 , - 3814 , - 2201 , - 760 , - 4995 , - 3898 , - 2973 , - 2220 , - 1639 , - 1230 , - 993 , - 928 , - 1035 , - 1314 , - 1765 , - 2388 , - 3183 , - 4150 , - 5289 , - 1096 , - 2579 , - 4234 , - 557 , - 2556 , - 4727 , - 1566 , - 4081 , - 1264 , - 4123 , - 1650 , - 4853 , - 2724 , - 767 , - 4486 , - 2873 , - 1432 , - 163 , - 4570 , - 3645 , - 2892 , - 2311 , - 1902 , - 1665 , - 1600 , - 1707 , - 1986 , - 2437 , - 3060 , - 3855 , - 4822 , - 457 , - 1768 , - 3251 , - 4906 , - 1229 , - 3228 , - 5399 , - 2238 , - 4753 , - 1936 , - 4795 , - 2322 , - 21 , - 3396 , - 1439 , - 5158 , - 3545 , - 2104 , - 835 , - 5242 , - 4317 , - 3564 , - 2983 , - 2574 , - 2337 , - 2272 , - 2379 , - 2658 , - 3109 , - 3732 , - 4527 , - 5494 , - 1129 , - 2440 , - 3923 , - 74 , - 1901 , - 3900 , - 567 , - 2910 , - 5425 , - 2608 , - 5467 , - 2994 , - 693 , - 4068 , - 2111 , - 326 , - 4217 , - 2776 , - 1507 , - 410 , - 4989 , - 4236 , - 3655 , - 3246 , - 3009 , - 2944 , - 3051 , - 3330 , - 3781 , - 4404 , - 5199 , - 662 , - 1801 , - 3112 , - 4595 , - 746 , - 2573 , - 4572 , - 1239 , - 3582 , - 593 , - 3280 , - 635 , - 3666 , - 1365 , - 4740 , - 2783 , - 998 , - 4889 , - 3448 , - 2179 , - 1082 , - 157 , - 4908 , - 4327 , - 3918 , - 3681 , - 3616 , - 3723 , - 4002 , - 4453 , - 5076 , - 367 , - 1334 , - 2473 , - 3784 , - 5267 , - 1418 , - 3245 , - 5244 , - 1911 , - 4254 , - 1265 , - 3952 , - 1307 , - 4338 , - 2037 , - 5412 , - 3455 , - 1670 , - 57 , - 4120 , - 2851 , - 1754 , - 829 , - 76 , - 4999 , - 4590 , - 4353 , - 4288 , - 4395 , - 4674 , - 5125 , - 244 , - 1039 , - 2006 , - 3145 , - 4456 , - 435 , - 2090 , - 3917 , - 412 , - 2583 , - 4926 , - 1937 , - 4624 , - 1979 , - 5010 , - 2709 , - 580 , - 4127 , - 2342 , - 729 , - 4792 , - 3523 , - 2426 , - 1501 , - 748 , - 167 , - 5262 , - 5025 , - 4960 , - 5067 , - 5346 , - 293 , - 916 , - 1711 , - 2678 , - 3817 , - 5128 , - 1107 , - 2762 , - 4589 , - 1084 , - 3255 , - 94 , - 2609 , - 5296 , - 2651 , - 178 , - 3381 , - 1252 , - 4799 , - 3014 , - 1401 , - 5464 , - 4195 , - 3098 , - 2173 , - 1420 , - 839 , - 430 , - 193 , - 128 , - 235 , - 514 , - 965 , - 1588 , - 2383 , - 3350 , - 4489 , - 296 , - 1779 , - 3434 , - 5261 , - 1756 , - 3927 , - 766 , - 3281 , - 464 , - 3323 , - 850 , - 4053 , - 1924 , - 5471 , - 3686 , - 2073 , - 632 , - 4867 , - 3770 , - 2845 , - 2092 , - 1511 , - 1102 , - 865 , - 800 , - 907 , - 1186 , - 1637 , - 2260 , - 3055 , - 4022 , - 5161 , - 968 , - 2451 , - 4106 , - 429 , - 2428 , - 4599 , - 1438 , - 3953 , - 1136 , - 3995 , - 1522 , - 4725 , - 2596 , - 639 , - 4358 , - 2745 , - 1304 , - 35 , - 4442 , - 3517 , - 2764 , - 2183 , - 1774 , - 1537 , - 1472 , - 1579 , - 1858 , - 2309 , - 2932 , - 3727 , - 4694 , - 329 , - 1640 , - 3123 , - 4778 , - 1101 , - 3100 , - 5271 , - 2110 , - 4625 , - 1808 , - 4667 , - 2194 , - 5397 , - 3268 , - 1311 , - 5030 , - 3417 , - 1976 , - 707 , - 5114 , - 4189 , - 3436 , - 2855 , - 2446 , - 2209 , - 2144 , - 2251 , - 2530 , - 2981 , - 3604 , - 4399 , - 5366 , - 1001 , - 2312 , - 3795 , - 5450 , - 1773 , - 3772 , - 439 , - 2782 , - 5297 , - 2480 , - 5339 , - 2866 , - 565 , - 3940 , - 1983 , - 198 , - 4089 , - 2648 , - 1379 , - 282 , - 4861 , - 4108 , - 3527 , - 3118 , - 2881 , - 2816 , - 2923 , - 3202 , - 3653 , - 4276 , - 5071 , - 534 , - 1673 , - 2984 , - 4467 , - 618 , - 2445 , - 4444 , - 1111 , - 3454 , - 465 , - 3152 , - 507 , - 3538 , - 1237 , - 4612 , - 2655 , - 870 , - 4761 , - 3320 , - 2051 , - 954 , - 29 , - 4780 , - 4199 , - 3790 , - 3553 , - 3488 , - 3595 , - 3874 , - 4325 , - 4948 , - 239 , - 1206 , - 2345 , - 3656 , - 5139 , - 1290 , - 3117 , - 5116 , - 1783 , - 4126 , - 1137 , - 3824 , - 1179 , - 4210 , - 1909 , - 5284 , - 3327 , - 1542 , - 5433 , - 3992 , - 2723 , - 1626 , - 701 , - 5452 , - 4871 , - 4462 , - 4225 , - 4160 , - 4267 , - 4546 , - 4997 , - 116 , - 911 , - 1878 , - 3017 , - 4328 , - 307 , - 1962 , - 3789 , - 284 , - 2455 , - 4798 , - 1809 , - 4496 , - 1851 , - 4882 , - 2581 , - 452 , - 3999 , - 2214 , - 601 , - 4664 , - 3395 , - 2298 , - 1373 , - 620 , - 39 , - 5134 , - 4897 , - 4832 , - 4939 , - 5218 , - 165 , - 788 , - 1583 , - 2550 , - 3689 , - 5000 , - 979 , - 2634 , - 4461 , - 956 , - 3127 , - 5470 , - 2481 , - 5168 , - 2523 , - 50 , - 3253 , - 1124 , - 4671 , - 2886 , - 1273 , - 5336 , - 4067 , - 2970 , - 2045 , - 1292 , - 711 , - 302 , - 65 , - 0 , - 217 , - 782 , - 1695 , - 2956 , - 4565 , - 954 , - 3259 , - 344 , - 3345 , - 1126 , - 4823 , - 3300 , - 2125 , - 1298 , - 819 , - 688 , - 905 , - 1470 , - 2383 , - 3644 , - 5253 , - 1642 , - 3947 , - 1032 , - 4033 , - 1814 , - 5511 , - 3988 , - 2813 , - 1986 , - 1507 , - 1376 , - 1593 , - 2158 , - 3071 , - 4332 , - 373 , - 2330 , - 4635 , - 1720 , - 4721 , - 2502 , - 631 , - 4676 , - 3501 , - 2674 , - 2195 , - 2064 , - 2281 , - 2846 , - 3759 , - 5020 , - 1061 , - 3018 , - 5323 , - 2408 , - 5409 , - 3190 , - 1319 , - 5364 , - 4189 , - 3362 , - 2883 , - 2752 , - 2969 , - 3534 , - 4447 , - 140 , - 1749 , - 3706 , - 443 , - 3096 , - 529 , - 3878 , - 2007 , - 484 , - 4877 , - 4050 , - 3571 , - 3440 , - 3657 , - 4222 , - 5135 , - 828 , - 2437 , - 4394 , - 1131 , - 3784 , - 1217 , - 4566 , - 2695 , - 1172 , - 5565 , - 4738 , - 4259 , - 4128 , - 4345 , - 4910 , - 255 , - 1516 , - 3125 , - 5082 , - 1819 , - 4472 , - 1905 , - 5254 , - 3383 , - 1860 , - 685 , - 5426 , - 4947 , - 4816 , - 5033 , - 30 , - 943 , - 2204 , - 3813 , - 202 , - 2507 , - 5160 , - 2593 , - 374 , - 4071 , - 2548 , - 1373 , - 546 , - 67 , - 5504 , - 153 , - 718 , - 1631 , - 2892 , - 4501 , - 890 , - 3195 , - 280 , - 3281 , - 1062 , - 4759 , - 3236 , - 2061 , - 1234 , - 755 , - 624 , - 841 , - 1406 , - 2319 , - 3580 , - 5189 , - 1578 , - 3883 , - 968 , - 3969 , - 1750 , - 5447 , - 3924 , - 2749 , - 1922 , - 1443 , - 1312 , - 1529 , - 2094 , - 3007 , - 4268 , - 309 , - 2266 , - 4571 , - 1656 , - 4657 , - 2438 , - 567 , - 4612 , - 3437 , - 2610 , - 2131 , - 2000 , - 2217 , - 2782 , - 3695 , - 4956 , - 997 , - 2954 , - 5259 , - 2344 , - 5345 , - 3126 , - 1255 , - 5300 , - 4125 , - 3298 , - 2819 , - 2688 , - 2905 , - 3470 , - 4383 , - 76 , - 1685 , - 3642 , - 379 , - 3032 , - 465 , - 3814 , - 1943 , - 420 , - 4813 , - 3986 , - 3507 , - 3376 , - 3593 , - 4158 , - 5071 , - 764 , - 2373 , - 4330 , - 1067 , - 3720 , - 1153 , - 4502 , - 2631 , - 1108 , - 5501 , - 4674 , - 4195 , - 4064 , - 4281 , - 4846 , - 191 , - 1452 , - 3061 , - 5018 , - 1755 , - 4408 , - 1841 , - 5190 , - 3319 , - 1796 , - 621 , - 5362 , - 4883 , - 4752 , - 4969 , - 5534 , - 879 , - 2140 , - 3749 , - 138 , - 2443 , - 5096 , - 2529 , - 310 , - 4007 , - 2484 , - 1309 , - 482 , - 3 , - 5440 , - 89 , - 654 , - 1567 , - 2828 , - 4437 , - 826 , - 3131 , - 216 , - 3217 , - 998 , - 4695 , - 3172 , - 1997 , - 1170 , - 691 , - 560 , - 777 , - 1342 , - 2255 , - 3516 , - 5125 , - 1514 , - 3819 , - 904 , - 3905 , - 1686 , - 5383 , - 3860 , - 2685 , - 1858 , - 1379 , - 1248 , - 1465 , - 2030 , - 2943 , - 4204 , - 245 , - 2202 , - 4507 , - 1592 , - 4593 , - 2374 , - 503 , - 4548 , - 3373 , - 2546 , - 2067 , - 1936 , - 2153 , - 2718 , - 3631 , - 4892 , - 933 , - 2890 , - 5195 , - 2280 , - 5281 , - 3062 , - 1191 , - 5236 , - 4061 , - 3234 , - 2755 , - 2624 , - 2841 , - 3406 , - 4319 , - 12 , - 1621 , - 3578 , - 315 , - 2968 , - 401 , - 3750 , - 1879 , - 356 , - 4749 , - 3922 , - 3443 , - 3312 , - 3529 , - 4094 , - 5007 , - 700 , - 2309 , - 4266 , - 1003 , - 3656 , - 1089 , - 4438 , - 2567 , - 1044 , - 5437 , - 4610 , - 4131 , - 4000 , - 4217 , - 4782 , - 127 , - 1388 , - 2997 , - 4954 , - 1691 , - 4344 , - 1777 , - 5126 , - 3255 , - 1732 , - 557 , - 5298 , - 4819 , - 4688 , - 4905 , - 5470 , - 815 , - 2076 , - 3685 , - 74 , - 2379 , - 5032 , - 2465 , - 246 , - 3943 , - 2420 , - 1245 , - 418 , - 5507 , - 5376 , - 25 , - 590 , - 1503 , - 2764 , - 4373 , - 762 , - 3067 , - 152 , - 3153 , - 934 , - 4631 , - 3108 , - 1933 , - 1106 , - 627 , - 496 , - 713 , - 1278 , - 2191 , - 3452 , - 5061 , - 1450 , - 3755 , - 840 , - 3841 , - 1622 , - 5319 , - 3796 , - 2621 , - 1794 , - 1315 , - 1184 , - 1401 , - 1966 , - 2879 , - 4140 , - 181 , - 2138 , - 4443 , - 1528 , - 4529 , - 2310 , - 439 , - 4484 , - 3309 , - 2482 , - 2003 , - 1872 , - 2089 , - 2654 , - 3567 , - 4828 , - 869 , - 2826 , - 5131 , - 2216 , - 5217 , - 2998 , - 1127 , - 5172 , - 3997 , - 3170 , - 2691 , - 2560 , - 2777 , - 3342 , - 4255 , - 5516 , - 1557 , - 3514 , - 251 , - 2904 , - 337 , - 3686 , - 1815 , - 292 , - 4685 , - 3858 , - 3379 , - 3248 , - 3465 , - 4030 , - 4943 , - 636 , - 2245 , - 4202 , - 939 , - 3592 , - 1025 , - 4374 , - 2503 , - 980 , - 5373 , - 4546 , - 4067 , - 3936 , - 4153 , - 4718 , - 63 , - 1324 , - 2933 , - 4890 , - 1627 , - 4280 , - 1713 , - 5062 , - 3191 , - 1668 , - 493 , - 5234 , - 4755 , - 4624 , - 4841 , - 5406 , - 751 , - 2012 , - 3621 , - 10 , - 2315 , - 4968 , - 2401 , - 182 , - 3879 , - 2356 , - 1181 , - 354 , - 5443 , - 5312 , - 5529 , - 526 , - 1439 , - 2700 , - 4309 , - 698 , - 3003 , - 88 , - 3089 , - 870 , - 4567 , - 3044 , - 1869 , - 1042 , - 563 , - 432 , - 649 , - 1214 , - 2127 , - 3388 , - 4997 , - 1386 , - 3691 , - 776 , - 3777 , - 1558 , - 5255 , - 3732 , - 2557 , - 1730 , - 1251 , - 1120 , - 1337 , - 1902 , - 2815 , - 4076 , - 117 , - 2074 , - 4379 , - 1464 , - 4465 , - 2246 , - 375 , - 4420 , - 3245 , - 2418 , - 1939 , - 1808 , - 2025 , - 2590 , - 3503 , - 4764 , - 805 , - 2762 , - 5067 , - 2152 , - 5153 , - 2934 , - 1063 , - 5108 , - 3933 , - 3106 , - 2627 , - 2496 , - 2713 , - 3278 , - 4191 , - 5452 , - 1493 , - 3450 , - 187 , - 2840 , - 273 , - 3622 , - 1751 , - 228 , - 4621 , - 3794 , - 3315 , - 3184 , - 3401 , - 3966 , - 4879 , - 572 , - 2181 , - 4138 , - 875 , - 3528 , - 961 , - 4310 , - 2439 , - 916 , - 5309 , - 4482 , - 4003 , - 3872 , - 4089 , - 4654 , - 5567 , - 1260 , - 2869 , - 4826 , - 1563 , - 4216 , - 1649 , - 4998 , - 3127 , - 1604 , - 429 , - 5170 , - 4691 , - 4560 , - 4777 , - 5342 , - 687 , - 1948 , - 3557 , - 5514 , - 2251 , - 4904 , - 2337 , - 118 , - 3815 , - 2292 , - 1117 , - 290 , - 5379 , - 5248 , - 5465 , - 462 , - 1375 , - 2636 , - 4245 , - 634 , - 2939 , - 24 , - 3025 , - 806 , - 4503 , - 2980 , - 1805 , - 978 , - 499 , - 368 , - 585 , - 1150 , - 2063 , - 3324 , - 4933 , - 1322 , - 3627 , - 712 , - 3713 , - 1494 , - 5191 , - 3668 , - 2493 , - 1666 , - 1187 , - 1056 , - 1273 , - 1838 , - 2751 , - 4012 , - 53 , - 2010 , - 4315 , - 1400 , - 4401 , - 2182 , - 311 , - 4356 , - 3181 , - 2354 , - 1875 , - 1744 , - 1961 , - 2526 , - 3439 , - 4700 , - 741 , - 2698 , - 5003 , - 2088 , - 5089 , - 2870 , - 999 , - 5044 , - 3869 , - 3042 , - 2563 , - 2432 , - 2649 , - 3214 , - 4127 , - 5388 , - 1429 , - 3386 , - 123 , - 2776 , - 209 , - 3558 , - 1687 , - 164 , - 4557 , - 3730 , - 3251 , - 3120 , - 3337 , - 3902 , - 4815 , - 508 , - 2117 , - 4074 , - 811 , - 3464 , - 897 , - 4246 , - 2375 , - 852 , - 5245 , - 4418 , - 3939 , - 3808 , - 4025 , - 4590 , - 5503 , - 1196 , - 2805 , - 4762 , - 1499 , - 4152 , - 1585 , - 4934 , - 3063 , - 1540 , - 365 , - 5106 , - 4627 , - 4496 , - 4713 , - 5278 , - 623 , - 1884 , - 3493 , - 5450 , - 2187 , - 4840 , - 2273 , - 54 , - 3751 , - 2228 , - 1053 , - 226 , - 5315 , - 5184 , - 5401 , - 398 , - 1311 , - 2572 , - 4181 , - 570 , - 2875 , - 5528 , - 2961 , - 742 , - 4439 , - 2916 , - 1741 , - 914 , - 435 , - 304 , - 521 , - 1086 , - 1999 , - 3260 , - 4869 , - 1258 , - 3563 , - 648 , - 3649 , - 1430 , - 5127 , - 3604 , - 2429 , - 1602 , - 1123 , - 992 , - 1209 , - 1774 , - 2687 , - 3948 , - 5557 , - 1946 , - 4251 , - 1336 , - 4337 , - 2118 , - 247 , - 4292 , - 3117 , - 2290 , - 1811 , - 1680 , - 1897 , - 2462 , - 3375 , - 4636 , - 677 , - 2634 , - 4939 , - 2024 , - 5025 , - 2806 , - 935 , - 4980 , - 3805 , - 2978 , - 2499 , - 2368 , - 2585 , - 3150 , - 4063 , - 5324 , - 1365 , - 3322 , - 59 , - 2712 , - 145 , - 3494 , - 1623 , - 100 , - 4493 , - 3666 , - 3187 , - 3056 , - 3273 , - 3838 , - 4751 , - 444 , - 2053 , - 4010 , - 747 , - 3400 , - 833 , - 4182 , - 2311 , - 788 , - 5181 , - 4354 , - 3875 , - 3744 , - 3961 , - 4526 , - 5439 , - 1132 , - 2741 , - 4698 , - 1435 , - 4088 , - 1521 , - 4870 , - 2999 , - 1476 , - 301 , - 5042 , - 4563 , - 4432 , - 4649 , - 5214 , - 559 , - 1820 , - 3429 , - 5386 , - 2123 , - 4776 , - 2209 , - 5558 , - 3687 , - 2164 , - 989 , - 162 , - 5251 , - 5120 , - 5337 , - 334 , - 1247 , - 2508 , - 4117 , - 506 , - 2811 , - 5464 , - 2897 , - 678 , - 4375 , - 2852 , - 1677 , - 850 , - 371 , - 240 , - 457 , - 1022 , - 1935 , - 3196 , - 4805 , - 1194 , - 3499 , - 584 , - 3585 , - 1366 , - 5063 , - 3540 , - 2365 , - 1538 , - 1059 , - 928 , - 1145 , - 1710 , - 2623 , - 3884 , - 5493 , - 1882 , - 4187 , - 1272 , - 4273 , - 2054 , - 183 , - 4228 , - 3053 , - 2226 , - 1747 , - 1616 , - 1833 , - 2398 , - 3311 , - 4572 , - 613 , - 2570 , - 4875 , - 1960 , - 4961 , - 2742 , - 871 , - 4916 , - 3741 , - 2914 , - 2435 , - 2304 , - 2521 , - 3086 , - 3999 , - 5260 , - 1301 , - 3258 , - 5563 , - 2648 , - 81 , - 3430 , - 1559 , - 36 , - 4429 , - 3602 , - 3123 , - 2992 , - 3209 , - 3774 , - 4687 , - 380 , - 1989 , - 3946 , - 683 , - 3336 , - 769 , - 4118 , - 2247 , - 724 , - 5117 , - 4290 , - 3811 , - 3680 , - 3897 , - 4462 , - 5375 , - 1068 , - 2677 , - 4634 , - 1371 , - 4024 , - 1457 , - 4806 , - 2935 , - 1412 , - 237 , - 4978 , - 4499 , - 4368 , - 4585 , - 5150 , - 495 , - 1756 , - 3365 , - 5322 , - 2059 , - 4712 , - 2145 , - 5494 , - 3623 , - 2100 , - 925 , - 98 , - 5187 , - 5056 , - 5273 , - 270 , - 1183 , - 2444 , - 4053 , - 442 , - 2747 , - 5400 , - 2833 , - 614 , - 4311 , - 2788 , - 1613 , - 786 , - 307 , - 176 , - 393 , - 958 , - 1871 , - 3132 , - 4741 , - 1130 , - 3435 , - 520 , - 3521 , - 1302 , - 4999 , - 3476 , - 2301 , - 1474 , - 995 , - 864 , - 1081 , - 1646 , - 2559 , - 3820 , - 5429 , - 1818 , - 4123 , - 1208 , - 4209 , - 1990 , - 119 , - 4164 , - 2989 , - 2162 , - 1683 , - 1552 , - 1769 , - 2334 , - 3247 , - 4508 , - 549 , - 2506 , - 4811 , - 1896 , - 4897 , - 2678 , - 807 , - 4852 , - 3677 , - 2850 , - 2371 , - 2240 , - 2457 , - 3022 , - 3935 , - 5196 , - 1237 , - 3194 , - 5499 , - 2584 , - 17 , - 3366 , - 1495 , - 5540 , - 4365 , - 3538 , - 3059 , - 2928 , - 3145 , - 3710 , - 4623 , - 316 , - 1925 , - 3882 , - 619 , - 3272 , - 705 , - 4054 , - 2183 , - 660 , - 5053 , - 4226 , - 3747 , - 3616 , - 3833 , - 4398 , - 5311 , - 1004 , - 2613 , - 4570 , - 1307 , - 3960 , - 1393 , - 4742 , - 2871 , - 1348 , - 173 , - 4914 , - 4435 , - 4304 , - 4521 , - 5086 , - 431 , - 1692 , - 3301 , - 5258 , - 1995 , - 4648 , - 2081 , - 5430 , - 3559 , - 2036 , - 861 , - 34 , - 5123 , - 4992 , - 5209 , - 206 , - 1119 , - 2380 , - 3989 , - 378 , - 2683 , - 5336 , - 2769 , - 550 , - 4247 , - 2724 , - 1549 , - 722 , - 243 , - 112 , - 329 , - 894 , - 1807 , - 3068 , - 4677 , - 1066 , - 3371 , - 456 , - 3457 , - 1238 , - 4935 , - 3412 , - 2237 , - 1410 , - 931 , - 800 , - 1017 , - 1582 , - 2495 , - 3756 , - 5365 , - 1754 , - 4059 , - 1144 , - 4145 , - 1926 , - 55 , - 4100 , - 2925 , - 2098 , - 1619 , - 1488 , - 1705 , - 2270 , - 3183 , - 4444 , - 485 , - 2442 , - 4747 , - 1832 , - 4833 , - 2614 , - 743 , - 4788 , - 3613 , - 2786 , - 2307 , - 2176 , - 2393 , - 2958 , - 3871 , - 5132 , - 1173 , - 3130 , - 5435 , - 2520 , - 5521 , - 3302 , - 1431 , - 5476 , - 4301 , - 3474 , - 2995 , - 2864 , - 3081 , - 3646 , - 4559 , - 252 , - 1861 , - 3818 , - 555 , - 3208 , - 641 , - 3990 , - 2119 , - 596 , - 4989 , - 4162 , - 3683 , - 3552 , - 3769 , - 4334 , - 5247 , - 940 , - 2549 , - 4506 , - 1243 , - 3896 , - 1329 , - 4678 , - 2807 , - 1284 , - 109 , - 4850 , - 4371 , - 4240 , - 4457 , - 5022 , - 367 , - 1628 , - 3237 , - 5194 , - 1931 , - 4584 , - 2017 , - 5366 , - 3495 , - 1972 , - 797 , - 5538 , - 5059 , - 4928 , - 5145 , - 142 , - 1055 , - 2316 , - 3925 , - 314 , - 2619 , - 5272 , - 2705 , - 486 , - 4183 , - 2660 , - 1485 , - 658 , - 179 , - 48 , - 265 , - 830 , - 1743 , - 3004 , - 4613 , - 1002 , - 3307 , - 392 , - 3393 , - 1174 , - 4871 , - 3348 , - 2173 , - 1346 , - 867 , - 736 , - 953 , - 1518 , - 2431 , - 3692 , - 5301 , - 1690 , - 3995 , - 1080 , - 4081 , - 1862 , - 5559 , - 4036 , - 2861 , - 2034 , - 1555 , - 1424 , - 1641 , - 2206 , - 3119 , - 4380 , - 421 , - 2378 , - 4683 , - 1768 , - 4769 , - 2550 , - 679 , - 4724 , - 3549 , - 2722 , - 2243 , - 2112 , - 2329 , - 2894 , - 3807 , - 5068 , - 1109 , - 3066 , - 5371 , - 2456 , - 5457 , - 3238 , - 1367 , - 5412 , - 4237 , - 3410 , - 2931 , - 2800 , - 3017 , - 3582 , - 4495 , - 188 , - 1797 , - 3754 , - 491 , - 3144 , - 577 , - 3926 , - 2055 , - 532 , - 4925 , - 4098 , - 3619 , - 3488 , - 3705 , - 4270 , - 5183 , - 876 , - 2485 , - 4442 , - 1179 , - 3832 , - 1265 , - 4614 , - 2743 , - 1220 , - 45 , - 4786 , - 4307 , - 4176 , - 4393 , - 4958 , - 303 , - 1564 , - 3173 , - 5130 , - 1867 , - 4520 , - 1953 , - 5302 , - 3431 , - 1908 , - 733 , - 5474 , - 4995 , - 4864 , - 5081 , - 78 , - 991 , - 2252 , - 3861 , - 250 , - 2555 , - 5208 , - 2641 , - 422 , - 4119 , - 2596 , - 1421 , - 594 , - 115 , - 5552 , - 201 , - 766 , - 1679 , - 2940 , - 4549 , - 938 , - 3243 , - 328 , - 3329 , - 1110 , - 4807 , - 3284 , - 2109 , - 1282 , - 803 , - 672 , - 889 , - 1454 , - 2367 , - 3628 , - 5237 , - 1626 , - 3931 , - 1016 , - 4017 , - 1798 , - 5495 , - 3972 , - 2797 , - 1970 , - 1491 , - 1360 , - 1577 , - 2142 , - 3055 , - 4316 , - 357 , - 2314 , - 4619 , - 1704 , - 4705 , - 2486 , - 615 , - 4660 , - 3485 , - 2658 , - 2179 , - 2048 , - 2265 , - 2830 , - 3743 , - 5004 , - 1045 , - 3002 , - 5307 , - 2392 , - 5393 , - 3174 , - 1303 , - 5348 , - 4173 , - 3346 , - 2867 , - 2736 , - 2953 , - 3518 , - 4431 , - 124 , - 1733 , - 3690 , - 427 , - 3080 , - 513 , - 3862 , - 1991 , - 468 , - 4861 , - 4034 , - 3555 , - 3424 , - 3641 , - 4206 , - 5119 , - 812 , - 2421 , - 4378 , - 1115 , - 3768 , - 1201 , - 4550 , - 2679 , - 1156 , - 5549 , - 4722 , - 4243 , - 4112 , - 4329 , - 4894 , - 239 , - 1500 , - 3109 , - 5066 , - 1803 , - 4456 , - 1889 , - 5238 , - 3367 , - 1844 , - 669 , - 5410 , - 4931 , - 4800 , - 5017 , - 14 , - 927 , - 2188 , - 3797 , - 186 , - 2491 , - 5144 , - 2577 , - 358 , - 4055 , - 2532 , - 1357 , - 530 , - 51 , - 5488 , - 137 , - 702 , - 1615 , - 2876 , - 4485 , - 874 , - 3179 , - 264 , - 3265 , - 1046 , - 4743 , - 3220 , - 2045 , - 1218 , - 739 , - 608 , - 825 , - 1390 , - 2303 , - 3564 , - 5173 , - 1562 , - 3867 , - 952 , - 3953 , - 1734 , - 5431 , - 3908 , - 2733 , - 1906 , - 1427 , - 1296 , - 1513 , - 2078 , - 2991 , - 4252 , - 293 , - 2250 , - 4555 , - 1640 , - 4641 , - 2422 , - 551 , - 4596 , - 3421 , - 2594 , - 2115 , - 1984 , - 2201 , - 2766 , - 3679 , - 4940 , - 981 , - 2938 , - 5243 , - 2328 , - 5329 , - 3110 , - 1239 , - 5284 , - 4109 , - 3282 , - 2803 , - 2672 , - 2889 , - 3454 , - 4367 , - 60 , - 1669 , - 3626 , - 363 , - 3016 , - 449 , - 3798 , - 1927 , - 404 , - 4797 , - 3970 , - 3491 , - 3360 , - 3577 , - 4142 , - 5055 , - 748 , - 2357 , - 4314 , - 1051 , - 3704 , - 1137 , - 4486 , - 2615 , - 1092 , - 5485 , - 4658 , - 4179 , - 4048 , - 4265 , - 4830 , - 175 , - 1436 , - 3045 , - 5002 , - 1739 , - 4392 , - 1825 , - 5174 , - 3303 , - 1780 , - 605 , - 5346 , - 4867 , - 4736 , - 4953 , - 5518 , - 863 , - 2124 , - 3733 , - 122 , - 2427 , - 5080 , - 2513 , - 294 , - 3991 , - 2468 , - 1293 , - 466 , - 5555 , - 5424 , - 73 , - 638 , - 1551 , - 2812 , - 4421 , - 810 , - 3115 , - 200 , - 3201 , - 982 , - 4679 , - 3156 , - 1981 , - 1154 , - 675 , - 544 , - 761 , - 1326 , - 2239 , - 3500 , - 5109 , - 1498 , - 3803 , - 888 , - 3889 , - 1670 , - 5367 , - 3844 , - 2669 , - 1842 , - 1363 , - 1232 , - 1449 , - 2014 , - 2927 , - 4188 , - 229 , - 2186 , - 4491 , - 1576 , - 4577 , - 2358 , - 487 , - 4532 , - 3357 , - 2530 , - 2051 , - 1920 , - 2137 , - 2702 , - 3615 , - 4876 , - 917 , - 2874 , - 5179 , - 2264 , - 5265 , - 3046 , - 1175 , - 5220 , - 4045 , - 3218 , - 2739 , - 2608 , - 2825 , - 3390 , - 4303 , - 5564 , - 1605 , - 3562 , - 299 , - 2952 , - 385 , - 3734 , - 1863 , - 340 , - 4733 , - 3906 , - 3427 , - 3296 , - 3513 , - 4078 , - 4991 , - 684 , - 2293 , - 4250 , - 987 , - 3640 , - 1073 , - 4422 , - 2551 , - 1028 , - 5421 , - 4594 , - 4115 , - 3984 , - 4201 , - 4766 , - 111 , - 1372 , - 2981 , - 4938 , - 1675 , - 4328 , - 1761 , - 5110 , - 3239 , - 1716 , - 541 , - 5282 , - 4803 , - 4672 , - 4889 , - 5454 , - 799 , - 2060 , - 3669 , - 58 , - 2363 , - 5016 , - 2449 , - 230 , - 3927 , - 2404 , - 1229 , - 402 , - 5491 , - 5360 , - 9 , - 574 , - 1487 , - 2748 , - 4357 , - 746 , - 3051 , - 136 , - 3137 , - 918 , - 4615 , - 3092 , - 1917 , - 1090 , - 611 , - 480 , - 697 , - 1262 , - 2175 , - 3436 , - 5045 , - 1434 , - 3739 , - 824 , - 3825 , - 1606 , - 5303 , - 3780 , - 2605 , - 1778 , - 1299 , - 1168 , - 1385 , - 1950 , - 2863 , - 4124 , - 165 , - 2122 , - 4427 , - 1512 , - 4513 , - 2294 , - 423 , - 4468 , - 3293 , - 2466 , - 1987 , - 1856 , - 2073 , - 2638 , - 3551 , - 4812 , - 853 , - 2810 , - 5115 , - 2200 , - 5201 , - 2982 , - 1111 , - 5156 , - 3981 , - 3154 , - 2675 , - 2544 , - 2761 , - 3326 , - 4239 , - 5500 , - 1541 , - 3498 , - 235 , - 2888 , - 321 , - 3670 , - 1799 , - 276 , - 4669 , - 3842 , - 3363 , - 3232 , - 3449 , - 4014 , - 4927 , - 620 , - 2229 , - 4186 , - 923 , - 3576 , - 1009 , - 4358 , - 2487 , - 964 , - 5357 , - 4530 , - 4051 , - 3920 , - 4137 , - 4702 , - 47 , - 1308 , - 2917 , - 4874 , - 1611 , - 4264 , - 1697 , - 5046 , - 3175 , - 1652 , - 477 , - 5218 , - 4739 , - 4608 , - 4825 , - 5390 , - 735 , - 1996 , - 3605 , - 5562 , - 2299 , - 4952 , - 2385 , - 166 , - 3863 , - 2340 , - 1165 , - 338 , - 5427 , - 5296 , - 5513 , - 510 , - 1423 , - 2684 , - 4293 , - 682 , - 2987 , - 72 , - 3073 , - 854 , - 4551 , - 3028 , - 1853 , - 1026 , - 547 , - 416 , - 633 , - 1198 , - 2111 , - 3372 , - 4981 , - 1370 , - 3675 , - 760 , - 3761 , - 1542 , - 5239 , - 3716 , - 2541 , - 1714 , - 1235 , - 1104 , - 1321 , - 1886 , - 2799 , - 4060 , - 101 , - 2058 , - 4363 , - 1448 , - 4449 , - 2230 , - 359 , - 4404 , - 3229 , - 2402 , - 1923 , - 1792 , - 2009 , - 2574 , - 3487 , - 4748 , - 789 , - 2746 , - 5051 , - 2136 , - 5137 , - 2918 , - 1047 , - 5092 , - 3917 , - 3090 , - 2611 , - 2480 , - 2697 , - 3262 , - 4175 , - 5436 , - 1477 , - 3434 , - 171 , - 2824 , - 257 , - 3606 , - 1735 , - 212 , - 4605 , - 3778 , - 3299 , - 3168 , - 3385 , - 3950 , - 4863 , - 556 , - 2165 , - 4122 , - 859 , - 3512 , - 945 , - 4294 , - 2423 , - 900 , - 5293 , - 4466 , - 3987 , - 3856 , - 4073 , - 4638 , - 5551 , - 1244 , - 2853 , - 4810 , - 1547 , - 4200 , - 1633 , - 4982 , - 3111 , - 1588 , - 413 , - 5154 , - 4675 , - 4544 , - 4761 , - 5326 , - 671 , - 1932 , - 3541 , - 5498 , - 2235 , - 4888 , - 2321 , - 102 , - 3799 , - 2276 , - 1101 , - 274 , - 5363 , - 5232 , - 5449 , - 446 , - 1359 , - 2620 , - 4229 , - 618 , - 2923 , - 8 , - 3009 , - 790 , - 4487 , - 2964 , - 1789 , - 962 , - 483 , - 352 , - 569 , - 1134 , - 2047 , - 3308 , - 4917 , - 1306 , - 3611 , - 696 , - 3697 , - 1478 , - 5175 , - 3652 , - 2477 , - 1650 , - 1171 , - 1040 , - 1257 , - 1822 , - 2735 , - 3996 , - 37 , - 1994 , - 4299 , - 1384 , - 4385 , - 2166 , - 295 , - 4340 , - 3165 , - 2338 , - 1859 , - 1728 , - 1945 , - 2510 , - 3423 , - 4684 , - 725 , - 2682 , - 4987 , - 2072 , - 5073 , - 2854 , - 983 , - 5028 , - 3853 , - 3026 , - 2547 , - 2416 , - 2633 , - 3198 , - 4111 , - 5372 , - 1413 , - 3370 , - 107 , - 2760 , - 193 , - 3542 , - 1671 , - 148 , - 4541 , - 3714 , - 3235 , - 3104 , - 3321 , - 3886 , - 4799 , - 492 , - 2101 , - 4058 , - 795 , - 3448 , - 881 , - 4230 , - 2359 , - 836 , - 5229 , - 4402 , - 3923 , - 3792 , - 4009 , - 4574 , - 5487 , - 1180 , - 2789 , - 4746 , - 1483 , - 4136 , - 1569 , - 4918 , - 3047 , - 1524 , - 349 , - 5090 , - 4611 , - 4480 , - 4697 , - 5262 , - 607 , - 1868 , - 3477 , - 5434 , - 2171 , - 4824 , - 2257 , - 38 , - 3735 , - 2212 , - 1037 , - 210 , - 5299 , - 5168 , - 5385 , - 382 , - 1295 , - 2556 , - 4165 , - 554 , - 2859 , - 5512 , - 2945 , - 726 , - 4423 , - 2900 , - 1725 , - 898 , - 419 , - 288 , - 505 , - 1070 , - 1983 , - 3244 , - 4853 , - 1242 , - 3547 , - 632 , - 3633 , - 1414 , - 5111 , - 3588 , - 2413 , - 1586 , - 1107 , - 976 , - 1193 , - 1758 , - 2671 , - 3932 , - 5541 , - 1930 , - 4235 , - 1320 , - 4321 , - 2102 , - 231 , - 4276 , - 3101 , - 2274 , - 1795 , - 1664 , - 1881 , - 2446 , - 3359 , - 4620 , - 661 , - 2618 , - 4923 , - 2008 , - 5009 , - 2790 , - 919 , - 4964 , - 3789 , - 2962 , - 2483 , - 2352 , - 2569 , - 3134 , - 4047 , - 5308 , - 1349 , - 3306 , - 43 , - 2696 , - 129 , - 3478 , - 1607 , - 84 , - 4477 , - 3650 , - 3171 , - 3040 , - 3257 , - 3822 , - 4735 , - 428 , - 2037 , - 3994 , - 731 , - 3384 , - 817 , - 4166 , - 2295 , - 772 , - 5165 , - 4338 , - 3859 , - 3728 , - 3945 , - 4510 , - 5423 , - 1116 , - 2725 , - 4682 , - 1419 , - 4072 , - 1505 , - 4854 , - 2983 , - 1460 , - 285 , - 5026 , - 4547 , - 4416 , - 4633 , - 5198 , - 543 , - 1804 , - 3413 , - 5370 , - 2107 , - 4760 , - 2193 , - 5542 , - 3671 , - 2148 , - 973 , - 146 , - 5235 , - 5104 , - 5321 , - 318 , - 1231 , - 2492 , - 4101 , - 490 , - 2795 , - 5448 , - 2881 , - 662 , - 4359 , - 2836 , - 1661 , - 834 , - 355 , - 224 , - 441 , - 1006 , - 1919 , - 3180 , - 4789 , - 1178 , - 3483 , - 568 , - 3569 , - 1350 , - 5047 , - 3524 , - 2349 , - 1522 , - 1043 , - 912 , - 1129 , - 1694 , - 2607 , - 3868 , - 5477 , - 1866 , - 4171 , - 1256 , - 4257 , - 2038 , - 167 , - 4212 , - 3037 , - 2210 , - 1731 , - 1600 , - 1817 , - 2382 , - 3295 , - 4556 , - 597 , - 2554 , - 4859 , - 1944 , - 4945 , - 2726 , - 855 , - 4900 , - 3725 , - 2898 , - 2419 , - 2288 , - 2505 , - 3070 , - 3983 , - 5244 , - 1285 , - 3242 , - 5547 , - 2632 , - 65 , - 3414 , - 1543 , - 20 , - 4413 , - 3586 , - 3107 , - 2976 , - 3193 , - 3758 , - 4671 , - 364 , - 1973 , - 3930 , - 667 , - 3320 , - 753 , - 4102 , - 2231 , - 708 , - 5101 , - 4274 , - 3795 , - 3664 , - 3881 , - 4446 , - 5359 , - 1052 , - 2661 , - 4618 , - 1355 , - 4008 , - 1441 , - 4790 , - 2919 , - 1396 , - 221 , - 4962 , - 4483 , - 4352 , - 4569 , - 5134 , - 479 , - 1740 , - 3349 , - 5306 , - 2043 , - 4696 , - 2129 , - 5478 , - 3607 , - 2084 , - 909 , - 82 , - 5171 , - 5040 , - 5257 , - 254 , - 1167 , - 2428 , - 4037 , - 426 , - 2731 , - 5384 , - 2817 , - 598 , - 4295 , - 2772 , - 1597 , - 770 , - 291 , - 160 , - 377 , - 942 , - 1855 , - 3116 , - 4725 , - 1114 , - 3419 , - 504 , - 3505 , - 1286 , - 4983 , - 3460 , - 2285 , - 1458 , - 979 , - 848 , - 1065 , - 1630 , - 2543 , - 3804 , - 5413 , - 1802 , - 4107 , - 1192 , - 4193 , - 1974 , - 103 , - 4148 , - 2973 , - 2146 , - 1667 , - 1536 , - 1753 , - 2318 , - 3231 , - 4492 , - 533 , - 2490 , - 4795 , - 1880 , - 4881 , - 2662 , - 791 , - 4836 , - 3661 , - 2834 , - 2355 , - 2224 , - 2441 , - 3006 , - 3919 , - 5180 , - 1221 , - 3178 , - 5483 , - 2568 , - 1 , - 3350 , - 1479 , - 5524 , - 4349 , - 3522 , - 3043 , - 2912 , - 3129 , - 3694 , - 4607 , - 300 , - 1909 , - 3866 , - 603 , - 3256 , - 689 , - 4038 , - 2167 , - 644 , - 5037 , - 4210 , - 3731 , - 3600 , - 3817 , - 4382 , - 5295 , - 988 , - 2597 , - 4554 , - 1291 , - 3944 , - 1377 , - 4726 , - 2855 , - 1332 , - 157 , - 4898 , - 4419 , - 4288 , - 4505 , - 5070 , - 415 , - 1676 , - 3285 , - 5242 , - 1979 , - 4632 , - 2065 , - 5414 , - 3543 , - 2020 , - 845 , - 18 , - 5107 , - 4976 , - 5193 , - 190 , - 1103 , - 2364 , - 3973 , - 362 , - 2667 , - 5320 , - 2753 , - 534 , - 4231 , - 2708 , - 1533 , - 706 , - 227 , - 96 , - 313 , - 878 , - 1791 , - 3052 , - 4661 , - 1050 , - 3355 , - 440 , - 3441 , - 1222 , - 4919 , - 3396 , - 2221 , - 1394 , - 915 , - 784 , - 1001 , - 1566 , - 2479 , - 3740 , - 5349 , - 1738 , - 4043 , - 1128 , - 4129 , - 1910 , - 39 , - 4084 , - 2909 , - 2082 , - 1603 , - 1472 , - 1689 , - 2254 , - 3167 , - 4428 , - 469 , - 2426 , - 4731 , - 1816 , - 4817 , - 2598 , - 727 , - 4772 , - 3597 , - 2770 , - 2291 , - 2160 , - 2377 , - 2942 , - 3855 , - 5116 , - 1157 , - 3114 , - 5419 , - 2504 , - 5505 , - 3286 , - 1415 , - 5460 , - 4285 , - 3458 , - 2979 , - 2848 , - 3065 , - 3630 , - 4543 , - 236 , - 1845 , - 3802 , - 539 , - 3192 , - 625 , - 3974 , - 2103 , - 580 , - 4973 , - 4146 , - 3667 , - 3536 , - 3753 , - 4318 , - 5231 , - 924 , - 2533 , - 4490 , - 1227 , - 3880 , - 1313 , - 4662 , - 2791 , - 1268 , - 93 , - 4834 , - 4355 , - 4224 , - 4441 , - 5006 , - 351 , - 1612 , - 3221 , - 5178 , - 1915 , - 4568 , - 2001 , - 5350 , - 3479 , - 1956 , - 781 , - 5522 , - 5043 , - 4912 , - 5129 , - 126 , - 1039 , - 2300 , - 3909 , - 298 , - 2603 , - 5256 , - 2689 , - 470 , - 4167 , - 2644 , - 1469 , - 642 , - 163 , - 32 , - 249 , - 814 , - 1727 , - 2988 , - 4597 , - 986 , - 3291 , - 376 , - 3377 , - 1158 , - 4855 , - 3332 , - 2157 , - 1330 , - 851 , - 720 , - 937 , - 1502 , - 2415 , - 3676 , - 5285 , - 1674 , - 3979 , - 1064 , - 4065 , - 1846 , - 5543 , - 4020 , - 2845 , - 2018 , - 1539 , - 1408 , - 1625 , - 2190 , - 3103 , - 4364 , - 405 , - 2362 , - 4667 , - 1752 , - 4753 , - 2534 , - 663 , - 4708 , - 3533 , - 2706 , - 2227 , - 2096 , - 2313 , - 2878 , - 3791 , - 5052 , - 1093 , - 3050 , - 5355 , - 2440 , - 5441 , - 3222 , - 1351 , - 5396 , - 4221 , - 3394 , - 2915 , - 2784 , - 3001 , - 3566 , - 4479 , - 172 , - 1781 , - 3738 , - 475 , - 3128 , - 561 , - 3910 , - 2039 , - 516 , - 4909 , - 4082 , - 3603 , - 3472 , - 3689 , - 4254 , - 5167 , - 860 , - 2469 , - 4426 , - 1163 , - 3816 , - 1249 , - 4598 , - 2727 , - 1204 , - 29 , - 4770 , - 4291 , - 4160 , - 4377 , - 4942 , - 287 , - 1548 , - 3157 , - 5114 , - 1851 , - 4504 , - 1937 , - 5286 , - 3415 , - 1892 , - 717 , - 5458 , - 4979 , - 4848 , - 5065 , - 62 , - 975 , - 2236 , - 3845 , - 234 , - 2539 , - 5192 , - 2625 , - 406 , - 4103 , - 2580 , - 1405 , - 578 , - 99 , - 5536 , - 185 , - 750 , - 1663 , - 2924 , - 4533 , - 922 , - 3227 , - 312 , - 3313 , - 1094 , - 4791 , - 3268 , - 2093 , - 1266 , - 787 , - 656 , - 873 , - 1438 , - 2351 , - 3612 , - 5221 , - 1610 , - 3915 , - 1000 , - 4001 , - 1782 , - 5479 , - 3956 , - 2781 , - 1954 , - 1475 , - 1344 , - 1561 , - 2126 , - 3039 , - 4300 , - 341 , - 2298 , - 4603 , - 1688 , - 4689 , - 2470 , - 599 , - 4644 , - 3469 , - 2642 , - 2163 , - 2032 , - 2249 , - 2814 , - 3727 , - 4988 , - 1029 , - 2986 , - 5291 , - 2376 , - 5377 , - 3158 , - 1287 , - 5332 , - 4157 , - 3330 , - 2851 , - 2720 , - 2937 , - 3502 , - 4415 , - 108 , - 1717 , - 3674 , - 411 , - 3064 , - 497 , - 3846 , - 1975 , - 452 , - 4845 , - 4018 , - 3539 , - 3408 , - 3625 , - 4190 , - 5103 , - 796 , - 2405 , - 4362 , - 1099 , - 3752 , - 1185 , - 4534 , - 2663 , - 1140 , - 5533 , - 4706 , - 4227 , - 4096 , - 4313 , - 4878 , - 223 , - 1484 , - 3093 , - 5050 , - 1787 , - 4440 , - 1873 , - 5222 , - 3351 , - 1828 , - 653 , - 5394 , - 4915 , - 4784 , - 5001 , - 5566 , - 911 , - 2172 , - 3781 , - 170 , - 2475 , - 5128 , - 2561 , - 342 , - 4039 , - 2516 , - 1341 , - 514 , - 35 , - 5472 , - 121 , - 686 , - 1599 , - 2860 , - 4469 , - 858 , - 3163 , - 248 , - 3249 , - 1030 , - 4727 , - 3204 , - 2029 , - 1202 , - 723 , - 592 , - 809 , - 1374 , - 2287 , - 3548 , - 5157 , - 1546 , - 3851 , - 936 , - 3937 , - 1718 , - 5415 , - 3892 , - 2717 , - 1890 , - 1411 , - 1280 , - 1497 , - 2062 , - 2975 , - 4236 , - 277 , - 2234 , - 4539 , - 1624 , - 4625 , - 2406 , - 535 , - 4580 , - 3405 , - 2578 , - 2099 , - 1968 , - 2185 , - 2750 , - 3663 , - 4924 , - 965 , - 2922 , - 5227 , - 2312 , - 5313 , - 3094 , - 1223 , - 5268 , - 4093 , - 3266 , - 2787 , - 2656 , - 2873 , - 3438 , - 4351 , - 44 , - 1653 , - 3610 , - 347 , - 3000 , - 433 , - 3782 , - 1911 , - 388 , - 4781 , - 3954 , - 3475 , - 3344 , - 3561 , - 4126 , - 5039 , - 732 , - 2341 , - 4298 , - 1035 , - 3688 , - 1121 , - 4470 , - 2599 , - 1076 , - 5469 , - 4642 , - 4163 , - 4032 , - 4249 , - 4814 , - 159 , - 1420 , - 3029 , - 4986 , - 1723 , - 4376 , - 1809 , - 5158 , - 3287 , - 1764 , - 589 , - 5330 , - 4851 , - 4720 , - 4937 , - 5502 , - 847 , - 2108 , - 3717 , - 106 , - 2411 , - 5064 , - 2497 , - 278 , - 3975 , - 2452 , - 1277 , - 450 , - 5539 , - 5408 , - 57 , - 622 , - 1535 , - 2796 , - 4405 , - 794 , - 3099 , - 184 , - 3185 , - 966 , - 4663 , - 3140 , - 1965 , - 1138 , - 659 , - 528 , - 745 , - 1310 , - 2223 , - 3484 , - 5093 , - 1482 , - 3787 , - 872 , - 3873 , - 1654 , - 5351 , - 3828 , - 2653 , - 1826 , - 1347 , - 1216 , - 1433 , - 1998 , - 2911 , - 4172 , - 213 , - 2170 , - 4475 , - 1560 , - 4561 , - 2342 , - 471 , - 4516 , - 3341 , - 2514 , - 2035 , - 1904 , - 2121 , - 2686 , - 3599 , - 4860 , - 901 , - 2858 , - 5163 , - 2248 , - 5249 , - 3030 , - 1159 , - 5204 , - 4029 , - 3202 , - 2723 , - 2592 , - 2809 , - 3374 , - 4287 , - 5548 , - 1589 , - 3546 , - 283 , - 2936 , - 369 , - 3718 , - 1847 , - 324 , - 4717 , - 3890 , - 3411 , - 3280 , - 3497 , - 4062 , - 4975 , - 668 , - 2277 , - 4234 , - 971 , - 3624 , - 1057 , - 4406 , - 2535 , - 1012 , - 5405 , - 4578 , - 4099 , - 3968 , - 4185 , - 4750 , - 95 , - 1356 , - 2965 , - 4922 , - 1659 , - 4312 , - 1745 , - 5094 , - 3223 , - 1700 , - 525 , - 5266 , - 4787 , - 4656 , - 4873 , - 5438 , - 783 , - 2044 , - 3653 , - 42 , - 2347 , - 5000 , - 2433 , - 214 , - 3911 , - 2388 , - 1213 , - 386 , - 5475 , - 5344 , - 5561 , - 558 , - 1471 , - 2732 , - 4341 , - 730 , - 3035 , - 120 , - 3121 , - 902 , - 4599 , - 3076 , - 1901 , - 1074 , - 595 , - 464 , - 681 , - 1246 , - 2159 , - 3420 , - 5029 , - 1418 , - 3723 , - 808 , - 3809 , - 1590 , - 5287 , - 3764 , - 2589 , - 1762 , - 1283 , - 1152 , - 1369 , - 1934 , - 2847 , - 4108 , - 149 , - 2106 , - 4411 , - 1496 , - 4497 , - 2278 , - 407 , - 4452 , - 3277 , - 2450 , - 1971 , - 1840 , - 2057 , - 2622 , - 3535 , - 4796 , - 837 , - 2794 , - 5099 , - 2184 , - 5185 , - 2966 , - 1095 , - 5140 , - 3965 , - 3138 , - 2659 , - 2528 , - 2745 , - 3310 , - 4223 , - 5484 , - 1525 , - 3482 , - 219 , - 2872 , - 305 , - 3654 , - 1783 , - 260 , - 4653 , - 3826 , - 3347 , - 3216 , - 3433 , - 3998 , - 4911 , - 604 , - 2213 , - 4170 , - 907 , - 3560 , - 993 , - 4342 , - 2471 , - 948 , - 5341 , - 4514 , - 4035 , - 3904 , - 4121 , - 4686 , - 31 , - 1292 , - 2901 , - 4858 , - 1595 , - 4248 , - 1681 , - 5030 , - 3159 , - 1636 , - 461 , - 5202 , - 4723 , - 4592 , - 4809 , - 5374 , - 719 , - 1980 , - 3589 , - 5546 , - 2283 , - 4936 , - 2369 , - 150 , - 3847 , - 2324 , - 1149 , - 322 , - 5411 , - 5280 , - 5497 , - 494 , - 1407 , - 2668 , - 4277 , - 666 , - 2971 , - 56 , - 3057 , - 838 , - 4535 , - 3012 , - 1837 , - 1010 , - 531 , - 400 , - 617 , - 1182 , - 2095 , - 3356 , - 4965 , - 1354 , - 3659 , - 744 , - 3745 , - 1526 , - 5223 , - 3700 , - 2525 , - 1698 , - 1219 , - 1088 , - 1305 , - 1870 , - 2783 , - 4044 , - 85 , - 2042 , - 4347 , - 1432 , - 4433 , - 2214 , - 343 , - 4388 , - 3213 , - 2386 , - 1907 , - 1776 , - 1993 , - 2558 , - 3471 , - 4732 , - 773 , - 2730 , - 5035 , - 2120 , - 5121 , - 2902 , - 1031 , - 5076 , - 3901 , - 3074 , - 2595 , - 2464 , - 2681 , - 3246 , - 4159 , - 5420 , - 1461 , - 3418 , - 155 , - 2808 , - 241 , - 3590 , - 1719 , - 196 , - 4589 , - 3762 , - 3283 , - 3152 , - 3369 , - 3934 , - 4847 , - 540 , - 2149 , - 4106 , - 843 , - 3496 , - 929 , - 4278 , - 2407 , - 884 , - 5277 , - 4450 , - 3971 , - 3840 , - 4057 , - 4622 , - 5535 , - 1228 , - 2837 , - 4794 , - 1531 , - 4184 , - 1617 , - 4966 , - 3095 , - 1572 , - 397 , - 5138 , - 4659 , - 4528 , - 4745 , - 5310 , - 655 , - 1916 , - 3525 , - 5482 , - 2219 , - 4872 , - 2305 , - 86 , - 3783 , - 2260 , - 1085 , - 258 , - 5347 , - 5216 , - 5433 , - 430 , - 1343 , - 2604 , - 4213 , - 602 , - 2907 , - 5560 , - 2993 , - 774 , - 4471 , - 2948 , - 1773 , - 946 , - 467 , - 336 , - 553 , - 1118 , - 2031 , - 3292 , - 4901 , - 1290 , - 3595 , - 680 , - 3681 , - 1462 , - 5159 , - 3636 , - 2461 , - 1634 , - 1155 , - 1024 , - 1241 , - 1806 , - 2719 , - 3980 , - 21 , - 1978 , - 4283 , - 1368 , - 4369 , - 2150 , - 279 , - 4324 , - 3149 , - 2322 , - 1843 , - 1712 , - 1929 , - 2494 , - 3407 , - 4668 , - 709 , - 2666 , - 4971 , - 2056 , - 5057 , - 2838 , - 967 , - 5012 , - 3837 , - 3010 , - 2531 , - 2400 , - 2617 , - 3182 , - 4095 , - 5356 , - 1397 , - 3354 , - 91 , - 2744 , - 177 , - 3526 , - 1655 , - 132 , - 4525 , - 3698 , - 3219 , - 3088 , - 3305 , - 3870 , - 4783 , - 476 , - 2085 , - 4042 , - 779 , - 3432 , - 865 , - 4214 , - 2343 , - 820 , - 5213 , - 4386 , - 3907 , - 3776 , - 3993 , - 4558 , - 5471 , - 1164 , - 2773 , - 4730 , - 1467 , - 4120 , - 1553 , - 4902 , - 3031 , - 1508 , - 333 , - 5074 , - 4595 , - 4464 , - 4681 , - 5246 , - 591 , - 1852 , - 3461 , - 5418 , - 2155 , - 4808 , - 2241 , - 22 , - 3719 , - 2196 , - 1021 , - 194 , - 5283 , - 5152 , - 5369 , - 366 , - 1279 , - 2540 , - 4149 , - 538 , - 2843 , - 5496 , - 2929 , - 710 , - 4407 , - 2884 , - 1709 , - 882 , - 403 , - 272 , - 489 , - 1054 , - 1967 , - 3228 , - 4837 , - 1226 , - 3531 , - 616 , - 3617 , - 1398 , - 5095 , - 3572 , - 2397 , - 1570 , - 1091 , - 960 , - 1177 , - 1742 , - 2655 , - 3916 , - 5525 , - 1914 , - 4219 , - 1304 , - 4305 , - 2086 , - 215 , - 4260 , - 3085 , - 2258 , - 1779 , - 1648 , - 1865 , - 2430 , - 3343 , - 4604 , - 645 , - 2602 , - 4907 , - 1992 , - 4993 , - 2774 , - 903 , - 4948 , - 3773 , - 2946 , - 2467 , - 2336 , - 2553 , - 3118 , - 4031 , - 5292 , - 1333 , - 3290 , - 27 , - 2680 , - 113 , - 3462 , - 1591 , - 68 , - 4461 , - 3634 , - 3155 , - 3024 , - 3241 , - 3806 , - 4719 , - 412 , - 2021 , - 3978 , - 715 , - 3368 , - 801 , - 4150 , - 2279 , - 756 , - 5149 , - 4322 , - 3843 , - 3712 , - 3929 , - 4494 , - 5407 , - 1100 , - 2709 , - 4666 , - 1403 , - 4056 , - 1489 , - 4838 , - 2967 , - 1444 , - 269 , - 5010 , - 4531 , - 4400 , - 4617 , - 5182 , - 527 , - 1788 , - 3397 , - 5354 , - 2091 , - 4744 , - 2177 , - 5526 , - 3655 , - 2132 , - 957 , - 130 , - 5219 , - 5088 , - 5305 , - 302 , - 1215 , - 2476 , - 4085 , - 474 , - 2779 , - 5432 , - 2865 , - 646 , - 4343 , - 2820 , - 1645 , - 818 , - 339 , - 208 , - 425 , - 990 , - 1903 , - 3164 , - 4773 , - 1162 , - 3467 , - 552 , - 3553 , - 1334 , - 5031 , - 3508 , - 2333 , - 1506 , - 1027 , - 896 , - 1113 , - 1678 , - 2591 , - 3852 , - 5461 , - 1850 , - 4155 , - 1240 , - 4241 , - 2022 , - 151 , - 4196 , - 3021 , - 2194 , - 1715 , - 1584 , - 1801 , - 2366 , - 3279 , - 4540 , - 581 , - 2538 , - 4843 , - 1928 , - 4929 , - 2710 , - 839 , - 4884 , - 3709 , - 2882 , - 2403 , - 2272 , - 2489 , - 3054 , - 3967 , - 5228 , - 1269 , - 3226 , - 5531 , - 2616 , - 49 , - 3398 , - 1527 , - 4 , - 4397 , - 3570 , - 3091 , - 2960 , - 3177 , - 3742 , - 4655 , - 348 , - 1957 , - 3914 , - 651 , - 3304 , - 737 , - 4086 , - 2215 , - 692 , - 5085 , - 4258 , - 3779 , - 3648 , - 3865 , - 4430 , - 5343 , - 1036 , - 2645 , - 4602 , - 1339 , - 3992 , - 1425 , - 4774 , - 2903 , - 1380 , - 205 , - 4946 , - 4467 , - 4336 , - 4553 , - 5118 , - 463 , - 1724 , - 3333 , - 5290 , - 2027 , - 4680 , - 2113 , - 5462 , - 3591 , - 2068 , - 893 , - 66 , - 5155 , - 5024 , - 5241 , - 238 , - 1151 , - 2412 , - 4021 , - 410 , - 2715 , - 5368 , - 2801 , - 582 , - 4279 , - 2756 , - 1581 , - 754 , - 275 , - 144 , - 361 , - 926 , - 1839 , - 3100 , - 4709 , - 1098 , - 3403 , - 488 , - 3489 , - 1270 , - 4967 , - 3444 , - 2269 , - 1442 , - 963 , - 832 , - 1049 , - 1614 , - 2527 , - 3788 , - 5397 , - 1786 , - 4091 , - 1176 , - 4177 , - 1958 , - 87 , - 4132 , - 2957 , - 2130 , - 1651 , - 1520 , - 1737 , - 2302 , - 3215 , - 4476 , - 517 , - 2474 , - 4779 , - 1864 , - 4865 , - 2646 , - 775 , - 4820 , - 3645 , - 2818 , - 2339 , - 2208 , - 2425 , - 2990 , - 3903 , - 5164 , - 1205 , - 3162 , - 5467 , - 2552 , - 5553 , - 3334 , - 1463 , - 5508 , - 4333 , - 3506 , - 3027 , - 2896 , - 3113 , - 3678 , - 4591 , - 284 , - 1893 , - 3850 , - 587 , - 3240 , - 673 , - 4022 , - 2151 , - 628 , - 5021 , - 4194 , - 3715 , - 3584 , - 3801 , - 4366 , - 5279 , - 972 , - 2581 , - 4538 , - 1275 , - 3928 , - 1361 , - 4710 , - 2839 , - 1316 , - 141 , - 4882 , - 4403 , - 4272 , - 4489 , - 5054 , - 399 , - 1660 , - 3269 , - 5226 , - 1963 , - 4616 , - 2049 , - 5398 , - 3527 , - 2004 , - 829 , - 2 , - 5091 , - 4960 , - 5177 , - 174 , - 1087 , - 2348 , - 3957 , - 346 , - 2651 , - 5304 , - 2737 , - 518 , - 4215 , - 2692 , - 1517 , - 690 , - 211 , - 80 , - 297 , - 862 , - 1775 , - 3036 , - 4645 , - 1034 , - 3339 , - 424 , - 3425 , - 1206 , - 4903 , - 3380 , - 2205 , - 1378 , - 899 , - 768 , - 985 , - 1550 , - 2463 , - 3724 , - 5333 , - 1722 , - 4027 , - 1112 , - 4113 , - 1894 , - 23 , - 4068 , - 2893 , - 2066 , - 1587 , - 1456 , - 1673 , - 2238 , - 3151 , - 4412 , - 453 , - 2410 , - 4715 , - 1800 , - 4801 , - 2582 , - 711 , - 4756 , - 3581 , - 2754 , - 2275 , - 2144 , - 2361 , - 2926 , - 3839 , - 5100 , - 1141 , - 3098 , - 5403 , - 2488 , - 5489 , - 3270 , - 1399 , - 5444 , - 4269 , - 3442 , - 2963 , - 2832 , - 3049 , - 3614 , - 4527 , - 220 , - 1829 , - 3786 , - 523 , - 3176 , - 609 , - 3958 , - 2087 , - 564 , - 4957 , - 4130 , - 3651 , - 3520 , - 3737 , - 4302 , - 5215 , - 908 , - 2517 , - 4474 , - 1211 , - 3864 , - 1297 , - 4646 , - 2775 , - 1252 , - 77 , - 4818 , - 4339 , - 4208 , - 4425 , - 4990 , - 335 , - 1596 , - 3205 , - 5162 , - 1899 , - 4552 , - 1985 , - 5334 , - 3463 , - 1940 , - 765 , - 5506 , - 5027 , - 4896 , - 5113 , - 110 , - 1023 , - 2284 , - 3893 , - 282 , - 2587 , - 5240 , - 2673 , - 454 , - 4151 , - 2628 , - 1453 , - 626 , - 147 , - 16 , - 233 , - 798 , - 1711 , - 2972 , - 4581 , - 970 , - 3275 , - 360 , - 3361 , - 1142 , - 4839 , - 3316 , - 2141 , - 1314 , - 835 , - 704 , - 921 , - 1486 , - 2399 , - 3660 , - 5269 , - 1658 , - 3963 , - 1048 , - 4049 , - 1830 , - 5527 , - 4004 , - 2829 , - 2002 , - 1523 , - 1392 , - 1609 , - 2174 , - 3087 , - 4348 , - 389 , - 2346 , - 4651 , - 1736 , - 4737 , - 2518 , - 647 , - 4692 , - 3517 , - 2690 , - 2211 , - 2080 , - 2297 , - 2862 , - 3775 , - 5036 , - 1077 , - 3034 , - 5339 , - 2424 , - 5425 , - 3206 , - 1335 , - 5380 , - 4205 , - 3378 , - 2899 , - 2768 , - 2985 , - 3550 , - 4463 , - 156 , - 1765 , - 3722 , - 459 , - 3112 , - 545 , - 3894 , - 2023 , - 500 , - 4893 , - 4066 , - 3587 , - 3456 , - 3673 , - 4238 , - 5151 , - 844 , - 2453 , - 4410 , - 1147 , - 3800 , - 1233 , - 4582 , - 2711 , - 1188 , - 13 , - 4754 , - 4275 , - 4144 , - 4361 , - 4926 , - 271 , - 1532 , - 3141 , - 5098 , - 1835 , - 4488 , - 1921 , - 5270 , - 3399 , - 1876 , - 701 , - 5442 , - 4963 , - 4832 , - 5049 , - 46 , - 959 , - 2220 , - 3829 , - 218 , - 2523 , - 5176 , - 2609 , - 390 , - 4087 , - 2564 , - 1389 , - 562 , - 83 , - 5520 , - 169 , - 734 , - 1647 , - 2908 , - 4517 , - 906 , - 3211 , - 296 , - 3297 , - 1078 , - 4775 , - 3252 , - 2077 , - 1250 , - 771 , - 640 , - 857 , - 1422 , - 2335 , - 3596 , - 5205 , - 1594 , - 3899 , - 984 , - 3985 , - 1766 , - 5463 , - 3940 , - 2765 , - 1938 , - 1459 , - 1328 , - 1545 , - 2110 , - 3023 , - 4284 , - 325 , - 2282 , - 4587 , - 1672 , - 4673 , - 2454 , - 583 , - 4628 , - 3453 , - 2626 , - 2147 , - 2016 , - 2233 , - 2798 , - 3711 , - 4972 , - 1013 , - 2970 , - 5275 , - 2360 , - 5361 , - 3142 , - 1271 , - 5316 , - 4141 , - 3314 , - 2835 , - 2704 , - 2921 , - 3486 , - 4399 , - 92 , - 1701 , - 3658 , - 395 , - 3048 , - 481 , - 3830 , - 1959 , - 436 , - 4829 , - 4002 , - 3523 , - 3392 , - 3609 , - 4174 , - 5087 , - 780 , - 2389 , - 4346 , - 1083 , - 3736 , - 1169 , - 4518 , - 2647 , - 1124 , - 5517 , - 4690 , - 4211 , - 4080 , - 4297 , - 4862 , - 207 , - 1468 , - 3077 , - 5034 , - 1771 , - 4424 , - 1857 , - 5206 , - 3335 , - 1812 , - 637 , - 5378 , - 4899 , - 4768 , - 4985 , - 5550 , - 895 , - 2156 , - 3765 , - 154 , - 2459 , - 5112 , - 2545 , - 326 , - 4023 , - 2500 , - 1325 , - 498 , - 19 , - 5456 , - 105 , - 670 , - 1583 , - 2844 , - 4453 , - 842 , - 3147 , - 232 , - 3233 , - 1014 , - 4711 , - 3188 , - 2013 , - 1186 , - 707 , - 576 , - 793 , - 1358 , - 2271 , - 3532 , - 5141 , - 1530 , - 3835 , - 920 , - 3921 , - 1702 , - 5399 , - 3876 , - 2701 , - 1874 , - 1395 , - 1264 , - 1481 , - 2046 , - 2959 , - 4220 , - 261 , - 2218 , - 4523 , - 1608 , - 4609 , - 2390 , - 519 , - 4564 , - 3389 , - 2562 , - 2083 , - 1952 , - 2169 , - 2734 , - 3647 , - 4908 , - 949 , - 2906 , - 5211 , - 2296 , - 5297 , - 3078 , - 1207 , - 5252 , - 4077 , - 3250 , - 2771 , - 2640 , - 2857 , - 3422 , - 4335 , - 28 , - 1637 , - 3594 , - 331 , - 2984 , - 417 , - 3766 , - 1895 , - 372 , - 4765 , - 3938 , - 3459 , - 3328 , - 3545 , - 4110 , - 5023 , - 716 , - 2325 , - 4282 , - 1019 , - 3672 , - 1105 , - 4454 , - 2583 , - 1060 , - 5453 , - 4626 , - 4147 , - 4016 , - 4233 , - 4798 , - 143 , - 1404 , - 3013 , - 4970 , - 1707 , - 4360 , - 1793 , - 5142 , - 3271 , - 1748 , - 573 , - 5314 , - 4835 , - 4704 , - 4921 , - 5486 , - 831 , - 2092 , - 3701 , - 90 , - 2395 , - 5048 , - 2481 , - 262 , - 3959 , - 2436 , - 1261 , - 434 , - 5523 , - 5392 , - 41 , - 606 , - 1519 , - 2780 , - 4389 , - 778 , - 3083 , - 168 , - 3169 , - 950 , - 4647 , - 3124 , - 1949 , - 1122 , - 643 , - 512 , - 729 , - 1294 , - 2207 , - 3468 , - 5077 , - 1466 , - 3771 , - 856 , - 3857 , - 1638 , - 5335 , - 3812 , - 2637 , - 1810 , - 1331 , - 1200 , - 1417 , - 1982 , - 2895 , - 4156 , - 197 , - 2154 , - 4459 , - 1544 , - 4545 , - 2326 , - 455 , - 4500 , - 3325 , - 2498 , - 2019 , - 1888 , - 2105 , - 2670 , - 3583 , - 4844 , - 885 , - 2842 , - 5147 , - 2232 , - 5233 , - 3014 , - 1143 , - 5188 , - 4013 , - 3186 , - 2707 , - 2576 , - 2793 , - 3358 , - 4271 , - 5532 , - 1573 , - 3530 , - 267 , - 2920 , - 353 , - 3702 , - 1831 , - 308 , - 4701 , - 3874 , - 3395 , - 3264 , - 3481 , - 4046 , - 4959 , - 652 , - 2261 , - 4218 , - 955 , - 3608 , - 1041 , - 4390 , - 2519 , - 996 , - 5389 , - 4562 , - 4083 , - 3952 , - 4169 , - 4734 , - 79 , - 1340 , - 2949 , - 4906 , - 1643 , - 4296 , - 1729 , - 5078 , - 3207 , - 1684 , - 509 , - 5250 , - 4771 , - 4640 , - 4857 , - 5422 , - 767 , - 2028 , - 3637 , - 26 , - 2331 , - 4984 , - 2417 , - 198 , - 3895 , - 2372 , - 1197 , - 370 , - 5459 , - 5328 , - 5545 , - 542 , - 1455 , - 2716 , - 4325 , - 714 , - 3019 , - 104 , - 3105 , - 886 , - 4583 , - 3060 , - 1885 , - 1058 , - 579 , - 448 , - 665 , - 1230 , - 2143 , - 3404 , - 5013 , - 1402 , - 3707 , - 792 , - 3793 , - 1574 , - 5271 , - 3748 , - 2573 , - 1746 , - 1267 , - 1136 , - 1353 , - 1918 , - 2831 , - 4092 , - 133 , - 2090 , - 4395 , - 1480 , - 4481 , - 2262 , - 391 , - 4436 , - 3261 , - 2434 , - 1955 , - 1824 , - 2041 , - 2606 , - 3519 , - 4780 , - 821 , - 2778 , - 5083 , - 2168 , - 5169 , - 2950 , - 1079 , - 5124 , - 3949 , - 3122 , - 2643 , - 2512 , - 2729 , - 3294 , - 4207 , - 5468 , - 1509 , - 3466 , - 203 , - 2856 , - 289 , - 3638 , - 1767 , - 244 , - 4637 , - 3810 , - 3331 , - 3200 , - 3417 , - 3982 , - 4895 , - 588 , - 2197 , - 4154 , - 891 , - 3544 , - 977 , - 4326 , - 2455 , - 932 , - 5325 , - 4498 , - 4019 , - 3888 , - 4105 , - 4670 , - 15 , - 1276 , - 2885 , - 4842 , - 1579 , - 4232 , - 1665 , - 5014 , - 3143 , - 1620 , - 445 , - 5186 , - 4707 , - 4576 , - 4793 , - 5358 , - 703 , - 1964 , - 3573 , - 5530 , - 2267 , - 4920 , - 2353 , - 134 , - 3831 , - 2308 , - 1133 , - 306 , - 5395 , - 5264 , - 5481 , - 478 , - 1391 , - 2652 , - 4261 , - 650 , - 2955 , - 40 , - 3041 , - 822 , - 4519 , - 2996 , - 1821 , - 994 , - 515 , - 384 , - 601 , - 1166 , - 2079 , - 3340 , - 4949 , - 1338 , - 3643 , - 728 , - 3729 , - 1510 , - 5207 , - 3684 , - 2509 , - 1682 , - 1203 , - 1072 , - 1289 , - 1854 , - 2767 , - 4028 , - 69 , - 2026 , - 4331 , - 1416 , - 4417 , - 2198 , - 327 , - 4372 , - 3197 , - 2370 , - 1891 , - 1760 , - 1977 , - 2542 , - 3455 , - 4716 , - 757 , - 2714 , - 5019 , - 2104 , - 5105 , - 2886 , - 1015 , - 5060 , - 3885 , - 3058 , - 2579 , - 2448 , - 2665 , - 3230 , - 4143 , - 5404 , - 1445 , - 3402 , - 139 , - 2792 , - 225 , - 3574 , - 1703 , - 180 , - 4573 , - 3746 , - 3267 , - 3136 , - 3353 , - 3918 , - 4831 , - 524 , - 2133 , - 4090 , - 827 , - 3480 , - 913 , - 4262 , - 2391 , - 868 , - 5261 , - 4434 , - 3955 , - 3824 , - 4041 , - 4606 , - 5519 , - 1212 , - 2821 , - 4778 , - 1515 , - 4168 , - 1601 , - 4950 , - 3079 , - 1556 , - 381 , - 5122 , - 4643 , - 4512 , - 4729 , - 5294 , - 639 , - 1900 , - 3509 , - 5466 , - 2203 , - 4856 , - 2289 , - 70 , - 3767 , - 2244 , - 1069 , - 242 , - 5331 , - 5200 , - 5417 , - 414 , - 1327 , - 2588 , - 4197 , - 586 , - 2891 , - 5544 , - 2977 , - 758 , - 4455 , - 2932 , - 1757 , - 930 , - 451 , - 320 , - 537 , - 1102 , - 2015 , - 3276 , - 4885 , - 1274 , - 3579 , - 664 , - 3665 , - 1446 , - 5143 , - 3620 , - 2445 , - 1618 , - 1139 , - 1008 , - 1225 , - 1790 , - 2703 , - 3964 , - 5 , - 1962 , - 4267 , - 1352 , - 4353 , - 2134 , - 263 , - 4308 , - 3133 , - 2306 , - 1827 , - 1696 , - 1913 , - 2478 , - 3391 , - 4652 , - 693 , - 2650 , - 4955 , - 2040 , - 5041 , - 2822 , - 951 , - 4996 , - 3821 , - 2994 , - 2515 , - 2384 , - 2601 , - 3166 , - 4079 , - 5340 , - 1381 , - 3338 , - 75 , - 2728 , - 161 , - 3510 , - 1639 , - 116 , - 4509 , - 3682 , - 3203 , - 3072 , - 3289 , - 3854 , - 4767 , - 460 , - 2069 , - 4026 , - 763 , - 3416 , - 849 , - 4198 , - 2327 , - 804 , - 5197 , - 4370 , - 3891 , - 3760 , - 3977 , - 4542 , - 5455 , - 1148 , - 2757 , - 4714 , - 1451 , - 4104 , - 1537 , - 4886 , - 3015 , - 1492 , - 317 , - 5058 , - 4579 , - 4448 , - 4665 , - 5230 , - 575 , - 1836 , - 3445 , - 5402 , - 2139 , - 4792 , - 2225 , - 6 , - 3703 , - 2180 , - 1005 , - 178 , - 5267 , - 5136 , - 5353 , - 350 , - 1263 , - 2524 , - 4133 , - 522 , - 2827 , - 5480 , - 2913 , - 694 , - 4391 , - 2868 , - 1693 , - 866 , - 387 , - 256 , - 473 , - 1038 , - 1951 , - 3212 , - 4821 , - 1210 , - 3515 , - 600 , - 3601 , - 1382 , - 5079 , - 3556 , - 2381 , - 1554 , - 1075 , - 944 , - 1161 , - 1726 , - 2639 , - 3900 , - 5509 , - 1898 , - 4203 , - 1288 , - 4289 , - 2070 , - 199 , - 4244 , - 3069 , - 2242 , - 1763 , - 1632 , - 1849 , - 2414 , - 3327 , - 4588 , - 629 , - 2586 , - 4891 , - 1976 , - 4977 , - 2758 , - 887 , - 4932 , - 3757 , - 2930 , - 2451 , - 2320 , - 2537 , - 3102 , - 4015 , - 5276 , - 1317 , - 3274 , - 11 , - 2664 , - 97 , - 3446 , - 1575 , - 52 , - 4445 , - 3618 , - 3139 , - 3008 , - 3225 , - 3790 , - 4703 , - 396 , - 2005 , - 3962 , - 699 , - 3352 , - 785 , - 4134 , - 2263 , - 740 , - 5133 , - 4306 , - 3827 , - 3696 , - 3913 , - 4478 , - 5391 , - 1084 , - 2693 , - 4650 , - 1387 , - 4040 , - 1473 , - 4822 , - 2951 , - 1428 , - 253 , - 4994 , - 4515 , - 4384 , - 4601 , - 5166 , - 511 , - 1772 , - 3381 , - 5338 , - 2075 , - 4728 , - 2161 , - 5510 , - 3639 , - 2116 , - 941 , - 114 , - 5203 , - 5072 , - 5289 , - 286 , - 1199 , - 2460 , - 4069 , - 458 , - 2763 , - 5416 , - 2849 , - 630 , - 4327 , - 2804 , - 1629 , - 802 , - 323 , - 192 , - 409 , - 974 , - 1887 , - 3148 , - 4757 , - 1146 , - 3451 , - 536 , - 3537 , - 1318 , - 5015 , - 3492 , - 2317 , - 1490 , - 1011 , - 880 , - 1097 , - 1662 , - 2575 , - 3836 , - 5445 , - 1834 , - 4139 , - 1224 , - 4225 , - 2006 , - 135 , - 4180 , - 3005 , - 2178 , - 1699 , - 1568 , - 1785 , - 2350 , - 3263 , - 4524 , - 565 , - 2522 , - 4827 , - 1912 , - 4913 , - 2694 , - 823 , - 4868 , - 3693 , - 2866 , - 2387 , - 2256 , - 2473 , - 3038 , - 3951 , - 5212 , - 1253 , - 3210 , - 5515 , - 2600 , - 33 , - 3382 , - 1511 , - 5556 , - 4381 , - 3554 , - 3075 , - 2944 , - 3161 , - 3726 , - 4639 , - 332 , - 1941 , - 3898 , - 635 , - 3288 , - 721 , - 4070 , - 2199 , - 676 , - 5069 , - 4242 , - 3763 , - 3632 , - 3849 , - 4414 , - 5327 , - 1020 , - 2629 , - 4586 , - 1323 , - 3976 , - 1409 , - 4758 , - 2887 , - 1364 , - 189 , - 4930 , - 4451 , - 4320 , - 4537 , - 5102 , - 447 , - 1708 , - 3317 , - 5274 , - 2011 , - 4664 , - 2097 , - 5446 , - 3575 , - 2052 , - 877 , - 50 , - 5139 , - 5008 , - 5225 , - 222 , - 1135 , - 2396 , - 4005 , - 394 , - 2699 , - 5352 , - 2785 , - 566 , - 4263 , - 2740 , - 1565 , - 738 , - 259 , - 128 , - 345 , - 910 , - 1823 , - 3084 , - 4693 , - 1082 , - 3387 , - 472 , - 3473 , - 1254 , - 4951 , - 3428 , - 2253 , - 1426 , - 947 , - 816 , - 1033 , - 1598 , - 2511 , - 3772 , - 5381 , - 1770 , - 4075 , - 1160 , - 4161 , - 1942 , - 71 , - 4116 , - 2941 , - 2114 , - 1635 , - 1504 , - 1721 , - 2286 , - 3199 , - 4460 , - 501 , - 2458 , - 4763 , - 1848 , - 4849 , - 2630 , - 759 , - 4804 , - 3629 , - 2802 , - 2323 , - 2192 , - 2409 , - 2974 , - 3887 , - 5148 , - 1189 , - 3146 , - 5451 , - 2536 , - 5537 , - 3318 , - 1447 , - 5492 , - 4317 , - 3490 , - 3011 , - 2880 , - 3097 , - 3662 , - 4575 , - 268 , - 1877 , - 3834 , - 571 , - 3224 , - 657 , - 4006 , - 2135 , - 612 , - 5005 , - 4178 , - 3699 , - 3568 , - 3785 , - 4350 , - 5263 , - 956 , - 2565 , - 4522 , - 1259 , - 3912 , - 1345 , - 4694 , - 2823 , - 1300 , - 125 , - 4866 , - 4387 , - 4256 , - 4473 , - 5038 , - 383 , - 1644 , - 3253 , - 5210 , - 1947 , - 4600 , - 2033 , - 5382 , - 3511 , - 1988 , - 813 , - 5554 , - 5075 , - 4944 , - 5161 , - 158 , - 1071 , - 2332 , - 3941 , - 330 , - 2635 , - 5288 , - 2721 , - 502 , - 4199 , - 2676 , - 1501 , - 674 , - 195 , - 64 , - 281 , - 846 , - 1759 , - 3020 , - 4629 , - 1018 , - 3323 , - 408 , - 3409 , - 1190 , - 4887 , - 3364 , - 2189 , - 1362 , - 883 , - 752 , - 969 , - 1534 , - 2447 , - 3708 , - 5317 , - 1706 , - 4011 , - 1096 , - 4097 , - 1878 , - 7 , - 4052 , - 2877 , - 2050 , - 1571 , - 1440 , - 1657 , - 2222 , - 3135 , - 4396 , - 437 , - 2394 , - 4699 , - 1784 , - 4785 , - 2566 , - 695 , - 4740 , - 3565 , - 2738 , - 2259 , - 2128 , - 2345 , - 2910 , - 3823 , - 5084 , - 1125 , - 3082 , - 5387 , - 2472 , - 5473 , - 3254 , - 1383 , - 5428 , - 4253 , - 3426 , - 2947 , - 2816 , - 3033 , - 3598 , - 4511 , - 204 , - 1813 , - 3770 , - 507 , - 3160 , - 593 , - 3942 , - 2071 , - 548 , - 4941 , - 4114 , - 3635 , - 3504 , - 3721 , - 4286 , - 5199 , - 892 , - 2501 , - 4458 , - 1195 , - 3848 , - 1281 , - 4630 , - 2759 , - 1236 , - 61 , - 4802 , - 4323 , - 4192 , - 4409 , - 4974 , - 319 , - 1580 , - 3189 , - 5146 , - 1883 , - 4536 , - 1969 , - 5318 , - 3447 , - 1924 , - 749 , - 5490 , - 5011 , - 4880 , - 5097 , - 94 , - 1007 , - 2268 , - 3877 , - 266 , - 2571 , - 5224 , - 2657 , - 438 , - 4135 , - 2612 , - 1437 , - 610 , - 131 , - 0 , - 221 , - 794 , - 1719 , - 2996 , - 4625 , - 974 , - 3307 , - 360 , - 3397 , - 1154 , - 4895 , - 3356 , - 2169 , - 1334 , - 851 , - 720 , - 941 , - 1514 , - 2439 , - 3716 , - 5345 , - 1694 , - 4027 , - 1080 , - 4117 , - 1874 , - 5615 , - 4076 , - 2889 , - 2054 , - 1571 , - 1440 , - 1661 , - 2234 , - 3159 , - 4436 , - 433 , - 2414 , - 4747 , - 1800 , - 4837 , - 2594 , - 703 , - 4796 , - 3609 , - 2774 , - 2291 , - 2160 , - 2381 , - 2954 , - 3879 , - 5156 , - 1153 , - 3134 , - 5467 , - 2520 , - 5557 , - 3314 , - 1423 , - 5516 , - 4329 , - 3494 , - 3011 , - 2880 , - 3101 , - 3674 , - 4599 , - 244 , - 1873 , - 3854 , - 555 , - 3240 , - 645 , - 4034 , - 2143 , - 604 , - 5049 , - 4214 , - 3731 , - 3600 , - 3821 , - 4394 , - 5319 , - 964 , - 2593 , - 4574 , - 1275 , - 3960 , - 1365 , - 4754 , - 2863 , - 1324 , - 137 , - 4934 , - 4451 , - 4320 , - 4541 , - 5114 , - 407 , - 1684 , - 3313 , - 5294 , - 1995 , - 4680 , - 2085 , - 5474 , - 3583 , - 2044 , - 857 , - 22 , - 5171 , - 5040 , - 5261 , - 202 , - 1127 , - 2404 , - 4033 , - 382 , - 2715 , - 5400 , - 2805 , - 562 , - 4303 , - 2764 , - 1577 , - 742 , - 259 , - 128 , - 349 , - 922 , - 1847 , - 3124 , - 4753 , - 1102 , - 3435 , - 488 , - 3525 , - 1282 , - 5023 , - 3484 , - 2297 , - 1462 , - 979 , - 848 , - 1069 , - 1642 , - 2567 , - 3844 , - 5473 , - 1822 , - 4155 , - 1208 , - 4245 , - 2002 , - 111 , - 4204 , - 3017 , - 2182 , - 1699 , - 1568 , - 1789 , - 2362 , - 3287 , - 4564 , - 561 , - 2542 , - 4875 , - 1928 , - 4965 , - 2722 , - 831 , - 4924 , - 3737 , - 2902 , - 2419 , - 2288 , - 2509 , - 3082 , - 4007 , - 5284 , - 1281 , - 3262 , - 5595 , - 2648 , - 53 , - 3442 , - 1551 , - 12 , - 4457 , - 3622 , - 3139 , - 3008 , - 3229 , - 3802 , - 4727 , - 372 , - 2001 , - 3982 , - 683 , - 3368 , - 773 , - 4162 , - 2271 , - 732 , - 5177 , - 4342 , - 3859 , - 3728 , - 3949 , - 4522 , - 5447 , - 1092 , - 2721 , - 4702 , - 1403 , - 4088 , - 1493 , - 4882 , - 2991 , - 1452 , - 265 , - 5062 , - 4579 , - 4448 , - 4669 , - 5242 , - 535 , - 1812 , - 3441 , - 5422 , - 2123 , - 4808 , - 2213 , - 5602 , - 3711 , - 2172 , - 985 , - 150 , - 5299 , - 5168 , - 5389 , - 330 , - 1255 , - 2532 , - 4161 , - 510 , - 2843 , - 5528 , - 2933 , - 690 , - 4431 , - 2892 , - 1705 , - 870 , - 387 , - 256 , - 477 , - 1050 , - 1975 , - 3252 , - 4881 , - 1230 , - 3563 , - 616 , - 3653 , - 1410 , - 5151 , - 3612 , - 2425 , - 1590 , - 1107 , - 976 , - 1197 , - 1770 , - 2695 , - 3972 , - 5601 , - 1950 , - 4283 , - 1336 , - 4373 , - 2130 , - 239 , - 4332 , - 3145 , - 2310 , - 1827 , - 1696 , - 1917 , - 2490 , - 3415 , - 4692 , - 689 , - 2670 , - 5003 , - 2056 , - 5093 , - 2850 , - 959 , - 5052 , - 3865 , - 3030 , - 2547 , - 2416 , - 2637 , - 3210 , - 4135 , - 5412 , - 1409 , - 3390 , - 91 , - 2776 , - 181 , - 3570 , - 1679 , - 140 , - 4585 , - 3750 , - 3267 , - 3136 , - 3357 , - 3930 , - 4855 , - 500 , - 2129 , - 4110 , - 811 , - 3496 , - 901 , - 4290 , - 2399 , - 860 , - 5305 , - 4470 , - 3987 , - 3856 , - 4077 , - 4650 , - 5575 , - 1220 , - 2849 , - 4830 , - 1531 , - 4216 , - 1621 , - 5010 , - 3119 , - 1580 , - 393 , - 5190 , - 4707 , - 4576 , - 4797 , - 5370 , - 663 , - 1940 , - 3569 , - 5550 , - 2251 , - 4936 , - 2341 , - 98 , - 3839 , - 2300 , - 1113 , - 278 , - 5427 , - 5296 , - 5517 , - 458 , - 1383 , - 2660 , - 4289 , - 638 , - 2971 , - 24 , - 3061 , - 818 , - 4559 , - 3020 , - 1833 , - 998 , - 515 , - 384 , - 605 , - 1178 , - 2103 , - 3380 , - 5009 , - 1358 , - 3691 , - 744 , - 3781 , - 1538 , - 5279 , - 3740 , - 2553 , - 1718 , - 1235 , - 1104 , - 1325 , - 1898 , - 2823 , - 4100 , - 97 , - 2078 , - 4411 , - 1464 , - 4501 , - 2258 , - 367 , - 4460 , - 3273 , - 2438 , - 1955 , - 1824 , - 2045 , - 2618 , - 3543 , - 4820 , - 817 , - 2798 , - 5131 , - 2184 , - 5221 , - 2978 , - 1087 , - 5180 , - 3993 , - 3158 , - 2675 , - 2544 , - 2765 , - 3338 , - 4263 , - 5540 , - 1537 , - 3518 , - 219 , - 2904 , - 309 , - 3698 , - 1807 , - 268 , - 4713 , - 3878 , - 3395 , - 3264 , - 3485 , - 4058 , - 4983 , - 628 , - 2257 , - 4238 , - 939 , - 3624 , - 1029 , - 4418 , - 2527 , - 988 , - 5433 , - 4598 , - 4115 , - 3984 , - 4205 , - 4778 , - 71 , - 1348 , - 2977 , - 4958 , - 1659 , - 4344 , - 1749 , - 5138 , - 3247 , - 1708 , - 521 , - 5318 , - 4835 , - 4704 , - 4925 , - 5498 , - 791 , - 2068 , - 3697 , - 46 , - 2379 , - 5064 , - 2469 , - 226 , - 3967 , - 2428 , - 1241 , - 406 , - 5555 , - 5424 , - 13 , - 586 , - 1511 , - 2788 , - 4417 , - 766 , - 3099 , - 152 , - 3189 , - 946 , - 4687 , - 3148 , - 1961 , - 1126 , - 643 , - 512 , - 733 , - 1306 , - 2231 , - 3508 , - 5137 , - 1486 , - 3819 , - 872 , - 3909 , - 1666 , - 5407 , - 3868 , - 2681 , - 1846 , - 1363 , - 1232 , - 1453 , - 2026 , - 2951 , - 4228 , - 225 , - 2206 , - 4539 , - 1592 , - 4629 , - 2386 , - 495 , - 4588 , - 3401 , - 2566 , - 2083 , - 1952 , - 2173 , - 2746 , - 3671 , - 4948 , - 945 , - 2926 , - 5259 , - 2312 , - 5349 , - 3106 , - 1215 , - 5308 , - 4121 , - 3286 , - 2803 , - 2672 , - 2893 , - 3466 , - 4391 , - 36 , - 1665 , - 3646 , - 347 , - 3032 , - 437 , - 3826 , - 1935 , - 396 , - 4841 , - 4006 , - 3523 , - 3392 , - 3613 , - 4186 , - 5111 , - 756 , - 2385 , - 4366 , - 1067 , - 3752 , - 1157 , - 4546 , - 2655 , - 1116 , - 5561 , - 4726 , - 4243 , - 4112 , - 4333 , - 4906 , - 199 , - 1476 , - 3105 , - 5086 , - 1787 , - 4472 , - 1877 , - 5266 , - 3375 , - 1836 , - 649 , - 5446 , - 4963 , - 4832 , - 5053 , - 5626 , - 919 , - 2196 , - 3825 , - 174 , - 2507 , - 5192 , - 2597 , - 354 , - 4095 , - 2556 , - 1369 , - 534 , - 51 , - 5552 , - 141 , - 714 , - 1639 , - 2916 , - 4545 , - 894 , - 3227 , - 280 , - 3317 , - 1074 , - 4815 , - 3276 , - 2089 , - 1254 , - 771 , - 640 , - 861 , - 1434 , - 2359 , - 3636 , - 5265 , - 1614 , - 3947 , - 1000 , - 4037 , - 1794 , - 5535 , - 3996 , - 2809 , - 1974 , - 1491 , - 1360 , - 1581 , - 2154 , - 3079 , - 4356 , - 353 , - 2334 , - 4667 , - 1720 , - 4757 , - 2514 , - 623 , - 4716 , - 3529 , - 2694 , - 2211 , - 2080 , - 2301 , - 2874 , - 3799 , - 5076 , - 1073 , - 3054 , - 5387 , - 2440 , - 5477 , - 3234 , - 1343 , - 5436 , - 4249 , - 3414 , - 2931 , - 2800 , - 3021 , - 3594 , - 4519 , - 164 , - 1793 , - 3774 , - 475 , - 3160 , - 565 , - 3954 , - 2063 , - 524 , - 4969 , - 4134 , - 3651 , - 3520 , - 3741 , - 4314 , - 5239 , - 884 , - 2513 , - 4494 , - 1195 , - 3880 , - 1285 , - 4674 , - 2783 , - 1244 , - 57 , - 4854 , - 4371 , - 4240 , - 4461 , - 5034 , - 327 , - 1604 , - 3233 , - 5214 , - 1915 , - 4600 , - 2005 , - 5394 , - 3503 , - 1964 , - 777 , - 5574 , - 5091 , - 4960 , - 5181 , - 122 , - 1047 , - 2324 , - 3953 , - 302 , - 2635 , - 5320 , - 2725 , - 482 , - 4223 , - 2684 , - 1497 , - 662 , - 179 , - 48 , - 269 , - 842 , - 1767 , - 3044 , - 4673 , - 1022 , - 3355 , - 408 , - 3445 , - 1202 , - 4943 , - 3404 , - 2217 , - 1382 , - 899 , - 768 , - 989 , - 1562 , - 2487 , - 3764 , - 5393 , - 1742 , - 4075 , - 1128 , - 4165 , - 1922 , - 31 , - 4124 , - 2937 , - 2102 , - 1619 , - 1488 , - 1709 , - 2282 , - 3207 , - 4484 , - 481 , - 2462 , - 4795 , - 1848 , - 4885 , - 2642 , - 751 , - 4844 , - 3657 , - 2822 , - 2339 , - 2208 , - 2429 , - 3002 , - 3927 , - 5204 , - 1201 , - 3182 , - 5515 , - 2568 , - 5605 , - 3362 , - 1471 , - 5564 , - 4377 , - 3542 , - 3059 , - 2928 , - 3149 , - 3722 , - 4647 , - 292 , - 1921 , - 3902 , - 603 , - 3288 , - 693 , - 4082 , - 2191 , - 652 , - 5097 , - 4262 , - 3779 , - 3648 , - 3869 , - 4442 , - 5367 , - 1012 , - 2641 , - 4622 , - 1323 , - 4008 , - 1413 , - 4802 , - 2911 , - 1372 , - 185 , - 4982 , - 4499 , - 4368 , - 4589 , - 5162 , - 455 , - 1732 , - 3361 , - 5342 , - 2043 , - 4728 , - 2133 , - 5522 , - 3631 , - 2092 , - 905 , - 70 , - 5219 , - 5088 , - 5309 , - 250 , - 1175 , - 2452 , - 4081 , - 430 , - 2763 , - 5448 , - 2853 , - 610 , - 4351 , - 2812 , - 1625 , - 790 , - 307 , - 176 , - 397 , - 970 , - 1895 , - 3172 , - 4801 , - 1150 , - 3483 , - 536 , - 3573 , - 1330 , - 5071 , - 3532 , - 2345 , - 1510 , - 1027 , - 896 , - 1117 , - 1690 , - 2615 , - 3892 , - 5521 , - 1870 , - 4203 , - 1256 , - 4293 , - 2050 , - 159 , - 4252 , - 3065 , - 2230 , - 1747 , - 1616 , - 1837 , - 2410 , - 3335 , - 4612 , - 609 , - 2590 , - 4923 , - 1976 , - 5013 , - 2770 , - 879 , - 4972 , - 3785 , - 2950 , - 2467 , - 2336 , - 2557 , - 3130 , - 4055 , - 5332 , - 1329 , - 3310 , - 11 , - 2696 , - 101 , - 3490 , - 1599 , - 60 , - 4505 , - 3670 , - 3187 , - 3056 , - 3277 , - 3850 , - 4775 , - 420 , - 2049 , - 4030 , - 731 , - 3416 , - 821 , - 4210 , - 2319 , - 780 , - 5225 , - 4390 , - 3907 , - 3776 , - 3997 , - 4570 , - 5495 , - 1140 , - 2769 , - 4750 , - 1451 , - 4136 , - 1541 , - 4930 , - 3039 , - 1500 , - 313 , - 5110 , - 4627 , - 4496 , - 4717 , - 5290 , - 583 , - 1860 , - 3489 , - 5470 , - 2171 , - 4856 , - 2261 , - 18 , - 3759 , - 2220 , - 1033 , - 198 , - 5347 , - 5216 , - 5437 , - 378 , - 1303 , - 2580 , - 4209 , - 558 , - 2891 , - 5576 , - 2981 , - 738 , - 4479 , - 2940 , - 1753 , - 918 , - 435 , - 304 , - 525 , - 1098 , - 2023 , - 3300 , - 4929 , - 1278 , - 3611 , - 664 , - 3701 , - 1458 , - 5199 , - 3660 , - 2473 , - 1638 , - 1155 , - 1024 , - 1245 , - 1818 , - 2743 , - 4020 , - 17 , - 1998 , - 4331 , - 1384 , - 4421 , - 2178 , - 287 , - 4380 , - 3193 , - 2358 , - 1875 , - 1744 , - 1965 , - 2538 , - 3463 , - 4740 , - 737 , - 2718 , - 5051 , - 2104 , - 5141 , - 2898 , - 1007 , - 5100 , - 3913 , - 3078 , - 2595 , - 2464 , - 2685 , - 3258 , - 4183 , - 5460 , - 1457 , - 3438 , - 139 , - 2824 , - 229 , - 3618 , - 1727 , - 188 , - 4633 , - 3798 , - 3315 , - 3184 , - 3405 , - 3978 , - 4903 , - 548 , - 2177 , - 4158 , - 859 , - 3544 , - 949 , - 4338 , - 2447 , - 908 , - 5353 , - 4518 , - 4035 , - 3904 , - 4125 , - 4698 , - 5623 , - 1268 , - 2897 , - 4878 , - 1579 , - 4264 , - 1669 , - 5058 , - 3167 , - 1628 , - 441 , - 5238 , - 4755 , - 4624 , - 4845 , - 5418 , - 711 , - 1988 , - 3617 , - 5598 , - 2299 , - 4984 , - 2389 , - 146 , - 3887 , - 2348 , - 1161 , - 326 , - 5475 , - 5344 , - 5565 , - 506 , - 1431 , - 2708 , - 4337 , - 686 , - 3019 , - 72 , - 3109 , - 866 , - 4607 , - 3068 , - 1881 , - 1046 , - 563 , - 432 , - 653 , - 1226 , - 2151 , - 3428 , - 5057 , - 1406 , - 3739 , - 792 , - 3829 , - 1586 , - 5327 , - 3788 , - 2601 , - 1766 , - 1283 , - 1152 , - 1373 , - 1946 , - 2871 , - 4148 , - 145 , - 2126 , - 4459 , - 1512 , - 4549 , - 2306 , - 415 , - 4508 , - 3321 , - 2486 , - 2003 , - 1872 , - 2093 , - 2666 , - 3591 , - 4868 , - 865 , - 2846 , - 5179 , - 2232 , - 5269 , - 3026 , - 1135 , - 5228 , - 4041 , - 3206 , - 2723 , - 2592 , - 2813 , - 3386 , - 4311 , - 5588 , - 1585 , - 3566 , - 267 , - 2952 , - 357 , - 3746 , - 1855 , - 316 , - 4761 , - 3926 , - 3443 , - 3312 , - 3533 , - 4106 , - 5031 , - 676 , - 2305 , - 4286 , - 987 , - 3672 , - 1077 , - 4466 , - 2575 , - 1036 , - 5481 , - 4646 , - 4163 , - 4032 , - 4253 , - 4826 , - 119 , - 1396 , - 3025 , - 5006 , - 1707 , - 4392 , - 1797 , - 5186 , - 3295 , - 1756 , - 569 , - 5366 , - 4883 , - 4752 , - 4973 , - 5546 , - 839 , - 2116 , - 3745 , - 94 , - 2427 , - 5112 , - 2517 , - 274 , - 4015 , - 2476 , - 1289 , - 454 , - 5603 , - 5472 , - 61 , - 634 , - 1559 , - 2836 , - 4465 , - 814 , - 3147 , - 200 , - 3237 , - 994 , - 4735 , - 3196 , - 2009 , - 1174 , - 691 , - 560 , - 781 , - 1354 , - 2279 , - 3556 , - 5185 , - 1534 , - 3867 , - 920 , - 3957 , - 1714 , - 5455 , - 3916 , - 2729 , - 1894 , - 1411 , - 1280 , - 1501 , - 2074 , - 2999 , - 4276 , - 273 , - 2254 , - 4587 , - 1640 , - 4677 , - 2434 , - 543 , - 4636 , - 3449 , - 2614 , - 2131 , - 2000 , - 2221 , - 2794 , - 3719 , - 4996 , - 993 , - 2974 , - 5307 , - 2360 , - 5397 , - 3154 , - 1263 , - 5356 , - 4169 , - 3334 , - 2851 , - 2720 , - 2941 , - 3514 , - 4439 , - 84 , - 1713 , - 3694 , - 395 , - 3080 , - 485 , - 3874 , - 1983 , - 444 , - 4889 , - 4054 , - 3571 , - 3440 , - 3661 , - 4234 , - 5159 , - 804 , - 2433 , - 4414 , - 1115 , - 3800 , - 1205 , - 4594 , - 2703 , - 1164 , - 5609 , - 4774 , - 4291 , - 4160 , - 4381 , - 4954 , - 247 , - 1524 , - 3153 , - 5134 , - 1835 , - 4520 , - 1925 , - 5314 , - 3423 , - 1884 , - 697 , - 5494 , - 5011 , - 4880 , - 5101 , - 42 , - 967 , - 2244 , - 3873 , - 222 , - 2555 , - 5240 , - 2645 , - 402 , - 4143 , - 2604 , - 1417 , - 582 , - 99 , - 5600 , - 189 , - 762 , - 1687 , - 2964 , - 4593 , - 942 , - 3275 , - 328 , - 3365 , - 1122 , - 4863 , - 3324 , - 2137 , - 1302 , - 819 , - 688 , - 909 , - 1482 , - 2407 , - 3684 , - 5313 , - 1662 , - 3995 , - 1048 , - 4085 , - 1842 , - 5583 , - 4044 , - 2857 , - 2022 , - 1539 , - 1408 , - 1629 , - 2202 , - 3127 , - 4404 , - 401 , - 2382 , - 4715 , - 1768 , - 4805 , - 2562 , - 671 , - 4764 , - 3577 , - 2742 , - 2259 , - 2128 , - 2349 , - 2922 , - 3847 , - 5124 , - 1121 , - 3102 , - 5435 , - 2488 , - 5525 , - 3282 , - 1391 , - 5484 , - 4297 , - 3462 , - 2979 , - 2848 , - 3069 , - 3642 , - 4567 , - 212 , - 1841 , - 3822 , - 523 , - 3208 , - 613 , - 4002 , - 2111 , - 572 , - 5017 , - 4182 , - 3699 , - 3568 , - 3789 , - 4362 , - 5287 , - 932 , - 2561 , - 4542 , - 1243 , - 3928 , - 1333 , - 4722 , - 2831 , - 1292 , - 105 , - 4902 , - 4419 , - 4288 , - 4509 , - 5082 , - 375 , - 1652 , - 3281 , - 5262 , - 1963 , - 4648 , - 2053 , - 5442 , - 3551 , - 2012 , - 825 , - 5622 , - 5139 , - 5008 , - 5229 , - 170 , - 1095 , - 2372 , - 4001 , - 350 , - 2683 , - 5368 , - 2773 , - 530 , - 4271 , - 2732 , - 1545 , - 710 , - 227 , - 96 , - 317 , - 890 , - 1815 , - 3092 , - 4721 , - 1070 , - 3403 , - 456 , - 3493 , - 1250 , - 4991 , - 3452 , - 2265 , - 1430 , - 947 , - 816 , - 1037 , - 1610 , - 2535 , - 3812 , - 5441 , - 1790 , - 4123 , - 1176 , - 4213 , - 1970 , - 79 , - 4172 , - 2985 , - 2150 , - 1667 , - 1536 , - 1757 , - 2330 , - 3255 , - 4532 , - 529 , - 2510 , - 4843 , - 1896 , - 4933 , - 2690 , - 799 , - 4892 , - 3705 , - 2870 , - 2387 , - 2256 , - 2477 , - 3050 , - 3975 , - 5252 , - 1249 , - 3230 , - 5563 , - 2616 , - 21 , - 3410 , - 1519 , - 5612 , - 4425 , - 3590 , - 3107 , - 2976 , - 3197 , - 3770 , - 4695 , - 340 , - 1969 , - 3950 , - 651 , - 3336 , - 741 , - 4130 , - 2239 , - 700 , - 5145 , - 4310 , - 3827 , - 3696 , - 3917 , - 4490 , - 5415 , - 1060 , - 2689 , - 4670 , - 1371 , - 4056 , - 1461 , - 4850 , - 2959 , - 1420 , - 233 , - 5030 , - 4547 , - 4416 , - 4637 , - 5210 , - 503 , - 1780 , - 3409 , - 5390 , - 2091 , - 4776 , - 2181 , - 5570 , - 3679 , - 2140 , - 953 , - 118 , - 5267 , - 5136 , - 5357 , - 298 , - 1223 , - 2500 , - 4129 , - 478 , - 2811 , - 5496 , - 2901 , - 658 , - 4399 , - 2860 , - 1673 , - 838 , - 355 , - 224 , - 445 , - 1018 , - 1943 , - 3220 , - 4849 , - 1198 , - 3531 , - 584 , - 3621 , - 1378 , - 5119 , - 3580 , - 2393 , - 1558 , - 1075 , - 944 , - 1165 , - 1738 , - 2663 , - 3940 , - 5569 , - 1918 , - 4251 , - 1304 , - 4341 , - 2098 , - 207 , - 4300 , - 3113 , - 2278 , - 1795 , - 1664 , - 1885 , - 2458 , - 3383 , - 4660 , - 657 , - 2638 , - 4971 , - 2024 , - 5061 , - 2818 , - 927 , - 5020 , - 3833 , - 2998 , - 2515 , - 2384 , - 2605 , - 3178 , - 4103 , - 5380 , - 1377 , - 3358 , - 59 , - 2744 , - 149 , - 3538 , - 1647 , - 108 , - 4553 , - 3718 , - 3235 , - 3104 , - 3325 , - 3898 , - 4823 , - 468 , - 2097 , - 4078 , - 779 , - 3464 , - 869 , - 4258 , - 2367 , - 828 , - 5273 , - 4438 , - 3955 , - 3824 , - 4045 , - 4618 , - 5543 , - 1188 , - 2817 , - 4798 , - 1499 , - 4184 , - 1589 , - 4978 , - 3087 , - 1548 , - 361 , - 5158 , - 4675 , - 4544 , - 4765 , - 5338 , - 631 , - 1908 , - 3537 , - 5518 , - 2219 , - 4904 , - 2309 , - 66 , - 3807 , - 2268 , - 1081 , - 246 , - 5395 , - 5264 , - 5485 , - 426 , - 1351 , - 2628 , - 4257 , - 606 , - 2939 , - 5624 , - 3029 , - 786 , - 4527 , - 2988 , - 1801 , - 966 , - 483 , - 352 , - 573 , - 1146 , - 2071 , - 3348 , - 4977 , - 1326 , - 3659 , - 712 , - 3749 , - 1506 , - 5247 , - 3708 , - 2521 , - 1686 , - 1203 , - 1072 , - 1293 , - 1866 , - 2791 , - 4068 , - 65 , - 2046 , - 4379 , - 1432 , - 4469 , - 2226 , - 335 , - 4428 , - 3241 , - 2406 , - 1923 , - 1792 , - 2013 , - 2586 , - 3511 , - 4788 , - 785 , - 2766 , - 5099 , - 2152 , - 5189 , - 2946 , - 1055 , - 5148 , - 3961 , - 3126 , - 2643 , - 2512 , - 2733 , - 3306 , - 4231 , - 5508 , - 1505 , - 3486 , - 187 , - 2872 , - 277 , - 3666 , - 1775 , - 236 , - 4681 , - 3846 , - 3363 , - 3232 , - 3453 , - 4026 , - 4951 , - 596 , - 2225 , - 4206 , - 907 , - 3592 , - 997 , - 4386 , - 2495 , - 956 , - 5401 , - 4566 , - 4083 , - 3952 , - 4173 , - 4746 , - 39 , - 1316 , - 2945 , - 4926 , - 1627 , - 4312 , - 1717 , - 5106 , - 3215 , - 1676 , - 489 , - 5286 , - 4803 , - 4672 , - 4893 , - 5466 , - 759 , - 2036 , - 3665 , - 14 , - 2347 , - 5032 , - 2437 , - 194 , - 3935 , - 2396 , - 1209 , - 374 , - 5523 , - 5392 , - 5613 , - 554 , - 1479 , - 2756 , - 4385 , - 734 , - 3067 , - 120 , - 3157 , - 914 , - 4655 , - 3116 , - 1929 , - 1094 , - 611 , - 480 , - 701 , - 1274 , - 2199 , - 3476 , - 5105 , - 1454 , - 3787 , - 840 , - 3877 , - 1634 , - 5375 , - 3836 , - 2649 , - 1814 , - 1331 , - 1200 , - 1421 , - 1994 , - 2919 , - 4196 , - 193 , - 2174 , - 4507 , - 1560 , - 4597 , - 2354 , - 463 , - 4556 , - 3369 , - 2534 , - 2051 , - 1920 , - 2141 , - 2714 , - 3639 , - 4916 , - 913 , - 2894 , - 5227 , - 2280 , - 5317 , - 3074 , - 1183 , - 5276 , - 4089 , - 3254 , - 2771 , - 2640 , - 2861 , - 3434 , - 4359 , - 4 , - 1633 , - 3614 , - 315 , - 3000 , - 405 , - 3794 , - 1903 , - 364 , - 4809 , - 3974 , - 3491 , - 3360 , - 3581 , - 4154 , - 5079 , - 724 , - 2353 , - 4334 , - 1035 , - 3720 , - 1125 , - 4514 , - 2623 , - 1084 , - 5529 , - 4694 , - 4211 , - 4080 , - 4301 , - 4874 , - 167 , - 1444 , - 3073 , - 5054 , - 1755 , - 4440 , - 1845 , - 5234 , - 3343 , - 1804 , - 617 , - 5414 , - 4931 , - 4800 , - 5021 , - 5594 , - 887 , - 2164 , - 3793 , - 142 , - 2475 , - 5160 , - 2565 , - 322 , - 4063 , - 2524 , - 1337 , - 502 , - 19 , - 5520 , - 109 , - 682 , - 1607 , - 2884 , - 4513 , - 862 , - 3195 , - 248 , - 3285 , - 1042 , - 4783 , - 3244 , - 2057 , - 1222 , - 739 , - 608 , - 829 , - 1402 , - 2327 , - 3604 , - 5233 , - 1582 , - 3915 , - 968 , - 4005 , - 1762 , - 5503 , - 3964 , - 2777 , - 1942 , - 1459 , - 1328 , - 1549 , - 2122 , - 3047 , - 4324 , - 321 , - 2302 , - 4635 , - 1688 , - 4725 , - 2482 , - 591 , - 4684 , - 3497 , - 2662 , - 2179 , - 2048 , - 2269 , - 2842 , - 3767 , - 5044 , - 1041 , - 3022 , - 5355 , - 2408 , - 5445 , - 3202 , - 1311 , - 5404 , - 4217 , - 3382 , - 2899 , - 2768 , - 2989 , - 3562 , - 4487 , - 132 , - 1761 , - 3742 , - 443 , - 3128 , - 533 , - 3922 , - 2031 , - 492 , - 4937 , - 4102 , - 3619 , - 3488 , - 3709 , - 4282 , - 5207 , - 852 , - 2481 , - 4462 , - 1163 , - 3848 , - 1253 , - 4642 , - 2751 , - 1212 , - 25 , - 4822 , - 4339 , - 4208 , - 4429 , - 5002 , - 295 , - 1572 , - 3201 , - 5182 , - 1883 , - 4568 , - 1973 , - 5362 , - 3471 , - 1932 , - 745 , - 5542 , - 5059 , - 4928 , - 5149 , - 90 , - 1015 , - 2292 , - 3921 , - 270 , - 2603 , - 5288 , - 2693 , - 450 , - 4191 , - 2652 , - 1465 , - 630 , - 147 , - 16 , - 237 , - 810 , - 1735 , - 3012 , - 4641 , - 990 , - 3323 , - 376 , - 3413 , - 1170 , - 4911 , - 3372 , - 2185 , - 1350 , - 867 , - 736 , - 957 , - 1530 , - 2455 , - 3732 , - 5361 , - 1710 , - 4043 , - 1096 , - 4133 , - 1890 , - 5631 , - 4092 , - 2905 , - 2070 , - 1587 , - 1456 , - 1677 , - 2250 , - 3175 , - 4452 , - 449 , - 2430 , - 4763 , - 1816 , - 4853 , - 2610 , - 719 , - 4812 , - 3625 , - 2790 , - 2307 , - 2176 , - 2397 , - 2970 , - 3895 , - 5172 , - 1169 , - 3150 , - 5483 , - 2536 , - 5573 , - 3330 , - 1439 , - 5532 , - 4345 , - 3510 , - 3027 , - 2896 , - 3117 , - 3690 , - 4615 , - 260 , - 1889 , - 3870 , - 571 , - 3256 , - 661 , - 4050 , - 2159 , - 620 , - 5065 , - 4230 , - 3747 , - 3616 , - 3837 , - 4410 , - 5335 , - 980 , - 2609 , - 4590 , - 1291 , - 3976 , - 1381 , - 4770 , - 2879 , - 1340 , - 153 , - 4950 , - 4467 , - 4336 , - 4557 , - 5130 , - 423 , - 1700 , - 3329 , - 5310 , - 2011 , - 4696 , - 2101 , - 5490 , - 3599 , - 2060 , - 873 , - 38 , - 5187 , - 5056 , - 5277 , - 218 , - 1143 , - 2420 , - 4049 , - 398 , - 2731 , - 5416 , - 2821 , - 578 , - 4319 , - 2780 , - 1593 , - 758 , - 275 , - 144 , - 365 , - 938 , - 1863 , - 3140 , - 4769 , - 1118 , - 3451 , - 504 , - 3541 , - 1298 , - 5039 , - 3500 , - 2313 , - 1478 , - 995 , - 864 , - 1085 , - 1658 , - 2583 , - 3860 , - 5489 , - 1838 , - 4171 , - 1224 , - 4261 , - 2018 , - 127 , - 4220 , - 3033 , - 2198 , - 1715 , - 1584 , - 1805 , - 2378 , - 3303 , - 4580 , - 577 , - 2558 , - 4891 , - 1944 , - 4981 , - 2738 , - 847 , - 4940 , - 3753 , - 2918 , - 2435 , - 2304 , - 2525 , - 3098 , - 4023 , - 5300 , - 1297 , - 3278 , - 5611 , - 2664 , - 69 , - 3458 , - 1567 , - 28 , - 4473 , - 3638 , - 3155 , - 3024 , - 3245 , - 3818 , - 4743 , - 388 , - 2017 , - 3998 , - 699 , - 3384 , - 789 , - 4178 , - 2287 , - 748 , - 5193 , - 4358 , - 3875 , - 3744 , - 3965 , - 4538 , - 5463 , - 1108 , - 2737 , - 4718 , - 1419 , - 4104 , - 1509 , - 4898 , - 3007 , - 1468 , - 281 , - 5078 , - 4595 , - 4464 , - 4685 , - 5258 , - 551 , - 1828 , - 3457 , - 5438 , - 2139 , - 4824 , - 2229 , - 5618 , - 3727 , - 2188 , - 1001 , - 166 , - 5315 , - 5184 , - 5405 , - 346 , - 1271 , - 2548 , - 4177 , - 526 , - 2859 , - 5544 , - 2949 , - 706 , - 4447 , - 2908 , - 1721 , - 886 , - 403 , - 272 , - 493 , - 1066 , - 1991 , - 3268 , - 4897 , - 1246 , - 3579 , - 632 , - 3669 , - 1426 , - 5167 , - 3628 , - 2441 , - 1606 , - 1123 , - 992 , - 1213 , - 1786 , - 2711 , - 3988 , - 5617 , - 1966 , - 4299 , - 1352 , - 4389 , - 2146 , - 255 , - 4348 , - 3161 , - 2326 , - 1843 , - 1712 , - 1933 , - 2506 , - 3431 , - 4708 , - 705 , - 2686 , - 5019 , - 2072 , - 5109 , - 2866 , - 975 , - 5068 , - 3881 , - 3046 , - 2563 , - 2432 , - 2653 , - 3226 , - 4151 , - 5428 , - 1425 , - 3406 , - 107 , - 2792 , - 197 , - 3586 , - 1695 , - 156 , - 4601 , - 3766 , - 3283 , - 3152 , - 3373 , - 3946 , - 4871 , - 516 , - 2145 , - 4126 , - 827 , - 3512 , - 917 , - 4306 , - 2415 , - 876 , - 5321 , - 4486 , - 4003 , - 3872 , - 4093 , - 4666 , - 5591 , - 1236 , - 2865 , - 4846 , - 1547 , - 4232 , - 1637 , - 5026 , - 3135 , - 1596 , - 409 , - 5206 , - 4723 , - 4592 , - 4813 , - 5386 , - 679 , - 1956 , - 3585 , - 5566 , - 2267 , - 4952 , - 2357 , - 114 , - 3855 , - 2316 , - 1129 , - 294 , - 5443 , - 5312 , - 5533 , - 474 , - 1399 , - 2676 , - 4305 , - 654 , - 2987 , - 40 , - 3077 , - 834 , - 4575 , - 3036 , - 1849 , - 1014 , - 531 , - 400 , - 621 , - 1194 , - 2119 , - 3396 , - 5025 , - 1374 , - 3707 , - 760 , - 3797 , - 1554 , - 5295 , - 3756 , - 2569 , - 1734 , - 1251 , - 1120 , - 1341 , - 1914 , - 2839 , - 4116 , - 113 , - 2094 , - 4427 , - 1480 , - 4517 , - 2274 , - 383 , - 4476 , - 3289 , - 2454 , - 1971 , - 1840 , - 2061 , - 2634 , - 3559 , - 4836 , - 833 , - 2814 , - 5147 , - 2200 , - 5237 , - 2994 , - 1103 , - 5196 , - 4009 , - 3174 , - 2691 , - 2560 , - 2781 , - 3354 , - 4279 , - 5556 , - 1553 , - 3534 , - 235 , - 2920 , - 325 , - 3714 , - 1823 , - 284 , - 4729 , - 3894 , - 3411 , - 3280 , - 3501 , - 4074 , - 4999 , - 644 , - 2273 , - 4254 , - 955 , - 3640 , - 1045 , - 4434 , - 2543 , - 1004 , - 5449 , - 4614 , - 4131 , - 4000 , - 4221 , - 4794 , - 87 , - 1364 , - 2993 , - 4974 , - 1675 , - 4360 , - 1765 , - 5154 , - 3263 , - 1724 , - 537 , - 5334 , - 4851 , - 4720 , - 4941 , - 5514 , - 807 , - 2084 , - 3713 , - 62 , - 2395 , - 5080 , - 2485 , - 242 , - 3983 , - 2444 , - 1257 , - 422 , - 5571 , - 5440 , - 29 , - 602 , - 1527 , - 2804 , - 4433 , - 782 , - 3115 , - 168 , - 3205 , - 962 , - 4703 , - 3164 , - 1977 , - 1142 , - 659 , - 528 , - 749 , - 1322 , - 2247 , - 3524 , - 5153 , - 1502 , - 3835 , - 888 , - 3925 , - 1682 , - 5423 , - 3884 , - 2697 , - 1862 , - 1379 , - 1248 , - 1469 , - 2042 , - 2967 , - 4244 , - 241 , - 2222 , - 4555 , - 1608 , - 4645 , - 2402 , - 511 , - 4604 , - 3417 , - 2582 , - 2099 , - 1968 , - 2189 , - 2762 , - 3687 , - 4964 , - 961 , - 2942 , - 5275 , - 2328 , - 5365 , - 3122 , - 1231 , - 5324 , - 4137 , - 3302 , - 2819 , - 2688 , - 2909 , - 3482 , - 4407 , - 52 , - 1681 , - 3662 , - 363 , - 3048 , - 453 , - 3842 , - 1951 , - 412 , - 4857 , - 4022 , - 3539 , - 3408 , - 3629 , - 4202 , - 5127 , - 772 , - 2401 , - 4382 , - 1083 , - 3768 , - 1173 , - 4562 , - 2671 , - 1132 , - 5577 , - 4742 , - 4259 , - 4128 , - 4349 , - 4922 , - 215 , - 1492 , - 3121 , - 5102 , - 1803 , - 4488 , - 1893 , - 5282 , - 3391 , - 1852 , - 665 , - 5462 , - 4979 , - 4848 , - 5069 , - 10 , - 935 , - 2212 , - 3841 , - 190 , - 2523 , - 5208 , - 2613 , - 370 , - 4111 , - 2572 , - 1385 , - 550 , - 67 , - 5568 , - 157 , - 730 , - 1655 , - 2932 , - 4561 , - 910 , - 3243 , - 296 , - 3333 , - 1090 , - 4831 , - 3292 , - 2105 , - 1270 , - 787 , - 656 , - 877 , - 1450 , - 2375 , - 3652 , - 5281 , - 1630 , - 3963 , - 1016 , - 4053 , - 1810 , - 5551 , - 4012 , - 2825 , - 1990 , - 1507 , - 1376 , - 1597 , - 2170 , - 3095 , - 4372 , - 369 , - 2350 , - 4683 , - 1736 , - 4773 , - 2530 , - 639 , - 4732 , - 3545 , - 2710 , - 2227 , - 2096 , - 2317 , - 2890 , - 3815 , - 5092 , - 1089 , - 3070 , - 5403 , - 2456 , - 5493 , - 3250 , - 1359 , - 5452 , - 4265 , - 3430 , - 2947 , - 2816 , - 3037 , - 3610 , - 4535 , - 180 , - 1809 , - 3790 , - 491 , - 3176 , - 581 , - 3970 , - 2079 , - 540 , - 4985 , - 4150 , - 3667 , - 3536 , - 3757 , - 4330 , - 5255 , - 900 , - 2529 , - 4510 , - 1211 , - 3896 , - 1301 , - 4690 , - 2799 , - 1260 , - 73 , - 4870 , - 4387 , - 4256 , - 4477 , - 5050 , - 343 , - 1620 , - 3249 , - 5230 , - 1931 , - 4616 , - 2021 , - 5410 , - 3519 , - 1980 , - 793 , - 5590 , - 5107 , - 4976 , - 5197 , - 138 , - 1063 , - 2340 , - 3969 , - 318 , - 2651 , - 5336 , - 2741 , - 498 , - 4239 , - 2700 , - 1513 , - 678 , - 195 , - 64 , - 285 , - 858 , - 1783 , - 3060 , - 4689 , - 1038 , - 3371 , - 424 , - 3461 , - 1218 , - 4959 , - 3420 , - 2233 , - 1398 , - 915 , - 784 , - 1005 , - 1578 , - 2503 , - 3780 , - 5409 , - 1758 , - 4091 , - 1144 , - 4181 , - 1938 , - 47 , - 4140 , - 2953 , - 2118 , - 1635 , - 1504 , - 1725 , - 2298 , - 3223 , - 4500 , - 497 , - 2478 , - 4811 , - 1864 , - 4901 , - 2658 , - 767 , - 4860 , - 3673 , - 2838 , - 2355 , - 2224 , - 2445 , - 3018 , - 3943 , - 5220 , - 1217 , - 3198 , - 5531 , - 2584 , - 5621 , - 3378 , - 1487 , - 5580 , - 4393 , - 3558 , - 3075 , - 2944 , - 3165 , - 3738 , - 4663 , - 308 , - 1937 , - 3918 , - 619 , - 3304 , - 709 , - 4098 , - 2207 , - 668 , - 5113 , - 4278 , - 3795 , - 3664 , - 3885 , - 4458 , - 5383 , - 1028 , - 2657 , - 4638 , - 1339 , - 4024 , - 1429 , - 4818 , - 2927 , - 1388 , - 201 , - 4998 , - 4515 , - 4384 , - 4605 , - 5178 , - 471 , - 1748 , - 3377 , - 5358 , - 2059 , - 4744 , - 2149 , - 5538 , - 3647 , - 2108 , - 921 , - 86 , - 5235 , - 5104 , - 5325 , - 266 , - 1191 , - 2468 , - 4097 , - 446 , - 2779 , - 5464 , - 2869 , - 626 , - 4367 , - 2828 , - 1641 , - 806 , - 323 , - 192 , - 413 , - 986 , - 1911 , - 3188 , - 4817 , - 1166 , - 3499 , - 552 , - 3589 , - 1346 , - 5087 , - 3548 , - 2361 , - 1526 , - 1043 , - 912 , - 1133 , - 1706 , - 2631 , - 3908 , - 5537 , - 1886 , - 4219 , - 1272 , - 4309 , - 2066 , - 175 , - 4268 , - 3081 , - 2246 , - 1763 , - 1632 , - 1853 , - 2426 , - 3351 , - 4628 , - 625 , - 2606 , - 4939 , - 1992 , - 5029 , - 2786 , - 895 , - 4988 , - 3801 , - 2966 , - 2483 , - 2352 , - 2573 , - 3146 , - 4071 , - 5348 , - 1345 , - 3326 , - 27 , - 2712 , - 117 , - 3506 , - 1615 , - 76 , - 4521 , - 3686 , - 3203 , - 3072 , - 3293 , - 3866 , - 4791 , - 436 , - 2065 , - 4046 , - 747 , - 3432 , - 837 , - 4226 , - 2335 , - 796 , - 5241 , - 4406 , - 3923 , - 3792 , - 4013 , - 4586 , - 5511 , - 1156 , - 2785 , - 4766 , - 1467 , - 4152 , - 1557 , - 4946 , - 3055 , - 1516 , - 329 , - 5126 , - 4643 , - 4512 , - 4733 , - 5306 , - 599 , - 1876 , - 3505 , - 5486 , - 2187 , - 4872 , - 2277 , - 34 , - 3775 , - 2236 , - 1049 , - 214 , - 5363 , - 5232 , - 5453 , - 394 , - 1319 , - 2596 , - 4225 , - 574 , - 2907 , - 5592 , - 2997 , - 754 , - 4495 , - 2956 , - 1769 , - 934 , - 451 , - 320 , - 541 , - 1114 , - 2039 , - 3316 , - 4945 , - 1294 , - 3627 , - 680 , - 3717 , - 1474 , - 5215 , - 3676 , - 2489 , - 1654 , - 1171 , - 1040 , - 1261 , - 1834 , - 2759 , - 4036 , - 33 , - 2014 , - 4347 , - 1400 , - 4437 , - 2194 , - 303 , - 4396 , - 3209 , - 2374 , - 1891 , - 1760 , - 1981 , - 2554 , - 3479 , - 4756 , - 753 , - 2734 , - 5067 , - 2120 , - 5157 , - 2914 , - 1023 , - 5116 , - 3929 , - 3094 , - 2611 , - 2480 , - 2701 , - 3274 , - 4199 , - 5476 , - 1473 , - 3454 , - 155 , - 2840 , - 245 , - 3634 , - 1743 , - 204 , - 4649 , - 3814 , - 3331 , - 3200 , - 3421 , - 3994 , - 4919 , - 564 , - 2193 , - 4174 , - 875 , - 3560 , - 965 , - 4354 , - 2463 , - 924 , - 5369 , - 4534 , - 4051 , - 3920 , - 4141 , - 4714 , - 7 , - 1284 , - 2913 , - 4894 , - 1595 , - 4280 , - 1685 , - 5074 , - 3183 , - 1644 , - 457 , - 5254 , - 4771 , - 4640 , - 4861 , - 5434 , - 727 , - 2004 , - 3633 , - 5614 , - 2315 , - 5000 , - 2405 , - 162 , - 3903 , - 2364 , - 1177 , - 342 , - 5491 , - 5360 , - 5581 , - 522 , - 1447 , - 2724 , - 4353 , - 702 , - 3035 , - 88 , - 3125 , - 882 , - 4623 , - 3084 , - 1897 , - 1062 , - 579 , - 448 , - 669 , - 1242 , - 2167 , - 3444 , - 5073 , - 1422 , - 3755 , - 808 , - 3845 , - 1602 , - 5343 , - 3804 , - 2617 , - 1782 , - 1299 , - 1168 , - 1389 , - 1962 , - 2887 , - 4164 , - 161 , - 2142 , - 4475 , - 1528 , - 4565 , - 2322 , - 431 , - 4524 , - 3337 , - 2502 , - 2019 , - 1888 , - 2109 , - 2682 , - 3607 , - 4884 , - 881 , - 2862 , - 5195 , - 2248 , - 5285 , - 3042 , - 1151 , - 5244 , - 4057 , - 3222 , - 2739 , - 2608 , - 2829 , - 3402 , - 4327 , - 5604 , - 1601 , - 3582 , - 283 , - 2968 , - 373 , - 3762 , - 1871 , - 332 , - 4777 , - 3942 , - 3459 , - 3328 , - 3549 , - 4122 , - 5047 , - 692 , - 2321 , - 4302 , - 1003 , - 3688 , - 1093 , - 4482 , - 2591 , - 1052 , - 5497 , - 4662 , - 4179 , - 4048 , - 4269 , - 4842 , - 135 , - 1412 , - 3041 , - 5022 , - 1723 , - 4408 , - 1813 , - 5202 , - 3311 , - 1772 , - 585 , - 5382 , - 4899 , - 4768 , - 4989 , - 5562 , - 855 , - 2132 , - 3761 , - 110 , - 2443 , - 5128 , - 2533 , - 290 , - 4031 , - 2492 , - 1305 , - 470 , - 5619 , - 5488 , - 77 , - 650 , - 1575 , - 2852 , - 4481 , - 830 , - 3163 , - 216 , - 3253 , - 1010 , - 4751 , - 3212 , - 2025 , - 1190 , - 707 , - 576 , - 797 , - 1370 , - 2295 , - 3572 , - 5201 , - 1550 , - 3883 , - 936 , - 3973 , - 1730 , - 5471 , - 3932 , - 2745 , - 1910 , - 1427 , - 1296 , - 1517 , - 2090 , - 3015 , - 4292 , - 289 , - 2270 , - 4603 , - 1656 , - 4693 , - 2450 , - 559 , - 4652 , - 3465 , - 2630 , - 2147 , - 2016 , - 2237 , - 2810 , - 3735 , - 5012 , - 1009 , - 2990 , - 5323 , - 2376 , - 5413 , - 3170 , - 1279 , - 5372 , - 4185 , - 3350 , - 2867 , - 2736 , - 2957 , - 3530 , - 4455 , - 100 , - 1729 , - 3710 , - 411 , - 3096 , - 501 , - 3890 , - 1999 , - 460 , - 4905 , - 4070 , - 3587 , - 3456 , - 3677 , - 4250 , - 5175 , - 820 , - 2449 , - 4430 , - 1131 , - 3816 , - 1221 , - 4610 , - 2719 , - 1180 , - 5625 , - 4790 , - 4307 , - 4176 , - 4397 , - 4970 , - 263 , - 1540 , - 3169 , - 5150 , - 1851 , - 4536 , - 1941 , - 5330 , - 3439 , - 1900 , - 713 , - 5510 , - 5027 , - 4896 , - 5117 , - 58 , - 983 , - 2260 , - 3889 , - 238 , - 2571 , - 5256 , - 2661 , - 418 , - 4159 , - 2620 , - 1433 , - 598 , - 115 , - 5616 , - 205 , - 778 , - 1703 , - 2980 , - 4609 , - 958 , - 3291 , - 344 , - 3381 , - 1138 , - 4879 , - 3340 , - 2153 , - 1318 , - 835 , - 704 , - 925 , - 1498 , - 2423 , - 3700 , - 5329 , - 1678 , - 4011 , - 1064 , - 4101 , - 1858 , - 5599 , - 4060 , - 2873 , - 2038 , - 1555 , - 1424 , - 1645 , - 2218 , - 3143 , - 4420 , - 417 , - 2398 , - 4731 , - 1784 , - 4821 , - 2578 , - 687 , - 4780 , - 3593 , - 2758 , - 2275 , - 2144 , - 2365 , - 2938 , - 3863 , - 5140 , - 1137 , - 3118 , - 5451 , - 2504 , - 5541 , - 3298 , - 1407 , - 5500 , - 4313 , - 3478 , - 2995 , - 2864 , - 3085 , - 3658 , - 4583 , - 228 , - 1857 , - 3838 , - 539 , - 3224 , - 629 , - 4018 , - 2127 , - 588 , - 5033 , - 4198 , - 3715 , - 3584 , - 3805 , - 4378 , - 5303 , - 948 , - 2577 , - 4558 , - 1259 , - 3944 , - 1349 , - 4738 , - 2847 , - 1308 , - 121 , - 4918 , - 4435 , - 4304 , - 4525 , - 5098 , - 391 , - 1668 , - 3297 , - 5278 , - 1979 , - 4664 , - 2069 , - 5458 , - 3567 , - 2028 , - 841 , - 6 , - 5155 , - 5024 , - 5245 , - 186 , - 1111 , - 2388 , - 4017 , - 366 , - 2699 , - 5384 , - 2789 , - 546 , - 4287 , - 2748 , - 1561 , - 726 , - 243 , - 112 , - 333 , - 906 , - 1831 , - 3108 , - 4737 , - 1086 , - 3419 , - 472 , - 3509 , - 1266 , - 5007 , - 3468 , - 2281 , - 1446 , - 963 , - 832 , - 1053 , - 1626 , - 2551 , - 3828 , - 5457 , - 1806 , - 4139 , - 1192 , - 4229 , - 1986 , - 95 , - 4188 , - 3001 , - 2166 , - 1683 , - 1552 , - 1773 , - 2346 , - 3271 , - 4548 , - 545 , - 2526 , - 4859 , - 1912 , - 4949 , - 2706 , - 815 , - 4908 , - 3721 , - 2886 , - 2403 , - 2272 , - 2493 , - 3066 , - 3991 , - 5268 , - 1265 , - 3246 , - 5579 , - 2632 , - 37 , - 3426 , - 1535 , - 5628 , - 4441 , - 3606 , - 3123 , - 2992 , - 3213 , - 3786 , - 4711 , - 356 , - 1985 , - 3966 , - 667 , - 3352 , - 757 , - 4146 , - 2255 , - 716 , - 5161 , - 4326 , - 3843 , - 3712 , - 3933 , - 4506 , - 5431 , - 1076 , - 2705 , - 4686 , - 1387 , - 4072 , - 1477 , - 4866 , - 2975 , - 1436 , - 249 , - 5046 , - 4563 , - 4432 , - 4653 , - 5226 , - 519 , - 1796 , - 3425 , - 5406 , - 2107 , - 4792 , - 2197 , - 5586 , - 3695 , - 2156 , - 969 , - 134 , - 5283 , - 5152 , - 5373 , - 314 , - 1239 , - 2516 , - 4145 , - 494 , - 2827 , - 5512 , - 2917 , - 674 , - 4415 , - 2876 , - 1689 , - 854 , - 371 , - 240 , - 461 , - 1034 , - 1959 , - 3236 , - 4865 , - 1214 , - 3547 , - 600 , - 3637 , - 1394 , - 5135 , - 3596 , - 2409 , - 1574 , - 1091 , - 960 , - 1181 , - 1754 , - 2679 , - 3956 , - 5585 , - 1934 , - 4267 , - 1320 , - 4357 , - 2114 , - 223 , - 4316 , - 3129 , - 2294 , - 1811 , - 1680 , - 1901 , - 2474 , - 3399 , - 4676 , - 673 , - 2654 , - 4987 , - 2040 , - 5077 , - 2834 , - 943 , - 5036 , - 3849 , - 3014 , - 2531 , - 2400 , - 2621 , - 3194 , - 4119 , - 5396 , - 1393 , - 3374 , - 75 , - 2760 , - 165 , - 3554 , - 1663 , - 124 , - 4569 , - 3734 , - 3251 , - 3120 , - 3341 , - 3914 , - 4839 , - 484 , - 2113 , - 4094 , - 795 , - 3480 , - 885 , - 4274 , - 2383 , - 844 , - 5289 , - 4454 , - 3971 , - 3840 , - 4061 , - 4634 , - 5559 , - 1204 , - 2833 , - 4814 , - 1515 , - 4200 , - 1605 , - 4994 , - 3103 , - 1564 , - 377 , - 5174 , - 4691 , - 4560 , - 4781 , - 5354 , - 647 , - 1924 , - 3553 , - 5534 , - 2235 , - 4920 , - 2325 , - 82 , - 3823 , - 2284 , - 1097 , - 262 , - 5411 , - 5280 , - 5501 , - 442 , - 1367 , - 2644 , - 4273 , - 622 , - 2955 , - 8 , - 3045 , - 802 , - 4543 , - 3004 , - 1817 , - 982 , - 499 , - 368 , - 589 , - 1162 , - 2087 , - 3364 , - 4993 , - 1342 , - 3675 , - 728 , - 3765 , - 1522 , - 5263 , - 3724 , - 2537 , - 1702 , - 1219 , - 1088 , - 1309 , - 1882 , - 2807 , - 4084 , - 81 , - 2062 , - 4395 , - 1448 , - 4485 , - 2242 , - 351 , - 4444 , - 3257 , - 2422 , - 1939 , - 1808 , - 2029 , - 2602 , - 3527 , - 4804 , - 801 , - 2782 , - 5115 , - 2168 , - 5205 , - 2962 , - 1071 , - 5164 , - 3977 , - 3142 , - 2659 , - 2528 , - 2749 , - 3322 , - 4247 , - 5524 , - 1521 , - 3502 , - 203 , - 2888 , - 293 , - 3682 , - 1791 , - 252 , - 4697 , - 3862 , - 3379 , - 3248 , - 3469 , - 4042 , - 4967 , - 612 , - 2241 , - 4222 , - 923 , - 3608 , - 1013 , - 4402 , - 2511 , - 972 , - 5417 , - 4582 , - 4099 , - 3968 , - 4189 , - 4762 , - 55 , - 1332 , - 2961 , - 4942 , - 1643 , - 4328 , - 1733 , - 5122 , - 3231 , - 1692 , - 505 , - 5302 , - 4819 , - 4688 , - 4909 , - 5482 , - 775 , - 2052 , - 3681 , - 30 , - 2363 , - 5048 , - 2453 , - 210 , - 3951 , - 2412 , - 1225 , - 390 , - 5539 , - 5408 , - 5629 , - 570 , - 1495 , - 2772 , - 4401 , - 750 , - 3083 , - 136 , - 3173 , - 930 , - 4671 , - 3132 , - 1945 , - 1110 , - 627 , - 496 , - 717 , - 1290 , - 2215 , - 3492 , - 5121 , - 1470 , - 3803 , - 856 , - 3893 , - 1650 , - 5391 , - 3852 , - 2665 , - 1830 , - 1347 , - 1216 , - 1437 , - 2010 , - 2935 , - 4212 , - 209 , - 2190 , - 4523 , - 1576 , - 4613 , - 2370 , - 479 , - 4572 , - 3385 , - 2550 , - 2067 , - 1936 , - 2157 , - 2730 , - 3655 , - 4932 , - 929 , - 2910 , - 5243 , - 2296 , - 5333 , - 3090 , - 1199 , - 5292 , - 4105 , - 3270 , - 2787 , - 2656 , - 2877 , - 3450 , - 4375 , - 20 , - 1649 , - 3630 , - 331 , - 3016 , - 421 , - 3810 , - 1919 , - 380 , - 4825 , - 3990 , - 3507 , - 3376 , - 3597 , - 4170 , - 5095 , - 740 , - 2369 , - 4350 , - 1051 , - 3736 , - 1141 , - 4530 , - 2639 , - 1100 , - 5545 , - 4710 , - 4227 , - 4096 , - 4317 , - 4890 , - 183 , - 1460 , - 3089 , - 5070 , - 1771 , - 4456 , - 1861 , - 5250 , - 3359 , - 1820 , - 633 , - 5430 , - 4947 , - 4816 , - 5037 , - 5610 , - 903 , - 2180 , - 3809 , - 158 , - 2491 , - 5176 , - 2581 , - 338 , - 4079 , - 2540 , - 1353 , - 518 , - 35 , - 5536 , - 125 , - 698 , - 1623 , - 2900 , - 4529 , - 878 , - 3211 , - 264 , - 3301 , - 1058 , - 4799 , - 3260 , - 2073 , - 1238 , - 755 , - 624 , - 845 , - 1418 , - 2343 , - 3620 , - 5249 , - 1598 , - 3931 , - 984 , - 4021 , - 1778 , - 5519 , - 3980 , - 2793 , - 1958 , - 1475 , - 1344 , - 1565 , - 2138 , - 3063 , - 4340 , - 337 , - 2318 , - 4651 , - 1704 , - 4741 , - 2498 , - 607 , - 4700 , - 3513 , - 2678 , - 2195 , - 2064 , - 2285 , - 2858 , - 3783 , - 5060 , - 1057 , - 3038 , - 5371 , - 2424 , - 5461 , - 3218 , - 1327 , - 5420 , - 4233 , - 3398 , - 2915 , - 2784 , - 3005 , - 3578 , - 4503 , - 148 , - 1777 , - 3758 , - 459 , - 3144 , - 549 , - 3938 , - 2047 , - 508 , - 4953 , - 4118 , - 3635 , - 3504 , - 3725 , - 4298 , - 5223 , - 868 , - 2497 , - 4478 , - 1179 , - 3864 , - 1269 , - 4658 , - 2767 , - 1228 , - 41 , - 4838 , - 4355 , - 4224 , - 4445 , - 5018 , - 311 , - 1588 , - 3217 , - 5198 , - 1899 , - 4584 , - 1989 , - 5378 , - 3487 , - 1948 , - 761 , - 5558 , - 5075 , - 4944 , - 5165 , - 106 , - 1031 , - 2308 , - 3937 , - 286 , - 2619 , - 5304 , - 2709 , - 466 , - 4207 , - 2668 , - 1481 , - 646 , - 163 , - 32 , - 253 , - 826 , - 1751 , - 3028 , - 4657 , - 1006 , - 3339 , - 392 , - 3429 , - 1186 , - 4927 , - 3388 , - 2201 , - 1366 , - 883 , - 752 , - 973 , - 1546 , - 2471 , - 3748 , - 5377 , - 1726 , - 4059 , - 1112 , - 4149 , - 1906 , - 15 , - 4108 , - 2921 , - 2086 , - 1603 , - 1472 , - 1693 , - 2266 , - 3191 , - 4468 , - 465 , - 2446 , - 4779 , - 1832 , - 4869 , - 2626 , - 735 , - 4828 , - 3641 , - 2806 , - 2323 , - 2192 , - 2413 , - 2986 , - 3911 , - 5188 , - 1185 , - 3166 , - 5499 , - 2552 , - 5589 , - 3346 , - 1455 , - 5548 , - 4361 , - 3526 , - 3043 , - 2912 , - 3133 , - 3706 , - 4631 , - 276 , - 1905 , - 3886 , - 587 , - 3272 , - 677 , - 4066 , - 2175 , - 636 , - 5081 , - 4246 , - 3763 , - 3632 , - 3853 , - 4426 , - 5351 , - 996 , - 2625 , - 4606 , - 1307 , - 3992 , - 1397 , - 4786 , - 2895 , - 1356 , - 169 , - 4966 , - 4483 , - 4352 , - 4573 , - 5146 , - 439 , - 1716 , - 3345 , - 5326 , - 2027 , - 4712 , - 2117 , - 5506 , - 3615 , - 2076 , - 889 , - 54 , - 5203 , - 5072 , - 5293 , - 234 , - 1159 , - 2436 , - 4065 , - 414 , - 2747 , - 5432 , - 2837 , - 594 , - 4335 , - 2796 , - 1609 , - 774 , - 291 , - 160 , - 381 , - 954 , - 1879 , - 3156 , - 4785 , - 1134 , - 3467 , - 520 , - 3557 , - 1314 , - 5055 , - 3516 , - 2329 , - 1494 , - 1011 , - 880 , - 1101 , - 1674 , - 2599 , - 3876 , - 5505 , - 1854 , - 4187 , - 1240 , - 4277 , - 2034 , - 143 , - 4236 , - 3049 , - 2214 , - 1731 , - 1600 , - 1821 , - 2394 , - 3319 , - 4596 , - 593 , - 2574 , - 4907 , - 1960 , - 4997 , - 2754 , - 863 , - 4956 , - 3769 , - 2934 , - 2451 , - 2320 , - 2541 , - 3114 , - 4039 , - 5316 , - 1313 , - 3294 , - 5627 , - 2680 , - 85 , - 3474 , - 1583 , - 44 , - 4489 , - 3654 , - 3171 , - 3040 , - 3261 , - 3834 , - 4759 , - 404 , - 2033 , - 4014 , - 715 , - 3400 , - 805 , - 4194 , - 2303 , - 764 , - 5209 , - 4374 , - 3891 , - 3760 , - 3981 , - 4554 , - 5479 , - 1124 , - 2753 , - 4734 , - 1435 , - 4120 , - 1525 , - 4914 , - 3023 , - 1484 , - 297 , - 5094 , - 4611 , - 4480 , - 4701 , - 5274 , - 567 , - 1844 , - 3473 , - 5454 , - 2155 , - 4840 , - 2245 , - 2 , - 3743 , - 2204 , - 1017 , - 182 , - 5331 , - 5200 , - 5421 , - 362 , - 1287 , - 2564 , - 4193 , - 542 , - 2875 , - 5560 , - 2965 , - 722 , - 4463 , - 2924 , - 1737 , - 902 , - 419 , - 288 , - 509 , - 1082 , - 2007 , - 3284 , - 4913 , - 1262 , - 3595 , - 648 , - 3685 , - 1442 , - 5183 , - 3644 , - 2457 , - 1622 , - 1139 , - 1008 , - 1229 , - 1802 , - 2727 , - 4004 , - 1 , - 1982 , - 4315 , - 1368 , - 4405 , - 2162 , - 271 , - 4364 , - 3177 , - 2342 , - 1859 , - 1728 , - 1949 , - 2522 , - 3447 , - 4724 , - 721 , - 2702 , - 5035 , - 2088 , - 5125 , - 2882 , - 991 , - 5084 , - 3897 , - 3062 , - 2579 , - 2448 , - 2669 , - 3242 , - 4167 , - 5444 , - 1441 , - 3422 , - 123 , - 2808 , - 213 , - 3602 , - 1711 , - 172 , - 4617 , - 3782 , - 3299 , - 3168 , - 3389 , - 3962 , - 4887 , - 532 , - 2161 , - 4142 , - 843 , - 3528 , - 933 , - 4322 , - 2431 , - 892 , - 5337 , - 4502 , - 4019 , - 3888 , - 4109 , - 4682 , - 5607 , - 1252 , - 2881 , - 4862 , - 1563 , - 4248 , - 1653 , - 5042 , - 3151 , - 1612 , - 425 , - 5222 , - 4739 , - 4608 , - 4829 , - 5402 , - 695 , - 1972 , - 3601 , - 5582 , - 2283 , - 4968 , - 2373 , - 130 , - 3871 , - 2332 , - 1145 , - 310 , - 5459 , - 5328 , - 5549 , - 490 , - 1415 , - 2692 , - 4321 , - 670 , - 3003 , - 56 , - 3093 , - 850 , - 4591 , - 3052 , - 1865 , - 1030 , - 547 , - 416 , - 637 , - 1210 , - 2135 , - 3412 , - 5041 , - 1390 , - 3723 , - 776 , - 3813 , - 1570 , - 5311 , - 3772 , - 2585 , - 1750 , - 1267 , - 1136 , - 1357 , - 1930 , - 2855 , - 4132 , - 129 , - 2110 , - 4443 , - 1496 , - 4533 , - 2290 , - 399 , - 4492 , - 3305 , - 2470 , - 1987 , - 1856 , - 2077 , - 2650 , - 3575 , - 4852 , - 849 , - 2830 , - 5163 , - 2216 , - 5253 , - 3010 , - 1119 , - 5212 , - 4025 , - 3190 , - 2707 , - 2576 , - 2797 , - 3370 , - 4295 , - 5572 , - 1569 , - 3550 , - 251 , - 2936 , - 341 , - 3730 , - 1839 , - 300 , - 4745 , - 3910 , - 3427 , - 3296 , - 3517 , - 4090 , - 5015 , - 660 , - 2289 , - 4270 , - 971 , - 3656 , - 1061 , - 4450 , - 2559 , - 1020 , - 5465 , - 4630 , - 4147 , - 4016 , - 4237 , - 4810 , - 103 , - 1380 , - 3009 , - 4990 , - 1691 , - 4376 , - 1781 , - 5170 , - 3279 , - 1740 , - 553 , - 5350 , - 4867 , - 4736 , - 4957 , - 5530 , - 823 , - 2100 , - 3729 , - 78 , - 2411 , - 5096 , - 2501 , - 258 , - 3999 , - 2460 , - 1273 , - 438 , - 5587 , - 5456 , - 45 , - 618 , - 1543 , - 2820 , - 4449 , - 798 , - 3131 , - 184 , - 3221 , - 978 , - 4719 , - 3180 , - 1993 , - 1158 , - 675 , - 544 , - 765 , - 1338 , - 2263 , - 3540 , - 5169 , - 1518 , - 3851 , - 904 , - 3941 , - 1698 , - 5439 , - 3900 , - 2713 , - 1878 , - 1395 , - 1264 , - 1485 , - 2058 , - 2983 , - 4260 , - 257 , - 2238 , - 4571 , - 1624 , - 4661 , - 2418 , - 527 , - 4620 , - 3433 , - 2598 , - 2115 , - 1984 , - 2205 , - 2778 , - 3703 , - 4980 , - 977 , - 2958 , - 5291 , - 2344 , - 5381 , - 3138 , - 1247 , - 5340 , - 4153 , - 3318 , - 2835 , - 2704 , - 2925 , - 3498 , - 4423 , - 68 , - 1697 , - 3678 , - 379 , - 3064 , - 469 , - 3858 , - 1967 , - 428 , - 4873 , - 4038 , - 3555 , - 3424 , - 3645 , - 4218 , - 5143 , - 788 , - 2417 , - 4398 , - 1099 , - 3784 , - 1189 , - 4578 , - 2687 , - 1148 , - 5593 , - 4758 , - 4275 , - 4144 , - 4365 , - 4938 , - 231 , - 1508 , - 3137 , - 5118 , - 1819 , - 4504 , - 1909 , - 5298 , - 3407 , - 1868 , - 681 , - 5478 , - 4995 , - 4864 , - 5085 , - 26 , - 951 , - 2228 , - 3857 , - 206 , - 2539 , - 5224 , - 2629 , - 386 , - 4127 , - 2588 , - 1401 , - 566 , - 83 , - 5584 , - 173 , - 746 , - 1671 , - 2948 , - 4577 , - 926 , - 3259 , - 312 , - 3349 , - 1106 , - 4847 , - 3308 , - 2121 , - 1286 , - 803 , - 672 , - 893 , - 1466 , - 2391 , - 3668 , - 5297 , - 1646 , - 3979 , - 1032 , - 4069 , - 1826 , - 5567 , - 4028 , - 2841 , - 2006 , - 1523 , - 1392 , - 1613 , - 2186 , - 3111 , - 4388 , - 385 , - 2366 , - 4699 , - 1752 , - 4789 , - 2546 , - 655 , - 4748 , - 3561 , - 2726 , - 2243 , - 2112 , - 2333 , - 2906 , - 3831 , - 5108 , - 1105 , - 3086 , - 5419 , - 2472 , - 5509 , - 3266 , - 1375 , - 5468 , - 4281 , - 3446 , - 2963 , - 2832 , - 3053 , - 3626 , - 4551 , - 196 , - 1825 , - 3806 , - 507 , - 3192 , - 597 , - 3986 , - 2095 , - 556 , - 5001 , - 4166 , - 3683 , - 3552 , - 3773 , - 4346 , - 5271 , - 916 , - 2545 , - 4526 , - 1227 , - 3912 , - 1317 , - 4706 , - 2815 , - 1276 , - 89 , - 4886 , - 4403 , - 4272 , - 4493 , - 5066 , - 359 , - 1636 , - 3265 , - 5246 , - 1947 , - 4632 , - 2037 , - 5426 , - 3535 , - 1996 , - 809 , - 5606 , - 5123 , - 4992 , - 5213 , - 154 , - 1079 , - 2356 , - 3985 , - 334 , - 2667 , - 5352 , - 2757 , - 514 , - 4255 , - 2716 , - 1529 , - 694 , - 211 , - 80 , - 301 , - 874 , - 1799 , - 3076 , - 4705 , - 1054 , - 3387 , - 440 , - 3477 , - 1234 , - 4975 , - 3436 , - 2249 , - 1414 , - 931 , - 800 , - 1021 , - 1594 , - 2519 , - 3796 , - 5425 , - 1774 , - 4107 , - 1160 , - 4197 , - 1954 , - 63 , - 4156 , - 2969 , - 2134 , - 1651 , - 1520 , - 1741 , - 2314 , - 3239 , - 4516 , - 513 , - 2494 , - 4827 , - 1880 , - 4917 , - 2674 , - 783 , - 4876 , - 3689 , - 2854 , - 2371 , - 2240 , - 2461 , - 3034 , - 3959 , - 5236 , - 1233 , - 3214 , - 5547 , - 2600 , - 5 , - 3394 , - 1503 , - 5596 , - 4409 , - 3574 , - 3091 , - 2960 , - 3181 , - 3754 , - 4679 , - 324 , - 1953 , - 3934 , - 635 , - 3320 , - 725 , - 4114 , - 2223 , - 684 , - 5129 , - 4294 , - 3811 , - 3680 , - 3901 , - 4474 , - 5399 , - 1044 , - 2673 , - 4654 , - 1355 , - 4040 , - 1445 , - 4834 , - 2943 , - 1404 , - 217 , - 5014 , - 4531 , - 4400 , - 4621 , - 5194 , - 487 , - 1764 , - 3393 , - 5374 , - 2075 , - 4760 , - 2165 , - 5554 , - 3663 , - 2124 , - 937 , - 102 , - 5251 , - 5120 , - 5341 , - 282 , - 1207 , - 2484 , - 4113 , - 462 , - 2795 , - 5480 , - 2885 , - 642 , - 4383 , - 2844 , - 1657 , - 822 , - 339 , - 208 , - 429 , - 1002 , - 1927 , - 3204 , - 4833 , - 1182 , - 3515 , - 568 , - 3605 , - 1362 , - 5103 , - 3564 , - 2377 , - 1542 , - 1059 , - 928 , - 1149 , - 1722 , - 2647 , - 3924 , - 5553 , - 1902 , - 4235 , - 1288 , - 4325 , - 2082 , - 191 , - 4284 , - 3097 , - 2262 , - 1779 , - 1648 , - 1869 , - 2442 , - 3367 , - 4644 , - 641 , - 2622 , - 4955 , - 2008 , - 5045 , - 2802 , - 911 , - 5004 , - 3817 , - 2982 , - 2499 , - 2368 , - 2589 , - 3162 , - 4087 , - 5364 , - 1361 , - 3342 , - 43 , - 2728 , - 133 , - 3522 , - 1631 , - 92 , - 4537 , - 3702 , - 3219 , - 3088 , - 3309 , - 3882 , - 4807 , - 452 , - 2081 , - 4062 , - 763 , - 3448 , - 853 , - 4242 , - 2351 , - 812 , - 5257 , - 4422 , - 3939 , - 3808 , - 4029 , - 4602 , - 5527 , - 1172 , - 2801 , - 4782 , - 1483 , - 4168 , - 1573 , - 4962 , - 3071 , - 1532 , - 345 , - 5142 , - 4659 , - 4528 , - 4749 , - 5322 , - 615 , - 1892 , - 3521 , - 5502 , - 2203 , - 4888 , - 2293 , - 50 , - 3791 , - 2252 , - 1065 , - 230 , - 5379 , - 5248 , - 5469 , - 410 , - 1335 , - 2612 , - 4241 , - 590 , - 2923 , - 5608 , - 3013 , - 770 , - 4511 , - 2972 , - 1785 , - 950 , - 467 , - 336 , - 557 , - 1130 , - 2055 , - 3332 , - 4961 , - 1310 , - 3643 , - 696 , - 3733 , - 1490 , - 5231 , - 3692 , - 2505 , - 1670 , - 1187 , - 1056 , - 1277 , - 1850 , - 2775 , - 4052 , - 49 , - 2030 , - 4363 , - 1416 , - 4453 , - 2210 , - 319 , - 4412 , - 3225 , - 2390 , - 1907 , - 1776 , - 1997 , - 2570 , - 3495 , - 4772 , - 769 , - 2750 , - 5083 , - 2136 , - 5173 , - 2930 , - 1039 , - 5132 , - 3945 , - 3110 , - 2627 , - 2496 , - 2717 , - 3290 , - 4215 , - 5492 , - 1489 , - 3470 , - 171 , - 2856 , - 261 , - 3650 , - 1759 , - 220 , - 4665 , - 3830 , - 3347 , - 3216 , - 3437 , - 4010 , - 4935 , - 580 , - 2209 , - 4190 , - 891 , - 3576 , - 981 , - 4370 , - 2479 , - 940 , - 5385 , - 4550 , - 4067 , - 3936 , - 4157 , - 4730 , - 23 , - 1300 , - 2929 , - 4910 , - 1611 , - 4296 , - 1701 , - 5090 , - 3199 , - 1660 , - 473 , - 5270 , - 4787 , - 4656 , - 4877 , - 5450 , - 743 , - 2020 , - 3649 , - 5630 , - 2331 , - 5016 , - 2421 , - 178 , - 3919 , - 2380 , - 1193 , - 358 , - 5507 , - 5376 , - 5597 , - 538 , - 1463 , - 2740 , - 4369 , - 718 , - 3051 , - 104 , - 3141 , - 898 , - 4639 , - 3100 , - 1913 , - 1078 , - 595 , - 464 , - 685 , - 1258 , - 2183 , - 3460 , - 5089 , - 1438 , - 3771 , - 824 , - 3861 , - 1618 , - 5359 , - 3820 , - 2633 , - 1798 , - 1315 , - 1184 , - 1405 , - 1978 , - 2903 , - 4180 , - 177 , - 2158 , - 4491 , - 1544 , - 4581 , - 2338 , - 447 , - 4540 , - 3353 , - 2518 , - 2035 , - 1904 , - 2125 , - 2698 , - 3623 , - 4900 , - 897 , - 2878 , - 5211 , - 2264 , - 5301 , - 3058 , - 1167 , - 5260 , - 4073 , - 3238 , - 2755 , - 2624 , - 2845 , - 3418 , - 4343 , - 5620 , - 1617 , - 3598 , - 299 , - 2984 , - 389 , - 3778 , - 1887 , - 348 , - 4793 , - 3958 , - 3475 , - 3344 , - 3565 , - 4138 , - 5063 , - 708 , - 2337 , - 4318 , - 1019 , - 3704 , - 1109 , - 4498 , - 2607 , - 1068 , - 5513 , - 4678 , - 4195 , - 4064 , - 4285 , - 4858 , - 151 , - 1428 , - 3057 , - 5038 , - 1739 , - 4424 , - 1829 , - 5218 , - 3327 , - 1788 , - 601 , - 5398 , - 4915 , - 4784 , - 5005 , - 5578 , - 871 , - 2148 , - 3777 , - 126 , - 2459 , - 5144 , - 2549 , - 306 , - 4047 , - 2508 , - 1321 , - 486 , - 3 , - 5504 , - 93 , - 666 , - 1591 , - 2868 , - 4497 , - 846 , - 3179 , - 232 , - 3269 , - 1026 , - 4767 , - 3228 , - 2041 , - 1206 , - 723 , - 592 , - 813 , - 1386 , - 2311 , - 3588 , - 5217 , - 1566 , - 3899 , - 952 , - 3989 , - 1746 , - 5487 , - 3948 , - 2761 , - 1926 , - 1443 , - 1312 , - 1533 , - 2106 , - 3031 , - 4308 , - 305 , - 2286 , - 4619 , - 1672 , - 4709 , - 2466 , - 575 , - 4668 , - 3481 , - 2646 , - 2163 , - 2032 , - 2253 , - 2826 , - 3751 , - 5028 , - 1025 , - 3006 , - 5339 , - 2392 , - 5429 , - 3186 , - 1295 , - 5388 , - 4201 , - 3366 , - 2883 , - 2752 , - 2973 , - 3546 , - 4471 , - 116 , - 1745 , - 3726 , - 427 , - 3112 , - 517 , - 3906 , - 2015 , - 476 , - 4921 , - 4086 , - 3603 , - 3472 , - 3693 , - 4266 , - 5191 , - 836 , - 2465 , - 4446 , - 1147 , - 3832 , - 1237 , - 4626 , - 2735 , - 1196 , - 9 , - 4806 , - 4323 , - 4192 , - 4413 , - 4986 , - 279 , - 1556 , - 3185 , - 5166 , - 1867 , - 4552 , - 1957 , - 5346 , - 3455 , - 1916 , - 729 , - 5526 , - 5043 , - 4912 , - 5133 , - 74 , - 999 , - 2276 , - 3905 , - 254 , - 2587 , - 5272 , - 2677 , - 434 , - 4175 , - 2636 , - 1449 , - 614 , - 131 , - 0 , - 223 , - 802 , - 1737 , - 3028 , - 4675 , - 982 , - 3341 , - 360 , - 3431 , - 1162 , - 4945 , - 3388 , - 2187 , - 1342 , - 853 , - 720 , - 943 , - 1522 , - 2457 , - 3748 , - 5395 , - 1702 , - 4061 , - 1080 , - 4151 , - 1882 , - 5665 , - 4108 , - 2907 , - 2062 , - 1573 , - 1440 , - 1663 , - 2242 , - 3177 , - 4468 , - 419 , - 2422 , - 4781 , - 1800 , - 4871 , - 2602 , - 689 , - 4828 , - 3627 , - 2782 , - 2293 , - 2160 , - 2383 , - 2962 , - 3897 , - 5188 , - 1139 , - 3142 , - 5501 , - 2520 , - 5591 , - 3322 , - 1409 , - 5548 , - 4347 , - 3502 , - 3013 , - 2880 , - 3103 , - 3682 , - 4617 , - 212 , - 1859 , - 3862 , - 525 , - 3240 , - 615 , - 4042 , - 2129 , - 572 , - 5067 , - 4222 , - 3733 , - 3600 , - 3823 , - 4402 , - 5337 , - 932 , - 2579 , - 4582 , - 1245 , - 3960 , - 1335 , - 4762 , - 2849 , - 1292 , - 91 , - 4942 , - 4453 , - 4320 , - 4543 , - 5122 , - 361 , - 1652 , - 3299 , - 5302 , - 1965 , - 4680 , - 2055 , - 5482 , - 3569 , - 2012 , - 811 , - 5662 , - 5173 , - 5040 , - 5263 , - 146 , - 1081 , - 2372 , - 4019 , - 326 , - 2685 , - 5400 , - 2775 , - 506 , - 4289 , - 2732 , - 1531 , - 686 , - 197 , - 64 , - 287 , - 866 , - 1801 , - 3092 , - 4739 , - 1046 , - 3405 , - 424 , - 3495 , - 1226 , - 5009 , - 3452 , - 2251 , - 1406 , - 917 , - 784 , - 1007 , - 1586 , - 2521 , - 3812 , - 5459 , - 1766 , - 4125 , - 1144 , - 4215 , - 1946 , - 33 , - 4172 , - 2971 , - 2126 , - 1637 , - 1504 , - 1727 , - 2306 , - 3241 , - 4532 , - 483 , - 2486 , - 4845 , - 1864 , - 4935 , - 2666 , - 753 , - 4892 , - 3691 , - 2846 , - 2357 , - 2224 , - 2447 , - 3026 , - 3961 , - 5252 , - 1203 , - 3206 , - 5565 , - 2584 , - 5655 , - 3386 , - 1473 , - 5612 , - 4411 , - 3566 , - 3077 , - 2944 , - 3167 , - 3746 , - 4681 , - 276 , - 1923 , - 3926 , - 589 , - 3304 , - 679 , - 4106 , - 2193 , - 636 , - 5131 , - 4286 , - 3797 , - 3664 , - 3887 , - 4466 , - 5401 , - 996 , - 2643 , - 4646 , - 1309 , - 4024 , - 1399 , - 4826 , - 2913 , - 1356 , - 155 , - 5006 , - 4517 , - 4384 , - 4607 , - 5186 , - 425 , - 1716 , - 3363 , - 5366 , - 2029 , - 4744 , - 2119 , - 5546 , - 3633 , - 2076 , - 875 , - 30 , - 5237 , - 5104 , - 5327 , - 210 , - 1145 , - 2436 , - 4083 , - 390 , - 2749 , - 5464 , - 2839 , - 570 , - 4353 , - 2796 , - 1595 , - 750 , - 261 , - 128 , - 351 , - 930 , - 1865 , - 3156 , - 4803 , - 1110 , - 3469 , - 488 , - 3559 , - 1290 , - 5073 , - 3516 , - 2315 , - 1470 , - 981 , - 848 , - 1071 , - 1650 , - 2585 , - 3876 , - 5523 , - 1830 , - 4189 , - 1208 , - 4279 , - 2010 , - 97 , - 4236 , - 3035 , - 2190 , - 1701 , - 1568 , - 1791 , - 2370 , - 3305 , - 4596 , - 547 , - 2550 , - 4909 , - 1928 , - 4999 , - 2730 , - 817 , - 4956 , - 3755 , - 2910 , - 2421 , - 2288 , - 2511 , - 3090 , - 4025 , - 5316 , - 1267 , - 3270 , - 5629 , - 2648 , - 23 , - 3450 , - 1537 , - 5676 , - 4475 , - 3630 , - 3141 , - 3008 , - 3231 , - 3810 , - 4745 , - 340 , - 1987 , - 3990 , - 653 , - 3368 , - 743 , - 4170 , - 2257 , - 700 , - 5195 , - 4350 , - 3861 , - 3728 , - 3951 , - 4530 , - 5465 , - 1060 , - 2707 , - 4710 , - 1373 , - 4088 , - 1463 , - 4890 , - 2977 , - 1420 , - 219 , - 5070 , - 4581 , - 4448 , - 4671 , - 5250 , - 489 , - 1780 , - 3427 , - 5430 , - 2093 , - 4808 , - 2183 , - 5610 , - 3697 , - 2140 , - 939 , - 94 , - 5301 , - 5168 , - 5391 , - 274 , - 1209 , - 2500 , - 4147 , - 454 , - 2813 , - 5528 , - 2903 , - 634 , - 4417 , - 2860 , - 1659 , - 814 , - 325 , - 192 , - 415 , - 994 , - 1929 , - 3220 , - 4867 , - 1174 , - 3533 , - 552 , - 3623 , - 1354 , - 5137 , - 3580 , - 2379 , - 1534 , - 1045 , - 912 , - 1135 , - 1714 , - 2649 , - 3940 , - 5587 , - 1894 , - 4253 , - 1272 , - 4343 , - 2074 , - 161 , - 4300 , - 3099 , - 2254 , - 1765 , - 1632 , - 1855 , - 2434 , - 3369 , - 4660 , - 611 , - 2614 , - 4973 , - 1992 , - 5063 , - 2794 , - 881 , - 5020 , - 3819 , - 2974 , - 2485 , - 2352 , - 2575 , - 3154 , - 4089 , - 5380 , - 1331 , - 3334 , - 5693 , - 2712 , - 87 , - 3514 , - 1601 , - 44 , - 4539 , - 3694 , - 3205 , - 3072 , - 3295 , - 3874 , - 4809 , - 404 , - 2051 , - 4054 , - 717 , - 3432 , - 807 , - 4234 , - 2321 , - 764 , - 5259 , - 4414 , - 3925 , - 3792 , - 4015 , - 4594 , - 5529 , - 1124 , - 2771 , - 4774 , - 1437 , - 4152 , - 1527 , - 4954 , - 3041 , - 1484 , - 283 , - 5134 , - 4645 , - 4512 , - 4735 , - 5314 , - 553 , - 1844 , - 3491 , - 5494 , - 2157 , - 4872 , - 2247 , - 5674 , - 3761 , - 2204 , - 1003 , - 158 , - 5365 , - 5232 , - 5455 , - 338 , - 1273 , - 2564 , - 4211 , - 518 , - 2877 , - 5592 , - 2967 , - 698 , - 4481 , - 2924 , - 1723 , - 878 , - 389 , - 256 , - 479 , - 1058 , - 1993 , - 3284 , - 4931 , - 1238 , - 3597 , - 616 , - 3687 , - 1418 , - 5201 , - 3644 , - 2443 , - 1598 , - 1109 , - 976 , - 1199 , - 1778 , - 2713 , - 4004 , - 5651 , - 1958 , - 4317 , - 1336 , - 4407 , - 2138 , - 225 , - 4364 , - 3163 , - 2318 , - 1829 , - 1696 , - 1919 , - 2498 , - 3433 , - 4724 , - 675 , - 2678 , - 5037 , - 2056 , - 5127 , - 2858 , - 945 , - 5084 , - 3883 , - 3038 , - 2549 , - 2416 , - 2639 , - 3218 , - 4153 , - 5444 , - 1395 , - 3398 , - 61 , - 2776 , - 151 , - 3578 , - 1665 , - 108 , - 4603 , - 3758 , - 3269 , - 3136 , - 3359 , - 3938 , - 4873 , - 468 , - 2115 , - 4118 , - 781 , - 3496 , - 871 , - 4298 , - 2385 , - 828 , - 5323 , - 4478 , - 3989 , - 3856 , - 4079 , - 4658 , - 5593 , - 1188 , - 2835 , - 4838 , - 1501 , - 4216 , - 1591 , - 5018 , - 3105 , - 1548 , - 347 , - 5198 , - 4709 , - 4576 , - 4799 , - 5378 , - 617 , - 1908 , - 3555 , - 5558 , - 2221 , - 4936 , - 2311 , - 42 , - 3825 , - 2268 , - 1067 , - 222 , - 5429 , - 5296 , - 5519 , - 402 , - 1337 , - 2628 , - 4275 , - 582 , - 2941 , - 5656 , - 3031 , - 762 , - 4545 , - 2988 , - 1787 , - 942 , - 453 , - 320 , - 543 , - 1122 , - 2057 , - 3348 , - 4995 , - 1302 , - 3661 , - 680 , - 3751 , - 1482 , - 5265 , - 3708 , - 2507 , - 1662 , - 1173 , - 1040 , - 1263 , - 1842 , - 2777 , - 4068 , - 19 , - 2022 , - 4381 , - 1400 , - 4471 , - 2202 , - 289 , - 4428 , - 3227 , - 2382 , - 1893 , - 1760 , - 1983 , - 2562 , - 3497 , - 4788 , - 739 , - 2742 , - 5101 , - 2120 , - 5191 , - 2922 , - 1009 , - 5148 , - 3947 , - 3102 , - 2613 , - 2480 , - 2703 , - 3282 , - 4217 , - 5508 , - 1459 , - 3462 , - 125 , - 2840 , - 215 , - 3642 , - 1729 , - 172 , - 4667 , - 3822 , - 3333 , - 3200 , - 3423 , - 4002 , - 4937 , - 532 , - 2179 , - 4182 , - 845 , - 3560 , - 935 , - 4362 , - 2449 , - 892 , - 5387 , - 4542 , - 4053 , - 3920 , - 4143 , - 4722 , - 5657 , - 1252 , - 2899 , - 4902 , - 1565 , - 4280 , - 1655 , - 5082 , - 3169 , - 1612 , - 411 , - 5262 , - 4773 , - 4640 , - 4863 , - 5442 , - 681 , - 1972 , - 3619 , - 5622 , - 2285 , - 5000 , - 2375 , - 106 , - 3889 , - 2332 , - 1131 , - 286 , - 5493 , - 5360 , - 5583 , - 466 , - 1401 , - 2692 , - 4339 , - 646 , - 3005 , - 24 , - 3095 , - 826 , - 4609 , - 3052 , - 1851 , - 1006 , - 517 , - 384 , - 607 , - 1186 , - 2121 , - 3412 , - 5059 , - 1366 , - 3725 , - 744 , - 3815 , - 1546 , - 5329 , - 3772 , - 2571 , - 1726 , - 1237 , - 1104 , - 1327 , - 1906 , - 2841 , - 4132 , - 83 , - 2086 , - 4445 , - 1464 , - 4535 , - 2266 , - 353 , - 4492 , - 3291 , - 2446 , - 1957 , - 1824 , - 2047 , - 2626 , - 3561 , - 4852 , - 803 , - 2806 , - 5165 , - 2184 , - 5255 , - 2986 , - 1073 , - 5212 , - 4011 , - 3166 , - 2677 , - 2544 , - 2767 , - 3346 , - 4281 , - 5572 , - 1523 , - 3526 , - 189 , - 2904 , - 279 , - 3706 , - 1793 , - 236 , - 4731 , - 3886 , - 3397 , - 3264 , - 3487 , - 4066 , - 5001 , - 596 , - 2243 , - 4246 , - 909 , - 3624 , - 999 , - 4426 , - 2513 , - 956 , - 5451 , - 4606 , - 4117 , - 3984 , - 4207 , - 4786 , - 25 , - 1316 , - 2963 , - 4966 , - 1629 , - 4344 , - 1719 , - 5146 , - 3233 , - 1676 , - 475 , - 5326 , - 4837 , - 4704 , - 4927 , - 5506 , - 745 , - 2036 , - 3683 , - 5686 , - 2349 , - 5064 , - 2439 , - 170 , - 3953 , - 2396 , - 1195 , - 350 , - 5557 , - 5424 , - 5647 , - 530 , - 1465 , - 2756 , - 4403 , - 710 , - 3069 , - 88 , - 3159 , - 890 , - 4673 , - 3116 , - 1915 , - 1070 , - 581 , - 448 , - 671 , - 1250 , - 2185 , - 3476 , - 5123 , - 1430 , - 3789 , - 808 , - 3879 , - 1610 , - 5393 , - 3836 , - 2635 , - 1790 , - 1301 , - 1168 , - 1391 , - 1970 , - 2905 , - 4196 , - 147 , - 2150 , - 4509 , - 1528 , - 4599 , - 2330 , - 417 , - 4556 , - 3355 , - 2510 , - 2021 , - 1888 , - 2111 , - 2690 , - 3625 , - 4916 , - 867 , - 2870 , - 5229 , - 2248 , - 5319 , - 3050 , - 1137 , - 5276 , - 4075 , - 3230 , - 2741 , - 2608 , - 2831 , - 3410 , - 4345 , - 5636 , - 1587 , - 3590 , - 253 , - 2968 , - 343 , - 3770 , - 1857 , - 300 , - 4795 , - 3950 , - 3461 , - 3328 , - 3551 , - 4130 , - 5065 , - 660 , - 2307 , - 4310 , - 973 , - 3688 , - 1063 , - 4490 , - 2577 , - 1020 , - 5515 , - 4670 , - 4181 , - 4048 , - 4271 , - 4850 , - 89 , - 1380 , - 3027 , - 5030 , - 1693 , - 4408 , - 1783 , - 5210 , - 3297 , - 1740 , - 539 , - 5390 , - 4901 , - 4768 , - 4991 , - 5570 , - 809 , - 2100 , - 3747 , - 54 , - 2413 , - 5128 , - 2503 , - 234 , - 4017 , - 2460 , - 1259 , - 414 , - 5621 , - 5488 , - 15 , - 594 , - 1529 , - 2820 , - 4467 , - 774 , - 3133 , - 152 , - 3223 , - 954 , - 4737 , - 3180 , - 1979 , - 1134 , - 645 , - 512 , - 735 , - 1314 , - 2249 , - 3540 , - 5187 , - 1494 , - 3853 , - 872 , - 3943 , - 1674 , - 5457 , - 3900 , - 2699 , - 1854 , - 1365 , - 1232 , - 1455 , - 2034 , - 2969 , - 4260 , - 211 , - 2214 , - 4573 , - 1592 , - 4663 , - 2394 , - 481 , - 4620 , - 3419 , - 2574 , - 2085 , - 1952 , - 2175 , - 2754 , - 3689 , - 4980 , - 931 , - 2934 , - 5293 , - 2312 , - 5383 , - 3114 , - 1201 , - 5340 , - 4139 , - 3294 , - 2805 , - 2672 , - 2895 , - 3474 , - 4409 , - 4 , - 1651 , - 3654 , - 317 , - 3032 , - 407 , - 3834 , - 1921 , - 364 , - 4859 , - 4014 , - 3525 , - 3392 , - 3615 , - 4194 , - 5129 , - 724 , - 2371 , - 4374 , - 1037 , - 3752 , - 1127 , - 4554 , - 2641 , - 1084 , - 5579 , - 4734 , - 4245 , - 4112 , - 4335 , - 4914 , - 153 , - 1444 , - 3091 , - 5094 , - 1757 , - 4472 , - 1847 , - 5274 , - 3361 , - 1804 , - 603 , - 5454 , - 4965 , - 4832 , - 5055 , - 5634 , - 873 , - 2164 , - 3811 , - 118 , - 2477 , - 5192 , - 2567 , - 298 , - 4081 , - 2524 , - 1323 , - 478 , - 5685 , - 5552 , - 79 , - 658 , - 1593 , - 2884 , - 4531 , - 838 , - 3197 , - 216 , - 3287 , - 1018 , - 4801 , - 3244 , - 2043 , - 1198 , - 709 , - 576 , - 799 , - 1378 , - 2313 , - 3604 , - 5251 , - 1558 , - 3917 , - 936 , - 4007 , - 1738 , - 5521 , - 3964 , - 2763 , - 1918 , - 1429 , - 1296 , - 1519 , - 2098 , - 3033 , - 4324 , - 275 , - 2278 , - 4637 , - 1656 , - 4727 , - 2458 , - 545 , - 4684 , - 3483 , - 2638 , - 2149 , - 2016 , - 2239 , - 2818 , - 3753 , - 5044 , - 995 , - 2998 , - 5357 , - 2376 , - 5447 , - 3178 , - 1265 , - 5404 , - 4203 , - 3358 , - 2869 , - 2736 , - 2959 , - 3538 , - 4473 , - 68 , - 1715 , - 3718 , - 381 , - 3096 , - 471 , - 3898 , - 1985 , - 428 , - 4923 , - 4078 , - 3589 , - 3456 , - 3679 , - 4258 , - 5193 , - 788 , - 2435 , - 4438 , - 1101 , - 3816 , - 1191 , - 4618 , - 2705 , - 1148 , - 5643 , - 4798 , - 4309 , - 4176 , - 4399 , - 4978 , - 217 , - 1508 , - 3155 , - 5158 , - 1821 , - 4536 , - 1911 , - 5338 , - 3425 , - 1868 , - 667 , - 5518 , - 5029 , - 4896 , - 5119 , - 2 , - 937 , - 2228 , - 3875 , - 182 , - 2541 , - 5256 , - 2631 , - 362 , - 4145 , - 2588 , - 1387 , - 542 , - 53 , - 5616 , - 143 , - 722 , - 1657 , - 2948 , - 4595 , - 902 , - 3261 , - 280 , - 3351 , - 1082 , - 4865 , - 3308 , - 2107 , - 1262 , - 773 , - 640 , - 863 , - 1442 , - 2377 , - 3668 , - 5315 , - 1622 , - 3981 , - 1000 , - 4071 , - 1802 , - 5585 , - 4028 , - 2827 , - 1982 , - 1493 , - 1360 , - 1583 , - 2162 , - 3097 , - 4388 , - 339 , - 2342 , - 4701 , - 1720 , - 4791 , - 2522 , - 609 , - 4748 , - 3547 , - 2702 , - 2213 , - 2080 , - 2303 , - 2882 , - 3817 , - 5108 , - 1059 , - 3062 , - 5421 , - 2440 , - 5511 , - 3242 , - 1329 , - 5468 , - 4267 , - 3422 , - 2933 , - 2800 , - 3023 , - 3602 , - 4537 , - 132 , - 1779 , - 3782 , - 445 , - 3160 , - 535 , - 3962 , - 2049 , - 492 , - 4987 , - 4142 , - 3653 , - 3520 , - 3743 , - 4322 , - 5257 , - 852 , - 2499 , - 4502 , - 1165 , - 3880 , - 1255 , - 4682 , - 2769 , - 1212 , - 11 , - 4862 , - 4373 , - 4240 , - 4463 , - 5042 , - 281 , - 1572 , - 3219 , - 5222 , - 1885 , - 4600 , - 1975 , - 5402 , - 3489 , - 1932 , - 731 , - 5582 , - 5093 , - 4960 , - 5183 , - 66 , - 1001 , - 2292 , - 3939 , - 246 , - 2605 , - 5320 , - 2695 , - 426 , - 4209 , - 2652 , - 1451 , - 606 , - 117 , - 5680 , - 207 , - 786 , - 1721 , - 3012 , - 4659 , - 966 , - 3325 , - 344 , - 3415 , - 1146 , - 4929 , - 3372 , - 2171 , - 1326 , - 837 , - 704 , - 927 , - 1506 , - 2441 , - 3732 , - 5379 , - 1686 , - 4045 , - 1064 , - 4135 , - 1866 , - 5649 , - 4092 , - 2891 , - 2046 , - 1557 , - 1424 , - 1647 , - 2226 , - 3161 , - 4452 , - 403 , - 2406 , - 4765 , - 1784 , - 4855 , - 2586 , - 673 , - 4812 , - 3611 , - 2766 , - 2277 , - 2144 , - 2367 , - 2946 , - 3881 , - 5172 , - 1123 , - 3126 , - 5485 , - 2504 , - 5575 , - 3306 , - 1393 , - 5532 , - 4331 , - 3486 , - 2997 , - 2864 , - 3087 , - 3666 , - 4601 , - 196 , - 1843 , - 3846 , - 509 , - 3224 , - 599 , - 4026 , - 2113 , - 556 , - 5051 , - 4206 , - 3717 , - 3584 , - 3807 , - 4386 , - 5321 , - 916 , - 2563 , - 4566 , - 1229 , - 3944 , - 1319 , - 4746 , - 2833 , - 1276 , - 75 , - 4926 , - 4437 , - 4304 , - 4527 , - 5106 , - 345 , - 1636 , - 3283 , - 5286 , - 1949 , - 4664 , - 2039 , - 5466 , - 3553 , - 1996 , - 795 , - 5646 , - 5157 , - 5024 , - 5247 , - 130 , - 1065 , - 2356 , - 4003 , - 310 , - 2669 , - 5384 , - 2759 , - 490 , - 4273 , - 2716 , - 1515 , - 670 , - 181 , - 48 , - 271 , - 850 , - 1785 , - 3076 , - 4723 , - 1030 , - 3389 , - 408 , - 3479 , - 1210 , - 4993 , - 3436 , - 2235 , - 1390 , - 901 , - 768 , - 991 , - 1570 , - 2505 , - 3796 , - 5443 , - 1750 , - 4109 , - 1128 , - 4199 , - 1930 , - 17 , - 4156 , - 2955 , - 2110 , - 1621 , - 1488 , - 1711 , - 2290 , - 3225 , - 4516 , - 467 , - 2470 , - 4829 , - 1848 , - 4919 , - 2650 , - 737 , - 4876 , - 3675 , - 2830 , - 2341 , - 2208 , - 2431 , - 3010 , - 3945 , - 5236 , - 1187 , - 3190 , - 5549 , - 2568 , - 5639 , - 3370 , - 1457 , - 5596 , - 4395 , - 3550 , - 3061 , - 2928 , - 3151 , - 3730 , - 4665 , - 260 , - 1907 , - 3910 , - 573 , - 3288 , - 663 , - 4090 , - 2177 , - 620 , - 5115 , - 4270 , - 3781 , - 3648 , - 3871 , - 4450 , - 5385 , - 980 , - 2627 , - 4630 , - 1293 , - 4008 , - 1383 , - 4810 , - 2897 , - 1340 , - 139 , - 4990 , - 4501 , - 4368 , - 4591 , - 5170 , - 409 , - 1700 , - 3347 , - 5350 , - 2013 , - 4728 , - 2103 , - 5530 , - 3617 , - 2060 , - 859 , - 14 , - 5221 , - 5088 , - 5311 , - 194 , - 1129 , - 2420 , - 4067 , - 374 , - 2733 , - 5448 , - 2823 , - 554 , - 4337 , - 2780 , - 1579 , - 734 , - 245 , - 112 , - 335 , - 914 , - 1849 , - 3140 , - 4787 , - 1094 , - 3453 , - 472 , - 3543 , - 1274 , - 5057 , - 3500 , - 2299 , - 1454 , - 965 , - 832 , - 1055 , - 1634 , - 2569 , - 3860 , - 5507 , - 1814 , - 4173 , - 1192 , - 4263 , - 1994 , - 81 , - 4220 , - 3019 , - 2174 , - 1685 , - 1552 , - 1775 , - 2354 , - 3289 , - 4580 , - 531 , - 2534 , - 4893 , - 1912 , - 4983 , - 2714 , - 801 , - 4940 , - 3739 , - 2894 , - 2405 , - 2272 , - 2495 , - 3074 , - 4009 , - 5300 , - 1251 , - 3254 , - 5613 , - 2632 , - 7 , - 3434 , - 1521 , - 5660 , - 4459 , - 3614 , - 3125 , - 2992 , - 3215 , - 3794 , - 4729 , - 324 , - 1971 , - 3974 , - 637 , - 3352 , - 727 , - 4154 , - 2241 , - 684 , - 5179 , - 4334 , - 3845 , - 3712 , - 3935 , - 4514 , - 5449 , - 1044 , - 2691 , - 4694 , - 1357 , - 4072 , - 1447 , - 4874 , - 2961 , - 1404 , - 203 , - 5054 , - 4565 , - 4432 , - 4655 , - 5234 , - 473 , - 1764 , - 3411 , - 5414 , - 2077 , - 4792 , - 2167 , - 5594 , - 3681 , - 2124 , - 923 , - 78 , - 5285 , - 5152 , - 5375 , - 258 , - 1193 , - 2484 , - 4131 , - 438 , - 2797 , - 5512 , - 2887 , - 618 , - 4401 , - 2844 , - 1643 , - 798 , - 309 , - 176 , - 399 , - 978 , - 1913 , - 3204 , - 4851 , - 1158 , - 3517 , - 536 , - 3607 , - 1338 , - 5121 , - 3564 , - 2363 , - 1518 , - 1029 , - 896 , - 1119 , - 1698 , - 2633 , - 3924 , - 5571 , - 1878 , - 4237 , - 1256 , - 4327 , - 2058 , - 145 , - 4284 , - 3083 , - 2238 , - 1749 , - 1616 , - 1839 , - 2418 , - 3353 , - 4644 , - 595 , - 2598 , - 4957 , - 1976 , - 5047 , - 2778 , - 865 , - 5004 , - 3803 , - 2958 , - 2469 , - 2336 , - 2559 , - 3138 , - 4073 , - 5364 , - 1315 , - 3318 , - 5677 , - 2696 , - 71 , - 3498 , - 1585 , - 28 , - 4523 , - 3678 , - 3189 , - 3056 , - 3279 , - 3858 , - 4793 , - 388 , - 2035 , - 4038 , - 701 , - 3416 , - 791 , - 4218 , - 2305 , - 748 , - 5243 , - 4398 , - 3909 , - 3776 , - 3999 , - 4578 , - 5513 , - 1108 , - 2755 , - 4758 , - 1421 , - 4136 , - 1511 , - 4938 , - 3025 , - 1468 , - 267 , - 5118 , - 4629 , - 4496 , - 4719 , - 5298 , - 537 , - 1828 , - 3475 , - 5478 , - 2141 , - 4856 , - 2231 , - 5658 , - 3745 , - 2188 , - 987 , - 142 , - 5349 , - 5216 , - 5439 , - 322 , - 1257 , - 2548 , - 4195 , - 502 , - 2861 , - 5576 , - 2951 , - 682 , - 4465 , - 2908 , - 1707 , - 862 , - 373 , - 240 , - 463 , - 1042 , - 1977 , - 3268 , - 4915 , - 1222 , - 3581 , - 600 , - 3671 , - 1402 , - 5185 , - 3628 , - 2427 , - 1582 , - 1093 , - 960 , - 1183 , - 1762 , - 2697 , - 3988 , - 5635 , - 1942 , - 4301 , - 1320 , - 4391 , - 2122 , - 209 , - 4348 , - 3147 , - 2302 , - 1813 , - 1680 , - 1903 , - 2482 , - 3417 , - 4708 , - 659 , - 2662 , - 5021 , - 2040 , - 5111 , - 2842 , - 929 , - 5068 , - 3867 , - 3022 , - 2533 , - 2400 , - 2623 , - 3202 , - 4137 , - 5428 , - 1379 , - 3382 , - 45 , - 2760 , - 135 , - 3562 , - 1649 , - 92 , - 4587 , - 3742 , - 3253 , - 3120 , - 3343 , - 3922 , - 4857 , - 452 , - 2099 , - 4102 , - 765 , - 3480 , - 855 , - 4282 , - 2369 , - 812 , - 5307 , - 4462 , - 3973 , - 3840 , - 4063 , - 4642 , - 5577 , - 1172 , - 2819 , - 4822 , - 1485 , - 4200 , - 1575 , - 5002 , - 3089 , - 1532 , - 331 , - 5182 , - 4693 , - 4560 , - 4783 , - 5362 , - 601 , - 1892 , - 3539 , - 5542 , - 2205 , - 4920 , - 2295 , - 26 , - 3809 , - 2252 , - 1051 , - 206 , - 5413 , - 5280 , - 5503 , - 386 , - 1321 , - 2612 , - 4259 , - 566 , - 2925 , - 5640 , - 3015 , - 746 , - 4529 , - 2972 , - 1771 , - 926 , - 437 , - 304 , - 527 , - 1106 , - 2041 , - 3332 , - 4979 , - 1286 , - 3645 , - 664 , - 3735 , - 1466 , - 5249 , - 3692 , - 2491 , - 1646 , - 1157 , - 1024 , - 1247 , - 1826 , - 2761 , - 4052 , - 3 , - 2006 , - 4365 , - 1384 , - 4455 , - 2186 , - 273 , - 4412 , - 3211 , - 2366 , - 1877 , - 1744 , - 1967 , - 2546 , - 3481 , - 4772 , - 723 , - 2726 , - 5085 , - 2104 , - 5175 , - 2906 , - 993 , - 5132 , - 3931 , - 3086 , - 2597 , - 2464 , - 2687 , - 3266 , - 4201 , - 5492 , - 1443 , - 3446 , - 109 , - 2824 , - 199 , - 3626 , - 1713 , - 156 , - 4651 , - 3806 , - 3317 , - 3184 , - 3407 , - 3986 , - 4921 , - 516 , - 2163 , - 4166 , - 829 , - 3544 , - 919 , - 4346 , - 2433 , - 876 , - 5371 , - 4526 , - 4037 , - 3904 , - 4127 , - 4706 , - 5641 , - 1236 , - 2883 , - 4886 , - 1549 , - 4264 , - 1639 , - 5066 , - 3153 , - 1596 , - 395 , - 5246 , - 4757 , - 4624 , - 4847 , - 5426 , - 665 , - 1956 , - 3603 , - 5606 , - 2269 , - 4984 , - 2359 , - 90 , - 3873 , - 2316 , - 1115 , - 270 , - 5477 , - 5344 , - 5567 , - 450 , - 1385 , - 2676 , - 4323 , - 630 , - 2989 , - 8 , - 3079 , - 810 , - 4593 , - 3036 , - 1835 , - 990 , - 501 , - 368 , - 591 , - 1170 , - 2105 , - 3396 , - 5043 , - 1350 , - 3709 , - 728 , - 3799 , - 1530 , - 5313 , - 3756 , - 2555 , - 1710 , - 1221 , - 1088 , - 1311 , - 1890 , - 2825 , - 4116 , - 67 , - 2070 , - 4429 , - 1448 , - 4519 , - 2250 , - 337 , - 4476 , - 3275 , - 2430 , - 1941 , - 1808 , - 2031 , - 2610 , - 3545 , - 4836 , - 787 , - 2790 , - 5149 , - 2168 , - 5239 , - 2970 , - 1057 , - 5196 , - 3995 , - 3150 , - 2661 , - 2528 , - 2751 , - 3330 , - 4265 , - 5556 , - 1507 , - 3510 , - 173 , - 2888 , - 263 , - 3690 , - 1777 , - 220 , - 4715 , - 3870 , - 3381 , - 3248 , - 3471 , - 4050 , - 4985 , - 580 , - 2227 , - 4230 , - 893 , - 3608 , - 983 , - 4410 , - 2497 , - 940 , - 5435 , - 4590 , - 4101 , - 3968 , - 4191 , - 4770 , - 9 , - 1300 , - 2947 , - 4950 , - 1613 , - 4328 , - 1703 , - 5130 , - 3217 , - 1660 , - 459 , - 5310 , - 4821 , - 4688 , - 4911 , - 5490 , - 729 , - 2020 , - 3667 , - 5670 , - 2333 , - 5048 , - 2423 , - 154 , - 3937 , - 2380 , - 1179 , - 334 , - 5541 , - 5408 , - 5631 , - 514 , - 1449 , - 2740 , - 4387 , - 694 , - 3053 , - 72 , - 3143 , - 874 , - 4657 , - 3100 , - 1899 , - 1054 , - 565 , - 432 , - 655 , - 1234 , - 2169 , - 3460 , - 5107 , - 1414 , - 3773 , - 792 , - 3863 , - 1594 , - 5377 , - 3820 , - 2619 , - 1774 , - 1285 , - 1152 , - 1375 , - 1954 , - 2889 , - 4180 , - 131 , - 2134 , - 4493 , - 1512 , - 4583 , - 2314 , - 401 , - 4540 , - 3339 , - 2494 , - 2005 , - 1872 , - 2095 , - 2674 , - 3609 , - 4900 , - 851 , - 2854 , - 5213 , - 2232 , - 5303 , - 3034 , - 1121 , - 5260 , - 4059 , - 3214 , - 2725 , - 2592 , - 2815 , - 3394 , - 4329 , - 5620 , - 1571 , - 3574 , - 237 , - 2952 , - 327 , - 3754 , - 1841 , - 284 , - 4779 , - 3934 , - 3445 , - 3312 , - 3535 , - 4114 , - 5049 , - 644 , - 2291 , - 4294 , - 957 , - 3672 , - 1047 , - 4474 , - 2561 , - 1004 , - 5499 , - 4654 , - 4165 , - 4032 , - 4255 , - 4834 , - 73 , - 1364 , - 3011 , - 5014 , - 1677 , - 4392 , - 1767 , - 5194 , - 3281 , - 1724 , - 523 , - 5374 , - 4885 , - 4752 , - 4975 , - 5554 , - 793 , - 2084 , - 3731 , - 38 , - 2397 , - 5112 , - 2487 , - 218 , - 4001 , - 2444 , - 1243 , - 398 , - 5605 , - 5472 , - 5695 , - 578 , - 1513 , - 2804 , - 4451 , - 758 , - 3117 , - 136 , - 3207 , - 938 , - 4721 , - 3164 , - 1963 , - 1118 , - 629 , - 496 , - 719 , - 1298 , - 2233 , - 3524 , - 5171 , - 1478 , - 3837 , - 856 , - 3927 , - 1658 , - 5441 , - 3884 , - 2683 , - 1838 , - 1349 , - 1216 , - 1439 , - 2018 , - 2953 , - 4244 , - 195 , - 2198 , - 4557 , - 1576 , - 4647 , - 2378 , - 465 , - 4604 , - 3403 , - 2558 , - 2069 , - 1936 , - 2159 , - 2738 , - 3673 , - 4964 , - 915 , - 2918 , - 5277 , - 2296 , - 5367 , - 3098 , - 1185 , - 5324 , - 4123 , - 3278 , - 2789 , - 2656 , - 2879 , - 3458 , - 4393 , - 5684 , - 1635 , - 3638 , - 301 , - 3016 , - 391 , - 3818 , - 1905 , - 348 , - 4843 , - 3998 , - 3509 , - 3376 , - 3599 , - 4178 , - 5113 , - 708 , - 2355 , - 4358 , - 1021 , - 3736 , - 1111 , - 4538 , - 2625 , - 1068 , - 5563 , - 4718 , - 4229 , - 4096 , - 4319 , - 4898 , - 137 , - 1428 , - 3075 , - 5078 , - 1741 , - 4456 , - 1831 , - 5258 , - 3345 , - 1788 , - 587 , - 5438 , - 4949 , - 4816 , - 5039 , - 5618 , - 857 , - 2148 , - 3795 , - 102 , - 2461 , - 5176 , - 2551 , - 282 , - 4065 , - 2508 , - 1307 , - 462 , - 5669 , - 5536 , - 63 , - 642 , - 1577 , - 2868 , - 4515 , - 822 , - 3181 , - 200 , - 3271 , - 1002 , - 4785 , - 3228 , - 2027 , - 1182 , - 693 , - 560 , - 783 , - 1362 , - 2297 , - 3588 , - 5235 , - 1542 , - 3901 , - 920 , - 3991 , - 1722 , - 5505 , - 3948 , - 2747 , - 1902 , - 1413 , - 1280 , - 1503 , - 2082 , - 3017 , - 4308 , - 259 , - 2262 , - 4621 , - 1640 , - 4711 , - 2442 , - 529 , - 4668 , - 3467 , - 2622 , - 2133 , - 2000 , - 2223 , - 2802 , - 3737 , - 5028 , - 979 , - 2982 , - 5341 , - 2360 , - 5431 , - 3162 , - 1249 , - 5388 , - 4187 , - 3342 , - 2853 , - 2720 , - 2943 , - 3522 , - 4457 , - 52 , - 1699 , - 3702 , - 365 , - 3080 , - 455 , - 3882 , - 1969 , - 412 , - 4907 , - 4062 , - 3573 , - 3440 , - 3663 , - 4242 , - 5177 , - 772 , - 2419 , - 4422 , - 1085 , - 3800 , - 1175 , - 4602 , - 2689 , - 1132 , - 5627 , - 4782 , - 4293 , - 4160 , - 4383 , - 4962 , - 201 , - 1492 , - 3139 , - 5142 , - 1805 , - 4520 , - 1895 , - 5322 , - 3409 , - 1852 , - 651 , - 5502 , - 5013 , - 4880 , - 5103 , - 5682 , - 921 , - 2212 , - 3859 , - 166 , - 2525 , - 5240 , - 2615 , - 346 , - 4129 , - 2572 , - 1371 , - 526 , - 37 , - 5600 , - 127 , - 706 , - 1641 , - 2932 , - 4579 , - 886 , - 3245 , - 264 , - 3335 , - 1066 , - 4849 , - 3292 , - 2091 , - 1246 , - 757 , - 624 , - 847 , - 1426 , - 2361 , - 3652 , - 5299 , - 1606 , - 3965 , - 984 , - 4055 , - 1786 , - 5569 , - 4012 , - 2811 , - 1966 , - 1477 , - 1344 , - 1567 , - 2146 , - 3081 , - 4372 , - 323 , - 2326 , - 4685 , - 1704 , - 4775 , - 2506 , - 593 , - 4732 , - 3531 , - 2686 , - 2197 , - 2064 , - 2287 , - 2866 , - 3801 , - 5092 , - 1043 , - 3046 , - 5405 , - 2424 , - 5495 , - 3226 , - 1313 , - 5452 , - 4251 , - 3406 , - 2917 , - 2784 , - 3007 , - 3586 , - 4521 , - 116 , - 1763 , - 3766 , - 429 , - 3144 , - 519 , - 3946 , - 2033 , - 476 , - 4971 , - 4126 , - 3637 , - 3504 , - 3727 , - 4306 , - 5241 , - 836 , - 2483 , - 4486 , - 1149 , - 3864 , - 1239 , - 4666 , - 2753 , - 1196 , - 5691 , - 4846 , - 4357 , - 4224 , - 4447 , - 5026 , - 265 , - 1556 , - 3203 , - 5206 , - 1869 , - 4584 , - 1959 , - 5386 , - 3473 , - 1916 , - 715 , - 5566 , - 5077 , - 4944 , - 5167 , - 50 , - 985 , - 2276 , - 3923 , - 230 , - 2589 , - 5304 , - 2679 , - 410 , - 4193 , - 2636 , - 1435 , - 590 , - 101 , - 5664 , - 191 , - 770 , - 1705 , - 2996 , - 4643 , - 950 , - 3309 , - 328 , - 3399 , - 1130 , - 4913 , - 3356 , - 2155 , - 1310 , - 821 , - 688 , - 911 , - 1490 , - 2425 , - 3716 , - 5363 , - 1670 , - 4029 , - 1048 , - 4119 , - 1850 , - 5633 , - 4076 , - 2875 , - 2030 , - 1541 , - 1408 , - 1631 , - 2210 , - 3145 , - 4436 , - 387 , - 2390 , - 4749 , - 1768 , - 4839 , - 2570 , - 657 , - 4796 , - 3595 , - 2750 , - 2261 , - 2128 , - 2351 , - 2930 , - 3865 , - 5156 , - 1107 , - 3110 , - 5469 , - 2488 , - 5559 , - 3290 , - 1377 , - 5516 , - 4315 , - 3470 , - 2981 , - 2848 , - 3071 , - 3650 , - 4585 , - 180 , - 1827 , - 3830 , - 493 , - 3208 , - 583 , - 4010 , - 2097 , - 540 , - 5035 , - 4190 , - 3701 , - 3568 , - 3791 , - 4370 , - 5305 , - 900 , - 2547 , - 4550 , - 1213 , - 3928 , - 1303 , - 4730 , - 2817 , - 1260 , - 59 , - 4910 , - 4421 , - 4288 , - 4511 , - 5090 , - 329 , - 1620 , - 3267 , - 5270 , - 1933 , - 4648 , - 2023 , - 5450 , - 3537 , - 1980 , - 779 , - 5630 , - 5141 , - 5008 , - 5231 , - 114 , - 1049 , - 2340 , - 3987 , - 294 , - 2653 , - 5368 , - 2743 , - 474 , - 4257 , - 2700 , - 1499 , - 654 , - 165 , - 32 , - 255 , - 834 , - 1769 , - 3060 , - 4707 , - 1014 , - 3373 , - 392 , - 3463 , - 1194 , - 4977 , - 3420 , - 2219 , - 1374 , - 885 , - 752 , - 975 , - 1554 , - 2489 , - 3780 , - 5427 , - 1734 , - 4093 , - 1112 , - 4183 , - 1914 , - 1 , - 4140 , - 2939 , - 2094 , - 1605 , - 1472 , - 1695 , - 2274 , - 3209 , - 4500 , - 451 , - 2454 , - 4813 , - 1832 , - 4903 , - 2634 , - 721 , - 4860 , - 3659 , - 2814 , - 2325 , - 2192 , - 2415 , - 2994 , - 3929 , - 5220 , - 1171 , - 3174 , - 5533 , - 2552 , - 5623 , - 3354 , - 1441 , - 5580 , - 4379 , - 3534 , - 3045 , - 2912 , - 3135 , - 3714 , - 4649 , - 244 , - 1891 , - 3894 , - 557 , - 3272 , - 647 , - 4074 , - 2161 , - 604 , - 5099 , - 4254 , - 3765 , - 3632 , - 3855 , - 4434 , - 5369 , - 964 , - 2611 , - 4614 , - 1277 , - 3992 , - 1367 , - 4794 , - 2881 , - 1324 , - 123 , - 4974 , - 4485 , - 4352 , - 4575 , - 5154 , - 393 , - 1684 , - 3331 , - 5334 , - 1997 , - 4712 , - 2087 , - 5514 , - 3601 , - 2044 , - 843 , - 5694 , - 5205 , - 5072 , - 5295 , - 178 , - 1113 , - 2404 , - 4051 , - 358 , - 2717 , - 5432 , - 2807 , - 538 , - 4321 , - 2764 , - 1563 , - 718 , - 229 , - 96 , - 319 , - 898 , - 1833 , - 3124 , - 4771 , - 1078 , - 3437 , - 456 , - 3527 , - 1258 , - 5041 , - 3484 , - 2283 , - 1438 , - 949 , - 816 , - 1039 , - 1618 , - 2553 , - 3844 , - 5491 , - 1798 , - 4157 , - 1176 , - 4247 , - 1978 , - 65 , - 4204 , - 3003 , - 2158 , - 1669 , - 1536 , - 1759 , - 2338 , - 3273 , - 4564 , - 515 , - 2518 , - 4877 , - 1896 , - 4967 , - 2698 , - 785 , - 4924 , - 3723 , - 2878 , - 2389 , - 2256 , - 2479 , - 3058 , - 3993 , - 5284 , - 1235 , - 3238 , - 5597 , - 2616 , - 5687 , - 3418 , - 1505 , - 5644 , - 4443 , - 3598 , - 3109 , - 2976 , - 3199 , - 3778 , - 4713 , - 308 , - 1955 , - 3958 , - 621 , - 3336 , - 711 , - 4138 , - 2225 , - 668 , - 5163 , - 4318 , - 3829 , - 3696 , - 3919 , - 4498 , - 5433 , - 1028 , - 2675 , - 4678 , - 1341 , - 4056 , - 1431 , - 4858 , - 2945 , - 1388 , - 187 , - 5038 , - 4549 , - 4416 , - 4639 , - 5218 , - 457 , - 1748 , - 3395 , - 5398 , - 2061 , - 4776 , - 2151 , - 5578 , - 3665 , - 2108 , - 907 , - 62 , - 5269 , - 5136 , - 5359 , - 242 , - 1177 , - 2468 , - 4115 , - 422 , - 2781 , - 5496 , - 2871 , - 602 , - 4385 , - 2828 , - 1627 , - 782 , - 293 , - 160 , - 383 , - 962 , - 1897 , - 3188 , - 4835 , - 1142 , - 3501 , - 520 , - 3591 , - 1322 , - 5105 , - 3548 , - 2347 , - 1502 , - 1013 , - 880 , - 1103 , - 1682 , - 2617 , - 3908 , - 5555 , - 1862 , - 4221 , - 1240 , - 4311 , - 2042 , - 129 , - 4268 , - 3067 , - 2222 , - 1733 , - 1600 , - 1823 , - 2402 , - 3337 , - 4628 , - 579 , - 2582 , - 4941 , - 1960 , - 5031 , - 2762 , - 849 , - 4988 , - 3787 , - 2942 , - 2453 , - 2320 , - 2543 , - 3122 , - 4057 , - 5348 , - 1299 , - 3302 , - 5661 , - 2680 , - 55 , - 3482 , - 1569 , - 12 , - 4507 , - 3662 , - 3173 , - 3040 , - 3263 , - 3842 , - 4777 , - 372 , - 2019 , - 4022 , - 685 , - 3400 , - 775 , - 4202 , - 2289 , - 732 , - 5227 , - 4382 , - 3893 , - 3760 , - 3983 , - 4562 , - 5497 , - 1092 , - 2739 , - 4742 , - 1405 , - 4120 , - 1495 , - 4922 , - 3009 , - 1452 , - 251 , - 5102 , - 4613 , - 4480 , - 4703 , - 5282 , - 521 , - 1812 , - 3459 , - 5462 , - 2125 , - 4840 , - 2215 , - 5642 , - 3729 , - 2172 , - 971 , - 126 , - 5333 , - 5200 , - 5423 , - 306 , - 1241 , - 2532 , - 4179 , - 486 , - 2845 , - 5560 , - 2935 , - 666 , - 4449 , - 2892 , - 1691 , - 846 , - 357 , - 224 , - 447 , - 1026 , - 1961 , - 3252 , - 4899 , - 1206 , - 3565 , - 584 , - 3655 , - 1386 , - 5169 , - 3612 , - 2411 , - 1566 , - 1077 , - 944 , - 1167 , - 1746 , - 2681 , - 3972 , - 5619 , - 1926 , - 4285 , - 1304 , - 4375 , - 2106 , - 193 , - 4332 , - 3131 , - 2286 , - 1797 , - 1664 , - 1887 , - 2466 , - 3401 , - 4692 , - 643 , - 2646 , - 5005 , - 2024 , - 5095 , - 2826 , - 913 , - 5052 , - 3851 , - 3006 , - 2517 , - 2384 , - 2607 , - 3186 , - 4121 , - 5412 , - 1363 , - 3366 , - 29 , - 2744 , - 119 , - 3546 , - 1633 , - 76 , - 4571 , - 3726 , - 3237 , - 3104 , - 3327 , - 3906 , - 4841 , - 436 , - 2083 , - 4086 , - 749 , - 3464 , - 839 , - 4266 , - 2353 , - 796 , - 5291 , - 4446 , - 3957 , - 3824 , - 4047 , - 4626 , - 5561 , - 1156 , - 2803 , - 4806 , - 1469 , - 4184 , - 1559 , - 4986 , - 3073 , - 1516 , - 315 , - 5166 , - 4677 , - 4544 , - 4767 , - 5346 , - 585 , - 1876 , - 3523 , - 5526 , - 2189 , - 4904 , - 2279 , - 10 , - 3793 , - 2236 , - 1035 , - 190 , - 5397 , - 5264 , - 5487 , - 370 , - 1305 , - 2596 , - 4243 , - 550 , - 2909 , - 5624 , - 2999 , - 730 , - 4513 , - 2956 , - 1755 , - 910 , - 421 , - 288 , - 511 , - 1090 , - 2025 , - 3316 , - 4963 , - 1270 , - 3629 , - 648 , - 3719 , - 1450 , - 5233 , - 3676 , - 2475 , - 1630 , - 1141 , - 1008 , - 1231 , - 1810 , - 2745 , - 4036 , - 5683 , - 1990 , - 4349 , - 1368 , - 4439 , - 2170 , - 257 , - 4396 , - 3195 , - 2350 , - 1861 , - 1728 , - 1951 , - 2530 , - 3465 , - 4756 , - 707 , - 2710 , - 5069 , - 2088 , - 5159 , - 2890 , - 977 , - 5116 , - 3915 , - 3070 , - 2581 , - 2448 , - 2671 , - 3250 , - 4185 , - 5476 , - 1427 , - 3430 , - 93 , - 2808 , - 183 , - 3610 , - 1697 , - 140 , - 4635 , - 3790 , - 3301 , - 3168 , - 3391 , - 3970 , - 4905 , - 500 , - 2147 , - 4150 , - 813 , - 3528 , - 903 , - 4330 , - 2417 , - 860 , - 5355 , - 4510 , - 4021 , - 3888 , - 4111 , - 4690 , - 5625 , - 1220 , - 2867 , - 4870 , - 1533 , - 4248 , - 1623 , - 5050 , - 3137 , - 1580 , - 379 , - 5230 , - 4741 , - 4608 , - 4831 , - 5410 , - 649 , - 1940 , - 3587 , - 5590 , - 2253 , - 4968 , - 2343 , - 74 , - 3857 , - 2300 , - 1099 , - 254 , - 5461 , - 5328 , - 5551 , - 434 , - 1369 , - 2660 , - 4307 , - 614 , - 2973 , - 5688 , - 3063 , - 794 , - 4577 , - 3020 , - 1819 , - 974 , - 485 , - 352 , - 575 , - 1154 , - 2089 , - 3380 , - 5027 , - 1334 , - 3693 , - 712 , - 3783 , - 1514 , - 5297 , - 3740 , - 2539 , - 1694 , - 1205 , - 1072 , - 1295 , - 1874 , - 2809 , - 4100 , - 51 , - 2054 , - 4413 , - 1432 , - 4503 , - 2234 , - 321 , - 4460 , - 3259 , - 2414 , - 1925 , - 1792 , - 2015 , - 2594 , - 3529 , - 4820 , - 771 , - 2774 , - 5133 , - 2152 , - 5223 , - 2954 , - 1041 , - 5180 , - 3979 , - 3134 , - 2645 , - 2512 , - 2735 , - 3314 , - 4249 , - 5540 , - 1491 , - 3494 , - 157 , - 2872 , - 247 , - 3674 , - 1761 , - 204 , - 4699 , - 3854 , - 3365 , - 3232 , - 3455 , - 4034 , - 4969 , - 564 , - 2211 , - 4214 , - 877 , - 3592 , - 967 , - 4394 , - 2481 , - 924 , - 5419 , - 4574 , - 4085 , - 3952 , - 4175 , - 4754 , - 5689 , - 1284 , - 2931 , - 4934 , - 1597 , - 4312 , - 1687 , - 5114 , - 3201 , - 1644 , - 443 , - 5294 , - 4805 , - 4672 , - 4895 , - 5474 , - 713 , - 2004 , - 3651 , - 5654 , - 2317 , - 5032 , - 2407 , - 138 , - 3921 , - 2364 , - 1163 , - 318 , - 5525 , - 5392 , - 5615 , - 498 , - 1433 , - 2724 , - 4371 , - 678 , - 3037 , - 56 , - 3127 , - 858 , - 4641 , - 3084 , - 1883 , - 1038 , - 549 , - 416 , - 639 , - 1218 , - 2153 , - 3444 , - 5091 , - 1398 , - 3757 , - 776 , - 3847 , - 1578 , - 5361 , - 3804 , - 2603 , - 1758 , - 1269 , - 1136 , - 1359 , - 1938 , - 2873 , - 4164 , - 115 , - 2118 , - 4477 , - 1496 , - 4567 , - 2298 , - 385 , - 4524 , - 3323 , - 2478 , - 1989 , - 1856 , - 2079 , - 2658 , - 3593 , - 4884 , - 835 , - 2838 , - 5197 , - 2216 , - 5287 , - 3018 , - 1105 , - 5244 , - 4043 , - 3198 , - 2709 , - 2576 , - 2799 , - 3378 , - 4313 , - 5604 , - 1555 , - 3558 , - 221 , - 2936 , - 311 , - 3738 , - 1825 , - 268 , - 4763 , - 3918 , - 3429 , - 3296 , - 3519 , - 4098 , - 5033 , - 628 , - 2275 , - 4278 , - 941 , - 3656 , - 1031 , - 4458 , - 2545 , - 988 , - 5483 , - 4638 , - 4149 , - 4016 , - 4239 , - 4818 , - 57 , - 1348 , - 2995 , - 4998 , - 1661 , - 4376 , - 1751 , - 5178 , - 3265 , - 1708 , - 507 , - 5358 , - 4869 , - 4736 , - 4959 , - 5538 , - 777 , - 2068 , - 3715 , - 22 , - 2381 , - 5096 , - 2471 , - 202 , - 3985 , - 2428 , - 1227 , - 382 , - 5589 , - 5456 , - 5679 , - 562 , - 1497 , - 2788 , - 4435 , - 742 , - 3101 , - 120 , - 3191 , - 922 , - 4705 , - 3148 , - 1947 , - 1102 , - 613 , - 480 , - 703 , - 1282 , - 2217 , - 3508 , - 5155 , - 1462 , - 3821 , - 840 , - 3911 , - 1642 , - 5425 , - 3868 , - 2667 , - 1822 , - 1333 , - 1200 , - 1423 , - 2002 , - 2937 , - 4228 , - 179 , - 2182 , - 4541 , - 1560 , - 4631 , - 2362 , - 449 , - 4588 , - 3387 , - 2542 , - 2053 , - 1920 , - 2143 , - 2722 , - 3657 , - 4948 , - 899 , - 2902 , - 5261 , - 2280 , - 5351 , - 3082 , - 1169 , - 5308 , - 4107 , - 3262 , - 2773 , - 2640 , - 2863 , - 3442 , - 4377 , - 5668 , - 1619 , - 3622 , - 285 , - 3000 , - 375 , - 3802 , - 1889 , - 332 , - 4827 , - 3982 , - 3493 , - 3360 , - 3583 , - 4162 , - 5097 , - 692 , - 2339 , - 4342 , - 1005 , - 3720 , - 1095 , - 4522 , - 2609 , - 1052 , - 5547 , - 4702 , - 4213 , - 4080 , - 4303 , - 4882 , - 121 , - 1412 , - 3059 , - 5062 , - 1725 , - 4440 , - 1815 , - 5242 , - 3329 , - 1772 , - 571 , - 5422 , - 4933 , - 4800 , - 5023 , - 5602 , - 841 , - 2132 , - 3779 , - 86 , - 2445 , - 5160 , - 2535 , - 266 , - 4049 , - 2492 , - 1291 , - 446 , - 5653 , - 5520 , - 47 , - 626 , - 1561 , - 2852 , - 4499 , - 806 , - 3165 , - 184 , - 3255 , - 986 , - 4769 , - 3212 , - 2011 , - 1166 , - 677 , - 544 , - 767 , - 1346 , - 2281 , - 3572 , - 5219 , - 1526 , - 3885 , - 904 , - 3975 , - 1706 , - 5489 , - 3932 , - 2731 , - 1886 , - 1397 , - 1264 , - 1487 , - 2066 , - 3001 , - 4292 , - 243 , - 2246 , - 4605 , - 1624 , - 4695 , - 2426 , - 513 , - 4652 , - 3451 , - 2606 , - 2117 , - 1984 , - 2207 , - 2786 , - 3721 , - 5012 , - 963 , - 2966 , - 5325 , - 2344 , - 5415 , - 3146 , - 1233 , - 5372 , - 4171 , - 3326 , - 2837 , - 2704 , - 2927 , - 3506 , - 4441 , - 36 , - 1683 , - 3686 , - 349 , - 3064 , - 439 , - 3866 , - 1953 , - 396 , - 4891 , - 4046 , - 3557 , - 3424 , - 3647 , - 4226 , - 5161 , - 756 , - 2403 , - 4406 , - 1069 , - 3784 , - 1159 , - 4586 , - 2673 , - 1116 , - 5611 , - 4766 , - 4277 , - 4144 , - 4367 , - 4946 , - 185 , - 1476 , - 3123 , - 5126 , - 1789 , - 4504 , - 1879 , - 5306 , - 3393 , - 1836 , - 635 , - 5486 , - 4997 , - 4864 , - 5087 , - 5666 , - 905 , - 2196 , - 3843 , - 150 , - 2509 , - 5224 , - 2599 , - 330 , - 4113 , - 2556 , - 1355 , - 510 , - 21 , - 5584 , - 111 , - 690 , - 1625 , - 2916 , - 4563 , - 870 , - 3229 , - 248 , - 3319 , - 1050 , - 4833 , - 3276 , - 2075 , - 1230 , - 741 , - 608 , - 831 , - 1410 , - 2345 , - 3636 , - 5283 , - 1590 , - 3949 , - 968 , - 4039 , - 1770 , - 5553 , - 3996 , - 2795 , - 1950 , - 1461 , - 1328 , - 1551 , - 2130 , - 3065 , - 4356 , - 307 , - 2310 , - 4669 , - 1688 , - 4759 , - 2490 , - 577 , - 4716 , - 3515 , - 2670 , - 2181 , - 2048 , - 2271 , - 2850 , - 3785 , - 5076 , - 1027 , - 3030 , - 5389 , - 2408 , - 5479 , - 3210 , - 1297 , - 5436 , - 4235 , - 3390 , - 2901 , - 2768 , - 2991 , - 3570 , - 4505 , - 100 , - 1747 , - 3750 , - 413 , - 3128 , - 503 , - 3930 , - 2017 , - 460 , - 4955 , - 4110 , - 3621 , - 3488 , - 3711 , - 4290 , - 5225 , - 820 , - 2467 , - 4470 , - 1133 , - 3848 , - 1223 , - 4650 , - 2737 , - 1180 , - 5675 , - 4830 , - 4341 , - 4208 , - 4431 , - 5010 , - 249 , - 1540 , - 3187 , - 5190 , - 1853 , - 4568 , - 1943 , - 5370 , - 3457 , - 1900 , - 699 , - 5550 , - 5061 , - 4928 , - 5151 , - 34 , - 969 , - 2260 , - 3907 , - 214 , - 2573 , - 5288 , - 2663 , - 394 , - 4177 , - 2620 , - 1419 , - 574 , - 85 , - 5648 , - 175 , - 754 , - 1689 , - 2980 , - 4627 , - 934 , - 3293 , - 312 , - 3383 , - 1114 , - 4897 , - 3340 , - 2139 , - 1294 , - 805 , - 672 , - 895 , - 1474 , - 2409 , - 3700 , - 5347 , - 1654 , - 4013 , - 1032 , - 4103 , - 1834 , - 5617 , - 4060 , - 2859 , - 2014 , - 1525 , - 1392 , - 1615 , - 2194 , - 3129 , - 4420 , - 371 , - 2374 , - 4733 , - 1752 , - 4823 , - 2554 , - 641 , - 4780 , - 3579 , - 2734 , - 2245 , - 2112 , - 2335 , - 2914 , - 3849 , - 5140 , - 1091 , - 3094 , - 5453 , - 2472 , - 5543 , - 3274 , - 1361 , - 5500 , - 4299 , - 3454 , - 2965 , - 2832 , - 3055 , - 3634 , - 4569 , - 164 , - 1811 , - 3814 , - 477 , - 3192 , - 567 , - 3994 , - 2081 , - 524 , - 5019 , - 4174 , - 3685 , - 3552 , - 3775 , - 4354 , - 5289 , - 884 , - 2531 , - 4534 , - 1197 , - 3912 , - 1287 , - 4714 , - 2801 , - 1244 , - 43 , - 4894 , - 4405 , - 4272 , - 4495 , - 5074 , - 313 , - 1604 , - 3251 , - 5254 , - 1917 , - 4632 , - 2007 , - 5434 , - 3521 , - 1964 , - 763 , - 5614 , - 5125 , - 4992 , - 5215 , - 98 , - 1033 , - 2324 , - 3971 , - 278 , - 2637 , - 5352 , - 2727 , - 458 , - 4241 , - 2684 , - 1483 , - 638 , - 149 , - 16 , - 239 , - 818 , - 1753 , - 3044 , - 4691 , - 998 , - 3357 , - 376 , - 3447 , - 1178 , - 4961 , - 3404 , - 2203 , - 1358 , - 869 , - 736 , - 959 , - 1538 , - 2473 , - 3764 , - 5411 , - 1718 , - 4077 , - 1096 , - 4167 , - 1898 , - 5681 , - 4124 , - 2923 , - 2078 , - 1589 , - 1456 , - 1679 , - 2258 , - 3193 , - 4484 , - 435 , - 2438 , - 4797 , - 1816 , - 4887 , - 2618 , - 705 , - 4844 , - 3643 , - 2798 , - 2309 , - 2176 , - 2399 , - 2978 , - 3913 , - 5204 , - 1155 , - 3158 , - 5517 , - 2536 , - 5607 , - 3338 , - 1425 , - 5564 , - 4363 , - 3518 , - 3029 , - 2896 , - 3119 , - 3698 , - 4633 , - 228 , - 1875 , - 3878 , - 541 , - 3256 , - 631 , - 4058 , - 2145 , - 588 , - 5083 , - 4238 , - 3749 , - 3616 , - 3839 , - 4418 , - 5353 , - 948 , - 2595 , - 4598 , - 1261 , - 3976 , - 1351 , - 4778 , - 2865 , - 1308 , - 107 , - 4958 , - 4469 , - 4336 , - 4559 , - 5138 , - 377 , - 1668 , - 3315 , - 5318 , - 1981 , - 4696 , - 2071 , - 5498 , - 3585 , - 2028 , - 827 , - 5678 , - 5189 , - 5056 , - 5279 , - 162 , - 1097 , - 2388 , - 4035 , - 342 , - 2701 , - 5416 , - 2791 , - 522 , - 4305 , - 2748 , - 1547 , - 702 , - 213 , - 80 , - 303 , - 882 , - 1817 , - 3108 , - 4755 , - 1062 , - 3421 , - 440 , - 3511 , - 1242 , - 5025 , - 3468 , - 2267 , - 1422 , - 933 , - 800 , - 1023 , - 1602 , - 2537 , - 3828 , - 5475 , - 1782 , - 4141 , - 1160 , - 4231 , - 1962 , - 49 , - 4188 , - 2987 , - 2142 , - 1653 , - 1520 , - 1743 , - 2322 , - 3257 , - 4548 , - 499 , - 2502 , - 4861 , - 1880 , - 4951 , - 2682 , - 769 , - 4908 , - 3707 , - 2862 , - 2373 , - 2240 , - 2463 , - 3042 , - 3977 , - 5268 , - 1219 , - 3222 , - 5581 , - 2600 , - 5671 , - 3402 , - 1489 , - 5628 , - 4427 , - 3582 , - 3093 , - 2960 , - 3183 , - 3762 , - 4697 , - 292 , - 1939 , - 3942 , - 605 , - 3320 , - 695 , - 4122 , - 2209 , - 652 , - 5147 , - 4302 , - 3813 , - 3680 , - 3903 , - 4482 , - 5417 , - 1012 , - 2659 , - 4662 , - 1325 , - 4040 , - 1415 , - 4842 , - 2929 , - 1372 , - 171 , - 5022 , - 4533 , - 4400 , - 4623 , - 5202 , - 441 , - 1732 , - 3379 , - 5382 , - 2045 , - 4760 , - 2135 , - 5562 , - 3649 , - 2092 , - 891 , - 46 , - 5253 , - 5120 , - 5343 , - 226 , - 1161 , - 2452 , - 4099 , - 406 , - 2765 , - 5480 , - 2855 , - 586 , - 4369 , - 2812 , - 1611 , - 766 , - 277 , - 144 , - 367 , - 946 , - 1881 , - 3172 , - 4819 , - 1126 , - 3485 , - 504 , - 3575 , - 1306 , - 5089 , - 3532 , - 2331 , - 1486 , - 997 , - 864 , - 1087 , - 1666 , - 2601 , - 3892 , - 5539 , - 1846 , - 4205 , - 1224 , - 4295 , - 2026 , - 113 , - 4252 , - 3051 , - 2206 , - 1717 , - 1584 , - 1807 , - 2386 , - 3321 , - 4612 , - 563 , - 2566 , - 4925 , - 1944 , - 5015 , - 2746 , - 833 , - 4972 , - 3771 , - 2926 , - 2437 , - 2304 , - 2527 , - 3106 , - 4041 , - 5332 , - 1283 , - 3286 , - 5645 , - 2664 , - 39 , - 3466 , - 1553 , - 5692 , - 4491 , - 3646 , - 3157 , - 3024 , - 3247 , - 3826 , - 4761 , - 356 , - 2003 , - 4006 , - 669 , - 3384 , - 759 , - 4186 , - 2273 , - 716 , - 5211 , - 4366 , - 3877 , - 3744 , - 3967 , - 4546 , - 5481 , - 1076 , - 2723 , - 4726 , - 1389 , - 4104 , - 1479 , - 4906 , - 2993 , - 1436 , - 235 , - 5086 , - 4597 , - 4464 , - 4687 , - 5266 , - 505 , - 1796 , - 3443 , - 5446 , - 2109 , - 4824 , - 2199 , - 5626 , - 3713 , - 2156 , - 955 , - 110 , - 5317 , - 5184 , - 5407 , - 290 , - 1225 , - 2516 , - 4163 , - 470 , - 2829 , - 5544 , - 2919 , - 650 , - 4433 , - 2876 , - 1675 , - 830 , - 341 , - 208 , - 431 , - 1010 , - 1945 , - 3236 , - 4883 , - 1190 , - 3549 , - 568 , - 3639 , - 1370 , - 5153 , - 3596 , - 2395 , - 1550 , - 1061 , - 928 , - 1151 , - 1730 , - 2665 , - 3956 , - 5603 , - 1910 , - 4269 , - 1288 , - 4359 , - 2090 , - 177 , - 4316 , - 3115 , - 2270 , - 1781 , - 1648 , - 1871 , - 2450 , - 3385 , - 4676 , - 627 , - 2630 , - 4989 , - 2008 , - 5079 , - 2810 , - 897 , - 5036 , - 3835 , - 2990 , - 2501 , - 2368 , - 2591 , - 3170 , - 4105 , - 5396 , - 1347 , - 3350 , - 13 , - 2728 , - 103 , - 3530 , - 1617 , - 60 , - 4555 , - 3710 , - 3221 , - 3088 , - 3311 , - 3890 , - 4825 , - 420 , - 2067 , - 4070 , - 733 , - 3448 , - 823 , - 4250 , - 2337 , - 780 , - 5275 , - 4430 , - 3941 , - 3808 , - 4031 , - 4610 , - 5545 , - 1140 , - 2787 , - 4790 , - 1453 , - 4168 , - 1543 , - 4970 , - 3057 , - 1500 , - 299 , - 5150 , - 4661 , - 4528 , - 4751 , - 5330 , - 569 , - 1860 , - 3507 , - 5510 , - 2173 , - 4888 , - 2263 , - 5690 , - 3777 , - 2220 , - 1019 , - 174 , - 5381 , - 5248 , - 5471 , - 354 , - 1289 , - 2580 , - 4227 , - 534 , - 2893 , - 5608 , - 2983 , - 714 , - 4497 , - 2940 , - 1739 , - 894 , - 405 , - 272 , - 495 , - 1074 , - 2009 , - 3300 , - 4947 , - 1254 , - 3613 , - 632 , - 3703 , - 1434 , - 5217 , - 3660 , - 2459 , - 1614 , - 1125 , - 992 , - 1215 , - 1794 , - 2729 , - 4020 , - 5667 , - 1974 , - 4333 , - 1352 , - 4423 , - 2154 , - 241 , - 4380 , - 3179 , - 2334 , - 1845 , - 1712 , - 1935 , - 2514 , - 3449 , - 4740 , - 691 , - 2694 , - 5053 , - 2072 , - 5143 , - 2874 , - 961 , - 5100 , - 3899 , - 3054 , - 2565 , - 2432 , - 2655 , - 3234 , - 4169 , - 5460 , - 1411 , - 3414 , - 77 , - 2792 , - 167 , - 3594 , - 1681 , - 124 , - 4619 , - 3774 , - 3285 , - 3152 , - 3375 , - 3954 , - 4889 , - 484 , - 2131 , - 4134 , - 797 , - 3512 , - 887 , - 4314 , - 2401 , - 844 , - 5339 , - 4494 , - 4005 , - 3872 , - 4095 , - 4674 , - 5609 , - 1204 , - 2851 , - 4854 , - 1517 , - 4232 , - 1607 , - 5034 , - 3121 , - 1564 , - 363 , - 5214 , - 4725 , - 4592 , - 4815 , - 5394 , - 633 , - 1924 , - 3571 , - 5574 , - 2237 , - 4952 , - 2327 , - 58 , - 3841 , - 2284 , - 1083 , - 238 , - 5445 , - 5312 , - 5535 , - 418 , - 1353 , - 2644 , - 4291 , - 598 , - 2957 , - 5672 , - 3047 , - 778 , - 4561 , - 3004 , - 1803 , - 958 , - 469 , - 336 , - 559 , - 1138 , - 2073 , - 3364 , - 5011 , - 1318 , - 3677 , - 696 , - 3767 , - 1498 , - 5281 , - 3724 , - 2523 , - 1678 , - 1189 , - 1056 , - 1279 , - 1858 , - 2793 , - 4084 , - 35 , - 2038 , - 4397 , - 1416 , - 4487 , - 2218 , - 305 , - 4444 , - 3243 , - 2398 , - 1909 , - 1776 , - 1999 , - 2578 , - 3513 , - 4804 , - 755 , - 2758 , - 5117 , - 2136 , - 5207 , - 2938 , - 1025 , - 5164 , - 3963 , - 3118 , - 2629 , - 2496 , - 2719 , - 3298 , - 4233 , - 5524 , - 1475 , - 3478 , - 141 , - 2856 , - 231 , - 3658 , - 1745 , - 188 , - 4683 , - 3838 , - 3349 , - 3216 , - 3439 , - 4018 , - 4953 , - 548 , - 2195 , - 4198 , - 861 , - 3576 , - 951 , - 4378 , - 2465 , - 908 , - 5403 , - 4558 , - 4069 , - 3936 , - 4159 , - 4738 , - 5673 , - 1268 , - 2915 , - 4918 , - 1581 , - 4296 , - 1671 , - 5098 , - 3185 , - 1628 , - 427 , - 5278 , - 4789 , - 4656 , - 4879 , - 5458 , - 697 , - 1988 , - 3635 , - 5638 , - 2301 , - 5016 , - 2391 , - 122 , - 3905 , - 2348 , - 1147 , - 302 , - 5509 , - 5376 , - 5599 , - 482 , - 1417 , - 2708 , - 4355 , - 662 , - 3021 , - 40 , - 3111 , - 842 , - 4625 , - 3068 , - 1867 , - 1022 , - 533 , - 400 , - 623 , - 1202 , - 2137 , - 3428 , - 5075 , - 1382 , - 3741 , - 760 , - 3831 , - 1562 , - 5345 , - 3788 , - 2587 , - 1742 , - 1253 , - 1120 , - 1343 , - 1922 , - 2857 , - 4148 , - 99 , - 2102 , - 4461 , - 1480 , - 4551 , - 2282 , - 369 , - 4508 , - 3307 , - 2462 , - 1973 , - 1840 , - 2063 , - 2642 , - 3577 , - 4868 , - 819 , - 2822 , - 5181 , - 2200 , - 5271 , - 3002 , - 1089 , - 5228 , - 4027 , - 3182 , - 2693 , - 2560 , - 2783 , - 3362 , - 4297 , - 5588 , - 1539 , - 3542 , - 205 , - 2920 , - 295 , - 3722 , - 1809 , - 252 , - 4747 , - 3902 , - 3413 , - 3280 , - 3503 , - 4082 , - 5017 , - 612 , - 2259 , - 4262 , - 925 , - 3640 , - 1015 , - 4442 , - 2529 , - 972 , - 5467 , - 4622 , - 4133 , - 4000 , - 4223 , - 4802 , - 41 , - 1332 , - 2979 , - 4982 , - 1645 , - 4360 , - 1735 , - 5162 , - 3249 , - 1692 , - 491 , - 5342 , - 4853 , - 4720 , - 4943 , - 5522 , - 761 , - 2052 , - 3699 , - 6 , - 2365 , - 5080 , - 2455 , - 186 , - 3969 , - 2412 , - 1211 , - 366 , - 5573 , - 5440 , - 5663 , - 546 , - 1481 , - 2772 , - 4419 , - 726 , - 3085 , - 104 , - 3175 , - 906 , - 4689 , - 3132 , - 1931 , - 1086 , - 597 , - 464 , - 687 , - 1266 , - 2201 , - 3492 , - 5139 , - 1446 , - 3805 , - 824 , - 3895 , - 1626 , - 5409 , - 3852 , - 2651 , - 1806 , - 1317 , - 1184 , - 1407 , - 1986 , - 2921 , - 4212 , - 163 , - 2166 , - 4525 , - 1544 , - 4615 , - 2346 , - 433 , - 4572 , - 3371 , - 2526 , - 2037 , - 1904 , - 2127 , - 2706 , - 3641 , - 4932 , - 883 , - 2886 , - 5245 , - 2264 , - 5335 , - 3066 , - 1153 , - 5292 , - 4091 , - 3246 , - 2757 , - 2624 , - 2847 , - 3426 , - 4361 , - 5652 , - 1603 , - 3606 , - 269 , - 2984 , - 359 , - 3786 , - 1873 , - 316 , - 4811 , - 3966 , - 3477 , - 3344 , - 3567 , - 4146 , - 5081 , - 676 , - 2323 , - 4326 , - 989 , - 3704 , - 1079 , - 4506 , - 2593 , - 1036 , - 5531 , - 4686 , - 4197 , - 4064 , - 4287 , - 4866 , - 105 , - 1396 , - 3043 , - 5046 , - 1709 , - 4424 , - 1799 , - 5226 , - 3313 , - 1756 , - 555 , - 5406 , - 4917 , - 4784 , - 5007 , - 5586 , - 825 , - 2116 , - 3763 , - 70 , - 2429 , - 5144 , - 2519 , - 250 , - 4033 , - 2476 , - 1275 , - 430 , - 5637 , - 5504 , - 31 , - 610 , - 1545 , - 2836 , - 4483 , - 790 , - 3149 , - 168 , - 3239 , - 970 , - 4753 , - 3196 , - 1995 , - 1150 , - 661 , - 528 , - 751 , - 1330 , - 2265 , - 3556 , - 5203 , - 1510 , - 3869 , - 888 , - 3959 , - 1690 , - 5473 , - 3916 , - 2715 , - 1870 , - 1381 , - 1248 , - 1471 , - 2050 , - 2985 , - 4276 , - 227 , - 2230 , - 4589 , - 1608 , - 4679 , - 2410 , - 497 , - 4636 , - 3435 , - 2590 , - 2101 , - 1968 , - 2191 , - 2770 , - 3705 , - 4996 , - 947 , - 2950 , - 5309 , - 2328 , - 5399 , - 3130 , - 1217 , - 5356 , - 4155 , - 3310 , - 2821 , - 2688 , - 2911 , - 3490 , - 4425 , - 20 , - 1667 , - 3670 , - 333 , - 3048 , - 423 , - 3850 , - 1937 , - 380 , - 4875 , - 4030 , - 3541 , - 3408 , - 3631 , - 4210 , - 5145 , - 740 , - 2387 , - 4390 , - 1053 , - 3768 , - 1143 , - 4570 , - 2657 , - 1100 , - 5595 , - 4750 , - 4261 , - 4128 , - 4351 , - 4930 , - 169 , - 1460 , - 3107 , - 5110 , - 1773 , - 4488 , - 1863 , - 5290 , - 3377 , - 1820 , - 619 , - 5470 , - 4981 , - 4848 , - 5071 , - 5650 , - 889 , - 2180 , - 3827 , - 134 , - 2493 , - 5208 , - 2583 , - 314 , - 4097 , - 2540 , - 1339 , - 494 , - 5 , - 5568 , - 95 , - 674 , - 1609 , - 2900 , - 4547 , - 854 , - 3213 , - 232 , - 3303 , - 1034 , - 4817 , - 3260 , - 2059 , - 1214 , - 725 , - 592 , - 815 , - 1394 , - 2329 , - 3620 , - 5267 , - 1574 , - 3933 , - 952 , - 4023 , - 1754 , - 5537 , - 3980 , - 2779 , - 1934 , - 1445 , - 1312 , - 1535 , - 2114 , - 3049 , - 4340 , - 291 , - 2294 , - 4653 , - 1672 , - 4743 , - 2474 , - 561 , - 4700 , - 3499 , - 2654 , - 2165 , - 2032 , - 2255 , - 2834 , - 3769 , - 5060 , - 1011 , - 3014 , - 5373 , - 2392 , - 5463 , - 3194 , - 1281 , - 5420 , - 4219 , - 3374 , - 2885 , - 2752 , - 2975 , - 3554 , - 4489 , - 84 , - 1731 , - 3734 , - 397 , - 3112 , - 487 , - 3914 , - 2001 , - 444 , - 4939 , - 4094 , - 3605 , - 3472 , - 3695 , - 4274 , - 5209 , - 804 , - 2451 , - 4454 , - 1117 , - 3832 , - 1207 , - 4634 , - 2721 , - 1164 , - 5659 , - 4814 , - 4325 , - 4192 , - 4415 , - 4994 , - 233 , - 1524 , - 3171 , - 5174 , - 1837 , - 4552 , - 1927 , - 5354 , - 3441 , - 1884 , - 683 , - 5534 , - 5045 , - 4912 , - 5135 , - 18 , - 953 , - 2244 , - 3891 , - 198 , - 2557 , - 5272 , - 2647 , - 378 , - 4161 , - 2604 , - 1403 , - 558 , - 69 , - 5632 , - 159 , - 738 , - 1673 , - 2964 , - 4611 , - 918 , - 3277 , - 296 , - 3367 , - 1098 , - 4881 , - 3324 , - 2123 , - 1278 , - 789 , - 656 , - 879 , - 1458 , - 2393 , - 3684 , - 5331 , - 1638 , - 3997 , - 1016 , - 4087 , - 1818 , - 5601 , - 4044 , - 2843 , - 1998 , - 1509 , - 1376 , - 1599 , - 2178 , - 3113 , - 4404 , - 355 , - 2358 , - 4717 , - 1736 , - 4807 , - 2538 , - 625 , - 4764 , - 3563 , - 2718 , - 2229 , - 2096 , - 2319 , - 2898 , - 3833 , - 5124 , - 1075 , - 3078 , - 5437 , - 2456 , - 5527 , - 3258 , - 1345 , - 5484 , - 4283 , - 3438 , - 2949 , - 2816 , - 3039 , - 3618 , - 4553 , - 148 , - 1795 , - 3798 , - 461 , - 3176 , - 551 , - 3978 , - 2065 , - 508 , - 5003 , - 4158 , - 3669 , - 3536 , - 3759 , - 4338 , - 5273 , - 868 , - 2515 , - 4518 , - 1181 , - 3896 , - 1271 , - 4698 , - 2785 , - 1228 , - 27 , - 4878 , - 4389 , - 4256 , - 4479 , - 5058 , - 297 , - 1588 , - 3235 , - 5238 , - 1901 , - 4616 , - 1991 , - 5418 , - 3505 , - 1948 , - 747 , - 5598 , - 5109 , - 4976 , - 5199 , - 82 , - 1017 , - 2308 , - 3955 , - 262 , - 2621 , - 5336 , - 2711 , - 442 , - 4225 , - 2668 , - 1467 , - 622 , - 133 , - 0 , - 281 , - 802 , - 1563 , - 2564 , - 3805 , - 5286 , - 1247 , - 3208 , - 5409 , - 2090 , - 4771 , - 1932 , - 5093 , - 2734 , - 615 , - 4496 , - 2857 , - 1458 , - 299 , - 5140 , - 4461 , - 4022 , - 3823 , - 3864 , - 4145 , - 4666 , - 5427 , - 668 , - 1909 , - 3390 , - 5111 , - 1312 , - 3513 , - 194 , - 2875 , - 36 , - 3197 , - 838 , - 4479 , - 2600 , - 961 , - 5322 , - 4163 , - 3244 , - 2565 , - 2126 , - 1927 , - 1968 , - 2249 , - 2770 , - 3531 , - 4532 , - 13 , - 1494 , - 3215 , - 5176 , - 1617 , - 4058 , - 979 , - 3900 , - 1301 , - 4702 , - 2583 , - 704 , - 4825 , - 3426 , - 2267 , - 1348 , - 669 , - 230 , - 31 , - 72 , - 353 , - 874 , - 1635 , - 2636 , - 3877 , - 5358 , - 1319 , - 3280 , - 5481 , - 2162 , - 4843 , - 2004 , - 5165 , - 2806 , - 687 , - 4568 , - 2929 , - 1530 , - 371 , - 5212 , - 4533 , - 4094 , - 3895 , - 3936 , - 4217 , - 4738 , - 5499 , - 740 , - 1981 , - 3462 , - 5183 , - 1384 , - 3585 , - 266 , - 2947 , - 108 , - 3269 , - 910 , - 4551 , - 2672 , - 1033 , - 5394 , - 4235 , - 3316 , - 2637 , - 2198 , - 1999 , - 2040 , - 2321 , - 2842 , - 3603 , - 4604 , - 85 , - 1566 , - 3287 , - 5248 , - 1689 , - 4130 , - 1051 , - 3972 , - 1373 , - 4774 , - 2655 , - 776 , - 4897 , - 3498 , - 2339 , - 1420 , - 741 , - 302 , - 103 , - 144 , - 425 , - 946 , - 1707 , - 2708 , - 3949 , - 5430 , - 1391 , - 3352 , - 5553 , - 2234 , - 4915 , - 2076 , - 5237 , - 2878 , - 759 , - 4640 , - 3001 , - 1602 , - 443 , - 5284 , - 4605 , - 4166 , - 3967 , - 4008 , - 4289 , - 4810 , - 5571 , - 812 , - 2053 , - 3534 , - 5255 , - 1456 , - 3657 , - 338 , - 3019 , - 180 , - 3341 , - 982 , - 4623 , - 2744 , - 1105 , - 5466 , - 4307 , - 3388 , - 2709 , - 2270 , - 2071 , - 2112 , - 2393 , - 2914 , - 3675 , - 4676 , - 157 , - 1638 , - 3359 , - 5320 , - 1761 , - 4202 , - 1123 , - 4044 , - 1445 , - 4846 , - 2727 , - 848 , - 4969 , - 3570 , - 2411 , - 1492 , - 813 , - 374 , - 175 , - 216 , - 497 , - 1018 , - 1779 , - 2780 , - 4021 , - 5502 , - 1463 , - 3424 , - 5625 , - 2306 , - 4987 , - 2148 , - 5309 , - 2950 , - 831 , - 4712 , - 3073 , - 1674 , - 515 , - 5356 , - 4677 , - 4238 , - 4039 , - 4080 , - 4361 , - 4882 , - 5643 , - 884 , - 2125 , - 3606 , - 5327 , - 1528 , - 3729 , - 410 , - 3091 , - 252 , - 3413 , - 1054 , - 4695 , - 2816 , - 1177 , - 5538 , - 4379 , - 3460 , - 2781 , - 2342 , - 2143 , - 2184 , - 2465 , - 2986 , - 3747 , - 4748 , - 229 , - 1710 , - 3431 , - 5392 , - 1833 , - 4274 , - 1195 , - 4116 , - 1517 , - 4918 , - 2799 , - 920 , - 5041 , - 3642 , - 2483 , - 1564 , - 885 , - 446 , - 247 , - 288 , - 569 , - 1090 , - 1851 , - 2852 , - 4093 , - 5574 , - 1535 , - 3496 , - 5697 , - 2378 , - 5059 , - 2220 , - 5381 , - 3022 , - 903 , - 4784 , - 3145 , - 1746 , - 587 , - 5428 , - 4749 , - 4310 , - 4111 , - 4152 , - 4433 , - 4954 , - 5715 , - 956 , - 2197 , - 3678 , - 5399 , - 1600 , - 3801 , - 482 , - 3163 , - 324 , - 3485 , - 1126 , - 4767 , - 2888 , - 1249 , - 5610 , - 4451 , - 3532 , - 2853 , - 2414 , - 2215 , - 2256 , - 2537 , - 3058 , - 3819 , - 4820 , - 301 , - 1782 , - 3503 , - 5464 , - 1905 , - 4346 , - 1267 , - 4188 , - 1589 , - 4990 , - 2871 , - 992 , - 5113 , - 3714 , - 2555 , - 1636 , - 957 , - 518 , - 319 , - 360 , - 641 , - 1162 , - 1923 , - 2924 , - 4165 , - 5646 , - 1607 , - 3568 , - 9 , - 2450 , - 5131 , - 2292 , - 5453 , - 3094 , - 975 , - 4856 , - 3217 , - 1818 , - 659 , - 5500 , - 4821 , - 4382 , - 4183 , - 4224 , - 4505 , - 5026 , - 27 , - 1028 , - 2269 , - 3750 , - 5471 , - 1672 , - 3873 , - 554 , - 3235 , - 396 , - 3557 , - 1198 , - 4839 , - 2960 , - 1321 , - 5682 , - 4523 , - 3604 , - 2925 , - 2486 , - 2287 , - 2328 , - 2609 , - 3130 , - 3891 , - 4892 , - 373 , - 1854 , - 3575 , - 5536 , - 1977 , - 4418 , - 1339 , - 4260 , - 1661 , - 5062 , - 2943 , - 1064 , - 5185 , - 3786 , - 2627 , - 1708 , - 1029 , - 590 , - 391 , - 432 , - 713 , - 1234 , - 1995 , - 2996 , - 4237 , - 5718 , - 1679 , - 3640 , - 81 , - 2522 , - 5203 , - 2364 , - 5525 , - 3166 , - 1047 , - 4928 , - 3289 , - 1890 , - 731 , - 5572 , - 4893 , - 4454 , - 4255 , - 4296 , - 4577 , - 5098 , - 99 , - 1100 , - 2341 , - 3822 , - 5543 , - 1744 , - 3945 , - 626 , - 3307 , - 468 , - 3629 , - 1270 , - 4911 , - 3032 , - 1393 , - 5754 , - 4595 , - 3676 , - 2997 , - 2558 , - 2359 , - 2400 , - 2681 , - 3202 , - 3963 , - 4964 , - 445 , - 1926 , - 3647 , - 5608 , - 2049 , - 4490 , - 1411 , - 4332 , - 1733 , - 5134 , - 3015 , - 1136 , - 5257 , - 3858 , - 2699 , - 1780 , - 1101 , - 662 , - 463 , - 504 , - 785 , - 1306 , - 2067 , - 3068 , - 4309 , - 30 , - 1751 , - 3712 , - 153 , - 2594 , - 5275 , - 2436 , - 5597 , - 3238 , - 1119 , - 5000 , - 3361 , - 1962 , - 803 , - 5644 , - 4965 , - 4526 , - 4327 , - 4368 , - 4649 , - 5170 , - 171 , - 1172 , - 2413 , - 3894 , - 5615 , - 1816 , - 4017 , - 698 , - 3379 , - 540 , - 3701 , - 1342 , - 4983 , - 3104 , - 1465 , - 66 , - 4667 , - 3748 , - 3069 , - 2630 , - 2431 , - 2472 , - 2753 , - 3274 , - 4035 , - 5036 , - 517 , - 1998 , - 3719 , - 5680 , - 2121 , - 4562 , - 1483 , - 4404 , - 1805 , - 5206 , - 3087 , - 1208 , - 5329 , - 3930 , - 2771 , - 1852 , - 1173 , - 734 , - 535 , - 576 , - 857 , - 1378 , - 2139 , - 3140 , - 4381 , - 102 , - 1823 , - 3784 , - 225 , - 2666 , - 5347 , - 2508 , - 5669 , - 3310 , - 1191 , - 5072 , - 3433 , - 2034 , - 875 , - 5716 , - 5037 , - 4598 , - 4399 , - 4440 , - 4721 , - 5242 , - 243 , - 1244 , - 2485 , - 3966 , - 5687 , - 1888 , - 4089 , - 770 , - 3451 , - 612 , - 3773 , - 1414 , - 5055 , - 3176 , - 1537 , - 138 , - 4739 , - 3820 , - 3141 , - 2702 , - 2503 , - 2544 , - 2825 , - 3346 , - 4107 , - 5108 , - 589 , - 2070 , - 3791 , - 5752 , - 2193 , - 4634 , - 1555 , - 4476 , - 1877 , - 5278 , - 3159 , - 1280 , - 5401 , - 4002 , - 2843 , - 1924 , - 1245 , - 806 , - 607 , - 648 , - 929 , - 1450 , - 2211 , - 3212 , - 4453 , - 174 , - 1895 , - 3856 , - 297 , - 2738 , - 5419 , - 2580 , - 5741 , - 3382 , - 1263 , - 5144 , - 3505 , - 2106 , - 947 , - 28 , - 5109 , - 4670 , - 4471 , - 4512 , - 4793 , - 5314 , - 315 , - 1316 , - 2557 , - 4038 , - 5759 , - 1960 , - 4161 , - 842 , - 3523 , - 684 , - 3845 , - 1486 , - 5127 , - 3248 , - 1609 , - 210 , - 4811 , - 3892 , - 3213 , - 2774 , - 2575 , - 2616 , - 2897 , - 3418 , - 4179 , - 5180 , - 661 , - 2142 , - 3863 , - 64 , - 2265 , - 4706 , - 1627 , - 4548 , - 1949 , - 5350 , - 3231 , - 1352 , - 5473 , - 4074 , - 2915 , - 1996 , - 1317 , - 878 , - 679 , - 720 , - 1001 , - 1522 , - 2283 , - 3284 , - 4525 , - 246 , - 1967 , - 3928 , - 369 , - 2810 , - 5491 , - 2652 , - 53 , - 3454 , - 1335 , - 5216 , - 3577 , - 2178 , - 1019 , - 100 , - 5181 , - 4742 , - 4543 , - 4584 , - 4865 , - 5386 , - 387 , - 1388 , - 2629 , - 4110 , - 71 , - 2032 , - 4233 , - 914 , - 3595 , - 756 , - 3917 , - 1558 , - 5199 , - 3320 , - 1681 , - 282 , - 4883 , - 3964 , - 3285 , - 2846 , - 2647 , - 2688 , - 2969 , - 3490 , - 4251 , - 5252 , - 733 , - 2214 , - 3935 , - 136 , - 2337 , - 4778 , - 1699 , - 4620 , - 2021 , - 5422 , - 3303 , - 1424 , - 5545 , - 4146 , - 2987 , - 2068 , - 1389 , - 950 , - 751 , - 792 , - 1073 , - 1594 , - 2355 , - 3356 , - 4597 , - 318 , - 2039 , - 4000 , - 441 , - 2882 , - 5563 , - 2724 , - 125 , - 3526 , - 1407 , - 5288 , - 3649 , - 2250 , - 1091 , - 172 , - 5253 , - 4814 , - 4615 , - 4656 , - 4937 , - 5458 , - 459 , - 1460 , - 2701 , - 4182 , - 143 , - 2104 , - 4305 , - 986 , - 3667 , - 828 , - 3989 , - 1630 , - 5271 , - 3392 , - 1753 , - 354 , - 4955 , - 4036 , - 3357 , - 2918 , - 2719 , - 2760 , - 3041 , - 3562 , - 4323 , - 5324 , - 805 , - 2286 , - 4007 , - 208 , - 2409 , - 4850 , - 1771 , - 4692 , - 2093 , - 5494 , - 3375 , - 1496 , - 5617 , - 4218 , - 3059 , - 2140 , - 1461 , - 1022 , - 823 , - 864 , - 1145 , - 1666 , - 2427 , - 3428 , - 4669 , - 390 , - 2111 , - 4072 , - 513 , - 2954 , - 5635 , - 2796 , - 197 , - 3598 , - 1479 , - 5360 , - 3721 , - 2322 , - 1163 , - 244 , - 5325 , - 4886 , - 4687 , - 4728 , - 5009 , - 5530 , - 531 , - 1532 , - 2773 , - 4254 , - 215 , - 2176 , - 4377 , - 1058 , - 3739 , - 900 , - 4061 , - 1702 , - 5343 , - 3464 , - 1825 , - 426 , - 5027 , - 4108 , - 3429 , - 2990 , - 2791 , - 2832 , - 3113 , - 3634 , - 4395 , - 5396 , - 877 , - 2358 , - 4079 , - 280 , - 2481 , - 4922 , - 1843 , - 4764 , - 2165 , - 5566 , - 3447 , - 1568 , - 5689 , - 4290 , - 3131 , - 2212 , - 1533 , - 1094 , - 895 , - 936 , - 1217 , - 1738 , - 2499 , - 3500 , - 4741 , - 462 , - 2183 , - 4144 , - 585 , - 3026 , - 5707 , - 2868 , - 269 , - 3670 , - 1551 , - 5432 , - 3793 , - 2394 , - 1235 , - 316 , - 5397 , - 4958 , - 4759 , - 4800 , - 5081 , - 5602 , - 603 , - 1604 , - 2845 , - 4326 , - 287 , - 2248 , - 4449 , - 1130 , - 3811 , - 972 , - 4133 , - 1774 , - 5415 , - 3536 , - 1897 , - 498 , - 5099 , - 4180 , - 3501 , - 3062 , - 2863 , - 2904 , - 3185 , - 3706 , - 4467 , - 5468 , - 949 , - 2430 , - 4151 , - 352 , - 2553 , - 4994 , - 1915 , - 4836 , - 2237 , - 5638 , - 3519 , - 1640 , - 1 , - 4362 , - 3203 , - 2284 , - 1605 , - 1166 , - 967 , - 1008 , - 1289 , - 1810 , - 2571 , - 3572 , - 4813 , - 534 , - 2255 , - 4216 , - 657 , - 3098 , - 19 , - 2940 , - 341 , - 3742 , - 1623 , - 5504 , - 3865 , - 2466 , - 1307 , - 388 , - 5469 , - 5030 , - 4831 , - 4872 , - 5153 , - 5674 , - 675 , - 1676 , - 2917 , - 4398 , - 359 , - 2320 , - 4521 , - 1202 , - 3883 , - 1044 , - 4205 , - 1846 , - 5487 , - 3608 , - 1969 , - 570 , - 5171 , - 4252 , - 3573 , - 3134 , - 2935 , - 2976 , - 3257 , - 3778 , - 4539 , - 5540 , - 1021 , - 2502 , - 4223 , - 424 , - 2625 , - 5066 , - 1987 , - 4908 , - 2309 , - 5710 , - 3591 , - 1712 , - 73 , - 4434 , - 3275 , - 2356 , - 1677 , - 1238 , - 1039 , - 1080 , - 1361 , - 1882 , - 2643 , - 3644 , - 4885 , - 606 , - 2327 , - 4288 , - 729 , - 3170 , - 91 , - 3012 , - 413 , - 3814 , - 1695 , - 5576 , - 3937 , - 2538 , - 1379 , - 460 , - 5541 , - 5102 , - 4903 , - 4944 , - 5225 , - 5746 , - 747 , - 1748 , - 2989 , - 4470 , - 431 , - 2392 , - 4593 , - 1274 , - 3955 , - 1116 , - 4277 , - 1918 , - 5559 , - 3680 , - 2041 , - 642 , - 5243 , - 4324 , - 3645 , - 3206 , - 3007 , - 3048 , - 3329 , - 3850 , - 4611 , - 5612 , - 1093 , - 2574 , - 4295 , - 496 , - 2697 , - 5138 , - 2059 , - 4980 , - 2381 , - 22 , - 3663 , - 1784 , - 145 , - 4506 , - 3347 , - 2428 , - 1749 , - 1310 , - 1111 , - 1152 , - 1433 , - 1954 , - 2715 , - 3716 , - 4957 , - 678 , - 2399 , - 4360 , - 801 , - 3242 , - 163 , - 3084 , - 485 , - 3886 , - 1767 , - 5648 , - 4009 , - 2610 , - 1451 , - 532 , - 5613 , - 5174 , - 4975 , - 5016 , - 5297 , - 58 , - 819 , - 1820 , - 3061 , - 4542 , - 503 , - 2464 , - 4665 , - 1346 , - 4027 , - 1188 , - 4349 , - 1990 , - 5631 , - 3752 , - 2113 , - 714 , - 5315 , - 4396 , - 3717 , - 3278 , - 3079 , - 3120 , - 3401 , - 3922 , - 4683 , - 5684 , - 1165 , - 2646 , - 4367 , - 568 , - 2769 , - 5210 , - 2131 , - 5052 , - 2453 , - 94 , - 3735 , - 1856 , - 217 , - 4578 , - 3419 , - 2500 , - 1821 , - 1382 , - 1183 , - 1224 , - 1505 , - 2026 , - 2787 , - 3788 , - 5029 , - 750 , - 2471 , - 4432 , - 873 , - 3314 , - 235 , - 3156 , - 557 , - 3958 , - 1839 , - 5720 , - 4081 , - 2682 , - 1523 , - 604 , - 5685 , - 5246 , - 5047 , - 5088 , - 5369 , - 130 , - 891 , - 1892 , - 3133 , - 4614 , - 575 , - 2536 , - 4737 , - 1418 , - 4099 , - 1260 , - 4421 , - 2062 , - 5703 , - 3824 , - 2185 , - 786 , - 5387 , - 4468 , - 3789 , - 3350 , - 3151 , - 3192 , - 3473 , - 3994 , - 4755 , - 5756 , - 1237 , - 2718 , - 4439 , - 640 , - 2841 , - 5282 , - 2203 , - 5124 , - 2525 , - 166 , - 3807 , - 1928 , - 289 , - 4650 , - 3491 , - 2572 , - 1893 , - 1454 , - 1255 , - 1296 , - 1577 , - 2098 , - 2859 , - 3860 , - 5101 , - 822 , - 2543 , - 4504 , - 945 , - 3386 , - 307 , - 3228 , - 629 , - 4030 , - 1911 , - 32 , - 4153 , - 2754 , - 1595 , - 676 , - 5757 , - 5318 , - 5119 , - 5160 , - 5441 , - 202 , - 963 , - 1964 , - 3205 , - 4686 , - 647 , - 2608 , - 4809 , - 1490 , - 4171 , - 1332 , - 4493 , - 2134 , - 15 , - 3896 , - 2257 , - 858 , - 5459 , - 4540 , - 3861 , - 3422 , - 3223 , - 3264 , - 3545 , - 4066 , - 4827 , - 68 , - 1309 , - 2790 , - 4511 , - 712 , - 2913 , - 5354 , - 2275 , - 5196 , - 2597 , - 238 , - 3879 , - 2000 , - 361 , - 4722 , - 3563 , - 2644 , - 1965 , - 1526 , - 1327 , - 1368 , - 1649 , - 2170 , - 2931 , - 3932 , - 5173 , - 894 , - 2615 , - 4576 , - 1017 , - 3458 , - 379 , - 3300 , - 701 , - 4102 , - 1983 , - 104 , - 4225 , - 2826 , - 1667 , - 748 , - 69 , - 5390 , - 5191 , - 5232 , - 5513 , - 274 , - 1035 , - 2036 , - 3277 , - 4758 , - 719 , - 2680 , - 4881 , - 1562 , - 4243 , - 1404 , - 4565 , - 2206 , - 87 , - 3968 , - 2329 , - 930 , - 5531 , - 4612 , - 3933 , - 3494 , - 3295 , - 3336 , - 3617 , - 4138 , - 4899 , - 140 , - 1381 , - 2862 , - 4583 , - 784 , - 2985 , - 5426 , - 2347 , - 5268 , - 2669 , - 310 , - 3951 , - 2072 , - 433 , - 4794 , - 3635 , - 2716 , - 2037 , - 1598 , - 1399 , - 1440 , - 1721 , - 2242 , - 3003 , - 4004 , - 5245 , - 966 , - 2687 , - 4648 , - 1089 , - 3530 , - 451 , - 3372 , - 773 , - 4174 , - 2055 , - 176 , - 4297 , - 2898 , - 1739 , - 820 , - 141 , - 5462 , - 5263 , - 5304 , - 5585 , - 346 , - 1107 , - 2108 , - 3349 , - 4830 , - 791 , - 2752 , - 4953 , - 1634 , - 4315 , - 1476 , - 4637 , - 2278 , - 159 , - 4040 , - 2401 , - 1002 , - 5603 , - 4684 , - 4005 , - 3566 , - 3367 , - 3408 , - 3689 , - 4210 , - 4971 , - 212 , - 1453 , - 2934 , - 4655 , - 856 , - 3057 , - 5498 , - 2419 , - 5340 , - 2741 , - 382 , - 4023 , - 2144 , - 505 , - 4866 , - 3707 , - 2788 , - 2109 , - 1670 , - 1471 , - 1512 , - 1793 , - 2314 , - 3075 , - 4076 , - 5317 , - 1038 , - 2759 , - 4720 , - 1161 , - 3602 , - 523 , - 3444 , - 845 , - 4246 , - 2127 , - 248 , - 4369 , - 2970 , - 1811 , - 892 , - 213 , - 5534 , - 5335 , - 5376 , - 5657 , - 418 , - 1179 , - 2180 , - 3421 , - 4902 , - 863 , - 2824 , - 5025 , - 1706 , - 4387 , - 1548 , - 4709 , - 2350 , - 231 , - 4112 , - 2473 , - 1074 , - 5675 , - 4756 , - 4077 , - 3638 , - 3439 , - 3480 , - 3761 , - 4282 , - 5043 , - 284 , - 1525 , - 3006 , - 4727 , - 928 , - 3129 , - 5570 , - 2491 , - 5412 , - 2813 , - 454 , - 4095 , - 2216 , - 577 , - 4938 , - 3779 , - 2860 , - 2181 , - 1742 , - 1543 , - 1584 , - 1865 , - 2386 , - 3147 , - 4148 , - 5389 , - 1110 , - 2831 , - 4792 , - 1233 , - 3674 , - 595 , - 3516 , - 917 , - 4318 , - 2199 , - 320 , - 4441 , - 3042 , - 1883 , - 964 , - 285 , - 5606 , - 5407 , - 5448 , - 5729 , - 490 , - 1251 , - 2252 , - 3493 , - 4974 , - 935 , - 2896 , - 5097 , - 1778 , - 4459 , - 1620 , - 4781 , - 2422 , - 303 , - 4184 , - 2545 , - 1146 , - 5747 , - 4828 , - 4149 , - 3710 , - 3511 , - 3552 , - 3833 , - 4354 , - 5115 , - 356 , - 1597 , - 3078 , - 4799 , - 1000 , - 3201 , - 5642 , - 2563 , - 5484 , - 2885 , - 526 , - 4167 , - 2288 , - 649 , - 5010 , - 3851 , - 2932 , - 2253 , - 1814 , - 1615 , - 1656 , - 1937 , - 2458 , - 3219 , - 4220 , - 5461 , - 1182 , - 2903 , - 4864 , - 1305 , - 3746 , - 667 , - 3588 , - 989 , - 4390 , - 2271 , - 392 , - 4513 , - 3114 , - 1955 , - 1036 , - 357 , - 5678 , - 5479 , - 5520 , - 41 , - 562 , - 1323 , - 2324 , - 3565 , - 5046 , - 1007 , - 2968 , - 5169 , - 1850 , - 4531 , - 1692 , - 4853 , - 2494 , - 375 , - 4256 , - 2617 , - 1218 , - 59 , - 4900 , - 4221 , - 3782 , - 3583 , - 3624 , - 3905 , - 4426 , - 5187 , - 428 , - 1669 , - 3150 , - 4871 , - 1072 , - 3273 , - 5714 , - 2635 , - 5556 , - 2957 , - 598 , - 4239 , - 2360 , - 721 , - 5082 , - 3923 , - 3004 , - 2325 , - 1886 , - 1687 , - 1728 , - 2009 , - 2530 , - 3291 , - 4292 , - 5533 , - 1254 , - 2975 , - 4936 , - 1377 , - 3818 , - 739 , - 3660 , - 1061 , - 4462 , - 2343 , - 464 , - 4585 , - 3186 , - 2027 , - 1108 , - 429 , - 5750 , - 5551 , - 5592 , - 113 , - 634 , - 1395 , - 2396 , - 3637 , - 5118 , - 1079 , - 3040 , - 5241 , - 1922 , - 4603 , - 1764 , - 4925 , - 2566 , - 447 , - 4328 , - 2689 , - 1290 , - 131 , - 4972 , - 4293 , - 3854 , - 3655 , - 3696 , - 3977 , - 4498 , - 5259 , - 500 , - 1741 , - 3222 , - 4943 , - 1144 , - 3345 , - 26 , - 2707 , - 5628 , - 3029 , - 670 , - 4311 , - 2432 , - 793 , - 5154 , - 3995 , - 3076 , - 2397 , - 1958 , - 1759 , - 1800 , - 2081 , - 2602 , - 3363 , - 4364 , - 5605 , - 1326 , - 3047 , - 5008 , - 1449 , - 3890 , - 811 , - 3732 , - 1133 , - 4534 , - 2415 , - 536 , - 4657 , - 3258 , - 2099 , - 1180 , - 501 , - 62 , - 5623 , - 5664 , - 185 , - 706 , - 1467 , - 2468 , - 3709 , - 5190 , - 1151 , - 3112 , - 5313 , - 1994 , - 4675 , - 1836 , - 4997 , - 2638 , - 519 , - 4400 , - 2761 , - 1362 , - 203 , - 5044 , - 4365 , - 3926 , - 3727 , - 3768 , - 4049 , - 4570 , - 5331 , - 572 , - 1813 , - 3294 , - 5015 , - 1216 , - 3417 , - 98 , - 2779 , - 5700 , - 3101 , - 742 , - 4383 , - 2504 , - 865 , - 5226 , - 4067 , - 3148 , - 2469 , - 2030 , - 1831 , - 1872 , - 2153 , - 2674 , - 3435 , - 4436 , - 5677 , - 1398 , - 3119 , - 5080 , - 1521 , - 3962 , - 883 , - 3804 , - 1205 , - 4606 , - 2487 , - 608 , - 4729 , - 3330 , - 2171 , - 1252 , - 573 , - 134 , - 5695 , - 5736 , - 257 , - 778 , - 1539 , - 2540 , - 3781 , - 5262 , - 1223 , - 3184 , - 5385 , - 2066 , - 4747 , - 1908 , - 5069 , - 2710 , - 591 , - 4472 , - 2833 , - 1434 , - 275 , - 5116 , - 4437 , - 3998 , - 3799 , - 3840 , - 4121 , - 4642 , - 5403 , - 644 , - 1885 , - 3366 , - 5087 , - 1288 , - 3489 , - 170 , - 2851 , - 12 , - 3173 , - 814 , - 4455 , - 2576 , - 937 , - 5298 , - 4139 , - 3220 , - 2541 , - 2102 , - 1903 , - 1944 , - 2225 , - 2746 , - 3507 , - 4508 , - 5749 , - 1470 , - 3191 , - 5152 , - 1593 , - 4034 , - 955 , - 3876 , - 1277 , - 4678 , - 2559 , - 680 , - 4801 , - 3402 , - 2243 , - 1324 , - 645 , - 206 , - 7 , - 48 , - 329 , - 850 , - 1611 , - 2612 , - 3853 , - 5334 , - 1295 , - 3256 , - 5457 , - 2138 , - 4819 , - 1980 , - 5141 , - 2782 , - 663 , - 4544 , - 2905 , - 1506 , - 347 , - 5188 , - 4509 , - 4070 , - 3871 , - 3912 , - 4193 , - 4714 , - 5475 , - 716 , - 1957 , - 3438 , - 5159 , - 1360 , - 3561 , - 242 , - 2923 , - 84 , - 3245 , - 886 , - 4527 , - 2648 , - 1009 , - 5370 , - 4211 , - 3292 , - 2613 , - 2174 , - 1975 , - 2016 , - 2297 , - 2818 , - 3579 , - 4580 , - 61 , - 1542 , - 3263 , - 5224 , - 1665 , - 4106 , - 1027 , - 3948 , - 1349 , - 4750 , - 2631 , - 752 , - 4873 , - 3474 , - 2315 , - 1396 , - 717 , - 278 , - 79 , - 120 , - 401 , - 922 , - 1683 , - 2684 , - 3925 , - 5406 , - 1367 , - 3328 , - 5529 , - 2210 , - 4891 , - 2052 , - 5213 , - 2854 , - 735 , - 4616 , - 2977 , - 1578 , - 419 , - 5260 , - 4581 , - 4142 , - 3943 , - 3984 , - 4265 , - 4786 , - 5547 , - 788 , - 2029 , - 3510 , - 5231 , - 1432 , - 3633 , - 314 , - 2995 , - 156 , - 3317 , - 958 , - 4599 , - 2720 , - 1081 , - 5442 , - 4283 , - 3364 , - 2685 , - 2246 , - 2047 , - 2088 , - 2369 , - 2890 , - 3651 , - 4652 , - 133 , - 1614 , - 3335 , - 5296 , - 1737 , - 4178 , - 1099 , - 4020 , - 1421 , - 4822 , - 2703 , - 824 , - 4945 , - 3546 , - 2387 , - 1468 , - 789 , - 350 , - 151 , - 192 , - 473 , - 994 , - 1755 , - 2756 , - 3997 , - 5478 , - 1439 , - 3400 , - 5601 , - 2282 , - 4963 , - 2124 , - 5285 , - 2926 , - 807 , - 4688 , - 3049 , - 1650 , - 491 , - 5332 , - 4653 , - 4214 , - 4015 , - 4056 , - 4337 , - 4858 , - 5619 , - 860 , - 2101 , - 3582 , - 5303 , - 1504 , - 3705 , - 386 , - 3067 , - 228 , - 3389 , - 1030 , - 4671 , - 2792 , - 1153 , - 5514 , - 4355 , - 3436 , - 2757 , - 2318 , - 2119 , - 2160 , - 2441 , - 2962 , - 3723 , - 4724 , - 205 , - 1686 , - 3407 , - 5368 , - 1809 , - 4250 , - 1171 , - 4092 , - 1493 , - 4894 , - 2775 , - 896 , - 5017 , - 3618 , - 2459 , - 1540 , - 861 , - 422 , - 223 , - 264 , - 545 , - 1066 , - 1827 , - 2828 , - 4069 , - 5550 , - 1511 , - 3472 , - 5673 , - 2354 , - 5035 , - 2196 , - 5357 , - 2998 , - 879 , - 4760 , - 3121 , - 1722 , - 563 , - 5404 , - 4725 , - 4286 , - 4087 , - 4128 , - 4409 , - 4930 , - 5691 , - 932 , - 2173 , - 3654 , - 5375 , - 1576 , - 3777 , - 458 , - 3139 , - 300 , - 3461 , - 1102 , - 4743 , - 2864 , - 1225 , - 5586 , - 4427 , - 3508 , - 2829 , - 2390 , - 2191 , - 2232 , - 2513 , - 3034 , - 3795 , - 4796 , - 277 , - 1758 , - 3479 , - 5440 , - 1881 , - 4322 , - 1243 , - 4164 , - 1565 , - 4966 , - 2847 , - 968 , - 5089 , - 3690 , - 2531 , - 1612 , - 933 , - 494 , - 295 , - 336 , - 617 , - 1138 , - 1899 , - 2900 , - 4141 , - 5622 , - 1583 , - 3544 , - 5745 , - 2426 , - 5107 , - 2268 , - 5429 , - 3070 , - 951 , - 4832 , - 3193 , - 1794 , - 635 , - 5476 , - 4797 , - 4358 , - 4159 , - 4200 , - 4481 , - 5002 , - 3 , - 1004 , - 2245 , - 3726 , - 5447 , - 1648 , - 3849 , - 530 , - 3211 , - 372 , - 3533 , - 1174 , - 4815 , - 2936 , - 1297 , - 5658 , - 4499 , - 3580 , - 2901 , - 2462 , - 2263 , - 2304 , - 2585 , - 3106 , - 3867 , - 4868 , - 349 , - 1830 , - 3551 , - 5512 , - 1953 , - 4394 , - 1315 , - 4236 , - 1637 , - 5038 , - 2919 , - 1040 , - 5161 , - 3762 , - 2603 , - 1684 , - 1005 , - 566 , - 367 , - 408 , - 689 , - 1210 , - 1971 , - 2972 , - 4213 , - 5694 , - 1655 , - 3616 , - 57 , - 2498 , - 5179 , - 2340 , - 5501 , - 3142 , - 1023 , - 4904 , - 3265 , - 1866 , - 707 , - 5548 , - 4869 , - 4430 , - 4231 , - 4272 , - 4553 , - 5074 , - 75 , - 1076 , - 2317 , - 3798 , - 5519 , - 1720 , - 3921 , - 602 , - 3283 , - 444 , - 3605 , - 1246 , - 4887 , - 3008 , - 1369 , - 5730 , - 4571 , - 3652 , - 2973 , - 2534 , - 2335 , - 2376 , - 2657 , - 3178 , - 3939 , - 4940 , - 421 , - 1902 , - 3623 , - 5584 , - 2025 , - 4466 , - 1387 , - 4308 , - 1709 , - 5110 , - 2991 , - 1112 , - 5233 , - 3834 , - 2675 , - 1756 , - 1077 , - 638 , - 439 , - 480 , - 761 , - 1282 , - 2043 , - 3044 , - 4285 , - 6 , - 1727 , - 3688 , - 129 , - 2570 , - 5251 , - 2412 , - 5573 , - 3214 , - 1095 , - 4976 , - 3337 , - 1938 , - 779 , - 5620 , - 4941 , - 4502 , - 4303 , - 4344 , - 4625 , - 5146 , - 147 , - 1148 , - 2389 , - 3870 , - 5591 , - 1792 , - 3993 , - 674 , - 3355 , - 516 , - 3677 , - 1318 , - 4959 , - 3080 , - 1441 , - 42 , - 4643 , - 3724 , - 3045 , - 2606 , - 2407 , - 2448 , - 2729 , - 3250 , - 4011 , - 5012 , - 493 , - 1974 , - 3695 , - 5656 , - 2097 , - 4538 , - 1459 , - 4380 , - 1781 , - 5182 , - 3063 , - 1184 , - 5305 , - 3906 , - 2747 , - 1828 , - 1149 , - 710 , - 511 , - 552 , - 833 , - 1354 , - 2115 , - 3116 , - 4357 , - 78 , - 1799 , - 3760 , - 201 , - 2642 , - 5323 , - 2484 , - 5645 , - 3286 , - 1167 , - 5048 , - 3409 , - 2010 , - 851 , - 5692 , - 5013 , - 4574 , - 4375 , - 4416 , - 4697 , - 5218 , - 219 , - 1220 , - 2461 , - 3942 , - 5663 , - 1864 , - 4065 , - 746 , - 3427 , - 588 , - 3749 , - 1390 , - 5031 , - 3152 , - 1513 , - 114 , - 4715 , - 3796 , - 3117 , - 2678 , - 2479 , - 2520 , - 2801 , - 3322 , - 4083 , - 5084 , - 565 , - 2046 , - 3767 , - 5728 , - 2169 , - 4610 , - 1531 , - 4452 , - 1853 , - 5254 , - 3135 , - 1256 , - 5377 , - 3978 , - 2819 , - 1900 , - 1221 , - 782 , - 583 , - 624 , - 905 , - 1426 , - 2187 , - 3188 , - 4429 , - 150 , - 1871 , - 3832 , - 273 , - 2714 , - 5395 , - 2556 , - 5717 , - 3358 , - 1239 , - 5120 , - 3481 , - 2082 , - 923 , - 4 , - 5085 , - 4646 , - 4447 , - 4488 , - 4769 , - 5290 , - 291 , - 1292 , - 2533 , - 4014 , - 5735 , - 1936 , - 4137 , - 818 , - 3499 , - 660 , - 3821 , - 1462 , - 5103 , - 3224 , - 1585 , - 186 , - 4787 , - 3868 , - 3189 , - 2750 , - 2551 , - 2592 , - 2873 , - 3394 , - 4155 , - 5156 , - 637 , - 2118 , - 3839 , - 40 , - 2241 , - 4682 , - 1603 , - 4524 , - 1925 , - 5326 , - 3207 , - 1328 , - 5449 , - 4050 , - 2891 , - 1972 , - 1293 , - 854 , - 655 , - 696 , - 977 , - 1498 , - 2259 , - 3260 , - 4501 , - 222 , - 1943 , - 3904 , - 345 , - 2786 , - 5467 , - 2628 , - 29 , - 3430 , - 1311 , - 5192 , - 3553 , - 2154 , - 995 , - 76 , - 5157 , - 4718 , - 4519 , - 4560 , - 4841 , - 5362 , - 363 , - 1364 , - 2605 , - 4086 , - 47 , - 2008 , - 4209 , - 890 , - 3571 , - 732 , - 3893 , - 1534 , - 5175 , - 3296 , - 1657 , - 258 , - 4859 , - 3940 , - 3261 , - 2822 , - 2623 , - 2664 , - 2945 , - 3466 , - 4227 , - 5228 , - 709 , - 2190 , - 3911 , - 112 , - 2313 , - 4754 , - 1675 , - 4596 , - 1997 , - 5398 , - 3279 , - 1400 , - 5521 , - 4122 , - 2963 , - 2044 , - 1365 , - 926 , - 727 , - 768 , - 1049 , - 1570 , - 2331 , - 3332 , - 4573 , - 294 , - 2015 , - 3976 , - 417 , - 2858 , - 5539 , - 2700 , - 101 , - 3502 , - 1383 , - 5264 , - 3625 , - 2226 , - 1067 , - 148 , - 5229 , - 4790 , - 4591 , - 4632 , - 4913 , - 5434 , - 435 , - 1436 , - 2677 , - 4158 , - 119 , - 2080 , - 4281 , - 962 , - 3643 , - 804 , - 3965 , - 1606 , - 5247 , - 3368 , - 1729 , - 330 , - 4931 , - 4012 , - 3333 , - 2894 , - 2695 , - 2736 , - 3017 , - 3538 , - 4299 , - 5300 , - 781 , - 2262 , - 3983 , - 184 , - 2385 , - 4826 , - 1747 , - 4668 , - 2069 , - 5470 , - 3351 , - 1472 , - 5593 , - 4194 , - 3035 , - 2116 , - 1437 , - 998 , - 799 , - 840 , - 1121 , - 1642 , - 2403 , - 3404 , - 4645 , - 366 , - 2087 , - 4048 , - 489 , - 2930 , - 5611 , - 2772 , - 173 , - 3574 , - 1455 , - 5336 , - 3697 , - 2298 , - 1139 , - 220 , - 5301 , - 4862 , - 4663 , - 4704 , - 4985 , - 5506 , - 507 , - 1508 , - 2749 , - 4230 , - 191 , - 2152 , - 4353 , - 1034 , - 3715 , - 876 , - 4037 , - 1678 , - 5319 , - 3440 , - 1801 , - 402 , - 5003 , - 4084 , - 3405 , - 2966 , - 2767 , - 2808 , - 3089 , - 3610 , - 4371 , - 5372 , - 853 , - 2334 , - 4055 , - 256 , - 2457 , - 4898 , - 1819 , - 4740 , - 2141 , - 5542 , - 3423 , - 1544 , - 5665 , - 4266 , - 3107 , - 2188 , - 1509 , - 1070 , - 871 , - 912 , - 1193 , - 1714 , - 2475 , - 3476 , - 4717 , - 438 , - 2159 , - 4120 , - 561 , - 3002 , - 5683 , - 2844 , - 245 , - 3646 , - 1527 , - 5408 , - 3769 , - 2370 , - 1211 , - 292 , - 5373 , - 4934 , - 4735 , - 4776 , - 5057 , - 5578 , - 579 , - 1580 , - 2821 , - 4302 , - 263 , - 2224 , - 4425 , - 1106 , - 3787 , - 948 , - 4109 , - 1750 , - 5391 , - 3512 , - 1873 , - 474 , - 5075 , - 4156 , - 3477 , - 3038 , - 2839 , - 2880 , - 3161 , - 3682 , - 4443 , - 5444 , - 925 , - 2406 , - 4127 , - 328 , - 2529 , - 4970 , - 1891 , - 4812 , - 2213 , - 5614 , - 3495 , - 1616 , - 5737 , - 4338 , - 3179 , - 2260 , - 1581 , - 1142 , - 943 , - 984 , - 1265 , - 1786 , - 2547 , - 3548 , - 4789 , - 510 , - 2231 , - 4192 , - 633 , - 3074 , - 5755 , - 2916 , - 317 , - 3718 , - 1599 , - 5480 , - 3841 , - 2442 , - 1283 , - 364 , - 5445 , - 5006 , - 4807 , - 4848 , - 5129 , - 5650 , - 651 , - 1652 , - 2893 , - 4374 , - 335 , - 2296 , - 4497 , - 1178 , - 3859 , - 1020 , - 4181 , - 1822 , - 5463 , - 3584 , - 1945 , - 546 , - 5147 , - 4228 , - 3549 , - 3110 , - 2911 , - 2952 , - 3233 , - 3754 , - 4515 , - 5516 , - 997 , - 2478 , - 4199 , - 400 , - 2601 , - 5042 , - 1963 , - 4884 , - 2285 , - 5686 , - 3567 , - 1688 , - 49 , - 4410 , - 3251 , - 2332 , - 1653 , - 1214 , - 1015 , - 1056 , - 1337 , - 1858 , - 2619 , - 3620 , - 4861 , - 582 , - 2303 , - 4264 , - 705 , - 3146 , - 67 , - 2988 , - 389 , - 3790 , - 1671 , - 5552 , - 3913 , - 2514 , - 1355 , - 436 , - 5517 , - 5078 , - 4879 , - 4920 , - 5201 , - 5722 , - 723 , - 1724 , - 2965 , - 4446 , - 407 , - 2368 , - 4569 , - 1250 , - 3931 , - 1092 , - 4253 , - 1894 , - 5535 , - 3656 , - 2017 , - 618 , - 5219 , - 4300 , - 3621 , - 3182 , - 2983 , - 3024 , - 3305 , - 3826 , - 4587 , - 5588 , - 1069 , - 2550 , - 4271 , - 472 , - 2673 , - 5114 , - 2035 , - 4956 , - 2357 , - 5758 , - 3639 , - 1760 , - 121 , - 4482 , - 3323 , - 2404 , - 1725 , - 1286 , - 1087 , - 1128 , - 1409 , - 1930 , - 2691 , - 3692 , - 4933 , - 654 , - 2375 , - 4336 , - 777 , - 3218 , - 139 , - 3060 , - 461 , - 3862 , - 1743 , - 5624 , - 3985 , - 2586 , - 1427 , - 508 , - 5589 , - 5150 , - 4951 , - 4992 , - 5273 , - 34 , - 795 , - 1796 , - 3037 , - 4518 , - 479 , - 2440 , - 4641 , - 1322 , - 4003 , - 1164 , - 4325 , - 1966 , - 5607 , - 3728 , - 2089 , - 690 , - 5291 , - 4372 , - 3693 , - 3254 , - 3055 , - 3096 , - 3377 , - 3898 , - 4659 , - 5660 , - 1141 , - 2622 , - 4343 , - 544 , - 2745 , - 5186 , - 2107 , - 5028 , - 2429 , - 70 , - 3711 , - 1832 , - 193 , - 4554 , - 3395 , - 2476 , - 1797 , - 1358 , - 1159 , - 1200 , - 1481 , - 2002 , - 2763 , - 3764 , - 5005 , - 726 , - 2447 , - 4408 , - 849 , - 3290 , - 211 , - 3132 , - 533 , - 3934 , - 1815 , - 5696 , - 4057 , - 2658 , - 1499 , - 580 , - 5661 , - 5222 , - 5023 , - 5064 , - 5345 , - 106 , - 867 , - 1868 , - 3109 , - 4590 , - 551 , - 2512 , - 4713 , - 1394 , - 4075 , - 1236 , - 4397 , - 2038 , - 5679 , - 3800 , - 2161 , - 762 , - 5363 , - 4444 , - 3765 , - 3326 , - 3127 , - 3168 , - 3449 , - 3970 , - 4731 , - 5732 , - 1213 , - 2694 , - 4415 , - 616 , - 2817 , - 5258 , - 2179 , - 5100 , - 2501 , - 142 , - 3783 , - 1904 , - 265 , - 4626 , - 3467 , - 2548 , - 1869 , - 1430 , - 1231 , - 1272 , - 1553 , - 2074 , - 2835 , - 3836 , - 5077 , - 798 , - 2519 , - 4480 , - 921 , - 3362 , - 283 , - 3204 , - 605 , - 4006 , - 1887 , - 8 , - 4129 , - 2730 , - 1571 , - 652 , - 5733 , - 5294 , - 5095 , - 5136 , - 5417 , - 178 , - 939 , - 1940 , - 3181 , - 4662 , - 623 , - 2584 , - 4785 , - 1466 , - 4147 , - 1308 , - 4469 , - 2110 , - 5751 , - 3872 , - 2233 , - 834 , - 5435 , - 4516 , - 3837 , - 3398 , - 3199 , - 3240 , - 3521 , - 4042 , - 4803 , - 44 , - 1285 , - 2766 , - 4487 , - 688 , - 2889 , - 5330 , - 2251 , - 5172 , - 2573 , - 214 , - 3855 , - 1976 , - 337 , - 4698 , - 3539 , - 2620 , - 1941 , - 1502 , - 1303 , - 1344 , - 1625 , - 2146 , - 2907 , - 3908 , - 5149 , - 870 , - 2591 , - 4552 , - 993 , - 3434 , - 355 , - 3276 , - 677 , - 4078 , - 1959 , - 80 , - 4201 , - 2802 , - 1643 , - 724 , - 45 , - 5366 , - 5167 , - 5208 , - 5489 , - 250 , - 1011 , - 2012 , - 3253 , - 4734 , - 695 , - 2656 , - 4857 , - 1538 , - 4219 , - 1380 , - 4541 , - 2182 , - 63 , - 3944 , - 2305 , - 906 , - 5507 , - 4588 , - 3909 , - 3470 , - 3271 , - 3312 , - 3593 , - 4114 , - 4875 , - 116 , - 1357 , - 2838 , - 4559 , - 760 , - 2961 , - 5402 , - 2323 , - 5244 , - 2645 , - 286 , - 3927 , - 2048 , - 409 , - 4770 , - 3611 , - 2692 , - 2013 , - 1574 , - 1375 , - 1416 , - 1697 , - 2218 , - 2979 , - 3980 , - 5221 , - 942 , - 2663 , - 4624 , - 1065 , - 3506 , - 427 , - 3348 , - 749 , - 4150 , - 2031 , - 152 , - 4273 , - 2874 , - 1715 , - 796 , - 117 , - 5438 , - 5239 , - 5280 , - 5561 , - 322 , - 1083 , - 2084 , - 3325 , - 4806 , - 767 , - 2728 , - 4929 , - 1610 , - 4291 , - 1452 , - 4613 , - 2254 , - 135 , - 4016 , - 2377 , - 978 , - 5579 , - 4660 , - 3981 , - 3542 , - 3343 , - 3384 , - 3665 , - 4186 , - 4947 , - 188 , - 1429 , - 2910 , - 4631 , - 832 , - 3033 , - 5474 , - 2395 , - 5316 , - 2717 , - 358 , - 3999 , - 2120 , - 481 , - 4842 , - 3683 , - 2764 , - 2085 , - 1646 , - 1447 , - 1488 , - 1769 , - 2290 , - 3051 , - 4052 , - 5293 , - 1014 , - 2735 , - 4696 , - 1137 , - 3578 , - 499 , - 3420 , - 821 , - 4222 , - 2103 , - 224 , - 4345 , - 2946 , - 1787 , - 868 , - 189 , - 5510 , - 5311 , - 5352 , - 5633 , - 394 , - 1155 , - 2156 , - 3397 , - 4878 , - 839 , - 2800 , - 5001 , - 1682 , - 4363 , - 1524 , - 4685 , - 2326 , - 207 , - 4088 , - 2449 , - 1050 , - 5651 , - 4732 , - 4053 , - 3614 , - 3415 , - 3456 , - 3737 , - 4258 , - 5019 , - 260 , - 1501 , - 2982 , - 4703 , - 904 , - 3105 , - 5546 , - 2467 , - 5388 , - 2789 , - 430 , - 4071 , - 2192 , - 553 , - 4914 , - 3755 , - 2836 , - 2157 , - 1718 , - 1519 , - 1560 , - 1841 , - 2362 , - 3123 , - 4124 , - 5365 , - 1086 , - 2807 , - 4768 , - 1209 , - 3650 , - 571 , - 3492 , - 893 , - 4294 , - 2175 , - 296 , - 4417 , - 3018 , - 1859 , - 940 , - 261 , - 5582 , - 5383 , - 5424 , - 5705 , - 466 , - 1227 , - 2228 , - 3469 , - 4950 , - 911 , - 2872 , - 5073 , - 1754 , - 4435 , - 1596 , - 4757 , - 2398 , - 279 , - 4160 , - 2521 , - 1122 , - 5723 , - 4804 , - 4125 , - 3686 , - 3487 , - 3528 , - 3809 , - 4330 , - 5091 , - 332 , - 1573 , - 3054 , - 4775 , - 976 , - 3177 , - 5618 , - 2539 , - 5460 , - 2861 , - 502 , - 4143 , - 2264 , - 625 , - 4986 , - 3827 , - 2908 , - 2229 , - 1790 , - 1591 , - 1632 , - 1913 , - 2434 , - 3195 , - 4196 , - 5437 , - 1158 , - 2879 , - 4840 , - 1281 , - 3722 , - 643 , - 3564 , - 965 , - 4366 , - 2247 , - 368 , - 4489 , - 3090 , - 1931 , - 1012 , - 333 , - 5654 , - 5455 , - 5496 , - 17 , - 538 , - 1299 , - 2300 , - 3541 , - 5022 , - 983 , - 2944 , - 5145 , - 1826 , - 4507 , - 1668 , - 4829 , - 2470 , - 351 , - 4232 , - 2593 , - 1194 , - 35 , - 4876 , - 4197 , - 3758 , - 3559 , - 3600 , - 3881 , - 4402 , - 5163 , - 404 , - 1645 , - 3126 , - 4847 , - 1048 , - 3249 , - 5690 , - 2611 , - 5532 , - 2933 , - 574 , - 4215 , - 2336 , - 697 , - 5058 , - 3899 , - 2980 , - 2301 , - 1862 , - 1663 , - 1704 , - 1985 , - 2506 , - 3267 , - 4268 , - 5509 , - 1230 , - 2951 , - 4912 , - 1353 , - 3794 , - 715 , - 3636 , - 1037 , - 4438 , - 2319 , - 440 , - 4561 , - 3162 , - 2003 , - 1084 , - 405 , - 5726 , - 5527 , - 5568 , - 89 , - 610 , - 1371 , - 2372 , - 3613 , - 5094 , - 1055 , - 3016 , - 5217 , - 1898 , - 4579 , - 1740 , - 4901 , - 2542 , - 423 , - 4304 , - 2665 , - 1266 , - 107 , - 4948 , - 4269 , - 3830 , - 3631 , - 3672 , - 3953 , - 4474 , - 5235 , - 476 , - 1717 , - 3198 , - 4919 , - 1120 , - 3321 , - 2 , - 2683 , - 5604 , - 3005 , - 646 , - 4287 , - 2408 , - 769 , - 5130 , - 3971 , - 3052 , - 2373 , - 1934 , - 1735 , - 1776 , - 2057 , - 2578 , - 3339 , - 4340 , - 5581 , - 1302 , - 3023 , - 4984 , - 1425 , - 3866 , - 787 , - 3708 , - 1109 , - 4510 , - 2391 , - 512 , - 4633 , - 3234 , - 2075 , - 1156 , - 477 , - 38 , - 5599 , - 5640 , - 161 , - 682 , - 1443 , - 2444 , - 3685 , - 5166 , - 1127 , - 3088 , - 5289 , - 1970 , - 4651 , - 1812 , - 4973 , - 2614 , - 495 , - 4376 , - 2737 , - 1338 , - 179 , - 5020 , - 4341 , - 3902 , - 3703 , - 3744 , - 4025 , - 4546 , - 5307 , - 548 , - 1789 , - 3270 , - 4991 , - 1192 , - 3393 , - 74 , - 2755 , - 5676 , - 3077 , - 718 , - 4359 , - 2480 , - 841 , - 5202 , - 4043 , - 3124 , - 2445 , - 2006 , - 1807 , - 1848 , - 2129 , - 2650 , - 3411 , - 4412 , - 5653 , - 1374 , - 3095 , - 5056 , - 1497 , - 3938 , - 859 , - 3780 , - 1181 , - 4582 , - 2463 , - 584 , - 4705 , - 3306 , - 2147 , - 1228 , - 549 , - 110 , - 5671 , - 5712 , - 233 , - 754 , - 1515 , - 2516 , - 3757 , - 5238 , - 1199 , - 3160 , - 5361 , - 2042 , - 4723 , - 1884 , - 5045 , - 2686 , - 567 , - 4448 , - 2809 , - 1410 , - 251 , - 5092 , - 4413 , - 3974 , - 3775 , - 3816 , - 4097 , - 4618 , - 5379 , - 620 , - 1861 , - 3342 , - 5063 , - 1264 , - 3465 , - 146 , - 2827 , - 5748 , - 3149 , - 790 , - 4431 , - 2552 , - 913 , - 5274 , - 4115 , - 3196 , - 2517 , - 2078 , - 1879 , - 1920 , - 2201 , - 2722 , - 3483 , - 4484 , - 5725 , - 1446 , - 3167 , - 5128 , - 1569 , - 4010 , - 931 , - 3852 , - 1253 , - 4654 , - 2535 , - 656 , - 4777 , - 3378 , - 2219 , - 1300 , - 621 , - 182 , - 5743 , - 24 , - 305 , - 826 , - 1587 , - 2588 , - 3829 , - 5310 , - 1271 , - 3232 , - 5433 , - 2114 , - 4795 , - 1956 , - 5117 , - 2758 , - 639 , - 4520 , - 2881 , - 1482 , - 323 , - 5164 , - 4485 , - 4046 , - 3847 , - 3888 , - 4169 , - 4690 , - 5451 , - 692 , - 1933 , - 3414 , - 5135 , - 1336 , - 3537 , - 218 , - 2899 , - 60 , - 3221 , - 862 , - 4503 , - 2624 , - 985 , - 5346 , - 4187 , - 3268 , - 2589 , - 2150 , - 1951 , - 1992 , - 2273 , - 2794 , - 3555 , - 4556 , - 37 , - 1518 , - 3239 , - 5200 , - 1641 , - 4082 , - 1003 , - 3924 , - 1325 , - 4726 , - 2607 , - 728 , - 4849 , - 3450 , - 2291 , - 1372 , - 693 , - 254 , - 55 , - 96 , - 377 , - 898 , - 1659 , - 2660 , - 3901 , - 5382 , - 1343 , - 3304 , - 5505 , - 2186 , - 4867 , - 2028 , - 5189 , - 2830 , - 711 , - 4592 , - 2953 , - 1554 , - 395 , - 5236 , - 4557 , - 4118 , - 3919 , - 3960 , - 4241 , - 4762 , - 5523 , - 764 , - 2005 , - 3486 , - 5207 , - 1408 , - 3609 , - 290 , - 2971 , - 132 , - 3293 , - 934 , - 4575 , - 2696 , - 1057 , - 5418 , - 4259 , - 3340 , - 2661 , - 2222 , - 2023 , - 2064 , - 2345 , - 2866 , - 3627 , - 4628 , - 109 , - 1590 , - 3311 , - 5272 , - 1713 , - 4154 , - 1075 , - 3996 , - 1397 , - 4798 , - 2679 , - 800 , - 4921 , - 3522 , - 2363 , - 1444 , - 765 , - 326 , - 127 , - 168 , - 449 , - 970 , - 1731 , - 2732 , - 3973 , - 5454 , - 1415 , - 3376 , - 5577 , - 2258 , - 4939 , - 2100 , - 5261 , - 2902 , - 783 , - 4664 , - 3025 , - 1626 , - 467 , - 5308 , - 4629 , - 4190 , - 3991 , - 4032 , - 4313 , - 4834 , - 5595 , - 836 , - 2077 , - 3558 , - 5279 , - 1480 , - 3681 , - 362 , - 3043 , - 204 , - 3365 , - 1006 , - 4647 , - 2768 , - 1129 , - 5490 , - 4331 , - 3412 , - 2733 , - 2294 , - 2095 , - 2136 , - 2417 , - 2938 , - 3699 , - 4700 , - 181 , - 1662 , - 3383 , - 5344 , - 1785 , - 4226 , - 1147 , - 4068 , - 1469 , - 4870 , - 2751 , - 872 , - 4993 , - 3594 , - 2435 , - 1516 , - 837 , - 398 , - 199 , - 240 , - 521 , - 1042 , - 1803 , - 2804 , - 4045 , - 5526 , - 1487 , - 3448 , - 5649 , - 2330 , - 5011 , - 2172 , - 5333 , - 2974 , - 855 , - 4736 , - 3097 , - 1698 , - 539 , - 5380 , - 4701 , - 4262 , - 4063 , - 4104 , - 4385 , - 4906 , - 5667 , - 908 , - 2149 , - 3630 , - 5351 , - 1552 , - 3753 , - 434 , - 3115 , - 276 , - 3437 , - 1078 , - 4719 , - 2840 , - 1201 , - 5562 , - 4403 , - 3484 , - 2805 , - 2366 , - 2167 , - 2208 , - 2489 , - 3010 , - 3771 , - 4772 , - 253 , - 1734 , - 3455 , - 5416 , - 1857 , - 4298 , - 1219 , - 4140 , - 1541 , - 4942 , - 2823 , - 944 , - 5065 , - 3666 , - 2507 , - 1588 , - 909 , - 470 , - 271 , - 312 , - 593 , - 1114 , - 1875 , - 2876 , - 4117 , - 5598 , - 1559 , - 3520 , - 5721 , - 2402 , - 5083 , - 2244 , - 5405 , - 3046 , - 927 , - 4808 , - 3169 , - 1770 , - 611 , - 5452 , - 4773 , - 4334 , - 4135 , - 4176 , - 4457 , - 4978 , - 5739 , - 980 , - 2221 , - 3702 , - 5423 , - 1624 , - 3825 , - 506 , - 3187 , - 348 , - 3509 , - 1150 , - 4791 , - 2912 , - 1273 , - 5634 , - 4475 , - 3556 , - 2877 , - 2438 , - 2239 , - 2280 , - 2561 , - 3082 , - 3843 , - 4844 , - 325 , - 1806 , - 3527 , - 5488 , - 1929 , - 4370 , - 1291 , - 4212 , - 1613 , - 5014 , - 2895 , - 1016 , - 5137 , - 3738 , - 2579 , - 1660 , - 981 , - 542 , - 343 , - 384 , - 665 , - 1186 , - 1947 , - 2948 , - 4189 , - 5670 , - 1631 , - 3592 , - 33 , - 2474 , - 5155 , - 2316 , - 5477 , - 3118 , - 999 , - 4880 , - 3241 , - 1842 , - 683 , - 5524 , - 4845 , - 4406 , - 4207 , - 4248 , - 4529 , - 5050 , - 51 , - 1052 , - 2293 , - 3774 , - 5495 , - 1696 , - 3897 , - 578 , - 3259 , - 420 , - 3581 , - 1222 , - 4863 , - 2984 , - 1345 , - 5706 , - 4547 , - 3628 , - 2949 , - 2510 , - 2311 , - 2352 , - 2633 , - 3154 , - 3915 , - 4916 , - 397 , - 1878 , - 3599 , - 5560 , - 2001 , - 4442 , - 1363 , - 4284 , - 1685 , - 5086 , - 2967 , - 1088 , - 5209 , - 3810 , - 2651 , - 1732 , - 1053 , - 614 , - 415 , - 456 , - 737 , - 1258 , - 2019 , - 3020 , - 4261 , - 5742 , - 1703 , - 3664 , - 105 , - 2546 , - 5227 , - 2388 , - 5549 , - 3190 , - 1071 , - 4952 , - 3313 , - 1914 , - 755 , - 5596 , - 4917 , - 4478 , - 4279 , - 4320 , - 4601 , - 5122 , - 123 , - 1124 , - 2365 , - 3846 , - 5567 , - 1768 , - 3969 , - 650 , - 3331 , - 492 , - 3653 , - 1294 , - 4935 , - 3056 , - 1417 , - 18 , - 4619 , - 3700 , - 3021 , - 2582 , - 2383 , - 2424 , - 2705 , - 3226 , - 3987 , - 4988 , - 469 , - 1950 , - 3671 , - 5632 , - 2073 , - 4514 , - 1435 , - 4356 , - 1757 , - 5158 , - 3039 , - 1160 , - 5281 , - 3882 , - 2723 , - 1804 , - 1125 , - 686 , - 487 , - 528 , - 809 , - 1330 , - 2091 , - 3092 , - 4333 , - 54 , - 1775 , - 3736 , - 177 , - 2618 , - 5299 , - 2460 , - 5621 , - 3262 , - 1143 , - 5024 , - 3385 , - 1986 , - 827 , - 5668 , - 4989 , - 4550 , - 4351 , - 4392 , - 4673 , - 5194 , - 195 , - 1196 , - 2437 , - 3918 , - 5639 , - 1840 , - 4041 , - 722 , - 3403 , - 564 , - 3725 , - 1366 , - 5007 , - 3128 , - 1489 , - 90 , - 4691 , - 3772 , - 3093 , - 2654 , - 2455 , - 2496 , - 2777 , - 3298 , - 4059 , - 5060 , - 541 , - 2022 , - 3743 , - 5704 , - 2145 , - 4586 , - 1507 , - 4428 , - 1829 , - 5230 , - 3111 , - 1232 , - 5353 , - 3954 , - 2795 , - 1876 , - 1197 , - 758 , - 559 , - 600 , - 881 , - 1402 , - 2163 , - 3164 , - 4405 , - 126 , - 1847 , - 3808 , - 249 , - 2690 , - 5371 , - 2532 , - 5693 , - 3334 , - 1215 , - 5096 , - 3457 , - 2058 , - 899 , - 5740 , - 5061 , - 4622 , - 4423 , - 4464 , - 4745 , - 5266 , - 267 , - 1268 , - 2509 , - 3990 , - 5711 , - 1912 , - 4113 , - 794 , - 3475 , - 636 , - 3797 , - 1438 , - 5079 , - 3200 , - 1561 , - 162 , - 4763 , - 3844 , - 3165 , - 2726 , - 2527 , - 2568 , - 2849 , - 3370 , - 4131 , - 5132 , - 613 , - 2094 , - 3815 , - 16 , - 2217 , - 4658 , - 1579 , - 4500 , - 1901 , - 5302 , - 3183 , - 1304 , - 5425 , - 4026 , - 2867 , - 1948 , - 1269 , - 830 , - 631 , - 672 , - 953 , - 1474 , - 2235 , - 3236 , - 4477 , - 198 , - 1919 , - 3880 , - 321 , - 2762 , - 5443 , - 2604 , - 5 , - 3406 , - 1287 , - 5168 , - 3529 , - 2130 , - 971 , - 52 , - 5133 , - 4694 , - 4495 , - 4536 , - 4817 , - 5338 , - 339 , - 1340 , - 2581 , - 4062 , - 23 , - 1984 , - 4185 , - 866 , - 3547 , - 708 , - 3869 , - 1510 , - 5151 , - 3272 , - 1633 , - 234 , - 4835 , - 3916 , - 3237 , - 2798 , - 2599 , - 2640 , - 2921 , - 3442 , - 4203 , - 5204 , - 685 , - 2166 , - 3887 , - 88 , - 2289 , - 4730 , - 1651 , - 4572 , - 1973 , - 5374 , - 3255 , - 1376 , - 5497 , - 4098 , - 2939 , - 2020 , - 1341 , - 902 , - 703 , - 744 , - 1025 , - 1546 , - 2307 , - 3308 , - 4549 , - 270 , - 1991 , - 3952 , - 393 , - 2834 , - 5515 , - 2676 , - 77 , - 3478 , - 1359 , - 5240 , - 3601 , - 2202 , - 1043 , - 124 , - 5205 , - 4766 , - 4567 , - 4608 , - 4889 , - 5410 , - 411 , - 1412 , - 2653 , - 4134 , - 95 , - 2056 , - 4257 , - 938 , - 3619 , - 780 , - 3941 , - 1582 , - 5223 , - 3344 , - 1705 , - 306 , - 4907 , - 3988 , - 3309 , - 2870 , - 2671 , - 2712 , - 2993 , - 3514 , - 4275 , - 5276 , - 757 , - 2238 , - 3959 , - 160 , - 2361 , - 4802 , - 1723 , - 4644 , - 2045 , - 5446 , - 3327 , - 1448 , - 5569 , - 4170 , - 3011 , - 2092 , - 1413 , - 974 , - 775 , - 816 , - 1097 , - 1618 , - 2379 , - 3380 , - 4621 , - 342 , - 2063 , - 4024 , - 465 , - 2906 , - 5587 , - 2748 , - 149 , - 3550 , - 1431 , - 5312 , - 3673 , - 2274 , - 1115 , - 196 , - 5277 , - 4838 , - 4639 , - 4680 , - 4961 , - 5482 , - 483 , - 1484 , - 2725 , - 4206 , - 167 , - 2128 , - 4329 , - 1010 , - 3691 , - 852 , - 4013 , - 1654 , - 5295 , - 3416 , - 1777 , - 378 , - 4979 , - 4060 , - 3381 , - 2942 , - 2743 , - 2784 , - 3065 , - 3586 , - 4347 , - 5348 , - 829 , - 2310 , - 4031 , - 232 , - 2433 , - 4874 , - 1795 , - 4716 , - 2117 , - 5518 , - 3399 , - 1520 , - 5641 , - 4242 , - 3083 , - 2164 , - 1485 , - 1046 , - 847 , - 888 , - 1169 , - 1690 , - 2451 , - 3452 , - 4693 , - 414 , - 2135 , - 4096 , - 537 , - 2978 , - 5659 , - 2820 , - 221 , - 3622 , - 1503 , - 5384 , - 3745 , - 2346 , - 1187 , - 268 , - 5349 , - 4910 , - 4711 , - 4752 , - 5033 , - 5554 , - 555 , - 1556 , - 2797 , - 4278 , - 239 , - 2200 , - 4401 , - 1082 , - 3763 , - 924 , - 4085 , - 1726 , - 5367 , - 3488 , - 1849 , - 450 , - 5051 , - 4132 , - 3453 , - 3014 , - 2815 , - 2856 , - 3137 , - 3658 , - 4419 , - 5420 , - 901 , - 2382 , - 4103 , - 304 , - 2505 , - 4946 , - 1867 , - 4788 , - 2189 , - 5590 , - 3471 , - 1592 , - 5713 , - 4314 , - 3155 , - 2236 , - 1557 , - 1118 , - 919 , - 960 , - 1241 , - 1762 , - 2523 , - 3524 , - 4765 , - 486 , - 2207 , - 4168 , - 609 , - 3050 , - 5731 , - 2892 , - 293 , - 3694 , - 1575 , - 5456 , - 3817 , - 2418 , - 1259 , - 340 , - 5421 , - 4982 , - 4783 , - 4824 , - 5105 , - 5626 , - 627 , - 1628 , - 2869 , - 4350 , - 311 , - 2272 , - 4473 , - 1154 , - 3835 , - 996 , - 4157 , - 1798 , - 5439 , - 3560 , - 1921 , - 522 , - 5123 , - 4204 , - 3525 , - 3086 , - 2887 , - 2928 , - 3209 , - 3730 , - 4491 , - 5492 , - 973 , - 2454 , - 4175 , - 376 , - 2577 , - 5018 , - 1939 , - 4860 , - 2261 , - 5662 , - 3543 , - 1664 , - 25 , - 4386 , - 3227 , - 2308 , - 1629 , - 1190 , - 991 , - 1032 , - 1313 , - 1834 , - 2595 , - 3596 , - 4837 , - 558 , - 2279 , - 4240 , - 681 , - 3122 , - 43 , - 2964 , - 365 , - 3766 , - 1647 , - 5528 , - 3889 , - 2490 , - 1331 , - 412 , - 5493 , - 5054 , - 4855 , - 4896 , - 5177 , - 5698 , - 699 , - 1700 , - 2941 , - 4422 , - 383 , - 2344 , - 4545 , - 1226 , - 3907 , - 1068 , - 4229 , - 1870 , - 5511 , - 3632 , - 1993 , - 594 , - 5195 , - 4276 , - 3597 , - 3158 , - 2959 , - 3000 , - 3281 , - 3802 , - 4563 , - 5564 , - 1045 , - 2526 , - 4247 , - 448 , - 2649 , - 5090 , - 2011 , - 4932 , - 2333 , - 5734 , - 3615 , - 1736 , - 97 , - 4458 , - 3299 , - 2380 , - 1701 , - 1262 , - 1063 , - 1104 , - 1385 , - 1906 , - 2667 , - 3668 , - 4909 , - 630 , - 2351 , - 4312 , - 753 , - 3194 , - 115 , - 3036 , - 437 , - 3838 , - 1719 , - 5600 , - 3961 , - 2562 , - 1403 , - 484 , - 5565 , - 5126 , - 4927 , - 4968 , - 5249 , - 10 , - 771 , - 1772 , - 3013 , - 4494 , - 455 , - 2416 , - 4617 , - 1298 , - 3979 , - 1140 , - 4301 , - 1942 , - 5583 , - 3704 , - 2065 , - 666 , - 5267 , - 4348 , - 3669 , - 3230 , - 3031 , - 3072 , - 3353 , - 3874 , - 4635 , - 5636 , - 1117 , - 2598 , - 4319 , - 520 , - 2721 , - 5162 , - 2083 , - 5004 , - 2405 , - 46 , - 3687 , - 1808 , - 169 , - 4530 , - 3371 , - 2452 , - 1773 , - 1334 , - 1135 , - 1176 , - 1457 , - 1978 , - 2739 , - 3740 , - 4981 , - 702 , - 2423 , - 4384 , - 825 , - 3266 , - 187 , - 3108 , - 509 , - 3910 , - 1791 , - 5672 , - 4033 , - 2634 , - 1475 , - 556 , - 5637 , - 5198 , - 4999 , - 5040 , - 5321 , - 82 , - 843 , - 1844 , - 3085 , - 4566 , - 527 , - 2488 , - 4689 , - 1370 , - 4051 , - 1212 , - 4373 , - 2014 , - 5655 , - 3776 , - 2137 , - 738 , - 5339 , - 4420 , - 3741 , - 3302 , - 3103 , - 3144 , - 3425 , - 3946 , - 4707 , - 5708 , - 1189 , - 2670 , - 4391 , - 592 , - 2793 , - 5234 , - 2155 , - 5076 , - 2477 , - 118 , - 3759 , - 1880 , - 241 , - 4602 , - 3443 , - 2524 , - 1845 , - 1406 , - 1207 , - 1248 , - 1529 , - 2050 , - 2811 , - 3812 , - 5053 , - 774 , - 2495 , - 4456 , - 897 , - 3338 , - 259 , - 3180 , - 581 , - 3982 , - 1863 , - 5744 , - 4105 , - 2706 , - 1547 , - 628 , - 5709 , - 5270 , - 5071 , - 5112 , - 5393 , - 154 , - 915 , - 1916 , - 3157 , - 4638 , - 599 , - 2560 , - 4761 , - 1442 , - 4123 , - 1284 , - 4445 , - 2086 , - 5727 , - 3848 , - 2209 , - 810 , - 5411 , - 4492 , - 3813 , - 3374 , - 3175 , - 3216 , - 3497 , - 4018 , - 4779 , - 20 , - 1261 , - 2742 , - 4463 , - 664 , - 2865 , - 5306 , - 2227 , - 5148 , - 2549 , - 190 , - 3831 , - 1952 , - 313 , - 4674 , - 3515 , - 2596 , - 1917 , - 1478 , - 1279 , - 1320 , - 1601 , - 2122 , - 2883 , - 3884 , - 5125 , - 846 , - 2567 , - 4528 , - 969 , - 3410 , - 331 , - 3252 , - 653 , - 4054 , - 1935 , - 56 , - 4177 , - 2778 , - 1619 , - 700 , - 21 , - 5342 , - 5143 , - 5184 , - 5465 , - 226 , - 987 , - 1988 , - 3229 , - 4710 , - 671 , - 2632 , - 4833 , - 1514 , - 4195 , - 1356 , - 4517 , - 2158 , - 39 , - 3920 , - 2281 , - 882 , - 5483 , - 4564 , - 3885 , - 3446 , - 3247 , - 3288 , - 3569 , - 4090 , - 4851 , - 92 , - 1333 , - 2814 , - 4535 , - 736 , - 2937 , - 5378 , - 2299 , - 5220 , - 2621 , - 262 , - 3903 , - 2024 , - 385 , - 4746 , - 3587 , - 2668 , - 1989 , - 1550 , - 1351 , - 1392 , - 1673 , - 2194 , - 2955 , - 3956 , - 5197 , - 918 , - 2639 , - 4600 , - 1041 , - 3482 , - 403 , - 3324 , - 725 , - 4126 , - 2007 , - 128 , - 4249 , - 2850 , - 1691 , - 772 , - 93 , - 5414 , - 5215 , - 5256 , - 5537 , - 298 , - 1059 , - 2060 , - 3301 , - 4782 , - 743 , - 2704 , - 4905 , - 1586 , - 4267 , - 1428 , - 4589 , - 2230 , - 111 , - 3992 , - 2353 , - 954 , - 5555 , - 4636 , - 3957 , - 3518 , - 3319 , - 3360 , - 3641 , - 4162 , - 4923 , - 164 , - 1405 , - 2886 , - 4607 , - 808 , - 3009 , - 5450 , - 2371 , - 5292 , - 2693 , - 334 , - 3975 , - 2096 , - 457 , - 4818 , - 3659 , - 2740 , - 2061 , - 1622 , - 1423 , - 1464 , - 1745 , - 2266 , - 3027 , - 4028 , - 5269 , - 990 , - 2711 , - 4672 , - 1113 , - 3554 , - 475 , - 3396 , - 797 , - 4198 , - 2079 , - 200 , - 4321 , - 2922 , - 1763 , - 844 , - 165 , - 5486 , - 5287 , - 5328 , - 5609 , - 370 , - 1131 , - 2132 , - 3373 , - 4854 , - 815 , - 2776 , - 4977 , - 1658 , - 4339 , - 1500 , - 4661 , - 2302 , - 183 , - 4064 , - 2425 , - 1026 , - 5627 , - 4708 , - 4029 , - 3590 , - 3391 , - 3432 , - 3713 , - 4234 , - 4995 , - 236 , - 1477 , - 2958 , - 4679 , - 880 , - 3081 , - 5522 , - 2443 , - 5364 , - 2765 , - 406 , - 4047 , - 2168 , - 529 , - 4890 , - 3731 , - 2812 , - 2133 , - 1694 , - 1495 , - 1536 , - 1817 , - 2338 , - 3099 , - 4100 , - 5341 , - 1062 , - 2783 , - 4744 , - 1185 , - 3626 , - 547 , - 3468 , - 869 , - 4270 , - 2151 , - 272 , - 4393 , - 2994 , - 1835 , - 916 , - 237 , - 5558 , - 5359 , - 5400 , - 5681 , - 442 , - 1203 , - 2204 , - 3445 , - 4926 , - 887 , - 2848 , - 5049 , - 1730 , - 4411 , - 1572 , - 4733 , - 2374 , - 255 , - 4136 , - 2497 , - 1098 , - 5699 , - 4780 , - 4101 , - 3662 , - 3463 , - 3504 , - 3785 , - 4306 , - 5067 , - 308 , - 1549 , - 3030 , - 4751 , - 952 , - 3153 , - 5594 , - 2515 , - 5436 , - 2837 , - 478 , - 4119 , - 2240 , - 601 , - 4962 , - 3803 , - 2884 , - 2205 , - 1766 , - 1567 , - 1608 , - 1889 , - 2410 , - 3171 , - 4172 , - 5413 , - 1134 , - 2855 , - 4816 , - 1257 , - 3698 , - 619 , - 3540 , - 941 , - 4342 , - 2223 , - 344 , - 4465 , - 3066 , - 1907 , - 988 , - 309 , - 5630 , - 5431 , - 5472 , - 5753 , - 514 , - 1275 , - 2276 , - 3517 , - 4998 , - 959 , - 2920 , - 5121 , - 1802 , - 4483 , - 1644 , - 4805 , - 2446 , - 327 , - 4208 , - 2569 , - 1170 , - 11 , - 4852 , - 4173 , - 3734 , - 3535 , - 3576 , - 3857 , - 4378 , - 5139 , - 380 , - 1621 , - 3102 , - 4823 , - 1024 , - 3225 , - 5666 , - 2587 , - 5508 , - 2909 , - 550 , - 4191 , - 2312 , - 673 , - 5034 , - 3875 , - 2956 , - 2277 , - 1838 , - 1639 , - 1680 , - 1961 , - 2482 , - 3243 , - 4244 , - 5485 , - 1206 , - 2927 , - 4888 , - 1329 , - 3770 , - 691 , - 3612 , - 1013 , - 4414 , - 2295 , - 416 , - 4537 , - 3138 , - 1979 , - 1060 , - 381 , - 5702 , - 5503 , - 5544 , - 65 , - 586 , - 1347 , - 2348 , - 3589 , - 5070 , - 1031 , - 2992 , - 5193 , - 1874 , - 4555 , - 1716 , - 4877 , - 2518 , - 399 , - 4280 , - 2641 , - 1242 , - 83 , - 4924 , - 4245 , - 3806 , - 3607 , - 3648 , - 3929 , - 4450 , - 5211 , - 452 , - 1693 , - 3174 , - 4895 , - 1096 , - 3297 , - 5738 , - 2659 , - 5580 , - 2981 , - 622 , - 4263 , - 2384 , - 745 , - 5106 , - 3947 , - 3028 , - 2349 , - 1910 , - 1711 , - 1752 , - 2033 , - 2554 , - 3315 , - 4316 , - 5557 , - 1278 , - 2999 , - 4960 , - 1401 , - 3842 , - 763 , - 3684 , - 1085 , - 4486 , - 2367 , - 488 , - 4609 , - 3210 , - 2051 , - 1132 , - 453 , - 14 , - 5575 , - 5616 , - 137 , - 658 , - 1419 , - 2420 , - 3661 , - 5142 , - 1103 , - 3064 , - 5265 , - 1946 , - 4627 , - 1788 , - 4949 , - 2590 , - 471 , - 4352 , - 2713 , - 1314 , - 155 , - 4996 , - 4317 , - 3878 , - 3679 , - 3720 , - 4001 , - 4522 , - 5283 , - 524 , - 1765 , - 3246 , - 4967 , - 1168 , - 3369 , - 50 , - 2731 , - 5652 , - 3053 , - 694 , - 4335 , - 2456 , - 817 , - 5178 , - 4019 , - 3100 , - 2421 , - 1982 , - 1783 , - 1824 , - 2105 , - 2626 , - 3387 , - 4388 , - 5629 , - 1350 , - 3071 , - 5032 , - 1473 , - 3914 , - 835 , - 3756 , - 1157 , - 4558 , - 2439 , - 560 , - 4681 , - 3282 , - 2123 , - 1204 , - 525 , - 86 , - 5647 , - 5688 , - 209 , - 730 , - 1491 , - 2492 , - 3733 , - 5214 , - 1175 , - 3136 , - 5337 , - 2018 , - 4699 , - 1860 , - 5021 , - 2662 , - 543 , - 4424 , - 2785 , - 1386 , - 227 , - 5068 , - 4389 , - 3950 , - 3751 , - 3792 , - 4073 , - 4594 , - 5355 , - 596 , - 1837 , - 3318 , - 5039 , - 1240 , - 3441 , - 122 , - 2803 , - 5724 , - 3125 , - 766 , - 4407 , - 2528 , - 889 , - 5250 , - 4091 , - 3172 , - 2493 , - 2054 , - 1855 , - 1896 , - 2177 , - 2698 , - 3459 , - 4460 , - 5701 , - 1422 , - 3143 , - 5104 , - 1545 , - 3986 , - 907 , - 3828 , - 1229 , - 4630 , - 2511 , - 632 , - 4753 , - 3354 , - 2195 , - 1276 , - 597 , - 158 , - 5719 , - 0 , - 271 , - 906 , - 1905 , - 3268 , - 4995 , - 1262 , - 3717 , - 712 , - 3895 , - 1618 , - 5529 , - 3980 , - 2795 , - 1974 , - 1517 , - 1424 , - 1695 , - 2330 , - 3329 , - 4692 , - 595 , - 2686 , - 5141 , - 2136 , - 5319 , - 3042 , - 1129 , - 5404 , - 4219 , - 3398 , - 2941 , - 2848 , - 3119 , - 3754 , - 4753 , - 292 , - 2019 , - 4110 , - 741 , - 3560 , - 919 , - 4466 , - 2553 , - 1004 , - 5643 , - 4822 , - 4365 , - 4272 , - 4543 , - 5178 , - 353 , - 1716 , - 3443 , - 5534 , - 2165 , - 4984 , - 2343 , - 66 , - 3977 , - 2428 , - 1243 , - 422 , - 5789 , - 5696 , - 143 , - 778 , - 1777 , - 3140 , - 4867 , - 1134 , - 3589 , - 584 , - 3767 , - 1490 , - 5401 , - 3852 , - 2667 , - 1846 , - 1389 , - 1296 , - 1567 , - 2202 , - 3201 , - 4564 , - 467 , - 2558 , - 5013 , - 2008 , - 5191 , - 2914 , - 1001 , - 5276 , - 4091 , - 3270 , - 2813 , - 2720 , - 2991 , - 3626 , - 4625 , - 164 , - 1891 , - 3982 , - 613 , - 3432 , - 791 , - 4338 , - 2425 , - 876 , - 5515 , - 4694 , - 4237 , - 4144 , - 4415 , - 5050 , - 225 , - 1588 , - 3315 , - 5406 , - 2037 , - 4856 , - 2215 , - 5762 , - 3849 , - 2300 , - 1115 , - 294 , - 5661 , - 5568 , - 15 , - 650 , - 1649 , - 3012 , - 4739 , - 1006 , - 3461 , - 456 , - 3639 , - 1362 , - 5273 , - 3724 , - 2539 , - 1718 , - 1261 , - 1168 , - 1439 , - 2074 , - 3073 , - 4436 , - 339 , - 2430 , - 4885 , - 1880 , - 5063 , - 2786 , - 873 , - 5148 , - 3963 , - 3142 , - 2685 , - 2592 , - 2863 , - 3498 , - 4497 , - 36 , - 1763 , - 3854 , - 485 , - 3304 , - 663 , - 4210 , - 2297 , - 748 , - 5387 , - 4566 , - 4109 , - 4016 , - 4287 , - 4922 , - 97 , - 1460 , - 3187 , - 5278 , - 1909 , - 4728 , - 2087 , - 5634 , - 3721 , - 2172 , - 987 , - 166 , - 5533 , - 5440 , - 5711 , - 522 , - 1521 , - 2884 , - 4611 , - 878 , - 3333 , - 328 , - 3511 , - 1234 , - 5145 , - 3596 , - 2411 , - 1590 , - 1133 , - 1040 , - 1311 , - 1946 , - 2945 , - 4308 , - 211 , - 2302 , - 4757 , - 1752 , - 4935 , - 2658 , - 745 , - 5020 , - 3835 , - 3014 , - 2557 , - 2464 , - 2735 , - 3370 , - 4369 , - 5732 , - 1635 , - 3726 , - 357 , - 3176 , - 535 , - 4082 , - 2169 , - 620 , - 5259 , - 4438 , - 3981 , - 3888 , - 4159 , - 4794 , - 5793 , - 1332 , - 3059 , - 5150 , - 1781 , - 4600 , - 1959 , - 5506 , - 3593 , - 2044 , - 859 , - 38 , - 5405 , - 5312 , - 5583 , - 394 , - 1393 , - 2756 , - 4483 , - 750 , - 3205 , - 200 , - 3383 , - 1106 , - 5017 , - 3468 , - 2283 , - 1462 , - 1005 , - 912 , - 1183 , - 1818 , - 2817 , - 4180 , - 83 , - 2174 , - 4629 , - 1624 , - 4807 , - 2530 , - 617 , - 4892 , - 3707 , - 2886 , - 2429 , - 2336 , - 2607 , - 3242 , - 4241 , - 5604 , - 1507 , - 3598 , - 229 , - 3048 , - 407 , - 3954 , - 2041 , - 492 , - 5131 , - 4310 , - 3853 , - 3760 , - 4031 , - 4666 , - 5665 , - 1204 , - 2931 , - 5022 , - 1653 , - 4472 , - 1831 , - 5378 , - 3465 , - 1916 , - 731 , - 5734 , - 5277 , - 5184 , - 5455 , - 266 , - 1265 , - 2628 , - 4355 , - 622 , - 3077 , - 72 , - 3255 , - 978 , - 4889 , - 3340 , - 2155 , - 1334 , - 877 , - 784 , - 1055 , - 1690 , - 2689 , - 4052 , - 5779 , - 2046 , - 4501 , - 1496 , - 4679 , - 2402 , - 489 , - 4764 , - 3579 , - 2758 , - 2301 , - 2208 , - 2479 , - 3114 , - 4113 , - 5476 , - 1379 , - 3470 , - 101 , - 2920 , - 279 , - 3826 , - 1913 , - 364 , - 5003 , - 4182 , - 3725 , - 3632 , - 3903 , - 4538 , - 5537 , - 1076 , - 2803 , - 4894 , - 1525 , - 4344 , - 1703 , - 5250 , - 3337 , - 1788 , - 603 , - 5606 , - 5149 , - 5056 , - 5327 , - 138 , - 1137 , - 2500 , - 4227 , - 494 , - 2949 , - 5768 , - 3127 , - 850 , - 4761 , - 3212 , - 2027 , - 1206 , - 749 , - 656 , - 927 , - 1562 , - 2561 , - 3924 , - 5651 , - 1918 , - 4373 , - 1368 , - 4551 , - 2274 , - 361 , - 4636 , - 3451 , - 2630 , - 2173 , - 2080 , - 2351 , - 2986 , - 3985 , - 5348 , - 1251 , - 3342 , - 5797 , - 2792 , - 151 , - 3698 , - 1785 , - 236 , - 4875 , - 4054 , - 3597 , - 3504 , - 3775 , - 4410 , - 5409 , - 948 , - 2675 , - 4766 , - 1397 , - 4216 , - 1575 , - 5122 , - 3209 , - 1660 , - 475 , - 5478 , - 5021 , - 4928 , - 5199 , - 10 , - 1009 , - 2372 , - 4099 , - 366 , - 2821 , - 5640 , - 2999 , - 722 , - 4633 , - 3084 , - 1899 , - 1078 , - 621 , - 528 , - 799 , - 1434 , - 2433 , - 3796 , - 5523 , - 1790 , - 4245 , - 1240 , - 4423 , - 2146 , - 233 , - 4508 , - 3323 , - 2502 , - 2045 , - 1952 , - 2223 , - 2858 , - 3857 , - 5220 , - 1123 , - 3214 , - 5669 , - 2664 , - 23 , - 3570 , - 1657 , - 108 , - 4747 , - 3926 , - 3469 , - 3376 , - 3647 , - 4282 , - 5281 , - 820 , - 2547 , - 4638 , - 1269 , - 4088 , - 1447 , - 4994 , - 3081 , - 1532 , - 347 , - 5350 , - 4893 , - 4800 , - 5071 , - 5706 , - 881 , - 2244 , - 3971 , - 238 , - 2693 , - 5512 , - 2871 , - 594 , - 4505 , - 2956 , - 1771 , - 950 , - 493 , - 400 , - 671 , - 1306 , - 2305 , - 3668 , - 5395 , - 1662 , - 4117 , - 1112 , - 4295 , - 2018 , - 105 , - 4380 , - 3195 , - 2374 , - 1917 , - 1824 , - 2095 , - 2730 , - 3729 , - 5092 , - 995 , - 3086 , - 5541 , - 2536 , - 5719 , - 3442 , - 1529 , - 5804 , - 4619 , - 3798 , - 3341 , - 3248 , - 3519 , - 4154 , - 5153 , - 692 , - 2419 , - 4510 , - 1141 , - 3960 , - 1319 , - 4866 , - 2953 , - 1404 , - 219 , - 5222 , - 4765 , - 4672 , - 4943 , - 5578 , - 753 , - 2116 , - 3843 , - 110 , - 2565 , - 5384 , - 2743 , - 466 , - 4377 , - 2828 , - 1643 , - 822 , - 365 , - 272 , - 543 , - 1178 , - 2177 , - 3540 , - 5267 , - 1534 , - 3989 , - 984 , - 4167 , - 1890 , - 5801 , - 4252 , - 3067 , - 2246 , - 1789 , - 1696 , - 1967 , - 2602 , - 3601 , - 4964 , - 867 , - 2958 , - 5413 , - 2408 , - 5591 , - 3314 , - 1401 , - 5676 , - 4491 , - 3670 , - 3213 , - 3120 , - 3391 , - 4026 , - 5025 , - 564 , - 2291 , - 4382 , - 1013 , - 3832 , - 1191 , - 4738 , - 2825 , - 1276 , - 91 , - 5094 , - 4637 , - 4544 , - 4815 , - 5450 , - 625 , - 1988 , - 3715 , - 5806 , - 2437 , - 5256 , - 2615 , - 338 , - 4249 , - 2700 , - 1515 , - 694 , - 237 , - 144 , - 415 , - 1050 , - 2049 , - 3412 , - 5139 , - 1406 , - 3861 , - 856 , - 4039 , - 1762 , - 5673 , - 4124 , - 2939 , - 2118 , - 1661 , - 1568 , - 1839 , - 2474 , - 3473 , - 4836 , - 739 , - 2830 , - 5285 , - 2280 , - 5463 , - 3186 , - 1273 , - 5548 , - 4363 , - 3542 , - 3085 , - 2992 , - 3263 , - 3898 , - 4897 , - 436 , - 2163 , - 4254 , - 885 , - 3704 , - 1063 , - 4610 , - 2697 , - 1148 , - 5787 , - 4966 , - 4509 , - 4416 , - 4687 , - 5322 , - 497 , - 1860 , - 3587 , - 5678 , - 2309 , - 5128 , - 2487 , - 210 , - 4121 , - 2572 , - 1387 , - 566 , - 109 , - 16 , - 287 , - 922 , - 1921 , - 3284 , - 5011 , - 1278 , - 3733 , - 728 , - 3911 , - 1634 , - 5545 , - 3996 , - 2811 , - 1990 , - 1533 , - 1440 , - 1711 , - 2346 , - 3345 , - 4708 , - 611 , - 2702 , - 5157 , - 2152 , - 5335 , - 3058 , - 1145 , - 5420 , - 4235 , - 3414 , - 2957 , - 2864 , - 3135 , - 3770 , - 4769 , - 308 , - 2035 , - 4126 , - 757 , - 3576 , - 935 , - 4482 , - 2569 , - 1020 , - 5659 , - 4838 , - 4381 , - 4288 , - 4559 , - 5194 , - 369 , - 1732 , - 3459 , - 5550 , - 2181 , - 5000 , - 2359 , - 82 , - 3993 , - 2444 , - 1259 , - 438 , - 5805 , - 5712 , - 159 , - 794 , - 1793 , - 3156 , - 4883 , - 1150 , - 3605 , - 600 , - 3783 , - 1506 , - 5417 , - 3868 , - 2683 , - 1862 , - 1405 , - 1312 , - 1583 , - 2218 , - 3217 , - 4580 , - 483 , - 2574 , - 5029 , - 2024 , - 5207 , - 2930 , - 1017 , - 5292 , - 4107 , - 3286 , - 2829 , - 2736 , - 3007 , - 3642 , - 4641 , - 180 , - 1907 , - 3998 , - 629 , - 3448 , - 807 , - 4354 , - 2441 , - 892 , - 5531 , - 4710 , - 4253 , - 4160 , - 4431 , - 5066 , - 241 , - 1604 , - 3331 , - 5422 , - 2053 , - 4872 , - 2231 , - 5778 , - 3865 , - 2316 , - 1131 , - 310 , - 5677 , - 5584 , - 31 , - 666 , - 1665 , - 3028 , - 4755 , - 1022 , - 3477 , - 472 , - 3655 , - 1378 , - 5289 , - 3740 , - 2555 , - 1734 , - 1277 , - 1184 , - 1455 , - 2090 , - 3089 , - 4452 , - 355 , - 2446 , - 4901 , - 1896 , - 5079 , - 2802 , - 889 , - 5164 , - 3979 , - 3158 , - 2701 , - 2608 , - 2879 , - 3514 , - 4513 , - 52 , - 1779 , - 3870 , - 501 , - 3320 , - 679 , - 4226 , - 2313 , - 764 , - 5403 , - 4582 , - 4125 , - 4032 , - 4303 , - 4938 , - 113 , - 1476 , - 3203 , - 5294 , - 1925 , - 4744 , - 2103 , - 5650 , - 3737 , - 2188 , - 1003 , - 182 , - 5549 , - 5456 , - 5727 , - 538 , - 1537 , - 2900 , - 4627 , - 894 , - 3349 , - 344 , - 3527 , - 1250 , - 5161 , - 3612 , - 2427 , - 1606 , - 1149 , - 1056 , - 1327 , - 1962 , - 2961 , - 4324 , - 227 , - 2318 , - 4773 , - 1768 , - 4951 , - 2674 , - 761 , - 5036 , - 3851 , - 3030 , - 2573 , - 2480 , - 2751 , - 3386 , - 4385 , - 5748 , - 1651 , - 3742 , - 373 , - 3192 , - 551 , - 4098 , - 2185 , - 636 , - 5275 , - 4454 , - 3997 , - 3904 , - 4175 , - 4810 , - 5809 , - 1348 , - 3075 , - 5166 , - 1797 , - 4616 , - 1975 , - 5522 , - 3609 , - 2060 , - 875 , - 54 , - 5421 , - 5328 , - 5599 , - 410 , - 1409 , - 2772 , - 4499 , - 766 , - 3221 , - 216 , - 3399 , - 1122 , - 5033 , - 3484 , - 2299 , - 1478 , - 1021 , - 928 , - 1199 , - 1834 , - 2833 , - 4196 , - 99 , - 2190 , - 4645 , - 1640 , - 4823 , - 2546 , - 633 , - 4908 , - 3723 , - 2902 , - 2445 , - 2352 , - 2623 , - 3258 , - 4257 , - 5620 , - 1523 , - 3614 , - 245 , - 3064 , - 423 , - 3970 , - 2057 , - 508 , - 5147 , - 4326 , - 3869 , - 3776 , - 4047 , - 4682 , - 5681 , - 1220 , - 2947 , - 5038 , - 1669 , - 4488 , - 1847 , - 5394 , - 3481 , - 1932 , - 747 , - 5750 , - 5293 , - 5200 , - 5471 , - 282 , - 1281 , - 2644 , - 4371 , - 638 , - 3093 , - 88 , - 3271 , - 994 , - 4905 , - 3356 , - 2171 , - 1350 , - 893 , - 800 , - 1071 , - 1706 , - 2705 , - 4068 , - 5795 , - 2062 , - 4517 , - 1512 , - 4695 , - 2418 , - 505 , - 4780 , - 3595 , - 2774 , - 2317 , - 2224 , - 2495 , - 3130 , - 4129 , - 5492 , - 1395 , - 3486 , - 117 , - 2936 , - 295 , - 3842 , - 1929 , - 380 , - 5019 , - 4198 , - 3741 , - 3648 , - 3919 , - 4554 , - 5553 , - 1092 , - 2819 , - 4910 , - 1541 , - 4360 , - 1719 , - 5266 , - 3353 , - 1804 , - 619 , - 5622 , - 5165 , - 5072 , - 5343 , - 154 , - 1153 , - 2516 , - 4243 , - 510 , - 2965 , - 5784 , - 3143 , - 866 , - 4777 , - 3228 , - 2043 , - 1222 , - 765 , - 672 , - 943 , - 1578 , - 2577 , - 3940 , - 5667 , - 1934 , - 4389 , - 1384 , - 4567 , - 2290 , - 377 , - 4652 , - 3467 , - 2646 , - 2189 , - 2096 , - 2367 , - 3002 , - 4001 , - 5364 , - 1267 , - 3358 , - 5813 , - 2808 , - 167 , - 3714 , - 1801 , - 252 , - 4891 , - 4070 , - 3613 , - 3520 , - 3791 , - 4426 , - 5425 , - 964 , - 2691 , - 4782 , - 1413 , - 4232 , - 1591 , - 5138 , - 3225 , - 1676 , - 491 , - 5494 , - 5037 , - 4944 , - 5215 , - 26 , - 1025 , - 2388 , - 4115 , - 382 , - 2837 , - 5656 , - 3015 , - 738 , - 4649 , - 3100 , - 1915 , - 1094 , - 637 , - 544 , - 815 , - 1450 , - 2449 , - 3812 , - 5539 , - 1806 , - 4261 , - 1256 , - 4439 , - 2162 , - 249 , - 4524 , - 3339 , - 2518 , - 2061 , - 1968 , - 2239 , - 2874 , - 3873 , - 5236 , - 1139 , - 3230 , - 5685 , - 2680 , - 39 , - 3586 , - 1673 , - 124 , - 4763 , - 3942 , - 3485 , - 3392 , - 3663 , - 4298 , - 5297 , - 836 , - 2563 , - 4654 , - 1285 , - 4104 , - 1463 , - 5010 , - 3097 , - 1548 , - 363 , - 5366 , - 4909 , - 4816 , - 5087 , - 5722 , - 897 , - 2260 , - 3987 , - 254 , - 2709 , - 5528 , - 2887 , - 610 , - 4521 , - 2972 , - 1787 , - 966 , - 509 , - 416 , - 687 , - 1322 , - 2321 , - 3684 , - 5411 , - 1678 , - 4133 , - 1128 , - 4311 , - 2034 , - 121 , - 4396 , - 3211 , - 2390 , - 1933 , - 1840 , - 2111 , - 2746 , - 3745 , - 5108 , - 1011 , - 3102 , - 5557 , - 2552 , - 5735 , - 3458 , - 1545 , - 5820 , - 4635 , - 3814 , - 3357 , - 3264 , - 3535 , - 4170 , - 5169 , - 708 , - 2435 , - 4526 , - 1157 , - 3976 , - 1335 , - 4882 , - 2969 , - 1420 , - 235 , - 5238 , - 4781 , - 4688 , - 4959 , - 5594 , - 769 , - 2132 , - 3859 , - 126 , - 2581 , - 5400 , - 2759 , - 482 , - 4393 , - 2844 , - 1659 , - 838 , - 381 , - 288 , - 559 , - 1194 , - 2193 , - 3556 , - 5283 , - 1550 , - 4005 , - 1000 , - 4183 , - 1906 , - 5817 , - 4268 , - 3083 , - 2262 , - 1805 , - 1712 , - 1983 , - 2618 , - 3617 , - 4980 , - 883 , - 2974 , - 5429 , - 2424 , - 5607 , - 3330 , - 1417 , - 5692 , - 4507 , - 3686 , - 3229 , - 3136 , - 3407 , - 4042 , - 5041 , - 580 , - 2307 , - 4398 , - 1029 , - 3848 , - 1207 , - 4754 , - 2841 , - 1292 , - 107 , - 5110 , - 4653 , - 4560 , - 4831 , - 5466 , - 641 , - 2004 , - 3731 , - 5822 , - 2453 , - 5272 , - 2631 , - 354 , - 4265 , - 2716 , - 1531 , - 710 , - 253 , - 160 , - 431 , - 1066 , - 2065 , - 3428 , - 5155 , - 1422 , - 3877 , - 872 , - 4055 , - 1778 , - 5689 , - 4140 , - 2955 , - 2134 , - 1677 , - 1584 , - 1855 , - 2490 , - 3489 , - 4852 , - 755 , - 2846 , - 5301 , - 2296 , - 5479 , - 3202 , - 1289 , - 5564 , - 4379 , - 3558 , - 3101 , - 3008 , - 3279 , - 3914 , - 4913 , - 452 , - 2179 , - 4270 , - 901 , - 3720 , - 1079 , - 4626 , - 2713 , - 1164 , - 5803 , - 4982 , - 4525 , - 4432 , - 4703 , - 5338 , - 513 , - 1876 , - 3603 , - 5694 , - 2325 , - 5144 , - 2503 , - 226 , - 4137 , - 2588 , - 1403 , - 582 , - 125 , - 32 , - 303 , - 938 , - 1937 , - 3300 , - 5027 , - 1294 , - 3749 , - 744 , - 3927 , - 1650 , - 5561 , - 4012 , - 2827 , - 2006 , - 1549 , - 1456 , - 1727 , - 2362 , - 3361 , - 4724 , - 627 , - 2718 , - 5173 , - 2168 , - 5351 , - 3074 , - 1161 , - 5436 , - 4251 , - 3430 , - 2973 , - 2880 , - 3151 , - 3786 , - 4785 , - 324 , - 2051 , - 4142 , - 773 , - 3592 , - 951 , - 4498 , - 2585 , - 1036 , - 5675 , - 4854 , - 4397 , - 4304 , - 4575 , - 5210 , - 385 , - 1748 , - 3475 , - 5566 , - 2197 , - 5016 , - 2375 , - 98 , - 4009 , - 2460 , - 1275 , - 454 , - 5821 , - 5728 , - 175 , - 810 , - 1809 , - 3172 , - 4899 , - 1166 , - 3621 , - 616 , - 3799 , - 1522 , - 5433 , - 3884 , - 2699 , - 1878 , - 1421 , - 1328 , - 1599 , - 2234 , - 3233 , - 4596 , - 499 , - 2590 , - 5045 , - 2040 , - 5223 , - 2946 , - 1033 , - 5308 , - 4123 , - 3302 , - 2845 , - 2752 , - 3023 , - 3658 , - 4657 , - 196 , - 1923 , - 4014 , - 645 , - 3464 , - 823 , - 4370 , - 2457 , - 908 , - 5547 , - 4726 , - 4269 , - 4176 , - 4447 , - 5082 , - 257 , - 1620 , - 3347 , - 5438 , - 2069 , - 4888 , - 2247 , - 5794 , - 3881 , - 2332 , - 1147 , - 326 , - 5693 , - 5600 , - 47 , - 682 , - 1681 , - 3044 , - 4771 , - 1038 , - 3493 , - 488 , - 3671 , - 1394 , - 5305 , - 3756 , - 2571 , - 1750 , - 1293 , - 1200 , - 1471 , - 2106 , - 3105 , - 4468 , - 371 , - 2462 , - 4917 , - 1912 , - 5095 , - 2818 , - 905 , - 5180 , - 3995 , - 3174 , - 2717 , - 2624 , - 2895 , - 3530 , - 4529 , - 68 , - 1795 , - 3886 , - 517 , - 3336 , - 695 , - 4242 , - 2329 , - 780 , - 5419 , - 4598 , - 4141 , - 4048 , - 4319 , - 4954 , - 129 , - 1492 , - 3219 , - 5310 , - 1941 , - 4760 , - 2119 , - 5666 , - 3753 , - 2204 , - 1019 , - 198 , - 5565 , - 5472 , - 5743 , - 554 , - 1553 , - 2916 , - 4643 , - 910 , - 3365 , - 360 , - 3543 , - 1266 , - 5177 , - 3628 , - 2443 , - 1622 , - 1165 , - 1072 , - 1343 , - 1978 , - 2977 , - 4340 , - 243 , - 2334 , - 4789 , - 1784 , - 4967 , - 2690 , - 777 , - 5052 , - 3867 , - 3046 , - 2589 , - 2496 , - 2767 , - 3402 , - 4401 , - 5764 , - 1667 , - 3758 , - 389 , - 3208 , - 567 , - 4114 , - 2201 , - 652 , - 5291 , - 4470 , - 4013 , - 3920 , - 4191 , - 4826 , - 1 , - 1364 , - 3091 , - 5182 , - 1813 , - 4632 , - 1991 , - 5538 , - 3625 , - 2076 , - 891 , - 70 , - 5437 , - 5344 , - 5615 , - 426 , - 1425 , - 2788 , - 4515 , - 782 , - 3237 , - 232 , - 3415 , - 1138 , - 5049 , - 3500 , - 2315 , - 1494 , - 1037 , - 944 , - 1215 , - 1850 , - 2849 , - 4212 , - 115 , - 2206 , - 4661 , - 1656 , - 4839 , - 2562 , - 649 , - 4924 , - 3739 , - 2918 , - 2461 , - 2368 , - 2639 , - 3274 , - 4273 , - 5636 , - 1539 , - 3630 , - 261 , - 3080 , - 439 , - 3986 , - 2073 , - 524 , - 5163 , - 4342 , - 3885 , - 3792 , - 4063 , - 4698 , - 5697 , - 1236 , - 2963 , - 5054 , - 1685 , - 4504 , - 1863 , - 5410 , - 3497 , - 1948 , - 763 , - 5766 , - 5309 , - 5216 , - 5487 , - 298 , - 1297 , - 2660 , - 4387 , - 654 , - 3109 , - 104 , - 3287 , - 1010 , - 4921 , - 3372 , - 2187 , - 1366 , - 909 , - 816 , - 1087 , - 1722 , - 2721 , - 4084 , - 5811 , - 2078 , - 4533 , - 1528 , - 4711 , - 2434 , - 521 , - 4796 , - 3611 , - 2790 , - 2333 , - 2240 , - 2511 , - 3146 , - 4145 , - 5508 , - 1411 , - 3502 , - 133 , - 2952 , - 311 , - 3858 , - 1945 , - 396 , - 5035 , - 4214 , - 3757 , - 3664 , - 3935 , - 4570 , - 5569 , - 1108 , - 2835 , - 4926 , - 1557 , - 4376 , - 1735 , - 5282 , - 3369 , - 1820 , - 635 , - 5638 , - 5181 , - 5088 , - 5359 , - 170 , - 1169 , - 2532 , - 4259 , - 526 , - 2981 , - 5800 , - 3159 , - 882 , - 4793 , - 3244 , - 2059 , - 1238 , - 781 , - 688 , - 959 , - 1594 , - 2593 , - 3956 , - 5683 , - 1950 , - 4405 , - 1400 , - 4583 , - 2306 , - 393 , - 4668 , - 3483 , - 2662 , - 2205 , - 2112 , - 2383 , - 3018 , - 4017 , - 5380 , - 1283 , - 3374 , - 5 , - 2824 , - 183 , - 3730 , - 1817 , - 268 , - 4907 , - 4086 , - 3629 , - 3536 , - 3807 , - 4442 , - 5441 , - 980 , - 2707 , - 4798 , - 1429 , - 4248 , - 1607 , - 5154 , - 3241 , - 1692 , - 507 , - 5510 , - 5053 , - 4960 , - 5231 , - 42 , - 1041 , - 2404 , - 4131 , - 398 , - 2853 , - 5672 , - 3031 , - 754 , - 4665 , - 3116 , - 1931 , - 1110 , - 653 , - 560 , - 831 , - 1466 , - 2465 , - 3828 , - 5555 , - 1822 , - 4277 , - 1272 , - 4455 , - 2178 , - 265 , - 4540 , - 3355 , - 2534 , - 2077 , - 1984 , - 2255 , - 2890 , - 3889 , - 5252 , - 1155 , - 3246 , - 5701 , - 2696 , - 55 , - 3602 , - 1689 , - 140 , - 4779 , - 3958 , - 3501 , - 3408 , - 3679 , - 4314 , - 5313 , - 852 , - 2579 , - 4670 , - 1301 , - 4120 , - 1479 , - 5026 , - 3113 , - 1564 , - 379 , - 5382 , - 4925 , - 4832 , - 5103 , - 5738 , - 913 , - 2276 , - 4003 , - 270 , - 2725 , - 5544 , - 2903 , - 626 , - 4537 , - 2988 , - 1803 , - 982 , - 525 , - 432 , - 703 , - 1338 , - 2337 , - 3700 , - 5427 , - 1694 , - 4149 , - 1144 , - 4327 , - 2050 , - 137 , - 4412 , - 3227 , - 2406 , - 1949 , - 1856 , - 2127 , - 2762 , - 3761 , - 5124 , - 1027 , - 3118 , - 5573 , - 2568 , - 5751 , - 3474 , - 1561 , - 12 , - 4651 , - 3830 , - 3373 , - 3280 , - 3551 , - 4186 , - 5185 , - 724 , - 2451 , - 4542 , - 1173 , - 3992 , - 1351 , - 4898 , - 2985 , - 1436 , - 251 , - 5254 , - 4797 , - 4704 , - 4975 , - 5610 , - 785 , - 2148 , - 3875 , - 142 , - 2597 , - 5416 , - 2775 , - 498 , - 4409 , - 2860 , - 1675 , - 854 , - 397 , - 304 , - 575 , - 1210 , - 2209 , - 3572 , - 5299 , - 1566 , - 4021 , - 1016 , - 4199 , - 1922 , - 9 , - 4284 , - 3099 , - 2278 , - 1821 , - 1728 , - 1999 , - 2634 , - 3633 , - 4996 , - 899 , - 2990 , - 5445 , - 2440 , - 5623 , - 3346 , - 1433 , - 5708 , - 4523 , - 3702 , - 3245 , - 3152 , - 3423 , - 4058 , - 5057 , - 596 , - 2323 , - 4414 , - 1045 , - 3864 , - 1223 , - 4770 , - 2857 , - 1308 , - 123 , - 5126 , - 4669 , - 4576 , - 4847 , - 5482 , - 657 , - 2020 , - 3747 , - 14 , - 2469 , - 5288 , - 2647 , - 370 , - 4281 , - 2732 , - 1547 , - 726 , - 269 , - 176 , - 447 , - 1082 , - 2081 , - 3444 , - 5171 , - 1438 , - 3893 , - 888 , - 4071 , - 1794 , - 5705 , - 4156 , - 2971 , - 2150 , - 1693 , - 1600 , - 1871 , - 2506 , - 3505 , - 4868 , - 771 , - 2862 , - 5317 , - 2312 , - 5495 , - 3218 , - 1305 , - 5580 , - 4395 , - 3574 , - 3117 , - 3024 , - 3295 , - 3930 , - 4929 , - 468 , - 2195 , - 4286 , - 917 , - 3736 , - 1095 , - 4642 , - 2729 , - 1180 , - 5819 , - 4998 , - 4541 , - 4448 , - 4719 , - 5354 , - 529 , - 1892 , - 3619 , - 5710 , - 2341 , - 5160 , - 2519 , - 242 , - 4153 , - 2604 , - 1419 , - 598 , - 141 , - 48 , - 319 , - 954 , - 1953 , - 3316 , - 5043 , - 1310 , - 3765 , - 760 , - 3943 , - 1666 , - 5577 , - 4028 , - 2843 , - 2022 , - 1565 , - 1472 , - 1743 , - 2378 , - 3377 , - 4740 , - 643 , - 2734 , - 5189 , - 2184 , - 5367 , - 3090 , - 1177 , - 5452 , - 4267 , - 3446 , - 2989 , - 2896 , - 3167 , - 3802 , - 4801 , - 340 , - 2067 , - 4158 , - 789 , - 3608 , - 967 , - 4514 , - 2601 , - 1052 , - 5691 , - 4870 , - 4413 , - 4320 , - 4591 , - 5226 , - 401 , - 1764 , - 3491 , - 5582 , - 2213 , - 5032 , - 2391 , - 114 , - 4025 , - 2476 , - 1291 , - 470 , - 13 , - 5744 , - 191 , - 826 , - 1825 , - 3188 , - 4915 , - 1182 , - 3637 , - 632 , - 3815 , - 1538 , - 5449 , - 3900 , - 2715 , - 1894 , - 1437 , - 1344 , - 1615 , - 2250 , - 3249 , - 4612 , - 515 , - 2606 , - 5061 , - 2056 , - 5239 , - 2962 , - 1049 , - 5324 , - 4139 , - 3318 , - 2861 , - 2768 , - 3039 , - 3674 , - 4673 , - 212 , - 1939 , - 4030 , - 661 , - 3480 , - 839 , - 4386 , - 2473 , - 924 , - 5563 , - 4742 , - 4285 , - 4192 , - 4463 , - 5098 , - 273 , - 1636 , - 3363 , - 5454 , - 2085 , - 4904 , - 2263 , - 5810 , - 3897 , - 2348 , - 1163 , - 342 , - 5709 , - 5616 , - 63 , - 698 , - 1697 , - 3060 , - 4787 , - 1054 , - 3509 , - 504 , - 3687 , - 1410 , - 5321 , - 3772 , - 2587 , - 1766 , - 1309 , - 1216 , - 1487 , - 2122 , - 3121 , - 4484 , - 387 , - 2478 , - 4933 , - 1928 , - 5111 , - 2834 , - 921 , - 5196 , - 4011 , - 3190 , - 2733 , - 2640 , - 2911 , - 3546 , - 4545 , - 84 , - 1811 , - 3902 , - 533 , - 3352 , - 711 , - 4258 , - 2345 , - 796 , - 5435 , - 4614 , - 4157 , - 4064 , - 4335 , - 4970 , - 145 , - 1508 , - 3235 , - 5326 , - 1957 , - 4776 , - 2135 , - 5682 , - 3769 , - 2220 , - 1035 , - 214 , - 5581 , - 5488 , - 5759 , - 570 , - 1569 , - 2932 , - 4659 , - 926 , - 3381 , - 376 , - 3559 , - 1282 , - 5193 , - 3644 , - 2459 , - 1638 , - 1181 , - 1088 , - 1359 , - 1994 , - 2993 , - 4356 , - 259 , - 2350 , - 4805 , - 1800 , - 4983 , - 2706 , - 793 , - 5068 , - 3883 , - 3062 , - 2605 , - 2512 , - 2783 , - 3418 , - 4417 , - 5780 , - 1683 , - 3774 , - 405 , - 3224 , - 583 , - 4130 , - 2217 , - 668 , - 5307 , - 4486 , - 4029 , - 3936 , - 4207 , - 4842 , - 17 , - 1380 , - 3107 , - 5198 , - 1829 , - 4648 , - 2007 , - 5554 , - 3641 , - 2092 , - 907 , - 86 , - 5453 , - 5360 , - 5631 , - 442 , - 1441 , - 2804 , - 4531 , - 798 , - 3253 , - 248 , - 3431 , - 1154 , - 5065 , - 3516 , - 2331 , - 1510 , - 1053 , - 960 , - 1231 , - 1866 , - 2865 , - 4228 , - 131 , - 2222 , - 4677 , - 1672 , - 4855 , - 2578 , - 665 , - 4940 , - 3755 , - 2934 , - 2477 , - 2384 , - 2655 , - 3290 , - 4289 , - 5652 , - 1555 , - 3646 , - 277 , - 3096 , - 455 , - 4002 , - 2089 , - 540 , - 5179 , - 4358 , - 3901 , - 3808 , - 4079 , - 4714 , - 5713 , - 1252 , - 2979 , - 5070 , - 1701 , - 4520 , - 1879 , - 5426 , - 3513 , - 1964 , - 779 , - 5782 , - 5325 , - 5232 , - 5503 , - 314 , - 1313 , - 2676 , - 4403 , - 670 , - 3125 , - 120 , - 3303 , - 1026 , - 4937 , - 3388 , - 2203 , - 1382 , - 925 , - 832 , - 1103 , - 1738 , - 2737 , - 4100 , - 3 , - 2094 , - 4549 , - 1544 , - 4727 , - 2450 , - 537 , - 4812 , - 3627 , - 2806 , - 2349 , - 2256 , - 2527 , - 3162 , - 4161 , - 5524 , - 1427 , - 3518 , - 149 , - 2968 , - 327 , - 3874 , - 1961 , - 412 , - 5051 , - 4230 , - 3773 , - 3680 , - 3951 , - 4586 , - 5585 , - 1124 , - 2851 , - 4942 , - 1573 , - 4392 , - 1751 , - 5298 , - 3385 , - 1836 , - 651 , - 5654 , - 5197 , - 5104 , - 5375 , - 186 , - 1185 , - 2548 , - 4275 , - 542 , - 2997 , - 5816 , - 3175 , - 898 , - 4809 , - 3260 , - 2075 , - 1254 , - 797 , - 704 , - 975 , - 1610 , - 2609 , - 3972 , - 5699 , - 1966 , - 4421 , - 1416 , - 4599 , - 2322 , - 409 , - 4684 , - 3499 , - 2678 , - 2221 , - 2128 , - 2399 , - 3034 , - 4033 , - 5396 , - 1299 , - 3390 , - 21 , - 2840 , - 199 , - 3746 , - 1833 , - 284 , - 4923 , - 4102 , - 3645 , - 3552 , - 3823 , - 4458 , - 5457 , - 996 , - 2723 , - 4814 , - 1445 , - 4264 , - 1623 , - 5170 , - 3257 , - 1708 , - 523 , - 5526 , - 5069 , - 4976 , - 5247 , - 58 , - 1057 , - 2420 , - 4147 , - 414 , - 2869 , - 5688 , - 3047 , - 770 , - 4681 , - 3132 , - 1947 , - 1126 , - 669 , - 576 , - 847 , - 1482 , - 2481 , - 3844 , - 5571 , - 1838 , - 4293 , - 1288 , - 4471 , - 2194 , - 281 , - 4556 , - 3371 , - 2550 , - 2093 , - 2000 , - 2271 , - 2906 , - 3905 , - 5268 , - 1171 , - 3262 , - 5717 , - 2712 , - 71 , - 3618 , - 1705 , - 156 , - 4795 , - 3974 , - 3517 , - 3424 , - 3695 , - 4330 , - 5329 , - 868 , - 2595 , - 4686 , - 1317 , - 4136 , - 1495 , - 5042 , - 3129 , - 1580 , - 395 , - 5398 , - 4941 , - 4848 , - 5119 , - 5754 , - 929 , - 2292 , - 4019 , - 286 , - 2741 , - 5560 , - 2919 , - 642 , - 4553 , - 3004 , - 1819 , - 998 , - 541 , - 448 , - 719 , - 1354 , - 2353 , - 3716 , - 5443 , - 1710 , - 4165 , - 1160 , - 4343 , - 2066 , - 153 , - 4428 , - 3243 , - 2422 , - 1965 , - 1872 , - 2143 , - 2778 , - 3777 , - 5140 , - 1043 , - 3134 , - 5589 , - 2584 , - 5767 , - 3490 , - 1577 , - 28 , - 4667 , - 3846 , - 3389 , - 3296 , - 3567 , - 4202 , - 5201 , - 740 , - 2467 , - 4558 , - 1189 , - 4008 , - 1367 , - 4914 , - 3001 , - 1452 , - 267 , - 5270 , - 4813 , - 4720 , - 4991 , - 5626 , - 801 , - 2164 , - 3891 , - 158 , - 2613 , - 5432 , - 2791 , - 514 , - 4425 , - 2876 , - 1691 , - 870 , - 413 , - 320 , - 591 , - 1226 , - 2225 , - 3588 , - 5315 , - 1582 , - 4037 , - 1032 , - 4215 , - 1938 , - 25 , - 4300 , - 3115 , - 2294 , - 1837 , - 1744 , - 2015 , - 2650 , - 3649 , - 5012 , - 915 , - 3006 , - 5461 , - 2456 , - 5639 , - 3362 , - 1449 , - 5724 , - 4539 , - 3718 , - 3261 , - 3168 , - 3439 , - 4074 , - 5073 , - 612 , - 2339 , - 4430 , - 1061 , - 3880 , - 1239 , - 4786 , - 2873 , - 1324 , - 139 , - 5142 , - 4685 , - 4592 , - 4863 , - 5498 , - 673 , - 2036 , - 3763 , - 30 , - 2485 , - 5304 , - 2663 , - 386 , - 4297 , - 2748 , - 1563 , - 742 , - 285 , - 192 , - 463 , - 1098 , - 2097 , - 3460 , - 5187 , - 1454 , - 3909 , - 904 , - 4087 , - 1810 , - 5721 , - 4172 , - 2987 , - 2166 , - 1709 , - 1616 , - 1887 , - 2522 , - 3521 , - 4884 , - 787 , - 2878 , - 5333 , - 2328 , - 5511 , - 3234 , - 1321 , - 5596 , - 4411 , - 3590 , - 3133 , - 3040 , - 3311 , - 3946 , - 4945 , - 484 , - 2211 , - 4302 , - 933 , - 3752 , - 1111 , - 4658 , - 2745 , - 1196 , - 11 , - 5014 , - 4557 , - 4464 , - 4735 , - 5370 , - 545 , - 1908 , - 3635 , - 5726 , - 2357 , - 5176 , - 2535 , - 258 , - 4169 , - 2620 , - 1435 , - 614 , - 157 , - 64 , - 335 , - 970 , - 1969 , - 3332 , - 5059 , - 1326 , - 3781 , - 776 , - 3959 , - 1682 , - 5593 , - 4044 , - 2859 , - 2038 , - 1581 , - 1488 , - 1759 , - 2394 , - 3393 , - 4756 , - 659 , - 2750 , - 5205 , - 2200 , - 5383 , - 3106 , - 1193 , - 5468 , - 4283 , - 3462 , - 3005 , - 2912 , - 3183 , - 3818 , - 4817 , - 356 , - 2083 , - 4174 , - 805 , - 3624 , - 983 , - 4530 , - 2617 , - 1068 , - 5707 , - 4886 , - 4429 , - 4336 , - 4607 , - 5242 , - 417 , - 1780 , - 3507 , - 5598 , - 2229 , - 5048 , - 2407 , - 130 , - 4041 , - 2492 , - 1307 , - 486 , - 29 , - 5760 , - 207 , - 842 , - 1841 , - 3204 , - 4931 , - 1198 , - 3653 , - 648 , - 3831 , - 1554 , - 5465 , - 3916 , - 2731 , - 1910 , - 1453 , - 1360 , - 1631 , - 2266 , - 3265 , - 4628 , - 531 , - 2622 , - 5077 , - 2072 , - 5255 , - 2978 , - 1065 , - 5340 , - 4155 , - 3334 , - 2877 , - 2784 , - 3055 , - 3690 , - 4689 , - 228 , - 1955 , - 4046 , - 677 , - 3496 , - 855 , - 4402 , - 2489 , - 940 , - 5579 , - 4758 , - 4301 , - 4208 , - 4479 , - 5114 , - 289 , - 1652 , - 3379 , - 5470 , - 2101 , - 4920 , - 2279 , - 2 , - 3913 , - 2364 , - 1179 , - 358 , - 5725 , - 5632 , - 79 , - 714 , - 1713 , - 3076 , - 4803 , - 1070 , - 3525 , - 520 , - 3703 , - 1426 , - 5337 , - 3788 , - 2603 , - 1782 , - 1325 , - 1232 , - 1503 , - 2138 , - 3137 , - 4500 , - 403 , - 2494 , - 4949 , - 1944 , - 5127 , - 2850 , - 937 , - 5212 , - 4027 , - 3206 , - 2749 , - 2656 , - 2927 , - 3562 , - 4561 , - 100 , - 1827 , - 3918 , - 549 , - 3368 , - 727 , - 4274 , - 2361 , - 812 , - 5451 , - 4630 , - 4173 , - 4080 , - 4351 , - 4986 , - 161 , - 1524 , - 3251 , - 5342 , - 1973 , - 4792 , - 2151 , - 5698 , - 3785 , - 2236 , - 1051 , - 230 , - 5597 , - 5504 , - 5775 , - 586 , - 1585 , - 2948 , - 4675 , - 942 , - 3397 , - 392 , - 3575 , - 1298 , - 5209 , - 3660 , - 2475 , - 1654 , - 1197 , - 1104 , - 1375 , - 2010 , - 3009 , - 4372 , - 275 , - 2366 , - 4821 , - 1816 , - 4999 , - 2722 , - 809 , - 5084 , - 3899 , - 3078 , - 2621 , - 2528 , - 2799 , - 3434 , - 4433 , - 5796 , - 1699 , - 3790 , - 421 , - 3240 , - 599 , - 4146 , - 2233 , - 684 , - 5323 , - 4502 , - 4045 , - 3952 , - 4223 , - 4858 , - 33 , - 1396 , - 3123 , - 5214 , - 1845 , - 4664 , - 2023 , - 5570 , - 3657 , - 2108 , - 923 , - 102 , - 5469 , - 5376 , - 5647 , - 458 , - 1457 , - 2820 , - 4547 , - 814 , - 3269 , - 264 , - 3447 , - 1170 , - 5081 , - 3532 , - 2347 , - 1526 , - 1069 , - 976 , - 1247 , - 1882 , - 2881 , - 4244 , - 147 , - 2238 , - 4693 , - 1688 , - 4871 , - 2594 , - 681 , - 4956 , - 3771 , - 2950 , - 2493 , - 2400 , - 2671 , - 3306 , - 4305 , - 5668 , - 1571 , - 3662 , - 293 , - 3112 , - 471 , - 4018 , - 2105 , - 556 , - 5195 , - 4374 , - 3917 , - 3824 , - 4095 , - 4730 , - 5729 , - 1268 , - 2995 , - 5086 , - 1717 , - 4536 , - 1895 , - 5442 , - 3529 , - 1980 , - 795 , - 5798 , - 5341 , - 5248 , - 5519 , - 330 , - 1329 , - 2692 , - 4419 , - 686 , - 3141 , - 136 , - 3319 , - 1042 , - 4953 , - 3404 , - 2219 , - 1398 , - 941 , - 848 , - 1119 , - 1754 , - 2753 , - 4116 , - 19 , - 2110 , - 4565 , - 1560 , - 4743 , - 2466 , - 553 , - 4828 , - 3643 , - 2822 , - 2365 , - 2272 , - 2543 , - 3178 , - 4177 , - 5540 , - 1443 , - 3534 , - 165 , - 2984 , - 343 , - 3890 , - 1977 , - 428 , - 5067 , - 4246 , - 3789 , - 3696 , - 3967 , - 4602 , - 5601 , - 1140 , - 2867 , - 4958 , - 1589 , - 4408 , - 1767 , - 5314 , - 3401 , - 1852 , - 667 , - 5670 , - 5213 , - 5120 , - 5391 , - 202 , - 1201 , - 2564 , - 4291 , - 558 , - 3013 , - 8 , - 3191 , - 914 , - 4825 , - 3276 , - 2091 , - 1270 , - 813 , - 720 , - 991 , - 1626 , - 2625 , - 3988 , - 5715 , - 1982 , - 4437 , - 1432 , - 4615 , - 2338 , - 425 , - 4700 , - 3515 , - 2694 , - 2237 , - 2144 , - 2415 , - 3050 , - 4049 , - 5412 , - 1315 , - 3406 , - 37 , - 2856 , - 215 , - 3762 , - 1849 , - 300 , - 4939 , - 4118 , - 3661 , - 3568 , - 3839 , - 4474 , - 5473 , - 1012 , - 2739 , - 4830 , - 1461 , - 4280 , - 1639 , - 5186 , - 3273 , - 1724 , - 539 , - 5542 , - 5085 , - 4992 , - 5263 , - 74 , - 1073 , - 2436 , - 4163 , - 430 , - 2885 , - 5704 , - 3063 , - 786 , - 4697 , - 3148 , - 1963 , - 1142 , - 685 , - 592 , - 863 , - 1498 , - 2497 , - 3860 , - 5587 , - 1854 , - 4309 , - 1304 , - 4487 , - 2210 , - 297 , - 4572 , - 3387 , - 2566 , - 2109 , - 2016 , - 2287 , - 2922 , - 3921 , - 5284 , - 1187 , - 3278 , - 5733 , - 2728 , - 87 , - 3634 , - 1721 , - 172 , - 4811 , - 3990 , - 3533 , - 3440 , - 3711 , - 4346 , - 5345 , - 884 , - 2611 , - 4702 , - 1333 , - 4152 , - 1511 , - 5058 , - 3145 , - 1596 , - 411 , - 5414 , - 4957 , - 4864 , - 5135 , - 5770 , - 945 , - 2308 , - 4035 , - 302 , - 2757 , - 5576 , - 2935 , - 658 , - 4569 , - 3020 , - 1835 , - 1014 , - 557 , - 464 , - 735 , - 1370 , - 2369 , - 3732 , - 5459 , - 1726 , - 4181 , - 1176 , - 4359 , - 2082 , - 169 , - 4444 , - 3259 , - 2438 , - 1981 , - 1888 , - 2159 , - 2794 , - 3793 , - 5156 , - 1059 , - 3150 , - 5605 , - 2600 , - 5783 , - 3506 , - 1593 , - 44 , - 4683 , - 3862 , - 3405 , - 3312 , - 3583 , - 4218 , - 5217 , - 756 , - 2483 , - 4574 , - 1205 , - 4024 , - 1383 , - 4930 , - 3017 , - 1468 , - 283 , - 5286 , - 4829 , - 4736 , - 5007 , - 5642 , - 817 , - 2180 , - 3907 , - 174 , - 2629 , - 5448 , - 2807 , - 530 , - 4441 , - 2892 , - 1707 , - 886 , - 429 , - 336 , - 607 , - 1242 , - 2241 , - 3604 , - 5331 , - 1598 , - 4053 , - 1048 , - 4231 , - 1954 , - 41 , - 4316 , - 3131 , - 2310 , - 1853 , - 1760 , - 2031 , - 2666 , - 3665 , - 5028 , - 931 , - 3022 , - 5477 , - 2472 , - 5655 , - 3378 , - 1465 , - 5740 , - 4555 , - 3734 , - 3277 , - 3184 , - 3455 , - 4090 , - 5089 , - 628 , - 2355 , - 4446 , - 1077 , - 3896 , - 1255 , - 4802 , - 2889 , - 1340 , - 155 , - 5158 , - 4701 , - 4608 , - 4879 , - 5514 , - 689 , - 2052 , - 3779 , - 46 , - 2501 , - 5320 , - 2679 , - 402 , - 4313 , - 2764 , - 1579 , - 758 , - 301 , - 208 , - 479 , - 1114 , - 2113 , - 3476 , - 5203 , - 1470 , - 3925 , - 920 , - 4103 , - 1826 , - 5737 , - 4188 , - 3003 , - 2182 , - 1725 , - 1632 , - 1903 , - 2538 , - 3537 , - 4900 , - 803 , - 2894 , - 5349 , - 2344 , - 5527 , - 3250 , - 1337 , - 5612 , - 4427 , - 3606 , - 3149 , - 3056 , - 3327 , - 3962 , - 4961 , - 500 , - 2227 , - 4318 , - 949 , - 3768 , - 1127 , - 4674 , - 2761 , - 1212 , - 27 , - 5030 , - 4573 , - 4480 , - 4751 , - 5386 , - 561 , - 1924 , - 3651 , - 5742 , - 2373 , - 5192 , - 2551 , - 274 , - 4185 , - 2636 , - 1451 , - 630 , - 173 , - 80 , - 351 , - 986 , - 1985 , - 3348 , - 5075 , - 1342 , - 3797 , - 792 , - 3975 , - 1698 , - 5609 , - 4060 , - 2875 , - 2054 , - 1597 , - 1504 , - 1775 , - 2410 , - 3409 , - 4772 , - 675 , - 2766 , - 5221 , - 2216 , - 5399 , - 3122 , - 1209 , - 5484 , - 4299 , - 3478 , - 3021 , - 2928 , - 3199 , - 3834 , - 4833 , - 372 , - 2099 , - 4190 , - 821 , - 3640 , - 999 , - 4546 , - 2633 , - 1084 , - 5723 , - 4902 , - 4445 , - 4352 , - 4623 , - 5258 , - 433 , - 1796 , - 3523 , - 5614 , - 2245 , - 5064 , - 2423 , - 146 , - 4057 , - 2508 , - 1323 , - 502 , - 45 , - 5776 , - 223 , - 858 , - 1857 , - 3220 , - 4947 , - 1214 , - 3669 , - 664 , - 3847 , - 1570 , - 5481 , - 3932 , - 2747 , - 1926 , - 1469 , - 1376 , - 1647 , - 2282 , - 3281 , - 4644 , - 547 , - 2638 , - 5093 , - 2088 , - 5271 , - 2994 , - 1081 , - 5356 , - 4171 , - 3350 , - 2893 , - 2800 , - 3071 , - 3706 , - 4705 , - 244 , - 1971 , - 4062 , - 693 , - 3512 , - 871 , - 4418 , - 2505 , - 956 , - 5595 , - 4774 , - 4317 , - 4224 , - 4495 , - 5130 , - 305 , - 1668 , - 3395 , - 5486 , - 2117 , - 4936 , - 2295 , - 18 , - 3929 , - 2380 , - 1195 , - 374 , - 5741 , - 5648 , - 95 , - 730 , - 1729 , - 3092 , - 4819 , - 1086 , - 3541 , - 536 , - 3719 , - 1442 , - 5353 , - 3804 , - 2619 , - 1798 , - 1341 , - 1248 , - 1519 , - 2154 , - 3153 , - 4516 , - 419 , - 2510 , - 4965 , - 1960 , - 5143 , - 2866 , - 953 , - 5228 , - 4043 , - 3222 , - 2765 , - 2672 , - 2943 , - 3578 , - 4577 , - 116 , - 1843 , - 3934 , - 565 , - 3384 , - 743 , - 4290 , - 2377 , - 828 , - 5467 , - 4646 , - 4189 , - 4096 , - 4367 , - 5002 , - 177 , - 1540 , - 3267 , - 5358 , - 1989 , - 4808 , - 2167 , - 5714 , - 3801 , - 2252 , - 1067 , - 246 , - 5613 , - 5520 , - 5791 , - 602 , - 1601 , - 2964 , - 4691 , - 958 , - 3413 , - 408 , - 3591 , - 1314 , - 5225 , - 3676 , - 2491 , - 1670 , - 1213 , - 1120 , - 1391 , - 2026 , - 3025 , - 4388 , - 291 , - 2382 , - 4837 , - 1832 , - 5015 , - 2738 , - 825 , - 5100 , - 3915 , - 3094 , - 2637 , - 2544 , - 2815 , - 3450 , - 4449 , - 5812 , - 1715 , - 3806 , - 437 , - 3256 , - 615 , - 4162 , - 2249 , - 700 , - 5339 , - 4518 , - 4061 , - 3968 , - 4239 , - 4874 , - 49 , - 1412 , - 3139 , - 5230 , - 1861 , - 4680 , - 2039 , - 5586 , - 3673 , - 2124 , - 939 , - 118 , - 5485 , - 5392 , - 5663 , - 474 , - 1473 , - 2836 , - 4563 , - 830 , - 3285 , - 280 , - 3463 , - 1186 , - 5097 , - 3548 , - 2363 , - 1542 , - 1085 , - 992 , - 1263 , - 1898 , - 2897 , - 4260 , - 163 , - 2254 , - 4709 , - 1704 , - 4887 , - 2610 , - 697 , - 4972 , - 3787 , - 2966 , - 2509 , - 2416 , - 2687 , - 3322 , - 4321 , - 5684 , - 1587 , - 3678 , - 309 , - 3128 , - 487 , - 4034 , - 2121 , - 572 , - 5211 , - 4390 , - 3933 , - 3840 , - 4111 , - 4746 , - 5745 , - 1284 , - 3011 , - 5102 , - 1733 , - 4552 , - 1911 , - 5458 , - 3545 , - 1996 , - 811 , - 5814 , - 5357 , - 5264 , - 5535 , - 346 , - 1345 , - 2708 , - 4435 , - 702 , - 3157 , - 152 , - 3335 , - 1058 , - 4969 , - 3420 , - 2235 , - 1414 , - 957 , - 864 , - 1135 , - 1770 , - 2769 , - 4132 , - 35 , - 2126 , - 4581 , - 1576 , - 4759 , - 2482 , - 569 , - 4844 , - 3659 , - 2838 , - 2381 , - 2288 , - 2559 , - 3194 , - 4193 , - 5556 , - 1459 , - 3550 , - 181 , - 3000 , - 359 , - 3906 , - 1993 , - 444 , - 5083 , - 4262 , - 3805 , - 3712 , - 3983 , - 4618 , - 5617 , - 1156 , - 2883 , - 4974 , - 1605 , - 4424 , - 1783 , - 5330 , - 3417 , - 1868 , - 683 , - 5686 , - 5229 , - 5136 , - 5407 , - 218 , - 1217 , - 2580 , - 4307 , - 574 , - 3029 , - 24 , - 3207 , - 930 , - 4841 , - 3292 , - 2107 , - 1286 , - 829 , - 736 , - 1007 , - 1642 , - 2641 , - 4004 , - 5731 , - 1998 , - 4453 , - 1448 , - 4631 , - 2354 , - 441 , - 4716 , - 3531 , - 2710 , - 2253 , - 2160 , - 2431 , - 3066 , - 4065 , - 5428 , - 1331 , - 3422 , - 53 , - 2872 , - 231 , - 3778 , - 1865 , - 316 , - 4955 , - 4134 , - 3677 , - 3584 , - 3855 , - 4490 , - 5489 , - 1028 , - 2755 , - 4846 , - 1477 , - 4296 , - 1655 , - 5202 , - 3289 , - 1740 , - 555 , - 5558 , - 5101 , - 5008 , - 5279 , - 90 , - 1089 , - 2452 , - 4179 , - 446 , - 2901 , - 5720 , - 3079 , - 802 , - 4713 , - 3164 , - 1979 , - 1158 , - 701 , - 608 , - 879 , - 1514 , - 2513 , - 3876 , - 5603 , - 1870 , - 4325 , - 1320 , - 4503 , - 2226 , - 313 , - 4588 , - 3403 , - 2582 , - 2125 , - 2032 , - 2303 , - 2938 , - 3937 , - 5300 , - 1203 , - 3294 , - 5749 , - 2744 , - 103 , - 3650 , - 1737 , - 188 , - 4827 , - 4006 , - 3549 , - 3456 , - 3727 , - 4362 , - 5361 , - 900 , - 2627 , - 4718 , - 1349 , - 4168 , - 1527 , - 5074 , - 3161 , - 1612 , - 427 , - 5430 , - 4973 , - 4880 , - 5151 , - 5786 , - 961 , - 2324 , - 4051 , - 318 , - 2773 , - 5592 , - 2951 , - 674 , - 4585 , - 3036 , - 1851 , - 1030 , - 573 , - 480 , - 751 , - 1386 , - 2385 , - 3748 , - 5475 , - 1742 , - 4197 , - 1192 , - 4375 , - 2098 , - 185 , - 4460 , - 3275 , - 2454 , - 1997 , - 1904 , - 2175 , - 2810 , - 3809 , - 5172 , - 1075 , - 3166 , - 5621 , - 2616 , - 5799 , - 3522 , - 1609 , - 60 , - 4699 , - 3878 , - 3421 , - 3328 , - 3599 , - 4234 , - 5233 , - 772 , - 2499 , - 4590 , - 1221 , - 4040 , - 1399 , - 4946 , - 3033 , - 1484 , - 299 , - 5302 , - 4845 , - 4752 , - 5023 , - 5658 , - 833 , - 2196 , - 3923 , - 190 , - 2645 , - 5464 , - 2823 , - 546 , - 4457 , - 2908 , - 1723 , - 902 , - 445 , - 352 , - 623 , - 1258 , - 2257 , - 3620 , - 5347 , - 1614 , - 4069 , - 1064 , - 4247 , - 1970 , - 57 , - 4332 , - 3147 , - 2326 , - 1869 , - 1776 , - 2047 , - 2682 , - 3681 , - 5044 , - 947 , - 3038 , - 5493 , - 2488 , - 5671 , - 3394 , - 1481 , - 5756 , - 4571 , - 3750 , - 3293 , - 3200 , - 3471 , - 4106 , - 5105 , - 644 , - 2371 , - 4462 , - 1093 , - 3912 , - 1271 , - 4818 , - 2905 , - 1356 , - 171 , - 5174 , - 4717 , - 4624 , - 4895 , - 5530 , - 705 , - 2068 , - 3795 , - 62 , - 2517 , - 5336 , - 2695 , - 418 , - 4329 , - 2780 , - 1595 , - 774 , - 317 , - 224 , - 495 , - 1130 , - 2129 , - 3492 , - 5219 , - 1486 , - 3941 , - 936 , - 4119 , - 1842 , - 5753 , - 4204 , - 3019 , - 2198 , - 1741 , - 1648 , - 1919 , - 2554 , - 3553 , - 4916 , - 819 , - 2910 , - 5365 , - 2360 , - 5543 , - 3266 , - 1353 , - 5628 , - 4443 , - 3622 , - 3165 , - 3072 , - 3343 , - 3978 , - 4977 , - 516 , - 2243 , - 4334 , - 965 , - 3784 , - 1143 , - 4690 , - 2777 , - 1228 , - 43 , - 5046 , - 4589 , - 4496 , - 4767 , - 5402 , - 577 , - 1940 , - 3667 , - 5758 , - 2389 , - 5208 , - 2567 , - 290 , - 4201 , - 2652 , - 1467 , - 646 , - 189 , - 96 , - 367 , - 1002 , - 2001 , - 3364 , - 5091 , - 1358 , - 3813 , - 808 , - 3991 , - 1714 , - 5625 , - 4076 , - 2891 , - 2070 , - 1613 , - 1520 , - 1791 , - 2426 , - 3425 , - 4788 , - 691 , - 2782 , - 5237 , - 2232 , - 5415 , - 3138 , - 1225 , - 5500 , - 4315 , - 3494 , - 3037 , - 2944 , - 3215 , - 3850 , - 4849 , - 388 , - 2115 , - 4206 , - 837 , - 3656 , - 1015 , - 4562 , - 2649 , - 1100 , - 5739 , - 4918 , - 4461 , - 4368 , - 4639 , - 5274 , - 449 , - 1812 , - 3539 , - 5630 , - 2261 , - 5080 , - 2439 , - 162 , - 4073 , - 2524 , - 1339 , - 518 , - 61 , - 5792 , - 239 , - 874 , - 1873 , - 3236 , - 4963 , - 1230 , - 3685 , - 680 , - 3863 , - 1586 , - 5497 , - 3948 , - 2763 , - 1942 , - 1485 , - 1392 , - 1663 , - 2298 , - 3297 , - 4660 , - 563 , - 2654 , - 5109 , - 2104 , - 5287 , - 3010 , - 1097 , - 5372 , - 4187 , - 3366 , - 2909 , - 2816 , - 3087 , - 3722 , - 4721 , - 260 , - 1987 , - 4078 , - 709 , - 3528 , - 887 , - 4434 , - 2521 , - 972 , - 5611 , - 4790 , - 4333 , - 4240 , - 4511 , - 5146 , - 321 , - 1684 , - 3411 , - 5502 , - 2133 , - 4952 , - 2311 , - 34 , - 3945 , - 2396 , - 1211 , - 390 , - 5757 , - 5664 , - 111 , - 746 , - 1745 , - 3108 , - 4835 , - 1102 , - 3557 , - 552 , - 3735 , - 1458 , - 5369 , - 3820 , - 2635 , - 1814 , - 1357 , - 1264 , - 1535 , - 2170 , - 3169 , - 4532 , - 435 , - 2526 , - 4981 , - 1976 , - 5159 , - 2882 , - 969 , - 5244 , - 4059 , - 3238 , - 2781 , - 2688 , - 2959 , - 3594 , - 4593 , - 132 , - 1859 , - 3950 , - 581 , - 3400 , - 759 , - 4306 , - 2393 , - 844 , - 5483 , - 4662 , - 4205 , - 4112 , - 4383 , - 5018 , - 193 , - 1556 , - 3283 , - 5374 , - 2005 , - 4824 , - 2183 , - 5730 , - 3817 , - 2268 , - 1083 , - 262 , - 5629 , - 5536 , - 5807 , - 618 , - 1617 , - 2980 , - 4707 , - 974 , - 3429 , - 424 , - 3607 , - 1330 , - 5241 , - 3692 , - 2507 , - 1686 , - 1229 , - 1136 , - 1407 , - 2042 , - 3041 , - 4404 , - 307 , - 2398 , - 4853 , - 1848 , - 5031 , - 2754 , - 841 , - 5116 , - 3931 , - 3110 , - 2653 , - 2560 , - 2831 , - 3466 , - 4465 , - 4 , - 1731 , - 3822 , - 453 , - 3272 , - 631 , - 4178 , - 2265 , - 716 , - 5355 , - 4534 , - 4077 , - 3984 , - 4255 , - 4890 , - 65 , - 1428 , - 3155 , - 5246 , - 1877 , - 4696 , - 2055 , - 5602 , - 3689 , - 2140 , - 955 , - 134 , - 5501 , - 5408 , - 5679 , - 490 , - 1489 , - 2852 , - 4579 , - 846 , - 3301 , - 296 , - 3479 , - 1202 , - 5113 , - 3564 , - 2379 , - 1558 , - 1101 , - 1008 , - 1279 , - 1914 , - 2913 , - 4276 , - 179 , - 2270 , - 4725 , - 1720 , - 4903 , - 2626 , - 713 , - 4988 , - 3803 , - 2982 , - 2525 , - 2432 , - 2703 , - 3338 , - 4337 , - 5700 , - 1603 , - 3694 , - 325 , - 3144 , - 503 , - 4050 , - 2137 , - 588 , - 5227 , - 4406 , - 3949 , - 3856 , - 4127 , - 4762 , - 5761 , - 1300 , - 3027 , - 5118 , - 1749 , - 4568 , - 1927 , - 5474 , - 3561 , - 2012 , - 827 , - 6 , - 5373 , - 5280 , - 5551 , - 362 , - 1361 , - 2724 , - 4451 , - 718 , - 3173 , - 168 , - 3351 , - 1074 , - 4985 , - 3436 , - 2251 , - 1430 , - 973 , - 880 , - 1151 , - 1786 , - 2785 , - 4148 , - 51 , - 2142 , - 4597 , - 1592 , - 4775 , - 2498 , - 585 , - 4860 , - 3675 , - 2854 , - 2397 , - 2304 , - 2575 , - 3210 , - 4209 , - 5572 , - 1475 , - 3566 , - 197 , - 3016 , - 375 , - 3922 , - 2009 , - 460 , - 5099 , - 4278 , - 3821 , - 3728 , - 3999 , - 4634 , - 5633 , - 1172 , - 2899 , - 4990 , - 1621 , - 4440 , - 1799 , - 5346 , - 3433 , - 1884 , - 699 , - 5702 , - 5245 , - 5152 , - 5423 , - 234 , - 1233 , - 2596 , - 4323 , - 590 , - 3045 , - 40 , - 3223 , - 946 , - 4857 , - 3308 , - 2123 , - 1302 , - 845 , - 752 , - 1023 , - 1658 , - 2657 , - 4020 , - 5747 , - 2014 , - 4469 , - 1464 , - 4647 , - 2370 , - 457 , - 4732 , - 3547 , - 2726 , - 2269 , - 2176 , - 2447 , - 3082 , - 4081 , - 5444 , - 1347 , - 3438 , - 69 , - 2888 , - 247 , - 3794 , - 1881 , - 332 , - 4971 , - 4150 , - 3693 , - 3600 , - 3871 , - 4506 , - 5505 , - 1044 , - 2771 , - 4862 , - 1493 , - 4312 , - 1671 , - 5218 , - 3305 , - 1756 , - 571 , - 5574 , - 5117 , - 5024 , - 5295 , - 106 , - 1105 , - 2468 , - 4195 , - 462 , - 2917 , - 5736 , - 3095 , - 818 , - 4729 , - 3180 , - 1995 , - 1174 , - 717 , - 624 , - 895 , - 1530 , - 2529 , - 3892 , - 5619 , - 1886 , - 4341 , - 1336 , - 4519 , - 2242 , - 329 , - 4604 , - 3419 , - 2598 , - 2141 , - 2048 , - 2319 , - 2954 , - 3953 , - 5316 , - 1219 , - 3310 , - 5765 , - 2760 , - 119 , - 3666 , - 1753 , - 204 , - 4843 , - 4022 , - 3565 , - 3472 , - 3743 , - 4378 , - 5377 , - 916 , - 2643 , - 4734 , - 1365 , - 4184 , - 1543 , - 5090 , - 3177 , - 1628 , - 443 , - 5446 , - 4989 , - 4896 , - 5167 , - 5802 , - 977 , - 2340 , - 4067 , - 334 , - 2789 , - 5608 , - 2967 , - 690 , - 4601 , - 3052 , - 1867 , - 1046 , - 589 , - 496 , - 767 , - 1402 , - 2401 , - 3764 , - 5491 , - 1758 , - 4213 , - 1208 , - 4391 , - 2114 , - 201 , - 4476 , - 3291 , - 2470 , - 2013 , - 1920 , - 2191 , - 2826 , - 3825 , - 5188 , - 1091 , - 3182 , - 5637 , - 2632 , - 5815 , - 3538 , - 1625 , - 76 , - 4715 , - 3894 , - 3437 , - 3344 , - 3615 , - 4250 , - 5249 , - 788 , - 2515 , - 4606 , - 1237 , - 4056 , - 1415 , - 4962 , - 3049 , - 1500 , - 315 , - 5318 , - 4861 , - 4768 , - 5039 , - 5674 , - 849 , - 2212 , - 3939 , - 206 , - 2661 , - 5480 , - 2839 , - 562 , - 4473 , - 2924 , - 1739 , - 918 , - 461 , - 368 , - 639 , - 1274 , - 2273 , - 3636 , - 5363 , - 1630 , - 4085 , - 1080 , - 4263 , - 1986 , - 73 , - 4348 , - 3163 , - 2342 , - 1885 , - 1792 , - 2063 , - 2698 , - 3697 , - 5060 , - 963 , - 3054 , - 5509 , - 2504 , - 5687 , - 3410 , - 1497 , - 5772 , - 4587 , - 3766 , - 3309 , - 3216 , - 3487 , - 4122 , - 5121 , - 660 , - 2387 , - 4478 , - 1109 , - 3928 , - 1287 , - 4834 , - 2921 , - 1372 , - 187 , - 5190 , - 4733 , - 4640 , - 4911 , - 5546 , - 721 , - 2084 , - 3811 , - 78 , - 2533 , - 5352 , - 2711 , - 434 , - 4345 , - 2796 , - 1611 , - 790 , - 333 , - 240 , - 511 , - 1146 , - 2145 , - 3508 , - 5235 , - 1502 , - 3957 , - 952 , - 4135 , - 1858 , - 5769 , - 4220 , - 3035 , - 2214 , - 1757 , - 1664 , - 1935 , - 2570 , - 3569 , - 4932 , - 835 , - 2926 , - 5381 , - 2376 , - 5559 , - 3282 , - 1369 , - 5644 , - 4459 , - 3638 , - 3181 , - 3088 , - 3359 , - 3994 , - 4993 , - 532 , - 2259 , - 4350 , - 981 , - 3800 , - 1159 , - 4706 , - 2793 , - 1244 , - 59 , - 5062 , - 4605 , - 4512 , - 4783 , - 5418 , - 593 , - 1956 , - 3683 , - 5774 , - 2405 , - 5224 , - 2583 , - 306 , - 4217 , - 2668 , - 1483 , - 662 , - 205 , - 112 , - 383 , - 1018 , - 2017 , - 3380 , - 5107 , - 1374 , - 3829 , - 824 , - 4007 , - 1730 , - 5641 , - 4092 , - 2907 , - 2086 , - 1629 , - 1536 , - 1807 , - 2442 , - 3441 , - 4804 , - 707 , - 2798 , - 5253 , - 2248 , - 5431 , - 3154 , - 1241 , - 5516 , - 4331 , - 3510 , - 3053 , - 2960 , - 3231 , - 3866 , - 4865 , - 404 , - 2131 , - 4222 , - 853 , - 3672 , - 1031 , - 4578 , - 2665 , - 1116 , - 5755 , - 4934 , - 4477 , - 4384 , - 4655 , - 5290 , - 465 , - 1828 , - 3555 , - 5646 , - 2277 , - 5096 , - 2455 , - 178 , - 4089 , - 2540 , - 1355 , - 534 , - 77 , - 5808 , - 255 , - 890 , - 1889 , - 3252 , - 4979 , - 1246 , - 3701 , - 696 , - 3879 , - 1602 , - 5513 , - 3964 , - 2779 , - 1958 , - 1501 , - 1408 , - 1679 , - 2314 , - 3313 , - 4676 , - 579 , - 2670 , - 5125 , - 2120 , - 5303 , - 3026 , - 1113 , - 5388 , - 4203 , - 3382 , - 2925 , - 2832 , - 3103 , - 3738 , - 4737 , - 276 , - 2003 , - 4094 , - 725 , - 3544 , - 903 , - 4450 , - 2537 , - 988 , - 5627 , - 4806 , - 4349 , - 4256 , - 4527 , - 5162 , - 337 , - 1700 , - 3427 , - 5518 , - 2149 , - 4968 , - 2327 , - 50 , - 3961 , - 2412 , - 1227 , - 406 , - 5773 , - 5680 , - 127 , - 762 , - 1761 , - 3124 , - 4851 , - 1118 , - 3573 , - 568 , - 3751 , - 1474 , - 5385 , - 3836 , - 2651 , - 1830 , - 1373 , - 1280 , - 1551 , - 2186 , - 3185 , - 4548 , - 451 , - 2542 , - 4997 , - 1992 , - 5175 , - 2898 , - 985 , - 5260 , - 4075 , - 3254 , - 2797 , - 2704 , - 2975 , - 3610 , - 4609 , - 148 , - 1875 , - 3966 , - 597 , - 3416 , - 775 , - 4322 , - 2409 , - 860 , - 5499 , - 4678 , - 4221 , - 4128 , - 4399 , - 5034 , - 209 , - 1572 , - 3299 , - 5390 , - 2021 , - 4840 , - 2199 , - 5746 , - 3833 , - 2284 , - 1099 , - 278 , - 5645 , - 5552 , - 5823 , - 634 , - 1633 , - 2996 , - 4723 , - 990 , - 3445 , - 440 , - 3623 , - 1346 , - 5257 , - 3708 , - 2523 , - 1702 , - 1245 , - 1152 , - 1423 , - 2058 , - 3057 , - 4420 , - 323 , - 2414 , - 4869 , - 1864 , - 5047 , - 2770 , - 857 , - 5132 , - 3947 , - 3126 , - 2669 , - 2576 , - 2847 , - 3482 , - 4481 , - 20 , - 1747 , - 3838 , - 469 , - 3288 , - 647 , - 4194 , - 2281 , - 732 , - 5371 , - 4550 , - 4093 , - 4000 , - 4271 , - 4906 , - 81 , - 1444 , - 3171 , - 5262 , - 1893 , - 4712 , - 2071 , - 5618 , - 3705 , - 2156 , - 971 , - 150 , - 5517 , - 5424 , - 5695 , - 506 , - 1505 , - 2868 , - 4595 , - 862 , - 3317 , - 312 , - 3495 , - 1218 , - 5129 , - 3580 , - 2395 , - 1574 , - 1117 , - 1024 , - 1295 , - 1930 , - 2929 , - 4292 , - 195 , - 2286 , - 4741 , - 1736 , - 4919 , - 2642 , - 729 , - 5004 , - 3819 , - 2998 , - 2541 , - 2448 , - 2719 , - 3354 , - 4353 , - 5716 , - 1619 , - 3710 , - 341 , - 3160 , - 519 , - 4066 , - 2153 , - 604 , - 5243 , - 4422 , - 3965 , - 3872 , - 4143 , - 4778 , - 5777 , - 1316 , - 3043 , - 5134 , - 1765 , - 4584 , - 1943 , - 5490 , - 3577 , - 2028 , - 843 , - 22 , - 5389 , - 5296 , - 5567 , - 378 , - 1377 , - 2740 , - 4467 , - 734 , - 3189 , - 184 , - 3367 , - 1090 , - 5001 , - 3452 , - 2267 , - 1446 , - 989 , - 896 , - 1167 , - 1802 , - 2801 , - 4164 , - 67 , - 2158 , - 4613 , - 1608 , - 4791 , - 2514 , - 601 , - 4876 , - 3691 , - 2870 , - 2413 , - 2320 , - 2591 , - 3226 , - 4225 , - 5588 , - 1491 , - 3582 , - 213 , - 3032 , - 391 , - 3938 , - 2025 , - 476 , - 5115 , - 4294 , - 3837 , - 3744 , - 4015 , - 4650 , - 5649 , - 1188 , - 2915 , - 5006 , - 1637 , - 4456 , - 1815 , - 5362 , - 3449 , - 1900 , - 715 , - 5718 , - 5261 , - 5168 , - 5439 , - 250 , - 1249 , - 2612 , - 4339 , - 606 , - 3061 , - 56 , - 3239 , - 962 , - 4873 , - 3324 , - 2139 , - 1318 , - 861 , - 768 , - 1039 , - 1674 , - 2673 , - 4036 , - 5763 , - 2030 , - 4485 , - 1480 , - 4663 , - 2386 , - 473 , - 4748 , - 3563 , - 2742 , - 2285 , - 2192 , - 2463 , - 3098 , - 4097 , - 5460 , - 1363 , - 3454 , - 85 , - 2904 , - 263 , - 3810 , - 1897 , - 348 , - 4987 , - 4166 , - 3709 , - 3616 , - 3887 , - 4522 , - 5521 , - 1060 , - 2787 , - 4878 , - 1509 , - 4328 , - 1687 , - 5234 , - 3321 , - 1772 , - 587 , - 5590 , - 5133 , - 5040 , - 5311 , - 122 , - 1121 , - 2484 , - 4211 , - 478 , - 2933 , - 5752 , - 3111 , - 834 , - 4745 , - 3196 , - 2011 , - 1190 , - 733 , - 640 , - 911 , - 1546 , - 2545 , - 3908 , - 5635 , - 1902 , - 4357 , - 1352 , - 4535 , - 2258 , - 345 , - 4620 , - 3435 , - 2614 , - 2157 , - 2064 , - 2335 , - 2970 , - 3969 , - 5332 , - 1235 , - 3326 , - 5781 , - 2776 , - 135 , - 3682 , - 1769 , - 220 , - 4859 , - 4038 , - 3581 , - 3488 , - 3759 , - 4394 , - 5393 , - 932 , - 2659 , - 4750 , - 1381 , - 4200 , - 1559 , - 5106 , - 3193 , - 1644 , - 459 , - 5462 , - 5005 , - 4912 , - 5183 , - 5818 , - 993 , - 2356 , - 4083 , - 350 , - 2805 , - 5624 , - 2983 , - 706 , - 4617 , - 3068 , - 1883 , - 1062 , - 605 , - 512 , - 783 , - 1418 , - 2417 , - 3780 , - 5507 , - 1774 , - 4229 , - 1224 , - 4407 , - 2130 , - 217 , - 4492 , - 3307 , - 2486 , - 2029 , - 1936 , - 2207 , - 2842 , - 3841 , - 5204 , - 1107 , - 3198 , - 5653 , - 2648 , - 7 , - 3554 , - 1641 , - 92 , - 4731 , - 3910 , - 3453 , - 3360 , - 3631 , - 4266 , - 5265 , - 804 , - 2531 , - 4622 , - 1253 , - 4072 , - 1431 , - 4978 , - 3065 , - 1516 , - 331 , - 5334 , - 4877 , - 4784 , - 5055 , - 5690 , - 865 , - 2228 , - 3955 , - 222 , - 2677 , - 5496 , - 2855 , - 578 , - 4489 , - 2940 , - 1755 , - 934 , - 477 , - 384 , - 655 , - 1290 , - 2289 , - 3652 , - 5379 , - 1646 , - 4101 , - 1096 , - 4279 , - 2002 , - 89 , - 4364 , - 3179 , - 2358 , - 1901 , - 1808 , - 2079 , - 2714 , - 3713 , - 5076 , - 979 , - 3070 , - 5525 , - 2520 , - 5703 , - 3426 , - 1513 , - 5788 , - 4603 , - 3782 , - 3325 , - 3232 , - 3503 , - 4138 , - 5137 , - 676 , - 2403 , - 4494 , - 1125 , - 3944 , - 1303 , - 4850 , - 2937 , - 1388 , - 203 , - 5206 , - 4749 , - 4656 , - 4927 , - 5562 , - 737 , - 2100 , - 3827 , - 94 , - 2549 , - 5368 , - 2727 , - 450 , - 4361 , - 2812 , - 1627 , - 806 , - 349 , - 256 , - 527 , - 1162 , - 2161 , - 3524 , - 5251 , - 1518 , - 3973 , - 968 , - 4151 , - 1874 , - 5785 , - 4236 , - 3051 , - 2230 , - 1773 , - 1680 , - 1951 , - 2586 , - 3585 , - 4948 , - 851 , - 2942 , - 5397 , - 2392 , - 5575 , - 3298 , - 1385 , - 5660 , - 4475 , - 3654 , - 3197 , - 3104 , - 3375 , - 4010 , - 5009 , - 548 , - 2275 , - 4366 , - 997 , - 3816 , - 1175 , - 4722 , - 2809 , - 1260 , - 75 , - 5078 , - 4621 , - 4528 , - 4799 , - 5434 , - 609 , - 1972 , - 3699 , - 5790 , - 2421 , - 5240 , - 2599 , - 322 , - 4233 , - 2684 , - 1499 , - 678 , - 221 , - 128 , - 399 , - 1034 , - 2033 , - 3396 , - 5123 , - 1390 , - 3845 , - 840 , - 4023 , - 1746 , - 5657 , - 4108 , - 2923 , - 2102 , - 1645 , - 1552 , - 1823 , - 2458 , - 3457 , - 4820 , - 723 , - 2814 , - 5269 , - 2264 , - 5447 , - 3170 , - 1257 , - 5532 , - 4347 , - 3526 , - 3069 , - 2976 , - 3247 , - 3882 , - 4881 , - 420 , - 2147 , - 4238 , - 869 , - 3688 , - 1047 , - 4594 , - 2681 , - 1132 , - 5771 , - 4950 , - 4493 , - 4400 , - 4671 , - 5306 , - 481 , - 1844 , - 3571 , - 5662 , - 2293 , - 5112 , - 2471 , - 194 , - 4105 , - 2556 , - 1371 , - 550 , - 93 , - 0 , - 507 , - 1382 , - 2625 , - 4236 , - 327 , - 2674 , - 5389 , - 2584 , - 147 , - 3966 , - 2265 , - 932 , - 5855 , - 5258 , - 5029 , - 5168 , - 5675 , - 662 , - 1905 , - 3516 , - 5495 , - 1954 , - 4669 , - 1864 , - 5315 , - 3246 , - 1545 , - 212 , - 5135 , - 4538 , - 4309 , - 4448 , - 4955 , - 5830 , - 1185 , - 2796 , - 4775 , - 1234 , - 3949 , - 1144 , - 4595 , - 2526 , - 825 , - 5380 , - 4415 , - 3818 , - 3589 , - 3728 , - 4235 , - 5110 , - 465 , - 2076 , - 4055 , - 514 , - 3229 , - 424 , - 3875 , - 1806 , - 105 , - 4660 , - 3695 , - 3098 , - 2869 , - 3008 , - 3515 , - 4390 , - 5633 , - 1356 , - 3335 , - 5682 , - 2509 , - 5592 , - 3155 , - 1086 , - 5273 , - 3940 , - 2975 , - 2378 , - 2149 , - 2288 , - 2795 , - 3670 , - 4913 , - 636 , - 2615 , - 4962 , - 1789 , - 4872 , - 2435 , - 366 , - 4553 , - 3220 , - 2255 , - 1658 , - 1429 , - 1568 , - 2075 , - 2950 , - 4193 , - 5804 , - 1895 , - 4242 , - 1069 , - 4152 , - 1715 , - 5534 , - 3833 , - 2500 , - 1535 , - 938 , - 709 , - 848 , - 1355 , - 2230 , - 3473 , - 5084 , - 1175 , - 3522 , - 349 , - 3432 , - 995 , - 4814 , - 3113 , - 1780 , - 815 , - 218 , - 5877 , - 128 , - 635 , - 1510 , - 2753 , - 4364 , - 455 , - 2802 , - 5517 , - 2712 , - 275 , - 4094 , - 2393 , - 1060 , - 95 , - 5386 , - 5157 , - 5296 , - 5803 , - 790 , - 2033 , - 3644 , - 5623 , - 2082 , - 4797 , - 1992 , - 5443 , - 3374 , - 1673 , - 340 , - 5263 , - 4666 , - 4437 , - 4576 , - 5083 , - 70 , - 1313 , - 2924 , - 4903 , - 1362 , - 4077 , - 1272 , - 4723 , - 2654 , - 953 , - 5508 , - 4543 , - 3946 , - 3717 , - 3856 , - 4363 , - 5238 , - 593 , - 2204 , - 4183 , - 642 , - 3357 , - 552 , - 4003 , - 1934 , - 233 , - 4788 , - 3823 , - 3226 , - 2997 , - 3136 , - 3643 , - 4518 , - 5761 , - 1484 , - 3463 , - 5810 , - 2637 , - 5720 , - 3283 , - 1214 , - 5401 , - 4068 , - 3103 , - 2506 , - 2277 , - 2416 , - 2923 , - 3798 , - 5041 , - 764 , - 2743 , - 5090 , - 1917 , - 5000 , - 2563 , - 494 , - 4681 , - 3348 , - 2383 , - 1786 , - 1557 , - 1696 , - 2203 , - 3078 , - 4321 , - 44 , - 2023 , - 4370 , - 1197 , - 4280 , - 1843 , - 5662 , - 3961 , - 2628 , - 1663 , - 1066 , - 837 , - 976 , - 1483 , - 2358 , - 3601 , - 5212 , - 1303 , - 3650 , - 477 , - 3560 , - 1123 , - 4942 , - 3241 , - 1908 , - 943 , - 346 , - 117 , - 256 , - 763 , - 1638 , - 2881 , - 4492 , - 583 , - 2930 , - 5645 , - 2840 , - 403 , - 4222 , - 2521 , - 1188 , - 223 , - 5514 , - 5285 , - 5424 , - 43 , - 918 , - 2161 , - 3772 , - 5751 , - 2210 , - 4925 , - 2120 , - 5571 , - 3502 , - 1801 , - 468 , - 5391 , - 4794 , - 4565 , - 4704 , - 5211 , - 198 , - 1441 , - 3052 , - 5031 , - 1490 , - 4205 , - 1400 , - 4851 , - 2782 , - 1081 , - 5636 , - 4671 , - 4074 , - 3845 , - 3984 , - 4491 , - 5366 , - 721 , - 2332 , - 4311 , - 770 , - 3485 , - 680 , - 4131 , - 2062 , - 361 , - 4916 , - 3951 , - 3354 , - 3125 , - 3264 , - 3771 , - 4646 , - 1 , - 1612 , - 3591 , - 50 , - 2765 , - 5848 , - 3411 , - 1342 , - 5529 , - 4196 , - 3231 , - 2634 , - 2405 , - 2544 , - 3051 , - 3926 , - 5169 , - 892 , - 2871 , - 5218 , - 2045 , - 5128 , - 2691 , - 622 , - 4809 , - 3476 , - 2511 , - 1914 , - 1685 , - 1824 , - 2331 , - 3206 , - 4449 , - 172 , - 2151 , - 4498 , - 1325 , - 4408 , - 1971 , - 5790 , - 4089 , - 2756 , - 1791 , - 1194 , - 965 , - 1104 , - 1611 , - 2486 , - 3729 , - 5340 , - 1431 , - 3778 , - 605 , - 3688 , - 1251 , - 5070 , - 3369 , - 2036 , - 1071 , - 474 , - 245 , - 384 , - 891 , - 1766 , - 3009 , - 4620 , - 711 , - 3058 , - 5773 , - 2968 , - 531 , - 4350 , - 2649 , - 1316 , - 351 , - 5642 , - 5413 , - 5552 , - 171 , - 1046 , - 2289 , - 3900 , - 5879 , - 2338 , - 5053 , - 2248 , - 5699 , - 3630 , - 1929 , - 596 , - 5519 , - 4922 , - 4693 , - 4832 , - 5339 , - 326 , - 1569 , - 3180 , - 5159 , - 1618 , - 4333 , - 1528 , - 4979 , - 2910 , - 1209 , - 5764 , - 4799 , - 4202 , - 3973 , - 4112 , - 4619 , - 5494 , - 849 , - 2460 , - 4439 , - 898 , - 3613 , - 808 , - 4259 , - 2190 , - 489 , - 5044 , - 4079 , - 3482 , - 3253 , - 3392 , - 3899 , - 4774 , - 129 , - 1740 , - 3719 , - 178 , - 2893 , - 88 , - 3539 , - 1470 , - 5657 , - 4324 , - 3359 , - 2762 , - 2533 , - 2672 , - 3179 , - 4054 , - 5297 , - 1020 , - 2999 , - 5346 , - 2173 , - 5256 , - 2819 , - 750 , - 4937 , - 3604 , - 2639 , - 2042 , - 1813 , - 1952 , - 2459 , - 3334 , - 4577 , - 300 , - 2279 , - 4626 , - 1453 , - 4536 , - 2099 , - 30 , - 4217 , - 2884 , - 1919 , - 1322 , - 1093 , - 1232 , - 1739 , - 2614 , - 3857 , - 5468 , - 1559 , - 3906 , - 733 , - 3816 , - 1379 , - 5198 , - 3497 , - 2164 , - 1199 , - 602 , - 373 , - 512 , - 1019 , - 1894 , - 3137 , - 4748 , - 839 , - 3186 , - 13 , - 3096 , - 659 , - 4478 , - 2777 , - 1444 , - 479 , - 5770 , - 5541 , - 5680 , - 299 , - 1174 , - 2417 , - 4028 , - 119 , - 2466 , - 5181 , - 2376 , - 5827 , - 3758 , - 2057 , - 724 , - 5647 , - 5050 , - 4821 , - 4960 , - 5467 , - 454 , - 1697 , - 3308 , - 5287 , - 1746 , - 4461 , - 1656 , - 5107 , - 3038 , - 1337 , - 4 , - 4927 , - 4330 , - 4101 , - 4240 , - 4747 , - 5622 , - 977 , - 2588 , - 4567 , - 1026 , - 3741 , - 936 , - 4387 , - 2318 , - 617 , - 5172 , - 4207 , - 3610 , - 3381 , - 3520 , - 4027 , - 4902 , - 257 , - 1868 , - 3847 , - 306 , - 3021 , - 216 , - 3667 , - 1598 , - 5785 , - 4452 , - 3487 , - 2890 , - 2661 , - 2800 , - 3307 , - 4182 , - 5425 , - 1148 , - 3127 , - 5474 , - 2301 , - 5384 , - 2947 , - 878 , - 5065 , - 3732 , - 2767 , - 2170 , - 1941 , - 2080 , - 2587 , - 3462 , - 4705 , - 428 , - 2407 , - 4754 , - 1581 , - 4664 , - 2227 , - 158 , - 4345 , - 3012 , - 2047 , - 1450 , - 1221 , - 1360 , - 1867 , - 2742 , - 3985 , - 5596 , - 1687 , - 4034 , - 861 , - 3944 , - 1507 , - 5326 , - 3625 , - 2292 , - 1327 , - 730 , - 501 , - 640 , - 1147 , - 2022 , - 3265 , - 4876 , - 967 , - 3314 , - 141 , - 3224 , - 787 , - 4606 , - 2905 , - 1572 , - 607 , - 10 , - 5669 , - 5808 , - 427 , - 1302 , - 2545 , - 4156 , - 247 , - 2594 , - 5309 , - 2504 , - 67 , - 3886 , - 2185 , - 852 , - 5775 , - 5178 , - 4949 , - 5088 , - 5595 , - 582 , - 1825 , - 3436 , - 5415 , - 1874 , - 4589 , - 1784 , - 5235 , - 3166 , - 1465 , - 132 , - 5055 , - 4458 , - 4229 , - 4368 , - 4875 , - 5750 , - 1105 , - 2716 , - 4695 , - 1154 , - 3869 , - 1064 , - 4515 , - 2446 , - 745 , - 5300 , - 4335 , - 3738 , - 3509 , - 3648 , - 4155 , - 5030 , - 385 , - 1996 , - 3975 , - 434 , - 3149 , - 344 , - 3795 , - 1726 , - 25 , - 4580 , - 3615 , - 3018 , - 2789 , - 2928 , - 3435 , - 4310 , - 5553 , - 1276 , - 3255 , - 5602 , - 2429 , - 5512 , - 3075 , - 1006 , - 5193 , - 3860 , - 2895 , - 2298 , - 2069 , - 2208 , - 2715 , - 3590 , - 4833 , - 556 , - 2535 , - 4882 , - 1709 , - 4792 , - 2355 , - 286 , - 4473 , - 3140 , - 2175 , - 1578 , - 1349 , - 1488 , - 1995 , - 2870 , - 4113 , - 5724 , - 1815 , - 4162 , - 989 , - 4072 , - 1635 , - 5454 , - 3753 , - 2420 , - 1455 , - 858 , - 629 , - 768 , - 1275 , - 2150 , - 3393 , - 5004 , - 1095 , - 3442 , - 269 , - 3352 , - 915 , - 4734 , - 3033 , - 1700 , - 735 , - 138 , - 5797 , - 48 , - 555 , - 1430 , - 2673 , - 4284 , - 375 , - 2722 , - 5437 , - 2632 , - 195 , - 4014 , - 2313 , - 980 , - 15 , - 5306 , - 5077 , - 5216 , - 5723 , - 710 , - 1953 , - 3564 , - 5543 , - 2002 , - 4717 , - 1912 , - 5363 , - 3294 , - 1593 , - 260 , - 5183 , - 4586 , - 4357 , - 4496 , - 5003 , - 5878 , - 1233 , - 2844 , - 4823 , - 1282 , - 3997 , - 1192 , - 4643 , - 2574 , - 873 , - 5428 , - 4463 , - 3866 , - 3637 , - 3776 , - 4283 , - 5158 , - 513 , - 2124 , - 4103 , - 562 , - 3277 , - 472 , - 3923 , - 1854 , - 153 , - 4708 , - 3743 , - 3146 , - 2917 , - 3056 , - 3563 , - 4438 , - 5681 , - 1404 , - 3383 , - 5730 , - 2557 , - 5640 , - 3203 , - 1134 , - 5321 , - 3988 , - 3023 , - 2426 , - 2197 , - 2336 , - 2843 , - 3718 , - 4961 , - 684 , - 2663 , - 5010 , - 1837 , - 4920 , - 2483 , - 414 , - 4601 , - 3268 , - 2303 , - 1706 , - 1477 , - 1616 , - 2123 , - 2998 , - 4241 , - 5852 , - 1943 , - 4290 , - 1117 , - 4200 , - 1763 , - 5582 , - 3881 , - 2548 , - 1583 , - 986 , - 757 , - 896 , - 1403 , - 2278 , - 3521 , - 5132 , - 1223 , - 3570 , - 397 , - 3480 , - 1043 , - 4862 , - 3161 , - 1828 , - 863 , - 266 , - 37 , - 176 , - 683 , - 1558 , - 2801 , - 4412 , - 503 , - 2850 , - 5565 , - 2760 , - 323 , - 4142 , - 2441 , - 1108 , - 143 , - 5434 , - 5205 , - 5344 , - 5851 , - 838 , - 2081 , - 3692 , - 5671 , - 2130 , - 4845 , - 2040 , - 5491 , - 3422 , - 1721 , - 388 , - 5311 , - 4714 , - 4485 , - 4624 , - 5131 , - 118 , - 1361 , - 2972 , - 4951 , - 1410 , - 4125 , - 1320 , - 4771 , - 2702 , - 1001 , - 5556 , - 4591 , - 3994 , - 3765 , - 3904 , - 4411 , - 5286 , - 641 , - 2252 , - 4231 , - 690 , - 3405 , - 600 , - 4051 , - 1982 , - 281 , - 4836 , - 3871 , - 3274 , - 3045 , - 3184 , - 3691 , - 4566 , - 5809 , - 1532 , - 3511 , - 5858 , - 2685 , - 5768 , - 3331 , - 1262 , - 5449 , - 4116 , - 3151 , - 2554 , - 2325 , - 2464 , - 2971 , - 3846 , - 5089 , - 812 , - 2791 , - 5138 , - 1965 , - 5048 , - 2611 , - 542 , - 4729 , - 3396 , - 2431 , - 1834 , - 1605 , - 1744 , - 2251 , - 3126 , - 4369 , - 92 , - 2071 , - 4418 , - 1245 , - 4328 , - 1891 , - 5710 , - 4009 , - 2676 , - 1711 , - 1114 , - 885 , - 1024 , - 1531 , - 2406 , - 3649 , - 5260 , - 1351 , - 3698 , - 525 , - 3608 , - 1171 , - 4990 , - 3289 , - 1956 , - 991 , - 394 , - 165 , - 304 , - 811 , - 1686 , - 2929 , - 4540 , - 631 , - 2978 , - 5693 , - 2888 , - 451 , - 4270 , - 2569 , - 1236 , - 271 , - 5562 , - 5333 , - 5472 , - 91 , - 966 , - 2209 , - 3820 , - 5799 , - 2258 , - 4973 , - 2168 , - 5619 , - 3550 , - 1849 , - 516 , - 5439 , - 4842 , - 4613 , - 4752 , - 5259 , - 246 , - 1489 , - 3100 , - 5079 , - 1538 , - 4253 , - 1448 , - 4899 , - 2830 , - 1129 , - 5684 , - 4719 , - 4122 , - 3893 , - 4032 , - 4539 , - 5414 , - 769 , - 2380 , - 4359 , - 818 , - 3533 , - 728 , - 4179 , - 2110 , - 409 , - 4964 , - 3999 , - 3402 , - 3173 , - 3312 , - 3819 , - 4694 , - 49 , - 1660 , - 3639 , - 98 , - 2813 , - 8 , - 3459 , - 1390 , - 5577 , - 4244 , - 3279 , - 2682 , - 2453 , - 2592 , - 3099 , - 3974 , - 5217 , - 940 , - 2919 , - 5266 , - 2093 , - 5176 , - 2739 , - 670 , - 4857 , - 3524 , - 2559 , - 1962 , - 1733 , - 1872 , - 2379 , - 3254 , - 4497 , - 220 , - 2199 , - 4546 , - 1373 , - 4456 , - 2019 , - 5838 , - 4137 , - 2804 , - 1839 , - 1242 , - 1013 , - 1152 , - 1659 , - 2534 , - 3777 , - 5388 , - 1479 , - 3826 , - 653 , - 3736 , - 1299 , - 5118 , - 3417 , - 2084 , - 1119 , - 522 , - 293 , - 432 , - 939 , - 1814 , - 3057 , - 4668 , - 759 , - 3106 , - 5821 , - 3016 , - 579 , - 4398 , - 2697 , - 1364 , - 399 , - 5690 , - 5461 , - 5600 , - 219 , - 1094 , - 2337 , - 3948 , - 39 , - 2386 , - 5101 , - 2296 , - 5747 , - 3678 , - 1977 , - 644 , - 5567 , - 4970 , - 4741 , - 4880 , - 5387 , - 374 , - 1617 , - 3228 , - 5207 , - 1666 , - 4381 , - 1576 , - 5027 , - 2958 , - 1257 , - 5812 , - 4847 , - 4250 , - 4021 , - 4160 , - 4667 , - 5542 , - 897 , - 2508 , - 4487 , - 946 , - 3661 , - 856 , - 4307 , - 2238 , - 537 , - 5092 , - 4127 , - 3530 , - 3301 , - 3440 , - 3947 , - 4822 , - 177 , - 1788 , - 3767 , - 226 , - 2941 , - 136 , - 3587 , - 1518 , - 5705 , - 4372 , - 3407 , - 2810 , - 2581 , - 2720 , - 3227 , - 4102 , - 5345 , - 1068 , - 3047 , - 5394 , - 2221 , - 5304 , - 2867 , - 798 , - 4985 , - 3652 , - 2687 , - 2090 , - 1861 , - 2000 , - 2507 , - 3382 , - 4625 , - 348 , - 2327 , - 4674 , - 1501 , - 4584 , - 2147 , - 78 , - 4265 , - 2932 , - 1967 , - 1370 , - 1141 , - 1280 , - 1787 , - 2662 , - 3905 , - 5516 , - 1607 , - 3954 , - 781 , - 3864 , - 1427 , - 5246 , - 3545 , - 2212 , - 1247 , - 650 , - 421 , - 560 , - 1067 , - 1942 , - 3185 , - 4796 , - 887 , - 3234 , - 61 , - 3144 , - 707 , - 4526 , - 2825 , - 1492 , - 527 , - 5818 , - 5589 , - 5728 , - 347 , - 1222 , - 2465 , - 4076 , - 167 , - 2514 , - 5229 , - 2424 , - 5875 , - 3806 , - 2105 , - 772 , - 5695 , - 5098 , - 4869 , - 5008 , - 5515 , - 502 , - 1745 , - 3356 , - 5335 , - 1794 , - 4509 , - 1704 , - 5155 , - 3086 , - 1385 , - 52 , - 4975 , - 4378 , - 4149 , - 4288 , - 4795 , - 5670 , - 1025 , - 2636 , - 4615 , - 1074 , - 3789 , - 984 , - 4435 , - 2366 , - 665 , - 5220 , - 4255 , - 3658 , - 3429 , - 3568 , - 4075 , - 4950 , - 305 , - 1916 , - 3895 , - 354 , - 3069 , - 264 , - 3715 , - 1646 , - 5833 , - 4500 , - 3535 , - 2938 , - 2709 , - 2848 , - 3355 , - 4230 , - 5473 , - 1196 , - 3175 , - 5522 , - 2349 , - 5432 , - 2995 , - 926 , - 5113 , - 3780 , - 2815 , - 2218 , - 1989 , - 2128 , - 2635 , - 3510 , - 4753 , - 476 , - 2455 , - 4802 , - 1629 , - 4712 , - 2275 , - 206 , - 4393 , - 3060 , - 2095 , - 1498 , - 1269 , - 1408 , - 1915 , - 2790 , - 4033 , - 5644 , - 1735 , - 4082 , - 909 , - 3992 , - 1555 , - 5374 , - 3673 , - 2340 , - 1375 , - 778 , - 549 , - 688 , - 1195 , - 2070 , - 3313 , - 4924 , - 1015 , - 3362 , - 189 , - 3272 , - 835 , - 4654 , - 2953 , - 1620 , - 655 , - 58 , - 5717 , - 5856 , - 475 , - 1350 , - 2593 , - 4204 , - 295 , - 2642 , - 5357 , - 2552 , - 115 , - 3934 , - 2233 , - 900 , - 5823 , - 5226 , - 4997 , - 5136 , - 5643 , - 630 , - 1873 , - 3484 , - 5463 , - 1922 , - 4637 , - 1832 , - 5283 , - 3214 , - 1513 , - 180 , - 5103 , - 4506 , - 4277 , - 4416 , - 4923 , - 5798 , - 1153 , - 2764 , - 4743 , - 1202 , - 3917 , - 1112 , - 4563 , - 2494 , - 793 , - 5348 , - 4383 , - 3786 , - 3557 , - 3696 , - 4203 , - 5078 , - 433 , - 2044 , - 4023 , - 482 , - 3197 , - 392 , - 3843 , - 1774 , - 73 , - 4628 , - 3663 , - 3066 , - 2837 , - 2976 , - 3483 , - 4358 , - 5601 , - 1324 , - 3303 , - 5650 , - 2477 , - 5560 , - 3123 , - 1054 , - 5241 , - 3908 , - 2943 , - 2346 , - 2117 , - 2256 , - 2763 , - 3638 , - 4881 , - 604 , - 2583 , - 4930 , - 1757 , - 4840 , - 2403 , - 334 , - 4521 , - 3188 , - 2223 , - 1626 , - 1397 , - 1536 , - 2043 , - 2918 , - 4161 , - 5772 , - 1863 , - 4210 , - 1037 , - 4120 , - 1683 , - 5502 , - 3801 , - 2468 , - 1503 , - 906 , - 677 , - 816 , - 1323 , - 2198 , - 3441 , - 5052 , - 1143 , - 3490 , - 317 , - 3400 , - 963 , - 4782 , - 3081 , - 1748 , - 783 , - 186 , - 5845 , - 96 , - 603 , - 1478 , - 2721 , - 4332 , - 423 , - 2770 , - 5485 , - 2680 , - 243 , - 4062 , - 2361 , - 1028 , - 63 , - 5354 , - 5125 , - 5264 , - 5771 , - 758 , - 2001 , - 3612 , - 5591 , - 2050 , - 4765 , - 1960 , - 5411 , - 3342 , - 1641 , - 308 , - 5231 , - 4634 , - 4405 , - 4544 , - 5051 , - 38 , - 1281 , - 2892 , - 4871 , - 1330 , - 4045 , - 1240 , - 4691 , - 2622 , - 921 , - 5476 , - 4511 , - 3914 , - 3685 , - 3824 , - 4331 , - 5206 , - 561 , - 2172 , - 4151 , - 610 , - 3325 , - 520 , - 3971 , - 1902 , - 201 , - 4756 , - 3791 , - 3194 , - 2965 , - 3104 , - 3611 , - 4486 , - 5729 , - 1452 , - 3431 , - 5778 , - 2605 , - 5688 , - 3251 , - 1182 , - 5369 , - 4036 , - 3071 , - 2474 , - 2245 , - 2384 , - 2891 , - 3766 , - 5009 , - 732 , - 2711 , - 5058 , - 1885 , - 4968 , - 2531 , - 462 , - 4649 , - 3316 , - 2351 , - 1754 , - 1525 , - 1664 , - 2171 , - 3046 , - 4289 , - 12 , - 1991 , - 4338 , - 1165 , - 4248 , - 1811 , - 5630 , - 3929 , - 2596 , - 1631 , - 1034 , - 805 , - 944 , - 1451 , - 2326 , - 3569 , - 5180 , - 1271 , - 3618 , - 445 , - 3528 , - 1091 , - 4910 , - 3209 , - 1876 , - 911 , - 314 , - 85 , - 224 , - 731 , - 1606 , - 2849 , - 4460 , - 551 , - 2898 , - 5613 , - 2808 , - 371 , - 4190 , - 2489 , - 1156 , - 191 , - 5482 , - 5253 , - 5392 , - 11 , - 886 , - 2129 , - 3740 , - 5719 , - 2178 , - 4893 , - 2088 , - 5539 , - 3470 , - 1769 , - 436 , - 5359 , - 4762 , - 4533 , - 4672 , - 5179 , - 166 , - 1409 , - 3020 , - 4999 , - 1458 , - 4173 , - 1368 , - 4819 , - 2750 , - 1049 , - 5604 , - 4639 , - 4042 , - 3813 , - 3952 , - 4459 , - 5334 , - 689 , - 2300 , - 4279 , - 738 , - 3453 , - 648 , - 4099 , - 2030 , - 329 , - 4884 , - 3919 , - 3322 , - 3093 , - 3232 , - 3739 , - 4614 , - 5857 , - 1580 , - 3559 , - 18 , - 2733 , - 5816 , - 3379 , - 1310 , - 5497 , - 4164 , - 3199 , - 2602 , - 2373 , - 2512 , - 3019 , - 3894 , - 5137 , - 860 , - 2839 , - 5186 , - 2013 , - 5096 , - 2659 , - 590 , - 4777 , - 3444 , - 2479 , - 1882 , - 1653 , - 1792 , - 2299 , - 3174 , - 4417 , - 140 , - 2119 , - 4466 , - 1293 , - 4376 , - 1939 , - 5758 , - 4057 , - 2724 , - 1759 , - 1162 , - 933 , - 1072 , - 1579 , - 2454 , - 3697 , - 5308 , - 1399 , - 3746 , - 573 , - 3656 , - 1219 , - 5038 , - 3337 , - 2004 , - 1039 , - 442 , - 213 , - 352 , - 859 , - 1734 , - 2977 , - 4588 , - 679 , - 3026 , - 5741 , - 2936 , - 499 , - 4318 , - 2617 , - 1284 , - 319 , - 5610 , - 5381 , - 5520 , - 139 , - 1014 , - 2257 , - 3868 , - 5847 , - 2306 , - 5021 , - 2216 , - 5667 , - 3598 , - 1897 , - 564 , - 5487 , - 4890 , - 4661 , - 4800 , - 5307 , - 294 , - 1537 , - 3148 , - 5127 , - 1586 , - 4301 , - 1496 , - 4947 , - 2878 , - 1177 , - 5732 , - 4767 , - 4170 , - 3941 , - 4080 , - 4587 , - 5462 , - 817 , - 2428 , - 4407 , - 866 , - 3581 , - 776 , - 4227 , - 2158 , - 457 , - 5012 , - 4047 , - 3450 , - 3221 , - 3360 , - 3867 , - 4742 , - 97 , - 1708 , - 3687 , - 146 , - 2861 , - 56 , - 3507 , - 1438 , - 5625 , - 4292 , - 3327 , - 2730 , - 2501 , - 2640 , - 3147 , - 4022 , - 5265 , - 988 , - 2967 , - 5314 , - 2141 , - 5224 , - 2787 , - 718 , - 4905 , - 3572 , - 2607 , - 2010 , - 1781 , - 1920 , - 2427 , - 3302 , - 4545 , - 268 , - 2247 , - 4594 , - 1421 , - 4504 , - 2067 , - 5886 , - 4185 , - 2852 , - 1887 , - 1290 , - 1061 , - 1200 , - 1707 , - 2582 , - 3825 , - 5436 , - 1527 , - 3874 , - 701 , - 3784 , - 1347 , - 5166 , - 3465 , - 2132 , - 1167 , - 570 , - 341 , - 480 , - 987 , - 1862 , - 3105 , - 4716 , - 807 , - 3154 , - 5869 , - 3064 , - 627 , - 4446 , - 2745 , - 1412 , - 447 , - 5738 , - 5509 , - 5648 , - 267 , - 1142 , - 2385 , - 3996 , - 87 , - 2434 , - 5149 , - 2344 , - 5795 , - 3726 , - 2025 , - 692 , - 5615 , - 5018 , - 4789 , - 4928 , - 5435 , - 422 , - 1665 , - 3276 , - 5255 , - 1714 , - 4429 , - 1624 , - 5075 , - 3006 , - 1305 , - 5860 , - 4895 , - 4298 , - 4069 , - 4208 , - 4715 , - 5590 , - 945 , - 2556 , - 4535 , - 994 , - 3709 , - 904 , - 4355 , - 2286 , - 585 , - 5140 , - 4175 , - 3578 , - 3349 , - 3488 , - 3995 , - 4870 , - 225 , - 1836 , - 3815 , - 274 , - 2989 , - 184 , - 3635 , - 1566 , - 5753 , - 4420 , - 3455 , - 2858 , - 2629 , - 2768 , - 3275 , - 4150 , - 5393 , - 1116 , - 3095 , - 5442 , - 2269 , - 5352 , - 2915 , - 846 , - 5033 , - 3700 , - 2735 , - 2138 , - 1909 , - 2048 , - 2555 , - 3430 , - 4673 , - 396 , - 2375 , - 4722 , - 1549 , - 4632 , - 2195 , - 126 , - 4313 , - 2980 , - 2015 , - 1418 , - 1189 , - 1328 , - 1835 , - 2710 , - 3953 , - 5564 , - 1655 , - 4002 , - 829 , - 3912 , - 1475 , - 5294 , - 3593 , - 2260 , - 1295 , - 698 , - 469 , - 608 , - 1115 , - 1990 , - 3233 , - 4844 , - 935 , - 3282 , - 109 , - 3192 , - 755 , - 4574 , - 2873 , - 1540 , - 575 , - 5866 , - 5637 , - 5776 , - 395 , - 1270 , - 2513 , - 4124 , - 215 , - 2562 , - 5277 , - 2472 , - 35 , - 3854 , - 2153 , - 820 , - 5743 , - 5146 , - 4917 , - 5056 , - 5563 , - 550 , - 1793 , - 3404 , - 5383 , - 1842 , - 4557 , - 1752 , - 5203 , - 3134 , - 1433 , - 100 , - 5023 , - 4426 , - 4197 , - 4336 , - 4843 , - 5718 , - 1073 , - 2684 , - 4663 , - 1122 , - 3837 , - 1032 , - 4483 , - 2414 , - 713 , - 5268 , - 4303 , - 3706 , - 3477 , - 3616 , - 4123 , - 4998 , - 353 , - 1964 , - 3943 , - 402 , - 3117 , - 312 , - 3763 , - 1694 , - 5881 , - 4548 , - 3583 , - 2986 , - 2757 , - 2896 , - 3403 , - 4278 , - 5521 , - 1244 , - 3223 , - 5570 , - 2397 , - 5480 , - 3043 , - 974 , - 5161 , - 3828 , - 2863 , - 2266 , - 2037 , - 2176 , - 2683 , - 3558 , - 4801 , - 524 , - 2503 , - 4850 , - 1677 , - 4760 , - 2323 , - 254 , - 4441 , - 3108 , - 2143 , - 1546 , - 1317 , - 1456 , - 1963 , - 2838 , - 4081 , - 5692 , - 1783 , - 4130 , - 957 , - 4040 , - 1603 , - 5422 , - 3721 , - 2388 , - 1423 , - 826 , - 597 , - 736 , - 1243 , - 2118 , - 3361 , - 4972 , - 1063 , - 3410 , - 237 , - 3320 , - 883 , - 4702 , - 3001 , - 1668 , - 703 , - 106 , - 5765 , - 16 , - 523 , - 1398 , - 2641 , - 4252 , - 343 , - 2690 , - 5405 , - 2600 , - 163 , - 3982 , - 2281 , - 948 , - 5871 , - 5274 , - 5045 , - 5184 , - 5691 , - 678 , - 1921 , - 3532 , - 5511 , - 1970 , - 4685 , - 1880 , - 5331 , - 3262 , - 1561 , - 228 , - 5151 , - 4554 , - 4325 , - 4464 , - 4971 , - 5846 , - 1201 , - 2812 , - 4791 , - 1250 , - 3965 , - 1160 , - 4611 , - 2542 , - 841 , - 5396 , - 4431 , - 3834 , - 3605 , - 3744 , - 4251 , - 5126 , - 481 , - 2092 , - 4071 , - 530 , - 3245 , - 440 , - 3891 , - 1822 , - 121 , - 4676 , - 3711 , - 3114 , - 2885 , - 3024 , - 3531 , - 4406 , - 5649 , - 1372 , - 3351 , - 5698 , - 2525 , - 5608 , - 3171 , - 1102 , - 5289 , - 3956 , - 2991 , - 2394 , - 2165 , - 2304 , - 2811 , - 3686 , - 4929 , - 652 , - 2631 , - 4978 , - 1805 , - 4888 , - 2451 , - 382 , - 4569 , - 3236 , - 2271 , - 1674 , - 1445 , - 1584 , - 2091 , - 2966 , - 4209 , - 5820 , - 1911 , - 4258 , - 1085 , - 4168 , - 1731 , - 5550 , - 3849 , - 2516 , - 1551 , - 954 , - 725 , - 864 , - 1371 , - 2246 , - 3489 , - 5100 , - 1191 , - 3538 , - 365 , - 3448 , - 1011 , - 4830 , - 3129 , - 1796 , - 831 , - 234 , - 5 , - 144 , - 651 , - 1526 , - 2769 , - 4380 , - 471 , - 2818 , - 5533 , - 2728 , - 291 , - 4110 , - 2409 , - 1076 , - 111 , - 5402 , - 5173 , - 5312 , - 5819 , - 806 , - 2049 , - 3660 , - 5639 , - 2098 , - 4813 , - 2008 , - 5459 , - 3390 , - 1689 , - 356 , - 5279 , - 4682 , - 4453 , - 4592 , - 5099 , - 86 , - 1329 , - 2940 , - 4919 , - 1378 , - 4093 , - 1288 , - 4739 , - 2670 , - 969 , - 5524 , - 4559 , - 3962 , - 3733 , - 3872 , - 4379 , - 5254 , - 609 , - 2220 , - 4199 , - 658 , - 3373 , - 568 , - 4019 , - 1950 , - 249 , - 4804 , - 3839 , - 3242 , - 3013 , - 3152 , - 3659 , - 4534 , - 5777 , - 1500 , - 3479 , - 5826 , - 2653 , - 5736 , - 3299 , - 1230 , - 5417 , - 4084 , - 3119 , - 2522 , - 2293 , - 2432 , - 2939 , - 3814 , - 5057 , - 780 , - 2759 , - 5106 , - 1933 , - 5016 , - 2579 , - 510 , - 4697 , - 3364 , - 2399 , - 1802 , - 1573 , - 1712 , - 2219 , - 3094 , - 4337 , - 60 , - 2039 , - 4386 , - 1213 , - 4296 , - 1859 , - 5678 , - 3977 , - 2644 , - 1679 , - 1082 , - 853 , - 992 , - 1499 , - 2374 , - 3617 , - 5228 , - 1319 , - 3666 , - 493 , - 3576 , - 1139 , - 4958 , - 3257 , - 1924 , - 959 , - 362 , - 133 , - 272 , - 779 , - 1654 , - 2897 , - 4508 , - 599 , - 2946 , - 5661 , - 2856 , - 419 , - 4238 , - 2537 , - 1204 , - 239 , - 5530 , - 5301 , - 5440 , - 59 , - 934 , - 2177 , - 3788 , - 5767 , - 2226 , - 4941 , - 2136 , - 5587 , - 3518 , - 1817 , - 484 , - 5407 , - 4810 , - 4581 , - 4720 , - 5227 , - 214 , - 1457 , - 3068 , - 5047 , - 1506 , - 4221 , - 1416 , - 4867 , - 2798 , - 1097 , - 5652 , - 4687 , - 4090 , - 3861 , - 4000 , - 4507 , - 5382 , - 737 , - 2348 , - 4327 , - 786 , - 3501 , - 696 , - 4147 , - 2078 , - 377 , - 4932 , - 3967 , - 3370 , - 3141 , - 3280 , - 3787 , - 4662 , - 17 , - 1628 , - 3607 , - 66 , - 2781 , - 5864 , - 3427 , - 1358 , - 5545 , - 4212 , - 3247 , - 2650 , - 2421 , - 2560 , - 3067 , - 3942 , - 5185 , - 908 , - 2887 , - 5234 , - 2061 , - 5144 , - 2707 , - 638 , - 4825 , - 3492 , - 2527 , - 1930 , - 1701 , - 1840 , - 2347 , - 3222 , - 4465 , - 188 , - 2167 , - 4514 , - 1341 , - 4424 , - 1987 , - 5806 , - 4105 , - 2772 , - 1807 , - 1210 , - 981 , - 1120 , - 1627 , - 2502 , - 3745 , - 5356 , - 1447 , - 3794 , - 621 , - 3704 , - 1267 , - 5086 , - 3385 , - 2052 , - 1087 , - 490 , - 261 , - 400 , - 907 , - 1782 , - 3025 , - 4636 , - 727 , - 3074 , - 5789 , - 2984 , - 547 , - 4366 , - 2665 , - 1332 , - 367 , - 5658 , - 5429 , - 5568 , - 187 , - 1062 , - 2305 , - 3916 , - 7 , - 2354 , - 5069 , - 2264 , - 5715 , - 3646 , - 1945 , - 612 , - 5535 , - 4938 , - 4709 , - 4848 , - 5355 , - 342 , - 1585 , - 3196 , - 5175 , - 1634 , - 4349 , - 1544 , - 4995 , - 2926 , - 1225 , - 5780 , - 4815 , - 4218 , - 3989 , - 4128 , - 4635 , - 5510 , - 865 , - 2476 , - 4455 , - 914 , - 3629 , - 824 , - 4275 , - 2206 , - 505 , - 5060 , - 4095 , - 3498 , - 3269 , - 3408 , - 3915 , - 4790 , - 145 , - 1756 , - 3735 , - 194 , - 2909 , - 104 , - 3555 , - 1486 , - 5673 , - 4340 , - 3375 , - 2778 , - 2549 , - 2688 , - 3195 , - 4070 , - 5313 , - 1036 , - 3015 , - 5362 , - 2189 , - 5272 , - 2835 , - 766 , - 4953 , - 3620 , - 2655 , - 2058 , - 1829 , - 1968 , - 2475 , - 3350 , - 4593 , - 316 , - 2295 , - 4642 , - 1469 , - 4552 , - 2115 , - 46 , - 4233 , - 2900 , - 1935 , - 1338 , - 1109 , - 1248 , - 1755 , - 2630 , - 3873 , - 5484 , - 1575 , - 3922 , - 749 , - 3832 , - 1395 , - 5214 , - 3513 , - 2180 , - 1215 , - 618 , - 389 , - 528 , - 1035 , - 1910 , - 3153 , - 4764 , - 855 , - 3202 , - 29 , - 3112 , - 675 , - 4494 , - 2793 , - 1460 , - 495 , - 5786 , - 5557 , - 5696 , - 315 , - 1190 , - 2433 , - 4044 , - 135 , - 2482 , - 5197 , - 2392 , - 5843 , - 3774 , - 2073 , - 740 , - 5663 , - 5066 , - 4837 , - 4976 , - 5483 , - 470 , - 1713 , - 3324 , - 5303 , - 1762 , - 4477 , - 1672 , - 5123 , - 3054 , - 1353 , - 20 , - 4943 , - 4346 , - 4117 , - 4256 , - 4763 , - 5638 , - 993 , - 2604 , - 4583 , - 1042 , - 3757 , - 952 , - 4403 , - 2334 , - 633 , - 5188 , - 4223 , - 3626 , - 3397 , - 3536 , - 4043 , - 4918 , - 273 , - 1884 , - 3863 , - 322 , - 3037 , - 232 , - 3683 , - 1614 , - 5801 , - 4468 , - 3503 , - 2906 , - 2677 , - 2816 , - 3323 , - 4198 , - 5441 , - 1164 , - 3143 , - 5490 , - 2317 , - 5400 , - 2963 , - 894 , - 5081 , - 3748 , - 2783 , - 2186 , - 1957 , - 2096 , - 2603 , - 3478 , - 4721 , - 444 , - 2423 , - 4770 , - 1597 , - 4680 , - 2243 , - 174 , - 4361 , - 3028 , - 2063 , - 1466 , - 1237 , - 1376 , - 1883 , - 2758 , - 4001 , - 5612 , - 1703 , - 4050 , - 877 , - 3960 , - 1523 , - 5342 , - 3641 , - 2308 , - 1343 , - 746 , - 517 , - 656 , - 1163 , - 2038 , - 3281 , - 4892 , - 983 , - 3330 , - 157 , - 3240 , - 803 , - 4622 , - 2921 , - 1588 , - 623 , - 26 , - 5685 , - 5824 , - 443 , - 1318 , - 2561 , - 4172 , - 263 , - 2610 , - 5325 , - 2520 , - 83 , - 3902 , - 2201 , - 868 , - 5791 , - 5194 , - 4965 , - 5104 , - 5611 , - 598 , - 1841 , - 3452 , - 5431 , - 1890 , - 4605 , - 1800 , - 5251 , - 3182 , - 1481 , - 148 , - 5071 , - 4474 , - 4245 , - 4384 , - 4891 , - 5766 , - 1121 , - 2732 , - 4711 , - 1170 , - 3885 , - 1080 , - 4531 , - 2462 , - 761 , - 5316 , - 4351 , - 3754 , - 3525 , - 3664 , - 4171 , - 5046 , - 401 , - 2012 , - 3991 , - 450 , - 3165 , - 360 , - 3811 , - 1742 , - 41 , - 4596 , - 3631 , - 3034 , - 2805 , - 2944 , - 3451 , - 4326 , - 5569 , - 1292 , - 3271 , - 5618 , - 2445 , - 5528 , - 3091 , - 1022 , - 5209 , - 3876 , - 2911 , - 2314 , - 2085 , - 2224 , - 2731 , - 3606 , - 4849 , - 572 , - 2551 , - 4898 , - 1725 , - 4808 , - 2371 , - 302 , - 4489 , - 3156 , - 2191 , - 1594 , - 1365 , - 1504 , - 2011 , - 2886 , - 4129 , - 5740 , - 1831 , - 4178 , - 1005 , - 4088 , - 1651 , - 5470 , - 3769 , - 2436 , - 1471 , - 874 , - 645 , - 784 , - 1291 , - 2166 , - 3409 , - 5020 , - 1111 , - 3458 , - 285 , - 3368 , - 931 , - 4750 , - 3049 , - 1716 , - 751 , - 154 , - 5813 , - 64 , - 571 , - 1446 , - 2689 , - 4300 , - 391 , - 2738 , - 5453 , - 2648 , - 211 , - 4030 , - 2329 , - 996 , - 31 , - 5322 , - 5093 , - 5232 , - 5739 , - 726 , - 1969 , - 3580 , - 5559 , - 2018 , - 4733 , - 1928 , - 5379 , - 3310 , - 1609 , - 276 , - 5199 , - 4602 , - 4373 , - 4512 , - 5019 , - 6 , - 1249 , - 2860 , - 4839 , - 1298 , - 4013 , - 1208 , - 4659 , - 2590 , - 889 , - 5444 , - 4479 , - 3882 , - 3653 , - 3792 , - 4299 , - 5174 , - 529 , - 2140 , - 4119 , - 578 , - 3293 , - 488 , - 3939 , - 1870 , - 169 , - 4724 , - 3759 , - 3162 , - 2933 , - 3072 , - 3579 , - 4454 , - 5697 , - 1420 , - 3399 , - 5746 , - 2573 , - 5656 , - 3219 , - 1150 , - 5337 , - 4004 , - 3039 , - 2442 , - 2213 , - 2352 , - 2859 , - 3734 , - 4977 , - 700 , - 2679 , - 5026 , - 1853 , - 4936 , - 2499 , - 430 , - 4617 , - 3284 , - 2319 , - 1722 , - 1493 , - 1632 , - 2139 , - 3014 , - 4257 , - 5868 , - 1959 , - 4306 , - 1133 , - 4216 , - 1779 , - 5598 , - 3897 , - 2564 , - 1599 , - 1002 , - 773 , - 912 , - 1419 , - 2294 , - 3537 , - 5148 , - 1239 , - 3586 , - 413 , - 3496 , - 1059 , - 4878 , - 3177 , - 1844 , - 879 , - 282 , - 53 , - 192 , - 699 , - 1574 , - 2817 , - 4428 , - 519 , - 2866 , - 5581 , - 2776 , - 339 , - 4158 , - 2457 , - 1124 , - 159 , - 5450 , - 5221 , - 5360 , - 5867 , - 854 , - 2097 , - 3708 , - 5687 , - 2146 , - 4861 , - 2056 , - 5507 , - 3438 , - 1737 , - 404 , - 5327 , - 4730 , - 4501 , - 4640 , - 5147 , - 134 , - 1377 , - 2988 , - 4967 , - 1426 , - 4141 , - 1336 , - 4787 , - 2718 , - 1017 , - 5572 , - 4607 , - 4010 , - 3781 , - 3920 , - 4427 , - 5302 , - 657 , - 2268 , - 4247 , - 706 , - 3421 , - 616 , - 4067 , - 1998 , - 297 , - 4852 , - 3887 , - 3290 , - 3061 , - 3200 , - 3707 , - 4582 , - 5825 , - 1548 , - 3527 , - 5874 , - 2701 , - 5784 , - 3347 , - 1278 , - 5465 , - 4132 , - 3167 , - 2570 , - 2341 , - 2480 , - 2987 , - 3862 , - 5105 , - 828 , - 2807 , - 5154 , - 1981 , - 5064 , - 2627 , - 558 , - 4745 , - 3412 , - 2447 , - 1850 , - 1621 , - 1760 , - 2267 , - 3142 , - 4385 , - 108 , - 2087 , - 4434 , - 1261 , - 4344 , - 1907 , - 5726 , - 4025 , - 2692 , - 1727 , - 1130 , - 901 , - 1040 , - 1547 , - 2422 , - 3665 , - 5276 , - 1367 , - 3714 , - 541 , - 3624 , - 1187 , - 5006 , - 3305 , - 1972 , - 1007 , - 410 , - 181 , - 320 , - 827 , - 1702 , - 2945 , - 4556 , - 647 , - 2994 , - 5709 , - 2904 , - 467 , - 4286 , - 2585 , - 1252 , - 287 , - 5578 , - 5349 , - 5488 , - 107 , - 982 , - 2225 , - 3836 , - 5815 , - 2274 , - 4989 , - 2184 , - 5635 , - 3566 , - 1865 , - 532 , - 5455 , - 4858 , - 4629 , - 4768 , - 5275 , - 262 , - 1505 , - 3116 , - 5095 , - 1554 , - 4269 , - 1464 , - 4915 , - 2846 , - 1145 , - 5700 , - 4735 , - 4138 , - 3909 , - 4048 , - 4555 , - 5430 , - 785 , - 2396 , - 4375 , - 834 , - 3549 , - 744 , - 4195 , - 2126 , - 425 , - 4980 , - 4015 , - 3418 , - 3189 , - 3328 , - 3835 , - 4710 , - 65 , - 1676 , - 3655 , - 114 , - 2829 , - 24 , - 3475 , - 1406 , - 5593 , - 4260 , - 3295 , - 2698 , - 2469 , - 2608 , - 3115 , - 3990 , - 5233 , - 956 , - 2935 , - 5282 , - 2109 , - 5192 , - 2755 , - 686 , - 4873 , - 3540 , - 2575 , - 1978 , - 1749 , - 1888 , - 2395 , - 3270 , - 4513 , - 236 , - 2215 , - 4562 , - 1389 , - 4472 , - 2035 , - 5854 , - 4153 , - 2820 , - 1855 , - 1258 , - 1029 , - 1168 , - 1675 , - 2550 , - 3793 , - 5404 , - 1495 , - 3842 , - 669 , - 3752 , - 1315 , - 5134 , - 3433 , - 2100 , - 1135 , - 538 , - 309 , - 448 , - 955 , - 1830 , - 3073 , - 4684 , - 775 , - 3122 , - 5837 , - 3032 , - 595 , - 4414 , - 2713 , - 1380 , - 415 , - 5706 , - 5477 , - 5616 , - 235 , - 1110 , - 2353 , - 3964 , - 55 , - 2402 , - 5117 , - 2312 , - 5763 , - 3694 , - 1993 , - 660 , - 5583 , - 4986 , - 4757 , - 4896 , - 5403 , - 390 , - 1633 , - 3244 , - 5223 , - 1682 , - 4397 , - 1592 , - 5043 , - 2974 , - 1273 , - 5828 , - 4863 , - 4266 , - 4037 , - 4176 , - 4683 , - 5558 , - 913 , - 2524 , - 4503 , - 962 , - 3677 , - 872 , - 4323 , - 2254 , - 553 , - 5108 , - 4143 , - 3546 , - 3317 , - 3456 , - 3963 , - 4838 , - 193 , - 1804 , - 3783 , - 242 , - 2957 , - 152 , - 3603 , - 1534 , - 5721 , - 4388 , - 3423 , - 2826 , - 2597 , - 2736 , - 3243 , - 4118 , - 5361 , - 1084 , - 3063 , - 5410 , - 2237 , - 5320 , - 2883 , - 814 , - 5001 , - 3668 , - 2703 , - 2106 , - 1877 , - 2016 , - 2523 , - 3398 , - 4641 , - 364 , - 2343 , - 4690 , - 1517 , - 4600 , - 2163 , - 94 , - 4281 , - 2948 , - 1983 , - 1386 , - 1157 , - 1296 , - 1803 , - 2678 , - 3921 , - 5532 , - 1623 , - 3970 , - 797 , - 3880 , - 1443 , - 5262 , - 3561 , - 2228 , - 1263 , - 666 , - 437 , - 576 , - 1083 , - 1958 , - 3201 , - 4812 , - 903 , - 3250 , - 77 , - 3160 , - 723 , - 4542 , - 2841 , - 1508 , - 543 , - 5834 , - 5605 , - 5744 , - 363 , - 1238 , - 2481 , - 4092 , - 183 , - 2530 , - 5245 , - 2440 , - 3 , - 3822 , - 2121 , - 788 , - 5711 , - 5114 , - 4885 , - 5024 , - 5531 , - 518 , - 1761 , - 3372 , - 5351 , - 1810 , - 4525 , - 1720 , - 5171 , - 3102 , - 1401 , - 68 , - 4991 , - 4394 , - 4165 , - 4304 , - 4811 , - 5686 , - 1041 , - 2652 , - 4631 , - 1090 , - 3805 , - 1000 , - 4451 , - 2382 , - 681 , - 5236 , - 4271 , - 3674 , - 3445 , - 3584 , - 4091 , - 4966 , - 321 , - 1932 , - 3911 , - 370 , - 3085 , - 280 , - 3731 , - 1662 , - 5849 , - 4516 , - 3551 , - 2954 , - 2725 , - 2864 , - 3371 , - 4246 , - 5489 , - 1212 , - 3191 , - 5538 , - 2365 , - 5448 , - 3011 , - 942 , - 5129 , - 3796 , - 2831 , - 2234 , - 2005 , - 2144 , - 2651 , - 3526 , - 4769 , - 492 , - 2471 , - 4818 , - 1645 , - 4728 , - 2291 , - 222 , - 4409 , - 3076 , - 2111 , - 1514 , - 1285 , - 1424 , - 1931 , - 2806 , - 4049 , - 5660 , - 1751 , - 4098 , - 925 , - 4008 , - 1571 , - 5390 , - 3689 , - 2356 , - 1391 , - 794 , - 565 , - 704 , - 1211 , - 2086 , - 3329 , - 4940 , - 1031 , - 3378 , - 205 , - 3288 , - 851 , - 4670 , - 2969 , - 1636 , - 671 , - 74 , - 5733 , - 5872 , - 491 , - 1366 , - 2609 , - 4220 , - 311 , - 2658 , - 5373 , - 2568 , - 131 , - 3950 , - 2249 , - 916 , - 5839 , - 5242 , - 5013 , - 5152 , - 5659 , - 646 , - 1889 , - 3500 , - 5479 , - 1938 , - 4653 , - 1848 , - 5299 , - 3230 , - 1529 , - 196 , - 5119 , - 4522 , - 4293 , - 4432 , - 4939 , - 5814 , - 1169 , - 2780 , - 4759 , - 1218 , - 3933 , - 1128 , - 4579 , - 2510 , - 809 , - 5364 , - 4399 , - 3802 , - 3573 , - 3712 , - 4219 , - 5094 , - 449 , - 2060 , - 4039 , - 498 , - 3213 , - 408 , - 3859 , - 1790 , - 89 , - 4644 , - 3679 , - 3082 , - 2853 , - 2992 , - 3499 , - 4374 , - 5617 , - 1340 , - 3319 , - 5666 , - 2493 , - 5576 , - 3139 , - 1070 , - 5257 , - 3924 , - 2959 , - 2362 , - 2133 , - 2272 , - 2779 , - 3654 , - 4897 , - 620 , - 2599 , - 4946 , - 1773 , - 4856 , - 2419 , - 350 , - 4537 , - 3204 , - 2239 , - 1642 , - 1413 , - 1552 , - 2059 , - 2934 , - 4177 , - 5788 , - 1879 , - 4226 , - 1053 , - 4136 , - 1699 , - 5518 , - 3817 , - 2484 , - 1519 , - 922 , - 693 , - 832 , - 1339 , - 2214 , - 3457 , - 5068 , - 1159 , - 3506 , - 333 , - 3416 , - 979 , - 4798 , - 3097 , - 1764 , - 799 , - 202 , - 5861 , - 112 , - 619 , - 1494 , - 2737 , - 4348 , - 439 , - 2786 , - 5501 , - 2696 , - 259 , - 4078 , - 2377 , - 1044 , - 79 , - 5370 , - 5141 , - 5280 , - 5787 , - 774 , - 2017 , - 3628 , - 5607 , - 2066 , - 4781 , - 1976 , - 5427 , - 3358 , - 1657 , - 324 , - 5247 , - 4650 , - 4421 , - 4560 , - 5067 , - 54 , - 1297 , - 2908 , - 4887 , - 1346 , - 4061 , - 1256 , - 4707 , - 2638 , - 937 , - 5492 , - 4527 , - 3930 , - 3701 , - 3840 , - 4347 , - 5222 , - 577 , - 2188 , - 4167 , - 626 , - 3341 , - 536 , - 3987 , - 1918 , - 217 , - 4772 , - 3807 , - 3210 , - 2981 , - 3120 , - 3627 , - 4502 , - 5745 , - 1468 , - 3447 , - 5794 , - 2621 , - 5704 , - 3267 , - 1198 , - 5385 , - 4052 , - 3087 , - 2490 , - 2261 , - 2400 , - 2907 , - 3782 , - 5025 , - 748 , - 2727 , - 5074 , - 1901 , - 4984 , - 2547 , - 478 , - 4665 , - 3332 , - 2367 , - 1770 , - 1541 , - 1680 , - 2187 , - 3062 , - 4305 , - 28 , - 2007 , - 4354 , - 1181 , - 4264 , - 1827 , - 5646 , - 3945 , - 2612 , - 1647 , - 1050 , - 821 , - 960 , - 1467 , - 2342 , - 3585 , - 5196 , - 1287 , - 3634 , - 461 , - 3544 , - 1107 , - 4926 , - 3225 , - 1892 , - 927 , - 330 , - 101 , - 240 , - 747 , - 1622 , - 2865 , - 4476 , - 567 , - 2914 , - 5629 , - 2824 , - 387 , - 4206 , - 2505 , - 1172 , - 207 , - 5498 , - 5269 , - 5408 , - 27 , - 902 , - 2145 , - 3756 , - 5735 , - 2194 , - 4909 , - 2104 , - 5555 , - 3486 , - 1785 , - 452 , - 5375 , - 4778 , - 4549 , - 4688 , - 5195 , - 182 , - 1425 , - 3036 , - 5015 , - 1474 , - 4189 , - 1384 , - 4835 , - 2766 , - 1065 , - 5620 , - 4655 , - 4058 , - 3829 , - 3968 , - 4475 , - 5350 , - 705 , - 2316 , - 4295 , - 754 , - 3469 , - 664 , - 4115 , - 2046 , - 345 , - 4900 , - 3935 , - 3338 , - 3109 , - 3248 , - 3755 , - 4630 , - 5873 , - 1596 , - 3575 , - 34 , - 2749 , - 5832 , - 3395 , - 1326 , - 5513 , - 4180 , - 3215 , - 2618 , - 2389 , - 2528 , - 3035 , - 3910 , - 5153 , - 876 , - 2855 , - 5202 , - 2029 , - 5112 , - 2675 , - 606 , - 4793 , - 3460 , - 2495 , - 1898 , - 1669 , - 1808 , - 2315 , - 3190 , - 4433 , - 156 , - 2135 , - 4482 , - 1309 , - 4392 , - 1955 , - 5774 , - 4073 , - 2740 , - 1775 , - 1178 , - 949 , - 1088 , - 1595 , - 2470 , - 3713 , - 5324 , - 1415 , - 3762 , - 589 , - 3672 , - 1235 , - 5054 , - 3353 , - 2020 , - 1055 , - 458 , - 229 , - 368 , - 875 , - 1750 , - 2993 , - 4604 , - 695 , - 3042 , - 5757 , - 2952 , - 515 , - 4334 , - 2633 , - 1300 , - 335 , - 5626 , - 5397 , - 5536 , - 155 , - 1030 , - 2273 , - 3884 , - 5863 , - 2322 , - 5037 , - 2232 , - 5683 , - 3614 , - 1913 , - 580 , - 5503 , - 4906 , - 4677 , - 4816 , - 5323 , - 310 , - 1553 , - 3164 , - 5143 , - 1602 , - 4317 , - 1512 , - 4963 , - 2894 , - 1193 , - 5748 , - 4783 , - 4186 , - 3957 , - 4096 , - 4603 , - 5478 , - 833 , - 2444 , - 4423 , - 882 , - 3597 , - 792 , - 4243 , - 2174 , - 473 , - 5028 , - 4063 , - 3466 , - 3237 , - 3376 , - 3883 , - 4758 , - 113 , - 1724 , - 3703 , - 162 , - 2877 , - 72 , - 3523 , - 1454 , - 5641 , - 4308 , - 3343 , - 2746 , - 2517 , - 2656 , - 3163 , - 4038 , - 5281 , - 1004 , - 2983 , - 5330 , - 2157 , - 5240 , - 2803 , - 734 , - 4921 , - 3588 , - 2623 , - 2026 , - 1797 , - 1936 , - 2443 , - 3318 , - 4561 , - 284 , - 2263 , - 4610 , - 1437 , - 4520 , - 2083 , - 14 , - 4201 , - 2868 , - 1903 , - 1306 , - 1077 , - 1216 , - 1723 , - 2598 , - 3841 , - 5452 , - 1543 , - 3890 , - 717 , - 3800 , - 1363 , - 5182 , - 3481 , - 2148 , - 1183 , - 586 , - 357 , - 496 , - 1003 , - 1878 , - 3121 , - 4732 , - 823 , - 3170 , - 5885 , - 3080 , - 643 , - 4462 , - 2761 , - 1428 , - 463 , - 5754 , - 5525 , - 5664 , - 283 , - 1158 , - 2401 , - 4012 , - 103 , - 2450 , - 5165 , - 2360 , - 5811 , - 3742 , - 2041 , - 708 , - 5631 , - 5034 , - 4805 , - 4944 , - 5451 , - 438 , - 1681 , - 3292 , - 5271 , - 1730 , - 4445 , - 1640 , - 5091 , - 3022 , - 1321 , - 5876 , - 4911 , - 4314 , - 4085 , - 4224 , - 4731 , - 5606 , - 961 , - 2572 , - 4551 , - 1010 , - 3725 , - 920 , - 4371 , - 2302 , - 601 , - 5156 , - 4191 , - 3594 , - 3365 , - 3504 , - 4011 , - 4886 , - 241 , - 1852 , - 3831 , - 290 , - 3005 , - 200 , - 3651 , - 1582 , - 5769 , - 4436 , - 3471 , - 2874 , - 2645 , - 2784 , - 3291 , - 4166 , - 5409 , - 1132 , - 3111 , - 5458 , - 2285 , - 5368 , - 2931 , - 862 , - 5049 , - 3716 , - 2751 , - 2154 , - 1925 , - 2064 , - 2571 , - 3446 , - 4689 , - 412 , - 2391 , - 4738 , - 1565 , - 4648 , - 2211 , - 142 , - 4329 , - 2996 , - 2031 , - 1434 , - 1205 , - 1344 , - 1851 , - 2726 , - 3969 , - 5580 , - 1671 , - 4018 , - 845 , - 3928 , - 1491 , - 5310 , - 3609 , - 2276 , - 1311 , - 714 , - 485 , - 624 , - 1131 , - 2006 , - 3249 , - 4860 , - 951 , - 3298 , - 125 , - 3208 , - 771 , - 4590 , - 2889 , - 1556 , - 591 , - 5882 , - 5653 , - 5792 , - 411 , - 1286 , - 2529 , - 4140 , - 231 , - 2578 , - 5293 , - 2488 , - 51 , - 3870 , - 2169 , - 836 , - 5759 , - 5162 , - 4933 , - 5072 , - 5579 , - 566 , - 1809 , - 3420 , - 5399 , - 1858 , - 4573 , - 1768 , - 5219 , - 3150 , - 1449 , - 116 , - 5039 , - 4442 , - 4213 , - 4352 , - 4859 , - 5734 , - 1089 , - 2700 , - 4679 , - 1138 , - 3853 , - 1048 , - 4499 , - 2430 , - 729 , - 5284 , - 4319 , - 3722 , - 3493 , - 3632 , - 4139 , - 5014 , - 369 , - 1980 , - 3959 , - 418 , - 3133 , - 328 , - 3779 , - 1710 , - 9 , - 4564 , - 3599 , - 3002 , - 2773 , - 2912 , - 3419 , - 4294 , - 5537 , - 1260 , - 3239 , - 5586 , - 2413 , - 5496 , - 3059 , - 990 , - 5177 , - 3844 , - 2879 , - 2282 , - 2053 , - 2192 , - 2699 , - 3574 , - 4817 , - 540 , - 2519 , - 4866 , - 1693 , - 4776 , - 2339 , - 270 , - 4457 , - 3124 , - 2159 , - 1562 , - 1333 , - 1472 , - 1979 , - 2854 , - 4097 , - 5708 , - 1799 , - 4146 , - 973 , - 4056 , - 1619 , - 5438 , - 3737 , - 2404 , - 1439 , - 842 , - 613 , - 752 , - 1259 , - 2134 , - 3377 , - 4988 , - 1079 , - 3426 , - 253 , - 3336 , - 899 , - 4718 , - 3017 , - 1684 , - 719 , - 122 , - 5781 , - 32 , - 539 , - 1414 , - 2657 , - 4268 , - 359 , - 2706 , - 5421 , - 2616 , - 179 , - 3998 , - 2297 , - 964 , - 5887 , - 5290 , - 5061 , - 5200 , - 5707 , - 694 , - 1937 , - 3548 , - 5527 , - 1986 , - 4701 , - 1896 , - 5347 , - 3278 , - 1577 , - 244 , - 5167 , - 4570 , - 4341 , - 4480 , - 4987 , - 5862 , - 1217 , - 2828 , - 4807 , - 1266 , - 3981 , - 1176 , - 4627 , - 2558 , - 857 , - 5412 , - 4447 , - 3850 , - 3621 , - 3760 , - 4267 , - 5142 , - 497 , - 2108 , - 4087 , - 546 , - 3261 , - 456 , - 3907 , - 1838 , - 137 , - 4692 , - 3727 , - 3130 , - 2901 , - 3040 , - 3547 , - 4422 , - 5665 , - 1388 , - 3367 , - 5714 , - 2541 , - 5624 , - 3187 , - 1118 , - 5305 , - 3972 , - 3007 , - 2410 , - 2181 , - 2320 , - 2827 , - 3702 , - 4945 , - 668 , - 2647 , - 4994 , - 1821 , - 4904 , - 2467 , - 398 , - 4585 , - 3252 , - 2287 , - 1690 , - 1461 , - 1600 , - 2107 , - 2982 , - 4225 , - 5836 , - 1927 , - 4274 , - 1101 , - 4184 , - 1747 , - 5566 , - 3865 , - 2532 , - 1567 , - 970 , - 741 , - 880 , - 1387 , - 2262 , - 3505 , - 5116 , - 1207 , - 3554 , - 381 , - 3464 , - 1027 , - 4846 , - 3145 , - 1812 , - 847 , - 250 , - 21 , - 160 , - 667 , - 1542 , - 2785 , - 4396 , - 487 , - 2834 , - 5549 , - 2744 , - 307 , - 4126 , - 2425 , - 1092 , - 127 , - 5418 , - 5189 , - 5328 , - 5835 , - 822 , - 2065 , - 3676 , - 5655 , - 2114 , - 4829 , - 2024 , - 5475 , - 3406 , - 1705 , - 372 , - 5295 , - 4698 , - 4469 , - 4608 , - 5115 , - 102 , - 1345 , - 2956 , - 4935 , - 1394 , - 4109 , - 1304 , - 4755 , - 2686 , - 985 , - 5540 , - 4575 , - 3978 , - 3749 , - 3888 , - 4395 , - 5270 , - 625 , - 2236 , - 4215 , - 674 , - 3389 , - 584 , - 4035 , - 1966 , - 265 , - 4820 , - 3855 , - 3258 , - 3029 , - 3168 , - 3675 , - 4550 , - 5793 , - 1516 , - 3495 , - 5842 , - 2669 , - 5752 , - 3315 , - 1246 , - 5433 , - 4100 , - 3135 , - 2538 , - 2309 , - 2448 , - 2955 , - 3830 , - 5073 , - 796 , - 2775 , - 5122 , - 1949 , - 5032 , - 2595 , - 526 , - 4713 , - 3380 , - 2415 , - 1818 , - 1589 , - 1728 , - 2235 , - 3110 , - 4353 , - 76 , - 2055 , - 4402 , - 1229 , - 4312 , - 1875 , - 5694 , - 3993 , - 2660 , - 1695 , - 1098 , - 869 , - 1008 , - 1515 , - 2390 , - 3633 , - 5244 , - 1335 , - 3682 , - 509 , - 3592 , - 1155 , - 4974 , - 3273 , - 1940 , - 975 , - 378 , - 149 , - 288 , - 795 , - 1670 , - 2913 , - 4524 , - 615 , - 2962 , - 5677 , - 2872 , - 435 , - 4254 , - 2553 , - 1220 , - 255 , - 5546 , - 5317 , - 5456 , - 75 , - 950 , - 2193 , - 3804 , - 5783 , - 2242 , - 4957 , - 2152 , - 5603 , - 3534 , - 1833 , - 500 , - 5423 , - 4826 , - 4597 , - 4736 , - 5243 , - 230 , - 1473 , - 3084 , - 5063 , - 1522 , - 4237 , - 1432 , - 4883 , - 2814 , - 1113 , - 5668 , - 4703 , - 4106 , - 3877 , - 4016 , - 4523 , - 5398 , - 753 , - 2364 , - 4343 , - 802 , - 3517 , - 712 , - 4163 , - 2094 , - 393 , - 4948 , - 3983 , - 3386 , - 3157 , - 3296 , - 3803 , - 4678 , - 33 , - 1644 , - 3623 , - 82 , - 2797 , - 5880 , - 3443 , - 1374 , - 5561 , - 4228 , - 3263 , - 2666 , - 2437 , - 2576 , - 3083 , - 3958 , - 5201 , - 924 , - 2903 , - 5250 , - 2077 , - 5160 , - 2723 , - 654 , - 4841 , - 3508 , - 2543 , - 1946 , - 1717 , - 1856 , - 2363 , - 3238 , - 4481 , - 204 , - 2183 , - 4530 , - 1357 , - 4440 , - 2003 , - 5822 , - 4121 , - 2788 , - 1823 , - 1226 , - 997 , - 1136 , - 1643 , - 2518 , - 3761 , - 5372 , - 1463 , - 3810 , - 637 , - 3720 , - 1283 , - 5102 , - 3401 , - 2068 , - 1103 , - 506 , - 277 , - 416 , - 923 , - 1798 , - 3041 , - 4652 , - 743 , - 3090 , - 5805 , - 3000 , - 563 , - 4382 , - 2681 , - 1348 , - 383 , - 5674 , - 5445 , - 5584 , - 203 , - 1078 , - 2321 , - 3932 , - 23 , - 2370 , - 5085 , - 2280 , - 5731 , - 3662 , - 1961 , - 628 , - 5551 , - 4954 , - 4725 , - 4864 , - 5371 , - 358 , - 1601 , - 3212 , - 5191 , - 1650 , - 4365 , - 1560 , - 5011 , - 2942 , - 1241 , - 5796 , - 4831 , - 4234 , - 4005 , - 4144 , - 4651 , - 5526 , - 881 , - 2492 , - 4471 , - 930 , - 3645 , - 840 , - 4291 , - 2222 , - 521 , - 5076 , - 4111 , - 3514 , - 3285 , - 3424 , - 3931 , - 4806 , - 161 , - 1772 , - 3751 , - 210 , - 2925 , - 120 , - 3571 , - 1502 , - 5689 , - 4356 , - 3391 , - 2794 , - 2565 , - 2704 , - 3211 , - 4086 , - 5329 , - 1052 , - 3031 , - 5378 , - 2205 , - 5288 , - 2851 , - 782 , - 4969 , - 3636 , - 2671 , - 2074 , - 1845 , - 1984 , - 2491 , - 3366 , - 4609 , - 332 , - 2311 , - 4658 , - 1485 , - 4568 , - 2131 , - 62 , - 4249 , - 2916 , - 1951 , - 1354 , - 1125 , - 1264 , - 1771 , - 2646 , - 3889 , - 5500 , - 1591 , - 3938 , - 765 , - 3848 , - 1411 , - 5230 , - 3529 , - 2196 , - 1231 , - 634 , - 405 , - 544 , - 1051 , - 1926 , - 3169 , - 4780 , - 871 , - 3218 , - 45 , - 3128 , - 691 , - 4510 , - 2809 , - 1476 , - 511 , - 5802 , - 5573 , - 5712 , - 331 , - 1206 , - 2449 , - 4060 , - 151 , - 2498 , - 5213 , - 2408 , - 5859 , - 3790 , - 2089 , - 756 , - 5679 , - 5082 , - 4853 , - 4992 , - 5499 , - 486 , - 1729 , - 3340 , - 5319 , - 1778 , - 4493 , - 1688 , - 5139 , - 3070 , - 1369 , - 36 , - 4959 , - 4362 , - 4133 , - 4272 , - 4779 , - 5654 , - 1009 , - 2620 , - 4599 , - 1058 , - 3773 , - 968 , - 4419 , - 2350 , - 649 , - 5204 , - 4239 , - 3642 , - 3413 , - 3552 , - 4059 , - 4934 , - 289 , - 1900 , - 3879 , - 338 , - 3053 , - 248 , - 3699 , - 1630 , - 5817 , - 4484 , - 3519 , - 2922 , - 2693 , - 2832 , - 3339 , - 4214 , - 5457 , - 1180 , - 3159 , - 5506 , - 2333 , - 5416 , - 2979 , - 910 , - 5097 , - 3764 , - 2799 , - 2202 , - 1973 , - 2112 , - 2619 , - 3494 , - 4737 , - 460 , - 2439 , - 4786 , - 1613 , - 4696 , - 2259 , - 190 , - 4377 , - 3044 , - 2079 , - 1482 , - 1253 , - 1392 , - 1899 , - 2774 , - 4017 , - 5628 , - 1719 , - 4066 , - 893 , - 3976 , - 1539 , - 5358 , - 3657 , - 2324 , - 1359 , - 762 , - 533 , - 672 , - 1179 , - 2054 , - 3297 , - 4908 , - 999 , - 3346 , - 173 , - 3256 , - 819 , - 4638 , - 2937 , - 1604 , - 639 , - 42 , - 5701 , - 5840 , - 459 , - 1334 , - 2577 , - 4188 , - 279 , - 2626 , - 5341 , - 2536 , - 99 , - 3918 , - 2217 , - 884 , - 5807 , - 5210 , - 4981 , - 5120 , - 5627 , - 614 , - 1857 , - 3468 , - 5447 , - 1906 , - 4621 , - 1816 , - 5267 , - 3198 , - 1497 , - 164 , - 5087 , - 4490 , - 4261 , - 4400 , - 4907 , - 5782 , - 1137 , - 2748 , - 4727 , - 1186 , - 3901 , - 1096 , - 4547 , - 2478 , - 777 , - 5332 , - 4367 , - 3770 , - 3541 , - 3680 , - 4187 , - 5062 , - 417 , - 2028 , - 4007 , - 466 , - 3181 , - 376 , - 3827 , - 1758 , - 57 , - 4612 , - 3647 , - 3050 , - 2821 , - 2960 , - 3467 , - 4342 , - 5585 , - 1308 , - 3287 , - 5634 , - 2461 , - 5544 , - 3107 , - 1038 , - 5225 , - 3892 , - 2927 , - 2330 , - 2101 , - 2240 , - 2747 , - 3622 , - 4865 , - 588 , - 2567 , - 4914 , - 1741 , - 4824 , - 2387 , - 318 , - 4505 , - 3172 , - 2207 , - 1610 , - 1381 , - 1520 , - 2027 , - 2902 , - 4145 , - 5756 , - 1847 , - 4194 , - 1021 , - 4104 , - 1667 , - 5486 , - 3785 , - 2452 , - 1487 , - 890 , - 661 , - 800 , - 1307 , - 2182 , - 3425 , - 5036 , - 1127 , - 3474 , - 301 , - 3384 , - 947 , - 4766 , - 3065 , - 1732 , - 767 , - 170 , - 5829 , - 80 , - 587 , - 1462 , - 2705 , - 4316 , - 407 , - 2754 , - 5469 , - 2664 , - 227 , - 4046 , - 2345 , - 1012 , - 47 , - 5338 , - 5109 , - 5248 , - 5755 , - 742 , - 1985 , - 3596 , - 5575 , - 2034 , - 4749 , - 1944 , - 5395 , - 3326 , - 1625 , - 292 , - 5215 , - 4618 , - 4389 , - 4528 , - 5035 , - 22 , - 1265 , - 2876 , - 4855 , - 1314 , - 4029 , - 1224 , - 4675 , - 2606 , - 905 , - 5460 , - 4495 , - 3898 , - 3669 , - 3808 , - 4315 , - 5190 , - 545 , - 2156 , - 4135 , - 594 , - 3309 , - 504 , - 3955 , - 1886 , - 185 , - 4740 , - 3775 , - 3178 , - 2949 , - 3088 , - 3595 , - 4470 , - 5713 , - 1436 , - 3415 , - 5762 , - 2589 , - 5672 , - 3235 , - 1166 , - 5353 , - 4020 , - 3055 , - 2458 , - 2229 , - 2368 , - 2875 , - 3750 , - 4993 , - 716 , - 2695 , - 5042 , - 1869 , - 4952 , - 2515 , - 446 , - 4633 , - 3300 , - 2335 , - 1738 , - 1509 , - 1648 , - 2155 , - 3030 , - 4273 , - 5884 , - 1975 , - 4322 , - 1149 , - 4232 , - 1795 , - 5614 , - 3913 , - 2580 , - 1615 , - 1018 , - 789 , - 928 , - 1435 , - 2310 , - 3553 , - 5164 , - 1255 , - 3602 , - 429 , - 3512 , - 1075 , - 4894 , - 3193 , - 1860 , - 895 , - 298 , - 69 , - 208 , - 715 , - 1590 , - 2833 , - 4444 , - 535 , - 2882 , - 5597 , - 2792 , - 355 , - 4174 , - 2473 , - 1140 , - 175 , - 5466 , - 5237 , - 5376 , - 5883 , - 870 , - 2113 , - 3724 , - 5703 , - 2162 , - 4877 , - 2072 , - 5523 , - 3454 , - 1753 , - 420 , - 5343 , - 4746 , - 4517 , - 4656 , - 5163 , - 150 , - 1393 , - 3004 , - 4983 , - 1442 , - 4157 , - 1352 , - 4803 , - 2734 , - 1033 , - 5588 , - 4623 , - 4026 , - 3797 , - 3936 , - 4443 , - 5318 , - 673 , - 2284 , - 4263 , - 722 , - 3437 , - 632 , - 4083 , - 2014 , - 313 , - 4868 , - 3903 , - 3306 , - 3077 , - 3216 , - 3723 , - 4598 , - 5841 , - 1564 , - 3543 , - 2 , - 2717 , - 5800 , - 3363 , - 1294 , - 5481 , - 4148 , - 3183 , - 2586 , - 2357 , - 2496 , - 3003 , - 3878 , - 5121 , - 844 , - 2823 , - 5170 , - 1997 , - 5080 , - 2643 , - 574 , - 4761 , - 3428 , - 2463 , - 1866 , - 1637 , - 1776 , - 2283 , - 3158 , - 4401 , - 124 , - 2103 , - 4450 , - 1277 , - 4360 , - 1923 , - 5742 , - 4041 , - 2708 , - 1743 , - 1146 , - 917 , - 1056 , - 1563 , - 2438 , - 3681 , - 5292 , - 1383 , - 3730 , - 557 , - 3640 , - 1203 , - 5022 , - 3321 , - 1988 , - 1023 , - 426 , - 197 , - 336 , - 843 , - 1718 , - 2961 , - 4572 , - 663 , - 3010 , - 5725 , - 2920 , - 483 , - 4302 , - 2601 , - 1268 , - 303 , - 5594 , - 5365 , - 5504 , - 123 , - 998 , - 2241 , - 3852 , - 5831 , - 2290 , - 5005 , - 2200 , - 5651 , - 3582 , - 1881 , - 548 , - 5471 , - 4874 , - 4645 , - 4784 , - 5291 , - 278 , - 1521 , - 3132 , - 5111 , - 1570 , - 4285 , - 1480 , - 4931 , - 2862 , - 1161 , - 5716 , - 4751 , - 4154 , - 3925 , - 4064 , - 4571 , - 5446 , - 801 , - 2412 , - 4391 , - 850 , - 3565 , - 760 , - 4211 , - 2142 , - 441 , - 4996 , - 4031 , - 3434 , - 3205 , - 3344 , - 3851 , - 4726 , - 81 , - 1692 , - 3671 , - 130 , - 2845 , - 40 , - 3491 , - 1422 , - 5609 , - 4276 , - 3311 , - 2714 , - 2485 , - 2624 , - 3131 , - 4006 , - 5249 , - 972 , - 2951 , - 5298 , - 2125 , - 5208 , - 2771 , - 702 , - 4889 , - 3556 , - 2591 , - 1994 , - 1765 , - 1904 , - 2411 , - 3286 , - 4529 , - 252 , - 2231 , - 4578 , - 1405 , - 4488 , - 2051 , - 5870 , - 4169 , - 2836 , - 1871 , - 1274 , - 1045 , - 1184 , - 1691 , - 2566 , - 3809 , - 5420 , - 1511 , - 3858 , - 685 , - 3768 , - 1331 , - 5150 , - 3449 , - 2116 , - 1151 , - 554 , - 325 , - 464 , - 971 , - 1846 , - 3089 , - 4700 , - 791 , - 3138 , - 5853 , - 3048 , - 611 , - 4430 , - 2729 , - 1396 , - 431 , - 5722 , - 5493 , - 5632 , - 251 , - 1126 , - 2369 , - 3980 , - 71 , - 2418 , - 5133 , - 2328 , - 5779 , - 3710 , - 2009 , - 676 , - 5599 , - 5002 , - 4773 , - 4912 , - 5419 , - 406 , - 1649 , - 3260 , - 5239 , - 1698 , - 4413 , - 1608 , - 5059 , - 2990 , - 1289 , - 5844 , - 4879 , - 4282 , - 4053 , - 4192 , - 4699 , - 5574 , - 929 , - 2540 , - 4519 , - 978 , - 3693 , - 888 , - 4339 , - 2270 , - 569 , - 5124 , - 4159 , - 3562 , - 3333 , - 3472 , - 3979 , - 4854 , - 209 , - 1820 , - 3799 , - 258 , - 2973 , - 168 , - 3619 , - 1550 , - 5737 , - 4404 , - 3439 , - 2842 , - 2613 , - 2752 , - 3259 , - 4134 , - 5377 , - 1100 , - 3079 , - 5426 , - 2253 , - 5336 , - 2899 , - 830 , - 5017 , - 3684 , - 2719 , - 2122 , - 1893 , - 2032 , - 2539 , - 3414 , - 4657 , - 380 , - 2359 , - 4706 , - 1533 , - 4616 , - 2179 , - 110 , - 4297 , - 2964 , - 1999 , - 1402 , - 1173 , - 1312 , - 1819 , - 2694 , - 3937 , - 5548 , - 1639 , - 3986 , - 813 , - 3896 , - 1459 , - 5278 , - 3577 , - 2244 , - 1279 , - 682 , - 453 , - 592 , - 1099 , - 1974 , - 3217 , - 4828 , - 919 , - 3266 , - 93 , - 3176 , - 739 , - 4558 , - 2857 , - 1524 , - 559 , - 5850 , - 5621 , - 5760 , - 379 , - 1254 , - 2497 , - 4108 , - 199 , - 2546 , - 5261 , - 2456 , - 19 , - 3838 , - 2137 , - 804 , - 5727 , - 5130 , - 4901 , - 5040 , - 5547 , - 534 , - 1777 , - 3388 , - 5367 , - 1826 , - 4541 , - 1736 , - 5187 , - 3118 , - 1417 , - 84 , - 5007 , - 4410 , - 4181 , - 4320 , - 4827 , - 5702 , - 1057 , - 2668 , - 4647 , - 1106 , - 3821 , - 1016 , - 4467 , - 2398 , - 697 , - 5252 , - 4287 , - 3690 , - 3461 , - 3600 , - 4107 , - 4982 , - 337 , - 1948 , - 3927 , - 386 , - 3101 , - 296 , - 3747 , - 1678 , - 5865 , - 4532 , - 3567 , - 2970 , - 2741 , - 2880 , - 3387 , - 4262 , - 5505 , - 1228 , - 3207 , - 5554 , - 2381 , - 5464 , - 3027 , - 958 , - 5145 , - 3812 , - 2847 , - 2250 , - 2021 , - 2160 , - 2667 , - 3542 , - 4785 , - 508 , - 2487 , - 4834 , - 1661 , - 4744 , - 2307 , - 238 , - 4425 , - 3092 , - 2127 , - 1530 , - 1301 , - 1440 , - 1947 , - 2822 , - 4065 , - 5676 , - 1767 , - 4114 , - 941 , - 4024 , - 1587 , - 5406 , - 3705 , - 2372 , - 1407 , - 810 , - 581 , - 720 , - 1227 , - 2102 , - 3345 , - 4956 , - 1047 , - 3394 , - 221 , - 3304 , - 867 , - 4686 , - 2985 , - 1652 , - 687 , - 90 , - 5749 , - 0 , - 233 , - 838 , - 1815 , - 3164 , - 4885 , - 1026 , - 3491 , - 376 , - 3585 , - 1214 , - 5167 , - 3540 , - 2285 , - 1402 , - 891 , - 752 , - 985 , - 1590 , - 2567 , - 3916 , - 5637 , - 1778 , - 4243 , - 1128 , - 4337 , - 1966 , - 5919 , - 4292 , - 3037 , - 2154 , - 1643 , - 1504 , - 1737 , - 2342 , - 3319 , - 4668 , - 437 , - 2530 , - 4995 , - 1880 , - 5089 , - 2718 , - 719 , - 5044 , - 3789 , - 2906 , - 2395 , - 2256 , - 2489 , - 3094 , - 4071 , - 5420 , - 1189 , - 3282 , - 5747 , - 2632 , - 5841 , - 3470 , - 1471 , - 5796 , - 4541 , - 3658 , - 3147 , - 3008 , - 3241 , - 3846 , - 4823 , - 220 , - 1941 , - 4034 , - 547 , - 3384 , - 641 , - 4222 , - 2223 , - 596 , - 5293 , - 4410 , - 3899 , - 3760 , - 3993 , - 4598 , - 5575 , - 972 , - 2693 , - 4786 , - 1299 , - 4136 , - 1393 , - 4974 , - 2975 , - 1348 , - 93 , - 5162 , - 4651 , - 4512 , - 4745 , - 5350 , - 375 , - 1724 , - 3445 , - 5538 , - 2051 , - 4888 , - 2145 , - 5726 , - 3727 , - 2100 , - 845 , - 5914 , - 5403 , - 5264 , - 5497 , - 150 , - 1127 , - 2476 , - 4197 , - 338 , - 2803 , - 5640 , - 2897 , - 526 , - 4479 , - 2852 , - 1597 , - 714 , - 203 , - 64 , - 297 , - 902 , - 1879 , - 3228 , - 4949 , - 1090 , - 3555 , - 440 , - 3649 , - 1278 , - 5231 , - 3604 , - 2349 , - 1466 , - 955 , - 816 , - 1049 , - 1654 , - 2631 , - 3980 , - 5701 , - 1842 , - 4307 , - 1192 , - 4401 , - 2030 , - 31 , - 4356 , - 3101 , - 2218 , - 1707 , - 1568 , - 1801 , - 2406 , - 3383 , - 4732 , - 501 , - 2594 , - 5059 , - 1944 , - 5153 , - 2782 , - 783 , - 5108 , - 3853 , - 2970 , - 2459 , - 2320 , - 2553 , - 3158 , - 4135 , - 5484 , - 1253 , - 3346 , - 5811 , - 2696 , - 5905 , - 3534 , - 1535 , - 5860 , - 4605 , - 3722 , - 3211 , - 3072 , - 3305 , - 3910 , - 4887 , - 284 , - 2005 , - 4098 , - 611 , - 3448 , - 705 , - 4286 , - 2287 , - 660 , - 5357 , - 4474 , - 3963 , - 3824 , - 4057 , - 4662 , - 5639 , - 1036 , - 2757 , - 4850 , - 1363 , - 4200 , - 1457 , - 5038 , - 3039 , - 1412 , - 157 , - 5226 , - 4715 , - 4576 , - 4809 , - 5414 , - 439 , - 1788 , - 3509 , - 5602 , - 2115 , - 4952 , - 2209 , - 5790 , - 3791 , - 2164 , - 909 , - 26 , - 5467 , - 5328 , - 5561 , - 214 , - 1191 , - 2540 , - 4261 , - 402 , - 2867 , - 5704 , - 2961 , - 590 , - 4543 , - 2916 , - 1661 , - 778 , - 267 , - 128 , - 361 , - 966 , - 1943 , - 3292 , - 5013 , - 1154 , - 3619 , - 504 , - 3713 , - 1342 , - 5295 , - 3668 , - 2413 , - 1530 , - 1019 , - 880 , - 1113 , - 1718 , - 2695 , - 4044 , - 5765 , - 1906 , - 4371 , - 1256 , - 4465 , - 2094 , - 95 , - 4420 , - 3165 , - 2282 , - 1771 , - 1632 , - 1865 , - 2470 , - 3447 , - 4796 , - 565 , - 2658 , - 5123 , - 2008 , - 5217 , - 2846 , - 847 , - 5172 , - 3917 , - 3034 , - 2523 , - 2384 , - 2617 , - 3222 , - 4199 , - 5548 , - 1317 , - 3410 , - 5875 , - 2760 , - 17 , - 3598 , - 1599 , - 5924 , - 4669 , - 3786 , - 3275 , - 3136 , - 3369 , - 3974 , - 4951 , - 348 , - 2069 , - 4162 , - 675 , - 3512 , - 769 , - 4350 , - 2351 , - 724 , - 5421 , - 4538 , - 4027 , - 3888 , - 4121 , - 4726 , - 5703 , - 1100 , - 2821 , - 4914 , - 1427 , - 4264 , - 1521 , - 5102 , - 3103 , - 1476 , - 221 , - 5290 , - 4779 , - 4640 , - 4873 , - 5478 , - 503 , - 1852 , - 3573 , - 5666 , - 2179 , - 5016 , - 2273 , - 5854 , - 3855 , - 2228 , - 973 , - 90 , - 5531 , - 5392 , - 5625 , - 278 , - 1255 , - 2604 , - 4325 , - 466 , - 2931 , - 5768 , - 3025 , - 654 , - 4607 , - 2980 , - 1725 , - 842 , - 331 , - 192 , - 425 , - 1030 , - 2007 , - 3356 , - 5077 , - 1218 , - 3683 , - 568 , - 3777 , - 1406 , - 5359 , - 3732 , - 2477 , - 1594 , - 1083 , - 944 , - 1177 , - 1782 , - 2759 , - 4108 , - 5829 , - 1970 , - 4435 , - 1320 , - 4529 , - 2158 , - 159 , - 4484 , - 3229 , - 2346 , - 1835 , - 1696 , - 1929 , - 2534 , - 3511 , - 4860 , - 629 , - 2722 , - 5187 , - 2072 , - 5281 , - 2910 , - 911 , - 5236 , - 3981 , - 3098 , - 2587 , - 2448 , - 2681 , - 3286 , - 4263 , - 5612 , - 1381 , - 3474 , - 5939 , - 2824 , - 81 , - 3662 , - 1663 , - 36 , - 4733 , - 3850 , - 3339 , - 3200 , - 3433 , - 4038 , - 5015 , - 412 , - 2133 , - 4226 , - 739 , - 3576 , - 833 , - 4414 , - 2415 , - 788 , - 5485 , - 4602 , - 4091 , - 3952 , - 4185 , - 4790 , - 5767 , - 1164 , - 2885 , - 4978 , - 1491 , - 4328 , - 1585 , - 5166 , - 3167 , - 1540 , - 285 , - 5354 , - 4843 , - 4704 , - 4937 , - 5542 , - 567 , - 1916 , - 3637 , - 5730 , - 2243 , - 5080 , - 2337 , - 5918 , - 3919 , - 2292 , - 1037 , - 154 , - 5595 , - 5456 , - 5689 , - 342 , - 1319 , - 2668 , - 4389 , - 530 , - 2995 , - 5832 , - 3089 , - 718 , - 4671 , - 3044 , - 1789 , - 906 , - 395 , - 256 , - 489 , - 1094 , - 2071 , - 3420 , - 5141 , - 1282 , - 3747 , - 632 , - 3841 , - 1470 , - 5423 , - 3796 , - 2541 , - 1658 , - 1147 , - 1008 , - 1241 , - 1846 , - 2823 , - 4172 , - 5893 , - 2034 , - 4499 , - 1384 , - 4593 , - 2222 , - 223 , - 4548 , - 3293 , - 2410 , - 1899 , - 1760 , - 1993 , - 2598 , - 3575 , - 4924 , - 693 , - 2786 , - 5251 , - 2136 , - 5345 , - 2974 , - 975 , - 5300 , - 4045 , - 3162 , - 2651 , - 2512 , - 2745 , - 3350 , - 4327 , - 5676 , - 1445 , - 3538 , - 51 , - 2888 , - 145 , - 3726 , - 1727 , - 100 , - 4797 , - 3914 , - 3403 , - 3264 , - 3497 , - 4102 , - 5079 , - 476 , - 2197 , - 4290 , - 803 , - 3640 , - 897 , - 4478 , - 2479 , - 852 , - 5549 , - 4666 , - 4155 , - 4016 , - 4249 , - 4854 , - 5831 , - 1228 , - 2949 , - 5042 , - 1555 , - 4392 , - 1649 , - 5230 , - 3231 , - 1604 , - 349 , - 5418 , - 4907 , - 4768 , - 5001 , - 5606 , - 631 , - 1980 , - 3701 , - 5794 , - 2307 , - 5144 , - 2401 , - 30 , - 3983 , - 2356 , - 1101 , - 218 , - 5659 , - 5520 , - 5753 , - 406 , - 1383 , - 2732 , - 4453 , - 594 , - 3059 , - 5896 , - 3153 , - 782 , - 4735 , - 3108 , - 1853 , - 970 , - 459 , - 320 , - 553 , - 1158 , - 2135 , - 3484 , - 5205 , - 1346 , - 3811 , - 696 , - 3905 , - 1534 , - 5487 , - 3860 , - 2605 , - 1722 , - 1211 , - 1072 , - 1305 , - 1910 , - 2887 , - 4236 , - 5 , - 2098 , - 4563 , - 1448 , - 4657 , - 2286 , - 287 , - 4612 , - 3357 , - 2474 , - 1963 , - 1824 , - 2057 , - 2662 , - 3639 , - 4988 , - 757 , - 2850 , - 5315 , - 2200 , - 5409 , - 3038 , - 1039 , - 5364 , - 4109 , - 3226 , - 2715 , - 2576 , - 2809 , - 3414 , - 4391 , - 5740 , - 1509 , - 3602 , - 115 , - 2952 , - 209 , - 3790 , - 1791 , - 164 , - 4861 , - 3978 , - 3467 , - 3328 , - 3561 , - 4166 , - 5143 , - 540 , - 2261 , - 4354 , - 867 , - 3704 , - 961 , - 4542 , - 2543 , - 916 , - 5613 , - 4730 , - 4219 , - 4080 , - 4313 , - 4918 , - 5895 , - 1292 , - 3013 , - 5106 , - 1619 , - 4456 , - 1713 , - 5294 , - 3295 , - 1668 , - 413 , - 5482 , - 4971 , - 4832 , - 5065 , - 5670 , - 695 , - 2044 , - 3765 , - 5858 , - 2371 , - 5208 , - 2465 , - 94 , - 4047 , - 2420 , - 1165 , - 282 , - 5723 , - 5584 , - 5817 , - 470 , - 1447 , - 2796 , - 4517 , - 658 , - 3123 , - 8 , - 3217 , - 846 , - 4799 , - 3172 , - 1917 , - 1034 , - 523 , - 384 , - 617 , - 1222 , - 2199 , - 3548 , - 5269 , - 1410 , - 3875 , - 760 , - 3969 , - 1598 , - 5551 , - 3924 , - 2669 , - 1786 , - 1275 , - 1136 , - 1369 , - 1974 , - 2951 , - 4300 , - 69 , - 2162 , - 4627 , - 1512 , - 4721 , - 2350 , - 351 , - 4676 , - 3421 , - 2538 , - 2027 , - 1888 , - 2121 , - 2726 , - 3703 , - 5052 , - 821 , - 2914 , - 5379 , - 2264 , - 5473 , - 3102 , - 1103 , - 5428 , - 4173 , - 3290 , - 2779 , - 2640 , - 2873 , - 3478 , - 4455 , - 5804 , - 1573 , - 3666 , - 179 , - 3016 , - 273 , - 3854 , - 1855 , - 228 , - 4925 , - 4042 , - 3531 , - 3392 , - 3625 , - 4230 , - 5207 , - 604 , - 2325 , - 4418 , - 931 , - 3768 , - 1025 , - 4606 , - 2607 , - 980 , - 5677 , - 4794 , - 4283 , - 4144 , - 4377 , - 4982 , - 7 , - 1356 , - 3077 , - 5170 , - 1683 , - 4520 , - 1777 , - 5358 , - 3359 , - 1732 , - 477 , - 5546 , - 5035 , - 4896 , - 5129 , - 5734 , - 759 , - 2108 , - 3829 , - 5922 , - 2435 , - 5272 , - 2529 , - 158 , - 4111 , - 2484 , - 1229 , - 346 , - 5787 , - 5648 , - 5881 , - 534 , - 1511 , - 2860 , - 4581 , - 722 , - 3187 , - 72 , - 3281 , - 910 , - 4863 , - 3236 , - 1981 , - 1098 , - 587 , - 448 , - 681 , - 1286 , - 2263 , - 3612 , - 5333 , - 1474 , - 3939 , - 824 , - 4033 , - 1662 , - 5615 , - 3988 , - 2733 , - 1850 , - 1339 , - 1200 , - 1433 , - 2038 , - 3015 , - 4364 , - 133 , - 2226 , - 4691 , - 1576 , - 4785 , - 2414 , - 415 , - 4740 , - 3485 , - 2602 , - 2091 , - 1952 , - 2185 , - 2790 , - 3767 , - 5116 , - 885 , - 2978 , - 5443 , - 2328 , - 5537 , - 3166 , - 1167 , - 5492 , - 4237 , - 3354 , - 2843 , - 2704 , - 2937 , - 3542 , - 4519 , - 5868 , - 1637 , - 3730 , - 243 , - 3080 , - 337 , - 3918 , - 1919 , - 292 , - 4989 , - 4106 , - 3595 , - 3456 , - 3689 , - 4294 , - 5271 , - 668 , - 2389 , - 4482 , - 995 , - 3832 , - 1089 , - 4670 , - 2671 , - 1044 , - 5741 , - 4858 , - 4347 , - 4208 , - 4441 , - 5046 , - 71 , - 1420 , - 3141 , - 5234 , - 1747 , - 4584 , - 1841 , - 5422 , - 3423 , - 1796 , - 541 , - 5610 , - 5099 , - 4960 , - 5193 , - 5798 , - 823 , - 2172 , - 3893 , - 34 , - 2499 , - 5336 , - 2593 , - 222 , - 4175 , - 2548 , - 1293 , - 410 , - 5851 , - 5712 , - 5945 , - 598 , - 1575 , - 2924 , - 4645 , - 786 , - 3251 , - 136 , - 3345 , - 974 , - 4927 , - 3300 , - 2045 , - 1162 , - 651 , - 512 , - 745 , - 1350 , - 2327 , - 3676 , - 5397 , - 1538 , - 4003 , - 888 , - 4097 , - 1726 , - 5679 , - 4052 , - 2797 , - 1914 , - 1403 , - 1264 , - 1497 , - 2102 , - 3079 , - 4428 , - 197 , - 2290 , - 4755 , - 1640 , - 4849 , - 2478 , - 479 , - 4804 , - 3549 , - 2666 , - 2155 , - 2016 , - 2249 , - 2854 , - 3831 , - 5180 , - 949 , - 3042 , - 5507 , - 2392 , - 5601 , - 3230 , - 1231 , - 5556 , - 4301 , - 3418 , - 2907 , - 2768 , - 3001 , - 3606 , - 4583 , - 5932 , - 1701 , - 3794 , - 307 , - 3144 , - 401 , - 3982 , - 1983 , - 356 , - 5053 , - 4170 , - 3659 , - 3520 , - 3753 , - 4358 , - 5335 , - 732 , - 2453 , - 4546 , - 1059 , - 3896 , - 1153 , - 4734 , - 2735 , - 1108 , - 5805 , - 4922 , - 4411 , - 4272 , - 4505 , - 5110 , - 135 , - 1484 , - 3205 , - 5298 , - 1811 , - 4648 , - 1905 , - 5486 , - 3487 , - 1860 , - 605 , - 5674 , - 5163 , - 5024 , - 5257 , - 5862 , - 887 , - 2236 , - 3957 , - 98 , - 2563 , - 5400 , - 2657 , - 286 , - 4239 , - 2612 , - 1357 , - 474 , - 5915 , - 5776 , - 57 , - 662 , - 1639 , - 2988 , - 4709 , - 850 , - 3315 , - 200 , - 3409 , - 1038 , - 4991 , - 3364 , - 2109 , - 1226 , - 715 , - 576 , - 809 , - 1414 , - 2391 , - 3740 , - 5461 , - 1602 , - 4067 , - 952 , - 4161 , - 1790 , - 5743 , - 4116 , - 2861 , - 1978 , - 1467 , - 1328 , - 1561 , - 2166 , - 3143 , - 4492 , - 261 , - 2354 , - 4819 , - 1704 , - 4913 , - 2542 , - 543 , - 4868 , - 3613 , - 2730 , - 2219 , - 2080 , - 2313 , - 2918 , - 3895 , - 5244 , - 1013 , - 3106 , - 5571 , - 2456 , - 5665 , - 3294 , - 1295 , - 5620 , - 4365 , - 3482 , - 2971 , - 2832 , - 3065 , - 3670 , - 4647 , - 44 , - 1765 , - 3858 , - 371 , - 3208 , - 465 , - 4046 , - 2047 , - 420 , - 5117 , - 4234 , - 3723 , - 3584 , - 3817 , - 4422 , - 5399 , - 796 , - 2517 , - 4610 , - 1123 , - 3960 , - 1217 , - 4798 , - 2799 , - 1172 , - 5869 , - 4986 , - 4475 , - 4336 , - 4569 , - 5174 , - 199 , - 1548 , - 3269 , - 5362 , - 1875 , - 4712 , - 1969 , - 5550 , - 3551 , - 1924 , - 669 , - 5738 , - 5227 , - 5088 , - 5321 , - 5926 , - 951 , - 2300 , - 4021 , - 162 , - 2627 , - 5464 , - 2721 , - 350 , - 4303 , - 2676 , - 1421 , - 538 , - 27 , - 5840 , - 121 , - 726 , - 1703 , - 3052 , - 4773 , - 914 , - 3379 , - 264 , - 3473 , - 1102 , - 5055 , - 3428 , - 2173 , - 1290 , - 779 , - 640 , - 873 , - 1478 , - 2455 , - 3804 , - 5525 , - 1666 , - 4131 , - 1016 , - 4225 , - 1854 , - 5807 , - 4180 , - 2925 , - 2042 , - 1531 , - 1392 , - 1625 , - 2230 , - 3207 , - 4556 , - 325 , - 2418 , - 4883 , - 1768 , - 4977 , - 2606 , - 607 , - 4932 , - 3677 , - 2794 , - 2283 , - 2144 , - 2377 , - 2982 , - 3959 , - 5308 , - 1077 , - 3170 , - 5635 , - 2520 , - 5729 , - 3358 , - 1359 , - 5684 , - 4429 , - 3546 , - 3035 , - 2896 , - 3129 , - 3734 , - 4711 , - 108 , - 1829 , - 3922 , - 435 , - 3272 , - 529 , - 4110 , - 2111 , - 484 , - 5181 , - 4298 , - 3787 , - 3648 , - 3881 , - 4486 , - 5463 , - 860 , - 2581 , - 4674 , - 1187 , - 4024 , - 1281 , - 4862 , - 2863 , - 1236 , - 5933 , - 5050 , - 4539 , - 4400 , - 4633 , - 5238 , - 263 , - 1612 , - 3333 , - 5426 , - 1939 , - 4776 , - 2033 , - 5614 , - 3615 , - 1988 , - 733 , - 5802 , - 5291 , - 5152 , - 5385 , - 38 , - 1015 , - 2364 , - 4085 , - 226 , - 2691 , - 5528 , - 2785 , - 414 , - 4367 , - 2740 , - 1485 , - 602 , - 91 , - 5904 , - 185 , - 790 , - 1767 , - 3116 , - 4837 , - 978 , - 3443 , - 328 , - 3537 , - 1166 , - 5119 , - 3492 , - 2237 , - 1354 , - 843 , - 704 , - 937 , - 1542 , - 2519 , - 3868 , - 5589 , - 1730 , - 4195 , - 1080 , - 4289 , - 1918 , - 5871 , - 4244 , - 2989 , - 2106 , - 1595 , - 1456 , - 1689 , - 2294 , - 3271 , - 4620 , - 389 , - 2482 , - 4947 , - 1832 , - 5041 , - 2670 , - 671 , - 4996 , - 3741 , - 2858 , - 2347 , - 2208 , - 2441 , - 3046 , - 4023 , - 5372 , - 1141 , - 3234 , - 5699 , - 2584 , - 5793 , - 3422 , - 1423 , - 5748 , - 4493 , - 3610 , - 3099 , - 2960 , - 3193 , - 3798 , - 4775 , - 172 , - 1893 , - 3986 , - 499 , - 3336 , - 593 , - 4174 , - 2175 , - 548 , - 5245 , - 4362 , - 3851 , - 3712 , - 3945 , - 4550 , - 5527 , - 924 , - 2645 , - 4738 , - 1251 , - 4088 , - 1345 , - 4926 , - 2927 , - 1300 , - 45 , - 5114 , - 4603 , - 4464 , - 4697 , - 5302 , - 327 , - 1676 , - 3397 , - 5490 , - 2003 , - 4840 , - 2097 , - 5678 , - 3679 , - 2052 , - 797 , - 5866 , - 5355 , - 5216 , - 5449 , - 102 , - 1079 , - 2428 , - 4149 , - 290 , - 2755 , - 5592 , - 2849 , - 478 , - 4431 , - 2804 , - 1549 , - 666 , - 155 , - 16 , - 249 , - 854 , - 1831 , - 3180 , - 4901 , - 1042 , - 3507 , - 392 , - 3601 , - 1230 , - 5183 , - 3556 , - 2301 , - 1418 , - 907 , - 768 , - 1001 , - 1606 , - 2583 , - 3932 , - 5653 , - 1794 , - 4259 , - 1144 , - 4353 , - 1982 , - 5935 , - 4308 , - 3053 , - 2170 , - 1659 , - 1520 , - 1753 , - 2358 , - 3335 , - 4684 , - 453 , - 2546 , - 5011 , - 1896 , - 5105 , - 2734 , - 735 , - 5060 , - 3805 , - 2922 , - 2411 , - 2272 , - 2505 , - 3110 , - 4087 , - 5436 , - 1205 , - 3298 , - 5763 , - 2648 , - 5857 , - 3486 , - 1487 , - 5812 , - 4557 , - 3674 , - 3163 , - 3024 , - 3257 , - 3862 , - 4839 , - 236 , - 1957 , - 4050 , - 563 , - 3400 , - 657 , - 4238 , - 2239 , - 612 , - 5309 , - 4426 , - 3915 , - 3776 , - 4009 , - 4614 , - 5591 , - 988 , - 2709 , - 4802 , - 1315 , - 4152 , - 1409 , - 4990 , - 2991 , - 1364 , - 109 , - 5178 , - 4667 , - 4528 , - 4761 , - 5366 , - 391 , - 1740 , - 3461 , - 5554 , - 2067 , - 4904 , - 2161 , - 5742 , - 3743 , - 2116 , - 861 , - 5930 , - 5419 , - 5280 , - 5513 , - 166 , - 1143 , - 2492 , - 4213 , - 354 , - 2819 , - 5656 , - 2913 , - 542 , - 4495 , - 2868 , - 1613 , - 730 , - 219 , - 80 , - 313 , - 918 , - 1895 , - 3244 , - 4965 , - 1106 , - 3571 , - 456 , - 3665 , - 1294 , - 5247 , - 3620 , - 2365 , - 1482 , - 971 , - 832 , - 1065 , - 1670 , - 2647 , - 3996 , - 5717 , - 1858 , - 4323 , - 1208 , - 4417 , - 2046 , - 47 , - 4372 , - 3117 , - 2234 , - 1723 , - 1584 , - 1817 , - 2422 , - 3399 , - 4748 , - 517 , - 2610 , - 5075 , - 1960 , - 5169 , - 2798 , - 799 , - 5124 , - 3869 , - 2986 , - 2475 , - 2336 , - 2569 , - 3174 , - 4151 , - 5500 , - 1269 , - 3362 , - 5827 , - 2712 , - 5921 , - 3550 , - 1551 , - 5876 , - 4621 , - 3738 , - 3227 , - 3088 , - 3321 , - 3926 , - 4903 , - 300 , - 2021 , - 4114 , - 627 , - 3464 , - 721 , - 4302 , - 2303 , - 676 , - 5373 , - 4490 , - 3979 , - 3840 , - 4073 , - 4678 , - 5655 , - 1052 , - 2773 , - 4866 , - 1379 , - 4216 , - 1473 , - 5054 , - 3055 , - 1428 , - 173 , - 5242 , - 4731 , - 4592 , - 4825 , - 5430 , - 455 , - 1804 , - 3525 , - 5618 , - 2131 , - 4968 , - 2225 , - 5806 , - 3807 , - 2180 , - 925 , - 42 , - 5483 , - 5344 , - 5577 , - 230 , - 1207 , - 2556 , - 4277 , - 418 , - 2883 , - 5720 , - 2977 , - 606 , - 4559 , - 2932 , - 1677 , - 794 , - 283 , - 144 , - 377 , - 982 , - 1959 , - 3308 , - 5029 , - 1170 , - 3635 , - 520 , - 3729 , - 1358 , - 5311 , - 3684 , - 2429 , - 1546 , - 1035 , - 896 , - 1129 , - 1734 , - 2711 , - 4060 , - 5781 , - 1922 , - 4387 , - 1272 , - 4481 , - 2110 , - 111 , - 4436 , - 3181 , - 2298 , - 1787 , - 1648 , - 1881 , - 2486 , - 3463 , - 4812 , - 581 , - 2674 , - 5139 , - 2024 , - 5233 , - 2862 , - 863 , - 5188 , - 3933 , - 3050 , - 2539 , - 2400 , - 2633 , - 3238 , - 4215 , - 5564 , - 1333 , - 3426 , - 5891 , - 2776 , - 33 , - 3614 , - 1615 , - 5940 , - 4685 , - 3802 , - 3291 , - 3152 , - 3385 , - 3990 , - 4967 , - 364 , - 2085 , - 4178 , - 691 , - 3528 , - 785 , - 4366 , - 2367 , - 740 , - 5437 , - 4554 , - 4043 , - 3904 , - 4137 , - 4742 , - 5719 , - 1116 , - 2837 , - 4930 , - 1443 , - 4280 , - 1537 , - 5118 , - 3119 , - 1492 , - 237 , - 5306 , - 4795 , - 4656 , - 4889 , - 5494 , - 519 , - 1868 , - 3589 , - 5682 , - 2195 , - 5032 , - 2289 , - 5870 , - 3871 , - 2244 , - 989 , - 106 , - 5547 , - 5408 , - 5641 , - 294 , - 1271 , - 2620 , - 4341 , - 482 , - 2947 , - 5784 , - 3041 , - 670 , - 4623 , - 2996 , - 1741 , - 858 , - 347 , - 208 , - 441 , - 1046 , - 2023 , - 3372 , - 5093 , - 1234 , - 3699 , - 584 , - 3793 , - 1422 , - 5375 , - 3748 , - 2493 , - 1610 , - 1099 , - 960 , - 1193 , - 1798 , - 2775 , - 4124 , - 5845 , - 1986 , - 4451 , - 1336 , - 4545 , - 2174 , - 175 , - 4500 , - 3245 , - 2362 , - 1851 , - 1712 , - 1945 , - 2550 , - 3527 , - 4876 , - 645 , - 2738 , - 5203 , - 2088 , - 5297 , - 2926 , - 927 , - 5252 , - 3997 , - 3114 , - 2603 , - 2464 , - 2697 , - 3302 , - 4279 , - 5628 , - 1397 , - 3490 , - 3 , - 2840 , - 97 , - 3678 , - 1679 , - 52 , - 4749 , - 3866 , - 3355 , - 3216 , - 3449 , - 4054 , - 5031 , - 428 , - 2149 , - 4242 , - 755 , - 3592 , - 849 , - 4430 , - 2431 , - 804 , - 5501 , - 4618 , - 4107 , - 3968 , - 4201 , - 4806 , - 5783 , - 1180 , - 2901 , - 4994 , - 1507 , - 4344 , - 1601 , - 5182 , - 3183 , - 1556 , - 301 , - 5370 , - 4859 , - 4720 , - 4953 , - 5558 , - 583 , - 1932 , - 3653 , - 5746 , - 2259 , - 5096 , - 2353 , - 5934 , - 3935 , - 2308 , - 1053 , - 170 , - 5611 , - 5472 , - 5705 , - 358 , - 1335 , - 2684 , - 4405 , - 546 , - 3011 , - 5848 , - 3105 , - 734 , - 4687 , - 3060 , - 1805 , - 922 , - 411 , - 272 , - 505 , - 1110 , - 2087 , - 3436 , - 5157 , - 1298 , - 3763 , - 648 , - 3857 , - 1486 , - 5439 , - 3812 , - 2557 , - 1674 , - 1163 , - 1024 , - 1257 , - 1862 , - 2839 , - 4188 , - 5909 , - 2050 , - 4515 , - 1400 , - 4609 , - 2238 , - 239 , - 4564 , - 3309 , - 2426 , - 1915 , - 1776 , - 2009 , - 2614 , - 3591 , - 4940 , - 709 , - 2802 , - 5267 , - 2152 , - 5361 , - 2990 , - 991 , - 5316 , - 4061 , - 3178 , - 2667 , - 2528 , - 2761 , - 3366 , - 4343 , - 5692 , - 1461 , - 3554 , - 67 , - 2904 , - 161 , - 3742 , - 1743 , - 116 , - 4813 , - 3930 , - 3419 , - 3280 , - 3513 , - 4118 , - 5095 , - 492 , - 2213 , - 4306 , - 819 , - 3656 , - 913 , - 4494 , - 2495 , - 868 , - 5565 , - 4682 , - 4171 , - 4032 , - 4265 , - 4870 , - 5847 , - 1244 , - 2965 , - 5058 , - 1571 , - 4408 , - 1665 , - 5246 , - 3247 , - 1620 , - 365 , - 5434 , - 4923 , - 4784 , - 5017 , - 5622 , - 647 , - 1996 , - 3717 , - 5810 , - 2323 , - 5160 , - 2417 , - 46 , - 3999 , - 2372 , - 1117 , - 234 , - 5675 , - 5536 , - 5769 , - 422 , - 1399 , - 2748 , - 4469 , - 610 , - 3075 , - 5912 , - 3169 , - 798 , - 4751 , - 3124 , - 1869 , - 986 , - 475 , - 336 , - 569 , - 1174 , - 2151 , - 3500 , - 5221 , - 1362 , - 3827 , - 712 , - 3921 , - 1550 , - 5503 , - 3876 , - 2621 , - 1738 , - 1227 , - 1088 , - 1321 , - 1926 , - 2903 , - 4252 , - 21 , - 2114 , - 4579 , - 1464 , - 4673 , - 2302 , - 303 , - 4628 , - 3373 , - 2490 , - 1979 , - 1840 , - 2073 , - 2678 , - 3655 , - 5004 , - 773 , - 2866 , - 5331 , - 2216 , - 5425 , - 3054 , - 1055 , - 5380 , - 4125 , - 3242 , - 2731 , - 2592 , - 2825 , - 3430 , - 4407 , - 5756 , - 1525 , - 3618 , - 131 , - 2968 , - 225 , - 3806 , - 1807 , - 180 , - 4877 , - 3994 , - 3483 , - 3344 , - 3577 , - 4182 , - 5159 , - 556 , - 2277 , - 4370 , - 883 , - 3720 , - 977 , - 4558 , - 2559 , - 932 , - 5629 , - 4746 , - 4235 , - 4096 , - 4329 , - 4934 , - 5911 , - 1308 , - 3029 , - 5122 , - 1635 , - 4472 , - 1729 , - 5310 , - 3311 , - 1684 , - 429 , - 5498 , - 4987 , - 4848 , - 5081 , - 5686 , - 711 , - 2060 , - 3781 , - 5874 , - 2387 , - 5224 , - 2481 , - 110 , - 4063 , - 2436 , - 1181 , - 298 , - 5739 , - 5600 , - 5833 , - 486 , - 1463 , - 2812 , - 4533 , - 674 , - 3139 , - 24 , - 3233 , - 862 , - 4815 , - 3188 , - 1933 , - 1050 , - 539 , - 400 , - 633 , - 1238 , - 2215 , - 3564 , - 5285 , - 1426 , - 3891 , - 776 , - 3985 , - 1614 , - 5567 , - 3940 , - 2685 , - 1802 , - 1291 , - 1152 , - 1385 , - 1990 , - 2967 , - 4316 , - 85 , - 2178 , - 4643 , - 1528 , - 4737 , - 2366 , - 367 , - 4692 , - 3437 , - 2554 , - 2043 , - 1904 , - 2137 , - 2742 , - 3719 , - 5068 , - 837 , - 2930 , - 5395 , - 2280 , - 5489 , - 3118 , - 1119 , - 5444 , - 4189 , - 3306 , - 2795 , - 2656 , - 2889 , - 3494 , - 4471 , - 5820 , - 1589 , - 3682 , - 195 , - 3032 , - 289 , - 3870 , - 1871 , - 244 , - 4941 , - 4058 , - 3547 , - 3408 , - 3641 , - 4246 , - 5223 , - 620 , - 2341 , - 4434 , - 947 , - 3784 , - 1041 , - 4622 , - 2623 , - 996 , - 5693 , - 4810 , - 4299 , - 4160 , - 4393 , - 4998 , - 23 , - 1372 , - 3093 , - 5186 , - 1699 , - 4536 , - 1793 , - 5374 , - 3375 , - 1748 , - 493 , - 5562 , - 5051 , - 4912 , - 5145 , - 5750 , - 775 , - 2124 , - 3845 , - 5938 , - 2451 , - 5288 , - 2545 , - 174 , - 4127 , - 2500 , - 1245 , - 362 , - 5803 , - 5664 , - 5897 , - 550 , - 1527 , - 2876 , - 4597 , - 738 , - 3203 , - 88 , - 3297 , - 926 , - 4879 , - 3252 , - 1997 , - 1114 , - 603 , - 464 , - 697 , - 1302 , - 2279 , - 3628 , - 5349 , - 1490 , - 3955 , - 840 , - 4049 , - 1678 , - 5631 , - 4004 , - 2749 , - 1866 , - 1355 , - 1216 , - 1449 , - 2054 , - 3031 , - 4380 , - 149 , - 2242 , - 4707 , - 1592 , - 4801 , - 2430 , - 431 , - 4756 , - 3501 , - 2618 , - 2107 , - 1968 , - 2201 , - 2806 , - 3783 , - 5132 , - 901 , - 2994 , - 5459 , - 2344 , - 5553 , - 3182 , - 1183 , - 5508 , - 4253 , - 3370 , - 2859 , - 2720 , - 2953 , - 3558 , - 4535 , - 5884 , - 1653 , - 3746 , - 259 , - 3096 , - 353 , - 3934 , - 1935 , - 308 , - 5005 , - 4122 , - 3611 , - 3472 , - 3705 , - 4310 , - 5287 , - 684 , - 2405 , - 4498 , - 1011 , - 3848 , - 1105 , - 4686 , - 2687 , - 1060 , - 5757 , - 4874 , - 4363 , - 4224 , - 4457 , - 5062 , - 87 , - 1436 , - 3157 , - 5250 , - 1763 , - 4600 , - 1857 , - 5438 , - 3439 , - 1812 , - 557 , - 5626 , - 5115 , - 4976 , - 5209 , - 5814 , - 839 , - 2188 , - 3909 , - 50 , - 2515 , - 5352 , - 2609 , - 238 , - 4191 , - 2564 , - 1309 , - 426 , - 5867 , - 5728 , - 9 , - 614 , - 1591 , - 2940 , - 4661 , - 802 , - 3267 , - 152 , - 3361 , - 990 , - 4943 , - 3316 , - 2061 , - 1178 , - 667 , - 528 , - 761 , - 1366 , - 2343 , - 3692 , - 5413 , - 1554 , - 4019 , - 904 , - 4113 , - 1742 , - 5695 , - 4068 , - 2813 , - 1930 , - 1419 , - 1280 , - 1513 , - 2118 , - 3095 , - 4444 , - 213 , - 2306 , - 4771 , - 1656 , - 4865 , - 2494 , - 495 , - 4820 , - 3565 , - 2682 , - 2171 , - 2032 , - 2265 , - 2870 , - 3847 , - 5196 , - 965 , - 3058 , - 5523 , - 2408 , - 5617 , - 3246 , - 1247 , - 5572 , - 4317 , - 3434 , - 2923 , - 2784 , - 3017 , - 3622 , - 4599 , - 5948 , - 1717 , - 3810 , - 323 , - 3160 , - 417 , - 3998 , - 1999 , - 372 , - 5069 , - 4186 , - 3675 , - 3536 , - 3769 , - 4374 , - 5351 , - 748 , - 2469 , - 4562 , - 1075 , - 3912 , - 1169 , - 4750 , - 2751 , - 1124 , - 5821 , - 4938 , - 4427 , - 4288 , - 4521 , - 5126 , - 151 , - 1500 , - 3221 , - 5314 , - 1827 , - 4664 , - 1921 , - 5502 , - 3503 , - 1876 , - 621 , - 5690 , - 5179 , - 5040 , - 5273 , - 5878 , - 903 , - 2252 , - 3973 , - 114 , - 2579 , - 5416 , - 2673 , - 302 , - 4255 , - 2628 , - 1373 , - 490 , - 5931 , - 5792 , - 73 , - 678 , - 1655 , - 3004 , - 4725 , - 866 , - 3331 , - 216 , - 3425 , - 1054 , - 5007 , - 3380 , - 2125 , - 1242 , - 731 , - 592 , - 825 , - 1430 , - 2407 , - 3756 , - 5477 , - 1618 , - 4083 , - 968 , - 4177 , - 1806 , - 5759 , - 4132 , - 2877 , - 1994 , - 1483 , - 1344 , - 1577 , - 2182 , - 3159 , - 4508 , - 277 , - 2370 , - 4835 , - 1720 , - 4929 , - 2558 , - 559 , - 4884 , - 3629 , - 2746 , - 2235 , - 2096 , - 2329 , - 2934 , - 3911 , - 5260 , - 1029 , - 3122 , - 5587 , - 2472 , - 5681 , - 3310 , - 1311 , - 5636 , - 4381 , - 3498 , - 2987 , - 2848 , - 3081 , - 3686 , - 4663 , - 60 , - 1781 , - 3874 , - 387 , - 3224 , - 481 , - 4062 , - 2063 , - 436 , - 5133 , - 4250 , - 3739 , - 3600 , - 3833 , - 4438 , - 5415 , - 812 , - 2533 , - 4626 , - 1139 , - 3976 , - 1233 , - 4814 , - 2815 , - 1188 , - 5885 , - 5002 , - 4491 , - 4352 , - 4585 , - 5190 , - 215 , - 1564 , - 3285 , - 5378 , - 1891 , - 4728 , - 1985 , - 5566 , - 3567 , - 1940 , - 685 , - 5754 , - 5243 , - 5104 , - 5337 , - 5942 , - 967 , - 2316 , - 4037 , - 178 , - 2643 , - 5480 , - 2737 , - 366 , - 4319 , - 2692 , - 1437 , - 554 , - 43 , - 5856 , - 137 , - 742 , - 1719 , - 3068 , - 4789 , - 930 , - 3395 , - 280 , - 3489 , - 1118 , - 5071 , - 3444 , - 2189 , - 1306 , - 795 , - 656 , - 889 , - 1494 , - 2471 , - 3820 , - 5541 , - 1682 , - 4147 , - 1032 , - 4241 , - 1870 , - 5823 , - 4196 , - 2941 , - 2058 , - 1547 , - 1408 , - 1641 , - 2246 , - 3223 , - 4572 , - 341 , - 2434 , - 4899 , - 1784 , - 4993 , - 2622 , - 623 , - 4948 , - 3693 , - 2810 , - 2299 , - 2160 , - 2393 , - 2998 , - 3975 , - 5324 , - 1093 , - 3186 , - 5651 , - 2536 , - 5745 , - 3374 , - 1375 , - 5700 , - 4445 , - 3562 , - 3051 , - 2912 , - 3145 , - 3750 , - 4727 , - 124 , - 1845 , - 3938 , - 451 , - 3288 , - 545 , - 4126 , - 2127 , - 500 , - 5197 , - 4314 , - 3803 , - 3664 , - 3897 , - 4502 , - 5479 , - 876 , - 2597 , - 4690 , - 1203 , - 4040 , - 1297 , - 4878 , - 2879 , - 1252 , - 5949 , - 5066 , - 4555 , - 4416 , - 4649 , - 5254 , - 279 , - 1628 , - 3349 , - 5442 , - 1955 , - 4792 , - 2049 , - 5630 , - 3631 , - 2004 , - 749 , - 5818 , - 5307 , - 5168 , - 5401 , - 54 , - 1031 , - 2380 , - 4101 , - 242 , - 2707 , - 5544 , - 2801 , - 430 , - 4383 , - 2756 , - 1501 , - 618 , - 107 , - 5920 , - 201 , - 806 , - 1783 , - 3132 , - 4853 , - 994 , - 3459 , - 344 , - 3553 , - 1182 , - 5135 , - 3508 , - 2253 , - 1370 , - 859 , - 720 , - 953 , - 1558 , - 2535 , - 3884 , - 5605 , - 1746 , - 4211 , - 1096 , - 4305 , - 1934 , - 5887 , - 4260 , - 3005 , - 2122 , - 1611 , - 1472 , - 1705 , - 2310 , - 3287 , - 4636 , - 405 , - 2498 , - 4963 , - 1848 , - 5057 , - 2686 , - 687 , - 5012 , - 3757 , - 2874 , - 2363 , - 2224 , - 2457 , - 3062 , - 4039 , - 5388 , - 1157 , - 3250 , - 5715 , - 2600 , - 5809 , - 3438 , - 1439 , - 5764 , - 4509 , - 3626 , - 3115 , - 2976 , - 3209 , - 3814 , - 4791 , - 188 , - 1909 , - 4002 , - 515 , - 3352 , - 609 , - 4190 , - 2191 , - 564 , - 5261 , - 4378 , - 3867 , - 3728 , - 3961 , - 4566 , - 5543 , - 940 , - 2661 , - 4754 , - 1267 , - 4104 , - 1361 , - 4942 , - 2943 , - 1316 , - 61 , - 5130 , - 4619 , - 4480 , - 4713 , - 5318 , - 343 , - 1692 , - 3413 , - 5506 , - 2019 , - 4856 , - 2113 , - 5694 , - 3695 , - 2068 , - 813 , - 5882 , - 5371 , - 5232 , - 5465 , - 118 , - 1095 , - 2444 , - 4165 , - 306 , - 2771 , - 5608 , - 2865 , - 494 , - 4447 , - 2820 , - 1565 , - 682 , - 171 , - 32 , - 265 , - 870 , - 1847 , - 3196 , - 4917 , - 1058 , - 3523 , - 408 , - 3617 , - 1246 , - 5199 , - 3572 , - 2317 , - 1434 , - 923 , - 784 , - 1017 , - 1622 , - 2599 , - 3948 , - 5669 , - 1810 , - 4275 , - 1160 , - 4369 , - 1998 , - 5951 , - 4324 , - 3069 , - 2186 , - 1675 , - 1536 , - 1769 , - 2374 , - 3351 , - 4700 , - 469 , - 2562 , - 5027 , - 1912 , - 5121 , - 2750 , - 751 , - 5076 , - 3821 , - 2938 , - 2427 , - 2288 , - 2521 , - 3126 , - 4103 , - 5452 , - 1221 , - 3314 , - 5779 , - 2664 , - 5873 , - 3502 , - 1503 , - 5828 , - 4573 , - 3690 , - 3179 , - 3040 , - 3273 , - 3878 , - 4855 , - 252 , - 1973 , - 4066 , - 579 , - 3416 , - 673 , - 4254 , - 2255 , - 628 , - 5325 , - 4442 , - 3931 , - 3792 , - 4025 , - 4630 , - 5607 , - 1004 , - 2725 , - 4818 , - 1331 , - 4168 , - 1425 , - 5006 , - 3007 , - 1380 , - 125 , - 5194 , - 4683 , - 4544 , - 4777 , - 5382 , - 407 , - 1756 , - 3477 , - 5570 , - 2083 , - 4920 , - 2177 , - 5758 , - 3759 , - 2132 , - 877 , - 5946 , - 5435 , - 5296 , - 5529 , - 182 , - 1159 , - 2508 , - 4229 , - 370 , - 2835 , - 5672 , - 2929 , - 558 , - 4511 , - 2884 , - 1629 , - 746 , - 235 , - 96 , - 329 , - 934 , - 1911 , - 3260 , - 4981 , - 1122 , - 3587 , - 472 , - 3681 , - 1310 , - 5263 , - 3636 , - 2381 , - 1498 , - 987 , - 848 , - 1081 , - 1686 , - 2663 , - 4012 , - 5733 , - 1874 , - 4339 , - 1224 , - 4433 , - 2062 , - 63 , - 4388 , - 3133 , - 2250 , - 1739 , - 1600 , - 1833 , - 2438 , - 3415 , - 4764 , - 533 , - 2626 , - 5091 , - 1976 , - 5185 , - 2814 , - 815 , - 5140 , - 3885 , - 3002 , - 2491 , - 2352 , - 2585 , - 3190 , - 4167 , - 5516 , - 1285 , - 3378 , - 5843 , - 2728 , - 5937 , - 3566 , - 1567 , - 5892 , - 4637 , - 3754 , - 3243 , - 3104 , - 3337 , - 3942 , - 4919 , - 316 , - 2037 , - 4130 , - 643 , - 3480 , - 737 , - 4318 , - 2319 , - 692 , - 5389 , - 4506 , - 3995 , - 3856 , - 4089 , - 4694 , - 5671 , - 1068 , - 2789 , - 4882 , - 1395 , - 4232 , - 1489 , - 5070 , - 3071 , - 1444 , - 189 , - 5258 , - 4747 , - 4608 , - 4841 , - 5446 , - 471 , - 1820 , - 3541 , - 5634 , - 2147 , - 4984 , - 2241 , - 5822 , - 3823 , - 2196 , - 941 , - 58 , - 5499 , - 5360 , - 5593 , - 246 , - 1223 , - 2572 , - 4293 , - 434 , - 2899 , - 5736 , - 2993 , - 622 , - 4575 , - 2948 , - 1693 , - 810 , - 299 , - 160 , - 393 , - 998 , - 1975 , - 3324 , - 5045 , - 1186 , - 3651 , - 536 , - 3745 , - 1374 , - 5327 , - 3700 , - 2445 , - 1562 , - 1051 , - 912 , - 1145 , - 1750 , - 2727 , - 4076 , - 5797 , - 1938 , - 4403 , - 1288 , - 4497 , - 2126 , - 127 , - 4452 , - 3197 , - 2314 , - 1803 , - 1664 , - 1897 , - 2502 , - 3479 , - 4828 , - 597 , - 2690 , - 5155 , - 2040 , - 5249 , - 2878 , - 879 , - 5204 , - 3949 , - 3066 , - 2555 , - 2416 , - 2649 , - 3254 , - 4231 , - 5580 , - 1349 , - 3442 , - 5907 , - 2792 , - 49 , - 3630 , - 1631 , - 4 , - 4701 , - 3818 , - 3307 , - 3168 , - 3401 , - 4006 , - 4983 , - 380 , - 2101 , - 4194 , - 707 , - 3544 , - 801 , - 4382 , - 2383 , - 756 , - 5453 , - 4570 , - 4059 , - 3920 , - 4153 , - 4758 , - 5735 , - 1132 , - 2853 , - 4946 , - 1459 , - 4296 , - 1553 , - 5134 , - 3135 , - 1508 , - 253 , - 5322 , - 4811 , - 4672 , - 4905 , - 5510 , - 535 , - 1884 , - 3605 , - 5698 , - 2211 , - 5048 , - 2305 , - 5886 , - 3887 , - 2260 , - 1005 , - 122 , - 5563 , - 5424 , - 5657 , - 310 , - 1287 , - 2636 , - 4357 , - 498 , - 2963 , - 5800 , - 3057 , - 686 , - 4639 , - 3012 , - 1757 , - 874 , - 363 , - 224 , - 457 , - 1062 , - 2039 , - 3388 , - 5109 , - 1250 , - 3715 , - 600 , - 3809 , - 1438 , - 5391 , - 3764 , - 2509 , - 1626 , - 1115 , - 976 , - 1209 , - 1814 , - 2791 , - 4140 , - 5861 , - 2002 , - 4467 , - 1352 , - 4561 , - 2190 , - 191 , - 4516 , - 3261 , - 2378 , - 1867 , - 1728 , - 1961 , - 2566 , - 3543 , - 4892 , - 661 , - 2754 , - 5219 , - 2104 , - 5313 , - 2942 , - 943 , - 5268 , - 4013 , - 3130 , - 2619 , - 2480 , - 2713 , - 3318 , - 4295 , - 5644 , - 1413 , - 3506 , - 19 , - 2856 , - 113 , - 3694 , - 1695 , - 68 , - 4765 , - 3882 , - 3371 , - 3232 , - 3465 , - 4070 , - 5047 , - 444 , - 2165 , - 4258 , - 771 , - 3608 , - 865 , - 4446 , - 2447 , - 820 , - 5517 , - 4634 , - 4123 , - 3984 , - 4217 , - 4822 , - 5799 , - 1196 , - 2917 , - 5010 , - 1523 , - 4360 , - 1617 , - 5198 , - 3199 , - 1572 , - 317 , - 5386 , - 4875 , - 4736 , - 4969 , - 5574 , - 599 , - 1948 , - 3669 , - 5762 , - 2275 , - 5112 , - 2369 , - 5950 , - 3951 , - 2324 , - 1069 , - 186 , - 5627 , - 5488 , - 5721 , - 374 , - 1351 , - 2700 , - 4421 , - 562 , - 3027 , - 5864 , - 3121 , - 750 , - 4703 , - 3076 , - 1821 , - 938 , - 427 , - 288 , - 521 , - 1126 , - 2103 , - 3452 , - 5173 , - 1314 , - 3779 , - 664 , - 3873 , - 1502 , - 5455 , - 3828 , - 2573 , - 1690 , - 1179 , - 1040 , - 1273 , - 1878 , - 2855 , - 4204 , - 5925 , - 2066 , - 4531 , - 1416 , - 4625 , - 2254 , - 255 , - 4580 , - 3325 , - 2442 , - 1931 , - 1792 , - 2025 , - 2630 , - 3607 , - 4956 , - 725 , - 2818 , - 5283 , - 2168 , - 5377 , - 3006 , - 1007 , - 5332 , - 4077 , - 3194 , - 2683 , - 2544 , - 2777 , - 3382 , - 4359 , - 5708 , - 1477 , - 3570 , - 83 , - 2920 , - 177 , - 3758 , - 1759 , - 132 , - 4829 , - 3946 , - 3435 , - 3296 , - 3529 , - 4134 , - 5111 , - 508 , - 2229 , - 4322 , - 835 , - 3672 , - 929 , - 4510 , - 2511 , - 884 , - 5581 , - 4698 , - 4187 , - 4048 , - 4281 , - 4886 , - 5863 , - 1260 , - 2981 , - 5074 , - 1587 , - 4424 , - 1681 , - 5262 , - 3263 , - 1636 , - 381 , - 5450 , - 4939 , - 4800 , - 5033 , - 5638 , - 663 , - 2012 , - 3733 , - 5826 , - 2339 , - 5176 , - 2433 , - 62 , - 4015 , - 2388 , - 1133 , - 250 , - 5691 , - 5552 , - 5785 , - 438 , - 1415 , - 2764 , - 4485 , - 626 , - 3091 , - 5928 , - 3185 , - 814 , - 4767 , - 3140 , - 1885 , - 1002 , - 491 , - 352 , - 585 , - 1190 , - 2167 , - 3516 , - 5237 , - 1378 , - 3843 , - 728 , - 3937 , - 1566 , - 5519 , - 3892 , - 2637 , - 1754 , - 1243 , - 1104 , - 1337 , - 1942 , - 2919 , - 4268 , - 37 , - 2130 , - 4595 , - 1480 , - 4689 , - 2318 , - 319 , - 4644 , - 3389 , - 2506 , - 1995 , - 1856 , - 2089 , - 2694 , - 3671 , - 5020 , - 789 , - 2882 , - 5347 , - 2232 , - 5441 , - 3070 , - 1071 , - 5396 , - 4141 , - 3258 , - 2747 , - 2608 , - 2841 , - 3446 , - 4423 , - 5772 , - 1541 , - 3634 , - 147 , - 2984 , - 241 , - 3822 , - 1823 , - 196 , - 4893 , - 4010 , - 3499 , - 3360 , - 3593 , - 4198 , - 5175 , - 572 , - 2293 , - 4386 , - 899 , - 3736 , - 993 , - 4574 , - 2575 , - 948 , - 5645 , - 4762 , - 4251 , - 4112 , - 4345 , - 4950 , - 5927 , - 1324 , - 3045 , - 5138 , - 1651 , - 4488 , - 1745 , - 5326 , - 3327 , - 1700 , - 445 , - 5514 , - 5003 , - 4864 , - 5097 , - 5702 , - 727 , - 2076 , - 3797 , - 5890 , - 2403 , - 5240 , - 2497 , - 126 , - 4079 , - 2452 , - 1197 , - 314 , - 5755 , - 5616 , - 5849 , - 502 , - 1479 , - 2828 , - 4549 , - 690 , - 3155 , - 40 , - 3249 , - 878 , - 4831 , - 3204 , - 1949 , - 1066 , - 555 , - 416 , - 649 , - 1254 , - 2231 , - 3580 , - 5301 , - 1442 , - 3907 , - 792 , - 4001 , - 1630 , - 5583 , - 3956 , - 2701 , - 1818 , - 1307 , - 1168 , - 1401 , - 2006 , - 2983 , - 4332 , - 101 , - 2194 , - 4659 , - 1544 , - 4753 , - 2382 , - 383 , - 4708 , - 3453 , - 2570 , - 2059 , - 1920 , - 2153 , - 2758 , - 3735 , - 5084 , - 853 , - 2946 , - 5411 , - 2296 , - 5505 , - 3134 , - 1135 , - 5460 , - 4205 , - 3322 , - 2811 , - 2672 , - 2905 , - 3510 , - 4487 , - 5836 , - 1605 , - 3698 , - 211 , - 3048 , - 305 , - 3886 , - 1887 , - 260 , - 4957 , - 4074 , - 3563 , - 3424 , - 3657 , - 4262 , - 5239 , - 636 , - 2357 , - 4450 , - 963 , - 3800 , - 1057 , - 4638 , - 2639 , - 1012 , - 5709 , - 4826 , - 4315 , - 4176 , - 4409 , - 5014 , - 39 , - 1388 , - 3109 , - 5202 , - 1715 , - 4552 , - 1809 , - 5390 , - 3391 , - 1764 , - 509 , - 5578 , - 5067 , - 4928 , - 5161 , - 5766 , - 791 , - 2140 , - 3861 , - 2 , - 2467 , - 5304 , - 2561 , - 190 , - 4143 , - 2516 , - 1261 , - 378 , - 5819 , - 5680 , - 5913 , - 566 , - 1543 , - 2892 , - 4613 , - 754 , - 3219 , - 104 , - 3313 , - 942 , - 4895 , - 3268 , - 2013 , - 1130 , - 619 , - 480 , - 713 , - 1318 , - 2295 , - 3644 , - 5365 , - 1506 , - 3971 , - 856 , - 4065 , - 1694 , - 5647 , - 4020 , - 2765 , - 1882 , - 1371 , - 1232 , - 1465 , - 2070 , - 3047 , - 4396 , - 165 , - 2258 , - 4723 , - 1608 , - 4817 , - 2446 , - 447 , - 4772 , - 3517 , - 2634 , - 2123 , - 1984 , - 2217 , - 2822 , - 3799 , - 5148 , - 917 , - 3010 , - 5475 , - 2360 , - 5569 , - 3198 , - 1199 , - 5524 , - 4269 , - 3386 , - 2875 , - 2736 , - 2969 , - 3574 , - 4551 , - 5900 , - 1669 , - 3762 , - 275 , - 3112 , - 369 , - 3950 , - 1951 , - 324 , - 5021 , - 4138 , - 3627 , - 3488 , - 3721 , - 4326 , - 5303 , - 700 , - 2421 , - 4514 , - 1027 , - 3864 , - 1121 , - 4702 , - 2703 , - 1076 , - 5773 , - 4890 , - 4379 , - 4240 , - 4473 , - 5078 , - 103 , - 1452 , - 3173 , - 5266 , - 1779 , - 4616 , - 1873 , - 5454 , - 3455 , - 1828 , - 573 , - 5642 , - 5131 , - 4992 , - 5225 , - 5830 , - 855 , - 2204 , - 3925 , - 66 , - 2531 , - 5368 , - 2625 , - 254 , - 4207 , - 2580 , - 1325 , - 442 , - 5883 , - 5744 , - 25 , - 630 , - 1607 , - 2956 , - 4677 , - 818 , - 3283 , - 168 , - 3377 , - 1006 , - 4959 , - 3332 , - 2077 , - 1194 , - 683 , - 544 , - 777 , - 1382 , - 2359 , - 3708 , - 5429 , - 1570 , - 4035 , - 920 , - 4129 , - 1758 , - 5711 , - 4084 , - 2829 , - 1946 , - 1435 , - 1296 , - 1529 , - 2134 , - 3111 , - 4460 , - 229 , - 2322 , - 4787 , - 1672 , - 4881 , - 2510 , - 511 , - 4836 , - 3581 , - 2698 , - 2187 , - 2048 , - 2281 , - 2886 , - 3863 , - 5212 , - 981 , - 3074 , - 5539 , - 2424 , - 5633 , - 3262 , - 1263 , - 5588 , - 4333 , - 3450 , - 2939 , - 2800 , - 3033 , - 3638 , - 4615 , - 12 , - 1733 , - 3826 , - 339 , - 3176 , - 433 , - 4014 , - 2015 , - 388 , - 5085 , - 4202 , - 3691 , - 3552 , - 3785 , - 4390 , - 5367 , - 764 , - 2485 , - 4578 , - 1091 , - 3928 , - 1185 , - 4766 , - 2767 , - 1140 , - 5837 , - 4954 , - 4443 , - 4304 , - 4537 , - 5142 , - 167 , - 1516 , - 3237 , - 5330 , - 1843 , - 4680 , - 1937 , - 5518 , - 3519 , - 1892 , - 637 , - 5706 , - 5195 , - 5056 , - 5289 , - 5894 , - 919 , - 2268 , - 3989 , - 130 , - 2595 , - 5432 , - 2689 , - 318 , - 4271 , - 2644 , - 1389 , - 506 , - 5947 , - 5808 , - 89 , - 694 , - 1671 , - 3020 , - 4741 , - 882 , - 3347 , - 232 , - 3441 , - 1070 , - 5023 , - 3396 , - 2141 , - 1258 , - 747 , - 608 , - 841 , - 1446 , - 2423 , - 3772 , - 5493 , - 1634 , - 4099 , - 984 , - 4193 , - 1822 , - 5775 , - 4148 , - 2893 , - 2010 , - 1499 , - 1360 , - 1593 , - 2198 , - 3175 , - 4524 , - 293 , - 2386 , - 4851 , - 1736 , - 4945 , - 2574 , - 575 , - 4900 , - 3645 , - 2762 , - 2251 , - 2112 , - 2345 , - 2950 , - 3927 , - 5276 , - 1045 , - 3138 , - 5603 , - 2488 , - 5697 , - 3326 , - 1327 , - 5652 , - 4397 , - 3514 , - 3003 , - 2864 , - 3097 , - 3702 , - 4679 , - 76 , - 1797 , - 3890 , - 403 , - 3240 , - 497 , - 4078 , - 2079 , - 452 , - 5149 , - 4266 , - 3755 , - 3616 , - 3849 , - 4454 , - 5431 , - 828 , - 2549 , - 4642 , - 1155 , - 3992 , - 1249 , - 4830 , - 2831 , - 1204 , - 5901 , - 5018 , - 4507 , - 4368 , - 4601 , - 5206 , - 231 , - 1580 , - 3301 , - 5394 , - 1907 , - 4744 , - 2001 , - 5582 , - 3583 , - 1956 , - 701 , - 5770 , - 5259 , - 5120 , - 5353 , - 6 , - 983 , - 2332 , - 4053 , - 194 , - 2659 , - 5496 , - 2753 , - 382 , - 4335 , - 2708 , - 1453 , - 570 , - 59 , - 5872 , - 153 , - 758 , - 1735 , - 3084 , - 4805 , - 946 , - 3411 , - 296 , - 3505 , - 1134 , - 5087 , - 3460 , - 2205 , - 1322 , - 811 , - 672 , - 905 , - 1510 , - 2487 , - 3836 , - 5557 , - 1698 , - 4163 , - 1048 , - 4257 , - 1886 , - 5839 , - 4212 , - 2957 , - 2074 , - 1563 , - 1424 , - 1657 , - 2262 , - 3239 , - 4588 , - 357 , - 2450 , - 4915 , - 1800 , - 5009 , - 2638 , - 639 , - 4964 , - 3709 , - 2826 , - 2315 , - 2176 , - 2409 , - 3014 , - 3991 , - 5340 , - 1109 , - 3202 , - 5667 , - 2552 , - 5761 , - 3390 , - 1391 , - 5716 , - 4461 , - 3578 , - 3067 , - 2928 , - 3161 , - 3766 , - 4743 , - 140 , - 1861 , - 3954 , - 467 , - 3304 , - 561 , - 4142 , - 2143 , - 516 , - 5213 , - 4330 , - 3819 , - 3680 , - 3913 , - 4518 , - 5495 , - 892 , - 2613 , - 4706 , - 1219 , - 4056 , - 1313 , - 4894 , - 2895 , - 1268 , - 13 , - 5082 , - 4571 , - 4432 , - 4665 , - 5270 , - 295 , - 1644 , - 3365 , - 5458 , - 1971 , - 4808 , - 2065 , - 5646 , - 3647 , - 2020 , - 765 , - 5834 , - 5323 , - 5184 , - 5417 , - 70 , - 1047 , - 2396 , - 4117 , - 258 , - 2723 , - 5560 , - 2817 , - 446 , - 4399 , - 2772 , - 1517 , - 634 , - 123 , - 5936 , - 217 , - 822 , - 1799 , - 3148 , - 4869 , - 1010 , - 3475 , - 360 , - 3569 , - 1198 , - 5151 , - 3524 , - 2269 , - 1386 , - 875 , - 736 , - 969 , - 1574 , - 2551 , - 3900 , - 5621 , - 1762 , - 4227 , - 1112 , - 4321 , - 1950 , - 5903 , - 4276 , - 3021 , - 2138 , - 1627 , - 1488 , - 1721 , - 2326 , - 3303 , - 4652 , - 421 , - 2514 , - 4979 , - 1864 , - 5073 , - 2702 , - 703 , - 5028 , - 3773 , - 2890 , - 2379 , - 2240 , - 2473 , - 3078 , - 4055 , - 5404 , - 1173 , - 3266 , - 5731 , - 2616 , - 5825 , - 3454 , - 1455 , - 5780 , - 4525 , - 3642 , - 3131 , - 2992 , - 3225 , - 3830 , - 4807 , - 204 , - 1925 , - 4018 , - 531 , - 3368 , - 625 , - 4206 , - 2207 , - 580 , - 5277 , - 4394 , - 3883 , - 3744 , - 3977 , - 4582 , - 5559 , - 956 , - 2677 , - 4770 , - 1283 , - 4120 , - 1377 , - 4958 , - 2959 , - 1332 , - 77 , - 5146 , - 4635 , - 4496 , - 4729 , - 5334 , - 359 , - 1708 , - 3429 , - 5522 , - 2035 , - 4872 , - 2129 , - 5710 , - 3711 , - 2084 , - 829 , - 5898 , - 5387 , - 5248 , - 5481 , - 134 , - 1111 , - 2460 , - 4181 , - 322 , - 2787 , - 5624 , - 2881 , - 510 , - 4463 , - 2836 , - 1581 , - 698 , - 187 , - 48 , - 281 , - 886 , - 1863 , - 3212 , - 4933 , - 1074 , - 3539 , - 424 , - 3633 , - 1262 , - 5215 , - 3588 , - 2333 , - 1450 , - 939 , - 800 , - 1033 , - 1638 , - 2615 , - 3964 , - 5685 , - 1826 , - 4291 , - 1176 , - 4385 , - 2014 , - 15 , - 4340 , - 3085 , - 2202 , - 1691 , - 1552 , - 1785 , - 2390 , - 3367 , - 4716 , - 485 , - 2578 , - 5043 , - 1928 , - 5137 , - 2766 , - 767 , - 5092 , - 3837 , - 2954 , - 2443 , - 2304 , - 2537 , - 3142 , - 4119 , - 5468 , - 1237 , - 3330 , - 5795 , - 2680 , - 5889 , - 3518 , - 1519 , - 5844 , - 4589 , - 3706 , - 3195 , - 3056 , - 3289 , - 3894 , - 4871 , - 268 , - 1989 , - 4082 , - 595 , - 3432 , - 689 , - 4270 , - 2271 , - 644 , - 5341 , - 4458 , - 3947 , - 3808 , - 4041 , - 4646 , - 5623 , - 1020 , - 2741 , - 4834 , - 1347 , - 4184 , - 1441 , - 5022 , - 3023 , - 1396 , - 141 , - 5210 , - 4699 , - 4560 , - 4793 , - 5398 , - 423 , - 1772 , - 3493 , - 5586 , - 2099 , - 4936 , - 2193 , - 5774 , - 3775 , - 2148 , - 893 , - 10 , - 5451 , - 5312 , - 5545 , - 198 , - 1175 , - 2524 , - 4245 , - 386 , - 2851 , - 5688 , - 2945 , - 574 , - 4527 , - 2900 , - 1645 , - 762 , - 251 , - 112 , - 345 , - 950 , - 1927 , - 3276 , - 4997 , - 1138 , - 3603 , - 488 , - 3697 , - 1326 , - 5279 , - 3652 , - 2397 , - 1514 , - 1003 , - 864 , - 1097 , - 1702 , - 2679 , - 4028 , - 5749 , - 1890 , - 4355 , - 1240 , - 4449 , - 2078 , - 79 , - 4404 , - 3149 , - 2266 , - 1755 , - 1616 , - 1849 , - 2454 , - 3431 , - 4780 , - 549 , - 2642 , - 5107 , - 1992 , - 5201 , - 2830 , - 831 , - 5156 , - 3901 , - 3018 , - 2507 , - 2368 , - 2601 , - 3206 , - 4183 , - 5532 , - 1301 , - 3394 , - 5859 , - 2744 , - 1 , - 3582 , - 1583 , - 5908 , - 4653 , - 3770 , - 3259 , - 3120 , - 3353 , - 3958 , - 4935 , - 332 , - 2053 , - 4146 , - 659 , - 3496 , - 753 , - 4334 , - 2335 , - 708 , - 5405 , - 4522 , - 4011 , - 3872 , - 4105 , - 4710 , - 5687 , - 1084 , - 2805 , - 4898 , - 1411 , - 4248 , - 1505 , - 5086 , - 3087 , - 1460 , - 205 , - 5274 , - 4763 , - 4624 , - 4857 , - 5462 , - 487 , - 1836 , - 3557 , - 5650 , - 2163 , - 5000 , - 2257 , - 5838 , - 3839 , - 2212 , - 957 , - 74 , - 5515 , - 5376 , - 5609 , - 262 , - 1239 , - 2588 , - 4309 , - 450 , - 2915 , - 5752 , - 3009 , - 638 , - 4591 , - 2964 , - 1709 , - 826 , - 315 , - 176 , - 409 , - 1014 , - 1991 , - 3340 , - 5061 , - 1202 , - 3667 , - 552 , - 3761 , - 1390 , - 5343 , - 3716 , - 2461 , - 1578 , - 1067 , - 928 , - 1161 , - 1766 , - 2743 , - 4092 , - 5813 , - 1954 , - 4419 , - 1304 , - 4513 , - 2142 , - 143 , - 4468 , - 3213 , - 2330 , - 1819 , - 1680 , - 1913 , - 2518 , - 3495 , - 4844 , - 613 , - 2706 , - 5171 , - 2056 , - 5265 , - 2894 , - 895 , - 5220 , - 3965 , - 3082 , - 2571 , - 2432 , - 2665 , - 3270 , - 4247 , - 5596 , - 1365 , - 3458 , - 5923 , - 2808 , - 65 , - 3646 , - 1647 , - 20 , - 4717 , - 3834 , - 3323 , - 3184 , - 3417 , - 4022 , - 4999 , - 396 , - 2117 , - 4210 , - 723 , - 3560 , - 817 , - 4398 , - 2399 , - 772 , - 5469 , - 4586 , - 4075 , - 3936 , - 4169 , - 4774 , - 5751 , - 1148 , - 2869 , - 4962 , - 1475 , - 4312 , - 1569 , - 5150 , - 3151 , - 1524 , - 269 , - 5338 , - 4827 , - 4688 , - 4921 , - 5526 , - 551 , - 1900 , - 3621 , - 5714 , - 2227 , - 5064 , - 2321 , - 5902 , - 3903 , - 2276 , - 1021 , - 138 , - 5579 , - 5440 , - 5673 , - 326 , - 1303 , - 2652 , - 4373 , - 514 , - 2979 , - 5816 , - 3073 , - 702 , - 4655 , - 3028 , - 1773 , - 890 , - 379 , - 240 , - 473 , - 1078 , - 2055 , - 3404 , - 5125 , - 1266 , - 3731 , - 616 , - 3825 , - 1454 , - 5407 , - 3780 , - 2525 , - 1642 , - 1131 , - 992 , - 1225 , - 1830 , - 2807 , - 4156 , - 5877 , - 2018 , - 4483 , - 1368 , - 4577 , - 2206 , - 207 , - 4532 , - 3277 , - 2394 , - 1883 , - 1744 , - 1977 , - 2582 , - 3559 , - 4908 , - 677 , - 2770 , - 5235 , - 2120 , - 5329 , - 2958 , - 959 , - 5284 , - 4029 , - 3146 , - 2635 , - 2496 , - 2729 , - 3334 , - 4311 , - 5660 , - 1429 , - 3522 , - 35 , - 2872 , - 129 , - 3710 , - 1711 , - 84 , - 4781 , - 3898 , - 3387 , - 3248 , - 3481 , - 4086 , - 5063 , - 460 , - 2181 , - 4274 , - 787 , - 3624 , - 881 , - 4462 , - 2463 , - 836 , - 5533 , - 4650 , - 4139 , - 4000 , - 4233 , - 4838 , - 5815 , - 1212 , - 2933 , - 5026 , - 1539 , - 4376 , - 1633 , - 5214 , - 3215 , - 1588 , - 333 , - 5402 , - 4891 , - 4752 , - 4985 , - 5590 , - 615 , - 1964 , - 3685 , - 5778 , - 2291 , - 5128 , - 2385 , - 14 , - 3967 , - 2340 , - 1085 , - 202 , - 5643 , - 5504 , - 5737 , - 390 , - 1367 , - 2716 , - 4437 , - 578 , - 3043 , - 5880 , - 3137 , - 766 , - 4719 , - 3092 , - 1837 , - 954 , - 443 , - 304 , - 537 , - 1142 , - 2119 , - 3468 , - 5189 , - 1330 , - 3795 , - 680 , - 3889 , - 1518 , - 5471 , - 3844 , - 2589 , - 1706 , - 1195 , - 1056 , - 1289 , - 1894 , - 2871 , - 4220 , - 5941 , - 2082 , - 4547 , - 1432 , - 4641 , - 2270 , - 271 , - 4596 , - 3341 , - 2458 , - 1947 , - 1808 , - 2041 , - 2646 , - 3623 , - 4972 , - 741 , - 2834 , - 5299 , - 2184 , - 5393 , - 3022 , - 1023 , - 5348 , - 4093 , - 3210 , - 2699 , - 2560 , - 2793 , - 3398 , - 4375 , - 5724 , - 1493 , - 3586 , - 99 , - 2936 , - 193 , - 3774 , - 1775 , - 148 , - 4845 , - 3962 , - 3451 , - 3312 , - 3545 , - 4150 , - 5127 , - 524 , - 2245 , - 4338 , - 851 , - 3688 , - 945 , - 4526 , - 2527 , - 900 , - 5597 , - 4714 , - 4203 , - 4064 , - 4297 , - 4902 , - 5879 , - 1276 , - 2997 , - 5090 , - 1603 , - 4440 , - 1697 , - 5278 , - 3279 , - 1652 , - 397 , - 5466 , - 4955 , - 4816 , - 5049 , - 5654 , - 679 , - 2028 , - 3749 , - 5842 , - 2355 , - 5192 , - 2449 , - 78 , - 4031 , - 2404 , - 1149 , - 266 , - 5707 , - 5568 , - 5801 , - 454 , - 1431 , - 2780 , - 4501 , - 642 , - 3107 , - 5944 , - 3201 , - 830 , - 4783 , - 3156 , - 1901 , - 1018 , - 507 , - 368 , - 601 , - 1206 , - 2183 , - 3532 , - 5253 , - 1394 , - 3859 , - 744 , - 3953 , - 1582 , - 5535 , - 3908 , - 2653 , - 1770 , - 1259 , - 1120 , - 1353 , - 1958 , - 2935 , - 4284 , - 53 , - 2146 , - 4611 , - 1496 , - 4705 , - 2334 , - 335 , - 4660 , - 3405 , - 2522 , - 2011 , - 1872 , - 2105 , - 2710 , - 3687 , - 5036 , - 805 , - 2898 , - 5363 , - 2248 , - 5457 , - 3086 , - 1087 , - 5412 , - 4157 , - 3274 , - 2763 , - 2624 , - 2857 , - 3462 , - 4439 , - 5788 , - 1557 , - 3650 , - 163 , - 3000 , - 257 , - 3838 , - 1839 , - 212 , - 4909 , - 4026 , - 3515 , - 3376 , - 3609 , - 4214 , - 5191 , - 588 , - 2309 , - 4402 , - 915 , - 3752 , - 1009 , - 4590 , - 2591 , - 964 , - 5661 , - 4778 , - 4267 , - 4128 , - 4361 , - 4966 , - 5943 , - 1340 , - 3061 , - 5154 , - 1667 , - 4504 , - 1761 , - 5342 , - 3343 , - 1716 , - 461 , - 5530 , - 5019 , - 4880 , - 5113 , - 5718 , - 743 , - 2092 , - 3813 , - 5906 , - 2419 , - 5256 , - 2513 , - 142 , - 4095 , - 2468 , - 1213 , - 330 , - 5771 , - 5632 , - 5865 , - 518 , - 1495 , - 2844 , - 4565 , - 706 , - 3171 , - 56 , - 3265 , - 894 , - 4847 , - 3220 , - 1965 , - 1082 , - 571 , - 432 , - 665 , - 1270 , - 2247 , - 3596 , - 5317 , - 1458 , - 3923 , - 808 , - 4017 , - 1646 , - 5599 , - 3972 , - 2717 , - 1834 , - 1323 , - 1184 , - 1417 , - 2022 , - 2999 , - 4348 , - 117 , - 2210 , - 4675 , - 1560 , - 4769 , - 2398 , - 399 , - 4724 , - 3469 , - 2586 , - 2075 , - 1936 , - 2169 , - 2774 , - 3751 , - 5100 , - 869 , - 2962 , - 5427 , - 2312 , - 5521 , - 3150 , - 1151 , - 5476 , - 4221 , - 3338 , - 2827 , - 2688 , - 2921 , - 3526 , - 4503 , - 5852 , - 1621 , - 3714 , - 227 , - 3064 , - 321 , - 3902 , - 1903 , - 276 , - 4973 , - 4090 , - 3579 , - 3440 , - 3673 , - 4278 , - 5255 , - 652 , - 2373 , - 4466 , - 979 , - 3816 , - 1073 , - 4654 , - 2655 , - 1028 , - 5725 , - 4842 , - 4331 , - 4192 , - 4425 , - 5030 , - 55 , - 1404 , - 3125 , - 5218 , - 1731 , - 4568 , - 1825 , - 5406 , - 3407 , - 1780 , - 525 , - 5594 , - 5083 , - 4944 , - 5177 , - 5782 , - 807 , - 2156 , - 3877 , - 18 , - 2483 , - 5320 , - 2577 , - 206 , - 4159 , - 2532 , - 1277 , - 394 , - 5835 , - 5696 , - 5929 , - 582 , - 1559 , - 2908 , - 4629 , - 770 , - 3235 , - 120 , - 3329 , - 958 , - 4911 , - 3284 , - 2029 , - 1146 , - 635 , - 496 , - 729 , - 1334 , - 2311 , - 3660 , - 5381 , - 1522 , - 3987 , - 872 , - 4081 , - 1710 , - 5663 , - 4036 , - 2781 , - 1898 , - 1387 , - 1248 , - 1481 , - 2086 , - 3063 , - 4412 , - 181 , - 2274 , - 4739 , - 1624 , - 4833 , - 2462 , - 463 , - 4788 , - 3533 , - 2650 , - 2139 , - 2000 , - 2233 , - 2838 , - 3815 , - 5164 , - 933 , - 3026 , - 5491 , - 2376 , - 5585 , - 3214 , - 1215 , - 5540 , - 4285 , - 3402 , - 2891 , - 2752 , - 2985 , - 3590 , - 4567 , - 5916 , - 1685 , - 3778 , - 291 , - 3128 , - 385 , - 3966 , - 1967 , - 340 , - 5037 , - 4154 , - 3643 , - 3504 , - 3737 , - 4342 , - 5319 , - 716 , - 2437 , - 4530 , - 1043 , - 3880 , - 1137 , - 4718 , - 2719 , - 1092 , - 5789 , - 4906 , - 4395 , - 4256 , - 4489 , - 5094 , - 119 , - 1468 , - 3189 , - 5282 , - 1795 , - 4632 , - 1889 , - 5470 , - 3471 , - 1844 , - 589 , - 5658 , - 5147 , - 5008 , - 5241 , - 5846 , - 871 , - 2220 , - 3941 , - 82 , - 2547 , - 5384 , - 2641 , - 270 , - 4223 , - 2596 , - 1341 , - 458 , - 5899 , - 5760 , - 41 , - 646 , - 1623 , - 2972 , - 4693 , - 834 , - 3299 , - 184 , - 3393 , - 1022 , - 4975 , - 3348 , - 2093 , - 1210 , - 699 , - 560 , - 793 , - 1398 , - 2375 , - 3724 , - 5445 , - 1586 , - 4051 , - 936 , - 4145 , - 1774 , - 5727 , - 4100 , - 2845 , - 1962 , - 1451 , - 1312 , - 1545 , - 2150 , - 3127 , - 4476 , - 245 , - 2338 , - 4803 , - 1688 , - 4897 , - 2526 , - 527 , - 4852 , - 3597 , - 2714 , - 2203 , - 2064 , - 2297 , - 2902 , - 3879 , - 5228 , - 997 , - 3090 , - 5555 , - 2440 , - 5649 , - 3278 , - 1279 , - 5604 , - 4349 , - 3466 , - 2955 , - 2816 , - 3049 , - 3654 , - 4631 , - 28 , - 1749 , - 3842 , - 355 , - 3192 , - 449 , - 4030 , - 2031 , - 404 , - 5101 , - 4218 , - 3707 , - 3568 , - 3801 , - 4406 , - 5383 , - 780 , - 2501 , - 4594 , - 1107 , - 3944 , - 1201 , - 4782 , - 2783 , - 1156 , - 5853 , - 4970 , - 4459 , - 4320 , - 4553 , - 5158 , - 183 , - 1532 , - 3253 , - 5346 , - 1859 , - 4696 , - 1953 , - 5534 , - 3535 , - 1908 , - 653 , - 5722 , - 5211 , - 5072 , - 5305 , - 5910 , - 935 , - 2284 , - 4005 , - 146 , - 2611 , - 5448 , - 2705 , - 334 , - 4287 , - 2660 , - 1405 , - 522 , - 11 , - 5824 , - 105 , - 710 , - 1687 , - 3036 , - 4757 , - 898 , - 3363 , - 248 , - 3457 , - 1086 , - 5039 , - 3412 , - 2157 , - 1274 , - 763 , - 624 , - 857 , - 1462 , - 2439 , - 3788 , - 5509 , - 1650 , - 4115 , - 1000 , - 4209 , - 1838 , - 5791 , - 4164 , - 2909 , - 2026 , - 1515 , - 1376 , - 1609 , - 2214 , - 3191 , - 4540 , - 309 , - 2402 , - 4867 , - 1752 , - 4961 , - 2590 , - 591 , - 4916 , - 3661 , - 2778 , - 2267 , - 2128 , - 2361 , - 2966 , - 3943 , - 5292 , - 1061 , - 3154 , - 5619 , - 2504 , - 5713 , - 3342 , - 1343 , - 5668 , - 4413 , - 3530 , - 3019 , - 2880 , - 3113 , - 3718 , - 4695 , - 92 , - 1813 , - 3906 , - 419 , - 3256 , - 513 , - 4094 , - 2095 , - 468 , - 5165 , - 4282 , - 3771 , - 3632 , - 3865 , - 4470 , - 5447 , - 844 , - 2565 , - 4658 , - 1171 , - 4008 , - 1265 , - 4846 , - 2847 , - 1220 , - 5917 , - 5034 , - 4523 , - 4384 , - 4617 , - 5222 , - 247 , - 1596 , - 3317 , - 5410 , - 1923 , - 4760 , - 2017 , - 5598 , - 3599 , - 1972 , - 717 , - 5786 , - 5275 , - 5136 , - 5369 , - 22 , - 999 , - 2348 , - 4069 , - 210 , - 2675 , - 5512 , - 2769 , - 398 , - 4351 , - 2724 , - 1469 , - 586 , - 75 , - 5888 , - 169 , - 774 , - 1751 , - 3100 , - 4821 , - 962 , - 3427 , - 312 , - 3521 , - 1150 , - 5103 , - 3476 , - 2221 , - 1338 , - 827 , - 688 , - 921 , - 1526 , - 2503 , - 3852 , - 5573 , - 1714 , - 4179 , - 1064 , - 4273 , - 1902 , - 5855 , - 4228 , - 2973 , - 2090 , - 1579 , - 1440 , - 1673 , - 2278 , - 3255 , - 4604 , - 373 , - 2466 , - 4931 , - 1816 , - 5025 , - 2654 , - 655 , - 4980 , - 3725 , - 2842 , - 2331 , - 2192 , - 2425 , - 3030 , - 4007 , - 5356 , - 1125 , - 3218 , - 5683 , - 2568 , - 5777 , - 3406 , - 1407 , - 5732 , - 4477 , - 3594 , - 3083 , - 2944 , - 3177 , - 3782 , - 4759 , - 156 , - 1877 , - 3970 , - 483 , - 3320 , - 577 , - 4158 , - 2159 , - 532 , - 5229 , - 4346 , - 3835 , - 3696 , - 3929 , - 4534 , - 5511 , - 908 , - 2629 , - 4722 , - 1235 , - 4072 , - 1329 , - 4910 , - 2911 , - 1284 , - 29 , - 5098 , - 4587 , - 4448 , - 4681 , - 5286 , - 311 , - 1660 , - 3381 , - 5474 , - 1987 , - 4824 , - 2081 , - 5662 , - 3663 , - 2036 , - 781 , - 5850 , - 5339 , - 5200 , - 5433 , - 86 , - 1063 , - 2412 , - 4133 , - 274 , - 2739 , - 5576 , - 2833 , - 462 , - 4415 , - 2788 , - 1533 , - 650 , - 139 , - 0 , - 117 , - 422 , - 915 , - 1596 , - 2465 , - 3522 , - 4767 , - 184 , - 1805 , - 3614 , - 5611 , - 1780 , - 4153 , - 698 , - 3447 , - 368 , - 3493 , - 790 , - 4291 , - 1964 , - 5841 , - 3890 , - 2127 , - 552 , - 5181 , - 3982 , - 2971 , - 2148 , - 1513 , - 1066 , - 807 , - 736 , - 853 , - 1158 , - 1651 , - 2332 , - 3201 , - 4258 , - 5503 , - 920 , - 2541 , - 4350 , - 331 , - 2516 , - 4889 , - 1434 , - 4183 , - 1104 , - 4229 , - 1526 , - 5027 , - 2700 , - 561 , - 4626 , - 2863 , - 1288 , - 5917 , - 4718 , - 3707 , - 2884 , - 2249 , - 1802 , - 1543 , - 1472 , - 1589 , - 1894 , - 2387 , - 3068 , - 3937 , - 4994 , - 223 , - 1656 , - 3277 , - 5086 , - 1067 , - 3252 , - 5625 , - 2170 , - 4919 , - 1840 , - 4965 , - 2262 , - 5763 , - 3436 , - 1297 , - 5362 , - 3599 , - 2024 , - 637 , - 5454 , - 4443 , - 3620 , - 2985 , - 2538 , - 2279 , - 2208 , - 2325 , - 2630 , - 3123 , - 3804 , - 4673 , - 5730 , - 959 , - 2392 , - 4013 , - 5822 , - 1803 , - 3988 , - 345 , - 2906 , - 5655 , - 2576 , - 5701 , - 2998 , - 483 , - 4172 , - 2033 , - 82 , - 4335 , - 2760 , - 1373 , - 174 , - 5179 , - 4356 , - 3721 , - 3274 , - 3015 , - 2944 , - 3061 , - 3366 , - 3859 , - 4540 , - 5409 , - 450 , - 1695 , - 3128 , - 4749 , - 542 , - 2539 , - 4724 , - 1081 , - 3642 , - 375 , - 3312 , - 421 , - 3734 , - 1219 , - 4908 , - 2769 , - 818 , - 5071 , - 3496 , - 2109 , - 910 , - 5915 , - 5092 , - 4457 , - 4010 , - 3751 , - 3680 , - 3797 , - 4102 , - 4595 , - 5276 , - 129 , - 1186 , - 2431 , - 3864 , - 5485 , - 1278 , - 3275 , - 5460 , - 1817 , - 4378 , - 1111 , - 4048 , - 1157 , - 4470 , - 1955 , - 5644 , - 3505 , - 1554 , - 5807 , - 4232 , - 2845 , - 1646 , - 635 , - 5828 , - 5193 , - 4746 , - 4487 , - 4416 , - 4533 , - 4838 , - 5331 , - 6012 , - 865 , - 1922 , - 3167 , - 4600 , - 205 , - 2014 , - 4011 , - 180 , - 2553 , - 5114 , - 1847 , - 4784 , - 1893 , - 5206 , - 2691 , - 364 , - 4241 , - 2290 , - 527 , - 4968 , - 3581 , - 2382 , - 1371 , - 548 , - 5929 , - 5482 , - 5223 , - 5152 , - 5269 , - 5574 , - 51 , - 732 , - 1601 , - 2658 , - 3903 , - 5336 , - 941 , - 2750 , - 4747 , - 916 , - 3289 , - 5850 , - 2583 , - 5520 , - 2629 , - 5942 , - 3427 , - 1100 , - 4977 , - 3026 , - 1263 , - 5704 , - 4317 , - 3118 , - 2107 , - 1284 , - 649 , - 202 , - 5959 , - 5888 , - 6005 , - 294 , - 787 , - 1468 , - 2337 , - 3394 , - 4639 , - 56 , - 1677 , - 3486 , - 5483 , - 1652 , - 4025 , - 570 , - 3319 , - 240 , - 3365 , - 662 , - 4163 , - 1836 , - 5713 , - 3762 , - 1999 , - 424 , - 5053 , - 3854 , - 2843 , - 2020 , - 1385 , - 938 , - 679 , - 608 , - 725 , - 1030 , - 1523 , - 2204 , - 3073 , - 4130 , - 5375 , - 792 , - 2413 , - 4222 , - 203 , - 2388 , - 4761 , - 1306 , - 4055 , - 976 , - 4101 , - 1398 , - 4899 , - 2572 , - 433 , - 4498 , - 2735 , - 1160 , - 5789 , - 4590 , - 3579 , - 2756 , - 2121 , - 1674 , - 1415 , - 1344 , - 1461 , - 1766 , - 2259 , - 2940 , - 3809 , - 4866 , - 95 , - 1528 , - 3149 , - 4958 , - 939 , - 3124 , - 5497 , - 2042 , - 4791 , - 1712 , - 4837 , - 2134 , - 5635 , - 3308 , - 1169 , - 5234 , - 3471 , - 1896 , - 509 , - 5326 , - 4315 , - 3492 , - 2857 , - 2410 , - 2151 , - 2080 , - 2197 , - 2502 , - 2995 , - 3676 , - 4545 , - 5602 , - 831 , - 2264 , - 3885 , - 5694 , - 1675 , - 3860 , - 217 , - 2778 , - 5527 , - 2448 , - 5573 , - 2870 , - 355 , - 4044 , - 1905 , - 5970 , - 4207 , - 2632 , - 1245 , - 46 , - 5051 , - 4228 , - 3593 , - 3146 , - 2887 , - 2816 , - 2933 , - 3238 , - 3731 , - 4412 , - 5281 , - 322 , - 1567 , - 3000 , - 4621 , - 414 , - 2411 , - 4596 , - 953 , - 3514 , - 247 , - 3184 , - 293 , - 3606 , - 1091 , - 4780 , - 2641 , - 690 , - 4943 , - 3368 , - 1981 , - 782 , - 5787 , - 4964 , - 4329 , - 3882 , - 3623 , - 3552 , - 3669 , - 3974 , - 4467 , - 5148 , - 1 , - 1058 , - 2303 , - 3736 , - 5357 , - 1150 , - 3147 , - 5332 , - 1689 , - 4250 , - 983 , - 3920 , - 1029 , - 4342 , - 1827 , - 5516 , - 3377 , - 1426 , - 5679 , - 4104 , - 2717 , - 1518 , - 507 , - 5700 , - 5065 , - 4618 , - 4359 , - 4288 , - 4405 , - 4710 , - 5203 , - 5884 , - 737 , - 1794 , - 3039 , - 4472 , - 77 , - 1886 , - 3883 , - 52 , - 2425 , - 4986 , - 1719 , - 4656 , - 1765 , - 5078 , - 2563 , - 236 , - 4113 , - 2162 , - 399 , - 4840 , - 3453 , - 2254 , - 1243 , - 420 , - 5801 , - 5354 , - 5095 , - 5024 , - 5141 , - 5446 , - 5939 , - 604 , - 1473 , - 2530 , - 3775 , - 5208 , - 813 , - 2622 , - 4619 , - 788 , - 3161 , - 5722 , - 2455 , - 5392 , - 2501 , - 5814 , - 3299 , - 972 , - 4849 , - 2898 , - 1135 , - 5576 , - 4189 , - 2990 , - 1979 , - 1156 , - 521 , - 74 , - 5831 , - 5760 , - 5877 , - 166 , - 659 , - 1340 , - 2209 , - 3266 , - 4511 , - 5944 , - 1549 , - 3358 , - 5355 , - 1524 , - 3897 , - 442 , - 3191 , - 112 , - 3237 , - 534 , - 4035 , - 1708 , - 5585 , - 3634 , - 1871 , - 296 , - 4925 , - 3726 , - 2715 , - 1892 , - 1257 , - 810 , - 551 , - 480 , - 597 , - 902 , - 1395 , - 2076 , - 2945 , - 4002 , - 5247 , - 664 , - 2285 , - 4094 , - 75 , - 2260 , - 4633 , - 1178 , - 3927 , - 848 , - 3973 , - 1270 , - 4771 , - 2444 , - 305 , - 4370 , - 2607 , - 1032 , - 5661 , - 4462 , - 3451 , - 2628 , - 1993 , - 1546 , - 1287 , - 1216 , - 1333 , - 1638 , - 2131 , - 2812 , - 3681 , - 4738 , - 5983 , - 1400 , - 3021 , - 4830 , - 811 , - 2996 , - 5369 , - 1914 , - 4663 , - 1584 , - 4709 , - 2006 , - 5507 , - 3180 , - 1041 , - 5106 , - 3343 , - 1768 , - 381 , - 5198 , - 4187 , - 3364 , - 2729 , - 2282 , - 2023 , - 1952 , - 2069 , - 2374 , - 2867 , - 3548 , - 4417 , - 5474 , - 703 , - 2136 , - 3757 , - 5566 , - 1547 , - 3732 , - 89 , - 2650 , - 5399 , - 2320 , - 5445 , - 2742 , - 227 , - 3916 , - 1777 , - 5842 , - 4079 , - 2504 , - 1117 , - 5934 , - 4923 , - 4100 , - 3465 , - 3018 , - 2759 , - 2688 , - 2805 , - 3110 , - 3603 , - 4284 , - 5153 , - 194 , - 1439 , - 2872 , - 4493 , - 286 , - 2283 , - 4468 , - 825 , - 3386 , - 119 , - 3056 , - 165 , - 3478 , - 963 , - 4652 , - 2513 , - 562 , - 4815 , - 3240 , - 1853 , - 654 , - 5659 , - 4836 , - 4201 , - 3754 , - 3495 , - 3424 , - 3541 , - 3846 , - 4339 , - 5020 , - 5889 , - 930 , - 2175 , - 3608 , - 5229 , - 1022 , - 3019 , - 5204 , - 1561 , - 4122 , - 855 , - 3792 , - 901 , - 4214 , - 1699 , - 5388 , - 3249 , - 1298 , - 5551 , - 3976 , - 2589 , - 1390 , - 379 , - 5572 , - 4937 , - 4490 , - 4231 , - 4160 , - 4277 , - 4582 , - 5075 , - 5756 , - 609 , - 1666 , - 2911 , - 4344 , - 5965 , - 1758 , - 3755 , - 5940 , - 2297 , - 4858 , - 1591 , - 4528 , - 1637 , - 4950 , - 2435 , - 108 , - 3985 , - 2034 , - 271 , - 4712 , - 3325 , - 2126 , - 1115 , - 292 , - 5673 , - 5226 , - 4967 , - 4896 , - 5013 , - 5318 , - 5811 , - 476 , - 1345 , - 2402 , - 3647 , - 5080 , - 685 , - 2494 , - 4491 , - 660 , - 3033 , - 5594 , - 2327 , - 5264 , - 2373 , - 5686 , - 3171 , - 844 , - 4721 , - 2770 , - 1007 , - 5448 , - 4061 , - 2862 , - 1851 , - 1028 , - 393 , - 5962 , - 5703 , - 5632 , - 5749 , - 38 , - 531 , - 1212 , - 2081 , - 3138 , - 4383 , - 5816 , - 1421 , - 3230 , - 5227 , - 1396 , - 3769 , - 314 , - 3063 , - 6000 , - 3109 , - 406 , - 3907 , - 1580 , - 5457 , - 3506 , - 1743 , - 168 , - 4797 , - 3598 , - 2587 , - 1764 , - 1129 , - 682 , - 423 , - 352 , - 469 , - 774 , - 1267 , - 1948 , - 2817 , - 3874 , - 5119 , - 536 , - 2157 , - 3966 , - 5963 , - 2132 , - 4505 , - 1050 , - 3799 , - 720 , - 3845 , - 1142 , - 4643 , - 2316 , - 177 , - 4242 , - 2479 , - 904 , - 5533 , - 4334 , - 3323 , - 2500 , - 1865 , - 1418 , - 1159 , - 1088 , - 1205 , - 1510 , - 2003 , - 2684 , - 3553 , - 4610 , - 5855 , - 1272 , - 2893 , - 4702 , - 683 , - 2868 , - 5241 , - 1786 , - 4535 , - 1456 , - 4581 , - 1878 , - 5379 , - 3052 , - 913 , - 4978 , - 3215 , - 1640 , - 253 , - 5070 , - 4059 , - 3236 , - 2601 , - 2154 , - 1895 , - 1824 , - 1941 , - 2246 , - 2739 , - 3420 , - 4289 , - 5346 , - 575 , - 2008 , - 3629 , - 5438 , - 1419 , - 3604 , - 5977 , - 2522 , - 5271 , - 2192 , - 5317 , - 2614 , - 99 , - 3788 , - 1649 , - 5714 , - 3951 , - 2376 , - 989 , - 5806 , - 4795 , - 3972 , - 3337 , - 2890 , - 2631 , - 2560 , - 2677 , - 2982 , - 3475 , - 4156 , - 5025 , - 66 , - 1311 , - 2744 , - 4365 , - 158 , - 2155 , - 4340 , - 697 , - 3258 , - 6007 , - 2928 , - 37 , - 3350 , - 835 , - 4524 , - 2385 , - 434 , - 4687 , - 3112 , - 1725 , - 526 , - 5531 , - 4708 , - 4073 , - 3626 , - 3367 , - 3296 , - 3413 , - 3718 , - 4211 , - 4892 , - 5761 , - 802 , - 2047 , - 3480 , - 5101 , - 894 , - 2891 , - 5076 , - 1433 , - 3994 , - 727 , - 3664 , - 773 , - 4086 , - 1571 , - 5260 , - 3121 , - 1170 , - 5423 , - 3848 , - 2461 , - 1262 , - 251 , - 5444 , - 4809 , - 4362 , - 4103 , - 4032 , - 4149 , - 4454 , - 4947 , - 5628 , - 481 , - 1538 , - 2783 , - 4216 , - 5837 , - 1630 , - 3627 , - 5812 , - 2169 , - 4730 , - 1463 , - 4400 , - 1509 , - 4822 , - 2307 , - 5996 , - 3857 , - 1906 , - 143 , - 4584 , - 3197 , - 1998 , - 987 , - 164 , - 5545 , - 5098 , - 4839 , - 4768 , - 4885 , - 5190 , - 5683 , - 348 , - 1217 , - 2274 , - 3519 , - 4952 , - 557 , - 2366 , - 4363 , - 532 , - 2905 , - 5466 , - 2199 , - 5136 , - 2245 , - 5558 , - 3043 , - 716 , - 4593 , - 2642 , - 879 , - 5320 , - 3933 , - 2734 , - 1723 , - 900 , - 265 , - 5834 , - 5575 , - 5504 , - 5621 , - 5926 , - 403 , - 1084 , - 1953 , - 3010 , - 4255 , - 5688 , - 1293 , - 3102 , - 5099 , - 1268 , - 3641 , - 186 , - 2935 , - 5872 , - 2981 , - 278 , - 3779 , - 1452 , - 5329 , - 3378 , - 1615 , - 40 , - 4669 , - 3470 , - 2459 , - 1636 , - 1001 , - 554 , - 295 , - 224 , - 341 , - 646 , - 1139 , - 1820 , - 2689 , - 3746 , - 4991 , - 408 , - 2029 , - 3838 , - 5835 , - 2004 , - 4377 , - 922 , - 3671 , - 592 , - 3717 , - 1014 , - 4515 , - 2188 , - 49 , - 4114 , - 2351 , - 776 , - 5405 , - 4206 , - 3195 , - 2372 , - 1737 , - 1290 , - 1031 , - 960 , - 1077 , - 1382 , - 1875 , - 2556 , - 3425 , - 4482 , - 5727 , - 1144 , - 2765 , - 4574 , - 555 , - 2740 , - 5113 , - 1658 , - 4407 , - 1328 , - 4453 , - 1750 , - 5251 , - 2924 , - 785 , - 4850 , - 3087 , - 1512 , - 125 , - 4942 , - 3931 , - 3108 , - 2473 , - 2026 , - 1767 , - 1696 , - 1813 , - 2118 , - 2611 , - 3292 , - 4161 , - 5218 , - 447 , - 1880 , - 3501 , - 5310 , - 1291 , - 3476 , - 5849 , - 2394 , - 5143 , - 2064 , - 5189 , - 2486 , - 5987 , - 3660 , - 1521 , - 5586 , - 3823 , - 2248 , - 861 , - 5678 , - 4667 , - 3844 , - 3209 , - 2762 , - 2503 , - 2432 , - 2549 , - 2854 , - 3347 , - 4028 , - 4897 , - 5954 , - 1183 , - 2616 , - 4237 , - 30 , - 2027 , - 4212 , - 569 , - 3130 , - 5879 , - 2800 , - 5925 , - 3222 , - 707 , - 4396 , - 2257 , - 306 , - 4559 , - 2984 , - 1597 , - 398 , - 5403 , - 4580 , - 3945 , - 3498 , - 3239 , - 3168 , - 3285 , - 3590 , - 4083 , - 4764 , - 5633 , - 674 , - 1919 , - 3352 , - 4973 , - 766 , - 2763 , - 4948 , - 1305 , - 3866 , - 599 , - 3536 , - 645 , - 3958 , - 1443 , - 5132 , - 2993 , - 1042 , - 5295 , - 3720 , - 2333 , - 1134 , - 123 , - 5316 , - 4681 , - 4234 , - 3975 , - 3904 , - 4021 , - 4326 , - 4819 , - 5500 , - 353 , - 1410 , - 2655 , - 4088 , - 5709 , - 1502 , - 3499 , - 5684 , - 2041 , - 4602 , - 1335 , - 4272 , - 1381 , - 4694 , - 2179 , - 5868 , - 3729 , - 1778 , - 15 , - 4456 , - 3069 , - 1870 , - 859 , - 36 , - 5417 , - 4970 , - 4711 , - 4640 , - 4757 , - 5062 , - 5555 , - 220 , - 1089 , - 2146 , - 3391 , - 4824 , - 429 , - 2238 , - 4235 , - 404 , - 2777 , - 5338 , - 2071 , - 5008 , - 2117 , - 5430 , - 2915 , - 588 , - 4465 , - 2514 , - 751 , - 5192 , - 3805 , - 2606 , - 1595 , - 772 , - 137 , - 5706 , - 5447 , - 5376 , - 5493 , - 5798 , - 275 , - 956 , - 1825 , - 2882 , - 4127 , - 5560 , - 1165 , - 2974 , - 4971 , - 1140 , - 3513 , - 58 , - 2807 , - 5744 , - 2853 , - 150 , - 3651 , - 1324 , - 5201 , - 3250 , - 1487 , - 5928 , - 4541 , - 3342 , - 2331 , - 1508 , - 873 , - 426 , - 167 , - 96 , - 213 , - 518 , - 1011 , - 1692 , - 2561 , - 3618 , - 4863 , - 280 , - 1901 , - 3710 , - 5707 , - 1876 , - 4249 , - 794 , - 3543 , - 464 , - 3589 , - 886 , - 4387 , - 2060 , - 5937 , - 3986 , - 2223 , - 648 , - 5277 , - 4078 , - 3067 , - 2244 , - 1609 , - 1162 , - 903 , - 832 , - 949 , - 1254 , - 1747 , - 2428 , - 3297 , - 4354 , - 5599 , - 1016 , - 2637 , - 4446 , - 427 , - 2612 , - 4985 , - 1530 , - 4279 , - 1200 , - 4325 , - 1622 , - 5123 , - 2796 , - 657 , - 4722 , - 2959 , - 1384 , - 6013 , - 4814 , - 3803 , - 2980 , - 2345 , - 1898 , - 1639 , - 1568 , - 1685 , - 1990 , - 2483 , - 3164 , - 4033 , - 5090 , - 319 , - 1752 , - 3373 , - 5182 , - 1163 , - 3348 , - 5721 , - 2266 , - 5015 , - 1936 , - 5061 , - 2358 , - 5859 , - 3532 , - 1393 , - 5458 , - 3695 , - 2120 , - 733 , - 5550 , - 4539 , - 3716 , - 3081 , - 2634 , - 2375 , - 2304 , - 2421 , - 2726 , - 3219 , - 3900 , - 4769 , - 5826 , - 1055 , - 2488 , - 4109 , - 5918 , - 1899 , - 4084 , - 441 , - 3002 , - 5751 , - 2672 , - 5797 , - 3094 , - 579 , - 4268 , - 2129 , - 178 , - 4431 , - 2856 , - 1469 , - 270 , - 5275 , - 4452 , - 3817 , - 3370 , - 3111 , - 3040 , - 3157 , - 3462 , - 3955 , - 4636 , - 5505 , - 546 , - 1791 , - 3224 , - 4845 , - 638 , - 2635 , - 4820 , - 1177 , - 3738 , - 471 , - 3408 , - 517 , - 3830 , - 1315 , - 5004 , - 2865 , - 914 , - 5167 , - 3592 , - 2205 , - 1006 , - 6011 , - 5188 , - 4553 , - 4106 , - 3847 , - 3776 , - 3893 , - 4198 , - 4691 , - 5372 , - 225 , - 1282 , - 2527 , - 3960 , - 5581 , - 1374 , - 3371 , - 5556 , - 1913 , - 4474 , - 1207 , - 4144 , - 1253 , - 4566 , - 2051 , - 5740 , - 3601 , - 1650 , - 5903 , - 4328 , - 2941 , - 1742 , - 731 , - 5924 , - 5289 , - 4842 , - 4583 , - 4512 , - 4629 , - 4934 , - 5427 , - 92 , - 961 , - 2018 , - 3263 , - 4696 , - 301 , - 2110 , - 4107 , - 276 , - 2649 , - 5210 , - 1943 , - 4880 , - 1989 , - 5302 , - 2787 , - 460 , - 4337 , - 2386 , - 623 , - 5064 , - 3677 , - 2478 , - 1467 , - 644 , - 9 , - 5578 , - 5319 , - 5248 , - 5365 , - 5670 , - 147 , - 828 , - 1697 , - 2754 , - 3999 , - 5432 , - 1037 , - 2846 , - 4843 , - 1012 , - 3385 , - 5946 , - 2679 , - 5616 , - 2725 , - 22 , - 3523 , - 1196 , - 5073 , - 3122 , - 1359 , - 5800 , - 4413 , - 3214 , - 2203 , - 1380 , - 745 , - 298 , - 39 , - 5984 , - 85 , - 390 , - 883 , - 1564 , - 2433 , - 3490 , - 4735 , - 152 , - 1773 , - 3582 , - 5579 , - 1748 , - 4121 , - 666 , - 3415 , - 336 , - 3461 , - 758 , - 4259 , - 1932 , - 5809 , - 3858 , - 2095 , - 520 , - 5149 , - 3950 , - 2939 , - 2116 , - 1481 , - 1034 , - 775 , - 704 , - 821 , - 1126 , - 1619 , - 2300 , - 3169 , - 4226 , - 5471 , - 888 , - 2509 , - 4318 , - 299 , - 2484 , - 4857 , - 1402 , - 4151 , - 1072 , - 4197 , - 1494 , - 4995 , - 2668 , - 529 , - 4594 , - 2831 , - 1256 , - 5885 , - 4686 , - 3675 , - 2852 , - 2217 , - 1770 , - 1511 , - 1440 , - 1557 , - 1862 , - 2355 , - 3036 , - 3905 , - 4962 , - 191 , - 1624 , - 3245 , - 5054 , - 1035 , - 3220 , - 5593 , - 2138 , - 4887 , - 1808 , - 4933 , - 2230 , - 5731 , - 3404 , - 1265 , - 5330 , - 3567 , - 1992 , - 605 , - 5422 , - 4411 , - 3588 , - 2953 , - 2506 , - 2247 , - 2176 , - 2293 , - 2598 , - 3091 , - 3772 , - 4641 , - 5698 , - 927 , - 2360 , - 3981 , - 5790 , - 1771 , - 3956 , - 313 , - 2874 , - 5623 , - 2544 , - 5669 , - 2966 , - 451 , - 4140 , - 2001 , - 50 , - 4303 , - 2728 , - 1341 , - 142 , - 5147 , - 4324 , - 3689 , - 3242 , - 2983 , - 2912 , - 3029 , - 3334 , - 3827 , - 4508 , - 5377 , - 418 , - 1663 , - 3096 , - 4717 , - 510 , - 2507 , - 4692 , - 1049 , - 3610 , - 343 , - 3280 , - 389 , - 3702 , - 1187 , - 4876 , - 2737 , - 786 , - 5039 , - 3464 , - 2077 , - 878 , - 5883 , - 5060 , - 4425 , - 3978 , - 3719 , - 3648 , - 3765 , - 4070 , - 4563 , - 5244 , - 97 , - 1154 , - 2399 , - 3832 , - 5453 , - 1246 , - 3243 , - 5428 , - 1785 , - 4346 , - 1079 , - 4016 , - 1125 , - 4438 , - 1923 , - 5612 , - 3473 , - 1522 , - 5775 , - 4200 , - 2813 , - 1614 , - 603 , - 5796 , - 5161 , - 4714 , - 4455 , - 4384 , - 4501 , - 4806 , - 5299 , - 5980 , - 833 , - 1890 , - 3135 , - 4568 , - 173 , - 1982 , - 3979 , - 148 , - 2521 , - 5082 , - 1815 , - 4752 , - 1861 , - 5174 , - 2659 , - 332 , - 4209 , - 2258 , - 495 , - 4936 , - 3549 , - 2350 , - 1339 , - 516 , - 5897 , - 5450 , - 5191 , - 5120 , - 5237 , - 5542 , - 19 , - 700 , - 1569 , - 2626 , - 3871 , - 5304 , - 909 , - 2718 , - 4715 , - 884 , - 3257 , - 5818 , - 2551 , - 5488 , - 2597 , - 5910 , - 3395 , - 1068 , - 4945 , - 2994 , - 1231 , - 5672 , - 4285 , - 3086 , - 2075 , - 1252 , - 617 , - 170 , - 5927 , - 5856 , - 5973 , - 262 , - 755 , - 1436 , - 2305 , - 3362 , - 4607 , - 24 , - 1645 , - 3454 , - 5451 , - 1620 , - 3993 , - 538 , - 3287 , - 208 , - 3333 , - 630 , - 4131 , - 1804 , - 5681 , - 3730 , - 1967 , - 392 , - 5021 , - 3822 , - 2811 , - 1988 , - 1353 , - 906 , - 647 , - 576 , - 693 , - 998 , - 1491 , - 2172 , - 3041 , - 4098 , - 5343 , - 760 , - 2381 , - 4190 , - 171 , - 2356 , - 4729 , - 1274 , - 4023 , - 944 , - 4069 , - 1366 , - 4867 , - 2540 , - 401 , - 4466 , - 2703 , - 1128 , - 5757 , - 4558 , - 3547 , - 2724 , - 2089 , - 1642 , - 1383 , - 1312 , - 1429 , - 1734 , - 2227 , - 2908 , - 3777 , - 4834 , - 63 , - 1496 , - 3117 , - 4926 , - 907 , - 3092 , - 5465 , - 2010 , - 4759 , - 1680 , - 4805 , - 2102 , - 5603 , - 3276 , - 1137 , - 5202 , - 3439 , - 1864 , - 477 , - 5294 , - 4283 , - 3460 , - 2825 , - 2378 , - 2119 , - 2048 , - 2165 , - 2470 , - 2963 , - 3644 , - 4513 , - 5570 , - 799 , - 2232 , - 3853 , - 5662 , - 1643 , - 3828 , - 185 , - 2746 , - 5495 , - 2416 , - 5541 , - 2838 , - 323 , - 4012 , - 1873 , - 5938 , - 4175 , - 2600 , - 1213 , - 14 , - 5019 , - 4196 , - 3561 , - 3114 , - 2855 , - 2784 , - 2901 , - 3206 , - 3699 , - 4380 , - 5249 , - 290 , - 1535 , - 2968 , - 4589 , - 382 , - 2379 , - 4564 , - 921 , - 3482 , - 215 , - 3152 , - 261 , - 3574 , - 1059 , - 4748 , - 2609 , - 658 , - 4911 , - 3336 , - 1949 , - 750 , - 5755 , - 4932 , - 4297 , - 3850 , - 3591 , - 3520 , - 3637 , - 3942 , - 4435 , - 5116 , - 5985 , - 1026 , - 2271 , - 3704 , - 5325 , - 1118 , - 3115 , - 5300 , - 1657 , - 4218 , - 951 , - 3888 , - 997 , - 4310 , - 1795 , - 5484 , - 3345 , - 1394 , - 5647 , - 4072 , - 2685 , - 1486 , - 475 , - 5668 , - 5033 , - 4586 , - 4327 , - 4256 , - 4373 , - 4678 , - 5171 , - 5852 , - 705 , - 1762 , - 3007 , - 4440 , - 45 , - 1854 , - 3851 , - 20 , - 2393 , - 4954 , - 1687 , - 4624 , - 1733 , - 5046 , - 2531 , - 204 , - 4081 , - 2130 , - 367 , - 4808 , - 3421 , - 2222 , - 1211 , - 388 , - 5769 , - 5322 , - 5063 , - 4992 , - 5109 , - 5414 , - 5907 , - 572 , - 1441 , - 2498 , - 3743 , - 5176 , - 781 , - 2590 , - 4587 , - 756 , - 3129 , - 5690 , - 2423 , - 5360 , - 2469 , - 5782 , - 3267 , - 940 , - 4817 , - 2866 , - 1103 , - 5544 , - 4157 , - 2958 , - 1947 , - 1124 , - 489 , - 42 , - 5799 , - 5728 , - 5845 , - 134 , - 627 , - 1308 , - 2177 , - 3234 , - 4479 , - 5912 , - 1517 , - 3326 , - 5323 , - 1492 , - 3865 , - 410 , - 3159 , - 80 , - 3205 , - 502 , - 4003 , - 1676 , - 5553 , - 3602 , - 1839 , - 264 , - 4893 , - 3694 , - 2683 , - 1860 , - 1225 , - 778 , - 519 , - 448 , - 565 , - 870 , - 1363 , - 2044 , - 2913 , - 3970 , - 5215 , - 632 , - 2253 , - 4062 , - 43 , - 2228 , - 4601 , - 1146 , - 3895 , - 816 , - 3941 , - 1238 , - 4739 , - 2412 , - 273 , - 4338 , - 2575 , - 1000 , - 5629 , - 4430 , - 3419 , - 2596 , - 1961 , - 1514 , - 1255 , - 1184 , - 1301 , - 1606 , - 2099 , - 2780 , - 3649 , - 4706 , - 5951 , - 1368 , - 2989 , - 4798 , - 779 , - 2964 , - 5337 , - 1882 , - 4631 , - 1552 , - 4677 , - 1974 , - 5475 , - 3148 , - 1009 , - 5074 , - 3311 , - 1736 , - 349 , - 5166 , - 4155 , - 3332 , - 2697 , - 2250 , - 1991 , - 1920 , - 2037 , - 2342 , - 2835 , - 3516 , - 4385 , - 5442 , - 671 , - 2104 , - 3725 , - 5534 , - 1515 , - 3700 , - 57 , - 2618 , - 5367 , - 2288 , - 5413 , - 2710 , - 195 , - 3884 , - 1745 , - 5810 , - 4047 , - 2472 , - 1085 , - 5902 , - 4891 , - 4068 , - 3433 , - 2986 , - 2727 , - 2656 , - 2773 , - 3078 , - 3571 , - 4252 , - 5121 , - 162 , - 1407 , - 2840 , - 4461 , - 254 , - 2251 , - 4436 , - 793 , - 3354 , - 87 , - 3024 , - 133 , - 3446 , - 931 , - 4620 , - 2481 , - 530 , - 4783 , - 3208 , - 1821 , - 622 , - 5627 , - 4804 , - 4169 , - 3722 , - 3463 , - 3392 , - 3509 , - 3814 , - 4307 , - 4988 , - 5857 , - 898 , - 2143 , - 3576 , - 5197 , - 990 , - 2987 , - 5172 , - 1529 , - 4090 , - 823 , - 3760 , - 869 , - 4182 , - 1667 , - 5356 , - 3217 , - 1266 , - 5519 , - 3944 , - 2557 , - 1358 , - 347 , - 5540 , - 4905 , - 4458 , - 4199 , - 4128 , - 4245 , - 4550 , - 5043 , - 5724 , - 577 , - 1634 , - 2879 , - 4312 , - 5933 , - 1726 , - 3723 , - 5908 , - 2265 , - 4826 , - 1559 , - 4496 , - 1605 , - 4918 , - 2403 , - 76 , - 3953 , - 2002 , - 239 , - 4680 , - 3293 , - 2094 , - 1083 , - 260 , - 5641 , - 5194 , - 4935 , - 4864 , - 4981 , - 5286 , - 5779 , - 444 , - 1313 , - 2370 , - 3615 , - 5048 , - 653 , - 2462 , - 4459 , - 628 , - 3001 , - 5562 , - 2295 , - 5232 , - 2341 , - 5654 , - 3139 , - 812 , - 4689 , - 2738 , - 975 , - 5416 , - 4029 , - 2830 , - 1819 , - 996 , - 361 , - 5930 , - 5671 , - 5600 , - 5717 , - 6 , - 499 , - 1180 , - 2049 , - 3106 , - 4351 , - 5784 , - 1389 , - 3198 , - 5195 , - 1364 , - 3737 , - 282 , - 3031 , - 5968 , - 3077 , - 374 , - 3875 , - 1548 , - 5425 , - 3474 , - 1711 , - 136 , - 4765 , - 3566 , - 2555 , - 1732 , - 1097 , - 650 , - 391 , - 320 , - 437 , - 742 , - 1235 , - 1916 , - 2785 , - 3842 , - 5087 , - 504 , - 2125 , - 3934 , - 5931 , - 2100 , - 4473 , - 1018 , - 3767 , - 688 , - 3813 , - 1110 , - 4611 , - 2284 , - 145 , - 4210 , - 2447 , - 872 , - 5501 , - 4302 , - 3291 , - 2468 , - 1833 , - 1386 , - 1127 , - 1056 , - 1173 , - 1478 , - 1971 , - 2652 , - 3521 , - 4578 , - 5823 , - 1240 , - 2861 , - 4670 , - 651 , - 2836 , - 5209 , - 1754 , - 4503 , - 1424 , - 4549 , - 1846 , - 5347 , - 3020 , - 881 , - 4946 , - 3183 , - 1608 , - 221 , - 5038 , - 4027 , - 3204 , - 2569 , - 2122 , - 1863 , - 1792 , - 1909 , - 2214 , - 2707 , - 3388 , - 4257 , - 5314 , - 543 , - 1976 , - 3597 , - 5406 , - 1387 , - 3572 , - 5945 , - 2490 , - 5239 , - 2160 , - 5285 , - 2582 , - 67 , - 3756 , - 1617 , - 5682 , - 3919 , - 2344 , - 957 , - 5774 , - 4763 , - 3940 , - 3305 , - 2858 , - 2599 , - 2528 , - 2645 , - 2950 , - 3443 , - 4124 , - 4993 , - 34 , - 1279 , - 2712 , - 4333 , - 126 , - 2123 , - 4308 , - 665 , - 3226 , - 5975 , - 2896 , - 5 , - 3318 , - 803 , - 4492 , - 2353 , - 402 , - 4655 , - 3080 , - 1693 , - 494 , - 5499 , - 4676 , - 4041 , - 3594 , - 3335 , - 3264 , - 3381 , - 3686 , - 4179 , - 4860 , - 5729 , - 770 , - 2015 , - 3448 , - 5069 , - 862 , - 2859 , - 5044 , - 1401 , - 3962 , - 695 , - 3632 , - 741 , - 4054 , - 1539 , - 5228 , - 3089 , - 1138 , - 5391 , - 3816 , - 2429 , - 1230 , - 219 , - 5412 , - 4777 , - 4330 , - 4071 , - 4000 , - 4117 , - 4422 , - 4915 , - 5596 , - 449 , - 1506 , - 2751 , - 4184 , - 5805 , - 1598 , - 3595 , - 5780 , - 2137 , - 4698 , - 1431 , - 4368 , - 1477 , - 4790 , - 2275 , - 5964 , - 3825 , - 1874 , - 111 , - 4552 , - 3165 , - 1966 , - 955 , - 132 , - 5513 , - 5066 , - 4807 , - 4736 , - 4853 , - 5158 , - 5651 , - 316 , - 1185 , - 2242 , - 3487 , - 4920 , - 525 , - 2334 , - 4331 , - 500 , - 2873 , - 5434 , - 2167 , - 5104 , - 2213 , - 5526 , - 3011 , - 684 , - 4561 , - 2610 , - 847 , - 5288 , - 3901 , - 2702 , - 1691 , - 868 , - 233 , - 5802 , - 5543 , - 5472 , - 5589 , - 5894 , - 371 , - 1052 , - 1921 , - 2978 , - 4223 , - 5656 , - 1261 , - 3070 , - 5067 , - 1236 , - 3609 , - 154 , - 2903 , - 5840 , - 2949 , - 246 , - 3747 , - 1420 , - 5297 , - 3346 , - 1583 , - 8 , - 4637 , - 3438 , - 2427 , - 1604 , - 969 , - 522 , - 263 , - 192 , - 309 , - 614 , - 1107 , - 1788 , - 2657 , - 3714 , - 4959 , - 376 , - 1997 , - 3806 , - 5803 , - 1972 , - 4345 , - 890 , - 3639 , - 560 , - 3685 , - 982 , - 4483 , - 2156 , - 17 , - 4082 , - 2319 , - 744 , - 5373 , - 4174 , - 3163 , - 2340 , - 1705 , - 1258 , - 999 , - 928 , - 1045 , - 1350 , - 1843 , - 2524 , - 3393 , - 4450 , - 5695 , - 1112 , - 2733 , - 4542 , - 523 , - 2708 , - 5081 , - 1626 , - 4375 , - 1296 , - 4421 , - 1718 , - 5219 , - 2892 , - 753 , - 4818 , - 3055 , - 1480 , - 93 , - 4910 , - 3899 , - 3076 , - 2441 , - 1994 , - 1735 , - 1664 , - 1781 , - 2086 , - 2579 , - 3260 , - 4129 , - 5186 , - 415 , - 1848 , - 3469 , - 5278 , - 1259 , - 3444 , - 5817 , - 2362 , - 5111 , - 2032 , - 5157 , - 2454 , - 5955 , - 3628 , - 1489 , - 5554 , - 3791 , - 2216 , - 829 , - 5646 , - 4635 , - 3812 , - 3177 , - 2730 , - 2471 , - 2400 , - 2517 , - 2822 , - 3315 , - 3996 , - 4865 , - 5922 , - 1151 , - 2584 , - 4205 , - 6014 , - 1995 , - 4180 , - 537 , - 3098 , - 5847 , - 2768 , - 5893 , - 3190 , - 675 , - 4364 , - 2225 , - 274 , - 4527 , - 2952 , - 1565 , - 366 , - 5371 , - 4548 , - 3913 , - 3466 , - 3207 , - 3136 , - 3253 , - 3558 , - 4051 , - 4732 , - 5601 , - 642 , - 1887 , - 3320 , - 4941 , - 734 , - 2731 , - 4916 , - 1273 , - 3834 , - 567 , - 3504 , - 613 , - 3926 , - 1411 , - 5100 , - 2961 , - 1010 , - 5263 , - 3688 , - 2301 , - 1102 , - 91 , - 5284 , - 4649 , - 4202 , - 3943 , - 3872 , - 3989 , - 4294 , - 4787 , - 5468 , - 321 , - 1378 , - 2623 , - 4056 , - 5677 , - 1470 , - 3467 , - 5652 , - 2009 , - 4570 , - 1303 , - 4240 , - 1349 , - 4662 , - 2147 , - 5836 , - 3697 , - 1746 , - 5999 , - 4424 , - 3037 , - 1838 , - 827 , - 4 , - 5385 , - 4938 , - 4679 , - 4608 , - 4725 , - 5030 , - 5523 , - 188 , - 1057 , - 2114 , - 3359 , - 4792 , - 397 , - 2206 , - 4203 , - 372 , - 2745 , - 5306 , - 2039 , - 4976 , - 2085 , - 5398 , - 2883 , - 556 , - 4433 , - 2482 , - 719 , - 5160 , - 3773 , - 2574 , - 1563 , - 740 , - 105 , - 5674 , - 5415 , - 5344 , - 5461 , - 5766 , - 243 , - 924 , - 1793 , - 2850 , - 4095 , - 5528 , - 1133 , - 2942 , - 4939 , - 1108 , - 3481 , - 26 , - 2775 , - 5712 , - 2821 , - 118 , - 3619 , - 1292 , - 5169 , - 3218 , - 1455 , - 5896 , - 4509 , - 3310 , - 2299 , - 1476 , - 841 , - 394 , - 135 , - 64 , - 181 , - 486 , - 979 , - 1660 , - 2529 , - 3586 , - 4831 , - 248 , - 1869 , - 3678 , - 5675 , - 1844 , - 4217 , - 762 , - 3511 , - 432 , - 3557 , - 854 , - 4355 , - 2028 , - 5905 , - 3954 , - 2191 , - 616 , - 5245 , - 4046 , - 3035 , - 2212 , - 1577 , - 1130 , - 871 , - 800 , - 917 , - 1222 , - 1715 , - 2396 , - 3265 , - 4322 , - 5567 , - 984 , - 2605 , - 4414 , - 395 , - 2580 , - 4953 , - 1498 , - 4247 , - 1168 , - 4293 , - 1590 , - 5091 , - 2764 , - 625 , - 4690 , - 2927 , - 1352 , - 5981 , - 4782 , - 3771 , - 2948 , - 2313 , - 1866 , - 1607 , - 1536 , - 1653 , - 1958 , - 2451 , - 3132 , - 4001 , - 5058 , - 287 , - 1720 , - 3341 , - 5150 , - 1131 , - 3316 , - 5689 , - 2234 , - 4983 , - 1904 , - 5029 , - 2326 , - 5827 , - 3500 , - 1361 , - 5426 , - 3663 , - 2088 , - 701 , - 5518 , - 4507 , - 3684 , - 3049 , - 2602 , - 2343 , - 2272 , - 2389 , - 2694 , - 3187 , - 3868 , - 4737 , - 5794 , - 1023 , - 2456 , - 4077 , - 5886 , - 1867 , - 4052 , - 409 , - 2970 , - 5719 , - 2640 , - 5765 , - 3062 , - 547 , - 4236 , - 2097 , - 146 , - 4399 , - 2824 , - 1437 , - 238 , - 5243 , - 4420 , - 3785 , - 3338 , - 3079 , - 3008 , - 3125 , - 3430 , - 3923 , - 4604 , - 5473 , - 514 , - 1759 , - 3192 , - 4813 , - 606 , - 2603 , - 4788 , - 1145 , - 3706 , - 439 , - 3376 , - 485 , - 3798 , - 1283 , - 4972 , - 2833 , - 882 , - 5135 , - 3560 , - 2173 , - 974 , - 5979 , - 5156 , - 4521 , - 4074 , - 3815 , - 3744 , - 3861 , - 4166 , - 4659 , - 5340 , - 193 , - 1250 , - 2495 , - 3928 , - 5549 , - 1342 , - 3339 , - 5524 , - 1881 , - 4442 , - 1175 , - 4112 , - 1221 , - 4534 , - 2019 , - 5708 , - 3569 , - 1618 , - 5871 , - 4296 , - 2909 , - 1710 , - 699 , - 5892 , - 5257 , - 4810 , - 4551 , - 4480 , - 4597 , - 4902 , - 5395 , - 60 , - 929 , - 1986 , - 3231 , - 4664 , - 269 , - 2078 , - 4075 , - 244 , - 2617 , - 5178 , - 1911 , - 4848 , - 1957 , - 5270 , - 2755 , - 428 , - 4305 , - 2354 , - 591 , - 5032 , - 3645 , - 2446 , - 1435 , - 612 , - 5993 , - 5546 , - 5287 , - 5216 , - 5333 , - 5638 , - 115 , - 796 , - 1665 , - 2722 , - 3967 , - 5400 , - 1005 , - 2814 , - 4811 , - 980 , - 3353 , - 5914 , - 2647 , - 5584 , - 2693 , - 6006 , - 3491 , - 1164 , - 5041 , - 3090 , - 1327 , - 5768 , - 4381 , - 3182 , - 2171 , - 1348 , - 713 , - 266 , - 7 , - 5952 , - 53 , - 358 , - 851 , - 1532 , - 2401 , - 3458 , - 4703 , - 120 , - 1741 , - 3550 , - 5547 , - 1716 , - 4089 , - 634 , - 3383 , - 304 , - 3429 , - 726 , - 4227 , - 1900 , - 5777 , - 3826 , - 2063 , - 488 , - 5117 , - 3918 , - 2907 , - 2084 , - 1449 , - 1002 , - 743 , - 672 , - 789 , - 1094 , - 1587 , - 2268 , - 3137 , - 4194 , - 5439 , - 856 , - 2477 , - 4286 , - 267 , - 2452 , - 4825 , - 1370 , - 4119 , - 1040 , - 4165 , - 1462 , - 4963 , - 2636 , - 497 , - 4562 , - 2799 , - 1224 , - 5853 , - 4654 , - 3643 , - 2820 , - 2185 , - 1738 , - 1479 , - 1408 , - 1525 , - 1830 , - 2323 , - 3004 , - 3873 , - 4930 , - 159 , - 1592 , - 3213 , - 5022 , - 1003 , - 3188 , - 5561 , - 2106 , - 4855 , - 1776 , - 4901 , - 2198 , - 5699 , - 3372 , - 1233 , - 5298 , - 3535 , - 1960 , - 573 , - 5390 , - 4379 , - 3556 , - 2921 , - 2474 , - 2215 , - 2144 , - 2261 , - 2566 , - 3059 , - 3740 , - 4609 , - 5666 , - 895 , - 2328 , - 3949 , - 5758 , - 1739 , - 3924 , - 281 , - 2842 , - 5591 , - 2512 , - 5637 , - 2934 , - 419 , - 4108 , - 1969 , - 18 , - 4271 , - 2696 , - 1309 , - 110 , - 5115 , - 4292 , - 3657 , - 3210 , - 2951 , - 2880 , - 2997 , - 3302 , - 3795 , - 4476 , - 5345 , - 386 , - 1631 , - 3064 , - 4685 , - 478 , - 2475 , - 4660 , - 1017 , - 3578 , - 311 , - 3248 , - 357 , - 3670 , - 1155 , - 4844 , - 2705 , - 754 , - 5007 , - 3432 , - 2045 , - 846 , - 5851 , - 5028 , - 4393 , - 3946 , - 3687 , - 3616 , - 3733 , - 4038 , - 4531 , - 5212 , - 65 , - 1122 , - 2367 , - 3800 , - 5421 , - 1214 , - 3211 , - 5396 , - 1753 , - 4314 , - 1047 , - 3984 , - 1093 , - 4406 , - 1891 , - 5580 , - 3441 , - 1490 , - 5743 , - 4168 , - 2781 , - 1582 , - 571 , - 5764 , - 5129 , - 4682 , - 4423 , - 4352 , - 4469 , - 4774 , - 5267 , - 5948 , - 801 , - 1858 , - 3103 , - 4536 , - 141 , - 1950 , - 3947 , - 116 , - 2489 , - 5050 , - 1783 , - 4720 , - 1829 , - 5142 , - 2627 , - 300 , - 4177 , - 2226 , - 463 , - 4904 , - 3517 , - 2318 , - 1307 , - 484 , - 5865 , - 5418 , - 5159 , - 5088 , - 5205 , - 5510 , - 6003 , - 668 , - 1537 , - 2594 , - 3839 , - 5272 , - 877 , - 2686 , - 4683 , - 852 , - 3225 , - 5786 , - 2519 , - 5456 , - 2565 , - 5878 , - 3363 , - 1036 , - 4913 , - 2962 , - 1199 , - 5640 , - 4253 , - 3054 , - 2043 , - 1220 , - 585 , - 138 , - 5895 , - 5824 , - 5941 , - 230 , - 723 , - 1404 , - 2273 , - 3330 , - 4575 , - 6008 , - 1613 , - 3422 , - 5419 , - 1588 , - 3961 , - 506 , - 3255 , - 176 , - 3301 , - 598 , - 4099 , - 1772 , - 5649 , - 3698 , - 1935 , - 360 , - 4989 , - 3790 , - 2779 , - 1956 , - 1321 , - 874 , - 615 , - 544 , - 661 , - 966 , - 1459 , - 2140 , - 3009 , - 4066 , - 5311 , - 728 , - 2349 , - 4158 , - 139 , - 2324 , - 4697 , - 1242 , - 3991 , - 912 , - 4037 , - 1334 , - 4835 , - 2508 , - 369 , - 4434 , - 2671 , - 1096 , - 5725 , - 4526 , - 3515 , - 2692 , - 2057 , - 1610 , - 1351 , - 1280 , - 1397 , - 1702 , - 2195 , - 2876 , - 3745 , - 4802 , - 31 , - 1464 , - 3085 , - 4894 , - 875 , - 3060 , - 5433 , - 1978 , - 4727 , - 1648 , - 4773 , - 2070 , - 5571 , - 3244 , - 1105 , - 5170 , - 3407 , - 1832 , - 445 , - 5262 , - 4251 , - 3428 , - 2793 , - 2346 , - 2087 , - 2016 , - 2133 , - 2438 , - 2931 , - 3612 , - 4481 , - 5538 , - 767 , - 2200 , - 3821 , - 5630 , - 1611 , - 3796 , - 153 , - 2714 , - 5463 , - 2384 , - 5509 , - 2806 , - 291 , - 3980 , - 1841 , - 5906 , - 4143 , - 2568 , - 1181 , - 5998 , - 4987 , - 4164 , - 3529 , - 3082 , - 2823 , - 2752 , - 2869 , - 3174 , - 3667 , - 4348 , - 5217 , - 258 , - 1503 , - 2936 , - 4557 , - 350 , - 2347 , - 4532 , - 889 , - 3450 , - 183 , - 3120 , - 229 , - 3542 , - 1027 , - 4716 , - 2577 , - 626 , - 4879 , - 3304 , - 1917 , - 718 , - 5723 , - 4900 , - 4265 , - 3818 , - 3559 , - 3488 , - 3605 , - 3910 , - 4403 , - 5084 , - 5953 , - 994 , - 2239 , - 3672 , - 5293 , - 1086 , - 3083 , - 5268 , - 1625 , - 4186 , - 919 , - 3856 , - 965 , - 4278 , - 1763 , - 5452 , - 3313 , - 1362 , - 5615 , - 4040 , - 2653 , - 1454 , - 443 , - 5636 , - 5001 , - 4554 , - 4295 , - 4224 , - 4341 , - 4646 , - 5139 , - 5820 , - 673 , - 1730 , - 2975 , - 4408 , - 13 , - 1822 , - 3819 , - 6004 , - 2361 , - 4922 , - 1655 , - 4592 , - 1701 , - 5014 , - 2499 , - 172 , - 4049 , - 2098 , - 335 , - 4776 , - 3389 , - 2190 , - 1179 , - 356 , - 5737 , - 5290 , - 5031 , - 4960 , - 5077 , - 5382 , - 5875 , - 540 , - 1409 , - 2466 , - 3711 , - 5144 , - 749 , - 2558 , - 4555 , - 724 , - 3097 , - 5658 , - 2391 , - 5328 , - 2437 , - 5750 , - 3235 , - 908 , - 4785 , - 2834 , - 1071 , - 5512 , - 4125 , - 2926 , - 1915 , - 1092 , - 457 , - 10 , - 5767 , - 5696 , - 5813 , - 102 , - 595 , - 1276 , - 2145 , - 3202 , - 4447 , - 5880 , - 1485 , - 3294 , - 5291 , - 1460 , - 3833 , - 378 , - 3127 , - 48 , - 3173 , - 470 , - 3971 , - 1644 , - 5521 , - 3570 , - 1807 , - 232 , - 4861 , - 3662 , - 2651 , - 1828 , - 1193 , - 746 , - 487 , - 416 , - 533 , - 838 , - 1331 , - 2012 , - 2881 , - 3938 , - 5183 , - 600 , - 2221 , - 4030 , - 11 , - 2196 , - 4569 , - 1114 , - 3863 , - 784 , - 3909 , - 1206 , - 4707 , - 2380 , - 241 , - 4306 , - 2543 , - 968 , - 5597 , - 4398 , - 3387 , - 2564 , - 1929 , - 1482 , - 1223 , - 1152 , - 1269 , - 1574 , - 2067 , - 2748 , - 3617 , - 4674 , - 5919 , - 1336 , - 2957 , - 4766 , - 747 , - 2932 , - 5305 , - 1850 , - 4599 , - 1520 , - 4645 , - 1942 , - 5443 , - 3116 , - 977 , - 5042 , - 3279 , - 1704 , - 317 , - 5134 , - 4123 , - 3300 , - 2665 , - 2218 , - 1959 , - 1888 , - 2005 , - 2310 , - 2803 , - 3484 , - 4353 , - 5410 , - 639 , - 2072 , - 3693 , - 5502 , - 1483 , - 3668 , - 25 , - 2586 , - 5335 , - 2256 , - 5381 , - 2678 , - 163 , - 3852 , - 1713 , - 5778 , - 4015 , - 2440 , - 1053 , - 5870 , - 4859 , - 4036 , - 3401 , - 2954 , - 2695 , - 2624 , - 2741 , - 3046 , - 3539 , - 4220 , - 5089 , - 130 , - 1375 , - 2808 , - 4429 , - 222 , - 2219 , - 4404 , - 761 , - 3322 , - 55 , - 2992 , - 101 , - 3414 , - 899 , - 4588 , - 2449 , - 498 , - 4751 , - 3176 , - 1789 , - 590 , - 5595 , - 4772 , - 4137 , - 3690 , - 3431 , - 3360 , - 3477 , - 3782 , - 4275 , - 4956 , - 5825 , - 866 , - 2111 , - 3544 , - 5165 , - 958 , - 2955 , - 5140 , - 1497 , - 4058 , - 791 , - 3728 , - 837 , - 4150 , - 1635 , - 5324 , - 3185 , - 1234 , - 5487 , - 3912 , - 2525 , - 1326 , - 315 , - 5508 , - 4873 , - 4426 , - 4167 , - 4096 , - 4213 , - 4518 , - 5011 , - 5692 , - 545 , - 1602 , - 2847 , - 4280 , - 5901 , - 1694 , - 3691 , - 5876 , - 2233 , - 4794 , - 1527 , - 4464 , - 1573 , - 4886 , - 2371 , - 44 , - 3921 , - 1970 , - 207 , - 4648 , - 3261 , - 2062 , - 1051 , - 228 , - 5609 , - 5162 , - 4903 , - 4832 , - 4949 , - 5254 , - 5747 , - 412 , - 1281 , - 2338 , - 3583 , - 5016 , - 621 , - 2430 , - 4427 , - 596 , - 2969 , - 5530 , - 2263 , - 5200 , - 2309 , - 5622 , - 3107 , - 780 , - 4657 , - 2706 , - 943 , - 5384 , - 3997 , - 2798 , - 1787 , - 964 , - 329 , - 5898 , - 5639 , - 5568 , - 5685 , - 5990 , - 467 , - 1148 , - 2017 , - 3074 , - 4319 , - 5752 , - 1357 , - 3166 , - 5163 , - 1332 , - 3705 , - 250 , - 2999 , - 5936 , - 3045 , - 342 , - 3843 , - 1516 , - 5393 , - 3442 , - 1679 , - 104 , - 4733 , - 3534 , - 2523 , - 1700 , - 1065 , - 618 , - 359 , - 288 , - 405 , - 710 , - 1203 , - 1884 , - 2753 , - 3810 , - 5055 , - 472 , - 2093 , - 3902 , - 5899 , - 2068 , - 4441 , - 986 , - 3735 , - 656 , - 3781 , - 1078 , - 4579 , - 2252 , - 113 , - 4178 , - 2415 , - 840 , - 5469 , - 4270 , - 3259 , - 2436 , - 1801 , - 1354 , - 1095 , - 1024 , - 1141 , - 1446 , - 1939 , - 2620 , - 3489 , - 4546 , - 5791 , - 1208 , - 2829 , - 4638 , - 619 , - 2804 , - 5177 , - 1722 , - 4471 , - 1392 , - 4517 , - 1814 , - 5315 , - 2988 , - 849 , - 4914 , - 3151 , - 1576 , - 189 , - 5006 , - 3995 , - 3172 , - 2537 , - 2090 , - 1831 , - 1760 , - 1877 , - 2182 , - 2675 , - 3356 , - 4225 , - 5282 , - 511 , - 1944 , - 3565 , - 5374 , - 1355 , - 3540 , - 5913 , - 2458 , - 5207 , - 2128 , - 5253 , - 2550 , - 35 , - 3724 , - 1585 , - 5650 , - 3887 , - 2312 , - 925 , - 5742 , - 4731 , - 3908 , - 3273 , - 2826 , - 2567 , - 2496 , - 2613 , - 2918 , - 3411 , - 4092 , - 4961 , - 2 , - 1247 , - 2680 , - 4301 , - 94 , - 2091 , - 4276 , - 633 , - 3194 , - 5943 , - 2864 , - 5989 , - 3286 , - 771 , - 4460 , - 2321 , - 370 , - 4623 , - 3048 , - 1661 , - 462 , - 5467 , - 4644 , - 4009 , - 3562 , - 3303 , - 3232 , - 3349 , - 3654 , - 4147 , - 4828 , - 5697 , - 738 , - 1983 , - 3416 , - 5037 , - 830 , - 2827 , - 5012 , - 1369 , - 3930 , - 663 , - 3600 , - 709 , - 4022 , - 1507 , - 5196 , - 3057 , - 1106 , - 5359 , - 3784 , - 2397 , - 1198 , - 187 , - 5380 , - 4745 , - 4298 , - 4039 , - 3968 , - 4085 , - 4390 , - 4883 , - 5564 , - 417 , - 1474 , - 2719 , - 4152 , - 5773 , - 1566 , - 3563 , - 5748 , - 2105 , - 4666 , - 1399 , - 4336 , - 1445 , - 4758 , - 2243 , - 5932 , - 3793 , - 1842 , - 79 , - 4520 , - 3133 , - 1934 , - 923 , - 100 , - 5481 , - 5034 , - 4775 , - 4704 , - 4821 , - 5126 , - 5619 , - 284 , - 1153 , - 2210 , - 3455 , - 4888 , - 493 , - 2302 , - 4299 , - 468 , - 2841 , - 5402 , - 2135 , - 5072 , - 2181 , - 5494 , - 2979 , - 652 , - 4529 , - 2578 , - 815 , - 5256 , - 3869 , - 2670 , - 1659 , - 836 , - 201 , - 5770 , - 5511 , - 5440 , - 5557 , - 5862 , - 339 , - 1020 , - 1889 , - 2946 , - 4191 , - 5624 , - 1229 , - 3038 , - 5035 , - 1204 , - 3577 , - 122 , - 2871 , - 5808 , - 2917 , - 214 , - 3715 , - 1388 , - 5265 , - 3314 , - 1551 , - 5992 , - 4605 , - 3406 , - 2395 , - 1572 , - 937 , - 490 , - 231 , - 160 , - 277 , - 582 , - 1075 , - 1756 , - 2625 , - 3682 , - 4927 , - 344 , - 1965 , - 3774 , - 5771 , - 1940 , - 4313 , - 858 , - 3607 , - 528 , - 3653 , - 950 , - 4451 , - 2124 , - 6001 , - 4050 , - 2287 , - 712 , - 5341 , - 4142 , - 3131 , - 2308 , - 1673 , - 1226 , - 967 , - 896 , - 1013 , - 1318 , - 1811 , - 2492 , - 3361 , - 4418 , - 5663 , - 1080 , - 2701 , - 4510 , - 491 , - 2676 , - 5049 , - 1594 , - 4343 , - 1264 , - 4389 , - 1686 , - 5187 , - 2860 , - 721 , - 4786 , - 3023 , - 1448 , - 61 , - 4878 , - 3867 , - 3044 , - 2409 , - 1962 , - 1703 , - 1632 , - 1749 , - 2054 , - 2547 , - 3228 , - 4097 , - 5154 , - 383 , - 1816 , - 3437 , - 5246 , - 1227 , - 3412 , - 5785 , - 2330 , - 5079 , - 2000 , - 5125 , - 2422 , - 5923 , - 3596 , - 1457 , - 5522 , - 3759 , - 2184 , - 797 , - 5614 , - 4603 , - 3780 , - 3145 , - 2698 , - 2439 , - 2368 , - 2485 , - 2790 , - 3283 , - 3964 , - 4833 , - 5890 , - 1119 , - 2552 , - 4173 , - 5982 , - 1963 , - 4148 , - 505 , - 3066 , - 5815 , - 2736 , - 5861 , - 3158 , - 643 , - 4332 , - 2193 , - 242 , - 4495 , - 2920 , - 1533 , - 334 , - 5339 , - 4516 , - 3881 , - 3434 , - 3175 , - 3104 , - 3221 , - 3526 , - 4019 , - 4700 , - 5569 , - 610 , - 1855 , - 3288 , - 4909 , - 702 , - 2699 , - 4884 , - 1241 , - 3802 , - 535 , - 3472 , - 581 , - 3894 , - 1379 , - 5068 , - 2929 , - 978 , - 5231 , - 3656 , - 2269 , - 1070 , - 59 , - 5252 , - 4617 , - 4170 , - 3911 , - 3840 , - 3957 , - 4262 , - 4755 , - 5436 , - 289 , - 1346 , - 2591 , - 4024 , - 5645 , - 1438 , - 3435 , - 5620 , - 1977 , - 4538 , - 1271 , - 4208 , - 1317 , - 4630 , - 2115 , - 5804 , - 3665 , - 1714 , - 5967 , - 4392 , - 3005 , - 1806 , - 795 , - 5988 , - 5353 , - 4906 , - 4647 , - 4576 , - 4693 , - 4998 , - 5491 , - 156 , - 1025 , - 2082 , - 3327 , - 4760 , - 365 , - 2174 , - 4171 , - 340 , - 2713 , - 5274 , - 2007 , - 4944 , - 2053 , - 5366 , - 2851 , - 524 , - 4401 , - 2450 , - 687 , - 5128 , - 3741 , - 2542 , - 1531 , - 708 , - 73 , - 5642 , - 5383 , - 5312 , - 5429 , - 5734 , - 211 , - 892 , - 1761 , - 2818 , - 4063 , - 5496 , - 1101 , - 2910 , - 4907 , - 1076 , - 3449 , - 6010 , - 2743 , - 5680 , - 2789 , - 86 , - 3587 , - 1260 , - 5137 , - 3186 , - 1423 , - 5864 , - 4477 , - 3278 , - 2267 , - 1444 , - 809 , - 362 , - 103 , - 32 , - 149 , - 454 , - 947 , - 1628 , - 2497 , - 3554 , - 4799 , - 216 , - 1837 , - 3646 , - 5643 , - 1812 , - 4185 , - 730 , - 3479 , - 400 , - 3525 , - 822 , - 4323 , - 1996 , - 5873 , - 3922 , - 2159 , - 584 , - 5213 , - 4014 , - 3003 , - 2180 , - 1545 , - 1098 , - 839 , - 768 , - 885 , - 1190 , - 1683 , - 2364 , - 3233 , - 4290 , - 5535 , - 952 , - 2573 , - 4382 , - 363 , - 2548 , - 4921 , - 1466 , - 4215 , - 1136 , - 4261 , - 1558 , - 5059 , - 2732 , - 593 , - 4658 , - 2895 , - 1320 , - 5949 , - 4750 , - 3739 , - 2916 , - 2281 , - 1834 , - 1575 , - 1504 , - 1621 , - 1926 , - 2419 , - 3100 , - 3969 , - 5026 , - 255 , - 1688 , - 3309 , - 5118 , - 1099 , - 3284 , - 5657 , - 2202 , - 4951 , - 1872 , - 4997 , - 2294 , - 5795 , - 3468 , - 1329 , - 5394 , - 3631 , - 2056 , - 669 , - 5486 , - 4475 , - 3652 , - 3017 , - 2570 , - 2311 , - 2240 , - 2357 , - 2662 , - 3155 , - 3836 , - 4705 , - 5762 , - 991 , - 2424 , - 4045 , - 5854 , - 1835 , - 4020 , - 377 , - 2938 , - 5687 , - 2608 , - 5733 , - 3030 , - 515 , - 4204 , - 2065 , - 114 , - 4367 , - 2792 , - 1405 , - 206 , - 5211 , - 4388 , - 3753 , - 3306 , - 3047 , - 2976 , - 3093 , - 3398 , - 3891 , - 4572 , - 5441 , - 482 , - 1727 , - 3160 , - 4781 , - 574 , - 2571 , - 4756 , - 1113 , - 3674 , - 407 , - 3344 , - 453 , - 3766 , - 1251 , - 4940 , - 2801 , - 850 , - 5103 , - 3528 , - 2141 , - 942 , - 5947 , - 5124 , - 4489 , - 4042 , - 3783 , - 3712 , - 3829 , - 4134 , - 4627 , - 5308 , - 161 , - 1218 , - 2463 , - 3896 , - 5517 , - 1310 , - 3307 , - 5492 , - 1849 , - 4410 , - 1143 , - 4080 , - 1189 , - 4502 , - 1987 , - 5676 , - 3537 , - 1586 , - 5839 , - 4264 , - 2877 , - 1678 , - 667 , - 5860 , - 5225 , - 4778 , - 4519 , - 4448 , - 4565 , - 4870 , - 5363 , - 28 , - 897 , - 1954 , - 3199 , - 4632 , - 237 , - 2046 , - 4043 , - 212 , - 2585 , - 5146 , - 1879 , - 4816 , - 1925 , - 5238 , - 2723 , - 396 , - 4273 , - 2322 , - 559 , - 5000 , - 3613 , - 2414 , - 1403 , - 580 , - 5961 , - 5514 , - 5255 , - 5184 , - 5301 , - 5606 , - 83 , - 764 , - 1633 , - 2690 , - 3935 , - 5368 , - 973 , - 2782 , - 4779 , - 948 , - 3321 , - 5882 , - 2615 , - 5552 , - 2661 , - 5974 , - 3459 , - 1132 , - 5009 , - 3058 , - 1295 , - 5736 , - 4349 , - 3150 , - 2139 , - 1316 , - 681 , - 234 , - 5991 , - 5920 , - 21 , - 326 , - 819 , - 1500 , - 2369 , - 3426 , - 4671 , - 88 , - 1709 , - 3518 , - 5515 , - 1684 , - 4057 , - 602 , - 3351 , - 272 , - 3397 , - 694 , - 4195 , - 1868 , - 5745 , - 3794 , - 2031 , - 456 , - 5085 , - 3886 , - 2875 , - 2052 , - 1417 , - 970 , - 711 , - 640 , - 757 , - 1062 , - 1555 , - 2236 , - 3105 , - 4162 , - 5407 , - 824 , - 2445 , - 4254 , - 235 , - 2420 , - 4793 , - 1338 , - 4087 , - 1008 , - 4133 , - 1430 , - 4931 , - 2604 , - 465 , - 4530 , - 2767 , - 1192 , - 5821 , - 4622 , - 3611 , - 2788 , - 2153 , - 1706 , - 1447 , - 1376 , - 1493 , - 1798 , - 2291 , - 2972 , - 3841 , - 4898 , - 127 , - 1560 , - 3181 , - 4990 , - 971 , - 3156 , - 5529 , - 2074 , - 4823 , - 1744 , - 4869 , - 2166 , - 5667 , - 3340 , - 1201 , - 5266 , - 3503 , - 1928 , - 541 , - 5358 , - 4347 , - 3524 , - 2889 , - 2442 , - 2183 , - 2112 , - 2229 , - 2534 , - 3027 , - 3708 , - 4577 , - 5634 , - 863 , - 2296 , - 3917 , - 5726 , - 1707 , - 3892 , - 249 , - 2810 , - 5559 , - 2480 , - 5605 , - 2902 , - 387 , - 4076 , - 1937 , - 6002 , - 4239 , - 2664 , - 1277 , - 78 , - 5083 , - 4260 , - 3625 , - 3178 , - 2919 , - 2848 , - 2965 , - 3270 , - 3763 , - 4444 , - 5313 , - 354 , - 1599 , - 3032 , - 4653 , - 446 , - 2443 , - 4628 , - 985 , - 3546 , - 279 , - 3216 , - 325 , - 3638 , - 1123 , - 4812 , - 2673 , - 722 , - 4975 , - 3400 , - 2013 , - 814 , - 5819 , - 4996 , - 4361 , - 3914 , - 3655 , - 3584 , - 3701 , - 4006 , - 4499 , - 5180 , - 33 , - 1090 , - 2335 , - 3768 , - 5389 , - 1182 , - 3179 , - 5364 , - 1721 , - 4282 , - 1015 , - 3952 , - 1061 , - 4374 , - 1859 , - 5548 , - 3409 , - 1458 , - 5711 , - 4136 , - 2749 , - 1550 , - 539 , - 5732 , - 5097 , - 4650 , - 4391 , - 4320 , - 4437 , - 4742 , - 5235 , - 5916 , - 769 , - 1826 , - 3071 , - 4504 , - 109 , - 1918 , - 3915 , - 84 , - 2457 , - 5018 , - 1751 , - 4688 , - 1797 , - 5110 , - 2595 , - 268 , - 4145 , - 2194 , - 431 , - 4872 , - 3485 , - 2286 , - 1275 , - 452 , - 5833 , - 5386 , - 5127 , - 5056 , - 5173 , - 5478 , - 5971 , - 636 , - 1505 , - 2562 , - 3807 , - 5240 , - 845 , - 2654 , - 4651 , - 820 , - 3193 , - 5754 , - 2487 , - 5424 , - 2533 , - 5846 , - 3331 , - 1004 , - 4881 , - 2930 , - 1167 , - 5608 , - 4221 , - 3022 , - 2011 , - 1188 , - 553 , - 106 , - 5863 , - 5792 , - 5909 , - 198 , - 691 , - 1372 , - 2241 , - 3298 , - 4543 , - 5976 , - 1581 , - 3390 , - 5387 , - 1556 , - 3929 , - 474 , - 3223 , - 144 , - 3269 , - 566 , - 4067 , - 1740 , - 5617 , - 3666 , - 1903 , - 328 , - 4957 , - 3758 , - 2747 , - 1924 , - 1289 , - 842 , - 583 , - 512 , - 629 , - 934 , - 1427 , - 2108 , - 2977 , - 4034 , - 5279 , - 696 , - 2317 , - 4126 , - 107 , - 2292 , - 4665 , - 1210 , - 3959 , - 880 , - 4005 , - 1302 , - 4803 , - 2476 , - 337 , - 4402 , - 2639 , - 1064 , - 5693 , - 4494 , - 3483 , - 2660 , - 2025 , - 1578 , - 1319 , - 1248 , - 1365 , - 1670 , - 2163 , - 2844 , - 3713 , - 4770 , - 6015 , - 1432 , - 3053 , - 4862 , - 843 , - 3028 , - 5401 , - 1946 , - 4695 , - 1616 , - 4741 , - 2038 , - 5539 , - 3212 , - 1073 , - 5138 , - 3375 , - 1800 , - 413 , - 5230 , - 4219 , - 3396 , - 2761 , - 2314 , - 2055 , - 1984 , - 2101 , - 2406 , - 2899 , - 3580 , - 4449 , - 5506 , - 735 , - 2168 , - 3789 , - 5598 , - 1579 , - 3764 , - 121 , - 2682 , - 5431 , - 2352 , - 5477 , - 2774 , - 259 , - 3948 , - 1809 , - 5874 , - 4111 , - 2536 , - 1149 , - 5966 , - 4955 , - 4132 , - 3497 , - 3050 , - 2791 , - 2720 , - 2837 , - 3142 , - 3635 , - 4316 , - 5185 , - 226 , - 1471 , - 2904 , - 4525 , - 318 , - 2315 , - 4500 , - 857 , - 3418 , - 151 , - 3088 , - 197 , - 3510 , - 995 , - 4684 , - 2545 , - 594 , - 4847 , - 3272 , - 1885 , - 686 , - 5691 , - 4868 , - 4233 , - 3786 , - 3527 , - 3456 , - 3573 , - 3878 , - 4371 , - 5052 , - 5921 , - 962 , - 2207 , - 3640 , - 5261 , - 1054 , - 3051 , - 5236 , - 1593 , - 4154 , - 887 , - 3824 , - 933 , - 4246 , - 1731 , - 5420 , - 3281 , - 1330 , - 5583 , - 4008 , - 2621 , - 1422 , - 411 , - 5604 , - 4969 , - 4522 , - 4263 , - 4192 , - 4309 , - 4614 , - 5107 , - 5788 , - 641 , - 1698 , - 2943 , - 4376 , - 5997 , - 1790 , - 3787 , - 5972 , - 2329 , - 4890 , - 1623 , - 4560 , - 1669 , - 4982 , - 2467 , - 140 , - 4017 , - 2066 , - 303 , - 4744 , - 3357 , - 2158 , - 1147 , - 324 , - 5705 , - 5258 , - 4999 , - 4928 , - 5045 , - 5350 , - 5843 , - 508 , - 1377 , - 2434 , - 3679 , - 5112 , - 717 , - 2526 , - 4523 , - 692 , - 3065 , - 5626 , - 2359 , - 5296 , - 2405 , - 5718 , - 3203 , - 876 , - 4753 , - 2802 , - 1039 , - 5480 , - 4093 , - 2894 , - 1883 , - 1060 , - 425 , - 5994 , - 5735 , - 5664 , - 5781 , - 70 , - 563 , - 1244 , - 2113 , - 3170 , - 4415 , - 5848 , - 1453 , - 3262 , - 5259 , - 1428 , - 3801 , - 346 , - 3095 , - 16 , - 3141 , - 438 , - 3939 , - 1612 , - 5489 , - 3538 , - 1775 , - 200 , - 4829 , - 3630 , - 2619 , - 1796 , - 1161 , - 714 , - 455 , - 384 , - 501 , - 806 , - 1299 , - 1980 , - 2849 , - 3906 , - 5151 , - 568 , - 2189 , - 3998 , - 5995 , - 2164 , - 4537 , - 1082 , - 3831 , - 752 , - 3877 , - 1174 , - 4675 , - 2348 , - 209 , - 4274 , - 2511 , - 936 , - 5565 , - 4366 , - 3355 , - 2532 , - 1897 , - 1450 , - 1191 , - 1120 , - 1237 , - 1542 , - 2035 , - 2716 , - 3585 , - 4642 , - 5887 , - 1304 , - 2925 , - 4734 , - 715 , - 2900 , - 5273 , - 1818 , - 4567 , - 1488 , - 4613 , - 1910 , - 5411 , - 3084 , - 945 , - 5010 , - 3247 , - 1672 , - 285 , - 5102 , - 4091 , - 3268 , - 2633 , - 2186 , - 1927 , - 1856 , - 1973 , - 2278 , - 2771 , - 3452 , - 4321 , - 5378 , - 607 , - 2040 , - 3661 , - 5470 , - 1451 , - 3636 , - 6009 , - 2554 , - 5303 , - 2224 , - 5349 , - 2646 , - 131 , - 3820 , - 1681 , - 5746 , - 3983 , - 2408 , - 1021 , - 5838 , - 4827 , - 4004 , - 3369 , - 2922 , - 2663 , - 2592 , - 2709 , - 3014 , - 3507 , - 4188 , - 5057 , - 98 , - 1343 , - 2776 , - 4397 , - 190 , - 2187 , - 4372 , - 729 , - 3290 , - 23 , - 2960 , - 69 , - 3382 , - 867 , - 4556 , - 2417 , - 466 , - 4719 , - 3144 , - 1757 , - 558 , - 5563 , - 4740 , - 4105 , - 3658 , - 3399 , - 3328 , - 3445 , - 3750 , - 4243 , - 4924 , - 5793 , - 834 , - 2079 , - 3512 , - 5133 , - 926 , - 2923 , - 5108 , - 1465 , - 4026 , - 759 , - 3696 , - 805 , - 4118 , - 1603 , - 5292 , - 3153 , - 1202 , - 5455 , - 3880 , - 2493 , - 1294 , - 283 , - 5476 , - 4841 , - 4394 , - 4135 , - 4064 , - 4181 , - 4486 , - 4979 , - 5660 , - 513 , - 1570 , - 2815 , - 4248 , - 5869 , - 1662 , - 3659 , - 5844 , - 2201 , - 4762 , - 1495 , - 4432 , - 1541 , - 4854 , - 2339 , - 12 , - 3889 , - 1938 , - 175 , - 4616 , - 3229 , - 2030 , - 1019 , - 196 , - 5577 , - 5130 , - 4871 , - 4800 , - 4917 , - 5222 , - 5715 , - 380 , - 1249 , - 2306 , - 3551 , - 4984 , - 589 , - 2398 , - 4395 , - 564 , - 2937 , - 5498 , - 2231 , - 5168 , - 2277 , - 5590 , - 3075 , - 748 , - 4625 , - 2674 , - 911 , - 5352 , - 3965 , - 2766 , - 1755 , - 932 , - 297 , - 5866 , - 5607 , - 5536 , - 5653 , - 5958 , - 435 , - 1116 , - 1985 , - 3042 , - 4287 , - 5720 , - 1325 , - 3134 , - 5131 , - 1300 , - 3673 , - 218 , - 2967 , - 5904 , - 3013 , - 310 , - 3811 , - 1484 , - 5361 , - 3410 , - 1647 , - 72 , - 4701 , - 3502 , - 2491 , - 1668 , - 1033 , - 586 , - 327 , - 256 , - 373 , - 678 , - 1171 , - 1852 , - 2721 , - 3778 , - 5023 , - 440 , - 2061 , - 3870 , - 5867 , - 2036 , - 4409 , - 954 , - 3703 , - 624 , - 3749 , - 1046 , - 4547 , - 2220 , - 81 , - 4146 , - 2383 , - 808 , - 5437 , - 4238 , - 3227 , - 2404 , - 1769 , - 1322 , - 1063 , - 992 , - 1109 , - 1414 , - 1907 , - 2588 , - 3457 , - 4514 , - 5759 , - 1176 , - 2797 , - 4606 , - 587 , - 2772 , - 5145 , - 1690 , - 4439 , - 1360 , - 4485 , - 1782 , - 5283 , - 2956 , - 817 , - 4882 , - 3119 , - 1544 , - 157 , - 4974 , - 3963 , - 3140 , - 2505 , - 2058 , - 1799 , - 1728 , - 1845 , - 2150 , - 2643 , - 3324 , - 4193 , - 5250 , - 479 , - 1912 , - 3533 , - 5342 , - 1323 , - 3508 , - 5881 , - 2426 , - 5175 , - 2096 , - 5221 , - 2518 , - 3 , - 3692 , - 1553 , - 5618 , - 3855 , - 2280 , - 893 , - 5710 , - 4699 , - 3876 , - 3241 , - 2794 , - 2535 , - 2464 , - 2581 , - 2886 , - 3379 , - 4060 , - 4929 , - 5986 , - 1215 , - 2648 , - 4269 , - 62 , - 2059 , - 4244 , - 601 , - 3162 , - 5911 , - 2832 , - 5957 , - 3254 , - 739 , - 4428 , - 2289 , - 338 , - 4591 , - 3016 , - 1629 , - 430 , - 5435 , - 4612 , - 3977 , - 3530 , - 3271 , - 3200 , - 3317 , - 3622 , - 4115 , - 4796 , - 5665 , - 706 , - 1951 , - 3384 , - 5005 , - 798 , - 2795 , - 4980 , - 1337 , - 3898 , - 631 , - 3568 , - 677 , - 3990 , - 1475 , - 5164 , - 3025 , - 1074 , - 5327 , - 3752 , - 2365 , - 1166 , - 155 , - 5348 , - 4713 , - 4266 , - 4007 , - 3936 , - 4053 , - 4358 , - 4851 , - 5532 , - 385 , - 1442 , - 2687 , - 4120 , - 5741 , - 1534 , - 3531 , - 5716 , - 2073 , - 4634 , - 1367 , - 4304 , - 1413 , - 4726 , - 2211 , - 5900 , - 3761 , - 1810 , - 47 , - 4488 , - 3101 , - 1902 , - 891 , - 68 , - 5449 , - 5002 , - 4743 , - 4672 , - 4789 , - 5094 , - 5587 , - 252 , - 1121 , - 2178 , - 3423 , - 4856 , - 461 , - 2270 , - 4267 , - 436 , - 2809 , - 5370 , - 2103 , - 5040 , - 2149 , - 5462 , - 2947 , - 620 , - 4497 , - 2546 , - 783 , - 5224 , - 3837 , - 2638 , - 1627 , - 804 , - 169 , - 5738 , - 5479 , - 5408 , - 5525 , - 5830 , - 307 , - 988 , - 1857 , - 2914 , - 4159 , - 5592 , - 1197 , - 3006 , - 5003 , - 1172 , - 3545 , - 90 , - 2839 , - 5776 , - 2885 , - 182 , - 3683 , - 1356 , - 5233 , - 3282 , - 1519 , - 5960 , - 4573 , - 3374 , - 2363 , - 1540 , - 905 , - 458 , - 199 , - 128 , - 245 , - 550 , - 1043 , - 1724 , - 2593 , - 3650 , - 4895 , - 312 , - 1933 , - 3742 , - 5739 , - 1908 , - 4281 , - 826 , - 3575 , - 496 , - 3621 , - 918 , - 4419 , - 2092 , - 5969 , - 4018 , - 2255 , - 680 , - 5309 , - 4110 , - 3099 , - 2276 , - 1641 , - 1194 , - 935 , - 864 , - 981 , - 1286 , - 1779 , - 2460 , - 3329 , - 4386 , - 5631 , - 1048 , - 2669 , - 4478 , - 459 , - 2644 , - 5017 , - 1562 , - 4311 , - 1232 , - 4357 , - 1654 , - 5155 , - 2828 , - 689 , - 4754 , - 2991 , - 1416 , - 29 , - 4846 , - 3835 , - 3012 , - 2377 , - 1930 , - 1671 , - 1600 , - 1717 , - 2022 , - 2515 , - 3196 , - 4065 , - 5122 , - 351 , - 1784 , - 3405 , - 5214 , - 1195 , - 3380 , - 5753 , - 2298 , - 5047 , - 1968 , - 5093 , - 2390 , - 5891 , - 3564 , - 1425 , - 5490 , - 3727 , - 2152 , - 765 , - 5582 , - 4571 , - 3748 , - 3113 , - 2666 , - 2407 , - 2336 , - 2453 , - 2758 , - 3251 , - 3932 , - 4801 , - 5858 , - 1087 , - 2520 , - 4141 , - 5950 , - 1931 , - 4116 , - 473 , - 3034 , - 5783 , - 2704 , - 5829 , - 3126 , - 611 , - 4300 , - 2161 , - 210 , - 4463 , - 2888 , - 1501 , - 302 , - 5307 , - 4484 , - 3849 , - 3402 , - 3143 , - 3072 , - 3189 , - 3494 , - 3987 , - 4668 , - 5537 , - 578 , - 1823 , - 3256 , - 4877 , - 670 , - 2667 , - 4852 , - 1209 , - 3770 , - 503 , - 3440 , - 549 , - 3862 , - 1347 , - 5036 , - 2897 , - 946 , - 5199 , - 3624 , - 2237 , - 1038 , - 27 , - 5220 , - 4585 , - 4138 , - 3879 , - 3808 , - 3925 , - 4230 , - 4723 , - 5404 , - 257 , - 1314 , - 2559 , - 3992 , - 5613 , - 1406 , - 3403 , - 5588 , - 1945 , - 4506 , - 1239 , - 4176 , - 1285 , - 4598 , - 2083 , - 5772 , - 3633 , - 1682 , - 5935 , - 4360 , - 2973 , - 1774 , - 763 , - 5956 , - 5321 , - 4874 , - 4615 , - 4544 , - 4661 , - 4966 , - 5459 , - 124 , - 993 , - 2050 , - 3295 , - 4728 , - 333 , - 2142 , - 4139 , - 308 , - 2681 , - 5242 , - 1975 , - 4912 , - 2021 , - 5334 , - 2819 , - 492 , - 4369 , - 2418 , - 655 , - 5096 , - 3709 , - 2510 , - 1499 , - 676 , - 41 , - 5610 , - 5351 , - 5280 , - 5397 , - 5702 , - 179 , - 860 , - 1729 , - 2786 , - 4031 , - 5464 , - 1069 , - 2878 , - 4875 , - 1044 , - 3417 , - 5978 , - 2711 , - 5648 , - 2757 , - 54 , - 3555 , - 1228 , - 5105 , - 3154 , - 1391 , - 5832 , - 4445 , - 3246 , - 2235 , - 1412 , - 777 , - 330 , - 71 , - 0 , - 237 , - 854 , - 1851 , - 3228 , - 4985 , - 1042 , - 3559 , - 376 , - 3653 , - 1230 , - 5267 , - 3604 , - 2321 , - 1418 , - 895 , - 752 , - 989 , - 1606 , - 2603 , - 3980 , - 5737 , - 1794 , - 4311 , - 1128 , - 4405 , - 1982 , - 6019 , - 4356 , - 3073 , - 2170 , - 1647 , - 1504 , - 1741 , - 2358 , - 3355 , - 4732 , - 409 , - 2546 , - 5063 , - 1880 , - 5157 , - 2734 , - 691 , - 5108 , - 3825 , - 2922 , - 2399 , - 2256 , - 2493 , - 3110 , - 4107 , - 5484 , - 1161 , - 3298 , - 5815 , - 2632 , - 5909 , - 3486 , - 1443 , - 5860 , - 4577 , - 3674 , - 3151 , - 3008 , - 3245 , - 3862 , - 4859 , - 156 , - 1913 , - 4050 , - 487 , - 3384 , - 581 , - 4238 , - 2195 , - 532 , - 5329 , - 4426 , - 3903 , - 3760 , - 3997 , - 4614 , - 5611 , - 908 , - 2665 , - 4802 , - 1239 , - 4136 , - 1333 , - 4990 , - 2947 , - 1284 , - 1 , - 5178 , - 4655 , - 4512 , - 4749 , - 5366 , - 283 , - 1660 , - 3417 , - 5554 , - 1991 , - 4888 , - 2085 , - 5742 , - 3699 , - 2036 , - 753 , - 5930 , - 5407 , - 5264 , - 5501 , - 38 , - 1035 , - 2412 , - 4169 , - 226 , - 2743 , - 5640 , - 2837 , - 414 , - 4451 , - 2788 , - 1505 , - 602 , - 79 , - 6016 , - 173 , - 790 , - 1787 , - 3164 , - 4921 , - 978 , - 3495 , - 312 , - 3589 , - 1166 , - 5203 , - 3540 , - 2257 , - 1354 , - 831 , - 688 , - 925 , - 1542 , - 2539 , - 3916 , - 5673 , - 1730 , - 4247 , - 1064 , - 4341 , - 1918 , - 5955 , - 4292 , - 3009 , - 2106 , - 1583 , - 1440 , - 1677 , - 2294 , - 3291 , - 4668 , - 345 , - 2482 , - 4999 , - 1816 , - 5093 , - 2670 , - 627 , - 5044 , - 3761 , - 2858 , - 2335 , - 2192 , - 2429 , - 3046 , - 4043 , - 5420 , - 1097 , - 3234 , - 5751 , - 2568 , - 5845 , - 3422 , - 1379 , - 5796 , - 4513 , - 3610 , - 3087 , - 2944 , - 3181 , - 3798 , - 4795 , - 92 , - 1849 , - 3986 , - 423 , - 3320 , - 517 , - 4174 , - 2131 , - 468 , - 5265 , - 4362 , - 3839 , - 3696 , - 3933 , - 4550 , - 5547 , - 844 , - 2601 , - 4738 , - 1175 , - 4072 , - 1269 , - 4926 , - 2883 , - 1220 , - 6017 , - 5114 , - 4591 , - 4448 , - 4685 , - 5302 , - 219 , - 1596 , - 3353 , - 5490 , - 1927 , - 4824 , - 2021 , - 5678 , - 3635 , - 1972 , - 689 , - 5866 , - 5343 , - 5200 , - 5437 , - 6054 , - 971 , - 2348 , - 4105 , - 162 , - 2679 , - 5576 , - 2773 , - 350 , - 4387 , - 2724 , - 1441 , - 538 , - 15 , - 5952 , - 109 , - 726 , - 1723 , - 3100 , - 4857 , - 914 , - 3431 , - 248 , - 3525 , - 1102 , - 5139 , - 3476 , - 2193 , - 1290 , - 767 , - 624 , - 861 , - 1478 , - 2475 , - 3852 , - 5609 , - 1666 , - 4183 , - 1000 , - 4277 , - 1854 , - 5891 , - 4228 , - 2945 , - 2042 , - 1519 , - 1376 , - 1613 , - 2230 , - 3227 , - 4604 , - 281 , - 2418 , - 4935 , - 1752 , - 5029 , - 2606 , - 563 , - 4980 , - 3697 , - 2794 , - 2271 , - 2128 , - 2365 , - 2982 , - 3979 , - 5356 , - 1033 , - 3170 , - 5687 , - 2504 , - 5781 , - 3358 , - 1315 , - 5732 , - 4449 , - 3546 , - 3023 , - 2880 , - 3117 , - 3734 , - 4731 , - 28 , - 1785 , - 3922 , - 359 , - 3256 , - 453 , - 4110 , - 2067 , - 404 , - 5201 , - 4298 , - 3775 , - 3632 , - 3869 , - 4486 , - 5483 , - 780 , - 2537 , - 4674 , - 1111 , - 4008 , - 1205 , - 4862 , - 2819 , - 1156 , - 5953 , - 5050 , - 4527 , - 4384 , - 4621 , - 5238 , - 155 , - 1532 , - 3289 , - 5426 , - 1863 , - 4760 , - 1957 , - 5614 , - 3571 , - 1908 , - 625 , - 5802 , - 5279 , - 5136 , - 5373 , - 5990 , - 907 , - 2284 , - 4041 , - 98 , - 2615 , - 5512 , - 2709 , - 286 , - 4323 , - 2660 , - 1377 , - 474 , - 6031 , - 5888 , - 45 , - 662 , - 1659 , - 3036 , - 4793 , - 850 , - 3367 , - 184 , - 3461 , - 1038 , - 5075 , - 3412 , - 2129 , - 1226 , - 703 , - 560 , - 797 , - 1414 , - 2411 , - 3788 , - 5545 , - 1602 , - 4119 , - 936 , - 4213 , - 1790 , - 5827 , - 4164 , - 2881 , - 1978 , - 1455 , - 1312 , - 1549 , - 2166 , - 3163 , - 4540 , - 217 , - 2354 , - 4871 , - 1688 , - 4965 , - 2542 , - 499 , - 4916 , - 3633 , - 2730 , - 2207 , - 2064 , - 2301 , - 2918 , - 3915 , - 5292 , - 969 , - 3106 , - 5623 , - 2440 , - 5717 , - 3294 , - 1251 , - 5668 , - 4385 , - 3482 , - 2959 , - 2816 , - 3053 , - 3670 , - 4667 , - 6044 , - 1721 , - 3858 , - 295 , - 3192 , - 389 , - 4046 , - 2003 , - 340 , - 5137 , - 4234 , - 3711 , - 3568 , - 3805 , - 4422 , - 5419 , - 716 , - 2473 , - 4610 , - 1047 , - 3944 , - 1141 , - 4798 , - 2755 , - 1092 , - 5889 , - 4986 , - 4463 , - 4320 , - 4557 , - 5174 , - 91 , - 1468 , - 3225 , - 5362 , - 1799 , - 4696 , - 1893 , - 5550 , - 3507 , - 1844 , - 561 , - 5738 , - 5215 , - 5072 , - 5309 , - 5926 , - 843 , - 2220 , - 3977 , - 34 , - 2551 , - 5448 , - 2645 , - 222 , - 4259 , - 2596 , - 1313 , - 410 , - 5967 , - 5824 , - 6061 , - 598 , - 1595 , - 2972 , - 4729 , - 786 , - 3303 , - 120 , - 3397 , - 974 , - 5011 , - 3348 , - 2065 , - 1162 , - 639 , - 496 , - 733 , - 1350 , - 2347 , - 3724 , - 5481 , - 1538 , - 4055 , - 872 , - 4149 , - 1726 , - 5763 , - 4100 , - 2817 , - 1914 , - 1391 , - 1248 , - 1485 , - 2102 , - 3099 , - 4476 , - 153 , - 2290 , - 4807 , - 1624 , - 4901 , - 2478 , - 435 , - 4852 , - 3569 , - 2666 , - 2143 , - 2000 , - 2237 , - 2854 , - 3851 , - 5228 , - 905 , - 3042 , - 5559 , - 2376 , - 5653 , - 3230 , - 1187 , - 5604 , - 4321 , - 3418 , - 2895 , - 2752 , - 2989 , - 3606 , - 4603 , - 5980 , - 1657 , - 3794 , - 231 , - 3128 , - 325 , - 3982 , - 1939 , - 276 , - 5073 , - 4170 , - 3647 , - 3504 , - 3741 , - 4358 , - 5355 , - 652 , - 2409 , - 4546 , - 983 , - 3880 , - 1077 , - 4734 , - 2691 , - 1028 , - 5825 , - 4922 , - 4399 , - 4256 , - 4493 , - 5110 , - 27 , - 1404 , - 3161 , - 5298 , - 1735 , - 4632 , - 1829 , - 5486 , - 3443 , - 1780 , - 497 , - 5674 , - 5151 , - 5008 , - 5245 , - 5862 , - 779 , - 2156 , - 3913 , - 6050 , - 2487 , - 5384 , - 2581 , - 158 , - 4195 , - 2532 , - 1249 , - 346 , - 5903 , - 5760 , - 5997 , - 534 , - 1531 , - 2908 , - 4665 , - 722 , - 3239 , - 56 , - 3333 , - 910 , - 4947 , - 3284 , - 2001 , - 1098 , - 575 , - 432 , - 669 , - 1286 , - 2283 , - 3660 , - 5417 , - 1474 , - 3991 , - 808 , - 4085 , - 1662 , - 5699 , - 4036 , - 2753 , - 1850 , - 1327 , - 1184 , - 1421 , - 2038 , - 3035 , - 4412 , - 89 , - 2226 , - 4743 , - 1560 , - 4837 , - 2414 , - 371 , - 4788 , - 3505 , - 2602 , - 2079 , - 1936 , - 2173 , - 2790 , - 3787 , - 5164 , - 841 , - 2978 , - 5495 , - 2312 , - 5589 , - 3166 , - 1123 , - 5540 , - 4257 , - 3354 , - 2831 , - 2688 , - 2925 , - 3542 , - 4539 , - 5916 , - 1593 , - 3730 , - 167 , - 3064 , - 261 , - 3918 , - 1875 , - 212 , - 5009 , - 4106 , - 3583 , - 3440 , - 3677 , - 4294 , - 5291 , - 588 , - 2345 , - 4482 , - 919 , - 3816 , - 1013 , - 4670 , - 2627 , - 964 , - 5761 , - 4858 , - 4335 , - 4192 , - 4429 , - 5046 , - 6043 , - 1340 , - 3097 , - 5234 , - 1671 , - 4568 , - 1765 , - 5422 , - 3379 , - 1716 , - 433 , - 5610 , - 5087 , - 4944 , - 5181 , - 5798 , - 715 , - 2092 , - 3849 , - 5986 , - 2423 , - 5320 , - 2517 , - 94 , - 4131 , - 2468 , - 1185 , - 282 , - 5839 , - 5696 , - 5933 , - 470 , - 1467 , - 2844 , - 4601 , - 658 , - 3175 , - 6072 , - 3269 , - 846 , - 4883 , - 3220 , - 1937 , - 1034 , - 511 , - 368 , - 605 , - 1222 , - 2219 , - 3596 , - 5353 , - 1410 , - 3927 , - 744 , - 4021 , - 1598 , - 5635 , - 3972 , - 2689 , - 1786 , - 1263 , - 1120 , - 1357 , - 1974 , - 2971 , - 4348 , - 25 , - 2162 , - 4679 , - 1496 , - 4773 , - 2350 , - 307 , - 4724 , - 3441 , - 2538 , - 2015 , - 1872 , - 2109 , - 2726 , - 3723 , - 5100 , - 777 , - 2914 , - 5431 , - 2248 , - 5525 , - 3102 , - 1059 , - 5476 , - 4193 , - 3290 , - 2767 , - 2624 , - 2861 , - 3478 , - 4475 , - 5852 , - 1529 , - 3666 , - 103 , - 3000 , - 197 , - 3854 , - 1811 , - 148 , - 4945 , - 4042 , - 3519 , - 3376 , - 3613 , - 4230 , - 5227 , - 524 , - 2281 , - 4418 , - 855 , - 3752 , - 949 , - 4606 , - 2563 , - 900 , - 5697 , - 4794 , - 4271 , - 4128 , - 4365 , - 4982 , - 5979 , - 1276 , - 3033 , - 5170 , - 1607 , - 4504 , - 1701 , - 5358 , - 3315 , - 1652 , - 369 , - 5546 , - 5023 , - 4880 , - 5117 , - 5734 , - 651 , - 2028 , - 3785 , - 5922 , - 2359 , - 5256 , - 2453 , - 30 , - 4067 , - 2404 , - 1121 , - 218 , - 5775 , - 5632 , - 5869 , - 406 , - 1403 , - 2780 , - 4537 , - 594 , - 3111 , - 6008 , - 3205 , - 782 , - 4819 , - 3156 , - 1873 , - 970 , - 447 , - 304 , - 541 , - 1158 , - 2155 , - 3532 , - 5289 , - 1346 , - 3863 , - 680 , - 3957 , - 1534 , - 5571 , - 3908 , - 2625 , - 1722 , - 1199 , - 1056 , - 1293 , - 1910 , - 2907 , - 4284 , - 6041 , - 2098 , - 4615 , - 1432 , - 4709 , - 2286 , - 243 , - 4660 , - 3377 , - 2474 , - 1951 , - 1808 , - 2045 , - 2662 , - 3659 , - 5036 , - 713 , - 2850 , - 5367 , - 2184 , - 5461 , - 3038 , - 995 , - 5412 , - 4129 , - 3226 , - 2703 , - 2560 , - 2797 , - 3414 , - 4411 , - 5788 , - 1465 , - 3602 , - 39 , - 2936 , - 133 , - 3790 , - 1747 , - 84 , - 4881 , - 3978 , - 3455 , - 3312 , - 3549 , - 4166 , - 5163 , - 460 , - 2217 , - 4354 , - 791 , - 3688 , - 885 , - 4542 , - 2499 , - 836 , - 5633 , - 4730 , - 4207 , - 4064 , - 4301 , - 4918 , - 5915 , - 1212 , - 2969 , - 5106 , - 1543 , - 4440 , - 1637 , - 5294 , - 3251 , - 1588 , - 305 , - 5482 , - 4959 , - 4816 , - 5053 , - 5670 , - 587 , - 1964 , - 3721 , - 5858 , - 2295 , - 5192 , - 2389 , - 6046 , - 4003 , - 2340 , - 1057 , - 154 , - 5711 , - 5568 , - 5805 , - 342 , - 1339 , - 2716 , - 4473 , - 530 , - 3047 , - 5944 , - 3141 , - 718 , - 4755 , - 3092 , - 1809 , - 906 , - 383 , - 240 , - 477 , - 1094 , - 2091 , - 3468 , - 5225 , - 1282 , - 3799 , - 616 , - 3893 , - 1470 , - 5507 , - 3844 , - 2561 , - 1658 , - 1135 , - 992 , - 1229 , - 1846 , - 2843 , - 4220 , - 5977 , - 2034 , - 4551 , - 1368 , - 4645 , - 2222 , - 179 , - 4596 , - 3313 , - 2410 , - 1887 , - 1744 , - 1981 , - 2598 , - 3595 , - 4972 , - 649 , - 2786 , - 5303 , - 2120 , - 5397 , - 2974 , - 931 , - 5348 , - 4065 , - 3162 , - 2639 , - 2496 , - 2733 , - 3350 , - 4347 , - 5724 , - 1401 , - 3538 , - 6055 , - 2872 , - 69 , - 3726 , - 1683 , - 20 , - 4817 , - 3914 , - 3391 , - 3248 , - 3485 , - 4102 , - 5099 , - 396 , - 2153 , - 4290 , - 727 , - 3624 , - 821 , - 4478 , - 2435 , - 772 , - 5569 , - 4666 , - 4143 , - 4000 , - 4237 , - 4854 , - 5851 , - 1148 , - 2905 , - 5042 , - 1479 , - 4376 , - 1573 , - 5230 , - 3187 , - 1524 , - 241 , - 5418 , - 4895 , - 4752 , - 4989 , - 5606 , - 523 , - 1900 , - 3657 , - 5794 , - 2231 , - 5128 , - 2325 , - 5982 , - 3939 , - 2276 , - 993 , - 90 , - 5647 , - 5504 , - 5741 , - 278 , - 1275 , - 2652 , - 4409 , - 466 , - 2983 , - 5880 , - 3077 , - 654 , - 4691 , - 3028 , - 1745 , - 842 , - 319 , - 176 , - 413 , - 1030 , - 2027 , - 3404 , - 5161 , - 1218 , - 3735 , - 552 , - 3829 , - 1406 , - 5443 , - 3780 , - 2497 , - 1594 , - 1071 , - 928 , - 1165 , - 1782 , - 2779 , - 4156 , - 5913 , - 1970 , - 4487 , - 1304 , - 4581 , - 2158 , - 115 , - 4532 , - 3249 , - 2346 , - 1823 , - 1680 , - 1917 , - 2534 , - 3531 , - 4908 , - 585 , - 2722 , - 5239 , - 2056 , - 5333 , - 2910 , - 867 , - 5284 , - 4001 , - 3098 , - 2575 , - 2432 , - 2669 , - 3286 , - 4283 , - 5660 , - 1337 , - 3474 , - 5991 , - 2808 , - 5 , - 3662 , - 1619 , - 6036 , - 4753 , - 3850 , - 3327 , - 3184 , - 3421 , - 4038 , - 5035 , - 332 , - 2089 , - 4226 , - 663 , - 3560 , - 757 , - 4414 , - 2371 , - 708 , - 5505 , - 4602 , - 4079 , - 3936 , - 4173 , - 4790 , - 5787 , - 1084 , - 2841 , - 4978 , - 1415 , - 4312 , - 1509 , - 5166 , - 3123 , - 1460 , - 177 , - 5354 , - 4831 , - 4688 , - 4925 , - 5542 , - 459 , - 1836 , - 3593 , - 5730 , - 2167 , - 5064 , - 2261 , - 5918 , - 3875 , - 2212 , - 929 , - 26 , - 5583 , - 5440 , - 5677 , - 214 , - 1211 , - 2588 , - 4345 , - 402 , - 2919 , - 5816 , - 3013 , - 590 , - 4627 , - 2964 , - 1681 , - 778 , - 255 , - 112 , - 349 , - 966 , - 1963 , - 3340 , - 5097 , - 1154 , - 3671 , - 488 , - 3765 , - 1342 , - 5379 , - 3716 , - 2433 , - 1530 , - 1007 , - 864 , - 1101 , - 1718 , - 2715 , - 4092 , - 5849 , - 1906 , - 4423 , - 1240 , - 4517 , - 2094 , - 51 , - 4468 , - 3185 , - 2282 , - 1759 , - 1616 , - 1853 , - 2470 , - 3467 , - 4844 , - 521 , - 2658 , - 5175 , - 1992 , - 5269 , - 2846 , - 803 , - 5220 , - 3937 , - 3034 , - 2511 , - 2368 , - 2605 , - 3222 , - 4219 , - 5596 , - 1273 , - 3410 , - 5927 , - 2744 , - 6021 , - 3598 , - 1555 , - 5972 , - 4689 , - 3786 , - 3263 , - 3120 , - 3357 , - 3974 , - 4971 , - 268 , - 2025 , - 4162 , - 599 , - 3496 , - 693 , - 4350 , - 2307 , - 644 , - 5441 , - 4538 , - 4015 , - 3872 , - 4109 , - 4726 , - 5723 , - 1020 , - 2777 , - 4914 , - 1351 , - 4248 , - 1445 , - 5102 , - 3059 , - 1396 , - 113 , - 5290 , - 4767 , - 4624 , - 4861 , - 5478 , - 395 , - 1772 , - 3529 , - 5666 , - 2103 , - 5000 , - 2197 , - 5854 , - 3811 , - 2148 , - 865 , - 6042 , - 5519 , - 5376 , - 5613 , - 150 , - 1147 , - 2524 , - 4281 , - 338 , - 2855 , - 5752 , - 2949 , - 526 , - 4563 , - 2900 , - 1617 , - 714 , - 191 , - 48 , - 285 , - 902 , - 1899 , - 3276 , - 5033 , - 1090 , - 3607 , - 424 , - 3701 , - 1278 , - 5315 , - 3652 , - 2369 , - 1466 , - 943 , - 800 , - 1037 , - 1654 , - 2651 , - 4028 , - 5785 , - 1842 , - 4359 , - 1176 , - 4453 , - 2030 , - 6067 , - 4404 , - 3121 , - 2218 , - 1695 , - 1552 , - 1789 , - 2406 , - 3403 , - 4780 , - 457 , - 2594 , - 5111 , - 1928 , - 5205 , - 2782 , - 739 , - 5156 , - 3873 , - 2970 , - 2447 , - 2304 , - 2541 , - 3158 , - 4155 , - 5532 , - 1209 , - 3346 , - 5863 , - 2680 , - 5957 , - 3534 , - 1491 , - 5908 , - 4625 , - 3722 , - 3199 , - 3056 , - 3293 , - 3910 , - 4907 , - 204 , - 1961 , - 4098 , - 535 , - 3432 , - 629 , - 4286 , - 2243 , - 580 , - 5377 , - 4474 , - 3951 , - 3808 , - 4045 , - 4662 , - 5659 , - 956 , - 2713 , - 4850 , - 1287 , - 4184 , - 1381 , - 5038 , - 2995 , - 1332 , - 49 , - 5226 , - 4703 , - 4560 , - 4797 , - 5414 , - 331 , - 1708 , - 3465 , - 5602 , - 2039 , - 4936 , - 2133 , - 5790 , - 3747 , - 2084 , - 801 , - 5978 , - 5455 , - 5312 , - 5549 , - 86 , - 1083 , - 2460 , - 4217 , - 274 , - 2791 , - 5688 , - 2885 , - 462 , - 4499 , - 2836 , - 1553 , - 650 , - 127 , - 6064 , - 221 , - 838 , - 1835 , - 3212 , - 4969 , - 1026 , - 3543 , - 360 , - 3637 , - 1214 , - 5251 , - 3588 , - 2305 , - 1402 , - 879 , - 736 , - 973 , - 1590 , - 2587 , - 3964 , - 5721 , - 1778 , - 4295 , - 1112 , - 4389 , - 1966 , - 6003 , - 4340 , - 3057 , - 2154 , - 1631 , - 1488 , - 1725 , - 2342 , - 3339 , - 4716 , - 393 , - 2530 , - 5047 , - 1864 , - 5141 , - 2718 , - 675 , - 5092 , - 3809 , - 2906 , - 2383 , - 2240 , - 2477 , - 3094 , - 4091 , - 5468 , - 1145 , - 3282 , - 5799 , - 2616 , - 5893 , - 3470 , - 1427 , - 5844 , - 4561 , - 3658 , - 3135 , - 2992 , - 3229 , - 3846 , - 4843 , - 140 , - 1897 , - 4034 , - 471 , - 3368 , - 565 , - 4222 , - 2179 , - 516 , - 5313 , - 4410 , - 3887 , - 3744 , - 3981 , - 4598 , - 5595 , - 892 , - 2649 , - 4786 , - 1223 , - 4120 , - 1317 , - 4974 , - 2931 , - 1268 , - 6065 , - 5162 , - 4639 , - 4496 , - 4733 , - 5350 , - 267 , - 1644 , - 3401 , - 5538 , - 1975 , - 4872 , - 2069 , - 5726 , - 3683 , - 2020 , - 737 , - 5914 , - 5391 , - 5248 , - 5485 , - 22 , - 1019 , - 2396 , - 4153 , - 210 , - 2727 , - 5624 , - 2821 , - 398 , - 4435 , - 2772 , - 1489 , - 586 , - 63 , - 6000 , - 157 , - 774 , - 1771 , - 3148 , - 4905 , - 962 , - 3479 , - 296 , - 3573 , - 1150 , - 5187 , - 3524 , - 2241 , - 1338 , - 815 , - 672 , - 909 , - 1526 , - 2523 , - 3900 , - 5657 , - 1714 , - 4231 , - 1048 , - 4325 , - 1902 , - 5939 , - 4276 , - 2993 , - 2090 , - 1567 , - 1424 , - 1661 , - 2278 , - 3275 , - 4652 , - 329 , - 2466 , - 4983 , - 1800 , - 5077 , - 2654 , - 611 , - 5028 , - 3745 , - 2842 , - 2319 , - 2176 , - 2413 , - 3030 , - 4027 , - 5404 , - 1081 , - 3218 , - 5735 , - 2552 , - 5829 , - 3406 , - 1363 , - 5780 , - 4497 , - 3594 , - 3071 , - 2928 , - 3165 , - 3782 , - 4779 , - 76 , - 1833 , - 3970 , - 407 , - 3304 , - 501 , - 4158 , - 2115 , - 452 , - 5249 , - 4346 , - 3823 , - 3680 , - 3917 , - 4534 , - 5531 , - 828 , - 2585 , - 4722 , - 1159 , - 4056 , - 1253 , - 4910 , - 2867 , - 1204 , - 6001 , - 5098 , - 4575 , - 4432 , - 4669 , - 5286 , - 203 , - 1580 , - 3337 , - 5474 , - 1911 , - 4808 , - 2005 , - 5662 , - 3619 , - 1956 , - 673 , - 5850 , - 5327 , - 5184 , - 5421 , - 6038 , - 955 , - 2332 , - 4089 , - 146 , - 2663 , - 5560 , - 2757 , - 334 , - 4371 , - 2708 , - 1425 , - 522 , - 6079 , - 5936 , - 93 , - 710 , - 1707 , - 3084 , - 4841 , - 898 , - 3415 , - 232 , - 3509 , - 1086 , - 5123 , - 3460 , - 2177 , - 1274 , - 751 , - 608 , - 845 , - 1462 , - 2459 , - 3836 , - 5593 , - 1650 , - 4167 , - 984 , - 4261 , - 1838 , - 5875 , - 4212 , - 2929 , - 2026 , - 1503 , - 1360 , - 1597 , - 2214 , - 3211 , - 4588 , - 265 , - 2402 , - 4919 , - 1736 , - 5013 , - 2590 , - 547 , - 4964 , - 3681 , - 2778 , - 2255 , - 2112 , - 2349 , - 2966 , - 3963 , - 5340 , - 1017 , - 3154 , - 5671 , - 2488 , - 5765 , - 3342 , - 1299 , - 5716 , - 4433 , - 3530 , - 3007 , - 2864 , - 3101 , - 3718 , - 4715 , - 12 , - 1769 , - 3906 , - 343 , - 3240 , - 437 , - 4094 , - 2051 , - 388 , - 5185 , - 4282 , - 3759 , - 3616 , - 3853 , - 4470 , - 5467 , - 764 , - 2521 , - 4658 , - 1095 , - 3992 , - 1189 , - 4846 , - 2803 , - 1140 , - 5937 , - 5034 , - 4511 , - 4368 , - 4605 , - 5222 , - 139 , - 1516 , - 3273 , - 5410 , - 1847 , - 4744 , - 1941 , - 5598 , - 3555 , - 1892 , - 609 , - 5786 , - 5263 , - 5120 , - 5357 , - 5974 , - 891 , - 2268 , - 4025 , - 82 , - 2599 , - 5496 , - 2693 , - 270 , - 4307 , - 2644 , - 1361 , - 458 , - 6015 , - 5872 , - 29 , - 646 , - 1643 , - 3020 , - 4777 , - 834 , - 3351 , - 168 , - 3445 , - 1022 , - 5059 , - 3396 , - 2113 , - 1210 , - 687 , - 544 , - 781 , - 1398 , - 2395 , - 3772 , - 5529 , - 1586 , - 4103 , - 920 , - 4197 , - 1774 , - 5811 , - 4148 , - 2865 , - 1962 , - 1439 , - 1296 , - 1533 , - 2150 , - 3147 , - 4524 , - 201 , - 2338 , - 4855 , - 1672 , - 4949 , - 2526 , - 483 , - 4900 , - 3617 , - 2714 , - 2191 , - 2048 , - 2285 , - 2902 , - 3899 , - 5276 , - 953 , - 3090 , - 5607 , - 2424 , - 5701 , - 3278 , - 1235 , - 5652 , - 4369 , - 3466 , - 2943 , - 2800 , - 3037 , - 3654 , - 4651 , - 6028 , - 1705 , - 3842 , - 279 , - 3176 , - 373 , - 4030 , - 1987 , - 324 , - 5121 , - 4218 , - 3695 , - 3552 , - 3789 , - 4406 , - 5403 , - 700 , - 2457 , - 4594 , - 1031 , - 3928 , - 1125 , - 4782 , - 2739 , - 1076 , - 5873 , - 4970 , - 4447 , - 4304 , - 4541 , - 5158 , - 75 , - 1452 , - 3209 , - 5346 , - 1783 , - 4680 , - 1877 , - 5534 , - 3491 , - 1828 , - 545 , - 5722 , - 5199 , - 5056 , - 5293 , - 5910 , - 827 , - 2204 , - 3961 , - 18 , - 2535 , - 5432 , - 2629 , - 206 , - 4243 , - 2580 , - 1297 , - 394 , - 5951 , - 5808 , - 6045 , - 582 , - 1579 , - 2956 , - 4713 , - 770 , - 3287 , - 104 , - 3381 , - 958 , - 4995 , - 3332 , - 2049 , - 1146 , - 623 , - 480 , - 717 , - 1334 , - 2331 , - 3708 , - 5465 , - 1522 , - 4039 , - 856 , - 4133 , - 1710 , - 5747 , - 4084 , - 2801 , - 1898 , - 1375 , - 1232 , - 1469 , - 2086 , - 3083 , - 4460 , - 137 , - 2274 , - 4791 , - 1608 , - 4885 , - 2462 , - 419 , - 4836 , - 3553 , - 2650 , - 2127 , - 1984 , - 2221 , - 2838 , - 3835 , - 5212 , - 889 , - 3026 , - 5543 , - 2360 , - 5637 , - 3214 , - 1171 , - 5588 , - 4305 , - 3402 , - 2879 , - 2736 , - 2973 , - 3590 , - 4587 , - 5964 , - 1641 , - 3778 , - 215 , - 3112 , - 309 , - 3966 , - 1923 , - 260 , - 5057 , - 4154 , - 3631 , - 3488 , - 3725 , - 4342 , - 5339 , - 636 , - 2393 , - 4530 , - 967 , - 3864 , - 1061 , - 4718 , - 2675 , - 1012 , - 5809 , - 4906 , - 4383 , - 4240 , - 4477 , - 5094 , - 11 , - 1388 , - 3145 , - 5282 , - 1719 , - 4616 , - 1813 , - 5470 , - 3427 , - 1764 , - 481 , - 5658 , - 5135 , - 4992 , - 5229 , - 5846 , - 763 , - 2140 , - 3897 , - 6034 , - 2471 , - 5368 , - 2565 , - 142 , - 4179 , - 2516 , - 1233 , - 330 , - 5887 , - 5744 , - 5981 , - 518 , - 1515 , - 2892 , - 4649 , - 706 , - 3223 , - 40 , - 3317 , - 894 , - 4931 , - 3268 , - 1985 , - 1082 , - 559 , - 416 , - 653 , - 1270 , - 2267 , - 3644 , - 5401 , - 1458 , - 3975 , - 792 , - 4069 , - 1646 , - 5683 , - 4020 , - 2737 , - 1834 , - 1311 , - 1168 , - 1405 , - 2022 , - 3019 , - 4396 , - 73 , - 2210 , - 4727 , - 1544 , - 4821 , - 2398 , - 355 , - 4772 , - 3489 , - 2586 , - 2063 , - 1920 , - 2157 , - 2774 , - 3771 , - 5148 , - 825 , - 2962 , - 5479 , - 2296 , - 5573 , - 3150 , - 1107 , - 5524 , - 4241 , - 3338 , - 2815 , - 2672 , - 2909 , - 3526 , - 4523 , - 5900 , - 1577 , - 3714 , - 151 , - 3048 , - 245 , - 3902 , - 1859 , - 196 , - 4993 , - 4090 , - 3567 , - 3424 , - 3661 , - 4278 , - 5275 , - 572 , - 2329 , - 4466 , - 903 , - 3800 , - 997 , - 4654 , - 2611 , - 948 , - 5745 , - 4842 , - 4319 , - 4176 , - 4413 , - 5030 , - 6027 , - 1324 , - 3081 , - 5218 , - 1655 , - 4552 , - 1749 , - 5406 , - 3363 , - 1700 , - 417 , - 5594 , - 5071 , - 4928 , - 5165 , - 5782 , - 699 , - 2076 , - 3833 , - 5970 , - 2407 , - 5304 , - 2501 , - 78 , - 4115 , - 2452 , - 1169 , - 266 , - 5823 , - 5680 , - 5917 , - 454 , - 1451 , - 2828 , - 4585 , - 642 , - 3159 , - 6056 , - 3253 , - 830 , - 4867 , - 3204 , - 1921 , - 1018 , - 495 , - 352 , - 589 , - 1206 , - 2203 , - 3580 , - 5337 , - 1394 , - 3911 , - 728 , - 4005 , - 1582 , - 5619 , - 3956 , - 2673 , - 1770 , - 1247 , - 1104 , - 1341 , - 1958 , - 2955 , - 4332 , - 9 , - 2146 , - 4663 , - 1480 , - 4757 , - 2334 , - 291 , - 4708 , - 3425 , - 2522 , - 1999 , - 1856 , - 2093 , - 2710 , - 3707 , - 5084 , - 761 , - 2898 , - 5415 , - 2232 , - 5509 , - 3086 , - 1043 , - 5460 , - 4177 , - 3274 , - 2751 , - 2608 , - 2845 , - 3462 , - 4459 , - 5836 , - 1513 , - 3650 , - 87 , - 2984 , - 181 , - 3838 , - 1795 , - 132 , - 4929 , - 4026 , - 3503 , - 3360 , - 3597 , - 4214 , - 5211 , - 508 , - 2265 , - 4402 , - 839 , - 3736 , - 933 , - 4590 , - 2547 , - 884 , - 5681 , - 4778 , - 4255 , - 4112 , - 4349 , - 4966 , - 5963 , - 1260 , - 3017 , - 5154 , - 1591 , - 4488 , - 1685 , - 5342 , - 3299 , - 1636 , - 353 , - 5530 , - 5007 , - 4864 , - 5101 , - 5718 , - 635 , - 2012 , - 3769 , - 5906 , - 2343 , - 5240 , - 2437 , - 14 , - 4051 , - 2388 , - 1105 , - 202 , - 5759 , - 5616 , - 5853 , - 390 , - 1387 , - 2764 , - 4521 , - 578 , - 3095 , - 5992 , - 3189 , - 766 , - 4803 , - 3140 , - 1857 , - 954 , - 431 , - 288 , - 525 , - 1142 , - 2139 , - 3516 , - 5273 , - 1330 , - 3847 , - 664 , - 3941 , - 1518 , - 5555 , - 3892 , - 2609 , - 1706 , - 1183 , - 1040 , - 1277 , - 1894 , - 2891 , - 4268 , - 6025 , - 2082 , - 4599 , - 1416 , - 4693 , - 2270 , - 227 , - 4644 , - 3361 , - 2458 , - 1935 , - 1792 , - 2029 , - 2646 , - 3643 , - 5020 , - 697 , - 2834 , - 5351 , - 2168 , - 5445 , - 3022 , - 979 , - 5396 , - 4113 , - 3210 , - 2687 , - 2544 , - 2781 , - 3398 , - 4395 , - 5772 , - 1449 , - 3586 , - 23 , - 2920 , - 117 , - 3774 , - 1731 , - 68 , - 4865 , - 3962 , - 3439 , - 3296 , - 3533 , - 4150 , - 5147 , - 444 , - 2201 , - 4338 , - 775 , - 3672 , - 869 , - 4526 , - 2483 , - 820 , - 5617 , - 4714 , - 4191 , - 4048 , - 4285 , - 4902 , - 5899 , - 1196 , - 2953 , - 5090 , - 1527 , - 4424 , - 1621 , - 5278 , - 3235 , - 1572 , - 289 , - 5466 , - 4943 , - 4800 , - 5037 , - 5654 , - 571 , - 1948 , - 3705 , - 5842 , - 2279 , - 5176 , - 2373 , - 6030 , - 3987 , - 2324 , - 1041 , - 138 , - 5695 , - 5552 , - 5789 , - 326 , - 1323 , - 2700 , - 4457 , - 514 , - 3031 , - 5928 , - 3125 , - 702 , - 4739 , - 3076 , - 1793 , - 890 , - 367 , - 224 , - 461 , - 1078 , - 2075 , - 3452 , - 5209 , - 1266 , - 3783 , - 600 , - 3877 , - 1454 , - 5491 , - 3828 , - 2545 , - 1642 , - 1119 , - 976 , - 1213 , - 1830 , - 2827 , - 4204 , - 5961 , - 2018 , - 4535 , - 1352 , - 4629 , - 2206 , - 163 , - 4580 , - 3297 , - 2394 , - 1871 , - 1728 , - 1965 , - 2582 , - 3579 , - 4956 , - 633 , - 2770 , - 5287 , - 2104 , - 5381 , - 2958 , - 915 , - 5332 , - 4049 , - 3146 , - 2623 , - 2480 , - 2717 , - 3334 , - 4331 , - 5708 , - 1385 , - 3522 , - 6039 , - 2856 , - 53 , - 3710 , - 1667 , - 4 , - 4801 , - 3898 , - 3375 , - 3232 , - 3469 , - 4086 , - 5083 , - 380 , - 2137 , - 4274 , - 711 , - 3608 , - 805 , - 4462 , - 2419 , - 756 , - 5553 , - 4650 , - 4127 , - 3984 , - 4221 , - 4838 , - 5835 , - 1132 , - 2889 , - 5026 , - 1463 , - 4360 , - 1557 , - 5214 , - 3171 , - 1508 , - 225 , - 5402 , - 4879 , - 4736 , - 4973 , - 5590 , - 507 , - 1884 , - 3641 , - 5778 , - 2215 , - 5112 , - 2309 , - 5966 , - 3923 , - 2260 , - 977 , - 74 , - 5631 , - 5488 , - 5725 , - 262 , - 1259 , - 2636 , - 4393 , - 450 , - 2967 , - 5864 , - 3061 , - 638 , - 4675 , - 3012 , - 1729 , - 826 , - 303 , - 160 , - 397 , - 1014 , - 2011 , - 3388 , - 5145 , - 1202 , - 3719 , - 536 , - 3813 , - 1390 , - 5427 , - 3764 , - 2481 , - 1578 , - 1055 , - 912 , - 1149 , - 1766 , - 2763 , - 4140 , - 5897 , - 1954 , - 4471 , - 1288 , - 4565 , - 2142 , - 99 , - 4516 , - 3233 , - 2330 , - 1807 , - 1664 , - 1901 , - 2518 , - 3515 , - 4892 , - 569 , - 2706 , - 5223 , - 2040 , - 5317 , - 2894 , - 851 , - 5268 , - 3985 , - 3082 , - 2559 , - 2416 , - 2653 , - 3270 , - 4267 , - 5644 , - 1321 , - 3458 , - 5975 , - 2792 , - 6069 , - 3646 , - 1603 , - 6020 , - 4737 , - 3834 , - 3311 , - 3168 , - 3405 , - 4022 , - 5019 , - 316 , - 2073 , - 4210 , - 647 , - 3544 , - 741 , - 4398 , - 2355 , - 692 , - 5489 , - 4586 , - 4063 , - 3920 , - 4157 , - 4774 , - 5771 , - 1068 , - 2825 , - 4962 , - 1399 , - 4296 , - 1493 , - 5150 , - 3107 , - 1444 , - 161 , - 5338 , - 4815 , - 4672 , - 4909 , - 5526 , - 443 , - 1820 , - 3577 , - 5714 , - 2151 , - 5048 , - 2245 , - 5902 , - 3859 , - 2196 , - 913 , - 10 , - 5567 , - 5424 , - 5661 , - 198 , - 1195 , - 2572 , - 4329 , - 386 , - 2903 , - 5800 , - 2997 , - 574 , - 4611 , - 2948 , - 1665 , - 762 , - 239 , - 96 , - 333 , - 950 , - 1947 , - 3324 , - 5081 , - 1138 , - 3655 , - 472 , - 3749 , - 1326 , - 5363 , - 3700 , - 2417 , - 1514 , - 991 , - 848 , - 1085 , - 1702 , - 2699 , - 4076 , - 5833 , - 1890 , - 4407 , - 1224 , - 4501 , - 2078 , - 35 , - 4452 , - 3169 , - 2266 , - 1743 , - 1600 , - 1837 , - 2454 , - 3451 , - 4828 , - 505 , - 2642 , - 5159 , - 1976 , - 5253 , - 2830 , - 787 , - 5204 , - 3921 , - 3018 , - 2495 , - 2352 , - 2589 , - 3206 , - 4203 , - 5580 , - 1257 , - 3394 , - 5911 , - 2728 , - 6005 , - 3582 , - 1539 , - 5956 , - 4673 , - 3770 , - 3247 , - 3104 , - 3341 , - 3958 , - 4955 , - 252 , - 2009 , - 4146 , - 583 , - 3480 , - 677 , - 4334 , - 2291 , - 628 , - 5425 , - 4522 , - 3999 , - 3856 , - 4093 , - 4710 , - 5707 , - 1004 , - 2761 , - 4898 , - 1335 , - 4232 , - 1429 , - 5086 , - 3043 , - 1380 , - 97 , - 5274 , - 4751 , - 4608 , - 4845 , - 5462 , - 379 , - 1756 , - 3513 , - 5650 , - 2087 , - 4984 , - 2181 , - 5838 , - 3795 , - 2132 , - 849 , - 6026 , - 5503 , - 5360 , - 5597 , - 134 , - 1131 , - 2508 , - 4265 , - 322 , - 2839 , - 5736 , - 2933 , - 510 , - 4547 , - 2884 , - 1601 , - 698 , - 175 , - 32 , - 269 , - 886 , - 1883 , - 3260 , - 5017 , - 1074 , - 3591 , - 408 , - 3685 , - 1262 , - 5299 , - 3636 , - 2353 , - 1450 , - 927 , - 784 , - 1021 , - 1638 , - 2635 , - 4012 , - 5769 , - 1826 , - 4343 , - 1160 , - 4437 , - 2014 , - 6051 , - 4388 , - 3105 , - 2202 , - 1679 , - 1536 , - 1773 , - 2390 , - 3387 , - 4764 , - 441 , - 2578 , - 5095 , - 1912 , - 5189 , - 2766 , - 723 , - 5140 , - 3857 , - 2954 , - 2431 , - 2288 , - 2525 , - 3142 , - 4139 , - 5516 , - 1193 , - 3330 , - 5847 , - 2664 , - 5941 , - 3518 , - 1475 , - 5892 , - 4609 , - 3706 , - 3183 , - 3040 , - 3277 , - 3894 , - 4891 , - 188 , - 1945 , - 4082 , - 519 , - 3416 , - 613 , - 4270 , - 2227 , - 564 , - 5361 , - 4458 , - 3935 , - 3792 , - 4029 , - 4646 , - 5643 , - 940 , - 2697 , - 4834 , - 1271 , - 4168 , - 1365 , - 5022 , - 2979 , - 1316 , - 33 , - 5210 , - 4687 , - 4544 , - 4781 , - 5398 , - 315 , - 1692 , - 3449 , - 5586 , - 2023 , - 4920 , - 2117 , - 5774 , - 3731 , - 2068 , - 785 , - 5962 , - 5439 , - 5296 , - 5533 , - 70 , - 1067 , - 2444 , - 4201 , - 258 , - 2775 , - 5672 , - 2869 , - 446 , - 4483 , - 2820 , - 1537 , - 634 , - 111 , - 6048 , - 205 , - 822 , - 1819 , - 3196 , - 4953 , - 1010 , - 3527 , - 344 , - 3621 , - 1198 , - 5235 , - 3572 , - 2289 , - 1386 , - 863 , - 720 , - 957 , - 1574 , - 2571 , - 3948 , - 5705 , - 1762 , - 4279 , - 1096 , - 4373 , - 1950 , - 5987 , - 4324 , - 3041 , - 2138 , - 1615 , - 1472 , - 1709 , - 2326 , - 3323 , - 4700 , - 377 , - 2514 , - 5031 , - 1848 , - 5125 , - 2702 , - 659 , - 5076 , - 3793 , - 2890 , - 2367 , - 2224 , - 2461 , - 3078 , - 4075 , - 5452 , - 1129 , - 3266 , - 5783 , - 2600 , - 5877 , - 3454 , - 1411 , - 5828 , - 4545 , - 3642 , - 3119 , - 2976 , - 3213 , - 3830 , - 4827 , - 124 , - 1881 , - 4018 , - 455 , - 3352 , - 549 , - 4206 , - 2163 , - 500 , - 5297 , - 4394 , - 3871 , - 3728 , - 3965 , - 4582 , - 5579 , - 876 , - 2633 , - 4770 , - 1207 , - 4104 , - 1301 , - 4958 , - 2915 , - 1252 , - 6049 , - 5146 , - 4623 , - 4480 , - 4717 , - 5334 , - 251 , - 1628 , - 3385 , - 5522 , - 1959 , - 4856 , - 2053 , - 5710 , - 3667 , - 2004 , - 721 , - 5898 , - 5375 , - 5232 , - 5469 , - 6 , - 1003 , - 2380 , - 4137 , - 194 , - 2711 , - 5608 , - 2805 , - 382 , - 4419 , - 2756 , - 1473 , - 570 , - 47 , - 5984 , - 141 , - 758 , - 1755 , - 3132 , - 4889 , - 946 , - 3463 , - 280 , - 3557 , - 1134 , - 5171 , - 3508 , - 2225 , - 1322 , - 799 , - 656 , - 893 , - 1510 , - 2507 , - 3884 , - 5641 , - 1698 , - 4215 , - 1032 , - 4309 , - 1886 , - 5923 , - 4260 , - 2977 , - 2074 , - 1551 , - 1408 , - 1645 , - 2262 , - 3259 , - 4636 , - 313 , - 2450 , - 4967 , - 1784 , - 5061 , - 2638 , - 595 , - 5012 , - 3729 , - 2826 , - 2303 , - 2160 , - 2397 , - 3014 , - 4011 , - 5388 , - 1065 , - 3202 , - 5719 , - 2536 , - 5813 , - 3390 , - 1347 , - 5764 , - 4481 , - 3578 , - 3055 , - 2912 , - 3149 , - 3766 , - 4763 , - 60 , - 1817 , - 3954 , - 391 , - 3288 , - 485 , - 4142 , - 2099 , - 436 , - 5233 , - 4330 , - 3807 , - 3664 , - 3901 , - 4518 , - 5515 , - 812 , - 2569 , - 4706 , - 1143 , - 4040 , - 1237 , - 4894 , - 2851 , - 1188 , - 5985 , - 5082 , - 4559 , - 4416 , - 4653 , - 5270 , - 187 , - 1564 , - 3321 , - 5458 , - 1895 , - 4792 , - 1989 , - 5646 , - 3603 , - 1940 , - 657 , - 5834 , - 5311 , - 5168 , - 5405 , - 6022 , - 939 , - 2316 , - 4073 , - 130 , - 2647 , - 5544 , - 2741 , - 318 , - 4355 , - 2692 , - 1409 , - 506 , - 6063 , - 5920 , - 77 , - 694 , - 1691 , - 3068 , - 4825 , - 882 , - 3399 , - 216 , - 3493 , - 1070 , - 5107 , - 3444 , - 2161 , - 1258 , - 735 , - 592 , - 829 , - 1446 , - 2443 , - 3820 , - 5577 , - 1634 , - 4151 , - 968 , - 4245 , - 1822 , - 5859 , - 4196 , - 2913 , - 2010 , - 1487 , - 1344 , - 1581 , - 2198 , - 3195 , - 4572 , - 249 , - 2386 , - 4903 , - 1720 , - 4997 , - 2574 , - 531 , - 4948 , - 3665 , - 2762 , - 2239 , - 2096 , - 2333 , - 2950 , - 3947 , - 5324 , - 1001 , - 3138 , - 5655 , - 2472 , - 5749 , - 3326 , - 1283 , - 5700 , - 4417 , - 3514 , - 2991 , - 2848 , - 3085 , - 3702 , - 4699 , - 6076 , - 1753 , - 3890 , - 327 , - 3224 , - 421 , - 4078 , - 2035 , - 372 , - 5169 , - 4266 , - 3743 , - 3600 , - 3837 , - 4454 , - 5451 , - 748 , - 2505 , - 4642 , - 1079 , - 3976 , - 1173 , - 4830 , - 2787 , - 1124 , - 5921 , - 5018 , - 4495 , - 4352 , - 4589 , - 5206 , - 123 , - 1500 , - 3257 , - 5394 , - 1831 , - 4728 , - 1925 , - 5582 , - 3539 , - 1876 , - 593 , - 5770 , - 5247 , - 5104 , - 5341 , - 5958 , - 875 , - 2252 , - 4009 , - 66 , - 2583 , - 5480 , - 2677 , - 254 , - 4291 , - 2628 , - 1345 , - 442 , - 5999 , - 5856 , - 13 , - 630 , - 1627 , - 3004 , - 4761 , - 818 , - 3335 , - 152 , - 3429 , - 1006 , - 5043 , - 3380 , - 2097 , - 1194 , - 671 , - 528 , - 765 , - 1382 , - 2379 , - 3756 , - 5513 , - 1570 , - 4087 , - 904 , - 4181 , - 1758 , - 5795 , - 4132 , - 2849 , - 1946 , - 1423 , - 1280 , - 1517 , - 2134 , - 3131 , - 4508 , - 185 , - 2322 , - 4839 , - 1656 , - 4933 , - 2510 , - 467 , - 4884 , - 3601 , - 2698 , - 2175 , - 2032 , - 2269 , - 2886 , - 3883 , - 5260 , - 937 , - 3074 , - 5591 , - 2408 , - 5685 , - 3262 , - 1219 , - 5636 , - 4353 , - 3450 , - 2927 , - 2784 , - 3021 , - 3638 , - 4635 , - 6012 , - 1689 , - 3826 , - 263 , - 3160 , - 357 , - 4014 , - 1971 , - 308 , - 5105 , - 4202 , - 3679 , - 3536 , - 3773 , - 4390 , - 5387 , - 684 , - 2441 , - 4578 , - 1015 , - 3912 , - 1109 , - 4766 , - 2723 , - 1060 , - 5857 , - 4954 , - 4431 , - 4288 , - 4525 , - 5142 , - 59 , - 1436 , - 3193 , - 5330 , - 1767 , - 4664 , - 1861 , - 5518 , - 3475 , - 1812 , - 529 , - 5706 , - 5183 , - 5040 , - 5277 , - 5894 , - 811 , - 2188 , - 3945 , - 2 , - 2519 , - 5416 , - 2613 , - 190 , - 4227 , - 2564 , - 1281 , - 378 , - 5935 , - 5792 , - 6029 , - 566 , - 1563 , - 2940 , - 4697 , - 754 , - 3271 , - 88 , - 3365 , - 942 , - 4979 , - 3316 , - 2033 , - 1130 , - 607 , - 464 , - 701 , - 1318 , - 2315 , - 3692 , - 5449 , - 1506 , - 4023 , - 840 , - 4117 , - 1694 , - 5731 , - 4068 , - 2785 , - 1882 , - 1359 , - 1216 , - 1453 , - 2070 , - 3067 , - 4444 , - 121 , - 2258 , - 4775 , - 1592 , - 4869 , - 2446 , - 403 , - 4820 , - 3537 , - 2634 , - 2111 , - 1968 , - 2205 , - 2822 , - 3819 , - 5196 , - 873 , - 3010 , - 5527 , - 2344 , - 5621 , - 3198 , - 1155 , - 5572 , - 4289 , - 3386 , - 2863 , - 2720 , - 2957 , - 3574 , - 4571 , - 5948 , - 1625 , - 3762 , - 199 , - 3096 , - 293 , - 3950 , - 1907 , - 244 , - 5041 , - 4138 , - 3615 , - 3472 , - 3709 , - 4326 , - 5323 , - 620 , - 2377 , - 4514 , - 951 , - 3848 , - 1045 , - 4702 , - 2659 , - 996 , - 5793 , - 4890 , - 4367 , - 4224 , - 4461 , - 5078 , - 6075 , - 1372 , - 3129 , - 5266 , - 1703 , - 4600 , - 1797 , - 5454 , - 3411 , - 1748 , - 465 , - 5642 , - 5119 , - 4976 , - 5213 , - 5830 , - 747 , - 2124 , - 3881 , - 6018 , - 2455 , - 5352 , - 2549 , - 126 , - 4163 , - 2500 , - 1217 , - 314 , - 5871 , - 5728 , - 5965 , - 502 , - 1499 , - 2876 , - 4633 , - 690 , - 3207 , - 24 , - 3301 , - 878 , - 4915 , - 3252 , - 1969 , - 1066 , - 543 , - 400 , - 637 , - 1254 , - 2251 , - 3628 , - 5385 , - 1442 , - 3959 , - 776 , - 4053 , - 1630 , - 5667 , - 4004 , - 2721 , - 1818 , - 1295 , - 1152 , - 1389 , - 2006 , - 3003 , - 4380 , - 57 , - 2194 , - 4711 , - 1528 , - 4805 , - 2382 , - 339 , - 4756 , - 3473 , - 2570 , - 2047 , - 1904 , - 2141 , - 2758 , - 3755 , - 5132 , - 809 , - 2946 , - 5463 , - 2280 , - 5557 , - 3134 , - 1091 , - 5508 , - 4225 , - 3322 , - 2799 , - 2656 , - 2893 , - 3510 , - 4507 , - 5884 , - 1561 , - 3698 , - 135 , - 3032 , - 229 , - 3886 , - 1843 , - 180 , - 4977 , - 4074 , - 3551 , - 3408 , - 3645 , - 4262 , - 5259 , - 556 , - 2313 , - 4450 , - 887 , - 3784 , - 981 , - 4638 , - 2595 , - 932 , - 5729 , - 4826 , - 4303 , - 4160 , - 4397 , - 5014 , - 6011 , - 1308 , - 3065 , - 5202 , - 1639 , - 4536 , - 1733 , - 5390 , - 3347 , - 1684 , - 401 , - 5578 , - 5055 , - 4912 , - 5149 , - 5766 , - 683 , - 2060 , - 3817 , - 5954 , - 2391 , - 5288 , - 2485 , - 62 , - 4099 , - 2436 , - 1153 , - 250 , - 5807 , - 5664 , - 5901 , - 438 , - 1435 , - 2812 , - 4569 , - 626 , - 3143 , - 6040 , - 3237 , - 814 , - 4851 , - 3188 , - 1905 , - 1002 , - 479 , - 336 , - 573 , - 1190 , - 2187 , - 3564 , - 5321 , - 1378 , - 3895 , - 712 , - 3989 , - 1566 , - 5603 , - 3940 , - 2657 , - 1754 , - 1231 , - 1088 , - 1325 , - 1942 , - 2939 , - 4316 , - 6073 , - 2130 , - 4647 , - 1464 , - 4741 , - 2318 , - 275 , - 4692 , - 3409 , - 2506 , - 1983 , - 1840 , - 2077 , - 2694 , - 3691 , - 5068 , - 745 , - 2882 , - 5399 , - 2216 , - 5493 , - 3070 , - 1027 , - 5444 , - 4161 , - 3258 , - 2735 , - 2592 , - 2829 , - 3446 , - 4443 , - 5820 , - 1497 , - 3634 , - 71 , - 2968 , - 165 , - 3822 , - 1779 , - 116 , - 4913 , - 4010 , - 3487 , - 3344 , - 3581 , - 4198 , - 5195 , - 492 , - 2249 , - 4386 , - 823 , - 3720 , - 917 , - 4574 , - 2531 , - 868 , - 5665 , - 4762 , - 4239 , - 4096 , - 4333 , - 4950 , - 5947 , - 1244 , - 3001 , - 5138 , - 1575 , - 4472 , - 1669 , - 5326 , - 3283 , - 1620 , - 337 , - 5514 , - 4991 , - 4848 , - 5085 , - 5702 , - 619 , - 1996 , - 3753 , - 5890 , - 2327 , - 5224 , - 2421 , - 6078 , - 4035 , - 2372 , - 1089 , - 186 , - 5743 , - 5600 , - 5837 , - 374 , - 1371 , - 2748 , - 4505 , - 562 , - 3079 , - 5976 , - 3173 , - 750 , - 4787 , - 3124 , - 1841 , - 938 , - 415 , - 272 , - 509 , - 1126 , - 2123 , - 3500 , - 5257 , - 1314 , - 3831 , - 648 , - 3925 , - 1502 , - 5539 , - 3876 , - 2593 , - 1690 , - 1167 , - 1024 , - 1261 , - 1878 , - 2875 , - 4252 , - 6009 , - 2066 , - 4583 , - 1400 , - 4677 , - 2254 , - 211 , - 4628 , - 3345 , - 2442 , - 1919 , - 1776 , - 2013 , - 2630 , - 3627 , - 5004 , - 681 , - 2818 , - 5335 , - 2152 , - 5429 , - 3006 , - 963 , - 5380 , - 4097 , - 3194 , - 2671 , - 2528 , - 2765 , - 3382 , - 4379 , - 5756 , - 1433 , - 3570 , - 7 , - 2904 , - 101 , - 3758 , - 1715 , - 52 , - 4849 , - 3946 , - 3423 , - 3280 , - 3517 , - 4134 , - 5131 , - 428 , - 2185 , - 4322 , - 759 , - 3656 , - 853 , - 4510 , - 2467 , - 804 , - 5601 , - 4698 , - 4175 , - 4032 , - 4269 , - 4886 , - 5883 , - 1180 , - 2937 , - 5074 , - 1511 , - 4408 , - 1605 , - 5262 , - 3219 , - 1556 , - 273 , - 5450 , - 4927 , - 4784 , - 5021 , - 5638 , - 555 , - 1932 , - 3689 , - 5826 , - 2263 , - 5160 , - 2357 , - 6014 , - 3971 , - 2308 , - 1025 , - 122 , - 5679 , - 5536 , - 5773 , - 310 , - 1307 , - 2684 , - 4441 , - 498 , - 3015 , - 5912 , - 3109 , - 686 , - 4723 , - 3060 , - 1777 , - 874 , - 351 , - 208 , - 445 , - 1062 , - 2059 , - 3436 , - 5193 , - 1250 , - 3767 , - 584 , - 3861 , - 1438 , - 5475 , - 3812 , - 2529 , - 1626 , - 1103 , - 960 , - 1197 , - 1814 , - 2811 , - 4188 , - 5945 , - 2002 , - 4519 , - 1336 , - 4613 , - 2190 , - 147 , - 4564 , - 3281 , - 2378 , - 1855 , - 1712 , - 1949 , - 2566 , - 3563 , - 4940 , - 617 , - 2754 , - 5271 , - 2088 , - 5365 , - 2942 , - 899 , - 5316 , - 4033 , - 3130 , - 2607 , - 2464 , - 2701 , - 3318 , - 4315 , - 5692 , - 1369 , - 3506 , - 6023 , - 2840 , - 37 , - 3694 , - 1651 , - 6068 , - 4785 , - 3882 , - 3359 , - 3216 , - 3453 , - 4070 , - 5067 , - 364 , - 2121 , - 4258 , - 695 , - 3592 , - 789 , - 4446 , - 2403 , - 740 , - 5537 , - 4634 , - 4111 , - 3968 , - 4205 , - 4822 , - 5819 , - 1116 , - 2873 , - 5010 , - 1447 , - 4344 , - 1541 , - 5198 , - 3155 , - 1492 , - 209 , - 5386 , - 4863 , - 4720 , - 4957 , - 5574 , - 491 , - 1868 , - 3625 , - 5762 , - 2199 , - 5096 , - 2293 , - 5950 , - 3907 , - 2244 , - 961 , - 58 , - 5615 , - 5472 , - 5709 , - 246 , - 1243 , - 2620 , - 4377 , - 434 , - 2951 , - 5848 , - 3045 , - 622 , - 4659 , - 2996 , - 1713 , - 810 , - 287 , - 144 , - 381 , - 998 , - 1995 , - 3372 , - 5129 , - 1186 , - 3703 , - 520 , - 3797 , - 1374 , - 5411 , - 3748 , - 2465 , - 1562 , - 1039 , - 896 , - 1133 , - 1750 , - 2747 , - 4124 , - 5881 , - 1938 , - 4455 , - 1272 , - 4549 , - 2126 , - 83 , - 4500 , - 3217 , - 2314 , - 1791 , - 1648 , - 1885 , - 2502 , - 3499 , - 4876 , - 553 , - 2690 , - 5207 , - 2024 , - 5301 , - 2878 , - 835 , - 5252 , - 3969 , - 3066 , - 2543 , - 2400 , - 2637 , - 3254 , - 4251 , - 5628 , - 1305 , - 3442 , - 5959 , - 2776 , - 6053 , - 3630 , - 1587 , - 6004 , - 4721 , - 3818 , - 3295 , - 3152 , - 3389 , - 4006 , - 5003 , - 300 , - 2057 , - 4194 , - 631 , - 3528 , - 725 , - 4382 , - 2339 , - 676 , - 5473 , - 4570 , - 4047 , - 3904 , - 4141 , - 4758 , - 5755 , - 1052 , - 2809 , - 4946 , - 1383 , - 4280 , - 1477 , - 5134 , - 3091 , - 1428 , - 145 , - 5322 , - 4799 , - 4656 , - 4893 , - 5510 , - 427 , - 1804 , - 3561 , - 5698 , - 2135 , - 5032 , - 2229 , - 5886 , - 3843 , - 2180 , - 897 , - 6074 , - 5551 , - 5408 , - 5645 , - 182 , - 1179 , - 2556 , - 4313 , - 370 , - 2887 , - 5784 , - 2981 , - 558 , - 4595 , - 2932 , - 1649 , - 746 , - 223 , - 80 , - 317 , - 934 , - 1931 , - 3308 , - 5065 , - 1122 , - 3639 , - 456 , - 3733 , - 1310 , - 5347 , - 3684 , - 2401 , - 1498 , - 975 , - 832 , - 1069 , - 1686 , - 2683 , - 4060 , - 5817 , - 1874 , - 4391 , - 1208 , - 4485 , - 2062 , - 19 , - 4436 , - 3153 , - 2250 , - 1727 , - 1584 , - 1821 , - 2438 , - 3435 , - 4812 , - 489 , - 2626 , - 5143 , - 1960 , - 5237 , - 2814 , - 771 , - 5188 , - 3905 , - 3002 , - 2479 , - 2336 , - 2573 , - 3190 , - 4187 , - 5564 , - 1241 , - 3378 , - 5895 , - 2712 , - 5989 , - 3566 , - 1523 , - 5940 , - 4657 , - 3754 , - 3231 , - 3088 , - 3325 , - 3942 , - 4939 , - 236 , - 1993 , - 4130 , - 567 , - 3464 , - 661 , - 4318 , - 2275 , - 612 , - 5409 , - 4506 , - 3983 , - 3840 , - 4077 , - 4694 , - 5691 , - 988 , - 2745 , - 4882 , - 1319 , - 4216 , - 1413 , - 5070 , - 3027 , - 1364 , - 81 , - 5258 , - 4735 , - 4592 , - 4829 , - 5446 , - 363 , - 1740 , - 3497 , - 5634 , - 2071 , - 4968 , - 2165 , - 5822 , - 3779 , - 2116 , - 833 , - 6010 , - 5487 , - 5344 , - 5581 , - 118 , - 1115 , - 2492 , - 4249 , - 306 , - 2823 , - 5720 , - 2917 , - 494 , - 4531 , - 2868 , - 1585 , - 682 , - 159 , - 16 , - 253 , - 870 , - 1867 , - 3244 , - 5001 , - 1058 , - 3575 , - 392 , - 3669 , - 1246 , - 5283 , - 3620 , - 2337 , - 1434 , - 911 , - 768 , - 1005 , - 1622 , - 2619 , - 3996 , - 5753 , - 1810 , - 4327 , - 1144 , - 4421 , - 1998 , - 6035 , - 4372 , - 3089 , - 2186 , - 1663 , - 1520 , - 1757 , - 2374 , - 3371 , - 4748 , - 425 , - 2562 , - 5079 , - 1896 , - 5173 , - 2750 , - 707 , - 5124 , - 3841 , - 2938 , - 2415 , - 2272 , - 2509 , - 3126 , - 4123 , - 5500 , - 1177 , - 3314 , - 5831 , - 2648 , - 5925 , - 3502 , - 1459 , - 5876 , - 4593 , - 3690 , - 3167 , - 3024 , - 3261 , - 3878 , - 4875 , - 172 , - 1929 , - 4066 , - 503 , - 3400 , - 597 , - 4254 , - 2211 , - 548 , - 5345 , - 4442 , - 3919 , - 3776 , - 4013 , - 4630 , - 5627 , - 924 , - 2681 , - 4818 , - 1255 , - 4152 , - 1349 , - 5006 , - 2963 , - 1300 , - 17 , - 5194 , - 4671 , - 4528 , - 4765 , - 5382 , - 299 , - 1676 , - 3433 , - 5570 , - 2007 , - 4904 , - 2101 , - 5758 , - 3715 , - 2052 , - 769 , - 5946 , - 5423 , - 5280 , - 5517 , - 54 , - 1051 , - 2428 , - 4185 , - 242 , - 2759 , - 5656 , - 2853 , - 430 , - 4467 , - 2804 , - 1521 , - 618 , - 95 , - 6032 , - 189 , - 806 , - 1803 , - 3180 , - 4937 , - 994 , - 3511 , - 328 , - 3605 , - 1182 , - 5219 , - 3556 , - 2273 , - 1370 , - 847 , - 704 , - 941 , - 1558 , - 2555 , - 3932 , - 5689 , - 1746 , - 4263 , - 1080 , - 4357 , - 1934 , - 5971 , - 4308 , - 3025 , - 2122 , - 1599 , - 1456 , - 1693 , - 2310 , - 3307 , - 4684 , - 361 , - 2498 , - 5015 , - 1832 , - 5109 , - 2686 , - 643 , - 5060 , - 3777 , - 2874 , - 2351 , - 2208 , - 2445 , - 3062 , - 4059 , - 5436 , - 1113 , - 3250 , - 5767 , - 2584 , - 5861 , - 3438 , - 1395 , - 5812 , - 4529 , - 3626 , - 3103 , - 2960 , - 3197 , - 3814 , - 4811 , - 108 , - 1865 , - 4002 , - 439 , - 3336 , - 533 , - 4190 , - 2147 , - 484 , - 5281 , - 4378 , - 3855 , - 3712 , - 3949 , - 4566 , - 5563 , - 860 , - 2617 , - 4754 , - 1191 , - 4088 , - 1285 , - 4942 , - 2899 , - 1236 , - 6033 , - 5130 , - 4607 , - 4464 , - 4701 , - 5318 , - 235 , - 1612 , - 3369 , - 5506 , - 1943 , - 4840 , - 2037 , - 5694 , - 3651 , - 1988 , - 705 , - 5882 , - 5359 , - 5216 , - 5453 , - 6070 , - 987 , - 2364 , - 4121 , - 178 , - 2695 , - 5592 , - 2789 , - 366 , - 4403 , - 2740 , - 1457 , - 554 , - 31 , - 5968 , - 125 , - 742 , - 1739 , - 3116 , - 4873 , - 930 , - 3447 , - 264 , - 3541 , - 1118 , - 5155 , - 3492 , - 2209 , - 1306 , - 783 , - 640 , - 877 , - 1494 , - 2491 , - 3868 , - 5625 , - 1682 , - 4199 , - 1016 , - 4293 , - 1870 , - 5907 , - 4244 , - 2961 , - 2058 , - 1535 , - 1392 , - 1629 , - 2246 , - 3243 , - 4620 , - 297 , - 2434 , - 4951 , - 1768 , - 5045 , - 2622 , - 579 , - 4996 , - 3713 , - 2810 , - 2287 , - 2144 , - 2381 , - 2998 , - 3995 , - 5372 , - 1049 , - 3186 , - 5703 , - 2520 , - 5797 , - 3374 , - 1331 , - 5748 , - 4465 , - 3562 , - 3039 , - 2896 , - 3133 , - 3750 , - 4747 , - 44 , - 1801 , - 3938 , - 375 , - 3272 , - 469 , - 4126 , - 2083 , - 420 , - 5217 , - 4314 , - 3791 , - 3648 , - 3885 , - 4502 , - 5499 , - 796 , - 2553 , - 4690 , - 1127 , - 4024 , - 1221 , - 4878 , - 2835 , - 1172 , - 5969 , - 5066 , - 4543 , - 4400 , - 4637 , - 5254 , - 171 , - 1548 , - 3305 , - 5442 , - 1879 , - 4776 , - 1973 , - 5630 , - 3587 , - 1924 , - 641 , - 5818 , - 5295 , - 5152 , - 5389 , - 6006 , - 923 , - 2300 , - 4057 , - 114 , - 2631 , - 5528 , - 2725 , - 302 , - 4339 , - 2676 , - 1393 , - 490 , - 6047 , - 5904 , - 61 , - 678 , - 1675 , - 3052 , - 4809 , - 866 , - 3383 , - 200 , - 3477 , - 1054 , - 5091 , - 3428 , - 2145 , - 1242 , - 719 , - 576 , - 813 , - 1430 , - 2427 , - 3804 , - 5561 , - 1618 , - 4135 , - 952 , - 4229 , - 1806 , - 5843 , - 4180 , - 2897 , - 1994 , - 1471 , - 1328 , - 1565 , - 2182 , - 3179 , - 4556 , - 233 , - 2370 , - 4887 , - 1704 , - 4981 , - 2558 , - 515 , - 4932 , - 3649 , - 2746 , - 2223 , - 2080 , - 2317 , - 2934 , - 3931 , - 5308 , - 985 , - 3122 , - 5639 , - 2456 , - 5733 , - 3310 , - 1267 , - 5684 , - 4401 , - 3498 , - 2975 , - 2832 , - 3069 , - 3686 , - 4683 , - 6060 , - 1737 , - 3874 , - 311 , - 3208 , - 405 , - 4062 , - 2019 , - 356 , - 5153 , - 4250 , - 3727 , - 3584 , - 3821 , - 4438 , - 5435 , - 732 , - 2489 , - 4626 , - 1063 , - 3960 , - 1157 , - 4814 , - 2771 , - 1108 , - 5905 , - 5002 , - 4479 , - 4336 , - 4573 , - 5190 , - 107 , - 1484 , - 3241 , - 5378 , - 1815 , - 4712 , - 1909 , - 5566 , - 3523 , - 1860 , - 577 , - 5754 , - 5231 , - 5088 , - 5325 , - 5942 , - 859 , - 2236 , - 3993 , - 50 , - 2567 , - 5464 , - 2661 , - 238 , - 4275 , - 2612 , - 1329 , - 426 , - 5983 , - 5840 , - 6077 , - 614 , - 1611 , - 2988 , - 4745 , - 802 , - 3319 , - 136 , - 3413 , - 990 , - 5027 , - 3364 , - 2081 , - 1178 , - 655 , - 512 , - 749 , - 1366 , - 2363 , - 3740 , - 5497 , - 1554 , - 4071 , - 888 , - 4165 , - 1742 , - 5779 , - 4116 , - 2833 , - 1930 , - 1407 , - 1264 , - 1501 , - 2118 , - 3115 , - 4492 , - 169 , - 2306 , - 4823 , - 1640 , - 4917 , - 2494 , - 451 , - 4868 , - 3585 , - 2682 , - 2159 , - 2016 , - 2253 , - 2870 , - 3867 , - 5244 , - 921 , - 3058 , - 5575 , - 2392 , - 5669 , - 3246 , - 1203 , - 5620 , - 4337 , - 3434 , - 2911 , - 2768 , - 3005 , - 3622 , - 4619 , - 5996 , - 1673 , - 3810 , - 247 , - 3144 , - 341 , - 3998 , - 1955 , - 292 , - 5089 , - 4186 , - 3663 , - 3520 , - 3757 , - 4374 , - 5371 , - 668 , - 2425 , - 4562 , - 999 , - 3896 , - 1093 , - 4750 , - 2707 , - 1044 , - 5841 , - 4938 , - 4415 , - 4272 , - 4509 , - 5126 , - 43 , - 1420 , - 3177 , - 5314 , - 1751 , - 4648 , - 1845 , - 5502 , - 3459 , - 1796 , - 513 , - 5690 , - 5167 , - 5024 , - 5261 , - 5878 , - 795 , - 2172 , - 3929 , - 6066 , - 2503 , - 5400 , - 2597 , - 174 , - 4211 , - 2548 , - 1265 , - 362 , - 5919 , - 5776 , - 6013 , - 550 , - 1547 , - 2924 , - 4681 , - 738 , - 3255 , - 72 , - 3349 , - 926 , - 4963 , - 3300 , - 2017 , - 1114 , - 591 , - 448 , - 685 , - 1302 , - 2299 , - 3676 , - 5433 , - 1490 , - 4007 , - 824 , - 4101 , - 1678 , - 5715 , - 4052 , - 2769 , - 1866 , - 1343 , - 1200 , - 1437 , - 2054 , - 3051 , - 4428 , - 105 , - 2242 , - 4759 , - 1576 , - 4853 , - 2430 , - 387 , - 4804 , - 3521 , - 2618 , - 2095 , - 1952 , - 2189 , - 2806 , - 3803 , - 5180 , - 857 , - 2994 , - 5511 , - 2328 , - 5605 , - 3182 , - 1139 , - 5556 , - 4273 , - 3370 , - 2847 , - 2704 , - 2941 , - 3558 , - 4555 , - 5932 , - 1609 , - 3746 , - 183 , - 3080 , - 277 , - 3934 , - 1891 , - 228 , - 5025 , - 4122 , - 3599 , - 3456 , - 3693 , - 4310 , - 5307 , - 604 , - 2361 , - 4498 , - 935 , - 3832 , - 1029 , - 4686 , - 2643 , - 980 , - 5777 , - 4874 , - 4351 , - 4208 , - 4445 , - 5062 , - 6059 , - 1356 , - 3113 , - 5250 , - 1687 , - 4584 , - 1781 , - 5438 , - 3395 , - 1732 , - 449 , - 5626 , - 5103 , - 4960 , - 5197 , - 5814 , - 731 , - 2108 , - 3865 , - 6002 , - 2439 , - 5336 , - 2533 , - 110 , - 4147 , - 2484 , - 1201 , - 298 , - 5855 , - 5712 , - 5949 , - 486 , - 1483 , - 2860 , - 4617 , - 674 , - 3191 , - 8 , - 3285 , - 862 , - 4899 , - 3236 , - 1953 , - 1050 , - 527 , - 384 , - 621 , - 1238 , - 2235 , - 3612 , - 5369 , - 1426 , - 3943 , - 760 , - 4037 , - 1614 , - 5651 , - 3988 , - 2705 , - 1802 , - 1279 , - 1136 , - 1373 , - 1990 , - 2987 , - 4364 , - 41 , - 2178 , - 4695 , - 1512 , - 4789 , - 2366 , - 323 , - 4740 , - 3457 , - 2554 , - 2031 , - 1888 , - 2125 , - 2742 , - 3739 , - 5116 , - 793 , - 2930 , - 5447 , - 2264 , - 5541 , - 3118 , - 1075 , - 5492 , - 4209 , - 3306 , - 2783 , - 2640 , - 2877 , - 3494 , - 4491 , - 5868 , - 1545 , - 3682 , - 119 , - 3016 , - 213 , - 3870 , - 1827 , - 164 , - 4961 , - 4058 , - 3535 , - 3392 , - 3629 , - 4246 , - 5243 , - 540 , - 2297 , - 4434 , - 871 , - 3768 , - 965 , - 4622 , - 2579 , - 916 , - 5713 , - 4810 , - 4287 , - 4144 , - 4381 , - 4998 , - 5995 , - 1292 , - 3049 , - 5186 , - 1623 , - 4520 , - 1717 , - 5374 , - 3331 , - 1668 , - 385 , - 5562 , - 5039 , - 4896 , - 5133 , - 5750 , - 667 , - 2044 , - 3801 , - 5938 , - 2375 , - 5272 , - 2469 , - 46 , - 4083 , - 2420 , - 1137 , - 234 , - 5791 , - 5648 , - 5885 , - 422 , - 1419 , - 2796 , - 4553 , - 610 , - 3127 , - 6024 , - 3221 , - 798 , - 4835 , - 3172 , - 1889 , - 986 , - 463 , - 320 , - 557 , - 1174 , - 2171 , - 3548 , - 5305 , - 1362 , - 3879 , - 696 , - 3973 , - 1550 , - 5587 , - 3924 , - 2641 , - 1738 , - 1215 , - 1072 , - 1309 , - 1926 , - 2923 , - 4300 , - 6057 , - 2114 , - 4631 , - 1448 , - 4725 , - 2302 , - 259 , - 4676 , - 3393 , - 2490 , - 1967 , - 1824 , - 2061 , - 2678 , - 3675 , - 5052 , - 729 , - 2866 , - 5383 , - 2200 , - 5477 , - 3054 , - 1011 , - 5428 , - 4145 , - 3242 , - 2719 , - 2576 , - 2813 , - 3430 , - 4427 , - 5804 , - 1481 , - 3618 , - 55 , - 2952 , - 149 , - 3806 , - 1763 , - 100 , - 4897 , - 3994 , - 3471 , - 3328 , - 3565 , - 4182 , - 5179 , - 476 , - 2233 , - 4370 , - 807 , - 3704 , - 901 , - 4558 , - 2515 , - 852 , - 5649 , - 4746 , - 4223 , - 4080 , - 4317 , - 4934 , - 5931 , - 1228 , - 2985 , - 5122 , - 1559 , - 4456 , - 1653 , - 5310 , - 3267 , - 1604 , - 321 , - 5498 , - 4975 , - 4832 , - 5069 , - 5686 , - 603 , - 1980 , - 3737 , - 5874 , - 2311 , - 5208 , - 2405 , - 6062 , - 4019 , - 2356 , - 1073 , - 170 , - 5727 , - 5584 , - 5821 , - 358 , - 1355 , - 2732 , - 4489 , - 546 , - 3063 , - 5960 , - 3157 , - 734 , - 4771 , - 3108 , - 1825 , - 922 , - 399 , - 256 , - 493 , - 1110 , - 2107 , - 3484 , - 5241 , - 1298 , - 3815 , - 632 , - 3909 , - 1486 , - 5523 , - 3860 , - 2577 , - 1674 , - 1151 , - 1008 , - 1245 , - 1862 , - 2859 , - 4236 , - 5993 , - 2050 , - 4567 , - 1384 , - 4661 , - 2238 , - 195 , - 4612 , - 3329 , - 2426 , - 1903 , - 1760 , - 1997 , - 2614 , - 3611 , - 4988 , - 665 , - 2802 , - 5319 , - 2136 , - 5413 , - 2990 , - 947 , - 5364 , - 4081 , - 3178 , - 2655 , - 2512 , - 2749 , - 3366 , - 4363 , - 5740 , - 1417 , - 3554 , - 6071 , - 2888 , - 85 , - 3742 , - 1699 , - 36 , - 4833 , - 3930 , - 3407 , - 3264 , - 3501 , - 4118 , - 5115 , - 412 , - 2169 , - 4306 , - 743 , - 3640 , - 837 , - 4494 , - 2451 , - 788 , - 5585 , - 4682 , - 4159 , - 4016 , - 4253 , - 4870 , - 5867 , - 1164 , - 2921 , - 5058 , - 1495 , - 4392 , - 1589 , - 5246 , - 3203 , - 1540 , - 257 , - 5434 , - 4911 , - 4768 , - 5005 , - 5622 , - 539 , - 1916 , - 3673 , - 5810 , - 2247 , - 5144 , - 2341 , - 5998 , - 3955 , - 2292 , - 1009 , - 106 , - 5663 , - 5520 , - 5757 , - 294 , - 1291 , - 2668 , - 4425 , - 482 , - 2999 , - 5896 , - 3093 , - 670 , - 4707 , - 3044 , - 1761 , - 858 , - 335 , - 192 , - 429 , - 1046 , - 2043 , - 3420 , - 5177 , - 1234 , - 3751 , - 568 , - 3845 , - 1422 , - 5459 , - 3796 , - 2513 , - 1610 , - 1087 , - 944 , - 1181 , - 1798 , - 2795 , - 4172 , - 5929 , - 1986 , - 4503 , - 1320 , - 4597 , - 2174 , - 131 , - 4548 , - 3265 , - 2362 , - 1839 , - 1696 , - 1933 , - 2550 , - 3547 , - 4924 , - 601 , - 2738 , - 5255 , - 2072 , - 5349 , - 2926 , - 883 , - 5300 , - 4017 , - 3114 , - 2591 , - 2448 , - 2685 , - 3302 , - 4299 , - 5676 , - 1353 , - 3490 , - 6007 , - 2824 , - 21 , - 3678 , - 1635 , - 6052 , - 4769 , - 3866 , - 3343 , - 3200 , - 3437 , - 4054 , - 5051 , - 348 , - 2105 , - 4242 , - 679 , - 3576 , - 773 , - 4430 , - 2387 , - 724 , - 5521 , - 4618 , - 4095 , - 3952 , - 4189 , - 4806 , - 5803 , - 1100 , - 2857 , - 4994 , - 1431 , - 4328 , - 1525 , - 5182 , - 3139 , - 1476 , - 193 , - 5370 , - 4847 , - 4704 , - 4941 , - 5558 , - 475 , - 1852 , - 3609 , - 5746 , - 2183 , - 5080 , - 2277 , - 5934 , - 3891 , - 2228 , - 945 , - 42 , - 5599 , - 5456 , - 5693 , - 230 , - 1227 , - 2604 , - 4361 , - 418 , - 2935 , - 5832 , - 3029 , - 606 , - 4643 , - 2980 , - 1697 , - 794 , - 271 , - 128 , - 365 , - 982 , - 1979 , - 3356 , - 5113 , - 1170 , - 3687 , - 504 , - 3781 , - 1358 , - 5395 , - 3732 , - 2449 , - 1546 , - 1023 , - 880 , - 1117 , - 1734 , - 2731 , - 4108 , - 5865 , - 1922 , - 4439 , - 1256 , - 4533 , - 2110 , - 67 , - 4484 , - 3201 , - 2298 , - 1775 , - 1632 , - 1869 , - 2486 , - 3483 , - 4860 , - 537 , - 2674 , - 5191 , - 2008 , - 5285 , - 2862 , - 819 , - 5236 , - 3953 , - 3050 , - 2527 , - 2384 , - 2621 , - 3238 , - 4235 , - 5612 , - 1289 , - 3426 , - 5943 , - 2760 , - 6037 , - 3614 , - 1571 , - 5988 , - 4705 , - 3802 , - 3279 , - 3136 , - 3373 , - 3990 , - 4987 , - 284 , - 2041 , - 4178 , - 615 , - 3512 , - 709 , - 4366 , - 2323 , - 660 , - 5457 , - 4554 , - 4031 , - 3888 , - 4125 , - 4742 , - 5739 , - 1036 , - 2793 , - 4930 , - 1367 , - 4264 , - 1461 , - 5118 , - 3075 , - 1412 , - 129 , - 5306 , - 4783 , - 4640 , - 4877 , - 5494 , - 411 , - 1788 , - 3545 , - 5682 , - 2119 , - 5016 , - 2213 , - 5870 , - 3827 , - 2164 , - 881 , - 6058 , - 5535 , - 5392 , - 5629 , - 166 , - 1163 , - 2540 , - 4297 , - 354 , - 2871 , - 5768 , - 2965 , - 542 , - 4579 , - 2916 , - 1633 , - 730 , - 207 , - 64 , - 301 , - 918 , - 1915 , - 3292 , - 5049 , - 1106 , - 3623 , - 440 , - 3717 , - 1294 , - 5331 , - 3668 , - 2385 , - 1482 , - 959 , - 816 , - 1053 , - 1670 , - 2667 , - 4044 , - 5801 , - 1858 , - 4375 , - 1192 , - 4469 , - 2046 , - 3 , - 4420 , - 3137 , - 2234 , - 1711 , - 1568 , - 1805 , - 2422 , - 3419 , - 4796 , - 473 , - 2610 , - 5127 , - 1944 , - 5221 , - 2798 , - 755 , - 5172 , - 3889 , - 2986 , - 2463 , - 2320 , - 2557 , - 3174 , - 4171 , - 5548 , - 1225 , - 3362 , - 5879 , - 2696 , - 5973 , - 3550 , - 1507 , - 5924 , - 4641 , - 3738 , - 3215 , - 3072 , - 3309 , - 3926 , - 4923 , - 220 , - 1977 , - 4114 , - 551 , - 3448 , - 645 , - 4302 , - 2259 , - 596 , - 5393 , - 4490 , - 3967 , - 3824 , - 4061 , - 4678 , - 5675 , - 972 , - 2729 , - 4866 , - 1303 , - 4200 , - 1397 , - 5054 , - 3011 , - 1348 , - 65 , - 5242 , - 4719 , - 4576 , - 4813 , - 5430 , - 347 , - 1724 , - 3481 , - 5618 , - 2055 , - 4952 , - 2149 , - 5806 , - 3763 , - 2100 , - 817 , - 5994 , - 5471 , - 5328 , - 5565 , - 102 , - 1099 , - 2476 , - 4233 , - 290 , - 2807 , - 5704 , - 2901 , - 478 , - 4515 , - 2852 , - 1569 , - 666 , - 143 , - 0 , - 743 , - 2446 , - 5109 , - 2588 , - 1027 , - 426 , - 785 , - 2104 , - 4383 , - 1478 , - 5677 , - 4692 , - 4667 , - 5602 , - 1353 , - 4208 , - 1879 , - 510 , - 101 , - 652 , - 2163 , - 4634 , - 1921 , - 168 , - 5519 , - 5686 , - 669 , - 2756 , - 5803 , - 3666 , - 2489 , - 2272 , - 3015 , - 4718 , - 1237 , - 4860 , - 3299 , - 2698 , - 3057 , - 4376 , - 511 , - 3750 , - 1805 , - 820 , - 795 , - 1730 , - 3625 , - 336 , - 4151 , - 2782 , - 2373 , - 2924 , - 4435 , - 762 , - 4193 , - 2440 , - 1647 , - 1814 , - 2941 , - 5028 , - 1931 , - 5938 , - 4761 , - 4544 , - 5287 , - 846 , - 3509 , - 988 , - 5571 , - 4970 , - 5329 , - 504 , - 2783 , - 6022 , - 4077 , - 3092 , - 3067 , - 4002 , - 5897 , - 2608 , - 279 , - 5054 , - 4645 , - 5196 , - 563 , - 3034 , - 321 , - 4712 , - 3919 , - 4086 , - 5213 , - 1156 , - 4203 , - 2066 , - 889 , - 672 , - 1415 , - 3118 , - 5781 , - 3260 , - 1699 , - 1098 , - 1457 , - 2776 , - 5055 , - 2150 , - 205 , - 5364 , - 5339 , - 130 , - 2025 , - 4880 , - 2551 , - 1182 , - 773 , - 1324 , - 2835 , - 5306 , - 2593 , - 840 , - 47 , - 214 , - 1341 , - 3428 , - 331 , - 4338 , - 3161 , - 2944 , - 3687 , - 5390 , - 1909 , - 5532 , - 3971 , - 3370 , - 3729 , - 5048 , - 1183 , - 4422 , - 2477 , - 1492 , - 1467 , - 2402 , - 4297 , - 1008 , - 4823 , - 3454 , - 3045 , - 3596 , - 5107 , - 1434 , - 4865 , - 3112 , - 2319 , - 2486 , - 3613 , - 5700 , - 2603 , - 466 , - 5433 , - 5216 , - 5959 , - 1518 , - 4181 , - 1660 , - 99 , - 5642 , - 6001 , - 1176 , - 3455 , - 550 , - 4749 , - 3764 , - 3739 , - 4674 , - 425 , - 3280 , - 951 , - 5726 , - 5317 , - 5868 , - 1235 , - 3706 , - 993 , - 5384 , - 4591 , - 4758 , - 5885 , - 1828 , - 4875 , - 2738 , - 1561 , - 1344 , - 2087 , - 3790 , - 309 , - 3932 , - 2371 , - 1770 , - 2129 , - 3448 , - 5727 , - 2822 , - 877 , - 6036 , - 6011 , - 802 , - 2697 , - 5552 , - 3223 , - 1854 , - 1445 , - 1996 , - 3507 , - 5978 , - 3265 , - 1512 , - 719 , - 886 , - 2013 , - 4100 , - 1003 , - 5010 , - 3833 , - 3616 , - 4359 , - 6062 , - 2581 , - 60 , - 4643 , - 4042 , - 4401 , - 5720 , - 1855 , - 5094 , - 3149 , - 2164 , - 2139 , - 3074 , - 4969 , - 1680 , - 5495 , - 4126 , - 3717 , - 4268 , - 5779 , - 2106 , - 5537 , - 3784 , - 2991 , - 3158 , - 4285 , - 228 , - 3275 , - 1138 , - 6105 , - 5888 , - 487 , - 2190 , - 4853 , - 2332 , - 771 , - 170 , - 529 , - 1848 , - 4127 , - 1222 , - 5421 , - 4436 , - 4411 , - 5346 , - 1097 , - 3952 , - 1623 , - 254 , - 5989 , - 396 , - 1907 , - 4378 , - 1665 , - 6056 , - 5263 , - 5430 , - 413 , - 2500 , - 5547 , - 3410 , - 2233 , - 2016 , - 2759 , - 4462 , - 981 , - 4604 , - 3043 , - 2442 , - 2801 , - 4120 , - 255 , - 3494 , - 1549 , - 564 , - 539 , - 1474 , - 3369 , - 80 , - 3895 , - 2526 , - 2117 , - 2668 , - 4179 , - 506 , - 3937 , - 2184 , - 1391 , - 1558 , - 2685 , - 4772 , - 1675 , - 5682 , - 4505 , - 4288 , - 5031 , - 590 , - 3253 , - 732 , - 5315 , - 4714 , - 5073 , - 248 , - 2527 , - 5766 , - 3821 , - 2836 , - 2811 , - 3746 , - 5641 , - 2352 , - 23 , - 4798 , - 4389 , - 4940 , - 307 , - 2778 , - 65 , - 4456 , - 3663 , - 3830 , - 4957 , - 900 , - 3947 , - 1810 , - 633 , - 416 , - 1159 , - 2862 , - 5525 , - 3004 , - 1443 , - 842 , - 1201 , - 2520 , - 4799 , - 1894 , - 6093 , - 5108 , - 5083 , - 6018 , - 1769 , - 4624 , - 2295 , - 926 , - 517 , - 1068 , - 2579 , - 5050 , - 2337 , - 584 , - 5935 , - 6102 , - 1085 , - 3172 , - 75 , - 4082 , - 2905 , - 2688 , - 3431 , - 5134 , - 1653 , - 5276 , - 3715 , - 3114 , - 3473 , - 4792 , - 927 , - 4166 , - 2221 , - 1236 , - 1211 , - 2146 , - 4041 , - 752 , - 4567 , - 3198 , - 2789 , - 3340 , - 4851 , - 1178 , - 4609 , - 2856 , - 2063 , - 2230 , - 3357 , - 5444 , - 2347 , - 210 , - 5177 , - 4960 , - 5703 , - 1262 , - 3925 , - 1404 , - 5987 , - 5386 , - 5745 , - 920 , - 3199 , - 294 , - 4493 , - 3508 , - 3483 , - 4418 , - 169 , - 3024 , - 695 , - 5470 , - 5061 , - 5612 , - 979 , - 3450 , - 737 , - 5128 , - 4335 , - 4502 , - 5629 , - 1572 , - 4619 , - 2482 , - 1305 , - 1088 , - 1831 , - 3534 , - 53 , - 3676 , - 2115 , - 1514 , - 1873 , - 3192 , - 5471 , - 2566 , - 621 , - 5780 , - 5755 , - 546 , - 2441 , - 5296 , - 2967 , - 1598 , - 1189 , - 1740 , - 3251 , - 5722 , - 3009 , - 1256 , - 463 , - 630 , - 1757 , - 3844 , - 747 , - 4754 , - 3577 , - 3360 , - 4103 , - 5806 , - 2325 , - 5948 , - 4387 , - 3786 , - 4145 , - 5464 , - 1599 , - 4838 , - 2893 , - 1908 , - 1883 , - 2818 , - 4713 , - 1424 , - 5239 , - 3870 , - 3461 , - 4012 , - 5523 , - 1850 , - 5281 , - 3528 , - 2735 , - 2902 , - 4029 , - 6116 , - 3019 , - 882 , - 5849 , - 5632 , - 231 , - 1934 , - 4597 , - 2076 , - 515 , - 6058 , - 273 , - 1592 , - 3871 , - 966 , - 5165 , - 4180 , - 4155 , - 5090 , - 841 , - 3696 , - 1367 , - 6142 , - 5733 , - 140 , - 1651 , - 4122 , - 1409 , - 5800 , - 5007 , - 5174 , - 157 , - 2244 , - 5291 , - 3154 , - 1977 , - 1760 , - 2503 , - 4206 , - 725 , - 4348 , - 2787 , - 2186 , - 2545 , - 3864 , - 6143 , - 3238 , - 1293 , - 308 , - 283 , - 1218 , - 3113 , - 5968 , - 3639 , - 2270 , - 1861 , - 2412 , - 3923 , - 250 , - 3681 , - 1928 , - 1135 , - 1302 , - 2429 , - 4516 , - 1419 , - 5426 , - 4249 , - 4032 , - 4775 , - 334 , - 2997 , - 476 , - 5059 , - 4458 , - 4817 , - 6136 , - 2271 , - 5510 , - 3565 , - 2580 , - 2555 , - 3490 , - 5385 , - 2096 , - 5911 , - 4542 , - 4133 , - 4684 , - 51 , - 2522 , - 5953 , - 4200 , - 3407 , - 3574 , - 4701 , - 644 , - 3691 , - 1554 , - 377 , - 160 , - 903 , - 2606 , - 5269 , - 2748 , - 1187 , - 586 , - 945 , - 2264 , - 4543 , - 1638 , - 5837 , - 4852 , - 4827 , - 5762 , - 1513 , - 4368 , - 2039 , - 670 , - 261 , - 812 , - 2323 , - 4794 , - 2081 , - 328 , - 5679 , - 5846 , - 829 , - 2916 , - 5963 , - 3826 , - 2649 , - 2432 , - 3175 , - 4878 , - 1397 , - 5020 , - 3459 , - 2858 , - 3217 , - 4536 , - 671 , - 3910 , - 1965 , - 980 , - 955 , - 1890 , - 3785 , - 496 , - 4311 , - 2942 , - 2533 , - 3084 , - 4595 , - 922 , - 4353 , - 2600 , - 1807 , - 1974 , - 3101 , - 5188 , - 2091 , - 6098 , - 4921 , - 4704 , - 5447 , - 1006 , - 3669 , - 1148 , - 5731 , - 5130 , - 5489 , - 664 , - 2943 , - 38 , - 4237 , - 3252 , - 3227 , - 4162 , - 6057 , - 2768 , - 439 , - 5214 , - 4805 , - 5356 , - 723 , - 3194 , - 481 , - 4872 , - 4079 , - 4246 , - 5373 , - 1316 , - 4363 , - 2226 , - 1049 , - 832 , - 1575 , - 3278 , - 5941 , - 3420 , - 1859 , - 1258 , - 1617 , - 2936 , - 5215 , - 2310 , - 365 , - 5524 , - 5499 , - 290 , - 2185 , - 5040 , - 2711 , - 1342 , - 933 , - 1484 , - 2995 , - 5466 , - 2753 , - 1000 , - 207 , - 374 , - 1501 , - 3588 , - 491 , - 4498 , - 3321 , - 3104 , - 3847 , - 5550 , - 2069 , - 5692 , - 4131 , - 3530 , - 3889 , - 5208 , - 1343 , - 4582 , - 2637 , - 1652 , - 1627 , - 2562 , - 4457 , - 1168 , - 4983 , - 3614 , - 3205 , - 3756 , - 5267 , - 1594 , - 5025 , - 3272 , - 2479 , - 2646 , - 3773 , - 5860 , - 2763 , - 626 , - 5593 , - 5376 , - 6119 , - 1678 , - 4341 , - 1820 , - 259 , - 5802 , - 17 , - 1336 , - 3615 , - 710 , - 4909 , - 3924 , - 3899 , - 4834 , - 585 , - 3440 , - 1111 , - 5886 , - 5477 , - 6028 , - 1395 , - 3866 , - 1153 , - 5544 , - 4751 , - 4918 , - 6045 , - 1988 , - 5035 , - 2898 , - 1721 , - 1504 , - 2247 , - 3950 , - 469 , - 4092 , - 2531 , - 1930 , - 2289 , - 3608 , - 5887 , - 2982 , - 1037 , - 52 , - 27 , - 962 , - 2857 , - 5712 , - 3383 , - 2014 , - 1605 , - 2156 , - 3667 , - 6138 , - 3425 , - 1672 , - 879 , - 1046 , - 2173 , - 4260 , - 1163 , - 5170 , - 3993 , - 3776 , - 4519 , - 78 , - 2741 , - 220 , - 4803 , - 4202 , - 4561 , - 5880 , - 2015 , - 5254 , - 3309 , - 2324 , - 2299 , - 3234 , - 5129 , - 1840 , - 5655 , - 4286 , - 3877 , - 4428 , - 5939 , - 2266 , - 5697 , - 3944 , - 3151 , - 3318 , - 4445 , - 388 , - 3435 , - 1298 , - 121 , - 6048 , - 647 , - 2350 , - 5013 , - 2492 , - 931 , - 330 , - 689 , - 2008 , - 4287 , - 1382 , - 5581 , - 4596 , - 4571 , - 5506 , - 1257 , - 4112 , - 1783 , - 414 , - 5 , - 556 , - 2067 , - 4538 , - 1825 , - 72 , - 5423 , - 5590 , - 573 , - 2660 , - 5707 , - 3570 , - 2393 , - 2176 , - 2919 , - 4622 , - 1141 , - 4764 , - 3203 , - 2602 , - 2961 , - 4280 , - 415 , - 3654 , - 1709 , - 724 , - 699 , - 1634 , - 3529 , - 240 , - 4055 , - 2686 , - 2277 , - 2828 , - 4339 , - 666 , - 4097 , - 2344 , - 1551 , - 1718 , - 2845 , - 4932 , - 1835 , - 5842 , - 4665 , - 4448 , - 5191 , - 750 , - 3413 , - 892 , - 5475 , - 4874 , - 5233 , - 408 , - 2687 , - 5926 , - 3981 , - 2996 , - 2971 , - 3906 , - 5801 , - 2512 , - 183 , - 4958 , - 4549 , - 5100 , - 467 , - 2938 , - 225 , - 4616 , - 3823 , - 3990 , - 5117 , - 1060 , - 4107 , - 1970 , - 793 , - 576 , - 1319 , - 3022 , - 5685 , - 3164 , - 1603 , - 1002 , - 1361 , - 2680 , - 4959 , - 2054 , - 109 , - 5268 , - 5243 , - 34 , - 1929 , - 4784 , - 2455 , - 1086 , - 677 , - 1228 , - 2739 , - 5210 , - 2497 , - 744 , - 6095 , - 118 , - 1245 , - 3332 , - 235 , - 4242 , - 3065 , - 2848 , - 3591 , - 5294 , - 1813 , - 5436 , - 3875 , - 3274 , - 3633 , - 4952 , - 1087 , - 4326 , - 2381 , - 1396 , - 1371 , - 2306 , - 4201 , - 912 , - 4727 , - 3358 , - 2949 , - 3500 , - 5011 , - 1338 , - 4769 , - 3016 , - 2223 , - 2390 , - 3517 , - 5604 , - 2507 , - 370 , - 5337 , - 5120 , - 5863 , - 1422 , - 4085 , - 1564 , - 3 , - 5546 , - 5905 , - 1080 , - 3359 , - 454 , - 4653 , - 3668 , - 3643 , - 4578 , - 329 , - 3184 , - 855 , - 5630 , - 5221 , - 5772 , - 1139 , - 3610 , - 897 , - 5288 , - 4495 , - 4662 , - 5789 , - 1732 , - 4779 , - 2642 , - 1465 , - 1248 , - 1991 , - 3694 , - 213 , - 3836 , - 2275 , - 1674 , - 2033 , - 3352 , - 5631 , - 2726 , - 781 , - 5940 , - 5915 , - 706 , - 2601 , - 5456 , - 3127 , - 1758 , - 1349 , - 1900 , - 3411 , - 5882 , - 3169 , - 1416 , - 623 , - 790 , - 1917 , - 4004 , - 907 , - 4914 , - 3737 , - 3520 , - 4263 , - 5966 , - 2485 , - 6108 , - 4547 , - 3946 , - 4305 , - 5624 , - 1759 , - 4998 , - 3053 , - 2068 , - 2043 , - 2978 , - 4873 , - 1584 , - 5399 , - 4030 , - 3621 , - 4172 , - 5683 , - 2010 , - 5441 , - 3688 , - 2895 , - 3062 , - 4189 , - 132 , - 3179 , - 1042 , - 6009 , - 5792 , - 391 , - 2094 , - 4757 , - 2236 , - 675 , - 74 , - 433 , - 1752 , - 4031 , - 1126 , - 5325 , - 4340 , - 4315 , - 5250 , - 1001 , - 3856 , - 1527 , - 158 , - 5893 , - 300 , - 1811 , - 4282 , - 1569 , - 5960 , - 5167 , - 5334 , - 317 , - 2404 , - 5451 , - 3314 , - 2137 , - 1920 , - 2663 , - 4366 , - 885 , - 4508 , - 2947 , - 2346 , - 2705 , - 4024 , - 159 , - 3398 , - 1453 , - 468 , - 443 , - 1378 , - 3273 , - 6128 , - 3799 , - 2430 , - 2021 , - 2572 , - 4083 , - 410 , - 3841 , - 2088 , - 1295 , - 1462 , - 2589 , - 4676 , - 1579 , - 5586 , - 4409 , - 4192 , - 4935 , - 494 , - 3157 , - 636 , - 5219 , - 4618 , - 4977 , - 152 , - 2431 , - 5670 , - 3725 , - 2740 , - 2715 , - 3650 , - 5545 , - 2256 , - 6071 , - 4702 , - 4293 , - 4844 , - 211 , - 2682 , - 6113 , - 4360 , - 3567 , - 3734 , - 4861 , - 804 , - 3851 , - 1714 , - 537 , - 320 , - 1063 , - 2766 , - 5429 , - 2908 , - 1347 , - 746 , - 1105 , - 2424 , - 4703 , - 1798 , - 5997 , - 5012 , - 4987 , - 5922 , - 1673 , - 4528 , - 2199 , - 830 , - 421 , - 972 , - 2483 , - 4954 , - 2241 , - 488 , - 5839 , - 6006 , - 989 , - 3076 , - 6123 , - 3986 , - 2809 , - 2592 , - 3335 , - 5038 , - 1557 , - 5180 , - 3619 , - 3018 , - 3377 , - 4696 , - 831 , - 4070 , - 2125 , - 1140 , - 1115 , - 2050 , - 3945 , - 656 , - 4471 , - 3102 , - 2693 , - 3244 , - 4755 , - 1082 , - 4513 , - 2760 , - 1967 , - 2134 , - 3261 , - 5348 , - 2251 , - 114 , - 5081 , - 4864 , - 5607 , - 1166 , - 3829 , - 1308 , - 5891 , - 5290 , - 5649 , - 824 , - 3103 , - 198 , - 4397 , - 3412 , - 3387 , - 4322 , - 73 , - 2928 , - 599 , - 5374 , - 4965 , - 5516 , - 883 , - 3354 , - 641 , - 5032 , - 4239 , - 4406 , - 5533 , - 1476 , - 4523 , - 2386 , - 1209 , - 992 , - 1735 , - 3438 , - 6101 , - 3580 , - 2019 , - 1418 , - 1777 , - 3096 , - 5375 , - 2470 , - 525 , - 5684 , - 5659 , - 450 , - 2345 , - 5200 , - 2871 , - 1502 , - 1093 , - 1644 , - 3155 , - 5626 , - 2913 , - 1160 , - 367 , - 534 , - 1661 , - 3748 , - 651 , - 4658 , - 3481 , - 3264 , - 4007 , - 5710 , - 2229 , - 5852 , - 4291 , - 3690 , - 4049 , - 5368 , - 1503 , - 4742 , - 2797 , - 1812 , - 1787 , - 2722 , - 4617 , - 1328 , - 5143 , - 3774 , - 3365 , - 3916 , - 5427 , - 1754 , - 5185 , - 3432 , - 2639 , - 2806 , - 3933 , - 6020 , - 2923 , - 786 , - 5753 , - 5536 , - 135 , - 1838 , - 4501 , - 1980 , - 419 , - 5962 , - 177 , - 1496 , - 3775 , - 870 , - 5069 , - 4084 , - 4059 , - 4994 , - 745 , - 3600 , - 1271 , - 6046 , - 5637 , - 44 , - 1555 , - 4026 , - 1313 , - 5704 , - 4911 , - 5078 , - 61 , - 2148 , - 5195 , - 3058 , - 1881 , - 1664 , - 2407 , - 4110 , - 629 , - 4252 , - 2691 , - 2090 , - 2449 , - 3768 , - 6047 , - 3142 , - 1197 , - 212 , - 187 , - 1122 , - 3017 , - 5872 , - 3543 , - 2174 , - 1765 , - 2316 , - 3827 , - 154 , - 3585 , - 1832 , - 1039 , - 1206 , - 2333 , - 4420 , - 1323 , - 5330 , - 4153 , - 3936 , - 4679 , - 238 , - 2901 , - 380 , - 4963 , - 4362 , - 4721 , - 6040 , - 2175 , - 5414 , - 3469 , - 2484 , - 2459 , - 3394 , - 5289 , - 2000 , - 5815 , - 4446 , - 4037 , - 4588 , - 6099 , - 2426 , - 5857 , - 4104 , - 3311 , - 3478 , - 4605 , - 548 , - 3595 , - 1458 , - 281 , - 64 , - 807 , - 2510 , - 5173 , - 2652 , - 1091 , - 490 , - 849 , - 2168 , - 4447 , - 1542 , - 5741 , - 4756 , - 4731 , - 5666 , - 1417 , - 4272 , - 1943 , - 574 , - 165 , - 716 , - 2227 , - 4698 , - 1985 , - 232 , - 5583 , - 5750 , - 733 , - 2820 , - 5867 , - 3730 , - 2553 , - 2336 , - 3079 , - 4782 , - 1301 , - 4924 , - 3363 , - 2762 , - 3121 , - 4440 , - 575 , - 3814 , - 1869 , - 884 , - 859 , - 1794 , - 3689 , - 400 , - 4215 , - 2846 , - 2437 , - 2988 , - 4499 , - 826 , - 4257 , - 2504 , - 1711 , - 1878 , - 3005 , - 5092 , - 1995 , - 6002 , - 4825 , - 4608 , - 5351 , - 910 , - 3573 , - 1052 , - 5635 , - 5034 , - 5393 , - 568 , - 2847 , - 6086 , - 4141 , - 3156 , - 3131 , - 4066 , - 5961 , - 2672 , - 343 , - 5118 , - 4709 , - 5260 , - 627 , - 3098 , - 385 , - 4776 , - 3983 , - 4150 , - 5277 , - 1220 , - 4267 , - 2130 , - 953 , - 736 , - 1479 , - 3182 , - 5845 , - 3324 , - 1763 , - 1162 , - 1521 , - 2840 , - 5119 , - 2214 , - 269 , - 5428 , - 5403 , - 194 , - 2089 , - 4944 , - 2615 , - 1246 , - 837 , - 1388 , - 2899 , - 5370 , - 2657 , - 904 , - 111 , - 278 , - 1405 , - 3492 , - 395 , - 4402 , - 3225 , - 3008 , - 3751 , - 5454 , - 1973 , - 5596 , - 4035 , - 3434 , - 3793 , - 5112 , - 1247 , - 4486 , - 2541 , - 1556 , - 1531 , - 2466 , - 4361 , - 1072 , - 4887 , - 3518 , - 3109 , - 3660 , - 5171 , - 1498 , - 4929 , - 3176 , - 2383 , - 2550 , - 3677 , - 5764 , - 2667 , - 530 , - 5497 , - 5280 , - 6023 , - 1582 , - 4245 , - 1724 , - 163 , - 5706 , - 6065 , - 1240 , - 3519 , - 614 , - 4813 , - 3828 , - 3803 , - 4738 , - 489 , - 3344 , - 1015 , - 5790 , - 5381 , - 5932 , - 1299 , - 3770 , - 1057 , - 5448 , - 4655 , - 4822 , - 5949 , - 1892 , - 4939 , - 2802 , - 1625 , - 1408 , - 2151 , - 3854 , - 373 , - 3996 , - 2435 , - 1834 , - 2193 , - 3512 , - 5791 , - 2886 , - 941 , - 6100 , - 6075 , - 866 , - 2761 , - 5616 , - 3287 , - 1918 , - 1509 , - 2060 , - 3571 , - 6042 , - 3329 , - 1576 , - 783 , - 950 , - 2077 , - 4164 , - 1067 , - 5074 , - 3897 , - 3680 , - 4423 , - 6126 , - 2645 , - 124 , - 4707 , - 4106 , - 4465 , - 5784 , - 1919 , - 5158 , - 3213 , - 2228 , - 2203 , - 3138 , - 5033 , - 1744 , - 5559 , - 4190 , - 3781 , - 4332 , - 5843 , - 2170 , - 5601 , - 3848 , - 3055 , - 3222 , - 4349 , - 292 , - 3339 , - 1202 , - 25 , - 5952 , - 551 , - 2254 , - 4917 , - 2396 , - 835 , - 234 , - 593 , - 1912 , - 4191 , - 1286 , - 5485 , - 4500 , - 4475 , - 5410 , - 1161 , - 4016 , - 1687 , - 318 , - 6053 , - 460 , - 1971 , - 4442 , - 1729 , - 6120 , - 5327 , - 5494 , - 477 , - 2564 , - 5611 , - 3474 , - 2297 , - 2080 , - 2823 , - 4526 , - 1045 , - 4668 , - 3107 , - 2506 , - 2865 , - 4184 , - 319 , - 3558 , - 1613 , - 628 , - 603 , - 1538 , - 3433 , - 144 , - 3959 , - 2590 , - 2181 , - 2732 , - 4243 , - 570 , - 4001 , - 2248 , - 1455 , - 1622 , - 2749 , - 4836 , - 1739 , - 5746 , - 4569 , - 4352 , - 5095 , - 654 , - 3317 , - 796 , - 5379 , - 4778 , - 5137 , - 312 , - 2591 , - 5830 , - 3885 , - 2900 , - 2875 , - 3810 , - 5705 , - 2416 , - 87 , - 4862 , - 4453 , - 5004 , - 371 , - 2842 , - 129 , - 4520 , - 3727 , - 3894 , - 5021 , - 964 , - 4011 , - 1874 , - 697 , - 480 , - 1223 , - 2926 , - 5589 , - 3068 , - 1507 , - 906 , - 1265 , - 2584 , - 4863 , - 1958 , - 13 , - 5172 , - 5147 , - 6082 , - 1833 , - 4688 , - 2359 , - 990 , - 581 , - 1132 , - 2643 , - 5114 , - 2401 , - 648 , - 5999 , - 22 , - 1149 , - 3236 , - 139 , - 4146 , - 2969 , - 2752 , - 3495 , - 5198 , - 1717 , - 5340 , - 3779 , - 3178 , - 3537 , - 4856 , - 991 , - 4230 , - 2285 , - 1300 , - 1275 , - 2210 , - 4105 , - 816 , - 4631 , - 3262 , - 2853 , - 3404 , - 4915 , - 1242 , - 4673 , - 2920 , - 2127 , - 2294 , - 3421 , - 5508 , - 2411 , - 274 , - 5241 , - 5024 , - 5767 , - 1326 , - 3989 , - 1468 , - 6051 , - 5450 , - 5809 , - 984 , - 3263 , - 358 , - 4557 , - 3572 , - 3547 , - 4482 , - 233 , - 3088 , - 759 , - 5534 , - 5125 , - 5676 , - 1043 , - 3514 , - 801 , - 5192 , - 4399 , - 4566 , - 5693 , - 1636 , - 4683 , - 2546 , - 1369 , - 1152 , - 1895 , - 3598 , - 117 , - 3740 , - 2179 , - 1578 , - 1937 , - 3256 , - 5535 , - 2630 , - 685 , - 5844 , - 5819 , - 610 , - 2505 , - 5360 , - 3031 , - 1662 , - 1253 , - 1804 , - 3315 , - 5786 , - 3073 , - 1320 , - 527 , - 694 , - 1821 , - 3908 , - 811 , - 4818 , - 3641 , - 3424 , - 4167 , - 5870 , - 2389 , - 6012 , - 4451 , - 3850 , - 4209 , - 5528 , - 1663 , - 4902 , - 2957 , - 1972 , - 1947 , - 2882 , - 4777 , - 1488 , - 5303 , - 3934 , - 3525 , - 4076 , - 5587 , - 1914 , - 5345 , - 3592 , - 2799 , - 2966 , - 4093 , - 36 , - 3083 , - 946 , - 5913 , - 5696 , - 295 , - 1998 , - 4661 , - 2140 , - 579 , - 6122 , - 337 , - 1656 , - 3935 , - 1030 , - 5229 , - 4244 , - 4219 , - 5154 , - 905 , - 3760 , - 1431 , - 62 , - 5797 , - 204 , - 1715 , - 4186 , - 1473 , - 5864 , - 5071 , - 5238 , - 221 , - 2308 , - 5355 , - 3218 , - 2041 , - 1824 , - 2567 , - 4270 , - 789 , - 4412 , - 2851 , - 2250 , - 2609 , - 3928 , - 63 , - 3302 , - 1357 , - 372 , - 347 , - 1282 , - 3177 , - 6032 , - 3703 , - 2334 , - 1925 , - 2476 , - 3987 , - 314 , - 3745 , - 1992 , - 1199 , - 1366 , - 2493 , - 4580 , - 1483 , - 5490 , - 4313 , - 4096 , - 4839 , - 398 , - 3061 , - 540 , - 5123 , - 4522 , - 4881 , - 56 , - 2335 , - 5574 , - 3629 , - 2644 , - 2619 , - 3554 , - 5449 , - 2160 , - 5975 , - 4606 , - 4197 , - 4748 , - 115 , - 2586 , - 6017 , - 4264 , - 3471 , - 3638 , - 4765 , - 708 , - 3755 , - 1618 , - 441 , - 224 , - 967 , - 2670 , - 5333 , - 2812 , - 1251 , - 650 , - 1009 , - 2328 , - 4607 , - 1702 , - 5901 , - 4916 , - 4891 , - 5826 , - 1577 , - 4432 , - 2103 , - 734 , - 325 , - 876 , - 2387 , - 4858 , - 2145 , - 392 , - 5743 , - 5910 , - 893 , - 2980 , - 6027 , - 3890 , - 2713 , - 2496 , - 3239 , - 4942 , - 1461 , - 5084 , - 3523 , - 2922 , - 3281 , - 4600 , - 735 , - 3974 , - 2029 , - 1044 , - 1019 , - 1954 , - 3849 , - 560 , - 4375 , - 3006 , - 2597 , - 3148 , - 4659 , - 986 , - 4417 , - 2664 , - 1871 , - 2038 , - 3165 , - 5252 , - 2155 , - 18 , - 4985 , - 4768 , - 5511 , - 1070 , - 3733 , - 1212 , - 5795 , - 5194 , - 5553 , - 728 , - 3007 , - 102 , - 4301 , - 3316 , - 3291 , - 4226 , - 6121 , - 2832 , - 503 , - 5278 , - 4869 , - 5420 , - 787 , - 3258 , - 545 , - 4936 , - 4143 , - 4310 , - 5437 , - 1380 , - 4427 , - 2290 , - 1113 , - 896 , - 1639 , - 3342 , - 6005 , - 3484 , - 1923 , - 1322 , - 1681 , - 3000 , - 5279 , - 2374 , - 429 , - 5588 , - 5563 , - 354 , - 2249 , - 5104 , - 2775 , - 1406 , - 997 , - 1548 , - 3059 , - 5530 , - 2817 , - 1064 , - 271 , - 438 , - 1565 , - 3652 , - 555 , - 4562 , - 3385 , - 3168 , - 3911 , - 5614 , - 2133 , - 5756 , - 4195 , - 3594 , - 3953 , - 5272 , - 1407 , - 4646 , - 2701 , - 1716 , - 1691 , - 2626 , - 4521 , - 1232 , - 5047 , - 3678 , - 3269 , - 3820 , - 5331 , - 1658 , - 5089 , - 3336 , - 2543 , - 2710 , - 3837 , - 5924 , - 2827 , - 690 , - 5657 , - 5440 , - 39 , - 1742 , - 4405 , - 1884 , - 323 , - 5866 , - 81 , - 1400 , - 3679 , - 774 , - 4973 , - 3988 , - 3963 , - 4898 , - 649 , - 3504 , - 1175 , - 5950 , - 5541 , - 6092 , - 1459 , - 3930 , - 1217 , - 5608 , - 4815 , - 4982 , - 6109 , - 2052 , - 5099 , - 2962 , - 1785 , - 1568 , - 2311 , - 4014 , - 533 , - 4156 , - 2595 , - 1994 , - 2353 , - 3672 , - 5951 , - 3046 , - 1101 , - 116 , - 91 , - 1026 , - 2921 , - 5776 , - 3447 , - 2078 , - 1669 , - 2220 , - 3731 , - 58 , - 3489 , - 1736 , - 943 , - 1110 , - 2237 , - 4324 , - 1227 , - 5234 , - 4057 , - 3840 , - 4583 , - 142 , - 2805 , - 284 , - 4867 , - 4266 , - 4625 , - 5944 , - 2079 , - 5318 , - 3373 , - 2388 , - 2363 , - 3298 , - 5193 , - 1904 , - 5719 , - 4350 , - 3941 , - 4492 , - 6003 , - 2330 , - 5761 , - 4008 , - 3215 , - 3382 , - 4509 , - 452 , - 3499 , - 1362 , - 185 , - 6112 , - 711 , - 2414 , - 5077 , - 2556 , - 995 , - 394 , - 753 , - 2072 , - 4351 , - 1446 , - 5645 , - 4660 , - 4635 , - 5570 , - 1321 , - 4176 , - 1847 , - 478 , - 69 , - 620 , - 2131 , - 4602 , - 1889 , - 136 , - 5487 , - 5654 , - 637 , - 2724 , - 5771 , - 3634 , - 2457 , - 2240 , - 2983 , - 4686 , - 1205 , - 4828 , - 3267 , - 2666 , - 3025 , - 4344 , - 479 , - 3718 , - 1773 , - 788 , - 763 , - 1698 , - 3593 , - 304 , - 4119 , - 2750 , - 2341 , - 2892 , - 4403 , - 730 , - 4161 , - 2408 , - 1615 , - 1782 , - 2909 , - 4996 , - 1899 , - 5906 , - 4729 , - 4512 , - 5255 , - 814 , - 3477 , - 956 , - 5539 , - 4938 , - 5297 , - 472 , - 2751 , - 5990 , - 4045 , - 3060 , - 3035 , - 3970 , - 5865 , - 2576 , - 247 , - 5022 , - 4613 , - 5164 , - 531 , - 3002 , - 289 , - 4680 , - 3887 , - 4054 , - 5181 , - 1124 , - 4171 , - 2034 , - 857 , - 640 , - 1383 , - 3086 , - 5749 , - 3228 , - 1667 , - 1066 , - 1425 , - 2744 , - 5023 , - 2118 , - 173 , - 5332 , - 5307 , - 98 , - 1993 , - 4848 , - 2519 , - 1150 , - 741 , - 1292 , - 2803 , - 5274 , - 2561 , - 808 , - 15 , - 182 , - 1309 , - 3396 , - 299 , - 4306 , - 3129 , - 2912 , - 3655 , - 5358 , - 1877 , - 5500 , - 3939 , - 3338 , - 3697 , - 5016 , - 1151 , - 4390 , - 2445 , - 1460 , - 1435 , - 2370 , - 4265 , - 976 , - 4791 , - 3422 , - 3013 , - 3564 , - 5075 , - 1402 , - 4833 , - 3080 , - 2287 , - 2454 , - 3581 , - 5668 , - 2571 , - 434 , - 5401 , - 5184 , - 5927 , - 1486 , - 4149 , - 1628 , - 67 , - 5610 , - 5969 , - 1144 , - 3423 , - 518 , - 4717 , - 3732 , - 3707 , - 4642 , - 393 , - 3248 , - 919 , - 5694 , - 5285 , - 5836 , - 1203 , - 3674 , - 961 , - 5352 , - 4559 , - 4726 , - 5853 , - 1796 , - 4843 , - 2706 , - 1529 , - 1312 , - 2055 , - 3758 , - 277 , - 3900 , - 2339 , - 1738 , - 2097 , - 3416 , - 5695 , - 2790 , - 845 , - 6004 , - 5979 , - 770 , - 2665 , - 5520 , - 3191 , - 1822 , - 1413 , - 1964 , - 3475 , - 5946 , - 3233 , - 1480 , - 687 , - 854 , - 1981 , - 4068 , - 971 , - 4978 , - 3801 , - 3584 , - 4327 , - 6030 , - 2549 , - 28 , - 4611 , - 4010 , - 4369 , - 5688 , - 1823 , - 5062 , - 3117 , - 2132 , - 2107 , - 3042 , - 4937 , - 1648 , - 5463 , - 4094 , - 3685 , - 4236 , - 5747 , - 2074 , - 5505 , - 3752 , - 2959 , - 3126 , - 4253 , - 196 , - 3243 , - 1106 , - 6073 , - 5856 , - 455 , - 2158 , - 4821 , - 2300 , - 739 , - 138 , - 497 , - 1816 , - 4095 , - 1190 , - 5389 , - 4404 , - 4379 , - 5314 , - 1065 , - 3920 , - 1591 , - 222 , - 5957 , - 364 , - 1875 , - 4346 , - 1633 , - 6024 , - 5231 , - 5398 , - 381 , - 2468 , - 5515 , - 3378 , - 2201 , - 1984 , - 2727 , - 4430 , - 949 , - 4572 , - 3011 , - 2410 , - 2769 , - 4088 , - 223 , - 3462 , - 1517 , - 532 , - 507 , - 1442 , - 3337 , - 48 , - 3863 , - 2494 , - 2085 , - 2636 , - 4147 , - 474 , - 3905 , - 2152 , - 1359 , - 1526 , - 2653 , - 4740 , - 1643 , - 5650 , - 4473 , - 4256 , - 4999 , - 558 , - 3221 , - 700 , - 5283 , - 4682 , - 5041 , - 216 , - 2495 , - 5734 , - 3789 , - 2804 , - 2779 , - 3714 , - 5609 , - 2320 , - 6135 , - 4766 , - 4357 , - 4908 , - 275 , - 2746 , - 33 , - 4424 , - 3631 , - 3798 , - 4925 , - 868 , - 3915 , - 1778 , - 601 , - 384 , - 1127 , - 2830 , - 5493 , - 2972 , - 1411 , - 810 , - 1169 , - 2488 , - 4767 , - 1862 , - 6061 , - 5076 , - 5051 , - 5986 , - 1737 , - 4592 , - 2263 , - 894 , - 485 , - 1036 , - 2547 , - 5018 , - 2305 , - 552 , - 5903 , - 6070 , - 1053 , - 3140 , - 43 , - 4050 , - 2873 , - 2656 , - 3399 , - 5102 , - 1621 , - 5244 , - 3683 , - 3082 , - 3441 , - 4760 , - 895 , - 4134 , - 2189 , - 1204 , - 1179 , - 2114 , - 4009 , - 720 , - 4535 , - 3166 , - 2757 , - 3308 , - 4819 , - 1146 , - 4577 , - 2824 , - 2031 , - 2198 , - 3325 , - 5412 , - 2315 , - 178 , - 5145 , - 4928 , - 5671 , - 1230 , - 3893 , - 1372 , - 5955 , - 5354 , - 5713 , - 888 , - 3167 , - 262 , - 4461 , - 3476 , - 3451 , - 4386 , - 137 , - 2992 , - 663 , - 5438 , - 5029 , - 5580 , - 947 , - 3418 , - 705 , - 5096 , - 4303 , - 4470 , - 5597 , - 1540 , - 4587 , - 2450 , - 1273 , - 1056 , - 1799 , - 3502 , - 21 , - 3644 , - 2083 , - 1482 , - 1841 , - 3160 , - 5439 , - 2534 , - 589 , - 5748 , - 5723 , - 514 , - 2409 , - 5264 , - 2935 , - 1566 , - 1157 , - 1708 , - 3219 , - 5690 , - 2977 , - 1224 , - 431 , - 598 , - 1725 , - 3812 , - 715 , - 4722 , - 3545 , - 3328 , - 4071 , - 5774 , - 2293 , - 5916 , - 4355 , - 3754 , - 4113 , - 5432 , - 1567 , - 4806 , - 2861 , - 1876 , - 1851 , - 2786 , - 4681 , - 1392 , - 5207 , - 3838 , - 3429 , - 3980 , - 5491 , - 1818 , - 5249 , - 3496 , - 2703 , - 2870 , - 3997 , - 6084 , - 2987 , - 850 , - 5817 , - 5600 , - 199 , - 1902 , - 4565 , - 2044 , - 483 , - 6026 , - 241 , - 1560 , - 3839 , - 934 , - 5133 , - 4148 , - 4123 , - 5058 , - 809 , - 3664 , - 1335 , - 6110 , - 5701 , - 108 , - 1619 , - 4090 , - 1377 , - 5768 , - 4975 , - 5142 , - 125 , - 2212 , - 5259 , - 3122 , - 1945 , - 1728 , - 2471 , - 4174 , - 693 , - 4316 , - 2755 , - 2154 , - 2513 , - 3832 , - 6111 , - 3206 , - 1261 , - 276 , - 251 , - 1186 , - 3081 , - 5936 , - 3607 , - 2238 , - 1829 , - 2380 , - 3891 , - 218 , - 3649 , - 1896 , - 1103 , - 1270 , - 2397 , - 4484 , - 1387 , - 5394 , - 4217 , - 4000 , - 4743 , - 302 , - 2965 , - 444 , - 5027 , - 4426 , - 4785 , - 6104 , - 2239 , - 5478 , - 3533 , - 2548 , - 2523 , - 3458 , - 5353 , - 2064 , - 5879 , - 4510 , - 4101 , - 4652 , - 19 , - 2490 , - 5921 , - 4168 , - 3375 , - 3542 , - 4669 , - 612 , - 3659 , - 1522 , - 345 , - 128 , - 871 , - 2574 , - 5237 , - 2716 , - 1155 , - 554 , - 913 , - 2232 , - 4511 , - 1606 , - 5805 , - 4820 , - 4795 , - 5730 , - 1481 , - 4336 , - 2007 , - 638 , - 229 , - 780 , - 2291 , - 4762 , - 2049 , - 296 , - 5647 , - 5814 , - 797 , - 2884 , - 5931 , - 3794 , - 2617 , - 2400 , - 3143 , - 4846 , - 1365 , - 4988 , - 3427 , - 2826 , - 3185 , - 4504 , - 639 , - 3878 , - 1933 , - 948 , - 923 , - 1858 , - 3753 , - 464 , - 4279 , - 2910 , - 2501 , - 3052 , - 4563 , - 890 , - 4321 , - 2568 , - 1775 , - 1942 , - 3069 , - 5156 , - 2059 , - 6066 , - 4889 , - 4672 , - 5415 , - 974 , - 3637 , - 1116 , - 5699 , - 5098 , - 5457 , - 632 , - 2911 , - 6 , - 4205 , - 3220 , - 3195 , - 4130 , - 6025 , - 2736 , - 407 , - 5182 , - 4773 , - 5324 , - 691 , - 3162 , - 449 , - 4840 , - 4047 , - 4214 , - 5341 , - 1284 , - 4331 , - 2194 , - 1017 , - 800 , - 1543 , - 3246 , - 5909 , - 3388 , - 1827 , - 1226 , - 1585 , - 2904 , - 5183 , - 2278 , - 333 , - 5492 , - 5467 , - 258 , - 2153 , - 5008 , - 2679 , - 1310 , - 901 , - 1452 , - 2963 , - 5434 , - 2721 , - 968 , - 175 , - 342 , - 1469 , - 3556 , - 459 , - 4466 , - 3289 , - 3072 , - 3815 , - 5518 , - 2037 , - 5660 , - 4099 , - 3498 , - 3857 , - 5176 , - 1311 , - 4550 , - 2605 , - 1620 , - 1595 , - 2530 , - 4425 , - 1136 , - 4951 , - 3582 , - 3173 , - 3724 , - 5235 , - 1562 , - 4993 , - 3240 , - 2447 , - 2614 , - 3741 , - 5828 , - 2731 , - 594 , - 5561 , - 5344 , - 6087 , - 1646 , - 4309 , - 1788 , - 227 , - 5770 , - 6129 , - 1304 , - 3583 , - 678 , - 4877 , - 3892 , - 3867 , - 4802 , - 553 , - 3408 , - 1079 , - 5854 , - 5445 , - 5996 , - 1363 , - 3834 , - 1121 , - 5512 , - 4719 , - 4886 , - 6013 , - 1956 , - 5003 , - 2866 , - 1689 , - 1472 , - 2215 , - 3918 , - 437 , - 4060 , - 2499 , - 1898 , - 2257 , - 3576 , - 5855 , - 2950 , - 1005 , - 20 , - 6139 , - 930 , - 2825 , - 5680 , - 3351 , - 1982 , - 1573 , - 2124 , - 3635 , - 6106 , - 3393 , - 1640 , - 847 , - 1014 , - 2141 , - 4228 , - 1131 , - 5138 , - 3961 , - 3744 , - 4487 , - 46 , - 2709 , - 188 , - 4771 , - 4170 , - 4529 , - 5848 , - 1983 , - 5222 , - 3277 , - 2292 , - 2267 , - 3202 , - 5097 , - 1808 , - 5623 , - 4254 , - 3845 , - 4396 , - 5907 , - 2234 , - 5665 , - 3912 , - 3119 , - 3286 , - 4413 , - 356 , - 3403 , - 1266 , - 89 , - 6016 , - 615 , - 2318 , - 4981 , - 2460 , - 899 , - 298 , - 657 , - 1976 , - 4255 , - 1350 , - 5549 , - 4564 , - 4539 , - 5474 , - 1225 , - 4080 , - 1751 , - 382 , - 6117 , - 524 , - 2035 , - 4506 , - 1793 , - 40 , - 5391 , - 5558 , - 541 , - 2628 , - 5675 , - 3538 , - 2361 , - 2144 , - 2887 , - 4590 , - 1109 , - 4732 , - 3171 , - 2570 , - 2929 , - 4248 , - 383 , - 3622 , - 1677 , - 692 , - 667 , - 1602 , - 3497 , - 208 , - 4023 , - 2654 , - 2245 , - 2796 , - 4307 , - 634 , - 4065 , - 2312 , - 1519 , - 1686 , - 2813 , - 4900 , - 1803 , - 5810 , - 4633 , - 4416 , - 5159 , - 718 , - 3381 , - 860 , - 5443 , - 4842 , - 5201 , - 376 , - 2655 , - 5894 , - 3949 , - 2964 , - 2939 , - 3874 , - 5769 , - 2480 , - 151 , - 4926 , - 4517 , - 5068 , - 435 , - 2906 , - 193 , - 4584 , - 3791 , - 3958 , - 5085 , - 1028 , - 4075 , - 1938 , - 761 , - 544 , - 1287 , - 2990 , - 5653 , - 3132 , - 1571 , - 970 , - 1329 , - 2648 , - 4927 , - 2022 , - 77 , - 5236 , - 5211 , - 2 , - 1897 , - 4752 , - 2423 , - 1054 , - 645 , - 1196 , - 2707 , - 5178 , - 2465 , - 712 , - 6063 , - 86 , - 1213 , - 3300 , - 203 , - 4210 , - 3033 , - 2816 , - 3559 , - 5262 , - 1781 , - 5404 , - 3843 , - 3242 , - 3601 , - 4920 , - 1055 , - 4294 , - 2349 , - 1364 , - 1339 , - 2274 , - 4169 , - 880 , - 4695 , - 3326 , - 2917 , - 3468 , - 4979 , - 1306 , - 4737 , - 2984 , - 2191 , - 2358 , - 3485 , - 5572 , - 2475 , - 338 , - 5305 , - 5088 , - 5831 , - 1390 , - 4053 , - 1532 , - 6115 , - 5514 , - 5873 , - 1048 , - 3327 , - 422 , - 4621 , - 3636 , - 3611 , - 4546 , - 297 , - 3152 , - 823 , - 5598 , - 5189 , - 5740 , - 1107 , - 3578 , - 865 , - 5256 , - 4463 , - 4630 , - 5757 , - 1700 , - 4747 , - 2610 , - 1433 , - 1216 , - 1959 , - 3662 , - 181 , - 3804 , - 2243 , - 1642 , - 2001 , - 3320 , - 5599 , - 2694 , - 749 , - 5908 , - 5883 , - 674 , - 2569 , - 5424 , - 3095 , - 1726 , - 1317 , - 1868 , - 3379 , - 5850 , - 3137 , - 1384 , - 591 , - 758 , - 1885 , - 3972 , - 875 , - 4882 , - 3705 , - 3488 , - 4231 , - 5934 , - 2453 , - 6076 , - 4515 , - 3914 , - 4273 , - 5592 , - 1727 , - 4966 , - 3021 , - 2036 , - 2011 , - 2946 , - 4841 , - 1552 , - 5367 , - 3998 , - 3589 , - 4140 , - 5651 , - 1978 , - 5409 , - 3656 , - 2863 , - 3030 , - 4157 , - 100 , - 3147 , - 1010 , - 5977 , - 5760 , - 359 , - 2062 , - 4725 , - 2204 , - 643 , - 42 , - 401 , - 1720 , - 3999 , - 1094 , - 5293 , - 4308 , - 4283 , - 5218 , - 969 , - 3824 , - 1495 , - 126 , - 5861 , - 268 , - 1779 , - 4250 , - 1537 , - 5928 , - 5135 , - 5302 , - 285 , - 2372 , - 5419 , - 3282 , - 2105 , - 1888 , - 2631 , - 4334 , - 853 , - 4476 , - 2915 , - 2314 , - 2673 , - 3992 , - 127 , - 3366 , - 1421 , - 436 , - 411 , - 1346 , - 3241 , - 6096 , - 3767 , - 2398 , - 1989 , - 2540 , - 4051 , - 378 , - 3809 , - 2056 , - 1263 , - 1430 , - 2557 , - 4644 , - 1547 , - 5554 , - 4377 , - 4160 , - 4903 , - 462 , - 3125 , - 604 , - 5187 , - 4586 , - 4945 , - 120 , - 2399 , - 5638 , - 3693 , - 2708 , - 2683 , - 3618 , - 5513 , - 2224 , - 6039 , - 4670 , - 4261 , - 4812 , - 179 , - 2650 , - 6081 , - 4328 , - 3535 , - 3702 , - 4829 , - 772 , - 3819 , - 1682 , - 505 , - 288 , - 1031 , - 2734 , - 5397 , - 2876 , - 1315 , - 714 , - 1073 , - 2392 , - 4671 , - 1766 , - 5965 , - 4980 , - 4955 , - 5890 , - 1641 , - 4496 , - 2167 , - 798 , - 389 , - 940 , - 2451 , - 4922 , - 2209 , - 456 , - 5807 , - 5974 , - 957 , - 3044 , - 6091 , - 3954 , - 2777 , - 2560 , - 3303 , - 5006 , - 1525 , - 5148 , - 3587 , - 2986 , - 3345 , - 4664 , - 799 , - 4038 , - 2093 , - 1108 , - 1083 , - 2018 , - 3913 , - 624 , - 4439 , - 3070 , - 2661 , - 3212 , - 4723 , - 1050 , - 4481 , - 2728 , - 1935 , - 2102 , - 3229 , - 5316 , - 2219 , - 82 , - 5049 , - 4832 , - 5575 , - 1134 , - 3797 , - 1276 , - 5859 , - 5258 , - 5617 , - 792 , - 3071 , - 166 , - 4365 , - 3380 , - 3355 , - 4290 , - 41 , - 2896 , - 567 , - 5342 , - 4933 , - 5484 , - 851 , - 3322 , - 609 , - 5000 , - 4207 , - 4374 , - 5501 , - 1444 , - 4491 , - 2354 , - 1177 , - 960 , - 1703 , - 3406 , - 6069 , - 3548 , - 1987 , - 1386 , - 1745 , - 3064 , - 5343 , - 2438 , - 493 , - 5652 , - 5627 , - 418 , - 2313 , - 5168 , - 2839 , - 1470 , - 1061 , - 1612 , - 3123 , - 5594 , - 2881 , - 1128 , - 335 , - 502 , - 1629 , - 3716 , - 619 , - 4626 , - 3449 , - 3232 , - 3975 , - 5678 , - 2197 , - 5820 , - 4259 , - 3658 , - 4017 , - 5336 , - 1471 , - 4710 , - 2765 , - 1780 , - 1755 , - 2690 , - 4585 , - 1296 , - 5111 , - 3742 , - 3333 , - 3884 , - 5395 , - 1722 , - 5153 , - 3400 , - 2607 , - 2774 , - 3901 , - 5988 , - 2891 , - 754 , - 5721 , - 5504 , - 103 , - 1806 , - 4469 , - 1948 , - 387 , - 5930 , - 145 , - 1464 , - 3743 , - 838 , - 5037 , - 4052 , - 4027 , - 4962 , - 713 , - 3568 , - 1239 , - 6014 , - 5605 , - 12 , - 1523 , - 3994 , - 1281 , - 5672 , - 4879 , - 5046 , - 29 , - 2116 , - 5163 , - 3026 , - 1849 , - 1632 , - 2375 , - 4078 , - 597 , - 4220 , - 2659 , - 2058 , - 2417 , - 3736 , - 6015 , - 3110 , - 1165 , - 180 , - 155 , - 1090 , - 2985 , - 5840 , - 3511 , - 2142 , - 1733 , - 2284 , - 3795 , - 122 , - 3553 , - 1800 , - 1007 , - 1174 , - 2301 , - 4388 , - 1291 , - 5298 , - 4121 , - 3904 , - 4647 , - 206 , - 2869 , - 348 , - 4931 , - 4330 , - 4689 , - 6008 , - 2143 , - 5382 , - 3437 , - 2452 , - 2427 , - 3362 , - 5257 , - 1968 , - 5783 , - 4414 , - 4005 , - 4556 , - 6067 , - 2394 , - 5825 , - 4072 , - 3279 , - 3446 , - 4573 , - 516 , - 3563 , - 1426 , - 249 , - 32 , - 775 , - 2478 , - 5141 , - 2620 , - 1059 , - 458 , - 817 , - 2136 , - 4415 , - 1510 , - 5709 , - 4724 , - 4699 , - 5634 , - 1385 , - 4240 , - 1911 , - 542 , - 133 , - 684 , - 2195 , - 4666 , - 1953 , - 200 , - 5551 , - 5718 , - 701 , - 2788 , - 5835 , - 3698 , - 2521 , - 2304 , - 3047 , - 4750 , - 1269 , - 4892 , - 3331 , - 2730 , - 3089 , - 4408 , - 543 , - 3782 , - 1837 , - 852 , - 827 , - 1762 , - 3657 , - 368 , - 4183 , - 2814 , - 2405 , - 2956 , - 4467 , - 794 , - 4225 , - 2472 , - 1679 , - 1846 , - 2973 , - 5060 , - 1963 , - 5970 , - 4793 , - 4576 , - 5319 , - 878 , - 3541 , - 1020 , - 5603 , - 5002 , - 5361 , - 536 , - 2815 , - 6054 , - 4109 , - 3124 , - 3099 , - 4034 , - 5929 , - 2640 , - 311 , - 5086 , - 4677 , - 5228 , - 595 , - 3066 , - 353 , - 4744 , - 3951 , - 4118 , - 5245 , - 1188 , - 4235 , - 2098 , - 921 , - 704 , - 1447 , - 3150 , - 5813 , - 3292 , - 1731 , - 1130 , - 1489 , - 2808 , - 5087 , - 2182 , - 237 , - 5396 , - 5371 , - 162 , - 2057 , - 4912 , - 2583 , - 1214 , - 805 , - 1356 , - 2867 , - 5338 , - 2625 , - 872 , - 79 , - 246 , - 1373 , - 3460 , - 363 , - 4370 , - 3193 , - 2976 , - 3719 , - 5422 , - 1941 , - 5564 , - 4003 , - 3402 , - 3761 , - 5080 , - 1215 , - 4454 , - 2509 , - 1524 , - 1499 , - 2434 , - 4329 , - 1040 , - 4855 , - 3486 , - 3077 , - 3628 , - 5139 , - 1466 , - 4897 , - 3144 , - 2351 , - 2518 , - 3645 , - 5732 , - 2635 , - 498 , - 5465 , - 5248 , - 5991 , - 1550 , - 4213 , - 1692 , - 131 , - 5674 , - 6033 , - 1208 , - 3487 , - 582 , - 4781 , - 3796 , - 3771 , - 4706 , - 457 , - 3312 , - 983 , - 5758 , - 5349 , - 5900 , - 1267 , - 3738 , - 1025 , - 5416 , - 4623 , - 4790 , - 5917 , - 1860 , - 4907 , - 2770 , - 1593 , - 1376 , - 2119 , - 3822 , - 341 , - 3964 , - 2403 , - 1802 , - 2161 , - 3480 , - 5759 , - 2854 , - 909 , - 6068 , - 6043 , - 834 , - 2729 , - 5584 , - 3255 , - 1886 , - 1477 , - 2028 , - 3539 , - 6010 , - 3297 , - 1544 , - 751 , - 918 , - 2045 , - 4132 , - 1035 , - 5042 , - 3865 , - 3648 , - 4391 , - 6094 , - 2613 , - 92 , - 4675 , - 4074 , - 4433 , - 5752 , - 1887 , - 5126 , - 3181 , - 2196 , - 2171 , - 3106 , - 5001 , - 1712 , - 5527 , - 4158 , - 3749 , - 4300 , - 5811 , - 2138 , - 5569 , - 3816 , - 3023 , - 3190 , - 4317 , - 260 , - 3307 , - 1170 , - 6137 , - 5920 , - 519 , - 2222 , - 4885 , - 2364 , - 803 , - 202 , - 561 , - 1880 , - 4159 , - 1254 , - 5453 , - 4468 , - 4443 , - 5378 , - 1129 , - 3984 , - 1655 , - 286 , - 6021 , - 428 , - 1939 , - 4410 , - 1697 , - 6088 , - 5295 , - 5462 , - 445 , - 2532 , - 5579 , - 3442 , - 2265 , - 2048 , - 2791 , - 4494 , - 1013 , - 4636 , - 3075 , - 2474 , - 2833 , - 4152 , - 287 , - 3526 , - 1581 , - 596 , - 571 , - 1506 , - 3401 , - 112 , - 3927 , - 2558 , - 2149 , - 2700 , - 4211 , - 538 , - 3969 , - 2216 , - 1423 , - 1590 , - 2717 , - 4804 , - 1707 , - 5714 , - 4537 , - 4320 , - 5063 , - 622 , - 3285 , - 764 , - 5347 , - 4746 , - 5105 , - 280 , - 2559 , - 5798 , - 3853 , - 2868 , - 2843 , - 3778 , - 5673 , - 2384 , - 55 , - 4830 , - 4421 , - 4972 , - 339 , - 2810 , - 97 , - 4488 , - 3695 , - 3862 , - 4989 , - 932 , - 3979 , - 1842 , - 665 , - 448 , - 1191 , - 2894 , - 5557 , - 3036 , - 1475 , - 874 , - 1233 , - 2552 , - 4831 , - 1926 , - 6125 , - 5140 , - 5115 , - 6050 , - 1801 , - 4656 , - 2327 , - 958 , - 549 , - 1100 , - 2611 , - 5082 , - 2369 , - 616 , - 5967 , - 6134 , - 1117 , - 3204 , - 107 , - 4114 , - 2937 , - 2720 , - 3463 , - 5166 , - 1685 , - 5308 , - 3747 , - 3146 , - 3505 , - 4824 , - 959 , - 4198 , - 2253 , - 1268 , - 1243 , - 2178 , - 4073 , - 784 , - 4599 , - 3230 , - 2821 , - 3372 , - 4883 , - 1210 , - 4641 , - 2888 , - 2095 , - 2262 , - 3389 , - 5476 , - 2379 , - 242 , - 5209 , - 4992 , - 5735 , - 1294 , - 3957 , - 1436 , - 6019 , - 5418 , - 5777 , - 952 , - 3231 , - 326 , - 4525 , - 3540 , - 3515 , - 4450 , - 201 , - 3056 , - 727 , - 5502 , - 5093 , - 5644 , - 1011 , - 3482 , - 769 , - 5160 , - 4367 , - 4534 , - 5661 , - 1604 , - 4651 , - 2514 , - 1337 , - 1120 , - 1863 , - 3566 , - 85 , - 3708 , - 2147 , - 1546 , - 1905 , - 3224 , - 5503 , - 2598 , - 653 , - 5812 , - 5787 , - 578 , - 2473 , - 5328 , - 2999 , - 1630 , - 1221 , - 1772 , - 3283 , - 5754 , - 3041 , - 1288 , - 495 , - 662 , - 1789 , - 3876 , - 779 , - 4786 , - 3609 , - 3392 , - 4135 , - 5838 , - 2357 , - 5980 , - 4419 , - 3818 , - 4177 , - 5496 , - 1631 , - 4870 , - 2925 , - 1940 , - 1915 , - 2850 , - 4745 , - 1456 , - 5271 , - 3902 , - 3493 , - 4044 , - 5555 , - 1882 , - 5313 , - 3560 , - 2767 , - 2934 , - 4061 , - 4 , - 3051 , - 914 , - 5881 , - 5664 , - 263 , - 1966 , - 4629 , - 2108 , - 547 , - 6090 , - 305 , - 1624 , - 3903 , - 998 , - 5197 , - 4212 , - 4187 , - 5122 , - 873 , - 3728 , - 1399 , - 30 , - 5765 , - 172 , - 1683 , - 4154 , - 1441 , - 5832 , - 5039 , - 5206 , - 189 , - 2276 , - 5323 , - 3186 , - 2009 , - 1792 , - 2535 , - 4238 , - 757 , - 4380 , - 2819 , - 2218 , - 2577 , - 3896 , - 31 , - 3270 , - 1325 , - 340 , - 315 , - 1250 , - 3145 , - 6000 , - 3671 , - 2302 , - 1893 , - 2444 , - 3955 , - 282 , - 3713 , - 1960 , - 1167 , - 1334 , - 2461 , - 4548 , - 1451 , - 5458 , - 4281 , - 4064 , - 4807 , - 366 , - 3029 , - 508 , - 5091 , - 4490 , - 4849 , - 24 , - 2303 , - 5542 , - 3597 , - 2612 , - 2587 , - 3522 , - 5417 , - 2128 , - 5943 , - 4574 , - 4165 , - 4716 , - 83 , - 2554 , - 5985 , - 4232 , - 3439 , - 3606 , - 4733 , - 676 , - 3723 , - 1586 , - 409 , - 192 , - 935 , - 2638 , - 5301 , - 2780 , - 1219 , - 618 , - 977 , - 2296 , - 4575 , - 1670 , - 5869 , - 4884 , - 4859 , - 5794 , - 1545 , - 4400 , - 2071 , - 702 , - 293 , - 844 , - 2355 , - 4826 , - 2113 , - 360 , - 5711 , - 5878 , - 861 , - 2948 , - 5995 , - 3858 , - 2681 , - 2464 , - 3207 , - 4910 , - 1429 , - 5052 , - 3491 , - 2890 , - 3249 , - 4568 , - 703 , - 3942 , - 1997 , - 1012 , - 987 , - 1922 , - 3817 , - 528 , - 4343 , - 2974 , - 2565 , - 3116 , - 4627 , - 954 , - 4385 , - 2632 , - 1839 , - 2006 , - 3133 , - 5220 , - 2123 , - 6130 , - 4953 , - 4736 , - 5479 , - 1038 , - 3701 , - 1180 , - 5763 , - 5162 , - 5521 , - 696 , - 2975 , - 70 , - 4269 , - 3284 , - 3259 , - 4194 , - 6089 , - 2800 , - 471 , - 5246 , - 4837 , - 5388 , - 755 , - 3226 , - 513 , - 4904 , - 4111 , - 4278 , - 5405 , - 1348 , - 4395 , - 2258 , - 1081 , - 864 , - 1607 , - 3310 , - 5973 , - 3452 , - 1891 , - 1290 , - 1649 , - 2968 , - 5247 , - 2342 , - 397 , - 5556 , - 5531 , - 322 , - 2217 , - 5072 , - 2743 , - 1374 , - 965 , - 1516 , - 3027 , - 5498 , - 2785 , - 1032 , - 239 , - 406 , - 1533 , - 3620 , - 523 , - 4530 , - 3353 , - 3136 , - 3879 , - 5582 , - 2101 , - 5724 , - 4163 , - 3562 , - 3921 , - 5240 , - 1375 , - 4614 , - 2669 , - 1684 , - 1659 , - 2594 , - 4489 , - 1200 , - 5015 , - 3646 , - 3237 , - 3788 , - 5299 , - 1626 , - 5057 , - 3304 , - 2511 , - 2678 , - 3805 , - 5892 , - 2795 , - 658 , - 5625 , - 5408 , - 7 , - 1710 , - 4373 , - 1852 , - 291 , - 5834 , - 49 , - 1368 , - 3647 , - 742 , - 4941 , - 3956 , - 3931 , - 4866 , - 617 , - 3472 , - 1143 , - 5918 , - 5509 , - 6060 , - 1427 , - 3898 , - 1185 , - 5576 , - 4783 , - 4950 , - 6077 , - 2020 , - 5067 , - 2930 , - 1753 , - 1536 , - 2279 , - 3982 , - 501 , - 4124 , - 2563 , - 1962 , - 2321 , - 3640 , - 5919 , - 3014 , - 1069 , - 84 , - 59 , - 994 , - 2889 , - 5744 , - 3415 , - 2046 , - 1637 , - 2188 , - 3699 , - 26 , - 3457 , - 1704 , - 911 , - 1078 , - 2205 , - 4292 , - 1195 , - 5202 , - 4025 , - 3808 , - 4551 , - 110 , - 2773 , - 252 , - 4835 , - 4234 , - 4593 , - 5912 , - 2047 , - 5286 , - 3341 , - 2356 , - 2331 , - 3266 , - 5161 , - 1872 , - 5687 , - 4318 , - 3909 , - 4460 , - 5971 , - 2298 , - 5729 , - 3976 , - 3183 , - 3350 , - 4477 , - 420 , - 3467 , - 1330 , - 153 , - 6080 , - 679 , - 2382 , - 5045 , - 2524 , - 963 , - 362 , - 721 , - 2040 , - 4319 , - 1414 , - 5613 , - 4628 , - 4603 , - 5538 , - 1289 , - 4144 , - 1815 , - 446 , - 37 , - 588 , - 2099 , - 4570 , - 1857 , - 104 , - 5455 , - 5622 , - 605 , - 2692 , - 5739 , - 3602 , - 2425 , - 2208 , - 2951 , - 4654 , - 1173 , - 4796 , - 3235 , - 2634 , - 2993 , - 4312 , - 447 , - 3686 , - 1741 , - 756 , - 731 , - 1666 , - 3561 , - 272 , - 4087 , - 2718 , - 2309 , - 2860 , - 4371 , - 698 , - 4129 , - 2376 , - 1583 , - 1750 , - 2877 , - 4964 , - 1867 , - 5874 , - 4697 , - 4480 , - 5223 , - 782 , - 3445 , - 924 , - 5507 , - 4906 , - 5265 , - 440 , - 2719 , - 5958 , - 4013 , - 3028 , - 3003 , - 3938 , - 5833 , - 2544 , - 215 , - 4990 , - 4581 , - 5132 , - 499 , - 2970 , - 257 , - 4648 , - 3855 , - 4022 , - 5149 , - 1092 , - 4139 , - 2002 , - 825 , - 608 , - 1351 , - 3054 , - 5717 , - 3196 , - 1635 , - 1034 , - 1393 , - 2712 , - 4991 , - 2086 , - 141 , - 5300 , - 5275 , - 66 , - 1961 , - 4816 , - 2487 , - 1118 , - 709 , - 1260 , - 2771 , - 5242 , - 2529 , - 776 , - 6127 , - 150 , - 1277 , - 3364 , - 267 , - 4274 , - 3097 , - 2880 , - 3623 , - 5326 , - 1845 , - 5468 , - 3907 , - 3306 , - 3665 , - 4984 , - 1119 , - 4358 , - 2413 , - 1428 , - 1403 , - 2338 , - 4233 , - 944 , - 4759 , - 3390 , - 2981 , - 3532 , - 5043 , - 1370 , - 4801 , - 3048 , - 2255 , - 2422 , - 3549 , - 5636 , - 2539 , - 402 , - 5369 , - 5152 , - 5895 , - 1454 , - 4117 , - 1596 , - 35 , - 5578 , - 5937 , - 1112 , - 3391 , - 486 , - 4685 , - 3700 , - 3675 , - 4610 , - 361 , - 3216 , - 887 , - 5662 , - 5253 , - 5804 , - 1171 , - 3642 , - 929 , - 5320 , - 4527 , - 4694 , - 5821 , - 1764 , - 4811 , - 2674 , - 1497 , - 1280 , - 2023 , - 3726 , - 245 , - 3868 , - 2307 , - 1706 , - 2065 , - 3384 , - 5663 , - 2758 , - 813 , - 5972 , - 5947 , - 738 , - 2633 , - 5488 , - 3159 , - 1790 , - 1381 , - 1932 , - 3443 , - 5914 , - 3201 , - 1448 , - 655 , - 822 , - 1949 , - 4036 , - 939 , - 4946 , - 3769 , - 3552 , - 4295 , - 5998 , - 2517 , - 6140 , - 4579 , - 3978 , - 4337 , - 5656 , - 1791 , - 5030 , - 3085 , - 2100 , - 2075 , - 3010 , - 4905 , - 1616 , - 5431 , - 4062 , - 3653 , - 4204 , - 5715 , - 2042 , - 5473 , - 3720 , - 2927 , - 3094 , - 4221 , - 164 , - 3211 , - 1074 , - 6041 , - 5824 , - 423 , - 2126 , - 4789 , - 2268 , - 707 , - 106 , - 465 , - 1784 , - 4063 , - 1158 , - 5357 , - 4372 , - 4347 , - 5282 , - 1033 , - 3888 , - 1559 , - 190 , - 5925 , - 332 , - 1843 , - 4314 , - 1601 , - 5992 , - 5199 , - 5366 , - 349 , - 2436 , - 5483 , - 3346 , - 2169 , - 1952 , - 2695 , - 4398 , - 917 , - 4540 , - 2979 , - 2378 , - 2737 , - 4056 , - 191 , - 3430 , - 1485 , - 500 , - 475 , - 1410 , - 3305 , - 16 , - 3831 , - 2462 , - 2053 , - 2604 , - 4115 , - 442 , - 3873 , - 2120 , - 1327 , - 1494 , - 2621 , - 4708 , - 1611 , - 5618 , - 4441 , - 4224 , - 4967 , - 526 , - 3189 , - 668 , - 5251 , - 4650 , - 5009 , - 184 , - 2463 , - 5702 , - 3757 , - 2772 , - 2747 , - 3682 , - 5577 , - 2288 , - 6103 , - 4734 , - 4325 , - 4876 , - 243 , - 2714 , - 1 , - 4392 , - 3599 , - 3766 , - 4893 , - 836 , - 3883 , - 1746 , - 569 , - 352 , - 1095 , - 2798 , - 5461 , - 2940 , - 1379 , - 778 , - 1137 , - 2456 , - 4735 , - 1830 , - 6029 , - 5044 , - 5019 , - 5954 , - 1705 , - 4560 , - 2231 , - 862 , - 453 , - 1004 , - 2515 , - 4986 , - 2273 , - 520 , - 5871 , - 6038 , - 1021 , - 3108 , - 11 , - 4018 , - 2841 , - 2624 , - 3367 , - 5070 , - 1589 , - 5212 , - 3651 , - 3050 , - 3409 , - 4728 , - 863 , - 4102 , - 2157 , - 1172 , - 1147 , - 2082 , - 3977 , - 688 , - 4503 , - 3134 , - 2725 , - 3276 , - 4787 , - 1114 , - 4545 , - 2792 , - 1999 , - 2166 , - 3293 , - 5380 , - 2283 , - 146 , - 5113 , - 4896 , - 5639 , - 1198 , - 3861 , - 1340 , - 5923 , - 5322 , - 5681 , - 856 , - 3135 , - 230 , - 4429 , - 3444 , - 3419 , - 4354 , - 105 , - 2960 , - 631 , - 5406 , - 4997 , - 5548 , - 915 , - 3386 , - 673 , - 5064 , - 4271 , - 4438 , - 5565 , - 1508 , - 4555 , - 2418 , - 1241 , - 1024 , - 1767 , - 3470 , - 6133 , - 3612 , - 2051 , - 1450 , - 1809 , - 3128 , - 5407 , - 2502 , - 557 , - 5716 , - 5691 , - 482 , - 2377 , - 5232 , - 2903 , - 1534 , - 1125 , - 1676 , - 3187 , - 5658 , - 2945 , - 1192 , - 399 , - 566 , - 1693 , - 3780 , - 683 , - 4690 , - 3513 , - 3296 , - 4039 , - 5742 , - 2261 , - 5884 , - 4323 , - 3722 , - 4081 , - 5400 , - 1535 , - 4774 , - 2829 , - 1844 , - 1819 , - 2754 , - 4649 , - 1360 , - 5175 , - 3806 , - 3397 , - 3948 , - 5459 , - 1786 , - 5217 , - 3464 , - 2671 , - 2838 , - 3965 , - 6052 , - 2955 , - 818 , - 5785 , - 5568 , - 167 , - 1870 , - 4533 , - 2012 , - 451 , - 5994 , - 209 , - 1528 , - 3807 , - 902 , - 5101 , - 4116 , - 4091 , - 5026 , - 777 , - 3632 , - 1303 , - 6078 , - 5669 , - 76 , - 1587 , - 4058 , - 1345 , - 5736 , - 4943 , - 5110 , - 93 , - 2180 , - 5227 , - 3090 , - 1913 , - 1696 , - 2439 , - 4142 , - 661 , - 4284 , - 2723 , - 2122 , - 2481 , - 3800 , - 6079 , - 3174 , - 1229 , - 244 , - 219 , - 1154 , - 3049 , - 5904 , - 3575 , - 2206 , - 1797 , - 2348 , - 3859 , - 186 , - 3617 , - 1864 , - 1071 , - 1238 , - 2365 , - 4452 , - 1355 , - 5362 , - 4185 , - 3968 , - 4711 , - 270 , - 2933 , - 412 , - 4995 , - 4394 , - 4753 , - 6072 , - 2207 , - 5446 , - 3501 , - 2516 , - 2491 , - 3426 , - 5321 , - 2032 , - 5847 , - 4478 , - 4069 , - 4620 , - 6131 , - 2458 , - 5889 , - 4136 , - 3343 , - 3510 , - 4637 , - 580 , - 3627 , - 1490 , - 313 , - 96 , - 839 , - 2542 , - 5205 , - 2684 , - 1123 , - 522 , - 881 , - 2200 , - 4479 , - 1574 , - 5773 , - 4788 , - 4763 , - 5698 , - 1449 , - 4304 , - 1975 , - 606 , - 197 , - 748 , - 2259 , - 4730 , - 2017 , - 264 , - 5615 , - 5782 , - 765 , - 2852 , - 5899 , - 3762 , - 2585 , - 2368 , - 3111 , - 4814 , - 1333 , - 4956 , - 3395 , - 2794 , - 3153 , - 4472 , - 607 , - 3846 , - 1901 , - 916 , - 891 , - 1826 , - 3721 , - 432 , - 4247 , - 2878 , - 2469 , - 3020 , - 4531 , - 858 , - 4289 , - 2536 , - 1743 , - 1910 , - 3037 , - 5124 , - 2027 , - 6034 , - 4857 , - 4640 , - 5383 , - 942 , - 3605 , - 1084 , - 5667 , - 5066 , - 5425 , - 600 , - 2879 , - 6118 , - 4173 , - 3188 , - 3163 , - 4098 , - 5993 , - 2704 , - 375 , - 5150 , - 4741 , - 5292 , - 659 , - 3130 , - 417 , - 4808 , - 4015 , - 4182 , - 5309 , - 1252 , - 4299 , - 2162 , - 985 , - 768 , - 1511 , - 3214 , - 5877 , - 3356 , - 1795 , - 1194 , - 1553 , - 2872 , - 5151 , - 2246 , - 301 , - 5460 , - 5435 , - 226 , - 2121 , - 4976 , - 2647 , - 1278 , - 869 , - 1420 , - 2931 , - 5402 , - 2689 , - 936 , - 143 , - 310 , - 1437 , - 3524 , - 427 , - 4434 , - 3257 , - 3040 , - 3783 , - 5486 , - 2005 , - 5628 , - 4067 , - 3466 , - 3825 , - 5144 , - 1279 , - 4518 , - 2573 , - 1588 , - 1563 , - 2498 , - 4393 , - 1104 , - 4919 , - 3550 , - 3141 , - 3692 , - 5203 , - 1530 , - 4961 , - 3208 , - 2415 , - 2582 , - 3709 , - 5796 , - 2699 , - 562 , - 5529 , - 5312 , - 6055 , - 1614 , - 4277 , - 1756 , - 195 , - 5738 , - 6097 , - 1272 , - 3551 , - 646 , - 4845 , - 3860 , - 3835 , - 4770 , - 521 , - 3376 , - 1047 , - 5822 , - 5413 , - 5964 , - 1331 , - 3802 , - 1089 , - 5480 , - 4687 , - 4854 , - 5981 , - 1924 , - 4971 , - 2834 , - 1657 , - 1440 , - 2183 , - 3886 , - 405 , - 4028 , - 2467 , - 1866 , - 2225 , - 3544 , - 5823 , - 2918 , - 973 , - 6132 , - 6107 , - 898 , - 2793 , - 5648 , - 3319 , - 1950 , - 1541 , - 2092 , - 3603 , - 6074 , - 3361 , - 1608 , - 815 , - 982 , - 2109 , - 4196 , - 1099 , - 5106 , - 3929 , - 3712 , - 4455 , - 14 , - 2677 , - 156 , - 4739 , - 4138 , - 4497 , - 5816 , - 1951 , - 5190 , - 3245 , - 2260 , - 2235 , - 3170 , - 5065 , - 1776 , - 5591 , - 4222 , - 3813 , - 4364 , - 5875 , - 2202 , - 5633 , - 3880 , - 3087 , - 3254 , - 4381 , - 324 , - 3371 , - 1234 , - 57 , - 5984 , - 583 , - 2286 , - 4949 , - 2428 , - 867 , - 266 , - 625 , - 1944 , - 4223 , - 1318 , - 5517 , - 4532 , - 4507 , - 5442 , - 1193 , - 4048 , - 1719 , - 350 , - 6085 , - 492 , - 2003 , - 4474 , - 1761 , - 8 , - 5359 , - 5526 , - 509 , - 2596 , - 5643 , - 3506 , - 2329 , - 2112 , - 2855 , - 4558 , - 1077 , - 4700 , - 3139 , - 2538 , - 2897 , - 4216 , - 351 , - 3590 , - 1645 , - 660 , - 635 , - 1570 , - 3465 , - 176 , - 3991 , - 2622 , - 2213 , - 2764 , - 4275 , - 602 , - 4033 , - 2280 , - 1487 , - 1654 , - 2781 , - 4868 , - 1771 , - 5778 , - 4601 , - 4384 , - 5127 , - 686 , - 3349 , - 828 , - 5411 , - 4810 , - 5169 , - 344 , - 2623 , - 5862 , - 3917 , - 2932 , - 2907 , - 3842 , - 5737 , - 2448 , - 119 , - 4894 , - 4485 , - 5036 , - 403 , - 2874 , - 161 , - 4552 , - 3759 , - 3926 , - 5053 , - 996 , - 4043 , - 1906 , - 729 , - 512 , - 1255 , - 2958 , - 5621 , - 3100 , - 1539 , - 938 , - 1297 , - 2616 , - 4895 , - 1990 , - 45 , - 5204 , - 5179 , - 6114 , - 1865 , - 4720 , - 2391 , - 1022 , - 613 , - 1164 , - 2675 , - 5146 , - 2433 , - 680 , - 6031 , - 54 , - 1181 , - 3268 , - 171 , - 4178 , - 3001 , - 2784 , - 3527 , - 5230 , - 1749 , - 5372 , - 3811 , - 3210 , - 3569 , - 4888 , - 1023 , - 4262 , - 2317 , - 1332 , - 1307 , - 2242 , - 4137 , - 848 , - 4663 , - 3294 , - 2885 , - 3436 , - 4947 , - 1274 , - 4705 , - 2952 , - 2159 , - 2326 , - 3453 , - 5540 , - 2443 , - 306 , - 5273 , - 5056 , - 5799 , - 1358 , - 4021 , - 1500 , - 6083 , - 5482 , - 5841 , - 1016 , - 3295 , - 390 , - 4589 , - 3604 , - 3579 , - 4514 , - 265 , - 3120 , - 791 , - 5566 , - 5157 , - 5708 , - 1075 , - 3546 , - 833 , - 5224 , - 4431 , - 4598 , - 5725 , - 1668 , - 4715 , - 2578 , - 1401 , - 1184 , - 1927 , - 3630 , - 149 , - 3772 , - 2211 , - 1610 , - 1969 , - 3288 , - 5567 , - 2662 , - 717 , - 5876 , - 5851 , - 642 , - 2537 , - 5392 , - 3063 , - 1694 , - 1285 , - 1836 , - 3347 , - 5818 , - 3105 , - 1352 , - 559 , - 726 , - 1853 , - 3940 , - 843 , - 4850 , - 3673 , - 3456 , - 4199 , - 5902 , - 2421 , - 6044 , - 4483 , - 3882 , - 4241 , - 5560 , - 1695 , - 4934 , - 2989 , - 2004 , - 1979 , - 2914 , - 4809 , - 1520 , - 5335 , - 3966 , - 3557 , - 4108 , - 5619 , - 1946 , - 5377 , - 3624 , - 2831 , - 2998 , - 4125 , - 68 , - 3115 , - 978 , - 5945 , - 5728 , - 327 , - 2030 , - 4693 , - 2172 , - 611 , - 10 , - 369 , - 1688 , - 3967 , - 1062 , - 5261 , - 4276 , - 4251 , - 5186 , - 937 , - 3792 , - 1463 , - 94 , - 5829 , - 236 , - 1747 , - 4218 , - 1505 , - 5896 , - 5103 , - 5270 , - 253 , - 2340 , - 5387 , - 3250 , - 2073 , - 1856 , - 2599 , - 4302 , - 821 , - 4444 , - 2883 , - 2282 , - 2641 , - 3960 , - 95 , - 3334 , - 1389 , - 404 , - 379 , - 1314 , - 3209 , - 6064 , - 3735 , - 2366 , - 1957 , - 2508 , - 4019 , - 346 , - 3777 , - 2024 , - 1231 , - 1398 , - 2525 , - 4612 , - 1515 , - 5522 , - 4345 , - 4128 , - 4871 , - 430 , - 3093 , - 572 , - 5155 , - 4554 , - 4913 , - 88 , - 2367 , - 5606 , - 3661 , - 2676 , - 2651 , - 3586 , - 5481 , - 2192 , - 6007 , - 4638 , - 4229 , - 4780 , - 147 , - 2618 , - 6049 , - 4296 , - 3503 , - 3670 , - 4797 , - 740 , - 3787 , - 1650 , - 473 , - 256 , - 999 , - 2702 , - 5365 , - 2844 , - 1283 , - 682 , - 1041 , - 2360 , - 4639 , - 1734 , - 5933 , - 4948 , - 4923 , - 5858 , - 1609 , - 4464 , - 2135 , - 766 , - 357 , - 908 , - 2419 , - 4890 , - 2177 , - 424 , - 5775 , - 5942 , - 925 , - 3012 , - 6059 , - 3922 , - 2745 , - 2528 , - 3271 , - 4974 , - 1493 , - 5116 , - 3555 , - 2954 , - 3313 , - 4632 , - 767 , - 4006 , - 2061 , - 1076 , - 1051 , - 1986 , - 3881 , - 592 , - 4407 , - 3038 , - 2629 , - 3180 , - 4691 , - 1018 , - 4449 , - 2696 , - 1903 , - 2070 , - 3197 , - 5284 , - 2187 , - 50 , - 5017 , - 4800 , - 5543 , - 1102 , - 3765 , - 1244 , - 5827 , - 5226 , - 5585 , - 760 , - 3039 , - 134 , - 4333 , - 3348 , - 3323 , - 4258 , - 9 , - 2864 , - 535 , - 5310 , - 4901 , - 5452 , - 819 , - 3290 , - 577 , - 4968 , - 4175 , - 4342 , - 5469 , - 1412 , - 4459 , - 2322 , - 1145 , - 928 , - 1671 , - 3374 , - 6037 , - 3516 , - 1955 , - 1354 , - 1713 , - 3032 , - 5311 , - 2406 , - 461 , - 5620 , - 5595 , - 386 , - 2281 , - 5136 , - 2807 , - 1438 , - 1029 , - 1580 , - 3091 , - 5562 , - 2849 , - 1096 , - 303 , - 470 , - 1597 , - 3684 , - 587 , - 4594 , - 3417 , - 3200 , - 3943 , - 5646 , - 2165 , - 5788 , - 4227 , - 3626 , - 3985 , - 5304 , - 1439 , - 4678 , - 2733 , - 1748 , - 1723 , - 2658 , - 4553 , - 1264 , - 5079 , - 3710 , - 3301 , - 3852 , - 5363 , - 1690 , - 5121 , - 3368 , - 2575 , - 2742 , - 3869 , - 5956 , - 2859 , - 722 , - 5689 , - 5472 , - 71 , - 1774 , - 4437 , - 1916 , - 355 , - 5898 , - 113 , - 1432 , - 3711 , - 806 , - 5005 , - 4020 , - 3995 , - 4930 , - 681 , - 3536 , - 1207 , - 5982 , - 5573 , - 6124 , - 1491 , - 3962 , - 1249 , - 5640 , - 4847 , - 5014 , - 6141 , - 2084 , - 5131 , - 2994 , - 1817 , - 1600 , - 2343 , - 4046 , - 565 , - 4188 , - 2627 , - 2026 , - 2385 , - 3704 , - 5983 , - 3078 , - 1133 , - 148 , - 123 , - 1058 , - 2953 , - 5808 , - 3479 , - 2110 , - 1701 , - 2252 , - 3763 , - 90 , - 3521 , - 1768 , - 975 , - 1142 , - 2269 , - 4356 , - 1259 , - 5266 , - 4089 , - 3872 , - 4615 , - 174 , - 2837 , - 316 , - 4899 , - 4298 , - 4657 , - 5976 , - 2111 , - 5350 , - 3405 , - 2420 , - 2395 , - 3330 , - 5225 , - 1936 , - 5751 , - 4382 , - 3973 , - 4524 , - 6035 , - 2362 , - 5793 , - 4040 , - 3247 , - 3414 , - 4541 , - 484 , - 3531 , - 1394 , - 217 , -}; -short reverse_il_tl[ 355248 ] = { - 0 , - 37 , - 14 , - 11 , - 28 , - 25 , - 2 , - 39 , - 16 , - 13 , - 30 , - 27 , - 4 , - 1 , - 18 , - 15 , - 32 , - 29 , - 6 , - 3 , - 20 , - 17 , - 34 , - 31 , - 8 , - 5 , - 22 , - 19 , - 36 , - 33 , - 10 , - 7 , - 24 , - 21 , - 38 , - 35 , - 12 , - 9 , - 26 , - 23 , - 0 , - 19 , - 14 , - 33 , - 28 , - 47 , - 42 , - 13 , - 8 , - 27 , - 22 , - 41 , - 36 , - 7 , - 2 , - 21 , - 16 , - 35 , - 30 , - 1 , - 44 , - 15 , - 10 , - 29 , - 24 , - 43 , - 38 , - 9 , - 4 , - 23 , - 18 , - 37 , - 32 , - 3 , - 46 , - 17 , - 12 , - 31 , - 26 , - 45 , - 40 , - 11 , - 6 , - 25 , - 20 , - 39 , - 34 , - 5 , - 0 , - 45 , - 6 , - 51 , - 12 , - 1 , - 18 , - 7 , - 24 , - 13 , - 30 , - 19 , - 36 , - 25 , - 42 , - 31 , - 48 , - 37 , - 54 , - 43 , - 4 , - 49 , - 10 , - 55 , - 16 , - 5 , - 22 , - 11 , - 28 , - 17 , - 34 , - 23 , - 40 , - 29 , - 46 , - 35 , - 52 , - 41 , - 2 , - 47 , - 8 , - 53 , - 14 , - 3 , - 20 , - 9 , - 26 , - 15 , - 32 , - 21 , - 38 , - 27 , - 44 , - 33 , - 50 , - 39 , - 0 , - 7 , - 46 , - 53 , - 28 , - 35 , - 10 , - 17 , - 56 , - 63 , - 38 , - 45 , - 20 , - 27 , - 2 , - 9 , - 48 , - 55 , - 30 , - 37 , - 12 , - 19 , - 58 , - 1 , - 40 , - 47 , - 22 , - 29 , - 4 , - 11 , - 50 , - 57 , - 32 , - 39 , - 14 , - 21 , - 60 , - 3 , - 42 , - 49 , - 24 , - 31 , - 6 , - 13 , - 52 , - 59 , - 34 , - 41 , - 16 , - 23 , - 62 , - 5 , - 44 , - 51 , - 26 , - 33 , - 8 , - 15 , - 54 , - 61 , - 36 , - 43 , - 18 , - 25 , - 0 , - 49 , - 62 , - 39 , - 52 , - 29 , - 42 , - 19 , - 32 , - 9 , - 22 , - 71 , - 12 , - 61 , - 2 , - 51 , - 64 , - 41 , - 54 , - 31 , - 44 , - 21 , - 34 , - 11 , - 24 , - 1 , - 14 , - 63 , - 4 , - 53 , - 66 , - 43 , - 56 , - 33 , - 46 , - 23 , - 36 , - 13 , - 26 , - 3 , - 16 , - 65 , - 6 , - 55 , - 68 , - 45 , - 58 , - 35 , - 48 , - 25 , - 38 , - 15 , - 28 , - 5 , - 18 , - 67 , - 8 , - 57 , - 70 , - 47 , - 60 , - 37 , - 50 , - 27 , - 40 , - 17 , - 30 , - 7 , - 20 , - 69 , - 10 , - 59 , - 0 , - 71 , - 22 , - 13 , - 44 , - 35 , - 66 , - 57 , - 8 , - 79 , - 30 , - 21 , - 52 , - 43 , - 74 , - 65 , - 16 , - 7 , - 38 , - 29 , - 60 , - 51 , - 2 , - 73 , - 24 , - 15 , - 46 , - 37 , - 68 , - 59 , - 10 , - 1 , - 32 , - 23 , - 54 , - 45 , - 76 , - 67 , - 18 , - 9 , - 40 , - 31 , - 62 , - 53 , - 4 , - 75 , - 26 , - 17 , - 48 , - 39 , - 70 , - 61 , - 12 , - 3 , - 34 , - 25 , - 56 , - 47 , - 78 , - 69 , - 20 , - 11 , - 42 , - 33 , - 64 , - 55 , - 6 , - 77 , - 28 , - 19 , - 50 , - 41 , - 72 , - 63 , - 14 , - 5 , - 36 , - 27 , - 58 , - 49 , - 0 , - 31 , - 18 , - 49 , - 36 , - 67 , - 54 , - 85 , - 72 , - 15 , - 2 , - 33 , - 20 , - 51 , - 38 , - 69 , - 56 , - 87 , - 74 , - 17 , - 4 , - 35 , - 22 , - 53 , - 40 , - 71 , - 58 , - 1 , - 76 , - 19 , - 6 , - 37 , - 24 , - 55 , - 42 , - 73 , - 60 , - 3 , - 78 , - 21 , - 8 , - 39 , - 26 , - 57 , - 44 , - 75 , - 62 , - 5 , - 80 , - 23 , - 10 , - 41 , - 28 , - 59 , - 46 , - 77 , - 64 , - 7 , - 82 , - 25 , - 12 , - 43 , - 30 , - 61 , - 48 , - 79 , - 66 , - 9 , - 84 , - 27 , - 14 , - 45 , - 32 , - 63 , - 50 , - 81 , - 68 , - 11 , - 86 , - 29 , - 16 , - 47 , - 34 , - 65 , - 52 , - 83 , - 70 , - 13 , - 0 , - 59 , - 70 , - 33 , - 44 , - 7 , - 18 , - 77 , - 88 , - 51 , - 62 , - 25 , - 36 , - 95 , - 10 , - 69 , - 80 , - 43 , - 54 , - 17 , - 28 , - 87 , - 2 , - 61 , - 72 , - 35 , - 46 , - 9 , - 20 , - 79 , - 90 , - 53 , - 64 , - 27 , - 38 , - 1 , - 12 , - 71 , - 82 , - 45 , - 56 , - 19 , - 30 , - 89 , - 4 , - 63 , - 74 , - 37 , - 48 , - 11 , - 22 , - 81 , - 92 , - 55 , - 66 , - 29 , - 40 , - 3 , - 14 , - 73 , - 84 , - 47 , - 58 , - 21 , - 32 , - 91 , - 6 , - 65 , - 76 , - 39 , - 50 , - 13 , - 24 , - 83 , - 94 , - 57 , - 68 , - 31 , - 42 , - 5 , - 16 , - 75 , - 86 , - 49 , - 60 , - 23 , - 34 , - 93 , - 8 , - 67 , - 78 , - 41 , - 52 , - 15 , - 26 , - 85 , - 0 , - 41 , - 30 , - 71 , - 60 , - 101 , - 90 , - 27 , - 16 , - 57 , - 46 , - 87 , - 76 , - 13 , - 2 , - 43 , - 32 , - 73 , - 62 , - 103 , - 92 , - 29 , - 18 , - 59 , - 48 , - 89 , - 78 , - 15 , - 4 , - 45 , - 34 , - 75 , - 64 , - 1 , - 94 , - 31 , - 20 , - 61 , - 50 , - 91 , - 80 , - 17 , - 6 , - 47 , - 36 , - 77 , - 66 , - 3 , - 96 , - 33 , - 22 , - 63 , - 52 , - 93 , - 82 , - 19 , - 8 , - 49 , - 38 , - 79 , - 68 , - 5 , - 98 , - 35 , - 24 , - 65 , - 54 , - 95 , - 84 , - 21 , - 10 , - 51 , - 40 , - 81 , - 70 , - 7 , - 100 , - 37 , - 26 , - 67 , - 56 , - 97 , - 86 , - 23 , - 12 , - 53 , - 42 , - 83 , - 72 , - 9 , - 102 , - 39 , - 28 , - 69 , - 58 , - 99 , - 88 , - 25 , - 14 , - 55 , - 44 , - 85 , - 74 , - 11 , - 0 , - 69 , - 82 , - 39 , - 52 , - 9 , - 22 , - 91 , - 104 , - 61 , - 74 , - 31 , - 44 , - 1 , - 14 , - 83 , - 96 , - 53 , - 66 , - 23 , - 36 , - 105 , - 6 , - 75 , - 88 , - 45 , - 58 , - 15 , - 28 , - 97 , - 110 , - 67 , - 80 , - 37 , - 50 , - 7 , - 20 , - 89 , - 102 , - 59 , - 72 , - 29 , - 42 , - 111 , - 12 , - 81 , - 94 , - 51 , - 64 , - 21 , - 34 , - 103 , - 4 , - 73 , - 86 , - 43 , - 56 , - 13 , - 26 , - 95 , - 108 , - 65 , - 78 , - 35 , - 48 , - 5 , - 18 , - 87 , - 100 , - 57 , - 70 , - 27 , - 40 , - 109 , - 10 , - 79 , - 92 , - 49 , - 62 , - 19 , - 32 , - 101 , - 2 , - 71 , - 84 , - 41 , - 54 , - 11 , - 24 , - 93 , - 106 , - 63 , - 76 , - 33 , - 46 , - 3 , - 16 , - 85 , - 98 , - 55 , - 68 , - 25 , - 38 , - 107 , - 8 , - 77 , - 90 , - 47 , - 60 , - 17 , - 30 , - 99 , - 0 , - 97 , - 14 , - 111 , - 28 , - 5 , - 42 , - 19 , - 56 , - 33 , - 70 , - 47 , - 84 , - 61 , - 98 , - 75 , - 112 , - 89 , - 6 , - 103 , - 20 , - 117 , - 34 , - 11 , - 48 , - 25 , - 62 , - 39 , - 76 , - 53 , - 90 , - 67 , - 104 , - 81 , - 118 , - 95 , - 12 , - 109 , - 26 , - 3 , - 40 , - 17 , - 54 , - 31 , - 68 , - 45 , - 82 , - 59 , - 96 , - 73 , - 110 , - 87 , - 4 , - 101 , - 18 , - 115 , - 32 , - 9 , - 46 , - 23 , - 60 , - 37 , - 74 , - 51 , - 88 , - 65 , - 102 , - 79 , - 116 , - 93 , - 10 , - 107 , - 24 , - 1 , - 38 , - 15 , - 52 , - 29 , - 66 , - 43 , - 80 , - 57 , - 94 , - 71 , - 108 , - 85 , - 2 , - 99 , - 16 , - 113 , - 30 , - 7 , - 44 , - 21 , - 58 , - 35 , - 72 , - 49 , - 86 , - 63 , - 100 , - 77 , - 114 , - 91 , - 8 , - 105 , - 22 , - 119 , - 36 , - 13 , - 50 , - 27 , - 64 , - 41 , - 78 , - 55 , - 92 , - 69 , - 106 , - 83 , - 0 , - 15 , - 94 , - 109 , - 60 , - 75 , - 26 , - 41 , - 120 , - 7 , - 86 , - 101 , - 52 , - 67 , - 18 , - 33 , - 112 , - 127 , - 78 , - 93 , - 44 , - 59 , - 10 , - 25 , - 104 , - 119 , - 70 , - 85 , - 36 , - 51 , - 2 , - 17 , - 96 , - 111 , - 62 , - 77 , - 28 , - 43 , - 122 , - 9 , - 88 , - 103 , - 54 , - 69 , - 20 , - 35 , - 114 , - 1 , - 80 , - 95 , - 46 , - 61 , - 12 , - 27 , - 106 , - 121 , - 72 , - 87 , - 38 , - 53 , - 4 , - 19 , - 98 , - 113 , - 64 , - 79 , - 30 , - 45 , - 124 , - 11 , - 90 , - 105 , - 56 , - 71 , - 22 , - 37 , - 116 , - 3 , - 82 , - 97 , - 48 , - 63 , - 14 , - 29 , - 108 , - 123 , - 74 , - 89 , - 40 , - 55 , - 6 , - 21 , - 100 , - 115 , - 66 , - 81 , - 32 , - 47 , - 126 , - 13 , - 92 , - 107 , - 58 , - 73 , - 24 , - 39 , - 118 , - 5 , - 84 , - 99 , - 50 , - 65 , - 16 , - 31 , - 110 , - 125 , - 76 , - 91 , - 42 , - 57 , - 8 , - 23 , - 102 , - 117 , - 68 , - 83 , - 34 , - 49 , - 0 , - 87 , - 106 , - 57 , - 76 , - 27 , - 46 , - 133 , - 16 , - 103 , - 122 , - 73 , - 92 , - 43 , - 62 , - 13 , - 32 , - 119 , - 2 , - 89 , - 108 , - 59 , - 78 , - 29 , - 48 , - 135 , - 18 , - 105 , - 124 , - 75 , - 94 , - 45 , - 64 , - 15 , - 34 , - 121 , - 4 , - 91 , - 110 , - 61 , - 80 , - 31 , - 50 , - 1 , - 20 , - 107 , - 126 , - 77 , - 96 , - 47 , - 66 , - 17 , - 36 , - 123 , - 6 , - 93 , - 112 , - 63 , - 82 , - 33 , - 52 , - 3 , - 22 , - 109 , - 128 , - 79 , - 98 , - 49 , - 68 , - 19 , - 38 , - 125 , - 8 , - 95 , - 114 , - 65 , - 84 , - 35 , - 54 , - 5 , - 24 , - 111 , - 130 , - 81 , - 100 , - 51 , - 70 , - 21 , - 40 , - 127 , - 10 , - 97 , - 116 , - 67 , - 86 , - 37 , - 56 , - 7 , - 26 , - 113 , - 132 , - 83 , - 102 , - 53 , - 72 , - 23 , - 42 , - 129 , - 12 , - 99 , - 118 , - 69 , - 88 , - 39 , - 58 , - 9 , - 28 , - 115 , - 134 , - 85 , - 104 , - 55 , - 74 , - 25 , - 44 , - 131 , - 14 , - 101 , - 120 , - 71 , - 90 , - 41 , - 60 , - 11 , - 30 , - 117 , - 0 , - 53 , - 34 , - 87 , - 68 , - 121 , - 102 , - 11 , - 136 , - 45 , - 26 , - 79 , - 60 , - 113 , - 94 , - 3 , - 128 , - 37 , - 18 , - 71 , - 52 , - 105 , - 86 , - 139 , - 120 , - 29 , - 10 , - 63 , - 44 , - 97 , - 78 , - 131 , - 112 , - 21 , - 2 , - 55 , - 36 , - 89 , - 70 , - 123 , - 104 , - 13 , - 138 , - 47 , - 28 , - 81 , - 62 , - 115 , - 96 , - 5 , - 130 , - 39 , - 20 , - 73 , - 54 , - 107 , - 88 , - 141 , - 122 , - 31 , - 12 , - 65 , - 46 , - 99 , - 80 , - 133 , - 114 , - 23 , - 4 , - 57 , - 38 , - 91 , - 72 , - 125 , - 106 , - 15 , - 140 , - 49 , - 30 , - 83 , - 64 , - 117 , - 98 , - 7 , - 132 , - 41 , - 22 , - 75 , - 56 , - 109 , - 90 , - 143 , - 124 , - 33 , - 14 , - 67 , - 48 , - 101 , - 82 , - 135 , - 116 , - 25 , - 6 , - 59 , - 40 , - 93 , - 74 , - 127 , - 108 , - 17 , - 142 , - 51 , - 32 , - 85 , - 66 , - 119 , - 100 , - 9 , - 134 , - 43 , - 24 , - 77 , - 58 , - 111 , - 92 , - 1 , - 126 , - 35 , - 16 , - 69 , - 50 , - 103 , - 84 , - 137 , - 118 , - 27 , - 8 , - 61 , - 42 , - 95 , - 76 , - 129 , - 110 , - 19 , - 0 , - 131 , - 34 , - 13 , - 68 , - 47 , - 102 , - 81 , - 136 , - 115 , - 18 , - 149 , - 52 , - 31 , - 86 , - 65 , - 120 , - 99 , - 2 , - 133 , - 36 , - 15 , - 70 , - 49 , - 104 , - 83 , - 138 , - 117 , - 20 , - 151 , - 54 , - 33 , - 88 , - 67 , - 122 , - 101 , - 4 , - 135 , - 38 , - 17 , - 72 , - 51 , - 106 , - 85 , - 140 , - 119 , - 22 , - 1 , - 56 , - 35 , - 90 , - 69 , - 124 , - 103 , - 6 , - 137 , - 40 , - 19 , - 74 , - 53 , - 108 , - 87 , - 142 , - 121 , - 24 , - 3 , - 58 , - 37 , - 92 , - 71 , - 126 , - 105 , - 8 , - 139 , - 42 , - 21 , - 76 , - 55 , - 110 , - 89 , - 144 , - 123 , - 26 , - 5 , - 60 , - 39 , - 94 , - 73 , - 128 , - 107 , - 10 , - 141 , - 44 , - 23 , - 78 , - 57 , - 112 , - 91 , - 146 , - 125 , - 28 , - 7 , - 62 , - 41 , - 96 , - 75 , - 130 , - 109 , - 12 , - 143 , - 46 , - 25 , - 80 , - 59 , - 114 , - 93 , - 148 , - 127 , - 30 , - 9 , - 64 , - 43 , - 98 , - 77 , - 132 , - 111 , - 14 , - 145 , - 48 , - 27 , - 82 , - 61 , - 116 , - 95 , - 150 , - 129 , - 32 , - 11 , - 66 , - 45 , - 100 , - 79 , - 134 , - 113 , - 16 , - 147 , - 50 , - 29 , - 84 , - 63 , - 118 , - 97 , - 0 , - 101 , - 122 , - 63 , - 84 , - 25 , - 46 , - 147 , - 8 , - 109 , - 130 , - 71 , - 92 , - 33 , - 54 , - 155 , - 16 , - 117 , - 138 , - 79 , - 100 , - 41 , - 62 , - 3 , - 24 , - 125 , - 146 , - 87 , - 108 , - 49 , - 70 , - 11 , - 32 , - 133 , - 154 , - 95 , - 116 , - 57 , - 78 , - 19 , - 40 , - 141 , - 2 , - 103 , - 124 , - 65 , - 86 , - 27 , - 48 , - 149 , - 10 , - 111 , - 132 , - 73 , - 94 , - 35 , - 56 , - 157 , - 18 , - 119 , - 140 , - 81 , - 102 , - 43 , - 64 , - 5 , - 26 , - 127 , - 148 , - 89 , - 110 , - 51 , - 72 , - 13 , - 34 , - 135 , - 156 , - 97 , - 118 , - 59 , - 80 , - 21 , - 42 , - 143 , - 4 , - 105 , - 126 , - 67 , - 88 , - 29 , - 50 , - 151 , - 12 , - 113 , - 134 , - 75 , - 96 , - 37 , - 58 , - 159 , - 20 , - 121 , - 142 , - 83 , - 104 , - 45 , - 66 , - 7 , - 28 , - 129 , - 150 , - 91 , - 112 , - 53 , - 74 , - 15 , - 36 , - 137 , - 158 , - 99 , - 120 , - 61 , - 82 , - 23 , - 44 , - 145 , - 6 , - 107 , - 128 , - 69 , - 90 , - 31 , - 52 , - 153 , - 14 , - 115 , - 136 , - 77 , - 98 , - 39 , - 60 , - 1 , - 22 , - 123 , - 144 , - 85 , - 106 , - 47 , - 68 , - 9 , - 30 , - 131 , - 152 , - 93 , - 114 , - 55 , - 76 , - 17 , - 38 , - 139 , - 0 , - 89 , - 10 , - 99 , - 20 , - 109 , - 30 , - 119 , - 40 , - 129 , - 50 , - 139 , - 60 , - 149 , - 70 , - 159 , - 80 , - 1 , - 90 , - 11 , - 100 , - 21 , - 110 , - 31 , - 120 , - 41 , - 130 , - 51 , - 140 , - 61 , - 150 , - 71 , - 160 , - 81 , - 2 , - 91 , - 12 , - 101 , - 22 , - 111 , - 32 , - 121 , - 42 , - 131 , - 52 , - 141 , - 62 , - 151 , - 72 , - 161 , - 82 , - 3 , - 92 , - 13 , - 102 , - 23 , - 112 , - 33 , - 122 , - 43 , - 132 , - 53 , - 142 , - 63 , - 152 , - 73 , - 162 , - 83 , - 4 , - 93 , - 14 , - 103 , - 24 , - 113 , - 34 , - 123 , - 44 , - 133 , - 54 , - 143 , - 64 , - 153 , - 74 , - 163 , - 84 , - 5 , - 94 , - 15 , - 104 , - 25 , - 114 , - 35 , - 124 , - 45 , - 134 , - 55 , - 144 , - 65 , - 154 , - 75 , - 164 , - 85 , - 6 , - 95 , - 16 , - 105 , - 26 , - 115 , - 36 , - 125 , - 46 , - 135 , - 56 , - 145 , - 66 , - 155 , - 76 , - 165 , - 86 , - 7 , - 96 , - 17 , - 106 , - 27 , - 116 , - 37 , - 126 , - 47 , - 136 , - 57 , - 146 , - 67 , - 156 , - 77 , - 166 , - 87 , - 8 , - 97 , - 18 , - 107 , - 28 , - 117 , - 38 , - 127 , - 48 , - 137 , - 58 , - 147 , - 68 , - 157 , - 78 , - 167 , - 88 , - 9 , - 98 , - 19 , - 108 , - 29 , - 118 , - 39 , - 128 , - 49 , - 138 , - 59 , - 148 , - 69 , - 158 , - 79 , - 0 , - 65 , - 42 , - 107 , - 84 , - 149 , - 126 , - 15 , - 168 , - 57 , - 34 , - 99 , - 76 , - 141 , - 118 , - 7 , - 160 , - 49 , - 26 , - 91 , - 68 , - 133 , - 110 , - 175 , - 152 , - 41 , - 18 , - 83 , - 60 , - 125 , - 102 , - 167 , - 144 , - 33 , - 10 , - 75 , - 52 , - 117 , - 94 , - 159 , - 136 , - 25 , - 2 , - 67 , - 44 , - 109 , - 86 , - 151 , - 128 , - 17 , - 170 , - 59 , - 36 , - 101 , - 78 , - 143 , - 120 , - 9 , - 162 , - 51 , - 28 , - 93 , - 70 , - 135 , - 112 , - 1 , - 154 , - 43 , - 20 , - 85 , - 62 , - 127 , - 104 , - 169 , - 146 , - 35 , - 12 , - 77 , - 54 , - 119 , - 96 , - 161 , - 138 , - 27 , - 4 , - 69 , - 46 , - 111 , - 88 , - 153 , - 130 , - 19 , - 172 , - 61 , - 38 , - 103 , - 80 , - 145 , - 122 , - 11 , - 164 , - 53 , - 30 , - 95 , - 72 , - 137 , - 114 , - 3 , - 156 , - 45 , - 22 , - 87 , - 64 , - 129 , - 106 , - 171 , - 148 , - 37 , - 14 , - 79 , - 56 , - 121 , - 98 , - 163 , - 140 , - 29 , - 6 , - 71 , - 48 , - 113 , - 90 , - 155 , - 132 , - 21 , - 174 , - 63 , - 40 , - 105 , - 82 , - 147 , - 124 , - 13 , - 166 , - 55 , - 32 , - 97 , - 74 , - 139 , - 116 , - 5 , - 158 , - 47 , - 24 , - 89 , - 66 , - 131 , - 108 , - 173 , - 150 , - 39 , - 16 , - 81 , - 58 , - 123 , - 100 , - 165 , - 142 , - 31 , - 8 , - 73 , - 50 , - 115 , - 92 , - 157 , - 134 , - 23 , - 0 , - 67 , - 42 , - 109 , - 84 , - 151 , - 126 , - 9 , - 168 , - 51 , - 26 , - 93 , - 68 , - 135 , - 110 , - 177 , - 152 , - 35 , - 10 , - 77 , - 52 , - 119 , - 94 , - 161 , - 136 , - 19 , - 178 , - 61 , - 36 , - 103 , - 78 , - 145 , - 120 , - 3 , - 162 , - 45 , - 20 , - 87 , - 62 , - 129 , - 104 , - 171 , - 146 , - 29 , - 4 , - 71 , - 46 , - 113 , - 88 , - 155 , - 130 , - 13 , - 172 , - 55 , - 30 , - 97 , - 72 , - 139 , - 114 , - 181 , - 156 , - 39 , - 14 , - 81 , - 56 , - 123 , - 98 , - 165 , - 140 , - 23 , - 182 , - 65 , - 40 , - 107 , - 82 , - 149 , - 124 , - 7 , - 166 , - 49 , - 24 , - 91 , - 66 , - 133 , - 108 , - 175 , - 150 , - 33 , - 8 , - 75 , - 50 , - 117 , - 92 , - 159 , - 134 , - 17 , - 176 , - 59 , - 34 , - 101 , - 76 , - 143 , - 118 , - 1 , - 160 , - 43 , - 18 , - 85 , - 60 , - 127 , - 102 , - 169 , - 144 , - 27 , - 2 , - 69 , - 44 , - 111 , - 86 , - 153 , - 128 , - 11 , - 170 , - 53 , - 28 , - 95 , - 70 , - 137 , - 112 , - 179 , - 154 , - 37 , - 12 , - 79 , - 54 , - 121 , - 96 , - 163 , - 138 , - 21 , - 180 , - 63 , - 38 , - 105 , - 80 , - 147 , - 122 , - 5 , - 164 , - 47 , - 22 , - 89 , - 64 , - 131 , - 106 , - 173 , - 148 , - 31 , - 6 , - 73 , - 48 , - 115 , - 90 , - 157 , - 132 , - 15 , - 174 , - 57 , - 32 , - 99 , - 74 , - 141 , - 116 , - 183 , - 158 , - 41 , - 16 , - 83 , - 58 , - 125 , - 100 , - 167 , - 142 , - 25 , - 0 , - 23 , - 142 , - 165 , - 92 , - 115 , - 42 , - 65 , - 184 , - 15 , - 134 , - 157 , - 84 , - 107 , - 34 , - 57 , - 176 , - 7 , - 126 , - 149 , - 76 , - 99 , - 26 , - 49 , - 168 , - 191 , - 118 , - 141 , - 68 , - 91 , - 18 , - 41 , - 160 , - 183 , - 110 , - 133 , - 60 , - 83 , - 10 , - 33 , - 152 , - 175 , - 102 , - 125 , - 52 , - 75 , - 2 , - 25 , - 144 , - 167 , - 94 , - 117 , - 44 , - 67 , - 186 , - 17 , - 136 , - 159 , - 86 , - 109 , - 36 , - 59 , - 178 , - 9 , - 128 , - 151 , - 78 , - 101 , - 28 , - 51 , - 170 , - 1 , - 120 , - 143 , - 70 , - 93 , - 20 , - 43 , - 162 , - 185 , - 112 , - 135 , - 62 , - 85 , - 12 , - 35 , - 154 , - 177 , - 104 , - 127 , - 54 , - 77 , - 4 , - 27 , - 146 , - 169 , - 96 , - 119 , - 46 , - 69 , - 188 , - 19 , - 138 , - 161 , - 88 , - 111 , - 38 , - 61 , - 180 , - 11 , - 130 , - 153 , - 80 , - 103 , - 30 , - 53 , - 172 , - 3 , - 122 , - 145 , - 72 , - 95 , - 22 , - 45 , - 164 , - 187 , - 114 , - 137 , - 64 , - 87 , - 14 , - 37 , - 156 , - 179 , - 106 , - 129 , - 56 , - 79 , - 6 , - 29 , - 148 , - 171 , - 98 , - 121 , - 48 , - 71 , - 190 , - 21 , - 140 , - 163 , - 90 , - 113 , - 40 , - 63 , - 182 , - 13 , - 132 , - 155 , - 82 , - 105 , - 32 , - 55 , - 174 , - 5 , - 124 , - 147 , - 74 , - 97 , - 24 , - 47 , - 166 , - 189 , - 116 , - 139 , - 66 , - 89 , - 16 , - 39 , - 158 , - 181 , - 108 , - 131 , - 58 , - 81 , - 8 , - 31 , - 150 , - 173 , - 100 , - 123 , - 50 , - 73 , - 0 , - 27 , - 154 , - 181 , - 108 , - 135 , - 62 , - 89 , - 16 , - 43 , - 170 , - 197 , - 124 , - 151 , - 78 , - 105 , - 32 , - 59 , - 186 , - 13 , - 140 , - 167 , - 94 , - 121 , - 48 , - 75 , - 2 , - 29 , - 156 , - 183 , - 110 , - 137 , - 64 , - 91 , - 18 , - 45 , - 172 , - 199 , - 126 , - 153 , - 80 , - 107 , - 34 , - 61 , - 188 , - 15 , - 142 , - 169 , - 96 , - 123 , - 50 , - 77 , - 4 , - 31 , - 158 , - 185 , - 112 , - 139 , - 66 , - 93 , - 20 , - 47 , - 174 , - 1 , - 128 , - 155 , - 82 , - 109 , - 36 , - 63 , - 190 , - 17 , - 144 , - 171 , - 98 , - 125 , - 52 , - 79 , - 6 , - 33 , - 160 , - 187 , - 114 , - 141 , - 68 , - 95 , - 22 , - 49 , - 176 , - 3 , - 130 , - 157 , - 84 , - 111 , - 38 , - 65 , - 192 , - 19 , - 146 , - 173 , - 100 , - 127 , - 54 , - 81 , - 8 , - 35 , - 162 , - 189 , - 116 , - 143 , - 70 , - 97 , - 24 , - 51 , - 178 , - 5 , - 132 , - 159 , - 86 , - 113 , - 40 , - 67 , - 194 , - 21 , - 148 , - 175 , - 102 , - 129 , - 56 , - 83 , - 10 , - 37 , - 164 , - 191 , - 118 , - 145 , - 72 , - 99 , - 26 , - 53 , - 180 , - 7 , - 134 , - 161 , - 88 , - 115 , - 42 , - 69 , - 196 , - 23 , - 150 , - 177 , - 104 , - 131 , - 58 , - 85 , - 12 , - 39 , - 166 , - 193 , - 120 , - 147 , - 74 , - 101 , - 28 , - 55 , - 182 , - 9 , - 136 , - 163 , - 90 , - 117 , - 44 , - 71 , - 198 , - 25 , - 152 , - 179 , - 106 , - 133 , - 60 , - 87 , - 14 , - 41 , - 168 , - 195 , - 122 , - 149 , - 76 , - 103 , - 30 , - 57 , - 184 , - 11 , - 138 , - 165 , - 92 , - 119 , - 46 , - 73 , - 0 , - 183 , - 54 , - 29 , - 108 , - 83 , - 162 , - 137 , - 8 , - 191 , - 62 , - 37 , - 116 , - 91 , - 170 , - 145 , - 16 , - 199 , - 70 , - 45 , - 124 , - 99 , - 178 , - 153 , - 24 , - 207 , - 78 , - 53 , - 132 , - 107 , - 186 , - 161 , - 32 , - 7 , - 86 , - 61 , - 140 , - 115 , - 194 , - 169 , - 40 , - 15 , - 94 , - 69 , - 148 , - 123 , - 202 , - 177 , - 48 , - 23 , - 102 , - 77 , - 156 , - 131 , - 2 , - 185 , - 56 , - 31 , - 110 , - 85 , - 164 , - 139 , - 10 , - 193 , - 64 , - 39 , - 118 , - 93 , - 172 , - 147 , - 18 , - 201 , - 72 , - 47 , - 126 , - 101 , - 180 , - 155 , - 26 , - 1 , - 80 , - 55 , - 134 , - 109 , - 188 , - 163 , - 34 , - 9 , - 88 , - 63 , - 142 , - 117 , - 196 , - 171 , - 42 , - 17 , - 96 , - 71 , - 150 , - 125 , - 204 , - 179 , - 50 , - 25 , - 104 , - 79 , - 158 , - 133 , - 4 , - 187 , - 58 , - 33 , - 112 , - 87 , - 166 , - 141 , - 12 , - 195 , - 66 , - 41 , - 120 , - 95 , - 174 , - 149 , - 20 , - 203 , - 74 , - 49 , - 128 , - 103 , - 182 , - 157 , - 28 , - 3 , - 82 , - 57 , - 136 , - 111 , - 190 , - 165 , - 36 , - 11 , - 90 , - 65 , - 144 , - 119 , - 198 , - 173 , - 44 , - 19 , - 98 , - 73 , - 152 , - 127 , - 206 , - 181 , - 52 , - 27 , - 106 , - 81 , - 160 , - 135 , - 6 , - 189 , - 60 , - 35 , - 114 , - 89 , - 168 , - 143 , - 14 , - 197 , - 68 , - 43 , - 122 , - 97 , - 176 , - 151 , - 22 , - 205 , - 76 , - 51 , - 130 , - 105 , - 184 , - 159 , - 30 , - 5 , - 84 , - 59 , - 138 , - 113 , - 192 , - 167 , - 38 , - 13 , - 92 , - 67 , - 146 , - 121 , - 200 , - 175 , - 46 , - 21 , - 100 , - 75 , - 154 , - 129 , - 0 , - 95 , - 46 , - 69 , - 164 , - 115 , - 138 , - 17 , - 184 , - 207 , - 86 , - 37 , - 60 , - 155 , - 106 , - 129 , - 8 , - 175 , - 198 , - 77 , - 28 , - 51 , - 146 , - 97 , - 120 , - 215 , - 166 , - 189 , - 68 , - 19 , - 42 , - 137 , - 88 , - 111 , - 206 , - 157 , - 180 , - 59 , - 10 , - 33 , - 128 , - 79 , - 102 , - 197 , - 148 , - 171 , - 50 , - 1 , - 24 , - 119 , - 70 , - 93 , - 188 , - 139 , - 162 , - 41 , - 208 , - 15 , - 110 , - 61 , - 84 , - 179 , - 130 , - 153 , - 32 , - 199 , - 6 , - 101 , - 52 , - 75 , - 170 , - 121 , - 144 , - 23 , - 190 , - 213 , - 92 , - 43 , - 66 , - 161 , - 112 , - 135 , - 14 , - 181 , - 204 , - 83 , - 34 , - 57 , - 152 , - 103 , - 126 , - 5 , - 172 , - 195 , - 74 , - 25 , - 48 , - 143 , - 94 , - 117 , - 212 , - 163 , - 186 , - 65 , - 16 , - 39 , - 134 , - 85 , - 108 , - 203 , - 154 , - 177 , - 56 , - 7 , - 30 , - 125 , - 76 , - 99 , - 194 , - 145 , - 168 , - 47 , - 214 , - 21 , - 116 , - 67 , - 90 , - 185 , - 136 , - 159 , - 38 , - 205 , - 12 , - 107 , - 58 , - 81 , - 176 , - 127 , - 150 , - 29 , - 196 , - 3 , - 98 , - 49 , - 72 , - 167 , - 118 , - 141 , - 20 , - 187 , - 210 , - 89 , - 40 , - 63 , - 158 , - 109 , - 132 , - 11 , - 178 , - 201 , - 80 , - 31 , - 54 , - 149 , - 100 , - 123 , - 2 , - 169 , - 192 , - 71 , - 22 , - 45 , - 140 , - 91 , - 114 , - 209 , - 160 , - 183 , - 62 , - 13 , - 36 , - 131 , - 82 , - 105 , - 200 , - 151 , - 174 , - 53 , - 4 , - 27 , - 122 , - 73 , - 96 , - 191 , - 142 , - 165 , - 44 , - 211 , - 18 , - 113 , - 64 , - 87 , - 182 , - 133 , - 156 , - 35 , - 202 , - 9 , - 104 , - 55 , - 78 , - 173 , - 124 , - 147 , - 26 , - 193 , - 0 , - 139 , - 166 , - 81 , - 108 , - 23 , - 50 , - 189 , - 216 , - 131 , - 158 , - 73 , - 100 , - 15 , - 42 , - 181 , - 208 , - 123 , - 150 , - 65 , - 92 , - 7 , - 34 , - 173 , - 200 , - 115 , - 142 , - 57 , - 84 , - 223 , - 26 , - 165 , - 192 , - 107 , - 134 , - 49 , - 76 , - 215 , - 18 , - 157 , - 184 , - 99 , - 126 , - 41 , - 68 , - 207 , - 10 , - 149 , - 176 , - 91 , - 118 , - 33 , - 60 , - 199 , - 2 , - 141 , - 168 , - 83 , - 110 , - 25 , - 52 , - 191 , - 218 , - 133 , - 160 , - 75 , - 102 , - 17 , - 44 , - 183 , - 210 , - 125 , - 152 , - 67 , - 94 , - 9 , - 36 , - 175 , - 202 , - 117 , - 144 , - 59 , - 86 , - 1 , - 28 , - 167 , - 194 , - 109 , - 136 , - 51 , - 78 , - 217 , - 20 , - 159 , - 186 , - 101 , - 128 , - 43 , - 70 , - 209 , - 12 , - 151 , - 178 , - 93 , - 120 , - 35 , - 62 , - 201 , - 4 , - 143 , - 170 , - 85 , - 112 , - 27 , - 54 , - 193 , - 220 , - 135 , - 162 , - 77 , - 104 , - 19 , - 46 , - 185 , - 212 , - 127 , - 154 , - 69 , - 96 , - 11 , - 38 , - 177 , - 204 , - 119 , - 146 , - 61 , - 88 , - 3 , - 30 , - 169 , - 196 , - 111 , - 138 , - 53 , - 80 , - 219 , - 22 , - 161 , - 188 , - 103 , - 130 , - 45 , - 72 , - 211 , - 14 , - 153 , - 180 , - 95 , - 122 , - 37 , - 64 , - 203 , - 6 , - 145 , - 172 , - 87 , - 114 , - 29 , - 56 , - 195 , - 222 , - 137 , - 164 , - 79 , - 106 , - 21 , - 48 , - 187 , - 214 , - 129 , - 156 , - 71 , - 98 , - 13 , - 40 , - 179 , - 206 , - 121 , - 148 , - 63 , - 90 , - 5 , - 32 , - 171 , - 198 , - 113 , - 140 , - 55 , - 82 , - 221 , - 24 , - 163 , - 190 , - 105 , - 132 , - 47 , - 74 , - 213 , - 16 , - 155 , - 182 , - 97 , - 124 , - 39 , - 66 , - 205 , - 8 , - 147 , - 174 , - 89 , - 116 , - 31 , - 58 , - 197 , - 0 , - 43 , - 202 , - 13 , - 172 , - 215 , - 142 , - 185 , - 112 , - 155 , - 82 , - 125 , - 52 , - 95 , - 22 , - 65 , - 224 , - 35 , - 194 , - 5 , - 164 , - 207 , - 134 , - 177 , - 104 , - 147 , - 74 , - 117 , - 44 , - 87 , - 14 , - 57 , - 216 , - 27 , - 186 , - 229 , - 156 , - 199 , - 126 , - 169 , - 96 , - 139 , - 66 , - 109 , - 36 , - 79 , - 6 , - 49 , - 208 , - 19 , - 178 , - 221 , - 148 , - 191 , - 118 , - 161 , - 88 , - 131 , - 58 , - 101 , - 28 , - 71 , - 230 , - 41 , - 200 , - 11 , - 170 , - 213 , - 140 , - 183 , - 110 , - 153 , - 80 , - 123 , - 50 , - 93 , - 20 , - 63 , - 222 , - 33 , - 192 , - 3 , - 162 , - 205 , - 132 , - 175 , - 102 , - 145 , - 72 , - 115 , - 42 , - 85 , - 12 , - 55 , - 214 , - 25 , - 184 , - 227 , - 154 , - 197 , - 124 , - 167 , - 94 , - 137 , - 64 , - 107 , - 34 , - 77 , - 4 , - 47 , - 206 , - 17 , - 176 , - 219 , - 146 , - 189 , - 116 , - 159 , - 86 , - 129 , - 56 , - 99 , - 26 , - 69 , - 228 , - 39 , - 198 , - 9 , - 168 , - 211 , - 138 , - 181 , - 108 , - 151 , - 78 , - 121 , - 48 , - 91 , - 18 , - 61 , - 220 , - 31 , - 190 , - 1 , - 160 , - 203 , - 130 , - 173 , - 100 , - 143 , - 70 , - 113 , - 40 , - 83 , - 10 , - 53 , - 212 , - 23 , - 182 , - 225 , - 152 , - 195 , - 122 , - 165 , - 92 , - 135 , - 62 , - 105 , - 32 , - 75 , - 2 , - 45 , - 204 , - 15 , - 174 , - 217 , - 144 , - 187 , - 114 , - 157 , - 84 , - 127 , - 54 , - 97 , - 24 , - 67 , - 226 , - 37 , - 196 , - 7 , - 166 , - 209 , - 136 , - 179 , - 106 , - 149 , - 76 , - 119 , - 46 , - 89 , - 16 , - 59 , - 218 , - 29 , - 188 , - 231 , - 158 , - 201 , - 128 , - 171 , - 98 , - 141 , - 68 , - 111 , - 38 , - 81 , - 8 , - 51 , - 210 , - 21 , - 180 , - 223 , - 150 , - 193 , - 120 , - 163 , - 90 , - 133 , - 60 , - 103 , - 30 , - 73 , - 0 , - 89 , - 58 , - 147 , - 116 , - 205 , - 174 , - 23 , - 232 , - 81 , - 50 , - 139 , - 108 , - 197 , - 166 , - 15 , - 224 , - 73 , - 42 , - 131 , - 100 , - 189 , - 158 , - 7 , - 216 , - 65 , - 34 , - 123 , - 92 , - 181 , - 150 , - 239 , - 208 , - 57 , - 26 , - 115 , - 84 , - 173 , - 142 , - 231 , - 200 , - 49 , - 18 , - 107 , - 76 , - 165 , - 134 , - 223 , - 192 , - 41 , - 10 , - 99 , - 68 , - 157 , - 126 , - 215 , - 184 , - 33 , - 2 , - 91 , - 60 , - 149 , - 118 , - 207 , - 176 , - 25 , - 234 , - 83 , - 52 , - 141 , - 110 , - 199 , - 168 , - 17 , - 226 , - 75 , - 44 , - 133 , - 102 , - 191 , - 160 , - 9 , - 218 , - 67 , - 36 , - 125 , - 94 , - 183 , - 152 , - 1 , - 210 , - 59 , - 28 , - 117 , - 86 , - 175 , - 144 , - 233 , - 202 , - 51 , - 20 , - 109 , - 78 , - 167 , - 136 , - 225 , - 194 , - 43 , - 12 , - 101 , - 70 , - 159 , - 128 , - 217 , - 186 , - 35 , - 4 , - 93 , - 62 , - 151 , - 120 , - 209 , - 178 , - 27 , - 236 , - 85 , - 54 , - 143 , - 112 , - 201 , - 170 , - 19 , - 228 , - 77 , - 46 , - 135 , - 104 , - 193 , - 162 , - 11 , - 220 , - 69 , - 38 , - 127 , - 96 , - 185 , - 154 , - 3 , - 212 , - 61 , - 30 , - 119 , - 88 , - 177 , - 146 , - 235 , - 204 , - 53 , - 22 , - 111 , - 80 , - 169 , - 138 , - 227 , - 196 , - 45 , - 14 , - 103 , - 72 , - 161 , - 130 , - 219 , - 188 , - 37 , - 6 , - 95 , - 64 , - 153 , - 122 , - 211 , - 180 , - 29 , - 238 , - 87 , - 56 , - 145 , - 114 , - 203 , - 172 , - 21 , - 230 , - 79 , - 48 , - 137 , - 106 , - 195 , - 164 , - 13 , - 222 , - 71 , - 40 , - 129 , - 98 , - 187 , - 156 , - 5 , - 214 , - 63 , - 32 , - 121 , - 90 , - 179 , - 148 , - 237 , - 206 , - 55 , - 24 , - 113 , - 82 , - 171 , - 140 , - 229 , - 198 , - 47 , - 16 , - 105 , - 74 , - 163 , - 132 , - 221 , - 190 , - 39 , - 8 , - 97 , - 66 , - 155 , - 124 , - 213 , - 182 , - 31 , - 0 , - 171 , - 218 , - 141 , - 188 , - 111 , - 158 , - 81 , - 128 , - 51 , - 98 , - 21 , - 68 , - 239 , - 38 , - 209 , - 8 , - 179 , - 226 , - 149 , - 196 , - 119 , - 166 , - 89 , - 136 , - 59 , - 106 , - 29 , - 76 , - 247 , - 46 , - 217 , - 16 , - 187 , - 234 , - 157 , - 204 , - 127 , - 174 , - 97 , - 144 , - 67 , - 114 , - 37 , - 84 , - 7 , - 54 , - 225 , - 24 , - 195 , - 242 , - 165 , - 212 , - 135 , - 182 , - 105 , - 152 , - 75 , - 122 , - 45 , - 92 , - 15 , - 62 , - 233 , - 32 , - 203 , - 2 , - 173 , - 220 , - 143 , - 190 , - 113 , - 160 , - 83 , - 130 , - 53 , - 100 , - 23 , - 70 , - 241 , - 40 , - 211 , - 10 , - 181 , - 228 , - 151 , - 198 , - 121 , - 168 , - 91 , - 138 , - 61 , - 108 , - 31 , - 78 , - 1 , - 48 , - 219 , - 18 , - 189 , - 236 , - 159 , - 206 , - 129 , - 176 , - 99 , - 146 , - 69 , - 116 , - 39 , - 86 , - 9 , - 56 , - 227 , - 26 , - 197 , - 244 , - 167 , - 214 , - 137 , - 184 , - 107 , - 154 , - 77 , - 124 , - 47 , - 94 , - 17 , - 64 , - 235 , - 34 , - 205 , - 4 , - 175 , - 222 , - 145 , - 192 , - 115 , - 162 , - 85 , - 132 , - 55 , - 102 , - 25 , - 72 , - 243 , - 42 , - 213 , - 12 , - 183 , - 230 , - 153 , - 200 , - 123 , - 170 , - 93 , - 140 , - 63 , - 110 , - 33 , - 80 , - 3 , - 50 , - 221 , - 20 , - 191 , - 238 , - 161 , - 208 , - 131 , - 178 , - 101 , - 148 , - 71 , - 118 , - 41 , - 88 , - 11 , - 58 , - 229 , - 28 , - 199 , - 246 , - 169 , - 216 , - 139 , - 186 , - 109 , - 156 , - 79 , - 126 , - 49 , - 96 , - 19 , - 66 , - 237 , - 36 , - 207 , - 6 , - 177 , - 224 , - 147 , - 194 , - 117 , - 164 , - 87 , - 134 , - 57 , - 104 , - 27 , - 74 , - 245 , - 44 , - 215 , - 14 , - 185 , - 232 , - 155 , - 202 , - 125 , - 172 , - 95 , - 142 , - 65 , - 112 , - 35 , - 82 , - 5 , - 52 , - 223 , - 22 , - 193 , - 240 , - 163 , - 210 , - 133 , - 180 , - 103 , - 150 , - 73 , - 120 , - 43 , - 90 , - 13 , - 60 , - 231 , - 30 , - 201 , - 0 , - 15 , - 94 , - 237 , - 188 , - 203 , - 26 , - 169 , - 120 , - 135 , - 214 , - 101 , - 52 , - 67 , - 146 , - 33 , - 240 , - 255 , - 78 , - 221 , - 172 , - 187 , - 10 , - 153 , - 104 , - 119 , - 198 , - 85 , - 36 , - 51 , - 130 , - 17 , - 224 , - 239 , - 62 , - 205 , - 156 , - 171 , - 250 , - 137 , - 88 , - 103 , - 182 , - 69 , - 20 , - 35 , - 114 , - 1 , - 208 , - 223 , - 46 , - 189 , - 140 , - 155 , - 234 , - 121 , - 72 , - 87 , - 166 , - 53 , - 4 , - 19 , - 98 , - 241 , - 192 , - 207 , - 30 , - 173 , - 124 , - 139 , - 218 , - 105 , - 56 , - 71 , - 150 , - 37 , - 244 , - 3 , - 82 , - 225 , - 176 , - 191 , - 14 , - 157 , - 108 , - 123 , - 202 , - 89 , - 40 , - 55 , - 134 , - 21 , - 228 , - 243 , - 66 , - 209 , - 160 , - 175 , - 254 , - 141 , - 92 , - 107 , - 186 , - 73 , - 24 , - 39 , - 118 , - 5 , - 212 , - 227 , - 50 , - 193 , - 144 , - 159 , - 238 , - 125 , - 76 , - 91 , - 170 , - 57 , - 8 , - 23 , - 102 , - 245 , - 196 , - 211 , - 34 , - 177 , - 128 , - 143 , - 222 , - 109 , - 60 , - 75 , - 154 , - 41 , - 248 , - 7 , - 86 , - 229 , - 180 , - 195 , - 18 , - 161 , - 112 , - 127 , - 206 , - 93 , - 44 , - 59 , - 138 , - 25 , - 232 , - 247 , - 70 , - 213 , - 164 , - 179 , - 2 , - 145 , - 96 , - 111 , - 190 , - 77 , - 28 , - 43 , - 122 , - 9 , - 216 , - 231 , - 54 , - 197 , - 148 , - 163 , - 242 , - 129 , - 80 , - 95 , - 174 , - 61 , - 12 , - 27 , - 106 , - 249 , - 200 , - 215 , - 38 , - 181 , - 132 , - 147 , - 226 , - 113 , - 64 , - 79 , - 158 , - 45 , - 252 , - 11 , - 90 , - 233 , - 184 , - 199 , - 22 , - 165 , - 116 , - 131 , - 210 , - 97 , - 48 , - 63 , - 142 , - 29 , - 236 , - 251 , - 74 , - 217 , - 168 , - 183 , - 6 , - 149 , - 100 , - 115 , - 194 , - 81 , - 32 , - 47 , - 126 , - 13 , - 220 , - 235 , - 58 , - 201 , - 152 , - 167 , - 246 , - 133 , - 84 , - 99 , - 178 , - 65 , - 16 , - 31 , - 110 , - 253 , - 204 , - 219 , - 42 , - 185 , - 136 , - 151 , - 230 , - 117 , - 68 , - 83 , - 162 , - 49 , - 0 , - 35 , - 202 , - 237 , - 140 , - 175 , - 78 , - 113 , - 16 , - 51 , - 218 , - 253 , - 156 , - 191 , - 94 , - 129 , - 32 , - 67 , - 234 , - 5 , - 172 , - 207 , - 110 , - 145 , - 48 , - 83 , - 250 , - 21 , - 188 , - 223 , - 126 , - 161 , - 64 , - 99 , - 2 , - 37 , - 204 , - 239 , - 142 , - 177 , - 80 , - 115 , - 18 , - 53 , - 220 , - 255 , - 158 , - 193 , - 96 , - 131 , - 34 , - 69 , - 236 , - 7 , - 174 , - 209 , - 112 , - 147 , - 50 , - 85 , - 252 , - 23 , - 190 , - 225 , - 128 , - 163 , - 66 , - 101 , - 4 , - 39 , - 206 , - 241 , - 144 , - 179 , - 82 , - 117 , - 20 , - 55 , - 222 , - 257 , - 160 , - 195 , - 98 , - 133 , - 36 , - 71 , - 238 , - 9 , - 176 , - 211 , - 114 , - 149 , - 52 , - 87 , - 254 , - 25 , - 192 , - 227 , - 130 , - 165 , - 68 , - 103 , - 6 , - 41 , - 208 , - 243 , - 146 , - 181 , - 84 , - 119 , - 22 , - 57 , - 224 , - 259 , - 162 , - 197 , - 100 , - 135 , - 38 , - 73 , - 240 , - 11 , - 178 , - 213 , - 116 , - 151 , - 54 , - 89 , - 256 , - 27 , - 194 , - 229 , - 132 , - 167 , - 70 , - 105 , - 8 , - 43 , - 210 , - 245 , - 148 , - 183 , - 86 , - 121 , - 24 , - 59 , - 226 , - 261 , - 164 , - 199 , - 102 , - 137 , - 40 , - 75 , - 242 , - 13 , - 180 , - 215 , - 118 , - 153 , - 56 , - 91 , - 258 , - 29 , - 196 , - 231 , - 134 , - 169 , - 72 , - 107 , - 10 , - 45 , - 212 , - 247 , - 150 , - 185 , - 88 , - 123 , - 26 , - 61 , - 228 , - 263 , - 166 , - 201 , - 104 , - 139 , - 42 , - 77 , - 244 , - 15 , - 182 , - 217 , - 120 , - 155 , - 58 , - 93 , - 260 , - 31 , - 198 , - 233 , - 136 , - 171 , - 74 , - 109 , - 12 , - 47 , - 214 , - 249 , - 152 , - 187 , - 90 , - 125 , - 28 , - 63 , - 230 , - 1 , - 168 , - 203 , - 106 , - 141 , - 44 , - 79 , - 246 , - 17 , - 184 , - 219 , - 122 , - 157 , - 60 , - 95 , - 262 , - 33 , - 200 , - 235 , - 138 , - 173 , - 76 , - 111 , - 14 , - 49 , - 216 , - 251 , - 154 , - 189 , - 92 , - 127 , - 30 , - 65 , - 232 , - 3 , - 170 , - 205 , - 108 , - 143 , - 46 , - 81 , - 248 , - 19 , - 186 , - 221 , - 124 , - 159 , - 62 , - 97 , - 0 , - 237 , - 66 , - 31 , - 132 , - 97 , - 198 , - 163 , - 264 , - 229 , - 58 , - 23 , - 124 , - 89 , - 190 , - 155 , - 256 , - 221 , - 50 , - 15 , - 116 , - 81 , - 182 , - 147 , - 248 , - 213 , - 42 , - 7 , - 108 , - 73 , - 174 , - 139 , - 240 , - 205 , - 34 , - 271 , - 100 , - 65 , - 166 , - 131 , - 232 , - 197 , - 26 , - 263 , - 92 , - 57 , - 158 , - 123 , - 224 , - 189 , - 18 , - 255 , - 84 , - 49 , - 150 , - 115 , - 216 , - 181 , - 10 , - 247 , - 76 , - 41 , - 142 , - 107 , - 208 , - 173 , - 2 , - 239 , - 68 , - 33 , - 134 , - 99 , - 200 , - 165 , - 266 , - 231 , - 60 , - 25 , - 126 , - 91 , - 192 , - 157 , - 258 , - 223 , - 52 , - 17 , - 118 , - 83 , - 184 , - 149 , - 250 , - 215 , - 44 , - 9 , - 110 , - 75 , - 176 , - 141 , - 242 , - 207 , - 36 , - 1 , - 102 , - 67 , - 168 , - 133 , - 234 , - 199 , - 28 , - 265 , - 94 , - 59 , - 160 , - 125 , - 226 , - 191 , - 20 , - 257 , - 86 , - 51 , - 152 , - 117 , - 218 , - 183 , - 12 , - 249 , - 78 , - 43 , - 144 , - 109 , - 210 , - 175 , - 4 , - 241 , - 70 , - 35 , - 136 , - 101 , - 202 , - 167 , - 268 , - 233 , - 62 , - 27 , - 128 , - 93 , - 194 , - 159 , - 260 , - 225 , - 54 , - 19 , - 120 , - 85 , - 186 , - 151 , - 252 , - 217 , - 46 , - 11 , - 112 , - 77 , - 178 , - 143 , - 244 , - 209 , - 38 , - 3 , - 104 , - 69 , - 170 , - 135 , - 236 , - 201 , - 30 , - 267 , - 96 , - 61 , - 162 , - 127 , - 228 , - 193 , - 22 , - 259 , - 88 , - 53 , - 154 , - 119 , - 220 , - 185 , - 14 , - 251 , - 80 , - 45 , - 146 , - 111 , - 212 , - 177 , - 6 , - 243 , - 72 , - 37 , - 138 , - 103 , - 204 , - 169 , - 270 , - 235 , - 64 , - 29 , - 130 , - 95 , - 196 , - 161 , - 262 , - 227 , - 56 , - 21 , - 122 , - 87 , - 188 , - 153 , - 254 , - 219 , - 48 , - 13 , - 114 , - 79 , - 180 , - 145 , - 246 , - 211 , - 40 , - 5 , - 106 , - 71 , - 172 , - 137 , - 238 , - 203 , - 32 , - 269 , - 98 , - 63 , - 164 , - 129 , - 230 , - 195 , - 24 , - 261 , - 90 , - 55 , - 156 , - 121 , - 222 , - 187 , - 16 , - 253 , - 82 , - 47 , - 148 , - 113 , - 214 , - 179 , - 8 , - 245 , - 74 , - 39 , - 140 , - 105 , - 206 , - 171 , - 0 , - 17 , - 174 , - 191 , - 68 , - 85 , - 242 , - 259 , - 136 , - 153 , - 30 , - 47 , - 204 , - 221 , - 98 , - 115 , - 272 , - 9 , - 166 , - 183 , - 60 , - 77 , - 234 , - 251 , - 128 , - 145 , - 22 , - 39 , - 196 , - 213 , - 90 , - 107 , - 264 , - 1 , - 158 , - 175 , - 52 , - 69 , - 226 , - 243 , - 120 , - 137 , - 14 , - 31 , - 188 , - 205 , - 82 , - 99 , - 256 , - 273 , - 150 , - 167 , - 44 , - 61 , - 218 , - 235 , - 112 , - 129 , - 6 , - 23 , - 180 , - 197 , - 74 , - 91 , - 248 , - 265 , - 142 , - 159 , - 36 , - 53 , - 210 , - 227 , - 104 , - 121 , - 278 , - 15 , - 172 , - 189 , - 66 , - 83 , - 240 , - 257 , - 134 , - 151 , - 28 , - 45 , - 202 , - 219 , - 96 , - 113 , - 270 , - 7 , - 164 , - 181 , - 58 , - 75 , - 232 , - 249 , - 126 , - 143 , - 20 , - 37 , - 194 , - 211 , - 88 , - 105 , - 262 , - 279 , - 156 , - 173 , - 50 , - 67 , - 224 , - 241 , - 118 , - 135 , - 12 , - 29 , - 186 , - 203 , - 80 , - 97 , - 254 , - 271 , - 148 , - 165 , - 42 , - 59 , - 216 , - 233 , - 110 , - 127 , - 4 , - 21 , - 178 , - 195 , - 72 , - 89 , - 246 , - 263 , - 140 , - 157 , - 34 , - 51 , - 208 , - 225 , - 102 , - 119 , - 276 , - 13 , - 170 , - 187 , - 64 , - 81 , - 238 , - 255 , - 132 , - 149 , - 26 , - 43 , - 200 , - 217 , - 94 , - 111 , - 268 , - 5 , - 162 , - 179 , - 56 , - 73 , - 230 , - 247 , - 124 , - 141 , - 18 , - 35 , - 192 , - 209 , - 86 , - 103 , - 260 , - 277 , - 154 , - 171 , - 48 , - 65 , - 222 , - 239 , - 116 , - 133 , - 10 , - 27 , - 184 , - 201 , - 78 , - 95 , - 252 , - 269 , - 146 , - 163 , - 40 , - 57 , - 214 , - 231 , - 108 , - 125 , - 2 , - 19 , - 176 , - 193 , - 70 , - 87 , - 244 , - 261 , - 138 , - 155 , - 32 , - 49 , - 206 , - 223 , - 100 , - 117 , - 274 , - 11 , - 168 , - 185 , - 62 , - 79 , - 236 , - 253 , - 130 , - 147 , - 24 , - 41 , - 198 , - 215 , - 92 , - 109 , - 266 , - 3 , - 160 , - 177 , - 54 , - 71 , - 228 , - 245 , - 122 , - 139 , - 16 , - 33 , - 190 , - 207 , - 84 , - 101 , - 258 , - 275 , - 152 , - 169 , - 46 , - 63 , - 220 , - 237 , - 114 , - 131 , - 8 , - 25 , - 182 , - 199 , - 76 , - 93 , - 250 , - 267 , - 144 , - 161 , - 38 , - 55 , - 212 , - 229 , - 106 , - 123 , - 0 , - 271 , - 38 , - 165 , - 76 , - 59 , - 114 , - 241 , - 152 , - 135 , - 190 , - 29 , - 228 , - 211 , - 266 , - 105 , - 16 , - 287 , - 54 , - 181 , - 92 , - 75 , - 130 , - 257 , - 168 , - 151 , - 206 , - 45 , - 244 , - 227 , - 282 , - 121 , - 32 , - 15 , - 70 , - 197 , - 108 , - 91 , - 146 , - 273 , - 184 , - 167 , - 222 , - 61 , - 260 , - 243 , - 10 , - 137 , - 48 , - 31 , - 86 , - 213 , - 124 , - 107 , - 162 , - 1 , - 200 , - 183 , - 238 , - 77 , - 276 , - 259 , - 26 , - 153 , - 64 , - 47 , - 102 , - 229 , - 140 , - 123 , - 178 , - 17 , - 216 , - 199 , - 254 , - 93 , - 4 , - 275 , - 42 , - 169 , - 80 , - 63 , - 118 , - 245 , - 156 , - 139 , - 194 , - 33 , - 232 , - 215 , - 270 , - 109 , - 20 , - 3 , - 58 , - 185 , - 96 , - 79 , - 134 , - 261 , - 172 , - 155 , - 210 , - 49 , - 248 , - 231 , - 286 , - 125 , - 36 , - 19 , - 74 , - 201 , - 112 , - 95 , - 150 , - 277 , - 188 , - 171 , - 226 , - 65 , - 264 , - 247 , - 14 , - 141 , - 52 , - 35 , - 90 , - 217 , - 128 , - 111 , - 166 , - 5 , - 204 , - 187 , - 242 , - 81 , - 280 , - 263 , - 30 , - 157 , - 68 , - 51 , - 106 , - 233 , - 144 , - 127 , - 182 , - 21 , - 220 , - 203 , - 258 , - 97 , - 8 , - 279 , - 46 , - 173 , - 84 , - 67 , - 122 , - 249 , - 160 , - 143 , - 198 , - 37 , - 236 , - 219 , - 274 , - 113 , - 24 , - 7 , - 62 , - 189 , - 100 , - 83 , - 138 , - 265 , - 176 , - 159 , - 214 , - 53 , - 252 , - 235 , - 2 , - 129 , - 40 , - 23 , - 78 , - 205 , - 116 , - 99 , - 154 , - 281 , - 192 , - 175 , - 230 , - 69 , - 268 , - 251 , - 18 , - 145 , - 56 , - 39 , - 94 , - 221 , - 132 , - 115 , - 170 , - 9 , - 208 , - 191 , - 246 , - 85 , - 284 , - 267 , - 34 , - 161 , - 72 , - 55 , - 110 , - 237 , - 148 , - 131 , - 186 , - 25 , - 224 , - 207 , - 262 , - 101 , - 12 , - 283 , - 50 , - 177 , - 88 , - 71 , - 126 , - 253 , - 164 , - 147 , - 202 , - 41 , - 240 , - 223 , - 278 , - 117 , - 28 , - 11 , - 66 , - 193 , - 104 , - 87 , - 142 , - 269 , - 180 , - 163 , - 218 , - 57 , - 256 , - 239 , - 6 , - 133 , - 44 , - 27 , - 82 , - 209 , - 120 , - 103 , - 158 , - 285 , - 196 , - 179 , - 234 , - 73 , - 272 , - 255 , - 22 , - 149 , - 60 , - 43 , - 98 , - 225 , - 136 , - 119 , - 174 , - 13 , - 212 , - 195 , - 250 , - 89 , - 0 , - 261 , - 78 , - 43 , - 156 , - 121 , - 234 , - 199 , - 16 , - 277 , - 94 , - 59 , - 172 , - 137 , - 250 , - 215 , - 32 , - 293 , - 110 , - 75 , - 188 , - 153 , - 266 , - 231 , - 48 , - 13 , - 126 , - 91 , - 204 , - 169 , - 282 , - 247 , - 64 , - 29 , - 142 , - 107 , - 220 , - 185 , - 2 , - 263 , - 80 , - 45 , - 158 , - 123 , - 236 , - 201 , - 18 , - 279 , - 96 , - 61 , - 174 , - 139 , - 252 , - 217 , - 34 , - 295 , - 112 , - 77 , - 190 , - 155 , - 268 , - 233 , - 50 , - 15 , - 128 , - 93 , - 206 , - 171 , - 284 , - 249 , - 66 , - 31 , - 144 , - 109 , - 222 , - 187 , - 4 , - 265 , - 82 , - 47 , - 160 , - 125 , - 238 , - 203 , - 20 , - 281 , - 98 , - 63 , - 176 , - 141 , - 254 , - 219 , - 36 , - 1 , - 114 , - 79 , - 192 , - 157 , - 270 , - 235 , - 52 , - 17 , - 130 , - 95 , - 208 , - 173 , - 286 , - 251 , - 68 , - 33 , - 146 , - 111 , - 224 , - 189 , - 6 , - 267 , - 84 , - 49 , - 162 , - 127 , - 240 , - 205 , - 22 , - 283 , - 100 , - 65 , - 178 , - 143 , - 256 , - 221 , - 38 , - 3 , - 116 , - 81 , - 194 , - 159 , - 272 , - 237 , - 54 , - 19 , - 132 , - 97 , - 210 , - 175 , - 288 , - 253 , - 70 , - 35 , - 148 , - 113 , - 226 , - 191 , - 8 , - 269 , - 86 , - 51 , - 164 , - 129 , - 242 , - 207 , - 24 , - 285 , - 102 , - 67 , - 180 , - 145 , - 258 , - 223 , - 40 , - 5 , - 118 , - 83 , - 196 , - 161 , - 274 , - 239 , - 56 , - 21 , - 134 , - 99 , - 212 , - 177 , - 290 , - 255 , - 72 , - 37 , - 150 , - 115 , - 228 , - 193 , - 10 , - 271 , - 88 , - 53 , - 166 , - 131 , - 244 , - 209 , - 26 , - 287 , - 104 , - 69 , - 182 , - 147 , - 260 , - 225 , - 42 , - 7 , - 120 , - 85 , - 198 , - 163 , - 276 , - 241 , - 58 , - 23 , - 136 , - 101 , - 214 , - 179 , - 292 , - 257 , - 74 , - 39 , - 152 , - 117 , - 230 , - 195 , - 12 , - 273 , - 90 , - 55 , - 168 , - 133 , - 246 , - 211 , - 28 , - 289 , - 106 , - 71 , - 184 , - 149 , - 262 , - 227 , - 44 , - 9 , - 122 , - 87 , - 200 , - 165 , - 278 , - 243 , - 60 , - 25 , - 138 , - 103 , - 216 , - 181 , - 294 , - 259 , - 76 , - 41 , - 154 , - 119 , - 232 , - 197 , - 14 , - 275 , - 92 , - 57 , - 170 , - 135 , - 248 , - 213 , - 30 , - 291 , - 108 , - 73 , - 186 , - 151 , - 264 , - 229 , - 46 , - 11 , - 124 , - 89 , - 202 , - 167 , - 280 , - 245 , - 62 , - 27 , - 140 , - 105 , - 218 , - 183 , - 0 , - 113 , - 74 , - 187 , - 148 , - 261 , - 222 , - 31 , - 296 , - 105 , - 66 , - 179 , - 140 , - 253 , - 214 , - 23 , - 288 , - 97 , - 58 , - 171 , - 132 , - 245 , - 206 , - 15 , - 280 , - 89 , - 50 , - 163 , - 124 , - 237 , - 198 , - 7 , - 272 , - 81 , - 42 , - 155 , - 116 , - 229 , - 190 , - 303 , - 264 , - 73 , - 34 , - 147 , - 108 , - 221 , - 182 , - 295 , - 256 , - 65 , - 26 , - 139 , - 100 , - 213 , - 174 , - 287 , - 248 , - 57 , - 18 , - 131 , - 92 , - 205 , - 166 , - 279 , - 240 , - 49 , - 10 , - 123 , - 84 , - 197 , - 158 , - 271 , - 232 , - 41 , - 2 , - 115 , - 76 , - 189 , - 150 , - 263 , - 224 , - 33 , - 298 , - 107 , - 68 , - 181 , - 142 , - 255 , - 216 , - 25 , - 290 , - 99 , - 60 , - 173 , - 134 , - 247 , - 208 , - 17 , - 282 , - 91 , - 52 , - 165 , - 126 , - 239 , - 200 , - 9 , - 274 , - 83 , - 44 , - 157 , - 118 , - 231 , - 192 , - 1 , - 266 , - 75 , - 36 , - 149 , - 110 , - 223 , - 184 , - 297 , - 258 , - 67 , - 28 , - 141 , - 102 , - 215 , - 176 , - 289 , - 250 , - 59 , - 20 , - 133 , - 94 , - 207 , - 168 , - 281 , - 242 , - 51 , - 12 , - 125 , - 86 , - 199 , - 160 , - 273 , - 234 , - 43 , - 4 , - 117 , - 78 , - 191 , - 152 , - 265 , - 226 , - 35 , - 300 , - 109 , - 70 , - 183 , - 144 , - 257 , - 218 , - 27 , - 292 , - 101 , - 62 , - 175 , - 136 , - 249 , - 210 , - 19 , - 284 , - 93 , - 54 , - 167 , - 128 , - 241 , - 202 , - 11 , - 276 , - 85 , - 46 , - 159 , - 120 , - 233 , - 194 , - 3 , - 268 , - 77 , - 38 , - 151 , - 112 , - 225 , - 186 , - 299 , - 260 , - 69 , - 30 , - 143 , - 104 , - 217 , - 178 , - 291 , - 252 , - 61 , - 22 , - 135 , - 96 , - 209 , - 170 , - 283 , - 244 , - 53 , - 14 , - 127 , - 88 , - 201 , - 162 , - 275 , - 236 , - 45 , - 6 , - 119 , - 80 , - 193 , - 154 , - 267 , - 228 , - 37 , - 302 , - 111 , - 72 , - 185 , - 146 , - 259 , - 220 , - 29 , - 294 , - 103 , - 64 , - 177 , - 138 , - 251 , - 212 , - 21 , - 286 , - 95 , - 56 , - 169 , - 130 , - 243 , - 204 , - 13 , - 278 , - 87 , - 48 , - 161 , - 122 , - 235 , - 196 , - 5 , - 270 , - 79 , - 40 , - 153 , - 114 , - 227 , - 188 , - 301 , - 262 , - 71 , - 32 , - 145 , - 106 , - 219 , - 180 , - 293 , - 254 , - 63 , - 24 , - 137 , - 98 , - 211 , - 172 , - 285 , - 246 , - 55 , - 16 , - 129 , - 90 , - 203 , - 164 , - 277 , - 238 , - 47 , - 8 , - 121 , - 82 , - 195 , - 156 , - 269 , - 230 , - 39 , - 0 , - 193 , - 230 , - 111 , - 148 , - 29 , - 66 , - 259 , - 296 , - 177 , - 214 , - 95 , - 132 , - 13 , - 50 , - 243 , - 280 , - 161 , - 198 , - 79 , - 116 , - 309 , - 34 , - 227 , - 264 , - 145 , - 182 , - 63 , - 100 , - 293 , - 18 , - 211 , - 248 , - 129 , - 166 , - 47 , - 84 , - 277 , - 2 , - 195 , - 232 , - 113 , - 150 , - 31 , - 68 , - 261 , - 298 , - 179 , - 216 , - 97 , - 134 , - 15 , - 52 , - 245 , - 282 , - 163 , - 200 , - 81 , - 118 , - 311 , - 36 , - 229 , - 266 , - 147 , - 184 , - 65 , - 102 , - 295 , - 20 , - 213 , - 250 , - 131 , - 168 , - 49 , - 86 , - 279 , - 4 , - 197 , - 234 , - 115 , - 152 , - 33 , - 70 , - 263 , - 300 , - 181 , - 218 , - 99 , - 136 , - 17 , - 54 , - 247 , - 284 , - 165 , - 202 , - 83 , - 120 , - 1 , - 38 , - 231 , - 268 , - 149 , - 186 , - 67 , - 104 , - 297 , - 22 , - 215 , - 252 , - 133 , - 170 , - 51 , - 88 , - 281 , - 6 , - 199 , - 236 , - 117 , - 154 , - 35 , - 72 , - 265 , - 302 , - 183 , - 220 , - 101 , - 138 , - 19 , - 56 , - 249 , - 286 , - 167 , - 204 , - 85 , - 122 , - 3 , - 40 , - 233 , - 270 , - 151 , - 188 , - 69 , - 106 , - 299 , - 24 , - 217 , - 254 , - 135 , - 172 , - 53 , - 90 , - 283 , - 8 , - 201 , - 238 , - 119 , - 156 , - 37 , - 74 , - 267 , - 304 , - 185 , - 222 , - 103 , - 140 , - 21 , - 58 , - 251 , - 288 , - 169 , - 206 , - 87 , - 124 , - 5 , - 42 , - 235 , - 272 , - 153 , - 190 , - 71 , - 108 , - 301 , - 26 , - 219 , - 256 , - 137 , - 174 , - 55 , - 92 , - 285 , - 10 , - 203 , - 240 , - 121 , - 158 , - 39 , - 76 , - 269 , - 306 , - 187 , - 224 , - 105 , - 142 , - 23 , - 60 , - 253 , - 290 , - 171 , - 208 , - 89 , - 126 , - 7 , - 44 , - 237 , - 274 , - 155 , - 192 , - 73 , - 110 , - 303 , - 28 , - 221 , - 258 , - 139 , - 176 , - 57 , - 94 , - 287 , - 12 , - 205 , - 242 , - 123 , - 160 , - 41 , - 78 , - 271 , - 308 , - 189 , - 226 , - 107 , - 144 , - 25 , - 62 , - 255 , - 292 , - 173 , - 210 , - 91 , - 128 , - 9 , - 46 , - 239 , - 276 , - 157 , - 194 , - 75 , - 112 , - 305 , - 30 , - 223 , - 260 , - 141 , - 178 , - 59 , - 96 , - 289 , - 14 , - 207 , - 244 , - 125 , - 162 , - 43 , - 80 , - 273 , - 310 , - 191 , - 228 , - 109 , - 146 , - 27 , - 64 , - 257 , - 294 , - 175 , - 212 , - 93 , - 130 , - 11 , - 48 , - 241 , - 278 , - 159 , - 196 , - 77 , - 114 , - 307 , - 32 , - 225 , - 262 , - 143 , - 180 , - 61 , - 98 , - 291 , - 16 , - 209 , - 246 , - 127 , - 164 , - 45 , - 82 , - 275 , - 0 , - 101 , - 282 , - 223 , - 244 , - 25 , - 206 , - 147 , - 168 , - 269 , - 130 , - 71 , - 92 , - 193 , - 54 , - 315 , - 16 , - 117 , - 298 , - 239 , - 260 , - 41 , - 222 , - 163 , - 184 , - 285 , - 146 , - 87 , - 108 , - 209 , - 70 , - 11 , - 32 , - 133 , - 314 , - 255 , - 276 , - 57 , - 238 , - 179 , - 200 , - 301 , - 162 , - 103 , - 124 , - 225 , - 86 , - 27 , - 48 , - 149 , - 10 , - 271 , - 292 , - 73 , - 254 , - 195 , - 216 , - 317 , - 178 , - 119 , - 140 , - 241 , - 102 , - 43 , - 64 , - 165 , - 26 , - 287 , - 308 , - 89 , - 270 , - 211 , - 232 , - 13 , - 194 , - 135 , - 156 , - 257 , - 118 , - 59 , - 80 , - 181 , - 42 , - 303 , - 4 , - 105 , - 286 , - 227 , - 248 , - 29 , - 210 , - 151 , - 172 , - 273 , - 134 , - 75 , - 96 , - 197 , - 58 , - 319 , - 20 , - 121 , - 302 , - 243 , - 264 , - 45 , - 226 , - 167 , - 188 , - 289 , - 150 , - 91 , - 112 , - 213 , - 74 , - 15 , - 36 , - 137 , - 318 , - 259 , - 280 , - 61 , - 242 , - 183 , - 204 , - 305 , - 166 , - 107 , - 128 , - 229 , - 90 , - 31 , - 52 , - 153 , - 14 , - 275 , - 296 , - 77 , - 258 , - 199 , - 220 , - 1 , - 182 , - 123 , - 144 , - 245 , - 106 , - 47 , - 68 , - 169 , - 30 , - 291 , - 312 , - 93 , - 274 , - 215 , - 236 , - 17 , - 198 , - 139 , - 160 , - 261 , - 122 , - 63 , - 84 , - 185 , - 46 , - 307 , - 8 , - 109 , - 290 , - 231 , - 252 , - 33 , - 214 , - 155 , - 176 , - 277 , - 138 , - 79 , - 100 , - 201 , - 62 , - 3 , - 24 , - 125 , - 306 , - 247 , - 268 , - 49 , - 230 , - 171 , - 192 , - 293 , - 154 , - 95 , - 116 , - 217 , - 78 , - 19 , - 40 , - 141 , - 2 , - 263 , - 284 , - 65 , - 246 , - 187 , - 208 , - 309 , - 170 , - 111 , - 132 , - 233 , - 94 , - 35 , - 56 , - 157 , - 18 , - 279 , - 300 , - 81 , - 262 , - 203 , - 224 , - 5 , - 186 , - 127 , - 148 , - 249 , - 110 , - 51 , - 72 , - 173 , - 34 , - 295 , - 316 , - 97 , - 278 , - 219 , - 240 , - 21 , - 202 , - 143 , - 164 , - 265 , - 126 , - 67 , - 88 , - 189 , - 50 , - 311 , - 12 , - 113 , - 294 , - 235 , - 256 , - 37 , - 218 , - 159 , - 180 , - 281 , - 142 , - 83 , - 104 , - 205 , - 66 , - 7 , - 28 , - 129 , - 310 , - 251 , - 272 , - 53 , - 234 , - 175 , - 196 , - 297 , - 158 , - 99 , - 120 , - 221 , - 82 , - 23 , - 44 , - 145 , - 6 , - 267 , - 288 , - 69 , - 250 , - 191 , - 212 , - 313 , - 174 , - 115 , - 136 , - 237 , - 98 , - 39 , - 60 , - 161 , - 22 , - 283 , - 304 , - 85 , - 266 , - 207 , - 228 , - 9 , - 190 , - 131 , - 152 , - 253 , - 114 , - 55 , - 76 , - 177 , - 38 , - 299 , - 0 , - 43 , - 250 , - 293 , - 172 , - 215 , - 94 , - 137 , - 16 , - 59 , - 266 , - 309 , - 188 , - 231 , - 110 , - 153 , - 32 , - 75 , - 282 , - 325 , - 204 , - 247 , - 126 , - 169 , - 48 , - 91 , - 298 , - 13 , - 220 , - 263 , - 142 , - 185 , - 64 , - 107 , - 314 , - 29 , - 236 , - 279 , - 158 , - 201 , - 80 , - 123 , - 2 , - 45 , - 252 , - 295 , - 174 , - 217 , - 96 , - 139 , - 18 , - 61 , - 268 , - 311 , - 190 , - 233 , - 112 , - 155 , - 34 , - 77 , - 284 , - 327 , - 206 , - 249 , - 128 , - 171 , - 50 , - 93 , - 300 , - 15 , - 222 , - 265 , - 144 , - 187 , - 66 , - 109 , - 316 , - 31 , - 238 , - 281 , - 160 , - 203 , - 82 , - 125 , - 4 , - 47 , - 254 , - 297 , - 176 , - 219 , - 98 , - 141 , - 20 , - 63 , - 270 , - 313 , - 192 , - 235 , - 114 , - 157 , - 36 , - 79 , - 286 , - 1 , - 208 , - 251 , - 130 , - 173 , - 52 , - 95 , - 302 , - 17 , - 224 , - 267 , - 146 , - 189 , - 68 , - 111 , - 318 , - 33 , - 240 , - 283 , - 162 , - 205 , - 84 , - 127 , - 6 , - 49 , - 256 , - 299 , - 178 , - 221 , - 100 , - 143 , - 22 , - 65 , - 272 , - 315 , - 194 , - 237 , - 116 , - 159 , - 38 , - 81 , - 288 , - 3 , - 210 , - 253 , - 132 , - 175 , - 54 , - 97 , - 304 , - 19 , - 226 , - 269 , - 148 , - 191 , - 70 , - 113 , - 320 , - 35 , - 242 , - 285 , - 164 , - 207 , - 86 , - 129 , - 8 , - 51 , - 258 , - 301 , - 180 , - 223 , - 102 , - 145 , - 24 , - 67 , - 274 , - 317 , - 196 , - 239 , - 118 , - 161 , - 40 , - 83 , - 290 , - 5 , - 212 , - 255 , - 134 , - 177 , - 56 , - 99 , - 306 , - 21 , - 228 , - 271 , - 150 , - 193 , - 72 , - 115 , - 322 , - 37 , - 244 , - 287 , - 166 , - 209 , - 88 , - 131 , - 10 , - 53 , - 260 , - 303 , - 182 , - 225 , - 104 , - 147 , - 26 , - 69 , - 276 , - 319 , - 198 , - 241 , - 120 , - 163 , - 42 , - 85 , - 292 , - 7 , - 214 , - 257 , - 136 , - 179 , - 58 , - 101 , - 308 , - 23 , - 230 , - 273 , - 152 , - 195 , - 74 , - 117 , - 324 , - 39 , - 246 , - 289 , - 168 , - 211 , - 90 , - 133 , - 12 , - 55 , - 262 , - 305 , - 184 , - 227 , - 106 , - 149 , - 28 , - 71 , - 278 , - 321 , - 200 , - 243 , - 122 , - 165 , - 44 , - 87 , - 294 , - 9 , - 216 , - 259 , - 138 , - 181 , - 60 , - 103 , - 310 , - 25 , - 232 , - 275 , - 154 , - 197 , - 76 , - 119 , - 326 , - 41 , - 248 , - 291 , - 170 , - 213 , - 92 , - 135 , - 14 , - 57 , - 264 , - 307 , - 186 , - 229 , - 108 , - 151 , - 30 , - 73 , - 280 , - 323 , - 202 , - 245 , - 124 , - 167 , - 46 , - 89 , - 296 , - 11 , - 218 , - 261 , - 140 , - 183 , - 62 , - 105 , - 312 , - 27 , - 234 , - 277 , - 156 , - 199 , - 78 , - 121 , - 0 , - 271 , - 38 , - 309 , - 76 , - 11 , - 114 , - 49 , - 152 , - 87 , - 190 , - 125 , - 228 , - 163 , - 266 , - 201 , - 304 , - 239 , - 6 , - 277 , - 44 , - 315 , - 82 , - 17 , - 120 , - 55 , - 158 , - 93 , - 196 , - 131 , - 234 , - 169 , - 272 , - 207 , - 310 , - 245 , - 12 , - 283 , - 50 , - 321 , - 88 , - 23 , - 126 , - 61 , - 164 , - 99 , - 202 , - 137 , - 240 , - 175 , - 278 , - 213 , - 316 , - 251 , - 18 , - 289 , - 56 , - 327 , - 94 , - 29 , - 132 , - 67 , - 170 , - 105 , - 208 , - 143 , - 246 , - 181 , - 284 , - 219 , - 322 , - 257 , - 24 , - 295 , - 62 , - 333 , - 100 , - 35 , - 138 , - 73 , - 176 , - 111 , - 214 , - 149 , - 252 , - 187 , - 290 , - 225 , - 328 , - 263 , - 30 , - 301 , - 68 , - 3 , - 106 , - 41 , - 144 , - 79 , - 182 , - 117 , - 220 , - 155 , - 258 , - 193 , - 296 , - 231 , - 334 , - 269 , - 36 , - 307 , - 74 , - 9 , - 112 , - 47 , - 150 , - 85 , - 188 , - 123 , - 226 , - 161 , - 264 , - 199 , - 302 , - 237 , - 4 , - 275 , - 42 , - 313 , - 80 , - 15 , - 118 , - 53 , - 156 , - 91 , - 194 , - 129 , - 232 , - 167 , - 270 , - 205 , - 308 , - 243 , - 10 , - 281 , - 48 , - 319 , - 86 , - 21 , - 124 , - 59 , - 162 , - 97 , - 200 , - 135 , - 238 , - 173 , - 276 , - 211 , - 314 , - 249 , - 16 , - 287 , - 54 , - 325 , - 92 , - 27 , - 130 , - 65 , - 168 , - 103 , - 206 , - 141 , - 244 , - 179 , - 282 , - 217 , - 320 , - 255 , - 22 , - 293 , - 60 , - 331 , - 98 , - 33 , - 136 , - 71 , - 174 , - 109 , - 212 , - 147 , - 250 , - 185 , - 288 , - 223 , - 326 , - 261 , - 28 , - 299 , - 66 , - 1 , - 104 , - 39 , - 142 , - 77 , - 180 , - 115 , - 218 , - 153 , - 256 , - 191 , - 294 , - 229 , - 332 , - 267 , - 34 , - 305 , - 72 , - 7 , - 110 , - 45 , - 148 , - 83 , - 186 , - 121 , - 224 , - 159 , - 262 , - 197 , - 300 , - 235 , - 2 , - 273 , - 40 , - 311 , - 78 , - 13 , - 116 , - 51 , - 154 , - 89 , - 192 , - 127 , - 230 , - 165 , - 268 , - 203 , - 306 , - 241 , - 8 , - 279 , - 46 , - 317 , - 84 , - 19 , - 122 , - 57 , - 160 , - 95 , - 198 , - 133 , - 236 , - 171 , - 274 , - 209 , - 312 , - 247 , - 14 , - 285 , - 52 , - 323 , - 90 , - 25 , - 128 , - 63 , - 166 , - 101 , - 204 , - 139 , - 242 , - 177 , - 280 , - 215 , - 318 , - 253 , - 20 , - 291 , - 58 , - 329 , - 96 , - 31 , - 134 , - 69 , - 172 , - 107 , - 210 , - 145 , - 248 , - 183 , - 286 , - 221 , - 324 , - 259 , - 26 , - 297 , - 64 , - 335 , - 102 , - 37 , - 140 , - 75 , - 178 , - 113 , - 216 , - 151 , - 254 , - 189 , - 292 , - 227 , - 330 , - 265 , - 32 , - 303 , - 70 , - 5 , - 108 , - 43 , - 146 , - 81 , - 184 , - 119 , - 222 , - 157 , - 260 , - 195 , - 298 , - 233 , - 0 , - 299 , - 82 , - 37 , - 164 , - 119 , - 246 , - 201 , - 328 , - 283 , - 66 , - 21 , - 148 , - 103 , - 230 , - 185 , - 312 , - 267 , - 50 , - 5 , - 132 , - 87 , - 214 , - 169 , - 296 , - 251 , - 34 , - 333 , - 116 , - 71 , - 198 , - 153 , - 280 , - 235 , - 18 , - 317 , - 100 , - 55 , - 182 , - 137 , - 264 , - 219 , - 2 , - 301 , - 84 , - 39 , - 166 , - 121 , - 248 , - 203 , - 330 , - 285 , - 68 , - 23 , - 150 , - 105 , - 232 , - 187 , - 314 , - 269 , - 52 , - 7 , - 134 , - 89 , - 216 , - 171 , - 298 , - 253 , - 36 , - 335 , - 118 , - 73 , - 200 , - 155 , - 282 , - 237 , - 20 , - 319 , - 102 , - 57 , - 184 , - 139 , - 266 , - 221 , - 4 , - 303 , - 86 , - 41 , - 168 , - 123 , - 250 , - 205 , - 332 , - 287 , - 70 , - 25 , - 152 , - 107 , - 234 , - 189 , - 316 , - 271 , - 54 , - 9 , - 136 , - 91 , - 218 , - 173 , - 300 , - 255 , - 38 , - 337 , - 120 , - 75 , - 202 , - 157 , - 284 , - 239 , - 22 , - 321 , - 104 , - 59 , - 186 , - 141 , - 268 , - 223 , - 6 , - 305 , - 88 , - 43 , - 170 , - 125 , - 252 , - 207 , - 334 , - 289 , - 72 , - 27 , - 154 , - 109 , - 236 , - 191 , - 318 , - 273 , - 56 , - 11 , - 138 , - 93 , - 220 , - 175 , - 302 , - 257 , - 40 , - 339 , - 122 , - 77 , - 204 , - 159 , - 286 , - 241 , - 24 , - 323 , - 106 , - 61 , - 188 , - 143 , - 270 , - 225 , - 8 , - 307 , - 90 , - 45 , - 172 , - 127 , - 254 , - 209 , - 336 , - 291 , - 74 , - 29 , - 156 , - 111 , - 238 , - 193 , - 320 , - 275 , - 58 , - 13 , - 140 , - 95 , - 222 , - 177 , - 304 , - 259 , - 42 , - 341 , - 124 , - 79 , - 206 , - 161 , - 288 , - 243 , - 26 , - 325 , - 108 , - 63 , - 190 , - 145 , - 272 , - 227 , - 10 , - 309 , - 92 , - 47 , - 174 , - 129 , - 256 , - 211 , - 338 , - 293 , - 76 , - 31 , - 158 , - 113 , - 240 , - 195 , - 322 , - 277 , - 60 , - 15 , - 142 , - 97 , - 224 , - 179 , - 306 , - 261 , - 44 , - 343 , - 126 , - 81 , - 208 , - 163 , - 290 , - 245 , - 28 , - 327 , - 110 , - 65 , - 192 , - 147 , - 274 , - 229 , - 12 , - 311 , - 94 , - 49 , - 176 , - 131 , - 258 , - 213 , - 340 , - 295 , - 78 , - 33 , - 160 , - 115 , - 242 , - 197 , - 324 , - 279 , - 62 , - 17 , - 144 , - 99 , - 226 , - 181 , - 308 , - 263 , - 46 , - 1 , - 128 , - 83 , - 210 , - 165 , - 292 , - 247 , - 30 , - 329 , - 112 , - 67 , - 194 , - 149 , - 276 , - 231 , - 14 , - 313 , - 96 , - 51 , - 178 , - 133 , - 260 , - 215 , - 342 , - 297 , - 80 , - 35 , - 162 , - 117 , - 244 , - 199 , - 326 , - 281 , - 64 , - 19 , - 146 , - 101 , - 228 , - 183 , - 310 , - 265 , - 48 , - 3 , - 130 , - 85 , - 212 , - 167 , - 294 , - 249 , - 32 , - 331 , - 114 , - 69 , - 196 , - 151 , - 278 , - 233 , - 16 , - 315 , - 98 , - 53 , - 180 , - 135 , - 262 , - 217 , - 0 , - 65 , - 42 , - 283 , - 84 , - 149 , - 126 , - 15 , - 168 , - 233 , - 210 , - 99 , - 252 , - 317 , - 294 , - 183 , - 336 , - 49 , - 26 , - 267 , - 68 , - 133 , - 110 , - 351 , - 152 , - 217 , - 194 , - 83 , - 236 , - 301 , - 278 , - 167 , - 320 , - 33 , - 10 , - 251 , - 52 , - 117 , - 94 , - 335 , - 136 , - 201 , - 178 , - 67 , - 220 , - 285 , - 262 , - 151 , - 304 , - 17 , - 346 , - 235 , - 36 , - 101 , - 78 , - 319 , - 120 , - 185 , - 162 , - 51 , - 204 , - 269 , - 246 , - 135 , - 288 , - 1 , - 330 , - 219 , - 20 , - 85 , - 62 , - 303 , - 104 , - 169 , - 146 , - 35 , - 188 , - 253 , - 230 , - 119 , - 272 , - 337 , - 314 , - 203 , - 4 , - 69 , - 46 , - 287 , - 88 , - 153 , - 130 , - 19 , - 172 , - 237 , - 214 , - 103 , - 256 , - 321 , - 298 , - 187 , - 340 , - 53 , - 30 , - 271 , - 72 , - 137 , - 114 , - 3 , - 156 , - 221 , - 198 , - 87 , - 240 , - 305 , - 282 , - 171 , - 324 , - 37 , - 14 , - 255 , - 56 , - 121 , - 98 , - 339 , - 140 , - 205 , - 182 , - 71 , - 224 , - 289 , - 266 , - 155 , - 308 , - 21 , - 350 , - 239 , - 40 , - 105 , - 82 , - 323 , - 124 , - 189 , - 166 , - 55 , - 208 , - 273 , - 250 , - 139 , - 292 , - 5 , - 334 , - 223 , - 24 , - 89 , - 66 , - 307 , - 108 , - 173 , - 150 , - 39 , - 192 , - 257 , - 234 , - 123 , - 276 , - 341 , - 318 , - 207 , - 8 , - 73 , - 50 , - 291 , - 92 , - 157 , - 134 , - 23 , - 176 , - 241 , - 218 , - 107 , - 260 , - 325 , - 302 , - 191 , - 344 , - 57 , - 34 , - 275 , - 76 , - 141 , - 118 , - 7 , - 160 , - 225 , - 202 , - 91 , - 244 , - 309 , - 286 , - 175 , - 328 , - 41 , - 18 , - 259 , - 60 , - 125 , - 102 , - 343 , - 144 , - 209 , - 186 , - 75 , - 228 , - 293 , - 270 , - 159 , - 312 , - 25 , - 2 , - 243 , - 44 , - 109 , - 86 , - 327 , - 128 , - 193 , - 170 , - 59 , - 212 , - 277 , - 254 , - 143 , - 296 , - 9 , - 338 , - 227 , - 28 , - 93 , - 70 , - 311 , - 112 , - 177 , - 154 , - 43 , - 196 , - 261 , - 238 , - 127 , - 280 , - 345 , - 322 , - 211 , - 12 , - 77 , - 54 , - 295 , - 96 , - 161 , - 138 , - 27 , - 180 , - 245 , - 222 , - 111 , - 264 , - 329 , - 306 , - 195 , - 348 , - 61 , - 38 , - 279 , - 80 , - 145 , - 122 , - 11 , - 164 , - 229 , - 206 , - 95 , - 248 , - 313 , - 290 , - 179 , - 332 , - 45 , - 22 , - 263 , - 64 , - 129 , - 106 , - 347 , - 148 , - 213 , - 190 , - 79 , - 232 , - 297 , - 274 , - 163 , - 316 , - 29 , - 6 , - 247 , - 48 , - 113 , - 90 , - 331 , - 132 , - 197 , - 174 , - 63 , - 216 , - 281 , - 258 , - 147 , - 300 , - 13 , - 342 , - 231 , - 32 , - 97 , - 74 , - 315 , - 116 , - 181 , - 158 , - 47 , - 200 , - 265 , - 242 , - 131 , - 284 , - 349 , - 326 , - 215 , - 16 , - 81 , - 58 , - 299 , - 100 , - 165 , - 142 , - 31 , - 184 , - 249 , - 226 , - 115 , - 268 , - 333 , - 310 , - 199 , - 0 , - 67 , - 314 , - 21 , - 268 , - 335 , - 222 , - 289 , - 176 , - 243 , - 130 , - 197 , - 84 , - 151 , - 38 , - 105 , - 352 , - 59 , - 306 , - 13 , - 260 , - 327 , - 214 , - 281 , - 168 , - 235 , - 122 , - 189 , - 76 , - 143 , - 30 , - 97 , - 344 , - 51 , - 298 , - 5 , - 252 , - 319 , - 206 , - 273 , - 160 , - 227 , - 114 , - 181 , - 68 , - 135 , - 22 , - 89 , - 336 , - 43 , - 290 , - 357 , - 244 , - 311 , - 198 , - 265 , - 152 , - 219 , - 106 , - 173 , - 60 , - 127 , - 14 , - 81 , - 328 , - 35 , - 282 , - 349 , - 236 , - 303 , - 190 , - 257 , - 144 , - 211 , - 98 , - 165 , - 52 , - 119 , - 6 , - 73 , - 320 , - 27 , - 274 , - 341 , - 228 , - 295 , - 182 , - 249 , - 136 , - 203 , - 90 , - 157 , - 44 , - 111 , - 358 , - 65 , - 312 , - 19 , - 266 , - 333 , - 220 , - 287 , - 174 , - 241 , - 128 , - 195 , - 82 , - 149 , - 36 , - 103 , - 350 , - 57 , - 304 , - 11 , - 258 , - 325 , - 212 , - 279 , - 166 , - 233 , - 120 , - 187 , - 74 , - 141 , - 28 , - 95 , - 342 , - 49 , - 296 , - 3 , - 250 , - 317 , - 204 , - 271 , - 158 , - 225 , - 112 , - 179 , - 66 , - 133 , - 20 , - 87 , - 334 , - 41 , - 288 , - 355 , - 242 , - 309 , - 196 , - 263 , - 150 , - 217 , - 104 , - 171 , - 58 , - 125 , - 12 , - 79 , - 326 , - 33 , - 280 , - 347 , - 234 , - 301 , - 188 , - 255 , - 142 , - 209 , - 96 , - 163 , - 50 , - 117 , - 4 , - 71 , - 318 , - 25 , - 272 , - 339 , - 226 , - 293 , - 180 , - 247 , - 134 , - 201 , - 88 , - 155 , - 42 , - 109 , - 356 , - 63 , - 310 , - 17 , - 264 , - 331 , - 218 , - 285 , - 172 , - 239 , - 126 , - 193 , - 80 , - 147 , - 34 , - 101 , - 348 , - 55 , - 302 , - 9 , - 256 , - 323 , - 210 , - 277 , - 164 , - 231 , - 118 , - 185 , - 72 , - 139 , - 26 , - 93 , - 340 , - 47 , - 294 , - 1 , - 248 , - 315 , - 202 , - 269 , - 156 , - 223 , - 110 , - 177 , - 64 , - 131 , - 18 , - 85 , - 332 , - 39 , - 286 , - 353 , - 240 , - 307 , - 194 , - 261 , - 148 , - 215 , - 102 , - 169 , - 56 , - 123 , - 10 , - 77 , - 324 , - 31 , - 278 , - 345 , - 232 , - 299 , - 186 , - 253 , - 140 , - 207 , - 94 , - 161 , - 48 , - 115 , - 2 , - 69 , - 316 , - 23 , - 270 , - 337 , - 224 , - 291 , - 178 , - 245 , - 132 , - 199 , - 86 , - 153 , - 40 , - 107 , - 354 , - 61 , - 308 , - 15 , - 262 , - 329 , - 216 , - 283 , - 170 , - 237 , - 124 , - 191 , - 78 , - 145 , - 32 , - 99 , - 346 , - 53 , - 300 , - 7 , - 254 , - 321 , - 208 , - 275 , - 162 , - 229 , - 116 , - 183 , - 70 , - 137 , - 24 , - 91 , - 338 , - 45 , - 292 , - 359 , - 246 , - 313 , - 200 , - 267 , - 154 , - 221 , - 108 , - 175 , - 62 , - 129 , - 16 , - 83 , - 330 , - 37 , - 284 , - 351 , - 238 , - 305 , - 192 , - 259 , - 146 , - 213 , - 100 , - 167 , - 54 , - 121 , - 8 , - 75 , - 322 , - 29 , - 276 , - 343 , - 230 , - 297 , - 184 , - 251 , - 138 , - 205 , - 92 , - 159 , - 46 , - 113 , - 0 , - 163 , - 234 , - 213 , - 100 , - 263 , - 334 , - 313 , - 200 , - 363 , - 66 , - 45 , - 300 , - 95 , - 166 , - 145 , - 32 , - 195 , - 266 , - 245 , - 132 , - 295 , - 366 , - 345 , - 232 , - 27 , - 98 , - 77 , - 332 , - 127 , - 198 , - 177 , - 64 , - 227 , - 298 , - 277 , - 164 , - 327 , - 30 , - 9 , - 264 , - 59 , - 130 , - 109 , - 364 , - 159 , - 230 , - 209 , - 96 , - 259 , - 330 , - 309 , - 196 , - 359 , - 62 , - 41 , - 296 , - 91 , - 162 , - 141 , - 28 , - 191 , - 262 , - 241 , - 128 , - 291 , - 362 , - 341 , - 228 , - 23 , - 94 , - 73 , - 328 , - 123 , - 194 , - 173 , - 60 , - 223 , - 294 , - 273 , - 160 , - 323 , - 26 , - 5 , - 260 , - 55 , - 126 , - 105 , - 360 , - 155 , - 226 , - 205 , - 92 , - 255 , - 326 , - 305 , - 192 , - 355 , - 58 , - 37 , - 292 , - 87 , - 158 , - 137 , - 24 , - 187 , - 258 , - 237 , - 124 , - 287 , - 358 , - 337 , - 224 , - 19 , - 90 , - 69 , - 324 , - 119 , - 190 , - 169 , - 56 , - 219 , - 290 , - 269 , - 156 , - 319 , - 22 , - 1 , - 256 , - 51 , - 122 , - 101 , - 356 , - 151 , - 222 , - 201 , - 88 , - 251 , - 322 , - 301 , - 188 , - 351 , - 54 , - 33 , - 288 , - 83 , - 154 , - 133 , - 20 , - 183 , - 254 , - 233 , - 120 , - 283 , - 354 , - 333 , - 220 , - 15 , - 86 , - 65 , - 320 , - 115 , - 186 , - 165 , - 52 , - 215 , - 286 , - 265 , - 152 , - 315 , - 18 , - 365 , - 252 , - 47 , - 118 , - 97 , - 352 , - 147 , - 218 , - 197 , - 84 , - 247 , - 318 , - 297 , - 184 , - 347 , - 50 , - 29 , - 284 , - 79 , - 150 , - 129 , - 16 , - 179 , - 250 , - 229 , - 116 , - 279 , - 350 , - 329 , - 216 , - 11 , - 82 , - 61 , - 316 , - 111 , - 182 , - 161 , - 48 , - 211 , - 282 , - 261 , - 148 , - 311 , - 14 , - 361 , - 248 , - 43 , - 114 , - 93 , - 348 , - 143 , - 214 , - 193 , - 80 , - 243 , - 314 , - 293 , - 180 , - 343 , - 46 , - 25 , - 280 , - 75 , - 146 , - 125 , - 12 , - 175 , - 246 , - 225 , - 112 , - 275 , - 346 , - 325 , - 212 , - 7 , - 78 , - 57 , - 312 , - 107 , - 178 , - 157 , - 44 , - 207 , - 278 , - 257 , - 144 , - 307 , - 10 , - 357 , - 244 , - 39 , - 110 , - 89 , - 344 , - 139 , - 210 , - 189 , - 76 , - 239 , - 310 , - 289 , - 176 , - 339 , - 42 , - 21 , - 276 , - 71 , - 142 , - 121 , - 8 , - 171 , - 242 , - 221 , - 108 , - 271 , - 342 , - 321 , - 208 , - 3 , - 74 , - 53 , - 308 , - 103 , - 174 , - 153 , - 40 , - 203 , - 274 , - 253 , - 140 , - 303 , - 6 , - 353 , - 240 , - 35 , - 106 , - 85 , - 340 , - 135 , - 206 , - 185 , - 72 , - 235 , - 306 , - 285 , - 172 , - 335 , - 38 , - 17 , - 272 , - 67 , - 138 , - 117 , - 4 , - 167 , - 238 , - 217 , - 104 , - 267 , - 338 , - 317 , - 204 , - 367 , - 70 , - 49 , - 304 , - 99 , - 170 , - 149 , - 36 , - 199 , - 270 , - 249 , - 136 , - 299 , - 2 , - 349 , - 236 , - 31 , - 102 , - 81 , - 336 , - 131 , - 202 , - 181 , - 68 , - 231 , - 302 , - 281 , - 168 , - 331 , - 34 , - 13 , - 268 , - 63 , - 134 , - 113 , - 0 , - 23 , - 234 , - 257 , - 92 , - 115 , - 326 , - 349 , - 184 , - 207 , - 42 , - 65 , - 276 , - 299 , - 134 , - 157 , - 368 , - 15 , - 226 , - 249 , - 84 , - 107 , - 318 , - 341 , - 176 , - 199 , - 34 , - 57 , - 268 , - 291 , - 126 , - 149 , - 360 , - 7 , - 218 , - 241 , - 76 , - 99 , - 310 , - 333 , - 168 , - 191 , - 26 , - 49 , - 260 , - 283 , - 118 , - 141 , - 352 , - 375 , - 210 , - 233 , - 68 , - 91 , - 302 , - 325 , - 160 , - 183 , - 18 , - 41 , - 252 , - 275 , - 110 , - 133 , - 344 , - 367 , - 202 , - 225 , - 60 , - 83 , - 294 , - 317 , - 152 , - 175 , - 10 , - 33 , - 244 , - 267 , - 102 , - 125 , - 336 , - 359 , - 194 , - 217 , - 52 , - 75 , - 286 , - 309 , - 144 , - 167 , - 2 , - 25 , - 236 , - 259 , - 94 , - 117 , - 328 , - 351 , - 186 , - 209 , - 44 , - 67 , - 278 , - 301 , - 136 , - 159 , - 370 , - 17 , - 228 , - 251 , - 86 , - 109 , - 320 , - 343 , - 178 , - 201 , - 36 , - 59 , - 270 , - 293 , - 128 , - 151 , - 362 , - 9 , - 220 , - 243 , - 78 , - 101 , - 312 , - 335 , - 170 , - 193 , - 28 , - 51 , - 262 , - 285 , - 120 , - 143 , - 354 , - 1 , - 212 , - 235 , - 70 , - 93 , - 304 , - 327 , - 162 , - 185 , - 20 , - 43 , - 254 , - 277 , - 112 , - 135 , - 346 , - 369 , - 204 , - 227 , - 62 , - 85 , - 296 , - 319 , - 154 , - 177 , - 12 , - 35 , - 246 , - 269 , - 104 , - 127 , - 338 , - 361 , - 196 , - 219 , - 54 , - 77 , - 288 , - 311 , - 146 , - 169 , - 4 , - 27 , - 238 , - 261 , - 96 , - 119 , - 330 , - 353 , - 188 , - 211 , - 46 , - 69 , - 280 , - 303 , - 138 , - 161 , - 372 , - 19 , - 230 , - 253 , - 88 , - 111 , - 322 , - 345 , - 180 , - 203 , - 38 , - 61 , - 272 , - 295 , - 130 , - 153 , - 364 , - 11 , - 222 , - 245 , - 80 , - 103 , - 314 , - 337 , - 172 , - 195 , - 30 , - 53 , - 264 , - 287 , - 122 , - 145 , - 356 , - 3 , - 214 , - 237 , - 72 , - 95 , - 306 , - 329 , - 164 , - 187 , - 22 , - 45 , - 256 , - 279 , - 114 , - 137 , - 348 , - 371 , - 206 , - 229 , - 64 , - 87 , - 298 , - 321 , - 156 , - 179 , - 14 , - 37 , - 248 , - 271 , - 106 , - 129 , - 340 , - 363 , - 198 , - 221 , - 56 , - 79 , - 290 , - 313 , - 148 , - 171 , - 6 , - 29 , - 240 , - 263 , - 98 , - 121 , - 332 , - 355 , - 190 , - 213 , - 48 , - 71 , - 282 , - 305 , - 140 , - 163 , - 374 , - 21 , - 232 , - 255 , - 90 , - 113 , - 324 , - 347 , - 182 , - 205 , - 40 , - 63 , - 274 , - 297 , - 132 , - 155 , - 366 , - 13 , - 224 , - 247 , - 82 , - 105 , - 316 , - 339 , - 174 , - 197 , - 32 , - 55 , - 266 , - 289 , - 124 , - 147 , - 358 , - 5 , - 216 , - 239 , - 74 , - 97 , - 308 , - 331 , - 166 , - 189 , - 24 , - 47 , - 258 , - 281 , - 116 , - 139 , - 350 , - 373 , - 208 , - 231 , - 66 , - 89 , - 300 , - 323 , - 158 , - 181 , - 16 , - 39 , - 250 , - 273 , - 108 , - 131 , - 342 , - 365 , - 200 , - 223 , - 58 , - 81 , - 292 , - 315 , - 150 , - 173 , - 8 , - 31 , - 242 , - 265 , - 100 , - 123 , - 334 , - 357 , - 192 , - 215 , - 50 , - 73 , - 284 , - 307 , - 142 , - 165 , - 0 , - 215 , - 142 , - 165 , - 284 , - 115 , - 42 , - 65 , - 184 , - 15 , - 326 , - 349 , - 84 , - 299 , - 226 , - 249 , - 368 , - 199 , - 126 , - 149 , - 268 , - 99 , - 26 , - 49 , - 168 , - 383 , - 310 , - 333 , - 68 , - 283 , - 210 , - 233 , - 352 , - 183 , - 110 , - 133 , - 252 , - 83 , - 10 , - 33 , - 152 , - 367 , - 294 , - 317 , - 52 , - 267 , - 194 , - 217 , - 336 , - 167 , - 94 , - 117 , - 236 , - 67 , - 378 , - 17 , - 136 , - 351 , - 278 , - 301 , - 36 , - 251 , - 178 , - 201 , - 320 , - 151 , - 78 , - 101 , - 220 , - 51 , - 362 , - 1 , - 120 , - 335 , - 262 , - 285 , - 20 , - 235 , - 162 , - 185 , - 304 , - 135 , - 62 , - 85 , - 204 , - 35 , - 346 , - 369 , - 104 , - 319 , - 246 , - 269 , - 4 , - 219 , - 146 , - 169 , - 288 , - 119 , - 46 , - 69 , - 188 , - 19 , - 330 , - 353 , - 88 , - 303 , - 230 , - 253 , - 372 , - 203 , - 130 , - 153 , - 272 , - 103 , - 30 , - 53 , - 172 , - 3 , - 314 , - 337 , - 72 , - 287 , - 214 , - 237 , - 356 , - 187 , - 114 , - 137 , - 256 , - 87 , - 14 , - 37 , - 156 , - 371 , - 298 , - 321 , - 56 , - 271 , - 198 , - 221 , - 340 , - 171 , - 98 , - 121 , - 240 , - 71 , - 382 , - 21 , - 140 , - 355 , - 282 , - 305 , - 40 , - 255 , - 182 , - 205 , - 324 , - 155 , - 82 , - 105 , - 224 , - 55 , - 366 , - 5 , - 124 , - 339 , - 266 , - 289 , - 24 , - 239 , - 166 , - 189 , - 308 , - 139 , - 66 , - 89 , - 208 , - 39 , - 350 , - 373 , - 108 , - 323 , - 250 , - 273 , - 8 , - 223 , - 150 , - 173 , - 292 , - 123 , - 50 , - 73 , - 192 , - 23 , - 334 , - 357 , - 92 , - 307 , - 234 , - 257 , - 376 , - 207 , - 134 , - 157 , - 276 , - 107 , - 34 , - 57 , - 176 , - 7 , - 318 , - 341 , - 76 , - 291 , - 218 , - 241 , - 360 , - 191 , - 118 , - 141 , - 260 , - 91 , - 18 , - 41 , - 160 , - 375 , - 302 , - 325 , - 60 , - 275 , - 202 , - 225 , - 344 , - 175 , - 102 , - 125 , - 244 , - 75 , - 2 , - 25 , - 144 , - 359 , - 286 , - 309 , - 44 , - 259 , - 186 , - 209 , - 328 , - 159 , - 86 , - 109 , - 228 , - 59 , - 370 , - 9 , - 128 , - 343 , - 270 , - 293 , - 28 , - 243 , - 170 , - 193 , - 312 , - 143 , - 70 , - 93 , - 212 , - 43 , - 354 , - 377 , - 112 , - 327 , - 254 , - 277 , - 12 , - 227 , - 154 , - 177 , - 296 , - 127 , - 54 , - 77 , - 196 , - 27 , - 338 , - 361 , - 96 , - 311 , - 238 , - 261 , - 380 , - 211 , - 138 , - 161 , - 280 , - 111 , - 38 , - 61 , - 180 , - 11 , - 322 , - 345 , - 80 , - 295 , - 222 , - 245 , - 364 , - 195 , - 122 , - 145 , - 264 , - 95 , - 22 , - 45 , - 164 , - 379 , - 306 , - 329 , - 64 , - 279 , - 206 , - 229 , - 348 , - 179 , - 106 , - 129 , - 248 , - 79 , - 6 , - 29 , - 148 , - 363 , - 290 , - 313 , - 48 , - 263 , - 190 , - 213 , - 332 , - 163 , - 90 , - 113 , - 232 , - 63 , - 374 , - 13 , - 132 , - 347 , - 274 , - 297 , - 32 , - 247 , - 174 , - 197 , - 316 , - 147 , - 74 , - 97 , - 216 , - 47 , - 358 , - 381 , - 116 , - 331 , - 258 , - 281 , - 16 , - 231 , - 158 , - 181 , - 300 , - 131 , - 58 , - 81 , - 200 , - 31 , - 342 , - 365 , - 100 , - 315 , - 242 , - 265 , - 0 , - 269 , - 342 , - 219 , - 292 , - 169 , - 242 , - 119 , - 192 , - 69 , - 142 , - 19 , - 92 , - 361 , - 42 , - 311 , - 384 , - 261 , - 334 , - 211 , - 284 , - 161 , - 234 , - 111 , - 184 , - 61 , - 134 , - 11 , - 84 , - 353 , - 34 , - 303 , - 376 , - 253 , - 326 , - 203 , - 276 , - 153 , - 226 , - 103 , - 176 , - 53 , - 126 , - 3 , - 76 , - 345 , - 26 , - 295 , - 368 , - 245 , - 318 , - 195 , - 268 , - 145 , - 218 , - 95 , - 168 , - 45 , - 118 , - 387 , - 68 , - 337 , - 18 , - 287 , - 360 , - 237 , - 310 , - 187 , - 260 , - 137 , - 210 , - 87 , - 160 , - 37 , - 110 , - 379 , - 60 , - 329 , - 10 , - 279 , - 352 , - 229 , - 302 , - 179 , - 252 , - 129 , - 202 , - 79 , - 152 , - 29 , - 102 , - 371 , - 52 , - 321 , - 2 , - 271 , - 344 , - 221 , - 294 , - 171 , - 244 , - 121 , - 194 , - 71 , - 144 , - 21 , - 94 , - 363 , - 44 , - 313 , - 386 , - 263 , - 336 , - 213 , - 286 , - 163 , - 236 , - 113 , - 186 , - 63 , - 136 , - 13 , - 86 , - 355 , - 36 , - 305 , - 378 , - 255 , - 328 , - 205 , - 278 , - 155 , - 228 , - 105 , - 178 , - 55 , - 128 , - 5 , - 78 , - 347 , - 28 , - 297 , - 370 , - 247 , - 320 , - 197 , - 270 , - 147 , - 220 , - 97 , - 170 , - 47 , - 120 , - 389 , - 70 , - 339 , - 20 , - 289 , - 362 , - 239 , - 312 , - 189 , - 262 , - 139 , - 212 , - 89 , - 162 , - 39 , - 112 , - 381 , - 62 , - 331 , - 12 , - 281 , - 354 , - 231 , - 304 , - 181 , - 254 , - 131 , - 204 , - 81 , - 154 , - 31 , - 104 , - 373 , - 54 , - 323 , - 4 , - 273 , - 346 , - 223 , - 296 , - 173 , - 246 , - 123 , - 196 , - 73 , - 146 , - 23 , - 96 , - 365 , - 46 , - 315 , - 388 , - 265 , - 338 , - 215 , - 288 , - 165 , - 238 , - 115 , - 188 , - 65 , - 138 , - 15 , - 88 , - 357 , - 38 , - 307 , - 380 , - 257 , - 330 , - 207 , - 280 , - 157 , - 230 , - 107 , - 180 , - 57 , - 130 , - 7 , - 80 , - 349 , - 30 , - 299 , - 372 , - 249 , - 322 , - 199 , - 272 , - 149 , - 222 , - 99 , - 172 , - 49 , - 122 , - 391 , - 72 , - 341 , - 22 , - 291 , - 364 , - 241 , - 314 , - 191 , - 264 , - 141 , - 214 , - 91 , - 164 , - 41 , - 114 , - 383 , - 64 , - 333 , - 14 , - 283 , - 356 , - 233 , - 306 , - 183 , - 256 , - 133 , - 206 , - 83 , - 156 , - 33 , - 106 , - 375 , - 56 , - 325 , - 6 , - 275 , - 348 , - 225 , - 298 , - 175 , - 248 , - 125 , - 198 , - 75 , - 148 , - 25 , - 98 , - 367 , - 48 , - 317 , - 390 , - 267 , - 340 , - 217 , - 290 , - 167 , - 240 , - 117 , - 190 , - 67 , - 140 , - 17 , - 90 , - 359 , - 40 , - 309 , - 382 , - 259 , - 332 , - 209 , - 282 , - 159 , - 232 , - 109 , - 182 , - 59 , - 132 , - 9 , - 82 , - 351 , - 32 , - 301 , - 374 , - 251 , - 324 , - 201 , - 274 , - 151 , - 224 , - 101 , - 174 , - 51 , - 124 , - 1 , - 74 , - 343 , - 24 , - 293 , - 366 , - 243 , - 316 , - 193 , - 266 , - 143 , - 216 , - 93 , - 166 , - 43 , - 116 , - 385 , - 66 , - 335 , - 16 , - 285 , - 358 , - 235 , - 308 , - 185 , - 258 , - 135 , - 208 , - 85 , - 158 , - 35 , - 108 , - 377 , - 58 , - 327 , - 8 , - 277 , - 350 , - 227 , - 300 , - 177 , - 250 , - 127 , - 200 , - 77 , - 150 , - 27 , - 100 , - 369 , - 50 , - 319 , - 0 , - 111 , - 142 , - 93 , - 364 , - 155 , - 266 , - 297 , - 248 , - 119 , - 310 , - 21 , - 52 , - 3 , - 274 , - 65 , - 176 , - 207 , - 158 , - 29 , - 220 , - 331 , - 362 , - 313 , - 184 , - 375 , - 86 , - 117 , - 68 , - 339 , - 130 , - 241 , - 272 , - 223 , - 94 , - 285 , - 396 , - 27 , - 378 , - 249 , - 40 , - 151 , - 182 , - 133 , - 4 , - 195 , - 306 , - 337 , - 288 , - 159 , - 350 , - 61 , - 92 , - 43 , - 314 , - 105 , - 216 , - 247 , - 198 , - 69 , - 260 , - 371 , - 2 , - 353 , - 224 , - 15 , - 126 , - 157 , - 108 , - 379 , - 170 , - 281 , - 312 , - 263 , - 134 , - 325 , - 36 , - 67 , - 18 , - 289 , - 80 , - 191 , - 222 , - 173 , - 44 , - 235 , - 346 , - 377 , - 328 , - 199 , - 390 , - 101 , - 132 , - 83 , - 354 , - 145 , - 256 , - 287 , - 238 , - 109 , - 300 , - 11 , - 42 , - 393 , - 264 , - 55 , - 166 , - 197 , - 148 , - 19 , - 210 , - 321 , - 352 , - 303 , - 174 , - 365 , - 76 , - 107 , - 58 , - 329 , - 120 , - 231 , - 262 , - 213 , - 84 , - 275 , - 386 , - 17 , - 368 , - 239 , - 30 , - 141 , - 172 , - 123 , - 394 , - 185 , - 296 , - 327 , - 278 , - 149 , - 340 , - 51 , - 82 , - 33 , - 304 , - 95 , - 206 , - 237 , - 188 , - 59 , - 250 , - 361 , - 392 , - 343 , - 214 , - 5 , - 116 , - 147 , - 98 , - 369 , - 160 , - 271 , - 302 , - 253 , - 124 , - 315 , - 26 , - 57 , - 8 , - 279 , - 70 , - 181 , - 212 , - 163 , - 34 , - 225 , - 336 , - 367 , - 318 , - 189 , - 380 , - 91 , - 122 , - 73 , - 344 , - 135 , - 246 , - 277 , - 228 , - 99 , - 290 , - 1 , - 32 , - 383 , - 254 , - 45 , - 156 , - 187 , - 138 , - 9 , - 200 , - 311 , - 342 , - 293 , - 164 , - 355 , - 66 , - 97 , - 48 , - 319 , - 110 , - 221 , - 252 , - 203 , - 74 , - 265 , - 376 , - 7 , - 358 , - 229 , - 20 , - 131 , - 162 , - 113 , - 384 , - 175 , - 286 , - 317 , - 268 , - 139 , - 330 , - 41 , - 72 , - 23 , - 294 , - 85 , - 196 , - 227 , - 178 , - 49 , - 240 , - 351 , - 382 , - 333 , - 204 , - 395 , - 106 , - 137 , - 88 , - 359 , - 150 , - 261 , - 292 , - 243 , - 114 , - 305 , - 16 , - 47 , - 398 , - 269 , - 60 , - 171 , - 202 , - 153 , - 24 , - 215 , - 326 , - 357 , - 308 , - 179 , - 370 , - 81 , - 112 , - 63 , - 334 , - 125 , - 236 , - 267 , - 218 , - 89 , - 280 , - 391 , - 22 , - 373 , - 244 , - 35 , - 146 , - 177 , - 128 , - 399 , - 190 , - 301 , - 332 , - 283 , - 154 , - 345 , - 56 , - 87 , - 38 , - 309 , - 100 , - 211 , - 242 , - 193 , - 64 , - 255 , - 366 , - 397 , - 348 , - 219 , - 10 , - 121 , - 152 , - 103 , - 374 , - 165 , - 276 , - 307 , - 258 , - 129 , - 320 , - 31 , - 62 , - 13 , - 284 , - 75 , - 186 , - 217 , - 168 , - 39 , - 230 , - 341 , - 372 , - 323 , - 194 , - 385 , - 96 , - 127 , - 78 , - 349 , - 140 , - 251 , - 282 , - 233 , - 104 , - 295 , - 6 , - 37 , - 388 , - 259 , - 50 , - 161 , - 192 , - 143 , - 14 , - 205 , - 316 , - 347 , - 298 , - 169 , - 360 , - 71 , - 102 , - 53 , - 324 , - 115 , - 226 , - 257 , - 208 , - 79 , - 270 , - 381 , - 12 , - 363 , - 234 , - 25 , - 136 , - 167 , - 118 , - 389 , - 180 , - 291 , - 322 , - 273 , - 144 , - 335 , - 46 , - 77 , - 28 , - 299 , - 90 , - 201 , - 232 , - 183 , - 54 , - 245 , - 356 , - 387 , - 338 , - 209 , - 0 , - 281 , - 358 , - 231 , - 308 , - 181 , - 258 , - 131 , - 208 , - 81 , - 158 , - 31 , - 108 , - 389 , - 58 , - 339 , - 8 , - 289 , - 366 , - 239 , - 316 , - 189 , - 266 , - 139 , - 216 , - 89 , - 166 , - 39 , - 116 , - 397 , - 66 , - 347 , - 16 , - 297 , - 374 , - 247 , - 324 , - 197 , - 274 , - 147 , - 224 , - 97 , - 174 , - 47 , - 124 , - 405 , - 74 , - 355 , - 24 , - 305 , - 382 , - 255 , - 332 , - 205 , - 282 , - 155 , - 232 , - 105 , - 182 , - 55 , - 132 , - 5 , - 82 , - 363 , - 32 , - 313 , - 390 , - 263 , - 340 , - 213 , - 290 , - 163 , - 240 , - 113 , - 190 , - 63 , - 140 , - 13 , - 90 , - 371 , - 40 , - 321 , - 398 , - 271 , - 348 , - 221 , - 298 , - 171 , - 248 , - 121 , - 198 , - 71 , - 148 , - 21 , - 98 , - 379 , - 48 , - 329 , - 406 , - 279 , - 356 , - 229 , - 306 , - 179 , - 256 , - 129 , - 206 , - 79 , - 156 , - 29 , - 106 , - 387 , - 56 , - 337 , - 6 , - 287 , - 364 , - 237 , - 314 , - 187 , - 264 , - 137 , - 214 , - 87 , - 164 , - 37 , - 114 , - 395 , - 64 , - 345 , - 14 , - 295 , - 372 , - 245 , - 322 , - 195 , - 272 , - 145 , - 222 , - 95 , - 172 , - 45 , - 122 , - 403 , - 72 , - 353 , - 22 , - 303 , - 380 , - 253 , - 330 , - 203 , - 280 , - 153 , - 230 , - 103 , - 180 , - 53 , - 130 , - 3 , - 80 , - 361 , - 30 , - 311 , - 388 , - 261 , - 338 , - 211 , - 288 , - 161 , - 238 , - 111 , - 188 , - 61 , - 138 , - 11 , - 88 , - 369 , - 38 , - 319 , - 396 , - 269 , - 346 , - 219 , - 296 , - 169 , - 246 , - 119 , - 196 , - 69 , - 146 , - 19 , - 96 , - 377 , - 46 , - 327 , - 404 , - 277 , - 354 , - 227 , - 304 , - 177 , - 254 , - 127 , - 204 , - 77 , - 154 , - 27 , - 104 , - 385 , - 54 , - 335 , - 4 , - 285 , - 362 , - 235 , - 312 , - 185 , - 262 , - 135 , - 212 , - 85 , - 162 , - 35 , - 112 , - 393 , - 62 , - 343 , - 12 , - 293 , - 370 , - 243 , - 320 , - 193 , - 270 , - 143 , - 220 , - 93 , - 170 , - 43 , - 120 , - 401 , - 70 , - 351 , - 20 , - 301 , - 378 , - 251 , - 328 , - 201 , - 278 , - 151 , - 228 , - 101 , - 178 , - 51 , - 128 , - 1 , - 78 , - 359 , - 28 , - 309 , - 386 , - 259 , - 336 , - 209 , - 286 , - 159 , - 236 , - 109 , - 186 , - 59 , - 136 , - 9 , - 86 , - 367 , - 36 , - 317 , - 394 , - 267 , - 344 , - 217 , - 294 , - 167 , - 244 , - 117 , - 194 , - 67 , - 144 , - 17 , - 94 , - 375 , - 44 , - 325 , - 402 , - 275 , - 352 , - 225 , - 302 , - 175 , - 252 , - 125 , - 202 , - 75 , - 152 , - 25 , - 102 , - 383 , - 52 , - 333 , - 2 , - 283 , - 360 , - 233 , - 310 , - 183 , - 260 , - 133 , - 210 , - 83 , - 160 , - 33 , - 110 , - 391 , - 60 , - 341 , - 10 , - 291 , - 368 , - 241 , - 318 , - 191 , - 268 , - 141 , - 218 , - 91 , - 168 , - 41 , - 118 , - 399 , - 68 , - 349 , - 18 , - 299 , - 376 , - 249 , - 326 , - 199 , - 276 , - 149 , - 226 , - 99 , - 176 , - 49 , - 126 , - 407 , - 76 , - 357 , - 26 , - 307 , - 384 , - 257 , - 334 , - 207 , - 284 , - 157 , - 234 , - 107 , - 184 , - 57 , - 134 , - 7 , - 84 , - 365 , - 34 , - 315 , - 392 , - 265 , - 342 , - 215 , - 292 , - 165 , - 242 , - 115 , - 192 , - 65 , - 142 , - 15 , - 92 , - 373 , - 42 , - 323 , - 400 , - 273 , - 350 , - 223 , - 300 , - 173 , - 250 , - 123 , - 200 , - 73 , - 150 , - 23 , - 100 , - 381 , - 50 , - 331 , - 0 , - 181 , - 258 , - 231 , - 100 , - 281 , - 358 , - 331 , - 200 , - 381 , - 42 , - 15 , - 300 , - 65 , - 142 , - 115 , - 400 , - 165 , - 242 , - 215 , - 84 , - 265 , - 342 , - 315 , - 184 , - 365 , - 26 , - 415 , - 284 , - 49 , - 126 , - 99 , - 384 , - 149 , - 226 , - 199 , - 68 , - 249 , - 326 , - 299 , - 168 , - 349 , - 10 , - 399 , - 268 , - 33 , - 110 , - 83 , - 368 , - 133 , - 210 , - 183 , - 52 , - 233 , - 310 , - 283 , - 152 , - 333 , - 410 , - 383 , - 252 , - 17 , - 94 , - 67 , - 352 , - 117 , - 194 , - 167 , - 36 , - 217 , - 294 , - 267 , - 136 , - 317 , - 394 , - 367 , - 236 , - 1 , - 78 , - 51 , - 336 , - 101 , - 178 , - 151 , - 20 , - 201 , - 278 , - 251 , - 120 , - 301 , - 378 , - 351 , - 220 , - 401 , - 62 , - 35 , - 320 , - 85 , - 162 , - 135 , - 4 , - 185 , - 262 , - 235 , - 104 , - 285 , - 362 , - 335 , - 204 , - 385 , - 46 , - 19 , - 304 , - 69 , - 146 , - 119 , - 404 , - 169 , - 246 , - 219 , - 88 , - 269 , - 346 , - 319 , - 188 , - 369 , - 30 , - 3 , - 288 , - 53 , - 130 , - 103 , - 388 , - 153 , - 230 , - 203 , - 72 , - 253 , - 330 , - 303 , - 172 , - 353 , - 14 , - 403 , - 272 , - 37 , - 114 , - 87 , - 372 , - 137 , - 214 , - 187 , - 56 , - 237 , - 314 , - 287 , - 156 , - 337 , - 414 , - 387 , - 256 , - 21 , - 98 , - 71 , - 356 , - 121 , - 198 , - 171 , - 40 , - 221 , - 298 , - 271 , - 140 , - 321 , - 398 , - 371 , - 240 , - 5 , - 82 , - 55 , - 340 , - 105 , - 182 , - 155 , - 24 , - 205 , - 282 , - 255 , - 124 , - 305 , - 382 , - 355 , - 224 , - 405 , - 66 , - 39 , - 324 , - 89 , - 166 , - 139 , - 8 , - 189 , - 266 , - 239 , - 108 , - 289 , - 366 , - 339 , - 208 , - 389 , - 50 , - 23 , - 308 , - 73 , - 150 , - 123 , - 408 , - 173 , - 250 , - 223 , - 92 , - 273 , - 350 , - 323 , - 192 , - 373 , - 34 , - 7 , - 292 , - 57 , - 134 , - 107 , - 392 , - 157 , - 234 , - 207 , - 76 , - 257 , - 334 , - 307 , - 176 , - 357 , - 18 , - 407 , - 276 , - 41 , - 118 , - 91 , - 376 , - 141 , - 218 , - 191 , - 60 , - 241 , - 318 , - 291 , - 160 , - 341 , - 2 , - 391 , - 260 , - 25 , - 102 , - 75 , - 360 , - 125 , - 202 , - 175 , - 44 , - 225 , - 302 , - 275 , - 144 , - 325 , - 402 , - 375 , - 244 , - 9 , - 86 , - 59 , - 344 , - 109 , - 186 , - 159 , - 28 , - 209 , - 286 , - 259 , - 128 , - 309 , - 386 , - 359 , - 228 , - 409 , - 70 , - 43 , - 328 , - 93 , - 170 , - 143 , - 12 , - 193 , - 270 , - 243 , - 112 , - 293 , - 370 , - 343 , - 212 , - 393 , - 54 , - 27 , - 312 , - 77 , - 154 , - 127 , - 412 , - 177 , - 254 , - 227 , - 96 , - 277 , - 354 , - 327 , - 196 , - 377 , - 38 , - 11 , - 296 , - 61 , - 138 , - 111 , - 396 , - 161 , - 238 , - 211 , - 80 , - 261 , - 338 , - 311 , - 180 , - 361 , - 22 , - 411 , - 280 , - 45 , - 122 , - 95 , - 380 , - 145 , - 222 , - 195 , - 64 , - 245 , - 322 , - 295 , - 164 , - 345 , - 6 , - 395 , - 264 , - 29 , - 106 , - 79 , - 364 , - 129 , - 206 , - 179 , - 48 , - 229 , - 306 , - 279 , - 148 , - 329 , - 406 , - 379 , - 248 , - 13 , - 90 , - 63 , - 348 , - 113 , - 190 , - 163 , - 32 , - 213 , - 290 , - 263 , - 132 , - 313 , - 390 , - 363 , - 232 , - 413 , - 74 , - 47 , - 332 , - 97 , - 174 , - 147 , - 16 , - 197 , - 274 , - 247 , - 116 , - 297 , - 374 , - 347 , - 216 , - 397 , - 58 , - 31 , - 316 , - 81 , - 158 , - 131 , - 0 , - 397 , - 158 , - 131 , - 316 , - 289 , - 50 , - 23 , - 208 , - 181 , - 366 , - 339 , - 100 , - 73 , - 258 , - 231 , - 416 , - 389 , - 150 , - 123 , - 308 , - 281 , - 42 , - 15 , - 200 , - 173 , - 358 , - 331 , - 92 , - 65 , - 250 , - 223 , - 408 , - 381 , - 142 , - 115 , - 300 , - 273 , - 34 , - 7 , - 192 , - 165 , - 350 , - 323 , - 84 , - 57 , - 242 , - 215 , - 400 , - 373 , - 134 , - 107 , - 292 , - 265 , - 26 , - 423 , - 184 , - 157 , - 342 , - 315 , - 76 , - 49 , - 234 , - 207 , - 392 , - 365 , - 126 , - 99 , - 284 , - 257 , - 18 , - 415 , - 176 , - 149 , - 334 , - 307 , - 68 , - 41 , - 226 , - 199 , - 384 , - 357 , - 118 , - 91 , - 276 , - 249 , - 10 , - 407 , - 168 , - 141 , - 326 , - 299 , - 60 , - 33 , - 218 , - 191 , - 376 , - 349 , - 110 , - 83 , - 268 , - 241 , - 2 , - 399 , - 160 , - 133 , - 318 , - 291 , - 52 , - 25 , - 210 , - 183 , - 368 , - 341 , - 102 , - 75 , - 260 , - 233 , - 418 , - 391 , - 152 , - 125 , - 310 , - 283 , - 44 , - 17 , - 202 , - 175 , - 360 , - 333 , - 94 , - 67 , - 252 , - 225 , - 410 , - 383 , - 144 , - 117 , - 302 , - 275 , - 36 , - 9 , - 194 , - 167 , - 352 , - 325 , - 86 , - 59 , - 244 , - 217 , - 402 , - 375 , - 136 , - 109 , - 294 , - 267 , - 28 , - 1 , - 186 , - 159 , - 344 , - 317 , - 78 , - 51 , - 236 , - 209 , - 394 , - 367 , - 128 , - 101 , - 286 , - 259 , - 20 , - 417 , - 178 , - 151 , - 336 , - 309 , - 70 , - 43 , - 228 , - 201 , - 386 , - 359 , - 120 , - 93 , - 278 , - 251 , - 12 , - 409 , - 170 , - 143 , - 328 , - 301 , - 62 , - 35 , - 220 , - 193 , - 378 , - 351 , - 112 , - 85 , - 270 , - 243 , - 4 , - 401 , - 162 , - 135 , - 320 , - 293 , - 54 , - 27 , - 212 , - 185 , - 370 , - 343 , - 104 , - 77 , - 262 , - 235 , - 420 , - 393 , - 154 , - 127 , - 312 , - 285 , - 46 , - 19 , - 204 , - 177 , - 362 , - 335 , - 96 , - 69 , - 254 , - 227 , - 412 , - 385 , - 146 , - 119 , - 304 , - 277 , - 38 , - 11 , - 196 , - 169 , - 354 , - 327 , - 88 , - 61 , - 246 , - 219 , - 404 , - 377 , - 138 , - 111 , - 296 , - 269 , - 30 , - 3 , - 188 , - 161 , - 346 , - 319 , - 80 , - 53 , - 238 , - 211 , - 396 , - 369 , - 130 , - 103 , - 288 , - 261 , - 22 , - 419 , - 180 , - 153 , - 338 , - 311 , - 72 , - 45 , - 230 , - 203 , - 388 , - 361 , - 122 , - 95 , - 280 , - 253 , - 14 , - 411 , - 172 , - 145 , - 330 , - 303 , - 64 , - 37 , - 222 , - 195 , - 380 , - 353 , - 114 , - 87 , - 272 , - 245 , - 6 , - 403 , - 164 , - 137 , - 322 , - 295 , - 56 , - 29 , - 214 , - 187 , - 372 , - 345 , - 106 , - 79 , - 264 , - 237 , - 422 , - 395 , - 156 , - 129 , - 314 , - 287 , - 48 , - 21 , - 206 , - 179 , - 364 , - 337 , - 98 , - 71 , - 256 , - 229 , - 414 , - 387 , - 148 , - 121 , - 306 , - 279 , - 40 , - 13 , - 198 , - 171 , - 356 , - 329 , - 90 , - 63 , - 248 , - 221 , - 406 , - 379 , - 140 , - 113 , - 298 , - 271 , - 32 , - 5 , - 190 , - 163 , - 348 , - 321 , - 82 , - 55 , - 240 , - 213 , - 398 , - 371 , - 132 , - 105 , - 290 , - 263 , - 24 , - 421 , - 182 , - 155 , - 340 , - 313 , - 74 , - 47 , - 232 , - 205 , - 390 , - 363 , - 124 , - 97 , - 282 , - 255 , - 16 , - 413 , - 174 , - 147 , - 332 , - 305 , - 66 , - 39 , - 224 , - 197 , - 382 , - 355 , - 116 , - 89 , - 274 , - 247 , - 8 , - 405 , - 166 , - 139 , - 324 , - 297 , - 58 , - 31 , - 216 , - 189 , - 374 , - 347 , - 108 , - 81 , - 266 , - 239 , - 0 , - 311 , - 334 , - 69 , - 380 , - 403 , - 138 , - 17 , - 40 , - 207 , - 86 , - 109 , - 276 , - 155 , - 178 , - 345 , - 224 , - 247 , - 414 , - 293 , - 316 , - 51 , - 362 , - 385 , - 120 , - 431 , - 22 , - 189 , - 68 , - 91 , - 258 , - 137 , - 160 , - 327 , - 206 , - 229 , - 396 , - 275 , - 298 , - 33 , - 344 , - 367 , - 102 , - 413 , - 4 , - 171 , - 50 , - 73 , - 240 , - 119 , - 142 , - 309 , - 188 , - 211 , - 378 , - 257 , - 280 , - 15 , - 326 , - 349 , - 84 , - 395 , - 418 , - 153 , - 32 , - 55 , - 222 , - 101 , - 124 , - 291 , - 170 , - 193 , - 360 , - 239 , - 262 , - 429 , - 308 , - 331 , - 66 , - 377 , - 400 , - 135 , - 14 , - 37 , - 204 , - 83 , - 106 , - 273 , - 152 , - 175 , - 342 , - 221 , - 244 , - 411 , - 290 , - 313 , - 48 , - 359 , - 382 , - 117 , - 428 , - 19 , - 186 , - 65 , - 88 , - 255 , - 134 , - 157 , - 324 , - 203 , - 226 , - 393 , - 272 , - 295 , - 30 , - 341 , - 364 , - 99 , - 410 , - 1 , - 168 , - 47 , - 70 , - 237 , - 116 , - 139 , - 306 , - 185 , - 208 , - 375 , - 254 , - 277 , - 12 , - 323 , - 346 , - 81 , - 392 , - 415 , - 150 , - 29 , - 52 , - 219 , - 98 , - 121 , - 288 , - 167 , - 190 , - 357 , - 236 , - 259 , - 426 , - 305 , - 328 , - 63 , - 374 , - 397 , - 132 , - 11 , - 34 , - 201 , - 80 , - 103 , - 270 , - 149 , - 172 , - 339 , - 218 , - 241 , - 408 , - 287 , - 310 , - 45 , - 356 , - 379 , - 114 , - 425 , - 16 , - 183 , - 62 , - 85 , - 252 , - 131 , - 154 , - 321 , - 200 , - 223 , - 390 , - 269 , - 292 , - 27 , - 338 , - 361 , - 96 , - 407 , - 430 , - 165 , - 44 , - 67 , - 234 , - 113 , - 136 , - 303 , - 182 , - 205 , - 372 , - 251 , - 274 , - 9 , - 320 , - 343 , - 78 , - 389 , - 412 , - 147 , - 26 , - 49 , - 216 , - 95 , - 118 , - 285 , - 164 , - 187 , - 354 , - 233 , - 256 , - 423 , - 302 , - 325 , - 60 , - 371 , - 394 , - 129 , - 8 , - 31 , - 198 , - 77 , - 100 , - 267 , - 146 , - 169 , - 336 , - 215 , - 238 , - 405 , - 284 , - 307 , - 42 , - 353 , - 376 , - 111 , - 422 , - 13 , - 180 , - 59 , - 82 , - 249 , - 128 , - 151 , - 318 , - 197 , - 220 , - 387 , - 266 , - 289 , - 24 , - 335 , - 358 , - 93 , - 404 , - 427 , - 162 , - 41 , - 64 , - 231 , - 110 , - 133 , - 300 , - 179 , - 202 , - 369 , - 248 , - 271 , - 6 , - 317 , - 340 , - 75 , - 386 , - 409 , - 144 , - 23 , - 46 , - 213 , - 92 , - 115 , - 282 , - 161 , - 184 , - 351 , - 230 , - 253 , - 420 , - 299 , - 322 , - 57 , - 368 , - 391 , - 126 , - 5 , - 28 , - 195 , - 74 , - 97 , - 264 , - 143 , - 166 , - 333 , - 212 , - 235 , - 402 , - 281 , - 304 , - 39 , - 350 , - 373 , - 108 , - 419 , - 10 , - 177 , - 56 , - 79 , - 246 , - 125 , - 148 , - 315 , - 194 , - 217 , - 384 , - 263 , - 286 , - 21 , - 332 , - 355 , - 90 , - 401 , - 424 , - 159 , - 38 , - 61 , - 228 , - 107 , - 130 , - 297 , - 176 , - 199 , - 366 , - 245 , - 268 , - 3 , - 314 , - 337 , - 72 , - 383 , - 406 , - 141 , - 20 , - 43 , - 210 , - 89 , - 112 , - 279 , - 158 , - 181 , - 348 , - 227 , - 250 , - 417 , - 296 , - 319 , - 54 , - 365 , - 388 , - 123 , - 2 , - 25 , - 192 , - 71 , - 94 , - 261 , - 140 , - 163 , - 330 , - 209 , - 232 , - 399 , - 278 , - 301 , - 36 , - 347 , - 370 , - 105 , - 416 , - 7 , - 174 , - 53 , - 76 , - 243 , - 122 , - 145 , - 312 , - 191 , - 214 , - 381 , - 260 , - 283 , - 18 , - 329 , - 352 , - 87 , - 398 , - 421 , - 156 , - 35 , - 58 , - 225 , - 104 , - 127 , - 294 , - 173 , - 196 , - 363 , - 242 , - 265 , - 0 , - 81 , - 382 , - 23 , - 324 , - 405 , - 266 , - 347 , - 208 , - 289 , - 150 , - 231 , - 92 , - 173 , - 34 , - 115 , - 416 , - 57 , - 358 , - 439 , - 300 , - 381 , - 242 , - 323 , - 184 , - 265 , - 126 , - 207 , - 68 , - 149 , - 10 , - 91 , - 392 , - 33 , - 334 , - 415 , - 276 , - 357 , - 218 , - 299 , - 160 , - 241 , - 102 , - 183 , - 44 , - 125 , - 426 , - 67 , - 368 , - 9 , - 310 , - 391 , - 252 , - 333 , - 194 , - 275 , - 136 , - 217 , - 78 , - 159 , - 20 , - 101 , - 402 , - 43 , - 344 , - 425 , - 286 , - 367 , - 228 , - 309 , - 170 , - 251 , - 112 , - 193 , - 54 , - 135 , - 436 , - 77 , - 378 , - 19 , - 320 , - 401 , - 262 , - 343 , - 204 , - 285 , - 146 , - 227 , - 88 , - 169 , - 30 , - 111 , - 412 , - 53 , - 354 , - 435 , - 296 , - 377 , - 238 , - 319 , - 180 , - 261 , - 122 , - 203 , - 64 , - 145 , - 6 , - 87 , - 388 , - 29 , - 330 , - 411 , - 272 , - 353 , - 214 , - 295 , - 156 , - 237 , - 98 , - 179 , - 40 , - 121 , - 422 , - 63 , - 364 , - 5 , - 306 , - 387 , - 248 , - 329 , - 190 , - 271 , - 132 , - 213 , - 74 , - 155 , - 16 , - 97 , - 398 , - 39 , - 340 , - 421 , - 282 , - 363 , - 224 , - 305 , - 166 , - 247 , - 108 , - 189 , - 50 , - 131 , - 432 , - 73 , - 374 , - 15 , - 316 , - 397 , - 258 , - 339 , - 200 , - 281 , - 142 , - 223 , - 84 , - 165 , - 26 , - 107 , - 408 , - 49 , - 350 , - 431 , - 292 , - 373 , - 234 , - 315 , - 176 , - 257 , - 118 , - 199 , - 60 , - 141 , - 2 , - 83 , - 384 , - 25 , - 326 , - 407 , - 268 , - 349 , - 210 , - 291 , - 152 , - 233 , - 94 , - 175 , - 36 , - 117 , - 418 , - 59 , - 360 , - 1 , - 302 , - 383 , - 244 , - 325 , - 186 , - 267 , - 128 , - 209 , - 70 , - 151 , - 12 , - 93 , - 394 , - 35 , - 336 , - 417 , - 278 , - 359 , - 220 , - 301 , - 162 , - 243 , - 104 , - 185 , - 46 , - 127 , - 428 , - 69 , - 370 , - 11 , - 312 , - 393 , - 254 , - 335 , - 196 , - 277 , - 138 , - 219 , - 80 , - 161 , - 22 , - 103 , - 404 , - 45 , - 346 , - 427 , - 288 , - 369 , - 230 , - 311 , - 172 , - 253 , - 114 , - 195 , - 56 , - 137 , - 438 , - 79 , - 380 , - 21 , - 322 , - 403 , - 264 , - 345 , - 206 , - 287 , - 148 , - 229 , - 90 , - 171 , - 32 , - 113 , - 414 , - 55 , - 356 , - 437 , - 298 , - 379 , - 240 , - 321 , - 182 , - 263 , - 124 , - 205 , - 66 , - 147 , - 8 , - 89 , - 390 , - 31 , - 332 , - 413 , - 274 , - 355 , - 216 , - 297 , - 158 , - 239 , - 100 , - 181 , - 42 , - 123 , - 424 , - 65 , - 366 , - 7 , - 308 , - 389 , - 250 , - 331 , - 192 , - 273 , - 134 , - 215 , - 76 , - 157 , - 18 , - 99 , - 400 , - 41 , - 342 , - 423 , - 284 , - 365 , - 226 , - 307 , - 168 , - 249 , - 110 , - 191 , - 52 , - 133 , - 434 , - 75 , - 376 , - 17 , - 318 , - 399 , - 260 , - 341 , - 202 , - 283 , - 144 , - 225 , - 86 , - 167 , - 28 , - 109 , - 410 , - 51 , - 352 , - 433 , - 294 , - 375 , - 236 , - 317 , - 178 , - 259 , - 120 , - 201 , - 62 , - 143 , - 4 , - 85 , - 386 , - 27 , - 328 , - 409 , - 270 , - 351 , - 212 , - 293 , - 154 , - 235 , - 96 , - 177 , - 38 , - 119 , - 420 , - 61 , - 362 , - 3 , - 304 , - 385 , - 246 , - 327 , - 188 , - 269 , - 130 , - 211 , - 72 , - 153 , - 14 , - 95 , - 396 , - 37 , - 338 , - 419 , - 280 , - 361 , - 222 , - 303 , - 164 , - 245 , - 106 , - 187 , - 48 , - 129 , - 430 , - 71 , - 372 , - 13 , - 314 , - 395 , - 256 , - 337 , - 198 , - 279 , - 140 , - 221 , - 82 , - 163 , - 24 , - 105 , - 406 , - 47 , - 348 , - 429 , - 290 , - 371 , - 232 , - 313 , - 174 , - 255 , - 116 , - 197 , - 58 , - 139 , - 0 , - 365 , - 394 , - 87 , - 340 , - 257 , - 286 , - 427 , - 232 , - 149 , - 178 , - 319 , - 124 , - 41 , - 70 , - 211 , - 16 , - 381 , - 410 , - 103 , - 356 , - 273 , - 302 , - 443 , - 248 , - 165 , - 194 , - 335 , - 140 , - 57 , - 86 , - 227 , - 32 , - 397 , - 426 , - 119 , - 372 , - 289 , - 318 , - 11 , - 264 , - 181 , - 210 , - 351 , - 156 , - 73 , - 102 , - 243 , - 48 , - 413 , - 442 , - 135 , - 388 , - 305 , - 334 , - 27 , - 280 , - 197 , - 226 , - 367 , - 172 , - 89 , - 118 , - 259 , - 64 , - 429 , - 10 , - 151 , - 404 , - 321 , - 350 , - 43 , - 296 , - 213 , - 242 , - 383 , - 188 , - 105 , - 134 , - 275 , - 80 , - 445 , - 26 , - 167 , - 420 , - 337 , - 366 , - 59 , - 312 , - 229 , - 258 , - 399 , - 204 , - 121 , - 150 , - 291 , - 96 , - 13 , - 42 , - 183 , - 436 , - 353 , - 382 , - 75 , - 328 , - 245 , - 274 , - 415 , - 220 , - 137 , - 166 , - 307 , - 112 , - 29 , - 58 , - 199 , - 4 , - 369 , - 398 , - 91 , - 344 , - 261 , - 290 , - 431 , - 236 , - 153 , - 182 , - 323 , - 128 , - 45 , - 74 , - 215 , - 20 , - 385 , - 414 , - 107 , - 360 , - 277 , - 306 , - 447 , - 252 , - 169 , - 198 , - 339 , - 144 , - 61 , - 90 , - 231 , - 36 , - 401 , - 430 , - 123 , - 376 , - 293 , - 322 , - 15 , - 268 , - 185 , - 214 , - 355 , - 160 , - 77 , - 106 , - 247 , - 52 , - 417 , - 446 , - 139 , - 392 , - 309 , - 338 , - 31 , - 284 , - 201 , - 230 , - 371 , - 176 , - 93 , - 122 , - 263 , - 68 , - 433 , - 14 , - 155 , - 408 , - 325 , - 354 , - 47 , - 300 , - 217 , - 246 , - 387 , - 192 , - 109 , - 138 , - 279 , - 84 , - 1 , - 30 , - 171 , - 424 , - 341 , - 370 , - 63 , - 316 , - 233 , - 262 , - 403 , - 208 , - 125 , - 154 , - 295 , - 100 , - 17 , - 46 , - 187 , - 440 , - 357 , - 386 , - 79 , - 332 , - 249 , - 278 , - 419 , - 224 , - 141 , - 170 , - 311 , - 116 , - 33 , - 62 , - 203 , - 8 , - 373 , - 402 , - 95 , - 348 , - 265 , - 294 , - 435 , - 240 , - 157 , - 186 , - 327 , - 132 , - 49 , - 78 , - 219 , - 24 , - 389 , - 418 , - 111 , - 364 , - 281 , - 310 , - 3 , - 256 , - 173 , - 202 , - 343 , - 148 , - 65 , - 94 , - 235 , - 40 , - 405 , - 434 , - 127 , - 380 , - 297 , - 326 , - 19 , - 272 , - 189 , - 218 , - 359 , - 164 , - 81 , - 110 , - 251 , - 56 , - 421 , - 2 , - 143 , - 396 , - 313 , - 342 , - 35 , - 288 , - 205 , - 234 , - 375 , - 180 , - 97 , - 126 , - 267 , - 72 , - 437 , - 18 , - 159 , - 412 , - 329 , - 358 , - 51 , - 304 , - 221 , - 250 , - 391 , - 196 , - 113 , - 142 , - 283 , - 88 , - 5 , - 34 , - 175 , - 428 , - 345 , - 374 , - 67 , - 320 , - 237 , - 266 , - 407 , - 212 , - 129 , - 158 , - 299 , - 104 , - 21 , - 50 , - 191 , - 444 , - 361 , - 390 , - 83 , - 336 , - 253 , - 282 , - 423 , - 228 , - 145 , - 174 , - 315 , - 120 , - 37 , - 66 , - 207 , - 12 , - 377 , - 406 , - 99 , - 352 , - 269 , - 298 , - 439 , - 244 , - 161 , - 190 , - 331 , - 136 , - 53 , - 82 , - 223 , - 28 , - 393 , - 422 , - 115 , - 368 , - 285 , - 314 , - 7 , - 260 , - 177 , - 206 , - 347 , - 152 , - 69 , - 98 , - 239 , - 44 , - 409 , - 438 , - 131 , - 384 , - 301 , - 330 , - 23 , - 276 , - 193 , - 222 , - 363 , - 168 , - 85 , - 114 , - 255 , - 60 , - 425 , - 6 , - 147 , - 400 , - 317 , - 346 , - 39 , - 292 , - 209 , - 238 , - 379 , - 184 , - 101 , - 130 , - 271 , - 76 , - 441 , - 22 , - 163 , - 416 , - 333 , - 362 , - 55 , - 308 , - 225 , - 254 , - 395 , - 200 , - 117 , - 146 , - 287 , - 92 , - 9 , - 38 , - 179 , - 432 , - 349 , - 378 , - 71 , - 324 , - 241 , - 270 , - 411 , - 216 , - 133 , - 162 , - 303 , - 108 , - 25 , - 54 , - 195 , - 0 , - 59 , - 346 , - 405 , - 236 , - 295 , - 126 , - 185 , - 16 , - 75 , - 362 , - 421 , - 252 , - 311 , - 142 , - 201 , - 32 , - 91 , - 378 , - 437 , - 268 , - 327 , - 158 , - 217 , - 48 , - 107 , - 394 , - 453 , - 284 , - 343 , - 174 , - 233 , - 64 , - 123 , - 410 , - 13 , - 300 , - 359 , - 190 , - 249 , - 80 , - 139 , - 426 , - 29 , - 316 , - 375 , - 206 , - 265 , - 96 , - 155 , - 442 , - 45 , - 332 , - 391 , - 222 , - 281 , - 112 , - 171 , - 2 , - 61 , - 348 , - 407 , - 238 , - 297 , - 128 , - 187 , - 18 , - 77 , - 364 , - 423 , - 254 , - 313 , - 144 , - 203 , - 34 , - 93 , - 380 , - 439 , - 270 , - 329 , - 160 , - 219 , - 50 , - 109 , - 396 , - 455 , - 286 , - 345 , - 176 , - 235 , - 66 , - 125 , - 412 , - 15 , - 302 , - 361 , - 192 , - 251 , - 82 , - 141 , - 428 , - 31 , - 318 , - 377 , - 208 , - 267 , - 98 , - 157 , - 444 , - 47 , - 334 , - 393 , - 224 , - 283 , - 114 , - 173 , - 4 , - 63 , - 350 , - 409 , - 240 , - 299 , - 130 , - 189 , - 20 , - 79 , - 366 , - 425 , - 256 , - 315 , - 146 , - 205 , - 36 , - 95 , - 382 , - 441 , - 272 , - 331 , - 162 , - 221 , - 52 , - 111 , - 398 , - 1 , - 288 , - 347 , - 178 , - 237 , - 68 , - 127 , - 414 , - 17 , - 304 , - 363 , - 194 , - 253 , - 84 , - 143 , - 430 , - 33 , - 320 , - 379 , - 210 , - 269 , - 100 , - 159 , - 446 , - 49 , - 336 , - 395 , - 226 , - 285 , - 116 , - 175 , - 6 , - 65 , - 352 , - 411 , - 242 , - 301 , - 132 , - 191 , - 22 , - 81 , - 368 , - 427 , - 258 , - 317 , - 148 , - 207 , - 38 , - 97 , - 384 , - 443 , - 274 , - 333 , - 164 , - 223 , - 54 , - 113 , - 400 , - 3 , - 290 , - 349 , - 180 , - 239 , - 70 , - 129 , - 416 , - 19 , - 306 , - 365 , - 196 , - 255 , - 86 , - 145 , - 432 , - 35 , - 322 , - 381 , - 212 , - 271 , - 102 , - 161 , - 448 , - 51 , - 338 , - 397 , - 228 , - 287 , - 118 , - 177 , - 8 , - 67 , - 354 , - 413 , - 244 , - 303 , - 134 , - 193 , - 24 , - 83 , - 370 , - 429 , - 260 , - 319 , - 150 , - 209 , - 40 , - 99 , - 386 , - 445 , - 276 , - 335 , - 166 , - 225 , - 56 , - 115 , - 402 , - 5 , - 292 , - 351 , - 182 , - 241 , - 72 , - 131 , - 418 , - 21 , - 308 , - 367 , - 198 , - 257 , - 88 , - 147 , - 434 , - 37 , - 324 , - 383 , - 214 , - 273 , - 104 , - 163 , - 450 , - 53 , - 340 , - 399 , - 230 , - 289 , - 120 , - 179 , - 10 , - 69 , - 356 , - 415 , - 246 , - 305 , - 136 , - 195 , - 26 , - 85 , - 372 , - 431 , - 262 , - 321 , - 152 , - 211 , - 42 , - 101 , - 388 , - 447 , - 278 , - 337 , - 168 , - 227 , - 58 , - 117 , - 404 , - 7 , - 294 , - 353 , - 184 , - 243 , - 74 , - 133 , - 420 , - 23 , - 310 , - 369 , - 200 , - 259 , - 90 , - 149 , - 436 , - 39 , - 326 , - 385 , - 216 , - 275 , - 106 , - 165 , - 452 , - 55 , - 342 , - 401 , - 232 , - 291 , - 122 , - 181 , - 12 , - 71 , - 358 , - 417 , - 248 , - 307 , - 138 , - 197 , - 28 , - 87 , - 374 , - 433 , - 264 , - 323 , - 154 , - 213 , - 44 , - 103 , - 390 , - 449 , - 280 , - 339 , - 170 , - 229 , - 60 , - 119 , - 406 , - 9 , - 296 , - 355 , - 186 , - 245 , - 76 , - 135 , - 422 , - 25 , - 312 , - 371 , - 202 , - 261 , - 92 , - 151 , - 438 , - 41 , - 328 , - 387 , - 218 , - 277 , - 108 , - 167 , - 454 , - 57 , - 344 , - 403 , - 234 , - 293 , - 124 , - 183 , - 14 , - 73 , - 360 , - 419 , - 250 , - 309 , - 140 , - 199 , - 30 , - 89 , - 376 , - 435 , - 266 , - 325 , - 156 , - 215 , - 46 , - 105 , - 392 , - 451 , - 282 , - 341 , - 172 , - 231 , - 62 , - 121 , - 408 , - 11 , - 298 , - 357 , - 188 , - 247 , - 78 , - 137 , - 424 , - 27 , - 314 , - 373 , - 204 , - 263 , - 94 , - 153 , - 440 , - 43 , - 330 , - 389 , - 220 , - 279 , - 110 , - 169 , - 0 , - 321 , - 294 , - 383 , - 124 , - 445 , - 418 , - 43 , - 248 , - 105 , - 78 , - 167 , - 372 , - 229 , - 202 , - 291 , - 32 , - 353 , - 326 , - 415 , - 156 , - 13 , - 450 , - 75 , - 280 , - 137 , - 110 , - 199 , - 404 , - 261 , - 234 , - 323 , - 64 , - 385 , - 358 , - 447 , - 188 , - 45 , - 18 , - 107 , - 312 , - 169 , - 142 , - 231 , - 436 , - 293 , - 266 , - 355 , - 96 , - 417 , - 390 , - 15 , - 220 , - 77 , - 50 , - 139 , - 344 , - 201 , - 174 , - 263 , - 4 , - 325 , - 298 , - 387 , - 128 , - 449 , - 422 , - 47 , - 252 , - 109 , - 82 , - 171 , - 376 , - 233 , - 206 , - 295 , - 36 , - 357 , - 330 , - 419 , - 160 , - 17 , - 454 , - 79 , - 284 , - 141 , - 114 , - 203 , - 408 , - 265 , - 238 , - 327 , - 68 , - 389 , - 362 , - 451 , - 192 , - 49 , - 22 , - 111 , - 316 , - 173 , - 146 , - 235 , - 440 , - 297 , - 270 , - 359 , - 100 , - 421 , - 394 , - 19 , - 224 , - 81 , - 54 , - 143 , - 348 , - 205 , - 178 , - 267 , - 8 , - 329 , - 302 , - 391 , - 132 , - 453 , - 426 , - 51 , - 256 , - 113 , - 86 , - 175 , - 380 , - 237 , - 210 , - 299 , - 40 , - 361 , - 334 , - 423 , - 164 , - 21 , - 458 , - 83 , - 288 , - 145 , - 118 , - 207 , - 412 , - 269 , - 242 , - 331 , - 72 , - 393 , - 366 , - 455 , - 196 , - 53 , - 26 , - 115 , - 320 , - 177 , - 150 , - 239 , - 444 , - 301 , - 274 , - 363 , - 104 , - 425 , - 398 , - 23 , - 228 , - 85 , - 58 , - 147 , - 352 , - 209 , - 182 , - 271 , - 12 , - 333 , - 306 , - 395 , - 136 , - 457 , - 430 , - 55 , - 260 , - 117 , - 90 , - 179 , - 384 , - 241 , - 214 , - 303 , - 44 , - 365 , - 338 , - 427 , - 168 , - 25 , - 462 , - 87 , - 292 , - 149 , - 122 , - 211 , - 416 , - 273 , - 246 , - 335 , - 76 , - 397 , - 370 , - 459 , - 200 , - 57 , - 30 , - 119 , - 324 , - 181 , - 154 , - 243 , - 448 , - 305 , - 278 , - 367 , - 108 , - 429 , - 402 , - 27 , - 232 , - 89 , - 62 , - 151 , - 356 , - 213 , - 186 , - 275 , - 16 , - 337 , - 310 , - 399 , - 140 , - 461 , - 434 , - 59 , - 264 , - 121 , - 94 , - 183 , - 388 , - 245 , - 218 , - 307 , - 48 , - 369 , - 342 , - 431 , - 172 , - 29 , - 2 , - 91 , - 296 , - 153 , - 126 , - 215 , - 420 , - 277 , - 250 , - 339 , - 80 , - 401 , - 374 , - 463 , - 204 , - 61 , - 34 , - 123 , - 328 , - 185 , - 158 , - 247 , - 452 , - 309 , - 282 , - 371 , - 112 , - 433 , - 406 , - 31 , - 236 , - 93 , - 66 , - 155 , - 360 , - 217 , - 190 , - 279 , - 20 , - 341 , - 314 , - 403 , - 144 , - 1 , - 438 , - 63 , - 268 , - 125 , - 98 , - 187 , - 392 , - 249 , - 222 , - 311 , - 52 , - 373 , - 346 , - 435 , - 176 , - 33 , - 6 , - 95 , - 300 , - 157 , - 130 , - 219 , - 424 , - 281 , - 254 , - 343 , - 84 , - 405 , - 378 , - 3 , - 208 , - 65 , - 38 , - 127 , - 332 , - 189 , - 162 , - 251 , - 456 , - 313 , - 286 , - 375 , - 116 , - 437 , - 410 , - 35 , - 240 , - 97 , - 70 , - 159 , - 364 , - 221 , - 194 , - 283 , - 24 , - 345 , - 318 , - 407 , - 148 , - 5 , - 442 , - 67 , - 272 , - 129 , - 102 , - 191 , - 396 , - 253 , - 226 , - 315 , - 56 , - 377 , - 350 , - 439 , - 180 , - 37 , - 10 , - 99 , - 304 , - 161 , - 134 , - 223 , - 428 , - 285 , - 258 , - 347 , - 88 , - 409 , - 382 , - 7 , - 212 , - 69 , - 42 , - 131 , - 336 , - 193 , - 166 , - 255 , - 460 , - 317 , - 290 , - 379 , - 120 , - 441 , - 414 , - 39 , - 244 , - 101 , - 74 , - 163 , - 368 , - 225 , - 198 , - 287 , - 28 , - 349 , - 322 , - 411 , - 152 , - 9 , - 446 , - 71 , - 276 , - 133 , - 106 , - 195 , - 400 , - 257 , - 230 , - 319 , - 60 , - 381 , - 354 , - 443 , - 184 , - 41 , - 14 , - 103 , - 308 , - 165 , - 138 , - 227 , - 432 , - 289 , - 262 , - 351 , - 92 , - 413 , - 386 , - 11 , - 216 , - 73 , - 46 , - 135 , - 340 , - 197 , - 170 , - 259 , - 0 , - 175 , - 114 , - 289 , - 228 , - 403 , - 342 , - 45 , - 456 , - 159 , - 98 , - 273 , - 212 , - 387 , - 326 , - 29 , - 440 , - 143 , - 82 , - 257 , - 196 , - 371 , - 310 , - 13 , - 424 , - 127 , - 66 , - 241 , - 180 , - 355 , - 294 , - 469 , - 408 , - 111 , - 50 , - 225 , - 164 , - 339 , - 278 , - 453 , - 392 , - 95 , - 34 , - 209 , - 148 , - 323 , - 262 , - 437 , - 376 , - 79 , - 18 , - 193 , - 132 , - 307 , - 246 , - 421 , - 360 , - 63 , - 2 , - 177 , - 116 , - 291 , - 230 , - 405 , - 344 , - 47 , - 458 , - 161 , - 100 , - 275 , - 214 , - 389 , - 328 , - 31 , - 442 , - 145 , - 84 , - 259 , - 198 , - 373 , - 312 , - 15 , - 426 , - 129 , - 68 , - 243 , - 182 , - 357 , - 296 , - 471 , - 410 , - 113 , - 52 , - 227 , - 166 , - 341 , - 280 , - 455 , - 394 , - 97 , - 36 , - 211 , - 150 , - 325 , - 264 , - 439 , - 378 , - 81 , - 20 , - 195 , - 134 , - 309 , - 248 , - 423 , - 362 , - 65 , - 4 , - 179 , - 118 , - 293 , - 232 , - 407 , - 346 , - 49 , - 460 , - 163 , - 102 , - 277 , - 216 , - 391 , - 330 , - 33 , - 444 , - 147 , - 86 , - 261 , - 200 , - 375 , - 314 , - 17 , - 428 , - 131 , - 70 , - 245 , - 184 , - 359 , - 298 , - 1 , - 412 , - 115 , - 54 , - 229 , - 168 , - 343 , - 282 , - 457 , - 396 , - 99 , - 38 , - 213 , - 152 , - 327 , - 266 , - 441 , - 380 , - 83 , - 22 , - 197 , - 136 , - 311 , - 250 , - 425 , - 364 , - 67 , - 6 , - 181 , - 120 , - 295 , - 234 , - 409 , - 348 , - 51 , - 462 , - 165 , - 104 , - 279 , - 218 , - 393 , - 332 , - 35 , - 446 , - 149 , - 88 , - 263 , - 202 , - 377 , - 316 , - 19 , - 430 , - 133 , - 72 , - 247 , - 186 , - 361 , - 300 , - 3 , - 414 , - 117 , - 56 , - 231 , - 170 , - 345 , - 284 , - 459 , - 398 , - 101 , - 40 , - 215 , - 154 , - 329 , - 268 , - 443 , - 382 , - 85 , - 24 , - 199 , - 138 , - 313 , - 252 , - 427 , - 366 , - 69 , - 8 , - 183 , - 122 , - 297 , - 236 , - 411 , - 350 , - 53 , - 464 , - 167 , - 106 , - 281 , - 220 , - 395 , - 334 , - 37 , - 448 , - 151 , - 90 , - 265 , - 204 , - 379 , - 318 , - 21 , - 432 , - 135 , - 74 , - 249 , - 188 , - 363 , - 302 , - 5 , - 416 , - 119 , - 58 , - 233 , - 172 , - 347 , - 286 , - 461 , - 400 , - 103 , - 42 , - 217 , - 156 , - 331 , - 270 , - 445 , - 384 , - 87 , - 26 , - 201 , - 140 , - 315 , - 254 , - 429 , - 368 , - 71 , - 10 , - 185 , - 124 , - 299 , - 238 , - 413 , - 352 , - 55 , - 466 , - 169 , - 108 , - 283 , - 222 , - 397 , - 336 , - 39 , - 450 , - 153 , - 92 , - 267 , - 206 , - 381 , - 320 , - 23 , - 434 , - 137 , - 76 , - 251 , - 190 , - 365 , - 304 , - 7 , - 418 , - 121 , - 60 , - 235 , - 174 , - 349 , - 288 , - 463 , - 402 , - 105 , - 44 , - 219 , - 158 , - 333 , - 272 , - 447 , - 386 , - 89 , - 28 , - 203 , - 142 , - 317 , - 256 , - 431 , - 370 , - 73 , - 12 , - 187 , - 126 , - 301 , - 240 , - 415 , - 354 , - 57 , - 468 , - 171 , - 110 , - 285 , - 224 , - 399 , - 338 , - 41 , - 452 , - 155 , - 94 , - 269 , - 208 , - 383 , - 322 , - 25 , - 436 , - 139 , - 78 , - 253 , - 192 , - 367 , - 306 , - 9 , - 420 , - 123 , - 62 , - 237 , - 176 , - 351 , - 290 , - 465 , - 404 , - 107 , - 46 , - 221 , - 160 , - 335 , - 274 , - 449 , - 388 , - 91 , - 30 , - 205 , - 144 , - 319 , - 258 , - 433 , - 372 , - 75 , - 14 , - 189 , - 128 , - 303 , - 242 , - 417 , - 356 , - 59 , - 470 , - 173 , - 112 , - 287 , - 226 , - 401 , - 340 , - 43 , - 454 , - 157 , - 96 , - 271 , - 210 , - 385 , - 324 , - 27 , - 438 , - 141 , - 80 , - 255 , - 194 , - 369 , - 308 , - 11 , - 422 , - 125 , - 64 , - 239 , - 178 , - 353 , - 292 , - 467 , - 406 , - 109 , - 48 , - 223 , - 162 , - 337 , - 276 , - 451 , - 390 , - 93 , - 32 , - 207 , - 146 , - 321 , - 260 , - 435 , - 374 , - 77 , - 16 , - 191 , - 130 , - 305 , - 244 , - 419 , - 358 , - 61 , - 0 , - 149 , - 418 , - 327 , - 356 , - 25 , - 294 , - 203 , - 232 , - 381 , - 170 , - 79 , - 108 , - 257 , - 46 , - 435 , - 464 , - 133 , - 402 , - 311 , - 340 , - 9 , - 278 , - 187 , - 216 , - 365 , - 154 , - 63 , - 92 , - 241 , - 30 , - 419 , - 448 , - 117 , - 386 , - 295 , - 324 , - 473 , - 262 , - 171 , - 200 , - 349 , - 138 , - 47 , - 76 , - 225 , - 14 , - 403 , - 432 , - 101 , - 370 , - 279 , - 308 , - 457 , - 246 , - 155 , - 184 , - 333 , - 122 , - 31 , - 60 , - 209 , - 478 , - 387 , - 416 , - 85 , - 354 , - 263 , - 292 , - 441 , - 230 , - 139 , - 168 , - 317 , - 106 , - 15 , - 44 , - 193 , - 462 , - 371 , - 400 , - 69 , - 338 , - 247 , - 276 , - 425 , - 214 , - 123 , - 152 , - 301 , - 90 , - 479 , - 28 , - 177 , - 446 , - 355 , - 384 , - 53 , - 322 , - 231 , - 260 , - 409 , - 198 , - 107 , - 136 , - 285 , - 74 , - 463 , - 12 , - 161 , - 430 , - 339 , - 368 , - 37 , - 306 , - 215 , - 244 , - 393 , - 182 , - 91 , - 120 , - 269 , - 58 , - 447 , - 476 , - 145 , - 414 , - 323 , - 352 , - 21 , - 290 , - 199 , - 228 , - 377 , - 166 , - 75 , - 104 , - 253 , - 42 , - 431 , - 460 , - 129 , - 398 , - 307 , - 336 , - 5 , - 274 , - 183 , - 212 , - 361 , - 150 , - 59 , - 88 , - 237 , - 26 , - 415 , - 444 , - 113 , - 382 , - 291 , - 320 , - 469 , - 258 , - 167 , - 196 , - 345 , - 134 , - 43 , - 72 , - 221 , - 10 , - 399 , - 428 , - 97 , - 366 , - 275 , - 304 , - 453 , - 242 , - 151 , - 180 , - 329 , - 118 , - 27 , - 56 , - 205 , - 474 , - 383 , - 412 , - 81 , - 350 , - 259 , - 288 , - 437 , - 226 , - 135 , - 164 , - 313 , - 102 , - 11 , - 40 , - 189 , - 458 , - 367 , - 396 , - 65 , - 334 , - 243 , - 272 , - 421 , - 210 , - 119 , - 148 , - 297 , - 86 , - 475 , - 24 , - 173 , - 442 , - 351 , - 380 , - 49 , - 318 , - 227 , - 256 , - 405 , - 194 , - 103 , - 132 , - 281 , - 70 , - 459 , - 8 , - 157 , - 426 , - 335 , - 364 , - 33 , - 302 , - 211 , - 240 , - 389 , - 178 , - 87 , - 116 , - 265 , - 54 , - 443 , - 472 , - 141 , - 410 , - 319 , - 348 , - 17 , - 286 , - 195 , - 224 , - 373 , - 162 , - 71 , - 100 , - 249 , - 38 , - 427 , - 456 , - 125 , - 394 , - 303 , - 332 , - 1 , - 270 , - 179 , - 208 , - 357 , - 146 , - 55 , - 84 , - 233 , - 22 , - 411 , - 440 , - 109 , - 378 , - 287 , - 316 , - 465 , - 254 , - 163 , - 192 , - 341 , - 130 , - 39 , - 68 , - 217 , - 6 , - 395 , - 424 , - 93 , - 362 , - 271 , - 300 , - 449 , - 238 , - 147 , - 176 , - 325 , - 114 , - 23 , - 52 , - 201 , - 470 , - 379 , - 408 , - 77 , - 346 , - 255 , - 284 , - 433 , - 222 , - 131 , - 160 , - 309 , - 98 , - 7 , - 36 , - 185 , - 454 , - 363 , - 392 , - 61 , - 330 , - 239 , - 268 , - 417 , - 206 , - 115 , - 144 , - 293 , - 82 , - 471 , - 20 , - 169 , - 438 , - 347 , - 376 , - 45 , - 314 , - 223 , - 252 , - 401 , - 190 , - 99 , - 128 , - 277 , - 66 , - 455 , - 4 , - 153 , - 422 , - 331 , - 360 , - 29 , - 298 , - 207 , - 236 , - 385 , - 174 , - 83 , - 112 , - 261 , - 50 , - 439 , - 468 , - 137 , - 406 , - 315 , - 344 , - 13 , - 282 , - 191 , - 220 , - 369 , - 158 , - 67 , - 96 , - 245 , - 34 , - 423 , - 452 , - 121 , - 390 , - 299 , - 328 , - 477 , - 266 , - 175 , - 204 , - 353 , - 142 , - 51 , - 80 , - 229 , - 18 , - 407 , - 436 , - 105 , - 374 , - 283 , - 312 , - 461 , - 250 , - 159 , - 188 , - 337 , - 126 , - 35 , - 64 , - 213 , - 2 , - 391 , - 420 , - 89 , - 358 , - 267 , - 296 , - 445 , - 234 , - 143 , - 172 , - 321 , - 110 , - 19 , - 48 , - 197 , - 466 , - 375 , - 404 , - 73 , - 342 , - 251 , - 280 , - 429 , - 218 , - 127 , - 156 , - 305 , - 94 , - 3 , - 32 , - 181 , - 450 , - 359 , - 388 , - 57 , - 326 , - 235 , - 264 , - 413 , - 202 , - 111 , - 140 , - 289 , - 78 , - 467 , - 16 , - 165 , - 434 , - 343 , - 372 , - 41 , - 310 , - 219 , - 248 , - 397 , - 186 , - 95 , - 124 , - 273 , - 62 , - 451 , - 0 , - 181 , - 118 , - 299 , - 236 , - 417 , - 354 , - 47 , - 472 , - 165 , - 102 , - 283 , - 220 , - 401 , - 338 , - 31 , - 456 , - 149 , - 86 , - 267 , - 204 , - 385 , - 322 , - 15 , - 440 , - 133 , - 70 , - 251 , - 188 , - 369 , - 306 , - 487 , - 424 , - 117 , - 54 , - 235 , - 172 , - 353 , - 290 , - 471 , - 408 , - 101 , - 38 , - 219 , - 156 , - 337 , - 274 , - 455 , - 392 , - 85 , - 22 , - 203 , - 140 , - 321 , - 258 , - 439 , - 376 , - 69 , - 6 , - 187 , - 124 , - 305 , - 242 , - 423 , - 360 , - 53 , - 478 , - 171 , - 108 , - 289 , - 226 , - 407 , - 344 , - 37 , - 462 , - 155 , - 92 , - 273 , - 210 , - 391 , - 328 , - 21 , - 446 , - 139 , - 76 , - 257 , - 194 , - 375 , - 312 , - 5 , - 430 , - 123 , - 60 , - 241 , - 178 , - 359 , - 296 , - 477 , - 414 , - 107 , - 44 , - 225 , - 162 , - 343 , - 280 , - 461 , - 398 , - 91 , - 28 , - 209 , - 146 , - 327 , - 264 , - 445 , - 382 , - 75 , - 12 , - 193 , - 130 , - 311 , - 248 , - 429 , - 366 , - 59 , - 484 , - 177 , - 114 , - 295 , - 232 , - 413 , - 350 , - 43 , - 468 , - 161 , - 98 , - 279 , - 216 , - 397 , - 334 , - 27 , - 452 , - 145 , - 82 , - 263 , - 200 , - 381 , - 318 , - 11 , - 436 , - 129 , - 66 , - 247 , - 184 , - 365 , - 302 , - 483 , - 420 , - 113 , - 50 , - 231 , - 168 , - 349 , - 286 , - 467 , - 404 , - 97 , - 34 , - 215 , - 152 , - 333 , - 270 , - 451 , - 388 , - 81 , - 18 , - 199 , - 136 , - 317 , - 254 , - 435 , - 372 , - 65 , - 2 , - 183 , - 120 , - 301 , - 238 , - 419 , - 356 , - 49 , - 474 , - 167 , - 104 , - 285 , - 222 , - 403 , - 340 , - 33 , - 458 , - 151 , - 88 , - 269 , - 206 , - 387 , - 324 , - 17 , - 442 , - 135 , - 72 , - 253 , - 190 , - 371 , - 308 , - 1 , - 426 , - 119 , - 56 , - 237 , - 174 , - 355 , - 292 , - 473 , - 410 , - 103 , - 40 , - 221 , - 158 , - 339 , - 276 , - 457 , - 394 , - 87 , - 24 , - 205 , - 142 , - 323 , - 260 , - 441 , - 378 , - 71 , - 8 , - 189 , - 126 , - 307 , - 244 , - 425 , - 362 , - 55 , - 480 , - 173 , - 110 , - 291 , - 228 , - 409 , - 346 , - 39 , - 464 , - 157 , - 94 , - 275 , - 212 , - 393 , - 330 , - 23 , - 448 , - 141 , - 78 , - 259 , - 196 , - 377 , - 314 , - 7 , - 432 , - 125 , - 62 , - 243 , - 180 , - 361 , - 298 , - 479 , - 416 , - 109 , - 46 , - 227 , - 164 , - 345 , - 282 , - 463 , - 400 , - 93 , - 30 , - 211 , - 148 , - 329 , - 266 , - 447 , - 384 , - 77 , - 14 , - 195 , - 132 , - 313 , - 250 , - 431 , - 368 , - 61 , - 486 , - 179 , - 116 , - 297 , - 234 , - 415 , - 352 , - 45 , - 470 , - 163 , - 100 , - 281 , - 218 , - 399 , - 336 , - 29 , - 454 , - 147 , - 84 , - 265 , - 202 , - 383 , - 320 , - 13 , - 438 , - 131 , - 68 , - 249 , - 186 , - 367 , - 304 , - 485 , - 422 , - 115 , - 52 , - 233 , - 170 , - 351 , - 288 , - 469 , - 406 , - 99 , - 36 , - 217 , - 154 , - 335 , - 272 , - 453 , - 390 , - 83 , - 20 , - 201 , - 138 , - 319 , - 256 , - 437 , - 374 , - 67 , - 4 , - 185 , - 122 , - 303 , - 240 , - 421 , - 358 , - 51 , - 476 , - 169 , - 106 , - 287 , - 224 , - 405 , - 342 , - 35 , - 460 , - 153 , - 90 , - 271 , - 208 , - 389 , - 326 , - 19 , - 444 , - 137 , - 74 , - 255 , - 192 , - 373 , - 310 , - 3 , - 428 , - 121 , - 58 , - 239 , - 176 , - 357 , - 294 , - 475 , - 412 , - 105 , - 42 , - 223 , - 160 , - 341 , - 278 , - 459 , - 396 , - 89 , - 26 , - 207 , - 144 , - 325 , - 262 , - 443 , - 380 , - 73 , - 10 , - 191 , - 128 , - 309 , - 246 , - 427 , - 364 , - 57 , - 482 , - 175 , - 112 , - 293 , - 230 , - 411 , - 348 , - 41 , - 466 , - 159 , - 96 , - 277 , - 214 , - 395 , - 332 , - 25 , - 450 , - 143 , - 80 , - 261 , - 198 , - 379 , - 316 , - 9 , - 434 , - 127 , - 64 , - 245 , - 182 , - 363 , - 300 , - 481 , - 418 , - 111 , - 48 , - 229 , - 166 , - 347 , - 284 , - 465 , - 402 , - 95 , - 32 , - 213 , - 150 , - 331 , - 268 , - 449 , - 386 , - 79 , - 16 , - 197 , - 134 , - 315 , - 252 , - 433 , - 370 , - 63 , - 0 , - 47 , - 466 , - 265 , - 436 , - 483 , - 406 , - 205 , - 376 , - 423 , - 346 , - 145 , - 316 , - 363 , - 286 , - 85 , - 256 , - 303 , - 226 , - 25 , - 196 , - 243 , - 166 , - 461 , - 136 , - 183 , - 106 , - 401 , - 76 , - 123 , - 46 , - 341 , - 16 , - 63 , - 482 , - 281 , - 452 , - 3 , - 422 , - 221 , - 392 , - 439 , - 362 , - 161 , - 332 , - 379 , - 302 , - 101 , - 272 , - 319 , - 242 , - 41 , - 212 , - 259 , - 182 , - 477 , - 152 , - 199 , - 122 , - 417 , - 92 , - 139 , - 62 , - 357 , - 32 , - 79 , - 2 , - 297 , - 468 , - 19 , - 438 , - 237 , - 408 , - 455 , - 378 , - 177 , - 348 , - 395 , - 318 , - 117 , - 288 , - 335 , - 258 , - 57 , - 228 , - 275 , - 198 , - 493 , - 168 , - 215 , - 138 , - 433 , - 108 , - 155 , - 78 , - 373 , - 48 , - 95 , - 18 , - 313 , - 484 , - 35 , - 454 , - 253 , - 424 , - 471 , - 394 , - 193 , - 364 , - 411 , - 334 , - 133 , - 304 , - 351 , - 274 , - 73 , - 244 , - 291 , - 214 , - 13 , - 184 , - 231 , - 154 , - 449 , - 124 , - 171 , - 94 , - 389 , - 64 , - 111 , - 34 , - 329 , - 4 , - 51 , - 470 , - 269 , - 440 , - 487 , - 410 , - 209 , - 380 , - 427 , - 350 , - 149 , - 320 , - 367 , - 290 , - 89 , - 260 , - 307 , - 230 , - 29 , - 200 , - 247 , - 170 , - 465 , - 140 , - 187 , - 110 , - 405 , - 80 , - 127 , - 50 , - 345 , - 20 , - 67 , - 486 , - 285 , - 456 , - 7 , - 426 , - 225 , - 396 , - 443 , - 366 , - 165 , - 336 , - 383 , - 306 , - 105 , - 276 , - 323 , - 246 , - 45 , - 216 , - 263 , - 186 , - 481 , - 156 , - 203 , - 126 , - 421 , - 96 , - 143 , - 66 , - 361 , - 36 , - 83 , - 6 , - 301 , - 472 , - 23 , - 442 , - 241 , - 412 , - 459 , - 382 , - 181 , - 352 , - 399 , - 322 , - 121 , - 292 , - 339 , - 262 , - 61 , - 232 , - 279 , - 202 , - 1 , - 172 , - 219 , - 142 , - 437 , - 112 , - 159 , - 82 , - 377 , - 52 , - 99 , - 22 , - 317 , - 488 , - 39 , - 458 , - 257 , - 428 , - 475 , - 398 , - 197 , - 368 , - 415 , - 338 , - 137 , - 308 , - 355 , - 278 , - 77 , - 248 , - 295 , - 218 , - 17 , - 188 , - 235 , - 158 , - 453 , - 128 , - 175 , - 98 , - 393 , - 68 , - 115 , - 38 , - 333 , - 8 , - 55 , - 474 , - 273 , - 444 , - 491 , - 414 , - 213 , - 384 , - 431 , - 354 , - 153 , - 324 , - 371 , - 294 , - 93 , - 264 , - 311 , - 234 , - 33 , - 204 , - 251 , - 174 , - 469 , - 144 , - 191 , - 114 , - 409 , - 84 , - 131 , - 54 , - 349 , - 24 , - 71 , - 490 , - 289 , - 460 , - 11 , - 430 , - 229 , - 400 , - 447 , - 370 , - 169 , - 340 , - 387 , - 310 , - 109 , - 280 , - 327 , - 250 , - 49 , - 220 , - 267 , - 190 , - 485 , - 160 , - 207 , - 130 , - 425 , - 100 , - 147 , - 70 , - 365 , - 40 , - 87 , - 10 , - 305 , - 476 , - 27 , - 446 , - 245 , - 416 , - 463 , - 386 , - 185 , - 356 , - 403 , - 326 , - 125 , - 296 , - 343 , - 266 , - 65 , - 236 , - 283 , - 206 , - 5 , - 176 , - 223 , - 146 , - 441 , - 116 , - 163 , - 86 , - 381 , - 56 , - 103 , - 26 , - 321 , - 492 , - 43 , - 462 , - 261 , - 432 , - 479 , - 402 , - 201 , - 372 , - 419 , - 342 , - 141 , - 312 , - 359 , - 282 , - 81 , - 252 , - 299 , - 222 , - 21 , - 192 , - 239 , - 162 , - 457 , - 132 , - 179 , - 102 , - 397 , - 72 , - 119 , - 42 , - 337 , - 12 , - 59 , - 478 , - 277 , - 448 , - 495 , - 418 , - 217 , - 388 , - 435 , - 358 , - 157 , - 328 , - 375 , - 298 , - 97 , - 268 , - 315 , - 238 , - 37 , - 208 , - 255 , - 178 , - 473 , - 148 , - 195 , - 118 , - 413 , - 88 , - 135 , - 58 , - 353 , - 28 , - 75 , - 494 , - 293 , - 464 , - 15 , - 434 , - 233 , - 404 , - 451 , - 374 , - 173 , - 344 , - 391 , - 314 , - 113 , - 284 , - 331 , - 254 , - 53 , - 224 , - 271 , - 194 , - 489 , - 164 , - 211 , - 134 , - 429 , - 104 , - 151 , - 74 , - 369 , - 44 , - 91 , - 14 , - 309 , - 480 , - 31 , - 450 , - 249 , - 420 , - 467 , - 390 , - 189 , - 360 , - 407 , - 330 , - 129 , - 300 , - 347 , - 270 , - 69 , - 240 , - 287 , - 210 , - 9 , - 180 , - 227 , - 150 , - 445 , - 120 , - 167 , - 90 , - 385 , - 60 , - 107 , - 30 , - 325 , - 0 , - 475 , - 278 , - 417 , - 388 , - 191 , - 330 , - 301 , - 104 , - 243 , - 214 , - 17 , - 156 , - 127 , - 434 , - 69 , - 40 , - 347 , - 486 , - 457 , - 260 , - 399 , - 370 , - 173 , - 312 , - 283 , - 86 , - 225 , - 196 , - 503 , - 138 , - 109 , - 416 , - 51 , - 22 , - 329 , - 468 , - 439 , - 242 , - 381 , - 352 , - 155 , - 294 , - 265 , - 68 , - 207 , - 178 , - 485 , - 120 , - 91 , - 398 , - 33 , - 4 , - 311 , - 450 , - 421 , - 224 , - 363 , - 334 , - 137 , - 276 , - 247 , - 50 , - 189 , - 160 , - 467 , - 102 , - 73 , - 380 , - 15 , - 490 , - 293 , - 432 , - 403 , - 206 , - 345 , - 316 , - 119 , - 258 , - 229 , - 32 , - 171 , - 142 , - 449 , - 84 , - 55 , - 362 , - 501 , - 472 , - 275 , - 414 , - 385 , - 188 , - 327 , - 298 , - 101 , - 240 , - 211 , - 14 , - 153 , - 124 , - 431 , - 66 , - 37 , - 344 , - 483 , - 454 , - 257 , - 396 , - 367 , - 170 , - 309 , - 280 , - 83 , - 222 , - 193 , - 500 , - 135 , - 106 , - 413 , - 48 , - 19 , - 326 , - 465 , - 436 , - 239 , - 378 , - 349 , - 152 , - 291 , - 262 , - 65 , - 204 , - 175 , - 482 , - 117 , - 88 , - 395 , - 30 , - 1 , - 308 , - 447 , - 418 , - 221 , - 360 , - 331 , - 134 , - 273 , - 244 , - 47 , - 186 , - 157 , - 464 , - 99 , - 70 , - 377 , - 12 , - 487 , - 290 , - 429 , - 400 , - 203 , - 342 , - 313 , - 116 , - 255 , - 226 , - 29 , - 168 , - 139 , - 446 , - 81 , - 52 , - 359 , - 498 , - 469 , - 272 , - 411 , - 382 , - 185 , - 324 , - 295 , - 98 , - 237 , - 208 , - 11 , - 150 , - 121 , - 428 , - 63 , - 34 , - 341 , - 480 , - 451 , - 254 , - 393 , - 364 , - 167 , - 306 , - 277 , - 80 , - 219 , - 190 , - 497 , - 132 , - 103 , - 410 , - 45 , - 16 , - 323 , - 462 , - 433 , - 236 , - 375 , - 346 , - 149 , - 288 , - 259 , - 62 , - 201 , - 172 , - 479 , - 114 , - 85 , - 392 , - 27 , - 502 , - 305 , - 444 , - 415 , - 218 , - 357 , - 328 , - 131 , - 270 , - 241 , - 44 , - 183 , - 154 , - 461 , - 96 , - 67 , - 374 , - 9 , - 484 , - 287 , - 426 , - 397 , - 200 , - 339 , - 310 , - 113 , - 252 , - 223 , - 26 , - 165 , - 136 , - 443 , - 78 , - 49 , - 356 , - 495 , - 466 , - 269 , - 408 , - 379 , - 182 , - 321 , - 292 , - 95 , - 234 , - 205 , - 8 , - 147 , - 118 , - 425 , - 60 , - 31 , - 338 , - 477 , - 448 , - 251 , - 390 , - 361 , - 164 , - 303 , - 274 , - 77 , - 216 , - 187 , - 494 , - 129 , - 100 , - 407 , - 42 , - 13 , - 320 , - 459 , - 430 , - 233 , - 372 , - 343 , - 146 , - 285 , - 256 , - 59 , - 198 , - 169 , - 476 , - 111 , - 82 , - 389 , - 24 , - 499 , - 302 , - 441 , - 412 , - 215 , - 354 , - 325 , - 128 , - 267 , - 238 , - 41 , - 180 , - 151 , - 458 , - 93 , - 64 , - 371 , - 6 , - 481 , - 284 , - 423 , - 394 , - 197 , - 336 , - 307 , - 110 , - 249 , - 220 , - 23 , - 162 , - 133 , - 440 , - 75 , - 46 , - 353 , - 492 , - 463 , - 266 , - 405 , - 376 , - 179 , - 318 , - 289 , - 92 , - 231 , - 202 , - 5 , - 144 , - 115 , - 422 , - 57 , - 28 , - 335 , - 474 , - 445 , - 248 , - 387 , - 358 , - 161 , - 300 , - 271 , - 74 , - 213 , - 184 , - 491 , - 126 , - 97 , - 404 , - 39 , - 10 , - 317 , - 456 , - 427 , - 230 , - 369 , - 340 , - 143 , - 282 , - 253 , - 56 , - 195 , - 166 , - 473 , - 108 , - 79 , - 386 , - 21 , - 496 , - 299 , - 438 , - 409 , - 212 , - 351 , - 322 , - 125 , - 264 , - 235 , - 38 , - 177 , - 148 , - 455 , - 90 , - 61 , - 368 , - 3 , - 478 , - 281 , - 420 , - 391 , - 194 , - 333 , - 304 , - 107 , - 246 , - 217 , - 20 , - 159 , - 130 , - 437 , - 72 , - 43 , - 350 , - 489 , - 460 , - 263 , - 402 , - 373 , - 176 , - 315 , - 286 , - 89 , - 228 , - 199 , - 2 , - 141 , - 112 , - 419 , - 54 , - 25 , - 332 , - 471 , - 442 , - 245 , - 384 , - 355 , - 158 , - 297 , - 268 , - 71 , - 210 , - 181 , - 488 , - 123 , - 94 , - 401 , - 36 , - 7 , - 314 , - 453 , - 424 , - 227 , - 366 , - 337 , - 140 , - 279 , - 250 , - 53 , - 192 , - 163 , - 470 , - 105 , - 76 , - 383 , - 18 , - 493 , - 296 , - 435 , - 406 , - 209 , - 348 , - 319 , - 122 , - 261 , - 232 , - 35 , - 174 , - 145 , - 452 , - 87 , - 58 , - 365 , - 0 , - 31 , - 190 , - 477 , - 380 , - 411 , - 58 , - 345 , - 248 , - 279 , - 438 , - 213 , - 116 , - 147 , - 306 , - 81 , - 496 , - 15 , - 174 , - 461 , - 364 , - 395 , - 42 , - 329 , - 232 , - 263 , - 422 , - 197 , - 100 , - 131 , - 290 , - 65 , - 480 , - 511 , - 158 , - 445 , - 348 , - 379 , - 26 , - 313 , - 216 , - 247 , - 406 , - 181 , - 84 , - 115 , - 274 , - 49 , - 464 , - 495 , - 142 , - 429 , - 332 , - 363 , - 10 , - 297 , - 200 , - 231 , - 390 , - 165 , - 68 , - 99 , - 258 , - 33 , - 448 , - 479 , - 126 , - 413 , - 316 , - 347 , - 506 , - 281 , - 184 , - 215 , - 374 , - 149 , - 52 , - 83 , - 242 , - 17 , - 432 , - 463 , - 110 , - 397 , - 300 , - 331 , - 490 , - 265 , - 168 , - 199 , - 358 , - 133 , - 36 , - 67 , - 226 , - 1 , - 416 , - 447 , - 94 , - 381 , - 284 , - 315 , - 474 , - 249 , - 152 , - 183 , - 342 , - 117 , - 20 , - 51 , - 210 , - 497 , - 400 , - 431 , - 78 , - 365 , - 268 , - 299 , - 458 , - 233 , - 136 , - 167 , - 326 , - 101 , - 4 , - 35 , - 194 , - 481 , - 384 , - 415 , - 62 , - 349 , - 252 , - 283 , - 442 , - 217 , - 120 , - 151 , - 310 , - 85 , - 500 , - 19 , - 178 , - 465 , - 368 , - 399 , - 46 , - 333 , - 236 , - 267 , - 426 , - 201 , - 104 , - 135 , - 294 , - 69 , - 484 , - 3 , - 162 , - 449 , - 352 , - 383 , - 30 , - 317 , - 220 , - 251 , - 410 , - 185 , - 88 , - 119 , - 278 , - 53 , - 468 , - 499 , - 146 , - 433 , - 336 , - 367 , - 14 , - 301 , - 204 , - 235 , - 394 , - 169 , - 72 , - 103 , - 262 , - 37 , - 452 , - 483 , - 130 , - 417 , - 320 , - 351 , - 510 , - 285 , - 188 , - 219 , - 378 , - 153 , - 56 , - 87 , - 246 , - 21 , - 436 , - 467 , - 114 , - 401 , - 304 , - 335 , - 494 , - 269 , - 172 , - 203 , - 362 , - 137 , - 40 , - 71 , - 230 , - 5 , - 420 , - 451 , - 98 , - 385 , - 288 , - 319 , - 478 , - 253 , - 156 , - 187 , - 346 , - 121 , - 24 , - 55 , - 214 , - 501 , - 404 , - 435 , - 82 , - 369 , - 272 , - 303 , - 462 , - 237 , - 140 , - 171 , - 330 , - 105 , - 8 , - 39 , - 198 , - 485 , - 388 , - 419 , - 66 , - 353 , - 256 , - 287 , - 446 , - 221 , - 124 , - 155 , - 314 , - 89 , - 504 , - 23 , - 182 , - 469 , - 372 , - 403 , - 50 , - 337 , - 240 , - 271 , - 430 , - 205 , - 108 , - 139 , - 298 , - 73 , - 488 , - 7 , - 166 , - 453 , - 356 , - 387 , - 34 , - 321 , - 224 , - 255 , - 414 , - 189 , - 92 , - 123 , - 282 , - 57 , - 472 , - 503 , - 150 , - 437 , - 340 , - 371 , - 18 , - 305 , - 208 , - 239 , - 398 , - 173 , - 76 , - 107 , - 266 , - 41 , - 456 , - 487 , - 134 , - 421 , - 324 , - 355 , - 2 , - 289 , - 192 , - 223 , - 382 , - 157 , - 60 , - 91 , - 250 , - 25 , - 440 , - 471 , - 118 , - 405 , - 308 , - 339 , - 498 , - 273 , - 176 , - 207 , - 366 , - 141 , - 44 , - 75 , - 234 , - 9 , - 424 , - 455 , - 102 , - 389 , - 292 , - 323 , - 482 , - 257 , - 160 , - 191 , - 350 , - 125 , - 28 , - 59 , - 218 , - 505 , - 408 , - 439 , - 86 , - 373 , - 276 , - 307 , - 466 , - 241 , - 144 , - 175 , - 334 , - 109 , - 12 , - 43 , - 202 , - 489 , - 392 , - 423 , - 70 , - 357 , - 260 , - 291 , - 450 , - 225 , - 128 , - 159 , - 318 , - 93 , - 508 , - 27 , - 186 , - 473 , - 376 , - 407 , - 54 , - 341 , - 244 , - 275 , - 434 , - 209 , - 112 , - 143 , - 302 , - 77 , - 492 , - 11 , - 170 , - 457 , - 360 , - 391 , - 38 , - 325 , - 228 , - 259 , - 418 , - 193 , - 96 , - 127 , - 286 , - 61 , - 476 , - 507 , - 154 , - 441 , - 344 , - 375 , - 22 , - 309 , - 212 , - 243 , - 402 , - 177 , - 80 , - 111 , - 270 , - 45 , - 460 , - 491 , - 138 , - 425 , - 328 , - 359 , - 6 , - 293 , - 196 , - 227 , - 386 , - 161 , - 64 , - 95 , - 254 , - 29 , - 444 , - 475 , - 122 , - 409 , - 312 , - 343 , - 502 , - 277 , - 180 , - 211 , - 370 , - 145 , - 48 , - 79 , - 238 , - 13 , - 428 , - 459 , - 106 , - 393 , - 296 , - 327 , - 486 , - 261 , - 164 , - 195 , - 354 , - 129 , - 32 , - 63 , - 222 , - 509 , - 412 , - 443 , - 90 , - 377 , - 280 , - 311 , - 470 , - 245 , - 148 , - 179 , - 338 , - 113 , - 16 , - 47 , - 206 , - 493 , - 396 , - 427 , - 74 , - 361 , - 264 , - 295 , - 454 , - 229 , - 132 , - 163 , - 322 , - 97 , - 0 , - 431 , - 202 , - 369 , - 404 , - 307 , - 78 , - 245 , - 280 , - 183 , - 482 , - 121 , - 156 , - 59 , - 358 , - 525 , - 32 , - 463 , - 234 , - 401 , - 436 , - 339 , - 110 , - 277 , - 312 , - 215 , - 514 , - 153 , - 188 , - 91 , - 390 , - 29 , - 64 , - 495 , - 266 , - 433 , - 468 , - 371 , - 142 , - 309 , - 344 , - 247 , - 18 , - 185 , - 220 , - 123 , - 422 , - 61 , - 96 , - 527 , - 298 , - 465 , - 500 , - 403 , - 174 , - 341 , - 376 , - 279 , - 50 , - 217 , - 252 , - 155 , - 454 , - 93 , - 128 , - 31 , - 330 , - 497 , - 4 , - 435 , - 206 , - 373 , - 408 , - 311 , - 82 , - 249 , - 284 , - 187 , - 486 , - 125 , - 160 , - 63 , - 362 , - 1 , - 36 , - 467 , - 238 , - 405 , - 440 , - 343 , - 114 , - 281 , - 316 , - 219 , - 518 , - 157 , - 192 , - 95 , - 394 , - 33 , - 68 , - 499 , - 270 , - 437 , - 472 , - 375 , - 146 , - 313 , - 348 , - 251 , - 22 , - 189 , - 224 , - 127 , - 426 , - 65 , - 100 , - 3 , - 302 , - 469 , - 504 , - 407 , - 178 , - 345 , - 380 , - 283 , - 54 , - 221 , - 256 , - 159 , - 458 , - 97 , - 132 , - 35 , - 334 , - 501 , - 8 , - 439 , - 210 , - 377 , - 412 , - 315 , - 86 , - 253 , - 288 , - 191 , - 490 , - 129 , - 164 , - 67 , - 366 , - 5 , - 40 , - 471 , - 242 , - 409 , - 444 , - 347 , - 118 , - 285 , - 320 , - 223 , - 522 , - 161 , - 196 , - 99 , - 398 , - 37 , - 72 , - 503 , - 274 , - 441 , - 476 , - 379 , - 150 , - 317 , - 352 , - 255 , - 26 , - 193 , - 228 , - 131 , - 430 , - 69 , - 104 , - 7 , - 306 , - 473 , - 508 , - 411 , - 182 , - 349 , - 384 , - 287 , - 58 , - 225 , - 260 , - 163 , - 462 , - 101 , - 136 , - 39 , - 338 , - 505 , - 12 , - 443 , - 214 , - 381 , - 416 , - 319 , - 90 , - 257 , - 292 , - 195 , - 494 , - 133 , - 168 , - 71 , - 370 , - 9 , - 44 , - 475 , - 246 , - 413 , - 448 , - 351 , - 122 , - 289 , - 324 , - 227 , - 526 , - 165 , - 200 , - 103 , - 402 , - 41 , - 76 , - 507 , - 278 , - 445 , - 480 , - 383 , - 154 , - 321 , - 356 , - 259 , - 30 , - 197 , - 232 , - 135 , - 434 , - 73 , - 108 , - 11 , - 310 , - 477 , - 512 , - 415 , - 186 , - 353 , - 388 , - 291 , - 62 , - 229 , - 264 , - 167 , - 466 , - 105 , - 140 , - 43 , - 342 , - 509 , - 16 , - 447 , - 218 , - 385 , - 420 , - 323 , - 94 , - 261 , - 296 , - 199 , - 498 , - 137 , - 172 , - 75 , - 374 , - 13 , - 48 , - 479 , - 250 , - 417 , - 452 , - 355 , - 126 , - 293 , - 328 , - 231 , - 2 , - 169 , - 204 , - 107 , - 406 , - 45 , - 80 , - 511 , - 282 , - 449 , - 484 , - 387 , - 158 , - 325 , - 360 , - 263 , - 34 , - 201 , - 236 , - 139 , - 438 , - 77 , - 112 , - 15 , - 314 , - 481 , - 516 , - 419 , - 190 , - 357 , - 392 , - 295 , - 66 , - 233 , - 268 , - 171 , - 470 , - 109 , - 144 , - 47 , - 346 , - 513 , - 20 , - 451 , - 222 , - 389 , - 424 , - 327 , - 98 , - 265 , - 300 , - 203 , - 502 , - 141 , - 176 , - 79 , - 378 , - 17 , - 52 , - 483 , - 254 , - 421 , - 456 , - 359 , - 130 , - 297 , - 332 , - 235 , - 6 , - 173 , - 208 , - 111 , - 410 , - 49 , - 84 , - 515 , - 286 , - 453 , - 488 , - 391 , - 162 , - 329 , - 364 , - 267 , - 38 , - 205 , - 240 , - 143 , - 442 , - 81 , - 116 , - 19 , - 318 , - 485 , - 520 , - 423 , - 194 , - 361 , - 396 , - 299 , - 70 , - 237 , - 272 , - 175 , - 474 , - 113 , - 148 , - 51 , - 350 , - 517 , - 24 , - 455 , - 226 , - 393 , - 428 , - 331 , - 102 , - 269 , - 304 , - 207 , - 506 , - 145 , - 180 , - 83 , - 382 , - 21 , - 56 , - 487 , - 258 , - 425 , - 460 , - 363 , - 134 , - 301 , - 336 , - 239 , - 10 , - 177 , - 212 , - 115 , - 414 , - 53 , - 88 , - 519 , - 290 , - 457 , - 492 , - 395 , - 166 , - 333 , - 368 , - 271 , - 42 , - 209 , - 244 , - 147 , - 446 , - 85 , - 120 , - 23 , - 322 , - 489 , - 524 , - 427 , - 198 , - 365 , - 400 , - 303 , - 74 , - 241 , - 276 , - 179 , - 478 , - 117 , - 152 , - 55 , - 354 , - 521 , - 28 , - 459 , - 230 , - 397 , - 432 , - 335 , - 106 , - 273 , - 308 , - 211 , - 510 , - 149 , - 184 , - 87 , - 386 , - 25 , - 60 , - 491 , - 262 , - 429 , - 464 , - 367 , - 138 , - 305 , - 340 , - 243 , - 14 , - 181 , - 216 , - 119 , - 418 , - 57 , - 92 , - 523 , - 294 , - 461 , - 496 , - 399 , - 170 , - 337 , - 372 , - 275 , - 46 , - 213 , - 248 , - 151 , - 450 , - 89 , - 124 , - 27 , - 326 , - 493 , - 0 , - 511 , - 70 , - 309 , - 140 , - 107 , - 210 , - 449 , - 280 , - 247 , - 350 , - 45 , - 420 , - 387 , - 490 , - 185 , - 16 , - 527 , - 86 , - 325 , - 156 , - 123 , - 226 , - 465 , - 296 , - 263 , - 366 , - 61 , - 436 , - 403 , - 506 , - 201 , - 32 , - 543 , - 102 , - 341 , - 172 , - 139 , - 242 , - 481 , - 312 , - 279 , - 382 , - 77 , - 452 , - 419 , - 522 , - 217 , - 48 , - 15 , - 118 , - 357 , - 188 , - 155 , - 258 , - 497 , - 328 , - 295 , - 398 , - 93 , - 468 , - 435 , - 538 , - 233 , - 64 , - 31 , - 134 , - 373 , - 204 , - 171 , - 274 , - 513 , - 344 , - 311 , - 414 , - 109 , - 484 , - 451 , - 10 , - 249 , - 80 , - 47 , - 150 , - 389 , - 220 , - 187 , - 290 , - 529 , - 360 , - 327 , - 430 , - 125 , - 500 , - 467 , - 26 , - 265 , - 96 , - 63 , - 166 , - 405 , - 236 , - 203 , - 306 , - 1 , - 376 , - 343 , - 446 , - 141 , - 516 , - 483 , - 42 , - 281 , - 112 , - 79 , - 182 , - 421 , - 252 , - 219 , - 322 , - 17 , - 392 , - 359 , - 462 , - 157 , - 532 , - 499 , - 58 , - 297 , - 128 , - 95 , - 198 , - 437 , - 268 , - 235 , - 338 , - 33 , - 408 , - 375 , - 478 , - 173 , - 4 , - 515 , - 74 , - 313 , - 144 , - 111 , - 214 , - 453 , - 284 , - 251 , - 354 , - 49 , - 424 , - 391 , - 494 , - 189 , - 20 , - 531 , - 90 , - 329 , - 160 , - 127 , - 230 , - 469 , - 300 , - 267 , - 370 , - 65 , - 440 , - 407 , - 510 , - 205 , - 36 , - 3 , - 106 , - 345 , - 176 , - 143 , - 246 , - 485 , - 316 , - 283 , - 386 , - 81 , - 456 , - 423 , - 526 , - 221 , - 52 , - 19 , - 122 , - 361 , - 192 , - 159 , - 262 , - 501 , - 332 , - 299 , - 402 , - 97 , - 472 , - 439 , - 542 , - 237 , - 68 , - 35 , - 138 , - 377 , - 208 , - 175 , - 278 , - 517 , - 348 , - 315 , - 418 , - 113 , - 488 , - 455 , - 14 , - 253 , - 84 , - 51 , - 154 , - 393 , - 224 , - 191 , - 294 , - 533 , - 364 , - 331 , - 434 , - 129 , - 504 , - 471 , - 30 , - 269 , - 100 , - 67 , - 170 , - 409 , - 240 , - 207 , - 310 , - 5 , - 380 , - 347 , - 450 , - 145 , - 520 , - 487 , - 46 , - 285 , - 116 , - 83 , - 186 , - 425 , - 256 , - 223 , - 326 , - 21 , - 396 , - 363 , - 466 , - 161 , - 536 , - 503 , - 62 , - 301 , - 132 , - 99 , - 202 , - 441 , - 272 , - 239 , - 342 , - 37 , - 412 , - 379 , - 482 , - 177 , - 8 , - 519 , - 78 , - 317 , - 148 , - 115 , - 218 , - 457 , - 288 , - 255 , - 358 , - 53 , - 428 , - 395 , - 498 , - 193 , - 24 , - 535 , - 94 , - 333 , - 164 , - 131 , - 234 , - 473 , - 304 , - 271 , - 374 , - 69 , - 444 , - 411 , - 514 , - 209 , - 40 , - 7 , - 110 , - 349 , - 180 , - 147 , - 250 , - 489 , - 320 , - 287 , - 390 , - 85 , - 460 , - 427 , - 530 , - 225 , - 56 , - 23 , - 126 , - 365 , - 196 , - 163 , - 266 , - 505 , - 336 , - 303 , - 406 , - 101 , - 476 , - 443 , - 2 , - 241 , - 72 , - 39 , - 142 , - 381 , - 212 , - 179 , - 282 , - 521 , - 352 , - 319 , - 422 , - 117 , - 492 , - 459 , - 18 , - 257 , - 88 , - 55 , - 158 , - 397 , - 228 , - 195 , - 298 , - 537 , - 368 , - 335 , - 438 , - 133 , - 508 , - 475 , - 34 , - 273 , - 104 , - 71 , - 174 , - 413 , - 244 , - 211 , - 314 , - 9 , - 384 , - 351 , - 454 , - 149 , - 524 , - 491 , - 50 , - 289 , - 120 , - 87 , - 190 , - 429 , - 260 , - 227 , - 330 , - 25 , - 400 , - 367 , - 470 , - 165 , - 540 , - 507 , - 66 , - 305 , - 136 , - 103 , - 206 , - 445 , - 276 , - 243 , - 346 , - 41 , - 416 , - 383 , - 486 , - 181 , - 12 , - 523 , - 82 , - 321 , - 152 , - 119 , - 222 , - 461 , - 292 , - 259 , - 362 , - 57 , - 432 , - 399 , - 502 , - 197 , - 28 , - 539 , - 98 , - 337 , - 168 , - 135 , - 238 , - 477 , - 308 , - 275 , - 378 , - 73 , - 448 , - 415 , - 518 , - 213 , - 44 , - 11 , - 114 , - 353 , - 184 , - 151 , - 254 , - 493 , - 324 , - 291 , - 394 , - 89 , - 464 , - 431 , - 534 , - 229 , - 60 , - 27 , - 130 , - 369 , - 200 , - 167 , - 270 , - 509 , - 340 , - 307 , - 410 , - 105 , - 480 , - 447 , - 6 , - 245 , - 76 , - 43 , - 146 , - 385 , - 216 , - 183 , - 286 , - 525 , - 356 , - 323 , - 426 , - 121 , - 496 , - 463 , - 22 , - 261 , - 92 , - 59 , - 162 , - 401 , - 232 , - 199 , - 302 , - 541 , - 372 , - 339 , - 442 , - 137 , - 512 , - 479 , - 38 , - 277 , - 108 , - 75 , - 178 , - 417 , - 248 , - 215 , - 318 , - 13 , - 388 , - 355 , - 458 , - 153 , - 528 , - 495 , - 54 , - 293 , - 124 , - 91 , - 194 , - 433 , - 264 , - 231 , - 334 , - 29 , - 404 , - 371 , - 474 , - 169 , - 0 , - 383 , - 486 , - 309 , - 412 , - 235 , - 338 , - 161 , - 264 , - 87 , - 190 , - 13 , - 116 , - 499 , - 42 , - 425 , - 528 , - 351 , - 454 , - 277 , - 380 , - 203 , - 306 , - 129 , - 232 , - 55 , - 158 , - 541 , - 84 , - 467 , - 10 , - 393 , - 496 , - 319 , - 422 , - 245 , - 348 , - 171 , - 274 , - 97 , - 200 , - 23 , - 126 , - 509 , - 52 , - 435 , - 538 , - 361 , - 464 , - 287 , - 390 , - 213 , - 316 , - 139 , - 242 , - 65 , - 168 , - 551 , - 94 , - 477 , - 20 , - 403 , - 506 , - 329 , - 432 , - 255 , - 358 , - 181 , - 284 , - 107 , - 210 , - 33 , - 136 , - 519 , - 62 , - 445 , - 548 , - 371 , - 474 , - 297 , - 400 , - 223 , - 326 , - 149 , - 252 , - 75 , - 178 , - 1 , - 104 , - 487 , - 30 , - 413 , - 516 , - 339 , - 442 , - 265 , - 368 , - 191 , - 294 , - 117 , - 220 , - 43 , - 146 , - 529 , - 72 , - 455 , - 558 , - 381 , - 484 , - 307 , - 410 , - 233 , - 336 , - 159 , - 262 , - 85 , - 188 , - 11 , - 114 , - 497 , - 40 , - 423 , - 526 , - 349 , - 452 , - 275 , - 378 , - 201 , - 304 , - 127 , - 230 , - 53 , - 156 , - 539 , - 82 , - 465 , - 8 , - 391 , - 494 , - 317 , - 420 , - 243 , - 346 , - 169 , - 272 , - 95 , - 198 , - 21 , - 124 , - 507 , - 50 , - 433 , - 536 , - 359 , - 462 , - 285 , - 388 , - 211 , - 314 , - 137 , - 240 , - 63 , - 166 , - 549 , - 92 , - 475 , - 18 , - 401 , - 504 , - 327 , - 430 , - 253 , - 356 , - 179 , - 282 , - 105 , - 208 , - 31 , - 134 , - 517 , - 60 , - 443 , - 546 , - 369 , - 472 , - 295 , - 398 , - 221 , - 324 , - 147 , - 250 , - 73 , - 176 , - 559 , - 102 , - 485 , - 28 , - 411 , - 514 , - 337 , - 440 , - 263 , - 366 , - 189 , - 292 , - 115 , - 218 , - 41 , - 144 , - 527 , - 70 , - 453 , - 556 , - 379 , - 482 , - 305 , - 408 , - 231 , - 334 , - 157 , - 260 , - 83 , - 186 , - 9 , - 112 , - 495 , - 38 , - 421 , - 524 , - 347 , - 450 , - 273 , - 376 , - 199 , - 302 , - 125 , - 228 , - 51 , - 154 , - 537 , - 80 , - 463 , - 6 , - 389 , - 492 , - 315 , - 418 , - 241 , - 344 , - 167 , - 270 , - 93 , - 196 , - 19 , - 122 , - 505 , - 48 , - 431 , - 534 , - 357 , - 460 , - 283 , - 386 , - 209 , - 312 , - 135 , - 238 , - 61 , - 164 , - 547 , - 90 , - 473 , - 16 , - 399 , - 502 , - 325 , - 428 , - 251 , - 354 , - 177 , - 280 , - 103 , - 206 , - 29 , - 132 , - 515 , - 58 , - 441 , - 544 , - 367 , - 470 , - 293 , - 396 , - 219 , - 322 , - 145 , - 248 , - 71 , - 174 , - 557 , - 100 , - 483 , - 26 , - 409 , - 512 , - 335 , - 438 , - 261 , - 364 , - 187 , - 290 , - 113 , - 216 , - 39 , - 142 , - 525 , - 68 , - 451 , - 554 , - 377 , - 480 , - 303 , - 406 , - 229 , - 332 , - 155 , - 258 , - 81 , - 184 , - 7 , - 110 , - 493 , - 36 , - 419 , - 522 , - 345 , - 448 , - 271 , - 374 , - 197 , - 300 , - 123 , - 226 , - 49 , - 152 , - 535 , - 78 , - 461 , - 4 , - 387 , - 490 , - 313 , - 416 , - 239 , - 342 , - 165 , - 268 , - 91 , - 194 , - 17 , - 120 , - 503 , - 46 , - 429 , - 532 , - 355 , - 458 , - 281 , - 384 , - 207 , - 310 , - 133 , - 236 , - 59 , - 162 , - 545 , - 88 , - 471 , - 14 , - 397 , - 500 , - 323 , - 426 , - 249 , - 352 , - 175 , - 278 , - 101 , - 204 , - 27 , - 130 , - 513 , - 56 , - 439 , - 542 , - 365 , - 468 , - 291 , - 394 , - 217 , - 320 , - 143 , - 246 , - 69 , - 172 , - 555 , - 98 , - 481 , - 24 , - 407 , - 510 , - 333 , - 436 , - 259 , - 362 , - 185 , - 288 , - 111 , - 214 , - 37 , - 140 , - 523 , - 66 , - 449 , - 552 , - 375 , - 478 , - 301 , - 404 , - 227 , - 330 , - 153 , - 256 , - 79 , - 182 , - 5 , - 108 , - 491 , - 34 , - 417 , - 520 , - 343 , - 446 , - 269 , - 372 , - 195 , - 298 , - 121 , - 224 , - 47 , - 150 , - 533 , - 76 , - 459 , - 2 , - 385 , - 488 , - 311 , - 414 , - 237 , - 340 , - 163 , - 266 , - 89 , - 192 , - 15 , - 118 , - 501 , - 44 , - 427 , - 530 , - 353 , - 456 , - 279 , - 382 , - 205 , - 308 , - 131 , - 234 , - 57 , - 160 , - 543 , - 86 , - 469 , - 12 , - 395 , - 498 , - 321 , - 424 , - 247 , - 350 , - 173 , - 276 , - 99 , - 202 , - 25 , - 128 , - 511 , - 54 , - 437 , - 540 , - 363 , - 466 , - 289 , - 392 , - 215 , - 318 , - 141 , - 244 , - 67 , - 170 , - 553 , - 96 , - 479 , - 22 , - 405 , - 508 , - 331 , - 434 , - 257 , - 360 , - 183 , - 286 , - 109 , - 212 , - 35 , - 138 , - 521 , - 64 , - 447 , - 550 , - 373 , - 476 , - 299 , - 402 , - 225 , - 328 , - 151 , - 254 , - 77 , - 180 , - 3 , - 106 , - 489 , - 32 , - 415 , - 518 , - 341 , - 444 , - 267 , - 370 , - 193 , - 296 , - 119 , - 222 , - 45 , - 148 , - 531 , - 74 , - 457 , - 0 , - 353 , - 322 , - 483 , - 260 , - 229 , - 390 , - 167 , - 136 , - 297 , - 74 , - 43 , - 204 , - 557 , - 526 , - 111 , - 464 , - 433 , - 18 , - 371 , - 340 , - 501 , - 278 , - 247 , - 408 , - 185 , - 154 , - 315 , - 92 , - 61 , - 222 , - 575 , - 544 , - 129 , - 482 , - 451 , - 36 , - 389 , - 358 , - 519 , - 296 , - 265 , - 426 , - 203 , - 172 , - 333 , - 110 , - 79 , - 240 , - 17 , - 562 , - 147 , - 500 , - 469 , - 54 , - 407 , - 376 , - 537 , - 314 , - 283 , - 444 , - 221 , - 190 , - 351 , - 128 , - 97 , - 258 , - 35 , - 4 , - 165 , - 518 , - 487 , - 72 , - 425 , - 394 , - 555 , - 332 , - 301 , - 462 , - 239 , - 208 , - 369 , - 146 , - 115 , - 276 , - 53 , - 22 , - 183 , - 536 , - 505 , - 90 , - 443 , - 412 , - 573 , - 350 , - 319 , - 480 , - 257 , - 226 , - 387 , - 164 , - 133 , - 294 , - 71 , - 40 , - 201 , - 554 , - 523 , - 108 , - 461 , - 430 , - 15 , - 368 , - 337 , - 498 , - 275 , - 244 , - 405 , - 182 , - 151 , - 312 , - 89 , - 58 , - 219 , - 572 , - 541 , - 126 , - 479 , - 448 , - 33 , - 386 , - 355 , - 516 , - 293 , - 262 , - 423 , - 200 , - 169 , - 330 , - 107 , - 76 , - 237 , - 14 , - 559 , - 144 , - 497 , - 466 , - 51 , - 404 , - 373 , - 534 , - 311 , - 280 , - 441 , - 218 , - 187 , - 348 , - 125 , - 94 , - 255 , - 32 , - 1 , - 162 , - 515 , - 484 , - 69 , - 422 , - 391 , - 552 , - 329 , - 298 , - 459 , - 236 , - 205 , - 366 , - 143 , - 112 , - 273 , - 50 , - 19 , - 180 , - 533 , - 502 , - 87 , - 440 , - 409 , - 570 , - 347 , - 316 , - 477 , - 254 , - 223 , - 384 , - 161 , - 130 , - 291 , - 68 , - 37 , - 198 , - 551 , - 520 , - 105 , - 458 , - 427 , - 12 , - 365 , - 334 , - 495 , - 272 , - 241 , - 402 , - 179 , - 148 , - 309 , - 86 , - 55 , - 216 , - 569 , - 538 , - 123 , - 476 , - 445 , - 30 , - 383 , - 352 , - 513 , - 290 , - 259 , - 420 , - 197 , - 166 , - 327 , - 104 , - 73 , - 234 , - 11 , - 556 , - 141 , - 494 , - 463 , - 48 , - 401 , - 370 , - 531 , - 308 , - 277 , - 438 , - 215 , - 184 , - 345 , - 122 , - 91 , - 252 , - 29 , - 574 , - 159 , - 512 , - 481 , - 66 , - 419 , - 388 , - 549 , - 326 , - 295 , - 456 , - 233 , - 202 , - 363 , - 140 , - 109 , - 270 , - 47 , - 16 , - 177 , - 530 , - 499 , - 84 , - 437 , - 406 , - 567 , - 344 , - 313 , - 474 , - 251 , - 220 , - 381 , - 158 , - 127 , - 288 , - 65 , - 34 , - 195 , - 548 , - 517 , - 102 , - 455 , - 424 , - 9 , - 362 , - 331 , - 492 , - 269 , - 238 , - 399 , - 176 , - 145 , - 306 , - 83 , - 52 , - 213 , - 566 , - 535 , - 120 , - 473 , - 442 , - 27 , - 380 , - 349 , - 510 , - 287 , - 256 , - 417 , - 194 , - 163 , - 324 , - 101 , - 70 , - 231 , - 8 , - 553 , - 138 , - 491 , - 460 , - 45 , - 398 , - 367 , - 528 , - 305 , - 274 , - 435 , - 212 , - 181 , - 342 , - 119 , - 88 , - 249 , - 26 , - 571 , - 156 , - 509 , - 478 , - 63 , - 416 , - 385 , - 546 , - 323 , - 292 , - 453 , - 230 , - 199 , - 360 , - 137 , - 106 , - 267 , - 44 , - 13 , - 174 , - 527 , - 496 , - 81 , - 434 , - 403 , - 564 , - 341 , - 310 , - 471 , - 248 , - 217 , - 378 , - 155 , - 124 , - 285 , - 62 , - 31 , - 192 , - 545 , - 514 , - 99 , - 452 , - 421 , - 6 , - 359 , - 328 , - 489 , - 266 , - 235 , - 396 , - 173 , - 142 , - 303 , - 80 , - 49 , - 210 , - 563 , - 532 , - 117 , - 470 , - 439 , - 24 , - 377 , - 346 , - 507 , - 284 , - 253 , - 414 , - 191 , - 160 , - 321 , - 98 , - 67 , - 228 , - 5 , - 550 , - 135 , - 488 , - 457 , - 42 , - 395 , - 364 , - 525 , - 302 , - 271 , - 432 , - 209 , - 178 , - 339 , - 116 , - 85 , - 246 , - 23 , - 568 , - 153 , - 506 , - 475 , - 60 , - 413 , - 382 , - 543 , - 320 , - 289 , - 450 , - 227 , - 196 , - 357 , - 134 , - 103 , - 264 , - 41 , - 10 , - 171 , - 524 , - 493 , - 78 , - 431 , - 400 , - 561 , - 338 , - 307 , - 468 , - 245 , - 214 , - 375 , - 152 , - 121 , - 282 , - 59 , - 28 , - 189 , - 542 , - 511 , - 96 , - 449 , - 418 , - 3 , - 356 , - 325 , - 486 , - 263 , - 232 , - 393 , - 170 , - 139 , - 300 , - 77 , - 46 , - 207 , - 560 , - 529 , - 114 , - 467 , - 436 , - 21 , - 374 , - 343 , - 504 , - 281 , - 250 , - 411 , - 188 , - 157 , - 318 , - 95 , - 64 , - 225 , - 2 , - 547 , - 132 , - 485 , - 454 , - 39 , - 392 , - 361 , - 522 , - 299 , - 268 , - 429 , - 206 , - 175 , - 336 , - 113 , - 82 , - 243 , - 20 , - 565 , - 150 , - 503 , - 472 , - 57 , - 410 , - 379 , - 540 , - 317 , - 286 , - 447 , - 224 , - 193 , - 354 , - 131 , - 100 , - 261 , - 38 , - 7 , - 168 , - 521 , - 490 , - 75 , - 428 , - 397 , - 558 , - 335 , - 304 , - 465 , - 242 , - 211 , - 372 , - 149 , - 118 , - 279 , - 56 , - 25 , - 186 , - 539 , - 508 , - 93 , - 446 , - 415 , - 0 , - 557 , - 78 , - 339 , - 156 , - 121 , - 234 , - 495 , - 312 , - 277 , - 390 , - 59 , - 468 , - 433 , - 546 , - 215 , - 32 , - 589 , - 110 , - 371 , - 188 , - 153 , - 266 , - 527 , - 344 , - 309 , - 422 , - 91 , - 500 , - 465 , - 578 , - 247 , - 64 , - 29 , - 142 , - 403 , - 220 , - 185 , - 298 , - 559 , - 376 , - 341 , - 454 , - 123 , - 532 , - 497 , - 18 , - 279 , - 96 , - 61 , - 174 , - 435 , - 252 , - 217 , - 330 , - 591 , - 408 , - 373 , - 486 , - 155 , - 564 , - 529 , - 50 , - 311 , - 128 , - 93 , - 206 , - 467 , - 284 , - 249 , - 362 , - 31 , - 440 , - 405 , - 518 , - 187 , - 4 , - 561 , - 82 , - 343 , - 160 , - 125 , - 238 , - 499 , - 316 , - 281 , - 394 , - 63 , - 472 , - 437 , - 550 , - 219 , - 36 , - 1 , - 114 , - 375 , - 192 , - 157 , - 270 , - 531 , - 348 , - 313 , - 426 , - 95 , - 504 , - 469 , - 582 , - 251 , - 68 , - 33 , - 146 , - 407 , - 224 , - 189 , - 302 , - 563 , - 380 , - 345 , - 458 , - 127 , - 536 , - 501 , - 22 , - 283 , - 100 , - 65 , - 178 , - 439 , - 256 , - 221 , - 334 , - 3 , - 412 , - 377 , - 490 , - 159 , - 568 , - 533 , - 54 , - 315 , - 132 , - 97 , - 210 , - 471 , - 288 , - 253 , - 366 , - 35 , - 444 , - 409 , - 522 , - 191 , - 8 , - 565 , - 86 , - 347 , - 164 , - 129 , - 242 , - 503 , - 320 , - 285 , - 398 , - 67 , - 476 , - 441 , - 554 , - 223 , - 40 , - 5 , - 118 , - 379 , - 196 , - 161 , - 274 , - 535 , - 352 , - 317 , - 430 , - 99 , - 508 , - 473 , - 586 , - 255 , - 72 , - 37 , - 150 , - 411 , - 228 , - 193 , - 306 , - 567 , - 384 , - 349 , - 462 , - 131 , - 540 , - 505 , - 26 , - 287 , - 104 , - 69 , - 182 , - 443 , - 260 , - 225 , - 338 , - 7 , - 416 , - 381 , - 494 , - 163 , - 572 , - 537 , - 58 , - 319 , - 136 , - 101 , - 214 , - 475 , - 292 , - 257 , - 370 , - 39 , - 448 , - 413 , - 526 , - 195 , - 12 , - 569 , - 90 , - 351 , - 168 , - 133 , - 246 , - 507 , - 324 , - 289 , - 402 , - 71 , - 480 , - 445 , - 558 , - 227 , - 44 , - 9 , - 122 , - 383 , - 200 , - 165 , - 278 , - 539 , - 356 , - 321 , - 434 , - 103 , - 512 , - 477 , - 590 , - 259 , - 76 , - 41 , - 154 , - 415 , - 232 , - 197 , - 310 , - 571 , - 388 , - 353 , - 466 , - 135 , - 544 , - 509 , - 30 , - 291 , - 108 , - 73 , - 186 , - 447 , - 264 , - 229 , - 342 , - 11 , - 420 , - 385 , - 498 , - 167 , - 576 , - 541 , - 62 , - 323 , - 140 , - 105 , - 218 , - 479 , - 296 , - 261 , - 374 , - 43 , - 452 , - 417 , - 530 , - 199 , - 16 , - 573 , - 94 , - 355 , - 172 , - 137 , - 250 , - 511 , - 328 , - 293 , - 406 , - 75 , - 484 , - 449 , - 562 , - 231 , - 48 , - 13 , - 126 , - 387 , - 204 , - 169 , - 282 , - 543 , - 360 , - 325 , - 438 , - 107 , - 516 , - 481 , - 2 , - 263 , - 80 , - 45 , - 158 , - 419 , - 236 , - 201 , - 314 , - 575 , - 392 , - 357 , - 470 , - 139 , - 548 , - 513 , - 34 , - 295 , - 112 , - 77 , - 190 , - 451 , - 268 , - 233 , - 346 , - 15 , - 424 , - 389 , - 502 , - 171 , - 580 , - 545 , - 66 , - 327 , - 144 , - 109 , - 222 , - 483 , - 300 , - 265 , - 378 , - 47 , - 456 , - 421 , - 534 , - 203 , - 20 , - 577 , - 98 , - 359 , - 176 , - 141 , - 254 , - 515 , - 332 , - 297 , - 410 , - 79 , - 488 , - 453 , - 566 , - 235 , - 52 , - 17 , - 130 , - 391 , - 208 , - 173 , - 286 , - 547 , - 364 , - 329 , - 442 , - 111 , - 520 , - 485 , - 6 , - 267 , - 84 , - 49 , - 162 , - 423 , - 240 , - 205 , - 318 , - 579 , - 396 , - 361 , - 474 , - 143 , - 552 , - 517 , - 38 , - 299 , - 116 , - 81 , - 194 , - 455 , - 272 , - 237 , - 350 , - 19 , - 428 , - 393 , - 506 , - 175 , - 584 , - 549 , - 70 , - 331 , - 148 , - 113 , - 226 , - 487 , - 304 , - 269 , - 382 , - 51 , - 460 , - 425 , - 538 , - 207 , - 24 , - 581 , - 102 , - 363 , - 180 , - 145 , - 258 , - 519 , - 336 , - 301 , - 414 , - 83 , - 492 , - 457 , - 570 , - 239 , - 56 , - 21 , - 134 , - 395 , - 212 , - 177 , - 290 , - 551 , - 368 , - 333 , - 446 , - 115 , - 524 , - 489 , - 10 , - 271 , - 88 , - 53 , - 166 , - 427 , - 244 , - 209 , - 322 , - 583 , - 400 , - 365 , - 478 , - 147 , - 556 , - 521 , - 42 , - 303 , - 120 , - 85 , - 198 , - 459 , - 276 , - 241 , - 354 , - 23 , - 432 , - 397 , - 510 , - 179 , - 588 , - 553 , - 74 , - 335 , - 152 , - 117 , - 230 , - 491 , - 308 , - 273 , - 386 , - 55 , - 464 , - 429 , - 542 , - 211 , - 28 , - 585 , - 106 , - 367 , - 184 , - 149 , - 262 , - 523 , - 340 , - 305 , - 418 , - 87 , - 496 , - 461 , - 574 , - 243 , - 60 , - 25 , - 138 , - 399 , - 216 , - 181 , - 294 , - 555 , - 372 , - 337 , - 450 , - 119 , - 528 , - 493 , - 14 , - 275 , - 92 , - 57 , - 170 , - 431 , - 248 , - 213 , - 326 , - 587 , - 404 , - 369 , - 482 , - 151 , - 560 , - 525 , - 46 , - 307 , - 124 , - 89 , - 202 , - 463 , - 280 , - 245 , - 358 , - 27 , - 436 , - 401 , - 514 , - 183 , - 0 , - 113 , - 74 , - 491 , - 148 , - 261 , - 222 , - 31 , - 296 , - 409 , - 370 , - 179 , - 444 , - 557 , - 518 , - 327 , - 592 , - 97 , - 58 , - 475 , - 132 , - 245 , - 206 , - 15 , - 280 , - 393 , - 354 , - 163 , - 428 , - 541 , - 502 , - 311 , - 576 , - 81 , - 42 , - 459 , - 116 , - 229 , - 190 , - 607 , - 264 , - 377 , - 338 , - 147 , - 412 , - 525 , - 486 , - 295 , - 560 , - 65 , - 26 , - 443 , - 100 , - 213 , - 174 , - 591 , - 248 , - 361 , - 322 , - 131 , - 396 , - 509 , - 470 , - 279 , - 544 , - 49 , - 10 , - 427 , - 84 , - 197 , - 158 , - 575 , - 232 , - 345 , - 306 , - 115 , - 380 , - 493 , - 454 , - 263 , - 528 , - 33 , - 602 , - 411 , - 68 , - 181 , - 142 , - 559 , - 216 , - 329 , - 290 , - 99 , - 364 , - 477 , - 438 , - 247 , - 512 , - 17 , - 586 , - 395 , - 52 , - 165 , - 126 , - 543 , - 200 , - 313 , - 274 , - 83 , - 348 , - 461 , - 422 , - 231 , - 496 , - 1 , - 570 , - 379 , - 36 , - 149 , - 110 , - 527 , - 184 , - 297 , - 258 , - 67 , - 332 , - 445 , - 406 , - 215 , - 480 , - 593 , - 554 , - 363 , - 20 , - 133 , - 94 , - 511 , - 168 , - 281 , - 242 , - 51 , - 316 , - 429 , - 390 , - 199 , - 464 , - 577 , - 538 , - 347 , - 4 , - 117 , - 78 , - 495 , - 152 , - 265 , - 226 , - 35 , - 300 , - 413 , - 374 , - 183 , - 448 , - 561 , - 522 , - 331 , - 596 , - 101 , - 62 , - 479 , - 136 , - 249 , - 210 , - 19 , - 284 , - 397 , - 358 , - 167 , - 432 , - 545 , - 506 , - 315 , - 580 , - 85 , - 46 , - 463 , - 120 , - 233 , - 194 , - 3 , - 268 , - 381 , - 342 , - 151 , - 416 , - 529 , - 490 , - 299 , - 564 , - 69 , - 30 , - 447 , - 104 , - 217 , - 178 , - 595 , - 252 , - 365 , - 326 , - 135 , - 400 , - 513 , - 474 , - 283 , - 548 , - 53 , - 14 , - 431 , - 88 , - 201 , - 162 , - 579 , - 236 , - 349 , - 310 , - 119 , - 384 , - 497 , - 458 , - 267 , - 532 , - 37 , - 606 , - 415 , - 72 , - 185 , - 146 , - 563 , - 220 , - 333 , - 294 , - 103 , - 368 , - 481 , - 442 , - 251 , - 516 , - 21 , - 590 , - 399 , - 56 , - 169 , - 130 , - 547 , - 204 , - 317 , - 278 , - 87 , - 352 , - 465 , - 426 , - 235 , - 500 , - 5 , - 574 , - 383 , - 40 , - 153 , - 114 , - 531 , - 188 , - 301 , - 262 , - 71 , - 336 , - 449 , - 410 , - 219 , - 484 , - 597 , - 558 , - 367 , - 24 , - 137 , - 98 , - 515 , - 172 , - 285 , - 246 , - 55 , - 320 , - 433 , - 394 , - 203 , - 468 , - 581 , - 542 , - 351 , - 8 , - 121 , - 82 , - 499 , - 156 , - 269 , - 230 , - 39 , - 304 , - 417 , - 378 , - 187 , - 452 , - 565 , - 526 , - 335 , - 600 , - 105 , - 66 , - 483 , - 140 , - 253 , - 214 , - 23 , - 288 , - 401 , - 362 , - 171 , - 436 , - 549 , - 510 , - 319 , - 584 , - 89 , - 50 , - 467 , - 124 , - 237 , - 198 , - 7 , - 272 , - 385 , - 346 , - 155 , - 420 , - 533 , - 494 , - 303 , - 568 , - 73 , - 34 , - 451 , - 108 , - 221 , - 182 , - 599 , - 256 , - 369 , - 330 , - 139 , - 404 , - 517 , - 478 , - 287 , - 552 , - 57 , - 18 , - 435 , - 92 , - 205 , - 166 , - 583 , - 240 , - 353 , - 314 , - 123 , - 388 , - 501 , - 462 , - 271 , - 536 , - 41 , - 2 , - 419 , - 76 , - 189 , - 150 , - 567 , - 224 , - 337 , - 298 , - 107 , - 372 , - 485 , - 446 , - 255 , - 520 , - 25 , - 594 , - 403 , - 60 , - 173 , - 134 , - 551 , - 208 , - 321 , - 282 , - 91 , - 356 , - 469 , - 430 , - 239 , - 504 , - 9 , - 578 , - 387 , - 44 , - 157 , - 118 , - 535 , - 192 , - 305 , - 266 , - 75 , - 340 , - 453 , - 414 , - 223 , - 488 , - 601 , - 562 , - 371 , - 28 , - 141 , - 102 , - 519 , - 176 , - 289 , - 250 , - 59 , - 324 , - 437 , - 398 , - 207 , - 472 , - 585 , - 546 , - 355 , - 12 , - 125 , - 86 , - 503 , - 160 , - 273 , - 234 , - 43 , - 308 , - 421 , - 382 , - 191 , - 456 , - 569 , - 530 , - 339 , - 604 , - 109 , - 70 , - 487 , - 144 , - 257 , - 218 , - 27 , - 292 , - 405 , - 366 , - 175 , - 440 , - 553 , - 514 , - 323 , - 588 , - 93 , - 54 , - 471 , - 128 , - 241 , - 202 , - 11 , - 276 , - 389 , - 350 , - 159 , - 424 , - 537 , - 498 , - 307 , - 572 , - 77 , - 38 , - 455 , - 112 , - 225 , - 186 , - 603 , - 260 , - 373 , - 334 , - 143 , - 408 , - 521 , - 482 , - 291 , - 556 , - 61 , - 22 , - 439 , - 96 , - 209 , - 170 , - 587 , - 244 , - 357 , - 318 , - 127 , - 392 , - 505 , - 466 , - 275 , - 540 , - 45 , - 6 , - 423 , - 80 , - 193 , - 154 , - 571 , - 228 , - 341 , - 302 , - 111 , - 376 , - 489 , - 450 , - 259 , - 524 , - 29 , - 598 , - 407 , - 64 , - 177 , - 138 , - 555 , - 212 , - 325 , - 286 , - 95 , - 360 , - 473 , - 434 , - 243 , - 508 , - 13 , - 582 , - 391 , - 48 , - 161 , - 122 , - 539 , - 196 , - 309 , - 270 , - 79 , - 344 , - 457 , - 418 , - 227 , - 492 , - 605 , - 566 , - 375 , - 32 , - 145 , - 106 , - 523 , - 180 , - 293 , - 254 , - 63 , - 328 , - 441 , - 402 , - 211 , - 476 , - 589 , - 550 , - 359 , - 16 , - 129 , - 90 , - 507 , - 164 , - 277 , - 238 , - 47 , - 312 , - 425 , - 386 , - 195 , - 460 , - 573 , - 534 , - 343 , - 0 , - 527 , - 586 , - 177 , - 548 , - 451 , - 510 , - 101 , - 472 , - 375 , - 434 , - 25 , - 396 , - 299 , - 358 , - 573 , - 320 , - 223 , - 282 , - 497 , - 244 , - 147 , - 206 , - 421 , - 168 , - 71 , - 130 , - 345 , - 92 , - 619 , - 54 , - 269 , - 16 , - 543 , - 602 , - 193 , - 564 , - 467 , - 526 , - 117 , - 488 , - 391 , - 450 , - 41 , - 412 , - 315 , - 374 , - 589 , - 336 , - 239 , - 298 , - 513 , - 260 , - 163 , - 222 , - 437 , - 184 , - 87 , - 146 , - 361 , - 108 , - 11 , - 70 , - 285 , - 32 , - 559 , - 618 , - 209 , - 580 , - 483 , - 542 , - 133 , - 504 , - 407 , - 466 , - 57 , - 428 , - 331 , - 390 , - 605 , - 352 , - 255 , - 314 , - 529 , - 276 , - 179 , - 238 , - 453 , - 200 , - 103 , - 162 , - 377 , - 124 , - 27 , - 86 , - 301 , - 48 , - 575 , - 10 , - 225 , - 596 , - 499 , - 558 , - 149 , - 520 , - 423 , - 482 , - 73 , - 444 , - 347 , - 406 , - 621 , - 368 , - 271 , - 330 , - 545 , - 292 , - 195 , - 254 , - 469 , - 216 , - 119 , - 178 , - 393 , - 140 , - 43 , - 102 , - 317 , - 64 , - 591 , - 26 , - 241 , - 612 , - 515 , - 574 , - 165 , - 536 , - 439 , - 498 , - 89 , - 460 , - 363 , - 422 , - 13 , - 384 , - 287 , - 346 , - 561 , - 308 , - 211 , - 270 , - 485 , - 232 , - 135 , - 194 , - 409 , - 156 , - 59 , - 118 , - 333 , - 80 , - 607 , - 42 , - 257 , - 4 , - 531 , - 590 , - 181 , - 552 , - 455 , - 514 , - 105 , - 476 , - 379 , - 438 , - 29 , - 400 , - 303 , - 362 , - 577 , - 324 , - 227 , - 286 , - 501 , - 248 , - 151 , - 210 , - 425 , - 172 , - 75 , - 134 , - 349 , - 96 , - 623 , - 58 , - 273 , - 20 , - 547 , - 606 , - 197 , - 568 , - 471 , - 530 , - 121 , - 492 , - 395 , - 454 , - 45 , - 416 , - 319 , - 378 , - 593 , - 340 , - 243 , - 302 , - 517 , - 264 , - 167 , - 226 , - 441 , - 188 , - 91 , - 150 , - 365 , - 112 , - 15 , - 74 , - 289 , - 36 , - 563 , - 622 , - 213 , - 584 , - 487 , - 546 , - 137 , - 508 , - 411 , - 470 , - 61 , - 432 , - 335 , - 394 , - 609 , - 356 , - 259 , - 318 , - 533 , - 280 , - 183 , - 242 , - 457 , - 204 , - 107 , - 166 , - 381 , - 128 , - 31 , - 90 , - 305 , - 52 , - 579 , - 14 , - 229 , - 600 , - 503 , - 562 , - 153 , - 524 , - 427 , - 486 , - 77 , - 448 , - 351 , - 410 , - 1 , - 372 , - 275 , - 334 , - 549 , - 296 , - 199 , - 258 , - 473 , - 220 , - 123 , - 182 , - 397 , - 144 , - 47 , - 106 , - 321 , - 68 , - 595 , - 30 , - 245 , - 616 , - 519 , - 578 , - 169 , - 540 , - 443 , - 502 , - 93 , - 464 , - 367 , - 426 , - 17 , - 388 , - 291 , - 350 , - 565 , - 312 , - 215 , - 274 , - 489 , - 236 , - 139 , - 198 , - 413 , - 160 , - 63 , - 122 , - 337 , - 84 , - 611 , - 46 , - 261 , - 8 , - 535 , - 594 , - 185 , - 556 , - 459 , - 518 , - 109 , - 480 , - 383 , - 442 , - 33 , - 404 , - 307 , - 366 , - 581 , - 328 , - 231 , - 290 , - 505 , - 252 , - 155 , - 214 , - 429 , - 176 , - 79 , - 138 , - 353 , - 100 , - 3 , - 62 , - 277 , - 24 , - 551 , - 610 , - 201 , - 572 , - 475 , - 534 , - 125 , - 496 , - 399 , - 458 , - 49 , - 420 , - 323 , - 382 , - 597 , - 344 , - 247 , - 306 , - 521 , - 268 , - 171 , - 230 , - 445 , - 192 , - 95 , - 154 , - 369 , - 116 , - 19 , - 78 , - 293 , - 40 , - 567 , - 2 , - 217 , - 588 , - 491 , - 550 , - 141 , - 512 , - 415 , - 474 , - 65 , - 436 , - 339 , - 398 , - 613 , - 360 , - 263 , - 322 , - 537 , - 284 , - 187 , - 246 , - 461 , - 208 , - 111 , - 170 , - 385 , - 132 , - 35 , - 94 , - 309 , - 56 , - 583 , - 18 , - 233 , - 604 , - 507 , - 566 , - 157 , - 528 , - 431 , - 490 , - 81 , - 452 , - 355 , - 414 , - 5 , - 376 , - 279 , - 338 , - 553 , - 300 , - 203 , - 262 , - 477 , - 224 , - 127 , - 186 , - 401 , - 148 , - 51 , - 110 , - 325 , - 72 , - 599 , - 34 , - 249 , - 620 , - 523 , - 582 , - 173 , - 544 , - 447 , - 506 , - 97 , - 468 , - 371 , - 430 , - 21 , - 392 , - 295 , - 354 , - 569 , - 316 , - 219 , - 278 , - 493 , - 240 , - 143 , - 202 , - 417 , - 164 , - 67 , - 126 , - 341 , - 88 , - 615 , - 50 , - 265 , - 12 , - 539 , - 598 , - 189 , - 560 , - 463 , - 522 , - 113 , - 484 , - 387 , - 446 , - 37 , - 408 , - 311 , - 370 , - 585 , - 332 , - 235 , - 294 , - 509 , - 256 , - 159 , - 218 , - 433 , - 180 , - 83 , - 142 , - 357 , - 104 , - 7 , - 66 , - 281 , - 28 , - 555 , - 614 , - 205 , - 576 , - 479 , - 538 , - 129 , - 500 , - 403 , - 462 , - 53 , - 424 , - 327 , - 386 , - 601 , - 348 , - 251 , - 310 , - 525 , - 272 , - 175 , - 234 , - 449 , - 196 , - 99 , - 158 , - 373 , - 120 , - 23 , - 82 , - 297 , - 44 , - 571 , - 6 , - 221 , - 592 , - 495 , - 554 , - 145 , - 516 , - 419 , - 478 , - 69 , - 440 , - 343 , - 402 , - 617 , - 364 , - 267 , - 326 , - 541 , - 288 , - 191 , - 250 , - 465 , - 212 , - 115 , - 174 , - 389 , - 136 , - 39 , - 98 , - 313 , - 60 , - 587 , - 22 , - 237 , - 608 , - 511 , - 570 , - 161 , - 532 , - 435 , - 494 , - 85 , - 456 , - 359 , - 418 , - 9 , - 380 , - 283 , - 342 , - 557 , - 304 , - 207 , - 266 , - 481 , - 228 , - 131 , - 190 , - 405 , - 152 , - 55 , - 114 , - 329 , - 76 , - 603 , - 38 , - 253 , - 0 , - 359 , - 238 , - 277 , - 476 , - 195 , - 74 , - 113 , - 312 , - 31 , - 550 , - 589 , - 148 , - 507 , - 386 , - 425 , - 624 , - 343 , - 222 , - 261 , - 460 , - 179 , - 58 , - 97 , - 296 , - 15 , - 534 , - 573 , - 132 , - 491 , - 370 , - 409 , - 608 , - 327 , - 206 , - 245 , - 444 , - 163 , - 42 , - 81 , - 280 , - 639 , - 518 , - 557 , - 116 , - 475 , - 354 , - 393 , - 592 , - 311 , - 190 , - 229 , - 428 , - 147 , - 26 , - 65 , - 264 , - 623 , - 502 , - 541 , - 100 , - 459 , - 338 , - 377 , - 576 , - 295 , - 174 , - 213 , - 412 , - 131 , - 10 , - 49 , - 248 , - 607 , - 486 , - 525 , - 84 , - 443 , - 322 , - 361 , - 560 , - 279 , - 158 , - 197 , - 396 , - 115 , - 634 , - 33 , - 232 , - 591 , - 470 , - 509 , - 68 , - 427 , - 306 , - 345 , - 544 , - 263 , - 142 , - 181 , - 380 , - 99 , - 618 , - 17 , - 216 , - 575 , - 454 , - 493 , - 52 , - 411 , - 290 , - 329 , - 528 , - 247 , - 126 , - 165 , - 364 , - 83 , - 602 , - 1 , - 200 , - 559 , - 438 , - 477 , - 36 , - 395 , - 274 , - 313 , - 512 , - 231 , - 110 , - 149 , - 348 , - 67 , - 586 , - 625 , - 184 , - 543 , - 422 , - 461 , - 20 , - 379 , - 258 , - 297 , - 496 , - 215 , - 94 , - 133 , - 332 , - 51 , - 570 , - 609 , - 168 , - 527 , - 406 , - 445 , - 4 , - 363 , - 242 , - 281 , - 480 , - 199 , - 78 , - 117 , - 316 , - 35 , - 554 , - 593 , - 152 , - 511 , - 390 , - 429 , - 628 , - 347 , - 226 , - 265 , - 464 , - 183 , - 62 , - 101 , - 300 , - 19 , - 538 , - 577 , - 136 , - 495 , - 374 , - 413 , - 612 , - 331 , - 210 , - 249 , - 448 , - 167 , - 46 , - 85 , - 284 , - 3 , - 522 , - 561 , - 120 , - 479 , - 358 , - 397 , - 596 , - 315 , - 194 , - 233 , - 432 , - 151 , - 30 , - 69 , - 268 , - 627 , - 506 , - 545 , - 104 , - 463 , - 342 , - 381 , - 580 , - 299 , - 178 , - 217 , - 416 , - 135 , - 14 , - 53 , - 252 , - 611 , - 490 , - 529 , - 88 , - 447 , - 326 , - 365 , - 564 , - 283 , - 162 , - 201 , - 400 , - 119 , - 638 , - 37 , - 236 , - 595 , - 474 , - 513 , - 72 , - 431 , - 310 , - 349 , - 548 , - 267 , - 146 , - 185 , - 384 , - 103 , - 622 , - 21 , - 220 , - 579 , - 458 , - 497 , - 56 , - 415 , - 294 , - 333 , - 532 , - 251 , - 130 , - 169 , - 368 , - 87 , - 606 , - 5 , - 204 , - 563 , - 442 , - 481 , - 40 , - 399 , - 278 , - 317 , - 516 , - 235 , - 114 , - 153 , - 352 , - 71 , - 590 , - 629 , - 188 , - 547 , - 426 , - 465 , - 24 , - 383 , - 262 , - 301 , - 500 , - 219 , - 98 , - 137 , - 336 , - 55 , - 574 , - 613 , - 172 , - 531 , - 410 , - 449 , - 8 , - 367 , - 246 , - 285 , - 484 , - 203 , - 82 , - 121 , - 320 , - 39 , - 558 , - 597 , - 156 , - 515 , - 394 , - 433 , - 632 , - 351 , - 230 , - 269 , - 468 , - 187 , - 66 , - 105 , - 304 , - 23 , - 542 , - 581 , - 140 , - 499 , - 378 , - 417 , - 616 , - 335 , - 214 , - 253 , - 452 , - 171 , - 50 , - 89 , - 288 , - 7 , - 526 , - 565 , - 124 , - 483 , - 362 , - 401 , - 600 , - 319 , - 198 , - 237 , - 436 , - 155 , - 34 , - 73 , - 272 , - 631 , - 510 , - 549 , - 108 , - 467 , - 346 , - 385 , - 584 , - 303 , - 182 , - 221 , - 420 , - 139 , - 18 , - 57 , - 256 , - 615 , - 494 , - 533 , - 92 , - 451 , - 330 , - 369 , - 568 , - 287 , - 166 , - 205 , - 404 , - 123 , - 2 , - 41 , - 240 , - 599 , - 478 , - 517 , - 76 , - 435 , - 314 , - 353 , - 552 , - 271 , - 150 , - 189 , - 388 , - 107 , - 626 , - 25 , - 224 , - 583 , - 462 , - 501 , - 60 , - 419 , - 298 , - 337 , - 536 , - 255 , - 134 , - 173 , - 372 , - 91 , - 610 , - 9 , - 208 , - 567 , - 446 , - 485 , - 44 , - 403 , - 282 , - 321 , - 520 , - 239 , - 118 , - 157 , - 356 , - 75 , - 594 , - 633 , - 192 , - 551 , - 430 , - 469 , - 28 , - 387 , - 266 , - 305 , - 504 , - 223 , - 102 , - 141 , - 340 , - 59 , - 578 , - 617 , - 176 , - 535 , - 414 , - 453 , - 12 , - 371 , - 250 , - 289 , - 488 , - 207 , - 86 , - 125 , - 324 , - 43 , - 562 , - 601 , - 160 , - 519 , - 398 , - 437 , - 636 , - 355 , - 234 , - 273 , - 472 , - 191 , - 70 , - 109 , - 308 , - 27 , - 546 , - 585 , - 144 , - 503 , - 382 , - 421 , - 620 , - 339 , - 218 , - 257 , - 456 , - 175 , - 54 , - 93 , - 292 , - 11 , - 530 , - 569 , - 128 , - 487 , - 366 , - 405 , - 604 , - 323 , - 202 , - 241 , - 440 , - 159 , - 38 , - 77 , - 276 , - 635 , - 514 , - 553 , - 112 , - 471 , - 350 , - 389 , - 588 , - 307 , - 186 , - 225 , - 424 , - 143 , - 22 , - 61 , - 260 , - 619 , - 498 , - 537 , - 96 , - 455 , - 334 , - 373 , - 572 , - 291 , - 170 , - 209 , - 408 , - 127 , - 6 , - 45 , - 244 , - 603 , - 482 , - 521 , - 80 , - 439 , - 318 , - 357 , - 556 , - 275 , - 154 , - 193 , - 392 , - 111 , - 630 , - 29 , - 228 , - 587 , - 466 , - 505 , - 64 , - 423 , - 302 , - 341 , - 540 , - 259 , - 138 , - 177 , - 376 , - 95 , - 614 , - 13 , - 212 , - 571 , - 450 , - 489 , - 48 , - 407 , - 286 , - 325 , - 524 , - 243 , - 122 , - 161 , - 360 , - 79 , - 598 , - 637 , - 196 , - 555 , - 434 , - 473 , - 32 , - 391 , - 270 , - 309 , - 508 , - 227 , - 106 , - 145 , - 344 , - 63 , - 582 , - 621 , - 180 , - 539 , - 418 , - 457 , - 16 , - 375 , - 254 , - 293 , - 492 , - 211 , - 90 , - 129 , - 328 , - 47 , - 566 , - 605 , - 164 , - 523 , - 402 , - 441 , - 0 , - 535 , - 250 , - 457 , - 500 , - 379 , - 94 , - 301 , - 344 , - 223 , - 594 , - 145 , - 188 , - 67 , - 438 , - 645 , - 32 , - 567 , - 282 , - 489 , - 532 , - 411 , - 126 , - 333 , - 376 , - 255 , - 626 , - 177 , - 220 , - 99 , - 470 , - 21 , - 64 , - 599 , - 314 , - 521 , - 564 , - 443 , - 158 , - 365 , - 408 , - 287 , - 2 , - 209 , - 252 , - 131 , - 502 , - 53 , - 96 , - 631 , - 346 , - 553 , - 596 , - 475 , - 190 , - 397 , - 440 , - 319 , - 34 , - 241 , - 284 , - 163 , - 534 , - 85 , - 128 , - 7 , - 378 , - 585 , - 628 , - 507 , - 222 , - 429 , - 472 , - 351 , - 66 , - 273 , - 316 , - 195 , - 566 , - 117 , - 160 , - 39 , - 410 , - 617 , - 4 , - 539 , - 254 , - 461 , - 504 , - 383 , - 98 , - 305 , - 348 , - 227 , - 598 , - 149 , - 192 , - 71 , - 442 , - 649 , - 36 , - 571 , - 286 , - 493 , - 536 , - 415 , - 130 , - 337 , - 380 , - 259 , - 630 , - 181 , - 224 , - 103 , - 474 , - 25 , - 68 , - 603 , - 318 , - 525 , - 568 , - 447 , - 162 , - 369 , - 412 , - 291 , - 6 , - 213 , - 256 , - 135 , - 506 , - 57 , - 100 , - 635 , - 350 , - 557 , - 600 , - 479 , - 194 , - 401 , - 444 , - 323 , - 38 , - 245 , - 288 , - 167 , - 538 , - 89 , - 132 , - 11 , - 382 , - 589 , - 632 , - 511 , - 226 , - 433 , - 476 , - 355 , - 70 , - 277 , - 320 , - 199 , - 570 , - 121 , - 164 , - 43 , - 414 , - 621 , - 8 , - 543 , - 258 , - 465 , - 508 , - 387 , - 102 , - 309 , - 352 , - 231 , - 602 , - 153 , - 196 , - 75 , - 446 , - 653 , - 40 , - 575 , - 290 , - 497 , - 540 , - 419 , - 134 , - 341 , - 384 , - 263 , - 634 , - 185 , - 228 , - 107 , - 478 , - 29 , - 72 , - 607 , - 322 , - 529 , - 572 , - 451 , - 166 , - 373 , - 416 , - 295 , - 10 , - 217 , - 260 , - 139 , - 510 , - 61 , - 104 , - 639 , - 354 , - 561 , - 604 , - 483 , - 198 , - 405 , - 448 , - 327 , - 42 , - 249 , - 292 , - 171 , - 542 , - 93 , - 136 , - 15 , - 386 , - 593 , - 636 , - 515 , - 230 , - 437 , - 480 , - 359 , - 74 , - 281 , - 324 , - 203 , - 574 , - 125 , - 168 , - 47 , - 418 , - 625 , - 12 , - 547 , - 262 , - 469 , - 512 , - 391 , - 106 , - 313 , - 356 , - 235 , - 606 , - 157 , - 200 , - 79 , - 450 , - 1 , - 44 , - 579 , - 294 , - 501 , - 544 , - 423 , - 138 , - 345 , - 388 , - 267 , - 638 , - 189 , - 232 , - 111 , - 482 , - 33 , - 76 , - 611 , - 326 , - 533 , - 576 , - 455 , - 170 , - 377 , - 420 , - 299 , - 14 , - 221 , - 264 , - 143 , - 514 , - 65 , - 108 , - 643 , - 358 , - 565 , - 608 , - 487 , - 202 , - 409 , - 452 , - 331 , - 46 , - 253 , - 296 , - 175 , - 546 , - 97 , - 140 , - 19 , - 390 , - 597 , - 640 , - 519 , - 234 , - 441 , - 484 , - 363 , - 78 , - 285 , - 328 , - 207 , - 578 , - 129 , - 172 , - 51 , - 422 , - 629 , - 16 , - 551 , - 266 , - 473 , - 516 , - 395 , - 110 , - 317 , - 360 , - 239 , - 610 , - 161 , - 204 , - 83 , - 454 , - 5 , - 48 , - 583 , - 298 , - 505 , - 548 , - 427 , - 142 , - 349 , - 392 , - 271 , - 642 , - 193 , - 236 , - 115 , - 486 , - 37 , - 80 , - 615 , - 330 , - 537 , - 580 , - 459 , - 174 , - 381 , - 424 , - 303 , - 18 , - 225 , - 268 , - 147 , - 518 , - 69 , - 112 , - 647 , - 362 , - 569 , - 612 , - 491 , - 206 , - 413 , - 456 , - 335 , - 50 , - 257 , - 300 , - 179 , - 550 , - 101 , - 144 , - 23 , - 394 , - 601 , - 644 , - 523 , - 238 , - 445 , - 488 , - 367 , - 82 , - 289 , - 332 , - 211 , - 582 , - 133 , - 176 , - 55 , - 426 , - 633 , - 20 , - 555 , - 270 , - 477 , - 520 , - 399 , - 114 , - 321 , - 364 , - 243 , - 614 , - 165 , - 208 , - 87 , - 458 , - 9 , - 52 , - 587 , - 302 , - 509 , - 552 , - 431 , - 146 , - 353 , - 396 , - 275 , - 646 , - 197 , - 240 , - 119 , - 490 , - 41 , - 84 , - 619 , - 334 , - 541 , - 584 , - 463 , - 178 , - 385 , - 428 , - 307 , - 22 , - 229 , - 272 , - 151 , - 522 , - 73 , - 116 , - 651 , - 366 , - 573 , - 616 , - 495 , - 210 , - 417 , - 460 , - 339 , - 54 , - 261 , - 304 , - 183 , - 554 , - 105 , - 148 , - 27 , - 398 , - 605 , - 648 , - 527 , - 242 , - 449 , - 492 , - 371 , - 86 , - 293 , - 336 , - 215 , - 586 , - 137 , - 180 , - 59 , - 430 , - 637 , - 24 , - 559 , - 274 , - 481 , - 524 , - 403 , - 118 , - 325 , - 368 , - 247 , - 618 , - 169 , - 212 , - 91 , - 462 , - 13 , - 56 , - 591 , - 306 , - 513 , - 556 , - 435 , - 150 , - 357 , - 400 , - 279 , - 650 , - 201 , - 244 , - 123 , - 494 , - 45 , - 88 , - 623 , - 338 , - 545 , - 588 , - 467 , - 182 , - 389 , - 432 , - 311 , - 26 , - 233 , - 276 , - 155 , - 526 , - 77 , - 120 , - 655 , - 370 , - 577 , - 620 , - 499 , - 214 , - 421 , - 464 , - 343 , - 58 , - 265 , - 308 , - 187 , - 558 , - 109 , - 152 , - 31 , - 402 , - 609 , - 652 , - 531 , - 246 , - 453 , - 496 , - 375 , - 90 , - 297 , - 340 , - 219 , - 590 , - 141 , - 184 , - 63 , - 434 , - 641 , - 28 , - 563 , - 278 , - 485 , - 528 , - 407 , - 122 , - 329 , - 372 , - 251 , - 622 , - 173 , - 216 , - 95 , - 466 , - 17 , - 60 , - 595 , - 310 , - 517 , - 560 , - 439 , - 154 , - 361 , - 404 , - 283 , - 654 , - 205 , - 248 , - 127 , - 498 , - 49 , - 92 , - 627 , - 342 , - 549 , - 592 , - 471 , - 186 , - 393 , - 436 , - 315 , - 30 , - 237 , - 280 , - 159 , - 530 , - 81 , - 124 , - 3 , - 374 , - 581 , - 624 , - 503 , - 218 , - 425 , - 468 , - 347 , - 62 , - 269 , - 312 , - 191 , - 562 , - 113 , - 156 , - 35 , - 406 , - 613 , - 0 , - 463 , - 86 , - 213 , - 172 , - 635 , - 258 , - 385 , - 344 , - 135 , - 430 , - 557 , - 516 , - 307 , - 602 , - 57 , - 16 , - 479 , - 102 , - 229 , - 188 , - 651 , - 274 , - 401 , - 360 , - 151 , - 446 , - 573 , - 532 , - 323 , - 618 , - 73 , - 32 , - 495 , - 118 , - 245 , - 204 , - 667 , - 290 , - 417 , - 376 , - 167 , - 462 , - 589 , - 548 , - 339 , - 634 , - 89 , - 48 , - 511 , - 134 , - 261 , - 220 , - 11 , - 306 , - 433 , - 392 , - 183 , - 478 , - 605 , - 564 , - 355 , - 650 , - 105 , - 64 , - 527 , - 150 , - 277 , - 236 , - 27 , - 322 , - 449 , - 408 , - 199 , - 494 , - 621 , - 580 , - 371 , - 666 , - 121 , - 80 , - 543 , - 166 , - 293 , - 252 , - 43 , - 338 , - 465 , - 424 , - 215 , - 510 , - 637 , - 596 , - 387 , - 10 , - 137 , - 96 , - 559 , - 182 , - 309 , - 268 , - 59 , - 354 , - 481 , - 440 , - 231 , - 526 , - 653 , - 612 , - 403 , - 26 , - 153 , - 112 , - 575 , - 198 , - 325 , - 284 , - 75 , - 370 , - 497 , - 456 , - 247 , - 542 , - 669 , - 628 , - 419 , - 42 , - 169 , - 128 , - 591 , - 214 , - 341 , - 300 , - 91 , - 386 , - 513 , - 472 , - 263 , - 558 , - 13 , - 644 , - 435 , - 58 , - 185 , - 144 , - 607 , - 230 , - 357 , - 316 , - 107 , - 402 , - 529 , - 488 , - 279 , - 574 , - 29 , - 660 , - 451 , - 74 , - 201 , - 160 , - 623 , - 246 , - 373 , - 332 , - 123 , - 418 , - 545 , - 504 , - 295 , - 590 , - 45 , - 4 , - 467 , - 90 , - 217 , - 176 , - 639 , - 262 , - 389 , - 348 , - 139 , - 434 , - 561 , - 520 , - 311 , - 606 , - 61 , - 20 , - 483 , - 106 , - 233 , - 192 , - 655 , - 278 , - 405 , - 364 , - 155 , - 450 , - 577 , - 536 , - 327 , - 622 , - 77 , - 36 , - 499 , - 122 , - 249 , - 208 , - 671 , - 294 , - 421 , - 380 , - 171 , - 466 , - 593 , - 552 , - 343 , - 638 , - 93 , - 52 , - 515 , - 138 , - 265 , - 224 , - 15 , - 310 , - 437 , - 396 , - 187 , - 482 , - 609 , - 568 , - 359 , - 654 , - 109 , - 68 , - 531 , - 154 , - 281 , - 240 , - 31 , - 326 , - 453 , - 412 , - 203 , - 498 , - 625 , - 584 , - 375 , - 670 , - 125 , - 84 , - 547 , - 170 , - 297 , - 256 , - 47 , - 342 , - 469 , - 428 , - 219 , - 514 , - 641 , - 600 , - 391 , - 14 , - 141 , - 100 , - 563 , - 186 , - 313 , - 272 , - 63 , - 358 , - 485 , - 444 , - 235 , - 530 , - 657 , - 616 , - 407 , - 30 , - 157 , - 116 , - 579 , - 202 , - 329 , - 288 , - 79 , - 374 , - 501 , - 460 , - 251 , - 546 , - 1 , - 632 , - 423 , - 46 , - 173 , - 132 , - 595 , - 218 , - 345 , - 304 , - 95 , - 390 , - 517 , - 476 , - 267 , - 562 , - 17 , - 648 , - 439 , - 62 , - 189 , - 148 , - 611 , - 234 , - 361 , - 320 , - 111 , - 406 , - 533 , - 492 , - 283 , - 578 , - 33 , - 664 , - 455 , - 78 , - 205 , - 164 , - 627 , - 250 , - 377 , - 336 , - 127 , - 422 , - 549 , - 508 , - 299 , - 594 , - 49 , - 8 , - 471 , - 94 , - 221 , - 180 , - 643 , - 266 , - 393 , - 352 , - 143 , - 438 , - 565 , - 524 , - 315 , - 610 , - 65 , - 24 , - 487 , - 110 , - 237 , - 196 , - 659 , - 282 , - 409 , - 368 , - 159 , - 454 , - 581 , - 540 , - 331 , - 626 , - 81 , - 40 , - 503 , - 126 , - 253 , - 212 , - 3 , - 298 , - 425 , - 384 , - 175 , - 470 , - 597 , - 556 , - 347 , - 642 , - 97 , - 56 , - 519 , - 142 , - 269 , - 228 , - 19 , - 314 , - 441 , - 400 , - 191 , - 486 , - 613 , - 572 , - 363 , - 658 , - 113 , - 72 , - 535 , - 158 , - 285 , - 244 , - 35 , - 330 , - 457 , - 416 , - 207 , - 502 , - 629 , - 588 , - 379 , - 2 , - 129 , - 88 , - 551 , - 174 , - 301 , - 260 , - 51 , - 346 , - 473 , - 432 , - 223 , - 518 , - 645 , - 604 , - 395 , - 18 , - 145 , - 104 , - 567 , - 190 , - 317 , - 276 , - 67 , - 362 , - 489 , - 448 , - 239 , - 534 , - 661 , - 620 , - 411 , - 34 , - 161 , - 120 , - 583 , - 206 , - 333 , - 292 , - 83 , - 378 , - 505 , - 464 , - 255 , - 550 , - 5 , - 636 , - 427 , - 50 , - 177 , - 136 , - 599 , - 222 , - 349 , - 308 , - 99 , - 394 , - 521 , - 480 , - 271 , - 566 , - 21 , - 652 , - 443 , - 66 , - 193 , - 152 , - 615 , - 238 , - 365 , - 324 , - 115 , - 410 , - 537 , - 496 , - 287 , - 582 , - 37 , - 668 , - 459 , - 82 , - 209 , - 168 , - 631 , - 254 , - 381 , - 340 , - 131 , - 426 , - 553 , - 512 , - 303 , - 598 , - 53 , - 12 , - 475 , - 98 , - 225 , - 184 , - 647 , - 270 , - 397 , - 356 , - 147 , - 442 , - 569 , - 528 , - 319 , - 614 , - 69 , - 28 , - 491 , - 114 , - 241 , - 200 , - 663 , - 286 , - 413 , - 372 , - 163 , - 458 , - 585 , - 544 , - 335 , - 630 , - 85 , - 44 , - 507 , - 130 , - 257 , - 216 , - 7 , - 302 , - 429 , - 388 , - 179 , - 474 , - 601 , - 560 , - 351 , - 646 , - 101 , - 60 , - 523 , - 146 , - 273 , - 232 , - 23 , - 318 , - 445 , - 404 , - 195 , - 490 , - 617 , - 576 , - 367 , - 662 , - 117 , - 76 , - 539 , - 162 , - 289 , - 248 , - 39 , - 334 , - 461 , - 420 , - 211 , - 506 , - 633 , - 592 , - 383 , - 6 , - 133 , - 92 , - 555 , - 178 , - 305 , - 264 , - 55 , - 350 , - 477 , - 436 , - 227 , - 522 , - 649 , - 608 , - 399 , - 22 , - 149 , - 108 , - 571 , - 194 , - 321 , - 280 , - 71 , - 366 , - 493 , - 452 , - 243 , - 538 , - 665 , - 624 , - 415 , - 38 , - 165 , - 124 , - 587 , - 210 , - 337 , - 296 , - 87 , - 382 , - 509 , - 468 , - 259 , - 554 , - 9 , - 640 , - 431 , - 54 , - 181 , - 140 , - 603 , - 226 , - 353 , - 312 , - 103 , - 398 , - 525 , - 484 , - 275 , - 570 , - 25 , - 656 , - 447 , - 70 , - 197 , - 156 , - 619 , - 242 , - 369 , - 328 , - 119 , - 414 , - 541 , - 500 , - 291 , - 586 , - 41 , - 0 , - 127 , - 82 , - 553 , - 164 , - 291 , - 246 , - 29 , - 328 , - 455 , - 410 , - 193 , - 492 , - 619 , - 574 , - 357 , - 656 , - 95 , - 50 , - 521 , - 132 , - 259 , - 214 , - 685 , - 296 , - 423 , - 378 , - 161 , - 460 , - 587 , - 542 , - 325 , - 624 , - 63 , - 18 , - 489 , - 100 , - 227 , - 182 , - 653 , - 264 , - 391 , - 346 , - 129 , - 428 , - 555 , - 510 , - 293 , - 592 , - 31 , - 674 , - 457 , - 68 , - 195 , - 150 , - 621 , - 232 , - 359 , - 314 , - 97 , - 396 , - 523 , - 478 , - 261 , - 560 , - 687 , - 642 , - 425 , - 36 , - 163 , - 118 , - 589 , - 200 , - 327 , - 282 , - 65 , - 364 , - 491 , - 446 , - 229 , - 528 , - 655 , - 610 , - 393 , - 4 , - 131 , - 86 , - 557 , - 168 , - 295 , - 250 , - 33 , - 332 , - 459 , - 414 , - 197 , - 496 , - 623 , - 578 , - 361 , - 660 , - 99 , - 54 , - 525 , - 136 , - 263 , - 218 , - 1 , - 300 , - 427 , - 382 , - 165 , - 464 , - 591 , - 546 , - 329 , - 628 , - 67 , - 22 , - 493 , - 104 , - 231 , - 186 , - 657 , - 268 , - 395 , - 350 , - 133 , - 432 , - 559 , - 514 , - 297 , - 596 , - 35 , - 678 , - 461 , - 72 , - 199 , - 154 , - 625 , - 236 , - 363 , - 318 , - 101 , - 400 , - 527 , - 482 , - 265 , - 564 , - 3 , - 646 , - 429 , - 40 , - 167 , - 122 , - 593 , - 204 , - 331 , - 286 , - 69 , - 368 , - 495 , - 450 , - 233 , - 532 , - 659 , - 614 , - 397 , - 8 , - 135 , - 90 , - 561 , - 172 , - 299 , - 254 , - 37 , - 336 , - 463 , - 418 , - 201 , - 500 , - 627 , - 582 , - 365 , - 664 , - 103 , - 58 , - 529 , - 140 , - 267 , - 222 , - 5 , - 304 , - 431 , - 386 , - 169 , - 468 , - 595 , - 550 , - 333 , - 632 , - 71 , - 26 , - 497 , - 108 , - 235 , - 190 , - 661 , - 272 , - 399 , - 354 , - 137 , - 436 , - 563 , - 518 , - 301 , - 600 , - 39 , - 682 , - 465 , - 76 , - 203 , - 158 , - 629 , - 240 , - 367 , - 322 , - 105 , - 404 , - 531 , - 486 , - 269 , - 568 , - 7 , - 650 , - 433 , - 44 , - 171 , - 126 , - 597 , - 208 , - 335 , - 290 , - 73 , - 372 , - 499 , - 454 , - 237 , - 536 , - 663 , - 618 , - 401 , - 12 , - 139 , - 94 , - 565 , - 176 , - 303 , - 258 , - 41 , - 340 , - 467 , - 422 , - 205 , - 504 , - 631 , - 586 , - 369 , - 668 , - 107 , - 62 , - 533 , - 144 , - 271 , - 226 , - 9 , - 308 , - 435 , - 390 , - 173 , - 472 , - 599 , - 554 , - 337 , - 636 , - 75 , - 30 , - 501 , - 112 , - 239 , - 194 , - 665 , - 276 , - 403 , - 358 , - 141 , - 440 , - 567 , - 522 , - 305 , - 604 , - 43 , - 686 , - 469 , - 80 , - 207 , - 162 , - 633 , - 244 , - 371 , - 326 , - 109 , - 408 , - 535 , - 490 , - 273 , - 572 , - 11 , - 654 , - 437 , - 48 , - 175 , - 130 , - 601 , - 212 , - 339 , - 294 , - 77 , - 376 , - 503 , - 458 , - 241 , - 540 , - 667 , - 622 , - 405 , - 16 , - 143 , - 98 , - 569 , - 180 , - 307 , - 262 , - 45 , - 344 , - 471 , - 426 , - 209 , - 508 , - 635 , - 590 , - 373 , - 672 , - 111 , - 66 , - 537 , - 148 , - 275 , - 230 , - 13 , - 312 , - 439 , - 394 , - 177 , - 476 , - 603 , - 558 , - 341 , - 640 , - 79 , - 34 , - 505 , - 116 , - 243 , - 198 , - 669 , - 280 , - 407 , - 362 , - 145 , - 444 , - 571 , - 526 , - 309 , - 608 , - 47 , - 2 , - 473 , - 84 , - 211 , - 166 , - 637 , - 248 , - 375 , - 330 , - 113 , - 412 , - 539 , - 494 , - 277 , - 576 , - 15 , - 658 , - 441 , - 52 , - 179 , - 134 , - 605 , - 216 , - 343 , - 298 , - 81 , - 380 , - 507 , - 462 , - 245 , - 544 , - 671 , - 626 , - 409 , - 20 , - 147 , - 102 , - 573 , - 184 , - 311 , - 266 , - 49 , - 348 , - 475 , - 430 , - 213 , - 512 , - 639 , - 594 , - 377 , - 676 , - 115 , - 70 , - 541 , - 152 , - 279 , - 234 , - 17 , - 316 , - 443 , - 398 , - 181 , - 480 , - 607 , - 562 , - 345 , - 644 , - 83 , - 38 , - 509 , - 120 , - 247 , - 202 , - 673 , - 284 , - 411 , - 366 , - 149 , - 448 , - 575 , - 530 , - 313 , - 612 , - 51 , - 6 , - 477 , - 88 , - 215 , - 170 , - 641 , - 252 , - 379 , - 334 , - 117 , - 416 , - 543 , - 498 , - 281 , - 580 , - 19 , - 662 , - 445 , - 56 , - 183 , - 138 , - 609 , - 220 , - 347 , - 302 , - 85 , - 384 , - 511 , - 466 , - 249 , - 548 , - 675 , - 630 , - 413 , - 24 , - 151 , - 106 , - 577 , - 188 , - 315 , - 270 , - 53 , - 352 , - 479 , - 434 , - 217 , - 516 , - 643 , - 598 , - 381 , - 680 , - 119 , - 74 , - 545 , - 156 , - 283 , - 238 , - 21 , - 320 , - 447 , - 402 , - 185 , - 484 , - 611 , - 566 , - 349 , - 648 , - 87 , - 42 , - 513 , - 124 , - 251 , - 206 , - 677 , - 288 , - 415 , - 370 , - 153 , - 452 , - 579 , - 534 , - 317 , - 616 , - 55 , - 10 , - 481 , - 92 , - 219 , - 174 , - 645 , - 256 , - 383 , - 338 , - 121 , - 420 , - 547 , - 502 , - 285 , - 584 , - 23 , - 666 , - 449 , - 60 , - 187 , - 142 , - 613 , - 224 , - 351 , - 306 , - 89 , - 388 , - 515 , - 470 , - 253 , - 552 , - 679 , - 634 , - 417 , - 28 , - 155 , - 110 , - 581 , - 192 , - 319 , - 274 , - 57 , - 356 , - 483 , - 438 , - 221 , - 520 , - 647 , - 602 , - 385 , - 684 , - 123 , - 78 , - 549 , - 160 , - 287 , - 242 , - 25 , - 324 , - 451 , - 406 , - 189 , - 488 , - 615 , - 570 , - 353 , - 652 , - 91 , - 46 , - 517 , - 128 , - 255 , - 210 , - 681 , - 292 , - 419 , - 374 , - 157 , - 456 , - 583 , - 538 , - 321 , - 620 , - 59 , - 14 , - 485 , - 96 , - 223 , - 178 , - 649 , - 260 , - 387 , - 342 , - 125 , - 424 , - 551 , - 506 , - 289 , - 588 , - 27 , - 670 , - 453 , - 64 , - 191 , - 146 , - 617 , - 228 , - 355 , - 310 , - 93 , - 392 , - 519 , - 474 , - 257 , - 556 , - 683 , - 638 , - 421 , - 32 , - 159 , - 114 , - 585 , - 196 , - 323 , - 278 , - 61 , - 360 , - 487 , - 442 , - 225 , - 524 , - 651 , - 606 , - 389 , - 0 , - 463 , - 662 , - 597 , - 268 , - 379 , - 226 , - 513 , - 536 , - 295 , - 494 , - 429 , - 100 , - 211 , - 58 , - 345 , - 368 , - 127 , - 326 , - 261 , - 636 , - 43 , - 594 , - 177 , - 200 , - 663 , - 158 , - 93 , - 468 , - 579 , - 426 , - 9 , - 32 , - 495 , - 694 , - 629 , - 300 , - 411 , - 258 , - 545 , - 568 , - 327 , - 526 , - 461 , - 132 , - 243 , - 90 , - 377 , - 400 , - 159 , - 358 , - 293 , - 668 , - 75 , - 626 , - 209 , - 232 , - 695 , - 190 , - 125 , - 500 , - 611 , - 458 , - 41 , - 64 , - 527 , - 22 , - 661 , - 332 , - 443 , - 290 , - 577 , - 600 , - 359 , - 558 , - 493 , - 164 , - 275 , - 122 , - 409 , - 432 , - 191 , - 390 , - 325 , - 700 , - 107 , - 658 , - 241 , - 264 , - 23 , - 222 , - 157 , - 532 , - 643 , - 490 , - 73 , - 96 , - 559 , - 54 , - 693 , - 364 , - 475 , - 322 , - 609 , - 632 , - 391 , - 590 , - 525 , - 196 , - 307 , - 154 , - 441 , - 464 , - 223 , - 422 , - 357 , - 28 , - 139 , - 690 , - 273 , - 296 , - 55 , - 254 , - 189 , - 564 , - 675 , - 522 , - 105 , - 128 , - 591 , - 86 , - 21 , - 396 , - 507 , - 354 , - 641 , - 664 , - 423 , - 622 , - 557 , - 228 , - 339 , - 186 , - 473 , - 496 , - 255 , - 454 , - 389 , - 60 , - 171 , - 18 , - 305 , - 328 , - 87 , - 286 , - 221 , - 596 , - 3 , - 554 , - 137 , - 160 , - 623 , - 118 , - 53 , - 428 , - 539 , - 386 , - 673 , - 696 , - 455 , - 654 , - 589 , - 260 , - 371 , - 218 , - 505 , - 528 , - 287 , - 486 , - 421 , - 92 , - 203 , - 50 , - 337 , - 360 , - 119 , - 318 , - 253 , - 628 , - 35 , - 586 , - 169 , - 192 , - 655 , - 150 , - 85 , - 460 , - 571 , - 418 , - 1 , - 24 , - 487 , - 686 , - 621 , - 292 , - 403 , - 250 , - 537 , - 560 , - 319 , - 518 , - 453 , - 124 , - 235 , - 82 , - 369 , - 392 , - 151 , - 350 , - 285 , - 660 , - 67 , - 618 , - 201 , - 224 , - 687 , - 182 , - 117 , - 492 , - 603 , - 450 , - 33 , - 56 , - 519 , - 14 , - 653 , - 324 , - 435 , - 282 , - 569 , - 592 , - 351 , - 550 , - 485 , - 156 , - 267 , - 114 , - 401 , - 424 , - 183 , - 382 , - 317 , - 692 , - 99 , - 650 , - 233 , - 256 , - 15 , - 214 , - 149 , - 524 , - 635 , - 482 , - 65 , - 88 , - 551 , - 46 , - 685 , - 356 , - 467 , - 314 , - 601 , - 624 , - 383 , - 582 , - 517 , - 188 , - 299 , - 146 , - 433 , - 456 , - 215 , - 414 , - 349 , - 20 , - 131 , - 682 , - 265 , - 288 , - 47 , - 246 , - 181 , - 556 , - 667 , - 514 , - 97 , - 120 , - 583 , - 78 , - 13 , - 388 , - 499 , - 346 , - 633 , - 656 , - 415 , - 614 , - 549 , - 220 , - 331 , - 178 , - 465 , - 488 , - 247 , - 446 , - 381 , - 52 , - 163 , - 10 , - 297 , - 320 , - 79 , - 278 , - 213 , - 588 , - 699 , - 546 , - 129 , - 152 , - 615 , - 110 , - 45 , - 420 , - 531 , - 378 , - 665 , - 688 , - 447 , - 646 , - 581 , - 252 , - 363 , - 210 , - 497 , - 520 , - 279 , - 478 , - 413 , - 84 , - 195 , - 42 , - 329 , - 352 , - 111 , - 310 , - 245 , - 620 , - 27 , - 578 , - 161 , - 184 , - 647 , - 142 , - 77 , - 452 , - 563 , - 410 , - 697 , - 16 , - 479 , - 678 , - 613 , - 284 , - 395 , - 242 , - 529 , - 552 , - 311 , - 510 , - 445 , - 116 , - 227 , - 74 , - 361 , - 384 , - 143 , - 342 , - 277 , - 652 , - 59 , - 610 , - 193 , - 216 , - 679 , - 174 , - 109 , - 484 , - 595 , - 442 , - 25 , - 48 , - 511 , - 6 , - 645 , - 316 , - 427 , - 274 , - 561 , - 584 , - 343 , - 542 , - 477 , - 148 , - 259 , - 106 , - 393 , - 416 , - 175 , - 374 , - 309 , - 684 , - 91 , - 642 , - 225 , - 248 , - 7 , - 206 , - 141 , - 516 , - 627 , - 474 , - 57 , - 80 , - 543 , - 38 , - 677 , - 348 , - 459 , - 306 , - 593 , - 616 , - 375 , - 574 , - 509 , - 180 , - 291 , - 138 , - 425 , - 448 , - 207 , - 406 , - 341 , - 12 , - 123 , - 674 , - 257 , - 280 , - 39 , - 238 , - 173 , - 548 , - 659 , - 506 , - 89 , - 112 , - 575 , - 70 , - 5 , - 380 , - 491 , - 338 , - 625 , - 648 , - 407 , - 606 , - 541 , - 212 , - 323 , - 170 , - 457 , - 480 , - 239 , - 438 , - 373 , - 44 , - 155 , - 2 , - 289 , - 312 , - 71 , - 270 , - 205 , - 580 , - 691 , - 538 , - 121 , - 144 , - 607 , - 102 , - 37 , - 412 , - 523 , - 370 , - 657 , - 680 , - 439 , - 638 , - 573 , - 244 , - 355 , - 202 , - 489 , - 512 , - 271 , - 470 , - 405 , - 76 , - 187 , - 34 , - 321 , - 344 , - 103 , - 302 , - 237 , - 612 , - 19 , - 570 , - 153 , - 176 , - 639 , - 134 , - 69 , - 444 , - 555 , - 402 , - 689 , - 8 , - 471 , - 670 , - 605 , - 276 , - 387 , - 234 , - 521 , - 544 , - 303 , - 502 , - 437 , - 108 , - 219 , - 66 , - 353 , - 376 , - 135 , - 334 , - 269 , - 644 , - 51 , - 602 , - 185 , - 208 , - 671 , - 166 , - 101 , - 476 , - 587 , - 434 , - 17 , - 40 , - 503 , - 702 , - 637 , - 308 , - 419 , - 266 , - 553 , - 576 , - 335 , - 534 , - 469 , - 140 , - 251 , - 98 , - 385 , - 408 , - 167 , - 366 , - 301 , - 676 , - 83 , - 634 , - 217 , - 240 , - 703 , - 198 , - 133 , - 508 , - 619 , - 466 , - 49 , - 72 , - 535 , - 30 , - 669 , - 340 , - 451 , - 298 , - 585 , - 608 , - 367 , - 566 , - 501 , - 172 , - 283 , - 130 , - 417 , - 440 , - 199 , - 398 , - 333 , - 4 , - 115 , - 666 , - 249 , - 272 , - 31 , - 230 , - 165 , - 540 , - 651 , - 498 , - 81 , - 104 , - 567 , - 62 , - 701 , - 372 , - 483 , - 330 , - 617 , - 640 , - 399 , - 598 , - 533 , - 204 , - 315 , - 162 , - 449 , - 472 , - 231 , - 430 , - 365 , - 36 , - 147 , - 698 , - 281 , - 304 , - 63 , - 262 , - 197 , - 572 , - 683 , - 530 , - 113 , - 136 , - 599 , - 94 , - 29 , - 404 , - 515 , - 362 , - 649 , - 672 , - 431 , - 630 , - 565 , - 236 , - 347 , - 194 , - 481 , - 504 , - 263 , - 462 , - 397 , - 68 , - 179 , - 26 , - 313 , - 336 , - 95 , - 294 , - 229 , - 604 , - 11 , - 562 , - 145 , - 168 , - 631 , - 126 , - 61 , - 436 , - 547 , - 394 , - 681 , - 0 , - 199 , - 158 , - 597 , - 76 , - 35 , - 474 , - 673 , - 632 , - 351 , - 550 , - 509 , - 228 , - 427 , - 386 , - 105 , - 304 , - 263 , - 702 , - 181 , - 140 , - 579 , - 58 , - 17 , - 456 , - 655 , - 614 , - 333 , - 532 , - 491 , - 210 , - 409 , - 368 , - 87 , - 286 , - 245 , - 684 , - 163 , - 122 , - 561 , - 40 , - 719 , - 438 , - 637 , - 596 , - 315 , - 514 , - 473 , - 192 , - 391 , - 350 , - 69 , - 268 , - 227 , - 666 , - 145 , - 104 , - 543 , - 22 , - 701 , - 420 , - 619 , - 578 , - 297 , - 496 , - 455 , - 174 , - 373 , - 332 , - 51 , - 250 , - 209 , - 648 , - 127 , - 86 , - 525 , - 4 , - 683 , - 402 , - 601 , - 560 , - 279 , - 478 , - 437 , - 156 , - 355 , - 314 , - 33 , - 232 , - 191 , - 630 , - 109 , - 68 , - 507 , - 706 , - 665 , - 384 , - 583 , - 542 , - 261 , - 460 , - 419 , - 138 , - 337 , - 296 , - 15 , - 214 , - 173 , - 612 , - 91 , - 50 , - 489 , - 688 , - 647 , - 366 , - 565 , - 524 , - 243 , - 442 , - 401 , - 120 , - 319 , - 278 , - 717 , - 196 , - 155 , - 594 , - 73 , - 32 , - 471 , - 670 , - 629 , - 348 , - 547 , - 506 , - 225 , - 424 , - 383 , - 102 , - 301 , - 260 , - 699 , - 178 , - 137 , - 576 , - 55 , - 14 , - 453 , - 652 , - 611 , - 330 , - 529 , - 488 , - 207 , - 406 , - 365 , - 84 , - 283 , - 242 , - 681 , - 160 , - 119 , - 558 , - 37 , - 716 , - 435 , - 634 , - 593 , - 312 , - 511 , - 470 , - 189 , - 388 , - 347 , - 66 , - 265 , - 224 , - 663 , - 142 , - 101 , - 540 , - 19 , - 698 , - 417 , - 616 , - 575 , - 294 , - 493 , - 452 , - 171 , - 370 , - 329 , - 48 , - 247 , - 206 , - 645 , - 124 , - 83 , - 522 , - 1 , - 680 , - 399 , - 598 , - 557 , - 276 , - 475 , - 434 , - 153 , - 352 , - 311 , - 30 , - 229 , - 188 , - 627 , - 106 , - 65 , - 504 , - 703 , - 662 , - 381 , - 580 , - 539 , - 258 , - 457 , - 416 , - 135 , - 334 , - 293 , - 12 , - 211 , - 170 , - 609 , - 88 , - 47 , - 486 , - 685 , - 644 , - 363 , - 562 , - 521 , - 240 , - 439 , - 398 , - 117 , - 316 , - 275 , - 714 , - 193 , - 152 , - 591 , - 70 , - 29 , - 468 , - 667 , - 626 , - 345 , - 544 , - 503 , - 222 , - 421 , - 380 , - 99 , - 298 , - 257 , - 696 , - 175 , - 134 , - 573 , - 52 , - 11 , - 450 , - 649 , - 608 , - 327 , - 526 , - 485 , - 204 , - 403 , - 362 , - 81 , - 280 , - 239 , - 678 , - 157 , - 116 , - 555 , - 34 , - 713 , - 432 , - 631 , - 590 , - 309 , - 508 , - 467 , - 186 , - 385 , - 344 , - 63 , - 262 , - 221 , - 660 , - 139 , - 98 , - 537 , - 16 , - 695 , - 414 , - 613 , - 572 , - 291 , - 490 , - 449 , - 168 , - 367 , - 326 , - 45 , - 244 , - 203 , - 642 , - 121 , - 80 , - 519 , - 718 , - 677 , - 396 , - 595 , - 554 , - 273 , - 472 , - 431 , - 150 , - 349 , - 308 , - 27 , - 226 , - 185 , - 624 , - 103 , - 62 , - 501 , - 700 , - 659 , - 378 , - 577 , - 536 , - 255 , - 454 , - 413 , - 132 , - 331 , - 290 , - 9 , - 208 , - 167 , - 606 , - 85 , - 44 , - 483 , - 682 , - 641 , - 360 , - 559 , - 518 , - 237 , - 436 , - 395 , - 114 , - 313 , - 272 , - 711 , - 190 , - 149 , - 588 , - 67 , - 26 , - 465 , - 664 , - 623 , - 342 , - 541 , - 500 , - 219 , - 418 , - 377 , - 96 , - 295 , - 254 , - 693 , - 172 , - 131 , - 570 , - 49 , - 8 , - 447 , - 646 , - 605 , - 324 , - 523 , - 482 , - 201 , - 400 , - 359 , - 78 , - 277 , - 236 , - 675 , - 154 , - 113 , - 552 , - 31 , - 710 , - 429 , - 628 , - 587 , - 306 , - 505 , - 464 , - 183 , - 382 , - 341 , - 60 , - 259 , - 218 , - 657 , - 136 , - 95 , - 534 , - 13 , - 692 , - 411 , - 610 , - 569 , - 288 , - 487 , - 446 , - 165 , - 364 , - 323 , - 42 , - 241 , - 200 , - 639 , - 118 , - 77 , - 516 , - 715 , - 674 , - 393 , - 592 , - 551 , - 270 , - 469 , - 428 , - 147 , - 346 , - 305 , - 24 , - 223 , - 182 , - 621 , - 100 , - 59 , - 498 , - 697 , - 656 , - 375 , - 574 , - 533 , - 252 , - 451 , - 410 , - 129 , - 328 , - 287 , - 6 , - 205 , - 164 , - 603 , - 82 , - 41 , - 480 , - 679 , - 638 , - 357 , - 556 , - 515 , - 234 , - 433 , - 392 , - 111 , - 310 , - 269 , - 708 , - 187 , - 146 , - 585 , - 64 , - 23 , - 462 , - 661 , - 620 , - 339 , - 538 , - 497 , - 216 , - 415 , - 374 , - 93 , - 292 , - 251 , - 690 , - 169 , - 128 , - 567 , - 46 , - 5 , - 444 , - 643 , - 602 , - 321 , - 520 , - 479 , - 198 , - 397 , - 356 , - 75 , - 274 , - 233 , - 672 , - 151 , - 110 , - 549 , - 28 , - 707 , - 426 , - 625 , - 584 , - 303 , - 502 , - 461 , - 180 , - 379 , - 338 , - 57 , - 256 , - 215 , - 654 , - 133 , - 92 , - 531 , - 10 , - 689 , - 408 , - 607 , - 566 , - 285 , - 484 , - 443 , - 162 , - 361 , - 320 , - 39 , - 238 , - 197 , - 636 , - 115 , - 74 , - 513 , - 712 , - 671 , - 390 , - 589 , - 548 , - 267 , - 466 , - 425 , - 144 , - 343 , - 302 , - 21 , - 220 , - 179 , - 618 , - 97 , - 56 , - 495 , - 694 , - 653 , - 372 , - 571 , - 530 , - 249 , - 448 , - 407 , - 126 , - 325 , - 284 , - 3 , - 202 , - 161 , - 600 , - 79 , - 38 , - 477 , - 676 , - 635 , - 354 , - 553 , - 512 , - 231 , - 430 , - 389 , - 108 , - 307 , - 266 , - 705 , - 184 , - 143 , - 582 , - 61 , - 20 , - 459 , - 658 , - 617 , - 336 , - 535 , - 494 , - 213 , - 412 , - 371 , - 90 , - 289 , - 248 , - 687 , - 166 , - 125 , - 564 , - 43 , - 2 , - 441 , - 640 , - 599 , - 318 , - 517 , - 476 , - 195 , - 394 , - 353 , - 72 , - 271 , - 230 , - 669 , - 148 , - 107 , - 546 , - 25 , - 704 , - 423 , - 622 , - 581 , - 300 , - 499 , - 458 , - 177 , - 376 , - 335 , - 54 , - 253 , - 212 , - 651 , - 130 , - 89 , - 528 , - 7 , - 686 , - 405 , - 604 , - 563 , - 282 , - 481 , - 440 , - 159 , - 358 , - 317 , - 36 , - 235 , - 194 , - 633 , - 112 , - 71 , - 510 , - 709 , - 668 , - 387 , - 586 , - 545 , - 264 , - 463 , - 422 , - 141 , - 340 , - 299 , - 18 , - 217 , - 176 , - 615 , - 94 , - 53 , - 492 , - 691 , - 650 , - 369 , - 568 , - 527 , - 246 , - 445 , - 404 , - 123 , - 322 , - 281 , - 0 , - 47 , - 278 , - 693 , - 556 , - 603 , - 98 , - 513 , - 376 , - 423 , - 654 , - 333 , - 196 , - 243 , - 474 , - 153 , - 16 , - 63 , - 294 , - 709 , - 572 , - 619 , - 114 , - 529 , - 392 , - 439 , - 670 , - 349 , - 212 , - 259 , - 490 , - 169 , - 32 , - 79 , - 310 , - 725 , - 588 , - 635 , - 130 , - 545 , - 408 , - 455 , - 686 , - 365 , - 228 , - 275 , - 506 , - 185 , - 48 , - 95 , - 326 , - 5 , - 604 , - 651 , - 146 , - 561 , - 424 , - 471 , - 702 , - 381 , - 244 , - 291 , - 522 , - 201 , - 64 , - 111 , - 342 , - 21 , - 620 , - 667 , - 162 , - 577 , - 440 , - 487 , - 718 , - 397 , - 260 , - 307 , - 538 , - 217 , - 80 , - 127 , - 358 , - 37 , - 636 , - 683 , - 178 , - 593 , - 456 , - 503 , - 734 , - 413 , - 276 , - 323 , - 554 , - 233 , - 96 , - 143 , - 374 , - 53 , - 652 , - 699 , - 194 , - 609 , - 472 , - 519 , - 14 , - 429 , - 292 , - 339 , - 570 , - 249 , - 112 , - 159 , - 390 , - 69 , - 668 , - 715 , - 210 , - 625 , - 488 , - 535 , - 30 , - 445 , - 308 , - 355 , - 586 , - 265 , - 128 , - 175 , - 406 , - 85 , - 684 , - 731 , - 226 , - 641 , - 504 , - 551 , - 46 , - 461 , - 324 , - 371 , - 602 , - 281 , - 144 , - 191 , - 422 , - 101 , - 700 , - 11 , - 242 , - 657 , - 520 , - 567 , - 62 , - 477 , - 340 , - 387 , - 618 , - 297 , - 160 , - 207 , - 438 , - 117 , - 716 , - 27 , - 258 , - 673 , - 536 , - 583 , - 78 , - 493 , - 356 , - 403 , - 634 , - 313 , - 176 , - 223 , - 454 , - 133 , - 732 , - 43 , - 274 , - 689 , - 552 , - 599 , - 94 , - 509 , - 372 , - 419 , - 650 , - 329 , - 192 , - 239 , - 470 , - 149 , - 12 , - 59 , - 290 , - 705 , - 568 , - 615 , - 110 , - 525 , - 388 , - 435 , - 666 , - 345 , - 208 , - 255 , - 486 , - 165 , - 28 , - 75 , - 306 , - 721 , - 584 , - 631 , - 126 , - 541 , - 404 , - 451 , - 682 , - 361 , - 224 , - 271 , - 502 , - 181 , - 44 , - 91 , - 322 , - 1 , - 600 , - 647 , - 142 , - 557 , - 420 , - 467 , - 698 , - 377 , - 240 , - 287 , - 518 , - 197 , - 60 , - 107 , - 338 , - 17 , - 616 , - 663 , - 158 , - 573 , - 436 , - 483 , - 714 , - 393 , - 256 , - 303 , - 534 , - 213 , - 76 , - 123 , - 354 , - 33 , - 632 , - 679 , - 174 , - 589 , - 452 , - 499 , - 730 , - 409 , - 272 , - 319 , - 550 , - 229 , - 92 , - 139 , - 370 , - 49 , - 648 , - 695 , - 190 , - 605 , - 468 , - 515 , - 10 , - 425 , - 288 , - 335 , - 566 , - 245 , - 108 , - 155 , - 386 , - 65 , - 664 , - 711 , - 206 , - 621 , - 484 , - 531 , - 26 , - 441 , - 304 , - 351 , - 582 , - 261 , - 124 , - 171 , - 402 , - 81 , - 680 , - 727 , - 222 , - 637 , - 500 , - 547 , - 42 , - 457 , - 320 , - 367 , - 598 , - 277 , - 140 , - 187 , - 418 , - 97 , - 696 , - 7 , - 238 , - 653 , - 516 , - 563 , - 58 , - 473 , - 336 , - 383 , - 614 , - 293 , - 156 , - 203 , - 434 , - 113 , - 712 , - 23 , - 254 , - 669 , - 532 , - 579 , - 74 , - 489 , - 352 , - 399 , - 630 , - 309 , - 172 , - 219 , - 450 , - 129 , - 728 , - 39 , - 270 , - 685 , - 548 , - 595 , - 90 , - 505 , - 368 , - 415 , - 646 , - 325 , - 188 , - 235 , - 466 , - 145 , - 8 , - 55 , - 286 , - 701 , - 564 , - 611 , - 106 , - 521 , - 384 , - 431 , - 662 , - 341 , - 204 , - 251 , - 482 , - 161 , - 24 , - 71 , - 302 , - 717 , - 580 , - 627 , - 122 , - 537 , - 400 , - 447 , - 678 , - 357 , - 220 , - 267 , - 498 , - 177 , - 40 , - 87 , - 318 , - 733 , - 596 , - 643 , - 138 , - 553 , - 416 , - 463 , - 694 , - 373 , - 236 , - 283 , - 514 , - 193 , - 56 , - 103 , - 334 , - 13 , - 612 , - 659 , - 154 , - 569 , - 432 , - 479 , - 710 , - 389 , - 252 , - 299 , - 530 , - 209 , - 72 , - 119 , - 350 , - 29 , - 628 , - 675 , - 170 , - 585 , - 448 , - 495 , - 726 , - 405 , - 268 , - 315 , - 546 , - 225 , - 88 , - 135 , - 366 , - 45 , - 644 , - 691 , - 186 , - 601 , - 464 , - 511 , - 6 , - 421 , - 284 , - 331 , - 562 , - 241 , - 104 , - 151 , - 382 , - 61 , - 660 , - 707 , - 202 , - 617 , - 480 , - 527 , - 22 , - 437 , - 300 , - 347 , - 578 , - 257 , - 120 , - 167 , - 398 , - 77 , - 676 , - 723 , - 218 , - 633 , - 496 , - 543 , - 38 , - 453 , - 316 , - 363 , - 594 , - 273 , - 136 , - 183 , - 414 , - 93 , - 692 , - 3 , - 234 , - 649 , - 512 , - 559 , - 54 , - 469 , - 332 , - 379 , - 610 , - 289 , - 152 , - 199 , - 430 , - 109 , - 708 , - 19 , - 250 , - 665 , - 528 , - 575 , - 70 , - 485 , - 348 , - 395 , - 626 , - 305 , - 168 , - 215 , - 446 , - 125 , - 724 , - 35 , - 266 , - 681 , - 544 , - 591 , - 86 , - 501 , - 364 , - 411 , - 642 , - 321 , - 184 , - 231 , - 462 , - 141 , - 4 , - 51 , - 282 , - 697 , - 560 , - 607 , - 102 , - 517 , - 380 , - 427 , - 658 , - 337 , - 200 , - 247 , - 478 , - 157 , - 20 , - 67 , - 298 , - 713 , - 576 , - 623 , - 118 , - 533 , - 396 , - 443 , - 674 , - 353 , - 216 , - 263 , - 494 , - 173 , - 36 , - 83 , - 314 , - 729 , - 592 , - 639 , - 134 , - 549 , - 412 , - 459 , - 690 , - 369 , - 232 , - 279 , - 510 , - 189 , - 52 , - 99 , - 330 , - 9 , - 608 , - 655 , - 150 , - 565 , - 428 , - 475 , - 706 , - 385 , - 248 , - 295 , - 526 , - 205 , - 68 , - 115 , - 346 , - 25 , - 624 , - 671 , - 166 , - 581 , - 444 , - 491 , - 722 , - 401 , - 264 , - 311 , - 542 , - 221 , - 84 , - 131 , - 362 , - 41 , - 640 , - 687 , - 182 , - 597 , - 460 , - 507 , - 2 , - 417 , - 280 , - 327 , - 558 , - 237 , - 100 , - 147 , - 378 , - 57 , - 656 , - 703 , - 198 , - 613 , - 476 , - 523 , - 18 , - 433 , - 296 , - 343 , - 574 , - 253 , - 116 , - 163 , - 394 , - 73 , - 672 , - 719 , - 214 , - 629 , - 492 , - 539 , - 34 , - 449 , - 312 , - 359 , - 590 , - 269 , - 132 , - 179 , - 410 , - 89 , - 688 , - 735 , - 230 , - 645 , - 508 , - 555 , - 50 , - 465 , - 328 , - 375 , - 606 , - 285 , - 148 , - 195 , - 426 , - 105 , - 704 , - 15 , - 246 , - 661 , - 524 , - 571 , - 66 , - 481 , - 344 , - 391 , - 622 , - 301 , - 164 , - 211 , - 442 , - 121 , - 720 , - 31 , - 262 , - 677 , - 540 , - 587 , - 82 , - 497 , - 360 , - 407 , - 638 , - 317 , - 180 , - 227 , - 458 , - 137 , - 0 , - 421 , - 278 , - 323 , - 556 , - 225 , - 82 , - 127 , - 360 , - 29 , - 638 , - 683 , - 164 , - 585 , - 442 , - 487 , - 720 , - 389 , - 246 , - 291 , - 524 , - 193 , - 50 , - 95 , - 328 , - 749 , - 606 , - 651 , - 132 , - 553 , - 410 , - 455 , - 688 , - 357 , - 214 , - 259 , - 492 , - 161 , - 18 , - 63 , - 296 , - 717 , - 574 , - 619 , - 100 , - 521 , - 378 , - 423 , - 656 , - 325 , - 182 , - 227 , - 460 , - 129 , - 738 , - 31 , - 264 , - 685 , - 542 , - 587 , - 68 , - 489 , - 346 , - 391 , - 624 , - 293 , - 150 , - 195 , - 428 , - 97 , - 706 , - 751 , - 232 , - 653 , - 510 , - 555 , - 36 , - 457 , - 314 , - 359 , - 592 , - 261 , - 118 , - 163 , - 396 , - 65 , - 674 , - 719 , - 200 , - 621 , - 478 , - 523 , - 4 , - 425 , - 282 , - 327 , - 560 , - 229 , - 86 , - 131 , - 364 , - 33 , - 642 , - 687 , - 168 , - 589 , - 446 , - 491 , - 724 , - 393 , - 250 , - 295 , - 528 , - 197 , - 54 , - 99 , - 332 , - 1 , - 610 , - 655 , - 136 , - 557 , - 414 , - 459 , - 692 , - 361 , - 218 , - 263 , - 496 , - 165 , - 22 , - 67 , - 300 , - 721 , - 578 , - 623 , - 104 , - 525 , - 382 , - 427 , - 660 , - 329 , - 186 , - 231 , - 464 , - 133 , - 742 , - 35 , - 268 , - 689 , - 546 , - 591 , - 72 , - 493 , - 350 , - 395 , - 628 , - 297 , - 154 , - 199 , - 432 , - 101 , - 710 , - 3 , - 236 , - 657 , - 514 , - 559 , - 40 , - 461 , - 318 , - 363 , - 596 , - 265 , - 122 , - 167 , - 400 , - 69 , - 678 , - 723 , - 204 , - 625 , - 482 , - 527 , - 8 , - 429 , - 286 , - 331 , - 564 , - 233 , - 90 , - 135 , - 368 , - 37 , - 646 , - 691 , - 172 , - 593 , - 450 , - 495 , - 728 , - 397 , - 254 , - 299 , - 532 , - 201 , - 58 , - 103 , - 336 , - 5 , - 614 , - 659 , - 140 , - 561 , - 418 , - 463 , - 696 , - 365 , - 222 , - 267 , - 500 , - 169 , - 26 , - 71 , - 304 , - 725 , - 582 , - 627 , - 108 , - 529 , - 386 , - 431 , - 664 , - 333 , - 190 , - 235 , - 468 , - 137 , - 746 , - 39 , - 272 , - 693 , - 550 , - 595 , - 76 , - 497 , - 354 , - 399 , - 632 , - 301 , - 158 , - 203 , - 436 , - 105 , - 714 , - 7 , - 240 , - 661 , - 518 , - 563 , - 44 , - 465 , - 322 , - 367 , - 600 , - 269 , - 126 , - 171 , - 404 , - 73 , - 682 , - 727 , - 208 , - 629 , - 486 , - 531 , - 12 , - 433 , - 290 , - 335 , - 568 , - 237 , - 94 , - 139 , - 372 , - 41 , - 650 , - 695 , - 176 , - 597 , - 454 , - 499 , - 732 , - 401 , - 258 , - 303 , - 536 , - 205 , - 62 , - 107 , - 340 , - 9 , - 618 , - 663 , - 144 , - 565 , - 422 , - 467 , - 700 , - 369 , - 226 , - 271 , - 504 , - 173 , - 30 , - 75 , - 308 , - 729 , - 586 , - 631 , - 112 , - 533 , - 390 , - 435 , - 668 , - 337 , - 194 , - 239 , - 472 , - 141 , - 750 , - 43 , - 276 , - 697 , - 554 , - 599 , - 80 , - 501 , - 358 , - 403 , - 636 , - 305 , - 162 , - 207 , - 440 , - 109 , - 718 , - 11 , - 244 , - 665 , - 522 , - 567 , - 48 , - 469 , - 326 , - 371 , - 604 , - 273 , - 130 , - 175 , - 408 , - 77 , - 686 , - 731 , - 212 , - 633 , - 490 , - 535 , - 16 , - 437 , - 294 , - 339 , - 572 , - 241 , - 98 , - 143 , - 376 , - 45 , - 654 , - 699 , - 180 , - 601 , - 458 , - 503 , - 736 , - 405 , - 262 , - 307 , - 540 , - 209 , - 66 , - 111 , - 344 , - 13 , - 622 , - 667 , - 148 , - 569 , - 426 , - 471 , - 704 , - 373 , - 230 , - 275 , - 508 , - 177 , - 34 , - 79 , - 312 , - 733 , - 590 , - 635 , - 116 , - 537 , - 394 , - 439 , - 672 , - 341 , - 198 , - 243 , - 476 , - 145 , - 2 , - 47 , - 280 , - 701 , - 558 , - 603 , - 84 , - 505 , - 362 , - 407 , - 640 , - 309 , - 166 , - 211 , - 444 , - 113 , - 722 , - 15 , - 248 , - 669 , - 526 , - 571 , - 52 , - 473 , - 330 , - 375 , - 608 , - 277 , - 134 , - 179 , - 412 , - 81 , - 690 , - 735 , - 216 , - 637 , - 494 , - 539 , - 20 , - 441 , - 298 , - 343 , - 576 , - 245 , - 102 , - 147 , - 380 , - 49 , - 658 , - 703 , - 184 , - 605 , - 462 , - 507 , - 740 , - 409 , - 266 , - 311 , - 544 , - 213 , - 70 , - 115 , - 348 , - 17 , - 626 , - 671 , - 152 , - 573 , - 430 , - 475 , - 708 , - 377 , - 234 , - 279 , - 512 , - 181 , - 38 , - 83 , - 316 , - 737 , - 594 , - 639 , - 120 , - 541 , - 398 , - 443 , - 676 , - 345 , - 202 , - 247 , - 480 , - 149 , - 6 , - 51 , - 284 , - 705 , - 562 , - 607 , - 88 , - 509 , - 366 , - 411 , - 644 , - 313 , - 170 , - 215 , - 448 , - 117 , - 726 , - 19 , - 252 , - 673 , - 530 , - 575 , - 56 , - 477 , - 334 , - 379 , - 612 , - 281 , - 138 , - 183 , - 416 , - 85 , - 694 , - 739 , - 220 , - 641 , - 498 , - 543 , - 24 , - 445 , - 302 , - 347 , - 580 , - 249 , - 106 , - 151 , - 384 , - 53 , - 662 , - 707 , - 188 , - 609 , - 466 , - 511 , - 744 , - 413 , - 270 , - 315 , - 548 , - 217 , - 74 , - 119 , - 352 , - 21 , - 630 , - 675 , - 156 , - 577 , - 434 , - 479 , - 712 , - 381 , - 238 , - 283 , - 516 , - 185 , - 42 , - 87 , - 320 , - 741 , - 598 , - 643 , - 124 , - 545 , - 402 , - 447 , - 680 , - 349 , - 206 , - 251 , - 484 , - 153 , - 10 , - 55 , - 288 , - 709 , - 566 , - 611 , - 92 , - 513 , - 370 , - 415 , - 648 , - 317 , - 174 , - 219 , - 452 , - 121 , - 730 , - 23 , - 256 , - 677 , - 534 , - 579 , - 60 , - 481 , - 338 , - 383 , - 616 , - 285 , - 142 , - 187 , - 420 , - 89 , - 698 , - 743 , - 224 , - 645 , - 502 , - 547 , - 28 , - 449 , - 306 , - 351 , - 584 , - 253 , - 110 , - 155 , - 388 , - 57 , - 666 , - 711 , - 192 , - 613 , - 470 , - 515 , - 748 , - 417 , - 274 , - 319 , - 552 , - 221 , - 78 , - 123 , - 356 , - 25 , - 634 , - 679 , - 160 , - 581 , - 438 , - 483 , - 716 , - 385 , - 242 , - 287 , - 520 , - 189 , - 46 , - 91 , - 324 , - 745 , - 602 , - 647 , - 128 , - 549 , - 406 , - 451 , - 684 , - 353 , - 210 , - 255 , - 488 , - 157 , - 14 , - 59 , - 292 , - 713 , - 570 , - 615 , - 96 , - 517 , - 374 , - 419 , - 652 , - 321 , - 178 , - 223 , - 456 , - 125 , - 734 , - 27 , - 260 , - 681 , - 538 , - 583 , - 64 , - 485 , - 342 , - 387 , - 620 , - 289 , - 146 , - 191 , - 424 , - 93 , - 702 , - 747 , - 228 , - 649 , - 506 , - 551 , - 32 , - 453 , - 310 , - 355 , - 588 , - 257 , - 114 , - 159 , - 392 , - 61 , - 670 , - 715 , - 196 , - 617 , - 474 , - 519 , - 0 , - 697 , - 530 , - 267 , - 676 , - 221 , - 438 , - 559 , - 584 , - 513 , - 346 , - 83 , - 492 , - 37 , - 254 , - 375 , - 400 , - 329 , - 162 , - 667 , - 308 , - 621 , - 70 , - 191 , - 216 , - 145 , - 746 , - 483 , - 124 , - 437 , - 654 , - 7 , - 32 , - 729 , - 562 , - 299 , - 708 , - 253 , - 470 , - 591 , - 616 , - 545 , - 378 , - 115 , - 524 , - 69 , - 286 , - 407 , - 432 , - 361 , - 194 , - 699 , - 340 , - 653 , - 102 , - 223 , - 248 , - 177 , - 10 , - 515 , - 156 , - 469 , - 686 , - 39 , - 64 , - 761 , - 594 , - 331 , - 740 , - 285 , - 502 , - 623 , - 648 , - 577 , - 410 , - 147 , - 556 , - 101 , - 318 , - 439 , - 464 , - 393 , - 226 , - 731 , - 372 , - 685 , - 134 , - 255 , - 280 , - 209 , - 42 , - 547 , - 188 , - 501 , - 718 , - 71 , - 96 , - 25 , - 626 , - 363 , - 4 , - 317 , - 534 , - 655 , - 680 , - 609 , - 442 , - 179 , - 588 , - 133 , - 350 , - 471 , - 496 , - 425 , - 258 , - 763 , - 404 , - 717 , - 166 , - 287 , - 312 , - 241 , - 74 , - 579 , - 220 , - 533 , - 750 , - 103 , - 128 , - 57 , - 658 , - 395 , - 36 , - 349 , - 566 , - 687 , - 712 , - 641 , - 474 , - 211 , - 620 , - 165 , - 382 , - 503 , - 528 , - 457 , - 290 , - 27 , - 436 , - 749 , - 198 , - 319 , - 344 , - 273 , - 106 , - 611 , - 252 , - 565 , - 14 , - 135 , - 160 , - 89 , - 690 , - 427 , - 68 , - 381 , - 598 , - 719 , - 744 , - 673 , - 506 , - 243 , - 652 , - 197 , - 414 , - 535 , - 560 , - 489 , - 322 , - 59 , - 468 , - 13 , - 230 , - 351 , - 376 , - 305 , - 138 , - 643 , - 284 , - 597 , - 46 , - 167 , - 192 , - 121 , - 722 , - 459 , - 100 , - 413 , - 630 , - 751 , - 8 , - 705 , - 538 , - 275 , - 684 , - 229 , - 446 , - 567 , - 592 , - 521 , - 354 , - 91 , - 500 , - 45 , - 262 , - 383 , - 408 , - 337 , - 170 , - 675 , - 316 , - 629 , - 78 , - 199 , - 224 , - 153 , - 754 , - 491 , - 132 , - 445 , - 662 , - 15 , - 40 , - 737 , - 570 , - 307 , - 716 , - 261 , - 478 , - 599 , - 624 , - 553 , - 386 , - 123 , - 532 , - 77 , - 294 , - 415 , - 440 , - 369 , - 202 , - 707 , - 348 , - 661 , - 110 , - 231 , - 256 , - 185 , - 18 , - 523 , - 164 , - 477 , - 694 , - 47 , - 72 , - 1 , - 602 , - 339 , - 748 , - 293 , - 510 , - 631 , - 656 , - 585 , - 418 , - 155 , - 564 , - 109 , - 326 , - 447 , - 472 , - 401 , - 234 , - 739 , - 380 , - 693 , - 142 , - 263 , - 288 , - 217 , - 50 , - 555 , - 196 , - 509 , - 726 , - 79 , - 104 , - 33 , - 634 , - 371 , - 12 , - 325 , - 542 , - 663 , - 688 , - 617 , - 450 , - 187 , - 596 , - 141 , - 358 , - 479 , - 504 , - 433 , - 266 , - 3 , - 412 , - 725 , - 174 , - 295 , - 320 , - 249 , - 82 , - 587 , - 228 , - 541 , - 758 , - 111 , - 136 , - 65 , - 666 , - 403 , - 44 , - 357 , - 574 , - 695 , - 720 , - 649 , - 482 , - 219 , - 628 , - 173 , - 390 , - 511 , - 536 , - 465 , - 298 , - 35 , - 444 , - 757 , - 206 , - 327 , - 352 , - 281 , - 114 , - 619 , - 260 , - 573 , - 22 , - 143 , - 168 , - 97 , - 698 , - 435 , - 76 , - 389 , - 606 , - 727 , - 752 , - 681 , - 514 , - 251 , - 660 , - 205 , - 422 , - 543 , - 568 , - 497 , - 330 , - 67 , - 476 , - 21 , - 238 , - 359 , - 384 , - 313 , - 146 , - 651 , - 292 , - 605 , - 54 , - 175 , - 200 , - 129 , - 730 , - 467 , - 108 , - 421 , - 638 , - 759 , - 16 , - 713 , - 546 , - 283 , - 692 , - 237 , - 454 , - 575 , - 600 , - 529 , - 362 , - 99 , - 508 , - 53 , - 270 , - 391 , - 416 , - 345 , - 178 , - 683 , - 324 , - 637 , - 86 , - 207 , - 232 , - 161 , - 762 , - 499 , - 140 , - 453 , - 670 , - 23 , - 48 , - 745 , - 578 , - 315 , - 724 , - 269 , - 486 , - 607 , - 632 , - 561 , - 394 , - 131 , - 540 , - 85 , - 302 , - 423 , - 448 , - 377 , - 210 , - 715 , - 356 , - 669 , - 118 , - 239 , - 264 , - 193 , - 26 , - 531 , - 172 , - 485 , - 702 , - 55 , - 80 , - 9 , - 610 , - 347 , - 756 , - 301 , - 518 , - 639 , - 664 , - 593 , - 426 , - 163 , - 572 , - 117 , - 334 , - 455 , - 480 , - 409 , - 242 , - 747 , - 388 , - 701 , - 150 , - 271 , - 296 , - 225 , - 58 , - 563 , - 204 , - 517 , - 734 , - 87 , - 112 , - 41 , - 642 , - 379 , - 20 , - 333 , - 550 , - 671 , - 696 , - 625 , - 458 , - 195 , - 604 , - 149 , - 366 , - 487 , - 512 , - 441 , - 274 , - 11 , - 420 , - 733 , - 182 , - 303 , - 328 , - 257 , - 90 , - 595 , - 236 , - 549 , - 766 , - 119 , - 144 , - 73 , - 674 , - 411 , - 52 , - 365 , - 582 , - 703 , - 728 , - 657 , - 490 , - 227 , - 636 , - 181 , - 398 , - 519 , - 544 , - 473 , - 306 , - 43 , - 452 , - 765 , - 214 , - 335 , - 360 , - 289 , - 122 , - 627 , - 268 , - 581 , - 30 , - 151 , - 176 , - 105 , - 706 , - 443 , - 84 , - 397 , - 614 , - 735 , - 760 , - 689 , - 522 , - 259 , - 668 , - 213 , - 430 , - 551 , - 576 , - 505 , - 338 , - 75 , - 484 , - 29 , - 246 , - 367 , - 392 , - 321 , - 154 , - 659 , - 300 , - 613 , - 62 , - 183 , - 208 , - 137 , - 738 , - 475 , - 116 , - 429 , - 646 , - 767 , - 24 , - 721 , - 554 , - 291 , - 700 , - 245 , - 462 , - 583 , - 608 , - 537 , - 370 , - 107 , - 516 , - 61 , - 278 , - 399 , - 424 , - 353 , - 186 , - 691 , - 332 , - 645 , - 94 , - 215 , - 240 , - 169 , - 2 , - 507 , - 148 , - 461 , - 678 , - 31 , - 56 , - 753 , - 586 , - 323 , - 732 , - 277 , - 494 , - 615 , - 640 , - 569 , - 402 , - 139 , - 548 , - 93 , - 310 , - 431 , - 456 , - 385 , - 218 , - 723 , - 364 , - 677 , - 126 , - 247 , - 272 , - 201 , - 34 , - 539 , - 180 , - 493 , - 710 , - 63 , - 88 , - 17 , - 618 , - 355 , - 764 , - 309 , - 526 , - 647 , - 672 , - 601 , - 434 , - 171 , - 580 , - 125 , - 342 , - 463 , - 488 , - 417 , - 250 , - 755 , - 396 , - 709 , - 158 , - 279 , - 304 , - 233 , - 66 , - 571 , - 212 , - 525 , - 742 , - 95 , - 120 , - 49 , - 650 , - 387 , - 28 , - 341 , - 558 , - 679 , - 704 , - 633 , - 466 , - 203 , - 612 , - 157 , - 374 , - 495 , - 520 , - 449 , - 282 , - 19 , - 428 , - 741 , - 190 , - 311 , - 336 , - 265 , - 98 , - 603 , - 244 , - 557 , - 6 , - 127 , - 152 , - 81 , - 682 , - 419 , - 60 , - 373 , - 590 , - 711 , - 736 , - 665 , - 498 , - 235 , - 644 , - 189 , - 406 , - 527 , - 552 , - 481 , - 314 , - 51 , - 460 , - 5 , - 222 , - 343 , - 368 , - 297 , - 130 , - 635 , - 276 , - 589 , - 38 , - 159 , - 184 , - 113 , - 714 , - 451 , - 92 , - 405 , - 622 , - 743 , - 0 , - 247 , - 298 , - 153 , - 596 , - 59 , - 110 , - 749 , - 408 , - 655 , - 706 , - 561 , - 220 , - 467 , - 518 , - 373 , - 32 , - 279 , - 330 , - 185 , - 628 , - 91 , - 142 , - 781 , - 440 , - 687 , - 738 , - 593 , - 252 , - 499 , - 550 , - 405 , - 64 , - 311 , - 362 , - 217 , - 660 , - 123 , - 174 , - 29 , - 472 , - 719 , - 770 , - 625 , - 284 , - 531 , - 582 , - 437 , - 96 , - 343 , - 394 , - 249 , - 692 , - 155 , - 206 , - 61 , - 504 , - 751 , - 18 , - 657 , - 316 , - 563 , - 614 , - 469 , - 128 , - 375 , - 426 , - 281 , - 724 , - 187 , - 238 , - 93 , - 536 , - 783 , - 50 , - 689 , - 348 , - 595 , - 646 , - 501 , - 160 , - 407 , - 458 , - 313 , - 756 , - 219 , - 270 , - 125 , - 568 , - 31 , - 82 , - 721 , - 380 , - 627 , - 678 , - 533 , - 192 , - 439 , - 490 , - 345 , - 4 , - 251 , - 302 , - 157 , - 600 , - 63 , - 114 , - 753 , - 412 , - 659 , - 710 , - 565 , - 224 , - 471 , - 522 , - 377 , - 36 , - 283 , - 334 , - 189 , - 632 , - 95 , - 146 , - 1 , - 444 , - 691 , - 742 , - 597 , - 256 , - 503 , - 554 , - 409 , - 68 , - 315 , - 366 , - 221 , - 664 , - 127 , - 178 , - 33 , - 476 , - 723 , - 774 , - 629 , - 288 , - 535 , - 586 , - 441 , - 100 , - 347 , - 398 , - 253 , - 696 , - 159 , - 210 , - 65 , - 508 , - 755 , - 22 , - 661 , - 320 , - 567 , - 618 , - 473 , - 132 , - 379 , - 430 , - 285 , - 728 , - 191 , - 242 , - 97 , - 540 , - 3 , - 54 , - 693 , - 352 , - 599 , - 650 , - 505 , - 164 , - 411 , - 462 , - 317 , - 760 , - 223 , - 274 , - 129 , - 572 , - 35 , - 86 , - 725 , - 384 , - 631 , - 682 , - 537 , - 196 , - 443 , - 494 , - 349 , - 8 , - 255 , - 306 , - 161 , - 604 , - 67 , - 118 , - 757 , - 416 , - 663 , - 714 , - 569 , - 228 , - 475 , - 526 , - 381 , - 40 , - 287 , - 338 , - 193 , - 636 , - 99 , - 150 , - 5 , - 448 , - 695 , - 746 , - 601 , - 260 , - 507 , - 558 , - 413 , - 72 , - 319 , - 370 , - 225 , - 668 , - 131 , - 182 , - 37 , - 480 , - 727 , - 778 , - 633 , - 292 , - 539 , - 590 , - 445 , - 104 , - 351 , - 402 , - 257 , - 700 , - 163 , - 214 , - 69 , - 512 , - 759 , - 26 , - 665 , - 324 , - 571 , - 622 , - 477 , - 136 , - 383 , - 434 , - 289 , - 732 , - 195 , - 246 , - 101 , - 544 , - 7 , - 58 , - 697 , - 356 , - 603 , - 654 , - 509 , - 168 , - 415 , - 466 , - 321 , - 764 , - 227 , - 278 , - 133 , - 576 , - 39 , - 90 , - 729 , - 388 , - 635 , - 686 , - 541 , - 200 , - 447 , - 498 , - 353 , - 12 , - 259 , - 310 , - 165 , - 608 , - 71 , - 122 , - 761 , - 420 , - 667 , - 718 , - 573 , - 232 , - 479 , - 530 , - 385 , - 44 , - 291 , - 342 , - 197 , - 640 , - 103 , - 154 , - 9 , - 452 , - 699 , - 750 , - 605 , - 264 , - 511 , - 562 , - 417 , - 76 , - 323 , - 374 , - 229 , - 672 , - 135 , - 186 , - 41 , - 484 , - 731 , - 782 , - 637 , - 296 , - 543 , - 594 , - 449 , - 108 , - 355 , - 406 , - 261 , - 704 , - 167 , - 218 , - 73 , - 516 , - 763 , - 30 , - 669 , - 328 , - 575 , - 626 , - 481 , - 140 , - 387 , - 438 , - 293 , - 736 , - 199 , - 250 , - 105 , - 548 , - 11 , - 62 , - 701 , - 360 , - 607 , - 658 , - 513 , - 172 , - 419 , - 470 , - 325 , - 768 , - 231 , - 282 , - 137 , - 580 , - 43 , - 94 , - 733 , - 392 , - 639 , - 690 , - 545 , - 204 , - 451 , - 502 , - 357 , - 16 , - 263 , - 314 , - 169 , - 612 , - 75 , - 126 , - 765 , - 424 , - 671 , - 722 , - 577 , - 236 , - 483 , - 534 , - 389 , - 48 , - 295 , - 346 , - 201 , - 644 , - 107 , - 158 , - 13 , - 456 , - 703 , - 754 , - 609 , - 268 , - 515 , - 566 , - 421 , - 80 , - 327 , - 378 , - 233 , - 676 , - 139 , - 190 , - 45 , - 488 , - 735 , - 2 , - 641 , - 300 , - 547 , - 598 , - 453 , - 112 , - 359 , - 410 , - 265 , - 708 , - 171 , - 222 , - 77 , - 520 , - 767 , - 34 , - 673 , - 332 , - 579 , - 630 , - 485 , - 144 , - 391 , - 442 , - 297 , - 740 , - 203 , - 254 , - 109 , - 552 , - 15 , - 66 , - 705 , - 364 , - 611 , - 662 , - 517 , - 176 , - 423 , - 474 , - 329 , - 772 , - 235 , - 286 , - 141 , - 584 , - 47 , - 98 , - 737 , - 396 , - 643 , - 694 , - 549 , - 208 , - 455 , - 506 , - 361 , - 20 , - 267 , - 318 , - 173 , - 616 , - 79 , - 130 , - 769 , - 428 , - 675 , - 726 , - 581 , - 240 , - 487 , - 538 , - 393 , - 52 , - 299 , - 350 , - 205 , - 648 , - 111 , - 162 , - 17 , - 460 , - 707 , - 758 , - 613 , - 272 , - 519 , - 570 , - 425 , - 84 , - 331 , - 382 , - 237 , - 680 , - 143 , - 194 , - 49 , - 492 , - 739 , - 6 , - 645 , - 304 , - 551 , - 602 , - 457 , - 116 , - 363 , - 414 , - 269 , - 712 , - 175 , - 226 , - 81 , - 524 , - 771 , - 38 , - 677 , - 336 , - 583 , - 634 , - 489 , - 148 , - 395 , - 446 , - 301 , - 744 , - 207 , - 258 , - 113 , - 556 , - 19 , - 70 , - 709 , - 368 , - 615 , - 666 , - 521 , - 180 , - 427 , - 478 , - 333 , - 776 , - 239 , - 290 , - 145 , - 588 , - 51 , - 102 , - 741 , - 400 , - 647 , - 698 , - 553 , - 212 , - 459 , - 510 , - 365 , - 24 , - 271 , - 322 , - 177 , - 620 , - 83 , - 134 , - 773 , - 432 , - 679 , - 730 , - 585 , - 244 , - 491 , - 542 , - 397 , - 56 , - 303 , - 354 , - 209 , - 652 , - 115 , - 166 , - 21 , - 464 , - 711 , - 762 , - 617 , - 276 , - 523 , - 574 , - 429 , - 88 , - 335 , - 386 , - 241 , - 684 , - 147 , - 198 , - 53 , - 496 , - 743 , - 10 , - 649 , - 308 , - 555 , - 606 , - 461 , - 120 , - 367 , - 418 , - 273 , - 716 , - 179 , - 230 , - 85 , - 528 , - 775 , - 42 , - 681 , - 340 , - 587 , - 638 , - 493 , - 152 , - 399 , - 450 , - 305 , - 748 , - 211 , - 262 , - 117 , - 560 , - 23 , - 74 , - 713 , - 372 , - 619 , - 670 , - 525 , - 184 , - 431 , - 482 , - 337 , - 780 , - 243 , - 294 , - 149 , - 592 , - 55 , - 106 , - 745 , - 404 , - 651 , - 702 , - 557 , - 216 , - 463 , - 514 , - 369 , - 28 , - 275 , - 326 , - 181 , - 624 , - 87 , - 138 , - 777 , - 436 , - 683 , - 734 , - 589 , - 248 , - 495 , - 546 , - 401 , - 60 , - 307 , - 358 , - 213 , - 656 , - 119 , - 170 , - 25 , - 468 , - 715 , - 766 , - 621 , - 280 , - 527 , - 578 , - 433 , - 92 , - 339 , - 390 , - 245 , - 688 , - 151 , - 202 , - 57 , - 500 , - 747 , - 14 , - 653 , - 312 , - 559 , - 610 , - 465 , - 124 , - 371 , - 422 , - 277 , - 720 , - 183 , - 234 , - 89 , - 532 , - 779 , - 46 , - 685 , - 344 , - 591 , - 642 , - 497 , - 156 , - 403 , - 454 , - 309 , - 752 , - 215 , - 266 , - 121 , - 564 , - 27 , - 78 , - 717 , - 376 , - 623 , - 674 , - 529 , - 188 , - 435 , - 486 , - 341 , - 0 , - 193 , - 66 , - 419 , - 452 , - 165 , - 358 , - 231 , - 584 , - 617 , - 330 , - 523 , - 396 , - 749 , - 782 , - 495 , - 688 , - 561 , - 114 , - 147 , - 660 , - 53 , - 726 , - 279 , - 312 , - 25 , - 218 , - 91 , - 444 , - 477 , - 190 , - 383 , - 256 , - 609 , - 642 , - 355 , - 548 , - 421 , - 774 , - 7 , - 520 , - 713 , - 586 , - 139 , - 172 , - 685 , - 78 , - 751 , - 304 , - 337 , - 50 , - 243 , - 116 , - 469 , - 502 , - 215 , - 408 , - 281 , - 634 , - 667 , - 380 , - 573 , - 446 , - 799 , - 32 , - 545 , - 738 , - 611 , - 164 , - 197 , - 710 , - 103 , - 776 , - 329 , - 362 , - 75 , - 268 , - 141 , - 494 , - 527 , - 240 , - 433 , - 306 , - 659 , - 692 , - 405 , - 598 , - 471 , - 24 , - 57 , - 570 , - 763 , - 636 , - 189 , - 222 , - 735 , - 128 , - 1 , - 354 , - 387 , - 100 , - 293 , - 166 , - 519 , - 552 , - 265 , - 458 , - 331 , - 684 , - 717 , - 430 , - 623 , - 496 , - 49 , - 82 , - 595 , - 788 , - 661 , - 214 , - 247 , - 760 , - 153 , - 26 , - 379 , - 412 , - 125 , - 318 , - 191 , - 544 , - 577 , - 290 , - 483 , - 356 , - 709 , - 742 , - 455 , - 648 , - 521 , - 74 , - 107 , - 620 , - 13 , - 686 , - 239 , - 272 , - 785 , - 178 , - 51 , - 404 , - 437 , - 150 , - 343 , - 216 , - 569 , - 602 , - 315 , - 508 , - 381 , - 734 , - 767 , - 480 , - 673 , - 546 , - 99 , - 132 , - 645 , - 38 , - 711 , - 264 , - 297 , - 10 , - 203 , - 76 , - 429 , - 462 , - 175 , - 368 , - 241 , - 594 , - 627 , - 340 , - 533 , - 406 , - 759 , - 792 , - 505 , - 698 , - 571 , - 124 , - 157 , - 670 , - 63 , - 736 , - 289 , - 322 , - 35 , - 228 , - 101 , - 454 , - 487 , - 200 , - 393 , - 266 , - 619 , - 652 , - 365 , - 558 , - 431 , - 784 , - 17 , - 530 , - 723 , - 596 , - 149 , - 182 , - 695 , - 88 , - 761 , - 314 , - 347 , - 60 , - 253 , - 126 , - 479 , - 512 , - 225 , - 418 , - 291 , - 644 , - 677 , - 390 , - 583 , - 456 , - 9 , - 42 , - 555 , - 748 , - 621 , - 174 , - 207 , - 720 , - 113 , - 786 , - 339 , - 372 , - 85 , - 278 , - 151 , - 504 , - 537 , - 250 , - 443 , - 316 , - 669 , - 702 , - 415 , - 608 , - 481 , - 34 , - 67 , - 580 , - 773 , - 646 , - 199 , - 232 , - 745 , - 138 , - 11 , - 364 , - 397 , - 110 , - 303 , - 176 , - 529 , - 562 , - 275 , - 468 , - 341 , - 694 , - 727 , - 440 , - 633 , - 506 , - 59 , - 92 , - 605 , - 798 , - 671 , - 224 , - 257 , - 770 , - 163 , - 36 , - 389 , - 422 , - 135 , - 328 , - 201 , - 554 , - 587 , - 300 , - 493 , - 366 , - 719 , - 752 , - 465 , - 658 , - 531 , - 84 , - 117 , - 630 , - 23 , - 696 , - 249 , - 282 , - 795 , - 188 , - 61 , - 414 , - 447 , - 160 , - 353 , - 226 , - 579 , - 612 , - 325 , - 518 , - 391 , - 744 , - 777 , - 490 , - 683 , - 556 , - 109 , - 142 , - 655 , - 48 , - 721 , - 274 , - 307 , - 20 , - 213 , - 86 , - 439 , - 472 , - 185 , - 378 , - 251 , - 604 , - 637 , - 350 , - 543 , - 416 , - 769 , - 2 , - 515 , - 708 , - 581 , - 134 , - 167 , - 680 , - 73 , - 746 , - 299 , - 332 , - 45 , - 238 , - 111 , - 464 , - 497 , - 210 , - 403 , - 276 , - 629 , - 662 , - 375 , - 568 , - 441 , - 794 , - 27 , - 540 , - 733 , - 606 , - 159 , - 192 , - 705 , - 98 , - 771 , - 324 , - 357 , - 70 , - 263 , - 136 , - 489 , - 522 , - 235 , - 428 , - 301 , - 654 , - 687 , - 400 , - 593 , - 466 , - 19 , - 52 , - 565 , - 758 , - 631 , - 184 , - 217 , - 730 , - 123 , - 796 , - 349 , - 382 , - 95 , - 288 , - 161 , - 514 , - 547 , - 260 , - 453 , - 326 , - 679 , - 712 , - 425 , - 618 , - 491 , - 44 , - 77 , - 590 , - 783 , - 656 , - 209 , - 242 , - 755 , - 148 , - 21 , - 374 , - 407 , - 120 , - 313 , - 186 , - 539 , - 572 , - 285 , - 478 , - 351 , - 704 , - 737 , - 450 , - 643 , - 516 , - 69 , - 102 , - 615 , - 8 , - 681 , - 234 , - 267 , - 780 , - 173 , - 46 , - 399 , - 432 , - 145 , - 338 , - 211 , - 564 , - 597 , - 310 , - 503 , - 376 , - 729 , - 762 , - 475 , - 668 , - 541 , - 94 , - 127 , - 640 , - 33 , - 706 , - 259 , - 292 , - 5 , - 198 , - 71 , - 424 , - 457 , - 170 , - 363 , - 236 , - 589 , - 622 , - 335 , - 528 , - 401 , - 754 , - 787 , - 500 , - 693 , - 566 , - 119 , - 152 , - 665 , - 58 , - 731 , - 284 , - 317 , - 30 , - 223 , - 96 , - 449 , - 482 , - 195 , - 388 , - 261 , - 614 , - 647 , - 360 , - 553 , - 426 , - 779 , - 12 , - 525 , - 718 , - 591 , - 144 , - 177 , - 690 , - 83 , - 756 , - 309 , - 342 , - 55 , - 248 , - 121 , - 474 , - 507 , - 220 , - 413 , - 286 , - 639 , - 672 , - 385 , - 578 , - 451 , - 4 , - 37 , - 550 , - 743 , - 616 , - 169 , - 202 , - 715 , - 108 , - 781 , - 334 , - 367 , - 80 , - 273 , - 146 , - 499 , - 532 , - 245 , - 438 , - 311 , - 664 , - 697 , - 410 , - 603 , - 476 , - 29 , - 62 , - 575 , - 768 , - 641 , - 194 , - 227 , - 740 , - 133 , - 6 , - 359 , - 392 , - 105 , - 298 , - 171 , - 524 , - 557 , - 270 , - 463 , - 336 , - 689 , - 722 , - 435 , - 628 , - 501 , - 54 , - 87 , - 600 , - 793 , - 666 , - 219 , - 252 , - 765 , - 158 , - 31 , - 384 , - 417 , - 130 , - 323 , - 196 , - 549 , - 582 , - 295 , - 488 , - 361 , - 714 , - 747 , - 460 , - 653 , - 526 , - 79 , - 112 , - 625 , - 18 , - 691 , - 244 , - 277 , - 790 , - 183 , - 56 , - 409 , - 442 , - 155 , - 348 , - 221 , - 574 , - 607 , - 320 , - 513 , - 386 , - 739 , - 772 , - 485 , - 678 , - 551 , - 104 , - 137 , - 650 , - 43 , - 716 , - 269 , - 302 , - 15 , - 208 , - 81 , - 434 , - 467 , - 180 , - 373 , - 246 , - 599 , - 632 , - 345 , - 538 , - 411 , - 764 , - 797 , - 510 , - 703 , - 576 , - 129 , - 162 , - 675 , - 68 , - 741 , - 294 , - 327 , - 40 , - 233 , - 106 , - 459 , - 492 , - 205 , - 398 , - 271 , - 624 , - 657 , - 370 , - 563 , - 436 , - 789 , - 22 , - 535 , - 728 , - 601 , - 154 , - 187 , - 700 , - 93 , - 766 , - 319 , - 352 , - 65 , - 258 , - 131 , - 484 , - 517 , - 230 , - 423 , - 296 , - 649 , - 682 , - 395 , - 588 , - 461 , - 14 , - 47 , - 560 , - 753 , - 626 , - 179 , - 212 , - 725 , - 118 , - 791 , - 344 , - 377 , - 90 , - 283 , - 156 , - 509 , - 542 , - 255 , - 448 , - 321 , - 674 , - 707 , - 420 , - 613 , - 486 , - 39 , - 72 , - 585 , - 778 , - 651 , - 204 , - 237 , - 750 , - 143 , - 16 , - 369 , - 402 , - 115 , - 308 , - 181 , - 534 , - 567 , - 280 , - 473 , - 346 , - 699 , - 732 , - 445 , - 638 , - 511 , - 64 , - 97 , - 610 , - 3 , - 676 , - 229 , - 262 , - 775 , - 168 , - 41 , - 394 , - 427 , - 140 , - 333 , - 206 , - 559 , - 592 , - 305 , - 498 , - 371 , - 724 , - 757 , - 470 , - 663 , - 536 , - 89 , - 122 , - 635 , - 28 , - 701 , - 254 , - 287 , - 0 , - 661 , - 710 , - 147 , - 604 , - 449 , - 498 , - 751 , - 392 , - 237 , - 286 , - 539 , - 180 , - 25 , - 74 , - 327 , - 784 , - 629 , - 678 , - 115 , - 572 , - 417 , - 466 , - 719 , - 360 , - 205 , - 254 , - 507 , - 148 , - 809 , - 42 , - 295 , - 752 , - 597 , - 646 , - 83 , - 540 , - 385 , - 434 , - 687 , - 328 , - 173 , - 222 , - 475 , - 116 , - 777 , - 10 , - 263 , - 720 , - 565 , - 614 , - 51 , - 508 , - 353 , - 402 , - 655 , - 296 , - 141 , - 190 , - 443 , - 84 , - 745 , - 794 , - 231 , - 688 , - 533 , - 582 , - 19 , - 476 , - 321 , - 370 , - 623 , - 264 , - 109 , - 158 , - 411 , - 52 , - 713 , - 762 , - 199 , - 656 , - 501 , - 550 , - 803 , - 444 , - 289 , - 338 , - 591 , - 232 , - 77 , - 126 , - 379 , - 20 , - 681 , - 730 , - 167 , - 624 , - 469 , - 518 , - 771 , - 412 , - 257 , - 306 , - 559 , - 200 , - 45 , - 94 , - 347 , - 804 , - 649 , - 698 , - 135 , - 592 , - 437 , - 486 , - 739 , - 380 , - 225 , - 274 , - 527 , - 168 , - 13 , - 62 , - 315 , - 772 , - 617 , - 666 , - 103 , - 560 , - 405 , - 454 , - 707 , - 348 , - 193 , - 242 , - 495 , - 136 , - 797 , - 30 , - 283 , - 740 , - 585 , - 634 , - 71 , - 528 , - 373 , - 422 , - 675 , - 316 , - 161 , - 210 , - 463 , - 104 , - 765 , - 814 , - 251 , - 708 , - 553 , - 602 , - 39 , - 496 , - 341 , - 390 , - 643 , - 284 , - 129 , - 178 , - 431 , - 72 , - 733 , - 782 , - 219 , - 676 , - 521 , - 570 , - 7 , - 464 , - 309 , - 358 , - 611 , - 252 , - 97 , - 146 , - 399 , - 40 , - 701 , - 750 , - 187 , - 644 , - 489 , - 538 , - 791 , - 432 , - 277 , - 326 , - 579 , - 220 , - 65 , - 114 , - 367 , - 8 , - 669 , - 718 , - 155 , - 612 , - 457 , - 506 , - 759 , - 400 , - 245 , - 294 , - 547 , - 188 , - 33 , - 82 , - 335 , - 792 , - 637 , - 686 , - 123 , - 580 , - 425 , - 474 , - 727 , - 368 , - 213 , - 262 , - 515 , - 156 , - 1 , - 50 , - 303 , - 760 , - 605 , - 654 , - 91 , - 548 , - 393 , - 442 , - 695 , - 336 , - 181 , - 230 , - 483 , - 124 , - 785 , - 18 , - 271 , - 728 , - 573 , - 622 , - 59 , - 516 , - 361 , - 410 , - 663 , - 304 , - 149 , - 198 , - 451 , - 92 , - 753 , - 802 , - 239 , - 696 , - 541 , - 590 , - 27 , - 484 , - 329 , - 378 , - 631 , - 272 , - 117 , - 166 , - 419 , - 60 , - 721 , - 770 , - 207 , - 664 , - 509 , - 558 , - 811 , - 452 , - 297 , - 346 , - 599 , - 240 , - 85 , - 134 , - 387 , - 28 , - 689 , - 738 , - 175 , - 632 , - 477 , - 526 , - 779 , - 420 , - 265 , - 314 , - 567 , - 208 , - 53 , - 102 , - 355 , - 812 , - 657 , - 706 , - 143 , - 600 , - 445 , - 494 , - 747 , - 388 , - 233 , - 282 , - 535 , - 176 , - 21 , - 70 , - 323 , - 780 , - 625 , - 674 , - 111 , - 568 , - 413 , - 462 , - 715 , - 356 , - 201 , - 250 , - 503 , - 144 , - 805 , - 38 , - 291 , - 748 , - 593 , - 642 , - 79 , - 536 , - 381 , - 430 , - 683 , - 324 , - 169 , - 218 , - 471 , - 112 , - 773 , - 6 , - 259 , - 716 , - 561 , - 610 , - 47 , - 504 , - 349 , - 398 , - 651 , - 292 , - 137 , - 186 , - 439 , - 80 , - 741 , - 790 , - 227 , - 684 , - 529 , - 578 , - 15 , - 472 , - 317 , - 366 , - 619 , - 260 , - 105 , - 154 , - 407 , - 48 , - 709 , - 758 , - 195 , - 652 , - 497 , - 546 , - 799 , - 440 , - 285 , - 334 , - 587 , - 228 , - 73 , - 122 , - 375 , - 16 , - 677 , - 726 , - 163 , - 620 , - 465 , - 514 , - 767 , - 408 , - 253 , - 302 , - 555 , - 196 , - 41 , - 90 , - 343 , - 800 , - 645 , - 694 , - 131 , - 588 , - 433 , - 482 , - 735 , - 376 , - 221 , - 270 , - 523 , - 164 , - 9 , - 58 , - 311 , - 768 , - 613 , - 662 , - 99 , - 556 , - 401 , - 450 , - 703 , - 344 , - 189 , - 238 , - 491 , - 132 , - 793 , - 26 , - 279 , - 736 , - 581 , - 630 , - 67 , - 524 , - 369 , - 418 , - 671 , - 312 , - 157 , - 206 , - 459 , - 100 , - 761 , - 810 , - 247 , - 704 , - 549 , - 598 , - 35 , - 492 , - 337 , - 386 , - 639 , - 280 , - 125 , - 174 , - 427 , - 68 , - 729 , - 778 , - 215 , - 672 , - 517 , - 566 , - 3 , - 460 , - 305 , - 354 , - 607 , - 248 , - 93 , - 142 , - 395 , - 36 , - 697 , - 746 , - 183 , - 640 , - 485 , - 534 , - 787 , - 428 , - 273 , - 322 , - 575 , - 216 , - 61 , - 110 , - 363 , - 4 , - 665 , - 714 , - 151 , - 608 , - 453 , - 502 , - 755 , - 396 , - 241 , - 290 , - 543 , - 184 , - 29 , - 78 , - 331 , - 788 , - 633 , - 682 , - 119 , - 576 , - 421 , - 470 , - 723 , - 364 , - 209 , - 258 , - 511 , - 152 , - 813 , - 46 , - 299 , - 756 , - 601 , - 650 , - 87 , - 544 , - 389 , - 438 , - 691 , - 332 , - 177 , - 226 , - 479 , - 120 , - 781 , - 14 , - 267 , - 724 , - 569 , - 618 , - 55 , - 512 , - 357 , - 406 , - 659 , - 300 , - 145 , - 194 , - 447 , - 88 , - 749 , - 798 , - 235 , - 692 , - 537 , - 586 , - 23 , - 480 , - 325 , - 374 , - 627 , - 268 , - 113 , - 162 , - 415 , - 56 , - 717 , - 766 , - 203 , - 660 , - 505 , - 554 , - 807 , - 448 , - 293 , - 342 , - 595 , - 236 , - 81 , - 130 , - 383 , - 24 , - 685 , - 734 , - 171 , - 628 , - 473 , - 522 , - 775 , - 416 , - 261 , - 310 , - 563 , - 204 , - 49 , - 98 , - 351 , - 808 , - 653 , - 702 , - 139 , - 596 , - 441 , - 490 , - 743 , - 384 , - 229 , - 278 , - 531 , - 172 , - 17 , - 66 , - 319 , - 776 , - 621 , - 670 , - 107 , - 564 , - 409 , - 458 , - 711 , - 352 , - 197 , - 246 , - 499 , - 140 , - 801 , - 34 , - 287 , - 744 , - 589 , - 638 , - 75 , - 532 , - 377 , - 426 , - 679 , - 320 , - 165 , - 214 , - 467 , - 108 , - 769 , - 2 , - 255 , - 712 , - 557 , - 606 , - 43 , - 500 , - 345 , - 394 , - 647 , - 288 , - 133 , - 182 , - 435 , - 76 , - 737 , - 786 , - 223 , - 680 , - 525 , - 574 , - 11 , - 468 , - 313 , - 362 , - 615 , - 256 , - 101 , - 150 , - 403 , - 44 , - 705 , - 754 , - 191 , - 648 , - 493 , - 542 , - 795 , - 436 , - 281 , - 330 , - 583 , - 224 , - 69 , - 118 , - 371 , - 12 , - 673 , - 722 , - 159 , - 616 , - 461 , - 510 , - 763 , - 404 , - 249 , - 298 , - 551 , - 192 , - 37 , - 86 , - 339 , - 796 , - 641 , - 690 , - 127 , - 584 , - 429 , - 478 , - 731 , - 372 , - 217 , - 266 , - 519 , - 160 , - 5 , - 54 , - 307 , - 764 , - 609 , - 658 , - 95 , - 552 , - 397 , - 446 , - 699 , - 340 , - 185 , - 234 , - 487 , - 128 , - 789 , - 22 , - 275 , - 732 , - 577 , - 626 , - 63 , - 520 , - 365 , - 414 , - 667 , - 308 , - 153 , - 202 , - 455 , - 96 , - 757 , - 806 , - 243 , - 700 , - 545 , - 594 , - 31 , - 488 , - 333 , - 382 , - 635 , - 276 , - 121 , - 170 , - 423 , - 64 , - 725 , - 774 , - 211 , - 668 , - 513 , - 562 , - 815 , - 456 , - 301 , - 350 , - 603 , - 244 , - 89 , - 138 , - 391 , - 32 , - 693 , - 742 , - 179 , - 636 , - 481 , - 530 , - 783 , - 424 , - 269 , - 318 , - 571 , - 212 , - 57 , - 106 , - 359 , - 0 , - 181 , - 258 , - 231 , - 100 , - 697 , - 358 , - 747 , - 200 , - 381 , - 458 , - 431 , - 300 , - 65 , - 558 , - 115 , - 400 , - 581 , - 658 , - 631 , - 500 , - 265 , - 758 , - 315 , - 600 , - 781 , - 26 , - 831 , - 700 , - 465 , - 126 , - 515 , - 800 , - 149 , - 226 , - 199 , - 68 , - 665 , - 326 , - 715 , - 168 , - 349 , - 426 , - 399 , - 268 , - 33 , - 526 , - 83 , - 368 , - 549 , - 626 , - 599 , - 468 , - 233 , - 726 , - 283 , - 568 , - 749 , - 826 , - 799 , - 668 , - 433 , - 94 , - 483 , - 768 , - 117 , - 194 , - 167 , - 36 , - 633 , - 294 , - 683 , - 136 , - 317 , - 394 , - 367 , - 236 , - 1 , - 494 , - 51 , - 336 , - 517 , - 594 , - 567 , - 436 , - 201 , - 694 , - 251 , - 536 , - 717 , - 794 , - 767 , - 636 , - 401 , - 62 , - 451 , - 736 , - 85 , - 162 , - 135 , - 4 , - 601 , - 262 , - 651 , - 104 , - 285 , - 362 , - 335 , - 204 , - 801 , - 462 , - 19 , - 304 , - 485 , - 562 , - 535 , - 404 , - 169 , - 662 , - 219 , - 504 , - 685 , - 762 , - 735 , - 604 , - 369 , - 30 , - 419 , - 704 , - 53 , - 130 , - 103 , - 804 , - 569 , - 230 , - 619 , - 72 , - 253 , - 330 , - 303 , - 172 , - 769 , - 430 , - 819 , - 272 , - 453 , - 530 , - 503 , - 372 , - 137 , - 630 , - 187 , - 472 , - 653 , - 730 , - 703 , - 572 , - 337 , - 830 , - 387 , - 672 , - 21 , - 98 , - 71 , - 772 , - 537 , - 198 , - 587 , - 40 , - 221 , - 298 , - 271 , - 140 , - 737 , - 398 , - 787 , - 240 , - 421 , - 498 , - 471 , - 340 , - 105 , - 598 , - 155 , - 440 , - 621 , - 698 , - 671 , - 540 , - 305 , - 798 , - 355 , - 640 , - 821 , - 66 , - 39 , - 740 , - 505 , - 166 , - 555 , - 8 , - 189 , - 266 , - 239 , - 108 , - 705 , - 366 , - 755 , - 208 , - 389 , - 466 , - 439 , - 308 , - 73 , - 566 , - 123 , - 408 , - 589 , - 666 , - 639 , - 508 , - 273 , - 766 , - 323 , - 608 , - 789 , - 34 , - 7 , - 708 , - 473 , - 134 , - 523 , - 808 , - 157 , - 234 , - 207 , - 76 , - 673 , - 334 , - 723 , - 176 , - 357 , - 434 , - 407 , - 276 , - 41 , - 534 , - 91 , - 376 , - 557 , - 634 , - 607 , - 476 , - 241 , - 734 , - 291 , - 576 , - 757 , - 2 , - 807 , - 676 , - 441 , - 102 , - 491 , - 776 , - 125 , - 202 , - 175 , - 44 , - 641 , - 302 , - 691 , - 144 , - 325 , - 402 , - 375 , - 244 , - 9 , - 502 , - 59 , - 344 , - 525 , - 602 , - 575 , - 444 , - 209 , - 702 , - 259 , - 544 , - 725 , - 802 , - 775 , - 644 , - 409 , - 70 , - 459 , - 744 , - 93 , - 170 , - 143 , - 12 , - 609 , - 270 , - 659 , - 112 , - 293 , - 370 , - 343 , - 212 , - 809 , - 470 , - 27 , - 312 , - 493 , - 570 , - 543 , - 412 , - 177 , - 670 , - 227 , - 512 , - 693 , - 770 , - 743 , - 612 , - 377 , - 38 , - 427 , - 712 , - 61 , - 138 , - 111 , - 812 , - 577 , - 238 , - 627 , - 80 , - 261 , - 338 , - 311 , - 180 , - 777 , - 438 , - 827 , - 280 , - 461 , - 538 , - 511 , - 380 , - 145 , - 638 , - 195 , - 480 , - 661 , - 738 , - 711 , - 580 , - 345 , - 6 , - 395 , - 680 , - 29 , - 106 , - 79 , - 780 , - 545 , - 206 , - 595 , - 48 , - 229 , - 306 , - 279 , - 148 , - 745 , - 406 , - 795 , - 248 , - 429 , - 506 , - 479 , - 348 , - 113 , - 606 , - 163 , - 448 , - 629 , - 706 , - 679 , - 548 , - 313 , - 806 , - 363 , - 648 , - 829 , - 74 , - 47 , - 748 , - 513 , - 174 , - 563 , - 16 , - 197 , - 274 , - 247 , - 116 , - 713 , - 374 , - 763 , - 216 , - 397 , - 474 , - 447 , - 316 , - 81 , - 574 , - 131 , - 416 , - 597 , - 674 , - 647 , - 516 , - 281 , - 774 , - 331 , - 616 , - 797 , - 42 , - 15 , - 716 , - 481 , - 142 , - 531 , - 816 , - 165 , - 242 , - 215 , - 84 , - 681 , - 342 , - 731 , - 184 , - 365 , - 442 , - 415 , - 284 , - 49 , - 542 , - 99 , - 384 , - 565 , - 642 , - 615 , - 484 , - 249 , - 742 , - 299 , - 584 , - 765 , - 10 , - 815 , - 684 , - 449 , - 110 , - 499 , - 784 , - 133 , - 210 , - 183 , - 52 , - 649 , - 310 , - 699 , - 152 , - 333 , - 410 , - 383 , - 252 , - 17 , - 510 , - 67 , - 352 , - 533 , - 610 , - 583 , - 452 , - 217 , - 710 , - 267 , - 552 , - 733 , - 810 , - 783 , - 652 , - 417 , - 78 , - 467 , - 752 , - 101 , - 178 , - 151 , - 20 , - 617 , - 278 , - 667 , - 120 , - 301 , - 378 , - 351 , - 220 , - 817 , - 478 , - 35 , - 320 , - 501 , - 578 , - 551 , - 420 , - 185 , - 678 , - 235 , - 520 , - 701 , - 778 , - 751 , - 620 , - 385 , - 46 , - 435 , - 720 , - 69 , - 146 , - 119 , - 820 , - 585 , - 246 , - 635 , - 88 , - 269 , - 346 , - 319 , - 188 , - 785 , - 446 , - 3 , - 288 , - 469 , - 546 , - 519 , - 388 , - 153 , - 646 , - 203 , - 488 , - 669 , - 746 , - 719 , - 588 , - 353 , - 14 , - 403 , - 688 , - 37 , - 114 , - 87 , - 788 , - 553 , - 214 , - 603 , - 56 , - 237 , - 314 , - 287 , - 156 , - 753 , - 414 , - 803 , - 256 , - 437 , - 514 , - 487 , - 356 , - 121 , - 614 , - 171 , - 456 , - 637 , - 714 , - 687 , - 556 , - 321 , - 814 , - 371 , - 656 , - 5 , - 82 , - 55 , - 756 , - 521 , - 182 , - 571 , - 24 , - 205 , - 282 , - 255 , - 124 , - 721 , - 382 , - 771 , - 224 , - 405 , - 482 , - 455 , - 324 , - 89 , - 582 , - 139 , - 424 , - 605 , - 682 , - 655 , - 524 , - 289 , - 782 , - 339 , - 624 , - 805 , - 50 , - 23 , - 724 , - 489 , - 150 , - 539 , - 824 , - 173 , - 250 , - 223 , - 92 , - 689 , - 350 , - 739 , - 192 , - 373 , - 450 , - 423 , - 292 , - 57 , - 550 , - 107 , - 392 , - 573 , - 650 , - 623 , - 492 , - 257 , - 750 , - 307 , - 592 , - 773 , - 18 , - 823 , - 692 , - 457 , - 118 , - 507 , - 792 , - 141 , - 218 , - 191 , - 60 , - 657 , - 318 , - 707 , - 160 , - 341 , - 418 , - 391 , - 260 , - 25 , - 518 , - 75 , - 360 , - 541 , - 618 , - 591 , - 460 , - 225 , - 718 , - 275 , - 560 , - 741 , - 818 , - 791 , - 660 , - 425 , - 86 , - 475 , - 760 , - 109 , - 186 , - 159 , - 28 , - 625 , - 286 , - 675 , - 128 , - 309 , - 386 , - 359 , - 228 , - 825 , - 486 , - 43 , - 328 , - 509 , - 586 , - 559 , - 428 , - 193 , - 686 , - 243 , - 528 , - 709 , - 786 , - 759 , - 628 , - 393 , - 54 , - 443 , - 728 , - 77 , - 154 , - 127 , - 828 , - 593 , - 254 , - 643 , - 96 , - 277 , - 354 , - 327 , - 196 , - 793 , - 454 , - 11 , - 296 , - 477 , - 554 , - 527 , - 396 , - 161 , - 654 , - 211 , - 496 , - 677 , - 754 , - 727 , - 596 , - 361 , - 22 , - 411 , - 696 , - 45 , - 122 , - 95 , - 796 , - 561 , - 222 , - 611 , - 64 , - 245 , - 322 , - 295 , - 164 , - 761 , - 422 , - 811 , - 264 , - 445 , - 522 , - 495 , - 364 , - 129 , - 622 , - 179 , - 464 , - 645 , - 722 , - 695 , - 564 , - 329 , - 822 , - 379 , - 664 , - 13 , - 90 , - 63 , - 764 , - 529 , - 190 , - 579 , - 32 , - 213 , - 290 , - 263 , - 132 , - 729 , - 390 , - 779 , - 232 , - 413 , - 490 , - 463 , - 332 , - 97 , - 590 , - 147 , - 432 , - 613 , - 690 , - 663 , - 532 , - 297 , - 790 , - 347 , - 632 , - 813 , - 58 , - 31 , - 732 , - 497 , - 158 , - 547 , - 0 , - 585 , - 534 , - 695 , - 220 , - 805 , - 754 , - 67 , - 440 , - 177 , - 126 , - 287 , - 660 , - 397 , - 346 , - 507 , - 32 , - 617 , - 566 , - 727 , - 252 , - 837 , - 786 , - 99 , - 472 , - 209 , - 158 , - 319 , - 692 , - 429 , - 378 , - 539 , - 64 , - 649 , - 598 , - 759 , - 284 , - 21 , - 818 , - 131 , - 504 , - 241 , - 190 , - 351 , - 724 , - 461 , - 410 , - 571 , - 96 , - 681 , - 630 , - 791 , - 316 , - 53 , - 2 , - 163 , - 536 , - 273 , - 222 , - 383 , - 756 , - 493 , - 442 , - 603 , - 128 , - 713 , - 662 , - 823 , - 348 , - 85 , - 34 , - 195 , - 568 , - 305 , - 254 , - 415 , - 788 , - 525 , - 474 , - 635 , - 160 , - 745 , - 694 , - 7 , - 380 , - 117 , - 66 , - 227 , - 600 , - 337 , - 286 , - 447 , - 820 , - 557 , - 506 , - 667 , - 192 , - 777 , - 726 , - 39 , - 412 , - 149 , - 98 , - 259 , - 632 , - 369 , - 318 , - 479 , - 4 , - 589 , - 538 , - 699 , - 224 , - 809 , - 758 , - 71 , - 444 , - 181 , - 130 , - 291 , - 664 , - 401 , - 350 , - 511 , - 36 , - 621 , - 570 , - 731 , - 256 , - 841 , - 790 , - 103 , - 476 , - 213 , - 162 , - 323 , - 696 , - 433 , - 382 , - 543 , - 68 , - 653 , - 602 , - 763 , - 288 , - 25 , - 822 , - 135 , - 508 , - 245 , - 194 , - 355 , - 728 , - 465 , - 414 , - 575 , - 100 , - 685 , - 634 , - 795 , - 320 , - 57 , - 6 , - 167 , - 540 , - 277 , - 226 , - 387 , - 760 , - 497 , - 446 , - 607 , - 132 , - 717 , - 666 , - 827 , - 352 , - 89 , - 38 , - 199 , - 572 , - 309 , - 258 , - 419 , - 792 , - 529 , - 478 , - 639 , - 164 , - 749 , - 698 , - 11 , - 384 , - 121 , - 70 , - 231 , - 604 , - 341 , - 290 , - 451 , - 824 , - 561 , - 510 , - 671 , - 196 , - 781 , - 730 , - 43 , - 416 , - 153 , - 102 , - 263 , - 636 , - 373 , - 322 , - 483 , - 8 , - 593 , - 542 , - 703 , - 228 , - 813 , - 762 , - 75 , - 448 , - 185 , - 134 , - 295 , - 668 , - 405 , - 354 , - 515 , - 40 , - 625 , - 574 , - 735 , - 260 , - 845 , - 794 , - 107 , - 480 , - 217 , - 166 , - 327 , - 700 , - 437 , - 386 , - 547 , - 72 , - 657 , - 606 , - 767 , - 292 , - 29 , - 826 , - 139 , - 512 , - 249 , - 198 , - 359 , - 732 , - 469 , - 418 , - 579 , - 104 , - 689 , - 638 , - 799 , - 324 , - 61 , - 10 , - 171 , - 544 , - 281 , - 230 , - 391 , - 764 , - 501 , - 450 , - 611 , - 136 , - 721 , - 670 , - 831 , - 356 , - 93 , - 42 , - 203 , - 576 , - 313 , - 262 , - 423 , - 796 , - 533 , - 482 , - 643 , - 168 , - 753 , - 702 , - 15 , - 388 , - 125 , - 74 , - 235 , - 608 , - 345 , - 294 , - 455 , - 828 , - 565 , - 514 , - 675 , - 200 , - 785 , - 734 , - 47 , - 420 , - 157 , - 106 , - 267 , - 640 , - 377 , - 326 , - 487 , - 12 , - 597 , - 546 , - 707 , - 232 , - 817 , - 766 , - 79 , - 452 , - 189 , - 138 , - 299 , - 672 , - 409 , - 358 , - 519 , - 44 , - 629 , - 578 , - 739 , - 264 , - 1 , - 798 , - 111 , - 484 , - 221 , - 170 , - 331 , - 704 , - 441 , - 390 , - 551 , - 76 , - 661 , - 610 , - 771 , - 296 , - 33 , - 830 , - 143 , - 516 , - 253 , - 202 , - 363 , - 736 , - 473 , - 422 , - 583 , - 108 , - 693 , - 642 , - 803 , - 328 , - 65 , - 14 , - 175 , - 548 , - 285 , - 234 , - 395 , - 768 , - 505 , - 454 , - 615 , - 140 , - 725 , - 674 , - 835 , - 360 , - 97 , - 46 , - 207 , - 580 , - 317 , - 266 , - 427 , - 800 , - 537 , - 486 , - 647 , - 172 , - 757 , - 706 , - 19 , - 392 , - 129 , - 78 , - 239 , - 612 , - 349 , - 298 , - 459 , - 832 , - 569 , - 518 , - 679 , - 204 , - 789 , - 738 , - 51 , - 424 , - 161 , - 110 , - 271 , - 644 , - 381 , - 330 , - 491 , - 16 , - 601 , - 550 , - 711 , - 236 , - 821 , - 770 , - 83 , - 456 , - 193 , - 142 , - 303 , - 676 , - 413 , - 362 , - 523 , - 48 , - 633 , - 582 , - 743 , - 268 , - 5 , - 802 , - 115 , - 488 , - 225 , - 174 , - 335 , - 708 , - 445 , - 394 , - 555 , - 80 , - 665 , - 614 , - 775 , - 300 , - 37 , - 834 , - 147 , - 520 , - 257 , - 206 , - 367 , - 740 , - 477 , - 426 , - 587 , - 112 , - 697 , - 646 , - 807 , - 332 , - 69 , - 18 , - 179 , - 552 , - 289 , - 238 , - 399 , - 772 , - 509 , - 458 , - 619 , - 144 , - 729 , - 678 , - 839 , - 364 , - 101 , - 50 , - 211 , - 584 , - 321 , - 270 , - 431 , - 804 , - 541 , - 490 , - 651 , - 176 , - 761 , - 710 , - 23 , - 396 , - 133 , - 82 , - 243 , - 616 , - 353 , - 302 , - 463 , - 836 , - 573 , - 522 , - 683 , - 208 , - 793 , - 742 , - 55 , - 428 , - 165 , - 114 , - 275 , - 648 , - 385 , - 334 , - 495 , - 20 , - 605 , - 554 , - 715 , - 240 , - 825 , - 774 , - 87 , - 460 , - 197 , - 146 , - 307 , - 680 , - 417 , - 366 , - 527 , - 52 , - 637 , - 586 , - 747 , - 272 , - 9 , - 806 , - 119 , - 492 , - 229 , - 178 , - 339 , - 712 , - 449 , - 398 , - 559 , - 84 , - 669 , - 618 , - 779 , - 304 , - 41 , - 838 , - 151 , - 524 , - 261 , - 210 , - 371 , - 744 , - 481 , - 430 , - 591 , - 116 , - 701 , - 650 , - 811 , - 336 , - 73 , - 22 , - 183 , - 556 , - 293 , - 242 , - 403 , - 776 , - 513 , - 462 , - 623 , - 148 , - 733 , - 682 , - 843 , - 368 , - 105 , - 54 , - 215 , - 588 , - 325 , - 274 , - 435 , - 808 , - 545 , - 494 , - 655 , - 180 , - 765 , - 714 , - 27 , - 400 , - 137 , - 86 , - 247 , - 620 , - 357 , - 306 , - 467 , - 840 , - 577 , - 526 , - 687 , - 212 , - 797 , - 746 , - 59 , - 432 , - 169 , - 118 , - 279 , - 652 , - 389 , - 338 , - 499 , - 24 , - 609 , - 558 , - 719 , - 244 , - 829 , - 778 , - 91 , - 464 , - 201 , - 150 , - 311 , - 684 , - 421 , - 370 , - 531 , - 56 , - 641 , - 590 , - 751 , - 276 , - 13 , - 810 , - 123 , - 496 , - 233 , - 182 , - 343 , - 716 , - 453 , - 402 , - 563 , - 88 , - 673 , - 622 , - 783 , - 308 , - 45 , - 842 , - 155 , - 528 , - 265 , - 214 , - 375 , - 748 , - 485 , - 434 , - 595 , - 120 , - 705 , - 654 , - 815 , - 340 , - 77 , - 26 , - 187 , - 560 , - 297 , - 246 , - 407 , - 780 , - 517 , - 466 , - 627 , - 152 , - 737 , - 686 , - 847 , - 372 , - 109 , - 58 , - 219 , - 592 , - 329 , - 278 , - 439 , - 812 , - 549 , - 498 , - 659 , - 184 , - 769 , - 718 , - 31 , - 404 , - 141 , - 90 , - 251 , - 624 , - 361 , - 310 , - 471 , - 844 , - 581 , - 530 , - 691 , - 216 , - 801 , - 750 , - 63 , - 436 , - 173 , - 122 , - 283 , - 656 , - 393 , - 342 , - 503 , - 28 , - 613 , - 562 , - 723 , - 248 , - 833 , - 782 , - 95 , - 468 , - 205 , - 154 , - 315 , - 688 , - 425 , - 374 , - 535 , - 60 , - 645 , - 594 , - 755 , - 280 , - 17 , - 814 , - 127 , - 500 , - 237 , - 186 , - 347 , - 720 , - 457 , - 406 , - 567 , - 92 , - 677 , - 626 , - 787 , - 312 , - 49 , - 846 , - 159 , - 532 , - 269 , - 218 , - 379 , - 752 , - 489 , - 438 , - 599 , - 124 , - 709 , - 658 , - 819 , - 344 , - 81 , - 30 , - 191 , - 564 , - 301 , - 250 , - 411 , - 784 , - 521 , - 470 , - 631 , - 156 , - 741 , - 690 , - 3 , - 376 , - 113 , - 62 , - 223 , - 596 , - 333 , - 282 , - 443 , - 816 , - 553 , - 502 , - 663 , - 188 , - 773 , - 722 , - 35 , - 408 , - 145 , - 94 , - 255 , - 628 , - 365 , - 314 , - 475 , - 0 , - 65 , - 226 , - 483 , - 836 , - 421 , - 102 , - 743 , - 616 , - 585 , - 650 , - 811 , - 204 , - 557 , - 142 , - 687 , - 464 , - 337 , - 306 , - 371 , - 532 , - 789 , - 278 , - 727 , - 408 , - 185 , - 58 , - 27 , - 92 , - 253 , - 510 , - 863 , - 448 , - 129 , - 770 , - 643 , - 612 , - 677 , - 838 , - 231 , - 584 , - 169 , - 714 , - 491 , - 364 , - 333 , - 398 , - 559 , - 816 , - 305 , - 754 , - 435 , - 212 , - 85 , - 54 , - 119 , - 280 , - 537 , - 26 , - 475 , - 156 , - 797 , - 670 , - 639 , - 704 , - 1 , - 258 , - 611 , - 196 , - 741 , - 518 , - 391 , - 360 , - 425 , - 586 , - 843 , - 332 , - 781 , - 462 , - 239 , - 112 , - 81 , - 146 , - 307 , - 564 , - 53 , - 502 , - 183 , - 824 , - 697 , - 666 , - 731 , - 28 , - 285 , - 638 , - 223 , - 768 , - 545 , - 418 , - 387 , - 452 , - 613 , - 6 , - 359 , - 808 , - 489 , - 266 , - 139 , - 108 , - 173 , - 334 , - 591 , - 80 , - 529 , - 210 , - 851 , - 724 , - 693 , - 758 , - 55 , - 312 , - 665 , - 250 , - 795 , - 572 , - 445 , - 414 , - 479 , - 640 , - 33 , - 386 , - 835 , - 516 , - 293 , - 166 , - 135 , - 200 , - 361 , - 618 , - 107 , - 556 , - 237 , - 14 , - 751 , - 720 , - 785 , - 82 , - 339 , - 692 , - 277 , - 822 , - 599 , - 472 , - 441 , - 506 , - 667 , - 60 , - 413 , - 862 , - 543 , - 320 , - 193 , - 162 , - 227 , - 388 , - 645 , - 134 , - 583 , - 264 , - 41 , - 778 , - 747 , - 812 , - 109 , - 366 , - 719 , - 304 , - 849 , - 626 , - 499 , - 468 , - 533 , - 694 , - 87 , - 440 , - 25 , - 570 , - 347 , - 220 , - 189 , - 254 , - 415 , - 672 , - 161 , - 610 , - 291 , - 68 , - 805 , - 774 , - 839 , - 136 , - 393 , - 746 , - 331 , - 12 , - 653 , - 526 , - 495 , - 560 , - 721 , - 114 , - 467 , - 52 , - 597 , - 374 , - 247 , - 216 , - 281 , - 442 , - 699 , - 188 , - 637 , - 318 , - 95 , - 832 , - 801 , - 2 , - 163 , - 420 , - 773 , - 358 , - 39 , - 680 , - 553 , - 522 , - 587 , - 748 , - 141 , - 494 , - 79 , - 624 , - 401 , - 274 , - 243 , - 308 , - 469 , - 726 , - 215 , - 664 , - 345 , - 122 , - 859 , - 828 , - 29 , - 190 , - 447 , - 800 , - 385 , - 66 , - 707 , - 580 , - 549 , - 614 , - 775 , - 168 , - 521 , - 106 , - 651 , - 428 , - 301 , - 270 , - 335 , - 496 , - 753 , - 242 , - 691 , - 372 , - 149 , - 22 , - 855 , - 56 , - 217 , - 474 , - 827 , - 412 , - 93 , - 734 , - 607 , - 576 , - 641 , - 802 , - 195 , - 548 , - 133 , - 678 , - 455 , - 328 , - 297 , - 362 , - 523 , - 780 , - 269 , - 718 , - 399 , - 176 , - 49 , - 18 , - 83 , - 244 , - 501 , - 854 , - 439 , - 120 , - 761 , - 634 , - 603 , - 668 , - 829 , - 222 , - 575 , - 160 , - 705 , - 482 , - 355 , - 324 , - 389 , - 550 , - 807 , - 296 , - 745 , - 426 , - 203 , - 76 , - 45 , - 110 , - 271 , - 528 , - 17 , - 466 , - 147 , - 788 , - 661 , - 630 , - 695 , - 856 , - 249 , - 602 , - 187 , - 732 , - 509 , - 382 , - 351 , - 416 , - 577 , - 834 , - 323 , - 772 , - 453 , - 230 , - 103 , - 72 , - 137 , - 298 , - 555 , - 44 , - 493 , - 174 , - 815 , - 688 , - 657 , - 722 , - 19 , - 276 , - 629 , - 214 , - 759 , - 536 , - 409 , - 378 , - 443 , - 604 , - 861 , - 350 , - 799 , - 480 , - 257 , - 130 , - 99 , - 164 , - 325 , - 582 , - 71 , - 520 , - 201 , - 842 , - 715 , - 684 , - 749 , - 46 , - 303 , - 656 , - 241 , - 786 , - 563 , - 436 , - 405 , - 470 , - 631 , - 24 , - 377 , - 826 , - 507 , - 284 , - 157 , - 126 , - 191 , - 352 , - 609 , - 98 , - 547 , - 228 , - 5 , - 742 , - 711 , - 776 , - 73 , - 330 , - 683 , - 268 , - 813 , - 590 , - 463 , - 432 , - 497 , - 658 , - 51 , - 404 , - 853 , - 534 , - 311 , - 184 , - 153 , - 218 , - 379 , - 636 , - 125 , - 574 , - 255 , - 32 , - 769 , - 738 , - 803 , - 100 , - 357 , - 710 , - 295 , - 840 , - 617 , - 490 , - 459 , - 524 , - 685 , - 78 , - 431 , - 16 , - 561 , - 338 , - 211 , - 180 , - 245 , - 406 , - 663 , - 152 , - 601 , - 282 , - 59 , - 796 , - 765 , - 830 , - 127 , - 384 , - 737 , - 322 , - 3 , - 644 , - 517 , - 486 , - 551 , - 712 , - 105 , - 458 , - 43 , - 588 , - 365 , - 238 , - 207 , - 272 , - 433 , - 690 , - 179 , - 628 , - 309 , - 86 , - 823 , - 792 , - 857 , - 154 , - 411 , - 764 , - 349 , - 30 , - 671 , - 544 , - 513 , - 578 , - 739 , - 132 , - 485 , - 70 , - 615 , - 392 , - 265 , - 234 , - 299 , - 460 , - 717 , - 206 , - 655 , - 336 , - 113 , - 850 , - 819 , - 20 , - 181 , - 438 , - 791 , - 376 , - 57 , - 698 , - 571 , - 540 , - 605 , - 766 , - 159 , - 512 , - 97 , - 642 , - 419 , - 292 , - 261 , - 326 , - 487 , - 744 , - 233 , - 682 , - 363 , - 140 , - 13 , - 846 , - 47 , - 208 , - 465 , - 818 , - 403 , - 84 , - 725 , - 598 , - 567 , - 632 , - 793 , - 186 , - 539 , - 124 , - 669 , - 446 , - 319 , - 288 , - 353 , - 514 , - 771 , - 260 , - 709 , - 390 , - 167 , - 40 , - 9 , - 74 , - 235 , - 492 , - 845 , - 430 , - 111 , - 752 , - 625 , - 594 , - 659 , - 820 , - 213 , - 566 , - 151 , - 696 , - 473 , - 346 , - 315 , - 380 , - 541 , - 798 , - 287 , - 736 , - 417 , - 194 , - 67 , - 36 , - 101 , - 262 , - 519 , - 8 , - 457 , - 138 , - 779 , - 652 , - 621 , - 686 , - 847 , - 240 , - 593 , - 178 , - 723 , - 500 , - 373 , - 342 , - 407 , - 568 , - 825 , - 314 , - 763 , - 444 , - 221 , - 94 , - 63 , - 128 , - 289 , - 546 , - 35 , - 484 , - 165 , - 806 , - 679 , - 648 , - 713 , - 10 , - 267 , - 620 , - 205 , - 750 , - 527 , - 400 , - 369 , - 434 , - 595 , - 852 , - 341 , - 790 , - 471 , - 248 , - 121 , - 90 , - 155 , - 316 , - 573 , - 62 , - 511 , - 192 , - 833 , - 706 , - 675 , - 740 , - 37 , - 294 , - 647 , - 232 , - 777 , - 554 , - 427 , - 396 , - 461 , - 622 , - 15 , - 368 , - 817 , - 498 , - 275 , - 148 , - 117 , - 182 , - 343 , - 600 , - 89 , - 538 , - 219 , - 860 , - 733 , - 702 , - 767 , - 64 , - 321 , - 674 , - 259 , - 804 , - 581 , - 454 , - 423 , - 488 , - 649 , - 42 , - 395 , - 844 , - 525 , - 302 , - 175 , - 144 , - 209 , - 370 , - 627 , - 116 , - 565 , - 246 , - 23 , - 760 , - 729 , - 794 , - 91 , - 348 , - 701 , - 286 , - 831 , - 608 , - 481 , - 450 , - 515 , - 676 , - 69 , - 422 , - 7 , - 552 , - 329 , - 202 , - 171 , - 236 , - 397 , - 654 , - 143 , - 592 , - 273 , - 50 , - 787 , - 756 , - 821 , - 118 , - 375 , - 728 , - 313 , - 858 , - 635 , - 508 , - 477 , - 542 , - 703 , - 96 , - 449 , - 34 , - 579 , - 356 , - 229 , - 198 , - 263 , - 424 , - 681 , - 170 , - 619 , - 300 , - 77 , - 814 , - 783 , - 848 , - 145 , - 402 , - 755 , - 340 , - 21 , - 662 , - 535 , - 504 , - 569 , - 730 , - 123 , - 476 , - 61 , - 606 , - 383 , - 256 , - 225 , - 290 , - 451 , - 708 , - 197 , - 646 , - 327 , - 104 , - 841 , - 810 , - 11 , - 172 , - 429 , - 782 , - 367 , - 48 , - 689 , - 562 , - 531 , - 596 , - 757 , - 150 , - 503 , - 88 , - 633 , - 410 , - 283 , - 252 , - 317 , - 478 , - 735 , - 224 , - 673 , - 354 , - 131 , - 4 , - 837 , - 38 , - 199 , - 456 , - 809 , - 394 , - 75 , - 716 , - 589 , - 558 , - 623 , - 784 , - 177 , - 530 , - 115 , - 660 , - 437 , - 310 , - 279 , - 344 , - 505 , - 762 , - 251 , - 700 , - 381 , - 158 , - 31 , - 0 , - 603 , - 106 , - 269 , - 212 , - 815 , - 318 , - 481 , - 424 , - 147 , - 530 , - 693 , - 636 , - 359 , - 742 , - 25 , - 848 , - 571 , - 74 , - 237 , - 180 , - 783 , - 286 , - 449 , - 392 , - 115 , - 498 , - 661 , - 604 , - 327 , - 710 , - 873 , - 816 , - 539 , - 42 , - 205 , - 148 , - 751 , - 254 , - 417 , - 360 , - 83 , - 466 , - 629 , - 572 , - 295 , - 678 , - 841 , - 784 , - 507 , - 10 , - 173 , - 116 , - 719 , - 222 , - 385 , - 328 , - 51 , - 434 , - 597 , - 540 , - 263 , - 646 , - 809 , - 752 , - 475 , - 858 , - 141 , - 84 , - 687 , - 190 , - 353 , - 296 , - 19 , - 402 , - 565 , - 508 , - 231 , - 614 , - 777 , - 720 , - 443 , - 826 , - 109 , - 52 , - 655 , - 158 , - 321 , - 264 , - 867 , - 370 , - 533 , - 476 , - 199 , - 582 , - 745 , - 688 , - 411 , - 794 , - 77 , - 20 , - 623 , - 126 , - 289 , - 232 , - 835 , - 338 , - 501 , - 444 , - 167 , - 550 , - 713 , - 656 , - 379 , - 762 , - 45 , - 868 , - 591 , - 94 , - 257 , - 200 , - 803 , - 306 , - 469 , - 412 , - 135 , - 518 , - 681 , - 624 , - 347 , - 730 , - 13 , - 836 , - 559 , - 62 , - 225 , - 168 , - 771 , - 274 , - 437 , - 380 , - 103 , - 486 , - 649 , - 592 , - 315 , - 698 , - 861 , - 804 , - 527 , - 30 , - 193 , - 136 , - 739 , - 242 , - 405 , - 348 , - 71 , - 454 , - 617 , - 560 , - 283 , - 666 , - 829 , - 772 , - 495 , - 878 , - 161 , - 104 , - 707 , - 210 , - 373 , - 316 , - 39 , - 422 , - 585 , - 528 , - 251 , - 634 , - 797 , - 740 , - 463 , - 846 , - 129 , - 72 , - 675 , - 178 , - 341 , - 284 , - 7 , - 390 , - 553 , - 496 , - 219 , - 602 , - 765 , - 708 , - 431 , - 814 , - 97 , - 40 , - 643 , - 146 , - 309 , - 252 , - 855 , - 358 , - 521 , - 464 , - 187 , - 570 , - 733 , - 676 , - 399 , - 782 , - 65 , - 8 , - 611 , - 114 , - 277 , - 220 , - 823 , - 326 , - 489 , - 432 , - 155 , - 538 , - 701 , - 644 , - 367 , - 750 , - 33 , - 856 , - 579 , - 82 , - 245 , - 188 , - 791 , - 294 , - 457 , - 400 , - 123 , - 506 , - 669 , - 612 , - 335 , - 718 , - 1 , - 824 , - 547 , - 50 , - 213 , - 156 , - 759 , - 262 , - 425 , - 368 , - 91 , - 474 , - 637 , - 580 , - 303 , - 686 , - 849 , - 792 , - 515 , - 18 , - 181 , - 124 , - 727 , - 230 , - 393 , - 336 , - 59 , - 442 , - 605 , - 548 , - 271 , - 654 , - 817 , - 760 , - 483 , - 866 , - 149 , - 92 , - 695 , - 198 , - 361 , - 304 , - 27 , - 410 , - 573 , - 516 , - 239 , - 622 , - 785 , - 728 , - 451 , - 834 , - 117 , - 60 , - 663 , - 166 , - 329 , - 272 , - 875 , - 378 , - 541 , - 484 , - 207 , - 590 , - 753 , - 696 , - 419 , - 802 , - 85 , - 28 , - 631 , - 134 , - 297 , - 240 , - 843 , - 346 , - 509 , - 452 , - 175 , - 558 , - 721 , - 664 , - 387 , - 770 , - 53 , - 876 , - 599 , - 102 , - 265 , - 208 , - 811 , - 314 , - 477 , - 420 , - 143 , - 526 , - 689 , - 632 , - 355 , - 738 , - 21 , - 844 , - 567 , - 70 , - 233 , - 176 , - 779 , - 282 , - 445 , - 388 , - 111 , - 494 , - 657 , - 600 , - 323 , - 706 , - 869 , - 812 , - 535 , - 38 , - 201 , - 144 , - 747 , - 250 , - 413 , - 356 , - 79 , - 462 , - 625 , - 568 , - 291 , - 674 , - 837 , - 780 , - 503 , - 6 , - 169 , - 112 , - 715 , - 218 , - 381 , - 324 , - 47 , - 430 , - 593 , - 536 , - 259 , - 642 , - 805 , - 748 , - 471 , - 854 , - 137 , - 80 , - 683 , - 186 , - 349 , - 292 , - 15 , - 398 , - 561 , - 504 , - 227 , - 610 , - 773 , - 716 , - 439 , - 822 , - 105 , - 48 , - 651 , - 154 , - 317 , - 260 , - 863 , - 366 , - 529 , - 472 , - 195 , - 578 , - 741 , - 684 , - 407 , - 790 , - 73 , - 16 , - 619 , - 122 , - 285 , - 228 , - 831 , - 334 , - 497 , - 440 , - 163 , - 546 , - 709 , - 652 , - 375 , - 758 , - 41 , - 864 , - 587 , - 90 , - 253 , - 196 , - 799 , - 302 , - 465 , - 408 , - 131 , - 514 , - 677 , - 620 , - 343 , - 726 , - 9 , - 832 , - 555 , - 58 , - 221 , - 164 , - 767 , - 270 , - 433 , - 376 , - 99 , - 482 , - 645 , - 588 , - 311 , - 694 , - 857 , - 800 , - 523 , - 26 , - 189 , - 132 , - 735 , - 238 , - 401 , - 344 , - 67 , - 450 , - 613 , - 556 , - 279 , - 662 , - 825 , - 768 , - 491 , - 874 , - 157 , - 100 , - 703 , - 206 , - 369 , - 312 , - 35 , - 418 , - 581 , - 524 , - 247 , - 630 , - 793 , - 736 , - 459 , - 842 , - 125 , - 68 , - 671 , - 174 , - 337 , - 280 , - 3 , - 386 , - 549 , - 492 , - 215 , - 598 , - 761 , - 704 , - 427 , - 810 , - 93 , - 36 , - 639 , - 142 , - 305 , - 248 , - 851 , - 354 , - 517 , - 460 , - 183 , - 566 , - 729 , - 672 , - 395 , - 778 , - 61 , - 4 , - 607 , - 110 , - 273 , - 216 , - 819 , - 322 , - 485 , - 428 , - 151 , - 534 , - 697 , - 640 , - 363 , - 746 , - 29 , - 852 , - 575 , - 78 , - 241 , - 184 , - 787 , - 290 , - 453 , - 396 , - 119 , - 502 , - 665 , - 608 , - 331 , - 714 , - 877 , - 820 , - 543 , - 46 , - 209 , - 152 , - 755 , - 258 , - 421 , - 364 , - 87 , - 470 , - 633 , - 576 , - 299 , - 682 , - 845 , - 788 , - 511 , - 14 , - 177 , - 120 , - 723 , - 226 , - 389 , - 332 , - 55 , - 438 , - 601 , - 544 , - 267 , - 650 , - 813 , - 756 , - 479 , - 862 , - 145 , - 88 , - 691 , - 194 , - 357 , - 300 , - 23 , - 406 , - 569 , - 512 , - 235 , - 618 , - 781 , - 724 , - 447 , - 830 , - 113 , - 56 , - 659 , - 162 , - 325 , - 268 , - 871 , - 374 , - 537 , - 480 , - 203 , - 586 , - 749 , - 692 , - 415 , - 798 , - 81 , - 24 , - 627 , - 130 , - 293 , - 236 , - 839 , - 342 , - 505 , - 448 , - 171 , - 554 , - 717 , - 660 , - 383 , - 766 , - 49 , - 872 , - 595 , - 98 , - 261 , - 204 , - 807 , - 310 , - 473 , - 416 , - 139 , - 522 , - 685 , - 628 , - 351 , - 734 , - 17 , - 840 , - 563 , - 66 , - 229 , - 172 , - 775 , - 278 , - 441 , - 384 , - 107 , - 490 , - 653 , - 596 , - 319 , - 702 , - 865 , - 808 , - 531 , - 34 , - 197 , - 140 , - 743 , - 246 , - 409 , - 352 , - 75 , - 458 , - 621 , - 564 , - 287 , - 670 , - 833 , - 776 , - 499 , - 2 , - 165 , - 108 , - 711 , - 214 , - 377 , - 320 , - 43 , - 426 , - 589 , - 532 , - 255 , - 638 , - 801 , - 744 , - 467 , - 850 , - 133 , - 76 , - 679 , - 182 , - 345 , - 288 , - 11 , - 394 , - 557 , - 500 , - 223 , - 606 , - 769 , - 712 , - 435 , - 818 , - 101 , - 44 , - 647 , - 150 , - 313 , - 256 , - 859 , - 362 , - 525 , - 468 , - 191 , - 574 , - 737 , - 680 , - 403 , - 786 , - 69 , - 12 , - 615 , - 118 , - 281 , - 224 , - 827 , - 330 , - 493 , - 436 , - 159 , - 542 , - 705 , - 648 , - 371 , - 754 , - 37 , - 860 , - 583 , - 86 , - 249 , - 192 , - 795 , - 298 , - 461 , - 404 , - 127 , - 510 , - 673 , - 616 , - 339 , - 722 , - 5 , - 828 , - 551 , - 54 , - 217 , - 160 , - 763 , - 266 , - 429 , - 372 , - 95 , - 478 , - 641 , - 584 , - 307 , - 690 , - 853 , - 796 , - 519 , - 22 , - 185 , - 128 , - 731 , - 234 , - 397 , - 340 , - 63 , - 446 , - 609 , - 552 , - 275 , - 658 , - 821 , - 764 , - 487 , - 870 , - 153 , - 96 , - 699 , - 202 , - 365 , - 308 , - 31 , - 414 , - 577 , - 520 , - 243 , - 626 , - 789 , - 732 , - 455 , - 838 , - 121 , - 64 , - 667 , - 170 , - 333 , - 276 , - 879 , - 382 , - 545 , - 488 , - 211 , - 594 , - 757 , - 700 , - 423 , - 806 , - 89 , - 32 , - 635 , - 138 , - 301 , - 244 , - 847 , - 350 , - 513 , - 456 , - 179 , - 562 , - 725 , - 668 , - 391 , - 774 , - 57 , - 0 , - 87 , - 398 , - 37 , - 796 , - 883 , - 298 , - 833 , - 696 , - 783 , - 198 , - 733 , - 596 , - 683 , - 98 , - 633 , - 496 , - 583 , - 894 , - 533 , - 396 , - 483 , - 794 , - 433 , - 296 , - 383 , - 694 , - 333 , - 196 , - 283 , - 594 , - 233 , - 96 , - 183 , - 494 , - 133 , - 892 , - 83 , - 394 , - 33 , - 792 , - 879 , - 294 , - 829 , - 692 , - 779 , - 194 , - 729 , - 592 , - 679 , - 94 , - 629 , - 492 , - 579 , - 890 , - 529 , - 392 , - 479 , - 790 , - 429 , - 292 , - 379 , - 690 , - 329 , - 192 , - 279 , - 590 , - 229 , - 92 , - 179 , - 490 , - 129 , - 888 , - 79 , - 390 , - 29 , - 788 , - 875 , - 290 , - 825 , - 688 , - 775 , - 190 , - 725 , - 588 , - 675 , - 90 , - 625 , - 488 , - 575 , - 886 , - 525 , - 388 , - 475 , - 786 , - 425 , - 288 , - 375 , - 686 , - 325 , - 188 , - 275 , - 586 , - 225 , - 88 , - 175 , - 486 , - 125 , - 884 , - 75 , - 386 , - 25 , - 784 , - 871 , - 286 , - 821 , - 684 , - 771 , - 186 , - 721 , - 584 , - 671 , - 86 , - 621 , - 484 , - 571 , - 882 , - 521 , - 384 , - 471 , - 782 , - 421 , - 284 , - 371 , - 682 , - 321 , - 184 , - 271 , - 582 , - 221 , - 84 , - 171 , - 482 , - 121 , - 880 , - 71 , - 382 , - 21 , - 780 , - 867 , - 282 , - 817 , - 680 , - 767 , - 182 , - 717 , - 580 , - 667 , - 82 , - 617 , - 480 , - 567 , - 878 , - 517 , - 380 , - 467 , - 778 , - 417 , - 280 , - 367 , - 678 , - 317 , - 180 , - 267 , - 578 , - 217 , - 80 , - 167 , - 478 , - 117 , - 876 , - 67 , - 378 , - 17 , - 776 , - 863 , - 278 , - 813 , - 676 , - 763 , - 178 , - 713 , - 576 , - 663 , - 78 , - 613 , - 476 , - 563 , - 874 , - 513 , - 376 , - 463 , - 774 , - 413 , - 276 , - 363 , - 674 , - 313 , - 176 , - 263 , - 574 , - 213 , - 76 , - 163 , - 474 , - 113 , - 872 , - 63 , - 374 , - 13 , - 772 , - 859 , - 274 , - 809 , - 672 , - 759 , - 174 , - 709 , - 572 , - 659 , - 74 , - 609 , - 472 , - 559 , - 870 , - 509 , - 372 , - 459 , - 770 , - 409 , - 272 , - 359 , - 670 , - 309 , - 172 , - 259 , - 570 , - 209 , - 72 , - 159 , - 470 , - 109 , - 868 , - 59 , - 370 , - 9 , - 768 , - 855 , - 270 , - 805 , - 668 , - 755 , - 170 , - 705 , - 568 , - 655 , - 70 , - 605 , - 468 , - 555 , - 866 , - 505 , - 368 , - 455 , - 766 , - 405 , - 268 , - 355 , - 666 , - 305 , - 168 , - 255 , - 566 , - 205 , - 68 , - 155 , - 466 , - 105 , - 864 , - 55 , - 366 , - 5 , - 764 , - 851 , - 266 , - 801 , - 664 , - 751 , - 166 , - 701 , - 564 , - 651 , - 66 , - 601 , - 464 , - 551 , - 862 , - 501 , - 364 , - 451 , - 762 , - 401 , - 264 , - 351 , - 662 , - 301 , - 164 , - 251 , - 562 , - 201 , - 64 , - 151 , - 462 , - 101 , - 860 , - 51 , - 362 , - 1 , - 760 , - 847 , - 262 , - 797 , - 660 , - 747 , - 162 , - 697 , - 560 , - 647 , - 62 , - 597 , - 460 , - 547 , - 858 , - 497 , - 360 , - 447 , - 758 , - 397 , - 260 , - 347 , - 658 , - 297 , - 160 , - 247 , - 558 , - 197 , - 60 , - 147 , - 458 , - 97 , - 856 , - 47 , - 358 , - 893 , - 756 , - 843 , - 258 , - 793 , - 656 , - 743 , - 158 , - 693 , - 556 , - 643 , - 58 , - 593 , - 456 , - 543 , - 854 , - 493 , - 356 , - 443 , - 754 , - 393 , - 256 , - 343 , - 654 , - 293 , - 156 , - 243 , - 554 , - 193 , - 56 , - 143 , - 454 , - 93 , - 852 , - 43 , - 354 , - 889 , - 752 , - 839 , - 254 , - 789 , - 652 , - 739 , - 154 , - 689 , - 552 , - 639 , - 54 , - 589 , - 452 , - 539 , - 850 , - 489 , - 352 , - 439 , - 750 , - 389 , - 252 , - 339 , - 650 , - 289 , - 152 , - 239 , - 550 , - 189 , - 52 , - 139 , - 450 , - 89 , - 848 , - 39 , - 350 , - 885 , - 748 , - 835 , - 250 , - 785 , - 648 , - 735 , - 150 , - 685 , - 548 , - 635 , - 50 , - 585 , - 448 , - 535 , - 846 , - 485 , - 348 , - 435 , - 746 , - 385 , - 248 , - 335 , - 646 , - 285 , - 148 , - 235 , - 546 , - 185 , - 48 , - 135 , - 446 , - 85 , - 844 , - 35 , - 346 , - 881 , - 744 , - 831 , - 246 , - 781 , - 644 , - 731 , - 146 , - 681 , - 544 , - 631 , - 46 , - 581 , - 444 , - 531 , - 842 , - 481 , - 344 , - 431 , - 742 , - 381 , - 244 , - 331 , - 642 , - 281 , - 144 , - 231 , - 542 , - 181 , - 44 , - 131 , - 442 , - 81 , - 840 , - 31 , - 342 , - 877 , - 740 , - 827 , - 242 , - 777 , - 640 , - 727 , - 142 , - 677 , - 540 , - 627 , - 42 , - 577 , - 440 , - 527 , - 838 , - 477 , - 340 , - 427 , - 738 , - 377 , - 240 , - 327 , - 638 , - 277 , - 140 , - 227 , - 538 , - 177 , - 40 , - 127 , - 438 , - 77 , - 836 , - 27 , - 338 , - 873 , - 736 , - 823 , - 238 , - 773 , - 636 , - 723 , - 138 , - 673 , - 536 , - 623 , - 38 , - 573 , - 436 , - 523 , - 834 , - 473 , - 336 , - 423 , - 734 , - 373 , - 236 , - 323 , - 634 , - 273 , - 136 , - 223 , - 534 , - 173 , - 36 , - 123 , - 434 , - 73 , - 832 , - 23 , - 334 , - 869 , - 732 , - 819 , - 234 , - 769 , - 632 , - 719 , - 134 , - 669 , - 532 , - 619 , - 34 , - 569 , - 432 , - 519 , - 830 , - 469 , - 332 , - 419 , - 730 , - 369 , - 232 , - 319 , - 630 , - 269 , - 132 , - 219 , - 530 , - 169 , - 32 , - 119 , - 430 , - 69 , - 828 , - 19 , - 330 , - 865 , - 728 , - 815 , - 230 , - 765 , - 628 , - 715 , - 130 , - 665 , - 528 , - 615 , - 30 , - 565 , - 428 , - 515 , - 826 , - 465 , - 328 , - 415 , - 726 , - 365 , - 228 , - 315 , - 626 , - 265 , - 128 , - 215 , - 526 , - 165 , - 28 , - 115 , - 426 , - 65 , - 824 , - 15 , - 326 , - 861 , - 724 , - 811 , - 226 , - 761 , - 624 , - 711 , - 126 , - 661 , - 524 , - 611 , - 26 , - 561 , - 424 , - 511 , - 822 , - 461 , - 324 , - 411 , - 722 , - 361 , - 224 , - 311 , - 622 , - 261 , - 124 , - 211 , - 522 , - 161 , - 24 , - 111 , - 422 , - 61 , - 820 , - 11 , - 322 , - 857 , - 720 , - 807 , - 222 , - 757 , - 620 , - 707 , - 122 , - 657 , - 520 , - 607 , - 22 , - 557 , - 420 , - 507 , - 818 , - 457 , - 320 , - 407 , - 718 , - 357 , - 220 , - 307 , - 618 , - 257 , - 120 , - 207 , - 518 , - 157 , - 20 , - 107 , - 418 , - 57 , - 816 , - 7 , - 318 , - 853 , - 716 , - 803 , - 218 , - 753 , - 616 , - 703 , - 118 , - 653 , - 516 , - 603 , - 18 , - 553 , - 416 , - 503 , - 814 , - 453 , - 316 , - 403 , - 714 , - 353 , - 216 , - 303 , - 614 , - 253 , - 116 , - 203 , - 514 , - 153 , - 16 , - 103 , - 414 , - 53 , - 812 , - 3 , - 314 , - 849 , - 712 , - 799 , - 214 , - 749 , - 612 , - 699 , - 114 , - 649 , - 512 , - 599 , - 14 , - 549 , - 412 , - 499 , - 810 , - 449 , - 312 , - 399 , - 710 , - 349 , - 212 , - 299 , - 610 , - 249 , - 112 , - 199 , - 510 , - 149 , - 12 , - 99 , - 410 , - 49 , - 808 , - 895 , - 310 , - 845 , - 708 , - 795 , - 210 , - 745 , - 608 , - 695 , - 110 , - 645 , - 508 , - 595 , - 10 , - 545 , - 408 , - 495 , - 806 , - 445 , - 308 , - 395 , - 706 , - 345 , - 208 , - 295 , - 606 , - 245 , - 108 , - 195 , - 506 , - 145 , - 8 , - 95 , - 406 , - 45 , - 804 , - 891 , - 306 , - 841 , - 704 , - 791 , - 206 , - 741 , - 604 , - 691 , - 106 , - 641 , - 504 , - 591 , - 6 , - 541 , - 404 , - 491 , - 802 , - 441 , - 304 , - 391 , - 702 , - 341 , - 204 , - 291 , - 602 , - 241 , - 104 , - 191 , - 502 , - 141 , - 4 , - 91 , - 402 , - 41 , - 800 , - 887 , - 302 , - 837 , - 700 , - 787 , - 202 , - 737 , - 600 , - 687 , - 102 , - 637 , - 500 , - 587 , - 2 , - 537 , - 400 , - 487 , - 798 , - 437 , - 300 , - 387 , - 698 , - 337 , - 200 , - 287 , - 598 , - 237 , - 100 , - 187 , - 498 , - 137 , - 0 , - 59 , - 802 , - 405 , - 692 , - 751 , - 582 , - 185 , - 472 , - 531 , - 362 , - 877 , - 252 , - 311 , - 142 , - 657 , - 32 , - 91 , - 834 , - 437 , - 724 , - 783 , - 614 , - 217 , - 504 , - 563 , - 394 , - 909 , - 284 , - 343 , - 174 , - 689 , - 64 , - 123 , - 866 , - 469 , - 756 , - 815 , - 646 , - 249 , - 536 , - 595 , - 426 , - 29 , - 316 , - 375 , - 206 , - 721 , - 96 , - 155 , - 898 , - 501 , - 788 , - 847 , - 678 , - 281 , - 568 , - 627 , - 458 , - 61 , - 348 , - 407 , - 238 , - 753 , - 128 , - 187 , - 18 , - 533 , - 820 , - 879 , - 710 , - 313 , - 600 , - 659 , - 490 , - 93 , - 380 , - 439 , - 270 , - 785 , - 160 , - 219 , - 50 , - 565 , - 852 , - 911 , - 742 , - 345 , - 632 , - 691 , - 522 , - 125 , - 412 , - 471 , - 302 , - 817 , - 192 , - 251 , - 82 , - 597 , - 884 , - 31 , - 774 , - 377 , - 664 , - 723 , - 554 , - 157 , - 444 , - 503 , - 334 , - 849 , - 224 , - 283 , - 114 , - 629 , - 4 , - 63 , - 806 , - 409 , - 696 , - 755 , - 586 , - 189 , - 476 , - 535 , - 366 , - 881 , - 256 , - 315 , - 146 , - 661 , - 36 , - 95 , - 838 , - 441 , - 728 , - 787 , - 618 , - 221 , - 508 , - 567 , - 398 , - 1 , - 288 , - 347 , - 178 , - 693 , - 68 , - 127 , - 870 , - 473 , - 760 , - 819 , - 650 , - 253 , - 540 , - 599 , - 430 , - 33 , - 320 , - 379 , - 210 , - 725 , - 100 , - 159 , - 902 , - 505 , - 792 , - 851 , - 682 , - 285 , - 572 , - 631 , - 462 , - 65 , - 352 , - 411 , - 242 , - 757 , - 132 , - 191 , - 22 , - 537 , - 824 , - 883 , - 714 , - 317 , - 604 , - 663 , - 494 , - 97 , - 384 , - 443 , - 274 , - 789 , - 164 , - 223 , - 54 , - 569 , - 856 , - 3 , - 746 , - 349 , - 636 , - 695 , - 526 , - 129 , - 416 , - 475 , - 306 , - 821 , - 196 , - 255 , - 86 , - 601 , - 888 , - 35 , - 778 , - 381 , - 668 , - 727 , - 558 , - 161 , - 448 , - 507 , - 338 , - 853 , - 228 , - 287 , - 118 , - 633 , - 8 , - 67 , - 810 , - 413 , - 700 , - 759 , - 590 , - 193 , - 480 , - 539 , - 370 , - 885 , - 260 , - 319 , - 150 , - 665 , - 40 , - 99 , - 842 , - 445 , - 732 , - 791 , - 622 , - 225 , - 512 , - 571 , - 402 , - 5 , - 292 , - 351 , - 182 , - 697 , - 72 , - 131 , - 874 , - 477 , - 764 , - 823 , - 654 , - 257 , - 544 , - 603 , - 434 , - 37 , - 324 , - 383 , - 214 , - 729 , - 104 , - 163 , - 906 , - 509 , - 796 , - 855 , - 686 , - 289 , - 576 , - 635 , - 466 , - 69 , - 356 , - 415 , - 246 , - 761 , - 136 , - 195 , - 26 , - 541 , - 828 , - 887 , - 718 , - 321 , - 608 , - 667 , - 498 , - 101 , - 388 , - 447 , - 278 , - 793 , - 168 , - 227 , - 58 , - 573 , - 860 , - 7 , - 750 , - 353 , - 640 , - 699 , - 530 , - 133 , - 420 , - 479 , - 310 , - 825 , - 200 , - 259 , - 90 , - 605 , - 892 , - 39 , - 782 , - 385 , - 672 , - 731 , - 562 , - 165 , - 452 , - 511 , - 342 , - 857 , - 232 , - 291 , - 122 , - 637 , - 12 , - 71 , - 814 , - 417 , - 704 , - 763 , - 594 , - 197 , - 484 , - 543 , - 374 , - 889 , - 264 , - 323 , - 154 , - 669 , - 44 , - 103 , - 846 , - 449 , - 736 , - 795 , - 626 , - 229 , - 516 , - 575 , - 406 , - 9 , - 296 , - 355 , - 186 , - 701 , - 76 , - 135 , - 878 , - 481 , - 768 , - 827 , - 658 , - 261 , - 548 , - 607 , - 438 , - 41 , - 328 , - 387 , - 218 , - 733 , - 108 , - 167 , - 910 , - 513 , - 800 , - 859 , - 690 , - 293 , - 580 , - 639 , - 470 , - 73 , - 360 , - 419 , - 250 , - 765 , - 140 , - 199 , - 30 , - 545 , - 832 , - 891 , - 722 , - 325 , - 612 , - 671 , - 502 , - 105 , - 392 , - 451 , - 282 , - 797 , - 172 , - 231 , - 62 , - 577 , - 864 , - 11 , - 754 , - 357 , - 644 , - 703 , - 534 , - 137 , - 424 , - 483 , - 314 , - 829 , - 204 , - 263 , - 94 , - 609 , - 896 , - 43 , - 786 , - 389 , - 676 , - 735 , - 566 , - 169 , - 456 , - 515 , - 346 , - 861 , - 236 , - 295 , - 126 , - 641 , - 16 , - 75 , - 818 , - 421 , - 708 , - 767 , - 598 , - 201 , - 488 , - 547 , - 378 , - 893 , - 268 , - 327 , - 158 , - 673 , - 48 , - 107 , - 850 , - 453 , - 740 , - 799 , - 630 , - 233 , - 520 , - 579 , - 410 , - 13 , - 300 , - 359 , - 190 , - 705 , - 80 , - 139 , - 882 , - 485 , - 772 , - 831 , - 662 , - 265 , - 552 , - 611 , - 442 , - 45 , - 332 , - 391 , - 222 , - 737 , - 112 , - 171 , - 2 , - 517 , - 804 , - 863 , - 694 , - 297 , - 584 , - 643 , - 474 , - 77 , - 364 , - 423 , - 254 , - 769 , - 144 , - 203 , - 34 , - 549 , - 836 , - 895 , - 726 , - 329 , - 616 , - 675 , - 506 , - 109 , - 396 , - 455 , - 286 , - 801 , - 176 , - 235 , - 66 , - 581 , - 868 , - 15 , - 758 , - 361 , - 648 , - 707 , - 538 , - 141 , - 428 , - 487 , - 318 , - 833 , - 208 , - 267 , - 98 , - 613 , - 900 , - 47 , - 790 , - 393 , - 680 , - 739 , - 570 , - 173 , - 460 , - 519 , - 350 , - 865 , - 240 , - 299 , - 130 , - 645 , - 20 , - 79 , - 822 , - 425 , - 712 , - 771 , - 602 , - 205 , - 492 , - 551 , - 382 , - 897 , - 272 , - 331 , - 162 , - 677 , - 52 , - 111 , - 854 , - 457 , - 744 , - 803 , - 634 , - 237 , - 524 , - 583 , - 414 , - 17 , - 304 , - 363 , - 194 , - 709 , - 84 , - 143 , - 886 , - 489 , - 776 , - 835 , - 666 , - 269 , - 556 , - 615 , - 446 , - 49 , - 336 , - 395 , - 226 , - 741 , - 116 , - 175 , - 6 , - 521 , - 808 , - 867 , - 698 , - 301 , - 588 , - 647 , - 478 , - 81 , - 368 , - 427 , - 258 , - 773 , - 148 , - 207 , - 38 , - 553 , - 840 , - 899 , - 730 , - 333 , - 620 , - 679 , - 510 , - 113 , - 400 , - 459 , - 290 , - 805 , - 180 , - 239 , - 70 , - 585 , - 872 , - 19 , - 762 , - 365 , - 652 , - 711 , - 542 , - 145 , - 432 , - 491 , - 322 , - 837 , - 212 , - 271 , - 102 , - 617 , - 904 , - 51 , - 794 , - 397 , - 684 , - 743 , - 574 , - 177 , - 464 , - 523 , - 354 , - 869 , - 244 , - 303 , - 134 , - 649 , - 24 , - 83 , - 826 , - 429 , - 716 , - 775 , - 606 , - 209 , - 496 , - 555 , - 386 , - 901 , - 276 , - 335 , - 166 , - 681 , - 56 , - 115 , - 858 , - 461 , - 748 , - 807 , - 638 , - 241 , - 528 , - 587 , - 418 , - 21 , - 308 , - 367 , - 198 , - 713 , - 88 , - 147 , - 890 , - 493 , - 780 , - 839 , - 670 , - 273 , - 560 , - 619 , - 450 , - 53 , - 340 , - 399 , - 230 , - 745 , - 120 , - 179 , - 10 , - 525 , - 812 , - 871 , - 702 , - 305 , - 592 , - 651 , - 482 , - 85 , - 372 , - 431 , - 262 , - 777 , - 152 , - 211 , - 42 , - 557 , - 844 , - 903 , - 734 , - 337 , - 624 , - 683 , - 514 , - 117 , - 404 , - 463 , - 294 , - 809 , - 184 , - 243 , - 74 , - 589 , - 876 , - 23 , - 766 , - 369 , - 656 , - 715 , - 546 , - 149 , - 436 , - 495 , - 326 , - 841 , - 216 , - 275 , - 106 , - 621 , - 908 , - 55 , - 798 , - 401 , - 688 , - 747 , - 578 , - 181 , - 468 , - 527 , - 358 , - 873 , - 248 , - 307 , - 138 , - 653 , - 28 , - 87 , - 830 , - 433 , - 720 , - 779 , - 610 , - 213 , - 500 , - 559 , - 390 , - 905 , - 280 , - 339 , - 170 , - 685 , - 60 , - 119 , - 862 , - 465 , - 752 , - 811 , - 642 , - 245 , - 532 , - 591 , - 422 , - 25 , - 312 , - 371 , - 202 , - 717 , - 92 , - 151 , - 894 , - 497 , - 784 , - 843 , - 674 , - 277 , - 564 , - 623 , - 454 , - 57 , - 344 , - 403 , - 234 , - 749 , - 124 , - 183 , - 14 , - 529 , - 816 , - 875 , - 706 , - 309 , - 596 , - 655 , - 486 , - 89 , - 376 , - 435 , - 266 , - 781 , - 156 , - 215 , - 46 , - 561 , - 848 , - 907 , - 738 , - 341 , - 628 , - 687 , - 518 , - 121 , - 408 , - 467 , - 298 , - 813 , - 188 , - 247 , - 78 , - 593 , - 880 , - 27 , - 770 , - 373 , - 660 , - 719 , - 550 , - 153 , - 440 , - 499 , - 330 , - 845 , - 220 , - 279 , - 110 , - 625 , - 0 , - 553 , - 294 , - 615 , - 124 , - 213 , - 418 , - 275 , - 248 , - 801 , - 542 , - 863 , - 372 , - 461 , - 666 , - 523 , - 496 , - 121 , - 790 , - 183 , - 620 , - 709 , - 914 , - 771 , - 744 , - 369 , - 110 , - 431 , - 868 , - 29 , - 234 , - 91 , - 64 , - 617 , - 358 , - 679 , - 188 , - 277 , - 482 , - 339 , - 312 , - 865 , - 606 , - 927 , - 436 , - 525 , - 730 , - 587 , - 560 , - 185 , - 854 , - 247 , - 684 , - 773 , - 50 , - 835 , - 808 , - 433 , - 174 , - 495 , - 4 , - 93 , - 298 , - 155 , - 128 , - 681 , - 422 , - 743 , - 252 , - 341 , - 546 , - 403 , - 376 , - 1 , - 670 , - 63 , - 500 , - 589 , - 794 , - 651 , - 624 , - 249 , - 918 , - 311 , - 748 , - 837 , - 114 , - 899 , - 872 , - 497 , - 238 , - 559 , - 68 , - 157 , - 362 , - 219 , - 192 , - 745 , - 486 , - 807 , - 316 , - 405 , - 610 , - 467 , - 440 , - 65 , - 734 , - 127 , - 564 , - 653 , - 858 , - 715 , - 688 , - 313 , - 54 , - 375 , - 812 , - 901 , - 178 , - 35 , - 8 , - 561 , - 302 , - 623 , - 132 , - 221 , - 426 , - 283 , - 256 , - 809 , - 550 , - 871 , - 380 , - 469 , - 674 , - 531 , - 504 , - 129 , - 798 , - 191 , - 628 , - 717 , - 922 , - 779 , - 752 , - 377 , - 118 , - 439 , - 876 , - 37 , - 242 , - 99 , - 72 , - 625 , - 366 , - 687 , - 196 , - 285 , - 490 , - 347 , - 320 , - 873 , - 614 , - 7 , - 444 , - 533 , - 738 , - 595 , - 568 , - 193 , - 862 , - 255 , - 692 , - 781 , - 58 , - 843 , - 816 , - 441 , - 182 , - 503 , - 12 , - 101 , - 306 , - 163 , - 136 , - 689 , - 430 , - 751 , - 260 , - 349 , - 554 , - 411 , - 384 , - 9 , - 678 , - 71 , - 508 , - 597 , - 802 , - 659 , - 632 , - 257 , - 926 , - 319 , - 756 , - 845 , - 122 , - 907 , - 880 , - 505 , - 246 , - 567 , - 76 , - 165 , - 370 , - 227 , - 200 , - 753 , - 494 , - 815 , - 324 , - 413 , - 618 , - 475 , - 448 , - 73 , - 742 , - 135 , - 572 , - 661 , - 866 , - 723 , - 696 , - 321 , - 62 , - 383 , - 820 , - 909 , - 186 , - 43 , - 16 , - 569 , - 310 , - 631 , - 140 , - 229 , - 434 , - 291 , - 264 , - 817 , - 558 , - 879 , - 388 , - 477 , - 682 , - 539 , - 512 , - 137 , - 806 , - 199 , - 636 , - 725 , - 2 , - 787 , - 760 , - 385 , - 126 , - 447 , - 884 , - 45 , - 250 , - 107 , - 80 , - 633 , - 374 , - 695 , - 204 , - 293 , - 498 , - 355 , - 328 , - 881 , - 622 , - 15 , - 452 , - 541 , - 746 , - 603 , - 576 , - 201 , - 870 , - 263 , - 700 , - 789 , - 66 , - 851 , - 824 , - 449 , - 190 , - 511 , - 20 , - 109 , - 314 , - 171 , - 144 , - 697 , - 438 , - 759 , - 268 , - 357 , - 562 , - 419 , - 392 , - 17 , - 686 , - 79 , - 516 , - 605 , - 810 , - 667 , - 640 , - 265 , - 6 , - 327 , - 764 , - 853 , - 130 , - 915 , - 888 , - 513 , - 254 , - 575 , - 84 , - 173 , - 378 , - 235 , - 208 , - 761 , - 502 , - 823 , - 332 , - 421 , - 626 , - 483 , - 456 , - 81 , - 750 , - 143 , - 580 , - 669 , - 874 , - 731 , - 704 , - 329 , - 70 , - 391 , - 828 , - 917 , - 194 , - 51 , - 24 , - 577 , - 318 , - 639 , - 148 , - 237 , - 442 , - 299 , - 272 , - 825 , - 566 , - 887 , - 396 , - 485 , - 690 , - 547 , - 520 , - 145 , - 814 , - 207 , - 644 , - 733 , - 10 , - 795 , - 768 , - 393 , - 134 , - 455 , - 892 , - 53 , - 258 , - 115 , - 88 , - 641 , - 382 , - 703 , - 212 , - 301 , - 506 , - 363 , - 336 , - 889 , - 630 , - 23 , - 460 , - 549 , - 754 , - 611 , - 584 , - 209 , - 878 , - 271 , - 708 , - 797 , - 74 , - 859 , - 832 , - 457 , - 198 , - 519 , - 28 , - 117 , - 322 , - 179 , - 152 , - 705 , - 446 , - 767 , - 276 , - 365 , - 570 , - 427 , - 400 , - 25 , - 694 , - 87 , - 524 , - 613 , - 818 , - 675 , - 648 , - 273 , - 14 , - 335 , - 772 , - 861 , - 138 , - 923 , - 896 , - 521 , - 262 , - 583 , - 92 , - 181 , - 386 , - 243 , - 216 , - 769 , - 510 , - 831 , - 340 , - 429 , - 634 , - 491 , - 464 , - 89 , - 758 , - 151 , - 588 , - 677 , - 882 , - 739 , - 712 , - 337 , - 78 , - 399 , - 836 , - 925 , - 202 , - 59 , - 32 , - 585 , - 326 , - 647 , - 156 , - 245 , - 450 , - 307 , - 280 , - 833 , - 574 , - 895 , - 404 , - 493 , - 698 , - 555 , - 528 , - 153 , - 822 , - 215 , - 652 , - 741 , - 18 , - 803 , - 776 , - 401 , - 142 , - 463 , - 900 , - 61 , - 266 , - 123 , - 96 , - 649 , - 390 , - 711 , - 220 , - 309 , - 514 , - 371 , - 344 , - 897 , - 638 , - 31 , - 468 , - 557 , - 762 , - 619 , - 592 , - 217 , - 886 , - 279 , - 716 , - 805 , - 82 , - 867 , - 840 , - 465 , - 206 , - 527 , - 36 , - 125 , - 330 , - 187 , - 160 , - 713 , - 454 , - 775 , - 284 , - 373 , - 578 , - 435 , - 408 , - 33 , - 702 , - 95 , - 532 , - 621 , - 826 , - 683 , - 656 , - 281 , - 22 , - 343 , - 780 , - 869 , - 146 , - 3 , - 904 , - 529 , - 270 , - 591 , - 100 , - 189 , - 394 , - 251 , - 224 , - 777 , - 518 , - 839 , - 348 , - 437 , - 642 , - 499 , - 472 , - 97 , - 766 , - 159 , - 596 , - 685 , - 890 , - 747 , - 720 , - 345 , - 86 , - 407 , - 844 , - 5 , - 210 , - 67 , - 40 , - 593 , - 334 , - 655 , - 164 , - 253 , - 458 , - 315 , - 288 , - 841 , - 582 , - 903 , - 412 , - 501 , - 706 , - 563 , - 536 , - 161 , - 830 , - 223 , - 660 , - 749 , - 26 , - 811 , - 784 , - 409 , - 150 , - 471 , - 908 , - 69 , - 274 , - 131 , - 104 , - 657 , - 398 , - 719 , - 228 , - 317 , - 522 , - 379 , - 352 , - 905 , - 646 , - 39 , - 476 , - 565 , - 770 , - 627 , - 600 , - 225 , - 894 , - 287 , - 724 , - 813 , - 90 , - 875 , - 848 , - 473 , - 214 , - 535 , - 44 , - 133 , - 338 , - 195 , - 168 , - 721 , - 462 , - 783 , - 292 , - 381 , - 586 , - 443 , - 416 , - 41 , - 710 , - 103 , - 540 , - 629 , - 834 , - 691 , - 664 , - 289 , - 30 , - 351 , - 788 , - 877 , - 154 , - 11 , - 912 , - 537 , - 278 , - 599 , - 108 , - 197 , - 402 , - 259 , - 232 , - 785 , - 526 , - 847 , - 356 , - 445 , - 650 , - 507 , - 480 , - 105 , - 774 , - 167 , - 604 , - 693 , - 898 , - 755 , - 728 , - 353 , - 94 , - 415 , - 852 , - 13 , - 218 , - 75 , - 48 , - 601 , - 342 , - 663 , - 172 , - 261 , - 466 , - 323 , - 296 , - 849 , - 590 , - 911 , - 420 , - 509 , - 714 , - 571 , - 544 , - 169 , - 838 , - 231 , - 668 , - 757 , - 34 , - 819 , - 792 , - 417 , - 158 , - 479 , - 916 , - 77 , - 282 , - 139 , - 112 , - 665 , - 406 , - 727 , - 236 , - 325 , - 530 , - 387 , - 360 , - 913 , - 654 , - 47 , - 484 , - 573 , - 778 , - 635 , - 608 , - 233 , - 902 , - 295 , - 732 , - 821 , - 98 , - 883 , - 856 , - 481 , - 222 , - 543 , - 52 , - 141 , - 346 , - 203 , - 176 , - 729 , - 470 , - 791 , - 300 , - 389 , - 594 , - 451 , - 424 , - 49 , - 718 , - 111 , - 548 , - 637 , - 842 , - 699 , - 672 , - 297 , - 38 , - 359 , - 796 , - 885 , - 162 , - 19 , - 920 , - 545 , - 286 , - 607 , - 116 , - 205 , - 410 , - 267 , - 240 , - 793 , - 534 , - 855 , - 364 , - 453 , - 658 , - 515 , - 488 , - 113 , - 782 , - 175 , - 612 , - 701 , - 906 , - 763 , - 736 , - 361 , - 102 , - 423 , - 860 , - 21 , - 226 , - 83 , - 56 , - 609 , - 350 , - 671 , - 180 , - 269 , - 474 , - 331 , - 304 , - 857 , - 598 , - 919 , - 428 , - 517 , - 722 , - 579 , - 552 , - 177 , - 846 , - 239 , - 676 , - 765 , - 42 , - 827 , - 800 , - 425 , - 166 , - 487 , - 924 , - 85 , - 290 , - 147 , - 120 , - 673 , - 414 , - 735 , - 244 , - 333 , - 538 , - 395 , - 368 , - 921 , - 662 , - 55 , - 492 , - 581 , - 786 , - 643 , - 616 , - 241 , - 910 , - 303 , - 740 , - 829 , - 106 , - 891 , - 864 , - 489 , - 230 , - 551 , - 60 , - 149 , - 354 , - 211 , - 184 , - 737 , - 478 , - 799 , - 308 , - 397 , - 602 , - 459 , - 432 , - 57 , - 726 , - 119 , - 556 , - 645 , - 850 , - 707 , - 680 , - 305 , - 46 , - 367 , - 804 , - 893 , - 170 , - 27 , - 0 , - 57 , - 350 , - 879 , - 700 , - 757 , - 106 , - 635 , - 456 , - 513 , - 806 , - 391 , - 212 , - 269 , - 562 , - 147 , - 912 , - 25 , - 318 , - 847 , - 668 , - 725 , - 74 , - 603 , - 424 , - 481 , - 774 , - 359 , - 180 , - 237 , - 530 , - 115 , - 880 , - 937 , - 286 , - 815 , - 636 , - 693 , - 42 , - 571 , - 392 , - 449 , - 742 , - 327 , - 148 , - 205 , - 498 , - 83 , - 848 , - 905 , - 254 , - 783 , - 604 , - 661 , - 10 , - 539 , - 360 , - 417 , - 710 , - 295 , - 116 , - 173 , - 466 , - 51 , - 816 , - 873 , - 222 , - 751 , - 572 , - 629 , - 922 , - 507 , - 328 , - 385 , - 678 , - 263 , - 84 , - 141 , - 434 , - 19 , - 784 , - 841 , - 190 , - 719 , - 540 , - 597 , - 890 , - 475 , - 296 , - 353 , - 646 , - 231 , - 52 , - 109 , - 402 , - 931 , - 752 , - 809 , - 158 , - 687 , - 508 , - 565 , - 858 , - 443 , - 264 , - 321 , - 614 , - 199 , - 20 , - 77 , - 370 , - 899 , - 720 , - 777 , - 126 , - 655 , - 476 , - 533 , - 826 , - 411 , - 232 , - 289 , - 582 , - 167 , - 932 , - 45 , - 338 , - 867 , - 688 , - 745 , - 94 , - 623 , - 444 , - 501 , - 794 , - 379 , - 200 , - 257 , - 550 , - 135 , - 900 , - 13 , - 306 , - 835 , - 656 , - 713 , - 62 , - 591 , - 412 , - 469 , - 762 , - 347 , - 168 , - 225 , - 518 , - 103 , - 868 , - 925 , - 274 , - 803 , - 624 , - 681 , - 30 , - 559 , - 380 , - 437 , - 730 , - 315 , - 136 , - 193 , - 486 , - 71 , - 836 , - 893 , - 242 , - 771 , - 592 , - 649 , - 942 , - 527 , - 348 , - 405 , - 698 , - 283 , - 104 , - 161 , - 454 , - 39 , - 804 , - 861 , - 210 , - 739 , - 560 , - 617 , - 910 , - 495 , - 316 , - 373 , - 666 , - 251 , - 72 , - 129 , - 422 , - 7 , - 772 , - 829 , - 178 , - 707 , - 528 , - 585 , - 878 , - 463 , - 284 , - 341 , - 634 , - 219 , - 40 , - 97 , - 390 , - 919 , - 740 , - 797 , - 146 , - 675 , - 496 , - 553 , - 846 , - 431 , - 252 , - 309 , - 602 , - 187 , - 8 , - 65 , - 358 , - 887 , - 708 , - 765 , - 114 , - 643 , - 464 , - 521 , - 814 , - 399 , - 220 , - 277 , - 570 , - 155 , - 920 , - 33 , - 326 , - 855 , - 676 , - 733 , - 82 , - 611 , - 432 , - 489 , - 782 , - 367 , - 188 , - 245 , - 538 , - 123 , - 888 , - 1 , - 294 , - 823 , - 644 , - 701 , - 50 , - 579 , - 400 , - 457 , - 750 , - 335 , - 156 , - 213 , - 506 , - 91 , - 856 , - 913 , - 262 , - 791 , - 612 , - 669 , - 18 , - 547 , - 368 , - 425 , - 718 , - 303 , - 124 , - 181 , - 474 , - 59 , - 824 , - 881 , - 230 , - 759 , - 580 , - 637 , - 930 , - 515 , - 336 , - 393 , - 686 , - 271 , - 92 , - 149 , - 442 , - 27 , - 792 , - 849 , - 198 , - 727 , - 548 , - 605 , - 898 , - 483 , - 304 , - 361 , - 654 , - 239 , - 60 , - 117 , - 410 , - 939 , - 760 , - 817 , - 166 , - 695 , - 516 , - 573 , - 866 , - 451 , - 272 , - 329 , - 622 , - 207 , - 28 , - 85 , - 378 , - 907 , - 728 , - 785 , - 134 , - 663 , - 484 , - 541 , - 834 , - 419 , - 240 , - 297 , - 590 , - 175 , - 940 , - 53 , - 346 , - 875 , - 696 , - 753 , - 102 , - 631 , - 452 , - 509 , - 802 , - 387 , - 208 , - 265 , - 558 , - 143 , - 908 , - 21 , - 314 , - 843 , - 664 , - 721 , - 70 , - 599 , - 420 , - 477 , - 770 , - 355 , - 176 , - 233 , - 526 , - 111 , - 876 , - 933 , - 282 , - 811 , - 632 , - 689 , - 38 , - 567 , - 388 , - 445 , - 738 , - 323 , - 144 , - 201 , - 494 , - 79 , - 844 , - 901 , - 250 , - 779 , - 600 , - 657 , - 6 , - 535 , - 356 , - 413 , - 706 , - 291 , - 112 , - 169 , - 462 , - 47 , - 812 , - 869 , - 218 , - 747 , - 568 , - 625 , - 918 , - 503 , - 324 , - 381 , - 674 , - 259 , - 80 , - 137 , - 430 , - 15 , - 780 , - 837 , - 186 , - 715 , - 536 , - 593 , - 886 , - 471 , - 292 , - 349 , - 642 , - 227 , - 48 , - 105 , - 398 , - 927 , - 748 , - 805 , - 154 , - 683 , - 504 , - 561 , - 854 , - 439 , - 260 , - 317 , - 610 , - 195 , - 16 , - 73 , - 366 , - 895 , - 716 , - 773 , - 122 , - 651 , - 472 , - 529 , - 822 , - 407 , - 228 , - 285 , - 578 , - 163 , - 928 , - 41 , - 334 , - 863 , - 684 , - 741 , - 90 , - 619 , - 440 , - 497 , - 790 , - 375 , - 196 , - 253 , - 546 , - 131 , - 896 , - 9 , - 302 , - 831 , - 652 , - 709 , - 58 , - 587 , - 408 , - 465 , - 758 , - 343 , - 164 , - 221 , - 514 , - 99 , - 864 , - 921 , - 270 , - 799 , - 620 , - 677 , - 26 , - 555 , - 376 , - 433 , - 726 , - 311 , - 132 , - 189 , - 482 , - 67 , - 832 , - 889 , - 238 , - 767 , - 588 , - 645 , - 938 , - 523 , - 344 , - 401 , - 694 , - 279 , - 100 , - 157 , - 450 , - 35 , - 800 , - 857 , - 206 , - 735 , - 556 , - 613 , - 906 , - 491 , - 312 , - 369 , - 662 , - 247 , - 68 , - 125 , - 418 , - 3 , - 768 , - 825 , - 174 , - 703 , - 524 , - 581 , - 874 , - 459 , - 280 , - 337 , - 630 , - 215 , - 36 , - 93 , - 386 , - 915 , - 736 , - 793 , - 142 , - 671 , - 492 , - 549 , - 842 , - 427 , - 248 , - 305 , - 598 , - 183 , - 4 , - 61 , - 354 , - 883 , - 704 , - 761 , - 110 , - 639 , - 460 , - 517 , - 810 , - 395 , - 216 , - 273 , - 566 , - 151 , - 916 , - 29 , - 322 , - 851 , - 672 , - 729 , - 78 , - 607 , - 428 , - 485 , - 778 , - 363 , - 184 , - 241 , - 534 , - 119 , - 884 , - 941 , - 290 , - 819 , - 640 , - 697 , - 46 , - 575 , - 396 , - 453 , - 746 , - 331 , - 152 , - 209 , - 502 , - 87 , - 852 , - 909 , - 258 , - 787 , - 608 , - 665 , - 14 , - 543 , - 364 , - 421 , - 714 , - 299 , - 120 , - 177 , - 470 , - 55 , - 820 , - 877 , - 226 , - 755 , - 576 , - 633 , - 926 , - 511 , - 332 , - 389 , - 682 , - 267 , - 88 , - 145 , - 438 , - 23 , - 788 , - 845 , - 194 , - 723 , - 544 , - 601 , - 894 , - 479 , - 300 , - 357 , - 650 , - 235 , - 56 , - 113 , - 406 , - 935 , - 756 , - 813 , - 162 , - 691 , - 512 , - 569 , - 862 , - 447 , - 268 , - 325 , - 618 , - 203 , - 24 , - 81 , - 374 , - 903 , - 724 , - 781 , - 130 , - 659 , - 480 , - 537 , - 830 , - 415 , - 236 , - 293 , - 586 , - 171 , - 936 , - 49 , - 342 , - 871 , - 692 , - 749 , - 98 , - 627 , - 448 , - 505 , - 798 , - 383 , - 204 , - 261 , - 554 , - 139 , - 904 , - 17 , - 310 , - 839 , - 660 , - 717 , - 66 , - 595 , - 416 , - 473 , - 766 , - 351 , - 172 , - 229 , - 522 , - 107 , - 872 , - 929 , - 278 , - 807 , - 628 , - 685 , - 34 , - 563 , - 384 , - 441 , - 734 , - 319 , - 140 , - 197 , - 490 , - 75 , - 840 , - 897 , - 246 , - 775 , - 596 , - 653 , - 2 , - 531 , - 352 , - 409 , - 702 , - 287 , - 108 , - 165 , - 458 , - 43 , - 808 , - 865 , - 214 , - 743 , - 564 , - 621 , - 914 , - 499 , - 320 , - 377 , - 670 , - 255 , - 76 , - 133 , - 426 , - 11 , - 776 , - 833 , - 182 , - 711 , - 532 , - 589 , - 882 , - 467 , - 288 , - 345 , - 638 , - 223 , - 44 , - 101 , - 394 , - 923 , - 744 , - 801 , - 150 , - 679 , - 500 , - 557 , - 850 , - 435 , - 256 , - 313 , - 606 , - 191 , - 12 , - 69 , - 362 , - 891 , - 712 , - 769 , - 118 , - 647 , - 468 , - 525 , - 818 , - 403 , - 224 , - 281 , - 574 , - 159 , - 924 , - 37 , - 330 , - 859 , - 680 , - 737 , - 86 , - 615 , - 436 , - 493 , - 786 , - 371 , - 192 , - 249 , - 542 , - 127 , - 892 , - 5 , - 298 , - 827 , - 648 , - 705 , - 54 , - 583 , - 404 , - 461 , - 754 , - 339 , - 160 , - 217 , - 510 , - 95 , - 860 , - 917 , - 266 , - 795 , - 616 , - 673 , - 22 , - 551 , - 372 , - 429 , - 722 , - 307 , - 128 , - 185 , - 478 , - 63 , - 828 , - 885 , - 234 , - 763 , - 584 , - 641 , - 934 , - 519 , - 340 , - 397 , - 690 , - 275 , - 96 , - 153 , - 446 , - 31 , - 796 , - 853 , - 202 , - 731 , - 552 , - 609 , - 902 , - 487 , - 308 , - 365 , - 658 , - 243 , - 64 , - 121 , - 414 , - 943 , - 764 , - 821 , - 170 , - 699 , - 520 , - 577 , - 870 , - 455 , - 276 , - 333 , - 626 , - 211 , - 32 , - 89 , - 382 , - 911 , - 732 , - 789 , - 138 , - 667 , - 488 , - 545 , - 838 , - 423 , - 244 , - 301 , - 594 , - 179 , - 0 , - 329 , - 58 , - 147 , - 596 , - 445 , - 654 , - 263 , - 232 , - 561 , - 290 , - 379 , - 828 , - 677 , - 886 , - 495 , - 464 , - 793 , - 522 , - 611 , - 100 , - 909 , - 158 , - 727 , - 696 , - 65 , - 754 , - 843 , - 332 , - 181 , - 390 , - 959 , - 928 , - 297 , - 26 , - 115 , - 564 , - 413 , - 622 , - 231 , - 200 , - 529 , - 258 , - 347 , - 796 , - 645 , - 854 , - 463 , - 432 , - 761 , - 490 , - 579 , - 68 , - 877 , - 126 , - 695 , - 664 , - 33 , - 722 , - 811 , - 300 , - 149 , - 358 , - 927 , - 896 , - 265 , - 954 , - 83 , - 532 , - 381 , - 590 , - 199 , - 168 , - 497 , - 226 , - 315 , - 764 , - 613 , - 822 , - 431 , - 400 , - 729 , - 458 , - 547 , - 36 , - 845 , - 94 , - 663 , - 632 , - 1 , - 690 , - 779 , - 268 , - 117 , - 326 , - 895 , - 864 , - 233 , - 922 , - 51 , - 500 , - 349 , - 558 , - 167 , - 136 , - 465 , - 194 , - 283 , - 732 , - 581 , - 790 , - 399 , - 368 , - 697 , - 426 , - 515 , - 4 , - 813 , - 62 , - 631 , - 600 , - 929 , - 658 , - 747 , - 236 , - 85 , - 294 , - 863 , - 832 , - 201 , - 890 , - 19 , - 468 , - 317 , - 526 , - 135 , - 104 , - 433 , - 162 , - 251 , - 700 , - 549 , - 758 , - 367 , - 336 , - 665 , - 394 , - 483 , - 932 , - 781 , - 30 , - 599 , - 568 , - 897 , - 626 , - 715 , - 204 , - 53 , - 262 , - 831 , - 800 , - 169 , - 858 , - 947 , - 436 , - 285 , - 494 , - 103 , - 72 , - 401 , - 130 , - 219 , - 668 , - 517 , - 726 , - 335 , - 304 , - 633 , - 362 , - 451 , - 900 , - 749 , - 958 , - 567 , - 536 , - 865 , - 594 , - 683 , - 172 , - 21 , - 230 , - 799 , - 768 , - 137 , - 826 , - 915 , - 404 , - 253 , - 462 , - 71 , - 40 , - 369 , - 98 , - 187 , - 636 , - 485 , - 694 , - 303 , - 272 , - 601 , - 330 , - 419 , - 868 , - 717 , - 926 , - 535 , - 504 , - 833 , - 562 , - 651 , - 140 , - 949 , - 198 , - 767 , - 736 , - 105 , - 794 , - 883 , - 372 , - 221 , - 430 , - 39 , - 8 , - 337 , - 66 , - 155 , - 604 , - 453 , - 662 , - 271 , - 240 , - 569 , - 298 , - 387 , - 836 , - 685 , - 894 , - 503 , - 472 , - 801 , - 530 , - 619 , - 108 , - 917 , - 166 , - 735 , - 704 , - 73 , - 762 , - 851 , - 340 , - 189 , - 398 , - 7 , - 936 , - 305 , - 34 , - 123 , - 572 , - 421 , - 630 , - 239 , - 208 , - 537 , - 266 , - 355 , - 804 , - 653 , - 862 , - 471 , - 440 , - 769 , - 498 , - 587 , - 76 , - 885 , - 134 , - 703 , - 672 , - 41 , - 730 , - 819 , - 308 , - 157 , - 366 , - 935 , - 904 , - 273 , - 2 , - 91 , - 540 , - 389 , - 598 , - 207 , - 176 , - 505 , - 234 , - 323 , - 772 , - 621 , - 830 , - 439 , - 408 , - 737 , - 466 , - 555 , - 44 , - 853 , - 102 , - 671 , - 640 , - 9 , - 698 , - 787 , - 276 , - 125 , - 334 , - 903 , - 872 , - 241 , - 930 , - 59 , - 508 , - 357 , - 566 , - 175 , - 144 , - 473 , - 202 , - 291 , - 740 , - 589 , - 798 , - 407 , - 376 , - 705 , - 434 , - 523 , - 12 , - 821 , - 70 , - 639 , - 608 , - 937 , - 666 , - 755 , - 244 , - 93 , - 302 , - 871 , - 840 , - 209 , - 898 , - 27 , - 476 , - 325 , - 534 , - 143 , - 112 , - 441 , - 170 , - 259 , - 708 , - 557 , - 766 , - 375 , - 344 , - 673 , - 402 , - 491 , - 940 , - 789 , - 38 , - 607 , - 576 , - 905 , - 634 , - 723 , - 212 , - 61 , - 270 , - 839 , - 808 , - 177 , - 866 , - 955 , - 444 , - 293 , - 502 , - 111 , - 80 , - 409 , - 138 , - 227 , - 676 , - 525 , - 734 , - 343 , - 312 , - 641 , - 370 , - 459 , - 908 , - 757 , - 6 , - 575 , - 544 , - 873 , - 602 , - 691 , - 180 , - 29 , - 238 , - 807 , - 776 , - 145 , - 834 , - 923 , - 412 , - 261 , - 470 , - 79 , - 48 , - 377 , - 106 , - 195 , - 644 , - 493 , - 702 , - 311 , - 280 , - 609 , - 338 , - 427 , - 876 , - 725 , - 934 , - 543 , - 512 , - 841 , - 570 , - 659 , - 148 , - 957 , - 206 , - 775 , - 744 , - 113 , - 802 , - 891 , - 380 , - 229 , - 438 , - 47 , - 16 , - 345 , - 74 , - 163 , - 612 , - 461 , - 670 , - 279 , - 248 , - 577 , - 306 , - 395 , - 844 , - 693 , - 902 , - 511 , - 480 , - 809 , - 538 , - 627 , - 116 , - 925 , - 174 , - 743 , - 712 , - 81 , - 770 , - 859 , - 348 , - 197 , - 406 , - 15 , - 944 , - 313 , - 42 , - 131 , - 580 , - 429 , - 638 , - 247 , - 216 , - 545 , - 274 , - 363 , - 812 , - 661 , - 870 , - 479 , - 448 , - 777 , - 506 , - 595 , - 84 , - 893 , - 142 , - 711 , - 680 , - 49 , - 738 , - 827 , - 316 , - 165 , - 374 , - 943 , - 912 , - 281 , - 10 , - 99 , - 548 , - 397 , - 606 , - 215 , - 184 , - 513 , - 242 , - 331 , - 780 , - 629 , - 838 , - 447 , - 416 , - 745 , - 474 , - 563 , - 52 , - 861 , - 110 , - 679 , - 648 , - 17 , - 706 , - 795 , - 284 , - 133 , - 342 , - 911 , - 880 , - 249 , - 938 , - 67 , - 516 , - 365 , - 574 , - 183 , - 152 , - 481 , - 210 , - 299 , - 748 , - 597 , - 806 , - 415 , - 384 , - 713 , - 442 , - 531 , - 20 , - 829 , - 78 , - 647 , - 616 , - 945 , - 674 , - 763 , - 252 , - 101 , - 310 , - 879 , - 848 , - 217 , - 906 , - 35 , - 484 , - 333 , - 542 , - 151 , - 120 , - 449 , - 178 , - 267 , - 716 , - 565 , - 774 , - 383 , - 352 , - 681 , - 410 , - 499 , - 948 , - 797 , - 46 , - 615 , - 584 , - 913 , - 642 , - 731 , - 220 , - 69 , - 278 , - 847 , - 816 , - 185 , - 874 , - 3 , - 452 , - 301 , - 510 , - 119 , - 88 , - 417 , - 146 , - 235 , - 684 , - 533 , - 742 , - 351 , - 320 , - 649 , - 378 , - 467 , - 916 , - 765 , - 14 , - 583 , - 552 , - 881 , - 610 , - 699 , - 188 , - 37 , - 246 , - 815 , - 784 , - 153 , - 842 , - 931 , - 420 , - 269 , - 478 , - 87 , - 56 , - 385 , - 114 , - 203 , - 652 , - 501 , - 710 , - 319 , - 288 , - 617 , - 346 , - 435 , - 884 , - 733 , - 942 , - 551 , - 520 , - 849 , - 578 , - 667 , - 156 , - 5 , - 214 , - 783 , - 752 , - 121 , - 810 , - 899 , - 388 , - 237 , - 446 , - 55 , - 24 , - 353 , - 82 , - 171 , - 620 , - 469 , - 678 , - 287 , - 256 , - 585 , - 314 , - 403 , - 852 , - 701 , - 910 , - 519 , - 488 , - 817 , - 546 , - 635 , - 124 , - 933 , - 182 , - 751 , - 720 , - 89 , - 778 , - 867 , - 356 , - 205 , - 414 , - 23 , - 952 , - 321 , - 50 , - 139 , - 588 , - 437 , - 646 , - 255 , - 224 , - 553 , - 282 , - 371 , - 820 , - 669 , - 878 , - 487 , - 456 , - 785 , - 514 , - 603 , - 92 , - 901 , - 150 , - 719 , - 688 , - 57 , - 746 , - 835 , - 324 , - 173 , - 382 , - 951 , - 920 , - 289 , - 18 , - 107 , - 556 , - 405 , - 614 , - 223 , - 192 , - 521 , - 250 , - 339 , - 788 , - 637 , - 846 , - 455 , - 424 , - 753 , - 482 , - 571 , - 60 , - 869 , - 118 , - 687 , - 656 , - 25 , - 714 , - 803 , - 292 , - 141 , - 350 , - 919 , - 888 , - 257 , - 946 , - 75 , - 524 , - 373 , - 582 , - 191 , - 160 , - 489 , - 218 , - 307 , - 756 , - 605 , - 814 , - 423 , - 392 , - 721 , - 450 , - 539 , - 28 , - 837 , - 86 , - 655 , - 624 , - 953 , - 682 , - 771 , - 260 , - 109 , - 318 , - 887 , - 856 , - 225 , - 914 , - 43 , - 492 , - 341 , - 550 , - 159 , - 128 , - 457 , - 186 , - 275 , - 724 , - 573 , - 782 , - 391 , - 360 , - 689 , - 418 , - 507 , - 956 , - 805 , - 54 , - 623 , - 592 , - 921 , - 650 , - 739 , - 228 , - 77 , - 286 , - 855 , - 824 , - 193 , - 882 , - 11 , - 460 , - 309 , - 518 , - 127 , - 96 , - 425 , - 154 , - 243 , - 692 , - 541 , - 750 , - 359 , - 328 , - 657 , - 386 , - 475 , - 924 , - 773 , - 22 , - 591 , - 560 , - 889 , - 618 , - 707 , - 196 , - 45 , - 254 , - 823 , - 792 , - 161 , - 850 , - 939 , - 428 , - 277 , - 486 , - 95 , - 64 , - 393 , - 122 , - 211 , - 660 , - 509 , - 718 , - 327 , - 296 , - 625 , - 354 , - 443 , - 892 , - 741 , - 950 , - 559 , - 528 , - 857 , - 586 , - 675 , - 164 , - 13 , - 222 , - 791 , - 760 , - 129 , - 818 , - 907 , - 396 , - 245 , - 454 , - 63 , - 32 , - 361 , - 90 , - 179 , - 628 , - 477 , - 686 , - 295 , - 264 , - 593 , - 322 , - 411 , - 860 , - 709 , - 918 , - 527 , - 496 , - 825 , - 554 , - 643 , - 132 , - 941 , - 190 , - 759 , - 728 , - 97 , - 786 , - 875 , - 364 , - 213 , - 422 , - 31 , - 0 , - 213 , - 670 , - 395 , - 364 , - 577 , - 58 , - 759 , - 728 , - 941 , - 422 , - 147 , - 116 , - 329 , - 786 , - 511 , - 480 , - 693 , - 174 , - 875 , - 844 , - 81 , - 538 , - 263 , - 232 , - 445 , - 902 , - 627 , - 596 , - 809 , - 290 , - 15 , - 960 , - 197 , - 654 , - 379 , - 348 , - 561 , - 42 , - 743 , - 712 , - 925 , - 406 , - 131 , - 100 , - 313 , - 770 , - 495 , - 464 , - 677 , - 158 , - 859 , - 828 , - 65 , - 522 , - 247 , - 216 , - 429 , - 886 , - 611 , - 580 , - 793 , - 274 , - 975 , - 944 , - 181 , - 638 , - 363 , - 332 , - 545 , - 26 , - 727 , - 696 , - 909 , - 390 , - 115 , - 84 , - 297 , - 754 , - 479 , - 448 , - 661 , - 142 , - 843 , - 812 , - 49 , - 506 , - 231 , - 200 , - 413 , - 870 , - 595 , - 564 , - 777 , - 258 , - 959 , - 928 , - 165 , - 622 , - 347 , - 316 , - 529 , - 10 , - 711 , - 680 , - 893 , - 374 , - 99 , - 68 , - 281 , - 738 , - 463 , - 432 , - 645 , - 126 , - 827 , - 796 , - 33 , - 490 , - 215 , - 184 , - 397 , - 854 , - 579 , - 548 , - 761 , - 242 , - 943 , - 912 , - 149 , - 606 , - 331 , - 300 , - 513 , - 970 , - 695 , - 664 , - 877 , - 358 , - 83 , - 52 , - 265 , - 722 , - 447 , - 416 , - 629 , - 110 , - 811 , - 780 , - 17 , - 474 , - 199 , - 168 , - 381 , - 838 , - 563 , - 532 , - 745 , - 226 , - 927 , - 896 , - 133 , - 590 , - 315 , - 284 , - 497 , - 954 , - 679 , - 648 , - 861 , - 342 , - 67 , - 36 , - 249 , - 706 , - 431 , - 400 , - 613 , - 94 , - 795 , - 764 , - 1 , - 458 , - 183 , - 152 , - 365 , - 822 , - 547 , - 516 , - 729 , - 210 , - 911 , - 880 , - 117 , - 574 , - 299 , - 268 , - 481 , - 938 , - 663 , - 632 , - 845 , - 326 , - 51 , - 20 , - 233 , - 690 , - 415 , - 384 , - 597 , - 78 , - 779 , - 748 , - 961 , - 442 , - 167 , - 136 , - 349 , - 806 , - 531 , - 500 , - 713 , - 194 , - 895 , - 864 , - 101 , - 558 , - 283 , - 252 , - 465 , - 922 , - 647 , - 616 , - 829 , - 310 , - 35 , - 4 , - 217 , - 674 , - 399 , - 368 , - 581 , - 62 , - 763 , - 732 , - 945 , - 426 , - 151 , - 120 , - 333 , - 790 , - 515 , - 484 , - 697 , - 178 , - 879 , - 848 , - 85 , - 542 , - 267 , - 236 , - 449 , - 906 , - 631 , - 600 , - 813 , - 294 , - 19 , - 964 , - 201 , - 658 , - 383 , - 352 , - 565 , - 46 , - 747 , - 716 , - 929 , - 410 , - 135 , - 104 , - 317 , - 774 , - 499 , - 468 , - 681 , - 162 , - 863 , - 832 , - 69 , - 526 , - 251 , - 220 , - 433 , - 890 , - 615 , - 584 , - 797 , - 278 , - 3 , - 948 , - 185 , - 642 , - 367 , - 336 , - 549 , - 30 , - 731 , - 700 , - 913 , - 394 , - 119 , - 88 , - 301 , - 758 , - 483 , - 452 , - 665 , - 146 , - 847 , - 816 , - 53 , - 510 , - 235 , - 204 , - 417 , - 874 , - 599 , - 568 , - 781 , - 262 , - 963 , - 932 , - 169 , - 626 , - 351 , - 320 , - 533 , - 14 , - 715 , - 684 , - 897 , - 378 , - 103 , - 72 , - 285 , - 742 , - 467 , - 436 , - 649 , - 130 , - 831 , - 800 , - 37 , - 494 , - 219 , - 188 , - 401 , - 858 , - 583 , - 552 , - 765 , - 246 , - 947 , - 916 , - 153 , - 610 , - 335 , - 304 , - 517 , - 974 , - 699 , - 668 , - 881 , - 362 , - 87 , - 56 , - 269 , - 726 , - 451 , - 420 , - 633 , - 114 , - 815 , - 784 , - 21 , - 478 , - 203 , - 172 , - 385 , - 842 , - 567 , - 536 , - 749 , - 230 , - 931 , - 900 , - 137 , - 594 , - 319 , - 288 , - 501 , - 958 , - 683 , - 652 , - 865 , - 346 , - 71 , - 40 , - 253 , - 710 , - 435 , - 404 , - 617 , - 98 , - 799 , - 768 , - 5 , - 462 , - 187 , - 156 , - 369 , - 826 , - 551 , - 520 , - 733 , - 214 , - 915 , - 884 , - 121 , - 578 , - 303 , - 272 , - 485 , - 942 , - 667 , - 636 , - 849 , - 330 , - 55 , - 24 , - 237 , - 694 , - 419 , - 388 , - 601 , - 82 , - 783 , - 752 , - 965 , - 446 , - 171 , - 140 , - 353 , - 810 , - 535 , - 504 , - 717 , - 198 , - 899 , - 868 , - 105 , - 562 , - 287 , - 256 , - 469 , - 926 , - 651 , - 620 , - 833 , - 314 , - 39 , - 8 , - 221 , - 678 , - 403 , - 372 , - 585 , - 66 , - 767 , - 736 , - 949 , - 430 , - 155 , - 124 , - 337 , - 794 , - 519 , - 488 , - 701 , - 182 , - 883 , - 852 , - 89 , - 546 , - 271 , - 240 , - 453 , - 910 , - 635 , - 604 , - 817 , - 298 , - 23 , - 968 , - 205 , - 662 , - 387 , - 356 , - 569 , - 50 , - 751 , - 720 , - 933 , - 414 , - 139 , - 108 , - 321 , - 778 , - 503 , - 472 , - 685 , - 166 , - 867 , - 836 , - 73 , - 530 , - 255 , - 224 , - 437 , - 894 , - 619 , - 588 , - 801 , - 282 , - 7 , - 952 , - 189 , - 646 , - 371 , - 340 , - 553 , - 34 , - 735 , - 704 , - 917 , - 398 , - 123 , - 92 , - 305 , - 762 , - 487 , - 456 , - 669 , - 150 , - 851 , - 820 , - 57 , - 514 , - 239 , - 208 , - 421 , - 878 , - 603 , - 572 , - 785 , - 266 , - 967 , - 936 , - 173 , - 630 , - 355 , - 324 , - 537 , - 18 , - 719 , - 688 , - 901 , - 382 , - 107 , - 76 , - 289 , - 746 , - 471 , - 440 , - 653 , - 134 , - 835 , - 804 , - 41 , - 498 , - 223 , - 192 , - 405 , - 862 , - 587 , - 556 , - 769 , - 250 , - 951 , - 920 , - 157 , - 614 , - 339 , - 308 , - 521 , - 2 , - 703 , - 672 , - 885 , - 366 , - 91 , - 60 , - 273 , - 730 , - 455 , - 424 , - 637 , - 118 , - 819 , - 788 , - 25 , - 482 , - 207 , - 176 , - 389 , - 846 , - 571 , - 540 , - 753 , - 234 , - 935 , - 904 , - 141 , - 598 , - 323 , - 292 , - 505 , - 962 , - 687 , - 656 , - 869 , - 350 , - 75 , - 44 , - 257 , - 714 , - 439 , - 408 , - 621 , - 102 , - 803 , - 772 , - 9 , - 466 , - 191 , - 160 , - 373 , - 830 , - 555 , - 524 , - 737 , - 218 , - 919 , - 888 , - 125 , - 582 , - 307 , - 276 , - 489 , - 946 , - 671 , - 640 , - 853 , - 334 , - 59 , - 28 , - 241 , - 698 , - 423 , - 392 , - 605 , - 86 , - 787 , - 756 , - 969 , - 450 , - 175 , - 144 , - 357 , - 814 , - 539 , - 508 , - 721 , - 202 , - 903 , - 872 , - 109 , - 566 , - 291 , - 260 , - 473 , - 930 , - 655 , - 624 , - 837 , - 318 , - 43 , - 12 , - 225 , - 682 , - 407 , - 376 , - 589 , - 70 , - 771 , - 740 , - 953 , - 434 , - 159 , - 128 , - 341 , - 798 , - 523 , - 492 , - 705 , - 186 , - 887 , - 856 , - 93 , - 550 , - 275 , - 244 , - 457 , - 914 , - 639 , - 608 , - 821 , - 302 , - 27 , - 972 , - 209 , - 666 , - 391 , - 360 , - 573 , - 54 , - 755 , - 724 , - 937 , - 418 , - 143 , - 112 , - 325 , - 782 , - 507 , - 476 , - 689 , - 170 , - 871 , - 840 , - 77 , - 534 , - 259 , - 228 , - 441 , - 898 , - 623 , - 592 , - 805 , - 286 , - 11 , - 956 , - 193 , - 650 , - 375 , - 344 , - 557 , - 38 , - 739 , - 708 , - 921 , - 402 , - 127 , - 96 , - 309 , - 766 , - 491 , - 460 , - 673 , - 154 , - 855 , - 824 , - 61 , - 518 , - 243 , - 212 , - 425 , - 882 , - 607 , - 576 , - 789 , - 270 , - 971 , - 940 , - 177 , - 634 , - 359 , - 328 , - 541 , - 22 , - 723 , - 692 , - 905 , - 386 , - 111 , - 80 , - 293 , - 750 , - 475 , - 444 , - 657 , - 138 , - 839 , - 808 , - 45 , - 502 , - 227 , - 196 , - 409 , - 866 , - 591 , - 560 , - 773 , - 254 , - 955 , - 924 , - 161 , - 618 , - 343 , - 312 , - 525 , - 6 , - 707 , - 676 , - 889 , - 370 , - 95 , - 64 , - 277 , - 734 , - 459 , - 428 , - 641 , - 122 , - 823 , - 792 , - 29 , - 486 , - 211 , - 180 , - 393 , - 850 , - 575 , - 544 , - 757 , - 238 , - 939 , - 908 , - 145 , - 602 , - 327 , - 296 , - 509 , - 966 , - 691 , - 660 , - 873 , - 354 , - 79 , - 48 , - 261 , - 718 , - 443 , - 412 , - 625 , - 106 , - 807 , - 776 , - 13 , - 470 , - 195 , - 164 , - 377 , - 834 , - 559 , - 528 , - 741 , - 222 , - 923 , - 892 , - 129 , - 586 , - 311 , - 280 , - 493 , - 950 , - 675 , - 644 , - 857 , - 338 , - 63 , - 32 , - 245 , - 702 , - 427 , - 396 , - 609 , - 90 , - 791 , - 760 , - 973 , - 454 , - 179 , - 148 , - 361 , - 818 , - 543 , - 512 , - 725 , - 206 , - 907 , - 876 , - 113 , - 570 , - 295 , - 264 , - 477 , - 934 , - 659 , - 628 , - 841 , - 322 , - 47 , - 16 , - 229 , - 686 , - 411 , - 380 , - 593 , - 74 , - 775 , - 744 , - 957 , - 438 , - 163 , - 132 , - 345 , - 802 , - 527 , - 496 , - 709 , - 190 , - 891 , - 860 , - 97 , - 554 , - 279 , - 248 , - 461 , - 918 , - 643 , - 612 , - 825 , - 306 , - 31 , - 0 , - 517 , - 786 , - 807 , - 580 , - 105 , - 374 , - 395 , - 168 , - 685 , - 954 , - 975 , - 748 , - 273 , - 542 , - 563 , - 336 , - 853 , - 130 , - 151 , - 916 , - 441 , - 710 , - 731 , - 504 , - 29 , - 298 , - 319 , - 92 , - 609 , - 878 , - 899 , - 672 , - 197 , - 466 , - 487 , - 260 , - 777 , - 54 , - 75 , - 840 , - 365 , - 634 , - 655 , - 428 , - 945 , - 222 , - 243 , - 16 , - 533 , - 802 , - 823 , - 596 , - 121 , - 390 , - 411 , - 184 , - 701 , - 970 , - 991 , - 764 , - 289 , - 558 , - 579 , - 352 , - 869 , - 146 , - 167 , - 932 , - 457 , - 726 , - 747 , - 520 , - 45 , - 314 , - 335 , - 108 , - 625 , - 894 , - 915 , - 688 , - 213 , - 482 , - 503 , - 276 , - 793 , - 70 , - 91 , - 856 , - 381 , - 650 , - 671 , - 444 , - 961 , - 238 , - 259 , - 32 , - 549 , - 818 , - 839 , - 612 , - 137 , - 406 , - 427 , - 200 , - 717 , - 986 , - 15 , - 780 , - 305 , - 574 , - 595 , - 368 , - 885 , - 162 , - 183 , - 948 , - 473 , - 742 , - 763 , - 536 , - 61 , - 330 , - 351 , - 124 , - 641 , - 910 , - 931 , - 704 , - 229 , - 498 , - 519 , - 292 , - 809 , - 86 , - 107 , - 872 , - 397 , - 666 , - 687 , - 460 , - 977 , - 254 , - 275 , - 48 , - 565 , - 834 , - 855 , - 628 , - 153 , - 422 , - 443 , - 216 , - 733 , - 10 , - 31 , - 796 , - 321 , - 590 , - 611 , - 384 , - 901 , - 178 , - 199 , - 964 , - 489 , - 758 , - 779 , - 552 , - 77 , - 346 , - 367 , - 140 , - 657 , - 926 , - 947 , - 720 , - 245 , - 514 , - 535 , - 308 , - 825 , - 102 , - 123 , - 888 , - 413 , - 682 , - 703 , - 476 , - 1 , - 270 , - 291 , - 64 , - 581 , - 850 , - 871 , - 644 , - 169 , - 438 , - 459 , - 232 , - 749 , - 26 , - 47 , - 812 , - 337 , - 606 , - 627 , - 400 , - 917 , - 194 , - 215 , - 980 , - 505 , - 774 , - 795 , - 568 , - 93 , - 362 , - 383 , - 156 , - 673 , - 942 , - 963 , - 736 , - 261 , - 530 , - 551 , - 324 , - 841 , - 118 , - 139 , - 904 , - 429 , - 698 , - 719 , - 492 , - 17 , - 286 , - 307 , - 80 , - 597 , - 866 , - 887 , - 660 , - 185 , - 454 , - 475 , - 248 , - 765 , - 42 , - 63 , - 828 , - 353 , - 622 , - 643 , - 416 , - 933 , - 210 , - 231 , - 4 , - 521 , - 790 , - 811 , - 584 , - 109 , - 378 , - 399 , - 172 , - 689 , - 958 , - 979 , - 752 , - 277 , - 546 , - 567 , - 340 , - 857 , - 134 , - 155 , - 920 , - 445 , - 714 , - 735 , - 508 , - 33 , - 302 , - 323 , - 96 , - 613 , - 882 , - 903 , - 676 , - 201 , - 470 , - 491 , - 264 , - 781 , - 58 , - 79 , - 844 , - 369 , - 638 , - 659 , - 432 , - 949 , - 226 , - 247 , - 20 , - 537 , - 806 , - 827 , - 600 , - 125 , - 394 , - 415 , - 188 , - 705 , - 974 , - 3 , - 768 , - 293 , - 562 , - 583 , - 356 , - 873 , - 150 , - 171 , - 936 , - 461 , - 730 , - 751 , - 524 , - 49 , - 318 , - 339 , - 112 , - 629 , - 898 , - 919 , - 692 , - 217 , - 486 , - 507 , - 280 , - 797 , - 74 , - 95 , - 860 , - 385 , - 654 , - 675 , - 448 , - 965 , - 242 , - 263 , - 36 , - 553 , - 822 , - 843 , - 616 , - 141 , - 410 , - 431 , - 204 , - 721 , - 990 , - 19 , - 784 , - 309 , - 578 , - 599 , - 372 , - 889 , - 166 , - 187 , - 952 , - 477 , - 746 , - 767 , - 540 , - 65 , - 334 , - 355 , - 128 , - 645 , - 914 , - 935 , - 708 , - 233 , - 502 , - 523 , - 296 , - 813 , - 90 , - 111 , - 876 , - 401 , - 670 , - 691 , - 464 , - 981 , - 258 , - 279 , - 52 , - 569 , - 838 , - 859 , - 632 , - 157 , - 426 , - 447 , - 220 , - 737 , - 14 , - 35 , - 800 , - 325 , - 594 , - 615 , - 388 , - 905 , - 182 , - 203 , - 968 , - 493 , - 762 , - 783 , - 556 , - 81 , - 350 , - 371 , - 144 , - 661 , - 930 , - 951 , - 724 , - 249 , - 518 , - 539 , - 312 , - 829 , - 106 , - 127 , - 892 , - 417 , - 686 , - 707 , - 480 , - 5 , - 274 , - 295 , - 68 , - 585 , - 854 , - 875 , - 648 , - 173 , - 442 , - 463 , - 236 , - 753 , - 30 , - 51 , - 816 , - 341 , - 610 , - 631 , - 404 , - 921 , - 198 , - 219 , - 984 , - 509 , - 778 , - 799 , - 572 , - 97 , - 366 , - 387 , - 160 , - 677 , - 946 , - 967 , - 740 , - 265 , - 534 , - 555 , - 328 , - 845 , - 122 , - 143 , - 908 , - 433 , - 702 , - 723 , - 496 , - 21 , - 290 , - 311 , - 84 , - 601 , - 870 , - 891 , - 664 , - 189 , - 458 , - 479 , - 252 , - 769 , - 46 , - 67 , - 832 , - 357 , - 626 , - 647 , - 420 , - 937 , - 214 , - 235 , - 8 , - 525 , - 794 , - 815 , - 588 , - 113 , - 382 , - 403 , - 176 , - 693 , - 962 , - 983 , - 756 , - 281 , - 550 , - 571 , - 344 , - 861 , - 138 , - 159 , - 924 , - 449 , - 718 , - 739 , - 512 , - 37 , - 306 , - 327 , - 100 , - 617 , - 886 , - 907 , - 680 , - 205 , - 474 , - 495 , - 268 , - 785 , - 62 , - 83 , - 848 , - 373 , - 642 , - 663 , - 436 , - 953 , - 230 , - 251 , - 24 , - 541 , - 810 , - 831 , - 604 , - 129 , - 398 , - 419 , - 192 , - 709 , - 978 , - 7 , - 772 , - 297 , - 566 , - 587 , - 360 , - 877 , - 154 , - 175 , - 940 , - 465 , - 734 , - 755 , - 528 , - 53 , - 322 , - 343 , - 116 , - 633 , - 902 , - 923 , - 696 , - 221 , - 490 , - 511 , - 284 , - 801 , - 78 , - 99 , - 864 , - 389 , - 658 , - 679 , - 452 , - 969 , - 246 , - 267 , - 40 , - 557 , - 826 , - 847 , - 620 , - 145 , - 414 , - 435 , - 208 , - 725 , - 2 , - 23 , - 788 , - 313 , - 582 , - 603 , - 376 , - 893 , - 170 , - 191 , - 956 , - 481 , - 750 , - 771 , - 544 , - 69 , - 338 , - 359 , - 132 , - 649 , - 918 , - 939 , - 712 , - 237 , - 506 , - 527 , - 300 , - 817 , - 94 , - 115 , - 880 , - 405 , - 674 , - 695 , - 468 , - 985 , - 262 , - 283 , - 56 , - 573 , - 842 , - 863 , - 636 , - 161 , - 430 , - 451 , - 224 , - 741 , - 18 , - 39 , - 804 , - 329 , - 598 , - 619 , - 392 , - 909 , - 186 , - 207 , - 972 , - 497 , - 766 , - 787 , - 560 , - 85 , - 354 , - 375 , - 148 , - 665 , - 934 , - 955 , - 728 , - 253 , - 522 , - 543 , - 316 , - 833 , - 110 , - 131 , - 896 , - 421 , - 690 , - 711 , - 484 , - 9 , - 278 , - 299 , - 72 , - 589 , - 858 , - 879 , - 652 , - 177 , - 446 , - 467 , - 240 , - 757 , - 34 , - 55 , - 820 , - 345 , - 614 , - 635 , - 408 , - 925 , - 202 , - 223 , - 988 , - 513 , - 782 , - 803 , - 576 , - 101 , - 370 , - 391 , - 164 , - 681 , - 950 , - 971 , - 744 , - 269 , - 538 , - 559 , - 332 , - 849 , - 126 , - 147 , - 912 , - 437 , - 706 , - 727 , - 500 , - 25 , - 294 , - 315 , - 88 , - 605 , - 874 , - 895 , - 668 , - 193 , - 462 , - 483 , - 256 , - 773 , - 50 , - 71 , - 836 , - 361 , - 630 , - 651 , - 424 , - 941 , - 218 , - 239 , - 12 , - 529 , - 798 , - 819 , - 592 , - 117 , - 386 , - 407 , - 180 , - 697 , - 966 , - 987 , - 760 , - 285 , - 554 , - 575 , - 348 , - 865 , - 142 , - 163 , - 928 , - 453 , - 722 , - 743 , - 516 , - 41 , - 310 , - 331 , - 104 , - 621 , - 890 , - 911 , - 684 , - 209 , - 478 , - 499 , - 272 , - 789 , - 66 , - 87 , - 852 , - 377 , - 646 , - 667 , - 440 , - 957 , - 234 , - 255 , - 28 , - 545 , - 814 , - 835 , - 608 , - 133 , - 402 , - 423 , - 196 , - 713 , - 982 , - 11 , - 776 , - 301 , - 570 , - 591 , - 364 , - 881 , - 158 , - 179 , - 944 , - 469 , - 738 , - 759 , - 532 , - 57 , - 326 , - 347 , - 120 , - 637 , - 906 , - 927 , - 700 , - 225 , - 494 , - 515 , - 288 , - 805 , - 82 , - 103 , - 868 , - 393 , - 662 , - 683 , - 456 , - 973 , - 250 , - 271 , - 44 , - 561 , - 830 , - 851 , - 624 , - 149 , - 418 , - 439 , - 212 , - 729 , - 6 , - 27 , - 792 , - 317 , - 586 , - 607 , - 380 , - 897 , - 174 , - 195 , - 960 , - 485 , - 754 , - 775 , - 548 , - 73 , - 342 , - 363 , - 136 , - 653 , - 922 , - 943 , - 716 , - 241 , - 510 , - 531 , - 304 , - 821 , - 98 , - 119 , - 884 , - 409 , - 678 , - 699 , - 472 , - 989 , - 266 , - 287 , - 60 , - 577 , - 846 , - 867 , - 640 , - 165 , - 434 , - 455 , - 228 , - 745 , - 22 , - 43 , - 808 , - 333 , - 602 , - 623 , - 396 , - 913 , - 190 , - 211 , - 976 , - 501 , - 770 , - 791 , - 564 , - 89 , - 358 , - 379 , - 152 , - 669 , - 938 , - 959 , - 732 , - 257 , - 526 , - 547 , - 320 , - 837 , - 114 , - 135 , - 900 , - 425 , - 694 , - 715 , - 488 , - 13 , - 282 , - 303 , - 76 , - 593 , - 862 , - 883 , - 656 , - 181 , - 450 , - 471 , - 244 , - 761 , - 38 , - 59 , - 824 , - 349 , - 618 , - 639 , - 412 , - 929 , - 206 , - 227 , - 0 , - 475 , - 782 , - 921 , - 892 , - 695 , - 330 , - 805 , - 104 , - 243 , - 214 , - 17 , - 660 , - 127 , - 434 , - 573 , - 544 , - 347 , - 990 , - 457 , - 764 , - 903 , - 874 , - 677 , - 312 , - 787 , - 86 , - 225 , - 196 , - 1007 , - 642 , - 109 , - 416 , - 555 , - 526 , - 329 , - 972 , - 439 , - 746 , - 885 , - 856 , - 659 , - 294 , - 769 , - 68 , - 207 , - 178 , - 989 , - 624 , - 91 , - 398 , - 537 , - 508 , - 311 , - 954 , - 421 , - 728 , - 867 , - 838 , - 641 , - 276 , - 751 , - 50 , - 189 , - 160 , - 971 , - 606 , - 73 , - 380 , - 519 , - 490 , - 293 , - 936 , - 403 , - 710 , - 849 , - 820 , - 623 , - 258 , - 733 , - 32 , - 171 , - 142 , - 953 , - 588 , - 55 , - 362 , - 501 , - 472 , - 275 , - 918 , - 385 , - 692 , - 831 , - 802 , - 605 , - 240 , - 715 , - 14 , - 153 , - 124 , - 935 , - 570 , - 37 , - 344 , - 483 , - 454 , - 257 , - 900 , - 367 , - 674 , - 813 , - 784 , - 587 , - 222 , - 697 , - 1004 , - 135 , - 106 , - 917 , - 552 , - 19 , - 326 , - 465 , - 436 , - 239 , - 882 , - 349 , - 656 , - 795 , - 766 , - 569 , - 204 , - 679 , - 986 , - 117 , - 88 , - 899 , - 534 , - 1 , - 308 , - 447 , - 418 , - 221 , - 864 , - 331 , - 638 , - 777 , - 748 , - 551 , - 186 , - 661 , - 968 , - 99 , - 70 , - 881 , - 516 , - 991 , - 290 , - 429 , - 400 , - 203 , - 846 , - 313 , - 620 , - 759 , - 730 , - 533 , - 168 , - 643 , - 950 , - 81 , - 52 , - 863 , - 498 , - 973 , - 272 , - 411 , - 382 , - 185 , - 828 , - 295 , - 602 , - 741 , - 712 , - 515 , - 150 , - 625 , - 932 , - 63 , - 34 , - 845 , - 480 , - 955 , - 254 , - 393 , - 364 , - 167 , - 810 , - 277 , - 584 , - 723 , - 694 , - 497 , - 132 , - 607 , - 914 , - 45 , - 16 , - 827 , - 462 , - 937 , - 236 , - 375 , - 346 , - 149 , - 792 , - 259 , - 566 , - 705 , - 676 , - 479 , - 114 , - 589 , - 896 , - 27 , - 1006 , - 809 , - 444 , - 919 , - 218 , - 357 , - 328 , - 131 , - 774 , - 241 , - 548 , - 687 , - 658 , - 461 , - 96 , - 571 , - 878 , - 9 , - 988 , - 791 , - 426 , - 901 , - 200 , - 339 , - 310 , - 113 , - 756 , - 223 , - 530 , - 669 , - 640 , - 443 , - 78 , - 553 , - 860 , - 999 , - 970 , - 773 , - 408 , - 883 , - 182 , - 321 , - 292 , - 95 , - 738 , - 205 , - 512 , - 651 , - 622 , - 425 , - 60 , - 535 , - 842 , - 981 , - 952 , - 755 , - 390 , - 865 , - 164 , - 303 , - 274 , - 77 , - 720 , - 187 , - 494 , - 633 , - 604 , - 407 , - 42 , - 517 , - 824 , - 963 , - 934 , - 737 , - 372 , - 847 , - 146 , - 285 , - 256 , - 59 , - 702 , - 169 , - 476 , - 615 , - 586 , - 389 , - 24 , - 499 , - 806 , - 945 , - 916 , - 719 , - 354 , - 829 , - 128 , - 267 , - 238 , - 41 , - 684 , - 151 , - 458 , - 597 , - 568 , - 371 , - 6 , - 481 , - 788 , - 927 , - 898 , - 701 , - 336 , - 811 , - 110 , - 249 , - 220 , - 23 , - 666 , - 133 , - 440 , - 579 , - 550 , - 353 , - 996 , - 463 , - 770 , - 909 , - 880 , - 683 , - 318 , - 793 , - 92 , - 231 , - 202 , - 5 , - 648 , - 115 , - 422 , - 561 , - 532 , - 335 , - 978 , - 445 , - 752 , - 891 , - 862 , - 665 , - 300 , - 775 , - 74 , - 213 , - 184 , - 995 , - 630 , - 97 , - 404 , - 543 , - 514 , - 317 , - 960 , - 427 , - 734 , - 873 , - 844 , - 647 , - 282 , - 757 , - 56 , - 195 , - 166 , - 977 , - 612 , - 79 , - 386 , - 525 , - 496 , - 299 , - 942 , - 409 , - 716 , - 855 , - 826 , - 629 , - 264 , - 739 , - 38 , - 177 , - 148 , - 959 , - 594 , - 61 , - 368 , - 507 , - 478 , - 281 , - 924 , - 391 , - 698 , - 837 , - 808 , - 611 , - 246 , - 721 , - 20 , - 159 , - 130 , - 941 , - 576 , - 43 , - 350 , - 489 , - 460 , - 263 , - 906 , - 373 , - 680 , - 819 , - 790 , - 593 , - 228 , - 703 , - 2 , - 141 , - 112 , - 923 , - 558 , - 25 , - 332 , - 471 , - 442 , - 245 , - 888 , - 355 , - 662 , - 801 , - 772 , - 575 , - 210 , - 685 , - 992 , - 123 , - 94 , - 905 , - 540 , - 7 , - 314 , - 453 , - 424 , - 227 , - 870 , - 337 , - 644 , - 783 , - 754 , - 557 , - 192 , - 667 , - 974 , - 105 , - 76 , - 887 , - 522 , - 997 , - 296 , - 435 , - 406 , - 209 , - 852 , - 319 , - 626 , - 765 , - 736 , - 539 , - 174 , - 649 , - 956 , - 87 , - 58 , - 869 , - 504 , - 979 , - 278 , - 417 , - 388 , - 191 , - 834 , - 301 , - 608 , - 747 , - 718 , - 521 , - 156 , - 631 , - 938 , - 69 , - 40 , - 851 , - 486 , - 961 , - 260 , - 399 , - 370 , - 173 , - 816 , - 283 , - 590 , - 729 , - 700 , - 503 , - 138 , - 613 , - 920 , - 51 , - 22 , - 833 , - 468 , - 943 , - 242 , - 381 , - 352 , - 155 , - 798 , - 265 , - 572 , - 711 , - 682 , - 485 , - 120 , - 595 , - 902 , - 33 , - 4 , - 815 , - 450 , - 925 , - 224 , - 363 , - 334 , - 137 , - 780 , - 247 , - 554 , - 693 , - 664 , - 467 , - 102 , - 577 , - 884 , - 15 , - 994 , - 797 , - 432 , - 907 , - 206 , - 345 , - 316 , - 119 , - 762 , - 229 , - 536 , - 675 , - 646 , - 449 , - 84 , - 559 , - 866 , - 1005 , - 976 , - 779 , - 414 , - 889 , - 188 , - 327 , - 298 , - 101 , - 744 , - 211 , - 518 , - 657 , - 628 , - 431 , - 66 , - 541 , - 848 , - 987 , - 958 , - 761 , - 396 , - 871 , - 170 , - 309 , - 280 , - 83 , - 726 , - 193 , - 500 , - 639 , - 610 , - 413 , - 48 , - 523 , - 830 , - 969 , - 940 , - 743 , - 378 , - 853 , - 152 , - 291 , - 262 , - 65 , - 708 , - 175 , - 482 , - 621 , - 592 , - 395 , - 30 , - 505 , - 812 , - 951 , - 922 , - 725 , - 360 , - 835 , - 134 , - 273 , - 244 , - 47 , - 690 , - 157 , - 464 , - 603 , - 574 , - 377 , - 12 , - 487 , - 794 , - 933 , - 904 , - 707 , - 342 , - 817 , - 116 , - 255 , - 226 , - 29 , - 672 , - 139 , - 446 , - 585 , - 556 , - 359 , - 1002 , - 469 , - 776 , - 915 , - 886 , - 689 , - 324 , - 799 , - 98 , - 237 , - 208 , - 11 , - 654 , - 121 , - 428 , - 567 , - 538 , - 341 , - 984 , - 451 , - 758 , - 897 , - 868 , - 671 , - 306 , - 781 , - 80 , - 219 , - 190 , - 1001 , - 636 , - 103 , - 410 , - 549 , - 520 , - 323 , - 966 , - 433 , - 740 , - 879 , - 850 , - 653 , - 288 , - 763 , - 62 , - 201 , - 172 , - 983 , - 618 , - 85 , - 392 , - 531 , - 502 , - 305 , - 948 , - 415 , - 722 , - 861 , - 832 , - 635 , - 270 , - 745 , - 44 , - 183 , - 154 , - 965 , - 600 , - 67 , - 374 , - 513 , - 484 , - 287 , - 930 , - 397 , - 704 , - 843 , - 814 , - 617 , - 252 , - 727 , - 26 , - 165 , - 136 , - 947 , - 582 , - 49 , - 356 , - 495 , - 466 , - 269 , - 912 , - 379 , - 686 , - 825 , - 796 , - 599 , - 234 , - 709 , - 8 , - 147 , - 118 , - 929 , - 564 , - 31 , - 338 , - 477 , - 448 , - 251 , - 894 , - 361 , - 668 , - 807 , - 778 , - 581 , - 216 , - 691 , - 998 , - 129 , - 100 , - 911 , - 546 , - 13 , - 320 , - 459 , - 430 , - 233 , - 876 , - 343 , - 650 , - 789 , - 760 , - 563 , - 198 , - 673 , - 980 , - 111 , - 82 , - 893 , - 528 , - 1003 , - 302 , - 441 , - 412 , - 215 , - 858 , - 325 , - 632 , - 771 , - 742 , - 545 , - 180 , - 655 , - 962 , - 93 , - 64 , - 875 , - 510 , - 985 , - 284 , - 423 , - 394 , - 197 , - 840 , - 307 , - 614 , - 753 , - 724 , - 527 , - 162 , - 637 , - 944 , - 75 , - 46 , - 857 , - 492 , - 967 , - 266 , - 405 , - 376 , - 179 , - 822 , - 289 , - 596 , - 735 , - 706 , - 509 , - 144 , - 619 , - 926 , - 57 , - 28 , - 839 , - 474 , - 949 , - 248 , - 387 , - 358 , - 161 , - 804 , - 271 , - 578 , - 717 , - 688 , - 491 , - 126 , - 601 , - 908 , - 39 , - 10 , - 821 , - 456 , - 931 , - 230 , - 369 , - 340 , - 143 , - 786 , - 253 , - 560 , - 699 , - 670 , - 473 , - 108 , - 583 , - 890 , - 21 , - 1000 , - 803 , - 438 , - 913 , - 212 , - 351 , - 322 , - 125 , - 768 , - 235 , - 542 , - 681 , - 652 , - 455 , - 90 , - 565 , - 872 , - 3 , - 982 , - 785 , - 420 , - 895 , - 194 , - 333 , - 304 , - 107 , - 750 , - 217 , - 524 , - 663 , - 634 , - 437 , - 72 , - 547 , - 854 , - 993 , - 964 , - 767 , - 402 , - 877 , - 176 , - 315 , - 286 , - 89 , - 732 , - 199 , - 506 , - 645 , - 616 , - 419 , - 54 , - 529 , - 836 , - 975 , - 946 , - 749 , - 384 , - 859 , - 158 , - 297 , - 268 , - 71 , - 714 , - 181 , - 488 , - 627 , - 598 , - 401 , - 36 , - 511 , - 818 , - 957 , - 928 , - 731 , - 366 , - 841 , - 140 , - 279 , - 250 , - 53 , - 696 , - 163 , - 470 , - 609 , - 580 , - 383 , - 18 , - 493 , - 800 , - 939 , - 910 , - 713 , - 348 , - 823 , - 122 , - 261 , - 232 , - 35 , - 678 , - 145 , - 452 , - 591 , - 562 , - 365 , - 0 , - 31 , - 190 , - 477 , - 892 , - 411 , - 58 , - 857 , - 760 , - 791 , - 950 , - 213 , - 628 , - 147 , - 818 , - 593 , - 496 , - 527 , - 686 , - 973 , - 364 , - 907 , - 554 , - 329 , - 232 , - 263 , - 422 , - 709 , - 100 , - 643 , - 290 , - 65 , - 992 , - 1023 , - 158 , - 445 , - 860 , - 379 , - 26 , - 825 , - 728 , - 759 , - 918 , - 181 , - 596 , - 115 , - 786 , - 561 , - 464 , - 495 , - 654 , - 941 , - 332 , - 875 , - 522 , - 297 , - 200 , - 231 , - 390 , - 677 , - 68 , - 611 , - 258 , - 33 , - 960 , - 991 , - 126 , - 413 , - 828 , - 347 , - 1018 , - 793 , - 696 , - 727 , - 886 , - 149 , - 564 , - 83 , - 754 , - 529 , - 432 , - 463 , - 622 , - 909 , - 300 , - 843 , - 490 , - 265 , - 168 , - 199 , - 358 , - 645 , - 36 , - 579 , - 226 , - 1 , - 928 , - 959 , - 94 , - 381 , - 796 , - 315 , - 986 , - 761 , - 664 , - 695 , - 854 , - 117 , - 532 , - 51 , - 722 , - 497 , - 400 , - 431 , - 590 , - 877 , - 268 , - 811 , - 458 , - 233 , - 136 , - 167 , - 326 , - 613 , - 4 , - 547 , - 194 , - 993 , - 896 , - 927 , - 62 , - 349 , - 764 , - 283 , - 954 , - 729 , - 632 , - 663 , - 822 , - 85 , - 500 , - 19 , - 690 , - 465 , - 368 , - 399 , - 558 , - 845 , - 236 , - 779 , - 426 , - 201 , - 104 , - 135 , - 294 , - 581 , - 996 , - 515 , - 162 , - 961 , - 864 , - 895 , - 30 , - 317 , - 732 , - 251 , - 922 , - 697 , - 600 , - 631 , - 790 , - 53 , - 468 , - 1011 , - 658 , - 433 , - 336 , - 367 , - 526 , - 813 , - 204 , - 747 , - 394 , - 169 , - 72 , - 103 , - 262 , - 549 , - 964 , - 483 , - 130 , - 929 , - 832 , - 863 , - 1022 , - 285 , - 700 , - 219 , - 890 , - 665 , - 568 , - 599 , - 758 , - 21 , - 436 , - 979 , - 626 , - 401 , - 304 , - 335 , - 494 , - 781 , - 172 , - 715 , - 362 , - 137 , - 40 , - 71 , - 230 , - 517 , - 932 , - 451 , - 98 , - 897 , - 800 , - 831 , - 990 , - 253 , - 668 , - 187 , - 858 , - 633 , - 536 , - 567 , - 726 , - 1013 , - 404 , - 947 , - 594 , - 369 , - 272 , - 303 , - 462 , - 749 , - 140 , - 683 , - 330 , - 105 , - 8 , - 39 , - 198 , - 485 , - 900 , - 419 , - 66 , - 865 , - 768 , - 799 , - 958 , - 221 , - 636 , - 155 , - 826 , - 601 , - 504 , - 535 , - 694 , - 981 , - 372 , - 915 , - 562 , - 337 , - 240 , - 271 , - 430 , - 717 , - 108 , - 651 , - 298 , - 73 , - 1000 , - 7 , - 166 , - 453 , - 868 , - 387 , - 34 , - 833 , - 736 , - 767 , - 926 , - 189 , - 604 , - 123 , - 794 , - 569 , - 472 , - 503 , - 662 , - 949 , - 340 , - 883 , - 530 , - 305 , - 208 , - 239 , - 398 , - 685 , - 76 , - 619 , - 266 , - 41 , - 968 , - 999 , - 134 , - 421 , - 836 , - 355 , - 2 , - 801 , - 704 , - 735 , - 894 , - 157 , - 572 , - 91 , - 762 , - 537 , - 440 , - 471 , - 630 , - 917 , - 308 , - 851 , - 498 , - 273 , - 176 , - 207 , - 366 , - 653 , - 44 , - 587 , - 234 , - 9 , - 936 , - 967 , - 102 , - 389 , - 804 , - 323 , - 994 , - 769 , - 672 , - 703 , - 862 , - 125 , - 540 , - 59 , - 730 , - 505 , - 408 , - 439 , - 598 , - 885 , - 276 , - 819 , - 466 , - 241 , - 144 , - 175 , - 334 , - 621 , - 12 , - 555 , - 202 , - 1001 , - 904 , - 935 , - 70 , - 357 , - 772 , - 291 , - 962 , - 737 , - 640 , - 671 , - 830 , - 93 , - 508 , - 27 , - 698 , - 473 , - 376 , - 407 , - 566 , - 853 , - 244 , - 787 , - 434 , - 209 , - 112 , - 143 , - 302 , - 589 , - 1004 , - 523 , - 170 , - 969 , - 872 , - 903 , - 38 , - 325 , - 740 , - 259 , - 930 , - 705 , - 608 , - 639 , - 798 , - 61 , - 476 , - 1019 , - 666 , - 441 , - 344 , - 375 , - 534 , - 821 , - 212 , - 755 , - 402 , - 177 , - 80 , - 111 , - 270 , - 557 , - 972 , - 491 , - 138 , - 937 , - 840 , - 871 , - 6 , - 293 , - 708 , - 227 , - 898 , - 673 , - 576 , - 607 , - 766 , - 29 , - 444 , - 987 , - 634 , - 409 , - 312 , - 343 , - 502 , - 789 , - 180 , - 723 , - 370 , - 145 , - 48 , - 79 , - 238 , - 525 , - 940 , - 459 , - 106 , - 905 , - 808 , - 839 , - 998 , - 261 , - 676 , - 195 , - 866 , - 641 , - 544 , - 575 , - 734 , - 1021 , - 412 , - 955 , - 602 , - 377 , - 280 , - 311 , - 470 , - 757 , - 148 , - 691 , - 338 , - 113 , - 16 , - 47 , - 206 , - 493 , - 908 , - 427 , - 74 , - 873 , - 776 , - 807 , - 966 , - 229 , - 644 , - 163 , - 834 , - 609 , - 512 , - 543 , - 702 , - 989 , - 380 , - 923 , - 570 , - 345 , - 248 , - 279 , - 438 , - 725 , - 116 , - 659 , - 306 , - 81 , - 1008 , - 15 , - 174 , - 461 , - 876 , - 395 , - 42 , - 841 , - 744 , - 775 , - 934 , - 197 , - 612 , - 131 , - 802 , - 577 , - 480 , - 511 , - 670 , - 957 , - 348 , - 891 , - 538 , - 313 , - 216 , - 247 , - 406 , - 693 , - 84 , - 627 , - 274 , - 49 , - 976 , - 1007 , - 142 , - 429 , - 844 , - 363 , - 10 , - 809 , - 712 , - 743 , - 902 , - 165 , - 580 , - 99 , - 770 , - 545 , - 448 , - 479 , - 638 , - 925 , - 316 , - 859 , - 506 , - 281 , - 184 , - 215 , - 374 , - 661 , - 52 , - 595 , - 242 , - 17 , - 944 , - 975 , - 110 , - 397 , - 812 , - 331 , - 1002 , - 777 , - 680 , - 711 , - 870 , - 133 , - 548 , - 67 , - 738 , - 513 , - 416 , - 447 , - 606 , - 893 , - 284 , - 827 , - 474 , - 249 , - 152 , - 183 , - 342 , - 629 , - 20 , - 563 , - 210 , - 1009 , - 912 , - 943 , - 78 , - 365 , - 780 , - 299 , - 970 , - 745 , - 648 , - 679 , - 838 , - 101 , - 516 , - 35 , - 706 , - 481 , - 384 , - 415 , - 574 , - 861 , - 252 , - 795 , - 442 , - 217 , - 120 , - 151 , - 310 , - 597 , - 1012 , - 531 , - 178 , - 977 , - 880 , - 911 , - 46 , - 333 , - 748 , - 267 , - 938 , - 713 , - 616 , - 647 , - 806 , - 69 , - 484 , - 3 , - 674 , - 449 , - 352 , - 383 , - 542 , - 829 , - 220 , - 763 , - 410 , - 185 , - 88 , - 119 , - 278 , - 565 , - 980 , - 499 , - 146 , - 945 , - 848 , - 879 , - 14 , - 301 , - 716 , - 235 , - 906 , - 681 , - 584 , - 615 , - 774 , - 37 , - 452 , - 995 , - 642 , - 417 , - 320 , - 351 , - 510 , - 797 , - 188 , - 731 , - 378 , - 153 , - 56 , - 87 , - 246 , - 533 , - 948 , - 467 , - 114 , - 913 , - 816 , - 847 , - 1006 , - 269 , - 684 , - 203 , - 874 , - 649 , - 552 , - 583 , - 742 , - 5 , - 420 , - 963 , - 610 , - 385 , - 288 , - 319 , - 478 , - 765 , - 156 , - 699 , - 346 , - 121 , - 24 , - 55 , - 214 , - 501 , - 916 , - 435 , - 82 , - 881 , - 784 , - 815 , - 974 , - 237 , - 652 , - 171 , - 842 , - 617 , - 520 , - 551 , - 710 , - 997 , - 388 , - 931 , - 578 , - 353 , - 256 , - 287 , - 446 , - 733 , - 124 , - 667 , - 314 , - 89 , - 1016 , - 23 , - 182 , - 469 , - 884 , - 403 , - 50 , - 849 , - 752 , - 783 , - 942 , - 205 , - 620 , - 139 , - 810 , - 585 , - 488 , - 519 , - 678 , - 965 , - 356 , - 899 , - 546 , - 321 , - 224 , - 255 , - 414 , - 701 , - 92 , - 635 , - 282 , - 57 , - 984 , - 1015 , - 150 , - 437 , - 852 , - 371 , - 18 , - 817 , - 720 , - 751 , - 910 , - 173 , - 588 , - 107 , - 778 , - 553 , - 456 , - 487 , - 646 , - 933 , - 324 , - 867 , - 514 , - 289 , - 192 , - 223 , - 382 , - 669 , - 60 , - 603 , - 250 , - 25 , - 952 , - 983 , - 118 , - 405 , - 820 , - 339 , - 1010 , - 785 , - 688 , - 719 , - 878 , - 141 , - 556 , - 75 , - 746 , - 521 , - 424 , - 455 , - 614 , - 901 , - 292 , - 835 , - 482 , - 257 , - 160 , - 191 , - 350 , - 637 , - 28 , - 571 , - 218 , - 1017 , - 920 , - 951 , - 86 , - 373 , - 788 , - 307 , - 978 , - 753 , - 656 , - 687 , - 846 , - 109 , - 524 , - 43 , - 714 , - 489 , - 392 , - 423 , - 582 , - 869 , - 260 , - 803 , - 450 , - 225 , - 128 , - 159 , - 318 , - 605 , - 1020 , - 539 , - 186 , - 985 , - 888 , - 919 , - 54 , - 341 , - 756 , - 275 , - 946 , - 721 , - 624 , - 655 , - 814 , - 77 , - 492 , - 11 , - 682 , - 457 , - 360 , - 391 , - 550 , - 837 , - 228 , - 771 , - 418 , - 193 , - 96 , - 127 , - 286 , - 573 , - 988 , - 507 , - 154 , - 953 , - 856 , - 887 , - 22 , - 309 , - 724 , - 243 , - 914 , - 689 , - 592 , - 623 , - 782 , - 45 , - 460 , - 1003 , - 650 , - 425 , - 328 , - 359 , - 518 , - 805 , - 196 , - 739 , - 386 , - 161 , - 64 , - 95 , - 254 , - 541 , - 956 , - 475 , - 122 , - 921 , - 824 , - 855 , - 1014 , - 277 , - 692 , - 211 , - 882 , - 657 , - 560 , - 591 , - 750 , - 13 , - 428 , - 971 , - 618 , - 393 , - 296 , - 327 , - 486 , - 773 , - 164 , - 707 , - 354 , - 129 , - 32 , - 63 , - 222 , - 509 , - 924 , - 443 , - 90 , - 889 , - 792 , - 823 , - 982 , - 245 , - 660 , - 179 , - 850 , - 625 , - 528 , - 559 , - 718 , - 1005 , - 396 , - 939 , - 586 , - 361 , - 264 , - 295 , - 454 , - 741 , - 132 , - 675 , - 322 , - 97 , - 0 , - 431 , - 730 , - 369 , - 932 , - 835 , - 606 , - 773 , - 808 , - 183 , - 482 , - 121 , - 684 , - 587 , - 358 , - 525 , - 560 , - 991 , - 234 , - 929 , - 436 , - 339 , - 110 , - 277 , - 312 , - 743 , - 1042 , - 681 , - 188 , - 91 , - 918 , - 29 , - 64 , - 495 , - 794 , - 433 , - 996 , - 899 , - 670 , - 837 , - 872 , - 247 , - 546 , - 185 , - 748 , - 651 , - 422 , - 589 , - 624 , - 1055 , - 298 , - 993 , - 500 , - 403 , - 174 , - 341 , - 376 , - 807 , - 50 , - 745 , - 252 , - 155 , - 982 , - 93 , - 128 , - 559 , - 858 , - 497 , - 4 , - 963 , - 734 , - 901 , - 936 , - 311 , - 610 , - 249 , - 812 , - 715 , - 486 , - 653 , - 688 , - 63 , - 362 , - 1 , - 564 , - 467 , - 238 , - 405 , - 440 , - 871 , - 114 , - 809 , - 316 , - 219 , - 1046 , - 157 , - 192 , - 623 , - 922 , - 561 , - 68 , - 1027 , - 798 , - 965 , - 1000 , - 375 , - 674 , - 313 , - 876 , - 779 , - 550 , - 717 , - 752 , - 127 , - 426 , - 65 , - 628 , - 531 , - 302 , - 469 , - 504 , - 935 , - 178 , - 873 , - 380 , - 283 , - 54 , - 221 , - 256 , - 687 , - 986 , - 625 , - 132 , - 35 , - 862 , - 1029 , - 8 , - 439 , - 738 , - 377 , - 940 , - 843 , - 614 , - 781 , - 816 , - 191 , - 490 , - 129 , - 692 , - 595 , - 366 , - 533 , - 568 , - 999 , - 242 , - 937 , - 444 , - 347 , - 118 , - 285 , - 320 , - 751 , - 1050 , - 689 , - 196 , - 99 , - 926 , - 37 , - 72 , - 503 , - 802 , - 441 , - 1004 , - 907 , - 678 , - 845 , - 880 , - 255 , - 554 , - 193 , - 756 , - 659 , - 430 , - 597 , - 632 , - 7 , - 306 , - 1001 , - 508 , - 411 , - 182 , - 349 , - 384 , - 815 , - 58 , - 753 , - 260 , - 163 , - 990 , - 101 , - 136 , - 567 , - 866 , - 505 , - 12 , - 971 , - 742 , - 909 , - 944 , - 319 , - 618 , - 257 , - 820 , - 723 , - 494 , - 661 , - 696 , - 71 , - 370 , - 9 , - 572 , - 475 , - 246 , - 413 , - 448 , - 879 , - 122 , - 817 , - 324 , - 227 , - 1054 , - 165 , - 200 , - 631 , - 930 , - 569 , - 76 , - 1035 , - 806 , - 973 , - 1008 , - 383 , - 682 , - 321 , - 884 , - 787 , - 558 , - 725 , - 760 , - 135 , - 434 , - 73 , - 636 , - 539 , - 310 , - 477 , - 512 , - 943 , - 186 , - 881 , - 388 , - 291 , - 62 , - 229 , - 264 , - 695 , - 994 , - 633 , - 140 , - 43 , - 870 , - 1037 , - 16 , - 447 , - 746 , - 385 , - 948 , - 851 , - 622 , - 789 , - 824 , - 199 , - 498 , - 137 , - 700 , - 603 , - 374 , - 541 , - 576 , - 1007 , - 250 , - 945 , - 452 , - 355 , - 126 , - 293 , - 328 , - 759 , - 2 , - 697 , - 204 , - 107 , - 934 , - 45 , - 80 , - 511 , - 810 , - 449 , - 1012 , - 915 , - 686 , - 853 , - 888 , - 263 , - 562 , - 201 , - 764 , - 667 , - 438 , - 605 , - 640 , - 15 , - 314 , - 1009 , - 516 , - 419 , - 190 , - 357 , - 392 , - 823 , - 66 , - 761 , - 268 , - 171 , - 998 , - 109 , - 144 , - 575 , - 874 , - 513 , - 20 , - 979 , - 750 , - 917 , - 952 , - 327 , - 626 , - 265 , - 828 , - 731 , - 502 , - 669 , - 704 , - 79 , - 378 , - 17 , - 580 , - 483 , - 254 , - 421 , - 456 , - 887 , - 130 , - 825 , - 332 , - 235 , - 6 , - 173 , - 208 , - 639 , - 938 , - 577 , - 84 , - 1043 , - 814 , - 981 , - 1016 , - 391 , - 690 , - 329 , - 892 , - 795 , - 566 , - 733 , - 768 , - 143 , - 442 , - 81 , - 644 , - 547 , - 318 , - 485 , - 520 , - 951 , - 194 , - 889 , - 396 , - 299 , - 70 , - 237 , - 272 , - 703 , - 1002 , - 641 , - 148 , - 51 , - 878 , - 1045 , - 24 , - 455 , - 754 , - 393 , - 956 , - 859 , - 630 , - 797 , - 832 , - 207 , - 506 , - 145 , - 708 , - 611 , - 382 , - 549 , - 584 , - 1015 , - 258 , - 953 , - 460 , - 363 , - 134 , - 301 , - 336 , - 767 , - 10 , - 705 , - 212 , - 115 , - 942 , - 53 , - 88 , - 519 , - 818 , - 457 , - 1020 , - 923 , - 694 , - 861 , - 896 , - 271 , - 570 , - 209 , - 772 , - 675 , - 446 , - 613 , - 648 , - 23 , - 322 , - 1017 , - 524 , - 427 , - 198 , - 365 , - 400 , - 831 , - 74 , - 769 , - 276 , - 179 , - 1006 , - 117 , - 152 , - 583 , - 882 , - 521 , - 28 , - 987 , - 758 , - 925 , - 960 , - 335 , - 634 , - 273 , - 836 , - 739 , - 510 , - 677 , - 712 , - 87 , - 386 , - 25 , - 588 , - 491 , - 262 , - 429 , - 464 , - 895 , - 138 , - 833 , - 340 , - 243 , - 14 , - 181 , - 216 , - 647 , - 946 , - 585 , - 92 , - 1051 , - 822 , - 989 , - 1024 , - 399 , - 698 , - 337 , - 900 , - 803 , - 574 , - 741 , - 776 , - 151 , - 450 , - 89 , - 652 , - 555 , - 326 , - 493 , - 528 , - 959 , - 202 , - 897 , - 404 , - 307 , - 78 , - 245 , - 280 , - 711 , - 1010 , - 649 , - 156 , - 59 , - 886 , - 1053 , - 32 , - 463 , - 762 , - 401 , - 964 , - 867 , - 638 , - 805 , - 840 , - 215 , - 514 , - 153 , - 716 , - 619 , - 390 , - 557 , - 592 , - 1023 , - 266 , - 961 , - 468 , - 371 , - 142 , - 309 , - 344 , - 775 , - 18 , - 713 , - 220 , - 123 , - 950 , - 61 , - 96 , - 527 , - 826 , - 465 , - 1028 , - 931 , - 702 , - 869 , - 904 , - 279 , - 578 , - 217 , - 780 , - 683 , - 454 , - 621 , - 656 , - 31 , - 330 , - 1025 , - 532 , - 435 , - 206 , - 373 , - 408 , - 839 , - 82 , - 777 , - 284 , - 187 , - 1014 , - 125 , - 160 , - 591 , - 890 , - 529 , - 36 , - 995 , - 766 , - 933 , - 968 , - 343 , - 642 , - 281 , - 844 , - 747 , - 518 , - 685 , - 720 , - 95 , - 394 , - 33 , - 596 , - 499 , - 270 , - 437 , - 472 , - 903 , - 146 , - 841 , - 348 , - 251 , - 22 , - 189 , - 224 , - 655 , - 954 , - 593 , - 100 , - 3 , - 830 , - 997 , - 1032 , - 407 , - 706 , - 345 , - 908 , - 811 , - 582 , - 749 , - 784 , - 159 , - 458 , - 97 , - 660 , - 563 , - 334 , - 501 , - 536 , - 967 , - 210 , - 905 , - 412 , - 315 , - 86 , - 253 , - 288 , - 719 , - 1018 , - 657 , - 164 , - 67 , - 894 , - 5 , - 40 , - 471 , - 770 , - 409 , - 972 , - 875 , - 646 , - 813 , - 848 , - 223 , - 522 , - 161 , - 724 , - 627 , - 398 , - 565 , - 600 , - 1031 , - 274 , - 969 , - 476 , - 379 , - 150 , - 317 , - 352 , - 783 , - 26 , - 721 , - 228 , - 131 , - 958 , - 69 , - 104 , - 535 , - 834 , - 473 , - 1036 , - 939 , - 710 , - 877 , - 912 , - 287 , - 586 , - 225 , - 788 , - 691 , - 462 , - 629 , - 664 , - 39 , - 338 , - 1033 , - 540 , - 443 , - 214 , - 381 , - 416 , - 847 , - 90 , - 785 , - 292 , - 195 , - 1022 , - 133 , - 168 , - 599 , - 898 , - 537 , - 44 , - 1003 , - 774 , - 941 , - 976 , - 351 , - 650 , - 289 , - 852 , - 755 , - 526 , - 693 , - 728 , - 103 , - 402 , - 41 , - 604 , - 507 , - 278 , - 445 , - 480 , - 911 , - 154 , - 849 , - 356 , - 259 , - 30 , - 197 , - 232 , - 663 , - 962 , - 601 , - 108 , - 11 , - 838 , - 1005 , - 1040 , - 415 , - 714 , - 353 , - 916 , - 819 , - 590 , - 757 , - 792 , - 167 , - 466 , - 105 , - 668 , - 571 , - 342 , - 509 , - 544 , - 975 , - 218 , - 913 , - 420 , - 323 , - 94 , - 261 , - 296 , - 727 , - 1026 , - 665 , - 172 , - 75 , - 902 , - 13 , - 48 , - 479 , - 778 , - 417 , - 980 , - 883 , - 654 , - 821 , - 856 , - 231 , - 530 , - 169 , - 732 , - 635 , - 406 , - 573 , - 608 , - 1039 , - 282 , - 977 , - 484 , - 387 , - 158 , - 325 , - 360 , - 791 , - 34 , - 729 , - 236 , - 139 , - 966 , - 77 , - 112 , - 543 , - 842 , - 481 , - 1044 , - 947 , - 718 , - 885 , - 920 , - 295 , - 594 , - 233 , - 796 , - 699 , - 470 , - 637 , - 672 , - 47 , - 346 , - 1041 , - 548 , - 451 , - 222 , - 389 , - 424 , - 855 , - 98 , - 793 , - 300 , - 203 , - 1030 , - 141 , - 176 , - 607 , - 906 , - 545 , - 52 , - 1011 , - 782 , - 949 , - 984 , - 359 , - 658 , - 297 , - 860 , - 763 , - 534 , - 701 , - 736 , - 111 , - 410 , - 49 , - 612 , - 515 , - 286 , - 453 , - 488 , - 919 , - 162 , - 857 , - 364 , - 267 , - 38 , - 205 , - 240 , - 671 , - 970 , - 609 , - 116 , - 19 , - 846 , - 1013 , - 1048 , - 423 , - 722 , - 361 , - 924 , - 827 , - 598 , - 765 , - 800 , - 175 , - 474 , - 113 , - 676 , - 579 , - 350 , - 517 , - 552 , - 983 , - 226 , - 921 , - 428 , - 331 , - 102 , - 269 , - 304 , - 735 , - 1034 , - 673 , - 180 , - 83 , - 910 , - 21 , - 56 , - 487 , - 786 , - 425 , - 988 , - 891 , - 662 , - 829 , - 864 , - 239 , - 538 , - 177 , - 740 , - 643 , - 414 , - 581 , - 616 , - 1047 , - 290 , - 985 , - 492 , - 395 , - 166 , - 333 , - 368 , - 799 , - 42 , - 737 , - 244 , - 147 , - 974 , - 85 , - 120 , - 551 , - 850 , - 489 , - 1052 , - 955 , - 726 , - 893 , - 928 , - 303 , - 602 , - 241 , - 804 , - 707 , - 478 , - 645 , - 680 , - 55 , - 354 , - 1049 , - 556 , - 459 , - 230 , - 397 , - 432 , - 863 , - 106 , - 801 , - 308 , - 211 , - 1038 , - 149 , - 184 , - 615 , - 914 , - 553 , - 60 , - 1019 , - 790 , - 957 , - 992 , - 367 , - 666 , - 305 , - 868 , - 771 , - 542 , - 709 , - 744 , - 119 , - 418 , - 57 , - 620 , - 523 , - 294 , - 461 , - 496 , - 927 , - 170 , - 865 , - 372 , - 275 , - 46 , - 213 , - 248 , - 679 , - 978 , - 617 , - 124 , - 27 , - 854 , - 1021 , - 0 , - 1055 , - 886 , - 581 , - 140 , - 651 , - 1026 , - 177 , - 280 , - 247 , - 78 , - 861 , - 420 , - 931 , - 218 , - 457 , - 560 , - 527 , - 358 , - 53 , - 700 , - 123 , - 498 , - 737 , - 840 , - 807 , - 638 , - 333 , - 980 , - 403 , - 778 , - 1017 , - 32 , - 1087 , - 918 , - 613 , - 172 , - 683 , - 1058 , - 209 , - 312 , - 279 , - 110 , - 893 , - 452 , - 963 , - 250 , - 489 , - 592 , - 559 , - 390 , - 85 , - 732 , - 155 , - 530 , - 769 , - 872 , - 839 , - 670 , - 365 , - 1012 , - 435 , - 810 , - 1049 , - 64 , - 31 , - 950 , - 645 , - 204 , - 715 , - 2 , - 241 , - 344 , - 311 , - 142 , - 925 , - 484 , - 995 , - 282 , - 521 , - 624 , - 591 , - 422 , - 117 , - 764 , - 187 , - 562 , - 801 , - 904 , - 871 , - 702 , - 397 , - 1044 , - 467 , - 842 , - 1081 , - 96 , - 63 , - 982 , - 677 , - 236 , - 747 , - 34 , - 273 , - 376 , - 343 , - 174 , - 957 , - 516 , - 1027 , - 314 , - 553 , - 656 , - 623 , - 454 , - 149 , - 796 , - 219 , - 594 , - 833 , - 936 , - 903 , - 734 , - 429 , - 1076 , - 499 , - 874 , - 25 , - 128 , - 95 , - 1014 , - 709 , - 268 , - 779 , - 66 , - 305 , - 408 , - 375 , - 206 , - 989 , - 548 , - 1059 , - 346 , - 585 , - 688 , - 655 , - 486 , - 181 , - 828 , - 251 , - 626 , - 865 , - 968 , - 935 , - 766 , - 461 , - 20 , - 531 , - 906 , - 57 , - 160 , - 127 , - 1046 , - 741 , - 300 , - 811 , - 98 , - 337 , - 440 , - 407 , - 238 , - 1021 , - 580 , - 3 , - 378 , - 617 , - 720 , - 687 , - 518 , - 213 , - 860 , - 283 , - 658 , - 897 , - 1000 , - 967 , - 798 , - 493 , - 52 , - 563 , - 938 , - 89 , - 192 , - 159 , - 1078 , - 773 , - 332 , - 843 , - 130 , - 369 , - 472 , - 439 , - 270 , - 1053 , - 612 , - 35 , - 410 , - 649 , - 752 , - 719 , - 550 , - 245 , - 892 , - 315 , - 690 , - 929 , - 1032 , - 999 , - 830 , - 525 , - 84 , - 595 , - 970 , - 121 , - 224 , - 191 , - 22 , - 805 , - 364 , - 875 , - 162 , - 401 , - 504 , - 471 , - 302 , - 1085 , - 644 , - 67 , - 442 , - 681 , - 784 , - 751 , - 582 , - 277 , - 924 , - 347 , - 722 , - 961 , - 1064 , - 1031 , - 862 , - 557 , - 116 , - 627 , - 1002 , - 153 , - 256 , - 223 , - 54 , - 837 , - 396 , - 907 , - 194 , - 433 , - 536 , - 503 , - 334 , - 29 , - 676 , - 99 , - 474 , - 713 , - 816 , - 783 , - 614 , - 309 , - 956 , - 379 , - 754 , - 993 , - 8 , - 1063 , - 894 , - 589 , - 148 , - 659 , - 1034 , - 185 , - 288 , - 255 , - 86 , - 869 , - 428 , - 939 , - 226 , - 465 , - 568 , - 535 , - 366 , - 61 , - 708 , - 131 , - 506 , - 745 , - 848 , - 815 , - 646 , - 341 , - 988 , - 411 , - 786 , - 1025 , - 40 , - 7 , - 926 , - 621 , - 180 , - 691 , - 1066 , - 217 , - 320 , - 287 , - 118 , - 901 , - 460 , - 971 , - 258 , - 497 , - 600 , - 567 , - 398 , - 93 , - 740 , - 163 , - 538 , - 777 , - 880 , - 847 , - 678 , - 373 , - 1020 , - 443 , - 818 , - 1057 , - 72 , - 39 , - 958 , - 653 , - 212 , - 723 , - 10 , - 249 , - 352 , - 319 , - 150 , - 933 , - 492 , - 1003 , - 290 , - 529 , - 632 , - 599 , - 430 , - 125 , - 772 , - 195 , - 570 , - 809 , - 912 , - 879 , - 710 , - 405 , - 1052 , - 475 , - 850 , - 1 , - 104 , - 71 , - 990 , - 685 , - 244 , - 755 , - 42 , - 281 , - 384 , - 351 , - 182 , - 965 , - 524 , - 1035 , - 322 , - 561 , - 664 , - 631 , - 462 , - 157 , - 804 , - 227 , - 602 , - 841 , - 944 , - 911 , - 742 , - 437 , - 1084 , - 507 , - 882 , - 33 , - 136 , - 103 , - 1022 , - 717 , - 276 , - 787 , - 74 , - 313 , - 416 , - 383 , - 214 , - 997 , - 556 , - 1067 , - 354 , - 593 , - 696 , - 663 , - 494 , - 189 , - 836 , - 259 , - 634 , - 873 , - 976 , - 943 , - 774 , - 469 , - 28 , - 539 , - 914 , - 65 , - 168 , - 135 , - 1054 , - 749 , - 308 , - 819 , - 106 , - 345 , - 448 , - 415 , - 246 , - 1029 , - 588 , - 11 , - 386 , - 625 , - 728 , - 695 , - 526 , - 221 , - 868 , - 291 , - 666 , - 905 , - 1008 , - 975 , - 806 , - 501 , - 60 , - 571 , - 946 , - 97 , - 200 , - 167 , - 1086 , - 781 , - 340 , - 851 , - 138 , - 377 , - 480 , - 447 , - 278 , - 1061 , - 620 , - 43 , - 418 , - 657 , - 760 , - 727 , - 558 , - 253 , - 900 , - 323 , - 698 , - 937 , - 1040 , - 1007 , - 838 , - 533 , - 92 , - 603 , - 978 , - 129 , - 232 , - 199 , - 30 , - 813 , - 372 , - 883 , - 170 , - 409 , - 512 , - 479 , - 310 , - 5 , - 652 , - 75 , - 450 , - 689 , - 792 , - 759 , - 590 , - 285 , - 932 , - 355 , - 730 , - 969 , - 1072 , - 1039 , - 870 , - 565 , - 124 , - 635 , - 1010 , - 161 , - 264 , - 231 , - 62 , - 845 , - 404 , - 915 , - 202 , - 441 , - 544 , - 511 , - 342 , - 37 , - 684 , - 107 , - 482 , - 721 , - 824 , - 791 , - 622 , - 317 , - 964 , - 387 , - 762 , - 1001 , - 16 , - 1071 , - 902 , - 597 , - 156 , - 667 , - 1042 , - 193 , - 296 , - 263 , - 94 , - 877 , - 436 , - 947 , - 234 , - 473 , - 576 , - 543 , - 374 , - 69 , - 716 , - 139 , - 514 , - 753 , - 856 , - 823 , - 654 , - 349 , - 996 , - 419 , - 794 , - 1033 , - 48 , - 15 , - 934 , - 629 , - 188 , - 699 , - 1074 , - 225 , - 328 , - 295 , - 126 , - 909 , - 468 , - 979 , - 266 , - 505 , - 608 , - 575 , - 406 , - 101 , - 748 , - 171 , - 546 , - 785 , - 888 , - 855 , - 686 , - 381 , - 1028 , - 451 , - 826 , - 1065 , - 80 , - 47 , - 966 , - 661 , - 220 , - 731 , - 18 , - 257 , - 360 , - 327 , - 158 , - 941 , - 500 , - 1011 , - 298 , - 537 , - 640 , - 607 , - 438 , - 133 , - 780 , - 203 , - 578 , - 817 , - 920 , - 887 , - 718 , - 413 , - 1060 , - 483 , - 858 , - 9 , - 112 , - 79 , - 998 , - 693 , - 252 , - 763 , - 50 , - 289 , - 392 , - 359 , - 190 , - 973 , - 532 , - 1043 , - 330 , - 569 , - 672 , - 639 , - 470 , - 165 , - 812 , - 235 , - 610 , - 849 , - 952 , - 919 , - 750 , - 445 , - 4 , - 515 , - 890 , - 41 , - 144 , - 111 , - 1030 , - 725 , - 284 , - 795 , - 82 , - 321 , - 424 , - 391 , - 222 , - 1005 , - 564 , - 1075 , - 362 , - 601 , - 704 , - 671 , - 502 , - 197 , - 844 , - 267 , - 642 , - 881 , - 984 , - 951 , - 782 , - 477 , - 36 , - 547 , - 922 , - 73 , - 176 , - 143 , - 1062 , - 757 , - 316 , - 827 , - 114 , - 353 , - 456 , - 423 , - 254 , - 1037 , - 596 , - 19 , - 394 , - 633 , - 736 , - 703 , - 534 , - 229 , - 876 , - 299 , - 674 , - 913 , - 1016 , - 983 , - 814 , - 509 , - 68 , - 579 , - 954 , - 105 , - 208 , - 175 , - 6 , - 789 , - 348 , - 859 , - 146 , - 385 , - 488 , - 455 , - 286 , - 1069 , - 628 , - 51 , - 426 , - 665 , - 768 , - 735 , - 566 , - 261 , - 908 , - 331 , - 706 , - 945 , - 1048 , - 1015 , - 846 , - 541 , - 100 , - 611 , - 986 , - 137 , - 240 , - 207 , - 38 , - 821 , - 380 , - 891 , - 178 , - 417 , - 520 , - 487 , - 318 , - 13 , - 660 , - 83 , - 458 , - 697 , - 800 , - 767 , - 598 , - 293 , - 940 , - 363 , - 738 , - 977 , - 1080 , - 1047 , - 878 , - 573 , - 132 , - 643 , - 1018 , - 169 , - 272 , - 239 , - 70 , - 853 , - 412 , - 923 , - 210 , - 449 , - 552 , - 519 , - 350 , - 45 , - 692 , - 115 , - 490 , - 729 , - 832 , - 799 , - 630 , - 325 , - 972 , - 395 , - 770 , - 1009 , - 24 , - 1079 , - 910 , - 605 , - 164 , - 675 , - 1050 , - 201 , - 304 , - 271 , - 102 , - 885 , - 444 , - 955 , - 242 , - 481 , - 584 , - 551 , - 382 , - 77 , - 724 , - 147 , - 522 , - 761 , - 864 , - 831 , - 662 , - 357 , - 1004 , - 427 , - 802 , - 1041 , - 56 , - 23 , - 942 , - 637 , - 196 , - 707 , - 1082 , - 233 , - 336 , - 303 , - 134 , - 917 , - 476 , - 987 , - 274 , - 513 , - 616 , - 583 , - 414 , - 109 , - 756 , - 179 , - 554 , - 793 , - 896 , - 863 , - 694 , - 389 , - 1036 , - 459 , - 834 , - 1073 , - 88 , - 55 , - 974 , - 669 , - 228 , - 739 , - 26 , - 265 , - 368 , - 335 , - 166 , - 949 , - 508 , - 1019 , - 306 , - 545 , - 648 , - 615 , - 446 , - 141 , - 788 , - 211 , - 586 , - 825 , - 928 , - 895 , - 726 , - 421 , - 1068 , - 491 , - 866 , - 17 , - 120 , - 87 , - 1006 , - 701 , - 260 , - 771 , - 58 , - 297 , - 400 , - 367 , - 198 , - 981 , - 540 , - 1051 , - 338 , - 577 , - 680 , - 647 , - 478 , - 173 , - 820 , - 243 , - 618 , - 857 , - 960 , - 927 , - 758 , - 453 , - 12 , - 523 , - 898 , - 49 , - 152 , - 119 , - 1038 , - 733 , - 292 , - 803 , - 90 , - 329 , - 432 , - 399 , - 230 , - 1013 , - 572 , - 1083 , - 370 , - 609 , - 712 , - 679 , - 510 , - 205 , - 852 , - 275 , - 650 , - 889 , - 992 , - 959 , - 790 , - 485 , - 44 , - 555 , - 930 , - 81 , - 184 , - 151 , - 1070 , - 765 , - 324 , - 835 , - 122 , - 361 , - 464 , - 431 , - 262 , - 1045 , - 604 , - 27 , - 402 , - 641 , - 744 , - 711 , - 542 , - 237 , - 884 , - 307 , - 682 , - 921 , - 1024 , - 991 , - 822 , - 517 , - 76 , - 587 , - 962 , - 113 , - 216 , - 183 , - 14 , - 797 , - 356 , - 867 , - 154 , - 393 , - 496 , - 463 , - 294 , - 1077 , - 636 , - 59 , - 434 , - 673 , - 776 , - 743 , - 574 , - 269 , - 916 , - 339 , - 714 , - 953 , - 1056 , - 1023 , - 854 , - 549 , - 108 , - 619 , - 994 , - 145 , - 248 , - 215 , - 46 , - 829 , - 388 , - 899 , - 186 , - 425 , - 528 , - 495 , - 326 , - 21 , - 668 , - 91 , - 466 , - 705 , - 808 , - 775 , - 606 , - 301 , - 948 , - 371 , - 746 , - 985 , - 0 , - 583 , - 326 , - 349 , - 652 , - 115 , - 978 , - 1001 , - 184 , - 767 , - 510 , - 533 , - 836 , - 299 , - 42 , - 65 , - 368 , - 951 , - 694 , - 717 , - 1020 , - 483 , - 226 , - 249 , - 552 , - 15 , - 878 , - 901 , - 84 , - 667 , - 410 , - 433 , - 736 , - 199 , - 1062 , - 1085 , - 268 , - 851 , - 594 , - 617 , - 920 , - 383 , - 126 , - 149 , - 452 , - 1035 , - 778 , - 801 , - 1104 , - 567 , - 310 , - 333 , - 636 , - 99 , - 962 , - 985 , - 168 , - 751 , - 494 , - 517 , - 820 , - 283 , - 26 , - 49 , - 352 , - 935 , - 678 , - 701 , - 1004 , - 467 , - 210 , - 233 , - 536 , - 1119 , - 862 , - 885 , - 68 , - 651 , - 394 , - 417 , - 720 , - 183 , - 1046 , - 1069 , - 252 , - 835 , - 578 , - 601 , - 904 , - 367 , - 110 , - 133 , - 436 , - 1019 , - 762 , - 785 , - 1088 , - 551 , - 294 , - 317 , - 620 , - 83 , - 946 , - 969 , - 152 , - 735 , - 478 , - 501 , - 804 , - 267 , - 10 , - 33 , - 336 , - 919 , - 662 , - 685 , - 988 , - 451 , - 194 , - 217 , - 520 , - 1103 , - 846 , - 869 , - 52 , - 635 , - 378 , - 401 , - 704 , - 167 , - 1030 , - 1053 , - 236 , - 819 , - 562 , - 585 , - 888 , - 351 , - 94 , - 117 , - 420 , - 1003 , - 746 , - 769 , - 1072 , - 535 , - 278 , - 301 , - 604 , - 67 , - 930 , - 953 , - 136 , - 719 , - 462 , - 485 , - 788 , - 251 , - 1114 , - 17 , - 320 , - 903 , - 646 , - 669 , - 972 , - 435 , - 178 , - 201 , - 504 , - 1087 , - 830 , - 853 , - 36 , - 619 , - 362 , - 385 , - 688 , - 151 , - 1014 , - 1037 , - 220 , - 803 , - 546 , - 569 , - 872 , - 335 , - 78 , - 101 , - 404 , - 987 , - 730 , - 753 , - 1056 , - 519 , - 262 , - 285 , - 588 , - 51 , - 914 , - 937 , - 120 , - 703 , - 446 , - 469 , - 772 , - 235 , - 1098 , - 1 , - 304 , - 887 , - 630 , - 653 , - 956 , - 419 , - 162 , - 185 , - 488 , - 1071 , - 814 , - 837 , - 20 , - 603 , - 346 , - 369 , - 672 , - 135 , - 998 , - 1021 , - 204 , - 787 , - 530 , - 553 , - 856 , - 319 , - 62 , - 85 , - 388 , - 971 , - 714 , - 737 , - 1040 , - 503 , - 246 , - 269 , - 572 , - 35 , - 898 , - 921 , - 104 , - 687 , - 430 , - 453 , - 756 , - 219 , - 1082 , - 1105 , - 288 , - 871 , - 614 , - 637 , - 940 , - 403 , - 146 , - 169 , - 472 , - 1055 , - 798 , - 821 , - 4 , - 587 , - 330 , - 353 , - 656 , - 119 , - 982 , - 1005 , - 188 , - 771 , - 514 , - 537 , - 840 , - 303 , - 46 , - 69 , - 372 , - 955 , - 698 , - 721 , - 1024 , - 487 , - 230 , - 253 , - 556 , - 19 , - 882 , - 905 , - 88 , - 671 , - 414 , - 437 , - 740 , - 203 , - 1066 , - 1089 , - 272 , - 855 , - 598 , - 621 , - 924 , - 387 , - 130 , - 153 , - 456 , - 1039 , - 782 , - 805 , - 1108 , - 571 , - 314 , - 337 , - 640 , - 103 , - 966 , - 989 , - 172 , - 755 , - 498 , - 521 , - 824 , - 287 , - 30 , - 53 , - 356 , - 939 , - 682 , - 705 , - 1008 , - 471 , - 214 , - 237 , - 540 , - 3 , - 866 , - 889 , - 72 , - 655 , - 398 , - 421 , - 724 , - 187 , - 1050 , - 1073 , - 256 , - 839 , - 582 , - 605 , - 908 , - 371 , - 114 , - 137 , - 440 , - 1023 , - 766 , - 789 , - 1092 , - 555 , - 298 , - 321 , - 624 , - 87 , - 950 , - 973 , - 156 , - 739 , - 482 , - 505 , - 808 , - 271 , - 14 , - 37 , - 340 , - 923 , - 666 , - 689 , - 992 , - 455 , - 198 , - 221 , - 524 , - 1107 , - 850 , - 873 , - 56 , - 639 , - 382 , - 405 , - 708 , - 171 , - 1034 , - 1057 , - 240 , - 823 , - 566 , - 589 , - 892 , - 355 , - 98 , - 121 , - 424 , - 1007 , - 750 , - 773 , - 1076 , - 539 , - 282 , - 305 , - 608 , - 71 , - 934 , - 957 , - 140 , - 723 , - 466 , - 489 , - 792 , - 255 , - 1118 , - 21 , - 324 , - 907 , - 650 , - 673 , - 976 , - 439 , - 182 , - 205 , - 508 , - 1091 , - 834 , - 857 , - 40 , - 623 , - 366 , - 389 , - 692 , - 155 , - 1018 , - 1041 , - 224 , - 807 , - 550 , - 573 , - 876 , - 339 , - 82 , - 105 , - 408 , - 991 , - 734 , - 757 , - 1060 , - 523 , - 266 , - 289 , - 592 , - 55 , - 918 , - 941 , - 124 , - 707 , - 450 , - 473 , - 776 , - 239 , - 1102 , - 5 , - 308 , - 891 , - 634 , - 657 , - 960 , - 423 , - 166 , - 189 , - 492 , - 1075 , - 818 , - 841 , - 24 , - 607 , - 350 , - 373 , - 676 , - 139 , - 1002 , - 1025 , - 208 , - 791 , - 534 , - 557 , - 860 , - 323 , - 66 , - 89 , - 392 , - 975 , - 718 , - 741 , - 1044 , - 507 , - 250 , - 273 , - 576 , - 39 , - 902 , - 925 , - 108 , - 691 , - 434 , - 457 , - 760 , - 223 , - 1086 , - 1109 , - 292 , - 875 , - 618 , - 641 , - 944 , - 407 , - 150 , - 173 , - 476 , - 1059 , - 802 , - 825 , - 8 , - 591 , - 334 , - 357 , - 660 , - 123 , - 986 , - 1009 , - 192 , - 775 , - 518 , - 541 , - 844 , - 307 , - 50 , - 73 , - 376 , - 959 , - 702 , - 725 , - 1028 , - 491 , - 234 , - 257 , - 560 , - 23 , - 886 , - 909 , - 92 , - 675 , - 418 , - 441 , - 744 , - 207 , - 1070 , - 1093 , - 276 , - 859 , - 602 , - 625 , - 928 , - 391 , - 134 , - 157 , - 460 , - 1043 , - 786 , - 809 , - 1112 , - 575 , - 318 , - 341 , - 644 , - 107 , - 970 , - 993 , - 176 , - 759 , - 502 , - 525 , - 828 , - 291 , - 34 , - 57 , - 360 , - 943 , - 686 , - 709 , - 1012 , - 475 , - 218 , - 241 , - 544 , - 7 , - 870 , - 893 , - 76 , - 659 , - 402 , - 425 , - 728 , - 191 , - 1054 , - 1077 , - 260 , - 843 , - 586 , - 609 , - 912 , - 375 , - 118 , - 141 , - 444 , - 1027 , - 770 , - 793 , - 1096 , - 559 , - 302 , - 325 , - 628 , - 91 , - 954 , - 977 , - 160 , - 743 , - 486 , - 509 , - 812 , - 275 , - 18 , - 41 , - 344 , - 927 , - 670 , - 693 , - 996 , - 459 , - 202 , - 225 , - 528 , - 1111 , - 854 , - 877 , - 60 , - 643 , - 386 , - 409 , - 712 , - 175 , - 1038 , - 1061 , - 244 , - 827 , - 570 , - 593 , - 896 , - 359 , - 102 , - 125 , - 428 , - 1011 , - 754 , - 777 , - 1080 , - 543 , - 286 , - 309 , - 612 , - 75 , - 938 , - 961 , - 144 , - 727 , - 470 , - 493 , - 796 , - 259 , - 2 , - 25 , - 328 , - 911 , - 654 , - 677 , - 980 , - 443 , - 186 , - 209 , - 512 , - 1095 , - 838 , - 861 , - 44 , - 627 , - 370 , - 393 , - 696 , - 159 , - 1022 , - 1045 , - 228 , - 811 , - 554 , - 577 , - 880 , - 343 , - 86 , - 109 , - 412 , - 995 , - 738 , - 761 , - 1064 , - 527 , - 270 , - 293 , - 596 , - 59 , - 922 , - 945 , - 128 , - 711 , - 454 , - 477 , - 780 , - 243 , - 1106 , - 9 , - 312 , - 895 , - 638 , - 661 , - 964 , - 427 , - 170 , - 193 , - 496 , - 1079 , - 822 , - 845 , - 28 , - 611 , - 354 , - 377 , - 680 , - 143 , - 1006 , - 1029 , - 212 , - 795 , - 538 , - 561 , - 864 , - 327 , - 70 , - 93 , - 396 , - 979 , - 722 , - 745 , - 1048 , - 511 , - 254 , - 277 , - 580 , - 43 , - 906 , - 929 , - 112 , - 695 , - 438 , - 461 , - 764 , - 227 , - 1090 , - 1113 , - 296 , - 879 , - 622 , - 645 , - 948 , - 411 , - 154 , - 177 , - 480 , - 1063 , - 806 , - 829 , - 12 , - 595 , - 338 , - 361 , - 664 , - 127 , - 990 , - 1013 , - 196 , - 779 , - 522 , - 545 , - 848 , - 311 , - 54 , - 77 , - 380 , - 963 , - 706 , - 729 , - 1032 , - 495 , - 238 , - 261 , - 564 , - 27 , - 890 , - 913 , - 96 , - 679 , - 422 , - 445 , - 748 , - 211 , - 1074 , - 1097 , - 280 , - 863 , - 606 , - 629 , - 932 , - 395 , - 138 , - 161 , - 464 , - 1047 , - 790 , - 813 , - 1116 , - 579 , - 322 , - 345 , - 648 , - 111 , - 974 , - 997 , - 180 , - 763 , - 506 , - 529 , - 832 , - 295 , - 38 , - 61 , - 364 , - 947 , - 690 , - 713 , - 1016 , - 479 , - 222 , - 245 , - 548 , - 11 , - 874 , - 897 , - 80 , - 663 , - 406 , - 429 , - 732 , - 195 , - 1058 , - 1081 , - 264 , - 847 , - 590 , - 613 , - 916 , - 379 , - 122 , - 145 , - 448 , - 1031 , - 774 , - 797 , - 1100 , - 563 , - 306 , - 329 , - 632 , - 95 , - 958 , - 981 , - 164 , - 747 , - 490 , - 513 , - 816 , - 279 , - 22 , - 45 , - 348 , - 931 , - 674 , - 697 , - 1000 , - 463 , - 206 , - 229 , - 532 , - 1115 , - 858 , - 881 , - 64 , - 647 , - 390 , - 413 , - 716 , - 179 , - 1042 , - 1065 , - 248 , - 831 , - 574 , - 597 , - 900 , - 363 , - 106 , - 129 , - 432 , - 1015 , - 758 , - 781 , - 1084 , - 547 , - 290 , - 313 , - 616 , - 79 , - 942 , - 965 , - 148 , - 731 , - 474 , - 497 , - 800 , - 263 , - 6 , - 29 , - 332 , - 915 , - 658 , - 681 , - 984 , - 447 , - 190 , - 213 , - 516 , - 1099 , - 842 , - 865 , - 48 , - 631 , - 374 , - 397 , - 700 , - 163 , - 1026 , - 1049 , - 232 , - 815 , - 558 , - 581 , - 884 , - 347 , - 90 , - 113 , - 416 , - 999 , - 742 , - 765 , - 1068 , - 531 , - 274 , - 297 , - 600 , - 63 , - 926 , - 949 , - 132 , - 715 , - 458 , - 481 , - 784 , - 247 , - 1110 , - 13 , - 316 , - 899 , - 642 , - 665 , - 968 , - 431 , - 174 , - 197 , - 500 , - 1083 , - 826 , - 849 , - 32 , - 615 , - 358 , - 381 , - 684 , - 147 , - 1010 , - 1033 , - 216 , - 799 , - 542 , - 565 , - 868 , - 331 , - 74 , - 97 , - 400 , - 983 , - 726 , - 749 , - 1052 , - 515 , - 258 , - 281 , - 584 , - 47 , - 910 , - 933 , - 116 , - 699 , - 442 , - 465 , - 768 , - 231 , - 1094 , - 1117 , - 300 , - 883 , - 626 , - 649 , - 952 , - 415 , - 158 , - 181 , - 484 , - 1067 , - 810 , - 833 , - 16 , - 599 , - 342 , - 365 , - 668 , - 131 , - 994 , - 1017 , - 200 , - 783 , - 526 , - 549 , - 852 , - 315 , - 58 , - 81 , - 384 , - 967 , - 710 , - 733 , - 1036 , - 499 , - 242 , - 265 , - 568 , - 31 , - 894 , - 917 , - 100 , - 683 , - 426 , - 449 , - 752 , - 215 , - 1078 , - 1101 , - 284 , - 867 , - 610 , - 633 , - 936 , - 399 , - 142 , - 165 , - 468 , - 1051 , - 794 , - 817 , - 0 , - 179 , - 1078 , - 393 , - 428 , - 31 , - 354 , - 245 , - 856 , - 1035 , - 782 , - 97 , - 132 , - 887 , - 58 , - 1101 , - 560 , - 739 , - 486 , - 953 , - 988 , - 591 , - 914 , - 805 , - 264 , - 443 , - 190 , - 657 , - 692 , - 295 , - 618 , - 509 , - 1120 , - 147 , - 1046 , - 361 , - 396 , - 1151 , - 322 , - 213 , - 824 , - 1003 , - 750 , - 65 , - 100 , - 855 , - 26 , - 1069 , - 528 , - 707 , - 454 , - 921 , - 956 , - 559 , - 882 , - 773 , - 232 , - 411 , - 158 , - 625 , - 660 , - 263 , - 586 , - 477 , - 1088 , - 115 , - 1014 , - 329 , - 364 , - 1119 , - 290 , - 181 , - 792 , - 971 , - 718 , - 33 , - 68 , - 823 , - 1146 , - 1037 , - 496 , - 675 , - 422 , - 889 , - 924 , - 527 , - 850 , - 741 , - 200 , - 379 , - 126 , - 593 , - 628 , - 231 , - 554 , - 445 , - 1056 , - 83 , - 982 , - 297 , - 332 , - 1087 , - 258 , - 149 , - 760 , - 939 , - 686 , - 1 , - 36 , - 791 , - 1114 , - 1005 , - 464 , - 643 , - 390 , - 857 , - 892 , - 495 , - 818 , - 709 , - 168 , - 347 , - 94 , - 561 , - 596 , - 199 , - 522 , - 413 , - 1024 , - 51 , - 950 , - 265 , - 300 , - 1055 , - 226 , - 117 , - 728 , - 907 , - 654 , - 1121 , - 4 , - 759 , - 1082 , - 973 , - 432 , - 611 , - 358 , - 825 , - 860 , - 463 , - 786 , - 677 , - 136 , - 315 , - 62 , - 529 , - 564 , - 167 , - 490 , - 381 , - 992 , - 19 , - 918 , - 233 , - 268 , - 1023 , - 194 , - 85 , - 696 , - 875 , - 622 , - 1089 , - 1124 , - 727 , - 1050 , - 941 , - 400 , - 579 , - 326 , - 793 , - 828 , - 431 , - 754 , - 645 , - 104 , - 283 , - 30 , - 497 , - 532 , - 135 , - 458 , - 349 , - 960 , - 1139 , - 886 , - 201 , - 236 , - 991 , - 162 , - 53 , - 664 , - 843 , - 590 , - 1057 , - 1092 , - 695 , - 1018 , - 909 , - 368 , - 547 , - 294 , - 761 , - 796 , - 399 , - 722 , - 613 , - 72 , - 251 , - 1150 , - 465 , - 500 , - 103 , - 426 , - 317 , - 928 , - 1107 , - 854 , - 169 , - 204 , - 959 , - 130 , - 21 , - 632 , - 811 , - 558 , - 1025 , - 1060 , - 663 , - 986 , - 877 , - 336 , - 515 , - 262 , - 729 , - 764 , - 367 , - 690 , - 581 , - 40 , - 219 , - 1118 , - 433 , - 468 , - 71 , - 394 , - 285 , - 896 , - 1075 , - 822 , - 137 , - 172 , - 927 , - 98 , - 1141 , - 600 , - 779 , - 526 , - 993 , - 1028 , - 631 , - 954 , - 845 , - 304 , - 483 , - 230 , - 697 , - 732 , - 335 , - 658 , - 549 , - 8 , - 187 , - 1086 , - 401 , - 436 , - 39 , - 362 , - 253 , - 864 , - 1043 , - 790 , - 105 , - 140 , - 895 , - 66 , - 1109 , - 568 , - 747 , - 494 , - 961 , - 996 , - 599 , - 922 , - 813 , - 272 , - 451 , - 198 , - 665 , - 700 , - 303 , - 626 , - 517 , - 1128 , - 155 , - 1054 , - 369 , - 404 , - 7 , - 330 , - 221 , - 832 , - 1011 , - 758 , - 73 , - 108 , - 863 , - 34 , - 1077 , - 536 , - 715 , - 462 , - 929 , - 964 , - 567 , - 890 , - 781 , - 240 , - 419 , - 166 , - 633 , - 668 , - 271 , - 594 , - 485 , - 1096 , - 123 , - 1022 , - 337 , - 372 , - 1127 , - 298 , - 189 , - 800 , - 979 , - 726 , - 41 , - 76 , - 831 , - 2 , - 1045 , - 504 , - 683 , - 430 , - 897 , - 932 , - 535 , - 858 , - 749 , - 208 , - 387 , - 134 , - 601 , - 636 , - 239 , - 562 , - 453 , - 1064 , - 91 , - 990 , - 305 , - 340 , - 1095 , - 266 , - 157 , - 768 , - 947 , - 694 , - 9 , - 44 , - 799 , - 1122 , - 1013 , - 472 , - 651 , - 398 , - 865 , - 900 , - 503 , - 826 , - 717 , - 176 , - 355 , - 102 , - 569 , - 604 , - 207 , - 530 , - 421 , - 1032 , - 59 , - 958 , - 273 , - 308 , - 1063 , - 234 , - 125 , - 736 , - 915 , - 662 , - 1129 , - 12 , - 767 , - 1090 , - 981 , - 440 , - 619 , - 366 , - 833 , - 868 , - 471 , - 794 , - 685 , - 144 , - 323 , - 70 , - 537 , - 572 , - 175 , - 498 , - 389 , - 1000 , - 27 , - 926 , - 241 , - 276 , - 1031 , - 202 , - 93 , - 704 , - 883 , - 630 , - 1097 , - 1132 , - 735 , - 1058 , - 949 , - 408 , - 587 , - 334 , - 801 , - 836 , - 439 , - 762 , - 653 , - 112 , - 291 , - 38 , - 505 , - 540 , - 143 , - 466 , - 357 , - 968 , - 1147 , - 894 , - 209 , - 244 , - 999 , - 170 , - 61 , - 672 , - 851 , - 598 , - 1065 , - 1100 , - 703 , - 1026 , - 917 , - 376 , - 555 , - 302 , - 769 , - 804 , - 407 , - 730 , - 621 , - 80 , - 259 , - 6 , - 473 , - 508 , - 111 , - 434 , - 325 , - 936 , - 1115 , - 862 , - 177 , - 212 , - 967 , - 138 , - 29 , - 640 , - 819 , - 566 , - 1033 , - 1068 , - 671 , - 994 , - 885 , - 344 , - 523 , - 270 , - 737 , - 772 , - 375 , - 698 , - 589 , - 48 , - 227 , - 1126 , - 441 , - 476 , - 79 , - 402 , - 293 , - 904 , - 1083 , - 830 , - 145 , - 180 , - 935 , - 106 , - 1149 , - 608 , - 787 , - 534 , - 1001 , - 1036 , - 639 , - 962 , - 853 , - 312 , - 491 , - 238 , - 705 , - 740 , - 343 , - 666 , - 557 , - 16 , - 195 , - 1094 , - 409 , - 444 , - 47 , - 370 , - 261 , - 872 , - 1051 , - 798 , - 113 , - 148 , - 903 , - 74 , - 1117 , - 576 , - 755 , - 502 , - 969 , - 1004 , - 607 , - 930 , - 821 , - 280 , - 459 , - 206 , - 673 , - 708 , - 311 , - 634 , - 525 , - 1136 , - 163 , - 1062 , - 377 , - 412 , - 15 , - 338 , - 229 , - 840 , - 1019 , - 766 , - 81 , - 116 , - 871 , - 42 , - 1085 , - 544 , - 723 , - 470 , - 937 , - 972 , - 575 , - 898 , - 789 , - 248 , - 427 , - 174 , - 641 , - 676 , - 279 , - 602 , - 493 , - 1104 , - 131 , - 1030 , - 345 , - 380 , - 1135 , - 306 , - 197 , - 808 , - 987 , - 734 , - 49 , - 84 , - 839 , - 10 , - 1053 , - 512 , - 691 , - 438 , - 905 , - 940 , - 543 , - 866 , - 757 , - 216 , - 395 , - 142 , - 609 , - 644 , - 247 , - 570 , - 461 , - 1072 , - 99 , - 998 , - 313 , - 348 , - 1103 , - 274 , - 165 , - 776 , - 955 , - 702 , - 17 , - 52 , - 807 , - 1130 , - 1021 , - 480 , - 659 , - 406 , - 873 , - 908 , - 511 , - 834 , - 725 , - 184 , - 363 , - 110 , - 577 , - 612 , - 215 , - 538 , - 429 , - 1040 , - 67 , - 966 , - 281 , - 316 , - 1071 , - 242 , - 133 , - 744 , - 923 , - 670 , - 1137 , - 20 , - 775 , - 1098 , - 989 , - 448 , - 627 , - 374 , - 841 , - 876 , - 479 , - 802 , - 693 , - 152 , - 331 , - 78 , - 545 , - 580 , - 183 , - 506 , - 397 , - 1008 , - 35 , - 934 , - 249 , - 284 , - 1039 , - 210 , - 101 , - 712 , - 891 , - 638 , - 1105 , - 1140 , - 743 , - 1066 , - 957 , - 416 , - 595 , - 342 , - 809 , - 844 , - 447 , - 770 , - 661 , - 120 , - 299 , - 46 , - 513 , - 548 , - 151 , - 474 , - 365 , - 976 , - 3 , - 902 , - 217 , - 252 , - 1007 , - 178 , - 69 , - 680 , - 859 , - 606 , - 1073 , - 1108 , - 711 , - 1034 , - 925 , - 384 , - 563 , - 310 , - 777 , - 812 , - 415 , - 738 , - 629 , - 88 , - 267 , - 14 , - 481 , - 516 , - 119 , - 442 , - 333 , - 944 , - 1123 , - 870 , - 185 , - 220 , - 975 , - 146 , - 37 , - 648 , - 827 , - 574 , - 1041 , - 1076 , - 679 , - 1002 , - 893 , - 352 , - 531 , - 278 , - 745 , - 780 , - 383 , - 706 , - 597 , - 56 , - 235 , - 1134 , - 449 , - 484 , - 87 , - 410 , - 301 , - 912 , - 1091 , - 838 , - 153 , - 188 , - 943 , - 114 , - 5 , - 616 , - 795 , - 542 , - 1009 , - 1044 , - 647 , - 970 , - 861 , - 320 , - 499 , - 246 , - 713 , - 748 , - 351 , - 674 , - 565 , - 24 , - 203 , - 1102 , - 417 , - 452 , - 55 , - 378 , - 269 , - 880 , - 1059 , - 806 , - 121 , - 156 , - 911 , - 82 , - 1125 , - 584 , - 763 , - 510 , - 977 , - 1012 , - 615 , - 938 , - 829 , - 288 , - 467 , - 214 , - 681 , - 716 , - 319 , - 642 , - 533 , - 1144 , - 171 , - 1070 , - 385 , - 420 , - 23 , - 346 , - 237 , - 848 , - 1027 , - 774 , - 89 , - 124 , - 879 , - 50 , - 1093 , - 552 , - 731 , - 478 , - 945 , - 980 , - 583 , - 906 , - 797 , - 256 , - 435 , - 182 , - 649 , - 684 , - 287 , - 610 , - 501 , - 1112 , - 139 , - 1038 , - 353 , - 388 , - 1143 , - 314 , - 205 , - 816 , - 995 , - 742 , - 57 , - 92 , - 847 , - 18 , - 1061 , - 520 , - 699 , - 446 , - 913 , - 948 , - 551 , - 874 , - 765 , - 224 , - 403 , - 150 , - 617 , - 652 , - 255 , - 578 , - 469 , - 1080 , - 107 , - 1006 , - 321 , - 356 , - 1111 , - 282 , - 173 , - 784 , - 963 , - 710 , - 25 , - 60 , - 815 , - 1138 , - 1029 , - 488 , - 667 , - 414 , - 881 , - 916 , - 519 , - 842 , - 733 , - 192 , - 371 , - 118 , - 585 , - 620 , - 223 , - 546 , - 437 , - 1048 , - 75 , - 974 , - 289 , - 324 , - 1079 , - 250 , - 141 , - 752 , - 931 , - 678 , - 1145 , - 28 , - 783 , - 1106 , - 997 , - 456 , - 635 , - 382 , - 849 , - 884 , - 487 , - 810 , - 701 , - 160 , - 339 , - 86 , - 553 , - 588 , - 191 , - 514 , - 405 , - 1016 , - 43 , - 942 , - 257 , - 292 , - 1047 , - 218 , - 109 , - 720 , - 899 , - 646 , - 1113 , - 1148 , - 751 , - 1074 , - 965 , - 424 , - 603 , - 350 , - 817 , - 852 , - 455 , - 778 , - 669 , - 128 , - 307 , - 54 , - 521 , - 556 , - 159 , - 482 , - 373 , - 984 , - 11 , - 910 , - 225 , - 260 , - 1015 , - 186 , - 77 , - 688 , - 867 , - 614 , - 1081 , - 1116 , - 719 , - 1042 , - 933 , - 392 , - 571 , - 318 , - 785 , - 820 , - 423 , - 746 , - 637 , - 96 , - 275 , - 22 , - 489 , - 524 , - 127 , - 450 , - 341 , - 952 , - 1131 , - 878 , - 193 , - 228 , - 983 , - 154 , - 45 , - 656 , - 835 , - 582 , - 1049 , - 1084 , - 687 , - 1010 , - 901 , - 360 , - 539 , - 286 , - 753 , - 788 , - 391 , - 714 , - 605 , - 64 , - 243 , - 1142 , - 457 , - 492 , - 95 , - 418 , - 309 , - 920 , - 1099 , - 846 , - 161 , - 196 , - 951 , - 122 , - 13 , - 624 , - 803 , - 550 , - 1017 , - 1052 , - 655 , - 978 , - 869 , - 328 , - 507 , - 254 , - 721 , - 756 , - 359 , - 682 , - 573 , - 32 , - 211 , - 1110 , - 425 , - 460 , - 63 , - 386 , - 277 , - 888 , - 1067 , - 814 , - 129 , - 164 , - 919 , - 90 , - 1133 , - 592 , - 771 , - 518 , - 985 , - 1020 , - 623 , - 946 , - 837 , - 296 , - 475 , - 222 , - 689 , - 724 , - 327 , - 650 , - 541 , - 0 , - 1149 , - 670 , - 339 , - 748 , - 121 , - 234 , - 495 , - 312 , - 277 , - 982 , - 651 , - 1060 , - 433 , - 546 , - 807 , - 624 , - 589 , - 110 , - 963 , - 188 , - 745 , - 858 , - 1119 , - 936 , - 901 , - 422 , - 91 , - 500 , - 1057 , - 1170 , - 247 , - 64 , - 29 , - 734 , - 403 , - 812 , - 185 , - 298 , - 559 , - 376 , - 341 , - 1046 , - 715 , - 1124 , - 497 , - 610 , - 871 , - 688 , - 653 , - 174 , - 1027 , - 252 , - 809 , - 922 , - 1183 , - 1000 , - 965 , - 486 , - 155 , - 564 , - 1121 , - 50 , - 311 , - 128 , - 93 , - 798 , - 467 , - 876 , - 249 , - 362 , - 623 , - 440 , - 405 , - 1110 , - 779 , - 4 , - 561 , - 674 , - 935 , - 752 , - 717 , - 238 , - 1091 , - 316 , - 873 , - 986 , - 63 , - 1064 , - 1029 , - 550 , - 219 , - 628 , - 1 , - 114 , - 375 , - 192 , - 157 , - 862 , - 531 , - 940 , - 313 , - 426 , - 687 , - 504 , - 469 , - 1174 , - 843 , - 68 , - 625 , - 738 , - 999 , - 816 , - 781 , - 302 , - 1155 , - 380 , - 937 , - 1050 , - 127 , - 1128 , - 1093 , - 614 , - 283 , - 692 , - 65 , - 178 , - 439 , - 256 , - 221 , - 926 , - 595 , - 1004 , - 377 , - 490 , - 751 , - 568 , - 533 , - 54 , - 907 , - 132 , - 689 , - 802 , - 1063 , - 880 , - 845 , - 366 , - 35 , - 444 , - 1001 , - 1114 , - 191 , - 8 , - 1157 , - 678 , - 347 , - 756 , - 129 , - 242 , - 503 , - 320 , - 285 , - 990 , - 659 , - 1068 , - 441 , - 554 , - 815 , - 632 , - 597 , - 118 , - 971 , - 196 , - 753 , - 866 , - 1127 , - 944 , - 909 , - 430 , - 99 , - 508 , - 1065 , - 1178 , - 255 , - 72 , - 37 , - 742 , - 411 , - 820 , - 193 , - 306 , - 567 , - 384 , - 349 , - 1054 , - 723 , - 1132 , - 505 , - 618 , - 879 , - 696 , - 661 , - 182 , - 1035 , - 260 , - 817 , - 930 , - 7 , - 1008 , - 973 , - 494 , - 163 , - 572 , - 1129 , - 58 , - 319 , - 136 , - 101 , - 806 , - 475 , - 884 , - 257 , - 370 , - 631 , - 448 , - 413 , - 1118 , - 787 , - 12 , - 569 , - 682 , - 943 , - 760 , - 725 , - 246 , - 1099 , - 324 , - 881 , - 994 , - 71 , - 1072 , - 1037 , - 558 , - 227 , - 636 , - 9 , - 122 , - 383 , - 200 , - 165 , - 870 , - 539 , - 948 , - 321 , - 434 , - 695 , - 512 , - 477 , - 1182 , - 851 , - 76 , - 633 , - 746 , - 1007 , - 824 , - 789 , - 310 , - 1163 , - 388 , - 945 , - 1058 , - 135 , - 1136 , - 1101 , - 622 , - 291 , - 700 , - 73 , - 186 , - 447 , - 264 , - 229 , - 934 , - 603 , - 1012 , - 385 , - 498 , - 759 , - 576 , - 541 , - 62 , - 915 , - 140 , - 697 , - 810 , - 1071 , - 888 , - 853 , - 374 , - 43 , - 452 , - 1009 , - 1122 , - 199 , - 16 , - 1165 , - 686 , - 355 , - 764 , - 137 , - 250 , - 511 , - 328 , - 293 , - 998 , - 667 , - 1076 , - 449 , - 562 , - 823 , - 640 , - 605 , - 126 , - 979 , - 204 , - 761 , - 874 , - 1135 , - 952 , - 917 , - 438 , - 107 , - 516 , - 1073 , - 2 , - 263 , - 80 , - 45 , - 750 , - 419 , - 828 , - 201 , - 314 , - 575 , - 392 , - 357 , - 1062 , - 731 , - 1140 , - 513 , - 626 , - 887 , - 704 , - 669 , - 190 , - 1043 , - 268 , - 825 , - 938 , - 15 , - 1016 , - 981 , - 502 , - 171 , - 580 , - 1137 , - 66 , - 327 , - 144 , - 109 , - 814 , - 483 , - 892 , - 265 , - 378 , - 639 , - 456 , - 421 , - 1126 , - 795 , - 20 , - 577 , - 690 , - 951 , - 768 , - 733 , - 254 , - 1107 , - 332 , - 889 , - 1002 , - 79 , - 1080 , - 1045 , - 566 , - 235 , - 644 , - 17 , - 130 , - 391 , - 208 , - 173 , - 878 , - 547 , - 956 , - 329 , - 442 , - 703 , - 520 , - 485 , - 6 , - 859 , - 84 , - 641 , - 754 , - 1015 , - 832 , - 797 , - 318 , - 1171 , - 396 , - 953 , - 1066 , - 143 , - 1144 , - 1109 , - 630 , - 299 , - 708 , - 81 , - 194 , - 455 , - 272 , - 237 , - 942 , - 611 , - 1020 , - 393 , - 506 , - 767 , - 584 , - 549 , - 70 , - 923 , - 148 , - 705 , - 818 , - 1079 , - 896 , - 861 , - 382 , - 51 , - 460 , - 1017 , - 1130 , - 207 , - 24 , - 1173 , - 694 , - 363 , - 772 , - 145 , - 258 , - 519 , - 336 , - 301 , - 1006 , - 675 , - 1084 , - 457 , - 570 , - 831 , - 648 , - 613 , - 134 , - 987 , - 212 , - 769 , - 882 , - 1143 , - 960 , - 925 , - 446 , - 115 , - 524 , - 1081 , - 10 , - 271 , - 88 , - 53 , - 758 , - 427 , - 836 , - 209 , - 322 , - 583 , - 400 , - 365 , - 1070 , - 739 , - 1148 , - 521 , - 634 , - 895 , - 712 , - 677 , - 198 , - 1051 , - 276 , - 833 , - 946 , - 23 , - 1024 , - 989 , - 510 , - 179 , - 588 , - 1145 , - 74 , - 335 , - 152 , - 117 , - 822 , - 491 , - 900 , - 273 , - 386 , - 647 , - 464 , - 429 , - 1134 , - 803 , - 28 , - 585 , - 698 , - 959 , - 776 , - 741 , - 262 , - 1115 , - 340 , - 897 , - 1010 , - 87 , - 1088 , - 1053 , - 574 , - 243 , - 652 , - 25 , - 138 , - 399 , - 216 , - 181 , - 886 , - 555 , - 964 , - 337 , - 450 , - 711 , - 528 , - 493 , - 14 , - 867 , - 92 , - 649 , - 762 , - 1023 , - 840 , - 805 , - 326 , - 1179 , - 404 , - 961 , - 1074 , - 151 , - 1152 , - 1117 , - 638 , - 307 , - 716 , - 89 , - 202 , - 463 , - 280 , - 245 , - 950 , - 619 , - 1028 , - 401 , - 514 , - 775 , - 592 , - 557 , - 78 , - 931 , - 156 , - 713 , - 826 , - 1087 , - 904 , - 869 , - 390 , - 59 , - 468 , - 1025 , - 1138 , - 215 , - 32 , - 1181 , - 702 , - 371 , - 780 , - 153 , - 266 , - 527 , - 344 , - 309 , - 1014 , - 683 , - 1092 , - 465 , - 578 , - 839 , - 656 , - 621 , - 142 , - 995 , - 220 , - 777 , - 890 , - 1151 , - 968 , - 933 , - 454 , - 123 , - 532 , - 1089 , - 18 , - 279 , - 96 , - 61 , - 766 , - 435 , - 844 , - 217 , - 330 , - 591 , - 408 , - 373 , - 1078 , - 747 , - 1156 , - 529 , - 642 , - 903 , - 720 , - 685 , - 206 , - 1059 , - 284 , - 841 , - 954 , - 31 , - 1032 , - 997 , - 518 , - 187 , - 596 , - 1153 , - 82 , - 343 , - 160 , - 125 , - 830 , - 499 , - 908 , - 281 , - 394 , - 655 , - 472 , - 437 , - 1142 , - 811 , - 36 , - 593 , - 706 , - 967 , - 784 , - 749 , - 270 , - 1123 , - 348 , - 905 , - 1018 , - 95 , - 1096 , - 1061 , - 582 , - 251 , - 660 , - 33 , - 146 , - 407 , - 224 , - 189 , - 894 , - 563 , - 972 , - 345 , - 458 , - 719 , - 536 , - 501 , - 22 , - 875 , - 100 , - 657 , - 770 , - 1031 , - 848 , - 813 , - 334 , - 3 , - 412 , - 969 , - 1082 , - 159 , - 1160 , - 1125 , - 646 , - 315 , - 724 , - 97 , - 210 , - 471 , - 288 , - 253 , - 958 , - 627 , - 1036 , - 409 , - 522 , - 783 , - 600 , - 565 , - 86 , - 939 , - 164 , - 721 , - 834 , - 1095 , - 912 , - 877 , - 398 , - 67 , - 476 , - 1033 , - 1146 , - 223 , - 40 , - 5 , - 710 , - 379 , - 788 , - 161 , - 274 , - 535 , - 352 , - 317 , - 1022 , - 691 , - 1100 , - 473 , - 586 , - 847 , - 664 , - 629 , - 150 , - 1003 , - 228 , - 785 , - 898 , - 1159 , - 976 , - 941 , - 462 , - 131 , - 540 , - 1097 , - 26 , - 287 , - 104 , - 69 , - 774 , - 443 , - 852 , - 225 , - 338 , - 599 , - 416 , - 381 , - 1086 , - 755 , - 1164 , - 537 , - 650 , - 911 , - 728 , - 693 , - 214 , - 1067 , - 292 , - 849 , - 962 , - 39 , - 1040 , - 1005 , - 526 , - 195 , - 604 , - 1161 , - 90 , - 351 , - 168 , - 133 , - 838 , - 507 , - 916 , - 289 , - 402 , - 663 , - 480 , - 445 , - 1150 , - 819 , - 44 , - 601 , - 714 , - 975 , - 792 , - 757 , - 278 , - 1131 , - 356 , - 913 , - 1026 , - 103 , - 1104 , - 1069 , - 590 , - 259 , - 668 , - 41 , - 154 , - 415 , - 232 , - 197 , - 902 , - 571 , - 980 , - 353 , - 466 , - 727 , - 544 , - 509 , - 30 , - 883 , - 108 , - 665 , - 778 , - 1039 , - 856 , - 821 , - 342 , - 11 , - 420 , - 977 , - 1090 , - 167 , - 1168 , - 1133 , - 654 , - 323 , - 732 , - 105 , - 218 , - 479 , - 296 , - 261 , - 966 , - 635 , - 1044 , - 417 , - 530 , - 791 , - 608 , - 573 , - 94 , - 947 , - 172 , - 729 , - 842 , - 1103 , - 920 , - 885 , - 406 , - 75 , - 484 , - 1041 , - 1154 , - 231 , - 48 , - 13 , - 718 , - 387 , - 796 , - 169 , - 282 , - 543 , - 360 , - 325 , - 1030 , - 699 , - 1108 , - 481 , - 594 , - 855 , - 672 , - 637 , - 158 , - 1011 , - 236 , - 793 , - 906 , - 1167 , - 984 , - 949 , - 470 , - 139 , - 548 , - 1105 , - 34 , - 295 , - 112 , - 77 , - 782 , - 451 , - 860 , - 233 , - 346 , - 607 , - 424 , - 389 , - 1094 , - 763 , - 1172 , - 545 , - 658 , - 919 , - 736 , - 701 , - 222 , - 1075 , - 300 , - 857 , - 970 , - 47 , - 1048 , - 1013 , - 534 , - 203 , - 612 , - 1169 , - 98 , - 359 , - 176 , - 141 , - 846 , - 515 , - 924 , - 297 , - 410 , - 671 , - 488 , - 453 , - 1158 , - 827 , - 52 , - 609 , - 722 , - 983 , - 800 , - 765 , - 286 , - 1139 , - 364 , - 921 , - 1034 , - 111 , - 1112 , - 1077 , - 598 , - 267 , - 676 , - 49 , - 162 , - 423 , - 240 , - 205 , - 910 , - 579 , - 988 , - 361 , - 474 , - 735 , - 552 , - 517 , - 38 , - 891 , - 116 , - 673 , - 786 , - 1047 , - 864 , - 829 , - 350 , - 19 , - 428 , - 985 , - 1098 , - 175 , - 1176 , - 1141 , - 662 , - 331 , - 740 , - 113 , - 226 , - 487 , - 304 , - 269 , - 974 , - 643 , - 1052 , - 425 , - 538 , - 799 , - 616 , - 581 , - 102 , - 955 , - 180 , - 737 , - 850 , - 1111 , - 928 , - 893 , - 414 , - 83 , - 492 , - 1049 , - 1162 , - 239 , - 56 , - 21 , - 726 , - 395 , - 804 , - 177 , - 290 , - 551 , - 368 , - 333 , - 1038 , - 707 , - 1116 , - 489 , - 602 , - 863 , - 680 , - 645 , - 166 , - 1019 , - 244 , - 801 , - 914 , - 1175 , - 992 , - 957 , - 478 , - 147 , - 556 , - 1113 , - 42 , - 303 , - 120 , - 85 , - 790 , - 459 , - 868 , - 241 , - 354 , - 615 , - 432 , - 397 , - 1102 , - 771 , - 1180 , - 553 , - 666 , - 927 , - 744 , - 709 , - 230 , - 1083 , - 308 , - 865 , - 978 , - 55 , - 1056 , - 1021 , - 542 , - 211 , - 620 , - 1177 , - 106 , - 367 , - 184 , - 149 , - 854 , - 523 , - 932 , - 305 , - 418 , - 679 , - 496 , - 461 , - 1166 , - 835 , - 60 , - 617 , - 730 , - 991 , - 808 , - 773 , - 294 , - 1147 , - 372 , - 929 , - 1042 , - 119 , - 1120 , - 1085 , - 606 , - 275 , - 684 , - 57 , - 170 , - 431 , - 248 , - 213 , - 918 , - 587 , - 996 , - 369 , - 482 , - 743 , - 560 , - 525 , - 46 , - 899 , - 124 , - 681 , - 794 , - 1055 , - 872 , - 837 , - 358 , - 27 , - 436 , - 993 , - 1106 , - 183 , - 0 , - 419 , - 990 , - 497 , - 156 , - 1183 , - 1146 , - 45 , - 312 , - 731 , - 86 , - 809 , - 468 , - 279 , - 242 , - 357 , - 624 , - 1043 , - 398 , - 1121 , - 780 , - 591 , - 554 , - 669 , - 936 , - 139 , - 710 , - 217 , - 1092 , - 903 , - 866 , - 981 , - 32 , - 451 , - 1022 , - 529 , - 188 , - 1215 , - 1178 , - 77 , - 344 , - 763 , - 118 , - 841 , - 500 , - 311 , - 274 , - 389 , - 656 , - 1075 , - 430 , - 1153 , - 812 , - 623 , - 586 , - 701 , - 968 , - 171 , - 742 , - 249 , - 1124 , - 935 , - 898 , - 1013 , - 64 , - 483 , - 1054 , - 561 , - 220 , - 31 , - 1210 , - 109 , - 376 , - 795 , - 150 , - 873 , - 532 , - 343 , - 306 , - 421 , - 688 , - 1107 , - 462 , - 1185 , - 844 , - 655 , - 618 , - 733 , - 1000 , - 203 , - 774 , - 281 , - 1156 , - 967 , - 930 , - 1045 , - 96 , - 515 , - 1086 , - 593 , - 252 , - 63 , - 26 , - 141 , - 408 , - 827 , - 182 , - 905 , - 564 , - 375 , - 338 , - 453 , - 720 , - 1139 , - 494 , - 1 , - 876 , - 687 , - 650 , - 765 , - 1032 , - 235 , - 806 , - 313 , - 1188 , - 999 , - 962 , - 1077 , - 128 , - 547 , - 1118 , - 625 , - 284 , - 95 , - 58 , - 173 , - 440 , - 859 , - 214 , - 937 , - 596 , - 407 , - 370 , - 485 , - 752 , - 1171 , - 526 , - 33 , - 908 , - 719 , - 682 , - 797 , - 1064 , - 267 , - 838 , - 345 , - 4 , - 1031 , - 994 , - 1109 , - 160 , - 579 , - 1150 , - 657 , - 316 , - 127 , - 90 , - 205 , - 472 , - 891 , - 246 , - 969 , - 628 , - 439 , - 402 , - 517 , - 784 , - 1203 , - 558 , - 65 , - 940 , - 751 , - 714 , - 829 , - 1096 , - 299 , - 870 , - 377 , - 36 , - 1063 , - 1026 , - 1141 , - 192 , - 611 , - 1182 , - 689 , - 348 , - 159 , - 122 , - 237 , - 504 , - 923 , - 278 , - 1001 , - 660 , - 471 , - 434 , - 549 , - 816 , - 19 , - 590 , - 97 , - 972 , - 783 , - 746 , - 861 , - 1128 , - 331 , - 902 , - 409 , - 68 , - 1095 , - 1058 , - 1173 , - 224 , - 643 , - 1214 , - 721 , - 380 , - 191 , - 154 , - 269 , - 536 , - 955 , - 310 , - 1033 , - 692 , - 503 , - 466 , - 581 , - 848 , - 51 , - 622 , - 129 , - 1004 , - 815 , - 778 , - 893 , - 1160 , - 363 , - 934 , - 441 , - 100 , - 1127 , - 1090 , - 1205 , - 256 , - 675 , - 30 , - 753 , - 412 , - 223 , - 186 , - 301 , - 568 , - 987 , - 342 , - 1065 , - 724 , - 535 , - 498 , - 613 , - 880 , - 83 , - 654 , - 161 , - 1036 , - 847 , - 810 , - 925 , - 1192 , - 395 , - 966 , - 473 , - 132 , - 1159 , - 1122 , - 21 , - 288 , - 707 , - 62 , - 785 , - 444 , - 255 , - 218 , - 333 , - 600 , - 1019 , - 374 , - 1097 , - 756 , - 567 , - 530 , - 645 , - 912 , - 115 , - 686 , - 193 , - 1068 , - 879 , - 842 , - 957 , - 8 , - 427 , - 998 , - 505 , - 164 , - 1191 , - 1154 , - 53 , - 320 , - 739 , - 94 , - 817 , - 476 , - 287 , - 250 , - 365 , - 632 , - 1051 , - 406 , - 1129 , - 788 , - 599 , - 562 , - 677 , - 944 , - 147 , - 718 , - 225 , - 1100 , - 911 , - 874 , - 989 , - 40 , - 459 , - 1030 , - 537 , - 196 , - 7 , - 1186 , - 85 , - 352 , - 771 , - 126 , - 849 , - 508 , - 319 , - 282 , - 397 , - 664 , - 1083 , - 438 , - 1161 , - 820 , - 631 , - 594 , - 709 , - 976 , - 179 , - 750 , - 257 , - 1132 , - 943 , - 906 , - 1021 , - 72 , - 491 , - 1062 , - 569 , - 228 , - 39 , - 2 , - 117 , - 384 , - 803 , - 158 , - 881 , - 540 , - 351 , - 314 , - 429 , - 696 , - 1115 , - 470 , - 1193 , - 852 , - 663 , - 626 , - 741 , - 1008 , - 211 , - 782 , - 289 , - 1164 , - 975 , - 938 , - 1053 , - 104 , - 523 , - 1094 , - 601 , - 260 , - 71 , - 34 , - 149 , - 416 , - 835 , - 190 , - 913 , - 572 , - 383 , - 346 , - 461 , - 728 , - 1147 , - 502 , - 9 , - 884 , - 695 , - 658 , - 773 , - 1040 , - 243 , - 814 , - 321 , - 1196 , - 1007 , - 970 , - 1085 , - 136 , - 555 , - 1126 , - 633 , - 292 , - 103 , - 66 , - 181 , - 448 , - 867 , - 222 , - 945 , - 604 , - 415 , - 378 , - 493 , - 760 , - 1179 , - 534 , - 41 , - 916 , - 727 , - 690 , - 805 , - 1072 , - 275 , - 846 , - 353 , - 12 , - 1039 , - 1002 , - 1117 , - 168 , - 587 , - 1158 , - 665 , - 324 , - 135 , - 98 , - 213 , - 480 , - 899 , - 254 , - 977 , - 636 , - 447 , - 410 , - 525 , - 792 , - 1211 , - 566 , - 73 , - 948 , - 759 , - 722 , - 837 , - 1104 , - 307 , - 878 , - 385 , - 44 , - 1071 , - 1034 , - 1149 , - 200 , - 619 , - 1190 , - 697 , - 356 , - 167 , - 130 , - 245 , - 512 , - 931 , - 286 , - 1009 , - 668 , - 479 , - 442 , - 557 , - 824 , - 27 , - 598 , - 105 , - 980 , - 791 , - 754 , - 869 , - 1136 , - 339 , - 910 , - 417 , - 76 , - 1103 , - 1066 , - 1181 , - 232 , - 651 , - 6 , - 729 , - 388 , - 199 , - 162 , - 277 , - 544 , - 963 , - 318 , - 1041 , - 700 , - 511 , - 474 , - 589 , - 856 , - 59 , - 630 , - 137 , - 1012 , - 823 , - 786 , - 901 , - 1168 , - 371 , - 942 , - 449 , - 108 , - 1135 , - 1098 , - 1213 , - 264 , - 683 , - 38 , - 761 , - 420 , - 231 , - 194 , - 309 , - 576 , - 995 , - 350 , - 1073 , - 732 , - 543 , - 506 , - 621 , - 888 , - 91 , - 662 , - 169 , - 1044 , - 855 , - 818 , - 933 , - 1200 , - 403 , - 974 , - 481 , - 140 , - 1167 , - 1130 , - 29 , - 296 , - 715 , - 70 , - 793 , - 452 , - 263 , - 226 , - 341 , - 608 , - 1027 , - 382 , - 1105 , - 764 , - 575 , - 538 , - 653 , - 920 , - 123 , - 694 , - 201 , - 1076 , - 887 , - 850 , - 965 , - 16 , - 435 , - 1006 , - 513 , - 172 , - 1199 , - 1162 , - 61 , - 328 , - 747 , - 102 , - 825 , - 484 , - 295 , - 258 , - 373 , - 640 , - 1059 , - 414 , - 1137 , - 796 , - 607 , - 570 , - 685 , - 952 , - 155 , - 726 , - 233 , - 1108 , - 919 , - 882 , - 997 , - 48 , - 467 , - 1038 , - 545 , - 204 , - 15 , - 1194 , - 93 , - 360 , - 779 , - 134 , - 857 , - 516 , - 327 , - 290 , - 405 , - 672 , - 1091 , - 446 , - 1169 , - 828 , - 639 , - 602 , - 717 , - 984 , - 187 , - 758 , - 265 , - 1140 , - 951 , - 914 , - 1029 , - 80 , - 499 , - 1070 , - 577 , - 236 , - 47 , - 10 , - 125 , - 392 , - 811 , - 166 , - 889 , - 548 , - 359 , - 322 , - 437 , - 704 , - 1123 , - 478 , - 1201 , - 860 , - 671 , - 634 , - 749 , - 1016 , - 219 , - 790 , - 297 , - 1172 , - 983 , - 946 , - 1061 , - 112 , - 531 , - 1102 , - 609 , - 268 , - 79 , - 42 , - 157 , - 424 , - 843 , - 198 , - 921 , - 580 , - 391 , - 354 , - 469 , - 736 , - 1155 , - 510 , - 17 , - 892 , - 703 , - 666 , - 781 , - 1048 , - 251 , - 822 , - 329 , - 1204 , - 1015 , - 978 , - 1093 , - 144 , - 563 , - 1134 , - 641 , - 300 , - 111 , - 74 , - 189 , - 456 , - 875 , - 230 , - 953 , - 612 , - 423 , - 386 , - 501 , - 768 , - 1187 , - 542 , - 49 , - 924 , - 735 , - 698 , - 813 , - 1080 , - 283 , - 854 , - 361 , - 20 , - 1047 , - 1010 , - 1125 , - 176 , - 595 , - 1166 , - 673 , - 332 , - 143 , - 106 , - 221 , - 488 , - 907 , - 262 , - 985 , - 644 , - 455 , - 418 , - 533 , - 800 , - 3 , - 574 , - 81 , - 956 , - 767 , - 730 , - 845 , - 1112 , - 315 , - 886 , - 393 , - 52 , - 1079 , - 1042 , - 1157 , - 208 , - 627 , - 1198 , - 705 , - 364 , - 175 , - 138 , - 253 , - 520 , - 939 , - 294 , - 1017 , - 676 , - 487 , - 450 , - 565 , - 832 , - 35 , - 606 , - 113 , - 988 , - 799 , - 762 , - 877 , - 1144 , - 347 , - 918 , - 425 , - 84 , - 1111 , - 1074 , - 1189 , - 240 , - 659 , - 14 , - 737 , - 396 , - 207 , - 170 , - 285 , - 552 , - 971 , - 326 , - 1049 , - 708 , - 519 , - 482 , - 597 , - 864 , - 67 , - 638 , - 145 , - 1020 , - 831 , - 794 , - 909 , - 1176 , - 379 , - 950 , - 457 , - 116 , - 1143 , - 1106 , - 5 , - 272 , - 691 , - 46 , - 769 , - 428 , - 239 , - 202 , - 317 , - 584 , - 1003 , - 358 , - 1081 , - 740 , - 551 , - 514 , - 629 , - 896 , - 99 , - 670 , - 177 , - 1052 , - 863 , - 826 , - 941 , - 1208 , - 411 , - 982 , - 489 , - 148 , - 1175 , - 1138 , - 37 , - 304 , - 723 , - 78 , - 801 , - 460 , - 271 , - 234 , - 349 , - 616 , - 1035 , - 390 , - 1113 , - 772 , - 583 , - 546 , - 661 , - 928 , - 131 , - 702 , - 209 , - 1084 , - 895 , - 858 , - 973 , - 24 , - 443 , - 1014 , - 521 , - 180 , - 1207 , - 1170 , - 69 , - 336 , - 755 , - 110 , - 833 , - 492 , - 303 , - 266 , - 381 , - 648 , - 1067 , - 422 , - 1145 , - 804 , - 615 , - 578 , - 693 , - 960 , - 163 , - 734 , - 241 , - 1116 , - 927 , - 890 , - 1005 , - 56 , - 475 , - 1046 , - 553 , - 212 , - 23 , - 1202 , - 101 , - 368 , - 787 , - 142 , - 865 , - 524 , - 335 , - 298 , - 413 , - 680 , - 1099 , - 454 , - 1177 , - 836 , - 647 , - 610 , - 725 , - 992 , - 195 , - 766 , - 273 , - 1148 , - 959 , - 922 , - 1037 , - 88 , - 507 , - 1078 , - 585 , - 244 , - 55 , - 18 , - 133 , - 400 , - 819 , - 174 , - 897 , - 556 , - 367 , - 330 , - 445 , - 712 , - 1131 , - 486 , - 1209 , - 868 , - 679 , - 642 , - 757 , - 1024 , - 227 , - 798 , - 305 , - 1180 , - 991 , - 954 , - 1069 , - 120 , - 539 , - 1110 , - 617 , - 276 , - 87 , - 50 , - 165 , - 432 , - 851 , - 206 , - 929 , - 588 , - 399 , - 362 , - 477 , - 744 , - 1163 , - 518 , - 25 , - 900 , - 711 , - 674 , - 789 , - 1056 , - 259 , - 830 , - 337 , - 1212 , - 1023 , - 986 , - 1101 , - 152 , - 571 , - 1142 , - 649 , - 308 , - 119 , - 82 , - 197 , - 464 , - 883 , - 238 , - 961 , - 620 , - 431 , - 394 , - 509 , - 776 , - 1195 , - 550 , - 57 , - 932 , - 743 , - 706 , - 821 , - 1088 , - 291 , - 862 , - 369 , - 28 , - 1055 , - 1018 , - 1133 , - 184 , - 603 , - 1174 , - 681 , - 340 , - 151 , - 114 , - 229 , - 496 , - 915 , - 270 , - 993 , - 652 , - 463 , - 426 , - 541 , - 808 , - 11 , - 582 , - 89 , - 964 , - 775 , - 738 , - 853 , - 1120 , - 323 , - 894 , - 401 , - 60 , - 1087 , - 1050 , - 1165 , - 216 , - 635 , - 1206 , - 713 , - 372 , - 183 , - 146 , - 261 , - 528 , - 947 , - 302 , - 1025 , - 684 , - 495 , - 458 , - 573 , - 840 , - 43 , - 614 , - 121 , - 996 , - 807 , - 770 , - 885 , - 1152 , - 355 , - 926 , - 433 , - 92 , - 1119 , - 1082 , - 1197 , - 248 , - 667 , - 22 , - 745 , - 404 , - 215 , - 178 , - 293 , - 560 , - 979 , - 334 , - 1057 , - 716 , - 527 , - 490 , - 605 , - 872 , - 75 , - 646 , - 153 , - 1028 , - 839 , - 802 , - 917 , - 1184 , - 387 , - 958 , - 465 , - 124 , - 1151 , - 1114 , - 13 , - 280 , - 699 , - 54 , - 777 , - 436 , - 247 , - 210 , - 325 , - 592 , - 1011 , - 366 , - 1089 , - 748 , - 559 , - 522 , - 637 , - 904 , - 107 , - 678 , - 185 , - 1060 , - 871 , - 834 , - 949 , - 0 , - 193 , - 1166 , - 1047 , - 460 , - 29 , - 378 , - 883 , - 920 , - 1113 , - 838 , - 719 , - 132 , - 949 , - 50 , - 555 , - 592 , - 785 , - 510 , - 391 , - 1052 , - 621 , - 970 , - 227 , - 264 , - 457 , - 182 , - 63 , - 724 , - 293 , - 642 , - 1147 , - 1184 , - 129 , - 1102 , - 983 , - 396 , - 1213 , - 314 , - 819 , - 856 , - 1049 , - 774 , - 655 , - 68 , - 885 , - 1234 , - 491 , - 528 , - 721 , - 446 , - 327 , - 988 , - 557 , - 906 , - 163 , - 200 , - 393 , - 118 , - 1247 , - 660 , - 229 , - 578 , - 1083 , - 1120 , - 65 , - 1038 , - 919 , - 332 , - 1149 , - 250 , - 755 , - 792 , - 985 , - 710 , - 591 , - 4 , - 821 , - 1170 , - 427 , - 464 , - 657 , - 382 , - 263 , - 924 , - 493 , - 842 , - 99 , - 136 , - 329 , - 54 , - 1183 , - 596 , - 165 , - 514 , - 1019 , - 1056 , - 1 , - 974 , - 855 , - 268 , - 1085 , - 186 , - 691 , - 728 , - 921 , - 646 , - 527 , - 1188 , - 757 , - 1106 , - 363 , - 400 , - 593 , - 318 , - 199 , - 860 , - 429 , - 778 , - 35 , - 72 , - 265 , - 1238 , - 1119 , - 532 , - 101 , - 450 , - 955 , - 992 , - 1185 , - 910 , - 791 , - 204 , - 1021 , - 122 , - 627 , - 664 , - 857 , - 582 , - 463 , - 1124 , - 693 , - 1042 , - 299 , - 336 , - 529 , - 254 , - 135 , - 796 , - 365 , - 714 , - 1219 , - 8 , - 201 , - 1174 , - 1055 , - 468 , - 37 , - 386 , - 891 , - 928 , - 1121 , - 846 , - 727 , - 140 , - 957 , - 58 , - 563 , - 600 , - 793 , - 518 , - 399 , - 1060 , - 629 , - 978 , - 235 , - 272 , - 465 , - 190 , - 71 , - 732 , - 301 , - 650 , - 1155 , - 1192 , - 137 , - 1110 , - 991 , - 404 , - 1221 , - 322 , - 827 , - 864 , - 1057 , - 782 , - 663 , - 76 , - 893 , - 1242 , - 499 , - 536 , - 729 , - 454 , - 335 , - 996 , - 565 , - 914 , - 171 , - 208 , - 401 , - 126 , - 7 , - 668 , - 237 , - 586 , - 1091 , - 1128 , - 73 , - 1046 , - 927 , - 340 , - 1157 , - 258 , - 763 , - 800 , - 993 , - 718 , - 599 , - 12 , - 829 , - 1178 , - 435 , - 472 , - 665 , - 390 , - 271 , - 932 , - 501 , - 850 , - 107 , - 144 , - 337 , - 62 , - 1191 , - 604 , - 173 , - 522 , - 1027 , - 1064 , - 9 , - 982 , - 863 , - 276 , - 1093 , - 194 , - 699 , - 736 , - 929 , - 654 , - 535 , - 1196 , - 765 , - 1114 , - 371 , - 408 , - 601 , - 326 , - 207 , - 868 , - 437 , - 786 , - 43 , - 80 , - 273 , - 1246 , - 1127 , - 540 , - 109 , - 458 , - 963 , - 1000 , - 1193 , - 918 , - 799 , - 212 , - 1029 , - 130 , - 635 , - 672 , - 865 , - 590 , - 471 , - 1132 , - 701 , - 1050 , - 307 , - 344 , - 537 , - 262 , - 143 , - 804 , - 373 , - 722 , - 1227 , - 16 , - 209 , - 1182 , - 1063 , - 476 , - 45 , - 394 , - 899 , - 936 , - 1129 , - 854 , - 735 , - 148 , - 965 , - 66 , - 571 , - 608 , - 801 , - 526 , - 407 , - 1068 , - 637 , - 986 , - 243 , - 280 , - 473 , - 198 , - 79 , - 740 , - 309 , - 658 , - 1163 , - 1200 , - 145 , - 1118 , - 999 , - 412 , - 1229 , - 330 , - 835 , - 872 , - 1065 , - 790 , - 671 , - 84 , - 901 , - 2 , - 507 , - 544 , - 737 , - 462 , - 343 , - 1004 , - 573 , - 922 , - 179 , - 216 , - 409 , - 134 , - 15 , - 676 , - 245 , - 594 , - 1099 , - 1136 , - 81 , - 1054 , - 935 , - 348 , - 1165 , - 266 , - 771 , - 808 , - 1001 , - 726 , - 607 , - 20 , - 837 , - 1186 , - 443 , - 480 , - 673 , - 398 , - 279 , - 940 , - 509 , - 858 , - 115 , - 152 , - 345 , - 70 , - 1199 , - 612 , - 181 , - 530 , - 1035 , - 1072 , - 17 , - 990 , - 871 , - 284 , - 1101 , - 202 , - 707 , - 744 , - 937 , - 662 , - 543 , - 1204 , - 773 , - 1122 , - 379 , - 416 , - 609 , - 334 , - 215 , - 876 , - 445 , - 794 , - 51 , - 88 , - 281 , - 6 , - 1135 , - 548 , - 117 , - 466 , - 971 , - 1008 , - 1201 , - 926 , - 807 , - 220 , - 1037 , - 138 , - 643 , - 680 , - 873 , - 598 , - 479 , - 1140 , - 709 , - 1058 , - 315 , - 352 , - 545 , - 270 , - 151 , - 812 , - 381 , - 730 , - 1235 , - 24 , - 217 , - 1190 , - 1071 , - 484 , - 53 , - 402 , - 907 , - 944 , - 1137 , - 862 , - 743 , - 156 , - 973 , - 74 , - 579 , - 616 , - 809 , - 534 , - 415 , - 1076 , - 645 , - 994 , - 251 , - 288 , - 481 , - 206 , - 87 , - 748 , - 317 , - 666 , - 1171 , - 1208 , - 153 , - 1126 , - 1007 , - 420 , - 1237 , - 338 , - 843 , - 880 , - 1073 , - 798 , - 679 , - 92 , - 909 , - 10 , - 515 , - 552 , - 745 , - 470 , - 351 , - 1012 , - 581 , - 930 , - 187 , - 224 , - 417 , - 142 , - 23 , - 684 , - 253 , - 602 , - 1107 , - 1144 , - 89 , - 1062 , - 943 , - 356 , - 1173 , - 274 , - 779 , - 816 , - 1009 , - 734 , - 615 , - 28 , - 845 , - 1194 , - 451 , - 488 , - 681 , - 406 , - 287 , - 948 , - 517 , - 866 , - 123 , - 160 , - 353 , - 78 , - 1207 , - 620 , - 189 , - 538 , - 1043 , - 1080 , - 25 , - 998 , - 879 , - 292 , - 1109 , - 210 , - 715 , - 752 , - 945 , - 670 , - 551 , - 1212 , - 781 , - 1130 , - 387 , - 424 , - 617 , - 342 , - 223 , - 884 , - 453 , - 802 , - 59 , - 96 , - 289 , - 14 , - 1143 , - 556 , - 125 , - 474 , - 979 , - 1016 , - 1209 , - 934 , - 815 , - 228 , - 1045 , - 146 , - 651 , - 688 , - 881 , - 606 , - 487 , - 1148 , - 717 , - 1066 , - 323 , - 360 , - 553 , - 278 , - 159 , - 820 , - 389 , - 738 , - 1243 , - 32 , - 225 , - 1198 , - 1079 , - 492 , - 61 , - 410 , - 915 , - 952 , - 1145 , - 870 , - 751 , - 164 , - 981 , - 82 , - 587 , - 624 , - 817 , - 542 , - 423 , - 1084 , - 653 , - 1002 , - 259 , - 296 , - 489 , - 214 , - 95 , - 756 , - 325 , - 674 , - 1179 , - 1216 , - 161 , - 1134 , - 1015 , - 428 , - 1245 , - 346 , - 851 , - 888 , - 1081 , - 806 , - 687 , - 100 , - 917 , - 18 , - 523 , - 560 , - 753 , - 478 , - 359 , - 1020 , - 589 , - 938 , - 195 , - 232 , - 425 , - 150 , - 31 , - 692 , - 261 , - 610 , - 1115 , - 1152 , - 97 , - 1070 , - 951 , - 364 , - 1181 , - 282 , - 787 , - 824 , - 1017 , - 742 , - 623 , - 36 , - 853 , - 1202 , - 459 , - 496 , - 689 , - 414 , - 295 , - 956 , - 525 , - 874 , - 131 , - 168 , - 361 , - 86 , - 1215 , - 628 , - 197 , - 546 , - 1051 , - 1088 , - 33 , - 1006 , - 887 , - 300 , - 1117 , - 218 , - 723 , - 760 , - 953 , - 678 , - 559 , - 1220 , - 789 , - 1138 , - 395 , - 432 , - 625 , - 350 , - 231 , - 892 , - 461 , - 810 , - 67 , - 104 , - 297 , - 22 , - 1151 , - 564 , - 133 , - 482 , - 987 , - 1024 , - 1217 , - 942 , - 823 , - 236 , - 1053 , - 154 , - 659 , - 696 , - 889 , - 614 , - 495 , - 1156 , - 725 , - 1074 , - 331 , - 368 , - 561 , - 286 , - 167 , - 828 , - 397 , - 746 , - 3 , - 40 , - 233 , - 1206 , - 1087 , - 500 , - 69 , - 418 , - 923 , - 960 , - 1153 , - 878 , - 759 , - 172 , - 989 , - 90 , - 595 , - 632 , - 825 , - 550 , - 431 , - 1092 , - 661 , - 1010 , - 267 , - 304 , - 497 , - 222 , - 103 , - 764 , - 333 , - 682 , - 1187 , - 1224 , - 169 , - 1142 , - 1023 , - 436 , - 5 , - 354 , - 859 , - 896 , - 1089 , - 814 , - 695 , - 108 , - 925 , - 26 , - 531 , - 568 , - 761 , - 486 , - 367 , - 1028 , - 597 , - 946 , - 203 , - 240 , - 433 , - 158 , - 39 , - 700 , - 269 , - 618 , - 1123 , - 1160 , - 105 , - 1078 , - 959 , - 372 , - 1189 , - 290 , - 795 , - 832 , - 1025 , - 750 , - 631 , - 44 , - 861 , - 1210 , - 467 , - 504 , - 697 , - 422 , - 303 , - 964 , - 533 , - 882 , - 139 , - 176 , - 369 , - 94 , - 1223 , - 636 , - 205 , - 554 , - 1059 , - 1096 , - 41 , - 1014 , - 895 , - 308 , - 1125 , - 226 , - 731 , - 768 , - 961 , - 686 , - 567 , - 1228 , - 797 , - 1146 , - 403 , - 440 , - 633 , - 358 , - 239 , - 900 , - 469 , - 818 , - 75 , - 112 , - 305 , - 30 , - 1159 , - 572 , - 141 , - 490 , - 995 , - 1032 , - 1225 , - 950 , - 831 , - 244 , - 1061 , - 162 , - 667 , - 704 , - 897 , - 622 , - 503 , - 1164 , - 733 , - 1082 , - 339 , - 376 , - 569 , - 294 , - 175 , - 836 , - 405 , - 754 , - 11 , - 48 , - 241 , - 1214 , - 1095 , - 508 , - 77 , - 426 , - 931 , - 968 , - 1161 , - 886 , - 767 , - 180 , - 997 , - 98 , - 603 , - 640 , - 833 , - 558 , - 439 , - 1100 , - 669 , - 1018 , - 275 , - 312 , - 505 , - 230 , - 111 , - 772 , - 341 , - 690 , - 1195 , - 1232 , - 177 , - 1150 , - 1031 , - 444 , - 13 , - 362 , - 867 , - 904 , - 1097 , - 822 , - 703 , - 116 , - 933 , - 34 , - 539 , - 576 , - 769 , - 494 , - 375 , - 1036 , - 605 , - 954 , - 211 , - 248 , - 441 , - 166 , - 47 , - 708 , - 277 , - 626 , - 1131 , - 1168 , - 113 , - 1086 , - 967 , - 380 , - 1197 , - 298 , - 803 , - 840 , - 1033 , - 758 , - 639 , - 52 , - 869 , - 1218 , - 475 , - 512 , - 705 , - 430 , - 311 , - 972 , - 541 , - 890 , - 147 , - 184 , - 377 , - 102 , - 1231 , - 644 , - 213 , - 562 , - 1067 , - 1104 , - 49 , - 1022 , - 903 , - 316 , - 1133 , - 234 , - 739 , - 776 , - 969 , - 694 , - 575 , - 1236 , - 805 , - 1154 , - 411 , - 448 , - 641 , - 366 , - 247 , - 908 , - 477 , - 826 , - 83 , - 120 , - 313 , - 38 , - 1167 , - 580 , - 149 , - 498 , - 1003 , - 1040 , - 1233 , - 958 , - 839 , - 252 , - 1069 , - 170 , - 675 , - 712 , - 905 , - 630 , - 511 , - 1172 , - 741 , - 1090 , - 347 , - 384 , - 577 , - 302 , - 183 , - 844 , - 413 , - 762 , - 19 , - 56 , - 249 , - 1222 , - 1103 , - 516 , - 85 , - 434 , - 939 , - 976 , - 1169 , - 894 , - 775 , - 188 , - 1005 , - 106 , - 611 , - 648 , - 841 , - 566 , - 447 , - 1108 , - 677 , - 1026 , - 283 , - 320 , - 513 , - 238 , - 119 , - 780 , - 349 , - 698 , - 1203 , - 1240 , - 185 , - 1158 , - 1039 , - 452 , - 21 , - 370 , - 875 , - 912 , - 1105 , - 830 , - 711 , - 124 , - 941 , - 42 , - 547 , - 584 , - 777 , - 502 , - 383 , - 1044 , - 613 , - 962 , - 219 , - 256 , - 449 , - 174 , - 55 , - 716 , - 285 , - 634 , - 1139 , - 1176 , - 121 , - 1094 , - 975 , - 388 , - 1205 , - 306 , - 811 , - 848 , - 1041 , - 766 , - 647 , - 60 , - 877 , - 1226 , - 483 , - 520 , - 713 , - 438 , - 319 , - 980 , - 549 , - 898 , - 155 , - 192 , - 385 , - 110 , - 1239 , - 652 , - 221 , - 570 , - 1075 , - 1112 , - 57 , - 1030 , - 911 , - 324 , - 1141 , - 242 , - 747 , - 784 , - 977 , - 702 , - 583 , - 1244 , - 813 , - 1162 , - 419 , - 456 , - 649 , - 374 , - 255 , - 916 , - 485 , - 834 , - 91 , - 128 , - 321 , - 46 , - 1175 , - 588 , - 157 , - 506 , - 1011 , - 1048 , - 1241 , - 966 , - 847 , - 260 , - 1077 , - 178 , - 683 , - 720 , - 913 , - 638 , - 519 , - 1180 , - 749 , - 1098 , - 355 , - 392 , - 585 , - 310 , - 191 , - 852 , - 421 , - 770 , - 27 , - 64 , - 257 , - 1230 , - 1111 , - 524 , - 93 , - 442 , - 947 , - 984 , - 1177 , - 902 , - 783 , - 196 , - 1013 , - 114 , - 619 , - 656 , - 849 , - 574 , - 455 , - 1116 , - 685 , - 1034 , - 291 , - 328 , - 521 , - 246 , - 127 , - 788 , - 357 , - 706 , - 1211 , - 0 , - 359 , - 1198 , - 1237 , - 476 , - 195 , - 394 , - 1073 , - 952 , - 31 , - 870 , - 909 , - 148 , - 1147 , - 66 , - 745 , - 624 , - 983 , - 542 , - 581 , - 1100 , - 819 , - 1018 , - 417 , - 296 , - 655 , - 214 , - 253 , - 772 , - 491 , - 690 , - 89 , - 1248 , - 327 , - 1166 , - 1205 , - 444 , - 163 , - 362 , - 1041 , - 920 , - 1279 , - 838 , - 877 , - 116 , - 1115 , - 34 , - 713 , - 592 , - 951 , - 510 , - 549 , - 1068 , - 787 , - 986 , - 385 , - 264 , - 623 , - 182 , - 221 , - 740 , - 459 , - 658 , - 57 , - 1216 , - 295 , - 1134 , - 1173 , - 412 , - 131 , - 330 , - 1009 , - 888 , - 1247 , - 806 , - 845 , - 84 , - 1083 , - 2 , - 681 , - 560 , - 919 , - 478 , - 517 , - 1036 , - 755 , - 954 , - 353 , - 232 , - 591 , - 150 , - 189 , - 708 , - 427 , - 626 , - 25 , - 1184 , - 263 , - 1102 , - 1141 , - 380 , - 99 , - 298 , - 977 , - 856 , - 1215 , - 774 , - 813 , - 52 , - 1051 , - 1250 , - 649 , - 528 , - 887 , - 446 , - 485 , - 1004 , - 723 , - 922 , - 321 , - 200 , - 559 , - 118 , - 157 , - 676 , - 395 , - 594 , - 1273 , - 1152 , - 231 , - 1070 , - 1109 , - 348 , - 67 , - 266 , - 945 , - 824 , - 1183 , - 742 , - 781 , - 20 , - 1019 , - 1218 , - 617 , - 496 , - 855 , - 414 , - 453 , - 972 , - 691 , - 890 , - 289 , - 168 , - 527 , - 86 , - 125 , - 644 , - 363 , - 562 , - 1241 , - 1120 , - 199 , - 1038 , - 1077 , - 316 , - 35 , - 234 , - 913 , - 792 , - 1151 , - 710 , - 749 , - 1268 , - 987 , - 1186 , - 585 , - 464 , - 823 , - 382 , - 421 , - 940 , - 659 , - 858 , - 257 , - 136 , - 495 , - 54 , - 93 , - 612 , - 331 , - 530 , - 1209 , - 1088 , - 167 , - 1006 , - 1045 , - 284 , - 3 , - 202 , - 881 , - 760 , - 1119 , - 678 , - 717 , - 1236 , - 955 , - 1154 , - 553 , - 432 , - 791 , - 350 , - 389 , - 908 , - 627 , - 826 , - 225 , - 104 , - 463 , - 22 , - 61 , - 580 , - 299 , - 498 , - 1177 , - 1056 , - 135 , - 974 , - 1013 , - 252 , - 1251 , - 170 , - 849 , - 728 , - 1087 , - 646 , - 685 , - 1204 , - 923 , - 1122 , - 521 , - 400 , - 759 , - 318 , - 357 , - 876 , - 595 , - 794 , - 193 , - 72 , - 431 , - 1270 , - 29 , - 548 , - 267 , - 466 , - 1145 , - 1024 , - 103 , - 942 , - 981 , - 220 , - 1219 , - 138 , - 817 , - 696 , - 1055 , - 614 , - 653 , - 1172 , - 891 , - 1090 , - 489 , - 368 , - 727 , - 286 , - 325 , - 844 , - 563 , - 762 , - 161 , - 40 , - 399 , - 1238 , - 1277 , - 516 , - 235 , - 434 , - 1113 , - 992 , - 71 , - 910 , - 949 , - 188 , - 1187 , - 106 , - 785 , - 664 , - 1023 , - 582 , - 621 , - 1140 , - 859 , - 1058 , - 457 , - 336 , - 695 , - 254 , - 293 , - 812 , - 531 , - 730 , - 129 , - 8 , - 367 , - 1206 , - 1245 , - 484 , - 203 , - 402 , - 1081 , - 960 , - 39 , - 878 , - 917 , - 156 , - 1155 , - 74 , - 753 , - 632 , - 991 , - 550 , - 589 , - 1108 , - 827 , - 1026 , - 425 , - 304 , - 663 , - 222 , - 261 , - 780 , - 499 , - 698 , - 97 , - 1256 , - 335 , - 1174 , - 1213 , - 452 , - 171 , - 370 , - 1049 , - 928 , - 7 , - 846 , - 885 , - 124 , - 1123 , - 42 , - 721 , - 600 , - 959 , - 518 , - 557 , - 1076 , - 795 , - 994 , - 393 , - 272 , - 631 , - 190 , - 229 , - 748 , - 467 , - 666 , - 65 , - 1224 , - 303 , - 1142 , - 1181 , - 420 , - 139 , - 338 , - 1017 , - 896 , - 1255 , - 814 , - 853 , - 92 , - 1091 , - 10 , - 689 , - 568 , - 927 , - 486 , - 525 , - 1044 , - 763 , - 962 , - 361 , - 240 , - 599 , - 158 , - 197 , - 716 , - 435 , - 634 , - 33 , - 1192 , - 271 , - 1110 , - 1149 , - 388 , - 107 , - 306 , - 985 , - 864 , - 1223 , - 782 , - 821 , - 60 , - 1059 , - 1258 , - 657 , - 536 , - 895 , - 454 , - 493 , - 1012 , - 731 , - 930 , - 329 , - 208 , - 567 , - 126 , - 165 , - 684 , - 403 , - 602 , - 1 , - 1160 , - 239 , - 1078 , - 1117 , - 356 , - 75 , - 274 , - 953 , - 832 , - 1191 , - 750 , - 789 , - 28 , - 1027 , - 1226 , - 625 , - 504 , - 863 , - 422 , - 461 , - 980 , - 699 , - 898 , - 297 , - 176 , - 535 , - 94 , - 133 , - 652 , - 371 , - 570 , - 1249 , - 1128 , - 207 , - 1046 , - 1085 , - 324 , - 43 , - 242 , - 921 , - 800 , - 1159 , - 718 , - 757 , - 1276 , - 995 , - 1194 , - 593 , - 472 , - 831 , - 390 , - 429 , - 948 , - 667 , - 866 , - 265 , - 144 , - 503 , - 62 , - 101 , - 620 , - 339 , - 538 , - 1217 , - 1096 , - 175 , - 1014 , - 1053 , - 292 , - 11 , - 210 , - 889 , - 768 , - 1127 , - 686 , - 725 , - 1244 , - 963 , - 1162 , - 561 , - 440 , - 799 , - 358 , - 397 , - 916 , - 635 , - 834 , - 233 , - 112 , - 471 , - 30 , - 69 , - 588 , - 307 , - 506 , - 1185 , - 1064 , - 143 , - 982 , - 1021 , - 260 , - 1259 , - 178 , - 857 , - 736 , - 1095 , - 654 , - 693 , - 1212 , - 931 , - 1130 , - 529 , - 408 , - 767 , - 326 , - 365 , - 884 , - 603 , - 802 , - 201 , - 80 , - 439 , - 1278 , - 37 , - 556 , - 275 , - 474 , - 1153 , - 1032 , - 111 , - 950 , - 989 , - 228 , - 1227 , - 146 , - 825 , - 704 , - 1063 , - 622 , - 661 , - 1180 , - 899 , - 1098 , - 497 , - 376 , - 735 , - 294 , - 333 , - 852 , - 571 , - 770 , - 169 , - 48 , - 407 , - 1246 , - 5 , - 524 , - 243 , - 442 , - 1121 , - 1000 , - 79 , - 918 , - 957 , - 196 , - 1195 , - 114 , - 793 , - 672 , - 1031 , - 590 , - 629 , - 1148 , - 867 , - 1066 , - 465 , - 344 , - 703 , - 262 , - 301 , - 820 , - 539 , - 738 , - 137 , - 16 , - 375 , - 1214 , - 1253 , - 492 , - 211 , - 410 , - 1089 , - 968 , - 47 , - 886 , - 925 , - 164 , - 1163 , - 82 , - 761 , - 640 , - 999 , - 558 , - 597 , - 1116 , - 835 , - 1034 , - 433 , - 312 , - 671 , - 230 , - 269 , - 788 , - 507 , - 706 , - 105 , - 1264 , - 343 , - 1182 , - 1221 , - 460 , - 179 , - 378 , - 1057 , - 936 , - 15 , - 854 , - 893 , - 132 , - 1131 , - 50 , - 729 , - 608 , - 967 , - 526 , - 565 , - 1084 , - 803 , - 1002 , - 401 , - 280 , - 639 , - 198 , - 237 , - 756 , - 475 , - 674 , - 73 , - 1232 , - 311 , - 1150 , - 1189 , - 428 , - 147 , - 346 , - 1025 , - 904 , - 1263 , - 822 , - 861 , - 100 , - 1099 , - 18 , - 697 , - 576 , - 935 , - 494 , - 533 , - 1052 , - 771 , - 970 , - 369 , - 248 , - 607 , - 166 , - 205 , - 724 , - 443 , - 642 , - 41 , - 1200 , - 279 , - 1118 , - 1157 , - 396 , - 115 , - 314 , - 993 , - 872 , - 1231 , - 790 , - 829 , - 68 , - 1067 , - 1266 , - 665 , - 544 , - 903 , - 462 , - 501 , - 1020 , - 739 , - 938 , - 337 , - 216 , - 575 , - 134 , - 173 , - 692 , - 411 , - 610 , - 9 , - 1168 , - 247 , - 1086 , - 1125 , - 364 , - 83 , - 282 , - 961 , - 840 , - 1199 , - 758 , - 797 , - 36 , - 1035 , - 1234 , - 633 , - 512 , - 871 , - 430 , - 469 , - 988 , - 707 , - 906 , - 305 , - 184 , - 543 , - 102 , - 141 , - 660 , - 379 , - 578 , - 1257 , - 1136 , - 215 , - 1054 , - 1093 , - 332 , - 51 , - 250 , - 929 , - 808 , - 1167 , - 726 , - 765 , - 4 , - 1003 , - 1202 , - 601 , - 480 , - 839 , - 398 , - 437 , - 956 , - 675 , - 874 , - 273 , - 152 , - 511 , - 70 , - 109 , - 628 , - 347 , - 546 , - 1225 , - 1104 , - 183 , - 1022 , - 1061 , - 300 , - 19 , - 218 , - 897 , - 776 , - 1135 , - 694 , - 733 , - 1252 , - 971 , - 1170 , - 569 , - 448 , - 807 , - 366 , - 405 , - 924 , - 643 , - 842 , - 241 , - 120 , - 479 , - 38 , - 77 , - 596 , - 315 , - 514 , - 1193 , - 1072 , - 151 , - 990 , - 1029 , - 268 , - 1267 , - 186 , - 865 , - 744 , - 1103 , - 662 , - 701 , - 1220 , - 939 , - 1138 , - 537 , - 416 , - 775 , - 334 , - 373 , - 892 , - 611 , - 810 , - 209 , - 88 , - 447 , - 6 , - 45 , - 564 , - 283 , - 482 , - 1161 , - 1040 , - 119 , - 958 , - 997 , - 236 , - 1235 , - 154 , - 833 , - 712 , - 1071 , - 630 , - 669 , - 1188 , - 907 , - 1106 , - 505 , - 384 , - 743 , - 302 , - 341 , - 860 , - 579 , - 778 , - 177 , - 56 , - 415 , - 1254 , - 13 , - 532 , - 251 , - 450 , - 1129 , - 1008 , - 87 , - 926 , - 965 , - 204 , - 1203 , - 122 , - 801 , - 680 , - 1039 , - 598 , - 637 , - 1156 , - 875 , - 1074 , - 473 , - 352 , - 711 , - 270 , - 309 , - 828 , - 547 , - 746 , - 145 , - 24 , - 383 , - 1222 , - 1261 , - 500 , - 219 , - 418 , - 1097 , - 976 , - 55 , - 894 , - 933 , - 172 , - 1171 , - 90 , - 769 , - 648 , - 1007 , - 566 , - 605 , - 1124 , - 843 , - 1042 , - 441 , - 320 , - 679 , - 238 , - 277 , - 796 , - 515 , - 714 , - 113 , - 1272 , - 351 , - 1190 , - 1229 , - 468 , - 187 , - 386 , - 1065 , - 944 , - 23 , - 862 , - 901 , - 140 , - 1139 , - 58 , - 737 , - 616 , - 975 , - 534 , - 573 , - 1092 , - 811 , - 1010 , - 409 , - 288 , - 647 , - 206 , - 245 , - 764 , - 483 , - 682 , - 81 , - 1240 , - 319 , - 1158 , - 1197 , - 436 , - 155 , - 354 , - 1033 , - 912 , - 1271 , - 830 , - 869 , - 108 , - 1107 , - 26 , - 705 , - 584 , - 943 , - 502 , - 541 , - 1060 , - 779 , - 978 , - 377 , - 256 , - 615 , - 174 , - 213 , - 732 , - 451 , - 650 , - 49 , - 1208 , - 287 , - 1126 , - 1165 , - 404 , - 123 , - 322 , - 1001 , - 880 , - 1239 , - 798 , - 837 , - 76 , - 1075 , - 1274 , - 673 , - 552 , - 911 , - 470 , - 509 , - 1028 , - 747 , - 946 , - 345 , - 224 , - 583 , - 142 , - 181 , - 700 , - 419 , - 618 , - 17 , - 1176 , - 255 , - 1094 , - 1133 , - 372 , - 91 , - 290 , - 969 , - 848 , - 1207 , - 766 , - 805 , - 44 , - 1043 , - 1242 , - 641 , - 520 , - 879 , - 438 , - 477 , - 996 , - 715 , - 914 , - 313 , - 192 , - 551 , - 110 , - 149 , - 668 , - 387 , - 586 , - 1265 , - 1144 , - 223 , - 1062 , - 1101 , - 340 , - 59 , - 258 , - 937 , - 816 , - 1175 , - 734 , - 773 , - 12 , - 1011 , - 1210 , - 609 , - 488 , - 847 , - 406 , - 445 , - 964 , - 683 , - 882 , - 281 , - 160 , - 519 , - 78 , - 117 , - 636 , - 355 , - 554 , - 1233 , - 1112 , - 191 , - 1030 , - 1069 , - 308 , - 27 , - 226 , - 905 , - 784 , - 1143 , - 702 , - 741 , - 1260 , - 979 , - 1178 , - 577 , - 456 , - 815 , - 374 , - 413 , - 932 , - 651 , - 850 , - 249 , - 128 , - 487 , - 46 , - 85 , - 604 , - 323 , - 522 , - 1201 , - 1080 , - 159 , - 998 , - 1037 , - 276 , - 1275 , - 194 , - 873 , - 752 , - 1111 , - 670 , - 709 , - 1228 , - 947 , - 1146 , - 545 , - 424 , - 783 , - 342 , - 381 , - 900 , - 619 , - 818 , - 217 , - 96 , - 455 , - 14 , - 53 , - 572 , - 291 , - 490 , - 1169 , - 1048 , - 127 , - 966 , - 1005 , - 244 , - 1243 , - 162 , - 841 , - 720 , - 1079 , - 638 , - 677 , - 1196 , - 915 , - 1114 , - 513 , - 392 , - 751 , - 310 , - 349 , - 868 , - 587 , - 786 , - 185 , - 64 , - 423 , - 1262 , - 21 , - 540 , - 259 , - 458 , - 1137 , - 1016 , - 95 , - 934 , - 973 , - 212 , - 1211 , - 130 , - 809 , - 688 , - 1047 , - 606 , - 645 , - 1164 , - 883 , - 1082 , - 481 , - 360 , - 719 , - 278 , - 317 , - 836 , - 555 , - 754 , - 153 , - 32 , - 391 , - 1230 , - 1269 , - 508 , - 227 , - 426 , - 1105 , - 984 , - 63 , - 902 , - 941 , - 180 , - 1179 , - 98 , - 777 , - 656 , - 1015 , - 574 , - 613 , - 1132 , - 851 , - 1050 , - 449 , - 328 , - 687 , - 246 , - 285 , - 804 , - 523 , - 722 , - 121 , - 0 , - 1027 , - 1234 , - 1277 , - 500 , - 871 , - 422 , - 1121 , - 1000 , - 715 , - 922 , - 965 , - 188 , - 559 , - 110 , - 809 , - 688 , - 403 , - 610 , - 653 , - 1188 , - 247 , - 1110 , - 497 , - 376 , - 91 , - 298 , - 341 , - 876 , - 1247 , - 798 , - 185 , - 64 , - 1091 , - 1298 , - 29 , - 564 , - 935 , - 486 , - 1185 , - 1064 , - 779 , - 986 , - 1029 , - 252 , - 623 , - 174 , - 873 , - 752 , - 467 , - 674 , - 717 , - 1252 , - 311 , - 1174 , - 561 , - 440 , - 155 , - 362 , - 405 , - 940 , - 1311 , - 862 , - 249 , - 128 , - 1155 , - 50 , - 93 , - 628 , - 999 , - 550 , - 1249 , - 1128 , - 843 , - 1050 , - 1093 , - 316 , - 687 , - 238 , - 937 , - 816 , - 531 , - 738 , - 781 , - 4 , - 375 , - 1238 , - 625 , - 504 , - 219 , - 426 , - 469 , - 1004 , - 63 , - 926 , - 313 , - 192 , - 1219 , - 114 , - 157 , - 692 , - 1063 , - 614 , - 1 , - 1192 , - 907 , - 1114 , - 1157 , - 380 , - 751 , - 302 , - 1001 , - 880 , - 595 , - 802 , - 845 , - 68 , - 439 , - 1302 , - 689 , - 568 , - 283 , - 490 , - 533 , - 1068 , - 127 , - 990 , - 377 , - 256 , - 1283 , - 178 , - 221 , - 756 , - 1127 , - 678 , - 65 , - 1256 , - 971 , - 1178 , - 1221 , - 444 , - 815 , - 366 , - 1065 , - 944 , - 659 , - 866 , - 909 , - 132 , - 503 , - 54 , - 753 , - 632 , - 347 , - 554 , - 597 , - 1132 , - 191 , - 1054 , - 441 , - 320 , - 35 , - 242 , - 285 , - 820 , - 1191 , - 742 , - 129 , - 8 , - 1035 , - 1242 , - 1285 , - 508 , - 879 , - 430 , - 1129 , - 1008 , - 723 , - 930 , - 973 , - 196 , - 567 , - 118 , - 817 , - 696 , - 411 , - 618 , - 661 , - 1196 , - 255 , - 1118 , - 505 , - 384 , - 99 , - 306 , - 349 , - 884 , - 1255 , - 806 , - 193 , - 72 , - 1099 , - 1306 , - 37 , - 572 , - 943 , - 494 , - 1193 , - 1072 , - 787 , - 994 , - 1037 , - 260 , - 631 , - 182 , - 881 , - 760 , - 475 , - 682 , - 725 , - 1260 , - 319 , - 1182 , - 569 , - 448 , - 163 , - 370 , - 413 , - 948 , - 7 , - 870 , - 257 , - 136 , - 1163 , - 58 , - 101 , - 636 , - 1007 , - 558 , - 1257 , - 1136 , - 851 , - 1058 , - 1101 , - 324 , - 695 , - 246 , - 945 , - 824 , - 539 , - 746 , - 789 , - 12 , - 383 , - 1246 , - 633 , - 512 , - 227 , - 434 , - 477 , - 1012 , - 71 , - 934 , - 321 , - 200 , - 1227 , - 122 , - 165 , - 700 , - 1071 , - 622 , - 9 , - 1200 , - 915 , - 1122 , - 1165 , - 388 , - 759 , - 310 , - 1009 , - 888 , - 603 , - 810 , - 853 , - 76 , - 447 , - 1310 , - 697 , - 576 , - 291 , - 498 , - 541 , - 1076 , - 135 , - 998 , - 385 , - 264 , - 1291 , - 186 , - 229 , - 764 , - 1135 , - 686 , - 73 , - 1264 , - 979 , - 1186 , - 1229 , - 452 , - 823 , - 374 , - 1073 , - 952 , - 667 , - 874 , - 917 , - 140 , - 511 , - 62 , - 761 , - 640 , - 355 , - 562 , - 605 , - 1140 , - 199 , - 1062 , - 449 , - 328 , - 43 , - 250 , - 293 , - 828 , - 1199 , - 750 , - 137 , - 16 , - 1043 , - 1250 , - 1293 , - 516 , - 887 , - 438 , - 1137 , - 1016 , - 731 , - 938 , - 981 , - 204 , - 575 , - 126 , - 825 , - 704 , - 419 , - 626 , - 669 , - 1204 , - 263 , - 1126 , - 513 , - 392 , - 107 , - 314 , - 357 , - 892 , - 1263 , - 814 , - 201 , - 80 , - 1107 , - 2 , - 45 , - 580 , - 951 , - 502 , - 1201 , - 1080 , - 795 , - 1002 , - 1045 , - 268 , - 639 , - 190 , - 889 , - 768 , - 483 , - 690 , - 733 , - 1268 , - 327 , - 1190 , - 577 , - 456 , - 171 , - 378 , - 421 , - 956 , - 15 , - 878 , - 265 , - 144 , - 1171 , - 66 , - 109 , - 644 , - 1015 , - 566 , - 1265 , - 1144 , - 859 , - 1066 , - 1109 , - 332 , - 703 , - 254 , - 953 , - 832 , - 547 , - 754 , - 797 , - 20 , - 391 , - 1254 , - 641 , - 520 , - 235 , - 442 , - 485 , - 1020 , - 79 , - 942 , - 329 , - 208 , - 1235 , - 130 , - 173 , - 708 , - 1079 , - 630 , - 17 , - 1208 , - 923 , - 1130 , - 1173 , - 396 , - 767 , - 318 , - 1017 , - 896 , - 611 , - 818 , - 861 , - 84 , - 455 , - 6 , - 705 , - 584 , - 299 , - 506 , - 549 , - 1084 , - 143 , - 1006 , - 393 , - 272 , - 1299 , - 194 , - 237 , - 772 , - 1143 , - 694 , - 81 , - 1272 , - 987 , - 1194 , - 1237 , - 460 , - 831 , - 382 , - 1081 , - 960 , - 675 , - 882 , - 925 , - 148 , - 519 , - 70 , - 769 , - 648 , - 363 , - 570 , - 613 , - 1148 , - 207 , - 1070 , - 457 , - 336 , - 51 , - 258 , - 301 , - 836 , - 1207 , - 758 , - 145 , - 24 , - 1051 , - 1258 , - 1301 , - 524 , - 895 , - 446 , - 1145 , - 1024 , - 739 , - 946 , - 989 , - 212 , - 583 , - 134 , - 833 , - 712 , - 427 , - 634 , - 677 , - 1212 , - 271 , - 1134 , - 521 , - 400 , - 115 , - 322 , - 365 , - 900 , - 1271 , - 822 , - 209 , - 88 , - 1115 , - 10 , - 53 , - 588 , - 959 , - 510 , - 1209 , - 1088 , - 803 , - 1010 , - 1053 , - 276 , - 647 , - 198 , - 897 , - 776 , - 491 , - 698 , - 741 , - 1276 , - 335 , - 1198 , - 585 , - 464 , - 179 , - 386 , - 429 , - 964 , - 23 , - 886 , - 273 , - 152 , - 1179 , - 74 , - 117 , - 652 , - 1023 , - 574 , - 1273 , - 1152 , - 867 , - 1074 , - 1117 , - 340 , - 711 , - 262 , - 961 , - 840 , - 555 , - 762 , - 805 , - 28 , - 399 , - 1262 , - 649 , - 528 , - 243 , - 450 , - 493 , - 1028 , - 87 , - 950 , - 337 , - 216 , - 1243 , - 138 , - 181 , - 716 , - 1087 , - 638 , - 25 , - 1216 , - 931 , - 1138 , - 1181 , - 404 , - 775 , - 326 , - 1025 , - 904 , - 619 , - 826 , - 869 , - 92 , - 463 , - 14 , - 713 , - 592 , - 307 , - 514 , - 557 , - 1092 , - 151 , - 1014 , - 401 , - 280 , - 1307 , - 202 , - 245 , - 780 , - 1151 , - 702 , - 89 , - 1280 , - 995 , - 1202 , - 1245 , - 468 , - 839 , - 390 , - 1089 , - 968 , - 683 , - 890 , - 933 , - 156 , - 527 , - 78 , - 777 , - 656 , - 371 , - 578 , - 621 , - 1156 , - 215 , - 1078 , - 465 , - 344 , - 59 , - 266 , - 309 , - 844 , - 1215 , - 766 , - 153 , - 32 , - 1059 , - 1266 , - 1309 , - 532 , - 903 , - 454 , - 1153 , - 1032 , - 747 , - 954 , - 997 , - 220 , - 591 , - 142 , - 841 , - 720 , - 435 , - 642 , - 685 , - 1220 , - 279 , - 1142 , - 529 , - 408 , - 123 , - 330 , - 373 , - 908 , - 1279 , - 830 , - 217 , - 96 , - 1123 , - 18 , - 61 , - 596 , - 967 , - 518 , - 1217 , - 1096 , - 811 , - 1018 , - 1061 , - 284 , - 655 , - 206 , - 905 , - 784 , - 499 , - 706 , - 749 , - 1284 , - 343 , - 1206 , - 593 , - 472 , - 187 , - 394 , - 437 , - 972 , - 31 , - 894 , - 281 , - 160 , - 1187 , - 82 , - 125 , - 660 , - 1031 , - 582 , - 1281 , - 1160 , - 875 , - 1082 , - 1125 , - 348 , - 719 , - 270 , - 969 , - 848 , - 563 , - 770 , - 813 , - 36 , - 407 , - 1270 , - 657 , - 536 , - 251 , - 458 , - 501 , - 1036 , - 95 , - 958 , - 345 , - 224 , - 1251 , - 146 , - 189 , - 724 , - 1095 , - 646 , - 33 , - 1224 , - 939 , - 1146 , - 1189 , - 412 , - 783 , - 334 , - 1033 , - 912 , - 627 , - 834 , - 877 , - 100 , - 471 , - 22 , - 721 , - 600 , - 315 , - 522 , - 565 , - 1100 , - 159 , - 1022 , - 409 , - 288 , - 3 , - 210 , - 253 , - 788 , - 1159 , - 710 , - 97 , - 1288 , - 1003 , - 1210 , - 1253 , - 476 , - 847 , - 398 , - 1097 , - 976 , - 691 , - 898 , - 941 , - 164 , - 535 , - 86 , - 785 , - 664 , - 379 , - 586 , - 629 , - 1164 , - 223 , - 1086 , - 473 , - 352 , - 67 , - 274 , - 317 , - 852 , - 1223 , - 774 , - 161 , - 40 , - 1067 , - 1274 , - 5 , - 540 , - 911 , - 462 , - 1161 , - 1040 , - 755 , - 962 , - 1005 , - 228 , - 599 , - 150 , - 849 , - 728 , - 443 , - 650 , - 693 , - 1228 , - 287 , - 1150 , - 537 , - 416 , - 131 , - 338 , - 381 , - 916 , - 1287 , - 838 , - 225 , - 104 , - 1131 , - 26 , - 69 , - 604 , - 975 , - 526 , - 1225 , - 1104 , - 819 , - 1026 , - 1069 , - 292 , - 663 , - 214 , - 913 , - 792 , - 507 , - 714 , - 757 , - 1292 , - 351 , - 1214 , - 601 , - 480 , - 195 , - 402 , - 445 , - 980 , - 39 , - 902 , - 289 , - 168 , - 1195 , - 90 , - 133 , - 668 , - 1039 , - 590 , - 1289 , - 1168 , - 883 , - 1090 , - 1133 , - 356 , - 727 , - 278 , - 977 , - 856 , - 571 , - 778 , - 821 , - 44 , - 415 , - 1278 , - 665 , - 544 , - 259 , - 466 , - 509 , - 1044 , - 103 , - 966 , - 353 , - 232 , - 1259 , - 154 , - 197 , - 732 , - 1103 , - 654 , - 41 , - 1232 , - 947 , - 1154 , - 1197 , - 420 , - 791 , - 342 , - 1041 , - 920 , - 635 , - 842 , - 885 , - 108 , - 479 , - 30 , - 729 , - 608 , - 323 , - 530 , - 573 , - 1108 , - 167 , - 1030 , - 417 , - 296 , - 11 , - 218 , - 261 , - 796 , - 1167 , - 718 , - 105 , - 1296 , - 1011 , - 1218 , - 1261 , - 484 , - 855 , - 406 , - 1105 , - 984 , - 699 , - 906 , - 949 , - 172 , - 543 , - 94 , - 793 , - 672 , - 387 , - 594 , - 637 , - 1172 , - 231 , - 1094 , - 481 , - 360 , - 75 , - 282 , - 325 , - 860 , - 1231 , - 782 , - 169 , - 48 , - 1075 , - 1282 , - 13 , - 548 , - 919 , - 470 , - 1169 , - 1048 , - 763 , - 970 , - 1013 , - 236 , - 607 , - 158 , - 857 , - 736 , - 451 , - 658 , - 701 , - 1236 , - 295 , - 1158 , - 545 , - 424 , - 139 , - 346 , - 389 , - 924 , - 1295 , - 846 , - 233 , - 112 , - 1139 , - 34 , - 77 , - 612 , - 983 , - 534 , - 1233 , - 1112 , - 827 , - 1034 , - 1077 , - 300 , - 671 , - 222 , - 921 , - 800 , - 515 , - 722 , - 765 , - 1300 , - 359 , - 1222 , - 609 , - 488 , - 203 , - 410 , - 453 , - 988 , - 47 , - 910 , - 297 , - 176 , - 1203 , - 98 , - 141 , - 676 , - 1047 , - 598 , - 1297 , - 1176 , - 891 , - 1098 , - 1141 , - 364 , - 735 , - 286 , - 985 , - 864 , - 579 , - 786 , - 829 , - 52 , - 423 , - 1286 , - 673 , - 552 , - 267 , - 474 , - 517 , - 1052 , - 111 , - 974 , - 361 , - 240 , - 1267 , - 162 , - 205 , - 740 , - 1111 , - 662 , - 49 , - 1240 , - 955 , - 1162 , - 1205 , - 428 , - 799 , - 350 , - 1049 , - 928 , - 643 , - 850 , - 893 , - 116 , - 487 , - 38 , - 737 , - 616 , - 331 , - 538 , - 581 , - 1116 , - 175 , - 1038 , - 425 , - 304 , - 19 , - 226 , - 269 , - 804 , - 1175 , - 726 , - 113 , - 1304 , - 1019 , - 1226 , - 1269 , - 492 , - 863 , - 414 , - 1113 , - 992 , - 707 , - 914 , - 957 , - 180 , - 551 , - 102 , - 801 , - 680 , - 395 , - 602 , - 645 , - 1180 , - 239 , - 1102 , - 489 , - 368 , - 83 , - 290 , - 333 , - 868 , - 1239 , - 790 , - 177 , - 56 , - 1083 , - 1290 , - 21 , - 556 , - 927 , - 478 , - 1177 , - 1056 , - 771 , - 978 , - 1021 , - 244 , - 615 , - 166 , - 865 , - 744 , - 459 , - 666 , - 709 , - 1244 , - 303 , - 1166 , - 553 , - 432 , - 147 , - 354 , - 397 , - 932 , - 1303 , - 854 , - 241 , - 120 , - 1147 , - 42 , - 85 , - 620 , - 991 , - 542 , - 1241 , - 1120 , - 835 , - 1042 , - 1085 , - 308 , - 679 , - 230 , - 929 , - 808 , - 523 , - 730 , - 773 , - 1308 , - 367 , - 1230 , - 617 , - 496 , - 211 , - 418 , - 461 , - 996 , - 55 , - 918 , - 305 , - 184 , - 1211 , - 106 , - 149 , - 684 , - 1055 , - 606 , - 1305 , - 1184 , - 899 , - 1106 , - 1149 , - 372 , - 743 , - 294 , - 993 , - 872 , - 587 , - 794 , - 837 , - 60 , - 431 , - 1294 , - 681 , - 560 , - 275 , - 482 , - 525 , - 1060 , - 119 , - 982 , - 369 , - 248 , - 1275 , - 170 , - 213 , - 748 , - 1119 , - 670 , - 57 , - 1248 , - 963 , - 1170 , - 1213 , - 436 , - 807 , - 358 , - 1057 , - 936 , - 651 , - 858 , - 901 , - 124 , - 495 , - 46 , - 745 , - 624 , - 339 , - 546 , - 589 , - 1124 , - 183 , - 1046 , - 433 , - 312 , - 27 , - 234 , - 277 , - 812 , - 1183 , - 734 , - 121 , - 0 , - 967 , - 422 , - 1053 , - 172 , - 467 , - 594 , - 553 , - 344 , - 1311 , - 766 , - 53 , - 516 , - 811 , - 938 , - 897 , - 688 , - 311 , - 1110 , - 397 , - 860 , - 1155 , - 1282 , - 1241 , - 1032 , - 655 , - 110 , - 741 , - 1204 , - 155 , - 282 , - 241 , - 32 , - 999 , - 454 , - 1085 , - 204 , - 499 , - 626 , - 585 , - 376 , - 1343 , - 798 , - 85 , - 548 , - 843 , - 970 , - 929 , - 720 , - 343 , - 1142 , - 429 , - 892 , - 1187 , - 1314 , - 1273 , - 1064 , - 687 , - 142 , - 773 , - 1236 , - 187 , - 314 , - 273 , - 64 , - 1031 , - 486 , - 1117 , - 236 , - 531 , - 658 , - 617 , - 408 , - 31 , - 830 , - 117 , - 580 , - 875 , - 1002 , - 961 , - 752 , - 375 , - 1174 , - 461 , - 924 , - 1219 , - 2 , - 1305 , - 1096 , - 719 , - 174 , - 805 , - 1268 , - 219 , - 346 , - 305 , - 96 , - 1063 , - 518 , - 1149 , - 268 , - 563 , - 690 , - 649 , - 440 , - 63 , - 862 , - 149 , - 612 , - 907 , - 1034 , - 993 , - 784 , - 407 , - 1206 , - 493 , - 956 , - 1251 , - 34 , - 1337 , - 1128 , - 751 , - 206 , - 837 , - 1300 , - 251 , - 378 , - 337 , - 128 , - 1095 , - 550 , - 1181 , - 300 , - 595 , - 722 , - 681 , - 472 , - 95 , - 894 , - 181 , - 644 , - 939 , - 1066 , - 1025 , - 816 , - 439 , - 1238 , - 525 , - 988 , - 1283 , - 66 , - 25 , - 1160 , - 783 , - 238 , - 869 , - 1332 , - 283 , - 410 , - 369 , - 160 , - 1127 , - 582 , - 1213 , - 332 , - 627 , - 754 , - 713 , - 504 , - 127 , - 926 , - 213 , - 676 , - 971 , - 1098 , - 1057 , - 848 , - 471 , - 1270 , - 557 , - 1020 , - 1315 , - 98 , - 57 , - 1192 , - 815 , - 270 , - 901 , - 20 , - 315 , - 442 , - 401 , - 192 , - 1159 , - 614 , - 1245 , - 364 , - 659 , - 786 , - 745 , - 536 , - 159 , - 958 , - 245 , - 708 , - 1003 , - 1130 , - 1089 , - 880 , - 503 , - 1302 , - 589 , - 1052 , - 3 , - 130 , - 89 , - 1224 , - 847 , - 302 , - 933 , - 52 , - 347 , - 474 , - 433 , - 224 , - 1191 , - 646 , - 1277 , - 396 , - 691 , - 818 , - 777 , - 568 , - 191 , - 990 , - 277 , - 740 , - 1035 , - 1162 , - 1121 , - 912 , - 535 , - 1334 , - 621 , - 1084 , - 35 , - 162 , - 121 , - 1256 , - 879 , - 334 , - 965 , - 84 , - 379 , - 506 , - 465 , - 256 , - 1223 , - 678 , - 1309 , - 428 , - 723 , - 850 , - 809 , - 600 , - 223 , - 1022 , - 309 , - 772 , - 1067 , - 1194 , - 1153 , - 944 , - 567 , - 22 , - 653 , - 1116 , - 67 , - 194 , - 153 , - 1288 , - 911 , - 366 , - 997 , - 116 , - 411 , - 538 , - 497 , - 288 , - 1255 , - 710 , - 1341 , - 460 , - 755 , - 882 , - 841 , - 632 , - 255 , - 1054 , - 341 , - 804 , - 1099 , - 1226 , - 1185 , - 976 , - 599 , - 54 , - 685 , - 1148 , - 99 , - 226 , - 185 , - 1320 , - 943 , - 398 , - 1029 , - 148 , - 443 , - 570 , - 529 , - 320 , - 1287 , - 742 , - 29 , - 492 , - 787 , - 914 , - 873 , - 664 , - 287 , - 1086 , - 373 , - 836 , - 1131 , - 1258 , - 1217 , - 1008 , - 631 , - 86 , - 717 , - 1180 , - 131 , - 258 , - 217 , - 8 , - 975 , - 430 , - 1061 , - 180 , - 475 , - 602 , - 561 , - 352 , - 1319 , - 774 , - 61 , - 524 , - 819 , - 946 , - 905 , - 696 , - 319 , - 1118 , - 405 , - 868 , - 1163 , - 1290 , - 1249 , - 1040 , - 663 , - 118 , - 749 , - 1212 , - 163 , - 290 , - 249 , - 40 , - 1007 , - 462 , - 1093 , - 212 , - 507 , - 634 , - 593 , - 384 , - 7 , - 806 , - 93 , - 556 , - 851 , - 978 , - 937 , - 728 , - 351 , - 1150 , - 437 , - 900 , - 1195 , - 1322 , - 1281 , - 1072 , - 695 , - 150 , - 781 , - 1244 , - 195 , - 322 , - 281 , - 72 , - 1039 , - 494 , - 1125 , - 244 , - 539 , - 666 , - 625 , - 416 , - 39 , - 838 , - 125 , - 588 , - 883 , - 1010 , - 969 , - 760 , - 383 , - 1182 , - 469 , - 932 , - 1227 , - 10 , - 1313 , - 1104 , - 727 , - 182 , - 813 , - 1276 , - 227 , - 354 , - 313 , - 104 , - 1071 , - 526 , - 1157 , - 276 , - 571 , - 698 , - 657 , - 448 , - 71 , - 870 , - 157 , - 620 , - 915 , - 1042 , - 1001 , - 792 , - 415 , - 1214 , - 501 , - 964 , - 1259 , - 42 , - 1 , - 1136 , - 759 , - 214 , - 845 , - 1308 , - 259 , - 386 , - 345 , - 136 , - 1103 , - 558 , - 1189 , - 308 , - 603 , - 730 , - 689 , - 480 , - 103 , - 902 , - 189 , - 652 , - 947 , - 1074 , - 1033 , - 824 , - 447 , - 1246 , - 533 , - 996 , - 1291 , - 74 , - 33 , - 1168 , - 791 , - 246 , - 877 , - 1340 , - 291 , - 418 , - 377 , - 168 , - 1135 , - 590 , - 1221 , - 340 , - 635 , - 762 , - 721 , - 512 , - 135 , - 934 , - 221 , - 684 , - 979 , - 1106 , - 1065 , - 856 , - 479 , - 1278 , - 565 , - 1028 , - 1323 , - 106 , - 65 , - 1200 , - 823 , - 278 , - 909 , - 28 , - 323 , - 450 , - 409 , - 200 , - 1167 , - 622 , - 1253 , - 372 , - 667 , - 794 , - 753 , - 544 , - 167 , - 966 , - 253 , - 716 , - 1011 , - 1138 , - 1097 , - 888 , - 511 , - 1310 , - 597 , - 1060 , - 11 , - 138 , - 97 , - 1232 , - 855 , - 310 , - 941 , - 60 , - 355 , - 482 , - 441 , - 232 , - 1199 , - 654 , - 1285 , - 404 , - 699 , - 826 , - 785 , - 576 , - 199 , - 998 , - 285 , - 748 , - 1043 , - 1170 , - 1129 , - 920 , - 543 , - 1342 , - 629 , - 1092 , - 43 , - 170 , - 129 , - 1264 , - 887 , - 342 , - 973 , - 92 , - 387 , - 514 , - 473 , - 264 , - 1231 , - 686 , - 1317 , - 436 , - 731 , - 858 , - 817 , - 608 , - 231 , - 1030 , - 317 , - 780 , - 1075 , - 1202 , - 1161 , - 952 , - 575 , - 30 , - 661 , - 1124 , - 75 , - 202 , - 161 , - 1296 , - 919 , - 374 , - 1005 , - 124 , - 419 , - 546 , - 505 , - 296 , - 1263 , - 718 , - 5 , - 468 , - 763 , - 890 , - 849 , - 640 , - 263 , - 1062 , - 349 , - 812 , - 1107 , - 1234 , - 1193 , - 984 , - 607 , - 62 , - 693 , - 1156 , - 107 , - 234 , - 193 , - 1328 , - 951 , - 406 , - 1037 , - 156 , - 451 , - 578 , - 537 , - 328 , - 1295 , - 750 , - 37 , - 500 , - 795 , - 922 , - 881 , - 672 , - 295 , - 1094 , - 381 , - 844 , - 1139 , - 1266 , - 1225 , - 1016 , - 639 , - 94 , - 725 , - 1188 , - 139 , - 266 , - 225 , - 16 , - 983 , - 438 , - 1069 , - 188 , - 483 , - 610 , - 569 , - 360 , - 1327 , - 782 , - 69 , - 532 , - 827 , - 954 , - 913 , - 704 , - 327 , - 1126 , - 413 , - 876 , - 1171 , - 1298 , - 1257 , - 1048 , - 671 , - 126 , - 757 , - 1220 , - 171 , - 298 , - 257 , - 48 , - 1015 , - 470 , - 1101 , - 220 , - 515 , - 642 , - 601 , - 392 , - 15 , - 814 , - 101 , - 564 , - 859 , - 986 , - 945 , - 736 , - 359 , - 1158 , - 445 , - 908 , - 1203 , - 1330 , - 1289 , - 1080 , - 703 , - 158 , - 789 , - 1252 , - 203 , - 330 , - 289 , - 80 , - 1047 , - 502 , - 1133 , - 252 , - 547 , - 674 , - 633 , - 424 , - 47 , - 846 , - 133 , - 596 , - 891 , - 1018 , - 977 , - 768 , - 391 , - 1190 , - 477 , - 940 , - 1235 , - 18 , - 1321 , - 1112 , - 735 , - 190 , - 821 , - 1284 , - 235 , - 362 , - 321 , - 112 , - 1079 , - 534 , - 1165 , - 284 , - 579 , - 706 , - 665 , - 456 , - 79 , - 878 , - 165 , - 628 , - 923 , - 1050 , - 1009 , - 800 , - 423 , - 1222 , - 509 , - 972 , - 1267 , - 50 , - 9 , - 1144 , - 767 , - 222 , - 853 , - 1316 , - 267 , - 394 , - 353 , - 144 , - 1111 , - 566 , - 1197 , - 316 , - 611 , - 738 , - 697 , - 488 , - 111 , - 910 , - 197 , - 660 , - 955 , - 1082 , - 1041 , - 832 , - 455 , - 1254 , - 541 , - 1004 , - 1299 , - 82 , - 41 , - 1176 , - 799 , - 254 , - 885 , - 4 , - 299 , - 426 , - 385 , - 176 , - 1143 , - 598 , - 1229 , - 348 , - 643 , - 770 , - 729 , - 520 , - 143 , - 942 , - 229 , - 692 , - 987 , - 1114 , - 1073 , - 864 , - 487 , - 1286 , - 573 , - 1036 , - 1331 , - 114 , - 73 , - 1208 , - 831 , - 286 , - 917 , - 36 , - 331 , - 458 , - 417 , - 208 , - 1175 , - 630 , - 1261 , - 380 , - 675 , - 802 , - 761 , - 552 , - 175 , - 974 , - 261 , - 724 , - 1019 , - 1146 , - 1105 , - 896 , - 519 , - 1318 , - 605 , - 1068 , - 19 , - 146 , - 105 , - 1240 , - 863 , - 318 , - 949 , - 68 , - 363 , - 490 , - 449 , - 240 , - 1207 , - 662 , - 1293 , - 412 , - 707 , - 834 , - 793 , - 584 , - 207 , - 1006 , - 293 , - 756 , - 1051 , - 1178 , - 1137 , - 928 , - 551 , - 6 , - 637 , - 1100 , - 51 , - 178 , - 137 , - 1272 , - 895 , - 350 , - 981 , - 100 , - 395 , - 522 , - 481 , - 272 , - 1239 , - 694 , - 1325 , - 444 , - 739 , - 866 , - 825 , - 616 , - 239 , - 1038 , - 325 , - 788 , - 1083 , - 1210 , - 1169 , - 960 , - 583 , - 38 , - 669 , - 1132 , - 83 , - 210 , - 169 , - 1304 , - 927 , - 382 , - 1013 , - 132 , - 427 , - 554 , - 513 , - 304 , - 1271 , - 726 , - 13 , - 476 , - 771 , - 898 , - 857 , - 648 , - 271 , - 1070 , - 357 , - 820 , - 1115 , - 1242 , - 1201 , - 992 , - 615 , - 70 , - 701 , - 1164 , - 115 , - 242 , - 201 , - 1336 , - 959 , - 414 , - 1045 , - 164 , - 459 , - 586 , - 545 , - 336 , - 1303 , - 758 , - 45 , - 508 , - 803 , - 930 , - 889 , - 680 , - 303 , - 1102 , - 389 , - 852 , - 1147 , - 1274 , - 1233 , - 1024 , - 647 , - 102 , - 733 , - 1196 , - 147 , - 274 , - 233 , - 24 , - 991 , - 446 , - 1077 , - 196 , - 491 , - 618 , - 577 , - 368 , - 1335 , - 790 , - 77 , - 540 , - 835 , - 962 , - 921 , - 712 , - 335 , - 1134 , - 421 , - 884 , - 1179 , - 1306 , - 1265 , - 1056 , - 679 , - 134 , - 765 , - 1228 , - 179 , - 306 , - 265 , - 56 , - 1023 , - 478 , - 1109 , - 228 , - 523 , - 650 , - 609 , - 400 , - 23 , - 822 , - 109 , - 572 , - 867 , - 994 , - 953 , - 744 , - 367 , - 1166 , - 453 , - 916 , - 1211 , - 1338 , - 1297 , - 1088 , - 711 , - 166 , - 797 , - 1260 , - 211 , - 338 , - 297 , - 88 , - 1055 , - 510 , - 1141 , - 260 , - 555 , - 682 , - 641 , - 432 , - 55 , - 854 , - 141 , - 604 , - 899 , - 1026 , - 985 , - 776 , - 399 , - 1198 , - 485 , - 948 , - 1243 , - 26 , - 1329 , - 1120 , - 743 , - 198 , - 829 , - 1292 , - 243 , - 370 , - 329 , - 120 , - 1087 , - 542 , - 1173 , - 292 , - 587 , - 714 , - 673 , - 464 , - 87 , - 886 , - 173 , - 636 , - 931 , - 1058 , - 1017 , - 808 , - 431 , - 1230 , - 517 , - 980 , - 1275 , - 58 , - 17 , - 1152 , - 775 , - 230 , - 861 , - 1324 , - 275 , - 402 , - 361 , - 152 , - 1119 , - 574 , - 1205 , - 324 , - 619 , - 746 , - 705 , - 496 , - 119 , - 918 , - 205 , - 668 , - 963 , - 1090 , - 1049 , - 840 , - 463 , - 1262 , - 549 , - 1012 , - 1307 , - 90 , - 49 , - 1184 , - 807 , - 262 , - 893 , - 12 , - 307 , - 434 , - 393 , - 184 , - 1151 , - 606 , - 1237 , - 356 , - 651 , - 778 , - 737 , - 528 , - 151 , - 950 , - 237 , - 700 , - 995 , - 1122 , - 1081 , - 872 , - 495 , - 1294 , - 581 , - 1044 , - 1339 , - 122 , - 81 , - 1216 , - 839 , - 294 , - 925 , - 44 , - 339 , - 466 , - 425 , - 216 , - 1183 , - 638 , - 1269 , - 388 , - 683 , - 810 , - 769 , - 560 , - 183 , - 982 , - 269 , - 732 , - 1027 , - 1154 , - 1113 , - 904 , - 527 , - 1326 , - 613 , - 1076 , - 27 , - 154 , - 113 , - 1248 , - 871 , - 326 , - 957 , - 76 , - 371 , - 498 , - 457 , - 248 , - 1215 , - 670 , - 1301 , - 420 , - 715 , - 842 , - 801 , - 592 , - 215 , - 1014 , - 301 , - 764 , - 1059 , - 1186 , - 1145 , - 936 , - 559 , - 14 , - 645 , - 1108 , - 59 , - 186 , - 145 , - 1280 , - 903 , - 358 , - 989 , - 108 , - 403 , - 530 , - 489 , - 280 , - 1247 , - 702 , - 1333 , - 452 , - 747 , - 874 , - 833 , - 624 , - 247 , - 1046 , - 333 , - 796 , - 1091 , - 1218 , - 1177 , - 968 , - 591 , - 46 , - 677 , - 1140 , - 91 , - 218 , - 177 , - 1312 , - 935 , - 390 , - 1021 , - 140 , - 435 , - 562 , - 521 , - 312 , - 1279 , - 734 , - 21 , - 484 , - 779 , - 906 , - 865 , - 656 , - 279 , - 1078 , - 365 , - 828 , - 1123 , - 1250 , - 1209 , - 1000 , - 623 , - 78 , - 709 , - 1172 , - 123 , - 250 , - 209 , - 0 , - 127 , - 770 , - 1241 , - 852 , - 291 , - 246 , - 29 , - 328 , - 455 , - 1098 , - 193 , - 1180 , - 619 , - 574 , - 357 , - 656 , - 783 , - 50 , - 521 , - 132 , - 947 , - 902 , - 685 , - 984 , - 1111 , - 378 , - 849 , - 460 , - 1275 , - 1230 , - 1013 , - 1312 , - 63 , - 706 , - 1177 , - 788 , - 227 , - 182 , - 1341 , - 264 , - 391 , - 1034 , - 129 , - 1116 , - 555 , - 510 , - 293 , - 592 , - 719 , - 1362 , - 457 , - 68 , - 883 , - 838 , - 621 , - 920 , - 1047 , - 314 , - 785 , - 396 , - 1211 , - 1166 , - 949 , - 1248 , - 1375 , - 642 , - 1113 , - 724 , - 163 , - 118 , - 1277 , - 200 , - 327 , - 970 , - 65 , - 1052 , - 491 , - 446 , - 229 , - 528 , - 655 , - 1298 , - 393 , - 4 , - 819 , - 774 , - 557 , - 856 , - 983 , - 250 , - 721 , - 332 , - 1147 , - 1102 , - 885 , - 1184 , - 1311 , - 578 , - 1049 , - 660 , - 99 , - 54 , - 1213 , - 136 , - 263 , - 906 , - 1 , - 988 , - 427 , - 382 , - 165 , - 464 , - 591 , - 1234 , - 329 , - 1316 , - 755 , - 710 , - 493 , - 792 , - 919 , - 186 , - 657 , - 268 , - 1083 , - 1038 , - 821 , - 1120 , - 1247 , - 514 , - 985 , - 596 , - 35 , - 1366 , - 1149 , - 72 , - 199 , - 842 , - 1313 , - 924 , - 363 , - 318 , - 101 , - 400 , - 527 , - 1170 , - 265 , - 1252 , - 691 , - 646 , - 429 , - 728 , - 855 , - 122 , - 593 , - 204 , - 1019 , - 974 , - 757 , - 1056 , - 1183 , - 450 , - 921 , - 532 , - 1347 , - 1302 , - 1085 , - 8 , - 135 , - 778 , - 1249 , - 860 , - 299 , - 254 , - 37 , - 336 , - 463 , - 1106 , - 201 , - 1188 , - 627 , - 582 , - 365 , - 664 , - 791 , - 58 , - 529 , - 140 , - 955 , - 910 , - 693 , - 992 , - 1119 , - 386 , - 857 , - 468 , - 1283 , - 1238 , - 1021 , - 1320 , - 71 , - 714 , - 1185 , - 796 , - 235 , - 190 , - 1349 , - 272 , - 399 , - 1042 , - 137 , - 1124 , - 563 , - 518 , - 301 , - 600 , - 727 , - 1370 , - 465 , - 76 , - 891 , - 846 , - 629 , - 928 , - 1055 , - 322 , - 793 , - 404 , - 1219 , - 1174 , - 957 , - 1256 , - 7 , - 650 , - 1121 , - 732 , - 171 , - 126 , - 1285 , - 208 , - 335 , - 978 , - 73 , - 1060 , - 499 , - 454 , - 237 , - 536 , - 663 , - 1306 , - 401 , - 12 , - 827 , - 782 , - 565 , - 864 , - 991 , - 258 , - 729 , - 340 , - 1155 , - 1110 , - 893 , - 1192 , - 1319 , - 586 , - 1057 , - 668 , - 107 , - 62 , - 1221 , - 144 , - 271 , - 914 , - 9 , - 996 , - 435 , - 390 , - 173 , - 472 , - 599 , - 1242 , - 337 , - 1324 , - 763 , - 718 , - 501 , - 800 , - 927 , - 194 , - 665 , - 276 , - 1091 , - 1046 , - 829 , - 1128 , - 1255 , - 522 , - 993 , - 604 , - 43 , - 1374 , - 1157 , - 80 , - 207 , - 850 , - 1321 , - 932 , - 371 , - 326 , - 109 , - 408 , - 535 , - 1178 , - 273 , - 1260 , - 699 , - 654 , - 437 , - 736 , - 863 , - 130 , - 601 , - 212 , - 1027 , - 982 , - 765 , - 1064 , - 1191 , - 458 , - 929 , - 540 , - 1355 , - 1310 , - 1093 , - 16 , - 143 , - 786 , - 1257 , - 868 , - 307 , - 262 , - 45 , - 344 , - 471 , - 1114 , - 209 , - 1196 , - 635 , - 590 , - 373 , - 672 , - 799 , - 66 , - 537 , - 148 , - 963 , - 918 , - 701 , - 1000 , - 1127 , - 394 , - 865 , - 476 , - 1291 , - 1246 , - 1029 , - 1328 , - 79 , - 722 , - 1193 , - 804 , - 243 , - 198 , - 1357 , - 280 , - 407 , - 1050 , - 145 , - 1132 , - 571 , - 526 , - 309 , - 608 , - 735 , - 2 , - 473 , - 84 , - 899 , - 854 , - 637 , - 936 , - 1063 , - 330 , - 801 , - 412 , - 1227 , - 1182 , - 965 , - 1264 , - 15 , - 658 , - 1129 , - 740 , - 179 , - 134 , - 1293 , - 216 , - 343 , - 986 , - 81 , - 1068 , - 507 , - 462 , - 245 , - 544 , - 671 , - 1314 , - 409 , - 20 , - 835 , - 790 , - 573 , - 872 , - 999 , - 266 , - 737 , - 348 , - 1163 , - 1118 , - 901 , - 1200 , - 1327 , - 594 , - 1065 , - 676 , - 115 , - 70 , - 1229 , - 152 , - 279 , - 922 , - 17 , - 1004 , - 443 , - 398 , - 181 , - 480 , - 607 , - 1250 , - 345 , - 1332 , - 771 , - 726 , - 509 , - 808 , - 935 , - 202 , - 673 , - 284 , - 1099 , - 1054 , - 837 , - 1136 , - 1263 , - 530 , - 1001 , - 612 , - 51 , - 6 , - 1165 , - 88 , - 215 , - 858 , - 1329 , - 940 , - 379 , - 334 , - 117 , - 416 , - 543 , - 1186 , - 281 , - 1268 , - 707 , - 662 , - 445 , - 744 , - 871 , - 138 , - 609 , - 220 , - 1035 , - 990 , - 773 , - 1072 , - 1199 , - 466 , - 937 , - 548 , - 1363 , - 1318 , - 1101 , - 24 , - 151 , - 794 , - 1265 , - 876 , - 315 , - 270 , - 53 , - 352 , - 479 , - 1122 , - 217 , - 1204 , - 643 , - 598 , - 381 , - 680 , - 807 , - 74 , - 545 , - 156 , - 971 , - 926 , - 709 , - 1008 , - 1135 , - 402 , - 873 , - 484 , - 1299 , - 1254 , - 1037 , - 1336 , - 87 , - 730 , - 1201 , - 812 , - 251 , - 206 , - 1365 , - 288 , - 415 , - 1058 , - 153 , - 1140 , - 579 , - 534 , - 317 , - 616 , - 743 , - 10 , - 481 , - 92 , - 907 , - 862 , - 645 , - 944 , - 1071 , - 338 , - 809 , - 420 , - 1235 , - 1190 , - 973 , - 1272 , - 23 , - 666 , - 1137 , - 748 , - 187 , - 142 , - 1301 , - 224 , - 351 , - 994 , - 89 , - 1076 , - 515 , - 470 , - 253 , - 552 , - 679 , - 1322 , - 417 , - 28 , - 843 , - 798 , - 581 , - 880 , - 1007 , - 274 , - 745 , - 356 , - 1171 , - 1126 , - 909 , - 1208 , - 1335 , - 602 , - 1073 , - 684 , - 123 , - 78 , - 1237 , - 160 , - 287 , - 930 , - 25 , - 1012 , - 451 , - 406 , - 189 , - 488 , - 615 , - 1258 , - 353 , - 1340 , - 779 , - 734 , - 517 , - 816 , - 943 , - 210 , - 681 , - 292 , - 1107 , - 1062 , - 845 , - 1144 , - 1271 , - 538 , - 1009 , - 620 , - 59 , - 14 , - 1173 , - 96 , - 223 , - 866 , - 1337 , - 948 , - 387 , - 342 , - 125 , - 424 , - 551 , - 1194 , - 289 , - 1276 , - 715 , - 670 , - 453 , - 752 , - 879 , - 146 , - 617 , - 228 , - 1043 , - 998 , - 781 , - 1080 , - 1207 , - 474 , - 945 , - 556 , - 1371 , - 1326 , - 1109 , - 32 , - 159 , - 802 , - 1273 , - 884 , - 323 , - 278 , - 61 , - 360 , - 487 , - 1130 , - 225 , - 1212 , - 651 , - 606 , - 389 , - 688 , - 815 , - 82 , - 553 , - 164 , - 979 , - 934 , - 717 , - 1016 , - 1143 , - 410 , - 881 , - 492 , - 1307 , - 1262 , - 1045 , - 1344 , - 95 , - 738 , - 1209 , - 820 , - 259 , - 214 , - 1373 , - 296 , - 423 , - 1066 , - 161 , - 1148 , - 587 , - 542 , - 325 , - 624 , - 751 , - 18 , - 489 , - 100 , - 915 , - 870 , - 653 , - 952 , - 1079 , - 346 , - 817 , - 428 , - 1243 , - 1198 , - 981 , - 1280 , - 31 , - 674 , - 1145 , - 756 , - 195 , - 150 , - 1309 , - 232 , - 359 , - 1002 , - 97 , - 1084 , - 523 , - 478 , - 261 , - 560 , - 687 , - 1330 , - 425 , - 36 , - 851 , - 806 , - 589 , - 888 , - 1015 , - 282 , - 753 , - 364 , - 1179 , - 1134 , - 917 , - 1216 , - 1343 , - 610 , - 1081 , - 692 , - 131 , - 86 , - 1245 , - 168 , - 295 , - 938 , - 33 , - 1020 , - 459 , - 414 , - 197 , - 496 , - 623 , - 1266 , - 361 , - 1348 , - 787 , - 742 , - 525 , - 824 , - 951 , - 218 , - 689 , - 300 , - 1115 , - 1070 , - 853 , - 1152 , - 1279 , - 546 , - 1017 , - 628 , - 67 , - 22 , - 1181 , - 104 , - 231 , - 874 , - 1345 , - 956 , - 395 , - 350 , - 133 , - 432 , - 559 , - 1202 , - 297 , - 1284 , - 723 , - 678 , - 461 , - 760 , - 887 , - 154 , - 625 , - 236 , - 1051 , - 1006 , - 789 , - 1088 , - 1215 , - 482 , - 953 , - 564 , - 3 , - 1334 , - 1117 , - 40 , - 167 , - 810 , - 1281 , - 892 , - 331 , - 286 , - 69 , - 368 , - 495 , - 1138 , - 233 , - 1220 , - 659 , - 614 , - 397 , - 696 , - 823 , - 90 , - 561 , - 172 , - 987 , - 942 , - 725 , - 1024 , - 1151 , - 418 , - 889 , - 500 , - 1315 , - 1270 , - 1053 , - 1352 , - 103 , - 746 , - 1217 , - 828 , - 267 , - 222 , - 5 , - 304 , - 431 , - 1074 , - 169 , - 1156 , - 595 , - 550 , - 333 , - 632 , - 759 , - 26 , - 497 , - 108 , - 923 , - 878 , - 661 , - 960 , - 1087 , - 354 , - 825 , - 436 , - 1251 , - 1206 , - 989 , - 1288 , - 39 , - 682 , - 1153 , - 764 , - 203 , - 158 , - 1317 , - 240 , - 367 , - 1010 , - 105 , - 1092 , - 531 , - 486 , - 269 , - 568 , - 695 , - 1338 , - 433 , - 44 , - 859 , - 814 , - 597 , - 896 , - 1023 , - 290 , - 761 , - 372 , - 1187 , - 1142 , - 925 , - 1224 , - 1351 , - 618 , - 1089 , - 700 , - 139 , - 94 , - 1253 , - 176 , - 303 , - 946 , - 41 , - 1028 , - 467 , - 422 , - 205 , - 504 , - 631 , - 1274 , - 369 , - 1356 , - 795 , - 750 , - 533 , - 832 , - 959 , - 226 , - 697 , - 308 , - 1123 , - 1078 , - 861 , - 1160 , - 1287 , - 554 , - 1025 , - 636 , - 75 , - 30 , - 1189 , - 112 , - 239 , - 882 , - 1353 , - 964 , - 403 , - 358 , - 141 , - 440 , - 567 , - 1210 , - 305 , - 1292 , - 731 , - 686 , - 469 , - 768 , - 895 , - 162 , - 633 , - 244 , - 1059 , - 1014 , - 797 , - 1096 , - 1223 , - 490 , - 961 , - 572 , - 11 , - 1342 , - 1125 , - 48 , - 175 , - 818 , - 1289 , - 900 , - 339 , - 294 , - 77 , - 376 , - 503 , - 1146 , - 241 , - 1228 , - 667 , - 622 , - 405 , - 704 , - 831 , - 98 , - 569 , - 180 , - 995 , - 950 , - 733 , - 1032 , - 1159 , - 426 , - 897 , - 508 , - 1323 , - 1278 , - 1061 , - 1360 , - 111 , - 754 , - 1225 , - 836 , - 275 , - 230 , - 13 , - 312 , - 439 , - 1082 , - 177 , - 1164 , - 603 , - 558 , - 341 , - 640 , - 767 , - 34 , - 505 , - 116 , - 931 , - 886 , - 669 , - 968 , - 1095 , - 362 , - 833 , - 444 , - 1259 , - 1214 , - 997 , - 1296 , - 47 , - 690 , - 1161 , - 772 , - 211 , - 166 , - 1325 , - 248 , - 375 , - 1018 , - 113 , - 1100 , - 539 , - 494 , - 277 , - 576 , - 703 , - 1346 , - 441 , - 52 , - 867 , - 822 , - 605 , - 904 , - 1031 , - 298 , - 769 , - 380 , - 1195 , - 1150 , - 933 , - 1232 , - 1359 , - 626 , - 1097 , - 708 , - 147 , - 102 , - 1261 , - 184 , - 311 , - 954 , - 49 , - 1036 , - 475 , - 430 , - 213 , - 512 , - 639 , - 1282 , - 377 , - 1364 , - 803 , - 758 , - 541 , - 840 , - 967 , - 234 , - 705 , - 316 , - 1131 , - 1086 , - 869 , - 1168 , - 1295 , - 562 , - 1033 , - 644 , - 83 , - 38 , - 1197 , - 120 , - 247 , - 890 , - 1361 , - 972 , - 411 , - 366 , - 149 , - 448 , - 575 , - 1218 , - 313 , - 1300 , - 739 , - 694 , - 477 , - 776 , - 903 , - 170 , - 641 , - 252 , - 1067 , - 1022 , - 805 , - 1104 , - 1231 , - 498 , - 969 , - 580 , - 19 , - 1350 , - 1133 , - 56 , - 183 , - 826 , - 1297 , - 908 , - 347 , - 302 , - 85 , - 384 , - 511 , - 1154 , - 249 , - 1236 , - 675 , - 630 , - 413 , - 712 , - 839 , - 106 , - 577 , - 188 , - 1003 , - 958 , - 741 , - 1040 , - 1167 , - 434 , - 905 , - 516 , - 1331 , - 1286 , - 1069 , - 1368 , - 119 , - 762 , - 1233 , - 844 , - 283 , - 238 , - 21 , - 320 , - 447 , - 1090 , - 185 , - 1172 , - 611 , - 566 , - 349 , - 648 , - 775 , - 42 , - 513 , - 124 , - 939 , - 894 , - 677 , - 976 , - 1103 , - 370 , - 841 , - 452 , - 1267 , - 1222 , - 1005 , - 1304 , - 55 , - 698 , - 1169 , - 780 , - 219 , - 174 , - 1333 , - 256 , - 383 , - 1026 , - 121 , - 1108 , - 547 , - 502 , - 285 , - 584 , - 711 , - 1354 , - 449 , - 60 , - 875 , - 830 , - 613 , - 912 , - 1039 , - 306 , - 777 , - 388 , - 1203 , - 1158 , - 941 , - 1240 , - 1367 , - 634 , - 1105 , - 716 , - 155 , - 110 , - 1269 , - 192 , - 319 , - 962 , - 57 , - 1044 , - 483 , - 438 , - 221 , - 520 , - 647 , - 1290 , - 385 , - 1372 , - 811 , - 766 , - 549 , - 848 , - 975 , - 242 , - 713 , - 324 , - 1139 , - 1094 , - 877 , - 1176 , - 1303 , - 570 , - 1041 , - 652 , - 91 , - 46 , - 1205 , - 128 , - 255 , - 898 , - 1369 , - 980 , - 419 , - 374 , - 157 , - 456 , - 583 , - 1226 , - 321 , - 1308 , - 747 , - 702 , - 485 , - 784 , - 911 , - 178 , - 649 , - 260 , - 1075 , - 1030 , - 813 , - 1112 , - 1239 , - 506 , - 977 , - 588 , - 27 , - 1358 , - 1141 , - 64 , - 191 , - 834 , - 1305 , - 916 , - 355 , - 310 , - 93 , - 392 , - 519 , - 1162 , - 257 , - 1244 , - 683 , - 638 , - 421 , - 720 , - 847 , - 114 , - 585 , - 196 , - 1011 , - 966 , - 749 , - 1048 , - 1175 , - 442 , - 913 , - 524 , - 1339 , - 1294 , - 1077 , - 0 , - 571 , - 614 , - 129 , - 524 , - 391 , - 1138 , - 1357 , - 1048 , - 211 , - 254 , - 1177 , - 164 , - 31 , - 778 , - 997 , - 688 , - 1259 , - 1302 , - 817 , - 1212 , - 1079 , - 418 , - 637 , - 328 , - 899 , - 942 , - 457 , - 852 , - 719 , - 58 , - 277 , - 1376 , - 539 , - 582 , - 97 , - 492 , - 359 , - 1106 , - 1325 , - 1016 , - 179 , - 222 , - 1145 , - 132 , - 1407 , - 746 , - 965 , - 656 , - 1227 , - 1270 , - 785 , - 1180 , - 1047 , - 386 , - 605 , - 296 , - 867 , - 910 , - 425 , - 820 , - 687 , - 26 , - 245 , - 1344 , - 507 , - 550 , - 65 , - 460 , - 327 , - 1074 , - 1293 , - 984 , - 147 , - 190 , - 1113 , - 100 , - 1375 , - 714 , - 933 , - 624 , - 1195 , - 1238 , - 753 , - 1148 , - 1015 , - 354 , - 573 , - 264 , - 835 , - 878 , - 393 , - 788 , - 655 , - 1402 , - 213 , - 1312 , - 475 , - 518 , - 33 , - 428 , - 295 , - 1042 , - 1261 , - 952 , - 115 , - 158 , - 1081 , - 68 , - 1343 , - 682 , - 901 , - 592 , - 1163 , - 1206 , - 721 , - 1116 , - 983 , - 322 , - 541 , - 232 , - 803 , - 846 , - 361 , - 756 , - 623 , - 1370 , - 181 , - 1280 , - 443 , - 486 , - 1 , - 396 , - 263 , - 1010 , - 1229 , - 920 , - 83 , - 126 , - 1049 , - 36 , - 1311 , - 650 , - 869 , - 560 , - 1131 , - 1174 , - 689 , - 1084 , - 951 , - 290 , - 509 , - 200 , - 771 , - 814 , - 329 , - 724 , - 591 , - 1338 , - 149 , - 1248 , - 411 , - 454 , - 1377 , - 364 , - 231 , - 978 , - 1197 , - 888 , - 51 , - 94 , - 1017 , - 4 , - 1279 , - 618 , - 837 , - 528 , - 1099 , - 1142 , - 657 , - 1052 , - 919 , - 258 , - 477 , - 168 , - 739 , - 782 , - 297 , - 692 , - 559 , - 1306 , - 117 , - 1216 , - 379 , - 422 , - 1345 , - 332 , - 199 , - 946 , - 1165 , - 856 , - 19 , - 62 , - 985 , - 1380 , - 1247 , - 586 , - 805 , - 496 , - 1067 , - 1110 , - 625 , - 1020 , - 887 , - 226 , - 445 , - 136 , - 707 , - 750 , - 265 , - 660 , - 527 , - 1274 , - 85 , - 1184 , - 347 , - 390 , - 1313 , - 300 , - 167 , - 914 , - 1133 , - 824 , - 1395 , - 30 , - 953 , - 1348 , - 1215 , - 554 , - 773 , - 464 , - 1035 , - 1078 , - 593 , - 988 , - 855 , - 194 , - 413 , - 104 , - 675 , - 718 , - 233 , - 628 , - 495 , - 1242 , - 53 , - 1152 , - 315 , - 358 , - 1281 , - 268 , - 135 , - 882 , - 1101 , - 792 , - 1363 , - 1406 , - 921 , - 1316 , - 1183 , - 522 , - 741 , - 432 , - 1003 , - 1046 , - 561 , - 956 , - 823 , - 162 , - 381 , - 72 , - 643 , - 686 , - 201 , - 596 , - 463 , - 1210 , - 21 , - 1120 , - 283 , - 326 , - 1249 , - 236 , - 103 , - 850 , - 1069 , - 760 , - 1331 , - 1374 , - 889 , - 1284 , - 1151 , - 490 , - 709 , - 400 , - 971 , - 1014 , - 529 , - 924 , - 791 , - 130 , - 349 , - 40 , - 611 , - 654 , - 169 , - 564 , - 431 , - 1178 , - 1397 , - 1088 , - 251 , - 294 , - 1217 , - 204 , - 71 , - 818 , - 1037 , - 728 , - 1299 , - 1342 , - 857 , - 1252 , - 1119 , - 458 , - 677 , - 368 , - 939 , - 982 , - 497 , - 892 , - 759 , - 98 , - 317 , - 8 , - 579 , - 622 , - 137 , - 532 , - 399 , - 1146 , - 1365 , - 1056 , - 219 , - 262 , - 1185 , - 172 , - 39 , - 786 , - 1005 , - 696 , - 1267 , - 1310 , - 825 , - 1220 , - 1087 , - 426 , - 645 , - 336 , - 907 , - 950 , - 465 , - 860 , - 727 , - 66 , - 285 , - 1384 , - 547 , - 590 , - 105 , - 500 , - 367 , - 1114 , - 1333 , - 1024 , - 187 , - 230 , - 1153 , - 140 , - 7 , - 754 , - 973 , - 664 , - 1235 , - 1278 , - 793 , - 1188 , - 1055 , - 394 , - 613 , - 304 , - 875 , - 918 , - 433 , - 828 , - 695 , - 34 , - 253 , - 1352 , - 515 , - 558 , - 73 , - 468 , - 335 , - 1082 , - 1301 , - 992 , - 155 , - 198 , - 1121 , - 108 , - 1383 , - 722 , - 941 , - 632 , - 1203 , - 1246 , - 761 , - 1156 , - 1023 , - 362 , - 581 , - 272 , - 843 , - 886 , - 401 , - 796 , - 663 , - 2 , - 221 , - 1320 , - 483 , - 526 , - 41 , - 436 , - 303 , - 1050 , - 1269 , - 960 , - 123 , - 166 , - 1089 , - 76 , - 1351 , - 690 , - 909 , - 600 , - 1171 , - 1214 , - 729 , - 1124 , - 991 , - 330 , - 549 , - 240 , - 811 , - 854 , - 369 , - 764 , - 631 , - 1378 , - 189 , - 1288 , - 451 , - 494 , - 9 , - 404 , - 271 , - 1018 , - 1237 , - 928 , - 91 , - 134 , - 1057 , - 44 , - 1319 , - 658 , - 877 , - 568 , - 1139 , - 1182 , - 697 , - 1092 , - 959 , - 298 , - 517 , - 208 , - 779 , - 822 , - 337 , - 732 , - 599 , - 1346 , - 157 , - 1256 , - 419 , - 462 , - 1385 , - 372 , - 239 , - 986 , - 1205 , - 896 , - 59 , - 102 , - 1025 , - 12 , - 1287 , - 626 , - 845 , - 536 , - 1107 , - 1150 , - 665 , - 1060 , - 927 , - 266 , - 485 , - 176 , - 747 , - 790 , - 305 , - 700 , - 567 , - 1314 , - 125 , - 1224 , - 387 , - 430 , - 1353 , - 340 , - 207 , - 954 , - 1173 , - 864 , - 27 , - 70 , - 993 , - 1388 , - 1255 , - 594 , - 813 , - 504 , - 1075 , - 1118 , - 633 , - 1028 , - 895 , - 234 , - 453 , - 144 , - 715 , - 758 , - 273 , - 668 , - 535 , - 1282 , - 93 , - 1192 , - 355 , - 398 , - 1321 , - 308 , - 175 , - 922 , - 1141 , - 832 , - 1403 , - 38 , - 961 , - 1356 , - 1223 , - 562 , - 781 , - 472 , - 1043 , - 1086 , - 601 , - 996 , - 863 , - 202 , - 421 , - 112 , - 683 , - 726 , - 241 , - 636 , - 503 , - 1250 , - 61 , - 1160 , - 323 , - 366 , - 1289 , - 276 , - 143 , - 890 , - 1109 , - 800 , - 1371 , - 6 , - 929 , - 1324 , - 1191 , - 530 , - 749 , - 440 , - 1011 , - 1054 , - 569 , - 964 , - 831 , - 170 , - 389 , - 80 , - 651 , - 694 , - 209 , - 604 , - 471 , - 1218 , - 29 , - 1128 , - 291 , - 334 , - 1257 , - 244 , - 111 , - 858 , - 1077 , - 768 , - 1339 , - 1382 , - 897 , - 1292 , - 1159 , - 498 , - 717 , - 408 , - 979 , - 1022 , - 537 , - 932 , - 799 , - 138 , - 357 , - 48 , - 619 , - 662 , - 177 , - 572 , - 439 , - 1186 , - 1405 , - 1096 , - 259 , - 302 , - 1225 , - 212 , - 79 , - 826 , - 1045 , - 736 , - 1307 , - 1350 , - 865 , - 1260 , - 1127 , - 466 , - 685 , - 376 , - 947 , - 990 , - 505 , - 900 , - 767 , - 106 , - 325 , - 16 , - 587 , - 630 , - 145 , - 540 , - 407 , - 1154 , - 1373 , - 1064 , - 227 , - 270 , - 1193 , - 180 , - 47 , - 794 , - 1013 , - 704 , - 1275 , - 1318 , - 833 , - 1228 , - 1095 , - 434 , - 653 , - 344 , - 915 , - 958 , - 473 , - 868 , - 735 , - 74 , - 293 , - 1392 , - 555 , - 598 , - 113 , - 508 , - 375 , - 1122 , - 1341 , - 1032 , - 195 , - 238 , - 1161 , - 148 , - 15 , - 762 , - 981 , - 672 , - 1243 , - 1286 , - 801 , - 1196 , - 1063 , - 402 , - 621 , - 312 , - 883 , - 926 , - 441 , - 836 , - 703 , - 42 , - 261 , - 1360 , - 523 , - 566 , - 81 , - 476 , - 343 , - 1090 , - 1309 , - 1000 , - 163 , - 206 , - 1129 , - 116 , - 1391 , - 730 , - 949 , - 640 , - 1211 , - 1254 , - 769 , - 1164 , - 1031 , - 370 , - 589 , - 280 , - 851 , - 894 , - 409 , - 804 , - 671 , - 10 , - 229 , - 1328 , - 491 , - 534 , - 49 , - 444 , - 311 , - 1058 , - 1277 , - 968 , - 131 , - 174 , - 1097 , - 84 , - 1359 , - 698 , - 917 , - 608 , - 1179 , - 1222 , - 737 , - 1132 , - 999 , - 338 , - 557 , - 248 , - 819 , - 862 , - 377 , - 772 , - 639 , - 1386 , - 197 , - 1296 , - 459 , - 502 , - 17 , - 412 , - 279 , - 1026 , - 1245 , - 936 , - 99 , - 142 , - 1065 , - 52 , - 1327 , - 666 , - 885 , - 576 , - 1147 , - 1190 , - 705 , - 1100 , - 967 , - 306 , - 525 , - 216 , - 787 , - 830 , - 345 , - 740 , - 607 , - 1354 , - 165 , - 1264 , - 427 , - 470 , - 1393 , - 380 , - 247 , - 994 , - 1213 , - 904 , - 67 , - 110 , - 1033 , - 20 , - 1295 , - 634 , - 853 , - 544 , - 1115 , - 1158 , - 673 , - 1068 , - 935 , - 274 , - 493 , - 184 , - 755 , - 798 , - 313 , - 708 , - 575 , - 1322 , - 133 , - 1232 , - 395 , - 438 , - 1361 , - 348 , - 215 , - 962 , - 1181 , - 872 , - 35 , - 78 , - 1001 , - 1396 , - 1263 , - 602 , - 821 , - 512 , - 1083 , - 1126 , - 641 , - 1036 , - 903 , - 242 , - 461 , - 152 , - 723 , - 766 , - 281 , - 676 , - 543 , - 1290 , - 101 , - 1200 , - 363 , - 406 , - 1329 , - 316 , - 183 , - 930 , - 1149 , - 840 , - 3 , - 46 , - 969 , - 1364 , - 1231 , - 570 , - 789 , - 480 , - 1051 , - 1094 , - 609 , - 1004 , - 871 , - 210 , - 429 , - 120 , - 691 , - 734 , - 249 , - 644 , - 511 , - 1258 , - 69 , - 1168 , - 331 , - 374 , - 1297 , - 284 , - 151 , - 898 , - 1117 , - 808 , - 1379 , - 14 , - 937 , - 1332 , - 1199 , - 538 , - 757 , - 448 , - 1019 , - 1062 , - 577 , - 972 , - 839 , - 178 , - 397 , - 88 , - 659 , - 702 , - 217 , - 612 , - 479 , - 1226 , - 37 , - 1136 , - 299 , - 342 , - 1265 , - 252 , - 119 , - 866 , - 1085 , - 776 , - 1347 , - 1390 , - 905 , - 1300 , - 1167 , - 506 , - 725 , - 416 , - 987 , - 1030 , - 545 , - 940 , - 807 , - 146 , - 365 , - 56 , - 627 , - 670 , - 185 , - 580 , - 447 , - 1194 , - 5 , - 1104 , - 267 , - 310 , - 1233 , - 220 , - 87 , - 834 , - 1053 , - 744 , - 1315 , - 1358 , - 873 , - 1268 , - 1135 , - 474 , - 693 , - 384 , - 955 , - 998 , - 513 , - 908 , - 775 , - 114 , - 333 , - 24 , - 595 , - 638 , - 153 , - 548 , - 415 , - 1162 , - 1381 , - 1072 , - 235 , - 278 , - 1201 , - 188 , - 55 , - 802 , - 1021 , - 712 , - 1283 , - 1326 , - 841 , - 1236 , - 1103 , - 442 , - 661 , - 352 , - 923 , - 966 , - 481 , - 876 , - 743 , - 82 , - 301 , - 1400 , - 563 , - 606 , - 121 , - 516 , - 383 , - 1130 , - 1349 , - 1040 , - 203 , - 246 , - 1169 , - 156 , - 23 , - 770 , - 989 , - 680 , - 1251 , - 1294 , - 809 , - 1204 , - 1071 , - 410 , - 629 , - 320 , - 891 , - 934 , - 449 , - 844 , - 711 , - 50 , - 269 , - 1368 , - 531 , - 574 , - 89 , - 484 , - 351 , - 1098 , - 1317 , - 1008 , - 171 , - 214 , - 1137 , - 124 , - 1399 , - 738 , - 957 , - 648 , - 1219 , - 1262 , - 777 , - 1172 , - 1039 , - 378 , - 597 , - 288 , - 859 , - 902 , - 417 , - 812 , - 679 , - 18 , - 237 , - 1336 , - 499 , - 542 , - 57 , - 452 , - 319 , - 1066 , - 1285 , - 976 , - 139 , - 182 , - 1105 , - 92 , - 1367 , - 706 , - 925 , - 616 , - 1187 , - 1230 , - 745 , - 1140 , - 1007 , - 346 , - 565 , - 256 , - 827 , - 870 , - 385 , - 780 , - 647 , - 1394 , - 205 , - 1304 , - 467 , - 510 , - 25 , - 420 , - 287 , - 1034 , - 1253 , - 944 , - 107 , - 150 , - 1073 , - 60 , - 1335 , - 674 , - 893 , - 584 , - 1155 , - 1198 , - 713 , - 1108 , - 975 , - 314 , - 533 , - 224 , - 795 , - 838 , - 353 , - 748 , - 615 , - 1362 , - 173 , - 1272 , - 435 , - 478 , - 1401 , - 388 , - 255 , - 1002 , - 1221 , - 912 , - 75 , - 118 , - 1041 , - 28 , - 1303 , - 642 , - 861 , - 552 , - 1123 , - 1166 , - 681 , - 1076 , - 943 , - 282 , - 501 , - 192 , - 763 , - 806 , - 321 , - 716 , - 583 , - 1330 , - 141 , - 1240 , - 403 , - 446 , - 1369 , - 356 , - 223 , - 970 , - 1189 , - 880 , - 43 , - 86 , - 1009 , - 1404 , - 1271 , - 610 , - 829 , - 520 , - 1091 , - 1134 , - 649 , - 1044 , - 911 , - 250 , - 469 , - 160 , - 731 , - 774 , - 289 , - 684 , - 551 , - 1298 , - 109 , - 1208 , - 371 , - 414 , - 1337 , - 324 , - 191 , - 938 , - 1157 , - 848 , - 11 , - 54 , - 977 , - 1372 , - 1239 , - 578 , - 797 , - 488 , - 1059 , - 1102 , - 617 , - 1012 , - 879 , - 218 , - 437 , - 128 , - 699 , - 742 , - 257 , - 652 , - 519 , - 1266 , - 77 , - 1176 , - 339 , - 382 , - 1305 , - 292 , - 159 , - 906 , - 1125 , - 816 , - 1387 , - 22 , - 945 , - 1340 , - 1207 , - 546 , - 765 , - 456 , - 1027 , - 1070 , - 585 , - 980 , - 847 , - 186 , - 405 , - 96 , - 667 , - 710 , - 225 , - 620 , - 487 , - 1234 , - 45 , - 1144 , - 307 , - 350 , - 1273 , - 260 , - 127 , - 874 , - 1093 , - 784 , - 1355 , - 1398 , - 913 , - 1308 , - 1175 , - 514 , - 733 , - 424 , - 995 , - 1038 , - 553 , - 948 , - 815 , - 154 , - 373 , - 64 , - 635 , - 678 , - 193 , - 588 , - 455 , - 1202 , - 13 , - 1112 , - 275 , - 318 , - 1241 , - 228 , - 95 , - 842 , - 1061 , - 752 , - 1323 , - 1366 , - 881 , - 1276 , - 1143 , - 482 , - 701 , - 392 , - 963 , - 1006 , - 521 , - 916 , - 783 , - 122 , - 341 , - 32 , - 603 , - 646 , - 161 , - 556 , - 423 , - 1170 , - 1389 , - 1080 , - 243 , - 286 , - 1209 , - 196 , - 63 , - 810 , - 1029 , - 720 , - 1291 , - 1334 , - 849 , - 1244 , - 1111 , - 450 , - 669 , - 360 , - 931 , - 974 , - 489 , - 884 , - 751 , - 90 , - 309 , - 0 , - 1169 , - 298 , - 267 , - 1076 , - 1285 , - 894 , - 1343 , - 1192 , - 441 , - 530 , - 19 , - 348 , - 77 , - 646 , - 615 , - 1424 , - 193 , - 1242 , - 251 , - 100 , - 789 , - 878 , - 367 , - 696 , - 425 , - 994 , - 963 , - 332 , - 541 , - 150 , - 599 , - 448 , - 1137 , - 1226 , - 715 , - 1044 , - 773 , - 1342 , - 1311 , - 680 , - 889 , - 498 , - 947 , - 796 , - 45 , - 134 , - 1063 , - 1392 , - 1121 , - 250 , - 219 , - 1028 , - 1237 , - 846 , - 1295 , - 1144 , - 393 , - 482 , - 1411 , - 300 , - 29 , - 598 , - 567 , - 1376 , - 145 , - 1194 , - 203 , - 52 , - 741 , - 830 , - 319 , - 648 , - 377 , - 946 , - 915 , - 284 , - 493 , - 102 , - 551 , - 400 , - 1089 , - 1178 , - 667 , - 996 , - 725 , - 1294 , - 1263 , - 632 , - 841 , - 450 , - 899 , - 748 , - 1437 , - 86 , - 1015 , - 1344 , - 1073 , - 202 , - 171 , - 980 , - 1189 , - 798 , - 1247 , - 1096 , - 345 , - 434 , - 1363 , - 252 , - 1421 , - 550 , - 519 , - 1328 , - 97 , - 1146 , - 155 , - 4 , - 693 , - 782 , - 271 , - 600 , - 329 , - 898 , - 867 , - 236 , - 445 , - 54 , - 503 , - 352 , - 1041 , - 1130 , - 619 , - 948 , - 677 , - 1246 , - 1215 , - 584 , - 793 , - 402 , - 851 , - 700 , - 1389 , - 38 , - 967 , - 1296 , - 1025 , - 154 , - 123 , - 932 , - 1141 , - 750 , - 1199 , - 1048 , - 297 , - 386 , - 1315 , - 204 , - 1373 , - 502 , - 471 , - 1280 , - 49 , - 1098 , - 107 , - 1396 , - 645 , - 734 , - 223 , - 552 , - 281 , - 850 , - 819 , - 188 , - 397 , - 6 , - 455 , - 304 , - 993 , - 1082 , - 571 , - 900 , - 629 , - 1198 , - 1167 , - 536 , - 745 , - 354 , - 803 , - 652 , - 1341 , - 1430 , - 919 , - 1248 , - 977 , - 106 , - 75 , - 884 , - 1093 , - 702 , - 1151 , - 1000 , - 249 , - 338 , - 1267 , - 156 , - 1325 , - 454 , - 423 , - 1232 , - 1 , - 1050 , - 59 , - 1348 , - 597 , - 686 , - 175 , - 504 , - 233 , - 802 , - 771 , - 140 , - 349 , - 1398 , - 407 , - 256 , - 945 , - 1034 , - 523 , - 852 , - 581 , - 1150 , - 1119 , - 488 , - 697 , - 306 , - 755 , - 604 , - 1293 , - 1382 , - 871 , - 1200 , - 929 , - 58 , - 27 , - 836 , - 1045 , - 654 , - 1103 , - 952 , - 201 , - 290 , - 1219 , - 108 , - 1277 , - 406 , - 375 , - 1184 , - 1393 , - 1002 , - 11 , - 1300 , - 549 , - 638 , - 127 , - 456 , - 185 , - 754 , - 723 , - 92 , - 301 , - 1350 , - 359 , - 208 , - 897 , - 986 , - 475 , - 804 , - 533 , - 1102 , - 1071 , - 440 , - 649 , - 258 , - 707 , - 556 , - 1245 , - 1334 , - 823 , - 1152 , - 881 , - 10 , - 1419 , - 788 , - 997 , - 606 , - 1055 , - 904 , - 153 , - 242 , - 1171 , - 60 , - 1229 , - 358 , - 327 , - 1136 , - 1345 , - 954 , - 1403 , - 1252 , - 501 , - 590 , - 79 , - 408 , - 137 , - 706 , - 675 , - 44 , - 253 , - 1302 , - 311 , - 160 , - 849 , - 938 , - 427 , - 756 , - 485 , - 1054 , - 1023 , - 392 , - 601 , - 210 , - 659 , - 508 , - 1197 , - 1286 , - 775 , - 1104 , - 833 , - 1402 , - 1371 , - 740 , - 949 , - 558 , - 1007 , - 856 , - 105 , - 194 , - 1123 , - 12 , - 1181 , - 310 , - 279 , - 1088 , - 1297 , - 906 , - 1355 , - 1204 , - 453 , - 542 , - 31 , - 360 , - 89 , - 658 , - 627 , - 1436 , - 205 , - 1254 , - 263 , - 112 , - 801 , - 890 , - 379 , - 708 , - 437 , - 1006 , - 975 , - 344 , - 553 , - 162 , - 611 , - 460 , - 1149 , - 1238 , - 727 , - 1056 , - 785 , - 1354 , - 1323 , - 692 , - 901 , - 510 , - 959 , - 808 , - 57 , - 146 , - 1075 , - 1404 , - 1133 , - 262 , - 231 , - 1040 , - 1249 , - 858 , - 1307 , - 1156 , - 405 , - 494 , - 1423 , - 312 , - 41 , - 610 , - 579 , - 1388 , - 157 , - 1206 , - 215 , - 64 , - 753 , - 842 , - 331 , - 660 , - 389 , - 958 , - 927 , - 296 , - 505 , - 114 , - 563 , - 412 , - 1101 , - 1190 , - 679 , - 1008 , - 737 , - 1306 , - 1275 , - 644 , - 853 , - 462 , - 911 , - 760 , - 9 , - 98 , - 1027 , - 1356 , - 1085 , - 214 , - 183 , - 992 , - 1201 , - 810 , - 1259 , - 1108 , - 357 , - 446 , - 1375 , - 264 , - 1433 , - 562 , - 531 , - 1340 , - 109 , - 1158 , - 167 , - 16 , - 705 , - 794 , - 283 , - 612 , - 341 , - 910 , - 879 , - 248 , - 457 , - 66 , - 515 , - 364 , - 1053 , - 1142 , - 631 , - 960 , - 689 , - 1258 , - 1227 , - 596 , - 805 , - 414 , - 863 , - 712 , - 1401 , - 50 , - 979 , - 1308 , - 1037 , - 166 , - 135 , - 944 , - 1153 , - 762 , - 1211 , - 1060 , - 309 , - 398 , - 1327 , - 216 , - 1385 , - 514 , - 483 , - 1292 , - 61 , - 1110 , - 119 , - 1408 , - 657 , - 746 , - 235 , - 564 , - 293 , - 862 , - 831 , - 200 , - 409 , - 18 , - 467 , - 316 , - 1005 , - 1094 , - 583 , - 912 , - 641 , - 1210 , - 1179 , - 548 , - 757 , - 366 , - 815 , - 664 , - 1353 , - 2 , - 931 , - 1260 , - 989 , - 118 , - 87 , - 896 , - 1105 , - 714 , - 1163 , - 1012 , - 261 , - 350 , - 1279 , - 168 , - 1337 , - 466 , - 435 , - 1244 , - 13 , - 1062 , - 71 , - 1360 , - 609 , - 698 , - 187 , - 516 , - 245 , - 814 , - 783 , - 152 , - 361 , - 1410 , - 419 , - 268 , - 957 , - 1046 , - 535 , - 864 , - 593 , - 1162 , - 1131 , - 500 , - 709 , - 318 , - 767 , - 616 , - 1305 , - 1394 , - 883 , - 1212 , - 941 , - 70 , - 39 , - 848 , - 1057 , - 666 , - 1115 , - 964 , - 213 , - 302 , - 1231 , - 120 , - 1289 , - 418 , - 387 , - 1196 , - 1405 , - 1014 , - 23 , - 1312 , - 561 , - 650 , - 139 , - 468 , - 197 , - 766 , - 735 , - 104 , - 313 , - 1362 , - 371 , - 220 , - 909 , - 998 , - 487 , - 816 , - 545 , - 1114 , - 1083 , - 452 , - 661 , - 270 , - 719 , - 568 , - 1257 , - 1346 , - 835 , - 1164 , - 893 , - 22 , - 1431 , - 800 , - 1009 , - 618 , - 1067 , - 916 , - 165 , - 254 , - 1183 , - 72 , - 1241 , - 370 , - 339 , - 1148 , - 1357 , - 966 , - 1415 , - 1264 , - 513 , - 602 , - 91 , - 420 , - 149 , - 718 , - 687 , - 56 , - 265 , - 1314 , - 323 , - 172 , - 861 , - 950 , - 439 , - 768 , - 497 , - 1066 , - 1035 , - 404 , - 613 , - 222 , - 671 , - 520 , - 1209 , - 1298 , - 787 , - 1116 , - 845 , - 1414 , - 1383 , - 752 , - 961 , - 570 , - 1019 , - 868 , - 117 , - 206 , - 1135 , - 24 , - 1193 , - 322 , - 291 , - 1100 , - 1309 , - 918 , - 1367 , - 1216 , - 465 , - 554 , - 43 , - 372 , - 101 , - 670 , - 639 , - 8 , - 217 , - 1266 , - 275 , - 124 , - 813 , - 902 , - 391 , - 720 , - 449 , - 1018 , - 987 , - 356 , - 565 , - 174 , - 623 , - 472 , - 1161 , - 1250 , - 739 , - 1068 , - 797 , - 1366 , - 1335 , - 704 , - 913 , - 522 , - 971 , - 820 , - 69 , - 158 , - 1087 , - 1416 , - 1145 , - 274 , - 243 , - 1052 , - 1261 , - 870 , - 1319 , - 1168 , - 417 , - 506 , - 1435 , - 324 , - 53 , - 622 , - 591 , - 1400 , - 169 , - 1218 , - 227 , - 76 , - 765 , - 854 , - 343 , - 672 , - 401 , - 970 , - 939 , - 308 , - 517 , - 126 , - 575 , - 424 , - 1113 , - 1202 , - 691 , - 1020 , - 749 , - 1318 , - 1287 , - 656 , - 865 , - 474 , - 923 , - 772 , - 21 , - 110 , - 1039 , - 1368 , - 1097 , - 226 , - 195 , - 1004 , - 1213 , - 822 , - 1271 , - 1120 , - 369 , - 458 , - 1387 , - 276 , - 5 , - 574 , - 543 , - 1352 , - 121 , - 1170 , - 179 , - 28 , - 717 , - 806 , - 295 , - 624 , - 353 , - 922 , - 891 , - 260 , - 469 , - 78 , - 527 , - 376 , - 1065 , - 1154 , - 643 , - 972 , - 701 , - 1270 , - 1239 , - 608 , - 817 , - 426 , - 875 , - 724 , - 1413 , - 62 , - 991 , - 1320 , - 1049 , - 178 , - 147 , - 956 , - 1165 , - 774 , - 1223 , - 1072 , - 321 , - 410 , - 1339 , - 228 , - 1397 , - 526 , - 495 , - 1304 , - 73 , - 1122 , - 131 , - 1420 , - 669 , - 758 , - 247 , - 576 , - 305 , - 874 , - 843 , - 212 , - 421 , - 30 , - 479 , - 328 , - 1017 , - 1106 , - 595 , - 924 , - 653 , - 1222 , - 1191 , - 560 , - 769 , - 378 , - 827 , - 676 , - 1365 , - 14 , - 943 , - 1272 , - 1001 , - 130 , - 99 , - 908 , - 1117 , - 726 , - 1175 , - 1024 , - 273 , - 362 , - 1291 , - 180 , - 1349 , - 478 , - 447 , - 1256 , - 25 , - 1074 , - 83 , - 1372 , - 621 , - 710 , - 199 , - 528 , - 257 , - 826 , - 795 , - 164 , - 373 , - 1422 , - 431 , - 280 , - 969 , - 1058 , - 547 , - 876 , - 605 , - 1174 , - 1143 , - 512 , - 721 , - 330 , - 779 , - 628 , - 1317 , - 1406 , - 895 , - 1224 , - 953 , - 82 , - 51 , - 860 , - 1069 , - 678 , - 1127 , - 976 , - 225 , - 314 , - 1243 , - 132 , - 1301 , - 430 , - 399 , - 1208 , - 1417 , - 1026 , - 35 , - 1324 , - 573 , - 662 , - 151 , - 480 , - 209 , - 778 , - 747 , - 116 , - 325 , - 1374 , - 383 , - 232 , - 921 , - 1010 , - 499 , - 828 , - 557 , - 1126 , - 1095 , - 464 , - 673 , - 282 , - 731 , - 580 , - 1269 , - 1358 , - 847 , - 1176 , - 905 , - 34 , - 3 , - 812 , - 1021 , - 630 , - 1079 , - 928 , - 177 , - 266 , - 1195 , - 84 , - 1253 , - 382 , - 351 , - 1160 , - 1369 , - 978 , - 1427 , - 1276 , - 525 , - 614 , - 103 , - 432 , - 161 , - 730 , - 699 , - 68 , - 277 , - 1326 , - 335 , - 184 , - 873 , - 962 , - 451 , - 780 , - 509 , - 1078 , - 1047 , - 416 , - 625 , - 234 , - 683 , - 532 , - 1221 , - 1310 , - 799 , - 1128 , - 857 , - 1426 , - 1395 , - 764 , - 973 , - 582 , - 1031 , - 880 , - 129 , - 218 , - 1147 , - 36 , - 1205 , - 334 , - 303 , - 1112 , - 1321 , - 930 , - 1379 , - 1228 , - 477 , - 566 , - 55 , - 384 , - 113 , - 682 , - 651 , - 20 , - 229 , - 1278 , - 287 , - 136 , - 825 , - 914 , - 403 , - 732 , - 461 , - 1030 , - 999 , - 368 , - 577 , - 186 , - 635 , - 484 , - 1173 , - 1262 , - 751 , - 1080 , - 809 , - 1378 , - 1347 , - 716 , - 925 , - 534 , - 983 , - 832 , - 81 , - 170 , - 1099 , - 1428 , - 1157 , - 286 , - 255 , - 1064 , - 1273 , - 882 , - 1331 , - 1180 , - 429 , - 518 , - 7 , - 336 , - 65 , - 634 , - 603 , - 1412 , - 181 , - 1230 , - 239 , - 88 , - 777 , - 866 , - 355 , - 684 , - 413 , - 982 , - 951 , - 320 , - 529 , - 138 , - 587 , - 436 , - 1125 , - 1214 , - 703 , - 1032 , - 761 , - 1330 , - 1299 , - 668 , - 877 , - 486 , - 935 , - 784 , - 33 , - 122 , - 1051 , - 1380 , - 1109 , - 238 , - 207 , - 1016 , - 1225 , - 834 , - 1283 , - 1132 , - 381 , - 470 , - 1399 , - 288 , - 17 , - 586 , - 555 , - 1364 , - 133 , - 1182 , - 191 , - 40 , - 729 , - 818 , - 307 , - 636 , - 365 , - 934 , - 903 , - 272 , - 481 , - 90 , - 539 , - 388 , - 1077 , - 1166 , - 655 , - 984 , - 713 , - 1282 , - 1251 , - 620 , - 829 , - 438 , - 887 , - 736 , - 1425 , - 74 , - 1003 , - 1332 , - 1061 , - 190 , - 159 , - 968 , - 1177 , - 786 , - 1235 , - 1084 , - 333 , - 422 , - 1351 , - 240 , - 1409 , - 538 , - 507 , - 1316 , - 85 , - 1134 , - 143 , - 1432 , - 681 , - 770 , - 259 , - 588 , - 317 , - 886 , - 855 , - 224 , - 433 , - 42 , - 491 , - 340 , - 1029 , - 1118 , - 607 , - 936 , - 665 , - 1234 , - 1203 , - 572 , - 781 , - 390 , - 839 , - 688 , - 1377 , - 26 , - 955 , - 1284 , - 1013 , - 142 , - 111 , - 920 , - 1129 , - 738 , - 1187 , - 1036 , - 285 , - 374 , - 1303 , - 192 , - 1361 , - 490 , - 459 , - 1268 , - 37 , - 1086 , - 95 , - 1384 , - 633 , - 722 , - 211 , - 540 , - 269 , - 838 , - 807 , - 176 , - 385 , - 1434 , - 443 , - 292 , - 981 , - 1070 , - 559 , - 888 , - 617 , - 1186 , - 1155 , - 524 , - 733 , - 342 , - 791 , - 640 , - 1329 , - 1418 , - 907 , - 1236 , - 965 , - 94 , - 63 , - 872 , - 1081 , - 690 , - 1139 , - 988 , - 237 , - 326 , - 1255 , - 144 , - 1313 , - 442 , - 411 , - 1220 , - 1429 , - 1038 , - 47 , - 1336 , - 585 , - 674 , - 163 , - 492 , - 221 , - 790 , - 759 , - 128 , - 337 , - 1386 , - 395 , - 244 , - 933 , - 1022 , - 511 , - 840 , - 569 , - 1138 , - 1107 , - 476 , - 685 , - 294 , - 743 , - 592 , - 1281 , - 1370 , - 859 , - 1188 , - 917 , - 46 , - 15 , - 824 , - 1033 , - 642 , - 1091 , - 940 , - 189 , - 278 , - 1207 , - 96 , - 1265 , - 394 , - 363 , - 1172 , - 1381 , - 990 , - 1439 , - 1288 , - 537 , - 626 , - 115 , - 444 , - 173 , - 742 , - 711 , - 80 , - 289 , - 1338 , - 347 , - 196 , - 885 , - 974 , - 463 , - 792 , - 521 , - 1090 , - 1059 , - 428 , - 637 , - 246 , - 695 , - 544 , - 1233 , - 1322 , - 811 , - 1140 , - 869 , - 1438 , - 1407 , - 776 , - 985 , - 594 , - 1043 , - 892 , - 141 , - 230 , - 1159 , - 48 , - 1217 , - 346 , - 315 , - 1124 , - 1333 , - 942 , - 1391 , - 1240 , - 489 , - 578 , - 67 , - 396 , - 125 , - 694 , - 663 , - 32 , - 241 , - 1290 , - 299 , - 148 , - 837 , - 926 , - 415 , - 744 , - 473 , - 1042 , - 1011 , - 380 , - 589 , - 198 , - 647 , - 496 , - 1185 , - 1274 , - 763 , - 1092 , - 821 , - 1390 , - 1359 , - 728 , - 937 , - 546 , - 995 , - 844 , - 93 , - 182 , - 1111 , - 0 , - 1241 , - 90 , - 963 , - 916 , - 1421 , - 1006 , - 1143 , - 360 , - 129 , - 450 , - 1323 , - 1276 , - 309 , - 1366 , - 31 , - 720 , - 489 , - 810 , - 211 , - 164 , - 669 , - 254 , - 391 , - 1080 , - 849 , - 1170 , - 571 , - 524 , - 1029 , - 614 , - 751 , - 1440 , - 1209 , - 58 , - 931 , - 884 , - 1389 , - 974 , - 1111 , - 328 , - 97 , - 418 , - 1291 , - 1244 , - 277 , - 1334 , - 1471 , - 688 , - 457 , - 778 , - 179 , - 132 , - 637 , - 222 , - 359 , - 1048 , - 817 , - 1138 , - 539 , - 492 , - 997 , - 582 , - 719 , - 1408 , - 1177 , - 26 , - 899 , - 852 , - 1357 , - 942 , - 1079 , - 296 , - 65 , - 386 , - 1259 , - 1212 , - 245 , - 1302 , - 1439 , - 656 , - 425 , - 746 , - 147 , - 100 , - 605 , - 190 , - 327 , - 1016 , - 785 , - 1106 , - 507 , - 460 , - 965 , - 550 , - 687 , - 1376 , - 1145 , - 1466 , - 867 , - 820 , - 1325 , - 910 , - 1047 , - 264 , - 33 , - 354 , - 1227 , - 1180 , - 213 , - 1270 , - 1407 , - 624 , - 393 , - 714 , - 115 , - 68 , - 573 , - 158 , - 295 , - 984 , - 753 , - 1074 , - 475 , - 428 , - 933 , - 518 , - 655 , - 1344 , - 1113 , - 1434 , - 835 , - 788 , - 1293 , - 878 , - 1015 , - 232 , - 1 , - 322 , - 1195 , - 1148 , - 181 , - 1238 , - 1375 , - 592 , - 361 , - 682 , - 83 , - 36 , - 541 , - 126 , - 263 , - 952 , - 721 , - 1042 , - 443 , - 396 , - 901 , - 486 , - 623 , - 1312 , - 1081 , - 1402 , - 803 , - 756 , - 1261 , - 846 , - 983 , - 200 , - 1441 , - 290 , - 1163 , - 1116 , - 149 , - 1206 , - 1343 , - 560 , - 329 , - 650 , - 51 , - 4 , - 509 , - 94 , - 231 , - 920 , - 689 , - 1010 , - 411 , - 364 , - 869 , - 454 , - 591 , - 1280 , - 1049 , - 1370 , - 771 , - 724 , - 1229 , - 814 , - 951 , - 168 , - 1409 , - 258 , - 1131 , - 1084 , - 117 , - 1174 , - 1311 , - 528 , - 297 , - 618 , - 19 , - 1444 , - 477 , - 62 , - 199 , - 888 , - 657 , - 978 , - 379 , - 332 , - 837 , - 422 , - 559 , - 1248 , - 1017 , - 1338 , - 739 , - 692 , - 1197 , - 782 , - 919 , - 136 , - 1377 , - 226 , - 1099 , - 1052 , - 85 , - 1142 , - 1279 , - 496 , - 265 , - 586 , - 1459 , - 1412 , - 445 , - 30 , - 167 , - 856 , - 625 , - 946 , - 347 , - 300 , - 805 , - 390 , - 527 , - 1216 , - 985 , - 1306 , - 707 , - 660 , - 1165 , - 750 , - 887 , - 104 , - 1345 , - 194 , - 1067 , - 1020 , - 53 , - 1110 , - 1247 , - 464 , - 233 , - 554 , - 1427 , - 1380 , - 413 , - 1470 , - 135 , - 824 , - 593 , - 914 , - 315 , - 268 , - 773 , - 358 , - 495 , - 1184 , - 953 , - 1274 , - 675 , - 628 , - 1133 , - 718 , - 855 , - 72 , - 1313 , - 162 , - 1035 , - 988 , - 21 , - 1078 , - 1215 , - 432 , - 201 , - 522 , - 1395 , - 1348 , - 381 , - 1438 , - 103 , - 792 , - 561 , - 882 , - 283 , - 236 , - 741 , - 326 , - 463 , - 1152 , - 921 , - 1242 , - 643 , - 596 , - 1101 , - 686 , - 823 , - 40 , - 1281 , - 130 , - 1003 , - 956 , - 1461 , - 1046 , - 1183 , - 400 , - 169 , - 490 , - 1363 , - 1316 , - 349 , - 1406 , - 71 , - 760 , - 529 , - 850 , - 251 , - 204 , - 709 , - 294 , - 431 , - 1120 , - 889 , - 1210 , - 611 , - 564 , - 1069 , - 654 , - 791 , - 8 , - 1249 , - 98 , - 971 , - 924 , - 1429 , - 1014 , - 1151 , - 368 , - 137 , - 458 , - 1331 , - 1284 , - 317 , - 1374 , - 39 , - 728 , - 497 , - 818 , - 219 , - 172 , - 677 , - 262 , - 399 , - 1088 , - 857 , - 1178 , - 579 , - 532 , - 1037 , - 622 , - 759 , - 1448 , - 1217 , - 66 , - 939 , - 892 , - 1397 , - 982 , - 1119 , - 336 , - 105 , - 426 , - 1299 , - 1252 , - 285 , - 1342 , - 7 , - 696 , - 465 , - 786 , - 187 , - 140 , - 645 , - 230 , - 367 , - 1056 , - 825 , - 1146 , - 547 , - 500 , - 1005 , - 590 , - 727 , - 1416 , - 1185 , - 34 , - 907 , - 860 , - 1365 , - 950 , - 1087 , - 304 , - 73 , - 394 , - 1267 , - 1220 , - 253 , - 1310 , - 1447 , - 664 , - 433 , - 754 , - 155 , - 108 , - 613 , - 198 , - 335 , - 1024 , - 793 , - 1114 , - 515 , - 468 , - 973 , - 558 , - 695 , - 1384 , - 1153 , - 2 , - 875 , - 828 , - 1333 , - 918 , - 1055 , - 272 , - 41 , - 362 , - 1235 , - 1188 , - 221 , - 1278 , - 1415 , - 632 , - 401 , - 722 , - 123 , - 76 , - 581 , - 166 , - 303 , - 992 , - 761 , - 1082 , - 483 , - 436 , - 941 , - 526 , - 663 , - 1352 , - 1121 , - 1442 , - 843 , - 796 , - 1301 , - 886 , - 1023 , - 240 , - 9 , - 330 , - 1203 , - 1156 , - 189 , - 1246 , - 1383 , - 600 , - 369 , - 690 , - 91 , - 44 , - 549 , - 134 , - 271 , - 960 , - 729 , - 1050 , - 451 , - 404 , - 909 , - 494 , - 631 , - 1320 , - 1089 , - 1410 , - 811 , - 764 , - 1269 , - 854 , - 991 , - 208 , - 1449 , - 298 , - 1171 , - 1124 , - 157 , - 1214 , - 1351 , - 568 , - 337 , - 658 , - 59 , - 12 , - 517 , - 102 , - 239 , - 928 , - 697 , - 1018 , - 419 , - 372 , - 877 , - 462 , - 599 , - 1288 , - 1057 , - 1378 , - 779 , - 732 , - 1237 , - 822 , - 959 , - 176 , - 1417 , - 266 , - 1139 , - 1092 , - 125 , - 1182 , - 1319 , - 536 , - 305 , - 626 , - 27 , - 1452 , - 485 , - 70 , - 207 , - 896 , - 665 , - 986 , - 387 , - 340 , - 845 , - 430 , - 567 , - 1256 , - 1025 , - 1346 , - 747 , - 700 , - 1205 , - 790 , - 927 , - 144 , - 1385 , - 234 , - 1107 , - 1060 , - 93 , - 1150 , - 1287 , - 504 , - 273 , - 594 , - 1467 , - 1420 , - 453 , - 38 , - 175 , - 864 , - 633 , - 954 , - 355 , - 308 , - 813 , - 398 , - 535 , - 1224 , - 993 , - 1314 , - 715 , - 668 , - 1173 , - 758 , - 895 , - 112 , - 1353 , - 202 , - 1075 , - 1028 , - 61 , - 1118 , - 1255 , - 472 , - 241 , - 562 , - 1435 , - 1388 , - 421 , - 6 , - 143 , - 832 , - 601 , - 922 , - 323 , - 276 , - 781 , - 366 , - 503 , - 1192 , - 961 , - 1282 , - 683 , - 636 , - 1141 , - 726 , - 863 , - 80 , - 1321 , - 170 , - 1043 , - 996 , - 29 , - 1086 , - 1223 , - 440 , - 209 , - 530 , - 1403 , - 1356 , - 389 , - 1446 , - 111 , - 800 , - 569 , - 890 , - 291 , - 244 , - 749 , - 334 , - 471 , - 1160 , - 929 , - 1250 , - 651 , - 604 , - 1109 , - 694 , - 831 , - 48 , - 1289 , - 138 , - 1011 , - 964 , - 1469 , - 1054 , - 1191 , - 408 , - 177 , - 498 , - 1371 , - 1324 , - 357 , - 1414 , - 79 , - 768 , - 537 , - 858 , - 259 , - 212 , - 717 , - 302 , - 439 , - 1128 , - 897 , - 1218 , - 619 , - 572 , - 1077 , - 662 , - 799 , - 16 , - 1257 , - 106 , - 979 , - 932 , - 1437 , - 1022 , - 1159 , - 376 , - 145 , - 466 , - 1339 , - 1292 , - 325 , - 1382 , - 47 , - 736 , - 505 , - 826 , - 227 , - 180 , - 685 , - 270 , - 407 , - 1096 , - 865 , - 1186 , - 587 , - 540 , - 1045 , - 630 , - 767 , - 1456 , - 1225 , - 74 , - 947 , - 900 , - 1405 , - 990 , - 1127 , - 344 , - 113 , - 434 , - 1307 , - 1260 , - 293 , - 1350 , - 15 , - 704 , - 473 , - 794 , - 195 , - 148 , - 653 , - 238 , - 375 , - 1064 , - 833 , - 1154 , - 555 , - 508 , - 1013 , - 598 , - 735 , - 1424 , - 1193 , - 42 , - 915 , - 868 , - 1373 , - 958 , - 1095 , - 312 , - 81 , - 402 , - 1275 , - 1228 , - 261 , - 1318 , - 1455 , - 672 , - 441 , - 762 , - 163 , - 116 , - 621 , - 206 , - 343 , - 1032 , - 801 , - 1122 , - 523 , - 476 , - 981 , - 566 , - 703 , - 1392 , - 1161 , - 10 , - 883 , - 836 , - 1341 , - 926 , - 1063 , - 280 , - 49 , - 370 , - 1243 , - 1196 , - 229 , - 1286 , - 1423 , - 640 , - 409 , - 730 , - 131 , - 84 , - 589 , - 174 , - 311 , - 1000 , - 769 , - 1090 , - 491 , - 444 , - 949 , - 534 , - 671 , - 1360 , - 1129 , - 1450 , - 851 , - 804 , - 1309 , - 894 , - 1031 , - 248 , - 17 , - 338 , - 1211 , - 1164 , - 197 , - 1254 , - 1391 , - 608 , - 377 , - 698 , - 99 , - 52 , - 557 , - 142 , - 279 , - 968 , - 737 , - 1058 , - 459 , - 412 , - 917 , - 502 , - 639 , - 1328 , - 1097 , - 1418 , - 819 , - 772 , - 1277 , - 862 , - 999 , - 216 , - 1457 , - 306 , - 1179 , - 1132 , - 165 , - 1222 , - 1359 , - 576 , - 345 , - 666 , - 67 , - 20 , - 525 , - 110 , - 247 , - 936 , - 705 , - 1026 , - 427 , - 380 , - 885 , - 470 , - 607 , - 1296 , - 1065 , - 1386 , - 787 , - 740 , - 1245 , - 830 , - 967 , - 184 , - 1425 , - 274 , - 1147 , - 1100 , - 133 , - 1190 , - 1327 , - 544 , - 313 , - 634 , - 35 , - 1460 , - 493 , - 78 , - 215 , - 904 , - 673 , - 994 , - 395 , - 348 , - 853 , - 438 , - 575 , - 1264 , - 1033 , - 1354 , - 755 , - 708 , - 1213 , - 798 , - 935 , - 152 , - 1393 , - 242 , - 1115 , - 1068 , - 101 , - 1158 , - 1295 , - 512 , - 281 , - 602 , - 3 , - 1428 , - 461 , - 46 , - 183 , - 872 , - 641 , - 962 , - 363 , - 316 , - 821 , - 406 , - 543 , - 1232 , - 1001 , - 1322 , - 723 , - 676 , - 1181 , - 766 , - 903 , - 120 , - 1361 , - 210 , - 1083 , - 1036 , - 69 , - 1126 , - 1263 , - 480 , - 249 , - 570 , - 1443 , - 1396 , - 429 , - 14 , - 151 , - 840 , - 609 , - 930 , - 331 , - 284 , - 789 , - 374 , - 511 , - 1200 , - 969 , - 1290 , - 691 , - 644 , - 1149 , - 734 , - 871 , - 88 , - 1329 , - 178 , - 1051 , - 1004 , - 37 , - 1094 , - 1231 , - 448 , - 217 , - 538 , - 1411 , - 1364 , - 397 , - 1454 , - 119 , - 808 , - 577 , - 898 , - 299 , - 252 , - 757 , - 342 , - 479 , - 1168 , - 937 , - 1258 , - 659 , - 612 , - 1117 , - 702 , - 839 , - 56 , - 1297 , - 146 , - 1019 , - 972 , - 5 , - 1062 , - 1199 , - 416 , - 185 , - 506 , - 1379 , - 1332 , - 365 , - 1422 , - 87 , - 776 , - 545 , - 866 , - 267 , - 220 , - 725 , - 310 , - 447 , - 1136 , - 905 , - 1226 , - 627 , - 580 , - 1085 , - 670 , - 807 , - 24 , - 1265 , - 114 , - 987 , - 940 , - 1445 , - 1030 , - 1167 , - 384 , - 153 , - 474 , - 1347 , - 1300 , - 333 , - 1390 , - 55 , - 744 , - 513 , - 834 , - 235 , - 188 , - 693 , - 278 , - 415 , - 1104 , - 873 , - 1194 , - 595 , - 548 , - 1053 , - 638 , - 775 , - 1464 , - 1233 , - 82 , - 955 , - 908 , - 1413 , - 998 , - 1135 , - 352 , - 121 , - 442 , - 1315 , - 1268 , - 301 , - 1358 , - 23 , - 712 , - 481 , - 802 , - 203 , - 156 , - 661 , - 246 , - 383 , - 1072 , - 841 , - 1162 , - 563 , - 516 , - 1021 , - 606 , - 743 , - 1432 , - 1201 , - 50 , - 923 , - 876 , - 1381 , - 966 , - 1103 , - 320 , - 89 , - 410 , - 1283 , - 1236 , - 269 , - 1326 , - 1463 , - 680 , - 449 , - 770 , - 171 , - 124 , - 629 , - 214 , - 351 , - 1040 , - 809 , - 1130 , - 531 , - 484 , - 989 , - 574 , - 711 , - 1400 , - 1169 , - 18 , - 891 , - 844 , - 1349 , - 934 , - 1071 , - 288 , - 57 , - 378 , - 1251 , - 1204 , - 237 , - 1294 , - 1431 , - 648 , - 417 , - 738 , - 139 , - 92 , - 597 , - 182 , - 319 , - 1008 , - 777 , - 1098 , - 499 , - 452 , - 957 , - 542 , - 679 , - 1368 , - 1137 , - 1458 , - 859 , - 812 , - 1317 , - 902 , - 1039 , - 256 , - 25 , - 346 , - 1219 , - 1172 , - 205 , - 1262 , - 1399 , - 616 , - 385 , - 706 , - 107 , - 60 , - 565 , - 150 , - 287 , - 976 , - 745 , - 1066 , - 467 , - 420 , - 925 , - 510 , - 647 , - 1336 , - 1105 , - 1426 , - 827 , - 780 , - 1285 , - 870 , - 1007 , - 224 , - 1465 , - 314 , - 1187 , - 1140 , - 173 , - 1230 , - 1367 , - 584 , - 353 , - 674 , - 75 , - 28 , - 533 , - 118 , - 255 , - 944 , - 713 , - 1034 , - 435 , - 388 , - 893 , - 478 , - 615 , - 1304 , - 1073 , - 1394 , - 795 , - 748 , - 1253 , - 838 , - 975 , - 192 , - 1433 , - 282 , - 1155 , - 1108 , - 141 , - 1198 , - 1335 , - 552 , - 321 , - 642 , - 43 , - 1468 , - 501 , - 86 , - 223 , - 912 , - 681 , - 1002 , - 403 , - 356 , - 861 , - 446 , - 583 , - 1272 , - 1041 , - 1362 , - 763 , - 716 , - 1221 , - 806 , - 943 , - 160 , - 1401 , - 250 , - 1123 , - 1076 , - 109 , - 1166 , - 1303 , - 520 , - 289 , - 610 , - 11 , - 1436 , - 469 , - 54 , - 191 , - 880 , - 649 , - 970 , - 371 , - 324 , - 829 , - 414 , - 551 , - 1240 , - 1009 , - 1330 , - 731 , - 684 , - 1189 , - 774 , - 911 , - 128 , - 1369 , - 218 , - 1091 , - 1044 , - 77 , - 1134 , - 1271 , - 488 , - 257 , - 578 , - 1451 , - 1404 , - 437 , - 22 , - 159 , - 848 , - 617 , - 938 , - 339 , - 292 , - 797 , - 382 , - 519 , - 1208 , - 977 , - 1298 , - 699 , - 652 , - 1157 , - 742 , - 879 , - 96 , - 1337 , - 186 , - 1059 , - 1012 , - 45 , - 1102 , - 1239 , - 456 , - 225 , - 546 , - 1419 , - 1372 , - 405 , - 1462 , - 127 , - 816 , - 585 , - 906 , - 307 , - 260 , - 765 , - 350 , - 487 , - 1176 , - 945 , - 1266 , - 667 , - 620 , - 1125 , - 710 , - 847 , - 64 , - 1305 , - 154 , - 1027 , - 980 , - 13 , - 1070 , - 1207 , - 424 , - 193 , - 514 , - 1387 , - 1340 , - 373 , - 1430 , - 95 , - 784 , - 553 , - 874 , - 275 , - 228 , - 733 , - 318 , - 455 , - 1144 , - 913 , - 1234 , - 635 , - 588 , - 1093 , - 678 , - 815 , - 32 , - 1273 , - 122 , - 995 , - 948 , - 1453 , - 1038 , - 1175 , - 392 , - 161 , - 482 , - 1355 , - 1308 , - 341 , - 1398 , - 63 , - 752 , - 521 , - 842 , - 243 , - 196 , - 701 , - 286 , - 423 , - 1112 , - 881 , - 1202 , - 603 , - 556 , - 1061 , - 646 , - 783 , - 0 , - 1011 , - 330 , - 213 , - 1412 , - 167 , - 238 , - 873 , - 1320 , - 827 , - 146 , - 29 , - 1228 , - 1487 , - 54 , - 689 , - 1136 , - 643 , - 1466 , - 1349 , - 1044 , - 1303 , - 1374 , - 505 , - 952 , - 459 , - 1282 , - 1165 , - 860 , - 1119 , - 1190 , - 321 , - 768 , - 275 , - 1098 , - 981 , - 676 , - 935 , - 1006 , - 137 , - 584 , - 91 , - 914 , - 797 , - 492 , - 751 , - 822 , - 1457 , - 400 , - 1411 , - 730 , - 613 , - 308 , - 567 , - 638 , - 1273 , - 216 , - 1227 , - 546 , - 429 , - 124 , - 383 , - 454 , - 1089 , - 32 , - 1043 , - 362 , - 245 , - 1444 , - 199 , - 270 , - 905 , - 1352 , - 859 , - 178 , - 61 , - 1260 , - 15 , - 86 , - 721 , - 1168 , - 675 , - 1498 , - 1381 , - 1076 , - 1335 , - 1406 , - 537 , - 984 , - 491 , - 1314 , - 1197 , - 892 , - 1151 , - 1222 , - 353 , - 800 , - 307 , - 1130 , - 1013 , - 708 , - 967 , - 1038 , - 169 , - 616 , - 123 , - 946 , - 829 , - 524 , - 783 , - 854 , - 1489 , - 432 , - 1443 , - 762 , - 645 , - 340 , - 599 , - 670 , - 1305 , - 248 , - 1259 , - 578 , - 461 , - 156 , - 415 , - 486 , - 1121 , - 64 , - 1075 , - 394 , - 277 , - 1476 , - 231 , - 302 , - 937 , - 1384 , - 891 , - 210 , - 93 , - 1292 , - 47 , - 118 , - 753 , - 1200 , - 707 , - 26 , - 1413 , - 1108 , - 1367 , - 1438 , - 569 , - 1016 , - 523 , - 1346 , - 1229 , - 924 , - 1183 , - 1254 , - 385 , - 832 , - 339 , - 1162 , - 1045 , - 740 , - 999 , - 1070 , - 201 , - 648 , - 155 , - 978 , - 861 , - 556 , - 815 , - 886 , - 17 , - 464 , - 1475 , - 794 , - 677 , - 372 , - 631 , - 702 , - 1337 , - 280 , - 1291 , - 610 , - 493 , - 188 , - 447 , - 518 , - 1153 , - 96 , - 1107 , - 426 , - 309 , - 4 , - 263 , - 334 , - 969 , - 1416 , - 923 , - 242 , - 125 , - 1324 , - 79 , - 150 , - 785 , - 1232 , - 739 , - 58 , - 1445 , - 1140 , - 1399 , - 1470 , - 601 , - 1048 , - 555 , - 1378 , - 1261 , - 956 , - 1215 , - 1286 , - 417 , - 864 , - 371 , - 1194 , - 1077 , - 772 , - 1031 , - 1102 , - 233 , - 680 , - 187 , - 1010 , - 893 , - 588 , - 847 , - 918 , - 49 , - 496 , - 3 , - 826 , - 709 , - 404 , - 663 , - 734 , - 1369 , - 312 , - 1323 , - 642 , - 525 , - 220 , - 479 , - 550 , - 1185 , - 128 , - 1139 , - 458 , - 341 , - 36 , - 295 , - 366 , - 1001 , - 1448 , - 955 , - 274 , - 157 , - 1356 , - 111 , - 182 , - 817 , - 1264 , - 771 , - 90 , - 1477 , - 1172 , - 1431 , - 1502 , - 633 , - 1080 , - 587 , - 1410 , - 1293 , - 988 , - 1247 , - 1318 , - 449 , - 896 , - 403 , - 1226 , - 1109 , - 804 , - 1063 , - 1134 , - 265 , - 712 , - 219 , - 1042 , - 925 , - 620 , - 879 , - 950 , - 81 , - 528 , - 35 , - 858 , - 741 , - 436 , - 695 , - 766 , - 1401 , - 344 , - 1355 , - 674 , - 557 , - 252 , - 511 , - 582 , - 1217 , - 160 , - 1171 , - 490 , - 373 , - 68 , - 327 , - 398 , - 1033 , - 1480 , - 987 , - 306 , - 189 , - 1388 , - 143 , - 214 , - 849 , - 1296 , - 803 , - 122 , - 5 , - 1204 , - 1463 , - 30 , - 665 , - 1112 , - 619 , - 1442 , - 1325 , - 1020 , - 1279 , - 1350 , - 481 , - 928 , - 435 , - 1258 , - 1141 , - 836 , - 1095 , - 1166 , - 297 , - 744 , - 251 , - 1074 , - 957 , - 652 , - 911 , - 982 , - 113 , - 560 , - 67 , - 890 , - 773 , - 468 , - 727 , - 798 , - 1433 , - 376 , - 1387 , - 706 , - 589 , - 284 , - 543 , - 614 , - 1249 , - 192 , - 1203 , - 522 , - 405 , - 100 , - 359 , - 430 , - 1065 , - 8 , - 1019 , - 338 , - 221 , - 1420 , - 175 , - 246 , - 881 , - 1328 , - 835 , - 154 , - 37 , - 1236 , - 1495 , - 62 , - 697 , - 1144 , - 651 , - 1474 , - 1357 , - 1052 , - 1311 , - 1382 , - 513 , - 960 , - 467 , - 1290 , - 1173 , - 868 , - 1127 , - 1198 , - 329 , - 776 , - 283 , - 1106 , - 989 , - 684 , - 943 , - 1014 , - 145 , - 592 , - 99 , - 922 , - 805 , - 500 , - 759 , - 830 , - 1465 , - 408 , - 1419 , - 738 , - 621 , - 316 , - 575 , - 646 , - 1281 , - 224 , - 1235 , - 554 , - 437 , - 132 , - 391 , - 462 , - 1097 , - 40 , - 1051 , - 370 , - 253 , - 1452 , - 207 , - 278 , - 913 , - 1360 , - 867 , - 186 , - 69 , - 1268 , - 23 , - 94 , - 729 , - 1176 , - 683 , - 2 , - 1389 , - 1084 , - 1343 , - 1414 , - 545 , - 992 , - 499 , - 1322 , - 1205 , - 900 , - 1159 , - 1230 , - 361 , - 808 , - 315 , - 1138 , - 1021 , - 716 , - 975 , - 1046 , - 177 , - 624 , - 131 , - 954 , - 837 , - 532 , - 791 , - 862 , - 1497 , - 440 , - 1451 , - 770 , - 653 , - 348 , - 607 , - 678 , - 1313 , - 256 , - 1267 , - 586 , - 469 , - 164 , - 423 , - 494 , - 1129 , - 72 , - 1083 , - 402 , - 285 , - 1484 , - 239 , - 310 , - 945 , - 1392 , - 899 , - 218 , - 101 , - 1300 , - 55 , - 126 , - 761 , - 1208 , - 715 , - 34 , - 1421 , - 1116 , - 1375 , - 1446 , - 577 , - 1024 , - 531 , - 1354 , - 1237 , - 932 , - 1191 , - 1262 , - 393 , - 840 , - 347 , - 1170 , - 1053 , - 748 , - 1007 , - 1078 , - 209 , - 656 , - 163 , - 986 , - 869 , - 564 , - 823 , - 894 , - 25 , - 472 , - 1483 , - 802 , - 685 , - 380 , - 639 , - 710 , - 1345 , - 288 , - 1299 , - 618 , - 501 , - 196 , - 455 , - 526 , - 1161 , - 104 , - 1115 , - 434 , - 317 , - 12 , - 271 , - 342 , - 977 , - 1424 , - 931 , - 250 , - 133 , - 1332 , - 87 , - 158 , - 793 , - 1240 , - 747 , - 66 , - 1453 , - 1148 , - 1407 , - 1478 , - 609 , - 1056 , - 563 , - 1386 , - 1269 , - 964 , - 1223 , - 1294 , - 425 , - 872 , - 379 , - 1202 , - 1085 , - 780 , - 1039 , - 1110 , - 241 , - 688 , - 195 , - 1018 , - 901 , - 596 , - 855 , - 926 , - 57 , - 504 , - 11 , - 834 , - 717 , - 412 , - 671 , - 742 , - 1377 , - 320 , - 1331 , - 650 , - 533 , - 228 , - 487 , - 558 , - 1193 , - 136 , - 1147 , - 466 , - 349 , - 44 , - 303 , - 374 , - 1009 , - 1456 , - 963 , - 282 , - 165 , - 1364 , - 119 , - 190 , - 825 , - 1272 , - 779 , - 98 , - 1485 , - 1180 , - 1439 , - 6 , - 641 , - 1088 , - 595 , - 1418 , - 1301 , - 996 , - 1255 , - 1326 , - 457 , - 904 , - 411 , - 1234 , - 1117 , - 812 , - 1071 , - 1142 , - 273 , - 720 , - 227 , - 1050 , - 933 , - 628 , - 887 , - 958 , - 89 , - 536 , - 43 , - 866 , - 749 , - 444 , - 703 , - 774 , - 1409 , - 352 , - 1363 , - 682 , - 565 , - 260 , - 519 , - 590 , - 1225 , - 168 , - 1179 , - 498 , - 381 , - 76 , - 335 , - 406 , - 1041 , - 1488 , - 995 , - 314 , - 197 , - 1396 , - 151 , - 222 , - 857 , - 1304 , - 811 , - 130 , - 13 , - 1212 , - 1471 , - 38 , - 673 , - 1120 , - 627 , - 1450 , - 1333 , - 1028 , - 1287 , - 1358 , - 489 , - 936 , - 443 , - 1266 , - 1149 , - 844 , - 1103 , - 1174 , - 305 , - 752 , - 259 , - 1082 , - 965 , - 660 , - 919 , - 990 , - 121 , - 568 , - 75 , - 898 , - 781 , - 476 , - 735 , - 806 , - 1441 , - 384 , - 1395 , - 714 , - 597 , - 292 , - 551 , - 622 , - 1257 , - 200 , - 1211 , - 530 , - 413 , - 108 , - 367 , - 438 , - 1073 , - 16 , - 1027 , - 346 , - 229 , - 1428 , - 183 , - 254 , - 889 , - 1336 , - 843 , - 162 , - 45 , - 1244 , - 1503 , - 70 , - 705 , - 1152 , - 659 , - 1482 , - 1365 , - 1060 , - 1319 , - 1390 , - 521 , - 968 , - 475 , - 1298 , - 1181 , - 876 , - 1135 , - 1206 , - 337 , - 784 , - 291 , - 1114 , - 997 , - 692 , - 951 , - 1022 , - 153 , - 600 , - 107 , - 930 , - 813 , - 508 , - 767 , - 838 , - 1473 , - 416 , - 1427 , - 746 , - 629 , - 324 , - 583 , - 654 , - 1289 , - 232 , - 1243 , - 562 , - 445 , - 140 , - 399 , - 470 , - 1105 , - 48 , - 1059 , - 378 , - 261 , - 1460 , - 215 , - 286 , - 921 , - 1368 , - 875 , - 194 , - 77 , - 1276 , - 31 , - 102 , - 737 , - 1184 , - 691 , - 10 , - 1397 , - 1092 , - 1351 , - 1422 , - 553 , - 1000 , - 507 , - 1330 , - 1213 , - 908 , - 1167 , - 1238 , - 369 , - 816 , - 323 , - 1146 , - 1029 , - 724 , - 983 , - 1054 , - 185 , - 632 , - 139 , - 962 , - 845 , - 540 , - 799 , - 870 , - 1 , - 448 , - 1459 , - 778 , - 661 , - 356 , - 615 , - 686 , - 1321 , - 264 , - 1275 , - 594 , - 477 , - 172 , - 431 , - 502 , - 1137 , - 80 , - 1091 , - 410 , - 293 , - 1492 , - 247 , - 318 , - 953 , - 1400 , - 907 , - 226 , - 109 , - 1308 , - 63 , - 134 , - 769 , - 1216 , - 723 , - 42 , - 1429 , - 1124 , - 1383 , - 1454 , - 585 , - 1032 , - 539 , - 1362 , - 1245 , - 940 , - 1199 , - 1270 , - 401 , - 848 , - 355 , - 1178 , - 1061 , - 756 , - 1015 , - 1086 , - 217 , - 664 , - 171 , - 994 , - 877 , - 572 , - 831 , - 902 , - 33 , - 480 , - 1491 , - 810 , - 693 , - 388 , - 647 , - 718 , - 1353 , - 296 , - 1307 , - 626 , - 509 , - 204 , - 463 , - 534 , - 1169 , - 112 , - 1123 , - 442 , - 325 , - 20 , - 279 , - 350 , - 985 , - 1432 , - 939 , - 258 , - 141 , - 1340 , - 95 , - 166 , - 801 , - 1248 , - 755 , - 74 , - 1461 , - 1156 , - 1415 , - 1486 , - 617 , - 1064 , - 571 , - 1394 , - 1277 , - 972 , - 1231 , - 1302 , - 433 , - 880 , - 387 , - 1210 , - 1093 , - 788 , - 1047 , - 1118 , - 249 , - 696 , - 203 , - 1026 , - 909 , - 604 , - 863 , - 934 , - 65 , - 512 , - 19 , - 842 , - 725 , - 420 , - 679 , - 750 , - 1385 , - 328 , - 1339 , - 658 , - 541 , - 236 , - 495 , - 566 , - 1201 , - 144 , - 1155 , - 474 , - 357 , - 52 , - 311 , - 382 , - 1017 , - 1464 , - 971 , - 290 , - 173 , - 1372 , - 127 , - 198 , - 833 , - 1280 , - 787 , - 106 , - 1493 , - 1188 , - 1447 , - 14 , - 649 , - 1096 , - 603 , - 1426 , - 1309 , - 1004 , - 1263 , - 1334 , - 465 , - 912 , - 419 , - 1242 , - 1125 , - 820 , - 1079 , - 1150 , - 281 , - 728 , - 235 , - 1058 , - 941 , - 636 , - 895 , - 966 , - 97 , - 544 , - 51 , - 874 , - 757 , - 452 , - 711 , - 782 , - 1417 , - 360 , - 1371 , - 690 , - 573 , - 268 , - 527 , - 598 , - 1233 , - 176 , - 1187 , - 506 , - 389 , - 84 , - 343 , - 414 , - 1049 , - 1496 , - 1003 , - 322 , - 205 , - 1404 , - 159 , - 230 , - 865 , - 1312 , - 819 , - 138 , - 21 , - 1220 , - 1479 , - 46 , - 681 , - 1128 , - 635 , - 1458 , - 1341 , - 1036 , - 1295 , - 1366 , - 497 , - 944 , - 451 , - 1274 , - 1157 , - 852 , - 1111 , - 1182 , - 313 , - 760 , - 267 , - 1090 , - 973 , - 668 , - 927 , - 998 , - 129 , - 576 , - 83 , - 906 , - 789 , - 484 , - 743 , - 814 , - 1449 , - 392 , - 1403 , - 722 , - 605 , - 300 , - 559 , - 630 , - 1265 , - 208 , - 1219 , - 538 , - 421 , - 116 , - 375 , - 446 , - 1081 , - 24 , - 1035 , - 354 , - 237 , - 1436 , - 191 , - 262 , - 897 , - 1344 , - 851 , - 170 , - 53 , - 1252 , - 7 , - 78 , - 713 , - 1160 , - 667 , - 1490 , - 1373 , - 1068 , - 1327 , - 1398 , - 529 , - 976 , - 483 , - 1306 , - 1189 , - 884 , - 1143 , - 1214 , - 345 , - 792 , - 299 , - 1122 , - 1005 , - 700 , - 959 , - 1030 , - 161 , - 608 , - 115 , - 938 , - 821 , - 516 , - 775 , - 846 , - 1481 , - 424 , - 1435 , - 754 , - 637 , - 332 , - 591 , - 662 , - 1297 , - 240 , - 1251 , - 570 , - 453 , - 148 , - 407 , - 478 , - 1113 , - 56 , - 1067 , - 386 , - 269 , - 1468 , - 223 , - 294 , - 929 , - 1376 , - 883 , - 202 , - 85 , - 1284 , - 39 , - 110 , - 745 , - 1192 , - 699 , - 18 , - 1405 , - 1100 , - 1359 , - 1430 , - 561 , - 1008 , - 515 , - 1338 , - 1221 , - 916 , - 1175 , - 1246 , - 377 , - 824 , - 331 , - 1154 , - 1037 , - 732 , - 991 , - 1062 , - 193 , - 640 , - 147 , - 970 , - 853 , - 548 , - 807 , - 878 , - 9 , - 456 , - 1467 , - 786 , - 669 , - 364 , - 623 , - 694 , - 1329 , - 272 , - 1283 , - 602 , - 485 , - 180 , - 439 , - 510 , - 1145 , - 88 , - 1099 , - 418 , - 301 , - 1500 , - 255 , - 326 , - 961 , - 1408 , - 915 , - 234 , - 117 , - 1316 , - 71 , - 142 , - 777 , - 1224 , - 731 , - 50 , - 1437 , - 1132 , - 1391 , - 1462 , - 593 , - 1040 , - 547 , - 1370 , - 1253 , - 948 , - 1207 , - 1278 , - 409 , - 856 , - 363 , - 1186 , - 1069 , - 764 , - 1023 , - 1094 , - 225 , - 672 , - 179 , - 1002 , - 885 , - 580 , - 839 , - 910 , - 41 , - 488 , - 1499 , - 818 , - 701 , - 396 , - 655 , - 726 , - 1361 , - 304 , - 1315 , - 634 , - 517 , - 212 , - 471 , - 542 , - 1177 , - 120 , - 1131 , - 450 , - 333 , - 28 , - 287 , - 358 , - 993 , - 1440 , - 947 , - 266 , - 149 , - 1348 , - 103 , - 174 , - 809 , - 1256 , - 763 , - 82 , - 1469 , - 1164 , - 1423 , - 1494 , - 625 , - 1072 , - 579 , - 1402 , - 1285 , - 980 , - 1239 , - 1310 , - 441 , - 888 , - 395 , - 1218 , - 1101 , - 796 , - 1055 , - 1126 , - 257 , - 704 , - 211 , - 1034 , - 917 , - 612 , - 871 , - 942 , - 73 , - 520 , - 27 , - 850 , - 733 , - 428 , - 687 , - 758 , - 1393 , - 336 , - 1347 , - 666 , - 549 , - 244 , - 503 , - 574 , - 1209 , - 152 , - 1163 , - 482 , - 365 , - 60 , - 319 , - 390 , - 1025 , - 1472 , - 979 , - 298 , - 181 , - 1380 , - 135 , - 206 , - 841 , - 1288 , - 795 , - 114 , - 1501 , - 1196 , - 1455 , - 22 , - 657 , - 1104 , - 611 , - 1434 , - 1317 , - 1012 , - 1271 , - 1342 , - 473 , - 920 , - 427 , - 1250 , - 1133 , - 828 , - 1087 , - 1158 , - 289 , - 736 , - 243 , - 1066 , - 949 , - 644 , - 903 , - 974 , - 105 , - 552 , - 59 , - 882 , - 765 , - 460 , - 719 , - 790 , - 1425 , - 368 , - 1379 , - 698 , - 581 , - 276 , - 535 , - 606 , - 1241 , - 184 , - 1195 , - 514 , - 397 , - 92 , - 351 , - 422 , - 1057 , - 0 , - 551 , - 430 , - 1173 , - 1244 , - 643 , - 906 , - 497 , - 952 , - 735 , - 1382 , - 1357 , - 660 , - 827 , - 322 , - 681 , - 368 , - 919 , - 798 , - 5 , - 76 , - 1011 , - 1274 , - 865 , - 1320 , - 1103 , - 214 , - 189 , - 1028 , - 1195 , - 690 , - 1049 , - 736 , - 1287 , - 1166 , - 373 , - 444 , - 1379 , - 106 , - 1233 , - 152 , - 1471 , - 582 , - 557 , - 1396 , - 27 , - 1058 , - 1417 , - 1104 , - 119 , - 1534 , - 741 , - 812 , - 211 , - 474 , - 65 , - 520 , - 303 , - 950 , - 925 , - 228 , - 395 , - 1426 , - 249 , - 1472 , - 487 , - 366 , - 1109 , - 1180 , - 579 , - 842 , - 433 , - 888 , - 671 , - 1318 , - 1293 , - 596 , - 763 , - 258 , - 617 , - 304 , - 855 , - 734 , - 1477 , - 12 , - 947 , - 1210 , - 801 , - 1256 , - 1039 , - 150 , - 125 , - 964 , - 1131 , - 626 , - 985 , - 672 , - 1223 , - 1102 , - 309 , - 380 , - 1315 , - 42 , - 1169 , - 88 , - 1407 , - 518 , - 493 , - 1332 , - 1499 , - 994 , - 1353 , - 1040 , - 55 , - 1470 , - 677 , - 748 , - 147 , - 410 , - 1 , - 456 , - 239 , - 886 , - 861 , - 164 , - 331 , - 1362 , - 185 , - 1408 , - 423 , - 302 , - 1045 , - 1116 , - 515 , - 778 , - 369 , - 824 , - 607 , - 1254 , - 1229 , - 532 , - 699 , - 194 , - 553 , - 240 , - 791 , - 670 , - 1413 , - 1484 , - 883 , - 1146 , - 737 , - 1192 , - 975 , - 86 , - 61 , - 900 , - 1067 , - 562 , - 921 , - 608 , - 1159 , - 1038 , - 245 , - 316 , - 1251 , - 1514 , - 1105 , - 24 , - 1343 , - 454 , - 429 , - 1268 , - 1435 , - 930 , - 1289 , - 976 , - 1527 , - 1406 , - 613 , - 684 , - 83 , - 346 , - 1473 , - 392 , - 175 , - 822 , - 797 , - 100 , - 267 , - 1298 , - 121 , - 1344 , - 359 , - 238 , - 981 , - 1052 , - 451 , - 714 , - 305 , - 760 , - 543 , - 1190 , - 1165 , - 468 , - 635 , - 130 , - 489 , - 176 , - 727 , - 606 , - 1349 , - 1420 , - 819 , - 1082 , - 673 , - 1128 , - 911 , - 22 , - 1533 , - 836 , - 1003 , - 498 , - 857 , - 544 , - 1095 , - 974 , - 181 , - 252 , - 1187 , - 1450 , - 1041 , - 1496 , - 1279 , - 390 , - 365 , - 1204 , - 1371 , - 866 , - 1225 , - 912 , - 1463 , - 1342 , - 549 , - 620 , - 19 , - 282 , - 1409 , - 328 , - 111 , - 758 , - 733 , - 36 , - 203 , - 1234 , - 57 , - 1280 , - 295 , - 174 , - 917 , - 988 , - 387 , - 650 , - 241 , - 696 , - 479 , - 1126 , - 1101 , - 404 , - 571 , - 66 , - 425 , - 112 , - 663 , - 542 , - 1285 , - 1356 , - 755 , - 1018 , - 609 , - 1064 , - 847 , - 1494 , - 1469 , - 772 , - 939 , - 434 , - 793 , - 480 , - 1031 , - 910 , - 117 , - 188 , - 1123 , - 1386 , - 977 , - 1432 , - 1215 , - 326 , - 301 , - 1140 , - 1307 , - 802 , - 1161 , - 848 , - 1399 , - 1278 , - 485 , - 556 , - 1491 , - 218 , - 1345 , - 264 , - 47 , - 694 , - 669 , - 1508 , - 139 , - 1170 , - 1529 , - 1216 , - 231 , - 110 , - 853 , - 924 , - 323 , - 586 , - 177 , - 632 , - 415 , - 1062 , - 1037 , - 340 , - 507 , - 2 , - 361 , - 48 , - 599 , - 478 , - 1221 , - 1292 , - 691 , - 954 , - 545 , - 1000 , - 783 , - 1430 , - 1405 , - 708 , - 875 , - 370 , - 729 , - 416 , - 967 , - 846 , - 53 , - 124 , - 1059 , - 1322 , - 913 , - 1368 , - 1151 , - 262 , - 237 , - 1076 , - 1243 , - 738 , - 1097 , - 784 , - 1335 , - 1214 , - 421 , - 492 , - 1427 , - 154 , - 1281 , - 200 , - 1519 , - 630 , - 605 , - 1444 , - 75 , - 1106 , - 1465 , - 1152 , - 167 , - 46 , - 789 , - 860 , - 259 , - 522 , - 113 , - 568 , - 351 , - 998 , - 973 , - 276 , - 443 , - 1474 , - 297 , - 1520 , - 535 , - 414 , - 1157 , - 1228 , - 627 , - 890 , - 481 , - 936 , - 719 , - 1366 , - 1341 , - 644 , - 811 , - 306 , - 665 , - 352 , - 903 , - 782 , - 1525 , - 60 , - 995 , - 1258 , - 849 , - 1304 , - 1087 , - 198 , - 173 , - 1012 , - 1179 , - 674 , - 1033 , - 720 , - 1271 , - 1150 , - 357 , - 428 , - 1363 , - 90 , - 1217 , - 136 , - 1455 , - 566 , - 541 , - 1380 , - 11 , - 1042 , - 1401 , - 1088 , - 103 , - 1518 , - 725 , - 796 , - 195 , - 458 , - 49 , - 504 , - 287 , - 934 , - 909 , - 212 , - 379 , - 1410 , - 233 , - 1456 , - 471 , - 350 , - 1093 , - 1164 , - 563 , - 826 , - 417 , - 872 , - 655 , - 1302 , - 1277 , - 580 , - 747 , - 242 , - 601 , - 288 , - 839 , - 718 , - 1461 , - 1532 , - 931 , - 1194 , - 785 , - 1240 , - 1023 , - 134 , - 109 , - 948 , - 1115 , - 610 , - 969 , - 656 , - 1207 , - 1086 , - 293 , - 364 , - 1299 , - 26 , - 1153 , - 72 , - 1391 , - 502 , - 477 , - 1316 , - 1483 , - 978 , - 1337 , - 1024 , - 39 , - 1454 , - 661 , - 732 , - 131 , - 394 , - 1521 , - 440 , - 223 , - 870 , - 845 , - 148 , - 315 , - 1346 , - 169 , - 1392 , - 407 , - 286 , - 1029 , - 1100 , - 499 , - 762 , - 353 , - 808 , - 591 , - 1238 , - 1213 , - 516 , - 683 , - 178 , - 537 , - 224 , - 775 , - 654 , - 1397 , - 1468 , - 867 , - 1130 , - 721 , - 1176 , - 959 , - 70 , - 45 , - 884 , - 1051 , - 546 , - 905 , - 592 , - 1143 , - 1022 , - 229 , - 300 , - 1235 , - 1498 , - 1089 , - 8 , - 1327 , - 438 , - 413 , - 1252 , - 1419 , - 914 , - 1273 , - 960 , - 1511 , - 1390 , - 597 , - 668 , - 67 , - 330 , - 1457 , - 376 , - 159 , - 806 , - 781 , - 84 , - 251 , - 1282 , - 105 , - 1328 , - 343 , - 222 , - 965 , - 1036 , - 435 , - 698 , - 289 , - 744 , - 527 , - 1174 , - 1149 , - 452 , - 619 , - 114 , - 473 , - 160 , - 711 , - 590 , - 1333 , - 1404 , - 803 , - 1066 , - 657 , - 1112 , - 895 , - 6 , - 1517 , - 820 , - 987 , - 482 , - 841 , - 528 , - 1079 , - 958 , - 165 , - 236 , - 1171 , - 1434 , - 1025 , - 1480 , - 1263 , - 374 , - 349 , - 1188 , - 1355 , - 850 , - 1209 , - 896 , - 1447 , - 1326 , - 533 , - 604 , - 3 , - 266 , - 1393 , - 312 , - 95 , - 742 , - 717 , - 20 , - 187 , - 1218 , - 41 , - 1264 , - 279 , - 158 , - 901 , - 972 , - 371 , - 634 , - 225 , - 680 , - 463 , - 1110 , - 1085 , - 388 , - 555 , - 50 , - 409 , - 96 , - 647 , - 526 , - 1269 , - 1340 , - 739 , - 1002 , - 593 , - 1048 , - 831 , - 1478 , - 1453 , - 756 , - 923 , - 418 , - 777 , - 464 , - 1015 , - 894 , - 101 , - 172 , - 1107 , - 1370 , - 961 , - 1416 , - 1199 , - 310 , - 285 , - 1124 , - 1291 , - 786 , - 1145 , - 832 , - 1383 , - 1262 , - 469 , - 540 , - 1475 , - 202 , - 1329 , - 248 , - 31 , - 678 , - 653 , - 1492 , - 123 , - 1154 , - 1513 , - 1200 , - 215 , - 94 , - 837 , - 908 , - 307 , - 570 , - 161 , - 616 , - 399 , - 1046 , - 1021 , - 324 , - 491 , - 1522 , - 345 , - 32 , - 583 , - 462 , - 1205 , - 1276 , - 675 , - 938 , - 529 , - 984 , - 767 , - 1414 , - 1389 , - 692 , - 859 , - 354 , - 713 , - 400 , - 951 , - 830 , - 37 , - 108 , - 1043 , - 1306 , - 897 , - 1352 , - 1135 , - 246 , - 221 , - 1060 , - 1227 , - 722 , - 1081 , - 768 , - 1319 , - 1198 , - 405 , - 476 , - 1411 , - 138 , - 1265 , - 184 , - 1503 , - 614 , - 589 , - 1428 , - 59 , - 1090 , - 1449 , - 1136 , - 151 , - 30 , - 773 , - 844 , - 243 , - 506 , - 97 , - 552 , - 335 , - 982 , - 957 , - 260 , - 427 , - 1458 , - 281 , - 1504 , - 519 , - 398 , - 1141 , - 1212 , - 611 , - 874 , - 465 , - 920 , - 703 , - 1350 , - 1325 , - 628 , - 795 , - 290 , - 649 , - 336 , - 887 , - 766 , - 1509 , - 44 , - 979 , - 1242 , - 833 , - 1288 , - 1071 , - 182 , - 157 , - 996 , - 1163 , - 658 , - 1017 , - 704 , - 1255 , - 1134 , - 341 , - 412 , - 1347 , - 74 , - 1201 , - 120 , - 1439 , - 550 , - 525 , - 1364 , - 1531 , - 1026 , - 1385 , - 1072 , - 87 , - 1502 , - 709 , - 780 , - 179 , - 442 , - 33 , - 488 , - 271 , - 918 , - 893 , - 196 , - 363 , - 1394 , - 217 , - 1440 , - 455 , - 334 , - 1077 , - 1148 , - 547 , - 810 , - 401 , - 856 , - 639 , - 1286 , - 1261 , - 564 , - 731 , - 226 , - 585 , - 272 , - 823 , - 702 , - 1445 , - 1516 , - 915 , - 1178 , - 769 , - 1224 , - 1007 , - 118 , - 93 , - 932 , - 1099 , - 594 , - 953 , - 640 , - 1191 , - 1070 , - 277 , - 348 , - 1283 , - 10 , - 1137 , - 56 , - 1375 , - 486 , - 461 , - 1300 , - 1467 , - 962 , - 1321 , - 1008 , - 23 , - 1438 , - 645 , - 716 , - 115 , - 378 , - 1505 , - 424 , - 207 , - 854 , - 829 , - 132 , - 299 , - 1330 , - 153 , - 1376 , - 391 , - 270 , - 1013 , - 1084 , - 483 , - 746 , - 337 , - 792 , - 575 , - 1222 , - 1197 , - 500 , - 667 , - 162 , - 521 , - 208 , - 759 , - 638 , - 1381 , - 1452 , - 851 , - 1114 , - 705 , - 1160 , - 943 , - 54 , - 29 , - 868 , - 1035 , - 530 , - 889 , - 576 , - 1127 , - 1006 , - 213 , - 284 , - 1219 , - 1482 , - 1073 , - 1528 , - 1311 , - 422 , - 397 , - 1236 , - 1403 , - 898 , - 1257 , - 944 , - 1495 , - 1374 , - 581 , - 652 , - 51 , - 314 , - 1441 , - 360 , - 143 , - 790 , - 765 , - 68 , - 235 , - 1266 , - 89 , - 1312 , - 327 , - 206 , - 949 , - 1020 , - 419 , - 682 , - 273 , - 728 , - 511 , - 1158 , - 1133 , - 436 , - 603 , - 98 , - 457 , - 144 , - 695 , - 574 , - 1317 , - 1388 , - 787 , - 1050 , - 641 , - 1096 , - 879 , - 1526 , - 1501 , - 804 , - 971 , - 466 , - 825 , - 512 , - 1063 , - 942 , - 149 , - 220 , - 1155 , - 1418 , - 1009 , - 1464 , - 1247 , - 358 , - 333 , - 1172 , - 1339 , - 834 , - 1193 , - 880 , - 1431 , - 1310 , - 517 , - 588 , - 1523 , - 250 , - 1377 , - 296 , - 79 , - 726 , - 701 , - 4 , - 171 , - 1202 , - 25 , - 1248 , - 263 , - 142 , - 885 , - 956 , - 355 , - 618 , - 209 , - 664 , - 447 , - 1094 , - 1069 , - 372 , - 539 , - 34 , - 393 , - 80 , - 631 , - 510 , - 1253 , - 1324 , - 723 , - 986 , - 577 , - 1032 , - 815 , - 1462 , - 1437 , - 740 , - 907 , - 402 , - 761 , - 448 , - 999 , - 878 , - 85 , - 156 , - 1091 , - 1354 , - 945 , - 1400 , - 1183 , - 294 , - 269 , - 1108 , - 1275 , - 770 , - 1129 , - 816 , - 1367 , - 1246 , - 453 , - 524 , - 1459 , - 186 , - 1313 , - 232 , - 15 , - 662 , - 637 , - 1476 , - 107 , - 1138 , - 1497 , - 1184 , - 199 , - 78 , - 821 , - 892 , - 291 , - 554 , - 145 , - 600 , - 383 , - 1030 , - 1005 , - 308 , - 475 , - 1506 , - 329 , - 16 , - 567 , - 446 , - 1189 , - 1260 , - 659 , - 922 , - 513 , - 968 , - 751 , - 1398 , - 1373 , - 676 , - 843 , - 338 , - 697 , - 384 , - 935 , - 814 , - 21 , - 92 , - 1027 , - 1290 , - 881 , - 1336 , - 1119 , - 230 , - 205 , - 1044 , - 1211 , - 706 , - 1065 , - 752 , - 1303 , - 1182 , - 389 , - 460 , - 1395 , - 122 , - 1249 , - 168 , - 1487 , - 598 , - 573 , - 1412 , - 43 , - 1074 , - 1433 , - 1120 , - 135 , - 14 , - 757 , - 828 , - 227 , - 490 , - 81 , - 536 , - 319 , - 966 , - 941 , - 244 , - 411 , - 1442 , - 265 , - 1488 , - 503 , - 382 , - 1125 , - 1196 , - 595 , - 858 , - 449 , - 904 , - 687 , - 1334 , - 1309 , - 612 , - 779 , - 274 , - 633 , - 320 , - 871 , - 750 , - 1493 , - 28 , - 963 , - 1226 , - 817 , - 1272 , - 1055 , - 166 , - 141 , - 980 , - 1147 , - 642 , - 1001 , - 688 , - 1239 , - 1118 , - 325 , - 396 , - 1331 , - 58 , - 1185 , - 104 , - 1423 , - 534 , - 509 , - 1348 , - 1515 , - 1010 , - 1369 , - 1056 , - 71 , - 1486 , - 693 , - 764 , - 163 , - 426 , - 17 , - 472 , - 255 , - 902 , - 877 , - 180 , - 347 , - 1378 , - 201 , - 1424 , - 439 , - 318 , - 1061 , - 1132 , - 531 , - 794 , - 385 , - 840 , - 623 , - 1270 , - 1245 , - 548 , - 715 , - 210 , - 569 , - 256 , - 807 , - 686 , - 1429 , - 1500 , - 899 , - 1162 , - 753 , - 1208 , - 991 , - 102 , - 77 , - 916 , - 1083 , - 578 , - 937 , - 624 , - 1175 , - 1054 , - 261 , - 332 , - 1267 , - 1530 , - 1121 , - 40 , - 1359 , - 470 , - 445 , - 1284 , - 1451 , - 946 , - 1305 , - 992 , - 7 , - 1422 , - 629 , - 700 , - 99 , - 362 , - 1489 , - 408 , - 191 , - 838 , - 813 , - 116 , - 283 , - 1314 , - 137 , - 1360 , - 375 , - 254 , - 997 , - 1068 , - 467 , - 730 , - 321 , - 776 , - 559 , - 1206 , - 1181 , - 484 , - 651 , - 146 , - 505 , - 192 , - 743 , - 622 , - 1365 , - 1436 , - 835 , - 1098 , - 689 , - 1144 , - 927 , - 38 , - 13 , - 852 , - 1019 , - 514 , - 873 , - 560 , - 1111 , - 990 , - 197 , - 268 , - 1203 , - 1466 , - 1057 , - 1512 , - 1295 , - 406 , - 381 , - 1220 , - 1387 , - 882 , - 1241 , - 928 , - 1479 , - 1358 , - 565 , - 636 , - 35 , - 298 , - 1425 , - 344 , - 127 , - 774 , - 749 , - 52 , - 219 , - 1250 , - 73 , - 1296 , - 311 , - 190 , - 933 , - 1004 , - 403 , - 666 , - 257 , - 712 , - 495 , - 1142 , - 1117 , - 420 , - 587 , - 82 , - 441 , - 128 , - 679 , - 558 , - 1301 , - 1372 , - 771 , - 1034 , - 625 , - 1080 , - 863 , - 1510 , - 1485 , - 788 , - 955 , - 450 , - 809 , - 496 , - 1047 , - 926 , - 133 , - 204 , - 1139 , - 1402 , - 993 , - 1448 , - 1231 , - 342 , - 317 , - 1156 , - 1323 , - 818 , - 1177 , - 864 , - 1415 , - 1294 , - 501 , - 572 , - 1507 , - 234 , - 1361 , - 280 , - 63 , - 710 , - 685 , - 1524 , - 155 , - 1186 , - 9 , - 1232 , - 247 , - 126 , - 869 , - 940 , - 339 , - 602 , - 193 , - 648 , - 431 , - 1078 , - 1053 , - 356 , - 523 , - 18 , - 377 , - 64 , - 615 , - 494 , - 1237 , - 1308 , - 707 , - 970 , - 561 , - 1016 , - 799 , - 1446 , - 1421 , - 724 , - 891 , - 386 , - 745 , - 432 , - 983 , - 862 , - 69 , - 140 , - 1075 , - 1338 , - 929 , - 1384 , - 1167 , - 278 , - 253 , - 1092 , - 1259 , - 754 , - 1113 , - 800 , - 1351 , - 1230 , - 437 , - 508 , - 1443 , - 170 , - 1297 , - 216 , - 1535 , - 646 , - 621 , - 1460 , - 91 , - 1122 , - 1481 , - 1168 , - 183 , - 62 , - 805 , - 876 , - 275 , - 538 , - 129 , - 584 , - 367 , - 1014 , - 989 , - 292 , - 459 , - 1490 , - 313 , - 0 , - 601 , - 474 , - 1187 , - 1172 , - 429 , - 526 , - 1463 , - 104 , - 1153 , - 1474 , - 1067 , - 1500 , - 1205 , - 182 , - 1567 , - 656 , - 585 , - 1354 , - 1395 , - 708 , - 861 , - 286 , - 551 , - 88 , - 465 , - 114 , - 603 , - 364 , - 965 , - 838 , - 1551 , - 1536 , - 793 , - 890 , - 259 , - 468 , - 1517 , - 270 , - 1431 , - 296 , - 1 , - 546 , - 363 , - 1020 , - 949 , - 150 , - 191 , - 1072 , - 1225 , - 650 , - 915 , - 452 , - 829 , - 478 , - 967 , - 728 , - 1329 , - 1202 , - 347 , - 332 , - 1157 , - 1254 , - 623 , - 832 , - 313 , - 634 , - 227 , - 660 , - 365 , - 910 , - 727 , - 1384 , - 1313 , - 514 , - 555 , - 1436 , - 21 , - 1014 , - 1279 , - 816 , - 1193 , - 842 , - 1331 , - 1092 , - 125 , - 1566 , - 711 , - 696 , - 1521 , - 50 , - 987 , - 1196 , - 677 , - 998 , - 591 , - 1024 , - 729 , - 1274 , - 1091 , - 180 , - 109 , - 878 , - 919 , - 232 , - 385 , - 1378 , - 75 , - 1180 , - 1557 , - 1206 , - 127 , - 1456 , - 489 , - 362 , - 1075 , - 1060 , - 317 , - 414 , - 1351 , - 1560 , - 1041 , - 1362 , - 955 , - 1388 , - 1093 , - 70 , - 1455 , - 544 , - 473 , - 1242 , - 1283 , - 596 , - 749 , - 174 , - 439 , - 1544 , - 353 , - 2 , - 491 , - 252 , - 853 , - 726 , - 1439 , - 1424 , - 681 , - 778 , - 147 , - 356 , - 1405 , - 158 , - 1319 , - 184 , - 1457 , - 434 , - 251 , - 908 , - 837 , - 38 , - 79 , - 960 , - 1113 , - 538 , - 803 , - 340 , - 717 , - 366 , - 855 , - 616 , - 1217 , - 1090 , - 235 , - 220 , - 1045 , - 1142 , - 511 , - 720 , - 201 , - 522 , - 115 , - 548 , - 253 , - 798 , - 615 , - 1272 , - 1201 , - 402 , - 443 , - 1324 , - 1477 , - 902 , - 1167 , - 704 , - 1081 , - 730 , - 1219 , - 980 , - 13 , - 1454 , - 599 , - 584 , - 1409 , - 1506 , - 875 , - 1084 , - 565 , - 886 , - 479 , - 912 , - 617 , - 1162 , - 979 , - 68 , - 1565 , - 766 , - 807 , - 120 , - 273 , - 1266 , - 1531 , - 1068 , - 1445 , - 1094 , - 15 , - 1344 , - 377 , - 250 , - 963 , - 948 , - 205 , - 302 , - 1239 , - 1448 , - 929 , - 1250 , - 843 , - 1276 , - 981 , - 1526 , - 1343 , - 432 , - 361 , - 1130 , - 1171 , - 484 , - 637 , - 62 , - 327 , - 1432 , - 241 , - 1458 , - 379 , - 140 , - 741 , - 614 , - 1327 , - 1312 , - 569 , - 666 , - 35 , - 244 , - 1293 , - 46 , - 1207 , - 72 , - 1345 , - 322 , - 139 , - 796 , - 725 , - 1494 , - 1535 , - 848 , - 1001 , - 426 , - 691 , - 228 , - 605 , - 254 , - 743 , - 504 , - 1105 , - 978 , - 123 , - 108 , - 933 , - 1030 , - 399 , - 608 , - 89 , - 410 , - 3 , - 436 , - 141 , - 686 , - 503 , - 1160 , - 1089 , - 290 , - 331 , - 1212 , - 1365 , - 790 , - 1055 , - 592 , - 969 , - 618 , - 1107 , - 868 , - 1469 , - 1342 , - 487 , - 472 , - 1297 , - 1394 , - 763 , - 972 , - 453 , - 774 , - 367 , - 800 , - 505 , - 1050 , - 867 , - 1524 , - 1453 , - 654 , - 695 , - 8 , - 161 , - 1154 , - 1419 , - 956 , - 1333 , - 982 , - 1471 , - 1232 , - 265 , - 138 , - 851 , - 836 , - 93 , - 190 , - 1127 , - 1336 , - 817 , - 1138 , - 731 , - 1164 , - 869 , - 1414 , - 1231 , - 320 , - 249 , - 1018 , - 1059 , - 372 , - 525 , - 1518 , - 215 , - 1320 , - 129 , - 1346 , - 267 , - 28 , - 629 , - 502 , - 1215 , - 1200 , - 457 , - 554 , - 1491 , - 132 , - 1181 , - 1502 , - 1095 , - 1528 , - 1233 , - 210 , - 27 , - 684 , - 613 , - 1382 , - 1423 , - 736 , - 889 , - 314 , - 579 , - 116 , - 493 , - 142 , - 631 , - 392 , - 993 , - 866 , - 11 , - 1564 , - 821 , - 918 , - 287 , - 496 , - 1545 , - 298 , - 1459 , - 324 , - 29 , - 574 , - 391 , - 1048 , - 977 , - 178 , - 219 , - 1100 , - 1253 , - 678 , - 943 , - 480 , - 857 , - 506 , - 995 , - 756 , - 1357 , - 1230 , - 375 , - 360 , - 1185 , - 1282 , - 651 , - 860 , - 341 , - 662 , - 255 , - 688 , - 393 , - 938 , - 755 , - 1412 , - 1341 , - 542 , - 583 , - 1464 , - 49 , - 1042 , - 1307 , - 844 , - 1221 , - 870 , - 1359 , - 1120 , - 153 , - 26 , - 739 , - 724 , - 1549 , - 78 , - 1015 , - 1224 , - 705 , - 1026 , - 619 , - 1052 , - 757 , - 1302 , - 1119 , - 208 , - 137 , - 906 , - 947 , - 260 , - 413 , - 1406 , - 103 , - 1208 , - 17 , - 1234 , - 155 , - 1484 , - 517 , - 390 , - 1103 , - 1088 , - 345 , - 442 , - 1379 , - 20 , - 1069 , - 1390 , - 983 , - 1416 , - 1121 , - 98 , - 1483 , - 572 , - 501 , - 1270 , - 1311 , - 624 , - 777 , - 202 , - 467 , - 4 , - 381 , - 30 , - 519 , - 280 , - 881 , - 754 , - 1467 , - 1452 , - 709 , - 806 , - 175 , - 384 , - 1433 , - 186 , - 1347 , - 212 , - 1485 , - 462 , - 279 , - 936 , - 865 , - 66 , - 107 , - 988 , - 1141 , - 566 , - 831 , - 368 , - 745 , - 394 , - 883 , - 644 , - 1245 , - 1118 , - 263 , - 248 , - 1073 , - 1170 , - 539 , - 748 , - 229 , - 550 , - 143 , - 576 , - 281 , - 826 , - 643 , - 1300 , - 1229 , - 430 , - 471 , - 1352 , - 1505 , - 930 , - 1195 , - 732 , - 1109 , - 758 , - 1247 , - 1008 , - 41 , - 1482 , - 627 , - 612 , - 1437 , - 1534 , - 903 , - 1112 , - 593 , - 914 , - 507 , - 940 , - 645 , - 1190 , - 1007 , - 96 , - 25 , - 794 , - 835 , - 148 , - 301 , - 1294 , - 1559 , - 1096 , - 1473 , - 1122 , - 43 , - 1372 , - 405 , - 278 , - 991 , - 976 , - 233 , - 330 , - 1267 , - 1476 , - 957 , - 1278 , - 871 , - 1304 , - 1009 , - 1554 , - 1371 , - 460 , - 389 , - 1158 , - 1199 , - 512 , - 665 , - 90 , - 355 , - 1460 , - 269 , - 1486 , - 407 , - 168 , - 769 , - 642 , - 1355 , - 1340 , - 597 , - 694 , - 63 , - 272 , - 1321 , - 74 , - 1235 , - 100 , - 1373 , - 350 , - 167 , - 824 , - 753 , - 1522 , - 1563 , - 876 , - 1029 , - 454 , - 719 , - 256 , - 633 , - 282 , - 771 , - 532 , - 1133 , - 1006 , - 151 , - 136 , - 961 , - 1058 , - 427 , - 636 , - 117 , - 438 , - 31 , - 464 , - 169 , - 714 , - 531 , - 1188 , - 1117 , - 318 , - 359 , - 1240 , - 1393 , - 818 , - 1083 , - 620 , - 997 , - 646 , - 1135 , - 896 , - 1497 , - 1370 , - 515 , - 500 , - 1325 , - 1422 , - 791 , - 1000 , - 481 , - 802 , - 395 , - 828 , - 533 , - 1078 , - 895 , - 1552 , - 1481 , - 682 , - 723 , - 36 , - 189 , - 1182 , - 1447 , - 984 , - 1361 , - 1010 , - 1499 , - 1260 , - 293 , - 166 , - 879 , - 864 , - 121 , - 218 , - 1155 , - 1364 , - 845 , - 1166 , - 759 , - 1192 , - 897 , - 1442 , - 1259 , - 348 , - 277 , - 1046 , - 1087 , - 400 , - 553 , - 1546 , - 243 , - 1348 , - 157 , - 1374 , - 295 , - 56 , - 657 , - 530 , - 1243 , - 1228 , - 485 , - 582 , - 1519 , - 160 , - 1209 , - 1530 , - 1123 , - 1556 , - 1261 , - 238 , - 55 , - 712 , - 641 , - 1410 , - 1451 , - 764 , - 917 , - 342 , - 607 , - 144 , - 521 , - 170 , - 659 , - 420 , - 1021 , - 894 , - 39 , - 24 , - 849 , - 946 , - 315 , - 524 , - 5 , - 326 , - 1487 , - 352 , - 57 , - 602 , - 419 , - 1076 , - 1005 , - 206 , - 247 , - 1128 , - 1281 , - 706 , - 971 , - 508 , - 885 , - 534 , - 1023 , - 784 , - 1385 , - 1258 , - 403 , - 388 , - 1213 , - 1310 , - 679 , - 888 , - 369 , - 690 , - 283 , - 716 , - 421 , - 966 , - 783 , - 1440 , - 1369 , - 570 , - 611 , - 1492 , - 77 , - 1070 , - 1335 , - 872 , - 1249 , - 898 , - 1387 , - 1148 , - 181 , - 54 , - 767 , - 752 , - 9 , - 106 , - 1043 , - 1252 , - 733 , - 1054 , - 647 , - 1080 , - 785 , - 1330 , - 1147 , - 236 , - 165 , - 934 , - 975 , - 288 , - 441 , - 1434 , - 131 , - 1236 , - 45 , - 1262 , - 183 , - 1512 , - 545 , - 418 , - 1131 , - 1116 , - 373 , - 470 , - 1407 , - 48 , - 1097 , - 1418 , - 1011 , - 1444 , - 1149 , - 126 , - 1511 , - 600 , - 529 , - 1298 , - 1339 , - 652 , - 805 , - 230 , - 495 , - 32 , - 409 , - 58 , - 547 , - 308 , - 909 , - 782 , - 1495 , - 1480 , - 737 , - 834 , - 203 , - 412 , - 1461 , - 214 , - 1375 , - 240 , - 1513 , - 490 , - 307 , - 964 , - 893 , - 94 , - 135 , - 1016 , - 1169 , - 594 , - 859 , - 396 , - 773 , - 422 , - 911 , - 672 , - 1273 , - 1146 , - 291 , - 276 , - 1101 , - 1198 , - 567 , - 776 , - 257 , - 578 , - 171 , - 604 , - 309 , - 854 , - 671 , - 1328 , - 1257 , - 458 , - 499 , - 1380 , - 1533 , - 958 , - 1223 , - 760 , - 1137 , - 786 , - 1275 , - 1036 , - 69 , - 1510 , - 655 , - 640 , - 1465 , - 1562 , - 931 , - 1140 , - 621 , - 942 , - 535 , - 968 , - 673 , - 1218 , - 1035 , - 124 , - 53 , - 822 , - 863 , - 176 , - 329 , - 1322 , - 19 , - 1124 , - 1501 , - 1150 , - 71 , - 1400 , - 433 , - 306 , - 1019 , - 1004 , - 261 , - 358 , - 1295 , - 1504 , - 985 , - 1306 , - 899 , - 1332 , - 1037 , - 14 , - 1399 , - 488 , - 417 , - 1186 , - 1227 , - 540 , - 693 , - 118 , - 383 , - 1488 , - 297 , - 1514 , - 435 , - 196 , - 797 , - 670 , - 1383 , - 1368 , - 625 , - 722 , - 91 , - 300 , - 1349 , - 102 , - 1263 , - 128 , - 1401 , - 378 , - 195 , - 852 , - 781 , - 1550 , - 23 , - 904 , - 1057 , - 482 , - 747 , - 284 , - 661 , - 310 , - 799 , - 560 , - 1161 , - 1034 , - 179 , - 164 , - 989 , - 1086 , - 455 , - 664 , - 145 , - 466 , - 59 , - 492 , - 197 , - 742 , - 559 , - 1216 , - 1145 , - 346 , - 387 , - 1268 , - 1421 , - 846 , - 1111 , - 648 , - 1025 , - 674 , - 1163 , - 924 , - 1525 , - 1398 , - 543 , - 528 , - 1353 , - 1450 , - 819 , - 1028 , - 509 , - 830 , - 423 , - 856 , - 561 , - 1106 , - 923 , - 12 , - 1509 , - 710 , - 751 , - 64 , - 217 , - 1210 , - 1475 , - 1012 , - 1389 , - 1038 , - 1527 , - 1288 , - 321 , - 194 , - 907 , - 892 , - 149 , - 246 , - 1183 , - 1392 , - 873 , - 1194 , - 787 , - 1220 , - 925 , - 1470 , - 1287 , - 376 , - 305 , - 1074 , - 1115 , - 428 , - 581 , - 6 , - 271 , - 1376 , - 185 , - 1402 , - 323 , - 84 , - 685 , - 558 , - 1271 , - 1256 , - 513 , - 610 , - 1547 , - 188 , - 1237 , - 1558 , - 1151 , - 16 , - 1289 , - 266 , - 83 , - 740 , - 669 , - 1438 , - 1479 , - 792 , - 945 , - 370 , - 635 , - 172 , - 549 , - 198 , - 687 , - 448 , - 1049 , - 922 , - 67 , - 52 , - 877 , - 974 , - 343 , - 552 , - 33 , - 354 , - 1515 , - 380 , - 85 , - 630 , - 447 , - 1104 , - 1033 , - 234 , - 275 , - 1156 , - 1309 , - 734 , - 999 , - 536 , - 913 , - 562 , - 1051 , - 812 , - 1413 , - 1286 , - 431 , - 416 , - 1241 , - 1338 , - 707 , - 916 , - 397 , - 718 , - 311 , - 744 , - 449 , - 994 , - 811 , - 1468 , - 1397 , - 598 , - 639 , - 1520 , - 105 , - 1098 , - 1363 , - 900 , - 1277 , - 926 , - 1415 , - 1176 , - 209 , - 82 , - 795 , - 780 , - 37 , - 134 , - 1071 , - 1280 , - 761 , - 1082 , - 675 , - 1108 , - 813 , - 1358 , - 1175 , - 264 , - 193 , - 962 , - 1003 , - 316 , - 469 , - 1462 , - 159 , - 1264 , - 73 , - 1290 , - 211 , - 1540 , - 573 , - 446 , - 1159 , - 1144 , - 401 , - 498 , - 1435 , - 76 , - 1125 , - 1446 , - 1039 , - 1472 , - 1177 , - 154 , - 1539 , - 628 , - 557 , - 1326 , - 1367 , - 680 , - 833 , - 258 , - 523 , - 60 , - 437 , - 86 , - 575 , - 336 , - 937 , - 810 , - 1523 , - 1508 , - 765 , - 862 , - 231 , - 440 , - 1489 , - 242 , - 1403 , - 268 , - 1541 , - 518 , - 335 , - 992 , - 921 , - 122 , - 163 , - 1044 , - 1197 , - 622 , - 887 , - 424 , - 801 , - 450 , - 939 , - 700 , - 1301 , - 1174 , - 319 , - 304 , - 1129 , - 1226 , - 595 , - 804 , - 285 , - 606 , - 199 , - 632 , - 337 , - 882 , - 699 , - 1356 , - 1285 , - 486 , - 527 , - 1408 , - 1561 , - 986 , - 1251 , - 788 , - 1165 , - 814 , - 1303 , - 1064 , - 97 , - 1538 , - 683 , - 668 , - 1493 , - 22 , - 959 , - 1168 , - 649 , - 970 , - 563 , - 996 , - 701 , - 1246 , - 1063 , - 152 , - 81 , - 850 , - 891 , - 204 , - 357 , - 1350 , - 47 , - 1152 , - 1529 , - 1178 , - 99 , - 1428 , - 461 , - 334 , - 1047 , - 1032 , - 289 , - 386 , - 1323 , - 1532 , - 1013 , - 1334 , - 927 , - 1360 , - 1065 , - 42 , - 1427 , - 516 , - 445 , - 1214 , - 1255 , - 568 , - 721 , - 146 , - 411 , - 1516 , - 325 , - 1542 , - 463 , - 224 , - 825 , - 698 , - 1411 , - 1396 , - 653 , - 750 , - 119 , - 328 , - 1377 , - 130 , - 1291 , - 156 , - 1429 , - 406 , - 223 , - 880 , - 809 , - 10 , - 51 , - 932 , - 1085 , - 510 , - 775 , - 312 , - 689 , - 338 , - 827 , - 588 , - 1189 , - 1062 , - 207 , - 192 , - 1017 , - 1114 , - 483 , - 692 , - 173 , - 494 , - 87 , - 520 , - 225 , - 770 , - 587 , - 1244 , - 1173 , - 374 , - 415 , - 1296 , - 1449 , - 874 , - 1139 , - 676 , - 1053 , - 702 , - 1191 , - 952 , - 1553 , - 1426 , - 571 , - 556 , - 1381 , - 1478 , - 847 , - 1056 , - 537 , - 858 , - 451 , - 884 , - 589 , - 1134 , - 951 , - 40 , - 1537 , - 738 , - 779 , - 92 , - 245 , - 1238 , - 1503 , - 1040 , - 1417 , - 1066 , - 1555 , - 1316 , - 349 , - 222 , - 935 , - 920 , - 177 , - 274 , - 1211 , - 1420 , - 901 , - 1222 , - 815 , - 1248 , - 953 , - 1498 , - 1315 , - 404 , - 333 , - 1102 , - 1143 , - 456 , - 609 , - 34 , - 299 , - 1404 , - 213 , - 1430 , - 351 , - 112 , - 713 , - 586 , - 1299 , - 1284 , - 541 , - 638 , - 7 , - 216 , - 1265 , - 18 , - 1179 , - 44 , - 1317 , - 294 , - 111 , - 768 , - 697 , - 1466 , - 1507 , - 820 , - 973 , - 398 , - 663 , - 200 , - 577 , - 226 , - 715 , - 476 , - 1077 , - 950 , - 95 , - 80 , - 905 , - 1002 , - 371 , - 580 , - 61 , - 382 , - 1543 , - 408 , - 113 , - 658 , - 475 , - 1132 , - 1061 , - 262 , - 303 , - 1184 , - 1337 , - 762 , - 1027 , - 564 , - 941 , - 590 , - 1079 , - 840 , - 1441 , - 1314 , - 459 , - 444 , - 1269 , - 1366 , - 735 , - 944 , - 425 , - 746 , - 339 , - 772 , - 477 , - 1022 , - 839 , - 1496 , - 1425 , - 626 , - 667 , - 1548 , - 133 , - 1126 , - 1391 , - 928 , - 1305 , - 954 , - 1443 , - 1204 , - 237 , - 110 , - 823 , - 808 , - 65 , - 162 , - 1099 , - 1308 , - 789 , - 1110 , - 703 , - 1136 , - 841 , - 1386 , - 1203 , - 292 , - 221 , - 990 , - 1031 , - 344 , - 497 , - 1490 , - 187 , - 1292 , - 101 , - 1318 , - 239 , - 0 , - 993 , - 866 , - 1219 , - 452 , - 165 , - 358 , - 1031 , - 584 , - 617 , - 1130 , - 523 , - 396 , - 749 , - 1582 , - 1295 , - 1488 , - 561 , - 114 , - 147 , - 660 , - 53 , - 1526 , - 279 , - 1112 , - 825 , - 1018 , - 91 , - 1244 , - 1277 , - 190 , - 1183 , - 1056 , - 1409 , - 642 , - 355 , - 548 , - 1221 , - 774 , - 807 , - 1320 , - 713 , - 586 , - 939 , - 172 , - 1485 , - 78 , - 751 , - 304 , - 337 , - 850 , - 243 , - 116 , - 469 , - 1302 , - 1015 , - 1208 , - 281 , - 1434 , - 1467 , - 380 , - 1373 , - 1246 , - 1599 , - 832 , - 545 , - 738 , - 1411 , - 964 , - 997 , - 1510 , - 903 , - 776 , - 1129 , - 362 , - 75 , - 268 , - 941 , - 494 , - 527 , - 1040 , - 433 , - 306 , - 659 , - 1492 , - 1205 , - 1398 , - 471 , - 24 , - 57 , - 570 , - 1563 , - 1436 , - 189 , - 1022 , - 735 , - 928 , - 1 , - 1154 , - 1187 , - 100 , - 1093 , - 966 , - 1319 , - 552 , - 265 , - 458 , - 1131 , - 684 , - 717 , - 1230 , - 623 , - 496 , - 849 , - 82 , - 1395 , - 1588 , - 661 , - 214 , - 247 , - 760 , - 153 , - 26 , - 379 , - 1212 , - 925 , - 1118 , - 191 , - 1344 , - 1377 , - 290 , - 1283 , - 1156 , - 1509 , - 742 , - 455 , - 648 , - 1321 , - 874 , - 907 , - 1420 , - 813 , - 686 , - 1039 , - 272 , - 1585 , - 178 , - 851 , - 404 , - 437 , - 950 , - 343 , - 216 , - 569 , - 1402 , - 1115 , - 1308 , - 381 , - 1534 , - 1567 , - 480 , - 1473 , - 1346 , - 99 , - 932 , - 645 , - 838 , - 1511 , - 1064 , - 1097 , - 10 , - 1003 , - 876 , - 1229 , - 462 , - 175 , - 368 , - 1041 , - 594 , - 627 , - 1140 , - 533 , - 406 , - 759 , - 1592 , - 1305 , - 1498 , - 571 , - 124 , - 157 , - 670 , - 63 , - 1536 , - 289 , - 1122 , - 835 , - 1028 , - 101 , - 1254 , - 1287 , - 200 , - 1193 , - 1066 , - 1419 , - 652 , - 365 , - 558 , - 1231 , - 784 , - 817 , - 1330 , - 723 , - 596 , - 949 , - 182 , - 1495 , - 88 , - 761 , - 314 , - 347 , - 860 , - 253 , - 126 , - 479 , - 1312 , - 1025 , - 1218 , - 291 , - 1444 , - 1477 , - 390 , - 1383 , - 1256 , - 9 , - 842 , - 555 , - 748 , - 1421 , - 974 , - 1007 , - 1520 , - 913 , - 786 , - 1139 , - 372 , - 85 , - 278 , - 951 , - 504 , - 537 , - 1050 , - 443 , - 316 , - 669 , - 1502 , - 1215 , - 1408 , - 481 , - 34 , - 67 , - 580 , - 1573 , - 1446 , - 199 , - 1032 , - 745 , - 938 , - 11 , - 1164 , - 1197 , - 110 , - 1103 , - 976 , - 1329 , - 562 , - 275 , - 468 , - 1141 , - 694 , - 727 , - 1240 , - 633 , - 506 , - 859 , - 92 , - 1405 , - 1598 , - 671 , - 224 , - 257 , - 770 , - 163 , - 36 , - 389 , - 1222 , - 935 , - 1128 , - 201 , - 1354 , - 1387 , - 300 , - 1293 , - 1166 , - 1519 , - 752 , - 465 , - 658 , - 1331 , - 884 , - 917 , - 1430 , - 823 , - 696 , - 1049 , - 282 , - 1595 , - 188 , - 861 , - 414 , - 447 , - 960 , - 353 , - 226 , - 579 , - 1412 , - 1125 , - 1318 , - 391 , - 1544 , - 1577 , - 490 , - 1483 , - 1356 , - 109 , - 942 , - 655 , - 848 , - 1521 , - 1074 , - 1107 , - 20 , - 1013 , - 886 , - 1239 , - 472 , - 185 , - 378 , - 1051 , - 604 , - 637 , - 1150 , - 543 , - 416 , - 769 , - 2 , - 1315 , - 1508 , - 581 , - 134 , - 167 , - 680 , - 73 , - 1546 , - 299 , - 1132 , - 845 , - 1038 , - 111 , - 1264 , - 1297 , - 210 , - 1203 , - 1076 , - 1429 , - 662 , - 375 , - 568 , - 1241 , - 794 , - 827 , - 1340 , - 733 , - 606 , - 959 , - 192 , - 1505 , - 98 , - 771 , - 324 , - 357 , - 870 , - 263 , - 136 , - 489 , - 1322 , - 1035 , - 1228 , - 301 , - 1454 , - 1487 , - 400 , - 1393 , - 1266 , - 19 , - 852 , - 565 , - 758 , - 1431 , - 984 , - 1017 , - 1530 , - 923 , - 796 , - 1149 , - 382 , - 95 , - 288 , - 961 , - 514 , - 547 , - 1060 , - 453 , - 326 , - 679 , - 1512 , - 1225 , - 1418 , - 491 , - 44 , - 77 , - 590 , - 1583 , - 1456 , - 209 , - 1042 , - 755 , - 948 , - 21 , - 1174 , - 1207 , - 120 , - 1113 , - 986 , - 1339 , - 572 , - 285 , - 478 , - 1151 , - 704 , - 737 , - 1250 , - 643 , - 516 , - 869 , - 102 , - 1415 , - 8 , - 681 , - 234 , - 267 , - 780 , - 173 , - 46 , - 399 , - 1232 , - 945 , - 1138 , - 211 , - 1364 , - 1397 , - 310 , - 1303 , - 1176 , - 1529 , - 762 , - 475 , - 668 , - 1341 , - 894 , - 927 , - 1440 , - 833 , - 706 , - 1059 , - 292 , - 5 , - 198 , - 871 , - 424 , - 457 , - 970 , - 363 , - 236 , - 589 , - 1422 , - 1135 , - 1328 , - 401 , - 1554 , - 1587 , - 500 , - 1493 , - 1366 , - 119 , - 952 , - 665 , - 858 , - 1531 , - 1084 , - 1117 , - 30 , - 1023 , - 896 , - 1249 , - 482 , - 195 , - 388 , - 1061 , - 614 , - 647 , - 1160 , - 553 , - 426 , - 779 , - 12 , - 1325 , - 1518 , - 591 , - 144 , - 177 , - 690 , - 83 , - 1556 , - 309 , - 1142 , - 855 , - 1048 , - 121 , - 1274 , - 1307 , - 220 , - 1213 , - 1086 , - 1439 , - 672 , - 385 , - 578 , - 1251 , - 804 , - 837 , - 1350 , - 743 , - 616 , - 969 , - 202 , - 1515 , - 108 , - 781 , - 334 , - 367 , - 880 , - 273 , - 146 , - 499 , - 1332 , - 1045 , - 1238 , - 311 , - 1464 , - 1497 , - 410 , - 1403 , - 1276 , - 29 , - 862 , - 575 , - 768 , - 1441 , - 994 , - 1027 , - 1540 , - 933 , - 806 , - 1159 , - 392 , - 105 , - 298 , - 971 , - 524 , - 557 , - 1070 , - 463 , - 336 , - 689 , - 1522 , - 1235 , - 1428 , - 501 , - 54 , - 87 , - 600 , - 1593 , - 1466 , - 219 , - 1052 , - 765 , - 958 , - 31 , - 1184 , - 1217 , - 130 , - 1123 , - 996 , - 1349 , - 582 , - 295 , - 488 , - 1161 , - 714 , - 747 , - 1260 , - 653 , - 526 , - 879 , - 112 , - 1425 , - 18 , - 691 , - 244 , - 277 , - 790 , - 183 , - 56 , - 409 , - 1242 , - 955 , - 1148 , - 221 , - 1374 , - 1407 , - 320 , - 1313 , - 1186 , - 1539 , - 772 , - 485 , - 678 , - 1351 , - 904 , - 937 , - 1450 , - 843 , - 716 , - 1069 , - 302 , - 15 , - 208 , - 881 , - 434 , - 467 , - 980 , - 373 , - 246 , - 599 , - 1432 , - 1145 , - 1338 , - 411 , - 1564 , - 1597 , - 510 , - 1503 , - 1376 , - 129 , - 962 , - 675 , - 868 , - 1541 , - 1094 , - 1127 , - 40 , - 1033 , - 906 , - 1259 , - 492 , - 205 , - 398 , - 1071 , - 624 , - 657 , - 1170 , - 563 , - 436 , - 789 , - 22 , - 1335 , - 1528 , - 601 , - 154 , - 187 , - 700 , - 93 , - 1566 , - 319 , - 1152 , - 865 , - 1058 , - 131 , - 1284 , - 1317 , - 230 , - 1223 , - 1096 , - 1449 , - 682 , - 395 , - 588 , - 1261 , - 814 , - 847 , - 1360 , - 753 , - 626 , - 979 , - 212 , - 1525 , - 118 , - 791 , - 344 , - 377 , - 890 , - 283 , - 156 , - 509 , - 1342 , - 1055 , - 1248 , - 321 , - 1474 , - 1507 , - 420 , - 1413 , - 1286 , - 39 , - 872 , - 585 , - 778 , - 1451 , - 1004 , - 1037 , - 1550 , - 943 , - 816 , - 1169 , - 402 , - 115 , - 308 , - 981 , - 534 , - 567 , - 1080 , - 473 , - 346 , - 699 , - 1532 , - 1245 , - 1438 , - 511 , - 64 , - 97 , - 610 , - 3 , - 1476 , - 229 , - 1062 , - 775 , - 968 , - 41 , - 1194 , - 1227 , - 140 , - 1133 , - 1006 , - 1359 , - 592 , - 305 , - 498 , - 1171 , - 724 , - 757 , - 1270 , - 663 , - 536 , - 889 , - 122 , - 1435 , - 28 , - 701 , - 254 , - 287 , - 800 , - 193 , - 66 , - 419 , - 1252 , - 965 , - 1158 , - 231 , - 1384 , - 1417 , - 330 , - 1323 , - 1196 , - 1549 , - 782 , - 495 , - 688 , - 1361 , - 914 , - 947 , - 1460 , - 853 , - 726 , - 1079 , - 312 , - 25 , - 218 , - 891 , - 444 , - 477 , - 990 , - 383 , - 256 , - 609 , - 1442 , - 1155 , - 1348 , - 421 , - 1574 , - 7 , - 520 , - 1513 , - 1386 , - 139 , - 972 , - 685 , - 878 , - 1551 , - 1104 , - 1137 , - 50 , - 1043 , - 916 , - 1269 , - 502 , - 215 , - 408 , - 1081 , - 634 , - 667 , - 1180 , - 573 , - 446 , - 799 , - 32 , - 1345 , - 1538 , - 611 , - 164 , - 197 , - 710 , - 103 , - 1576 , - 329 , - 1162 , - 875 , - 1068 , - 141 , - 1294 , - 1327 , - 240 , - 1233 , - 1106 , - 1459 , - 692 , - 405 , - 598 , - 1271 , - 824 , - 857 , - 1370 , - 763 , - 636 , - 989 , - 222 , - 1535 , - 128 , - 801 , - 354 , - 387 , - 900 , - 293 , - 166 , - 519 , - 1352 , - 1065 , - 1258 , - 331 , - 1484 , - 1517 , - 430 , - 1423 , - 1296 , - 49 , - 882 , - 595 , - 788 , - 1461 , - 1014 , - 1047 , - 1560 , - 953 , - 826 , - 1179 , - 412 , - 125 , - 318 , - 991 , - 544 , - 577 , - 1090 , - 483 , - 356 , - 709 , - 1542 , - 1255 , - 1448 , - 521 , - 74 , - 107 , - 620 , - 13 , - 1486 , - 239 , - 1072 , - 785 , - 978 , - 51 , - 1204 , - 1237 , - 150 , - 1143 , - 1016 , - 1369 , - 602 , - 315 , - 508 , - 1181 , - 734 , - 767 , - 1280 , - 673 , - 546 , - 899 , - 132 , - 1445 , - 38 , - 711 , - 264 , - 297 , - 810 , - 203 , - 76 , - 429 , - 1262 , - 975 , - 1168 , - 241 , - 1394 , - 1427 , - 340 , - 1333 , - 1206 , - 1559 , - 792 , - 505 , - 698 , - 1371 , - 924 , - 957 , - 1470 , - 863 , - 736 , - 1089 , - 322 , - 35 , - 228 , - 901 , - 454 , - 487 , - 1000 , - 393 , - 266 , - 619 , - 1452 , - 1165 , - 1358 , - 431 , - 1584 , - 17 , - 530 , - 1523 , - 1396 , - 149 , - 982 , - 695 , - 888 , - 1561 , - 1114 , - 1147 , - 60 , - 1053 , - 926 , - 1279 , - 512 , - 225 , - 418 , - 1091 , - 644 , - 677 , - 1190 , - 583 , - 456 , - 809 , - 42 , - 1355 , - 1548 , - 621 , - 174 , - 207 , - 720 , - 113 , - 1586 , - 339 , - 1172 , - 885 , - 1078 , - 151 , - 1304 , - 1337 , - 250 , - 1243 , - 1116 , - 1469 , - 702 , - 415 , - 608 , - 1281 , - 834 , - 867 , - 1380 , - 773 , - 646 , - 999 , - 232 , - 1545 , - 138 , - 811 , - 364 , - 397 , - 910 , - 303 , - 176 , - 529 , - 1362 , - 1075 , - 1268 , - 341 , - 1494 , - 1527 , - 440 , - 1433 , - 1306 , - 59 , - 892 , - 605 , - 798 , - 1471 , - 1024 , - 1057 , - 1570 , - 963 , - 836 , - 1189 , - 422 , - 135 , - 328 , - 1001 , - 554 , - 587 , - 1100 , - 493 , - 366 , - 719 , - 1552 , - 1265 , - 1458 , - 531 , - 84 , - 117 , - 630 , - 23 , - 1496 , - 249 , - 1082 , - 795 , - 988 , - 61 , - 1214 , - 1247 , - 160 , - 1153 , - 1026 , - 1379 , - 612 , - 325 , - 518 , - 1191 , - 744 , - 777 , - 1290 , - 683 , - 556 , - 909 , - 142 , - 1455 , - 48 , - 721 , - 274 , - 307 , - 820 , - 213 , - 86 , - 439 , - 1272 , - 985 , - 1178 , - 251 , - 1404 , - 1437 , - 350 , - 1343 , - 1216 , - 1569 , - 802 , - 515 , - 708 , - 1381 , - 934 , - 967 , - 1480 , - 873 , - 746 , - 1099 , - 332 , - 45 , - 238 , - 911 , - 464 , - 497 , - 1010 , - 403 , - 276 , - 629 , - 1462 , - 1175 , - 1368 , - 441 , - 1594 , - 27 , - 540 , - 1533 , - 1406 , - 159 , - 992 , - 705 , - 898 , - 1571 , - 1124 , - 1157 , - 70 , - 1063 , - 936 , - 1289 , - 522 , - 235 , - 428 , - 1101 , - 654 , - 687 , - 1200 , - 593 , - 466 , - 819 , - 52 , - 1365 , - 1558 , - 631 , - 184 , - 217 , - 730 , - 123 , - 1596 , - 349 , - 1182 , - 895 , - 1088 , - 161 , - 1314 , - 1347 , - 260 , - 1253 , - 1126 , - 1479 , - 712 , - 425 , - 618 , - 1291 , - 844 , - 877 , - 1390 , - 783 , - 656 , - 1009 , - 242 , - 1555 , - 148 , - 821 , - 374 , - 407 , - 920 , - 313 , - 186 , - 539 , - 1372 , - 1085 , - 1278 , - 351 , - 1504 , - 1537 , - 450 , - 1443 , - 1316 , - 69 , - 902 , - 615 , - 808 , - 1481 , - 1034 , - 1067 , - 1580 , - 973 , - 846 , - 1199 , - 432 , - 145 , - 338 , - 1011 , - 564 , - 597 , - 1110 , - 503 , - 376 , - 729 , - 1562 , - 1275 , - 1468 , - 541 , - 94 , - 127 , - 640 , - 33 , - 1506 , - 259 , - 1092 , - 805 , - 998 , - 71 , - 1224 , - 1257 , - 170 , - 1163 , - 1036 , - 1389 , - 622 , - 335 , - 528 , - 1201 , - 754 , - 787 , - 1300 , - 693 , - 566 , - 919 , - 152 , - 1465 , - 58 , - 731 , - 284 , - 317 , - 830 , - 223 , - 96 , - 449 , - 1282 , - 995 , - 1188 , - 261 , - 1414 , - 1447 , - 360 , - 1353 , - 1226 , - 1579 , - 812 , - 525 , - 718 , - 1391 , - 944 , - 977 , - 1490 , - 883 , - 756 , - 1109 , - 342 , - 55 , - 248 , - 921 , - 474 , - 507 , - 1020 , - 413 , - 286 , - 639 , - 1472 , - 1185 , - 1378 , - 451 , - 4 , - 37 , - 550 , - 1543 , - 1416 , - 169 , - 1002 , - 715 , - 908 , - 1581 , - 1134 , - 1167 , - 80 , - 1073 , - 946 , - 1299 , - 532 , - 245 , - 438 , - 1111 , - 664 , - 697 , - 1210 , - 603 , - 476 , - 829 , - 62 , - 1375 , - 1568 , - 641 , - 194 , - 227 , - 740 , - 133 , - 6 , - 359 , - 1192 , - 905 , - 1098 , - 171 , - 1324 , - 1357 , - 270 , - 1263 , - 1136 , - 1489 , - 722 , - 435 , - 628 , - 1301 , - 854 , - 887 , - 1400 , - 793 , - 666 , - 1019 , - 252 , - 1565 , - 158 , - 831 , - 384 , - 417 , - 930 , - 323 , - 196 , - 549 , - 1382 , - 1095 , - 1288 , - 361 , - 1514 , - 1547 , - 460 , - 1453 , - 1326 , - 79 , - 912 , - 625 , - 818 , - 1491 , - 1044 , - 1077 , - 1590 , - 983 , - 856 , - 1209 , - 442 , - 155 , - 348 , - 1021 , - 574 , - 607 , - 1120 , - 513 , - 386 , - 739 , - 1572 , - 1285 , - 1478 , - 551 , - 104 , - 137 , - 650 , - 43 , - 1516 , - 269 , - 1102 , - 815 , - 1008 , - 81 , - 1234 , - 1267 , - 180 , - 1173 , - 1046 , - 1399 , - 632 , - 345 , - 538 , - 1211 , - 764 , - 797 , - 1310 , - 703 , - 576 , - 929 , - 162 , - 1475 , - 68 , - 741 , - 294 , - 327 , - 840 , - 233 , - 106 , - 459 , - 1292 , - 1005 , - 1198 , - 271 , - 1424 , - 1457 , - 370 , - 1363 , - 1236 , - 1589 , - 822 , - 535 , - 728 , - 1401 , - 954 , - 987 , - 1500 , - 893 , - 766 , - 1119 , - 352 , - 65 , - 258 , - 931 , - 484 , - 517 , - 1030 , - 423 , - 296 , - 649 , - 1482 , - 1195 , - 1388 , - 461 , - 14 , - 47 , - 560 , - 1553 , - 1426 , - 179 , - 1012 , - 725 , - 918 , - 1591 , - 1144 , - 1177 , - 90 , - 1083 , - 956 , - 1309 , - 542 , - 255 , - 448 , - 1121 , - 674 , - 707 , - 1220 , - 613 , - 486 , - 839 , - 72 , - 1385 , - 1578 , - 651 , - 204 , - 237 , - 750 , - 143 , - 16 , - 369 , - 1202 , - 915 , - 1108 , - 181 , - 1334 , - 1367 , - 280 , - 1273 , - 1146 , - 1499 , - 732 , - 445 , - 638 , - 1311 , - 864 , - 897 , - 1410 , - 803 , - 676 , - 1029 , - 262 , - 1575 , - 168 , - 841 , - 394 , - 427 , - 940 , - 333 , - 206 , - 559 , - 1392 , - 1105 , - 1298 , - 371 , - 1524 , - 1557 , - 470 , - 1463 , - 1336 , - 89 , - 922 , - 635 , - 828 , - 1501 , - 1054 , - 1087 , - 0 , - 355 , - 506 , - 1269 , - 196 , - 1367 , - 702 , - 649 , - 392 , - 747 , - 898 , - 29 , - 588 , - 127 , - 1094 , - 1041 , - 784 , - 1139 , - 1290 , - 421 , - 980 , - 519 , - 1486 , - 1433 , - 1176 , - 1531 , - 50 , - 813 , - 1372 , - 911 , - 246 , - 193 , - 1568 , - 291 , - 442 , - 1205 , - 132 , - 1303 , - 638 , - 585 , - 328 , - 683 , - 834 , - 1597 , - 524 , - 63 , - 1030 , - 977 , - 720 , - 1075 , - 1226 , - 357 , - 916 , - 455 , - 1422 , - 1369 , - 1112 , - 1467 , - 1618 , - 749 , - 1308 , - 847 , - 182 , - 129 , - 1504 , - 227 , - 378 , - 1141 , - 68 , - 1239 , - 574 , - 521 , - 264 , - 619 , - 770 , - 1533 , - 460 , - 1631 , - 966 , - 913 , - 656 , - 1011 , - 1162 , - 293 , - 852 , - 391 , - 1358 , - 1305 , - 1048 , - 1403 , - 1554 , - 685 , - 1244 , - 783 , - 118 , - 65 , - 1440 , - 163 , - 314 , - 1077 , - 4 , - 1175 , - 510 , - 457 , - 200 , - 555 , - 706 , - 1469 , - 396 , - 1567 , - 902 , - 849 , - 592 , - 947 , - 1098 , - 229 , - 788 , - 327 , - 1294 , - 1241 , - 984 , - 1339 , - 1490 , - 621 , - 1180 , - 719 , - 54 , - 1 , - 1376 , - 99 , - 250 , - 1013 , - 1572 , - 1111 , - 446 , - 393 , - 136 , - 491 , - 642 , - 1405 , - 332 , - 1503 , - 838 , - 785 , - 528 , - 883 , - 1034 , - 165 , - 724 , - 263 , - 1230 , - 1177 , - 920 , - 1275 , - 1426 , - 557 , - 1116 , - 655 , - 1622 , - 1569 , - 1312 , - 35 , - 186 , - 949 , - 1508 , - 1047 , - 382 , - 329 , - 72 , - 427 , - 578 , - 1341 , - 268 , - 1439 , - 774 , - 721 , - 464 , - 819 , - 970 , - 101 , - 660 , - 199 , - 1166 , - 1113 , - 856 , - 1211 , - 1362 , - 493 , - 1052 , - 591 , - 1558 , - 1505 , - 1248 , - 1603 , - 122 , - 885 , - 1444 , - 983 , - 318 , - 265 , - 8 , - 363 , - 514 , - 1277 , - 204 , - 1375 , - 710 , - 657 , - 400 , - 755 , - 906 , - 37 , - 596 , - 135 , - 1102 , - 1049 , - 792 , - 1147 , - 1298 , - 429 , - 988 , - 527 , - 1494 , - 1441 , - 1184 , - 1539 , - 58 , - 821 , - 1380 , - 919 , - 254 , - 201 , - 1576 , - 299 , - 450 , - 1213 , - 140 , - 1311 , - 646 , - 593 , - 336 , - 691 , - 842 , - 1605 , - 532 , - 71 , - 1038 , - 985 , - 728 , - 1083 , - 1234 , - 365 , - 924 , - 463 , - 1430 , - 1377 , - 1120 , - 1475 , - 1626 , - 757 , - 1316 , - 855 , - 190 , - 137 , - 1512 , - 235 , - 386 , - 1149 , - 76 , - 1247 , - 582 , - 529 , - 272 , - 627 , - 778 , - 1541 , - 468 , - 7 , - 974 , - 921 , - 664 , - 1019 , - 1170 , - 301 , - 860 , - 399 , - 1366 , - 1313 , - 1056 , - 1411 , - 1562 , - 693 , - 1252 , - 791 , - 126 , - 73 , - 1448 , - 171 , - 322 , - 1085 , - 12 , - 1183 , - 518 , - 465 , - 208 , - 563 , - 714 , - 1477 , - 404 , - 1575 , - 910 , - 857 , - 600 , - 955 , - 1106 , - 237 , - 796 , - 335 , - 1302 , - 1249 , - 992 , - 1347 , - 1498 , - 629 , - 1188 , - 727 , - 62 , - 9 , - 1384 , - 107 , - 258 , - 1021 , - 1580 , - 1119 , - 454 , - 401 , - 144 , - 499 , - 650 , - 1413 , - 340 , - 1511 , - 846 , - 793 , - 536 , - 891 , - 1042 , - 173 , - 732 , - 271 , - 1238 , - 1185 , - 928 , - 1283 , - 1434 , - 565 , - 1124 , - 663 , - 1630 , - 1577 , - 1320 , - 43 , - 194 , - 957 , - 1516 , - 1055 , - 390 , - 337 , - 80 , - 435 , - 586 , - 1349 , - 276 , - 1447 , - 782 , - 729 , - 472 , - 827 , - 978 , - 109 , - 668 , - 207 , - 1174 , - 1121 , - 864 , - 1219 , - 1370 , - 501 , - 1060 , - 599 , - 1566 , - 1513 , - 1256 , - 1611 , - 130 , - 893 , - 1452 , - 991 , - 326 , - 273 , - 16 , - 371 , - 522 , - 1285 , - 212 , - 1383 , - 718 , - 665 , - 408 , - 763 , - 914 , - 45 , - 604 , - 143 , - 1110 , - 1057 , - 800 , - 1155 , - 1306 , - 437 , - 996 , - 535 , - 1502 , - 1449 , - 1192 , - 1547 , - 66 , - 829 , - 1388 , - 927 , - 262 , - 209 , - 1584 , - 307 , - 458 , - 1221 , - 148 , - 1319 , - 654 , - 601 , - 344 , - 699 , - 850 , - 1613 , - 540 , - 79 , - 1046 , - 993 , - 736 , - 1091 , - 1242 , - 373 , - 932 , - 471 , - 1438 , - 1385 , - 1128 , - 1483 , - 2 , - 765 , - 1324 , - 863 , - 198 , - 145 , - 1520 , - 243 , - 394 , - 1157 , - 84 , - 1255 , - 590 , - 537 , - 280 , - 635 , - 786 , - 1549 , - 476 , - 15 , - 982 , - 929 , - 672 , - 1027 , - 1178 , - 309 , - 868 , - 407 , - 1374 , - 1321 , - 1064 , - 1419 , - 1570 , - 701 , - 1260 , - 799 , - 134 , - 81 , - 1456 , - 179 , - 330 , - 1093 , - 20 , - 1191 , - 526 , - 473 , - 216 , - 571 , - 722 , - 1485 , - 412 , - 1583 , - 918 , - 865 , - 608 , - 963 , - 1114 , - 245 , - 804 , - 343 , - 1310 , - 1257 , - 1000 , - 1355 , - 1506 , - 637 , - 1196 , - 735 , - 70 , - 17 , - 1392 , - 115 , - 266 , - 1029 , - 1588 , - 1127 , - 462 , - 409 , - 152 , - 507 , - 658 , - 1421 , - 348 , - 1519 , - 854 , - 801 , - 544 , - 899 , - 1050 , - 181 , - 740 , - 279 , - 1246 , - 1193 , - 936 , - 1291 , - 1442 , - 573 , - 1132 , - 671 , - 6 , - 1585 , - 1328 , - 51 , - 202 , - 965 , - 1524 , - 1063 , - 398 , - 345 , - 88 , - 443 , - 594 , - 1357 , - 284 , - 1455 , - 790 , - 737 , - 480 , - 835 , - 986 , - 117 , - 676 , - 215 , - 1182 , - 1129 , - 872 , - 1227 , - 1378 , - 509 , - 1068 , - 607 , - 1574 , - 1521 , - 1264 , - 1619 , - 138 , - 901 , - 1460 , - 999 , - 334 , - 281 , - 24 , - 379 , - 530 , - 1293 , - 220 , - 1391 , - 726 , - 673 , - 416 , - 771 , - 922 , - 53 , - 612 , - 151 , - 1118 , - 1065 , - 808 , - 1163 , - 1314 , - 445 , - 1004 , - 543 , - 1510 , - 1457 , - 1200 , - 1555 , - 74 , - 837 , - 1396 , - 935 , - 270 , - 217 , - 1592 , - 315 , - 466 , - 1229 , - 156 , - 1327 , - 662 , - 609 , - 352 , - 707 , - 858 , - 1621 , - 548 , - 87 , - 1054 , - 1001 , - 744 , - 1099 , - 1250 , - 381 , - 940 , - 479 , - 1446 , - 1393 , - 1136 , - 1491 , - 10 , - 773 , - 1332 , - 871 , - 206 , - 153 , - 1528 , - 251 , - 402 , - 1165 , - 92 , - 1263 , - 598 , - 545 , - 288 , - 643 , - 794 , - 1557 , - 484 , - 23 , - 990 , - 937 , - 680 , - 1035 , - 1186 , - 317 , - 876 , - 415 , - 1382 , - 1329 , - 1072 , - 1427 , - 1578 , - 709 , - 1268 , - 807 , - 142 , - 89 , - 1464 , - 187 , - 338 , - 1101 , - 28 , - 1199 , - 534 , - 481 , - 224 , - 579 , - 730 , - 1493 , - 420 , - 1591 , - 926 , - 873 , - 616 , - 971 , - 1122 , - 253 , - 812 , - 351 , - 1318 , - 1265 , - 1008 , - 1363 , - 1514 , - 645 , - 1204 , - 743 , - 78 , - 25 , - 1400 , - 123 , - 274 , - 1037 , - 1596 , - 1135 , - 470 , - 417 , - 160 , - 515 , - 666 , - 1429 , - 356 , - 1527 , - 862 , - 809 , - 552 , - 907 , - 1058 , - 189 , - 748 , - 287 , - 1254 , - 1201 , - 944 , - 1299 , - 1450 , - 581 , - 1140 , - 679 , - 14 , - 1593 , - 1336 , - 59 , - 210 , - 973 , - 1532 , - 1071 , - 406 , - 353 , - 96 , - 451 , - 602 , - 1365 , - 292 , - 1463 , - 798 , - 745 , - 488 , - 843 , - 994 , - 125 , - 684 , - 223 , - 1190 , - 1137 , - 880 , - 1235 , - 1386 , - 517 , - 1076 , - 615 , - 1582 , - 1529 , - 1272 , - 1627 , - 146 , - 909 , - 1468 , - 1007 , - 342 , - 289 , - 32 , - 387 , - 538 , - 1301 , - 228 , - 1399 , - 734 , - 681 , - 424 , - 779 , - 930 , - 61 , - 620 , - 159 , - 1126 , - 1073 , - 816 , - 1171 , - 1322 , - 453 , - 1012 , - 551 , - 1518 , - 1465 , - 1208 , - 1563 , - 82 , - 845 , - 1404 , - 943 , - 278 , - 225 , - 1600 , - 323 , - 474 , - 1237 , - 164 , - 1335 , - 670 , - 617 , - 360 , - 715 , - 866 , - 1629 , - 556 , - 95 , - 1062 , - 1009 , - 752 , - 1107 , - 1258 , - 389 , - 948 , - 487 , - 1454 , - 1401 , - 1144 , - 1499 , - 18 , - 781 , - 1340 , - 879 , - 214 , - 161 , - 1536 , - 259 , - 410 , - 1173 , - 100 , - 1271 , - 606 , - 553 , - 296 , - 651 , - 802 , - 1565 , - 492 , - 31 , - 998 , - 945 , - 688 , - 1043 , - 1194 , - 325 , - 884 , - 423 , - 1390 , - 1337 , - 1080 , - 1435 , - 1586 , - 717 , - 1276 , - 815 , - 150 , - 97 , - 1472 , - 195 , - 346 , - 1109 , - 36 , - 1207 , - 542 , - 489 , - 232 , - 587 , - 738 , - 1501 , - 428 , - 1599 , - 934 , - 881 , - 624 , - 979 , - 1130 , - 261 , - 820 , - 359 , - 1326 , - 1273 , - 1016 , - 1371 , - 1522 , - 653 , - 1212 , - 751 , - 86 , - 33 , - 1408 , - 131 , - 282 , - 1045 , - 1604 , - 1143 , - 478 , - 425 , - 168 , - 523 , - 674 , - 1437 , - 364 , - 1535 , - 870 , - 817 , - 560 , - 915 , - 1066 , - 197 , - 756 , - 295 , - 1262 , - 1209 , - 952 , - 1307 , - 1458 , - 589 , - 1148 , - 687 , - 22 , - 1601 , - 1344 , - 67 , - 218 , - 981 , - 1540 , - 1079 , - 414 , - 361 , - 104 , - 459 , - 610 , - 1373 , - 300 , - 1471 , - 806 , - 753 , - 496 , - 851 , - 1002 , - 133 , - 692 , - 231 , - 1198 , - 1145 , - 888 , - 1243 , - 1394 , - 525 , - 1084 , - 623 , - 1590 , - 1537 , - 1280 , - 3 , - 154 , - 917 , - 1476 , - 1015 , - 350 , - 297 , - 40 , - 395 , - 546 , - 1309 , - 236 , - 1407 , - 742 , - 689 , - 432 , - 787 , - 938 , - 69 , - 628 , - 167 , - 1134 , - 1081 , - 824 , - 1179 , - 1330 , - 461 , - 1020 , - 559 , - 1526 , - 1473 , - 1216 , - 1571 , - 90 , - 853 , - 1412 , - 951 , - 286 , - 233 , - 1608 , - 331 , - 482 , - 1245 , - 172 , - 1343 , - 678 , - 625 , - 368 , - 723 , - 874 , - 5 , - 564 , - 103 , - 1070 , - 1017 , - 760 , - 1115 , - 1266 , - 397 , - 956 , - 495 , - 1462 , - 1409 , - 1152 , - 1507 , - 26 , - 789 , - 1348 , - 887 , - 222 , - 169 , - 1544 , - 267 , - 418 , - 1181 , - 108 , - 1279 , - 614 , - 561 , - 304 , - 659 , - 810 , - 1573 , - 500 , - 39 , - 1006 , - 953 , - 696 , - 1051 , - 1202 , - 333 , - 892 , - 431 , - 1398 , - 1345 , - 1088 , - 1443 , - 1594 , - 725 , - 1284 , - 823 , - 158 , - 105 , - 1480 , - 203 , - 354 , - 1117 , - 44 , - 1215 , - 550 , - 497 , - 240 , - 595 , - 746 , - 1509 , - 436 , - 1607 , - 942 , - 889 , - 632 , - 987 , - 1138 , - 269 , - 828 , - 367 , - 1334 , - 1281 , - 1024 , - 1379 , - 1530 , - 661 , - 1220 , - 759 , - 94 , - 41 , - 1416 , - 139 , - 290 , - 1053 , - 1612 , - 1151 , - 486 , - 433 , - 176 , - 531 , - 682 , - 1445 , - 372 , - 1543 , - 878 , - 825 , - 568 , - 923 , - 1074 , - 205 , - 764 , - 303 , - 1270 , - 1217 , - 960 , - 1315 , - 1466 , - 597 , - 1156 , - 695 , - 30 , - 1609 , - 1352 , - 75 , - 226 , - 989 , - 1548 , - 1087 , - 422 , - 369 , - 112 , - 467 , - 618 , - 1381 , - 308 , - 1479 , - 814 , - 761 , - 504 , - 859 , - 1010 , - 141 , - 700 , - 239 , - 1206 , - 1153 , - 896 , - 1251 , - 1402 , - 533 , - 1092 , - 631 , - 1598 , - 1545 , - 1288 , - 11 , - 162 , - 925 , - 1484 , - 1023 , - 358 , - 305 , - 48 , - 403 , - 554 , - 1317 , - 244 , - 1415 , - 750 , - 697 , - 440 , - 795 , - 946 , - 77 , - 636 , - 175 , - 1142 , - 1089 , - 832 , - 1187 , - 1338 , - 469 , - 1028 , - 567 , - 1534 , - 1481 , - 1224 , - 1579 , - 98 , - 861 , - 1420 , - 959 , - 294 , - 241 , - 1616 , - 339 , - 490 , - 1253 , - 180 , - 1351 , - 686 , - 633 , - 376 , - 731 , - 882 , - 13 , - 572 , - 111 , - 1078 , - 1025 , - 768 , - 1123 , - 1274 , - 405 , - 964 , - 503 , - 1470 , - 1417 , - 1160 , - 1515 , - 34 , - 797 , - 1356 , - 895 , - 230 , - 177 , - 1552 , - 275 , - 426 , - 1189 , - 116 , - 1287 , - 622 , - 569 , - 312 , - 667 , - 818 , - 1581 , - 508 , - 47 , - 1014 , - 961 , - 704 , - 1059 , - 1210 , - 341 , - 900 , - 439 , - 1406 , - 1353 , - 1096 , - 1451 , - 1602 , - 733 , - 1292 , - 831 , - 166 , - 113 , - 1488 , - 211 , - 362 , - 1125 , - 52 , - 1223 , - 558 , - 505 , - 248 , - 603 , - 754 , - 1517 , - 444 , - 1615 , - 950 , - 897 , - 640 , - 995 , - 1146 , - 277 , - 836 , - 375 , - 1342 , - 1289 , - 1032 , - 1387 , - 1538 , - 669 , - 1228 , - 767 , - 102 , - 49 , - 1424 , - 147 , - 298 , - 1061 , - 1620 , - 1159 , - 494 , - 441 , - 184 , - 539 , - 690 , - 1453 , - 380 , - 1551 , - 886 , - 833 , - 576 , - 931 , - 1082 , - 213 , - 772 , - 311 , - 1278 , - 1225 , - 968 , - 1323 , - 1474 , - 605 , - 1164 , - 703 , - 38 , - 1617 , - 1360 , - 83 , - 234 , - 997 , - 1556 , - 1095 , - 430 , - 377 , - 120 , - 475 , - 626 , - 1389 , - 316 , - 1487 , - 822 , - 769 , - 512 , - 867 , - 1018 , - 149 , - 708 , - 247 , - 1214 , - 1161 , - 904 , - 1259 , - 1410 , - 541 , - 1100 , - 639 , - 1606 , - 1553 , - 1296 , - 19 , - 170 , - 933 , - 1492 , - 1031 , - 366 , - 313 , - 56 , - 411 , - 562 , - 1325 , - 252 , - 1423 , - 758 , - 705 , - 448 , - 803 , - 954 , - 85 , - 644 , - 183 , - 1150 , - 1097 , - 840 , - 1195 , - 1346 , - 477 , - 1036 , - 575 , - 1542 , - 1489 , - 1232 , - 1587 , - 106 , - 869 , - 1428 , - 967 , - 302 , - 249 , - 1624 , - 347 , - 498 , - 1261 , - 188 , - 1359 , - 694 , - 641 , - 384 , - 739 , - 890 , - 21 , - 580 , - 119 , - 1086 , - 1033 , - 776 , - 1131 , - 1282 , - 413 , - 972 , - 511 , - 1478 , - 1425 , - 1168 , - 1523 , - 42 , - 805 , - 1364 , - 903 , - 238 , - 185 , - 1560 , - 283 , - 434 , - 1197 , - 124 , - 1295 , - 630 , - 577 , - 320 , - 675 , - 826 , - 1589 , - 516 , - 55 , - 1022 , - 969 , - 712 , - 1067 , - 1218 , - 349 , - 908 , - 447 , - 1414 , - 1361 , - 1104 , - 1459 , - 1610 , - 741 , - 1300 , - 839 , - 174 , - 121 , - 1496 , - 219 , - 370 , - 1133 , - 60 , - 1231 , - 566 , - 513 , - 256 , - 611 , - 762 , - 1525 , - 452 , - 1623 , - 958 , - 905 , - 648 , - 1003 , - 1154 , - 285 , - 844 , - 383 , - 1350 , - 1297 , - 1040 , - 1395 , - 1546 , - 677 , - 1236 , - 775 , - 110 , - 57 , - 1432 , - 155 , - 306 , - 1069 , - 1628 , - 1167 , - 502 , - 449 , - 192 , - 547 , - 698 , - 1461 , - 388 , - 1559 , - 894 , - 841 , - 584 , - 939 , - 1090 , - 221 , - 780 , - 319 , - 1286 , - 1233 , - 976 , - 1331 , - 1482 , - 613 , - 1172 , - 711 , - 46 , - 1625 , - 1368 , - 91 , - 242 , - 1005 , - 1564 , - 1103 , - 438 , - 385 , - 128 , - 483 , - 634 , - 1397 , - 324 , - 1495 , - 830 , - 777 , - 520 , - 875 , - 1026 , - 157 , - 716 , - 255 , - 1222 , - 1169 , - 912 , - 1267 , - 1418 , - 549 , - 1108 , - 647 , - 1614 , - 1561 , - 1304 , - 27 , - 178 , - 941 , - 1500 , - 1039 , - 374 , - 321 , - 64 , - 419 , - 570 , - 1333 , - 260 , - 1431 , - 766 , - 713 , - 456 , - 811 , - 962 , - 93 , - 652 , - 191 , - 1158 , - 1105 , - 848 , - 1203 , - 1354 , - 485 , - 1044 , - 583 , - 1550 , - 1497 , - 1240 , - 1595 , - 114 , - 877 , - 1436 , - 975 , - 310 , - 257 , - 0 , - 1327 , - 1198 , - 1277 , - 1564 , - 395 , - 1098 , - 345 , - 1464 , - 1127 , - 998 , - 1077 , - 1364 , - 195 , - 898 , - 145 , - 1264 , - 927 , - 798 , - 877 , - 1164 , - 1659 , - 698 , - 1609 , - 1064 , - 727 , - 598 , - 677 , - 964 , - 1459 , - 498 , - 1409 , - 864 , - 527 , - 398 , - 477 , - 764 , - 1259 , - 298 , - 1209 , - 664 , - 327 , - 198 , - 277 , - 564 , - 1059 , - 98 , - 1009 , - 464 , - 127 , - 1662 , - 77 , - 364 , - 859 , - 1562 , - 809 , - 264 , - 1591 , - 1462 , - 1541 , - 164 , - 659 , - 1362 , - 609 , - 64 , - 1391 , - 1262 , - 1341 , - 1628 , - 459 , - 1162 , - 409 , - 1528 , - 1191 , - 1062 , - 1141 , - 1428 , - 259 , - 962 , - 209 , - 1328 , - 991 , - 862 , - 941 , - 1228 , - 59 , - 762 , - 9 , - 1128 , - 791 , - 662 , - 741 , - 1028 , - 1523 , - 562 , - 1473 , - 928 , - 591 , - 462 , - 541 , - 828 , - 1323 , - 362 , - 1273 , - 728 , - 391 , - 262 , - 341 , - 628 , - 1123 , - 162 , - 1073 , - 528 , - 191 , - 62 , - 141 , - 428 , - 923 , - 1626 , - 873 , - 328 , - 1655 , - 1526 , - 1605 , - 228 , - 723 , - 1426 , - 673 , - 128 , - 1455 , - 1326 , - 1405 , - 28 , - 523 , - 1226 , - 473 , - 1592 , - 1255 , - 1126 , - 1205 , - 1492 , - 323 , - 1026 , - 273 , - 1392 , - 1055 , - 926 , - 1005 , - 1292 , - 123 , - 826 , - 73 , - 1192 , - 855 , - 726 , - 805 , - 1092 , - 1587 , - 626 , - 1537 , - 992 , - 655 , - 526 , - 605 , - 892 , - 1387 , - 426 , - 1337 , - 792 , - 455 , - 326 , - 405 , - 692 , - 1187 , - 226 , - 1137 , - 592 , - 255 , - 126 , - 205 , - 492 , - 987 , - 26 , - 937 , - 392 , - 55 , - 1590 , - 5 , - 292 , - 787 , - 1490 , - 737 , - 192 , - 1519 , - 1390 , - 1469 , - 92 , - 587 , - 1290 , - 537 , - 1656 , - 1319 , - 1190 , - 1269 , - 1556 , - 387 , - 1090 , - 337 , - 1456 , - 1119 , - 990 , - 1069 , - 1356 , - 187 , - 890 , - 137 , - 1256 , - 919 , - 790 , - 869 , - 1156 , - 1651 , - 690 , - 1601 , - 1056 , - 719 , - 590 , - 669 , - 956 , - 1451 , - 490 , - 1401 , - 856 , - 519 , - 390 , - 469 , - 756 , - 1251 , - 290 , - 1201 , - 656 , - 319 , - 190 , - 269 , - 556 , - 1051 , - 90 , - 1001 , - 456 , - 119 , - 1654 , - 69 , - 356 , - 851 , - 1554 , - 801 , - 256 , - 1583 , - 1454 , - 1533 , - 156 , - 651 , - 1354 , - 601 , - 56 , - 1383 , - 1254 , - 1333 , - 1620 , - 451 , - 1154 , - 401 , - 1520 , - 1183 , - 1054 , - 1133 , - 1420 , - 251 , - 954 , - 201 , - 1320 , - 983 , - 854 , - 933 , - 1220 , - 51 , - 754 , - 1 , - 1120 , - 783 , - 654 , - 733 , - 1020 , - 1515 , - 554 , - 1465 , - 920 , - 583 , - 454 , - 533 , - 820 , - 1315 , - 354 , - 1265 , - 720 , - 383 , - 254 , - 333 , - 620 , - 1115 , - 154 , - 1065 , - 520 , - 183 , - 54 , - 133 , - 420 , - 915 , - 1618 , - 865 , - 320 , - 1647 , - 1518 , - 1597 , - 220 , - 715 , - 1418 , - 665 , - 120 , - 1447 , - 1318 , - 1397 , - 20 , - 515 , - 1218 , - 465 , - 1584 , - 1247 , - 1118 , - 1197 , - 1484 , - 315 , - 1018 , - 265 , - 1384 , - 1047 , - 918 , - 997 , - 1284 , - 115 , - 818 , - 65 , - 1184 , - 847 , - 718 , - 797 , - 1084 , - 1579 , - 618 , - 1529 , - 984 , - 647 , - 518 , - 597 , - 884 , - 1379 , - 418 , - 1329 , - 784 , - 447 , - 318 , - 397 , - 684 , - 1179 , - 218 , - 1129 , - 584 , - 247 , - 118 , - 197 , - 484 , - 979 , - 18 , - 929 , - 384 , - 47 , - 1582 , - 1661 , - 284 , - 779 , - 1482 , - 729 , - 184 , - 1511 , - 1382 , - 1461 , - 84 , - 579 , - 1282 , - 529 , - 1648 , - 1311 , - 1182 , - 1261 , - 1548 , - 379 , - 1082 , - 329 , - 1448 , - 1111 , - 982 , - 1061 , - 1348 , - 179 , - 882 , - 129 , - 1248 , - 911 , - 782 , - 861 , - 1148 , - 1643 , - 682 , - 1593 , - 1048 , - 711 , - 582 , - 661 , - 948 , - 1443 , - 482 , - 1393 , - 848 , - 511 , - 382 , - 461 , - 748 , - 1243 , - 282 , - 1193 , - 648 , - 311 , - 182 , - 261 , - 548 , - 1043 , - 82 , - 993 , - 448 , - 111 , - 1646 , - 61 , - 348 , - 843 , - 1546 , - 793 , - 248 , - 1575 , - 1446 , - 1525 , - 148 , - 643 , - 1346 , - 593 , - 48 , - 1375 , - 1246 , - 1325 , - 1612 , - 443 , - 1146 , - 393 , - 1512 , - 1175 , - 1046 , - 1125 , - 1412 , - 243 , - 946 , - 193 , - 1312 , - 975 , - 846 , - 925 , - 1212 , - 43 , - 746 , - 1657 , - 1112 , - 775 , - 646 , - 725 , - 1012 , - 1507 , - 546 , - 1457 , - 912 , - 575 , - 446 , - 525 , - 812 , - 1307 , - 346 , - 1257 , - 712 , - 375 , - 246 , - 325 , - 612 , - 1107 , - 146 , - 1057 , - 512 , - 175 , - 46 , - 125 , - 412 , - 907 , - 1610 , - 857 , - 312 , - 1639 , - 1510 , - 1589 , - 212 , - 707 , - 1410 , - 657 , - 112 , - 1439 , - 1310 , - 1389 , - 12 , - 507 , - 1210 , - 457 , - 1576 , - 1239 , - 1110 , - 1189 , - 1476 , - 307 , - 1010 , - 257 , - 1376 , - 1039 , - 910 , - 989 , - 1276 , - 107 , - 810 , - 57 , - 1176 , - 839 , - 710 , - 789 , - 1076 , - 1571 , - 610 , - 1521 , - 976 , - 639 , - 510 , - 589 , - 876 , - 1371 , - 410 , - 1321 , - 776 , - 439 , - 310 , - 389 , - 676 , - 1171 , - 210 , - 1121 , - 576 , - 239 , - 110 , - 189 , - 476 , - 971 , - 10 , - 921 , - 376 , - 39 , - 1574 , - 1653 , - 276 , - 771 , - 1474 , - 721 , - 176 , - 1503 , - 1374 , - 1453 , - 76 , - 571 , - 1274 , - 521 , - 1640 , - 1303 , - 1174 , - 1253 , - 1540 , - 371 , - 1074 , - 321 , - 1440 , - 1103 , - 974 , - 1053 , - 1340 , - 171 , - 874 , - 121 , - 1240 , - 903 , - 774 , - 853 , - 1140 , - 1635 , - 674 , - 1585 , - 1040 , - 703 , - 574 , - 653 , - 940 , - 1435 , - 474 , - 1385 , - 840 , - 503 , - 374 , - 453 , - 740 , - 1235 , - 274 , - 1185 , - 640 , - 303 , - 174 , - 253 , - 540 , - 1035 , - 74 , - 985 , - 440 , - 103 , - 1638 , - 53 , - 340 , - 835 , - 1538 , - 785 , - 240 , - 1567 , - 1438 , - 1517 , - 140 , - 635 , - 1338 , - 585 , - 40 , - 1367 , - 1238 , - 1317 , - 1604 , - 435 , - 1138 , - 385 , - 1504 , - 1167 , - 1038 , - 1117 , - 1404 , - 235 , - 938 , - 185 , - 1304 , - 967 , - 838 , - 917 , - 1204 , - 35 , - 738 , - 1649 , - 1104 , - 767 , - 638 , - 717 , - 1004 , - 1499 , - 538 , - 1449 , - 904 , - 567 , - 438 , - 517 , - 804 , - 1299 , - 338 , - 1249 , - 704 , - 367 , - 238 , - 317 , - 604 , - 1099 , - 138 , - 1049 , - 504 , - 167 , - 38 , - 117 , - 404 , - 899 , - 1602 , - 849 , - 304 , - 1631 , - 1502 , - 1581 , - 204 , - 699 , - 1402 , - 649 , - 104 , - 1431 , - 1302 , - 1381 , - 4 , - 499 , - 1202 , - 449 , - 1568 , - 1231 , - 1102 , - 1181 , - 1468 , - 299 , - 1002 , - 249 , - 1368 , - 1031 , - 902 , - 981 , - 1268 , - 99 , - 802 , - 49 , - 1168 , - 831 , - 702 , - 781 , - 1068 , - 1563 , - 602 , - 1513 , - 968 , - 631 , - 502 , - 581 , - 868 , - 1363 , - 402 , - 1313 , - 768 , - 431 , - 302 , - 381 , - 668 , - 1163 , - 202 , - 1113 , - 568 , - 231 , - 102 , - 181 , - 468 , - 963 , - 2 , - 913 , - 368 , - 31 , - 1566 , - 1645 , - 268 , - 763 , - 1466 , - 713 , - 168 , - 1495 , - 1366 , - 1445 , - 68 , - 563 , - 1266 , - 513 , - 1632 , - 1295 , - 1166 , - 1245 , - 1532 , - 363 , - 1066 , - 313 , - 1432 , - 1095 , - 966 , - 1045 , - 1332 , - 163 , - 866 , - 113 , - 1232 , - 895 , - 766 , - 845 , - 1132 , - 1627 , - 666 , - 1577 , - 1032 , - 695 , - 566 , - 645 , - 932 , - 1427 , - 466 , - 1377 , - 832 , - 495 , - 366 , - 445 , - 732 , - 1227 , - 266 , - 1177 , - 632 , - 295 , - 166 , - 245 , - 532 , - 1027 , - 66 , - 977 , - 432 , - 95 , - 1630 , - 45 , - 332 , - 827 , - 1530 , - 777 , - 232 , - 1559 , - 1430 , - 1509 , - 132 , - 627 , - 1330 , - 577 , - 32 , - 1359 , - 1230 , - 1309 , - 1596 , - 427 , - 1130 , - 377 , - 1496 , - 1159 , - 1030 , - 1109 , - 1396 , - 227 , - 930 , - 177 , - 1296 , - 959 , - 830 , - 909 , - 1196 , - 27 , - 730 , - 1641 , - 1096 , - 759 , - 630 , - 709 , - 996 , - 1491 , - 530 , - 1441 , - 896 , - 559 , - 430 , - 509 , - 796 , - 1291 , - 330 , - 1241 , - 696 , - 359 , - 230 , - 309 , - 596 , - 1091 , - 130 , - 1041 , - 496 , - 159 , - 30 , - 109 , - 396 , - 891 , - 1594 , - 841 , - 296 , - 1623 , - 1494 , - 1573 , - 196 , - 691 , - 1394 , - 641 , - 96 , - 1423 , - 1294 , - 1373 , - 1660 , - 491 , - 1194 , - 441 , - 1560 , - 1223 , - 1094 , - 1173 , - 1460 , - 291 , - 994 , - 241 , - 1360 , - 1023 , - 894 , - 973 , - 1260 , - 91 , - 794 , - 41 , - 1160 , - 823 , - 694 , - 773 , - 1060 , - 1555 , - 594 , - 1505 , - 960 , - 623 , - 494 , - 573 , - 860 , - 1355 , - 394 , - 1305 , - 760 , - 423 , - 294 , - 373 , - 660 , - 1155 , - 194 , - 1105 , - 560 , - 223 , - 94 , - 173 , - 460 , - 955 , - 1658 , - 905 , - 360 , - 23 , - 1558 , - 1637 , - 260 , - 755 , - 1458 , - 705 , - 160 , - 1487 , - 1358 , - 1437 , - 60 , - 555 , - 1258 , - 505 , - 1624 , - 1287 , - 1158 , - 1237 , - 1524 , - 355 , - 1058 , - 305 , - 1424 , - 1087 , - 958 , - 1037 , - 1324 , - 155 , - 858 , - 105 , - 1224 , - 887 , - 758 , - 837 , - 1124 , - 1619 , - 658 , - 1569 , - 1024 , - 687 , - 558 , - 637 , - 924 , - 1419 , - 458 , - 1369 , - 824 , - 487 , - 358 , - 437 , - 724 , - 1219 , - 258 , - 1169 , - 624 , - 287 , - 158 , - 237 , - 524 , - 1019 , - 58 , - 969 , - 424 , - 87 , - 1622 , - 37 , - 324 , - 819 , - 1522 , - 769 , - 224 , - 1551 , - 1422 , - 1501 , - 124 , - 619 , - 1322 , - 569 , - 24 , - 1351 , - 1222 , - 1301 , - 1588 , - 419 , - 1122 , - 369 , - 1488 , - 1151 , - 1022 , - 1101 , - 1388 , - 219 , - 922 , - 169 , - 1288 , - 951 , - 822 , - 901 , - 1188 , - 19 , - 722 , - 1633 , - 1088 , - 751 , - 622 , - 701 , - 988 , - 1483 , - 522 , - 1433 , - 888 , - 551 , - 422 , - 501 , - 788 , - 1283 , - 322 , - 1233 , - 688 , - 351 , - 222 , - 301 , - 588 , - 1083 , - 122 , - 1033 , - 488 , - 151 , - 22 , - 101 , - 388 , - 883 , - 1586 , - 833 , - 288 , - 1615 , - 1486 , - 1565 , - 188 , - 683 , - 1386 , - 633 , - 88 , - 1415 , - 1286 , - 1365 , - 1652 , - 483 , - 1186 , - 433 , - 1552 , - 1215 , - 1086 , - 1165 , - 1452 , - 283 , - 986 , - 233 , - 1352 , - 1015 , - 886 , - 965 , - 1252 , - 83 , - 786 , - 33 , - 1152 , - 815 , - 686 , - 765 , - 1052 , - 1547 , - 586 , - 1497 , - 952 , - 615 , - 486 , - 565 , - 852 , - 1347 , - 386 , - 1297 , - 752 , - 415 , - 286 , - 365 , - 652 , - 1147 , - 186 , - 1097 , - 552 , - 215 , - 86 , - 165 , - 452 , - 947 , - 1650 , - 897 , - 352 , - 15 , - 1550 , - 1629 , - 252 , - 747 , - 1450 , - 697 , - 152 , - 1479 , - 1350 , - 1429 , - 52 , - 547 , - 1250 , - 497 , - 1616 , - 1279 , - 1150 , - 1229 , - 1516 , - 347 , - 1050 , - 297 , - 1416 , - 1079 , - 950 , - 1029 , - 1316 , - 147 , - 850 , - 97 , - 1216 , - 879 , - 750 , - 829 , - 1116 , - 1611 , - 650 , - 1561 , - 1016 , - 679 , - 550 , - 629 , - 916 , - 1411 , - 450 , - 1361 , - 816 , - 479 , - 350 , - 429 , - 716 , - 1211 , - 250 , - 1161 , - 616 , - 279 , - 150 , - 229 , - 516 , - 1011 , - 50 , - 961 , - 416 , - 79 , - 1614 , - 29 , - 316 , - 811 , - 1514 , - 761 , - 216 , - 1543 , - 1414 , - 1493 , - 116 , - 611 , - 1314 , - 561 , - 16 , - 1343 , - 1214 , - 1293 , - 1580 , - 411 , - 1114 , - 361 , - 1480 , - 1143 , - 1014 , - 1093 , - 1380 , - 211 , - 914 , - 161 , - 1280 , - 943 , - 814 , - 893 , - 1180 , - 11 , - 714 , - 1625 , - 1080 , - 743 , - 614 , - 693 , - 980 , - 1475 , - 514 , - 1425 , - 880 , - 543 , - 414 , - 493 , - 780 , - 1275 , - 314 , - 1225 , - 680 , - 343 , - 214 , - 293 , - 580 , - 1075 , - 114 , - 1025 , - 480 , - 143 , - 14 , - 93 , - 380 , - 875 , - 1578 , - 825 , - 280 , - 1607 , - 1478 , - 1557 , - 180 , - 675 , - 1378 , - 625 , - 80 , - 1407 , - 1278 , - 1357 , - 1644 , - 475 , - 1178 , - 425 , - 1544 , - 1207 , - 1078 , - 1157 , - 1444 , - 275 , - 978 , - 225 , - 1344 , - 1007 , - 878 , - 957 , - 1244 , - 75 , - 778 , - 25 , - 1144 , - 807 , - 678 , - 757 , - 1044 , - 1539 , - 578 , - 1489 , - 944 , - 607 , - 478 , - 557 , - 844 , - 1339 , - 378 , - 1289 , - 744 , - 407 , - 278 , - 357 , - 644 , - 1139 , - 178 , - 1089 , - 544 , - 207 , - 78 , - 157 , - 444 , - 939 , - 1642 , - 889 , - 344 , - 7 , - 1542 , - 1621 , - 244 , - 739 , - 1442 , - 689 , - 144 , - 1471 , - 1342 , - 1421 , - 44 , - 539 , - 1242 , - 489 , - 1608 , - 1271 , - 1142 , - 1221 , - 1508 , - 339 , - 1042 , - 289 , - 1408 , - 1071 , - 942 , - 1021 , - 1308 , - 139 , - 842 , - 89 , - 1208 , - 871 , - 742 , - 821 , - 1108 , - 1603 , - 642 , - 1553 , - 1008 , - 671 , - 542 , - 621 , - 908 , - 1403 , - 442 , - 1353 , - 808 , - 471 , - 342 , - 421 , - 708 , - 1203 , - 242 , - 1153 , - 608 , - 271 , - 142 , - 221 , - 508 , - 1003 , - 42 , - 953 , - 408 , - 71 , - 1606 , - 21 , - 308 , - 803 , - 1506 , - 753 , - 208 , - 1535 , - 1406 , - 1485 , - 108 , - 603 , - 1306 , - 553 , - 8 , - 1335 , - 1206 , - 1285 , - 1572 , - 403 , - 1106 , - 353 , - 1472 , - 1135 , - 1006 , - 1085 , - 1372 , - 203 , - 906 , - 153 , - 1272 , - 935 , - 806 , - 885 , - 1172 , - 3 , - 706 , - 1617 , - 1072 , - 735 , - 606 , - 685 , - 972 , - 1467 , - 506 , - 1417 , - 872 , - 535 , - 406 , - 485 , - 772 , - 1267 , - 306 , - 1217 , - 672 , - 335 , - 206 , - 285 , - 572 , - 1067 , - 106 , - 1017 , - 472 , - 135 , - 6 , - 85 , - 372 , - 867 , - 1570 , - 817 , - 272 , - 1599 , - 1470 , - 1549 , - 172 , - 667 , - 1370 , - 617 , - 72 , - 1399 , - 1270 , - 1349 , - 1636 , - 467 , - 1170 , - 417 , - 1536 , - 1199 , - 1070 , - 1149 , - 1436 , - 267 , - 970 , - 217 , - 1336 , - 999 , - 870 , - 949 , - 1236 , - 67 , - 770 , - 17 , - 1136 , - 799 , - 670 , - 749 , - 1036 , - 1531 , - 570 , - 1481 , - 936 , - 599 , - 470 , - 549 , - 836 , - 1331 , - 370 , - 1281 , - 736 , - 399 , - 270 , - 349 , - 636 , - 1131 , - 170 , - 1081 , - 536 , - 199 , - 70 , - 149 , - 436 , - 931 , - 1634 , - 881 , - 336 , - 1663 , - 1534 , - 1613 , - 236 , - 731 , - 1434 , - 681 , - 136 , - 1463 , - 1334 , - 1413 , - 36 , - 531 , - 1234 , - 481 , - 1600 , - 1263 , - 1134 , - 1213 , - 1500 , - 331 , - 1034 , - 281 , - 1400 , - 1063 , - 934 , - 1013 , - 1300 , - 131 , - 834 , - 81 , - 1200 , - 863 , - 734 , - 813 , - 1100 , - 1595 , - 634 , - 1545 , - 1000 , - 663 , - 534 , - 613 , - 900 , - 1395 , - 434 , - 1345 , - 800 , - 463 , - 334 , - 413 , - 700 , - 1195 , - 234 , - 1145 , - 600 , - 263 , - 134 , - 213 , - 500 , - 995 , - 34 , - 945 , - 400 , - 63 , - 1598 , - 13 , - 300 , - 795 , - 1498 , - 745 , - 200 , - 1527 , - 1398 , - 1477 , - 100 , - 595 , - 1298 , - 545 , - 0 , - 1617 , - 54 , - 1247 , - 956 , - 29 , - 1010 , - 1355 , - 216 , - 137 , - 270 , - 1463 , - 1172 , - 245 , - 1226 , - 1571 , - 432 , - 353 , - 486 , - 1679 , - 1388 , - 461 , - 1442 , - 91 , - 648 , - 569 , - 702 , - 199 , - 1604 , - 677 , - 1658 , - 307 , - 864 , - 785 , - 918 , - 415 , - 124 , - 893 , - 178 , - 523 , - 1080 , - 1001 , - 1134 , - 631 , - 340 , - 1109 , - 394 , - 739 , - 1296 , - 1217 , - 1350 , - 847 , - 556 , - 1325 , - 610 , - 955 , - 1512 , - 1433 , - 1566 , - 1063 , - 772 , - 1541 , - 826 , - 1171 , - 32 , - 1649 , - 86 , - 1279 , - 988 , - 61 , - 1042 , - 1387 , - 248 , - 169 , - 302 , - 1495 , - 1204 , - 277 , - 1258 , - 1603 , - 464 , - 385 , - 518 , - 15 , - 1420 , - 493 , - 1474 , - 123 , - 680 , - 601 , - 734 , - 231 , - 1636 , - 709 , - 1690 , - 339 , - 896 , - 817 , - 950 , - 447 , - 156 , - 925 , - 210 , - 555 , - 1112 , - 1033 , - 1166 , - 663 , - 372 , - 1141 , - 426 , - 771 , - 1328 , - 1249 , - 1382 , - 879 , - 588 , - 1357 , - 642 , - 987 , - 1544 , - 1465 , - 1598 , - 1095 , - 804 , - 1573 , - 858 , - 1203 , - 64 , - 1681 , - 118 , - 1311 , - 1020 , - 93 , - 1074 , - 1419 , - 280 , - 201 , - 334 , - 1527 , - 1236 , - 309 , - 1290 , - 1635 , - 496 , - 417 , - 550 , - 47 , - 1452 , - 525 , - 1506 , - 155 , - 712 , - 633 , - 766 , - 263 , - 1668 , - 741 , - 26 , - 371 , - 928 , - 849 , - 982 , - 479 , - 188 , - 957 , - 242 , - 587 , - 1144 , - 1065 , - 1198 , - 695 , - 404 , - 1173 , - 458 , - 803 , - 1360 , - 1281 , - 1414 , - 911 , - 620 , - 1389 , - 674 , - 1019 , - 1576 , - 1497 , - 1630 , - 1127 , - 836 , - 1605 , - 890 , - 1235 , - 96 , - 17 , - 150 , - 1343 , - 1052 , - 125 , - 1106 , - 1451 , - 312 , - 233 , - 366 , - 1559 , - 1268 , - 341 , - 1322 , - 1667 , - 528 , - 449 , - 582 , - 79 , - 1484 , - 557 , - 1538 , - 187 , - 744 , - 665 , - 798 , - 295 , - 4 , - 773 , - 58 , - 403 , - 960 , - 881 , - 1014 , - 511 , - 220 , - 989 , - 274 , - 619 , - 1176 , - 1097 , - 1230 , - 727 , - 436 , - 1205 , - 490 , - 835 , - 1392 , - 1313 , - 1446 , - 943 , - 652 , - 1421 , - 706 , - 1051 , - 1608 , - 1529 , - 1662 , - 1159 , - 868 , - 1637 , - 922 , - 1267 , - 128 , - 49 , - 182 , - 1375 , - 1084 , - 157 , - 1138 , - 1483 , - 344 , - 265 , - 398 , - 1591 , - 1300 , - 373 , - 1354 , - 3 , - 560 , - 481 , - 614 , - 111 , - 1516 , - 589 , - 1570 , - 219 , - 776 , - 697 , - 830 , - 327 , - 36 , - 805 , - 90 , - 435 , - 992 , - 913 , - 1046 , - 543 , - 252 , - 1021 , - 306 , - 651 , - 1208 , - 1129 , - 1262 , - 759 , - 468 , - 1237 , - 522 , - 867 , - 1424 , - 1345 , - 1478 , - 975 , - 684 , - 1453 , - 738 , - 1083 , - 1640 , - 1561 , - 1694 , - 1191 , - 900 , - 1669 , - 954 , - 1299 , - 160 , - 81 , - 214 , - 1407 , - 1116 , - 189 , - 1170 , - 1515 , - 376 , - 297 , - 430 , - 1623 , - 1332 , - 405 , - 1386 , - 35 , - 592 , - 513 , - 646 , - 143 , - 1548 , - 621 , - 1602 , - 251 , - 808 , - 729 , - 862 , - 359 , - 68 , - 837 , - 122 , - 467 , - 1024 , - 945 , - 1078 , - 575 , - 284 , - 1053 , - 338 , - 683 , - 1240 , - 1161 , - 1294 , - 791 , - 500 , - 1269 , - 554 , - 899 , - 1456 , - 1377 , - 1510 , - 1007 , - 716 , - 1485 , - 770 , - 1115 , - 1672 , - 1593 , - 30 , - 1223 , - 932 , - 5 , - 986 , - 1331 , - 192 , - 113 , - 246 , - 1439 , - 1148 , - 221 , - 1202 , - 1547 , - 408 , - 329 , - 462 , - 1655 , - 1364 , - 437 , - 1418 , - 67 , - 624 , - 545 , - 678 , - 175 , - 1580 , - 653 , - 1634 , - 283 , - 840 , - 761 , - 894 , - 391 , - 100 , - 869 , - 154 , - 499 , - 1056 , - 977 , - 1110 , - 607 , - 316 , - 1085 , - 370 , - 715 , - 1272 , - 1193 , - 1326 , - 823 , - 532 , - 1301 , - 586 , - 931 , - 1488 , - 1409 , - 1542 , - 1039 , - 748 , - 1517 , - 802 , - 1147 , - 8 , - 1625 , - 62 , - 1255 , - 964 , - 37 , - 1018 , - 1363 , - 224 , - 145 , - 278 , - 1471 , - 1180 , - 253 , - 1234 , - 1579 , - 440 , - 361 , - 494 , - 1687 , - 1396 , - 469 , - 1450 , - 99 , - 656 , - 577 , - 710 , - 207 , - 1612 , - 685 , - 1666 , - 315 , - 872 , - 793 , - 926 , - 423 , - 132 , - 901 , - 186 , - 531 , - 1088 , - 1009 , - 1142 , - 639 , - 348 , - 1117 , - 402 , - 747 , - 1304 , - 1225 , - 1358 , - 855 , - 564 , - 1333 , - 618 , - 963 , - 1520 , - 1441 , - 1574 , - 1071 , - 780 , - 1549 , - 834 , - 1179 , - 40 , - 1657 , - 94 , - 1287 , - 996 , - 69 , - 1050 , - 1395 , - 256 , - 177 , - 310 , - 1503 , - 1212 , - 285 , - 1266 , - 1611 , - 472 , - 393 , - 526 , - 23 , - 1428 , - 501 , - 1482 , - 131 , - 688 , - 609 , - 742 , - 239 , - 1644 , - 717 , - 2 , - 347 , - 904 , - 825 , - 958 , - 455 , - 164 , - 933 , - 218 , - 563 , - 1120 , - 1041 , - 1174 , - 671 , - 380 , - 1149 , - 434 , - 779 , - 1336 , - 1257 , - 1390 , - 887 , - 596 , - 1365 , - 650 , - 995 , - 1552 , - 1473 , - 1606 , - 1103 , - 812 , - 1581 , - 866 , - 1211 , - 72 , - 1689 , - 126 , - 1319 , - 1028 , - 101 , - 1082 , - 1427 , - 288 , - 209 , - 342 , - 1535 , - 1244 , - 317 , - 1298 , - 1643 , - 504 , - 425 , - 558 , - 55 , - 1460 , - 533 , - 1514 , - 163 , - 720 , - 641 , - 774 , - 271 , - 1676 , - 749 , - 34 , - 379 , - 936 , - 857 , - 990 , - 487 , - 196 , - 965 , - 250 , - 595 , - 1152 , - 1073 , - 1206 , - 703 , - 412 , - 1181 , - 466 , - 811 , - 1368 , - 1289 , - 1422 , - 919 , - 628 , - 1397 , - 682 , - 1027 , - 1584 , - 1505 , - 1638 , - 1135 , - 844 , - 1613 , - 898 , - 1243 , - 104 , - 25 , - 158 , - 1351 , - 1060 , - 133 , - 1114 , - 1459 , - 320 , - 241 , - 374 , - 1567 , - 1276 , - 349 , - 1330 , - 1675 , - 536 , - 457 , - 590 , - 87 , - 1492 , - 565 , - 1546 , - 195 , - 752 , - 673 , - 806 , - 303 , - 12 , - 781 , - 66 , - 411 , - 968 , - 889 , - 1022 , - 519 , - 228 , - 997 , - 282 , - 627 , - 1184 , - 1105 , - 1238 , - 735 , - 444 , - 1213 , - 498 , - 843 , - 1400 , - 1321 , - 1454 , - 951 , - 660 , - 1429 , - 714 , - 1059 , - 1616 , - 1537 , - 1670 , - 1167 , - 876 , - 1645 , - 930 , - 1275 , - 136 , - 57 , - 190 , - 1383 , - 1092 , - 165 , - 1146 , - 1491 , - 352 , - 273 , - 406 , - 1599 , - 1308 , - 381 , - 1362 , - 11 , - 568 , - 489 , - 622 , - 119 , - 1524 , - 597 , - 1578 , - 227 , - 784 , - 705 , - 838 , - 335 , - 44 , - 813 , - 98 , - 443 , - 1000 , - 921 , - 1054 , - 551 , - 260 , - 1029 , - 314 , - 659 , - 1216 , - 1137 , - 1270 , - 767 , - 476 , - 1245 , - 530 , - 875 , - 1432 , - 1353 , - 1486 , - 983 , - 692 , - 1461 , - 746 , - 1091 , - 1648 , - 1569 , - 6 , - 1199 , - 908 , - 1677 , - 962 , - 1307 , - 168 , - 89 , - 222 , - 1415 , - 1124 , - 197 , - 1178 , - 1523 , - 384 , - 305 , - 438 , - 1631 , - 1340 , - 413 , - 1394 , - 43 , - 600 , - 521 , - 654 , - 151 , - 1556 , - 629 , - 1610 , - 259 , - 816 , - 737 , - 870 , - 367 , - 76 , - 845 , - 130 , - 475 , - 1032 , - 953 , - 1086 , - 583 , - 292 , - 1061 , - 346 , - 691 , - 1248 , - 1169 , - 1302 , - 799 , - 508 , - 1277 , - 562 , - 907 , - 1464 , - 1385 , - 1518 , - 1015 , - 724 , - 1493 , - 778 , - 1123 , - 1680 , - 1601 , - 38 , - 1231 , - 940 , - 13 , - 994 , - 1339 , - 200 , - 121 , - 254 , - 1447 , - 1156 , - 229 , - 1210 , - 1555 , - 416 , - 337 , - 470 , - 1663 , - 1372 , - 445 , - 1426 , - 75 , - 632 , - 553 , - 686 , - 183 , - 1588 , - 661 , - 1642 , - 291 , - 848 , - 769 , - 902 , - 399 , - 108 , - 877 , - 162 , - 507 , - 1064 , - 985 , - 1118 , - 615 , - 324 , - 1093 , - 378 , - 723 , - 1280 , - 1201 , - 1334 , - 831 , - 540 , - 1309 , - 594 , - 939 , - 1496 , - 1417 , - 1550 , - 1047 , - 756 , - 1525 , - 810 , - 1155 , - 16 , - 1633 , - 70 , - 1263 , - 972 , - 45 , - 1026 , - 1371 , - 232 , - 153 , - 286 , - 1479 , - 1188 , - 261 , - 1242 , - 1587 , - 448 , - 369 , - 502 , - 1695 , - 1404 , - 477 , - 1458 , - 107 , - 664 , - 585 , - 718 , - 215 , - 1620 , - 693 , - 1674 , - 323 , - 880 , - 801 , - 934 , - 431 , - 140 , - 909 , - 194 , - 539 , - 1096 , - 1017 , - 1150 , - 647 , - 356 , - 1125 , - 410 , - 755 , - 1312 , - 1233 , - 1366 , - 863 , - 572 , - 1341 , - 626 , - 971 , - 1528 , - 1449 , - 1582 , - 1079 , - 788 , - 1557 , - 842 , - 1187 , - 48 , - 1665 , - 102 , - 1295 , - 1004 , - 77 , - 1058 , - 1403 , - 264 , - 185 , - 318 , - 1511 , - 1220 , - 293 , - 1274 , - 1619 , - 480 , - 401 , - 534 , - 31 , - 1436 , - 509 , - 1490 , - 139 , - 696 , - 617 , - 750 , - 247 , - 1652 , - 725 , - 10 , - 355 , - 912 , - 833 , - 966 , - 463 , - 172 , - 941 , - 226 , - 571 , - 1128 , - 1049 , - 1182 , - 679 , - 388 , - 1157 , - 442 , - 787 , - 1344 , - 1265 , - 1398 , - 895 , - 604 , - 1373 , - 658 , - 1003 , - 1560 , - 1481 , - 1614 , - 1111 , - 820 , - 1589 , - 874 , - 1219 , - 80 , - 1 , - 134 , - 1327 , - 1036 , - 109 , - 1090 , - 1435 , - 296 , - 217 , - 350 , - 1543 , - 1252 , - 325 , - 1306 , - 1651 , - 512 , - 433 , - 566 , - 63 , - 1468 , - 541 , - 1522 , - 171 , - 728 , - 649 , - 782 , - 279 , - 1684 , - 757 , - 42 , - 387 , - 944 , - 865 , - 998 , - 495 , - 204 , - 973 , - 258 , - 603 , - 1160 , - 1081 , - 1214 , - 711 , - 420 , - 1189 , - 474 , - 819 , - 1376 , - 1297 , - 1430 , - 927 , - 636 , - 1405 , - 690 , - 1035 , - 1592 , - 1513 , - 1646 , - 1143 , - 852 , - 1621 , - 906 , - 1251 , - 112 , - 33 , - 166 , - 1359 , - 1068 , - 141 , - 1122 , - 1467 , - 328 , - 249 , - 382 , - 1575 , - 1284 , - 357 , - 1338 , - 1683 , - 544 , - 465 , - 598 , - 95 , - 1500 , - 573 , - 1554 , - 203 , - 760 , - 681 , - 814 , - 311 , - 20 , - 789 , - 74 , - 419 , - 976 , - 897 , - 1030 , - 527 , - 236 , - 1005 , - 290 , - 635 , - 1192 , - 1113 , - 1246 , - 743 , - 452 , - 1221 , - 506 , - 851 , - 1408 , - 1329 , - 1462 , - 959 , - 668 , - 1437 , - 722 , - 1067 , - 1624 , - 1545 , - 1678 , - 1175 , - 884 , - 1653 , - 938 , - 1283 , - 144 , - 65 , - 198 , - 1391 , - 1100 , - 173 , - 1154 , - 1499 , - 360 , - 281 , - 414 , - 1607 , - 1316 , - 389 , - 1370 , - 19 , - 576 , - 497 , - 630 , - 127 , - 1532 , - 605 , - 1586 , - 235 , - 792 , - 713 , - 846 , - 343 , - 52 , - 821 , - 106 , - 451 , - 1008 , - 929 , - 1062 , - 559 , - 268 , - 1037 , - 322 , - 667 , - 1224 , - 1145 , - 1278 , - 775 , - 484 , - 1253 , - 538 , - 883 , - 1440 , - 1361 , - 1494 , - 991 , - 700 , - 1469 , - 754 , - 1099 , - 1656 , - 1577 , - 14 , - 1207 , - 916 , - 1685 , - 970 , - 1315 , - 176 , - 97 , - 230 , - 1423 , - 1132 , - 205 , - 1186 , - 1531 , - 392 , - 313 , - 446 , - 1639 , - 1348 , - 421 , - 1402 , - 51 , - 608 , - 529 , - 662 , - 159 , - 1564 , - 637 , - 1618 , - 267 , - 824 , - 745 , - 878 , - 375 , - 84 , - 853 , - 138 , - 483 , - 1040 , - 961 , - 1094 , - 591 , - 300 , - 1069 , - 354 , - 699 , - 1256 , - 1177 , - 1310 , - 807 , - 516 , - 1285 , - 570 , - 915 , - 1472 , - 1393 , - 1526 , - 1023 , - 732 , - 1501 , - 786 , - 1131 , - 1688 , - 1609 , - 46 , - 1239 , - 948 , - 21 , - 1002 , - 1347 , - 208 , - 129 , - 262 , - 1455 , - 1164 , - 237 , - 1218 , - 1563 , - 424 , - 345 , - 478 , - 1671 , - 1380 , - 453 , - 1434 , - 83 , - 640 , - 561 , - 694 , - 191 , - 1596 , - 669 , - 1650 , - 299 , - 856 , - 777 , - 910 , - 407 , - 116 , - 885 , - 170 , - 515 , - 1072 , - 993 , - 1126 , - 623 , - 332 , - 1101 , - 386 , - 731 , - 1288 , - 1209 , - 1342 , - 839 , - 548 , - 1317 , - 602 , - 947 , - 1504 , - 1425 , - 1558 , - 1055 , - 764 , - 1533 , - 818 , - 1163 , - 24 , - 1641 , - 78 , - 1271 , - 980 , - 53 , - 1034 , - 1379 , - 240 , - 161 , - 294 , - 1487 , - 1196 , - 269 , - 1250 , - 1595 , - 456 , - 377 , - 510 , - 7 , - 1412 , - 485 , - 1466 , - 115 , - 672 , - 593 , - 726 , - 223 , - 1628 , - 701 , - 1682 , - 331 , - 888 , - 809 , - 942 , - 439 , - 148 , - 917 , - 202 , - 547 , - 1104 , - 1025 , - 1158 , - 655 , - 364 , - 1133 , - 418 , - 763 , - 1320 , - 1241 , - 1374 , - 871 , - 580 , - 1349 , - 634 , - 979 , - 1536 , - 1457 , - 1590 , - 1087 , - 796 , - 1565 , - 850 , - 1195 , - 56 , - 1673 , - 110 , - 1303 , - 1012 , - 85 , - 1066 , - 1411 , - 272 , - 193 , - 326 , - 1519 , - 1228 , - 301 , - 1282 , - 1627 , - 488 , - 409 , - 542 , - 39 , - 1444 , - 517 , - 1498 , - 147 , - 704 , - 625 , - 758 , - 255 , - 1660 , - 733 , - 18 , - 363 , - 920 , - 841 , - 974 , - 471 , - 180 , - 949 , - 234 , - 579 , - 1136 , - 1057 , - 1190 , - 687 , - 396 , - 1165 , - 450 , - 795 , - 1352 , - 1273 , - 1406 , - 903 , - 612 , - 1381 , - 666 , - 1011 , - 1568 , - 1489 , - 1622 , - 1119 , - 828 , - 1597 , - 882 , - 1227 , - 88 , - 9 , - 142 , - 1335 , - 1044 , - 117 , - 1098 , - 1443 , - 304 , - 225 , - 358 , - 1551 , - 1260 , - 333 , - 1314 , - 1659 , - 520 , - 441 , - 574 , - 71 , - 1476 , - 549 , - 1530 , - 179 , - 736 , - 657 , - 790 , - 287 , - 1692 , - 765 , - 50 , - 395 , - 952 , - 873 , - 1006 , - 503 , - 212 , - 981 , - 266 , - 611 , - 1168 , - 1089 , - 1222 , - 719 , - 428 , - 1197 , - 482 , - 827 , - 1384 , - 1305 , - 1438 , - 935 , - 644 , - 1413 , - 698 , - 1043 , - 1600 , - 1521 , - 1654 , - 1151 , - 860 , - 1629 , - 914 , - 1259 , - 120 , - 41 , - 174 , - 1367 , - 1076 , - 149 , - 1130 , - 1475 , - 336 , - 257 , - 390 , - 1583 , - 1292 , - 365 , - 1346 , - 1691 , - 552 , - 473 , - 606 , - 103 , - 1508 , - 581 , - 1562 , - 211 , - 768 , - 689 , - 822 , - 319 , - 28 , - 797 , - 82 , - 427 , - 984 , - 905 , - 1038 , - 535 , - 244 , - 1013 , - 298 , - 643 , - 1200 , - 1121 , - 1254 , - 751 , - 460 , - 1229 , - 514 , - 859 , - 1416 , - 1337 , - 1470 , - 967 , - 676 , - 1445 , - 730 , - 1075 , - 1632 , - 1553 , - 1686 , - 1183 , - 892 , - 1661 , - 946 , - 1291 , - 152 , - 73 , - 206 , - 1399 , - 1108 , - 181 , - 1162 , - 1507 , - 368 , - 289 , - 422 , - 1615 , - 1324 , - 397 , - 1378 , - 27 , - 584 , - 505 , - 638 , - 135 , - 1540 , - 613 , - 1594 , - 243 , - 800 , - 721 , - 854 , - 351 , - 60 , - 829 , - 114 , - 459 , - 1016 , - 937 , - 1070 , - 567 , - 276 , - 1045 , - 330 , - 675 , - 1232 , - 1153 , - 1286 , - 783 , - 492 , - 1261 , - 546 , - 891 , - 1448 , - 1369 , - 1502 , - 999 , - 708 , - 1477 , - 762 , - 1107 , - 1664 , - 1585 , - 22 , - 1215 , - 924 , - 1693 , - 978 , - 1323 , - 184 , - 105 , - 238 , - 1431 , - 1140 , - 213 , - 1194 , - 1539 , - 400 , - 321 , - 454 , - 1647 , - 1356 , - 429 , - 1410 , - 59 , - 616 , - 537 , - 670 , - 167 , - 1572 , - 645 , - 1626 , - 275 , - 832 , - 753 , - 886 , - 383 , - 92 , - 861 , - 146 , - 491 , - 1048 , - 969 , - 1102 , - 599 , - 308 , - 1077 , - 362 , - 707 , - 1264 , - 1185 , - 1318 , - 815 , - 524 , - 1293 , - 578 , - 923 , - 1480 , - 1401 , - 1534 , - 1031 , - 740 , - 1509 , - 794 , - 1139 , - 0 , - 607 , - 1022 , - 1245 , - 1276 , - 1115 , - 762 , - 217 , - 1208 , - 279 , - 886 , - 1301 , - 1524 , - 1555 , - 1394 , - 1041 , - 496 , - 1487 , - 558 , - 1165 , - 1580 , - 75 , - 106 , - 1673 , - 1320 , - 775 , - 38 , - 837 , - 1444 , - 131 , - 354 , - 385 , - 224 , - 1599 , - 1054 , - 317 , - 1116 , - 1723 , - 410 , - 633 , - 664 , - 503 , - 150 , - 1333 , - 596 , - 1395 , - 274 , - 689 , - 912 , - 943 , - 782 , - 429 , - 1612 , - 875 , - 1674 , - 553 , - 968 , - 1191 , - 1222 , - 1061 , - 708 , - 163 , - 1154 , - 225 , - 832 , - 1247 , - 1470 , - 1501 , - 1340 , - 987 , - 442 , - 1433 , - 504 , - 1111 , - 1526 , - 21 , - 52 , - 1619 , - 1266 , - 721 , - 1712 , - 783 , - 1390 , - 77 , - 300 , - 331 , - 170 , - 1545 , - 1000 , - 263 , - 1062 , - 1669 , - 356 , - 579 , - 610 , - 449 , - 96 , - 1279 , - 542 , - 1341 , - 220 , - 635 , - 858 , - 889 , - 728 , - 375 , - 1558 , - 821 , - 1620 , - 499 , - 914 , - 1137 , - 1168 , - 1007 , - 654 , - 109 , - 1100 , - 171 , - 778 , - 1193 , - 1416 , - 1447 , - 1286 , - 933 , - 388 , - 1379 , - 450 , - 1057 , - 1472 , - 1695 , - 1726 , - 1565 , - 1212 , - 667 , - 1658 , - 729 , - 1336 , - 23 , - 246 , - 277 , - 116 , - 1491 , - 946 , - 209 , - 1008 , - 1615 , - 302 , - 525 , - 556 , - 395 , - 42 , - 1225 , - 488 , - 1287 , - 166 , - 581 , - 804 , - 835 , - 674 , - 321 , - 1504 , - 767 , - 1566 , - 445 , - 860 , - 1083 , - 1114 , - 953 , - 600 , - 55 , - 1046 , - 117 , - 724 , - 1139 , - 1362 , - 1393 , - 1232 , - 879 , - 334 , - 1325 , - 396 , - 1003 , - 1418 , - 1641 , - 1672 , - 1511 , - 1158 , - 613 , - 1604 , - 675 , - 1282 , - 1697 , - 192 , - 223 , - 62 , - 1437 , - 892 , - 155 , - 954 , - 1561 , - 248 , - 471 , - 502 , - 341 , - 1716 , - 1171 , - 434 , - 1233 , - 112 , - 527 , - 750 , - 781 , - 620 , - 267 , - 1450 , - 713 , - 1512 , - 391 , - 806 , - 1029 , - 1060 , - 899 , - 546 , - 1 , - 992 , - 63 , - 670 , - 1085 , - 1308 , - 1339 , - 1178 , - 825 , - 280 , - 1271 , - 342 , - 949 , - 1364 , - 1587 , - 1618 , - 1457 , - 1104 , - 559 , - 1550 , - 621 , - 1228 , - 1643 , - 138 , - 169 , - 8 , - 1383 , - 838 , - 101 , - 900 , - 1507 , - 194 , - 417 , - 448 , - 287 , - 1662 , - 1117 , - 380 , - 1179 , - 58 , - 473 , - 696 , - 727 , - 566 , - 213 , - 1396 , - 659 , - 1458 , - 337 , - 752 , - 975 , - 1006 , - 845 , - 492 , - 1675 , - 938 , - 9 , - 616 , - 1031 , - 1254 , - 1285 , - 1124 , - 771 , - 226 , - 1217 , - 288 , - 895 , - 1310 , - 1533 , - 1564 , - 1403 , - 1050 , - 505 , - 1496 , - 567 , - 1174 , - 1589 , - 84 , - 115 , - 1682 , - 1329 , - 784 , - 47 , - 846 , - 1453 , - 140 , - 363 , - 394 , - 233 , - 1608 , - 1063 , - 326 , - 1125 , - 4 , - 419 , - 642 , - 673 , - 512 , - 159 , - 1342 , - 605 , - 1404 , - 283 , - 698 , - 921 , - 952 , - 791 , - 438 , - 1621 , - 884 , - 1683 , - 562 , - 977 , - 1200 , - 1231 , - 1070 , - 717 , - 172 , - 1163 , - 234 , - 841 , - 1256 , - 1479 , - 1510 , - 1349 , - 996 , - 451 , - 1442 , - 513 , - 1120 , - 1535 , - 30 , - 61 , - 1628 , - 1275 , - 730 , - 1721 , - 792 , - 1399 , - 86 , - 309 , - 340 , - 179 , - 1554 , - 1009 , - 272 , - 1071 , - 1678 , - 365 , - 588 , - 619 , - 458 , - 105 , - 1288 , - 551 , - 1350 , - 229 , - 644 , - 867 , - 898 , - 737 , - 384 , - 1567 , - 830 , - 1629 , - 508 , - 923 , - 1146 , - 1177 , - 1016 , - 663 , - 118 , - 1109 , - 180 , - 787 , - 1202 , - 1425 , - 1456 , - 1295 , - 942 , - 397 , - 1388 , - 459 , - 1066 , - 1481 , - 1704 , - 7 , - 1574 , - 1221 , - 676 , - 1667 , - 738 , - 1345 , - 32 , - 255 , - 286 , - 125 , - 1500 , - 955 , - 218 , - 1017 , - 1624 , - 311 , - 534 , - 565 , - 404 , - 51 , - 1234 , - 497 , - 1296 , - 175 , - 590 , - 813 , - 844 , - 683 , - 330 , - 1513 , - 776 , - 1575 , - 454 , - 869 , - 1092 , - 1123 , - 962 , - 609 , - 64 , - 1055 , - 126 , - 733 , - 1148 , - 1371 , - 1402 , - 1241 , - 888 , - 343 , - 1334 , - 405 , - 1012 , - 1427 , - 1650 , - 1681 , - 1520 , - 1167 , - 622 , - 1613 , - 684 , - 1291 , - 1706 , - 201 , - 232 , - 71 , - 1446 , - 901 , - 164 , - 963 , - 1570 , - 257 , - 480 , - 511 , - 350 , - 1725 , - 1180 , - 443 , - 1242 , - 121 , - 536 , - 759 , - 790 , - 629 , - 276 , - 1459 , - 722 , - 1521 , - 400 , - 815 , - 1038 , - 1069 , - 908 , - 555 , - 10 , - 1001 , - 72 , - 679 , - 1094 , - 1317 , - 1348 , - 1187 , - 834 , - 289 , - 1280 , - 351 , - 958 , - 1373 , - 1596 , - 1627 , - 1466 , - 1113 , - 568 , - 1559 , - 630 , - 1237 , - 1652 , - 147 , - 178 , - 17 , - 1392 , - 847 , - 110 , - 909 , - 1516 , - 203 , - 426 , - 457 , - 296 , - 1671 , - 1126 , - 389 , - 1188 , - 67 , - 482 , - 705 , - 736 , - 575 , - 222 , - 1405 , - 668 , - 1467 , - 346 , - 761 , - 984 , - 1015 , - 854 , - 501 , - 1684 , - 947 , - 18 , - 625 , - 1040 , - 1263 , - 1294 , - 1133 , - 780 , - 235 , - 1226 , - 297 , - 904 , - 1319 , - 1542 , - 1573 , - 1412 , - 1059 , - 514 , - 1505 , - 576 , - 1183 , - 1598 , - 93 , - 124 , - 1691 , - 1338 , - 793 , - 56 , - 855 , - 1462 , - 149 , - 372 , - 403 , - 242 , - 1617 , - 1072 , - 335 , - 1134 , - 13 , - 428 , - 651 , - 682 , - 521 , - 168 , - 1351 , - 614 , - 1413 , - 292 , - 707 , - 930 , - 961 , - 800 , - 447 , - 1630 , - 893 , - 1692 , - 571 , - 986 , - 1209 , - 1240 , - 1079 , - 726 , - 181 , - 1172 , - 243 , - 850 , - 1265 , - 1488 , - 1519 , - 1358 , - 1005 , - 460 , - 1451 , - 522 , - 1129 , - 1544 , - 39 , - 70 , - 1637 , - 1284 , - 739 , - 2 , - 801 , - 1408 , - 95 , - 318 , - 349 , - 188 , - 1563 , - 1018 , - 281 , - 1080 , - 1687 , - 374 , - 597 , - 628 , - 467 , - 114 , - 1297 , - 560 , - 1359 , - 238 , - 653 , - 876 , - 907 , - 746 , - 393 , - 1576 , - 839 , - 1638 , - 517 , - 932 , - 1155 , - 1186 , - 1025 , - 672 , - 127 , - 1118 , - 189 , - 796 , - 1211 , - 1434 , - 1465 , - 1304 , - 951 , - 406 , - 1397 , - 468 , - 1075 , - 1490 , - 1713 , - 16 , - 1583 , - 1230 , - 685 , - 1676 , - 747 , - 1354 , - 41 , - 264 , - 295 , - 134 , - 1509 , - 964 , - 227 , - 1026 , - 1633 , - 320 , - 543 , - 574 , - 413 , - 60 , - 1243 , - 506 , - 1305 , - 184 , - 599 , - 822 , - 853 , - 692 , - 339 , - 1522 , - 785 , - 1584 , - 463 , - 878 , - 1101 , - 1132 , - 971 , - 618 , - 73 , - 1064 , - 135 , - 742 , - 1157 , - 1380 , - 1411 , - 1250 , - 897 , - 352 , - 1343 , - 414 , - 1021 , - 1436 , - 1659 , - 1690 , - 1529 , - 1176 , - 631 , - 1622 , - 693 , - 1300 , - 1715 , - 210 , - 241 , - 80 , - 1455 , - 910 , - 173 , - 972 , - 1579 , - 266 , - 489 , - 520 , - 359 , - 6 , - 1189 , - 452 , - 1251 , - 130 , - 545 , - 768 , - 799 , - 638 , - 285 , - 1468 , - 731 , - 1530 , - 409 , - 824 , - 1047 , - 1078 , - 917 , - 564 , - 19 , - 1010 , - 81 , - 688 , - 1103 , - 1326 , - 1357 , - 1196 , - 843 , - 298 , - 1289 , - 360 , - 967 , - 1382 , - 1605 , - 1636 , - 1475 , - 1122 , - 577 , - 1568 , - 639 , - 1246 , - 1661 , - 156 , - 187 , - 26 , - 1401 , - 856 , - 119 , - 918 , - 1525 , - 212 , - 435 , - 466 , - 305 , - 1680 , - 1135 , - 398 , - 1197 , - 76 , - 491 , - 714 , - 745 , - 584 , - 231 , - 1414 , - 677 , - 1476 , - 355 , - 770 , - 993 , - 1024 , - 863 , - 510 , - 1693 , - 956 , - 27 , - 634 , - 1049 , - 1272 , - 1303 , - 1142 , - 789 , - 244 , - 1235 , - 306 , - 913 , - 1328 , - 1551 , - 1582 , - 1421 , - 1068 , - 523 , - 1514 , - 585 , - 1192 , - 1607 , - 102 , - 133 , - 1700 , - 1347 , - 802 , - 65 , - 864 , - 1471 , - 158 , - 381 , - 412 , - 251 , - 1626 , - 1081 , - 344 , - 1143 , - 22 , - 437 , - 660 , - 691 , - 530 , - 177 , - 1360 , - 623 , - 1422 , - 301 , - 716 , - 939 , - 970 , - 809 , - 456 , - 1639 , - 902 , - 1701 , - 580 , - 995 , - 1218 , - 1249 , - 1088 , - 735 , - 190 , - 1181 , - 252 , - 859 , - 1274 , - 1497 , - 1528 , - 1367 , - 1014 , - 469 , - 1460 , - 531 , - 1138 , - 1553 , - 48 , - 79 , - 1646 , - 1293 , - 748 , - 11 , - 810 , - 1417 , - 104 , - 327 , - 358 , - 197 , - 1572 , - 1027 , - 290 , - 1089 , - 1696 , - 383 , - 606 , - 637 , - 476 , - 123 , - 1306 , - 569 , - 1368 , - 247 , - 662 , - 885 , - 916 , - 755 , - 402 , - 1585 , - 848 , - 1647 , - 526 , - 941 , - 1164 , - 1195 , - 1034 , - 681 , - 136 , - 1127 , - 198 , - 805 , - 1220 , - 1443 , - 1474 , - 1313 , - 960 , - 415 , - 1406 , - 477 , - 1084 , - 1499 , - 1722 , - 25 , - 1592 , - 1239 , - 694 , - 1685 , - 756 , - 1363 , - 50 , - 273 , - 304 , - 143 , - 1518 , - 973 , - 236 , - 1035 , - 1642 , - 329 , - 552 , - 583 , - 422 , - 69 , - 1252 , - 515 , - 1314 , - 193 , - 608 , - 831 , - 862 , - 701 , - 348 , - 1531 , - 794 , - 1593 , - 472 , - 887 , - 1110 , - 1141 , - 980 , - 627 , - 82 , - 1073 , - 144 , - 751 , - 1166 , - 1389 , - 1420 , - 1259 , - 906 , - 361 , - 1352 , - 423 , - 1030 , - 1445 , - 1668 , - 1699 , - 1538 , - 1185 , - 640 , - 1631 , - 702 , - 1309 , - 1724 , - 219 , - 250 , - 89 , - 1464 , - 919 , - 182 , - 981 , - 1588 , - 275 , - 498 , - 529 , - 368 , - 15 , - 1198 , - 461 , - 1260 , - 139 , - 554 , - 777 , - 808 , - 647 , - 294 , - 1477 , - 740 , - 1539 , - 418 , - 833 , - 1056 , - 1087 , - 926 , - 573 , - 28 , - 1019 , - 90 , - 697 , - 1112 , - 1335 , - 1366 , - 1205 , - 852 , - 307 , - 1298 , - 369 , - 976 , - 1391 , - 1614 , - 1645 , - 1484 , - 1131 , - 586 , - 1577 , - 648 , - 1255 , - 1670 , - 165 , - 196 , - 35 , - 1410 , - 865 , - 128 , - 927 , - 1534 , - 221 , - 444 , - 475 , - 314 , - 1689 , - 1144 , - 407 , - 1206 , - 85 , - 500 , - 723 , - 754 , - 593 , - 240 , - 1423 , - 686 , - 1485 , - 364 , - 779 , - 1002 , - 1033 , - 872 , - 519 , - 1702 , - 965 , - 36 , - 643 , - 1058 , - 1281 , - 1312 , - 1151 , - 798 , - 253 , - 1244 , - 315 , - 922 , - 1337 , - 1560 , - 1591 , - 1430 , - 1077 , - 532 , - 1523 , - 594 , - 1201 , - 1616 , - 111 , - 142 , - 1709 , - 1356 , - 811 , - 74 , - 873 , - 1480 , - 167 , - 390 , - 421 , - 260 , - 1635 , - 1090 , - 353 , - 1152 , - 31 , - 446 , - 669 , - 700 , - 539 , - 186 , - 1369 , - 632 , - 1431 , - 310 , - 725 , - 948 , - 979 , - 818 , - 465 , - 1648 , - 911 , - 1710 , - 589 , - 1004 , - 1227 , - 1258 , - 1097 , - 744 , - 199 , - 1190 , - 261 , - 868 , - 1283 , - 1506 , - 1537 , - 1376 , - 1023 , - 478 , - 1469 , - 540 , - 1147 , - 1562 , - 57 , - 88 , - 1655 , - 1302 , - 757 , - 20 , - 819 , - 1426 , - 113 , - 336 , - 367 , - 206 , - 1581 , - 1036 , - 299 , - 1098 , - 1705 , - 392 , - 615 , - 646 , - 485 , - 132 , - 1315 , - 578 , - 1377 , - 256 , - 671 , - 894 , - 925 , - 764 , - 411 , - 1594 , - 857 , - 1656 , - 535 , - 950 , - 1173 , - 1204 , - 1043 , - 690 , - 145 , - 1136 , - 207 , - 814 , - 1229 , - 1452 , - 1483 , - 1322 , - 969 , - 424 , - 1415 , - 486 , - 1093 , - 1508 , - 3 , - 34 , - 1601 , - 1248 , - 703 , - 1694 , - 765 , - 1372 , - 59 , - 282 , - 313 , - 152 , - 1527 , - 982 , - 245 , - 1044 , - 1651 , - 338 , - 561 , - 592 , - 431 , - 78 , - 1261 , - 524 , - 1323 , - 202 , - 617 , - 840 , - 871 , - 710 , - 357 , - 1540 , - 803 , - 1602 , - 481 , - 896 , - 1119 , - 1150 , - 989 , - 636 , - 91 , - 1082 , - 153 , - 760 , - 1175 , - 1398 , - 1429 , - 1268 , - 915 , - 370 , - 1361 , - 432 , - 1039 , - 1454 , - 1677 , - 1708 , - 1547 , - 1194 , - 649 , - 1640 , - 711 , - 1318 , - 5 , - 228 , - 259 , - 98 , - 1473 , - 928 , - 191 , - 990 , - 1597 , - 284 , - 507 , - 538 , - 377 , - 24 , - 1207 , - 470 , - 1269 , - 148 , - 563 , - 786 , - 817 , - 656 , - 303 , - 1486 , - 749 , - 1548 , - 427 , - 842 , - 1065 , - 1096 , - 935 , - 582 , - 37 , - 1028 , - 99 , - 706 , - 1121 , - 1344 , - 1375 , - 1214 , - 861 , - 316 , - 1307 , - 378 , - 985 , - 1400 , - 1623 , - 1654 , - 1493 , - 1140 , - 595 , - 1586 , - 657 , - 1264 , - 1679 , - 174 , - 205 , - 44 , - 1419 , - 874 , - 137 , - 936 , - 1543 , - 230 , - 453 , - 484 , - 323 , - 1698 , - 1153 , - 416 , - 1215 , - 94 , - 509 , - 732 , - 763 , - 602 , - 249 , - 1432 , - 695 , - 1494 , - 373 , - 788 , - 1011 , - 1042 , - 881 , - 528 , - 1711 , - 974 , - 45 , - 652 , - 1067 , - 1290 , - 1321 , - 1160 , - 807 , - 262 , - 1253 , - 324 , - 931 , - 1346 , - 1569 , - 1600 , - 1439 , - 1086 , - 541 , - 1532 , - 603 , - 1210 , - 1625 , - 120 , - 151 , - 1718 , - 1365 , - 820 , - 83 , - 882 , - 1489 , - 176 , - 399 , - 430 , - 269 , - 1644 , - 1099 , - 362 , - 1161 , - 40 , - 455 , - 678 , - 709 , - 548 , - 195 , - 1378 , - 641 , - 1440 , - 319 , - 734 , - 957 , - 988 , - 827 , - 474 , - 1657 , - 920 , - 1719 , - 598 , - 1013 , - 1236 , - 1267 , - 1106 , - 753 , - 208 , - 1199 , - 270 , - 877 , - 1292 , - 1515 , - 1546 , - 1385 , - 1032 , - 487 , - 1478 , - 549 , - 1156 , - 1571 , - 66 , - 97 , - 1664 , - 1311 , - 766 , - 29 , - 828 , - 1435 , - 122 , - 345 , - 376 , - 215 , - 1590 , - 1045 , - 308 , - 1107 , - 1714 , - 401 , - 624 , - 655 , - 494 , - 141 , - 1324 , - 587 , - 1386 , - 265 , - 680 , - 903 , - 934 , - 773 , - 420 , - 1603 , - 866 , - 1665 , - 544 , - 959 , - 1182 , - 1213 , - 1052 , - 699 , - 154 , - 1145 , - 216 , - 823 , - 1238 , - 1461 , - 1492 , - 1331 , - 978 , - 433 , - 1424 , - 495 , - 1102 , - 1517 , - 12 , - 43 , - 1610 , - 1257 , - 712 , - 1703 , - 774 , - 1381 , - 68 , - 291 , - 322 , - 161 , - 1536 , - 991 , - 254 , - 1053 , - 1660 , - 347 , - 570 , - 601 , - 440 , - 87 , - 1270 , - 533 , - 1332 , - 211 , - 626 , - 849 , - 880 , - 719 , - 366 , - 1549 , - 812 , - 1611 , - 490 , - 905 , - 1128 , - 1159 , - 998 , - 645 , - 100 , - 1091 , - 162 , - 769 , - 1184 , - 1407 , - 1438 , - 1277 , - 924 , - 379 , - 1370 , - 441 , - 1048 , - 1463 , - 1686 , - 1717 , - 1556 , - 1203 , - 658 , - 1649 , - 720 , - 1327 , - 14 , - 237 , - 268 , - 107 , - 1482 , - 937 , - 200 , - 999 , - 1606 , - 293 , - 516 , - 547 , - 386 , - 33 , - 1216 , - 479 , - 1278 , - 157 , - 572 , - 795 , - 826 , - 665 , - 312 , - 1495 , - 758 , - 1557 , - 436 , - 851 , - 1074 , - 1105 , - 944 , - 591 , - 46 , - 1037 , - 108 , - 715 , - 1130 , - 1353 , - 1384 , - 1223 , - 870 , - 325 , - 1316 , - 387 , - 994 , - 1409 , - 1632 , - 1663 , - 1502 , - 1149 , - 604 , - 1595 , - 666 , - 1273 , - 1688 , - 183 , - 214 , - 53 , - 1428 , - 883 , - 146 , - 945 , - 1552 , - 239 , - 462 , - 493 , - 332 , - 1707 , - 1162 , - 425 , - 1224 , - 103 , - 518 , - 741 , - 772 , - 611 , - 258 , - 1441 , - 704 , - 1503 , - 382 , - 797 , - 1020 , - 1051 , - 890 , - 537 , - 1720 , - 983 , - 54 , - 661 , - 1076 , - 1299 , - 1330 , - 1169 , - 816 , - 271 , - 1262 , - 333 , - 940 , - 1355 , - 1578 , - 1609 , - 1448 , - 1095 , - 550 , - 1541 , - 612 , - 1219 , - 1634 , - 129 , - 160 , - 1727 , - 1374 , - 829 , - 92 , - 891 , - 1498 , - 185 , - 408 , - 439 , - 278 , - 1653 , - 1108 , - 371 , - 1170 , - 49 , - 464 , - 687 , - 718 , - 557 , - 204 , - 1387 , - 650 , - 1449 , - 328 , - 743 , - 966 , - 997 , - 836 , - 483 , - 1666 , - 929 , - 0 , - 713 , - 766 , - 1039 , - 652 , - 485 , - 1418 , - 811 , - 1304 , - 257 , - 310 , - 583 , - 196 , - 29 , - 962 , - 355 , - 848 , - 1561 , - 1614 , - 127 , - 1500 , - 1333 , - 506 , - 1659 , - 392 , - 1105 , - 1158 , - 1431 , - 1044 , - 877 , - 50 , - 1203 , - 1696 , - 649 , - 702 , - 975 , - 588 , - 421 , - 1354 , - 747 , - 1240 , - 193 , - 246 , - 519 , - 132 , - 1725 , - 898 , - 291 , - 784 , - 1497 , - 1550 , - 63 , - 1436 , - 1269 , - 442 , - 1595 , - 328 , - 1041 , - 1094 , - 1367 , - 980 , - 813 , - 1746 , - 1139 , - 1632 , - 585 , - 638 , - 911 , - 524 , - 357 , - 1290 , - 683 , - 1176 , - 129 , - 182 , - 455 , - 68 , - 1661 , - 834 , - 227 , - 720 , - 1433 , - 1486 , - 1759 , - 1372 , - 1205 , - 378 , - 1531 , - 264 , - 977 , - 1030 , - 1303 , - 916 , - 749 , - 1682 , - 1075 , - 1568 , - 521 , - 574 , - 847 , - 460 , - 293 , - 1226 , - 619 , - 1112 , - 65 , - 118 , - 391 , - 4 , - 1597 , - 770 , - 163 , - 656 , - 1369 , - 1422 , - 1695 , - 1308 , - 1141 , - 314 , - 1467 , - 200 , - 913 , - 966 , - 1239 , - 852 , - 685 , - 1618 , - 1011 , - 1504 , - 457 , - 510 , - 783 , - 396 , - 229 , - 1162 , - 555 , - 1048 , - 1 , - 54 , - 327 , - 1700 , - 1533 , - 706 , - 99 , - 592 , - 1305 , - 1358 , - 1631 , - 1244 , - 1077 , - 250 , - 1403 , - 136 , - 849 , - 902 , - 1175 , - 788 , - 621 , - 1554 , - 947 , - 1440 , - 393 , - 446 , - 719 , - 332 , - 165 , - 1098 , - 491 , - 984 , - 1697 , - 1750 , - 263 , - 1636 , - 1469 , - 642 , - 35 , - 528 , - 1241 , - 1294 , - 1567 , - 1180 , - 1013 , - 186 , - 1339 , - 72 , - 785 , - 838 , - 1111 , - 724 , - 557 , - 1490 , - 883 , - 1376 , - 329 , - 382 , - 655 , - 268 , - 101 , - 1034 , - 427 , - 920 , - 1633 , - 1686 , - 199 , - 1572 , - 1405 , - 578 , - 1731 , - 464 , - 1177 , - 1230 , - 1503 , - 1116 , - 949 , - 122 , - 1275 , - 8 , - 721 , - 774 , - 1047 , - 660 , - 493 , - 1426 , - 819 , - 1312 , - 265 , - 318 , - 591 , - 204 , - 37 , - 970 , - 363 , - 856 , - 1569 , - 1622 , - 135 , - 1508 , - 1341 , - 514 , - 1667 , - 400 , - 1113 , - 1166 , - 1439 , - 1052 , - 885 , - 58 , - 1211 , - 1704 , - 657 , - 710 , - 983 , - 596 , - 429 , - 1362 , - 755 , - 1248 , - 201 , - 254 , - 527 , - 140 , - 1733 , - 906 , - 299 , - 792 , - 1505 , - 1558 , - 71 , - 1444 , - 1277 , - 450 , - 1603 , - 336 , - 1049 , - 1102 , - 1375 , - 988 , - 821 , - 1754 , - 1147 , - 1640 , - 593 , - 646 , - 919 , - 532 , - 365 , - 1298 , - 691 , - 1184 , - 137 , - 190 , - 463 , - 76 , - 1669 , - 842 , - 235 , - 728 , - 1441 , - 1494 , - 7 , - 1380 , - 1213 , - 386 , - 1539 , - 272 , - 985 , - 1038 , - 1311 , - 924 , - 757 , - 1690 , - 1083 , - 1576 , - 529 , - 582 , - 855 , - 468 , - 301 , - 1234 , - 627 , - 1120 , - 73 , - 126 , - 399 , - 12 , - 1605 , - 778 , - 171 , - 664 , - 1377 , - 1430 , - 1703 , - 1316 , - 1149 , - 322 , - 1475 , - 208 , - 921 , - 974 , - 1247 , - 860 , - 693 , - 1626 , - 1019 , - 1512 , - 465 , - 518 , - 791 , - 404 , - 237 , - 1170 , - 563 , - 1056 , - 9 , - 62 , - 335 , - 1708 , - 1541 , - 714 , - 107 , - 600 , - 1313 , - 1366 , - 1639 , - 1252 , - 1085 , - 258 , - 1411 , - 144 , - 857 , - 910 , - 1183 , - 796 , - 629 , - 1562 , - 955 , - 1448 , - 401 , - 454 , - 727 , - 340 , - 173 , - 1106 , - 499 , - 992 , - 1705 , - 1758 , - 271 , - 1644 , - 1477 , - 650 , - 43 , - 536 , - 1249 , - 1302 , - 1575 , - 1188 , - 1021 , - 194 , - 1347 , - 80 , - 793 , - 846 , - 1119 , - 732 , - 565 , - 1498 , - 891 , - 1384 , - 337 , - 390 , - 663 , - 276 , - 109 , - 1042 , - 435 , - 928 , - 1641 , - 1694 , - 207 , - 1580 , - 1413 , - 586 , - 1739 , - 472 , - 1185 , - 1238 , - 1511 , - 1124 , - 957 , - 130 , - 1283 , - 16 , - 729 , - 782 , - 1055 , - 668 , - 501 , - 1434 , - 827 , - 1320 , - 273 , - 326 , - 599 , - 212 , - 45 , - 978 , - 371 , - 864 , - 1577 , - 1630 , - 143 , - 1516 , - 1349 , - 522 , - 1675 , - 408 , - 1121 , - 1174 , - 1447 , - 1060 , - 893 , - 66 , - 1219 , - 1712 , - 665 , - 718 , - 991 , - 604 , - 437 , - 1370 , - 763 , - 1256 , - 209 , - 262 , - 535 , - 148 , - 1741 , - 914 , - 307 , - 800 , - 1513 , - 1566 , - 79 , - 1452 , - 1285 , - 458 , - 1611 , - 344 , - 1057 , - 1110 , - 1383 , - 996 , - 829 , - 2 , - 1155 , - 1648 , - 601 , - 654 , - 927 , - 540 , - 373 , - 1306 , - 699 , - 1192 , - 145 , - 198 , - 471 , - 84 , - 1677 , - 850 , - 243 , - 736 , - 1449 , - 1502 , - 15 , - 1388 , - 1221 , - 394 , - 1547 , - 280 , - 993 , - 1046 , - 1319 , - 932 , - 765 , - 1698 , - 1091 , - 1584 , - 537 , - 590 , - 863 , - 476 , - 309 , - 1242 , - 635 , - 1128 , - 81 , - 134 , - 407 , - 20 , - 1613 , - 786 , - 179 , - 672 , - 1385 , - 1438 , - 1711 , - 1324 , - 1157 , - 330 , - 1483 , - 216 , - 929 , - 982 , - 1255 , - 868 , - 701 , - 1634 , - 1027 , - 1520 , - 473 , - 526 , - 799 , - 412 , - 245 , - 1178 , - 571 , - 1064 , - 17 , - 70 , - 343 , - 1716 , - 1549 , - 722 , - 115 , - 608 , - 1321 , - 1374 , - 1647 , - 1260 , - 1093 , - 266 , - 1419 , - 152 , - 865 , - 918 , - 1191 , - 804 , - 637 , - 1570 , - 963 , - 1456 , - 409 , - 462 , - 735 , - 348 , - 181 , - 1114 , - 507 , - 1000 , - 1713 , - 6 , - 279 , - 1652 , - 1485 , - 658 , - 51 , - 544 , - 1257 , - 1310 , - 1583 , - 1196 , - 1029 , - 202 , - 1355 , - 88 , - 801 , - 854 , - 1127 , - 740 , - 573 , - 1506 , - 899 , - 1392 , - 345 , - 398 , - 671 , - 284 , - 117 , - 1050 , - 443 , - 936 , - 1649 , - 1702 , - 215 , - 1588 , - 1421 , - 594 , - 1747 , - 480 , - 1193 , - 1246 , - 1519 , - 1132 , - 965 , - 138 , - 1291 , - 24 , - 737 , - 790 , - 1063 , - 676 , - 509 , - 1442 , - 835 , - 1328 , - 281 , - 334 , - 607 , - 220 , - 53 , - 986 , - 379 , - 872 , - 1585 , - 1638 , - 151 , - 1524 , - 1357 , - 530 , - 1683 , - 416 , - 1129 , - 1182 , - 1455 , - 1068 , - 901 , - 74 , - 1227 , - 1720 , - 673 , - 726 , - 999 , - 612 , - 445 , - 1378 , - 771 , - 1264 , - 217 , - 270 , - 543 , - 156 , - 1749 , - 922 , - 315 , - 808 , - 1521 , - 1574 , - 87 , - 1460 , - 1293 , - 466 , - 1619 , - 352 , - 1065 , - 1118 , - 1391 , - 1004 , - 837 , - 10 , - 1163 , - 1656 , - 609 , - 662 , - 935 , - 548 , - 381 , - 1314 , - 707 , - 1200 , - 153 , - 206 , - 479 , - 92 , - 1685 , - 858 , - 251 , - 744 , - 1457 , - 1510 , - 23 , - 1396 , - 1229 , - 402 , - 1555 , - 288 , - 1001 , - 1054 , - 1327 , - 940 , - 773 , - 1706 , - 1099 , - 1592 , - 545 , - 598 , - 871 , - 484 , - 317 , - 1250 , - 643 , - 1136 , - 89 , - 142 , - 415 , - 28 , - 1621 , - 794 , - 187 , - 680 , - 1393 , - 1446 , - 1719 , - 1332 , - 1165 , - 338 , - 1491 , - 224 , - 937 , - 990 , - 1263 , - 876 , - 709 , - 1642 , - 1035 , - 1528 , - 481 , - 534 , - 807 , - 420 , - 253 , - 1186 , - 579 , - 1072 , - 25 , - 78 , - 351 , - 1724 , - 1557 , - 730 , - 123 , - 616 , - 1329 , - 1382 , - 1655 , - 1268 , - 1101 , - 274 , - 1427 , - 160 , - 873 , - 926 , - 1199 , - 812 , - 645 , - 1578 , - 971 , - 1464 , - 417 , - 470 , - 743 , - 356 , - 189 , - 1122 , - 515 , - 1008 , - 1721 , - 14 , - 287 , - 1660 , - 1493 , - 666 , - 59 , - 552 , - 1265 , - 1318 , - 1591 , - 1204 , - 1037 , - 210 , - 1363 , - 96 , - 809 , - 862 , - 1135 , - 748 , - 581 , - 1514 , - 907 , - 1400 , - 353 , - 406 , - 679 , - 292 , - 125 , - 1058 , - 451 , - 944 , - 1657 , - 1710 , - 223 , - 1596 , - 1429 , - 602 , - 1755 , - 488 , - 1201 , - 1254 , - 1527 , - 1140 , - 973 , - 146 , - 1299 , - 32 , - 745 , - 798 , - 1071 , - 684 , - 517 , - 1450 , - 843 , - 1336 , - 289 , - 342 , - 615 , - 228 , - 61 , - 994 , - 387 , - 880 , - 1593 , - 1646 , - 159 , - 1532 , - 1365 , - 538 , - 1691 , - 424 , - 1137 , - 1190 , - 1463 , - 1076 , - 909 , - 82 , - 1235 , - 1728 , - 681 , - 734 , - 1007 , - 620 , - 453 , - 1386 , - 779 , - 1272 , - 225 , - 278 , - 551 , - 164 , - 1757 , - 930 , - 323 , - 816 , - 1529 , - 1582 , - 95 , - 1468 , - 1301 , - 474 , - 1627 , - 360 , - 1073 , - 1126 , - 1399 , - 1012 , - 845 , - 18 , - 1171 , - 1664 , - 617 , - 670 , - 943 , - 556 , - 389 , - 1322 , - 715 , - 1208 , - 161 , - 214 , - 487 , - 100 , - 1693 , - 866 , - 259 , - 752 , - 1465 , - 1518 , - 31 , - 1404 , - 1237 , - 410 , - 1563 , - 296 , - 1009 , - 1062 , - 1335 , - 948 , - 781 , - 1714 , - 1107 , - 1600 , - 553 , - 606 , - 879 , - 492 , - 325 , - 1258 , - 651 , - 1144 , - 97 , - 150 , - 423 , - 36 , - 1629 , - 802 , - 195 , - 688 , - 1401 , - 1454 , - 1727 , - 1340 , - 1173 , - 346 , - 1499 , - 232 , - 945 , - 998 , - 1271 , - 884 , - 717 , - 1650 , - 1043 , - 1536 , - 489 , - 542 , - 815 , - 428 , - 261 , - 1194 , - 587 , - 1080 , - 33 , - 86 , - 359 , - 1732 , - 1565 , - 738 , - 131 , - 624 , - 1337 , - 1390 , - 1663 , - 1276 , - 1109 , - 282 , - 1435 , - 168 , - 881 , - 934 , - 1207 , - 820 , - 653 , - 1586 , - 979 , - 1472 , - 425 , - 478 , - 751 , - 364 , - 197 , - 1130 , - 523 , - 1016 , - 1729 , - 22 , - 295 , - 1668 , - 1501 , - 674 , - 67 , - 560 , - 1273 , - 1326 , - 1599 , - 1212 , - 1045 , - 218 , - 1371 , - 104 , - 817 , - 870 , - 1143 , - 756 , - 589 , - 1522 , - 915 , - 1408 , - 361 , - 414 , - 687 , - 300 , - 133 , - 1066 , - 459 , - 952 , - 1665 , - 1718 , - 231 , - 1604 , - 1437 , - 610 , - 3 , - 496 , - 1209 , - 1262 , - 1535 , - 1148 , - 981 , - 154 , - 1307 , - 40 , - 753 , - 806 , - 1079 , - 692 , - 525 , - 1458 , - 851 , - 1344 , - 297 , - 350 , - 623 , - 236 , - 69 , - 1002 , - 395 , - 888 , - 1601 , - 1654 , - 167 , - 1540 , - 1373 , - 546 , - 1699 , - 432 , - 1145 , - 1198 , - 1471 , - 1084 , - 917 , - 90 , - 1243 , - 1736 , - 689 , - 742 , - 1015 , - 628 , - 461 , - 1394 , - 787 , - 1280 , - 233 , - 286 , - 559 , - 172 , - 5 , - 938 , - 331 , - 824 , - 1537 , - 1590 , - 103 , - 1476 , - 1309 , - 482 , - 1635 , - 368 , - 1081 , - 1134 , - 1407 , - 1020 , - 853 , - 26 , - 1179 , - 1672 , - 625 , - 678 , - 951 , - 564 , - 397 , - 1330 , - 723 , - 1216 , - 169 , - 222 , - 495 , - 108 , - 1701 , - 874 , - 267 , - 760 , - 1473 , - 1526 , - 39 , - 1412 , - 1245 , - 418 , - 1571 , - 304 , - 1017 , - 1070 , - 1343 , - 956 , - 789 , - 1722 , - 1115 , - 1608 , - 561 , - 614 , - 887 , - 500 , - 333 , - 1266 , - 659 , - 1152 , - 105 , - 158 , - 431 , - 44 , - 1637 , - 810 , - 203 , - 696 , - 1409 , - 1462 , - 1735 , - 1348 , - 1181 , - 354 , - 1507 , - 240 , - 953 , - 1006 , - 1279 , - 892 , - 725 , - 1658 , - 1051 , - 1544 , - 497 , - 550 , - 823 , - 436 , - 269 , - 1202 , - 595 , - 1088 , - 41 , - 94 , - 367 , - 1740 , - 1573 , - 746 , - 139 , - 632 , - 1345 , - 1398 , - 1671 , - 1284 , - 1117 , - 290 , - 1443 , - 176 , - 889 , - 942 , - 1215 , - 828 , - 661 , - 1594 , - 987 , - 1480 , - 433 , - 486 , - 759 , - 372 , - 205 , - 1138 , - 531 , - 1024 , - 1737 , - 30 , - 303 , - 1676 , - 1509 , - 682 , - 75 , - 568 , - 1281 , - 1334 , - 1607 , - 1220 , - 1053 , - 226 , - 1379 , - 112 , - 825 , - 878 , - 1151 , - 764 , - 597 , - 1530 , - 923 , - 1416 , - 369 , - 422 , - 695 , - 308 , - 141 , - 1074 , - 467 , - 960 , - 1673 , - 1726 , - 239 , - 1612 , - 1445 , - 618 , - 11 , - 504 , - 1217 , - 1270 , - 1543 , - 1156 , - 989 , - 162 , - 1315 , - 48 , - 761 , - 814 , - 1087 , - 700 , - 533 , - 1466 , - 859 , - 1352 , - 305 , - 358 , - 631 , - 244 , - 77 , - 1010 , - 403 , - 896 , - 1609 , - 1662 , - 175 , - 1548 , - 1381 , - 554 , - 1707 , - 440 , - 1153 , - 1206 , - 1479 , - 1092 , - 925 , - 98 , - 1251 , - 1744 , - 697 , - 750 , - 1023 , - 636 , - 469 , - 1402 , - 795 , - 1288 , - 241 , - 294 , - 567 , - 180 , - 13 , - 946 , - 339 , - 832 , - 1545 , - 1598 , - 111 , - 1484 , - 1317 , - 490 , - 1643 , - 376 , - 1089 , - 1142 , - 1415 , - 1028 , - 861 , - 34 , - 1187 , - 1680 , - 633 , - 686 , - 959 , - 572 , - 405 , - 1338 , - 731 , - 1224 , - 177 , - 230 , - 503 , - 116 , - 1709 , - 882 , - 275 , - 768 , - 1481 , - 1534 , - 47 , - 1420 , - 1253 , - 426 , - 1579 , - 312 , - 1025 , - 1078 , - 1351 , - 964 , - 797 , - 1730 , - 1123 , - 1616 , - 569 , - 622 , - 895 , - 508 , - 341 , - 1274 , - 667 , - 1160 , - 113 , - 166 , - 439 , - 52 , - 1645 , - 818 , - 211 , - 704 , - 1417 , - 1470 , - 1743 , - 1356 , - 1189 , - 362 , - 1515 , - 248 , - 961 , - 1014 , - 1287 , - 900 , - 733 , - 1666 , - 1059 , - 1552 , - 505 , - 558 , - 831 , - 444 , - 277 , - 1210 , - 603 , - 1096 , - 49 , - 102 , - 375 , - 1748 , - 1581 , - 754 , - 147 , - 640 , - 1353 , - 1406 , - 1679 , - 1292 , - 1125 , - 298 , - 1451 , - 184 , - 897 , - 950 , - 1223 , - 836 , - 669 , - 1602 , - 995 , - 1488 , - 441 , - 494 , - 767 , - 380 , - 213 , - 1146 , - 539 , - 1032 , - 1745 , - 38 , - 311 , - 1684 , - 1517 , - 690 , - 83 , - 576 , - 1289 , - 1342 , - 1615 , - 1228 , - 1061 , - 234 , - 1387 , - 120 , - 833 , - 886 , - 1159 , - 772 , - 605 , - 1538 , - 931 , - 1424 , - 377 , - 430 , - 703 , - 316 , - 149 , - 1082 , - 475 , - 968 , - 1681 , - 1734 , - 247 , - 1620 , - 1453 , - 626 , - 19 , - 512 , - 1225 , - 1278 , - 1551 , - 1164 , - 997 , - 170 , - 1323 , - 56 , - 769 , - 822 , - 1095 , - 708 , - 541 , - 1474 , - 867 , - 1360 , - 313 , - 366 , - 639 , - 252 , - 85 , - 1018 , - 411 , - 904 , - 1617 , - 1670 , - 183 , - 1556 , - 1389 , - 562 , - 1715 , - 448 , - 1161 , - 1214 , - 1487 , - 1100 , - 933 , - 106 , - 1259 , - 1752 , - 705 , - 758 , - 1031 , - 644 , - 477 , - 1410 , - 803 , - 1296 , - 249 , - 302 , - 575 , - 188 , - 21 , - 954 , - 347 , - 840 , - 1553 , - 1606 , - 119 , - 1492 , - 1325 , - 498 , - 1651 , - 384 , - 1097 , - 1150 , - 1423 , - 1036 , - 869 , - 42 , - 1195 , - 1688 , - 641 , - 694 , - 967 , - 580 , - 413 , - 1346 , - 739 , - 1232 , - 185 , - 238 , - 511 , - 124 , - 1717 , - 890 , - 283 , - 776 , - 1489 , - 1542 , - 55 , - 1428 , - 1261 , - 434 , - 1587 , - 320 , - 1033 , - 1086 , - 1359 , - 972 , - 805 , - 1738 , - 1131 , - 1624 , - 577 , - 630 , - 903 , - 516 , - 349 , - 1282 , - 675 , - 1168 , - 121 , - 174 , - 447 , - 60 , - 1653 , - 826 , - 219 , - 712 , - 1425 , - 1478 , - 1751 , - 1364 , - 1197 , - 370 , - 1523 , - 256 , - 969 , - 1022 , - 1295 , - 908 , - 741 , - 1674 , - 1067 , - 1560 , - 513 , - 566 , - 839 , - 452 , - 285 , - 1218 , - 611 , - 1104 , - 57 , - 110 , - 383 , - 1756 , - 1589 , - 762 , - 155 , - 648 , - 1361 , - 1414 , - 1687 , - 1300 , - 1133 , - 306 , - 1459 , - 192 , - 905 , - 958 , - 1231 , - 844 , - 677 , - 1610 , - 1003 , - 1496 , - 449 , - 502 , - 775 , - 388 , - 221 , - 1154 , - 547 , - 1040 , - 1753 , - 46 , - 319 , - 1692 , - 1525 , - 698 , - 91 , - 584 , - 1297 , - 1350 , - 1623 , - 1236 , - 1069 , - 242 , - 1395 , - 128 , - 841 , - 894 , - 1167 , - 780 , - 613 , - 1546 , - 939 , - 1432 , - 385 , - 438 , - 711 , - 324 , - 157 , - 1090 , - 483 , - 976 , - 1689 , - 1742 , - 255 , - 1628 , - 1461 , - 634 , - 27 , - 520 , - 1233 , - 1286 , - 1559 , - 1172 , - 1005 , - 178 , - 1331 , - 64 , - 777 , - 830 , - 1103 , - 716 , - 549 , - 1482 , - 875 , - 1368 , - 321 , - 374 , - 647 , - 260 , - 93 , - 1026 , - 419 , - 912 , - 1625 , - 1678 , - 191 , - 1564 , - 1397 , - 570 , - 1723 , - 456 , - 1169 , - 1222 , - 1495 , - 1108 , - 941 , - 114 , - 1267 , - 0 , - 645 , - 170 , - 367 , - 1236 , - 985 , - 1406 , - 707 , - 680 , - 1325 , - 850 , - 1047 , - 124 , - 1665 , - 294 , - 1387 , - 1360 , - 213 , - 1530 , - 1727 , - 804 , - 553 , - 974 , - 275 , - 248 , - 893 , - 418 , - 615 , - 1484 , - 1233 , - 1654 , - 955 , - 928 , - 1573 , - 1098 , - 1295 , - 372 , - 121 , - 542 , - 1635 , - 1608 , - 461 , - 1778 , - 183 , - 1052 , - 801 , - 1222 , - 523 , - 496 , - 1141 , - 666 , - 863 , - 1732 , - 1481 , - 110 , - 1203 , - 1176 , - 29 , - 1346 , - 1543 , - 620 , - 369 , - 790 , - 91 , - 64 , - 709 , - 234 , - 431 , - 1300 , - 1049 , - 1470 , - 771 , - 744 , - 1389 , - 914 , - 1111 , - 188 , - 1729 , - 358 , - 1451 , - 1424 , - 277 , - 1594 , - 1791 , - 868 , - 617 , - 1038 , - 339 , - 312 , - 957 , - 482 , - 679 , - 1548 , - 1297 , - 1718 , - 1019 , - 992 , - 1637 , - 1162 , - 1359 , - 436 , - 185 , - 606 , - 1699 , - 1672 , - 525 , - 50 , - 247 , - 1116 , - 865 , - 1286 , - 587 , - 560 , - 1205 , - 730 , - 927 , - 4 , - 1545 , - 174 , - 1267 , - 1240 , - 93 , - 1410 , - 1607 , - 684 , - 433 , - 854 , - 155 , - 128 , - 773 , - 298 , - 495 , - 1364 , - 1113 , - 1534 , - 835 , - 808 , - 1453 , - 978 , - 1175 , - 252 , - 1 , - 422 , - 1515 , - 1488 , - 341 , - 1658 , - 63 , - 932 , - 681 , - 1102 , - 403 , - 376 , - 1021 , - 546 , - 743 , - 1612 , - 1361 , - 1782 , - 1083 , - 1056 , - 1701 , - 1226 , - 1423 , - 500 , - 249 , - 670 , - 1763 , - 1736 , - 589 , - 114 , - 311 , - 1180 , - 929 , - 1350 , - 651 , - 624 , - 1269 , - 794 , - 991 , - 68 , - 1609 , - 238 , - 1331 , - 1304 , - 157 , - 1474 , - 1671 , - 748 , - 497 , - 918 , - 219 , - 192 , - 837 , - 362 , - 559 , - 1428 , - 1177 , - 1598 , - 899 , - 872 , - 1517 , - 1042 , - 1239 , - 316 , - 65 , - 486 , - 1579 , - 1552 , - 405 , - 1722 , - 127 , - 996 , - 745 , - 1166 , - 467 , - 440 , - 1085 , - 610 , - 807 , - 1676 , - 1425 , - 54 , - 1147 , - 1120 , - 1765 , - 1290 , - 1487 , - 564 , - 313 , - 734 , - 35 , - 8 , - 653 , - 178 , - 375 , - 1244 , - 993 , - 1414 , - 715 , - 688 , - 1333 , - 858 , - 1055 , - 132 , - 1673 , - 302 , - 1395 , - 1368 , - 221 , - 1538 , - 1735 , - 812 , - 561 , - 982 , - 283 , - 256 , - 901 , - 426 , - 623 , - 1492 , - 1241 , - 1662 , - 963 , - 936 , - 1581 , - 1106 , - 1303 , - 380 , - 129 , - 550 , - 1643 , - 1616 , - 469 , - 1786 , - 191 , - 1060 , - 809 , - 1230 , - 531 , - 504 , - 1149 , - 674 , - 871 , - 1740 , - 1489 , - 118 , - 1211 , - 1184 , - 37 , - 1354 , - 1551 , - 628 , - 377 , - 798 , - 99 , - 72 , - 717 , - 242 , - 439 , - 1308 , - 1057 , - 1478 , - 779 , - 752 , - 1397 , - 922 , - 1119 , - 196 , - 1737 , - 366 , - 1459 , - 1432 , - 285 , - 1602 , - 7 , - 876 , - 625 , - 1046 , - 347 , - 320 , - 965 , - 490 , - 687 , - 1556 , - 1305 , - 1726 , - 1027 , - 1000 , - 1645 , - 1170 , - 1367 , - 444 , - 193 , - 614 , - 1707 , - 1680 , - 533 , - 58 , - 255 , - 1124 , - 873 , - 1294 , - 595 , - 568 , - 1213 , - 738 , - 935 , - 12 , - 1553 , - 182 , - 1275 , - 1248 , - 101 , - 1418 , - 1615 , - 692 , - 441 , - 862 , - 163 , - 136 , - 781 , - 306 , - 503 , - 1372 , - 1121 , - 1542 , - 843 , - 816 , - 1461 , - 986 , - 1183 , - 260 , - 9 , - 430 , - 1523 , - 1496 , - 349 , - 1666 , - 71 , - 940 , - 689 , - 1110 , - 411 , - 384 , - 1029 , - 554 , - 751 , - 1620 , - 1369 , - 1790 , - 1091 , - 1064 , - 1709 , - 1234 , - 1431 , - 508 , - 257 , - 678 , - 1771 , - 1744 , - 597 , - 122 , - 319 , - 1188 , - 937 , - 1358 , - 659 , - 632 , - 1277 , - 802 , - 999 , - 76 , - 1617 , - 246 , - 1339 , - 1312 , - 165 , - 1482 , - 1679 , - 756 , - 505 , - 926 , - 227 , - 200 , - 845 , - 370 , - 567 , - 1436 , - 1185 , - 1606 , - 907 , - 880 , - 1525 , - 1050 , - 1247 , - 324 , - 73 , - 494 , - 1587 , - 1560 , - 413 , - 1730 , - 135 , - 1004 , - 753 , - 1174 , - 475 , - 448 , - 1093 , - 618 , - 815 , - 1684 , - 1433 , - 62 , - 1155 , - 1128 , - 1773 , - 1298 , - 1495 , - 572 , - 321 , - 742 , - 43 , - 16 , - 661 , - 186 , - 383 , - 1252 , - 1001 , - 1422 , - 723 , - 696 , - 1341 , - 866 , - 1063 , - 140 , - 1681 , - 310 , - 1403 , - 1376 , - 229 , - 1546 , - 1743 , - 820 , - 569 , - 990 , - 291 , - 264 , - 909 , - 434 , - 631 , - 1500 , - 1249 , - 1670 , - 971 , - 944 , - 1589 , - 1114 , - 1311 , - 388 , - 137 , - 558 , - 1651 , - 1624 , - 477 , - 2 , - 199 , - 1068 , - 817 , - 1238 , - 539 , - 512 , - 1157 , - 682 , - 879 , - 1748 , - 1497 , - 126 , - 1219 , - 1192 , - 45 , - 1362 , - 1559 , - 636 , - 385 , - 806 , - 107 , - 80 , - 725 , - 250 , - 447 , - 1316 , - 1065 , - 1486 , - 787 , - 760 , - 1405 , - 930 , - 1127 , - 204 , - 1745 , - 374 , - 1467 , - 1440 , - 293 , - 1610 , - 15 , - 884 , - 633 , - 1054 , - 355 , - 328 , - 973 , - 498 , - 695 , - 1564 , - 1313 , - 1734 , - 1035 , - 1008 , - 1653 , - 1178 , - 1375 , - 452 , - 201 , - 622 , - 1715 , - 1688 , - 541 , - 66 , - 263 , - 1132 , - 881 , - 1302 , - 603 , - 576 , - 1221 , - 746 , - 943 , - 20 , - 1561 , - 190 , - 1283 , - 1256 , - 109 , - 1426 , - 1623 , - 700 , - 449 , - 870 , - 171 , - 144 , - 789 , - 314 , - 511 , - 1380 , - 1129 , - 1550 , - 851 , - 824 , - 1469 , - 994 , - 1191 , - 268 , - 17 , - 438 , - 1531 , - 1504 , - 357 , - 1674 , - 79 , - 948 , - 697 , - 1118 , - 419 , - 392 , - 1037 , - 562 , - 759 , - 1628 , - 1377 , - 6 , - 1099 , - 1072 , - 1717 , - 1242 , - 1439 , - 516 , - 265 , - 686 , - 1779 , - 1752 , - 605 , - 130 , - 327 , - 1196 , - 945 , - 1366 , - 667 , - 640 , - 1285 , - 810 , - 1007 , - 84 , - 1625 , - 254 , - 1347 , - 1320 , - 173 , - 1490 , - 1687 , - 764 , - 513 , - 934 , - 235 , - 208 , - 853 , - 378 , - 575 , - 1444 , - 1193 , - 1614 , - 915 , - 888 , - 1533 , - 1058 , - 1255 , - 332 , - 81 , - 502 , - 1595 , - 1568 , - 421 , - 1738 , - 143 , - 1012 , - 761 , - 1182 , - 483 , - 456 , - 1101 , - 626 , - 823 , - 1692 , - 1441 , - 70 , - 1163 , - 1136 , - 1781 , - 1306 , - 1503 , - 580 , - 329 , - 750 , - 51 , - 24 , - 669 , - 194 , - 391 , - 1260 , - 1009 , - 1430 , - 731 , - 704 , - 1349 , - 874 , - 1071 , - 148 , - 1689 , - 318 , - 1411 , - 1384 , - 237 , - 1554 , - 1751 , - 828 , - 577 , - 998 , - 299 , - 272 , - 917 , - 442 , - 639 , - 1508 , - 1257 , - 1678 , - 979 , - 952 , - 1597 , - 1122 , - 1319 , - 396 , - 145 , - 566 , - 1659 , - 1632 , - 485 , - 10 , - 207 , - 1076 , - 825 , - 1246 , - 547 , - 520 , - 1165 , - 690 , - 887 , - 1756 , - 1505 , - 134 , - 1227 , - 1200 , - 53 , - 1370 , - 1567 , - 644 , - 393 , - 814 , - 115 , - 88 , - 733 , - 258 , - 455 , - 1324 , - 1073 , - 1494 , - 795 , - 768 , - 1413 , - 938 , - 1135 , - 212 , - 1753 , - 382 , - 1475 , - 1448 , - 301 , - 1618 , - 23 , - 892 , - 641 , - 1062 , - 363 , - 336 , - 981 , - 506 , - 703 , - 1572 , - 1321 , - 1742 , - 1043 , - 1016 , - 1661 , - 1186 , - 1383 , - 460 , - 209 , - 630 , - 1723 , - 1696 , - 549 , - 74 , - 271 , - 1140 , - 889 , - 1310 , - 611 , - 584 , - 1229 , - 754 , - 951 , - 28 , - 1569 , - 198 , - 1291 , - 1264 , - 117 , - 1434 , - 1631 , - 708 , - 457 , - 878 , - 179 , - 152 , - 797 , - 322 , - 519 , - 1388 , - 1137 , - 1558 , - 859 , - 832 , - 1477 , - 1002 , - 1199 , - 276 , - 25 , - 446 , - 1539 , - 1512 , - 365 , - 1682 , - 87 , - 956 , - 705 , - 1126 , - 427 , - 400 , - 1045 , - 570 , - 767 , - 1636 , - 1385 , - 14 , - 1107 , - 1080 , - 1725 , - 1250 , - 1447 , - 524 , - 273 , - 694 , - 1787 , - 1760 , - 613 , - 138 , - 335 , - 1204 , - 953 , - 1374 , - 675 , - 648 , - 1293 , - 818 , - 1015 , - 92 , - 1633 , - 262 , - 1355 , - 1328 , - 181 , - 1498 , - 1695 , - 772 , - 521 , - 942 , - 243 , - 216 , - 861 , - 386 , - 583 , - 1452 , - 1201 , - 1622 , - 923 , - 896 , - 1541 , - 1066 , - 1263 , - 340 , - 89 , - 510 , - 1603 , - 1576 , - 429 , - 1746 , - 151 , - 1020 , - 769 , - 1190 , - 491 , - 464 , - 1109 , - 634 , - 831 , - 1700 , - 1449 , - 78 , - 1171 , - 1144 , - 1789 , - 1314 , - 1511 , - 588 , - 337 , - 758 , - 59 , - 32 , - 677 , - 202 , - 399 , - 1268 , - 1017 , - 1438 , - 739 , - 712 , - 1357 , - 882 , - 1079 , - 156 , - 1697 , - 326 , - 1419 , - 1392 , - 245 , - 1562 , - 1759 , - 836 , - 585 , - 1006 , - 307 , - 280 , - 925 , - 450 , - 647 , - 1516 , - 1265 , - 1686 , - 987 , - 960 , - 1605 , - 1130 , - 1327 , - 404 , - 153 , - 574 , - 1667 , - 1640 , - 493 , - 18 , - 215 , - 1084 , - 833 , - 1254 , - 555 , - 528 , - 1173 , - 698 , - 895 , - 1764 , - 1513 , - 142 , - 1235 , - 1208 , - 61 , - 1378 , - 1575 , - 652 , - 401 , - 822 , - 123 , - 96 , - 741 , - 266 , - 463 , - 1332 , - 1081 , - 1502 , - 803 , - 776 , - 1421 , - 946 , - 1143 , - 220 , - 1761 , - 390 , - 1483 , - 1456 , - 309 , - 1626 , - 31 , - 900 , - 649 , - 1070 , - 371 , - 344 , - 989 , - 514 , - 711 , - 1580 , - 1329 , - 1750 , - 1051 , - 1024 , - 1669 , - 1194 , - 1391 , - 468 , - 217 , - 638 , - 1731 , - 1704 , - 557 , - 82 , - 279 , - 1148 , - 897 , - 1318 , - 619 , - 592 , - 1237 , - 762 , - 959 , - 36 , - 1577 , - 206 , - 1299 , - 1272 , - 125 , - 1442 , - 1639 , - 716 , - 465 , - 886 , - 187 , - 160 , - 805 , - 330 , - 527 , - 1396 , - 1145 , - 1566 , - 867 , - 840 , - 1485 , - 1010 , - 1207 , - 284 , - 33 , - 454 , - 1547 , - 1520 , - 373 , - 1690 , - 95 , - 964 , - 713 , - 1134 , - 435 , - 408 , - 1053 , - 578 , - 775 , - 1644 , - 1393 , - 22 , - 1115 , - 1088 , - 1733 , - 1258 , - 1455 , - 532 , - 281 , - 702 , - 3 , - 1768 , - 621 , - 146 , - 343 , - 1212 , - 961 , - 1382 , - 683 , - 656 , - 1301 , - 826 , - 1023 , - 100 , - 1641 , - 270 , - 1363 , - 1336 , - 189 , - 1506 , - 1703 , - 780 , - 529 , - 950 , - 251 , - 224 , - 869 , - 394 , - 591 , - 1460 , - 1209 , - 1630 , - 931 , - 904 , - 1549 , - 1074 , - 1271 , - 348 , - 97 , - 518 , - 1611 , - 1584 , - 437 , - 1754 , - 159 , - 1028 , - 777 , - 1198 , - 499 , - 472 , - 1117 , - 642 , - 839 , - 1708 , - 1457 , - 86 , - 1179 , - 1152 , - 5 , - 1322 , - 1519 , - 596 , - 345 , - 766 , - 67 , - 40 , - 685 , - 210 , - 407 , - 1276 , - 1025 , - 1446 , - 747 , - 720 , - 1365 , - 890 , - 1087 , - 164 , - 1705 , - 334 , - 1427 , - 1400 , - 253 , - 1570 , - 1767 , - 844 , - 593 , - 1014 , - 315 , - 288 , - 933 , - 458 , - 655 , - 1524 , - 1273 , - 1694 , - 995 , - 968 , - 1613 , - 1138 , - 1335 , - 412 , - 161 , - 582 , - 1675 , - 1648 , - 501 , - 26 , - 223 , - 1092 , - 841 , - 1262 , - 563 , - 536 , - 1181 , - 706 , - 903 , - 1772 , - 1521 , - 150 , - 1243 , - 1216 , - 69 , - 1386 , - 1583 , - 660 , - 409 , - 830 , - 131 , - 104 , - 749 , - 274 , - 471 , - 1340 , - 1089 , - 1510 , - 811 , - 784 , - 1429 , - 954 , - 1151 , - 228 , - 1769 , - 398 , - 1491 , - 1464 , - 317 , - 1634 , - 39 , - 908 , - 657 , - 1078 , - 379 , - 352 , - 997 , - 522 , - 719 , - 1588 , - 1337 , - 1758 , - 1059 , - 1032 , - 1677 , - 1202 , - 1399 , - 476 , - 225 , - 646 , - 1739 , - 1712 , - 565 , - 90 , - 287 , - 1156 , - 905 , - 1326 , - 627 , - 600 , - 1245 , - 770 , - 967 , - 44 , - 1585 , - 214 , - 1307 , - 1280 , - 133 , - 1450 , - 1647 , - 724 , - 473 , - 894 , - 195 , - 168 , - 813 , - 338 , - 535 , - 1404 , - 1153 , - 1574 , - 875 , - 848 , - 1493 , - 1018 , - 1215 , - 292 , - 41 , - 462 , - 1555 , - 1528 , - 381 , - 1698 , - 103 , - 972 , - 721 , - 1142 , - 443 , - 416 , - 1061 , - 586 , - 783 , - 1652 , - 1401 , - 30 , - 1123 , - 1096 , - 1741 , - 1266 , - 1463 , - 540 , - 289 , - 710 , - 11 , - 1776 , - 629 , - 154 , - 351 , - 1220 , - 969 , - 1390 , - 691 , - 664 , - 1309 , - 834 , - 1031 , - 108 , - 1649 , - 278 , - 1371 , - 1344 , - 197 , - 1514 , - 1711 , - 788 , - 537 , - 958 , - 259 , - 232 , - 877 , - 402 , - 599 , - 1468 , - 1217 , - 1638 , - 939 , - 912 , - 1557 , - 1082 , - 1279 , - 356 , - 105 , - 526 , - 1619 , - 1592 , - 445 , - 1762 , - 167 , - 1036 , - 785 , - 1206 , - 507 , - 480 , - 1125 , - 650 , - 847 , - 1716 , - 1465 , - 94 , - 1187 , - 1160 , - 13 , - 1330 , - 1527 , - 604 , - 353 , - 774 , - 75 , - 48 , - 693 , - 218 , - 415 , - 1284 , - 1033 , - 1454 , - 755 , - 728 , - 1373 , - 898 , - 1095 , - 172 , - 1713 , - 342 , - 1435 , - 1408 , - 261 , - 1578 , - 1775 , - 852 , - 601 , - 1022 , - 323 , - 296 , - 941 , - 466 , - 663 , - 1532 , - 1281 , - 1702 , - 1003 , - 976 , - 1621 , - 1146 , - 1343 , - 420 , - 169 , - 590 , - 1683 , - 1656 , - 509 , - 34 , - 231 , - 1100 , - 849 , - 1270 , - 571 , - 544 , - 1189 , - 714 , - 911 , - 1780 , - 1529 , - 158 , - 1251 , - 1224 , - 77 , - 1394 , - 1591 , - 668 , - 417 , - 838 , - 139 , - 112 , - 757 , - 282 , - 479 , - 1348 , - 1097 , - 1518 , - 819 , - 792 , - 1437 , - 962 , - 1159 , - 236 , - 1777 , - 406 , - 1499 , - 1472 , - 325 , - 1642 , - 47 , - 916 , - 665 , - 1086 , - 387 , - 360 , - 1005 , - 530 , - 727 , - 1596 , - 1345 , - 1766 , - 1067 , - 1040 , - 1685 , - 1210 , - 1407 , - 484 , - 233 , - 654 , - 1747 , - 1720 , - 573 , - 98 , - 295 , - 1164 , - 913 , - 1334 , - 635 , - 608 , - 1253 , - 778 , - 975 , - 52 , - 1593 , - 222 , - 1315 , - 1288 , - 141 , - 1458 , - 1655 , - 732 , - 481 , - 902 , - 203 , - 176 , - 821 , - 346 , - 543 , - 1412 , - 1161 , - 1582 , - 883 , - 856 , - 1501 , - 1026 , - 1223 , - 300 , - 49 , - 470 , - 1563 , - 1536 , - 389 , - 1706 , - 111 , - 980 , - 729 , - 1150 , - 451 , - 424 , - 1069 , - 594 , - 791 , - 1660 , - 1409 , - 38 , - 1131 , - 1104 , - 1749 , - 1274 , - 1471 , - 548 , - 297 , - 718 , - 19 , - 1784 , - 637 , - 162 , - 359 , - 1228 , - 977 , - 1398 , - 699 , - 672 , - 1317 , - 842 , - 1039 , - 116 , - 1657 , - 286 , - 1379 , - 1352 , - 205 , - 1522 , - 1719 , - 796 , - 545 , - 966 , - 267 , - 240 , - 885 , - 410 , - 607 , - 1476 , - 1225 , - 1646 , - 947 , - 920 , - 1565 , - 1090 , - 1287 , - 364 , - 113 , - 534 , - 1627 , - 1600 , - 453 , - 1770 , - 175 , - 1044 , - 793 , - 1214 , - 515 , - 488 , - 1133 , - 658 , - 855 , - 1724 , - 1473 , - 102 , - 1195 , - 1168 , - 21 , - 1338 , - 1535 , - 612 , - 361 , - 782 , - 83 , - 56 , - 701 , - 226 , - 423 , - 1292 , - 1041 , - 1462 , - 763 , - 736 , - 1381 , - 906 , - 1103 , - 180 , - 1721 , - 350 , - 1443 , - 1416 , - 269 , - 1586 , - 1783 , - 860 , - 609 , - 1030 , - 331 , - 304 , - 949 , - 474 , - 671 , - 1540 , - 1289 , - 1710 , - 1011 , - 984 , - 1629 , - 1154 , - 1351 , - 428 , - 177 , - 598 , - 1691 , - 1664 , - 517 , - 42 , - 239 , - 1108 , - 857 , - 1278 , - 579 , - 552 , - 1197 , - 722 , - 919 , - 1788 , - 1537 , - 166 , - 1259 , - 1232 , - 85 , - 1402 , - 1599 , - 676 , - 425 , - 846 , - 147 , - 120 , - 765 , - 290 , - 487 , - 1356 , - 1105 , - 1526 , - 827 , - 800 , - 1445 , - 970 , - 1167 , - 244 , - 1785 , - 414 , - 1507 , - 1480 , - 333 , - 1650 , - 55 , - 924 , - 673 , - 1094 , - 395 , - 368 , - 1013 , - 538 , - 735 , - 1604 , - 1353 , - 1774 , - 1075 , - 1048 , - 1693 , - 1218 , - 1415 , - 492 , - 241 , - 662 , - 1755 , - 1728 , - 581 , - 106 , - 303 , - 1172 , - 921 , - 1342 , - 643 , - 616 , - 1261 , - 786 , - 983 , - 60 , - 1601 , - 230 , - 1323 , - 1296 , - 149 , - 1466 , - 1663 , - 740 , - 489 , - 910 , - 211 , - 184 , - 829 , - 354 , - 551 , - 1420 , - 1169 , - 1590 , - 891 , - 864 , - 1509 , - 1034 , - 1231 , - 308 , - 57 , - 478 , - 1571 , - 1544 , - 397 , - 1714 , - 119 , - 988 , - 737 , - 1158 , - 459 , - 432 , - 1077 , - 602 , - 799 , - 1668 , - 1417 , - 46 , - 1139 , - 1112 , - 1757 , - 1282 , - 1479 , - 556 , - 305 , - 726 , - 27 , - 0 , - 971 , - 802 , - 405 , - 692 , - 751 , - 1494 , - 185 , - 1384 , - 531 , - 362 , - 1789 , - 252 , - 311 , - 1054 , - 1569 , - 944 , - 91 , - 1746 , - 1349 , - 1636 , - 1695 , - 614 , - 1129 , - 504 , - 1475 , - 1306 , - 909 , - 1196 , - 1255 , - 174 , - 689 , - 64 , - 1035 , - 866 , - 469 , - 756 , - 815 , - 1558 , - 249 , - 1448 , - 595 , - 426 , - 29 , - 316 , - 375 , - 1118 , - 1633 , - 1008 , - 155 , - 1810 , - 1413 , - 1700 , - 1759 , - 678 , - 1193 , - 568 , - 1539 , - 1370 , - 973 , - 1260 , - 1319 , - 238 , - 753 , - 128 , - 1099 , - 930 , - 533 , - 820 , - 879 , - 1622 , - 313 , - 1512 , - 659 , - 490 , - 93 , - 380 , - 439 , - 1182 , - 1697 , - 1072 , - 219 , - 50 , - 1477 , - 1764 , - 1823 , - 742 , - 1257 , - 632 , - 1603 , - 1434 , - 1037 , - 1324 , - 1383 , - 302 , - 817 , - 192 , - 1163 , - 994 , - 597 , - 884 , - 943 , - 1686 , - 377 , - 1576 , - 723 , - 554 , - 157 , - 444 , - 503 , - 1246 , - 1761 , - 1136 , - 283 , - 114 , - 1541 , - 4 , - 63 , - 806 , - 1321 , - 696 , - 1667 , - 1498 , - 1101 , - 1388 , - 1447 , - 366 , - 881 , - 256 , - 1227 , - 1058 , - 661 , - 948 , - 1007 , - 1750 , - 441 , - 1640 , - 787 , - 618 , - 221 , - 508 , - 567 , - 1310 , - 1 , - 1200 , - 347 , - 178 , - 1605 , - 68 , - 127 , - 870 , - 1385 , - 760 , - 1731 , - 1562 , - 1165 , - 1452 , - 1511 , - 430 , - 945 , - 320 , - 1291 , - 1122 , - 725 , - 1012 , - 1071 , - 1814 , - 505 , - 1704 , - 851 , - 682 , - 285 , - 572 , - 631 , - 1374 , - 65 , - 1264 , - 411 , - 242 , - 1669 , - 132 , - 191 , - 934 , - 1449 , - 824 , - 1795 , - 1626 , - 1229 , - 1516 , - 1575 , - 494 , - 1009 , - 384 , - 1355 , - 1186 , - 789 , - 1076 , - 1135 , - 54 , - 569 , - 1768 , - 915 , - 746 , - 349 , - 636 , - 695 , - 1438 , - 129 , - 1328 , - 475 , - 306 , - 1733 , - 196 , - 255 , - 998 , - 1513 , - 888 , - 35 , - 1690 , - 1293 , - 1580 , - 1639 , - 558 , - 1073 , - 448 , - 1419 , - 1250 , - 853 , - 1140 , - 1199 , - 118 , - 633 , - 8 , - 979 , - 810 , - 413 , - 700 , - 759 , - 1502 , - 193 , - 1392 , - 539 , - 370 , - 1797 , - 260 , - 319 , - 1062 , - 1577 , - 952 , - 99 , - 1754 , - 1357 , - 1644 , - 1703 , - 622 , - 1137 , - 512 , - 1483 , - 1314 , - 917 , - 1204 , - 1263 , - 182 , - 697 , - 72 , - 1043 , - 874 , - 477 , - 764 , - 823 , - 1566 , - 257 , - 1456 , - 603 , - 434 , - 37 , - 324 , - 383 , - 1126 , - 1641 , - 1016 , - 163 , - 1818 , - 1421 , - 1708 , - 1767 , - 686 , - 1201 , - 576 , - 1547 , - 1378 , - 981 , - 1268 , - 1327 , - 246 , - 761 , - 136 , - 1107 , - 938 , - 541 , - 828 , - 887 , - 1630 , - 321 , - 1520 , - 667 , - 498 , - 101 , - 388 , - 447 , - 1190 , - 1705 , - 1080 , - 227 , - 58 , - 1485 , - 1772 , - 7 , - 750 , - 1265 , - 640 , - 1611 , - 1442 , - 1045 , - 1332 , - 1391 , - 310 , - 825 , - 200 , - 1171 , - 1002 , - 605 , - 892 , - 951 , - 1694 , - 385 , - 1584 , - 731 , - 562 , - 165 , - 452 , - 511 , - 1254 , - 1769 , - 1144 , - 291 , - 122 , - 1549 , - 12 , - 71 , - 814 , - 1329 , - 704 , - 1675 , - 1506 , - 1109 , - 1396 , - 1455 , - 374 , - 889 , - 264 , - 1235 , - 1066 , - 669 , - 956 , - 1015 , - 1758 , - 449 , - 1648 , - 795 , - 626 , - 229 , - 516 , - 575 , - 1318 , - 9 , - 1208 , - 355 , - 186 , - 1613 , - 76 , - 135 , - 878 , - 1393 , - 768 , - 1739 , - 1570 , - 1173 , - 1460 , - 1519 , - 438 , - 953 , - 328 , - 1299 , - 1130 , - 733 , - 1020 , - 1079 , - 1822 , - 513 , - 1712 , - 859 , - 690 , - 293 , - 580 , - 639 , - 1382 , - 73 , - 1272 , - 419 , - 250 , - 1677 , - 140 , - 199 , - 942 , - 1457 , - 832 , - 1803 , - 1634 , - 1237 , - 1524 , - 1583 , - 502 , - 1017 , - 392 , - 1363 , - 1194 , - 797 , - 1084 , - 1143 , - 62 , - 577 , - 1776 , - 923 , - 754 , - 357 , - 644 , - 703 , - 1446 , - 137 , - 1336 , - 483 , - 314 , - 1741 , - 204 , - 263 , - 1006 , - 1521 , - 896 , - 43 , - 1698 , - 1301 , - 1588 , - 1647 , - 566 , - 1081 , - 456 , - 1427 , - 1258 , - 861 , - 1148 , - 1207 , - 126 , - 641 , - 16 , - 987 , - 818 , - 421 , - 708 , - 767 , - 1510 , - 201 , - 1400 , - 547 , - 378 , - 1805 , - 268 , - 327 , - 1070 , - 1585 , - 960 , - 107 , - 1762 , - 1365 , - 1652 , - 1711 , - 630 , - 1145 , - 520 , - 1491 , - 1322 , - 925 , - 1212 , - 1271 , - 190 , - 705 , - 80 , - 1051 , - 882 , - 485 , - 772 , - 831 , - 1574 , - 265 , - 1464 , - 611 , - 442 , - 45 , - 332 , - 391 , - 1134 , - 1649 , - 1024 , - 171 , - 2 , - 1429 , - 1716 , - 1775 , - 694 , - 1209 , - 584 , - 1555 , - 1386 , - 989 , - 1276 , - 1335 , - 254 , - 769 , - 144 , - 1115 , - 946 , - 549 , - 836 , - 895 , - 1638 , - 329 , - 1528 , - 675 , - 506 , - 109 , - 396 , - 455 , - 1198 , - 1713 , - 1088 , - 235 , - 66 , - 1493 , - 1780 , - 15 , - 758 , - 1273 , - 648 , - 1619 , - 1450 , - 1053 , - 1340 , - 1399 , - 318 , - 833 , - 208 , - 1179 , - 1010 , - 613 , - 900 , - 959 , - 1702 , - 393 , - 1592 , - 739 , - 570 , - 173 , - 460 , - 519 , - 1262 , - 1777 , - 1152 , - 299 , - 130 , - 1557 , - 20 , - 79 , - 822 , - 1337 , - 712 , - 1683 , - 1514 , - 1117 , - 1404 , - 1463 , - 382 , - 897 , - 272 , - 1243 , - 1074 , - 677 , - 964 , - 1023 , - 1766 , - 457 , - 1656 , - 803 , - 634 , - 237 , - 524 , - 583 , - 1326 , - 17 , - 1216 , - 363 , - 194 , - 1621 , - 84 , - 143 , - 886 , - 1401 , - 776 , - 1747 , - 1578 , - 1181 , - 1468 , - 1527 , - 446 , - 961 , - 336 , - 1307 , - 1138 , - 741 , - 1028 , - 1087 , - 6 , - 521 , - 1720 , - 867 , - 698 , - 301 , - 588 , - 647 , - 1390 , - 81 , - 1280 , - 427 , - 258 , - 1685 , - 148 , - 207 , - 950 , - 1465 , - 840 , - 1811 , - 1642 , - 1245 , - 1532 , - 1591 , - 510 , - 1025 , - 400 , - 1371 , - 1202 , - 805 , - 1092 , - 1151 , - 70 , - 585 , - 1784 , - 931 , - 762 , - 365 , - 652 , - 711 , - 1454 , - 145 , - 1344 , - 491 , - 322 , - 1749 , - 212 , - 271 , - 1014 , - 1529 , - 904 , - 51 , - 1706 , - 1309 , - 1596 , - 1655 , - 574 , - 1089 , - 464 , - 1435 , - 1266 , - 869 , - 1156 , - 1215 , - 134 , - 649 , - 24 , - 995 , - 826 , - 429 , - 716 , - 775 , - 1518 , - 209 , - 1408 , - 555 , - 386 , - 1813 , - 276 , - 335 , - 1078 , - 1593 , - 968 , - 115 , - 1770 , - 1373 , - 1660 , - 1719 , - 638 , - 1153 , - 528 , - 1499 , - 1330 , - 933 , - 1220 , - 1279 , - 198 , - 713 , - 88 , - 1059 , - 890 , - 493 , - 780 , - 839 , - 1582 , - 273 , - 1472 , - 619 , - 450 , - 53 , - 340 , - 399 , - 1142 , - 1657 , - 1032 , - 179 , - 10 , - 1437 , - 1724 , - 1783 , - 702 , - 1217 , - 592 , - 1563 , - 1394 , - 997 , - 1284 , - 1343 , - 262 , - 777 , - 152 , - 1123 , - 954 , - 557 , - 844 , - 903 , - 1646 , - 337 , - 1536 , - 683 , - 514 , - 117 , - 404 , - 463 , - 1206 , - 1721 , - 1096 , - 243 , - 74 , - 1501 , - 1788 , - 23 , - 766 , - 1281 , - 656 , - 1627 , - 1458 , - 1061 , - 1348 , - 1407 , - 326 , - 841 , - 216 , - 1187 , - 1018 , - 621 , - 908 , - 967 , - 1710 , - 401 , - 1600 , - 747 , - 578 , - 181 , - 468 , - 527 , - 1270 , - 1785 , - 1160 , - 307 , - 138 , - 1565 , - 28 , - 87 , - 830 , - 1345 , - 720 , - 1691 , - 1522 , - 1125 , - 1412 , - 1471 , - 390 , - 905 , - 280 , - 1251 , - 1082 , - 685 , - 972 , - 1031 , - 1774 , - 465 , - 1664 , - 811 , - 642 , - 245 , - 532 , - 591 , - 1334 , - 25 , - 1224 , - 371 , - 202 , - 1629 , - 92 , - 151 , - 894 , - 1409 , - 784 , - 1755 , - 1586 , - 1189 , - 1476 , - 1535 , - 454 , - 969 , - 344 , - 1315 , - 1146 , - 749 , - 1036 , - 1095 , - 14 , - 529 , - 1728 , - 875 , - 706 , - 309 , - 596 , - 655 , - 1398 , - 89 , - 1288 , - 435 , - 266 , - 1693 , - 156 , - 215 , - 958 , - 1473 , - 848 , - 1819 , - 1650 , - 1253 , - 1540 , - 1599 , - 518 , - 1033 , - 408 , - 1379 , - 1210 , - 813 , - 1100 , - 1159 , - 78 , - 593 , - 1792 , - 939 , - 770 , - 373 , - 660 , - 719 , - 1462 , - 153 , - 1352 , - 499 , - 330 , - 1757 , - 220 , - 279 , - 1022 , - 1537 , - 912 , - 59 , - 1714 , - 1317 , - 1604 , - 1663 , - 582 , - 1097 , - 472 , - 1443 , - 1274 , - 877 , - 1164 , - 1223 , - 142 , - 657 , - 32 , - 1003 , - 834 , - 437 , - 724 , - 783 , - 1526 , - 217 , - 1416 , - 563 , - 394 , - 1821 , - 284 , - 343 , - 1086 , - 1601 , - 976 , - 123 , - 1778 , - 1381 , - 1668 , - 1727 , - 646 , - 1161 , - 536 , - 1507 , - 1338 , - 941 , - 1228 , - 1287 , - 206 , - 721 , - 96 , - 1067 , - 898 , - 501 , - 788 , - 847 , - 1590 , - 281 , - 1480 , - 627 , - 458 , - 61 , - 348 , - 407 , - 1150 , - 1665 , - 1040 , - 187 , - 18 , - 1445 , - 1732 , - 1791 , - 710 , - 1225 , - 600 , - 1571 , - 1402 , - 1005 , - 1292 , - 1351 , - 270 , - 785 , - 160 , - 1131 , - 962 , - 565 , - 852 , - 911 , - 1654 , - 345 , - 1544 , - 691 , - 522 , - 125 , - 412 , - 471 , - 1214 , - 1729 , - 1104 , - 251 , - 82 , - 1509 , - 1796 , - 31 , - 774 , - 1289 , - 664 , - 1635 , - 1466 , - 1069 , - 1356 , - 1415 , - 334 , - 849 , - 224 , - 1195 , - 1026 , - 629 , - 916 , - 975 , - 1718 , - 409 , - 1608 , - 755 , - 586 , - 189 , - 476 , - 535 , - 1278 , - 1793 , - 1168 , - 315 , - 146 , - 1573 , - 36 , - 95 , - 838 , - 1353 , - 728 , - 1699 , - 1530 , - 1133 , - 1420 , - 1479 , - 398 , - 913 , - 288 , - 1259 , - 1090 , - 693 , - 980 , - 1039 , - 1782 , - 473 , - 1672 , - 819 , - 650 , - 253 , - 540 , - 599 , - 1342 , - 33 , - 1232 , - 379 , - 210 , - 1637 , - 100 , - 159 , - 902 , - 1417 , - 792 , - 1763 , - 1594 , - 1197 , - 1484 , - 1543 , - 462 , - 977 , - 352 , - 1323 , - 1154 , - 757 , - 1044 , - 1103 , - 22 , - 537 , - 1736 , - 883 , - 714 , - 317 , - 604 , - 663 , - 1406 , - 97 , - 1296 , - 443 , - 274 , - 1701 , - 164 , - 223 , - 966 , - 1481 , - 856 , - 3 , - 1658 , - 1261 , - 1548 , - 1607 , - 526 , - 1041 , - 416 , - 1387 , - 1218 , - 821 , - 1108 , - 1167 , - 86 , - 601 , - 1800 , - 947 , - 778 , - 381 , - 668 , - 727 , - 1470 , - 161 , - 1360 , - 507 , - 338 , - 1765 , - 228 , - 287 , - 1030 , - 1545 , - 920 , - 67 , - 1722 , - 1325 , - 1612 , - 1671 , - 590 , - 1105 , - 480 , - 1451 , - 1282 , - 885 , - 1172 , - 1231 , - 150 , - 665 , - 40 , - 1011 , - 842 , - 445 , - 732 , - 791 , - 1534 , - 225 , - 1424 , - 571 , - 402 , - 5 , - 292 , - 351 , - 1094 , - 1609 , - 984 , - 131 , - 1786 , - 1389 , - 1676 , - 1735 , - 654 , - 1169 , - 544 , - 1515 , - 1346 , - 949 , - 1236 , - 1295 , - 214 , - 729 , - 104 , - 1075 , - 906 , - 509 , - 796 , - 855 , - 1598 , - 289 , - 1488 , - 635 , - 466 , - 69 , - 356 , - 415 , - 1158 , - 1673 , - 1048 , - 195 , - 26 , - 1453 , - 1740 , - 1799 , - 718 , - 1233 , - 608 , - 1579 , - 1410 , - 1013 , - 1300 , - 1359 , - 278 , - 793 , - 168 , - 1139 , - 970 , - 573 , - 860 , - 919 , - 1662 , - 353 , - 1552 , - 699 , - 530 , - 133 , - 420 , - 479 , - 1222 , - 1737 , - 1112 , - 259 , - 90 , - 1517 , - 1804 , - 39 , - 782 , - 1297 , - 672 , - 1643 , - 1474 , - 1077 , - 1364 , - 1423 , - 342 , - 857 , - 232 , - 1203 , - 1034 , - 637 , - 924 , - 983 , - 1726 , - 417 , - 1616 , - 763 , - 594 , - 197 , - 484 , - 543 , - 1286 , - 1801 , - 1176 , - 323 , - 154 , - 1581 , - 44 , - 103 , - 846 , - 1361 , - 736 , - 1707 , - 1538 , - 1141 , - 1428 , - 1487 , - 406 , - 921 , - 296 , - 1267 , - 1098 , - 701 , - 988 , - 1047 , - 1790 , - 481 , - 1680 , - 827 , - 658 , - 261 , - 548 , - 607 , - 1350 , - 41 , - 1240 , - 387 , - 218 , - 1645 , - 108 , - 167 , - 910 , - 1425 , - 800 , - 1771 , - 1602 , - 1205 , - 1492 , - 1551 , - 470 , - 985 , - 360 , - 1331 , - 1162 , - 765 , - 1052 , - 1111 , - 30 , - 545 , - 1744 , - 891 , - 722 , - 325 , - 612 , - 671 , - 1414 , - 105 , - 1304 , - 451 , - 282 , - 1709 , - 172 , - 231 , - 974 , - 1489 , - 864 , - 11 , - 1666 , - 1269 , - 1556 , - 1615 , - 534 , - 1049 , - 424 , - 1395 , - 1226 , - 829 , - 1116 , - 1175 , - 94 , - 609 , - 1808 , - 955 , - 786 , - 389 , - 676 , - 735 , - 1478 , - 169 , - 1368 , - 515 , - 346 , - 1773 , - 236 , - 295 , - 1038 , - 1553 , - 928 , - 75 , - 1730 , - 1333 , - 1620 , - 1679 , - 598 , - 1113 , - 488 , - 1459 , - 1290 , - 893 , - 1180 , - 1239 , - 158 , - 673 , - 48 , - 1019 , - 850 , - 453 , - 740 , - 799 , - 1542 , - 233 , - 1432 , - 579 , - 410 , - 13 , - 300 , - 359 , - 1102 , - 1617 , - 992 , - 139 , - 1794 , - 1397 , - 1684 , - 1743 , - 662 , - 1177 , - 552 , - 1523 , - 1354 , - 957 , - 1244 , - 1303 , - 222 , - 737 , - 112 , - 1083 , - 914 , - 517 , - 804 , - 863 , - 1606 , - 297 , - 1496 , - 643 , - 474 , - 77 , - 364 , - 423 , - 1166 , - 1681 , - 1056 , - 203 , - 34 , - 1461 , - 1748 , - 1807 , - 726 , - 1241 , - 616 , - 1587 , - 1418 , - 1021 , - 1308 , - 1367 , - 286 , - 801 , - 176 , - 1147 , - 978 , - 581 , - 868 , - 927 , - 1670 , - 361 , - 1560 , - 707 , - 538 , - 141 , - 428 , - 487 , - 1230 , - 1745 , - 1120 , - 267 , - 98 , - 1525 , - 1812 , - 47 , - 790 , - 1305 , - 680 , - 1651 , - 1482 , - 1085 , - 1372 , - 1431 , - 350 , - 865 , - 240 , - 1211 , - 1042 , - 645 , - 932 , - 991 , - 1734 , - 425 , - 1624 , - 771 , - 602 , - 205 , - 492 , - 551 , - 1294 , - 1809 , - 1184 , - 331 , - 162 , - 1589 , - 52 , - 111 , - 854 , - 1369 , - 744 , - 1715 , - 1546 , - 1149 , - 1436 , - 1495 , - 414 , - 929 , - 304 , - 1275 , - 1106 , - 709 , - 996 , - 1055 , - 1798 , - 489 , - 1688 , - 835 , - 666 , - 269 , - 556 , - 615 , - 1358 , - 49 , - 1248 , - 395 , - 226 , - 1653 , - 116 , - 175 , - 918 , - 1433 , - 808 , - 1779 , - 1610 , - 1213 , - 1500 , - 1559 , - 478 , - 993 , - 368 , - 1339 , - 1170 , - 773 , - 1060 , - 1119 , - 38 , - 553 , - 1752 , - 899 , - 730 , - 333 , - 620 , - 679 , - 1422 , - 113 , - 1312 , - 459 , - 290 , - 1717 , - 180 , - 239 , - 982 , - 1497 , - 872 , - 19 , - 1674 , - 1277 , - 1564 , - 1623 , - 542 , - 1057 , - 432 , - 1403 , - 1234 , - 837 , - 1124 , - 1183 , - 102 , - 617 , - 1816 , - 963 , - 794 , - 397 , - 684 , - 743 , - 1486 , - 177 , - 1376 , - 523 , - 354 , - 1781 , - 244 , - 303 , - 1046 , - 1561 , - 936 , - 83 , - 1738 , - 1341 , - 1628 , - 1687 , - 606 , - 1121 , - 496 , - 1467 , - 1298 , - 901 , - 1188 , - 1247 , - 166 , - 681 , - 56 , - 1027 , - 858 , - 461 , - 748 , - 807 , - 1550 , - 241 , - 1440 , - 587 , - 418 , - 21 , - 308 , - 367 , - 1110 , - 1625 , - 1000 , - 147 , - 1802 , - 1405 , - 1692 , - 1751 , - 670 , - 1185 , - 560 , - 1531 , - 1362 , - 965 , - 1252 , - 1311 , - 230 , - 745 , - 120 , - 1091 , - 922 , - 525 , - 812 , - 871 , - 1614 , - 305 , - 1504 , - 651 , - 482 , - 85 , - 372 , - 431 , - 1174 , - 1689 , - 1064 , - 211 , - 42 , - 1469 , - 1756 , - 1815 , - 734 , - 1249 , - 624 , - 1595 , - 1426 , - 1029 , - 1316 , - 1375 , - 294 , - 809 , - 184 , - 1155 , - 986 , - 589 , - 876 , - 935 , - 1678 , - 369 , - 1568 , - 715 , - 546 , - 149 , - 436 , - 495 , - 1238 , - 1753 , - 1128 , - 275 , - 106 , - 1533 , - 1820 , - 55 , - 798 , - 1313 , - 688 , - 1659 , - 1490 , - 1093 , - 1380 , - 1439 , - 358 , - 873 , - 248 , - 1219 , - 1050 , - 653 , - 940 , - 999 , - 1742 , - 433 , - 1632 , - 779 , - 610 , - 213 , - 500 , - 559 , - 1302 , - 1817 , - 1192 , - 339 , - 170 , - 1597 , - 60 , - 119 , - 862 , - 1377 , - 752 , - 1723 , - 1554 , - 1157 , - 1444 , - 1503 , - 422 , - 937 , - 312 , - 1283 , - 1114 , - 717 , - 1004 , - 1063 , - 1806 , - 497 , - 1696 , - 843 , - 674 , - 277 , - 564 , - 623 , - 1366 , - 57 , - 1256 , - 403 , - 234 , - 1661 , - 124 , - 183 , - 926 , - 1441 , - 816 , - 1787 , - 1618 , - 1221 , - 1508 , - 1567 , - 486 , - 1001 , - 376 , - 1347 , - 1178 , - 781 , - 1068 , - 1127 , - 46 , - 561 , - 1760 , - 907 , - 738 , - 341 , - 628 , - 687 , - 1430 , - 121 , - 1320 , - 467 , - 298 , - 1725 , - 188 , - 247 , - 990 , - 1505 , - 880 , - 27 , - 1682 , - 1285 , - 1572 , - 1631 , - 550 , - 1065 , - 440 , - 1411 , - 1242 , - 845 , - 1132 , - 1191 , - 110 , - 625 , - 0 , - 405 , - 578 , - 519 , - 228 , - 1561 , - 806 , - 1675 , - 456 , - 861 , - 1034 , - 975 , - 684 , - 161 , - 1262 , - 275 , - 912 , - 1317 , - 1490 , - 1431 , - 1140 , - 617 , - 1718 , - 731 , - 1368 , - 1773 , - 90 , - 31 , - 1596 , - 1073 , - 318 , - 1187 , - 1824 , - 373 , - 546 , - 487 , - 196 , - 1529 , - 774 , - 1643 , - 424 , - 829 , - 1002 , - 943 , - 652 , - 129 , - 1230 , - 243 , - 880 , - 1285 , - 1458 , - 1399 , - 1108 , - 585 , - 1686 , - 699 , - 1336 , - 1741 , - 58 , - 1855 , - 1564 , - 1041 , - 286 , - 1155 , - 1792 , - 341 , - 514 , - 455 , - 164 , - 1497 , - 742 , - 1611 , - 392 , - 797 , - 970 , - 911 , - 620 , - 97 , - 1198 , - 211 , - 848 , - 1253 , - 1426 , - 1367 , - 1076 , - 553 , - 1654 , - 667 , - 1304 , - 1709 , - 26 , - 1823 , - 1532 , - 1009 , - 254 , - 1123 , - 1760 , - 309 , - 482 , - 423 , - 132 , - 1465 , - 710 , - 1579 , - 360 , - 765 , - 938 , - 879 , - 588 , - 65 , - 1166 , - 179 , - 816 , - 1221 , - 1394 , - 1335 , - 1044 , - 521 , - 1622 , - 635 , - 1272 , - 1677 , - 1850 , - 1791 , - 1500 , - 977 , - 222 , - 1091 , - 1728 , - 277 , - 450 , - 391 , - 100 , - 1433 , - 678 , - 1547 , - 328 , - 733 , - 906 , - 847 , - 556 , - 33 , - 1134 , - 147 , - 784 , - 1189 , - 1362 , - 1303 , - 1012 , - 489 , - 1590 , - 603 , - 1240 , - 1645 , - 1818 , - 1759 , - 1468 , - 945 , - 190 , - 1059 , - 1696 , - 245 , - 418 , - 359 , - 68 , - 1401 , - 646 , - 1515 , - 296 , - 701 , - 874 , - 815 , - 524 , - 1 , - 1102 , - 115 , - 752 , - 1157 , - 1330 , - 1271 , - 980 , - 457 , - 1558 , - 571 , - 1208 , - 1613 , - 1786 , - 1727 , - 1436 , - 913 , - 158 , - 1027 , - 1664 , - 213 , - 386 , - 327 , - 36 , - 1369 , - 614 , - 1483 , - 264 , - 669 , - 842 , - 783 , - 492 , - 1825 , - 1070 , - 83 , - 720 , - 1125 , - 1298 , - 1239 , - 948 , - 425 , - 1526 , - 539 , - 1176 , - 1581 , - 1754 , - 1695 , - 1404 , - 881 , - 126 , - 995 , - 1632 , - 181 , - 354 , - 295 , - 4 , - 1337 , - 582 , - 1451 , - 232 , - 637 , - 810 , - 751 , - 460 , - 1793 , - 1038 , - 51 , - 688 , - 1093 , - 1266 , - 1207 , - 916 , - 393 , - 1494 , - 507 , - 1144 , - 1549 , - 1722 , - 1663 , - 1372 , - 849 , - 94 , - 963 , - 1600 , - 149 , - 322 , - 263 , - 1828 , - 1305 , - 550 , - 1419 , - 200 , - 605 , - 778 , - 719 , - 428 , - 1761 , - 1006 , - 19 , - 656 , - 1061 , - 1234 , - 1175 , - 884 , - 361 , - 1462 , - 475 , - 1112 , - 1517 , - 1690 , - 1631 , - 1340 , - 817 , - 62 , - 931 , - 1568 , - 117 , - 290 , - 231 , - 1796 , - 1273 , - 518 , - 1387 , - 168 , - 573 , - 746 , - 687 , - 396 , - 1729 , - 974 , - 1843 , - 624 , - 1029 , - 1202 , - 1143 , - 852 , - 329 , - 1430 , - 443 , - 1080 , - 1485 , - 1658 , - 1599 , - 1308 , - 785 , - 30 , - 899 , - 1536 , - 85 , - 258 , - 199 , - 1764 , - 1241 , - 486 , - 1355 , - 136 , - 541 , - 714 , - 655 , - 364 , - 1697 , - 942 , - 1811 , - 592 , - 997 , - 1170 , - 1111 , - 820 , - 297 , - 1398 , - 411 , - 1048 , - 1453 , - 1626 , - 1567 , - 1276 , - 753 , - 1854 , - 867 , - 1504 , - 53 , - 226 , - 167 , - 1732 , - 1209 , - 454 , - 1323 , - 104 , - 509 , - 682 , - 623 , - 332 , - 1665 , - 910 , - 1779 , - 560 , - 965 , - 1138 , - 1079 , - 788 , - 265 , - 1366 , - 379 , - 1016 , - 1421 , - 1594 , - 1535 , - 1244 , - 721 , - 1822 , - 835 , - 1472 , - 21 , - 194 , - 135 , - 1700 , - 1177 , - 422 , - 1291 , - 72 , - 477 , - 650 , - 591 , - 300 , - 1633 , - 878 , - 1747 , - 528 , - 933 , - 1106 , - 1047 , - 756 , - 233 , - 1334 , - 347 , - 984 , - 1389 , - 1562 , - 1503 , - 1212 , - 689 , - 1790 , - 803 , - 1440 , - 1845 , - 162 , - 103 , - 1668 , - 1145 , - 390 , - 1259 , - 40 , - 445 , - 618 , - 559 , - 268 , - 1601 , - 846 , - 1715 , - 496 , - 901 , - 1074 , - 1015 , - 724 , - 201 , - 1302 , - 315 , - 952 , - 1357 , - 1530 , - 1471 , - 1180 , - 657 , - 1758 , - 771 , - 1408 , - 1813 , - 130 , - 71 , - 1636 , - 1113 , - 358 , - 1227 , - 8 , - 413 , - 586 , - 527 , - 236 , - 1569 , - 814 , - 1683 , - 464 , - 869 , - 1042 , - 983 , - 692 , - 169 , - 1270 , - 283 , - 920 , - 1325 , - 1498 , - 1439 , - 1148 , - 625 , - 1726 , - 739 , - 1376 , - 1781 , - 98 , - 39 , - 1604 , - 1081 , - 326 , - 1195 , - 1832 , - 381 , - 554 , - 495 , - 204 , - 1537 , - 782 , - 1651 , - 432 , - 837 , - 1010 , - 951 , - 660 , - 137 , - 1238 , - 251 , - 888 , - 1293 , - 1466 , - 1407 , - 1116 , - 593 , - 1694 , - 707 , - 1344 , - 1749 , - 66 , - 7 , - 1572 , - 1049 , - 294 , - 1163 , - 1800 , - 349 , - 522 , - 463 , - 172 , - 1505 , - 750 , - 1619 , - 400 , - 805 , - 978 , - 919 , - 628 , - 105 , - 1206 , - 219 , - 856 , - 1261 , - 1434 , - 1375 , - 1084 , - 561 , - 1662 , - 675 , - 1312 , - 1717 , - 34 , - 1831 , - 1540 , - 1017 , - 262 , - 1131 , - 1768 , - 317 , - 490 , - 431 , - 140 , - 1473 , - 718 , - 1587 , - 368 , - 773 , - 946 , - 887 , - 596 , - 73 , - 1174 , - 187 , - 824 , - 1229 , - 1402 , - 1343 , - 1052 , - 529 , - 1630 , - 643 , - 1280 , - 1685 , - 2 , - 1799 , - 1508 , - 985 , - 230 , - 1099 , - 1736 , - 285 , - 458 , - 399 , - 108 , - 1441 , - 686 , - 1555 , - 336 , - 741 , - 914 , - 855 , - 564 , - 41 , - 1142 , - 155 , - 792 , - 1197 , - 1370 , - 1311 , - 1020 , - 497 , - 1598 , - 611 , - 1248 , - 1653 , - 1826 , - 1767 , - 1476 , - 953 , - 198 , - 1067 , - 1704 , - 253 , - 426 , - 367 , - 76 , - 1409 , - 654 , - 1523 , - 304 , - 709 , - 882 , - 823 , - 532 , - 9 , - 1110 , - 123 , - 760 , - 1165 , - 1338 , - 1279 , - 988 , - 465 , - 1566 , - 579 , - 1216 , - 1621 , - 1794 , - 1735 , - 1444 , - 921 , - 166 , - 1035 , - 1672 , - 221 , - 394 , - 335 , - 44 , - 1377 , - 622 , - 1491 , - 272 , - 677 , - 850 , - 791 , - 500 , - 1833 , - 1078 , - 91 , - 728 , - 1133 , - 1306 , - 1247 , - 956 , - 433 , - 1534 , - 547 , - 1184 , - 1589 , - 1762 , - 1703 , - 1412 , - 889 , - 134 , - 1003 , - 1640 , - 189 , - 362 , - 303 , - 12 , - 1345 , - 590 , - 1459 , - 240 , - 645 , - 818 , - 759 , - 468 , - 1801 , - 1046 , - 59 , - 696 , - 1101 , - 1274 , - 1215 , - 924 , - 401 , - 1502 , - 515 , - 1152 , - 1557 , - 1730 , - 1671 , - 1380 , - 857 , - 102 , - 971 , - 1608 , - 157 , - 330 , - 271 , - 1836 , - 1313 , - 558 , - 1427 , - 208 , - 613 , - 786 , - 727 , - 436 , - 1769 , - 1014 , - 27 , - 664 , - 1069 , - 1242 , - 1183 , - 892 , - 369 , - 1470 , - 483 , - 1120 , - 1525 , - 1698 , - 1639 , - 1348 , - 825 , - 70 , - 939 , - 1576 , - 125 , - 298 , - 239 , - 1804 , - 1281 , - 526 , - 1395 , - 176 , - 581 , - 754 , - 695 , - 404 , - 1737 , - 982 , - 1851 , - 632 , - 1037 , - 1210 , - 1151 , - 860 , - 337 , - 1438 , - 451 , - 1088 , - 1493 , - 1666 , - 1607 , - 1316 , - 793 , - 38 , - 907 , - 1544 , - 93 , - 266 , - 207 , - 1772 , - 1249 , - 494 , - 1363 , - 144 , - 549 , - 722 , - 663 , - 372 , - 1705 , - 950 , - 1819 , - 600 , - 1005 , - 1178 , - 1119 , - 828 , - 305 , - 1406 , - 419 , - 1056 , - 1461 , - 1634 , - 1575 , - 1284 , - 761 , - 6 , - 875 , - 1512 , - 61 , - 234 , - 175 , - 1740 , - 1217 , - 462 , - 1331 , - 112 , - 517 , - 690 , - 631 , - 340 , - 1673 , - 918 , - 1787 , - 568 , - 973 , - 1146 , - 1087 , - 796 , - 273 , - 1374 , - 387 , - 1024 , - 1429 , - 1602 , - 1543 , - 1252 , - 729 , - 1830 , - 843 , - 1480 , - 29 , - 202 , - 143 , - 1708 , - 1185 , - 430 , - 1299 , - 80 , - 485 , - 658 , - 599 , - 308 , - 1641 , - 886 , - 1755 , - 536 , - 941 , - 1114 , - 1055 , - 764 , - 241 , - 1342 , - 355 , - 992 , - 1397 , - 1570 , - 1511 , - 1220 , - 697 , - 1798 , - 811 , - 1448 , - 1853 , - 170 , - 111 , - 1676 , - 1153 , - 398 , - 1267 , - 48 , - 453 , - 626 , - 567 , - 276 , - 1609 , - 854 , - 1723 , - 504 , - 909 , - 1082 , - 1023 , - 732 , - 209 , - 1310 , - 323 , - 960 , - 1365 , - 1538 , - 1479 , - 1188 , - 665 , - 1766 , - 779 , - 1416 , - 1821 , - 138 , - 79 , - 1644 , - 1121 , - 366 , - 1235 , - 16 , - 421 , - 594 , - 535 , - 244 , - 1577 , - 822 , - 1691 , - 472 , - 877 , - 1050 , - 991 , - 700 , - 177 , - 1278 , - 291 , - 928 , - 1333 , - 1506 , - 1447 , - 1156 , - 633 , - 1734 , - 747 , - 1384 , - 1789 , - 106 , - 47 , - 1612 , - 1089 , - 334 , - 1203 , - 1840 , - 389 , - 562 , - 503 , - 212 , - 1545 , - 790 , - 1659 , - 440 , - 845 , - 1018 , - 959 , - 668 , - 145 , - 1246 , - 259 , - 896 , - 1301 , - 1474 , - 1415 , - 1124 , - 601 , - 1702 , - 715 , - 1352 , - 1757 , - 74 , - 15 , - 1580 , - 1057 , - 302 , - 1171 , - 1808 , - 357 , - 530 , - 471 , - 180 , - 1513 , - 758 , - 1627 , - 408 , - 813 , - 986 , - 927 , - 636 , - 113 , - 1214 , - 227 , - 864 , - 1269 , - 1442 , - 1383 , - 1092 , - 569 , - 1670 , - 683 , - 1320 , - 1725 , - 42 , - 1839 , - 1548 , - 1025 , - 270 , - 1139 , - 1776 , - 325 , - 498 , - 439 , - 148 , - 1481 , - 726 , - 1595 , - 376 , - 781 , - 954 , - 895 , - 604 , - 81 , - 1182 , - 195 , - 832 , - 1237 , - 1410 , - 1351 , - 1060 , - 537 , - 1638 , - 651 , - 1288 , - 1693 , - 10 , - 1807 , - 1516 , - 993 , - 238 , - 1107 , - 1744 , - 293 , - 466 , - 407 , - 116 , - 1449 , - 694 , - 1563 , - 344 , - 749 , - 922 , - 863 , - 572 , - 49 , - 1150 , - 163 , - 800 , - 1205 , - 1378 , - 1319 , - 1028 , - 505 , - 1606 , - 619 , - 1256 , - 1661 , - 1834 , - 1775 , - 1484 , - 961 , - 206 , - 1075 , - 1712 , - 261 , - 434 , - 375 , - 84 , - 1417 , - 662 , - 1531 , - 312 , - 717 , - 890 , - 831 , - 540 , - 17 , - 1118 , - 131 , - 768 , - 1173 , - 1346 , - 1287 , - 996 , - 473 , - 1574 , - 587 , - 1224 , - 1629 , - 1802 , - 1743 , - 1452 , - 929 , - 174 , - 1043 , - 1680 , - 229 , - 402 , - 343 , - 52 , - 1385 , - 630 , - 1499 , - 280 , - 685 , - 858 , - 799 , - 508 , - 1841 , - 1086 , - 99 , - 736 , - 1141 , - 1314 , - 1255 , - 964 , - 441 , - 1542 , - 555 , - 1192 , - 1597 , - 1770 , - 1711 , - 1420 , - 897 , - 142 , - 1011 , - 1648 , - 197 , - 370 , - 311 , - 20 , - 1353 , - 598 , - 1467 , - 248 , - 653 , - 826 , - 767 , - 476 , - 1809 , - 1054 , - 67 , - 704 , - 1109 , - 1282 , - 1223 , - 932 , - 409 , - 1510 , - 523 , - 1160 , - 1565 , - 1738 , - 1679 , - 1388 , - 865 , - 110 , - 979 , - 1616 , - 165 , - 338 , - 279 , - 1844 , - 1321 , - 566 , - 1435 , - 216 , - 621 , - 794 , - 735 , - 444 , - 1777 , - 1022 , - 35 , - 672 , - 1077 , - 1250 , - 1191 , - 900 , - 377 , - 1478 , - 491 , - 1128 , - 1533 , - 1706 , - 1647 , - 1356 , - 833 , - 78 , - 947 , - 1584 , - 133 , - 306 , - 247 , - 1812 , - 1289 , - 534 , - 1403 , - 184 , - 589 , - 762 , - 703 , - 412 , - 1745 , - 990 , - 3 , - 640 , - 1045 , - 1218 , - 1159 , - 868 , - 345 , - 1446 , - 459 , - 1096 , - 1501 , - 1674 , - 1615 , - 1324 , - 801 , - 46 , - 915 , - 1552 , - 101 , - 274 , - 215 , - 1780 , - 1257 , - 502 , - 1371 , - 152 , - 557 , - 730 , - 671 , - 380 , - 1713 , - 958 , - 1827 , - 608 , - 1013 , - 1186 , - 1127 , - 836 , - 313 , - 1414 , - 427 , - 1064 , - 1469 , - 1642 , - 1583 , - 1292 , - 769 , - 14 , - 883 , - 1520 , - 69 , - 242 , - 183 , - 1748 , - 1225 , - 470 , - 1339 , - 120 , - 525 , - 698 , - 639 , - 348 , - 1681 , - 926 , - 1795 , - 576 , - 981 , - 1154 , - 1095 , - 804 , - 281 , - 1382 , - 395 , - 1032 , - 1437 , - 1610 , - 1551 , - 1260 , - 737 , - 1838 , - 851 , - 1488 , - 37 , - 210 , - 151 , - 1716 , - 1193 , - 438 , - 1307 , - 88 , - 493 , - 666 , - 607 , - 316 , - 1649 , - 894 , - 1763 , - 544 , - 949 , - 1122 , - 1063 , - 772 , - 249 , - 1350 , - 363 , - 1000 , - 1405 , - 1578 , - 1519 , - 1228 , - 705 , - 1806 , - 819 , - 1456 , - 5 , - 178 , - 119 , - 1684 , - 1161 , - 406 , - 1275 , - 56 , - 461 , - 634 , - 575 , - 284 , - 1617 , - 862 , - 1731 , - 512 , - 917 , - 1090 , - 1031 , - 740 , - 217 , - 1318 , - 331 , - 968 , - 1373 , - 1546 , - 1487 , - 1196 , - 673 , - 1774 , - 787 , - 1424 , - 1829 , - 146 , - 87 , - 1652 , - 1129 , - 374 , - 1243 , - 24 , - 429 , - 602 , - 543 , - 252 , - 1585 , - 830 , - 1699 , - 480 , - 885 , - 1058 , - 999 , - 708 , - 185 , - 1286 , - 299 , - 936 , - 1341 , - 1514 , - 1455 , - 1164 , - 641 , - 1742 , - 755 , - 1392 , - 1797 , - 114 , - 55 , - 1620 , - 1097 , - 342 , - 1211 , - 1848 , - 397 , - 570 , - 511 , - 220 , - 1553 , - 798 , - 1667 , - 448 , - 853 , - 1026 , - 967 , - 676 , - 153 , - 1254 , - 267 , - 904 , - 1309 , - 1482 , - 1423 , - 1132 , - 609 , - 1710 , - 723 , - 1360 , - 1765 , - 82 , - 23 , - 1588 , - 1065 , - 310 , - 1179 , - 1816 , - 365 , - 538 , - 479 , - 188 , - 1521 , - 766 , - 1635 , - 416 , - 821 , - 994 , - 935 , - 644 , - 121 , - 1222 , - 235 , - 872 , - 1277 , - 1450 , - 1391 , - 1100 , - 577 , - 1678 , - 691 , - 1328 , - 1733 , - 50 , - 1847 , - 1556 , - 1033 , - 278 , - 1147 , - 1784 , - 333 , - 506 , - 447 , - 156 , - 1489 , - 734 , - 1603 , - 384 , - 789 , - 962 , - 903 , - 612 , - 89 , - 1190 , - 203 , - 840 , - 1245 , - 1418 , - 1359 , - 1068 , - 545 , - 1646 , - 659 , - 1296 , - 1701 , - 18 , - 1815 , - 1524 , - 1001 , - 246 , - 1115 , - 1752 , - 301 , - 474 , - 415 , - 124 , - 1457 , - 702 , - 1571 , - 352 , - 757 , - 930 , - 871 , - 580 , - 57 , - 1158 , - 171 , - 808 , - 1213 , - 1386 , - 1327 , - 1036 , - 513 , - 1614 , - 627 , - 1264 , - 1669 , - 1842 , - 1783 , - 1492 , - 969 , - 214 , - 1083 , - 1720 , - 269 , - 442 , - 383 , - 92 , - 1425 , - 670 , - 1539 , - 320 , - 725 , - 898 , - 839 , - 548 , - 25 , - 1126 , - 139 , - 776 , - 1181 , - 1354 , - 1295 , - 1004 , - 481 , - 1582 , - 595 , - 1232 , - 1637 , - 1810 , - 1751 , - 1460 , - 937 , - 182 , - 1051 , - 1688 , - 237 , - 410 , - 351 , - 60 , - 1393 , - 638 , - 1507 , - 288 , - 693 , - 866 , - 807 , - 516 , - 1849 , - 1094 , - 107 , - 744 , - 1149 , - 1322 , - 1263 , - 972 , - 449 , - 1550 , - 563 , - 1200 , - 1605 , - 1778 , - 1719 , - 1428 , - 905 , - 150 , - 1019 , - 1656 , - 205 , - 378 , - 319 , - 28 , - 1361 , - 606 , - 1475 , - 256 , - 661 , - 834 , - 775 , - 484 , - 1817 , - 1062 , - 75 , - 712 , - 1117 , - 1290 , - 1231 , - 940 , - 417 , - 1518 , - 531 , - 1168 , - 1573 , - 1746 , - 1687 , - 1396 , - 873 , - 118 , - 987 , - 1624 , - 173 , - 346 , - 287 , - 1852 , - 1329 , - 574 , - 1443 , - 224 , - 629 , - 802 , - 743 , - 452 , - 1785 , - 1030 , - 43 , - 680 , - 1085 , - 1258 , - 1199 , - 908 , - 385 , - 1486 , - 499 , - 1136 , - 1541 , - 1714 , - 1655 , - 1364 , - 841 , - 86 , - 955 , - 1592 , - 141 , - 314 , - 255 , - 1820 , - 1297 , - 542 , - 1411 , - 192 , - 597 , - 770 , - 711 , - 420 , - 1753 , - 998 , - 11 , - 648 , - 1053 , - 1226 , - 1167 , - 876 , - 353 , - 1454 , - 467 , - 1104 , - 1509 , - 1682 , - 1623 , - 1332 , - 809 , - 54 , - 923 , - 1560 , - 109 , - 282 , - 223 , - 1788 , - 1265 , - 510 , - 1379 , - 160 , - 565 , - 738 , - 679 , - 388 , - 1721 , - 966 , - 1835 , - 616 , - 1021 , - 1194 , - 1135 , - 844 , - 321 , - 1422 , - 435 , - 1072 , - 1477 , - 1650 , - 1591 , - 1300 , - 777 , - 22 , - 891 , - 1528 , - 77 , - 250 , - 191 , - 1756 , - 1233 , - 478 , - 1347 , - 128 , - 533 , - 706 , - 647 , - 356 , - 1689 , - 934 , - 1803 , - 584 , - 989 , - 1162 , - 1103 , - 812 , - 289 , - 1390 , - 403 , - 1040 , - 1445 , - 1618 , - 1559 , - 1268 , - 745 , - 1846 , - 859 , - 1496 , - 45 , - 218 , - 159 , - 1724 , - 1201 , - 446 , - 1315 , - 96 , - 501 , - 674 , - 615 , - 324 , - 1657 , - 902 , - 1771 , - 552 , - 957 , - 1130 , - 1071 , - 780 , - 257 , - 1358 , - 371 , - 1008 , - 1413 , - 1586 , - 1527 , - 1236 , - 713 , - 1814 , - 827 , - 1464 , - 13 , - 186 , - 127 , - 1692 , - 1169 , - 414 , - 1283 , - 64 , - 469 , - 642 , - 583 , - 292 , - 1625 , - 870 , - 1739 , - 520 , - 925 , - 1098 , - 1039 , - 748 , - 225 , - 1326 , - 339 , - 976 , - 1381 , - 1554 , - 1495 , - 1204 , - 681 , - 1782 , - 795 , - 1432 , - 1837 , - 154 , - 95 , - 1660 , - 1137 , - 382 , - 1251 , - 32 , - 437 , - 610 , - 551 , - 260 , - 1593 , - 838 , - 1707 , - 488 , - 893 , - 1066 , - 1007 , - 716 , - 193 , - 1294 , - 307 , - 944 , - 1349 , - 1522 , - 1463 , - 1172 , - 649 , - 1750 , - 763 , - 1400 , - 1805 , - 122 , - 63 , - 1628 , - 1105 , - 350 , - 1219 , - 0 , - 139 , - 514 , - 181 , - 84 , - 1167 , - 598 , - 1209 , - 168 , - 307 , - 682 , - 349 , - 252 , - 1335 , - 766 , - 1377 , - 336 , - 475 , - 850 , - 517 , - 420 , - 1503 , - 934 , - 1545 , - 504 , - 643 , - 1018 , - 685 , - 588 , - 1671 , - 1102 , - 1713 , - 672 , - 811 , - 1186 , - 853 , - 756 , - 1839 , - 1270 , - 1881 , - 840 , - 979 , - 1354 , - 1021 , - 924 , - 119 , - 1438 , - 161 , - 1008 , - 1147 , - 1522 , - 1189 , - 1092 , - 287 , - 1606 , - 329 , - 1176 , - 1315 , - 1690 , - 1357 , - 1260 , - 455 , - 1774 , - 497 , - 1344 , - 1483 , - 1858 , - 1525 , - 1428 , - 623 , - 54 , - 665 , - 1512 , - 1651 , - 138 , - 1693 , - 1596 , - 791 , - 222 , - 833 , - 1680 , - 1819 , - 306 , - 1861 , - 1764 , - 959 , - 390 , - 1001 , - 1848 , - 99 , - 474 , - 141 , - 44 , - 1127 , - 558 , - 1169 , - 128 , - 267 , - 642 , - 309 , - 212 , - 1295 , - 726 , - 1337 , - 296 , - 435 , - 810 , - 477 , - 380 , - 1463 , - 894 , - 1505 , - 464 , - 603 , - 978 , - 645 , - 548 , - 1631 , - 1062 , - 1673 , - 632 , - 771 , - 1146 , - 813 , - 716 , - 1799 , - 1230 , - 1841 , - 800 , - 939 , - 1314 , - 981 , - 884 , - 79 , - 1398 , - 121 , - 968 , - 1107 , - 1482 , - 1149 , - 1052 , - 247 , - 1566 , - 289 , - 1136 , - 1275 , - 1650 , - 1317 , - 1220 , - 415 , - 1734 , - 457 , - 1304 , - 1443 , - 1818 , - 1485 , - 1388 , - 583 , - 14 , - 625 , - 1472 , - 1611 , - 98 , - 1653 , - 1556 , - 751 , - 182 , - 793 , - 1640 , - 1779 , - 266 , - 1821 , - 1724 , - 919 , - 350 , - 961 , - 1808 , - 59 , - 434 , - 101 , - 4 , - 1087 , - 518 , - 1129 , - 88 , - 227 , - 602 , - 269 , - 172 , - 1255 , - 686 , - 1297 , - 256 , - 395 , - 770 , - 437 , - 340 , - 1423 , - 854 , - 1465 , - 424 , - 563 , - 938 , - 605 , - 508 , - 1591 , - 1022 , - 1633 , - 592 , - 731 , - 1106 , - 773 , - 676 , - 1759 , - 1190 , - 1801 , - 760 , - 899 , - 1274 , - 941 , - 844 , - 39 , - 1358 , - 81 , - 928 , - 1067 , - 1442 , - 1109 , - 1012 , - 207 , - 1526 , - 249 , - 1096 , - 1235 , - 1610 , - 1277 , - 1180 , - 375 , - 1694 , - 417 , - 1264 , - 1403 , - 1778 , - 1445 , - 1348 , - 543 , - 1862 , - 585 , - 1432 , - 1571 , - 58 , - 1613 , - 1516 , - 711 , - 142 , - 753 , - 1600 , - 1739 , - 226 , - 1781 , - 1684 , - 879 , - 310 , - 921 , - 1768 , - 19 , - 394 , - 61 , - 1852 , - 1047 , - 478 , - 1089 , - 48 , - 187 , - 562 , - 229 , - 132 , - 1215 , - 646 , - 1257 , - 216 , - 355 , - 730 , - 397 , - 300 , - 1383 , - 814 , - 1425 , - 384 , - 523 , - 898 , - 565 , - 468 , - 1551 , - 982 , - 1593 , - 552 , - 691 , - 1066 , - 733 , - 636 , - 1719 , - 1150 , - 1761 , - 720 , - 859 , - 1234 , - 901 , - 804 , - 1887 , - 1318 , - 41 , - 888 , - 1027 , - 1402 , - 1069 , - 972 , - 167 , - 1486 , - 209 , - 1056 , - 1195 , - 1570 , - 1237 , - 1140 , - 335 , - 1654 , - 377 , - 1224 , - 1363 , - 1738 , - 1405 , - 1308 , - 503 , - 1822 , - 545 , - 1392 , - 1531 , - 18 , - 1573 , - 1476 , - 671 , - 102 , - 713 , - 1560 , - 1699 , - 186 , - 1741 , - 1644 , - 839 , - 270 , - 881 , - 1728 , - 1867 , - 354 , - 21 , - 1812 , - 1007 , - 438 , - 1049 , - 8 , - 147 , - 522 , - 189 , - 92 , - 1175 , - 606 , - 1217 , - 176 , - 315 , - 690 , - 357 , - 260 , - 1343 , - 774 , - 1385 , - 344 , - 483 , - 858 , - 525 , - 428 , - 1511 , - 942 , - 1553 , - 512 , - 651 , - 1026 , - 693 , - 596 , - 1679 , - 1110 , - 1721 , - 680 , - 819 , - 1194 , - 861 , - 764 , - 1847 , - 1278 , - 1 , - 848 , - 987 , - 1362 , - 1029 , - 932 , - 127 , - 1446 , - 169 , - 1016 , - 1155 , - 1530 , - 1197 , - 1100 , - 295 , - 1614 , - 337 , - 1184 , - 1323 , - 1698 , - 1365 , - 1268 , - 463 , - 1782 , - 505 , - 1352 , - 1491 , - 1866 , - 1533 , - 1436 , - 631 , - 62 , - 673 , - 1520 , - 1659 , - 146 , - 1701 , - 1604 , - 799 , - 230 , - 841 , - 1688 , - 1827 , - 314 , - 1869 , - 1772 , - 967 , - 398 , - 1009 , - 1856 , - 107 , - 482 , - 149 , - 52 , - 1135 , - 566 , - 1177 , - 136 , - 275 , - 650 , - 317 , - 220 , - 1303 , - 734 , - 1345 , - 304 , - 443 , - 818 , - 485 , - 388 , - 1471 , - 902 , - 1513 , - 472 , - 611 , - 986 , - 653 , - 556 , - 1639 , - 1070 , - 1681 , - 640 , - 779 , - 1154 , - 821 , - 724 , - 1807 , - 1238 , - 1849 , - 808 , - 947 , - 1322 , - 989 , - 892 , - 87 , - 1406 , - 129 , - 976 , - 1115 , - 1490 , - 1157 , - 1060 , - 255 , - 1574 , - 297 , - 1144 , - 1283 , - 1658 , - 1325 , - 1228 , - 423 , - 1742 , - 465 , - 1312 , - 1451 , - 1826 , - 1493 , - 1396 , - 591 , - 22 , - 633 , - 1480 , - 1619 , - 106 , - 1661 , - 1564 , - 759 , - 190 , - 801 , - 1648 , - 1787 , - 274 , - 1829 , - 1732 , - 927 , - 358 , - 969 , - 1816 , - 67 , - 442 , - 109 , - 12 , - 1095 , - 526 , - 1137 , - 96 , - 235 , - 610 , - 277 , - 180 , - 1263 , - 694 , - 1305 , - 264 , - 403 , - 778 , - 445 , - 348 , - 1431 , - 862 , - 1473 , - 432 , - 571 , - 946 , - 613 , - 516 , - 1599 , - 1030 , - 1641 , - 600 , - 739 , - 1114 , - 781 , - 684 , - 1767 , - 1198 , - 1809 , - 768 , - 907 , - 1282 , - 949 , - 852 , - 47 , - 1366 , - 89 , - 936 , - 1075 , - 1450 , - 1117 , - 1020 , - 215 , - 1534 , - 257 , - 1104 , - 1243 , - 1618 , - 1285 , - 1188 , - 383 , - 1702 , - 425 , - 1272 , - 1411 , - 1786 , - 1453 , - 1356 , - 551 , - 1870 , - 593 , - 1440 , - 1579 , - 66 , - 1621 , - 1524 , - 719 , - 150 , - 761 , - 1608 , - 1747 , - 234 , - 1789 , - 1692 , - 887 , - 318 , - 929 , - 1776 , - 27 , - 402 , - 69 , - 1860 , - 1055 , - 486 , - 1097 , - 56 , - 195 , - 570 , - 237 , - 140 , - 1223 , - 654 , - 1265 , - 224 , - 363 , - 738 , - 405 , - 308 , - 1391 , - 822 , - 1433 , - 392 , - 531 , - 906 , - 573 , - 476 , - 1559 , - 990 , - 1601 , - 560 , - 699 , - 1074 , - 741 , - 644 , - 1727 , - 1158 , - 1769 , - 728 , - 867 , - 1242 , - 909 , - 812 , - 7 , - 1326 , - 49 , - 896 , - 1035 , - 1410 , - 1077 , - 980 , - 175 , - 1494 , - 217 , - 1064 , - 1203 , - 1578 , - 1245 , - 1148 , - 343 , - 1662 , - 385 , - 1232 , - 1371 , - 1746 , - 1413 , - 1316 , - 511 , - 1830 , - 553 , - 1400 , - 1539 , - 26 , - 1581 , - 1484 , - 679 , - 110 , - 721 , - 1568 , - 1707 , - 194 , - 1749 , - 1652 , - 847 , - 278 , - 889 , - 1736 , - 1875 , - 362 , - 29 , - 1820 , - 1015 , - 446 , - 1057 , - 16 , - 155 , - 530 , - 197 , - 100 , - 1183 , - 614 , - 1225 , - 184 , - 323 , - 698 , - 365 , - 268 , - 1351 , - 782 , - 1393 , - 352 , - 491 , - 866 , - 533 , - 436 , - 1519 , - 950 , - 1561 , - 520 , - 659 , - 1034 , - 701 , - 604 , - 1687 , - 1118 , - 1729 , - 688 , - 827 , - 1202 , - 869 , - 772 , - 1855 , - 1286 , - 9 , - 856 , - 995 , - 1370 , - 1037 , - 940 , - 135 , - 1454 , - 177 , - 1024 , - 1163 , - 1538 , - 1205 , - 1108 , - 303 , - 1622 , - 345 , - 1192 , - 1331 , - 1706 , - 1373 , - 1276 , - 471 , - 1790 , - 513 , - 1360 , - 1499 , - 1874 , - 1541 , - 1444 , - 639 , - 70 , - 681 , - 1528 , - 1667 , - 154 , - 1709 , - 1612 , - 807 , - 238 , - 849 , - 1696 , - 1835 , - 322 , - 1877 , - 1780 , - 975 , - 406 , - 1017 , - 1864 , - 115 , - 490 , - 157 , - 60 , - 1143 , - 574 , - 1185 , - 144 , - 283 , - 658 , - 325 , - 228 , - 1311 , - 742 , - 1353 , - 312 , - 451 , - 826 , - 493 , - 396 , - 1479 , - 910 , - 1521 , - 480 , - 619 , - 994 , - 661 , - 564 , - 1647 , - 1078 , - 1689 , - 648 , - 787 , - 1162 , - 829 , - 732 , - 1815 , - 1246 , - 1857 , - 816 , - 955 , - 1330 , - 997 , - 900 , - 95 , - 1414 , - 137 , - 984 , - 1123 , - 1498 , - 1165 , - 1068 , - 263 , - 1582 , - 305 , - 1152 , - 1291 , - 1666 , - 1333 , - 1236 , - 431 , - 1750 , - 473 , - 1320 , - 1459 , - 1834 , - 1501 , - 1404 , - 599 , - 30 , - 641 , - 1488 , - 1627 , - 114 , - 1669 , - 1572 , - 767 , - 198 , - 809 , - 1656 , - 1795 , - 282 , - 1837 , - 1740 , - 935 , - 366 , - 977 , - 1824 , - 75 , - 450 , - 117 , - 20 , - 1103 , - 534 , - 1145 , - 104 , - 243 , - 618 , - 285 , - 188 , - 1271 , - 702 , - 1313 , - 272 , - 411 , - 786 , - 453 , - 356 , - 1439 , - 870 , - 1481 , - 440 , - 579 , - 954 , - 621 , - 524 , - 1607 , - 1038 , - 1649 , - 608 , - 747 , - 1122 , - 789 , - 692 , - 1775 , - 1206 , - 1817 , - 776 , - 915 , - 1290 , - 957 , - 860 , - 55 , - 1374 , - 97 , - 944 , - 1083 , - 1458 , - 1125 , - 1028 , - 223 , - 1542 , - 265 , - 1112 , - 1251 , - 1626 , - 1293 , - 1196 , - 391 , - 1710 , - 433 , - 1280 , - 1419 , - 1794 , - 1461 , - 1364 , - 559 , - 1878 , - 601 , - 1448 , - 1587 , - 74 , - 1629 , - 1532 , - 727 , - 158 , - 769 , - 1616 , - 1755 , - 242 , - 1797 , - 1700 , - 895 , - 326 , - 937 , - 1784 , - 35 , - 410 , - 77 , - 1868 , - 1063 , - 494 , - 1105 , - 64 , - 203 , - 578 , - 245 , - 148 , - 1231 , - 662 , - 1273 , - 232 , - 371 , - 746 , - 413 , - 316 , - 1399 , - 830 , - 1441 , - 400 , - 539 , - 914 , - 581 , - 484 , - 1567 , - 998 , - 1609 , - 568 , - 707 , - 1082 , - 749 , - 652 , - 1735 , - 1166 , - 1777 , - 736 , - 875 , - 1250 , - 917 , - 820 , - 15 , - 1334 , - 57 , - 904 , - 1043 , - 1418 , - 1085 , - 988 , - 183 , - 1502 , - 225 , - 1072 , - 1211 , - 1586 , - 1253 , - 1156 , - 351 , - 1670 , - 393 , - 1240 , - 1379 , - 1754 , - 1421 , - 1324 , - 519 , - 1838 , - 561 , - 1408 , - 1547 , - 34 , - 1589 , - 1492 , - 687 , - 118 , - 729 , - 1576 , - 1715 , - 202 , - 1757 , - 1660 , - 855 , - 286 , - 897 , - 1744 , - 1883 , - 370 , - 37 , - 1828 , - 1023 , - 454 , - 1065 , - 24 , - 163 , - 538 , - 205 , - 108 , - 1191 , - 622 , - 1233 , - 192 , - 331 , - 706 , - 373 , - 276 , - 1359 , - 790 , - 1401 , - 360 , - 499 , - 874 , - 541 , - 444 , - 1527 , - 958 , - 1569 , - 528 , - 667 , - 1042 , - 709 , - 612 , - 1695 , - 1126 , - 1737 , - 696 , - 835 , - 1210 , - 877 , - 780 , - 1863 , - 1294 , - 17 , - 864 , - 1003 , - 1378 , - 1045 , - 948 , - 143 , - 1462 , - 185 , - 1032 , - 1171 , - 1546 , - 1213 , - 1116 , - 311 , - 1630 , - 353 , - 1200 , - 1339 , - 1714 , - 1381 , - 1284 , - 479 , - 1798 , - 521 , - 1368 , - 1507 , - 1882 , - 1549 , - 1452 , - 647 , - 78 , - 689 , - 1536 , - 1675 , - 162 , - 1717 , - 1620 , - 815 , - 246 , - 857 , - 1704 , - 1843 , - 330 , - 1885 , - 1788 , - 983 , - 414 , - 1025 , - 1872 , - 123 , - 498 , - 165 , - 68 , - 1151 , - 582 , - 1193 , - 152 , - 291 , - 666 , - 333 , - 236 , - 1319 , - 750 , - 1361 , - 320 , - 459 , - 834 , - 501 , - 404 , - 1487 , - 918 , - 1529 , - 488 , - 627 , - 1002 , - 669 , - 572 , - 1655 , - 1086 , - 1697 , - 656 , - 795 , - 1170 , - 837 , - 740 , - 1823 , - 1254 , - 1865 , - 824 , - 963 , - 1338 , - 1005 , - 908 , - 103 , - 1422 , - 145 , - 992 , - 1131 , - 1506 , - 1173 , - 1076 , - 271 , - 1590 , - 313 , - 1160 , - 1299 , - 1674 , - 1341 , - 1244 , - 439 , - 1758 , - 481 , - 1328 , - 1467 , - 1842 , - 1509 , - 1412 , - 607 , - 38 , - 649 , - 1496 , - 1635 , - 122 , - 1677 , - 1580 , - 775 , - 206 , - 817 , - 1664 , - 1803 , - 290 , - 1845 , - 1748 , - 943 , - 374 , - 985 , - 1832 , - 83 , - 458 , - 125 , - 28 , - 1111 , - 542 , - 1153 , - 112 , - 251 , - 626 , - 293 , - 196 , - 1279 , - 710 , - 1321 , - 280 , - 419 , - 794 , - 461 , - 364 , - 1447 , - 878 , - 1489 , - 448 , - 587 , - 962 , - 629 , - 532 , - 1615 , - 1046 , - 1657 , - 616 , - 755 , - 1130 , - 797 , - 700 , - 1783 , - 1214 , - 1825 , - 784 , - 923 , - 1298 , - 965 , - 868 , - 63 , - 1382 , - 105 , - 952 , - 1091 , - 1466 , - 1133 , - 1036 , - 231 , - 1550 , - 273 , - 1120 , - 1259 , - 1634 , - 1301 , - 1204 , - 399 , - 1718 , - 441 , - 1288 , - 1427 , - 1802 , - 1469 , - 1372 , - 567 , - 1886 , - 609 , - 1456 , - 1595 , - 82 , - 1637 , - 1540 , - 735 , - 166 , - 777 , - 1624 , - 1763 , - 250 , - 1805 , - 1708 , - 903 , - 334 , - 945 , - 1792 , - 43 , - 418 , - 85 , - 1876 , - 1071 , - 502 , - 1113 , - 72 , - 211 , - 586 , - 253 , - 156 , - 1239 , - 670 , - 1281 , - 240 , - 379 , - 754 , - 421 , - 324 , - 1407 , - 838 , - 1449 , - 408 , - 547 , - 922 , - 589 , - 492 , - 1575 , - 1006 , - 1617 , - 576 , - 715 , - 1090 , - 757 , - 660 , - 1743 , - 1174 , - 1785 , - 744 , - 883 , - 1258 , - 925 , - 828 , - 23 , - 1342 , - 65 , - 912 , - 1051 , - 1426 , - 1093 , - 996 , - 191 , - 1510 , - 233 , - 1080 , - 1219 , - 1594 , - 1261 , - 1164 , - 359 , - 1678 , - 401 , - 1248 , - 1387 , - 1762 , - 1429 , - 1332 , - 527 , - 1846 , - 569 , - 1416 , - 1555 , - 42 , - 1597 , - 1500 , - 695 , - 126 , - 737 , - 1584 , - 1723 , - 210 , - 1765 , - 1668 , - 863 , - 294 , - 905 , - 1752 , - 3 , - 378 , - 45 , - 1836 , - 1031 , - 462 , - 1073 , - 32 , - 171 , - 546 , - 213 , - 116 , - 1199 , - 630 , - 1241 , - 200 , - 339 , - 714 , - 381 , - 284 , - 1367 , - 798 , - 1409 , - 368 , - 507 , - 882 , - 549 , - 452 , - 1535 , - 966 , - 1577 , - 536 , - 675 , - 1050 , - 717 , - 620 , - 1703 , - 1134 , - 1745 , - 704 , - 843 , - 1218 , - 885 , - 788 , - 1871 , - 1302 , - 25 , - 872 , - 1011 , - 1386 , - 1053 , - 956 , - 151 , - 1470 , - 193 , - 1040 , - 1179 , - 1554 , - 1221 , - 1124 , - 319 , - 1638 , - 361 , - 1208 , - 1347 , - 1722 , - 1389 , - 1292 , - 487 , - 1806 , - 529 , - 1376 , - 1515 , - 2 , - 1557 , - 1460 , - 655 , - 86 , - 697 , - 1544 , - 1683 , - 170 , - 1725 , - 1628 , - 823 , - 254 , - 865 , - 1712 , - 1851 , - 338 , - 5 , - 1796 , - 991 , - 422 , - 1033 , - 1880 , - 131 , - 506 , - 173 , - 76 , - 1159 , - 590 , - 1201 , - 160 , - 299 , - 674 , - 341 , - 244 , - 1327 , - 758 , - 1369 , - 328 , - 467 , - 842 , - 509 , - 412 , - 1495 , - 926 , - 1537 , - 496 , - 635 , - 1010 , - 677 , - 580 , - 1663 , - 1094 , - 1705 , - 664 , - 803 , - 1178 , - 845 , - 748 , - 1831 , - 1262 , - 1873 , - 832 , - 971 , - 1346 , - 1013 , - 916 , - 111 , - 1430 , - 153 , - 1000 , - 1139 , - 1514 , - 1181 , - 1084 , - 279 , - 1598 , - 321 , - 1168 , - 1307 , - 1682 , - 1349 , - 1252 , - 447 , - 1766 , - 489 , - 1336 , - 1475 , - 1850 , - 1517 , - 1420 , - 615 , - 46 , - 657 , - 1504 , - 1643 , - 130 , - 1685 , - 1588 , - 783 , - 214 , - 825 , - 1672 , - 1811 , - 298 , - 1853 , - 1756 , - 951 , - 382 , - 993 , - 1840 , - 91 , - 466 , - 133 , - 36 , - 1119 , - 550 , - 1161 , - 120 , - 259 , - 634 , - 301 , - 204 , - 1287 , - 718 , - 1329 , - 288 , - 427 , - 802 , - 469 , - 372 , - 1455 , - 886 , - 1497 , - 456 , - 595 , - 970 , - 637 , - 540 , - 1623 , - 1054 , - 1665 , - 624 , - 763 , - 1138 , - 805 , - 708 , - 1791 , - 1222 , - 1833 , - 792 , - 931 , - 1306 , - 973 , - 876 , - 71 , - 1390 , - 113 , - 960 , - 1099 , - 1474 , - 1141 , - 1044 , - 239 , - 1558 , - 281 , - 1128 , - 1267 , - 1642 , - 1309 , - 1212 , - 407 , - 1726 , - 449 , - 1296 , - 1435 , - 1810 , - 1477 , - 1380 , - 575 , - 6 , - 617 , - 1464 , - 1603 , - 90 , - 1645 , - 1548 , - 743 , - 174 , - 785 , - 1632 , - 1771 , - 258 , - 1813 , - 1716 , - 911 , - 342 , - 953 , - 1800 , - 51 , - 426 , - 93 , - 1884 , - 1079 , - 510 , - 1121 , - 80 , - 219 , - 594 , - 261 , - 164 , - 1247 , - 678 , - 1289 , - 248 , - 387 , - 762 , - 429 , - 332 , - 1415 , - 846 , - 1457 , - 416 , - 555 , - 930 , - 597 , - 500 , - 1583 , - 1014 , - 1625 , - 584 , - 723 , - 1098 , - 765 , - 668 , - 1751 , - 1182 , - 1793 , - 752 , - 891 , - 1266 , - 933 , - 836 , - 31 , - 1350 , - 73 , - 920 , - 1059 , - 1434 , - 1101 , - 1004 , - 199 , - 1518 , - 241 , - 1088 , - 1227 , - 1602 , - 1269 , - 1172 , - 367 , - 1686 , - 409 , - 1256 , - 1395 , - 1770 , - 1437 , - 1340 , - 535 , - 1854 , - 577 , - 1424 , - 1563 , - 50 , - 1605 , - 1508 , - 703 , - 134 , - 745 , - 1592 , - 1731 , - 218 , - 1773 , - 1676 , - 871 , - 302 , - 913 , - 1760 , - 11 , - 386 , - 53 , - 1844 , - 1039 , - 470 , - 1081 , - 40 , - 179 , - 554 , - 221 , - 124 , - 1207 , - 638 , - 1249 , - 208 , - 347 , - 722 , - 389 , - 292 , - 1375 , - 806 , - 1417 , - 376 , - 515 , - 890 , - 557 , - 460 , - 1543 , - 974 , - 1585 , - 544 , - 683 , - 1058 , - 725 , - 628 , - 1711 , - 1142 , - 1753 , - 712 , - 851 , - 1226 , - 893 , - 796 , - 1879 , - 1310 , - 33 , - 880 , - 1019 , - 1394 , - 1061 , - 964 , - 159 , - 1478 , - 201 , - 1048 , - 1187 , - 1562 , - 1229 , - 1132 , - 327 , - 1646 , - 369 , - 1216 , - 1355 , - 1730 , - 1397 , - 1300 , - 495 , - 1814 , - 537 , - 1384 , - 1523 , - 10 , - 1565 , - 1468 , - 663 , - 94 , - 705 , - 1552 , - 1691 , - 178 , - 1733 , - 1636 , - 831 , - 262 , - 873 , - 1720 , - 1859 , - 346 , - 13 , - 1804 , - 999 , - 430 , - 1041 , - 0 , - 1111 , - 542 , - 213 , - 124 , - 275 , - 666 , - 1297 , - 248 , - 1359 , - 790 , - 461 , - 372 , - 523 , - 914 , - 1545 , - 496 , - 1607 , - 1038 , - 709 , - 620 , - 771 , - 1162 , - 1793 , - 744 , - 1855 , - 1286 , - 957 , - 868 , - 1019 , - 1410 , - 121 , - 992 , - 183 , - 1534 , - 1205 , - 1116 , - 1267 , - 1658 , - 369 , - 1240 , - 431 , - 1782 , - 1453 , - 1364 , - 1515 , - 1906 , - 617 , - 1488 , - 679 , - 110 , - 1701 , - 1612 , - 1763 , - 234 , - 865 , - 1736 , - 927 , - 358 , - 29 , - 1860 , - 91 , - 482 , - 1113 , - 64 , - 1175 , - 606 , - 277 , - 188 , - 339 , - 730 , - 1361 , - 312 , - 1423 , - 854 , - 525 , - 436 , - 587 , - 978 , - 1609 , - 560 , - 1671 , - 1102 , - 773 , - 684 , - 835 , - 1226 , - 1857 , - 808 , - 1919 , - 1350 , - 1021 , - 932 , - 1083 , - 1474 , - 185 , - 1056 , - 247 , - 1598 , - 1269 , - 1180 , - 1331 , - 1722 , - 433 , - 1304 , - 495 , - 1846 , - 1517 , - 1428 , - 1579 , - 50 , - 681 , - 1552 , - 743 , - 174 , - 1765 , - 1676 , - 1827 , - 298 , - 929 , - 1800 , - 991 , - 422 , - 93 , - 4 , - 155 , - 546 , - 1177 , - 128 , - 1239 , - 670 , - 341 , - 252 , - 403 , - 794 , - 1425 , - 376 , - 1487 , - 918 , - 589 , - 500 , - 651 , - 1042 , - 1673 , - 624 , - 1735 , - 1166 , - 837 , - 748 , - 899 , - 1290 , - 1 , - 872 , - 63 , - 1414 , - 1085 , - 996 , - 1147 , - 1538 , - 249 , - 1120 , - 311 , - 1662 , - 1333 , - 1244 , - 1395 , - 1786 , - 497 , - 1368 , - 559 , - 1910 , - 1581 , - 1492 , - 1643 , - 114 , - 745 , - 1616 , - 807 , - 238 , - 1829 , - 1740 , - 1891 , - 362 , - 993 , - 1864 , - 1055 , - 486 , - 157 , - 68 , - 219 , - 610 , - 1241 , - 192 , - 1303 , - 734 , - 405 , - 316 , - 467 , - 858 , - 1489 , - 440 , - 1551 , - 982 , - 653 , - 564 , - 715 , - 1106 , - 1737 , - 688 , - 1799 , - 1230 , - 901 , - 812 , - 963 , - 1354 , - 65 , - 936 , - 127 , - 1478 , - 1149 , - 1060 , - 1211 , - 1602 , - 313 , - 1184 , - 375 , - 1726 , - 1397 , - 1308 , - 1459 , - 1850 , - 561 , - 1432 , - 623 , - 54 , - 1645 , - 1556 , - 1707 , - 178 , - 809 , - 1680 , - 871 , - 302 , - 1893 , - 1804 , - 35 , - 426 , - 1057 , - 8 , - 1119 , - 550 , - 221 , - 132 , - 283 , - 674 , - 1305 , - 256 , - 1367 , - 798 , - 469 , - 380 , - 531 , - 922 , - 1553 , - 504 , - 1615 , - 1046 , - 717 , - 628 , - 779 , - 1170 , - 1801 , - 752 , - 1863 , - 1294 , - 965 , - 876 , - 1027 , - 1418 , - 129 , - 1000 , - 191 , - 1542 , - 1213 , - 1124 , - 1275 , - 1666 , - 377 , - 1248 , - 439 , - 1790 , - 1461 , - 1372 , - 1523 , - 1914 , - 625 , - 1496 , - 687 , - 118 , - 1709 , - 1620 , - 1771 , - 242 , - 873 , - 1744 , - 935 , - 366 , - 37 , - 1868 , - 99 , - 490 , - 1121 , - 72 , - 1183 , - 614 , - 285 , - 196 , - 347 , - 738 , - 1369 , - 320 , - 1431 , - 862 , - 533 , - 444 , - 595 , - 986 , - 1617 , - 568 , - 1679 , - 1110 , - 781 , - 692 , - 843 , - 1234 , - 1865 , - 816 , - 7 , - 1358 , - 1029 , - 940 , - 1091 , - 1482 , - 193 , - 1064 , - 255 , - 1606 , - 1277 , - 1188 , - 1339 , - 1730 , - 441 , - 1312 , - 503 , - 1854 , - 1525 , - 1436 , - 1587 , - 58 , - 689 , - 1560 , - 751 , - 182 , - 1773 , - 1684 , - 1835 , - 306 , - 937 , - 1808 , - 999 , - 430 , - 101 , - 12 , - 163 , - 554 , - 1185 , - 136 , - 1247 , - 678 , - 349 , - 260 , - 411 , - 802 , - 1433 , - 384 , - 1495 , - 926 , - 597 , - 508 , - 659 , - 1050 , - 1681 , - 632 , - 1743 , - 1174 , - 845 , - 756 , - 907 , - 1298 , - 9 , - 880 , - 71 , - 1422 , - 1093 , - 1004 , - 1155 , - 1546 , - 257 , - 1128 , - 319 , - 1670 , - 1341 , - 1252 , - 1403 , - 1794 , - 505 , - 1376 , - 567 , - 1918 , - 1589 , - 1500 , - 1651 , - 122 , - 753 , - 1624 , - 815 , - 246 , - 1837 , - 1748 , - 1899 , - 370 , - 1001 , - 1872 , - 1063 , - 494 , - 165 , - 76 , - 227 , - 618 , - 1249 , - 200 , - 1311 , - 742 , - 413 , - 324 , - 475 , - 866 , - 1497 , - 448 , - 1559 , - 990 , - 661 , - 572 , - 723 , - 1114 , - 1745 , - 696 , - 1807 , - 1238 , - 909 , - 820 , - 971 , - 1362 , - 73 , - 944 , - 135 , - 1486 , - 1157 , - 1068 , - 1219 , - 1610 , - 321 , - 1192 , - 383 , - 1734 , - 1405 , - 1316 , - 1467 , - 1858 , - 569 , - 1440 , - 631 , - 62 , - 1653 , - 1564 , - 1715 , - 186 , - 817 , - 1688 , - 879 , - 310 , - 1901 , - 1812 , - 43 , - 434 , - 1065 , - 16 , - 1127 , - 558 , - 229 , - 140 , - 291 , - 682 , - 1313 , - 264 , - 1375 , - 806 , - 477 , - 388 , - 539 , - 930 , - 1561 , - 512 , - 1623 , - 1054 , - 725 , - 636 , - 787 , - 1178 , - 1809 , - 760 , - 1871 , - 1302 , - 973 , - 884 , - 1035 , - 1426 , - 137 , - 1008 , - 199 , - 1550 , - 1221 , - 1132 , - 1283 , - 1674 , - 385 , - 1256 , - 447 , - 1798 , - 1469 , - 1380 , - 1531 , - 2 , - 633 , - 1504 , - 695 , - 126 , - 1717 , - 1628 , - 1779 , - 250 , - 881 , - 1752 , - 943 , - 374 , - 45 , - 1876 , - 107 , - 498 , - 1129 , - 80 , - 1191 , - 622 , - 293 , - 204 , - 355 , - 746 , - 1377 , - 328 , - 1439 , - 870 , - 541 , - 452 , - 603 , - 994 , - 1625 , - 576 , - 1687 , - 1118 , - 789 , - 700 , - 851 , - 1242 , - 1873 , - 824 , - 15 , - 1366 , - 1037 , - 948 , - 1099 , - 1490 , - 201 , - 1072 , - 263 , - 1614 , - 1285 , - 1196 , - 1347 , - 1738 , - 449 , - 1320 , - 511 , - 1862 , - 1533 , - 1444 , - 1595 , - 66 , - 697 , - 1568 , - 759 , - 190 , - 1781 , - 1692 , - 1843 , - 314 , - 945 , - 1816 , - 1007 , - 438 , - 109 , - 20 , - 171 , - 562 , - 1193 , - 144 , - 1255 , - 686 , - 357 , - 268 , - 419 , - 810 , - 1441 , - 392 , - 1503 , - 934 , - 605 , - 516 , - 667 , - 1058 , - 1689 , - 640 , - 1751 , - 1182 , - 853 , - 764 , - 915 , - 1306 , - 17 , - 888 , - 79 , - 1430 , - 1101 , - 1012 , - 1163 , - 1554 , - 265 , - 1136 , - 327 , - 1678 , - 1349 , - 1260 , - 1411 , - 1802 , - 513 , - 1384 , - 575 , - 6 , - 1597 , - 1508 , - 1659 , - 130 , - 761 , - 1632 , - 823 , - 254 , - 1845 , - 1756 , - 1907 , - 378 , - 1009 , - 1880 , - 1071 , - 502 , - 173 , - 84 , - 235 , - 626 , - 1257 , - 208 , - 1319 , - 750 , - 421 , - 332 , - 483 , - 874 , - 1505 , - 456 , - 1567 , - 998 , - 669 , - 580 , - 731 , - 1122 , - 1753 , - 704 , - 1815 , - 1246 , - 917 , - 828 , - 979 , - 1370 , - 81 , - 952 , - 143 , - 1494 , - 1165 , - 1076 , - 1227 , - 1618 , - 329 , - 1200 , - 391 , - 1742 , - 1413 , - 1324 , - 1475 , - 1866 , - 577 , - 1448 , - 639 , - 70 , - 1661 , - 1572 , - 1723 , - 194 , - 825 , - 1696 , - 887 , - 318 , - 1909 , - 1820 , - 51 , - 442 , - 1073 , - 24 , - 1135 , - 566 , - 237 , - 148 , - 299 , - 690 , - 1321 , - 272 , - 1383 , - 814 , - 485 , - 396 , - 547 , - 938 , - 1569 , - 520 , - 1631 , - 1062 , - 733 , - 644 , - 795 , - 1186 , - 1817 , - 768 , - 1879 , - 1310 , - 981 , - 892 , - 1043 , - 1434 , - 145 , - 1016 , - 207 , - 1558 , - 1229 , - 1140 , - 1291 , - 1682 , - 393 , - 1264 , - 455 , - 1806 , - 1477 , - 1388 , - 1539 , - 10 , - 641 , - 1512 , - 703 , - 134 , - 1725 , - 1636 , - 1787 , - 258 , - 889 , - 1760 , - 951 , - 382 , - 53 , - 1884 , - 115 , - 506 , - 1137 , - 88 , - 1199 , - 630 , - 301 , - 212 , - 363 , - 754 , - 1385 , - 336 , - 1447 , - 878 , - 549 , - 460 , - 611 , - 1002 , - 1633 , - 584 , - 1695 , - 1126 , - 797 , - 708 , - 859 , - 1250 , - 1881 , - 832 , - 23 , - 1374 , - 1045 , - 956 , - 1107 , - 1498 , - 209 , - 1080 , - 271 , - 1622 , - 1293 , - 1204 , - 1355 , - 1746 , - 457 , - 1328 , - 519 , - 1870 , - 1541 , - 1452 , - 1603 , - 74 , - 705 , - 1576 , - 767 , - 198 , - 1789 , - 1700 , - 1851 , - 322 , - 953 , - 1824 , - 1015 , - 446 , - 117 , - 28 , - 179 , - 570 , - 1201 , - 152 , - 1263 , - 694 , - 365 , - 276 , - 427 , - 818 , - 1449 , - 400 , - 1511 , - 942 , - 613 , - 524 , - 675 , - 1066 , - 1697 , - 648 , - 1759 , - 1190 , - 861 , - 772 , - 923 , - 1314 , - 25 , - 896 , - 87 , - 1438 , - 1109 , - 1020 , - 1171 , - 1562 , - 273 , - 1144 , - 335 , - 1686 , - 1357 , - 1268 , - 1419 , - 1810 , - 521 , - 1392 , - 583 , - 14 , - 1605 , - 1516 , - 1667 , - 138 , - 769 , - 1640 , - 831 , - 262 , - 1853 , - 1764 , - 1915 , - 386 , - 1017 , - 1888 , - 1079 , - 510 , - 181 , - 92 , - 243 , - 634 , - 1265 , - 216 , - 1327 , - 758 , - 429 , - 340 , - 491 , - 882 , - 1513 , - 464 , - 1575 , - 1006 , - 677 , - 588 , - 739 , - 1130 , - 1761 , - 712 , - 1823 , - 1254 , - 925 , - 836 , - 987 , - 1378 , - 89 , - 960 , - 151 , - 1502 , - 1173 , - 1084 , - 1235 , - 1626 , - 337 , - 1208 , - 399 , - 1750 , - 1421 , - 1332 , - 1483 , - 1874 , - 585 , - 1456 , - 647 , - 78 , - 1669 , - 1580 , - 1731 , - 202 , - 833 , - 1704 , - 895 , - 326 , - 1917 , - 1828 , - 59 , - 450 , - 1081 , - 32 , - 1143 , - 574 , - 245 , - 156 , - 307 , - 698 , - 1329 , - 280 , - 1391 , - 822 , - 493 , - 404 , - 555 , - 946 , - 1577 , - 528 , - 1639 , - 1070 , - 741 , - 652 , - 803 , - 1194 , - 1825 , - 776 , - 1887 , - 1318 , - 989 , - 900 , - 1051 , - 1442 , - 153 , - 1024 , - 215 , - 1566 , - 1237 , - 1148 , - 1299 , - 1690 , - 401 , - 1272 , - 463 , - 1814 , - 1485 , - 1396 , - 1547 , - 18 , - 649 , - 1520 , - 711 , - 142 , - 1733 , - 1644 , - 1795 , - 266 , - 897 , - 1768 , - 959 , - 390 , - 61 , - 1892 , - 123 , - 514 , - 1145 , - 96 , - 1207 , - 638 , - 309 , - 220 , - 371 , - 762 , - 1393 , - 344 , - 1455 , - 886 , - 557 , - 468 , - 619 , - 1010 , - 1641 , - 592 , - 1703 , - 1134 , - 805 , - 716 , - 867 , - 1258 , - 1889 , - 840 , - 31 , - 1382 , - 1053 , - 964 , - 1115 , - 1506 , - 217 , - 1088 , - 279 , - 1630 , - 1301 , - 1212 , - 1363 , - 1754 , - 465 , - 1336 , - 527 , - 1878 , - 1549 , - 1460 , - 1611 , - 82 , - 713 , - 1584 , - 775 , - 206 , - 1797 , - 1708 , - 1859 , - 330 , - 961 , - 1832 , - 1023 , - 454 , - 125 , - 36 , - 187 , - 578 , - 1209 , - 160 , - 1271 , - 702 , - 373 , - 284 , - 435 , - 826 , - 1457 , - 408 , - 1519 , - 950 , - 621 , - 532 , - 683 , - 1074 , - 1705 , - 656 , - 1767 , - 1198 , - 869 , - 780 , - 931 , - 1322 , - 33 , - 904 , - 95 , - 1446 , - 1117 , - 1028 , - 1179 , - 1570 , - 281 , - 1152 , - 343 , - 1694 , - 1365 , - 1276 , - 1427 , - 1818 , - 529 , - 1400 , - 591 , - 22 , - 1613 , - 1524 , - 1675 , - 146 , - 777 , - 1648 , - 839 , - 270 , - 1861 , - 1772 , - 3 , - 394 , - 1025 , - 1896 , - 1087 , - 518 , - 189 , - 100 , - 251 , - 642 , - 1273 , - 224 , - 1335 , - 766 , - 437 , - 348 , - 499 , - 890 , - 1521 , - 472 , - 1583 , - 1014 , - 685 , - 596 , - 747 , - 1138 , - 1769 , - 720 , - 1831 , - 1262 , - 933 , - 844 , - 995 , - 1386 , - 97 , - 968 , - 159 , - 1510 , - 1181 , - 1092 , - 1243 , - 1634 , - 345 , - 1216 , - 407 , - 1758 , - 1429 , - 1340 , - 1491 , - 1882 , - 593 , - 1464 , - 655 , - 86 , - 1677 , - 1588 , - 1739 , - 210 , - 841 , - 1712 , - 903 , - 334 , - 5 , - 1836 , - 67 , - 458 , - 1089 , - 40 , - 1151 , - 582 , - 253 , - 164 , - 315 , - 706 , - 1337 , - 288 , - 1399 , - 830 , - 501 , - 412 , - 563 , - 954 , - 1585 , - 536 , - 1647 , - 1078 , - 749 , - 660 , - 811 , - 1202 , - 1833 , - 784 , - 1895 , - 1326 , - 997 , - 908 , - 1059 , - 1450 , - 161 , - 1032 , - 223 , - 1574 , - 1245 , - 1156 , - 1307 , - 1698 , - 409 , - 1280 , - 471 , - 1822 , - 1493 , - 1404 , - 1555 , - 26 , - 657 , - 1528 , - 719 , - 150 , - 1741 , - 1652 , - 1803 , - 274 , - 905 , - 1776 , - 967 , - 398 , - 69 , - 1900 , - 131 , - 522 , - 1153 , - 104 , - 1215 , - 646 , - 317 , - 228 , - 379 , - 770 , - 1401 , - 352 , - 1463 , - 894 , - 565 , - 476 , - 627 , - 1018 , - 1649 , - 600 , - 1711 , - 1142 , - 813 , - 724 , - 875 , - 1266 , - 1897 , - 848 , - 39 , - 1390 , - 1061 , - 972 , - 1123 , - 1514 , - 225 , - 1096 , - 287 , - 1638 , - 1309 , - 1220 , - 1371 , - 1762 , - 473 , - 1344 , - 535 , - 1886 , - 1557 , - 1468 , - 1619 , - 90 , - 721 , - 1592 , - 783 , - 214 , - 1805 , - 1716 , - 1867 , - 338 , - 969 , - 1840 , - 1031 , - 462 , - 133 , - 44 , - 195 , - 586 , - 1217 , - 168 , - 1279 , - 710 , - 381 , - 292 , - 443 , - 834 , - 1465 , - 416 , - 1527 , - 958 , - 629 , - 540 , - 691 , - 1082 , - 1713 , - 664 , - 1775 , - 1206 , - 877 , - 788 , - 939 , - 1330 , - 41 , - 912 , - 103 , - 1454 , - 1125 , - 1036 , - 1187 , - 1578 , - 289 , - 1160 , - 351 , - 1702 , - 1373 , - 1284 , - 1435 , - 1826 , - 537 , - 1408 , - 599 , - 30 , - 1621 , - 1532 , - 1683 , - 154 , - 785 , - 1656 , - 847 , - 278 , - 1869 , - 1780 , - 11 , - 402 , - 1033 , - 1904 , - 1095 , - 526 , - 197 , - 108 , - 259 , - 650 , - 1281 , - 232 , - 1343 , - 774 , - 445 , - 356 , - 507 , - 898 , - 1529 , - 480 , - 1591 , - 1022 , - 693 , - 604 , - 755 , - 1146 , - 1777 , - 728 , - 1839 , - 1270 , - 941 , - 852 , - 1003 , - 1394 , - 105 , - 976 , - 167 , - 1518 , - 1189 , - 1100 , - 1251 , - 1642 , - 353 , - 1224 , - 415 , - 1766 , - 1437 , - 1348 , - 1499 , - 1890 , - 601 , - 1472 , - 663 , - 94 , - 1685 , - 1596 , - 1747 , - 218 , - 849 , - 1720 , - 911 , - 342 , - 13 , - 1844 , - 75 , - 466 , - 1097 , - 48 , - 1159 , - 590 , - 261 , - 172 , - 323 , - 714 , - 1345 , - 296 , - 1407 , - 838 , - 509 , - 420 , - 571 , - 962 , - 1593 , - 544 , - 1655 , - 1086 , - 757 , - 668 , - 819 , - 1210 , - 1841 , - 792 , - 1903 , - 1334 , - 1005 , - 916 , - 1067 , - 1458 , - 169 , - 1040 , - 231 , - 1582 , - 1253 , - 1164 , - 1315 , - 1706 , - 417 , - 1288 , - 479 , - 1830 , - 1501 , - 1412 , - 1563 , - 34 , - 665 , - 1536 , - 727 , - 158 , - 1749 , - 1660 , - 1811 , - 282 , - 913 , - 1784 , - 975 , - 406 , - 77 , - 1908 , - 139 , - 530 , - 1161 , - 112 , - 1223 , - 654 , - 325 , - 236 , - 387 , - 778 , - 1409 , - 360 , - 1471 , - 902 , - 573 , - 484 , - 635 , - 1026 , - 1657 , - 608 , - 1719 , - 1150 , - 821 , - 732 , - 883 , - 1274 , - 1905 , - 856 , - 47 , - 1398 , - 1069 , - 980 , - 1131 , - 1522 , - 233 , - 1104 , - 295 , - 1646 , - 1317 , - 1228 , - 1379 , - 1770 , - 481 , - 1352 , - 543 , - 1894 , - 1565 , - 1476 , - 1627 , - 98 , - 729 , - 1600 , - 791 , - 222 , - 1813 , - 1724 , - 1875 , - 346 , - 977 , - 1848 , - 1039 , - 470 , - 141 , - 52 , - 203 , - 594 , - 1225 , - 176 , - 1287 , - 718 , - 389 , - 300 , - 451 , - 842 , - 1473 , - 424 , - 1535 , - 966 , - 637 , - 548 , - 699 , - 1090 , - 1721 , - 672 , - 1783 , - 1214 , - 885 , - 796 , - 947 , - 1338 , - 49 , - 920 , - 111 , - 1462 , - 1133 , - 1044 , - 1195 , - 1586 , - 297 , - 1168 , - 359 , - 1710 , - 1381 , - 1292 , - 1443 , - 1834 , - 545 , - 1416 , - 607 , - 38 , - 1629 , - 1540 , - 1691 , - 162 , - 793 , - 1664 , - 855 , - 286 , - 1877 , - 1788 , - 19 , - 410 , - 1041 , - 1912 , - 1103 , - 534 , - 205 , - 116 , - 267 , - 658 , - 1289 , - 240 , - 1351 , - 782 , - 453 , - 364 , - 515 , - 906 , - 1537 , - 488 , - 1599 , - 1030 , - 701 , - 612 , - 763 , - 1154 , - 1785 , - 736 , - 1847 , - 1278 , - 949 , - 860 , - 1011 , - 1402 , - 113 , - 984 , - 175 , - 1526 , - 1197 , - 1108 , - 1259 , - 1650 , - 361 , - 1232 , - 423 , - 1774 , - 1445 , - 1356 , - 1507 , - 1898 , - 609 , - 1480 , - 671 , - 102 , - 1693 , - 1604 , - 1755 , - 226 , - 857 , - 1728 , - 919 , - 350 , - 21 , - 1852 , - 83 , - 474 , - 1105 , - 56 , - 1167 , - 598 , - 269 , - 180 , - 331 , - 722 , - 1353 , - 304 , - 1415 , - 846 , - 517 , - 428 , - 579 , - 970 , - 1601 , - 552 , - 1663 , - 1094 , - 765 , - 676 , - 827 , - 1218 , - 1849 , - 800 , - 1911 , - 1342 , - 1013 , - 924 , - 1075 , - 1466 , - 177 , - 1048 , - 239 , - 1590 , - 1261 , - 1172 , - 1323 , - 1714 , - 425 , - 1296 , - 487 , - 1838 , - 1509 , - 1420 , - 1571 , - 42 , - 673 , - 1544 , - 735 , - 166 , - 1757 , - 1668 , - 1819 , - 290 , - 921 , - 1792 , - 983 , - 414 , - 85 , - 1916 , - 147 , - 538 , - 1169 , - 120 , - 1231 , - 662 , - 333 , - 244 , - 395 , - 786 , - 1417 , - 368 , - 1479 , - 910 , - 581 , - 492 , - 643 , - 1034 , - 1665 , - 616 , - 1727 , - 1158 , - 829 , - 740 , - 891 , - 1282 , - 1913 , - 864 , - 55 , - 1406 , - 1077 , - 988 , - 1139 , - 1530 , - 241 , - 1112 , - 303 , - 1654 , - 1325 , - 1236 , - 1387 , - 1778 , - 489 , - 1360 , - 551 , - 1902 , - 1573 , - 1484 , - 1635 , - 106 , - 737 , - 1608 , - 799 , - 230 , - 1821 , - 1732 , - 1883 , - 354 , - 985 , - 1856 , - 1047 , - 478 , - 149 , - 60 , - 211 , - 602 , - 1233 , - 184 , - 1295 , - 726 , - 397 , - 308 , - 459 , - 850 , - 1481 , - 432 , - 1543 , - 974 , - 645 , - 556 , - 707 , - 1098 , - 1729 , - 680 , - 1791 , - 1222 , - 893 , - 804 , - 955 , - 1346 , - 57 , - 928 , - 119 , - 1470 , - 1141 , - 1052 , - 1203 , - 1594 , - 305 , - 1176 , - 367 , - 1718 , - 1389 , - 1300 , - 1451 , - 1842 , - 553 , - 1424 , - 615 , - 46 , - 1637 , - 1548 , - 1699 , - 170 , - 801 , - 1672 , - 863 , - 294 , - 1885 , - 1796 , - 27 , - 418 , - 1049 , - 0 , - 701 , - 1646 , - 1859 , - 364 , - 89 , - 58 , - 1247 , - 728 , - 1429 , - 422 , - 635 , - 1092 , - 817 , - 786 , - 23 , - 1456 , - 205 , - 1150 , - 1363 , - 1820 , - 1545 , - 1514 , - 751 , - 232 , - 933 , - 1878 , - 139 , - 596 , - 321 , - 290 , - 1479 , - 960 , - 1661 , - 654 , - 867 , - 1324 , - 1049 , - 1018 , - 255 , - 1688 , - 437 , - 1382 , - 1595 , - 100 , - 1777 , - 1746 , - 983 , - 464 , - 1165 , - 158 , - 371 , - 828 , - 553 , - 522 , - 1711 , - 1192 , - 1893 , - 886 , - 1099 , - 1556 , - 1281 , - 1250 , - 487 , - 1920 , - 669 , - 1614 , - 1827 , - 332 , - 57 , - 26 , - 1215 , - 696 , - 1397 , - 390 , - 603 , - 1060 , - 785 , - 754 , - 1943 , - 1424 , - 173 , - 1118 , - 1331 , - 1788 , - 1513 , - 1482 , - 719 , - 200 , - 901 , - 1846 , - 107 , - 564 , - 289 , - 258 , - 1447 , - 928 , - 1629 , - 622 , - 835 , - 1292 , - 1017 , - 986 , - 223 , - 1656 , - 405 , - 1350 , - 1563 , - 68 , - 1745 , - 1714 , - 951 , - 432 , - 1133 , - 126 , - 339 , - 796 , - 521 , - 490 , - 1679 , - 1160 , - 1861 , - 854 , - 1067 , - 1524 , - 1249 , - 1218 , - 455 , - 1888 , - 637 , - 1582 , - 1795 , - 300 , - 25 , - 1946 , - 1183 , - 664 , - 1365 , - 358 , - 571 , - 1028 , - 753 , - 722 , - 1911 , - 1392 , - 141 , - 1086 , - 1299 , - 1756 , - 1481 , - 1450 , - 687 , - 168 , - 869 , - 1814 , - 75 , - 532 , - 257 , - 226 , - 1415 , - 896 , - 1597 , - 590 , - 803 , - 1260 , - 985 , - 954 , - 191 , - 1624 , - 373 , - 1318 , - 1531 , - 36 , - 1713 , - 1682 , - 919 , - 400 , - 1101 , - 94 , - 307 , - 764 , - 489 , - 458 , - 1647 , - 1128 , - 1829 , - 822 , - 1035 , - 1492 , - 1217 , - 1186 , - 423 , - 1856 , - 605 , - 1550 , - 1763 , - 268 , - 1945 , - 1914 , - 1151 , - 632 , - 1333 , - 326 , - 539 , - 996 , - 721 , - 690 , - 1879 , - 1360 , - 109 , - 1054 , - 1267 , - 1724 , - 1449 , - 1418 , - 655 , - 136 , - 837 , - 1782 , - 43 , - 500 , - 225 , - 194 , - 1383 , - 864 , - 1565 , - 558 , - 771 , - 1228 , - 953 , - 922 , - 159 , - 1592 , - 341 , - 1286 , - 1499 , - 4 , - 1681 , - 1650 , - 887 , - 368 , - 1069 , - 62 , - 275 , - 732 , - 457 , - 426 , - 1615 , - 1096 , - 1797 , - 790 , - 1003 , - 1460 , - 1185 , - 1154 , - 391 , - 1824 , - 573 , - 1518 , - 1731 , - 236 , - 1913 , - 1882 , - 1119 , - 600 , - 1301 , - 294 , - 507 , - 964 , - 689 , - 658 , - 1847 , - 1328 , - 77 , - 1022 , - 1235 , - 1692 , - 1417 , - 1386 , - 623 , - 104 , - 805 , - 1750 , - 11 , - 468 , - 193 , - 162 , - 1351 , - 832 , - 1533 , - 526 , - 739 , - 1196 , - 921 , - 890 , - 127 , - 1560 , - 309 , - 1254 , - 1467 , - 1924 , - 1649 , - 1618 , - 855 , - 336 , - 1037 , - 30 , - 243 , - 700 , - 425 , - 394 , - 1583 , - 1064 , - 1765 , - 758 , - 971 , - 1428 , - 1153 , - 1122 , - 359 , - 1792 , - 541 , - 1486 , - 1699 , - 204 , - 1881 , - 1850 , - 1087 , - 568 , - 1269 , - 262 , - 475 , - 932 , - 657 , - 626 , - 1815 , - 1296 , - 45 , - 990 , - 1203 , - 1660 , - 1385 , - 1354 , - 591 , - 72 , - 773 , - 1718 , - 1931 , - 436 , - 161 , - 130 , - 1319 , - 800 , - 1501 , - 494 , - 707 , - 1164 , - 889 , - 858 , - 95 , - 1528 , - 277 , - 1222 , - 1435 , - 1892 , - 1617 , - 1586 , - 823 , - 304 , - 1005 , - 1950 , - 211 , - 668 , - 393 , - 362 , - 1551 , - 1032 , - 1733 , - 726 , - 939 , - 1396 , - 1121 , - 1090 , - 327 , - 1760 , - 509 , - 1454 , - 1667 , - 172 , - 1849 , - 1818 , - 1055 , - 536 , - 1237 , - 230 , - 443 , - 900 , - 625 , - 594 , - 1783 , - 1264 , - 13 , - 958 , - 1171 , - 1628 , - 1353 , - 1322 , - 559 , - 40 , - 741 , - 1686 , - 1899 , - 404 , - 129 , - 98 , - 1287 , - 768 , - 1469 , - 462 , - 675 , - 1132 , - 857 , - 826 , - 63 , - 1496 , - 245 , - 1190 , - 1403 , - 1860 , - 1585 , - 1554 , - 791 , - 272 , - 973 , - 1918 , - 179 , - 636 , - 361 , - 330 , - 1519 , - 1000 , - 1701 , - 694 , - 907 , - 1364 , - 1089 , - 1058 , - 295 , - 1728 , - 477 , - 1422 , - 1635 , - 140 , - 1817 , - 1786 , - 1023 , - 504 , - 1205 , - 198 , - 411 , - 868 , - 593 , - 562 , - 1751 , - 1232 , - 1933 , - 926 , - 1139 , - 1596 , - 1321 , - 1290 , - 527 , - 8 , - 709 , - 1654 , - 1867 , - 372 , - 97 , - 66 , - 1255 , - 736 , - 1437 , - 430 , - 643 , - 1100 , - 825 , - 794 , - 31 , - 1464 , - 213 , - 1158 , - 1371 , - 1828 , - 1553 , - 1522 , - 759 , - 240 , - 941 , - 1886 , - 147 , - 604 , - 329 , - 298 , - 1487 , - 968 , - 1669 , - 662 , - 875 , - 1332 , - 1057 , - 1026 , - 263 , - 1696 , - 445 , - 1390 , - 1603 , - 108 , - 1785 , - 1754 , - 991 , - 472 , - 1173 , - 166 , - 379 , - 836 , - 561 , - 530 , - 1719 , - 1200 , - 1901 , - 894 , - 1107 , - 1564 , - 1289 , - 1258 , - 495 , - 1928 , - 677 , - 1622 , - 1835 , - 340 , - 65 , - 34 , - 1223 , - 704 , - 1405 , - 398 , - 611 , - 1068 , - 793 , - 762 , - 1951 , - 1432 , - 181 , - 1126 , - 1339 , - 1796 , - 1521 , - 1490 , - 727 , - 208 , - 909 , - 1854 , - 115 , - 572 , - 297 , - 266 , - 1455 , - 936 , - 1637 , - 630 , - 843 , - 1300 , - 1025 , - 994 , - 231 , - 1664 , - 413 , - 1358 , - 1571 , - 76 , - 1753 , - 1722 , - 959 , - 440 , - 1141 , - 134 , - 347 , - 804 , - 529 , - 498 , - 1687 , - 1168 , - 1869 , - 862 , - 1075 , - 1532 , - 1257 , - 1226 , - 463 , - 1896 , - 645 , - 1590 , - 1803 , - 308 , - 33 , - 2 , - 1191 , - 672 , - 1373 , - 366 , - 579 , - 1036 , - 761 , - 730 , - 1919 , - 1400 , - 149 , - 1094 , - 1307 , - 1764 , - 1489 , - 1458 , - 695 , - 176 , - 877 , - 1822 , - 83 , - 540 , - 265 , - 234 , - 1423 , - 904 , - 1605 , - 598 , - 811 , - 1268 , - 993 , - 962 , - 199 , - 1632 , - 381 , - 1326 , - 1539 , - 44 , - 1721 , - 1690 , - 927 , - 408 , - 1109 , - 102 , - 315 , - 772 , - 497 , - 466 , - 1655 , - 1136 , - 1837 , - 830 , - 1043 , - 1500 , - 1225 , - 1194 , - 431 , - 1864 , - 613 , - 1558 , - 1771 , - 276 , - 1 , - 1922 , - 1159 , - 640 , - 1341 , - 334 , - 547 , - 1004 , - 729 , - 698 , - 1887 , - 1368 , - 117 , - 1062 , - 1275 , - 1732 , - 1457 , - 1426 , - 663 , - 144 , - 845 , - 1790 , - 51 , - 508 , - 233 , - 202 , - 1391 , - 872 , - 1573 , - 566 , - 779 , - 1236 , - 961 , - 930 , - 167 , - 1600 , - 349 , - 1294 , - 1507 , - 12 , - 1689 , - 1658 , - 895 , - 376 , - 1077 , - 70 , - 283 , - 740 , - 465 , - 434 , - 1623 , - 1104 , - 1805 , - 798 , - 1011 , - 1468 , - 1193 , - 1162 , - 399 , - 1832 , - 581 , - 1526 , - 1739 , - 244 , - 1921 , - 1890 , - 1127 , - 608 , - 1309 , - 302 , - 515 , - 972 , - 697 , - 666 , - 1855 , - 1336 , - 85 , - 1030 , - 1243 , - 1700 , - 1425 , - 1394 , - 631 , - 112 , - 813 , - 1758 , - 19 , - 476 , - 201 , - 170 , - 1359 , - 840 , - 1541 , - 534 , - 747 , - 1204 , - 929 , - 898 , - 135 , - 1568 , - 317 , - 1262 , - 1475 , - 1932 , - 1657 , - 1626 , - 863 , - 344 , - 1045 , - 38 , - 251 , - 708 , - 433 , - 402 , - 1591 , - 1072 , - 1773 , - 766 , - 979 , - 1436 , - 1161 , - 1130 , - 367 , - 1800 , - 549 , - 1494 , - 1707 , - 212 , - 1889 , - 1858 , - 1095 , - 576 , - 1277 , - 270 , - 483 , - 940 , - 665 , - 634 , - 1823 , - 1304 , - 53 , - 998 , - 1211 , - 1668 , - 1393 , - 1362 , - 599 , - 80 , - 781 , - 1726 , - 1939 , - 444 , - 169 , - 138 , - 1327 , - 808 , - 1509 , - 502 , - 715 , - 1172 , - 897 , - 866 , - 103 , - 1536 , - 285 , - 1230 , - 1443 , - 1900 , - 1625 , - 1594 , - 831 , - 312 , - 1013 , - 6 , - 219 , - 676 , - 401 , - 370 , - 1559 , - 1040 , - 1741 , - 734 , - 947 , - 1404 , - 1129 , - 1098 , - 335 , - 1768 , - 517 , - 1462 , - 1675 , - 180 , - 1857 , - 1826 , - 1063 , - 544 , - 1245 , - 238 , - 451 , - 908 , - 633 , - 602 , - 1791 , - 1272 , - 21 , - 966 , - 1179 , - 1636 , - 1361 , - 1330 , - 567 , - 48 , - 749 , - 1694 , - 1907 , - 412 , - 137 , - 106 , - 1295 , - 776 , - 1477 , - 470 , - 683 , - 1140 , - 865 , - 834 , - 71 , - 1504 , - 253 , - 1198 , - 1411 , - 1868 , - 1593 , - 1562 , - 799 , - 280 , - 981 , - 1926 , - 187 , - 644 , - 369 , - 338 , - 1527 , - 1008 , - 1709 , - 702 , - 915 , - 1372 , - 1097 , - 1066 , - 303 , - 1736 , - 485 , - 1430 , - 1643 , - 148 , - 1825 , - 1794 , - 1031 , - 512 , - 1213 , - 206 , - 419 , - 876 , - 601 , - 570 , - 1759 , - 1240 , - 1941 , - 934 , - 1147 , - 1604 , - 1329 , - 1298 , - 535 , - 16 , - 717 , - 1662 , - 1875 , - 380 , - 105 , - 74 , - 1263 , - 744 , - 1445 , - 438 , - 651 , - 1108 , - 833 , - 802 , - 39 , - 1472 , - 221 , - 1166 , - 1379 , - 1836 , - 1561 , - 1530 , - 767 , - 248 , - 949 , - 1894 , - 155 , - 612 , - 337 , - 306 , - 1495 , - 976 , - 1677 , - 670 , - 883 , - 1340 , - 1065 , - 1034 , - 271 , - 1704 , - 453 , - 1398 , - 1611 , - 116 , - 1793 , - 1762 , - 999 , - 480 , - 1181 , - 174 , - 387 , - 844 , - 569 , - 538 , - 1727 , - 1208 , - 1909 , - 902 , - 1115 , - 1572 , - 1297 , - 1266 , - 503 , - 1936 , - 685 , - 1630 , - 1843 , - 348 , - 73 , - 42 , - 1231 , - 712 , - 1413 , - 406 , - 619 , - 1076 , - 801 , - 770 , - 7 , - 1440 , - 189 , - 1134 , - 1347 , - 1804 , - 1529 , - 1498 , - 735 , - 216 , - 917 , - 1862 , - 123 , - 580 , - 305 , - 274 , - 1463 , - 944 , - 1645 , - 638 , - 851 , - 1308 , - 1033 , - 1002 , - 239 , - 1672 , - 421 , - 1366 , - 1579 , - 84 , - 1761 , - 1730 , - 967 , - 448 , - 1149 , - 142 , - 355 , - 812 , - 537 , - 506 , - 1695 , - 1176 , - 1877 , - 870 , - 1083 , - 1540 , - 1265 , - 1234 , - 471 , - 1904 , - 653 , - 1598 , - 1811 , - 316 , - 41 , - 10 , - 1199 , - 680 , - 1381 , - 374 , - 587 , - 1044 , - 769 , - 738 , - 1927 , - 1408 , - 157 , - 1102 , - 1315 , - 1772 , - 1497 , - 1466 , - 703 , - 184 , - 885 , - 1830 , - 91 , - 548 , - 273 , - 242 , - 1431 , - 912 , - 1613 , - 606 , - 819 , - 1276 , - 1001 , - 970 , - 207 , - 1640 , - 389 , - 1334 , - 1547 , - 52 , - 1729 , - 1698 , - 935 , - 416 , - 1117 , - 110 , - 323 , - 780 , - 505 , - 474 , - 1663 , - 1144 , - 1845 , - 838 , - 1051 , - 1508 , - 1233 , - 1202 , - 439 , - 1872 , - 621 , - 1566 , - 1779 , - 284 , - 9 , - 1930 , - 1167 , - 648 , - 1349 , - 342 , - 555 , - 1012 , - 737 , - 706 , - 1895 , - 1376 , - 125 , - 1070 , - 1283 , - 1740 , - 1465 , - 1434 , - 671 , - 152 , - 853 , - 1798 , - 59 , - 516 , - 241 , - 210 , - 1399 , - 880 , - 1581 , - 574 , - 787 , - 1244 , - 969 , - 938 , - 175 , - 1608 , - 357 , - 1302 , - 1515 , - 20 , - 1697 , - 1666 , - 903 , - 384 , - 1085 , - 78 , - 291 , - 748 , - 473 , - 442 , - 1631 , - 1112 , - 1813 , - 806 , - 1019 , - 1476 , - 1201 , - 1170 , - 407 , - 1840 , - 589 , - 1534 , - 1747 , - 252 , - 1929 , - 1898 , - 1135 , - 616 , - 1317 , - 310 , - 523 , - 980 , - 705 , - 674 , - 1863 , - 1344 , - 93 , - 1038 , - 1251 , - 1708 , - 1433 , - 1402 , - 639 , - 120 , - 821 , - 1766 , - 27 , - 484 , - 209 , - 178 , - 1367 , - 848 , - 1549 , - 542 , - 755 , - 1212 , - 937 , - 906 , - 143 , - 1576 , - 325 , - 1270 , - 1483 , - 1940 , - 1665 , - 1634 , - 871 , - 352 , - 1053 , - 46 , - 259 , - 716 , - 441 , - 410 , - 1599 , - 1080 , - 1781 , - 774 , - 987 , - 1444 , - 1169 , - 1138 , - 375 , - 1808 , - 557 , - 1502 , - 1715 , - 220 , - 1897 , - 1866 , - 1103 , - 584 , - 1285 , - 278 , - 491 , - 948 , - 673 , - 642 , - 1831 , - 1312 , - 61 , - 1006 , - 1219 , - 1676 , - 1401 , - 1370 , - 607 , - 88 , - 789 , - 1734 , - 1947 , - 452 , - 177 , - 146 , - 1335 , - 816 , - 1517 , - 510 , - 723 , - 1180 , - 905 , - 874 , - 111 , - 1544 , - 293 , - 1238 , - 1451 , - 1908 , - 1633 , - 1602 , - 839 , - 320 , - 1021 , - 14 , - 227 , - 684 , - 409 , - 378 , - 1567 , - 1048 , - 1749 , - 742 , - 955 , - 1412 , - 1137 , - 1106 , - 343 , - 1776 , - 525 , - 1470 , - 1683 , - 188 , - 1865 , - 1834 , - 1071 , - 552 , - 1253 , - 246 , - 459 , - 916 , - 641 , - 610 , - 1799 , - 1280 , - 29 , - 974 , - 1187 , - 1644 , - 1369 , - 1338 , - 575 , - 56 , - 757 , - 1702 , - 1915 , - 420 , - 145 , - 114 , - 1303 , - 784 , - 1485 , - 478 , - 691 , - 1148 , - 873 , - 842 , - 79 , - 1512 , - 261 , - 1206 , - 1419 , - 1876 , - 1601 , - 1570 , - 807 , - 288 , - 989 , - 1934 , - 195 , - 652 , - 377 , - 346 , - 1535 , - 1016 , - 1717 , - 710 , - 923 , - 1380 , - 1105 , - 1074 , - 311 , - 1744 , - 493 , - 1438 , - 1651 , - 156 , - 1833 , - 1802 , - 1039 , - 520 , - 1221 , - 214 , - 427 , - 884 , - 609 , - 578 , - 1767 , - 1248 , - 1949 , - 942 , - 1155 , - 1612 , - 1337 , - 1306 , - 543 , - 24 , - 725 , - 1670 , - 1883 , - 388 , - 113 , - 82 , - 1271 , - 752 , - 1453 , - 446 , - 659 , - 1116 , - 841 , - 810 , - 47 , - 1480 , - 229 , - 1174 , - 1387 , - 1844 , - 1569 , - 1538 , - 775 , - 256 , - 957 , - 1902 , - 163 , - 620 , - 345 , - 314 , - 1503 , - 984 , - 1685 , - 678 , - 891 , - 1348 , - 1073 , - 1042 , - 279 , - 1712 , - 461 , - 1406 , - 1619 , - 124 , - 1801 , - 1770 , - 1007 , - 488 , - 1189 , - 182 , - 395 , - 852 , - 577 , - 546 , - 1735 , - 1216 , - 1917 , - 910 , - 1123 , - 1580 , - 1305 , - 1274 , - 511 , - 1944 , - 693 , - 1638 , - 1851 , - 356 , - 81 , - 50 , - 1239 , - 720 , - 1421 , - 414 , - 627 , - 1084 , - 809 , - 778 , - 15 , - 1448 , - 197 , - 1142 , - 1355 , - 1812 , - 1537 , - 1506 , - 743 , - 224 , - 925 , - 1870 , - 131 , - 588 , - 313 , - 282 , - 1471 , - 952 , - 1653 , - 646 , - 859 , - 1316 , - 1041 , - 1010 , - 247 , - 1680 , - 429 , - 1374 , - 1587 , - 92 , - 1769 , - 1738 , - 975 , - 456 , - 1157 , - 150 , - 363 , - 820 , - 545 , - 514 , - 1703 , - 1184 , - 1885 , - 878 , - 1091 , - 1548 , - 1273 , - 1242 , - 479 , - 1912 , - 661 , - 1606 , - 1819 , - 324 , - 49 , - 18 , - 1207 , - 688 , - 1389 , - 382 , - 595 , - 1052 , - 777 , - 746 , - 1935 , - 1416 , - 165 , - 1110 , - 1323 , - 1780 , - 1505 , - 1474 , - 711 , - 192 , - 893 , - 1838 , - 99 , - 556 , - 281 , - 250 , - 1439 , - 920 , - 1621 , - 614 , - 827 , - 1284 , - 1009 , - 978 , - 215 , - 1648 , - 397 , - 1342 , - 1555 , - 60 , - 1737 , - 1706 , - 943 , - 424 , - 1125 , - 118 , - 331 , - 788 , - 513 , - 482 , - 1671 , - 1152 , - 1853 , - 846 , - 1059 , - 1516 , - 1241 , - 1210 , - 447 , - 1880 , - 629 , - 1574 , - 1787 , - 292 , - 17 , - 1938 , - 1175 , - 656 , - 1357 , - 350 , - 563 , - 1020 , - 745 , - 714 , - 1903 , - 1384 , - 133 , - 1078 , - 1291 , - 1748 , - 1473 , - 1442 , - 679 , - 160 , - 861 , - 1806 , - 67 , - 524 , - 249 , - 218 , - 1407 , - 888 , - 1589 , - 582 , - 795 , - 1252 , - 977 , - 946 , - 183 , - 1616 , - 365 , - 1310 , - 1523 , - 28 , - 1705 , - 1674 , - 911 , - 392 , - 1093 , - 86 , - 299 , - 756 , - 481 , - 450 , - 1639 , - 1120 , - 1821 , - 814 , - 1027 , - 1484 , - 1209 , - 1178 , - 415 , - 1848 , - 597 , - 1542 , - 1755 , - 260 , - 1937 , - 1906 , - 1143 , - 624 , - 1325 , - 318 , - 531 , - 988 , - 713 , - 682 , - 1871 , - 1352 , - 101 , - 1046 , - 1259 , - 1716 , - 1441 , - 1410 , - 647 , - 128 , - 829 , - 1774 , - 35 , - 492 , - 217 , - 186 , - 1375 , - 856 , - 1557 , - 550 , - 763 , - 1220 , - 945 , - 914 , - 151 , - 1584 , - 333 , - 1278 , - 1491 , - 1948 , - 1673 , - 1642 , - 879 , - 360 , - 1061 , - 54 , - 267 , - 724 , - 449 , - 418 , - 1607 , - 1088 , - 1789 , - 782 , - 995 , - 1452 , - 1177 , - 1146 , - 383 , - 1816 , - 565 , - 1510 , - 1723 , - 228 , - 1905 , - 1874 , - 1111 , - 592 , - 1293 , - 286 , - 499 , - 956 , - 681 , - 650 , - 1839 , - 1320 , - 69 , - 1014 , - 1227 , - 1684 , - 1409 , - 1378 , - 615 , - 96 , - 797 , - 1742 , - 3 , - 460 , - 185 , - 154 , - 1343 , - 824 , - 1525 , - 518 , - 731 , - 1188 , - 913 , - 882 , - 119 , - 1552 , - 301 , - 1246 , - 1459 , - 1916 , - 1641 , - 1610 , - 847 , - 328 , - 1029 , - 22 , - 235 , - 692 , - 417 , - 386 , - 1575 , - 1056 , - 1757 , - 750 , - 963 , - 1420 , - 1145 , - 1114 , - 351 , - 1784 , - 533 , - 1478 , - 1691 , - 196 , - 1873 , - 1842 , - 1079 , - 560 , - 1261 , - 254 , - 467 , - 924 , - 649 , - 618 , - 1807 , - 1288 , - 37 , - 982 , - 1195 , - 1652 , - 1377 , - 1346 , - 583 , - 64 , - 765 , - 1710 , - 1923 , - 428 , - 153 , - 122 , - 1311 , - 792 , - 1493 , - 486 , - 699 , - 1156 , - 881 , - 850 , - 87 , - 1520 , - 269 , - 1214 , - 1427 , - 1884 , - 1609 , - 1578 , - 815 , - 296 , - 997 , - 1942 , - 203 , - 660 , - 385 , - 354 , - 1543 , - 1024 , - 1725 , - 718 , - 931 , - 1388 , - 1113 , - 1082 , - 319 , - 1752 , - 501 , - 1446 , - 1659 , - 164 , - 1841 , - 1810 , - 1047 , - 528 , - 1229 , - 222 , - 435 , - 892 , - 617 , - 586 , - 1775 , - 1256 , - 5 , - 950 , - 1163 , - 1620 , - 1345 , - 1314 , - 551 , - 32 , - 733 , - 1678 , - 1891 , - 396 , - 121 , - 90 , - 1279 , - 760 , - 1461 , - 454 , - 667 , - 1124 , - 849 , - 818 , - 55 , - 1488 , - 237 , - 1182 , - 1395 , - 1852 , - 1577 , - 1546 , - 783 , - 264 , - 965 , - 1910 , - 171 , - 628 , - 353 , - 322 , - 1511 , - 992 , - 1693 , - 686 , - 899 , - 1356 , - 1081 , - 1050 , - 287 , - 1720 , - 469 , - 1414 , - 1627 , - 132 , - 1809 , - 1778 , - 1015 , - 496 , - 1197 , - 190 , - 403 , - 860 , - 585 , - 554 , - 1743 , - 1224 , - 1925 , - 918 , - 1131 , - 1588 , - 1313 , - 1282 , - 519 , - 0 , - 1549 , - 866 , - 1919 , - 740 , - 1297 , - 1606 , - 1667 , - 1480 , - 1045 , - 362 , - 1415 , - 236 , - 793 , - 1102 , - 1163 , - 976 , - 541 , - 1842 , - 911 , - 1716 , - 289 , - 598 , - 659 , - 472 , - 37 , - 1338 , - 407 , - 1212 , - 1769 , - 94 , - 155 , - 1952 , - 1517 , - 834 , - 1887 , - 708 , - 1265 , - 1574 , - 1635 , - 1448 , - 1013 , - 330 , - 1383 , - 204 , - 761 , - 1070 , - 1131 , - 944 , - 509 , - 1810 , - 879 , - 1684 , - 257 , - 566 , - 627 , - 440 , - 5 , - 1306 , - 375 , - 1180 , - 1737 , - 62 , - 123 , - 1920 , - 1485 , - 802 , - 1855 , - 676 , - 1233 , - 1542 , - 1603 , - 1416 , - 981 , - 298 , - 1351 , - 172 , - 729 , - 1038 , - 1099 , - 912 , - 477 , - 1778 , - 847 , - 1652 , - 225 , - 534 , - 595 , - 408 , - 1957 , - 1274 , - 343 , - 1148 , - 1705 , - 30 , - 91 , - 1888 , - 1453 , - 770 , - 1823 , - 644 , - 1201 , - 1510 , - 1571 , - 1384 , - 949 , - 266 , - 1319 , - 140 , - 697 , - 1006 , - 1067 , - 880 , - 445 , - 1746 , - 815 , - 1620 , - 193 , - 502 , - 563 , - 376 , - 1925 , - 1242 , - 311 , - 1116 , - 1673 , - 1982 , - 59 , - 1856 , - 1421 , - 738 , - 1791 , - 612 , - 1169 , - 1478 , - 1539 , - 1352 , - 917 , - 234 , - 1287 , - 108 , - 665 , - 974 , - 1035 , - 848 , - 413 , - 1714 , - 783 , - 1588 , - 161 , - 470 , - 531 , - 344 , - 1893 , - 1210 , - 279 , - 1084 , - 1641 , - 1950 , - 27 , - 1824 , - 1389 , - 706 , - 1759 , - 580 , - 1137 , - 1446 , - 1507 , - 1320 , - 885 , - 202 , - 1255 , - 76 , - 633 , - 942 , - 1003 , - 816 , - 381 , - 1682 , - 751 , - 1556 , - 129 , - 438 , - 499 , - 312 , - 1861 , - 1178 , - 247 , - 1052 , - 1609 , - 1918 , - 1979 , - 1792 , - 1357 , - 674 , - 1727 , - 548 , - 1105 , - 1414 , - 1475 , - 1288 , - 853 , - 170 , - 1223 , - 44 , - 601 , - 910 , - 971 , - 784 , - 349 , - 1650 , - 719 , - 1524 , - 97 , - 406 , - 467 , - 280 , - 1829 , - 1146 , - 215 , - 1020 , - 1577 , - 1886 , - 1947 , - 1760 , - 1325 , - 642 , - 1695 , - 516 , - 1073 , - 1382 , - 1443 , - 1256 , - 821 , - 138 , - 1191 , - 12 , - 569 , - 878 , - 939 , - 752 , - 317 , - 1618 , - 687 , - 1492 , - 65 , - 374 , - 435 , - 248 , - 1797 , - 1114 , - 183 , - 988 , - 1545 , - 1854 , - 1915 , - 1728 , - 1293 , - 610 , - 1663 , - 484 , - 1041 , - 1350 , - 1411 , - 1224 , - 789 , - 106 , - 1159 , - 1964 , - 537 , - 846 , - 907 , - 720 , - 285 , - 1586 , - 655 , - 1460 , - 33 , - 342 , - 403 , - 216 , - 1765 , - 1082 , - 151 , - 956 , - 1513 , - 1822 , - 1883 , - 1696 , - 1261 , - 578 , - 1631 , - 452 , - 1009 , - 1318 , - 1379 , - 1192 , - 757 , - 74 , - 1127 , - 1932 , - 505 , - 814 , - 875 , - 688 , - 253 , - 1554 , - 623 , - 1428 , - 1 , - 310 , - 371 , - 184 , - 1733 , - 1050 , - 119 , - 924 , - 1481 , - 1790 , - 1851 , - 1664 , - 1229 , - 546 , - 1599 , - 420 , - 977 , - 1286 , - 1347 , - 1160 , - 725 , - 42 , - 1095 , - 1900 , - 473 , - 782 , - 843 , - 656 , - 221 , - 1522 , - 591 , - 1396 , - 1953 , - 278 , - 339 , - 152 , - 1701 , - 1018 , - 87 , - 892 , - 1449 , - 1758 , - 1819 , - 1632 , - 1197 , - 514 , - 1567 , - 388 , - 945 , - 1254 , - 1315 , - 1128 , - 693 , - 10 , - 1063 , - 1868 , - 441 , - 750 , - 811 , - 624 , - 189 , - 1490 , - 559 , - 1364 , - 1921 , - 246 , - 307 , - 120 , - 1669 , - 986 , - 55 , - 860 , - 1417 , - 1726 , - 1787 , - 1600 , - 1165 , - 482 , - 1535 , - 356 , - 913 , - 1222 , - 1283 , - 1096 , - 661 , - 1962 , - 1031 , - 1836 , - 409 , - 718 , - 779 , - 592 , - 157 , - 1458 , - 527 , - 1332 , - 1889 , - 214 , - 275 , - 88 , - 1637 , - 954 , - 23 , - 828 , - 1385 , - 1694 , - 1755 , - 1568 , - 1133 , - 450 , - 1503 , - 324 , - 881 , - 1190 , - 1251 , - 1064 , - 629 , - 1930 , - 999 , - 1804 , - 377 , - 686 , - 747 , - 560 , - 125 , - 1426 , - 495 , - 1300 , - 1857 , - 182 , - 243 , - 56 , - 1605 , - 922 , - 1975 , - 796 , - 1353 , - 1662 , - 1723 , - 1536 , - 1101 , - 418 , - 1471 , - 292 , - 849 , - 1158 , - 1219 , - 1032 , - 597 , - 1898 , - 967 , - 1772 , - 345 , - 654 , - 715 , - 528 , - 93 , - 1394 , - 463 , - 1268 , - 1825 , - 150 , - 211 , - 24 , - 1573 , - 890 , - 1943 , - 764 , - 1321 , - 1630 , - 1691 , - 1504 , - 1069 , - 386 , - 1439 , - 260 , - 817 , - 1126 , - 1187 , - 1000 , - 565 , - 1866 , - 935 , - 1740 , - 313 , - 622 , - 683 , - 496 , - 61 , - 1362 , - 431 , - 1236 , - 1793 , - 118 , - 179 , - 1976 , - 1541 , - 858 , - 1911 , - 732 , - 1289 , - 1598 , - 1659 , - 1472 , - 1037 , - 354 , - 1407 , - 228 , - 785 , - 1094 , - 1155 , - 968 , - 533 , - 1834 , - 903 , - 1708 , - 281 , - 590 , - 651 , - 464 , - 29 , - 1330 , - 399 , - 1204 , - 1761 , - 86 , - 147 , - 1944 , - 1509 , - 826 , - 1879 , - 700 , - 1257 , - 1566 , - 1627 , - 1440 , - 1005 , - 322 , - 1375 , - 196 , - 753 , - 1062 , - 1123 , - 936 , - 501 , - 1802 , - 871 , - 1676 , - 249 , - 558 , - 619 , - 432 , - 1981 , - 1298 , - 367 , - 1172 , - 1729 , - 54 , - 115 , - 1912 , - 1477 , - 794 , - 1847 , - 668 , - 1225 , - 1534 , - 1595 , - 1408 , - 973 , - 290 , - 1343 , - 164 , - 721 , - 1030 , - 1091 , - 904 , - 469 , - 1770 , - 839 , - 1644 , - 217 , - 526 , - 587 , - 400 , - 1949 , - 1266 , - 335 , - 1140 , - 1697 , - 22 , - 83 , - 1880 , - 1445 , - 762 , - 1815 , - 636 , - 1193 , - 1502 , - 1563 , - 1376 , - 941 , - 258 , - 1311 , - 132 , - 689 , - 998 , - 1059 , - 872 , - 437 , - 1738 , - 807 , - 1612 , - 185 , - 494 , - 555 , - 368 , - 1917 , - 1234 , - 303 , - 1108 , - 1665 , - 1974 , - 51 , - 1848 , - 1413 , - 730 , - 1783 , - 604 , - 1161 , - 1470 , - 1531 , - 1344 , - 909 , - 226 , - 1279 , - 100 , - 657 , - 966 , - 1027 , - 840 , - 405 , - 1706 , - 775 , - 1580 , - 153 , - 462 , - 523 , - 336 , - 1885 , - 1202 , - 271 , - 1076 , - 1633 , - 1942 , - 19 , - 1816 , - 1381 , - 698 , - 1751 , - 572 , - 1129 , - 1438 , - 1499 , - 1312 , - 877 , - 194 , - 1247 , - 68 , - 625 , - 934 , - 995 , - 808 , - 373 , - 1674 , - 743 , - 1548 , - 121 , - 430 , - 491 , - 304 , - 1853 , - 1170 , - 239 , - 1044 , - 1601 , - 1910 , - 1971 , - 1784 , - 1349 , - 666 , - 1719 , - 540 , - 1097 , - 1406 , - 1467 , - 1280 , - 845 , - 162 , - 1215 , - 36 , - 593 , - 902 , - 963 , - 776 , - 341 , - 1642 , - 711 , - 1516 , - 89 , - 398 , - 459 , - 272 , - 1821 , - 1138 , - 207 , - 1012 , - 1569 , - 1878 , - 1939 , - 1752 , - 1317 , - 634 , - 1687 , - 508 , - 1065 , - 1374 , - 1435 , - 1248 , - 813 , - 130 , - 1183 , - 4 , - 561 , - 870 , - 931 , - 744 , - 309 , - 1610 , - 679 , - 1484 , - 57 , - 366 , - 427 , - 240 , - 1789 , - 1106 , - 175 , - 980 , - 1537 , - 1846 , - 1907 , - 1720 , - 1285 , - 602 , - 1655 , - 476 , - 1033 , - 1342 , - 1403 , - 1216 , - 781 , - 98 , - 1151 , - 1956 , - 529 , - 838 , - 899 , - 712 , - 277 , - 1578 , - 647 , - 1452 , - 25 , - 334 , - 395 , - 208 , - 1757 , - 1074 , - 143 , - 948 , - 1505 , - 1814 , - 1875 , - 1688 , - 1253 , - 570 , - 1623 , - 444 , - 1001 , - 1310 , - 1371 , - 1184 , - 749 , - 66 , - 1119 , - 1924 , - 497 , - 806 , - 867 , - 680 , - 245 , - 1546 , - 615 , - 1420 , - 1977 , - 302 , - 363 , - 176 , - 1725 , - 1042 , - 111 , - 916 , - 1473 , - 1782 , - 1843 , - 1656 , - 1221 , - 538 , - 1591 , - 412 , - 969 , - 1278 , - 1339 , - 1152 , - 717 , - 34 , - 1087 , - 1892 , - 465 , - 774 , - 835 , - 648 , - 213 , - 1514 , - 583 , - 1388 , - 1945 , - 270 , - 331 , - 144 , - 1693 , - 1010 , - 79 , - 884 , - 1441 , - 1750 , - 1811 , - 1624 , - 1189 , - 506 , - 1559 , - 380 , - 937 , - 1246 , - 1307 , - 1120 , - 685 , - 2 , - 1055 , - 1860 , - 433 , - 742 , - 803 , - 616 , - 181 , - 1482 , - 551 , - 1356 , - 1913 , - 238 , - 299 , - 112 , - 1661 , - 978 , - 47 , - 852 , - 1409 , - 1718 , - 1779 , - 1592 , - 1157 , - 474 , - 1527 , - 348 , - 905 , - 1214 , - 1275 , - 1088 , - 653 , - 1954 , - 1023 , - 1828 , - 401 , - 710 , - 771 , - 584 , - 149 , - 1450 , - 519 , - 1324 , - 1881 , - 206 , - 267 , - 80 , - 1629 , - 946 , - 15 , - 820 , - 1377 , - 1686 , - 1747 , - 1560 , - 1125 , - 442 , - 1495 , - 316 , - 873 , - 1182 , - 1243 , - 1056 , - 621 , - 1922 , - 991 , - 1796 , - 369 , - 678 , - 739 , - 552 , - 117 , - 1418 , - 487 , - 1292 , - 1849 , - 174 , - 235 , - 48 , - 1597 , - 914 , - 1967 , - 788 , - 1345 , - 1654 , - 1715 , - 1528 , - 1093 , - 410 , - 1463 , - 284 , - 841 , - 1150 , - 1211 , - 1024 , - 589 , - 1890 , - 959 , - 1764 , - 337 , - 646 , - 707 , - 520 , - 85 , - 1386 , - 455 , - 1260 , - 1817 , - 142 , - 203 , - 16 , - 1565 , - 882 , - 1935 , - 756 , - 1313 , - 1622 , - 1683 , - 1496 , - 1061 , - 378 , - 1431 , - 252 , - 809 , - 1118 , - 1179 , - 992 , - 557 , - 1858 , - 927 , - 1732 , - 305 , - 614 , - 675 , - 488 , - 53 , - 1354 , - 423 , - 1228 , - 1785 , - 110 , - 171 , - 1968 , - 1533 , - 850 , - 1903 , - 724 , - 1281 , - 1590 , - 1651 , - 1464 , - 1029 , - 346 , - 1399 , - 220 , - 777 , - 1086 , - 1147 , - 960 , - 525 , - 1826 , - 895 , - 1700 , - 273 , - 582 , - 643 , - 456 , - 21 , - 1322 , - 391 , - 1196 , - 1753 , - 78 , - 139 , - 1936 , - 1501 , - 818 , - 1871 , - 692 , - 1249 , - 1558 , - 1619 , - 1432 , - 997 , - 314 , - 1367 , - 188 , - 745 , - 1054 , - 1115 , - 928 , - 493 , - 1794 , - 863 , - 1668 , - 241 , - 550 , - 611 , - 424 , - 1973 , - 1290 , - 359 , - 1164 , - 1721 , - 46 , - 107 , - 1904 , - 1469 , - 786 , - 1839 , - 660 , - 1217 , - 1526 , - 1587 , - 1400 , - 965 , - 282 , - 1335 , - 156 , - 713 , - 1022 , - 1083 , - 896 , - 461 , - 1762 , - 831 , - 1636 , - 209 , - 518 , - 579 , - 392 , - 1941 , - 1258 , - 327 , - 1132 , - 1689 , - 14 , - 75 , - 1872 , - 1437 , - 754 , - 1807 , - 628 , - 1185 , - 1494 , - 1555 , - 1368 , - 933 , - 250 , - 1303 , - 124 , - 681 , - 990 , - 1051 , - 864 , - 429 , - 1730 , - 799 , - 1604 , - 177 , - 486 , - 547 , - 360 , - 1909 , - 1226 , - 295 , - 1100 , - 1657 , - 1966 , - 43 , - 1840 , - 1405 , - 722 , - 1775 , - 596 , - 1153 , - 1462 , - 1523 , - 1336 , - 901 , - 218 , - 1271 , - 92 , - 649 , - 958 , - 1019 , - 832 , - 397 , - 1698 , - 767 , - 1572 , - 145 , - 454 , - 515 , - 328 , - 1877 , - 1194 , - 263 , - 1068 , - 1625 , - 1934 , - 11 , - 1808 , - 1373 , - 690 , - 1743 , - 564 , - 1121 , - 1430 , - 1491 , - 1304 , - 869 , - 186 , - 1239 , - 60 , - 617 , - 926 , - 987 , - 800 , - 365 , - 1666 , - 735 , - 1540 , - 113 , - 422 , - 483 , - 296 , - 1845 , - 1162 , - 231 , - 1036 , - 1593 , - 1902 , - 1963 , - 1776 , - 1341 , - 658 , - 1711 , - 532 , - 1089 , - 1398 , - 1459 , - 1272 , - 837 , - 154 , - 1207 , - 28 , - 585 , - 894 , - 955 , - 768 , - 333 , - 1634 , - 703 , - 1508 , - 81 , - 390 , - 451 , - 264 , - 1813 , - 1130 , - 199 , - 1004 , - 1561 , - 1870 , - 1931 , - 1744 , - 1309 , - 626 , - 1679 , - 500 , - 1057 , - 1366 , - 1427 , - 1240 , - 805 , - 122 , - 1175 , - 1980 , - 553 , - 862 , - 923 , - 736 , - 301 , - 1602 , - 671 , - 1476 , - 49 , - 358 , - 419 , - 232 , - 1781 , - 1098 , - 167 , - 972 , - 1529 , - 1838 , - 1899 , - 1712 , - 1277 , - 594 , - 1647 , - 468 , - 1025 , - 1334 , - 1395 , - 1208 , - 773 , - 90 , - 1143 , - 1948 , - 521 , - 830 , - 891 , - 704 , - 269 , - 1570 , - 639 , - 1444 , - 17 , - 326 , - 387 , - 200 , - 1749 , - 1066 , - 135 , - 940 , - 1497 , - 1806 , - 1867 , - 1680 , - 1245 , - 562 , - 1615 , - 436 , - 993 , - 1302 , - 1363 , - 1176 , - 741 , - 58 , - 1111 , - 1916 , - 489 , - 798 , - 859 , - 672 , - 237 , - 1538 , - 607 , - 1412 , - 1969 , - 294 , - 355 , - 168 , - 1717 , - 1034 , - 103 , - 908 , - 1465 , - 1774 , - 1835 , - 1648 , - 1213 , - 530 , - 1583 , - 404 , - 961 , - 1270 , - 1331 , - 1144 , - 709 , - 26 , - 1079 , - 1884 , - 457 , - 766 , - 827 , - 640 , - 205 , - 1506 , - 575 , - 1380 , - 1937 , - 262 , - 323 , - 136 , - 1685 , - 1002 , - 71 , - 876 , - 1433 , - 1742 , - 1803 , - 1616 , - 1181 , - 498 , - 1551 , - 372 , - 929 , - 1238 , - 1299 , - 1112 , - 677 , - 1978 , - 1047 , - 1852 , - 425 , - 734 , - 795 , - 608 , - 173 , - 1474 , - 543 , - 1348 , - 1905 , - 230 , - 291 , - 104 , - 1653 , - 970 , - 39 , - 844 , - 1401 , - 1710 , - 1771 , - 1584 , - 1149 , - 466 , - 1519 , - 340 , - 897 , - 1206 , - 1267 , - 1080 , - 645 , - 1946 , - 1015 , - 1820 , - 393 , - 702 , - 763 , - 576 , - 141 , - 1442 , - 511 , - 1316 , - 1873 , - 198 , - 259 , - 72 , - 1621 , - 938 , - 7 , - 812 , - 1369 , - 1678 , - 1739 , - 1552 , - 1117 , - 434 , - 1487 , - 308 , - 865 , - 1174 , - 1235 , - 1048 , - 613 , - 1914 , - 983 , - 1788 , - 361 , - 670 , - 731 , - 544 , - 109 , - 1410 , - 479 , - 1284 , - 1841 , - 166 , - 227 , - 40 , - 1589 , - 906 , - 1959 , - 780 , - 1337 , - 1646 , - 1707 , - 1520 , - 1085 , - 402 , - 1455 , - 276 , - 833 , - 1142 , - 1203 , - 1016 , - 581 , - 1882 , - 951 , - 1756 , - 329 , - 638 , - 699 , - 512 , - 77 , - 1378 , - 447 , - 1252 , - 1809 , - 134 , - 195 , - 8 , - 1557 , - 874 , - 1927 , - 748 , - 1305 , - 1614 , - 1675 , - 1488 , - 1053 , - 370 , - 1423 , - 244 , - 801 , - 1110 , - 1171 , - 984 , - 549 , - 1850 , - 919 , - 1724 , - 297 , - 606 , - 667 , - 480 , - 45 , - 1346 , - 415 , - 1220 , - 1777 , - 102 , - 163 , - 1960 , - 1525 , - 842 , - 1895 , - 716 , - 1273 , - 1582 , - 1643 , - 1456 , - 1021 , - 338 , - 1391 , - 212 , - 769 , - 1078 , - 1139 , - 952 , - 517 , - 1818 , - 887 , - 1692 , - 265 , - 574 , - 635 , - 448 , - 13 , - 1314 , - 383 , - 1188 , - 1745 , - 70 , - 131 , - 1928 , - 1493 , - 810 , - 1863 , - 684 , - 1241 , - 1550 , - 1611 , - 1424 , - 989 , - 306 , - 1359 , - 180 , - 737 , - 1046 , - 1107 , - 920 , - 485 , - 1786 , - 855 , - 1660 , - 233 , - 542 , - 603 , - 416 , - 1965 , - 1282 , - 351 , - 1156 , - 1713 , - 38 , - 99 , - 1896 , - 1461 , - 778 , - 1831 , - 652 , - 1209 , - 1518 , - 1579 , - 1392 , - 957 , - 274 , - 1327 , - 148 , - 705 , - 1014 , - 1075 , - 888 , - 453 , - 1754 , - 823 , - 1628 , - 201 , - 510 , - 571 , - 384 , - 1933 , - 1250 , - 319 , - 1124 , - 1681 , - 6 , - 67 , - 1864 , - 1429 , - 746 , - 1799 , - 620 , - 1177 , - 1486 , - 1547 , - 1360 , - 925 , - 242 , - 1295 , - 116 , - 673 , - 982 , - 1043 , - 856 , - 421 , - 1722 , - 791 , - 1596 , - 169 , - 478 , - 539 , - 352 , - 1901 , - 1218 , - 287 , - 1092 , - 1649 , - 1958 , - 35 , - 1832 , - 1397 , - 714 , - 1767 , - 588 , - 1145 , - 1454 , - 1515 , - 1328 , - 893 , - 210 , - 1263 , - 84 , - 641 , - 950 , - 1011 , - 824 , - 389 , - 1690 , - 759 , - 1564 , - 137 , - 446 , - 507 , - 320 , - 1869 , - 1186 , - 255 , - 1060 , - 1617 , - 1926 , - 3 , - 1800 , - 1365 , - 682 , - 1735 , - 556 , - 1113 , - 1422 , - 1483 , - 1296 , - 861 , - 178 , - 1231 , - 52 , - 609 , - 918 , - 979 , - 792 , - 357 , - 1658 , - 727 , - 1532 , - 105 , - 414 , - 475 , - 288 , - 1837 , - 1154 , - 223 , - 1028 , - 1585 , - 1894 , - 1955 , - 1768 , - 1333 , - 650 , - 1703 , - 524 , - 1081 , - 1390 , - 1451 , - 1264 , - 829 , - 146 , - 1199 , - 20 , - 577 , - 886 , - 947 , - 760 , - 325 , - 1626 , - 695 , - 1500 , - 73 , - 382 , - 443 , - 256 , - 1805 , - 1122 , - 191 , - 996 , - 1553 , - 1862 , - 1923 , - 1736 , - 1301 , - 618 , - 1671 , - 492 , - 1049 , - 1358 , - 1419 , - 1232 , - 797 , - 114 , - 1167 , - 1972 , - 545 , - 854 , - 915 , - 728 , - 293 , - 1594 , - 663 , - 1468 , - 41 , - 350 , - 411 , - 224 , - 1773 , - 1090 , - 159 , - 964 , - 1521 , - 1830 , - 1891 , - 1704 , - 1269 , - 586 , - 1639 , - 460 , - 1017 , - 1326 , - 1387 , - 1200 , - 765 , - 82 , - 1135 , - 1940 , - 513 , - 822 , - 883 , - 696 , - 261 , - 1562 , - 631 , - 1436 , - 9 , - 318 , - 379 , - 192 , - 1741 , - 1058 , - 127 , - 932 , - 1489 , - 1798 , - 1859 , - 1672 , - 1237 , - 554 , - 1607 , - 428 , - 985 , - 1294 , - 1355 , - 1168 , - 733 , - 50 , - 1103 , - 1908 , - 481 , - 790 , - 851 , - 664 , - 229 , - 1530 , - 599 , - 1404 , - 1961 , - 286 , - 347 , - 160 , - 1709 , - 1026 , - 95 , - 900 , - 1457 , - 1766 , - 1827 , - 1640 , - 1205 , - 522 , - 1575 , - 396 , - 953 , - 1262 , - 1323 , - 1136 , - 701 , - 18 , - 1071 , - 1876 , - 449 , - 758 , - 819 , - 632 , - 197 , - 1498 , - 567 , - 1372 , - 1929 , - 254 , - 315 , - 128 , - 1677 , - 994 , - 63 , - 868 , - 1425 , - 1734 , - 1795 , - 1608 , - 1173 , - 490 , - 1543 , - 364 , - 921 , - 1230 , - 1291 , - 1104 , - 669 , - 1970 , - 1039 , - 1844 , - 417 , - 726 , - 787 , - 600 , - 165 , - 1466 , - 535 , - 1340 , - 1897 , - 222 , - 283 , - 96 , - 1645 , - 962 , - 31 , - 836 , - 1393 , - 1702 , - 1763 , - 1576 , - 1141 , - 458 , - 1511 , - 332 , - 889 , - 1198 , - 1259 , - 1072 , - 637 , - 1938 , - 1007 , - 1812 , - 385 , - 694 , - 755 , - 568 , - 133 , - 1434 , - 503 , - 1308 , - 1865 , - 190 , - 251 , - 64 , - 1613 , - 930 , - 1983 , - 804 , - 1361 , - 1670 , - 1731 , - 1544 , - 1109 , - 426 , - 1479 , - 300 , - 857 , - 1166 , - 1227 , - 1040 , - 605 , - 1906 , - 975 , - 1780 , - 353 , - 662 , - 723 , - 536 , - 101 , - 1402 , - 471 , - 1276 , - 1833 , - 158 , - 219 , - 32 , - 1581 , - 898 , - 1951 , - 772 , - 1329 , - 1638 , - 1699 , - 1512 , - 1077 , - 394 , - 1447 , - 268 , - 825 , - 1134 , - 1195 , - 1008 , - 573 , - 1874 , - 943 , - 1748 , - 321 , - 630 , - 691 , - 504 , - 69 , - 1370 , - 439 , - 1244 , - 1801 , - 126 , - 187 , - 0 , - 1709 , - 1234 , - 591 , - 1796 , - 817 , - 1686 , - 371 , - 904 , - 1269 , - 1466 , - 1495 , - 1356 , - 1049 , - 574 , - 1947 , - 1136 , - 157 , - 1026 , - 1727 , - 244 , - 609 , - 806 , - 835 , - 696 , - 389 , - 1930 , - 1287 , - 476 , - 1513 , - 366 , - 1067 , - 1600 , - 1965 , - 146 , - 175 , - 36 , - 1745 , - 1270 , - 627 , - 1832 , - 853 , - 1722 , - 407 , - 940 , - 1305 , - 1502 , - 1531 , - 1392 , - 1085 , - 610 , - 1983 , - 1172 , - 193 , - 1062 , - 1763 , - 280 , - 645 , - 842 , - 871 , - 732 , - 425 , - 1966 , - 1323 , - 512 , - 1549 , - 402 , - 1103 , - 1636 , - 2001 , - 182 , - 211 , - 72 , - 1781 , - 1306 , - 663 , - 1868 , - 889 , - 1758 , - 443 , - 976 , - 1341 , - 1538 , - 1567 , - 1428 , - 1121 , - 646 , - 3 , - 1208 , - 229 , - 1098 , - 1799 , - 316 , - 681 , - 878 , - 907 , - 768 , - 461 , - 2002 , - 1359 , - 548 , - 1585 , - 438 , - 1139 , - 1672 , - 21 , - 218 , - 247 , - 108 , - 1817 , - 1342 , - 699 , - 1904 , - 925 , - 1794 , - 479 , - 1012 , - 1377 , - 1574 , - 1603 , - 1464 , - 1157 , - 682 , - 39 , - 1244 , - 265 , - 1134 , - 1835 , - 352 , - 717 , - 914 , - 943 , - 804 , - 497 , - 22 , - 1395 , - 584 , - 1621 , - 474 , - 1175 , - 1708 , - 57 , - 254 , - 283 , - 144 , - 1853 , - 1378 , - 735 , - 1940 , - 961 , - 1830 , - 515 , - 1048 , - 1413 , - 1610 , - 1639 , - 1500 , - 1193 , - 718 , - 75 , - 1280 , - 301 , - 1170 , - 1871 , - 388 , - 753 , - 950 , - 979 , - 840 , - 533 , - 58 , - 1431 , - 620 , - 1657 , - 510 , - 1211 , - 1744 , - 93 , - 290 , - 319 , - 180 , - 1889 , - 1414 , - 771 , - 1976 , - 997 , - 1866 , - 551 , - 1084 , - 1449 , - 1646 , - 1675 , - 1536 , - 1229 , - 754 , - 111 , - 1316 , - 337 , - 1206 , - 1907 , - 424 , - 789 , - 986 , - 1015 , - 876 , - 569 , - 94 , - 1467 , - 656 , - 1693 , - 546 , - 1247 , - 1780 , - 129 , - 326 , - 355 , - 216 , - 1925 , - 1450 , - 807 , - 2012 , - 1033 , - 1902 , - 587 , - 1120 , - 1485 , - 1682 , - 1711 , - 1572 , - 1265 , - 790 , - 147 , - 1352 , - 373 , - 1242 , - 1943 , - 460 , - 825 , - 1022 , - 1051 , - 912 , - 605 , - 130 , - 1503 , - 692 , - 1729 , - 582 , - 1283 , - 1816 , - 165 , - 362 , - 391 , - 252 , - 1961 , - 1486 , - 843 , - 32 , - 1069 , - 1938 , - 623 , - 1156 , - 1521 , - 1718 , - 1747 , - 1608 , - 1301 , - 826 , - 183 , - 1388 , - 409 , - 1278 , - 1979 , - 496 , - 861 , - 1058 , - 1087 , - 948 , - 641 , - 166 , - 1539 , - 728 , - 1765 , - 618 , - 1319 , - 1852 , - 201 , - 398 , - 427 , - 288 , - 1997 , - 1522 , - 879 , - 68 , - 1105 , - 1974 , - 659 , - 1192 , - 1557 , - 1754 , - 1783 , - 1644 , - 1337 , - 862 , - 219 , - 1424 , - 445 , - 1314 , - 2015 , - 532 , - 897 , - 1094 , - 1123 , - 984 , - 677 , - 202 , - 1575 , - 764 , - 1801 , - 654 , - 1355 , - 1888 , - 237 , - 434 , - 463 , - 324 , - 17 , - 1558 , - 915 , - 104 , - 1141 , - 2010 , - 695 , - 1228 , - 1593 , - 1790 , - 1819 , - 1680 , - 1373 , - 898 , - 255 , - 1460 , - 481 , - 1350 , - 35 , - 568 , - 933 , - 1130 , - 1159 , - 1020 , - 713 , - 238 , - 1611 , - 800 , - 1837 , - 690 , - 1391 , - 1924 , - 273 , - 470 , - 499 , - 360 , - 53 , - 1594 , - 951 , - 140 , - 1177 , - 30 , - 731 , - 1264 , - 1629 , - 1826 , - 1855 , - 1716 , - 1409 , - 934 , - 291 , - 1496 , - 517 , - 1386 , - 71 , - 604 , - 969 , - 1166 , - 1195 , - 1056 , - 749 , - 274 , - 1647 , - 836 , - 1873 , - 726 , - 1427 , - 1960 , - 309 , - 506 , - 535 , - 396 , - 89 , - 1630 , - 987 , - 176 , - 1213 , - 66 , - 767 , - 1300 , - 1665 , - 1862 , - 1891 , - 1752 , - 1445 , - 970 , - 327 , - 1532 , - 553 , - 1422 , - 107 , - 640 , - 1005 , - 1202 , - 1231 , - 1092 , - 785 , - 310 , - 1683 , - 872 , - 1909 , - 762 , - 1463 , - 1996 , - 345 , - 542 , - 571 , - 432 , - 125 , - 1666 , - 1023 , - 212 , - 1249 , - 102 , - 803 , - 1336 , - 1701 , - 1898 , - 1927 , - 1788 , - 1481 , - 1006 , - 363 , - 1568 , - 589 , - 1458 , - 143 , - 676 , - 1041 , - 1238 , - 1267 , - 1128 , - 821 , - 346 , - 1719 , - 908 , - 1945 , - 798 , - 1499 , - 16 , - 381 , - 578 , - 607 , - 468 , - 161 , - 1702 , - 1059 , - 248 , - 1285 , - 138 , - 839 , - 1372 , - 1737 , - 1934 , - 1963 , - 1824 , - 1517 , - 1042 , - 399 , - 1604 , - 625 , - 1494 , - 179 , - 712 , - 1077 , - 1274 , - 1303 , - 1164 , - 857 , - 382 , - 1755 , - 944 , - 1981 , - 834 , - 1535 , - 52 , - 417 , - 614 , - 643 , - 504 , - 197 , - 1738 , - 1095 , - 284 , - 1321 , - 174 , - 875 , - 1408 , - 1773 , - 1970 , - 1999 , - 1860 , - 1553 , - 1078 , - 435 , - 1640 , - 661 , - 1530 , - 215 , - 748 , - 1113 , - 1310 , - 1339 , - 1200 , - 893 , - 418 , - 1791 , - 980 , - 1 , - 870 , - 1571 , - 88 , - 453 , - 650 , - 679 , - 540 , - 233 , - 1774 , - 1131 , - 320 , - 1357 , - 210 , - 911 , - 1444 , - 1809 , - 2006 , - 19 , - 1896 , - 1589 , - 1114 , - 471 , - 1676 , - 697 , - 1566 , - 251 , - 784 , - 1149 , - 1346 , - 1375 , - 1236 , - 929 , - 454 , - 1827 , - 1016 , - 37 , - 906 , - 1607 , - 124 , - 489 , - 686 , - 715 , - 576 , - 269 , - 1810 , - 1167 , - 356 , - 1393 , - 246 , - 947 , - 1480 , - 1845 , - 26 , - 55 , - 1932 , - 1625 , - 1150 , - 507 , - 1712 , - 733 , - 1602 , - 287 , - 820 , - 1185 , - 1382 , - 1411 , - 1272 , - 965 , - 490 , - 1863 , - 1052 , - 73 , - 942 , - 1643 , - 160 , - 525 , - 722 , - 751 , - 612 , - 305 , - 1846 , - 1203 , - 392 , - 1429 , - 282 , - 983 , - 1516 , - 1881 , - 62 , - 91 , - 1968 , - 1661 , - 1186 , - 543 , - 1748 , - 769 , - 1638 , - 323 , - 856 , - 1221 , - 1418 , - 1447 , - 1308 , - 1001 , - 526 , - 1899 , - 1088 , - 109 , - 978 , - 1679 , - 196 , - 561 , - 758 , - 787 , - 648 , - 341 , - 1882 , - 1239 , - 428 , - 1465 , - 318 , - 1019 , - 1552 , - 1917 , - 98 , - 127 , - 2004 , - 1697 , - 1222 , - 579 , - 1784 , - 805 , - 1674 , - 359 , - 892 , - 1257 , - 1454 , - 1483 , - 1344 , - 1037 , - 562 , - 1935 , - 1124 , - 145 , - 1014 , - 1715 , - 232 , - 597 , - 794 , - 823 , - 684 , - 377 , - 1918 , - 1275 , - 464 , - 1501 , - 354 , - 1055 , - 1588 , - 1953 , - 134 , - 163 , - 24 , - 1733 , - 1258 , - 615 , - 1820 , - 841 , - 1710 , - 395 , - 928 , - 1293 , - 1490 , - 1519 , - 1380 , - 1073 , - 598 , - 1971 , - 1160 , - 181 , - 1050 , - 1751 , - 268 , - 633 , - 830 , - 859 , - 720 , - 413 , - 1954 , - 1311 , - 500 , - 1537 , - 390 , - 1091 , - 1624 , - 1989 , - 170 , - 199 , - 60 , - 1769 , - 1294 , - 651 , - 1856 , - 877 , - 1746 , - 431 , - 964 , - 1329 , - 1526 , - 1555 , - 1416 , - 1109 , - 634 , - 2007 , - 1196 , - 217 , - 1086 , - 1787 , - 304 , - 669 , - 866 , - 895 , - 756 , - 449 , - 1990 , - 1347 , - 536 , - 1573 , - 426 , - 1127 , - 1660 , - 9 , - 206 , - 235 , - 96 , - 1805 , - 1330 , - 687 , - 1892 , - 913 , - 1782 , - 467 , - 1000 , - 1365 , - 1562 , - 1591 , - 1452 , - 1145 , - 670 , - 27 , - 1232 , - 253 , - 1122 , - 1823 , - 340 , - 705 , - 902 , - 931 , - 792 , - 485 , - 10 , - 1383 , - 572 , - 1609 , - 462 , - 1163 , - 1696 , - 45 , - 242 , - 271 , - 132 , - 1841 , - 1366 , - 723 , - 1928 , - 949 , - 1818 , - 503 , - 1036 , - 1401 , - 1598 , - 1627 , - 1488 , - 1181 , - 706 , - 63 , - 1268 , - 289 , - 1158 , - 1859 , - 376 , - 741 , - 938 , - 967 , - 828 , - 521 , - 46 , - 1419 , - 608 , - 1645 , - 498 , - 1199 , - 1732 , - 81 , - 278 , - 307 , - 168 , - 1877 , - 1402 , - 759 , - 1964 , - 985 , - 1854 , - 539 , - 1072 , - 1437 , - 1634 , - 1663 , - 1524 , - 1217 , - 742 , - 99 , - 1304 , - 325 , - 1194 , - 1895 , - 412 , - 777 , - 974 , - 1003 , - 864 , - 557 , - 82 , - 1455 , - 644 , - 1681 , - 534 , - 1235 , - 1768 , - 117 , - 314 , - 343 , - 204 , - 1913 , - 1438 , - 795 , - 2000 , - 1021 , - 1890 , - 575 , - 1108 , - 1473 , - 1670 , - 1699 , - 1560 , - 1253 , - 778 , - 135 , - 1340 , - 361 , - 1230 , - 1931 , - 448 , - 813 , - 1010 , - 1039 , - 900 , - 593 , - 118 , - 1491 , - 680 , - 1717 , - 570 , - 1271 , - 1804 , - 153 , - 350 , - 379 , - 240 , - 1949 , - 1474 , - 831 , - 20 , - 1057 , - 1926 , - 611 , - 1144 , - 1509 , - 1706 , - 1735 , - 1596 , - 1289 , - 814 , - 171 , - 1376 , - 397 , - 1266 , - 1967 , - 484 , - 849 , - 1046 , - 1075 , - 936 , - 629 , - 154 , - 1527 , - 716 , - 1753 , - 606 , - 1307 , - 1840 , - 189 , - 386 , - 415 , - 276 , - 1985 , - 1510 , - 867 , - 56 , - 1093 , - 1962 , - 647 , - 1180 , - 1545 , - 1742 , - 1771 , - 1632 , - 1325 , - 850 , - 207 , - 1412 , - 433 , - 1302 , - 2003 , - 520 , - 885 , - 1082 , - 1111 , - 972 , - 665 , - 190 , - 1563 , - 752 , - 1789 , - 642 , - 1343 , - 1876 , - 225 , - 422 , - 451 , - 312 , - 5 , - 1546 , - 903 , - 92 , - 1129 , - 1998 , - 683 , - 1216 , - 1581 , - 1778 , - 1807 , - 1668 , - 1361 , - 886 , - 243 , - 1448 , - 469 , - 1338 , - 23 , - 556 , - 921 , - 1118 , - 1147 , - 1008 , - 701 , - 226 , - 1599 , - 788 , - 1825 , - 678 , - 1379 , - 1912 , - 261 , - 458 , - 487 , - 348 , - 41 , - 1582 , - 939 , - 128 , - 1165 , - 18 , - 719 , - 1252 , - 1617 , - 1814 , - 1843 , - 1704 , - 1397 , - 922 , - 279 , - 1484 , - 505 , - 1374 , - 59 , - 592 , - 957 , - 1154 , - 1183 , - 1044 , - 737 , - 262 , - 1635 , - 824 , - 1861 , - 714 , - 1415 , - 1948 , - 297 , - 494 , - 523 , - 384 , - 77 , - 1618 , - 975 , - 164 , - 1201 , - 54 , - 755 , - 1288 , - 1653 , - 1850 , - 1879 , - 1740 , - 1433 , - 958 , - 315 , - 1520 , - 541 , - 1410 , - 95 , - 628 , - 993 , - 1190 , - 1219 , - 1080 , - 773 , - 298 , - 1671 , - 860 , - 1897 , - 750 , - 1451 , - 1984 , - 333 , - 530 , - 559 , - 420 , - 113 , - 1654 , - 1011 , - 200 , - 1237 , - 90 , - 791 , - 1324 , - 1689 , - 1886 , - 1915 , - 1776 , - 1469 , - 994 , - 351 , - 1556 , - 577 , - 1446 , - 131 , - 664 , - 1029 , - 1226 , - 1255 , - 1116 , - 809 , - 334 , - 1707 , - 896 , - 1933 , - 786 , - 1487 , - 4 , - 369 , - 566 , - 595 , - 456 , - 149 , - 1690 , - 1047 , - 236 , - 1273 , - 126 , - 827 , - 1360 , - 1725 , - 1922 , - 1951 , - 1812 , - 1505 , - 1030 , - 387 , - 1592 , - 613 , - 1482 , - 167 , - 700 , - 1065 , - 1262 , - 1291 , - 1152 , - 845 , - 370 , - 1743 , - 932 , - 1969 , - 822 , - 1523 , - 40 , - 405 , - 602 , - 631 , - 492 , - 185 , - 1726 , - 1083 , - 272 , - 1309 , - 162 , - 863 , - 1396 , - 1761 , - 1958 , - 1987 , - 1848 , - 1541 , - 1066 , - 423 , - 1628 , - 649 , - 1518 , - 203 , - 736 , - 1101 , - 1298 , - 1327 , - 1188 , - 881 , - 406 , - 1779 , - 968 , - 2005 , - 858 , - 1559 , - 76 , - 441 , - 638 , - 667 , - 528 , - 221 , - 1762 , - 1119 , - 308 , - 1345 , - 198 , - 899 , - 1432 , - 1797 , - 1994 , - 7 , - 1884 , - 1577 , - 1102 , - 459 , - 1664 , - 685 , - 1554 , - 239 , - 772 , - 1137 , - 1334 , - 1363 , - 1224 , - 917 , - 442 , - 1815 , - 1004 , - 25 , - 894 , - 1595 , - 112 , - 477 , - 674 , - 703 , - 564 , - 257 , - 1798 , - 1155 , - 344 , - 1381 , - 234 , - 935 , - 1468 , - 1833 , - 14 , - 43 , - 1920 , - 1613 , - 1138 , - 495 , - 1700 , - 721 , - 1590 , - 275 , - 808 , - 1173 , - 1370 , - 1399 , - 1260 , - 953 , - 478 , - 1851 , - 1040 , - 61 , - 930 , - 1631 , - 148 , - 513 , - 710 , - 739 , - 600 , - 293 , - 1834 , - 1191 , - 380 , - 1417 , - 270 , - 971 , - 1504 , - 1869 , - 50 , - 79 , - 1956 , - 1649 , - 1174 , - 531 , - 1736 , - 757 , - 1626 , - 311 , - 844 , - 1209 , - 1406 , - 1435 , - 1296 , - 989 , - 514 , - 1887 , - 1076 , - 97 , - 966 , - 1667 , - 184 , - 549 , - 746 , - 775 , - 636 , - 329 , - 1870 , - 1227 , - 416 , - 1453 , - 306 , - 1007 , - 1540 , - 1905 , - 86 , - 115 , - 1992 , - 1685 , - 1210 , - 567 , - 1772 , - 793 , - 1662 , - 347 , - 880 , - 1245 , - 1442 , - 1471 , - 1332 , - 1025 , - 550 , - 1923 , - 1112 , - 133 , - 1002 , - 1703 , - 220 , - 585 , - 782 , - 811 , - 672 , - 365 , - 1906 , - 1263 , - 452 , - 1489 , - 342 , - 1043 , - 1576 , - 1941 , - 122 , - 151 , - 12 , - 1721 , - 1246 , - 603 , - 1808 , - 829 , - 1698 , - 383 , - 916 , - 1281 , - 1478 , - 1507 , - 1368 , - 1061 , - 586 , - 1959 , - 1148 , - 169 , - 1038 , - 1739 , - 256 , - 621 , - 818 , - 847 , - 708 , - 401 , - 1942 , - 1299 , - 488 , - 1525 , - 378 , - 1079 , - 1612 , - 1977 , - 158 , - 187 , - 48 , - 1757 , - 1282 , - 639 , - 1844 , - 865 , - 1734 , - 419 , - 952 , - 1317 , - 1514 , - 1543 , - 1404 , - 1097 , - 622 , - 1995 , - 1184 , - 205 , - 1074 , - 1775 , - 292 , - 657 , - 854 , - 883 , - 744 , - 437 , - 1978 , - 1335 , - 524 , - 1561 , - 414 , - 1115 , - 1648 , - 2013 , - 194 , - 223 , - 84 , - 1793 , - 1318 , - 675 , - 1880 , - 901 , - 1770 , - 455 , - 988 , - 1353 , - 1550 , - 1579 , - 1440 , - 1133 , - 658 , - 15 , - 1220 , - 241 , - 1110 , - 1811 , - 328 , - 693 , - 890 , - 919 , - 780 , - 473 , - 2014 , - 1371 , - 560 , - 1597 , - 450 , - 1151 , - 1684 , - 33 , - 230 , - 259 , - 120 , - 1829 , - 1354 , - 711 , - 1916 , - 937 , - 1806 , - 491 , - 1024 , - 1389 , - 1586 , - 1615 , - 1476 , - 1169 , - 694 , - 51 , - 1256 , - 277 , - 1146 , - 1847 , - 364 , - 729 , - 926 , - 955 , - 816 , - 509 , - 34 , - 1407 , - 596 , - 1633 , - 486 , - 1187 , - 1720 , - 69 , - 266 , - 295 , - 156 , - 1865 , - 1390 , - 747 , - 1952 , - 973 , - 1842 , - 527 , - 1060 , - 1425 , - 1622 , - 1651 , - 1512 , - 1205 , - 730 , - 87 , - 1292 , - 313 , - 1182 , - 1883 , - 400 , - 765 , - 962 , - 991 , - 852 , - 545 , - 70 , - 1443 , - 632 , - 1669 , - 522 , - 1223 , - 1756 , - 105 , - 302 , - 331 , - 192 , - 1901 , - 1426 , - 783 , - 1988 , - 1009 , - 1878 , - 563 , - 1096 , - 1461 , - 1658 , - 1687 , - 1548 , - 1241 , - 766 , - 123 , - 1328 , - 349 , - 1218 , - 1919 , - 436 , - 801 , - 998 , - 1027 , - 888 , - 581 , - 106 , - 1479 , - 668 , - 1705 , - 558 , - 1259 , - 1792 , - 141 , - 338 , - 367 , - 228 , - 1937 , - 1462 , - 819 , - 8 , - 1045 , - 1914 , - 599 , - 1132 , - 1497 , - 1694 , - 1723 , - 1584 , - 1277 , - 802 , - 159 , - 1364 , - 385 , - 1254 , - 1955 , - 472 , - 837 , - 1034 , - 1063 , - 924 , - 617 , - 142 , - 1515 , - 704 , - 1741 , - 594 , - 1295 , - 1828 , - 177 , - 374 , - 403 , - 264 , - 1973 , - 1498 , - 855 , - 44 , - 1081 , - 1950 , - 635 , - 1168 , - 1533 , - 1730 , - 1759 , - 1620 , - 1313 , - 838 , - 195 , - 1400 , - 421 , - 1290 , - 1991 , - 508 , - 873 , - 1070 , - 1099 , - 960 , - 653 , - 178 , - 1551 , - 740 , - 1777 , - 630 , - 1331 , - 1864 , - 213 , - 410 , - 439 , - 300 , - 2009 , - 1534 , - 891 , - 80 , - 1117 , - 1986 , - 671 , - 1204 , - 1569 , - 1766 , - 1795 , - 1656 , - 1349 , - 874 , - 231 , - 1436 , - 457 , - 1326 , - 11 , - 544 , - 909 , - 1106 , - 1135 , - 996 , - 689 , - 214 , - 1587 , - 776 , - 1813 , - 666 , - 1367 , - 1900 , - 249 , - 446 , - 475 , - 336 , - 29 , - 1570 , - 927 , - 116 , - 1153 , - 6 , - 707 , - 1240 , - 1605 , - 1802 , - 1831 , - 1692 , - 1385 , - 910 , - 267 , - 1472 , - 493 , - 1362 , - 47 , - 580 , - 945 , - 1142 , - 1171 , - 1032 , - 725 , - 250 , - 1623 , - 812 , - 1849 , - 702 , - 1403 , - 1936 , - 285 , - 482 , - 511 , - 372 , - 65 , - 1606 , - 963 , - 152 , - 1189 , - 42 , - 743 , - 1276 , - 1641 , - 1838 , - 1867 , - 1728 , - 1421 , - 946 , - 303 , - 1508 , - 529 , - 1398 , - 83 , - 616 , - 981 , - 1178 , - 1207 , - 1068 , - 761 , - 286 , - 1659 , - 848 , - 1885 , - 738 , - 1439 , - 1972 , - 321 , - 518 , - 547 , - 408 , - 101 , - 1642 , - 999 , - 188 , - 1225 , - 78 , - 779 , - 1312 , - 1677 , - 1874 , - 1903 , - 1764 , - 1457 , - 982 , - 339 , - 1544 , - 565 , - 1434 , - 119 , - 652 , - 1017 , - 1214 , - 1243 , - 1104 , - 797 , - 322 , - 1695 , - 884 , - 1921 , - 774 , - 1475 , - 2008 , - 357 , - 554 , - 583 , - 444 , - 137 , - 1678 , - 1035 , - 224 , - 1261 , - 114 , - 815 , - 1348 , - 1713 , - 1910 , - 1939 , - 1800 , - 1493 , - 1018 , - 375 , - 1580 , - 601 , - 1470 , - 155 , - 688 , - 1053 , - 1250 , - 1279 , - 1140 , - 833 , - 358 , - 1731 , - 920 , - 1957 , - 810 , - 1511 , - 28 , - 393 , - 590 , - 619 , - 480 , - 173 , - 1714 , - 1071 , - 260 , - 1297 , - 150 , - 851 , - 1384 , - 1749 , - 1946 , - 1975 , - 1836 , - 1529 , - 1054 , - 411 , - 1616 , - 637 , - 1506 , - 191 , - 724 , - 1089 , - 1286 , - 1315 , - 1176 , - 869 , - 394 , - 1767 , - 956 , - 1993 , - 846 , - 1547 , - 64 , - 429 , - 626 , - 655 , - 516 , - 209 , - 1750 , - 1107 , - 296 , - 1333 , - 186 , - 887 , - 1420 , - 1785 , - 1982 , - 2011 , - 1872 , - 1565 , - 1090 , - 447 , - 1652 , - 673 , - 1542 , - 227 , - 760 , - 1125 , - 1322 , - 1351 , - 1212 , - 905 , - 430 , - 1803 , - 992 , - 13 , - 882 , - 1583 , - 100 , - 465 , - 662 , - 691 , - 552 , - 245 , - 1786 , - 1143 , - 332 , - 1369 , - 222 , - 923 , - 1456 , - 1821 , - 2 , - 31 , - 1908 , - 1601 , - 1126 , - 483 , - 1688 , - 709 , - 1578 , - 263 , - 796 , - 1161 , - 1358 , - 1387 , - 1248 , - 941 , - 466 , - 1839 , - 1028 , - 49 , - 918 , - 1619 , - 136 , - 501 , - 698 , - 727 , - 588 , - 281 , - 1822 , - 1179 , - 368 , - 1405 , - 258 , - 959 , - 1492 , - 1857 , - 38 , - 67 , - 1944 , - 1637 , - 1162 , - 519 , - 1724 , - 745 , - 1614 , - 299 , - 832 , - 1197 , - 1394 , - 1423 , - 1284 , - 977 , - 502 , - 1875 , - 1064 , - 85 , - 954 , - 1655 , - 172 , - 537 , - 734 , - 763 , - 624 , - 317 , - 1858 , - 1215 , - 404 , - 1441 , - 294 , - 995 , - 1528 , - 1893 , - 74 , - 103 , - 1980 , - 1673 , - 1198 , - 555 , - 1760 , - 781 , - 1650 , - 335 , - 868 , - 1233 , - 1430 , - 1459 , - 1320 , - 1013 , - 538 , - 1911 , - 1100 , - 121 , - 990 , - 1691 , - 208 , - 573 , - 770 , - 799 , - 660 , - 353 , - 1894 , - 1251 , - 440 , - 1477 , - 330 , - 1031 , - 1564 , - 1929 , - 110 , - 139 , - 0 , - 1055 , - 190 , - 1501 , - 892 , - 411 , - 58 , - 1881 , - 1784 , - 1815 , - 1974 , - 213 , - 628 , - 1171 , - 1842 , - 593 , - 1520 , - 527 , - 1710 , - 973 , - 364 , - 1931 , - 1578 , - 1353 , - 1256 , - 1287 , - 1446 , - 1733 , - 100 , - 643 , - 1314 , - 65 , - 992 , - 2047 , - 1182 , - 445 , - 1884 , - 1403 , - 1050 , - 825 , - 728 , - 759 , - 918 , - 1205 , - 1620 , - 115 , - 786 , - 1585 , - 464 , - 1519 , - 654 , - 1965 , - 1356 , - 875 , - 522 , - 297 , - 200 , - 231 , - 390 , - 677 , - 1092 , - 1635 , - 258 , - 1057 , - 1984 , - 991 , - 126 , - 1437 , - 828 , - 347 , - 2042 , - 1817 , - 1720 , - 1751 , - 1910 , - 149 , - 564 , - 1107 , - 1778 , - 529 , - 1456 , - 463 , - 1646 , - 909 , - 300 , - 1867 , - 1514 , - 1289 , - 1192 , - 1223 , - 1382 , - 1669 , - 36 , - 579 , - 1250 , - 1 , - 928 , - 1983 , - 1118 , - 381 , - 1820 , - 1339 , - 986 , - 761 , - 664 , - 695 , - 854 , - 1141 , - 1556 , - 51 , - 722 , - 1521 , - 400 , - 1455 , - 590 , - 1901 , - 1292 , - 811 , - 458 , - 233 , - 136 , - 167 , - 326 , - 613 , - 1028 , - 1571 , - 194 , - 993 , - 1920 , - 927 , - 62 , - 1373 , - 764 , - 283 , - 1978 , - 1753 , - 1656 , - 1687 , - 1846 , - 85 , - 500 , - 1043 , - 1714 , - 465 , - 1392 , - 399 , - 1582 , - 845 , - 236 , - 1803 , - 1450 , - 1225 , - 1128 , - 1159 , - 1318 , - 1605 , - 2020 , - 515 , - 1186 , - 1985 , - 864 , - 1919 , - 1054 , - 317 , - 1756 , - 1275 , - 922 , - 697 , - 600 , - 631 , - 790 , - 1077 , - 1492 , - 2035 , - 658 , - 1457 , - 336 , - 1391 , - 526 , - 1837 , - 1228 , - 747 , - 394 , - 169 , - 72 , - 103 , - 262 , - 549 , - 964 , - 1507 , - 130 , - 929 , - 1856 , - 863 , - 2046 , - 1309 , - 700 , - 219 , - 1914 , - 1689 , - 1592 , - 1623 , - 1782 , - 21 , - 436 , - 979 , - 1650 , - 401 , - 1328 , - 335 , - 1518 , - 781 , - 172 , - 1739 , - 1386 , - 1161 , - 1064 , - 1095 , - 1254 , - 1541 , - 1956 , - 451 , - 1122 , - 1921 , - 800 , - 1855 , - 990 , - 253 , - 1692 , - 1211 , - 858 , - 633 , - 536 , - 567 , - 726 , - 1013 , - 1428 , - 1971 , - 594 , - 1393 , - 272 , - 1327 , - 462 , - 1773 , - 1164 , - 683 , - 330 , - 105 , - 8 , - 39 , - 198 , - 485 , - 900 , - 1443 , - 66 , - 865 , - 1792 , - 799 , - 1982 , - 1245 , - 636 , - 155 , - 1850 , - 1625 , - 1528 , - 1559 , - 1718 , - 2005 , - 372 , - 915 , - 1586 , - 337 , - 1264 , - 271 , - 1454 , - 717 , - 108 , - 1675 , - 1322 , - 1097 , - 1000 , - 1031 , - 1190 , - 1477 , - 1892 , - 387 , - 1058 , - 1857 , - 736 , - 1791 , - 926 , - 189 , - 1628 , - 1147 , - 794 , - 569 , - 472 , - 503 , - 662 , - 949 , - 1364 , - 1907 , - 530 , - 1329 , - 208 , - 1263 , - 398 , - 1709 , - 1100 , - 619 , - 266 , - 41 , - 1992 , - 2023 , - 134 , - 421 , - 836 , - 1379 , - 2 , - 801 , - 1728 , - 735 , - 1918 , - 1181 , - 572 , - 91 , - 1786 , - 1561 , - 1464 , - 1495 , - 1654 , - 1941 , - 308 , - 851 , - 1522 , - 273 , - 1200 , - 207 , - 1390 , - 653 , - 44 , - 1611 , - 1258 , - 1033 , - 936 , - 967 , - 1126 , - 1413 , - 1828 , - 323 , - 994 , - 1793 , - 672 , - 1727 , - 862 , - 125 , - 1564 , - 1083 , - 730 , - 505 , - 408 , - 439 , - 598 , - 885 , - 1300 , - 1843 , - 466 , - 1265 , - 144 , - 1199 , - 334 , - 1645 , - 1036 , - 555 , - 202 , - 2025 , - 1928 , - 1959 , - 70 , - 357 , - 772 , - 1315 , - 1986 , - 737 , - 1664 , - 671 , - 1854 , - 1117 , - 508 , - 27 , - 1722 , - 1497 , - 1400 , - 1431 , - 1590 , - 1877 , - 244 , - 787 , - 1458 , - 209 , - 1136 , - 143 , - 1326 , - 589 , - 2028 , - 1547 , - 1194 , - 969 , - 872 , - 903 , - 1062 , - 1349 , - 1764 , - 259 , - 930 , - 1729 , - 608 , - 1663 , - 798 , - 61 , - 1500 , - 1019 , - 666 , - 441 , - 344 , - 375 , - 534 , - 821 , - 1236 , - 1779 , - 402 , - 1201 , - 80 , - 1135 , - 270 , - 1581 , - 972 , - 491 , - 138 , - 1961 , - 1864 , - 1895 , - 6 , - 293 , - 708 , - 1251 , - 1922 , - 673 , - 1600 , - 607 , - 1790 , - 1053 , - 444 , - 2011 , - 1658 , - 1433 , - 1336 , - 1367 , - 1526 , - 1813 , - 180 , - 723 , - 1394 , - 145 , - 1072 , - 79 , - 1262 , - 525 , - 1964 , - 1483 , - 1130 , - 905 , - 808 , - 839 , - 998 , - 1285 , - 1700 , - 195 , - 866 , - 1665 , - 544 , - 1599 , - 734 , - 2045 , - 1436 , - 955 , - 602 , - 377 , - 280 , - 311 , - 470 , - 757 , - 1172 , - 1715 , - 338 , - 1137 , - 16 , - 1071 , - 206 , - 1517 , - 908 , - 427 , - 74 , - 1897 , - 1800 , - 1831 , - 1990 , - 229 , - 644 , - 1187 , - 1858 , - 609 , - 1536 , - 543 , - 1726 , - 989 , - 380 , - 1947 , - 1594 , - 1369 , - 1272 , - 1303 , - 1462 , - 1749 , - 116 , - 659 , - 1330 , - 81 , - 1008 , - 15 , - 1198 , - 461 , - 1900 , - 1419 , - 1066 , - 841 , - 744 , - 775 , - 934 , - 1221 , - 1636 , - 131 , - 802 , - 1601 , - 480 , - 1535 , - 670 , - 1981 , - 1372 , - 891 , - 538 , - 313 , - 216 , - 247 , - 406 , - 693 , - 1108 , - 1651 , - 274 , - 1073 , - 2000 , - 1007 , - 142 , - 1453 , - 844 , - 363 , - 10 , - 1833 , - 1736 , - 1767 , - 1926 , - 165 , - 580 , - 1123 , - 1794 , - 545 , - 1472 , - 479 , - 1662 , - 925 , - 316 , - 1883 , - 1530 , - 1305 , - 1208 , - 1239 , - 1398 , - 1685 , - 52 , - 595 , - 1266 , - 17 , - 944 , - 1999 , - 1134 , - 397 , - 1836 , - 1355 , - 1002 , - 777 , - 680 , - 711 , - 870 , - 1157 , - 1572 , - 67 , - 738 , - 1537 , - 416 , - 1471 , - 606 , - 1917 , - 1308 , - 827 , - 474 , - 249 , - 152 , - 183 , - 342 , - 629 , - 1044 , - 1587 , - 210 , - 1009 , - 1936 , - 943 , - 78 , - 1389 , - 780 , - 299 , - 1994 , - 1769 , - 1672 , - 1703 , - 1862 , - 101 , - 516 , - 1059 , - 1730 , - 481 , - 1408 , - 415 , - 1598 , - 861 , - 252 , - 1819 , - 1466 , - 1241 , - 1144 , - 1175 , - 1334 , - 1621 , - 2036 , - 531 , - 1202 , - 2001 , - 880 , - 1935 , - 1070 , - 333 , - 1772 , - 1291 , - 938 , - 713 , - 616 , - 647 , - 806 , - 1093 , - 1508 , - 3 , - 674 , - 1473 , - 352 , - 1407 , - 542 , - 1853 , - 1244 , - 763 , - 410 , - 185 , - 88 , - 119 , - 278 , - 565 , - 980 , - 1523 , - 146 , - 945 , - 1872 , - 879 , - 14 , - 1325 , - 716 , - 235 , - 1930 , - 1705 , - 1608 , - 1639 , - 1798 , - 37 , - 452 , - 995 , - 1666 , - 417 , - 1344 , - 351 , - 1534 , - 797 , - 188 , - 1755 , - 1402 , - 1177 , - 1080 , - 1111 , - 1270 , - 1557 , - 1972 , - 467 , - 1138 , - 1937 , - 816 , - 1871 , - 1006 , - 269 , - 1708 , - 1227 , - 874 , - 649 , - 552 , - 583 , - 742 , - 1029 , - 1444 , - 1987 , - 610 , - 1409 , - 288 , - 1343 , - 478 , - 1789 , - 1180 , - 699 , - 346 , - 121 , - 24 , - 55 , - 214 , - 501 , - 916 , - 1459 , - 82 , - 881 , - 1808 , - 815 , - 1998 , - 1261 , - 652 , - 171 , - 1866 , - 1641 , - 1544 , - 1575 , - 1734 , - 2021 , - 388 , - 931 , - 1602 , - 353 , - 1280 , - 287 , - 1470 , - 733 , - 124 , - 1691 , - 1338 , - 1113 , - 1016 , - 1047 , - 1206 , - 1493 , - 1908 , - 403 , - 1074 , - 1873 , - 752 , - 1807 , - 942 , - 205 , - 1644 , - 1163 , - 810 , - 585 , - 488 , - 519 , - 678 , - 965 , - 1380 , - 1923 , - 546 , - 1345 , - 224 , - 1279 , - 414 , - 1725 , - 1116 , - 635 , - 282 , - 57 , - 2008 , - 2039 , - 150 , - 437 , - 852 , - 1395 , - 18 , - 817 , - 1744 , - 751 , - 1934 , - 1197 , - 588 , - 107 , - 1802 , - 1577 , - 1480 , - 1511 , - 1670 , - 1957 , - 324 , - 867 , - 1538 , - 289 , - 1216 , - 223 , - 1406 , - 669 , - 60 , - 1627 , - 1274 , - 1049 , - 952 , - 983 , - 1142 , - 1429 , - 1844 , - 339 , - 1010 , - 1809 , - 688 , - 1743 , - 878 , - 141 , - 1580 , - 1099 , - 746 , - 521 , - 424 , - 455 , - 614 , - 901 , - 1316 , - 1859 , - 482 , - 1281 , - 160 , - 1215 , - 350 , - 1661 , - 1052 , - 571 , - 218 , - 2041 , - 1944 , - 1975 , - 86 , - 373 , - 788 , - 1331 , - 2002 , - 753 , - 1680 , - 687 , - 1870 , - 1133 , - 524 , - 43 , - 1738 , - 1513 , - 1416 , - 1447 , - 1606 , - 1893 , - 260 , - 803 , - 1474 , - 225 , - 1152 , - 159 , - 1342 , - 605 , - 2044 , - 1563 , - 1210 , - 985 , - 888 , - 919 , - 1078 , - 1365 , - 1780 , - 275 , - 946 , - 1745 , - 624 , - 1679 , - 814 , - 77 , - 1516 , - 1035 , - 682 , - 457 , - 360 , - 391 , - 550 , - 837 , - 1252 , - 1795 , - 418 , - 1217 , - 96 , - 1151 , - 286 , - 1597 , - 988 , - 507 , - 154 , - 1977 , - 1880 , - 1911 , - 22 , - 309 , - 724 , - 1267 , - 1938 , - 689 , - 1616 , - 623 , - 1806 , - 1069 , - 460 , - 2027 , - 1674 , - 1449 , - 1352 , - 1383 , - 1542 , - 1829 , - 196 , - 739 , - 1410 , - 161 , - 1088 , - 95 , - 1278 , - 541 , - 1980 , - 1499 , - 1146 , - 921 , - 824 , - 855 , - 1014 , - 1301 , - 1716 , - 211 , - 882 , - 1681 , - 560 , - 1615 , - 750 , - 13 , - 1452 , - 971 , - 618 , - 393 , - 296 , - 327 , - 486 , - 773 , - 1188 , - 1731 , - 354 , - 1153 , - 32 , - 1087 , - 222 , - 1533 , - 924 , - 443 , - 90 , - 1913 , - 1816 , - 1847 , - 2006 , - 245 , - 660 , - 1203 , - 1874 , - 625 , - 1552 , - 559 , - 1742 , - 1005 , - 396 , - 1963 , - 1610 , - 1385 , - 1288 , - 1319 , - 1478 , - 1765 , - 132 , - 675 , - 1346 , - 97 , - 1024 , - 31 , - 1214 , - 477 , - 1916 , - 1435 , - 1082 , - 857 , - 760 , - 791 , - 950 , - 1237 , - 1652 , - 147 , - 818 , - 1617 , - 496 , - 1551 , - 686 , - 1997 , - 1388 , - 907 , - 554 , - 329 , - 232 , - 263 , - 422 , - 709 , - 1124 , - 1667 , - 290 , - 1089 , - 2016 , - 1023 , - 158 , - 1469 , - 860 , - 379 , - 26 , - 1849 , - 1752 , - 1783 , - 1942 , - 181 , - 596 , - 1139 , - 1810 , - 561 , - 1488 , - 495 , - 1678 , - 941 , - 332 , - 1899 , - 1546 , - 1321 , - 1224 , - 1255 , - 1414 , - 1701 , - 68 , - 611 , - 1282 , - 33 , - 960 , - 2015 , - 1150 , - 413 , - 1852 , - 1371 , - 1018 , - 793 , - 696 , - 727 , - 886 , - 1173 , - 1588 , - 83 , - 754 , - 1553 , - 432 , - 1487 , - 622 , - 1933 , - 1324 , - 843 , - 490 , - 265 , - 168 , - 199 , - 358 , - 645 , - 1060 , - 1603 , - 226 , - 1025 , - 1952 , - 959 , - 94 , - 1405 , - 796 , - 315 , - 2010 , - 1785 , - 1688 , - 1719 , - 1878 , - 117 , - 532 , - 1075 , - 1746 , - 497 , - 1424 , - 431 , - 1614 , - 877 , - 268 , - 1835 , - 1482 , - 1257 , - 1160 , - 1191 , - 1350 , - 1637 , - 4 , - 547 , - 1218 , - 2017 , - 896 , - 1951 , - 1086 , - 349 , - 1788 , - 1307 , - 954 , - 729 , - 632 , - 663 , - 822 , - 1109 , - 1524 , - 19 , - 690 , - 1489 , - 368 , - 1423 , - 558 , - 1869 , - 1260 , - 779 , - 426 , - 201 , - 104 , - 135 , - 294 , - 581 , - 996 , - 1539 , - 162 , - 961 , - 1888 , - 895 , - 30 , - 1341 , - 732 , - 251 , - 1946 , - 1721 , - 1624 , - 1655 , - 1814 , - 53 , - 468 , - 1011 , - 1682 , - 433 , - 1360 , - 367 , - 1550 , - 813 , - 204 , - 1771 , - 1418 , - 1193 , - 1096 , - 1127 , - 1286 , - 1573 , - 1988 , - 483 , - 1154 , - 1953 , - 832 , - 1887 , - 1022 , - 285 , - 1724 , - 1243 , - 890 , - 665 , - 568 , - 599 , - 758 , - 1045 , - 1460 , - 2003 , - 626 , - 1425 , - 304 , - 1359 , - 494 , - 1805 , - 1196 , - 715 , - 362 , - 137 , - 40 , - 71 , - 230 , - 517 , - 932 , - 1475 , - 98 , - 897 , - 1824 , - 831 , - 2014 , - 1277 , - 668 , - 187 , - 1882 , - 1657 , - 1560 , - 1591 , - 1750 , - 2037 , - 404 , - 947 , - 1618 , - 369 , - 1296 , - 303 , - 1486 , - 749 , - 140 , - 1707 , - 1354 , - 1129 , - 1032 , - 1063 , - 1222 , - 1509 , - 1924 , - 419 , - 1090 , - 1889 , - 768 , - 1823 , - 958 , - 221 , - 1660 , - 1179 , - 826 , - 601 , - 504 , - 535 , - 694 , - 981 , - 1396 , - 1939 , - 562 , - 1361 , - 240 , - 1295 , - 430 , - 1741 , - 1132 , - 651 , - 298 , - 73 , - 2024 , - 7 , - 166 , - 453 , - 868 , - 1411 , - 34 , - 833 , - 1760 , - 767 , - 1950 , - 1213 , - 604 , - 123 , - 1818 , - 1593 , - 1496 , - 1527 , - 1686 , - 1973 , - 340 , - 883 , - 1554 , - 305 , - 1232 , - 239 , - 1422 , - 685 , - 76 , - 1643 , - 1290 , - 1065 , - 968 , - 999 , - 1158 , - 1445 , - 1860 , - 355 , - 1026 , - 1825 , - 704 , - 1759 , - 894 , - 157 , - 1596 , - 1115 , - 762 , - 537 , - 440 , - 471 , - 630 , - 917 , - 1332 , - 1875 , - 498 , - 1297 , - 176 , - 1231 , - 366 , - 1677 , - 1068 , - 587 , - 234 , - 9 , - 1960 , - 1991 , - 102 , - 389 , - 804 , - 1347 , - 2018 , - 769 , - 1696 , - 703 , - 1886 , - 1149 , - 540 , - 59 , - 1754 , - 1529 , - 1432 , - 1463 , - 1622 , - 1909 , - 276 , - 819 , - 1490 , - 241 , - 1168 , - 175 , - 1358 , - 621 , - 12 , - 1579 , - 1226 , - 1001 , - 904 , - 935 , - 1094 , - 1381 , - 1796 , - 291 , - 962 , - 1761 , - 640 , - 1695 , - 830 , - 93 , - 1532 , - 1051 , - 698 , - 473 , - 376 , - 407 , - 566 , - 853 , - 1268 , - 1811 , - 434 , - 1233 , - 112 , - 1167 , - 302 , - 1613 , - 1004 , - 523 , - 170 , - 1993 , - 1896 , - 1927 , - 38 , - 325 , - 740 , - 1283 , - 1954 , - 705 , - 1632 , - 639 , - 1822 , - 1085 , - 476 , - 2043 , - 1690 , - 1465 , - 1368 , - 1399 , - 1558 , - 1845 , - 212 , - 755 , - 1426 , - 177 , - 1104 , - 111 , - 1294 , - 557 , - 1996 , - 1515 , - 1162 , - 937 , - 840 , - 871 , - 1030 , - 1317 , - 1732 , - 227 , - 898 , - 1697 , - 576 , - 1631 , - 766 , - 29 , - 1468 , - 987 , - 634 , - 409 , - 312 , - 343 , - 502 , - 789 , - 1204 , - 1747 , - 370 , - 1169 , - 48 , - 1103 , - 238 , - 1549 , - 940 , - 459 , - 106 , - 1929 , - 1832 , - 1863 , - 2022 , - 261 , - 676 , - 1219 , - 1890 , - 641 , - 1568 , - 575 , - 1758 , - 1021 , - 412 , - 1979 , - 1626 , - 1401 , - 1304 , - 1335 , - 1494 , - 1781 , - 148 , - 691 , - 1362 , - 113 , - 1040 , - 47 , - 1230 , - 493 , - 1932 , - 1451 , - 1098 , - 873 , - 776 , - 807 , - 966 , - 1253 , - 1668 , - 163 , - 834 , - 1633 , - 512 , - 1567 , - 702 , - 2013 , - 1404 , - 923 , - 570 , - 345 , - 248 , - 279 , - 438 , - 725 , - 1140 , - 1683 , - 306 , - 1105 , - 2032 , - 1039 , - 174 , - 1485 , - 876 , - 395 , - 42 , - 1865 , - 1768 , - 1799 , - 1958 , - 197 , - 612 , - 1155 , - 1826 , - 577 , - 1504 , - 511 , - 1694 , - 957 , - 348 , - 1915 , - 1562 , - 1337 , - 1240 , - 1271 , - 1430 , - 1717 , - 84 , - 627 , - 1298 , - 49 , - 976 , - 2031 , - 1166 , - 429 , - 1868 , - 1387 , - 1034 , - 809 , - 712 , - 743 , - 902 , - 1189 , - 1604 , - 99 , - 770 , - 1569 , - 448 , - 1503 , - 638 , - 1949 , - 1340 , - 859 , - 506 , - 281 , - 184 , - 215 , - 374 , - 661 , - 1076 , - 1619 , - 242 , - 1041 , - 1968 , - 975 , - 110 , - 1421 , - 812 , - 331 , - 2026 , - 1801 , - 1704 , - 1735 , - 1894 , - 133 , - 548 , - 1091 , - 1762 , - 513 , - 1440 , - 447 , - 1630 , - 893 , - 284 , - 1851 , - 1498 , - 1273 , - 1176 , - 1207 , - 1366 , - 1653 , - 20 , - 563 , - 1234 , - 2033 , - 912 , - 1967 , - 1102 , - 365 , - 1804 , - 1323 , - 970 , - 745 , - 648 , - 679 , - 838 , - 1125 , - 1540 , - 35 , - 706 , - 1505 , - 384 , - 1439 , - 574 , - 1885 , - 1276 , - 795 , - 442 , - 217 , - 120 , - 151 , - 310 , - 597 , - 1012 , - 1555 , - 178 , - 977 , - 1904 , - 911 , - 46 , - 1357 , - 748 , - 267 , - 1962 , - 1737 , - 1640 , - 1671 , - 1830 , - 69 , - 484 , - 1027 , - 1698 , - 449 , - 1376 , - 383 , - 1566 , - 829 , - 220 , - 1787 , - 1434 , - 1209 , - 1112 , - 1143 , - 1302 , - 1589 , - 2004 , - 499 , - 1170 , - 1969 , - 848 , - 1903 , - 1038 , - 301 , - 1740 , - 1259 , - 906 , - 681 , - 584 , - 615 , - 774 , - 1061 , - 1476 , - 2019 , - 642 , - 1441 , - 320 , - 1375 , - 510 , - 1821 , - 1212 , - 731 , - 378 , - 153 , - 56 , - 87 , - 246 , - 533 , - 948 , - 1491 , - 114 , - 913 , - 1840 , - 847 , - 2030 , - 1293 , - 684 , - 203 , - 1898 , - 1673 , - 1576 , - 1607 , - 1766 , - 5 , - 420 , - 963 , - 1634 , - 385 , - 1312 , - 319 , - 1502 , - 765 , - 156 , - 1723 , - 1370 , - 1145 , - 1048 , - 1079 , - 1238 , - 1525 , - 1940 , - 435 , - 1106 , - 1905 , - 784 , - 1839 , - 974 , - 237 , - 1676 , - 1195 , - 842 , - 617 , - 520 , - 551 , - 710 , - 997 , - 1412 , - 1955 , - 578 , - 1377 , - 256 , - 1311 , - 446 , - 1757 , - 1148 , - 667 , - 314 , - 89 , - 2040 , - 23 , - 182 , - 469 , - 884 , - 1427 , - 50 , - 849 , - 1776 , - 783 , - 1966 , - 1229 , - 620 , - 139 , - 1834 , - 1609 , - 1512 , - 1543 , - 1702 , - 1989 , - 356 , - 899 , - 1570 , - 321 , - 1248 , - 255 , - 1438 , - 701 , - 92 , - 1659 , - 1306 , - 1081 , - 984 , - 1015 , - 1174 , - 1461 , - 1876 , - 371 , - 1042 , - 1841 , - 720 , - 1775 , - 910 , - 173 , - 1612 , - 1131 , - 778 , - 553 , - 456 , - 487 , - 646 , - 933 , - 1348 , - 1891 , - 514 , - 1313 , - 192 , - 1247 , - 382 , - 1693 , - 1084 , - 603 , - 250 , - 25 , - 1976 , - 2007 , - 118 , - 405 , - 820 , - 1363 , - 2034 , - 785 , - 1712 , - 719 , - 1902 , - 1165 , - 556 , - 75 , - 1770 , - 1545 , - 1448 , - 1479 , - 1638 , - 1925 , - 292 , - 835 , - 1506 , - 257 , - 1184 , - 191 , - 1374 , - 637 , - 28 , - 1595 , - 1242 , - 1017 , - 920 , - 951 , - 1110 , - 1397 , - 1812 , - 307 , - 978 , - 1777 , - 656 , - 1711 , - 846 , - 109 , - 1548 , - 1067 , - 714 , - 489 , - 392 , - 423 , - 582 , - 869 , - 1284 , - 1827 , - 450 , - 1249 , - 128 , - 1183 , - 318 , - 1629 , - 1020 , - 539 , - 186 , - 2009 , - 1912 , - 1943 , - 54 , - 341 , - 756 , - 1299 , - 1970 , - 721 , - 1648 , - 655 , - 1838 , - 1101 , - 492 , - 11 , - 1706 , - 1481 , - 1384 , - 1415 , - 1574 , - 1861 , - 228 , - 771 , - 1442 , - 193 , - 1120 , - 127 , - 1310 , - 573 , - 2012 , - 1531 , - 1178 , - 953 , - 856 , - 887 , - 1046 , - 1333 , - 1748 , - 243 , - 914 , - 1713 , - 592 , - 1647 , - 782 , - 45 , - 1484 , - 1003 , - 650 , - 425 , - 328 , - 359 , - 518 , - 805 , - 1220 , - 1763 , - 386 , - 1185 , - 64 , - 1119 , - 254 , - 1565 , - 956 , - 475 , - 122 , - 1945 , - 1848 , - 1879 , - 2038 , - 277 , - 692 , - 1235 , - 1906 , - 657 , - 1584 , - 591 , - 1774 , - 1037 , - 428 , - 1995 , - 1642 , - 1417 , - 1320 , - 1351 , - 1510 , - 1797 , - 164 , - 707 , - 1378 , - 129 , - 1056 , - 63 , - 1246 , - 509 , - 1948 , - 1467 , - 1114 , - 889 , - 792 , - 823 , - 982 , - 1269 , - 1684 , - 179 , - 850 , - 1649 , - 528 , - 1583 , - 718 , - 2029 , - 1420 , - 939 , - 586 , - 361 , - 264 , - 295 , - 454 , - 741 , - 1156 , - 1699 , - 322 , - 1121 , - 0 , - 1487 , - 730 , - 369 , - 932 , - 835 , - 606 , - 773 , - 1864 , - 183 , - 482 , - 1177 , - 684 , - 1643 , - 358 , - 1581 , - 1616 , - 991 , - 234 , - 1985 , - 436 , - 339 , - 110 , - 277 , - 1368 , - 1799 , - 2098 , - 681 , - 188 , - 1147 , - 1974 , - 1085 , - 1120 , - 495 , - 1850 , - 1489 , - 2052 , - 1955 , - 1726 , - 1893 , - 872 , - 1303 , - 1602 , - 185 , - 1804 , - 651 , - 1478 , - 589 , - 624 , - 2111 , - 1354 , - 993 , - 1556 , - 1459 , - 1230 , - 1397 , - 376 , - 807 , - 1106 , - 1801 , - 1308 , - 155 , - 982 , - 93 , - 128 , - 1615 , - 858 , - 497 , - 1060 , - 963 , - 734 , - 901 , - 1992 , - 311 , - 610 , - 1305 , - 812 , - 1771 , - 486 , - 1709 , - 1744 , - 1119 , - 362 , - 1 , - 564 , - 467 , - 238 , - 405 , - 1496 , - 1927 , - 114 , - 809 , - 316 , - 1275 , - 2102 , - 1213 , - 1248 , - 623 , - 1978 , - 1617 , - 68 , - 2083 , - 1854 , - 2021 , - 1000 , - 1431 , - 1730 , - 313 , - 1932 , - 779 , - 1606 , - 717 , - 752 , - 127 , - 1482 , - 1121 , - 1684 , - 1587 , - 1358 , - 1525 , - 504 , - 935 , - 1234 , - 1929 , - 1436 , - 283 , - 1110 , - 221 , - 256 , - 1743 , - 986 , - 625 , - 1188 , - 1091 , - 862 , - 1029 , - 8 , - 439 , - 738 , - 1433 , - 940 , - 1899 , - 614 , - 1837 , - 1872 , - 1247 , - 490 , - 129 , - 692 , - 595 , - 366 , - 533 , - 1624 , - 2055 , - 242 , - 937 , - 444 , - 1403 , - 118 , - 1341 , - 1376 , - 751 , - 2106 , - 1745 , - 196 , - 99 , - 1982 , - 37 , - 1128 , - 1559 , - 1858 , - 441 , - 2060 , - 907 , - 1734 , - 845 , - 880 , - 255 , - 1610 , - 1249 , - 1812 , - 1715 , - 1486 , - 1653 , - 632 , - 1063 , - 1362 , - 2057 , - 1564 , - 411 , - 1238 , - 349 , - 384 , - 1871 , - 1114 , - 753 , - 1316 , - 1219 , - 990 , - 1157 , - 136 , - 567 , - 866 , - 1561 , - 1068 , - 2027 , - 742 , - 1965 , - 2000 , - 1375 , - 618 , - 257 , - 820 , - 723 , - 494 , - 661 , - 1752 , - 71 , - 370 , - 1065 , - 572 , - 1531 , - 246 , - 1469 , - 1504 , - 879 , - 122 , - 1873 , - 324 , - 227 , - 2110 , - 165 , - 1256 , - 1687 , - 1986 , - 569 , - 76 , - 1035 , - 1862 , - 973 , - 1008 , - 383 , - 1738 , - 1377 , - 1940 , - 1843 , - 1614 , - 1781 , - 760 , - 1191 , - 1490 , - 73 , - 1692 , - 539 , - 1366 , - 477 , - 512 , - 1999 , - 1242 , - 881 , - 1444 , - 1347 , - 1118 , - 1285 , - 264 , - 695 , - 994 , - 1689 , - 1196 , - 43 , - 870 , - 2093 , - 16 , - 1503 , - 746 , - 385 , - 948 , - 851 , - 622 , - 789 , - 1880 , - 199 , - 498 , - 1193 , - 700 , - 1659 , - 374 , - 1597 , - 1632 , - 1007 , - 250 , - 2001 , - 452 , - 355 , - 126 , - 293 , - 1384 , - 1815 , - 2 , - 697 , - 204 , - 1163 , - 1990 , - 1101 , - 1136 , - 511 , - 1866 , - 1505 , - 2068 , - 1971 , - 1742 , - 1909 , - 888 , - 1319 , - 1618 , - 201 , - 1820 , - 667 , - 1494 , - 605 , - 640 , - 15 , - 1370 , - 1009 , - 1572 , - 1475 , - 1246 , - 1413 , - 392 , - 823 , - 1122 , - 1817 , - 1324 , - 171 , - 998 , - 109 , - 144 , - 1631 , - 874 , - 513 , - 1076 , - 979 , - 750 , - 917 , - 2008 , - 327 , - 626 , - 1321 , - 828 , - 1787 , - 502 , - 1725 , - 1760 , - 1135 , - 378 , - 17 , - 580 , - 483 , - 254 , - 421 , - 1512 , - 1943 , - 130 , - 825 , - 332 , - 1291 , - 6 , - 1229 , - 1264 , - 639 , - 1994 , - 1633 , - 84 , - 2099 , - 1870 , - 2037 , - 1016 , - 1447 , - 1746 , - 329 , - 1948 , - 795 , - 1622 , - 733 , - 768 , - 143 , - 1498 , - 1137 , - 1700 , - 1603 , - 1374 , - 1541 , - 520 , - 951 , - 1250 , - 1945 , - 1452 , - 299 , - 1126 , - 237 , - 272 , - 1759 , - 1002 , - 641 , - 1204 , - 1107 , - 878 , - 1045 , - 24 , - 455 , - 754 , - 1449 , - 956 , - 1915 , - 630 , - 1853 , - 1888 , - 1263 , - 506 , - 145 , - 708 , - 611 , - 382 , - 549 , - 1640 , - 2071 , - 258 , - 953 , - 460 , - 1419 , - 134 , - 1357 , - 1392 , - 767 , - 10 , - 1761 , - 212 , - 115 , - 1998 , - 53 , - 1144 , - 1575 , - 1874 , - 457 , - 2076 , - 923 , - 1750 , - 861 , - 896 , - 271 , - 1626 , - 1265 , - 1828 , - 1731 , - 1502 , - 1669 , - 648 , - 1079 , - 1378 , - 2073 , - 1580 , - 427 , - 1254 , - 365 , - 400 , - 1887 , - 1130 , - 769 , - 1332 , - 1235 , - 1006 , - 1173 , - 152 , - 583 , - 882 , - 1577 , - 1084 , - 2043 , - 758 , - 1981 , - 2016 , - 1391 , - 634 , - 273 , - 836 , - 739 , - 510 , - 677 , - 1768 , - 87 , - 386 , - 1081 , - 588 , - 1547 , - 262 , - 1485 , - 1520 , - 895 , - 138 , - 1889 , - 340 , - 243 , - 14 , - 181 , - 1272 , - 1703 , - 2002 , - 585 , - 92 , - 1051 , - 1878 , - 989 , - 1024 , - 399 , - 1754 , - 1393 , - 1956 , - 1859 , - 1630 , - 1797 , - 776 , - 1207 , - 1506 , - 89 , - 1708 , - 555 , - 1382 , - 493 , - 528 , - 2015 , - 1258 , - 897 , - 1460 , - 1363 , - 1134 , - 1301 , - 280 , - 711 , - 1010 , - 1705 , - 1212 , - 59 , - 886 , - 2109 , - 32 , - 1519 , - 762 , - 401 , - 964 , - 867 , - 638 , - 805 , - 1896 , - 215 , - 514 , - 1209 , - 716 , - 1675 , - 390 , - 1613 , - 1648 , - 1023 , - 266 , - 2017 , - 468 , - 371 , - 142 , - 309 , - 1400 , - 1831 , - 18 , - 713 , - 220 , - 1179 , - 2006 , - 1117 , - 1152 , - 527 , - 1882 , - 1521 , - 2084 , - 1987 , - 1758 , - 1925 , - 904 , - 1335 , - 1634 , - 217 , - 1836 , - 683 , - 1510 , - 621 , - 656 , - 31 , - 1386 , - 1025 , - 1588 , - 1491 , - 1262 , - 1429 , - 408 , - 839 , - 1138 , - 1833 , - 1340 , - 187 , - 1014 , - 125 , - 160 , - 1647 , - 890 , - 529 , - 1092 , - 995 , - 766 , - 933 , - 2024 , - 343 , - 642 , - 1337 , - 844 , - 1803 , - 518 , - 1741 , - 1776 , - 1151 , - 394 , - 33 , - 596 , - 499 , - 270 , - 437 , - 1528 , - 1959 , - 146 , - 841 , - 348 , - 1307 , - 22 , - 1245 , - 1280 , - 655 , - 2010 , - 1649 , - 100 , - 3 , - 1886 , - 2053 , - 1032 , - 1463 , - 1762 , - 345 , - 1964 , - 811 , - 1638 , - 749 , - 784 , - 159 , - 1514 , - 1153 , - 1716 , - 1619 , - 1390 , - 1557 , - 536 , - 967 , - 1266 , - 1961 , - 1468 , - 315 , - 1142 , - 253 , - 288 , - 1775 , - 1018 , - 657 , - 1220 , - 1123 , - 894 , - 1061 , - 40 , - 471 , - 770 , - 1465 , - 972 , - 1931 , - 646 , - 1869 , - 1904 , - 1279 , - 522 , - 161 , - 724 , - 627 , - 398 , - 565 , - 1656 , - 2087 , - 274 , - 969 , - 476 , - 1435 , - 150 , - 1373 , - 1408 , - 783 , - 26 , - 1777 , - 228 , - 131 , - 2014 , - 69 , - 1160 , - 1591 , - 1890 , - 473 , - 2092 , - 939 , - 1766 , - 877 , - 912 , - 287 , - 1642 , - 1281 , - 1844 , - 1747 , - 1518 , - 1685 , - 664 , - 1095 , - 1394 , - 2089 , - 1596 , - 443 , - 1270 , - 381 , - 416 , - 1903 , - 1146 , - 785 , - 1348 , - 1251 , - 1022 , - 1189 , - 168 , - 599 , - 898 , - 1593 , - 1100 , - 2059 , - 774 , - 1997 , - 2032 , - 1407 , - 650 , - 289 , - 852 , - 755 , - 526 , - 693 , - 1784 , - 103 , - 402 , - 1097 , - 604 , - 1563 , - 278 , - 1501 , - 1536 , - 911 , - 154 , - 1905 , - 356 , - 259 , - 30 , - 197 , - 1288 , - 1719 , - 2018 , - 601 , - 108 , - 1067 , - 1894 , - 1005 , - 1040 , - 415 , - 1770 , - 1409 , - 1972 , - 1875 , - 1646 , - 1813 , - 792 , - 1223 , - 1522 , - 105 , - 1724 , - 571 , - 1398 , - 509 , - 544 , - 2031 , - 1274 , - 913 , - 1476 , - 1379 , - 1150 , - 1317 , - 296 , - 727 , - 1026 , - 1721 , - 1228 , - 75 , - 902 , - 13 , - 48 , - 1535 , - 778 , - 417 , - 980 , - 883 , - 654 , - 821 , - 1912 , - 231 , - 530 , - 1225 , - 732 , - 1691 , - 406 , - 1629 , - 1664 , - 1039 , - 282 , - 2033 , - 484 , - 387 , - 158 , - 325 , - 1416 , - 1847 , - 34 , - 729 , - 236 , - 1195 , - 2022 , - 1133 , - 1168 , - 543 , - 1898 , - 1537 , - 2100 , - 2003 , - 1774 , - 1941 , - 920 , - 1351 , - 1650 , - 233 , - 1852 , - 699 , - 1526 , - 637 , - 672 , - 47 , - 1402 , - 1041 , - 1604 , - 1507 , - 1278 , - 1445 , - 424 , - 855 , - 1154 , - 1849 , - 1356 , - 203 , - 1030 , - 141 , - 176 , - 1663 , - 906 , - 545 , - 1108 , - 1011 , - 782 , - 949 , - 2040 , - 359 , - 658 , - 1353 , - 860 , - 1819 , - 534 , - 1757 , - 1792 , - 1167 , - 410 , - 49 , - 612 , - 515 , - 286 , - 453 , - 1544 , - 1975 , - 162 , - 857 , - 364 , - 1323 , - 38 , - 1261 , - 1296 , - 671 , - 2026 , - 1665 , - 116 , - 19 , - 1902 , - 2069 , - 1048 , - 1479 , - 1778 , - 361 , - 1980 , - 827 , - 1654 , - 765 , - 800 , - 175 , - 1530 , - 1169 , - 1732 , - 1635 , - 1406 , - 1573 , - 552 , - 983 , - 1282 , - 1977 , - 1484 , - 331 , - 1158 , - 269 , - 304 , - 1791 , - 1034 , - 673 , - 1236 , - 1139 , - 910 , - 1077 , - 56 , - 487 , - 786 , - 1481 , - 988 , - 1947 , - 662 , - 1885 , - 1920 , - 1295 , - 538 , - 177 , - 740 , - 643 , - 414 , - 581 , - 1672 , - 2103 , - 290 , - 985 , - 492 , - 1451 , - 166 , - 1389 , - 1424 , - 799 , - 42 , - 1793 , - 244 , - 147 , - 2030 , - 85 , - 1176 , - 1607 , - 1906 , - 489 , - 2108 , - 955 , - 1782 , - 893 , - 928 , - 303 , - 1658 , - 1297 , - 1860 , - 1763 , - 1534 , - 1701 , - 680 , - 1111 , - 1410 , - 2105 , - 1612 , - 459 , - 1286 , - 397 , - 432 , - 1919 , - 1162 , - 801 , - 1364 , - 1267 , - 1038 , - 1205 , - 184 , - 615 , - 914 , - 1609 , - 1116 , - 2075 , - 790 , - 2013 , - 2048 , - 1423 , - 666 , - 305 , - 868 , - 771 , - 542 , - 709 , - 1800 , - 119 , - 418 , - 1113 , - 620 , - 1579 , - 294 , - 1517 , - 1552 , - 927 , - 170 , - 1921 , - 372 , - 275 , - 46 , - 213 , - 1304 , - 1735 , - 2034 , - 617 , - 124 , - 1083 , - 1910 , - 1021 , - 1056 , - 431 , - 1786 , - 1425 , - 1988 , - 1891 , - 1662 , - 1829 , - 808 , - 1239 , - 1538 , - 121 , - 1740 , - 587 , - 1414 , - 525 , - 560 , - 2047 , - 1290 , - 929 , - 1492 , - 1395 , - 1166 , - 1333 , - 312 , - 743 , - 1042 , - 1737 , - 1244 , - 91 , - 918 , - 29 , - 64 , - 1551 , - 794 , - 433 , - 996 , - 899 , - 670 , - 837 , - 1928 , - 247 , - 546 , - 1241 , - 748 , - 1707 , - 422 , - 1645 , - 1680 , - 1055 , - 298 , - 2049 , - 500 , - 403 , - 174 , - 341 , - 1432 , - 1863 , - 50 , - 745 , - 252 , - 1211 , - 2038 , - 1149 , - 1184 , - 559 , - 1914 , - 1553 , - 4 , - 2019 , - 1790 , - 1957 , - 936 , - 1367 , - 1666 , - 249 , - 1868 , - 715 , - 1542 , - 653 , - 688 , - 63 , - 1418 , - 1057 , - 1620 , - 1523 , - 1294 , - 1461 , - 440 , - 871 , - 1170 , - 1865 , - 1372 , - 219 , - 1046 , - 157 , - 192 , - 1679 , - 922 , - 561 , - 1124 , - 1027 , - 798 , - 965 , - 2056 , - 375 , - 674 , - 1369 , - 876 , - 1835 , - 550 , - 1773 , - 1808 , - 1183 , - 426 , - 65 , - 628 , - 531 , - 302 , - 469 , - 1560 , - 1991 , - 178 , - 873 , - 380 , - 1339 , - 54 , - 1277 , - 1312 , - 687 , - 2042 , - 1681 , - 132 , - 35 , - 1918 , - 2085 , - 1064 , - 1495 , - 1794 , - 377 , - 1996 , - 843 , - 1670 , - 781 , - 816 , - 191 , - 1546 , - 1185 , - 1748 , - 1651 , - 1422 , - 1589 , - 568 , - 999 , - 1298 , - 1993 , - 1500 , - 347 , - 1174 , - 285 , - 320 , - 1807 , - 1050 , - 689 , - 1252 , - 1155 , - 926 , - 1093 , - 72 , - 503 , - 802 , - 1497 , - 1004 , - 1963 , - 678 , - 1901 , - 1936 , - 1311 , - 554 , - 193 , - 756 , - 659 , - 430 , - 597 , - 1688 , - 7 , - 306 , - 1001 , - 508 , - 1467 , - 182 , - 1405 , - 1440 , - 815 , - 58 , - 1809 , - 260 , - 163 , - 2046 , - 101 , - 1192 , - 1623 , - 1922 , - 505 , - 12 , - 971 , - 1798 , - 909 , - 944 , - 319 , - 1674 , - 1313 , - 1876 , - 1779 , - 1550 , - 1717 , - 696 , - 1127 , - 1426 , - 9 , - 1628 , - 475 , - 1302 , - 413 , - 448 , - 1935 , - 1178 , - 817 , - 1380 , - 1283 , - 1054 , - 1221 , - 200 , - 631 , - 930 , - 1625 , - 1132 , - 2091 , - 806 , - 2029 , - 2064 , - 1439 , - 682 , - 321 , - 884 , - 787 , - 558 , - 725 , - 1816 , - 135 , - 434 , - 1129 , - 636 , - 1595 , - 310 , - 1533 , - 1568 , - 943 , - 186 , - 1937 , - 388 , - 291 , - 62 , - 229 , - 1320 , - 1751 , - 2050 , - 633 , - 140 , - 1099 , - 1926 , - 1037 , - 1072 , - 447 , - 1802 , - 1441 , - 2004 , - 1907 , - 1678 , - 1845 , - 824 , - 1255 , - 1554 , - 137 , - 1756 , - 603 , - 1430 , - 541 , - 576 , - 2063 , - 1306 , - 945 , - 1508 , - 1411 , - 1182 , - 1349 , - 328 , - 759 , - 1058 , - 1753 , - 1260 , - 107 , - 934 , - 45 , - 80 , - 1567 , - 810 , - 449 , - 1012 , - 915 , - 686 , - 853 , - 1944 , - 263 , - 562 , - 1257 , - 764 , - 1723 , - 438 , - 1661 , - 1696 , - 1071 , - 314 , - 2065 , - 516 , - 419 , - 190 , - 357 , - 1448 , - 1879 , - 66 , - 761 , - 268 , - 1227 , - 2054 , - 1165 , - 1200 , - 575 , - 1930 , - 1569 , - 20 , - 2035 , - 1806 , - 1973 , - 952 , - 1383 , - 1682 , - 265 , - 1884 , - 731 , - 1558 , - 669 , - 704 , - 79 , - 1434 , - 1073 , - 1636 , - 1539 , - 1310 , - 1477 , - 456 , - 887 , - 1186 , - 1881 , - 1388 , - 235 , - 1062 , - 173 , - 208 , - 1695 , - 938 , - 577 , - 1140 , - 1043 , - 814 , - 981 , - 2072 , - 391 , - 690 , - 1385 , - 892 , - 1851 , - 566 , - 1789 , - 1824 , - 1199 , - 442 , - 81 , - 644 , - 547 , - 318 , - 485 , - 1576 , - 2007 , - 194 , - 889 , - 396 , - 1355 , - 70 , - 1293 , - 1328 , - 703 , - 2058 , - 1697 , - 148 , - 51 , - 1934 , - 2101 , - 1080 , - 1511 , - 1810 , - 393 , - 2012 , - 859 , - 1686 , - 797 , - 832 , - 207 , - 1562 , - 1201 , - 1764 , - 1667 , - 1438 , - 1605 , - 584 , - 1015 , - 1314 , - 2009 , - 1516 , - 363 , - 1190 , - 301 , - 336 , - 1823 , - 1066 , - 705 , - 1268 , - 1171 , - 942 , - 1109 , - 88 , - 519 , - 818 , - 1513 , - 1020 , - 1979 , - 694 , - 1917 , - 1952 , - 1327 , - 570 , - 209 , - 772 , - 675 , - 446 , - 613 , - 1704 , - 23 , - 322 , - 1017 , - 524 , - 1483 , - 198 , - 1421 , - 1456 , - 831 , - 74 , - 1825 , - 276 , - 179 , - 2062 , - 117 , - 1208 , - 1639 , - 1938 , - 521 , - 28 , - 987 , - 1814 , - 925 , - 960 , - 335 , - 1690 , - 1329 , - 1892 , - 1795 , - 1566 , - 1733 , - 712 , - 1143 , - 1442 , - 25 , - 1644 , - 491 , - 1318 , - 429 , - 464 , - 1951 , - 1194 , - 833 , - 1396 , - 1299 , - 1070 , - 1237 , - 216 , - 647 , - 946 , - 1641 , - 1148 , - 2107 , - 822 , - 2045 , - 2080 , - 1455 , - 698 , - 337 , - 900 , - 803 , - 574 , - 741 , - 1832 , - 151 , - 450 , - 1145 , - 652 , - 1611 , - 326 , - 1549 , - 1584 , - 959 , - 202 , - 1953 , - 404 , - 307 , - 78 , - 245 , - 1336 , - 1767 , - 2066 , - 649 , - 156 , - 1115 , - 1942 , - 1053 , - 1088 , - 463 , - 1818 , - 1457 , - 2020 , - 1923 , - 1694 , - 1861 , - 840 , - 1271 , - 1570 , - 153 , - 1772 , - 619 , - 1446 , - 557 , - 592 , - 2079 , - 1322 , - 961 , - 1524 , - 1427 , - 1198 , - 1365 , - 344 , - 775 , - 1074 , - 1769 , - 1276 , - 123 , - 950 , - 61 , - 96 , - 1583 , - 826 , - 465 , - 1028 , - 931 , - 702 , - 869 , - 1960 , - 279 , - 578 , - 1273 , - 780 , - 1739 , - 454 , - 1677 , - 1712 , - 1087 , - 330 , - 2081 , - 532 , - 435 , - 206 , - 373 , - 1464 , - 1895 , - 82 , - 777 , - 284 , - 1243 , - 2070 , - 1181 , - 1216 , - 591 , - 1946 , - 1585 , - 36 , - 2051 , - 1822 , - 1989 , - 968 , - 1399 , - 1698 , - 281 , - 1900 , - 747 , - 1574 , - 685 , - 720 , - 95 , - 1450 , - 1089 , - 1652 , - 1555 , - 1326 , - 1493 , - 472 , - 903 , - 1202 , - 1897 , - 1404 , - 251 , - 1078 , - 189 , - 224 , - 1711 , - 954 , - 593 , - 1156 , - 1059 , - 830 , - 997 , - 2088 , - 407 , - 706 , - 1401 , - 908 , - 1867 , - 582 , - 1805 , - 1840 , - 1215 , - 458 , - 97 , - 660 , - 563 , - 334 , - 501 , - 1592 , - 2023 , - 210 , - 905 , - 412 , - 1371 , - 86 , - 1309 , - 1344 , - 719 , - 2074 , - 1713 , - 164 , - 67 , - 1950 , - 5 , - 1096 , - 1527 , - 1826 , - 409 , - 2028 , - 875 , - 1702 , - 813 , - 848 , - 223 , - 1578 , - 1217 , - 1780 , - 1683 , - 1454 , - 1621 , - 600 , - 1031 , - 1330 , - 2025 , - 1532 , - 379 , - 1206 , - 317 , - 352 , - 1839 , - 1082 , - 721 , - 1284 , - 1187 , - 958 , - 1125 , - 104 , - 535 , - 834 , - 1529 , - 1036 , - 1995 , - 710 , - 1933 , - 1968 , - 1343 , - 586 , - 225 , - 788 , - 691 , - 462 , - 629 , - 1720 , - 39 , - 338 , - 1033 , - 540 , - 1499 , - 214 , - 1437 , - 1472 , - 847 , - 90 , - 1841 , - 292 , - 195 , - 2078 , - 133 , - 1224 , - 1655 , - 1954 , - 537 , - 44 , - 1003 , - 1830 , - 941 , - 976 , - 351 , - 1706 , - 1345 , - 1908 , - 1811 , - 1582 , - 1749 , - 728 , - 1159 , - 1458 , - 41 , - 1660 , - 507 , - 1334 , - 445 , - 480 , - 1967 , - 1210 , - 849 , - 1412 , - 1315 , - 1086 , - 1253 , - 232 , - 663 , - 962 , - 1657 , - 1164 , - 11 , - 838 , - 2061 , - 2096 , - 1471 , - 714 , - 353 , - 916 , - 819 , - 590 , - 757 , - 1848 , - 167 , - 466 , - 1161 , - 668 , - 1627 , - 342 , - 1565 , - 1600 , - 975 , - 218 , - 1969 , - 420 , - 323 , - 94 , - 261 , - 1352 , - 1783 , - 2082 , - 665 , - 172 , - 1131 , - 1958 , - 1069 , - 1104 , - 479 , - 1834 , - 1473 , - 2036 , - 1939 , - 1710 , - 1877 , - 856 , - 1287 , - 1586 , - 169 , - 1788 , - 635 , - 1462 , - 573 , - 608 , - 2095 , - 1338 , - 977 , - 1540 , - 1443 , - 1214 , - 1381 , - 360 , - 791 , - 1090 , - 1785 , - 1292 , - 139 , - 966 , - 77 , - 112 , - 1599 , - 842 , - 481 , - 1044 , - 947 , - 718 , - 885 , - 1976 , - 295 , - 594 , - 1289 , - 796 , - 1755 , - 470 , - 1693 , - 1728 , - 1103 , - 346 , - 2097 , - 548 , - 451 , - 222 , - 389 , - 1480 , - 1911 , - 98 , - 793 , - 300 , - 1259 , - 2086 , - 1197 , - 1232 , - 607 , - 1962 , - 1601 , - 52 , - 2067 , - 1838 , - 2005 , - 984 , - 1415 , - 1714 , - 297 , - 1916 , - 763 , - 1590 , - 701 , - 736 , - 111 , - 1466 , - 1105 , - 1668 , - 1571 , - 1342 , - 1509 , - 488 , - 919 , - 1218 , - 1913 , - 1420 , - 267 , - 1094 , - 205 , - 240 , - 1727 , - 970 , - 609 , - 1172 , - 1075 , - 846 , - 1013 , - 2104 , - 423 , - 722 , - 1417 , - 924 , - 1883 , - 598 , - 1821 , - 1856 , - 1231 , - 474 , - 113 , - 676 , - 579 , - 350 , - 517 , - 1608 , - 2039 , - 226 , - 921 , - 428 , - 1387 , - 102 , - 1325 , - 1360 , - 735 , - 2090 , - 1729 , - 180 , - 83 , - 1966 , - 21 , - 1112 , - 1543 , - 1842 , - 425 , - 2044 , - 891 , - 1718 , - 829 , - 864 , - 239 , - 1594 , - 1233 , - 1796 , - 1699 , - 1470 , - 1637 , - 616 , - 1047 , - 1346 , - 2041 , - 1548 , - 395 , - 1222 , - 333 , - 368 , - 1855 , - 1098 , - 737 , - 1300 , - 1203 , - 974 , - 1141 , - 120 , - 551 , - 850 , - 1545 , - 1052 , - 2011 , - 726 , - 1949 , - 1984 , - 1359 , - 602 , - 241 , - 804 , - 707 , - 478 , - 645 , - 1736 , - 55 , - 354 , - 1049 , - 556 , - 1515 , - 230 , - 1453 , - 1488 , - 863 , - 106 , - 1857 , - 308 , - 211 , - 2094 , - 149 , - 1240 , - 1671 , - 1970 , - 553 , - 60 , - 1019 , - 1846 , - 957 , - 992 , - 367 , - 1722 , - 1361 , - 1924 , - 1827 , - 1598 , - 1765 , - 744 , - 1175 , - 1474 , - 57 , - 1676 , - 523 , - 1350 , - 461 , - 496 , - 1983 , - 1226 , - 865 , - 1428 , - 1331 , - 1102 , - 1269 , - 248 , - 679 , - 978 , - 1673 , - 1180 , - 27 , - 854 , - 2077 , - 0 , - 171 , - 1702 , - 241 , - 140 , - 1399 , - 1842 , - 1469 , - 280 , - 451 , - 1982 , - 521 , - 420 , - 1679 , - 2122 , - 1749 , - 560 , - 731 , - 86 , - 801 , - 700 , - 1959 , - 226 , - 2029 , - 840 , - 1011 , - 366 , - 1081 , - 980 , - 63 , - 506 , - 133 , - 1120 , - 1291 , - 646 , - 1361 , - 1260 , - 343 , - 786 , - 413 , - 1400 , - 1571 , - 926 , - 1641 , - 1540 , - 623 , - 1066 , - 693 , - 1680 , - 1851 , - 1206 , - 1921 , - 1820 , - 903 , - 1346 , - 973 , - 1960 , - 2131 , - 1486 , - 25 , - 2100 , - 1183 , - 1626 , - 1253 , - 64 , - 235 , - 1766 , - 305 , - 204 , - 1463 , - 1906 , - 1533 , - 344 , - 515 , - 2046 , - 585 , - 484 , - 1743 , - 10 , - 1813 , - 624 , - 795 , - 150 , - 865 , - 764 , - 2023 , - 290 , - 2093 , - 904 , - 1075 , - 430 , - 1145 , - 1044 , - 127 , - 570 , - 197 , - 1184 , - 1355 , - 710 , - 1425 , - 1324 , - 407 , - 850 , - 477 , - 1464 , - 1635 , - 990 , - 1705 , - 1604 , - 687 , - 1130 , - 757 , - 1744 , - 1915 , - 1270 , - 1985 , - 1884 , - 967 , - 1410 , - 1037 , - 2024 , - 19 , - 1550 , - 89 , - 2164 , - 1247 , - 1690 , - 1317 , - 128 , - 299 , - 1830 , - 369 , - 268 , - 1527 , - 1970 , - 1597 , - 408 , - 579 , - 2110 , - 649 , - 548 , - 1807 , - 74 , - 1877 , - 688 , - 859 , - 214 , - 929 , - 828 , - 2087 , - 354 , - 2157 , - 968 , - 1139 , - 494 , - 1209 , - 1108 , - 191 , - 634 , - 261 , - 1248 , - 1419 , - 774 , - 1489 , - 1388 , - 471 , - 914 , - 541 , - 1528 , - 1699 , - 1054 , - 1769 , - 1668 , - 751 , - 1194 , - 821 , - 1808 , - 1979 , - 1334 , - 2049 , - 1948 , - 1031 , - 1474 , - 1101 , - 2088 , - 83 , - 1614 , - 153 , - 52 , - 1311 , - 1754 , - 1381 , - 192 , - 363 , - 1894 , - 433 , - 332 , - 1591 , - 2034 , - 1661 , - 472 , - 643 , - 2174 , - 713 , - 612 , - 1871 , - 138 , - 1941 , - 752 , - 923 , - 278 , - 993 , - 892 , - 2151 , - 418 , - 45 , - 1032 , - 1203 , - 558 , - 1273 , - 1172 , - 255 , - 698 , - 325 , - 1312 , - 1483 , - 838 , - 1553 , - 1452 , - 535 , - 978 , - 605 , - 1592 , - 1763 , - 1118 , - 1833 , - 1732 , - 815 , - 1258 , - 885 , - 1872 , - 2043 , - 1398 , - 2113 , - 2012 , - 1095 , - 1538 , - 1165 , - 2152 , - 147 , - 1678 , - 217 , - 116 , - 1375 , - 1818 , - 1445 , - 256 , - 427 , - 1958 , - 497 , - 396 , - 1655 , - 2098 , - 1725 , - 536 , - 707 , - 62 , - 777 , - 676 , - 1935 , - 202 , - 2005 , - 816 , - 987 , - 342 , - 1057 , - 956 , - 39 , - 482 , - 109 , - 1096 , - 1267 , - 622 , - 1337 , - 1236 , - 319 , - 762 , - 389 , - 1376 , - 1547 , - 902 , - 1617 , - 1516 , - 599 , - 1042 , - 669 , - 1656 , - 1827 , - 1182 , - 1897 , - 1796 , - 879 , - 1322 , - 949 , - 1936 , - 2107 , - 1462 , - 1 , - 2076 , - 1159 , - 1602 , - 1229 , - 40 , - 211 , - 1742 , - 281 , - 180 , - 1439 , - 1882 , - 1509 , - 320 , - 491 , - 2022 , - 561 , - 460 , - 1719 , - 2162 , - 1789 , - 600 , - 771 , - 126 , - 841 , - 740 , - 1999 , - 266 , - 2069 , - 880 , - 1051 , - 406 , - 1121 , - 1020 , - 103 , - 546 , - 173 , - 1160 , - 1331 , - 686 , - 1401 , - 1300 , - 383 , - 826 , - 453 , - 1440 , - 1611 , - 966 , - 1681 , - 1580 , - 663 , - 1106 , - 733 , - 1720 , - 1891 , - 1246 , - 1961 , - 1860 , - 943 , - 1386 , - 1013 , - 2000 , - 2171 , - 1526 , - 65 , - 2140 , - 1223 , - 1666 , - 1293 , - 104 , - 275 , - 1806 , - 345 , - 244 , - 1503 , - 1946 , - 1573 , - 384 , - 555 , - 2086 , - 625 , - 524 , - 1783 , - 50 , - 1853 , - 664 , - 835 , - 190 , - 905 , - 804 , - 2063 , - 330 , - 2133 , - 944 , - 1115 , - 470 , - 1185 , - 1084 , - 167 , - 610 , - 237 , - 1224 , - 1395 , - 750 , - 1465 , - 1364 , - 447 , - 890 , - 517 , - 1504 , - 1675 , - 1030 , - 1745 , - 1644 , - 727 , - 1170 , - 797 , - 1784 , - 1955 , - 1310 , - 2025 , - 1924 , - 1007 , - 1450 , - 1077 , - 2064 , - 59 , - 1590 , - 129 , - 28 , - 1287 , - 1730 , - 1357 , - 168 , - 339 , - 1870 , - 409 , - 308 , - 1567 , - 2010 , - 1637 , - 448 , - 619 , - 2150 , - 689 , - 588 , - 1847 , - 114 , - 1917 , - 728 , - 899 , - 254 , - 969 , - 868 , - 2127 , - 394 , - 21 , - 1008 , - 1179 , - 534 , - 1249 , - 1148 , - 231 , - 674 , - 301 , - 1288 , - 1459 , - 814 , - 1529 , - 1428 , - 511 , - 954 , - 581 , - 1568 , - 1739 , - 1094 , - 1809 , - 1708 , - 791 , - 1234 , - 861 , - 1848 , - 2019 , - 1374 , - 2089 , - 1988 , - 1071 , - 1514 , - 1141 , - 2128 , - 123 , - 1654 , - 193 , - 92 , - 1351 , - 1794 , - 1421 , - 232 , - 403 , - 1934 , - 473 , - 372 , - 1631 , - 2074 , - 1701 , - 512 , - 683 , - 38 , - 753 , - 652 , - 1911 , - 178 , - 1981 , - 792 , - 963 , - 318 , - 1033 , - 932 , - 15 , - 458 , - 85 , - 1072 , - 1243 , - 598 , - 1313 , - 1212 , - 295 , - 738 , - 365 , - 1352 , - 1523 , - 878 , - 1593 , - 1492 , - 575 , - 1018 , - 645 , - 1632 , - 1803 , - 1158 , - 1873 , - 1772 , - 855 , - 1298 , - 925 , - 1912 , - 2083 , - 1438 , - 2153 , - 2052 , - 1135 , - 1578 , - 1205 , - 16 , - 187 , - 1718 , - 257 , - 156 , - 1415 , - 1858 , - 1485 , - 296 , - 467 , - 1998 , - 537 , - 436 , - 1695 , - 2138 , - 1765 , - 576 , - 747 , - 102 , - 817 , - 716 , - 1975 , - 242 , - 2045 , - 856 , - 1027 , - 382 , - 1097 , - 996 , - 79 , - 522 , - 149 , - 1136 , - 1307 , - 662 , - 1377 , - 1276 , - 359 , - 802 , - 429 , - 1416 , - 1587 , - 942 , - 1657 , - 1556 , - 639 , - 1082 , - 709 , - 1696 , - 1867 , - 1222 , - 1937 , - 1836 , - 919 , - 1362 , - 989 , - 1976 , - 2147 , - 1502 , - 41 , - 2116 , - 1199 , - 1642 , - 1269 , - 80 , - 251 , - 1782 , - 321 , - 220 , - 1479 , - 1922 , - 1549 , - 360 , - 531 , - 2062 , - 601 , - 500 , - 1759 , - 26 , - 1829 , - 640 , - 811 , - 166 , - 881 , - 780 , - 2039 , - 306 , - 2109 , - 920 , - 1091 , - 446 , - 1161 , - 1060 , - 143 , - 586 , - 213 , - 1200 , - 1371 , - 726 , - 1441 , - 1340 , - 423 , - 866 , - 493 , - 1480 , - 1651 , - 1006 , - 1721 , - 1620 , - 703 , - 1146 , - 773 , - 1760 , - 1931 , - 1286 , - 2001 , - 1900 , - 983 , - 1426 , - 1053 , - 2040 , - 35 , - 1566 , - 105 , - 4 , - 1263 , - 1706 , - 1333 , - 144 , - 315 , - 1846 , - 385 , - 284 , - 1543 , - 1986 , - 1613 , - 424 , - 595 , - 2126 , - 665 , - 564 , - 1823 , - 90 , - 1893 , - 704 , - 875 , - 230 , - 945 , - 844 , - 2103 , - 370 , - 2173 , - 984 , - 1155 , - 510 , - 1225 , - 1124 , - 207 , - 650 , - 277 , - 1264 , - 1435 , - 790 , - 1505 , - 1404 , - 487 , - 930 , - 557 , - 1544 , - 1715 , - 1070 , - 1785 , - 1684 , - 767 , - 1210 , - 837 , - 1824 , - 1995 , - 1350 , - 2065 , - 1964 , - 1047 , - 1490 , - 1117 , - 2104 , - 99 , - 1630 , - 169 , - 68 , - 1327 , - 1770 , - 1397 , - 208 , - 379 , - 1910 , - 449 , - 348 , - 1607 , - 2050 , - 1677 , - 488 , - 659 , - 14 , - 729 , - 628 , - 1887 , - 154 , - 1957 , - 768 , - 939 , - 294 , - 1009 , - 908 , - 2167 , - 434 , - 61 , - 1048 , - 1219 , - 574 , - 1289 , - 1188 , - 271 , - 714 , - 341 , - 1328 , - 1499 , - 854 , - 1569 , - 1468 , - 551 , - 994 , - 621 , - 1608 , - 1779 , - 1134 , - 1849 , - 1748 , - 831 , - 1274 , - 901 , - 1888 , - 2059 , - 1414 , - 2129 , - 2028 , - 1111 , - 1554 , - 1181 , - 2168 , - 163 , - 1694 , - 233 , - 132 , - 1391 , - 1834 , - 1461 , - 272 , - 443 , - 1974 , - 513 , - 412 , - 1671 , - 2114 , - 1741 , - 552 , - 723 , - 78 , - 793 , - 692 , - 1951 , - 218 , - 2021 , - 832 , - 1003 , - 358 , - 1073 , - 972 , - 55 , - 498 , - 125 , - 1112 , - 1283 , - 638 , - 1353 , - 1252 , - 335 , - 778 , - 405 , - 1392 , - 1563 , - 918 , - 1633 , - 1532 , - 615 , - 1058 , - 685 , - 1672 , - 1843 , - 1198 , - 1913 , - 1812 , - 895 , - 1338 , - 965 , - 1952 , - 2123 , - 1478 , - 17 , - 2092 , - 1175 , - 1618 , - 1245 , - 56 , - 227 , - 1758 , - 297 , - 196 , - 1455 , - 1898 , - 1525 , - 336 , - 507 , - 2038 , - 577 , - 476 , - 1735 , - 2 , - 1805 , - 616 , - 787 , - 142 , - 857 , - 756 , - 2015 , - 282 , - 2085 , - 896 , - 1067 , - 422 , - 1137 , - 1036 , - 119 , - 562 , - 189 , - 1176 , - 1347 , - 702 , - 1417 , - 1316 , - 399 , - 842 , - 469 , - 1456 , - 1627 , - 982 , - 1697 , - 1596 , - 679 , - 1122 , - 749 , - 1736 , - 1907 , - 1262 , - 1977 , - 1876 , - 959 , - 1402 , - 1029 , - 2016 , - 11 , - 1542 , - 81 , - 2156 , - 1239 , - 1682 , - 1309 , - 120 , - 291 , - 1822 , - 361 , - 260 , - 1519 , - 1962 , - 1589 , - 400 , - 571 , - 2102 , - 641 , - 540 , - 1799 , - 66 , - 1869 , - 680 , - 851 , - 206 , - 921 , - 820 , - 2079 , - 346 , - 2149 , - 960 , - 1131 , - 486 , - 1201 , - 1100 , - 183 , - 626 , - 253 , - 1240 , - 1411 , - 766 , - 1481 , - 1380 , - 463 , - 906 , - 533 , - 1520 , - 1691 , - 1046 , - 1761 , - 1660 , - 743 , - 1186 , - 813 , - 1800 , - 1971 , - 1326 , - 2041 , - 1940 , - 1023 , - 1466 , - 1093 , - 2080 , - 75 , - 1606 , - 145 , - 44 , - 1303 , - 1746 , - 1373 , - 184 , - 355 , - 1886 , - 425 , - 324 , - 1583 , - 2026 , - 1653 , - 464 , - 635 , - 2166 , - 705 , - 604 , - 1863 , - 130 , - 1933 , - 744 , - 915 , - 270 , - 985 , - 884 , - 2143 , - 410 , - 37 , - 1024 , - 1195 , - 550 , - 1265 , - 1164 , - 247 , - 690 , - 317 , - 1304 , - 1475 , - 830 , - 1545 , - 1444 , - 527 , - 970 , - 597 , - 1584 , - 1755 , - 1110 , - 1825 , - 1724 , - 807 , - 1250 , - 877 , - 1864 , - 2035 , - 1390 , - 2105 , - 2004 , - 1087 , - 1530 , - 1157 , - 2144 , - 139 , - 1670 , - 209 , - 108 , - 1367 , - 1810 , - 1437 , - 248 , - 419 , - 1950 , - 489 , - 388 , - 1647 , - 2090 , - 1717 , - 528 , - 699 , - 54 , - 769 , - 668 , - 1927 , - 194 , - 1997 , - 808 , - 979 , - 334 , - 1049 , - 948 , - 31 , - 474 , - 101 , - 1088 , - 1259 , - 614 , - 1329 , - 1228 , - 311 , - 754 , - 381 , - 1368 , - 1539 , - 894 , - 1609 , - 1508 , - 591 , - 1034 , - 661 , - 1648 , - 1819 , - 1174 , - 1889 , - 1788 , - 871 , - 1314 , - 941 , - 1928 , - 2099 , - 1454 , - 2169 , - 2068 , - 1151 , - 1594 , - 1221 , - 32 , - 203 , - 1734 , - 273 , - 172 , - 1431 , - 1874 , - 1501 , - 312 , - 483 , - 2014 , - 553 , - 452 , - 1711 , - 2154 , - 1781 , - 592 , - 763 , - 118 , - 833 , - 732 , - 1991 , - 258 , - 2061 , - 872 , - 1043 , - 398 , - 1113 , - 1012 , - 95 , - 538 , - 165 , - 1152 , - 1323 , - 678 , - 1393 , - 1292 , - 375 , - 818 , - 445 , - 1432 , - 1603 , - 958 , - 1673 , - 1572 , - 655 , - 1098 , - 725 , - 1712 , - 1883 , - 1238 , - 1953 , - 1852 , - 935 , - 1378 , - 1005 , - 1992 , - 2163 , - 1518 , - 57 , - 2132 , - 1215 , - 1658 , - 1285 , - 96 , - 267 , - 1798 , - 337 , - 236 , - 1495 , - 1938 , - 1565 , - 376 , - 547 , - 2078 , - 617 , - 516 , - 1775 , - 42 , - 1845 , - 656 , - 827 , - 182 , - 897 , - 796 , - 2055 , - 322 , - 2125 , - 936 , - 1107 , - 462 , - 1177 , - 1076 , - 159 , - 602 , - 229 , - 1216 , - 1387 , - 742 , - 1457 , - 1356 , - 439 , - 882 , - 509 , - 1496 , - 1667 , - 1022 , - 1737 , - 1636 , - 719 , - 1162 , - 789 , - 1776 , - 1947 , - 1302 , - 2017 , - 1916 , - 999 , - 1442 , - 1069 , - 2056 , - 51 , - 1582 , - 121 , - 20 , - 1279 , - 1722 , - 1349 , - 160 , - 331 , - 1862 , - 401 , - 300 , - 1559 , - 2002 , - 1629 , - 440 , - 611 , - 2142 , - 681 , - 580 , - 1839 , - 106 , - 1909 , - 720 , - 891 , - 246 , - 961 , - 860 , - 2119 , - 386 , - 13 , - 1000 , - 1171 , - 526 , - 1241 , - 1140 , - 223 , - 666 , - 293 , - 1280 , - 1451 , - 806 , - 1521 , - 1420 , - 503 , - 946 , - 573 , - 1560 , - 1731 , - 1086 , - 1801 , - 1700 , - 783 , - 1226 , - 853 , - 1840 , - 2011 , - 1366 , - 2081 , - 1980 , - 1063 , - 1506 , - 1133 , - 2120 , - 115 , - 1646 , - 185 , - 84 , - 1343 , - 1786 , - 1413 , - 224 , - 395 , - 1926 , - 465 , - 364 , - 1623 , - 2066 , - 1693 , - 504 , - 675 , - 30 , - 745 , - 644 , - 1903 , - 170 , - 1973 , - 784 , - 955 , - 310 , - 1025 , - 924 , - 7 , - 450 , - 77 , - 1064 , - 1235 , - 590 , - 1305 , - 1204 , - 287 , - 730 , - 357 , - 1344 , - 1515 , - 870 , - 1585 , - 1484 , - 567 , - 1010 , - 637 , - 1624 , - 1795 , - 1150 , - 1865 , - 1764 , - 847 , - 1290 , - 917 , - 1904 , - 2075 , - 1430 , - 2145 , - 2044 , - 1127 , - 1570 , - 1197 , - 8 , - 179 , - 1710 , - 249 , - 148 , - 1407 , - 1850 , - 1477 , - 288 , - 459 , - 1990 , - 529 , - 428 , - 1687 , - 2130 , - 1757 , - 568 , - 739 , - 94 , - 809 , - 708 , - 1967 , - 234 , - 2037 , - 848 , - 1019 , - 374 , - 1089 , - 988 , - 71 , - 514 , - 141 , - 1128 , - 1299 , - 654 , - 1369 , - 1268 , - 351 , - 794 , - 421 , - 1408 , - 1579 , - 934 , - 1649 , - 1548 , - 631 , - 1074 , - 701 , - 1688 , - 1859 , - 1214 , - 1929 , - 1828 , - 911 , - 1354 , - 981 , - 1968 , - 2139 , - 1494 , - 33 , - 2108 , - 1191 , - 1634 , - 1261 , - 72 , - 243 , - 1774 , - 313 , - 212 , - 1471 , - 1914 , - 1541 , - 352 , - 523 , - 2054 , - 593 , - 492 , - 1751 , - 18 , - 1821 , - 632 , - 803 , - 158 , - 873 , - 772 , - 2031 , - 298 , - 2101 , - 912 , - 1083 , - 438 , - 1153 , - 1052 , - 135 , - 578 , - 205 , - 1192 , - 1363 , - 718 , - 1433 , - 1332 , - 415 , - 858 , - 485 , - 1472 , - 1643 , - 998 , - 1713 , - 1612 , - 695 , - 1138 , - 765 , - 1752 , - 1923 , - 1278 , - 1993 , - 1892 , - 975 , - 1418 , - 1045 , - 2032 , - 27 , - 1558 , - 97 , - 2172 , - 1255 , - 1698 , - 1325 , - 136 , - 307 , - 1838 , - 377 , - 276 , - 1535 , - 1978 , - 1605 , - 416 , - 587 , - 2118 , - 657 , - 556 , - 1815 , - 82 , - 1885 , - 696 , - 867 , - 222 , - 937 , - 836 , - 2095 , - 362 , - 2165 , - 976 , - 1147 , - 502 , - 1217 , - 1116 , - 199 , - 642 , - 269 , - 1256 , - 1427 , - 782 , - 1497 , - 1396 , - 479 , - 922 , - 549 , - 1536 , - 1707 , - 1062 , - 1777 , - 1676 , - 759 , - 1202 , - 829 , - 1816 , - 1987 , - 1342 , - 2057 , - 1956 , - 1039 , - 1482 , - 1109 , - 2096 , - 91 , - 1622 , - 161 , - 60 , - 1319 , - 1762 , - 1389 , - 200 , - 371 , - 1902 , - 441 , - 340 , - 1599 , - 2042 , - 1669 , - 480 , - 651 , - 6 , - 721 , - 620 , - 1879 , - 146 , - 1949 , - 760 , - 931 , - 286 , - 1001 , - 900 , - 2159 , - 426 , - 53 , - 1040 , - 1211 , - 566 , - 1281 , - 1180 , - 263 , - 706 , - 333 , - 1320 , - 1491 , - 846 , - 1561 , - 1460 , - 543 , - 986 , - 613 , - 1600 , - 1771 , - 1126 , - 1841 , - 1740 , - 823 , - 1266 , - 893 , - 1880 , - 2051 , - 1406 , - 2121 , - 2020 , - 1103 , - 1546 , - 1173 , - 2160 , - 155 , - 1686 , - 225 , - 124 , - 1383 , - 1826 , - 1453 , - 264 , - 435 , - 1966 , - 505 , - 404 , - 1663 , - 2106 , - 1733 , - 544 , - 715 , - 70 , - 785 , - 684 , - 1943 , - 210 , - 2013 , - 824 , - 995 , - 350 , - 1065 , - 964 , - 47 , - 490 , - 117 , - 1104 , - 1275 , - 630 , - 1345 , - 1244 , - 327 , - 770 , - 397 , - 1384 , - 1555 , - 910 , - 1625 , - 1524 , - 607 , - 1050 , - 677 , - 1664 , - 1835 , - 1190 , - 1905 , - 1804 , - 887 , - 1330 , - 957 , - 1944 , - 2115 , - 1470 , - 9 , - 2084 , - 1167 , - 1610 , - 1237 , - 48 , - 219 , - 1750 , - 289 , - 188 , - 1447 , - 1890 , - 1517 , - 328 , - 499 , - 2030 , - 569 , - 468 , - 1727 , - 2170 , - 1797 , - 608 , - 779 , - 134 , - 849 , - 748 , - 2007 , - 274 , - 2077 , - 888 , - 1059 , - 414 , - 1129 , - 1028 , - 111 , - 554 , - 181 , - 1168 , - 1339 , - 694 , - 1409 , - 1308 , - 391 , - 834 , - 461 , - 1448 , - 1619 , - 974 , - 1689 , - 1588 , - 671 , - 1114 , - 741 , - 1728 , - 1899 , - 1254 , - 1969 , - 1868 , - 951 , - 1394 , - 1021 , - 2008 , - 3 , - 1534 , - 73 , - 2148 , - 1231 , - 1674 , - 1301 , - 112 , - 283 , - 1814 , - 353 , - 252 , - 1511 , - 1954 , - 1581 , - 392 , - 563 , - 2094 , - 633 , - 532 , - 1791 , - 58 , - 1861 , - 672 , - 843 , - 198 , - 913 , - 812 , - 2071 , - 338 , - 2141 , - 952 , - 1123 , - 478 , - 1193 , - 1092 , - 175 , - 618 , - 245 , - 1232 , - 1403 , - 758 , - 1473 , - 1372 , - 455 , - 898 , - 525 , - 1512 , - 1683 , - 1038 , - 1753 , - 1652 , - 735 , - 1178 , - 805 , - 1792 , - 1963 , - 1318 , - 2033 , - 1932 , - 1015 , - 1458 , - 1085 , - 2072 , - 67 , - 1598 , - 137 , - 36 , - 1295 , - 1738 , - 1365 , - 176 , - 347 , - 1878 , - 417 , - 316 , - 1575 , - 2018 , - 1645 , - 456 , - 627 , - 2158 , - 697 , - 596 , - 1855 , - 122 , - 1925 , - 736 , - 907 , - 262 , - 977 , - 876 , - 2135 , - 402 , - 29 , - 1016 , - 1187 , - 542 , - 1257 , - 1156 , - 239 , - 682 , - 309 , - 1296 , - 1467 , - 822 , - 1537 , - 1436 , - 519 , - 962 , - 589 , - 1576 , - 1747 , - 1102 , - 1817 , - 1716 , - 799 , - 1242 , - 869 , - 1856 , - 2027 , - 1382 , - 2097 , - 1996 , - 1079 , - 1522 , - 1149 , - 2136 , - 131 , - 1662 , - 201 , - 100 , - 1359 , - 1802 , - 1429 , - 240 , - 411 , - 1942 , - 481 , - 380 , - 1639 , - 2082 , - 1709 , - 520 , - 691 , - 46 , - 761 , - 660 , - 1919 , - 186 , - 1989 , - 800 , - 971 , - 326 , - 1041 , - 940 , - 23 , - 466 , - 93 , - 1080 , - 1251 , - 606 , - 1321 , - 1220 , - 303 , - 746 , - 373 , - 1360 , - 1531 , - 886 , - 1601 , - 1500 , - 583 , - 1026 , - 653 , - 1640 , - 1811 , - 1166 , - 1881 , - 1780 , - 863 , - 1306 , - 933 , - 1920 , - 2091 , - 1446 , - 2161 , - 2060 , - 1143 , - 1586 , - 1213 , - 24 , - 195 , - 1726 , - 265 , - 164 , - 1423 , - 1866 , - 1493 , - 304 , - 475 , - 2006 , - 545 , - 444 , - 1703 , - 2146 , - 1773 , - 584 , - 755 , - 110 , - 825 , - 724 , - 1983 , - 250 , - 2053 , - 864 , - 1035 , - 390 , - 1105 , - 1004 , - 87 , - 530 , - 157 , - 1144 , - 1315 , - 670 , - 1385 , - 1284 , - 367 , - 810 , - 437 , - 1424 , - 1595 , - 950 , - 1665 , - 1564 , - 647 , - 1090 , - 717 , - 1704 , - 1875 , - 1230 , - 1945 , - 1844 , - 927 , - 1370 , - 997 , - 1984 , - 2155 , - 1510 , - 49 , - 2124 , - 1207 , - 1650 , - 1277 , - 88 , - 259 , - 1790 , - 329 , - 228 , - 1487 , - 1930 , - 1557 , - 368 , - 539 , - 2070 , - 609 , - 508 , - 1767 , - 34 , - 1837 , - 648 , - 819 , - 174 , - 889 , - 788 , - 2047 , - 314 , - 2117 , - 928 , - 1099 , - 454 , - 1169 , - 1068 , - 151 , - 594 , - 221 , - 1208 , - 1379 , - 734 , - 1449 , - 1348 , - 431 , - 874 , - 501 , - 1488 , - 1659 , - 1014 , - 1729 , - 1628 , - 711 , - 1154 , - 781 , - 1768 , - 1939 , - 1294 , - 2009 , - 1908 , - 991 , - 1434 , - 1061 , - 2048 , - 43 , - 1574 , - 113 , - 12 , - 1271 , - 1714 , - 1341 , - 152 , - 323 , - 1854 , - 393 , - 292 , - 1551 , - 1994 , - 1621 , - 432 , - 603 , - 2134 , - 673 , - 572 , - 1831 , - 98 , - 1901 , - 712 , - 883 , - 238 , - 953 , - 852 , - 2111 , - 378 , - 5 , - 992 , - 1163 , - 518 , - 1233 , - 1132 , - 215 , - 658 , - 285 , - 1272 , - 1443 , - 798 , - 1513 , - 1412 , - 495 , - 938 , - 565 , - 1552 , - 1723 , - 1078 , - 1793 , - 1692 , - 775 , - 1218 , - 845 , - 1832 , - 2003 , - 1358 , - 2073 , - 1972 , - 1055 , - 1498 , - 1125 , - 2112 , - 107 , - 1638 , - 177 , - 76 , - 1335 , - 1778 , - 1405 , - 216 , - 387 , - 1918 , - 457 , - 356 , - 1615 , - 2058 , - 1685 , - 496 , - 667 , - 22 , - 737 , - 636 , - 1895 , - 162 , - 1965 , - 776 , - 947 , - 302 , - 1017 , - 916 , - 2175 , - 442 , - 69 , - 1056 , - 1227 , - 582 , - 1297 , - 1196 , - 279 , - 722 , - 349 , - 1336 , - 1507 , - 862 , - 1577 , - 1476 , - 559 , - 1002 , - 629 , - 1616 , - 1787 , - 1142 , - 1857 , - 1756 , - 839 , - 1282 , - 909 , - 1896 , - 2067 , - 1422 , - 2137 , - 2036 , - 1119 , - 1562 , - 1189 , - 0 , - 2029 , - 978 , - 1327 , - 836 , - 1745 , - 1814 , - 1043 , - 1672 , - 1461 , - 410 , - 759 , - 268 , - 1177 , - 1246 , - 475 , - 1104 , - 893 , - 2082 , - 191 , - 1940 , - 609 , - 678 , - 2147 , - 536 , - 325 , - 1514 , - 1863 , - 1372 , - 41 , - 110 , - 1579 , - 2208 , - 1997 , - 946 , - 1295 , - 804 , - 1713 , - 1782 , - 1011 , - 1640 , - 1429 , - 378 , - 727 , - 236 , - 1145 , - 1214 , - 443 , - 1072 , - 861 , - 2050 , - 159 , - 1908 , - 577 , - 646 , - 2115 , - 504 , - 293 , - 1482 , - 1831 , - 1340 , - 9 , - 78 , - 1547 , - 2176 , - 1965 , - 914 , - 1263 , - 772 , - 1681 , - 1750 , - 979 , - 1608 , - 1397 , - 346 , - 695 , - 204 , - 1113 , - 1182 , - 411 , - 1040 , - 829 , - 2018 , - 127 , - 1876 , - 545 , - 614 , - 2083 , - 472 , - 261 , - 1450 , - 1799 , - 1308 , - 2217 , - 46 , - 1515 , - 2144 , - 1933 , - 882 , - 1231 , - 740 , - 1649 , - 1718 , - 947 , - 1576 , - 1365 , - 314 , - 663 , - 172 , - 1081 , - 1150 , - 379 , - 1008 , - 797 , - 1986 , - 95 , - 1844 , - 513 , - 582 , - 2051 , - 440 , - 229 , - 1418 , - 1767 , - 1276 , - 2185 , - 14 , - 1483 , - 2112 , - 1901 , - 850 , - 1199 , - 708 , - 1617 , - 1686 , - 915 , - 1544 , - 1333 , - 282 , - 631 , - 140 , - 1049 , - 1118 , - 347 , - 976 , - 765 , - 1954 , - 63 , - 1812 , - 481 , - 550 , - 2019 , - 408 , - 197 , - 1386 , - 1735 , - 1244 , - 2153 , - 2222 , - 1451 , - 2080 , - 1869 , - 818 , - 1167 , - 676 , - 1585 , - 1654 , - 883 , - 1512 , - 1301 , - 250 , - 599 , - 108 , - 1017 , - 1086 , - 315 , - 944 , - 733 , - 1922 , - 31 , - 1780 , - 449 , - 518 , - 1987 , - 376 , - 165 , - 1354 , - 1703 , - 1212 , - 2121 , - 2190 , - 1419 , - 2048 , - 1837 , - 786 , - 1135 , - 644 , - 1553 , - 1622 , - 851 , - 1480 , - 1269 , - 218 , - 567 , - 76 , - 985 , - 1054 , - 283 , - 912 , - 701 , - 1890 , - 2239 , - 1748 , - 417 , - 486 , - 1955 , - 344 , - 133 , - 1322 , - 1671 , - 1180 , - 2089 , - 2158 , - 1387 , - 2016 , - 1805 , - 754 , - 1103 , - 612 , - 1521 , - 1590 , - 819 , - 1448 , - 1237 , - 186 , - 535 , - 44 , - 953 , - 1022 , - 251 , - 880 , - 669 , - 1858 , - 2207 , - 1716 , - 385 , - 454 , - 1923 , - 312 , - 101 , - 1290 , - 1639 , - 1148 , - 2057 , - 2126 , - 1355 , - 1984 , - 1773 , - 722 , - 1071 , - 580 , - 1489 , - 1558 , - 787 , - 1416 , - 1205 , - 154 , - 503 , - 12 , - 921 , - 990 , - 219 , - 848 , - 637 , - 1826 , - 2175 , - 1684 , - 353 , - 422 , - 1891 , - 280 , - 69 , - 1258 , - 1607 , - 1116 , - 2025 , - 2094 , - 1323 , - 1952 , - 1741 , - 690 , - 1039 , - 548 , - 1457 , - 1526 , - 755 , - 1384 , - 1173 , - 122 , - 471 , - 2220 , - 889 , - 958 , - 187 , - 816 , - 605 , - 1794 , - 2143 , - 1652 , - 321 , - 390 , - 1859 , - 248 , - 37 , - 1226 , - 1575 , - 1084 , - 1993 , - 2062 , - 1291 , - 1920 , - 1709 , - 658 , - 1007 , - 516 , - 1425 , - 1494 , - 723 , - 1352 , - 1141 , - 90 , - 439 , - 2188 , - 857 , - 926 , - 155 , - 784 , - 573 , - 1762 , - 2111 , - 1620 , - 289 , - 358 , - 1827 , - 216 , - 5 , - 1194 , - 1543 , - 1052 , - 1961 , - 2030 , - 1259 , - 1888 , - 1677 , - 626 , - 975 , - 484 , - 1393 , - 1462 , - 691 , - 1320 , - 1109 , - 58 , - 407 , - 2156 , - 825 , - 894 , - 123 , - 752 , - 541 , - 1730 , - 2079 , - 1588 , - 257 , - 326 , - 1795 , - 184 , - 2213 , - 1162 , - 1511 , - 1020 , - 1929 , - 1998 , - 1227 , - 1856 , - 1645 , - 594 , - 943 , - 452 , - 1361 , - 1430 , - 659 , - 1288 , - 1077 , - 26 , - 375 , - 2124 , - 793 , - 862 , - 91 , - 720 , - 509 , - 1698 , - 2047 , - 1556 , - 225 , - 294 , - 1763 , - 152 , - 2181 , - 1130 , - 1479 , - 988 , - 1897 , - 1966 , - 1195 , - 1824 , - 1613 , - 562 , - 911 , - 420 , - 1329 , - 1398 , - 627 , - 1256 , - 1045 , - 2234 , - 343 , - 2092 , - 761 , - 830 , - 59 , - 688 , - 477 , - 1666 , - 2015 , - 1524 , - 193 , - 262 , - 1731 , - 120 , - 2149 , - 1098 , - 1447 , - 956 , - 1865 , - 1934 , - 1163 , - 1792 , - 1581 , - 530 , - 879 , - 388 , - 1297 , - 1366 , - 595 , - 1224 , - 1013 , - 2202 , - 311 , - 2060 , - 729 , - 798 , - 27 , - 656 , - 445 , - 1634 , - 1983 , - 1492 , - 161 , - 230 , - 1699 , - 88 , - 2117 , - 1066 , - 1415 , - 924 , - 1833 , - 1902 , - 1131 , - 1760 , - 1549 , - 498 , - 847 , - 356 , - 1265 , - 1334 , - 563 , - 1192 , - 981 , - 2170 , - 279 , - 2028 , - 697 , - 766 , - 2235 , - 624 , - 413 , - 1602 , - 1951 , - 1460 , - 129 , - 198 , - 1667 , - 56 , - 2085 , - 1034 , - 1383 , - 892 , - 1801 , - 1870 , - 1099 , - 1728 , - 1517 , - 466 , - 815 , - 324 , - 1233 , - 1302 , - 531 , - 1160 , - 949 , - 2138 , - 247 , - 1996 , - 665 , - 734 , - 2203 , - 592 , - 381 , - 1570 , - 1919 , - 1428 , - 97 , - 166 , - 1635 , - 24 , - 2053 , - 1002 , - 1351 , - 860 , - 1769 , - 1838 , - 1067 , - 1696 , - 1485 , - 434 , - 783 , - 292 , - 1201 , - 1270 , - 499 , - 1128 , - 917 , - 2106 , - 215 , - 1964 , - 633 , - 702 , - 2171 , - 560 , - 349 , - 1538 , - 1887 , - 1396 , - 65 , - 134 , - 1603 , - 2232 , - 2021 , - 970 , - 1319 , - 828 , - 1737 , - 1806 , - 1035 , - 1664 , - 1453 , - 402 , - 751 , - 260 , - 1169 , - 1238 , - 467 , - 1096 , - 885 , - 2074 , - 183 , - 1932 , - 601 , - 670 , - 2139 , - 528 , - 317 , - 1506 , - 1855 , - 1364 , - 33 , - 102 , - 1571 , - 2200 , - 1989 , - 938 , - 1287 , - 796 , - 1705 , - 1774 , - 1003 , - 1632 , - 1421 , - 370 , - 719 , - 228 , - 1137 , - 1206 , - 435 , - 1064 , - 853 , - 2042 , - 151 , - 1900 , - 569 , - 638 , - 2107 , - 496 , - 285 , - 1474 , - 1823 , - 1332 , - 1 , - 70 , - 1539 , - 2168 , - 1957 , - 906 , - 1255 , - 764 , - 1673 , - 1742 , - 971 , - 1600 , - 1389 , - 338 , - 687 , - 196 , - 1105 , - 1174 , - 403 , - 1032 , - 821 , - 2010 , - 119 , - 1868 , - 537 , - 606 , - 2075 , - 464 , - 253 , - 1442 , - 1791 , - 1300 , - 2209 , - 38 , - 1507 , - 2136 , - 1925 , - 874 , - 1223 , - 732 , - 1641 , - 1710 , - 939 , - 1568 , - 1357 , - 306 , - 655 , - 164 , - 1073 , - 1142 , - 371 , - 1000 , - 789 , - 1978 , - 87 , - 1836 , - 505 , - 574 , - 2043 , - 432 , - 221 , - 1410 , - 1759 , - 1268 , - 2177 , - 6 , - 1475 , - 2104 , - 1893 , - 842 , - 1191 , - 700 , - 1609 , - 1678 , - 907 , - 1536 , - 1325 , - 274 , - 623 , - 132 , - 1041 , - 1110 , - 339 , - 968 , - 757 , - 1946 , - 55 , - 1804 , - 473 , - 542 , - 2011 , - 400 , - 189 , - 1378 , - 1727 , - 1236 , - 2145 , - 2214 , - 1443 , - 2072 , - 1861 , - 810 , - 1159 , - 668 , - 1577 , - 1646 , - 875 , - 1504 , - 1293 , - 242 , - 591 , - 100 , - 1009 , - 1078 , - 307 , - 936 , - 725 , - 1914 , - 23 , - 1772 , - 441 , - 510 , - 1979 , - 368 , - 157 , - 1346 , - 1695 , - 1204 , - 2113 , - 2182 , - 1411 , - 2040 , - 1829 , - 778 , - 1127 , - 636 , - 1545 , - 1614 , - 843 , - 1472 , - 1261 , - 210 , - 559 , - 68 , - 977 , - 1046 , - 275 , - 904 , - 693 , - 1882 , - 2231 , - 1740 , - 409 , - 478 , - 1947 , - 336 , - 125 , - 1314 , - 1663 , - 1172 , - 2081 , - 2150 , - 1379 , - 2008 , - 1797 , - 746 , - 1095 , - 604 , - 1513 , - 1582 , - 811 , - 1440 , - 1229 , - 178 , - 527 , - 36 , - 945 , - 1014 , - 243 , - 872 , - 661 , - 1850 , - 2199 , - 1708 , - 377 , - 446 , - 1915 , - 304 , - 93 , - 1282 , - 1631 , - 1140 , - 2049 , - 2118 , - 1347 , - 1976 , - 1765 , - 714 , - 1063 , - 572 , - 1481 , - 1550 , - 779 , - 1408 , - 1197 , - 146 , - 495 , - 4 , - 913 , - 982 , - 211 , - 840 , - 629 , - 1818 , - 2167 , - 1676 , - 345 , - 414 , - 1883 , - 272 , - 61 , - 1250 , - 1599 , - 1108 , - 2017 , - 2086 , - 1315 , - 1944 , - 1733 , - 682 , - 1031 , - 540 , - 1449 , - 1518 , - 747 , - 1376 , - 1165 , - 114 , - 463 , - 2212 , - 881 , - 950 , - 179 , - 808 , - 597 , - 1786 , - 2135 , - 1644 , - 313 , - 382 , - 1851 , - 240 , - 29 , - 1218 , - 1567 , - 1076 , - 1985 , - 2054 , - 1283 , - 1912 , - 1701 , - 650 , - 999 , - 508 , - 1417 , - 1486 , - 715 , - 1344 , - 1133 , - 82 , - 431 , - 2180 , - 849 , - 918 , - 147 , - 776 , - 565 , - 1754 , - 2103 , - 1612 , - 281 , - 350 , - 1819 , - 208 , - 2237 , - 1186 , - 1535 , - 1044 , - 1953 , - 2022 , - 1251 , - 1880 , - 1669 , - 618 , - 967 , - 476 , - 1385 , - 1454 , - 683 , - 1312 , - 1101 , - 50 , - 399 , - 2148 , - 817 , - 886 , - 115 , - 744 , - 533 , - 1722 , - 2071 , - 1580 , - 249 , - 318 , - 1787 , - 176 , - 2205 , - 1154 , - 1503 , - 1012 , - 1921 , - 1990 , - 1219 , - 1848 , - 1637 , - 586 , - 935 , - 444 , - 1353 , - 1422 , - 651 , - 1280 , - 1069 , - 18 , - 367 , - 2116 , - 785 , - 854 , - 83 , - 712 , - 501 , - 1690 , - 2039 , - 1548 , - 217 , - 286 , - 1755 , - 144 , - 2173 , - 1122 , - 1471 , - 980 , - 1889 , - 1958 , - 1187 , - 1816 , - 1605 , - 554 , - 903 , - 412 , - 1321 , - 1390 , - 619 , - 1248 , - 1037 , - 2226 , - 335 , - 2084 , - 753 , - 822 , - 51 , - 680 , - 469 , - 1658 , - 2007 , - 1516 , - 185 , - 254 , - 1723 , - 112 , - 2141 , - 1090 , - 1439 , - 948 , - 1857 , - 1926 , - 1155 , - 1784 , - 1573 , - 522 , - 871 , - 380 , - 1289 , - 1358 , - 587 , - 1216 , - 1005 , - 2194 , - 303 , - 2052 , - 721 , - 790 , - 19 , - 648 , - 437 , - 1626 , - 1975 , - 1484 , - 153 , - 222 , - 1691 , - 80 , - 2109 , - 1058 , - 1407 , - 916 , - 1825 , - 1894 , - 1123 , - 1752 , - 1541 , - 490 , - 839 , - 348 , - 1257 , - 1326 , - 555 , - 1184 , - 973 , - 2162 , - 271 , - 2020 , - 689 , - 758 , - 2227 , - 616 , - 405 , - 1594 , - 1943 , - 1452 , - 121 , - 190 , - 1659 , - 48 , - 2077 , - 1026 , - 1375 , - 884 , - 1793 , - 1862 , - 1091 , - 1720 , - 1509 , - 458 , - 807 , - 316 , - 1225 , - 1294 , - 523 , - 1152 , - 941 , - 2130 , - 239 , - 1988 , - 657 , - 726 , - 2195 , - 584 , - 373 , - 1562 , - 1911 , - 1420 , - 89 , - 158 , - 1627 , - 16 , - 2045 , - 994 , - 1343 , - 852 , - 1761 , - 1830 , - 1059 , - 1688 , - 1477 , - 426 , - 775 , - 284 , - 1193 , - 1262 , - 491 , - 1120 , - 909 , - 2098 , - 207 , - 1956 , - 625 , - 694 , - 2163 , - 552 , - 341 , - 1530 , - 1879 , - 1388 , - 57 , - 126 , - 1595 , - 2224 , - 2013 , - 962 , - 1311 , - 820 , - 1729 , - 1798 , - 1027 , - 1656 , - 1445 , - 394 , - 743 , - 252 , - 1161 , - 1230 , - 459 , - 1088 , - 877 , - 2066 , - 175 , - 1924 , - 593 , - 662 , - 2131 , - 520 , - 309 , - 1498 , - 1847 , - 1356 , - 25 , - 94 , - 1563 , - 2192 , - 1981 , - 930 , - 1279 , - 788 , - 1697 , - 1766 , - 995 , - 1624 , - 1413 , - 362 , - 711 , - 220 , - 1129 , - 1198 , - 427 , - 1056 , - 845 , - 2034 , - 143 , - 1892 , - 561 , - 630 , - 2099 , - 488 , - 277 , - 1466 , - 1815 , - 1324 , - 2233 , - 62 , - 1531 , - 2160 , - 1949 , - 898 , - 1247 , - 756 , - 1665 , - 1734 , - 963 , - 1592 , - 1381 , - 330 , - 679 , - 188 , - 1097 , - 1166 , - 395 , - 1024 , - 813 , - 2002 , - 111 , - 1860 , - 529 , - 598 , - 2067 , - 456 , - 245 , - 1434 , - 1783 , - 1292 , - 2201 , - 30 , - 1499 , - 2128 , - 1917 , - 866 , - 1215 , - 724 , - 1633 , - 1702 , - 931 , - 1560 , - 1349 , - 298 , - 647 , - 156 , - 1065 , - 1134 , - 363 , - 992 , - 781 , - 1970 , - 79 , - 1828 , - 497 , - 566 , - 2035 , - 424 , - 213 , - 1402 , - 1751 , - 1260 , - 2169 , - 2238 , - 1467 , - 2096 , - 1885 , - 834 , - 1183 , - 692 , - 1601 , - 1670 , - 899 , - 1528 , - 1317 , - 266 , - 615 , - 124 , - 1033 , - 1102 , - 331 , - 960 , - 749 , - 1938 , - 47 , - 1796 , - 465 , - 534 , - 2003 , - 392 , - 181 , - 1370 , - 1719 , - 1228 , - 2137 , - 2206 , - 1435 , - 2064 , - 1853 , - 802 , - 1151 , - 660 , - 1569 , - 1638 , - 867 , - 1496 , - 1285 , - 234 , - 583 , - 92 , - 1001 , - 1070 , - 299 , - 928 , - 717 , - 1906 , - 15 , - 1764 , - 433 , - 502 , - 1971 , - 360 , - 149 , - 1338 , - 1687 , - 1196 , - 2105 , - 2174 , - 1403 , - 2032 , - 1821 , - 770 , - 1119 , - 628 , - 1537 , - 1606 , - 835 , - 1464 , - 1253 , - 202 , - 551 , - 60 , - 969 , - 1038 , - 267 , - 896 , - 685 , - 1874 , - 2223 , - 1732 , - 401 , - 470 , - 1939 , - 328 , - 117 , - 1306 , - 1655 , - 1164 , - 2073 , - 2142 , - 1371 , - 2000 , - 1789 , - 738 , - 1087 , - 596 , - 1505 , - 1574 , - 803 , - 1432 , - 1221 , - 170 , - 519 , - 28 , - 937 , - 1006 , - 235 , - 864 , - 653 , - 1842 , - 2191 , - 1700 , - 369 , - 438 , - 1907 , - 296 , - 85 , - 1274 , - 1623 , - 1132 , - 2041 , - 2110 , - 1339 , - 1968 , - 1757 , - 706 , - 1055 , - 564 , - 1473 , - 1542 , - 771 , - 1400 , - 1189 , - 138 , - 487 , - 2236 , - 905 , - 974 , - 203 , - 832 , - 621 , - 1810 , - 2159 , - 1668 , - 337 , - 406 , - 1875 , - 264 , - 53 , - 1242 , - 1591 , - 1100 , - 2009 , - 2078 , - 1307 , - 1936 , - 1725 , - 674 , - 1023 , - 532 , - 1441 , - 1510 , - 739 , - 1368 , - 1157 , - 106 , - 455 , - 2204 , - 873 , - 942 , - 171 , - 800 , - 589 , - 1778 , - 2127 , - 1636 , - 305 , - 374 , - 1843 , - 232 , - 21 , - 1210 , - 1559 , - 1068 , - 1977 , - 2046 , - 1275 , - 1904 , - 1693 , - 642 , - 991 , - 500 , - 1409 , - 1478 , - 707 , - 1336 , - 1125 , - 74 , - 423 , - 2172 , - 841 , - 910 , - 139 , - 768 , - 557 , - 1746 , - 2095 , - 1604 , - 273 , - 342 , - 1811 , - 200 , - 2229 , - 1178 , - 1527 , - 1036 , - 1945 , - 2014 , - 1243 , - 1872 , - 1661 , - 610 , - 959 , - 468 , - 1377 , - 1446 , - 675 , - 1304 , - 1093 , - 42 , - 391 , - 2140 , - 809 , - 878 , - 107 , - 736 , - 525 , - 1714 , - 2063 , - 1572 , - 241 , - 310 , - 1779 , - 168 , - 2197 , - 1146 , - 1495 , - 1004 , - 1913 , - 1982 , - 1211 , - 1840 , - 1629 , - 578 , - 927 , - 436 , - 1345 , - 1414 , - 643 , - 1272 , - 1061 , - 10 , - 359 , - 2108 , - 777 , - 846 , - 75 , - 704 , - 493 , - 1682 , - 2031 , - 1540 , - 209 , - 278 , - 1747 , - 136 , - 2165 , - 1114 , - 1463 , - 972 , - 1881 , - 1950 , - 1179 , - 1808 , - 1597 , - 546 , - 895 , - 404 , - 1313 , - 1382 , - 611 , - 1240 , - 1029 , - 2218 , - 327 , - 2076 , - 745 , - 814 , - 43 , - 672 , - 461 , - 1650 , - 1999 , - 1508 , - 177 , - 246 , - 1715 , - 104 , - 2133 , - 1082 , - 1431 , - 940 , - 1849 , - 1918 , - 1147 , - 1776 , - 1565 , - 514 , - 863 , - 372 , - 1281 , - 1350 , - 579 , - 1208 , - 997 , - 2186 , - 295 , - 2044 , - 713 , - 782 , - 11 , - 640 , - 429 , - 1618 , - 1967 , - 1476 , - 145 , - 214 , - 1683 , - 72 , - 2101 , - 1050 , - 1399 , - 908 , - 1817 , - 1886 , - 1115 , - 1744 , - 1533 , - 482 , - 831 , - 340 , - 1249 , - 1318 , - 547 , - 1176 , - 965 , - 2154 , - 263 , - 2012 , - 681 , - 750 , - 2219 , - 608 , - 397 , - 1586 , - 1935 , - 1444 , - 113 , - 182 , - 1651 , - 40 , - 2069 , - 1018 , - 1367 , - 876 , - 1785 , - 1854 , - 1083 , - 1712 , - 1501 , - 450 , - 799 , - 308 , - 1217 , - 1286 , - 515 , - 1144 , - 933 , - 2122 , - 231 , - 1980 , - 649 , - 718 , - 2187 , - 576 , - 365 , - 1554 , - 1903 , - 1412 , - 81 , - 150 , - 1619 , - 8 , - 2037 , - 986 , - 1335 , - 844 , - 1753 , - 1822 , - 1051 , - 1680 , - 1469 , - 418 , - 767 , - 276 , - 1185 , - 1254 , - 483 , - 1112 , - 901 , - 2090 , - 199 , - 1948 , - 617 , - 686 , - 2155 , - 544 , - 333 , - 1522 , - 1871 , - 1380 , - 49 , - 118 , - 1587 , - 2216 , - 2005 , - 954 , - 1303 , - 812 , - 1721 , - 1790 , - 1019 , - 1648 , - 1437 , - 386 , - 735 , - 244 , - 1153 , - 1222 , - 451 , - 1080 , - 869 , - 2058 , - 167 , - 1916 , - 585 , - 654 , - 2123 , - 512 , - 301 , - 1490 , - 1839 , - 1348 , - 17 , - 86 , - 1555 , - 2184 , - 1973 , - 922 , - 1271 , - 780 , - 1689 , - 1758 , - 987 , - 1616 , - 1405 , - 354 , - 703 , - 212 , - 1121 , - 1190 , - 419 , - 1048 , - 837 , - 2026 , - 135 , - 1884 , - 553 , - 622 , - 2091 , - 480 , - 269 , - 1458 , - 1807 , - 1316 , - 2225 , - 54 , - 1523 , - 2152 , - 1941 , - 890 , - 1239 , - 748 , - 1657 , - 1726 , - 955 , - 1584 , - 1373 , - 322 , - 671 , - 180 , - 1089 , - 1158 , - 387 , - 1016 , - 805 , - 1994 , - 103 , - 1852 , - 521 , - 590 , - 2059 , - 448 , - 237 , - 1426 , - 1775 , - 1284 , - 2193 , - 22 , - 1491 , - 2120 , - 1909 , - 858 , - 1207 , - 716 , - 1625 , - 1694 , - 923 , - 1552 , - 1341 , - 290 , - 639 , - 148 , - 1057 , - 1126 , - 355 , - 984 , - 773 , - 1962 , - 71 , - 1820 , - 489 , - 558 , - 2027 , - 416 , - 205 , - 1394 , - 1743 , - 1252 , - 2161 , - 2230 , - 1459 , - 2088 , - 1877 , - 826 , - 1175 , - 684 , - 1593 , - 1662 , - 891 , - 1520 , - 1309 , - 258 , - 607 , - 116 , - 1025 , - 1094 , - 323 , - 952 , - 741 , - 1930 , - 39 , - 1788 , - 457 , - 526 , - 1995 , - 384 , - 173 , - 1362 , - 1711 , - 1220 , - 2129 , - 2198 , - 1427 , - 2056 , - 1845 , - 794 , - 1143 , - 652 , - 1561 , - 1630 , - 859 , - 1488 , - 1277 , - 226 , - 575 , - 84 , - 993 , - 1062 , - 291 , - 920 , - 709 , - 1898 , - 7 , - 1756 , - 425 , - 494 , - 1963 , - 352 , - 141 , - 1330 , - 1679 , - 1188 , - 2097 , - 2166 , - 1395 , - 2024 , - 1813 , - 762 , - 1111 , - 620 , - 1529 , - 1598 , - 827 , - 1456 , - 1245 , - 194 , - 543 , - 52 , - 961 , - 1030 , - 259 , - 888 , - 677 , - 1866 , - 2215 , - 1724 , - 393 , - 462 , - 1931 , - 320 , - 109 , - 1298 , - 1647 , - 1156 , - 2065 , - 2134 , - 1363 , - 1992 , - 1781 , - 730 , - 1079 , - 588 , - 1497 , - 1566 , - 795 , - 1424 , - 1213 , - 162 , - 511 , - 20 , - 929 , - 998 , - 227 , - 856 , - 645 , - 1834 , - 2183 , - 1692 , - 361 , - 430 , - 1899 , - 288 , - 77 , - 1266 , - 1615 , - 1124 , - 2033 , - 2102 , - 1331 , - 1960 , - 1749 , - 698 , - 1047 , - 556 , - 1465 , - 1534 , - 763 , - 1392 , - 1181 , - 130 , - 479 , - 2228 , - 897 , - 966 , - 195 , - 824 , - 613 , - 1802 , - 2151 , - 1660 , - 329 , - 398 , - 1867 , - 256 , - 45 , - 1234 , - 1583 , - 1092 , - 2001 , - 2070 , - 1299 , - 1928 , - 1717 , - 666 , - 1015 , - 524 , - 1433 , - 1502 , - 731 , - 1360 , - 1149 , - 98 , - 447 , - 2196 , - 865 , - 934 , - 163 , - 792 , - 581 , - 1770 , - 2119 , - 1628 , - 297 , - 366 , - 1835 , - 224 , - 13 , - 1202 , - 1551 , - 1060 , - 1969 , - 2038 , - 1267 , - 1896 , - 1685 , - 634 , - 983 , - 492 , - 1401 , - 1470 , - 699 , - 1328 , - 1117 , - 66 , - 415 , - 2164 , - 833 , - 902 , - 131 , - 760 , - 549 , - 1738 , - 2087 , - 1596 , - 265 , - 334 , - 1803 , - 192 , - 2221 , - 1170 , - 1519 , - 1028 , - 1937 , - 2006 , - 1235 , - 1864 , - 1653 , - 602 , - 951 , - 460 , - 1369 , - 1438 , - 667 , - 1296 , - 1085 , - 34 , - 383 , - 2132 , - 801 , - 870 , - 99 , - 728 , - 517 , - 1706 , - 2055 , - 1564 , - 233 , - 302 , - 1771 , - 160 , - 2189 , - 1138 , - 1487 , - 996 , - 1905 , - 1974 , - 1203 , - 1832 , - 1621 , - 570 , - 919 , - 428 , - 1337 , - 1406 , - 635 , - 1264 , - 1053 , - 2 , - 351 , - 2100 , - 769 , - 838 , - 67 , - 696 , - 485 , - 1674 , - 2023 , - 1532 , - 201 , - 270 , - 1739 , - 128 , - 2157 , - 1106 , - 1455 , - 964 , - 1873 , - 1942 , - 1171 , - 1800 , - 1589 , - 538 , - 887 , - 396 , - 1305 , - 1374 , - 603 , - 1232 , - 1021 , - 2210 , - 319 , - 2068 , - 737 , - 806 , - 35 , - 664 , - 453 , - 1642 , - 1991 , - 1500 , - 169 , - 238 , - 1707 , - 96 , - 2125 , - 1074 , - 1423 , - 932 , - 1841 , - 1910 , - 1139 , - 1768 , - 1557 , - 506 , - 855 , - 364 , - 1273 , - 1342 , - 571 , - 1200 , - 989 , - 2178 , - 287 , - 2036 , - 705 , - 774 , - 3 , - 632 , - 421 , - 1610 , - 1959 , - 1468 , - 137 , - 206 , - 1675 , - 64 , - 2093 , - 1042 , - 1391 , - 900 , - 1809 , - 1878 , - 1107 , - 1736 , - 1525 , - 474 , - 823 , - 332 , - 1241 , - 1310 , - 539 , - 1168 , - 957 , - 2146 , - 255 , - 2004 , - 673 , - 742 , - 2211 , - 600 , - 389 , - 1578 , - 1927 , - 1436 , - 105 , - 174 , - 1643 , - 32 , - 2061 , - 1010 , - 1359 , - 868 , - 1777 , - 1846 , - 1075 , - 1704 , - 1493 , - 442 , - 791 , - 300 , - 1209 , - 1278 , - 507 , - 1136 , - 925 , - 2114 , - 223 , - 1972 , - 641 , - 710 , - 2179 , - 568 , - 357 , - 1546 , - 1895 , - 1404 , - 73 , - 142 , - 1611 , - 0 , - 2269 , - 1226 , - 1479 , - 724 , - 1265 , - 798 , - 1627 , - 1448 , - 261 , - 370 , - 1775 , - 2172 , - 1561 , - 2246 , - 1923 , - 592 , - 557 , - 1818 , - 2071 , - 1316 , - 1857 , - 1390 , - 2219 , - 2040 , - 853 , - 962 , - 63 , - 460 , - 2153 , - 534 , - 211 , - 1184 , - 1149 , - 106 , - 359 , - 1908 , - 145 , - 1982 , - 507 , - 328 , - 1445 , - 1554 , - 655 , - 1052 , - 441 , - 1126 , - 803 , - 1776 , - 1741 , - 698 , - 951 , - 196 , - 737 , - 270 , - 1099 , - 920 , - 2037 , - 2146 , - 1247 , - 1644 , - 1033 , - 1718 , - 1395 , - 64 , - 29 , - 1290 , - 1543 , - 788 , - 1329 , - 862 , - 1691 , - 1512 , - 325 , - 434 , - 1839 , - 2236 , - 1625 , - 6 , - 1987 , - 656 , - 621 , - 1882 , - 2135 , - 1380 , - 1921 , - 1454 , - 2283 , - 2104 , - 917 , - 1026 , - 127 , - 524 , - 2217 , - 598 , - 275 , - 1248 , - 1213 , - 170 , - 423 , - 1972 , - 209 , - 2046 , - 571 , - 392 , - 1509 , - 1618 , - 719 , - 1116 , - 505 , - 1190 , - 867 , - 1840 , - 1805 , - 762 , - 1015 , - 260 , - 801 , - 334 , - 1163 , - 984 , - 2101 , - 2210 , - 1311 , - 1708 , - 1097 , - 1782 , - 1459 , - 128 , - 93 , - 1354 , - 1607 , - 852 , - 1393 , - 926 , - 1755 , - 1576 , - 389 , - 498 , - 1903 , - 2300 , - 1689 , - 70 , - 2051 , - 720 , - 685 , - 1946 , - 2199 , - 1444 , - 1985 , - 1518 , - 43 , - 2168 , - 981 , - 1090 , - 191 , - 588 , - 2281 , - 662 , - 339 , - 1312 , - 1277 , - 234 , - 487 , - 2036 , - 273 , - 2110 , - 635 , - 456 , - 1573 , - 1682 , - 783 , - 1180 , - 569 , - 1254 , - 931 , - 1904 , - 1869 , - 826 , - 1079 , - 324 , - 865 , - 398 , - 1227 , - 1048 , - 2165 , - 2274 , - 1375 , - 1772 , - 1161 , - 1846 , - 1523 , - 192 , - 157 , - 1418 , - 1671 , - 916 , - 1457 , - 990 , - 1819 , - 1640 , - 453 , - 562 , - 1967 , - 60 , - 1753 , - 134 , - 2115 , - 784 , - 749 , - 2010 , - 2263 , - 1508 , - 2049 , - 1582 , - 107 , - 2232 , - 1045 , - 1154 , - 255 , - 652 , - 41 , - 726 , - 403 , - 1376 , - 1341 , - 298 , - 551 , - 2100 , - 337 , - 2174 , - 699 , - 520 , - 1637 , - 1746 , - 847 , - 1244 , - 633 , - 1318 , - 995 , - 1968 , - 1933 , - 890 , - 1143 , - 388 , - 929 , - 462 , - 1291 , - 1112 , - 2229 , - 34 , - 1439 , - 1836 , - 1225 , - 1910 , - 1587 , - 256 , - 221 , - 1482 , - 1735 , - 980 , - 1521 , - 1054 , - 1883 , - 1704 , - 517 , - 626 , - 2031 , - 124 , - 1817 , - 198 , - 2179 , - 848 , - 813 , - 2074 , - 23 , - 1572 , - 2113 , - 1646 , - 171 , - 2296 , - 1109 , - 1218 , - 319 , - 716 , - 105 , - 790 , - 467 , - 1440 , - 1405 , - 362 , - 615 , - 2164 , - 401 , - 2238 , - 763 , - 584 , - 1701 , - 1810 , - 911 , - 1308 , - 697 , - 1382 , - 1059 , - 2032 , - 1997 , - 954 , - 1207 , - 452 , - 993 , - 526 , - 1355 , - 1176 , - 2293 , - 98 , - 1503 , - 1900 , - 1289 , - 1974 , - 1651 , - 320 , - 285 , - 1546 , - 1799 , - 1044 , - 1585 , - 1118 , - 1947 , - 1768 , - 581 , - 690 , - 2095 , - 188 , - 1881 , - 262 , - 2243 , - 912 , - 877 , - 2138 , - 87 , - 1636 , - 2177 , - 1710 , - 235 , - 56 , - 1173 , - 1282 , - 383 , - 780 , - 169 , - 854 , - 531 , - 1504 , - 1469 , - 426 , - 679 , - 2228 , - 465 , - 2302 , - 827 , - 648 , - 1765 , - 1874 , - 975 , - 1372 , - 761 , - 1446 , - 1123 , - 2096 , - 2061 , - 1018 , - 1271 , - 516 , - 1057 , - 590 , - 1419 , - 1240 , - 53 , - 162 , - 1567 , - 1964 , - 1353 , - 2038 , - 1715 , - 384 , - 349 , - 1610 , - 1863 , - 1108 , - 1649 , - 1182 , - 2011 , - 1832 , - 645 , - 754 , - 2159 , - 252 , - 1945 , - 326 , - 3 , - 976 , - 941 , - 2202 , - 151 , - 1700 , - 2241 , - 1774 , - 299 , - 120 , - 1237 , - 1346 , - 447 , - 844 , - 233 , - 918 , - 595 , - 1568 , - 1533 , - 490 , - 743 , - 2292 , - 529 , - 62 , - 891 , - 712 , - 1829 , - 1938 , - 1039 , - 1436 , - 825 , - 1510 , - 1187 , - 2160 , - 2125 , - 1082 , - 1335 , - 580 , - 1121 , - 654 , - 1483 , - 1304 , - 117 , - 226 , - 1631 , - 2028 , - 1417 , - 2102 , - 1779 , - 448 , - 413 , - 1674 , - 1927 , - 1172 , - 1713 , - 1246 , - 2075 , - 1896 , - 709 , - 818 , - 2223 , - 316 , - 2009 , - 390 , - 67 , - 1040 , - 1005 , - 2266 , - 215 , - 1764 , - 1 , - 1838 , - 363 , - 184 , - 1301 , - 1410 , - 511 , - 908 , - 297 , - 982 , - 659 , - 1632 , - 1597 , - 554 , - 807 , - 52 , - 593 , - 126 , - 955 , - 776 , - 1893 , - 2002 , - 1103 , - 1500 , - 889 , - 1574 , - 1251 , - 2224 , - 2189 , - 1146 , - 1399 , - 644 , - 1185 , - 718 , - 1547 , - 1368 , - 181 , - 290 , - 1695 , - 2092 , - 1481 , - 2166 , - 1843 , - 512 , - 477 , - 1738 , - 1991 , - 1236 , - 1777 , - 1310 , - 2139 , - 1960 , - 773 , - 882 , - 2287 , - 380 , - 2073 , - 454 , - 131 , - 1104 , - 1069 , - 26 , - 279 , - 1828 , - 65 , - 1902 , - 427 , - 248 , - 1365 , - 1474 , - 575 , - 972 , - 361 , - 1046 , - 723 , - 1696 , - 1661 , - 618 , - 871 , - 116 , - 657 , - 190 , - 1019 , - 840 , - 1957 , - 2066 , - 1167 , - 1564 , - 953 , - 1638 , - 1315 , - 2288 , - 2253 , - 1210 , - 1463 , - 708 , - 1249 , - 782 , - 1611 , - 1432 , - 245 , - 354 , - 1759 , - 2156 , - 1545 , - 2230 , - 1907 , - 576 , - 541 , - 1802 , - 2055 , - 1300 , - 1841 , - 1374 , - 2203 , - 2024 , - 837 , - 946 , - 47 , - 444 , - 2137 , - 518 , - 195 , - 1168 , - 1133 , - 90 , - 343 , - 1892 , - 129 , - 1966 , - 491 , - 312 , - 1429 , - 1538 , - 639 , - 1036 , - 425 , - 1110 , - 787 , - 1760 , - 1725 , - 682 , - 935 , - 180 , - 721 , - 254 , - 1083 , - 904 , - 2021 , - 2130 , - 1231 , - 1628 , - 1017 , - 1702 , - 1379 , - 48 , - 13 , - 1274 , - 1527 , - 772 , - 1313 , - 846 , - 1675 , - 1496 , - 309 , - 418 , - 1823 , - 2220 , - 1609 , - 2294 , - 1971 , - 640 , - 605 , - 1866 , - 2119 , - 1364 , - 1905 , - 1438 , - 2267 , - 2088 , - 901 , - 1010 , - 111 , - 508 , - 2201 , - 582 , - 259 , - 1232 , - 1197 , - 154 , - 407 , - 1956 , - 193 , - 2030 , - 555 , - 376 , - 1493 , - 1602 , - 703 , - 1100 , - 489 , - 1174 , - 851 , - 1824 , - 1789 , - 746 , - 999 , - 244 , - 785 , - 318 , - 1147 , - 968 , - 2085 , - 2194 , - 1295 , - 1692 , - 1081 , - 1766 , - 1443 , - 112 , - 77 , - 1338 , - 1591 , - 836 , - 1377 , - 910 , - 1739 , - 1560 , - 373 , - 482 , - 1887 , - 2284 , - 1673 , - 54 , - 2035 , - 704 , - 669 , - 1930 , - 2183 , - 1428 , - 1969 , - 1502 , - 27 , - 2152 , - 965 , - 1074 , - 175 , - 572 , - 2265 , - 646 , - 323 , - 1296 , - 1261 , - 218 , - 471 , - 2020 , - 257 , - 2094 , - 619 , - 440 , - 1557 , - 1666 , - 767 , - 1164 , - 553 , - 1238 , - 915 , - 1888 , - 1853 , - 810 , - 1063 , - 308 , - 849 , - 382 , - 1211 , - 1032 , - 2149 , - 2258 , - 1359 , - 1756 , - 1145 , - 1830 , - 1507 , - 176 , - 141 , - 1402 , - 1655 , - 900 , - 1441 , - 974 , - 1803 , - 1624 , - 437 , - 546 , - 1951 , - 44 , - 1737 , - 118 , - 2099 , - 768 , - 733 , - 1994 , - 2247 , - 1492 , - 2033 , - 1566 , - 91 , - 2216 , - 1029 , - 1138 , - 239 , - 636 , - 25 , - 710 , - 387 , - 1360 , - 1325 , - 282 , - 535 , - 2084 , - 321 , - 2158 , - 683 , - 504 , - 1621 , - 1730 , - 831 , - 1228 , - 617 , - 1302 , - 979 , - 1952 , - 1917 , - 874 , - 1127 , - 372 , - 913 , - 446 , - 1275 , - 1096 , - 2213 , - 18 , - 1423 , - 1820 , - 1209 , - 1894 , - 1571 , - 240 , - 205 , - 1466 , - 1719 , - 964 , - 1505 , - 1038 , - 1867 , - 1688 , - 501 , - 610 , - 2015 , - 108 , - 1801 , - 182 , - 2163 , - 832 , - 797 , - 2058 , - 7 , - 1556 , - 2097 , - 1630 , - 155 , - 2280 , - 1093 , - 1202 , - 303 , - 700 , - 89 , - 774 , - 451 , - 1424 , - 1389 , - 346 , - 599 , - 2148 , - 385 , - 2222 , - 747 , - 568 , - 1685 , - 1794 , - 895 , - 1292 , - 681 , - 1366 , - 1043 , - 2016 , - 1981 , - 938 , - 1191 , - 436 , - 977 , - 510 , - 1339 , - 1160 , - 2277 , - 82 , - 1487 , - 1884 , - 1273 , - 1958 , - 1635 , - 304 , - 269 , - 1530 , - 1783 , - 1028 , - 1569 , - 1102 , - 1931 , - 1752 , - 565 , - 674 , - 2079 , - 172 , - 1865 , - 246 , - 2227 , - 896 , - 861 , - 2122 , - 71 , - 1620 , - 2161 , - 1694 , - 219 , - 40 , - 1157 , - 1266 , - 367 , - 764 , - 153 , - 838 , - 515 , - 1488 , - 1453 , - 410 , - 663 , - 2212 , - 449 , - 2286 , - 811 , - 632 , - 1749 , - 1858 , - 959 , - 1356 , - 745 , - 1430 , - 1107 , - 2080 , - 2045 , - 1002 , - 1255 , - 500 , - 1041 , - 574 , - 1403 , - 1224 , - 37 , - 146 , - 1551 , - 1948 , - 1337 , - 2022 , - 1699 , - 368 , - 333 , - 1594 , - 1847 , - 1092 , - 1633 , - 1166 , - 1995 , - 1816 , - 629 , - 738 , - 2143 , - 236 , - 1929 , - 310 , - 2291 , - 960 , - 925 , - 2186 , - 135 , - 1684 , - 2225 , - 1758 , - 283 , - 104 , - 1221 , - 1330 , - 431 , - 828 , - 217 , - 902 , - 579 , - 1552 , - 1517 , - 474 , - 727 , - 2276 , - 513 , - 46 , - 875 , - 696 , - 1813 , - 1922 , - 1023 , - 1420 , - 809 , - 1494 , - 1171 , - 2144 , - 2109 , - 1066 , - 1319 , - 564 , - 1105 , - 638 , - 1467 , - 1288 , - 101 , - 210 , - 1615 , - 2012 , - 1401 , - 2086 , - 1763 , - 432 , - 397 , - 1658 , - 1911 , - 1156 , - 1697 , - 1230 , - 2059 , - 1880 , - 693 , - 802 , - 2207 , - 300 , - 1993 , - 374 , - 51 , - 1024 , - 989 , - 2250 , - 199 , - 1748 , - 2289 , - 1822 , - 347 , - 168 , - 1285 , - 1394 , - 495 , - 892 , - 281 , - 966 , - 643 , - 1616 , - 1581 , - 538 , - 791 , - 36 , - 577 , - 110 , - 939 , - 760 , - 1877 , - 1986 , - 1087 , - 1484 , - 873 , - 1558 , - 1235 , - 2208 , - 2173 , - 1130 , - 1383 , - 628 , - 1169 , - 702 , - 1531 , - 1352 , - 165 , - 274 , - 1679 , - 2076 , - 1465 , - 2150 , - 1827 , - 496 , - 461 , - 1722 , - 1975 , - 1220 , - 1761 , - 1294 , - 2123 , - 1944 , - 757 , - 866 , - 2271 , - 364 , - 2057 , - 438 , - 115 , - 1088 , - 1053 , - 10 , - 263 , - 1812 , - 49 , - 1886 , - 411 , - 232 , - 1349 , - 1458 , - 559 , - 956 , - 345 , - 1030 , - 707 , - 1680 , - 1645 , - 602 , - 855 , - 100 , - 641 , - 174 , - 1003 , - 824 , - 1941 , - 2050 , - 1151 , - 1548 , - 937 , - 1622 , - 1299 , - 2272 , - 2237 , - 1194 , - 1447 , - 692 , - 1233 , - 766 , - 1595 , - 1416 , - 229 , - 338 , - 1743 , - 2140 , - 1529 , - 2214 , - 1891 , - 560 , - 525 , - 1786 , - 2039 , - 1284 , - 1825 , - 1358 , - 2187 , - 2008 , - 821 , - 930 , - 31 , - 428 , - 2121 , - 502 , - 179 , - 1152 , - 1117 , - 74 , - 327 , - 1876 , - 113 , - 1950 , - 475 , - 296 , - 1413 , - 1522 , - 623 , - 1020 , - 409 , - 1094 , - 771 , - 1744 , - 1709 , - 666 , - 919 , - 164 , - 705 , - 238 , - 1067 , - 888 , - 2005 , - 2114 , - 1215 , - 1612 , - 1001 , - 1686 , - 1363 , - 32 , - 2301 , - 1258 , - 1511 , - 756 , - 1297 , - 830 , - 1659 , - 1480 , - 293 , - 402 , - 1807 , - 2204 , - 1593 , - 2278 , - 1955 , - 624 , - 589 , - 1850 , - 2103 , - 1348 , - 1889 , - 1422 , - 2251 , - 2072 , - 885 , - 994 , - 95 , - 492 , - 2185 , - 566 , - 243 , - 1216 , - 1181 , - 138 , - 391 , - 1940 , - 177 , - 2014 , - 539 , - 360 , - 1477 , - 1586 , - 687 , - 1084 , - 473 , - 1158 , - 835 , - 1808 , - 1773 , - 730 , - 983 , - 228 , - 769 , - 302 , - 1131 , - 952 , - 2069 , - 2178 , - 1279 , - 1676 , - 1065 , - 1750 , - 1427 , - 96 , - 61 , - 1322 , - 1575 , - 820 , - 1361 , - 894 , - 1723 , - 1544 , - 357 , - 466 , - 1871 , - 2268 , - 1657 , - 38 , - 2019 , - 688 , - 653 , - 1914 , - 2167 , - 1412 , - 1953 , - 1486 , - 11 , - 2136 , - 949 , - 1058 , - 159 , - 556 , - 2249 , - 630 , - 307 , - 1280 , - 1245 , - 202 , - 455 , - 2004 , - 241 , - 2078 , - 603 , - 424 , - 1541 , - 1650 , - 751 , - 1148 , - 537 , - 1222 , - 899 , - 1872 , - 1837 , - 794 , - 1047 , - 292 , - 833 , - 366 , - 1195 , - 1016 , - 2133 , - 2242 , - 1343 , - 1740 , - 1129 , - 1814 , - 1491 , - 160 , - 125 , - 1386 , - 1639 , - 884 , - 1425 , - 958 , - 1787 , - 1608 , - 421 , - 530 , - 1935 , - 28 , - 1721 , - 102 , - 2083 , - 752 , - 717 , - 1978 , - 2231 , - 1476 , - 2017 , - 1550 , - 75 , - 2200 , - 1013 , - 1122 , - 223 , - 620 , - 9 , - 694 , - 371 , - 1344 , - 1309 , - 266 , - 519 , - 2068 , - 305 , - 2142 , - 667 , - 488 , - 1605 , - 1714 , - 815 , - 1212 , - 601 , - 1286 , - 963 , - 1936 , - 1901 , - 858 , - 1111 , - 356 , - 897 , - 430 , - 1259 , - 1080 , - 2197 , - 2 , - 1407 , - 1804 , - 1193 , - 1878 , - 1555 , - 224 , - 189 , - 1450 , - 1703 , - 948 , - 1489 , - 1022 , - 1851 , - 1672 , - 485 , - 594 , - 1999 , - 92 , - 1785 , - 166 , - 2147 , - 816 , - 781 , - 2042 , - 2295 , - 1540 , - 2081 , - 1614 , - 139 , - 2264 , - 1077 , - 1186 , - 287 , - 684 , - 73 , - 758 , - 435 , - 1408 , - 1373 , - 330 , - 583 , - 2132 , - 369 , - 2206 , - 731 , - 552 , - 1669 , - 1778 , - 879 , - 1276 , - 665 , - 1350 , - 1027 , - 2000 , - 1965 , - 922 , - 1175 , - 420 , - 961 , - 494 , - 1323 , - 1144 , - 2261 , - 66 , - 1471 , - 1868 , - 1257 , - 1942 , - 1619 , - 288 , - 253 , - 1514 , - 1767 , - 1012 , - 1553 , - 1086 , - 1915 , - 1736 , - 549 , - 658 , - 2063 , - 156 , - 1849 , - 230 , - 2211 , - 880 , - 845 , - 2106 , - 55 , - 1604 , - 2145 , - 1678 , - 203 , - 24 , - 1141 , - 1250 , - 351 , - 748 , - 137 , - 822 , - 499 , - 1472 , - 1437 , - 394 , - 647 , - 2196 , - 433 , - 2270 , - 795 , - 616 , - 1733 , - 1842 , - 943 , - 1340 , - 729 , - 1414 , - 1091 , - 2064 , - 2029 , - 986 , - 1239 , - 484 , - 1025 , - 558 , - 1387 , - 1208 , - 21 , - 130 , - 1535 , - 1932 , - 1321 , - 2006 , - 1683 , - 352 , - 317 , - 1578 , - 1831 , - 1076 , - 1617 , - 1150 , - 1979 , - 1800 , - 613 , - 722 , - 2127 , - 220 , - 1913 , - 294 , - 2275 , - 944 , - 909 , - 2170 , - 119 , - 1668 , - 2209 , - 1742 , - 267 , - 88 , - 1205 , - 1314 , - 415 , - 812 , - 201 , - 886 , - 563 , - 1536 , - 1501 , - 458 , - 711 , - 2260 , - 497 , - 30 , - 859 , - 680 , - 1797 , - 1906 , - 1007 , - 1404 , - 793 , - 1478 , - 1155 , - 2128 , - 2093 , - 1050 , - 1303 , - 548 , - 1089 , - 622 , - 1451 , - 1272 , - 85 , - 194 , - 1599 , - 1996 , - 1385 , - 2070 , - 1747 , - 416 , - 381 , - 1642 , - 1895 , - 1140 , - 1681 , - 1214 , - 2043 , - 1864 , - 677 , - 786 , - 2191 , - 284 , - 1977 , - 358 , - 35 , - 1008 , - 973 , - 2234 , - 183 , - 1732 , - 2273 , - 1806 , - 331 , - 152 , - 1269 , - 1378 , - 479 , - 876 , - 265 , - 950 , - 627 , - 1600 , - 1565 , - 522 , - 775 , - 20 , - 561 , - 94 , - 923 , - 744 , - 1861 , - 1970 , - 1071 , - 1468 , - 857 , - 1542 , - 1219 , - 2192 , - 2157 , - 1114 , - 1367 , - 612 , - 1153 , - 686 , - 1515 , - 1336 , - 149 , - 258 , - 1663 , - 2060 , - 1449 , - 2134 , - 1811 , - 480 , - 445 , - 1706 , - 1959 , - 1204 , - 1745 , - 1278 , - 2107 , - 1928 , - 741 , - 850 , - 2255 , - 348 , - 2041 , - 422 , - 99 , - 1072 , - 1037 , - 2298 , - 247 , - 1796 , - 33 , - 1870 , - 395 , - 216 , - 1333 , - 1442 , - 543 , - 940 , - 329 , - 1014 , - 691 , - 1664 , - 1629 , - 586 , - 839 , - 84 , - 625 , - 158 , - 987 , - 808 , - 1925 , - 2034 , - 1135 , - 1532 , - 921 , - 1606 , - 1283 , - 2256 , - 2221 , - 1178 , - 1431 , - 676 , - 1217 , - 750 , - 1579 , - 1400 , - 213 , - 322 , - 1727 , - 2124 , - 1513 , - 2198 , - 1875 , - 544 , - 509 , - 1770 , - 2023 , - 1268 , - 1809 , - 1342 , - 2171 , - 1992 , - 805 , - 914 , - 15 , - 412 , - 2105 , - 486 , - 163 , - 1136 , - 1101 , - 58 , - 311 , - 1860 , - 97 , - 1934 , - 459 , - 280 , - 1397 , - 1506 , - 607 , - 1004 , - 393 , - 1078 , - 755 , - 1728 , - 1693 , - 650 , - 903 , - 148 , - 689 , - 222 , - 1051 , - 872 , - 1989 , - 2098 , - 1199 , - 1596 , - 985 , - 1670 , - 1347 , - 16 , - 2285 , - 1242 , - 1495 , - 740 , - 1281 , - 814 , - 1643 , - 1464 , - 277 , - 386 , - 1791 , - 2188 , - 1577 , - 2262 , - 1939 , - 608 , - 573 , - 1834 , - 2087 , - 1332 , - 1873 , - 1406 , - 2235 , - 2056 , - 869 , - 978 , - 79 , - 476 , - 2169 , - 550 , - 227 , - 1200 , - 1165 , - 122 , - 375 , - 1924 , - 161 , - 1998 , - 523 , - 344 , - 1461 , - 1570 , - 671 , - 1068 , - 457 , - 1142 , - 819 , - 1792 , - 1757 , - 714 , - 967 , - 212 , - 753 , - 286 , - 1115 , - 936 , - 2053 , - 2162 , - 1263 , - 1660 , - 1049 , - 1734 , - 1411 , - 80 , - 45 , - 1306 , - 1559 , - 804 , - 1345 , - 878 , - 1707 , - 1528 , - 341 , - 450 , - 1855 , - 2252 , - 1641 , - 22 , - 2003 , - 672 , - 637 , - 1898 , - 2151 , - 1396 , - 1937 , - 1470 , - 2299 , - 2120 , - 933 , - 1042 , - 143 , - 540 , - 2233 , - 614 , - 291 , - 1264 , - 1229 , - 186 , - 439 , - 1988 , - 225 , - 2062 , - 587 , - 408 , - 1525 , - 1634 , - 735 , - 1132 , - 521 , - 1206 , - 883 , - 1856 , - 1821 , - 778 , - 1031 , - 276 , - 817 , - 350 , - 1179 , - 1000 , - 2117 , - 2226 , - 1327 , - 1724 , - 1113 , - 1798 , - 1475 , - 144 , - 109 , - 1370 , - 1623 , - 868 , - 1409 , - 942 , - 1771 , - 1592 , - 405 , - 514 , - 1919 , - 12 , - 1705 , - 86 , - 2067 , - 736 , - 701 , - 1962 , - 2215 , - 1460 , - 2001 , - 1534 , - 59 , - 2184 , - 997 , - 1106 , - 207 , - 604 , - 2297 , - 678 , - 355 , - 1328 , - 1293 , - 250 , - 503 , - 2052 , - 289 , - 2126 , - 651 , - 472 , - 1589 , - 1698 , - 799 , - 1196 , - 585 , - 1270 , - 947 , - 1920 , - 1885 , - 842 , - 1095 , - 340 , - 881 , - 414 , - 1243 , - 1064 , - 2181 , - 2290 , - 1391 , - 1788 , - 1177 , - 1862 , - 1539 , - 208 , - 173 , - 1434 , - 1687 , - 932 , - 1473 , - 1006 , - 1835 , - 1656 , - 469 , - 578 , - 1983 , - 76 , - 1769 , - 150 , - 2131 , - 800 , - 765 , - 2026 , - 2279 , - 1524 , - 2065 , - 1598 , - 123 , - 2248 , - 1061 , - 1170 , - 271 , - 668 , - 57 , - 742 , - 419 , - 1392 , - 1357 , - 314 , - 567 , - 2116 , - 353 , - 2190 , - 715 , - 536 , - 1653 , - 1762 , - 863 , - 1260 , - 649 , - 1334 , - 1011 , - 1984 , - 1949 , - 906 , - 1159 , - 404 , - 945 , - 478 , - 1307 , - 1128 , - 2245 , - 50 , - 1455 , - 1852 , - 1241 , - 1926 , - 1603 , - 272 , - 237 , - 1498 , - 1751 , - 996 , - 1537 , - 1070 , - 1899 , - 1720 , - 533 , - 642 , - 2047 , - 140 , - 1833 , - 214 , - 2195 , - 864 , - 829 , - 2090 , - 39 , - 1588 , - 2129 , - 1662 , - 187 , - 8 , - 1125 , - 1234 , - 335 , - 732 , - 121 , - 806 , - 483 , - 1456 , - 1421 , - 378 , - 631 , - 2180 , - 417 , - 2254 , - 779 , - 600 , - 1717 , - 1826 , - 927 , - 1324 , - 713 , - 1398 , - 1075 , - 2048 , - 2013 , - 970 , - 1223 , - 468 , - 1009 , - 542 , - 1371 , - 1192 , - 5 , - 114 , - 1519 , - 1916 , - 1305 , - 1990 , - 1667 , - 336 , - 301 , - 1562 , - 1815 , - 1060 , - 1601 , - 1134 , - 1963 , - 1784 , - 597 , - 706 , - 2111 , - 204 , - 1897 , - 278 , - 2259 , - 928 , - 893 , - 2154 , - 103 , - 1652 , - 2193 , - 1726 , - 251 , - 72 , - 1189 , - 1298 , - 399 , - 796 , - 185 , - 870 , - 547 , - 1520 , - 1485 , - 442 , - 695 , - 2244 , - 481 , - 14 , - 843 , - 664 , - 1781 , - 1890 , - 991 , - 1388 , - 777 , - 1462 , - 1139 , - 2112 , - 2077 , - 1034 , - 1287 , - 532 , - 1073 , - 606 , - 1435 , - 1256 , - 69 , - 178 , - 1583 , - 1980 , - 1369 , - 2054 , - 1731 , - 400 , - 365 , - 1626 , - 1879 , - 1124 , - 1665 , - 1198 , - 2027 , - 1848 , - 661 , - 770 , - 2175 , - 268 , - 1961 , - 342 , - 19 , - 992 , - 957 , - 2218 , - 167 , - 1716 , - 2257 , - 1790 , - 315 , - 136 , - 1253 , - 1362 , - 463 , - 860 , - 249 , - 934 , - 611 , - 1584 , - 1549 , - 506 , - 759 , - 4 , - 545 , - 78 , - 907 , - 728 , - 1845 , - 1954 , - 1055 , - 1452 , - 841 , - 1526 , - 1203 , - 2176 , - 2141 , - 1098 , - 1351 , - 596 , - 1137 , - 670 , - 1499 , - 1320 , - 133 , - 242 , - 1647 , - 2044 , - 1433 , - 2118 , - 1795 , - 464 , - 429 , - 1690 , - 1943 , - 1188 , - 1729 , - 1262 , - 2091 , - 1912 , - 725 , - 834 , - 2239 , - 332 , - 2025 , - 406 , - 83 , - 1056 , - 1021 , - 2282 , - 231 , - 1780 , - 17 , - 1854 , - 379 , - 200 , - 1317 , - 1426 , - 527 , - 924 , - 313 , - 998 , - 675 , - 1648 , - 1613 , - 570 , - 823 , - 68 , - 609 , - 142 , - 971 , - 792 , - 1909 , - 2018 , - 1119 , - 1516 , - 905 , - 1590 , - 1267 , - 2240 , - 2205 , - 1162 , - 1415 , - 660 , - 1201 , - 734 , - 1563 , - 1384 , - 197 , - 306 , - 1711 , - 2108 , - 1497 , - 2182 , - 1859 , - 528 , - 493 , - 1754 , - 2007 , - 1252 , - 1793 , - 1326 , - 2155 , - 1976 , - 789 , - 898 , - 2303 , - 396 , - 2089 , - 470 , - 147 , - 1120 , - 1085 , - 42 , - 295 , - 1844 , - 81 , - 1918 , - 443 , - 264 , - 1381 , - 1490 , - 591 , - 988 , - 377 , - 1062 , - 739 , - 1712 , - 1677 , - 634 , - 887 , - 132 , - 673 , - 206 , - 1035 , - 856 , - 1973 , - 2082 , - 1183 , - 1580 , - 969 , - 1654 , - 1331 , - 0 , - 1899 , - 2318 , - 1257 , - 1084 , - 1799 , - 1034 , - 1157 , - 2168 , - 1699 , - 2118 , - 1057 , - 884 , - 1599 , - 834 , - 957 , - 1968 , - 1499 , - 1918 , - 857 , - 684 , - 1399 , - 634 , - 757 , - 1768 , - 1299 , - 1718 , - 657 , - 484 , - 1199 , - 434 , - 557 , - 1568 , - 1099 , - 1518 , - 457 , - 284 , - 999 , - 234 , - 357 , - 1368 , - 899 , - 1318 , - 257 , - 84 , - 799 , - 34 , - 157 , - 1168 , - 699 , - 1118 , - 57 , - 2252 , - 599 , - 2202 , - 2325 , - 968 , - 499 , - 918 , - 2225 , - 2052 , - 399 , - 2002 , - 2125 , - 768 , - 299 , - 718 , - 2025 , - 1852 , - 199 , - 1802 , - 1925 , - 568 , - 99 , - 518 , - 1825 , - 1652 , - 2367 , - 1602 , - 1725 , - 368 , - 2267 , - 318 , - 1625 , - 1452 , - 2167 , - 1402 , - 1525 , - 168 , - 2067 , - 118 , - 1425 , - 1252 , - 1967 , - 1202 , - 1325 , - 2336 , - 1867 , - 2286 , - 1225 , - 1052 , - 1767 , - 1002 , - 1125 , - 2136 , - 1667 , - 2086 , - 1025 , - 852 , - 1567 , - 802 , - 925 , - 1936 , - 1467 , - 1886 , - 825 , - 652 , - 1367 , - 602 , - 725 , - 1736 , - 1267 , - 1686 , - 625 , - 452 , - 1167 , - 402 , - 525 , - 1536 , - 1067 , - 1486 , - 425 , - 252 , - 967 , - 202 , - 325 , - 1336 , - 867 , - 1286 , - 225 , - 52 , - 767 , - 2 , - 125 , - 1136 , - 667 , - 1086 , - 25 , - 2220 , - 567 , - 2170 , - 2293 , - 936 , - 467 , - 886 , - 2193 , - 2020 , - 367 , - 1970 , - 2093 , - 736 , - 267 , - 686 , - 1993 , - 1820 , - 167 , - 1770 , - 1893 , - 536 , - 67 , - 486 , - 1793 , - 1620 , - 2335 , - 1570 , - 1693 , - 336 , - 2235 , - 286 , - 1593 , - 1420 , - 2135 , - 1370 , - 1493 , - 136 , - 2035 , - 86 , - 1393 , - 1220 , - 1935 , - 1170 , - 1293 , - 2304 , - 1835 , - 2254 , - 1193 , - 1020 , - 1735 , - 970 , - 1093 , - 2104 , - 1635 , - 2054 , - 993 , - 820 , - 1535 , - 770 , - 893 , - 1904 , - 1435 , - 1854 , - 793 , - 620 , - 1335 , - 570 , - 693 , - 1704 , - 1235 , - 1654 , - 593 , - 420 , - 1135 , - 370 , - 493 , - 1504 , - 1035 , - 1454 , - 393 , - 220 , - 935 , - 170 , - 293 , - 1304 , - 835 , - 1254 , - 193 , - 20 , - 735 , - 2338 , - 93 , - 1104 , - 635 , - 1054 , - 2361 , - 2188 , - 535 , - 2138 , - 2261 , - 904 , - 435 , - 854 , - 2161 , - 1988 , - 335 , - 1938 , - 2061 , - 704 , - 235 , - 654 , - 1961 , - 1788 , - 135 , - 1738 , - 1861 , - 504 , - 35 , - 454 , - 1761 , - 1588 , - 2303 , - 1538 , - 1661 , - 304 , - 2203 , - 254 , - 1561 , - 1388 , - 2103 , - 1338 , - 1461 , - 104 , - 2003 , - 54 , - 1361 , - 1188 , - 1903 , - 1138 , - 1261 , - 2272 , - 1803 , - 2222 , - 1161 , - 988 , - 1703 , - 938 , - 1061 , - 2072 , - 1603 , - 2022 , - 961 , - 788 , - 1503 , - 738 , - 861 , - 1872 , - 1403 , - 1822 , - 761 , - 588 , - 1303 , - 538 , - 661 , - 1672 , - 1203 , - 1622 , - 561 , - 388 , - 1103 , - 338 , - 461 , - 1472 , - 1003 , - 1422 , - 361 , - 188 , - 903 , - 138 , - 261 , - 1272 , - 803 , - 1222 , - 161 , - 2356 , - 703 , - 2306 , - 61 , - 1072 , - 603 , - 1022 , - 2329 , - 2156 , - 503 , - 2106 , - 2229 , - 872 , - 403 , - 822 , - 2129 , - 1956 , - 303 , - 1906 , - 2029 , - 672 , - 203 , - 622 , - 1929 , - 1756 , - 103 , - 1706 , - 1829 , - 472 , - 3 , - 422 , - 1729 , - 1556 , - 2271 , - 1506 , - 1629 , - 272 , - 2171 , - 222 , - 1529 , - 1356 , - 2071 , - 1306 , - 1429 , - 72 , - 1971 , - 22 , - 1329 , - 1156 , - 1871 , - 1106 , - 1229 , - 2240 , - 1771 , - 2190 , - 1129 , - 956 , - 1671 , - 906 , - 1029 , - 2040 , - 1571 , - 1990 , - 929 , - 756 , - 1471 , - 706 , - 829 , - 1840 , - 1371 , - 1790 , - 729 , - 556 , - 1271 , - 506 , - 629 , - 1640 , - 1171 , - 1590 , - 529 , - 356 , - 1071 , - 306 , - 429 , - 1440 , - 971 , - 1390 , - 329 , - 156 , - 871 , - 106 , - 229 , - 1240 , - 771 , - 1190 , - 129 , - 2324 , - 671 , - 2274 , - 29 , - 1040 , - 571 , - 990 , - 2297 , - 2124 , - 471 , - 2074 , - 2197 , - 840 , - 371 , - 790 , - 2097 , - 1924 , - 271 , - 1874 , - 1997 , - 640 , - 171 , - 590 , - 1897 , - 1724 , - 71 , - 1674 , - 1797 , - 440 , - 2339 , - 390 , - 1697 , - 1524 , - 2239 , - 1474 , - 1597 , - 240 , - 2139 , - 190 , - 1497 , - 1324 , - 2039 , - 1274 , - 1397 , - 40 , - 1939 , - 2358 , - 1297 , - 1124 , - 1839 , - 1074 , - 1197 , - 2208 , - 1739 , - 2158 , - 1097 , - 924 , - 1639 , - 874 , - 997 , - 2008 , - 1539 , - 1958 , - 897 , - 724 , - 1439 , - 674 , - 797 , - 1808 , - 1339 , - 1758 , - 697 , - 524 , - 1239 , - 474 , - 597 , - 1608 , - 1139 , - 1558 , - 497 , - 324 , - 1039 , - 274 , - 397 , - 1408 , - 939 , - 1358 , - 297 , - 124 , - 839 , - 74 , - 197 , - 1208 , - 739 , - 1158 , - 97 , - 2292 , - 639 , - 2242 , - 2365 , - 1008 , - 539 , - 958 , - 2265 , - 2092 , - 439 , - 2042 , - 2165 , - 808 , - 339 , - 758 , - 2065 , - 1892 , - 239 , - 1842 , - 1965 , - 608 , - 139 , - 558 , - 1865 , - 1692 , - 39 , - 1642 , - 1765 , - 408 , - 2307 , - 358 , - 1665 , - 1492 , - 2207 , - 1442 , - 1565 , - 208 , - 2107 , - 158 , - 1465 , - 1292 , - 2007 , - 1242 , - 1365 , - 8 , - 1907 , - 2326 , - 1265 , - 1092 , - 1807 , - 1042 , - 1165 , - 2176 , - 1707 , - 2126 , - 1065 , - 892 , - 1607 , - 842 , - 965 , - 1976 , - 1507 , - 1926 , - 865 , - 692 , - 1407 , - 642 , - 765 , - 1776 , - 1307 , - 1726 , - 665 , - 492 , - 1207 , - 442 , - 565 , - 1576 , - 1107 , - 1526 , - 465 , - 292 , - 1007 , - 242 , - 365 , - 1376 , - 907 , - 1326 , - 265 , - 92 , - 807 , - 42 , - 165 , - 1176 , - 707 , - 1126 , - 65 , - 2260 , - 607 , - 2210 , - 2333 , - 976 , - 507 , - 926 , - 2233 , - 2060 , - 407 , - 2010 , - 2133 , - 776 , - 307 , - 726 , - 2033 , - 1860 , - 207 , - 1810 , - 1933 , - 576 , - 107 , - 526 , - 1833 , - 1660 , - 7 , - 1610 , - 1733 , - 376 , - 2275 , - 326 , - 1633 , - 1460 , - 2175 , - 1410 , - 1533 , - 176 , - 2075 , - 126 , - 1433 , - 1260 , - 1975 , - 1210 , - 1333 , - 2344 , - 1875 , - 2294 , - 1233 , - 1060 , - 1775 , - 1010 , - 1133 , - 2144 , - 1675 , - 2094 , - 1033 , - 860 , - 1575 , - 810 , - 933 , - 1944 , - 1475 , - 1894 , - 833 , - 660 , - 1375 , - 610 , - 733 , - 1744 , - 1275 , - 1694 , - 633 , - 460 , - 1175 , - 410 , - 533 , - 1544 , - 1075 , - 1494 , - 433 , - 260 , - 975 , - 210 , - 333 , - 1344 , - 875 , - 1294 , - 233 , - 60 , - 775 , - 10 , - 133 , - 1144 , - 675 , - 1094 , - 33 , - 2228 , - 575 , - 2178 , - 2301 , - 944 , - 475 , - 894 , - 2201 , - 2028 , - 375 , - 1978 , - 2101 , - 744 , - 275 , - 694 , - 2001 , - 1828 , - 175 , - 1778 , - 1901 , - 544 , - 75 , - 494 , - 1801 , - 1628 , - 2343 , - 1578 , - 1701 , - 344 , - 2243 , - 294 , - 1601 , - 1428 , - 2143 , - 1378 , - 1501 , - 144 , - 2043 , - 94 , - 1401 , - 1228 , - 1943 , - 1178 , - 1301 , - 2312 , - 1843 , - 2262 , - 1201 , - 1028 , - 1743 , - 978 , - 1101 , - 2112 , - 1643 , - 2062 , - 1001 , - 828 , - 1543 , - 778 , - 901 , - 1912 , - 1443 , - 1862 , - 801 , - 628 , - 1343 , - 578 , - 701 , - 1712 , - 1243 , - 1662 , - 601 , - 428 , - 1143 , - 378 , - 501 , - 1512 , - 1043 , - 1462 , - 401 , - 228 , - 943 , - 178 , - 301 , - 1312 , - 843 , - 1262 , - 201 , - 28 , - 743 , - 2346 , - 101 , - 1112 , - 643 , - 1062 , - 1 , - 2196 , - 543 , - 2146 , - 2269 , - 912 , - 443 , - 862 , - 2169 , - 1996 , - 343 , - 1946 , - 2069 , - 712 , - 243 , - 662 , - 1969 , - 1796 , - 143 , - 1746 , - 1869 , - 512 , - 43 , - 462 , - 1769 , - 1596 , - 2311 , - 1546 , - 1669 , - 312 , - 2211 , - 262 , - 1569 , - 1396 , - 2111 , - 1346 , - 1469 , - 112 , - 2011 , - 62 , - 1369 , - 1196 , - 1911 , - 1146 , - 1269 , - 2280 , - 1811 , - 2230 , - 1169 , - 996 , - 1711 , - 946 , - 1069 , - 2080 , - 1611 , - 2030 , - 969 , - 796 , - 1511 , - 746 , - 869 , - 1880 , - 1411 , - 1830 , - 769 , - 596 , - 1311 , - 546 , - 669 , - 1680 , - 1211 , - 1630 , - 569 , - 396 , - 1111 , - 346 , - 469 , - 1480 , - 1011 , - 1430 , - 369 , - 196 , - 911 , - 146 , - 269 , - 1280 , - 811 , - 1230 , - 169 , - 2364 , - 711 , - 2314 , - 69 , - 1080 , - 611 , - 1030 , - 2337 , - 2164 , - 511 , - 2114 , - 2237 , - 880 , - 411 , - 830 , - 2137 , - 1964 , - 311 , - 1914 , - 2037 , - 680 , - 211 , - 630 , - 1937 , - 1764 , - 111 , - 1714 , - 1837 , - 480 , - 11 , - 430 , - 1737 , - 1564 , - 2279 , - 1514 , - 1637 , - 280 , - 2179 , - 230 , - 1537 , - 1364 , - 2079 , - 1314 , - 1437 , - 80 , - 1979 , - 30 , - 1337 , - 1164 , - 1879 , - 1114 , - 1237 , - 2248 , - 1779 , - 2198 , - 1137 , - 964 , - 1679 , - 914 , - 1037 , - 2048 , - 1579 , - 1998 , - 937 , - 764 , - 1479 , - 714 , - 837 , - 1848 , - 1379 , - 1798 , - 737 , - 564 , - 1279 , - 514 , - 637 , - 1648 , - 1179 , - 1598 , - 537 , - 364 , - 1079 , - 314 , - 437 , - 1448 , - 979 , - 1398 , - 337 , - 164 , - 879 , - 114 , - 237 , - 1248 , - 779 , - 1198 , - 137 , - 2332 , - 679 , - 2282 , - 37 , - 1048 , - 579 , - 998 , - 2305 , - 2132 , - 479 , - 2082 , - 2205 , - 848 , - 379 , - 798 , - 2105 , - 1932 , - 279 , - 1882 , - 2005 , - 648 , - 179 , - 598 , - 1905 , - 1732 , - 79 , - 1682 , - 1805 , - 448 , - 2347 , - 398 , - 1705 , - 1532 , - 2247 , - 1482 , - 1605 , - 248 , - 2147 , - 198 , - 1505 , - 1332 , - 2047 , - 1282 , - 1405 , - 48 , - 1947 , - 2366 , - 1305 , - 1132 , - 1847 , - 1082 , - 1205 , - 2216 , - 1747 , - 2166 , - 1105 , - 932 , - 1647 , - 882 , - 1005 , - 2016 , - 1547 , - 1966 , - 905 , - 732 , - 1447 , - 682 , - 805 , - 1816 , - 1347 , - 1766 , - 705 , - 532 , - 1247 , - 482 , - 605 , - 1616 , - 1147 , - 1566 , - 505 , - 332 , - 1047 , - 282 , - 405 , - 1416 , - 947 , - 1366 , - 305 , - 132 , - 847 , - 82 , - 205 , - 1216 , - 747 , - 1166 , - 105 , - 2300 , - 647 , - 2250 , - 5 , - 1016 , - 547 , - 966 , - 2273 , - 2100 , - 447 , - 2050 , - 2173 , - 816 , - 347 , - 766 , - 2073 , - 1900 , - 247 , - 1850 , - 1973 , - 616 , - 147 , - 566 , - 1873 , - 1700 , - 47 , - 1650 , - 1773 , - 416 , - 2315 , - 366 , - 1673 , - 1500 , - 2215 , - 1450 , - 1573 , - 216 , - 2115 , - 166 , - 1473 , - 1300 , - 2015 , - 1250 , - 1373 , - 16 , - 1915 , - 2334 , - 1273 , - 1100 , - 1815 , - 1050 , - 1173 , - 2184 , - 1715 , - 2134 , - 1073 , - 900 , - 1615 , - 850 , - 973 , - 1984 , - 1515 , - 1934 , - 873 , - 700 , - 1415 , - 650 , - 773 , - 1784 , - 1315 , - 1734 , - 673 , - 500 , - 1215 , - 450 , - 573 , - 1584 , - 1115 , - 1534 , - 473 , - 300 , - 1015 , - 250 , - 373 , - 1384 , - 915 , - 1334 , - 273 , - 100 , - 815 , - 50 , - 173 , - 1184 , - 715 , - 1134 , - 73 , - 2268 , - 615 , - 2218 , - 2341 , - 984 , - 515 , - 934 , - 2241 , - 2068 , - 415 , - 2018 , - 2141 , - 784 , - 315 , - 734 , - 2041 , - 1868 , - 215 , - 1818 , - 1941 , - 584 , - 115 , - 534 , - 1841 , - 1668 , - 15 , - 1618 , - 1741 , - 384 , - 2283 , - 334 , - 1641 , - 1468 , - 2183 , - 1418 , - 1541 , - 184 , - 2083 , - 134 , - 1441 , - 1268 , - 1983 , - 1218 , - 1341 , - 2352 , - 1883 , - 2302 , - 1241 , - 1068 , - 1783 , - 1018 , - 1141 , - 2152 , - 1683 , - 2102 , - 1041 , - 868 , - 1583 , - 818 , - 941 , - 1952 , - 1483 , - 1902 , - 841 , - 668 , - 1383 , - 618 , - 741 , - 1752 , - 1283 , - 1702 , - 641 , - 468 , - 1183 , - 418 , - 541 , - 1552 , - 1083 , - 1502 , - 441 , - 268 , - 983 , - 218 , - 341 , - 1352 , - 883 , - 1302 , - 241 , - 68 , - 783 , - 18 , - 141 , - 1152 , - 683 , - 1102 , - 41 , - 2236 , - 583 , - 2186 , - 2309 , - 952 , - 483 , - 902 , - 2209 , - 2036 , - 383 , - 1986 , - 2109 , - 752 , - 283 , - 702 , - 2009 , - 1836 , - 183 , - 1786 , - 1909 , - 552 , - 83 , - 502 , - 1809 , - 1636 , - 2351 , - 1586 , - 1709 , - 352 , - 2251 , - 302 , - 1609 , - 1436 , - 2151 , - 1386 , - 1509 , - 152 , - 2051 , - 102 , - 1409 , - 1236 , - 1951 , - 1186 , - 1309 , - 2320 , - 1851 , - 2270 , - 1209 , - 1036 , - 1751 , - 986 , - 1109 , - 2120 , - 1651 , - 2070 , - 1009 , - 836 , - 1551 , - 786 , - 909 , - 1920 , - 1451 , - 1870 , - 809 , - 636 , - 1351 , - 586 , - 709 , - 1720 , - 1251 , - 1670 , - 609 , - 436 , - 1151 , - 386 , - 509 , - 1520 , - 1051 , - 1470 , - 409 , - 236 , - 951 , - 186 , - 309 , - 1320 , - 851 , - 1270 , - 209 , - 36 , - 751 , - 2354 , - 109 , - 1120 , - 651 , - 1070 , - 9 , - 2204 , - 551 , - 2154 , - 2277 , - 920 , - 451 , - 870 , - 2177 , - 2004 , - 351 , - 1954 , - 2077 , - 720 , - 251 , - 670 , - 1977 , - 1804 , - 151 , - 1754 , - 1877 , - 520 , - 51 , - 470 , - 1777 , - 1604 , - 2319 , - 1554 , - 1677 , - 320 , - 2219 , - 270 , - 1577 , - 1404 , - 2119 , - 1354 , - 1477 , - 120 , - 2019 , - 70 , - 1377 , - 1204 , - 1919 , - 1154 , - 1277 , - 2288 , - 1819 , - 2238 , - 1177 , - 1004 , - 1719 , - 954 , - 1077 , - 2088 , - 1619 , - 2038 , - 977 , - 804 , - 1519 , - 754 , - 877 , - 1888 , - 1419 , - 1838 , - 777 , - 604 , - 1319 , - 554 , - 677 , - 1688 , - 1219 , - 1638 , - 577 , - 404 , - 1119 , - 354 , - 477 , - 1488 , - 1019 , - 1438 , - 377 , - 204 , - 919 , - 154 , - 277 , - 1288 , - 819 , - 1238 , - 177 , - 4 , - 719 , - 2322 , - 77 , - 1088 , - 619 , - 1038 , - 2345 , - 2172 , - 519 , - 2122 , - 2245 , - 888 , - 419 , - 838 , - 2145 , - 1972 , - 319 , - 1922 , - 2045 , - 688 , - 219 , - 638 , - 1945 , - 1772 , - 119 , - 1722 , - 1845 , - 488 , - 19 , - 438 , - 1745 , - 1572 , - 2287 , - 1522 , - 1645 , - 288 , - 2187 , - 238 , - 1545 , - 1372 , - 2087 , - 1322 , - 1445 , - 88 , - 1987 , - 38 , - 1345 , - 1172 , - 1887 , - 1122 , - 1245 , - 2256 , - 1787 , - 2206 , - 1145 , - 972 , - 1687 , - 922 , - 1045 , - 2056 , - 1587 , - 2006 , - 945 , - 772 , - 1487 , - 722 , - 845 , - 1856 , - 1387 , - 1806 , - 745 , - 572 , - 1287 , - 522 , - 645 , - 1656 , - 1187 , - 1606 , - 545 , - 372 , - 1087 , - 322 , - 445 , - 1456 , - 987 , - 1406 , - 345 , - 172 , - 887 , - 122 , - 245 , - 1256 , - 787 , - 1206 , - 145 , - 2340 , - 687 , - 2290 , - 45 , - 1056 , - 587 , - 1006 , - 2313 , - 2140 , - 487 , - 2090 , - 2213 , - 856 , - 387 , - 806 , - 2113 , - 1940 , - 287 , - 1890 , - 2013 , - 656 , - 187 , - 606 , - 1913 , - 1740 , - 87 , - 1690 , - 1813 , - 456 , - 2355 , - 406 , - 1713 , - 1540 , - 2255 , - 1490 , - 1613 , - 256 , - 2155 , - 206 , - 1513 , - 1340 , - 2055 , - 1290 , - 1413 , - 56 , - 1955 , - 6 , - 1313 , - 1140 , - 1855 , - 1090 , - 1213 , - 2224 , - 1755 , - 2174 , - 1113 , - 940 , - 1655 , - 890 , - 1013 , - 2024 , - 1555 , - 1974 , - 913 , - 740 , - 1455 , - 690 , - 813 , - 1824 , - 1355 , - 1774 , - 713 , - 540 , - 1255 , - 490 , - 613 , - 1624 , - 1155 , - 1574 , - 513 , - 340 , - 1055 , - 290 , - 413 , - 1424 , - 955 , - 1374 , - 313 , - 140 , - 855 , - 90 , - 213 , - 1224 , - 755 , - 1174 , - 113 , - 2308 , - 655 , - 2258 , - 13 , - 1024 , - 555 , - 974 , - 2281 , - 2108 , - 455 , - 2058 , - 2181 , - 824 , - 355 , - 774 , - 2081 , - 1908 , - 255 , - 1858 , - 1981 , - 624 , - 155 , - 574 , - 1881 , - 1708 , - 55 , - 1658 , - 1781 , - 424 , - 2323 , - 374 , - 1681 , - 1508 , - 2223 , - 1458 , - 1581 , - 224 , - 2123 , - 174 , - 1481 , - 1308 , - 2023 , - 1258 , - 1381 , - 24 , - 1923 , - 2342 , - 1281 , - 1108 , - 1823 , - 1058 , - 1181 , - 2192 , - 1723 , - 2142 , - 1081 , - 908 , - 1623 , - 858 , - 981 , - 1992 , - 1523 , - 1942 , - 881 , - 708 , - 1423 , - 658 , - 781 , - 1792 , - 1323 , - 1742 , - 681 , - 508 , - 1223 , - 458 , - 581 , - 1592 , - 1123 , - 1542 , - 481 , - 308 , - 1023 , - 258 , - 381 , - 1392 , - 923 , - 1342 , - 281 , - 108 , - 823 , - 58 , - 181 , - 1192 , - 723 , - 1142 , - 81 , - 2276 , - 623 , - 2226 , - 2349 , - 992 , - 523 , - 942 , - 2249 , - 2076 , - 423 , - 2026 , - 2149 , - 792 , - 323 , - 742 , - 2049 , - 1876 , - 223 , - 1826 , - 1949 , - 592 , - 123 , - 542 , - 1849 , - 1676 , - 23 , - 1626 , - 1749 , - 392 , - 2291 , - 342 , - 1649 , - 1476 , - 2191 , - 1426 , - 1549 , - 192 , - 2091 , - 142 , - 1449 , - 1276 , - 1991 , - 1226 , - 1349 , - 2360 , - 1891 , - 2310 , - 1249 , - 1076 , - 1791 , - 1026 , - 1149 , - 2160 , - 1691 , - 2110 , - 1049 , - 876 , - 1591 , - 826 , - 949 , - 1960 , - 1491 , - 1910 , - 849 , - 676 , - 1391 , - 626 , - 749 , - 1760 , - 1291 , - 1710 , - 649 , - 476 , - 1191 , - 426 , - 549 , - 1560 , - 1091 , - 1510 , - 449 , - 276 , - 991 , - 226 , - 349 , - 1360 , - 891 , - 1310 , - 249 , - 76 , - 791 , - 26 , - 149 , - 1160 , - 691 , - 1110 , - 49 , - 2244 , - 591 , - 2194 , - 2317 , - 960 , - 491 , - 910 , - 2217 , - 2044 , - 391 , - 1994 , - 2117 , - 760 , - 291 , - 710 , - 2017 , - 1844 , - 191 , - 1794 , - 1917 , - 560 , - 91 , - 510 , - 1817 , - 1644 , - 2359 , - 1594 , - 1717 , - 360 , - 2259 , - 310 , - 1617 , - 1444 , - 2159 , - 1394 , - 1517 , - 160 , - 2059 , - 110 , - 1417 , - 1244 , - 1959 , - 1194 , - 1317 , - 2328 , - 1859 , - 2278 , - 1217 , - 1044 , - 1759 , - 994 , - 1117 , - 2128 , - 1659 , - 2078 , - 1017 , - 844 , - 1559 , - 794 , - 917 , - 1928 , - 1459 , - 1878 , - 817 , - 644 , - 1359 , - 594 , - 717 , - 1728 , - 1259 , - 1678 , - 617 , - 444 , - 1159 , - 394 , - 517 , - 1528 , - 1059 , - 1478 , - 417 , - 244 , - 959 , - 194 , - 317 , - 1328 , - 859 , - 1278 , - 217 , - 44 , - 759 , - 2362 , - 117 , - 1128 , - 659 , - 1078 , - 17 , - 2212 , - 559 , - 2162 , - 2285 , - 928 , - 459 , - 878 , - 2185 , - 2012 , - 359 , - 1962 , - 2085 , - 728 , - 259 , - 678 , - 1985 , - 1812 , - 159 , - 1762 , - 1885 , - 528 , - 59 , - 478 , - 1785 , - 1612 , - 2327 , - 1562 , - 1685 , - 328 , - 2227 , - 278 , - 1585 , - 1412 , - 2127 , - 1362 , - 1485 , - 128 , - 2027 , - 78 , - 1385 , - 1212 , - 1927 , - 1162 , - 1285 , - 2296 , - 1827 , - 2246 , - 1185 , - 1012 , - 1727 , - 962 , - 1085 , - 2096 , - 1627 , - 2046 , - 985 , - 812 , - 1527 , - 762 , - 885 , - 1896 , - 1427 , - 1846 , - 785 , - 612 , - 1327 , - 562 , - 685 , - 1696 , - 1227 , - 1646 , - 585 , - 412 , - 1127 , - 362 , - 485 , - 1496 , - 1027 , - 1446 , - 385 , - 212 , - 927 , - 162 , - 285 , - 1296 , - 827 , - 1246 , - 185 , - 12 , - 727 , - 2330 , - 85 , - 1096 , - 627 , - 1046 , - 2353 , - 2180 , - 527 , - 2130 , - 2253 , - 896 , - 427 , - 846 , - 2153 , - 1980 , - 327 , - 1930 , - 2053 , - 696 , - 227 , - 646 , - 1953 , - 1780 , - 127 , - 1730 , - 1853 , - 496 , - 27 , - 446 , - 1753 , - 1580 , - 2295 , - 1530 , - 1653 , - 296 , - 2195 , - 246 , - 1553 , - 1380 , - 2095 , - 1330 , - 1453 , - 96 , - 1995 , - 46 , - 1353 , - 1180 , - 1895 , - 1130 , - 1253 , - 2264 , - 1795 , - 2214 , - 1153 , - 980 , - 1695 , - 930 , - 1053 , - 2064 , - 1595 , - 2014 , - 953 , - 780 , - 1495 , - 730 , - 853 , - 1864 , - 1395 , - 1814 , - 753 , - 580 , - 1295 , - 530 , - 653 , - 1664 , - 1195 , - 1614 , - 553 , - 380 , - 1095 , - 330 , - 453 , - 1464 , - 995 , - 1414 , - 353 , - 180 , - 895 , - 130 , - 253 , - 1264 , - 795 , - 1214 , - 153 , - 2348 , - 695 , - 2298 , - 53 , - 1064 , - 595 , - 1014 , - 2321 , - 2148 , - 495 , - 2098 , - 2221 , - 864 , - 395 , - 814 , - 2121 , - 1948 , - 295 , - 1898 , - 2021 , - 664 , - 195 , - 614 , - 1921 , - 1748 , - 95 , - 1698 , - 1821 , - 464 , - 2363 , - 414 , - 1721 , - 1548 , - 2263 , - 1498 , - 1621 , - 264 , - 2163 , - 214 , - 1521 , - 1348 , - 2063 , - 1298 , - 1421 , - 64 , - 1963 , - 14 , - 1321 , - 1148 , - 1863 , - 1098 , - 1221 , - 2232 , - 1763 , - 2182 , - 1121 , - 948 , - 1663 , - 898 , - 1021 , - 2032 , - 1563 , - 1982 , - 921 , - 748 , - 1463 , - 698 , - 821 , - 1832 , - 1363 , - 1782 , - 721 , - 548 , - 1263 , - 498 , - 621 , - 1632 , - 1163 , - 1582 , - 521 , - 348 , - 1063 , - 298 , - 421 , - 1432 , - 963 , - 1382 , - 321 , - 148 , - 863 , - 98 , - 221 , - 1232 , - 763 , - 1182 , - 121 , - 2316 , - 663 , - 2266 , - 21 , - 1032 , - 563 , - 982 , - 2289 , - 2116 , - 463 , - 2066 , - 2189 , - 832 , - 363 , - 782 , - 2089 , - 1916 , - 263 , - 1866 , - 1989 , - 632 , - 163 , - 582 , - 1889 , - 1716 , - 63 , - 1666 , - 1789 , - 432 , - 2331 , - 382 , - 1689 , - 1516 , - 2231 , - 1466 , - 1589 , - 232 , - 2131 , - 182 , - 1489 , - 1316 , - 2031 , - 1266 , - 1389 , - 32 , - 1931 , - 2350 , - 1289 , - 1116 , - 1831 , - 1066 , - 1189 , - 2200 , - 1731 , - 2150 , - 1089 , - 916 , - 1631 , - 866 , - 989 , - 2000 , - 1531 , - 1950 , - 889 , - 716 , - 1431 , - 666 , - 789 , - 1800 , - 1331 , - 1750 , - 689 , - 516 , - 1231 , - 466 , - 589 , - 1600 , - 1131 , - 1550 , - 489 , - 316 , - 1031 , - 266 , - 389 , - 1400 , - 931 , - 1350 , - 289 , - 116 , - 831 , - 66 , - 189 , - 1200 , - 731 , - 1150 , - 89 , - 2284 , - 631 , - 2234 , - 2357 , - 1000 , - 531 , - 950 , - 2257 , - 2084 , - 431 , - 2034 , - 2157 , - 800 , - 331 , - 750 , - 2057 , - 1884 , - 231 , - 1834 , - 1957 , - 600 , - 131 , - 550 , - 1857 , - 1684 , - 31 , - 1634 , - 1757 , - 400 , - 2299 , - 350 , - 1657 , - 1484 , - 2199 , - 1434 , - 1557 , - 200 , - 2099 , - 150 , - 1457 , - 1284 , - 1999 , - 1234 , - 1357 , - 0 , - 1329 , - 1746 , - 1251 , - 2276 , - 2389 , - 1590 , - 2311 , - 2120 , - 1017 , - 1434 , - 939 , - 1964 , - 2077 , - 1278 , - 1999 , - 1808 , - 705 , - 1122 , - 627 , - 1652 , - 1765 , - 966 , - 1687 , - 1496 , - 393 , - 810 , - 315 , - 1340 , - 1453 , - 654 , - 1375 , - 1184 , - 81 , - 498 , - 3 , - 1028 , - 1141 , - 342 , - 1063 , - 872 , - 2201 , - 186 , - 2123 , - 716 , - 829 , - 30 , - 751 , - 560 , - 1889 , - 2306 , - 1811 , - 404 , - 517 , - 2150 , - 439 , - 248 , - 1577 , - 1994 , - 1499 , - 92 , - 205 , - 1838 , - 127 , - 2368 , - 1265 , - 1682 , - 1187 , - 2212 , - 2325 , - 1526 , - 2247 , - 2056 , - 953 , - 1370 , - 875 , - 1900 , - 2013 , - 1214 , - 1935 , - 1744 , - 641 , - 1058 , - 563 , - 1588 , - 1701 , - 902 , - 1623 , - 1432 , - 329 , - 746 , - 251 , - 1276 , - 1389 , - 590 , - 1311 , - 1120 , - 17 , - 434 , - 2371 , - 964 , - 1077 , - 278 , - 999 , - 808 , - 2137 , - 122 , - 2059 , - 652 , - 765 , - 2398 , - 687 , - 496 , - 1825 , - 2242 , - 1747 , - 340 , - 453 , - 2086 , - 375 , - 184 , - 1513 , - 1930 , - 1435 , - 28 , - 141 , - 1774 , - 63 , - 2304 , - 1201 , - 1618 , - 1123 , - 2148 , - 2261 , - 1462 , - 2183 , - 1992 , - 889 , - 1306 , - 811 , - 1836 , - 1949 , - 1150 , - 1871 , - 1680 , - 577 , - 994 , - 499 , - 1524 , - 1637 , - 838 , - 1559 , - 1368 , - 265 , - 682 , - 187 , - 1212 , - 1325 , - 526 , - 1247 , - 1056 , - 2385 , - 370 , - 2307 , - 900 , - 1013 , - 214 , - 935 , - 744 , - 2073 , - 58 , - 1995 , - 588 , - 701 , - 2334 , - 623 , - 432 , - 1761 , - 2178 , - 1683 , - 276 , - 389 , - 2022 , - 311 , - 120 , - 1449 , - 1866 , - 1371 , - 2396 , - 77 , - 1710 , - 2431 , - 2240 , - 1137 , - 1554 , - 1059 , - 2084 , - 2197 , - 1398 , - 2119 , - 1928 , - 825 , - 1242 , - 747 , - 1772 , - 1885 , - 1086 , - 1807 , - 1616 , - 513 , - 930 , - 435 , - 1460 , - 1573 , - 774 , - 1495 , - 1304 , - 201 , - 618 , - 123 , - 1148 , - 1261 , - 462 , - 1183 , - 992 , - 2321 , - 306 , - 2243 , - 836 , - 949 , - 150 , - 871 , - 680 , - 2009 , - 2426 , - 1931 , - 524 , - 637 , - 2270 , - 559 , - 368 , - 1697 , - 2114 , - 1619 , - 212 , - 325 , - 1958 , - 247 , - 56 , - 1385 , - 1802 , - 1307 , - 2332 , - 13 , - 1646 , - 2367 , - 2176 , - 1073 , - 1490 , - 995 , - 2020 , - 2133 , - 1334 , - 2055 , - 1864 , - 761 , - 1178 , - 683 , - 1708 , - 1821 , - 1022 , - 1743 , - 1552 , - 449 , - 866 , - 371 , - 1396 , - 1509 , - 710 , - 1431 , - 1240 , - 137 , - 554 , - 59 , - 1084 , - 1197 , - 398 , - 1119 , - 928 , - 2257 , - 242 , - 2179 , - 772 , - 885 , - 86 , - 807 , - 616 , - 1945 , - 2362 , - 1867 , - 460 , - 573 , - 2206 , - 495 , - 304 , - 1633 , - 2050 , - 1555 , - 148 , - 261 , - 1894 , - 183 , - 2424 , - 1321 , - 1738 , - 1243 , - 2268 , - 2381 , - 1582 , - 2303 , - 2112 , - 1009 , - 1426 , - 931 , - 1956 , - 2069 , - 1270 , - 1991 , - 1800 , - 697 , - 1114 , - 619 , - 1644 , - 1757 , - 958 , - 1679 , - 1488 , - 385 , - 802 , - 307 , - 1332 , - 1445 , - 646 , - 1367 , - 1176 , - 73 , - 490 , - 2427 , - 1020 , - 1133 , - 334 , - 1055 , - 864 , - 2193 , - 178 , - 2115 , - 708 , - 821 , - 22 , - 743 , - 552 , - 1881 , - 2298 , - 1803 , - 396 , - 509 , - 2142 , - 431 , - 240 , - 1569 , - 1986 , - 1491 , - 84 , - 197 , - 1830 , - 119 , - 2360 , - 1257 , - 1674 , - 1179 , - 2204 , - 2317 , - 1518 , - 2239 , - 2048 , - 945 , - 1362 , - 867 , - 1892 , - 2005 , - 1206 , - 1927 , - 1736 , - 633 , - 1050 , - 555 , - 1580 , - 1693 , - 894 , - 1615 , - 1424 , - 321 , - 738 , - 243 , - 1268 , - 1381 , - 582 , - 1303 , - 1112 , - 9 , - 426 , - 2363 , - 956 , - 1069 , - 270 , - 991 , - 800 , - 2129 , - 114 , - 2051 , - 644 , - 757 , - 2390 , - 679 , - 488 , - 1817 , - 2234 , - 1739 , - 332 , - 445 , - 2078 , - 367 , - 176 , - 1505 , - 1922 , - 1427 , - 20 , - 133 , - 1766 , - 55 , - 2296 , - 1193 , - 1610 , - 1115 , - 2140 , - 2253 , - 1454 , - 2175 , - 1984 , - 881 , - 1298 , - 803 , - 1828 , - 1941 , - 1142 , - 1863 , - 1672 , - 569 , - 986 , - 491 , - 1516 , - 1629 , - 830 , - 1551 , - 1360 , - 257 , - 674 , - 179 , - 1204 , - 1317 , - 518 , - 1239 , - 1048 , - 2377 , - 362 , - 2299 , - 892 , - 1005 , - 206 , - 927 , - 736 , - 2065 , - 50 , - 1987 , - 580 , - 693 , - 2326 , - 615 , - 424 , - 1753 , - 2170 , - 1675 , - 268 , - 381 , - 2014 , - 303 , - 112 , - 1441 , - 1858 , - 1363 , - 2388 , - 69 , - 1702 , - 2423 , - 2232 , - 1129 , - 1546 , - 1051 , - 2076 , - 2189 , - 1390 , - 2111 , - 1920 , - 817 , - 1234 , - 739 , - 1764 , - 1877 , - 1078 , - 1799 , - 1608 , - 505 , - 922 , - 427 , - 1452 , - 1565 , - 766 , - 1487 , - 1296 , - 193 , - 610 , - 115 , - 1140 , - 1253 , - 454 , - 1175 , - 984 , - 2313 , - 298 , - 2235 , - 828 , - 941 , - 142 , - 863 , - 672 , - 2001 , - 2418 , - 1923 , - 516 , - 629 , - 2262 , - 551 , - 360 , - 1689 , - 2106 , - 1611 , - 204 , - 317 , - 1950 , - 239 , - 48 , - 1377 , - 1794 , - 1299 , - 2324 , - 5 , - 1638 , - 2359 , - 2168 , - 1065 , - 1482 , - 987 , - 2012 , - 2125 , - 1326 , - 2047 , - 1856 , - 753 , - 1170 , - 675 , - 1700 , - 1813 , - 1014 , - 1735 , - 1544 , - 441 , - 858 , - 363 , - 1388 , - 1501 , - 702 , - 1423 , - 1232 , - 129 , - 546 , - 51 , - 1076 , - 1189 , - 390 , - 1111 , - 920 , - 2249 , - 234 , - 2171 , - 764 , - 877 , - 78 , - 799 , - 608 , - 1937 , - 2354 , - 1859 , - 452 , - 565 , - 2198 , - 487 , - 296 , - 1625 , - 2042 , - 1547 , - 140 , - 253 , - 1886 , - 175 , - 2416 , - 1313 , - 1730 , - 1235 , - 2260 , - 2373 , - 1574 , - 2295 , - 2104 , - 1001 , - 1418 , - 923 , - 1948 , - 2061 , - 1262 , - 1983 , - 1792 , - 689 , - 1106 , - 611 , - 1636 , - 1749 , - 950 , - 1671 , - 1480 , - 377 , - 794 , - 299 , - 1324 , - 1437 , - 638 , - 1359 , - 1168 , - 65 , - 482 , - 2419 , - 1012 , - 1125 , - 326 , - 1047 , - 856 , - 2185 , - 170 , - 2107 , - 700 , - 813 , - 14 , - 735 , - 544 , - 1873 , - 2290 , - 1795 , - 388 , - 501 , - 2134 , - 423 , - 232 , - 1561 , - 1978 , - 1483 , - 76 , - 189 , - 1822 , - 111 , - 2352 , - 1249 , - 1666 , - 1171 , - 2196 , - 2309 , - 1510 , - 2231 , - 2040 , - 937 , - 1354 , - 859 , - 1884 , - 1997 , - 1198 , - 1919 , - 1728 , - 625 , - 1042 , - 547 , - 1572 , - 1685 , - 886 , - 1607 , - 1416 , - 313 , - 730 , - 235 , - 1260 , - 1373 , - 574 , - 1295 , - 1104 , - 1 , - 418 , - 2355 , - 948 , - 1061 , - 262 , - 983 , - 792 , - 2121 , - 106 , - 2043 , - 636 , - 749 , - 2382 , - 671 , - 480 , - 1809 , - 2226 , - 1731 , - 324 , - 437 , - 2070 , - 359 , - 168 , - 1497 , - 1914 , - 1419 , - 12 , - 125 , - 1758 , - 47 , - 2288 , - 1185 , - 1602 , - 1107 , - 2132 , - 2245 , - 1446 , - 2167 , - 1976 , - 873 , - 1290 , - 795 , - 1820 , - 1933 , - 1134 , - 1855 , - 1664 , - 561 , - 978 , - 483 , - 1508 , - 1621 , - 822 , - 1543 , - 1352 , - 249 , - 666 , - 171 , - 1196 , - 1309 , - 510 , - 1231 , - 1040 , - 2369 , - 354 , - 2291 , - 884 , - 997 , - 198 , - 919 , - 728 , - 2057 , - 42 , - 1979 , - 572 , - 685 , - 2318 , - 607 , - 416 , - 1745 , - 2162 , - 1667 , - 260 , - 373 , - 2006 , - 295 , - 104 , - 1433 , - 1850 , - 1355 , - 2380 , - 61 , - 1694 , - 2415 , - 2224 , - 1121 , - 1538 , - 1043 , - 2068 , - 2181 , - 1382 , - 2103 , - 1912 , - 809 , - 1226 , - 731 , - 1756 , - 1869 , - 1070 , - 1791 , - 1600 , - 497 , - 914 , - 419 , - 1444 , - 1557 , - 758 , - 1479 , - 1288 , - 185 , - 602 , - 107 , - 1132 , - 1245 , - 446 , - 1167 , - 976 , - 2305 , - 290 , - 2227 , - 820 , - 933 , - 134 , - 855 , - 664 , - 1993 , - 2410 , - 1915 , - 508 , - 621 , - 2254 , - 543 , - 352 , - 1681 , - 2098 , - 1603 , - 196 , - 309 , - 1942 , - 231 , - 40 , - 1369 , - 1786 , - 1291 , - 2316 , - 2429 , - 1630 , - 2351 , - 2160 , - 1057 , - 1474 , - 979 , - 2004 , - 2117 , - 1318 , - 2039 , - 1848 , - 745 , - 1162 , - 667 , - 1692 , - 1805 , - 1006 , - 1727 , - 1536 , - 433 , - 850 , - 355 , - 1380 , - 1493 , - 694 , - 1415 , - 1224 , - 121 , - 538 , - 43 , - 1068 , - 1181 , - 382 , - 1103 , - 912 , - 2241 , - 226 , - 2163 , - 756 , - 869 , - 70 , - 791 , - 600 , - 1929 , - 2346 , - 1851 , - 444 , - 557 , - 2190 , - 479 , - 288 , - 1617 , - 2034 , - 1539 , - 132 , - 245 , - 1878 , - 167 , - 2408 , - 1305 , - 1722 , - 1227 , - 2252 , - 2365 , - 1566 , - 2287 , - 2096 , - 993 , - 1410 , - 915 , - 1940 , - 2053 , - 1254 , - 1975 , - 1784 , - 681 , - 1098 , - 603 , - 1628 , - 1741 , - 942 , - 1663 , - 1472 , - 369 , - 786 , - 291 , - 1316 , - 1429 , - 630 , - 1351 , - 1160 , - 57 , - 474 , - 2411 , - 1004 , - 1117 , - 318 , - 1039 , - 848 , - 2177 , - 162 , - 2099 , - 692 , - 805 , - 6 , - 727 , - 536 , - 1865 , - 2282 , - 1787 , - 380 , - 493 , - 2126 , - 415 , - 224 , - 1553 , - 1970 , - 1475 , - 68 , - 181 , - 1814 , - 103 , - 2344 , - 1241 , - 1658 , - 1163 , - 2188 , - 2301 , - 1502 , - 2223 , - 2032 , - 929 , - 1346 , - 851 , - 1876 , - 1989 , - 1190 , - 1911 , - 1720 , - 617 , - 1034 , - 539 , - 1564 , - 1677 , - 878 , - 1599 , - 1408 , - 305 , - 722 , - 227 , - 1252 , - 1365 , - 566 , - 1287 , - 1096 , - 2425 , - 410 , - 2347 , - 940 , - 1053 , - 254 , - 975 , - 784 , - 2113 , - 98 , - 2035 , - 628 , - 741 , - 2374 , - 663 , - 472 , - 1801 , - 2218 , - 1723 , - 316 , - 429 , - 2062 , - 351 , - 160 , - 1489 , - 1906 , - 1411 , - 4 , - 117 , - 1750 , - 39 , - 2280 , - 1177 , - 1594 , - 1099 , - 2124 , - 2237 , - 1438 , - 2159 , - 1968 , - 865 , - 1282 , - 787 , - 1812 , - 1925 , - 1126 , - 1847 , - 1656 , - 553 , - 970 , - 475 , - 1500 , - 1613 , - 814 , - 1535 , - 1344 , - 241 , - 658 , - 163 , - 1188 , - 1301 , - 502 , - 1223 , - 1032 , - 2361 , - 346 , - 2283 , - 876 , - 989 , - 190 , - 911 , - 720 , - 2049 , - 34 , - 1971 , - 564 , - 677 , - 2310 , - 599 , - 408 , - 1737 , - 2154 , - 1659 , - 252 , - 365 , - 1998 , - 287 , - 96 , - 1425 , - 1842 , - 1347 , - 2372 , - 53 , - 1686 , - 2407 , - 2216 , - 1113 , - 1530 , - 1035 , - 2060 , - 2173 , - 1374 , - 2095 , - 1904 , - 801 , - 1218 , - 723 , - 1748 , - 1861 , - 1062 , - 1783 , - 1592 , - 489 , - 906 , - 411 , - 1436 , - 1549 , - 750 , - 1471 , - 1280 , - 177 , - 594 , - 99 , - 1124 , - 1237 , - 438 , - 1159 , - 968 , - 2297 , - 282 , - 2219 , - 812 , - 925 , - 126 , - 847 , - 656 , - 1985 , - 2402 , - 1907 , - 500 , - 613 , - 2246 , - 535 , - 344 , - 1673 , - 2090 , - 1595 , - 188 , - 301 , - 1934 , - 223 , - 32 , - 1361 , - 1778 , - 1283 , - 2308 , - 2421 , - 1622 , - 2343 , - 2152 , - 1049 , - 1466 , - 971 , - 1996 , - 2109 , - 1310 , - 2031 , - 1840 , - 737 , - 1154 , - 659 , - 1684 , - 1797 , - 998 , - 1719 , - 1528 , - 425 , - 842 , - 347 , - 1372 , - 1485 , - 686 , - 1407 , - 1216 , - 113 , - 530 , - 35 , - 1060 , - 1173 , - 374 , - 1095 , - 904 , - 2233 , - 218 , - 2155 , - 748 , - 861 , - 62 , - 783 , - 592 , - 1921 , - 2338 , - 1843 , - 436 , - 549 , - 2182 , - 471 , - 280 , - 1609 , - 2026 , - 1531 , - 124 , - 237 , - 1870 , - 159 , - 2400 , - 1297 , - 1714 , - 1219 , - 2244 , - 2357 , - 1558 , - 2279 , - 2088 , - 985 , - 1402 , - 907 , - 1932 , - 2045 , - 1246 , - 1967 , - 1776 , - 673 , - 1090 , - 595 , - 1620 , - 1733 , - 934 , - 1655 , - 1464 , - 361 , - 778 , - 283 , - 1308 , - 1421 , - 622 , - 1343 , - 1152 , - 49 , - 466 , - 2403 , - 996 , - 1109 , - 310 , - 1031 , - 840 , - 2169 , - 154 , - 2091 , - 684 , - 797 , - 2430 , - 719 , - 528 , - 1857 , - 2274 , - 1779 , - 372 , - 485 , - 2118 , - 407 , - 216 , - 1545 , - 1962 , - 1467 , - 60 , - 173 , - 1806 , - 95 , - 2336 , - 1233 , - 1650 , - 1155 , - 2180 , - 2293 , - 1494 , - 2215 , - 2024 , - 921 , - 1338 , - 843 , - 1868 , - 1981 , - 1182 , - 1903 , - 1712 , - 609 , - 1026 , - 531 , - 1556 , - 1669 , - 870 , - 1591 , - 1400 , - 297 , - 714 , - 219 , - 1244 , - 1357 , - 558 , - 1279 , - 1088 , - 2417 , - 402 , - 2339 , - 932 , - 1045 , - 246 , - 967 , - 776 , - 2105 , - 90 , - 2027 , - 620 , - 733 , - 2366 , - 655 , - 464 , - 1793 , - 2210 , - 1715 , - 308 , - 421 , - 2054 , - 343 , - 152 , - 1481 , - 1898 , - 1403 , - 2428 , - 109 , - 1742 , - 31 , - 2272 , - 1169 , - 1586 , - 1091 , - 2116 , - 2229 , - 1430 , - 2151 , - 1960 , - 857 , - 1274 , - 779 , - 1804 , - 1917 , - 1118 , - 1839 , - 1648 , - 545 , - 962 , - 467 , - 1492 , - 1605 , - 806 , - 1527 , - 1336 , - 233 , - 650 , - 155 , - 1180 , - 1293 , - 494 , - 1215 , - 1024 , - 2353 , - 338 , - 2275 , - 868 , - 981 , - 182 , - 903 , - 712 , - 2041 , - 26 , - 1963 , - 556 , - 669 , - 2302 , - 591 , - 400 , - 1729 , - 2146 , - 1651 , - 244 , - 357 , - 1990 , - 279 , - 88 , - 1417 , - 1834 , - 1339 , - 2364 , - 45 , - 1678 , - 2399 , - 2208 , - 1105 , - 1522 , - 1027 , - 2052 , - 2165 , - 1366 , - 2087 , - 1896 , - 793 , - 1210 , - 715 , - 1740 , - 1853 , - 1054 , - 1775 , - 1584 , - 481 , - 898 , - 403 , - 1428 , - 1541 , - 742 , - 1463 , - 1272 , - 169 , - 586 , - 91 , - 1116 , - 1229 , - 430 , - 1151 , - 960 , - 2289 , - 274 , - 2211 , - 804 , - 917 , - 118 , - 839 , - 648 , - 1977 , - 2394 , - 1899 , - 492 , - 605 , - 2238 , - 527 , - 336 , - 1665 , - 2082 , - 1587 , - 180 , - 293 , - 1926 , - 215 , - 24 , - 1353 , - 1770 , - 1275 , - 2300 , - 2413 , - 1614 , - 2335 , - 2144 , - 1041 , - 1458 , - 963 , - 1988 , - 2101 , - 1302 , - 2023 , - 1832 , - 729 , - 1146 , - 651 , - 1676 , - 1789 , - 990 , - 1711 , - 1520 , - 417 , - 834 , - 339 , - 1364 , - 1477 , - 678 , - 1399 , - 1208 , - 105 , - 522 , - 27 , - 1052 , - 1165 , - 366 , - 1087 , - 896 , - 2225 , - 210 , - 2147 , - 740 , - 853 , - 54 , - 775 , - 584 , - 1913 , - 2330 , - 1835 , - 428 , - 541 , - 2174 , - 463 , - 272 , - 1601 , - 2018 , - 1523 , - 116 , - 229 , - 1862 , - 151 , - 2392 , - 1289 , - 1706 , - 1211 , - 2236 , - 2349 , - 1550 , - 2271 , - 2080 , - 977 , - 1394 , - 899 , - 1924 , - 2037 , - 1238 , - 1959 , - 1768 , - 665 , - 1082 , - 587 , - 1612 , - 1725 , - 926 , - 1647 , - 1456 , - 353 , - 770 , - 275 , - 1300 , - 1413 , - 614 , - 1335 , - 1144 , - 41 , - 458 , - 2395 , - 988 , - 1101 , - 302 , - 1023 , - 832 , - 2161 , - 146 , - 2083 , - 676 , - 789 , - 2422 , - 711 , - 520 , - 1849 , - 2266 , - 1771 , - 364 , - 477 , - 2110 , - 399 , - 208 , - 1537 , - 1954 , - 1459 , - 52 , - 165 , - 1798 , - 87 , - 2328 , - 1225 , - 1642 , - 1147 , - 2172 , - 2285 , - 1486 , - 2207 , - 2016 , - 913 , - 1330 , - 835 , - 1860 , - 1973 , - 1174 , - 1895 , - 1704 , - 601 , - 1018 , - 523 , - 1548 , - 1661 , - 862 , - 1583 , - 1392 , - 289 , - 706 , - 211 , - 1236 , - 1349 , - 550 , - 1271 , - 1080 , - 2409 , - 394 , - 2331 , - 924 , - 1037 , - 238 , - 959 , - 768 , - 2097 , - 82 , - 2019 , - 612 , - 725 , - 2358 , - 647 , - 456 , - 1785 , - 2202 , - 1707 , - 300 , - 413 , - 2046 , - 335 , - 144 , - 1473 , - 1890 , - 1395 , - 2420 , - 101 , - 1734 , - 23 , - 2264 , - 1161 , - 1578 , - 1083 , - 2108 , - 2221 , - 1422 , - 2143 , - 1952 , - 849 , - 1266 , - 771 , - 1796 , - 1909 , - 1110 , - 1831 , - 1640 , - 537 , - 954 , - 459 , - 1484 , - 1597 , - 798 , - 1519 , - 1328 , - 225 , - 642 , - 147 , - 1172 , - 1285 , - 486 , - 1207 , - 1016 , - 2345 , - 330 , - 2267 , - 860 , - 973 , - 174 , - 895 , - 704 , - 2033 , - 18 , - 1955 , - 548 , - 661 , - 2294 , - 583 , - 392 , - 1721 , - 2138 , - 1643 , - 236 , - 349 , - 1982 , - 271 , - 80 , - 1409 , - 1826 , - 1331 , - 2356 , - 37 , - 1670 , - 2391 , - 2200 , - 1097 , - 1514 , - 1019 , - 2044 , - 2157 , - 1358 , - 2079 , - 1888 , - 785 , - 1202 , - 707 , - 1732 , - 1845 , - 1046 , - 1767 , - 1576 , - 473 , - 890 , - 395 , - 1420 , - 1533 , - 734 , - 1455 , - 1264 , - 161 , - 578 , - 83 , - 1108 , - 1221 , - 422 , - 1143 , - 952 , - 2281 , - 266 , - 2203 , - 796 , - 909 , - 110 , - 831 , - 640 , - 1969 , - 2386 , - 1891 , - 484 , - 597 , - 2230 , - 519 , - 328 , - 1657 , - 2074 , - 1579 , - 172 , - 285 , - 1918 , - 207 , - 16 , - 1345 , - 1762 , - 1267 , - 2292 , - 2405 , - 1606 , - 2327 , - 2136 , - 1033 , - 1450 , - 955 , - 1980 , - 2093 , - 1294 , - 2015 , - 1824 , - 721 , - 1138 , - 643 , - 1668 , - 1781 , - 982 , - 1703 , - 1512 , - 409 , - 826 , - 331 , - 1356 , - 1469 , - 670 , - 1391 , - 1200 , - 97 , - 514 , - 19 , - 1044 , - 1157 , - 358 , - 1079 , - 888 , - 2217 , - 202 , - 2139 , - 732 , - 845 , - 46 , - 767 , - 576 , - 1905 , - 2322 , - 1827 , - 420 , - 533 , - 2166 , - 455 , - 264 , - 1593 , - 2010 , - 1515 , - 108 , - 221 , - 1854 , - 143 , - 2384 , - 1281 , - 1698 , - 1203 , - 2228 , - 2341 , - 1542 , - 2263 , - 2072 , - 969 , - 1386 , - 891 , - 1916 , - 2029 , - 1230 , - 1951 , - 1760 , - 657 , - 1074 , - 579 , - 1604 , - 1717 , - 918 , - 1639 , - 1448 , - 345 , - 762 , - 267 , - 1292 , - 1405 , - 606 , - 1327 , - 1136 , - 33 , - 450 , - 2387 , - 980 , - 1093 , - 294 , - 1015 , - 824 , - 2153 , - 138 , - 2075 , - 668 , - 781 , - 2414 , - 703 , - 512 , - 1841 , - 2258 , - 1763 , - 356 , - 469 , - 2102 , - 391 , - 200 , - 1529 , - 1946 , - 1451 , - 44 , - 157 , - 1790 , - 79 , - 2320 , - 1217 , - 1634 , - 1139 , - 2164 , - 2277 , - 1478 , - 2199 , - 2008 , - 905 , - 1322 , - 827 , - 1852 , - 1965 , - 1166 , - 1887 , - 1696 , - 593 , - 1010 , - 515 , - 1540 , - 1653 , - 854 , - 1575 , - 1384 , - 281 , - 698 , - 203 , - 1228 , - 1341 , - 542 , - 1263 , - 1072 , - 2401 , - 386 , - 2323 , - 916 , - 1029 , - 230 , - 951 , - 760 , - 2089 , - 74 , - 2011 , - 604 , - 717 , - 2350 , - 639 , - 448 , - 1777 , - 2194 , - 1699 , - 292 , - 405 , - 2038 , - 327 , - 136 , - 1465 , - 1882 , - 1387 , - 2412 , - 93 , - 1726 , - 15 , - 2256 , - 1153 , - 1570 , - 1075 , - 2100 , - 2213 , - 1414 , - 2135 , - 1944 , - 841 , - 1258 , - 763 , - 1788 , - 1901 , - 1102 , - 1823 , - 1632 , - 529 , - 946 , - 451 , - 1476 , - 1589 , - 790 , - 1511 , - 1320 , - 217 , - 634 , - 139 , - 1164 , - 1277 , - 478 , - 1199 , - 1008 , - 2337 , - 322 , - 2259 , - 852 , - 965 , - 166 , - 887 , - 696 , - 2025 , - 10 , - 1947 , - 540 , - 653 , - 2286 , - 575 , - 384 , - 1713 , - 2130 , - 1635 , - 228 , - 341 , - 1974 , - 263 , - 72 , - 1401 , - 1818 , - 1323 , - 2348 , - 29 , - 1662 , - 2383 , - 2192 , - 1089 , - 1506 , - 1011 , - 2036 , - 2149 , - 1350 , - 2071 , - 1880 , - 777 , - 1194 , - 699 , - 1724 , - 1837 , - 1038 , - 1759 , - 1568 , - 465 , - 882 , - 387 , - 1412 , - 1525 , - 726 , - 1447 , - 1256 , - 153 , - 570 , - 75 , - 1100 , - 1213 , - 414 , - 1135 , - 944 , - 2273 , - 258 , - 2195 , - 788 , - 901 , - 102 , - 823 , - 632 , - 1961 , - 2378 , - 1883 , - 476 , - 589 , - 2222 , - 511 , - 320 , - 1649 , - 2066 , - 1571 , - 164 , - 277 , - 1910 , - 199 , - 8 , - 1337 , - 1754 , - 1259 , - 2284 , - 2397 , - 1598 , - 2319 , - 2128 , - 1025 , - 1442 , - 947 , - 1972 , - 2085 , - 1286 , - 2007 , - 1816 , - 713 , - 1130 , - 635 , - 1660 , - 1773 , - 974 , - 1695 , - 1504 , - 401 , - 818 , - 323 , - 1348 , - 1461 , - 662 , - 1383 , - 1192 , - 89 , - 506 , - 11 , - 1036 , - 1149 , - 350 , - 1071 , - 880 , - 2209 , - 194 , - 2131 , - 724 , - 837 , - 38 , - 759 , - 568 , - 1897 , - 2314 , - 1819 , - 412 , - 525 , - 2158 , - 447 , - 256 , - 1585 , - 2002 , - 1507 , - 100 , - 213 , - 1846 , - 135 , - 2376 , - 1273 , - 1690 , - 1195 , - 2220 , - 2333 , - 1534 , - 2255 , - 2064 , - 961 , - 1378 , - 883 , - 1908 , - 2021 , - 1222 , - 1943 , - 1752 , - 649 , - 1066 , - 571 , - 1596 , - 1709 , - 910 , - 1631 , - 1440 , - 337 , - 754 , - 259 , - 1284 , - 1397 , - 598 , - 1319 , - 1128 , - 25 , - 442 , - 2379 , - 972 , - 1085 , - 286 , - 1007 , - 816 , - 2145 , - 130 , - 2067 , - 660 , - 773 , - 2406 , - 695 , - 504 , - 1833 , - 2250 , - 1755 , - 348 , - 461 , - 2094 , - 383 , - 192 , - 1521 , - 1938 , - 1443 , - 36 , - 149 , - 1782 , - 71 , - 2312 , - 1209 , - 1626 , - 1131 , - 2156 , - 2269 , - 1470 , - 2191 , - 2000 , - 897 , - 1314 , - 819 , - 1844 , - 1957 , - 1158 , - 1879 , - 1688 , - 585 , - 1002 , - 507 , - 1532 , - 1645 , - 846 , - 1567 , - 1376 , - 273 , - 690 , - 195 , - 1220 , - 1333 , - 534 , - 1255 , - 1064 , - 2393 , - 378 , - 2315 , - 908 , - 1021 , - 222 , - 943 , - 752 , - 2081 , - 66 , - 2003 , - 596 , - 709 , - 2342 , - 631 , - 440 , - 1769 , - 2186 , - 1691 , - 284 , - 397 , - 2030 , - 319 , - 128 , - 1457 , - 1874 , - 1379 , - 2404 , - 85 , - 1718 , - 7 , - 2248 , - 1145 , - 1562 , - 1067 , - 2092 , - 2205 , - 1406 , - 2127 , - 1936 , - 833 , - 1250 , - 755 , - 1780 , - 1893 , - 1094 , - 1815 , - 1624 , - 521 , - 938 , - 443 , - 1468 , - 1581 , - 782 , - 1503 , - 1312 , - 209 , - 626 , - 131 , - 1156 , - 1269 , - 470 , - 1191 , - 1000 , - 2329 , - 314 , - 2251 , - 844 , - 957 , - 158 , - 879 , - 688 , - 2017 , - 2 , - 1939 , - 532 , - 645 , - 2278 , - 567 , - 376 , - 1705 , - 2122 , - 1627 , - 220 , - 333 , - 1966 , - 255 , - 64 , - 1393 , - 1810 , - 1315 , - 2340 , - 21 , - 1654 , - 2375 , - 2184 , - 1081 , - 1498 , - 1003 , - 2028 , - 2141 , - 1342 , - 2063 , - 1872 , - 769 , - 1186 , - 691 , - 1716 , - 1829 , - 1030 , - 1751 , - 1560 , - 457 , - 874 , - 379 , - 1404 , - 1517 , - 718 , - 1439 , - 1248 , - 145 , - 562 , - 67 , - 1092 , - 1205 , - 406 , - 1127 , - 936 , - 2265 , - 250 , - 2187 , - 780 , - 893 , - 94 , - 815 , - 624 , - 1953 , - 2370 , - 1875 , - 468 , - 581 , - 2214 , - 503 , - 312 , - 1641 , - 2058 , - 1563 , - 156 , - 269 , - 1902 , - 191 , - 0 , - 25 , - 362 , - 1011 , - 1972 , - 749 , - 2334 , - 1735 , - 1448 , - 1473 , - 1810 , - 2459 , - 924 , - 2197 , - 1286 , - 687 , - 400 , - 425 , - 762 , - 1411 , - 2372 , - 1149 , - 238 , - 2135 , - 1848 , - 1873 , - 2210 , - 363 , - 1324 , - 101 , - 1686 , - 1087 , - 800 , - 825 , - 1162 , - 1811 , - 276 , - 1549 , - 638 , - 39 , - 2248 , - 2273 , - 114 , - 763 , - 1724 , - 501 , - 2086 , - 1487 , - 1200 , - 1225 , - 1562 , - 2211 , - 676 , - 1949 , - 1038 , - 439 , - 152 , - 177 , - 514 , - 1163 , - 2124 , - 901 , - 2486 , - 1887 , - 1600 , - 1625 , - 1962 , - 115 , - 1076 , - 2349 , - 1438 , - 839 , - 552 , - 577 , - 914 , - 1563 , - 28 , - 1301 , - 390 , - 2287 , - 2000 , - 2025 , - 2362 , - 515 , - 1476 , - 253 , - 1838 , - 1239 , - 952 , - 977 , - 1314 , - 1963 , - 428 , - 1701 , - 790 , - 191 , - 2400 , - 2425 , - 266 , - 915 , - 1876 , - 653 , - 2238 , - 1639 , - 1352 , - 1377 , - 1714 , - 2363 , - 828 , - 2101 , - 1190 , - 591 , - 304 , - 329 , - 666 , - 1315 , - 2276 , - 1053 , - 142 , - 2039 , - 1752 , - 1777 , - 2114 , - 267 , - 1228 , - 5 , - 1590 , - 991 , - 704 , - 729 , - 1066 , - 1715 , - 180 , - 1453 , - 542 , - 2439 , - 2152 , - 2177 , - 18 , - 667 , - 1628 , - 405 , - 1990 , - 1391 , - 1104 , - 1129 , - 1466 , - 2115 , - 580 , - 1853 , - 942 , - 343 , - 56 , - 81 , - 418 , - 1067 , - 2028 , - 805 , - 2390 , - 1791 , - 1504 , - 1529 , - 1866 , - 19 , - 980 , - 2253 , - 1342 , - 743 , - 456 , - 481 , - 818 , - 1467 , - 2428 , - 1205 , - 294 , - 2191 , - 1904 , - 1929 , - 2266 , - 419 , - 1380 , - 157 , - 1742 , - 1143 , - 856 , - 881 , - 1218 , - 1867 , - 332 , - 1605 , - 694 , - 95 , - 2304 , - 2329 , - 170 , - 819 , - 1780 , - 557 , - 2142 , - 1543 , - 1256 , - 1281 , - 1618 , - 2267 , - 732 , - 2005 , - 1094 , - 495 , - 208 , - 233 , - 570 , - 1219 , - 2180 , - 957 , - 46 , - 1943 , - 1656 , - 1681 , - 2018 , - 171 , - 1132 , - 2405 , - 1494 , - 895 , - 608 , - 633 , - 970 , - 1619 , - 84 , - 1357 , - 446 , - 2343 , - 2056 , - 2081 , - 2418 , - 571 , - 1532 , - 309 , - 1894 , - 1295 , - 1008 , - 1033 , - 1370 , - 2019 , - 484 , - 1757 , - 846 , - 247 , - 2456 , - 2481 , - 322 , - 971 , - 1932 , - 709 , - 2294 , - 1695 , - 1408 , - 1433 , - 1770 , - 2419 , - 884 , - 2157 , - 1246 , - 647 , - 360 , - 385 , - 722 , - 1371 , - 2332 , - 1109 , - 198 , - 2095 , - 1808 , - 1833 , - 2170 , - 323 , - 1284 , - 61 , - 1646 , - 1047 , - 760 , - 785 , - 1122 , - 1771 , - 236 , - 1509 , - 598 , - 2495 , - 2208 , - 2233 , - 74 , - 723 , - 1684 , - 461 , - 2046 , - 1447 , - 1160 , - 1185 , - 1522 , - 2171 , - 636 , - 1909 , - 998 , - 399 , - 112 , - 137 , - 474 , - 1123 , - 2084 , - 861 , - 2446 , - 1847 , - 1560 , - 1585 , - 1922 , - 75 , - 1036 , - 2309 , - 1398 , - 799 , - 512 , - 537 , - 874 , - 1523 , - 2484 , - 1261 , - 350 , - 2247 , - 1960 , - 1985 , - 2322 , - 475 , - 1436 , - 213 , - 1798 , - 1199 , - 912 , - 937 , - 1274 , - 1923 , - 388 , - 1661 , - 750 , - 151 , - 2360 , - 2385 , - 226 , - 875 , - 1836 , - 613 , - 2198 , - 1599 , - 1312 , - 1337 , - 1674 , - 2323 , - 788 , - 2061 , - 1150 , - 551 , - 264 , - 289 , - 626 , - 1275 , - 2236 , - 1013 , - 102 , - 1999 , - 1712 , - 1737 , - 2074 , - 227 , - 1188 , - 2461 , - 1550 , - 951 , - 664 , - 689 , - 1026 , - 1675 , - 140 , - 1413 , - 502 , - 2399 , - 2112 , - 2137 , - 2474 , - 627 , - 1588 , - 365 , - 1950 , - 1351 , - 1064 , - 1089 , - 1426 , - 2075 , - 540 , - 1813 , - 902 , - 303 , - 16 , - 41 , - 378 , - 1027 , - 1988 , - 765 , - 2350 , - 1751 , - 1464 , - 1489 , - 1826 , - 2475 , - 940 , - 2213 , - 1302 , - 703 , - 416 , - 441 , - 778 , - 1427 , - 2388 , - 1165 , - 254 , - 2151 , - 1864 , - 1889 , - 2226 , - 379 , - 1340 , - 117 , - 1702 , - 1103 , - 816 , - 841 , - 1178 , - 1827 , - 292 , - 1565 , - 654 , - 55 , - 2264 , - 2289 , - 130 , - 779 , - 1740 , - 517 , - 2102 , - 1503 , - 1216 , - 1241 , - 1578 , - 2227 , - 692 , - 1965 , - 1054 , - 455 , - 168 , - 193 , - 530 , - 1179 , - 2140 , - 917 , - 6 , - 1903 , - 1616 , - 1641 , - 1978 , - 131 , - 1092 , - 2365 , - 1454 , - 855 , - 568 , - 593 , - 930 , - 1579 , - 44 , - 1317 , - 406 , - 2303 , - 2016 , - 2041 , - 2378 , - 531 , - 1492 , - 269 , - 1854 , - 1255 , - 968 , - 993 , - 1330 , - 1979 , - 444 , - 1717 , - 806 , - 207 , - 2416 , - 2441 , - 282 , - 931 , - 1892 , - 669 , - 2254 , - 1655 , - 1368 , - 1393 , - 1730 , - 2379 , - 844 , - 2117 , - 1206 , - 607 , - 320 , - 345 , - 682 , - 1331 , - 2292 , - 1069 , - 158 , - 2055 , - 1768 , - 1793 , - 2130 , - 283 , - 1244 , - 21 , - 1606 , - 1007 , - 720 , - 745 , - 1082 , - 1731 , - 196 , - 1469 , - 558 , - 2455 , - 2168 , - 2193 , - 34 , - 683 , - 1644 , - 421 , - 2006 , - 1407 , - 1120 , - 1145 , - 1482 , - 2131 , - 596 , - 1869 , - 958 , - 359 , - 72 , - 97 , - 434 , - 1083 , - 2044 , - 821 , - 2406 , - 1807 , - 1520 , - 1545 , - 1882 , - 35 , - 996 , - 2269 , - 1358 , - 759 , - 472 , - 497 , - 834 , - 1483 , - 2444 , - 1221 , - 310 , - 2207 , - 1920 , - 1945 , - 2282 , - 435 , - 1396 , - 173 , - 1758 , - 1159 , - 872 , - 897 , - 1234 , - 1883 , - 348 , - 1621 , - 710 , - 111 , - 2320 , - 2345 , - 186 , - 835 , - 1796 , - 573 , - 2158 , - 1559 , - 1272 , - 1297 , - 1634 , - 2283 , - 748 , - 2021 , - 1110 , - 511 , - 224 , - 249 , - 586 , - 1235 , - 2196 , - 973 , - 62 , - 1959 , - 1672 , - 1697 , - 2034 , - 187 , - 1148 , - 2421 , - 1510 , - 911 , - 624 , - 649 , - 986 , - 1635 , - 100 , - 1373 , - 462 , - 2359 , - 2072 , - 2097 , - 2434 , - 587 , - 1548 , - 325 , - 1910 , - 1311 , - 1024 , - 1049 , - 1386 , - 2035 , - 500 , - 1773 , - 862 , - 263 , - 2472 , - 1 , - 338 , - 987 , - 1948 , - 725 , - 2310 , - 1711 , - 1424 , - 1449 , - 1786 , - 2435 , - 900 , - 2173 , - 1262 , - 663 , - 376 , - 401 , - 738 , - 1387 , - 2348 , - 1125 , - 214 , - 2111 , - 1824 , - 1849 , - 2186 , - 339 , - 1300 , - 77 , - 1662 , - 1063 , - 776 , - 801 , - 1138 , - 1787 , - 252 , - 1525 , - 614 , - 15 , - 2224 , - 2249 , - 90 , - 739 , - 1700 , - 477 , - 2062 , - 1463 , - 1176 , - 1201 , - 1538 , - 2187 , - 652 , - 1925 , - 1014 , - 415 , - 128 , - 153 , - 490 , - 1139 , - 2100 , - 877 , - 2462 , - 1863 , - 1576 , - 1601 , - 1938 , - 91 , - 1052 , - 2325 , - 1414 , - 815 , - 528 , - 553 , - 890 , - 1539 , - 4 , - 1277 , - 366 , - 2263 , - 1976 , - 2001 , - 2338 , - 491 , - 1452 , - 229 , - 1814 , - 1215 , - 928 , - 953 , - 1290 , - 1939 , - 404 , - 1677 , - 766 , - 167 , - 2376 , - 2401 , - 242 , - 891 , - 1852 , - 629 , - 2214 , - 1615 , - 1328 , - 1353 , - 1690 , - 2339 , - 804 , - 2077 , - 1166 , - 567 , - 280 , - 305 , - 642 , - 1291 , - 2252 , - 1029 , - 118 , - 2015 , - 1728 , - 1753 , - 2090 , - 243 , - 1204 , - 2477 , - 1566 , - 967 , - 680 , - 705 , - 1042 , - 1691 , - 156 , - 1429 , - 518 , - 2415 , - 2128 , - 2153 , - 2490 , - 643 , - 1604 , - 381 , - 1966 , - 1367 , - 1080 , - 1105 , - 1442 , - 2091 , - 556 , - 1829 , - 918 , - 319 , - 32 , - 57 , - 394 , - 1043 , - 2004 , - 781 , - 2366 , - 1767 , - 1480 , - 1505 , - 1842 , - 2491 , - 956 , - 2229 , - 1318 , - 719 , - 432 , - 457 , - 794 , - 1443 , - 2404 , - 1181 , - 270 , - 2167 , - 1880 , - 1905 , - 2242 , - 395 , - 1356 , - 133 , - 1718 , - 1119 , - 832 , - 857 , - 1194 , - 1843 , - 308 , - 1581 , - 670 , - 71 , - 2280 , - 2305 , - 146 , - 795 , - 1756 , - 533 , - 2118 , - 1519 , - 1232 , - 1257 , - 1594 , - 2243 , - 708 , - 1981 , - 1070 , - 471 , - 184 , - 209 , - 546 , - 1195 , - 2156 , - 933 , - 22 , - 1919 , - 1632 , - 1657 , - 1994 , - 147 , - 1108 , - 2381 , - 1470 , - 871 , - 584 , - 609 , - 946 , - 1595 , - 60 , - 1333 , - 422 , - 2319 , - 2032 , - 2057 , - 2394 , - 547 , - 1508 , - 285 , - 1870 , - 1271 , - 984 , - 1009 , - 1346 , - 1995 , - 460 , - 1733 , - 822 , - 223 , - 2432 , - 2457 , - 298 , - 947 , - 1908 , - 685 , - 2270 , - 1671 , - 1384 , - 1409 , - 1746 , - 2395 , - 860 , - 2133 , - 1222 , - 623 , - 336 , - 361 , - 698 , - 1347 , - 2308 , - 1085 , - 174 , - 2071 , - 1784 , - 1809 , - 2146 , - 299 , - 1260 , - 37 , - 1622 , - 1023 , - 736 , - 761 , - 1098 , - 1747 , - 212 , - 1485 , - 574 , - 2471 , - 2184 , - 2209 , - 50 , - 699 , - 1660 , - 437 , - 2022 , - 1423 , - 1136 , - 1161 , - 1498 , - 2147 , - 612 , - 1885 , - 974 , - 375 , - 88 , - 113 , - 450 , - 1099 , - 2060 , - 837 , - 2422 , - 1823 , - 1536 , - 1561 , - 1898 , - 51 , - 1012 , - 2285 , - 1374 , - 775 , - 488 , - 513 , - 850 , - 1499 , - 2460 , - 1237 , - 326 , - 2223 , - 1936 , - 1961 , - 2298 , - 451 , - 1412 , - 189 , - 1774 , - 1175 , - 888 , - 913 , - 1250 , - 1899 , - 364 , - 1637 , - 726 , - 127 , - 2336 , - 2361 , - 202 , - 851 , - 1812 , - 589 , - 2174 , - 1575 , - 1288 , - 1313 , - 1650 , - 2299 , - 764 , - 2037 , - 1126 , - 527 , - 240 , - 265 , - 602 , - 1251 , - 2212 , - 989 , - 78 , - 1975 , - 1688 , - 1713 , - 2050 , - 203 , - 1164 , - 2437 , - 1526 , - 927 , - 640 , - 665 , - 1002 , - 1651 , - 116 , - 1389 , - 478 , - 2375 , - 2088 , - 2113 , - 2450 , - 603 , - 1564 , - 341 , - 1926 , - 1327 , - 1040 , - 1065 , - 1402 , - 2051 , - 516 , - 1789 , - 878 , - 279 , - 2488 , - 17 , - 354 , - 1003 , - 1964 , - 741 , - 2326 , - 1727 , - 1440 , - 1465 , - 1802 , - 2451 , - 916 , - 2189 , - 1278 , - 679 , - 392 , - 417 , - 754 , - 1403 , - 2364 , - 1141 , - 230 , - 2127 , - 1840 , - 1865 , - 2202 , - 355 , - 1316 , - 93 , - 1678 , - 1079 , - 792 , - 817 , - 1154 , - 1803 , - 268 , - 1541 , - 630 , - 31 , - 2240 , - 2265 , - 106 , - 755 , - 1716 , - 493 , - 2078 , - 1479 , - 1192 , - 1217 , - 1554 , - 2203 , - 668 , - 1941 , - 1030 , - 431 , - 144 , - 169 , - 506 , - 1155 , - 2116 , - 893 , - 2478 , - 1879 , - 1592 , - 1617 , - 1954 , - 107 , - 1068 , - 2341 , - 1430 , - 831 , - 544 , - 569 , - 906 , - 1555 , - 20 , - 1293 , - 382 , - 2279 , - 1992 , - 2017 , - 2354 , - 507 , - 1468 , - 245 , - 1830 , - 1231 , - 944 , - 969 , - 1306 , - 1955 , - 420 , - 1693 , - 782 , - 183 , - 2392 , - 2417 , - 258 , - 907 , - 1868 , - 645 , - 2230 , - 1631 , - 1344 , - 1369 , - 1706 , - 2355 , - 820 , - 2093 , - 1182 , - 583 , - 296 , - 321 , - 658 , - 1307 , - 2268 , - 1045 , - 134 , - 2031 , - 1744 , - 1769 , - 2106 , - 259 , - 1220 , - 2493 , - 1582 , - 983 , - 696 , - 721 , - 1058 , - 1707 , - 172 , - 1445 , - 534 , - 2431 , - 2144 , - 2169 , - 10 , - 659 , - 1620 , - 397 , - 1982 , - 1383 , - 1096 , - 1121 , - 1458 , - 2107 , - 572 , - 1845 , - 934 , - 335 , - 48 , - 73 , - 410 , - 1059 , - 2020 , - 797 , - 2382 , - 1783 , - 1496 , - 1521 , - 1858 , - 11 , - 972 , - 2245 , - 1334 , - 735 , - 448 , - 473 , - 810 , - 1459 , - 2420 , - 1197 , - 286 , - 2183 , - 1896 , - 1921 , - 2258 , - 411 , - 1372 , - 149 , - 1734 , - 1135 , - 848 , - 873 , - 1210 , - 1859 , - 324 , - 1597 , - 686 , - 87 , - 2296 , - 2321 , - 162 , - 811 , - 1772 , - 549 , - 2134 , - 1535 , - 1248 , - 1273 , - 1610 , - 2259 , - 724 , - 1997 , - 1086 , - 487 , - 200 , - 225 , - 562 , - 1211 , - 2172 , - 949 , - 38 , - 1935 , - 1648 , - 1673 , - 2010 , - 163 , - 1124 , - 2397 , - 1486 , - 887 , - 600 , - 625 , - 962 , - 1611 , - 76 , - 1349 , - 438 , - 2335 , - 2048 , - 2073 , - 2410 , - 563 , - 1524 , - 301 , - 1886 , - 1287 , - 1000 , - 1025 , - 1362 , - 2011 , - 476 , - 1749 , - 838 , - 239 , - 2448 , - 2473 , - 314 , - 963 , - 1924 , - 701 , - 2286 , - 1687 , - 1400 , - 1425 , - 1762 , - 2411 , - 876 , - 2149 , - 1238 , - 639 , - 352 , - 377 , - 714 , - 1363 , - 2324 , - 1101 , - 190 , - 2087 , - 1800 , - 1825 , - 2162 , - 315 , - 1276 , - 53 , - 1638 , - 1039 , - 752 , - 777 , - 1114 , - 1763 , - 228 , - 1501 , - 590 , - 2487 , - 2200 , - 2225 , - 66 , - 715 , - 1676 , - 453 , - 2038 , - 1439 , - 1152 , - 1177 , - 1514 , - 2163 , - 628 , - 1901 , - 990 , - 391 , - 104 , - 129 , - 466 , - 1115 , - 2076 , - 853 , - 2438 , - 1839 , - 1552 , - 1577 , - 1914 , - 67 , - 1028 , - 2301 , - 1390 , - 791 , - 504 , - 529 , - 866 , - 1515 , - 2476 , - 1253 , - 342 , - 2239 , - 1952 , - 1977 , - 2314 , - 467 , - 1428 , - 205 , - 1790 , - 1191 , - 904 , - 929 , - 1266 , - 1915 , - 380 , - 1653 , - 742 , - 143 , - 2352 , - 2377 , - 218 , - 867 , - 1828 , - 605 , - 2190 , - 1591 , - 1304 , - 1329 , - 1666 , - 2315 , - 780 , - 2053 , - 1142 , - 543 , - 256 , - 281 , - 618 , - 1267 , - 2228 , - 1005 , - 94 , - 1991 , - 1704 , - 1729 , - 2066 , - 219 , - 1180 , - 2453 , - 1542 , - 943 , - 656 , - 681 , - 1018 , - 1667 , - 132 , - 1405 , - 494 , - 2391 , - 2104 , - 2129 , - 2466 , - 619 , - 1580 , - 357 , - 1942 , - 1343 , - 1056 , - 1081 , - 1418 , - 2067 , - 532 , - 1805 , - 894 , - 295 , - 8 , - 33 , - 370 , - 1019 , - 1980 , - 757 , - 2342 , - 1743 , - 1456 , - 1481 , - 1818 , - 2467 , - 932 , - 2205 , - 1294 , - 695 , - 408 , - 433 , - 770 , - 1419 , - 2380 , - 1157 , - 246 , - 2143 , - 1856 , - 1881 , - 2218 , - 371 , - 1332 , - 109 , - 1694 , - 1095 , - 808 , - 833 , - 1170 , - 1819 , - 284 , - 1557 , - 646 , - 47 , - 2256 , - 2281 , - 122 , - 771 , - 1732 , - 509 , - 2094 , - 1495 , - 1208 , - 1233 , - 1570 , - 2219 , - 684 , - 1957 , - 1046 , - 447 , - 160 , - 185 , - 522 , - 1171 , - 2132 , - 909 , - 2494 , - 1895 , - 1608 , - 1633 , - 1970 , - 123 , - 1084 , - 2357 , - 1446 , - 847 , - 560 , - 585 , - 922 , - 1571 , - 36 , - 1309 , - 398 , - 2295 , - 2008 , - 2033 , - 2370 , - 523 , - 1484 , - 261 , - 1846 , - 1247 , - 960 , - 985 , - 1322 , - 1971 , - 436 , - 1709 , - 798 , - 199 , - 2408 , - 2433 , - 274 , - 923 , - 1884 , - 661 , - 2246 , - 1647 , - 1360 , - 1385 , - 1722 , - 2371 , - 836 , - 2109 , - 1198 , - 599 , - 312 , - 337 , - 674 , - 1323 , - 2284 , - 1061 , - 150 , - 2047 , - 1760 , - 1785 , - 2122 , - 275 , - 1236 , - 13 , - 1598 , - 999 , - 712 , - 737 , - 1074 , - 1723 , - 188 , - 1461 , - 550 , - 2447 , - 2160 , - 2185 , - 26 , - 675 , - 1636 , - 413 , - 1998 , - 1399 , - 1112 , - 1137 , - 1474 , - 2123 , - 588 , - 1861 , - 950 , - 351 , - 64 , - 89 , - 426 , - 1075 , - 2036 , - 813 , - 2398 , - 1799 , - 1512 , - 1537 , - 1874 , - 27 , - 988 , - 2261 , - 1350 , - 751 , - 464 , - 489 , - 826 , - 1475 , - 2436 , - 1213 , - 302 , - 2199 , - 1912 , - 1937 , - 2274 , - 427 , - 1388 , - 165 , - 1750 , - 1151 , - 864 , - 889 , - 1226 , - 1875 , - 340 , - 1613 , - 702 , - 103 , - 2312 , - 2337 , - 178 , - 827 , - 1788 , - 565 , - 2150 , - 1551 , - 1264 , - 1289 , - 1626 , - 2275 , - 740 , - 2013 , - 1102 , - 503 , - 216 , - 241 , - 578 , - 1227 , - 2188 , - 965 , - 54 , - 1951 , - 1664 , - 1689 , - 2026 , - 179 , - 1140 , - 2413 , - 1502 , - 903 , - 616 , - 641 , - 978 , - 1627 , - 92 , - 1365 , - 454 , - 2351 , - 2064 , - 2089 , - 2426 , - 579 , - 1540 , - 317 , - 1902 , - 1303 , - 1016 , - 1041 , - 1378 , - 2027 , - 492 , - 1765 , - 854 , - 255 , - 2464 , - 2489 , - 330 , - 979 , - 1940 , - 717 , - 2302 , - 1703 , - 1416 , - 1441 , - 1778 , - 2427 , - 892 , - 2165 , - 1254 , - 655 , - 368 , - 393 , - 730 , - 1379 , - 2340 , - 1117 , - 206 , - 2103 , - 1816 , - 1841 , - 2178 , - 331 , - 1292 , - 69 , - 1654 , - 1055 , - 768 , - 793 , - 1130 , - 1779 , - 244 , - 1517 , - 606 , - 7 , - 2216 , - 2241 , - 82 , - 731 , - 1692 , - 469 , - 2054 , - 1455 , - 1168 , - 1193 , - 1530 , - 2179 , - 644 , - 1917 , - 1006 , - 407 , - 120 , - 145 , - 482 , - 1131 , - 2092 , - 869 , - 2454 , - 1855 , - 1568 , - 1593 , - 1930 , - 83 , - 1044 , - 2317 , - 1406 , - 807 , - 520 , - 545 , - 882 , - 1531 , - 2492 , - 1269 , - 358 , - 2255 , - 1968 , - 1993 , - 2330 , - 483 , - 1444 , - 221 , - 1806 , - 1207 , - 920 , - 945 , - 1282 , - 1931 , - 396 , - 1669 , - 758 , - 159 , - 2368 , - 2393 , - 234 , - 883 , - 1844 , - 621 , - 2206 , - 1607 , - 1320 , - 1345 , - 1682 , - 2331 , - 796 , - 2069 , - 1158 , - 559 , - 272 , - 297 , - 634 , - 1283 , - 2244 , - 1021 , - 110 , - 2007 , - 1720 , - 1745 , - 2082 , - 235 , - 1196 , - 2469 , - 1558 , - 959 , - 672 , - 697 , - 1034 , - 1683 , - 148 , - 1421 , - 510 , - 2407 , - 2120 , - 2145 , - 2482 , - 635 , - 1596 , - 373 , - 1958 , - 1359 , - 1072 , - 1097 , - 1434 , - 2083 , - 548 , - 1821 , - 910 , - 311 , - 24 , - 49 , - 386 , - 1035 , - 1996 , - 773 , - 2358 , - 1759 , - 1472 , - 1497 , - 1834 , - 2483 , - 948 , - 2221 , - 1310 , - 711 , - 424 , - 449 , - 786 , - 1435 , - 2396 , - 1173 , - 262 , - 2159 , - 1872 , - 1897 , - 2234 , - 387 , - 1348 , - 125 , - 1710 , - 1111 , - 824 , - 849 , - 1186 , - 1835 , - 300 , - 1573 , - 662 , - 63 , - 2272 , - 2297 , - 138 , - 787 , - 1748 , - 525 , - 2110 , - 1511 , - 1224 , - 1249 , - 1586 , - 2235 , - 700 , - 1973 , - 1062 , - 463 , - 176 , - 201 , - 538 , - 1187 , - 2148 , - 925 , - 14 , - 1911 , - 1624 , - 1649 , - 1986 , - 139 , - 1100 , - 2373 , - 1462 , - 863 , - 576 , - 601 , - 938 , - 1587 , - 52 , - 1325 , - 414 , - 2311 , - 2024 , - 2049 , - 2386 , - 539 , - 1500 , - 277 , - 1862 , - 1263 , - 976 , - 1001 , - 1338 , - 1987 , - 452 , - 1725 , - 814 , - 215 , - 2424 , - 2449 , - 290 , - 939 , - 1900 , - 677 , - 2262 , - 1663 , - 1376 , - 1401 , - 1738 , - 2387 , - 852 , - 2125 , - 1214 , - 615 , - 328 , - 353 , - 690 , - 1339 , - 2300 , - 1077 , - 166 , - 2063 , - 1776 , - 1801 , - 2138 , - 291 , - 1252 , - 29 , - 1614 , - 1015 , - 728 , - 753 , - 1090 , - 1739 , - 204 , - 1477 , - 566 , - 2463 , - 2176 , - 2201 , - 42 , - 691 , - 1652 , - 429 , - 2014 , - 1415 , - 1128 , - 1153 , - 1490 , - 2139 , - 604 , - 1877 , - 966 , - 367 , - 80 , - 105 , - 442 , - 1091 , - 2052 , - 829 , - 2414 , - 1815 , - 1528 , - 1553 , - 1890 , - 43 , - 1004 , - 2277 , - 1366 , - 767 , - 480 , - 505 , - 842 , - 1491 , - 2452 , - 1229 , - 318 , - 2215 , - 1928 , - 1953 , - 2290 , - 443 , - 1404 , - 181 , - 1766 , - 1167 , - 880 , - 905 , - 1242 , - 1891 , - 356 , - 1629 , - 718 , - 119 , - 2328 , - 2353 , - 194 , - 843 , - 1804 , - 581 , - 2166 , - 1567 , - 1280 , - 1305 , - 1642 , - 2291 , - 756 , - 2029 , - 1118 , - 519 , - 232 , - 257 , - 594 , - 1243 , - 2204 , - 981 , - 70 , - 1967 , - 1680 , - 1705 , - 2042 , - 195 , - 1156 , - 2429 , - 1518 , - 919 , - 632 , - 657 , - 994 , - 1643 , - 108 , - 1381 , - 470 , - 2367 , - 2080 , - 2105 , - 2442 , - 595 , - 1556 , - 333 , - 1918 , - 1319 , - 1032 , - 1057 , - 1394 , - 2043 , - 508 , - 1781 , - 870 , - 271 , - 2480 , - 9 , - 346 , - 995 , - 1956 , - 733 , - 2318 , - 1719 , - 1432 , - 1457 , - 1794 , - 2443 , - 908 , - 2181 , - 1270 , - 671 , - 384 , - 409 , - 746 , - 1395 , - 2356 , - 1133 , - 222 , - 2119 , - 1832 , - 1857 , - 2194 , - 347 , - 1308 , - 85 , - 1670 , - 1071 , - 784 , - 809 , - 1146 , - 1795 , - 260 , - 1533 , - 622 , - 23 , - 2232 , - 2257 , - 98 , - 747 , - 1708 , - 485 , - 2070 , - 1471 , - 1184 , - 1209 , - 1546 , - 2195 , - 660 , - 1933 , - 1022 , - 423 , - 136 , - 161 , - 498 , - 1147 , - 2108 , - 885 , - 2470 , - 1871 , - 1584 , - 1609 , - 1946 , - 99 , - 1060 , - 2333 , - 1422 , - 823 , - 536 , - 561 , - 898 , - 1547 , - 12 , - 1285 , - 374 , - 2271 , - 1984 , - 2009 , - 2346 , - 499 , - 1460 , - 237 , - 1822 , - 1223 , - 936 , - 961 , - 1298 , - 1947 , - 412 , - 1685 , - 774 , - 175 , - 2384 , - 2409 , - 250 , - 899 , - 1860 , - 637 , - 2222 , - 1623 , - 1336 , - 1361 , - 1698 , - 2347 , - 812 , - 2085 , - 1174 , - 575 , - 288 , - 313 , - 650 , - 1299 , - 2260 , - 1037 , - 126 , - 2023 , - 1736 , - 1761 , - 2098 , - 251 , - 1212 , - 2485 , - 1574 , - 975 , - 688 , - 713 , - 1050 , - 1699 , - 164 , - 1437 , - 526 , - 2423 , - 2136 , - 2161 , - 2 , - 651 , - 1612 , - 389 , - 1974 , - 1375 , - 1088 , - 1113 , - 1450 , - 2099 , - 564 , - 1837 , - 926 , - 327 , - 40 , - 65 , - 402 , - 1051 , - 2012 , - 789 , - 2374 , - 1775 , - 1488 , - 1513 , - 1850 , - 3 , - 964 , - 2237 , - 1326 , - 727 , - 440 , - 465 , - 802 , - 1451 , - 2412 , - 1189 , - 278 , - 2175 , - 1888 , - 1913 , - 2250 , - 403 , - 1364 , - 141 , - 1726 , - 1127 , - 840 , - 865 , - 1202 , - 1851 , - 316 , - 1589 , - 678 , - 79 , - 2288 , - 2313 , - 154 , - 803 , - 1764 , - 541 , - 2126 , - 1527 , - 1240 , - 1265 , - 1602 , - 2251 , - 716 , - 1989 , - 1078 , - 479 , - 192 , - 217 , - 554 , - 1203 , - 2164 , - 941 , - 30 , - 1927 , - 1640 , - 1665 , - 2002 , - 155 , - 1116 , - 2389 , - 1478 , - 879 , - 592 , - 617 , - 954 , - 1603 , - 68 , - 1341 , - 430 , - 2327 , - 2040 , - 2065 , - 2402 , - 555 , - 1516 , - 293 , - 1878 , - 1279 , - 992 , - 1017 , - 1354 , - 2003 , - 468 , - 1741 , - 830 , - 231 , - 2440 , - 2465 , - 306 , - 955 , - 1916 , - 693 , - 2278 , - 1679 , - 1392 , - 1417 , - 1754 , - 2403 , - 868 , - 2141 , - 1230 , - 631 , - 344 , - 369 , - 706 , - 1355 , - 2316 , - 1093 , - 182 , - 2079 , - 1792 , - 1817 , - 2154 , - 307 , - 1268 , - 45 , - 1630 , - 1031 , - 744 , - 769 , - 1106 , - 1755 , - 220 , - 1493 , - 582 , - 2479 , - 2192 , - 2217 , - 58 , - 707 , - 1668 , - 445 , - 2030 , - 1431 , - 1144 , - 1169 , - 1506 , - 2155 , - 620 , - 1893 , - 982 , - 383 , - 96 , - 121 , - 458 , - 1107 , - 2068 , - 845 , - 2430 , - 1831 , - 1544 , - 1569 , - 1906 , - 59 , - 1020 , - 2293 , - 1382 , - 783 , - 496 , - 521 , - 858 , - 1507 , - 2468 , - 1245 , - 334 , - 2231 , - 1944 , - 1969 , - 2306 , - 459 , - 1420 , - 197 , - 1782 , - 1183 , - 896 , - 921 , - 1258 , - 1907 , - 372 , - 1645 , - 734 , - 135 , - 2344 , - 2369 , - 210 , - 859 , - 1820 , - 597 , - 2182 , - 1583 , - 1296 , - 1321 , - 1658 , - 2307 , - 772 , - 2045 , - 1134 , - 535 , - 248 , - 273 , - 610 , - 1259 , - 2220 , - 997 , - 86 , - 1983 , - 1696 , - 1721 , - 2058 , - 211 , - 1172 , - 2445 , - 1534 , - 935 , - 648 , - 673 , - 1010 , - 1659 , - 124 , - 1397 , - 486 , - 2383 , - 2096 , - 2121 , - 2458 , - 611 , - 1572 , - 349 , - 1934 , - 1335 , - 1048 , - 1073 , - 1410 , - 2059 , - 524 , - 1797 , - 886 , - 287 , - 0 , - 359 , - 2158 , - 277 , - 2396 , - 835 , - 714 , - 2033 , - 2232 , - 1311 , - 1830 , - 1229 , - 2068 , - 1787 , - 386 , - 425 , - 1904 , - 2263 , - 1502 , - 2181 , - 1740 , - 179 , - 58 , - 1377 , - 1576 , - 655 , - 1174 , - 573 , - 1412 , - 1131 , - 2290 , - 2329 , - 1248 , - 1607 , - 846 , - 1525 , - 1084 , - 2083 , - 1962 , - 721 , - 920 , - 2559 , - 518 , - 2477 , - 756 , - 475 , - 1634 , - 1673 , - 592 , - 951 , - 190 , - 869 , - 428 , - 1427 , - 1306 , - 65 , - 264 , - 1903 , - 2422 , - 1821 , - 100 , - 2379 , - 978 , - 1017 , - 2496 , - 295 , - 2094 , - 213 , - 2332 , - 771 , - 650 , - 1969 , - 2168 , - 1247 , - 1766 , - 1165 , - 2004 , - 1723 , - 322 , - 361 , - 1840 , - 2199 , - 1438 , - 2117 , - 1676 , - 115 , - 2554 , - 1313 , - 1512 , - 591 , - 1110 , - 509 , - 1348 , - 1067 , - 2226 , - 2265 , - 1184 , - 1543 , - 782 , - 1461 , - 1020 , - 2019 , - 1898 , - 657 , - 856 , - 2495 , - 454 , - 2413 , - 692 , - 411 , - 1570 , - 1609 , - 528 , - 887 , - 126 , - 805 , - 364 , - 1363 , - 1242 , - 1 , - 200 , - 1839 , - 2358 , - 1757 , - 36 , - 2315 , - 914 , - 953 , - 2432 , - 231 , - 2030 , - 149 , - 2268 , - 707 , - 586 , - 1905 , - 2104 , - 1183 , - 1702 , - 1101 , - 1940 , - 1659 , - 258 , - 297 , - 1776 , - 2135 , - 1374 , - 2053 , - 1612 , - 51 , - 2490 , - 1249 , - 1448 , - 527 , - 1046 , - 445 , - 1284 , - 1003 , - 2162 , - 2201 , - 1120 , - 1479 , - 718 , - 1397 , - 956 , - 1955 , - 1834 , - 593 , - 792 , - 2431 , - 390 , - 2349 , - 628 , - 347 , - 1506 , - 1545 , - 464 , - 823 , - 62 , - 741 , - 300 , - 1299 , - 1178 , - 2497 , - 136 , - 1775 , - 2294 , - 1693 , - 2532 , - 2251 , - 850 , - 889 , - 2368 , - 167 , - 1966 , - 85 , - 2204 , - 643 , - 522 , - 1841 , - 2040 , - 1119 , - 1638 , - 1037 , - 1876 , - 1595 , - 194 , - 233 , - 1712 , - 2071 , - 1310 , - 1989 , - 1548 , - 2547 , - 2426 , - 1185 , - 1384 , - 463 , - 982 , - 381 , - 1220 , - 939 , - 2098 , - 2137 , - 1056 , - 1415 , - 654 , - 1333 , - 892 , - 1891 , - 1770 , - 529 , - 728 , - 2367 , - 326 , - 2285 , - 564 , - 283 , - 1442 , - 1481 , - 400 , - 759 , - 2558 , - 677 , - 236 , - 1235 , - 1114 , - 2433 , - 72 , - 1711 , - 2230 , - 1629 , - 2468 , - 2187 , - 786 , - 825 , - 2304 , - 103 , - 1902 , - 21 , - 2140 , - 579 , - 458 , - 1777 , - 1976 , - 1055 , - 1574 , - 973 , - 1812 , - 1531 , - 130 , - 169 , - 1648 , - 2007 , - 1246 , - 1925 , - 1484 , - 2483 , - 2362 , - 1121 , - 1320 , - 399 , - 918 , - 317 , - 1156 , - 875 , - 2034 , - 2073 , - 992 , - 1351 , - 590 , - 1269 , - 828 , - 1827 , - 1706 , - 465 , - 664 , - 2303 , - 262 , - 2221 , - 500 , - 219 , - 1378 , - 1417 , - 336 , - 695 , - 2494 , - 613 , - 172 , - 1171 , - 1050 , - 2369 , - 8 , - 1647 , - 2166 , - 1565 , - 2404 , - 2123 , - 722 , - 761 , - 2240 , - 39 , - 1838 , - 2517 , - 2076 , - 515 , - 394 , - 1713 , - 1912 , - 991 , - 1510 , - 909 , - 1748 , - 1467 , - 66 , - 105 , - 1584 , - 1943 , - 1182 , - 1861 , - 1420 , - 2419 , - 2298 , - 1057 , - 1256 , - 335 , - 854 , - 253 , - 1092 , - 811 , - 1970 , - 2009 , - 928 , - 1287 , - 526 , - 1205 , - 764 , - 1763 , - 1642 , - 401 , - 600 , - 2239 , - 198 , - 2157 , - 436 , - 155 , - 1314 , - 1353 , - 272 , - 631 , - 2430 , - 549 , - 108 , - 1107 , - 986 , - 2305 , - 2504 , - 1583 , - 2102 , - 1501 , - 2340 , - 2059 , - 658 , - 697 , - 2176 , - 2535 , - 1774 , - 2453 , - 2012 , - 451 , - 330 , - 1649 , - 1848 , - 927 , - 1446 , - 845 , - 1684 , - 1403 , - 2 , - 41 , - 1520 , - 1879 , - 1118 , - 1797 , - 1356 , - 2355 , - 2234 , - 993 , - 1192 , - 271 , - 790 , - 189 , - 1028 , - 747 , - 1906 , - 1945 , - 864 , - 1223 , - 462 , - 1141 , - 700 , - 1699 , - 1578 , - 337 , - 536 , - 2175 , - 134 , - 2093 , - 372 , - 91 , - 1250 , - 1289 , - 208 , - 567 , - 2366 , - 485 , - 44 , - 1043 , - 922 , - 2241 , - 2440 , - 1519 , - 2038 , - 1437 , - 2276 , - 1995 , - 594 , - 633 , - 2112 , - 2471 , - 1710 , - 2389 , - 1948 , - 387 , - 266 , - 1585 , - 1784 , - 863 , - 1382 , - 781 , - 1620 , - 1339 , - 2498 , - 2537 , - 1456 , - 1815 , - 1054 , - 1733 , - 1292 , - 2291 , - 2170 , - 929 , - 1128 , - 207 , - 726 , - 125 , - 964 , - 683 , - 1842 , - 1881 , - 800 , - 1159 , - 398 , - 1077 , - 636 , - 1635 , - 1514 , - 273 , - 472 , - 2111 , - 70 , - 2029 , - 308 , - 27 , - 1186 , - 1225 , - 144 , - 503 , - 2302 , - 421 , - 2540 , - 979 , - 858 , - 2177 , - 2376 , - 1455 , - 1974 , - 1373 , - 2212 , - 1931 , - 530 , - 569 , - 2048 , - 2407 , - 1646 , - 2325 , - 1884 , - 323 , - 202 , - 1521 , - 1720 , - 799 , - 1318 , - 717 , - 1556 , - 1275 , - 2434 , - 2473 , - 1392 , - 1751 , - 990 , - 1669 , - 1228 , - 2227 , - 2106 , - 865 , - 1064 , - 143 , - 662 , - 61 , - 900 , - 619 , - 1778 , - 1817 , - 736 , - 1095 , - 334 , - 1013 , - 572 , - 1571 , - 1450 , - 209 , - 408 , - 2047 , - 6 , - 1965 , - 244 , - 2523 , - 1122 , - 1161 , - 80 , - 439 , - 2238 , - 357 , - 2476 , - 915 , - 794 , - 2113 , - 2312 , - 1391 , - 1910 , - 1309 , - 2148 , - 1867 , - 466 , - 505 , - 1984 , - 2343 , - 1582 , - 2261 , - 1820 , - 259 , - 138 , - 1457 , - 1656 , - 735 , - 1254 , - 653 , - 1492 , - 1211 , - 2370 , - 2409 , - 1328 , - 1687 , - 926 , - 1605 , - 1164 , - 2163 , - 2042 , - 801 , - 1000 , - 79 , - 598 , - 2557 , - 836 , - 555 , - 1714 , - 1753 , - 672 , - 1031 , - 270 , - 949 , - 508 , - 1507 , - 1386 , - 145 , - 344 , - 1983 , - 2502 , - 1901 , - 180 , - 2459 , - 1058 , - 1097 , - 16 , - 375 , - 2174 , - 293 , - 2412 , - 851 , - 730 , - 2049 , - 2248 , - 1327 , - 1846 , - 1245 , - 2084 , - 1803 , - 402 , - 441 , - 1920 , - 2279 , - 1518 , - 2197 , - 1756 , - 195 , - 74 , - 1393 , - 1592 , - 671 , - 1190 , - 589 , - 1428 , - 1147 , - 2306 , - 2345 , - 1264 , - 1623 , - 862 , - 1541 , - 1100 , - 2099 , - 1978 , - 737 , - 936 , - 15 , - 534 , - 2493 , - 772 , - 491 , - 1650 , - 1689 , - 608 , - 967 , - 206 , - 885 , - 444 , - 1443 , - 1322 , - 81 , - 280 , - 1919 , - 2438 , - 1837 , - 116 , - 2395 , - 994 , - 1033 , - 2512 , - 311 , - 2110 , - 229 , - 2348 , - 787 , - 666 , - 1985 , - 2184 , - 1263 , - 1782 , - 1181 , - 2020 , - 1739 , - 338 , - 377 , - 1856 , - 2215 , - 1454 , - 2133 , - 1692 , - 131 , - 10 , - 1329 , - 1528 , - 607 , - 1126 , - 525 , - 1364 , - 1083 , - 2242 , - 2281 , - 1200 , - 1559 , - 798 , - 1477 , - 1036 , - 2035 , - 1914 , - 673 , - 872 , - 2511 , - 470 , - 2429 , - 708 , - 427 , - 1586 , - 1625 , - 544 , - 903 , - 142 , - 821 , - 380 , - 1379 , - 1258 , - 17 , - 216 , - 1855 , - 2374 , - 1773 , - 52 , - 2331 , - 930 , - 969 , - 2448 , - 247 , - 2046 , - 165 , - 2284 , - 723 , - 602 , - 1921 , - 2120 , - 1199 , - 1718 , - 1117 , - 1956 , - 1675 , - 274 , - 313 , - 1792 , - 2151 , - 1390 , - 2069 , - 1628 , - 67 , - 2506 , - 1265 , - 1464 , - 543 , - 1062 , - 461 , - 1300 , - 1019 , - 2178 , - 2217 , - 1136 , - 1495 , - 734 , - 1413 , - 972 , - 1971 , - 1850 , - 609 , - 808 , - 2447 , - 406 , - 2365 , - 644 , - 363 , - 1522 , - 1561 , - 480 , - 839 , - 78 , - 757 , - 316 , - 1315 , - 1194 , - 2513 , - 152 , - 1791 , - 2310 , - 1709 , - 2548 , - 2267 , - 866 , - 905 , - 2384 , - 183 , - 1982 , - 101 , - 2220 , - 659 , - 538 , - 1857 , - 2056 , - 1135 , - 1654 , - 1053 , - 1892 , - 1611 , - 210 , - 249 , - 1728 , - 2087 , - 1326 , - 2005 , - 1564 , - 3 , - 2442 , - 1201 , - 1400 , - 479 , - 998 , - 397 , - 1236 , - 955 , - 2114 , - 2153 , - 1072 , - 1431 , - 670 , - 1349 , - 908 , - 1907 , - 1786 , - 545 , - 744 , - 2383 , - 342 , - 2301 , - 580 , - 299 , - 1458 , - 1497 , - 416 , - 775 , - 14 , - 693 , - 252 , - 1251 , - 1130 , - 2449 , - 88 , - 1727 , - 2246 , - 1645 , - 2484 , - 2203 , - 802 , - 841 , - 2320 , - 119 , - 1918 , - 37 , - 2156 , - 595 , - 474 , - 1793 , - 1992 , - 1071 , - 1590 , - 989 , - 1828 , - 1547 , - 146 , - 185 , - 1664 , - 2023 , - 1262 , - 1941 , - 1500 , - 2499 , - 2378 , - 1137 , - 1336 , - 415 , - 934 , - 333 , - 1172 , - 891 , - 2050 , - 2089 , - 1008 , - 1367 , - 606 , - 1285 , - 844 , - 1843 , - 1722 , - 481 , - 680 , - 2319 , - 278 , - 2237 , - 516 , - 235 , - 1394 , - 1433 , - 352 , - 711 , - 2510 , - 629 , - 188 , - 1187 , - 1066 , - 2385 , - 24 , - 1663 , - 2182 , - 1581 , - 2420 , - 2139 , - 738 , - 777 , - 2256 , - 55 , - 1854 , - 2533 , - 2092 , - 531 , - 410 , - 1729 , - 1928 , - 1007 , - 1526 , - 925 , - 1764 , - 1483 , - 82 , - 121 , - 1600 , - 1959 , - 1198 , - 1877 , - 1436 , - 2435 , - 2314 , - 1073 , - 1272 , - 351 , - 870 , - 269 , - 1108 , - 827 , - 1986 , - 2025 , - 944 , - 1303 , - 542 , - 1221 , - 780 , - 1779 , - 1658 , - 417 , - 616 , - 2255 , - 214 , - 2173 , - 452 , - 171 , - 1330 , - 1369 , - 288 , - 647 , - 2446 , - 565 , - 124 , - 1123 , - 1002 , - 2321 , - 2520 , - 1599 , - 2118 , - 1517 , - 2356 , - 2075 , - 674 , - 713 , - 2192 , - 2551 , - 1790 , - 2469 , - 2028 , - 467 , - 346 , - 1665 , - 1864 , - 943 , - 1462 , - 861 , - 1700 , - 1419 , - 18 , - 57 , - 1536 , - 1895 , - 1134 , - 1813 , - 1372 , - 2371 , - 2250 , - 1009 , - 1208 , - 287 , - 806 , - 205 , - 1044 , - 763 , - 1922 , - 1961 , - 880 , - 1239 , - 478 , - 1157 , - 716 , - 1715 , - 1594 , - 353 , - 552 , - 2191 , - 150 , - 2109 , - 388 , - 107 , - 1266 , - 1305 , - 224 , - 583 , - 2382 , - 501 , - 60 , - 1059 , - 938 , - 2257 , - 2456 , - 1535 , - 2054 , - 1453 , - 2292 , - 2011 , - 610 , - 649 , - 2128 , - 2487 , - 1726 , - 2405 , - 1964 , - 403 , - 282 , - 1601 , - 1800 , - 879 , - 1398 , - 797 , - 1636 , - 1355 , - 2514 , - 2553 , - 1472 , - 1831 , - 1070 , - 1749 , - 1308 , - 2307 , - 2186 , - 945 , - 1144 , - 223 , - 742 , - 141 , - 980 , - 699 , - 1858 , - 1897 , - 816 , - 1175 , - 414 , - 1093 , - 652 , - 1651 , - 1530 , - 289 , - 488 , - 2127 , - 86 , - 2045 , - 324 , - 43 , - 1202 , - 1241 , - 160 , - 519 , - 2318 , - 437 , - 2556 , - 995 , - 874 , - 2193 , - 2392 , - 1471 , - 1990 , - 1389 , - 2228 , - 1947 , - 546 , - 585 , - 2064 , - 2423 , - 1662 , - 2341 , - 1900 , - 339 , - 218 , - 1537 , - 1736 , - 815 , - 1334 , - 733 , - 1572 , - 1291 , - 2450 , - 2489 , - 1408 , - 1767 , - 1006 , - 1685 , - 1244 , - 2243 , - 2122 , - 881 , - 1080 , - 159 , - 678 , - 77 , - 916 , - 635 , - 1794 , - 1833 , - 752 , - 1111 , - 350 , - 1029 , - 588 , - 1587 , - 1466 , - 225 , - 424 , - 2063 , - 22 , - 1981 , - 260 , - 2539 , - 1138 , - 1177 , - 96 , - 455 , - 2254 , - 373 , - 2492 , - 931 , - 810 , - 2129 , - 2328 , - 1407 , - 1926 , - 1325 , - 2164 , - 1883 , - 482 , - 521 , - 2000 , - 2359 , - 1598 , - 2277 , - 1836 , - 275 , - 154 , - 1473 , - 1672 , - 751 , - 1270 , - 669 , - 1508 , - 1227 , - 2386 , - 2425 , - 1344 , - 1703 , - 942 , - 1621 , - 1180 , - 2179 , - 2058 , - 817 , - 1016 , - 95 , - 614 , - 13 , - 852 , - 571 , - 1730 , - 1769 , - 688 , - 1047 , - 286 , - 965 , - 524 , - 1523 , - 1402 , - 161 , - 360 , - 1999 , - 2518 , - 1917 , - 196 , - 2475 , - 1074 , - 1113 , - 32 , - 391 , - 2190 , - 309 , - 2428 , - 867 , - 746 , - 2065 , - 2264 , - 1343 , - 1862 , - 1261 , - 2100 , - 1819 , - 418 , - 457 , - 1936 , - 2295 , - 1534 , - 2213 , - 1772 , - 211 , - 90 , - 1409 , - 1608 , - 687 , - 1206 , - 605 , - 1444 , - 1163 , - 2322 , - 2361 , - 1280 , - 1639 , - 878 , - 1557 , - 1116 , - 2115 , - 1994 , - 753 , - 952 , - 31 , - 550 , - 2509 , - 788 , - 507 , - 1666 , - 1705 , - 624 , - 983 , - 222 , - 901 , - 460 , - 1459 , - 1338 , - 97 , - 296 , - 1935 , - 2454 , - 1853 , - 132 , - 2411 , - 1010 , - 1049 , - 2528 , - 327 , - 2126 , - 245 , - 2364 , - 803 , - 682 , - 2001 , - 2200 , - 1279 , - 1798 , - 1197 , - 2036 , - 1755 , - 354 , - 393 , - 1872 , - 2231 , - 1470 , - 2149 , - 1708 , - 147 , - 26 , - 1345 , - 1544 , - 623 , - 1142 , - 541 , - 1380 , - 1099 , - 2258 , - 2297 , - 1216 , - 1575 , - 814 , - 1493 , - 1052 , - 2051 , - 1930 , - 689 , - 888 , - 2527 , - 486 , - 2445 , - 724 , - 443 , - 1602 , - 1641 , - 560 , - 919 , - 158 , - 837 , - 396 , - 1395 , - 1274 , - 33 , - 232 , - 1871 , - 2390 , - 1789 , - 68 , - 2347 , - 946 , - 985 , - 2464 , - 263 , - 2062 , - 181 , - 2300 , - 739 , - 618 , - 1937 , - 2136 , - 1215 , - 1734 , - 1133 , - 1972 , - 1691 , - 290 , - 329 , - 1808 , - 2167 , - 1406 , - 2085 , - 1644 , - 83 , - 2522 , - 1281 , - 1480 , - 559 , - 1078 , - 477 , - 1316 , - 1035 , - 2194 , - 2233 , - 1152 , - 1511 , - 750 , - 1429 , - 988 , - 1987 , - 1866 , - 625 , - 824 , - 2463 , - 422 , - 2381 , - 660 , - 379 , - 1538 , - 1577 , - 496 , - 855 , - 94 , - 773 , - 332 , - 1331 , - 1210 , - 2529 , - 168 , - 1807 , - 2326 , - 1725 , - 4 , - 2283 , - 882 , - 921 , - 2400 , - 199 , - 1998 , - 117 , - 2236 , - 675 , - 554 , - 1873 , - 2072 , - 1151 , - 1670 , - 1069 , - 1908 , - 1627 , - 226 , - 265 , - 1744 , - 2103 , - 1342 , - 2021 , - 1580 , - 19 , - 2458 , - 1217 , - 1416 , - 495 , - 1014 , - 413 , - 1252 , - 971 , - 2130 , - 2169 , - 1088 , - 1447 , - 686 , - 1365 , - 924 , - 1923 , - 1802 , - 561 , - 760 , - 2399 , - 358 , - 2317 , - 596 , - 315 , - 1474 , - 1513 , - 432 , - 791 , - 30 , - 709 , - 268 , - 1267 , - 1146 , - 2465 , - 104 , - 1743 , - 2262 , - 1661 , - 2500 , - 2219 , - 818 , - 857 , - 2336 , - 135 , - 1934 , - 53 , - 2172 , - 611 , - 490 , - 1809 , - 2008 , - 1087 , - 1606 , - 1005 , - 1844 , - 1563 , - 162 , - 201 , - 1680 , - 2039 , - 1278 , - 1957 , - 1516 , - 2515 , - 2394 , - 1153 , - 1352 , - 431 , - 950 , - 349 , - 1188 , - 907 , - 2066 , - 2105 , - 1024 , - 1383 , - 622 , - 1301 , - 860 , - 1859 , - 1738 , - 497 , - 696 , - 2335 , - 294 , - 2253 , - 532 , - 251 , - 1410 , - 1449 , - 368 , - 727 , - 2526 , - 645 , - 204 , - 1203 , - 1082 , - 2401 , - 40 , - 1679 , - 2198 , - 1597 , - 2436 , - 2155 , - 754 , - 793 , - 2272 , - 71 , - 1870 , - 2549 , - 2108 , - 547 , - 426 , - 1745 , - 1944 , - 1023 , - 1542 , - 941 , - 1780 , - 1499 , - 98 , - 137 , - 1616 , - 1975 , - 1214 , - 1893 , - 1452 , - 2451 , - 2330 , - 1089 , - 1288 , - 367 , - 886 , - 285 , - 1124 , - 843 , - 2002 , - 2041 , - 960 , - 1319 , - 558 , - 1237 , - 796 , - 1795 , - 1674 , - 433 , - 632 , - 2271 , - 230 , - 2189 , - 468 , - 187 , - 1346 , - 1385 , - 304 , - 663 , - 2462 , - 581 , - 140 , - 1139 , - 1018 , - 2337 , - 2536 , - 1615 , - 2134 , - 1533 , - 2372 , - 2091 , - 690 , - 729 , - 2208 , - 7 , - 1806 , - 2485 , - 2044 , - 483 , - 362 , - 1681 , - 1880 , - 959 , - 1478 , - 877 , - 1716 , - 1435 , - 34 , - 73 , - 1552 , - 1911 , - 1150 , - 1829 , - 1388 , - 2387 , - 2266 , - 1025 , - 1224 , - 303 , - 822 , - 221 , - 1060 , - 779 , - 1938 , - 1977 , - 896 , - 1255 , - 494 , - 1173 , - 732 , - 1731 , - 1610 , - 369 , - 568 , - 2207 , - 166 , - 2125 , - 404 , - 123 , - 1282 , - 1321 , - 240 , - 599 , - 2398 , - 517 , - 76 , - 1075 , - 954 , - 2273 , - 2472 , - 1551 , - 2070 , - 1469 , - 2308 , - 2027 , - 626 , - 665 , - 2144 , - 2503 , - 1742 , - 2421 , - 1980 , - 419 , - 298 , - 1617 , - 1816 , - 895 , - 1414 , - 813 , - 1652 , - 1371 , - 2530 , - 9 , - 1488 , - 1847 , - 1086 , - 1765 , - 1324 , - 2323 , - 2202 , - 961 , - 1160 , - 239 , - 758 , - 157 , - 996 , - 715 , - 1874 , - 1913 , - 832 , - 1191 , - 430 , - 1109 , - 668 , - 1667 , - 1546 , - 305 , - 504 , - 2143 , - 102 , - 2061 , - 340 , - 59 , - 1218 , - 1257 , - 176 , - 535 , - 2334 , - 453 , - 12 , - 1011 , - 890 , - 2209 , - 2408 , - 1487 , - 2006 , - 1405 , - 2244 , - 1963 , - 562 , - 601 , - 2080 , - 2439 , - 1678 , - 2357 , - 1916 , - 355 , - 234 , - 1553 , - 1752 , - 831 , - 1350 , - 749 , - 1588 , - 1307 , - 2466 , - 2505 , - 1424 , - 1783 , - 1022 , - 1701 , - 1260 , - 2259 , - 2138 , - 897 , - 1096 , - 175 , - 694 , - 93 , - 932 , - 651 , - 1810 , - 1849 , - 768 , - 1127 , - 366 , - 1045 , - 604 , - 1603 , - 1482 , - 241 , - 440 , - 2079 , - 38 , - 1997 , - 276 , - 2555 , - 1154 , - 1193 , - 112 , - 471 , - 2270 , - 389 , - 2508 , - 947 , - 826 , - 2145 , - 2344 , - 1423 , - 1942 , - 1341 , - 2180 , - 1899 , - 498 , - 537 , - 2016 , - 2375 , - 1614 , - 2293 , - 1852 , - 291 , - 170 , - 1489 , - 1688 , - 767 , - 1286 , - 685 , - 1524 , - 1243 , - 2402 , - 2441 , - 1360 , - 1719 , - 958 , - 1637 , - 1196 , - 2195 , - 2074 , - 833 , - 1032 , - 111 , - 630 , - 29 , - 868 , - 587 , - 1746 , - 1785 , - 704 , - 1063 , - 302 , - 981 , - 540 , - 1539 , - 1418 , - 177 , - 376 , - 2015 , - 2534 , - 1933 , - 212 , - 2491 , - 1090 , - 1129 , - 48 , - 407 , - 2206 , - 325 , - 2444 , - 883 , - 762 , - 2081 , - 2280 , - 1359 , - 1878 , - 1277 , - 2116 , - 1835 , - 434 , - 473 , - 1952 , - 2311 , - 1550 , - 2229 , - 1788 , - 227 , - 106 , - 1425 , - 1624 , - 703 , - 1222 , - 621 , - 1460 , - 1179 , - 2338 , - 2377 , - 1296 , - 1655 , - 894 , - 1573 , - 1132 , - 2131 , - 2010 , - 769 , - 968 , - 47 , - 566 , - 2525 , - 804 , - 523 , - 1682 , - 1721 , - 640 , - 999 , - 238 , - 917 , - 476 , - 1475 , - 1354 , - 113 , - 312 , - 1951 , - 2470 , - 1869 , - 148 , - 2427 , - 1026 , - 1065 , - 2544 , - 343 , - 2142 , - 261 , - 2380 , - 819 , - 698 , - 2017 , - 2216 , - 1295 , - 1814 , - 1213 , - 2052 , - 1771 , - 370 , - 409 , - 1888 , - 2247 , - 1486 , - 2165 , - 1724 , - 163 , - 42 , - 1361 , - 1560 , - 639 , - 1158 , - 557 , - 1396 , - 1115 , - 2274 , - 2313 , - 1232 , - 1591 , - 830 , - 1509 , - 1068 , - 2067 , - 1946 , - 705 , - 904 , - 2543 , - 502 , - 2461 , - 740 , - 459 , - 1618 , - 1657 , - 576 , - 935 , - 174 , - 853 , - 412 , - 1411 , - 1290 , - 49 , - 248 , - 1887 , - 2406 , - 1805 , - 84 , - 2363 , - 962 , - 1001 , - 2480 , - 279 , - 2078 , - 197 , - 2316 , - 755 , - 634 , - 1953 , - 2152 , - 1231 , - 1750 , - 1149 , - 1988 , - 1707 , - 306 , - 345 , - 1824 , - 2183 , - 1422 , - 2101 , - 1660 , - 99 , - 2538 , - 1297 , - 1496 , - 575 , - 1094 , - 493 , - 1332 , - 1051 , - 2210 , - 2249 , - 1168 , - 1527 , - 766 , - 1445 , - 1004 , - 2003 , - 1882 , - 641 , - 840 , - 2479 , - 438 , - 2397 , - 676 , - 395 , - 1554 , - 1593 , - 512 , - 871 , - 110 , - 789 , - 348 , - 1347 , - 1226 , - 2545 , - 184 , - 1823 , - 2342 , - 1741 , - 20 , - 2299 , - 898 , - 937 , - 2416 , - 215 , - 2014 , - 133 , - 2252 , - 691 , - 570 , - 1889 , - 2088 , - 1167 , - 1686 , - 1085 , - 1924 , - 1643 , - 242 , - 281 , - 1760 , - 2119 , - 1358 , - 2037 , - 1596 , - 35 , - 2474 , - 1233 , - 1432 , - 511 , - 1030 , - 429 , - 1268 , - 987 , - 2146 , - 2185 , - 1104 , - 1463 , - 702 , - 1381 , - 940 , - 1939 , - 1818 , - 577 , - 776 , - 2415 , - 374 , - 2333 , - 612 , - 331 , - 1490 , - 1529 , - 448 , - 807 , - 46 , - 725 , - 284 , - 1283 , - 1162 , - 2481 , - 120 , - 1759 , - 2278 , - 1677 , - 2516 , - 2235 , - 834 , - 873 , - 2352 , - 151 , - 1950 , - 69 , - 2188 , - 627 , - 506 , - 1825 , - 2024 , - 1103 , - 1622 , - 1021 , - 1860 , - 1579 , - 178 , - 217 , - 1696 , - 2055 , - 1294 , - 1973 , - 1532 , - 2531 , - 2410 , - 1169 , - 1368 , - 447 , - 966 , - 365 , - 1204 , - 923 , - 2082 , - 2121 , - 1040 , - 1399 , - 638 , - 1317 , - 876 , - 1875 , - 1754 , - 513 , - 712 , - 2351 , - 310 , - 2269 , - 548 , - 267 , - 1426 , - 1465 , - 384 , - 743 , - 2542 , - 661 , - 220 , - 1219 , - 1098 , - 2417 , - 56 , - 1695 , - 2214 , - 1613 , - 2452 , - 2171 , - 770 , - 809 , - 2288 , - 87 , - 1886 , - 5 , - 2124 , - 563 , - 442 , - 1761 , - 1960 , - 1039 , - 1558 , - 957 , - 1796 , - 1515 , - 114 , - 153 , - 1632 , - 1991 , - 1230 , - 1909 , - 1468 , - 2467 , - 2346 , - 1105 , - 1304 , - 383 , - 902 , - 301 , - 1140 , - 859 , - 2018 , - 2057 , - 976 , - 1335 , - 574 , - 1253 , - 812 , - 1811 , - 1690 , - 449 , - 648 , - 2287 , - 246 , - 2205 , - 484 , - 203 , - 1362 , - 1401 , - 320 , - 679 , - 2478 , - 597 , - 156 , - 1155 , - 1034 , - 2353 , - 2552 , - 1631 , - 2150 , - 1549 , - 2388 , - 2107 , - 706 , - 745 , - 2224 , - 23 , - 1822 , - 2501 , - 2060 , - 499 , - 378 , - 1697 , - 1896 , - 975 , - 1494 , - 893 , - 1732 , - 1451 , - 50 , - 89 , - 1568 , - 1927 , - 1166 , - 1845 , - 1404 , - 2403 , - 2282 , - 1041 , - 1240 , - 319 , - 838 , - 237 , - 1076 , - 795 , - 1954 , - 1993 , - 912 , - 1271 , - 510 , - 1189 , - 748 , - 1747 , - 1626 , - 385 , - 584 , - 2223 , - 182 , - 2141 , - 420 , - 139 , - 1298 , - 1337 , - 256 , - 615 , - 2414 , - 533 , - 92 , - 1091 , - 970 , - 2289 , - 2488 , - 1567 , - 2086 , - 1485 , - 2324 , - 2043 , - 642 , - 681 , - 2160 , - 2519 , - 1758 , - 2437 , - 1996 , - 435 , - 314 , - 1633 , - 1832 , - 911 , - 1430 , - 829 , - 1668 , - 1387 , - 2546 , - 25 , - 1504 , - 1863 , - 1102 , - 1781 , - 1340 , - 2339 , - 2218 , - 977 , - 1176 , - 255 , - 774 , - 173 , - 1012 , - 731 , - 1890 , - 1929 , - 848 , - 1207 , - 446 , - 1125 , - 684 , - 1683 , - 1562 , - 321 , - 520 , - 2159 , - 118 , - 2077 , - 356 , - 75 , - 1234 , - 1273 , - 192 , - 551 , - 2350 , - 469 , - 28 , - 1027 , - 906 , - 2225 , - 2424 , - 1503 , - 2022 , - 1421 , - 2260 , - 1979 , - 578 , - 617 , - 2096 , - 2455 , - 1694 , - 2373 , - 1932 , - 371 , - 250 , - 1569 , - 1768 , - 847 , - 1366 , - 765 , - 1604 , - 1323 , - 2482 , - 2521 , - 1440 , - 1799 , - 1038 , - 1717 , - 1276 , - 2275 , - 2154 , - 913 , - 1112 , - 191 , - 710 , - 109 , - 948 , - 667 , - 1826 , - 1865 , - 784 , - 1143 , - 382 , - 1061 , - 620 , - 1619 , - 1498 , - 257 , - 456 , - 2095 , - 54 , - 2013 , - 292 , - 11 , - 1170 , - 1209 , - 128 , - 487 , - 2286 , - 405 , - 2524 , - 963 , - 842 , - 2161 , - 2360 , - 1439 , - 1958 , - 1357 , - 2196 , - 1915 , - 514 , - 553 , - 2032 , - 2391 , - 1630 , - 2309 , - 1868 , - 307 , - 186 , - 1505 , - 1704 , - 783 , - 1302 , - 701 , - 1540 , - 1259 , - 2418 , - 2457 , - 1376 , - 1735 , - 974 , - 1653 , - 1212 , - 2211 , - 2090 , - 849 , - 1048 , - 127 , - 646 , - 45 , - 884 , - 603 , - 1762 , - 1801 , - 720 , - 1079 , - 318 , - 997 , - 556 , - 1555 , - 1434 , - 193 , - 392 , - 2031 , - 2550 , - 1949 , - 228 , - 2507 , - 1106 , - 1145 , - 64 , - 423 , - 2222 , - 341 , - 2460 , - 899 , - 778 , - 2097 , - 2296 , - 1375 , - 1894 , - 1293 , - 2132 , - 1851 , - 450 , - 489 , - 1968 , - 2327 , - 1566 , - 2245 , - 1804 , - 243 , - 122 , - 1441 , - 1640 , - 719 , - 1238 , - 637 , - 1476 , - 1195 , - 2354 , - 2393 , - 1312 , - 1671 , - 910 , - 1589 , - 1148 , - 2147 , - 2026 , - 785 , - 984 , - 63 , - 582 , - 2541 , - 820 , - 539 , - 1698 , - 1737 , - 656 , - 1015 , - 254 , - 933 , - 492 , - 1491 , - 1370 , - 129 , - 328 , - 1967 , - 2486 , - 1885 , - 164 , - 2443 , - 1042 , - 1081 , - 0 , - 1063 , - 1142 , - 237 , - 972 , - 723 , - 2114 , - 2521 , - 1944 , - 383 , - 462 , - 2181 , - 292 , - 43 , - 1434 , - 1841 , - 1264 , - 2327 , - 2406 , - 1501 , - 2236 , - 1987 , - 754 , - 1161 , - 584 , - 1647 , - 1726 , - 821 , - 1556 , - 1307 , - 74 , - 481 , - 2528 , - 967 , - 1046 , - 141 , - 876 , - 627 , - 2018 , - 2425 , - 1848 , - 287 , - 366 , - 2085 , - 196 , - 2571 , - 1338 , - 1745 , - 1168 , - 2231 , - 2310 , - 1405 , - 2140 , - 1891 , - 658 , - 1065 , - 488 , - 1551 , - 1630 , - 725 , - 1460 , - 1211 , - 2602 , - 385 , - 2432 , - 871 , - 950 , - 45 , - 780 , - 531 , - 1922 , - 2329 , - 1752 , - 191 , - 270 , - 1989 , - 100 , - 2475 , - 1242 , - 1649 , - 1072 , - 2135 , - 2214 , - 1309 , - 2044 , - 1795 , - 562 , - 969 , - 392 , - 1455 , - 1534 , - 629 , - 1364 , - 1115 , - 2506 , - 289 , - 2336 , - 775 , - 854 , - 2573 , - 684 , - 435 , - 1826 , - 2233 , - 1656 , - 95 , - 174 , - 1893 , - 4 , - 2379 , - 1146 , - 1553 , - 976 , - 2039 , - 2118 , - 1213 , - 1948 , - 1699 , - 466 , - 873 , - 296 , - 1359 , - 1438 , - 533 , - 1268 , - 1019 , - 2410 , - 193 , - 2240 , - 679 , - 758 , - 2477 , - 588 , - 339 , - 1730 , - 2137 , - 1560 , - 2623 , - 78 , - 1797 , - 2532 , - 2283 , - 1050 , - 1457 , - 880 , - 1943 , - 2022 , - 1117 , - 1852 , - 1603 , - 370 , - 777 , - 200 , - 1263 , - 1342 , - 437 , - 1172 , - 923 , - 2314 , - 97 , - 2144 , - 583 , - 662 , - 2381 , - 492 , - 243 , - 1634 , - 2041 , - 1464 , - 2527 , - 2606 , - 1701 , - 2436 , - 2187 , - 954 , - 1361 , - 784 , - 1847 , - 1926 , - 1021 , - 1756 , - 1507 , - 274 , - 681 , - 104 , - 1167 , - 1246 , - 341 , - 1076 , - 827 , - 2218 , - 1 , - 2048 , - 487 , - 566 , - 2285 , - 396 , - 147 , - 1538 , - 1945 , - 1368 , - 2431 , - 2510 , - 1605 , - 2340 , - 2091 , - 858 , - 1265 , - 688 , - 1751 , - 1830 , - 925 , - 1660 , - 1411 , - 178 , - 585 , - 8 , - 1071 , - 1150 , - 245 , - 980 , - 731 , - 2122 , - 2529 , - 1952 , - 391 , - 470 , - 2189 , - 300 , - 51 , - 1442 , - 1849 , - 1272 , - 2335 , - 2414 , - 1509 , - 2244 , - 1995 , - 762 , - 1169 , - 592 , - 1655 , - 1734 , - 829 , - 1564 , - 1315 , - 82 , - 489 , - 2536 , - 975 , - 1054 , - 149 , - 884 , - 635 , - 2026 , - 2433 , - 1856 , - 295 , - 374 , - 2093 , - 204 , - 2579 , - 1346 , - 1753 , - 1176 , - 2239 , - 2318 , - 1413 , - 2148 , - 1899 , - 666 , - 1073 , - 496 , - 1559 , - 1638 , - 733 , - 1468 , - 1219 , - 2610 , - 393 , - 2440 , - 879 , - 958 , - 53 , - 788 , - 539 , - 1930 , - 2337 , - 1760 , - 199 , - 278 , - 1997 , - 108 , - 2483 , - 1250 , - 1657 , - 1080 , - 2143 , - 2222 , - 1317 , - 2052 , - 1803 , - 570 , - 977 , - 400 , - 1463 , - 1542 , - 637 , - 1372 , - 1123 , - 2514 , - 297 , - 2344 , - 783 , - 862 , - 2581 , - 692 , - 443 , - 1834 , - 2241 , - 1664 , - 103 , - 182 , - 1901 , - 12 , - 2387 , - 1154 , - 1561 , - 984 , - 2047 , - 2126 , - 1221 , - 1956 , - 1707 , - 474 , - 881 , - 304 , - 1367 , - 1446 , - 541 , - 1276 , - 1027 , - 2418 , - 201 , - 2248 , - 687 , - 766 , - 2485 , - 596 , - 347 , - 1738 , - 2145 , - 1568 , - 7 , - 86 , - 1805 , - 2540 , - 2291 , - 1058 , - 1465 , - 888 , - 1951 , - 2030 , - 1125 , - 1860 , - 1611 , - 378 , - 785 , - 208 , - 1271 , - 1350 , - 445 , - 1180 , - 931 , - 2322 , - 105 , - 2152 , - 591 , - 670 , - 2389 , - 500 , - 251 , - 1642 , - 2049 , - 1472 , - 2535 , - 2614 , - 1709 , - 2444 , - 2195 , - 962 , - 1369 , - 792 , - 1855 , - 1934 , - 1029 , - 1764 , - 1515 , - 282 , - 689 , - 112 , - 1175 , - 1254 , - 349 , - 1084 , - 835 , - 2226 , - 9 , - 2056 , - 495 , - 574 , - 2293 , - 404 , - 155 , - 1546 , - 1953 , - 1376 , - 2439 , - 2518 , - 1613 , - 2348 , - 2099 , - 866 , - 1273 , - 696 , - 1759 , - 1838 , - 933 , - 1668 , - 1419 , - 186 , - 593 , - 16 , - 1079 , - 1158 , - 253 , - 988 , - 739 , - 2130 , - 2537 , - 1960 , - 399 , - 478 , - 2197 , - 308 , - 59 , - 1450 , - 1857 , - 1280 , - 2343 , - 2422 , - 1517 , - 2252 , - 2003 , - 770 , - 1177 , - 600 , - 1663 , - 1742 , - 837 , - 1572 , - 1323 , - 90 , - 497 , - 2544 , - 983 , - 1062 , - 157 , - 892 , - 643 , - 2034 , - 2441 , - 1864 , - 303 , - 382 , - 2101 , - 212 , - 2587 , - 1354 , - 1761 , - 1184 , - 2247 , - 2326 , - 1421 , - 2156 , - 1907 , - 674 , - 1081 , - 504 , - 1567 , - 1646 , - 741 , - 1476 , - 1227 , - 2618 , - 401 , - 2448 , - 887 , - 966 , - 61 , - 796 , - 547 , - 1938 , - 2345 , - 1768 , - 207 , - 286 , - 2005 , - 116 , - 2491 , - 1258 , - 1665 , - 1088 , - 2151 , - 2230 , - 1325 , - 2060 , - 1811 , - 578 , - 985 , - 408 , - 1471 , - 1550 , - 645 , - 1380 , - 1131 , - 2522 , - 305 , - 2352 , - 791 , - 870 , - 2589 , - 700 , - 451 , - 1842 , - 2249 , - 1672 , - 111 , - 190 , - 1909 , - 20 , - 2395 , - 1162 , - 1569 , - 992 , - 2055 , - 2134 , - 1229 , - 1964 , - 1715 , - 482 , - 889 , - 312 , - 1375 , - 1454 , - 549 , - 1284 , - 1035 , - 2426 , - 209 , - 2256 , - 695 , - 774 , - 2493 , - 604 , - 355 , - 1746 , - 2153 , - 1576 , - 15 , - 94 , - 1813 , - 2548 , - 2299 , - 1066 , - 1473 , - 896 , - 1959 , - 2038 , - 1133 , - 1868 , - 1619 , - 386 , - 793 , - 216 , - 1279 , - 1358 , - 453 , - 1188 , - 939 , - 2330 , - 113 , - 2160 , - 599 , - 678 , - 2397 , - 508 , - 259 , - 1650 , - 2057 , - 1480 , - 2543 , - 2622 , - 1717 , - 2452 , - 2203 , - 970 , - 1377 , - 800 , - 1863 , - 1942 , - 1037 , - 1772 , - 1523 , - 290 , - 697 , - 120 , - 1183 , - 1262 , - 357 , - 1092 , - 843 , - 2234 , - 17 , - 2064 , - 503 , - 582 , - 2301 , - 412 , - 163 , - 1554 , - 1961 , - 1384 , - 2447 , - 2526 , - 1621 , - 2356 , - 2107 , - 874 , - 1281 , - 704 , - 1767 , - 1846 , - 941 , - 1676 , - 1427 , - 194 , - 601 , - 24 , - 1087 , - 1166 , - 261 , - 996 , - 747 , - 2138 , - 2545 , - 1968 , - 407 , - 486 , - 2205 , - 316 , - 67 , - 1458 , - 1865 , - 1288 , - 2351 , - 2430 , - 1525 , - 2260 , - 2011 , - 778 , - 1185 , - 608 , - 1671 , - 1750 , - 845 , - 1580 , - 1331 , - 98 , - 505 , - 2552 , - 991 , - 1070 , - 165 , - 900 , - 651 , - 2042 , - 2449 , - 1872 , - 311 , - 390 , - 2109 , - 220 , - 2595 , - 1362 , - 1769 , - 1192 , - 2255 , - 2334 , - 1429 , - 2164 , - 1915 , - 682 , - 1089 , - 512 , - 1575 , - 1654 , - 749 , - 1484 , - 1235 , - 2 , - 409 , - 2456 , - 895 , - 974 , - 69 , - 804 , - 555 , - 1946 , - 2353 , - 1776 , - 215 , - 294 , - 2013 , - 124 , - 2499 , - 1266 , - 1673 , - 1096 , - 2159 , - 2238 , - 1333 , - 2068 , - 1819 , - 586 , - 993 , - 416 , - 1479 , - 1558 , - 653 , - 1388 , - 1139 , - 2530 , - 313 , - 2360 , - 799 , - 878 , - 2597 , - 708 , - 459 , - 1850 , - 2257 , - 1680 , - 119 , - 198 , - 1917 , - 28 , - 2403 , - 1170 , - 1577 , - 1000 , - 2063 , - 2142 , - 1237 , - 1972 , - 1723 , - 490 , - 897 , - 320 , - 1383 , - 1462 , - 557 , - 1292 , - 1043 , - 2434 , - 217 , - 2264 , - 703 , - 782 , - 2501 , - 612 , - 363 , - 1754 , - 2161 , - 1584 , - 23 , - 102 , - 1821 , - 2556 , - 2307 , - 1074 , - 1481 , - 904 , - 1967 , - 2046 , - 1141 , - 1876 , - 1627 , - 394 , - 801 , - 224 , - 1287 , - 1366 , - 461 , - 1196 , - 947 , - 2338 , - 121 , - 2168 , - 607 , - 686 , - 2405 , - 516 , - 267 , - 1658 , - 2065 , - 1488 , - 2551 , - 6 , - 1725 , - 2460 , - 2211 , - 978 , - 1385 , - 808 , - 1871 , - 1950 , - 1045 , - 1780 , - 1531 , - 298 , - 705 , - 128 , - 1191 , - 1270 , - 365 , - 1100 , - 851 , - 2242 , - 25 , - 2072 , - 511 , - 590 , - 2309 , - 420 , - 171 , - 1562 , - 1969 , - 1392 , - 2455 , - 2534 , - 1629 , - 2364 , - 2115 , - 882 , - 1289 , - 712 , - 1775 , - 1854 , - 949 , - 1684 , - 1435 , - 202 , - 609 , - 32 , - 1095 , - 1174 , - 269 , - 1004 , - 755 , - 2146 , - 2553 , - 1976 , - 415 , - 494 , - 2213 , - 324 , - 75 , - 1466 , - 1873 , - 1296 , - 2359 , - 2438 , - 1533 , - 2268 , - 2019 , - 786 , - 1193 , - 616 , - 1679 , - 1758 , - 853 , - 1588 , - 1339 , - 106 , - 513 , - 2560 , - 999 , - 1078 , - 173 , - 908 , - 659 , - 2050 , - 2457 , - 1880 , - 319 , - 398 , - 2117 , - 228 , - 2603 , - 1370 , - 1777 , - 1200 , - 2263 , - 2342 , - 1437 , - 2172 , - 1923 , - 690 , - 1097 , - 520 , - 1583 , - 1662 , - 757 , - 1492 , - 1243 , - 10 , - 417 , - 2464 , - 903 , - 982 , - 77 , - 812 , - 563 , - 1954 , - 2361 , - 1784 , - 223 , - 302 , - 2021 , - 132 , - 2507 , - 1274 , - 1681 , - 1104 , - 2167 , - 2246 , - 1341 , - 2076 , - 1827 , - 594 , - 1001 , - 424 , - 1487 , - 1566 , - 661 , - 1396 , - 1147 , - 2538 , - 321 , - 2368 , - 807 , - 886 , - 2605 , - 716 , - 467 , - 1858 , - 2265 , - 1688 , - 127 , - 206 , - 1925 , - 36 , - 2411 , - 1178 , - 1585 , - 1008 , - 2071 , - 2150 , - 1245 , - 1980 , - 1731 , - 498 , - 905 , - 328 , - 1391 , - 1470 , - 565 , - 1300 , - 1051 , - 2442 , - 225 , - 2272 , - 711 , - 790 , - 2509 , - 620 , - 371 , - 1762 , - 2169 , - 1592 , - 31 , - 110 , - 1829 , - 2564 , - 2315 , - 1082 , - 1489 , - 912 , - 1975 , - 2054 , - 1149 , - 1884 , - 1635 , - 402 , - 809 , - 232 , - 1295 , - 1374 , - 469 , - 1204 , - 955 , - 2346 , - 129 , - 2176 , - 615 , - 694 , - 2413 , - 524 , - 275 , - 1666 , - 2073 , - 1496 , - 2559 , - 14 , - 1733 , - 2468 , - 2219 , - 986 , - 1393 , - 816 , - 1879 , - 1958 , - 1053 , - 1788 , - 1539 , - 306 , - 713 , - 136 , - 1199 , - 1278 , - 373 , - 1108 , - 859 , - 2250 , - 33 , - 2080 , - 519 , - 598 , - 2317 , - 428 , - 179 , - 1570 , - 1977 , - 1400 , - 2463 , - 2542 , - 1637 , - 2372 , - 2123 , - 890 , - 1297 , - 720 , - 1783 , - 1862 , - 957 , - 1692 , - 1443 , - 210 , - 617 , - 40 , - 1103 , - 1182 , - 277 , - 1012 , - 763 , - 2154 , - 2561 , - 1984 , - 423 , - 502 , - 2221 , - 332 , - 83 , - 1474 , - 1881 , - 1304 , - 2367 , - 2446 , - 1541 , - 2276 , - 2027 , - 794 , - 1201 , - 624 , - 1687 , - 1766 , - 861 , - 1596 , - 1347 , - 114 , - 521 , - 2568 , - 1007 , - 1086 , - 181 , - 916 , - 667 , - 2058 , - 2465 , - 1888 , - 327 , - 406 , - 2125 , - 236 , - 2611 , - 1378 , - 1785 , - 1208 , - 2271 , - 2350 , - 1445 , - 2180 , - 1931 , - 698 , - 1105 , - 528 , - 1591 , - 1670 , - 765 , - 1500 , - 1251 , - 18 , - 425 , - 2472 , - 911 , - 990 , - 85 , - 820 , - 571 , - 1962 , - 2369 , - 1792 , - 231 , - 310 , - 2029 , - 140 , - 2515 , - 1282 , - 1689 , - 1112 , - 2175 , - 2254 , - 1349 , - 2084 , - 1835 , - 602 , - 1009 , - 432 , - 1495 , - 1574 , - 669 , - 1404 , - 1155 , - 2546 , - 329 , - 2376 , - 815 , - 894 , - 2613 , - 724 , - 475 , - 1866 , - 2273 , - 1696 , - 135 , - 214 , - 1933 , - 44 , - 2419 , - 1186 , - 1593 , - 1016 , - 2079 , - 2158 , - 1253 , - 1988 , - 1739 , - 506 , - 913 , - 336 , - 1399 , - 1478 , - 573 , - 1308 , - 1059 , - 2450 , - 233 , - 2280 , - 719 , - 798 , - 2517 , - 628 , - 379 , - 1770 , - 2177 , - 1600 , - 39 , - 118 , - 1837 , - 2572 , - 2323 , - 1090 , - 1497 , - 920 , - 1983 , - 2062 , - 1157 , - 1892 , - 1643 , - 410 , - 817 , - 240 , - 1303 , - 1382 , - 477 , - 1212 , - 963 , - 2354 , - 137 , - 2184 , - 623 , - 702 , - 2421 , - 532 , - 283 , - 1674 , - 2081 , - 1504 , - 2567 , - 22 , - 1741 , - 2476 , - 2227 , - 994 , - 1401 , - 824 , - 1887 , - 1966 , - 1061 , - 1796 , - 1547 , - 314 , - 721 , - 144 , - 1207 , - 1286 , - 381 , - 1116 , - 867 , - 2258 , - 41 , - 2088 , - 527 , - 606 , - 2325 , - 436 , - 187 , - 1578 , - 1985 , - 1408 , - 2471 , - 2550 , - 1645 , - 2380 , - 2131 , - 898 , - 1305 , - 728 , - 1791 , - 1870 , - 965 , - 1700 , - 1451 , - 218 , - 625 , - 48 , - 1111 , - 1190 , - 285 , - 1020 , - 771 , - 2162 , - 2569 , - 1992 , - 431 , - 510 , - 2229 , - 340 , - 91 , - 1482 , - 1889 , - 1312 , - 2375 , - 2454 , - 1549 , - 2284 , - 2035 , - 802 , - 1209 , - 632 , - 1695 , - 1774 , - 869 , - 1604 , - 1355 , - 122 , - 529 , - 2576 , - 1015 , - 1094 , - 189 , - 924 , - 675 , - 2066 , - 2473 , - 1896 , - 335 , - 414 , - 2133 , - 244 , - 2619 , - 1386 , - 1793 , - 1216 , - 2279 , - 2358 , - 1453 , - 2188 , - 1939 , - 706 , - 1113 , - 536 , - 1599 , - 1678 , - 773 , - 1508 , - 1259 , - 26 , - 433 , - 2480 , - 919 , - 998 , - 93 , - 828 , - 579 , - 1970 , - 2377 , - 1800 , - 239 , - 318 , - 2037 , - 148 , - 2523 , - 1290 , - 1697 , - 1120 , - 2183 , - 2262 , - 1357 , - 2092 , - 1843 , - 610 , - 1017 , - 440 , - 1503 , - 1582 , - 677 , - 1412 , - 1163 , - 2554 , - 337 , - 2384 , - 823 , - 902 , - 2621 , - 732 , - 483 , - 1874 , - 2281 , - 1704 , - 143 , - 222 , - 1941 , - 52 , - 2427 , - 1194 , - 1601 , - 1024 , - 2087 , - 2166 , - 1261 , - 1996 , - 1747 , - 514 , - 921 , - 344 , - 1407 , - 1486 , - 581 , - 1316 , - 1067 , - 2458 , - 241 , - 2288 , - 727 , - 806 , - 2525 , - 636 , - 387 , - 1778 , - 2185 , - 1608 , - 47 , - 126 , - 1845 , - 2580 , - 2331 , - 1098 , - 1505 , - 928 , - 1991 , - 2070 , - 1165 , - 1900 , - 1651 , - 418 , - 825 , - 248 , - 1311 , - 1390 , - 485 , - 1220 , - 971 , - 2362 , - 145 , - 2192 , - 631 , - 710 , - 2429 , - 540 , - 291 , - 1682 , - 2089 , - 1512 , - 2575 , - 30 , - 1749 , - 2484 , - 2235 , - 1002 , - 1409 , - 832 , - 1895 , - 1974 , - 1069 , - 1804 , - 1555 , - 322 , - 729 , - 152 , - 1215 , - 1294 , - 389 , - 1124 , - 875 , - 2266 , - 49 , - 2096 , - 535 , - 614 , - 2333 , - 444 , - 195 , - 1586 , - 1993 , - 1416 , - 2479 , - 2558 , - 1653 , - 2388 , - 2139 , - 906 , - 1313 , - 736 , - 1799 , - 1878 , - 973 , - 1708 , - 1459 , - 226 , - 633 , - 56 , - 1119 , - 1198 , - 293 , - 1028 , - 779 , - 2170 , - 2577 , - 2000 , - 439 , - 518 , - 2237 , - 348 , - 99 , - 1490 , - 1897 , - 1320 , - 2383 , - 2462 , - 1557 , - 2292 , - 2043 , - 810 , - 1217 , - 640 , - 1703 , - 1782 , - 877 , - 1612 , - 1363 , - 130 , - 537 , - 2584 , - 1023 , - 1102 , - 197 , - 932 , - 683 , - 2074 , - 2481 , - 1904 , - 343 , - 422 , - 2141 , - 252 , - 3 , - 1394 , - 1801 , - 1224 , - 2287 , - 2366 , - 1461 , - 2196 , - 1947 , - 714 , - 1121 , - 544 , - 1607 , - 1686 , - 781 , - 1516 , - 1267 , - 34 , - 441 , - 2488 , - 927 , - 1006 , - 101 , - 836 , - 587 , - 1978 , - 2385 , - 1808 , - 247 , - 326 , - 2045 , - 156 , - 2531 , - 1298 , - 1705 , - 1128 , - 2191 , - 2270 , - 1365 , - 2100 , - 1851 , - 618 , - 1025 , - 448 , - 1511 , - 1590 , - 685 , - 1420 , - 1171 , - 2562 , - 345 , - 2392 , - 831 , - 910 , - 5 , - 740 , - 491 , - 1882 , - 2289 , - 1712 , - 151 , - 230 , - 1949 , - 60 , - 2435 , - 1202 , - 1609 , - 1032 , - 2095 , - 2174 , - 1269 , - 2004 , - 1755 , - 522 , - 929 , - 352 , - 1415 , - 1494 , - 589 , - 1324 , - 1075 , - 2466 , - 249 , - 2296 , - 735 , - 814 , - 2533 , - 644 , - 395 , - 1786 , - 2193 , - 1616 , - 55 , - 134 , - 1853 , - 2588 , - 2339 , - 1106 , - 1513 , - 936 , - 1999 , - 2078 , - 1173 , - 1908 , - 1659 , - 426 , - 833 , - 256 , - 1319 , - 1398 , - 493 , - 1228 , - 979 , - 2370 , - 153 , - 2200 , - 639 , - 718 , - 2437 , - 548 , - 299 , - 1690 , - 2097 , - 1520 , - 2583 , - 38 , - 1757 , - 2492 , - 2243 , - 1010 , - 1417 , - 840 , - 1903 , - 1982 , - 1077 , - 1812 , - 1563 , - 330 , - 737 , - 160 , - 1223 , - 1302 , - 397 , - 1132 , - 883 , - 2274 , - 57 , - 2104 , - 543 , - 622 , - 2341 , - 452 , - 203 , - 1594 , - 2001 , - 1424 , - 2487 , - 2566 , - 1661 , - 2396 , - 2147 , - 914 , - 1321 , - 744 , - 1807 , - 1886 , - 981 , - 1716 , - 1467 , - 234 , - 641 , - 64 , - 1127 , - 1206 , - 301 , - 1036 , - 787 , - 2178 , - 2585 , - 2008 , - 447 , - 526 , - 2245 , - 356 , - 107 , - 1498 , - 1905 , - 1328 , - 2391 , - 2470 , - 1565 , - 2300 , - 2051 , - 818 , - 1225 , - 648 , - 1711 , - 1790 , - 885 , - 1620 , - 1371 , - 138 , - 545 , - 2592 , - 1031 , - 1110 , - 205 , - 940 , - 691 , - 2082 , - 2489 , - 1912 , - 351 , - 430 , - 2149 , - 260 , - 11 , - 1402 , - 1809 , - 1232 , - 2295 , - 2374 , - 1469 , - 2204 , - 1955 , - 722 , - 1129 , - 552 , - 1615 , - 1694 , - 789 , - 1524 , - 1275 , - 42 , - 449 , - 2496 , - 935 , - 1014 , - 109 , - 844 , - 595 , - 1986 , - 2393 , - 1816 , - 255 , - 334 , - 2053 , - 164 , - 2539 , - 1306 , - 1713 , - 1136 , - 2199 , - 2278 , - 1373 , - 2108 , - 1859 , - 626 , - 1033 , - 456 , - 1519 , - 1598 , - 693 , - 1428 , - 1179 , - 2570 , - 353 , - 2400 , - 839 , - 918 , - 13 , - 748 , - 499 , - 1890 , - 2297 , - 1720 , - 159 , - 238 , - 1957 , - 68 , - 2443 , - 1210 , - 1617 , - 1040 , - 2103 , - 2182 , - 1277 , - 2012 , - 1763 , - 530 , - 937 , - 360 , - 1423 , - 1502 , - 597 , - 1332 , - 1083 , - 2474 , - 257 , - 2304 , - 743 , - 822 , - 2541 , - 652 , - 403 , - 1794 , - 2201 , - 1624 , - 63 , - 142 , - 1861 , - 2596 , - 2347 , - 1114 , - 1521 , - 944 , - 2007 , - 2086 , - 1181 , - 1916 , - 1667 , - 434 , - 841 , - 264 , - 1327 , - 1406 , - 501 , - 1236 , - 987 , - 2378 , - 161 , - 2208 , - 647 , - 726 , - 2445 , - 556 , - 307 , - 1698 , - 2105 , - 1528 , - 2591 , - 46 , - 1765 , - 2500 , - 2251 , - 1018 , - 1425 , - 848 , - 1911 , - 1990 , - 1085 , - 1820 , - 1571 , - 338 , - 745 , - 168 , - 1231 , - 1310 , - 405 , - 1140 , - 891 , - 2282 , - 65 , - 2112 , - 551 , - 630 , - 2349 , - 460 , - 211 , - 1602 , - 2009 , - 1432 , - 2495 , - 2574 , - 1669 , - 2404 , - 2155 , - 922 , - 1329 , - 752 , - 1815 , - 1894 , - 989 , - 1724 , - 1475 , - 242 , - 649 , - 72 , - 1135 , - 1214 , - 309 , - 1044 , - 795 , - 2186 , - 2593 , - 2016 , - 455 , - 534 , - 2253 , - 364 , - 115 , - 1506 , - 1913 , - 1336 , - 2399 , - 2478 , - 1573 , - 2308 , - 2059 , - 826 , - 1233 , - 656 , - 1719 , - 1798 , - 893 , - 1628 , - 1379 , - 146 , - 553 , - 2600 , - 1039 , - 1118 , - 213 , - 948 , - 699 , - 2090 , - 2497 , - 1920 , - 359 , - 438 , - 2157 , - 268 , - 19 , - 1410 , - 1817 , - 1240 , - 2303 , - 2382 , - 1477 , - 2212 , - 1963 , - 730 , - 1137 , - 560 , - 1623 , - 1702 , - 797 , - 1532 , - 1283 , - 50 , - 457 , - 2504 , - 943 , - 1022 , - 117 , - 852 , - 603 , - 1994 , - 2401 , - 1824 , - 263 , - 342 , - 2061 , - 172 , - 2547 , - 1314 , - 1721 , - 1144 , - 2207 , - 2286 , - 1381 , - 2116 , - 1867 , - 634 , - 1041 , - 464 , - 1527 , - 1606 , - 701 , - 1436 , - 1187 , - 2578 , - 361 , - 2408 , - 847 , - 926 , - 21 , - 756 , - 507 , - 1898 , - 2305 , - 1728 , - 167 , - 246 , - 1965 , - 76 , - 2451 , - 1218 , - 1625 , - 1048 , - 2111 , - 2190 , - 1285 , - 2020 , - 1771 , - 538 , - 945 , - 368 , - 1431 , - 1510 , - 605 , - 1340 , - 1091 , - 2482 , - 265 , - 2312 , - 751 , - 830 , - 2549 , - 660 , - 411 , - 1802 , - 2209 , - 1632 , - 71 , - 150 , - 1869 , - 2604 , - 2355 , - 1122 , - 1529 , - 952 , - 2015 , - 2094 , - 1189 , - 1924 , - 1675 , - 442 , - 849 , - 272 , - 1335 , - 1414 , - 509 , - 1244 , - 995 , - 2386 , - 169 , - 2216 , - 655 , - 734 , - 2453 , - 564 , - 315 , - 1706 , - 2113 , - 1536 , - 2599 , - 54 , - 1773 , - 2508 , - 2259 , - 1026 , - 1433 , - 856 , - 1919 , - 1998 , - 1093 , - 1828 , - 1579 , - 346 , - 753 , - 176 , - 1239 , - 1318 , - 413 , - 1148 , - 899 , - 2290 , - 73 , - 2120 , - 559 , - 638 , - 2357 , - 468 , - 219 , - 1610 , - 2017 , - 1440 , - 2503 , - 2582 , - 1677 , - 2412 , - 2163 , - 930 , - 1337 , - 760 , - 1823 , - 1902 , - 997 , - 1732 , - 1483 , - 250 , - 657 , - 80 , - 1143 , - 1222 , - 317 , - 1052 , - 803 , - 2194 , - 2601 , - 2024 , - 463 , - 542 , - 2261 , - 372 , - 123 , - 1514 , - 1921 , - 1344 , - 2407 , - 2486 , - 1581 , - 2316 , - 2067 , - 834 , - 1241 , - 664 , - 1727 , - 1806 , - 901 , - 1636 , - 1387 , - 154 , - 561 , - 2608 , - 1047 , - 1126 , - 221 , - 956 , - 707 , - 2098 , - 2505 , - 1928 , - 367 , - 446 , - 2165 , - 276 , - 27 , - 1418 , - 1825 , - 1248 , - 2311 , - 2390 , - 1485 , - 2220 , - 1971 , - 738 , - 1145 , - 568 , - 1631 , - 1710 , - 805 , - 1540 , - 1291 , - 58 , - 465 , - 2512 , - 951 , - 1030 , - 125 , - 860 , - 611 , - 2002 , - 2409 , - 1832 , - 271 , - 350 , - 2069 , - 180 , - 2555 , - 1322 , - 1729 , - 1152 , - 2215 , - 2294 , - 1389 , - 2124 , - 1875 , - 642 , - 1049 , - 472 , - 1535 , - 1614 , - 709 , - 1444 , - 1195 , - 2586 , - 369 , - 2416 , - 855 , - 934 , - 29 , - 764 , - 515 , - 1906 , - 2313 , - 1736 , - 175 , - 254 , - 1973 , - 84 , - 2459 , - 1226 , - 1633 , - 1056 , - 2119 , - 2198 , - 1293 , - 2028 , - 1779 , - 546 , - 953 , - 376 , - 1439 , - 1518 , - 613 , - 1348 , - 1099 , - 2490 , - 273 , - 2320 , - 759 , - 838 , - 2557 , - 668 , - 419 , - 1810 , - 2217 , - 1640 , - 79 , - 158 , - 1877 , - 2612 , - 2363 , - 1130 , - 1537 , - 960 , - 2023 , - 2102 , - 1197 , - 1932 , - 1683 , - 450 , - 857 , - 280 , - 1343 , - 1422 , - 517 , - 1252 , - 1003 , - 2394 , - 177 , - 2224 , - 663 , - 742 , - 2461 , - 572 , - 323 , - 1714 , - 2121 , - 1544 , - 2607 , - 62 , - 1781 , - 2516 , - 2267 , - 1034 , - 1441 , - 864 , - 1927 , - 2006 , - 1101 , - 1836 , - 1587 , - 354 , - 761 , - 184 , - 1247 , - 1326 , - 421 , - 1156 , - 907 , - 2298 , - 81 , - 2128 , - 567 , - 646 , - 2365 , - 476 , - 227 , - 1618 , - 2025 , - 1448 , - 2511 , - 2590 , - 1685 , - 2420 , - 2171 , - 938 , - 1345 , - 768 , - 1831 , - 1910 , - 1005 , - 1740 , - 1491 , - 258 , - 665 , - 88 , - 1151 , - 1230 , - 325 , - 1060 , - 811 , - 2202 , - 2609 , - 2032 , - 471 , - 550 , - 2269 , - 380 , - 131 , - 1522 , - 1929 , - 1352 , - 2415 , - 2494 , - 1589 , - 2324 , - 2075 , - 842 , - 1249 , - 672 , - 1735 , - 1814 , - 909 , - 1644 , - 1395 , - 162 , - 569 , - 2616 , - 1055 , - 1134 , - 229 , - 964 , - 715 , - 2106 , - 2513 , - 1936 , - 375 , - 454 , - 2173 , - 284 , - 35 , - 1426 , - 1833 , - 1256 , - 2319 , - 2398 , - 1493 , - 2228 , - 1979 , - 746 , - 1153 , - 576 , - 1639 , - 1718 , - 813 , - 1548 , - 1299 , - 66 , - 473 , - 2520 , - 959 , - 1038 , - 133 , - 868 , - 619 , - 2010 , - 2417 , - 1840 , - 279 , - 358 , - 2077 , - 188 , - 2563 , - 1330 , - 1737 , - 1160 , - 2223 , - 2302 , - 1397 , - 2132 , - 1883 , - 650 , - 1057 , - 480 , - 1543 , - 1622 , - 717 , - 1452 , - 1203 , - 2594 , - 377 , - 2424 , - 863 , - 942 , - 37 , - 772 , - 523 , - 1914 , - 2321 , - 1744 , - 183 , - 262 , - 1981 , - 92 , - 2467 , - 1234 , - 1641 , - 1064 , - 2127 , - 2206 , - 1301 , - 2036 , - 1787 , - 554 , - 961 , - 384 , - 1447 , - 1526 , - 621 , - 1356 , - 1107 , - 2498 , - 281 , - 2328 , - 767 , - 846 , - 2565 , - 676 , - 427 , - 1818 , - 2225 , - 1648 , - 87 , - 166 , - 1885 , - 2620 , - 2371 , - 1138 , - 1545 , - 968 , - 2031 , - 2110 , - 1205 , - 1940 , - 1691 , - 458 , - 865 , - 288 , - 1351 , - 1430 , - 525 , - 1260 , - 1011 , - 2402 , - 185 , - 2232 , - 671 , - 750 , - 2469 , - 580 , - 331 , - 1722 , - 2129 , - 1552 , - 2615 , - 70 , - 1789 , - 2524 , - 2275 , - 1042 , - 1449 , - 872 , - 1935 , - 2014 , - 1109 , - 1844 , - 1595 , - 362 , - 769 , - 192 , - 1255 , - 1334 , - 429 , - 1164 , - 915 , - 2306 , - 89 , - 2136 , - 575 , - 654 , - 2373 , - 484 , - 235 , - 1626 , - 2033 , - 1456 , - 2519 , - 2598 , - 1693 , - 2428 , - 2179 , - 946 , - 1353 , - 776 , - 1839 , - 1918 , - 1013 , - 1748 , - 1499 , - 266 , - 673 , - 96 , - 1159 , - 1238 , - 333 , - 1068 , - 819 , - 2210 , - 2617 , - 2040 , - 479 , - 558 , - 2277 , - 388 , - 139 , - 1530 , - 1937 , - 1360 , - 2423 , - 2502 , - 1597 , - 2332 , - 2083 , - 850 , - 1257 , - 680 , - 1743 , - 1822 , - 917 , - 1652 , - 1403 , - 170 , - 577 , - 0 , - 631 , - 2270 , - 2229 , - 508 , - 2483 , - 90 , - 1393 , - 1016 , - 1647 , - 598 , - 557 , - 1524 , - 811 , - 1106 , - 2409 , - 2032 , - 2663 , - 1614 , - 1573 , - 2540 , - 1827 , - 2122 , - 737 , - 360 , - 991 , - 2630 , - 2589 , - 868 , - 155 , - 450 , - 1753 , - 1376 , - 2007 , - 958 , - 917 , - 1884 , - 1171 , - 1466 , - 81 , - 2392 , - 335 , - 1974 , - 1933 , - 212 , - 2187 , - 2482 , - 1097 , - 720 , - 1351 , - 302 , - 261 , - 1228 , - 515 , - 810 , - 2113 , - 1736 , - 2367 , - 1318 , - 1277 , - 2244 , - 1531 , - 1826 , - 441 , - 64 , - 695 , - 2334 , - 2293 , - 572 , - 2547 , - 154 , - 1457 , - 1080 , - 1711 , - 662 , - 621 , - 1588 , - 875 , - 1170 , - 2473 , - 2096 , - 39 , - 1678 , - 1637 , - 2604 , - 1891 , - 2186 , - 801 , - 424 , - 1055 , - 6 , - 2653 , - 932 , - 219 , - 514 , - 1817 , - 1440 , - 2071 , - 1022 , - 981 , - 1948 , - 1235 , - 1530 , - 145 , - 2456 , - 399 , - 2038 , - 1997 , - 276 , - 2251 , - 2546 , - 1161 , - 784 , - 1415 , - 366 , - 325 , - 1292 , - 579 , - 874 , - 2177 , - 1800 , - 2431 , - 1382 , - 1341 , - 2308 , - 1595 , - 1890 , - 505 , - 128 , - 759 , - 2398 , - 2357 , - 636 , - 2611 , - 218 , - 1521 , - 1144 , - 1775 , - 726 , - 685 , - 1652 , - 939 , - 1234 , - 2537 , - 2160 , - 103 , - 1742 , - 1701 , - 2668 , - 1955 , - 2250 , - 865 , - 488 , - 1119 , - 70 , - 29 , - 996 , - 283 , - 578 , - 1881 , - 1504 , - 2135 , - 1086 , - 1045 , - 2012 , - 1299 , - 1594 , - 209 , - 2520 , - 463 , - 2102 , - 2061 , - 340 , - 2315 , - 2610 , - 1225 , - 848 , - 1479 , - 430 , - 389 , - 1356 , - 643 , - 938 , - 2241 , - 1864 , - 2495 , - 1446 , - 1405 , - 2372 , - 1659 , - 1954 , - 569 , - 192 , - 823 , - 2462 , - 2421 , - 700 , - 2675 , - 282 , - 1585 , - 1208 , - 1839 , - 790 , - 749 , - 1716 , - 1003 , - 1298 , - 2601 , - 2224 , - 167 , - 1806 , - 1765 , - 44 , - 2019 , - 2314 , - 929 , - 552 , - 1183 , - 134 , - 93 , - 1060 , - 347 , - 642 , - 1945 , - 1568 , - 2199 , - 1150 , - 1109 , - 2076 , - 1363 , - 1658 , - 273 , - 2584 , - 527 , - 2166 , - 2125 , - 404 , - 2379 , - 2674 , - 1289 , - 912 , - 1543 , - 494 , - 453 , - 1420 , - 707 , - 1002 , - 2305 , - 1928 , - 2559 , - 1510 , - 1469 , - 2436 , - 1723 , - 2018 , - 633 , - 256 , - 887 , - 2526 , - 2485 , - 764 , - 51 , - 346 , - 1649 , - 1272 , - 1903 , - 854 , - 813 , - 1780 , - 1067 , - 1362 , - 2665 , - 2288 , - 231 , - 1870 , - 1829 , - 108 , - 2083 , - 2378 , - 993 , - 616 , - 1247 , - 198 , - 157 , - 1124 , - 411 , - 706 , - 2009 , - 1632 , - 2263 , - 1214 , - 1173 , - 2140 , - 1427 , - 1722 , - 337 , - 2648 , - 591 , - 2230 , - 2189 , - 468 , - 2443 , - 50 , - 1353 , - 976 , - 1607 , - 558 , - 517 , - 1484 , - 771 , - 1066 , - 2369 , - 1992 , - 2623 , - 1574 , - 1533 , - 2500 , - 1787 , - 2082 , - 697 , - 320 , - 951 , - 2590 , - 2549 , - 828 , - 115 , - 410 , - 1713 , - 1336 , - 1967 , - 918 , - 877 , - 1844 , - 1131 , - 1426 , - 41 , - 2352 , - 295 , - 1934 , - 1893 , - 172 , - 2147 , - 2442 , - 1057 , - 680 , - 1311 , - 262 , - 221 , - 1188 , - 475 , - 770 , - 2073 , - 1696 , - 2327 , - 1278 , - 1237 , - 2204 , - 1491 , - 1786 , - 401 , - 24 , - 655 , - 2294 , - 2253 , - 532 , - 2507 , - 114 , - 1417 , - 1040 , - 1671 , - 622 , - 581 , - 1548 , - 835 , - 1130 , - 2433 , - 2056 , - 2687 , - 1638 , - 1597 , - 2564 , - 1851 , - 2146 , - 761 , - 384 , - 1015 , - 2654 , - 2613 , - 892 , - 179 , - 474 , - 1777 , - 1400 , - 2031 , - 982 , - 941 , - 1908 , - 1195 , - 1490 , - 105 , - 2416 , - 359 , - 1998 , - 1957 , - 236 , - 2211 , - 2506 , - 1121 , - 744 , - 1375 , - 326 , - 285 , - 1252 , - 539 , - 834 , - 2137 , - 1760 , - 2391 , - 1342 , - 1301 , - 2268 , - 1555 , - 1850 , - 465 , - 88 , - 719 , - 2358 , - 2317 , - 596 , - 2571 , - 178 , - 1481 , - 1104 , - 1735 , - 686 , - 645 , - 1612 , - 899 , - 1194 , - 2497 , - 2120 , - 63 , - 1702 , - 1661 , - 2628 , - 1915 , - 2210 , - 825 , - 448 , - 1079 , - 30 , - 2677 , - 956 , - 243 , - 538 , - 1841 , - 1464 , - 2095 , - 1046 , - 1005 , - 1972 , - 1259 , - 1554 , - 169 , - 2480 , - 423 , - 2062 , - 2021 , - 300 , - 2275 , - 2570 , - 1185 , - 808 , - 1439 , - 390 , - 349 , - 1316 , - 603 , - 898 , - 2201 , - 1824 , - 2455 , - 1406 , - 1365 , - 2332 , - 1619 , - 1914 , - 529 , - 152 , - 783 , - 2422 , - 2381 , - 660 , - 2635 , - 242 , - 1545 , - 1168 , - 1799 , - 750 , - 709 , - 1676 , - 963 , - 1258 , - 2561 , - 2184 , - 127 , - 1766 , - 1725 , - 4 , - 1979 , - 2274 , - 889 , - 512 , - 1143 , - 94 , - 53 , - 1020 , - 307 , - 602 , - 1905 , - 1528 , - 2159 , - 1110 , - 1069 , - 2036 , - 1323 , - 1618 , - 233 , - 2544 , - 487 , - 2126 , - 2085 , - 364 , - 2339 , - 2634 , - 1249 , - 872 , - 1503 , - 454 , - 413 , - 1380 , - 667 , - 962 , - 2265 , - 1888 , - 2519 , - 1470 , - 1429 , - 2396 , - 1683 , - 1978 , - 593 , - 216 , - 847 , - 2486 , - 2445 , - 724 , - 11 , - 306 , - 1609 , - 1232 , - 1863 , - 814 , - 773 , - 1740 , - 1027 , - 1322 , - 2625 , - 2248 , - 191 , - 1830 , - 1789 , - 68 , - 2043 , - 2338 , - 953 , - 576 , - 1207 , - 158 , - 117 , - 1084 , - 371 , - 666 , - 1969 , - 1592 , - 2223 , - 1174 , - 1133 , - 2100 , - 1387 , - 1682 , - 297 , - 2608 , - 551 , - 2190 , - 2149 , - 428 , - 2403 , - 10 , - 1313 , - 936 , - 1567 , - 518 , - 477 , - 1444 , - 731 , - 1026 , - 2329 , - 1952 , - 2583 , - 1534 , - 1493 , - 2460 , - 1747 , - 2042 , - 657 , - 280 , - 911 , - 2550 , - 2509 , - 788 , - 75 , - 370 , - 1673 , - 1296 , - 1927 , - 878 , - 837 , - 1804 , - 1091 , - 1386 , - 1 , - 2312 , - 255 , - 1894 , - 1853 , - 132 , - 2107 , - 2402 , - 1017 , - 640 , - 1271 , - 222 , - 181 , - 1148 , - 435 , - 730 , - 2033 , - 1656 , - 2287 , - 1238 , - 1197 , - 2164 , - 1451 , - 1746 , - 361 , - 2672 , - 615 , - 2254 , - 2213 , - 492 , - 2467 , - 74 , - 1377 , - 1000 , - 1631 , - 582 , - 541 , - 1508 , - 795 , - 1090 , - 2393 , - 2016 , - 2647 , - 1598 , - 1557 , - 2524 , - 1811 , - 2106 , - 721 , - 344 , - 975 , - 2614 , - 2573 , - 852 , - 139 , - 434 , - 1737 , - 1360 , - 1991 , - 942 , - 901 , - 1868 , - 1155 , - 1450 , - 65 , - 2376 , - 319 , - 1958 , - 1917 , - 196 , - 2171 , - 2466 , - 1081 , - 704 , - 1335 , - 286 , - 245 , - 1212 , - 499 , - 794 , - 2097 , - 1720 , - 2351 , - 1302 , - 1261 , - 2228 , - 1515 , - 1810 , - 425 , - 48 , - 679 , - 2318 , - 2277 , - 556 , - 2531 , - 138 , - 1441 , - 1064 , - 1695 , - 646 , - 605 , - 1572 , - 859 , - 1154 , - 2457 , - 2080 , - 23 , - 1662 , - 1621 , - 2588 , - 1875 , - 2170 , - 785 , - 408 , - 1039 , - 2678 , - 2637 , - 916 , - 203 , - 498 , - 1801 , - 1424 , - 2055 , - 1006 , - 965 , - 1932 , - 1219 , - 1514 , - 129 , - 2440 , - 383 , - 2022 , - 1981 , - 260 , - 2235 , - 2530 , - 1145 , - 768 , - 1399 , - 350 , - 309 , - 1276 , - 563 , - 858 , - 2161 , - 1784 , - 2415 , - 1366 , - 1325 , - 2292 , - 1579 , - 1874 , - 489 , - 112 , - 743 , - 2382 , - 2341 , - 620 , - 2595 , - 202 , - 1505 , - 1128 , - 1759 , - 710 , - 669 , - 1636 , - 923 , - 1218 , - 2521 , - 2144 , - 87 , - 1726 , - 1685 , - 2652 , - 1939 , - 2234 , - 849 , - 472 , - 1103 , - 54 , - 13 , - 980 , - 267 , - 562 , - 1865 , - 1488 , - 2119 , - 1070 , - 1029 , - 1996 , - 1283 , - 1578 , - 193 , - 2504 , - 447 , - 2086 , - 2045 , - 324 , - 2299 , - 2594 , - 1209 , - 832 , - 1463 , - 414 , - 373 , - 1340 , - 627 , - 922 , - 2225 , - 1848 , - 2479 , - 1430 , - 1389 , - 2356 , - 1643 , - 1938 , - 553 , - 176 , - 807 , - 2446 , - 2405 , - 684 , - 2659 , - 266 , - 1569 , - 1192 , - 1823 , - 774 , - 733 , - 1700 , - 987 , - 1282 , - 2585 , - 2208 , - 151 , - 1790 , - 1749 , - 28 , - 2003 , - 2298 , - 913 , - 536 , - 1167 , - 118 , - 77 , - 1044 , - 331 , - 626 , - 1929 , - 1552 , - 2183 , - 1134 , - 1093 , - 2060 , - 1347 , - 1642 , - 257 , - 2568 , - 511 , - 2150 , - 2109 , - 388 , - 2363 , - 2658 , - 1273 , - 896 , - 1527 , - 478 , - 437 , - 1404 , - 691 , - 986 , - 2289 , - 1912 , - 2543 , - 1494 , - 1453 , - 2420 , - 1707 , - 2002 , - 617 , - 240 , - 871 , - 2510 , - 2469 , - 748 , - 35 , - 330 , - 1633 , - 1256 , - 1887 , - 838 , - 797 , - 1764 , - 1051 , - 1346 , - 2649 , - 2272 , - 215 , - 1854 , - 1813 , - 92 , - 2067 , - 2362 , - 977 , - 600 , - 1231 , - 182 , - 141 , - 1108 , - 395 , - 690 , - 1993 , - 1616 , - 2247 , - 1198 , - 1157 , - 2124 , - 1411 , - 1706 , - 321 , - 2632 , - 575 , - 2214 , - 2173 , - 452 , - 2427 , - 34 , - 1337 , - 960 , - 1591 , - 542 , - 501 , - 1468 , - 755 , - 1050 , - 2353 , - 1976 , - 2607 , - 1558 , - 1517 , - 2484 , - 1771 , - 2066 , - 681 , - 304 , - 935 , - 2574 , - 2533 , - 812 , - 99 , - 394 , - 1697 , - 1320 , - 1951 , - 902 , - 861 , - 1828 , - 1115 , - 1410 , - 25 , - 2336 , - 279 , - 1918 , - 1877 , - 156 , - 2131 , - 2426 , - 1041 , - 664 , - 1295 , - 246 , - 205 , - 1172 , - 459 , - 754 , - 2057 , - 1680 , - 2311 , - 1262 , - 1221 , - 2188 , - 1475 , - 1770 , - 385 , - 8 , - 639 , - 2278 , - 2237 , - 516 , - 2491 , - 98 , - 1401 , - 1024 , - 1655 , - 606 , - 565 , - 1532 , - 819 , - 1114 , - 2417 , - 2040 , - 2671 , - 1622 , - 1581 , - 2548 , - 1835 , - 2130 , - 745 , - 368 , - 999 , - 2638 , - 2597 , - 876 , - 163 , - 458 , - 1761 , - 1384 , - 2015 , - 966 , - 925 , - 1892 , - 1179 , - 1474 , - 89 , - 2400 , - 343 , - 1982 , - 1941 , - 220 , - 2195 , - 2490 , - 1105 , - 728 , - 1359 , - 310 , - 269 , - 1236 , - 523 , - 818 , - 2121 , - 1744 , - 2375 , - 1326 , - 1285 , - 2252 , - 1539 , - 1834 , - 449 , - 72 , - 703 , - 2342 , - 2301 , - 580 , - 2555 , - 162 , - 1465 , - 1088 , - 1719 , - 670 , - 629 , - 1596 , - 883 , - 1178 , - 2481 , - 2104 , - 47 , - 1686 , - 1645 , - 2612 , - 1899 , - 2194 , - 809 , - 432 , - 1063 , - 14 , - 2661 , - 940 , - 227 , - 522 , - 1825 , - 1448 , - 2079 , - 1030 , - 989 , - 1956 , - 1243 , - 1538 , - 153 , - 2464 , - 407 , - 2046 , - 2005 , - 284 , - 2259 , - 2554 , - 1169 , - 792 , - 1423 , - 374 , - 333 , - 1300 , - 587 , - 882 , - 2185 , - 1808 , - 2439 , - 1390 , - 1349 , - 2316 , - 1603 , - 1898 , - 513 , - 136 , - 767 , - 2406 , - 2365 , - 644 , - 2619 , - 226 , - 1529 , - 1152 , - 1783 , - 734 , - 693 , - 1660 , - 947 , - 1242 , - 2545 , - 2168 , - 111 , - 1750 , - 1709 , - 2676 , - 1963 , - 2258 , - 873 , - 496 , - 1127 , - 78 , - 37 , - 1004 , - 291 , - 586 , - 1889 , - 1512 , - 2143 , - 1094 , - 1053 , - 2020 , - 1307 , - 1602 , - 217 , - 2528 , - 471 , - 2110 , - 2069 , - 348 , - 2323 , - 2618 , - 1233 , - 856 , - 1487 , - 438 , - 397 , - 1364 , - 651 , - 946 , - 2249 , - 1872 , - 2503 , - 1454 , - 1413 , - 2380 , - 1667 , - 1962 , - 577 , - 200 , - 831 , - 2470 , - 2429 , - 708 , - 2683 , - 290 , - 1593 , - 1216 , - 1847 , - 798 , - 757 , - 1724 , - 1011 , - 1306 , - 2609 , - 2232 , - 175 , - 1814 , - 1773 , - 52 , - 2027 , - 2322 , - 937 , - 560 , - 1191 , - 142 , - 101 , - 1068 , - 355 , - 650 , - 1953 , - 1576 , - 2207 , - 1158 , - 1117 , - 2084 , - 1371 , - 1666 , - 281 , - 2592 , - 535 , - 2174 , - 2133 , - 412 , - 2387 , - 2682 , - 1297 , - 920 , - 1551 , - 502 , - 461 , - 1428 , - 715 , - 1010 , - 2313 , - 1936 , - 2567 , - 1518 , - 1477 , - 2444 , - 1731 , - 2026 , - 641 , - 264 , - 895 , - 2534 , - 2493 , - 772 , - 59 , - 354 , - 1657 , - 1280 , - 1911 , - 862 , - 821 , - 1788 , - 1075 , - 1370 , - 2673 , - 2296 , - 239 , - 1878 , - 1837 , - 116 , - 2091 , - 2386 , - 1001 , - 624 , - 1255 , - 206 , - 165 , - 1132 , - 419 , - 714 , - 2017 , - 1640 , - 2271 , - 1222 , - 1181 , - 2148 , - 1435 , - 1730 , - 345 , - 2656 , - 599 , - 2238 , - 2197 , - 476 , - 2451 , - 58 , - 1361 , - 984 , - 1615 , - 566 , - 525 , - 1492 , - 779 , - 1074 , - 2377 , - 2000 , - 2631 , - 1582 , - 1541 , - 2508 , - 1795 , - 2090 , - 705 , - 328 , - 959 , - 2598 , - 2557 , - 836 , - 123 , - 418 , - 1721 , - 1344 , - 1975 , - 926 , - 885 , - 1852 , - 1139 , - 1434 , - 49 , - 2360 , - 303 , - 1942 , - 1901 , - 180 , - 2155 , - 2450 , - 1065 , - 688 , - 1319 , - 270 , - 229 , - 1196 , - 483 , - 778 , - 2081 , - 1704 , - 2335 , - 1286 , - 1245 , - 2212 , - 1499 , - 1794 , - 409 , - 32 , - 663 , - 2302 , - 2261 , - 540 , - 2515 , - 122 , - 1425 , - 1048 , - 1679 , - 630 , - 589 , - 1556 , - 843 , - 1138 , - 2441 , - 2064 , - 7 , - 1646 , - 1605 , - 2572 , - 1859 , - 2154 , - 769 , - 392 , - 1023 , - 2662 , - 2621 , - 900 , - 187 , - 482 , - 1785 , - 1408 , - 2039 , - 990 , - 949 , - 1916 , - 1203 , - 1498 , - 113 , - 2424 , - 367 , - 2006 , - 1965 , - 244 , - 2219 , - 2514 , - 1129 , - 752 , - 1383 , - 334 , - 293 , - 1260 , - 547 , - 842 , - 2145 , - 1768 , - 2399 , - 1350 , - 1309 , - 2276 , - 1563 , - 1858 , - 473 , - 96 , - 727 , - 2366 , - 2325 , - 604 , - 2579 , - 186 , - 1489 , - 1112 , - 1743 , - 694 , - 653 , - 1620 , - 907 , - 1202 , - 2505 , - 2128 , - 71 , - 1710 , - 1669 , - 2636 , - 1923 , - 2218 , - 833 , - 456 , - 1087 , - 38 , - 2685 , - 964 , - 251 , - 546 , - 1849 , - 1472 , - 2103 , - 1054 , - 1013 , - 1980 , - 1267 , - 1562 , - 177 , - 2488 , - 431 , - 2070 , - 2029 , - 308 , - 2283 , - 2578 , - 1193 , - 816 , - 1447 , - 398 , - 357 , - 1324 , - 611 , - 906 , - 2209 , - 1832 , - 2463 , - 1414 , - 1373 , - 2340 , - 1627 , - 1922 , - 537 , - 160 , - 791 , - 2430 , - 2389 , - 668 , - 2643 , - 250 , - 1553 , - 1176 , - 1807 , - 758 , - 717 , - 1684 , - 971 , - 1266 , - 2569 , - 2192 , - 135 , - 1774 , - 1733 , - 12 , - 1987 , - 2282 , - 897 , - 520 , - 1151 , - 102 , - 61 , - 1028 , - 315 , - 610 , - 1913 , - 1536 , - 2167 , - 1118 , - 1077 , - 2044 , - 1331 , - 1626 , - 241 , - 2552 , - 495 , - 2134 , - 2093 , - 372 , - 2347 , - 2642 , - 1257 , - 880 , - 1511 , - 462 , - 421 , - 1388 , - 675 , - 970 , - 2273 , - 1896 , - 2527 , - 1478 , - 1437 , - 2404 , - 1691 , - 1986 , - 601 , - 224 , - 855 , - 2494 , - 2453 , - 732 , - 19 , - 314 , - 1617 , - 1240 , - 1871 , - 822 , - 781 , - 1748 , - 1035 , - 1330 , - 2633 , - 2256 , - 199 , - 1838 , - 1797 , - 76 , - 2051 , - 2346 , - 961 , - 584 , - 1215 , - 166 , - 125 , - 1092 , - 379 , - 674 , - 1977 , - 1600 , - 2231 , - 1182 , - 1141 , - 2108 , - 1395 , - 1690 , - 305 , - 2616 , - 559 , - 2198 , - 2157 , - 436 , - 2411 , - 18 , - 1321 , - 944 , - 1575 , - 526 , - 485 , - 1452 , - 739 , - 1034 , - 2337 , - 1960 , - 2591 , - 1542 , - 1501 , - 2468 , - 1755 , - 2050 , - 665 , - 288 , - 919 , - 2558 , - 2517 , - 796 , - 83 , - 378 , - 1681 , - 1304 , - 1935 , - 886 , - 845 , - 1812 , - 1099 , - 1394 , - 9 , - 2320 , - 263 , - 1902 , - 1861 , - 140 , - 2115 , - 2410 , - 1025 , - 648 , - 1279 , - 230 , - 189 , - 1156 , - 443 , - 738 , - 2041 , - 1664 , - 2295 , - 1246 , - 1205 , - 2172 , - 1459 , - 1754 , - 369 , - 2680 , - 623 , - 2262 , - 2221 , - 500 , - 2475 , - 82 , - 1385 , - 1008 , - 1639 , - 590 , - 549 , - 1516 , - 803 , - 1098 , - 2401 , - 2024 , - 2655 , - 1606 , - 1565 , - 2532 , - 1819 , - 2114 , - 729 , - 352 , - 983 , - 2622 , - 2581 , - 860 , - 147 , - 442 , - 1745 , - 1368 , - 1999 , - 950 , - 909 , - 1876 , - 1163 , - 1458 , - 73 , - 2384 , - 327 , - 1966 , - 1925 , - 204 , - 2179 , - 2474 , - 1089 , - 712 , - 1343 , - 294 , - 253 , - 1220 , - 507 , - 802 , - 2105 , - 1728 , - 2359 , - 1310 , - 1269 , - 2236 , - 1523 , - 1818 , - 433 , - 56 , - 687 , - 2326 , - 2285 , - 564 , - 2539 , - 146 , - 1449 , - 1072 , - 1703 , - 654 , - 613 , - 1580 , - 867 , - 1162 , - 2465 , - 2088 , - 31 , - 1670 , - 1629 , - 2596 , - 1883 , - 2178 , - 793 , - 416 , - 1047 , - 2686 , - 2645 , - 924 , - 211 , - 506 , - 1809 , - 1432 , - 2063 , - 1014 , - 973 , - 1940 , - 1227 , - 1522 , - 137 , - 2448 , - 391 , - 2030 , - 1989 , - 268 , - 2243 , - 2538 , - 1153 , - 776 , - 1407 , - 358 , - 317 , - 1284 , - 571 , - 866 , - 2169 , - 1792 , - 2423 , - 1374 , - 1333 , - 2300 , - 1587 , - 1882 , - 497 , - 120 , - 751 , - 2390 , - 2349 , - 628 , - 2603 , - 210 , - 1513 , - 1136 , - 1767 , - 718 , - 677 , - 1644 , - 931 , - 1226 , - 2529 , - 2152 , - 95 , - 1734 , - 1693 , - 2660 , - 1947 , - 2242 , - 857 , - 480 , - 1111 , - 62 , - 21 , - 988 , - 275 , - 570 , - 1873 , - 1496 , - 2127 , - 1078 , - 1037 , - 2004 , - 1291 , - 1586 , - 201 , - 2512 , - 455 , - 2094 , - 2053 , - 332 , - 2307 , - 2602 , - 1217 , - 840 , - 1471 , - 422 , - 381 , - 1348 , - 635 , - 930 , - 2233 , - 1856 , - 2487 , - 1438 , - 1397 , - 2364 , - 1651 , - 1946 , - 561 , - 184 , - 815 , - 2454 , - 2413 , - 692 , - 2667 , - 274 , - 1577 , - 1200 , - 1831 , - 782 , - 741 , - 1708 , - 995 , - 1290 , - 2593 , - 2216 , - 159 , - 1798 , - 1757 , - 36 , - 2011 , - 2306 , - 921 , - 544 , - 1175 , - 126 , - 85 , - 1052 , - 339 , - 634 , - 1937 , - 1560 , - 2191 , - 1142 , - 1101 , - 2068 , - 1355 , - 1650 , - 265 , - 2576 , - 519 , - 2158 , - 2117 , - 396 , - 2371 , - 2666 , - 1281 , - 904 , - 1535 , - 486 , - 445 , - 1412 , - 699 , - 994 , - 2297 , - 1920 , - 2551 , - 1502 , - 1461 , - 2428 , - 1715 , - 2010 , - 625 , - 248 , - 879 , - 2518 , - 2477 , - 756 , - 43 , - 338 , - 1641 , - 1264 , - 1895 , - 846 , - 805 , - 1772 , - 1059 , - 1354 , - 2657 , - 2280 , - 223 , - 1862 , - 1821 , - 100 , - 2075 , - 2370 , - 985 , - 608 , - 1239 , - 190 , - 149 , - 1116 , - 403 , - 698 , - 2001 , - 1624 , - 2255 , - 1206 , - 1165 , - 2132 , - 1419 , - 1714 , - 329 , - 2640 , - 583 , - 2222 , - 2181 , - 460 , - 2435 , - 42 , - 1345 , - 968 , - 1599 , - 550 , - 509 , - 1476 , - 763 , - 1058 , - 2361 , - 1984 , - 2615 , - 1566 , - 1525 , - 2492 , - 1779 , - 2074 , - 689 , - 312 , - 943 , - 2582 , - 2541 , - 820 , - 107 , - 402 , - 1705 , - 1328 , - 1959 , - 910 , - 869 , - 1836 , - 1123 , - 1418 , - 33 , - 2344 , - 287 , - 1926 , - 1885 , - 164 , - 2139 , - 2434 , - 1049 , - 672 , - 1303 , - 254 , - 213 , - 1180 , - 467 , - 762 , - 2065 , - 1688 , - 2319 , - 1270 , - 1229 , - 2196 , - 1483 , - 1778 , - 393 , - 16 , - 647 , - 2286 , - 2245 , - 524 , - 2499 , - 106 , - 1409 , - 1032 , - 1663 , - 614 , - 573 , - 1540 , - 827 , - 1122 , - 2425 , - 2048 , - 2679 , - 1630 , - 1589 , - 2556 , - 1843 , - 2138 , - 753 , - 376 , - 1007 , - 2646 , - 2605 , - 884 , - 171 , - 466 , - 1769 , - 1392 , - 2023 , - 974 , - 933 , - 1900 , - 1187 , - 1482 , - 97 , - 2408 , - 351 , - 1990 , - 1949 , - 228 , - 2203 , - 2498 , - 1113 , - 736 , - 1367 , - 318 , - 277 , - 1244 , - 531 , - 826 , - 2129 , - 1752 , - 2383 , - 1334 , - 1293 , - 2260 , - 1547 , - 1842 , - 457 , - 80 , - 711 , - 2350 , - 2309 , - 588 , - 2563 , - 170 , - 1473 , - 1096 , - 1727 , - 678 , - 637 , - 1604 , - 891 , - 1186 , - 2489 , - 2112 , - 55 , - 1694 , - 1653 , - 2620 , - 1907 , - 2202 , - 817 , - 440 , - 1071 , - 22 , - 2669 , - 948 , - 235 , - 530 , - 1833 , - 1456 , - 2087 , - 1038 , - 997 , - 1964 , - 1251 , - 1546 , - 161 , - 2472 , - 415 , - 2054 , - 2013 , - 292 , - 2267 , - 2562 , - 1177 , - 800 , - 1431 , - 382 , - 341 , - 1308 , - 595 , - 890 , - 2193 , - 1816 , - 2447 , - 1398 , - 1357 , - 2324 , - 1611 , - 1906 , - 521 , - 144 , - 775 , - 2414 , - 2373 , - 652 , - 2627 , - 234 , - 1537 , - 1160 , - 1791 , - 742 , - 701 , - 1668 , - 955 , - 1250 , - 2553 , - 2176 , - 119 , - 1758 , - 1717 , - 2684 , - 1971 , - 2266 , - 881 , - 504 , - 1135 , - 86 , - 45 , - 1012 , - 299 , - 594 , - 1897 , - 1520 , - 2151 , - 1102 , - 1061 , - 2028 , - 1315 , - 1610 , - 225 , - 2536 , - 479 , - 2118 , - 2077 , - 356 , - 2331 , - 2626 , - 1241 , - 864 , - 1495 , - 446 , - 405 , - 1372 , - 659 , - 954 , - 2257 , - 1880 , - 2511 , - 1462 , - 1421 , - 2388 , - 1675 , - 1970 , - 585 , - 208 , - 839 , - 2478 , - 2437 , - 716 , - 3 , - 298 , - 1601 , - 1224 , - 1855 , - 806 , - 765 , - 1732 , - 1019 , - 1314 , - 2617 , - 2240 , - 183 , - 1822 , - 1781 , - 60 , - 2035 , - 2330 , - 945 , - 568 , - 1199 , - 150 , - 109 , - 1076 , - 363 , - 658 , - 1961 , - 1584 , - 2215 , - 1166 , - 1125 , - 2092 , - 1379 , - 1674 , - 289 , - 2600 , - 543 , - 2182 , - 2141 , - 420 , - 2395 , - 2 , - 1305 , - 928 , - 1559 , - 510 , - 469 , - 1436 , - 723 , - 1018 , - 2321 , - 1944 , - 2575 , - 1526 , - 1485 , - 2452 , - 1739 , - 2034 , - 649 , - 272 , - 903 , - 2542 , - 2501 , - 780 , - 67 , - 362 , - 1665 , - 1288 , - 1919 , - 870 , - 829 , - 1796 , - 1083 , - 1378 , - 2681 , - 2304 , - 247 , - 1886 , - 1845 , - 124 , - 2099 , - 2394 , - 1009 , - 632 , - 1263 , - 214 , - 173 , - 1140 , - 427 , - 722 , - 2025 , - 1648 , - 2279 , - 1230 , - 1189 , - 2156 , - 1443 , - 1738 , - 353 , - 2664 , - 607 , - 2246 , - 2205 , - 484 , - 2459 , - 66 , - 1369 , - 992 , - 1623 , - 574 , - 533 , - 1500 , - 787 , - 1082 , - 2385 , - 2008 , - 2639 , - 1590 , - 1549 , - 2516 , - 1803 , - 2098 , - 713 , - 336 , - 967 , - 2606 , - 2565 , - 844 , - 131 , - 426 , - 1729 , - 1352 , - 1983 , - 934 , - 893 , - 1860 , - 1147 , - 1442 , - 57 , - 2368 , - 311 , - 1950 , - 1909 , - 188 , - 2163 , - 2458 , - 1073 , - 696 , - 1327 , - 278 , - 237 , - 1204 , - 491 , - 786 , - 2089 , - 1712 , - 2343 , - 1294 , - 1253 , - 2220 , - 1507 , - 1802 , - 417 , - 40 , - 671 , - 2310 , - 2269 , - 548 , - 2523 , - 130 , - 1433 , - 1056 , - 1687 , - 638 , - 597 , - 1564 , - 851 , - 1146 , - 2449 , - 2072 , - 15 , - 1654 , - 1613 , - 2580 , - 1867 , - 2162 , - 777 , - 400 , - 1031 , - 2670 , - 2629 , - 908 , - 195 , - 490 , - 1793 , - 1416 , - 2047 , - 998 , - 957 , - 1924 , - 1211 , - 1506 , - 121 , - 2432 , - 375 , - 2014 , - 1973 , - 252 , - 2227 , - 2522 , - 1137 , - 760 , - 1391 , - 342 , - 301 , - 1268 , - 555 , - 850 , - 2153 , - 1776 , - 2407 , - 1358 , - 1317 , - 2284 , - 1571 , - 1866 , - 481 , - 104 , - 735 , - 2374 , - 2333 , - 612 , - 2587 , - 194 , - 1497 , - 1120 , - 1751 , - 702 , - 661 , - 1628 , - 915 , - 1210 , - 2513 , - 2136 , - 79 , - 1718 , - 1677 , - 2644 , - 1931 , - 2226 , - 841 , - 464 , - 1095 , - 46 , - 5 , - 972 , - 259 , - 554 , - 1857 , - 1480 , - 2111 , - 1062 , - 1021 , - 1988 , - 1275 , - 1570 , - 185 , - 2496 , - 439 , - 2078 , - 2037 , - 316 , - 2291 , - 2586 , - 1201 , - 824 , - 1455 , - 406 , - 365 , - 1332 , - 619 , - 914 , - 2217 , - 1840 , - 2471 , - 1422 , - 1381 , - 2348 , - 1635 , - 1930 , - 545 , - 168 , - 799 , - 2438 , - 2397 , - 676 , - 2651 , - 258 , - 1561 , - 1184 , - 1815 , - 766 , - 725 , - 1692 , - 979 , - 1274 , - 2577 , - 2200 , - 143 , - 1782 , - 1741 , - 20 , - 1995 , - 2290 , - 905 , - 528 , - 1159 , - 110 , - 69 , - 1036 , - 323 , - 618 , - 1921 , - 1544 , - 2175 , - 1126 , - 1085 , - 2052 , - 1339 , - 1634 , - 249 , - 2560 , - 503 , - 2142 , - 2101 , - 380 , - 2355 , - 2650 , - 1265 , - 888 , - 1519 , - 470 , - 429 , - 1396 , - 683 , - 978 , - 2281 , - 1904 , - 2535 , - 1486 , - 1445 , - 2412 , - 1699 , - 1994 , - 609 , - 232 , - 863 , - 2502 , - 2461 , - 740 , - 27 , - 322 , - 1625 , - 1248 , - 1879 , - 830 , - 789 , - 1756 , - 1043 , - 1338 , - 2641 , - 2264 , - 207 , - 1846 , - 1805 , - 84 , - 2059 , - 2354 , - 969 , - 592 , - 1223 , - 174 , - 133 , - 1100 , - 387 , - 682 , - 1985 , - 1608 , - 2239 , - 1190 , - 1149 , - 2116 , - 1403 , - 1698 , - 313 , - 2624 , - 567 , - 2206 , - 2165 , - 444 , - 2419 , - 26 , - 1329 , - 952 , - 1583 , - 534 , - 493 , - 1460 , - 747 , - 1042 , - 2345 , - 1968 , - 2599 , - 1550 , - 1509 , - 2476 , - 1763 , - 2058 , - 673 , - 296 , - 927 , - 2566 , - 2525 , - 804 , - 91 , - 386 , - 1689 , - 1312 , - 1943 , - 894 , - 853 , - 1820 , - 1107 , - 1402 , - 17 , - 2328 , - 271 , - 1910 , - 1869 , - 148 , - 2123 , - 2418 , - 1033 , - 656 , - 1287 , - 238 , - 197 , - 1164 , - 451 , - 746 , - 2049 , - 1672 , - 2303 , - 1254 , - 1213 , - 2180 , - 1467 , - 1762 , - 377 , - 0 , - 2491 , - 2574 , - 249 , - 1020 , - 2135 , - 842 , - 2645 , - 2040 , - 1779 , - 1862 , - 2289 , - 308 , - 1423 , - 130 , - 1933 , - 1328 , - 1067 , - 1150 , - 1577 , - 2348 , - 711 , - 2170 , - 1221 , - 616 , - 355 , - 438 , - 865 , - 1636 , - 2751 , - 1458 , - 509 , - 2656 , - 2395 , - 2478 , - 153 , - 924 , - 2039 , - 746 , - 2549 , - 1944 , - 1683 , - 1766 , - 2193 , - 212 , - 1327 , - 34 , - 1837 , - 1232 , - 971 , - 1054 , - 1481 , - 2252 , - 615 , - 2074 , - 1125 , - 520 , - 259 , - 342 , - 769 , - 1540 , - 2655 , - 1362 , - 413 , - 2560 , - 2299 , - 2382 , - 57 , - 828 , - 1943 , - 650 , - 2453 , - 1848 , - 1587 , - 1670 , - 2097 , - 116 , - 1231 , - 2690 , - 1741 , - 1136 , - 875 , - 958 , - 1385 , - 2156 , - 519 , - 1978 , - 1029 , - 424 , - 163 , - 246 , - 673 , - 1444 , - 2559 , - 1266 , - 317 , - 2464 , - 2203 , - 2286 , - 2713 , - 732 , - 1847 , - 554 , - 2357 , - 1752 , - 1491 , - 1574 , - 2001 , - 20 , - 1135 , - 2594 , - 1645 , - 1040 , - 779 , - 862 , - 1289 , - 2060 , - 423 , - 1882 , - 933 , - 328 , - 67 , - 150 , - 577 , - 1348 , - 2463 , - 1170 , - 221 , - 2368 , - 2107 , - 2190 , - 2617 , - 636 , - 1751 , - 458 , - 2261 , - 1656 , - 1395 , - 1478 , - 1905 , - 2676 , - 1039 , - 2498 , - 1549 , - 944 , - 683 , - 766 , - 1193 , - 1964 , - 327 , - 1786 , - 837 , - 232 , - 2723 , - 54 , - 481 , - 1252 , - 2367 , - 1074 , - 125 , - 2272 , - 2011 , - 2094 , - 2521 , - 540 , - 1655 , - 362 , - 2165 , - 1560 , - 1299 , - 1382 , - 1809 , - 2580 , - 943 , - 2402 , - 1453 , - 848 , - 587 , - 670 , - 1097 , - 1868 , - 231 , - 1690 , - 741 , - 136 , - 2627 , - 2710 , - 385 , - 1156 , - 2271 , - 978 , - 29 , - 2176 , - 1915 , - 1998 , - 2425 , - 444 , - 1559 , - 266 , - 2069 , - 1464 , - 1203 , - 1286 , - 1713 , - 2484 , - 847 , - 2306 , - 1357 , - 752 , - 491 , - 574 , - 1001 , - 1772 , - 135 , - 1594 , - 645 , - 40 , - 2531 , - 2614 , - 289 , - 1060 , - 2175 , - 882 , - 2685 , - 2080 , - 1819 , - 1902 , - 2329 , - 348 , - 1463 , - 170 , - 1973 , - 1368 , - 1107 , - 1190 , - 1617 , - 2388 , - 751 , - 2210 , - 1261 , - 656 , - 395 , - 478 , - 905 , - 1676 , - 39 , - 1498 , - 549 , - 2696 , - 2435 , - 2518 , - 193 , - 964 , - 2079 , - 786 , - 2589 , - 1984 , - 1723 , - 1806 , - 2233 , - 252 , - 1367 , - 74 , - 1877 , - 1272 , - 1011 , - 1094 , - 1521 , - 2292 , - 655 , - 2114 , - 1165 , - 560 , - 299 , - 382 , - 809 , - 1580 , - 2695 , - 1402 , - 453 , - 2600 , - 2339 , - 2422 , - 97 , - 868 , - 1983 , - 690 , - 2493 , - 1888 , - 1627 , - 1710 , - 2137 , - 156 , - 1271 , - 2730 , - 1781 , - 1176 , - 915 , - 998 , - 1425 , - 2196 , - 559 , - 2018 , - 1069 , - 464 , - 203 , - 286 , - 713 , - 1484 , - 2599 , - 1306 , - 357 , - 2504 , - 2243 , - 2326 , - 1 , - 772 , - 1887 , - 594 , - 2397 , - 1792 , - 1531 , - 1614 , - 2041 , - 60 , - 1175 , - 2634 , - 1685 , - 1080 , - 819 , - 902 , - 1329 , - 2100 , - 463 , - 1922 , - 973 , - 368 , - 107 , - 190 , - 617 , - 1388 , - 2503 , - 1210 , - 261 , - 2408 , - 2147 , - 2230 , - 2657 , - 676 , - 1791 , - 498 , - 2301 , - 1696 , - 1435 , - 1518 , - 1945 , - 2716 , - 1079 , - 2538 , - 1589 , - 984 , - 723 , - 806 , - 1233 , - 2004 , - 367 , - 1826 , - 877 , - 272 , - 11 , - 94 , - 521 , - 1292 , - 2407 , - 1114 , - 165 , - 2312 , - 2051 , - 2134 , - 2561 , - 580 , - 1695 , - 402 , - 2205 , - 1600 , - 1339 , - 1422 , - 1849 , - 2620 , - 983 , - 2442 , - 1493 , - 888 , - 627 , - 710 , - 1137 , - 1908 , - 271 , - 1730 , - 781 , - 176 , - 2667 , - 2750 , - 425 , - 1196 , - 2311 , - 1018 , - 69 , - 2216 , - 1955 , - 2038 , - 2465 , - 484 , - 1599 , - 306 , - 2109 , - 1504 , - 1243 , - 1326 , - 1753 , - 2524 , - 887 , - 2346 , - 1397 , - 792 , - 531 , - 614 , - 1041 , - 1812 , - 175 , - 1634 , - 685 , - 80 , - 2571 , - 2654 , - 329 , - 1100 , - 2215 , - 922 , - 2725 , - 2120 , - 1859 , - 1942 , - 2369 , - 388 , - 1503 , - 210 , - 2013 , - 1408 , - 1147 , - 1230 , - 1657 , - 2428 , - 791 , - 2250 , - 1301 , - 696 , - 435 , - 518 , - 945 , - 1716 , - 79 , - 1538 , - 589 , - 2736 , - 2475 , - 2558 , - 233 , - 1004 , - 2119 , - 826 , - 2629 , - 2024 , - 1763 , - 1846 , - 2273 , - 292 , - 1407 , - 114 , - 1917 , - 1312 , - 1051 , - 1134 , - 1561 , - 2332 , - 695 , - 2154 , - 1205 , - 600 , - 339 , - 422 , - 849 , - 1620 , - 2735 , - 1442 , - 493 , - 2640 , - 2379 , - 2462 , - 137 , - 908 , - 2023 , - 730 , - 2533 , - 1928 , - 1667 , - 1750 , - 2177 , - 196 , - 1311 , - 18 , - 1821 , - 1216 , - 955 , - 1038 , - 1465 , - 2236 , - 599 , - 2058 , - 1109 , - 504 , - 243 , - 326 , - 753 , - 1524 , - 2639 , - 1346 , - 397 , - 2544 , - 2283 , - 2366 , - 41 , - 812 , - 1927 , - 634 , - 2437 , - 1832 , - 1571 , - 1654 , - 2081 , - 100 , - 1215 , - 2674 , - 1725 , - 1120 , - 859 , - 942 , - 1369 , - 2140 , - 503 , - 1962 , - 1013 , - 408 , - 147 , - 230 , - 657 , - 1428 , - 2543 , - 1250 , - 301 , - 2448 , - 2187 , - 2270 , - 2697 , - 716 , - 1831 , - 538 , - 2341 , - 1736 , - 1475 , - 1558 , - 1985 , - 4 , - 1119 , - 2578 , - 1629 , - 1024 , - 763 , - 846 , - 1273 , - 2044 , - 407 , - 1866 , - 917 , - 312 , - 51 , - 134 , - 561 , - 1332 , - 2447 , - 1154 , - 205 , - 2352 , - 2091 , - 2174 , - 2601 , - 620 , - 1735 , - 442 , - 2245 , - 1640 , - 1379 , - 1462 , - 1889 , - 2660 , - 1023 , - 2482 , - 1533 , - 928 , - 667 , - 750 , - 1177 , - 1948 , - 311 , - 1770 , - 821 , - 216 , - 2707 , - 38 , - 465 , - 1236 , - 2351 , - 1058 , - 109 , - 2256 , - 1995 , - 2078 , - 2505 , - 524 , - 1639 , - 346 , - 2149 , - 1544 , - 1283 , - 1366 , - 1793 , - 2564 , - 927 , - 2386 , - 1437 , - 832 , - 571 , - 654 , - 1081 , - 1852 , - 215 , - 1674 , - 725 , - 120 , - 2611 , - 2694 , - 369 , - 1140 , - 2255 , - 962 , - 13 , - 2160 , - 1899 , - 1982 , - 2409 , - 428 , - 1543 , - 250 , - 2053 , - 1448 , - 1187 , - 1270 , - 1697 , - 2468 , - 831 , - 2290 , - 1341 , - 736 , - 475 , - 558 , - 985 , - 1756 , - 119 , - 1578 , - 629 , - 24 , - 2515 , - 2598 , - 273 , - 1044 , - 2159 , - 866 , - 2669 , - 2064 , - 1803 , - 1886 , - 2313 , - 332 , - 1447 , - 154 , - 1957 , - 1352 , - 1091 , - 1174 , - 1601 , - 2372 , - 735 , - 2194 , - 1245 , - 640 , - 379 , - 462 , - 889 , - 1660 , - 23 , - 1482 , - 533 , - 2680 , - 2419 , - 2502 , - 177 , - 948 , - 2063 , - 770 , - 2573 , - 1968 , - 1707 , - 1790 , - 2217 , - 236 , - 1351 , - 58 , - 1861 , - 1256 , - 995 , - 1078 , - 1505 , - 2276 , - 639 , - 2098 , - 1149 , - 544 , - 283 , - 366 , - 793 , - 1564 , - 2679 , - 1386 , - 437 , - 2584 , - 2323 , - 2406 , - 81 , - 852 , - 1967 , - 674 , - 2477 , - 1872 , - 1611 , - 1694 , - 2121 , - 140 , - 1255 , - 2714 , - 1765 , - 1160 , - 899 , - 982 , - 1409 , - 2180 , - 543 , - 2002 , - 1053 , - 448 , - 187 , - 270 , - 697 , - 1468 , - 2583 , - 1290 , - 341 , - 2488 , - 2227 , - 2310 , - 2737 , - 756 , - 1871 , - 578 , - 2381 , - 1776 , - 1515 , - 1598 , - 2025 , - 44 , - 1159 , - 2618 , - 1669 , - 1064 , - 803 , - 886 , - 1313 , - 2084 , - 447 , - 1906 , - 957 , - 352 , - 91 , - 174 , - 601 , - 1372 , - 2487 , - 1194 , - 245 , - 2392 , - 2131 , - 2214 , - 2641 , - 660 , - 1775 , - 482 , - 2285 , - 1680 , - 1419 , - 1502 , - 1929 , - 2700 , - 1063 , - 2522 , - 1573 , - 968 , - 707 , - 790 , - 1217 , - 1988 , - 351 , - 1810 , - 861 , - 256 , - 2747 , - 78 , - 505 , - 1276 , - 2391 , - 1098 , - 149 , - 2296 , - 2035 , - 2118 , - 2545 , - 564 , - 1679 , - 386 , - 2189 , - 1584 , - 1323 , - 1406 , - 1833 , - 2604 , - 967 , - 2426 , - 1477 , - 872 , - 611 , - 694 , - 1121 , - 1892 , - 255 , - 1714 , - 765 , - 160 , - 2651 , - 2734 , - 409 , - 1180 , - 2295 , - 1002 , - 53 , - 2200 , - 1939 , - 2022 , - 2449 , - 468 , - 1583 , - 290 , - 2093 , - 1488 , - 1227 , - 1310 , - 1737 , - 2508 , - 871 , - 2330 , - 1381 , - 776 , - 515 , - 598 , - 1025 , - 1796 , - 159 , - 1618 , - 669 , - 64 , - 2555 , - 2638 , - 313 , - 1084 , - 2199 , - 906 , - 2709 , - 2104 , - 1843 , - 1926 , - 2353 , - 372 , - 1487 , - 194 , - 1997 , - 1392 , - 1131 , - 1214 , - 1641 , - 2412 , - 775 , - 2234 , - 1285 , - 680 , - 419 , - 502 , - 929 , - 1700 , - 63 , - 1522 , - 573 , - 2720 , - 2459 , - 2542 , - 217 , - 988 , - 2103 , - 810 , - 2613 , - 2008 , - 1747 , - 1830 , - 2257 , - 276 , - 1391 , - 98 , - 1901 , - 1296 , - 1035 , - 1118 , - 1545 , - 2316 , - 679 , - 2138 , - 1189 , - 584 , - 323 , - 406 , - 833 , - 1604 , - 2719 , - 1426 , - 477 , - 2624 , - 2363 , - 2446 , - 121 , - 892 , - 2007 , - 714 , - 2517 , - 1912 , - 1651 , - 1734 , - 2161 , - 180 , - 1295 , - 2 , - 1805 , - 1200 , - 939 , - 1022 , - 1449 , - 2220 , - 583 , - 2042 , - 1093 , - 488 , - 227 , - 310 , - 737 , - 1508 , - 2623 , - 1330 , - 381 , - 2528 , - 2267 , - 2350 , - 25 , - 796 , - 1911 , - 618 , - 2421 , - 1816 , - 1555 , - 1638 , - 2065 , - 84 , - 1199 , - 2658 , - 1709 , - 1104 , - 843 , - 926 , - 1353 , - 2124 , - 487 , - 1946 , - 997 , - 392 , - 131 , - 214 , - 641 , - 1412 , - 2527 , - 1234 , - 285 , - 2432 , - 2171 , - 2254 , - 2681 , - 700 , - 1815 , - 522 , - 2325 , - 1720 , - 1459 , - 1542 , - 1969 , - 2740 , - 1103 , - 2562 , - 1613 , - 1008 , - 747 , - 830 , - 1257 , - 2028 , - 391 , - 1850 , - 901 , - 296 , - 35 , - 118 , - 545 , - 1316 , - 2431 , - 1138 , - 189 , - 2336 , - 2075 , - 2158 , - 2585 , - 604 , - 1719 , - 426 , - 2229 , - 1624 , - 1363 , - 1446 , - 1873 , - 2644 , - 1007 , - 2466 , - 1517 , - 912 , - 651 , - 734 , - 1161 , - 1932 , - 295 , - 1754 , - 805 , - 200 , - 2691 , - 22 , - 449 , - 1220 , - 2335 , - 1042 , - 93 , - 2240 , - 1979 , - 2062 , - 2489 , - 508 , - 1623 , - 330 , - 2133 , - 1528 , - 1267 , - 1350 , - 1777 , - 2548 , - 911 , - 2370 , - 1421 , - 816 , - 555 , - 638 , - 1065 , - 1836 , - 199 , - 1658 , - 709 , - 104 , - 2595 , - 2678 , - 353 , - 1124 , - 2239 , - 946 , - 2749 , - 2144 , - 1883 , - 1966 , - 2393 , - 412 , - 1527 , - 234 , - 2037 , - 1432 , - 1171 , - 1254 , - 1681 , - 2452 , - 815 , - 2274 , - 1325 , - 720 , - 459 , - 542 , - 969 , - 1740 , - 103 , - 1562 , - 613 , - 8 , - 2499 , - 2582 , - 257 , - 1028 , - 2143 , - 850 , - 2653 , - 2048 , - 1787 , - 1870 , - 2297 , - 316 , - 1431 , - 138 , - 1941 , - 1336 , - 1075 , - 1158 , - 1585 , - 2356 , - 719 , - 2178 , - 1229 , - 624 , - 363 , - 446 , - 873 , - 1644 , - 7 , - 1466 , - 517 , - 2664 , - 2403 , - 2486 , - 161 , - 932 , - 2047 , - 754 , - 2557 , - 1952 , - 1691 , - 1774 , - 2201 , - 220 , - 1335 , - 42 , - 1845 , - 1240 , - 979 , - 1062 , - 1489 , - 2260 , - 623 , - 2082 , - 1133 , - 528 , - 267 , - 350 , - 777 , - 1548 , - 2663 , - 1370 , - 421 , - 2568 , - 2307 , - 2390 , - 65 , - 836 , - 1951 , - 658 , - 2461 , - 1856 , - 1595 , - 1678 , - 2105 , - 124 , - 1239 , - 2698 , - 1749 , - 1144 , - 883 , - 966 , - 1393 , - 2164 , - 527 , - 1986 , - 1037 , - 432 , - 171 , - 254 , - 681 , - 1452 , - 2567 , - 1274 , - 325 , - 2472 , - 2211 , - 2294 , - 2721 , - 740 , - 1855 , - 562 , - 2365 , - 1760 , - 1499 , - 1582 , - 2009 , - 28 , - 1143 , - 2602 , - 1653 , - 1048 , - 787 , - 870 , - 1297 , - 2068 , - 431 , - 1890 , - 941 , - 336 , - 75 , - 158 , - 585 , - 1356 , - 2471 , - 1178 , - 229 , - 2376 , - 2115 , - 2198 , - 2625 , - 644 , - 1759 , - 466 , - 2269 , - 1664 , - 1403 , - 1486 , - 1913 , - 2684 , - 1047 , - 2506 , - 1557 , - 952 , - 691 , - 774 , - 1201 , - 1972 , - 335 , - 1794 , - 845 , - 240 , - 2731 , - 62 , - 489 , - 1260 , - 2375 , - 1082 , - 133 , - 2280 , - 2019 , - 2102 , - 2529 , - 548 , - 1663 , - 370 , - 2173 , - 1568 , - 1307 , - 1390 , - 1817 , - 2588 , - 951 , - 2410 , - 1461 , - 856 , - 595 , - 678 , - 1105 , - 1876 , - 239 , - 1698 , - 749 , - 144 , - 2635 , - 2718 , - 393 , - 1164 , - 2279 , - 986 , - 37 , - 2184 , - 1923 , - 2006 , - 2433 , - 452 , - 1567 , - 274 , - 2077 , - 1472 , - 1211 , - 1294 , - 1721 , - 2492 , - 855 , - 2314 , - 1365 , - 760 , - 499 , - 582 , - 1009 , - 1780 , - 143 , - 1602 , - 653 , - 48 , - 2539 , - 2622 , - 297 , - 1068 , - 2183 , - 890 , - 2693 , - 2088 , - 1827 , - 1910 , - 2337 , - 356 , - 1471 , - 178 , - 1981 , - 1376 , - 1115 , - 1198 , - 1625 , - 2396 , - 759 , - 2218 , - 1269 , - 664 , - 403 , - 486 , - 913 , - 1684 , - 47 , - 1506 , - 557 , - 2704 , - 2443 , - 2526 , - 201 , - 972 , - 2087 , - 794 , - 2597 , - 1992 , - 1731 , - 1814 , - 2241 , - 260 , - 1375 , - 82 , - 1885 , - 1280 , - 1019 , - 1102 , - 1529 , - 2300 , - 663 , - 2122 , - 1173 , - 568 , - 307 , - 390 , - 817 , - 1588 , - 2703 , - 1410 , - 461 , - 2608 , - 2347 , - 2430 , - 105 , - 876 , - 1991 , - 698 , - 2501 , - 1896 , - 1635 , - 1718 , - 2145 , - 164 , - 1279 , - 2738 , - 1789 , - 1184 , - 923 , - 1006 , - 1433 , - 2204 , - 567 , - 2026 , - 1077 , - 472 , - 211 , - 294 , - 721 , - 1492 , - 2607 , - 1314 , - 365 , - 2512 , - 2251 , - 2334 , - 9 , - 780 , - 1895 , - 602 , - 2405 , - 1800 , - 1539 , - 1622 , - 2049 , - 68 , - 1183 , - 2642 , - 1693 , - 1088 , - 827 , - 910 , - 1337 , - 2108 , - 471 , - 1930 , - 981 , - 376 , - 115 , - 198 , - 625 , - 1396 , - 2511 , - 1218 , - 269 , - 2416 , - 2155 , - 2238 , - 2665 , - 684 , - 1799 , - 506 , - 2309 , - 1704 , - 1443 , - 1526 , - 1953 , - 2724 , - 1087 , - 2546 , - 1597 , - 992 , - 731 , - 814 , - 1241 , - 2012 , - 375 , - 1834 , - 885 , - 280 , - 19 , - 102 , - 529 , - 1300 , - 2415 , - 1122 , - 173 , - 2320 , - 2059 , - 2142 , - 2569 , - 588 , - 1703 , - 410 , - 2213 , - 1608 , - 1347 , - 1430 , - 1857 , - 2628 , - 991 , - 2450 , - 1501 , - 896 , - 635 , - 718 , - 1145 , - 1916 , - 279 , - 1738 , - 789 , - 184 , - 2675 , - 6 , - 433 , - 1204 , - 2319 , - 1026 , - 77 , - 2224 , - 1963 , - 2046 , - 2473 , - 492 , - 1607 , - 314 , - 2117 , - 1512 , - 1251 , - 1334 , - 1761 , - 2532 , - 895 , - 2354 , - 1405 , - 800 , - 539 , - 622 , - 1049 , - 1820 , - 183 , - 1642 , - 693 , - 88 , - 2579 , - 2662 , - 337 , - 1108 , - 2223 , - 930 , - 2733 , - 2128 , - 1867 , - 1950 , - 2377 , - 396 , - 1511 , - 218 , - 2021 , - 1416 , - 1155 , - 1238 , - 1665 , - 2436 , - 799 , - 2258 , - 1309 , - 704 , - 443 , - 526 , - 953 , - 1724 , - 87 , - 1546 , - 597 , - 2744 , - 2483 , - 2566 , - 241 , - 1012 , - 2127 , - 834 , - 2637 , - 2032 , - 1771 , - 1854 , - 2281 , - 300 , - 1415 , - 122 , - 1925 , - 1320 , - 1059 , - 1142 , - 1569 , - 2340 , - 703 , - 2162 , - 1213 , - 608 , - 347 , - 430 , - 857 , - 1628 , - 2743 , - 1450 , - 501 , - 2648 , - 2387 , - 2470 , - 145 , - 916 , - 2031 , - 738 , - 2541 , - 1936 , - 1675 , - 1758 , - 2185 , - 204 , - 1319 , - 26 , - 1829 , - 1224 , - 963 , - 1046 , - 1473 , - 2244 , - 607 , - 2066 , - 1117 , - 512 , - 251 , - 334 , - 761 , - 1532 , - 2647 , - 1354 , - 405 , - 2552 , - 2291 , - 2374 , - 49 , - 820 , - 1935 , - 642 , - 2445 , - 1840 , - 1579 , - 1662 , - 2089 , - 108 , - 1223 , - 2682 , - 1733 , - 1128 , - 867 , - 950 , - 1377 , - 2148 , - 511 , - 1970 , - 1021 , - 416 , - 155 , - 238 , - 665 , - 1436 , - 2551 , - 1258 , - 309 , - 2456 , - 2195 , - 2278 , - 2705 , - 724 , - 1839 , - 546 , - 2349 , - 1744 , - 1483 , - 1566 , - 1993 , - 12 , - 1127 , - 2586 , - 1637 , - 1032 , - 771 , - 854 , - 1281 , - 2052 , - 415 , - 1874 , - 925 , - 320 , - 59 , - 142 , - 569 , - 1340 , - 2455 , - 1162 , - 213 , - 2360 , - 2099 , - 2182 , - 2609 , - 628 , - 1743 , - 450 , - 2253 , - 1648 , - 1387 , - 1470 , - 1897 , - 2668 , - 1031 , - 2490 , - 1541 , - 936 , - 675 , - 758 , - 1185 , - 1956 , - 319 , - 1778 , - 829 , - 224 , - 2715 , - 46 , - 473 , - 1244 , - 2359 , - 1066 , - 117 , - 2264 , - 2003 , - 2086 , - 2513 , - 532 , - 1647 , - 354 , - 2157 , - 1552 , - 1291 , - 1374 , - 1801 , - 2572 , - 935 , - 2394 , - 1445 , - 840 , - 579 , - 662 , - 1089 , - 1860 , - 223 , - 1682 , - 733 , - 128 , - 2619 , - 2702 , - 377 , - 1148 , - 2263 , - 970 , - 21 , - 2168 , - 1907 , - 1990 , - 2417 , - 436 , - 1551 , - 258 , - 2061 , - 1456 , - 1195 , - 1278 , - 1705 , - 2476 , - 839 , - 2298 , - 1349 , - 744 , - 483 , - 566 , - 993 , - 1764 , - 127 , - 1586 , - 637 , - 32 , - 2523 , - 2606 , - 281 , - 1052 , - 2167 , - 874 , - 2677 , - 2072 , - 1811 , - 1894 , - 2321 , - 340 , - 1455 , - 162 , - 1965 , - 1360 , - 1099 , - 1182 , - 1609 , - 2380 , - 743 , - 2202 , - 1253 , - 648 , - 387 , - 470 , - 897 , - 1668 , - 31 , - 1490 , - 541 , - 2688 , - 2427 , - 2510 , - 185 , - 956 , - 2071 , - 778 , - 2581 , - 1976 , - 1715 , - 1798 , - 2225 , - 244 , - 1359 , - 66 , - 1869 , - 1264 , - 1003 , - 1086 , - 1513 , - 2284 , - 647 , - 2106 , - 1157 , - 552 , - 291 , - 374 , - 801 , - 1572 , - 2687 , - 1394 , - 445 , - 2592 , - 2331 , - 2414 , - 89 , - 860 , - 1975 , - 682 , - 2485 , - 1880 , - 1619 , - 1702 , - 2129 , - 148 , - 1263 , - 2722 , - 1773 , - 1168 , - 907 , - 990 , - 1417 , - 2188 , - 551 , - 2010 , - 1061 , - 456 , - 195 , - 278 , - 705 , - 1476 , - 2591 , - 1298 , - 349 , - 2496 , - 2235 , - 2318 , - 2745 , - 764 , - 1879 , - 586 , - 2389 , - 1784 , - 1523 , - 1606 , - 2033 , - 52 , - 1167 , - 2626 , - 1677 , - 1072 , - 811 , - 894 , - 1321 , - 2092 , - 455 , - 1914 , - 965 , - 360 , - 99 , - 182 , - 609 , - 1380 , - 2495 , - 1202 , - 253 , - 2400 , - 2139 , - 2222 , - 2649 , - 668 , - 1783 , - 490 , - 2293 , - 1688 , - 1427 , - 1510 , - 1937 , - 2708 , - 1071 , - 2530 , - 1581 , - 976 , - 715 , - 798 , - 1225 , - 1996 , - 359 , - 1818 , - 869 , - 264 , - 3 , - 86 , - 513 , - 1284 , - 2399 , - 1106 , - 157 , - 2304 , - 2043 , - 2126 , - 2553 , - 572 , - 1687 , - 394 , - 2197 , - 1592 , - 1331 , - 1414 , - 1841 , - 2612 , - 975 , - 2434 , - 1485 , - 880 , - 619 , - 702 , - 1129 , - 1900 , - 263 , - 1722 , - 773 , - 168 , - 2659 , - 2742 , - 417 , - 1188 , - 2303 , - 1010 , - 61 , - 2208 , - 1947 , - 2030 , - 2457 , - 476 , - 1591 , - 298 , - 2101 , - 1496 , - 1235 , - 1318 , - 1745 , - 2516 , - 879 , - 2338 , - 1389 , - 784 , - 523 , - 606 , - 1033 , - 1804 , - 167 , - 1626 , - 677 , - 72 , - 2563 , - 2646 , - 321 , - 1092 , - 2207 , - 914 , - 2717 , - 2112 , - 1851 , - 1934 , - 2361 , - 380 , - 1495 , - 202 , - 2005 , - 1400 , - 1139 , - 1222 , - 1649 , - 2420 , - 783 , - 2242 , - 1293 , - 688 , - 427 , - 510 , - 937 , - 1708 , - 71 , - 1530 , - 581 , - 2728 , - 2467 , - 2550 , - 225 , - 996 , - 2111 , - 818 , - 2621 , - 2016 , - 1755 , - 1838 , - 2265 , - 284 , - 1399 , - 106 , - 1909 , - 1304 , - 1043 , - 1126 , - 1553 , - 2324 , - 687 , - 2146 , - 1197 , - 592 , - 331 , - 414 , - 841 , - 1612 , - 2727 , - 1434 , - 485 , - 2632 , - 2371 , - 2454 , - 129 , - 900 , - 2015 , - 722 , - 2525 , - 1920 , - 1659 , - 1742 , - 2169 , - 188 , - 1303 , - 10 , - 1813 , - 1208 , - 947 , - 1030 , - 1457 , - 2228 , - 591 , - 2050 , - 1101 , - 496 , - 235 , - 318 , - 745 , - 1516 , - 2631 , - 1338 , - 389 , - 2536 , - 2275 , - 2358 , - 33 , - 804 , - 1919 , - 626 , - 2429 , - 1824 , - 1563 , - 1646 , - 2073 , - 92 , - 1207 , - 2666 , - 1717 , - 1112 , - 851 , - 934 , - 1361 , - 2132 , - 495 , - 1954 , - 1005 , - 400 , - 139 , - 222 , - 649 , - 1420 , - 2535 , - 1242 , - 293 , - 2440 , - 2179 , - 2262 , - 2689 , - 708 , - 1823 , - 530 , - 2333 , - 1728 , - 1467 , - 1550 , - 1977 , - 2748 , - 1111 , - 2570 , - 1621 , - 1016 , - 755 , - 838 , - 1265 , - 2036 , - 399 , - 1858 , - 909 , - 304 , - 43 , - 126 , - 553 , - 1324 , - 2439 , - 1146 , - 197 , - 2344 , - 2083 , - 2166 , - 2593 , - 612 , - 1727 , - 434 , - 2237 , - 1632 , - 1371 , - 1454 , - 1881 , - 2652 , - 1015 , - 2474 , - 1525 , - 920 , - 659 , - 742 , - 1169 , - 1940 , - 303 , - 1762 , - 813 , - 208 , - 2699 , - 30 , - 457 , - 1228 , - 2343 , - 1050 , - 101 , - 2248 , - 1987 , - 2070 , - 2497 , - 516 , - 1631 , - 338 , - 2141 , - 1536 , - 1275 , - 1358 , - 1785 , - 2556 , - 919 , - 2378 , - 1429 , - 824 , - 563 , - 646 , - 1073 , - 1844 , - 207 , - 1666 , - 717 , - 112 , - 2603 , - 2686 , - 361 , - 1132 , - 2247 , - 954 , - 5 , - 2152 , - 1891 , - 1974 , - 2401 , - 420 , - 1535 , - 242 , - 2045 , - 1440 , - 1179 , - 1262 , - 1689 , - 2460 , - 823 , - 2282 , - 1333 , - 728 , - 467 , - 550 , - 977 , - 1748 , - 111 , - 1570 , - 621 , - 16 , - 2507 , - 2590 , - 265 , - 1036 , - 2151 , - 858 , - 2661 , - 2056 , - 1795 , - 1878 , - 2305 , - 324 , - 1439 , - 146 , - 1949 , - 1344 , - 1083 , - 1166 , - 1593 , - 2364 , - 727 , - 2186 , - 1237 , - 632 , - 371 , - 454 , - 881 , - 1652 , - 15 , - 1474 , - 525 , - 2672 , - 2411 , - 2494 , - 169 , - 940 , - 2055 , - 762 , - 2565 , - 1960 , - 1699 , - 1782 , - 2209 , - 228 , - 1343 , - 50 , - 1853 , - 1248 , - 987 , - 1070 , - 1497 , - 2268 , - 631 , - 2090 , - 1141 , - 536 , - 275 , - 358 , - 785 , - 1556 , - 2671 , - 1378 , - 429 , - 2576 , - 2315 , - 2398 , - 73 , - 844 , - 1959 , - 666 , - 2469 , - 1864 , - 1603 , - 1686 , - 2113 , - 132 , - 1247 , - 2706 , - 1757 , - 1152 , - 891 , - 974 , - 1401 , - 2172 , - 535 , - 1994 , - 1045 , - 440 , - 179 , - 262 , - 689 , - 1460 , - 2575 , - 1282 , - 333 , - 2480 , - 2219 , - 2302 , - 2729 , - 748 , - 1863 , - 570 , - 2373 , - 1768 , - 1507 , - 1590 , - 2017 , - 36 , - 1151 , - 2610 , - 1661 , - 1056 , - 795 , - 878 , - 1305 , - 2076 , - 439 , - 1898 , - 949 , - 344 , - 83 , - 166 , - 593 , - 1364 , - 2479 , - 1186 , - 237 , - 2384 , - 2123 , - 2206 , - 2633 , - 652 , - 1767 , - 474 , - 2277 , - 1672 , - 1411 , - 1494 , - 1921 , - 2692 , - 1055 , - 2514 , - 1565 , - 960 , - 699 , - 782 , - 1209 , - 1980 , - 343 , - 1802 , - 853 , - 248 , - 2739 , - 70 , - 497 , - 1268 , - 2383 , - 1090 , - 141 , - 2288 , - 2027 , - 2110 , - 2537 , - 556 , - 1671 , - 378 , - 2181 , - 1576 , - 1315 , - 1398 , - 1825 , - 2596 , - 959 , - 2418 , - 1469 , - 864 , - 603 , - 686 , - 1113 , - 1884 , - 247 , - 1706 , - 757 , - 152 , - 2643 , - 2726 , - 401 , - 1172 , - 2287 , - 994 , - 45 , - 2192 , - 1931 , - 2014 , - 2441 , - 460 , - 1575 , - 282 , - 2085 , - 1480 , - 1219 , - 1302 , - 1729 , - 2500 , - 863 , - 2322 , - 1373 , - 768 , - 507 , - 590 , - 1017 , - 1788 , - 151 , - 1610 , - 661 , - 56 , - 2547 , - 2630 , - 305 , - 1076 , - 2191 , - 898 , - 2701 , - 2096 , - 1835 , - 1918 , - 2345 , - 364 , - 1479 , - 186 , - 1989 , - 1384 , - 1123 , - 1206 , - 1633 , - 2404 , - 767 , - 2226 , - 1277 , - 672 , - 411 , - 494 , - 921 , - 1692 , - 55 , - 1514 , - 565 , - 2712 , - 2451 , - 2534 , - 209 , - 980 , - 2095 , - 802 , - 2605 , - 2000 , - 1739 , - 1822 , - 2249 , - 268 , - 1383 , - 90 , - 1893 , - 1288 , - 1027 , - 1110 , - 1537 , - 2308 , - 671 , - 2130 , - 1181 , - 576 , - 315 , - 398 , - 825 , - 1596 , - 2711 , - 1418 , - 469 , - 2616 , - 2355 , - 2438 , - 113 , - 884 , - 1999 , - 706 , - 2509 , - 1904 , - 1643 , - 1726 , - 2153 , - 172 , - 1287 , - 2746 , - 1797 , - 1192 , - 931 , - 1014 , - 1441 , - 2212 , - 575 , - 2034 , - 1085 , - 480 , - 219 , - 302 , - 729 , - 1500 , - 2615 , - 1322 , - 373 , - 2520 , - 2259 , - 2342 , - 17 , - 788 , - 1903 , - 610 , - 2413 , - 1808 , - 1547 , - 1630 , - 2057 , - 76 , - 1191 , - 2650 , - 1701 , - 1096 , - 835 , - 918 , - 1345 , - 2116 , - 479 , - 1938 , - 989 , - 384 , - 123 , - 206 , - 633 , - 1404 , - 2519 , - 1226 , - 277 , - 2424 , - 2163 , - 2246 , - 2673 , - 692 , - 1807 , - 514 , - 2317 , - 1712 , - 1451 , - 1534 , - 1961 , - 2732 , - 1095 , - 2554 , - 1605 , - 1000 , - 739 , - 822 , - 1249 , - 2020 , - 383 , - 1842 , - 893 , - 288 , - 27 , - 110 , - 537 , - 1308 , - 2423 , - 1130 , - 181 , - 2328 , - 2067 , - 2150 , - 2577 , - 596 , - 1711 , - 418 , - 2221 , - 1616 , - 1355 , - 1438 , - 1865 , - 2636 , - 999 , - 2458 , - 1509 , - 904 , - 643 , - 726 , - 1153 , - 1924 , - 287 , - 1746 , - 797 , - 192 , - 2683 , - 14 , - 441 , - 1212 , - 2327 , - 1034 , - 85 , - 2232 , - 1971 , - 2054 , - 2481 , - 500 , - 1615 , - 322 , - 2125 , - 1520 , - 1259 , - 1342 , - 1769 , - 2540 , - 903 , - 2362 , - 1413 , - 808 , - 547 , - 630 , - 1057 , - 1828 , - 191 , - 1650 , - 701 , - 96 , - 2587 , - 2670 , - 345 , - 1116 , - 2231 , - 938 , - 2741 , - 2136 , - 1875 , - 1958 , - 2385 , - 404 , - 1519 , - 226 , - 2029 , - 1424 , - 1163 , - 1246 , - 1673 , - 2444 , - 807 , - 2266 , - 1317 , - 712 , - 451 , - 534 , - 961 , - 1732 , - 95 , - 1554 , - 605 , - 0 , - 1979 , - 2022 , - 129 , - 1932 , - 1799 , - 2546 , - 1357 , - 1048 , - 1619 , - 254 , - 2585 , - 164 , - 1439 , - 778 , - 997 , - 2096 , - 1259 , - 1302 , - 2225 , - 1212 , - 1079 , - 1826 , - 637 , - 328 , - 899 , - 2350 , - 1865 , - 2260 , - 719 , - 58 , - 277 , - 1376 , - 539 , - 582 , - 1505 , - 492 , - 359 , - 1106 , - 2733 , - 2424 , - 179 , - 1630 , - 1145 , - 1540 , - 2815 , - 2154 , - 2373 , - 656 , - 2635 , - 2678 , - 785 , - 2588 , - 2455 , - 386 , - 2013 , - 1704 , - 2275 , - 910 , - 425 , - 820 , - 2095 , - 1434 , - 1653 , - 2752 , - 1915 , - 1958 , - 65 , - 1868 , - 1735 , - 2482 , - 1293 , - 984 , - 1555 , - 190 , - 2521 , - 100 , - 1375 , - 714 , - 933 , - 2032 , - 1195 , - 1238 , - 2161 , - 1148 , - 1015 , - 1762 , - 573 , - 264 , - 835 , - 2286 , - 1801 , - 2196 , - 655 , - 2810 , - 213 , - 1312 , - 475 , - 518 , - 1441 , - 428 , - 295 , - 1042 , - 2669 , - 2360 , - 115 , - 1566 , - 1081 , - 1476 , - 2751 , - 2090 , - 2309 , - 592 , - 2571 , - 2614 , - 721 , - 2524 , - 2391 , - 322 , - 1949 , - 1640 , - 2211 , - 846 , - 361 , - 756 , - 2031 , - 1370 , - 1589 , - 2688 , - 1851 , - 1894 , - 1 , - 1804 , - 1671 , - 2418 , - 1229 , - 920 , - 1491 , - 126 , - 2457 , - 36 , - 1311 , - 650 , - 869 , - 1968 , - 1131 , - 1174 , - 2097 , - 1084 , - 951 , - 1698 , - 509 , - 200 , - 771 , - 2222 , - 1737 , - 2132 , - 591 , - 2746 , - 149 , - 1248 , - 411 , - 454 , - 1377 , - 364 , - 231 , - 978 , - 2605 , - 2296 , - 51 , - 1502 , - 1017 , - 1412 , - 2687 , - 2026 , - 2245 , - 528 , - 2507 , - 2550 , - 657 , - 2460 , - 2327 , - 258 , - 1885 , - 1576 , - 2147 , - 782 , - 297 , - 692 , - 1967 , - 1306 , - 1525 , - 2624 , - 1787 , - 1830 , - 2753 , - 1740 , - 1607 , - 2354 , - 1165 , - 856 , - 1427 , - 62 , - 2393 , - 2788 , - 1247 , - 586 , - 805 , - 1904 , - 1067 , - 1110 , - 2033 , - 1020 , - 887 , - 1634 , - 445 , - 136 , - 707 , - 2158 , - 1673 , - 2068 , - 527 , - 2682 , - 85 , - 1184 , - 347 , - 390 , - 1313 , - 300 , - 167 , - 914 , - 2541 , - 2232 , - 2803 , - 1438 , - 953 , - 1348 , - 2623 , - 1962 , - 2181 , - 464 , - 2443 , - 2486 , - 593 , - 2396 , - 2263 , - 194 , - 1821 , - 1512 , - 2083 , - 718 , - 233 , - 628 , - 1903 , - 1242 , - 1461 , - 2560 , - 1723 , - 1766 , - 2689 , - 1676 , - 1543 , - 2290 , - 1101 , - 792 , - 1363 , - 2814 , - 2329 , - 2724 , - 1183 , - 522 , - 741 , - 1840 , - 1003 , - 1046 , - 1969 , - 956 , - 823 , - 1570 , - 381 , - 72 , - 643 , - 2094 , - 1609 , - 2004 , - 463 , - 2618 , - 21 , - 1120 , - 283 , - 326 , - 1249 , - 236 , - 103 , - 850 , - 2477 , - 2168 , - 2739 , - 1374 , - 889 , - 1284 , - 2559 , - 1898 , - 2117 , - 400 , - 2379 , - 2422 , - 529 , - 2332 , - 2199 , - 130 , - 1757 , - 1448 , - 2019 , - 654 , - 169 , - 564 , - 1839 , - 1178 , - 1397 , - 2496 , - 1659 , - 1702 , - 2625 , - 1612 , - 1479 , - 2226 , - 1037 , - 728 , - 1299 , - 2750 , - 2265 , - 2660 , - 1119 , - 458 , - 677 , - 1776 , - 939 , - 982 , - 1905 , - 892 , - 759 , - 1506 , - 317 , - 8 , - 579 , - 2030 , - 1545 , - 1940 , - 399 , - 2554 , - 2773 , - 1056 , - 219 , - 262 , - 1185 , - 172 , - 39 , - 786 , - 2413 , - 2104 , - 2675 , - 1310 , - 825 , - 1220 , - 2495 , - 1834 , - 2053 , - 336 , - 2315 , - 2358 , - 465 , - 2268 , - 2135 , - 66 , - 1693 , - 1384 , - 1955 , - 590 , - 105 , - 500 , - 1775 , - 1114 , - 1333 , - 2432 , - 1595 , - 1638 , - 2561 , - 1548 , - 1415 , - 2162 , - 973 , - 664 , - 1235 , - 2686 , - 2201 , - 2596 , - 1055 , - 394 , - 613 , - 1712 , - 875 , - 918 , - 1841 , - 828 , - 695 , - 1442 , - 253 , - 2760 , - 515 , - 1966 , - 1481 , - 1876 , - 335 , - 2490 , - 2709 , - 992 , - 155 , - 198 , - 1121 , - 108 , - 2791 , - 722 , - 2349 , - 2040 , - 2611 , - 1246 , - 761 , - 1156 , - 2431 , - 1770 , - 1989 , - 272 , - 2251 , - 2294 , - 401 , - 2204 , - 2071 , - 2 , - 1629 , - 1320 , - 1891 , - 526 , - 41 , - 436 , - 1711 , - 1050 , - 1269 , - 2368 , - 1531 , - 1574 , - 2497 , - 1484 , - 1351 , - 2098 , - 909 , - 600 , - 1171 , - 2622 , - 2137 , - 2532 , - 991 , - 330 , - 549 , - 1648 , - 811 , - 854 , - 1777 , - 764 , - 631 , - 1378 , - 189 , - 2696 , - 451 , - 1902 , - 1417 , - 1812 , - 271 , - 2426 , - 2645 , - 928 , - 91 , - 134 , - 1057 , - 44 , - 2727 , - 658 , - 2285 , - 1976 , - 2547 , - 1182 , - 697 , - 1092 , - 2367 , - 1706 , - 1925 , - 208 , - 2187 , - 2230 , - 337 , - 2140 , - 2007 , - 2754 , - 1565 , - 1256 , - 1827 , - 462 , - 2793 , - 372 , - 1647 , - 986 , - 1205 , - 2304 , - 1467 , - 1510 , - 2433 , - 1420 , - 1287 , - 2034 , - 845 , - 536 , - 1107 , - 2558 , - 2073 , - 2468 , - 927 , - 266 , - 485 , - 1584 , - 747 , - 790 , - 1713 , - 700 , - 567 , - 1314 , - 125 , - 2632 , - 387 , - 1838 , - 1353 , - 1748 , - 207 , - 2362 , - 2581 , - 864 , - 27 , - 70 , - 993 , - 2796 , - 2663 , - 594 , - 2221 , - 1912 , - 2483 , - 1118 , - 633 , - 1028 , - 2303 , - 1642 , - 1861 , - 144 , - 2123 , - 2166 , - 273 , - 2076 , - 1943 , - 2690 , - 1501 , - 1192 , - 1763 , - 398 , - 2729 , - 308 , - 1583 , - 922 , - 1141 , - 2240 , - 1403 , - 1446 , - 2369 , - 1356 , - 1223 , - 1970 , - 781 , - 472 , - 1043 , - 2494 , - 2009 , - 2404 , - 863 , - 202 , - 421 , - 1520 , - 683 , - 726 , - 1649 , - 636 , - 503 , - 1250 , - 61 , - 2568 , - 323 , - 1774 , - 1289 , - 1684 , - 143 , - 2298 , - 2517 , - 800 , - 2779 , - 6 , - 929 , - 2732 , - 2599 , - 530 , - 2157 , - 1848 , - 2419 , - 1054 , - 569 , - 964 , - 2239 , - 1578 , - 1797 , - 80 , - 2059 , - 2102 , - 209 , - 2012 , - 1879 , - 2626 , - 1437 , - 1128 , - 1699 , - 334 , - 2665 , - 244 , - 1519 , - 858 , - 1077 , - 2176 , - 1339 , - 1382 , - 2305 , - 1292 , - 1159 , - 1906 , - 717 , - 408 , - 979 , - 2430 , - 1945 , - 2340 , - 799 , - 138 , - 357 , - 1456 , - 619 , - 662 , - 1585 , - 572 , - 439 , - 1186 , - 2813 , - 2504 , - 259 , - 1710 , - 1225 , - 1620 , - 79 , - 2234 , - 2453 , - 736 , - 2715 , - 2758 , - 865 , - 2668 , - 2535 , - 466 , - 2093 , - 1784 , - 2355 , - 990 , - 505 , - 900 , - 2175 , - 1514 , - 1733 , - 16 , - 1995 , - 2038 , - 145 , - 1948 , - 1815 , - 2562 , - 1373 , - 1064 , - 1635 , - 270 , - 2601 , - 180 , - 1455 , - 794 , - 1013 , - 2112 , - 1275 , - 1318 , - 2241 , - 1228 , - 1095 , - 1842 , - 653 , - 344 , - 915 , - 2366 , - 1881 , - 2276 , - 735 , - 74 , - 293 , - 1392 , - 555 , - 598 , - 1521 , - 508 , - 375 , - 1122 , - 2749 , - 2440 , - 195 , - 1646 , - 1161 , - 1556 , - 15 , - 2170 , - 2389 , - 672 , - 2651 , - 2694 , - 801 , - 2604 , - 2471 , - 402 , - 2029 , - 1720 , - 2291 , - 926 , - 441 , - 836 , - 2111 , - 1450 , - 1669 , - 2768 , - 1931 , - 1974 , - 81 , - 1884 , - 1751 , - 2498 , - 1309 , - 1000 , - 1571 , - 206 , - 2537 , - 116 , - 1391 , - 730 , - 949 , - 2048 , - 1211 , - 1254 , - 2177 , - 1164 , - 1031 , - 1778 , - 589 , - 280 , - 851 , - 2302 , - 1817 , - 2212 , - 671 , - 10 , - 229 , - 1328 , - 491 , - 534 , - 1457 , - 444 , - 311 , - 1058 , - 2685 , - 2376 , - 131 , - 1582 , - 1097 , - 1492 , - 2767 , - 2106 , - 2325 , - 608 , - 2587 , - 2630 , - 737 , - 2540 , - 2407 , - 338 , - 1965 , - 1656 , - 2227 , - 862 , - 377 , - 772 , - 2047 , - 1386 , - 1605 , - 2704 , - 1867 , - 1910 , - 17 , - 1820 , - 1687 , - 2434 , - 1245 , - 936 , - 1507 , - 142 , - 2473 , - 52 , - 1327 , - 666 , - 885 , - 1984 , - 1147 , - 1190 , - 2113 , - 1100 , - 967 , - 1714 , - 525 , - 216 , - 787 , - 2238 , - 1753 , - 2148 , - 607 , - 2762 , - 165 , - 1264 , - 427 , - 470 , - 1393 , - 380 , - 247 , - 994 , - 2621 , - 2312 , - 67 , - 1518 , - 1033 , - 1428 , - 2703 , - 2042 , - 2261 , - 544 , - 2523 , - 2566 , - 673 , - 2476 , - 2343 , - 274 , - 1901 , - 1592 , - 2163 , - 798 , - 313 , - 708 , - 1983 , - 1322 , - 1541 , - 2640 , - 1803 , - 1846 , - 2769 , - 1756 , - 1623 , - 2370 , - 1181 , - 872 , - 1443 , - 78 , - 2409 , - 2804 , - 1263 , - 602 , - 821 , - 1920 , - 1083 , - 1126 , - 2049 , - 1036 , - 903 , - 1650 , - 461 , - 152 , - 723 , - 2174 , - 1689 , - 2084 , - 543 , - 2698 , - 101 , - 1200 , - 363 , - 406 , - 1329 , - 316 , - 183 , - 930 , - 2557 , - 2248 , - 3 , - 1454 , - 969 , - 1364 , - 2639 , - 1978 , - 2197 , - 480 , - 2459 , - 2502 , - 609 , - 2412 , - 2279 , - 210 , - 1837 , - 1528 , - 2099 , - 734 , - 249 , - 644 , - 1919 , - 1258 , - 1477 , - 2576 , - 1739 , - 1782 , - 2705 , - 1692 , - 1559 , - 2306 , - 1117 , - 808 , - 1379 , - 14 , - 2345 , - 2740 , - 1199 , - 538 , - 757 , - 1856 , - 1019 , - 1062 , - 1985 , - 972 , - 839 , - 1586 , - 397 , - 88 , - 659 , - 2110 , - 1625 , - 2020 , - 479 , - 2634 , - 37 , - 1136 , - 299 , - 342 , - 1265 , - 252 , - 119 , - 866 , - 2493 , - 2184 , - 2755 , - 1390 , - 905 , - 1300 , - 2575 , - 1914 , - 2133 , - 416 , - 2395 , - 2438 , - 545 , - 2348 , - 2215 , - 146 , - 1773 , - 1464 , - 2035 , - 670 , - 185 , - 580 , - 1855 , - 1194 , - 1413 , - 2512 , - 1675 , - 1718 , - 2641 , - 1628 , - 1495 , - 2242 , - 1053 , - 744 , - 1315 , - 2766 , - 2281 , - 2676 , - 1135 , - 474 , - 693 , - 1792 , - 955 , - 998 , - 1921 , - 908 , - 775 , - 1522 , - 333 , - 24 , - 595 , - 2046 , - 1561 , - 1956 , - 415 , - 2570 , - 2789 , - 1072 , - 235 , - 278 , - 1201 , - 188 , - 55 , - 802 , - 2429 , - 2120 , - 2691 , - 1326 , - 841 , - 1236 , - 2511 , - 1850 , - 2069 , - 352 , - 2331 , - 2374 , - 481 , - 2284 , - 2151 , - 82 , - 1709 , - 1400 , - 1971 , - 606 , - 121 , - 516 , - 1791 , - 1130 , - 1349 , - 2448 , - 1611 , - 1654 , - 2577 , - 1564 , - 1431 , - 2178 , - 989 , - 680 , - 1251 , - 2702 , - 2217 , - 2612 , - 1071 , - 410 , - 629 , - 1728 , - 891 , - 934 , - 1857 , - 844 , - 711 , - 1458 , - 269 , - 2776 , - 531 , - 1982 , - 1497 , - 1892 , - 351 , - 2506 , - 2725 , - 1008 , - 171 , - 214 , - 1137 , - 124 , - 2807 , - 738 , - 2365 , - 2056 , - 2627 , - 1262 , - 777 , - 1172 , - 2447 , - 1786 , - 2005 , - 288 , - 2267 , - 2310 , - 417 , - 2220 , - 2087 , - 18 , - 1645 , - 1336 , - 1907 , - 542 , - 57 , - 452 , - 1727 , - 1066 , - 1285 , - 2384 , - 1547 , - 1590 , - 2513 , - 1500 , - 1367 , - 2114 , - 925 , - 616 , - 1187 , - 2638 , - 2153 , - 2548 , - 1007 , - 346 , - 565 , - 1664 , - 827 , - 870 , - 1793 , - 780 , - 647 , - 1394 , - 205 , - 2712 , - 467 , - 1918 , - 1433 , - 1828 , - 287 , - 2442 , - 2661 , - 944 , - 107 , - 150 , - 1073 , - 60 , - 2743 , - 674 , - 2301 , - 1992 , - 2563 , - 1198 , - 713 , - 1108 , - 2383 , - 1722 , - 1941 , - 224 , - 2203 , - 2246 , - 353 , - 2156 , - 2023 , - 2770 , - 1581 , - 1272 , - 1843 , - 478 , - 2809 , - 388 , - 1663 , - 1002 , - 1221 , - 2320 , - 1483 , - 1526 , - 2449 , - 1436 , - 1303 , - 2050 , - 861 , - 552 , - 1123 , - 2574 , - 2089 , - 2484 , - 943 , - 282 , - 501 , - 1600 , - 763 , - 806 , - 1729 , - 716 , - 583 , - 1330 , - 141 , - 2648 , - 403 , - 1854 , - 1369 , - 1764 , - 223 , - 2378 , - 2597 , - 880 , - 43 , - 86 , - 1009 , - 2812 , - 2679 , - 610 , - 2237 , - 1928 , - 2499 , - 1134 , - 649 , - 1044 , - 2319 , - 1658 , - 1877 , - 160 , - 2139 , - 2182 , - 289 , - 2092 , - 1959 , - 2706 , - 1517 , - 1208 , - 1779 , - 414 , - 2745 , - 324 , - 1599 , - 938 , - 1157 , - 2256 , - 1419 , - 1462 , - 2385 , - 1372 , - 1239 , - 1986 , - 797 , - 488 , - 1059 , - 2510 , - 2025 , - 2420 , - 879 , - 218 , - 437 , - 1536 , - 699 , - 742 , - 1665 , - 652 , - 519 , - 1266 , - 77 , - 2584 , - 339 , - 1790 , - 1305 , - 1700 , - 159 , - 2314 , - 2533 , - 816 , - 2795 , - 22 , - 945 , - 2748 , - 2615 , - 546 , - 2173 , - 1864 , - 2435 , - 1070 , - 585 , - 980 , - 2255 , - 1594 , - 1813 , - 96 , - 2075 , - 2118 , - 225 , - 2028 , - 1895 , - 2642 , - 1453 , - 1144 , - 1715 , - 350 , - 2681 , - 260 , - 1535 , - 874 , - 1093 , - 2192 , - 1355 , - 1398 , - 2321 , - 1308 , - 1175 , - 1922 , - 733 , - 424 , - 995 , - 2446 , - 1961 , - 2356 , - 815 , - 154 , - 373 , - 1472 , - 635 , - 678 , - 1601 , - 588 , - 455 , - 1202 , - 13 , - 2520 , - 275 , - 1726 , - 1241 , - 1636 , - 95 , - 2250 , - 2469 , - 752 , - 2731 , - 2774 , - 881 , - 2684 , - 2551 , - 482 , - 2109 , - 1800 , - 2371 , - 1006 , - 521 , - 916 , - 2191 , - 1530 , - 1749 , - 32 , - 2011 , - 2054 , - 161 , - 1964 , - 1831 , - 2578 , - 1389 , - 1080 , - 1651 , - 286 , - 2617 , - 196 , - 1471 , - 810 , - 1029 , - 2128 , - 1291 , - 1334 , - 2257 , - 1244 , - 1111 , - 1858 , - 669 , - 360 , - 931 , - 2382 , - 1897 , - 2292 , - 751 , - 90 , - 309 , - 1408 , - 571 , - 614 , - 1537 , - 524 , - 391 , - 1138 , - 2765 , - 2456 , - 211 , - 1662 , - 1177 , - 1572 , - 31 , - 2186 , - 2405 , - 688 , - 2667 , - 2710 , - 817 , - 2620 , - 2487 , - 418 , - 2045 , - 1736 , - 2307 , - 942 , - 457 , - 852 , - 2127 , - 1466 , - 1685 , - 2784 , - 1947 , - 1990 , - 97 , - 1900 , - 1767 , - 2514 , - 1325 , - 1016 , - 1587 , - 222 , - 2553 , - 132 , - 1407 , - 746 , - 965 , - 2064 , - 1227 , - 1270 , - 2193 , - 1180 , - 1047 , - 1794 , - 605 , - 296 , - 867 , - 2318 , - 1833 , - 2228 , - 687 , - 26 , - 245 , - 1344 , - 507 , - 550 , - 1473 , - 460 , - 327 , - 1074 , - 2701 , - 2392 , - 147 , - 1598 , - 1113 , - 1508 , - 2783 , - 2122 , - 2341 , - 624 , - 2603 , - 2646 , - 753 , - 2556 , - 2423 , - 354 , - 1981 , - 1672 , - 2243 , - 878 , - 393 , - 788 , - 2063 , - 1402 , - 1621 , - 2720 , - 1883 , - 1926 , - 33 , - 1836 , - 1703 , - 2450 , - 1261 , - 952 , - 1523 , - 158 , - 2489 , - 68 , - 1343 , - 682 , - 901 , - 2000 , - 1163 , - 1206 , - 2129 , - 1116 , - 983 , - 1730 , - 541 , - 232 , - 803 , - 2254 , - 1769 , - 2164 , - 623 , - 2778 , - 181 , - 1280 , - 443 , - 486 , - 1409 , - 396 , - 263 , - 1010 , - 2637 , - 2328 , - 83 , - 1534 , - 1049 , - 1444 , - 2719 , - 2058 , - 2277 , - 560 , - 2539 , - 2582 , - 689 , - 2492 , - 2359 , - 290 , - 1917 , - 1608 , - 2179 , - 814 , - 329 , - 724 , - 1999 , - 1338 , - 1557 , - 2656 , - 1819 , - 1862 , - 2785 , - 1772 , - 1639 , - 2386 , - 1197 , - 888 , - 1459 , - 94 , - 2425 , - 4 , - 1279 , - 618 , - 837 , - 1936 , - 1099 , - 1142 , - 2065 , - 1052 , - 919 , - 1666 , - 477 , - 168 , - 739 , - 2190 , - 1705 , - 2100 , - 559 , - 2714 , - 117 , - 1216 , - 379 , - 422 , - 1345 , - 332 , - 199 , - 946 , - 2573 , - 2264 , - 19 , - 1470 , - 985 , - 1380 , - 2655 , - 1994 , - 2213 , - 496 , - 2475 , - 2518 , - 625 , - 2428 , - 2295 , - 226 , - 1853 , - 1544 , - 2115 , - 750 , - 265 , - 660 , - 1935 , - 1274 , - 1493 , - 2592 , - 1755 , - 1798 , - 2721 , - 1708 , - 1575 , - 2322 , - 1133 , - 824 , - 1395 , - 30 , - 2361 , - 2756 , - 1215 , - 554 , - 773 , - 1872 , - 1035 , - 1078 , - 2001 , - 988 , - 855 , - 1602 , - 413 , - 104 , - 675 , - 2126 , - 1641 , - 2036 , - 495 , - 2650 , - 53 , - 1152 , - 315 , - 358 , - 1281 , - 268 , - 135 , - 882 , - 2509 , - 2200 , - 2771 , - 1406 , - 921 , - 1316 , - 2591 , - 1930 , - 2149 , - 432 , - 2411 , - 2454 , - 561 , - 2364 , - 2231 , - 162 , - 1789 , - 1480 , - 2051 , - 686 , - 201 , - 596 , - 1871 , - 1210 , - 1429 , - 2528 , - 1691 , - 1734 , - 2657 , - 1644 , - 1511 , - 2258 , - 1069 , - 760 , - 1331 , - 2782 , - 2297 , - 2692 , - 1151 , - 490 , - 709 , - 1808 , - 971 , - 1014 , - 1937 , - 924 , - 791 , - 1538 , - 349 , - 40 , - 611 , - 2062 , - 1577 , - 1972 , - 431 , - 2586 , - 2805 , - 1088 , - 251 , - 294 , - 1217 , - 204 , - 71 , - 818 , - 2445 , - 2136 , - 2707 , - 1342 , - 857 , - 1252 , - 2527 , - 1866 , - 2085 , - 368 , - 2347 , - 2390 , - 497 , - 2300 , - 2167 , - 98 , - 1725 , - 1416 , - 1987 , - 622 , - 137 , - 532 , - 1807 , - 1146 , - 1365 , - 2464 , - 1627 , - 1670 , - 2593 , - 1580 , - 1447 , - 2194 , - 1005 , - 696 , - 1267 , - 2718 , - 2233 , - 2628 , - 1087 , - 426 , - 645 , - 1744 , - 907 , - 950 , - 1873 , - 860 , - 727 , - 1474 , - 285 , - 2792 , - 547 , - 1998 , - 1513 , - 1908 , - 367 , - 2522 , - 2741 , - 1024 , - 187 , - 230 , - 1153 , - 140 , - 7 , - 754 , - 2381 , - 2072 , - 2643 , - 1278 , - 793 , - 1188 , - 2463 , - 1802 , - 2021 , - 304 , - 2283 , - 2326 , - 433 , - 2236 , - 2103 , - 34 , - 1661 , - 1352 , - 1923 , - 558 , - 73 , - 468 , - 1743 , - 1082 , - 1301 , - 2400 , - 1563 , - 1606 , - 2529 , - 1516 , - 1383 , - 2130 , - 941 , - 632 , - 1203 , - 2654 , - 2169 , - 2564 , - 1023 , - 362 , - 581 , - 1680 , - 843 , - 886 , - 1809 , - 796 , - 663 , - 1410 , - 221 , - 2728 , - 483 , - 1934 , - 1449 , - 1844 , - 303 , - 2458 , - 2677 , - 960 , - 123 , - 166 , - 1089 , - 76 , - 2759 , - 690 , - 2317 , - 2008 , - 2579 , - 1214 , - 729 , - 1124 , - 2399 , - 1738 , - 1957 , - 240 , - 2219 , - 2262 , - 369 , - 2172 , - 2039 , - 2786 , - 1597 , - 1288 , - 1859 , - 494 , - 9 , - 404 , - 1679 , - 1018 , - 1237 , - 2336 , - 1499 , - 1542 , - 2465 , - 1452 , - 1319 , - 2066 , - 877 , - 568 , - 1139 , - 2590 , - 2105 , - 2500 , - 959 , - 298 , - 517 , - 1616 , - 779 , - 822 , - 1745 , - 732 , - 599 , - 1346 , - 157 , - 2664 , - 419 , - 1870 , - 1385 , - 1780 , - 239 , - 2394 , - 2613 , - 896 , - 59 , - 102 , - 1025 , - 12 , - 2695 , - 626 , - 2253 , - 1944 , - 2515 , - 1150 , - 665 , - 1060 , - 2335 , - 1674 , - 1893 , - 176 , - 2155 , - 2198 , - 305 , - 2108 , - 1975 , - 2722 , - 1533 , - 1224 , - 1795 , - 430 , - 2761 , - 340 , - 1615 , - 954 , - 1173 , - 2272 , - 1435 , - 1478 , - 2401 , - 1388 , - 1255 , - 2002 , - 813 , - 504 , - 1075 , - 2526 , - 2041 , - 2436 , - 895 , - 234 , - 453 , - 1552 , - 715 , - 758 , - 1681 , - 668 , - 535 , - 1282 , - 93 , - 2600 , - 355 , - 1806 , - 1321 , - 1716 , - 175 , - 2330 , - 2549 , - 832 , - 2811 , - 38 , - 961 , - 2764 , - 2631 , - 562 , - 2189 , - 1880 , - 2451 , - 1086 , - 601 , - 996 , - 2271 , - 1610 , - 1829 , - 112 , - 2091 , - 2134 , - 241 , - 2044 , - 1911 , - 2658 , - 1469 , - 1160 , - 1731 , - 366 , - 2697 , - 276 , - 1551 , - 890 , - 1109 , - 2208 , - 1371 , - 1414 , - 2337 , - 1324 , - 1191 , - 1938 , - 749 , - 440 , - 1011 , - 2462 , - 1977 , - 2372 , - 831 , - 170 , - 389 , - 1488 , - 651 , - 694 , - 1617 , - 604 , - 471 , - 1218 , - 29 , - 2536 , - 291 , - 1742 , - 1257 , - 1652 , - 111 , - 2266 , - 2485 , - 768 , - 2747 , - 2790 , - 897 , - 2700 , - 2567 , - 498 , - 2125 , - 1816 , - 2387 , - 1022 , - 537 , - 932 , - 2207 , - 1546 , - 1765 , - 48 , - 2027 , - 2070 , - 177 , - 1980 , - 1847 , - 2594 , - 1405 , - 1096 , - 1667 , - 302 , - 2633 , - 212 , - 1487 , - 826 , - 1045 , - 2144 , - 1307 , - 1350 , - 2273 , - 1260 , - 1127 , - 1874 , - 685 , - 376 , - 947 , - 2398 , - 1913 , - 2308 , - 767 , - 106 , - 325 , - 1424 , - 587 , - 630 , - 1553 , - 540 , - 407 , - 1154 , - 2781 , - 2472 , - 227 , - 1678 , - 1193 , - 1588 , - 47 , - 2202 , - 2421 , - 704 , - 2683 , - 2726 , - 833 , - 2636 , - 2503 , - 434 , - 2061 , - 1752 , - 2323 , - 958 , - 473 , - 868 , - 2143 , - 1482 , - 1701 , - 2800 , - 1963 , - 2006 , - 113 , - 1916 , - 1783 , - 2530 , - 1341 , - 1032 , - 1603 , - 238 , - 2569 , - 148 , - 1423 , - 762 , - 981 , - 2080 , - 1243 , - 1286 , - 2209 , - 1196 , - 1063 , - 1810 , - 621 , - 312 , - 883 , - 2334 , - 1849 , - 2244 , - 703 , - 42 , - 261 , - 1360 , - 523 , - 566 , - 1489 , - 476 , - 343 , - 1090 , - 2717 , - 2408 , - 163 , - 1614 , - 1129 , - 1524 , - 2799 , - 2138 , - 2357 , - 640 , - 2619 , - 2662 , - 769 , - 2572 , - 2439 , - 370 , - 1997 , - 1688 , - 2259 , - 894 , - 409 , - 804 , - 2079 , - 1418 , - 1637 , - 2736 , - 1899 , - 1942 , - 49 , - 1852 , - 1719 , - 2466 , - 1277 , - 968 , - 1539 , - 174 , - 2505 , - 84 , - 1359 , - 698 , - 917 , - 2016 , - 1179 , - 1222 , - 2145 , - 1132 , - 999 , - 1746 , - 557 , - 248 , - 819 , - 2270 , - 1785 , - 2180 , - 639 , - 2794 , - 197 , - 1296 , - 459 , - 502 , - 1425 , - 412 , - 279 , - 1026 , - 2653 , - 2344 , - 99 , - 1550 , - 1065 , - 1460 , - 2735 , - 2074 , - 2293 , - 576 , - 2555 , - 2598 , - 705 , - 2508 , - 2375 , - 306 , - 1933 , - 1624 , - 2195 , - 830 , - 345 , - 740 , - 2015 , - 1354 , - 1573 , - 2672 , - 1835 , - 1878 , - 2801 , - 1788 , - 1655 , - 2402 , - 1213 , - 904 , - 1475 , - 110 , - 2441 , - 20 , - 1295 , - 634 , - 853 , - 1952 , - 1115 , - 1158 , - 2081 , - 1068 , - 935 , - 1682 , - 493 , - 184 , - 755 , - 2206 , - 1721 , - 2116 , - 575 , - 2730 , - 133 , - 1232 , - 395 , - 438 , - 1361 , - 348 , - 215 , - 962 , - 2589 , - 2280 , - 35 , - 1486 , - 1001 , - 1396 , - 2671 , - 2010 , - 2229 , - 512 , - 2491 , - 2534 , - 641 , - 2444 , - 2311 , - 242 , - 1869 , - 1560 , - 2131 , - 766 , - 281 , - 676 , - 1951 , - 1290 , - 1509 , - 2608 , - 1771 , - 1814 , - 2737 , - 1724 , - 1591 , - 2338 , - 1149 , - 840 , - 1411 , - 46 , - 2377 , - 2772 , - 1231 , - 570 , - 789 , - 1888 , - 1051 , - 1094 , - 2017 , - 1004 , - 871 , - 1618 , - 429 , - 120 , - 691 , - 2142 , - 1657 , - 2052 , - 511 , - 2666 , - 69 , - 1168 , - 331 , - 374 , - 1297 , - 284 , - 151 , - 898 , - 2525 , - 2216 , - 2787 , - 1422 , - 937 , - 1332 , - 2607 , - 1946 , - 2165 , - 448 , - 2427 , - 2470 , - 577 , - 2380 , - 2247 , - 178 , - 1805 , - 1496 , - 2067 , - 702 , - 217 , - 612 , - 1887 , - 1226 , - 1445 , - 2544 , - 1707 , - 1750 , - 2673 , - 1660 , - 1527 , - 2274 , - 1085 , - 776 , - 1347 , - 2798 , - 2313 , - 2708 , - 1167 , - 506 , - 725 , - 1824 , - 987 , - 1030 , - 1953 , - 940 , - 807 , - 1554 , - 365 , - 56 , - 627 , - 2078 , - 1593 , - 1988 , - 447 , - 2602 , - 5 , - 1104 , - 267 , - 310 , - 1233 , - 220 , - 87 , - 834 , - 2461 , - 2152 , - 2723 , - 1358 , - 873 , - 1268 , - 2543 , - 1882 , - 2101 , - 384 , - 2363 , - 2406 , - 513 , - 2316 , - 2183 , - 114 , - 1741 , - 1432 , - 2003 , - 638 , - 153 , - 548 , - 1823 , - 1162 , - 1381 , - 2480 , - 1643 , - 1686 , - 2609 , - 1596 , - 1463 , - 2210 , - 1021 , - 712 , - 1283 , - 2734 , - 2249 , - 2644 , - 1103 , - 442 , - 661 , - 1760 , - 923 , - 966 , - 1889 , - 876 , - 743 , - 1490 , - 301 , - 2808 , - 563 , - 2014 , - 1529 , - 1924 , - 383 , - 2538 , - 2757 , - 1040 , - 203 , - 246 , - 1169 , - 156 , - 23 , - 770 , - 2397 , - 2088 , - 2659 , - 1294 , - 809 , - 1204 , - 2479 , - 1818 , - 2037 , - 320 , - 2299 , - 2342 , - 449 , - 2252 , - 2119 , - 50 , - 1677 , - 1368 , - 1939 , - 574 , - 89 , - 484 , - 1759 , - 1098 , - 1317 , - 2416 , - 1579 , - 1622 , - 2545 , - 1532 , - 1399 , - 2146 , - 957 , - 648 , - 1219 , - 2670 , - 2185 , - 2580 , - 1039 , - 378 , - 597 , - 1696 , - 859 , - 902 , - 1825 , - 812 , - 679 , - 1426 , - 237 , - 2744 , - 499 , - 1950 , - 1465 , - 1860 , - 319 , - 2474 , - 2693 , - 976 , - 139 , - 182 , - 1105 , - 92 , - 2775 , - 706 , - 2333 , - 2024 , - 2595 , - 1230 , - 745 , - 1140 , - 2415 , - 1754 , - 1973 , - 256 , - 2235 , - 2278 , - 385 , - 2188 , - 2055 , - 2802 , - 1613 , - 1304 , - 1875 , - 510 , - 25 , - 420 , - 1695 , - 1034 , - 1253 , - 2352 , - 1515 , - 1558 , - 2481 , - 1468 , - 1335 , - 2082 , - 893 , - 584 , - 1155 , - 2606 , - 2121 , - 2516 , - 975 , - 314 , - 533 , - 1632 , - 795 , - 838 , - 1761 , - 748 , - 615 , - 1362 , - 173 , - 2680 , - 435 , - 1886 , - 1401 , - 1796 , - 255 , - 2410 , - 2629 , - 912 , - 75 , - 118 , - 1041 , - 28 , - 2711 , - 642 , - 2269 , - 1960 , - 2531 , - 1166 , - 681 , - 1076 , - 2351 , - 1690 , - 1909 , - 192 , - 2171 , - 2214 , - 321 , - 2124 , - 1991 , - 2738 , - 1549 , - 1240 , - 1811 , - 446 , - 2777 , - 356 , - 1631 , - 970 , - 1189 , - 2288 , - 1451 , - 1494 , - 2417 , - 1404 , - 1271 , - 2018 , - 829 , - 520 , - 1091 , - 2542 , - 2057 , - 2452 , - 911 , - 250 , - 469 , - 1568 , - 731 , - 774 , - 1697 , - 684 , - 551 , - 1298 , - 109 , - 2616 , - 371 , - 1822 , - 1337 , - 1732 , - 191 , - 2346 , - 2565 , - 848 , - 11 , - 54 , - 977 , - 2780 , - 2647 , - 578 , - 2205 , - 1896 , - 2467 , - 1102 , - 617 , - 1012 , - 2287 , - 1626 , - 1845 , - 128 , - 2107 , - 2150 , - 257 , - 2060 , - 1927 , - 2674 , - 1485 , - 1176 , - 1747 , - 382 , - 2713 , - 292 , - 1567 , - 906 , - 1125 , - 2224 , - 1387 , - 1430 , - 2353 , - 1340 , - 1207 , - 1954 , - 765 , - 456 , - 1027 , - 2478 , - 1993 , - 2388 , - 847 , - 186 , - 405 , - 1504 , - 667 , - 710 , - 1633 , - 620 , - 487 , - 1234 , - 45 , - 2552 , - 307 , - 1758 , - 1273 , - 1668 , - 127 , - 2282 , - 2501 , - 784 , - 2763 , - 2806 , - 913 , - 2716 , - 2583 , - 514 , - 2141 , - 1832 , - 2403 , - 1038 , - 553 , - 948 , - 2223 , - 1562 , - 1781 , - 64 , - 2043 , - 2086 , - 193 , - 1996 , - 1863 , - 2610 , - 1421 , - 1112 , - 1683 , - 318 , - 2649 , - 228 , - 1503 , - 842 , - 1061 , - 2160 , - 1323 , - 1366 , - 2289 , - 1276 , - 1143 , - 1890 , - 701 , - 392 , - 963 , - 2414 , - 1929 , - 2324 , - 783 , - 122 , - 341 , - 1440 , - 603 , - 646 , - 1569 , - 556 , - 423 , - 1170 , - 2797 , - 2488 , - 243 , - 1694 , - 1209 , - 1604 , - 63 , - 2218 , - 2437 , - 720 , - 2699 , - 2742 , - 849 , - 2652 , - 2519 , - 450 , - 2077 , - 1768 , - 2339 , - 974 , - 489 , - 884 , - 2159 , - 1498 , - 1717 , - 0 , - 89 , - 58 , - 2787 , - 2516 , - 2125 , - 1614 , - 983 , - 232 , - 2241 , - 1250 , - 139 , - 1788 , - 437 , - 1846 , - 255 , - 1424 , - 2473 , - 522 , - 1331 , - 2020 , - 2589 , - 158 , - 487 , - 696 , - 785 , - 754 , - 603 , - 332 , - 2821 , - 2310 , - 1679 , - 928 , - 57 , - 1946 , - 835 , - 2484 , - 1133 , - 2542 , - 951 , - 2120 , - 289 , - 1218 , - 2027 , - 2716 , - 405 , - 854 , - 1183 , - 1392 , - 1481 , - 1450 , - 1299 , - 1028 , - 637 , - 126 , - 2375 , - 1624 , - 753 , - 2642 , - 1531 , - 300 , - 1829 , - 358 , - 1647 , - 2816 , - 985 , - 1914 , - 2723 , - 532 , - 1101 , - 1550 , - 1879 , - 2088 , - 2177 , - 2146 , - 1995 , - 1724 , - 1333 , - 822 , - 191 , - 2320 , - 1449 , - 458 , - 2227 , - 996 , - 2525 , - 1054 , - 2343 , - 632 , - 1681 , - 2610 , - 539 , - 1228 , - 1797 , - 2246 , - 2575 , - 2784 , - 2873 , - 2842 , - 2691 , - 2420 , - 2029 , - 1518 , - 887 , - 136 , - 2145 , - 1154 , - 43 , - 1692 , - 341 , - 1750 , - 159 , - 1328 , - 2377 , - 426 , - 1235 , - 1924 , - 2493 , - 62 , - 391 , - 600 , - 689 , - 658 , - 507 , - 236 , - 2725 , - 2214 , - 1583 , - 832 , - 2841 , - 1850 , - 739 , - 2388 , - 1037 , - 2446 , - 855 , - 2024 , - 193 , - 1122 , - 1931 , - 2620 , - 309 , - 758 , - 1087 , - 1296 , - 1385 , - 1354 , - 1203 , - 932 , - 541 , - 30 , - 2279 , - 1528 , - 657 , - 2546 , - 1435 , - 204 , - 1733 , - 262 , - 1551 , - 2720 , - 889 , - 1818 , - 2627 , - 436 , - 1005 , - 1454 , - 1783 , - 1992 , - 2081 , - 2050 , - 1899 , - 1628 , - 1237 , - 726 , - 95 , - 2224 , - 1353 , - 362 , - 2131 , - 900 , - 2429 , - 958 , - 2247 , - 536 , - 1585 , - 2514 , - 443 , - 1132 , - 1701 , - 2150 , - 2479 , - 2688 , - 2777 , - 2746 , - 2595 , - 2324 , - 1933 , - 1422 , - 791 , - 40 , - 2049 , - 1058 , - 2827 , - 1596 , - 245 , - 1654 , - 63 , - 1232 , - 2281 , - 330 , - 1139 , - 1828 , - 2397 , - 2846 , - 295 , - 504 , - 593 , - 562 , - 411 , - 140 , - 2629 , - 2118 , - 1487 , - 736 , - 2745 , - 1754 , - 643 , - 2292 , - 941 , - 2350 , - 759 , - 1928 , - 97 , - 1026 , - 1835 , - 2524 , - 213 , - 662 , - 991 , - 1200 , - 1289 , - 1258 , - 1107 , - 836 , - 445 , - 2814 , - 2183 , - 1432 , - 561 , - 2450 , - 1339 , - 108 , - 1637 , - 166 , - 1455 , - 2624 , - 793 , - 1722 , - 2531 , - 340 , - 909 , - 1358 , - 1687 , - 1896 , - 1985 , - 1954 , - 1803 , - 1532 , - 1141 , - 630 , - 2879 , - 2128 , - 1257 , - 266 , - 2035 , - 804 , - 2333 , - 862 , - 2151 , - 440 , - 1489 , - 2418 , - 347 , - 1036 , - 1605 , - 2054 , - 2383 , - 2592 , - 2681 , - 2650 , - 2499 , - 2228 , - 1837 , - 1326 , - 695 , - 2824 , - 1953 , - 962 , - 2731 , - 1500 , - 149 , - 1558 , - 2847 , - 1136 , - 2185 , - 234 , - 1043 , - 1732 , - 2301 , - 2750 , - 199 , - 408 , - 497 , - 466 , - 315 , - 44 , - 2533 , - 2022 , - 1391 , - 640 , - 2649 , - 1658 , - 547 , - 2196 , - 845 , - 2254 , - 663 , - 1832 , - 1 , - 930 , - 1739 , - 2428 , - 117 , - 566 , - 895 , - 1104 , - 1193 , - 1162 , - 1011 , - 740 , - 349 , - 2718 , - 2087 , - 1336 , - 465 , - 2354 , - 1243 , - 12 , - 1541 , - 70 , - 1359 , - 2528 , - 697 , - 1626 , - 2435 , - 244 , - 813 , - 1262 , - 1591 , - 1800 , - 1889 , - 1858 , - 1707 , - 1436 , - 1045 , - 534 , - 2783 , - 2032 , - 1161 , - 170 , - 1939 , - 708 , - 2237 , - 766 , - 2055 , - 344 , - 1393 , - 2322 , - 251 , - 940 , - 1509 , - 1958 , - 2287 , - 2496 , - 2585 , - 2554 , - 2403 , - 2132 , - 1741 , - 1230 , - 599 , - 2728 , - 1857 , - 866 , - 2635 , - 1404 , - 53 , - 1462 , - 2751 , - 1040 , - 2089 , - 138 , - 947 , - 1636 , - 2205 , - 2654 , - 103 , - 312 , - 401 , - 370 , - 219 , - 2828 , - 2437 , - 1926 , - 1295 , - 544 , - 2553 , - 1562 , - 451 , - 2100 , - 749 , - 2158 , - 567 , - 1736 , - 2785 , - 834 , - 1643 , - 2332 , - 21 , - 470 , - 799 , - 1008 , - 1097 , - 1066 , - 915 , - 644 , - 253 , - 2622 , - 1991 , - 1240 , - 369 , - 2258 , - 1147 , - 2796 , - 1445 , - 2854 , - 1263 , - 2432 , - 601 , - 1530 , - 2339 , - 148 , - 717 , - 1166 , - 1495 , - 1704 , - 1793 , - 1762 , - 1611 , - 1340 , - 949 , - 438 , - 2687 , - 1936 , - 1065 , - 74 , - 1843 , - 612 , - 2141 , - 670 , - 1959 , - 248 , - 1297 , - 2226 , - 155 , - 844 , - 1413 , - 1862 , - 2191 , - 2400 , - 2489 , - 2458 , - 2307 , - 2036 , - 1645 , - 1134 , - 503 , - 2632 , - 1761 , - 770 , - 2539 , - 1308 , - 2837 , - 1366 , - 2655 , - 944 , - 1993 , - 42 , - 851 , - 1540 , - 2109 , - 2558 , - 7 , - 216 , - 305 , - 274 , - 123 , - 2732 , - 2341 , - 1830 , - 1199 , - 448 , - 2457 , - 1466 , - 355 , - 2004 , - 653 , - 2062 , - 471 , - 1640 , - 2689 , - 738 , - 1547 , - 2236 , - 2805 , - 374 , - 703 , - 912 , - 1001 , - 970 , - 819 , - 548 , - 157 , - 2526 , - 1895 , - 1144 , - 273 , - 2162 , - 1051 , - 2700 , - 1349 , - 2758 , - 1167 , - 2336 , - 505 , - 1434 , - 2243 , - 52 , - 621 , - 1070 , - 1399 , - 1608 , - 1697 , - 1666 , - 1515 , - 1244 , - 853 , - 342 , - 2591 , - 1840 , - 969 , - 2858 , - 1747 , - 516 , - 2045 , - 574 , - 1863 , - 152 , - 1201 , - 2130 , - 59 , - 748 , - 1317 , - 1766 , - 2095 , - 2304 , - 2393 , - 2362 , - 2211 , - 1940 , - 1549 , - 1038 , - 407 , - 2536 , - 1665 , - 674 , - 2443 , - 1212 , - 2741 , - 1270 , - 2559 , - 848 , - 1897 , - 2826 , - 755 , - 1444 , - 2013 , - 2462 , - 2791 , - 120 , - 209 , - 178 , - 27 , - 2636 , - 2245 , - 1734 , - 1103 , - 352 , - 2361 , - 1370 , - 259 , - 1908 , - 557 , - 1966 , - 375 , - 1544 , - 2593 , - 642 , - 1451 , - 2140 , - 2709 , - 278 , - 607 , - 816 , - 905 , - 874 , - 723 , - 452 , - 61 , - 2430 , - 1799 , - 1048 , - 177 , - 2066 , - 955 , - 2604 , - 1253 , - 2662 , - 1071 , - 2240 , - 409 , - 1338 , - 2147 , - 2836 , - 525 , - 974 , - 1303 , - 1512 , - 1601 , - 1570 , - 1419 , - 1148 , - 757 , - 246 , - 2495 , - 1744 , - 873 , - 2762 , - 1651 , - 420 , - 1949 , - 478 , - 1767 , - 56 , - 1105 , - 2034 , - 2843 , - 652 , - 1221 , - 1670 , - 1999 , - 2208 , - 2297 , - 2266 , - 2115 , - 1844 , - 1453 , - 942 , - 311 , - 2440 , - 1569 , - 578 , - 2347 , - 1116 , - 2645 , - 1174 , - 2463 , - 752 , - 1801 , - 2730 , - 659 , - 1348 , - 1917 , - 2366 , - 2695 , - 24 , - 113 , - 82 , - 2811 , - 2540 , - 2149 , - 1638 , - 1007 , - 256 , - 2265 , - 1274 , - 163 , - 1812 , - 461 , - 1870 , - 279 , - 1448 , - 2497 , - 546 , - 1355 , - 2044 , - 2613 , - 182 , - 511 , - 720 , - 809 , - 778 , - 627 , - 356 , - 2845 , - 2334 , - 1703 , - 952 , - 81 , - 1970 , - 859 , - 2508 , - 1157 , - 2566 , - 975 , - 2144 , - 313 , - 1242 , - 2051 , - 2740 , - 429 , - 878 , - 1207 , - 1416 , - 1505 , - 1474 , - 1323 , - 1052 , - 661 , - 150 , - 2399 , - 1648 , - 777 , - 2666 , - 1555 , - 324 , - 1853 , - 382 , - 1671 , - 2840 , - 1009 , - 1938 , - 2747 , - 556 , - 1125 , - 1574 , - 1903 , - 2112 , - 2201 , - 2170 , - 2019 , - 1748 , - 1357 , - 846 , - 215 , - 2344 , - 1473 , - 482 , - 2251 , - 1020 , - 2549 , - 1078 , - 2367 , - 656 , - 1705 , - 2634 , - 563 , - 1252 , - 1821 , - 2270 , - 2599 , - 2808 , - 17 , - 2866 , - 2715 , - 2444 , - 2053 , - 1542 , - 911 , - 160 , - 2169 , - 1178 , - 67 , - 1716 , - 365 , - 1774 , - 183 , - 1352 , - 2401 , - 450 , - 1259 , - 1948 , - 2517 , - 86 , - 415 , - 624 , - 713 , - 682 , - 531 , - 260 , - 2749 , - 2238 , - 1607 , - 856 , - 2865 , - 1874 , - 763 , - 2412 , - 1061 , - 2470 , - 879 , - 2048 , - 217 , - 1146 , - 1955 , - 2644 , - 333 , - 782 , - 1111 , - 1320 , - 1409 , - 1378 , - 1227 , - 956 , - 565 , - 54 , - 2303 , - 1552 , - 681 , - 2570 , - 1459 , - 228 , - 1757 , - 286 , - 1575 , - 2744 , - 913 , - 1842 , - 2651 , - 460 , - 1029 , - 1478 , - 1807 , - 2016 , - 2105 , - 2074 , - 1923 , - 1652 , - 1261 , - 750 , - 119 , - 2248 , - 1377 , - 386 , - 2155 , - 924 , - 2453 , - 982 , - 2271 , - 560 , - 1609 , - 2538 , - 467 , - 1156 , - 1725 , - 2174 , - 2503 , - 2712 , - 2801 , - 2770 , - 2619 , - 2348 , - 1957 , - 1446 , - 815 , - 64 , - 2073 , - 1082 , - 2851 , - 1620 , - 269 , - 1678 , - 87 , - 1256 , - 2305 , - 354 , - 1163 , - 1852 , - 2421 , - 2870 , - 319 , - 528 , - 617 , - 586 , - 435 , - 164 , - 2653 , - 2142 , - 1511 , - 760 , - 2769 , - 1778 , - 667 , - 2316 , - 965 , - 2374 , - 783 , - 1952 , - 121 , - 1050 , - 1859 , - 2548 , - 237 , - 686 , - 1015 , - 1224 , - 1313 , - 1282 , - 1131 , - 860 , - 469 , - 2838 , - 2207 , - 1456 , - 585 , - 2474 , - 1363 , - 132 , - 1661 , - 190 , - 1479 , - 2648 , - 817 , - 1746 , - 2555 , - 364 , - 933 , - 1382 , - 1711 , - 1920 , - 2009 , - 1978 , - 1827 , - 1556 , - 1165 , - 654 , - 23 , - 2152 , - 1281 , - 290 , - 2059 , - 828 , - 2357 , - 886 , - 2175 , - 464 , - 1513 , - 2442 , - 371 , - 1060 , - 1629 , - 2078 , - 2407 , - 2616 , - 2705 , - 2674 , - 2523 , - 2252 , - 1861 , - 1350 , - 719 , - 2848 , - 1977 , - 986 , - 2755 , - 1524 , - 173 , - 1582 , - 2871 , - 1160 , - 2209 , - 258 , - 1067 , - 1756 , - 2325 , - 2774 , - 223 , - 432 , - 521 , - 490 , - 339 , - 68 , - 2557 , - 2046 , - 1415 , - 664 , - 2673 , - 1682 , - 571 , - 2220 , - 869 , - 2278 , - 687 , - 1856 , - 25 , - 954 , - 1763 , - 2452 , - 141 , - 590 , - 919 , - 1128 , - 1217 , - 1186 , - 1035 , - 764 , - 373 , - 2742 , - 2111 , - 1360 , - 489 , - 2378 , - 1267 , - 36 , - 1565 , - 94 , - 1383 , - 2552 , - 721 , - 1650 , - 2459 , - 268 , - 837 , - 1286 , - 1615 , - 1824 , - 1913 , - 1882 , - 1731 , - 1460 , - 1069 , - 558 , - 2807 , - 2056 , - 1185 , - 194 , - 1963 , - 732 , - 2261 , - 790 , - 2079 , - 368 , - 1417 , - 2346 , - 275 , - 964 , - 1533 , - 1982 , - 2311 , - 2520 , - 2609 , - 2578 , - 2427 , - 2156 , - 1765 , - 1254 , - 623 , - 2752 , - 1881 , - 890 , - 2659 , - 1428 , - 77 , - 1486 , - 2775 , - 1064 , - 2113 , - 162 , - 971 , - 1660 , - 2229 , - 2678 , - 127 , - 336 , - 425 , - 394 , - 243 , - 2852 , - 2461 , - 1950 , - 1319 , - 568 , - 2577 , - 1586 , - 475 , - 2124 , - 773 , - 2182 , - 591 , - 1760 , - 2809 , - 858 , - 1667 , - 2356 , - 45 , - 494 , - 823 , - 1032 , - 1121 , - 1090 , - 939 , - 668 , - 277 , - 2646 , - 2015 , - 1264 , - 393 , - 2282 , - 1171 , - 2820 , - 1469 , - 2878 , - 1287 , - 2456 , - 625 , - 1554 , - 2363 , - 172 , - 741 , - 1190 , - 1519 , - 1728 , - 1817 , - 1786 , - 1635 , - 1364 , - 973 , - 462 , - 2711 , - 1960 , - 1089 , - 98 , - 1867 , - 636 , - 2165 , - 694 , - 1983 , - 272 , - 1321 , - 2250 , - 179 , - 868 , - 1437 , - 1886 , - 2215 , - 2424 , - 2513 , - 2482 , - 2331 , - 2060 , - 1669 , - 1158 , - 527 , - 2656 , - 1785 , - 794 , - 2563 , - 1332 , - 2861 , - 1390 , - 2679 , - 968 , - 2017 , - 66 , - 875 , - 1564 , - 2133 , - 2582 , - 31 , - 240 , - 329 , - 298 , - 147 , - 2756 , - 2365 , - 1854 , - 1223 , - 472 , - 2481 , - 1490 , - 379 , - 2028 , - 677 , - 2086 , - 495 , - 1664 , - 2713 , - 762 , - 1571 , - 2260 , - 2829 , - 398 , - 727 , - 936 , - 1025 , - 994 , - 843 , - 572 , - 181 , - 2550 , - 1919 , - 1168 , - 297 , - 2186 , - 1075 , - 2724 , - 1373 , - 2782 , - 1191 , - 2360 , - 529 , - 1458 , - 2267 , - 76 , - 645 , - 1094 , - 1423 , - 1632 , - 1721 , - 1690 , - 1539 , - 1268 , - 877 , - 366 , - 2615 , - 1864 , - 993 , - 2 , - 1771 , - 540 , - 2069 , - 598 , - 1887 , - 176 , - 1225 , - 2154 , - 83 , - 772 , - 1341 , - 1790 , - 2119 , - 2328 , - 2417 , - 2386 , - 2235 , - 1964 , - 1573 , - 1062 , - 431 , - 2560 , - 1689 , - 698 , - 2467 , - 1236 , - 2765 , - 1294 , - 2583 , - 872 , - 1921 , - 2850 , - 779 , - 1468 , - 2037 , - 2486 , - 2815 , - 144 , - 233 , - 202 , - 51 , - 2660 , - 2269 , - 1758 , - 1127 , - 376 , - 2385 , - 1394 , - 283 , - 1932 , - 581 , - 1990 , - 399 , - 1568 , - 2617 , - 666 , - 1475 , - 2164 , - 2733 , - 302 , - 631 , - 840 , - 929 , - 898 , - 747 , - 476 , - 85 , - 2454 , - 1823 , - 1072 , - 201 , - 2090 , - 979 , - 2628 , - 1277 , - 2686 , - 1095 , - 2264 , - 433 , - 1362 , - 2171 , - 2860 , - 549 , - 998 , - 1327 , - 1536 , - 1625 , - 1594 , - 1443 , - 1172 , - 781 , - 270 , - 2519 , - 1768 , - 897 , - 2786 , - 1675 , - 444 , - 1973 , - 502 , - 1791 , - 80 , - 1129 , - 2058 , - 2867 , - 676 , - 1245 , - 1694 , - 2023 , - 2232 , - 2321 , - 2290 , - 2139 , - 1868 , - 1477 , - 966 , - 335 , - 2464 , - 1593 , - 602 , - 2371 , - 1140 , - 2669 , - 1198 , - 2487 , - 776 , - 1825 , - 2754 , - 683 , - 1372 , - 1941 , - 2390 , - 2719 , - 48 , - 137 , - 106 , - 2835 , - 2564 , - 2173 , - 1662 , - 1031 , - 280 , - 2289 , - 1298 , - 187 , - 1836 , - 485 , - 1894 , - 303 , - 1472 , - 2521 , - 570 , - 1379 , - 2068 , - 2637 , - 206 , - 535 , - 744 , - 833 , - 802 , - 651 , - 380 , - 2869 , - 2358 , - 1727 , - 976 , - 105 , - 1994 , - 883 , - 2532 , - 1181 , - 2590 , - 999 , - 2168 , - 337 , - 1266 , - 2075 , - 2764 , - 453 , - 902 , - 1231 , - 1440 , - 1529 , - 1498 , - 1347 , - 1076 , - 685 , - 174 , - 2423 , - 1672 , - 801 , - 2690 , - 1579 , - 348 , - 1877 , - 406 , - 1695 , - 2864 , - 1033 , - 1962 , - 2771 , - 580 , - 1149 , - 1598 , - 1927 , - 2136 , - 2225 , - 2194 , - 2043 , - 1772 , - 1381 , - 870 , - 239 , - 2368 , - 1497 , - 506 , - 2275 , - 1044 , - 2573 , - 1102 , - 2391 , - 680 , - 1729 , - 2658 , - 587 , - 1276 , - 1845 , - 2294 , - 2623 , - 2832 , - 41 , - 10 , - 2739 , - 2468 , - 2077 , - 1566 , - 935 , - 184 , - 2193 , - 1202 , - 91 , - 1740 , - 389 , - 1798 , - 207 , - 1376 , - 2425 , - 474 , - 1283 , - 1972 , - 2541 , - 110 , - 439 , - 648 , - 737 , - 706 , - 555 , - 284 , - 2773 , - 2262 , - 1631 , - 880 , - 9 , - 1898 , - 787 , - 2436 , - 1085 , - 2494 , - 903 , - 2072 , - 241 , - 1170 , - 1979 , - 2668 , - 357 , - 806 , - 1135 , - 1344 , - 1433 , - 1402 , - 1251 , - 980 , - 589 , - 78 , - 2327 , - 1576 , - 705 , - 2594 , - 1483 , - 252 , - 1781 , - 310 , - 1599 , - 2768 , - 937 , - 1866 , - 2675 , - 484 , - 1053 , - 1502 , - 1831 , - 2040 , - 2129 , - 2098 , - 1947 , - 1676 , - 1285 , - 774 , - 143 , - 2272 , - 1401 , - 410 , - 2179 , - 948 , - 2477 , - 1006 , - 2295 , - 584 , - 1633 , - 2562 , - 491 , - 1180 , - 1749 , - 2198 , - 2527 , - 2736 , - 2825 , - 2794 , - 2643 , - 2372 , - 1981 , - 1470 , - 839 , - 88 , - 2097 , - 1106 , - 2875 , - 1644 , - 293 , - 1702 , - 111 , - 1280 , - 2329 , - 378 , - 1187 , - 1876 , - 2445 , - 14 , - 343 , - 552 , - 641 , - 610 , - 459 , - 188 , - 2677 , - 2166 , - 1535 , - 784 , - 2793 , - 1802 , - 691 , - 2340 , - 989 , - 2398 , - 807 , - 1976 , - 145 , - 1074 , - 1883 , - 2572 , - 261 , - 710 , - 1039 , - 1248 , - 1337 , - 1306 , - 1155 , - 884 , - 493 , - 2862 , - 2231 , - 1480 , - 609 , - 2498 , - 1387 , - 156 , - 1685 , - 214 , - 1503 , - 2672 , - 841 , - 1770 , - 2579 , - 388 , - 957 , - 1406 , - 1735 , - 1944 , - 2033 , - 2002 , - 1851 , - 1580 , - 1189 , - 678 , - 47 , - 2176 , - 1305 , - 314 , - 2083 , - 852 , - 2381 , - 910 , - 2199 , - 488 , - 1537 , - 2466 , - 395 , - 1084 , - 1653 , - 2102 , - 2431 , - 2640 , - 2729 , - 2698 , - 2547 , - 2276 , - 1885 , - 1374 , - 743 , - 2872 , - 2001 , - 1010 , - 2779 , - 1548 , - 197 , - 1606 , - 15 , - 1184 , - 2233 , - 282 , - 1091 , - 1780 , - 2349 , - 2798 , - 247 , - 456 , - 545 , - 514 , - 363 , - 92 , - 2581 , - 2070 , - 1439 , - 688 , - 2697 , - 1706 , - 595 , - 2244 , - 893 , - 2302 , - 711 , - 1880 , - 49 , - 978 , - 1787 , - 2476 , - 165 , - 614 , - 943 , - 1152 , - 1241 , - 1210 , - 1059 , - 788 , - 397 , - 2766 , - 2135 , - 1384 , - 513 , - 2402 , - 1291 , - 60 , - 1589 , - 118 , - 1407 , - 2576 , - 745 , - 1674 , - 2483 , - 292 , - 861 , - 1310 , - 1639 , - 1848 , - 1937 , - 1906 , - 1755 , - 1484 , - 1093 , - 582 , - 2831 , - 2080 , - 1209 , - 218 , - 1987 , - 756 , - 2285 , - 814 , - 2103 , - 392 , - 1441 , - 2370 , - 299 , - 988 , - 1557 , - 2006 , - 2335 , - 2544 , - 2633 , - 2602 , - 2451 , - 2180 , - 1789 , - 1278 , - 647 , - 2776 , - 1905 , - 914 , - 2683 , - 1452 , - 101 , - 1510 , - 2799 , - 1088 , - 2137 , - 186 , - 995 , - 1684 , - 2253 , - 2702 , - 151 , - 360 , - 449 , - 418 , - 267 , - 2876 , - 2485 , - 1974 , - 1343 , - 592 , - 2601 , - 1610 , - 499 , - 2148 , - 797 , - 2206 , - 615 , - 1784 , - 2833 , - 882 , - 1691 , - 2380 , - 69 , - 518 , - 847 , - 1056 , - 1145 , - 1114 , - 963 , - 692 , - 301 , - 2670 , - 2039 , - 1288 , - 417 , - 2306 , - 1195 , - 2844 , - 1493 , - 22 , - 1311 , - 2480 , - 649 , - 1578 , - 2387 , - 196 , - 765 , - 1214 , - 1543 , - 1752 , - 1841 , - 1810 , - 1659 , - 1388 , - 997 , - 486 , - 2735 , - 1984 , - 1113 , - 122 , - 1891 , - 660 , - 2189 , - 718 , - 2007 , - 296 , - 1345 , - 2274 , - 203 , - 892 , - 1461 , - 1910 , - 2239 , - 2448 , - 2537 , - 2506 , - 2355 , - 2084 , - 1693 , - 1182 , - 551 , - 2680 , - 1809 , - 818 , - 2587 , - 1356 , - 5 , - 1414 , - 2703 , - 992 , - 2041 , - 90 , - 899 , - 1588 , - 2157 , - 2606 , - 55 , - 264 , - 353 , - 322 , - 171 , - 2780 , - 2389 , - 1878 , - 1247 , - 496 , - 2505 , - 1514 , - 403 , - 2052 , - 701 , - 2110 , - 519 , - 1688 , - 2737 , - 786 , - 1595 , - 2284 , - 2853 , - 422 , - 751 , - 960 , - 1049 , - 1018 , - 867 , - 596 , - 205 , - 2574 , - 1943 , - 1192 , - 321 , - 2210 , - 1099 , - 2748 , - 1397 , - 2806 , - 1215 , - 2384 , - 553 , - 1482 , - 2291 , - 100 , - 669 , - 1118 , - 1447 , - 1656 , - 1745 , - 1714 , - 1563 , - 1292 , - 901 , - 390 , - 2639 , - 1888 , - 1017 , - 26 , - 1795 , - 564 , - 2093 , - 622 , - 1911 , - 200 , - 1249 , - 2178 , - 107 , - 796 , - 1365 , - 1814 , - 2143 , - 2352 , - 2441 , - 2410 , - 2259 , - 1988 , - 1597 , - 1086 , - 455 , - 2584 , - 1713 , - 722 , - 2491 , - 1260 , - 2789 , - 1318 , - 2607 , - 896 , - 1945 , - 2874 , - 803 , - 1492 , - 2061 , - 2510 , - 2839 , - 168 , - 257 , - 226 , - 75 , - 2684 , - 2293 , - 1782 , - 1151 , - 400 , - 2409 , - 1418 , - 307 , - 1956 , - 605 , - 2014 , - 423 , - 1592 , - 2641 , - 690 , - 1499 , - 2188 , - 2757 , - 326 , - 655 , - 864 , - 953 , - 922 , - 771 , - 500 , - 109 , - 2478 , - 1847 , - 1096 , - 225 , - 2114 , - 1003 , - 2652 , - 1301 , - 2710 , - 1119 , - 2288 , - 457 , - 1386 , - 2195 , - 4 , - 573 , - 1022 , - 1351 , - 1560 , - 1649 , - 1618 , - 1467 , - 1196 , - 805 , - 294 , - 2543 , - 1792 , - 921 , - 2810 , - 1699 , - 468 , - 1997 , - 526 , - 1815 , - 104 , - 1153 , - 2082 , - 11 , - 700 , - 1269 , - 1718 , - 2047 , - 2256 , - 2345 , - 2314 , - 2163 , - 1892 , - 1501 , - 990 , - 359 , - 2488 , - 1617 , - 626 , - 2395 , - 1164 , - 2693 , - 1222 , - 2511 , - 800 , - 1849 , - 2778 , - 707 , - 1396 , - 1965 , - 2414 , - 2743 , - 72 , - 161 , - 130 , - 2859 , - 2588 , - 2197 , - 1686 , - 1055 , - 304 , - 2313 , - 1322 , - 211 , - 1860 , - 509 , - 1918 , - 327 , - 1496 , - 2545 , - 594 , - 1403 , - 2092 , - 2661 , - 230 , - 559 , - 768 , - 857 , - 826 , - 675 , - 404 , - 13 , - 2382 , - 1751 , - 1000 , - 129 , - 2018 , - 907 , - 2556 , - 1205 , - 2614 , - 1023 , - 2192 , - 361 , - 1290 , - 2099 , - 2788 , - 477 , - 926 , - 1255 , - 1464 , - 1553 , - 1522 , - 1371 , - 1100 , - 709 , - 198 , - 2447 , - 1696 , - 825 , - 2714 , - 1603 , - 372 , - 1901 , - 430 , - 1719 , - 8 , - 1057 , - 1986 , - 2795 , - 604 , - 1173 , - 1622 , - 1951 , - 2160 , - 2249 , - 2218 , - 2067 , - 1796 , - 1405 , - 894 , - 263 , - 2392 , - 1521 , - 530 , - 2299 , - 1068 , - 2597 , - 1126 , - 2415 , - 704 , - 1753 , - 2682 , - 611 , - 1300 , - 1869 , - 2318 , - 2647 , - 2856 , - 65 , - 34 , - 2763 , - 2492 , - 2101 , - 1590 , - 959 , - 208 , - 2217 , - 1226 , - 115 , - 1764 , - 413 , - 1822 , - 231 , - 1400 , - 2449 , - 498 , - 1307 , - 1996 , - 2565 , - 134 , - 463 , - 672 , - 761 , - 730 , - 579 , - 308 , - 2797 , - 2286 , - 1655 , - 904 , - 33 , - 1922 , - 811 , - 2460 , - 1109 , - 2518 , - 927 , - 2096 , - 265 , - 1194 , - 2003 , - 2692 , - 381 , - 830 , - 1159 , - 1368 , - 1457 , - 1426 , - 1275 , - 1004 , - 613 , - 102 , - 2351 , - 1600 , - 729 , - 2618 , - 1507 , - 276 , - 1805 , - 334 , - 1623 , - 2792 , - 961 , - 1890 , - 2699 , - 508 , - 1077 , - 1526 , - 1855 , - 2064 , - 2153 , - 2122 , - 1971 , - 1700 , - 1309 , - 798 , - 167 , - 2296 , - 1425 , - 434 , - 2203 , - 972 , - 2501 , - 1030 , - 2319 , - 608 , - 1657 , - 2586 , - 515 , - 1204 , - 1773 , - 2222 , - 2551 , - 2760 , - 2849 , - 2818 , - 2667 , - 2396 , - 2005 , - 1494 , - 863 , - 112 , - 2121 , - 1130 , - 19 , - 1668 , - 317 , - 1726 , - 135 , - 1304 , - 2353 , - 402 , - 1211 , - 1900 , - 2469 , - 38 , - 367 , - 576 , - 665 , - 634 , - 483 , - 212 , - 2701 , - 2190 , - 1559 , - 808 , - 2817 , - 1826 , - 715 , - 2364 , - 1013 , - 2422 , - 831 , - 2000 , - 169 , - 1098 , - 1907 , - 2596 , - 285 , - 734 , - 1063 , - 1272 , - 1361 , - 1330 , - 1179 , - 908 , - 517 , - 6 , - 2255 , - 1504 , - 633 , - 2522 , - 1411 , - 180 , - 1709 , - 238 , - 1527 , - 2696 , - 865 , - 1794 , - 2603 , - 412 , - 981 , - 1430 , - 1759 , - 1968 , - 2057 , - 2026 , - 1875 , - 1604 , - 1213 , - 702 , - 71 , - 2200 , - 1329 , - 338 , - 2107 , - 876 , - 2405 , - 934 , - 2223 , - 512 , - 1561 , - 2490 , - 419 , - 1108 , - 1677 , - 2126 , - 2455 , - 2664 , - 2753 , - 2722 , - 2571 , - 2300 , - 1909 , - 1398 , - 767 , - 16 , - 2025 , - 1034 , - 2803 , - 1572 , - 221 , - 1630 , - 39 , - 1208 , - 2257 , - 306 , - 1115 , - 1804 , - 2373 , - 2822 , - 271 , - 480 , - 569 , - 538 , - 387 , - 116 , - 2605 , - 2094 , - 1463 , - 712 , - 2721 , - 1730 , - 619 , - 2268 , - 917 , - 2326 , - 735 , - 1904 , - 73 , - 1002 , - 1811 , - 2500 , - 189 , - 638 , - 967 , - 1176 , - 1265 , - 1234 , - 1083 , - 812 , - 421 , - 2790 , - 2159 , - 1408 , - 537 , - 2426 , - 1315 , - 84 , - 1613 , - 142 , - 1431 , - 2600 , - 769 , - 1698 , - 2507 , - 316 , - 885 , - 1334 , - 1663 , - 1872 , - 1961 , - 1930 , - 1779 , - 1508 , - 1117 , - 606 , - 2855 , - 2104 , - 1233 , - 242 , - 2011 , - 780 , - 2309 , - 838 , - 2127 , - 416 , - 1465 , - 2394 , - 323 , - 1012 , - 1581 , - 2030 , - 2359 , - 2568 , - 2657 , - 2626 , - 2475 , - 2204 , - 1813 , - 1302 , - 671 , - 2800 , - 1929 , - 938 , - 2707 , - 1476 , - 125 , - 1534 , - 2823 , - 1112 , - 2161 , - 210 , - 1019 , - 1708 , - 2277 , - 2726 , - 175 , - 384 , - 473 , - 442 , - 291 , - 20 , - 2509 , - 1998 , - 1367 , - 616 , - 2625 , - 1634 , - 523 , - 2172 , - 821 , - 2230 , - 639 , - 1808 , - 2857 , - 906 , - 1715 , - 2404 , - 93 , - 542 , - 871 , - 1080 , - 1169 , - 1138 , - 987 , - 716 , - 325 , - 2694 , - 2063 , - 1312 , - 441 , - 2330 , - 1219 , - 2868 , - 1517 , - 46 , - 1335 , - 2504 , - 673 , - 1602 , - 2411 , - 220 , - 789 , - 1238 , - 1567 , - 1776 , - 1865 , - 1834 , - 1683 , - 1412 , - 1021 , - 510 , - 2759 , - 2008 , - 1137 , - 146 , - 1915 , - 684 , - 2213 , - 742 , - 2031 , - 320 , - 1369 , - 2298 , - 227 , - 916 , - 1485 , - 1934 , - 2263 , - 2472 , - 2561 , - 2530 , - 2379 , - 2108 , - 1717 , - 1206 , - 575 , - 2704 , - 1833 , - 842 , - 2611 , - 1380 , - 29 , - 1438 , - 2727 , - 1016 , - 2065 , - 114 , - 923 , - 1612 , - 2181 , - 2630 , - 79 , - 288 , - 377 , - 346 , - 195 , - 2804 , - 2413 , - 1902 , - 1271 , - 520 , - 2529 , - 1538 , - 427 , - 2076 , - 725 , - 2134 , - 543 , - 1712 , - 2761 , - 810 , - 1619 , - 2308 , - 2877 , - 446 , - 775 , - 984 , - 1073 , - 1042 , - 891 , - 620 , - 229 , - 2598 , - 1967 , - 1216 , - 345 , - 2234 , - 1123 , - 2772 , - 1421 , - 2830 , - 1239 , - 2408 , - 577 , - 1506 , - 2315 , - 124 , - 693 , - 1142 , - 1471 , - 1680 , - 1769 , - 1738 , - 1587 , - 1316 , - 925 , - 414 , - 2663 , - 1912 , - 1041 , - 50 , - 1819 , - 588 , - 2117 , - 646 , - 1935 , - 224 , - 1273 , - 2202 , - 131 , - 820 , - 1389 , - 1838 , - 2167 , - 2376 , - 2465 , - 2434 , - 2283 , - 2012 , - 1621 , - 1110 , - 479 , - 2608 , - 1737 , - 746 , - 2515 , - 1284 , - 2813 , - 1342 , - 2631 , - 920 , - 1969 , - 18 , - 827 , - 1516 , - 2085 , - 2534 , - 2863 , - 192 , - 281 , - 250 , - 99 , - 2708 , - 2317 , - 1806 , - 1175 , - 424 , - 2433 , - 1442 , - 331 , - 1980 , - 629 , - 2038 , - 447 , - 1616 , - 2665 , - 714 , - 1523 , - 2212 , - 2781 , - 350 , - 679 , - 888 , - 977 , - 946 , - 795 , - 524 , - 133 , - 2502 , - 1871 , - 1120 , - 249 , - 2138 , - 1027 , - 2676 , - 1325 , - 2734 , - 1143 , - 2312 , - 481 , - 1410 , - 2219 , - 28 , - 597 , - 1046 , - 1375 , - 1584 , - 1673 , - 1642 , - 1491 , - 1220 , - 829 , - 318 , - 2567 , - 1816 , - 945 , - 2834 , - 1723 , - 492 , - 2021 , - 550 , - 1839 , - 128 , - 1177 , - 2106 , - 35 , - 724 , - 1293 , - 1742 , - 2071 , - 2280 , - 2369 , - 2338 , - 2187 , - 1916 , - 1525 , - 1014 , - 383 , - 2512 , - 1641 , - 650 , - 2419 , - 1188 , - 2717 , - 1246 , - 2535 , - 824 , - 1873 , - 2802 , - 731 , - 1420 , - 1989 , - 2438 , - 2767 , - 96 , - 185 , - 154 , - 3 , - 2612 , - 2221 , - 1710 , - 1079 , - 328 , - 2337 , - 1346 , - 235 , - 1884 , - 533 , - 1942 , - 351 , - 1520 , - 2569 , - 618 , - 1427 , - 2116 , - 2685 , - 254 , - 583 , - 792 , - 881 , - 850 , - 699 , - 428 , - 37 , - 2406 , - 1775 , - 1024 , - 153 , - 2042 , - 931 , - 2580 , - 1229 , - 2638 , - 1047 , - 2216 , - 385 , - 1314 , - 2123 , - 2812 , - 501 , - 950 , - 1279 , - 1488 , - 1577 , - 1546 , - 1395 , - 1124 , - 733 , - 222 , - 2471 , - 1720 , - 849 , - 2738 , - 1627 , - 396 , - 1925 , - 454 , - 1743 , - 32 , - 1081 , - 2010 , - 2819 , - 628 , - 1197 , - 1646 , - 1975 , - 2184 , - 2273 , - 2242 , - 2091 , - 1820 , - 1429 , - 918 , - 287 , - 2416 , - 1545 , - 554 , - 2323 , - 1092 , - 2621 , - 1150 , - 2439 , - 728 , - 1777 , - 2706 , - 635 , - 1324 , - 1893 , - 2342 , - 2671 , - 0 , - 2713 , - 1562 , - 963 , - 2388 , - 1421 , - 2478 , - 1143 , - 1832 , - 129 , - 450 , - 1323 , - 1276 , - 1781 , - 1366 , - 1503 , - 720 , - 489 , - 2282 , - 1683 , - 164 , - 2141 , - 254 , - 1863 , - 2552 , - 849 , - 1170 , - 2043 , - 1996 , - 2501 , - 2086 , - 2223 , - 1440 , - 1209 , - 58 , - 2403 , - 884 , - 2861 , - 974 , - 2583 , - 328 , - 1569 , - 1890 , - 2763 , - 2716 , - 277 , - 2806 , - 2943 , - 2160 , - 1929 , - 778 , - 179 , - 1604 , - 637 , - 1694 , - 359 , - 1048 , - 2289 , - 2610 , - 539 , - 492 , - 997 , - 582 , - 719 , - 2880 , - 2649 , - 1498 , - 899 , - 2324 , - 1357 , - 2414 , - 1079 , - 1768 , - 65 , - 386 , - 1259 , - 1212 , - 1717 , - 1302 , - 1439 , - 656 , - 425 , - 2218 , - 1619 , - 100 , - 2077 , - 190 , - 1799 , - 2488 , - 785 , - 1106 , - 1979 , - 1932 , - 2437 , - 2022 , - 2159 , - 1376 , - 1145 , - 2938 , - 2339 , - 820 , - 2797 , - 910 , - 2519 , - 264 , - 1505 , - 1826 , - 2699 , - 2652 , - 213 , - 2742 , - 2879 , - 2096 , - 1865 , - 714 , - 115 , - 1540 , - 573 , - 1630 , - 295 , - 984 , - 2225 , - 2546 , - 475 , - 428 , - 933 , - 518 , - 655 , - 2816 , - 2585 , - 1434 , - 835 , - 2260 , - 1293 , - 2350 , - 1015 , - 1704 , - 1 , - 322 , - 1195 , - 1148 , - 1653 , - 1238 , - 1375 , - 592 , - 361 , - 2154 , - 1555 , - 36 , - 2013 , - 126 , - 1735 , - 2424 , - 721 , - 1042 , - 1915 , - 1868 , - 2373 , - 1958 , - 2095 , - 1312 , - 1081 , - 2874 , - 2275 , - 756 , - 2733 , - 846 , - 2455 , - 200 , - 1441 , - 1762 , - 2635 , - 2588 , - 149 , - 2678 , - 2815 , - 2032 , - 1801 , - 650 , - 51 , - 1476 , - 509 , - 1566 , - 231 , - 920 , - 2161 , - 2482 , - 411 , - 364 , - 869 , - 454 , - 591 , - 2752 , - 2521 , - 1370 , - 771 , - 2196 , - 1229 , - 2286 , - 951 , - 1640 , - 2881 , - 258 , - 1131 , - 1084 , - 1589 , - 1174 , - 1311 , - 528 , - 297 , - 2090 , - 1491 , - 2916 , - 1949 , - 62 , - 1671 , - 2360 , - 657 , - 978 , - 1851 , - 1804 , - 2309 , - 1894 , - 2031 , - 1248 , - 1017 , - 2810 , - 2211 , - 692 , - 2669 , - 782 , - 2391 , - 136 , - 1377 , - 1698 , - 2571 , - 2524 , - 85 , - 2614 , - 2751 , - 1968 , - 1737 , - 586 , - 2931 , - 1412 , - 445 , - 1502 , - 167 , - 856 , - 2097 , - 2418 , - 347 , - 300 , - 805 , - 390 , - 527 , - 2688 , - 2457 , - 1306 , - 707 , - 2132 , - 1165 , - 2222 , - 887 , - 1576 , - 2817 , - 194 , - 1067 , - 1020 , - 1525 , - 1110 , - 1247 , - 464 , - 233 , - 2026 , - 1427 , - 2852 , - 1885 , - 2942 , - 1607 , - 2296 , - 593 , - 914 , - 1787 , - 1740 , - 2245 , - 1830 , - 1967 , - 1184 , - 953 , - 2746 , - 2147 , - 628 , - 2605 , - 718 , - 2327 , - 72 , - 1313 , - 1634 , - 2507 , - 2460 , - 21 , - 2550 , - 2687 , - 1904 , - 1673 , - 522 , - 2867 , - 1348 , - 381 , - 1438 , - 103 , - 792 , - 2033 , - 2354 , - 283 , - 236 , - 741 , - 326 , - 463 , - 2624 , - 2393 , - 1242 , - 643 , - 2068 , - 1101 , - 2158 , - 823 , - 1512 , - 2753 , - 130 , - 1003 , - 956 , - 1461 , - 1046 , - 1183 , - 400 , - 169 , - 1962 , - 1363 , - 2788 , - 1821 , - 2878 , - 1543 , - 2232 , - 529 , - 850 , - 1723 , - 1676 , - 2181 , - 1766 , - 1903 , - 1120 , - 889 , - 2682 , - 2083 , - 564 , - 2541 , - 654 , - 2263 , - 8 , - 1249 , - 1570 , - 2443 , - 2396 , - 2901 , - 2486 , - 2623 , - 1840 , - 1609 , - 458 , - 2803 , - 1284 , - 317 , - 1374 , - 39 , - 728 , - 1969 , - 2290 , - 219 , - 172 , - 677 , - 262 , - 399 , - 2560 , - 2329 , - 1178 , - 579 , - 2004 , - 1037 , - 2094 , - 759 , - 1448 , - 2689 , - 66 , - 939 , - 892 , - 1397 , - 982 , - 1119 , - 336 , - 105 , - 1898 , - 1299 , - 2724 , - 1757 , - 2814 , - 1479 , - 2168 , - 465 , - 786 , - 1659 , - 1612 , - 2117 , - 1702 , - 1839 , - 1056 , - 825 , - 2618 , - 2019 , - 500 , - 2477 , - 590 , - 2199 , - 2888 , - 1185 , - 1506 , - 2379 , - 2332 , - 2837 , - 2422 , - 2559 , - 1776 , - 1545 , - 394 , - 2739 , - 1220 , - 253 , - 1310 , - 2919 , - 664 , - 1905 , - 2226 , - 155 , - 108 , - 613 , - 198 , - 335 , - 2496 , - 2265 , - 1114 , - 515 , - 1940 , - 973 , - 2030 , - 695 , - 1384 , - 2625 , - 2 , - 875 , - 828 , - 1333 , - 918 , - 1055 , - 272 , - 41 , - 1834 , - 1235 , - 2660 , - 1693 , - 2750 , - 1415 , - 2104 , - 401 , - 722 , - 1595 , - 1548 , - 2053 , - 1638 , - 1775 , - 992 , - 761 , - 2554 , - 1955 , - 436 , - 2413 , - 526 , - 2135 , - 2824 , - 1121 , - 1442 , - 2315 , - 2268 , - 2773 , - 2358 , - 2495 , - 1712 , - 1481 , - 330 , - 2675 , - 1156 , - 189 , - 1246 , - 2855 , - 600 , - 1841 , - 2162 , - 91 , - 44 , - 549 , - 134 , - 271 , - 2432 , - 2201 , - 1050 , - 451 , - 1876 , - 909 , - 1966 , - 631 , - 1320 , - 2561 , - 2882 , - 811 , - 764 , - 1269 , - 854 , - 991 , - 208 , - 2921 , - 1770 , - 1171 , - 2596 , - 1629 , - 2686 , - 1351 , - 2040 , - 337 , - 658 , - 1531 , - 1484 , - 1989 , - 1574 , - 1711 , - 928 , - 697 , - 2490 , - 1891 , - 372 , - 2349 , - 462 , - 2071 , - 2760 , - 1057 , - 1378 , - 2251 , - 2204 , - 2709 , - 2294 , - 2431 , - 1648 , - 1417 , - 266 , - 2611 , - 1092 , - 125 , - 1182 , - 2791 , - 536 , - 1777 , - 2098 , - 27 , - 2924 , - 485 , - 70 , - 207 , - 2368 , - 2137 , - 986 , - 387 , - 1812 , - 845 , - 1902 , - 567 , - 1256 , - 2497 , - 2818 , - 747 , - 700 , - 1205 , - 790 , - 927 , - 144 , - 2857 , - 1706 , - 1107 , - 2532 , - 1565 , - 2622 , - 1287 , - 1976 , - 273 , - 594 , - 1467 , - 1420 , - 1925 , - 1510 , - 1647 , - 864 , - 633 , - 2426 , - 1827 , - 308 , - 2285 , - 398 , - 2007 , - 2696 , - 993 , - 1314 , - 2187 , - 2140 , - 2645 , - 2230 , - 2367 , - 1584 , - 1353 , - 202 , - 2547 , - 1028 , - 61 , - 1118 , - 2727 , - 472 , - 1713 , - 2034 , - 2907 , - 2860 , - 421 , - 6 , - 143 , - 2304 , - 2073 , - 922 , - 323 , - 1748 , - 781 , - 1838 , - 503 , - 1192 , - 2433 , - 2754 , - 683 , - 636 , - 1141 , - 726 , - 863 , - 80 , - 2793 , - 1642 , - 1043 , - 2468 , - 1501 , - 2558 , - 1223 , - 1912 , - 209 , - 530 , - 1403 , - 1356 , - 1861 , - 1446 , - 1583 , - 800 , - 569 , - 2362 , - 1763 , - 244 , - 2221 , - 334 , - 1943 , - 2632 , - 929 , - 1250 , - 2123 , - 2076 , - 2581 , - 2166 , - 2303 , - 1520 , - 1289 , - 138 , - 2483 , - 964 , - 2941 , - 1054 , - 2663 , - 408 , - 1649 , - 1970 , - 2843 , - 2796 , - 357 , - 2886 , - 79 , - 2240 , - 2009 , - 858 , - 259 , - 1684 , - 717 , - 1774 , - 439 , - 1128 , - 2369 , - 2690 , - 619 , - 572 , - 1077 , - 662 , - 799 , - 16 , - 2729 , - 1578 , - 979 , - 2404 , - 1437 , - 2494 , - 1159 , - 1848 , - 145 , - 466 , - 1339 , - 1292 , - 1797 , - 1382 , - 1519 , - 736 , - 505 , - 2298 , - 1699 , - 180 , - 2157 , - 270 , - 1879 , - 2568 , - 865 , - 1186 , - 2059 , - 2012 , - 2517 , - 2102 , - 2239 , - 1456 , - 1225 , - 74 , - 2419 , - 900 , - 2877 , - 990 , - 2599 , - 344 , - 1585 , - 1906 , - 2779 , - 2732 , - 293 , - 2822 , - 15 , - 2176 , - 1945 , - 794 , - 195 , - 1620 , - 653 , - 1710 , - 375 , - 1064 , - 2305 , - 2626 , - 555 , - 508 , - 1013 , - 598 , - 735 , - 2896 , - 2665 , - 1514 , - 915 , - 2340 , - 1373 , - 2430 , - 1095 , - 1784 , - 81 , - 402 , - 1275 , - 1228 , - 1733 , - 1318 , - 1455 , - 672 , - 441 , - 2234 , - 1635 , - 116 , - 2093 , - 206 , - 1815 , - 2504 , - 801 , - 1122 , - 1995 , - 1948 , - 2453 , - 2038 , - 2175 , - 1392 , - 1161 , - 10 , - 2355 , - 836 , - 2813 , - 926 , - 2535 , - 280 , - 1521 , - 1842 , - 2715 , - 2668 , - 229 , - 2758 , - 2895 , - 2112 , - 1881 , - 730 , - 131 , - 1556 , - 589 , - 1646 , - 311 , - 1000 , - 2241 , - 2562 , - 491 , - 444 , - 949 , - 534 , - 671 , - 2832 , - 2601 , - 1450 , - 851 , - 2276 , - 1309 , - 2366 , - 1031 , - 1720 , - 17 , - 338 , - 1211 , - 1164 , - 1669 , - 1254 , - 1391 , - 608 , - 377 , - 2170 , - 1571 , - 52 , - 2029 , - 142 , - 1751 , - 2440 , - 737 , - 1058 , - 1931 , - 1884 , - 2389 , - 1974 , - 2111 , - 1328 , - 1097 , - 2890 , - 2291 , - 772 , - 2749 , - 862 , - 2471 , - 216 , - 1457 , - 1778 , - 2651 , - 2604 , - 165 , - 2694 , - 2831 , - 2048 , - 1817 , - 666 , - 67 , - 1492 , - 525 , - 1582 , - 247 , - 936 , - 2177 , - 2498 , - 427 , - 380 , - 885 , - 470 , - 607 , - 2768 , - 2537 , - 1386 , - 787 , - 2212 , - 1245 , - 2302 , - 967 , - 1656 , - 2897 , - 274 , - 1147 , - 1100 , - 1605 , - 1190 , - 1327 , - 544 , - 313 , - 2106 , - 1507 , - 2932 , - 1965 , - 78 , - 1687 , - 2376 , - 673 , - 994 , - 1867 , - 1820 , - 2325 , - 1910 , - 2047 , - 1264 , - 1033 , - 2826 , - 2227 , - 708 , - 2685 , - 798 , - 2407 , - 152 , - 1393 , - 1714 , - 2587 , - 2540 , - 101 , - 2630 , - 2767 , - 1984 , - 1753 , - 602 , - 3 , - 1428 , - 461 , - 1518 , - 183 , - 872 , - 2113 , - 2434 , - 363 , - 316 , - 821 , - 406 , - 543 , - 2704 , - 2473 , - 1322 , - 723 , - 2148 , - 1181 , - 2238 , - 903 , - 1592 , - 2833 , - 210 , - 1083 , - 1036 , - 1541 , - 1126 , - 1263 , - 480 , - 249 , - 2042 , - 1443 , - 2868 , - 1901 , - 14 , - 1623 , - 2312 , - 609 , - 930 , - 1803 , - 1756 , - 2261 , - 1846 , - 1983 , - 1200 , - 969 , - 2762 , - 2163 , - 644 , - 2621 , - 734 , - 2343 , - 88 , - 1329 , - 1650 , - 2523 , - 2476 , - 37 , - 2566 , - 2703 , - 1920 , - 1689 , - 538 , - 2883 , - 1364 , - 397 , - 1454 , - 119 , - 808 , - 2049 , - 2370 , - 299 , - 252 , - 757 , - 342 , - 479 , - 2640 , - 2409 , - 1258 , - 659 , - 2084 , - 1117 , - 2174 , - 839 , - 1528 , - 2769 , - 146 , - 1019 , - 972 , - 1477 , - 1062 , - 1199 , - 416 , - 185 , - 1978 , - 1379 , - 2804 , - 1837 , - 2894 , - 1559 , - 2248 , - 545 , - 866 , - 1739 , - 1692 , - 2197 , - 1782 , - 1919 , - 1136 , - 905 , - 2698 , - 2099 , - 580 , - 2557 , - 670 , - 2279 , - 24 , - 1265 , - 1586 , - 2459 , - 2412 , - 2917 , - 2502 , - 2639 , - 1856 , - 1625 , - 474 , - 2819 , - 1300 , - 333 , - 1390 , - 55 , - 744 , - 1985 , - 2306 , - 235 , - 188 , - 693 , - 278 , - 415 , - 2576 , - 2345 , - 1194 , - 595 , - 2020 , - 1053 , - 2110 , - 775 , - 1464 , - 2705 , - 82 , - 955 , - 908 , - 1413 , - 998 , - 1135 , - 352 , - 121 , - 1914 , - 1315 , - 2740 , - 1773 , - 2830 , - 1495 , - 2184 , - 481 , - 802 , - 1675 , - 1628 , - 2133 , - 1718 , - 1855 , - 1072 , - 841 , - 2634 , - 2035 , - 516 , - 2493 , - 606 , - 2215 , - 2904 , - 1201 , - 1522 , - 2395 , - 2348 , - 2853 , - 2438 , - 2575 , - 1792 , - 1561 , - 410 , - 2755 , - 1236 , - 269 , - 1326 , - 2935 , - 680 , - 1921 , - 2242 , - 171 , - 124 , - 629 , - 214 , - 351 , - 2512 , - 2281 , - 1130 , - 531 , - 1956 , - 989 , - 2046 , - 711 , - 1400 , - 2641 , - 18 , - 891 , - 844 , - 1349 , - 934 , - 1071 , - 288 , - 57 , - 1850 , - 1251 , - 2676 , - 1709 , - 2766 , - 1431 , - 2120 , - 417 , - 738 , - 1611 , - 1564 , - 2069 , - 1654 , - 1791 , - 1008 , - 777 , - 2570 , - 1971 , - 452 , - 2429 , - 542 , - 2151 , - 2840 , - 1137 , - 1458 , - 2331 , - 2284 , - 2789 , - 2374 , - 2511 , - 1728 , - 1497 , - 346 , - 2691 , - 1172 , - 205 , - 1262 , - 2871 , - 616 , - 1857 , - 2178 , - 107 , - 60 , - 565 , - 150 , - 287 , - 2448 , - 2217 , - 1066 , - 467 , - 1892 , - 925 , - 1982 , - 647 , - 1336 , - 2577 , - 2898 , - 827 , - 780 , - 1285 , - 870 , - 1007 , - 224 , - 2937 , - 1786 , - 1187 , - 2612 , - 1645 , - 2702 , - 1367 , - 2056 , - 353 , - 674 , - 1547 , - 1500 , - 2005 , - 1590 , - 1727 , - 944 , - 713 , - 2506 , - 1907 , - 388 , - 2365 , - 478 , - 2087 , - 2776 , - 1073 , - 1394 , - 2267 , - 2220 , - 2725 , - 2310 , - 2447 , - 1664 , - 1433 , - 282 , - 2627 , - 1108 , - 141 , - 1198 , - 2807 , - 552 , - 1793 , - 2114 , - 43 , - 2940 , - 501 , - 86 , - 223 , - 2384 , - 2153 , - 1002 , - 403 , - 1828 , - 861 , - 1918 , - 583 , - 1272 , - 2513 , - 2834 , - 763 , - 716 , - 1221 , - 806 , - 943 , - 160 , - 2873 , - 1722 , - 1123 , - 2548 , - 1581 , - 2638 , - 1303 , - 1992 , - 289 , - 610 , - 1483 , - 1436 , - 1941 , - 1526 , - 1663 , - 880 , - 649 , - 2442 , - 1843 , - 324 , - 2301 , - 414 , - 2023 , - 2712 , - 1009 , - 1330 , - 2203 , - 2156 , - 2661 , - 2246 , - 2383 , - 1600 , - 1369 , - 218 , - 2563 , - 1044 , - 77 , - 1134 , - 2743 , - 488 , - 1729 , - 2050 , - 2923 , - 2876 , - 437 , - 22 , - 159 , - 2320 , - 2089 , - 938 , - 339 , - 1764 , - 797 , - 1854 , - 519 , - 1208 , - 2449 , - 2770 , - 699 , - 652 , - 1157 , - 742 , - 879 , - 96 , - 2809 , - 1658 , - 1059 , - 2484 , - 1517 , - 2574 , - 1239 , - 1928 , - 225 , - 546 , - 1419 , - 1372 , - 1877 , - 1462 , - 1599 , - 816 , - 585 , - 2378 , - 1779 , - 260 , - 2237 , - 350 , - 1959 , - 2648 , - 945 , - 1266 , - 2139 , - 2092 , - 2597 , - 2182 , - 2319 , - 1536 , - 1305 , - 154 , - 2499 , - 980 , - 13 , - 1070 , - 2679 , - 424 , - 1665 , - 1986 , - 2859 , - 2812 , - 373 , - 2902 , - 95 , - 2256 , - 2025 , - 874 , - 275 , - 1700 , - 733 , - 1790 , - 455 , - 1144 , - 2385 , - 2706 , - 635 , - 588 , - 1093 , - 678 , - 815 , - 32 , - 2745 , - 1594 , - 995 , - 2420 , - 1453 , - 2510 , - 1175 , - 1864 , - 161 , - 482 , - 1355 , - 1308 , - 1813 , - 1398 , - 1535 , - 752 , - 521 , - 2314 , - 1715 , - 196 , - 2173 , - 286 , - 1895 , - 2584 , - 881 , - 1202 , - 2075 , - 2028 , - 2533 , - 2118 , - 2255 , - 1472 , - 1241 , - 90 , - 2435 , - 916 , - 2893 , - 1006 , - 2615 , - 360 , - 1601 , - 1922 , - 2795 , - 2748 , - 309 , - 2838 , - 31 , - 2192 , - 1961 , - 810 , - 211 , - 1636 , - 669 , - 1726 , - 391 , - 1080 , - 2321 , - 2642 , - 571 , - 524 , - 1029 , - 614 , - 751 , - 2912 , - 2681 , - 1530 , - 931 , - 2356 , - 1389 , - 2446 , - 1111 , - 1800 , - 97 , - 418 , - 1291 , - 1244 , - 1749 , - 1334 , - 1471 , - 688 , - 457 , - 2250 , - 1651 , - 132 , - 2109 , - 222 , - 1831 , - 2520 , - 817 , - 1138 , - 2011 , - 1964 , - 2469 , - 2054 , - 2191 , - 1408 , - 1177 , - 26 , - 2371 , - 852 , - 2829 , - 942 , - 2551 , - 296 , - 1537 , - 1858 , - 2731 , - 2684 , - 245 , - 2774 , - 2911 , - 2128 , - 1897 , - 746 , - 147 , - 1572 , - 605 , - 1662 , - 327 , - 1016 , - 2257 , - 2578 , - 507 , - 460 , - 965 , - 550 , - 687 , - 2848 , - 2617 , - 1466 , - 867 , - 2292 , - 1325 , - 2382 , - 1047 , - 1736 , - 33 , - 354 , - 1227 , - 1180 , - 1685 , - 1270 , - 1407 , - 624 , - 393 , - 2186 , - 1587 , - 68 , - 2045 , - 158 , - 1767 , - 2456 , - 753 , - 1074 , - 1947 , - 1900 , - 2405 , - 1990 , - 2127 , - 1344 , - 1113 , - 2906 , - 2307 , - 788 , - 2765 , - 878 , - 2487 , - 232 , - 1473 , - 1794 , - 2667 , - 2620 , - 181 , - 2710 , - 2847 , - 2064 , - 1833 , - 682 , - 83 , - 1508 , - 541 , - 1598 , - 263 , - 952 , - 2193 , - 2514 , - 443 , - 396 , - 901 , - 486 , - 623 , - 2784 , - 2553 , - 1402 , - 803 , - 2228 , - 1261 , - 2318 , - 983 , - 1672 , - 2913 , - 290 , - 1163 , - 1116 , - 1621 , - 1206 , - 1343 , - 560 , - 329 , - 2122 , - 1523 , - 4 , - 1981 , - 94 , - 1703 , - 2392 , - 689 , - 1010 , - 1883 , - 1836 , - 2341 , - 1926 , - 2063 , - 1280 , - 1049 , - 2842 , - 2243 , - 724 , - 2701 , - 814 , - 2423 , - 168 , - 1409 , - 1730 , - 2603 , - 2556 , - 117 , - 2646 , - 2783 , - 2000 , - 1769 , - 618 , - 19 , - 1444 , - 477 , - 1534 , - 199 , - 888 , - 2129 , - 2450 , - 379 , - 332 , - 837 , - 422 , - 559 , - 2720 , - 2489 , - 1338 , - 739 , - 2164 , - 1197 , - 2254 , - 919 , - 1608 , - 2849 , - 226 , - 1099 , - 1052 , - 1557 , - 1142 , - 1279 , - 496 , - 265 , - 2058 , - 1459 , - 2884 , - 1917 , - 30 , - 1639 , - 2328 , - 625 , - 946 , - 1819 , - 1772 , - 2277 , - 1862 , - 1999 , - 1216 , - 985 , - 2778 , - 2179 , - 660 , - 2637 , - 750 , - 2359 , - 104 , - 1345 , - 1666 , - 2539 , - 2492 , - 53 , - 2582 , - 2719 , - 1936 , - 1705 , - 554 , - 2899 , - 1380 , - 413 , - 1470 , - 135 , - 824 , - 2065 , - 2386 , - 315 , - 268 , - 773 , - 358 , - 495 , - 2656 , - 2425 , - 1274 , - 675 , - 2100 , - 1133 , - 2190 , - 855 , - 1544 , - 2785 , - 162 , - 1035 , - 988 , - 1493 , - 1078 , - 1215 , - 432 , - 201 , - 1994 , - 1395 , - 2820 , - 1853 , - 2910 , - 1575 , - 2264 , - 561 , - 882 , - 1755 , - 1708 , - 2213 , - 1798 , - 1935 , - 1152 , - 921 , - 2714 , - 2115 , - 596 , - 2573 , - 686 , - 2295 , - 40 , - 1281 , - 1602 , - 2475 , - 2428 , - 2933 , - 2518 , - 2655 , - 1872 , - 1641 , - 490 , - 2835 , - 1316 , - 349 , - 1406 , - 71 , - 760 , - 2001 , - 2322 , - 251 , - 204 , - 709 , - 294 , - 431 , - 2592 , - 2361 , - 1210 , - 611 , - 2036 , - 1069 , - 2126 , - 791 , - 1480 , - 2721 , - 98 , - 971 , - 924 , - 1429 , - 1014 , - 1151 , - 368 , - 137 , - 1930 , - 1331 , - 2756 , - 1789 , - 2846 , - 1511 , - 2200 , - 497 , - 818 , - 1691 , - 1644 , - 2149 , - 1734 , - 1871 , - 1088 , - 857 , - 2650 , - 2051 , - 532 , - 2509 , - 622 , - 2231 , - 2920 , - 1217 , - 1538 , - 2411 , - 2364 , - 2869 , - 2454 , - 2591 , - 1808 , - 1577 , - 426 , - 2771 , - 1252 , - 285 , - 1342 , - 7 , - 696 , - 1937 , - 2258 , - 187 , - 140 , - 645 , - 230 , - 367 , - 2528 , - 2297 , - 1146 , - 547 , - 1972 , - 1005 , - 2062 , - 727 , - 1416 , - 2657 , - 34 , - 907 , - 860 , - 1365 , - 950 , - 1087 , - 304 , - 73 , - 1866 , - 1267 , - 2692 , - 1725 , - 2782 , - 1447 , - 2136 , - 433 , - 754 , - 1627 , - 1580 , - 2085 , - 1670 , - 1807 , - 1024 , - 793 , - 2586 , - 1987 , - 468 , - 2445 , - 558 , - 2167 , - 2856 , - 1153 , - 1474 , - 2347 , - 2300 , - 2805 , - 2390 , - 2527 , - 1744 , - 1513 , - 362 , - 2707 , - 1188 , - 221 , - 1278 , - 2887 , - 632 , - 1873 , - 2194 , - 123 , - 76 , - 581 , - 166 , - 303 , - 2464 , - 2233 , - 1082 , - 483 , - 1908 , - 941 , - 1998 , - 663 , - 1352 , - 2593 , - 2914 , - 843 , - 796 , - 1301 , - 886 , - 1023 , - 240 , - 9 , - 1802 , - 1203 , - 2628 , - 1661 , - 2718 , - 1383 , - 2072 , - 369 , - 690 , - 1563 , - 1516 , - 2021 , - 1606 , - 1743 , - 960 , - 729 , - 2522 , - 1923 , - 404 , - 2381 , - 494 , - 2103 , - 2792 , - 1089 , - 1410 , - 2283 , - 2236 , - 2741 , - 2326 , - 2463 , - 1680 , - 1449 , - 298 , - 2643 , - 1124 , - 157 , - 1214 , - 2823 , - 568 , - 1809 , - 2130 , - 59 , - 12 , - 517 , - 102 , - 239 , - 2400 , - 2169 , - 1018 , - 419 , - 1844 , - 877 , - 1934 , - 599 , - 1288 , - 2529 , - 2850 , - 779 , - 732 , - 1237 , - 822 , - 959 , - 176 , - 2889 , - 1738 , - 1139 , - 2564 , - 1597 , - 2654 , - 1319 , - 2008 , - 305 , - 626 , - 1499 , - 1452 , - 1957 , - 1542 , - 1679 , - 896 , - 665 , - 2458 , - 1859 , - 340 , - 2317 , - 430 , - 2039 , - 2728 , - 1025 , - 1346 , - 2219 , - 2172 , - 2677 , - 2262 , - 2399 , - 1616 , - 1385 , - 234 , - 2579 , - 1060 , - 93 , - 1150 , - 2759 , - 504 , - 1745 , - 2066 , - 2939 , - 2892 , - 453 , - 38 , - 175 , - 2336 , - 2105 , - 954 , - 355 , - 1780 , - 813 , - 1870 , - 535 , - 1224 , - 2465 , - 2786 , - 715 , - 668 , - 1173 , - 758 , - 895 , - 112 , - 2825 , - 1674 , - 1075 , - 2500 , - 1533 , - 2590 , - 1255 , - 1944 , - 241 , - 562 , - 1435 , - 1388 , - 1893 , - 1478 , - 1615 , - 832 , - 601 , - 2394 , - 1795 , - 276 , - 2253 , - 366 , - 1975 , - 2664 , - 961 , - 1282 , - 2155 , - 2108 , - 2613 , - 2198 , - 2335 , - 1552 , - 1321 , - 170 , - 2515 , - 996 , - 29 , - 1086 , - 2695 , - 440 , - 1681 , - 2002 , - 2875 , - 2828 , - 389 , - 2918 , - 111 , - 2272 , - 2041 , - 890 , - 291 , - 1716 , - 749 , - 1806 , - 471 , - 1160 , - 2401 , - 2722 , - 651 , - 604 , - 1109 , - 694 , - 831 , - 48 , - 2761 , - 1610 , - 1011 , - 2436 , - 1469 , - 2526 , - 1191 , - 1880 , - 177 , - 498 , - 1371 , - 1324 , - 1829 , - 1414 , - 1551 , - 768 , - 537 , - 2330 , - 1731 , - 212 , - 2189 , - 302 , - 1911 , - 2600 , - 897 , - 1218 , - 2091 , - 2044 , - 2549 , - 2134 , - 2271 , - 1488 , - 1257 , - 106 , - 2451 , - 932 , - 2909 , - 1022 , - 2631 , - 376 , - 1617 , - 1938 , - 2811 , - 2764 , - 325 , - 2854 , - 47 , - 2208 , - 1977 , - 826 , - 227 , - 1652 , - 685 , - 1742 , - 407 , - 1096 , - 2337 , - 2658 , - 587 , - 540 , - 1045 , - 630 , - 767 , - 2928 , - 2697 , - 1546 , - 947 , - 2372 , - 1405 , - 2462 , - 1127 , - 1816 , - 113 , - 434 , - 1307 , - 1260 , - 1765 , - 1350 , - 1487 , - 704 , - 473 , - 2266 , - 1667 , - 148 , - 2125 , - 238 , - 1847 , - 2536 , - 833 , - 1154 , - 2027 , - 1980 , - 2485 , - 2070 , - 2207 , - 1424 , - 1193 , - 42 , - 2387 , - 868 , - 2845 , - 958 , - 2567 , - 312 , - 1553 , - 1874 , - 2747 , - 2700 , - 261 , - 2790 , - 2927 , - 2144 , - 1913 , - 762 , - 163 , - 1588 , - 621 , - 1678 , - 343 , - 1032 , - 2273 , - 2594 , - 523 , - 476 , - 981 , - 566 , - 703 , - 2864 , - 2633 , - 1482 , - 883 , - 2308 , - 1341 , - 2398 , - 1063 , - 1752 , - 49 , - 370 , - 1243 , - 1196 , - 1701 , - 1286 , - 1423 , - 640 , - 409 , - 2202 , - 1603 , - 84 , - 2061 , - 174 , - 1783 , - 2472 , - 769 , - 1090 , - 1963 , - 1916 , - 2421 , - 2006 , - 2143 , - 1360 , - 1129 , - 2922 , - 2323 , - 804 , - 2781 , - 894 , - 2503 , - 248 , - 1489 , - 1810 , - 2683 , - 2636 , - 197 , - 2726 , - 2863 , - 2080 , - 1849 , - 698 , - 99 , - 1524 , - 557 , - 1614 , - 279 , - 968 , - 2209 , - 2530 , - 459 , - 412 , - 917 , - 502 , - 639 , - 2800 , - 2569 , - 1418 , - 819 , - 2244 , - 1277 , - 2334 , - 999 , - 1688 , - 2929 , - 306 , - 1179 , - 1132 , - 1637 , - 1222 , - 1359 , - 576 , - 345 , - 2138 , - 1539 , - 20 , - 1997 , - 110 , - 1719 , - 2408 , - 705 , - 1026 , - 1899 , - 1852 , - 2357 , - 1942 , - 2079 , - 1296 , - 1065 , - 2858 , - 2259 , - 740 , - 2717 , - 830 , - 2439 , - 184 , - 1425 , - 1746 , - 2619 , - 2572 , - 133 , - 2662 , - 2799 , - 2016 , - 1785 , - 634 , - 35 , - 1460 , - 493 , - 1550 , - 215 , - 904 , - 2145 , - 2466 , - 395 , - 348 , - 853 , - 438 , - 575 , - 2736 , - 2505 , - 1354 , - 755 , - 2180 , - 1213 , - 2270 , - 935 , - 1624 , - 2865 , - 242 , - 1115 , - 1068 , - 1573 , - 1158 , - 1295 , - 512 , - 281 , - 2074 , - 1475 , - 2900 , - 1933 , - 46 , - 1655 , - 2344 , - 641 , - 962 , - 1835 , - 1788 , - 2293 , - 1878 , - 2015 , - 1232 , - 1001 , - 2794 , - 2195 , - 676 , - 2653 , - 766 , - 2375 , - 120 , - 1361 , - 1682 , - 2555 , - 2508 , - 69 , - 2598 , - 2735 , - 1952 , - 1721 , - 570 , - 2915 , - 1396 , - 429 , - 1486 , - 151 , - 840 , - 2081 , - 2402 , - 331 , - 284 , - 789 , - 374 , - 511 , - 2672 , - 2441 , - 1290 , - 691 , - 2116 , - 1149 , - 2206 , - 871 , - 1560 , - 2801 , - 178 , - 1051 , - 1004 , - 1509 , - 1094 , - 1231 , - 448 , - 217 , - 2010 , - 1411 , - 2836 , - 1869 , - 2926 , - 1591 , - 2280 , - 577 , - 898 , - 1771 , - 1724 , - 2229 , - 1814 , - 1951 , - 1168 , - 937 , - 2730 , - 2131 , - 612 , - 2589 , - 702 , - 2311 , - 56 , - 1297 , - 1618 , - 2491 , - 2444 , - 5 , - 2534 , - 2671 , - 1888 , - 1657 , - 506 , - 2851 , - 1332 , - 365 , - 1422 , - 87 , - 776 , - 2017 , - 2338 , - 267 , - 220 , - 725 , - 310 , - 447 , - 2608 , - 2377 , - 1226 , - 627 , - 2052 , - 1085 , - 2142 , - 807 , - 1496 , - 2737 , - 114 , - 987 , - 940 , - 1445 , - 1030 , - 1167 , - 384 , - 153 , - 1946 , - 1347 , - 2772 , - 1805 , - 2862 , - 1527 , - 2216 , - 513 , - 834 , - 1707 , - 1660 , - 2165 , - 1750 , - 1887 , - 1104 , - 873 , - 2666 , - 2067 , - 548 , - 2525 , - 638 , - 2247 , - 2936 , - 1233 , - 1554 , - 2427 , - 2380 , - 2885 , - 2470 , - 2607 , - 1824 , - 1593 , - 442 , - 2787 , - 1268 , - 301 , - 1358 , - 23 , - 712 , - 1953 , - 2274 , - 203 , - 156 , - 661 , - 246 , - 383 , - 2544 , - 2313 , - 1162 , - 563 , - 1988 , - 1021 , - 2078 , - 743 , - 1432 , - 2673 , - 50 , - 923 , - 876 , - 1381 , - 966 , - 1103 , - 320 , - 89 , - 1882 , - 1283 , - 2708 , - 1741 , - 2798 , - 1463 , - 2152 , - 449 , - 770 , - 1643 , - 1596 , - 2101 , - 1686 , - 1823 , - 1040 , - 809 , - 2602 , - 2003 , - 484 , - 2461 , - 574 , - 2183 , - 2872 , - 1169 , - 1490 , - 2363 , - 2316 , - 2821 , - 2406 , - 2543 , - 1760 , - 1529 , - 378 , - 2723 , - 1204 , - 237 , - 1294 , - 2903 , - 648 , - 1889 , - 2210 , - 139 , - 92 , - 597 , - 182 , - 319 , - 2480 , - 2249 , - 1098 , - 499 , - 1924 , - 957 , - 2014 , - 679 , - 1368 , - 2609 , - 2930 , - 859 , - 812 , - 1317 , - 902 , - 1039 , - 256 , - 25 , - 1818 , - 1219 , - 2644 , - 1677 , - 2734 , - 1399 , - 2088 , - 385 , - 706 , - 1579 , - 1532 , - 2037 , - 1622 , - 1759 , - 976 , - 745 , - 2538 , - 1939 , - 420 , - 2397 , - 510 , - 2119 , - 2808 , - 1105 , - 1426 , - 2299 , - 2252 , - 2757 , - 2342 , - 2479 , - 1696 , - 1465 , - 314 , - 2659 , - 1140 , - 173 , - 1230 , - 2839 , - 584 , - 1825 , - 2146 , - 75 , - 28 , - 533 , - 118 , - 255 , - 2416 , - 2185 , - 1034 , - 435 , - 1860 , - 893 , - 1950 , - 615 , - 1304 , - 2545 , - 2866 , - 795 , - 748 , - 1253 , - 838 , - 975 , - 192 , - 2905 , - 1754 , - 1155 , - 2580 , - 1613 , - 2670 , - 1335 , - 2024 , - 321 , - 642 , - 1515 , - 1468 , - 1973 , - 1558 , - 1695 , - 912 , - 681 , - 2474 , - 1875 , - 356 , - 2333 , - 446 , - 2055 , - 2744 , - 1041 , - 1362 , - 2235 , - 2188 , - 2693 , - 2278 , - 2415 , - 1632 , - 1401 , - 250 , - 2595 , - 1076 , - 109 , - 1166 , - 2775 , - 520 , - 1761 , - 2082 , - 11 , - 2908 , - 469 , - 54 , - 191 , - 2352 , - 2121 , - 970 , - 371 , - 1796 , - 829 , - 1886 , - 551 , - 1240 , - 2481 , - 2802 , - 731 , - 684 , - 1189 , - 774 , - 911 , - 128 , - 2841 , - 1690 , - 1091 , - 2516 , - 1549 , - 2606 , - 1271 , - 1960 , - 257 , - 578 , - 1451 , - 1404 , - 1909 , - 1494 , - 1631 , - 848 , - 617 , - 2410 , - 1811 , - 292 , - 2269 , - 382 , - 1991 , - 2680 , - 977 , - 1298 , - 2171 , - 2124 , - 2629 , - 2214 , - 2351 , - 1568 , - 1337 , - 186 , - 2531 , - 1012 , - 45 , - 1102 , - 2711 , - 456 , - 1697 , - 2018 , - 2891 , - 2844 , - 405 , - 2934 , - 127 , - 2288 , - 2057 , - 906 , - 307 , - 1732 , - 765 , - 1822 , - 487 , - 1176 , - 2417 , - 2738 , - 667 , - 620 , - 1125 , - 710 , - 847 , - 64 , - 2777 , - 1626 , - 1027 , - 2452 , - 1485 , - 2542 , - 1207 , - 1896 , - 193 , - 514 , - 1387 , - 1340 , - 1845 , - 1430 , - 1567 , - 784 , - 553 , - 2346 , - 1747 , - 228 , - 2205 , - 318 , - 1927 , - 2616 , - 913 , - 1234 , - 2107 , - 2060 , - 2565 , - 2150 , - 2287 , - 1504 , - 1273 , - 122 , - 2467 , - 948 , - 2925 , - 1038 , - 2647 , - 392 , - 1633 , - 1954 , - 2827 , - 2780 , - 341 , - 2870 , - 63 , - 2224 , - 1993 , - 842 , - 243 , - 1668 , - 701 , - 1758 , - 423 , - 1112 , - 2353 , - 2674 , - 603 , - 556 , - 1061 , - 646 , - 783 , - 0 , - 1225 , - 570 , - 1043 , - 2644 , - 2365 , - 206 , - 2183 , - 2280 , - 497 , - 2850 , - 315 , - 1916 , - 1637 , - 2486 , - 1455 , - 1552 , - 2777 , - 2122 , - 2595 , - 1188 , - 909 , - 1758 , - 727 , - 824 , - 2049 , - 1394 , - 1867 , - 460 , - 181 , - 1030 , - 3007 , - 96 , - 1321 , - 666 , - 1139 , - 2740 , - 2461 , - 302 , - 2279 , - 2376 , - 593 , - 2946 , - 411 , - 2012 , - 1733 , - 2582 , - 1551 , - 1648 , - 2873 , - 2218 , - 2691 , - 1284 , - 1005 , - 1854 , - 823 , - 920 , - 2145 , - 1490 , - 1963 , - 556 , - 277 , - 1126 , - 95 , - 192 , - 1417 , - 762 , - 1235 , - 2836 , - 2557 , - 398 , - 2375 , - 2472 , - 689 , - 34 , - 507 , - 2108 , - 1829 , - 2678 , - 1647 , - 1744 , - 2969 , - 2314 , - 2787 , - 1380 , - 1101 , - 1950 , - 919 , - 1016 , - 2241 , - 1586 , - 2059 , - 652 , - 373 , - 1222 , - 191 , - 288 , - 1513 , - 858 , - 1331 , - 2932 , - 2653 , - 494 , - 2471 , - 2568 , - 785 , - 130 , - 603 , - 2204 , - 1925 , - 2774 , - 1743 , - 1840 , - 57 , - 2410 , - 2883 , - 1476 , - 1197 , - 2046 , - 1015 , - 1112 , - 2337 , - 1682 , - 2155 , - 748 , - 469 , - 1318 , - 287 , - 384 , - 1609 , - 954 , - 1427 , - 20 , - 2749 , - 590 , - 2567 , - 2664 , - 881 , - 226 , - 699 , - 2300 , - 2021 , - 2870 , - 1839 , - 1936 , - 153 , - 2506 , - 2979 , - 1572 , - 1293 , - 2142 , - 1111 , - 1208 , - 2433 , - 1778 , - 2251 , - 844 , - 565 , - 1414 , - 383 , - 480 , - 1705 , - 1050 , - 1523 , - 116 , - 2845 , - 686 , - 2663 , - 2760 , - 977 , - 322 , - 795 , - 2396 , - 2117 , - 2966 , - 1935 , - 2032 , - 249 , - 2602 , - 67 , - 1668 , - 1389 , - 2238 , - 1207 , - 1304 , - 2529 , - 1874 , - 2347 , - 940 , - 661 , - 1510 , - 479 , - 576 , - 1801 , - 1146 , - 1619 , - 212 , - 2941 , - 782 , - 2759 , - 2856 , - 1073 , - 418 , - 891 , - 2492 , - 2213 , - 54 , - 2031 , - 2128 , - 345 , - 2698 , - 163 , - 1764 , - 1485 , - 2334 , - 1303 , - 1400 , - 2625 , - 1970 , - 2443 , - 1036 , - 757 , - 1606 , - 575 , - 672 , - 1897 , - 1242 , - 1715 , - 308 , - 29 , - 878 , - 2855 , - 2952 , - 1169 , - 514 , - 987 , - 2588 , - 2309 , - 150 , - 2127 , - 2224 , - 441 , - 2794 , - 259 , - 1860 , - 1581 , - 2430 , - 1399 , - 1496 , - 2721 , - 2066 , - 2539 , - 1132 , - 853 , - 1702 , - 671 , - 768 , - 1993 , - 1338 , - 1811 , - 404 , - 125 , - 974 , - 2951 , - 40 , - 1265 , - 610 , - 1083 , - 2684 , - 2405 , - 246 , - 2223 , - 2320 , - 537 , - 2890 , - 355 , - 1956 , - 1677 , - 2526 , - 1495 , - 1592 , - 2817 , - 2162 , - 2635 , - 1228 , - 949 , - 1798 , - 767 , - 864 , - 2089 , - 1434 , - 1907 , - 500 , - 221 , - 1070 , - 39 , - 136 , - 1361 , - 706 , - 1179 , - 2780 , - 2501 , - 342 , - 2319 , - 2416 , - 633 , - 2986 , - 451 , - 2052 , - 1773 , - 2622 , - 1591 , - 1688 , - 2913 , - 2258 , - 2731 , - 1324 , - 1045 , - 1894 , - 863 , - 960 , - 2185 , - 1530 , - 2003 , - 596 , - 317 , - 1166 , - 135 , - 232 , - 1457 , - 802 , - 1275 , - 2876 , - 2597 , - 438 , - 2415 , - 2512 , - 729 , - 74 , - 547 , - 2148 , - 1869 , - 2718 , - 1687 , - 1784 , - 1 , - 2354 , - 2827 , - 1420 , - 1141 , - 1990 , - 959 , - 1056 , - 2281 , - 1626 , - 2099 , - 692 , - 413 , - 1262 , - 231 , - 328 , - 1553 , - 898 , - 1371 , - 2972 , - 2693 , - 534 , - 2511 , - 2608 , - 825 , - 170 , - 643 , - 2244 , - 1965 , - 2814 , - 1783 , - 1880 , - 97 , - 2450 , - 2923 , - 1516 , - 1237 , - 2086 , - 1055 , - 1152 , - 2377 , - 1722 , - 2195 , - 788 , - 509 , - 1358 , - 327 , - 424 , - 1649 , - 994 , - 1467 , - 60 , - 2789 , - 630 , - 2607 , - 2704 , - 921 , - 266 , - 739 , - 2340 , - 2061 , - 2910 , - 1879 , - 1976 , - 193 , - 2546 , - 11 , - 1612 , - 1333 , - 2182 , - 1151 , - 1248 , - 2473 , - 1818 , - 2291 , - 884 , - 605 , - 1454 , - 423 , - 520 , - 1745 , - 1090 , - 1563 , - 156 , - 2885 , - 726 , - 2703 , - 2800 , - 1017 , - 362 , - 835 , - 2436 , - 2157 , - 3006 , - 1975 , - 2072 , - 289 , - 2642 , - 107 , - 1708 , - 1429 , - 2278 , - 1247 , - 1344 , - 2569 , - 1914 , - 2387 , - 980 , - 701 , - 1550 , - 519 , - 616 , - 1841 , - 1186 , - 1659 , - 252 , - 2981 , - 822 , - 2799 , - 2896 , - 1113 , - 458 , - 931 , - 2532 , - 2253 , - 94 , - 2071 , - 2168 , - 385 , - 2738 , - 203 , - 1804 , - 1525 , - 2374 , - 1343 , - 1440 , - 2665 , - 2010 , - 2483 , - 1076 , - 797 , - 1646 , - 615 , - 712 , - 1937 , - 1282 , - 1755 , - 348 , - 69 , - 918 , - 2895 , - 2992 , - 1209 , - 554 , - 1027 , - 2628 , - 2349 , - 190 , - 2167 , - 2264 , - 481 , - 2834 , - 299 , - 1900 , - 1621 , - 2470 , - 1439 , - 1536 , - 2761 , - 2106 , - 2579 , - 1172 , - 893 , - 1742 , - 711 , - 808 , - 2033 , - 1378 , - 1851 , - 444 , - 165 , - 1014 , - 2991 , - 80 , - 1305 , - 650 , - 1123 , - 2724 , - 2445 , - 286 , - 2263 , - 2360 , - 577 , - 2930 , - 395 , - 1996 , - 1717 , - 2566 , - 1535 , - 1632 , - 2857 , - 2202 , - 2675 , - 1268 , - 989 , - 1838 , - 807 , - 904 , - 2129 , - 1474 , - 1947 , - 540 , - 261 , - 1110 , - 79 , - 176 , - 1401 , - 746 , - 1219 , - 2820 , - 2541 , - 382 , - 2359 , - 2456 , - 673 , - 18 , - 491 , - 2092 , - 1813 , - 2662 , - 1631 , - 1728 , - 2953 , - 2298 , - 2771 , - 1364 , - 1085 , - 1934 , - 903 , - 1000 , - 2225 , - 1570 , - 2043 , - 636 , - 357 , - 1206 , - 175 , - 272 , - 1497 , - 842 , - 1315 , - 2916 , - 2637 , - 478 , - 2455 , - 2552 , - 769 , - 114 , - 587 , - 2188 , - 1909 , - 2758 , - 1727 , - 1824 , - 41 , - 2394 , - 2867 , - 1460 , - 1181 , - 2030 , - 999 , - 1096 , - 2321 , - 1666 , - 2139 , - 732 , - 453 , - 1302 , - 271 , - 368 , - 1593 , - 938 , - 1411 , - 4 , - 2733 , - 574 , - 2551 , - 2648 , - 865 , - 210 , - 683 , - 2284 , - 2005 , - 2854 , - 1823 , - 1920 , - 137 , - 2490 , - 2963 , - 1556 , - 1277 , - 2126 , - 1095 , - 1192 , - 2417 , - 1762 , - 2235 , - 828 , - 549 , - 1398 , - 367 , - 464 , - 1689 , - 1034 , - 1507 , - 100 , - 2829 , - 670 , - 2647 , - 2744 , - 961 , - 306 , - 779 , - 2380 , - 2101 , - 2950 , - 1919 , - 2016 , - 233 , - 2586 , - 51 , - 1652 , - 1373 , - 2222 , - 1191 , - 1288 , - 2513 , - 1858 , - 2331 , - 924 , - 645 , - 1494 , - 463 , - 560 , - 1785 , - 1130 , - 1603 , - 196 , - 2925 , - 766 , - 2743 , - 2840 , - 1057 , - 402 , - 875 , - 2476 , - 2197 , - 38 , - 2015 , - 2112 , - 329 , - 2682 , - 147 , - 1748 , - 1469 , - 2318 , - 1287 , - 1384 , - 2609 , - 1954 , - 2427 , - 1020 , - 741 , - 1590 , - 559 , - 656 , - 1881 , - 1226 , - 1699 , - 292 , - 13 , - 862 , - 2839 , - 2936 , - 1153 , - 498 , - 971 , - 2572 , - 2293 , - 134 , - 2111 , - 2208 , - 425 , - 2778 , - 243 , - 1844 , - 1565 , - 2414 , - 1383 , - 1480 , - 2705 , - 2050 , - 2523 , - 1116 , - 837 , - 1686 , - 655 , - 752 , - 1977 , - 1322 , - 1795 , - 388 , - 109 , - 958 , - 2935 , - 24 , - 1249 , - 594 , - 1067 , - 2668 , - 2389 , - 230 , - 2207 , - 2304 , - 521 , - 2874 , - 339 , - 1940 , - 1661 , - 2510 , - 1479 , - 1576 , - 2801 , - 2146 , - 2619 , - 1212 , - 933 , - 1782 , - 751 , - 848 , - 2073 , - 1418 , - 1891 , - 484 , - 205 , - 1054 , - 23 , - 120 , - 1345 , - 690 , - 1163 , - 2764 , - 2485 , - 326 , - 2303 , - 2400 , - 617 , - 2970 , - 435 , - 2036 , - 1757 , - 2606 , - 1575 , - 1672 , - 2897 , - 2242 , - 2715 , - 1308 , - 1029 , - 1878 , - 847 , - 944 , - 2169 , - 1514 , - 1987 , - 580 , - 301 , - 1150 , - 119 , - 216 , - 1441 , - 786 , - 1259 , - 2860 , - 2581 , - 422 , - 2399 , - 2496 , - 713 , - 58 , - 531 , - 2132 , - 1853 , - 2702 , - 1671 , - 1768 , - 2993 , - 2338 , - 2811 , - 1404 , - 1125 , - 1974 , - 943 , - 1040 , - 2265 , - 1610 , - 2083 , - 676 , - 397 , - 1246 , - 215 , - 312 , - 1537 , - 882 , - 1355 , - 2956 , - 2677 , - 518 , - 2495 , - 2592 , - 809 , - 154 , - 627 , - 2228 , - 1949 , - 2798 , - 1767 , - 1864 , - 81 , - 2434 , - 2907 , - 1500 , - 1221 , - 2070 , - 1039 , - 1136 , - 2361 , - 1706 , - 2179 , - 772 , - 493 , - 1342 , - 311 , - 408 , - 1633 , - 978 , - 1451 , - 44 , - 2773 , - 614 , - 2591 , - 2688 , - 905 , - 250 , - 723 , - 2324 , - 2045 , - 2894 , - 1863 , - 1960 , - 177 , - 2530 , - 3003 , - 1596 , - 1317 , - 2166 , - 1135 , - 1232 , - 2457 , - 1802 , - 2275 , - 868 , - 589 , - 1438 , - 407 , - 504 , - 1729 , - 1074 , - 1547 , - 140 , - 2869 , - 710 , - 2687 , - 2784 , - 1001 , - 346 , - 819 , - 2420 , - 2141 , - 2990 , - 1959 , - 2056 , - 273 , - 2626 , - 91 , - 1692 , - 1413 , - 2262 , - 1231 , - 1328 , - 2553 , - 1898 , - 2371 , - 964 , - 685 , - 1534 , - 503 , - 600 , - 1825 , - 1170 , - 1643 , - 236 , - 2965 , - 806 , - 2783 , - 2880 , - 1097 , - 442 , - 915 , - 2516 , - 2237 , - 78 , - 2055 , - 2152 , - 369 , - 2722 , - 187 , - 1788 , - 1509 , - 2358 , - 1327 , - 1424 , - 2649 , - 1994 , - 2467 , - 1060 , - 781 , - 1630 , - 599 , - 696 , - 1921 , - 1266 , - 1739 , - 332 , - 53 , - 902 , - 2879 , - 2976 , - 1193 , - 538 , - 1011 , - 2612 , - 2333 , - 174 , - 2151 , - 2248 , - 465 , - 2818 , - 283 , - 1884 , - 1605 , - 2454 , - 1423 , - 1520 , - 2745 , - 2090 , - 2563 , - 1156 , - 877 , - 1726 , - 695 , - 792 , - 2017 , - 1362 , - 1835 , - 428 , - 149 , - 998 , - 2975 , - 64 , - 1289 , - 634 , - 1107 , - 2708 , - 2429 , - 270 , - 2247 , - 2344 , - 561 , - 2914 , - 379 , - 1980 , - 1701 , - 2550 , - 1519 , - 1616 , - 2841 , - 2186 , - 2659 , - 1252 , - 973 , - 1822 , - 791 , - 888 , - 2113 , - 1458 , - 1931 , - 524 , - 245 , - 1094 , - 63 , - 160 , - 1385 , - 730 , - 1203 , - 2804 , - 2525 , - 366 , - 2343 , - 2440 , - 657 , - 2 , - 475 , - 2076 , - 1797 , - 2646 , - 1615 , - 1712 , - 2937 , - 2282 , - 2755 , - 1348 , - 1069 , - 1918 , - 887 , - 984 , - 2209 , - 1554 , - 2027 , - 620 , - 341 , - 1190 , - 159 , - 256 , - 1481 , - 826 , - 1299 , - 2900 , - 2621 , - 462 , - 2439 , - 2536 , - 753 , - 98 , - 571 , - 2172 , - 1893 , - 2742 , - 1711 , - 1808 , - 25 , - 2378 , - 2851 , - 1444 , - 1165 , - 2014 , - 983 , - 1080 , - 2305 , - 1650 , - 2123 , - 716 , - 437 , - 1286 , - 255 , - 352 , - 1577 , - 922 , - 1395 , - 2996 , - 2717 , - 558 , - 2535 , - 2632 , - 849 , - 194 , - 667 , - 2268 , - 1989 , - 2838 , - 1807 , - 1904 , - 121 , - 2474 , - 2947 , - 1540 , - 1261 , - 2110 , - 1079 , - 1176 , - 2401 , - 1746 , - 2219 , - 812 , - 533 , - 1382 , - 351 , - 448 , - 1673 , - 1018 , - 1491 , - 84 , - 2813 , - 654 , - 2631 , - 2728 , - 945 , - 290 , - 763 , - 2364 , - 2085 , - 2934 , - 1903 , - 2000 , - 217 , - 2570 , - 35 , - 1636 , - 1357 , - 2206 , - 1175 , - 1272 , - 2497 , - 1842 , - 2315 , - 908 , - 629 , - 1478 , - 447 , - 544 , - 1769 , - 1114 , - 1587 , - 180 , - 2909 , - 750 , - 2727 , - 2824 , - 1041 , - 386 , - 859 , - 2460 , - 2181 , - 22 , - 1999 , - 2096 , - 313 , - 2666 , - 131 , - 1732 , - 1453 , - 2302 , - 1271 , - 1368 , - 2593 , - 1938 , - 2411 , - 1004 , - 725 , - 1574 , - 543 , - 640 , - 1865 , - 1210 , - 1683 , - 276 , - 3005 , - 846 , - 2823 , - 2920 , - 1137 , - 482 , - 955 , - 2556 , - 2277 , - 118 , - 2095 , - 2192 , - 409 , - 2762 , - 227 , - 1828 , - 1549 , - 2398 , - 1367 , - 1464 , - 2689 , - 2034 , - 2507 , - 1100 , - 821 , - 1670 , - 639 , - 736 , - 1961 , - 1306 , - 1779 , - 372 , - 93 , - 942 , - 2919 , - 8 , - 1233 , - 578 , - 1051 , - 2652 , - 2373 , - 214 , - 2191 , - 2288 , - 505 , - 2858 , - 323 , - 1924 , - 1645 , - 2494 , - 1463 , - 1560 , - 2785 , - 2130 , - 2603 , - 1196 , - 917 , - 1766 , - 735 , - 832 , - 2057 , - 1402 , - 1875 , - 468 , - 189 , - 1038 , - 7 , - 104 , - 1329 , - 674 , - 1147 , - 2748 , - 2469 , - 310 , - 2287 , - 2384 , - 601 , - 2954 , - 419 , - 2020 , - 1741 , - 2590 , - 1559 , - 1656 , - 2881 , - 2226 , - 2699 , - 1292 , - 1013 , - 1862 , - 831 , - 928 , - 2153 , - 1498 , - 1971 , - 564 , - 285 , - 1134 , - 103 , - 200 , - 1425 , - 770 , - 1243 , - 2844 , - 2565 , - 406 , - 2383 , - 2480 , - 697 , - 42 , - 515 , - 2116 , - 1837 , - 2686 , - 1655 , - 1752 , - 2977 , - 2322 , - 2795 , - 1388 , - 1109 , - 1958 , - 927 , - 1024 , - 2249 , - 1594 , - 2067 , - 660 , - 381 , - 1230 , - 199 , - 296 , - 1521 , - 866 , - 1339 , - 2940 , - 2661 , - 502 , - 2479 , - 2576 , - 793 , - 138 , - 611 , - 2212 , - 1933 , - 2782 , - 1751 , - 1848 , - 65 , - 2418 , - 2891 , - 1484 , - 1205 , - 2054 , - 1023 , - 1120 , - 2345 , - 1690 , - 2163 , - 756 , - 477 , - 1326 , - 295 , - 392 , - 1617 , - 962 , - 1435 , - 28 , - 2757 , - 598 , - 2575 , - 2672 , - 889 , - 234 , - 707 , - 2308 , - 2029 , - 2878 , - 1847 , - 1944 , - 161 , - 2514 , - 2987 , - 1580 , - 1301 , - 2150 , - 1119 , - 1216 , - 2441 , - 1786 , - 2259 , - 852 , - 573 , - 1422 , - 391 , - 488 , - 1713 , - 1058 , - 1531 , - 124 , - 2853 , - 694 , - 2671 , - 2768 , - 985 , - 330 , - 803 , - 2404 , - 2125 , - 2974 , - 1943 , - 2040 , - 257 , - 2610 , - 75 , - 1676 , - 1397 , - 2246 , - 1215 , - 1312 , - 2537 , - 1882 , - 2355 , - 948 , - 669 , - 1518 , - 487 , - 584 , - 1809 , - 1154 , - 1627 , - 220 , - 2949 , - 790 , - 2767 , - 2864 , - 1081 , - 426 , - 899 , - 2500 , - 2221 , - 62 , - 2039 , - 2136 , - 353 , - 2706 , - 171 , - 1772 , - 1493 , - 2342 , - 1311 , - 1408 , - 2633 , - 1978 , - 2451 , - 1044 , - 765 , - 1614 , - 583 , - 680 , - 1905 , - 1250 , - 1723 , - 316 , - 37 , - 886 , - 2863 , - 2960 , - 1177 , - 522 , - 995 , - 2596 , - 2317 , - 158 , - 2135 , - 2232 , - 449 , - 2802 , - 267 , - 1868 , - 1589 , - 2438 , - 1407 , - 1504 , - 2729 , - 2074 , - 2547 , - 1140 , - 861 , - 1710 , - 679 , - 776 , - 2001 , - 1346 , - 1819 , - 412 , - 133 , - 982 , - 2959 , - 48 , - 1273 , - 618 , - 1091 , - 2692 , - 2413 , - 254 , - 2231 , - 2328 , - 545 , - 2898 , - 363 , - 1964 , - 1685 , - 2534 , - 1503 , - 1600 , - 2825 , - 2170 , - 2643 , - 1236 , - 957 , - 1806 , - 775 , - 872 , - 2097 , - 1442 , - 1915 , - 508 , - 229 , - 1078 , - 47 , - 144 , - 1369 , - 714 , - 1187 , - 2788 , - 2509 , - 350 , - 2327 , - 2424 , - 641 , - 2994 , - 459 , - 2060 , - 1781 , - 2630 , - 1599 , - 1696 , - 2921 , - 2266 , - 2739 , - 1332 , - 1053 , - 1902 , - 871 , - 968 , - 2193 , - 1538 , - 2011 , - 604 , - 325 , - 1174 , - 143 , - 240 , - 1465 , - 810 , - 1283 , - 2884 , - 2605 , - 446 , - 2423 , - 2520 , - 737 , - 82 , - 555 , - 2156 , - 1877 , - 2726 , - 1695 , - 1792 , - 9 , - 2362 , - 2835 , - 1428 , - 1149 , - 1998 , - 967 , - 1064 , - 2289 , - 1634 , - 2107 , - 700 , - 421 , - 1270 , - 239 , - 336 , - 1561 , - 906 , - 1379 , - 2980 , - 2701 , - 542 , - 2519 , - 2616 , - 833 , - 178 , - 651 , - 2252 , - 1973 , - 2822 , - 1791 , - 1888 , - 105 , - 2458 , - 2931 , - 1524 , - 1245 , - 2094 , - 1063 , - 1160 , - 2385 , - 1730 , - 2203 , - 796 , - 517 , - 1366 , - 335 , - 432 , - 1657 , - 1002 , - 1475 , - 68 , - 2797 , - 638 , - 2615 , - 2712 , - 929 , - 274 , - 747 , - 2348 , - 2069 , - 2918 , - 1887 , - 1984 , - 201 , - 2554 , - 19 , - 1620 , - 1341 , - 2190 , - 1159 , - 1256 , - 2481 , - 1826 , - 2299 , - 892 , - 613 , - 1462 , - 431 , - 528 , - 1753 , - 1098 , - 1571 , - 164 , - 2893 , - 734 , - 2711 , - 2808 , - 1025 , - 370 , - 843 , - 2444 , - 2165 , - 6 , - 1983 , - 2080 , - 297 , - 2650 , - 115 , - 1716 , - 1437 , - 2286 , - 1255 , - 1352 , - 2577 , - 1922 , - 2395 , - 988 , - 709 , - 1558 , - 527 , - 624 , - 1849 , - 1194 , - 1667 , - 260 , - 2989 , - 830 , - 2807 , - 2904 , - 1121 , - 466 , - 939 , - 2540 , - 2261 , - 102 , - 2079 , - 2176 , - 393 , - 2746 , - 211 , - 1812 , - 1533 , - 2382 , - 1351 , - 1448 , - 2673 , - 2018 , - 2491 , - 1084 , - 805 , - 1654 , - 623 , - 720 , - 1945 , - 1290 , - 1763 , - 356 , - 77 , - 926 , - 2903 , - 3000 , - 1217 , - 562 , - 1035 , - 2636 , - 2357 , - 198 , - 2175 , - 2272 , - 489 , - 2842 , - 307 , - 1908 , - 1629 , - 2478 , - 1447 , - 1544 , - 2769 , - 2114 , - 2587 , - 1180 , - 901 , - 1750 , - 719 , - 816 , - 2041 , - 1386 , - 1859 , - 452 , - 173 , - 1022 , - 2999 , - 88 , - 1313 , - 658 , - 1131 , - 2732 , - 2453 , - 294 , - 2271 , - 2368 , - 585 , - 2938 , - 403 , - 2004 , - 1725 , - 2574 , - 1543 , - 1640 , - 2865 , - 2210 , - 2683 , - 1276 , - 997 , - 1846 , - 815 , - 912 , - 2137 , - 1482 , - 1955 , - 548 , - 269 , - 1118 , - 87 , - 184 , - 1409 , - 754 , - 1227 , - 2828 , - 2549 , - 390 , - 2367 , - 2464 , - 681 , - 26 , - 499 , - 2100 , - 1821 , - 2670 , - 1639 , - 1736 , - 2961 , - 2306 , - 2779 , - 1372 , - 1093 , - 1942 , - 911 , - 1008 , - 2233 , - 1578 , - 2051 , - 644 , - 365 , - 1214 , - 183 , - 280 , - 1505 , - 850 , - 1323 , - 2924 , - 2645 , - 486 , - 2463 , - 2560 , - 777 , - 122 , - 595 , - 2196 , - 1917 , - 2766 , - 1735 , - 1832 , - 49 , - 2402 , - 2875 , - 1468 , - 1189 , - 2038 , - 1007 , - 1104 , - 2329 , - 1674 , - 2147 , - 740 , - 461 , - 1310 , - 279 , - 376 , - 1601 , - 946 , - 1419 , - 12 , - 2741 , - 582 , - 2559 , - 2656 , - 873 , - 218 , - 691 , - 2292 , - 2013 , - 2862 , - 1831 , - 1928 , - 145 , - 2498 , - 2971 , - 1564 , - 1285 , - 2134 , - 1103 , - 1200 , - 2425 , - 1770 , - 2243 , - 836 , - 557 , - 1406 , - 375 , - 472 , - 1697 , - 1042 , - 1515 , - 108 , - 2837 , - 678 , - 2655 , - 2752 , - 969 , - 314 , - 787 , - 2388 , - 2109 , - 2958 , - 1927 , - 2024 , - 241 , - 2594 , - 59 , - 1660 , - 1381 , - 2230 , - 1199 , - 1296 , - 2521 , - 1866 , - 2339 , - 932 , - 653 , - 1502 , - 471 , - 568 , - 1793 , - 1138 , - 1611 , - 204 , - 2933 , - 774 , - 2751 , - 2848 , - 1065 , - 410 , - 883 , - 2484 , - 2205 , - 46 , - 2023 , - 2120 , - 337 , - 2690 , - 155 , - 1756 , - 1477 , - 2326 , - 1295 , - 1392 , - 2617 , - 1962 , - 2435 , - 1028 , - 749 , - 1598 , - 567 , - 664 , - 1889 , - 1234 , - 1707 , - 300 , - 21 , - 870 , - 2847 , - 2944 , - 1161 , - 506 , - 979 , - 2580 , - 2301 , - 142 , - 2119 , - 2216 , - 433 , - 2786 , - 251 , - 1852 , - 1573 , - 2422 , - 1391 , - 1488 , - 2713 , - 2058 , - 2531 , - 1124 , - 845 , - 1694 , - 663 , - 760 , - 1985 , - 1330 , - 1803 , - 396 , - 117 , - 966 , - 2943 , - 32 , - 1257 , - 602 , - 1075 , - 2676 , - 2397 , - 238 , - 2215 , - 2312 , - 529 , - 2882 , - 347 , - 1948 , - 1669 , - 2518 , - 1487 , - 1584 , - 2809 , - 2154 , - 2627 , - 1220 , - 941 , - 1790 , - 759 , - 856 , - 2081 , - 1426 , - 1899 , - 492 , - 213 , - 1062 , - 31 , - 128 , - 1353 , - 698 , - 1171 , - 2772 , - 2493 , - 334 , - 2311 , - 2408 , - 625 , - 2978 , - 443 , - 2044 , - 1765 , - 2614 , - 1583 , - 1680 , - 2905 , - 2250 , - 2723 , - 1316 , - 1037 , - 1886 , - 855 , - 952 , - 2177 , - 1522 , - 1995 , - 588 , - 309 , - 1158 , - 127 , - 224 , - 1449 , - 794 , - 1267 , - 2868 , - 2589 , - 430 , - 2407 , - 2504 , - 721 , - 66 , - 539 , - 2140 , - 1861 , - 2710 , - 1679 , - 1776 , - 3001 , - 2346 , - 2819 , - 1412 , - 1133 , - 1982 , - 951 , - 1048 , - 2273 , - 1618 , - 2091 , - 684 , - 405 , - 1254 , - 223 , - 320 , - 1545 , - 890 , - 1363 , - 2964 , - 2685 , - 526 , - 2503 , - 2600 , - 817 , - 162 , - 635 , - 2236 , - 1957 , - 2806 , - 1775 , - 1872 , - 89 , - 2442 , - 2915 , - 1508 , - 1229 , - 2078 , - 1047 , - 1144 , - 2369 , - 1714 , - 2187 , - 780 , - 501 , - 1350 , - 319 , - 416 , - 1641 , - 986 , - 1459 , - 52 , - 2781 , - 622 , - 2599 , - 2696 , - 913 , - 258 , - 731 , - 2332 , - 2053 , - 2902 , - 1871 , - 1968 , - 185 , - 2538 , - 3 , - 1604 , - 1325 , - 2174 , - 1143 , - 1240 , - 2465 , - 1810 , - 2283 , - 876 , - 597 , - 1446 , - 415 , - 512 , - 1737 , - 1082 , - 1555 , - 148 , - 2877 , - 718 , - 2695 , - 2792 , - 1009 , - 354 , - 827 , - 2428 , - 2149 , - 2998 , - 1967 , - 2064 , - 281 , - 2634 , - 99 , - 1700 , - 1421 , - 2270 , - 1239 , - 1336 , - 2561 , - 1906 , - 2379 , - 972 , - 693 , - 1542 , - 511 , - 608 , - 1833 , - 1178 , - 1651 , - 244 , - 2973 , - 814 , - 2791 , - 2888 , - 1105 , - 450 , - 923 , - 2524 , - 2245 , - 86 , - 2063 , - 2160 , - 377 , - 2730 , - 195 , - 1796 , - 1517 , - 2366 , - 1335 , - 1432 , - 2657 , - 2002 , - 2475 , - 1068 , - 789 , - 1638 , - 607 , - 704 , - 1929 , - 1274 , - 1747 , - 340 , - 61 , - 910 , - 2887 , - 2984 , - 1201 , - 546 , - 1019 , - 2620 , - 2341 , - 182 , - 2159 , - 2256 , - 473 , - 2826 , - 291 , - 1892 , - 1613 , - 2462 , - 1431 , - 1528 , - 2753 , - 2098 , - 2571 , - 1164 , - 885 , - 1734 , - 703 , - 800 , - 2025 , - 1370 , - 1843 , - 436 , - 157 , - 1006 , - 2983 , - 72 , - 1297 , - 642 , - 1115 , - 2716 , - 2437 , - 278 , - 2255 , - 2352 , - 569 , - 2922 , - 387 , - 1988 , - 1709 , - 2558 , - 1527 , - 1624 , - 2849 , - 2194 , - 2667 , - 1260 , - 981 , - 1830 , - 799 , - 896 , - 2121 , - 1466 , - 1939 , - 532 , - 253 , - 1102 , - 71 , - 168 , - 1393 , - 738 , - 1211 , - 2812 , - 2533 , - 374 , - 2351 , - 2448 , - 665 , - 10 , - 483 , - 2084 , - 1805 , - 2654 , - 1623 , - 1720 , - 2945 , - 2290 , - 2763 , - 1356 , - 1077 , - 1926 , - 895 , - 992 , - 2217 , - 1562 , - 2035 , - 628 , - 349 , - 1198 , - 167 , - 264 , - 1489 , - 834 , - 1307 , - 2908 , - 2629 , - 470 , - 2447 , - 2544 , - 761 , - 106 , - 579 , - 2180 , - 1901 , - 2750 , - 1719 , - 1816 , - 33 , - 2386 , - 2859 , - 1452 , - 1173 , - 2022 , - 991 , - 1088 , - 2313 , - 1658 , - 2131 , - 724 , - 445 , - 1294 , - 263 , - 360 , - 1585 , - 930 , - 1403 , - 3004 , - 2725 , - 566 , - 2543 , - 2640 , - 857 , - 202 , - 675 , - 2276 , - 1997 , - 2846 , - 1815 , - 1912 , - 129 , - 2482 , - 2955 , - 1548 , - 1269 , - 2118 , - 1087 , - 1184 , - 2409 , - 1754 , - 2227 , - 820 , - 541 , - 1390 , - 359 , - 456 , - 1681 , - 1026 , - 1499 , - 92 , - 2821 , - 662 , - 2639 , - 2736 , - 953 , - 298 , - 771 , - 2372 , - 2093 , - 2942 , - 1911 , - 2008 , - 225 , - 2578 , - 43 , - 1644 , - 1365 , - 2214 , - 1183 , - 1280 , - 2505 , - 1850 , - 2323 , - 916 , - 637 , - 1486 , - 455 , - 552 , - 1777 , - 1122 , - 1595 , - 188 , - 2917 , - 758 , - 2735 , - 2832 , - 1049 , - 394 , - 867 , - 2468 , - 2189 , - 30 , - 2007 , - 2104 , - 321 , - 2674 , - 139 , - 1740 , - 1461 , - 2310 , - 1279 , - 1376 , - 2601 , - 1946 , - 2419 , - 1012 , - 733 , - 1582 , - 551 , - 648 , - 1873 , - 1218 , - 1691 , - 284 , - 5 , - 854 , - 2831 , - 2928 , - 1145 , - 490 , - 963 , - 2564 , - 2285 , - 126 , - 2103 , - 2200 , - 417 , - 2770 , - 235 , - 1836 , - 1557 , - 2406 , - 1375 , - 1472 , - 2697 , - 2042 , - 2515 , - 1108 , - 829 , - 1678 , - 647 , - 744 , - 1969 , - 1314 , - 1787 , - 380 , - 101 , - 950 , - 2927 , - 16 , - 1241 , - 586 , - 1059 , - 2660 , - 2381 , - 222 , - 2199 , - 2296 , - 513 , - 2866 , - 331 , - 1932 , - 1653 , - 2502 , - 1471 , - 1568 , - 2793 , - 2138 , - 2611 , - 1204 , - 925 , - 1774 , - 743 , - 840 , - 2065 , - 1410 , - 1883 , - 476 , - 197 , - 1046 , - 15 , - 112 , - 1337 , - 682 , - 1155 , - 2756 , - 2477 , - 318 , - 2295 , - 2392 , - 609 , - 2962 , - 427 , - 2028 , - 1749 , - 2598 , - 1567 , - 1664 , - 2889 , - 2234 , - 2707 , - 1300 , - 1021 , - 1870 , - 839 , - 936 , - 2161 , - 1506 , - 1979 , - 572 , - 293 , - 1142 , - 111 , - 208 , - 1433 , - 778 , - 1251 , - 2852 , - 2573 , - 414 , - 2391 , - 2488 , - 705 , - 50 , - 523 , - 2124 , - 1845 , - 2694 , - 1663 , - 1760 , - 2985 , - 2330 , - 2803 , - 1396 , - 1117 , - 1966 , - 935 , - 1032 , - 2257 , - 1602 , - 2075 , - 668 , - 389 , - 1238 , - 207 , - 304 , - 1529 , - 874 , - 1347 , - 2948 , - 2669 , - 510 , - 2487 , - 2584 , - 801 , - 146 , - 619 , - 2220 , - 1941 , - 2790 , - 1759 , - 1856 , - 73 , - 2426 , - 2899 , - 1492 , - 1213 , - 2062 , - 1031 , - 1128 , - 2353 , - 1698 , - 2171 , - 764 , - 485 , - 1334 , - 303 , - 400 , - 1625 , - 970 , - 1443 , - 36 , - 2765 , - 606 , - 2583 , - 2680 , - 897 , - 242 , - 715 , - 2316 , - 2037 , - 2886 , - 1855 , - 1952 , - 169 , - 2522 , - 2995 , - 1588 , - 1309 , - 2158 , - 1127 , - 1224 , - 2449 , - 1794 , - 2267 , - 860 , - 581 , - 1430 , - 399 , - 496 , - 1721 , - 1066 , - 1539 , - 132 , - 2861 , - 702 , - 2679 , - 2776 , - 993 , - 338 , - 811 , - 2412 , - 2133 , - 2982 , - 1951 , - 2048 , - 265 , - 2618 , - 83 , - 1684 , - 1405 , - 2254 , - 1223 , - 1320 , - 2545 , - 1890 , - 2363 , - 956 , - 677 , - 1526 , - 495 , - 592 , - 1817 , - 1162 , - 1635 , - 228 , - 2957 , - 798 , - 2775 , - 2872 , - 1089 , - 434 , - 907 , - 2508 , - 2229 , - 70 , - 2047 , - 2144 , - 361 , - 2714 , - 179 , - 1780 , - 1501 , - 2350 , - 1319 , - 1416 , - 2641 , - 1986 , - 2459 , - 1052 , - 773 , - 1622 , - 591 , - 688 , - 1913 , - 1258 , - 1731 , - 324 , - 45 , - 894 , - 2871 , - 2968 , - 1185 , - 530 , - 1003 , - 2604 , - 2325 , - 166 , - 2143 , - 2240 , - 457 , - 2810 , - 275 , - 1876 , - 1597 , - 2446 , - 1415 , - 1512 , - 2737 , - 2082 , - 2555 , - 1148 , - 869 , - 1718 , - 687 , - 784 , - 2009 , - 1354 , - 1827 , - 420 , - 141 , - 990 , - 2967 , - 56 , - 1281 , - 626 , - 1099 , - 2700 , - 2421 , - 262 , - 2239 , - 2336 , - 553 , - 2906 , - 371 , - 1972 , - 1693 , - 2542 , - 1511 , - 1608 , - 2833 , - 2178 , - 2651 , - 1244 , - 965 , - 1814 , - 783 , - 880 , - 2105 , - 1450 , - 1923 , - 516 , - 237 , - 1086 , - 55 , - 152 , - 1377 , - 722 , - 1195 , - 2796 , - 2517 , - 358 , - 2335 , - 2432 , - 649 , - 3002 , - 467 , - 2068 , - 1789 , - 2638 , - 1607 , - 1704 , - 2929 , - 2274 , - 2747 , - 1340 , - 1061 , - 1910 , - 879 , - 976 , - 2201 , - 1546 , - 2019 , - 612 , - 333 , - 1182 , - 151 , - 248 , - 1473 , - 818 , - 1291 , - 2892 , - 2613 , - 454 , - 2431 , - 2528 , - 745 , - 90 , - 563 , - 2164 , - 1885 , - 2734 , - 1703 , - 1800 , - 17 , - 2370 , - 2843 , - 1436 , - 1157 , - 2006 , - 975 , - 1072 , - 2297 , - 1642 , - 2115 , - 708 , - 429 , - 1278 , - 247 , - 344 , - 1569 , - 914 , - 1387 , - 2988 , - 2709 , - 550 , - 2527 , - 2624 , - 841 , - 186 , - 659 , - 2260 , - 1981 , - 2830 , - 1799 , - 1896 , - 113 , - 2466 , - 2939 , - 1532 , - 1253 , - 2102 , - 1071 , - 1168 , - 2393 , - 1738 , - 2211 , - 804 , - 525 , - 1374 , - 343 , - 440 , - 1665 , - 1010 , - 1483 , - 76 , - 2805 , - 646 , - 2623 , - 2720 , - 937 , - 282 , - 755 , - 2356 , - 2077 , - 2926 , - 1895 , - 1992 , - 209 , - 2562 , - 27 , - 1628 , - 1349 , - 2198 , - 1167 , - 1264 , - 2489 , - 1834 , - 2307 , - 900 , - 621 , - 1470 , - 439 , - 536 , - 1761 , - 1106 , - 1579 , - 172 , - 2901 , - 742 , - 2719 , - 2816 , - 1033 , - 378 , - 851 , - 2452 , - 2173 , - 14 , - 1991 , - 2088 , - 305 , - 2658 , - 123 , - 1724 , - 1445 , - 2294 , - 1263 , - 1360 , - 2585 , - 1930 , - 2403 , - 996 , - 717 , - 1566 , - 535 , - 632 , - 1857 , - 1202 , - 1675 , - 268 , - 2997 , - 838 , - 2815 , - 2912 , - 1129 , - 474 , - 947 , - 2548 , - 2269 , - 110 , - 2087 , - 2184 , - 401 , - 2754 , - 219 , - 1820 , - 1541 , - 2390 , - 1359 , - 1456 , - 2681 , - 2026 , - 2499 , - 1092 , - 813 , - 1662 , - 631 , - 728 , - 1953 , - 1298 , - 1771 , - 364 , - 85 , - 934 , - 2911 , - 0 , - 2351 , - 1822 , - 1485 , - 1340 , - 1387 , - 1626 , - 2057 , - 2680 , - 423 , - 1430 , - 2629 , - 948 , - 2531 , - 1234 , - 129 , - 2288 , - 1567 , - 1038 , - 701 , - 556 , - 603 , - 842 , - 1273 , - 1896 , - 2711 , - 646 , - 1845 , - 164 , - 1747 , - 450 , - 2417 , - 1504 , - 783 , - 254 , - 2989 , - 2844 , - 2891 , - 58 , - 489 , - 1112 , - 1927 , - 2934 , - 1061 , - 2452 , - 963 , - 2738 , - 1633 , - 720 , - 3071 , - 2542 , - 2205 , - 2060 , - 2107 , - 2346 , - 2777 , - 328 , - 1143 , - 2150 , - 277 , - 1668 , - 179 , - 1954 , - 849 , - 3008 , - 2287 , - 1758 , - 1421 , - 1276 , - 1323 , - 1562 , - 1993 , - 2616 , - 359 , - 1366 , - 2565 , - 884 , - 2467 , - 1170 , - 65 , - 2224 , - 1503 , - 974 , - 637 , - 492 , - 539 , - 778 , - 1209 , - 1832 , - 2647 , - 582 , - 1781 , - 100 , - 1683 , - 386 , - 2353 , - 1440 , - 719 , - 190 , - 2925 , - 2780 , - 2827 , - 3066 , - 425 , - 1048 , - 1863 , - 2870 , - 997 , - 2388 , - 899 , - 2674 , - 1569 , - 656 , - 3007 , - 2478 , - 2141 , - 1996 , - 2043 , - 2282 , - 2713 , - 264 , - 1079 , - 2086 , - 213 , - 1604 , - 115 , - 1890 , - 785 , - 2944 , - 2223 , - 1694 , - 1357 , - 1212 , - 1259 , - 1498 , - 1929 , - 2552 , - 295 , - 1302 , - 2501 , - 820 , - 2403 , - 1106 , - 1 , - 2160 , - 1439 , - 910 , - 573 , - 428 , - 475 , - 714 , - 1145 , - 1768 , - 2583 , - 518 , - 1717 , - 36 , - 1619 , - 322 , - 2289 , - 1376 , - 655 , - 126 , - 2861 , - 2716 , - 2763 , - 3002 , - 361 , - 984 , - 1799 , - 2806 , - 933 , - 2324 , - 835 , - 2610 , - 1505 , - 592 , - 2943 , - 2414 , - 2077 , - 1932 , - 1979 , - 2218 , - 2649 , - 200 , - 1015 , - 2022 , - 149 , - 1540 , - 51 , - 1826 , - 721 , - 2880 , - 2159 , - 1630 , - 1293 , - 1148 , - 1195 , - 1434 , - 1865 , - 2488 , - 231 , - 1238 , - 2437 , - 756 , - 2339 , - 1042 , - 3009 , - 2096 , - 1375 , - 846 , - 509 , - 364 , - 411 , - 650 , - 1081 , - 1704 , - 2519 , - 454 , - 1653 , - 3044 , - 1555 , - 258 , - 2225 , - 1312 , - 591 , - 62 , - 2797 , - 2652 , - 2699 , - 2938 , - 297 , - 920 , - 1735 , - 2742 , - 869 , - 2260 , - 771 , - 2546 , - 1441 , - 528 , - 2879 , - 2350 , - 2013 , - 1868 , - 1915 , - 2154 , - 2585 , - 136 , - 951 , - 1958 , - 85 , - 1476 , - 3059 , - 1762 , - 657 , - 2816 , - 2095 , - 1566 , - 1229 , - 1084 , - 1131 , - 1370 , - 1801 , - 2424 , - 167 , - 1174 , - 2373 , - 692 , - 2275 , - 978 , - 2945 , - 2032 , - 1311 , - 782 , - 445 , - 300 , - 347 , - 586 , - 1017 , - 1640 , - 2455 , - 390 , - 1589 , - 2980 , - 1491 , - 194 , - 2161 , - 1248 , - 527 , - 3070 , - 2733 , - 2588 , - 2635 , - 2874 , - 233 , - 856 , - 1671 , - 2678 , - 805 , - 2196 , - 707 , - 2482 , - 1377 , - 464 , - 2815 , - 2286 , - 1949 , - 1804 , - 1851 , - 2090 , - 2521 , - 72 , - 887 , - 1894 , - 21 , - 1412 , - 2995 , - 1698 , - 593 , - 2752 , - 2031 , - 1502 , - 1165 , - 1020 , - 1067 , - 1306 , - 1737 , - 2360 , - 103 , - 1110 , - 2309 , - 628 , - 2211 , - 914 , - 2881 , - 1968 , - 1247 , - 718 , - 381 , - 236 , - 283 , - 522 , - 953 , - 1576 , - 2391 , - 326 , - 1525 , - 2916 , - 1427 , - 130 , - 2097 , - 1184 , - 463 , - 3006 , - 2669 , - 2524 , - 2571 , - 2810 , - 169 , - 792 , - 1607 , - 2614 , - 741 , - 2132 , - 643 , - 2418 , - 1313 , - 400 , - 2751 , - 2222 , - 1885 , - 1740 , - 1787 , - 2026 , - 2457 , - 8 , - 823 , - 1830 , - 3029 , - 1348 , - 2931 , - 1634 , - 529 , - 2688 , - 1967 , - 1438 , - 1101 , - 956 , - 1003 , - 1242 , - 1673 , - 2296 , - 39 , - 1046 , - 2245 , - 564 , - 2147 , - 850 , - 2817 , - 1904 , - 1183 , - 654 , - 317 , - 172 , - 219 , - 458 , - 889 , - 1512 , - 2327 , - 262 , - 1461 , - 2852 , - 1363 , - 66 , - 2033 , - 1120 , - 399 , - 2942 , - 2605 , - 2460 , - 2507 , - 2746 , - 105 , - 728 , - 1543 , - 2550 , - 677 , - 2068 , - 579 , - 2354 , - 1249 , - 336 , - 2687 , - 2158 , - 1821 , - 1676 , - 1723 , - 1962 , - 2393 , - 3016 , - 759 , - 1766 , - 2965 , - 1284 , - 2867 , - 1570 , - 465 , - 2624 , - 1903 , - 1374 , - 1037 , - 892 , - 939 , - 1178 , - 1609 , - 2232 , - 3047 , - 982 , - 2181 , - 500 , - 2083 , - 786 , - 2753 , - 1840 , - 1119 , - 590 , - 253 , - 108 , - 155 , - 394 , - 825 , - 1448 , - 2263 , - 198 , - 1397 , - 2788 , - 1299 , - 2 , - 1969 , - 1056 , - 335 , - 2878 , - 2541 , - 2396 , - 2443 , - 2682 , - 41 , - 664 , - 1479 , - 2486 , - 613 , - 2004 , - 515 , - 2290 , - 1185 , - 272 , - 2623 , - 2094 , - 1757 , - 1612 , - 1659 , - 1898 , - 2329 , - 2952 , - 695 , - 1702 , - 2901 , - 1220 , - 2803 , - 1506 , - 401 , - 2560 , - 1839 , - 1310 , - 973 , - 828 , - 875 , - 1114 , - 1545 , - 2168 , - 2983 , - 918 , - 2117 , - 436 , - 2019 , - 722 , - 2689 , - 1776 , - 1055 , - 526 , - 189 , - 44 , - 91 , - 330 , - 761 , - 1384 , - 2199 , - 134 , - 1333 , - 2724 , - 1235 , - 3010 , - 1905 , - 992 , - 271 , - 2814 , - 2477 , - 2332 , - 2379 , - 2618 , - 3049 , - 600 , - 1415 , - 2422 , - 549 , - 1940 , - 451 , - 2226 , - 1121 , - 208 , - 2559 , - 2030 , - 1693 , - 1548 , - 1595 , - 1834 , - 2265 , - 2888 , - 631 , - 1638 , - 2837 , - 1156 , - 2739 , - 1442 , - 337 , - 2496 , - 1775 , - 1246 , - 909 , - 764 , - 811 , - 1050 , - 1481 , - 2104 , - 2919 , - 854 , - 2053 , - 372 , - 1955 , - 658 , - 2625 , - 1712 , - 991 , - 462 , - 125 , - 3052 , - 27 , - 266 , - 697 , - 1320 , - 2135 , - 70 , - 1269 , - 2660 , - 1171 , - 2946 , - 1841 , - 928 , - 207 , - 2750 , - 2413 , - 2268 , - 2315 , - 2554 , - 2985 , - 536 , - 1351 , - 2358 , - 485 , - 1876 , - 387 , - 2162 , - 1057 , - 144 , - 2495 , - 1966 , - 1629 , - 1484 , - 1531 , - 1770 , - 2201 , - 2824 , - 567 , - 1574 , - 2773 , - 1092 , - 2675 , - 1378 , - 273 , - 2432 , - 1711 , - 1182 , - 845 , - 700 , - 747 , - 986 , - 1417 , - 2040 , - 2855 , - 790 , - 1989 , - 308 , - 1891 , - 594 , - 2561 , - 1648 , - 927 , - 398 , - 61 , - 2988 , - 3035 , - 202 , - 633 , - 1256 , - 2071 , - 6 , - 1205 , - 2596 , - 1107 , - 2882 , - 1777 , - 864 , - 143 , - 2686 , - 2349 , - 2204 , - 2251 , - 2490 , - 2921 , - 472 , - 1287 , - 2294 , - 421 , - 1812 , - 323 , - 2098 , - 993 , - 80 , - 2431 , - 1902 , - 1565 , - 1420 , - 1467 , - 1706 , - 2137 , - 2760 , - 503 , - 1510 , - 2709 , - 1028 , - 2611 , - 1314 , - 209 , - 2368 , - 1647 , - 1118 , - 781 , - 636 , - 683 , - 922 , - 1353 , - 1976 , - 2791 , - 726 , - 1925 , - 244 , - 1827 , - 530 , - 2497 , - 1584 , - 863 , - 334 , - 3069 , - 2924 , - 2971 , - 138 , - 569 , - 1192 , - 2007 , - 3014 , - 1141 , - 2532 , - 1043 , - 2818 , - 1713 , - 800 , - 79 , - 2622 , - 2285 , - 2140 , - 2187 , - 2426 , - 2857 , - 408 , - 1223 , - 2230 , - 357 , - 1748 , - 259 , - 2034 , - 929 , - 16 , - 2367 , - 1838 , - 1501 , - 1356 , - 1403 , - 1642 , - 2073 , - 2696 , - 439 , - 1446 , - 2645 , - 964 , - 2547 , - 1250 , - 145 , - 2304 , - 1583 , - 1054 , - 717 , - 572 , - 619 , - 858 , - 1289 , - 1912 , - 2727 , - 662 , - 1861 , - 180 , - 1763 , - 466 , - 2433 , - 1520 , - 799 , - 270 , - 3005 , - 2860 , - 2907 , - 74 , - 505 , - 1128 , - 1943 , - 2950 , - 1077 , - 2468 , - 979 , - 2754 , - 1649 , - 736 , - 15 , - 2558 , - 2221 , - 2076 , - 2123 , - 2362 , - 2793 , - 344 , - 1159 , - 2166 , - 293 , - 1684 , - 195 , - 1970 , - 865 , - 3024 , - 2303 , - 1774 , - 1437 , - 1292 , - 1339 , - 1578 , - 2009 , - 2632 , - 375 , - 1382 , - 2581 , - 900 , - 2483 , - 1186 , - 81 , - 2240 , - 1519 , - 990 , - 653 , - 508 , - 555 , - 794 , - 1225 , - 1848 , - 2663 , - 598 , - 1797 , - 116 , - 1699 , - 402 , - 2369 , - 1456 , - 735 , - 206 , - 2941 , - 2796 , - 2843 , - 10 , - 441 , - 1064 , - 1879 , - 2886 , - 1013 , - 2404 , - 915 , - 2690 , - 1585 , - 672 , - 3023 , - 2494 , - 2157 , - 2012 , - 2059 , - 2298 , - 2729 , - 280 , - 1095 , - 2102 , - 229 , - 1620 , - 131 , - 1906 , - 801 , - 2960 , - 2239 , - 1710 , - 1373 , - 1228 , - 1275 , - 1514 , - 1945 , - 2568 , - 311 , - 1318 , - 2517 , - 836 , - 2419 , - 1122 , - 17 , - 2176 , - 1455 , - 926 , - 589 , - 444 , - 491 , - 730 , - 1161 , - 1784 , - 2599 , - 534 , - 1733 , - 52 , - 1635 , - 338 , - 2305 , - 1392 , - 671 , - 142 , - 2877 , - 2732 , - 2779 , - 3018 , - 377 , - 1000 , - 1815 , - 2822 , - 949 , - 2340 , - 851 , - 2626 , - 1521 , - 608 , - 2959 , - 2430 , - 2093 , - 1948 , - 1995 , - 2234 , - 2665 , - 216 , - 1031 , - 2038 , - 165 , - 1556 , - 67 , - 1842 , - 737 , - 2896 , - 2175 , - 1646 , - 1309 , - 1164 , - 1211 , - 1450 , - 1881 , - 2504 , - 247 , - 1254 , - 2453 , - 772 , - 2355 , - 1058 , - 3025 , - 2112 , - 1391 , - 862 , - 525 , - 380 , - 427 , - 666 , - 1097 , - 1720 , - 2535 , - 470 , - 1669 , - 3060 , - 1571 , - 274 , - 2241 , - 1328 , - 607 , - 78 , - 2813 , - 2668 , - 2715 , - 2954 , - 313 , - 936 , - 1751 , - 2758 , - 885 , - 2276 , - 787 , - 2562 , - 1457 , - 544 , - 2895 , - 2366 , - 2029 , - 1884 , - 1931 , - 2170 , - 2601 , - 152 , - 967 , - 1974 , - 101 , - 1492 , - 3 , - 1778 , - 673 , - 2832 , - 2111 , - 1582 , - 1245 , - 1100 , - 1147 , - 1386 , - 1817 , - 2440 , - 183 , - 1190 , - 2389 , - 708 , - 2291 , - 994 , - 2961 , - 2048 , - 1327 , - 798 , - 461 , - 316 , - 363 , - 602 , - 1033 , - 1656 , - 2471 , - 406 , - 1605 , - 2996 , - 1507 , - 210 , - 2177 , - 1264 , - 543 , - 14 , - 2749 , - 2604 , - 2651 , - 2890 , - 249 , - 872 , - 1687 , - 2694 , - 821 , - 2212 , - 723 , - 2498 , - 1393 , - 480 , - 2831 , - 2302 , - 1965 , - 1820 , - 1867 , - 2106 , - 2537 , - 88 , - 903 , - 1910 , - 37 , - 1428 , - 3011 , - 1714 , - 609 , - 2768 , - 2047 , - 1518 , - 1181 , - 1036 , - 1083 , - 1322 , - 1753 , - 2376 , - 119 , - 1126 , - 2325 , - 644 , - 2227 , - 930 , - 2897 , - 1984 , - 1263 , - 734 , - 397 , - 252 , - 299 , - 538 , - 969 , - 1592 , - 2407 , - 342 , - 1541 , - 2932 , - 1443 , - 146 , - 2113 , - 1200 , - 479 , - 3022 , - 2685 , - 2540 , - 2587 , - 2826 , - 185 , - 808 , - 1623 , - 2630 , - 757 , - 2148 , - 659 , - 2434 , - 1329 , - 416 , - 2767 , - 2238 , - 1901 , - 1756 , - 1803 , - 2042 , - 2473 , - 24 , - 839 , - 1846 , - 3045 , - 1364 , - 2947 , - 1650 , - 545 , - 2704 , - 1983 , - 1454 , - 1117 , - 972 , - 1019 , - 1258 , - 1689 , - 2312 , - 55 , - 1062 , - 2261 , - 580 , - 2163 , - 866 , - 2833 , - 1920 , - 1199 , - 670 , - 333 , - 188 , - 235 , - 474 , - 905 , - 1528 , - 2343 , - 278 , - 1477 , - 2868 , - 1379 , - 82 , - 2049 , - 1136 , - 415 , - 2958 , - 2621 , - 2476 , - 2523 , - 2762 , - 121 , - 744 , - 1559 , - 2566 , - 693 , - 2084 , - 595 , - 2370 , - 1265 , - 352 , - 2703 , - 2174 , - 1837 , - 1692 , - 1739 , - 1978 , - 2409 , - 3032 , - 775 , - 1782 , - 2981 , - 1300 , - 2883 , - 1586 , - 481 , - 2640 , - 1919 , - 1390 , - 1053 , - 908 , - 955 , - 1194 , - 1625 , - 2248 , - 3063 , - 998 , - 2197 , - 516 , - 2099 , - 802 , - 2769 , - 1856 , - 1135 , - 606 , - 269 , - 124 , - 171 , - 410 , - 841 , - 1464 , - 2279 , - 214 , - 1413 , - 2804 , - 1315 , - 18 , - 1985 , - 1072 , - 351 , - 2894 , - 2557 , - 2412 , - 2459 , - 2698 , - 57 , - 680 , - 1495 , - 2502 , - 629 , - 2020 , - 531 , - 2306 , - 1201 , - 288 , - 2639 , - 2110 , - 1773 , - 1628 , - 1675 , - 1914 , - 2345 , - 2968 , - 711 , - 1718 , - 2917 , - 1236 , - 2819 , - 1522 , - 417 , - 2576 , - 1855 , - 1326 , - 989 , - 844 , - 891 , - 1130 , - 1561 , - 2184 , - 2999 , - 934 , - 2133 , - 452 , - 2035 , - 738 , - 2705 , - 1792 , - 1071 , - 542 , - 205 , - 60 , - 107 , - 346 , - 777 , - 1400 , - 2215 , - 150 , - 1349 , - 2740 , - 1251 , - 3026 , - 1921 , - 1008 , - 287 , - 2830 , - 2493 , - 2348 , - 2395 , - 2634 , - 3065 , - 616 , - 1431 , - 2438 , - 565 , - 1956 , - 467 , - 2242 , - 1137 , - 224 , - 2575 , - 2046 , - 1709 , - 1564 , - 1611 , - 1850 , - 2281 , - 2904 , - 647 , - 1654 , - 2853 , - 1172 , - 2755 , - 1458 , - 353 , - 2512 , - 1791 , - 1262 , - 925 , - 780 , - 827 , - 1066 , - 1497 , - 2120 , - 2935 , - 870 , - 2069 , - 388 , - 1971 , - 674 , - 2641 , - 1728 , - 1007 , - 478 , - 141 , - 3068 , - 43 , - 282 , - 713 , - 1336 , - 2151 , - 86 , - 1285 , - 2676 , - 1187 , - 2962 , - 1857 , - 944 , - 223 , - 2766 , - 2429 , - 2284 , - 2331 , - 2570 , - 3001 , - 552 , - 1367 , - 2374 , - 501 , - 1892 , - 403 , - 2178 , - 1073 , - 160 , - 2511 , - 1982 , - 1645 , - 1500 , - 1547 , - 1786 , - 2217 , - 2840 , - 583 , - 1590 , - 2789 , - 1108 , - 2691 , - 1394 , - 289 , - 2448 , - 1727 , - 1198 , - 861 , - 716 , - 763 , - 1002 , - 1433 , - 2056 , - 2871 , - 806 , - 2005 , - 324 , - 1907 , - 610 , - 2577 , - 1664 , - 943 , - 414 , - 77 , - 3004 , - 3051 , - 218 , - 649 , - 1272 , - 2087 , - 22 , - 1221 , - 2612 , - 1123 , - 2898 , - 1793 , - 880 , - 159 , - 2702 , - 2365 , - 2220 , - 2267 , - 2506 , - 2937 , - 488 , - 1303 , - 2310 , - 437 , - 1828 , - 339 , - 2114 , - 1009 , - 96 , - 2447 , - 1918 , - 1581 , - 1436 , - 1483 , - 1722 , - 2153 , - 2776 , - 519 , - 1526 , - 2725 , - 1044 , - 2627 , - 1330 , - 225 , - 2384 , - 1663 , - 1134 , - 797 , - 652 , - 699 , - 938 , - 1369 , - 1992 , - 2807 , - 742 , - 1941 , - 260 , - 1843 , - 546 , - 2513 , - 1600 , - 879 , - 350 , - 13 , - 2940 , - 2987 , - 154 , - 585 , - 1208 , - 2023 , - 3030 , - 1157 , - 2548 , - 1059 , - 2834 , - 1729 , - 816 , - 95 , - 2638 , - 2301 , - 2156 , - 2203 , - 2442 , - 2873 , - 424 , - 1239 , - 2246 , - 373 , - 1764 , - 275 , - 2050 , - 945 , - 32 , - 2383 , - 1854 , - 1517 , - 1372 , - 1419 , - 1658 , - 2089 , - 2712 , - 455 , - 1462 , - 2661 , - 980 , - 2563 , - 1266 , - 161 , - 2320 , - 1599 , - 1070 , - 733 , - 588 , - 635 , - 874 , - 1305 , - 1928 , - 2743 , - 678 , - 1877 , - 196 , - 1779 , - 482 , - 2449 , - 1536 , - 815 , - 286 , - 3021 , - 2876 , - 2923 , - 90 , - 521 , - 1144 , - 1959 , - 2966 , - 1093 , - 2484 , - 995 , - 2770 , - 1665 , - 752 , - 31 , - 2574 , - 2237 , - 2092 , - 2139 , - 2378 , - 2809 , - 360 , - 1175 , - 2182 , - 309 , - 1700 , - 211 , - 1986 , - 881 , - 3040 , - 2319 , - 1790 , - 1453 , - 1308 , - 1355 , - 1594 , - 2025 , - 2648 , - 391 , - 1398 , - 2597 , - 916 , - 2499 , - 1202 , - 97 , - 2256 , - 1535 , - 1006 , - 669 , - 524 , - 571 , - 810 , - 1241 , - 1864 , - 2679 , - 614 , - 1813 , - 132 , - 1715 , - 418 , - 2385 , - 1472 , - 751 , - 222 , - 2957 , - 2812 , - 2859 , - 26 , - 457 , - 1080 , - 1895 , - 2902 , - 1029 , - 2420 , - 931 , - 2706 , - 1601 , - 688 , - 3039 , - 2510 , - 2173 , - 2028 , - 2075 , - 2314 , - 2745 , - 296 , - 1111 , - 2118 , - 245 , - 1636 , - 147 , - 1922 , - 817 , - 2976 , - 2255 , - 1726 , - 1389 , - 1244 , - 1291 , - 1530 , - 1961 , - 2584 , - 327 , - 1334 , - 2533 , - 852 , - 2435 , - 1138 , - 33 , - 2192 , - 1471 , - 942 , - 605 , - 460 , - 507 , - 746 , - 1177 , - 1800 , - 2615 , - 550 , - 1749 , - 68 , - 1651 , - 354 , - 2321 , - 1408 , - 687 , - 158 , - 2893 , - 2748 , - 2795 , - 3034 , - 393 , - 1016 , - 1831 , - 2838 , - 965 , - 2356 , - 867 , - 2642 , - 1537 , - 624 , - 2975 , - 2446 , - 2109 , - 1964 , - 2011 , - 2250 , - 2681 , - 232 , - 1047 , - 2054 , - 181 , - 1572 , - 83 , - 1858 , - 753 , - 2912 , - 2191 , - 1662 , - 1325 , - 1180 , - 1227 , - 1466 , - 1897 , - 2520 , - 263 , - 1270 , - 2469 , - 788 , - 2371 , - 1074 , - 3041 , - 2128 , - 1407 , - 878 , - 541 , - 396 , - 443 , - 682 , - 1113 , - 1736 , - 2551 , - 486 , - 1685 , - 4 , - 1587 , - 290 , - 2257 , - 1344 , - 623 , - 94 , - 2829 , - 2684 , - 2731 , - 2970 , - 329 , - 952 , - 1767 , - 2774 , - 901 , - 2292 , - 803 , - 2578 , - 1473 , - 560 , - 2911 , - 2382 , - 2045 , - 1900 , - 1947 , - 2186 , - 2617 , - 168 , - 983 , - 1990 , - 117 , - 1508 , - 19 , - 1794 , - 689 , - 2848 , - 2127 , - 1598 , - 1261 , - 1116 , - 1163 , - 1402 , - 1833 , - 2456 , - 199 , - 1206 , - 2405 , - 724 , - 2307 , - 1010 , - 2977 , - 2064 , - 1343 , - 814 , - 477 , - 332 , - 379 , - 618 , - 1049 , - 1672 , - 2487 , - 422 , - 1621 , - 3012 , - 1523 , - 226 , - 2193 , - 1280 , - 559 , - 30 , - 2765 , - 2620 , - 2667 , - 2906 , - 265 , - 888 , - 1703 , - 2710 , - 837 , - 2228 , - 739 , - 2514 , - 1409 , - 496 , - 2847 , - 2318 , - 1981 , - 1836 , - 1883 , - 2122 , - 2553 , - 104 , - 919 , - 1926 , - 53 , - 1444 , - 3027 , - 1730 , - 625 , - 2784 , - 2063 , - 1534 , - 1197 , - 1052 , - 1099 , - 1338 , - 1769 , - 2392 , - 135 , - 1142 , - 2341 , - 660 , - 2243 , - 946 , - 2913 , - 2000 , - 1279 , - 750 , - 413 , - 268 , - 315 , - 554 , - 985 , - 1608 , - 2423 , - 358 , - 1557 , - 2948 , - 1459 , - 162 , - 2129 , - 1216 , - 495 , - 3038 , - 2701 , - 2556 , - 2603 , - 2842 , - 201 , - 824 , - 1639 , - 2646 , - 773 , - 2164 , - 675 , - 2450 , - 1345 , - 432 , - 2783 , - 2254 , - 1917 , - 1772 , - 1819 , - 2058 , - 2489 , - 40 , - 855 , - 1862 , - 3061 , - 1380 , - 2963 , - 1666 , - 561 , - 2720 , - 1999 , - 1470 , - 1133 , - 988 , - 1035 , - 1274 , - 1705 , - 2328 , - 71 , - 1078 , - 2277 , - 596 , - 2179 , - 882 , - 2849 , - 1936 , - 1215 , - 686 , - 349 , - 204 , - 251 , - 490 , - 921 , - 1544 , - 2359 , - 294 , - 1493 , - 2884 , - 1395 , - 98 , - 2065 , - 1152 , - 431 , - 2974 , - 2637 , - 2492 , - 2539 , - 2778 , - 137 , - 760 , - 1575 , - 2582 , - 709 , - 2100 , - 611 , - 2386 , - 1281 , - 368 , - 2719 , - 2190 , - 1853 , - 1708 , - 1755 , - 1994 , - 2425 , - 3048 , - 791 , - 1798 , - 2997 , - 1316 , - 2899 , - 1602 , - 497 , - 2656 , - 1935 , - 1406 , - 1069 , - 924 , - 971 , - 1210 , - 1641 , - 2264 , - 7 , - 1014 , - 2213 , - 532 , - 2115 , - 818 , - 2785 , - 1872 , - 1151 , - 622 , - 285 , - 140 , - 187 , - 426 , - 857 , - 1480 , - 2295 , - 230 , - 1429 , - 2820 , - 1331 , - 34 , - 2001 , - 1088 , - 367 , - 2910 , - 2573 , - 2428 , - 2475 , - 2714 , - 73 , - 696 , - 1511 , - 2518 , - 645 , - 2036 , - 547 , - 2322 , - 1217 , - 304 , - 2655 , - 2126 , - 1789 , - 1644 , - 1691 , - 1930 , - 2361 , - 2984 , - 727 , - 1734 , - 2933 , - 1252 , - 2835 , - 1538 , - 433 , - 2592 , - 1871 , - 1342 , - 1005 , - 860 , - 907 , - 1146 , - 1577 , - 2200 , - 3015 , - 950 , - 2149 , - 468 , - 2051 , - 754 , - 2721 , - 1808 , - 1087 , - 558 , - 221 , - 76 , - 123 , - 362 , - 793 , - 1416 , - 2231 , - 166 , - 1365 , - 2756 , - 1267 , - 3042 , - 1937 , - 1024 , - 303 , - 2846 , - 2509 , - 2364 , - 2411 , - 2650 , - 9 , - 632 , - 1447 , - 2454 , - 581 , - 1972 , - 483 , - 2258 , - 1153 , - 240 , - 2591 , - 2062 , - 1725 , - 1580 , - 1627 , - 1866 , - 2297 , - 2920 , - 663 , - 1670 , - 2869 , - 1188 , - 2771 , - 1474 , - 369 , - 2528 , - 1807 , - 1278 , - 941 , - 796 , - 843 , - 1082 , - 1513 , - 2136 , - 2951 , - 886 , - 2085 , - 404 , - 1987 , - 690 , - 2657 , - 1744 , - 1023 , - 494 , - 157 , - 12 , - 59 , - 298 , - 729 , - 1352 , - 2167 , - 102 , - 1301 , - 2692 , - 1203 , - 2978 , - 1873 , - 960 , - 239 , - 2782 , - 2445 , - 2300 , - 2347 , - 2586 , - 3017 , - 568 , - 1383 , - 2390 , - 517 , - 1908 , - 419 , - 2194 , - 1089 , - 176 , - 2527 , - 1998 , - 1661 , - 1516 , - 1563 , - 1802 , - 2233 , - 2856 , - 599 , - 1606 , - 2805 , - 1124 , - 2707 , - 1410 , - 305 , - 2464 , - 1743 , - 1214 , - 877 , - 732 , - 779 , - 1018 , - 1449 , - 2072 , - 2887 , - 822 , - 2021 , - 340 , - 1923 , - 626 , - 2593 , - 1680 , - 959 , - 430 , - 93 , - 3020 , - 3067 , - 234 , - 665 , - 1288 , - 2103 , - 38 , - 1237 , - 2628 , - 1139 , - 2914 , - 1809 , - 896 , - 175 , - 2718 , - 2381 , - 2236 , - 2283 , - 2522 , - 2953 , - 504 , - 1319 , - 2326 , - 453 , - 1844 , - 355 , - 2130 , - 1025 , - 112 , - 2463 , - 1934 , - 1597 , - 1452 , - 1499 , - 1738 , - 2169 , - 2792 , - 535 , - 1542 , - 2741 , - 1060 , - 2643 , - 1346 , - 241 , - 2400 , - 1679 , - 1150 , - 813 , - 668 , - 715 , - 954 , - 1385 , - 2008 , - 2823 , - 758 , - 1957 , - 276 , - 1859 , - 562 , - 2529 , - 1616 , - 895 , - 366 , - 29 , - 2956 , - 3003 , - 170 , - 601 , - 1224 , - 2039 , - 3046 , - 1173 , - 2564 , - 1075 , - 2850 , - 1745 , - 832 , - 111 , - 2654 , - 2317 , - 2172 , - 2219 , - 2458 , - 2889 , - 440 , - 1255 , - 2262 , - 389 , - 1780 , - 291 , - 2066 , - 961 , - 48 , - 2399 , - 1870 , - 1533 , - 1388 , - 1435 , - 1674 , - 2105 , - 2728 , - 471 , - 1478 , - 2677 , - 996 , - 2579 , - 1282 , - 177 , - 2336 , - 1615 , - 1086 , - 749 , - 604 , - 651 , - 890 , - 1321 , - 1944 , - 2759 , - 694 , - 1893 , - 212 , - 1795 , - 498 , - 2465 , - 1552 , - 831 , - 302 , - 3037 , - 2892 , - 2939 , - 106 , - 537 , - 1160 , - 1975 , - 2982 , - 1109 , - 2500 , - 1011 , - 2786 , - 1681 , - 768 , - 47 , - 2590 , - 2253 , - 2108 , - 2155 , - 2394 , - 2825 , - 376 , - 1191 , - 2198 , - 325 , - 1716 , - 227 , - 2002 , - 897 , - 3056 , - 2335 , - 1806 , - 1469 , - 1324 , - 1371 , - 1610 , - 2041 , - 2664 , - 407 , - 1414 , - 2613 , - 932 , - 2515 , - 1218 , - 113 , - 2272 , - 1551 , - 1022 , - 685 , - 540 , - 587 , - 826 , - 1257 , - 1880 , - 2695 , - 630 , - 1829 , - 148 , - 1731 , - 434 , - 2401 , - 1488 , - 767 , - 238 , - 2973 , - 2828 , - 2875 , - 42 , - 473 , - 1096 , - 1911 , - 2918 , - 1045 , - 2436 , - 947 , - 2722 , - 1617 , - 704 , - 3055 , - 2526 , - 2189 , - 2044 , - 2091 , - 2330 , - 2761 , - 312 , - 1127 , - 2134 , - 261 , - 1652 , - 163 , - 1938 , - 833 , - 2992 , - 2271 , - 1742 , - 1405 , - 1260 , - 1307 , - 1546 , - 1977 , - 2600 , - 343 , - 1350 , - 2549 , - 868 , - 2451 , - 1154 , - 49 , - 2208 , - 1487 , - 958 , - 621 , - 476 , - 523 , - 762 , - 1193 , - 1816 , - 2631 , - 566 , - 1765 , - 84 , - 1667 , - 370 , - 2337 , - 1424 , - 703 , - 174 , - 2909 , - 2764 , - 2811 , - 3050 , - 409 , - 1032 , - 1847 , - 2854 , - 981 , - 2372 , - 883 , - 2658 , - 1553 , - 640 , - 2991 , - 2462 , - 2125 , - 1980 , - 2027 , - 2266 , - 2697 , - 248 , - 1063 , - 2070 , - 197 , - 1588 , - 99 , - 1874 , - 769 , - 2928 , - 2207 , - 1678 , - 1341 , - 1196 , - 1243 , - 1482 , - 1913 , - 2536 , - 279 , - 1286 , - 2485 , - 804 , - 2387 , - 1090 , - 3057 , - 2144 , - 1423 , - 894 , - 557 , - 412 , - 459 , - 698 , - 1129 , - 1752 , - 2567 , - 502 , - 1701 , - 20 , - 1603 , - 306 , - 2273 , - 1360 , - 639 , - 110 , - 2845 , - 2700 , - 2747 , - 2986 , - 345 , - 968 , - 1783 , - 2790 , - 917 , - 2308 , - 819 , - 2594 , - 1489 , - 576 , - 2927 , - 2398 , - 2061 , - 1916 , - 1963 , - 2202 , - 2633 , - 184 , - 999 , - 2006 , - 133 , - 1524 , - 35 , - 1810 , - 705 , - 2864 , - 2143 , - 1614 , - 1277 , - 1132 , - 1179 , - 1418 , - 1849 , - 2472 , - 215 , - 1222 , - 2421 , - 740 , - 2323 , - 1026 , - 2993 , - 2080 , - 1359 , - 830 , - 493 , - 348 , - 395 , - 634 , - 1065 , - 1688 , - 2503 , - 438 , - 1637 , - 3028 , - 1539 , - 242 , - 2209 , - 1296 , - 575 , - 46 , - 2781 , - 2636 , - 2683 , - 2922 , - 281 , - 904 , - 1719 , - 2726 , - 853 , - 2244 , - 755 , - 2530 , - 1425 , - 512 , - 2863 , - 2334 , - 1997 , - 1852 , - 1899 , - 2138 , - 2569 , - 120 , - 935 , - 1942 , - 69 , - 1460 , - 3043 , - 1746 , - 641 , - 2800 , - 2079 , - 1550 , - 1213 , - 1068 , - 1115 , - 1354 , - 1785 , - 2408 , - 151 , - 1158 , - 2357 , - 676 , - 2259 , - 962 , - 2929 , - 2016 , - 1295 , - 766 , - 429 , - 284 , - 331 , - 570 , - 1001 , - 1624 , - 2439 , - 374 , - 1573 , - 2964 , - 1475 , - 178 , - 2145 , - 1232 , - 511 , - 3054 , - 2717 , - 2572 , - 2619 , - 2858 , - 217 , - 840 , - 1655 , - 2662 , - 789 , - 2180 , - 691 , - 2466 , - 1361 , - 448 , - 2799 , - 2270 , - 1933 , - 1788 , - 1835 , - 2074 , - 2505 , - 56 , - 871 , - 1878 , - 5 , - 1396 , - 2979 , - 1682 , - 577 , - 2736 , - 2015 , - 1486 , - 1149 , - 1004 , - 1051 , - 1290 , - 1721 , - 2344 , - 87 , - 1094 , - 2293 , - 612 , - 2195 , - 898 , - 2865 , - 1952 , - 1231 , - 702 , - 365 , - 220 , - 267 , - 506 , - 937 , - 1560 , - 2375 , - 310 , - 1509 , - 2900 , - 1411 , - 114 , - 2081 , - 1168 , - 447 , - 2990 , - 2653 , - 2508 , - 2555 , - 2794 , - 153 , - 776 , - 1591 , - 2598 , - 725 , - 2116 , - 627 , - 2402 , - 1297 , - 384 , - 2735 , - 2206 , - 1869 , - 1724 , - 1771 , - 2010 , - 2441 , - 3064 , - 807 , - 1814 , - 3013 , - 1332 , - 2915 , - 1618 , - 513 , - 2672 , - 1951 , - 1422 , - 1085 , - 940 , - 987 , - 1226 , - 1657 , - 2280 , - 23 , - 1030 , - 2229 , - 548 , - 2131 , - 834 , - 2801 , - 1888 , - 1167 , - 638 , - 301 , - 156 , - 203 , - 442 , - 873 , - 1496 , - 2311 , - 246 , - 1445 , - 2836 , - 1347 , - 50 , - 2017 , - 1104 , - 383 , - 2926 , - 2589 , - 2444 , - 2491 , - 2730 , - 89 , - 712 , - 1527 , - 2534 , - 661 , - 2052 , - 563 , - 2338 , - 1233 , - 320 , - 2671 , - 2142 , - 1805 , - 1660 , - 1707 , - 1946 , - 2377 , - 3000 , - 743 , - 1750 , - 2949 , - 1268 , - 2851 , - 1554 , - 449 , - 2608 , - 1887 , - 1358 , - 1021 , - 876 , - 923 , - 1162 , - 1593 , - 2216 , - 3031 , - 966 , - 2165 , - 484 , - 2067 , - 770 , - 2737 , - 1824 , - 1103 , - 574 , - 237 , - 92 , - 139 , - 378 , - 809 , - 1432 , - 2247 , - 182 , - 1381 , - 2772 , - 1283 , - 3058 , - 1953 , - 1040 , - 319 , - 2862 , - 2525 , - 2380 , - 2427 , - 2666 , - 25 , - 648 , - 1463 , - 2470 , - 597 , - 1988 , - 499 , - 2274 , - 1169 , - 256 , - 2607 , - 2078 , - 1741 , - 1596 , - 1643 , - 1882 , - 2313 , - 2936 , - 679 , - 1686 , - 2885 , - 1204 , - 2787 , - 1490 , - 385 , - 2544 , - 1823 , - 1294 , - 957 , - 812 , - 859 , - 1098 , - 1529 , - 2152 , - 2967 , - 902 , - 2101 , - 420 , - 2003 , - 706 , - 2673 , - 1760 , - 1039 , - 510 , - 173 , - 28 , - 75 , - 314 , - 745 , - 1368 , - 2183 , - 118 , - 1317 , - 2708 , - 1219 , - 2994 , - 1889 , - 976 , - 255 , - 2798 , - 2461 , - 2316 , - 2363 , - 2602 , - 3033 , - 584 , - 1399 , - 2406 , - 533 , - 1924 , - 435 , - 2210 , - 1105 , - 192 , - 2543 , - 2014 , - 1677 , - 1532 , - 1579 , - 1818 , - 2249 , - 2872 , - 615 , - 1622 , - 2821 , - 1140 , - 2723 , - 1426 , - 321 , - 2480 , - 1759 , - 1230 , - 893 , - 748 , - 795 , - 1034 , - 1465 , - 2088 , - 2903 , - 838 , - 2037 , - 356 , - 1939 , - 642 , - 2609 , - 1696 , - 975 , - 446 , - 109 , - 3036 , - 11 , - 250 , - 681 , - 1304 , - 2119 , - 54 , - 1253 , - 2644 , - 1155 , - 2930 , - 1825 , - 912 , - 191 , - 2734 , - 2397 , - 2252 , - 2299 , - 2538 , - 2969 , - 520 , - 1335 , - 2342 , - 469 , - 1860 , - 371 , - 2146 , - 1041 , - 128 , - 2479 , - 1950 , - 1613 , - 1468 , - 1515 , - 1754 , - 2185 , - 2808 , - 551 , - 1558 , - 2757 , - 1076 , - 2659 , - 1362 , - 257 , - 2416 , - 1695 , - 1166 , - 829 , - 684 , - 731 , - 970 , - 1401 , - 2024 , - 2839 , - 774 , - 1973 , - 292 , - 1875 , - 578 , - 2545 , - 1632 , - 911 , - 382 , - 45 , - 2972 , - 3019 , - 186 , - 617 , - 1240 , - 2055 , - 3062 , - 1189 , - 2580 , - 1091 , - 2866 , - 1761 , - 848 , - 127 , - 2670 , - 2333 , - 2188 , - 2235 , - 2474 , - 2905 , - 456 , - 1271 , - 2278 , - 405 , - 1796 , - 307 , - 2082 , - 977 , - 64 , - 2415 , - 1886 , - 1549 , - 1404 , - 1451 , - 1690 , - 2121 , - 2744 , - 487 , - 1494 , - 2693 , - 1012 , - 2595 , - 1298 , - 193 , - 2352 , - 1631 , - 1102 , - 765 , - 620 , - 667 , - 906 , - 1337 , - 1960 , - 2775 , - 710 , - 1909 , - 228 , - 1811 , - 514 , - 2481 , - 1568 , - 847 , - 318 , - 3053 , - 2908 , - 2955 , - 122 , - 553 , - 1176 , - 1991 , - 2998 , - 1125 , - 2516 , - 1027 , - 2802 , - 1697 , - 784 , - 63 , - 2606 , - 2269 , - 2124 , - 2171 , - 2410 , - 2841 , - 392 , - 1207 , - 2214 , - 341 , - 1732 , - 243 , - 2018 , - 913 , - 0 , - 2169 , - 474 , - 1187 , - 1172 , - 429 , - 2094 , - 3031 , - 104 , - 2721 , - 1474 , - 2635 , - 3068 , - 2773 , - 1750 , - 3135 , - 656 , - 585 , - 2922 , - 1395 , - 2276 , - 2429 , - 1854 , - 551 , - 1656 , - 2033 , - 1682 , - 603 , - 1932 , - 2533 , - 2406 , - 1551 , - 3104 , - 793 , - 890 , - 259 , - 2036 , - 3085 , - 270 , - 2999 , - 1864 , - 1 , - 546 , - 363 , - 2588 , - 949 , - 1718 , - 1759 , - 1072 , - 2793 , - 650 , - 915 , - 452 , - 2397 , - 478 , - 967 , - 728 , - 2897 , - 1202 , - 1915 , - 1900 , - 1157 , - 2822 , - 623 , - 832 , - 313 , - 2202 , - 227 , - 660 , - 365 , - 2478 , - 727 , - 1384 , - 1313 , - 514 , - 2123 , - 3004 , - 21 , - 2582 , - 1279 , - 2384 , - 2761 , - 2410 , - 1331 , - 2660 , - 125 , - 3134 , - 2279 , - 696 , - 1521 , - 1618 , - 987 , - 2764 , - 677 , - 998 , - 591 , - 2592 , - 729 , - 1274 , - 1091 , - 180 , - 1677 , - 2446 , - 2487 , - 1800 , - 385 , - 1378 , - 1643 , - 1180 , - 3125 , - 1206 , - 1695 , - 1456 , - 489 , - 1930 , - 2643 , - 2628 , - 1885 , - 414 , - 1351 , - 1560 , - 1041 , - 2930 , - 955 , - 1388 , - 1093 , - 70 , - 1455 , - 2112 , - 2041 , - 1242 , - 2851 , - 596 , - 749 , - 174 , - 2007 , - 3112 , - 353 , - 2 , - 2059 , - 252 , - 853 , - 726 , - 3007 , - 1424 , - 2249 , - 2346 , - 1715 , - 356 , - 1405 , - 1726 , - 1319 , - 184 , - 1457 , - 2002 , - 1819 , - 908 , - 2405 , - 38 , - 79 , - 2528 , - 1113 , - 2106 , - 2371 , - 1908 , - 717 , - 1934 , - 2423 , - 2184 , - 1217 , - 2658 , - 235 , - 220 , - 2613 , - 1142 , - 2079 , - 2288 , - 1769 , - 522 , - 1683 , - 2116 , - 1821 , - 798 , - 2183 , - 2840 , - 2769 , - 1970 , - 443 , - 1324 , - 1477 , - 902 , - 2735 , - 704 , - 1081 , - 730 , - 2787 , - 980 , - 1581 , - 1454 , - 599 , - 2152 , - 2977 , - 3074 , - 2443 , - 1084 , - 2133 , - 2454 , - 2047 , - 912 , - 2185 , - 2730 , - 2547 , - 1636 , - 3133 , - 766 , - 807 , - 120 , - 1841 , - 2834 , - 3099 , - 2636 , - 1445 , - 2662 , - 15 , - 2912 , - 1945 , - 250 , - 963 , - 948 , - 205 , - 1870 , - 2807 , - 3016 , - 2497 , - 1250 , - 2411 , - 2844 , - 2549 , - 1526 , - 2911 , - 432 , - 361 , - 2698 , - 1171 , - 2052 , - 2205 , - 1630 , - 327 , - 1432 , - 1809 , - 1458 , - 379 , - 1708 , - 2309 , - 2182 , - 1327 , - 2880 , - 569 , - 666 , - 35 , - 1812 , - 2861 , - 46 , - 2775 , - 1640 , - 2913 , - 322 , - 139 , - 2364 , - 725 , - 1494 , - 1535 , - 848 , - 2569 , - 426 , - 691 , - 228 , - 2173 , - 254 , - 743 , - 504 , - 2673 , - 978 , - 1691 , - 1676 , - 933 , - 2598 , - 399 , - 608 , - 89 , - 1978 , - 3 , - 436 , - 141 , - 2254 , - 503 , - 1160 , - 1089 , - 290 , - 1899 , - 2780 , - 2933 , - 2358 , - 1055 , - 2160 , - 2537 , - 2186 , - 1107 , - 2436 , - 3037 , - 2910 , - 2055 , - 472 , - 1297 , - 1394 , - 763 , - 2540 , - 453 , - 774 , - 367 , - 2368 , - 505 , - 1050 , - 867 , - 3092 , - 1453 , - 2222 , - 2263 , - 1576 , - 161 , - 1154 , - 1419 , - 956 , - 2901 , - 982 , - 1471 , - 1232 , - 265 , - 1706 , - 2419 , - 2404 , - 1661 , - 190 , - 1127 , - 1336 , - 817 , - 2706 , - 731 , - 1164 , - 869 , - 2982 , - 1231 , - 1888 , - 1817 , - 1018 , - 2627 , - 372 , - 525 , - 3086 , - 1783 , - 2888 , - 129 , - 2914 , - 1835 , - 28 , - 629 , - 502 , - 2783 , - 1200 , - 2025 , - 2122 , - 1491 , - 132 , - 1181 , - 1502 , - 1095 , - 3096 , - 1233 , - 1778 , - 1595 , - 684 , - 2181 , - 2950 , - 2991 , - 2304 , - 889 , - 1882 , - 2147 , - 1684 , - 493 , - 1710 , - 2199 , - 1960 , - 993 , - 2434 , - 11 , - 3132 , - 2389 , - 918 , - 1855 , - 2064 , - 1545 , - 298 , - 1459 , - 1892 , - 1597 , - 574 , - 1959 , - 2616 , - 2545 , - 1746 , - 219 , - 1100 , - 1253 , - 678 , - 2511 , - 480 , - 857 , - 506 , - 2563 , - 756 , - 1357 , - 1230 , - 375 , - 1928 , - 2753 , - 2850 , - 2219 , - 860 , - 1909 , - 2230 , - 1823 , - 688 , - 1961 , - 2506 , - 2323 , - 1412 , - 2909 , - 542 , - 583 , - 3032 , - 1617 , - 2610 , - 2875 , - 2412 , - 1221 , - 2438 , - 2927 , - 2688 , - 1721 , - 26 , - 739 , - 724 , - 3117 , - 1646 , - 2583 , - 2792 , - 2273 , - 1026 , - 2187 , - 2620 , - 2325 , - 1302 , - 2687 , - 208 , - 137 , - 2474 , - 947 , - 1828 , - 1981 , - 1406 , - 103 , - 1208 , - 1585 , - 1234 , - 155 , - 1484 , - 2085 , - 1958 , - 1103 , - 2656 , - 345 , - 442 , - 2947 , - 1588 , - 2637 , - 2958 , - 2551 , - 1416 , - 2689 , - 98 , - 3051 , - 2140 , - 501 , - 1270 , - 1311 , - 624 , - 2345 , - 202 , - 467 , - 4 , - 1949 , - 30 , - 519 , - 280 , - 2449 , - 754 , - 1467 , - 1452 , - 709 , - 2374 , - 175 , - 384 , - 3001 , - 1754 , - 2915 , - 212 , - 3053 , - 2030 , - 279 , - 936 , - 865 , - 66 , - 1675 , - 2556 , - 2709 , - 2134 , - 831 , - 1936 , - 2313 , - 1962 , - 883 , - 2212 , - 2813 , - 2686 , - 1831 , - 248 , - 1073 , - 1170 , - 539 , - 2316 , - 229 , - 550 , - 143 , - 2144 , - 281 , - 826 , - 643 , - 2868 , - 1229 , - 1998 , - 2039 , - 1352 , - 3073 , - 930 , - 1195 , - 732 , - 2677 , - 758 , - 1247 , - 1008 , - 41 , - 1482 , - 2195 , - 2180 , - 1437 , - 3102 , - 903 , - 1112 , - 593 , - 2482 , - 507 , - 940 , - 645 , - 2758 , - 1007 , - 1664 , - 1593 , - 794 , - 2403 , - 148 , - 301 , - 2862 , - 1559 , - 2664 , - 3041 , - 2690 , - 1611 , - 2940 , - 405 , - 278 , - 2559 , - 976 , - 1801 , - 1898 , - 1267 , - 3044 , - 957 , - 1278 , - 871 , - 2872 , - 1009 , - 1554 , - 1371 , - 460 , - 1957 , - 2726 , - 2767 , - 2080 , - 665 , - 1658 , - 1923 , - 1460 , - 269 , - 1486 , - 1975 , - 1736 , - 769 , - 2210 , - 2923 , - 2908 , - 2165 , - 694 , - 1631 , - 1840 , - 1321 , - 74 , - 1235 , - 1668 , - 1373 , - 350 , - 1735 , - 2392 , - 2321 , - 1522 , - 3131 , - 876 , - 1029 , - 454 , - 2287 , - 256 , - 633 , - 282 , - 2339 , - 532 , - 1133 , - 1006 , - 151 , - 1704 , - 2529 , - 2626 , - 1995 , - 636 , - 1685 , - 2006 , - 1599 , - 464 , - 1737 , - 2282 , - 2099 , - 1188 , - 2685 , - 318 , - 359 , - 2808 , - 1393 , - 2386 , - 2651 , - 2188 , - 997 , - 2214 , - 2703 , - 2464 , - 1497 , - 2938 , - 515 , - 500 , - 2893 , - 1422 , - 2359 , - 2568 , - 2049 , - 802 , - 1963 , - 2396 , - 2101 , - 1078 , - 2463 , - 3120 , - 3049 , - 2250 , - 723 , - 1604 , - 1757 , - 1182 , - 3015 , - 984 , - 1361 , - 1010 , - 3067 , - 1260 , - 1861 , - 1734 , - 879 , - 2432 , - 121 , - 218 , - 2723 , - 1364 , - 2413 , - 2734 , - 2327 , - 1192 , - 2465 , - 3010 , - 2827 , - 1916 , - 277 , - 1046 , - 1087 , - 400 , - 2121 , - 3114 , - 243 , - 2916 , - 1725 , - 2942 , - 295 , - 56 , - 2225 , - 530 , - 1243 , - 1228 , - 485 , - 2150 , - 3087 , - 160 , - 2777 , - 1530 , - 2691 , - 3124 , - 2829 , - 1806 , - 55 , - 712 , - 641 , - 2978 , - 1451 , - 2332 , - 2485 , - 1910 , - 607 , - 1712 , - 2089 , - 1738 , - 659 , - 1988 , - 2589 , - 2462 , - 1607 , - 24 , - 849 , - 946 , - 315 , - 2092 , - 5 , - 326 , - 3055 , - 1920 , - 57 , - 602 , - 419 , - 2644 , - 1005 , - 1774 , - 1815 , - 1128 , - 2849 , - 706 , - 971 , - 508 , - 2453 , - 534 , - 1023 , - 784 , - 2953 , - 1258 , - 1971 , - 1956 , - 1213 , - 2878 , - 679 , - 888 , - 369 , - 2258 , - 283 , - 716 , - 421 , - 2534 , - 783 , - 1440 , - 1369 , - 570 , - 2179 , - 3060 , - 77 , - 2638 , - 1335 , - 2440 , - 2817 , - 2466 , - 1387 , - 2716 , - 181 , - 54 , - 2335 , - 752 , - 1577 , - 1674 , - 1043 , - 2820 , - 733 , - 1054 , - 647 , - 2648 , - 785 , - 1330 , - 1147 , - 236 , - 1733 , - 2502 , - 2543 , - 1856 , - 441 , - 1434 , - 1699 , - 1236 , - 45 , - 1262 , - 1751 , - 1512 , - 545 , - 1986 , - 2699 , - 2684 , - 1941 , - 470 , - 1407 , - 1616 , - 1097 , - 2986 , - 1011 , - 1444 , - 1149 , - 126 , - 1511 , - 2168 , - 2097 , - 1298 , - 2907 , - 652 , - 805 , - 230 , - 2063 , - 32 , - 409 , - 58 , - 2115 , - 308 , - 909 , - 782 , - 3063 , - 1480 , - 2305 , - 2402 , - 1771 , - 412 , - 1461 , - 1782 , - 1375 , - 240 , - 1513 , - 2058 , - 1875 , - 964 , - 2461 , - 94 , - 135 , - 2584 , - 1169 , - 2162 , - 2427 , - 1964 , - 773 , - 1990 , - 2479 , - 2240 , - 1273 , - 2714 , - 291 , - 276 , - 2669 , - 1198 , - 2135 , - 2344 , - 1825 , - 578 , - 1739 , - 2172 , - 1877 , - 854 , - 2239 , - 2896 , - 2825 , - 2026 , - 499 , - 1380 , - 1533 , - 958 , - 2791 , - 760 , - 1137 , - 786 , - 2843 , - 1036 , - 1637 , - 1510 , - 655 , - 2208 , - 3033 , - 3130 , - 2499 , - 1140 , - 2189 , - 2510 , - 2103 , - 968 , - 2241 , - 2786 , - 2603 , - 1692 , - 53 , - 822 , - 863 , - 176 , - 1897 , - 2890 , - 19 , - 2692 , - 1501 , - 2718 , - 71 , - 2968 , - 2001 , - 306 , - 1019 , - 1004 , - 261 , - 1926 , - 2863 , - 3072 , - 2553 , - 1306 , - 2467 , - 2900 , - 2605 , - 1582 , - 2967 , - 488 , - 417 , - 2754 , - 1227 , - 2108 , - 2261 , - 1686 , - 383 , - 1488 , - 1865 , - 1514 , - 435 , - 1764 , - 2365 , - 2238 , - 1383 , - 2936 , - 625 , - 722 , - 91 , - 1868 , - 2917 , - 102 , - 2831 , - 1696 , - 2969 , - 378 , - 195 , - 2420 , - 781 , - 1550 , - 1591 , - 904 , - 2625 , - 482 , - 747 , - 284 , - 2229 , - 310 , - 799 , - 560 , - 2729 , - 1034 , - 1747 , - 1732 , - 989 , - 2654 , - 455 , - 664 , - 145 , - 2034 , - 59 , - 492 , - 197 , - 2310 , - 559 , - 1216 , - 1145 , - 346 , - 1955 , - 2836 , - 2989 , - 2414 , - 1111 , - 2216 , - 2593 , - 2242 , - 1163 , - 2492 , - 3093 , - 2966 , - 2111 , - 528 , - 1353 , - 1450 , - 819 , - 2596 , - 509 , - 830 , - 423 , - 2424 , - 561 , - 1106 , - 923 , - 12 , - 1509 , - 2278 , - 2319 , - 1632 , - 217 , - 1210 , - 1475 , - 1012 , - 2957 , - 1038 , - 1527 , - 1288 , - 321 , - 1762 , - 2475 , - 2460 , - 1717 , - 246 , - 1183 , - 1392 , - 873 , - 2762 , - 787 , - 1220 , - 925 , - 3038 , - 1287 , - 1944 , - 1873 , - 1074 , - 2683 , - 428 , - 581 , - 6 , - 1839 , - 2944 , - 185 , - 2970 , - 1891 , - 84 , - 685 , - 558 , - 2839 , - 1256 , - 2081 , - 2178 , - 1547 , - 188 , - 1237 , - 1558 , - 1151 , - 16 , - 1289 , - 1834 , - 1651 , - 740 , - 2237 , - 3006 , - 3047 , - 2360 , - 945 , - 1938 , - 2203 , - 1740 , - 549 , - 1766 , - 2255 , - 2016 , - 1049 , - 2490 , - 67 , - 52 , - 2445 , - 974 , - 1911 , - 2120 , - 1601 , - 354 , - 1515 , - 1948 , - 1653 , - 630 , - 2015 , - 2672 , - 2601 , - 1802 , - 275 , - 1156 , - 1309 , - 734 , - 2567 , - 536 , - 913 , - 562 , - 2619 , - 812 , - 1413 , - 1286 , - 431 , - 1984 , - 2809 , - 2906 , - 2275 , - 916 , - 1965 , - 2286 , - 1879 , - 744 , - 2017 , - 2562 , - 2379 , - 1468 , - 2965 , - 598 , - 639 , - 3088 , - 1673 , - 2666 , - 2931 , - 2468 , - 1277 , - 2494 , - 2983 , - 2744 , - 1777 , - 82 , - 795 , - 780 , - 37 , - 1702 , - 2639 , - 2848 , - 2329 , - 1082 , - 2243 , - 2676 , - 2381 , - 1358 , - 2743 , - 264 , - 193 , - 2530 , - 1003 , - 1884 , - 2037 , - 1462 , - 159 , - 1264 , - 1641 , - 1290 , - 211 , - 1540 , - 2141 , - 2014 , - 1159 , - 2712 , - 401 , - 498 , - 3003 , - 1644 , - 2693 , - 3014 , - 2607 , - 1472 , - 2745 , - 154 , - 3107 , - 2196 , - 557 , - 1326 , - 1367 , - 680 , - 2401 , - 258 , - 523 , - 60 , - 2005 , - 86 , - 575 , - 336 , - 2505 , - 810 , - 1523 , - 1508 , - 765 , - 2430 , - 231 , - 440 , - 3057 , - 1810 , - 2971 , - 268 , - 3109 , - 2086 , - 335 , - 992 , - 921 , - 122 , - 1731 , - 2612 , - 2765 , - 2190 , - 887 , - 1992 , - 2369 , - 2018 , - 939 , - 2268 , - 2869 , - 2742 , - 1887 , - 304 , - 1129 , - 1226 , - 595 , - 2372 , - 285 , - 606 , - 199 , - 2200 , - 337 , - 882 , - 699 , - 2924 , - 1285 , - 2054 , - 2095 , - 1408 , - 3129 , - 986 , - 1251 , - 788 , - 2733 , - 814 , - 1303 , - 1064 , - 97 , - 1538 , - 2251 , - 2236 , - 1493 , - 22 , - 959 , - 1168 , - 649 , - 2538 , - 563 , - 996 , - 701 , - 2814 , - 1063 , - 1720 , - 1649 , - 850 , - 2459 , - 204 , - 357 , - 2918 , - 1615 , - 2720 , - 3097 , - 2746 , - 1667 , - 2996 , - 461 , - 334 , - 2615 , - 1032 , - 1857 , - 1954 , - 1323 , - 3100 , - 1013 , - 1334 , - 927 , - 2928 , - 1065 , - 1610 , - 1427 , - 516 , - 2013 , - 2782 , - 2823 , - 2136 , - 721 , - 1714 , - 1979 , - 1516 , - 325 , - 1542 , - 2031 , - 1792 , - 825 , - 2266 , - 2979 , - 2964 , - 2221 , - 750 , - 1687 , - 1896 , - 1377 , - 130 , - 1291 , - 1724 , - 1429 , - 406 , - 1791 , - 2448 , - 2377 , - 1578 , - 51 , - 932 , - 1085 , - 510 , - 2343 , - 312 , - 689 , - 338 , - 2395 , - 588 , - 1189 , - 1062 , - 207 , - 1760 , - 2585 , - 2682 , - 2051 , - 692 , - 1741 , - 2062 , - 1655 , - 520 , - 1793 , - 2338 , - 2155 , - 1244 , - 2741 , - 374 , - 415 , - 2864 , - 1449 , - 2442 , - 2707 , - 2244 , - 1053 , - 2270 , - 2759 , - 2520 , - 1553 , - 2994 , - 571 , - 556 , - 2949 , - 1478 , - 2415 , - 2624 , - 2105 , - 858 , - 2019 , - 2452 , - 2157 , - 1134 , - 2519 , - 40 , - 3105 , - 2306 , - 779 , - 1660 , - 1813 , - 1238 , - 3071 , - 1040 , - 1417 , - 1066 , - 3123 , - 1316 , - 1917 , - 1790 , - 935 , - 2488 , - 177 , - 274 , - 2779 , - 1420 , - 2469 , - 2790 , - 2383 , - 1248 , - 2521 , - 3066 , - 2883 , - 1972 , - 333 , - 1102 , - 1143 , - 456 , - 2177 , - 34 , - 299 , - 2972 , - 1781 , - 2998 , - 351 , - 112 , - 2281 , - 586 , - 1299 , - 1284 , - 541 , - 2206 , - 7 , - 216 , - 2833 , - 1586 , - 2747 , - 44 , - 2885 , - 1862 , - 111 , - 768 , - 697 , - 3034 , - 1507 , - 2388 , - 2541 , - 1966 , - 663 , - 1768 , - 2145 , - 1794 , - 715 , - 2044 , - 2645 , - 2518 , - 1663 , - 80 , - 905 , - 1002 , - 371 , - 2148 , - 61 , - 382 , - 3111 , - 1976 , - 113 , - 658 , - 475 , - 2700 , - 1061 , - 1830 , - 1871 , - 1184 , - 2905 , - 762 , - 1027 , - 564 , - 2509 , - 590 , - 1079 , - 840 , - 3009 , - 1314 , - 2027 , - 2012 , - 1269 , - 2934 , - 735 , - 944 , - 425 , - 2314 , - 339 , - 772 , - 477 , - 2590 , - 839 , - 1496 , - 1425 , - 626 , - 2235 , - 3116 , - 133 , - 2694 , - 1391 , - 2496 , - 2873 , - 2522 , - 1443 , - 2772 , - 237 , - 110 , - 2391 , - 808 , - 1633 , - 1730 , - 1099 , - 2876 , - 789 , - 1110 , - 703 , - 2704 , - 841 , - 1386 , - 1203 , - 292 , - 1789 , - 2558 , - 2599 , - 1912 , - 497 , - 1490 , - 1755 , - 1292 , - 101 , - 1318 , - 1807 , - 1568 , - 601 , - 2042 , - 2755 , - 2740 , - 1997 , - 526 , - 1463 , - 1672 , - 1153 , - 3042 , - 1067 , - 1500 , - 1205 , - 182 , - 1567 , - 2224 , - 2153 , - 1354 , - 2963 , - 708 , - 861 , - 286 , - 2119 , - 88 , - 465 , - 114 , - 2171 , - 364 , - 965 , - 838 , - 3119 , - 1536 , - 2361 , - 2458 , - 1827 , - 468 , - 1517 , - 1838 , - 1431 , - 296 , - 1569 , - 2114 , - 1931 , - 1020 , - 2517 , - 150 , - 191 , - 2640 , - 1225 , - 2218 , - 2483 , - 2020 , - 829 , - 2046 , - 2535 , - 2296 , - 1329 , - 2770 , - 347 , - 332 , - 2725 , - 1254 , - 2191 , - 2400 , - 1881 , - 634 , - 1795 , - 2228 , - 1933 , - 910 , - 2295 , - 2952 , - 2881 , - 2082 , - 555 , - 1436 , - 1589 , - 1014 , - 2847 , - 816 , - 1193 , - 842 , - 2899 , - 1092 , - 1693 , - 1566 , - 711 , - 2264 , - 3089 , - 50 , - 2555 , - 1196 , - 2245 , - 2566 , - 2159 , - 1024 , - 2297 , - 2842 , - 2659 , - 1748 , - 109 , - 878 , - 919 , - 232 , - 1953 , - 2946 , - 75 , - 2748 , - 1557 , - 2774 , - 127 , - 3024 , - 2057 , - 362 , - 1075 , - 1060 , - 317 , - 1982 , - 2919 , - 3128 , - 2609 , - 1362 , - 2523 , - 2956 , - 2661 , - 1638 , - 3023 , - 544 , - 473 , - 2810 , - 1283 , - 2164 , - 2317 , - 1742 , - 439 , - 1544 , - 1921 , - 1570 , - 491 , - 1820 , - 2421 , - 2294 , - 1439 , - 2992 , - 681 , - 778 , - 147 , - 1924 , - 2973 , - 158 , - 2887 , - 1752 , - 3025 , - 434 , - 251 , - 2476 , - 837 , - 1606 , - 1647 , - 960 , - 2681 , - 538 , - 803 , - 340 , - 2285 , - 366 , - 855 , - 616 , - 2785 , - 1090 , - 1803 , - 1788 , - 1045 , - 2710 , - 511 , - 720 , - 201 , - 2090 , - 115 , - 548 , - 253 , - 2366 , - 615 , - 1272 , - 1201 , - 402 , - 2011 , - 2892 , - 3045 , - 2470 , - 1167 , - 2272 , - 2649 , - 2298 , - 1219 , - 2548 , - 13 , - 3022 , - 2167 , - 584 , - 1409 , - 1506 , - 875 , - 2652 , - 565 , - 886 , - 479 , - 2480 , - 617 , - 1162 , - 979 , - 68 , - 1565 , - 2334 , - 2375 , - 1688 , - 273 , - 1266 , - 1531 , - 1068 , - 3013 , - 1094 , - 1583 , - 1344 , - 377 , - 1818 , - 2531 , - 2516 , - 1773 , - 302 , - 1239 , - 1448 , - 929 , - 2818 , - 843 , - 1276 , - 981 , - 3094 , - 1343 , - 2000 , - 1929 , - 1130 , - 2739 , - 484 , - 637 , - 62 , - 1895 , - 3000 , - 241 , - 3026 , - 1947 , - 140 , - 741 , - 614 , - 2895 , - 1312 , - 2137 , - 2234 , - 1603 , - 244 , - 1293 , - 1614 , - 1207 , - 72 , - 1345 , - 1890 , - 1707 , - 796 , - 2293 , - 3062 , - 3103 , - 2416 , - 1001 , - 1994 , - 2259 , - 1796 , - 605 , - 1822 , - 2311 , - 2072 , - 1105 , - 2546 , - 123 , - 108 , - 2501 , - 1030 , - 1967 , - 2176 , - 1657 , - 410 , - 1571 , - 2004 , - 1709 , - 686 , - 2071 , - 2728 , - 2657 , - 1858 , - 331 , - 1212 , - 1365 , - 790 , - 2623 , - 592 , - 969 , - 618 , - 2675 , - 868 , - 1469 , - 1342 , - 487 , - 2040 , - 2865 , - 2962 , - 2331 , - 972 , - 2021 , - 2342 , - 1935 , - 800 , - 2073 , - 2618 , - 2435 , - 1524 , - 3021 , - 654 , - 695 , - 8 , - 1729 , - 2722 , - 2987 , - 2524 , - 1333 , - 2550 , - 3039 , - 2800 , - 1833 , - 138 , - 851 , - 836 , - 93 , - 1758 , - 2695 , - 2904 , - 2385 , - 1138 , - 2299 , - 2732 , - 2437 , - 1414 , - 2799 , - 320 , - 249 , - 2586 , - 1059 , - 1940 , - 2093 , - 1518 , - 215 , - 1320 , - 1697 , - 1346 , - 267 , - 1596 , - 2197 , - 2070 , - 1215 , - 2768 , - 457 , - 554 , - 3059 , - 1700 , - 2749 , - 3070 , - 2663 , - 1528 , - 2801 , - 210 , - 27 , - 2252 , - 613 , - 1382 , - 1423 , - 736 , - 2457 , - 314 , - 579 , - 116 , - 2061 , - 142 , - 631 , - 392 , - 2561 , - 866 , - 1579 , - 1564 , - 821 , - 2486 , - 287 , - 496 , - 3113 , - 1866 , - 3027 , - 324 , - 29 , - 2142 , - 391 , - 1048 , - 977 , - 178 , - 1787 , - 2668 , - 2821 , - 2246 , - 943 , - 2048 , - 2425 , - 2074 , - 995 , - 2324 , - 2925 , - 2798 , - 1943 , - 360 , - 1185 , - 1282 , - 651 , - 2428 , - 341 , - 662 , - 255 , - 2256 , - 393 , - 938 , - 755 , - 2980 , - 1341 , - 2110 , - 2151 , - 1464 , - 49 , - 1042 , - 1307 , - 844 , - 2789 , - 870 , - 1359 , - 1120 , - 153 , - 1594 , - 2307 , - 2292 , - 1549 , - 78 , - 1015 , - 1224 , - 705 , - 2594 , - 619 , - 1052 , - 757 , - 2870 , - 1119 , - 1776 , - 1705 , - 906 , - 2515 , - 260 , - 413 , - 2974 , - 1671 , - 2776 , - 17 , - 2802 , - 1723 , - 3052 , - 517 , - 390 , - 2671 , - 1088 , - 1913 , - 2010 , - 1379 , - 20 , - 1069 , - 1390 , - 983 , - 2984 , - 1121 , - 1666 , - 1483 , - 572 , - 2069 , - 2838 , - 2879 , - 2192 , - 777 , - 1770 , - 2035 , - 1572 , - 381 , - 1598 , - 2087 , - 1848 , - 881 , - 2322 , - 3035 , - 3020 , - 2277 , - 806 , - 1743 , - 1952 , - 1433 , - 186 , - 1347 , - 1780 , - 1485 , - 462 , - 1847 , - 2504 , - 2433 , - 1634 , - 107 , - 988 , - 1141 , - 566 , - 2399 , - 368 , - 745 , - 394 , - 2451 , - 644 , - 1245 , - 1118 , - 263 , - 1816 , - 2641 , - 2738 , - 2107 , - 748 , - 1797 , - 2118 , - 1711 , - 576 , - 1849 , - 2394 , - 2211 , - 1300 , - 2797 , - 430 , - 471 , - 2920 , - 1505 , - 2498 , - 2763 , - 2300 , - 1109 , - 2326 , - 2815 , - 2576 , - 1609 , - 3050 , - 627 , - 612 , - 3005 , - 1534 , - 2471 , - 2680 , - 2161 , - 914 , - 2075 , - 2508 , - 2213 , - 1190 , - 2575 , - 96 , - 25 , - 2362 , - 835 , - 1716 , - 1869 , - 1294 , - 3127 , - 1096 , - 1473 , - 1122 , - 43 , - 1372 , - 1973 , - 1846 , - 991 , - 2544 , - 233 , - 330 , - 2835 , - 1476 , - 2525 , - 2846 , - 2439 , - 1304 , - 2577 , - 3122 , - 2939 , - 2028 , - 389 , - 1158 , - 1199 , - 512 , - 2233 , - 90 , - 355 , - 3028 , - 1837 , - 3054 , - 407 , - 168 , - 2337 , - 642 , - 1355 , - 1340 , - 597 , - 2262 , - 63 , - 272 , - 2889 , - 1642 , - 2803 , - 100 , - 2941 , - 1918 , - 167 , - 824 , - 753 , - 3090 , - 1563 , - 2444 , - 2597 , - 2022 , - 719 , - 1824 , - 2201 , - 1850 , - 771 , - 2100 , - 2701 , - 2574 , - 1719 , - 136 , - 961 , - 1058 , - 427 , - 2204 , - 117 , - 438 , - 31 , - 2032 , - 169 , - 714 , - 531 , - 2756 , - 1117 , - 1886 , - 1927 , - 1240 , - 2961 , - 818 , - 1083 , - 620 , - 2565 , - 646 , - 1135 , - 896 , - 3065 , - 1370 , - 2083 , - 2068 , - 1325 , - 2990 , - 791 , - 1000 , - 481 , - 2370 , - 395 , - 828 , - 533 , - 2646 , - 895 , - 1552 , - 1481 , - 682 , - 2291 , - 36 , - 189 , - 2750 , - 1447 , - 2552 , - 2929 , - 2578 , - 1499 , - 2828 , - 293 , - 166 , - 2447 , - 864 , - 1689 , - 1786 , - 1155 , - 2932 , - 845 , - 1166 , - 759 , - 2760 , - 897 , - 1442 , - 1259 , - 348 , - 1845 , - 2614 , - 2655 , - 1968 , - 553 , - 1546 , - 1811 , - 1348 , - 157 , - 1374 , - 1863 , - 1624 , - 657 , - 2098 , - 2811 , - 2796 , - 2053 , - 582 , - 1519 , - 1728 , - 1209 , - 3098 , - 1123 , - 1556 , - 1261 , - 238 , - 1623 , - 2280 , - 2209 , - 1410 , - 3019 , - 764 , - 917 , - 342 , - 2175 , - 144 , - 521 , - 170 , - 2227 , - 420 , - 1021 , - 894 , - 39 , - 1592 , - 2417 , - 2514 , - 1883 , - 524 , - 1573 , - 1894 , - 1487 , - 352 , - 1625 , - 2170 , - 1987 , - 1076 , - 2573 , - 206 , - 247 , - 2696 , - 1281 , - 2274 , - 2539 , - 2076 , - 885 , - 2102 , - 2591 , - 2352 , - 1385 , - 2826 , - 403 , - 388 , - 2781 , - 1310 , - 2247 , - 2456 , - 1937 , - 690 , - 1851 , - 2284 , - 1989 , - 966 , - 2351 , - 3008 , - 2937 , - 2138 , - 611 , - 1492 , - 1645 , - 1070 , - 2903 , - 872 , - 1249 , - 898 , - 2955 , - 1148 , - 1749 , - 1622 , - 767 , - 2320 , - 9 , - 106 , - 2611 , - 1252 , - 2301 , - 2622 , - 2215 , - 1080 , - 2353 , - 2898 , - 2715 , - 1804 , - 165 , - 934 , - 975 , - 288 , - 2009 , - 3002 , - 131 , - 2804 , - 1613 , - 2830 , - 183 , - 3080 , - 2113 , - 418 , - 1131 , - 1116 , - 373 , - 2038 , - 2975 , - 48 , - 2665 , - 1418 , - 2579 , - 3012 , - 2717 , - 1694 , - 3079 , - 600 , - 529 , - 2866 , - 1339 , - 2220 , - 2373 , - 1798 , - 495 , - 1600 , - 1977 , - 1626 , - 547 , - 1876 , - 2477 , - 2350 , - 1495 , - 3048 , - 737 , - 834 , - 203 , - 1980 , - 3029 , - 214 , - 2943 , - 1808 , - 3081 , - 490 , - 307 , - 2532 , - 893 , - 1662 , - 1703 , - 1016 , - 2737 , - 594 , - 859 , - 396 , - 2341 , - 422 , - 911 , - 672 , - 2841 , - 1146 , - 1859 , - 1844 , - 1101 , - 2766 , - 567 , - 776 , - 257 , - 2146 , - 171 , - 604 , - 309 , - 2422 , - 671 , - 1328 , - 1257 , - 458 , - 2067 , - 2948 , - 3101 , - 2526 , - 1223 , - 2328 , - 2705 , - 2354 , - 1275 , - 2604 , - 69 , - 3078 , - 2223 , - 640 , - 1465 , - 1562 , - 931 , - 2708 , - 621 , - 942 , - 535 , - 2536 , - 673 , - 1218 , - 1035 , - 124 , - 1621 , - 2390 , - 2431 , - 1744 , - 329 , - 1322 , - 1587 , - 1124 , - 3069 , - 1150 , - 1639 , - 1400 , - 433 , - 1874 , - 2587 , - 2572 , - 1829 , - 358 , - 1295 , - 1504 , - 985 , - 2874 , - 899 , - 1332 , - 1037 , - 14 , - 1399 , - 2056 , - 1985 , - 1186 , - 2795 , - 540 , - 693 , - 118 , - 1951 , - 3056 , - 297 , - 3082 , - 2003 , - 196 , - 797 , - 670 , - 2951 , - 1368 , - 2193 , - 2290 , - 1659 , - 300 , - 1349 , - 1670 , - 1263 , - 128 , - 1401 , - 1946 , - 1763 , - 852 , - 2349 , - 3118 , - 23 , - 2472 , - 1057 , - 2050 , - 2315 , - 1852 , - 661 , - 1878 , - 2367 , - 2128 , - 1161 , - 2602 , - 179 , - 164 , - 2557 , - 1086 , - 2023 , - 2232 , - 1713 , - 466 , - 1627 , - 2060 , - 1765 , - 742 , - 2127 , - 2784 , - 2713 , - 1914 , - 387 , - 1268 , - 1421 , - 846 , - 2679 , - 648 , - 1025 , - 674 , - 2731 , - 924 , - 1525 , - 1398 , - 543 , - 2096 , - 2921 , - 3018 , - 2387 , - 1028 , - 2077 , - 2398 , - 1991 , - 856 , - 2129 , - 2674 , - 2491 , - 1580 , - 3077 , - 710 , - 751 , - 64 , - 1785 , - 2778 , - 3043 , - 2580 , - 1389 , - 2606 , - 3095 , - 2856 , - 1889 , - 194 , - 907 , - 892 , - 149 , - 1814 , - 2751 , - 2960 , - 2441 , - 1194 , - 2355 , - 2788 , - 2493 , - 1470 , - 2855 , - 376 , - 305 , - 2642 , - 1115 , - 1996 , - 2149 , - 1574 , - 271 , - 1376 , - 1753 , - 1402 , - 323 , - 1652 , - 2253 , - 2126 , - 1271 , - 2824 , - 513 , - 610 , - 3115 , - 1756 , - 2805 , - 3126 , - 2719 , - 1584 , - 2857 , - 266 , - 83 , - 2308 , - 669 , - 1438 , - 1479 , - 792 , - 2513 , - 370 , - 635 , - 172 , - 2117 , - 198 , - 687 , - 448 , - 2617 , - 922 , - 1635 , - 1620 , - 877 , - 2542 , - 343 , - 552 , - 33 , - 1922 , - 3083 , - 380 , - 85 , - 2198 , - 447 , - 1104 , - 1033 , - 234 , - 1843 , - 2724 , - 2877 , - 2302 , - 999 , - 2104 , - 2481 , - 2130 , - 1051 , - 2380 , - 2981 , - 2854 , - 1999 , - 416 , - 1241 , - 1338 , - 707 , - 2484 , - 397 , - 718 , - 311 , - 2312 , - 449 , - 994 , - 811 , - 3036 , - 1397 , - 2166 , - 2207 , - 1520 , - 105 , - 1098 , - 1363 , - 900 , - 2845 , - 926 , - 1415 , - 1176 , - 209 , - 1650 , - 2363 , - 2348 , - 1605 , - 134 , - 1071 , - 1280 , - 761 , - 2650 , - 675 , - 1108 , - 813 , - 2926 , - 1175 , - 1832 , - 1761 , - 962 , - 2571 , - 316 , - 469 , - 3030 , - 1727 , - 2832 , - 73 , - 2858 , - 1779 , - 3108 , - 573 , - 446 , - 2727 , - 1144 , - 1969 , - 2066 , - 1435 , - 76 , - 1125 , - 1446 , - 1039 , - 3040 , - 1177 , - 1722 , - 1539 , - 628 , - 2125 , - 2894 , - 2935 , - 2248 , - 833 , - 1826 , - 2091 , - 1628 , - 437 , - 1654 , - 2143 , - 1904 , - 937 , - 2378 , - 3091 , - 3076 , - 2333 , - 862 , - 1799 , - 2008 , - 1489 , - 242 , - 1403 , - 1836 , - 1541 , - 518 , - 1903 , - 2560 , - 2489 , - 1690 , - 163 , - 1044 , - 1197 , - 622 , - 2455 , - 424 , - 801 , - 450 , - 2507 , - 700 , - 1301 , - 1174 , - 319 , - 1872 , - 2697 , - 2794 , - 2163 , - 804 , - 1853 , - 2174 , - 1767 , - 632 , - 1905 , - 2450 , - 2267 , - 1356 , - 2853 , - 486 , - 527 , - 2976 , - 1561 , - 2554 , - 2819 , - 2356 , - 1165 , - 2382 , - 2871 , - 2632 , - 1665 , - 3106 , - 683 , - 668 , - 3061 , - 1590 , - 2527 , - 2736 , - 2217 , - 970 , - 2131 , - 2564 , - 2269 , - 1246 , - 2631 , - 152 , - 81 , - 2418 , - 891 , - 1772 , - 1925 , - 1350 , - 47 , - 1152 , - 1529 , - 1178 , - 99 , - 1428 , - 2029 , - 1902 , - 1047 , - 2600 , - 289 , - 386 , - 2891 , - 1532 , - 2581 , - 2902 , - 2495 , - 1360 , - 2633 , - 42 , - 2995 , - 2084 , - 445 , - 1214 , - 1255 , - 568 , - 2289 , - 146 , - 411 , - 3084 , - 1893 , - 3110 , - 463 , - 224 , - 2393 , - 698 , - 1411 , - 1396 , - 653 , - 2318 , - 119 , - 328 , - 2945 , - 1698 , - 2859 , - 156 , - 2997 , - 1974 , - 223 , - 880 , - 809 , - 10 , - 1619 , - 2500 , - 2653 , - 2078 , - 775 , - 1880 , - 2257 , - 1906 , - 827 , - 2156 , - 2757 , - 2630 , - 1775 , - 192 , - 1017 , - 1114 , - 483 , - 2260 , - 173 , - 494 , - 87 , - 2088 , - 225 , - 770 , - 587 , - 2812 , - 1173 , - 1942 , - 1983 , - 1296 , - 3017 , - 874 , - 1139 , - 676 , - 2621 , - 702 , - 1191 , - 952 , - 3121 , - 1426 , - 2139 , - 2124 , - 1381 , - 3046 , - 847 , - 1056 , - 537 , - 2426 , - 451 , - 884 , - 589 , - 2702 , - 951 , - 1608 , - 1537 , - 738 , - 2347 , - 92 , - 245 , - 2806 , - 1503 , - 2608 , - 2985 , - 2634 , - 1555 , - 2884 , - 349 , - 222 , - 2503 , - 920 , - 1745 , - 1842 , - 1211 , - 2988 , - 901 , - 1222 , - 815 , - 2816 , - 953 , - 1498 , - 1315 , - 404 , - 1901 , - 2670 , - 2711 , - 2024 , - 609 , - 1602 , - 1867 , - 1404 , - 213 , - 1430 , - 1919 , - 1680 , - 713 , - 2154 , - 2867 , - 2852 , - 2109 , - 638 , - 1575 , - 1784 , - 1265 , - 18 , - 1179 , - 1612 , - 1317 , - 294 , - 1679 , - 2336 , - 2265 , - 1466 , - 3075 , - 820 , - 973 , - 398 , - 2231 , - 200 , - 577 , - 226 , - 2283 , - 476 , - 1077 , - 950 , - 95 , - 1648 , - 2473 , - 2570 , - 1939 , - 580 , - 1629 , - 1950 , - 1543 , - 408 , - 1681 , - 2226 , - 2043 , - 1132 , - 2629 , - 262 , - 303 , - 2752 , - 1337 , - 2330 , - 2595 , - 2132 , - 941 , - 2158 , - 2647 , - 2408 , - 1441 , - 2882 , - 459 , - 444 , - 2837 , - 1366 , - 2303 , - 2512 , - 1993 , - 746 , - 1907 , - 2340 , - 2045 , - 1022 , - 2407 , - 3064 , - 2993 , - 2194 , - 667 , - 1548 , - 1701 , - 1126 , - 2959 , - 928 , - 1305 , - 954 , - 3011 , - 1204 , - 1805 , - 1678 , - 823 , - 2376 , - 65 , - 162 , - 2667 , - 1308 , - 2357 , - 2678 , - 2271 , - 1136 , - 2409 , - 2954 , - 2771 , - 1860 , - 221 , - 990 , - 1031 , - 344 , - 2065 , - 3058 , - 187 , - 2860 , - 1669 , - 2886 , - 239 , - 0 , - 1151 , - 222 , - 413 , - 1724 , - 955 , - 1306 , - 2777 , - 2168 , - 2679 , - 1110 , - 661 , - 1332 , - 3123 , - 2834 , - 465 , - 2416 , - 2287 , - 78 , - 2189 , - 2220 , - 171 , - 2442 , - 2633 , - 744 , - 3175 , - 326 , - 1797 , - 1188 , - 1699 , - 130 , - 2881 , - 352 , - 2143 , - 1854 , - 2685 , - 1436 , - 1307 , - 2298 , - 1209 , - 1240 , - 2391 , - 1462 , - 1653 , - 2964 , - 2195 , - 2546 , - 817 , - 208 , - 719 , - 2350 , - 1901 , - 2572 , - 1163 , - 874 , - 1705 , - 456 , - 327 , - 1318 , - 229 , - 260 , - 1411 , - 482 , - 673 , - 1984 , - 1215 , - 1566 , - 3037 , - 2428 , - 2939 , - 1370 , - 921 , - 1592 , - 183 , - 3094 , - 725 , - 2676 , - 2547 , - 338 , - 2449 , - 2480 , - 431 , - 2702 , - 2893 , - 1004 , - 235 , - 586 , - 2057 , - 1448 , - 1959 , - 390 , - 3141 , - 612 , - 2403 , - 2114 , - 2945 , - 1696 , - 1567 , - 2558 , - 1469 , - 1500 , - 2651 , - 1722 , - 1913 , - 24 , - 2455 , - 2806 , - 1077 , - 468 , - 979 , - 2610 , - 2161 , - 2832 , - 1423 , - 1134 , - 1965 , - 716 , - 587 , - 1578 , - 489 , - 520 , - 1671 , - 742 , - 933 , - 2244 , - 1475 , - 1826 , - 97 , - 2688 , - 3199 , - 1630 , - 1181 , - 1852 , - 443 , - 154 , - 985 , - 2936 , - 2807 , - 598 , - 2709 , - 2740 , - 691 , - 2962 , - 3153 , - 1264 , - 495 , - 846 , - 2317 , - 1708 , - 2219 , - 650 , - 201 , - 872 , - 2663 , - 2374 , - 5 , - 1956 , - 1827 , - 2818 , - 1729 , - 1760 , - 2911 , - 1982 , - 2173 , - 284 , - 2715 , - 3066 , - 1337 , - 728 , - 1239 , - 2870 , - 2421 , - 3092 , - 1683 , - 1394 , - 2225 , - 976 , - 847 , - 1838 , - 749 , - 780 , - 1931 , - 1002 , - 1193 , - 2504 , - 1735 , - 2086 , - 357 , - 2948 , - 259 , - 1890 , - 1441 , - 2112 , - 703 , - 414 , - 1245 , - 3196 , - 3067 , - 858 , - 2969 , - 3000 , - 951 , - 22 , - 213 , - 1524 , - 755 , - 1106 , - 2577 , - 1968 , - 2479 , - 910 , - 461 , - 1132 , - 2923 , - 2634 , - 265 , - 2216 , - 2087 , - 3078 , - 1989 , - 2020 , - 3171 , - 2242 , - 2433 , - 544 , - 2975 , - 126 , - 1597 , - 988 , - 1499 , - 3130 , - 2681 , - 152 , - 1943 , - 1654 , - 2485 , - 1236 , - 1107 , - 2098 , - 1009 , - 1040 , - 2191 , - 1262 , - 1453 , - 2764 , - 1995 , - 2346 , - 617 , - 8 , - 519 , - 2150 , - 1701 , - 2372 , - 963 , - 674 , - 1505 , - 256 , - 127 , - 1118 , - 29 , - 60 , - 1211 , - 282 , - 473 , - 1784 , - 1015 , - 1366 , - 2837 , - 2228 , - 2739 , - 1170 , - 721 , - 1392 , - 3183 , - 2894 , - 525 , - 2476 , - 2347 , - 138 , - 2249 , - 2280 , - 231 , - 2502 , - 2693 , - 804 , - 35 , - 386 , - 1857 , - 1248 , - 1759 , - 190 , - 2941 , - 412 , - 2203 , - 1914 , - 2745 , - 1496 , - 1367 , - 2358 , - 1269 , - 1300 , - 2451 , - 1522 , - 1713 , - 3024 , - 2255 , - 2606 , - 877 , - 268 , - 779 , - 2410 , - 1961 , - 2632 , - 1223 , - 934 , - 1765 , - 516 , - 387 , - 1378 , - 289 , - 320 , - 1471 , - 542 , - 733 , - 2044 , - 1275 , - 1626 , - 3097 , - 2488 , - 2999 , - 1430 , - 981 , - 1652 , - 243 , - 3154 , - 785 , - 2736 , - 2607 , - 398 , - 2509 , - 2540 , - 491 , - 2762 , - 2953 , - 1064 , - 295 , - 646 , - 2117 , - 1508 , - 2019 , - 450 , - 1 , - 672 , - 2463 , - 2174 , - 3005 , - 1756 , - 1627 , - 2618 , - 1529 , - 1560 , - 2711 , - 1782 , - 1973 , - 84 , - 2515 , - 2866 , - 1137 , - 528 , - 1039 , - 2670 , - 2221 , - 2892 , - 1483 , - 1194 , - 2025 , - 776 , - 647 , - 1638 , - 549 , - 580 , - 1731 , - 802 , - 993 , - 2304 , - 1535 , - 1886 , - 157 , - 2748 , - 59 , - 1690 , - 1241 , - 1912 , - 503 , - 214 , - 1045 , - 2996 , - 2867 , - 658 , - 2769 , - 2800 , - 751 , - 3022 , - 13 , - 1324 , - 555 , - 906 , - 2377 , - 1768 , - 2279 , - 710 , - 261 , - 932 , - 2723 , - 2434 , - 65 , - 2016 , - 1887 , - 2878 , - 1789 , - 1820 , - 2971 , - 2042 , - 2233 , - 344 , - 2775 , - 3126 , - 1397 , - 788 , - 1299 , - 2930 , - 2481 , - 3152 , - 1743 , - 1454 , - 2285 , - 1036 , - 907 , - 1898 , - 809 , - 840 , - 1991 , - 1062 , - 1253 , - 2564 , - 1795 , - 2146 , - 417 , - 3008 , - 319 , - 1950 , - 1501 , - 2172 , - 763 , - 474 , - 1305 , - 56 , - 3127 , - 918 , - 3029 , - 3060 , - 1011 , - 82 , - 273 , - 1584 , - 815 , - 1166 , - 2637 , - 2028 , - 2539 , - 970 , - 521 , - 1192 , - 2983 , - 2694 , - 325 , - 2276 , - 2147 , - 3138 , - 2049 , - 2080 , - 31 , - 2302 , - 2493 , - 604 , - 3035 , - 186 , - 1657 , - 1048 , - 1559 , - 3190 , - 2741 , - 212 , - 2003 , - 1714 , - 2545 , - 1296 , - 1167 , - 2158 , - 1069 , - 1100 , - 2251 , - 1322 , - 1513 , - 2824 , - 2055 , - 2406 , - 677 , - 68 , - 579 , - 2210 , - 1761 , - 2432 , - 1023 , - 734 , - 1565 , - 316 , - 187 , - 1178 , - 89 , - 120 , - 1271 , - 342 , - 533 , - 1844 , - 1075 , - 1426 , - 2897 , - 2288 , - 2799 , - 1230 , - 781 , - 1452 , - 43 , - 2954 , - 585 , - 2536 , - 2407 , - 198 , - 2309 , - 2340 , - 291 , - 2562 , - 2753 , - 864 , - 95 , - 446 , - 1917 , - 1308 , - 1819 , - 250 , - 3001 , - 472 , - 2263 , - 1974 , - 2805 , - 1556 , - 1427 , - 2418 , - 1329 , - 1360 , - 2511 , - 1582 , - 1773 , - 3084 , - 2315 , - 2666 , - 937 , - 328 , - 839 , - 2470 , - 2021 , - 2692 , - 1283 , - 994 , - 1825 , - 576 , - 447 , - 1438 , - 349 , - 380 , - 1531 , - 602 , - 793 , - 2104 , - 1335 , - 1686 , - 3157 , - 2548 , - 3059 , - 1490 , - 1041 , - 1712 , - 303 , - 14 , - 845 , - 2796 , - 2667 , - 458 , - 2569 , - 2600 , - 551 , - 2822 , - 3013 , - 1124 , - 355 , - 706 , - 2177 , - 1568 , - 2079 , - 510 , - 61 , - 732 , - 2523 , - 2234 , - 3065 , - 1816 , - 1687 , - 2678 , - 1589 , - 1620 , - 2771 , - 1842 , - 2033 , - 144 , - 2575 , - 2926 , - 1197 , - 588 , - 1099 , - 2730 , - 2281 , - 2952 , - 1543 , - 1254 , - 2085 , - 836 , - 707 , - 1698 , - 609 , - 640 , - 1791 , - 862 , - 1053 , - 2364 , - 1595 , - 1946 , - 217 , - 2808 , - 119 , - 1750 , - 1301 , - 1972 , - 563 , - 274 , - 1105 , - 3056 , - 2927 , - 718 , - 2829 , - 2860 , - 811 , - 3082 , - 73 , - 1384 , - 615 , - 966 , - 2437 , - 1828 , - 2339 , - 770 , - 321 , - 992 , - 2783 , - 2494 , - 125 , - 2076 , - 1947 , - 2938 , - 1849 , - 1880 , - 3031 , - 2102 , - 2293 , - 404 , - 2835 , - 3186 , - 1457 , - 848 , - 1359 , - 2990 , - 2541 , - 12 , - 1803 , - 1514 , - 2345 , - 1096 , - 967 , - 1958 , - 869 , - 900 , - 2051 , - 1122 , - 1313 , - 2624 , - 1855 , - 2206 , - 477 , - 3068 , - 379 , - 2010 , - 1561 , - 2232 , - 823 , - 534 , - 1365 , - 116 , - 3187 , - 978 , - 3089 , - 3120 , - 1071 , - 142 , - 333 , - 1644 , - 875 , - 1226 , - 2697 , - 2088 , - 2599 , - 1030 , - 581 , - 1252 , - 3043 , - 2754 , - 385 , - 2336 , - 2207 , - 3198 , - 2109 , - 2140 , - 91 , - 2362 , - 2553 , - 664 , - 3095 , - 246 , - 1717 , - 1108 , - 1619 , - 50 , - 2801 , - 272 , - 2063 , - 1774 , - 2605 , - 1356 , - 1227 , - 2218 , - 1129 , - 1160 , - 2311 , - 1382 , - 1573 , - 2884 , - 2115 , - 2466 , - 737 , - 128 , - 639 , - 2270 , - 1821 , - 2492 , - 1083 , - 794 , - 1625 , - 376 , - 247 , - 1238 , - 149 , - 180 , - 1331 , - 402 , - 593 , - 1904 , - 1135 , - 1486 , - 2957 , - 2348 , - 2859 , - 1290 , - 841 , - 1512 , - 103 , - 3014 , - 645 , - 2596 , - 2467 , - 258 , - 2369 , - 2400 , - 351 , - 2622 , - 2813 , - 924 , - 155 , - 506 , - 1977 , - 1368 , - 1879 , - 310 , - 3061 , - 532 , - 2323 , - 2034 , - 2865 , - 1616 , - 1487 , - 2478 , - 1389 , - 1420 , - 2571 , - 1642 , - 1833 , - 3144 , - 2375 , - 2726 , - 997 , - 388 , - 899 , - 2530 , - 2081 , - 2752 , - 1343 , - 1054 , - 1885 , - 636 , - 507 , - 1498 , - 409 , - 440 , - 1591 , - 662 , - 853 , - 2164 , - 1395 , - 1746 , - 17 , - 2608 , - 3119 , - 1550 , - 1101 , - 1772 , - 363 , - 74 , - 905 , - 2856 , - 2727 , - 518 , - 2629 , - 2660 , - 611 , - 2882 , - 3073 , - 1184 , - 415 , - 766 , - 2237 , - 1628 , - 2139 , - 570 , - 121 , - 792 , - 2583 , - 2294 , - 3125 , - 1876 , - 1747 , - 2738 , - 1649 , - 1680 , - 2831 , - 1902 , - 2093 , - 204 , - 2635 , - 2986 , - 1257 , - 648 , - 1159 , - 2790 , - 2341 , - 3012 , - 1603 , - 1314 , - 2145 , - 896 , - 767 , - 1758 , - 669 , - 700 , - 1851 , - 922 , - 1113 , - 2424 , - 1655 , - 2006 , - 277 , - 2868 , - 179 , - 1810 , - 1361 , - 2032 , - 623 , - 334 , - 1165 , - 3116 , - 2987 , - 778 , - 2889 , - 2920 , - 871 , - 3142 , - 133 , - 1444 , - 675 , - 1026 , - 2497 , - 1888 , - 2399 , - 830 , - 381 , - 1052 , - 2843 , - 2554 , - 185 , - 2136 , - 2007 , - 2998 , - 1909 , - 1940 , - 3091 , - 2162 , - 2353 , - 464 , - 2895 , - 46 , - 1517 , - 908 , - 1419 , - 3050 , - 2601 , - 72 , - 1863 , - 1574 , - 2405 , - 1156 , - 1027 , - 2018 , - 929 , - 960 , - 2111 , - 1182 , - 1373 , - 2684 , - 1915 , - 2266 , - 537 , - 3128 , - 439 , - 2070 , - 1621 , - 2292 , - 883 , - 594 , - 1425 , - 176 , - 47 , - 1038 , - 3149 , - 3180 , - 1131 , - 202 , - 393 , - 1704 , - 935 , - 1286 , - 2757 , - 2148 , - 2659 , - 1090 , - 641 , - 1312 , - 3103 , - 2814 , - 445 , - 2396 , - 2267 , - 58 , - 2169 , - 2200 , - 151 , - 2422 , - 2613 , - 724 , - 3155 , - 306 , - 1777 , - 1168 , - 1679 , - 110 , - 2861 , - 332 , - 2123 , - 1834 , - 2665 , - 1416 , - 1287 , - 2278 , - 1189 , - 1220 , - 2371 , - 1442 , - 1633 , - 2944 , - 2175 , - 2526 , - 797 , - 188 , - 699 , - 2330 , - 1881 , - 2552 , - 1143 , - 854 , - 1685 , - 436 , - 307 , - 1298 , - 209 , - 240 , - 1391 , - 462 , - 653 , - 1964 , - 1195 , - 1546 , - 3017 , - 2408 , - 2919 , - 1350 , - 901 , - 1572 , - 163 , - 3074 , - 705 , - 2656 , - 2527 , - 318 , - 2429 , - 2460 , - 411 , - 2682 , - 2873 , - 984 , - 215 , - 566 , - 2037 , - 1428 , - 1939 , - 370 , - 3121 , - 592 , - 2383 , - 2094 , - 2925 , - 1676 , - 1547 , - 2538 , - 1449 , - 1480 , - 2631 , - 1702 , - 1893 , - 4 , - 2435 , - 2786 , - 1057 , - 448 , - 959 , - 2590 , - 2141 , - 2812 , - 1403 , - 1114 , - 1945 , - 696 , - 567 , - 1558 , - 469 , - 500 , - 1651 , - 722 , - 913 , - 2224 , - 1455 , - 1806 , - 77 , - 2668 , - 3179 , - 1610 , - 1161 , - 1832 , - 423 , - 134 , - 965 , - 2916 , - 2787 , - 578 , - 2689 , - 2720 , - 671 , - 2942 , - 3133 , - 1244 , - 475 , - 826 , - 2297 , - 1688 , - 2199 , - 630 , - 181 , - 852 , - 2643 , - 2354 , - 3185 , - 1936 , - 1807 , - 2798 , - 1709 , - 1740 , - 2891 , - 1962 , - 2153 , - 264 , - 2695 , - 3046 , - 1317 , - 708 , - 1219 , - 2850 , - 2401 , - 3072 , - 1663 , - 1374 , - 2205 , - 956 , - 827 , - 1818 , - 729 , - 760 , - 1911 , - 982 , - 1173 , - 2484 , - 1715 , - 2066 , - 337 , - 2928 , - 239 , - 1870 , - 1421 , - 2092 , - 683 , - 394 , - 1225 , - 3176 , - 3047 , - 838 , - 2949 , - 2980 , - 931 , - 2 , - 193 , - 1504 , - 735 , - 1086 , - 2557 , - 1948 , - 2459 , - 890 , - 441 , - 1112 , - 2903 , - 2614 , - 245 , - 2196 , - 2067 , - 3058 , - 1969 , - 2000 , - 3151 , - 2222 , - 2413 , - 524 , - 2955 , - 106 , - 1577 , - 968 , - 1479 , - 3110 , - 2661 , - 132 , - 1923 , - 1634 , - 2465 , - 1216 , - 1087 , - 2078 , - 989 , - 1020 , - 2171 , - 1242 , - 1433 , - 2744 , - 1975 , - 2326 , - 597 , - 3188 , - 499 , - 2130 , - 1681 , - 2352 , - 943 , - 654 , - 1485 , - 236 , - 107 , - 1098 , - 9 , - 40 , - 1191 , - 262 , - 453 , - 1764 , - 995 , - 1346 , - 2817 , - 2208 , - 2719 , - 1150 , - 701 , - 1372 , - 3163 , - 2874 , - 505 , - 2456 , - 2327 , - 118 , - 2229 , - 2260 , - 211 , - 2482 , - 2673 , - 784 , - 15 , - 366 , - 1837 , - 1228 , - 1739 , - 170 , - 2921 , - 392 , - 2183 , - 1894 , - 2725 , - 1476 , - 1347 , - 2338 , - 1249 , - 1280 , - 2431 , - 1502 , - 1693 , - 3004 , - 2235 , - 2586 , - 857 , - 248 , - 759 , - 2390 , - 1941 , - 2612 , - 1203 , - 914 , - 1745 , - 496 , - 367 , - 1358 , - 269 , - 300 , - 1451 , - 522 , - 713 , - 2024 , - 1255 , - 1606 , - 3077 , - 2468 , - 2979 , - 1410 , - 961 , - 1632 , - 223 , - 3134 , - 765 , - 2716 , - 2587 , - 378 , - 2489 , - 2520 , - 471 , - 2742 , - 2933 , - 1044 , - 275 , - 626 , - 2097 , - 1488 , - 1999 , - 430 , - 3181 , - 652 , - 2443 , - 2154 , - 2985 , - 1736 , - 1607 , - 2598 , - 1509 , - 1540 , - 2691 , - 1762 , - 1953 , - 64 , - 2495 , - 2846 , - 1117 , - 508 , - 1019 , - 2650 , - 2201 , - 2872 , - 1463 , - 1174 , - 2005 , - 756 , - 627 , - 1618 , - 529 , - 560 , - 1711 , - 782 , - 973 , - 2284 , - 1515 , - 1866 , - 137 , - 2728 , - 39 , - 1670 , - 1221 , - 1892 , - 483 , - 194 , - 1025 , - 2976 , - 2847 , - 638 , - 2749 , - 2780 , - 731 , - 3002 , - 3193 , - 1304 , - 535 , - 886 , - 2357 , - 1748 , - 2259 , - 690 , - 241 , - 912 , - 2703 , - 2414 , - 45 , - 1996 , - 1867 , - 2858 , - 1769 , - 1800 , - 2951 , - 2022 , - 2213 , - 324 , - 2755 , - 3106 , - 1377 , - 768 , - 1279 , - 2910 , - 2461 , - 3132 , - 1723 , - 1434 , - 2265 , - 1016 , - 887 , - 1878 , - 789 , - 820 , - 1971 , - 1042 , - 1233 , - 2544 , - 1775 , - 2126 , - 397 , - 2988 , - 299 , - 1930 , - 1481 , - 2152 , - 743 , - 454 , - 1285 , - 36 , - 3107 , - 898 , - 3009 , - 3040 , - 991 , - 62 , - 253 , - 1564 , - 795 , - 1146 , - 2617 , - 2008 , - 2519 , - 950 , - 501 , - 1172 , - 2963 , - 2674 , - 305 , - 2256 , - 2127 , - 3118 , - 2029 , - 2060 , - 11 , - 2282 , - 2473 , - 584 , - 3015 , - 166 , - 1637 , - 1028 , - 1539 , - 3170 , - 2721 , - 192 , - 1983 , - 1694 , - 2525 , - 1276 , - 1147 , - 2138 , - 1049 , - 1080 , - 2231 , - 1302 , - 1493 , - 2804 , - 2035 , - 2386 , - 657 , - 48 , - 559 , - 2190 , - 1741 , - 2412 , - 1003 , - 714 , - 1545 , - 296 , - 167 , - 1158 , - 69 , - 100 , - 1251 , - 322 , - 513 , - 1824 , - 1055 , - 1406 , - 2877 , - 2268 , - 2779 , - 1210 , - 761 , - 1432 , - 23 , - 2934 , - 565 , - 2516 , - 2387 , - 178 , - 2289 , - 2320 , - 271 , - 2542 , - 2733 , - 844 , - 75 , - 426 , - 1897 , - 1288 , - 1799 , - 230 , - 2981 , - 452 , - 2243 , - 1954 , - 2785 , - 1536 , - 1407 , - 2398 , - 1309 , - 1340 , - 2491 , - 1562 , - 1753 , - 3064 , - 2295 , - 2646 , - 917 , - 308 , - 819 , - 2450 , - 2001 , - 2672 , - 1263 , - 974 , - 1805 , - 556 , - 427 , - 1418 , - 329 , - 360 , - 1511 , - 582 , - 773 , - 2084 , - 1315 , - 1666 , - 3137 , - 2528 , - 3039 , - 1470 , - 1021 , - 1692 , - 283 , - 3194 , - 825 , - 2776 , - 2647 , - 438 , - 2549 , - 2580 , - 531 , - 2802 , - 2993 , - 1104 , - 335 , - 686 , - 2157 , - 1548 , - 2059 , - 490 , - 41 , - 712 , - 2503 , - 2214 , - 3045 , - 1796 , - 1667 , - 2658 , - 1569 , - 1600 , - 2751 , - 1822 , - 2013 , - 124 , - 2555 , - 2906 , - 1177 , - 568 , - 1079 , - 2710 , - 2261 , - 2932 , - 1523 , - 1234 , - 2065 , - 816 , - 687 , - 1678 , - 589 , - 620 , - 1771 , - 842 , - 1033 , - 2344 , - 1575 , - 1926 , - 197 , - 2788 , - 99 , - 1730 , - 1281 , - 1952 , - 543 , - 254 , - 1085 , - 3036 , - 2907 , - 698 , - 2809 , - 2840 , - 791 , - 3062 , - 53 , - 1364 , - 595 , - 946 , - 2417 , - 1808 , - 2319 , - 750 , - 301 , - 972 , - 2763 , - 2474 , - 105 , - 2056 , - 1927 , - 2918 , - 1829 , - 1860 , - 3011 , - 2082 , - 2273 , - 384 , - 2815 , - 3166 , - 1437 , - 828 , - 1339 , - 2970 , - 2521 , - 3192 , - 1783 , - 1494 , - 2325 , - 1076 , - 947 , - 1938 , - 849 , - 880 , - 2031 , - 1102 , - 1293 , - 2604 , - 1835 , - 2186 , - 457 , - 3048 , - 359 , - 1990 , - 1541 , - 2212 , - 803 , - 514 , - 1345 , - 96 , - 3167 , - 958 , - 3069 , - 3100 , - 1051 , - 122 , - 313 , - 1624 , - 855 , - 1206 , - 2677 , - 2068 , - 2579 , - 1010 , - 561 , - 1232 , - 3023 , - 2734 , - 365 , - 2316 , - 2187 , - 3178 , - 2089 , - 2120 , - 71 , - 2342 , - 2533 , - 644 , - 3075 , - 226 , - 1697 , - 1088 , - 1599 , - 30 , - 2781 , - 252 , - 2043 , - 1754 , - 2585 , - 1336 , - 1207 , - 2198 , - 1109 , - 1140 , - 2291 , - 1362 , - 1553 , - 2864 , - 2095 , - 2446 , - 717 , - 108 , - 619 , - 2250 , - 1801 , - 2472 , - 1063 , - 774 , - 1605 , - 356 , - 227 , - 1218 , - 129 , - 160 , - 1311 , - 382 , - 573 , - 1884 , - 1115 , - 1466 , - 2937 , - 2328 , - 2839 , - 1270 , - 821 , - 1492 , - 83 , - 2994 , - 625 , - 2576 , - 2447 , - 238 , - 2349 , - 2380 , - 331 , - 2602 , - 2793 , - 904 , - 135 , - 486 , - 1957 , - 1348 , - 1859 , - 290 , - 3041 , - 512 , - 2303 , - 2014 , - 2845 , - 1596 , - 1467 , - 2458 , - 1369 , - 1400 , - 2551 , - 1622 , - 1813 , - 3124 , - 2355 , - 2706 , - 977 , - 368 , - 879 , - 2510 , - 2061 , - 2732 , - 1323 , - 1034 , - 1865 , - 616 , - 487 , - 1478 , - 389 , - 420 , - 1571 , - 642 , - 833 , - 2144 , - 1375 , - 1726 , - 3197 , - 2588 , - 3099 , - 1530 , - 1081 , - 1752 , - 343 , - 54 , - 885 , - 2836 , - 2707 , - 498 , - 2609 , - 2640 , - 591 , - 2862 , - 3053 , - 1164 , - 395 , - 746 , - 2217 , - 1608 , - 2119 , - 550 , - 101 , - 772 , - 2563 , - 2274 , - 3105 , - 1856 , - 1727 , - 2718 , - 1629 , - 1660 , - 2811 , - 1882 , - 2073 , - 184 , - 2615 , - 2966 , - 1237 , - 628 , - 1139 , - 2770 , - 2321 , - 2992 , - 1583 , - 1294 , - 2125 , - 876 , - 747 , - 1738 , - 649 , - 680 , - 1831 , - 902 , - 1093 , - 2404 , - 1635 , - 1986 , - 257 , - 2848 , - 159 , - 1790 , - 1341 , - 2012 , - 603 , - 314 , - 1145 , - 3096 , - 2967 , - 758 , - 2869 , - 2900 , - 851 , - 3122 , - 113 , - 1424 , - 655 , - 1006 , - 2477 , - 1868 , - 2379 , - 810 , - 361 , - 1032 , - 2823 , - 2534 , - 165 , - 2116 , - 1987 , - 2978 , - 1889 , - 1920 , - 3071 , - 2142 , - 2333 , - 444 , - 2875 , - 26 , - 1497 , - 888 , - 1399 , - 3030 , - 2581 , - 52 , - 1843 , - 1554 , - 2385 , - 1136 , - 1007 , - 1998 , - 909 , - 940 , - 2091 , - 1162 , - 1353 , - 2664 , - 1895 , - 2246 , - 517 , - 3108 , - 419 , - 2050 , - 1601 , - 2272 , - 863 , - 574 , - 1405 , - 156 , - 27 , - 1018 , - 3129 , - 3160 , - 1111 , - 182 , - 373 , - 1684 , - 915 , - 1266 , - 2737 , - 2128 , - 2639 , - 1070 , - 621 , - 1292 , - 3083 , - 2794 , - 425 , - 2376 , - 2247 , - 38 , - 2149 , - 2180 , - 131 , - 2402 , - 2593 , - 704 , - 3135 , - 286 , - 1757 , - 1148 , - 1659 , - 90 , - 2841 , - 312 , - 2103 , - 1814 , - 2645 , - 1396 , - 1267 , - 2258 , - 1169 , - 1200 , - 2351 , - 1422 , - 1613 , - 2924 , - 2155 , - 2506 , - 777 , - 168 , - 679 , - 2310 , - 1861 , - 2532 , - 1123 , - 834 , - 1665 , - 416 , - 287 , - 1278 , - 189 , - 220 , - 1371 , - 442 , - 633 , - 1944 , - 1175 , - 1526 , - 2997 , - 2388 , - 2899 , - 1330 , - 881 , - 1552 , - 143 , - 3054 , - 685 , - 2636 , - 2507 , - 298 , - 2409 , - 2440 , - 391 , - 2662 , - 2853 , - 964 , - 195 , - 546 , - 2017 , - 1408 , - 1919 , - 350 , - 3101 , - 572 , - 2363 , - 2074 , - 2905 , - 1656 , - 1527 , - 2518 , - 1429 , - 1460 , - 2611 , - 1682 , - 1873 , - 3184 , - 2415 , - 2766 , - 1037 , - 428 , - 939 , - 2570 , - 2121 , - 2792 , - 1383 , - 1094 , - 1925 , - 676 , - 547 , - 1538 , - 449 , - 480 , - 1631 , - 702 , - 893 , - 2204 , - 1435 , - 1786 , - 57 , - 2648 , - 3159 , - 1590 , - 1141 , - 1812 , - 403 , - 114 , - 945 , - 2896 , - 2767 , - 558 , - 2669 , - 2700 , - 651 , - 2922 , - 3113 , - 1224 , - 455 , - 806 , - 2277 , - 1668 , - 2179 , - 610 , - 161 , - 832 , - 2623 , - 2334 , - 3165 , - 1916 , - 1787 , - 2778 , - 1689 , - 1720 , - 2871 , - 1942 , - 2133 , - 244 , - 2675 , - 3026 , - 1297 , - 688 , - 1199 , - 2830 , - 2381 , - 3052 , - 1643 , - 1354 , - 2185 , - 936 , - 807 , - 1798 , - 709 , - 740 , - 1891 , - 962 , - 1153 , - 2464 , - 1695 , - 2046 , - 317 , - 2908 , - 219 , - 1850 , - 1401 , - 2072 , - 663 , - 374 , - 1205 , - 3156 , - 3027 , - 818 , - 2929 , - 2960 , - 911 , - 3182 , - 173 , - 1484 , - 715 , - 1066 , - 2537 , - 1928 , - 2439 , - 870 , - 421 , - 1092 , - 2883 , - 2594 , - 225 , - 2176 , - 2047 , - 3038 , - 1949 , - 1980 , - 3131 , - 2202 , - 2393 , - 504 , - 2935 , - 86 , - 1557 , - 948 , - 1459 , - 3090 , - 2641 , - 112 , - 1903 , - 1614 , - 2445 , - 1196 , - 1067 , - 2058 , - 969 , - 1000 , - 2151 , - 1222 , - 1413 , - 2724 , - 1955 , - 2306 , - 577 , - 3168 , - 479 , - 2110 , - 1661 , - 2332 , - 923 , - 634 , - 1465 , - 216 , - 87 , - 1078 , - 3189 , - 20 , - 1171 , - 242 , - 433 , - 1744 , - 975 , - 1326 , - 2797 , - 2188 , - 2699 , - 1130 , - 681 , - 1352 , - 3143 , - 2854 , - 485 , - 2436 , - 2307 , - 98 , - 2209 , - 2240 , - 191 , - 2462 , - 2653 , - 764 , - 3195 , - 346 , - 1817 , - 1208 , - 1719 , - 150 , - 2901 , - 372 , - 2163 , - 1874 , - 2705 , - 1456 , - 1327 , - 2318 , - 1229 , - 1260 , - 2411 , - 1482 , - 1673 , - 2984 , - 2215 , - 2566 , - 837 , - 228 , - 739 , - 2370 , - 1921 , - 2592 , - 1183 , - 894 , - 1725 , - 476 , - 347 , - 1338 , - 249 , - 280 , - 1431 , - 502 , - 693 , - 2004 , - 1235 , - 1586 , - 3057 , - 2448 , - 2959 , - 1390 , - 941 , - 1612 , - 203 , - 3114 , - 745 , - 2696 , - 2567 , - 358 , - 2469 , - 2500 , - 451 , - 2722 , - 2913 , - 1024 , - 255 , - 606 , - 2077 , - 1468 , - 1979 , - 410 , - 3161 , - 632 , - 2423 , - 2134 , - 2965 , - 1716 , - 1587 , - 2578 , - 1489 , - 1520 , - 2671 , - 1742 , - 1933 , - 44 , - 2475 , - 2826 , - 1097 , - 488 , - 999 , - 2630 , - 2181 , - 2852 , - 1443 , - 1154 , - 1985 , - 736 , - 607 , - 1598 , - 509 , - 540 , - 1691 , - 762 , - 953 , - 2264 , - 1495 , - 1846 , - 117 , - 2708 , - 19 , - 1650 , - 1201 , - 1872 , - 463 , - 174 , - 1005 , - 2956 , - 2827 , - 618 , - 2729 , - 2760 , - 711 , - 2982 , - 3173 , - 1284 , - 515 , - 866 , - 2337 , - 1728 , - 2239 , - 670 , - 221 , - 892 , - 2683 , - 2394 , - 25 , - 1976 , - 1847 , - 2838 , - 1749 , - 1780 , - 2931 , - 2002 , - 2193 , - 304 , - 2735 , - 3086 , - 1357 , - 748 , - 1259 , - 2890 , - 2441 , - 3112 , - 1703 , - 1414 , - 2245 , - 996 , - 867 , - 1858 , - 769 , - 800 , - 1951 , - 1022 , - 1213 , - 2524 , - 1755 , - 2106 , - 377 , - 2968 , - 279 , - 1910 , - 1461 , - 2132 , - 723 , - 434 , - 1265 , - 16 , - 3087 , - 878 , - 2989 , - 3020 , - 971 , - 42 , - 233 , - 1544 , - 775 , - 1126 , - 2597 , - 1988 , - 2499 , - 930 , - 481 , - 1152 , - 2943 , - 2654 , - 285 , - 2236 , - 2107 , - 3098 , - 2009 , - 2040 , - 3191 , - 2262 , - 2453 , - 564 , - 2995 , - 146 , - 1617 , - 1008 , - 1519 , - 3150 , - 2701 , - 172 , - 1963 , - 1674 , - 2505 , - 1256 , - 1127 , - 2118 , - 1029 , - 1060 , - 2211 , - 1282 , - 1473 , - 2784 , - 2015 , - 2366 , - 637 , - 28 , - 539 , - 2170 , - 1721 , - 2392 , - 983 , - 694 , - 1525 , - 276 , - 147 , - 1138 , - 49 , - 80 , - 1231 , - 302 , - 493 , - 1804 , - 1035 , - 1386 , - 2857 , - 2248 , - 2759 , - 1190 , - 741 , - 1412 , - 3 , - 2914 , - 545 , - 2496 , - 2367 , - 158 , - 2269 , - 2300 , - 251 , - 2522 , - 2713 , - 824 , - 55 , - 406 , - 1877 , - 1268 , - 1779 , - 210 , - 2961 , - 432 , - 2223 , - 1934 , - 2765 , - 1516 , - 1387 , - 2378 , - 1289 , - 1320 , - 2471 , - 1542 , - 1733 , - 3044 , - 2275 , - 2626 , - 897 , - 288 , - 799 , - 2430 , - 1981 , - 2652 , - 1243 , - 954 , - 1785 , - 536 , - 407 , - 1398 , - 309 , - 340 , - 1491 , - 562 , - 753 , - 2064 , - 1295 , - 1646 , - 3117 , - 2508 , - 3019 , - 1450 , - 1001 , - 1672 , - 263 , - 3174 , - 805 , - 2756 , - 2627 , - 418 , - 2529 , - 2560 , - 511 , - 2782 , - 2973 , - 1084 , - 315 , - 666 , - 2137 , - 1528 , - 2039 , - 470 , - 21 , - 692 , - 2483 , - 2194 , - 3025 , - 1776 , - 1647 , - 2638 , - 1549 , - 1580 , - 2731 , - 1802 , - 1993 , - 104 , - 2535 , - 2886 , - 1157 , - 548 , - 1059 , - 2690 , - 2241 , - 2912 , - 1503 , - 1214 , - 2045 , - 796 , - 667 , - 1658 , - 569 , - 600 , - 1751 , - 822 , - 1013 , - 2324 , - 1555 , - 1906 , - 177 , - 2768 , - 79 , - 1710 , - 1261 , - 1932 , - 523 , - 234 , - 1065 , - 3016 , - 2887 , - 678 , - 2789 , - 2820 , - 771 , - 3042 , - 33 , - 1344 , - 575 , - 926 , - 2397 , - 1788 , - 2299 , - 730 , - 281 , - 952 , - 2743 , - 2454 , - 85 , - 2036 , - 1907 , - 2898 , - 1809 , - 1840 , - 2991 , - 2062 , - 2253 , - 364 , - 2795 , - 3146 , - 1417 , - 808 , - 1319 , - 2950 , - 2501 , - 3172 , - 1763 , - 1474 , - 2305 , - 1056 , - 927 , - 1918 , - 829 , - 860 , - 2011 , - 1082 , - 1273 , - 2584 , - 1815 , - 2166 , - 437 , - 3028 , - 339 , - 1970 , - 1521 , - 2192 , - 783 , - 494 , - 1325 , - 76 , - 3147 , - 938 , - 3049 , - 3080 , - 1031 , - 102 , - 293 , - 1604 , - 835 , - 1186 , - 2657 , - 2048 , - 2559 , - 990 , - 541 , - 1212 , - 3003 , - 2714 , - 345 , - 2296 , - 2167 , - 3158 , - 2069 , - 2100 , - 51 , - 2322 , - 2513 , - 624 , - 3055 , - 206 , - 1677 , - 1068 , - 1579 , - 10 , - 2761 , - 232 , - 2023 , - 1734 , - 2565 , - 1316 , - 1187 , - 2178 , - 1089 , - 1120 , - 2271 , - 1342 , - 1533 , - 2844 , - 2075 , - 2426 , - 697 , - 88 , - 599 , - 2230 , - 1781 , - 2452 , - 1043 , - 754 , - 1585 , - 336 , - 207 , - 1198 , - 109 , - 140 , - 1291 , - 362 , - 553 , - 1864 , - 1095 , - 1446 , - 2917 , - 2308 , - 2819 , - 1250 , - 801 , - 1472 , - 63 , - 2974 , - 605 , - 2556 , - 2427 , - 218 , - 2329 , - 2360 , - 311 , - 2582 , - 2773 , - 884 , - 115 , - 466 , - 1937 , - 1328 , - 1839 , - 270 , - 3021 , - 492 , - 2283 , - 1994 , - 2825 , - 1576 , - 1447 , - 2438 , - 1349 , - 1380 , - 2531 , - 1602 , - 1793 , - 3104 , - 2335 , - 2686 , - 957 , - 348 , - 859 , - 2490 , - 2041 , - 2712 , - 1303 , - 1014 , - 1845 , - 596 , - 467 , - 1458 , - 369 , - 400 , - 1551 , - 622 , - 813 , - 2124 , - 1355 , - 1706 , - 3177 , - 2568 , - 3079 , - 1510 , - 1061 , - 1732 , - 323 , - 34 , - 865 , - 2816 , - 2687 , - 478 , - 2589 , - 2620 , - 571 , - 2842 , - 3033 , - 1144 , - 375 , - 726 , - 2197 , - 1588 , - 2099 , - 530 , - 81 , - 752 , - 2543 , - 2254 , - 3085 , - 1836 , - 1707 , - 2698 , - 1609 , - 1640 , - 2791 , - 1862 , - 2053 , - 164 , - 2595 , - 2946 , - 1217 , - 608 , - 1119 , - 2750 , - 2301 , - 2972 , - 1563 , - 1274 , - 2105 , - 856 , - 727 , - 1718 , - 629 , - 660 , - 1811 , - 882 , - 1073 , - 2384 , - 1615 , - 1966 , - 237 , - 2828 , - 139 , - 1770 , - 1321 , - 1992 , - 583 , - 294 , - 1125 , - 3076 , - 2947 , - 738 , - 2849 , - 2880 , - 831 , - 3102 , - 93 , - 1404 , - 635 , - 986 , - 2457 , - 1848 , - 2359 , - 790 , - 341 , - 1012 , - 2803 , - 2514 , - 145 , - 2096 , - 1967 , - 2958 , - 1869 , - 1900 , - 3051 , - 2122 , - 2313 , - 424 , - 2855 , - 6 , - 1477 , - 868 , - 1379 , - 3010 , - 2561 , - 32 , - 1823 , - 1534 , - 2365 , - 1116 , - 987 , - 1978 , - 889 , - 920 , - 2071 , - 1142 , - 1333 , - 2644 , - 1875 , - 2226 , - 497 , - 3088 , - 399 , - 2030 , - 1581 , - 2252 , - 843 , - 554 , - 1385 , - 136 , - 7 , - 998 , - 3109 , - 3140 , - 1091 , - 162 , - 353 , - 1664 , - 895 , - 1246 , - 2717 , - 2108 , - 2619 , - 1050 , - 601 , - 1272 , - 3063 , - 2774 , - 405 , - 2356 , - 2227 , - 18 , - 2129 , - 2160 , - 111 , - 2382 , - 2573 , - 684 , - 3115 , - 266 , - 1737 , - 1128 , - 1639 , - 70 , - 2821 , - 292 , - 2083 , - 1794 , - 2625 , - 1376 , - 1247 , - 2238 , - 1149 , - 1180 , - 2331 , - 1402 , - 1593 , - 2904 , - 2135 , - 2486 , - 757 , - 148 , - 659 , - 2290 , - 1841 , - 2512 , - 1103 , - 814 , - 1645 , - 396 , - 267 , - 1258 , - 169 , - 200 , - 1351 , - 422 , - 613 , - 1924 , - 1155 , - 1506 , - 2977 , - 2368 , - 2879 , - 1310 , - 861 , - 1532 , - 123 , - 3034 , - 665 , - 2616 , - 2487 , - 278 , - 2389 , - 2420 , - 371 , - 2642 , - 2833 , - 944 , - 175 , - 526 , - 1997 , - 1388 , - 1899 , - 330 , - 3081 , - 552 , - 2343 , - 2054 , - 2885 , - 1636 , - 1507 , - 2498 , - 1409 , - 1440 , - 2591 , - 1662 , - 1853 , - 3164 , - 2395 , - 2746 , - 1017 , - 408 , - 919 , - 2550 , - 2101 , - 2772 , - 1363 , - 1074 , - 1905 , - 656 , - 527 , - 1518 , - 429 , - 460 , - 1611 , - 682 , - 873 , - 2184 , - 1415 , - 1766 , - 37 , - 2628 , - 3139 , - 1570 , - 1121 , - 1792 , - 383 , - 94 , - 925 , - 2876 , - 2747 , - 538 , - 2649 , - 2680 , - 631 , - 2902 , - 3093 , - 1204 , - 435 , - 786 , - 2257 , - 1648 , - 2159 , - 590 , - 141 , - 812 , - 2603 , - 2314 , - 3145 , - 1896 , - 1767 , - 2758 , - 1669 , - 1700 , - 2851 , - 1922 , - 2113 , - 224 , - 2655 , - 3006 , - 1277 , - 668 , - 1179 , - 2810 , - 2361 , - 3032 , - 1623 , - 1334 , - 2165 , - 916 , - 787 , - 1778 , - 689 , - 720 , - 1871 , - 942 , - 1133 , - 2444 , - 1675 , - 2026 , - 297 , - 2888 , - 199 , - 1830 , - 1381 , - 2052 , - 643 , - 354 , - 1185 , - 3136 , - 3007 , - 798 , - 2909 , - 2940 , - 891 , - 3162 , - 153 , - 1464 , - 695 , - 1046 , - 2517 , - 1908 , - 2419 , - 850 , - 401 , - 1072 , - 2863 , - 2574 , - 205 , - 2156 , - 2027 , - 3018 , - 1929 , - 1960 , - 3111 , - 2182 , - 2373 , - 484 , - 2915 , - 66 , - 1537 , - 928 , - 1439 , - 3070 , - 2621 , - 92 , - 1883 , - 1594 , - 2425 , - 1176 , - 1047 , - 2038 , - 949 , - 980 , - 2131 , - 1202 , - 1393 , - 2704 , - 1935 , - 2286 , - 557 , - 3148 , - 459 , - 2090 , - 1641 , - 2312 , - 903 , - 614 , - 1445 , - 196 , - 67 , - 1058 , - 3169 , - 0 , - 1871 , - 2518 , - 1941 , - 140 , - 379 , - 2658 , - 449 , - 280 , - 2151 , - 2798 , - 2221 , - 420 , - 659 , - 2938 , - 729 , - 560 , - 2431 , - 3078 , - 2501 , - 700 , - 939 , - 3218 , - 1009 , - 840 , - 2711 , - 94 , - 2781 , - 980 , - 1219 , - 234 , - 1289 , - 1120 , - 2991 , - 374 , - 3061 , - 1260 , - 1499 , - 514 , - 1569 , - 1400 , - 7 , - 654 , - 77 , - 1540 , - 1779 , - 794 , - 1849 , - 1680 , - 287 , - 934 , - 357 , - 1820 , - 2059 , - 1074 , - 2129 , - 1960 , - 567 , - 1214 , - 637 , - 2100 , - 2339 , - 1354 , - 2409 , - 2240 , - 847 , - 1494 , - 917 , - 2380 , - 2619 , - 1634 , - 2689 , - 2520 , - 1127 , - 1774 , - 1197 , - 2660 , - 2899 , - 1914 , - 2969 , - 2800 , - 1407 , - 2054 , - 1477 , - 2940 , - 3179 , - 2194 , - 3249 , - 3080 , - 1687 , - 2334 , - 1757 , - 3220 , - 195 , - 2474 , - 265 , - 96 , - 1967 , - 2614 , - 2037 , - 236 , - 475 , - 2754 , - 545 , - 376 , - 2247 , - 2894 , - 2317 , - 516 , - 755 , - 3034 , - 825 , - 656 , - 2527 , - 3174 , - 2597 , - 796 , - 1035 , - 50 , - 1105 , - 936 , - 2807 , - 190 , - 2877 , - 1076 , - 1315 , - 330 , - 1385 , - 1216 , - 3087 , - 470 , - 3157 , - 1356 , - 1595 , - 610 , - 1665 , - 1496 , - 103 , - 750 , - 173 , - 1636 , - 1875 , - 890 , - 1945 , - 1776 , - 383 , - 1030 , - 453 , - 1916 , - 2155 , - 1170 , - 2225 , - 2056 , - 663 , - 1310 , - 733 , - 2196 , - 2435 , - 1450 , - 2505 , - 2336 , - 943 , - 1590 , - 1013 , - 2476 , - 2715 , - 1730 , - 2785 , - 2616 , - 1223 , - 1870 , - 1293 , - 2756 , - 2995 , - 2010 , - 3065 , - 2896 , - 1503 , - 2150 , - 1573 , - 3036 , - 11 , - 2290 , - 81 , - 3176 , - 1783 , - 2430 , - 1853 , - 52 , - 291 , - 2570 , - 361 , - 192 , - 2063 , - 2710 , - 2133 , - 332 , - 571 , - 2850 , - 641 , - 472 , - 2343 , - 2990 , - 2413 , - 612 , - 851 , - 3130 , - 921 , - 752 , - 2623 , - 6 , - 2693 , - 892 , - 1131 , - 146 , - 1201 , - 1032 , - 2903 , - 286 , - 2973 , - 1172 , - 1411 , - 426 , - 1481 , - 1312 , - 3183 , - 566 , - 3253 , - 1452 , - 1691 , - 706 , - 1761 , - 1592 , - 199 , - 846 , - 269 , - 1732 , - 1971 , - 986 , - 2041 , - 1872 , - 479 , - 1126 , - 549 , - 2012 , - 2251 , - 1266 , - 2321 , - 2152 , - 759 , - 1406 , - 829 , - 2292 , - 2531 , - 1546 , - 2601 , - 2432 , - 1039 , - 1686 , - 1109 , - 2572 , - 2811 , - 1826 , - 2881 , - 2712 , - 1319 , - 1966 , - 1389 , - 2852 , - 3091 , - 2106 , - 3161 , - 2992 , - 1599 , - 2246 , - 1669 , - 3132 , - 107 , - 2386 , - 177 , - 8 , - 1879 , - 2526 , - 1949 , - 148 , - 387 , - 2666 , - 457 , - 288 , - 2159 , - 2806 , - 2229 , - 428 , - 667 , - 2946 , - 737 , - 568 , - 2439 , - 3086 , - 2509 , - 708 , - 947 , - 3226 , - 1017 , - 848 , - 2719 , - 102 , - 2789 , - 988 , - 1227 , - 242 , - 1297 , - 1128 , - 2999 , - 382 , - 3069 , - 1268 , - 1507 , - 522 , - 1577 , - 1408 , - 15 , - 662 , - 85 , - 1548 , - 1787 , - 802 , - 1857 , - 1688 , - 295 , - 942 , - 365 , - 1828 , - 2067 , - 1082 , - 2137 , - 1968 , - 575 , - 1222 , - 645 , - 2108 , - 2347 , - 1362 , - 2417 , - 2248 , - 855 , - 1502 , - 925 , - 2388 , - 2627 , - 1642 , - 2697 , - 2528 , - 1135 , - 1782 , - 1205 , - 2668 , - 2907 , - 1922 , - 2977 , - 2808 , - 1415 , - 2062 , - 1485 , - 2948 , - 3187 , - 2202 , - 3257 , - 3088 , - 1695 , - 2342 , - 1765 , - 3228 , - 203 , - 2482 , - 273 , - 104 , - 1975 , - 2622 , - 2045 , - 244 , - 483 , - 2762 , - 553 , - 384 , - 2255 , - 2902 , - 2325 , - 524 , - 763 , - 3042 , - 833 , - 664 , - 2535 , - 3182 , - 2605 , - 804 , - 1043 , - 58 , - 1113 , - 944 , - 2815 , - 198 , - 2885 , - 1084 , - 1323 , - 338 , - 1393 , - 1224 , - 3095 , - 478 , - 3165 , - 1364 , - 1603 , - 618 , - 1673 , - 1504 , - 111 , - 758 , - 181 , - 1644 , - 1883 , - 898 , - 1953 , - 1784 , - 391 , - 1038 , - 461 , - 1924 , - 2163 , - 1178 , - 2233 , - 2064 , - 671 , - 1318 , - 741 , - 2204 , - 2443 , - 1458 , - 2513 , - 2344 , - 951 , - 1598 , - 1021 , - 2484 , - 2723 , - 1738 , - 2793 , - 2624 , - 1231 , - 1878 , - 1301 , - 2764 , - 3003 , - 2018 , - 3073 , - 2904 , - 1511 , - 2158 , - 1581 , - 3044 , - 19 , - 2298 , - 89 , - 3184 , - 1791 , - 2438 , - 1861 , - 60 , - 299 , - 2578 , - 369 , - 200 , - 2071 , - 2718 , - 2141 , - 340 , - 579 , - 2858 , - 649 , - 480 , - 2351 , - 2998 , - 2421 , - 620 , - 859 , - 3138 , - 929 , - 760 , - 2631 , - 14 , - 2701 , - 900 , - 1139 , - 154 , - 1209 , - 1040 , - 2911 , - 294 , - 2981 , - 1180 , - 1419 , - 434 , - 1489 , - 1320 , - 3191 , - 574 , - 3261 , - 1460 , - 1699 , - 714 , - 1769 , - 1600 , - 207 , - 854 , - 277 , - 1740 , - 1979 , - 994 , - 2049 , - 1880 , - 487 , - 1134 , - 557 , - 2020 , - 2259 , - 1274 , - 2329 , - 2160 , - 767 , - 1414 , - 837 , - 2300 , - 2539 , - 1554 , - 2609 , - 2440 , - 1047 , - 1694 , - 1117 , - 2580 , - 2819 , - 1834 , - 2889 , - 2720 , - 1327 , - 1974 , - 1397 , - 2860 , - 3099 , - 2114 , - 3169 , - 3000 , - 1607 , - 2254 , - 1677 , - 3140 , - 115 , - 2394 , - 185 , - 16 , - 1887 , - 2534 , - 1957 , - 156 , - 395 , - 2674 , - 465 , - 296 , - 2167 , - 2814 , - 2237 , - 436 , - 675 , - 2954 , - 745 , - 576 , - 2447 , - 3094 , - 2517 , - 716 , - 955 , - 3234 , - 1025 , - 856 , - 2727 , - 110 , - 2797 , - 996 , - 1235 , - 250 , - 1305 , - 1136 , - 3007 , - 390 , - 3077 , - 1276 , - 1515 , - 530 , - 1585 , - 1416 , - 23 , - 670 , - 93 , - 1556 , - 1795 , - 810 , - 1865 , - 1696 , - 303 , - 950 , - 373 , - 1836 , - 2075 , - 1090 , - 2145 , - 1976 , - 583 , - 1230 , - 653 , - 2116 , - 2355 , - 1370 , - 2425 , - 2256 , - 863 , - 1510 , - 933 , - 2396 , - 2635 , - 1650 , - 2705 , - 2536 , - 1143 , - 1790 , - 1213 , - 2676 , - 2915 , - 1930 , - 2985 , - 2816 , - 1423 , - 2070 , - 1493 , - 2956 , - 3195 , - 2210 , - 1 , - 3096 , - 1703 , - 2350 , - 1773 , - 3236 , - 211 , - 2490 , - 281 , - 112 , - 1983 , - 2630 , - 2053 , - 252 , - 491 , - 2770 , - 561 , - 392 , - 2263 , - 2910 , - 2333 , - 532 , - 771 , - 3050 , - 841 , - 672 , - 2543 , - 3190 , - 2613 , - 812 , - 1051 , - 66 , - 1121 , - 952 , - 2823 , - 206 , - 2893 , - 1092 , - 1331 , - 346 , - 1401 , - 1232 , - 3103 , - 486 , - 3173 , - 1372 , - 1611 , - 626 , - 1681 , - 1512 , - 119 , - 766 , - 189 , - 1652 , - 1891 , - 906 , - 1961 , - 1792 , - 399 , - 1046 , - 469 , - 1932 , - 2171 , - 1186 , - 2241 , - 2072 , - 679 , - 1326 , - 749 , - 2212 , - 2451 , - 1466 , - 2521 , - 2352 , - 959 , - 1606 , - 1029 , - 2492 , - 2731 , - 1746 , - 2801 , - 2632 , - 1239 , - 1886 , - 1309 , - 2772 , - 3011 , - 2026 , - 3081 , - 2912 , - 1519 , - 2166 , - 1589 , - 3052 , - 27 , - 2306 , - 97 , - 3192 , - 1799 , - 2446 , - 1869 , - 68 , - 307 , - 2586 , - 377 , - 208 , - 2079 , - 2726 , - 2149 , - 348 , - 587 , - 2866 , - 657 , - 488 , - 2359 , - 3006 , - 2429 , - 628 , - 867 , - 3146 , - 937 , - 768 , - 2639 , - 22 , - 2709 , - 908 , - 1147 , - 162 , - 1217 , - 1048 , - 2919 , - 302 , - 2989 , - 1188 , - 1427 , - 442 , - 1497 , - 1328 , - 3199 , - 582 , - 5 , - 1468 , - 1707 , - 722 , - 1777 , - 1608 , - 215 , - 862 , - 285 , - 1748 , - 1987 , - 1002 , - 2057 , - 1888 , - 495 , - 1142 , - 565 , - 2028 , - 2267 , - 1282 , - 2337 , - 2168 , - 775 , - 1422 , - 845 , - 2308 , - 2547 , - 1562 , - 2617 , - 2448 , - 1055 , - 1702 , - 1125 , - 2588 , - 2827 , - 1842 , - 2897 , - 2728 , - 1335 , - 1982 , - 1405 , - 2868 , - 3107 , - 2122 , - 3177 , - 3008 , - 1615 , - 2262 , - 1685 , - 3148 , - 123 , - 2402 , - 193 , - 24 , - 1895 , - 2542 , - 1965 , - 164 , - 403 , - 2682 , - 473 , - 304 , - 2175 , - 2822 , - 2245 , - 444 , - 683 , - 2962 , - 753 , - 584 , - 2455 , - 3102 , - 2525 , - 724 , - 963 , - 3242 , - 1033 , - 864 , - 2735 , - 118 , - 2805 , - 1004 , - 1243 , - 258 , - 1313 , - 1144 , - 3015 , - 398 , - 3085 , - 1284 , - 1523 , - 538 , - 1593 , - 1424 , - 31 , - 678 , - 101 , - 1564 , - 1803 , - 818 , - 1873 , - 1704 , - 311 , - 958 , - 381 , - 1844 , - 2083 , - 1098 , - 2153 , - 1984 , - 591 , - 1238 , - 661 , - 2124 , - 2363 , - 1378 , - 2433 , - 2264 , - 871 , - 1518 , - 941 , - 2404 , - 2643 , - 1658 , - 2713 , - 2544 , - 1151 , - 1798 , - 1221 , - 2684 , - 2923 , - 1938 , - 2993 , - 2824 , - 1431 , - 2078 , - 1501 , - 2964 , - 3203 , - 2218 , - 9 , - 3104 , - 1711 , - 2358 , - 1781 , - 3244 , - 219 , - 2498 , - 289 , - 120 , - 1991 , - 2638 , - 2061 , - 260 , - 499 , - 2778 , - 569 , - 400 , - 2271 , - 2918 , - 2341 , - 540 , - 779 , - 3058 , - 849 , - 680 , - 2551 , - 3198 , - 2621 , - 820 , - 1059 , - 74 , - 1129 , - 960 , - 2831 , - 214 , - 2901 , - 1100 , - 1339 , - 354 , - 1409 , - 1240 , - 3111 , - 494 , - 3181 , - 1380 , - 1619 , - 634 , - 1689 , - 1520 , - 127 , - 774 , - 197 , - 1660 , - 1899 , - 914 , - 1969 , - 1800 , - 407 , - 1054 , - 477 , - 1940 , - 2179 , - 1194 , - 2249 , - 2080 , - 687 , - 1334 , - 757 , - 2220 , - 2459 , - 1474 , - 2529 , - 2360 , - 967 , - 1614 , - 1037 , - 2500 , - 2739 , - 1754 , - 2809 , - 2640 , - 1247 , - 1894 , - 1317 , - 2780 , - 3019 , - 2034 , - 3089 , - 2920 , - 1527 , - 2174 , - 1597 , - 3060 , - 35 , - 2314 , - 105 , - 3200 , - 1807 , - 2454 , - 1877 , - 76 , - 315 , - 2594 , - 385 , - 216 , - 2087 , - 2734 , - 2157 , - 356 , - 595 , - 2874 , - 665 , - 496 , - 2367 , - 3014 , - 2437 , - 636 , - 875 , - 3154 , - 945 , - 776 , - 2647 , - 30 , - 2717 , - 916 , - 1155 , - 170 , - 1225 , - 1056 , - 2927 , - 310 , - 2997 , - 1196 , - 1435 , - 450 , - 1505 , - 1336 , - 3207 , - 590 , - 13 , - 1476 , - 1715 , - 730 , - 1785 , - 1616 , - 223 , - 870 , - 293 , - 1756 , - 1995 , - 1010 , - 2065 , - 1896 , - 503 , - 1150 , - 573 , - 2036 , - 2275 , - 1290 , - 2345 , - 2176 , - 783 , - 1430 , - 853 , - 2316 , - 2555 , - 1570 , - 2625 , - 2456 , - 1063 , - 1710 , - 1133 , - 2596 , - 2835 , - 1850 , - 2905 , - 2736 , - 1343 , - 1990 , - 1413 , - 2876 , - 3115 , - 2130 , - 3185 , - 3016 , - 1623 , - 2270 , - 1693 , - 3156 , - 131 , - 2410 , - 201 , - 32 , - 1903 , - 2550 , - 1973 , - 172 , - 411 , - 2690 , - 481 , - 312 , - 2183 , - 2830 , - 2253 , - 452 , - 691 , - 2970 , - 761 , - 592 , - 2463 , - 3110 , - 2533 , - 732 , - 971 , - 3250 , - 1041 , - 872 , - 2743 , - 126 , - 2813 , - 1012 , - 1251 , - 266 , - 1321 , - 1152 , - 3023 , - 406 , - 3093 , - 1292 , - 1531 , - 546 , - 1601 , - 1432 , - 39 , - 686 , - 109 , - 1572 , - 1811 , - 826 , - 1881 , - 1712 , - 319 , - 966 , - 389 , - 1852 , - 2091 , - 1106 , - 2161 , - 1992 , - 599 , - 1246 , - 669 , - 2132 , - 2371 , - 1386 , - 2441 , - 2272 , - 879 , - 1526 , - 949 , - 2412 , - 2651 , - 1666 , - 2721 , - 2552 , - 1159 , - 1806 , - 1229 , - 2692 , - 2931 , - 1946 , - 3001 , - 2832 , - 1439 , - 2086 , - 1509 , - 2972 , - 3211 , - 2226 , - 17 , - 3112 , - 1719 , - 2366 , - 1789 , - 3252 , - 227 , - 2506 , - 297 , - 128 , - 1999 , - 2646 , - 2069 , - 268 , - 507 , - 2786 , - 577 , - 408 , - 2279 , - 2926 , - 2349 , - 548 , - 787 , - 3066 , - 857 , - 688 , - 2559 , - 3206 , - 2629 , - 828 , - 1067 , - 82 , - 1137 , - 968 , - 2839 , - 222 , - 2909 , - 1108 , - 1347 , - 362 , - 1417 , - 1248 , - 3119 , - 502 , - 3189 , - 1388 , - 1627 , - 642 , - 1697 , - 1528 , - 135 , - 782 , - 205 , - 1668 , - 1907 , - 922 , - 1977 , - 1808 , - 415 , - 1062 , - 485 , - 1948 , - 2187 , - 1202 , - 2257 , - 2088 , - 695 , - 1342 , - 765 , - 2228 , - 2467 , - 1482 , - 2537 , - 2368 , - 975 , - 1622 , - 1045 , - 2508 , - 2747 , - 1762 , - 2817 , - 2648 , - 1255 , - 1902 , - 1325 , - 2788 , - 3027 , - 2042 , - 3097 , - 2928 , - 1535 , - 2182 , - 1605 , - 3068 , - 43 , - 2322 , - 113 , - 3208 , - 1815 , - 2462 , - 1885 , - 84 , - 323 , - 2602 , - 393 , - 224 , - 2095 , - 2742 , - 2165 , - 364 , - 603 , - 2882 , - 673 , - 504 , - 2375 , - 3022 , - 2445 , - 644 , - 883 , - 3162 , - 953 , - 784 , - 2655 , - 38 , - 2725 , - 924 , - 1163 , - 178 , - 1233 , - 1064 , - 2935 , - 318 , - 3005 , - 1204 , - 1443 , - 458 , - 1513 , - 1344 , - 3215 , - 598 , - 21 , - 1484 , - 1723 , - 738 , - 1793 , - 1624 , - 231 , - 878 , - 301 , - 1764 , - 2003 , - 1018 , - 2073 , - 1904 , - 511 , - 1158 , - 581 , - 2044 , - 2283 , - 1298 , - 2353 , - 2184 , - 791 , - 1438 , - 861 , - 2324 , - 2563 , - 1578 , - 2633 , - 2464 , - 1071 , - 1718 , - 1141 , - 2604 , - 2843 , - 1858 , - 2913 , - 2744 , - 1351 , - 1998 , - 1421 , - 2884 , - 3123 , - 2138 , - 3193 , - 3024 , - 1631 , - 2278 , - 1701 , - 3164 , - 139 , - 2418 , - 209 , - 40 , - 1911 , - 2558 , - 1981 , - 180 , - 419 , - 2698 , - 489 , - 320 , - 2191 , - 2838 , - 2261 , - 460 , - 699 , - 2978 , - 769 , - 600 , - 2471 , - 3118 , - 2541 , - 740 , - 979 , - 3258 , - 1049 , - 880 , - 2751 , - 134 , - 2821 , - 1020 , - 1259 , - 274 , - 1329 , - 1160 , - 3031 , - 414 , - 3101 , - 1300 , - 1539 , - 554 , - 1609 , - 1440 , - 47 , - 694 , - 117 , - 1580 , - 1819 , - 834 , - 1889 , - 1720 , - 327 , - 974 , - 397 , - 1860 , - 2099 , - 1114 , - 2169 , - 2000 , - 607 , - 1254 , - 677 , - 2140 , - 2379 , - 1394 , - 2449 , - 2280 , - 887 , - 1534 , - 957 , - 2420 , - 2659 , - 1674 , - 2729 , - 2560 , - 1167 , - 1814 , - 1237 , - 2700 , - 2939 , - 1954 , - 3009 , - 2840 , - 1447 , - 2094 , - 1517 , - 2980 , - 3219 , - 2234 , - 25 , - 3120 , - 1727 , - 2374 , - 1797 , - 3260 , - 235 , - 2514 , - 305 , - 136 , - 2007 , - 2654 , - 2077 , - 276 , - 515 , - 2794 , - 585 , - 416 , - 2287 , - 2934 , - 2357 , - 556 , - 795 , - 3074 , - 865 , - 696 , - 2567 , - 3214 , - 2637 , - 836 , - 1075 , - 90 , - 1145 , - 976 , - 2847 , - 230 , - 2917 , - 1116 , - 1355 , - 370 , - 1425 , - 1256 , - 3127 , - 510 , - 3197 , - 1396 , - 1635 , - 650 , - 1705 , - 1536 , - 143 , - 790 , - 213 , - 1676 , - 1915 , - 930 , - 1985 , - 1816 , - 423 , - 1070 , - 493 , - 1956 , - 2195 , - 1210 , - 2265 , - 2096 , - 703 , - 1350 , - 773 , - 2236 , - 2475 , - 1490 , - 2545 , - 2376 , - 983 , - 1630 , - 1053 , - 2516 , - 2755 , - 1770 , - 2825 , - 2656 , - 1263 , - 1910 , - 1333 , - 2796 , - 3035 , - 2050 , - 3105 , - 2936 , - 1543 , - 2190 , - 1613 , - 3076 , - 51 , - 2330 , - 121 , - 3216 , - 1823 , - 2470 , - 1893 , - 92 , - 331 , - 2610 , - 401 , - 232 , - 2103 , - 2750 , - 2173 , - 372 , - 611 , - 2890 , - 681 , - 512 , - 2383 , - 3030 , - 2453 , - 652 , - 891 , - 3170 , - 961 , - 792 , - 2663 , - 46 , - 2733 , - 932 , - 1171 , - 186 , - 1241 , - 1072 , - 2943 , - 326 , - 3013 , - 1212 , - 1451 , - 466 , - 1521 , - 1352 , - 3223 , - 606 , - 29 , - 1492 , - 1731 , - 746 , - 1801 , - 1632 , - 239 , - 886 , - 309 , - 1772 , - 2011 , - 1026 , - 2081 , - 1912 , - 519 , - 1166 , - 589 , - 2052 , - 2291 , - 1306 , - 2361 , - 2192 , - 799 , - 1446 , - 869 , - 2332 , - 2571 , - 1586 , - 2641 , - 2472 , - 1079 , - 1726 , - 1149 , - 2612 , - 2851 , - 1866 , - 2921 , - 2752 , - 1359 , - 2006 , - 1429 , - 2892 , - 3131 , - 2146 , - 3201 , - 3032 , - 1639 , - 2286 , - 1709 , - 3172 , - 147 , - 2426 , - 217 , - 48 , - 1919 , - 2566 , - 1989 , - 188 , - 427 , - 2706 , - 497 , - 328 , - 2199 , - 2846 , - 2269 , - 468 , - 707 , - 2986 , - 777 , - 608 , - 2479 , - 3126 , - 2549 , - 748 , - 987 , - 2 , - 1057 , - 888 , - 2759 , - 142 , - 2829 , - 1028 , - 1267 , - 282 , - 1337 , - 1168 , - 3039 , - 422 , - 3109 , - 1308 , - 1547 , - 562 , - 1617 , - 1448 , - 55 , - 702 , - 125 , - 1588 , - 1827 , - 842 , - 1897 , - 1728 , - 335 , - 982 , - 405 , - 1868 , - 2107 , - 1122 , - 2177 , - 2008 , - 615 , - 1262 , - 685 , - 2148 , - 2387 , - 1402 , - 2457 , - 2288 , - 895 , - 1542 , - 965 , - 2428 , - 2667 , - 1682 , - 2737 , - 2568 , - 1175 , - 1822 , - 1245 , - 2708 , - 2947 , - 1962 , - 3017 , - 2848 , - 1455 , - 2102 , - 1525 , - 2988 , - 3227 , - 2242 , - 33 , - 3128 , - 1735 , - 2382 , - 1805 , - 4 , - 243 , - 2522 , - 313 , - 144 , - 2015 , - 2662 , - 2085 , - 284 , - 523 , - 2802 , - 593 , - 424 , - 2295 , - 2942 , - 2365 , - 564 , - 803 , - 3082 , - 873 , - 704 , - 2575 , - 3222 , - 2645 , - 844 , - 1083 , - 98 , - 1153 , - 984 , - 2855 , - 238 , - 2925 , - 1124 , - 1363 , - 378 , - 1433 , - 1264 , - 3135 , - 518 , - 3205 , - 1404 , - 1643 , - 658 , - 1713 , - 1544 , - 151 , - 798 , - 221 , - 1684 , - 1923 , - 938 , - 1993 , - 1824 , - 431 , - 1078 , - 501 , - 1964 , - 2203 , - 1218 , - 2273 , - 2104 , - 711 , - 1358 , - 781 , - 2244 , - 2483 , - 1498 , - 2553 , - 2384 , - 991 , - 1638 , - 1061 , - 2524 , - 2763 , - 1778 , - 2833 , - 2664 , - 1271 , - 1918 , - 1341 , - 2804 , - 3043 , - 2058 , - 3113 , - 2944 , - 1551 , - 2198 , - 1621 , - 3084 , - 59 , - 2338 , - 129 , - 3224 , - 1831 , - 2478 , - 1901 , - 100 , - 339 , - 2618 , - 409 , - 240 , - 2111 , - 2758 , - 2181 , - 380 , - 619 , - 2898 , - 689 , - 520 , - 2391 , - 3038 , - 2461 , - 660 , - 899 , - 3178 , - 969 , - 800 , - 2671 , - 54 , - 2741 , - 940 , - 1179 , - 194 , - 1249 , - 1080 , - 2951 , - 334 , - 3021 , - 1220 , - 1459 , - 474 , - 1529 , - 1360 , - 3231 , - 614 , - 37 , - 1500 , - 1739 , - 754 , - 1809 , - 1640 , - 247 , - 894 , - 317 , - 1780 , - 2019 , - 1034 , - 2089 , - 1920 , - 527 , - 1174 , - 597 , - 2060 , - 2299 , - 1314 , - 2369 , - 2200 , - 807 , - 1454 , - 877 , - 2340 , - 2579 , - 1594 , - 2649 , - 2480 , - 1087 , - 1734 , - 1157 , - 2620 , - 2859 , - 1874 , - 2929 , - 2760 , - 1367 , - 2014 , - 1437 , - 2900 , - 3139 , - 2154 , - 3209 , - 3040 , - 1647 , - 2294 , - 1717 , - 3180 , - 155 , - 2434 , - 225 , - 56 , - 1927 , - 2574 , - 1997 , - 196 , - 435 , - 2714 , - 505 , - 336 , - 2207 , - 2854 , - 2277 , - 476 , - 715 , - 2994 , - 785 , - 616 , - 2487 , - 3134 , - 2557 , - 756 , - 995 , - 10 , - 1065 , - 896 , - 2767 , - 150 , - 2837 , - 1036 , - 1275 , - 290 , - 1345 , - 1176 , - 3047 , - 430 , - 3117 , - 1316 , - 1555 , - 570 , - 1625 , - 1456 , - 63 , - 710 , - 133 , - 1596 , - 1835 , - 850 , - 1905 , - 1736 , - 343 , - 990 , - 413 , - 1876 , - 2115 , - 1130 , - 2185 , - 2016 , - 623 , - 1270 , - 693 , - 2156 , - 2395 , - 1410 , - 2465 , - 2296 , - 903 , - 1550 , - 973 , - 2436 , - 2675 , - 1690 , - 2745 , - 2576 , - 1183 , - 1830 , - 1253 , - 2716 , - 2955 , - 1970 , - 3025 , - 2856 , - 1463 , - 2110 , - 1533 , - 2996 , - 3235 , - 2250 , - 41 , - 3136 , - 1743 , - 2390 , - 1813 , - 12 , - 251 , - 2530 , - 321 , - 152 , - 2023 , - 2670 , - 2093 , - 292 , - 531 , - 2810 , - 601 , - 432 , - 2303 , - 2950 , - 2373 , - 572 , - 811 , - 3090 , - 881 , - 712 , - 2583 , - 3230 , - 2653 , - 852 , - 1091 , - 106 , - 1161 , - 992 , - 2863 , - 246 , - 2933 , - 1132 , - 1371 , - 386 , - 1441 , - 1272 , - 3143 , - 526 , - 3213 , - 1412 , - 1651 , - 666 , - 1721 , - 1552 , - 159 , - 806 , - 229 , - 1692 , - 1931 , - 946 , - 2001 , - 1832 , - 439 , - 1086 , - 509 , - 1972 , - 2211 , - 1226 , - 2281 , - 2112 , - 719 , - 1366 , - 789 , - 2252 , - 2491 , - 1506 , - 2561 , - 2392 , - 999 , - 1646 , - 1069 , - 2532 , - 2771 , - 1786 , - 2841 , - 2672 , - 1279 , - 1926 , - 1349 , - 2812 , - 3051 , - 2066 , - 3121 , - 2952 , - 1559 , - 2206 , - 1629 , - 3092 , - 67 , - 2346 , - 137 , - 3232 , - 1839 , - 2486 , - 1909 , - 108 , - 347 , - 2626 , - 417 , - 248 , - 2119 , - 2766 , - 2189 , - 388 , - 627 , - 2906 , - 697 , - 528 , - 2399 , - 3046 , - 2469 , - 668 , - 907 , - 3186 , - 977 , - 808 , - 2679 , - 62 , - 2749 , - 948 , - 1187 , - 202 , - 1257 , - 1088 , - 2959 , - 342 , - 3029 , - 1228 , - 1467 , - 482 , - 1537 , - 1368 , - 3239 , - 622 , - 45 , - 1508 , - 1747 , - 762 , - 1817 , - 1648 , - 255 , - 902 , - 325 , - 1788 , - 2027 , - 1042 , - 2097 , - 1928 , - 535 , - 1182 , - 605 , - 2068 , - 2307 , - 1322 , - 2377 , - 2208 , - 815 , - 1462 , - 885 , - 2348 , - 2587 , - 1602 , - 2657 , - 2488 , - 1095 , - 1742 , - 1165 , - 2628 , - 2867 , - 1882 , - 2937 , - 2768 , - 1375 , - 2022 , - 1445 , - 2908 , - 3147 , - 2162 , - 3217 , - 3048 , - 1655 , - 2302 , - 1725 , - 3188 , - 163 , - 2442 , - 233 , - 64 , - 1935 , - 2582 , - 2005 , - 204 , - 443 , - 2722 , - 513 , - 344 , - 2215 , - 2862 , - 2285 , - 484 , - 723 , - 3002 , - 793 , - 624 , - 2495 , - 3142 , - 2565 , - 764 , - 1003 , - 18 , - 1073 , - 904 , - 2775 , - 158 , - 2845 , - 1044 , - 1283 , - 298 , - 1353 , - 1184 , - 3055 , - 438 , - 3125 , - 1324 , - 1563 , - 578 , - 1633 , - 1464 , - 71 , - 718 , - 141 , - 1604 , - 1843 , - 858 , - 1913 , - 1744 , - 351 , - 998 , - 421 , - 1884 , - 2123 , - 1138 , - 2193 , - 2024 , - 631 , - 1278 , - 701 , - 2164 , - 2403 , - 1418 , - 2473 , - 2304 , - 911 , - 1558 , - 981 , - 2444 , - 2683 , - 1698 , - 2753 , - 2584 , - 1191 , - 1838 , - 1261 , - 2724 , - 2963 , - 1978 , - 3033 , - 2864 , - 1471 , - 2118 , - 1541 , - 3004 , - 3243 , - 2258 , - 49 , - 3144 , - 1751 , - 2398 , - 1821 , - 20 , - 259 , - 2538 , - 329 , - 160 , - 2031 , - 2678 , - 2101 , - 300 , - 539 , - 2818 , - 609 , - 440 , - 2311 , - 2958 , - 2381 , - 580 , - 819 , - 3098 , - 889 , - 720 , - 2591 , - 3238 , - 2661 , - 860 , - 1099 , - 114 , - 1169 , - 1000 , - 2871 , - 254 , - 2941 , - 1140 , - 1379 , - 394 , - 1449 , - 1280 , - 3151 , - 534 , - 3221 , - 1420 , - 1659 , - 674 , - 1729 , - 1560 , - 167 , - 814 , - 237 , - 1700 , - 1939 , - 954 , - 2009 , - 1840 , - 447 , - 1094 , - 517 , - 1980 , - 2219 , - 1234 , - 2289 , - 2120 , - 727 , - 1374 , - 797 , - 2260 , - 2499 , - 1514 , - 2569 , - 2400 , - 1007 , - 1654 , - 1077 , - 2540 , - 2779 , - 1794 , - 2849 , - 2680 , - 1287 , - 1934 , - 1357 , - 2820 , - 3059 , - 2074 , - 3129 , - 2960 , - 1567 , - 2214 , - 1637 , - 3100 , - 75 , - 2354 , - 145 , - 3240 , - 1847 , - 2494 , - 1917 , - 116 , - 355 , - 2634 , - 425 , - 256 , - 2127 , - 2774 , - 2197 , - 396 , - 635 , - 2914 , - 705 , - 536 , - 2407 , - 3054 , - 2477 , - 676 , - 915 , - 3194 , - 985 , - 816 , - 2687 , - 70 , - 2757 , - 956 , - 1195 , - 210 , - 1265 , - 1096 , - 2967 , - 350 , - 3037 , - 1236 , - 1475 , - 490 , - 1545 , - 1376 , - 3247 , - 630 , - 53 , - 1516 , - 1755 , - 770 , - 1825 , - 1656 , - 263 , - 910 , - 333 , - 1796 , - 2035 , - 1050 , - 2105 , - 1936 , - 543 , - 1190 , - 613 , - 2076 , - 2315 , - 1330 , - 2385 , - 2216 , - 823 , - 1470 , - 893 , - 2356 , - 2595 , - 1610 , - 2665 , - 2496 , - 1103 , - 1750 , - 1173 , - 2636 , - 2875 , - 1890 , - 2945 , - 2776 , - 1383 , - 2030 , - 1453 , - 2916 , - 3155 , - 2170 , - 3225 , - 3056 , - 1663 , - 2310 , - 1733 , - 3196 , - 171 , - 2450 , - 241 , - 72 , - 1943 , - 2590 , - 2013 , - 212 , - 451 , - 2730 , - 521 , - 352 , - 2223 , - 2870 , - 2293 , - 492 , - 731 , - 3010 , - 801 , - 632 , - 2503 , - 3150 , - 2573 , - 772 , - 1011 , - 26 , - 1081 , - 912 , - 2783 , - 166 , - 2853 , - 1052 , - 1291 , - 306 , - 1361 , - 1192 , - 3063 , - 446 , - 3133 , - 1332 , - 1571 , - 586 , - 1641 , - 1472 , - 79 , - 726 , - 149 , - 1612 , - 1851 , - 866 , - 1921 , - 1752 , - 359 , - 1006 , - 429 , - 1892 , - 2131 , - 1146 , - 2201 , - 2032 , - 639 , - 1286 , - 709 , - 2172 , - 2411 , - 1426 , - 2481 , - 2312 , - 919 , - 1566 , - 989 , - 2452 , - 2691 , - 1706 , - 2761 , - 2592 , - 1199 , - 1846 , - 1269 , - 2732 , - 2971 , - 1986 , - 3041 , - 2872 , - 1479 , - 2126 , - 1549 , - 3012 , - 3251 , - 2266 , - 57 , - 3152 , - 1759 , - 2406 , - 1829 , - 28 , - 267 , - 2546 , - 337 , - 168 , - 2039 , - 2686 , - 2109 , - 308 , - 547 , - 2826 , - 617 , - 448 , - 2319 , - 2966 , - 2389 , - 588 , - 827 , - 3106 , - 897 , - 728 , - 2599 , - 3246 , - 2669 , - 868 , - 1107 , - 122 , - 1177 , - 1008 , - 2879 , - 262 , - 2949 , - 1148 , - 1387 , - 402 , - 1457 , - 1288 , - 3159 , - 542 , - 3229 , - 1428 , - 1667 , - 682 , - 1737 , - 1568 , - 175 , - 822 , - 245 , - 1708 , - 1947 , - 962 , - 2017 , - 1848 , - 455 , - 1102 , - 525 , - 1988 , - 2227 , - 1242 , - 2297 , - 2128 , - 735 , - 1382 , - 805 , - 2268 , - 2507 , - 1522 , - 2577 , - 2408 , - 1015 , - 1662 , - 1085 , - 2548 , - 2787 , - 1802 , - 2857 , - 2688 , - 1295 , - 1942 , - 1365 , - 2828 , - 3067 , - 2082 , - 3137 , - 2968 , - 1575 , - 2222 , - 1645 , - 3108 , - 83 , - 2362 , - 153 , - 3248 , - 1855 , - 2502 , - 1925 , - 124 , - 363 , - 2642 , - 433 , - 264 , - 2135 , - 2782 , - 2205 , - 404 , - 643 , - 2922 , - 713 , - 544 , - 2415 , - 3062 , - 2485 , - 684 , - 923 , - 3202 , - 993 , - 824 , - 2695 , - 78 , - 2765 , - 964 , - 1203 , - 218 , - 1273 , - 1104 , - 2975 , - 358 , - 3045 , - 1244 , - 1483 , - 498 , - 1553 , - 1384 , - 3255 , - 638 , - 61 , - 1524 , - 1763 , - 778 , - 1833 , - 1664 , - 271 , - 918 , - 341 , - 1804 , - 2043 , - 1058 , - 2113 , - 1944 , - 551 , - 1198 , - 621 , - 2084 , - 2323 , - 1338 , - 2393 , - 2224 , - 831 , - 1478 , - 901 , - 2364 , - 2603 , - 1618 , - 2673 , - 2504 , - 1111 , - 1758 , - 1181 , - 2644 , - 2883 , - 1898 , - 2953 , - 2784 , - 1391 , - 2038 , - 1461 , - 2924 , - 3163 , - 2178 , - 3233 , - 3064 , - 1671 , - 2318 , - 1741 , - 3204 , - 179 , - 2458 , - 249 , - 80 , - 1951 , - 2598 , - 2021 , - 220 , - 459 , - 2738 , - 529 , - 360 , - 2231 , - 2878 , - 2301 , - 500 , - 739 , - 3018 , - 809 , - 640 , - 2511 , - 3158 , - 2581 , - 780 , - 1019 , - 34 , - 1089 , - 920 , - 2791 , - 174 , - 2861 , - 1060 , - 1299 , - 314 , - 1369 , - 1200 , - 3071 , - 454 , - 3141 , - 1340 , - 1579 , - 594 , - 1649 , - 1480 , - 87 , - 734 , - 157 , - 1620 , - 1859 , - 874 , - 1929 , - 1760 , - 367 , - 1014 , - 437 , - 1900 , - 2139 , - 1154 , - 2209 , - 2040 , - 647 , - 1294 , - 717 , - 2180 , - 2419 , - 1434 , - 2489 , - 2320 , - 927 , - 1574 , - 997 , - 2460 , - 2699 , - 1714 , - 2769 , - 2600 , - 1207 , - 1854 , - 1277 , - 2740 , - 2979 , - 1994 , - 3049 , - 2880 , - 1487 , - 2134 , - 1557 , - 3020 , - 3259 , - 2274 , - 65 , - 3160 , - 1767 , - 2414 , - 1837 , - 36 , - 275 , - 2554 , - 345 , - 176 , - 2047 , - 2694 , - 2117 , - 316 , - 555 , - 2834 , - 625 , - 456 , - 2327 , - 2974 , - 2397 , - 596 , - 835 , - 3114 , - 905 , - 736 , - 2607 , - 3254 , - 2677 , - 876 , - 1115 , - 130 , - 1185 , - 1016 , - 2887 , - 270 , - 2957 , - 1156 , - 1395 , - 410 , - 1465 , - 1296 , - 3167 , - 550 , - 3237 , - 1436 , - 1675 , - 690 , - 1745 , - 1576 , - 183 , - 830 , - 253 , - 1716 , - 1955 , - 970 , - 2025 , - 1856 , - 463 , - 1110 , - 533 , - 1996 , - 2235 , - 1250 , - 2305 , - 2136 , - 743 , - 1390 , - 813 , - 2276 , - 2515 , - 1530 , - 2585 , - 2416 , - 1023 , - 1670 , - 1093 , - 2556 , - 2795 , - 1810 , - 2865 , - 2696 , - 1303 , - 1950 , - 1373 , - 2836 , - 3075 , - 2090 , - 3145 , - 2976 , - 1583 , - 2230 , - 1653 , - 3116 , - 91 , - 2370 , - 161 , - 3256 , - 1863 , - 2510 , - 1933 , - 132 , - 371 , - 2650 , - 441 , - 272 , - 2143 , - 2790 , - 2213 , - 412 , - 651 , - 2930 , - 721 , - 552 , - 2423 , - 3070 , - 2493 , - 692 , - 931 , - 3210 , - 1001 , - 832 , - 2703 , - 86 , - 2773 , - 972 , - 1211 , - 226 , - 1281 , - 1112 , - 2983 , - 366 , - 3053 , - 1252 , - 1491 , - 506 , - 1561 , - 1392 , - 3263 , - 646 , - 69 , - 1532 , - 1771 , - 786 , - 1841 , - 1672 , - 279 , - 926 , - 349 , - 1812 , - 2051 , - 1066 , - 2121 , - 1952 , - 559 , - 1206 , - 629 , - 2092 , - 2331 , - 1346 , - 2401 , - 2232 , - 839 , - 1486 , - 909 , - 2372 , - 2611 , - 1626 , - 2681 , - 2512 , - 1119 , - 1766 , - 1189 , - 2652 , - 2891 , - 1906 , - 2961 , - 2792 , - 1399 , - 2046 , - 1469 , - 2932 , - 3171 , - 2186 , - 3241 , - 3072 , - 1679 , - 2326 , - 1749 , - 3212 , - 187 , - 2466 , - 257 , - 88 , - 1959 , - 2606 , - 2029 , - 228 , - 467 , - 2746 , - 537 , - 368 , - 2239 , - 2886 , - 2309 , - 508 , - 747 , - 3026 , - 817 , - 648 , - 2519 , - 3166 , - 2589 , - 788 , - 1027 , - 42 , - 1097 , - 928 , - 2799 , - 182 , - 2869 , - 1068 , - 1307 , - 322 , - 1377 , - 1208 , - 3079 , - 462 , - 3149 , - 1348 , - 1587 , - 602 , - 1657 , - 1488 , - 95 , - 742 , - 165 , - 1628 , - 1867 , - 882 , - 1937 , - 1768 , - 375 , - 1022 , - 445 , - 1908 , - 2147 , - 1162 , - 2217 , - 2048 , - 655 , - 1302 , - 725 , - 2188 , - 2427 , - 1442 , - 2497 , - 2328 , - 935 , - 1582 , - 1005 , - 2468 , - 2707 , - 1722 , - 2777 , - 2608 , - 1215 , - 1862 , - 1285 , - 2748 , - 2987 , - 2002 , - 3057 , - 2888 , - 1495 , - 2142 , - 1565 , - 3028 , - 3 , - 2282 , - 73 , - 3168 , - 1775 , - 2422 , - 1845 , - 44 , - 283 , - 2562 , - 353 , - 184 , - 2055 , - 2702 , - 2125 , - 324 , - 563 , - 2842 , - 633 , - 464 , - 2335 , - 2982 , - 2405 , - 604 , - 843 , - 3122 , - 913 , - 744 , - 2615 , - 3262 , - 2685 , - 884 , - 1123 , - 138 , - 1193 , - 1024 , - 2895 , - 278 , - 2965 , - 1164 , - 1403 , - 418 , - 1473 , - 1304 , - 3175 , - 558 , - 3245 , - 1444 , - 1683 , - 698 , - 1753 , - 1584 , - 191 , - 838 , - 261 , - 1724 , - 1963 , - 978 , - 2033 , - 1864 , - 471 , - 1118 , - 541 , - 2004 , - 2243 , - 1258 , - 2313 , - 2144 , - 751 , - 1398 , - 821 , - 2284 , - 2523 , - 1538 , - 2593 , - 2424 , - 1031 , - 1678 , - 1101 , - 2564 , - 2803 , - 1818 , - 2873 , - 2704 , - 1311 , - 1958 , - 1381 , - 2844 , - 3083 , - 2098 , - 3153 , - 2984 , - 1591 , - 2238 , - 1661 , - 3124 , - 99 , - 2378 , - 169 , - 0 , - 1091 , - 1558 , - 1401 , - 620 , - 2543 , - 514 , - 1189 , - 1240 , - 667 , - 2798 , - 977 , - 1860 , - 2119 , - 1754 , - 765 , - 2480 , - 243 , - 710 , - 553 , - 3100 , - 1695 , - 2994 , - 341 , - 392 , - 3147 , - 1950 , - 129 , - 1012 , - 1271 , - 906 , - 3245 , - 1632 , - 2723 , - 3190 , - 3033 , - 2252 , - 847 , - 2146 , - 2821 , - 2872 , - 2299 , - 1102 , - 2609 , - 164 , - 423 , - 58 , - 2397 , - 784 , - 1875 , - 2342 , - 2185 , - 1404 , - 3327 , - 1298 , - 1973 , - 2024 , - 1451 , - 254 , - 1761 , - 2644 , - 2903 , - 2538 , - 1549 , - 3264 , - 1027 , - 1494 , - 1337 , - 556 , - 2479 , - 450 , - 1125 , - 1176 , - 603 , - 2734 , - 913 , - 1796 , - 2055 , - 1690 , - 701 , - 2416 , - 179 , - 646 , - 489 , - 3036 , - 1631 , - 2930 , - 277 , - 328 , - 3083 , - 1886 , - 65 , - 948 , - 1207 , - 842 , - 3181 , - 1568 , - 2659 , - 3126 , - 2969 , - 2188 , - 783 , - 2082 , - 2757 , - 2808 , - 2235 , - 1038 , - 2545 , - 100 , - 359 , - 3322 , - 2333 , - 720 , - 1811 , - 2278 , - 2121 , - 1340 , - 3263 , - 1234 , - 1909 , - 1960 , - 1387 , - 190 , - 1697 , - 2580 , - 2839 , - 2474 , - 1485 , - 3200 , - 963 , - 1430 , - 1273 , - 492 , - 2415 , - 386 , - 1061 , - 1112 , - 539 , - 2670 , - 849 , - 1732 , - 1991 , - 1626 , - 637 , - 2352 , - 115 , - 582 , - 425 , - 2972 , - 1567 , - 2866 , - 213 , - 264 , - 3019 , - 1822 , - 1 , - 884 , - 1143 , - 778 , - 3117 , - 1504 , - 2595 , - 3062 , - 2905 , - 2124 , - 719 , - 2018 , - 2693 , - 2744 , - 2171 , - 974 , - 2481 , - 36 , - 295 , - 3258 , - 2269 , - 656 , - 1747 , - 2214 , - 2057 , - 1276 , - 3199 , - 1170 , - 1845 , - 1896 , - 1323 , - 126 , - 1633 , - 2516 , - 2775 , - 2410 , - 1421 , - 3136 , - 899 , - 1366 , - 1209 , - 428 , - 2351 , - 322 , - 997 , - 1048 , - 475 , - 2606 , - 785 , - 1668 , - 1927 , - 1562 , - 573 , - 2288 , - 51 , - 518 , - 361 , - 2908 , - 1503 , - 2802 , - 149 , - 200 , - 2955 , - 1758 , - 3265 , - 820 , - 1079 , - 714 , - 3053 , - 1440 , - 2531 , - 2998 , - 2841 , - 2060 , - 655 , - 1954 , - 2629 , - 2680 , - 2107 , - 910 , - 2417 , - 3300 , - 231 , - 3194 , - 2205 , - 592 , - 1683 , - 2150 , - 1993 , - 1212 , - 3135 , - 1106 , - 1781 , - 1832 , - 1259 , - 62 , - 1569 , - 2452 , - 2711 , - 2346 , - 1357 , - 3072 , - 835 , - 1302 , - 1145 , - 364 , - 2287 , - 258 , - 933 , - 984 , - 411 , - 2542 , - 721 , - 1604 , - 1863 , - 1498 , - 509 , - 2224 , - 3315 , - 454 , - 297 , - 2844 , - 1439 , - 2738 , - 85 , - 136 , - 2891 , - 1694 , - 3201 , - 756 , - 1015 , - 650 , - 2989 , - 1376 , - 2467 , - 2934 , - 2777 , - 1996 , - 591 , - 1890 , - 2565 , - 2616 , - 2043 , - 846 , - 2353 , - 3236 , - 167 , - 3130 , - 2141 , - 528 , - 1619 , - 2086 , - 1929 , - 1148 , - 3071 , - 1042 , - 1717 , - 1768 , - 1195 , - 3326 , - 1505 , - 2388 , - 2647 , - 2282 , - 1293 , - 3008 , - 771 , - 1238 , - 1081 , - 300 , - 2223 , - 194 , - 869 , - 920 , - 347 , - 2478 , - 657 , - 1540 , - 1799 , - 1434 , - 445 , - 2160 , - 3251 , - 390 , - 233 , - 2780 , - 1375 , - 2674 , - 21 , - 72 , - 2827 , - 1630 , - 3137 , - 692 , - 951 , - 586 , - 2925 , - 1312 , - 2403 , - 2870 , - 2713 , - 1932 , - 527 , - 1826 , - 2501 , - 2552 , - 1979 , - 782 , - 2289 , - 3172 , - 103 , - 3066 , - 2077 , - 464 , - 1555 , - 2022 , - 1865 , - 1084 , - 3007 , - 978 , - 1653 , - 1704 , - 1131 , - 3262 , - 1441 , - 2324 , - 2583 , - 2218 , - 1229 , - 2944 , - 707 , - 1174 , - 1017 , - 236 , - 2159 , - 130 , - 805 , - 856 , - 283 , - 2414 , - 593 , - 1476 , - 1735 , - 1370 , - 381 , - 2096 , - 3187 , - 326 , - 169 , - 2716 , - 1311 , - 2610 , - 3285 , - 8 , - 2763 , - 1566 , - 3073 , - 628 , - 887 , - 522 , - 2861 , - 1248 , - 2339 , - 2806 , - 2649 , - 1868 , - 463 , - 1762 , - 2437 , - 2488 , - 1915 , - 718 , - 2225 , - 3108 , - 39 , - 3002 , - 2013 , - 400 , - 1491 , - 1958 , - 1801 , - 1020 , - 2943 , - 914 , - 1589 , - 1640 , - 1067 , - 3198 , - 1377 , - 2260 , - 2519 , - 2154 , - 1165 , - 2880 , - 643 , - 1110 , - 953 , - 172 , - 2095 , - 66 , - 741 , - 792 , - 219 , - 2350 , - 529 , - 1412 , - 1671 , - 1306 , - 317 , - 2032 , - 3123 , - 262 , - 105 , - 2652 , - 1247 , - 2546 , - 3221 , - 3272 , - 2699 , - 1502 , - 3009 , - 564 , - 823 , - 458 , - 2797 , - 1184 , - 2275 , - 2742 , - 2585 , - 1804 , - 399 , - 1698 , - 2373 , - 2424 , - 1851 , - 654 , - 2161 , - 3044 , - 3303 , - 2938 , - 1949 , - 336 , - 1427 , - 1894 , - 1737 , - 956 , - 2879 , - 850 , - 1525 , - 1576 , - 1003 , - 3134 , - 1313 , - 2196 , - 2455 , - 2090 , - 1101 , - 2816 , - 579 , - 1046 , - 889 , - 108 , - 2031 , - 2 , - 677 , - 728 , - 155 , - 2286 , - 465 , - 1348 , - 1607 , - 1242 , - 253 , - 1968 , - 3059 , - 198 , - 41 , - 2588 , - 1183 , - 2482 , - 3157 , - 3208 , - 2635 , - 1438 , - 2945 , - 500 , - 759 , - 394 , - 2733 , - 1120 , - 2211 , - 2678 , - 2521 , - 1740 , - 335 , - 1634 , - 2309 , - 2360 , - 1787 , - 590 , - 2097 , - 2980 , - 3239 , - 2874 , - 1885 , - 272 , - 1363 , - 1830 , - 1673 , - 892 , - 2815 , - 786 , - 1461 , - 1512 , - 939 , - 3070 , - 1249 , - 2132 , - 2391 , - 2026 , - 1037 , - 2752 , - 515 , - 982 , - 825 , - 44 , - 1967 , - 3266 , - 613 , - 664 , - 91 , - 2222 , - 401 , - 1284 , - 1543 , - 1178 , - 189 , - 1904 , - 2995 , - 134 , - 3305 , - 2524 , - 1119 , - 2418 , - 3093 , - 3144 , - 2571 , - 1374 , - 2881 , - 436 , - 695 , - 330 , - 2669 , - 1056 , - 2147 , - 2614 , - 2457 , - 1676 , - 271 , - 1570 , - 2245 , - 2296 , - 1723 , - 526 , - 2033 , - 2916 , - 3175 , - 2810 , - 1821 , - 208 , - 1299 , - 1766 , - 1609 , - 828 , - 2751 , - 722 , - 1397 , - 1448 , - 875 , - 3006 , - 1185 , - 2068 , - 2327 , - 1962 , - 973 , - 2688 , - 451 , - 918 , - 761 , - 3308 , - 1903 , - 3202 , - 549 , - 600 , - 27 , - 2158 , - 337 , - 1220 , - 1479 , - 1114 , - 125 , - 1840 , - 2931 , - 70 , - 3241 , - 2460 , - 1055 , - 2354 , - 3029 , - 3080 , - 2507 , - 1310 , - 2817 , - 372 , - 631 , - 266 , - 2605 , - 992 , - 2083 , - 2550 , - 2393 , - 1612 , - 207 , - 1506 , - 2181 , - 2232 , - 1659 , - 462 , - 1969 , - 2852 , - 3111 , - 2746 , - 1757 , - 144 , - 1235 , - 1702 , - 1545 , - 764 , - 2687 , - 658 , - 1333 , - 1384 , - 811 , - 2942 , - 1121 , - 2004 , - 2263 , - 1898 , - 909 , - 2624 , - 387 , - 854 , - 697 , - 3244 , - 1839 , - 3138 , - 485 , - 536 , - 3291 , - 2094 , - 273 , - 1156 , - 1415 , - 1050 , - 61 , - 1776 , - 2867 , - 6 , - 3177 , - 2396 , - 991 , - 2290 , - 2965 , - 3016 , - 2443 , - 1246 , - 2753 , - 308 , - 567 , - 202 , - 2541 , - 928 , - 2019 , - 2486 , - 2329 , - 1548 , - 143 , - 1442 , - 2117 , - 2168 , - 1595 , - 398 , - 1905 , - 2788 , - 3047 , - 2682 , - 1693 , - 80 , - 1171 , - 1638 , - 1481 , - 700 , - 2623 , - 594 , - 1269 , - 1320 , - 747 , - 2878 , - 1057 , - 1940 , - 2199 , - 1834 , - 845 , - 2560 , - 323 , - 790 , - 633 , - 3180 , - 1775 , - 3074 , - 421 , - 472 , - 3227 , - 2030 , - 209 , - 1092 , - 1351 , - 986 , - 3325 , - 1712 , - 2803 , - 3270 , - 3113 , - 2332 , - 927 , - 2226 , - 2901 , - 2952 , - 2379 , - 1182 , - 2689 , - 244 , - 503 , - 138 , - 2477 , - 864 , - 1955 , - 2422 , - 2265 , - 1484 , - 79 , - 1378 , - 2053 , - 2104 , - 1531 , - 334 , - 1841 , - 2724 , - 2983 , - 2618 , - 1629 , - 16 , - 1107 , - 1574 , - 1417 , - 636 , - 2559 , - 530 , - 1205 , - 1256 , - 683 , - 2814 , - 993 , - 1876 , - 2135 , - 1770 , - 781 , - 2496 , - 259 , - 726 , - 569 , - 3116 , - 1711 , - 3010 , - 357 , - 408 , - 3163 , - 1966 , - 145 , - 1028 , - 1287 , - 922 , - 3261 , - 1648 , - 2739 , - 3206 , - 3049 , - 2268 , - 863 , - 2162 , - 2837 , - 2888 , - 2315 , - 1118 , - 2625 , - 180 , - 439 , - 74 , - 2413 , - 800 , - 1891 , - 2358 , - 2201 , - 1420 , - 15 , - 1314 , - 1989 , - 2040 , - 1467 , - 270 , - 1777 , - 2660 , - 2919 , - 2554 , - 1565 , - 3280 , - 1043 , - 1510 , - 1353 , - 572 , - 2495 , - 466 , - 1141 , - 1192 , - 619 , - 2750 , - 929 , - 1812 , - 2071 , - 1706 , - 717 , - 2432 , - 195 , - 662 , - 505 , - 3052 , - 1647 , - 2946 , - 293 , - 344 , - 3099 , - 1902 , - 81 , - 964 , - 1223 , - 858 , - 3197 , - 1584 , - 2675 , - 3142 , - 2985 , - 2204 , - 799 , - 2098 , - 2773 , - 2824 , - 2251 , - 1054 , - 2561 , - 116 , - 375 , - 10 , - 2349 , - 736 , - 1827 , - 2294 , - 2137 , - 1356 , - 3279 , - 1250 , - 1925 , - 1976 , - 1403 , - 206 , - 1713 , - 2596 , - 2855 , - 2490 , - 1501 , - 3216 , - 979 , - 1446 , - 1289 , - 508 , - 2431 , - 402 , - 1077 , - 1128 , - 555 , - 2686 , - 865 , - 1748 , - 2007 , - 1642 , - 653 , - 2368 , - 131 , - 598 , - 441 , - 2988 , - 1583 , - 2882 , - 229 , - 280 , - 3035 , - 1838 , - 17 , - 900 , - 1159 , - 794 , - 3133 , - 1520 , - 2611 , - 3078 , - 2921 , - 2140 , - 735 , - 2034 , - 2709 , - 2760 , - 2187 , - 990 , - 2497 , - 52 , - 311 , - 3274 , - 2285 , - 672 , - 1763 , - 2230 , - 2073 , - 1292 , - 3215 , - 1186 , - 1861 , - 1912 , - 1339 , - 142 , - 1649 , - 2532 , - 2791 , - 2426 , - 1437 , - 3152 , - 915 , - 1382 , - 1225 , - 444 , - 2367 , - 338 , - 1013 , - 1064 , - 491 , - 2622 , - 801 , - 1684 , - 1943 , - 1578 , - 589 , - 2304 , - 67 , - 534 , - 377 , - 2924 , - 1519 , - 2818 , - 165 , - 216 , - 2971 , - 1774 , - 3281 , - 836 , - 1095 , - 730 , - 3069 , - 1456 , - 2547 , - 3014 , - 2857 , - 2076 , - 671 , - 1970 , - 2645 , - 2696 , - 2123 , - 926 , - 2433 , - 3316 , - 247 , - 3210 , - 2221 , - 608 , - 1699 , - 2166 , - 2009 , - 1228 , - 3151 , - 1122 , - 1797 , - 1848 , - 1275 , - 78 , - 1585 , - 2468 , - 2727 , - 2362 , - 1373 , - 3088 , - 851 , - 1318 , - 1161 , - 380 , - 2303 , - 274 , - 949 , - 1000 , - 427 , - 2558 , - 737 , - 1620 , - 1879 , - 1514 , - 525 , - 2240 , - 3 , - 470 , - 313 , - 2860 , - 1455 , - 2754 , - 101 , - 152 , - 2907 , - 1710 , - 3217 , - 772 , - 1031 , - 666 , - 3005 , - 1392 , - 2483 , - 2950 , - 2793 , - 2012 , - 607 , - 1906 , - 2581 , - 2632 , - 2059 , - 862 , - 2369 , - 3252 , - 183 , - 3146 , - 2157 , - 544 , - 1635 , - 2102 , - 1945 , - 1164 , - 3087 , - 1058 , - 1733 , - 1784 , - 1211 , - 14 , - 1521 , - 2404 , - 2663 , - 2298 , - 1309 , - 3024 , - 787 , - 1254 , - 1097 , - 316 , - 2239 , - 210 , - 885 , - 936 , - 363 , - 2494 , - 673 , - 1556 , - 1815 , - 1450 , - 461 , - 2176 , - 3267 , - 406 , - 249 , - 2796 , - 1391 , - 2690 , - 37 , - 88 , - 2843 , - 1646 , - 3153 , - 708 , - 967 , - 602 , - 2941 , - 1328 , - 2419 , - 2886 , - 2729 , - 1948 , - 543 , - 1842 , - 2517 , - 2568 , - 1995 , - 798 , - 2305 , - 3188 , - 119 , - 3082 , - 2093 , - 480 , - 1571 , - 2038 , - 1881 , - 1100 , - 3023 , - 994 , - 1669 , - 1720 , - 1147 , - 3278 , - 1457 , - 2340 , - 2599 , - 2234 , - 1245 , - 2960 , - 723 , - 1190 , - 1033 , - 252 , - 2175 , - 146 , - 821 , - 872 , - 299 , - 2430 , - 609 , - 1492 , - 1751 , - 1386 , - 397 , - 2112 , - 3203 , - 342 , - 185 , - 2732 , - 1327 , - 2626 , - 3301 , - 24 , - 2779 , - 1582 , - 3089 , - 644 , - 903 , - 538 , - 2877 , - 1264 , - 2355 , - 2822 , - 2665 , - 1884 , - 479 , - 1778 , - 2453 , - 2504 , - 1931 , - 734 , - 2241 , - 3124 , - 55 , - 3018 , - 2029 , - 416 , - 1507 , - 1974 , - 1817 , - 1036 , - 2959 , - 930 , - 1605 , - 1656 , - 1083 , - 3214 , - 1393 , - 2276 , - 2535 , - 2170 , - 1181 , - 2896 , - 659 , - 1126 , - 969 , - 188 , - 2111 , - 82 , - 757 , - 808 , - 235 , - 2366 , - 545 , - 1428 , - 1687 , - 1322 , - 333 , - 2048 , - 3139 , - 278 , - 121 , - 2668 , - 1263 , - 2562 , - 3237 , - 3288 , - 2715 , - 1518 , - 3025 , - 580 , - 839 , - 474 , - 2813 , - 1200 , - 2291 , - 2758 , - 2601 , - 1820 , - 415 , - 1714 , - 2389 , - 2440 , - 1867 , - 670 , - 2177 , - 3060 , - 3319 , - 2954 , - 1965 , - 352 , - 1443 , - 1910 , - 1753 , - 972 , - 2895 , - 866 , - 1541 , - 1592 , - 1019 , - 3150 , - 1329 , - 2212 , - 2471 , - 2106 , - 1117 , - 2832 , - 595 , - 1062 , - 905 , - 124 , - 2047 , - 18 , - 693 , - 744 , - 171 , - 2302 , - 481 , - 1364 , - 1623 , - 1258 , - 269 , - 1984 , - 3075 , - 214 , - 57 , - 2604 , - 1199 , - 2498 , - 3173 , - 3224 , - 2651 , - 1454 , - 2961 , - 516 , - 775 , - 410 , - 2749 , - 1136 , - 2227 , - 2694 , - 2537 , - 1756 , - 351 , - 1650 , - 2325 , - 2376 , - 1803 , - 606 , - 2113 , - 2996 , - 3255 , - 2890 , - 1901 , - 288 , - 1379 , - 1846 , - 1689 , - 908 , - 2831 , - 802 , - 1477 , - 1528 , - 955 , - 3086 , - 1265 , - 2148 , - 2407 , - 2042 , - 1053 , - 2768 , - 531 , - 998 , - 841 , - 60 , - 1983 , - 3282 , - 629 , - 680 , - 107 , - 2238 , - 417 , - 1300 , - 1559 , - 1194 , - 205 , - 1920 , - 3011 , - 150 , - 3321 , - 2540 , - 1135 , - 2434 , - 3109 , - 3160 , - 2587 , - 1390 , - 2897 , - 452 , - 711 , - 346 , - 2685 , - 1072 , - 2163 , - 2630 , - 2473 , - 1692 , - 287 , - 1586 , - 2261 , - 2312 , - 1739 , - 542 , - 2049 , - 2932 , - 3191 , - 2826 , - 1837 , - 224 , - 1315 , - 1782 , - 1625 , - 844 , - 2767 , - 738 , - 1413 , - 1464 , - 891 , - 3022 , - 1201 , - 2084 , - 2343 , - 1978 , - 989 , - 2704 , - 467 , - 934 , - 777 , - 3324 , - 1919 , - 3218 , - 565 , - 616 , - 43 , - 2174 , - 353 , - 1236 , - 1495 , - 1130 , - 141 , - 1856 , - 2947 , - 86 , - 3257 , - 2476 , - 1071 , - 2370 , - 3045 , - 3096 , - 2523 , - 1326 , - 2833 , - 388 , - 647 , - 282 , - 2621 , - 1008 , - 2099 , - 2566 , - 2409 , - 1628 , - 223 , - 1522 , - 2197 , - 2248 , - 1675 , - 478 , - 1985 , - 2868 , - 3127 , - 2762 , - 1773 , - 160 , - 1251 , - 1718 , - 1561 , - 780 , - 2703 , - 674 , - 1349 , - 1400 , - 827 , - 2958 , - 1137 , - 2020 , - 2279 , - 1914 , - 925 , - 2640 , - 403 , - 870 , - 713 , - 3260 , - 1855 , - 3154 , - 501 , - 552 , - 3307 , - 2110 , - 289 , - 1172 , - 1431 , - 1066 , - 77 , - 1792 , - 2883 , - 22 , - 3193 , - 2412 , - 1007 , - 2306 , - 2981 , - 3032 , - 2459 , - 1262 , - 2769 , - 324 , - 583 , - 218 , - 2557 , - 944 , - 2035 , - 2502 , - 2345 , - 1564 , - 159 , - 1458 , - 2133 , - 2184 , - 1611 , - 414 , - 1921 , - 2804 , - 3063 , - 2698 , - 1709 , - 96 , - 1187 , - 1654 , - 1497 , - 716 , - 2639 , - 610 , - 1285 , - 1336 , - 763 , - 2894 , - 1073 , - 1956 , - 2215 , - 1850 , - 861 , - 2576 , - 339 , - 806 , - 649 , - 3196 , - 1791 , - 3090 , - 437 , - 488 , - 3243 , - 2046 , - 225 , - 1108 , - 1367 , - 1002 , - 13 , - 1728 , - 2819 , - 3286 , - 3129 , - 2348 , - 943 , - 2242 , - 2917 , - 2968 , - 2395 , - 1198 , - 2705 , - 260 , - 519 , - 154 , - 2493 , - 880 , - 1971 , - 2438 , - 2281 , - 1500 , - 95 , - 1394 , - 2069 , - 2120 , - 1547 , - 350 , - 1857 , - 2740 , - 2999 , - 2634 , - 1645 , - 32 , - 1123 , - 1590 , - 1433 , - 652 , - 2575 , - 546 , - 1221 , - 1272 , - 699 , - 2830 , - 1009 , - 1892 , - 2151 , - 1786 , - 797 , - 2512 , - 275 , - 742 , - 585 , - 3132 , - 1727 , - 3026 , - 373 , - 424 , - 3179 , - 1982 , - 161 , - 1044 , - 1303 , - 938 , - 3277 , - 1664 , - 2755 , - 3222 , - 3065 , - 2284 , - 879 , - 2178 , - 2853 , - 2904 , - 2331 , - 1134 , - 2641 , - 196 , - 455 , - 90 , - 2429 , - 816 , - 1907 , - 2374 , - 2217 , - 1436 , - 31 , - 1330 , - 2005 , - 2056 , - 1483 , - 286 , - 1793 , - 2676 , - 2935 , - 2570 , - 1581 , - 3296 , - 1059 , - 1526 , - 1369 , - 588 , - 2511 , - 482 , - 1157 , - 1208 , - 635 , - 2766 , - 945 , - 1828 , - 2087 , - 1722 , - 733 , - 2448 , - 211 , - 678 , - 521 , - 3068 , - 1663 , - 2962 , - 309 , - 360 , - 3115 , - 1918 , - 97 , - 980 , - 1239 , - 874 , - 3213 , - 1600 , - 2691 , - 3158 , - 3001 , - 2220 , - 815 , - 2114 , - 2789 , - 2840 , - 2267 , - 1070 , - 2577 , - 132 , - 391 , - 26 , - 2365 , - 752 , - 1843 , - 2310 , - 2153 , - 1372 , - 3295 , - 1266 , - 1941 , - 1992 , - 1419 , - 222 , - 1729 , - 2612 , - 2871 , - 2506 , - 1517 , - 3232 , - 995 , - 1462 , - 1305 , - 524 , - 2447 , - 418 , - 1093 , - 1144 , - 571 , - 2702 , - 881 , - 1764 , - 2023 , - 1658 , - 669 , - 2384 , - 147 , - 614 , - 457 , - 3004 , - 1599 , - 2898 , - 245 , - 296 , - 3051 , - 1854 , - 33 , - 916 , - 1175 , - 810 , - 3149 , - 1536 , - 2627 , - 3094 , - 2937 , - 2156 , - 751 , - 2050 , - 2725 , - 2776 , - 2203 , - 1006 , - 2513 , - 68 , - 327 , - 3290 , - 2301 , - 688 , - 1779 , - 2246 , - 2089 , - 1308 , - 3231 , - 1202 , - 1877 , - 1928 , - 1355 , - 158 , - 1665 , - 2548 , - 2807 , - 2442 , - 1453 , - 3168 , - 931 , - 1398 , - 1241 , - 460 , - 2383 , - 354 , - 1029 , - 1080 , - 507 , - 2638 , - 817 , - 1700 , - 1959 , - 1594 , - 605 , - 2320 , - 83 , - 550 , - 393 , - 2940 , - 1535 , - 2834 , - 181 , - 232 , - 2987 , - 1790 , - 3297 , - 852 , - 1111 , - 746 , - 3085 , - 1472 , - 2563 , - 3030 , - 2873 , - 2092 , - 687 , - 1986 , - 2661 , - 2712 , - 2139 , - 942 , - 2449 , - 4 , - 263 , - 3226 , - 2237 , - 624 , - 1715 , - 2182 , - 2025 , - 1244 , - 3167 , - 1138 , - 1813 , - 1864 , - 1291 , - 94 , - 1601 , - 2484 , - 2743 , - 2378 , - 1389 , - 3104 , - 867 , - 1334 , - 1177 , - 396 , - 2319 , - 290 , - 965 , - 1016 , - 443 , - 2574 , - 753 , - 1636 , - 1895 , - 1530 , - 541 , - 2256 , - 19 , - 486 , - 329 , - 2876 , - 1471 , - 2770 , - 117 , - 168 , - 2923 , - 1726 , - 3233 , - 788 , - 1047 , - 682 , - 3021 , - 1408 , - 2499 , - 2966 , - 2809 , - 2028 , - 623 , - 1922 , - 2597 , - 2648 , - 2075 , - 878 , - 2385 , - 3268 , - 199 , - 3162 , - 2173 , - 560 , - 1651 , - 2118 , - 1961 , - 1180 , - 3103 , - 1074 , - 1749 , - 1800 , - 1227 , - 30 , - 1537 , - 2420 , - 2679 , - 2314 , - 1325 , - 3040 , - 803 , - 1270 , - 1113 , - 332 , - 2255 , - 226 , - 901 , - 952 , - 379 , - 2510 , - 689 , - 1572 , - 1831 , - 1466 , - 477 , - 2192 , - 3283 , - 422 , - 265 , - 2812 , - 1407 , - 2706 , - 53 , - 104 , - 2859 , - 1662 , - 3169 , - 724 , - 983 , - 618 , - 2957 , - 1344 , - 2435 , - 2902 , - 2745 , - 1964 , - 559 , - 1858 , - 2533 , - 2584 , - 2011 , - 814 , - 2321 , - 3204 , - 135 , - 3098 , - 2109 , - 496 , - 1587 , - 2054 , - 1897 , - 1116 , - 3039 , - 1010 , - 1685 , - 1736 , - 1163 , - 3294 , - 1473 , - 2356 , - 2615 , - 2250 , - 1261 , - 2976 , - 739 , - 1206 , - 1049 , - 268 , - 2191 , - 162 , - 837 , - 888 , - 315 , - 2446 , - 625 , - 1508 , - 1767 , - 1402 , - 413 , - 2128 , - 3219 , - 358 , - 201 , - 2748 , - 1343 , - 2642 , - 3317 , - 40 , - 2795 , - 1598 , - 3105 , - 660 , - 919 , - 554 , - 2893 , - 1280 , - 2371 , - 2838 , - 2681 , - 1900 , - 495 , - 1794 , - 2469 , - 2520 , - 1947 , - 750 , - 2257 , - 3140 , - 71 , - 3034 , - 2045 , - 432 , - 1523 , - 1990 , - 1833 , - 1052 , - 2975 , - 946 , - 1621 , - 1672 , - 1099 , - 3230 , - 1409 , - 2292 , - 2551 , - 2186 , - 1197 , - 2912 , - 675 , - 1142 , - 985 , - 204 , - 2127 , - 98 , - 773 , - 824 , - 251 , - 2382 , - 561 , - 1444 , - 1703 , - 1338 , - 349 , - 2064 , - 3155 , - 294 , - 137 , - 2684 , - 1279 , - 2578 , - 3253 , - 3304 , - 2731 , - 1534 , - 3041 , - 596 , - 855 , - 490 , - 2829 , - 1216 , - 2307 , - 2774 , - 2617 , - 1836 , - 431 , - 1730 , - 2405 , - 2456 , - 1883 , - 686 , - 2193 , - 3076 , - 7 , - 2970 , - 1981 , - 368 , - 1459 , - 1926 , - 1769 , - 988 , - 2911 , - 882 , - 1557 , - 1608 , - 1035 , - 3166 , - 1345 , - 2228 , - 2487 , - 2122 , - 1133 , - 2848 , - 611 , - 1078 , - 921 , - 140 , - 2063 , - 34 , - 709 , - 760 , - 187 , - 2318 , - 497 , - 1380 , - 1639 , - 1274 , - 285 , - 2000 , - 3091 , - 230 , - 73 , - 2620 , - 1215 , - 2514 , - 3189 , - 3240 , - 2667 , - 1470 , - 2977 , - 532 , - 791 , - 426 , - 2765 , - 1152 , - 2243 , - 2710 , - 2553 , - 1772 , - 367 , - 1666 , - 2341 , - 2392 , - 1819 , - 622 , - 2129 , - 3012 , - 3271 , - 2906 , - 1917 , - 304 , - 1395 , - 1862 , - 1705 , - 924 , - 2847 , - 818 , - 1493 , - 1544 , - 971 , - 3102 , - 1281 , - 2164 , - 2423 , - 2058 , - 1069 , - 2784 , - 547 , - 1014 , - 857 , - 76 , - 1999 , - 3298 , - 645 , - 696 , - 123 , - 2254 , - 433 , - 1316 , - 1575 , - 1210 , - 221 , - 1936 , - 3027 , - 166 , - 9 , - 2556 , - 1151 , - 2450 , - 3125 , - 3176 , - 2603 , - 1406 , - 2913 , - 468 , - 727 , - 362 , - 2701 , - 1088 , - 2179 , - 2646 , - 2489 , - 1708 , - 303 , - 1602 , - 2277 , - 2328 , - 1755 , - 558 , - 2065 , - 2948 , - 3207 , - 2842 , - 1853 , - 240 , - 1331 , - 1798 , - 1641 , - 860 , - 2783 , - 754 , - 1429 , - 1480 , - 907 , - 3038 , - 1217 , - 2100 , - 2359 , - 1994 , - 1005 , - 2720 , - 483 , - 950 , - 793 , - 12 , - 1935 , - 3234 , - 581 , - 632 , - 59 , - 2190 , - 369 , - 1252 , - 1511 , - 1146 , - 157 , - 1872 , - 2963 , - 102 , - 3273 , - 2492 , - 1087 , - 2386 , - 3061 , - 3112 , - 2539 , - 1342 , - 2849 , - 404 , - 663 , - 298 , - 2637 , - 1024 , - 2115 , - 2582 , - 2425 , - 1644 , - 239 , - 1538 , - 2213 , - 2264 , - 1691 , - 494 , - 2001 , - 2884 , - 3143 , - 2778 , - 1789 , - 176 , - 1267 , - 1734 , - 1577 , - 796 , - 2719 , - 690 , - 1365 , - 1416 , - 843 , - 2974 , - 1153 , - 2036 , - 2295 , - 1930 , - 941 , - 2656 , - 419 , - 886 , - 729 , - 3276 , - 1871 , - 3170 , - 517 , - 568 , - 3323 , - 2126 , - 305 , - 1188 , - 1447 , - 1082 , - 93 , - 1808 , - 2899 , - 38 , - 3209 , - 2428 , - 1023 , - 2322 , - 2997 , - 3048 , - 2475 , - 1278 , - 2785 , - 340 , - 599 , - 234 , - 2573 , - 960 , - 2051 , - 2518 , - 2361 , - 1580 , - 175 , - 1474 , - 2149 , - 2200 , - 1627 , - 430 , - 1937 , - 2820 , - 3079 , - 2714 , - 1725 , - 112 , - 1203 , - 1670 , - 1513 , - 732 , - 2655 , - 626 , - 1301 , - 1352 , - 779 , - 2910 , - 1089 , - 1972 , - 2231 , - 1866 , - 877 , - 2592 , - 355 , - 822 , - 665 , - 3212 , - 1807 , - 3106 , - 453 , - 504 , - 3259 , - 2062 , - 241 , - 1124 , - 1383 , - 1018 , - 29 , - 1744 , - 2835 , - 3302 , - 3145 , - 2364 , - 959 , - 2258 , - 2933 , - 2984 , - 2411 , - 1214 , - 2721 , - 276 , - 535 , - 170 , - 2509 , - 896 , - 1987 , - 2454 , - 2297 , - 1516 , - 111 , - 1410 , - 2085 , - 2136 , - 1563 , - 366 , - 1873 , - 2756 , - 3015 , - 2650 , - 1661 , - 48 , - 1139 , - 1606 , - 1449 , - 668 , - 2591 , - 562 , - 1237 , - 1288 , - 715 , - 2846 , - 1025 , - 1908 , - 2167 , - 1802 , - 813 , - 2528 , - 291 , - 758 , - 601 , - 3148 , - 1743 , - 3042 , - 389 , - 440 , - 3195 , - 1998 , - 177 , - 1060 , - 1319 , - 954 , - 3293 , - 1680 , - 2771 , - 3238 , - 3081 , - 2300 , - 895 , - 2194 , - 2869 , - 2920 , - 2347 , - 1150 , - 2657 , - 212 , - 471 , - 106 , - 2445 , - 832 , - 1923 , - 2390 , - 2233 , - 1452 , - 47 , - 1346 , - 2021 , - 2072 , - 1499 , - 302 , - 1809 , - 2692 , - 2951 , - 2586 , - 1597 , - 3312 , - 1075 , - 1542 , - 1385 , - 604 , - 2527 , - 498 , - 1173 , - 1224 , - 651 , - 2782 , - 961 , - 1844 , - 2103 , - 1738 , - 749 , - 2464 , - 227 , - 694 , - 537 , - 3084 , - 1679 , - 2978 , - 325 , - 376 , - 3131 , - 1934 , - 113 , - 996 , - 1255 , - 890 , - 3229 , - 1616 , - 2707 , - 3174 , - 3017 , - 2236 , - 831 , - 2130 , - 2805 , - 2856 , - 2283 , - 1086 , - 2593 , - 148 , - 407 , - 42 , - 2381 , - 768 , - 1859 , - 2326 , - 2169 , - 1388 , - 3311 , - 1282 , - 1957 , - 2008 , - 1435 , - 238 , - 1745 , - 2628 , - 2887 , - 2522 , - 1533 , - 3248 , - 1011 , - 1478 , - 1321 , - 540 , - 2463 , - 434 , - 1109 , - 1160 , - 587 , - 2718 , - 897 , - 1780 , - 2039 , - 1674 , - 685 , - 2400 , - 163 , - 630 , - 473 , - 3020 , - 1615 , - 2914 , - 261 , - 312 , - 3067 , - 1870 , - 49 , - 932 , - 1191 , - 826 , - 3165 , - 1552 , - 2643 , - 3110 , - 2953 , - 2172 , - 767 , - 2066 , - 2741 , - 2792 , - 2219 , - 1022 , - 2529 , - 84 , - 343 , - 3306 , - 2317 , - 704 , - 1795 , - 2262 , - 2105 , - 1324 , - 3247 , - 1218 , - 1893 , - 1944 , - 1371 , - 174 , - 1681 , - 2564 , - 2823 , - 2458 , - 1469 , - 3184 , - 947 , - 1414 , - 1257 , - 476 , - 2399 , - 370 , - 1045 , - 1096 , - 523 , - 2654 , - 833 , - 1716 , - 1975 , - 1610 , - 621 , - 2336 , - 99 , - 566 , - 409 , - 2956 , - 1551 , - 2850 , - 197 , - 248 , - 3003 , - 1806 , - 3313 , - 868 , - 1127 , - 762 , - 3101 , - 1488 , - 2579 , - 3046 , - 2889 , - 2108 , - 703 , - 2002 , - 2677 , - 2728 , - 2155 , - 958 , - 2465 , - 20 , - 279 , - 3242 , - 2253 , - 640 , - 1731 , - 2198 , - 2041 , - 1260 , - 3183 , - 1154 , - 1829 , - 1880 , - 1307 , - 110 , - 1617 , - 2500 , - 2759 , - 2394 , - 1405 , - 3120 , - 883 , - 1350 , - 1193 , - 412 , - 2335 , - 306 , - 981 , - 1032 , - 459 , - 2590 , - 769 , - 1652 , - 1911 , - 1546 , - 557 , - 2272 , - 35 , - 502 , - 345 , - 2892 , - 1487 , - 2786 , - 133 , - 184 , - 2939 , - 1742 , - 3249 , - 804 , - 1063 , - 698 , - 3037 , - 1424 , - 2515 , - 2982 , - 2825 , - 2044 , - 639 , - 1938 , - 2613 , - 2664 , - 2091 , - 894 , - 2401 , - 3284 , - 215 , - 3178 , - 2189 , - 576 , - 1667 , - 2134 , - 1977 , - 1196 , - 3119 , - 1090 , - 1765 , - 1816 , - 1243 , - 46 , - 1553 , - 2436 , - 2695 , - 2330 , - 1341 , - 3056 , - 819 , - 1286 , - 1129 , - 348 , - 2271 , - 242 , - 917 , - 968 , - 395 , - 2526 , - 705 , - 1588 , - 1847 , - 1482 , - 493 , - 2208 , - 3299 , - 438 , - 281 , - 2828 , - 1423 , - 2722 , - 69 , - 120 , - 2875 , - 1678 , - 3185 , - 740 , - 999 , - 634 , - 2973 , - 1360 , - 2451 , - 2918 , - 2761 , - 1980 , - 575 , - 1874 , - 2549 , - 2600 , - 2027 , - 830 , - 2337 , - 3220 , - 151 , - 3114 , - 2125 , - 512 , - 1603 , - 2070 , - 1913 , - 1132 , - 3055 , - 1026 , - 1701 , - 1752 , - 1179 , - 3310 , - 1489 , - 2372 , - 2631 , - 2266 , - 1277 , - 2992 , - 755 , - 1222 , - 1065 , - 284 , - 2207 , - 178 , - 853 , - 904 , - 331 , - 2462 , - 641 , - 1524 , - 1783 , - 1418 , - 429 , - 2144 , - 3235 , - 374 , - 217 , - 2764 , - 1359 , - 2658 , - 5 , - 56 , - 2811 , - 1614 , - 3121 , - 676 , - 935 , - 570 , - 2909 , - 1296 , - 2387 , - 2854 , - 2697 , - 1916 , - 511 , - 1810 , - 2485 , - 2536 , - 1963 , - 766 , - 2273 , - 3156 , - 87 , - 3050 , - 2061 , - 448 , - 1539 , - 2006 , - 1849 , - 1068 , - 2991 , - 962 , - 1637 , - 1688 , - 1115 , - 3246 , - 1425 , - 2308 , - 2567 , - 2202 , - 1213 , - 2928 , - 691 , - 1158 , - 1001 , - 220 , - 2143 , - 114 , - 789 , - 840 , - 267 , - 2398 , - 577 , - 1460 , - 1719 , - 1354 , - 365 , - 2080 , - 3171 , - 310 , - 153 , - 2700 , - 1295 , - 2594 , - 3269 , - 3320 , - 2747 , - 1550 , - 3057 , - 612 , - 871 , - 506 , - 2845 , - 1232 , - 2323 , - 2790 , - 2633 , - 1852 , - 447 , - 1746 , - 2421 , - 2472 , - 1899 , - 702 , - 2209 , - 3092 , - 23 , - 2986 , - 1997 , - 384 , - 1475 , - 1942 , - 1785 , - 1004 , - 2927 , - 898 , - 1573 , - 1624 , - 1051 , - 3182 , - 1361 , - 2244 , - 2503 , - 2138 , - 1149 , - 2864 , - 627 , - 1094 , - 937 , - 156 , - 2079 , - 50 , - 725 , - 776 , - 203 , - 2334 , - 513 , - 1396 , - 1655 , - 1290 , - 301 , - 2016 , - 3107 , - 246 , - 89 , - 2636 , - 1231 , - 2530 , - 3205 , - 3256 , - 2683 , - 1486 , - 2993 , - 548 , - 807 , - 442 , - 2781 , - 1168 , - 2259 , - 2726 , - 2569 , - 1788 , - 383 , - 1682 , - 2357 , - 2408 , - 1835 , - 638 , - 2145 , - 3028 , - 3287 , - 2922 , - 1933 , - 320 , - 1411 , - 1878 , - 1721 , - 940 , - 2863 , - 834 , - 1509 , - 1560 , - 987 , - 3118 , - 1297 , - 2180 , - 2439 , - 2074 , - 1085 , - 2800 , - 563 , - 1030 , - 873 , - 92 , - 2015 , - 3314 , - 661 , - 712 , - 139 , - 2270 , - 449 , - 1332 , - 1591 , - 1226 , - 237 , - 1952 , - 3043 , - 182 , - 25 , - 2572 , - 1167 , - 2466 , - 3141 , - 3192 , - 2619 , - 1422 , - 2929 , - 484 , - 743 , - 378 , - 2717 , - 1104 , - 2195 , - 2662 , - 2505 , - 1724 , - 319 , - 1618 , - 2293 , - 2344 , - 1771 , - 574 , - 2081 , - 2964 , - 3223 , - 2858 , - 1869 , - 256 , - 1347 , - 1814 , - 1657 , - 876 , - 2799 , - 770 , - 1445 , - 1496 , - 923 , - 3054 , - 1233 , - 2116 , - 2375 , - 2010 , - 1021 , - 2736 , - 499 , - 966 , - 809 , - 28 , - 1951 , - 3250 , - 597 , - 648 , - 75 , - 2206 , - 385 , - 1268 , - 1527 , - 1162 , - 173 , - 1888 , - 2979 , - 118 , - 3289 , - 2508 , - 1103 , - 2402 , - 3077 , - 3128 , - 2555 , - 1358 , - 2865 , - 420 , - 679 , - 314 , - 2653 , - 1040 , - 2131 , - 2598 , - 2441 , - 1660 , - 255 , - 1554 , - 2229 , - 2280 , - 1707 , - 510 , - 2017 , - 2900 , - 3159 , - 2794 , - 1805 , - 192 , - 1283 , - 1750 , - 1593 , - 812 , - 2735 , - 706 , - 1381 , - 1432 , - 859 , - 2990 , - 1169 , - 2052 , - 2311 , - 1946 , - 957 , - 2672 , - 435 , - 902 , - 745 , - 3292 , - 1887 , - 3186 , - 533 , - 584 , - 11 , - 2142 , - 321 , - 1204 , - 1463 , - 1098 , - 109 , - 1824 , - 2915 , - 54 , - 3225 , - 2444 , - 1039 , - 2338 , - 3013 , - 3064 , - 2491 , - 1294 , - 2801 , - 356 , - 615 , - 250 , - 2589 , - 976 , - 2067 , - 2534 , - 2377 , - 1596 , - 191 , - 1490 , - 2165 , - 2216 , - 1643 , - 446 , - 1953 , - 2836 , - 3095 , - 2730 , - 1741 , - 128 , - 1219 , - 1686 , - 1529 , - 748 , - 2671 , - 642 , - 1317 , - 1368 , - 795 , - 2926 , - 1105 , - 1988 , - 2247 , - 1882 , - 893 , - 2608 , - 371 , - 838 , - 681 , - 3228 , - 1823 , - 3122 , - 469 , - 520 , - 3275 , - 2078 , - 257 , - 1140 , - 1399 , - 1034 , - 45 , - 1760 , - 2851 , - 3318 , - 3161 , - 2380 , - 975 , - 2274 , - 2949 , - 3000 , - 2427 , - 1230 , - 2737 , - 292 , - 551 , - 186 , - 2525 , - 912 , - 2003 , - 2470 , - 2313 , - 1532 , - 127 , - 1426 , - 2101 , - 2152 , - 1579 , - 382 , - 1889 , - 2772 , - 3031 , - 2666 , - 1677 , - 64 , - 1155 , - 1622 , - 1465 , - 684 , - 2607 , - 578 , - 1253 , - 1304 , - 731 , - 2862 , - 1041 , - 1924 , - 2183 , - 1818 , - 829 , - 2544 , - 307 , - 774 , - 617 , - 3164 , - 1759 , - 3058 , - 405 , - 456 , - 3211 , - 2014 , - 193 , - 1076 , - 1335 , - 970 , - 3309 , - 1696 , - 2787 , - 3254 , - 3097 , - 2316 , - 911 , - 2210 , - 2885 , - 2936 , - 2363 , - 1166 , - 2673 , - 228 , - 487 , - 122 , - 2461 , - 848 , - 1939 , - 2406 , - 2249 , - 1468 , - 63 , - 1362 , - 2037 , - 2088 , - 1515 , - 318 , - 1825 , - 2708 , - 2967 , - 2602 , - 1613 , - 0 , - 927 , - 582 , - 2357 , - 2860 , - 2091 , - 50 , - 129 , - 2328 , - 3255 , - 2910 , - 1293 , - 1796 , - 1027 , - 2378 , - 2457 , - 1264 , - 2191 , - 1846 , - 229 , - 732 , - 3355 , - 1314 , - 1393 , - 200 , - 1127 , - 782 , - 2557 , - 3060 , - 2291 , - 250 , - 329 , - 2528 , - 63 , - 3110 , - 1493 , - 1996 , - 1227 , - 2578 , - 2657 , - 1464 , - 2391 , - 2046 , - 429 , - 932 , - 163 , - 1514 , - 1593 , - 400 , - 1327 , - 982 , - 2757 , - 3260 , - 2491 , - 450 , - 529 , - 2728 , - 263 , - 3310 , - 1693 , - 2196 , - 1427 , - 2778 , - 2857 , - 1664 , - 2591 , - 2246 , - 629 , - 1132 , - 363 , - 1714 , - 1793 , - 600 , - 1527 , - 1182 , - 2957 , - 68 , - 2691 , - 650 , - 729 , - 2928 , - 463 , - 118 , - 1893 , - 2396 , - 1627 , - 2978 , - 3057 , - 1864 , - 2791 , - 2446 , - 829 , - 1332 , - 563 , - 1914 , - 1993 , - 800 , - 1727 , - 1382 , - 3157 , - 268 , - 2891 , - 850 , - 929 , - 3128 , - 663 , - 318 , - 2093 , - 2596 , - 1827 , - 3178 , - 3257 , - 2064 , - 2991 , - 2646 , - 1029 , - 1532 , - 763 , - 2114 , - 2193 , - 1000 , - 1927 , - 1582 , - 3357 , - 468 , - 3091 , - 1050 , - 1129 , - 3328 , - 863 , - 518 , - 2293 , - 2796 , - 2027 , - 3378 , - 65 , - 2264 , - 3191 , - 2846 , - 1229 , - 1732 , - 963 , - 2314 , - 2393 , - 1200 , - 2127 , - 1782 , - 165 , - 668 , - 3291 , - 1250 , - 1329 , - 136 , - 1063 , - 718 , - 2493 , - 2996 , - 2227 , - 186 , - 265 , - 2464 , - 3391 , - 3046 , - 1429 , - 1932 , - 1163 , - 2514 , - 2593 , - 1400 , - 2327 , - 1982 , - 365 , - 868 , - 99 , - 1450 , - 1529 , - 336 , - 1263 , - 918 , - 2693 , - 3196 , - 2427 , - 386 , - 465 , - 2664 , - 199 , - 3246 , - 1629 , - 2132 , - 1363 , - 2714 , - 2793 , - 1600 , - 2527 , - 2182 , - 565 , - 1068 , - 299 , - 1650 , - 1729 , - 536 , - 1463 , - 1118 , - 2893 , - 4 , - 2627 , - 586 , - 665 , - 2864 , - 399 , - 54 , - 1829 , - 2332 , - 1563 , - 2914 , - 2993 , - 1800 , - 2727 , - 2382 , - 765 , - 1268 , - 499 , - 1850 , - 1929 , - 736 , - 1663 , - 1318 , - 3093 , - 204 , - 2827 , - 786 , - 865 , - 3064 , - 599 , - 254 , - 2029 , - 2532 , - 1763 , - 3114 , - 3193 , - 2000 , - 2927 , - 2582 , - 965 , - 1468 , - 699 , - 2050 , - 2129 , - 936 , - 1863 , - 1518 , - 3293 , - 404 , - 3027 , - 986 , - 1065 , - 3264 , - 799 , - 454 , - 2229 , - 2732 , - 1963 , - 3314 , - 1 , - 2200 , - 3127 , - 2782 , - 1165 , - 1668 , - 899 , - 2250 , - 2329 , - 1136 , - 2063 , - 1718 , - 101 , - 604 , - 3227 , - 1186 , - 1265 , - 72 , - 999 , - 654 , - 2429 , - 2932 , - 2163 , - 122 , - 201 , - 2400 , - 3327 , - 2982 , - 1365 , - 1868 , - 1099 , - 2450 , - 2529 , - 1336 , - 2263 , - 1918 , - 301 , - 804 , - 35 , - 1386 , - 1465 , - 272 , - 1199 , - 854 , - 2629 , - 3132 , - 2363 , - 322 , - 401 , - 2600 , - 135 , - 3182 , - 1565 , - 2068 , - 1299 , - 2650 , - 2729 , - 1536 , - 2463 , - 2118 , - 501 , - 1004 , - 235 , - 1586 , - 1665 , - 472 , - 1399 , - 1054 , - 2829 , - 3332 , - 2563 , - 522 , - 601 , - 2800 , - 335 , - 3382 , - 1765 , - 2268 , - 1499 , - 2850 , - 2929 , - 1736 , - 2663 , - 2318 , - 701 , - 1204 , - 435 , - 1786 , - 1865 , - 672 , - 1599 , - 1254 , - 3029 , - 140 , - 2763 , - 722 , - 801 , - 3000 , - 535 , - 190 , - 1965 , - 2468 , - 1699 , - 3050 , - 3129 , - 1936 , - 2863 , - 2518 , - 901 , - 1404 , - 635 , - 1986 , - 2065 , - 872 , - 1799 , - 1454 , - 3229 , - 340 , - 2963 , - 922 , - 1001 , - 3200 , - 735 , - 390 , - 2165 , - 2668 , - 1899 , - 3250 , - 3329 , - 2136 , - 3063 , - 2718 , - 1101 , - 1604 , - 835 , - 2186 , - 2265 , - 1072 , - 1999 , - 1654 , - 37 , - 540 , - 3163 , - 1122 , - 1201 , - 8 , - 935 , - 590 , - 2365 , - 2868 , - 2099 , - 58 , - 137 , - 2336 , - 3263 , - 2918 , - 1301 , - 1804 , - 1035 , - 2386 , - 2465 , - 1272 , - 2199 , - 1854 , - 237 , - 740 , - 3363 , - 1322 , - 1401 , - 208 , - 1135 , - 790 , - 2565 , - 3068 , - 2299 , - 258 , - 337 , - 2536 , - 71 , - 3118 , - 1501 , - 2004 , - 1235 , - 2586 , - 2665 , - 1472 , - 2399 , - 2054 , - 437 , - 940 , - 171 , - 1522 , - 1601 , - 408 , - 1335 , - 990 , - 2765 , - 3268 , - 2499 , - 458 , - 537 , - 2736 , - 271 , - 3318 , - 1701 , - 2204 , - 1435 , - 2786 , - 2865 , - 1672 , - 2599 , - 2254 , - 637 , - 1140 , - 371 , - 1722 , - 1801 , - 608 , - 1535 , - 1190 , - 2965 , - 76 , - 2699 , - 658 , - 737 , - 2936 , - 471 , - 126 , - 1901 , - 2404 , - 1635 , - 2986 , - 3065 , - 1872 , - 2799 , - 2454 , - 837 , - 1340 , - 571 , - 1922 , - 2001 , - 808 , - 1735 , - 1390 , - 3165 , - 276 , - 2899 , - 858 , - 937 , - 3136 , - 671 , - 326 , - 2101 , - 2604 , - 1835 , - 3186 , - 3265 , - 2072 , - 2999 , - 2654 , - 1037 , - 1540 , - 771 , - 2122 , - 2201 , - 1008 , - 1935 , - 1590 , - 3365 , - 476 , - 3099 , - 1058 , - 1137 , - 3336 , - 871 , - 526 , - 2301 , - 2804 , - 2035 , - 3386 , - 73 , - 2272 , - 3199 , - 2854 , - 1237 , - 1740 , - 971 , - 2322 , - 2401 , - 1208 , - 2135 , - 1790 , - 173 , - 676 , - 3299 , - 1258 , - 1337 , - 144 , - 1071 , - 726 , - 2501 , - 3004 , - 2235 , - 194 , - 273 , - 2472 , - 7 , - 3054 , - 1437 , - 1940 , - 1171 , - 2522 , - 2601 , - 1408 , - 2335 , - 1990 , - 373 , - 876 , - 107 , - 1458 , - 1537 , - 344 , - 1271 , - 926 , - 2701 , - 3204 , - 2435 , - 394 , - 473 , - 2672 , - 207 , - 3254 , - 1637 , - 2140 , - 1371 , - 2722 , - 2801 , - 1608 , - 2535 , - 2190 , - 573 , - 1076 , - 307 , - 1658 , - 1737 , - 544 , - 1471 , - 1126 , - 2901 , - 12 , - 2635 , - 594 , - 673 , - 2872 , - 407 , - 62 , - 1837 , - 2340 , - 1571 , - 2922 , - 3001 , - 1808 , - 2735 , - 2390 , - 773 , - 1276 , - 507 , - 1858 , - 1937 , - 744 , - 1671 , - 1326 , - 3101 , - 212 , - 2835 , - 794 , - 873 , - 3072 , - 607 , - 262 , - 2037 , - 2540 , - 1771 , - 3122 , - 3201 , - 2008 , - 2935 , - 2590 , - 973 , - 1476 , - 707 , - 2058 , - 2137 , - 944 , - 1871 , - 1526 , - 3301 , - 412 , - 3035 , - 994 , - 1073 , - 3272 , - 807 , - 462 , - 2237 , - 2740 , - 1971 , - 3322 , - 9 , - 2208 , - 3135 , - 2790 , - 1173 , - 1676 , - 907 , - 2258 , - 2337 , - 1144 , - 2071 , - 1726 , - 109 , - 612 , - 3235 , - 1194 , - 1273 , - 80 , - 1007 , - 662 , - 2437 , - 2940 , - 2171 , - 130 , - 209 , - 2408 , - 3335 , - 2990 , - 1373 , - 1876 , - 1107 , - 2458 , - 2537 , - 1344 , - 2271 , - 1926 , - 309 , - 812 , - 43 , - 1394 , - 1473 , - 280 , - 1207 , - 862 , - 2637 , - 3140 , - 2371 , - 330 , - 409 , - 2608 , - 143 , - 3190 , - 1573 , - 2076 , - 1307 , - 2658 , - 2737 , - 1544 , - 2471 , - 2126 , - 509 , - 1012 , - 243 , - 1594 , - 1673 , - 480 , - 1407 , - 1062 , - 2837 , - 3340 , - 2571 , - 530 , - 609 , - 2808 , - 343 , - 3390 , - 1773 , - 2276 , - 1507 , - 2858 , - 2937 , - 1744 , - 2671 , - 2326 , - 709 , - 1212 , - 443 , - 1794 , - 1873 , - 680 , - 1607 , - 1262 , - 3037 , - 148 , - 2771 , - 730 , - 809 , - 3008 , - 543 , - 198 , - 1973 , - 2476 , - 1707 , - 3058 , - 3137 , - 1944 , - 2871 , - 2526 , - 909 , - 1412 , - 643 , - 1994 , - 2073 , - 880 , - 1807 , - 1462 , - 3237 , - 348 , - 2971 , - 930 , - 1009 , - 3208 , - 743 , - 398 , - 2173 , - 2676 , - 1907 , - 3258 , - 3337 , - 2144 , - 3071 , - 2726 , - 1109 , - 1612 , - 843 , - 2194 , - 2273 , - 1080 , - 2007 , - 1662 , - 45 , - 548 , - 3171 , - 1130 , - 1209 , - 16 , - 943 , - 598 , - 2373 , - 2876 , - 2107 , - 66 , - 145 , - 2344 , - 3271 , - 2926 , - 1309 , - 1812 , - 1043 , - 2394 , - 2473 , - 1280 , - 2207 , - 1862 , - 245 , - 748 , - 3371 , - 1330 , - 1409 , - 216 , - 1143 , - 798 , - 2573 , - 3076 , - 2307 , - 266 , - 345 , - 2544 , - 79 , - 3126 , - 1509 , - 2012 , - 1243 , - 2594 , - 2673 , - 1480 , - 2407 , - 2062 , - 445 , - 948 , - 179 , - 1530 , - 1609 , - 416 , - 1343 , - 998 , - 2773 , - 3276 , - 2507 , - 466 , - 545 , - 2744 , - 279 , - 3326 , - 1709 , - 2212 , - 1443 , - 2794 , - 2873 , - 1680 , - 2607 , - 2262 , - 645 , - 1148 , - 379 , - 1730 , - 1809 , - 616 , - 1543 , - 1198 , - 2973 , - 84 , - 2707 , - 666 , - 745 , - 2944 , - 479 , - 134 , - 1909 , - 2412 , - 1643 , - 2994 , - 3073 , - 1880 , - 2807 , - 2462 , - 845 , - 1348 , - 579 , - 1930 , - 2009 , - 816 , - 1743 , - 1398 , - 3173 , - 284 , - 2907 , - 866 , - 945 , - 3144 , - 679 , - 334 , - 2109 , - 2612 , - 1843 , - 3194 , - 3273 , - 2080 , - 3007 , - 2662 , - 1045 , - 1548 , - 779 , - 2130 , - 2209 , - 1016 , - 1943 , - 1598 , - 3373 , - 484 , - 3107 , - 1066 , - 1145 , - 3344 , - 879 , - 534 , - 2309 , - 2812 , - 2043 , - 2 , - 81 , - 2280 , - 3207 , - 2862 , - 1245 , - 1748 , - 979 , - 2330 , - 2409 , - 1216 , - 2143 , - 1798 , - 181 , - 684 , - 3307 , - 1266 , - 1345 , - 152 , - 1079 , - 734 , - 2509 , - 3012 , - 2243 , - 202 , - 281 , - 2480 , - 15 , - 3062 , - 1445 , - 1948 , - 1179 , - 2530 , - 2609 , - 1416 , - 2343 , - 1998 , - 381 , - 884 , - 115 , - 1466 , - 1545 , - 352 , - 1279 , - 934 , - 2709 , - 3212 , - 2443 , - 402 , - 481 , - 2680 , - 215 , - 3262 , - 1645 , - 2148 , - 1379 , - 2730 , - 2809 , - 1616 , - 2543 , - 2198 , - 581 , - 1084 , - 315 , - 1666 , - 1745 , - 552 , - 1479 , - 1134 , - 2909 , - 20 , - 2643 , - 602 , - 681 , - 2880 , - 415 , - 70 , - 1845 , - 2348 , - 1579 , - 2930 , - 3009 , - 1816 , - 2743 , - 2398 , - 781 , - 1284 , - 515 , - 1866 , - 1945 , - 752 , - 1679 , - 1334 , - 3109 , - 220 , - 2843 , - 802 , - 881 , - 3080 , - 615 , - 270 , - 2045 , - 2548 , - 1779 , - 3130 , - 3209 , - 2016 , - 2943 , - 2598 , - 981 , - 1484 , - 715 , - 2066 , - 2145 , - 952 , - 1879 , - 1534 , - 3309 , - 420 , - 3043 , - 1002 , - 1081 , - 3280 , - 815 , - 470 , - 2245 , - 2748 , - 1979 , - 3330 , - 17 , - 2216 , - 3143 , - 2798 , - 1181 , - 1684 , - 915 , - 2266 , - 2345 , - 1152 , - 2079 , - 1734 , - 117 , - 620 , - 3243 , - 1202 , - 1281 , - 88 , - 1015 , - 670 , - 2445 , - 2948 , - 2179 , - 138 , - 217 , - 2416 , - 3343 , - 2998 , - 1381 , - 1884 , - 1115 , - 2466 , - 2545 , - 1352 , - 2279 , - 1934 , - 317 , - 820 , - 51 , - 1402 , - 1481 , - 288 , - 1215 , - 870 , - 2645 , - 3148 , - 2379 , - 338 , - 417 , - 2616 , - 151 , - 3198 , - 1581 , - 2084 , - 1315 , - 2666 , - 2745 , - 1552 , - 2479 , - 2134 , - 517 , - 1020 , - 251 , - 1602 , - 1681 , - 488 , - 1415 , - 1070 , - 2845 , - 3348 , - 2579 , - 538 , - 617 , - 2816 , - 351 , - 6 , - 1781 , - 2284 , - 1515 , - 2866 , - 2945 , - 1752 , - 2679 , - 2334 , - 717 , - 1220 , - 451 , - 1802 , - 1881 , - 688 , - 1615 , - 1270 , - 3045 , - 156 , - 2779 , - 738 , - 817 , - 3016 , - 551 , - 206 , - 1981 , - 2484 , - 1715 , - 3066 , - 3145 , - 1952 , - 2879 , - 2534 , - 917 , - 1420 , - 651 , - 2002 , - 2081 , - 888 , - 1815 , - 1470 , - 3245 , - 356 , - 2979 , - 938 , - 1017 , - 3216 , - 751 , - 406 , - 2181 , - 2684 , - 1915 , - 3266 , - 3345 , - 2152 , - 3079 , - 2734 , - 1117 , - 1620 , - 851 , - 2202 , - 2281 , - 1088 , - 2015 , - 1670 , - 53 , - 556 , - 3179 , - 1138 , - 1217 , - 24 , - 951 , - 606 , - 2381 , - 2884 , - 2115 , - 74 , - 153 , - 2352 , - 3279 , - 2934 , - 1317 , - 1820 , - 1051 , - 2402 , - 2481 , - 1288 , - 2215 , - 1870 , - 253 , - 756 , - 3379 , - 1338 , - 1417 , - 224 , - 1151 , - 806 , - 2581 , - 3084 , - 2315 , - 274 , - 353 , - 2552 , - 87 , - 3134 , - 1517 , - 2020 , - 1251 , - 2602 , - 2681 , - 1488 , - 2415 , - 2070 , - 453 , - 956 , - 187 , - 1538 , - 1617 , - 424 , - 1351 , - 1006 , - 2781 , - 3284 , - 2515 , - 474 , - 553 , - 2752 , - 287 , - 3334 , - 1717 , - 2220 , - 1451 , - 2802 , - 2881 , - 1688 , - 2615 , - 2270 , - 653 , - 1156 , - 387 , - 1738 , - 1817 , - 624 , - 1551 , - 1206 , - 2981 , - 92 , - 2715 , - 674 , - 753 , - 2952 , - 487 , - 142 , - 1917 , - 2420 , - 1651 , - 3002 , - 3081 , - 1888 , - 2815 , - 2470 , - 853 , - 1356 , - 587 , - 1938 , - 2017 , - 824 , - 1751 , - 1406 , - 3181 , - 292 , - 2915 , - 874 , - 953 , - 3152 , - 687 , - 342 , - 2117 , - 2620 , - 1851 , - 3202 , - 3281 , - 2088 , - 3015 , - 2670 , - 1053 , - 1556 , - 787 , - 2138 , - 2217 , - 1024 , - 1951 , - 1606 , - 3381 , - 492 , - 3115 , - 1074 , - 1153 , - 3352 , - 887 , - 542 , - 2317 , - 2820 , - 2051 , - 10 , - 89 , - 2288 , - 3215 , - 2870 , - 1253 , - 1756 , - 987 , - 2338 , - 2417 , - 1224 , - 2151 , - 1806 , - 189 , - 692 , - 3315 , - 1274 , - 1353 , - 160 , - 1087 , - 742 , - 2517 , - 3020 , - 2251 , - 210 , - 289 , - 2488 , - 23 , - 3070 , - 1453 , - 1956 , - 1187 , - 2538 , - 2617 , - 1424 , - 2351 , - 2006 , - 389 , - 892 , - 123 , - 1474 , - 1553 , - 360 , - 1287 , - 942 , - 2717 , - 3220 , - 2451 , - 410 , - 489 , - 2688 , - 223 , - 3270 , - 1653 , - 2156 , - 1387 , - 2738 , - 2817 , - 1624 , - 2551 , - 2206 , - 589 , - 1092 , - 323 , - 1674 , - 1753 , - 560 , - 1487 , - 1142 , - 2917 , - 28 , - 2651 , - 610 , - 689 , - 2888 , - 423 , - 78 , - 1853 , - 2356 , - 1587 , - 2938 , - 3017 , - 1824 , - 2751 , - 2406 , - 789 , - 1292 , - 523 , - 1874 , - 1953 , - 760 , - 1687 , - 1342 , - 3117 , - 228 , - 2851 , - 810 , - 889 , - 3088 , - 623 , - 278 , - 2053 , - 2556 , - 1787 , - 3138 , - 3217 , - 2024 , - 2951 , - 2606 , - 989 , - 1492 , - 723 , - 2074 , - 2153 , - 960 , - 1887 , - 1542 , - 3317 , - 428 , - 3051 , - 1010 , - 1089 , - 3288 , - 823 , - 478 , - 2253 , - 2756 , - 1987 , - 3338 , - 25 , - 2224 , - 3151 , - 2806 , - 1189 , - 1692 , - 923 , - 2274 , - 2353 , - 1160 , - 2087 , - 1742 , - 125 , - 628 , - 3251 , - 1210 , - 1289 , - 96 , - 1023 , - 678 , - 2453 , - 2956 , - 2187 , - 146 , - 225 , - 2424 , - 3351 , - 3006 , - 1389 , - 1892 , - 1123 , - 2474 , - 2553 , - 1360 , - 2287 , - 1942 , - 325 , - 828 , - 59 , - 1410 , - 1489 , - 296 , - 1223 , - 878 , - 2653 , - 3156 , - 2387 , - 346 , - 425 , - 2624 , - 159 , - 3206 , - 1589 , - 2092 , - 1323 , - 2674 , - 2753 , - 1560 , - 2487 , - 2142 , - 525 , - 1028 , - 259 , - 1610 , - 1689 , - 496 , - 1423 , - 1078 , - 2853 , - 3356 , - 2587 , - 546 , - 625 , - 2824 , - 359 , - 14 , - 1789 , - 2292 , - 1523 , - 2874 , - 2953 , - 1760 , - 2687 , - 2342 , - 725 , - 1228 , - 459 , - 1810 , - 1889 , - 696 , - 1623 , - 1278 , - 3053 , - 164 , - 2787 , - 746 , - 825 , - 3024 , - 559 , - 214 , - 1989 , - 2492 , - 1723 , - 3074 , - 3153 , - 1960 , - 2887 , - 2542 , - 925 , - 1428 , - 659 , - 2010 , - 2089 , - 896 , - 1823 , - 1478 , - 3253 , - 364 , - 2987 , - 946 , - 1025 , - 3224 , - 759 , - 414 , - 2189 , - 2692 , - 1923 , - 3274 , - 3353 , - 2160 , - 3087 , - 2742 , - 1125 , - 1628 , - 859 , - 2210 , - 2289 , - 1096 , - 2023 , - 1678 , - 61 , - 564 , - 3187 , - 1146 , - 1225 , - 32 , - 959 , - 614 , - 2389 , - 2892 , - 2123 , - 82 , - 161 , - 2360 , - 3287 , - 2942 , - 1325 , - 1828 , - 1059 , - 2410 , - 2489 , - 1296 , - 2223 , - 1878 , - 261 , - 764 , - 3387 , - 1346 , - 1425 , - 232 , - 1159 , - 814 , - 2589 , - 3092 , - 2323 , - 282 , - 361 , - 2560 , - 95 , - 3142 , - 1525 , - 2028 , - 1259 , - 2610 , - 2689 , - 1496 , - 2423 , - 2078 , - 461 , - 964 , - 195 , - 1546 , - 1625 , - 432 , - 1359 , - 1014 , - 2789 , - 3292 , - 2523 , - 482 , - 561 , - 2760 , - 295 , - 3342 , - 1725 , - 2228 , - 1459 , - 2810 , - 2889 , - 1696 , - 2623 , - 2278 , - 661 , - 1164 , - 395 , - 1746 , - 1825 , - 632 , - 1559 , - 1214 , - 2989 , - 100 , - 2723 , - 682 , - 761 , - 2960 , - 495 , - 150 , - 1925 , - 2428 , - 1659 , - 3010 , - 3089 , - 1896 , - 2823 , - 2478 , - 861 , - 1364 , - 595 , - 1946 , - 2025 , - 832 , - 1759 , - 1414 , - 3189 , - 300 , - 2923 , - 882 , - 961 , - 3160 , - 695 , - 350 , - 2125 , - 2628 , - 1859 , - 3210 , - 3289 , - 2096 , - 3023 , - 2678 , - 1061 , - 1564 , - 795 , - 2146 , - 2225 , - 1032 , - 1959 , - 1614 , - 3389 , - 500 , - 3123 , - 1082 , - 1161 , - 3360 , - 895 , - 550 , - 2325 , - 2828 , - 2059 , - 18 , - 97 , - 2296 , - 3223 , - 2878 , - 1261 , - 1764 , - 995 , - 2346 , - 2425 , - 1232 , - 2159 , - 1814 , - 197 , - 700 , - 3323 , - 1282 , - 1361 , - 168 , - 1095 , - 750 , - 2525 , - 3028 , - 2259 , - 218 , - 297 , - 2496 , - 31 , - 3078 , - 1461 , - 1964 , - 1195 , - 2546 , - 2625 , - 1432 , - 2359 , - 2014 , - 397 , - 900 , - 131 , - 1482 , - 1561 , - 368 , - 1295 , - 950 , - 2725 , - 3228 , - 2459 , - 418 , - 497 , - 2696 , - 231 , - 3278 , - 1661 , - 2164 , - 1395 , - 2746 , - 2825 , - 1632 , - 2559 , - 2214 , - 597 , - 1100 , - 331 , - 1682 , - 1761 , - 568 , - 1495 , - 1150 , - 2925 , - 36 , - 2659 , - 618 , - 697 , - 2896 , - 431 , - 86 , - 1861 , - 2364 , - 1595 , - 2946 , - 3025 , - 1832 , - 2759 , - 2414 , - 797 , - 1300 , - 531 , - 1882 , - 1961 , - 768 , - 1695 , - 1350 , - 3125 , - 236 , - 2859 , - 818 , - 897 , - 3096 , - 631 , - 286 , - 2061 , - 2564 , - 1795 , - 3146 , - 3225 , - 2032 , - 2959 , - 2614 , - 997 , - 1500 , - 731 , - 2082 , - 2161 , - 968 , - 1895 , - 1550 , - 3325 , - 436 , - 3059 , - 1018 , - 1097 , - 3296 , - 831 , - 486 , - 2261 , - 2764 , - 1995 , - 3346 , - 33 , - 2232 , - 3159 , - 2814 , - 1197 , - 1700 , - 931 , - 2282 , - 2361 , - 1168 , - 2095 , - 1750 , - 133 , - 636 , - 3259 , - 1218 , - 1297 , - 104 , - 1031 , - 686 , - 2461 , - 2964 , - 2195 , - 154 , - 233 , - 2432 , - 3359 , - 3014 , - 1397 , - 1900 , - 1131 , - 2482 , - 2561 , - 1368 , - 2295 , - 1950 , - 333 , - 836 , - 67 , - 1418 , - 1497 , - 304 , - 1231 , - 886 , - 2661 , - 3164 , - 2395 , - 354 , - 433 , - 2632 , - 167 , - 3214 , - 1597 , - 2100 , - 1331 , - 2682 , - 2761 , - 1568 , - 2495 , - 2150 , - 533 , - 1036 , - 267 , - 1618 , - 1697 , - 504 , - 1431 , - 1086 , - 2861 , - 3364 , - 2595 , - 554 , - 633 , - 2832 , - 367 , - 22 , - 1797 , - 2300 , - 1531 , - 2882 , - 2961 , - 1768 , - 2695 , - 2350 , - 733 , - 1236 , - 467 , - 1818 , - 1897 , - 704 , - 1631 , - 1286 , - 3061 , - 172 , - 2795 , - 754 , - 833 , - 3032 , - 567 , - 222 , - 1997 , - 2500 , - 1731 , - 3082 , - 3161 , - 1968 , - 2895 , - 2550 , - 933 , - 1436 , - 667 , - 2018 , - 2097 , - 904 , - 1831 , - 1486 , - 3261 , - 372 , - 2995 , - 954 , - 1033 , - 3232 , - 767 , - 422 , - 2197 , - 2700 , - 1931 , - 3282 , - 3361 , - 2168 , - 3095 , - 2750 , - 1133 , - 1636 , - 867 , - 2218 , - 2297 , - 1104 , - 2031 , - 1686 , - 69 , - 572 , - 3195 , - 1154 , - 1233 , - 40 , - 967 , - 622 , - 2397 , - 2900 , - 2131 , - 90 , - 169 , - 2368 , - 3295 , - 2950 , - 1333 , - 1836 , - 1067 , - 2418 , - 2497 , - 1304 , - 2231 , - 1886 , - 269 , - 772 , - 3 , - 1354 , - 1433 , - 240 , - 1167 , - 822 , - 2597 , - 3100 , - 2331 , - 290 , - 369 , - 2568 , - 103 , - 3150 , - 1533 , - 2036 , - 1267 , - 2618 , - 2697 , - 1504 , - 2431 , - 2086 , - 469 , - 972 , - 203 , - 1554 , - 1633 , - 440 , - 1367 , - 1022 , - 2797 , - 3300 , - 2531 , - 490 , - 569 , - 2768 , - 303 , - 3350 , - 1733 , - 2236 , - 1467 , - 2818 , - 2897 , - 1704 , - 2631 , - 2286 , - 669 , - 1172 , - 403 , - 1754 , - 1833 , - 640 , - 1567 , - 1222 , - 2997 , - 108 , - 2731 , - 690 , - 769 , - 2968 , - 503 , - 158 , - 1933 , - 2436 , - 1667 , - 3018 , - 3097 , - 1904 , - 2831 , - 2486 , - 869 , - 1372 , - 603 , - 1954 , - 2033 , - 840 , - 1767 , - 1422 , - 3197 , - 308 , - 2931 , - 890 , - 969 , - 3168 , - 703 , - 358 , - 2133 , - 2636 , - 1867 , - 3218 , - 3297 , - 2104 , - 3031 , - 2686 , - 1069 , - 1572 , - 803 , - 2154 , - 2233 , - 1040 , - 1967 , - 1622 , - 5 , - 508 , - 3131 , - 1090 , - 1169 , - 3368 , - 903 , - 558 , - 2333 , - 2836 , - 2067 , - 26 , - 105 , - 2304 , - 3231 , - 2886 , - 1269 , - 1772 , - 1003 , - 2354 , - 2433 , - 1240 , - 2167 , - 1822 , - 205 , - 708 , - 3331 , - 1290 , - 1369 , - 176 , - 1103 , - 758 , - 2533 , - 3036 , - 2267 , - 226 , - 305 , - 2504 , - 39 , - 3086 , - 1469 , - 1972 , - 1203 , - 2554 , - 2633 , - 1440 , - 2367 , - 2022 , - 405 , - 908 , - 139 , - 1490 , - 1569 , - 376 , - 1303 , - 958 , - 2733 , - 3236 , - 2467 , - 426 , - 505 , - 2704 , - 239 , - 3286 , - 1669 , - 2172 , - 1403 , - 2754 , - 2833 , - 1640 , - 2567 , - 2222 , - 605 , - 1108 , - 339 , - 1690 , - 1769 , - 576 , - 1503 , - 1158 , - 2933 , - 44 , - 2667 , - 626 , - 705 , - 2904 , - 439 , - 94 , - 1869 , - 2372 , - 1603 , - 2954 , - 3033 , - 1840 , - 2767 , - 2422 , - 805 , - 1308 , - 539 , - 1890 , - 1969 , - 776 , - 1703 , - 1358 , - 3133 , - 244 , - 2867 , - 826 , - 905 , - 3104 , - 639 , - 294 , - 2069 , - 2572 , - 1803 , - 3154 , - 3233 , - 2040 , - 2967 , - 2622 , - 1005 , - 1508 , - 739 , - 2090 , - 2169 , - 976 , - 1903 , - 1558 , - 3333 , - 444 , - 3067 , - 1026 , - 1105 , - 3304 , - 839 , - 494 , - 2269 , - 2772 , - 2003 , - 3354 , - 41 , - 2240 , - 3167 , - 2822 , - 1205 , - 1708 , - 939 , - 2290 , - 2369 , - 1176 , - 2103 , - 1758 , - 141 , - 644 , - 3267 , - 1226 , - 1305 , - 112 , - 1039 , - 694 , - 2469 , - 2972 , - 2203 , - 162 , - 241 , - 2440 , - 3367 , - 3022 , - 1405 , - 1908 , - 1139 , - 2490 , - 2569 , - 1376 , - 2303 , - 1958 , - 341 , - 844 , - 75 , - 1426 , - 1505 , - 312 , - 1239 , - 894 , - 2669 , - 3172 , - 2403 , - 362 , - 441 , - 2640 , - 175 , - 3222 , - 1605 , - 2108 , - 1339 , - 2690 , - 2769 , - 1576 , - 2503 , - 2158 , - 541 , - 1044 , - 275 , - 1626 , - 1705 , - 512 , - 1439 , - 1094 , - 2869 , - 3372 , - 2603 , - 562 , - 641 , - 2840 , - 375 , - 30 , - 1805 , - 2308 , - 1539 , - 2890 , - 2969 , - 1776 , - 2703 , - 2358 , - 741 , - 1244 , - 475 , - 1826 , - 1905 , - 712 , - 1639 , - 1294 , - 3069 , - 180 , - 2803 , - 762 , - 841 , - 3040 , - 575 , - 230 , - 2005 , - 2508 , - 1739 , - 3090 , - 3169 , - 1976 , - 2903 , - 2558 , - 941 , - 1444 , - 675 , - 2026 , - 2105 , - 912 , - 1839 , - 1494 , - 3269 , - 380 , - 3003 , - 962 , - 1041 , - 3240 , - 775 , - 430 , - 2205 , - 2708 , - 1939 , - 3290 , - 3369 , - 2176 , - 3103 , - 2758 , - 1141 , - 1644 , - 875 , - 2226 , - 2305 , - 1112 , - 2039 , - 1694 , - 77 , - 580 , - 3203 , - 1162 , - 1241 , - 48 , - 975 , - 630 , - 2405 , - 2908 , - 2139 , - 98 , - 177 , - 2376 , - 3303 , - 2958 , - 1341 , - 1844 , - 1075 , - 2426 , - 2505 , - 1312 , - 2239 , - 1894 , - 277 , - 780 , - 11 , - 1362 , - 1441 , - 248 , - 1175 , - 830 , - 2605 , - 3108 , - 2339 , - 298 , - 377 , - 2576 , - 111 , - 3158 , - 1541 , - 2044 , - 1275 , - 2626 , - 2705 , - 1512 , - 2439 , - 2094 , - 477 , - 980 , - 211 , - 1562 , - 1641 , - 448 , - 1375 , - 1030 , - 2805 , - 3308 , - 2539 , - 498 , - 577 , - 2776 , - 311 , - 3358 , - 1741 , - 2244 , - 1475 , - 2826 , - 2905 , - 1712 , - 2639 , - 2294 , - 677 , - 1180 , - 411 , - 1762 , - 1841 , - 648 , - 1575 , - 1230 , - 3005 , - 116 , - 2739 , - 698 , - 777 , - 2976 , - 511 , - 166 , - 1941 , - 2444 , - 1675 , - 3026 , - 3105 , - 1912 , - 2839 , - 2494 , - 877 , - 1380 , - 611 , - 1962 , - 2041 , - 848 , - 1775 , - 1430 , - 3205 , - 316 , - 2939 , - 898 , - 977 , - 3176 , - 711 , - 366 , - 2141 , - 2644 , - 1875 , - 3226 , - 3305 , - 2112 , - 3039 , - 2694 , - 1077 , - 1580 , - 811 , - 2162 , - 2241 , - 1048 , - 1975 , - 1630 , - 13 , - 516 , - 3139 , - 1098 , - 1177 , - 3376 , - 911 , - 566 , - 2341 , - 2844 , - 2075 , - 34 , - 113 , - 2312 , - 3239 , - 2894 , - 1277 , - 1780 , - 1011 , - 2362 , - 2441 , - 1248 , - 2175 , - 1830 , - 213 , - 716 , - 3339 , - 1298 , - 1377 , - 184 , - 1111 , - 766 , - 2541 , - 3044 , - 2275 , - 234 , - 313 , - 2512 , - 47 , - 3094 , - 1477 , - 1980 , - 1211 , - 2562 , - 2641 , - 1448 , - 2375 , - 2030 , - 413 , - 916 , - 147 , - 1498 , - 1577 , - 384 , - 1311 , - 966 , - 2741 , - 3244 , - 2475 , - 434 , - 513 , - 2712 , - 247 , - 3294 , - 1677 , - 2180 , - 1411 , - 2762 , - 2841 , - 1648 , - 2575 , - 2230 , - 613 , - 1116 , - 347 , - 1698 , - 1777 , - 584 , - 1511 , - 1166 , - 2941 , - 52 , - 2675 , - 634 , - 713 , - 2912 , - 447 , - 102 , - 1877 , - 2380 , - 1611 , - 2962 , - 3041 , - 1848 , - 2775 , - 2430 , - 813 , - 1316 , - 547 , - 1898 , - 1977 , - 784 , - 1711 , - 1366 , - 3141 , - 252 , - 2875 , - 834 , - 913 , - 3112 , - 647 , - 302 , - 2077 , - 2580 , - 1811 , - 3162 , - 3241 , - 2048 , - 2975 , - 2630 , - 1013 , - 1516 , - 747 , - 2098 , - 2177 , - 984 , - 1911 , - 1566 , - 3341 , - 452 , - 3075 , - 1034 , - 1113 , - 3312 , - 847 , - 502 , - 2277 , - 2780 , - 2011 , - 3362 , - 49 , - 2248 , - 3175 , - 2830 , - 1213 , - 1716 , - 947 , - 2298 , - 2377 , - 1184 , - 2111 , - 1766 , - 149 , - 652 , - 3275 , - 1234 , - 1313 , - 120 , - 1047 , - 702 , - 2477 , - 2980 , - 2211 , - 170 , - 249 , - 2448 , - 3375 , - 3030 , - 1413 , - 1916 , - 1147 , - 2498 , - 2577 , - 1384 , - 2311 , - 1966 , - 349 , - 852 , - 83 , - 1434 , - 1513 , - 320 , - 1247 , - 902 , - 2677 , - 3180 , - 2411 , - 370 , - 449 , - 2648 , - 183 , - 3230 , - 1613 , - 2116 , - 1347 , - 2698 , - 2777 , - 1584 , - 2511 , - 2166 , - 549 , - 1052 , - 283 , - 1634 , - 1713 , - 520 , - 1447 , - 1102 , - 2877 , - 3380 , - 2611 , - 570 , - 649 , - 2848 , - 383 , - 38 , - 1813 , - 2316 , - 1547 , - 2898 , - 2977 , - 1784 , - 2711 , - 2366 , - 749 , - 1252 , - 483 , - 1834 , - 1913 , - 720 , - 1647 , - 1302 , - 3077 , - 188 , - 2811 , - 770 , - 849 , - 3048 , - 583 , - 238 , - 2013 , - 2516 , - 1747 , - 3098 , - 3177 , - 1984 , - 2911 , - 2566 , - 949 , - 1452 , - 683 , - 2034 , - 2113 , - 920 , - 1847 , - 1502 , - 3277 , - 388 , - 3011 , - 970 , - 1049 , - 3248 , - 783 , - 438 , - 2213 , - 2716 , - 1947 , - 3298 , - 3377 , - 2184 , - 3111 , - 2766 , - 1149 , - 1652 , - 883 , - 2234 , - 2313 , - 1120 , - 2047 , - 1702 , - 85 , - 588 , - 3211 , - 1170 , - 1249 , - 56 , - 983 , - 638 , - 2413 , - 2916 , - 2147 , - 106 , - 185 , - 2384 , - 3311 , - 2966 , - 1349 , - 1852 , - 1083 , - 2434 , - 2513 , - 1320 , - 2247 , - 1902 , - 285 , - 788 , - 19 , - 1370 , - 1449 , - 256 , - 1183 , - 838 , - 2613 , - 3116 , - 2347 , - 306 , - 385 , - 2584 , - 119 , - 3166 , - 1549 , - 2052 , - 1283 , - 2634 , - 2713 , - 1520 , - 2447 , - 2102 , - 485 , - 988 , - 219 , - 1570 , - 1649 , - 456 , - 1383 , - 1038 , - 2813 , - 3316 , - 2547 , - 506 , - 585 , - 2784 , - 319 , - 3366 , - 1749 , - 2252 , - 1483 , - 2834 , - 2913 , - 1720 , - 2647 , - 2302 , - 685 , - 1188 , - 419 , - 1770 , - 1849 , - 656 , - 1583 , - 1238 , - 3013 , - 124 , - 2747 , - 706 , - 785 , - 2984 , - 519 , - 174 , - 1949 , - 2452 , - 1683 , - 3034 , - 3113 , - 1920 , - 2847 , - 2502 , - 885 , - 1388 , - 619 , - 1970 , - 2049 , - 856 , - 1783 , - 1438 , - 3213 , - 324 , - 2947 , - 906 , - 985 , - 3184 , - 719 , - 374 , - 2149 , - 2652 , - 1883 , - 3234 , - 3313 , - 2120 , - 3047 , - 2702 , - 1085 , - 1588 , - 819 , - 2170 , - 2249 , - 1056 , - 1983 , - 1638 , - 21 , - 524 , - 3147 , - 1106 , - 1185 , - 3384 , - 919 , - 574 , - 2349 , - 2852 , - 2083 , - 42 , - 121 , - 2320 , - 3247 , - 2902 , - 1285 , - 1788 , - 1019 , - 2370 , - 2449 , - 1256 , - 2183 , - 1838 , - 221 , - 724 , - 3347 , - 1306 , - 1385 , - 192 , - 1119 , - 774 , - 2549 , - 3052 , - 2283 , - 242 , - 321 , - 2520 , - 55 , - 3102 , - 1485 , - 1988 , - 1219 , - 2570 , - 2649 , - 1456 , - 2383 , - 2038 , - 421 , - 924 , - 155 , - 1506 , - 1585 , - 392 , - 1319 , - 974 , - 2749 , - 3252 , - 2483 , - 442 , - 521 , - 2720 , - 255 , - 3302 , - 1685 , - 2188 , - 1419 , - 2770 , - 2849 , - 1656 , - 2583 , - 2238 , - 621 , - 1124 , - 355 , - 1706 , - 1785 , - 592 , - 1519 , - 1174 , - 2949 , - 60 , - 2683 , - 642 , - 721 , - 2920 , - 455 , - 110 , - 1885 , - 2388 , - 1619 , - 2970 , - 3049 , - 1856 , - 2783 , - 2438 , - 821 , - 1324 , - 555 , - 1906 , - 1985 , - 792 , - 1719 , - 1374 , - 3149 , - 260 , - 2883 , - 842 , - 921 , - 3120 , - 655 , - 310 , - 2085 , - 2588 , - 1819 , - 3170 , - 3249 , - 2056 , - 2983 , - 2638 , - 1021 , - 1524 , - 755 , - 2106 , - 2185 , - 992 , - 1919 , - 1574 , - 3349 , - 460 , - 3083 , - 1042 , - 1121 , - 3320 , - 855 , - 510 , - 2285 , - 2788 , - 2019 , - 3370 , - 57 , - 2256 , - 3183 , - 2838 , - 1221 , - 1724 , - 955 , - 2306 , - 2385 , - 1192 , - 2119 , - 1774 , - 157 , - 660 , - 3283 , - 1242 , - 1321 , - 128 , - 1055 , - 710 , - 2485 , - 2988 , - 2219 , - 178 , - 257 , - 2456 , - 3383 , - 3038 , - 1421 , - 1924 , - 1155 , - 2506 , - 2585 , - 1392 , - 2319 , - 1974 , - 357 , - 860 , - 91 , - 1442 , - 1521 , - 328 , - 1255 , - 910 , - 2685 , - 3188 , - 2419 , - 378 , - 457 , - 2656 , - 191 , - 3238 , - 1621 , - 2124 , - 1355 , - 2706 , - 2785 , - 1592 , - 2519 , - 2174 , - 557 , - 1060 , - 291 , - 1642 , - 1721 , - 528 , - 1455 , - 1110 , - 2885 , - 3388 , - 2619 , - 578 , - 657 , - 2856 , - 391 , - 46 , - 1821 , - 2324 , - 1555 , - 2906 , - 2985 , - 1792 , - 2719 , - 2374 , - 757 , - 1260 , - 491 , - 1842 , - 1921 , - 728 , - 1655 , - 1310 , - 3085 , - 196 , - 2819 , - 778 , - 857 , - 3056 , - 591 , - 246 , - 2021 , - 2524 , - 1755 , - 3106 , - 3185 , - 1992 , - 2919 , - 2574 , - 957 , - 1460 , - 691 , - 2042 , - 2121 , - 928 , - 1855 , - 1510 , - 3285 , - 396 , - 3019 , - 978 , - 1057 , - 3256 , - 791 , - 446 , - 2221 , - 2724 , - 1955 , - 3306 , - 3385 , - 2192 , - 3119 , - 2774 , - 1157 , - 1660 , - 891 , - 2242 , - 2321 , - 1128 , - 2055 , - 1710 , - 93 , - 596 , - 3219 , - 1178 , - 1257 , - 64 , - 991 , - 646 , - 2421 , - 2924 , - 2155 , - 114 , - 193 , - 2392 , - 3319 , - 2974 , - 1357 , - 1860 , - 1091 , - 2442 , - 2521 , - 1328 , - 2255 , - 1910 , - 293 , - 796 , - 27 , - 1378 , - 1457 , - 264 , - 1191 , - 846 , - 2621 , - 3124 , - 2355 , - 314 , - 393 , - 2592 , - 127 , - 3174 , - 1557 , - 2060 , - 1291 , - 2642 , - 2721 , - 1528 , - 2455 , - 2110 , - 493 , - 996 , - 227 , - 1578 , - 1657 , - 464 , - 1391 , - 1046 , - 2821 , - 3324 , - 2555 , - 514 , - 593 , - 2792 , - 327 , - 3374 , - 1757 , - 2260 , - 1491 , - 2842 , - 2921 , - 1728 , - 2655 , - 2310 , - 693 , - 1196 , - 427 , - 1778 , - 1857 , - 664 , - 1591 , - 1246 , - 3021 , - 132 , - 2755 , - 714 , - 793 , - 2992 , - 527 , - 182 , - 1957 , - 2460 , - 1691 , - 3042 , - 3121 , - 1928 , - 2855 , - 2510 , - 893 , - 1396 , - 627 , - 1978 , - 2057 , - 864 , - 1791 , - 1446 , - 3221 , - 332 , - 2955 , - 914 , - 993 , - 3192 , - 727 , - 382 , - 2157 , - 2660 , - 1891 , - 3242 , - 3321 , - 2128 , - 3055 , - 2710 , - 1093 , - 1596 , - 827 , - 2178 , - 2257 , - 1064 , - 1991 , - 1646 , - 29 , - 532 , - 3155 , - 1114 , - 1193 , - 0 , - 2347 , - 854 , - 2433 , - 172 , - 983 , - 1410 , - 1453 , - 1112 , - 387 , - 2734 , - 1241 , - 2820 , - 559 , - 1370 , - 1797 , - 1840 , - 1499 , - 774 , - 3121 , - 1628 , - 3207 , - 946 , - 1757 , - 2184 , - 2227 , - 1886 , - 1161 , - 52 , - 2015 , - 138 , - 1333 , - 2144 , - 2571 , - 2614 , - 2273 , - 1548 , - 439 , - 2402 , - 525 , - 1720 , - 2531 , - 2958 , - 3001 , - 2660 , - 1935 , - 826 , - 2789 , - 912 , - 2107 , - 2918 , - 3345 , - 3388 , - 3047 , - 2322 , - 1213 , - 3176 , - 1299 , - 2494 , - 3305 , - 276 , - 319 , - 3434 , - 2709 , - 1600 , - 107 , - 1686 , - 2881 , - 236 , - 663 , - 706 , - 365 , - 3096 , - 1987 , - 494 , - 2073 , - 3268 , - 623 , - 1050 , - 1093 , - 752 , - 27 , - 2374 , - 881 , - 2460 , - 199 , - 1010 , - 1437 , - 1480 , - 1139 , - 414 , - 2761 , - 1268 , - 2847 , - 586 , - 1397 , - 1824 , - 1867 , - 1526 , - 801 , - 3148 , - 1655 , - 3234 , - 973 , - 1784 , - 2211 , - 2254 , - 1913 , - 1188 , - 79 , - 2042 , - 165 , - 1360 , - 2171 , - 2598 , - 2641 , - 2300 , - 1575 , - 466 , - 2429 , - 552 , - 1747 , - 2558 , - 2985 , - 3028 , - 2687 , - 1962 , - 853 , - 2816 , - 939 , - 2134 , - 2945 , - 3372 , - 3415 , - 3074 , - 2349 , - 1240 , - 3203 , - 1326 , - 2521 , - 3332 , - 303 , - 346 , - 5 , - 2736 , - 1627 , - 134 , - 1713 , - 2908 , - 263 , - 690 , - 733 , - 392 , - 3123 , - 2014 , - 521 , - 2100 , - 3295 , - 650 , - 1077 , - 1120 , - 779 , - 54 , - 2401 , - 908 , - 2487 , - 226 , - 1037 , - 1464 , - 1507 , - 1166 , - 441 , - 2788 , - 1295 , - 2874 , - 613 , - 1424 , - 1851 , - 1894 , - 1553 , - 828 , - 3175 , - 1682 , - 3261 , - 1000 , - 1811 , - 2238 , - 2281 , - 1940 , - 1215 , - 106 , - 2069 , - 192 , - 1387 , - 2198 , - 2625 , - 2668 , - 2327 , - 1602 , - 493 , - 2456 , - 579 , - 1774 , - 2585 , - 3012 , - 3055 , - 2714 , - 1989 , - 880 , - 2843 , - 966 , - 2161 , - 2972 , - 3399 , - 3442 , - 3101 , - 2376 , - 1267 , - 3230 , - 1353 , - 2548 , - 3359 , - 330 , - 373 , - 32 , - 2763 , - 1654 , - 161 , - 1740 , - 2935 , - 290 , - 717 , - 760 , - 419 , - 3150 , - 2041 , - 548 , - 2127 , - 3322 , - 677 , - 1104 , - 1147 , - 806 , - 81 , - 2428 , - 935 , - 2514 , - 253 , - 1064 , - 1491 , - 1534 , - 1193 , - 468 , - 2815 , - 1322 , - 2901 , - 640 , - 1451 , - 1878 , - 1921 , - 1580 , - 855 , - 3202 , - 1709 , - 3288 , - 1027 , - 1838 , - 2265 , - 2308 , - 1967 , - 1242 , - 133 , - 2096 , - 219 , - 1414 , - 2225 , - 2652 , - 2695 , - 2354 , - 1629 , - 520 , - 2483 , - 606 , - 1801 , - 2612 , - 3039 , - 3082 , - 2741 , - 2016 , - 907 , - 2870 , - 993 , - 2188 , - 2999 , - 3426 , - 13 , - 3128 , - 2403 , - 1294 , - 3257 , - 1380 , - 2575 , - 3386 , - 357 , - 400 , - 59 , - 2790 , - 1681 , - 188 , - 1767 , - 2962 , - 317 , - 744 , - 787 , - 446 , - 3177 , - 2068 , - 575 , - 2154 , - 3349 , - 704 , - 1131 , - 1174 , - 833 , - 108 , - 2455 , - 962 , - 2541 , - 280 , - 1091 , - 1518 , - 1561 , - 1220 , - 495 , - 2842 , - 1349 , - 2928 , - 667 , - 1478 , - 1905 , - 1948 , - 1607 , - 882 , - 3229 , - 1736 , - 3315 , - 1054 , - 1865 , - 2292 , - 2335 , - 1994 , - 1269 , - 160 , - 2123 , - 246 , - 1441 , - 2252 , - 2679 , - 2722 , - 2381 , - 1656 , - 547 , - 2510 , - 633 , - 1828 , - 2639 , - 3066 , - 3109 , - 2768 , - 2043 , - 934 , - 2897 , - 1020 , - 2215 , - 3026 , - 3453 , - 40 , - 3155 , - 2430 , - 1321 , - 3284 , - 1407 , - 2602 , - 3413 , - 384 , - 427 , - 86 , - 2817 , - 1708 , - 215 , - 1794 , - 2989 , - 344 , - 771 , - 814 , - 473 , - 3204 , - 2095 , - 602 , - 2181 , - 3376 , - 731 , - 1158 , - 1201 , - 860 , - 135 , - 2482 , - 989 , - 2568 , - 307 , - 1118 , - 1545 , - 1588 , - 1247 , - 522 , - 2869 , - 1376 , - 2955 , - 694 , - 1505 , - 1932 , - 1975 , - 1634 , - 909 , - 3256 , - 1763 , - 3342 , - 1081 , - 1892 , - 2319 , - 2362 , - 2021 , - 1296 , - 187 , - 2150 , - 273 , - 1468 , - 2279 , - 2706 , - 2749 , - 2408 , - 1683 , - 574 , - 2537 , - 660 , - 1855 , - 2666 , - 3093 , - 3136 , - 2795 , - 2070 , - 961 , - 2924 , - 1047 , - 2242 , - 3053 , - 24 , - 67 , - 3182 , - 2457 , - 1348 , - 3311 , - 1434 , - 2629 , - 3440 , - 411 , - 454 , - 113 , - 2844 , - 1735 , - 242 , - 1821 , - 3016 , - 371 , - 798 , - 841 , - 500 , - 3231 , - 2122 , - 629 , - 2208 , - 3403 , - 758 , - 1185 , - 1228 , - 887 , - 162 , - 2509 , - 1016 , - 2595 , - 334 , - 1145 , - 1572 , - 1615 , - 1274 , - 549 , - 2896 , - 1403 , - 2982 , - 721 , - 1532 , - 1959 , - 2002 , - 1661 , - 936 , - 3283 , - 1790 , - 3369 , - 1108 , - 1919 , - 2346 , - 2389 , - 2048 , - 1323 , - 214 , - 2177 , - 300 , - 1495 , - 2306 , - 2733 , - 2776 , - 2435 , - 1710 , - 601 , - 2564 , - 687 , - 1882 , - 2693 , - 3120 , - 3163 , - 2822 , - 2097 , - 988 , - 2951 , - 1074 , - 2269 , - 3080 , - 51 , - 94 , - 3209 , - 2484 , - 1375 , - 3338 , - 1461 , - 2656 , - 11 , - 438 , - 481 , - 140 , - 2871 , - 1762 , - 269 , - 1848 , - 3043 , - 398 , - 825 , - 868 , - 527 , - 3258 , - 2149 , - 656 , - 2235 , - 3430 , - 785 , - 1212 , - 1255 , - 914 , - 189 , - 2536 , - 1043 , - 2622 , - 361 , - 1172 , - 1599 , - 1642 , - 1301 , - 576 , - 2923 , - 1430 , - 3009 , - 748 , - 1559 , - 1986 , - 2029 , - 1688 , - 963 , - 3310 , - 1817 , - 3396 , - 1135 , - 1946 , - 2373 , - 2416 , - 2075 , - 1350 , - 241 , - 2204 , - 327 , - 1522 , - 2333 , - 2760 , - 2803 , - 2462 , - 1737 , - 628 , - 2591 , - 714 , - 1909 , - 2720 , - 3147 , - 3190 , - 2849 , - 2124 , - 1015 , - 2978 , - 1101 , - 2296 , - 3107 , - 78 , - 121 , - 3236 , - 2511 , - 1402 , - 3365 , - 1488 , - 2683 , - 38 , - 465 , - 508 , - 167 , - 2898 , - 1789 , - 296 , - 1875 , - 3070 , - 425 , - 852 , - 895 , - 554 , - 3285 , - 2176 , - 683 , - 2262 , - 1 , - 812 , - 1239 , - 1282 , - 941 , - 216 , - 2563 , - 1070 , - 2649 , - 388 , - 1199 , - 1626 , - 1669 , - 1328 , - 603 , - 2950 , - 1457 , - 3036 , - 775 , - 1586 , - 2013 , - 2056 , - 1715 , - 990 , - 3337 , - 1844 , - 3423 , - 1162 , - 1973 , - 2400 , - 2443 , - 2102 , - 1377 , - 268 , - 2231 , - 354 , - 1549 , - 2360 , - 2787 , - 2830 , - 2489 , - 1764 , - 655 , - 2618 , - 741 , - 1936 , - 2747 , - 3174 , - 3217 , - 2876 , - 2151 , - 1042 , - 3005 , - 1128 , - 2323 , - 3134 , - 105 , - 148 , - 3263 , - 2538 , - 1429 , - 3392 , - 1515 , - 2710 , - 65 , - 492 , - 535 , - 194 , - 2925 , - 1816 , - 323 , - 1902 , - 3097 , - 452 , - 879 , - 922 , - 581 , - 3312 , - 2203 , - 710 , - 2289 , - 28 , - 839 , - 1266 , - 1309 , - 968 , - 243 , - 2590 , - 1097 , - 2676 , - 415 , - 1226 , - 1653 , - 1696 , - 1355 , - 630 , - 2977 , - 1484 , - 3063 , - 802 , - 1613 , - 2040 , - 2083 , - 1742 , - 1017 , - 3364 , - 1871 , - 3450 , - 1189 , - 2000 , - 2427 , - 2470 , - 2129 , - 1404 , - 295 , - 2258 , - 381 , - 1576 , - 2387 , - 2814 , - 2857 , - 2516 , - 1791 , - 682 , - 2645 , - 768 , - 1963 , - 2774 , - 3201 , - 3244 , - 2903 , - 2178 , - 1069 , - 3032 , - 1155 , - 2350 , - 3161 , - 132 , - 175 , - 3290 , - 2565 , - 1456 , - 3419 , - 1542 , - 2737 , - 92 , - 519 , - 562 , - 221 , - 2952 , - 1843 , - 350 , - 1929 , - 3124 , - 479 , - 906 , - 949 , - 608 , - 3339 , - 2230 , - 737 , - 2316 , - 55 , - 866 , - 1293 , - 1336 , - 995 , - 270 , - 2617 , - 1124 , - 2703 , - 442 , - 1253 , - 1680 , - 1723 , - 1382 , - 657 , - 3004 , - 1511 , - 3090 , - 829 , - 1640 , - 2067 , - 2110 , - 1769 , - 1044 , - 3391 , - 1898 , - 21 , - 1216 , - 2027 , - 2454 , - 2497 , - 2156 , - 1431 , - 322 , - 2285 , - 408 , - 1603 , - 2414 , - 2841 , - 2884 , - 2543 , - 1818 , - 709 , - 2672 , - 795 , - 1990 , - 2801 , - 3228 , - 3271 , - 2930 , - 2205 , - 1096 , - 3059 , - 1182 , - 2377 , - 3188 , - 159 , - 202 , - 3317 , - 2592 , - 1483 , - 3446 , - 1569 , - 2764 , - 119 , - 546 , - 589 , - 248 , - 2979 , - 1870 , - 377 , - 1956 , - 3151 , - 506 , - 933 , - 976 , - 635 , - 3366 , - 2257 , - 764 , - 2343 , - 82 , - 893 , - 1320 , - 1363 , - 1022 , - 297 , - 2644 , - 1151 , - 2730 , - 469 , - 1280 , - 1707 , - 1750 , - 1409 , - 684 , - 3031 , - 1538 , - 3117 , - 856 , - 1667 , - 2094 , - 2137 , - 1796 , - 1071 , - 3418 , - 1925 , - 48 , - 1243 , - 2054 , - 2481 , - 2524 , - 2183 , - 1458 , - 349 , - 2312 , - 435 , - 1630 , - 2441 , - 2868 , - 2911 , - 2570 , - 1845 , - 736 , - 2699 , - 822 , - 2017 , - 2828 , - 3255 , - 3298 , - 2957 , - 2232 , - 1123 , - 3086 , - 1209 , - 2404 , - 3215 , - 186 , - 229 , - 3344 , - 2619 , - 1510 , - 17 , - 1596 , - 2791 , - 146 , - 573 , - 616 , - 275 , - 3006 , - 1897 , - 404 , - 1983 , - 3178 , - 533 , - 960 , - 1003 , - 662 , - 3393 , - 2284 , - 791 , - 2370 , - 109 , - 920 , - 1347 , - 1390 , - 1049 , - 324 , - 2671 , - 1178 , - 2757 , - 496 , - 1307 , - 1734 , - 1777 , - 1436 , - 711 , - 3058 , - 1565 , - 3144 , - 883 , - 1694 , - 2121 , - 2164 , - 1823 , - 1098 , - 3445 , - 1952 , - 75 , - 1270 , - 2081 , - 2508 , - 2551 , - 2210 , - 1485 , - 376 , - 2339 , - 462 , - 1657 , - 2468 , - 2895 , - 2938 , - 2597 , - 1872 , - 763 , - 2726 , - 849 , - 2044 , - 2855 , - 3282 , - 3325 , - 2984 , - 2259 , - 1150 , - 3113 , - 1236 , - 2431 , - 3242 , - 213 , - 256 , - 3371 , - 2646 , - 1537 , - 44 , - 1623 , - 2818 , - 173 , - 600 , - 643 , - 302 , - 3033 , - 1924 , - 431 , - 2010 , - 3205 , - 560 , - 987 , - 1030 , - 689 , - 3420 , - 2311 , - 818 , - 2397 , - 136 , - 947 , - 1374 , - 1417 , - 1076 , - 351 , - 2698 , - 1205 , - 2784 , - 523 , - 1334 , - 1761 , - 1804 , - 1463 , - 738 , - 3085 , - 1592 , - 3171 , - 910 , - 1721 , - 2148 , - 2191 , - 1850 , - 1125 , - 16 , - 1979 , - 102 , - 1297 , - 2108 , - 2535 , - 2578 , - 2237 , - 1512 , - 403 , - 2366 , - 489 , - 1684 , - 2495 , - 2922 , - 2965 , - 2624 , - 1899 , - 790 , - 2753 , - 876 , - 2071 , - 2882 , - 3309 , - 3352 , - 3011 , - 2286 , - 1177 , - 3140 , - 1263 , - 2458 , - 3269 , - 240 , - 283 , - 3398 , - 2673 , - 1564 , - 71 , - 1650 , - 2845 , - 200 , - 627 , - 670 , - 329 , - 3060 , - 1951 , - 458 , - 2037 , - 3232 , - 587 , - 1014 , - 1057 , - 716 , - 3447 , - 2338 , - 845 , - 2424 , - 163 , - 974 , - 1401 , - 1444 , - 1103 , - 378 , - 2725 , - 1232 , - 2811 , - 550 , - 1361 , - 1788 , - 1831 , - 1490 , - 765 , - 3112 , - 1619 , - 3198 , - 937 , - 1748 , - 2175 , - 2218 , - 1877 , - 1152 , - 43 , - 2006 , - 129 , - 1324 , - 2135 , - 2562 , - 2605 , - 2264 , - 1539 , - 430 , - 2393 , - 516 , - 1711 , - 2522 , - 2949 , - 2992 , - 2651 , - 1926 , - 817 , - 2780 , - 903 , - 2098 , - 2909 , - 3336 , - 3379 , - 3038 , - 2313 , - 1204 , - 3167 , - 1290 , - 2485 , - 3296 , - 267 , - 310 , - 3425 , - 2700 , - 1591 , - 98 , - 1677 , - 2872 , - 227 , - 654 , - 697 , - 356 , - 3087 , - 1978 , - 485 , - 2064 , - 3259 , - 614 , - 1041 , - 1084 , - 743 , - 18 , - 2365 , - 872 , - 2451 , - 190 , - 1001 , - 1428 , - 1471 , - 1130 , - 405 , - 2752 , - 1259 , - 2838 , - 577 , - 1388 , - 1815 , - 1858 , - 1517 , - 792 , - 3139 , - 1646 , - 3225 , - 964 , - 1775 , - 2202 , - 2245 , - 1904 , - 1179 , - 70 , - 2033 , - 156 , - 1351 , - 2162 , - 2589 , - 2632 , - 2291 , - 1566 , - 457 , - 2420 , - 543 , - 1738 , - 2549 , - 2976 , - 3019 , - 2678 , - 1953 , - 844 , - 2807 , - 930 , - 2125 , - 2936 , - 3363 , - 3406 , - 3065 , - 2340 , - 1231 , - 3194 , - 1317 , - 2512 , - 3323 , - 294 , - 337 , - 3452 , - 2727 , - 1618 , - 125 , - 1704 , - 2899 , - 254 , - 681 , - 724 , - 383 , - 3114 , - 2005 , - 512 , - 2091 , - 3286 , - 641 , - 1068 , - 1111 , - 770 , - 45 , - 2392 , - 899 , - 2478 , - 217 , - 1028 , - 1455 , - 1498 , - 1157 , - 432 , - 2779 , - 1286 , - 2865 , - 604 , - 1415 , - 1842 , - 1885 , - 1544 , - 819 , - 3166 , - 1673 , - 3252 , - 991 , - 1802 , - 2229 , - 2272 , - 1931 , - 1206 , - 97 , - 2060 , - 183 , - 1378 , - 2189 , - 2616 , - 2659 , - 2318 , - 1593 , - 484 , - 2447 , - 570 , - 1765 , - 2576 , - 3003 , - 3046 , - 2705 , - 1980 , - 871 , - 2834 , - 957 , - 2152 , - 2963 , - 3390 , - 3433 , - 3092 , - 2367 , - 1258 , - 3221 , - 1344 , - 2539 , - 3350 , - 321 , - 364 , - 23 , - 2754 , - 1645 , - 152 , - 1731 , - 2926 , - 281 , - 708 , - 751 , - 410 , - 3141 , - 2032 , - 539 , - 2118 , - 3313 , - 668 , - 1095 , - 1138 , - 797 , - 72 , - 2419 , - 926 , - 2505 , - 244 , - 1055 , - 1482 , - 1525 , - 1184 , - 459 , - 2806 , - 1313 , - 2892 , - 631 , - 1442 , - 1869 , - 1912 , - 1571 , - 846 , - 3193 , - 1700 , - 3279 , - 1018 , - 1829 , - 2256 , - 2299 , - 1958 , - 1233 , - 124 , - 2087 , - 210 , - 1405 , - 2216 , - 2643 , - 2686 , - 2345 , - 1620 , - 511 , - 2474 , - 597 , - 1792 , - 2603 , - 3030 , - 3073 , - 2732 , - 2007 , - 898 , - 2861 , - 984 , - 2179 , - 2990 , - 3417 , - 4 , - 3119 , - 2394 , - 1285 , - 3248 , - 1371 , - 2566 , - 3377 , - 348 , - 391 , - 50 , - 2781 , - 1672 , - 179 , - 1758 , - 2953 , - 308 , - 735 , - 778 , - 437 , - 3168 , - 2059 , - 566 , - 2145 , - 3340 , - 695 , - 1122 , - 1165 , - 824 , - 99 , - 2446 , - 953 , - 2532 , - 271 , - 1082 , - 1509 , - 1552 , - 1211 , - 486 , - 2833 , - 1340 , - 2919 , - 658 , - 1469 , - 1896 , - 1939 , - 1598 , - 873 , - 3220 , - 1727 , - 3306 , - 1045 , - 1856 , - 2283 , - 2326 , - 1985 , - 1260 , - 151 , - 2114 , - 237 , - 1432 , - 2243 , - 2670 , - 2713 , - 2372 , - 1647 , - 538 , - 2501 , - 624 , - 1819 , - 2630 , - 3057 , - 3100 , - 2759 , - 2034 , - 925 , - 2888 , - 1011 , - 2206 , - 3017 , - 3444 , - 31 , - 3146 , - 2421 , - 1312 , - 3275 , - 1398 , - 2593 , - 3404 , - 375 , - 418 , - 77 , - 2808 , - 1699 , - 206 , - 1785 , - 2980 , - 335 , - 762 , - 805 , - 464 , - 3195 , - 2086 , - 593 , - 2172 , - 3367 , - 722 , - 1149 , - 1192 , - 851 , - 126 , - 2473 , - 980 , - 2559 , - 298 , - 1109 , - 1536 , - 1579 , - 1238 , - 513 , - 2860 , - 1367 , - 2946 , - 685 , - 1496 , - 1923 , - 1966 , - 1625 , - 900 , - 3247 , - 1754 , - 3333 , - 1072 , - 1883 , - 2310 , - 2353 , - 2012 , - 1287 , - 178 , - 2141 , - 264 , - 1459 , - 2270 , - 2697 , - 2740 , - 2399 , - 1674 , - 565 , - 2528 , - 651 , - 1846 , - 2657 , - 3084 , - 3127 , - 2786 , - 2061 , - 952 , - 2915 , - 1038 , - 2233 , - 3044 , - 15 , - 58 , - 3173 , - 2448 , - 1339 , - 3302 , - 1425 , - 2620 , - 3431 , - 402 , - 445 , - 104 , - 2835 , - 1726 , - 233 , - 1812 , - 3007 , - 362 , - 789 , - 832 , - 491 , - 3222 , - 2113 , - 620 , - 2199 , - 3394 , - 749 , - 1176 , - 1219 , - 878 , - 153 , - 2500 , - 1007 , - 2586 , - 325 , - 1136 , - 1563 , - 1606 , - 1265 , - 540 , - 2887 , - 1394 , - 2973 , - 712 , - 1523 , - 1950 , - 1993 , - 1652 , - 927 , - 3274 , - 1781 , - 3360 , - 1099 , - 1910 , - 2337 , - 2380 , - 2039 , - 1314 , - 205 , - 2168 , - 291 , - 1486 , - 2297 , - 2724 , - 2767 , - 2426 , - 1701 , - 592 , - 2555 , - 678 , - 1873 , - 2684 , - 3111 , - 3154 , - 2813 , - 2088 , - 979 , - 2942 , - 1065 , - 2260 , - 3071 , - 42 , - 85 , - 3200 , - 2475 , - 1366 , - 3329 , - 1452 , - 2647 , - 2 , - 429 , - 472 , - 131 , - 2862 , - 1753 , - 260 , - 1839 , - 3034 , - 389 , - 816 , - 859 , - 518 , - 3249 , - 2140 , - 647 , - 2226 , - 3421 , - 776 , - 1203 , - 1246 , - 905 , - 180 , - 2527 , - 1034 , - 2613 , - 352 , - 1163 , - 1590 , - 1633 , - 1292 , - 567 , - 2914 , - 1421 , - 3000 , - 739 , - 1550 , - 1977 , - 2020 , - 1679 , - 954 , - 3301 , - 1808 , - 3387 , - 1126 , - 1937 , - 2364 , - 2407 , - 2066 , - 1341 , - 232 , - 2195 , - 318 , - 1513 , - 2324 , - 2751 , - 2794 , - 2453 , - 1728 , - 619 , - 2582 , - 705 , - 1900 , - 2711 , - 3138 , - 3181 , - 2840 , - 2115 , - 1006 , - 2969 , - 1092 , - 2287 , - 3098 , - 69 , - 112 , - 3227 , - 2502 , - 1393 , - 3356 , - 1479 , - 2674 , - 29 , - 456 , - 499 , - 158 , - 2889 , - 1780 , - 287 , - 1866 , - 3061 , - 416 , - 843 , - 886 , - 545 , - 3276 , - 2167 , - 674 , - 2253 , - 3448 , - 803 , - 1230 , - 1273 , - 932 , - 207 , - 2554 , - 1061 , - 2640 , - 379 , - 1190 , - 1617 , - 1660 , - 1319 , - 594 , - 2941 , - 1448 , - 3027 , - 766 , - 1577 , - 2004 , - 2047 , - 1706 , - 981 , - 3328 , - 1835 , - 3414 , - 1153 , - 1964 , - 2391 , - 2434 , - 2093 , - 1368 , - 259 , - 2222 , - 345 , - 1540 , - 2351 , - 2778 , - 2821 , - 2480 , - 1755 , - 646 , - 2609 , - 732 , - 1927 , - 2738 , - 3165 , - 3208 , - 2867 , - 2142 , - 1033 , - 2996 , - 1119 , - 2314 , - 3125 , - 96 , - 139 , - 3254 , - 2529 , - 1420 , - 3383 , - 1506 , - 2701 , - 56 , - 483 , - 526 , - 185 , - 2916 , - 1807 , - 314 , - 1893 , - 3088 , - 443 , - 870 , - 913 , - 572 , - 3303 , - 2194 , - 701 , - 2280 , - 19 , - 830 , - 1257 , - 1300 , - 959 , - 234 , - 2581 , - 1088 , - 2667 , - 406 , - 1217 , - 1644 , - 1687 , - 1346 , - 621 , - 2968 , - 1475 , - 3054 , - 793 , - 1604 , - 2031 , - 2074 , - 1733 , - 1008 , - 3355 , - 1862 , - 3441 , - 1180 , - 1991 , - 2418 , - 2461 , - 2120 , - 1395 , - 286 , - 2249 , - 372 , - 1567 , - 2378 , - 2805 , - 2848 , - 2507 , - 1782 , - 673 , - 2636 , - 759 , - 1954 , - 2765 , - 3192 , - 3235 , - 2894 , - 2169 , - 1060 , - 3023 , - 1146 , - 2341 , - 3152 , - 123 , - 166 , - 3281 , - 2556 , - 1447 , - 3410 , - 1533 , - 2728 , - 83 , - 510 , - 553 , - 212 , - 2943 , - 1834 , - 341 , - 1920 , - 3115 , - 470 , - 897 , - 940 , - 599 , - 3330 , - 2221 , - 728 , - 2307 , - 46 , - 857 , - 1284 , - 1327 , - 986 , - 261 , - 2608 , - 1115 , - 2694 , - 433 , - 1244 , - 1671 , - 1714 , - 1373 , - 648 , - 2995 , - 1502 , - 3081 , - 820 , - 1631 , - 2058 , - 2101 , - 1760 , - 1035 , - 3382 , - 1889 , - 12 , - 1207 , - 2018 , - 2445 , - 2488 , - 2147 , - 1422 , - 313 , - 2276 , - 399 , - 1594 , - 2405 , - 2832 , - 2875 , - 2534 , - 1809 , - 700 , - 2663 , - 786 , - 1981 , - 2792 , - 3219 , - 3262 , - 2921 , - 2196 , - 1087 , - 3050 , - 1173 , - 2368 , - 3179 , - 150 , - 193 , - 3308 , - 2583 , - 1474 , - 3437 , - 1560 , - 2755 , - 110 , - 537 , - 580 , - 239 , - 2970 , - 1861 , - 368 , - 1947 , - 3142 , - 497 , - 924 , - 967 , - 626 , - 3357 , - 2248 , - 755 , - 2334 , - 73 , - 884 , - 1311 , - 1354 , - 1013 , - 288 , - 2635 , - 1142 , - 2721 , - 460 , - 1271 , - 1698 , - 1741 , - 1400 , - 675 , - 3022 , - 1529 , - 3108 , - 847 , - 1658 , - 2085 , - 2128 , - 1787 , - 1062 , - 3409 , - 1916 , - 39 , - 1234 , - 2045 , - 2472 , - 2515 , - 2174 , - 1449 , - 340 , - 2303 , - 426 , - 1621 , - 2432 , - 2859 , - 2902 , - 2561 , - 1836 , - 727 , - 2690 , - 813 , - 2008 , - 2819 , - 3246 , - 3289 , - 2948 , - 2223 , - 1114 , - 3077 , - 1200 , - 2395 , - 3206 , - 177 , - 220 , - 3335 , - 2610 , - 1501 , - 8 , - 1587 , - 2782 , - 137 , - 564 , - 607 , - 266 , - 2997 , - 1888 , - 395 , - 1974 , - 3169 , - 524 , - 951 , - 994 , - 653 , - 3384 , - 2275 , - 782 , - 2361 , - 100 , - 911 , - 1338 , - 1381 , - 1040 , - 315 , - 2662 , - 1169 , - 2748 , - 487 , - 1298 , - 1725 , - 1768 , - 1427 , - 702 , - 3049 , - 1556 , - 3135 , - 874 , - 1685 , - 2112 , - 2155 , - 1814 , - 1089 , - 3436 , - 1943 , - 66 , - 1261 , - 2072 , - 2499 , - 2542 , - 2201 , - 1476 , - 367 , - 2330 , - 453 , - 1648 , - 2459 , - 2886 , - 2929 , - 2588 , - 1863 , - 754 , - 2717 , - 840 , - 2035 , - 2846 , - 3273 , - 3316 , - 2975 , - 2250 , - 1141 , - 3104 , - 1227 , - 2422 , - 3233 , - 204 , - 247 , - 3362 , - 2637 , - 1528 , - 35 , - 1614 , - 2809 , - 164 , - 591 , - 634 , - 293 , - 3024 , - 1915 , - 422 , - 2001 , - 3196 , - 551 , - 978 , - 1021 , - 680 , - 3411 , - 2302 , - 809 , - 2388 , - 127 , - 938 , - 1365 , - 1408 , - 1067 , - 342 , - 2689 , - 1196 , - 2775 , - 514 , - 1325 , - 1752 , - 1795 , - 1454 , - 729 , - 3076 , - 1583 , - 3162 , - 901 , - 1712 , - 2139 , - 2182 , - 1841 , - 1116 , - 7 , - 1970 , - 93 , - 1288 , - 2099 , - 2526 , - 2569 , - 2228 , - 1503 , - 394 , - 2357 , - 480 , - 1675 , - 2486 , - 2913 , - 2956 , - 2615 , - 1890 , - 781 , - 2744 , - 867 , - 2062 , - 2873 , - 3300 , - 3343 , - 3002 , - 2277 , - 1168 , - 3131 , - 1254 , - 2449 , - 3260 , - 231 , - 274 , - 3389 , - 2664 , - 1555 , - 62 , - 1641 , - 2836 , - 191 , - 618 , - 661 , - 320 , - 3051 , - 1942 , - 449 , - 2028 , - 3223 , - 578 , - 1005 , - 1048 , - 707 , - 3438 , - 2329 , - 836 , - 2415 , - 154 , - 965 , - 1392 , - 1435 , - 1094 , - 369 , - 2716 , - 1223 , - 2802 , - 541 , - 1352 , - 1779 , - 1822 , - 1481 , - 756 , - 3103 , - 1610 , - 3189 , - 928 , - 1739 , - 2166 , - 2209 , - 1868 , - 1143 , - 34 , - 1997 , - 120 , - 1315 , - 2126 , - 2553 , - 2596 , - 2255 , - 1530 , - 421 , - 2384 , - 507 , - 1702 , - 2513 , - 2940 , - 2983 , - 2642 , - 1917 , - 808 , - 2771 , - 894 , - 2089 , - 2900 , - 3327 , - 3370 , - 3029 , - 2304 , - 1195 , - 3158 , - 1281 , - 2476 , - 3287 , - 258 , - 301 , - 3416 , - 2691 , - 1582 , - 89 , - 1668 , - 2863 , - 218 , - 645 , - 688 , - 347 , - 3078 , - 1969 , - 476 , - 2055 , - 3250 , - 605 , - 1032 , - 1075 , - 734 , - 9 , - 2356 , - 863 , - 2442 , - 181 , - 992 , - 1419 , - 1462 , - 1121 , - 396 , - 2743 , - 1250 , - 2829 , - 568 , - 1379 , - 1806 , - 1849 , - 1508 , - 783 , - 3130 , - 1637 , - 3216 , - 955 , - 1766 , - 2193 , - 2236 , - 1895 , - 1170 , - 61 , - 2024 , - 147 , - 1342 , - 2153 , - 2580 , - 2623 , - 2282 , - 1557 , - 448 , - 2411 , - 534 , - 1729 , - 2540 , - 2967 , - 3010 , - 2669 , - 1944 , - 835 , - 2798 , - 921 , - 2116 , - 2927 , - 3354 , - 3397 , - 3056 , - 2331 , - 1222 , - 3185 , - 1308 , - 2503 , - 3314 , - 285 , - 328 , - 3443 , - 2718 , - 1609 , - 116 , - 1695 , - 2890 , - 245 , - 672 , - 715 , - 374 , - 3105 , - 1996 , - 503 , - 2082 , - 3277 , - 632 , - 1059 , - 1102 , - 761 , - 36 , - 2383 , - 890 , - 2469 , - 208 , - 1019 , - 1446 , - 1489 , - 1148 , - 423 , - 2770 , - 1277 , - 2856 , - 595 , - 1406 , - 1833 , - 1876 , - 1535 , - 810 , - 3157 , - 1664 , - 3243 , - 982 , - 1793 , - 2220 , - 2263 , - 1922 , - 1197 , - 88 , - 2051 , - 174 , - 1369 , - 2180 , - 2607 , - 2650 , - 2309 , - 1584 , - 475 , - 2438 , - 561 , - 1756 , - 2567 , - 2994 , - 3037 , - 2696 , - 1971 , - 862 , - 2825 , - 948 , - 2143 , - 2954 , - 3381 , - 3424 , - 3083 , - 2358 , - 1249 , - 3212 , - 1335 , - 2530 , - 3341 , - 312 , - 355 , - 14 , - 2745 , - 1636 , - 143 , - 1722 , - 2917 , - 272 , - 699 , - 742 , - 401 , - 3132 , - 2023 , - 530 , - 2109 , - 3304 , - 659 , - 1086 , - 1129 , - 788 , - 63 , - 2410 , - 917 , - 2496 , - 235 , - 1046 , - 1473 , - 1516 , - 1175 , - 450 , - 2797 , - 1304 , - 2883 , - 622 , - 1433 , - 1860 , - 1903 , - 1562 , - 837 , - 3184 , - 1691 , - 3270 , - 1009 , - 1820 , - 2247 , - 2290 , - 1949 , - 1224 , - 115 , - 2078 , - 201 , - 1396 , - 2207 , - 2634 , - 2677 , - 2336 , - 1611 , - 502 , - 2465 , - 588 , - 1783 , - 2594 , - 3021 , - 3064 , - 2723 , - 1998 , - 889 , - 2852 , - 975 , - 2170 , - 2981 , - 3408 , - 3451 , - 3110 , - 2385 , - 1276 , - 3239 , - 1362 , - 2557 , - 3368 , - 339 , - 382 , - 41 , - 2772 , - 1663 , - 170 , - 1749 , - 2944 , - 299 , - 726 , - 769 , - 428 , - 3159 , - 2050 , - 557 , - 2136 , - 3331 , - 686 , - 1113 , - 1156 , - 815 , - 90 , - 2437 , - 944 , - 2523 , - 262 , - 1073 , - 1500 , - 1543 , - 1202 , - 477 , - 2824 , - 1331 , - 2910 , - 649 , - 1460 , - 1887 , - 1930 , - 1589 , - 864 , - 3211 , - 1718 , - 3297 , - 1036 , - 1847 , - 2274 , - 2317 , - 1976 , - 1251 , - 142 , - 2105 , - 228 , - 1423 , - 2234 , - 2661 , - 2704 , - 2363 , - 1638 , - 529 , - 2492 , - 615 , - 1810 , - 2621 , - 3048 , - 3091 , - 2750 , - 2025 , - 916 , - 2879 , - 1002 , - 2197 , - 3008 , - 3435 , - 22 , - 3137 , - 2412 , - 1303 , - 3266 , - 1389 , - 2584 , - 3395 , - 366 , - 409 , - 68 , - 2799 , - 1690 , - 197 , - 1776 , - 2971 , - 326 , - 753 , - 796 , - 455 , - 3186 , - 2077 , - 584 , - 2163 , - 3358 , - 713 , - 1140 , - 1183 , - 842 , - 117 , - 2464 , - 971 , - 2550 , - 289 , - 1100 , - 1527 , - 1570 , - 1229 , - 504 , - 2851 , - 1358 , - 2937 , - 676 , - 1487 , - 1914 , - 1957 , - 1616 , - 891 , - 3238 , - 1745 , - 3324 , - 1063 , - 1874 , - 2301 , - 2344 , - 2003 , - 1278 , - 169 , - 2132 , - 255 , - 1450 , - 2261 , - 2688 , - 2731 , - 2390 , - 1665 , - 556 , - 2519 , - 642 , - 1837 , - 2648 , - 3075 , - 3118 , - 2777 , - 2052 , - 943 , - 2906 , - 1029 , - 2224 , - 3035 , - 6 , - 49 , - 3164 , - 2439 , - 1330 , - 3293 , - 1416 , - 2611 , - 3422 , - 393 , - 436 , - 95 , - 2826 , - 1717 , - 224 , - 1803 , - 2998 , - 353 , - 780 , - 823 , - 482 , - 3213 , - 2104 , - 611 , - 2190 , - 3385 , - 740 , - 1167 , - 1210 , - 869 , - 144 , - 2491 , - 998 , - 2577 , - 316 , - 1127 , - 1554 , - 1597 , - 1256 , - 531 , - 2878 , - 1385 , - 2964 , - 703 , - 1514 , - 1941 , - 1984 , - 1643 , - 918 , - 3265 , - 1772 , - 3351 , - 1090 , - 1901 , - 2328 , - 2371 , - 2030 , - 1305 , - 196 , - 2159 , - 282 , - 1477 , - 2288 , - 2715 , - 2758 , - 2417 , - 1692 , - 583 , - 2546 , - 669 , - 1864 , - 2675 , - 3102 , - 3145 , - 2804 , - 2079 , - 970 , - 2933 , - 1056 , - 2251 , - 3062 , - 33 , - 76 , - 3191 , - 2466 , - 1357 , - 3320 , - 1443 , - 2638 , - 3449 , - 420 , - 463 , - 122 , - 2853 , - 1744 , - 251 , - 1830 , - 3025 , - 380 , - 807 , - 850 , - 509 , - 3240 , - 2131 , - 638 , - 2217 , - 3412 , - 767 , - 1194 , - 1237 , - 896 , - 171 , - 2518 , - 1025 , - 2604 , - 343 , - 1154 , - 1581 , - 1624 , - 1283 , - 558 , - 2905 , - 1412 , - 2991 , - 730 , - 1541 , - 1968 , - 2011 , - 1670 , - 945 , - 3292 , - 1799 , - 3378 , - 1117 , - 1928 , - 2355 , - 2398 , - 2057 , - 1332 , - 223 , - 2186 , - 309 , - 1504 , - 2315 , - 2742 , - 2785 , - 2444 , - 1719 , - 610 , - 2573 , - 696 , - 1891 , - 2702 , - 3129 , - 3172 , - 2831 , - 2106 , - 997 , - 2960 , - 1083 , - 2278 , - 3089 , - 60 , - 103 , - 3218 , - 2493 , - 1384 , - 3347 , - 1470 , - 2665 , - 20 , - 447 , - 490 , - 149 , - 2880 , - 1771 , - 278 , - 1857 , - 3052 , - 407 , - 834 , - 877 , - 536 , - 3267 , - 2158 , - 665 , - 2244 , - 3439 , - 794 , - 1221 , - 1264 , - 923 , - 198 , - 2545 , - 1052 , - 2631 , - 370 , - 1181 , - 1608 , - 1651 , - 1310 , - 585 , - 2932 , - 1439 , - 3018 , - 757 , - 1568 , - 1995 , - 2038 , - 1697 , - 972 , - 3319 , - 1826 , - 3405 , - 1144 , - 1955 , - 2382 , - 2425 , - 2084 , - 1359 , - 250 , - 2213 , - 336 , - 1531 , - 2342 , - 2769 , - 2812 , - 2471 , - 1746 , - 637 , - 2600 , - 723 , - 1918 , - 2729 , - 3156 , - 3199 , - 2858 , - 2133 , - 1024 , - 2987 , - 1110 , - 2305 , - 3116 , - 87 , - 130 , - 3245 , - 2520 , - 1411 , - 3374 , - 1497 , - 2692 , - 47 , - 474 , - 517 , - 176 , - 2907 , - 1798 , - 305 , - 1884 , - 3079 , - 434 , - 861 , - 904 , - 563 , - 3294 , - 2185 , - 692 , - 2271 , - 10 , - 821 , - 1248 , - 1291 , - 950 , - 225 , - 2572 , - 1079 , - 2658 , - 397 , - 1208 , - 1635 , - 1678 , - 1337 , - 612 , - 2959 , - 1466 , - 3045 , - 784 , - 1595 , - 2022 , - 2065 , - 1724 , - 999 , - 3346 , - 1853 , - 3432 , - 1171 , - 1982 , - 2409 , - 2452 , - 2111 , - 1386 , - 277 , - 2240 , - 363 , - 1558 , - 2369 , - 2796 , - 2839 , - 2498 , - 1773 , - 664 , - 2627 , - 750 , - 1945 , - 2756 , - 3183 , - 3226 , - 2885 , - 2160 , - 1051 , - 3014 , - 1137 , - 2332 , - 3143 , - 114 , - 157 , - 3272 , - 2547 , - 1438 , - 3401 , - 1524 , - 2719 , - 74 , - 501 , - 544 , - 203 , - 2934 , - 1825 , - 332 , - 1911 , - 3106 , - 461 , - 888 , - 931 , - 590 , - 3321 , - 2212 , - 719 , - 2298 , - 37 , - 848 , - 1275 , - 1318 , - 977 , - 252 , - 2599 , - 1106 , - 2685 , - 424 , - 1235 , - 1662 , - 1705 , - 1364 , - 639 , - 2986 , - 1493 , - 3072 , - 811 , - 1622 , - 2049 , - 2092 , - 1751 , - 1026 , - 3373 , - 1880 , - 3 , - 1198 , - 2009 , - 2436 , - 2479 , - 2138 , - 1413 , - 304 , - 2267 , - 390 , - 1585 , - 2396 , - 2823 , - 2866 , - 2525 , - 1800 , - 691 , - 2654 , - 777 , - 1972 , - 2783 , - 3210 , - 3253 , - 2912 , - 2187 , - 1078 , - 3041 , - 1164 , - 2359 , - 3170 , - 141 , - 184 , - 3299 , - 2574 , - 1465 , - 3428 , - 1551 , - 2746 , - 101 , - 528 , - 571 , - 230 , - 2961 , - 1852 , - 359 , - 1938 , - 3133 , - 488 , - 915 , - 958 , - 617 , - 3348 , - 2239 , - 746 , - 2325 , - 64 , - 875 , - 1302 , - 1345 , - 1004 , - 279 , - 2626 , - 1133 , - 2712 , - 451 , - 1262 , - 1689 , - 1732 , - 1391 , - 666 , - 3013 , - 1520 , - 3099 , - 838 , - 1649 , - 2076 , - 2119 , - 1778 , - 1053 , - 3400 , - 1907 , - 30 , - 1225 , - 2036 , - 2463 , - 2506 , - 2165 , - 1440 , - 331 , - 2294 , - 417 , - 1612 , - 2423 , - 2850 , - 2893 , - 2552 , - 1827 , - 718 , - 2681 , - 804 , - 1999 , - 2810 , - 3237 , - 3280 , - 2939 , - 2214 , - 1105 , - 3068 , - 1191 , - 2386 , - 3197 , - 168 , - 211 , - 3326 , - 2601 , - 1492 , - 3455 , - 1578 , - 2773 , - 128 , - 555 , - 598 , - 257 , - 2988 , - 1879 , - 386 , - 1965 , - 3160 , - 515 , - 942 , - 985 , - 644 , - 3375 , - 2266 , - 773 , - 2352 , - 91 , - 902 , - 1329 , - 1372 , - 1031 , - 306 , - 2653 , - 1160 , - 2739 , - 478 , - 1289 , - 1716 , - 1759 , - 1418 , - 693 , - 3040 , - 1547 , - 3126 , - 865 , - 1676 , - 2103 , - 2146 , - 1805 , - 1080 , - 3427 , - 1934 , - 57 , - 1252 , - 2063 , - 2490 , - 2533 , - 2192 , - 1467 , - 358 , - 2321 , - 444 , - 1639 , - 2450 , - 2877 , - 2920 , - 2579 , - 1854 , - 745 , - 2708 , - 831 , - 2026 , - 2837 , - 3264 , - 3307 , - 2966 , - 2241 , - 1132 , - 3095 , - 1218 , - 2413 , - 3224 , - 195 , - 238 , - 3353 , - 2628 , - 1519 , - 26 , - 1605 , - 2800 , - 155 , - 582 , - 625 , - 284 , - 3015 , - 1906 , - 413 , - 1992 , - 3187 , - 542 , - 969 , - 1012 , - 671 , - 3402 , - 2293 , - 800 , - 2379 , - 118 , - 929 , - 1356 , - 1399 , - 1058 , - 333 , - 2680 , - 1187 , - 2766 , - 505 , - 1316 , - 1743 , - 1786 , - 1445 , - 720 , - 3067 , - 1574 , - 3153 , - 892 , - 1703 , - 2130 , - 2173 , - 1832 , - 1107 , - 3454 , - 1961 , - 84 , - 1279 , - 2090 , - 2517 , - 2560 , - 2219 , - 1494 , - 385 , - 2348 , - 471 , - 1666 , - 2477 , - 2904 , - 2947 , - 2606 , - 1881 , - 772 , - 2735 , - 858 , - 2053 , - 2864 , - 3291 , - 3334 , - 2993 , - 2268 , - 1159 , - 3122 , - 1245 , - 2440 , - 3251 , - 222 , - 265 , - 3380 , - 2655 , - 1546 , - 53 , - 1632 , - 2827 , - 182 , - 609 , - 652 , - 311 , - 3042 , - 1933 , - 440 , - 2019 , - 3214 , - 569 , - 996 , - 1039 , - 698 , - 3429 , - 2320 , - 827 , - 2406 , - 145 , - 956 , - 1383 , - 1426 , - 1085 , - 360 , - 2707 , - 1214 , - 2793 , - 532 , - 1343 , - 1770 , - 1813 , - 1472 , - 747 , - 3094 , - 1601 , - 3180 , - 919 , - 1730 , - 2157 , - 2200 , - 1859 , - 1134 , - 25 , - 1988 , - 111 , - 1306 , - 2117 , - 2544 , - 2587 , - 2246 , - 1521 , - 412 , - 2375 , - 498 , - 1693 , - 2504 , - 2931 , - 2974 , - 2633 , - 1908 , - 799 , - 2762 , - 885 , - 2080 , - 2891 , - 3318 , - 3361 , - 3020 , - 2295 , - 1186 , - 3149 , - 1272 , - 2467 , - 3278 , - 249 , - 292 , - 3407 , - 2682 , - 1573 , - 80 , - 1659 , - 2854 , - 209 , - 636 , - 679 , - 338 , - 3069 , - 1960 , - 467 , - 2046 , - 3241 , - 596 , - 1023 , - 1066 , - 725 , - 0 , - 773 , - 1106 , - 999 , - 452 , - 2985 , - 1558 , - 3211 , - 904 , - 1677 , - 2010 , - 1903 , - 1356 , - 369 , - 2462 , - 595 , - 1808 , - 2581 , - 2914 , - 2807 , - 2260 , - 1273 , - 3366 , - 1499 , - 2712 , - 3485 , - 298 , - 191 , - 3164 , - 2177 , - 750 , - 2403 , - 96 , - 869 , - 1202 , - 1095 , - 548 , - 3081 , - 1654 , - 3307 , - 1000 , - 1773 , - 2106 , - 1999 , - 1452 , - 465 , - 2558 , - 691 , - 1904 , - 2677 , - 3010 , - 2903 , - 2356 , - 1369 , - 3462 , - 1595 , - 2808 , - 61 , - 394 , - 287 , - 3260 , - 2273 , - 846 , - 2499 , - 192 , - 965 , - 1298 , - 1191 , - 644 , - 3177 , - 1750 , - 3403 , - 1096 , - 1869 , - 2202 , - 2095 , - 1548 , - 561 , - 2654 , - 787 , - 2000 , - 2773 , - 3106 , - 2999 , - 2452 , - 1465 , - 38 , - 1691 , - 2904 , - 157 , - 490 , - 383 , - 3356 , - 2369 , - 942 , - 2595 , - 288 , - 1061 , - 1394 , - 1287 , - 740 , - 3273 , - 1846 , - 3499 , - 1192 , - 1965 , - 2298 , - 2191 , - 1644 , - 657 , - 2750 , - 883 , - 2096 , - 2869 , - 3202 , - 3095 , - 2548 , - 1561 , - 134 , - 1787 , - 3000 , - 253 , - 586 , - 479 , - 3452 , - 2465 , - 1038 , - 2691 , - 384 , - 1157 , - 1490 , - 1383 , - 836 , - 3369 , - 1942 , - 75 , - 1288 , - 2061 , - 2394 , - 2287 , - 1740 , - 753 , - 2846 , - 979 , - 2192 , - 2965 , - 3298 , - 3191 , - 2644 , - 1657 , - 230 , - 1883 , - 3096 , - 349 , - 682 , - 575 , - 28 , - 2561 , - 1134 , - 2787 , - 480 , - 1253 , - 1586 , - 1479 , - 932 , - 3465 , - 2038 , - 171 , - 1384 , - 2157 , - 2490 , - 2383 , - 1836 , - 849 , - 2942 , - 1075 , - 2288 , - 3061 , - 3394 , - 3287 , - 2740 , - 1753 , - 326 , - 1979 , - 3192 , - 445 , - 778 , - 671 , - 124 , - 2657 , - 1230 , - 2883 , - 576 , - 1349 , - 1682 , - 1575 , - 1028 , - 41 , - 2134 , - 267 , - 1480 , - 2253 , - 2586 , - 2479 , - 1932 , - 945 , - 3038 , - 1171 , - 2384 , - 3157 , - 3490 , - 3383 , - 2836 , - 1849 , - 422 , - 2075 , - 3288 , - 541 , - 874 , - 767 , - 220 , - 2753 , - 1326 , - 2979 , - 672 , - 1445 , - 1778 , - 1671 , - 1124 , - 137 , - 2230 , - 363 , - 1576 , - 2349 , - 2682 , - 2575 , - 2028 , - 1041 , - 3134 , - 1267 , - 2480 , - 3253 , - 66 , - 3479 , - 2932 , - 1945 , - 518 , - 2171 , - 3384 , - 637 , - 970 , - 863 , - 316 , - 2849 , - 1422 , - 3075 , - 768 , - 1541 , - 1874 , - 1767 , - 1220 , - 233 , - 2326 , - 459 , - 1672 , - 2445 , - 2778 , - 2671 , - 2124 , - 1137 , - 3230 , - 1363 , - 2576 , - 3349 , - 162 , - 55 , - 3028 , - 2041 , - 614 , - 2267 , - 3480 , - 733 , - 1066 , - 959 , - 412 , - 2945 , - 1518 , - 3171 , - 864 , - 1637 , - 1970 , - 1863 , - 1316 , - 329 , - 2422 , - 555 , - 1768 , - 2541 , - 2874 , - 2767 , - 2220 , - 1233 , - 3326 , - 1459 , - 2672 , - 3445 , - 258 , - 151 , - 3124 , - 2137 , - 710 , - 2363 , - 56 , - 829 , - 1162 , - 1055 , - 508 , - 3041 , - 1614 , - 3267 , - 960 , - 1733 , - 2066 , - 1959 , - 1412 , - 425 , - 2518 , - 651 , - 1864 , - 2637 , - 2970 , - 2863 , - 2316 , - 1329 , - 3422 , - 1555 , - 2768 , - 21 , - 354 , - 247 , - 3220 , - 2233 , - 806 , - 2459 , - 152 , - 925 , - 1258 , - 1151 , - 604 , - 3137 , - 1710 , - 3363 , - 1056 , - 1829 , - 2162 , - 2055 , - 1508 , - 521 , - 2614 , - 747 , - 1960 , - 2733 , - 3066 , - 2959 , - 2412 , - 1425 , - 3518 , - 1651 , - 2864 , - 117 , - 450 , - 343 , - 3316 , - 2329 , - 902 , - 2555 , - 248 , - 1021 , - 1354 , - 1247 , - 700 , - 3233 , - 1806 , - 3459 , - 1152 , - 1925 , - 2258 , - 2151 , - 1604 , - 617 , - 2710 , - 843 , - 2056 , - 2829 , - 3162 , - 3055 , - 2508 , - 1521 , - 94 , - 1747 , - 2960 , - 213 , - 546 , - 439 , - 3412 , - 2425 , - 998 , - 2651 , - 344 , - 1117 , - 1450 , - 1343 , - 796 , - 3329 , - 1902 , - 35 , - 1248 , - 2021 , - 2354 , - 2247 , - 1700 , - 713 , - 2806 , - 939 , - 2152 , - 2925 , - 3258 , - 3151 , - 2604 , - 1617 , - 190 , - 1843 , - 3056 , - 309 , - 642 , - 535 , - 3508 , - 2521 , - 1094 , - 2747 , - 440 , - 1213 , - 1546 , - 1439 , - 892 , - 3425 , - 1998 , - 131 , - 1344 , - 2117 , - 2450 , - 2343 , - 1796 , - 809 , - 2902 , - 1035 , - 2248 , - 3021 , - 3354 , - 3247 , - 2700 , - 1713 , - 286 , - 1939 , - 3152 , - 405 , - 738 , - 631 , - 84 , - 2617 , - 1190 , - 2843 , - 536 , - 1309 , - 1642 , - 1535 , - 988 , - 1 , - 2094 , - 227 , - 1440 , - 2213 , - 2546 , - 2439 , - 1892 , - 905 , - 2998 , - 1131 , - 2344 , - 3117 , - 3450 , - 3343 , - 2796 , - 1809 , - 382 , - 2035 , - 3248 , - 501 , - 834 , - 727 , - 180 , - 2713 , - 1286 , - 2939 , - 632 , - 1405 , - 1738 , - 1631 , - 1084 , - 97 , - 2190 , - 323 , - 1536 , - 2309 , - 2642 , - 2535 , - 1988 , - 1001 , - 3094 , - 1227 , - 2440 , - 3213 , - 26 , - 3439 , - 2892 , - 1905 , - 478 , - 2131 , - 3344 , - 597 , - 930 , - 823 , - 276 , - 2809 , - 1382 , - 3035 , - 728 , - 1501 , - 1834 , - 1727 , - 1180 , - 193 , - 2286 , - 419 , - 1632 , - 2405 , - 2738 , - 2631 , - 2084 , - 1097 , - 3190 , - 1323 , - 2536 , - 3309 , - 122 , - 15 , - 2988 , - 2001 , - 574 , - 2227 , - 3440 , - 693 , - 1026 , - 919 , - 372 , - 2905 , - 1478 , - 3131 , - 824 , - 1597 , - 1930 , - 1823 , - 1276 , - 289 , - 2382 , - 515 , - 1728 , - 2501 , - 2834 , - 2727 , - 2180 , - 1193 , - 3286 , - 1419 , - 2632 , - 3405 , - 218 , - 111 , - 3084 , - 2097 , - 670 , - 2323 , - 16 , - 789 , - 1122 , - 1015 , - 468 , - 3001 , - 1574 , - 3227 , - 920 , - 1693 , - 2026 , - 1919 , - 1372 , - 385 , - 2478 , - 611 , - 1824 , - 2597 , - 2930 , - 2823 , - 2276 , - 1289 , - 3382 , - 1515 , - 2728 , - 3501 , - 314 , - 207 , - 3180 , - 2193 , - 766 , - 2419 , - 112 , - 885 , - 1218 , - 1111 , - 564 , - 3097 , - 1670 , - 3323 , - 1016 , - 1789 , - 2122 , - 2015 , - 1468 , - 481 , - 2574 , - 707 , - 1920 , - 2693 , - 3026 , - 2919 , - 2372 , - 1385 , - 3478 , - 1611 , - 2824 , - 77 , - 410 , - 303 , - 3276 , - 2289 , - 862 , - 2515 , - 208 , - 981 , - 1314 , - 1207 , - 660 , - 3193 , - 1766 , - 3419 , - 1112 , - 1885 , - 2218 , - 2111 , - 1564 , - 577 , - 2670 , - 803 , - 2016 , - 2789 , - 3122 , - 3015 , - 2468 , - 1481 , - 54 , - 1707 , - 2920 , - 173 , - 506 , - 399 , - 3372 , - 2385 , - 958 , - 2611 , - 304 , - 1077 , - 1410 , - 1303 , - 756 , - 3289 , - 1862 , - 3515 , - 1208 , - 1981 , - 2314 , - 2207 , - 1660 , - 673 , - 2766 , - 899 , - 2112 , - 2885 , - 3218 , - 3111 , - 2564 , - 1577 , - 150 , - 1803 , - 3016 , - 269 , - 602 , - 495 , - 3468 , - 2481 , - 1054 , - 2707 , - 400 , - 1173 , - 1506 , - 1399 , - 852 , - 3385 , - 1958 , - 91 , - 1304 , - 2077 , - 2410 , - 2303 , - 1756 , - 769 , - 2862 , - 995 , - 2208 , - 2981 , - 3314 , - 3207 , - 2660 , - 1673 , - 246 , - 1899 , - 3112 , - 365 , - 698 , - 591 , - 44 , - 2577 , - 1150 , - 2803 , - 496 , - 1269 , - 1602 , - 1495 , - 948 , - 3481 , - 2054 , - 187 , - 1400 , - 2173 , - 2506 , - 2399 , - 1852 , - 865 , - 2958 , - 1091 , - 2304 , - 3077 , - 3410 , - 3303 , - 2756 , - 1769 , - 342 , - 1995 , - 3208 , - 461 , - 794 , - 687 , - 140 , - 2673 , - 1246 , - 2899 , - 592 , - 1365 , - 1698 , - 1591 , - 1044 , - 57 , - 2150 , - 283 , - 1496 , - 2269 , - 2602 , - 2495 , - 1948 , - 961 , - 3054 , - 1187 , - 2400 , - 3173 , - 3506 , - 3399 , - 2852 , - 1865 , - 438 , - 2091 , - 3304 , - 557 , - 890 , - 783 , - 236 , - 2769 , - 1342 , - 2995 , - 688 , - 1461 , - 1794 , - 1687 , - 1140 , - 153 , - 2246 , - 379 , - 1592 , - 2365 , - 2698 , - 2591 , - 2044 , - 1057 , - 3150 , - 1283 , - 2496 , - 3269 , - 82 , - 3495 , - 2948 , - 1961 , - 534 , - 2187 , - 3400 , - 653 , - 986 , - 879 , - 332 , - 2865 , - 1438 , - 3091 , - 784 , - 1557 , - 1890 , - 1783 , - 1236 , - 249 , - 2342 , - 475 , - 1688 , - 2461 , - 2794 , - 2687 , - 2140 , - 1153 , - 3246 , - 1379 , - 2592 , - 3365 , - 178 , - 71 , - 3044 , - 2057 , - 630 , - 2283 , - 3496 , - 749 , - 1082 , - 975 , - 428 , - 2961 , - 1534 , - 3187 , - 880 , - 1653 , - 1986 , - 1879 , - 1332 , - 345 , - 2438 , - 571 , - 1784 , - 2557 , - 2890 , - 2783 , - 2236 , - 1249 , - 3342 , - 1475 , - 2688 , - 3461 , - 274 , - 167 , - 3140 , - 2153 , - 726 , - 2379 , - 72 , - 845 , - 1178 , - 1071 , - 524 , - 3057 , - 1630 , - 3283 , - 976 , - 1749 , - 2082 , - 1975 , - 1428 , - 441 , - 2534 , - 667 , - 1880 , - 2653 , - 2986 , - 2879 , - 2332 , - 1345 , - 3438 , - 1571 , - 2784 , - 37 , - 370 , - 263 , - 3236 , - 2249 , - 822 , - 2475 , - 168 , - 941 , - 1274 , - 1167 , - 620 , - 3153 , - 1726 , - 3379 , - 1072 , - 1845 , - 2178 , - 2071 , - 1524 , - 537 , - 2630 , - 763 , - 1976 , - 2749 , - 3082 , - 2975 , - 2428 , - 1441 , - 14 , - 1667 , - 2880 , - 133 , - 466 , - 359 , - 3332 , - 2345 , - 918 , - 2571 , - 264 , - 1037 , - 1370 , - 1263 , - 716 , - 3249 , - 1822 , - 3475 , - 1168 , - 1941 , - 2274 , - 2167 , - 1620 , - 633 , - 2726 , - 859 , - 2072 , - 2845 , - 3178 , - 3071 , - 2524 , - 1537 , - 110 , - 1763 , - 2976 , - 229 , - 562 , - 455 , - 3428 , - 2441 , - 1014 , - 2667 , - 360 , - 1133 , - 1466 , - 1359 , - 812 , - 3345 , - 1918 , - 51 , - 1264 , - 2037 , - 2370 , - 2263 , - 1716 , - 729 , - 2822 , - 955 , - 2168 , - 2941 , - 3274 , - 3167 , - 2620 , - 1633 , - 206 , - 1859 , - 3072 , - 325 , - 658 , - 551 , - 4 , - 2537 , - 1110 , - 2763 , - 456 , - 1229 , - 1562 , - 1455 , - 908 , - 3441 , - 2014 , - 147 , - 1360 , - 2133 , - 2466 , - 2359 , - 1812 , - 825 , - 2918 , - 1051 , - 2264 , - 3037 , - 3370 , - 3263 , - 2716 , - 1729 , - 302 , - 1955 , - 3168 , - 421 , - 754 , - 647 , - 100 , - 2633 , - 1206 , - 2859 , - 552 , - 1325 , - 1658 , - 1551 , - 1004 , - 17 , - 2110 , - 243 , - 1456 , - 2229 , - 2562 , - 2455 , - 1908 , - 921 , - 3014 , - 1147 , - 2360 , - 3133 , - 3466 , - 3359 , - 2812 , - 1825 , - 398 , - 2051 , - 3264 , - 517 , - 850 , - 743 , - 196 , - 2729 , - 1302 , - 2955 , - 648 , - 1421 , - 1754 , - 1647 , - 1100 , - 113 , - 2206 , - 339 , - 1552 , - 2325 , - 2658 , - 2551 , - 2004 , - 1017 , - 3110 , - 1243 , - 2456 , - 3229 , - 42 , - 3455 , - 2908 , - 1921 , - 494 , - 2147 , - 3360 , - 613 , - 946 , - 839 , - 292 , - 2825 , - 1398 , - 3051 , - 744 , - 1517 , - 1850 , - 1743 , - 1196 , - 209 , - 2302 , - 435 , - 1648 , - 2421 , - 2754 , - 2647 , - 2100 , - 1113 , - 3206 , - 1339 , - 2552 , - 3325 , - 138 , - 31 , - 3004 , - 2017 , - 590 , - 2243 , - 3456 , - 709 , - 1042 , - 935 , - 388 , - 2921 , - 1494 , - 3147 , - 840 , - 1613 , - 1946 , - 1839 , - 1292 , - 305 , - 2398 , - 531 , - 1744 , - 2517 , - 2850 , - 2743 , - 2196 , - 1209 , - 3302 , - 1435 , - 2648 , - 3421 , - 234 , - 127 , - 3100 , - 2113 , - 686 , - 2339 , - 32 , - 805 , - 1138 , - 1031 , - 484 , - 3017 , - 1590 , - 3243 , - 936 , - 1709 , - 2042 , - 1935 , - 1388 , - 401 , - 2494 , - 627 , - 1840 , - 2613 , - 2946 , - 2839 , - 2292 , - 1305 , - 3398 , - 1531 , - 2744 , - 3517 , - 330 , - 223 , - 3196 , - 2209 , - 782 , - 2435 , - 128 , - 901 , - 1234 , - 1127 , - 580 , - 3113 , - 1686 , - 3339 , - 1032 , - 1805 , - 2138 , - 2031 , - 1484 , - 497 , - 2590 , - 723 , - 1936 , - 2709 , - 3042 , - 2935 , - 2388 , - 1401 , - 3494 , - 1627 , - 2840 , - 93 , - 426 , - 319 , - 3292 , - 2305 , - 878 , - 2531 , - 224 , - 997 , - 1330 , - 1223 , - 676 , - 3209 , - 1782 , - 3435 , - 1128 , - 1901 , - 2234 , - 2127 , - 1580 , - 593 , - 2686 , - 819 , - 2032 , - 2805 , - 3138 , - 3031 , - 2484 , - 1497 , - 70 , - 1723 , - 2936 , - 189 , - 522 , - 415 , - 3388 , - 2401 , - 974 , - 2627 , - 320 , - 1093 , - 1426 , - 1319 , - 772 , - 3305 , - 1878 , - 11 , - 1224 , - 1997 , - 2330 , - 2223 , - 1676 , - 689 , - 2782 , - 915 , - 2128 , - 2901 , - 3234 , - 3127 , - 2580 , - 1593 , - 166 , - 1819 , - 3032 , - 285 , - 618 , - 511 , - 3484 , - 2497 , - 1070 , - 2723 , - 416 , - 1189 , - 1522 , - 1415 , - 868 , - 3401 , - 1974 , - 107 , - 1320 , - 2093 , - 2426 , - 2319 , - 1772 , - 785 , - 2878 , - 1011 , - 2224 , - 2997 , - 3330 , - 3223 , - 2676 , - 1689 , - 262 , - 1915 , - 3128 , - 381 , - 714 , - 607 , - 60 , - 2593 , - 1166 , - 2819 , - 512 , - 1285 , - 1618 , - 1511 , - 964 , - 3497 , - 2070 , - 203 , - 1416 , - 2189 , - 2522 , - 2415 , - 1868 , - 881 , - 2974 , - 1107 , - 2320 , - 3093 , - 3426 , - 3319 , - 2772 , - 1785 , - 358 , - 2011 , - 3224 , - 477 , - 810 , - 703 , - 156 , - 2689 , - 1262 , - 2915 , - 608 , - 1381 , - 1714 , - 1607 , - 1060 , - 73 , - 2166 , - 299 , - 1512 , - 2285 , - 2618 , - 2511 , - 1964 , - 977 , - 3070 , - 1203 , - 2416 , - 3189 , - 2 , - 3415 , - 2868 , - 1881 , - 454 , - 2107 , - 3320 , - 573 , - 906 , - 799 , - 252 , - 2785 , - 1358 , - 3011 , - 704 , - 1477 , - 1810 , - 1703 , - 1156 , - 169 , - 2262 , - 395 , - 1608 , - 2381 , - 2714 , - 2607 , - 2060 , - 1073 , - 3166 , - 1299 , - 2512 , - 3285 , - 98 , - 3511 , - 2964 , - 1977 , - 550 , - 2203 , - 3416 , - 669 , - 1002 , - 895 , - 348 , - 2881 , - 1454 , - 3107 , - 800 , - 1573 , - 1906 , - 1799 , - 1252 , - 265 , - 2358 , - 491 , - 1704 , - 2477 , - 2810 , - 2703 , - 2156 , - 1169 , - 3262 , - 1395 , - 2608 , - 3381 , - 194 , - 87 , - 3060 , - 2073 , - 646 , - 2299 , - 3512 , - 765 , - 1098 , - 991 , - 444 , - 2977 , - 1550 , - 3203 , - 896 , - 1669 , - 2002 , - 1895 , - 1348 , - 361 , - 2454 , - 587 , - 1800 , - 2573 , - 2906 , - 2799 , - 2252 , - 1265 , - 3358 , - 1491 , - 2704 , - 3477 , - 290 , - 183 , - 3156 , - 2169 , - 742 , - 2395 , - 88 , - 861 , - 1194 , - 1087 , - 540 , - 3073 , - 1646 , - 3299 , - 992 , - 1765 , - 2098 , - 1991 , - 1444 , - 457 , - 2550 , - 683 , - 1896 , - 2669 , - 3002 , - 2895 , - 2348 , - 1361 , - 3454 , - 1587 , - 2800 , - 53 , - 386 , - 279 , - 3252 , - 2265 , - 838 , - 2491 , - 184 , - 957 , - 1290 , - 1183 , - 636 , - 3169 , - 1742 , - 3395 , - 1088 , - 1861 , - 2194 , - 2087 , - 1540 , - 553 , - 2646 , - 779 , - 1992 , - 2765 , - 3098 , - 2991 , - 2444 , - 1457 , - 30 , - 1683 , - 2896 , - 149 , - 482 , - 375 , - 3348 , - 2361 , - 934 , - 2587 , - 280 , - 1053 , - 1386 , - 1279 , - 732 , - 3265 , - 1838 , - 3491 , - 1184 , - 1957 , - 2290 , - 2183 , - 1636 , - 649 , - 2742 , - 875 , - 2088 , - 2861 , - 3194 , - 3087 , - 2540 , - 1553 , - 126 , - 1779 , - 2992 , - 245 , - 578 , - 471 , - 3444 , - 2457 , - 1030 , - 2683 , - 376 , - 1149 , - 1482 , - 1375 , - 828 , - 3361 , - 1934 , - 67 , - 1280 , - 2053 , - 2386 , - 2279 , - 1732 , - 745 , - 2838 , - 971 , - 2184 , - 2957 , - 3290 , - 3183 , - 2636 , - 1649 , - 222 , - 1875 , - 3088 , - 341 , - 674 , - 567 , - 20 , - 2553 , - 1126 , - 2779 , - 472 , - 1245 , - 1578 , - 1471 , - 924 , - 3457 , - 2030 , - 163 , - 1376 , - 2149 , - 2482 , - 2375 , - 1828 , - 841 , - 2934 , - 1067 , - 2280 , - 3053 , - 3386 , - 3279 , - 2732 , - 1745 , - 318 , - 1971 , - 3184 , - 437 , - 770 , - 663 , - 116 , - 2649 , - 1222 , - 2875 , - 568 , - 1341 , - 1674 , - 1567 , - 1020 , - 33 , - 2126 , - 259 , - 1472 , - 2245 , - 2578 , - 2471 , - 1924 , - 937 , - 3030 , - 1163 , - 2376 , - 3149 , - 3482 , - 3375 , - 2828 , - 1841 , - 414 , - 2067 , - 3280 , - 533 , - 866 , - 759 , - 212 , - 2745 , - 1318 , - 2971 , - 664 , - 1437 , - 1770 , - 1663 , - 1116 , - 129 , - 2222 , - 355 , - 1568 , - 2341 , - 2674 , - 2567 , - 2020 , - 1033 , - 3126 , - 1259 , - 2472 , - 3245 , - 58 , - 3471 , - 2924 , - 1937 , - 510 , - 2163 , - 3376 , - 629 , - 962 , - 855 , - 308 , - 2841 , - 1414 , - 3067 , - 760 , - 1533 , - 1866 , - 1759 , - 1212 , - 225 , - 2318 , - 451 , - 1664 , - 2437 , - 2770 , - 2663 , - 2116 , - 1129 , - 3222 , - 1355 , - 2568 , - 3341 , - 154 , - 47 , - 3020 , - 2033 , - 606 , - 2259 , - 3472 , - 725 , - 1058 , - 951 , - 404 , - 2937 , - 1510 , - 3163 , - 856 , - 1629 , - 1962 , - 1855 , - 1308 , - 321 , - 2414 , - 547 , - 1760 , - 2533 , - 2866 , - 2759 , - 2212 , - 1225 , - 3318 , - 1451 , - 2664 , - 3437 , - 250 , - 143 , - 3116 , - 2129 , - 702 , - 2355 , - 48 , - 821 , - 1154 , - 1047 , - 500 , - 3033 , - 1606 , - 3259 , - 952 , - 1725 , - 2058 , - 1951 , - 1404 , - 417 , - 2510 , - 643 , - 1856 , - 2629 , - 2962 , - 2855 , - 2308 , - 1321 , - 3414 , - 1547 , - 2760 , - 13 , - 346 , - 239 , - 3212 , - 2225 , - 798 , - 2451 , - 144 , - 917 , - 1250 , - 1143 , - 596 , - 3129 , - 1702 , - 3355 , - 1048 , - 1821 , - 2154 , - 2047 , - 1500 , - 513 , - 2606 , - 739 , - 1952 , - 2725 , - 3058 , - 2951 , - 2404 , - 1417 , - 3510 , - 1643 , - 2856 , - 109 , - 442 , - 335 , - 3308 , - 2321 , - 894 , - 2547 , - 240 , - 1013 , - 1346 , - 1239 , - 692 , - 3225 , - 1798 , - 3451 , - 1144 , - 1917 , - 2250 , - 2143 , - 1596 , - 609 , - 2702 , - 835 , - 2048 , - 2821 , - 3154 , - 3047 , - 2500 , - 1513 , - 86 , - 1739 , - 2952 , - 205 , - 538 , - 431 , - 3404 , - 2417 , - 990 , - 2643 , - 336 , - 1109 , - 1442 , - 1335 , - 788 , - 3321 , - 1894 , - 27 , - 1240 , - 2013 , - 2346 , - 2239 , - 1692 , - 705 , - 2798 , - 931 , - 2144 , - 2917 , - 3250 , - 3143 , - 2596 , - 1609 , - 182 , - 1835 , - 3048 , - 301 , - 634 , - 527 , - 3500 , - 2513 , - 1086 , - 2739 , - 432 , - 1205 , - 1538 , - 1431 , - 884 , - 3417 , - 1990 , - 123 , - 1336 , - 2109 , - 2442 , - 2335 , - 1788 , - 801 , - 2894 , - 1027 , - 2240 , - 3013 , - 3346 , - 3239 , - 2692 , - 1705 , - 278 , - 1931 , - 3144 , - 397 , - 730 , - 623 , - 76 , - 2609 , - 1182 , - 2835 , - 528 , - 1301 , - 1634 , - 1527 , - 980 , - 3513 , - 2086 , - 219 , - 1432 , - 2205 , - 2538 , - 2431 , - 1884 , - 897 , - 2990 , - 1123 , - 2336 , - 3109 , - 3442 , - 3335 , - 2788 , - 1801 , - 374 , - 2027 , - 3240 , - 493 , - 826 , - 719 , - 172 , - 2705 , - 1278 , - 2931 , - 624 , - 1397 , - 1730 , - 1623 , - 1076 , - 89 , - 2182 , - 315 , - 1528 , - 2301 , - 2634 , - 2527 , - 1980 , - 993 , - 3086 , - 1219 , - 2432 , - 3205 , - 18 , - 3431 , - 2884 , - 1897 , - 470 , - 2123 , - 3336 , - 589 , - 922 , - 815 , - 268 , - 2801 , - 1374 , - 3027 , - 720 , - 1493 , - 1826 , - 1719 , - 1172 , - 185 , - 2278 , - 411 , - 1624 , - 2397 , - 2730 , - 2623 , - 2076 , - 1089 , - 3182 , - 1315 , - 2528 , - 3301 , - 114 , - 7 , - 2980 , - 1993 , - 566 , - 2219 , - 3432 , - 685 , - 1018 , - 911 , - 364 , - 2897 , - 1470 , - 3123 , - 816 , - 1589 , - 1922 , - 1815 , - 1268 , - 281 , - 2374 , - 507 , - 1720 , - 2493 , - 2826 , - 2719 , - 2172 , - 1185 , - 3278 , - 1411 , - 2624 , - 3397 , - 210 , - 103 , - 3076 , - 2089 , - 662 , - 2315 , - 8 , - 781 , - 1114 , - 1007 , - 460 , - 2993 , - 1566 , - 3219 , - 912 , - 1685 , - 2018 , - 1911 , - 1364 , - 377 , - 2470 , - 603 , - 1816 , - 2589 , - 2922 , - 2815 , - 2268 , - 1281 , - 3374 , - 1507 , - 2720 , - 3493 , - 306 , - 199 , - 3172 , - 2185 , - 758 , - 2411 , - 104 , - 877 , - 1210 , - 1103 , - 556 , - 3089 , - 1662 , - 3315 , - 1008 , - 1781 , - 2114 , - 2007 , - 1460 , - 473 , - 2566 , - 699 , - 1912 , - 2685 , - 3018 , - 2911 , - 2364 , - 1377 , - 3470 , - 1603 , - 2816 , - 69 , - 402 , - 295 , - 3268 , - 2281 , - 854 , - 2507 , - 200 , - 973 , - 1306 , - 1199 , - 652 , - 3185 , - 1758 , - 3411 , - 1104 , - 1877 , - 2210 , - 2103 , - 1556 , - 569 , - 2662 , - 795 , - 2008 , - 2781 , - 3114 , - 3007 , - 2460 , - 1473 , - 46 , - 1699 , - 2912 , - 165 , - 498 , - 391 , - 3364 , - 2377 , - 950 , - 2603 , - 296 , - 1069 , - 1402 , - 1295 , - 748 , - 3281 , - 1854 , - 3507 , - 1200 , - 1973 , - 2306 , - 2199 , - 1652 , - 665 , - 2758 , - 891 , - 2104 , - 2877 , - 3210 , - 3103 , - 2556 , - 1569 , - 142 , - 1795 , - 3008 , - 261 , - 594 , - 487 , - 3460 , - 2473 , - 1046 , - 2699 , - 392 , - 1165 , - 1498 , - 1391 , - 844 , - 3377 , - 1950 , - 83 , - 1296 , - 2069 , - 2402 , - 2295 , - 1748 , - 761 , - 2854 , - 987 , - 2200 , - 2973 , - 3306 , - 3199 , - 2652 , - 1665 , - 238 , - 1891 , - 3104 , - 357 , - 690 , - 583 , - 36 , - 2569 , - 1142 , - 2795 , - 488 , - 1261 , - 1594 , - 1487 , - 940 , - 3473 , - 2046 , - 179 , - 1392 , - 2165 , - 2498 , - 2391 , - 1844 , - 857 , - 2950 , - 1083 , - 2296 , - 3069 , - 3402 , - 3295 , - 2748 , - 1761 , - 334 , - 1987 , - 3200 , - 453 , - 786 , - 679 , - 132 , - 2665 , - 1238 , - 2891 , - 584 , - 1357 , - 1690 , - 1583 , - 1036 , - 49 , - 2142 , - 275 , - 1488 , - 2261 , - 2594 , - 2487 , - 1940 , - 953 , - 3046 , - 1179 , - 2392 , - 3165 , - 3498 , - 3391 , - 2844 , - 1857 , - 430 , - 2083 , - 3296 , - 549 , - 882 , - 775 , - 228 , - 2761 , - 1334 , - 2987 , - 680 , - 1453 , - 1786 , - 1679 , - 1132 , - 145 , - 2238 , - 371 , - 1584 , - 2357 , - 2690 , - 2583 , - 2036 , - 1049 , - 3142 , - 1275 , - 2488 , - 3261 , - 74 , - 3487 , - 2940 , - 1953 , - 526 , - 2179 , - 3392 , - 645 , - 978 , - 871 , - 324 , - 2857 , - 1430 , - 3083 , - 776 , - 1549 , - 1882 , - 1775 , - 1228 , - 241 , - 2334 , - 467 , - 1680 , - 2453 , - 2786 , - 2679 , - 2132 , - 1145 , - 3238 , - 1371 , - 2584 , - 3357 , - 170 , - 63 , - 3036 , - 2049 , - 622 , - 2275 , - 3488 , - 741 , - 1074 , - 967 , - 420 , - 2953 , - 1526 , - 3179 , - 872 , - 1645 , - 1978 , - 1871 , - 1324 , - 337 , - 2430 , - 563 , - 1776 , - 2549 , - 2882 , - 2775 , - 2228 , - 1241 , - 3334 , - 1467 , - 2680 , - 3453 , - 266 , - 159 , - 3132 , - 2145 , - 718 , - 2371 , - 64 , - 837 , - 1170 , - 1063 , - 516 , - 3049 , - 1622 , - 3275 , - 968 , - 1741 , - 2074 , - 1967 , - 1420 , - 433 , - 2526 , - 659 , - 1872 , - 2645 , - 2978 , - 2871 , - 2324 , - 1337 , - 3430 , - 1563 , - 2776 , - 29 , - 362 , - 255 , - 3228 , - 2241 , - 814 , - 2467 , - 160 , - 933 , - 1266 , - 1159 , - 612 , - 3145 , - 1718 , - 3371 , - 1064 , - 1837 , - 2170 , - 2063 , - 1516 , - 529 , - 2622 , - 755 , - 1968 , - 2741 , - 3074 , - 2967 , - 2420 , - 1433 , - 6 , - 1659 , - 2872 , - 125 , - 458 , - 351 , - 3324 , - 2337 , - 910 , - 2563 , - 256 , - 1029 , - 1362 , - 1255 , - 708 , - 3241 , - 1814 , - 3467 , - 1160 , - 1933 , - 2266 , - 2159 , - 1612 , - 625 , - 2718 , - 851 , - 2064 , - 2837 , - 3170 , - 3063 , - 2516 , - 1529 , - 102 , - 1755 , - 2968 , - 221 , - 554 , - 447 , - 3420 , - 2433 , - 1006 , - 2659 , - 352 , - 1125 , - 1458 , - 1351 , - 804 , - 3337 , - 1910 , - 43 , - 1256 , - 2029 , - 2362 , - 2255 , - 1708 , - 721 , - 2814 , - 947 , - 2160 , - 2933 , - 3266 , - 3159 , - 2612 , - 1625 , - 198 , - 1851 , - 3064 , - 317 , - 650 , - 543 , - 3516 , - 2529 , - 1102 , - 2755 , - 448 , - 1221 , - 1554 , - 1447 , - 900 , - 3433 , - 2006 , - 139 , - 1352 , - 2125 , - 2458 , - 2351 , - 1804 , - 817 , - 2910 , - 1043 , - 2256 , - 3029 , - 3362 , - 3255 , - 2708 , - 1721 , - 294 , - 1947 , - 3160 , - 413 , - 746 , - 639 , - 92 , - 2625 , - 1198 , - 2851 , - 544 , - 1317 , - 1650 , - 1543 , - 996 , - 9 , - 2102 , - 235 , - 1448 , - 2221 , - 2554 , - 2447 , - 1900 , - 913 , - 3006 , - 1139 , - 2352 , - 3125 , - 3458 , - 3351 , - 2804 , - 1817 , - 390 , - 2043 , - 3256 , - 509 , - 842 , - 735 , - 188 , - 2721 , - 1294 , - 2947 , - 640 , - 1413 , - 1746 , - 1639 , - 1092 , - 105 , - 2198 , - 331 , - 1544 , - 2317 , - 2650 , - 2543 , - 1996 , - 1009 , - 3102 , - 1235 , - 2448 , - 3221 , - 34 , - 3447 , - 2900 , - 1913 , - 486 , - 2139 , - 3352 , - 605 , - 938 , - 831 , - 284 , - 2817 , - 1390 , - 3043 , - 736 , - 1509 , - 1842 , - 1735 , - 1188 , - 201 , - 2294 , - 427 , - 1640 , - 2413 , - 2746 , - 2639 , - 2092 , - 1105 , - 3198 , - 1331 , - 2544 , - 3317 , - 130 , - 23 , - 2996 , - 2009 , - 582 , - 2235 , - 3448 , - 701 , - 1034 , - 927 , - 380 , - 2913 , - 1486 , - 3139 , - 832 , - 1605 , - 1938 , - 1831 , - 1284 , - 297 , - 2390 , - 523 , - 1736 , - 2509 , - 2842 , - 2735 , - 2188 , - 1201 , - 3294 , - 1427 , - 2640 , - 3413 , - 226 , - 119 , - 3092 , - 2105 , - 678 , - 2331 , - 24 , - 797 , - 1130 , - 1023 , - 476 , - 3009 , - 1582 , - 3235 , - 928 , - 1701 , - 2034 , - 1927 , - 1380 , - 393 , - 2486 , - 619 , - 1832 , - 2605 , - 2938 , - 2831 , - 2284 , - 1297 , - 3390 , - 1523 , - 2736 , - 3509 , - 322 , - 215 , - 3188 , - 2201 , - 774 , - 2427 , - 120 , - 893 , - 1226 , - 1119 , - 572 , - 3105 , - 1678 , - 3331 , - 1024 , - 1797 , - 2130 , - 2023 , - 1476 , - 489 , - 2582 , - 715 , - 1928 , - 2701 , - 3034 , - 2927 , - 2380 , - 1393 , - 3486 , - 1619 , - 2832 , - 85 , - 418 , - 311 , - 3284 , - 2297 , - 870 , - 2523 , - 216 , - 989 , - 1322 , - 1215 , - 668 , - 3201 , - 1774 , - 3427 , - 1120 , - 1893 , - 2226 , - 2119 , - 1572 , - 585 , - 2678 , - 811 , - 2024 , - 2797 , - 3130 , - 3023 , - 2476 , - 1489 , - 62 , - 1715 , - 2928 , - 181 , - 514 , - 407 , - 3380 , - 2393 , - 966 , - 2619 , - 312 , - 1085 , - 1418 , - 1311 , - 764 , - 3297 , - 1870 , - 3 , - 1216 , - 1989 , - 2322 , - 2215 , - 1668 , - 681 , - 2774 , - 907 , - 2120 , - 2893 , - 3226 , - 3119 , - 2572 , - 1585 , - 158 , - 1811 , - 3024 , - 277 , - 610 , - 503 , - 3476 , - 2489 , - 1062 , - 2715 , - 408 , - 1181 , - 1514 , - 1407 , - 860 , - 3393 , - 1966 , - 99 , - 1312 , - 2085 , - 2418 , - 2311 , - 1764 , - 777 , - 2870 , - 1003 , - 2216 , - 2989 , - 3322 , - 3215 , - 2668 , - 1681 , - 254 , - 1907 , - 3120 , - 373 , - 706 , - 599 , - 52 , - 2585 , - 1158 , - 2811 , - 504 , - 1277 , - 1610 , - 1503 , - 956 , - 3489 , - 2062 , - 195 , - 1408 , - 2181 , - 2514 , - 2407 , - 1860 , - 873 , - 2966 , - 1099 , - 2312 , - 3085 , - 3418 , - 3311 , - 2764 , - 1777 , - 350 , - 2003 , - 3216 , - 469 , - 802 , - 695 , - 148 , - 2681 , - 1254 , - 2907 , - 600 , - 1373 , - 1706 , - 1599 , - 1052 , - 65 , - 2158 , - 291 , - 1504 , - 2277 , - 2610 , - 2503 , - 1956 , - 969 , - 3062 , - 1195 , - 2408 , - 3181 , - 3514 , - 3407 , - 2860 , - 1873 , - 446 , - 2099 , - 3312 , - 565 , - 898 , - 791 , - 244 , - 2777 , - 1350 , - 3003 , - 696 , - 1469 , - 1802 , - 1695 , - 1148 , - 161 , - 2254 , - 387 , - 1600 , - 2373 , - 2706 , - 2599 , - 2052 , - 1065 , - 3158 , - 1291 , - 2504 , - 3277 , - 90 , - 3503 , - 2956 , - 1969 , - 542 , - 2195 , - 3408 , - 661 , - 994 , - 887 , - 340 , - 2873 , - 1446 , - 3099 , - 792 , - 1565 , - 1898 , - 1791 , - 1244 , - 257 , - 2350 , - 483 , - 1696 , - 2469 , - 2802 , - 2695 , - 2148 , - 1161 , - 3254 , - 1387 , - 2600 , - 3373 , - 186 , - 79 , - 3052 , - 2065 , - 638 , - 2291 , - 3504 , - 757 , - 1090 , - 983 , - 436 , - 2969 , - 1542 , - 3195 , - 888 , - 1661 , - 1994 , - 1887 , - 1340 , - 353 , - 2446 , - 579 , - 1792 , - 2565 , - 2898 , - 2791 , - 2244 , - 1257 , - 3350 , - 1483 , - 2696 , - 3469 , - 282 , - 175 , - 3148 , - 2161 , - 734 , - 2387 , - 80 , - 853 , - 1186 , - 1079 , - 532 , - 3065 , - 1638 , - 3291 , - 984 , - 1757 , - 2090 , - 1983 , - 1436 , - 449 , - 2542 , - 675 , - 1888 , - 2661 , - 2994 , - 2887 , - 2340 , - 1353 , - 3446 , - 1579 , - 2792 , - 45 , - 378 , - 271 , - 3244 , - 2257 , - 830 , - 2483 , - 176 , - 949 , - 1282 , - 1175 , - 628 , - 3161 , - 1734 , - 3387 , - 1080 , - 1853 , - 2186 , - 2079 , - 1532 , - 545 , - 2638 , - 771 , - 1984 , - 2757 , - 3090 , - 2983 , - 2436 , - 1449 , - 22 , - 1675 , - 2888 , - 141 , - 474 , - 367 , - 3340 , - 2353 , - 926 , - 2579 , - 272 , - 1045 , - 1378 , - 1271 , - 724 , - 3257 , - 1830 , - 3483 , - 1176 , - 1949 , - 2282 , - 2175 , - 1628 , - 641 , - 2734 , - 867 , - 2080 , - 2853 , - 3186 , - 3079 , - 2532 , - 1545 , - 118 , - 1771 , - 2984 , - 237 , - 570 , - 463 , - 3436 , - 2449 , - 1022 , - 2675 , - 368 , - 1141 , - 1474 , - 1367 , - 820 , - 3353 , - 1926 , - 59 , - 1272 , - 2045 , - 2378 , - 2271 , - 1724 , - 737 , - 2830 , - 963 , - 2176 , - 2949 , - 3282 , - 3175 , - 2628 , - 1641 , - 214 , - 1867 , - 3080 , - 333 , - 666 , - 559 , - 12 , - 2545 , - 1118 , - 2771 , - 464 , - 1237 , - 1570 , - 1463 , - 916 , - 3449 , - 2022 , - 155 , - 1368 , - 2141 , - 2474 , - 2367 , - 1820 , - 833 , - 2926 , - 1059 , - 2272 , - 3045 , - 3378 , - 3271 , - 2724 , - 1737 , - 310 , - 1963 , - 3176 , - 429 , - 762 , - 655 , - 108 , - 2641 , - 1214 , - 2867 , - 560 , - 1333 , - 1666 , - 1559 , - 1012 , - 25 , - 2118 , - 251 , - 1464 , - 2237 , - 2570 , - 2463 , - 1916 , - 929 , - 3022 , - 1155 , - 2368 , - 3141 , - 3474 , - 3367 , - 2820 , - 1833 , - 406 , - 2059 , - 3272 , - 525 , - 858 , - 751 , - 204 , - 2737 , - 1310 , - 2963 , - 656 , - 1429 , - 1762 , - 1655 , - 1108 , - 121 , - 2214 , - 347 , - 1560 , - 2333 , - 2666 , - 2559 , - 2012 , - 1025 , - 3118 , - 1251 , - 2464 , - 3237 , - 50 , - 3463 , - 2916 , - 1929 , - 502 , - 2155 , - 3368 , - 621 , - 954 , - 847 , - 300 , - 2833 , - 1406 , - 3059 , - 752 , - 1525 , - 1858 , - 1751 , - 1204 , - 217 , - 2310 , - 443 , - 1656 , - 2429 , - 2762 , - 2655 , - 2108 , - 1121 , - 3214 , - 1347 , - 2560 , - 3333 , - 146 , - 39 , - 3012 , - 2025 , - 598 , - 2251 , - 3464 , - 717 , - 1050 , - 943 , - 396 , - 2929 , - 1502 , - 3155 , - 848 , - 1621 , - 1954 , - 1847 , - 1300 , - 313 , - 2406 , - 539 , - 1752 , - 2525 , - 2858 , - 2751 , - 2204 , - 1217 , - 3310 , - 1443 , - 2656 , - 3429 , - 242 , - 135 , - 3108 , - 2121 , - 694 , - 2347 , - 40 , - 813 , - 1146 , - 1039 , - 492 , - 3025 , - 1598 , - 3251 , - 944 , - 1717 , - 2050 , - 1943 , - 1396 , - 409 , - 2502 , - 635 , - 1848 , - 2621 , - 2954 , - 2847 , - 2300 , - 1313 , - 3406 , - 1539 , - 2752 , - 5 , - 338 , - 231 , - 3204 , - 2217 , - 790 , - 2443 , - 136 , - 909 , - 1242 , - 1135 , - 588 , - 3121 , - 1694 , - 3347 , - 1040 , - 1813 , - 2146 , - 2039 , - 1492 , - 505 , - 2598 , - 731 , - 1944 , - 2717 , - 3050 , - 2943 , - 2396 , - 1409 , - 3502 , - 1635 , - 2848 , - 101 , - 434 , - 327 , - 3300 , - 2313 , - 886 , - 2539 , - 232 , - 1005 , - 1338 , - 1231 , - 684 , - 3217 , - 1790 , - 3443 , - 1136 , - 1909 , - 2242 , - 2135 , - 1588 , - 601 , - 2694 , - 827 , - 2040 , - 2813 , - 3146 , - 3039 , - 2492 , - 1505 , - 78 , - 1731 , - 2944 , - 197 , - 530 , - 423 , - 3396 , - 2409 , - 982 , - 2635 , - 328 , - 1101 , - 1434 , - 1327 , - 780 , - 3313 , - 1886 , - 19 , - 1232 , - 2005 , - 2338 , - 2231 , - 1684 , - 697 , - 2790 , - 923 , - 2136 , - 2909 , - 3242 , - 3135 , - 2588 , - 1601 , - 174 , - 1827 , - 3040 , - 293 , - 626 , - 519 , - 3492 , - 2505 , - 1078 , - 2731 , - 424 , - 1197 , - 1530 , - 1423 , - 876 , - 3409 , - 1982 , - 115 , - 1328 , - 2101 , - 2434 , - 2327 , - 1780 , - 793 , - 2886 , - 1019 , - 2232 , - 3005 , - 3338 , - 3231 , - 2684 , - 1697 , - 270 , - 1923 , - 3136 , - 389 , - 722 , - 615 , - 68 , - 2601 , - 1174 , - 2827 , - 520 , - 1293 , - 1626 , - 1519 , - 972 , - 3505 , - 2078 , - 211 , - 1424 , - 2197 , - 2530 , - 2423 , - 1876 , - 889 , - 2982 , - 1115 , - 2328 , - 3101 , - 3434 , - 3327 , - 2780 , - 1793 , - 366 , - 2019 , - 3232 , - 485 , - 818 , - 711 , - 164 , - 2697 , - 1270 , - 2923 , - 616 , - 1389 , - 1722 , - 1615 , - 1068 , - 81 , - 2174 , - 307 , - 1520 , - 2293 , - 2626 , - 2519 , - 1972 , - 985 , - 3078 , - 1211 , - 2424 , - 3197 , - 10 , - 3423 , - 2876 , - 1889 , - 462 , - 2115 , - 3328 , - 581 , - 914 , - 807 , - 260 , - 2793 , - 1366 , - 3019 , - 712 , - 1485 , - 1818 , - 1711 , - 1164 , - 177 , - 2270 , - 403 , - 1616 , - 2389 , - 2722 , - 2615 , - 2068 , - 1081 , - 3174 , - 1307 , - 2520 , - 3293 , - 106 , - 3519 , - 2972 , - 1985 , - 558 , - 2211 , - 3424 , - 677 , - 1010 , - 903 , - 356 , - 2889 , - 1462 , - 3115 , - 808 , - 1581 , - 1914 , - 1807 , - 1260 , - 273 , - 2366 , - 499 , - 1712 , - 2485 , - 2818 , - 2711 , - 2164 , - 1177 , - 3270 , - 1403 , - 2616 , - 3389 , - 202 , - 95 , - 3068 , - 2081 , - 654 , - 2307 , - 0 , - 1849 , - 1234 , - 1739 , - 3364 , - 2525 , - 2806 , - 623 , - 3144 , - 3201 , - 794 , - 3091 , - 2924 , - 293 , - 2366 , - 1975 , - 2704 , - 969 , - 354 , - 859 , - 2484 , - 1645 , - 1926 , - 3327 , - 2264 , - 2321 , - 3498 , - 2211 , - 2044 , - 2997 , - 1486 , - 1095 , - 1824 , - 89 , - 3058 , - 3563 , - 1604 , - 765 , - 1046 , - 2447 , - 1384 , - 1441 , - 2618 , - 1331 , - 1164 , - 2117 , - 606 , - 215 , - 944 , - 2793 , - 2178 , - 2683 , - 724 , - 3469 , - 166 , - 1567 , - 504 , - 561 , - 1738 , - 451 , - 284 , - 1237 , - 3310 , - 2919 , - 64 , - 1913 , - 1298 , - 1803 , - 3428 , - 2589 , - 2870 , - 687 , - 3208 , - 3265 , - 858 , - 3155 , - 2988 , - 357 , - 2430 , - 2039 , - 2768 , - 1033 , - 418 , - 923 , - 2548 , - 1709 , - 1990 , - 3391 , - 2328 , - 2385 , - 3562 , - 2275 , - 2108 , - 3061 , - 1550 , - 1159 , - 1888 , - 153 , - 3122 , - 43 , - 1668 , - 829 , - 1110 , - 2511 , - 1448 , - 1505 , - 2682 , - 1395 , - 1228 , - 2181 , - 670 , - 279 , - 1008 , - 2857 , - 2242 , - 2747 , - 788 , - 3533 , - 230 , - 1631 , - 568 , - 625 , - 1802 , - 515 , - 348 , - 1301 , - 3374 , - 2983 , - 128 , - 1977 , - 1362 , - 1867 , - 3492 , - 2653 , - 2934 , - 751 , - 3272 , - 3329 , - 922 , - 3219 , - 3052 , - 421 , - 2494 , - 2103 , - 2832 , - 1097 , - 482 , - 987 , - 2612 , - 1773 , - 2054 , - 3455 , - 2392 , - 2449 , - 42 , - 2339 , - 2172 , - 3125 , - 1614 , - 1223 , - 1952 , - 217 , - 3186 , - 107 , - 1732 , - 893 , - 1174 , - 2575 , - 1512 , - 1569 , - 2746 , - 1459 , - 1292 , - 2245 , - 734 , - 343 , - 1072 , - 2921 , - 2306 , - 2811 , - 852 , - 13 , - 294 , - 1695 , - 632 , - 689 , - 1866 , - 579 , - 412 , - 1365 , - 3438 , - 3047 , - 192 , - 2041 , - 1426 , - 1931 , - 3556 , - 2717 , - 2998 , - 815 , - 3336 , - 3393 , - 986 , - 3283 , - 3116 , - 485 , - 2558 , - 2167 , - 2896 , - 1161 , - 546 , - 1051 , - 2676 , - 1837 , - 2118 , - 3519 , - 2456 , - 2513 , - 106 , - 2403 , - 2236 , - 3189 , - 1678 , - 1287 , - 2016 , - 281 , - 3250 , - 171 , - 1796 , - 957 , - 1238 , - 2639 , - 1576 , - 1633 , - 2810 , - 1523 , - 1356 , - 2309 , - 798 , - 407 , - 1136 , - 2985 , - 2370 , - 2875 , - 916 , - 77 , - 358 , - 1759 , - 696 , - 753 , - 1930 , - 643 , - 476 , - 1429 , - 3502 , - 3111 , - 256 , - 2105 , - 1490 , - 1995 , - 36 , - 2781 , - 3062 , - 879 , - 3400 , - 3457 , - 1050 , - 3347 , - 3180 , - 549 , - 2622 , - 2231 , - 2960 , - 1225 , - 610 , - 1115 , - 2740 , - 1901 , - 2182 , - 3583 , - 2520 , - 2577 , - 170 , - 2467 , - 2300 , - 3253 , - 1742 , - 1351 , - 2080 , - 345 , - 3314 , - 235 , - 1860 , - 1021 , - 1302 , - 2703 , - 1640 , - 1697 , - 2874 , - 1587 , - 1420 , - 2373 , - 862 , - 471 , - 1200 , - 3049 , - 2434 , - 2939 , - 980 , - 141 , - 422 , - 1823 , - 760 , - 817 , - 1994 , - 707 , - 540 , - 1493 , - 3566 , - 3175 , - 320 , - 2169 , - 1554 , - 2059 , - 100 , - 2845 , - 3126 , - 943 , - 3464 , - 3521 , - 1114 , - 3411 , - 3244 , - 613 , - 2686 , - 2295 , - 3024 , - 1289 , - 674 , - 1179 , - 2804 , - 1965 , - 2246 , - 63 , - 2584 , - 2641 , - 234 , - 2531 , - 2364 , - 3317 , - 1806 , - 1415 , - 2144 , - 409 , - 3378 , - 299 , - 1924 , - 1085 , - 1366 , - 2767 , - 1704 , - 1761 , - 2938 , - 1651 , - 1484 , - 2437 , - 926 , - 535 , - 1264 , - 3113 , - 2498 , - 3003 , - 1044 , - 205 , - 486 , - 1887 , - 824 , - 881 , - 2058 , - 771 , - 604 , - 1557 , - 46 , - 3239 , - 384 , - 2233 , - 1618 , - 2123 , - 164 , - 2909 , - 3190 , - 1007 , - 3528 , - 1 , - 1178 , - 3475 , - 3308 , - 677 , - 2750 , - 2359 , - 3088 , - 1353 , - 738 , - 1243 , - 2868 , - 2029 , - 2310 , - 127 , - 2648 , - 2705 , - 298 , - 2595 , - 2428 , - 3381 , - 1870 , - 1479 , - 2208 , - 473 , - 3442 , - 363 , - 1988 , - 1149 , - 1430 , - 2831 , - 1768 , - 1825 , - 3002 , - 1715 , - 1548 , - 2501 , - 990 , - 599 , - 1328 , - 3177 , - 2562 , - 3067 , - 1108 , - 269 , - 550 , - 1951 , - 888 , - 945 , - 2122 , - 835 , - 668 , - 1621 , - 110 , - 3303 , - 448 , - 2297 , - 1682 , - 2187 , - 228 , - 2973 , - 3254 , - 1071 , - 8 , - 65 , - 1242 , - 3539 , - 3372 , - 741 , - 2814 , - 2423 , - 3152 , - 1417 , - 802 , - 1307 , - 2932 , - 2093 , - 2374 , - 191 , - 2712 , - 2769 , - 362 , - 2659 , - 2492 , - 3445 , - 1934 , - 1543 , - 2272 , - 537 , - 3506 , - 427 , - 2052 , - 1213 , - 1494 , - 2895 , - 1832 , - 1889 , - 3066 , - 1779 , - 1612 , - 2565 , - 1054 , - 663 , - 1392 , - 3241 , - 2626 , - 3131 , - 1172 , - 333 , - 614 , - 2015 , - 952 , - 1009 , - 2186 , - 899 , - 732 , - 1685 , - 174 , - 3367 , - 512 , - 2361 , - 1746 , - 2251 , - 292 , - 3037 , - 3318 , - 1135 , - 72 , - 129 , - 1306 , - 19 , - 3436 , - 805 , - 2878 , - 2487 , - 3216 , - 1481 , - 866 , - 1371 , - 2996 , - 2157 , - 2438 , - 255 , - 2776 , - 2833 , - 426 , - 2723 , - 2556 , - 3509 , - 1998 , - 1607 , - 2336 , - 601 , - 3570 , - 491 , - 2116 , - 1277 , - 1558 , - 2959 , - 1896 , - 1953 , - 3130 , - 1843 , - 1676 , - 2629 , - 1118 , - 727 , - 1456 , - 3305 , - 2690 , - 3195 , - 1236 , - 397 , - 678 , - 2079 , - 1016 , - 1073 , - 2250 , - 963 , - 796 , - 1749 , - 238 , - 3431 , - 576 , - 2425 , - 1810 , - 2315 , - 356 , - 3101 , - 3382 , - 1199 , - 136 , - 193 , - 1370 , - 83 , - 3500 , - 869 , - 2942 , - 2551 , - 3280 , - 1545 , - 930 , - 1435 , - 3060 , - 2221 , - 2502 , - 319 , - 2840 , - 2897 , - 490 , - 2787 , - 2620 , - 3573 , - 2062 , - 1671 , - 2400 , - 665 , - 50 , - 555 , - 2180 , - 1341 , - 1622 , - 3023 , - 1960 , - 2017 , - 3194 , - 1907 , - 1740 , - 2693 , - 1182 , - 791 , - 1520 , - 3369 , - 2754 , - 3259 , - 1300 , - 461 , - 742 , - 2143 , - 1080 , - 1137 , - 2314 , - 1027 , - 860 , - 1813 , - 302 , - 3495 , - 640 , - 2489 , - 1874 , - 2379 , - 420 , - 3165 , - 3446 , - 1263 , - 200 , - 257 , - 1434 , - 147 , - 3564 , - 933 , - 3006 , - 2615 , - 3344 , - 1609 , - 994 , - 1499 , - 3124 , - 2285 , - 2566 , - 383 , - 2904 , - 2961 , - 554 , - 2851 , - 2684 , - 53 , - 2126 , - 1735 , - 2464 , - 729 , - 114 , - 619 , - 2244 , - 1405 , - 1686 , - 3087 , - 2024 , - 2081 , - 3258 , - 1971 , - 1804 , - 2757 , - 1246 , - 855 , - 1584 , - 3433 , - 2818 , - 3323 , - 1364 , - 525 , - 806 , - 2207 , - 1144 , - 1201 , - 2378 , - 1091 , - 924 , - 1877 , - 366 , - 3559 , - 704 , - 2553 , - 1938 , - 2443 , - 484 , - 3229 , - 3510 , - 1327 , - 264 , - 321 , - 1498 , - 211 , - 44 , - 997 , - 3070 , - 2679 , - 3408 , - 1673 , - 1058 , - 1563 , - 3188 , - 2349 , - 2630 , - 447 , - 2968 , - 3025 , - 618 , - 2915 , - 2748 , - 117 , - 2190 , - 1799 , - 2528 , - 793 , - 178 , - 683 , - 2308 , - 1469 , - 1750 , - 3151 , - 2088 , - 2145 , - 3322 , - 2035 , - 1868 , - 2821 , - 1310 , - 919 , - 1648 , - 3497 , - 2882 , - 3387 , - 1428 , - 589 , - 870 , - 2271 , - 1208 , - 1265 , - 2442 , - 1155 , - 988 , - 1941 , - 430 , - 39 , - 768 , - 2617 , - 2002 , - 2507 , - 548 , - 3293 , - 3574 , - 1391 , - 328 , - 385 , - 1562 , - 275 , - 108 , - 1061 , - 3134 , - 2743 , - 3472 , - 1737 , - 1122 , - 1627 , - 3252 , - 2413 , - 2694 , - 511 , - 3032 , - 3089 , - 682 , - 2979 , - 2812 , - 181 , - 2254 , - 1863 , - 2592 , - 857 , - 242 , - 747 , - 2372 , - 1533 , - 1814 , - 3215 , - 2152 , - 2209 , - 3386 , - 2099 , - 1932 , - 2885 , - 1374 , - 983 , - 1712 , - 3561 , - 2946 , - 3451 , - 1492 , - 653 , - 934 , - 2335 , - 1272 , - 1329 , - 2506 , - 1219 , - 1052 , - 2005 , - 494 , - 103 , - 832 , - 2681 , - 2066 , - 2571 , - 612 , - 3357 , - 54 , - 1455 , - 392 , - 449 , - 1626 , - 339 , - 172 , - 1125 , - 3198 , - 2807 , - 3536 , - 1801 , - 1186 , - 1691 , - 3316 , - 2477 , - 2758 , - 575 , - 3096 , - 3153 , - 746 , - 3043 , - 2876 , - 245 , - 2318 , - 1927 , - 2656 , - 921 , - 306 , - 811 , - 2436 , - 1597 , - 1878 , - 3279 , - 2216 , - 2273 , - 3450 , - 2163 , - 1996 , - 2949 , - 1438 , - 1047 , - 1776 , - 41 , - 3010 , - 3515 , - 1556 , - 717 , - 998 , - 2399 , - 1336 , - 1393 , - 2570 , - 1283 , - 1116 , - 2069 , - 558 , - 167 , - 896 , - 2745 , - 2130 , - 2635 , - 676 , - 3421 , - 118 , - 1519 , - 456 , - 513 , - 1690 , - 403 , - 236 , - 1189 , - 3262 , - 2871 , - 16 , - 1865 , - 1250 , - 1755 , - 3380 , - 2541 , - 2822 , - 639 , - 3160 , - 3217 , - 810 , - 3107 , - 2940 , - 309 , - 2382 , - 1991 , - 2720 , - 985 , - 370 , - 875 , - 2500 , - 1661 , - 1942 , - 3343 , - 2280 , - 2337 , - 3514 , - 2227 , - 2060 , - 3013 , - 1502 , - 1111 , - 1840 , - 105 , - 3074 , - 3579 , - 1620 , - 781 , - 1062 , - 2463 , - 1400 , - 1457 , - 2634 , - 1347 , - 1180 , - 2133 , - 622 , - 231 , - 960 , - 2809 , - 2194 , - 2699 , - 740 , - 3485 , - 182 , - 1583 , - 520 , - 577 , - 1754 , - 467 , - 300 , - 1253 , - 3326 , - 2935 , - 80 , - 1929 , - 1314 , - 1819 , - 3444 , - 2605 , - 2886 , - 703 , - 3224 , - 3281 , - 874 , - 3171 , - 3004 , - 373 , - 2446 , - 2055 , - 2784 , - 1049 , - 434 , - 939 , - 2564 , - 1725 , - 2006 , - 3407 , - 2344 , - 2401 , - 3578 , - 2291 , - 2124 , - 3077 , - 1566 , - 1175 , - 1904 , - 169 , - 3138 , - 59 , - 1684 , - 845 , - 1126 , - 2527 , - 1464 , - 1521 , - 2698 , - 1411 , - 1244 , - 2197 , - 686 , - 295 , - 1024 , - 2873 , - 2258 , - 2763 , - 804 , - 3549 , - 246 , - 1647 , - 584 , - 641 , - 1818 , - 531 , - 364 , - 1317 , - 3390 , - 2999 , - 144 , - 1993 , - 1378 , - 1883 , - 3508 , - 2669 , - 2950 , - 767 , - 3288 , - 3345 , - 938 , - 3235 , - 3068 , - 437 , - 2510 , - 2119 , - 2848 , - 1113 , - 498 , - 1003 , - 2628 , - 1789 , - 2070 , - 3471 , - 2408 , - 2465 , - 58 , - 2355 , - 2188 , - 3141 , - 1630 , - 1239 , - 1968 , - 233 , - 3202 , - 123 , - 1748 , - 909 , - 1190 , - 2591 , - 1528 , - 1585 , - 2762 , - 1475 , - 1308 , - 2261 , - 750 , - 359 , - 1088 , - 2937 , - 2322 , - 2827 , - 868 , - 29 , - 310 , - 1711 , - 648 , - 705 , - 1882 , - 595 , - 428 , - 1381 , - 3454 , - 3063 , - 208 , - 2057 , - 1442 , - 1947 , - 3572 , - 2733 , - 3014 , - 831 , - 3352 , - 3409 , - 1002 , - 3299 , - 3132 , - 501 , - 2574 , - 2183 , - 2912 , - 1177 , - 562 , - 1067 , - 2692 , - 1853 , - 2134 , - 3535 , - 2472 , - 2529 , - 122 , - 2419 , - 2252 , - 3205 , - 1694 , - 1303 , - 2032 , - 297 , - 3266 , - 187 , - 1812 , - 973 , - 1254 , - 2655 , - 1592 , - 1649 , - 2826 , - 1539 , - 1372 , - 2325 , - 814 , - 423 , - 1152 , - 3001 , - 2386 , - 2891 , - 932 , - 93 , - 374 , - 1775 , - 712 , - 769 , - 1946 , - 659 , - 492 , - 1445 , - 3518 , - 3127 , - 272 , - 2121 , - 1506 , - 2011 , - 52 , - 2797 , - 3078 , - 895 , - 3416 , - 3473 , - 1066 , - 3363 , - 3196 , - 565 , - 2638 , - 2247 , - 2976 , - 1241 , - 626 , - 1131 , - 2756 , - 1917 , - 2198 , - 15 , - 2536 , - 2593 , - 186 , - 2483 , - 2316 , - 3269 , - 1758 , - 1367 , - 2096 , - 361 , - 3330 , - 251 , - 1876 , - 1037 , - 1318 , - 2719 , - 1656 , - 1713 , - 2890 , - 1603 , - 1436 , - 2389 , - 878 , - 487 , - 1216 , - 3065 , - 2450 , - 2955 , - 996 , - 157 , - 438 , - 1839 , - 776 , - 833 , - 2010 , - 723 , - 556 , - 1509 , - 3582 , - 3191 , - 336 , - 2185 , - 1570 , - 2075 , - 116 , - 2861 , - 3142 , - 959 , - 3480 , - 3537 , - 1130 , - 3427 , - 3260 , - 629 , - 2702 , - 2311 , - 3040 , - 1305 , - 690 , - 1195 , - 2820 , - 1981 , - 2262 , - 79 , - 2600 , - 2657 , - 250 , - 2547 , - 2380 , - 3333 , - 1822 , - 1431 , - 2160 , - 425 , - 3394 , - 315 , - 1940 , - 1101 , - 1382 , - 2783 , - 1720 , - 1777 , - 2954 , - 1667 , - 1500 , - 2453 , - 942 , - 551 , - 1280 , - 3129 , - 2514 , - 3019 , - 1060 , - 221 , - 502 , - 1903 , - 840 , - 897 , - 2074 , - 787 , - 620 , - 1573 , - 62 , - 3255 , - 400 , - 2249 , - 1634 , - 2139 , - 180 , - 2925 , - 3206 , - 1023 , - 3544 , - 17 , - 1194 , - 3491 , - 3324 , - 693 , - 2766 , - 2375 , - 3104 , - 1369 , - 754 , - 1259 , - 2884 , - 2045 , - 2326 , - 143 , - 2664 , - 2721 , - 314 , - 2611 , - 2444 , - 3397 , - 1886 , - 1495 , - 2224 , - 489 , - 3458 , - 379 , - 2004 , - 1165 , - 1446 , - 2847 , - 1784 , - 1841 , - 3018 , - 1731 , - 1564 , - 2517 , - 1006 , - 615 , - 1344 , - 3193 , - 2578 , - 3083 , - 1124 , - 285 , - 566 , - 1967 , - 904 , - 961 , - 2138 , - 851 , - 684 , - 1637 , - 126 , - 3319 , - 464 , - 2313 , - 1698 , - 2203 , - 244 , - 2989 , - 3270 , - 1087 , - 24 , - 81 , - 1258 , - 3555 , - 3388 , - 757 , - 2830 , - 2439 , - 3168 , - 1433 , - 818 , - 1323 , - 2948 , - 2109 , - 2390 , - 207 , - 2728 , - 2785 , - 378 , - 2675 , - 2508 , - 3461 , - 1950 , - 1559 , - 2288 , - 553 , - 3522 , - 443 , - 2068 , - 1229 , - 1510 , - 2911 , - 1848 , - 1905 , - 3082 , - 1795 , - 1628 , - 2581 , - 1070 , - 679 , - 1408 , - 3257 , - 2642 , - 3147 , - 1188 , - 349 , - 630 , - 2031 , - 968 , - 1025 , - 2202 , - 915 , - 748 , - 1701 , - 190 , - 3383 , - 528 , - 2377 , - 1762 , - 2267 , - 308 , - 3053 , - 3334 , - 1151 , - 88 , - 145 , - 1322 , - 35 , - 3452 , - 821 , - 2894 , - 2503 , - 3232 , - 1497 , - 882 , - 1387 , - 3012 , - 2173 , - 2454 , - 271 , - 2792 , - 2849 , - 442 , - 2739 , - 2572 , - 3525 , - 2014 , - 1623 , - 2352 , - 617 , - 2 , - 507 , - 2132 , - 1293 , - 1574 , - 2975 , - 1912 , - 1969 , - 3146 , - 1859 , - 1692 , - 2645 , - 1134 , - 743 , - 1472 , - 3321 , - 2706 , - 3211 , - 1252 , - 413 , - 694 , - 2095 , - 1032 , - 1089 , - 2266 , - 979 , - 812 , - 1765 , - 254 , - 3447 , - 592 , - 2441 , - 1826 , - 2331 , - 372 , - 3117 , - 3398 , - 1215 , - 152 , - 209 , - 1386 , - 99 , - 3516 , - 885 , - 2958 , - 2567 , - 3296 , - 1561 , - 946 , - 1451 , - 3076 , - 2237 , - 2518 , - 335 , - 2856 , - 2913 , - 506 , - 2803 , - 2636 , - 5 , - 2078 , - 1687 , - 2416 , - 681 , - 66 , - 571 , - 2196 , - 1357 , - 1638 , - 3039 , - 1976 , - 2033 , - 3210 , - 1923 , - 1756 , - 2709 , - 1198 , - 807 , - 1536 , - 3385 , - 2770 , - 3275 , - 1316 , - 477 , - 758 , - 2159 , - 1096 , - 1153 , - 2330 , - 1043 , - 876 , - 1829 , - 318 , - 3511 , - 656 , - 2505 , - 1890 , - 2395 , - 436 , - 3181 , - 3462 , - 1279 , - 216 , - 273 , - 1450 , - 163 , - 3580 , - 949 , - 3022 , - 2631 , - 3360 , - 1625 , - 1010 , - 1515 , - 3140 , - 2301 , - 2582 , - 399 , - 2920 , - 2977 , - 570 , - 2867 , - 2700 , - 69 , - 2142 , - 1751 , - 2480 , - 745 , - 130 , - 635 , - 2260 , - 1421 , - 1702 , - 3103 , - 2040 , - 2097 , - 3274 , - 1987 , - 1820 , - 2773 , - 1262 , - 871 , - 1600 , - 3449 , - 2834 , - 3339 , - 1380 , - 541 , - 822 , - 2223 , - 1160 , - 1217 , - 2394 , - 1107 , - 940 , - 1893 , - 382 , - 3575 , - 720 , - 2569 , - 1954 , - 2459 , - 500 , - 3245 , - 3526 , - 1343 , - 280 , - 337 , - 1514 , - 227 , - 60 , - 1013 , - 3086 , - 2695 , - 3424 , - 1689 , - 1074 , - 1579 , - 3204 , - 2365 , - 2646 , - 463 , - 2984 , - 3041 , - 634 , - 2931 , - 2764 , - 133 , - 2206 , - 1815 , - 2544 , - 809 , - 194 , - 699 , - 2324 , - 1485 , - 1766 , - 3167 , - 2104 , - 2161 , - 3338 , - 2051 , - 1884 , - 2837 , - 1326 , - 935 , - 1664 , - 3513 , - 2898 , - 3403 , - 1444 , - 605 , - 886 , - 2287 , - 1224 , - 1281 , - 2458 , - 1171 , - 1004 , - 1957 , - 446 , - 55 , - 784 , - 2633 , - 2018 , - 2523 , - 564 , - 3309 , - 6 , - 1407 , - 344 , - 401 , - 1578 , - 291 , - 124 , - 1077 , - 3150 , - 2759 , - 3488 , - 1753 , - 1138 , - 1643 , - 3268 , - 2429 , - 2710 , - 527 , - 3048 , - 3105 , - 698 , - 2995 , - 2828 , - 197 , - 2270 , - 1879 , - 2608 , - 873 , - 258 , - 763 , - 2388 , - 1549 , - 1830 , - 3231 , - 2168 , - 2225 , - 3402 , - 2115 , - 1948 , - 2901 , - 1390 , - 999 , - 1728 , - 3577 , - 2962 , - 3467 , - 1508 , - 669 , - 950 , - 2351 , - 1288 , - 1345 , - 2522 , - 1235 , - 1068 , - 2021 , - 510 , - 119 , - 848 , - 2697 , - 2082 , - 2587 , - 628 , - 3373 , - 70 , - 1471 , - 408 , - 465 , - 1642 , - 355 , - 188 , - 1141 , - 3214 , - 2823 , - 3552 , - 1817 , - 1202 , - 1707 , - 3332 , - 2493 , - 2774 , - 591 , - 3112 , - 3169 , - 762 , - 3059 , - 2892 , - 261 , - 2334 , - 1943 , - 2672 , - 937 , - 322 , - 827 , - 2452 , - 1613 , - 1894 , - 3295 , - 2232 , - 2289 , - 3466 , - 2179 , - 2012 , - 2965 , - 1454 , - 1063 , - 1792 , - 57 , - 3026 , - 3531 , - 1572 , - 733 , - 1014 , - 2415 , - 1352 , - 1409 , - 2586 , - 1299 , - 1132 , - 2085 , - 574 , - 183 , - 912 , - 2761 , - 2146 , - 2651 , - 692 , - 3437 , - 134 , - 1535 , - 472 , - 529 , - 1706 , - 419 , - 252 , - 1205 , - 3278 , - 2887 , - 32 , - 1881 , - 1266 , - 1771 , - 3396 , - 2557 , - 2838 , - 655 , - 3176 , - 3233 , - 826 , - 3123 , - 2956 , - 325 , - 2398 , - 2007 , - 2736 , - 1001 , - 386 , - 891 , - 2516 , - 1677 , - 1958 , - 3359 , - 2296 , - 2353 , - 3530 , - 2243 , - 2076 , - 3029 , - 1518 , - 1127 , - 1856 , - 121 , - 3090 , - 11 , - 1636 , - 797 , - 1078 , - 2479 , - 1416 , - 1473 , - 2650 , - 1363 , - 1196 , - 2149 , - 638 , - 247 , - 976 , - 2825 , - 2210 , - 2715 , - 756 , - 3501 , - 198 , - 1599 , - 536 , - 593 , - 1770 , - 483 , - 316 , - 1269 , - 3342 , - 2951 , - 96 , - 1945 , - 1330 , - 1835 , - 3460 , - 2621 , - 2902 , - 719 , - 3240 , - 3297 , - 890 , - 3187 , - 3020 , - 389 , - 2462 , - 2071 , - 2800 , - 1065 , - 450 , - 955 , - 2580 , - 1741 , - 2022 , - 3423 , - 2360 , - 2417 , - 10 , - 2307 , - 2140 , - 3093 , - 1582 , - 1191 , - 1920 , - 185 , - 3154 , - 75 , - 1700 , - 861 , - 1142 , - 2543 , - 1480 , - 1537 , - 2714 , - 1427 , - 1260 , - 2213 , - 702 , - 311 , - 1040 , - 2889 , - 2274 , - 2779 , - 820 , - 3565 , - 262 , - 1663 , - 600 , - 657 , - 1834 , - 547 , - 380 , - 1333 , - 3406 , - 3015 , - 160 , - 2009 , - 1394 , - 1899 , - 3524 , - 2685 , - 2966 , - 783 , - 3304 , - 3361 , - 954 , - 3251 , - 3084 , - 453 , - 2526 , - 2135 , - 2864 , - 1129 , - 514 , - 1019 , - 2644 , - 1805 , - 2086 , - 3487 , - 2424 , - 2481 , - 74 , - 2371 , - 2204 , - 3157 , - 1646 , - 1255 , - 1984 , - 249 , - 3218 , - 139 , - 1764 , - 925 , - 1206 , - 2607 , - 1544 , - 1601 , - 2778 , - 1491 , - 1324 , - 2277 , - 766 , - 375 , - 1104 , - 2953 , - 2338 , - 2843 , - 884 , - 45 , - 326 , - 1727 , - 664 , - 721 , - 1898 , - 611 , - 444 , - 1397 , - 3470 , - 3079 , - 224 , - 2073 , - 1458 , - 1963 , - 4 , - 2749 , - 3030 , - 847 , - 3368 , - 3425 , - 1018 , - 3315 , - 3148 , - 517 , - 2590 , - 2199 , - 2928 , - 1193 , - 578 , - 1083 , - 2708 , - 1869 , - 2150 , - 3551 , - 2488 , - 2545 , - 138 , - 2435 , - 2268 , - 3221 , - 1710 , - 1319 , - 2048 , - 313 , - 3282 , - 203 , - 1828 , - 989 , - 1270 , - 2671 , - 1608 , - 1665 , - 2842 , - 1555 , - 1388 , - 2341 , - 830 , - 439 , - 1168 , - 3017 , - 2402 , - 2907 , - 948 , - 109 , - 390 , - 1791 , - 728 , - 785 , - 1962 , - 675 , - 508 , - 1461 , - 3534 , - 3143 , - 288 , - 2137 , - 1522 , - 2027 , - 68 , - 2813 , - 3094 , - 911 , - 3432 , - 3489 , - 1082 , - 3379 , - 3212 , - 581 , - 2654 , - 2263 , - 2992 , - 1257 , - 642 , - 1147 , - 2772 , - 1933 , - 2214 , - 31 , - 2552 , - 2609 , - 202 , - 2499 , - 2332 , - 3285 , - 1774 , - 1383 , - 2112 , - 377 , - 3346 , - 267 , - 1892 , - 1053 , - 1334 , - 2735 , - 1672 , - 1729 , - 2906 , - 1619 , - 1452 , - 2405 , - 894 , - 503 , - 1232 , - 3081 , - 2466 , - 2971 , - 1012 , - 173 , - 454 , - 1855 , - 792 , - 849 , - 2026 , - 739 , - 572 , - 1525 , - 14 , - 3207 , - 352 , - 2201 , - 1586 , - 2091 , - 132 , - 2877 , - 3158 , - 975 , - 3496 , - 3553 , - 1146 , - 3443 , - 3276 , - 645 , - 2718 , - 2327 , - 3056 , - 1321 , - 706 , - 1211 , - 2836 , - 1997 , - 2278 , - 95 , - 2616 , - 2673 , - 266 , - 2563 , - 2396 , - 3349 , - 1838 , - 1447 , - 2176 , - 441 , - 3410 , - 331 , - 1956 , - 1117 , - 1398 , - 2799 , - 1736 , - 1793 , - 2970 , - 1683 , - 1516 , - 2469 , - 958 , - 567 , - 1296 , - 3145 , - 2530 , - 3035 , - 1076 , - 237 , - 518 , - 1919 , - 856 , - 913 , - 2090 , - 803 , - 636 , - 1589 , - 78 , - 3271 , - 416 , - 2265 , - 1650 , - 2155 , - 196 , - 2941 , - 3222 , - 1039 , - 3560 , - 33 , - 1210 , - 3507 , - 3340 , - 709 , - 2782 , - 2391 , - 3120 , - 1385 , - 770 , - 1275 , - 2900 , - 2061 , - 2342 , - 159 , - 2680 , - 2737 , - 330 , - 2627 , - 2460 , - 3413 , - 1902 , - 1511 , - 2240 , - 505 , - 3474 , - 395 , - 2020 , - 1181 , - 1462 , - 2863 , - 1800 , - 1857 , - 3034 , - 1747 , - 1580 , - 2533 , - 1022 , - 631 , - 1360 , - 3209 , - 2594 , - 3099 , - 1140 , - 301 , - 582 , - 1983 , - 920 , - 977 , - 2154 , - 867 , - 700 , - 1653 , - 142 , - 3335 , - 480 , - 2329 , - 1714 , - 2219 , - 260 , - 3005 , - 3286 , - 1103 , - 40 , - 97 , - 1274 , - 3571 , - 3404 , - 773 , - 2846 , - 2455 , - 3184 , - 1449 , - 834 , - 1339 , - 2964 , - 2125 , - 2406 , - 223 , - 2744 , - 2801 , - 394 , - 2691 , - 2524 , - 3477 , - 1966 , - 1575 , - 2304 , - 569 , - 3538 , - 459 , - 2084 , - 1245 , - 1526 , - 2927 , - 1864 , - 1921 , - 3098 , - 1811 , - 1644 , - 2597 , - 1086 , - 695 , - 1424 , - 3273 , - 2658 , - 3163 , - 1204 , - 365 , - 646 , - 2047 , - 984 , - 1041 , - 2218 , - 931 , - 764 , - 1717 , - 206 , - 3399 , - 544 , - 2393 , - 1778 , - 2283 , - 324 , - 3069 , - 3350 , - 1167 , - 104 , - 161 , - 1338 , - 51 , - 3468 , - 837 , - 2910 , - 2519 , - 3248 , - 1513 , - 898 , - 1403 , - 3028 , - 2189 , - 2470 , - 287 , - 2808 , - 2865 , - 458 , - 2755 , - 2588 , - 3541 , - 2030 , - 1639 , - 2368 , - 633 , - 18 , - 523 , - 2148 , - 1309 , - 1590 , - 2991 , - 1928 , - 1985 , - 3162 , - 1875 , - 1708 , - 2661 , - 1150 , - 759 , - 1488 , - 3337 , - 2722 , - 3227 , - 1268 , - 429 , - 710 , - 2111 , - 1048 , - 1105 , - 2282 , - 995 , - 828 , - 1781 , - 270 , - 3463 , - 608 , - 2457 , - 1842 , - 2347 , - 388 , - 3133 , - 3414 , - 1231 , - 168 , - 225 , - 1402 , - 115 , - 3532 , - 901 , - 2974 , - 2583 , - 3312 , - 1577 , - 962 , - 1467 , - 3092 , - 2253 , - 2534 , - 351 , - 2872 , - 2929 , - 522 , - 2819 , - 2652 , - 21 , - 2094 , - 1703 , - 2432 , - 697 , - 82 , - 587 , - 2212 , - 1373 , - 1654 , - 3055 , - 1992 , - 2049 , - 3226 , - 1939 , - 1772 , - 2725 , - 1214 , - 823 , - 1552 , - 3401 , - 2786 , - 3291 , - 1332 , - 493 , - 774 , - 2175 , - 1112 , - 1169 , - 2346 , - 1059 , - 892 , - 1845 , - 334 , - 3527 , - 672 , - 2521 , - 1906 , - 2411 , - 452 , - 3197 , - 3478 , - 1295 , - 232 , - 289 , - 1466 , - 179 , - 12 , - 965 , - 3038 , - 2647 , - 3376 , - 1641 , - 1026 , - 1531 , - 3156 , - 2317 , - 2598 , - 415 , - 2936 , - 2993 , - 586 , - 2883 , - 2716 , - 85 , - 2158 , - 1767 , - 2496 , - 761 , - 146 , - 651 , - 2276 , - 1437 , - 1718 , - 3119 , - 2056 , - 2113 , - 3290 , - 2003 , - 1836 , - 2789 , - 1278 , - 887 , - 1616 , - 3465 , - 2850 , - 3355 , - 1396 , - 557 , - 838 , - 2239 , - 1176 , - 1233 , - 2410 , - 1123 , - 956 , - 1909 , - 398 , - 7 , - 736 , - 2585 , - 1970 , - 2475 , - 516 , - 3261 , - 3542 , - 1359 , - 296 , - 353 , - 1530 , - 243 , - 76 , - 1029 , - 3102 , - 2711 , - 3440 , - 1705 , - 1090 , - 1595 , - 3220 , - 2381 , - 2662 , - 479 , - 3000 , - 3057 , - 650 , - 2947 , - 2780 , - 149 , - 2222 , - 1831 , - 2560 , - 825 , - 210 , - 715 , - 2340 , - 1501 , - 1782 , - 3183 , - 2120 , - 2177 , - 3354 , - 2067 , - 1900 , - 2853 , - 1342 , - 951 , - 1680 , - 3529 , - 2914 , - 3419 , - 1460 , - 621 , - 902 , - 2303 , - 1240 , - 1297 , - 2474 , - 1187 , - 1020 , - 1973 , - 462 , - 71 , - 800 , - 2649 , - 2034 , - 2539 , - 580 , - 3325 , - 22 , - 1423 , - 360 , - 417 , - 1594 , - 307 , - 140 , - 1093 , - 3166 , - 2775 , - 3504 , - 1769 , - 1154 , - 1659 , - 3284 , - 2445 , - 2726 , - 543 , - 3064 , - 3121 , - 714 , - 3011 , - 2844 , - 213 , - 2286 , - 1895 , - 2624 , - 889 , - 274 , - 779 , - 2404 , - 1565 , - 1846 , - 3247 , - 2184 , - 2241 , - 3418 , - 2131 , - 1964 , - 2917 , - 1406 , - 1015 , - 1744 , - 9 , - 2978 , - 3483 , - 1524 , - 685 , - 966 , - 2367 , - 1304 , - 1361 , - 2538 , - 1251 , - 1084 , - 2037 , - 526 , - 135 , - 864 , - 2713 , - 2098 , - 2603 , - 644 , - 3389 , - 86 , - 1487 , - 424 , - 481 , - 1658 , - 371 , - 204 , - 1157 , - 3230 , - 2839 , - 3568 , - 1833 , - 1218 , - 1723 , - 3348 , - 2509 , - 2790 , - 607 , - 3128 , - 3185 , - 778 , - 3075 , - 2908 , - 277 , - 2350 , - 1959 , - 2688 , - 953 , - 338 , - 843 , - 2468 , - 1629 , - 1910 , - 3311 , - 2248 , - 2305 , - 3482 , - 2195 , - 2028 , - 2981 , - 1470 , - 1079 , - 1808 , - 73 , - 3042 , - 3547 , - 1588 , - 749 , - 1030 , - 2431 , - 1368 , - 1425 , - 2602 , - 1315 , - 1148 , - 2101 , - 590 , - 199 , - 928 , - 2777 , - 2162 , - 2667 , - 708 , - 3453 , - 150 , - 1551 , - 488 , - 545 , - 1722 , - 435 , - 268 , - 1221 , - 3294 , - 2903 , - 48 , - 1897 , - 1282 , - 1787 , - 3412 , - 2573 , - 2854 , - 671 , - 3192 , - 3249 , - 842 , - 3139 , - 2972 , - 341 , - 2414 , - 2023 , - 2752 , - 1017 , - 402 , - 907 , - 2532 , - 1693 , - 1974 , - 3375 , - 2312 , - 2369 , - 3546 , - 2259 , - 2092 , - 3045 , - 1534 , - 1143 , - 1872 , - 137 , - 3106 , - 27 , - 1652 , - 813 , - 1094 , - 2495 , - 1432 , - 1489 , - 2666 , - 1379 , - 1212 , - 2165 , - 654 , - 263 , - 992 , - 2841 , - 2226 , - 2731 , - 772 , - 3517 , - 214 , - 1615 , - 552 , - 609 , - 1786 , - 499 , - 332 , - 1285 , - 3358 , - 2967 , - 112 , - 1961 , - 1346 , - 1851 , - 3476 , - 2637 , - 2918 , - 735 , - 3256 , - 3313 , - 906 , - 3203 , - 3036 , - 405 , - 2478 , - 2087 , - 2816 , - 1081 , - 466 , - 971 , - 2596 , - 1757 , - 2038 , - 3439 , - 2376 , - 2433 , - 26 , - 2323 , - 2156 , - 3109 , - 1598 , - 1207 , - 1936 , - 201 , - 3170 , - 91 , - 1716 , - 877 , - 1158 , - 2559 , - 1496 , - 1553 , - 2730 , - 1443 , - 1276 , - 2229 , - 718 , - 327 , - 1056 , - 2905 , - 2290 , - 2795 , - 836 , - 3581 , - 278 , - 1679 , - 616 , - 673 , - 1850 , - 563 , - 396 , - 1349 , - 3422 , - 3031 , - 176 , - 2025 , - 1410 , - 1915 , - 3540 , - 2701 , - 2982 , - 799 , - 3320 , - 3377 , - 970 , - 3267 , - 3100 , - 469 , - 2542 , - 2151 , - 2880 , - 1145 , - 530 , - 1035 , - 2660 , - 1821 , - 2102 , - 3503 , - 2440 , - 2497 , - 90 , - 2387 , - 2220 , - 3173 , - 1662 , - 1271 , - 2000 , - 265 , - 3234 , - 155 , - 1780 , - 941 , - 1222 , - 2623 , - 1560 , - 1617 , - 2794 , - 1507 , - 1340 , - 2293 , - 782 , - 391 , - 1120 , - 2969 , - 2354 , - 2859 , - 900 , - 61 , - 342 , - 1743 , - 680 , - 737 , - 1914 , - 627 , - 460 , - 1413 , - 3486 , - 3095 , - 240 , - 2089 , - 1474 , - 1979 , - 20 , - 2765 , - 3046 , - 863 , - 3384 , - 3441 , - 1034 , - 3331 , - 3164 , - 533 , - 2606 , - 2215 , - 2944 , - 1209 , - 594 , - 1099 , - 2724 , - 1885 , - 2166 , - 3567 , - 2504 , - 2561 , - 154 , - 2451 , - 2284 , - 3237 , - 1726 , - 1335 , - 2064 , - 329 , - 3298 , - 219 , - 1844 , - 1005 , - 1286 , - 2687 , - 1624 , - 1681 , - 2858 , - 1571 , - 1404 , - 2357 , - 846 , - 455 , - 1184 , - 3033 , - 2418 , - 2923 , - 964 , - 125 , - 406 , - 1807 , - 744 , - 801 , - 1978 , - 691 , - 524 , - 1477 , - 3550 , - 3159 , - 304 , - 2153 , - 1538 , - 2043 , - 84 , - 2829 , - 3110 , - 927 , - 3448 , - 3505 , - 1098 , - 3395 , - 3228 , - 597 , - 2670 , - 2279 , - 3008 , - 1273 , - 658 , - 1163 , - 2788 , - 1949 , - 2230 , - 47 , - 2568 , - 2625 , - 218 , - 2515 , - 2348 , - 3301 , - 1790 , - 1399 , - 2128 , - 393 , - 3362 , - 283 , - 1908 , - 1069 , - 1350 , - 2751 , - 1688 , - 1745 , - 2922 , - 1635 , - 1468 , - 2421 , - 910 , - 519 , - 1248 , - 3097 , - 2482 , - 2987 , - 1028 , - 189 , - 470 , - 1871 , - 808 , - 865 , - 2042 , - 755 , - 588 , - 1541 , - 30 , - 3223 , - 368 , - 2217 , - 1602 , - 2107 , - 148 , - 2893 , - 3174 , - 991 , - 3512 , - 3569 , - 1162 , - 3459 , - 3292 , - 661 , - 2734 , - 2343 , - 3072 , - 1337 , - 722 , - 1227 , - 2852 , - 2013 , - 2294 , - 111 , - 2632 , - 2689 , - 282 , - 2579 , - 2412 , - 3365 , - 1854 , - 1463 , - 2192 , - 457 , - 3426 , - 347 , - 1972 , - 1133 , - 1414 , - 2815 , - 1752 , - 1809 , - 2986 , - 1699 , - 1532 , - 2485 , - 974 , - 583 , - 1312 , - 3161 , - 2546 , - 3051 , - 1092 , - 253 , - 534 , - 1935 , - 872 , - 929 , - 2106 , - 819 , - 652 , - 1605 , - 94 , - 3287 , - 432 , - 2281 , - 1666 , - 2171 , - 212 , - 2957 , - 3238 , - 1055 , - 3576 , - 49 , - 1226 , - 3523 , - 3356 , - 725 , - 2798 , - 2407 , - 3136 , - 1401 , - 786 , - 1291 , - 2916 , - 2077 , - 2358 , - 175 , - 2696 , - 2753 , - 346 , - 2643 , - 2476 , - 3429 , - 1918 , - 1527 , - 2256 , - 521 , - 3490 , - 411 , - 2036 , - 1197 , - 1478 , - 2879 , - 1816 , - 1873 , - 3050 , - 1763 , - 1596 , - 2549 , - 1038 , - 647 , - 1376 , - 3225 , - 2610 , - 3115 , - 1156 , - 317 , - 598 , - 1999 , - 936 , - 993 , - 2170 , - 883 , - 716 , - 1669 , - 158 , - 3351 , - 496 , - 2345 , - 1730 , - 2235 , - 276 , - 3021 , - 3302 , - 1119 , - 56 , - 113 , - 1290 , - 3 , - 3420 , - 789 , - 2862 , - 2471 , - 3200 , - 1465 , - 850 , - 1355 , - 2980 , - 2141 , - 2422 , - 239 , - 2760 , - 2817 , - 410 , - 2707 , - 2540 , - 3493 , - 1982 , - 1591 , - 2320 , - 585 , - 3554 , - 475 , - 2100 , - 1261 , - 1542 , - 2943 , - 1880 , - 1937 , - 3114 , - 1827 , - 1660 , - 2613 , - 1102 , - 711 , - 1440 , - 3289 , - 2674 , - 3179 , - 1220 , - 381 , - 662 , - 2063 , - 1000 , - 1057 , - 2234 , - 947 , - 780 , - 1733 , - 222 , - 3415 , - 560 , - 2409 , - 1794 , - 2299 , - 340 , - 3085 , - 3366 , - 1183 , - 120 , - 177 , - 1354 , - 67 , - 3484 , - 853 , - 2926 , - 2535 , - 3264 , - 1529 , - 914 , - 1419 , - 3044 , - 2205 , - 2486 , - 303 , - 2824 , - 2881 , - 474 , - 2771 , - 2604 , - 3557 , - 2046 , - 1655 , - 2384 , - 649 , - 34 , - 539 , - 2164 , - 1325 , - 1606 , - 3007 , - 1944 , - 2001 , - 3178 , - 1891 , - 1724 , - 2677 , - 1166 , - 775 , - 1504 , - 3353 , - 2738 , - 3243 , - 1284 , - 445 , - 726 , - 2127 , - 1064 , - 1121 , - 2298 , - 1011 , - 844 , - 1797 , - 286 , - 3479 , - 624 , - 2473 , - 1858 , - 2363 , - 404 , - 3149 , - 3430 , - 1247 , - 184 , - 241 , - 1418 , - 131 , - 3548 , - 917 , - 2990 , - 2599 , - 3328 , - 1593 , - 978 , - 1483 , - 3108 , - 2269 , - 2550 , - 367 , - 2888 , - 2945 , - 538 , - 2835 , - 2668 , - 37 , - 2110 , - 1719 , - 2448 , - 713 , - 98 , - 603 , - 2228 , - 1389 , - 1670 , - 3071 , - 2008 , - 2065 , - 3242 , - 1955 , - 1788 , - 2741 , - 1230 , - 839 , - 1568 , - 3417 , - 2802 , - 3307 , - 1348 , - 509 , - 790 , - 2191 , - 1128 , - 1185 , - 2362 , - 1075 , - 908 , - 1861 , - 350 , - 3543 , - 688 , - 2537 , - 1922 , - 2427 , - 468 , - 3213 , - 3494 , - 1311 , - 248 , - 305 , - 1482 , - 195 , - 28 , - 981 , - 3054 , - 2663 , - 3392 , - 1657 , - 1042 , - 1547 , - 3172 , - 2333 , - 2614 , - 431 , - 2952 , - 3009 , - 602 , - 2899 , - 2732 , - 101 , - 2174 , - 1783 , - 2512 , - 777 , - 162 , - 667 , - 2292 , - 1453 , - 1734 , - 3135 , - 2072 , - 2129 , - 3306 , - 2019 , - 1852 , - 2805 , - 1294 , - 903 , - 1632 , - 3481 , - 2866 , - 3371 , - 1412 , - 573 , - 854 , - 2255 , - 1192 , - 1249 , - 2426 , - 1139 , - 972 , - 1925 , - 414 , - 23 , - 752 , - 2601 , - 1986 , - 2491 , - 532 , - 3277 , - 3558 , - 1375 , - 312 , - 369 , - 1546 , - 259 , - 92 , - 1045 , - 3118 , - 2727 , - 3456 , - 1721 , - 1106 , - 1611 , - 3236 , - 2397 , - 2678 , - 495 , - 3016 , - 3073 , - 666 , - 2963 , - 2796 , - 165 , - 2238 , - 1847 , - 2576 , - 841 , - 226 , - 731 , - 2356 , - 1517 , - 1798 , - 3199 , - 2136 , - 2193 , - 3370 , - 2083 , - 1916 , - 2869 , - 1358 , - 967 , - 1696 , - 3545 , - 2930 , - 3435 , - 1476 , - 637 , - 918 , - 2319 , - 1256 , - 1313 , - 2490 , - 1203 , - 1036 , - 1989 , - 478 , - 87 , - 816 , - 2665 , - 2050 , - 2555 , - 596 , - 3341 , - 38 , - 1439 , - 376 , - 433 , - 1610 , - 323 , - 156 , - 1109 , - 3182 , - 2791 , - 3520 , - 1785 , - 1170 , - 1675 , - 3300 , - 2461 , - 2742 , - 559 , - 3080 , - 3137 , - 730 , - 3027 , - 2860 , - 229 , - 2302 , - 1911 , - 2640 , - 905 , - 290 , - 795 , - 2420 , - 1581 , - 1862 , - 3263 , - 2200 , - 2257 , - 3434 , - 2147 , - 1980 , - 2933 , - 1422 , - 1031 , - 1760 , - 25 , - 2994 , - 3499 , - 1540 , - 701 , - 982 , - 2383 , - 1320 , - 1377 , - 2554 , - 1267 , - 1100 , - 2053 , - 542 , - 151 , - 880 , - 2729 , - 2114 , - 2619 , - 660 , - 3405 , - 102 , - 1503 , - 440 , - 497 , - 1674 , - 387 , - 220 , - 1173 , - 3246 , - 2855 , - 0 , - 1765 , - 3074 , - 279 , - 676 , - 617 , - 102 , - 2779 , - 1352 , - 3117 , - 778 , - 1631 , - 2028 , - 1969 , - 1454 , - 483 , - 2704 , - 821 , - 2130 , - 2983 , - 3380 , - 3321 , - 2806 , - 1835 , - 408 , - 2173 , - 3482 , - 687 , - 1084 , - 1025 , - 510 , - 3187 , - 1760 , - 3525 , - 1186 , - 2039 , - 2436 , - 2377 , - 1862 , - 891 , - 3112 , - 1229 , - 2538 , - 3391 , - 140 , - 81 , - 3214 , - 2243 , - 816 , - 2581 , - 242 , - 1095 , - 1492 , - 1433 , - 918 , - 3595 , - 2168 , - 285 , - 1594 , - 2447 , - 2844 , - 2785 , - 2270 , - 1299 , - 3520 , - 1637 , - 2946 , - 151 , - 548 , - 489 , - 3622 , - 2651 , - 1224 , - 2989 , - 650 , - 1503 , - 1900 , - 1841 , - 1326 , - 355 , - 2576 , - 693 , - 2002 , - 2855 , - 3252 , - 3193 , - 2678 , - 1707 , - 280 , - 2045 , - 3354 , - 559 , - 956 , - 897 , - 382 , - 3059 , - 1632 , - 3397 , - 1058 , - 1911 , - 2308 , - 2249 , - 1734 , - 763 , - 2984 , - 1101 , - 2410 , - 3263 , - 12 , - 3601 , - 3086 , - 2115 , - 688 , - 2453 , - 114 , - 967 , - 1364 , - 1305 , - 790 , - 3467 , - 2040 , - 157 , - 1466 , - 2319 , - 2716 , - 2657 , - 2142 , - 1171 , - 3392 , - 1509 , - 2818 , - 23 , - 420 , - 361 , - 3494 , - 2523 , - 1096 , - 2861 , - 522 , - 1375 , - 1772 , - 1713 , - 1198 , - 227 , - 2448 , - 565 , - 1874 , - 2727 , - 3124 , - 3065 , - 2550 , - 1579 , - 152 , - 1917 , - 3226 , - 431 , - 828 , - 769 , - 254 , - 2931 , - 1504 , - 3269 , - 930 , - 1783 , - 2180 , - 2121 , - 1606 , - 635 , - 2856 , - 973 , - 2282 , - 3135 , - 3532 , - 3473 , - 2958 , - 1987 , - 560 , - 2325 , - 3634 , - 839 , - 1236 , - 1177 , - 662 , - 3339 , - 1912 , - 29 , - 1338 , - 2191 , - 2588 , - 2529 , - 2014 , - 1043 , - 3264 , - 1381 , - 2690 , - 3543 , - 292 , - 233 , - 3366 , - 2395 , - 968 , - 2733 , - 394 , - 1247 , - 1644 , - 1585 , - 1070 , - 99 , - 2320 , - 437 , - 1746 , - 2599 , - 2996 , - 2937 , - 2422 , - 1451 , - 24 , - 1789 , - 3098 , - 303 , - 700 , - 641 , - 126 , - 2803 , - 1376 , - 3141 , - 802 , - 1655 , - 2052 , - 1993 , - 1478 , - 507 , - 2728 , - 845 , - 2154 , - 3007 , - 3404 , - 3345 , - 2830 , - 1859 , - 432 , - 2197 , - 3506 , - 711 , - 1108 , - 1049 , - 534 , - 3211 , - 1784 , - 3549 , - 1210 , - 2063 , - 2460 , - 2401 , - 1886 , - 915 , - 3136 , - 1253 , - 2562 , - 3415 , - 164 , - 105 , - 3238 , - 2267 , - 840 , - 2605 , - 266 , - 1119 , - 1516 , - 1457 , - 942 , - 3619 , - 2192 , - 309 , - 1618 , - 2471 , - 2868 , - 2809 , - 2294 , - 1323 , - 3544 , - 1661 , - 2970 , - 175 , - 572 , - 513 , - 3646 , - 2675 , - 1248 , - 3013 , - 674 , - 1527 , - 1924 , - 1865 , - 1350 , - 379 , - 2600 , - 717 , - 2026 , - 2879 , - 3276 , - 3217 , - 2702 , - 1731 , - 304 , - 2069 , - 3378 , - 583 , - 980 , - 921 , - 406 , - 3083 , - 1656 , - 3421 , - 1082 , - 1935 , - 2332 , - 2273 , - 1758 , - 787 , - 3008 , - 1125 , - 2434 , - 3287 , - 36 , - 3625 , - 3110 , - 2139 , - 712 , - 2477 , - 138 , - 991 , - 1388 , - 1329 , - 814 , - 3491 , - 2064 , - 181 , - 1490 , - 2343 , - 2740 , - 2681 , - 2166 , - 1195 , - 3416 , - 1533 , - 2842 , - 47 , - 444 , - 385 , - 3518 , - 2547 , - 1120 , - 2885 , - 546 , - 1399 , - 1796 , - 1737 , - 1222 , - 251 , - 2472 , - 589 , - 1898 , - 2751 , - 3148 , - 3089 , - 2574 , - 1603 , - 176 , - 1941 , - 3250 , - 455 , - 852 , - 793 , - 278 , - 2955 , - 1528 , - 3293 , - 954 , - 1807 , - 2204 , - 2145 , - 1630 , - 659 , - 2880 , - 997 , - 2306 , - 3159 , - 3556 , - 3497 , - 2982 , - 2011 , - 584 , - 2349 , - 10 , - 863 , - 1260 , - 1201 , - 686 , - 3363 , - 1936 , - 53 , - 1362 , - 2215 , - 2612 , - 2553 , - 2038 , - 1067 , - 3288 , - 1405 , - 2714 , - 3567 , - 316 , - 257 , - 3390 , - 2419 , - 992 , - 2757 , - 418 , - 1271 , - 1668 , - 1609 , - 1094 , - 123 , - 2344 , - 461 , - 1770 , - 2623 , - 3020 , - 2961 , - 2446 , - 1475 , - 48 , - 1813 , - 3122 , - 327 , - 724 , - 665 , - 150 , - 2827 , - 1400 , - 3165 , - 826 , - 1679 , - 2076 , - 2017 , - 1502 , - 531 , - 2752 , - 869 , - 2178 , - 3031 , - 3428 , - 3369 , - 2854 , - 1883 , - 456 , - 2221 , - 3530 , - 735 , - 1132 , - 1073 , - 558 , - 3235 , - 1808 , - 3573 , - 1234 , - 2087 , - 2484 , - 2425 , - 1910 , - 939 , - 3160 , - 1277 , - 2586 , - 3439 , - 188 , - 129 , - 3262 , - 2291 , - 864 , - 2629 , - 290 , - 1143 , - 1540 , - 1481 , - 966 , - 3643 , - 2216 , - 333 , - 1642 , - 2495 , - 2892 , - 2833 , - 2318 , - 1347 , - 3568 , - 1685 , - 2994 , - 199 , - 596 , - 537 , - 22 , - 2699 , - 1272 , - 3037 , - 698 , - 1551 , - 1948 , - 1889 , - 1374 , - 403 , - 2624 , - 741 , - 2050 , - 2903 , - 3300 , - 3241 , - 2726 , - 1755 , - 328 , - 2093 , - 3402 , - 607 , - 1004 , - 945 , - 430 , - 3107 , - 1680 , - 3445 , - 1106 , - 1959 , - 2356 , - 2297 , - 1782 , - 811 , - 3032 , - 1149 , - 2458 , - 3311 , - 60 , - 1 , - 3134 , - 2163 , - 736 , - 2501 , - 162 , - 1015 , - 1412 , - 1353 , - 838 , - 3515 , - 2088 , - 205 , - 1514 , - 2367 , - 2764 , - 2705 , - 2190 , - 1219 , - 3440 , - 1557 , - 2866 , - 71 , - 468 , - 409 , - 3542 , - 2571 , - 1144 , - 2909 , - 570 , - 1423 , - 1820 , - 1761 , - 1246 , - 275 , - 2496 , - 613 , - 1922 , - 2775 , - 3172 , - 3113 , - 2598 , - 1627 , - 200 , - 1965 , - 3274 , - 479 , - 876 , - 817 , - 302 , - 2979 , - 1552 , - 3317 , - 978 , - 1831 , - 2228 , - 2169 , - 1654 , - 683 , - 2904 , - 1021 , - 2330 , - 3183 , - 3580 , - 3521 , - 3006 , - 2035 , - 608 , - 2373 , - 34 , - 887 , - 1284 , - 1225 , - 710 , - 3387 , - 1960 , - 77 , - 1386 , - 2239 , - 2636 , - 2577 , - 2062 , - 1091 , - 3312 , - 1429 , - 2738 , - 3591 , - 340 , - 281 , - 3414 , - 2443 , - 1016 , - 2781 , - 442 , - 1295 , - 1692 , - 1633 , - 1118 , - 147 , - 2368 , - 485 , - 1794 , - 2647 , - 3044 , - 2985 , - 2470 , - 1499 , - 72 , - 1837 , - 3146 , - 351 , - 748 , - 689 , - 174 , - 2851 , - 1424 , - 3189 , - 850 , - 1703 , - 2100 , - 2041 , - 1526 , - 555 , - 2776 , - 893 , - 2202 , - 3055 , - 3452 , - 3393 , - 2878 , - 1907 , - 480 , - 2245 , - 3554 , - 759 , - 1156 , - 1097 , - 582 , - 3259 , - 1832 , - 3597 , - 1258 , - 2111 , - 2508 , - 2449 , - 1934 , - 963 , - 3184 , - 1301 , - 2610 , - 3463 , - 212 , - 153 , - 3286 , - 2315 , - 888 , - 2653 , - 314 , - 1167 , - 1564 , - 1505 , - 990 , - 19 , - 2240 , - 357 , - 1666 , - 2519 , - 2916 , - 2857 , - 2342 , - 1371 , - 3592 , - 1709 , - 3018 , - 223 , - 620 , - 561 , - 46 , - 2723 , - 1296 , - 3061 , - 722 , - 1575 , - 1972 , - 1913 , - 1398 , - 427 , - 2648 , - 765 , - 2074 , - 2927 , - 3324 , - 3265 , - 2750 , - 1779 , - 352 , - 2117 , - 3426 , - 631 , - 1028 , - 969 , - 454 , - 3131 , - 1704 , - 3469 , - 1130 , - 1983 , - 2380 , - 2321 , - 1806 , - 835 , - 3056 , - 1173 , - 2482 , - 3335 , - 84 , - 25 , - 3158 , - 2187 , - 760 , - 2525 , - 186 , - 1039 , - 1436 , - 1377 , - 862 , - 3539 , - 2112 , - 229 , - 1538 , - 2391 , - 2788 , - 2729 , - 2214 , - 1243 , - 3464 , - 1581 , - 2890 , - 95 , - 492 , - 433 , - 3566 , - 2595 , - 1168 , - 2933 , - 594 , - 1447 , - 1844 , - 1785 , - 1270 , - 299 , - 2520 , - 637 , - 1946 , - 2799 , - 3196 , - 3137 , - 2622 , - 1651 , - 224 , - 1989 , - 3298 , - 503 , - 900 , - 841 , - 326 , - 3003 , - 1576 , - 3341 , - 1002 , - 1855 , - 2252 , - 2193 , - 1678 , - 707 , - 2928 , - 1045 , - 2354 , - 3207 , - 3604 , - 3545 , - 3030 , - 2059 , - 632 , - 2397 , - 58 , - 911 , - 1308 , - 1249 , - 734 , - 3411 , - 1984 , - 101 , - 1410 , - 2263 , - 2660 , - 2601 , - 2086 , - 1115 , - 3336 , - 1453 , - 2762 , - 3615 , - 364 , - 305 , - 3438 , - 2467 , - 1040 , - 2805 , - 466 , - 1319 , - 1716 , - 1657 , - 1142 , - 171 , - 2392 , - 509 , - 1818 , - 2671 , - 3068 , - 3009 , - 2494 , - 1523 , - 96 , - 1861 , - 3170 , - 375 , - 772 , - 713 , - 198 , - 2875 , - 1448 , - 3213 , - 874 , - 1727 , - 2124 , - 2065 , - 1550 , - 579 , - 2800 , - 917 , - 2226 , - 3079 , - 3476 , - 3417 , - 2902 , - 1931 , - 504 , - 2269 , - 3578 , - 783 , - 1180 , - 1121 , - 606 , - 3283 , - 1856 , - 3621 , - 1282 , - 2135 , - 2532 , - 2473 , - 1958 , - 987 , - 3208 , - 1325 , - 2634 , - 3487 , - 236 , - 177 , - 3310 , - 2339 , - 912 , - 2677 , - 338 , - 1191 , - 1588 , - 1529 , - 1014 , - 43 , - 2264 , - 381 , - 1690 , - 2543 , - 2940 , - 2881 , - 2366 , - 1395 , - 3616 , - 1733 , - 3042 , - 247 , - 644 , - 585 , - 70 , - 2747 , - 1320 , - 3085 , - 746 , - 1599 , - 1996 , - 1937 , - 1422 , - 451 , - 2672 , - 789 , - 2098 , - 2951 , - 3348 , - 3289 , - 2774 , - 1803 , - 376 , - 2141 , - 3450 , - 655 , - 1052 , - 993 , - 478 , - 3155 , - 1728 , - 3493 , - 1154 , - 2007 , - 2404 , - 2345 , - 1830 , - 859 , - 3080 , - 1197 , - 2506 , - 3359 , - 108 , - 49 , - 3182 , - 2211 , - 784 , - 2549 , - 210 , - 1063 , - 1460 , - 1401 , - 886 , - 3563 , - 2136 , - 253 , - 1562 , - 2415 , - 2812 , - 2753 , - 2238 , - 1267 , - 3488 , - 1605 , - 2914 , - 119 , - 516 , - 457 , - 3590 , - 2619 , - 1192 , - 2957 , - 618 , - 1471 , - 1868 , - 1809 , - 1294 , - 323 , - 2544 , - 661 , - 1970 , - 2823 , - 3220 , - 3161 , - 2646 , - 1675 , - 248 , - 2013 , - 3322 , - 527 , - 924 , - 865 , - 350 , - 3027 , - 1600 , - 3365 , - 1026 , - 1879 , - 2276 , - 2217 , - 1702 , - 731 , - 2952 , - 1069 , - 2378 , - 3231 , - 3628 , - 3569 , - 3054 , - 2083 , - 656 , - 2421 , - 82 , - 935 , - 1332 , - 1273 , - 758 , - 3435 , - 2008 , - 125 , - 1434 , - 2287 , - 2684 , - 2625 , - 2110 , - 1139 , - 3360 , - 1477 , - 2786 , - 3639 , - 388 , - 329 , - 3462 , - 2491 , - 1064 , - 2829 , - 490 , - 1343 , - 1740 , - 1681 , - 1166 , - 195 , - 2416 , - 533 , - 1842 , - 2695 , - 3092 , - 3033 , - 2518 , - 1547 , - 120 , - 1885 , - 3194 , - 399 , - 796 , - 737 , - 222 , - 2899 , - 1472 , - 3237 , - 898 , - 1751 , - 2148 , - 2089 , - 1574 , - 603 , - 2824 , - 941 , - 2250 , - 3103 , - 3500 , - 3441 , - 2926 , - 1955 , - 528 , - 2293 , - 3602 , - 807 , - 1204 , - 1145 , - 630 , - 3307 , - 1880 , - 3645 , - 1306 , - 2159 , - 2556 , - 2497 , - 1982 , - 1011 , - 3232 , - 1349 , - 2658 , - 3511 , - 260 , - 201 , - 3334 , - 2363 , - 936 , - 2701 , - 362 , - 1215 , - 1612 , - 1553 , - 1038 , - 67 , - 2288 , - 405 , - 1714 , - 2567 , - 2964 , - 2905 , - 2390 , - 1419 , - 3640 , - 1757 , - 3066 , - 271 , - 668 , - 609 , - 94 , - 2771 , - 1344 , - 3109 , - 770 , - 1623 , - 2020 , - 1961 , - 1446 , - 475 , - 2696 , - 813 , - 2122 , - 2975 , - 3372 , - 3313 , - 2798 , - 1827 , - 400 , - 2165 , - 3474 , - 679 , - 1076 , - 1017 , - 502 , - 3179 , - 1752 , - 3517 , - 1178 , - 2031 , - 2428 , - 2369 , - 1854 , - 883 , - 3104 , - 1221 , - 2530 , - 3383 , - 132 , - 73 , - 3206 , - 2235 , - 808 , - 2573 , - 234 , - 1087 , - 1484 , - 1425 , - 910 , - 3587 , - 2160 , - 277 , - 1586 , - 2439 , - 2836 , - 2777 , - 2262 , - 1291 , - 3512 , - 1629 , - 2938 , - 143 , - 540 , - 481 , - 3614 , - 2643 , - 1216 , - 2981 , - 642 , - 1495 , - 1892 , - 1833 , - 1318 , - 347 , - 2568 , - 685 , - 1994 , - 2847 , - 3244 , - 3185 , - 2670 , - 1699 , - 272 , - 2037 , - 3346 , - 551 , - 948 , - 889 , - 374 , - 3051 , - 1624 , - 3389 , - 1050 , - 1903 , - 2300 , - 2241 , - 1726 , - 755 , - 2976 , - 1093 , - 2402 , - 3255 , - 4 , - 3593 , - 3078 , - 2107 , - 680 , - 2445 , - 106 , - 959 , - 1356 , - 1297 , - 782 , - 3459 , - 2032 , - 149 , - 1458 , - 2311 , - 2708 , - 2649 , - 2134 , - 1163 , - 3384 , - 1501 , - 2810 , - 15 , - 412 , - 353 , - 3486 , - 2515 , - 1088 , - 2853 , - 514 , - 1367 , - 1764 , - 1705 , - 1190 , - 219 , - 2440 , - 557 , - 1866 , - 2719 , - 3116 , - 3057 , - 2542 , - 1571 , - 144 , - 1909 , - 3218 , - 423 , - 820 , - 761 , - 246 , - 2923 , - 1496 , - 3261 , - 922 , - 1775 , - 2172 , - 2113 , - 1598 , - 627 , - 2848 , - 965 , - 2274 , - 3127 , - 3524 , - 3465 , - 2950 , - 1979 , - 552 , - 2317 , - 3626 , - 831 , - 1228 , - 1169 , - 654 , - 3331 , - 1904 , - 21 , - 1330 , - 2183 , - 2580 , - 2521 , - 2006 , - 1035 , - 3256 , - 1373 , - 2682 , - 3535 , - 284 , - 225 , - 3358 , - 2387 , - 960 , - 2725 , - 386 , - 1239 , - 1636 , - 1577 , - 1062 , - 91 , - 2312 , - 429 , - 1738 , - 2591 , - 2988 , - 2929 , - 2414 , - 1443 , - 16 , - 1781 , - 3090 , - 295 , - 692 , - 633 , - 118 , - 2795 , - 1368 , - 3133 , - 794 , - 1647 , - 2044 , - 1985 , - 1470 , - 499 , - 2720 , - 837 , - 2146 , - 2999 , - 3396 , - 3337 , - 2822 , - 1851 , - 424 , - 2189 , - 3498 , - 703 , - 1100 , - 1041 , - 526 , - 3203 , - 1776 , - 3541 , - 1202 , - 2055 , - 2452 , - 2393 , - 1878 , - 907 , - 3128 , - 1245 , - 2554 , - 3407 , - 156 , - 97 , - 3230 , - 2259 , - 832 , - 2597 , - 258 , - 1111 , - 1508 , - 1449 , - 934 , - 3611 , - 2184 , - 301 , - 1610 , - 2463 , - 2860 , - 2801 , - 2286 , - 1315 , - 3536 , - 1653 , - 2962 , - 167 , - 564 , - 505 , - 3638 , - 2667 , - 1240 , - 3005 , - 666 , - 1519 , - 1916 , - 1857 , - 1342 , - 371 , - 2592 , - 709 , - 2018 , - 2871 , - 3268 , - 3209 , - 2694 , - 1723 , - 296 , - 2061 , - 3370 , - 575 , - 972 , - 913 , - 398 , - 3075 , - 1648 , - 3413 , - 1074 , - 1927 , - 2324 , - 2265 , - 1750 , - 779 , - 3000 , - 1117 , - 2426 , - 3279 , - 28 , - 3617 , - 3102 , - 2131 , - 704 , - 2469 , - 130 , - 983 , - 1380 , - 1321 , - 806 , - 3483 , - 2056 , - 173 , - 1482 , - 2335 , - 2732 , - 2673 , - 2158 , - 1187 , - 3408 , - 1525 , - 2834 , - 39 , - 436 , - 377 , - 3510 , - 2539 , - 1112 , - 2877 , - 538 , - 1391 , - 1788 , - 1729 , - 1214 , - 243 , - 2464 , - 581 , - 1890 , - 2743 , - 3140 , - 3081 , - 2566 , - 1595 , - 168 , - 1933 , - 3242 , - 447 , - 844 , - 785 , - 270 , - 2947 , - 1520 , - 3285 , - 946 , - 1799 , - 2196 , - 2137 , - 1622 , - 651 , - 2872 , - 989 , - 2298 , - 3151 , - 3548 , - 3489 , - 2974 , - 2003 , - 576 , - 2341 , - 2 , - 855 , - 1252 , - 1193 , - 678 , - 3355 , - 1928 , - 45 , - 1354 , - 2207 , - 2604 , - 2545 , - 2030 , - 1059 , - 3280 , - 1397 , - 2706 , - 3559 , - 308 , - 249 , - 3382 , - 2411 , - 984 , - 2749 , - 410 , - 1263 , - 1660 , - 1601 , - 1086 , - 115 , - 2336 , - 453 , - 1762 , - 2615 , - 3012 , - 2953 , - 2438 , - 1467 , - 40 , - 1805 , - 3114 , - 319 , - 716 , - 657 , - 142 , - 2819 , - 1392 , - 3157 , - 818 , - 1671 , - 2068 , - 2009 , - 1494 , - 523 , - 2744 , - 861 , - 2170 , - 3023 , - 3420 , - 3361 , - 2846 , - 1875 , - 448 , - 2213 , - 3522 , - 727 , - 1124 , - 1065 , - 550 , - 3227 , - 1800 , - 3565 , - 1226 , - 2079 , - 2476 , - 2417 , - 1902 , - 931 , - 3152 , - 1269 , - 2578 , - 3431 , - 180 , - 121 , - 3254 , - 2283 , - 856 , - 2621 , - 282 , - 1135 , - 1532 , - 1473 , - 958 , - 3635 , - 2208 , - 325 , - 1634 , - 2487 , - 2884 , - 2825 , - 2310 , - 1339 , - 3560 , - 1677 , - 2986 , - 191 , - 588 , - 529 , - 14 , - 2691 , - 1264 , - 3029 , - 690 , - 1543 , - 1940 , - 1881 , - 1366 , - 395 , - 2616 , - 733 , - 2042 , - 2895 , - 3292 , - 3233 , - 2718 , - 1747 , - 320 , - 2085 , - 3394 , - 599 , - 996 , - 937 , - 422 , - 3099 , - 1672 , - 3437 , - 1098 , - 1951 , - 2348 , - 2289 , - 1774 , - 803 , - 3024 , - 1141 , - 2450 , - 3303 , - 52 , - 3641 , - 3126 , - 2155 , - 728 , - 2493 , - 154 , - 1007 , - 1404 , - 1345 , - 830 , - 3507 , - 2080 , - 197 , - 1506 , - 2359 , - 2756 , - 2697 , - 2182 , - 1211 , - 3432 , - 1549 , - 2858 , - 63 , - 460 , - 401 , - 3534 , - 2563 , - 1136 , - 2901 , - 562 , - 1415 , - 1812 , - 1753 , - 1238 , - 267 , - 2488 , - 605 , - 1914 , - 2767 , - 3164 , - 3105 , - 2590 , - 1619 , - 192 , - 1957 , - 3266 , - 471 , - 868 , - 809 , - 294 , - 2971 , - 1544 , - 3309 , - 970 , - 1823 , - 2220 , - 2161 , - 1646 , - 675 , - 2896 , - 1013 , - 2322 , - 3175 , - 3572 , - 3513 , - 2998 , - 2027 , - 600 , - 2365 , - 26 , - 879 , - 1276 , - 1217 , - 702 , - 3379 , - 1952 , - 69 , - 1378 , - 2231 , - 2628 , - 2569 , - 2054 , - 1083 , - 3304 , - 1421 , - 2730 , - 3583 , - 332 , - 273 , - 3406 , - 2435 , - 1008 , - 2773 , - 434 , - 1287 , - 1684 , - 1625 , - 1110 , - 139 , - 2360 , - 477 , - 1786 , - 2639 , - 3036 , - 2977 , - 2462 , - 1491 , - 64 , - 1829 , - 3138 , - 343 , - 740 , - 681 , - 166 , - 2843 , - 1416 , - 3181 , - 842 , - 1695 , - 2092 , - 2033 , - 1518 , - 547 , - 2768 , - 885 , - 2194 , - 3047 , - 3444 , - 3385 , - 2870 , - 1899 , - 472 , - 2237 , - 3546 , - 751 , - 1148 , - 1089 , - 574 , - 3251 , - 1824 , - 3589 , - 1250 , - 2103 , - 2500 , - 2441 , - 1926 , - 955 , - 3176 , - 1293 , - 2602 , - 3455 , - 204 , - 145 , - 3278 , - 2307 , - 880 , - 2645 , - 306 , - 1159 , - 1556 , - 1497 , - 982 , - 11 , - 2232 , - 349 , - 1658 , - 2511 , - 2908 , - 2849 , - 2334 , - 1363 , - 3584 , - 1701 , - 3010 , - 215 , - 612 , - 553 , - 38 , - 2715 , - 1288 , - 3053 , - 714 , - 1567 , - 1964 , - 1905 , - 1390 , - 419 , - 2640 , - 757 , - 2066 , - 2919 , - 3316 , - 3257 , - 2742 , - 1771 , - 344 , - 2109 , - 3418 , - 623 , - 1020 , - 961 , - 446 , - 3123 , - 1696 , - 3461 , - 1122 , - 1975 , - 2372 , - 2313 , - 1798 , - 827 , - 3048 , - 1165 , - 2474 , - 3327 , - 76 , - 17 , - 3150 , - 2179 , - 752 , - 2517 , - 178 , - 1031 , - 1428 , - 1369 , - 854 , - 3531 , - 2104 , - 221 , - 1530 , - 2383 , - 2780 , - 2721 , - 2206 , - 1235 , - 3456 , - 1573 , - 2882 , - 87 , - 484 , - 425 , - 3558 , - 2587 , - 1160 , - 2925 , - 586 , - 1439 , - 1836 , - 1777 , - 1262 , - 291 , - 2512 , - 629 , - 1938 , - 2791 , - 3188 , - 3129 , - 2614 , - 1643 , - 216 , - 1981 , - 3290 , - 495 , - 892 , - 833 , - 318 , - 2995 , - 1568 , - 3333 , - 994 , - 1847 , - 2244 , - 2185 , - 1670 , - 699 , - 2920 , - 1037 , - 2346 , - 3199 , - 3596 , - 3537 , - 3022 , - 2051 , - 624 , - 2389 , - 50 , - 903 , - 1300 , - 1241 , - 726 , - 3403 , - 1976 , - 93 , - 1402 , - 2255 , - 2652 , - 2593 , - 2078 , - 1107 , - 3328 , - 1445 , - 2754 , - 3607 , - 356 , - 297 , - 3430 , - 2459 , - 1032 , - 2797 , - 458 , - 1311 , - 1708 , - 1649 , - 1134 , - 163 , - 2384 , - 501 , - 1810 , - 2663 , - 3060 , - 3001 , - 2486 , - 1515 , - 88 , - 1853 , - 3162 , - 367 , - 764 , - 705 , - 190 , - 2867 , - 1440 , - 3205 , - 866 , - 1719 , - 2116 , - 2057 , - 1542 , - 571 , - 2792 , - 909 , - 2218 , - 3071 , - 3468 , - 3409 , - 2894 , - 1923 , - 496 , - 2261 , - 3570 , - 775 , - 1172 , - 1113 , - 598 , - 3275 , - 1848 , - 3613 , - 1274 , - 2127 , - 2524 , - 2465 , - 1950 , - 979 , - 3200 , - 1317 , - 2626 , - 3479 , - 228 , - 169 , - 3302 , - 2331 , - 904 , - 2669 , - 330 , - 1183 , - 1580 , - 1521 , - 1006 , - 35 , - 2256 , - 373 , - 1682 , - 2535 , - 2932 , - 2873 , - 2358 , - 1387 , - 3608 , - 1725 , - 3034 , - 239 , - 636 , - 577 , - 62 , - 2739 , - 1312 , - 3077 , - 738 , - 1591 , - 1988 , - 1929 , - 1414 , - 443 , - 2664 , - 781 , - 2090 , - 2943 , - 3340 , - 3281 , - 2766 , - 1795 , - 368 , - 2133 , - 3442 , - 647 , - 1044 , - 985 , - 470 , - 3147 , - 1720 , - 3485 , - 1146 , - 1999 , - 2396 , - 2337 , - 1822 , - 851 , - 3072 , - 1189 , - 2498 , - 3351 , - 100 , - 41 , - 3174 , - 2203 , - 776 , - 2541 , - 202 , - 1055 , - 1452 , - 1393 , - 878 , - 3555 , - 2128 , - 245 , - 1554 , - 2407 , - 2804 , - 2745 , - 2230 , - 1259 , - 3480 , - 1597 , - 2906 , - 111 , - 508 , - 449 , - 3582 , - 2611 , - 1184 , - 2949 , - 610 , - 1463 , - 1860 , - 1801 , - 1286 , - 315 , - 2536 , - 653 , - 1962 , - 2815 , - 3212 , - 3153 , - 2638 , - 1667 , - 240 , - 2005 , - 3314 , - 519 , - 916 , - 857 , - 342 , - 3019 , - 1592 , - 3357 , - 1018 , - 1871 , - 2268 , - 2209 , - 1694 , - 723 , - 2944 , - 1061 , - 2370 , - 3223 , - 3620 , - 3561 , - 3046 , - 2075 , - 648 , - 2413 , - 74 , - 927 , - 1324 , - 1265 , - 750 , - 3427 , - 2000 , - 117 , - 1426 , - 2279 , - 2676 , - 2617 , - 2102 , - 1131 , - 3352 , - 1469 , - 2778 , - 3631 , - 380 , - 321 , - 3454 , - 2483 , - 1056 , - 2821 , - 482 , - 1335 , - 1732 , - 1673 , - 1158 , - 187 , - 2408 , - 525 , - 1834 , - 2687 , - 3084 , - 3025 , - 2510 , - 1539 , - 112 , - 1877 , - 3186 , - 391 , - 788 , - 729 , - 214 , - 2891 , - 1464 , - 3229 , - 890 , - 1743 , - 2140 , - 2081 , - 1566 , - 595 , - 2816 , - 933 , - 2242 , - 3095 , - 3492 , - 3433 , - 2918 , - 1947 , - 520 , - 2285 , - 3594 , - 799 , - 1196 , - 1137 , - 622 , - 3299 , - 1872 , - 3637 , - 1298 , - 2151 , - 2548 , - 2489 , - 1974 , - 1003 , - 3224 , - 1341 , - 2650 , - 3503 , - 252 , - 193 , - 3326 , - 2355 , - 928 , - 2693 , - 354 , - 1207 , - 1604 , - 1545 , - 1030 , - 59 , - 2280 , - 397 , - 1706 , - 2559 , - 2956 , - 2897 , - 2382 , - 1411 , - 3632 , - 1749 , - 3058 , - 263 , - 660 , - 601 , - 86 , - 2763 , - 1336 , - 3101 , - 762 , - 1615 , - 2012 , - 1953 , - 1438 , - 467 , - 2688 , - 805 , - 2114 , - 2967 , - 3364 , - 3305 , - 2790 , - 1819 , - 392 , - 2157 , - 3466 , - 671 , - 1068 , - 1009 , - 494 , - 3171 , - 1744 , - 3509 , - 1170 , - 2023 , - 2420 , - 2361 , - 1846 , - 875 , - 3096 , - 1213 , - 2522 , - 3375 , - 124 , - 65 , - 3198 , - 2227 , - 800 , - 2565 , - 226 , - 1079 , - 1476 , - 1417 , - 902 , - 3579 , - 2152 , - 269 , - 1578 , - 2431 , - 2828 , - 2769 , - 2254 , - 1283 , - 3504 , - 1621 , - 2930 , - 135 , - 532 , - 473 , - 3606 , - 2635 , - 1208 , - 2973 , - 634 , - 1487 , - 1884 , - 1825 , - 1310 , - 339 , - 2560 , - 677 , - 1986 , - 2839 , - 3236 , - 3177 , - 2662 , - 1691 , - 264 , - 2029 , - 3338 , - 543 , - 940 , - 881 , - 366 , - 3043 , - 1616 , - 3381 , - 1042 , - 1895 , - 2292 , - 2233 , - 1718 , - 747 , - 2968 , - 1085 , - 2394 , - 3247 , - 3644 , - 3585 , - 3070 , - 2099 , - 672 , - 2437 , - 98 , - 951 , - 1348 , - 1289 , - 774 , - 3451 , - 2024 , - 141 , - 1450 , - 2303 , - 2700 , - 2641 , - 2126 , - 1155 , - 3376 , - 1493 , - 2802 , - 7 , - 404 , - 345 , - 3478 , - 2507 , - 1080 , - 2845 , - 506 , - 1359 , - 1756 , - 1697 , - 1182 , - 211 , - 2432 , - 549 , - 1858 , - 2711 , - 3108 , - 3049 , - 2534 , - 1563 , - 136 , - 1901 , - 3210 , - 415 , - 812 , - 753 , - 238 , - 2915 , - 1488 , - 3253 , - 914 , - 1767 , - 2164 , - 2105 , - 1590 , - 619 , - 2840 , - 957 , - 2266 , - 3119 , - 3516 , - 3457 , - 2942 , - 1971 , - 544 , - 2309 , - 3618 , - 823 , - 1220 , - 1161 , - 646 , - 3323 , - 1896 , - 13 , - 1322 , - 2175 , - 2572 , - 2513 , - 1998 , - 1027 , - 3248 , - 1365 , - 2674 , - 3527 , - 276 , - 217 , - 3350 , - 2379 , - 952 , - 2717 , - 378 , - 1231 , - 1628 , - 1569 , - 1054 , - 83 , - 2304 , - 421 , - 1730 , - 2583 , - 2980 , - 2921 , - 2406 , - 1435 , - 8 , - 1773 , - 3082 , - 287 , - 684 , - 625 , - 110 , - 2787 , - 1360 , - 3125 , - 786 , - 1639 , - 2036 , - 1977 , - 1462 , - 491 , - 2712 , - 829 , - 2138 , - 2991 , - 3388 , - 3329 , - 2814 , - 1843 , - 416 , - 2181 , - 3490 , - 695 , - 1092 , - 1033 , - 518 , - 3195 , - 1768 , - 3533 , - 1194 , - 2047 , - 2444 , - 2385 , - 1870 , - 899 , - 3120 , - 1237 , - 2546 , - 3399 , - 148 , - 89 , - 3222 , - 2251 , - 824 , - 2589 , - 250 , - 1103 , - 1500 , - 1441 , - 926 , - 3603 , - 2176 , - 293 , - 1602 , - 2455 , - 2852 , - 2793 , - 2278 , - 1307 , - 3528 , - 1645 , - 2954 , - 159 , - 556 , - 497 , - 3630 , - 2659 , - 1232 , - 2997 , - 658 , - 1511 , - 1908 , - 1849 , - 1334 , - 363 , - 2584 , - 701 , - 2010 , - 2863 , - 3260 , - 3201 , - 2686 , - 1715 , - 288 , - 2053 , - 3362 , - 567 , - 964 , - 905 , - 390 , - 3067 , - 1640 , - 3405 , - 1066 , - 1919 , - 2316 , - 2257 , - 1742 , - 771 , - 2992 , - 1109 , - 2418 , - 3271 , - 20 , - 3609 , - 3094 , - 2123 , - 696 , - 2461 , - 122 , - 975 , - 1372 , - 1313 , - 798 , - 3475 , - 2048 , - 165 , - 1474 , - 2327 , - 2724 , - 2665 , - 2150 , - 1179 , - 3400 , - 1517 , - 2826 , - 31 , - 428 , - 369 , - 3502 , - 2531 , - 1104 , - 2869 , - 530 , - 1383 , - 1780 , - 1721 , - 1206 , - 235 , - 2456 , - 573 , - 1882 , - 2735 , - 3132 , - 3073 , - 2558 , - 1587 , - 160 , - 1925 , - 3234 , - 439 , - 836 , - 777 , - 262 , - 2939 , - 1512 , - 3277 , - 938 , - 1791 , - 2188 , - 2129 , - 1614 , - 643 , - 2864 , - 981 , - 2290 , - 3143 , - 3540 , - 3481 , - 2966 , - 1995 , - 568 , - 2333 , - 3642 , - 847 , - 1244 , - 1185 , - 670 , - 3347 , - 1920 , - 37 , - 1346 , - 2199 , - 2596 , - 2537 , - 2022 , - 1051 , - 3272 , - 1389 , - 2698 , - 3551 , - 300 , - 241 , - 3374 , - 2403 , - 976 , - 2741 , - 402 , - 1255 , - 1652 , - 1593 , - 1078 , - 107 , - 2328 , - 445 , - 1754 , - 2607 , - 3004 , - 2945 , - 2430 , - 1459 , - 32 , - 1797 , - 3106 , - 311 , - 708 , - 649 , - 134 , - 2811 , - 1384 , - 3149 , - 810 , - 1663 , - 2060 , - 2001 , - 1486 , - 515 , - 2736 , - 853 , - 2162 , - 3015 , - 3412 , - 3353 , - 2838 , - 1867 , - 440 , - 2205 , - 3514 , - 719 , - 1116 , - 1057 , - 542 , - 3219 , - 1792 , - 3557 , - 1218 , - 2071 , - 2468 , - 2409 , - 1894 , - 923 , - 3144 , - 1261 , - 2570 , - 3423 , - 172 , - 113 , - 3246 , - 2275 , - 848 , - 2613 , - 274 , - 1127 , - 1524 , - 1465 , - 950 , - 3627 , - 2200 , - 317 , - 1626 , - 2479 , - 2876 , - 2817 , - 2302 , - 1331 , - 3552 , - 1669 , - 2978 , - 183 , - 580 , - 521 , - 6 , - 2683 , - 1256 , - 3021 , - 682 , - 1535 , - 1932 , - 1873 , - 1358 , - 387 , - 2608 , - 725 , - 2034 , - 2887 , - 3284 , - 3225 , - 2710 , - 1739 , - 312 , - 2077 , - 3386 , - 591 , - 988 , - 929 , - 414 , - 3091 , - 1664 , - 3429 , - 1090 , - 1943 , - 2340 , - 2281 , - 1766 , - 795 , - 3016 , - 1133 , - 2442 , - 3295 , - 44 , - 3633 , - 3118 , - 2147 , - 720 , - 2485 , - 146 , - 999 , - 1396 , - 1337 , - 822 , - 3499 , - 2072 , - 189 , - 1498 , - 2351 , - 2748 , - 2689 , - 2174 , - 1203 , - 3424 , - 1541 , - 2850 , - 55 , - 452 , - 393 , - 3526 , - 2555 , - 1128 , - 2893 , - 554 , - 1407 , - 1804 , - 1745 , - 1230 , - 259 , - 2480 , - 597 , - 1906 , - 2759 , - 3156 , - 3097 , - 2582 , - 1611 , - 184 , - 1949 , - 3258 , - 463 , - 860 , - 801 , - 286 , - 2963 , - 1536 , - 3301 , - 962 , - 1815 , - 2212 , - 2153 , - 1638 , - 667 , - 2888 , - 1005 , - 2314 , - 3167 , - 3564 , - 3505 , - 2990 , - 2019 , - 592 , - 2357 , - 18 , - 871 , - 1268 , - 1209 , - 694 , - 3371 , - 1944 , - 61 , - 1370 , - 2223 , - 2620 , - 2561 , - 2046 , - 1075 , - 3296 , - 1413 , - 2722 , - 3575 , - 324 , - 265 , - 3398 , - 2427 , - 1000 , - 2765 , - 426 , - 1279 , - 1676 , - 1617 , - 1102 , - 131 , - 2352 , - 469 , - 1778 , - 2631 , - 3028 , - 2969 , - 2454 , - 1483 , - 56 , - 1821 , - 3130 , - 335 , - 732 , - 673 , - 158 , - 2835 , - 1408 , - 3173 , - 834 , - 1687 , - 2084 , - 2025 , - 1510 , - 539 , - 2760 , - 877 , - 2186 , - 3039 , - 3436 , - 3377 , - 2862 , - 1891 , - 464 , - 2229 , - 3538 , - 743 , - 1140 , - 1081 , - 566 , - 3243 , - 1816 , - 3581 , - 1242 , - 2095 , - 2492 , - 2433 , - 1918 , - 947 , - 3168 , - 1285 , - 2594 , - 3447 , - 196 , - 137 , - 3270 , - 2299 , - 872 , - 2637 , - 298 , - 1151 , - 1548 , - 1489 , - 974 , - 3 , - 2224 , - 341 , - 1650 , - 2503 , - 2900 , - 2841 , - 2326 , - 1355 , - 3576 , - 1693 , - 3002 , - 207 , - 604 , - 545 , - 30 , - 2707 , - 1280 , - 3045 , - 706 , - 1559 , - 1956 , - 1897 , - 1382 , - 411 , - 2632 , - 749 , - 2058 , - 2911 , - 3308 , - 3249 , - 2734 , - 1763 , - 336 , - 2101 , - 3410 , - 615 , - 1012 , - 953 , - 438 , - 3115 , - 1688 , - 3453 , - 1114 , - 1967 , - 2364 , - 2305 , - 1790 , - 819 , - 3040 , - 1157 , - 2466 , - 3319 , - 68 , - 9 , - 3142 , - 2171 , - 744 , - 2509 , - 170 , - 1023 , - 1420 , - 1361 , - 846 , - 3523 , - 2096 , - 213 , - 1522 , - 2375 , - 2772 , - 2713 , - 2198 , - 1227 , - 3448 , - 1565 , - 2874 , - 79 , - 476 , - 417 , - 3550 , - 2579 , - 1152 , - 2917 , - 578 , - 1431 , - 1828 , - 1769 , - 1254 , - 283 , - 2504 , - 621 , - 1930 , - 2783 , - 3180 , - 3121 , - 2606 , - 1635 , - 208 , - 1973 , - 3282 , - 487 , - 884 , - 825 , - 310 , - 2987 , - 1560 , - 3325 , - 986 , - 1839 , - 2236 , - 2177 , - 1662 , - 691 , - 2912 , - 1029 , - 2338 , - 3191 , - 3588 , - 3529 , - 3014 , - 2043 , - 616 , - 2381 , - 42 , - 895 , - 1292 , - 1233 , - 718 , - 3395 , - 1968 , - 85 , - 1394 , - 2247 , - 2644 , - 2585 , - 2070 , - 1099 , - 3320 , - 1437 , - 2746 , - 3599 , - 348 , - 289 , - 3422 , - 2451 , - 1024 , - 2789 , - 450 , - 1303 , - 1700 , - 1641 , - 1126 , - 155 , - 2376 , - 493 , - 1802 , - 2655 , - 3052 , - 2993 , - 2478 , - 1507 , - 80 , - 1845 , - 3154 , - 359 , - 756 , - 697 , - 182 , - 2859 , - 1432 , - 3197 , - 858 , - 1711 , - 2108 , - 2049 , - 1534 , - 563 , - 2784 , - 901 , - 2210 , - 3063 , - 3460 , - 3401 , - 2886 , - 1915 , - 488 , - 2253 , - 3562 , - 767 , - 1164 , - 1105 , - 590 , - 3267 , - 1840 , - 3605 , - 1266 , - 2119 , - 2516 , - 2457 , - 1942 , - 971 , - 3192 , - 1309 , - 2618 , - 3471 , - 220 , - 161 , - 3294 , - 2323 , - 896 , - 2661 , - 322 , - 1175 , - 1572 , - 1513 , - 998 , - 27 , - 2248 , - 365 , - 1674 , - 2527 , - 2924 , - 2865 , - 2350 , - 1379 , - 3600 , - 1717 , - 3026 , - 231 , - 628 , - 569 , - 54 , - 2731 , - 1304 , - 3069 , - 730 , - 1583 , - 1980 , - 1921 , - 1406 , - 435 , - 2656 , - 773 , - 2082 , - 2935 , - 3332 , - 3273 , - 2758 , - 1787 , - 360 , - 2125 , - 3434 , - 639 , - 1036 , - 977 , - 462 , - 3139 , - 1712 , - 3477 , - 1138 , - 1991 , - 2388 , - 2329 , - 1814 , - 843 , - 3064 , - 1181 , - 2490 , - 3343 , - 92 , - 33 , - 3166 , - 2195 , - 768 , - 2533 , - 194 , - 1047 , - 1444 , - 1385 , - 870 , - 3547 , - 2120 , - 237 , - 1546 , - 2399 , - 2796 , - 2737 , - 2222 , - 1251 , - 3472 , - 1589 , - 2898 , - 103 , - 500 , - 441 , - 3574 , - 2603 , - 1176 , - 2941 , - 602 , - 1455 , - 1852 , - 1793 , - 1278 , - 307 , - 2528 , - 645 , - 1954 , - 2807 , - 3204 , - 3145 , - 2630 , - 1659 , - 232 , - 1997 , - 3306 , - 511 , - 908 , - 849 , - 334 , - 3011 , - 1584 , - 3349 , - 1010 , - 1863 , - 2260 , - 2201 , - 1686 , - 715 , - 2936 , - 1053 , - 2362 , - 3215 , - 3612 , - 3553 , - 3038 , - 2067 , - 640 , - 2405 , - 66 , - 919 , - 1316 , - 1257 , - 742 , - 3419 , - 1992 , - 109 , - 1418 , - 2271 , - 2668 , - 2609 , - 2094 , - 1123 , - 3344 , - 1461 , - 2770 , - 3623 , - 372 , - 313 , - 3446 , - 2475 , - 1048 , - 2813 , - 474 , - 1327 , - 1724 , - 1665 , - 1150 , - 179 , - 2400 , - 517 , - 1826 , - 2679 , - 3076 , - 3017 , - 2502 , - 1531 , - 104 , - 1869 , - 3178 , - 383 , - 780 , - 721 , - 206 , - 2883 , - 1456 , - 3221 , - 882 , - 1735 , - 2132 , - 2073 , - 1558 , - 587 , - 2808 , - 925 , - 2234 , - 3087 , - 3484 , - 3425 , - 2910 , - 1939 , - 512 , - 2277 , - 3586 , - 791 , - 1188 , - 1129 , - 614 , - 3291 , - 1864 , - 3629 , - 1290 , - 2143 , - 2540 , - 2481 , - 1966 , - 995 , - 3216 , - 1333 , - 2642 , - 3495 , - 244 , - 185 , - 3318 , - 2347 , - 920 , - 2685 , - 346 , - 1199 , - 1596 , - 1537 , - 1022 , - 51 , - 2272 , - 389 , - 1698 , - 2551 , - 2948 , - 2889 , - 2374 , - 1403 , - 3624 , - 1741 , - 3050 , - 255 , - 652 , - 593 , - 78 , - 2755 , - 1328 , - 3093 , - 754 , - 1607 , - 2004 , - 1945 , - 1430 , - 459 , - 2680 , - 797 , - 2106 , - 2959 , - 3356 , - 3297 , - 2782 , - 1811 , - 384 , - 2149 , - 3458 , - 663 , - 1060 , - 1001 , - 486 , - 3163 , - 1736 , - 3501 , - 1162 , - 2015 , - 2412 , - 2353 , - 1838 , - 867 , - 3088 , - 1205 , - 2514 , - 3367 , - 116 , - 57 , - 3190 , - 2219 , - 792 , - 2557 , - 218 , - 1071 , - 1468 , - 1409 , - 894 , - 3571 , - 2144 , - 261 , - 1570 , - 2423 , - 2820 , - 2761 , - 2246 , - 1275 , - 3496 , - 1613 , - 2922 , - 127 , - 524 , - 465 , - 3598 , - 2627 , - 1200 , - 2965 , - 626 , - 1479 , - 1876 , - 1817 , - 1302 , - 331 , - 2552 , - 669 , - 1978 , - 2831 , - 3228 , - 3169 , - 2654 , - 1683 , - 256 , - 2021 , - 3330 , - 535 , - 932 , - 873 , - 358 , - 3035 , - 1608 , - 3373 , - 1034 , - 1887 , - 2284 , - 2225 , - 1710 , - 739 , - 2960 , - 1077 , - 2386 , - 3239 , - 3636 , - 3577 , - 3062 , - 2091 , - 664 , - 2429 , - 90 , - 943 , - 1340 , - 1281 , - 766 , - 3443 , - 2016 , - 133 , - 1442 , - 2295 , - 2692 , - 2633 , - 2118 , - 1147 , - 3368 , - 1485 , - 2794 , - 3647 , - 396 , - 337 , - 3470 , - 2499 , - 1072 , - 2837 , - 498 , - 1351 , - 1748 , - 1689 , - 1174 , - 203 , - 2424 , - 541 , - 1850 , - 2703 , - 3100 , - 3041 , - 2526 , - 1555 , - 128 , - 1893 , - 3202 , - 407 , - 804 , - 745 , - 230 , - 2907 , - 1480 , - 3245 , - 906 , - 1759 , - 2156 , - 2097 , - 1582 , - 611 , - 2832 , - 949 , - 2258 , - 3111 , - 3508 , - 3449 , - 2934 , - 1963 , - 536 , - 2301 , - 3610 , - 815 , - 1212 , - 1153 , - 638 , - 3315 , - 1888 , - 5 , - 1314 , - 2167 , - 2564 , - 2505 , - 1990 , - 1019 , - 3240 , - 1357 , - 2666 , - 3519 , - 268 , - 209 , - 3342 , - 2371 , - 944 , - 2709 , - 370 , - 1223 , - 1620 , - 1561 , - 1046 , - 75 , - 2296 , - 413 , - 1722 , - 2575 , - 2972 , - 2913 , - 2398 , - 1427 , - 0 , - 2903 , - 2558 , - 2677 , - 3260 , - 595 , - 2106 , - 369 , - 2808 , - 1999 , - 1654 , - 1773 , - 2356 , - 3403 , - 1202 , - 3177 , - 1904 , - 1095 , - 750 , - 869 , - 1452 , - 2499 , - 298 , - 2273 , - 1000 , - 191 , - 3558 , - 3677 , - 548 , - 1595 , - 3106 , - 1369 , - 96 , - 2999 , - 2654 , - 2773 , - 3356 , - 691 , - 2202 , - 465 , - 2904 , - 2095 , - 1750 , - 1869 , - 2452 , - 3499 , - 1298 , - 3273 , - 2000 , - 1191 , - 846 , - 965 , - 1548 , - 2595 , - 394 , - 2369 , - 1096 , - 287 , - 3654 , - 61 , - 644 , - 1691 , - 3202 , - 1465 , - 192 , - 3095 , - 2750 , - 2869 , - 3452 , - 787 , - 2298 , - 561 , - 3000 , - 2191 , - 1846 , - 1965 , - 2548 , - 3595 , - 1394 , - 3369 , - 2096 , - 1287 , - 942 , - 1061 , - 1644 , - 2691 , - 490 , - 2465 , - 1192 , - 383 , - 38 , - 157 , - 740 , - 1787 , - 3298 , - 1561 , - 288 , - 3191 , - 2846 , - 2965 , - 3548 , - 883 , - 2394 , - 657 , - 3096 , - 2287 , - 1942 , - 2061 , - 2644 , - 3691 , - 1490 , - 3465 , - 2192 , - 1383 , - 1038 , - 1157 , - 1740 , - 2787 , - 586 , - 2561 , - 1288 , - 479 , - 134 , - 253 , - 836 , - 1883 , - 3394 , - 1657 , - 384 , - 3287 , - 2942 , - 3061 , - 3644 , - 979 , - 2490 , - 753 , - 3192 , - 2383 , - 2038 , - 2157 , - 2740 , - 75 , - 1586 , - 3561 , - 2288 , - 1479 , - 1134 , - 1253 , - 1836 , - 2883 , - 682 , - 2657 , - 1384 , - 575 , - 230 , - 349 , - 932 , - 1979 , - 3490 , - 1753 , - 480 , - 3383 , - 3038 , - 3157 , - 28 , - 1075 , - 2586 , - 849 , - 3288 , - 2479 , - 2134 , - 2253 , - 2836 , - 171 , - 1682 , - 3657 , - 2384 , - 1575 , - 1230 , - 1349 , - 1932 , - 2979 , - 778 , - 2753 , - 1480 , - 671 , - 326 , - 445 , - 1028 , - 2075 , - 3586 , - 1849 , - 576 , - 3479 , - 3134 , - 3253 , - 124 , - 1171 , - 2682 , - 945 , - 3384 , - 2575 , - 2230 , - 2349 , - 2932 , - 267 , - 1778 , - 41 , - 2480 , - 1671 , - 1326 , - 1445 , - 2028 , - 3075 , - 874 , - 2849 , - 1576 , - 767 , - 422 , - 541 , - 1124 , - 2171 , - 3682 , - 1945 , - 672 , - 3575 , - 3230 , - 3349 , - 220 , - 1267 , - 2778 , - 1041 , - 3480 , - 2671 , - 2326 , - 2445 , - 3028 , - 363 , - 1874 , - 137 , - 2576 , - 1767 , - 1422 , - 1541 , - 2124 , - 3171 , - 970 , - 2945 , - 1672 , - 863 , - 518 , - 637 , - 1220 , - 2267 , - 66 , - 2041 , - 768 , - 3671 , - 3326 , - 3445 , - 316 , - 1363 , - 2874 , - 1137 , - 3576 , - 2767 , - 2422 , - 2541 , - 3124 , - 459 , - 1970 , - 233 , - 2672 , - 1863 , - 1518 , - 1637 , - 2220 , - 3267 , - 1066 , - 3041 , - 1768 , - 959 , - 614 , - 733 , - 1316 , - 2363 , - 162 , - 2137 , - 864 , - 55 , - 3422 , - 3541 , - 412 , - 1459 , - 2970 , - 1233 , - 3672 , - 2863 , - 2518 , - 2637 , - 3220 , - 555 , - 2066 , - 329 , - 2768 , - 1959 , - 1614 , - 1733 , - 2316 , - 3363 , - 1162 , - 3137 , - 1864 , - 1055 , - 710 , - 829 , - 1412 , - 2459 , - 258 , - 2233 , - 960 , - 151 , - 3518 , - 3637 , - 508 , - 1555 , - 3066 , - 1329 , - 56 , - 2959 , - 2614 , - 2733 , - 3316 , - 651 , - 2162 , - 425 , - 2864 , - 2055 , - 1710 , - 1829 , - 2412 , - 3459 , - 1258 , - 3233 , - 1960 , - 1151 , - 806 , - 925 , - 1508 , - 2555 , - 354 , - 2329 , - 1056 , - 247 , - 3614 , - 21 , - 604 , - 1651 , - 3162 , - 1425 , - 152 , - 3055 , - 2710 , - 2829 , - 3412 , - 747 , - 2258 , - 521 , - 2960 , - 2151 , - 1806 , - 1925 , - 2508 , - 3555 , - 1354 , - 3329 , - 2056 , - 1247 , - 902 , - 1021 , - 1604 , - 2651 , - 450 , - 2425 , - 1152 , - 343 , - 3710 , - 117 , - 700 , - 1747 , - 3258 , - 1521 , - 248 , - 3151 , - 2806 , - 2925 , - 3508 , - 843 , - 2354 , - 617 , - 3056 , - 2247 , - 1902 , - 2021 , - 2604 , - 3651 , - 1450 , - 3425 , - 2152 , - 1343 , - 998 , - 1117 , - 1700 , - 2747 , - 546 , - 2521 , - 1248 , - 439 , - 94 , - 213 , - 796 , - 1843 , - 3354 , - 1617 , - 344 , - 3247 , - 2902 , - 3021 , - 3604 , - 939 , - 2450 , - 713 , - 3152 , - 2343 , - 1998 , - 2117 , - 2700 , - 35 , - 1546 , - 3521 , - 2248 , - 1439 , - 1094 , - 1213 , - 1796 , - 2843 , - 642 , - 2617 , - 1344 , - 535 , - 190 , - 309 , - 892 , - 1939 , - 3450 , - 1713 , - 440 , - 3343 , - 2998 , - 3117 , - 3700 , - 1035 , - 2546 , - 809 , - 3248 , - 2439 , - 2094 , - 2213 , - 2796 , - 131 , - 1642 , - 3617 , - 2344 , - 1535 , - 1190 , - 1309 , - 1892 , - 2939 , - 738 , - 2713 , - 1440 , - 631 , - 286 , - 405 , - 988 , - 2035 , - 3546 , - 1809 , - 536 , - 3439 , - 3094 , - 3213 , - 84 , - 1131 , - 2642 , - 905 , - 3344 , - 2535 , - 2190 , - 2309 , - 2892 , - 227 , - 1738 , - 1 , - 2440 , - 1631 , - 1286 , - 1405 , - 1988 , - 3035 , - 834 , - 2809 , - 1536 , - 727 , - 382 , - 501 , - 1084 , - 2131 , - 3642 , - 1905 , - 632 , - 3535 , - 3190 , - 3309 , - 180 , - 1227 , - 2738 , - 1001 , - 3440 , - 2631 , - 2286 , - 2405 , - 2988 , - 323 , - 1834 , - 97 , - 2536 , - 1727 , - 1382 , - 1501 , - 2084 , - 3131 , - 930 , - 2905 , - 1632 , - 823 , - 478 , - 597 , - 1180 , - 2227 , - 26 , - 2001 , - 728 , - 3631 , - 3286 , - 3405 , - 276 , - 1323 , - 2834 , - 1097 , - 3536 , - 2727 , - 2382 , - 2501 , - 3084 , - 419 , - 1930 , - 193 , - 2632 , - 1823 , - 1478 , - 1597 , - 2180 , - 3227 , - 1026 , - 3001 , - 1728 , - 919 , - 574 , - 693 , - 1276 , - 2323 , - 122 , - 2097 , - 824 , - 15 , - 3382 , - 3501 , - 372 , - 1419 , - 2930 , - 1193 , - 3632 , - 2823 , - 2478 , - 2597 , - 3180 , - 515 , - 2026 , - 289 , - 2728 , - 1919 , - 1574 , - 1693 , - 2276 , - 3323 , - 1122 , - 3097 , - 1824 , - 1015 , - 670 , - 789 , - 1372 , - 2419 , - 218 , - 2193 , - 920 , - 111 , - 3478 , - 3597 , - 468 , - 1515 , - 3026 , - 1289 , - 16 , - 2919 , - 2574 , - 2693 , - 3276 , - 611 , - 2122 , - 385 , - 2824 , - 2015 , - 1670 , - 1789 , - 2372 , - 3419 , - 1218 , - 3193 , - 1920 , - 1111 , - 766 , - 885 , - 1468 , - 2515 , - 314 , - 2289 , - 1016 , - 207 , - 3574 , - 3693 , - 564 , - 1611 , - 3122 , - 1385 , - 112 , - 3015 , - 2670 , - 2789 , - 3372 , - 707 , - 2218 , - 481 , - 2920 , - 2111 , - 1766 , - 1885 , - 2468 , - 3515 , - 1314 , - 3289 , - 2016 , - 1207 , - 862 , - 981 , - 1564 , - 2611 , - 410 , - 2385 , - 1112 , - 303 , - 3670 , - 77 , - 660 , - 1707 , - 3218 , - 1481 , - 208 , - 3111 , - 2766 , - 2885 , - 3468 , - 803 , - 2314 , - 577 , - 3016 , - 2207 , - 1862 , - 1981 , - 2564 , - 3611 , - 1410 , - 3385 , - 2112 , - 1303 , - 958 , - 1077 , - 1660 , - 2707 , - 506 , - 2481 , - 1208 , - 399 , - 54 , - 173 , - 756 , - 1803 , - 3314 , - 1577 , - 304 , - 3207 , - 2862 , - 2981 , - 3564 , - 899 , - 2410 , - 673 , - 3112 , - 2303 , - 1958 , - 2077 , - 2660 , - 3707 , - 1506 , - 3481 , - 2208 , - 1399 , - 1054 , - 1173 , - 1756 , - 2803 , - 602 , - 2577 , - 1304 , - 495 , - 150 , - 269 , - 852 , - 1899 , - 3410 , - 1673 , - 400 , - 3303 , - 2958 , - 3077 , - 3660 , - 995 , - 2506 , - 769 , - 3208 , - 2399 , - 2054 , - 2173 , - 2756 , - 91 , - 1602 , - 3577 , - 2304 , - 1495 , - 1150 , - 1269 , - 1852 , - 2899 , - 698 , - 2673 , - 1400 , - 591 , - 246 , - 365 , - 948 , - 1995 , - 3506 , - 1769 , - 496 , - 3399 , - 3054 , - 3173 , - 44 , - 1091 , - 2602 , - 865 , - 3304 , - 2495 , - 2150 , - 2269 , - 2852 , - 187 , - 1698 , - 3673 , - 2400 , - 1591 , - 1246 , - 1365 , - 1948 , - 2995 , - 794 , - 2769 , - 1496 , - 687 , - 342 , - 461 , - 1044 , - 2091 , - 3602 , - 1865 , - 592 , - 3495 , - 3150 , - 3269 , - 140 , - 1187 , - 2698 , - 961 , - 3400 , - 2591 , - 2246 , - 2365 , - 2948 , - 283 , - 1794 , - 57 , - 2496 , - 1687 , - 1342 , - 1461 , - 2044 , - 3091 , - 890 , - 2865 , - 1592 , - 783 , - 438 , - 557 , - 1140 , - 2187 , - 3698 , - 1961 , - 688 , - 3591 , - 3246 , - 3365 , - 236 , - 1283 , - 2794 , - 1057 , - 3496 , - 2687 , - 2342 , - 2461 , - 3044 , - 379 , - 1890 , - 153 , - 2592 , - 1783 , - 1438 , - 1557 , - 2140 , - 3187 , - 986 , - 2961 , - 1688 , - 879 , - 534 , - 653 , - 1236 , - 2283 , - 82 , - 2057 , - 784 , - 3687 , - 3342 , - 3461 , - 332 , - 1379 , - 2890 , - 1153 , - 3592 , - 2783 , - 2438 , - 2557 , - 3140 , - 475 , - 1986 , - 249 , - 2688 , - 1879 , - 1534 , - 1653 , - 2236 , - 3283 , - 1082 , - 3057 , - 1784 , - 975 , - 630 , - 749 , - 1332 , - 2379 , - 178 , - 2153 , - 880 , - 71 , - 3438 , - 3557 , - 428 , - 1475 , - 2986 , - 1249 , - 3688 , - 2879 , - 2534 , - 2653 , - 3236 , - 571 , - 2082 , - 345 , - 2784 , - 1975 , - 1630 , - 1749 , - 2332 , - 3379 , - 1178 , - 3153 , - 1880 , - 1071 , - 726 , - 845 , - 1428 , - 2475 , - 274 , - 2249 , - 976 , - 167 , - 3534 , - 3653 , - 524 , - 1571 , - 3082 , - 1345 , - 72 , - 2975 , - 2630 , - 2749 , - 3332 , - 667 , - 2178 , - 441 , - 2880 , - 2071 , - 1726 , - 1845 , - 2428 , - 3475 , - 1274 , - 3249 , - 1976 , - 1167 , - 822 , - 941 , - 1524 , - 2571 , - 370 , - 2345 , - 1072 , - 263 , - 3630 , - 37 , - 620 , - 1667 , - 3178 , - 1441 , - 168 , - 3071 , - 2726 , - 2845 , - 3428 , - 763 , - 2274 , - 537 , - 2976 , - 2167 , - 1822 , - 1941 , - 2524 , - 3571 , - 1370 , - 3345 , - 2072 , - 1263 , - 918 , - 1037 , - 1620 , - 2667 , - 466 , - 2441 , - 1168 , - 359 , - 14 , - 133 , - 716 , - 1763 , - 3274 , - 1537 , - 264 , - 3167 , - 2822 , - 2941 , - 3524 , - 859 , - 2370 , - 633 , - 3072 , - 2263 , - 1918 , - 2037 , - 2620 , - 3667 , - 1466 , - 3441 , - 2168 , - 1359 , - 1014 , - 1133 , - 1716 , - 2763 , - 562 , - 2537 , - 1264 , - 455 , - 110 , - 229 , - 812 , - 1859 , - 3370 , - 1633 , - 360 , - 3263 , - 2918 , - 3037 , - 3620 , - 955 , - 2466 , - 729 , - 3168 , - 2359 , - 2014 , - 2133 , - 2716 , - 51 , - 1562 , - 3537 , - 2264 , - 1455 , - 1110 , - 1229 , - 1812 , - 2859 , - 658 , - 2633 , - 1360 , - 551 , - 206 , - 325 , - 908 , - 1955 , - 3466 , - 1729 , - 456 , - 3359 , - 3014 , - 3133 , - 4 , - 1051 , - 2562 , - 825 , - 3264 , - 2455 , - 2110 , - 2229 , - 2812 , - 147 , - 1658 , - 3633 , - 2360 , - 1551 , - 1206 , - 1325 , - 1908 , - 2955 , - 754 , - 2729 , - 1456 , - 647 , - 302 , - 421 , - 1004 , - 2051 , - 3562 , - 1825 , - 552 , - 3455 , - 3110 , - 3229 , - 100 , - 1147 , - 2658 , - 921 , - 3360 , - 2551 , - 2206 , - 2325 , - 2908 , - 243 , - 1754 , - 17 , - 2456 , - 1647 , - 1302 , - 1421 , - 2004 , - 3051 , - 850 , - 2825 , - 1552 , - 743 , - 398 , - 517 , - 1100 , - 2147 , - 3658 , - 1921 , - 648 , - 3551 , - 3206 , - 3325 , - 196 , - 1243 , - 2754 , - 1017 , - 3456 , - 2647 , - 2302 , - 2421 , - 3004 , - 339 , - 1850 , - 113 , - 2552 , - 1743 , - 1398 , - 1517 , - 2100 , - 3147 , - 946 , - 2921 , - 1648 , - 839 , - 494 , - 613 , - 1196 , - 2243 , - 42 , - 2017 , - 744 , - 3647 , - 3302 , - 3421 , - 292 , - 1339 , - 2850 , - 1113 , - 3552 , - 2743 , - 2398 , - 2517 , - 3100 , - 435 , - 1946 , - 209 , - 2648 , - 1839 , - 1494 , - 1613 , - 2196 , - 3243 , - 1042 , - 3017 , - 1744 , - 935 , - 590 , - 709 , - 1292 , - 2339 , - 138 , - 2113 , - 840 , - 31 , - 3398 , - 3517 , - 388 , - 1435 , - 2946 , - 1209 , - 3648 , - 2839 , - 2494 , - 2613 , - 3196 , - 531 , - 2042 , - 305 , - 2744 , - 1935 , - 1590 , - 1709 , - 2292 , - 3339 , - 1138 , - 3113 , - 1840 , - 1031 , - 686 , - 805 , - 1388 , - 2435 , - 234 , - 2209 , - 936 , - 127 , - 3494 , - 3613 , - 484 , - 1531 , - 3042 , - 1305 , - 32 , - 2935 , - 2590 , - 2709 , - 3292 , - 627 , - 2138 , - 401 , - 2840 , - 2031 , - 1686 , - 1805 , - 2388 , - 3435 , - 1234 , - 3209 , - 1936 , - 1127 , - 782 , - 901 , - 1484 , - 2531 , - 330 , - 2305 , - 1032 , - 223 , - 3590 , - 3709 , - 580 , - 1627 , - 3138 , - 1401 , - 128 , - 3031 , - 2686 , - 2805 , - 3388 , - 723 , - 2234 , - 497 , - 2936 , - 2127 , - 1782 , - 1901 , - 2484 , - 3531 , - 1330 , - 3305 , - 2032 , - 1223 , - 878 , - 997 , - 1580 , - 2627 , - 426 , - 2401 , - 1128 , - 319 , - 3686 , - 93 , - 676 , - 1723 , - 3234 , - 1497 , - 224 , - 3127 , - 2782 , - 2901 , - 3484 , - 819 , - 2330 , - 593 , - 3032 , - 2223 , - 1878 , - 1997 , - 2580 , - 3627 , - 1426 , - 3401 , - 2128 , - 1319 , - 974 , - 1093 , - 1676 , - 2723 , - 522 , - 2497 , - 1224 , - 415 , - 70 , - 189 , - 772 , - 1819 , - 3330 , - 1593 , - 320 , - 3223 , - 2878 , - 2997 , - 3580 , - 915 , - 2426 , - 689 , - 3128 , - 2319 , - 1974 , - 2093 , - 2676 , - 11 , - 1522 , - 3497 , - 2224 , - 1415 , - 1070 , - 1189 , - 1772 , - 2819 , - 618 , - 2593 , - 1320 , - 511 , - 166 , - 285 , - 868 , - 1915 , - 3426 , - 1689 , - 416 , - 3319 , - 2974 , - 3093 , - 3676 , - 1011 , - 2522 , - 785 , - 3224 , - 2415 , - 2070 , - 2189 , - 2772 , - 107 , - 1618 , - 3593 , - 2320 , - 1511 , - 1166 , - 1285 , - 1868 , - 2915 , - 714 , - 2689 , - 1416 , - 607 , - 262 , - 381 , - 964 , - 2011 , - 3522 , - 1785 , - 512 , - 3415 , - 3070 , - 3189 , - 60 , - 1107 , - 2618 , - 881 , - 3320 , - 2511 , - 2166 , - 2285 , - 2868 , - 203 , - 1714 , - 3689 , - 2416 , - 1607 , - 1262 , - 1381 , - 1964 , - 3011 , - 810 , - 2785 , - 1512 , - 703 , - 358 , - 477 , - 1060 , - 2107 , - 3618 , - 1881 , - 608 , - 3511 , - 3166 , - 3285 , - 156 , - 1203 , - 2714 , - 977 , - 3416 , - 2607 , - 2262 , - 2381 , - 2964 , - 299 , - 1810 , - 73 , - 2512 , - 1703 , - 1358 , - 1477 , - 2060 , - 3107 , - 906 , - 2881 , - 1608 , - 799 , - 454 , - 573 , - 1156 , - 2203 , - 2 , - 1977 , - 704 , - 3607 , - 3262 , - 3381 , - 252 , - 1299 , - 2810 , - 1073 , - 3512 , - 2703 , - 2358 , - 2477 , - 3060 , - 395 , - 1906 , - 169 , - 2608 , - 1799 , - 1454 , - 1573 , - 2156 , - 3203 , - 1002 , - 2977 , - 1704 , - 895 , - 550 , - 669 , - 1252 , - 2299 , - 98 , - 2073 , - 800 , - 3703 , - 3358 , - 3477 , - 348 , - 1395 , - 2906 , - 1169 , - 3608 , - 2799 , - 2454 , - 2573 , - 3156 , - 491 , - 2002 , - 265 , - 2704 , - 1895 , - 1550 , - 1669 , - 2252 , - 3299 , - 1098 , - 3073 , - 1800 , - 991 , - 646 , - 765 , - 1348 , - 2395 , - 194 , - 2169 , - 896 , - 87 , - 3454 , - 3573 , - 444 , - 1491 , - 3002 , - 1265 , - 3704 , - 2895 , - 2550 , - 2669 , - 3252 , - 587 , - 2098 , - 361 , - 2800 , - 1991 , - 1646 , - 1765 , - 2348 , - 3395 , - 1194 , - 3169 , - 1896 , - 1087 , - 742 , - 861 , - 1444 , - 2491 , - 290 , - 2265 , - 992 , - 183 , - 3550 , - 3669 , - 540 , - 1587 , - 3098 , - 1361 , - 88 , - 2991 , - 2646 , - 2765 , - 3348 , - 683 , - 2194 , - 457 , - 2896 , - 2087 , - 1742 , - 1861 , - 2444 , - 3491 , - 1290 , - 3265 , - 1992 , - 1183 , - 838 , - 957 , - 1540 , - 2587 , - 386 , - 2361 , - 1088 , - 279 , - 3646 , - 53 , - 636 , - 1683 , - 3194 , - 1457 , - 184 , - 3087 , - 2742 , - 2861 , - 3444 , - 779 , - 2290 , - 553 , - 2992 , - 2183 , - 1838 , - 1957 , - 2540 , - 3587 , - 1386 , - 3361 , - 2088 , - 1279 , - 934 , - 1053 , - 1636 , - 2683 , - 482 , - 2457 , - 1184 , - 375 , - 30 , - 149 , - 732 , - 1779 , - 3290 , - 1553 , - 280 , - 3183 , - 2838 , - 2957 , - 3540 , - 875 , - 2386 , - 649 , - 3088 , - 2279 , - 1934 , - 2053 , - 2636 , - 3683 , - 1482 , - 3457 , - 2184 , - 1375 , - 1030 , - 1149 , - 1732 , - 2779 , - 578 , - 2553 , - 1280 , - 471 , - 126 , - 245 , - 828 , - 1875 , - 3386 , - 1649 , - 376 , - 3279 , - 2934 , - 3053 , - 3636 , - 971 , - 2482 , - 745 , - 3184 , - 2375 , - 2030 , - 2149 , - 2732 , - 67 , - 1578 , - 3553 , - 2280 , - 1471 , - 1126 , - 1245 , - 1828 , - 2875 , - 674 , - 2649 , - 1376 , - 567 , - 222 , - 341 , - 924 , - 1971 , - 3482 , - 1745 , - 472 , - 3375 , - 3030 , - 3149 , - 20 , - 1067 , - 2578 , - 841 , - 3280 , - 2471 , - 2126 , - 2245 , - 2828 , - 163 , - 1674 , - 3649 , - 2376 , - 1567 , - 1222 , - 1341 , - 1924 , - 2971 , - 770 , - 2745 , - 1472 , - 663 , - 318 , - 437 , - 1020 , - 2067 , - 3578 , - 1841 , - 568 , - 3471 , - 3126 , - 3245 , - 116 , - 1163 , - 2674 , - 937 , - 3376 , - 2567 , - 2222 , - 2341 , - 2924 , - 259 , - 1770 , - 33 , - 2472 , - 1663 , - 1318 , - 1437 , - 2020 , - 3067 , - 866 , - 2841 , - 1568 , - 759 , - 414 , - 533 , - 1116 , - 2163 , - 3674 , - 1937 , - 664 , - 3567 , - 3222 , - 3341 , - 212 , - 1259 , - 2770 , - 1033 , - 3472 , - 2663 , - 2318 , - 2437 , - 3020 , - 355 , - 1866 , - 129 , - 2568 , - 1759 , - 1414 , - 1533 , - 2116 , - 3163 , - 962 , - 2937 , - 1664 , - 855 , - 510 , - 629 , - 1212 , - 2259 , - 58 , - 2033 , - 760 , - 3663 , - 3318 , - 3437 , - 308 , - 1355 , - 2866 , - 1129 , - 3568 , - 2759 , - 2414 , - 2533 , - 3116 , - 451 , - 1962 , - 225 , - 2664 , - 1855 , - 1510 , - 1629 , - 2212 , - 3259 , - 1058 , - 3033 , - 1760 , - 951 , - 606 , - 725 , - 1308 , - 2355 , - 154 , - 2129 , - 856 , - 47 , - 3414 , - 3533 , - 404 , - 1451 , - 2962 , - 1225 , - 3664 , - 2855 , - 2510 , - 2629 , - 3212 , - 547 , - 2058 , - 321 , - 2760 , - 1951 , - 1606 , - 1725 , - 2308 , - 3355 , - 1154 , - 3129 , - 1856 , - 1047 , - 702 , - 821 , - 1404 , - 2451 , - 250 , - 2225 , - 952 , - 143 , - 3510 , - 3629 , - 500 , - 1547 , - 3058 , - 1321 , - 48 , - 2951 , - 2606 , - 2725 , - 3308 , - 643 , - 2154 , - 417 , - 2856 , - 2047 , - 1702 , - 1821 , - 2404 , - 3451 , - 1250 , - 3225 , - 1952 , - 1143 , - 798 , - 917 , - 1500 , - 2547 , - 346 , - 2321 , - 1048 , - 239 , - 3606 , - 13 , - 596 , - 1643 , - 3154 , - 1417 , - 144 , - 3047 , - 2702 , - 2821 , - 3404 , - 739 , - 2250 , - 513 , - 2952 , - 2143 , - 1798 , - 1917 , - 2500 , - 3547 , - 1346 , - 3321 , - 2048 , - 1239 , - 894 , - 1013 , - 1596 , - 2643 , - 442 , - 2417 , - 1144 , - 335 , - 3702 , - 109 , - 692 , - 1739 , - 3250 , - 1513 , - 240 , - 3143 , - 2798 , - 2917 , - 3500 , - 835 , - 2346 , - 609 , - 3048 , - 2239 , - 1894 , - 2013 , - 2596 , - 3643 , - 1442 , - 3417 , - 2144 , - 1335 , - 990 , - 1109 , - 1692 , - 2739 , - 538 , - 2513 , - 1240 , - 431 , - 86 , - 205 , - 788 , - 1835 , - 3346 , - 1609 , - 336 , - 3239 , - 2894 , - 3013 , - 3596 , - 931 , - 2442 , - 705 , - 3144 , - 2335 , - 1990 , - 2109 , - 2692 , - 27 , - 1538 , - 3513 , - 2240 , - 1431 , - 1086 , - 1205 , - 1788 , - 2835 , - 634 , - 2609 , - 1336 , - 527 , - 182 , - 301 , - 884 , - 1931 , - 3442 , - 1705 , - 432 , - 3335 , - 2990 , - 3109 , - 3692 , - 1027 , - 2538 , - 801 , - 3240 , - 2431 , - 2086 , - 2205 , - 2788 , - 123 , - 1634 , - 3609 , - 2336 , - 1527 , - 1182 , - 1301 , - 1884 , - 2931 , - 730 , - 2705 , - 1432 , - 623 , - 278 , - 397 , - 980 , - 2027 , - 3538 , - 1801 , - 528 , - 3431 , - 3086 , - 3205 , - 76 , - 1123 , - 2634 , - 897 , - 3336 , - 2527 , - 2182 , - 2301 , - 2884 , - 219 , - 1730 , - 3705 , - 2432 , - 1623 , - 1278 , - 1397 , - 1980 , - 3027 , - 826 , - 2801 , - 1528 , - 719 , - 374 , - 493 , - 1076 , - 2123 , - 3634 , - 1897 , - 624 , - 3527 , - 3182 , - 3301 , - 172 , - 1219 , - 2730 , - 993 , - 3432 , - 2623 , - 2278 , - 2397 , - 2980 , - 315 , - 1826 , - 89 , - 2528 , - 1719 , - 1374 , - 1493 , - 2076 , - 3123 , - 922 , - 2897 , - 1624 , - 815 , - 470 , - 589 , - 1172 , - 2219 , - 18 , - 1993 , - 720 , - 3623 , - 3278 , - 3397 , - 268 , - 1315 , - 2826 , - 1089 , - 3528 , - 2719 , - 2374 , - 2493 , - 3076 , - 411 , - 1922 , - 185 , - 2624 , - 1815 , - 1470 , - 1589 , - 2172 , - 3219 , - 1018 , - 2993 , - 1720 , - 911 , - 566 , - 685 , - 1268 , - 2315 , - 114 , - 2089 , - 816 , - 7 , - 3374 , - 3493 , - 364 , - 1411 , - 2922 , - 1185 , - 3624 , - 2815 , - 2470 , - 2589 , - 3172 , - 507 , - 2018 , - 281 , - 2720 , - 1911 , - 1566 , - 1685 , - 2268 , - 3315 , - 1114 , - 3089 , - 1816 , - 1007 , - 662 , - 781 , - 1364 , - 2411 , - 210 , - 2185 , - 912 , - 103 , - 3470 , - 3589 , - 460 , - 1507 , - 3018 , - 1281 , - 8 , - 2911 , - 2566 , - 2685 , - 3268 , - 603 , - 2114 , - 377 , - 2816 , - 2007 , - 1662 , - 1781 , - 2364 , - 3411 , - 1210 , - 3185 , - 1912 , - 1103 , - 758 , - 877 , - 1460 , - 2507 , - 306 , - 2281 , - 1008 , - 199 , - 3566 , - 3685 , - 556 , - 1603 , - 3114 , - 1377 , - 104 , - 3007 , - 2662 , - 2781 , - 3364 , - 699 , - 2210 , - 473 , - 2912 , - 2103 , - 1758 , - 1877 , - 2460 , - 3507 , - 1306 , - 3281 , - 2008 , - 1199 , - 854 , - 973 , - 1556 , - 2603 , - 402 , - 2377 , - 1104 , - 295 , - 3662 , - 69 , - 652 , - 1699 , - 3210 , - 1473 , - 200 , - 3103 , - 2758 , - 2877 , - 3460 , - 795 , - 2306 , - 569 , - 3008 , - 2199 , - 1854 , - 1973 , - 2556 , - 3603 , - 1402 , - 3377 , - 2104 , - 1295 , - 950 , - 1069 , - 1652 , - 2699 , - 498 , - 2473 , - 1200 , - 391 , - 46 , - 165 , - 748 , - 1795 , - 3306 , - 1569 , - 296 , - 3199 , - 2854 , - 2973 , - 3556 , - 891 , - 2402 , - 665 , - 3104 , - 2295 , - 1950 , - 2069 , - 2652 , - 3699 , - 1498 , - 3473 , - 2200 , - 1391 , - 1046 , - 1165 , - 1748 , - 2795 , - 594 , - 2569 , - 1296 , - 487 , - 142 , - 261 , - 844 , - 1891 , - 3402 , - 1665 , - 392 , - 3295 , - 2950 , - 3069 , - 3652 , - 987 , - 2498 , - 761 , - 3200 , - 2391 , - 2046 , - 2165 , - 2748 , - 83 , - 1594 , - 3569 , - 2296 , - 1487 , - 1142 , - 1261 , - 1844 , - 2891 , - 690 , - 2665 , - 1392 , - 583 , - 238 , - 357 , - 940 , - 1987 , - 3498 , - 1761 , - 488 , - 3391 , - 3046 , - 3165 , - 36 , - 1083 , - 2594 , - 857 , - 3296 , - 2487 , - 2142 , - 2261 , - 2844 , - 179 , - 1690 , - 3665 , - 2392 , - 1583 , - 1238 , - 1357 , - 1940 , - 2987 , - 786 , - 2761 , - 1488 , - 679 , - 334 , - 453 , - 1036 , - 2083 , - 3594 , - 1857 , - 584 , - 3487 , - 3142 , - 3261 , - 132 , - 1179 , - 2690 , - 953 , - 3392 , - 2583 , - 2238 , - 2357 , - 2940 , - 275 , - 1786 , - 49 , - 2488 , - 1679 , - 1334 , - 1453 , - 2036 , - 3083 , - 882 , - 2857 , - 1584 , - 775 , - 430 , - 549 , - 1132 , - 2179 , - 3690 , - 1953 , - 680 , - 3583 , - 3238 , - 3357 , - 228 , - 1275 , - 2786 , - 1049 , - 3488 , - 2679 , - 2334 , - 2453 , - 3036 , - 371 , - 1882 , - 145 , - 2584 , - 1775 , - 1430 , - 1549 , - 2132 , - 3179 , - 978 , - 2953 , - 1680 , - 871 , - 526 , - 645 , - 1228 , - 2275 , - 74 , - 2049 , - 776 , - 3679 , - 3334 , - 3453 , - 324 , - 1371 , - 2882 , - 1145 , - 3584 , - 2775 , - 2430 , - 2549 , - 3132 , - 467 , - 1978 , - 241 , - 2680 , - 1871 , - 1526 , - 1645 , - 2228 , - 3275 , - 1074 , - 3049 , - 1776 , - 967 , - 622 , - 741 , - 1324 , - 2371 , - 170 , - 2145 , - 872 , - 63 , - 3430 , - 3549 , - 420 , - 1467 , - 2978 , - 1241 , - 3680 , - 2871 , - 2526 , - 2645 , - 3228 , - 563 , - 2074 , - 337 , - 2776 , - 1967 , - 1622 , - 1741 , - 2324 , - 3371 , - 1170 , - 3145 , - 1872 , - 1063 , - 718 , - 837 , - 1420 , - 2467 , - 266 , - 2241 , - 968 , - 159 , - 3526 , - 3645 , - 516 , - 1563 , - 3074 , - 1337 , - 64 , - 2967 , - 2622 , - 2741 , - 3324 , - 659 , - 2170 , - 433 , - 2872 , - 2063 , - 1718 , - 1837 , - 2420 , - 3467 , - 1266 , - 3241 , - 1968 , - 1159 , - 814 , - 933 , - 1516 , - 2563 , - 362 , - 2337 , - 1064 , - 255 , - 3622 , - 29 , - 612 , - 1659 , - 3170 , - 1433 , - 160 , - 3063 , - 2718 , - 2837 , - 3420 , - 755 , - 2266 , - 529 , - 2968 , - 2159 , - 1814 , - 1933 , - 2516 , - 3563 , - 1362 , - 3337 , - 2064 , - 1255 , - 910 , - 1029 , - 1612 , - 2659 , - 458 , - 2433 , - 1160 , - 351 , - 6 , - 125 , - 708 , - 1755 , - 3266 , - 1529 , - 256 , - 3159 , - 2814 , - 2933 , - 3516 , - 851 , - 2362 , - 625 , - 3064 , - 2255 , - 1910 , - 2029 , - 2612 , - 3659 , - 1458 , - 3433 , - 2160 , - 1351 , - 1006 , - 1125 , - 1708 , - 2755 , - 554 , - 2529 , - 1256 , - 447 , - 102 , - 221 , - 804 , - 1851 , - 3362 , - 1625 , - 352 , - 3255 , - 2910 , - 3029 , - 3612 , - 947 , - 2458 , - 721 , - 3160 , - 2351 , - 2006 , - 2125 , - 2708 , - 43 , - 1554 , - 3529 , - 2256 , - 1447 , - 1102 , - 1221 , - 1804 , - 2851 , - 650 , - 2625 , - 1352 , - 543 , - 198 , - 317 , - 900 , - 1947 , - 3458 , - 1721 , - 448 , - 3351 , - 3006 , - 3125 , - 3708 , - 1043 , - 2554 , - 817 , - 3256 , - 2447 , - 2102 , - 2221 , - 2804 , - 139 , - 1650 , - 3625 , - 2352 , - 1543 , - 1198 , - 1317 , - 1900 , - 2947 , - 746 , - 2721 , - 1448 , - 639 , - 294 , - 413 , - 996 , - 2043 , - 3554 , - 1817 , - 544 , - 3447 , - 3102 , - 3221 , - 92 , - 1139 , - 2650 , - 913 , - 3352 , - 2543 , - 2198 , - 2317 , - 2900 , - 235 , - 1746 , - 9 , - 2448 , - 1639 , - 1294 , - 1413 , - 1996 , - 3043 , - 842 , - 2817 , - 1544 , - 735 , - 390 , - 509 , - 1092 , - 2139 , - 3650 , - 1913 , - 640 , - 3543 , - 3198 , - 3317 , - 188 , - 1235 , - 2746 , - 1009 , - 3448 , - 2639 , - 2294 , - 2413 , - 2996 , - 331 , - 1842 , - 105 , - 2544 , - 1735 , - 1390 , - 1509 , - 2092 , - 3139 , - 938 , - 2913 , - 1640 , - 831 , - 486 , - 605 , - 1188 , - 2235 , - 34 , - 2009 , - 736 , - 3639 , - 3294 , - 3413 , - 284 , - 1331 , - 2842 , - 1105 , - 3544 , - 2735 , - 2390 , - 2509 , - 3092 , - 427 , - 1938 , - 201 , - 2640 , - 1831 , - 1486 , - 1605 , - 2188 , - 3235 , - 1034 , - 3009 , - 1736 , - 927 , - 582 , - 701 , - 1284 , - 2331 , - 130 , - 2105 , - 832 , - 23 , - 3390 , - 3509 , - 380 , - 1427 , - 2938 , - 1201 , - 3640 , - 2831 , - 2486 , - 2605 , - 3188 , - 523 , - 2034 , - 297 , - 2736 , - 1927 , - 1582 , - 1701 , - 2284 , - 3331 , - 1130 , - 3105 , - 1832 , - 1023 , - 678 , - 797 , - 1380 , - 2427 , - 226 , - 2201 , - 928 , - 119 , - 3486 , - 3605 , - 476 , - 1523 , - 3034 , - 1297 , - 24 , - 2927 , - 2582 , - 2701 , - 3284 , - 619 , - 2130 , - 393 , - 2832 , - 2023 , - 1678 , - 1797 , - 2380 , - 3427 , - 1226 , - 3201 , - 1928 , - 1119 , - 774 , - 893 , - 1476 , - 2523 , - 322 , - 2297 , - 1024 , - 215 , - 3582 , - 3701 , - 572 , - 1619 , - 3130 , - 1393 , - 120 , - 3023 , - 2678 , - 2797 , - 3380 , - 715 , - 2226 , - 489 , - 2928 , - 2119 , - 1774 , - 1893 , - 2476 , - 3523 , - 1322 , - 3297 , - 2024 , - 1215 , - 870 , - 989 , - 1572 , - 2619 , - 418 , - 2393 , - 1120 , - 311 , - 3678 , - 85 , - 668 , - 1715 , - 3226 , - 1489 , - 216 , - 3119 , - 2774 , - 2893 , - 3476 , - 811 , - 2322 , - 585 , - 3024 , - 2215 , - 1870 , - 1989 , - 2572 , - 3619 , - 1418 , - 3393 , - 2120 , - 1311 , - 966 , - 1085 , - 1668 , - 2715 , - 514 , - 2489 , - 1216 , - 407 , - 62 , - 181 , - 764 , - 1811 , - 3322 , - 1585 , - 312 , - 3215 , - 2870 , - 2989 , - 3572 , - 907 , - 2418 , - 681 , - 3120 , - 2311 , - 1966 , - 2085 , - 2668 , - 3 , - 1514 , - 3489 , - 2216 , - 1407 , - 1062 , - 1181 , - 1764 , - 2811 , - 610 , - 2585 , - 1312 , - 503 , - 158 , - 277 , - 860 , - 1907 , - 3418 , - 1681 , - 408 , - 3311 , - 2966 , - 3085 , - 3668 , - 1003 , - 2514 , - 777 , - 3216 , - 2407 , - 2062 , - 2181 , - 2764 , - 99 , - 1610 , - 3585 , - 2312 , - 1503 , - 1158 , - 1277 , - 1860 , - 2907 , - 706 , - 2681 , - 1408 , - 599 , - 254 , - 373 , - 956 , - 2003 , - 3514 , - 1777 , - 504 , - 3407 , - 3062 , - 3181 , - 52 , - 1099 , - 2610 , - 873 , - 3312 , - 2503 , - 2158 , - 2277 , - 2860 , - 195 , - 1706 , - 3681 , - 2408 , - 1599 , - 1254 , - 1373 , - 1956 , - 3003 , - 802 , - 2777 , - 1504 , - 695 , - 350 , - 469 , - 1052 , - 2099 , - 3610 , - 1873 , - 600 , - 3503 , - 3158 , - 3277 , - 148 , - 1195 , - 2706 , - 969 , - 3408 , - 2599 , - 2254 , - 2373 , - 2956 , - 291 , - 1802 , - 65 , - 2504 , - 1695 , - 1350 , - 1469 , - 2052 , - 3099 , - 898 , - 2873 , - 1600 , - 791 , - 446 , - 565 , - 1148 , - 2195 , - 3706 , - 1969 , - 696 , - 3599 , - 3254 , - 3373 , - 244 , - 1291 , - 2802 , - 1065 , - 3504 , - 2695 , - 2350 , - 2469 , - 3052 , - 387 , - 1898 , - 161 , - 2600 , - 1791 , - 1446 , - 1565 , - 2148 , - 3195 , - 994 , - 2969 , - 1696 , - 887 , - 542 , - 661 , - 1244 , - 2291 , - 90 , - 2065 , - 792 , - 3695 , - 3350 , - 3469 , - 340 , - 1387 , - 2898 , - 1161 , - 3600 , - 2791 , - 2446 , - 2565 , - 3148 , - 483 , - 1994 , - 257 , - 2696 , - 1887 , - 1542 , - 1661 , - 2244 , - 3291 , - 1090 , - 3065 , - 1792 , - 983 , - 638 , - 757 , - 1340 , - 2387 , - 186 , - 2161 , - 888 , - 79 , - 3446 , - 3565 , - 436 , - 1483 , - 2994 , - 1257 , - 3696 , - 2887 , - 2542 , - 2661 , - 3244 , - 579 , - 2090 , - 353 , - 2792 , - 1983 , - 1638 , - 1757 , - 2340 , - 3387 , - 1186 , - 3161 , - 1888 , - 1079 , - 734 , - 853 , - 1436 , - 2483 , - 282 , - 2257 , - 984 , - 175 , - 3542 , - 3661 , - 532 , - 1579 , - 3090 , - 1353 , - 80 , - 2983 , - 2638 , - 2757 , - 3340 , - 675 , - 2186 , - 449 , - 2888 , - 2079 , - 1734 , - 1853 , - 2436 , - 3483 , - 1282 , - 3257 , - 1984 , - 1175 , - 830 , - 949 , - 1532 , - 2579 , - 378 , - 2353 , - 1080 , - 271 , - 3638 , - 45 , - 628 , - 1675 , - 3186 , - 1449 , - 176 , - 3079 , - 2734 , - 2853 , - 3436 , - 771 , - 2282 , - 545 , - 2984 , - 2175 , - 1830 , - 1949 , - 2532 , - 3579 , - 1378 , - 3353 , - 2080 , - 1271 , - 926 , - 1045 , - 1628 , - 2675 , - 474 , - 2449 , - 1176 , - 367 , - 22 , - 141 , - 724 , - 1771 , - 3282 , - 1545 , - 272 , - 3175 , - 2830 , - 2949 , - 3532 , - 867 , - 2378 , - 641 , - 3080 , - 2271 , - 1926 , - 2045 , - 2628 , - 3675 , - 1474 , - 3449 , - 2176 , - 1367 , - 1022 , - 1141 , - 1724 , - 2771 , - 570 , - 2545 , - 1272 , - 463 , - 118 , - 237 , - 820 , - 1867 , - 3378 , - 1641 , - 368 , - 3271 , - 2926 , - 3045 , - 3628 , - 963 , - 2474 , - 737 , - 3176 , - 2367 , - 2022 , - 2141 , - 2724 , - 59 , - 1570 , - 3545 , - 2272 , - 1463 , - 1118 , - 1237 , - 1820 , - 2867 , - 666 , - 2641 , - 1368 , - 559 , - 214 , - 333 , - 916 , - 1963 , - 3474 , - 1737 , - 464 , - 3367 , - 3022 , - 3141 , - 12 , - 1059 , - 2570 , - 833 , - 3272 , - 2463 , - 2118 , - 2237 , - 2820 , - 155 , - 1666 , - 3641 , - 2368 , - 1559 , - 1214 , - 1333 , - 1916 , - 2963 , - 762 , - 2737 , - 1464 , - 655 , - 310 , - 429 , - 1012 , - 2059 , - 3570 , - 1833 , - 560 , - 3463 , - 3118 , - 3237 , - 108 , - 1155 , - 2666 , - 929 , - 3368 , - 2559 , - 2214 , - 2333 , - 2916 , - 251 , - 1762 , - 25 , - 2464 , - 1655 , - 1310 , - 1429 , - 2012 , - 3059 , - 858 , - 2833 , - 1560 , - 751 , - 406 , - 525 , - 1108 , - 2155 , - 3666 , - 1929 , - 656 , - 3559 , - 3214 , - 3333 , - 204 , - 1251 , - 2762 , - 1025 , - 3464 , - 2655 , - 2310 , - 2429 , - 3012 , - 347 , - 1858 , - 121 , - 2560 , - 1751 , - 1406 , - 1525 , - 2108 , - 3155 , - 954 , - 2929 , - 1656 , - 847 , - 502 , - 621 , - 1204 , - 2251 , - 50 , - 2025 , - 752 , - 3655 , - 3310 , - 3429 , - 300 , - 1347 , - 2858 , - 1121 , - 3560 , - 2751 , - 2406 , - 2525 , - 3108 , - 443 , - 1954 , - 217 , - 2656 , - 1847 , - 1502 , - 1621 , - 2204 , - 3251 , - 1050 , - 3025 , - 1752 , - 943 , - 598 , - 717 , - 1300 , - 2347 , - 146 , - 2121 , - 848 , - 39 , - 3406 , - 3525 , - 396 , - 1443 , - 2954 , - 1217 , - 3656 , - 2847 , - 2502 , - 2621 , - 3204 , - 539 , - 2050 , - 313 , - 2752 , - 1943 , - 1598 , - 1717 , - 2300 , - 3347 , - 1146 , - 3121 , - 1848 , - 1039 , - 694 , - 813 , - 1396 , - 2443 , - 242 , - 2217 , - 944 , - 135 , - 3502 , - 3621 , - 492 , - 1539 , - 3050 , - 1313 , - 40 , - 2943 , - 2598 , - 2717 , - 3300 , - 635 , - 2146 , - 409 , - 2848 , - 2039 , - 1694 , - 1813 , - 2396 , - 3443 , - 1242 , - 3217 , - 1944 , - 1135 , - 790 , - 909 , - 1492 , - 2539 , - 338 , - 2313 , - 1040 , - 231 , - 3598 , - 5 , - 588 , - 1635 , - 3146 , - 1409 , - 136 , - 3039 , - 2694 , - 2813 , - 3396 , - 731 , - 2242 , - 505 , - 2944 , - 2135 , - 1790 , - 1909 , - 2492 , - 3539 , - 1338 , - 3313 , - 2040 , - 1231 , - 886 , - 1005 , - 1588 , - 2635 , - 434 , - 2409 , - 1136 , - 327 , - 3694 , - 101 , - 684 , - 1731 , - 3242 , - 1505 , - 232 , - 3135 , - 2790 , - 2909 , - 3492 , - 827 , - 2338 , - 601 , - 3040 , - 2231 , - 1886 , - 2005 , - 2588 , - 3635 , - 1434 , - 3409 , - 2136 , - 1327 , - 982 , - 1101 , - 1684 , - 2731 , - 530 , - 2505 , - 1232 , - 423 , - 78 , - 197 , - 780 , - 1827 , - 3338 , - 1601 , - 328 , - 3231 , - 2886 , - 3005 , - 3588 , - 923 , - 2434 , - 697 , - 3136 , - 2327 , - 1982 , - 2101 , - 2684 , - 19 , - 1530 , - 3505 , - 2232 , - 1423 , - 1078 , - 1197 , - 1780 , - 2827 , - 626 , - 2601 , - 1328 , - 519 , - 174 , - 293 , - 876 , - 1923 , - 3434 , - 1697 , - 424 , - 3327 , - 2982 , - 3101 , - 3684 , - 1019 , - 2530 , - 793 , - 3232 , - 2423 , - 2078 , - 2197 , - 2780 , - 115 , - 1626 , - 3601 , - 2328 , - 1519 , - 1174 , - 1293 , - 1876 , - 2923 , - 722 , - 2697 , - 1424 , - 615 , - 270 , - 389 , - 972 , - 2019 , - 3530 , - 1793 , - 520 , - 3423 , - 3078 , - 3197 , - 68 , - 1115 , - 2626 , - 889 , - 3328 , - 2519 , - 2174 , - 2293 , - 2876 , - 211 , - 1722 , - 3697 , - 2424 , - 1615 , - 1270 , - 1389 , - 1972 , - 3019 , - 818 , - 2793 , - 1520 , - 711 , - 366 , - 485 , - 1068 , - 2115 , - 3626 , - 1889 , - 616 , - 3519 , - 3174 , - 3293 , - 164 , - 1211 , - 2722 , - 985 , - 3424 , - 2615 , - 2270 , - 2389 , - 2972 , - 307 , - 1818 , - 81 , - 2520 , - 1711 , - 1366 , - 1485 , - 2068 , - 3115 , - 914 , - 2889 , - 1616 , - 807 , - 462 , - 581 , - 1164 , - 2211 , - 10 , - 1985 , - 712 , - 3615 , - 3270 , - 3389 , - 260 , - 1307 , - 2818 , - 1081 , - 3520 , - 2711 , - 2366 , - 2485 , - 3068 , - 403 , - 1914 , - 177 , - 2616 , - 1807 , - 1462 , - 1581 , - 2164 , - 3211 , - 1010 , - 2985 , - 1712 , - 903 , - 558 , - 677 , - 1260 , - 2307 , - 106 , - 2081 , - 808 , - 3711 , - 3366 , - 3485 , - 356 , - 1403 , - 2914 , - 1177 , - 3616 , - 2807 , - 2462 , - 2581 , - 3164 , - 499 , - 2010 , - 273 , - 2712 , - 1903 , - 1558 , - 1677 , - 2260 , - 3307 , - 1106 , - 3081 , - 1808 , - 999 , - 654 , - 773 , - 1356 , - 2403 , - 202 , - 2177 , - 904 , - 95 , - 3462 , - 3581 , - 452 , - 1499 , - 3010 , - 1273 , - 0 , - 1623 , - 1830 , - 621 , - 1772 , - 1507 , - 3602 , - 505 , - 3544 , - 1391 , - 1598 , - 389 , - 1540 , - 1275 , - 3370 , - 273 , - 3312 , - 1159 , - 1366 , - 157 , - 1308 , - 1043 , - 3138 , - 41 , - 3080 , - 927 , - 1134 , - 3701 , - 1076 , - 811 , - 2906 , - 3585 , - 2848 , - 695 , - 902 , - 3469 , - 844 , - 579 , - 2674 , - 3353 , - 2616 , - 463 , - 670 , - 3237 , - 612 , - 347 , - 2442 , - 3121 , - 2384 , - 231 , - 438 , - 3005 , - 380 , - 115 , - 2210 , - 2889 , - 2152 , - 3775 , - 206 , - 2773 , - 148 , - 3659 , - 1978 , - 2657 , - 1920 , - 3543 , - 3750 , - 2541 , - 3692 , - 3427 , - 1746 , - 2425 , - 1688 , - 3311 , - 3518 , - 2309 , - 3460 , - 3195 , - 1514 , - 2193 , - 1456 , - 3079 , - 3286 , - 2077 , - 3228 , - 2963 , - 1282 , - 1961 , - 1224 , - 2847 , - 3054 , - 1845 , - 2996 , - 2731 , - 1050 , - 1729 , - 992 , - 2615 , - 2822 , - 1613 , - 2764 , - 2499 , - 818 , - 1497 , - 760 , - 2383 , - 2590 , - 1381 , - 2532 , - 2267 , - 586 , - 1265 , - 528 , - 2151 , - 2358 , - 1149 , - 2300 , - 2035 , - 354 , - 1033 , - 296 , - 1919 , - 2126 , - 917 , - 2068 , - 1803 , - 122 , - 801 , - 64 , - 1687 , - 1894 , - 685 , - 1836 , - 1571 , - 3666 , - 569 , - 3608 , - 1455 , - 1662 , - 453 , - 1604 , - 1339 , - 3434 , - 337 , - 3376 , - 1223 , - 1430 , - 221 , - 1372 , - 1107 , - 3202 , - 105 , - 3144 , - 991 , - 1198 , - 3765 , - 1140 , - 875 , - 2970 , - 3649 , - 2912 , - 759 , - 966 , - 3533 , - 908 , - 643 , - 2738 , - 3417 , - 2680 , - 527 , - 734 , - 3301 , - 676 , - 411 , - 2506 , - 3185 , - 2448 , - 295 , - 502 , - 3069 , - 444 , - 179 , - 2274 , - 2953 , - 2216 , - 63 , - 270 , - 2837 , - 212 , - 3723 , - 2042 , - 2721 , - 1984 , - 3607 , - 38 , - 2605 , - 3756 , - 3491 , - 1810 , - 2489 , - 1752 , - 3375 , - 3582 , - 2373 , - 3524 , - 3259 , - 1578 , - 2257 , - 1520 , - 3143 , - 3350 , - 2141 , - 3292 , - 3027 , - 1346 , - 2025 , - 1288 , - 2911 , - 3118 , - 1909 , - 3060 , - 2795 , - 1114 , - 1793 , - 1056 , - 2679 , - 2886 , - 1677 , - 2828 , - 2563 , - 882 , - 1561 , - 824 , - 2447 , - 2654 , - 1445 , - 2596 , - 2331 , - 650 , - 1329 , - 592 , - 2215 , - 2422 , - 1213 , - 2364 , - 2099 , - 418 , - 1097 , - 360 , - 1983 , - 2190 , - 981 , - 2132 , - 1867 , - 186 , - 865 , - 128 , - 1751 , - 1958 , - 749 , - 1900 , - 1635 , - 3730 , - 633 , - 3672 , - 1519 , - 1726 , - 517 , - 1668 , - 1403 , - 3498 , - 401 , - 3440 , - 1287 , - 1494 , - 285 , - 1436 , - 1171 , - 3266 , - 169 , - 3208 , - 1055 , - 1262 , - 53 , - 1204 , - 939 , - 3034 , - 3713 , - 2976 , - 823 , - 1030 , - 3597 , - 972 , - 707 , - 2802 , - 3481 , - 2744 , - 591 , - 798 , - 3365 , - 740 , - 475 , - 2570 , - 3249 , - 2512 , - 359 , - 566 , - 3133 , - 508 , - 243 , - 2338 , - 3017 , - 2280 , - 127 , - 334 , - 2901 , - 276 , - 11 , - 2106 , - 2785 , - 2048 , - 3671 , - 102 , - 2669 , - 44 , - 3555 , - 1874 , - 2553 , - 1816 , - 3439 , - 3646 , - 2437 , - 3588 , - 3323 , - 1642 , - 2321 , - 1584 , - 3207 , - 3414 , - 2205 , - 3356 , - 3091 , - 1410 , - 2089 , - 1352 , - 2975 , - 3182 , - 1973 , - 3124 , - 2859 , - 1178 , - 1857 , - 1120 , - 2743 , - 2950 , - 1741 , - 2892 , - 2627 , - 946 , - 1625 , - 888 , - 2511 , - 2718 , - 1509 , - 2660 , - 2395 , - 714 , - 1393 , - 656 , - 2279 , - 2486 , - 1277 , - 2428 , - 2163 , - 482 , - 1161 , - 424 , - 2047 , - 2254 , - 1045 , - 2196 , - 1931 , - 250 , - 929 , - 192 , - 1815 , - 2022 , - 813 , - 1964 , - 1699 , - 18 , - 697 , - 3736 , - 1583 , - 1790 , - 581 , - 1732 , - 1467 , - 3562 , - 465 , - 3504 , - 1351 , - 1558 , - 349 , - 1500 , - 1235 , - 3330 , - 233 , - 3272 , - 1119 , - 1326 , - 117 , - 1268 , - 1003 , - 3098 , - 1 , - 3040 , - 887 , - 1094 , - 3661 , - 1036 , - 771 , - 2866 , - 3545 , - 2808 , - 655 , - 862 , - 3429 , - 804 , - 539 , - 2634 , - 3313 , - 2576 , - 423 , - 630 , - 3197 , - 572 , - 307 , - 2402 , - 3081 , - 2344 , - 191 , - 398 , - 2965 , - 340 , - 75 , - 2170 , - 2849 , - 2112 , - 3735 , - 166 , - 2733 , - 108 , - 3619 , - 1938 , - 2617 , - 1880 , - 3503 , - 3710 , - 2501 , - 3652 , - 3387 , - 1706 , - 2385 , - 1648 , - 3271 , - 3478 , - 2269 , - 3420 , - 3155 , - 1474 , - 2153 , - 1416 , - 3039 , - 3246 , - 2037 , - 3188 , - 2923 , - 1242 , - 1921 , - 1184 , - 2807 , - 3014 , - 1805 , - 2956 , - 2691 , - 1010 , - 1689 , - 952 , - 2575 , - 2782 , - 1573 , - 2724 , - 2459 , - 778 , - 1457 , - 720 , - 2343 , - 2550 , - 1341 , - 2492 , - 2227 , - 546 , - 1225 , - 488 , - 2111 , - 2318 , - 1109 , - 2260 , - 1995 , - 314 , - 993 , - 256 , - 1879 , - 2086 , - 877 , - 2028 , - 1763 , - 82 , - 761 , - 24 , - 1647 , - 1854 , - 645 , - 1796 , - 1531 , - 3626 , - 529 , - 3568 , - 1415 , - 1622 , - 413 , - 1564 , - 1299 , - 3394 , - 297 , - 3336 , - 1183 , - 1390 , - 181 , - 1332 , - 1067 , - 3162 , - 65 , - 3104 , - 951 , - 1158 , - 3725 , - 1100 , - 835 , - 2930 , - 3609 , - 2872 , - 719 , - 926 , - 3493 , - 868 , - 603 , - 2698 , - 3377 , - 2640 , - 487 , - 694 , - 3261 , - 636 , - 371 , - 2466 , - 3145 , - 2408 , - 255 , - 462 , - 3029 , - 404 , - 139 , - 2234 , - 2913 , - 2176 , - 23 , - 230 , - 2797 , - 172 , - 3683 , - 2002 , - 2681 , - 1944 , - 3567 , - 3774 , - 2565 , - 3716 , - 3451 , - 1770 , - 2449 , - 1712 , - 3335 , - 3542 , - 2333 , - 3484 , - 3219 , - 1538 , - 2217 , - 1480 , - 3103 , - 3310 , - 2101 , - 3252 , - 2987 , - 1306 , - 1985 , - 1248 , - 2871 , - 3078 , - 1869 , - 3020 , - 2755 , - 1074 , - 1753 , - 1016 , - 2639 , - 2846 , - 1637 , - 2788 , - 2523 , - 842 , - 1521 , - 784 , - 2407 , - 2614 , - 1405 , - 2556 , - 2291 , - 610 , - 1289 , - 552 , - 2175 , - 2382 , - 1173 , - 2324 , - 2059 , - 378 , - 1057 , - 320 , - 1943 , - 2150 , - 941 , - 2092 , - 1827 , - 146 , - 825 , - 88 , - 1711 , - 1918 , - 709 , - 1860 , - 1595 , - 3690 , - 593 , - 3632 , - 1479 , - 1686 , - 477 , - 1628 , - 1363 , - 3458 , - 361 , - 3400 , - 1247 , - 1454 , - 245 , - 1396 , - 1131 , - 3226 , - 129 , - 3168 , - 1015 , - 1222 , - 13 , - 1164 , - 899 , - 2994 , - 3673 , - 2936 , - 783 , - 990 , - 3557 , - 932 , - 667 , - 2762 , - 3441 , - 2704 , - 551 , - 758 , - 3325 , - 700 , - 435 , - 2530 , - 3209 , - 2472 , - 319 , - 526 , - 3093 , - 468 , - 203 , - 2298 , - 2977 , - 2240 , - 87 , - 294 , - 2861 , - 236 , - 3747 , - 2066 , - 2745 , - 2008 , - 3631 , - 62 , - 2629 , - 4 , - 3515 , - 1834 , - 2513 , - 1776 , - 3399 , - 3606 , - 2397 , - 3548 , - 3283 , - 1602 , - 2281 , - 1544 , - 3167 , - 3374 , - 2165 , - 3316 , - 3051 , - 1370 , - 2049 , - 1312 , - 2935 , - 3142 , - 1933 , - 3084 , - 2819 , - 1138 , - 1817 , - 1080 , - 2703 , - 2910 , - 1701 , - 2852 , - 2587 , - 906 , - 1585 , - 848 , - 2471 , - 2678 , - 1469 , - 2620 , - 2355 , - 674 , - 1353 , - 616 , - 2239 , - 2446 , - 1237 , - 2388 , - 2123 , - 442 , - 1121 , - 384 , - 2007 , - 2214 , - 1005 , - 2156 , - 1891 , - 210 , - 889 , - 152 , - 1775 , - 1982 , - 773 , - 1924 , - 1659 , - 3754 , - 657 , - 3696 , - 1543 , - 1750 , - 541 , - 1692 , - 1427 , - 3522 , - 425 , - 3464 , - 1311 , - 1518 , - 309 , - 1460 , - 1195 , - 3290 , - 193 , - 3232 , - 1079 , - 1286 , - 77 , - 1228 , - 963 , - 3058 , - 3737 , - 3000 , - 847 , - 1054 , - 3621 , - 996 , - 731 , - 2826 , - 3505 , - 2768 , - 615 , - 822 , - 3389 , - 764 , - 499 , - 2594 , - 3273 , - 2536 , - 383 , - 590 , - 3157 , - 532 , - 267 , - 2362 , - 3041 , - 2304 , - 151 , - 358 , - 2925 , - 300 , - 35 , - 2130 , - 2809 , - 2072 , - 3695 , - 126 , - 2693 , - 68 , - 3579 , - 1898 , - 2577 , - 1840 , - 3463 , - 3670 , - 2461 , - 3612 , - 3347 , - 1666 , - 2345 , - 1608 , - 3231 , - 3438 , - 2229 , - 3380 , - 3115 , - 1434 , - 2113 , - 1376 , - 2999 , - 3206 , - 1997 , - 3148 , - 2883 , - 1202 , - 1881 , - 1144 , - 2767 , - 2974 , - 1765 , - 2916 , - 2651 , - 970 , - 1649 , - 912 , - 2535 , - 2742 , - 1533 , - 2684 , - 2419 , - 738 , - 1417 , - 680 , - 2303 , - 2510 , - 1301 , - 2452 , - 2187 , - 506 , - 1185 , - 448 , - 2071 , - 2278 , - 1069 , - 2220 , - 1955 , - 274 , - 953 , - 216 , - 1839 , - 2046 , - 837 , - 1988 , - 1723 , - 42 , - 721 , - 3760 , - 1607 , - 1814 , - 605 , - 1756 , - 1491 , - 3586 , - 489 , - 3528 , - 1375 , - 1582 , - 373 , - 1524 , - 1259 , - 3354 , - 257 , - 3296 , - 1143 , - 1350 , - 141 , - 1292 , - 1027 , - 3122 , - 25 , - 3064 , - 911 , - 1118 , - 3685 , - 1060 , - 795 , - 2890 , - 3569 , - 2832 , - 679 , - 886 , - 3453 , - 828 , - 563 , - 2658 , - 3337 , - 2600 , - 447 , - 654 , - 3221 , - 596 , - 331 , - 2426 , - 3105 , - 2368 , - 215 , - 422 , - 2989 , - 364 , - 99 , - 2194 , - 2873 , - 2136 , - 3759 , - 190 , - 2757 , - 132 , - 3643 , - 1962 , - 2641 , - 1904 , - 3527 , - 3734 , - 2525 , - 3676 , - 3411 , - 1730 , - 2409 , - 1672 , - 3295 , - 3502 , - 2293 , - 3444 , - 3179 , - 1498 , - 2177 , - 1440 , - 3063 , - 3270 , - 2061 , - 3212 , - 2947 , - 1266 , - 1945 , - 1208 , - 2831 , - 3038 , - 1829 , - 2980 , - 2715 , - 1034 , - 1713 , - 976 , - 2599 , - 2806 , - 1597 , - 2748 , - 2483 , - 802 , - 1481 , - 744 , - 2367 , - 2574 , - 1365 , - 2516 , - 2251 , - 570 , - 1249 , - 512 , - 2135 , - 2342 , - 1133 , - 2284 , - 2019 , - 338 , - 1017 , - 280 , - 1903 , - 2110 , - 901 , - 2052 , - 1787 , - 106 , - 785 , - 48 , - 1671 , - 1878 , - 669 , - 1820 , - 1555 , - 3650 , - 553 , - 3592 , - 1439 , - 1646 , - 437 , - 1588 , - 1323 , - 3418 , - 321 , - 3360 , - 1207 , - 1414 , - 205 , - 1356 , - 1091 , - 3186 , - 89 , - 3128 , - 975 , - 1182 , - 3749 , - 1124 , - 859 , - 2954 , - 3633 , - 2896 , - 743 , - 950 , - 3517 , - 892 , - 627 , - 2722 , - 3401 , - 2664 , - 511 , - 718 , - 3285 , - 660 , - 395 , - 2490 , - 3169 , - 2432 , - 279 , - 486 , - 3053 , - 428 , - 163 , - 2258 , - 2937 , - 2200 , - 47 , - 254 , - 2821 , - 196 , - 3707 , - 2026 , - 2705 , - 1968 , - 3591 , - 22 , - 2589 , - 3740 , - 3475 , - 1794 , - 2473 , - 1736 , - 3359 , - 3566 , - 2357 , - 3508 , - 3243 , - 1562 , - 2241 , - 1504 , - 3127 , - 3334 , - 2125 , - 3276 , - 3011 , - 1330 , - 2009 , - 1272 , - 2895 , - 3102 , - 1893 , - 3044 , - 2779 , - 1098 , - 1777 , - 1040 , - 2663 , - 2870 , - 1661 , - 2812 , - 2547 , - 866 , - 1545 , - 808 , - 2431 , - 2638 , - 1429 , - 2580 , - 2315 , - 634 , - 1313 , - 576 , - 2199 , - 2406 , - 1197 , - 2348 , - 2083 , - 402 , - 1081 , - 344 , - 1967 , - 2174 , - 965 , - 2116 , - 1851 , - 170 , - 849 , - 112 , - 1735 , - 1942 , - 733 , - 1884 , - 1619 , - 3714 , - 617 , - 3656 , - 1503 , - 1710 , - 501 , - 1652 , - 1387 , - 3482 , - 385 , - 3424 , - 1271 , - 1478 , - 269 , - 1420 , - 1155 , - 3250 , - 153 , - 3192 , - 1039 , - 1246 , - 37 , - 1188 , - 923 , - 3018 , - 3697 , - 2960 , - 807 , - 1014 , - 3581 , - 956 , - 691 , - 2786 , - 3465 , - 2728 , - 575 , - 782 , - 3349 , - 724 , - 459 , - 2554 , - 3233 , - 2496 , - 343 , - 550 , - 3117 , - 492 , - 227 , - 2322 , - 3001 , - 2264 , - 111 , - 318 , - 2885 , - 260 , - 3771 , - 2090 , - 2769 , - 2032 , - 3655 , - 86 , - 2653 , - 28 , - 3539 , - 1858 , - 2537 , - 1800 , - 3423 , - 3630 , - 2421 , - 3572 , - 3307 , - 1626 , - 2305 , - 1568 , - 3191 , - 3398 , - 2189 , - 3340 , - 3075 , - 1394 , - 2073 , - 1336 , - 2959 , - 3166 , - 1957 , - 3108 , - 2843 , - 1162 , - 1841 , - 1104 , - 2727 , - 2934 , - 1725 , - 2876 , - 2611 , - 930 , - 1609 , - 872 , - 2495 , - 2702 , - 1493 , - 2644 , - 2379 , - 698 , - 1377 , - 640 , - 2263 , - 2470 , - 1261 , - 2412 , - 2147 , - 466 , - 1145 , - 408 , - 2031 , - 2238 , - 1029 , - 2180 , - 1915 , - 234 , - 913 , - 176 , - 1799 , - 2006 , - 797 , - 1948 , - 1683 , - 2 , - 681 , - 3720 , - 1567 , - 1774 , - 565 , - 1716 , - 1451 , - 3546 , - 449 , - 3488 , - 1335 , - 1542 , - 333 , - 1484 , - 1219 , - 3314 , - 217 , - 3256 , - 1103 , - 1310 , - 101 , - 1252 , - 987 , - 3082 , - 3761 , - 3024 , - 871 , - 1078 , - 3645 , - 1020 , - 755 , - 2850 , - 3529 , - 2792 , - 639 , - 846 , - 3413 , - 788 , - 523 , - 2618 , - 3297 , - 2560 , - 407 , - 614 , - 3181 , - 556 , - 291 , - 2386 , - 3065 , - 2328 , - 175 , - 382 , - 2949 , - 324 , - 59 , - 2154 , - 2833 , - 2096 , - 3719 , - 150 , - 2717 , - 92 , - 3603 , - 1922 , - 2601 , - 1864 , - 3487 , - 3694 , - 2485 , - 3636 , - 3371 , - 1690 , - 2369 , - 1632 , - 3255 , - 3462 , - 2253 , - 3404 , - 3139 , - 1458 , - 2137 , - 1400 , - 3023 , - 3230 , - 2021 , - 3172 , - 2907 , - 1226 , - 1905 , - 1168 , - 2791 , - 2998 , - 1789 , - 2940 , - 2675 , - 994 , - 1673 , - 936 , - 2559 , - 2766 , - 1557 , - 2708 , - 2443 , - 762 , - 1441 , - 704 , - 2327 , - 2534 , - 1325 , - 2476 , - 2211 , - 530 , - 1209 , - 472 , - 2095 , - 2302 , - 1093 , - 2244 , - 1979 , - 298 , - 977 , - 240 , - 1863 , - 2070 , - 861 , - 2012 , - 1747 , - 66 , - 745 , - 8 , - 1631 , - 1838 , - 629 , - 1780 , - 1515 , - 3610 , - 513 , - 3552 , - 1399 , - 1606 , - 397 , - 1548 , - 1283 , - 3378 , - 281 , - 3320 , - 1167 , - 1374 , - 165 , - 1316 , - 1051 , - 3146 , - 49 , - 3088 , - 935 , - 1142 , - 3709 , - 1084 , - 819 , - 2914 , - 3593 , - 2856 , - 703 , - 910 , - 3477 , - 852 , - 587 , - 2682 , - 3361 , - 2624 , - 471 , - 678 , - 3245 , - 620 , - 355 , - 2450 , - 3129 , - 2392 , - 239 , - 446 , - 3013 , - 388 , - 123 , - 2218 , - 2897 , - 2160 , - 7 , - 214 , - 2781 , - 156 , - 3667 , - 1986 , - 2665 , - 1928 , - 3551 , - 3758 , - 2549 , - 3700 , - 3435 , - 1754 , - 2433 , - 1696 , - 3319 , - 3526 , - 2317 , - 3468 , - 3203 , - 1522 , - 2201 , - 1464 , - 3087 , - 3294 , - 2085 , - 3236 , - 2971 , - 1290 , - 1969 , - 1232 , - 2855 , - 3062 , - 1853 , - 3004 , - 2739 , - 1058 , - 1737 , - 1000 , - 2623 , - 2830 , - 1621 , - 2772 , - 2507 , - 826 , - 1505 , - 768 , - 2391 , - 2598 , - 1389 , - 2540 , - 2275 , - 594 , - 1273 , - 536 , - 2159 , - 2366 , - 1157 , - 2308 , - 2043 , - 362 , - 1041 , - 304 , - 1927 , - 2134 , - 925 , - 2076 , - 1811 , - 130 , - 809 , - 72 , - 1695 , - 1902 , - 693 , - 1844 , - 1579 , - 3674 , - 577 , - 3616 , - 1463 , - 1670 , - 461 , - 1612 , - 1347 , - 3442 , - 345 , - 3384 , - 1231 , - 1438 , - 229 , - 1380 , - 1115 , - 3210 , - 113 , - 3152 , - 999 , - 1206 , - 3773 , - 1148 , - 883 , - 2978 , - 3657 , - 2920 , - 767 , - 974 , - 3541 , - 916 , - 651 , - 2746 , - 3425 , - 2688 , - 535 , - 742 , - 3309 , - 684 , - 419 , - 2514 , - 3193 , - 2456 , - 303 , - 510 , - 3077 , - 452 , - 187 , - 2282 , - 2961 , - 2224 , - 71 , - 278 , - 2845 , - 220 , - 3731 , - 2050 , - 2729 , - 1992 , - 3615 , - 46 , - 2613 , - 3764 , - 3499 , - 1818 , - 2497 , - 1760 , - 3383 , - 3590 , - 2381 , - 3532 , - 3267 , - 1586 , - 2265 , - 1528 , - 3151 , - 3358 , - 2149 , - 3300 , - 3035 , - 1354 , - 2033 , - 1296 , - 2919 , - 3126 , - 1917 , - 3068 , - 2803 , - 1122 , - 1801 , - 1064 , - 2687 , - 2894 , - 1685 , - 2836 , - 2571 , - 890 , - 1569 , - 832 , - 2455 , - 2662 , - 1453 , - 2604 , - 2339 , - 658 , - 1337 , - 600 , - 2223 , - 2430 , - 1221 , - 2372 , - 2107 , - 426 , - 1105 , - 368 , - 1991 , - 2198 , - 989 , - 2140 , - 1875 , - 194 , - 873 , - 136 , - 1759 , - 1966 , - 757 , - 1908 , - 1643 , - 3738 , - 641 , - 3680 , - 1527 , - 1734 , - 525 , - 1676 , - 1411 , - 3506 , - 409 , - 3448 , - 1295 , - 1502 , - 293 , - 1444 , - 1179 , - 3274 , - 177 , - 3216 , - 1063 , - 1270 , - 61 , - 1212 , - 947 , - 3042 , - 3721 , - 2984 , - 831 , - 1038 , - 3605 , - 980 , - 715 , - 2810 , - 3489 , - 2752 , - 599 , - 806 , - 3373 , - 748 , - 483 , - 2578 , - 3257 , - 2520 , - 367 , - 574 , - 3141 , - 516 , - 251 , - 2346 , - 3025 , - 2288 , - 135 , - 342 , - 2909 , - 284 , - 19 , - 2114 , - 2793 , - 2056 , - 3679 , - 110 , - 2677 , - 52 , - 3563 , - 1882 , - 2561 , - 1824 , - 3447 , - 3654 , - 2445 , - 3596 , - 3331 , - 1650 , - 2329 , - 1592 , - 3215 , - 3422 , - 2213 , - 3364 , - 3099 , - 1418 , - 2097 , - 1360 , - 2983 , - 3190 , - 1981 , - 3132 , - 2867 , - 1186 , - 1865 , - 1128 , - 2751 , - 2958 , - 1749 , - 2900 , - 2635 , - 954 , - 1633 , - 896 , - 2519 , - 2726 , - 1517 , - 2668 , - 2403 , - 722 , - 1401 , - 664 , - 2287 , - 2494 , - 1285 , - 2436 , - 2171 , - 490 , - 1169 , - 432 , - 2055 , - 2262 , - 1053 , - 2204 , - 1939 , - 258 , - 937 , - 200 , - 1823 , - 2030 , - 821 , - 1972 , - 1707 , - 26 , - 705 , - 3744 , - 1591 , - 1798 , - 589 , - 1740 , - 1475 , - 3570 , - 473 , - 3512 , - 1359 , - 1566 , - 357 , - 1508 , - 1243 , - 3338 , - 241 , - 3280 , - 1127 , - 1334 , - 125 , - 1276 , - 1011 , - 3106 , - 9 , - 3048 , - 895 , - 1102 , - 3669 , - 1044 , - 779 , - 2874 , - 3553 , - 2816 , - 663 , - 870 , - 3437 , - 812 , - 547 , - 2642 , - 3321 , - 2584 , - 431 , - 638 , - 3205 , - 580 , - 315 , - 2410 , - 3089 , - 2352 , - 199 , - 406 , - 2973 , - 348 , - 83 , - 2178 , - 2857 , - 2120 , - 3743 , - 174 , - 2741 , - 116 , - 3627 , - 1946 , - 2625 , - 1888 , - 3511 , - 3718 , - 2509 , - 3660 , - 3395 , - 1714 , - 2393 , - 1656 , - 3279 , - 3486 , - 2277 , - 3428 , - 3163 , - 1482 , - 2161 , - 1424 , - 3047 , - 3254 , - 2045 , - 3196 , - 2931 , - 1250 , - 1929 , - 1192 , - 2815 , - 3022 , - 1813 , - 2964 , - 2699 , - 1018 , - 1697 , - 960 , - 2583 , - 2790 , - 1581 , - 2732 , - 2467 , - 786 , - 1465 , - 728 , - 2351 , - 2558 , - 1349 , - 2500 , - 2235 , - 554 , - 1233 , - 496 , - 2119 , - 2326 , - 1117 , - 2268 , - 2003 , - 322 , - 1001 , - 264 , - 1887 , - 2094 , - 885 , - 2036 , - 1771 , - 90 , - 769 , - 32 , - 1655 , - 1862 , - 653 , - 1804 , - 1539 , - 3634 , - 537 , - 3576 , - 1423 , - 1630 , - 421 , - 1572 , - 1307 , - 3402 , - 305 , - 3344 , - 1191 , - 1398 , - 189 , - 1340 , - 1075 , - 3170 , - 73 , - 3112 , - 959 , - 1166 , - 3733 , - 1108 , - 843 , - 2938 , - 3617 , - 2880 , - 727 , - 934 , - 3501 , - 876 , - 611 , - 2706 , - 3385 , - 2648 , - 495 , - 702 , - 3269 , - 644 , - 379 , - 2474 , - 3153 , - 2416 , - 263 , - 470 , - 3037 , - 412 , - 147 , - 2242 , - 2921 , - 2184 , - 31 , - 238 , - 2805 , - 180 , - 3691 , - 2010 , - 2689 , - 1952 , - 3575 , - 6 , - 2573 , - 3724 , - 3459 , - 1778 , - 2457 , - 1720 , - 3343 , - 3550 , - 2341 , - 3492 , - 3227 , - 1546 , - 2225 , - 1488 , - 3111 , - 3318 , - 2109 , - 3260 , - 2995 , - 1314 , - 1993 , - 1256 , - 2879 , - 3086 , - 1877 , - 3028 , - 2763 , - 1082 , - 1761 , - 1024 , - 2647 , - 2854 , - 1645 , - 2796 , - 2531 , - 850 , - 1529 , - 792 , - 2415 , - 2622 , - 1413 , - 2564 , - 2299 , - 618 , - 1297 , - 560 , - 2183 , - 2390 , - 1181 , - 2332 , - 2067 , - 386 , - 1065 , - 328 , - 1951 , - 2158 , - 949 , - 2100 , - 1835 , - 154 , - 833 , - 96 , - 1719 , - 1926 , - 717 , - 1868 , - 1603 , - 3698 , - 601 , - 3640 , - 1487 , - 1694 , - 485 , - 1636 , - 1371 , - 3466 , - 369 , - 3408 , - 1255 , - 1462 , - 253 , - 1404 , - 1139 , - 3234 , - 137 , - 3176 , - 1023 , - 1230 , - 21 , - 1172 , - 907 , - 3002 , - 3681 , - 2944 , - 791 , - 998 , - 3565 , - 940 , - 675 , - 2770 , - 3449 , - 2712 , - 559 , - 766 , - 3333 , - 708 , - 443 , - 2538 , - 3217 , - 2480 , - 327 , - 534 , - 3101 , - 476 , - 211 , - 2306 , - 2985 , - 2248 , - 95 , - 302 , - 2869 , - 244 , - 3755 , - 2074 , - 2753 , - 2016 , - 3639 , - 70 , - 2637 , - 12 , - 3523 , - 1842 , - 2521 , - 1784 , - 3407 , - 3614 , - 2405 , - 3556 , - 3291 , - 1610 , - 2289 , - 1552 , - 3175 , - 3382 , - 2173 , - 3324 , - 3059 , - 1378 , - 2057 , - 1320 , - 2943 , - 3150 , - 1941 , - 3092 , - 2827 , - 1146 , - 1825 , - 1088 , - 2711 , - 2918 , - 1709 , - 2860 , - 2595 , - 914 , - 1593 , - 856 , - 2479 , - 2686 , - 1477 , - 2628 , - 2363 , - 682 , - 1361 , - 624 , - 2247 , - 2454 , - 1245 , - 2396 , - 2131 , - 450 , - 1129 , - 392 , - 2015 , - 2222 , - 1013 , - 2164 , - 1899 , - 218 , - 897 , - 160 , - 1783 , - 1990 , - 781 , - 1932 , - 1667 , - 3762 , - 665 , - 3704 , - 1551 , - 1758 , - 549 , - 1700 , - 1435 , - 3530 , - 433 , - 3472 , - 1319 , - 1526 , - 317 , - 1468 , - 1203 , - 3298 , - 201 , - 3240 , - 1087 , - 1294 , - 85 , - 1236 , - 971 , - 3066 , - 3745 , - 3008 , - 855 , - 1062 , - 3629 , - 1004 , - 739 , - 2834 , - 3513 , - 2776 , - 623 , - 830 , - 3397 , - 772 , - 507 , - 2602 , - 3281 , - 2544 , - 391 , - 598 , - 3165 , - 540 , - 275 , - 2370 , - 3049 , - 2312 , - 159 , - 366 , - 2933 , - 308 , - 43 , - 2138 , - 2817 , - 2080 , - 3703 , - 134 , - 2701 , - 76 , - 3587 , - 1906 , - 2585 , - 1848 , - 3471 , - 3678 , - 2469 , - 3620 , - 3355 , - 1674 , - 2353 , - 1616 , - 3239 , - 3446 , - 2237 , - 3388 , - 3123 , - 1442 , - 2121 , - 1384 , - 3007 , - 3214 , - 2005 , - 3156 , - 2891 , - 1210 , - 1889 , - 1152 , - 2775 , - 2982 , - 1773 , - 2924 , - 2659 , - 978 , - 1657 , - 920 , - 2543 , - 2750 , - 1541 , - 2692 , - 2427 , - 746 , - 1425 , - 688 , - 2311 , - 2518 , - 1309 , - 2460 , - 2195 , - 514 , - 1193 , - 456 , - 2079 , - 2286 , - 1077 , - 2228 , - 1963 , - 282 , - 961 , - 224 , - 1847 , - 2054 , - 845 , - 1996 , - 1731 , - 50 , - 729 , - 3768 , - 1615 , - 1822 , - 613 , - 1764 , - 1499 , - 3594 , - 497 , - 3536 , - 1383 , - 1590 , - 381 , - 1532 , - 1267 , - 3362 , - 265 , - 3304 , - 1151 , - 1358 , - 149 , - 1300 , - 1035 , - 3130 , - 33 , - 3072 , - 919 , - 1126 , - 3693 , - 1068 , - 803 , - 2898 , - 3577 , - 2840 , - 687 , - 894 , - 3461 , - 836 , - 571 , - 2666 , - 3345 , - 2608 , - 455 , - 662 , - 3229 , - 604 , - 339 , - 2434 , - 3113 , - 2376 , - 223 , - 430 , - 2997 , - 372 , - 107 , - 2202 , - 2881 , - 2144 , - 3767 , - 198 , - 2765 , - 140 , - 3651 , - 1970 , - 2649 , - 1912 , - 3535 , - 3742 , - 2533 , - 3684 , - 3419 , - 1738 , - 2417 , - 1680 , - 3303 , - 3510 , - 2301 , - 3452 , - 3187 , - 1506 , - 2185 , - 1448 , - 3071 , - 3278 , - 2069 , - 3220 , - 2955 , - 1274 , - 1953 , - 1216 , - 2839 , - 3046 , - 1837 , - 2988 , - 2723 , - 1042 , - 1721 , - 984 , - 2607 , - 2814 , - 1605 , - 2756 , - 2491 , - 810 , - 1489 , - 752 , - 2375 , - 2582 , - 1373 , - 2524 , - 2259 , - 578 , - 1257 , - 520 , - 2143 , - 2350 , - 1141 , - 2292 , - 2027 , - 346 , - 1025 , - 288 , - 1911 , - 2118 , - 909 , - 2060 , - 1795 , - 114 , - 793 , - 56 , - 1679 , - 1886 , - 677 , - 1828 , - 1563 , - 3658 , - 561 , - 3600 , - 1447 , - 1654 , - 445 , - 1596 , - 1331 , - 3426 , - 329 , - 3368 , - 1215 , - 1422 , - 213 , - 1364 , - 1099 , - 3194 , - 97 , - 3136 , - 983 , - 1190 , - 3757 , - 1132 , - 867 , - 2962 , - 3641 , - 2904 , - 751 , - 958 , - 3525 , - 900 , - 635 , - 2730 , - 3409 , - 2672 , - 519 , - 726 , - 3293 , - 668 , - 403 , - 2498 , - 3177 , - 2440 , - 287 , - 494 , - 3061 , - 436 , - 171 , - 2266 , - 2945 , - 2208 , - 55 , - 262 , - 2829 , - 204 , - 3715 , - 2034 , - 2713 , - 1976 , - 3599 , - 30 , - 2597 , - 3748 , - 3483 , - 1802 , - 2481 , - 1744 , - 3367 , - 3574 , - 2365 , - 3516 , - 3251 , - 1570 , - 2249 , - 1512 , - 3135 , - 3342 , - 2133 , - 3284 , - 3019 , - 1338 , - 2017 , - 1280 , - 2903 , - 3110 , - 1901 , - 3052 , - 2787 , - 1106 , - 1785 , - 1048 , - 2671 , - 2878 , - 1669 , - 2820 , - 2555 , - 874 , - 1553 , - 816 , - 2439 , - 2646 , - 1437 , - 2588 , - 2323 , - 642 , - 1321 , - 584 , - 2207 , - 2414 , - 1205 , - 2356 , - 2091 , - 410 , - 1089 , - 352 , - 1975 , - 2182 , - 973 , - 2124 , - 1859 , - 178 , - 857 , - 120 , - 1743 , - 1950 , - 741 , - 1892 , - 1627 , - 3722 , - 625 , - 3664 , - 1511 , - 1718 , - 509 , - 1660 , - 1395 , - 3490 , - 393 , - 3432 , - 1279 , - 1486 , - 277 , - 1428 , - 1163 , - 3258 , - 161 , - 3200 , - 1047 , - 1254 , - 45 , - 1196 , - 931 , - 3026 , - 3705 , - 2968 , - 815 , - 1022 , - 3589 , - 964 , - 699 , - 2794 , - 3473 , - 2736 , - 583 , - 790 , - 3357 , - 732 , - 467 , - 2562 , - 3241 , - 2504 , - 351 , - 558 , - 3125 , - 500 , - 235 , - 2330 , - 3009 , - 2272 , - 119 , - 326 , - 2893 , - 268 , - 3 , - 2098 , - 2777 , - 2040 , - 3663 , - 94 , - 2661 , - 36 , - 3547 , - 1866 , - 2545 , - 1808 , - 3431 , - 3638 , - 2429 , - 3580 , - 3315 , - 1634 , - 2313 , - 1576 , - 3199 , - 3406 , - 2197 , - 3348 , - 3083 , - 1402 , - 2081 , - 1344 , - 2967 , - 3174 , - 1965 , - 3116 , - 2851 , - 1170 , - 1849 , - 1112 , - 2735 , - 2942 , - 1733 , - 2884 , - 2619 , - 938 , - 1617 , - 880 , - 2503 , - 2710 , - 1501 , - 2652 , - 2387 , - 706 , - 1385 , - 648 , - 2271 , - 2478 , - 1269 , - 2420 , - 2155 , - 474 , - 1153 , - 416 , - 2039 , - 2246 , - 1037 , - 2188 , - 1923 , - 242 , - 921 , - 184 , - 1807 , - 2014 , - 805 , - 1956 , - 1691 , - 10 , - 689 , - 3728 , - 1575 , - 1782 , - 573 , - 1724 , - 1459 , - 3554 , - 457 , - 3496 , - 1343 , - 1550 , - 341 , - 1492 , - 1227 , - 3322 , - 225 , - 3264 , - 1111 , - 1318 , - 109 , - 1260 , - 995 , - 3090 , - 3769 , - 3032 , - 879 , - 1086 , - 3653 , - 1028 , - 763 , - 2858 , - 3537 , - 2800 , - 647 , - 854 , - 3421 , - 796 , - 531 , - 2626 , - 3305 , - 2568 , - 415 , - 622 , - 3189 , - 564 , - 299 , - 2394 , - 3073 , - 2336 , - 183 , - 390 , - 2957 , - 332 , - 67 , - 2162 , - 2841 , - 2104 , - 3727 , - 158 , - 2725 , - 100 , - 3611 , - 1930 , - 2609 , - 1872 , - 3495 , - 3702 , - 2493 , - 3644 , - 3379 , - 1698 , - 2377 , - 1640 , - 3263 , - 3470 , - 2261 , - 3412 , - 3147 , - 1466 , - 2145 , - 1408 , - 3031 , - 3238 , - 2029 , - 3180 , - 2915 , - 1234 , - 1913 , - 1176 , - 2799 , - 3006 , - 1797 , - 2948 , - 2683 , - 1002 , - 1681 , - 944 , - 2567 , - 2774 , - 1565 , - 2716 , - 2451 , - 770 , - 1449 , - 712 , - 2335 , - 2542 , - 1333 , - 2484 , - 2219 , - 538 , - 1217 , - 480 , - 2103 , - 2310 , - 1101 , - 2252 , - 1987 , - 306 , - 985 , - 248 , - 1871 , - 2078 , - 869 , - 2020 , - 1755 , - 74 , - 753 , - 16 , - 1639 , - 1846 , - 637 , - 1788 , - 1523 , - 3618 , - 521 , - 3560 , - 1407 , - 1614 , - 405 , - 1556 , - 1291 , - 3386 , - 289 , - 3328 , - 1175 , - 1382 , - 173 , - 1324 , - 1059 , - 3154 , - 57 , - 3096 , - 943 , - 1150 , - 3717 , - 1092 , - 827 , - 2922 , - 3601 , - 2864 , - 711 , - 918 , - 3485 , - 860 , - 595 , - 2690 , - 3369 , - 2632 , - 479 , - 686 , - 3253 , - 628 , - 363 , - 2458 , - 3137 , - 2400 , - 247 , - 454 , - 3021 , - 396 , - 131 , - 2226 , - 2905 , - 2168 , - 15 , - 222 , - 2789 , - 164 , - 3675 , - 1994 , - 2673 , - 1936 , - 3559 , - 3766 , - 2557 , - 3708 , - 3443 , - 1762 , - 2441 , - 1704 , - 3327 , - 3534 , - 2325 , - 3476 , - 3211 , - 1530 , - 2209 , - 1472 , - 3095 , - 3302 , - 2093 , - 3244 , - 2979 , - 1298 , - 1977 , - 1240 , - 2863 , - 3070 , - 1861 , - 3012 , - 2747 , - 1066 , - 1745 , - 1008 , - 2631 , - 2838 , - 1629 , - 2780 , - 2515 , - 834 , - 1513 , - 776 , - 2399 , - 2606 , - 1397 , - 2548 , - 2283 , - 602 , - 1281 , - 544 , - 2167 , - 2374 , - 1165 , - 2316 , - 2051 , - 370 , - 1049 , - 312 , - 1935 , - 2142 , - 933 , - 2084 , - 1819 , - 138 , - 817 , - 80 , - 1703 , - 1910 , - 701 , - 1852 , - 1587 , - 3682 , - 585 , - 3624 , - 1471 , - 1678 , - 469 , - 1620 , - 1355 , - 3450 , - 353 , - 3392 , - 1239 , - 1446 , - 237 , - 1388 , - 1123 , - 3218 , - 121 , - 3160 , - 1007 , - 1214 , - 5 , - 1156 , - 891 , - 2986 , - 3665 , - 2928 , - 775 , - 982 , - 3549 , - 924 , - 659 , - 2754 , - 3433 , - 2696 , - 543 , - 750 , - 3317 , - 692 , - 427 , - 2522 , - 3201 , - 2464 , - 311 , - 518 , - 3085 , - 460 , - 195 , - 2290 , - 2969 , - 2232 , - 79 , - 286 , - 2853 , - 228 , - 3739 , - 2058 , - 2737 , - 2000 , - 3623 , - 54 , - 2621 , - 3772 , - 3507 , - 1826 , - 2505 , - 1768 , - 3391 , - 3598 , - 2389 , - 3540 , - 3275 , - 1594 , - 2273 , - 1536 , - 3159 , - 3366 , - 2157 , - 3308 , - 3043 , - 1362 , - 2041 , - 1304 , - 2927 , - 3134 , - 1925 , - 3076 , - 2811 , - 1130 , - 1809 , - 1072 , - 2695 , - 2902 , - 1693 , - 2844 , - 2579 , - 898 , - 1577 , - 840 , - 2463 , - 2670 , - 1461 , - 2612 , - 2347 , - 666 , - 1345 , - 608 , - 2231 , - 2438 , - 1229 , - 2380 , - 2115 , - 434 , - 1113 , - 376 , - 1999 , - 2206 , - 997 , - 2148 , - 1883 , - 202 , - 881 , - 144 , - 1767 , - 1974 , - 765 , - 1916 , - 1651 , - 3746 , - 649 , - 3688 , - 1535 , - 1742 , - 533 , - 1684 , - 1419 , - 3514 , - 417 , - 3456 , - 1303 , - 1510 , - 301 , - 1452 , - 1187 , - 3282 , - 185 , - 3224 , - 1071 , - 1278 , - 69 , - 1220 , - 955 , - 3050 , - 3729 , - 2992 , - 839 , - 1046 , - 3613 , - 988 , - 723 , - 2818 , - 3497 , - 2760 , - 607 , - 814 , - 3381 , - 756 , - 491 , - 2586 , - 3265 , - 2528 , - 375 , - 582 , - 3149 , - 524 , - 259 , - 2354 , - 3033 , - 2296 , - 143 , - 350 , - 2917 , - 292 , - 27 , - 2122 , - 2801 , - 2064 , - 3687 , - 118 , - 2685 , - 60 , - 3571 , - 1890 , - 2569 , - 1832 , - 3455 , - 3662 , - 2453 , - 3604 , - 3339 , - 1658 , - 2337 , - 1600 , - 3223 , - 3430 , - 2221 , - 3372 , - 3107 , - 1426 , - 2105 , - 1368 , - 2991 , - 3198 , - 1989 , - 3140 , - 2875 , - 1194 , - 1873 , - 1136 , - 2759 , - 2966 , - 1757 , - 2908 , - 2643 , - 962 , - 1641 , - 904 , - 2527 , - 2734 , - 1525 , - 2676 , - 2411 , - 730 , - 1409 , - 672 , - 2295 , - 2502 , - 1293 , - 2444 , - 2179 , - 498 , - 1177 , - 440 , - 2063 , - 2270 , - 1061 , - 2212 , - 1947 , - 266 , - 945 , - 208 , - 1831 , - 2038 , - 829 , - 1980 , - 1715 , - 34 , - 713 , - 3752 , - 1599 , - 1806 , - 597 , - 1748 , - 1483 , - 3578 , - 481 , - 3520 , - 1367 , - 1574 , - 365 , - 1516 , - 1251 , - 3346 , - 249 , - 3288 , - 1135 , - 1342 , - 133 , - 1284 , - 1019 , - 3114 , - 17 , - 3056 , - 903 , - 1110 , - 3677 , - 1052 , - 787 , - 2882 , - 3561 , - 2824 , - 671 , - 878 , - 3445 , - 820 , - 555 , - 2650 , - 3329 , - 2592 , - 439 , - 646 , - 3213 , - 588 , - 323 , - 2418 , - 3097 , - 2360 , - 207 , - 414 , - 2981 , - 356 , - 91 , - 2186 , - 2865 , - 2128 , - 3751 , - 182 , - 2749 , - 124 , - 3635 , - 1954 , - 2633 , - 1896 , - 3519 , - 3726 , - 2517 , - 3668 , - 3403 , - 1722 , - 2401 , - 1664 , - 3287 , - 3494 , - 2285 , - 3436 , - 3171 , - 1490 , - 2169 , - 1432 , - 3055 , - 3262 , - 2053 , - 3204 , - 2939 , - 1258 , - 1937 , - 1200 , - 2823 , - 3030 , - 1821 , - 2972 , - 2707 , - 1026 , - 1705 , - 968 , - 2591 , - 2798 , - 1589 , - 2740 , - 2475 , - 794 , - 1473 , - 736 , - 2359 , - 2566 , - 1357 , - 2508 , - 2243 , - 562 , - 1241 , - 504 , - 2127 , - 2334 , - 1125 , - 2276 , - 2011 , - 330 , - 1009 , - 272 , - 1895 , - 2102 , - 893 , - 2044 , - 1779 , - 98 , - 777 , - 40 , - 1663 , - 1870 , - 661 , - 1812 , - 1547 , - 3642 , - 545 , - 3584 , - 1431 , - 1638 , - 429 , - 1580 , - 1315 , - 3410 , - 313 , - 3352 , - 1199 , - 1406 , - 197 , - 1348 , - 1083 , - 3178 , - 81 , - 3120 , - 967 , - 1174 , - 3741 , - 1116 , - 851 , - 2946 , - 3625 , - 2888 , - 735 , - 942 , - 3509 , - 884 , - 619 , - 2714 , - 3393 , - 2656 , - 503 , - 710 , - 3277 , - 652 , - 387 , - 2482 , - 3161 , - 2424 , - 271 , - 478 , - 3045 , - 420 , - 155 , - 2250 , - 2929 , - 2192 , - 39 , - 246 , - 2813 , - 188 , - 3699 , - 2018 , - 2697 , - 1960 , - 3583 , - 14 , - 2581 , - 3732 , - 3467 , - 1786 , - 2465 , - 1728 , - 3351 , - 3558 , - 2349 , - 3500 , - 3235 , - 1554 , - 2233 , - 1496 , - 3119 , - 3326 , - 2117 , - 3268 , - 3003 , - 1322 , - 2001 , - 1264 , - 2887 , - 3094 , - 1885 , - 3036 , - 2771 , - 1090 , - 1769 , - 1032 , - 2655 , - 2862 , - 1653 , - 2804 , - 2539 , - 858 , - 1537 , - 800 , - 2423 , - 2630 , - 1421 , - 2572 , - 2307 , - 626 , - 1305 , - 568 , - 2191 , - 2398 , - 1189 , - 2340 , - 2075 , - 394 , - 1073 , - 336 , - 1959 , - 2166 , - 957 , - 2108 , - 1843 , - 162 , - 841 , - 104 , - 1727 , - 1934 , - 725 , - 1876 , - 1611 , - 3706 , - 609 , - 3648 , - 1495 , - 1702 , - 493 , - 1644 , - 1379 , - 3474 , - 377 , - 3416 , - 1263 , - 1470 , - 261 , - 1412 , - 1147 , - 3242 , - 145 , - 3184 , - 1031 , - 1238 , - 29 , - 1180 , - 915 , - 3010 , - 3689 , - 2952 , - 799 , - 1006 , - 3573 , - 948 , - 683 , - 2778 , - 3457 , - 2720 , - 567 , - 774 , - 3341 , - 716 , - 451 , - 2546 , - 3225 , - 2488 , - 335 , - 542 , - 3109 , - 484 , - 219 , - 2314 , - 2993 , - 2256 , - 103 , - 310 , - 2877 , - 252 , - 3763 , - 2082 , - 2761 , - 2024 , - 3647 , - 78 , - 2645 , - 20 , - 3531 , - 1850 , - 2529 , - 1792 , - 3415 , - 3622 , - 2413 , - 3564 , - 3299 , - 1618 , - 2297 , - 1560 , - 3183 , - 3390 , - 2181 , - 3332 , - 3067 , - 1386 , - 2065 , - 1328 , - 2951 , - 3158 , - 1949 , - 3100 , - 2835 , - 1154 , - 1833 , - 1096 , - 2719 , - 2926 , - 1717 , - 2868 , - 2603 , - 922 , - 1601 , - 864 , - 2487 , - 2694 , - 1485 , - 2636 , - 2371 , - 690 , - 1369 , - 632 , - 2255 , - 2462 , - 1253 , - 2404 , - 2139 , - 458 , - 1137 , - 400 , - 2023 , - 2230 , - 1021 , - 2172 , - 1907 , - 226 , - 905 , - 168 , - 1791 , - 1998 , - 789 , - 1940 , - 1675 , - 3770 , - 673 , - 3712 , - 1559 , - 1766 , - 557 , - 1708 , - 1443 , - 3538 , - 441 , - 3480 , - 1327 , - 1534 , - 325 , - 1476 , - 1211 , - 3306 , - 209 , - 3248 , - 1095 , - 1302 , - 93 , - 1244 , - 979 , - 3074 , - 3753 , - 3016 , - 863 , - 1070 , - 3637 , - 1012 , - 747 , - 2842 , - 3521 , - 2784 , - 631 , - 838 , - 3405 , - 780 , - 515 , - 2610 , - 3289 , - 2552 , - 399 , - 606 , - 3173 , - 548 , - 283 , - 2378 , - 3057 , - 2320 , - 167 , - 374 , - 2941 , - 316 , - 51 , - 2146 , - 2825 , - 2088 , - 3711 , - 142 , - 2709 , - 84 , - 3595 , - 1914 , - 2593 , - 1856 , - 3479 , - 3686 , - 2477 , - 3628 , - 3363 , - 1682 , - 2361 , - 1624 , - 3247 , - 3454 , - 2245 , - 3396 , - 3131 , - 1450 , - 2129 , - 1392 , - 3015 , - 3222 , - 2013 , - 3164 , - 2899 , - 1218 , - 1897 , - 1160 , - 2783 , - 2990 , - 1781 , - 2932 , - 2667 , - 986 , - 1665 , - 928 , - 2551 , - 2758 , - 1549 , - 2700 , - 2435 , - 754 , - 1433 , - 696 , - 2319 , - 2526 , - 1317 , - 2468 , - 2203 , - 522 , - 1201 , - 464 , - 2087 , - 2294 , - 1085 , - 2236 , - 1971 , - 290 , - 969 , - 232 , - 1855 , - 2062 , - 853 , - 2004 , - 1739 , - 58 , - 737 , - 0 , - 571 , - 2342 , - 1473 , - 1804 , - 3335 , - 2226 , - 2317 , - 3608 , - 2259 , - 2110 , - 3161 , - 1572 , - 1183 , - 1994 , - 165 , - 3376 , - 107 , - 1878 , - 1009 , - 1340 , - 2871 , - 1762 , - 1853 , - 3144 , - 1795 , - 1646 , - 2697 , - 1108 , - 719 , - 1530 , - 3541 , - 2912 , - 3483 , - 1414 , - 545 , - 876 , - 2407 , - 1298 , - 1389 , - 2680 , - 1331 , - 1182 , - 2233 , - 644 , - 255 , - 1066 , - 3077 , - 2448 , - 3019 , - 950 , - 81 , - 412 , - 1943 , - 834 , - 925 , - 2216 , - 867 , - 718 , - 1769 , - 180 , - 3631 , - 602 , - 2613 , - 1984 , - 2555 , - 486 , - 3457 , - 3788 , - 1479 , - 370 , - 461 , - 1752 , - 403 , - 254 , - 1305 , - 3556 , - 3167 , - 138 , - 2149 , - 1520 , - 2091 , - 22 , - 2993 , - 3324 , - 1015 , - 3746 , - 3837 , - 1288 , - 3779 , - 3630 , - 841 , - 3092 , - 2703 , - 3514 , - 1685 , - 1056 , - 1627 , - 3398 , - 2529 , - 2860 , - 551 , - 3282 , - 3373 , - 824 , - 3315 , - 3166 , - 377 , - 2628 , - 2239 , - 3050 , - 1221 , - 592 , - 1163 , - 2934 , - 2065 , - 2396 , - 87 , - 2818 , - 2909 , - 360 , - 2851 , - 2702 , - 3753 , - 2164 , - 1775 , - 2586 , - 757 , - 128 , - 699 , - 2470 , - 1601 , - 1932 , - 3463 , - 2354 , - 2445 , - 3736 , - 2387 , - 2238 , - 3289 , - 1700 , - 1311 , - 2122 , - 293 , - 3504 , - 235 , - 2006 , - 1137 , - 1468 , - 2999 , - 1890 , - 1981 , - 3272 , - 1923 , - 1774 , - 2825 , - 1236 , - 847 , - 1658 , - 3669 , - 3040 , - 3611 , - 1542 , - 673 , - 1004 , - 2535 , - 1426 , - 1517 , - 2808 , - 1459 , - 1310 , - 2361 , - 772 , - 383 , - 1194 , - 3205 , - 2576 , - 3147 , - 1078 , - 209 , - 540 , - 2071 , - 962 , - 1053 , - 2344 , - 995 , - 846 , - 1897 , - 308 , - 3759 , - 730 , - 2741 , - 2112 , - 2683 , - 614 , - 3585 , - 76 , - 1607 , - 498 , - 589 , - 1880 , - 531 , - 382 , - 1433 , - 3684 , - 3295 , - 266 , - 2277 , - 1648 , - 2219 , - 150 , - 3121 , - 3452 , - 1143 , - 34 , - 125 , - 1416 , - 67 , - 3758 , - 969 , - 3220 , - 2831 , - 3642 , - 1813 , - 1184 , - 1755 , - 3526 , - 2657 , - 2988 , - 679 , - 3410 , - 3501 , - 952 , - 3443 , - 3294 , - 505 , - 2756 , - 2367 , - 3178 , - 1349 , - 720 , - 1291 , - 3062 , - 2193 , - 2524 , - 215 , - 2946 , - 3037 , - 488 , - 2979 , - 2830 , - 41 , - 2292 , - 1903 , - 2714 , - 885 , - 256 , - 827 , - 2598 , - 1729 , - 2060 , - 3591 , - 2482 , - 2573 , - 24 , - 2515 , - 2366 , - 3417 , - 1828 , - 1439 , - 2250 , - 421 , - 3632 , - 363 , - 2134 , - 1265 , - 1596 , - 3127 , - 2018 , - 2109 , - 3400 , - 2051 , - 1902 , - 2953 , - 1364 , - 975 , - 1786 , - 3797 , - 3168 , - 3739 , - 1670 , - 801 , - 1132 , - 2663 , - 1554 , - 1645 , - 2936 , - 1587 , - 1438 , - 2489 , - 900 , - 511 , - 1322 , - 3333 , - 2704 , - 3275 , - 1206 , - 337 , - 668 , - 2199 , - 1090 , - 1181 , - 2472 , - 1123 , - 974 , - 2025 , - 436 , - 47 , - 858 , - 2869 , - 2240 , - 2811 , - 742 , - 3713 , - 204 , - 1735 , - 626 , - 717 , - 2008 , - 659 , - 510 , - 1561 , - 3812 , - 3423 , - 394 , - 2405 , - 1776 , - 2347 , - 278 , - 3249 , - 3580 , - 1271 , - 162 , - 253 , - 1544 , - 195 , - 46 , - 1097 , - 3348 , - 2959 , - 3770 , - 1941 , - 1312 , - 1883 , - 3654 , - 2785 , - 3116 , - 807 , - 3538 , - 3629 , - 1080 , - 3571 , - 3422 , - 633 , - 2884 , - 2495 , - 3306 , - 1477 , - 848 , - 1419 , - 3190 , - 2321 , - 2652 , - 343 , - 3074 , - 3165 , - 616 , - 3107 , - 2958 , - 169 , - 2420 , - 2031 , - 2842 , - 1013 , - 384 , - 955 , - 2726 , - 1857 , - 2188 , - 3719 , - 2610 , - 2701 , - 152 , - 2643 , - 2494 , - 3545 , - 1956 , - 1567 , - 2378 , - 549 , - 3760 , - 491 , - 2262 , - 1393 , - 1724 , - 3255 , - 2146 , - 2237 , - 3528 , - 2179 , - 2030 , - 3081 , - 1492 , - 1103 , - 1914 , - 85 , - 3296 , - 27 , - 1798 , - 929 , - 1260 , - 2791 , - 1682 , - 1773 , - 3064 , - 1715 , - 1566 , - 2617 , - 1028 , - 639 , - 1450 , - 3461 , - 2832 , - 3403 , - 1334 , - 465 , - 796 , - 2327 , - 1218 , - 1309 , - 2600 , - 1251 , - 1102 , - 2153 , - 564 , - 175 , - 986 , - 2997 , - 2368 , - 2939 , - 870 , - 1 , - 332 , - 1863 , - 754 , - 845 , - 2136 , - 787 , - 638 , - 1689 , - 100 , - 3551 , - 522 , - 2533 , - 1904 , - 2475 , - 406 , - 3377 , - 3708 , - 1399 , - 290 , - 381 , - 1672 , - 323 , - 174 , - 1225 , - 3476 , - 3087 , - 58 , - 2069 , - 1440 , - 2011 , - 3782 , - 2913 , - 3244 , - 935 , - 3666 , - 3757 , - 1208 , - 3699 , - 3550 , - 761 , - 3012 , - 2623 , - 3434 , - 1605 , - 976 , - 1547 , - 3318 , - 2449 , - 2780 , - 471 , - 3202 , - 3293 , - 744 , - 3235 , - 3086 , - 297 , - 2548 , - 2159 , - 2970 , - 1141 , - 512 , - 1083 , - 2854 , - 1985 , - 2316 , - 7 , - 2738 , - 2829 , - 280 , - 2771 , - 2622 , - 3673 , - 2084 , - 1695 , - 2506 , - 677 , - 48 , - 619 , - 2390 , - 1521 , - 1852 , - 3383 , - 2274 , - 2365 , - 3656 , - 2307 , - 2158 , - 3209 , - 1620 , - 1231 , - 2042 , - 213 , - 3424 , - 155 , - 1926 , - 1057 , - 1388 , - 2919 , - 1810 , - 1901 , - 3192 , - 1843 , - 1694 , - 2745 , - 1156 , - 767 , - 1578 , - 3589 , - 2960 , - 3531 , - 1462 , - 593 , - 924 , - 2455 , - 1346 , - 1437 , - 2728 , - 1379 , - 1230 , - 2281 , - 692 , - 303 , - 1114 , - 3125 , - 2496 , - 3067 , - 998 , - 129 , - 460 , - 1991 , - 882 , - 973 , - 2264 , - 915 , - 766 , - 1817 , - 228 , - 3679 , - 650 , - 2661 , - 2032 , - 2603 , - 534 , - 3505 , - 3836 , - 1527 , - 418 , - 509 , - 1800 , - 451 , - 302 , - 1353 , - 3604 , - 3215 , - 186 , - 2197 , - 1568 , - 2139 , - 70 , - 3041 , - 3372 , - 1063 , - 3794 , - 45 , - 1336 , - 3827 , - 3678 , - 889 , - 3140 , - 2751 , - 3562 , - 1733 , - 1104 , - 1675 , - 3446 , - 2577 , - 2908 , - 599 , - 3330 , - 3421 , - 872 , - 3363 , - 3214 , - 425 , - 2676 , - 2287 , - 3098 , - 1269 , - 640 , - 1211 , - 2982 , - 2113 , - 2444 , - 135 , - 2866 , - 2957 , - 408 , - 2899 , - 2750 , - 3801 , - 2212 , - 1823 , - 2634 , - 805 , - 176 , - 747 , - 2518 , - 1649 , - 1980 , - 3511 , - 2402 , - 2493 , - 3784 , - 2435 , - 2286 , - 3337 , - 1748 , - 1359 , - 2170 , - 341 , - 3552 , - 283 , - 2054 , - 1185 , - 1516 , - 3047 , - 1938 , - 2029 , - 3320 , - 1971 , - 1822 , - 2873 , - 1284 , - 895 , - 1706 , - 3717 , - 3088 , - 3659 , - 1590 , - 721 , - 1052 , - 2583 , - 1474 , - 1565 , - 2856 , - 1507 , - 1358 , - 2409 , - 820 , - 431 , - 1242 , - 3253 , - 2624 , - 3195 , - 1126 , - 257 , - 588 , - 2119 , - 1010 , - 1101 , - 2392 , - 1043 , - 894 , - 1945 , - 356 , - 3807 , - 778 , - 2789 , - 2160 , - 2731 , - 662 , - 3633 , - 124 , - 1655 , - 546 , - 637 , - 1928 , - 579 , - 430 , - 1481 , - 3732 , - 3343 , - 314 , - 2325 , - 1696 , - 2267 , - 198 , - 3169 , - 3500 , - 1191 , - 82 , - 173 , - 1464 , - 115 , - 3806 , - 1017 , - 3268 , - 2879 , - 3690 , - 1861 , - 1232 , - 1803 , - 3574 , - 2705 , - 3036 , - 727 , - 3458 , - 3549 , - 1000 , - 3491 , - 3342 , - 553 , - 2804 , - 2415 , - 3226 , - 1397 , - 768 , - 1339 , - 3110 , - 2241 , - 2572 , - 263 , - 2994 , - 3085 , - 536 , - 3027 , - 2878 , - 89 , - 2340 , - 1951 , - 2762 , - 933 , - 304 , - 875 , - 2646 , - 1777 , - 2108 , - 3639 , - 2530 , - 2621 , - 72 , - 2563 , - 2414 , - 3465 , - 1876 , - 1487 , - 2298 , - 469 , - 3680 , - 411 , - 2182 , - 1313 , - 1644 , - 3175 , - 2066 , - 2157 , - 3448 , - 2099 , - 1950 , - 3001 , - 1412 , - 1023 , - 1834 , - 5 , - 3216 , - 3787 , - 1718 , - 849 , - 1180 , - 2711 , - 1602 , - 1693 , - 2984 , - 1635 , - 1486 , - 2537 , - 948 , - 559 , - 1370 , - 3381 , - 2752 , - 3323 , - 1254 , - 385 , - 716 , - 2247 , - 1138 , - 1229 , - 2520 , - 1171 , - 1022 , - 2073 , - 484 , - 95 , - 906 , - 2917 , - 2288 , - 2859 , - 790 , - 3761 , - 252 , - 1783 , - 674 , - 765 , - 2056 , - 707 , - 558 , - 1609 , - 20 , - 3471 , - 442 , - 2453 , - 1824 , - 2395 , - 326 , - 3297 , - 3628 , - 1319 , - 210 , - 301 , - 1592 , - 243 , - 94 , - 1145 , - 3396 , - 3007 , - 3818 , - 1989 , - 1360 , - 1931 , - 3702 , - 2833 , - 3164 , - 855 , - 3586 , - 3677 , - 1128 , - 3619 , - 3470 , - 681 , - 2932 , - 2543 , - 3354 , - 1525 , - 896 , - 1467 , - 3238 , - 2369 , - 2700 , - 391 , - 3122 , - 3213 , - 664 , - 3155 , - 3006 , - 217 , - 2468 , - 2079 , - 2890 , - 1061 , - 432 , - 1003 , - 2774 , - 1905 , - 2236 , - 3767 , - 2658 , - 2749 , - 200 , - 2691 , - 2542 , - 3593 , - 2004 , - 1615 , - 2426 , - 597 , - 3808 , - 539 , - 2310 , - 1441 , - 1772 , - 3303 , - 2194 , - 2285 , - 3576 , - 2227 , - 2078 , - 3129 , - 1540 , - 1151 , - 1962 , - 133 , - 3344 , - 75 , - 1846 , - 977 , - 1308 , - 2839 , - 1730 , - 1821 , - 3112 , - 1763 , - 1614 , - 2665 , - 1076 , - 687 , - 1498 , - 3509 , - 2880 , - 3451 , - 1382 , - 513 , - 844 , - 2375 , - 1266 , - 1357 , - 2648 , - 1299 , - 1150 , - 2201 , - 612 , - 223 , - 1034 , - 3045 , - 2416 , - 2987 , - 918 , - 49 , - 380 , - 1911 , - 802 , - 893 , - 2184 , - 835 , - 686 , - 1737 , - 148 , - 3599 , - 570 , - 2581 , - 1952 , - 2523 , - 454 , - 3425 , - 3756 , - 1447 , - 338 , - 429 , - 1720 , - 371 , - 222 , - 1273 , - 3524 , - 3135 , - 106 , - 2117 , - 1488 , - 2059 , - 3830 , - 2961 , - 3292 , - 983 , - 3714 , - 3805 , - 1256 , - 3747 , - 3598 , - 809 , - 3060 , - 2671 , - 3482 , - 1653 , - 1024 , - 1595 , - 3366 , - 2497 , - 2828 , - 519 , - 3250 , - 3341 , - 792 , - 3283 , - 3134 , - 345 , - 2596 , - 2207 , - 3018 , - 1189 , - 560 , - 1131 , - 2902 , - 2033 , - 2364 , - 55 , - 2786 , - 2877 , - 328 , - 2819 , - 2670 , - 3721 , - 2132 , - 1743 , - 2554 , - 725 , - 96 , - 667 , - 2438 , - 1569 , - 1900 , - 3431 , - 2322 , - 2413 , - 3704 , - 2355 , - 2206 , - 3257 , - 1668 , - 1279 , - 2090 , - 261 , - 3472 , - 203 , - 1974 , - 1105 , - 1436 , - 2967 , - 1858 , - 1949 , - 3240 , - 1891 , - 1742 , - 2793 , - 1204 , - 815 , - 1626 , - 3637 , - 3008 , - 3579 , - 1510 , - 641 , - 972 , - 2503 , - 1394 , - 1485 , - 2776 , - 1427 , - 1278 , - 2329 , - 740 , - 351 , - 1162 , - 3173 , - 2544 , - 3115 , - 1046 , - 177 , - 508 , - 2039 , - 930 , - 1021 , - 2312 , - 963 , - 814 , - 1865 , - 276 , - 3727 , - 698 , - 2709 , - 2080 , - 2651 , - 582 , - 3553 , - 44 , - 1575 , - 466 , - 557 , - 1848 , - 499 , - 350 , - 1401 , - 3652 , - 3263 , - 234 , - 2245 , - 1616 , - 2187 , - 118 , - 3089 , - 3420 , - 1111 , - 2 , - 93 , - 1384 , - 35 , - 3726 , - 937 , - 3188 , - 2799 , - 3610 , - 1781 , - 1152 , - 1723 , - 3494 , - 2625 , - 2956 , - 647 , - 3378 , - 3469 , - 920 , - 3411 , - 3262 , - 473 , - 2724 , - 2335 , - 3146 , - 1317 , - 688 , - 1259 , - 3030 , - 2161 , - 2492 , - 183 , - 2914 , - 3005 , - 456 , - 2947 , - 2798 , - 9 , - 2260 , - 1871 , - 2682 , - 853 , - 224 , - 795 , - 2566 , - 1697 , - 2028 , - 3559 , - 2450 , - 2541 , - 3832 , - 2483 , - 2334 , - 3385 , - 1796 , - 1407 , - 2218 , - 389 , - 3600 , - 331 , - 2102 , - 1233 , - 1564 , - 3095 , - 1986 , - 2077 , - 3368 , - 2019 , - 1870 , - 2921 , - 1332 , - 943 , - 1754 , - 3765 , - 3136 , - 3707 , - 1638 , - 769 , - 1100 , - 2631 , - 1522 , - 1613 , - 2904 , - 1555 , - 1406 , - 2457 , - 868 , - 479 , - 1290 , - 3301 , - 2672 , - 3243 , - 1174 , - 305 , - 636 , - 2167 , - 1058 , - 1149 , - 2440 , - 1091 , - 942 , - 1993 , - 404 , - 15 , - 826 , - 2837 , - 2208 , - 2779 , - 710 , - 3681 , - 172 , - 1703 , - 594 , - 685 , - 1976 , - 627 , - 478 , - 1529 , - 3780 , - 3391 , - 362 , - 2373 , - 1744 , - 2315 , - 246 , - 3217 , - 3548 , - 1239 , - 130 , - 221 , - 1512 , - 163 , - 14 , - 1065 , - 3316 , - 2927 , - 3738 , - 1909 , - 1280 , - 1851 , - 3622 , - 2753 , - 3084 , - 775 , - 3506 , - 3597 , - 1048 , - 3539 , - 3390 , - 601 , - 2852 , - 2463 , - 3274 , - 1445 , - 816 , - 1387 , - 3158 , - 2289 , - 2620 , - 311 , - 3042 , - 3133 , - 584 , - 3075 , - 2926 , - 137 , - 2388 , - 1999 , - 2810 , - 981 , - 352 , - 923 , - 2694 , - 1825 , - 2156 , - 3687 , - 2578 , - 2669 , - 120 , - 2611 , - 2462 , - 3513 , - 1924 , - 1535 , - 2346 , - 517 , - 3728 , - 459 , - 2230 , - 1361 , - 1692 , - 3223 , - 2114 , - 2205 , - 3496 , - 2147 , - 1998 , - 3049 , - 1460 , - 1071 , - 1882 , - 53 , - 3264 , - 3835 , - 1766 , - 897 , - 1228 , - 2759 , - 1650 , - 1741 , - 3032 , - 1683 , - 1534 , - 2585 , - 996 , - 607 , - 1418 , - 3429 , - 2800 , - 3371 , - 1302 , - 433 , - 764 , - 2295 , - 1186 , - 1277 , - 2568 , - 1219 , - 1070 , - 2121 , - 532 , - 143 , - 954 , - 2965 , - 2336 , - 2907 , - 838 , - 3809 , - 300 , - 1831 , - 722 , - 813 , - 2104 , - 755 , - 606 , - 1657 , - 68 , - 3519 , - 490 , - 2501 , - 1872 , - 2443 , - 374 , - 3345 , - 3676 , - 1367 , - 258 , - 349 , - 1640 , - 291 , - 142 , - 1193 , - 3444 , - 3055 , - 26 , - 2037 , - 1408 , - 1979 , - 3750 , - 2881 , - 3212 , - 903 , - 3634 , - 3725 , - 1176 , - 3667 , - 3518 , - 729 , - 2980 , - 2591 , - 3402 , - 1573 , - 944 , - 1515 , - 3286 , - 2417 , - 2748 , - 439 , - 3170 , - 3261 , - 712 , - 3203 , - 3054 , - 265 , - 2516 , - 2127 , - 2938 , - 1109 , - 480 , - 1051 , - 2822 , - 1953 , - 2284 , - 3815 , - 2706 , - 2797 , - 248 , - 2739 , - 2590 , - 3641 , - 2052 , - 1663 , - 2474 , - 645 , - 16 , - 587 , - 2358 , - 1489 , - 1820 , - 3351 , - 2242 , - 2333 , - 3624 , - 2275 , - 2126 , - 3177 , - 1588 , - 1199 , - 2010 , - 181 , - 3392 , - 123 , - 1894 , - 1025 , - 1356 , - 2887 , - 1778 , - 1869 , - 3160 , - 1811 , - 1662 , - 2713 , - 1124 , - 735 , - 1546 , - 3557 , - 2928 , - 3499 , - 1430 , - 561 , - 892 , - 2423 , - 1314 , - 1405 , - 2696 , - 1347 , - 1198 , - 2249 , - 660 , - 271 , - 1082 , - 3093 , - 2464 , - 3035 , - 966 , - 97 , - 428 , - 1959 , - 850 , - 941 , - 2232 , - 883 , - 734 , - 1785 , - 196 , - 3647 , - 618 , - 2629 , - 2000 , - 2571 , - 502 , - 3473 , - 3804 , - 1495 , - 386 , - 477 , - 1768 , - 419 , - 270 , - 1321 , - 3572 , - 3183 , - 154 , - 2165 , - 1536 , - 2107 , - 38 , - 3009 , - 3340 , - 1031 , - 3762 , - 13 , - 1304 , - 3795 , - 3646 , - 857 , - 3108 , - 2719 , - 3530 , - 1701 , - 1072 , - 1643 , - 3414 , - 2545 , - 2876 , - 567 , - 3298 , - 3389 , - 840 , - 3331 , - 3182 , - 393 , - 2644 , - 2255 , - 3066 , - 1237 , - 608 , - 1179 , - 2950 , - 2081 , - 2412 , - 103 , - 2834 , - 2925 , - 376 , - 2867 , - 2718 , - 3769 , - 2180 , - 1791 , - 2602 , - 773 , - 144 , - 715 , - 2486 , - 1617 , - 1948 , - 3479 , - 2370 , - 2461 , - 3752 , - 2403 , - 2254 , - 3305 , - 1716 , - 1327 , - 2138 , - 309 , - 3520 , - 251 , - 2022 , - 1153 , - 1484 , - 3015 , - 1906 , - 1997 , - 3288 , - 1939 , - 1790 , - 2841 , - 1252 , - 863 , - 1674 , - 3685 , - 3056 , - 3627 , - 1558 , - 689 , - 1020 , - 2551 , - 1442 , - 1533 , - 2824 , - 1475 , - 1326 , - 2377 , - 788 , - 399 , - 1210 , - 3221 , - 2592 , - 3163 , - 1094 , - 225 , - 556 , - 2087 , - 978 , - 1069 , - 2360 , - 1011 , - 862 , - 1913 , - 324 , - 3775 , - 746 , - 2757 , - 2128 , - 2699 , - 630 , - 3601 , - 92 , - 1623 , - 514 , - 605 , - 1896 , - 547 , - 398 , - 1449 , - 3700 , - 3311 , - 282 , - 2293 , - 1664 , - 2235 , - 166 , - 3137 , - 3468 , - 1159 , - 50 , - 141 , - 1432 , - 83 , - 3774 , - 985 , - 3236 , - 2847 , - 3658 , - 1829 , - 1200 , - 1771 , - 3542 , - 2673 , - 3004 , - 695 , - 3426 , - 3517 , - 968 , - 3459 , - 3310 , - 521 , - 2772 , - 2383 , - 3194 , - 1365 , - 736 , - 1307 , - 3078 , - 2209 , - 2540 , - 231 , - 2962 , - 3053 , - 504 , - 2995 , - 2846 , - 57 , - 2308 , - 1919 , - 2730 , - 901 , - 272 , - 843 , - 2614 , - 1745 , - 2076 , - 3607 , - 2498 , - 2589 , - 40 , - 2531 , - 2382 , - 3433 , - 1844 , - 1455 , - 2266 , - 437 , - 3648 , - 379 , - 2150 , - 1281 , - 1612 , - 3143 , - 2034 , - 2125 , - 3416 , - 2067 , - 1918 , - 2969 , - 1380 , - 991 , - 1802 , - 3813 , - 3184 , - 3755 , - 1686 , - 817 , - 1148 , - 2679 , - 1570 , - 1661 , - 2952 , - 1603 , - 1454 , - 2505 , - 916 , - 527 , - 1338 , - 3349 , - 2720 , - 3291 , - 1222 , - 353 , - 684 , - 2215 , - 1106 , - 1197 , - 2488 , - 1139 , - 990 , - 2041 , - 452 , - 63 , - 874 , - 2885 , - 2256 , - 2827 , - 758 , - 3729 , - 220 , - 1751 , - 642 , - 733 , - 2024 , - 675 , - 526 , - 1577 , - 3828 , - 3439 , - 410 , - 2421 , - 1792 , - 2363 , - 294 , - 3265 , - 3596 , - 1287 , - 178 , - 269 , - 1560 , - 211 , - 62 , - 1113 , - 3364 , - 2975 , - 3786 , - 1957 , - 1328 , - 1899 , - 3670 , - 2801 , - 3132 , - 823 , - 3554 , - 3645 , - 1096 , - 3587 , - 3438 , - 649 , - 2900 , - 2511 , - 3322 , - 1493 , - 864 , - 1435 , - 3206 , - 2337 , - 2668 , - 359 , - 3090 , - 3181 , - 632 , - 3123 , - 2974 , - 185 , - 2436 , - 2047 , - 2858 , - 1029 , - 400 , - 971 , - 2742 , - 1873 , - 2204 , - 3735 , - 2626 , - 2717 , - 168 , - 2659 , - 2510 , - 3561 , - 1972 , - 1583 , - 2394 , - 565 , - 3776 , - 507 , - 2278 , - 1409 , - 1740 , - 3271 , - 2162 , - 2253 , - 3544 , - 2195 , - 2046 , - 3097 , - 1508 , - 1119 , - 1930 , - 101 , - 3312 , - 43 , - 1814 , - 945 , - 1276 , - 2807 , - 1698 , - 1789 , - 3080 , - 1731 , - 1582 , - 2633 , - 1044 , - 655 , - 1466 , - 3477 , - 2848 , - 3419 , - 1350 , - 481 , - 812 , - 2343 , - 1234 , - 1325 , - 2616 , - 1267 , - 1118 , - 2169 , - 580 , - 191 , - 1002 , - 3013 , - 2384 , - 2955 , - 886 , - 17 , - 348 , - 1879 , - 770 , - 861 , - 2152 , - 803 , - 654 , - 1705 , - 116 , - 3567 , - 538 , - 2549 , - 1920 , - 2491 , - 422 , - 3393 , - 3724 , - 1415 , - 306 , - 397 , - 1688 , - 339 , - 190 , - 1241 , - 3492 , - 3103 , - 74 , - 2085 , - 1456 , - 2027 , - 3798 , - 2929 , - 3260 , - 951 , - 3682 , - 3773 , - 1224 , - 3715 , - 3566 , - 777 , - 3028 , - 2639 , - 3450 , - 1621 , - 992 , - 1563 , - 3334 , - 2465 , - 2796 , - 487 , - 3218 , - 3309 , - 760 , - 3251 , - 3102 , - 313 , - 2564 , - 2175 , - 2986 , - 1157 , - 528 , - 1099 , - 2870 , - 2001 , - 2332 , - 23 , - 2754 , - 2845 , - 296 , - 2787 , - 2638 , - 3689 , - 2100 , - 1711 , - 2522 , - 693 , - 64 , - 635 , - 2406 , - 1537 , - 1868 , - 3399 , - 2290 , - 2381 , - 3672 , - 2323 , - 2174 , - 3225 , - 1636 , - 1247 , - 2058 , - 229 , - 3440 , - 171 , - 1942 , - 1073 , - 1404 , - 2935 , - 1826 , - 1917 , - 3208 , - 1859 , - 1710 , - 2761 , - 1172 , - 783 , - 1594 , - 3605 , - 2976 , - 3547 , - 1478 , - 609 , - 940 , - 2471 , - 1362 , - 1453 , - 2744 , - 1395 , - 1246 , - 2297 , - 708 , - 319 , - 1130 , - 3141 , - 2512 , - 3083 , - 1014 , - 145 , - 476 , - 2007 , - 898 , - 989 , - 2280 , - 931 , - 782 , - 1833 , - 244 , - 3695 , - 666 , - 2677 , - 2048 , - 2619 , - 550 , - 3521 , - 12 , - 1543 , - 434 , - 525 , - 1816 , - 467 , - 318 , - 1369 , - 3620 , - 3231 , - 202 , - 2213 , - 1584 , - 2155 , - 86 , - 3057 , - 3388 , - 1079 , - 3810 , - 61 , - 1352 , - 3 , - 3694 , - 905 , - 3156 , - 2767 , - 3578 , - 1749 , - 1120 , - 1691 , - 3462 , - 2593 , - 2924 , - 615 , - 3346 , - 3437 , - 888 , - 3379 , - 3230 , - 441 , - 2692 , - 2303 , - 3114 , - 1285 , - 656 , - 1227 , - 2998 , - 2129 , - 2460 , - 151 , - 2882 , - 2973 , - 424 , - 2915 , - 2766 , - 3817 , - 2228 , - 1839 , - 2650 , - 821 , - 192 , - 763 , - 2534 , - 1665 , - 1996 , - 3527 , - 2418 , - 2509 , - 3800 , - 2451 , - 2302 , - 3353 , - 1764 , - 1375 , - 2186 , - 357 , - 3568 , - 299 , - 2070 , - 1201 , - 1532 , - 3063 , - 1954 , - 2045 , - 3336 , - 1987 , - 1838 , - 2889 , - 1300 , - 911 , - 1722 , - 3733 , - 3104 , - 3675 , - 1606 , - 737 , - 1068 , - 2599 , - 1490 , - 1581 , - 2872 , - 1523 , - 1374 , - 2425 , - 836 , - 447 , - 1258 , - 3269 , - 2640 , - 3211 , - 1142 , - 273 , - 604 , - 2135 , - 1026 , - 1117 , - 2408 , - 1059 , - 910 , - 1961 , - 372 , - 3823 , - 794 , - 2805 , - 2176 , - 2747 , - 678 , - 3649 , - 140 , - 1671 , - 562 , - 653 , - 1944 , - 595 , - 446 , - 1497 , - 3748 , - 3359 , - 330 , - 2341 , - 1712 , - 2283 , - 214 , - 3185 , - 3516 , - 1207 , - 98 , - 189 , - 1480 , - 131 , - 3822 , - 1033 , - 3284 , - 2895 , - 3706 , - 1877 , - 1248 , - 1819 , - 3590 , - 2721 , - 3052 , - 743 , - 3474 , - 3565 , - 1016 , - 3507 , - 3358 , - 569 , - 2820 , - 2431 , - 3242 , - 1413 , - 784 , - 1355 , - 3126 , - 2257 , - 2588 , - 279 , - 3010 , - 3101 , - 552 , - 3043 , - 2894 , - 105 , - 2356 , - 1967 , - 2778 , - 949 , - 320 , - 891 , - 2662 , - 1793 , - 2124 , - 3655 , - 2546 , - 2637 , - 88 , - 2579 , - 2430 , - 3481 , - 1892 , - 1503 , - 2314 , - 485 , - 3696 , - 427 , - 2198 , - 1329 , - 1660 , - 3191 , - 2082 , - 2173 , - 3464 , - 2115 , - 1966 , - 3017 , - 1428 , - 1039 , - 1850 , - 21 , - 3232 , - 3803 , - 1734 , - 865 , - 1196 , - 2727 , - 1618 , - 1709 , - 3000 , - 1651 , - 1502 , - 2553 , - 964 , - 575 , - 1386 , - 3397 , - 2768 , - 3339 , - 1270 , - 401 , - 732 , - 2263 , - 1154 , - 1245 , - 2536 , - 1187 , - 1038 , - 2089 , - 500 , - 111 , - 922 , - 2933 , - 2304 , - 2875 , - 806 , - 3777 , - 268 , - 1799 , - 690 , - 781 , - 2072 , - 723 , - 574 , - 1625 , - 36 , - 3487 , - 458 , - 2469 , - 1840 , - 2411 , - 342 , - 3313 , - 3644 , - 1335 , - 226 , - 317 , - 1608 , - 259 , - 110 , - 1161 , - 3412 , - 3023 , - 3834 , - 2005 , - 1376 , - 1947 , - 3718 , - 2849 , - 3180 , - 871 , - 3602 , - 3693 , - 1144 , - 3635 , - 3486 , - 697 , - 2948 , - 2559 , - 3370 , - 1541 , - 912 , - 1483 , - 3254 , - 2385 , - 2716 , - 407 , - 3138 , - 3229 , - 680 , - 3171 , - 3022 , - 233 , - 2484 , - 2095 , - 2906 , - 1077 , - 448 , - 1019 , - 2790 , - 1921 , - 2252 , - 3783 , - 2674 , - 2765 , - 216 , - 2707 , - 2558 , - 3609 , - 2020 , - 1631 , - 2442 , - 613 , - 3824 , - 555 , - 2326 , - 1457 , - 1788 , - 3319 , - 2210 , - 2301 , - 3592 , - 2243 , - 2094 , - 3145 , - 1556 , - 1167 , - 1978 , - 149 , - 3360 , - 91 , - 1862 , - 993 , - 1324 , - 2855 , - 1746 , - 1837 , - 3128 , - 1779 , - 1630 , - 2681 , - 1092 , - 703 , - 1514 , - 3525 , - 2896 , - 3467 , - 1398 , - 529 , - 860 , - 2391 , - 1282 , - 1373 , - 2664 , - 1315 , - 1166 , - 2217 , - 628 , - 239 , - 1050 , - 3061 , - 2432 , - 3003 , - 934 , - 65 , - 396 , - 1927 , - 818 , - 909 , - 2200 , - 851 , - 702 , - 1753 , - 164 , - 3615 , - 586 , - 2597 , - 1968 , - 2539 , - 470 , - 3441 , - 3772 , - 1463 , - 354 , - 445 , - 1736 , - 387 , - 238 , - 1289 , - 3540 , - 3151 , - 122 , - 2133 , - 1504 , - 2075 , - 6 , - 2977 , - 3308 , - 999 , - 3730 , - 3821 , - 1272 , - 3763 , - 3614 , - 825 , - 3076 , - 2687 , - 3498 , - 1669 , - 1040 , - 1611 , - 3382 , - 2513 , - 2844 , - 535 , - 3266 , - 3357 , - 808 , - 3299 , - 3150 , - 361 , - 2612 , - 2223 , - 3034 , - 1205 , - 576 , - 1147 , - 2918 , - 2049 , - 2380 , - 71 , - 2802 , - 2893 , - 344 , - 2835 , - 2686 , - 3737 , - 2148 , - 1759 , - 2570 , - 741 , - 112 , - 683 , - 2454 , - 1585 , - 1916 , - 3447 , - 2338 , - 2429 , - 3720 , - 2371 , - 2222 , - 3273 , - 1684 , - 1295 , - 2106 , - 277 , - 3488 , - 219 , - 1990 , - 1121 , - 1452 , - 2983 , - 1874 , - 1965 , - 3256 , - 1907 , - 1758 , - 2809 , - 1220 , - 831 , - 1642 , - 3653 , - 3024 , - 3595 , - 1526 , - 657 , - 988 , - 2519 , - 1410 , - 1501 , - 2792 , - 1443 , - 1294 , - 2345 , - 756 , - 367 , - 1178 , - 3189 , - 2560 , - 3131 , - 1062 , - 193 , - 524 , - 2055 , - 946 , - 1037 , - 2328 , - 979 , - 830 , - 1881 , - 292 , - 3743 , - 714 , - 2725 , - 2096 , - 2667 , - 598 , - 3569 , - 60 , - 1591 , - 482 , - 573 , - 1864 , - 515 , - 366 , - 1417 , - 3668 , - 3279 , - 250 , - 2261 , - 1632 , - 2203 , - 134 , - 3105 , - 3436 , - 1127 , - 18 , - 109 , - 1400 , - 51 , - 3742 , - 953 , - 3204 , - 2815 , - 3626 , - 1797 , - 1168 , - 1739 , - 3510 , - 2641 , - 2972 , - 663 , - 3394 , - 3485 , - 936 , - 3427 , - 3278 , - 489 , - 2740 , - 2351 , - 3162 , - 1333 , - 704 , - 1275 , - 3046 , - 2177 , - 2508 , - 199 , - 2930 , - 3021 , - 472 , - 2963 , - 2814 , - 25 , - 2276 , - 1887 , - 2698 , - 869 , - 240 , - 811 , - 2582 , - 1713 , - 2044 , - 3575 , - 2466 , - 2557 , - 8 , - 2499 , - 2350 , - 3401 , - 1812 , - 1423 , - 2234 , - 405 , - 3616 , - 347 , - 2118 , - 1249 , - 1580 , - 3111 , - 2002 , - 2093 , - 3384 , - 2035 , - 1886 , - 2937 , - 1348 , - 959 , - 1770 , - 3781 , - 3152 , - 3723 , - 1654 , - 785 , - 1116 , - 2647 , - 1538 , - 1629 , - 2920 , - 1571 , - 1422 , - 2473 , - 884 , - 495 , - 1306 , - 3317 , - 2688 , - 3259 , - 1190 , - 321 , - 652 , - 2183 , - 1074 , - 1165 , - 2456 , - 1107 , - 958 , - 2009 , - 420 , - 31 , - 842 , - 2853 , - 2224 , - 2795 , - 726 , - 3697 , - 188 , - 1719 , - 610 , - 701 , - 1992 , - 643 , - 494 , - 1545 , - 3796 , - 3407 , - 378 , - 2389 , - 1760 , - 2331 , - 262 , - 3233 , - 3564 , - 1255 , - 146 , - 237 , - 1528 , - 179 , - 30 , - 1081 , - 3332 , - 2943 , - 3754 , - 1925 , - 1296 , - 1867 , - 3638 , - 2769 , - 3100 , - 791 , - 3522 , - 3613 , - 1064 , - 3555 , - 3406 , - 617 , - 2868 , - 2479 , - 3290 , - 1461 , - 832 , - 1403 , - 3174 , - 2305 , - 2636 , - 327 , - 3058 , - 3149 , - 600 , - 3091 , - 2942 , - 153 , - 2404 , - 2015 , - 2826 , - 997 , - 368 , - 939 , - 2710 , - 1841 , - 2172 , - 3703 , - 2594 , - 2685 , - 136 , - 2627 , - 2478 , - 3529 , - 1940 , - 1551 , - 2362 , - 533 , - 3744 , - 475 , - 2246 , - 1377 , - 1708 , - 3239 , - 2130 , - 2221 , - 3512 , - 2163 , - 2014 , - 3065 , - 1476 , - 1087 , - 1898 , - 69 , - 3280 , - 11 , - 1782 , - 913 , - 1244 , - 2775 , - 1666 , - 1757 , - 3048 , - 1699 , - 1550 , - 2601 , - 1012 , - 623 , - 1434 , - 3445 , - 2816 , - 3387 , - 1318 , - 449 , - 780 , - 2311 , - 1202 , - 1293 , - 2584 , - 1235 , - 1086 , - 2137 , - 548 , - 159 , - 970 , - 2981 , - 2352 , - 2923 , - 854 , - 3825 , - 316 , - 1847 , - 738 , - 829 , - 2120 , - 771 , - 622 , - 1673 , - 84 , - 3535 , - 506 , - 2517 , - 1888 , - 2459 , - 390 , - 3361 , - 3692 , - 1383 , - 274 , - 365 , - 1656 , - 307 , - 158 , - 1209 , - 3460 , - 3071 , - 42 , - 2053 , - 1424 , - 1995 , - 3766 , - 2897 , - 3228 , - 919 , - 3650 , - 3741 , - 1192 , - 3683 , - 3534 , - 745 , - 2996 , - 2607 , - 3418 , - 1589 , - 960 , - 1531 , - 3302 , - 2433 , - 2764 , - 455 , - 3186 , - 3277 , - 728 , - 3219 , - 3070 , - 281 , - 2532 , - 2143 , - 2954 , - 1125 , - 496 , - 1067 , - 2838 , - 1969 , - 2300 , - 3831 , - 2722 , - 2813 , - 264 , - 2755 , - 2606 , - 3657 , - 2068 , - 1679 , - 2490 , - 661 , - 32 , - 603 , - 2374 , - 1505 , - 1836 , - 3367 , - 2258 , - 2349 , - 3640 , - 2291 , - 2142 , - 3193 , - 1604 , - 1215 , - 2026 , - 197 , - 3408 , - 139 , - 1910 , - 1041 , - 1372 , - 2903 , - 1794 , - 1885 , - 3176 , - 1827 , - 1678 , - 2729 , - 1140 , - 751 , - 1562 , - 3573 , - 2944 , - 3515 , - 1446 , - 577 , - 908 , - 2439 , - 1330 , - 1421 , - 2712 , - 1363 , - 1214 , - 2265 , - 676 , - 287 , - 1098 , - 3109 , - 2480 , - 3051 , - 982 , - 113 , - 444 , - 1975 , - 866 , - 957 , - 2248 , - 899 , - 750 , - 1801 , - 212 , - 3663 , - 634 , - 2645 , - 2016 , - 2587 , - 518 , - 3489 , - 3820 , - 1511 , - 402 , - 493 , - 1784 , - 435 , - 286 , - 1337 , - 3588 , - 3199 , - 170 , - 2181 , - 1552 , - 2123 , - 54 , - 3025 , - 3356 , - 1047 , - 3778 , - 29 , - 1320 , - 3811 , - 3662 , - 873 , - 3124 , - 2735 , - 3546 , - 1717 , - 1088 , - 1659 , - 3430 , - 2561 , - 2892 , - 583 , - 3314 , - 3405 , - 856 , - 3347 , - 3198 , - 409 , - 2660 , - 2271 , - 3082 , - 1253 , - 624 , - 1195 , - 2966 , - 2097 , - 2428 , - 119 , - 2850 , - 2941 , - 392 , - 2883 , - 2734 , - 3785 , - 2196 , - 1807 , - 2618 , - 789 , - 160 , - 731 , - 2502 , - 1633 , - 1964 , - 3495 , - 2386 , - 2477 , - 3768 , - 2419 , - 2270 , - 3321 , - 1732 , - 1343 , - 2154 , - 325 , - 3536 , - 267 , - 2038 , - 1169 , - 1500 , - 3031 , - 1922 , - 2013 , - 3304 , - 1955 , - 1806 , - 2857 , - 1268 , - 879 , - 1690 , - 3701 , - 3072 , - 3643 , - 1574 , - 705 , - 1036 , - 2567 , - 1458 , - 1549 , - 2840 , - 1491 , - 1342 , - 2393 , - 804 , - 415 , - 1226 , - 3237 , - 2608 , - 3179 , - 1110 , - 241 , - 572 , - 2103 , - 994 , - 1085 , - 2376 , - 1027 , - 878 , - 1929 , - 340 , - 3791 , - 762 , - 2773 , - 2144 , - 2715 , - 646 , - 3617 , - 108 , - 1639 , - 530 , - 621 , - 1912 , - 563 , - 414 , - 1465 , - 3716 , - 3327 , - 298 , - 2309 , - 1680 , - 2251 , - 182 , - 3153 , - 3484 , - 1175 , - 66 , - 157 , - 1448 , - 99 , - 3790 , - 1001 , - 3252 , - 2863 , - 3674 , - 1845 , - 1216 , - 1787 , - 3558 , - 2689 , - 3020 , - 711 , - 3442 , - 3533 , - 984 , - 3475 , - 3326 , - 537 , - 2788 , - 2399 , - 3210 , - 1381 , - 752 , - 1323 , - 3094 , - 2225 , - 2556 , - 247 , - 2978 , - 3069 , - 520 , - 3011 , - 2862 , - 73 , - 2324 , - 1935 , - 2746 , - 917 , - 288 , - 859 , - 2630 , - 1761 , - 2092 , - 3623 , - 2514 , - 2605 , - 56 , - 2547 , - 2398 , - 3449 , - 1860 , - 1471 , - 2282 , - 453 , - 3664 , - 395 , - 2166 , - 1297 , - 1628 , - 3159 , - 2050 , - 2141 , - 3432 , - 2083 , - 1934 , - 2985 , - 1396 , - 1007 , - 1818 , - 3829 , - 3200 , - 3771 , - 1702 , - 833 , - 1164 , - 2695 , - 1586 , - 1677 , - 2968 , - 1619 , - 1470 , - 2521 , - 932 , - 543 , - 1354 , - 3365 , - 2736 , - 3307 , - 1238 , - 369 , - 700 , - 2231 , - 1122 , - 1213 , - 2504 , - 1155 , - 1006 , - 2057 , - 468 , - 79 , - 890 , - 2901 , - 2272 , - 2843 , - 774 , - 3745 , - 236 , - 1767 , - 658 , - 749 , - 2040 , - 691 , - 542 , - 1593 , - 4 , - 3455 , - 426 , - 2437 , - 1808 , - 2379 , - 310 , - 3281 , - 3612 , - 1303 , - 194 , - 285 , - 1576 , - 227 , - 78 , - 1129 , - 3380 , - 2991 , - 3802 , - 1973 , - 1344 , - 1915 , - 3686 , - 2817 , - 3148 , - 839 , - 3570 , - 3661 , - 1112 , - 3603 , - 3454 , - 665 , - 2916 , - 2527 , - 3338 , - 1509 , - 880 , - 1451 , - 3222 , - 2353 , - 2684 , - 375 , - 3106 , - 3197 , - 648 , - 3139 , - 2990 , - 201 , - 2452 , - 2063 , - 2874 , - 1045 , - 416 , - 987 , - 2758 , - 1889 , - 2220 , - 3751 , - 2642 , - 2733 , - 184 , - 2675 , - 2526 , - 3577 , - 1988 , - 1599 , - 2410 , - 581 , - 3792 , - 523 , - 2294 , - 1425 , - 1756 , - 3287 , - 2178 , - 2269 , - 3560 , - 2211 , - 2062 , - 3113 , - 1524 , - 1135 , - 1946 , - 117 , - 3328 , - 59 , - 1830 , - 961 , - 1292 , - 2823 , - 1714 , - 1805 , - 3096 , - 1747 , - 1598 , - 2649 , - 1060 , - 671 , - 1482 , - 3493 , - 2864 , - 3435 , - 1366 , - 497 , - 828 , - 2359 , - 1250 , - 1341 , - 2632 , - 1283 , - 1134 , - 2185 , - 596 , - 207 , - 1018 , - 3029 , - 2400 , - 2971 , - 902 , - 33 , - 364 , - 1895 , - 786 , - 877 , - 2168 , - 819 , - 670 , - 1721 , - 132 , - 3583 , - 554 , - 2565 , - 1936 , - 2507 , - 438 , - 3409 , - 3740 , - 1431 , - 322 , - 413 , - 1704 , - 355 , - 206 , - 1257 , - 3508 , - 3119 , - 90 , - 2101 , - 1472 , - 2043 , - 3814 , - 2945 , - 3276 , - 967 , - 3698 , - 3789 , - 1240 , - 3731 , - 3582 , - 793 , - 3044 , - 2655 , - 3466 , - 1637 , - 1008 , - 1579 , - 3350 , - 2481 , - 2812 , - 503 , - 3234 , - 3325 , - 776 , - 3267 , - 3118 , - 329 , - 2580 , - 2191 , - 3002 , - 1173 , - 544 , - 1115 , - 2886 , - 2017 , - 2348 , - 39 , - 2770 , - 2861 , - 312 , - 2803 , - 2654 , - 3705 , - 2116 , - 1727 , - 2538 , - 709 , - 80 , - 651 , - 2422 , - 1553 , - 1884 , - 3415 , - 2306 , - 2397 , - 3688 , - 2339 , - 2190 , - 3241 , - 1652 , - 1263 , - 2074 , - 245 , - 3456 , - 187 , - 1958 , - 1089 , - 1420 , - 2951 , - 1842 , - 1933 , - 3224 , - 1875 , - 1726 , - 2777 , - 1188 , - 799 , - 1610 , - 3621 , - 2992 , - 3563 , - 1494 , - 625 , - 956 , - 2487 , - 1378 , - 1469 , - 2760 , - 1411 , - 1262 , - 2313 , - 724 , - 335 , - 1146 , - 3157 , - 2528 , - 3099 , - 1030 , - 161 , - 492 , - 2023 , - 914 , - 1005 , - 2296 , - 947 , - 798 , - 1849 , - 260 , - 3711 , - 682 , - 2693 , - 2064 , - 2635 , - 566 , - 3537 , - 28 , - 1559 , - 450 , - 541 , - 1832 , - 483 , - 334 , - 1385 , - 3636 , - 3247 , - 218 , - 2229 , - 1600 , - 2171 , - 102 , - 3073 , - 3404 , - 1095 , - 3826 , - 77 , - 1368 , - 19 , - 3710 , - 921 , - 3172 , - 2783 , - 3594 , - 1765 , - 1136 , - 1707 , - 3478 , - 2609 , - 2940 , - 631 , - 3362 , - 3453 , - 904 , - 3395 , - 3246 , - 457 , - 2708 , - 2319 , - 3130 , - 1301 , - 672 , - 1243 , - 3014 , - 2145 , - 2476 , - 167 , - 2898 , - 2989 , - 440 , - 2931 , - 2782 , - 3833 , - 2244 , - 1855 , - 2666 , - 837 , - 208 , - 779 , - 2550 , - 1681 , - 2012 , - 3543 , - 2434 , - 2525 , - 3816 , - 2467 , - 2318 , - 3369 , - 1780 , - 1391 , - 2202 , - 373 , - 3584 , - 315 , - 2086 , - 1217 , - 1548 , - 3079 , - 1970 , - 2061 , - 3352 , - 2003 , - 1854 , - 2905 , - 1316 , - 927 , - 1738 , - 3749 , - 3120 , - 3691 , - 1622 , - 753 , - 1084 , - 2615 , - 1506 , - 1597 , - 2888 , - 1539 , - 1390 , - 2441 , - 852 , - 463 , - 1274 , - 3285 , - 2656 , - 3227 , - 1158 , - 289 , - 620 , - 2151 , - 1042 , - 1133 , - 2424 , - 1075 , - 926 , - 1977 , - 388 , - 3839 , - 810 , - 2821 , - 2192 , - 2763 , - 694 , - 3665 , - 156 , - 1687 , - 578 , - 669 , - 1960 , - 611 , - 462 , - 1513 , - 3764 , - 3375 , - 346 , - 2357 , - 1728 , - 2299 , - 230 , - 3201 , - 3532 , - 1223 , - 114 , - 205 , - 1496 , - 147 , - 3838 , - 1049 , - 3300 , - 2911 , - 3722 , - 1893 , - 1264 , - 1835 , - 3606 , - 2737 , - 3068 , - 759 , - 3490 , - 3581 , - 1032 , - 3523 , - 3374 , - 585 , - 2836 , - 2447 , - 3258 , - 1429 , - 800 , - 1371 , - 3142 , - 2273 , - 2604 , - 295 , - 3026 , - 3117 , - 568 , - 3059 , - 2910 , - 121 , - 2372 , - 1983 , - 2794 , - 965 , - 336 , - 907 , - 2678 , - 1809 , - 2140 , - 3671 , - 2562 , - 2653 , - 104 , - 2595 , - 2446 , - 3497 , - 1908 , - 1519 , - 2330 , - 501 , - 3712 , - 443 , - 2214 , - 1345 , - 1676 , - 3207 , - 2098 , - 2189 , - 3480 , - 2131 , - 1982 , - 3033 , - 1444 , - 1055 , - 1866 , - 37 , - 3248 , - 3819 , - 1750 , - 881 , - 1212 , - 2743 , - 1634 , - 1725 , - 3016 , - 1667 , - 1518 , - 2569 , - 980 , - 591 , - 1402 , - 3413 , - 2784 , - 3355 , - 1286 , - 417 , - 748 , - 2279 , - 1170 , - 1261 , - 2552 , - 1203 , - 1054 , - 2105 , - 516 , - 127 , - 938 , - 2949 , - 2320 , - 2891 , - 822 , - 3793 , - 284 , - 1815 , - 706 , - 797 , - 2088 , - 739 , - 590 , - 1641 , - 52 , - 3503 , - 474 , - 2485 , - 1856 , - 2427 , - 358 , - 3329 , - 3660 , - 1351 , - 242 , - 333 , - 1624 , - 275 , - 126 , - 1177 , - 3428 , - 3039 , - 10 , - 2021 , - 1392 , - 1963 , - 3734 , - 2865 , - 3196 , - 887 , - 3618 , - 3709 , - 1160 , - 3651 , - 3502 , - 713 , - 2964 , - 2575 , - 3386 , - 1557 , - 928 , - 1499 , - 3270 , - 2401 , - 2732 , - 423 , - 3154 , - 3245 , - 696 , - 3187 , - 3038 , - 249 , - 2500 , - 2111 , - 2922 , - 1093 , - 464 , - 1035 , - 2806 , - 1937 , - 2268 , - 3799 , - 2690 , - 2781 , - 232 , - 2723 , - 2574 , - 3625 , - 2036 , - 1647 , - 2458 , - 629 , - 0 , - 935 , - 406 , - 2317 , - 2764 , - 1747 , - 3170 , - 3129 , - 1624 , - 2559 , - 2030 , - 37 , - 484 , - 3371 , - 890 , - 849 , - 3248 , - 279 , - 3654 , - 1661 , - 2108 , - 1091 , - 2514 , - 2473 , - 968 , - 1903 , - 1374 , - 3285 , - 3732 , - 2715 , - 234 , - 193 , - 2592 , - 3527 , - 2998 , - 1005 , - 1452 , - 435 , - 1858 , - 1817 , - 312 , - 1247 , - 718 , - 2629 , - 3076 , - 2059 , - 3482 , - 3441 , - 1936 , - 2871 , - 2342 , - 349 , - 796 , - 3683 , - 1202 , - 1161 , - 3560 , - 591 , - 62 , - 1973 , - 2420 , - 1403 , - 2826 , - 2785 , - 1280 , - 2215 , - 1686 , - 3597 , - 140 , - 3027 , - 546 , - 505 , - 2904 , - 3839 , - 3310 , - 1317 , - 1764 , - 747 , - 2170 , - 2129 , - 624 , - 1559 , - 1030 , - 2941 , - 3388 , - 2371 , - 3794 , - 3753 , - 2248 , - 3183 , - 2654 , - 661 , - 1108 , - 91 , - 1514 , - 1473 , - 3872 , - 903 , - 374 , - 2285 , - 2732 , - 1715 , - 3138 , - 3097 , - 1592 , - 2527 , - 1998 , - 5 , - 452 , - 3339 , - 858 , - 817 , - 3216 , - 247 , - 3622 , - 1629 , - 2076 , - 1059 , - 2482 , - 2441 , - 936 , - 1871 , - 1342 , - 3253 , - 3700 , - 2683 , - 202 , - 161 , - 2560 , - 3495 , - 2966 , - 973 , - 1420 , - 403 , - 1826 , - 1785 , - 280 , - 1215 , - 686 , - 2597 , - 3044 , - 2027 , - 3450 , - 3409 , - 1904 , - 2839 , - 2310 , - 317 , - 764 , - 3651 , - 1170 , - 1129 , - 3528 , - 559 , - 30 , - 1941 , - 2388 , - 1371 , - 2794 , - 2753 , - 1248 , - 2183 , - 1654 , - 3565 , - 108 , - 2995 , - 514 , - 473 , - 2872 , - 3807 , - 3278 , - 1285 , - 1732 , - 715 , - 2138 , - 2097 , - 592 , - 1527 , - 998 , - 2909 , - 3356 , - 2339 , - 3762 , - 3721 , - 2216 , - 3151 , - 2622 , - 629 , - 1076 , - 59 , - 1482 , - 1441 , - 3840 , - 871 , - 342 , - 2253 , - 2700 , - 1683 , - 3106 , - 3065 , - 1560 , - 2495 , - 1966 , - 3877 , - 420 , - 3307 , - 826 , - 785 , - 3184 , - 215 , - 3590 , - 1597 , - 2044 , - 1027 , - 2450 , - 2409 , - 904 , - 1839 , - 1310 , - 3221 , - 3668 , - 2651 , - 170 , - 129 , - 2528 , - 3463 , - 2934 , - 941 , - 1388 , - 371 , - 1794 , - 1753 , - 248 , - 1183 , - 654 , - 2565 , - 3012 , - 1995 , - 3418 , - 3377 , - 1872 , - 2807 , - 2278 , - 285 , - 732 , - 3619 , - 1138 , - 1097 , - 3496 , - 527 , - 3902 , - 1909 , - 2356 , - 1339 , - 2762 , - 2721 , - 1216 , - 2151 , - 1622 , - 3533 , - 76 , - 2963 , - 482 , - 441 , - 2840 , - 3775 , - 3246 , - 1253 , - 1700 , - 683 , - 2106 , - 2065 , - 560 , - 1495 , - 966 , - 2877 , - 3324 , - 2307 , - 3730 , - 3689 , - 2184 , - 3119 , - 2590 , - 597 , - 1044 , - 27 , - 1450 , - 1409 , - 3808 , - 839 , - 310 , - 2221 , - 2668 , - 1651 , - 3074 , - 3033 , - 1528 , - 2463 , - 1934 , - 3845 , - 388 , - 3275 , - 794 , - 753 , - 3152 , - 183 , - 3558 , - 1565 , - 2012 , - 995 , - 2418 , - 2377 , - 872 , - 1807 , - 1278 , - 3189 , - 3636 , - 2619 , - 138 , - 97 , - 2496 , - 3431 , - 2902 , - 909 , - 1356 , - 339 , - 1762 , - 1721 , - 216 , - 1151 , - 622 , - 2533 , - 2980 , - 1963 , - 3386 , - 3345 , - 1840 , - 2775 , - 2246 , - 253 , - 700 , - 3587 , - 1106 , - 1065 , - 3464 , - 495 , - 3870 , - 1877 , - 2324 , - 1307 , - 2730 , - 2689 , - 1184 , - 2119 , - 1590 , - 3501 , - 44 , - 2931 , - 450 , - 409 , - 2808 , - 3743 , - 3214 , - 1221 , - 1668 , - 651 , - 2074 , - 2033 , - 528 , - 1463 , - 934 , - 2845 , - 3292 , - 2275 , - 3698 , - 3657 , - 2152 , - 3087 , - 2558 , - 565 , - 1012 , - 3899 , - 1418 , - 1377 , - 3776 , - 807 , - 278 , - 2189 , - 2636 , - 1619 , - 3042 , - 3001 , - 1496 , - 2431 , - 1902 , - 3813 , - 356 , - 3243 , - 762 , - 721 , - 3120 , - 151 , - 3526 , - 1533 , - 1980 , - 963 , - 2386 , - 2345 , - 840 , - 1775 , - 1246 , - 3157 , - 3604 , - 2587 , - 106 , - 65 , - 2464 , - 3399 , - 2870 , - 877 , - 1324 , - 307 , - 1730 , - 1689 , - 184 , - 1119 , - 590 , - 2501 , - 2948 , - 1931 , - 3354 , - 3313 , - 1808 , - 2743 , - 2214 , - 221 , - 668 , - 3555 , - 1074 , - 1033 , - 3432 , - 463 , - 3838 , - 1845 , - 2292 , - 1275 , - 2698 , - 2657 , - 1152 , - 2087 , - 1558 , - 3469 , - 12 , - 2899 , - 418 , - 377 , - 2776 , - 3711 , - 3182 , - 1189 , - 1636 , - 619 , - 2042 , - 2001 , - 496 , - 1431 , - 902 , - 2813 , - 3260 , - 2243 , - 3666 , - 3625 , - 2120 , - 3055 , - 2526 , - 533 , - 980 , - 3867 , - 1386 , - 1345 , - 3744 , - 775 , - 246 , - 2157 , - 2604 , - 1587 , - 3010 , - 2969 , - 1464 , - 2399 , - 1870 , - 3781 , - 324 , - 3211 , - 730 , - 689 , - 3088 , - 119 , - 3494 , - 1501 , - 1948 , - 931 , - 2354 , - 2313 , - 808 , - 1743 , - 1214 , - 3125 , - 3572 , - 2555 , - 74 , - 33 , - 2432 , - 3367 , - 2838 , - 845 , - 1292 , - 275 , - 1698 , - 1657 , - 152 , - 1087 , - 558 , - 2469 , - 2916 , - 1899 , - 3322 , - 3281 , - 1776 , - 2711 , - 2182 , - 189 , - 636 , - 3523 , - 1042 , - 1001 , - 3400 , - 431 , - 3806 , - 1813 , - 2260 , - 1243 , - 2666 , - 2625 , - 1120 , - 2055 , - 1526 , - 3437 , - 3884 , - 2867 , - 386 , - 345 , - 2744 , - 3679 , - 3150 , - 1157 , - 1604 , - 587 , - 2010 , - 1969 , - 464 , - 1399 , - 870 , - 2781 , - 3228 , - 2211 , - 3634 , - 3593 , - 2088 , - 3023 , - 2494 , - 501 , - 948 , - 3835 , - 1354 , - 1313 , - 3712 , - 743 , - 214 , - 2125 , - 2572 , - 1555 , - 2978 , - 2937 , - 1432 , - 2367 , - 1838 , - 3749 , - 292 , - 3179 , - 698 , - 657 , - 3056 , - 87 , - 3462 , - 1469 , - 1916 , - 899 , - 2322 , - 2281 , - 776 , - 1711 , - 1182 , - 3093 , - 3540 , - 2523 , - 42 , - 1 , - 2400 , - 3335 , - 2806 , - 813 , - 1260 , - 243 , - 1666 , - 1625 , - 120 , - 1055 , - 526 , - 2437 , - 2884 , - 1867 , - 3290 , - 3249 , - 1744 , - 2679 , - 2150 , - 157 , - 604 , - 3491 , - 1010 , - 969 , - 3368 , - 399 , - 3774 , - 1781 , - 2228 , - 1211 , - 2634 , - 2593 , - 1088 , - 2023 , - 1494 , - 3405 , - 3852 , - 2835 , - 354 , - 313 , - 2712 , - 3647 , - 3118 , - 1125 , - 1572 , - 555 , - 1978 , - 1937 , - 432 , - 1367 , - 838 , - 2749 , - 3196 , - 2179 , - 3602 , - 3561 , - 2056 , - 2991 , - 2462 , - 469 , - 916 , - 3803 , - 1322 , - 1281 , - 3680 , - 711 , - 182 , - 2093 , - 2540 , - 1523 , - 2946 , - 2905 , - 1400 , - 2335 , - 1806 , - 3717 , - 260 , - 3147 , - 666 , - 625 , - 3024 , - 55 , - 3430 , - 1437 , - 1884 , - 867 , - 2290 , - 2249 , - 744 , - 1679 , - 1150 , - 3061 , - 3508 , - 2491 , - 10 , - 3873 , - 2368 , - 3303 , - 2774 , - 781 , - 1228 , - 211 , - 1634 , - 1593 , - 88 , - 1023 , - 494 , - 2405 , - 2852 , - 1835 , - 3258 , - 3217 , - 1712 , - 2647 , - 2118 , - 125 , - 572 , - 3459 , - 978 , - 937 , - 3336 , - 367 , - 3742 , - 1749 , - 2196 , - 1179 , - 2602 , - 2561 , - 1056 , - 1991 , - 1462 , - 3373 , - 3820 , - 2803 , - 322 , - 281 , - 2680 , - 3615 , - 3086 , - 1093 , - 1540 , - 523 , - 1946 , - 1905 , - 400 , - 1335 , - 806 , - 2717 , - 3164 , - 2147 , - 3570 , - 3529 , - 2024 , - 2959 , - 2430 , - 437 , - 884 , - 3771 , - 1290 , - 1249 , - 3648 , - 679 , - 150 , - 2061 , - 2508 , - 1491 , - 2914 , - 2873 , - 1368 , - 2303 , - 1774 , - 3685 , - 228 , - 3115 , - 634 , - 593 , - 2992 , - 23 , - 3398 , - 1405 , - 1852 , - 835 , - 2258 , - 2217 , - 712 , - 1647 , - 1118 , - 3029 , - 3476 , - 2459 , - 3882 , - 3841 , - 2336 , - 3271 , - 2742 , - 749 , - 1196 , - 179 , - 1602 , - 1561 , - 56 , - 991 , - 462 , - 2373 , - 2820 , - 1803 , - 3226 , - 3185 , - 1680 , - 2615 , - 2086 , - 93 , - 540 , - 3427 , - 946 , - 905 , - 3304 , - 335 , - 3710 , - 1717 , - 2164 , - 1147 , - 2570 , - 2529 , - 1024 , - 1959 , - 1430 , - 3341 , - 3788 , - 2771 , - 290 , - 249 , - 2648 , - 3583 , - 3054 , - 1061 , - 1508 , - 491 , - 1914 , - 1873 , - 368 , - 1303 , - 774 , - 2685 , - 3132 , - 2115 , - 3538 , - 3497 , - 1992 , - 2927 , - 2398 , - 405 , - 852 , - 3739 , - 1258 , - 1217 , - 3616 , - 647 , - 118 , - 2029 , - 2476 , - 1459 , - 2882 , - 2841 , - 1336 , - 2271 , - 1742 , - 3653 , - 196 , - 3083 , - 602 , - 561 , - 2960 , - 3895 , - 3366 , - 1373 , - 1820 , - 803 , - 2226 , - 2185 , - 680 , - 1615 , - 1086 , - 2997 , - 3444 , - 2427 , - 3850 , - 3809 , - 2304 , - 3239 , - 2710 , - 717 , - 1164 , - 147 , - 1570 , - 1529 , - 24 , - 959 , - 430 , - 2341 , - 2788 , - 1771 , - 3194 , - 3153 , - 1648 , - 2583 , - 2054 , - 61 , - 508 , - 3395 , - 914 , - 873 , - 3272 , - 303 , - 3678 , - 1685 , - 2132 , - 1115 , - 2538 , - 2497 , - 992 , - 1927 , - 1398 , - 3309 , - 3756 , - 2739 , - 258 , - 217 , - 2616 , - 3551 , - 3022 , - 1029 , - 1476 , - 459 , - 1882 , - 1841 , - 336 , - 1271 , - 742 , - 2653 , - 3100 , - 2083 , - 3506 , - 3465 , - 1960 , - 2895 , - 2366 , - 373 , - 820 , - 3707 , - 1226 , - 1185 , - 3584 , - 615 , - 86 , - 1997 , - 2444 , - 1427 , - 2850 , - 2809 , - 1304 , - 2239 , - 1710 , - 3621 , - 164 , - 3051 , - 570 , - 529 , - 2928 , - 3863 , - 3334 , - 1341 , - 1788 , - 771 , - 2194 , - 2153 , - 648 , - 1583 , - 1054 , - 2965 , - 3412 , - 2395 , - 3818 , - 3777 , - 2272 , - 3207 , - 2678 , - 685 , - 1132 , - 115 , - 1538 , - 1497 , - 3896 , - 927 , - 398 , - 2309 , - 2756 , - 1739 , - 3162 , - 3121 , - 1616 , - 2551 , - 2022 , - 29 , - 476 , - 3363 , - 882 , - 841 , - 3240 , - 271 , - 3646 , - 1653 , - 2100 , - 1083 , - 2506 , - 2465 , - 960 , - 1895 , - 1366 , - 3277 , - 3724 , - 2707 , - 226 , - 185 , - 2584 , - 3519 , - 2990 , - 997 , - 1444 , - 427 , - 1850 , - 1809 , - 304 , - 1239 , - 710 , - 2621 , - 3068 , - 2051 , - 3474 , - 3433 , - 1928 , - 2863 , - 2334 , - 341 , - 788 , - 3675 , - 1194 , - 1153 , - 3552 , - 583 , - 54 , - 1965 , - 2412 , - 1395 , - 2818 , - 2777 , - 1272 , - 2207 , - 1678 , - 3589 , - 132 , - 3019 , - 538 , - 497 , - 2896 , - 3831 , - 3302 , - 1309 , - 1756 , - 739 , - 2162 , - 2121 , - 616 , - 1551 , - 1022 , - 2933 , - 3380 , - 2363 , - 3786 , - 3745 , - 2240 , - 3175 , - 2646 , - 653 , - 1100 , - 83 , - 1506 , - 1465 , - 3864 , - 895 , - 366 , - 2277 , - 2724 , - 1707 , - 3130 , - 3089 , - 1584 , - 2519 , - 1990 , - 3901 , - 444 , - 3331 , - 850 , - 809 , - 3208 , - 239 , - 3614 , - 1621 , - 2068 , - 1051 , - 2474 , - 2433 , - 928 , - 1863 , - 1334 , - 3245 , - 3692 , - 2675 , - 194 , - 153 , - 2552 , - 3487 , - 2958 , - 965 , - 1412 , - 395 , - 1818 , - 1777 , - 272 , - 1207 , - 678 , - 2589 , - 3036 , - 2019 , - 3442 , - 3401 , - 1896 , - 2831 , - 2302 , - 309 , - 756 , - 3643 , - 1162 , - 1121 , - 3520 , - 551 , - 22 , - 1933 , - 2380 , - 1363 , - 2786 , - 2745 , - 1240 , - 2175 , - 1646 , - 3557 , - 100 , - 2987 , - 506 , - 465 , - 2864 , - 3799 , - 3270 , - 1277 , - 1724 , - 707 , - 2130 , - 2089 , - 584 , - 1519 , - 990 , - 2901 , - 3348 , - 2331 , - 3754 , - 3713 , - 2208 , - 3143 , - 2614 , - 621 , - 1068 , - 51 , - 1474 , - 1433 , - 3832 , - 863 , - 334 , - 2245 , - 2692 , - 1675 , - 3098 , - 3057 , - 1552 , - 2487 , - 1958 , - 3869 , - 412 , - 3299 , - 818 , - 777 , - 3176 , - 207 , - 3582 , - 1589 , - 2036 , - 1019 , - 2442 , - 2401 , - 896 , - 1831 , - 1302 , - 3213 , - 3660 , - 2643 , - 162 , - 121 , - 2520 , - 3455 , - 2926 , - 933 , - 1380 , - 363 , - 1786 , - 1745 , - 240 , - 1175 , - 646 , - 2557 , - 3004 , - 1987 , - 3410 , - 3369 , - 1864 , - 2799 , - 2270 , - 277 , - 724 , - 3611 , - 1130 , - 1089 , - 3488 , - 519 , - 3894 , - 1901 , - 2348 , - 1331 , - 2754 , - 2713 , - 1208 , - 2143 , - 1614 , - 3525 , - 68 , - 2955 , - 474 , - 433 , - 2832 , - 3767 , - 3238 , - 1245 , - 1692 , - 675 , - 2098 , - 2057 , - 552 , - 1487 , - 958 , - 2869 , - 3316 , - 2299 , - 3722 , - 3681 , - 2176 , - 3111 , - 2582 , - 589 , - 1036 , - 19 , - 1442 , - 1401 , - 3800 , - 831 , - 302 , - 2213 , - 2660 , - 1643 , - 3066 , - 3025 , - 1520 , - 2455 , - 1926 , - 3837 , - 380 , - 3267 , - 786 , - 745 , - 3144 , - 175 , - 3550 , - 1557 , - 2004 , - 987 , - 2410 , - 2369 , - 864 , - 1799 , - 1270 , - 3181 , - 3628 , - 2611 , - 130 , - 89 , - 2488 , - 3423 , - 2894 , - 901 , - 1348 , - 331 , - 1754 , - 1713 , - 208 , - 1143 , - 614 , - 2525 , - 2972 , - 1955 , - 3378 , - 3337 , - 1832 , - 2767 , - 2238 , - 245 , - 692 , - 3579 , - 1098 , - 1057 , - 3456 , - 487 , - 3862 , - 1869 , - 2316 , - 1299 , - 2722 , - 2681 , - 1176 , - 2111 , - 1582 , - 3493 , - 36 , - 2923 , - 442 , - 401 , - 2800 , - 3735 , - 3206 , - 1213 , - 1660 , - 643 , - 2066 , - 2025 , - 520 , - 1455 , - 926 , - 2837 , - 3284 , - 2267 , - 3690 , - 3649 , - 2144 , - 3079 , - 2550 , - 557 , - 1004 , - 3891 , - 1410 , - 1369 , - 3768 , - 799 , - 270 , - 2181 , - 2628 , - 1611 , - 3034 , - 2993 , - 1488 , - 2423 , - 1894 , - 3805 , - 348 , - 3235 , - 754 , - 713 , - 3112 , - 143 , - 3518 , - 1525 , - 1972 , - 955 , - 2378 , - 2337 , - 832 , - 1767 , - 1238 , - 3149 , - 3596 , - 2579 , - 98 , - 57 , - 2456 , - 3391 , - 2862 , - 869 , - 1316 , - 299 , - 1722 , - 1681 , - 176 , - 1111 , - 582 , - 2493 , - 2940 , - 1923 , - 3346 , - 3305 , - 1800 , - 2735 , - 2206 , - 213 , - 660 , - 3547 , - 1066 , - 1025 , - 3424 , - 455 , - 3830 , - 1837 , - 2284 , - 1267 , - 2690 , - 2649 , - 1144 , - 2079 , - 1550 , - 3461 , - 4 , - 2891 , - 410 , - 369 , - 2768 , - 3703 , - 3174 , - 1181 , - 1628 , - 611 , - 2034 , - 1993 , - 488 , - 1423 , - 894 , - 2805 , - 3252 , - 2235 , - 3658 , - 3617 , - 2112 , - 3047 , - 2518 , - 525 , - 972 , - 3859 , - 1378 , - 1337 , - 3736 , - 767 , - 238 , - 2149 , - 2596 , - 1579 , - 3002 , - 2961 , - 1456 , - 2391 , - 1862 , - 3773 , - 316 , - 3203 , - 722 , - 681 , - 3080 , - 111 , - 3486 , - 1493 , - 1940 , - 923 , - 2346 , - 2305 , - 800 , - 1735 , - 1206 , - 3117 , - 3564 , - 2547 , - 66 , - 25 , - 2424 , - 3359 , - 2830 , - 837 , - 1284 , - 267 , - 1690 , - 1649 , - 144 , - 1079 , - 550 , - 2461 , - 2908 , - 1891 , - 3314 , - 3273 , - 1768 , - 2703 , - 2174 , - 181 , - 628 , - 3515 , - 1034 , - 993 , - 3392 , - 423 , - 3798 , - 1805 , - 2252 , - 1235 , - 2658 , - 2617 , - 1112 , - 2047 , - 1518 , - 3429 , - 3876 , - 2859 , - 378 , - 337 , - 2736 , - 3671 , - 3142 , - 1149 , - 1596 , - 579 , - 2002 , - 1961 , - 456 , - 1391 , - 862 , - 2773 , - 3220 , - 2203 , - 3626 , - 3585 , - 2080 , - 3015 , - 2486 , - 493 , - 940 , - 3827 , - 1346 , - 1305 , - 3704 , - 735 , - 206 , - 2117 , - 2564 , - 1547 , - 2970 , - 2929 , - 1424 , - 2359 , - 1830 , - 3741 , - 284 , - 3171 , - 690 , - 649 , - 3048 , - 79 , - 3454 , - 1461 , - 1908 , - 891 , - 2314 , - 2273 , - 768 , - 1703 , - 1174 , - 3085 , - 3532 , - 2515 , - 34 , - 3897 , - 2392 , - 3327 , - 2798 , - 805 , - 1252 , - 235 , - 1658 , - 1617 , - 112 , - 1047 , - 518 , - 2429 , - 2876 , - 1859 , - 3282 , - 3241 , - 1736 , - 2671 , - 2142 , - 149 , - 596 , - 3483 , - 1002 , - 961 , - 3360 , - 391 , - 3766 , - 1773 , - 2220 , - 1203 , - 2626 , - 2585 , - 1080 , - 2015 , - 1486 , - 3397 , - 3844 , - 2827 , - 346 , - 305 , - 2704 , - 3639 , - 3110 , - 1117 , - 1564 , - 547 , - 1970 , - 1929 , - 424 , - 1359 , - 830 , - 2741 , - 3188 , - 2171 , - 3594 , - 3553 , - 2048 , - 2983 , - 2454 , - 461 , - 908 , - 3795 , - 1314 , - 1273 , - 3672 , - 703 , - 174 , - 2085 , - 2532 , - 1515 , - 2938 , - 2897 , - 1392 , - 2327 , - 1798 , - 3709 , - 252 , - 3139 , - 658 , - 617 , - 3016 , - 47 , - 3422 , - 1429 , - 1876 , - 859 , - 2282 , - 2241 , - 736 , - 1671 , - 1142 , - 3053 , - 3500 , - 2483 , - 2 , - 3865 , - 2360 , - 3295 , - 2766 , - 773 , - 1220 , - 203 , - 1626 , - 1585 , - 80 , - 1015 , - 486 , - 2397 , - 2844 , - 1827 , - 3250 , - 3209 , - 1704 , - 2639 , - 2110 , - 117 , - 564 , - 3451 , - 970 , - 929 , - 3328 , - 359 , - 3734 , - 1741 , - 2188 , - 1171 , - 2594 , - 2553 , - 1048 , - 1983 , - 1454 , - 3365 , - 3812 , - 2795 , - 314 , - 273 , - 2672 , - 3607 , - 3078 , - 1085 , - 1532 , - 515 , - 1938 , - 1897 , - 392 , - 1327 , - 798 , - 2709 , - 3156 , - 2139 , - 3562 , - 3521 , - 2016 , - 2951 , - 2422 , - 429 , - 876 , - 3763 , - 1282 , - 1241 , - 3640 , - 671 , - 142 , - 2053 , - 2500 , - 1483 , - 2906 , - 2865 , - 1360 , - 2295 , - 1766 , - 3677 , - 220 , - 3107 , - 626 , - 585 , - 2984 , - 15 , - 3390 , - 1397 , - 1844 , - 827 , - 2250 , - 2209 , - 704 , - 1639 , - 1110 , - 3021 , - 3468 , - 2451 , - 3874 , - 3833 , - 2328 , - 3263 , - 2734 , - 741 , - 1188 , - 171 , - 1594 , - 1553 , - 48 , - 983 , - 454 , - 2365 , - 2812 , - 1795 , - 3218 , - 3177 , - 1672 , - 2607 , - 2078 , - 85 , - 532 , - 3419 , - 938 , - 897 , - 3296 , - 327 , - 3702 , - 1709 , - 2156 , - 1139 , - 2562 , - 2521 , - 1016 , - 1951 , - 1422 , - 3333 , - 3780 , - 2763 , - 282 , - 241 , - 2640 , - 3575 , - 3046 , - 1053 , - 1500 , - 483 , - 1906 , - 1865 , - 360 , - 1295 , - 766 , - 2677 , - 3124 , - 2107 , - 3530 , - 3489 , - 1984 , - 2919 , - 2390 , - 397 , - 844 , - 3731 , - 1250 , - 1209 , - 3608 , - 639 , - 110 , - 2021 , - 2468 , - 1451 , - 2874 , - 2833 , - 1328 , - 2263 , - 1734 , - 3645 , - 188 , - 3075 , - 594 , - 553 , - 2952 , - 3887 , - 3358 , - 1365 , - 1812 , - 795 , - 2218 , - 2177 , - 672 , - 1607 , - 1078 , - 2989 , - 3436 , - 2419 , - 3842 , - 3801 , - 2296 , - 3231 , - 2702 , - 709 , - 1156 , - 139 , - 1562 , - 1521 , - 16 , - 951 , - 422 , - 2333 , - 2780 , - 1763 , - 3186 , - 3145 , - 1640 , - 2575 , - 2046 , - 53 , - 500 , - 3387 , - 906 , - 865 , - 3264 , - 295 , - 3670 , - 1677 , - 2124 , - 1107 , - 2530 , - 2489 , - 984 , - 1919 , - 1390 , - 3301 , - 3748 , - 2731 , - 250 , - 209 , - 2608 , - 3543 , - 3014 , - 1021 , - 1468 , - 451 , - 1874 , - 1833 , - 328 , - 1263 , - 734 , - 2645 , - 3092 , - 2075 , - 3498 , - 3457 , - 1952 , - 2887 , - 2358 , - 365 , - 812 , - 3699 , - 1218 , - 1177 , - 3576 , - 607 , - 78 , - 1989 , - 2436 , - 1419 , - 2842 , - 2801 , - 1296 , - 2231 , - 1702 , - 3613 , - 156 , - 3043 , - 562 , - 521 , - 2920 , - 3855 , - 3326 , - 1333 , - 1780 , - 763 , - 2186 , - 2145 , - 640 , - 1575 , - 1046 , - 2957 , - 3404 , - 2387 , - 3810 , - 3769 , - 2264 , - 3199 , - 2670 , - 677 , - 1124 , - 107 , - 1530 , - 1489 , - 3888 , - 919 , - 390 , - 2301 , - 2748 , - 1731 , - 3154 , - 3113 , - 1608 , - 2543 , - 2014 , - 21 , - 468 , - 3355 , - 874 , - 833 , - 3232 , - 263 , - 3638 , - 1645 , - 2092 , - 1075 , - 2498 , - 2457 , - 952 , - 1887 , - 1358 , - 3269 , - 3716 , - 2699 , - 218 , - 177 , - 2576 , - 3511 , - 2982 , - 989 , - 1436 , - 419 , - 1842 , - 1801 , - 296 , - 1231 , - 702 , - 2613 , - 3060 , - 2043 , - 3466 , - 3425 , - 1920 , - 2855 , - 2326 , - 333 , - 780 , - 3667 , - 1186 , - 1145 , - 3544 , - 575 , - 46 , - 1957 , - 2404 , - 1387 , - 2810 , - 2769 , - 1264 , - 2199 , - 1670 , - 3581 , - 124 , - 3011 , - 530 , - 489 , - 2888 , - 3823 , - 3294 , - 1301 , - 1748 , - 731 , - 2154 , - 2113 , - 608 , - 1543 , - 1014 , - 2925 , - 3372 , - 2355 , - 3778 , - 3737 , - 2232 , - 3167 , - 2638 , - 645 , - 1092 , - 75 , - 1498 , - 1457 , - 3856 , - 887 , - 358 , - 2269 , - 2716 , - 1699 , - 3122 , - 3081 , - 1576 , - 2511 , - 1982 , - 3893 , - 436 , - 3323 , - 842 , - 801 , - 3200 , - 231 , - 3606 , - 1613 , - 2060 , - 1043 , - 2466 , - 2425 , - 920 , - 1855 , - 1326 , - 3237 , - 3684 , - 2667 , - 186 , - 145 , - 2544 , - 3479 , - 2950 , - 957 , - 1404 , - 387 , - 1810 , - 1769 , - 264 , - 1199 , - 670 , - 2581 , - 3028 , - 2011 , - 3434 , - 3393 , - 1888 , - 2823 , - 2294 , - 301 , - 748 , - 3635 , - 1154 , - 1113 , - 3512 , - 543 , - 14 , - 1925 , - 2372 , - 1355 , - 2778 , - 2737 , - 1232 , - 2167 , - 1638 , - 3549 , - 92 , - 2979 , - 498 , - 457 , - 2856 , - 3791 , - 3262 , - 1269 , - 1716 , - 699 , - 2122 , - 2081 , - 576 , - 1511 , - 982 , - 2893 , - 3340 , - 2323 , - 3746 , - 3705 , - 2200 , - 3135 , - 2606 , - 613 , - 1060 , - 43 , - 1466 , - 1425 , - 3824 , - 855 , - 326 , - 2237 , - 2684 , - 1667 , - 3090 , - 3049 , - 1544 , - 2479 , - 1950 , - 3861 , - 404 , - 3291 , - 810 , - 769 , - 3168 , - 199 , - 3574 , - 1581 , - 2028 , - 1011 , - 2434 , - 2393 , - 888 , - 1823 , - 1294 , - 3205 , - 3652 , - 2635 , - 154 , - 113 , - 2512 , - 3447 , - 2918 , - 925 , - 1372 , - 355 , - 1778 , - 1737 , - 232 , - 1167 , - 638 , - 2549 , - 2996 , - 1979 , - 3402 , - 3361 , - 1856 , - 2791 , - 2262 , - 269 , - 716 , - 3603 , - 1122 , - 1081 , - 3480 , - 511 , - 3886 , - 1893 , - 2340 , - 1323 , - 2746 , - 2705 , - 1200 , - 2135 , - 1606 , - 3517 , - 60 , - 2947 , - 466 , - 425 , - 2824 , - 3759 , - 3230 , - 1237 , - 1684 , - 667 , - 2090 , - 2049 , - 544 , - 1479 , - 950 , - 2861 , - 3308 , - 2291 , - 3714 , - 3673 , - 2168 , - 3103 , - 2574 , - 581 , - 1028 , - 11 , - 1434 , - 1393 , - 3792 , - 823 , - 294 , - 2205 , - 2652 , - 1635 , - 3058 , - 3017 , - 1512 , - 2447 , - 1918 , - 3829 , - 372 , - 3259 , - 778 , - 737 , - 3136 , - 167 , - 3542 , - 1549 , - 1996 , - 979 , - 2402 , - 2361 , - 856 , - 1791 , - 1262 , - 3173 , - 3620 , - 2603 , - 122 , - 81 , - 2480 , - 3415 , - 2886 , - 893 , - 1340 , - 323 , - 1746 , - 1705 , - 200 , - 1135 , - 606 , - 2517 , - 2964 , - 1947 , - 3370 , - 3329 , - 1824 , - 2759 , - 2230 , - 237 , - 684 , - 3571 , - 1090 , - 1049 , - 3448 , - 479 , - 3854 , - 1861 , - 2308 , - 1291 , - 2714 , - 2673 , - 1168 , - 2103 , - 1574 , - 3485 , - 28 , - 2915 , - 434 , - 393 , - 2792 , - 3727 , - 3198 , - 1205 , - 1652 , - 635 , - 2058 , - 2017 , - 512 , - 1447 , - 918 , - 2829 , - 3276 , - 2259 , - 3682 , - 3641 , - 2136 , - 3071 , - 2542 , - 549 , - 996 , - 3883 , - 1402 , - 1361 , - 3760 , - 791 , - 262 , - 2173 , - 2620 , - 1603 , - 3026 , - 2985 , - 1480 , - 2415 , - 1886 , - 3797 , - 340 , - 3227 , - 746 , - 705 , - 3104 , - 135 , - 3510 , - 1517 , - 1964 , - 947 , - 2370 , - 2329 , - 824 , - 1759 , - 1230 , - 3141 , - 3588 , - 2571 , - 90 , - 49 , - 2448 , - 3383 , - 2854 , - 861 , - 1308 , - 291 , - 1714 , - 1673 , - 168 , - 1103 , - 574 , - 2485 , - 2932 , - 1915 , - 3338 , - 3297 , - 1792 , - 2727 , - 2198 , - 205 , - 652 , - 3539 , - 1058 , - 1017 , - 3416 , - 447 , - 3822 , - 1829 , - 2276 , - 1259 , - 2682 , - 2641 , - 1136 , - 2071 , - 1542 , - 3453 , - 3900 , - 2883 , - 402 , - 361 , - 2760 , - 3695 , - 3166 , - 1173 , - 1620 , - 603 , - 2026 , - 1985 , - 480 , - 1415 , - 886 , - 2797 , - 3244 , - 2227 , - 3650 , - 3609 , - 2104 , - 3039 , - 2510 , - 517 , - 964 , - 3851 , - 1370 , - 1329 , - 3728 , - 759 , - 230 , - 2141 , - 2588 , - 1571 , - 2994 , - 2953 , - 1448 , - 2383 , - 1854 , - 3765 , - 308 , - 3195 , - 714 , - 673 , - 3072 , - 103 , - 3478 , - 1485 , - 1932 , - 915 , - 2338 , - 2297 , - 792 , - 1727 , - 1198 , - 3109 , - 3556 , - 2539 , - 58 , - 17 , - 2416 , - 3351 , - 2822 , - 829 , - 1276 , - 259 , - 1682 , - 1641 , - 136 , - 1071 , - 542 , - 2453 , - 2900 , - 1883 , - 3306 , - 3265 , - 1760 , - 2695 , - 2166 , - 173 , - 620 , - 3507 , - 1026 , - 985 , - 3384 , - 415 , - 3790 , - 1797 , - 2244 , - 1227 , - 2650 , - 2609 , - 1104 , - 2039 , - 1510 , - 3421 , - 3868 , - 2851 , - 370 , - 329 , - 2728 , - 3663 , - 3134 , - 1141 , - 1588 , - 571 , - 1994 , - 1953 , - 448 , - 1383 , - 854 , - 2765 , - 3212 , - 2195 , - 3618 , - 3577 , - 2072 , - 3007 , - 2478 , - 485 , - 932 , - 3819 , - 1338 , - 1297 , - 3696 , - 727 , - 198 , - 2109 , - 2556 , - 1539 , - 2962 , - 2921 , - 1416 , - 2351 , - 1822 , - 3733 , - 276 , - 3163 , - 682 , - 641 , - 3040 , - 71 , - 3446 , - 1453 , - 1900 , - 883 , - 2306 , - 2265 , - 760 , - 1695 , - 1166 , - 3077 , - 3524 , - 2507 , - 26 , - 3889 , - 2384 , - 3319 , - 2790 , - 797 , - 1244 , - 227 , - 1650 , - 1609 , - 104 , - 1039 , - 510 , - 2421 , - 2868 , - 1851 , - 3274 , - 3233 , - 1728 , - 2663 , - 2134 , - 141 , - 588 , - 3475 , - 994 , - 953 , - 3352 , - 383 , - 3758 , - 1765 , - 2212 , - 1195 , - 2618 , - 2577 , - 1072 , - 2007 , - 1478 , - 3389 , - 3836 , - 2819 , - 338 , - 297 , - 2696 , - 3631 , - 3102 , - 1109 , - 1556 , - 539 , - 1962 , - 1921 , - 416 , - 1351 , - 822 , - 2733 , - 3180 , - 2163 , - 3586 , - 3545 , - 2040 , - 2975 , - 2446 , - 453 , - 900 , - 3787 , - 1306 , - 1265 , - 3664 , - 695 , - 166 , - 2077 , - 2524 , - 1507 , - 2930 , - 2889 , - 1384 , - 2319 , - 1790 , - 3701 , - 244 , - 3131 , - 650 , - 609 , - 3008 , - 39 , - 3414 , - 1421 , - 1868 , - 851 , - 2274 , - 2233 , - 728 , - 1663 , - 1134 , - 3045 , - 3492 , - 2475 , - 3898 , - 3857 , - 2352 , - 3287 , - 2758 , - 765 , - 1212 , - 195 , - 1618 , - 1577 , - 72 , - 1007 , - 478 , - 2389 , - 2836 , - 1819 , - 3242 , - 3201 , - 1696 , - 2631 , - 2102 , - 109 , - 556 , - 3443 , - 962 , - 921 , - 3320 , - 351 , - 3726 , - 1733 , - 2180 , - 1163 , - 2586 , - 2545 , - 1040 , - 1975 , - 1446 , - 3357 , - 3804 , - 2787 , - 306 , - 265 , - 2664 , - 3599 , - 3070 , - 1077 , - 1524 , - 507 , - 1930 , - 1889 , - 384 , - 1319 , - 790 , - 2701 , - 3148 , - 2131 , - 3554 , - 3513 , - 2008 , - 2943 , - 2414 , - 421 , - 868 , - 3755 , - 1274 , - 1233 , - 3632 , - 663 , - 134 , - 2045 , - 2492 , - 1475 , - 2898 , - 2857 , - 1352 , - 2287 , - 1758 , - 3669 , - 212 , - 3099 , - 618 , - 577 , - 2976 , - 7 , - 3382 , - 1389 , - 1836 , - 819 , - 2242 , - 2201 , - 696 , - 1631 , - 1102 , - 3013 , - 3460 , - 2443 , - 3866 , - 3825 , - 2320 , - 3255 , - 2726 , - 733 , - 1180 , - 163 , - 1586 , - 1545 , - 40 , - 975 , - 446 , - 2357 , - 2804 , - 1787 , - 3210 , - 3169 , - 1664 , - 2599 , - 2070 , - 77 , - 524 , - 3411 , - 930 , - 889 , - 3288 , - 319 , - 3694 , - 1701 , - 2148 , - 1131 , - 2554 , - 2513 , - 1008 , - 1943 , - 1414 , - 3325 , - 3772 , - 2755 , - 274 , - 233 , - 2632 , - 3567 , - 3038 , - 1045 , - 1492 , - 475 , - 1898 , - 1857 , - 352 , - 1287 , - 758 , - 2669 , - 3116 , - 2099 , - 3522 , - 3481 , - 1976 , - 2911 , - 2382 , - 389 , - 836 , - 3723 , - 1242 , - 1201 , - 3600 , - 631 , - 102 , - 2013 , - 2460 , - 1443 , - 2866 , - 2825 , - 1320 , - 2255 , - 1726 , - 3637 , - 180 , - 3067 , - 586 , - 545 , - 2944 , - 3879 , - 3350 , - 1357 , - 1804 , - 787 , - 2210 , - 2169 , - 664 , - 1599 , - 1070 , - 2981 , - 3428 , - 2411 , - 3834 , - 3793 , - 2288 , - 3223 , - 2694 , - 701 , - 1148 , - 131 , - 1554 , - 1513 , - 8 , - 943 , - 414 , - 2325 , - 2772 , - 1755 , - 3178 , - 3137 , - 1632 , - 2567 , - 2038 , - 45 , - 492 , - 3379 , - 898 , - 857 , - 3256 , - 287 , - 3662 , - 1669 , - 2116 , - 1099 , - 2522 , - 2481 , - 976 , - 1911 , - 1382 , - 3293 , - 3740 , - 2723 , - 242 , - 201 , - 2600 , - 3535 , - 3006 , - 1013 , - 1460 , - 443 , - 1866 , - 1825 , - 320 , - 1255 , - 726 , - 2637 , - 3084 , - 2067 , - 3490 , - 3449 , - 1944 , - 2879 , - 2350 , - 357 , - 804 , - 3691 , - 1210 , - 1169 , - 3568 , - 599 , - 70 , - 1981 , - 2428 , - 1411 , - 2834 , - 2793 , - 1288 , - 2223 , - 1694 , - 3605 , - 148 , - 3035 , - 554 , - 513 , - 2912 , - 3847 , - 3318 , - 1325 , - 1772 , - 755 , - 2178 , - 2137 , - 632 , - 1567 , - 1038 , - 2949 , - 3396 , - 2379 , - 3802 , - 3761 , - 2256 , - 3191 , - 2662 , - 669 , - 1116 , - 99 , - 1522 , - 1481 , - 3880 , - 911 , - 382 , - 2293 , - 2740 , - 1723 , - 3146 , - 3105 , - 1600 , - 2535 , - 2006 , - 13 , - 460 , - 3347 , - 866 , - 825 , - 3224 , - 255 , - 3630 , - 1637 , - 2084 , - 1067 , - 2490 , - 2449 , - 944 , - 1879 , - 1350 , - 3261 , - 3708 , - 2691 , - 210 , - 169 , - 2568 , - 3503 , - 2974 , - 981 , - 1428 , - 411 , - 1834 , - 1793 , - 288 , - 1223 , - 694 , - 2605 , - 3052 , - 2035 , - 3458 , - 3417 , - 1912 , - 2847 , - 2318 , - 325 , - 772 , - 3659 , - 1178 , - 1137 , - 3536 , - 567 , - 38 , - 1949 , - 2396 , - 1379 , - 2802 , - 2761 , - 1256 , - 2191 , - 1662 , - 3573 , - 116 , - 3003 , - 522 , - 481 , - 2880 , - 3815 , - 3286 , - 1293 , - 1740 , - 723 , - 2146 , - 2105 , - 600 , - 1535 , - 1006 , - 2917 , - 3364 , - 2347 , - 3770 , - 3729 , - 2224 , - 3159 , - 2630 , - 637 , - 1084 , - 67 , - 1490 , - 1449 , - 3848 , - 879 , - 350 , - 2261 , - 2708 , - 1691 , - 3114 , - 3073 , - 1568 , - 2503 , - 1974 , - 3885 , - 428 , - 3315 , - 834 , - 793 , - 3192 , - 223 , - 3598 , - 1605 , - 2052 , - 1035 , - 2458 , - 2417 , - 912 , - 1847 , - 1318 , - 3229 , - 3676 , - 2659 , - 178 , - 137 , - 2536 , - 3471 , - 2942 , - 949 , - 1396 , - 379 , - 1802 , - 1761 , - 256 , - 1191 , - 662 , - 2573 , - 3020 , - 2003 , - 3426 , - 3385 , - 1880 , - 2815 , - 2286 , - 293 , - 740 , - 3627 , - 1146 , - 1105 , - 3504 , - 535 , - 6 , - 1917 , - 2364 , - 1347 , - 2770 , - 2729 , - 1224 , - 2159 , - 1630 , - 3541 , - 84 , - 2971 , - 490 , - 449 , - 2848 , - 3783 , - 3254 , - 1261 , - 1708 , - 691 , - 2114 , - 2073 , - 568 , - 1503 , - 974 , - 2885 , - 3332 , - 2315 , - 3738 , - 3697 , - 2192 , - 3127 , - 2598 , - 605 , - 1052 , - 35 , - 1458 , - 1417 , - 3816 , - 847 , - 318 , - 2229 , - 2676 , - 1659 , - 3082 , - 3041 , - 1536 , - 2471 , - 1942 , - 3853 , - 396 , - 3283 , - 802 , - 761 , - 3160 , - 191 , - 3566 , - 1573 , - 2020 , - 1003 , - 2426 , - 2385 , - 880 , - 1815 , - 1286 , - 3197 , - 3644 , - 2627 , - 146 , - 105 , - 2504 , - 3439 , - 2910 , - 917 , - 1364 , - 347 , - 1770 , - 1729 , - 224 , - 1159 , - 630 , - 2541 , - 2988 , - 1971 , - 3394 , - 3353 , - 1848 , - 2783 , - 2254 , - 261 , - 708 , - 3595 , - 1114 , - 1073 , - 3472 , - 503 , - 3878 , - 1885 , - 2332 , - 1315 , - 2738 , - 2697 , - 1192 , - 2127 , - 1598 , - 3509 , - 52 , - 2939 , - 458 , - 417 , - 2816 , - 3751 , - 3222 , - 1229 , - 1676 , - 659 , - 2082 , - 2041 , - 536 , - 1471 , - 942 , - 2853 , - 3300 , - 2283 , - 3706 , - 3665 , - 2160 , - 3095 , - 2566 , - 573 , - 1020 , - 3 , - 1426 , - 1385 , - 3784 , - 815 , - 286 , - 2197 , - 2644 , - 1627 , - 3050 , - 3009 , - 1504 , - 2439 , - 1910 , - 3821 , - 364 , - 3251 , - 770 , - 729 , - 3128 , - 159 , - 3534 , - 1541 , - 1988 , - 971 , - 2394 , - 2353 , - 848 , - 1783 , - 1254 , - 3165 , - 3612 , - 2595 , - 114 , - 73 , - 2472 , - 3407 , - 2878 , - 885 , - 1332 , - 315 , - 1738 , - 1697 , - 192 , - 1127 , - 598 , - 2509 , - 2956 , - 1939 , - 3362 , - 3321 , - 1816 , - 2751 , - 2222 , - 229 , - 676 , - 3563 , - 1082 , - 1041 , - 3440 , - 471 , - 3846 , - 1853 , - 2300 , - 1283 , - 2706 , - 2665 , - 1160 , - 2095 , - 1566 , - 3477 , - 20 , - 2907 , - 426 , - 385 , - 2784 , - 3719 , - 3190 , - 1197 , - 1644 , - 627 , - 2050 , - 2009 , - 504 , - 1439 , - 910 , - 2821 , - 3268 , - 2251 , - 3674 , - 3633 , - 2128 , - 3063 , - 2534 , - 541 , - 988 , - 3875 , - 1394 , - 1353 , - 3752 , - 783 , - 254 , - 2165 , - 2612 , - 1595 , - 3018 , - 2977 , - 1472 , - 2407 , - 1878 , - 3789 , - 332 , - 3219 , - 738 , - 697 , - 3096 , - 127 , - 3502 , - 1509 , - 1956 , - 939 , - 2362 , - 2321 , - 816 , - 1751 , - 1222 , - 3133 , - 3580 , - 2563 , - 82 , - 41 , - 2440 , - 3375 , - 2846 , - 853 , - 1300 , - 283 , - 1706 , - 1665 , - 160 , - 1095 , - 566 , - 2477 , - 2924 , - 1907 , - 3330 , - 3289 , - 1784 , - 2719 , - 2190 , - 197 , - 644 , - 3531 , - 1050 , - 1009 , - 3408 , - 439 , - 3814 , - 1821 , - 2268 , - 1251 , - 2674 , - 2633 , - 1128 , - 2063 , - 1534 , - 3445 , - 3892 , - 2875 , - 394 , - 353 , - 2752 , - 3687 , - 3158 , - 1165 , - 1612 , - 595 , - 2018 , - 1977 , - 472 , - 1407 , - 878 , - 2789 , - 3236 , - 2219 , - 3642 , - 3601 , - 2096 , - 3031 , - 2502 , - 509 , - 956 , - 3843 , - 1362 , - 1321 , - 3720 , - 751 , - 222 , - 2133 , - 2580 , - 1563 , - 2986 , - 2945 , - 1440 , - 2375 , - 1846 , - 3757 , - 300 , - 3187 , - 706 , - 665 , - 3064 , - 95 , - 3470 , - 1477 , - 1924 , - 907 , - 2330 , - 2289 , - 784 , - 1719 , - 1190 , - 3101 , - 3548 , - 2531 , - 50 , - 9 , - 2408 , - 3343 , - 2814 , - 821 , - 1268 , - 251 , - 1674 , - 1633 , - 128 , - 1063 , - 534 , - 2445 , - 2892 , - 1875 , - 3298 , - 3257 , - 1752 , - 2687 , - 2158 , - 165 , - 612 , - 3499 , - 1018 , - 977 , - 3376 , - 407 , - 3782 , - 1789 , - 2236 , - 1219 , - 2642 , - 2601 , - 1096 , - 2031 , - 1502 , - 3413 , - 3860 , - 2843 , - 362 , - 321 , - 2720 , - 3655 , - 3126 , - 1133 , - 1580 , - 563 , - 1986 , - 1945 , - 440 , - 1375 , - 846 , - 2757 , - 3204 , - 2187 , - 3610 , - 3569 , - 2064 , - 2999 , - 2470 , - 477 , - 924 , - 3811 , - 1330 , - 1289 , - 3688 , - 719 , - 190 , - 2101 , - 2548 , - 1531 , - 2954 , - 2913 , - 1408 , - 2343 , - 1814 , - 3725 , - 268 , - 3155 , - 674 , - 633 , - 3032 , - 63 , - 3438 , - 1445 , - 1892 , - 875 , - 2298 , - 2257 , - 752 , - 1687 , - 1158 , - 3069 , - 3516 , - 2499 , - 18 , - 3881 , - 2376 , - 3311 , - 2782 , - 789 , - 1236 , - 219 , - 1642 , - 1601 , - 96 , - 1031 , - 502 , - 2413 , - 2860 , - 1843 , - 3266 , - 3225 , - 1720 , - 2655 , - 2126 , - 133 , - 580 , - 3467 , - 986 , - 945 , - 3344 , - 375 , - 3750 , - 1757 , - 2204 , - 1187 , - 2610 , - 2569 , - 1064 , - 1999 , - 1470 , - 3381 , - 3828 , - 2811 , - 330 , - 289 , - 2688 , - 3623 , - 3094 , - 1101 , - 1548 , - 531 , - 1954 , - 1913 , - 408 , - 1343 , - 814 , - 2725 , - 3172 , - 2155 , - 3578 , - 3537 , - 2032 , - 2967 , - 2438 , - 445 , - 892 , - 3779 , - 1298 , - 1257 , - 3656 , - 687 , - 158 , - 2069 , - 2516 , - 1499 , - 2922 , - 2881 , - 1376 , - 2311 , - 1782 , - 3693 , - 236 , - 3123 , - 642 , - 601 , - 3000 , - 31 , - 3406 , - 1413 , - 1860 , - 843 , - 2266 , - 2225 , - 720 , - 1655 , - 1126 , - 3037 , - 3484 , - 2467 , - 3890 , - 3849 , - 2344 , - 3279 , - 2750 , - 757 , - 1204 , - 187 , - 1610 , - 1569 , - 64 , - 999 , - 470 , - 2381 , - 2828 , - 1811 , - 3234 , - 3193 , - 1688 , - 2623 , - 2094 , - 101 , - 548 , - 3435 , - 954 , - 913 , - 3312 , - 343 , - 3718 , - 1725 , - 2172 , - 1155 , - 2578 , - 2537 , - 1032 , - 1967 , - 1438 , - 3349 , - 3796 , - 2779 , - 298 , - 257 , - 2656 , - 3591 , - 3062 , - 1069 , - 1516 , - 499 , - 1922 , - 1881 , - 376 , - 1311 , - 782 , - 2693 , - 3140 , - 2123 , - 3546 , - 3505 , - 2000 , - 2935 , - 2406 , - 413 , - 860 , - 3747 , - 1266 , - 1225 , - 3624 , - 655 , - 126 , - 2037 , - 2484 , - 1467 , - 2890 , - 2849 , - 1344 , - 2279 , - 1750 , - 3661 , - 204 , - 3091 , - 610 , - 569 , - 2968 , - 3903 , - 3374 , - 1381 , - 1828 , - 811 , - 2234 , - 2193 , - 688 , - 1623 , - 1094 , - 3005 , - 3452 , - 2435 , - 3858 , - 3817 , - 2312 , - 3247 , - 2718 , - 725 , - 1172 , - 155 , - 1578 , - 1537 , - 32 , - 967 , - 438 , - 2349 , - 2796 , - 1779 , - 3202 , - 3161 , - 1656 , - 2591 , - 2062 , - 69 , - 516 , - 3403 , - 922 , - 881 , - 3280 , - 311 , - 3686 , - 1693 , - 2140 , - 1123 , - 2546 , - 2505 , - 1000 , - 1935 , - 1406 , - 3317 , - 3764 , - 2747 , - 266 , - 225 , - 2624 , - 3559 , - 3030 , - 1037 , - 1484 , - 467 , - 1890 , - 1849 , - 344 , - 1279 , - 750 , - 2661 , - 3108 , - 2091 , - 3514 , - 3473 , - 1968 , - 2903 , - 2374 , - 381 , - 828 , - 3715 , - 1234 , - 1193 , - 3592 , - 623 , - 94 , - 2005 , - 2452 , - 1435 , - 2858 , - 2817 , - 1312 , - 2247 , - 1718 , - 3629 , - 172 , - 3059 , - 578 , - 537 , - 2936 , - 3871 , - 3342 , - 1349 , - 1796 , - 779 , - 2202 , - 2161 , - 656 , - 1591 , - 1062 , - 2973 , - 3420 , - 2403 , - 3826 , - 3785 , - 2280 , - 3215 , - 2686 , - 693 , - 1140 , - 123 , - 1546 , - 1505 , - 0 , - 2687 , - 1902 , - 1613 , - 1820 , - 2523 , - 3722 , - 1449 , - 3640 , - 2359 , - 1574 , - 1285 , - 1492 , - 2195 , - 3394 , - 1121 , - 3312 , - 2031 , - 1246 , - 957 , - 1164 , - 1867 , - 3066 , - 793 , - 2984 , - 1703 , - 918 , - 629 , - 836 , - 1539 , - 2738 , - 465 , - 2656 , - 1375 , - 590 , - 301 , - 508 , - 1211 , - 2410 , - 137 , - 2328 , - 1047 , - 262 , - 3941 , - 180 , - 883 , - 2082 , - 3777 , - 2000 , - 719 , - 3902 , - 3613 , - 3820 , - 555 , - 1754 , - 3449 , - 1672 , - 391 , - 3574 , - 3285 , - 3492 , - 227 , - 1426 , - 3121 , - 1344 , - 63 , - 3246 , - 2957 , - 3164 , - 3867 , - 1098 , - 2793 , - 1016 , - 3703 , - 2918 , - 2629 , - 2836 , - 3539 , - 770 , - 2465 , - 688 , - 3375 , - 2590 , - 2301 , - 2508 , - 3211 , - 442 , - 2137 , - 360 , - 3047 , - 2262 , - 1973 , - 2180 , - 2883 , - 114 , - 1809 , - 32 , - 2719 , - 1934 , - 1645 , - 1852 , - 2555 , - 3754 , - 1481 , - 3672 , - 2391 , - 1606 , - 1317 , - 1524 , - 2227 , - 3426 , - 1153 , - 3344 , - 2063 , - 1278 , - 989 , - 1196 , - 1899 , - 3098 , - 825 , - 3016 , - 1735 , - 950 , - 661 , - 868 , - 1571 , - 2770 , - 497 , - 2688 , - 1407 , - 622 , - 333 , - 540 , - 1243 , - 2442 , - 169 , - 2360 , - 1079 , - 294 , - 5 , - 212 , - 915 , - 2114 , - 3809 , - 2032 , - 751 , - 3934 , - 3645 , - 3852 , - 587 , - 1786 , - 3481 , - 1704 , - 423 , - 3606 , - 3317 , - 3524 , - 259 , - 1458 , - 3153 , - 1376 , - 95 , - 3278 , - 2989 , - 3196 , - 3899 , - 1130 , - 2825 , - 1048 , - 3735 , - 2950 , - 2661 , - 2868 , - 3571 , - 802 , - 2497 , - 720 , - 3407 , - 2622 , - 2333 , - 2540 , - 3243 , - 474 , - 2169 , - 392 , - 3079 , - 2294 , - 2005 , - 2212 , - 2915 , - 146 , - 1841 , - 64 , - 2751 , - 1966 , - 1677 , - 1884 , - 2587 , - 3786 , - 1513 , - 3704 , - 2423 , - 1638 , - 1349 , - 1556 , - 2259 , - 3458 , - 1185 , - 3376 , - 2095 , - 1310 , - 1021 , - 1228 , - 1931 , - 3130 , - 857 , - 3048 , - 1767 , - 982 , - 693 , - 900 , - 1603 , - 2802 , - 529 , - 2720 , - 1439 , - 654 , - 365 , - 572 , - 1275 , - 2474 , - 201 , - 2392 , - 1111 , - 326 , - 37 , - 244 , - 947 , - 2146 , - 3841 , - 2064 , - 783 , - 3966 , - 3677 , - 3884 , - 619 , - 1818 , - 3513 , - 1736 , - 455 , - 3638 , - 3349 , - 3556 , - 291 , - 1490 , - 3185 , - 1408 , - 127 , - 3310 , - 3021 , - 3228 , - 3931 , - 1162 , - 2857 , - 1080 , - 3767 , - 2982 , - 2693 , - 2900 , - 3603 , - 834 , - 2529 , - 752 , - 3439 , - 2654 , - 2365 , - 2572 , - 3275 , - 506 , - 2201 , - 424 , - 3111 , - 2326 , - 2037 , - 2244 , - 2947 , - 178 , - 1873 , - 96 , - 2783 , - 1998 , - 1709 , - 1916 , - 2619 , - 3818 , - 1545 , - 3736 , - 2455 , - 1670 , - 1381 , - 1588 , - 2291 , - 3490 , - 1217 , - 3408 , - 2127 , - 1342 , - 1053 , - 1260 , - 1963 , - 3162 , - 889 , - 3080 , - 1799 , - 1014 , - 725 , - 932 , - 1635 , - 2834 , - 561 , - 2752 , - 1471 , - 686 , - 397 , - 604 , - 1307 , - 2506 , - 233 , - 2424 , - 1143 , - 358 , - 69 , - 276 , - 979 , - 2178 , - 3873 , - 2096 , - 815 , - 30 , - 3709 , - 3916 , - 651 , - 1850 , - 3545 , - 1768 , - 487 , - 3670 , - 3381 , - 3588 , - 323 , - 1522 , - 3217 , - 1440 , - 159 , - 3342 , - 3053 , - 3260 , - 3963 , - 1194 , - 2889 , - 1112 , - 3799 , - 3014 , - 2725 , - 2932 , - 3635 , - 866 , - 2561 , - 784 , - 3471 , - 2686 , - 2397 , - 2604 , - 3307 , - 538 , - 2233 , - 456 , - 3143 , - 2358 , - 2069 , - 2276 , - 2979 , - 210 , - 1905 , - 128 , - 2815 , - 2030 , - 1741 , - 1948 , - 2651 , - 3850 , - 1577 , - 3768 , - 2487 , - 1702 , - 1413 , - 1620 , - 2323 , - 3522 , - 1249 , - 3440 , - 2159 , - 1374 , - 1085 , - 1292 , - 1995 , - 3194 , - 921 , - 3112 , - 1831 , - 1046 , - 757 , - 964 , - 1667 , - 2866 , - 593 , - 2784 , - 1503 , - 718 , - 429 , - 636 , - 1339 , - 2538 , - 265 , - 2456 , - 1175 , - 390 , - 101 , - 308 , - 1011 , - 2210 , - 3905 , - 2128 , - 847 , - 62 , - 3741 , - 3948 , - 683 , - 1882 , - 3577 , - 1800 , - 519 , - 3702 , - 3413 , - 3620 , - 355 , - 1554 , - 3249 , - 1472 , - 191 , - 3374 , - 3085 , - 3292 , - 27 , - 1226 , - 2921 , - 1144 , - 3831 , - 3046 , - 2757 , - 2964 , - 3667 , - 898 , - 2593 , - 816 , - 3503 , - 2718 , - 2429 , - 2636 , - 3339 , - 570 , - 2265 , - 488 , - 3175 , - 2390 , - 2101 , - 2308 , - 3011 , - 242 , - 1937 , - 160 , - 2847 , - 2062 , - 1773 , - 1980 , - 2683 , - 3882 , - 1609 , - 3800 , - 2519 , - 1734 , - 1445 , - 1652 , - 2355 , - 3554 , - 1281 , - 3472 , - 2191 , - 1406 , - 1117 , - 1324 , - 2027 , - 3226 , - 953 , - 3144 , - 1863 , - 1078 , - 789 , - 996 , - 1699 , - 2898 , - 625 , - 2816 , - 1535 , - 750 , - 461 , - 668 , - 1371 , - 2570 , - 297 , - 2488 , - 1207 , - 422 , - 133 , - 340 , - 1043 , - 2242 , - 3937 , - 2160 , - 879 , - 94 , - 3773 , - 12 , - 715 , - 1914 , - 3609 , - 1832 , - 551 , - 3734 , - 3445 , - 3652 , - 387 , - 1586 , - 3281 , - 1504 , - 223 , - 3406 , - 3117 , - 3324 , - 59 , - 1258 , - 2953 , - 1176 , - 3863 , - 3078 , - 2789 , - 2996 , - 3699 , - 930 , - 2625 , - 848 , - 3535 , - 2750 , - 2461 , - 2668 , - 3371 , - 602 , - 2297 , - 520 , - 3207 , - 2422 , - 2133 , - 2340 , - 3043 , - 274 , - 1969 , - 192 , - 2879 , - 2094 , - 1805 , - 2012 , - 2715 , - 3914 , - 1641 , - 3832 , - 2551 , - 1766 , - 1477 , - 1684 , - 2387 , - 3586 , - 1313 , - 3504 , - 2223 , - 1438 , - 1149 , - 1356 , - 2059 , - 3258 , - 985 , - 3176 , - 1895 , - 1110 , - 821 , - 1028 , - 1731 , - 2930 , - 657 , - 2848 , - 1567 , - 782 , - 493 , - 700 , - 1403 , - 2602 , - 329 , - 2520 , - 1239 , - 454 , - 165 , - 372 , - 1075 , - 2274 , - 1 , - 2192 , - 911 , - 126 , - 3805 , - 44 , - 747 , - 1946 , - 3641 , - 1864 , - 583 , - 3766 , - 3477 , - 3684 , - 419 , - 1618 , - 3313 , - 1536 , - 255 , - 3438 , - 3149 , - 3356 , - 91 , - 1290 , - 2985 , - 1208 , - 3895 , - 3110 , - 2821 , - 3028 , - 3731 , - 962 , - 2657 , - 880 , - 3567 , - 2782 , - 2493 , - 2700 , - 3403 , - 634 , - 2329 , - 552 , - 3239 , - 2454 , - 2165 , - 2372 , - 3075 , - 306 , - 2001 , - 224 , - 2911 , - 2126 , - 1837 , - 2044 , - 2747 , - 3946 , - 1673 , - 3864 , - 2583 , - 1798 , - 1509 , - 1716 , - 2419 , - 3618 , - 1345 , - 3536 , - 2255 , - 1470 , - 1181 , - 1388 , - 2091 , - 3290 , - 1017 , - 3208 , - 1927 , - 1142 , - 853 , - 1060 , - 1763 , - 2962 , - 689 , - 2880 , - 1599 , - 814 , - 525 , - 732 , - 1435 , - 2634 , - 361 , - 2552 , - 1271 , - 486 , - 197 , - 404 , - 1107 , - 2306 , - 33 , - 2224 , - 943 , - 158 , - 3837 , - 76 , - 779 , - 1978 , - 3673 , - 1896 , - 615 , - 3798 , - 3509 , - 3716 , - 451 , - 1650 , - 3345 , - 1568 , - 287 , - 3470 , - 3181 , - 3388 , - 123 , - 1322 , - 3017 , - 1240 , - 3927 , - 3142 , - 2853 , - 3060 , - 3763 , - 994 , - 2689 , - 912 , - 3599 , - 2814 , - 2525 , - 2732 , - 3435 , - 666 , - 2361 , - 584 , - 3271 , - 2486 , - 2197 , - 2404 , - 3107 , - 338 , - 2033 , - 256 , - 2943 , - 2158 , - 1869 , - 2076 , - 2779 , - 10 , - 1705 , - 3896 , - 2615 , - 1830 , - 1541 , - 1748 , - 2451 , - 3650 , - 1377 , - 3568 , - 2287 , - 1502 , - 1213 , - 1420 , - 2123 , - 3322 , - 1049 , - 3240 , - 1959 , - 1174 , - 885 , - 1092 , - 1795 , - 2994 , - 721 , - 2912 , - 1631 , - 846 , - 557 , - 764 , - 1467 , - 2666 , - 393 , - 2584 , - 1303 , - 518 , - 229 , - 436 , - 1139 , - 2338 , - 65 , - 2256 , - 975 , - 190 , - 3869 , - 108 , - 811 , - 2010 , - 3705 , - 1928 , - 647 , - 3830 , - 3541 , - 3748 , - 483 , - 1682 , - 3377 , - 1600 , - 319 , - 3502 , - 3213 , - 3420 , - 155 , - 1354 , - 3049 , - 1272 , - 3959 , - 3174 , - 2885 , - 3092 , - 3795 , - 1026 , - 2721 , - 944 , - 3631 , - 2846 , - 2557 , - 2764 , - 3467 , - 698 , - 2393 , - 616 , - 3303 , - 2518 , - 2229 , - 2436 , - 3139 , - 370 , - 2065 , - 288 , - 2975 , - 2190 , - 1901 , - 2108 , - 2811 , - 42 , - 1737 , - 3928 , - 2647 , - 1862 , - 1573 , - 1780 , - 2483 , - 3682 , - 1409 , - 3600 , - 2319 , - 1534 , - 1245 , - 1452 , - 2155 , - 3354 , - 1081 , - 3272 , - 1991 , - 1206 , - 917 , - 1124 , - 1827 , - 3026 , - 753 , - 2944 , - 1663 , - 878 , - 589 , - 796 , - 1499 , - 2698 , - 425 , - 2616 , - 1335 , - 550 , - 261 , - 468 , - 1171 , - 2370 , - 97 , - 2288 , - 1007 , - 222 , - 3901 , - 140 , - 843 , - 2042 , - 3737 , - 1960 , - 679 , - 3862 , - 3573 , - 3780 , - 515 , - 1714 , - 3409 , - 1632 , - 351 , - 3534 , - 3245 , - 3452 , - 187 , - 1386 , - 3081 , - 1304 , - 23 , - 3206 , - 2917 , - 3124 , - 3827 , - 1058 , - 2753 , - 976 , - 3663 , - 2878 , - 2589 , - 2796 , - 3499 , - 730 , - 2425 , - 648 , - 3335 , - 2550 , - 2261 , - 2468 , - 3171 , - 402 , - 2097 , - 320 , - 3007 , - 2222 , - 1933 , - 2140 , - 2843 , - 74 , - 1769 , - 3960 , - 2679 , - 1894 , - 1605 , - 1812 , - 2515 , - 3714 , - 1441 , - 3632 , - 2351 , - 1566 , - 1277 , - 1484 , - 2187 , - 3386 , - 1113 , - 3304 , - 2023 , - 1238 , - 949 , - 1156 , - 1859 , - 3058 , - 785 , - 2976 , - 1695 , - 910 , - 621 , - 828 , - 1531 , - 2730 , - 457 , - 2648 , - 1367 , - 582 , - 293 , - 500 , - 1203 , - 2402 , - 129 , - 2320 , - 1039 , - 254 , - 3933 , - 172 , - 875 , - 2074 , - 3769 , - 1992 , - 711 , - 3894 , - 3605 , - 3812 , - 547 , - 1746 , - 3441 , - 1664 , - 383 , - 3566 , - 3277 , - 3484 , - 219 , - 1418 , - 3113 , - 1336 , - 55 , - 3238 , - 2949 , - 3156 , - 3859 , - 1090 , - 2785 , - 1008 , - 3695 , - 2910 , - 2621 , - 2828 , - 3531 , - 762 , - 2457 , - 680 , - 3367 , - 2582 , - 2293 , - 2500 , - 3203 , - 434 , - 2129 , - 352 , - 3039 , - 2254 , - 1965 , - 2172 , - 2875 , - 106 , - 1801 , - 24 , - 2711 , - 1926 , - 1637 , - 1844 , - 2547 , - 3746 , - 1473 , - 3664 , - 2383 , - 1598 , - 1309 , - 1516 , - 2219 , - 3418 , - 1145 , - 3336 , - 2055 , - 1270 , - 981 , - 1188 , - 1891 , - 3090 , - 817 , - 3008 , - 1727 , - 942 , - 653 , - 860 , - 1563 , - 2762 , - 489 , - 2680 , - 1399 , - 614 , - 325 , - 532 , - 1235 , - 2434 , - 161 , - 2352 , - 1071 , - 286 , - 3965 , - 204 , - 907 , - 2106 , - 3801 , - 2024 , - 743 , - 3926 , - 3637 , - 3844 , - 579 , - 1778 , - 3473 , - 1696 , - 415 , - 3598 , - 3309 , - 3516 , - 251 , - 1450 , - 3145 , - 1368 , - 87 , - 3270 , - 2981 , - 3188 , - 3891 , - 1122 , - 2817 , - 1040 , - 3727 , - 2942 , - 2653 , - 2860 , - 3563 , - 794 , - 2489 , - 712 , - 3399 , - 2614 , - 2325 , - 2532 , - 3235 , - 466 , - 2161 , - 384 , - 3071 , - 2286 , - 1997 , - 2204 , - 2907 , - 138 , - 1833 , - 56 , - 2743 , - 1958 , - 1669 , - 1876 , - 2579 , - 3778 , - 1505 , - 3696 , - 2415 , - 1630 , - 1341 , - 1548 , - 2251 , - 3450 , - 1177 , - 3368 , - 2087 , - 1302 , - 1013 , - 1220 , - 1923 , - 3122 , - 849 , - 3040 , - 1759 , - 974 , - 685 , - 892 , - 1595 , - 2794 , - 521 , - 2712 , - 1431 , - 646 , - 357 , - 564 , - 1267 , - 2466 , - 193 , - 2384 , - 1103 , - 318 , - 29 , - 236 , - 939 , - 2138 , - 3833 , - 2056 , - 775 , - 3958 , - 3669 , - 3876 , - 611 , - 1810 , - 3505 , - 1728 , - 447 , - 3630 , - 3341 , - 3548 , - 283 , - 1482 , - 3177 , - 1400 , - 119 , - 3302 , - 3013 , - 3220 , - 3923 , - 1154 , - 2849 , - 1072 , - 3759 , - 2974 , - 2685 , - 2892 , - 3595 , - 826 , - 2521 , - 744 , - 3431 , - 2646 , - 2357 , - 2564 , - 3267 , - 498 , - 2193 , - 416 , - 3103 , - 2318 , - 2029 , - 2236 , - 2939 , - 170 , - 1865 , - 88 , - 2775 , - 1990 , - 1701 , - 1908 , - 2611 , - 3810 , - 1537 , - 3728 , - 2447 , - 1662 , - 1373 , - 1580 , - 2283 , - 3482 , - 1209 , - 3400 , - 2119 , - 1334 , - 1045 , - 1252 , - 1955 , - 3154 , - 881 , - 3072 , - 1791 , - 1006 , - 717 , - 924 , - 1627 , - 2826 , - 553 , - 2744 , - 1463 , - 678 , - 389 , - 596 , - 1299 , - 2498 , - 225 , - 2416 , - 1135 , - 350 , - 61 , - 268 , - 971 , - 2170 , - 3865 , - 2088 , - 807 , - 22 , - 3701 , - 3908 , - 643 , - 1842 , - 3537 , - 1760 , - 479 , - 3662 , - 3373 , - 3580 , - 315 , - 1514 , - 3209 , - 1432 , - 151 , - 3334 , - 3045 , - 3252 , - 3955 , - 1186 , - 2881 , - 1104 , - 3791 , - 3006 , - 2717 , - 2924 , - 3627 , - 858 , - 2553 , - 776 , - 3463 , - 2678 , - 2389 , - 2596 , - 3299 , - 530 , - 2225 , - 448 , - 3135 , - 2350 , - 2061 , - 2268 , - 2971 , - 202 , - 1897 , - 120 , - 2807 , - 2022 , - 1733 , - 1940 , - 2643 , - 3842 , - 1569 , - 3760 , - 2479 , - 1694 , - 1405 , - 1612 , - 2315 , - 3514 , - 1241 , - 3432 , - 2151 , - 1366 , - 1077 , - 1284 , - 1987 , - 3186 , - 913 , - 3104 , - 1823 , - 1038 , - 749 , - 956 , - 1659 , - 2858 , - 585 , - 2776 , - 1495 , - 710 , - 421 , - 628 , - 1331 , - 2530 , - 257 , - 2448 , - 1167 , - 382 , - 93 , - 300 , - 1003 , - 2202 , - 3897 , - 2120 , - 839 , - 54 , - 3733 , - 3940 , - 675 , - 1874 , - 3569 , - 1792 , - 511 , - 3694 , - 3405 , - 3612 , - 347 , - 1546 , - 3241 , - 1464 , - 183 , - 3366 , - 3077 , - 3284 , - 19 , - 1218 , - 2913 , - 1136 , - 3823 , - 3038 , - 2749 , - 2956 , - 3659 , - 890 , - 2585 , - 808 , - 3495 , - 2710 , - 2421 , - 2628 , - 3331 , - 562 , - 2257 , - 480 , - 3167 , - 2382 , - 2093 , - 2300 , - 3003 , - 234 , - 1929 , - 152 , - 2839 , - 2054 , - 1765 , - 1972 , - 2675 , - 3874 , - 1601 , - 3792 , - 2511 , - 1726 , - 1437 , - 1644 , - 2347 , - 3546 , - 1273 , - 3464 , - 2183 , - 1398 , - 1109 , - 1316 , - 2019 , - 3218 , - 945 , - 3136 , - 1855 , - 1070 , - 781 , - 988 , - 1691 , - 2890 , - 617 , - 2808 , - 1527 , - 742 , - 453 , - 660 , - 1363 , - 2562 , - 289 , - 2480 , - 1199 , - 414 , - 125 , - 332 , - 1035 , - 2234 , - 3929 , - 2152 , - 871 , - 86 , - 3765 , - 4 , - 707 , - 1906 , - 3601 , - 1824 , - 543 , - 3726 , - 3437 , - 3644 , - 379 , - 1578 , - 3273 , - 1496 , - 215 , - 3398 , - 3109 , - 3316 , - 51 , - 1250 , - 2945 , - 1168 , - 3855 , - 3070 , - 2781 , - 2988 , - 3691 , - 922 , - 2617 , - 840 , - 3527 , - 2742 , - 2453 , - 2660 , - 3363 , - 594 , - 2289 , - 512 , - 3199 , - 2414 , - 2125 , - 2332 , - 3035 , - 266 , - 1961 , - 184 , - 2871 , - 2086 , - 1797 , - 2004 , - 2707 , - 3906 , - 1633 , - 3824 , - 2543 , - 1758 , - 1469 , - 1676 , - 2379 , - 3578 , - 1305 , - 3496 , - 2215 , - 1430 , - 1141 , - 1348 , - 2051 , - 3250 , - 977 , - 3168 , - 1887 , - 1102 , - 813 , - 1020 , - 1723 , - 2922 , - 649 , - 2840 , - 1559 , - 774 , - 485 , - 692 , - 1395 , - 2594 , - 321 , - 2512 , - 1231 , - 446 , - 157 , - 364 , - 1067 , - 2266 , - 3961 , - 2184 , - 903 , - 118 , - 3797 , - 36 , - 739 , - 1938 , - 3633 , - 1856 , - 575 , - 3758 , - 3469 , - 3676 , - 411 , - 1610 , - 3305 , - 1528 , - 247 , - 3430 , - 3141 , - 3348 , - 83 , - 1282 , - 2977 , - 1200 , - 3887 , - 3102 , - 2813 , - 3020 , - 3723 , - 954 , - 2649 , - 872 , - 3559 , - 2774 , - 2485 , - 2692 , - 3395 , - 626 , - 2321 , - 544 , - 3231 , - 2446 , - 2157 , - 2364 , - 3067 , - 298 , - 1993 , - 216 , - 2903 , - 2118 , - 1829 , - 2036 , - 2739 , - 3938 , - 1665 , - 3856 , - 2575 , - 1790 , - 1501 , - 1708 , - 2411 , - 3610 , - 1337 , - 3528 , - 2247 , - 1462 , - 1173 , - 1380 , - 2083 , - 3282 , - 1009 , - 3200 , - 1919 , - 1134 , - 845 , - 1052 , - 1755 , - 2954 , - 681 , - 2872 , - 1591 , - 806 , - 517 , - 724 , - 1427 , - 2626 , - 353 , - 2544 , - 1263 , - 478 , - 189 , - 396 , - 1099 , - 2298 , - 25 , - 2216 , - 935 , - 150 , - 3829 , - 68 , - 771 , - 1970 , - 3665 , - 1888 , - 607 , - 3790 , - 3501 , - 3708 , - 443 , - 1642 , - 3337 , - 1560 , - 279 , - 3462 , - 3173 , - 3380 , - 115 , - 1314 , - 3009 , - 1232 , - 3919 , - 3134 , - 2845 , - 3052 , - 3755 , - 986 , - 2681 , - 904 , - 3591 , - 2806 , - 2517 , - 2724 , - 3427 , - 658 , - 2353 , - 576 , - 3263 , - 2478 , - 2189 , - 2396 , - 3099 , - 330 , - 2025 , - 248 , - 2935 , - 2150 , - 1861 , - 2068 , - 2771 , - 2 , - 1697 , - 3888 , - 2607 , - 1822 , - 1533 , - 1740 , - 2443 , - 3642 , - 1369 , - 3560 , - 2279 , - 1494 , - 1205 , - 1412 , - 2115 , - 3314 , - 1041 , - 3232 , - 1951 , - 1166 , - 877 , - 1084 , - 1787 , - 2986 , - 713 , - 2904 , - 1623 , - 838 , - 549 , - 756 , - 1459 , - 2658 , - 385 , - 2576 , - 1295 , - 510 , - 221 , - 428 , - 1131 , - 2330 , - 57 , - 2248 , - 967 , - 182 , - 3861 , - 100 , - 803 , - 2002 , - 3697 , - 1920 , - 639 , - 3822 , - 3533 , - 3740 , - 475 , - 1674 , - 3369 , - 1592 , - 311 , - 3494 , - 3205 , - 3412 , - 147 , - 1346 , - 3041 , - 1264 , - 3951 , - 3166 , - 2877 , - 3084 , - 3787 , - 1018 , - 2713 , - 936 , - 3623 , - 2838 , - 2549 , - 2756 , - 3459 , - 690 , - 2385 , - 608 , - 3295 , - 2510 , - 2221 , - 2428 , - 3131 , - 362 , - 2057 , - 280 , - 2967 , - 2182 , - 1893 , - 2100 , - 2803 , - 34 , - 1729 , - 3920 , - 2639 , - 1854 , - 1565 , - 1772 , - 2475 , - 3674 , - 1401 , - 3592 , - 2311 , - 1526 , - 1237 , - 1444 , - 2147 , - 3346 , - 1073 , - 3264 , - 1983 , - 1198 , - 909 , - 1116 , - 1819 , - 3018 , - 745 , - 2936 , - 1655 , - 870 , - 581 , - 788 , - 1491 , - 2690 , - 417 , - 2608 , - 1327 , - 542 , - 253 , - 460 , - 1163 , - 2362 , - 89 , - 2280 , - 999 , - 214 , - 3893 , - 132 , - 835 , - 2034 , - 3729 , - 1952 , - 671 , - 3854 , - 3565 , - 3772 , - 507 , - 1706 , - 3401 , - 1624 , - 343 , - 3526 , - 3237 , - 3444 , - 179 , - 1378 , - 3073 , - 1296 , - 15 , - 3198 , - 2909 , - 3116 , - 3819 , - 1050 , - 2745 , - 968 , - 3655 , - 2870 , - 2581 , - 2788 , - 3491 , - 722 , - 2417 , - 640 , - 3327 , - 2542 , - 2253 , - 2460 , - 3163 , - 394 , - 2089 , - 312 , - 2999 , - 2214 , - 1925 , - 2132 , - 2835 , - 66 , - 1761 , - 3952 , - 2671 , - 1886 , - 1597 , - 1804 , - 2507 , - 3706 , - 1433 , - 3624 , - 2343 , - 1558 , - 1269 , - 1476 , - 2179 , - 3378 , - 1105 , - 3296 , - 2015 , - 1230 , - 941 , - 1148 , - 1851 , - 3050 , - 777 , - 2968 , - 1687 , - 902 , - 613 , - 820 , - 1523 , - 2722 , - 449 , - 2640 , - 1359 , - 574 , - 285 , - 492 , - 1195 , - 2394 , - 121 , - 2312 , - 1031 , - 246 , - 3925 , - 164 , - 867 , - 2066 , - 3761 , - 1984 , - 703 , - 3886 , - 3597 , - 3804 , - 539 , - 1738 , - 3433 , - 1656 , - 375 , - 3558 , - 3269 , - 3476 , - 211 , - 1410 , - 3105 , - 1328 , - 47 , - 3230 , - 2941 , - 3148 , - 3851 , - 1082 , - 2777 , - 1000 , - 3687 , - 2902 , - 2613 , - 2820 , - 3523 , - 754 , - 2449 , - 672 , - 3359 , - 2574 , - 2285 , - 2492 , - 3195 , - 426 , - 2121 , - 344 , - 3031 , - 2246 , - 1957 , - 2164 , - 2867 , - 98 , - 1793 , - 16 , - 2703 , - 1918 , - 1629 , - 1836 , - 2539 , - 3738 , - 1465 , - 3656 , - 2375 , - 1590 , - 1301 , - 1508 , - 2211 , - 3410 , - 1137 , - 3328 , - 2047 , - 1262 , - 973 , - 1180 , - 1883 , - 3082 , - 809 , - 3000 , - 1719 , - 934 , - 645 , - 852 , - 1555 , - 2754 , - 481 , - 2672 , - 1391 , - 606 , - 317 , - 524 , - 1227 , - 2426 , - 153 , - 2344 , - 1063 , - 278 , - 3957 , - 196 , - 899 , - 2098 , - 3793 , - 2016 , - 735 , - 3918 , - 3629 , - 3836 , - 571 , - 1770 , - 3465 , - 1688 , - 407 , - 3590 , - 3301 , - 3508 , - 243 , - 1442 , - 3137 , - 1360 , - 79 , - 3262 , - 2973 , - 3180 , - 3883 , - 1114 , - 2809 , - 1032 , - 3719 , - 2934 , - 2645 , - 2852 , - 3555 , - 786 , - 2481 , - 704 , - 3391 , - 2606 , - 2317 , - 2524 , - 3227 , - 458 , - 2153 , - 376 , - 3063 , - 2278 , - 1989 , - 2196 , - 2899 , - 130 , - 1825 , - 48 , - 2735 , - 1950 , - 1661 , - 1868 , - 2571 , - 3770 , - 1497 , - 3688 , - 2407 , - 1622 , - 1333 , - 1540 , - 2243 , - 3442 , - 1169 , - 3360 , - 2079 , - 1294 , - 1005 , - 1212 , - 1915 , - 3114 , - 841 , - 3032 , - 1751 , - 966 , - 677 , - 884 , - 1587 , - 2786 , - 513 , - 2704 , - 1423 , - 638 , - 349 , - 556 , - 1259 , - 2458 , - 185 , - 2376 , - 1095 , - 310 , - 21 , - 228 , - 931 , - 2130 , - 3825 , - 2048 , - 767 , - 3950 , - 3661 , - 3868 , - 603 , - 1802 , - 3497 , - 1720 , - 439 , - 3622 , - 3333 , - 3540 , - 275 , - 1474 , - 3169 , - 1392 , - 111 , - 3294 , - 3005 , - 3212 , - 3915 , - 1146 , - 2841 , - 1064 , - 3751 , - 2966 , - 2677 , - 2884 , - 3587 , - 818 , - 2513 , - 736 , - 3423 , - 2638 , - 2349 , - 2556 , - 3259 , - 490 , - 2185 , - 408 , - 3095 , - 2310 , - 2021 , - 2228 , - 2931 , - 162 , - 1857 , - 80 , - 2767 , - 1982 , - 1693 , - 1900 , - 2603 , - 3802 , - 1529 , - 3720 , - 2439 , - 1654 , - 1365 , - 1572 , - 2275 , - 3474 , - 1201 , - 3392 , - 2111 , - 1326 , - 1037 , - 1244 , - 1947 , - 3146 , - 873 , - 3064 , - 1783 , - 998 , - 709 , - 916 , - 1619 , - 2818 , - 545 , - 2736 , - 1455 , - 670 , - 381 , - 588 , - 1291 , - 2490 , - 217 , - 2408 , - 1127 , - 342 , - 53 , - 260 , - 963 , - 2162 , - 3857 , - 2080 , - 799 , - 14 , - 3693 , - 3900 , - 635 , - 1834 , - 3529 , - 1752 , - 471 , - 3654 , - 3365 , - 3572 , - 307 , - 1506 , - 3201 , - 1424 , - 143 , - 3326 , - 3037 , - 3244 , - 3947 , - 1178 , - 2873 , - 1096 , - 3783 , - 2998 , - 2709 , - 2916 , - 3619 , - 850 , - 2545 , - 768 , - 3455 , - 2670 , - 2381 , - 2588 , - 3291 , - 522 , - 2217 , - 440 , - 3127 , - 2342 , - 2053 , - 2260 , - 2963 , - 194 , - 1889 , - 112 , - 2799 , - 2014 , - 1725 , - 1932 , - 2635 , - 3834 , - 1561 , - 3752 , - 2471 , - 1686 , - 1397 , - 1604 , - 2307 , - 3506 , - 1233 , - 3424 , - 2143 , - 1358 , - 1069 , - 1276 , - 1979 , - 3178 , - 905 , - 3096 , - 1815 , - 1030 , - 741 , - 948 , - 1651 , - 2850 , - 577 , - 2768 , - 1487 , - 702 , - 413 , - 620 , - 1323 , - 2522 , - 249 , - 2440 , - 1159 , - 374 , - 85 , - 292 , - 995 , - 2194 , - 3889 , - 2112 , - 831 , - 46 , - 3725 , - 3932 , - 667 , - 1866 , - 3561 , - 1784 , - 503 , - 3686 , - 3397 , - 3604 , - 339 , - 1538 , - 3233 , - 1456 , - 175 , - 3358 , - 3069 , - 3276 , - 11 , - 1210 , - 2905 , - 1128 , - 3815 , - 3030 , - 2741 , - 2948 , - 3651 , - 882 , - 2577 , - 800 , - 3487 , - 2702 , - 2413 , - 2620 , - 3323 , - 554 , - 2249 , - 472 , - 3159 , - 2374 , - 2085 , - 2292 , - 2995 , - 226 , - 1921 , - 144 , - 2831 , - 2046 , - 1757 , - 1964 , - 2667 , - 3866 , - 1593 , - 3784 , - 2503 , - 1718 , - 1429 , - 1636 , - 2339 , - 3538 , - 1265 , - 3456 , - 2175 , - 1390 , - 1101 , - 1308 , - 2011 , - 3210 , - 937 , - 3128 , - 1847 , - 1062 , - 773 , - 980 , - 1683 , - 2882 , - 609 , - 2800 , - 1519 , - 734 , - 445 , - 652 , - 1355 , - 2554 , - 281 , - 2472 , - 1191 , - 406 , - 117 , - 324 , - 1027 , - 2226 , - 3921 , - 2144 , - 863 , - 78 , - 3757 , - 3964 , - 699 , - 1898 , - 3593 , - 1816 , - 535 , - 3718 , - 3429 , - 3636 , - 371 , - 1570 , - 3265 , - 1488 , - 207 , - 3390 , - 3101 , - 3308 , - 43 , - 1242 , - 2937 , - 1160 , - 3847 , - 3062 , - 2773 , - 2980 , - 3683 , - 914 , - 2609 , - 832 , - 3519 , - 2734 , - 2445 , - 2652 , - 3355 , - 586 , - 2281 , - 504 , - 3191 , - 2406 , - 2117 , - 2324 , - 3027 , - 258 , - 1953 , - 176 , - 2863 , - 2078 , - 1789 , - 1996 , - 2699 , - 3898 , - 1625 , - 3816 , - 2535 , - 1750 , - 1461 , - 1668 , - 2371 , - 3570 , - 1297 , - 3488 , - 2207 , - 1422 , - 1133 , - 1340 , - 2043 , - 3242 , - 969 , - 3160 , - 1879 , - 1094 , - 805 , - 1012 , - 1715 , - 2914 , - 641 , - 2832 , - 1551 , - 766 , - 477 , - 684 , - 1387 , - 2586 , - 313 , - 2504 , - 1223 , - 438 , - 149 , - 356 , - 1059 , - 2258 , - 3953 , - 2176 , - 895 , - 110 , - 3789 , - 28 , - 731 , - 1930 , - 3625 , - 1848 , - 567 , - 3750 , - 3461 , - 3668 , - 403 , - 1602 , - 3297 , - 1520 , - 239 , - 3422 , - 3133 , - 3340 , - 75 , - 1274 , - 2969 , - 1192 , - 3879 , - 3094 , - 2805 , - 3012 , - 3715 , - 946 , - 2641 , - 864 , - 3551 , - 2766 , - 2477 , - 2684 , - 3387 , - 618 , - 2313 , - 536 , - 3223 , - 2438 , - 2149 , - 2356 , - 3059 , - 290 , - 1985 , - 208 , - 2895 , - 2110 , - 1821 , - 2028 , - 2731 , - 3930 , - 1657 , - 3848 , - 2567 , - 1782 , - 1493 , - 1700 , - 2403 , - 3602 , - 1329 , - 3520 , - 2239 , - 1454 , - 1165 , - 1372 , - 2075 , - 3274 , - 1001 , - 3192 , - 1911 , - 1126 , - 837 , - 1044 , - 1747 , - 2946 , - 673 , - 2864 , - 1583 , - 798 , - 509 , - 716 , - 1419 , - 2618 , - 345 , - 2536 , - 1255 , - 470 , - 181 , - 388 , - 1091 , - 2290 , - 17 , - 2208 , - 927 , - 142 , - 3821 , - 60 , - 763 , - 1962 , - 3657 , - 1880 , - 599 , - 3782 , - 3493 , - 3700 , - 435 , - 1634 , - 3329 , - 1552 , - 271 , - 3454 , - 3165 , - 3372 , - 107 , - 1306 , - 3001 , - 1224 , - 3911 , - 3126 , - 2837 , - 3044 , - 3747 , - 978 , - 2673 , - 896 , - 3583 , - 2798 , - 2509 , - 2716 , - 3419 , - 650 , - 2345 , - 568 , - 3255 , - 2470 , - 2181 , - 2388 , - 3091 , - 322 , - 2017 , - 240 , - 2927 , - 2142 , - 1853 , - 2060 , - 2763 , - 3962 , - 1689 , - 3880 , - 2599 , - 1814 , - 1525 , - 1732 , - 2435 , - 3634 , - 1361 , - 3552 , - 2271 , - 1486 , - 1197 , - 1404 , - 2107 , - 3306 , - 1033 , - 3224 , - 1943 , - 1158 , - 869 , - 1076 , - 1779 , - 2978 , - 705 , - 2896 , - 1615 , - 830 , - 541 , - 748 , - 1451 , - 2650 , - 377 , - 2568 , - 1287 , - 502 , - 213 , - 420 , - 1123 , - 2322 , - 49 , - 2240 , - 959 , - 174 , - 3853 , - 92 , - 795 , - 1994 , - 3689 , - 1912 , - 631 , - 3814 , - 3525 , - 3732 , - 467 , - 1666 , - 3361 , - 1584 , - 303 , - 3486 , - 3197 , - 3404 , - 139 , - 1338 , - 3033 , - 1256 , - 3943 , - 3158 , - 2869 , - 3076 , - 3779 , - 1010 , - 2705 , - 928 , - 3615 , - 2830 , - 2541 , - 2748 , - 3451 , - 682 , - 2377 , - 600 , - 3287 , - 2502 , - 2213 , - 2420 , - 3123 , - 354 , - 2049 , - 272 , - 2959 , - 2174 , - 1885 , - 2092 , - 2795 , - 26 , - 1721 , - 3912 , - 2631 , - 1846 , - 1557 , - 1764 , - 2467 , - 3666 , - 1393 , - 3584 , - 2303 , - 1518 , - 1229 , - 1436 , - 2139 , - 3338 , - 1065 , - 3256 , - 1975 , - 1190 , - 901 , - 1108 , - 1811 , - 3010 , - 737 , - 2928 , - 1647 , - 862 , - 573 , - 780 , - 1483 , - 2682 , - 409 , - 2600 , - 1319 , - 534 , - 245 , - 452 , - 1155 , - 2354 , - 81 , - 2272 , - 991 , - 206 , - 3885 , - 124 , - 827 , - 2026 , - 3721 , - 1944 , - 663 , - 3846 , - 3557 , - 3764 , - 499 , - 1698 , - 3393 , - 1616 , - 335 , - 3518 , - 3229 , - 3436 , - 171 , - 1370 , - 3065 , - 1288 , - 7 , - 3190 , - 2901 , - 3108 , - 3811 , - 1042 , - 2737 , - 960 , - 3647 , - 2862 , - 2573 , - 2780 , - 3483 , - 714 , - 2409 , - 632 , - 3319 , - 2534 , - 2245 , - 2452 , - 3155 , - 386 , - 2081 , - 304 , - 2991 , - 2206 , - 1917 , - 2124 , - 2827 , - 58 , - 1753 , - 3944 , - 2663 , - 1878 , - 1589 , - 1796 , - 2499 , - 3698 , - 1425 , - 3616 , - 2335 , - 1550 , - 1261 , - 1468 , - 2171 , - 3370 , - 1097 , - 3288 , - 2007 , - 1222 , - 933 , - 1140 , - 1843 , - 3042 , - 769 , - 2960 , - 1679 , - 894 , - 605 , - 812 , - 1515 , - 2714 , - 441 , - 2632 , - 1351 , - 566 , - 277 , - 484 , - 1187 , - 2386 , - 113 , - 2304 , - 1023 , - 238 , - 3917 , - 156 , - 859 , - 2058 , - 3753 , - 1976 , - 695 , - 3878 , - 3589 , - 3796 , - 531 , - 1730 , - 3425 , - 1648 , - 367 , - 3550 , - 3261 , - 3468 , - 203 , - 1402 , - 3097 , - 1320 , - 39 , - 3222 , - 2933 , - 3140 , - 3843 , - 1074 , - 2769 , - 992 , - 3679 , - 2894 , - 2605 , - 2812 , - 3515 , - 746 , - 2441 , - 664 , - 3351 , - 2566 , - 2277 , - 2484 , - 3187 , - 418 , - 2113 , - 336 , - 3023 , - 2238 , - 1949 , - 2156 , - 2859 , - 90 , - 1785 , - 8 , - 2695 , - 1910 , - 1621 , - 1828 , - 2531 , - 3730 , - 1457 , - 3648 , - 2367 , - 1582 , - 1293 , - 1500 , - 2203 , - 3402 , - 1129 , - 3320 , - 2039 , - 1254 , - 965 , - 1172 , - 1875 , - 3074 , - 801 , - 2992 , - 1711 , - 926 , - 637 , - 844 , - 1547 , - 2746 , - 473 , - 2664 , - 1383 , - 598 , - 309 , - 516 , - 1219 , - 2418 , - 145 , - 2336 , - 1055 , - 270 , - 3949 , - 188 , - 891 , - 2090 , - 3785 , - 2008 , - 727 , - 3910 , - 3621 , - 3828 , - 563 , - 1762 , - 3457 , - 1680 , - 399 , - 3582 , - 3293 , - 3500 , - 235 , - 1434 , - 3129 , - 1352 , - 71 , - 3254 , - 2965 , - 3172 , - 3875 , - 1106 , - 2801 , - 1024 , - 3711 , - 2926 , - 2637 , - 2844 , - 3547 , - 778 , - 2473 , - 696 , - 3383 , - 2598 , - 2309 , - 2516 , - 3219 , - 450 , - 2145 , - 368 , - 3055 , - 2270 , - 1981 , - 2188 , - 2891 , - 122 , - 1817 , - 40 , - 2727 , - 1942 , - 1653 , - 1860 , - 2563 , - 3762 , - 1489 , - 3680 , - 2399 , - 1614 , - 1325 , - 1532 , - 2235 , - 3434 , - 1161 , - 3352 , - 2071 , - 1286 , - 997 , - 1204 , - 1907 , - 3106 , - 833 , - 3024 , - 1743 , - 958 , - 669 , - 876 , - 1579 , - 2778 , - 505 , - 2696 , - 1415 , - 630 , - 341 , - 548 , - 1251 , - 2450 , - 177 , - 2368 , - 1087 , - 302 , - 13 , - 220 , - 923 , - 2122 , - 3817 , - 2040 , - 759 , - 3942 , - 3653 , - 3860 , - 595 , - 1794 , - 3489 , - 1712 , - 431 , - 3614 , - 3325 , - 3532 , - 267 , - 1466 , - 3161 , - 1384 , - 103 , - 3286 , - 2997 , - 3204 , - 3907 , - 1138 , - 2833 , - 1056 , - 3743 , - 2958 , - 2669 , - 2876 , - 3579 , - 810 , - 2505 , - 728 , - 3415 , - 2630 , - 2341 , - 2548 , - 3251 , - 482 , - 2177 , - 400 , - 3087 , - 2302 , - 2013 , - 2220 , - 2923 , - 154 , - 1849 , - 72 , - 2759 , - 1974 , - 1685 , - 1892 , - 2595 , - 3794 , - 1521 , - 3712 , - 2431 , - 1646 , - 1357 , - 1564 , - 2267 , - 3466 , - 1193 , - 3384 , - 2103 , - 1318 , - 1029 , - 1236 , - 1939 , - 3138 , - 865 , - 3056 , - 1775 , - 990 , - 701 , - 908 , - 1611 , - 2810 , - 537 , - 2728 , - 1447 , - 662 , - 373 , - 580 , - 1283 , - 2482 , - 209 , - 2400 , - 1119 , - 334 , - 45 , - 252 , - 955 , - 2154 , - 3849 , - 2072 , - 791 , - 6 , - 3685 , - 3892 , - 627 , - 1826 , - 3521 , - 1744 , - 463 , - 3646 , - 3357 , - 3564 , - 299 , - 1498 , - 3193 , - 1416 , - 135 , - 3318 , - 3029 , - 3236 , - 3939 , - 1170 , - 2865 , - 1088 , - 3775 , - 2990 , - 2701 , - 2908 , - 3611 , - 842 , - 2537 , - 760 , - 3447 , - 2662 , - 2373 , - 2580 , - 3283 , - 514 , - 2209 , - 432 , - 3119 , - 2334 , - 2045 , - 2252 , - 2955 , - 186 , - 1881 , - 104 , - 2791 , - 2006 , - 1717 , - 1924 , - 2627 , - 3826 , - 1553 , - 3744 , - 2463 , - 1678 , - 1389 , - 1596 , - 2299 , - 3498 , - 1225 , - 3416 , - 2135 , - 1350 , - 1061 , - 1268 , - 1971 , - 3170 , - 897 , - 3088 , - 1807 , - 1022 , - 733 , - 940 , - 1643 , - 2842 , - 569 , - 2760 , - 1479 , - 694 , - 405 , - 612 , - 1315 , - 2514 , - 241 , - 2432 , - 1151 , - 366 , - 77 , - 284 , - 987 , - 2186 , - 3881 , - 2104 , - 823 , - 38 , - 3717 , - 3924 , - 659 , - 1858 , - 3553 , - 1776 , - 495 , - 3678 , - 3389 , - 3596 , - 331 , - 1530 , - 3225 , - 1448 , - 167 , - 3350 , - 3061 , - 3268 , - 3 , - 1202 , - 2897 , - 1120 , - 3807 , - 3022 , - 2733 , - 2940 , - 3643 , - 874 , - 2569 , - 792 , - 3479 , - 2694 , - 2405 , - 2612 , - 3315 , - 546 , - 2241 , - 464 , - 3151 , - 2366 , - 2077 , - 2284 , - 2987 , - 218 , - 1913 , - 136 , - 2823 , - 2038 , - 1749 , - 1956 , - 2659 , - 3858 , - 1585 , - 3776 , - 2495 , - 1710 , - 1421 , - 1628 , - 2331 , - 3530 , - 1257 , - 3448 , - 2167 , - 1382 , - 1093 , - 1300 , - 2003 , - 3202 , - 929 , - 3120 , - 1839 , - 1054 , - 765 , - 972 , - 1675 , - 2874 , - 601 , - 2792 , - 1511 , - 726 , - 437 , - 644 , - 1347 , - 2546 , - 273 , - 2464 , - 1183 , - 398 , - 109 , - 316 , - 1019 , - 2218 , - 3913 , - 2136 , - 855 , - 70 , - 3749 , - 3956 , - 691 , - 1890 , - 3585 , - 1808 , - 527 , - 3710 , - 3421 , - 3628 , - 363 , - 1562 , - 3257 , - 1480 , - 199 , - 3382 , - 3093 , - 3300 , - 35 , - 1234 , - 2929 , - 1152 , - 3839 , - 3054 , - 2765 , - 2972 , - 3675 , - 906 , - 2601 , - 824 , - 3511 , - 2726 , - 2437 , - 2644 , - 3347 , - 578 , - 2273 , - 496 , - 3183 , - 2398 , - 2109 , - 2316 , - 3019 , - 250 , - 1945 , - 168 , - 2855 , - 2070 , - 1781 , - 1988 , - 2691 , - 3890 , - 1617 , - 3808 , - 2527 , - 1742 , - 1453 , - 1660 , - 2363 , - 3562 , - 1289 , - 3480 , - 2199 , - 1414 , - 1125 , - 1332 , - 2035 , - 3234 , - 961 , - 3152 , - 1871 , - 1086 , - 797 , - 1004 , - 1707 , - 2906 , - 633 , - 2824 , - 1543 , - 758 , - 469 , - 676 , - 1379 , - 2578 , - 305 , - 2496 , - 1215 , - 430 , - 141 , - 348 , - 1051 , - 2250 , - 3945 , - 2168 , - 887 , - 102 , - 3781 , - 20 , - 723 , - 1922 , - 3617 , - 1840 , - 559 , - 3742 , - 3453 , - 3660 , - 395 , - 1594 , - 3289 , - 1512 , - 231 , - 3414 , - 3125 , - 3332 , - 67 , - 1266 , - 2961 , - 1184 , - 3871 , - 3086 , - 2797 , - 3004 , - 3707 , - 938 , - 2633 , - 856 , - 3543 , - 2758 , - 2469 , - 2676 , - 3379 , - 610 , - 2305 , - 528 , - 3215 , - 2430 , - 2141 , - 2348 , - 3051 , - 282 , - 1977 , - 200 , - 2887 , - 2102 , - 1813 , - 2020 , - 2723 , - 3922 , - 1649 , - 3840 , - 2559 , - 1774 , - 1485 , - 1692 , - 2395 , - 3594 , - 1321 , - 3512 , - 2231 , - 1446 , - 1157 , - 1364 , - 2067 , - 3266 , - 993 , - 3184 , - 1903 , - 1118 , - 829 , - 1036 , - 1739 , - 2938 , - 665 , - 2856 , - 1575 , - 790 , - 501 , - 708 , - 1411 , - 2610 , - 337 , - 2528 , - 1247 , - 462 , - 173 , - 380 , - 1083 , - 2282 , - 9 , - 2200 , - 919 , - 134 , - 3813 , - 52 , - 755 , - 1954 , - 3649 , - 1872 , - 591 , - 3774 , - 3485 , - 3692 , - 427 , - 1626 , - 3321 , - 1544 , - 263 , - 3446 , - 3157 , - 3364 , - 99 , - 1298 , - 2993 , - 1216 , - 3903 , - 3118 , - 2829 , - 3036 , - 3739 , - 970 , - 2665 , - 888 , - 3575 , - 2790 , - 2501 , - 2708 , - 3411 , - 642 , - 2337 , - 560 , - 3247 , - 2462 , - 2173 , - 2380 , - 3083 , - 314 , - 2009 , - 232 , - 2919 , - 2134 , - 1845 , - 2052 , - 2755 , - 3954 , - 1681 , - 3872 , - 2591 , - 1806 , - 1517 , - 1724 , - 2427 , - 3626 , - 1353 , - 3544 , - 2263 , - 1478 , - 1189 , - 1396 , - 2099 , - 3298 , - 1025 , - 3216 , - 1935 , - 1150 , - 861 , - 1068 , - 1771 , - 2970 , - 697 , - 2888 , - 1607 , - 822 , - 533 , - 740 , - 1443 , - 2642 , - 369 , - 2560 , - 1279 , - 494 , - 205 , - 412 , - 1115 , - 2314 , - 41 , - 2232 , - 951 , - 166 , - 3845 , - 84 , - 787 , - 1986 , - 3681 , - 1904 , - 623 , - 3806 , - 3517 , - 3724 , - 459 , - 1658 , - 3353 , - 1576 , - 295 , - 3478 , - 3189 , - 3396 , - 131 , - 1330 , - 3025 , - 1248 , - 3935 , - 3150 , - 2861 , - 3068 , - 3771 , - 1002 , - 2697 , - 920 , - 3607 , - 2822 , - 2533 , - 2740 , - 3443 , - 674 , - 2369 , - 592 , - 3279 , - 2494 , - 2205 , - 2412 , - 3115 , - 346 , - 2041 , - 264 , - 2951 , - 2166 , - 1877 , - 2084 , - 2787 , - 18 , - 1713 , - 3904 , - 2623 , - 1838 , - 1549 , - 1756 , - 2459 , - 3658 , - 1385 , - 3576 , - 2295 , - 1510 , - 1221 , - 1428 , - 2131 , - 3330 , - 1057 , - 3248 , - 1967 , - 1182 , - 893 , - 1100 , - 1803 , - 3002 , - 729 , - 2920 , - 1639 , - 854 , - 565 , - 772 , - 1475 , - 2674 , - 401 , - 2592 , - 1311 , - 526 , - 237 , - 444 , - 1147 , - 2346 , - 73 , - 2264 , - 983 , - 198 , - 3877 , - 116 , - 819 , - 2018 , - 3713 , - 1936 , - 655 , - 3838 , - 3549 , - 3756 , - 491 , - 1690 , - 3385 , - 1608 , - 327 , - 3510 , - 3221 , - 3428 , - 163 , - 1362 , - 3057 , - 1280 , - 3967 , - 3182 , - 2893 , - 3100 , - 3803 , - 1034 , - 2729 , - 952 , - 3639 , - 2854 , - 2565 , - 2772 , - 3475 , - 706 , - 2401 , - 624 , - 3311 , - 2526 , - 2237 , - 2444 , - 3147 , - 378 , - 2073 , - 296 , - 2983 , - 2198 , - 1909 , - 2116 , - 2819 , - 50 , - 1745 , - 3936 , - 2655 , - 1870 , - 1581 , - 1788 , - 2491 , - 3690 , - 1417 , - 3608 , - 2327 , - 1542 , - 1253 , - 1460 , - 2163 , - 3362 , - 1089 , - 3280 , - 1999 , - 1214 , - 925 , - 1132 , - 1835 , - 3034 , - 761 , - 2952 , - 1671 , - 886 , - 597 , - 804 , - 1507 , - 2706 , - 433 , - 2624 , - 1343 , - 558 , - 269 , - 476 , - 1179 , - 2378 , - 105 , - 2296 , - 1015 , - 230 , - 3909 , - 148 , - 851 , - 2050 , - 3745 , - 1968 , - 687 , - 3870 , - 3581 , - 3788 , - 523 , - 1722 , - 3417 , - 1640 , - 359 , - 3542 , - 3253 , - 3460 , - 195 , - 1394 , - 3089 , - 1312 , - 31 , - 3214 , - 2925 , - 3132 , - 3835 , - 1066 , - 2761 , - 984 , - 3671 , - 2886 , - 2597 , - 2804 , - 3507 , - 738 , - 2433 , - 656 , - 3343 , - 2558 , - 2269 , - 2476 , - 3179 , - 410 , - 2105 , - 328 , - 3015 , - 2230 , - 1941 , - 2148 , - 2851 , - 82 , - 1777 , - 0 , - 2983 , - 3614 , - 1893 , - 1852 , - 3491 , - 2778 , - 3745 , - 2360 , - 2655 , - 598 , - 221 , - 1524 , - 475 , - 1106 , - 3417 , - 3376 , - 983 , - 270 , - 1237 , - 3884 , - 147 , - 2122 , - 1745 , - 3048 , - 1999 , - 2630 , - 909 , - 868 , - 2507 , - 1794 , - 2761 , - 1376 , - 1671 , - 3646 , - 3269 , - 540 , - 3523 , - 122 , - 2433 , - 2392 , - 4031 , - 3318 , - 253 , - 2900 , - 3195 , - 1138 , - 761 , - 2064 , - 1015 , - 1646 , - 3957 , - 3916 , - 1523 , - 810 , - 1777 , - 392 , - 687 , - 2662 , - 2285 , - 3588 , - 2539 , - 3170 , - 1449 , - 1408 , - 3047 , - 2334 , - 3301 , - 1916 , - 2211 , - 154 , - 3809 , - 1080 , - 31 , - 662 , - 2973 , - 2932 , - 539 , - 3858 , - 793 , - 3440 , - 3735 , - 1678 , - 1301 , - 2604 , - 1555 , - 2186 , - 465 , - 424 , - 2063 , - 1350 , - 2317 , - 932 , - 1227 , - 3202 , - 2825 , - 96 , - 3079 , - 3710 , - 1989 , - 1948 , - 3587 , - 2874 , - 3841 , - 2456 , - 2751 , - 694 , - 317 , - 1620 , - 571 , - 1202 , - 3513 , - 3472 , - 1079 , - 366 , - 1333 , - 3980 , - 243 , - 2218 , - 1841 , - 3144 , - 2095 , - 2726 , - 1005 , - 964 , - 2603 , - 1890 , - 2857 , - 1472 , - 1767 , - 3742 , - 3365 , - 636 , - 3619 , - 218 , - 2529 , - 2488 , - 95 , - 3414 , - 349 , - 2996 , - 3291 , - 1234 , - 857 , - 2160 , - 1111 , - 1742 , - 21 , - 4012 , - 1619 , - 906 , - 1873 , - 488 , - 783 , - 2758 , - 2381 , - 3684 , - 2635 , - 3266 , - 1545 , - 1504 , - 3143 , - 2430 , - 3397 , - 2012 , - 2307 , - 250 , - 3905 , - 1176 , - 127 , - 758 , - 3069 , - 3028 , - 635 , - 3954 , - 889 , - 3536 , - 3831 , - 1774 , - 1397 , - 2700 , - 1651 , - 2282 , - 561 , - 520 , - 2159 , - 1446 , - 2413 , - 1028 , - 1323 , - 3298 , - 2921 , - 192 , - 3175 , - 3806 , - 2085 , - 2044 , - 3683 , - 2970 , - 3937 , - 2552 , - 2847 , - 790 , - 413 , - 1716 , - 667 , - 1298 , - 3609 , - 3568 , - 1175 , - 462 , - 1429 , - 44 , - 339 , - 2314 , - 1937 , - 3240 , - 2191 , - 2822 , - 1101 , - 1060 , - 2699 , - 1986 , - 2953 , - 1568 , - 1863 , - 3838 , - 3461 , - 732 , - 3715 , - 314 , - 2625 , - 2584 , - 191 , - 3510 , - 445 , - 3092 , - 3387 , - 1330 , - 953 , - 2256 , - 1207 , - 1838 , - 117 , - 76 , - 1715 , - 1002 , - 1969 , - 584 , - 879 , - 2854 , - 2477 , - 3780 , - 2731 , - 3362 , - 1641 , - 1600 , - 3239 , - 2526 , - 3493 , - 2108 , - 2403 , - 346 , - 4001 , - 1272 , - 223 , - 854 , - 3165 , - 3124 , - 731 , - 18 , - 985 , - 3632 , - 3927 , - 1870 , - 1493 , - 2796 , - 1747 , - 2378 , - 657 , - 616 , - 2255 , - 1542 , - 2509 , - 1124 , - 1419 , - 3394 , - 3017 , - 288 , - 3271 , - 3902 , - 2181 , - 2140 , - 3779 , - 3066 , - 1 , - 2648 , - 2943 , - 886 , - 509 , - 1812 , - 763 , - 1394 , - 3705 , - 3664 , - 1271 , - 558 , - 1525 , - 140 , - 435 , - 2410 , - 2033 , - 3336 , - 2287 , - 2918 , - 1197 , - 1156 , - 2795 , - 2082 , - 3049 , - 1664 , - 1959 , - 3934 , - 3557 , - 828 , - 3811 , - 410 , - 2721 , - 2680 , - 287 , - 3606 , - 541 , - 3188 , - 3483 , - 1426 , - 1049 , - 2352 , - 1303 , - 1934 , - 213 , - 172 , - 1811 , - 1098 , - 2065 , - 680 , - 975 , - 2950 , - 2573 , - 3876 , - 2827 , - 3458 , - 1737 , - 1696 , - 3335 , - 2622 , - 3589 , - 2204 , - 2499 , - 442 , - 65 , - 1368 , - 319 , - 950 , - 3261 , - 3220 , - 827 , - 114 , - 1081 , - 3728 , - 4023 , - 1966 , - 1589 , - 2892 , - 1843 , - 2474 , - 753 , - 712 , - 2351 , - 1638 , - 2605 , - 1220 , - 1515 , - 3490 , - 3113 , - 384 , - 3367 , - 3998 , - 2277 , - 2236 , - 3875 , - 3162 , - 97 , - 2744 , - 3039 , - 982 , - 605 , - 1908 , - 859 , - 1490 , - 3801 , - 3760 , - 1367 , - 654 , - 1621 , - 236 , - 531 , - 2506 , - 2129 , - 3432 , - 2383 , - 3014 , - 1293 , - 1252 , - 2891 , - 2178 , - 3145 , - 1760 , - 2055 , - 4030 , - 3653 , - 924 , - 3907 , - 506 , - 2817 , - 2776 , - 383 , - 3702 , - 637 , - 3284 , - 3579 , - 1522 , - 1145 , - 2448 , - 1399 , - 2030 , - 309 , - 268 , - 1907 , - 1194 , - 2161 , - 776 , - 1071 , - 3046 , - 2669 , - 3972 , - 2923 , - 3554 , - 1833 , - 1792 , - 3431 , - 2718 , - 3685 , - 2300 , - 2595 , - 538 , - 161 , - 1464 , - 415 , - 1046 , - 3357 , - 3316 , - 923 , - 210 , - 1177 , - 3824 , - 87 , - 2062 , - 1685 , - 2988 , - 1939 , - 2570 , - 849 , - 808 , - 2447 , - 1734 , - 2701 , - 1316 , - 1611 , - 3586 , - 3209 , - 480 , - 3463 , - 62 , - 2373 , - 2332 , - 3971 , - 3258 , - 193 , - 2840 , - 3135 , - 1078 , - 701 , - 2004 , - 955 , - 1586 , - 3897 , - 3856 , - 1463 , - 750 , - 1717 , - 332 , - 627 , - 2602 , - 2225 , - 3528 , - 2479 , - 3110 , - 1389 , - 1348 , - 2987 , - 2274 , - 3241 , - 1856 , - 2151 , - 94 , - 3749 , - 1020 , - 4003 , - 602 , - 2913 , - 2872 , - 479 , - 3798 , - 733 , - 3380 , - 3675 , - 1618 , - 1241 , - 2544 , - 1495 , - 2126 , - 405 , - 364 , - 2003 , - 1290 , - 2257 , - 872 , - 1167 , - 3142 , - 2765 , - 36 , - 3019 , - 3650 , - 1929 , - 1888 , - 3527 , - 2814 , - 3781 , - 2396 , - 2691 , - 634 , - 257 , - 1560 , - 511 , - 1142 , - 3453 , - 3412 , - 1019 , - 306 , - 1273 , - 3920 , - 183 , - 2158 , - 1781 , - 3084 , - 2035 , - 2666 , - 945 , - 904 , - 2543 , - 1830 , - 2797 , - 1412 , - 1707 , - 3682 , - 3305 , - 576 , - 3559 , - 158 , - 2469 , - 2428 , - 35 , - 3354 , - 289 , - 2936 , - 3231 , - 1174 , - 797 , - 2100 , - 1051 , - 1682 , - 3993 , - 3952 , - 1559 , - 846 , - 1813 , - 428 , - 723 , - 2698 , - 2321 , - 3624 , - 2575 , - 3206 , - 1485 , - 1444 , - 3083 , - 2370 , - 3337 , - 1952 , - 2247 , - 190 , - 3845 , - 1116 , - 67 , - 698 , - 3009 , - 2968 , - 575 , - 3894 , - 829 , - 3476 , - 3771 , - 1714 , - 1337 , - 2640 , - 1591 , - 2222 , - 501 , - 460 , - 2099 , - 1386 , - 2353 , - 968 , - 1263 , - 3238 , - 2861 , - 132 , - 3115 , - 3746 , - 2025 , - 1984 , - 3623 , - 2910 , - 3877 , - 2492 , - 2787 , - 730 , - 353 , - 1656 , - 607 , - 1238 , - 3549 , - 3508 , - 1115 , - 402 , - 1369 , - 4016 , - 279 , - 2254 , - 1877 , - 3180 , - 2131 , - 2762 , - 1041 , - 1000 , - 2639 , - 1926 , - 2893 , - 1508 , - 1803 , - 3778 , - 3401 , - 672 , - 3655 , - 254 , - 2565 , - 2524 , - 131 , - 3450 , - 385 , - 3032 , - 3327 , - 1270 , - 893 , - 2196 , - 1147 , - 1778 , - 57 , - 16 , - 1655 , - 942 , - 1909 , - 524 , - 819 , - 2794 , - 2417 , - 3720 , - 2671 , - 3302 , - 1581 , - 1540 , - 3179 , - 2466 , - 3433 , - 2048 , - 2343 , - 286 , - 3941 , - 1212 , - 163 , - 794 , - 3105 , - 3064 , - 671 , - 3990 , - 925 , - 3572 , - 3867 , - 1810 , - 1433 , - 2736 , - 1687 , - 2318 , - 597 , - 556 , - 2195 , - 1482 , - 2449 , - 1064 , - 1359 , - 3334 , - 2957 , - 228 , - 3211 , - 3842 , - 2121 , - 2080 , - 3719 , - 3006 , - 3973 , - 2588 , - 2883 , - 826 , - 449 , - 1752 , - 703 , - 1334 , - 3645 , - 3604 , - 1211 , - 498 , - 1465 , - 80 , - 375 , - 2350 , - 1973 , - 3276 , - 2227 , - 2858 , - 1137 , - 1096 , - 2735 , - 2022 , - 2989 , - 1604 , - 1899 , - 3874 , - 3497 , - 768 , - 3751 , - 350 , - 2661 , - 2620 , - 227 , - 3546 , - 481 , - 3128 , - 3423 , - 1366 , - 989 , - 2292 , - 1243 , - 1874 , - 153 , - 112 , - 1751 , - 1038 , - 2005 , - 620 , - 915 , - 2890 , - 2513 , - 3816 , - 2767 , - 3398 , - 1677 , - 1636 , - 3275 , - 2562 , - 3529 , - 2144 , - 2439 , - 382 , - 5 , - 1308 , - 259 , - 890 , - 3201 , - 3160 , - 767 , - 54 , - 1021 , - 3668 , - 3963 , - 1906 , - 1529 , - 2832 , - 1783 , - 2414 , - 693 , - 652 , - 2291 , - 1578 , - 2545 , - 1160 , - 1455 , - 3430 , - 3053 , - 324 , - 3307 , - 3938 , - 2217 , - 2176 , - 3815 , - 3102 , - 37 , - 2684 , - 2979 , - 922 , - 545 , - 1848 , - 799 , - 1430 , - 3741 , - 3700 , - 1307 , - 594 , - 1561 , - 176 , - 471 , - 2446 , - 2069 , - 3372 , - 2323 , - 2954 , - 1233 , - 1192 , - 2831 , - 2118 , - 3085 , - 1700 , - 1995 , - 3970 , - 3593 , - 864 , - 3847 , - 446 , - 2757 , - 2716 , - 323 , - 3642 , - 577 , - 3224 , - 3519 , - 1462 , - 1085 , - 2388 , - 1339 , - 1970 , - 249 , - 208 , - 1847 , - 1134 , - 2101 , - 716 , - 1011 , - 2986 , - 2609 , - 3912 , - 2863 , - 3494 , - 1773 , - 1732 , - 3371 , - 2658 , - 3625 , - 2240 , - 2535 , - 478 , - 101 , - 1404 , - 355 , - 986 , - 3297 , - 3256 , - 863 , - 150 , - 1117 , - 3764 , - 27 , - 2002 , - 1625 , - 2928 , - 1879 , - 2510 , - 789 , - 748 , - 2387 , - 1674 , - 2641 , - 1256 , - 1551 , - 3526 , - 3149 , - 420 , - 3403 , - 2 , - 2313 , - 2272 , - 3911 , - 3198 , - 133 , - 2780 , - 3075 , - 1018 , - 641 , - 1944 , - 895 , - 1526 , - 3837 , - 3796 , - 1403 , - 690 , - 1657 , - 272 , - 567 , - 2542 , - 2165 , - 3468 , - 2419 , - 3050 , - 1329 , - 1288 , - 2927 , - 2214 , - 3181 , - 1796 , - 2091 , - 34 , - 3689 , - 960 , - 3943 , - 542 , - 2853 , - 2812 , - 419 , - 3738 , - 673 , - 3320 , - 3615 , - 1558 , - 1181 , - 2484 , - 1435 , - 2066 , - 345 , - 304 , - 1943 , - 1230 , - 2197 , - 812 , - 1107 , - 3082 , - 2705 , - 4008 , - 2959 , - 3590 , - 1869 , - 1828 , - 3467 , - 2754 , - 3721 , - 2336 , - 2631 , - 574 , - 197 , - 1500 , - 451 , - 1082 , - 3393 , - 3352 , - 959 , - 246 , - 1213 , - 3860 , - 123 , - 2098 , - 1721 , - 3024 , - 1975 , - 2606 , - 885 , - 844 , - 2483 , - 1770 , - 2737 , - 1352 , - 1647 , - 3622 , - 3245 , - 516 , - 3499 , - 98 , - 2409 , - 2368 , - 4007 , - 3294 , - 229 , - 2876 , - 3171 , - 1114 , - 737 , - 2040 , - 991 , - 1622 , - 3933 , - 3892 , - 1499 , - 786 , - 1753 , - 368 , - 663 , - 2638 , - 2261 , - 3564 , - 2515 , - 3146 , - 1425 , - 1384 , - 3023 , - 2310 , - 3277 , - 1892 , - 2187 , - 130 , - 3785 , - 1056 , - 7 , - 638 , - 2949 , - 2908 , - 515 , - 3834 , - 769 , - 3416 , - 3711 , - 1654 , - 1277 , - 2580 , - 1531 , - 2162 , - 441 , - 400 , - 2039 , - 1326 , - 2293 , - 908 , - 1203 , - 3178 , - 2801 , - 72 , - 3055 , - 3686 , - 1965 , - 1924 , - 3563 , - 2850 , - 3817 , - 2432 , - 2727 , - 670 , - 293 , - 1596 , - 547 , - 1178 , - 3489 , - 3448 , - 1055 , - 342 , - 1309 , - 3956 , - 219 , - 2194 , - 1817 , - 3120 , - 2071 , - 2702 , - 981 , - 940 , - 2579 , - 1866 , - 2833 , - 1448 , - 1743 , - 3718 , - 3341 , - 612 , - 3595 , - 194 , - 2505 , - 2464 , - 71 , - 3390 , - 325 , - 2972 , - 3267 , - 1210 , - 833 , - 2136 , - 1087 , - 1718 , - 4029 , - 3988 , - 1595 , - 882 , - 1849 , - 464 , - 759 , - 2734 , - 2357 , - 3660 , - 2611 , - 3242 , - 1521 , - 1480 , - 3119 , - 2406 , - 3373 , - 1988 , - 2283 , - 226 , - 3881 , - 1152 , - 103 , - 734 , - 3045 , - 3004 , - 611 , - 3930 , - 865 , - 3512 , - 3807 , - 1750 , - 1373 , - 2676 , - 1627 , - 2258 , - 537 , - 496 , - 2135 , - 1422 , - 2389 , - 1004 , - 1299 , - 3274 , - 2897 , - 168 , - 3151 , - 3782 , - 2061 , - 2020 , - 3659 , - 2946 , - 3913 , - 2528 , - 2823 , - 766 , - 389 , - 1692 , - 643 , - 1274 , - 3585 , - 3544 , - 1151 , - 438 , - 1405 , - 20 , - 315 , - 2290 , - 1913 , - 3216 , - 2167 , - 2798 , - 1077 , - 1036 , - 2675 , - 1962 , - 2929 , - 1544 , - 1839 , - 3814 , - 3437 , - 708 , - 3691 , - 290 , - 2601 , - 2560 , - 167 , - 3486 , - 421 , - 3068 , - 3363 , - 1306 , - 929 , - 2232 , - 1183 , - 1814 , - 93 , - 52 , - 1691 , - 978 , - 1945 , - 560 , - 855 , - 2830 , - 2453 , - 3756 , - 2707 , - 3338 , - 1617 , - 1576 , - 3215 , - 2502 , - 3469 , - 2084 , - 2379 , - 322 , - 3977 , - 1248 , - 199 , - 830 , - 3141 , - 3100 , - 707 , - 4026 , - 961 , - 3608 , - 3903 , - 1846 , - 1469 , - 2772 , - 1723 , - 2354 , - 633 , - 592 , - 2231 , - 1518 , - 2485 , - 1100 , - 1395 , - 3370 , - 2993 , - 264 , - 3247 , - 3878 , - 2157 , - 2116 , - 3755 , - 3042 , - 4009 , - 2624 , - 2919 , - 862 , - 485 , - 1788 , - 739 , - 1370 , - 3681 , - 3640 , - 1247 , - 534 , - 1501 , - 116 , - 411 , - 2386 , - 2009 , - 3312 , - 2263 , - 2894 , - 1173 , - 1132 , - 2771 , - 2058 , - 3025 , - 1640 , - 1935 , - 3910 , - 3533 , - 804 , - 3787 , - 386 , - 2697 , - 2656 , - 263 , - 3582 , - 517 , - 3164 , - 3459 , - 1402 , - 1025 , - 2328 , - 1279 , - 1910 , - 189 , - 148 , - 1787 , - 1074 , - 2041 , - 656 , - 951 , - 2926 , - 2549 , - 3852 , - 2803 , - 3434 , - 1713 , - 1672 , - 3311 , - 2598 , - 3565 , - 2180 , - 2475 , - 418 , - 41 , - 1344 , - 295 , - 926 , - 3237 , - 3196 , - 803 , - 90 , - 1057 , - 3704 , - 3999 , - 1942 , - 1565 , - 2868 , - 1819 , - 2450 , - 729 , - 688 , - 2327 , - 1614 , - 2581 , - 1196 , - 1491 , - 3466 , - 3089 , - 360 , - 3343 , - 3974 , - 2253 , - 2212 , - 3851 , - 3138 , - 73 , - 2720 , - 3015 , - 958 , - 581 , - 1884 , - 835 , - 1466 , - 3777 , - 3736 , - 1343 , - 630 , - 1597 , - 212 , - 507 , - 2482 , - 2105 , - 3408 , - 2359 , - 2990 , - 1269 , - 1228 , - 2867 , - 2154 , - 3121 , - 1736 , - 2031 , - 4006 , - 3629 , - 900 , - 3883 , - 482 , - 2793 , - 2752 , - 359 , - 3678 , - 613 , - 3260 , - 3555 , - 1498 , - 1121 , - 2424 , - 1375 , - 2006 , - 285 , - 244 , - 1883 , - 1170 , - 2137 , - 752 , - 1047 , - 3022 , - 2645 , - 3948 , - 2899 , - 3530 , - 1809 , - 1768 , - 3407 , - 2694 , - 3661 , - 2276 , - 2571 , - 514 , - 137 , - 1440 , - 391 , - 1022 , - 3333 , - 3292 , - 899 , - 186 , - 1153 , - 3800 , - 63 , - 2038 , - 1661 , - 2964 , - 1915 , - 2546 , - 825 , - 784 , - 2423 , - 1710 , - 2677 , - 1292 , - 1587 , - 3562 , - 3185 , - 456 , - 3439 , - 38 , - 2349 , - 2308 , - 3947 , - 3234 , - 169 , - 2816 , - 3111 , - 1054 , - 677 , - 1980 , - 931 , - 1562 , - 3873 , - 3832 , - 1439 , - 726 , - 1693 , - 308 , - 603 , - 2578 , - 2201 , - 3504 , - 2455 , - 3086 , - 1365 , - 1324 , - 2963 , - 2250 , - 3217 , - 1832 , - 2127 , - 70 , - 3725 , - 996 , - 3979 , - 578 , - 2889 , - 2848 , - 455 , - 3774 , - 709 , - 3356 , - 3651 , - 1594 , - 1217 , - 2520 , - 1471 , - 2102 , - 381 , - 340 , - 1979 , - 1266 , - 2233 , - 848 , - 1143 , - 3118 , - 2741 , - 12 , - 2995 , - 3626 , - 1905 , - 1864 , - 3503 , - 2790 , - 3757 , - 2372 , - 2667 , - 610 , - 233 , - 1536 , - 487 , - 1118 , - 3429 , - 3388 , - 995 , - 282 , - 1249 , - 3896 , - 159 , - 2134 , - 1757 , - 3060 , - 2011 , - 2642 , - 921 , - 880 , - 2519 , - 1806 , - 2773 , - 1388 , - 1683 , - 3658 , - 3281 , - 552 , - 3535 , - 134 , - 2445 , - 2404 , - 11 , - 3330 , - 265 , - 2912 , - 3207 , - 1150 , - 773 , - 2076 , - 1027 , - 1658 , - 3969 , - 3928 , - 1535 , - 822 , - 1789 , - 404 , - 699 , - 2674 , - 2297 , - 3600 , - 2551 , - 3182 , - 1461 , - 1420 , - 3059 , - 2346 , - 3313 , - 1928 , - 2223 , - 166 , - 3821 , - 1092 , - 43 , - 674 , - 2985 , - 2944 , - 551 , - 3870 , - 805 , - 3452 , - 3747 , - 1690 , - 1313 , - 2616 , - 1567 , - 2198 , - 477 , - 436 , - 2075 , - 1362 , - 2329 , - 944 , - 1239 , - 3214 , - 2837 , - 108 , - 3091 , - 3722 , - 2001 , - 1960 , - 3599 , - 2886 , - 3853 , - 2468 , - 2763 , - 706 , - 329 , - 1632 , - 583 , - 1214 , - 3525 , - 3484 , - 1091 , - 378 , - 1345 , - 3992 , - 255 , - 2230 , - 1853 , - 3156 , - 2107 , - 2738 , - 1017 , - 976 , - 2615 , - 1902 , - 2869 , - 1484 , - 1779 , - 3754 , - 3377 , - 648 , - 3631 , - 230 , - 2541 , - 2500 , - 107 , - 3426 , - 361 , - 3008 , - 3303 , - 1246 , - 869 , - 2172 , - 1123 , - 1754 , - 33 , - 4024 , - 1631 , - 918 , - 1885 , - 500 , - 795 , - 2770 , - 2393 , - 3696 , - 2647 , - 3278 , - 1557 , - 1516 , - 3155 , - 2442 , - 3409 , - 2024 , - 2319 , - 262 , - 3917 , - 1188 , - 139 , - 770 , - 3081 , - 3040 , - 647 , - 3966 , - 901 , - 3548 , - 3843 , - 1786 , - 1409 , - 2712 , - 1663 , - 2294 , - 573 , - 532 , - 2171 , - 1458 , - 2425 , - 1040 , - 1335 , - 3310 , - 2933 , - 204 , - 3187 , - 3818 , - 2097 , - 2056 , - 3695 , - 2982 , - 3949 , - 2564 , - 2859 , - 802 , - 425 , - 1728 , - 679 , - 1310 , - 3621 , - 3580 , - 1187 , - 474 , - 1441 , - 56 , - 351 , - 2326 , - 1949 , - 3252 , - 2203 , - 2834 , - 1113 , - 1072 , - 2711 , - 1998 , - 2965 , - 1580 , - 1875 , - 3850 , - 3473 , - 744 , - 3727 , - 326 , - 2637 , - 2596 , - 203 , - 3522 , - 457 , - 3104 , - 3399 , - 1342 , - 965 , - 2268 , - 1219 , - 1850 , - 129 , - 88 , - 1727 , - 1014 , - 1981 , - 596 , - 891 , - 2866 , - 2489 , - 3792 , - 2743 , - 3374 , - 1653 , - 1612 , - 3251 , - 2538 , - 3505 , - 2120 , - 2415 , - 358 , - 4013 , - 1284 , - 235 , - 866 , - 3177 , - 3136 , - 743 , - 30 , - 997 , - 3644 , - 3939 , - 1882 , - 1505 , - 2808 , - 1759 , - 2390 , - 669 , - 628 , - 2267 , - 1554 , - 2521 , - 1136 , - 1431 , - 3406 , - 3029 , - 300 , - 3283 , - 3914 , - 2193 , - 2152 , - 3791 , - 3078 , - 13 , - 2660 , - 2955 , - 898 , - 521 , - 1824 , - 775 , - 1406 , - 3717 , - 3676 , - 1283 , - 570 , - 1537 , - 152 , - 447 , - 2422 , - 2045 , - 3348 , - 2299 , - 2930 , - 1209 , - 1168 , - 2807 , - 2094 , - 3061 , - 1676 , - 1971 , - 3946 , - 3569 , - 840 , - 3823 , - 422 , - 2733 , - 2692 , - 299 , - 3618 , - 553 , - 3200 , - 3495 , - 1438 , - 1061 , - 2364 , - 1315 , - 1946 , - 225 , - 184 , - 1823 , - 1110 , - 2077 , - 692 , - 987 , - 2962 , - 2585 , - 3888 , - 2839 , - 3470 , - 1749 , - 1708 , - 3347 , - 2634 , - 3601 , - 2216 , - 2511 , - 454 , - 77 , - 1380 , - 331 , - 962 , - 3273 , - 3232 , - 839 , - 126 , - 1093 , - 3740 , - 3 , - 1978 , - 1601 , - 2904 , - 1855 , - 2486 , - 765 , - 724 , - 2363 , - 1650 , - 2617 , - 1232 , - 1527 , - 3502 , - 3125 , - 396 , - 3379 , - 4010 , - 2289 , - 2248 , - 3887 , - 3174 , - 109 , - 2756 , - 3051 , - 994 , - 617 , - 1920 , - 871 , - 1502 , - 3813 , - 3772 , - 1379 , - 666 , - 1633 , - 248 , - 543 , - 2518 , - 2141 , - 3444 , - 2395 , - 3026 , - 1305 , - 1264 , - 2903 , - 2190 , - 3157 , - 1772 , - 2067 , - 10 , - 3665 , - 936 , - 3919 , - 518 , - 2829 , - 2788 , - 395 , - 3714 , - 649 , - 3296 , - 3591 , - 1534 , - 1157 , - 2460 , - 1411 , - 2042 , - 321 , - 280 , - 1919 , - 1206 , - 2173 , - 788 , - 1083 , - 3058 , - 2681 , - 3984 , - 2935 , - 3566 , - 1845 , - 1804 , - 3443 , - 2730 , - 3697 , - 2312 , - 2607 , - 550 , - 173 , - 1476 , - 427 , - 1058 , - 3369 , - 3328 , - 935 , - 222 , - 1189 , - 3836 , - 99 , - 2074 , - 1697 , - 3000 , - 1951 , - 2582 , - 861 , - 820 , - 2459 , - 1746 , - 2713 , - 1328 , - 1623 , - 3598 , - 3221 , - 492 , - 3475 , - 74 , - 2385 , - 2344 , - 3983 , - 3270 , - 205 , - 2852 , - 3147 , - 1090 , - 713 , - 2016 , - 967 , - 1598 , - 3909 , - 3868 , - 1475 , - 762 , - 1729 , - 344 , - 639 , - 2614 , - 2237 , - 3540 , - 2491 , - 3122 , - 1401 , - 1360 , - 2999 , - 2286 , - 3253 , - 1868 , - 2163 , - 106 , - 3761 , - 1032 , - 4015 , - 614 , - 2925 , - 2884 , - 491 , - 3810 , - 745 , - 3392 , - 3687 , - 1630 , - 1253 , - 2556 , - 1507 , - 2138 , - 417 , - 376 , - 2015 , - 1302 , - 2269 , - 884 , - 1179 , - 3154 , - 2777 , - 48 , - 3031 , - 3662 , - 1941 , - 1900 , - 3539 , - 2826 , - 3793 , - 2408 , - 2703 , - 646 , - 269 , - 1572 , - 523 , - 1154 , - 3465 , - 3424 , - 1031 , - 318 , - 1285 , - 3932 , - 195 , - 2170 , - 1793 , - 3096 , - 2047 , - 2678 , - 957 , - 916 , - 2555 , - 1842 , - 2809 , - 1424 , - 1719 , - 3694 , - 3317 , - 588 , - 3571 , - 170 , - 2481 , - 2440 , - 47 , - 3366 , - 301 , - 2948 , - 3243 , - 1186 , - 809 , - 2112 , - 1063 , - 1694 , - 4005 , - 3964 , - 1571 , - 858 , - 1825 , - 440 , - 735 , - 2710 , - 2333 , - 3636 , - 2587 , - 3218 , - 1497 , - 1456 , - 3095 , - 2382 , - 3349 , - 1964 , - 2259 , - 202 , - 3857 , - 1128 , - 79 , - 710 , - 3021 , - 2980 , - 587 , - 3906 , - 841 , - 3488 , - 3783 , - 1726 , - 1349 , - 2652 , - 1603 , - 2234 , - 513 , - 472 , - 2111 , - 1398 , - 2365 , - 980 , - 1275 , - 3250 , - 2873 , - 144 , - 3127 , - 3758 , - 2037 , - 1996 , - 3635 , - 2922 , - 3889 , - 2504 , - 2799 , - 742 , - 365 , - 1668 , - 619 , - 1250 , - 3561 , - 3520 , - 1127 , - 414 , - 1381 , - 4028 , - 291 , - 2266 , - 1889 , - 3192 , - 2143 , - 2774 , - 1053 , - 1012 , - 2651 , - 1938 , - 2905 , - 1520 , - 1815 , - 3790 , - 3413 , - 684 , - 3667 , - 266 , - 2577 , - 2536 , - 143 , - 3462 , - 397 , - 3044 , - 3339 , - 1282 , - 905 , - 2208 , - 1159 , - 1790 , - 69 , - 28 , - 1667 , - 954 , - 1921 , - 536 , - 831 , - 2806 , - 2429 , - 3732 , - 2683 , - 3314 , - 1593 , - 1552 , - 3191 , - 2478 , - 3445 , - 2060 , - 2355 , - 298 , - 3953 , - 1224 , - 175 , - 806 , - 3117 , - 3076 , - 683 , - 4002 , - 937 , - 3584 , - 3879 , - 1822 , - 1445 , - 2748 , - 1699 , - 2330 , - 609 , - 568 , - 2207 , - 1494 , - 2461 , - 1076 , - 1371 , - 3346 , - 2969 , - 240 , - 3223 , - 3854 , - 2133 , - 2092 , - 3731 , - 3018 , - 3985 , - 2600 , - 2895 , - 838 , - 461 , - 1764 , - 715 , - 1346 , - 3657 , - 3616 , - 1223 , - 510 , - 1477 , - 92 , - 387 , - 2362 , - 1985 , - 3288 , - 2239 , - 2870 , - 1149 , - 1108 , - 2747 , - 2034 , - 3001 , - 1616 , - 1911 , - 3886 , - 3509 , - 780 , - 3763 , - 362 , - 2673 , - 2632 , - 239 , - 3558 , - 493 , - 3140 , - 3435 , - 1378 , - 1001 , - 2304 , - 1255 , - 1886 , - 165 , - 124 , - 1763 , - 1050 , - 2017 , - 632 , - 927 , - 2902 , - 2525 , - 3828 , - 2779 , - 3410 , - 1689 , - 1648 , - 3287 , - 2574 , - 3541 , - 2156 , - 2451 , - 394 , - 17 , - 1320 , - 271 , - 902 , - 3213 , - 3172 , - 779 , - 66 , - 1033 , - 3680 , - 3975 , - 1918 , - 1541 , - 2844 , - 1795 , - 2426 , - 705 , - 664 , - 2303 , - 1590 , - 2557 , - 1172 , - 1467 , - 3442 , - 3065 , - 336 , - 3319 , - 3950 , - 2229 , - 2188 , - 3827 , - 3114 , - 49 , - 2696 , - 2991 , - 934 , - 557 , - 1860 , - 811 , - 1442 , - 3753 , - 3712 , - 1319 , - 606 , - 1573 , - 188 , - 483 , - 2458 , - 2081 , - 3384 , - 2335 , - 2966 , - 1245 , - 1204 , - 2843 , - 2130 , - 3097 , - 1712 , - 2007 , - 3982 , - 3605 , - 876 , - 3859 , - 458 , - 2769 , - 2728 , - 335 , - 3654 , - 589 , - 3236 , - 3531 , - 1474 , - 1097 , - 2400 , - 1351 , - 1982 , - 261 , - 220 , - 1859 , - 1146 , - 2113 , - 728 , - 1023 , - 2998 , - 2621 , - 3924 , - 2875 , - 3506 , - 1785 , - 1744 , - 3383 , - 2670 , - 3637 , - 2252 , - 2547 , - 490 , - 113 , - 1416 , - 367 , - 998 , - 3309 , - 3268 , - 875 , - 162 , - 1129 , - 3776 , - 39 , - 2014 , - 1637 , - 2940 , - 1891 , - 2522 , - 801 , - 760 , - 2399 , - 1686 , - 2653 , - 1268 , - 1563 , - 3538 , - 3161 , - 432 , - 3415 , - 14 , - 2325 , - 2284 , - 3923 , - 3210 , - 145 , - 2792 , - 3087 , - 1030 , - 653 , - 1956 , - 907 , - 1538 , - 3849 , - 3808 , - 1415 , - 702 , - 1669 , - 284 , - 579 , - 2554 , - 2177 , - 3480 , - 2431 , - 3062 , - 1341 , - 1300 , - 2939 , - 2226 , - 3193 , - 1808 , - 2103 , - 46 , - 3701 , - 972 , - 3955 , - 554 , - 2865 , - 2824 , - 431 , - 3750 , - 685 , - 3332 , - 3627 , - 1570 , - 1193 , - 2496 , - 1447 , - 2078 , - 357 , - 316 , - 1955 , - 1242 , - 2209 , - 824 , - 1119 , - 3094 , - 2717 , - 4020 , - 2971 , - 3602 , - 1881 , - 1840 , - 3479 , - 2766 , - 3733 , - 2348 , - 2643 , - 586 , - 209 , - 1512 , - 463 , - 1094 , - 3405 , - 3364 , - 971 , - 258 , - 1225 , - 3872 , - 135 , - 2110 , - 1733 , - 3036 , - 1987 , - 2618 , - 897 , - 856 , - 2495 , - 1782 , - 2749 , - 1364 , - 1659 , - 3634 , - 3257 , - 528 , - 3511 , - 110 , - 2421 , - 2380 , - 4019 , - 3306 , - 241 , - 2888 , - 3183 , - 1126 , - 749 , - 2052 , - 1003 , - 1634 , - 3945 , - 3904 , - 1511 , - 798 , - 1765 , - 380 , - 675 , - 2650 , - 2273 , - 3576 , - 2527 , - 3158 , - 1437 , - 1396 , - 3035 , - 2322 , - 3289 , - 1904 , - 2199 , - 142 , - 3797 , - 1068 , - 19 , - 650 , - 2961 , - 2920 , - 527 , - 3846 , - 781 , - 3428 , - 3723 , - 1666 , - 1289 , - 2592 , - 1543 , - 2174 , - 453 , - 412 , - 2051 , - 1338 , - 2305 , - 920 , - 1215 , - 3190 , - 2813 , - 84 , - 3067 , - 3698 , - 1977 , - 1936 , - 3575 , - 2862 , - 3829 , - 2444 , - 2739 , - 682 , - 305 , - 1608 , - 559 , - 1190 , - 3501 , - 3460 , - 1067 , - 354 , - 1321 , - 3968 , - 231 , - 2206 , - 1829 , - 3132 , - 2083 , - 2714 , - 993 , - 952 , - 2591 , - 1878 , - 2845 , - 1460 , - 1755 , - 3730 , - 3353 , - 624 , - 3607 , - 206 , - 2517 , - 2476 , - 83 , - 3402 , - 337 , - 2984 , - 3279 , - 1222 , - 845 , - 2148 , - 1099 , - 1730 , - 9 , - 4000 , - 1607 , - 894 , - 1861 , - 476 , - 771 , - 2746 , - 2369 , - 3672 , - 2623 , - 3254 , - 1533 , - 1492 , - 3131 , - 2418 , - 3385 , - 2000 , - 2295 , - 238 , - 3893 , - 1164 , - 115 , - 746 , - 3057 , - 3016 , - 623 , - 3942 , - 877 , - 3524 , - 3819 , - 1762 , - 1385 , - 2688 , - 1639 , - 2270 , - 549 , - 508 , - 2147 , - 1434 , - 2401 , - 1016 , - 1311 , - 3286 , - 2909 , - 180 , - 3163 , - 3794 , - 2073 , - 2032 , - 3671 , - 2958 , - 3925 , - 2540 , - 2835 , - 778 , - 401 , - 1704 , - 655 , - 1286 , - 3597 , - 3556 , - 1163 , - 450 , - 1417 , - 32 , - 327 , - 2302 , - 1925 , - 3228 , - 2179 , - 2810 , - 1089 , - 1048 , - 2687 , - 1974 , - 2941 , - 1556 , - 1851 , - 3826 , - 3449 , - 720 , - 3703 , - 302 , - 2613 , - 2572 , - 179 , - 3498 , - 433 , - 3080 , - 3375 , - 1318 , - 941 , - 2244 , - 1195 , - 1826 , - 105 , - 64 , - 1703 , - 990 , - 1957 , - 572 , - 867 , - 2842 , - 2465 , - 3768 , - 2719 , - 3350 , - 1629 , - 1588 , - 3227 , - 2514 , - 3481 , - 2096 , - 2391 , - 334 , - 3989 , - 1260 , - 211 , - 842 , - 3153 , - 3112 , - 719 , - 6 , - 973 , - 3620 , - 3915 , - 1858 , - 1481 , - 2784 , - 1735 , - 2366 , - 645 , - 604 , - 2243 , - 1530 , - 2497 , - 1112 , - 1407 , - 3382 , - 3005 , - 276 , - 3259 , - 3890 , - 2169 , - 2128 , - 3767 , - 3054 , - 4021 , - 2636 , - 2931 , - 874 , - 497 , - 1800 , - 751 , - 1382 , - 3693 , - 3652 , - 1259 , - 546 , - 1513 , - 128 , - 423 , - 2398 , - 2021 , - 3324 , - 2275 , - 2906 , - 1185 , - 1144 , - 2783 , - 2070 , - 3037 , - 1652 , - 1947 , - 3922 , - 3545 , - 816 , - 3799 , - 398 , - 2709 , - 2668 , - 275 , - 3594 , - 529 , - 3176 , - 3471 , - 1414 , - 1037 , - 2340 , - 1291 , - 1922 , - 201 , - 160 , - 1799 , - 1086 , - 2053 , - 668 , - 963 , - 2938 , - 2561 , - 3864 , - 2815 , - 3446 , - 1725 , - 1684 , - 3323 , - 2610 , - 3577 , - 2192 , - 2487 , - 430 , - 53 , - 1356 , - 307 , - 938 , - 3249 , - 3208 , - 815 , - 102 , - 1069 , - 3716 , - 4011 , - 1954 , - 1577 , - 2880 , - 1831 , - 2462 , - 741 , - 700 , - 2339 , - 1626 , - 2593 , - 1208 , - 1503 , - 3478 , - 3101 , - 372 , - 3355 , - 3986 , - 2265 , - 2224 , - 3863 , - 3150 , - 85 , - 2732 , - 3027 , - 970 , - 593 , - 1896 , - 847 , - 1478 , - 3789 , - 3748 , - 1355 , - 642 , - 1609 , - 224 , - 519 , - 2494 , - 2117 , - 3420 , - 2371 , - 3002 , - 1281 , - 1240 , - 2879 , - 2166 , - 3133 , - 1748 , - 2043 , - 4018 , - 3641 , - 912 , - 3895 , - 494 , - 2805 , - 2764 , - 371 , - 3690 , - 625 , - 3272 , - 3567 , - 1510 , - 1133 , - 2436 , - 1387 , - 2018 , - 297 , - 256 , - 1895 , - 1182 , - 2149 , - 764 , - 1059 , - 3034 , - 2657 , - 3960 , - 2911 , - 3542 , - 1821 , - 1780 , - 3419 , - 2706 , - 3673 , - 2288 , - 2583 , - 526 , - 149 , - 1452 , - 403 , - 1034 , - 3345 , - 3304 , - 911 , - 198 , - 1165 , - 3812 , - 75 , - 2050 , - 1673 , - 2976 , - 1927 , - 2558 , - 837 , - 796 , - 2435 , - 1722 , - 2689 , - 1304 , - 1599 , - 3574 , - 3197 , - 468 , - 3451 , - 50 , - 2361 , - 2320 , - 3959 , - 3246 , - 181 , - 2828 , - 3123 , - 1066 , - 689 , - 1992 , - 943 , - 1574 , - 3885 , - 3844 , - 1451 , - 738 , - 1705 , - 320 , - 615 , - 2590 , - 2213 , - 3516 , - 2467 , - 3098 , - 1377 , - 1336 , - 2975 , - 2262 , - 3229 , - 1844 , - 2139 , - 82 , - 3737 , - 1008 , - 3991 , - 590 , - 2901 , - 2860 , - 467 , - 3786 , - 721 , - 3368 , - 3663 , - 1606 , - 1229 , - 2532 , - 1483 , - 2114 , - 393 , - 352 , - 1991 , - 1278 , - 2245 , - 860 , - 1155 , - 3130 , - 2753 , - 24 , - 3007 , - 3638 , - 1917 , - 1876 , - 3515 , - 2802 , - 3769 , - 2384 , - 2679 , - 622 , - 245 , - 1548 , - 499 , - 1130 , - 3441 , - 3400 , - 1007 , - 294 , - 1261 , - 3908 , - 171 , - 2146 , - 1769 , - 3072 , - 2023 , - 2654 , - 933 , - 892 , - 2531 , - 1818 , - 2785 , - 1400 , - 1695 , - 3670 , - 3293 , - 564 , - 3547 , - 146 , - 2457 , - 2416 , - 23 , - 3342 , - 277 , - 2924 , - 3219 , - 1162 , - 785 , - 2088 , - 1039 , - 1670 , - 3981 , - 3940 , - 1547 , - 834 , - 1801 , - 416 , - 711 , - 2686 , - 2309 , - 3612 , - 2563 , - 3194 , - 1473 , - 1432 , - 3071 , - 2358 , - 3325 , - 1940 , - 2235 , - 178 , - 3833 , - 1104 , - 55 , - 686 , - 2997 , - 2956 , - 563 , - 3882 , - 817 , - 3464 , - 3759 , - 1702 , - 1325 , - 2628 , - 1579 , - 2210 , - 489 , - 448 , - 2087 , - 1374 , - 2341 , - 956 , - 1251 , - 3226 , - 2849 , - 120 , - 3103 , - 3734 , - 2013 , - 1972 , - 3611 , - 2898 , - 3865 , - 2480 , - 2775 , - 718 , - 341 , - 1644 , - 595 , - 1226 , - 3537 , - 3496 , - 1103 , - 390 , - 1357 , - 4004 , - 267 , - 2242 , - 1865 , - 3168 , - 2119 , - 2750 , - 1029 , - 988 , - 2627 , - 1914 , - 2881 , - 1496 , - 1791 , - 3766 , - 3389 , - 660 , - 3643 , - 242 , - 2553 , - 2512 , - 119 , - 3438 , - 373 , - 3020 , - 3315 , - 1258 , - 881 , - 2184 , - 1135 , - 1766 , - 45 , - 4 , - 1643 , - 930 , - 1897 , - 512 , - 807 , - 2782 , - 2405 , - 3708 , - 2659 , - 3290 , - 1569 , - 1528 , - 3167 , - 2454 , - 3421 , - 2036 , - 2331 , - 274 , - 3929 , - 1200 , - 151 , - 782 , - 3093 , - 3052 , - 659 , - 3978 , - 913 , - 3560 , - 3855 , - 1798 , - 1421 , - 2724 , - 1675 , - 2306 , - 585 , - 544 , - 2183 , - 1470 , - 2437 , - 1052 , - 1347 , - 3322 , - 2945 , - 216 , - 3199 , - 3830 , - 2109 , - 2068 , - 3707 , - 2994 , - 3961 , - 2576 , - 2871 , - 814 , - 437 , - 1740 , - 691 , - 1322 , - 3633 , - 3592 , - 1199 , - 486 , - 1453 , - 68 , - 363 , - 2338 , - 1961 , - 3264 , - 2215 , - 2846 , - 1125 , - 1084 , - 2723 , - 2010 , - 2977 , - 1592 , - 1887 , - 3862 , - 3485 , - 756 , - 3739 , - 338 , - 2649 , - 2608 , - 215 , - 3534 , - 469 , - 3116 , - 3411 , - 1354 , - 977 , - 2280 , - 1231 , - 1862 , - 141 , - 100 , - 1739 , - 1026 , - 1993 , - 608 , - 903 , - 2878 , - 2501 , - 3804 , - 2755 , - 3386 , - 1665 , - 1624 , - 3263 , - 2550 , - 3517 , - 2132 , - 2427 , - 370 , - 4025 , - 1296 , - 247 , - 878 , - 3189 , - 3148 , - 755 , - 42 , - 1009 , - 3656 , - 3951 , - 1894 , - 1517 , - 2820 , - 1771 , - 2402 , - 681 , - 640 , - 2279 , - 1566 , - 2533 , - 1148 , - 1443 , - 3418 , - 3041 , - 312 , - 3295 , - 3926 , - 2205 , - 2164 , - 3803 , - 3090 , - 25 , - 2672 , - 2967 , - 910 , - 533 , - 1836 , - 787 , - 1418 , - 3729 , - 3688 , - 1295 , - 582 , - 1549 , - 164 , - 459 , - 2434 , - 2057 , - 3360 , - 2311 , - 2942 , - 1221 , - 1180 , - 2819 , - 2106 , - 3073 , - 1688 , - 1983 , - 3958 , - 3581 , - 852 , - 3835 , - 434 , - 2745 , - 2704 , - 311 , - 3630 , - 565 , - 3212 , - 3507 , - 1450 , - 1073 , - 2376 , - 1327 , - 1958 , - 237 , - 196 , - 1835 , - 1122 , - 2089 , - 704 , - 999 , - 2974 , - 2597 , - 3900 , - 2851 , - 3482 , - 1761 , - 1720 , - 3359 , - 2646 , - 3613 , - 2228 , - 2523 , - 466 , - 89 , - 1392 , - 343 , - 974 , - 3285 , - 3244 , - 851 , - 138 , - 1105 , - 3752 , - 15 , - 1990 , - 1613 , - 2916 , - 1867 , - 2498 , - 777 , - 736 , - 2375 , - 1662 , - 2629 , - 1244 , - 1539 , - 3514 , - 3137 , - 408 , - 3391 , - 4022 , - 2301 , - 2260 , - 3899 , - 3186 , - 121 , - 2768 , - 3063 , - 1006 , - 629 , - 1932 , - 883 , - 1514 , - 3825 , - 3784 , - 1391 , - 678 , - 1645 , - 260 , - 555 , - 2530 , - 2153 , - 3456 , - 2407 , - 3038 , - 1317 , - 1276 , - 2915 , - 2202 , - 3169 , - 1784 , - 2079 , - 22 , - 3677 , - 948 , - 3931 , - 530 , - 2841 , - 2800 , - 407 , - 3726 , - 661 , - 3308 , - 3603 , - 1546 , - 1169 , - 2472 , - 1423 , - 2054 , - 333 , - 292 , - 1931 , - 1218 , - 2185 , - 800 , - 1095 , - 3070 , - 2693 , - 3996 , - 2947 , - 3578 , - 1857 , - 1816 , - 3455 , - 2742 , - 3709 , - 2324 , - 2619 , - 562 , - 185 , - 1488 , - 439 , - 1070 , - 3381 , - 3340 , - 947 , - 234 , - 1201 , - 3848 , - 111 , - 2086 , - 1709 , - 3012 , - 1963 , - 2594 , - 873 , - 832 , - 2471 , - 1758 , - 2725 , - 1340 , - 1635 , - 3610 , - 3233 , - 504 , - 3487 , - 86 , - 2397 , - 2356 , - 3995 , - 3282 , - 217 , - 2864 , - 3159 , - 1102 , - 725 , - 2028 , - 979 , - 1610 , - 3921 , - 3880 , - 1487 , - 774 , - 1741 , - 356 , - 651 , - 2626 , - 2249 , - 3552 , - 2503 , - 3134 , - 1413 , - 1372 , - 3011 , - 2298 , - 3265 , - 1880 , - 2175 , - 118 , - 3773 , - 1044 , - 4027 , - 626 , - 2937 , - 2896 , - 503 , - 3822 , - 757 , - 3404 , - 3699 , - 1642 , - 1265 , - 2568 , - 1519 , - 2150 , - 429 , - 388 , - 2027 , - 1314 , - 2281 , - 896 , - 1191 , - 3166 , - 2789 , - 60 , - 3043 , - 3674 , - 1953 , - 1912 , - 3551 , - 2838 , - 3805 , - 2420 , - 2715 , - 658 , - 281 , - 1584 , - 535 , - 1166 , - 3477 , - 3436 , - 1043 , - 330 , - 1297 , - 3944 , - 207 , - 2182 , - 1805 , - 3108 , - 2059 , - 2690 , - 969 , - 928 , - 2567 , - 1854 , - 2821 , - 1436 , - 1731 , - 3706 , - 3329 , - 600 , - 3583 , - 182 , - 2493 , - 2452 , - 59 , - 3378 , - 313 , - 2960 , - 3255 , - 1198 , - 821 , - 2124 , - 1075 , - 1706 , - 4017 , - 3976 , - 1583 , - 870 , - 1837 , - 452 , - 747 , - 2722 , - 2345 , - 3648 , - 2599 , - 3230 , - 1509 , - 1468 , - 3107 , - 2394 , - 3361 , - 1976 , - 2271 , - 214 , - 3869 , - 1140 , - 91 , - 722 , - 3033 , - 2992 , - 599 , - 3918 , - 853 , - 3500 , - 3795 , - 1738 , - 1361 , - 2664 , - 1615 , - 2246 , - 525 , - 484 , - 2123 , - 1410 , - 2377 , - 992 , - 1287 , - 3262 , - 2885 , - 156 , - 3139 , - 3770 , - 2049 , - 2008 , - 3647 , - 2934 , - 3901 , - 2516 , - 2811 , - 754 , - 377 , - 1680 , - 631 , - 1262 , - 3573 , - 3532 , - 1139 , - 426 , - 1393 , - 8 , - 303 , - 2278 , - 1901 , - 3204 , - 2155 , - 2786 , - 1065 , - 1024 , - 2663 , - 1950 , - 2917 , - 1532 , - 1827 , - 3802 , - 3425 , - 696 , - 3679 , - 278 , - 2589 , - 2548 , - 155 , - 3474 , - 409 , - 3056 , - 3351 , - 1294 , - 917 , - 2220 , - 1171 , - 1802 , - 81 , - 40 , - 1679 , - 966 , - 1933 , - 548 , - 843 , - 2818 , - 2441 , - 3744 , - 2695 , - 3326 , - 1605 , - 1564 , - 3203 , - 2490 , - 3457 , - 2072 , - 2367 , - 310 , - 3965 , - 1236 , - 187 , - 818 , - 3129 , - 3088 , - 695 , - 4014 , - 949 , - 3596 , - 3891 , - 1834 , - 1457 , - 2760 , - 1711 , - 2342 , - 621 , - 580 , - 2219 , - 1506 , - 2473 , - 1088 , - 1383 , - 3358 , - 2981 , - 252 , - 3235 , - 3866 , - 2145 , - 2104 , - 3743 , - 3030 , - 3997 , - 2612 , - 2907 , - 850 , - 473 , - 1776 , - 727 , - 1358 , - 3669 , - 3628 , - 1235 , - 522 , - 1489 , - 104 , - 399 , - 2374 , - 1997 , - 3300 , - 2251 , - 2882 , - 1161 , - 1120 , - 2759 , - 2046 , - 3013 , - 1628 , - 1923 , - 3898 , - 3521 , - 792 , - 3775 , - 374 , - 2685 , - 2644 , - 251 , - 3570 , - 505 , - 3152 , - 3447 , - 1390 , - 1013 , - 2316 , - 1267 , - 1898 , - 177 , - 136 , - 1775 , - 1062 , - 2029 , - 644 , - 939 , - 2914 , - 2537 , - 3840 , - 2791 , - 3422 , - 1701 , - 1660 , - 3299 , - 2586 , - 3553 , - 2168 , - 2463 , - 406 , - 29 , - 1332 , - 283 , - 914 , - 3225 , - 3184 , - 791 , - 78 , - 1045 , - 3692 , - 3987 , - 1930 , - 1553 , - 2856 , - 1807 , - 2438 , - 717 , - 676 , - 2315 , - 1602 , - 2569 , - 1184 , - 1479 , - 3454 , - 3077 , - 348 , - 3331 , - 3962 , - 2241 , - 2200 , - 3839 , - 3126 , - 61 , - 2708 , - 3003 , - 946 , - 569 , - 1872 , - 823 , - 1454 , - 3765 , - 3724 , - 1331 , - 618 , - 1585 , - 200 , - 495 , - 2470 , - 2093 , - 3396 , - 2347 , - 2978 , - 1257 , - 1216 , - 2855 , - 2142 , - 3109 , - 1724 , - 2019 , - 3994 , - 3617 , - 888 , - 3871 , - 470 , - 2781 , - 2740 , - 347 , - 3666 , - 601 , - 3248 , - 3543 , - 1486 , - 1109 , - 2412 , - 1363 , - 1994 , - 273 , - 232 , - 1871 , - 1158 , - 2125 , - 740 , - 1035 , - 3010 , - 2633 , - 3936 , - 2887 , - 3518 , - 1797 , - 1756 , - 3395 , - 2682 , - 3649 , - 2264 , - 2559 , - 502 , - 125 , - 1428 , - 379 , - 1010 , - 3321 , - 3280 , - 887 , - 174 , - 1141 , - 3788 , - 51 , - 2026 , - 1649 , - 2952 , - 1903 , - 2534 , - 813 , - 772 , - 2411 , - 1698 , - 2665 , - 1280 , - 1575 , - 3550 , - 3173 , - 444 , - 3427 , - 26 , - 2337 , - 2296 , - 3935 , - 3222 , - 157 , - 2804 , - 3099 , - 1042 , - 665 , - 1968 , - 919 , - 1550 , - 3861 , - 3820 , - 1427 , - 714 , - 1681 , - 296 , - 591 , - 2566 , - 2189 , - 3492 , - 2443 , - 3074 , - 1353 , - 1312 , - 2951 , - 2238 , - 3205 , - 1820 , - 2115 , - 58 , - 3713 , - 984 , - 3967 , - 566 , - 2877 , - 2836 , - 443 , - 3762 , - 697 , - 3344 , - 3639 , - 1582 , - 1205 , - 2508 , - 1459 , - 2090 , - 369 , - 328 , - 1967 , - 1254 , - 2221 , - 836 , - 1131 , - 3106 , - 2729 , - 0 , - 1055 , - 2238 , - 3549 , - 892 , - 2459 , - 58 , - 1881 , - 3832 , - 1815 , - 4022 , - 2261 , - 628 , - 3219 , - 1842 , - 593 , - 3568 , - 2575 , - 1710 , - 973 , - 364 , - 3979 , - 3626 , - 3401 , - 3304 , - 3335 , - 3494 , - 3781 , - 100 , - 643 , - 1314 , - 2113 , - 3040 , - 4095 , - 1182 , - 2493 , - 3932 , - 1403 , - 3098 , - 825 , - 2776 , - 759 , - 2966 , - 1205 , - 3668 , - 2163 , - 786 , - 3633 , - 2512 , - 1519 , - 654 , - 4013 , - 3404 , - 2923 , - 2570 , - 2345 , - 2248 , - 2279 , - 2438 , - 2725 , - 3140 , - 3683 , - 258 , - 1057 , - 1984 , - 3039 , - 126 , - 1437 , - 2876 , - 347 , - 2042 , - 3865 , - 1720 , - 3799 , - 1910 , - 149 , - 2612 , - 1107 , - 3826 , - 2577 , - 1456 , - 463 , - 3694 , - 2957 , - 2348 , - 1867 , - 1514 , - 1289 , - 1192 , - 1223 , - 1382 , - 1669 , - 2084 , - 2627 , - 3298 , - 1 , - 928 , - 1983 , - 3166 , - 381 , - 1820 , - 3387 , - 986 , - 2809 , - 664 , - 2743 , - 854 , - 3189 , - 1556 , - 51 , - 2770 , - 1521 , - 400 , - 3503 , - 2638 , - 1901 , - 1292 , - 811 , - 458 , - 233 , - 136 , - 167 , - 326 , - 613 , - 1028 , - 1571 , - 2242 , - 3041 , - 3968 , - 927 , - 2110 , - 3421 , - 764 , - 2331 , - 4026 , - 1753 , - 3704 , - 1687 , - 3894 , - 2133 , - 500 , - 3091 , - 1714 , - 465 , - 3440 , - 2447 , - 1582 , - 845 , - 236 , - 3851 , - 3498 , - 3273 , - 3176 , - 3207 , - 3366 , - 3653 , - 4068 , - 515 , - 1186 , - 1985 , - 2912 , - 3967 , - 1054 , - 2365 , - 3804 , - 1275 , - 2970 , - 697 , - 2648 , - 631 , - 2838 , - 1077 , - 3540 , - 2035 , - 658 , - 3505 , - 2384 , - 1391 , - 526 , - 3885 , - 3276 , - 2795 , - 2442 , - 2217 , - 2120 , - 2151 , - 2310 , - 2597 , - 3012 , - 3555 , - 130 , - 929 , - 1856 , - 2911 , - 4094 , - 1309 , - 2748 , - 219 , - 1914 , - 3737 , - 1592 , - 3671 , - 1782 , - 21 , - 2484 , - 979 , - 3698 , - 2449 , - 1328 , - 335 , - 3566 , - 2829 , - 2220 , - 1739 , - 1386 , - 1161 , - 1064 , - 1095 , - 1254 , - 1541 , - 1956 , - 2499 , - 3170 , - 3969 , - 800 , - 1855 , - 3038 , - 253 , - 1692 , - 3259 , - 858 , - 2681 , - 536 , - 2615 , - 726 , - 3061 , - 1428 , - 4019 , - 2642 , - 1393 , - 272 , - 3375 , - 2510 , - 1773 , - 1164 , - 683 , - 330 , - 105 , - 8 , - 39 , - 198 , - 485 , - 900 , - 1443 , - 2114 , - 2913 , - 3840 , - 799 , - 1982 , - 3293 , - 636 , - 2203 , - 3898 , - 1625 , - 3576 , - 1559 , - 3766 , - 2005 , - 372 , - 2963 , - 1586 , - 337 , - 3312 , - 2319 , - 1454 , - 717 , - 108 , - 3723 , - 3370 , - 3145 , - 3048 , - 3079 , - 3238 , - 3525 , - 3940 , - 387 , - 1058 , - 1857 , - 2784 , - 3839 , - 926 , - 2237 , - 3676 , - 1147 , - 2842 , - 569 , - 2520 , - 503 , - 2710 , - 949 , - 3412 , - 1907 , - 530 , - 3377 , - 2256 , - 1263 , - 398 , - 3757 , - 3148 , - 2667 , - 2314 , - 2089 , - 1992 , - 2023 , - 2182 , - 2469 , - 2884 , - 3427 , - 2 , - 801 , - 1728 , - 2783 , - 3966 , - 1181 , - 2620 , - 91 , - 1786 , - 3609 , - 1464 , - 3543 , - 1654 , - 3989 , - 2356 , - 851 , - 3570 , - 2321 , - 1200 , - 207 , - 3438 , - 2701 , - 2092 , - 1611 , - 1258 , - 1033 , - 936 , - 967 , - 1126 , - 1413 , - 1828 , - 2371 , - 3042 , - 3841 , - 672 , - 1727 , - 2910 , - 125 , - 1564 , - 3131 , - 730 , - 2553 , - 408 , - 2487 , - 598 , - 2933 , - 1300 , - 3891 , - 2514 , - 1265 , - 144 , - 3247 , - 2382 , - 1645 , - 1036 , - 555 , - 202 , - 4073 , - 3976 , - 4007 , - 70 , - 357 , - 772 , - 1315 , - 1986 , - 2785 , - 3712 , - 671 , - 1854 , - 3165 , - 508 , - 2075 , - 3770 , - 1497 , - 3448 , - 1431 , - 3638 , - 1877 , - 244 , - 2835 , - 1458 , - 209 , - 3184 , - 2191 , - 1326 , - 589 , - 4076 , - 3595 , - 3242 , - 3017 , - 2920 , - 2951 , - 3110 , - 3397 , - 3812 , - 259 , - 930 , - 1729 , - 2656 , - 3711 , - 798 , - 2109 , - 3548 , - 1019 , - 2714 , - 441 , - 2392 , - 375 , - 2582 , - 821 , - 3284 , - 1779 , - 402 , - 3249 , - 2128 , - 1135 , - 270 , - 3629 , - 3020 , - 2539 , - 2186 , - 1961 , - 1864 , - 1895 , - 2054 , - 2341 , - 2756 , - 3299 , - 3970 , - 673 , - 1600 , - 2655 , - 3838 , - 1053 , - 2492 , - 4059 , - 1658 , - 3481 , - 1336 , - 3415 , - 1526 , - 3861 , - 2228 , - 723 , - 3442 , - 2193 , - 1072 , - 79 , - 3310 , - 2573 , - 1964 , - 1483 , - 1130 , - 905 , - 808 , - 839 , - 998 , - 1285 , - 1700 , - 2243 , - 2914 , - 3713 , - 544 , - 1599 , - 2782 , - 4093 , - 1436 , - 3003 , - 602 , - 2425 , - 280 , - 2359 , - 470 , - 2805 , - 1172 , - 3763 , - 2386 , - 1137 , - 16 , - 3119 , - 2254 , - 1517 , - 908 , - 427 , - 74 , - 3945 , - 3848 , - 3879 , - 4038 , - 229 , - 644 , - 1187 , - 1858 , - 2657 , - 3584 , - 543 , - 1726 , - 3037 , - 380 , - 1947 , - 3642 , - 1369 , - 3320 , - 1303 , - 3510 , - 1749 , - 116 , - 2707 , - 1330 , - 81 , - 3056 , - 2063 , - 1198 , - 461 , - 3948 , - 3467 , - 3114 , - 2889 , - 2792 , - 2823 , - 2982 , - 3269 , - 3684 , - 131 , - 802 , - 1601 , - 2528 , - 3583 , - 670 , - 1981 , - 3420 , - 891 , - 2586 , - 313 , - 2264 , - 247 , - 2454 , - 693 , - 3156 , - 1651 , - 274 , - 3121 , - 2000 , - 1007 , - 142 , - 3501 , - 2892 , - 2411 , - 2058 , - 1833 , - 1736 , - 1767 , - 1926 , - 2213 , - 2628 , - 3171 , - 3842 , - 545 , - 1472 , - 2527 , - 3710 , - 925 , - 2364 , - 3931 , - 1530 , - 3353 , - 1208 , - 3287 , - 1398 , - 3733 , - 2100 , - 595 , - 3314 , - 2065 , - 944 , - 4047 , - 3182 , - 2445 , - 1836 , - 1355 , - 1002 , - 777 , - 680 , - 711 , - 870 , - 1157 , - 1572 , - 2115 , - 2786 , - 3585 , - 416 , - 1471 , - 2654 , - 3965 , - 1308 , - 2875 , - 474 , - 2297 , - 152 , - 2231 , - 342 , - 2677 , - 1044 , - 3635 , - 2258 , - 1009 , - 3984 , - 2991 , - 2126 , - 1389 , - 780 , - 299 , - 4042 , - 3817 , - 3720 , - 3751 , - 3910 , - 101 , - 516 , - 1059 , - 1730 , - 2529 , - 3456 , - 415 , - 1598 , - 2909 , - 252 , - 1819 , - 3514 , - 1241 , - 3192 , - 1175 , - 3382 , - 1621 , - 4084 , - 2579 , - 1202 , - 4049 , - 2928 , - 1935 , - 1070 , - 333 , - 3820 , - 3339 , - 2986 , - 2761 , - 2664 , - 2695 , - 2854 , - 3141 , - 3556 , - 3 , - 674 , - 1473 , - 2400 , - 3455 , - 542 , - 1853 , - 3292 , - 763 , - 2458 , - 185 , - 2136 , - 119 , - 2326 , - 565 , - 3028 , - 1523 , - 146 , - 2993 , - 1872 , - 879 , - 14 , - 3373 , - 2764 , - 2283 , - 1930 , - 1705 , - 1608 , - 1639 , - 1798 , - 2085 , - 2500 , - 3043 , - 3714 , - 417 , - 1344 , - 2399 , - 3582 , - 797 , - 2236 , - 3803 , - 1402 , - 3225 , - 1080 , - 3159 , - 1270 , - 3605 , - 1972 , - 467 , - 3186 , - 1937 , - 816 , - 3919 , - 3054 , - 2317 , - 1708 , - 1227 , - 874 , - 649 , - 552 , - 583 , - 742 , - 1029 , - 1444 , - 1987 , - 2658 , - 3457 , - 288 , - 1343 , - 2526 , - 3837 , - 1180 , - 2747 , - 346 , - 2169 , - 24 , - 2103 , - 214 , - 2549 , - 916 , - 3507 , - 2130 , - 881 , - 3856 , - 2863 , - 1998 , - 1261 , - 652 , - 171 , - 3914 , - 3689 , - 3592 , - 3623 , - 3782 , - 4069 , - 388 , - 931 , - 1602 , - 2401 , - 3328 , - 287 , - 1470 , - 2781 , - 124 , - 1691 , - 3386 , - 1113 , - 3064 , - 1047 , - 3254 , - 1493 , - 3956 , - 2451 , - 1074 , - 3921 , - 2800 , - 1807 , - 942 , - 205 , - 3692 , - 3211 , - 2858 , - 2633 , - 2536 , - 2567 , - 2726 , - 3013 , - 3428 , - 3971 , - 546 , - 1345 , - 2272 , - 3327 , - 414 , - 1725 , - 3164 , - 635 , - 2330 , - 57 , - 2008 , - 4087 , - 2198 , - 437 , - 2900 , - 1395 , - 18 , - 2865 , - 1744 , - 751 , - 3982 , - 3245 , - 2636 , - 2155 , - 1802 , - 1577 , - 1480 , - 1511 , - 1670 , - 1957 , - 2372 , - 2915 , - 3586 , - 289 , - 1216 , - 2271 , - 3454 , - 669 , - 2108 , - 3675 , - 1274 , - 3097 , - 952 , - 3031 , - 1142 , - 3477 , - 1844 , - 339 , - 3058 , - 1809 , - 688 , - 3791 , - 2926 , - 2189 , - 1580 , - 1099 , - 746 , - 521 , - 424 , - 455 , - 614 , - 901 , - 1316 , - 1859 , - 2530 , - 3329 , - 160 , - 1215 , - 2398 , - 3709 , - 1052 , - 2619 , - 218 , - 2041 , - 3992 , - 1975 , - 86 , - 2421 , - 788 , - 3379 , - 2002 , - 753 , - 3728 , - 2735 , - 1870 , - 1133 , - 524 , - 43 , - 3786 , - 3561 , - 3464 , - 3495 , - 3654 , - 3941 , - 260 , - 803 , - 1474 , - 2273 , - 3200 , - 159 , - 1342 , - 2653 , - 4092 , - 1563 , - 3258 , - 985 , - 2936 , - 919 , - 3126 , - 1365 , - 3828 , - 2323 , - 946 , - 3793 , - 2672 , - 1679 , - 814 , - 77 , - 3564 , - 3083 , - 2730 , - 2505 , - 2408 , - 2439 , - 2598 , - 2885 , - 3300 , - 3843 , - 418 , - 1217 , - 2144 , - 3199 , - 286 , - 1597 , - 3036 , - 507 , - 2202 , - 4025 , - 1880 , - 3959 , - 2070 , - 309 , - 2772 , - 1267 , - 3986 , - 2737 , - 1616 , - 623 , - 3854 , - 3117 , - 2508 , - 2027 , - 1674 , - 1449 , - 1352 , - 1383 , - 1542 , - 1829 , - 2244 , - 2787 , - 3458 , - 161 , - 1088 , - 2143 , - 3326 , - 541 , - 1980 , - 3547 , - 1146 , - 2969 , - 824 , - 2903 , - 1014 , - 3349 , - 1716 , - 211 , - 2930 , - 1681 , - 560 , - 3663 , - 2798 , - 2061 , - 1452 , - 971 , - 618 , - 393 , - 296 , - 327 , - 486 , - 773 , - 1188 , - 1731 , - 2402 , - 3201 , - 32 , - 1087 , - 2270 , - 3581 , - 924 , - 2491 , - 90 , - 1913 , - 3864 , - 1847 , - 4054 , - 2293 , - 660 , - 3251 , - 1874 , - 625 , - 3600 , - 2607 , - 1742 , - 1005 , - 396 , - 4011 , - 3658 , - 3433 , - 3336 , - 3367 , - 3526 , - 3813 , - 132 , - 675 , - 1346 , - 2145 , - 3072 , - 31 , - 1214 , - 2525 , - 3964 , - 1435 , - 3130 , - 857 , - 2808 , - 791 , - 2998 , - 1237 , - 3700 , - 2195 , - 818 , - 3665 , - 2544 , - 1551 , - 686 , - 4045 , - 3436 , - 2955 , - 2602 , - 2377 , - 2280 , - 2311 , - 2470 , - 2757 , - 3172 , - 3715 , - 290 , - 1089 , - 2016 , - 3071 , - 158 , - 1469 , - 2908 , - 379 , - 2074 , - 3897 , - 1752 , - 3831 , - 1942 , - 181 , - 2644 , - 1139 , - 3858 , - 2609 , - 1488 , - 495 , - 3726 , - 2989 , - 2380 , - 1899 , - 1546 , - 1321 , - 1224 , - 1255 , - 1414 , - 1701 , - 2116 , - 2659 , - 3330 , - 33 , - 960 , - 2015 , - 3198 , - 413 , - 1852 , - 3419 , - 1018 , - 2841 , - 696 , - 2775 , - 886 , - 3221 , - 1588 , - 83 , - 2802 , - 1553 , - 432 , - 3535 , - 2670 , - 1933 , - 1324 , - 843 , - 490 , - 265 , - 168 , - 199 , - 358 , - 645 , - 1060 , - 1603 , - 2274 , - 3073 , - 4000 , - 959 , - 2142 , - 3453 , - 796 , - 2363 , - 4058 , - 1785 , - 3736 , - 1719 , - 3926 , - 2165 , - 532 , - 3123 , - 1746 , - 497 , - 3472 , - 2479 , - 1614 , - 877 , - 268 , - 3883 , - 3530 , - 3305 , - 3208 , - 3239 , - 3398 , - 3685 , - 4 , - 547 , - 1218 , - 2017 , - 2944 , - 3999 , - 1086 , - 2397 , - 3836 , - 1307 , - 3002 , - 729 , - 2680 , - 663 , - 2870 , - 1109 , - 3572 , - 2067 , - 690 , - 3537 , - 2416 , - 1423 , - 558 , - 3917 , - 3308 , - 2827 , - 2474 , - 2249 , - 2152 , - 2183 , - 2342 , - 2629 , - 3044 , - 3587 , - 162 , - 961 , - 1888 , - 2943 , - 30 , - 1341 , - 2780 , - 251 , - 1946 , - 3769 , - 1624 , - 3703 , - 1814 , - 53 , - 2516 , - 1011 , - 3730 , - 2481 , - 1360 , - 367 , - 3598 , - 2861 , - 2252 , - 1771 , - 1418 , - 1193 , - 1096 , - 1127 , - 1286 , - 1573 , - 1988 , - 2531 , - 3202 , - 4001 , - 832 , - 1887 , - 3070 , - 285 , - 1724 , - 3291 , - 890 , - 2713 , - 568 , - 2647 , - 758 , - 3093 , - 1460 , - 4051 , - 2674 , - 1425 , - 304 , - 3407 , - 2542 , - 1805 , - 1196 , - 715 , - 362 , - 137 , - 40 , - 71 , - 230 , - 517 , - 932 , - 1475 , - 2146 , - 2945 , - 3872 , - 831 , - 2014 , - 3325 , - 668 , - 2235 , - 3930 , - 1657 , - 3608 , - 1591 , - 3798 , - 2037 , - 404 , - 2995 , - 1618 , - 369 , - 3344 , - 2351 , - 1486 , - 749 , - 140 , - 3755 , - 3402 , - 3177 , - 3080 , - 3111 , - 3270 , - 3557 , - 3972 , - 419 , - 1090 , - 1889 , - 2816 , - 3871 , - 958 , - 2269 , - 3708 , - 1179 , - 2874 , - 601 , - 2552 , - 535 , - 2742 , - 981 , - 3444 , - 1939 , - 562 , - 3409 , - 2288 , - 1295 , - 430 , - 3789 , - 3180 , - 2699 , - 2346 , - 2121 , - 2024 , - 2055 , - 2214 , - 2501 , - 2916 , - 3459 , - 34 , - 833 , - 1760 , - 2815 , - 3998 , - 1213 , - 2652 , - 123 , - 1818 , - 3641 , - 1496 , - 3575 , - 1686 , - 4021 , - 2388 , - 883 , - 3602 , - 2353 , - 1232 , - 239 , - 3470 , - 2733 , - 2124 , - 1643 , - 1290 , - 1065 , - 968 , - 999 , - 1158 , - 1445 , - 1860 , - 2403 , - 3074 , - 3873 , - 704 , - 1759 , - 2942 , - 157 , - 1596 , - 3163 , - 762 , - 2585 , - 440 , - 2519 , - 630 , - 2965 , - 1332 , - 3923 , - 2546 , - 1297 , - 176 , - 3279 , - 2414 , - 1677 , - 1068 , - 587 , - 234 , - 9 , - 4008 , - 4039 , - 102 , - 389 , - 804 , - 1347 , - 2018 , - 2817 , - 3744 , - 703 , - 1886 , - 3197 , - 540 , - 2107 , - 3802 , - 1529 , - 3480 , - 1463 , - 3670 , - 1909 , - 276 , - 2867 , - 1490 , - 241 , - 3216 , - 2223 , - 1358 , - 621 , - 12 , - 3627 , - 3274 , - 3049 , - 2952 , - 2983 , - 3142 , - 3429 , - 3844 , - 291 , - 962 , - 1761 , - 2688 , - 3743 , - 830 , - 2141 , - 3580 , - 1051 , - 2746 , - 473 , - 2424 , - 407 , - 2614 , - 853 , - 3316 , - 1811 , - 434 , - 3281 , - 2160 , - 1167 , - 302 , - 3661 , - 3052 , - 2571 , - 2218 , - 1993 , - 1896 , - 1927 , - 2086 , - 2373 , - 2788 , - 3331 , - 4002 , - 705 , - 1632 , - 2687 , - 3870 , - 1085 , - 2524 , - 4091 , - 1690 , - 3513 , - 1368 , - 3447 , - 1558 , - 3893 , - 2260 , - 755 , - 3474 , - 2225 , - 1104 , - 111 , - 3342 , - 2605 , - 1996 , - 1515 , - 1162 , - 937 , - 840 , - 871 , - 1030 , - 1317 , - 1732 , - 2275 , - 2946 , - 3745 , - 576 , - 1631 , - 2814 , - 29 , - 1468 , - 3035 , - 634 , - 2457 , - 312 , - 2391 , - 502 , - 2837 , - 1204 , - 3795 , - 2418 , - 1169 , - 48 , - 3151 , - 2286 , - 1549 , - 940 , - 459 , - 106 , - 3977 , - 3880 , - 3911 , - 4070 , - 261 , - 676 , - 1219 , - 1890 , - 2689 , - 3616 , - 575 , - 1758 , - 3069 , - 412 , - 1979 , - 3674 , - 1401 , - 3352 , - 1335 , - 3542 , - 1781 , - 148 , - 2739 , - 1362 , - 113 , - 3088 , - 2095 , - 1230 , - 493 , - 3980 , - 3499 , - 3146 , - 2921 , - 2824 , - 2855 , - 3014 , - 3301 , - 3716 , - 163 , - 834 , - 1633 , - 2560 , - 3615 , - 702 , - 2013 , - 3452 , - 923 , - 2618 , - 345 , - 2296 , - 279 , - 2486 , - 725 , - 3188 , - 1683 , - 306 , - 3153 , - 2032 , - 1039 , - 174 , - 3533 , - 2924 , - 2443 , - 2090 , - 1865 , - 1768 , - 1799 , - 1958 , - 2245 , - 2660 , - 3203 , - 3874 , - 577 , - 1504 , - 2559 , - 3742 , - 957 , - 2396 , - 3963 , - 1562 , - 3385 , - 1240 , - 3319 , - 1430 , - 3765 , - 2132 , - 627 , - 3346 , - 2097 , - 976 , - 4079 , - 3214 , - 2477 , - 1868 , - 1387 , - 1034 , - 809 , - 712 , - 743 , - 902 , - 1189 , - 1604 , - 2147 , - 2818 , - 3617 , - 448 , - 1503 , - 2686 , - 3997 , - 1340 , - 2907 , - 506 , - 2329 , - 184 , - 2263 , - 374 , - 2709 , - 1076 , - 3667 , - 2290 , - 1041 , - 4016 , - 3023 , - 2158 , - 1421 , - 812 , - 331 , - 4074 , - 3849 , - 3752 , - 3783 , - 3942 , - 133 , - 548 , - 1091 , - 1762 , - 2561 , - 3488 , - 447 , - 1630 , - 2941 , - 284 , - 1851 , - 3546 , - 1273 , - 3224 , - 1207 , - 3414 , - 1653 , - 20 , - 2611 , - 1234 , - 4081 , - 2960 , - 1967 , - 1102 , - 365 , - 3852 , - 3371 , - 3018 , - 2793 , - 2696 , - 2727 , - 2886 , - 3173 , - 3588 , - 35 , - 706 , - 1505 , - 2432 , - 3487 , - 574 , - 1885 , - 3324 , - 795 , - 2490 , - 217 , - 2168 , - 151 , - 2358 , - 597 , - 3060 , - 1555 , - 178 , - 3025 , - 1904 , - 911 , - 46 , - 3405 , - 2796 , - 2315 , - 1962 , - 1737 , - 1640 , - 1671 , - 1830 , - 2117 , - 2532 , - 3075 , - 3746 , - 449 , - 1376 , - 2431 , - 3614 , - 829 , - 2268 , - 3835 , - 1434 , - 3257 , - 1112 , - 3191 , - 1302 , - 3637 , - 2004 , - 499 , - 3218 , - 1969 , - 848 , - 3951 , - 3086 , - 2349 , - 1740 , - 1259 , - 906 , - 681 , - 584 , - 615 , - 774 , - 1061 , - 1476 , - 2019 , - 2690 , - 3489 , - 320 , - 1375 , - 2558 , - 3869 , - 1212 , - 2779 , - 378 , - 2201 , - 56 , - 2135 , - 246 , - 2581 , - 948 , - 3539 , - 2162 , - 913 , - 3888 , - 2895 , - 2030 , - 1293 , - 684 , - 203 , - 3946 , - 3721 , - 3624 , - 3655 , - 3814 , - 5 , - 420 , - 963 , - 1634 , - 2433 , - 3360 , - 319 , - 1502 , - 2813 , - 156 , - 1723 , - 3418 , - 1145 , - 3096 , - 1079 , - 3286 , - 1525 , - 3988 , - 2483 , - 1106 , - 3953 , - 2832 , - 1839 , - 974 , - 237 , - 3724 , - 3243 , - 2890 , - 2665 , - 2568 , - 2599 , - 2758 , - 3045 , - 3460 , - 4003 , - 578 , - 1377 , - 2304 , - 3359 , - 446 , - 1757 , - 3196 , - 667 , - 2362 , - 89 , - 2040 , - 23 , - 2230 , - 469 , - 2932 , - 1427 , - 50 , - 2897 , - 1776 , - 783 , - 4014 , - 3277 , - 2668 , - 2187 , - 1834 , - 1609 , - 1512 , - 1543 , - 1702 , - 1989 , - 2404 , - 2947 , - 3618 , - 321 , - 1248 , - 2303 , - 3486 , - 701 , - 2140 , - 3707 , - 1306 , - 3129 , - 984 , - 3063 , - 1174 , - 3509 , - 1876 , - 371 , - 3090 , - 1841 , - 720 , - 3823 , - 2958 , - 2221 , - 1612 , - 1131 , - 778 , - 553 , - 456 , - 487 , - 646 , - 933 , - 1348 , - 1891 , - 2562 , - 3361 , - 192 , - 1247 , - 2430 , - 3741 , - 1084 , - 2651 , - 250 , - 2073 , - 4024 , - 2007 , - 118 , - 2453 , - 820 , - 3411 , - 2034 , - 785 , - 3760 , - 2767 , - 1902 , - 1165 , - 556 , - 75 , - 3818 , - 3593 , - 3496 , - 3527 , - 3686 , - 3973 , - 292 , - 835 , - 1506 , - 2305 , - 3232 , - 191 , - 1374 , - 2685 , - 28 , - 1595 , - 3290 , - 1017 , - 2968 , - 951 , - 3158 , - 1397 , - 3860 , - 2355 , - 978 , - 3825 , - 2704 , - 1711 , - 846 , - 109 , - 3596 , - 3115 , - 2762 , - 2537 , - 2440 , - 2471 , - 2630 , - 2917 , - 3332 , - 3875 , - 450 , - 1249 , - 2176 , - 3231 , - 318 , - 1629 , - 3068 , - 539 , - 2234 , - 4057 , - 1912 , - 3991 , - 2102 , - 341 , - 2804 , - 1299 , - 4018 , - 2769 , - 1648 , - 655 , - 3886 , - 3149 , - 2540 , - 2059 , - 1706 , - 1481 , - 1384 , - 1415 , - 1574 , - 1861 , - 2276 , - 2819 , - 3490 , - 193 , - 1120 , - 2175 , - 3358 , - 573 , - 2012 , - 3579 , - 1178 , - 3001 , - 856 , - 2935 , - 1046 , - 3381 , - 1748 , - 243 , - 2962 , - 1713 , - 592 , - 3695 , - 2830 , - 2093 , - 1484 , - 1003 , - 650 , - 425 , - 328 , - 359 , - 518 , - 805 , - 1220 , - 1763 , - 2434 , - 3233 , - 64 , - 1119 , - 2302 , - 3613 , - 956 , - 2523 , - 122 , - 1945 , - 3896 , - 1879 , - 4086 , - 2325 , - 692 , - 3283 , - 1906 , - 657 , - 3632 , - 2639 , - 1774 , - 1037 , - 428 , - 4043 , - 3690 , - 3465 , - 3368 , - 3399 , - 3558 , - 3845 , - 164 , - 707 , - 1378 , - 2177 , - 3104 , - 63 , - 1246 , - 2557 , - 3996 , - 1467 , - 3162 , - 889 , - 2840 , - 823 , - 3030 , - 1269 , - 3732 , - 2227 , - 850 , - 3697 , - 2576 , - 1583 , - 718 , - 4077 , - 3468 , - 2987 , - 2634 , - 2409 , - 2312 , - 2343 , - 2502 , - 2789 , - 3204 , - 3747 , - 322 , - 1121 , - 2048 , - 3103 , - 190 , - 1501 , - 2940 , - 411 , - 2106 , - 3929 , - 1784 , - 3863 , - 1974 , - 213 , - 2676 , - 1171 , - 3890 , - 2641 , - 1520 , - 527 , - 3758 , - 3021 , - 2412 , - 1931 , - 1578 , - 1353 , - 1256 , - 1287 , - 1446 , - 1733 , - 2148 , - 2691 , - 3362 , - 65 , - 992 , - 2047 , - 3230 , - 445 , - 1884 , - 3451 , - 1050 , - 2873 , - 728 , - 2807 , - 918 , - 3253 , - 1620 , - 115 , - 2834 , - 1585 , - 464 , - 3567 , - 2702 , - 1965 , - 1356 , - 875 , - 522 , - 297 , - 200 , - 231 , - 390 , - 677 , - 1092 , - 1635 , - 2306 , - 3105 , - 4032 , - 991 , - 2174 , - 3485 , - 828 , - 2395 , - 4090 , - 1817 , - 3768 , - 1751 , - 3958 , - 2197 , - 564 , - 3155 , - 1778 , - 529 , - 3504 , - 2511 , - 1646 , - 909 , - 300 , - 3915 , - 3562 , - 3337 , - 3240 , - 3271 , - 3430 , - 3717 , - 36 , - 579 , - 1250 , - 2049 , - 2976 , - 4031 , - 1118 , - 2429 , - 3868 , - 1339 , - 3034 , - 761 , - 2712 , - 695 , - 2902 , - 1141 , - 3604 , - 2099 , - 722 , - 3569 , - 2448 , - 1455 , - 590 , - 3949 , - 3340 , - 2859 , - 2506 , - 2281 , - 2184 , - 2215 , - 2374 , - 2661 , - 3076 , - 3619 , - 194 , - 993 , - 1920 , - 2975 , - 62 , - 1373 , - 2812 , - 283 , - 1978 , - 3801 , - 1656 , - 3735 , - 1846 , - 85 , - 2548 , - 1043 , - 3762 , - 2513 , - 1392 , - 399 , - 3630 , - 2893 , - 2284 , - 1803 , - 1450 , - 1225 , - 1128 , - 1159 , - 1318 , - 1605 , - 2020 , - 2563 , - 3234 , - 4033 , - 864 , - 1919 , - 3102 , - 317 , - 1756 , - 3323 , - 922 , - 2745 , - 600 , - 2679 , - 790 , - 3125 , - 1492 , - 4083 , - 2706 , - 1457 , - 336 , - 3439 , - 2574 , - 1837 , - 1228 , - 747 , - 394 , - 169 , - 72 , - 103 , - 262 , - 549 , - 964 , - 1507 , - 2178 , - 2977 , - 3904 , - 863 , - 2046 , - 3357 , - 700 , - 2267 , - 3962 , - 1689 , - 3640 , - 1623 , - 3830 , - 2069 , - 436 , - 3027 , - 1650 , - 401 , - 3376 , - 2383 , - 1518 , - 781 , - 172 , - 3787 , - 3434 , - 3209 , - 3112 , - 3143 , - 3302 , - 3589 , - 4004 , - 451 , - 1122 , - 1921 , - 2848 , - 3903 , - 990 , - 2301 , - 3740 , - 1211 , - 2906 , - 633 , - 2584 , - 567 , - 2774 , - 1013 , - 3476 , - 1971 , - 594 , - 3441 , - 2320 , - 1327 , - 462 , - 3821 , - 3212 , - 2731 , - 2378 , - 2153 , - 2056 , - 2087 , - 2246 , - 2533 , - 2948 , - 3491 , - 66 , - 865 , - 1792 , - 2847 , - 4030 , - 1245 , - 2684 , - 155 , - 1850 , - 3673 , - 1528 , - 3607 , - 1718 , - 4053 , - 2420 , - 915 , - 3634 , - 2385 , - 1264 , - 271 , - 3502 , - 2765 , - 2156 , - 1675 , - 1322 , - 1097 , - 1000 , - 1031 , - 1190 , - 1477 , - 1892 , - 2435 , - 3106 , - 3905 , - 736 , - 1791 , - 2974 , - 189 , - 1628 , - 3195 , - 794 , - 2617 , - 472 , - 2551 , - 662 , - 2997 , - 1364 , - 3955 , - 2578 , - 1329 , - 208 , - 3311 , - 2446 , - 1709 , - 1100 , - 619 , - 266 , - 41 , - 4040 , - 4071 , - 134 , - 421 , - 836 , - 1379 , - 2050 , - 2849 , - 3776 , - 735 , - 1918 , - 3229 , - 572 , - 2139 , - 3834 , - 1561 , - 3512 , - 1495 , - 3702 , - 1941 , - 308 , - 2899 , - 1522 , - 273 , - 3248 , - 2255 , - 1390 , - 653 , - 44 , - 3659 , - 3306 , - 3081 , - 2984 , - 3015 , - 3174 , - 3461 , - 3876 , - 323 , - 994 , - 1793 , - 2720 , - 3775 , - 862 , - 2173 , - 3612 , - 1083 , - 2778 , - 505 , - 2456 , - 439 , - 2646 , - 885 , - 3348 , - 1843 , - 466 , - 3313 , - 2192 , - 1199 , - 334 , - 3693 , - 3084 , - 2603 , - 2250 , - 2025 , - 1928 , - 1959 , - 2118 , - 2405 , - 2820 , - 3363 , - 4034 , - 737 , - 1664 , - 2719 , - 3902 , - 1117 , - 2556 , - 27 , - 1722 , - 3545 , - 1400 , - 3479 , - 1590 , - 3925 , - 2292 , - 787 , - 3506 , - 2257 , - 1136 , - 143 , - 3374 , - 2637 , - 2028 , - 1547 , - 1194 , - 969 , - 872 , - 903 , - 1062 , - 1349 , - 1764 , - 2307 , - 2978 , - 3777 , - 608 , - 1663 , - 2846 , - 61 , - 1500 , - 3067 , - 666 , - 2489 , - 344 , - 2423 , - 534 , - 2869 , - 1236 , - 3827 , - 2450 , - 1201 , - 80 , - 3183 , - 2318 , - 1581 , - 972 , - 491 , - 138 , - 4009 , - 3912 , - 3943 , - 6 , - 293 , - 708 , - 1251 , - 1922 , - 2721 , - 3648 , - 607 , - 1790 , - 3101 , - 444 , - 2011 , - 3706 , - 1433 , - 3384 , - 1367 , - 3574 , - 1813 , - 180 , - 2771 , - 1394 , - 145 , - 3120 , - 2127 , - 1262 , - 525 , - 4012 , - 3531 , - 3178 , - 2953 , - 2856 , - 2887 , - 3046 , - 3333 , - 3748 , - 195 , - 866 , - 1665 , - 2592 , - 3647 , - 734 , - 2045 , - 3484 , - 955 , - 2650 , - 377 , - 2328 , - 311 , - 2518 , - 757 , - 3220 , - 1715 , - 338 , - 3185 , - 2064 , - 1071 , - 206 , - 3565 , - 2956 , - 2475 , - 2122 , - 1897 , - 1800 , - 1831 , - 1990 , - 2277 , - 2692 , - 3235 , - 3906 , - 609 , - 1536 , - 2591 , - 3774 , - 989 , - 2428 , - 3995 , - 1594 , - 3417 , - 1272 , - 3351 , - 1462 , - 3797 , - 2164 , - 659 , - 3378 , - 2129 , - 1008 , - 15 , - 3246 , - 2509 , - 1900 , - 1419 , - 1066 , - 841 , - 744 , - 775 , - 934 , - 1221 , - 1636 , - 2179 , - 2850 , - 3649 , - 480 , - 1535 , - 2718 , - 4029 , - 1372 , - 2939 , - 538 , - 2361 , - 216 , - 2295 , - 406 , - 2741 , - 1108 , - 3699 , - 2322 , - 1073 , - 4048 , - 3055 , - 2190 , - 1453 , - 844 , - 363 , - 10 , - 3881 , - 3784 , - 3815 , - 3974 , - 165 , - 580 , - 1123 , - 1794 , - 2593 , - 3520 , - 479 , - 1662 , - 2973 , - 316 , - 1883 , - 3578 , - 1305 , - 3256 , - 1239 , - 3446 , - 1685 , - 52 , - 2643 , - 1266 , - 17 , - 2992 , - 1999 , - 1134 , - 397 , - 3884 , - 3403 , - 3050 , - 2825 , - 2728 , - 2759 , - 2918 , - 3205 , - 3620 , - 67 , - 738 , - 1537 , - 2464 , - 3519 , - 606 , - 1917 , - 3356 , - 827 , - 2522 , - 249 , - 2200 , - 183 , - 2390 , - 629 , - 3092 , - 1587 , - 210 , - 3057 , - 1936 , - 943 , - 78 , - 3437 , - 2828 , - 2347 , - 1994 , - 1769 , - 1672 , - 1703 , - 1862 , - 2149 , - 2564 , - 3107 , - 3778 , - 481 , - 1408 , - 2463 , - 3646 , - 861 , - 2300 , - 3867 , - 1466 , - 3289 , - 1144 , - 3223 , - 1334 , - 3669 , - 2036 , - 531 , - 3250 , - 2001 , - 880 , - 3983 , - 3118 , - 2381 , - 1772 , - 1291 , - 938 , - 713 , - 616 , - 647 , - 806 , - 1093 , - 1508 , - 2051 , - 2722 , - 3521 , - 352 , - 1407 , - 2590 , - 3901 , - 1244 , - 2811 , - 410 , - 2233 , - 88 , - 2167 , - 278 , - 2613 , - 980 , - 3571 , - 2194 , - 945 , - 3920 , - 2927 , - 2062 , - 1325 , - 716 , - 235 , - 3978 , - 3753 , - 3656 , - 3687 , - 3846 , - 37 , - 452 , - 995 , - 1666 , - 2465 , - 3392 , - 351 , - 1534 , - 2845 , - 188 , - 1755 , - 3450 , - 1177 , - 3128 , - 1111 , - 3318 , - 1557 , - 4020 , - 2515 , - 1138 , - 3985 , - 2864 , - 1871 , - 1006 , - 269 , - 3756 , - 3275 , - 2922 , - 2697 , - 2600 , - 2631 , - 2790 , - 3077 , - 3492 , - 4035 , - 610 , - 1409 , - 2336 , - 3391 , - 478 , - 1789 , - 3228 , - 699 , - 2394 , - 121 , - 2072 , - 55 , - 2262 , - 501 , - 2964 , - 1459 , - 82 , - 2929 , - 1808 , - 815 , - 4046 , - 3309 , - 2700 , - 2219 , - 1866 , - 1641 , - 1544 , - 1575 , - 1734 , - 2021 , - 2436 , - 2979 , - 3650 , - 353 , - 1280 , - 2335 , - 3518 , - 733 , - 2172 , - 3739 , - 1338 , - 3161 , - 1016 , - 3095 , - 1206 , - 3541 , - 1908 , - 403 , - 3122 , - 1873 , - 752 , - 3855 , - 2990 , - 2253 , - 1644 , - 1163 , - 810 , - 585 , - 488 , - 519 , - 678 , - 965 , - 1380 , - 1923 , - 2594 , - 3393 , - 224 , - 1279 , - 2462 , - 3773 , - 1116 , - 2683 , - 282 , - 2105 , - 4056 , - 2039 , - 150 , - 2485 , - 852 , - 3443 , - 2066 , - 817 , - 3792 , - 2799 , - 1934 , - 1197 , - 588 , - 107 , - 3850 , - 3625 , - 3528 , - 3559 , - 3718 , - 4005 , - 324 , - 867 , - 1538 , - 2337 , - 3264 , - 223 , - 1406 , - 2717 , - 60 , - 1627 , - 3322 , - 1049 , - 3000 , - 983 , - 3190 , - 1429 , - 3892 , - 2387 , - 1010 , - 3857 , - 2736 , - 1743 , - 878 , - 141 , - 3628 , - 3147 , - 2794 , - 2569 , - 2472 , - 2503 , - 2662 , - 2949 , - 3364 , - 3907 , - 482 , - 1281 , - 2208 , - 3263 , - 350 , - 1661 , - 3100 , - 571 , - 2266 , - 4089 , - 1944 , - 4023 , - 2134 , - 373 , - 2836 , - 1331 , - 4050 , - 2801 , - 1680 , - 687 , - 3918 , - 3181 , - 2572 , - 2091 , - 1738 , - 1513 , - 1416 , - 1447 , - 1606 , - 1893 , - 2308 , - 2851 , - 3522 , - 225 , - 1152 , - 2207 , - 3390 , - 605 , - 2044 , - 3611 , - 1210 , - 3033 , - 888 , - 2967 , - 1078 , - 3413 , - 1780 , - 275 , - 2994 , - 1745 , - 624 , - 3727 , - 2862 , - 2125 , - 1516 , - 1035 , - 682 , - 457 , - 360 , - 391 , - 550 , - 837 , - 1252 , - 1795 , - 2466 , - 3265 , - 96 , - 1151 , - 2334 , - 3645 , - 988 , - 2555 , - 154 , - 1977 , - 3928 , - 1911 , - 22 , - 2357 , - 724 , - 3315 , - 1938 , - 689 , - 3664 , - 2671 , - 1806 , - 1069 , - 460 , - 4075 , - 3722 , - 3497 , - 3400 , - 3431 , - 3590 , - 3877 , - 196 , - 739 , - 1410 , - 2209 , - 3136 , - 95 , - 1278 , - 2589 , - 4028 , - 1499 , - 3194 , - 921 , - 2872 , - 855 , - 3062 , - 1301 , - 3764 , - 2259 , - 882 , - 3729 , - 2608 , - 1615 , - 750 , - 13 , - 3500 , - 3019 , - 2666 , - 2441 , - 2344 , - 2375 , - 2534 , - 2821 , - 3236 , - 3779 , - 354 , - 1153 , - 2080 , - 3135 , - 222 , - 1533 , - 2972 , - 443 , - 2138 , - 3961 , - 1816 , - 3895 , - 2006 , - 245 , - 2708 , - 1203 , - 3922 , - 2673 , - 1552 , - 559 , - 3790 , - 3053 , - 2444 , - 1963 , - 1610 , - 1385 , - 1288 , - 1319 , - 1478 , - 1765 , - 2180 , - 2723 , - 3394 , - 97 , - 1024 , - 2079 , - 3262 , - 477 , - 1916 , - 3483 , - 1082 , - 2905 , - 760 , - 2839 , - 950 , - 3285 , - 1652 , - 147 , - 2866 , - 1617 , - 496 , - 3599 , - 2734 , - 1997 , - 1388 , - 907 , - 554 , - 329 , - 232 , - 263 , - 422 , - 709 , - 1124 , - 1667 , - 2338 , - 3137 , - 4064 , - 1023 , - 2206 , - 3517 , - 860 , - 2427 , - 26 , - 1849 , - 3800 , - 1783 , - 3990 , - 2229 , - 596 , - 3187 , - 1810 , - 561 , - 3536 , - 2543 , - 1678 , - 941 , - 332 , - 3947 , - 3594 , - 3369 , - 3272 , - 3303 , - 3462 , - 3749 , - 68 , - 611 , - 1282 , - 2081 , - 3008 , - 4063 , - 1150 , - 2461 , - 3900 , - 1371 , - 3066 , - 793 , - 2744 , - 727 , - 2934 , - 1173 , - 3636 , - 2131 , - 754 , - 3601 , - 2480 , - 1487 , - 622 , - 3981 , - 3372 , - 2891 , - 2538 , - 2313 , - 2216 , - 2247 , - 2406 , - 2693 , - 3108 , - 3651 , - 226 , - 1025 , - 1952 , - 3007 , - 94 , - 1405 , - 2844 , - 315 , - 2010 , - 3833 , - 1688 , - 3767 , - 1878 , - 117 , - 2580 , - 1075 , - 3794 , - 2545 , - 1424 , - 431 , - 3662 , - 2925 , - 2316 , - 1835 , - 1482 , - 1257 , - 1160 , - 1191 , - 1350 , - 1637 , - 2052 , - 2595 , - 3266 , - 4065 , - 896 , - 1951 , - 3134 , - 349 , - 1788 , - 3355 , - 954 , - 2777 , - 632 , - 2711 , - 822 , - 3157 , - 1524 , - 19 , - 2738 , - 1489 , - 368 , - 3471 , - 2606 , - 1869 , - 1260 , - 779 , - 426 , - 201 , - 104 , - 135 , - 294 , - 581 , - 996 , - 1539 , - 2210 , - 3009 , - 3936 , - 895 , - 2078 , - 3389 , - 732 , - 2299 , - 3994 , - 1721 , - 3672 , - 1655 , - 3862 , - 2101 , - 468 , - 3059 , - 1682 , - 433 , - 3408 , - 2415 , - 1550 , - 813 , - 204 , - 3819 , - 3466 , - 3241 , - 3144 , - 3175 , - 3334 , - 3621 , - 4036 , - 483 , - 1154 , - 1953 , - 2880 , - 3935 , - 1022 , - 2333 , - 3772 , - 1243 , - 2938 , - 665 , - 2616 , - 599 , - 2806 , - 1045 , - 3508 , - 2003 , - 626 , - 3473 , - 2352 , - 1359 , - 494 , - 3853 , - 3244 , - 2763 , - 2410 , - 2185 , - 2088 , - 2119 , - 2278 , - 2565 , - 2980 , - 3523 , - 98 , - 897 , - 1824 , - 2879 , - 4062 , - 1277 , - 2716 , - 187 , - 1882 , - 3705 , - 1560 , - 3639 , - 1750 , - 4085 , - 2452 , - 947 , - 3666 , - 2417 , - 1296 , - 303 , - 3534 , - 2797 , - 2188 , - 1707 , - 1354 , - 1129 , - 1032 , - 1063 , - 1222 , - 1509 , - 1924 , - 2467 , - 3138 , - 3937 , - 768 , - 1823 , - 3006 , - 221 , - 1660 , - 3227 , - 826 , - 2649 , - 504 , - 2583 , - 694 , - 3029 , - 1396 , - 3987 , - 2610 , - 1361 , - 240 , - 3343 , - 2478 , - 1741 , - 1132 , - 651 , - 298 , - 73 , - 4072 , - 7 , - 166 , - 453 , - 868 , - 1411 , - 2082 , - 2881 , - 3808 , - 767 , - 1950 , - 3261 , - 604 , - 2171 , - 3866 , - 1593 , - 3544 , - 1527 , - 3734 , - 1973 , - 340 , - 2931 , - 1554 , - 305 , - 3280 , - 2287 , - 1422 , - 685 , - 76 , - 3691 , - 3338 , - 3113 , - 3016 , - 3047 , - 3206 , - 3493 , - 3908 , - 355 , - 1026 , - 1825 , - 2752 , - 3807 , - 894 , - 2205 , - 3644 , - 1115 , - 2810 , - 537 , - 2488 , - 471 , - 2678 , - 917 , - 3380 , - 1875 , - 498 , - 3345 , - 2224 , - 1231 , - 366 , - 3725 , - 3116 , - 2635 , - 2282 , - 2057 , - 1960 , - 1991 , - 2150 , - 2437 , - 2852 , - 3395 , - 4066 , - 769 , - 1696 , - 2751 , - 3934 , - 1149 , - 2588 , - 59 , - 1754 , - 3577 , - 1432 , - 3511 , - 1622 , - 3957 , - 2324 , - 819 , - 3538 , - 2289 , - 1168 , - 175 , - 3406 , - 2669 , - 2060 , - 1579 , - 1226 , - 1001 , - 904 , - 935 , - 1094 , - 1381 , - 1796 , - 2339 , - 3010 , - 3809 , - 640 , - 1695 , - 2878 , - 93 , - 1532 , - 3099 , - 698 , - 2521 , - 376 , - 2455 , - 566 , - 2901 , - 1268 , - 3859 , - 2482 , - 1233 , - 112 , - 3215 , - 2350 , - 1613 , - 1004 , - 523 , - 170 , - 4041 , - 3944 , - 3975 , - 38 , - 325 , - 740 , - 1283 , - 1954 , - 2753 , - 3680 , - 639 , - 1822 , - 3133 , - 476 , - 2043 , - 3738 , - 1465 , - 3416 , - 1399 , - 3606 , - 1845 , - 212 , - 2803 , - 1426 , - 177 , - 3152 , - 2159 , - 1294 , - 557 , - 4044 , - 3563 , - 3210 , - 2985 , - 2888 , - 2919 , - 3078 , - 3365 , - 3780 , - 227 , - 898 , - 1697 , - 2624 , - 3679 , - 766 , - 2077 , - 3516 , - 987 , - 2682 , - 409 , - 2360 , - 343 , - 2550 , - 789 , - 3252 , - 1747 , - 370 , - 3217 , - 2096 , - 1103 , - 238 , - 3597 , - 2988 , - 2507 , - 2154 , - 1929 , - 1832 , - 1863 , - 2022 , - 2309 , - 2724 , - 3267 , - 3938 , - 641 , - 1568 , - 2623 , - 3806 , - 1021 , - 2460 , - 4027 , - 1626 , - 3449 , - 1304 , - 3383 , - 1494 , - 3829 , - 2196 , - 691 , - 3410 , - 2161 , - 1040 , - 47 , - 3278 , - 2541 , - 1932 , - 1451 , - 1098 , - 873 , - 776 , - 807 , - 966 , - 1253 , - 1668 , - 2211 , - 2882 , - 3681 , - 512 , - 1567 , - 2750 , - 4061 , - 1404 , - 2971 , - 570 , - 2393 , - 248 , - 2327 , - 438 , - 2773 , - 1140 , - 3731 , - 2354 , - 1105 , - 4080 , - 3087 , - 2222 , - 1485 , - 876 , - 395 , - 42 , - 3913 , - 3816 , - 3847 , - 4006 , - 197 , - 612 , - 1155 , - 1826 , - 2625 , - 3552 , - 511 , - 1694 , - 3005 , - 348 , - 1915 , - 3610 , - 1337 , - 3288 , - 1271 , - 3478 , - 1717 , - 84 , - 2675 , - 1298 , - 49 , - 3024 , - 2031 , - 1166 , - 429 , - 3916 , - 3435 , - 3082 , - 2857 , - 2760 , - 2791 , - 2950 , - 3237 , - 3652 , - 99 , - 770 , - 1569 , - 2496 , - 3551 , - 638 , - 1949 , - 3388 , - 859 , - 2554 , - 281 , - 2232 , - 215 , - 2422 , - 661 , - 3124 , - 1619 , - 242 , - 3089 , - 1968 , - 975 , - 110 , - 3469 , - 2860 , - 2379 , - 2026 , - 1801 , - 1704 , - 1735 , - 1894 , - 2181 , - 2596 , - 3139 , - 3810 , - 513 , - 1440 , - 2495 , - 3678 , - 893 , - 2332 , - 3899 , - 1498 , - 3321 , - 1176 , - 3255 , - 1366 , - 3701 , - 2068 , - 563 , - 3282 , - 2033 , - 912 , - 4015 , - 3150 , - 2413 , - 1804 , - 1323 , - 970 , - 745 , - 648 , - 679 , - 838 , - 1125 , - 1540 , - 2083 , - 2754 , - 3553 , - 384 , - 1439 , - 2622 , - 3933 , - 1276 , - 2843 , - 442 , - 2265 , - 120 , - 2199 , - 310 , - 2645 , - 1012 , - 3603 , - 2226 , - 977 , - 3952 , - 2959 , - 2094 , - 1357 , - 748 , - 267 , - 4010 , - 3785 , - 3688 , - 3719 , - 3878 , - 69 , - 484 , - 1027 , - 1698 , - 2497 , - 3424 , - 383 , - 1566 , - 2877 , - 220 , - 1787 , - 3482 , - 1209 , - 3160 , - 1143 , - 3350 , - 1589 , - 4052 , - 2547 , - 1170 , - 4017 , - 2896 , - 1903 , - 1038 , - 301 , - 3788 , - 3307 , - 2954 , - 2729 , - 2632 , - 2663 , - 2822 , - 3109 , - 3524 , - 4067 , - 642 , - 1441 , - 2368 , - 3423 , - 510 , - 1821 , - 3260 , - 731 , - 2426 , - 153 , - 2104 , - 87 , - 2294 , - 533 , - 2996 , - 1491 , - 114 , - 2961 , - 1840 , - 847 , - 4078 , - 3341 , - 2732 , - 2251 , - 1898 , - 1673 , - 1576 , - 1607 , - 1766 , - 2053 , - 2468 , - 3011 , - 3682 , - 385 , - 1312 , - 2367 , - 3550 , - 765 , - 2204 , - 3771 , - 1370 , - 3193 , - 1048 , - 3127 , - 1238 , - 3573 , - 1940 , - 435 , - 3154 , - 1905 , - 784 , - 3887 , - 3022 , - 2285 , - 1676 , - 1195 , - 842 , - 617 , - 520 , - 551 , - 710 , - 997 , - 1412 , - 1955 , - 2626 , - 3425 , - 256 , - 1311 , - 2494 , - 3805 , - 1148 , - 2715 , - 314 , - 2137 , - 4088 , - 2071 , - 182 , - 2517 , - 884 , - 3475 , - 2098 , - 849 , - 3824 , - 2831 , - 1966 , - 1229 , - 620 , - 139 , - 3882 , - 3657 , - 3560 , - 3591 , - 3750 , - 4037 , - 356 , - 899 , - 1570 , - 2369 , - 3296 , - 255 , - 1438 , - 2749 , - 92 , - 1659 , - 3354 , - 1081 , - 3032 , - 1015 , - 3222 , - 1461 , - 3924 , - 2419 , - 1042 , - 3889 , - 2768 , - 1775 , - 910 , - 173 , - 3660 , - 3179 , - 2826 , - 2601 , - 2504 , - 2535 , - 2694 , - 2981 , - 3396 , - 3939 , - 514 , - 1313 , - 2240 , - 3295 , - 382 , - 1693 , - 3132 , - 603 , - 2298 , - 25 , - 1976 , - 4055 , - 2166 , - 405 , - 2868 , - 1363 , - 4082 , - 2833 , - 1712 , - 719 , - 3950 , - 3213 , - 2604 , - 2123 , - 1770 , - 1545 , - 1448 , - 1479 , - 1638 , - 1925 , - 2340 , - 2883 , - 3554 , - 257 , - 1184 , - 2239 , - 3422 , - 637 , - 2076 , - 3643 , - 1242 , - 3065 , - 920 , - 2999 , - 1110 , - 3445 , - 1812 , - 307 , - 3026 , - 1777 , - 656 , - 3759 , - 2894 , - 2157 , - 1548 , - 1067 , - 714 , - 489 , - 392 , - 423 , - 582 , - 869 , - 1284 , - 1827 , - 2498 , - 3297 , - 128 , - 1183 , - 2366 , - 3677 , - 1020 , - 2587 , - 186 , - 2009 , - 3960 , - 1943 , - 54 , - 2389 , - 756 , - 3347 , - 1970 , - 721 , - 3696 , - 2703 , - 1838 , - 1101 , - 492 , - 11 , - 3754 , - 3529 , - 3432 , - 3463 , - 3622 , - 3909 , - 228 , - 771 , - 1442 , - 2241 , - 3168 , - 127 , - 1310 , - 2621 , - 4060 , - 1531 , - 3226 , - 953 , - 2904 , - 887 , - 3094 , - 1333 , - 3796 , - 2291 , - 914 , - 3761 , - 2640 , - 1647 , - 782 , - 45 , - 3532 , - 3051 , - 2698 , - 2473 , - 2376 , - 2407 , - 2566 , - 2853 , - 3268 , - 3811 , - 386 , - 1185 , - 2112 , - 3167 , - 254 , - 1565 , - 3004 , - 475 , - 2170 , - 3993 , - 1848 , - 3927 , - 2038 , - 277 , - 2740 , - 1235 , - 3954 , - 2705 , - 1584 , - 591 , - 3822 , - 3085 , - 2476 , - 1995 , - 1642 , - 1417 , - 1320 , - 1351 , - 1510 , - 1797 , - 2212 , - 2755 , - 3426 , - 129 , - 1056 , - 2111 , - 3294 , - 509 , - 1948 , - 3515 , - 1114 , - 2937 , - 792 , - 2871 , - 982 , - 3317 , - 1684 , - 179 , - 2898 , - 1649 , - 528 , - 3631 , - 2766 , - 2029 , - 1420 , - 939 , - 586 , - 361 , - 264 , - 295 , - 454 , - 741 , - 1156 , - 1699 , - 2370 , - 3169 , - 0 , - 1887 , - 3514 , - 1761 , - 1828 , - 595 , - 3262 , - 2549 , - 3656 , - 3463 , - 3010 , - 3337 , - 1324 , - 2171 , - 2758 , - 4125 , - 3152 , - 879 , - 2506 , - 753 , - 820 , - 3747 , - 2254 , - 1541 , - 2648 , - 2455 , - 2002 , - 2329 , - 316 , - 1163 , - 1750 , - 3117 , - 2144 , - 4031 , - 1498 , - 3905 , - 3972 , - 2739 , - 1246 , - 533 , - 1640 , - 1447 , - 994 , - 1321 , - 3468 , - 155 , - 742 , - 2109 , - 1136 , - 3023 , - 490 , - 2897 , - 2964 , - 1731 , - 238 , - 3685 , - 632 , - 439 , - 4146 , - 313 , - 2460 , - 3307 , - 3894 , - 1101 , - 128 , - 2015 , - 3642 , - 1889 , - 1956 , - 723 , - 3390 , - 2677 , - 3784 , - 3591 , - 3138 , - 3465 , - 1452 , - 2299 , - 2886 , - 93 , - 3280 , - 1007 , - 2634 , - 881 , - 948 , - 3875 , - 2382 , - 1669 , - 2776 , - 2583 , - 2130 , - 2457 , - 444 , - 1291 , - 1878 , - 3245 , - 2272 , - 4159 , - 1626 , - 4033 , - 4100 , - 2867 , - 1374 , - 661 , - 1768 , - 1575 , - 1122 , - 1449 , - 3596 , - 283 , - 870 , - 2237 , - 1264 , - 3151 , - 618 , - 3025 , - 3092 , - 1859 , - 366 , - 3813 , - 760 , - 567 , - 114 , - 441 , - 2588 , - 3435 , - 4022 , - 1229 , - 256 , - 2143 , - 3770 , - 2017 , - 2084 , - 851 , - 3518 , - 2805 , - 3912 , - 3719 , - 3266 , - 3593 , - 1580 , - 2427 , - 3014 , - 221 , - 3408 , - 1135 , - 2762 , - 1009 , - 1076 , - 4003 , - 2510 , - 1797 , - 2904 , - 2711 , - 2258 , - 2585 , - 572 , - 1419 , - 2006 , - 3373 , - 2400 , - 127 , - 1754 , - 1 , - 68 , - 2995 , - 1502 , - 789 , - 1896 , - 1703 , - 1250 , - 1577 , - 3724 , - 411 , - 998 , - 2365 , - 1392 , - 3279 , - 746 , - 3153 , - 3220 , - 1987 , - 494 , - 3941 , - 888 , - 695 , - 242 , - 569 , - 2716 , - 3563 , - 4150 , - 1357 , - 384 , - 2271 , - 3898 , - 2145 , - 2212 , - 979 , - 3646 , - 2933 , - 4040 , - 3847 , - 3394 , - 3721 , - 1708 , - 2555 , - 3142 , - 349 , - 3536 , - 1263 , - 2890 , - 1137 , - 1204 , - 4131 , - 2638 , - 1925 , - 3032 , - 2839 , - 2386 , - 2713 , - 700 , - 1547 , - 2134 , - 3501 , - 2528 , - 255 , - 1882 , - 129 , - 196 , - 3123 , - 1630 , - 917 , - 2024 , - 1831 , - 1378 , - 1705 , - 3852 , - 539 , - 1126 , - 2493 , - 1520 , - 3407 , - 874 , - 3281 , - 3348 , - 2115 , - 622 , - 4069 , - 1016 , - 823 , - 370 , - 697 , - 2844 , - 3691 , - 118 , - 1485 , - 512 , - 2399 , - 4026 , - 2273 , - 2340 , - 1107 , - 3774 , - 3061 , - 8 , - 3975 , - 3522 , - 3849 , - 1836 , - 2683 , - 3270 , - 477 , - 3664 , - 1391 , - 3018 , - 1265 , - 1332 , - 99 , - 2766 , - 2053 , - 3160 , - 2967 , - 2514 , - 2841 , - 828 , - 1675 , - 2262 , - 3629 , - 2656 , - 383 , - 2010 , - 257 , - 324 , - 3251 , - 1758 , - 1045 , - 2152 , - 1959 , - 1506 , - 1833 , - 3980 , - 667 , - 1254 , - 2621 , - 1648 , - 3535 , - 1002 , - 3409 , - 3476 , - 2243 , - 750 , - 37 , - 1144 , - 951 , - 498 , - 825 , - 2972 , - 3819 , - 246 , - 1613 , - 640 , - 2527 , - 4154 , - 2401 , - 2468 , - 1235 , - 3902 , - 3189 , - 136 , - 4103 , - 3650 , - 3977 , - 1964 , - 2811 , - 3398 , - 605 , - 3792 , - 1519 , - 3146 , - 1393 , - 1460 , - 227 , - 2894 , - 2181 , - 3288 , - 3095 , - 2642 , - 2969 , - 956 , - 1803 , - 2390 , - 3757 , - 2784 , - 511 , - 2138 , - 385 , - 452 , - 3379 , - 1886 , - 1173 , - 2280 , - 2087 , - 1634 , - 1961 , - 4108 , - 795 , - 1382 , - 2749 , - 1776 , - 3663 , - 1130 , - 3537 , - 3604 , - 2371 , - 878 , - 165 , - 1272 , - 1079 , - 626 , - 953 , - 3100 , - 3947 , - 374 , - 1741 , - 768 , - 2655 , - 122 , - 2529 , - 2596 , - 1363 , - 4030 , - 3317 , - 264 , - 71 , - 3778 , - 4105 , - 2092 , - 2939 , - 3526 , - 733 , - 3920 , - 1647 , - 3274 , - 1521 , - 1588 , - 355 , - 3022 , - 2309 , - 3416 , - 3223 , - 2770 , - 3097 , - 1084 , - 1931 , - 2518 , - 3885 , - 2912 , - 639 , - 2266 , - 513 , - 580 , - 3507 , - 2014 , - 1301 , - 2408 , - 2215 , - 1762 , - 2089 , - 76 , - 923 , - 1510 , - 2877 , - 1904 , - 3791 , - 1258 , - 3665 , - 3732 , - 2499 , - 1006 , - 293 , - 1400 , - 1207 , - 754 , - 1081 , - 3228 , - 4075 , - 502 , - 1869 , - 896 , - 2783 , - 250 , - 2657 , - 2724 , - 1491 , - 4158 , - 3445 , - 392 , - 199 , - 3906 , - 73 , - 2220 , - 3067 , - 3654 , - 861 , - 4048 , - 1775 , - 3402 , - 1649 , - 1716 , - 483 , - 3150 , - 2437 , - 3544 , - 3351 , - 2898 , - 3225 , - 1212 , - 2059 , - 2646 , - 4013 , - 3040 , - 767 , - 2394 , - 641 , - 708 , - 3635 , - 2142 , - 1429 , - 2536 , - 2343 , - 1890 , - 2217 , - 204 , - 1051 , - 1638 , - 3005 , - 2032 , - 3919 , - 1386 , - 3793 , - 3860 , - 2627 , - 1134 , - 421 , - 1528 , - 1335 , - 882 , - 1209 , - 3356 , - 43 , - 630 , - 1997 , - 1024 , - 2911 , - 378 , - 2785 , - 2852 , - 1619 , - 126 , - 3573 , - 520 , - 327 , - 4034 , - 201 , - 2348 , - 3195 , - 3782 , - 989 , - 16 , - 1903 , - 3530 , - 1777 , - 1844 , - 611 , - 3278 , - 2565 , - 3672 , - 3479 , - 3026 , - 3353 , - 1340 , - 2187 , - 2774 , - 4141 , - 3168 , - 895 , - 2522 , - 769 , - 836 , - 3763 , - 2270 , - 1557 , - 2664 , - 2471 , - 2018 , - 2345 , - 332 , - 1179 , - 1766 , - 3133 , - 2160 , - 4047 , - 1514 , - 3921 , - 3988 , - 2755 , - 1262 , - 549 , - 1656 , - 1463 , - 1010 , - 1337 , - 3484 , - 171 , - 758 , - 2125 , - 1152 , - 3039 , - 506 , - 2913 , - 2980 , - 1747 , - 254 , - 3701 , - 648 , - 455 , - 2 , - 329 , - 2476 , - 3323 , - 3910 , - 1117 , - 144 , - 2031 , - 3658 , - 1905 , - 1972 , - 739 , - 3406 , - 2693 , - 3800 , - 3607 , - 3154 , - 3481 , - 1468 , - 2315 , - 2902 , - 109 , - 3296 , - 1023 , - 2650 , - 897 , - 964 , - 3891 , - 2398 , - 1685 , - 2792 , - 2599 , - 2146 , - 2473 , - 460 , - 1307 , - 1894 , - 3261 , - 2288 , - 15 , - 1642 , - 4049 , - 4116 , - 2883 , - 1390 , - 677 , - 1784 , - 1591 , - 1138 , - 1465 , - 3612 , - 299 , - 886 , - 2253 , - 1280 , - 3167 , - 634 , - 3041 , - 3108 , - 1875 , - 382 , - 3829 , - 776 , - 583 , - 130 , - 457 , - 2604 , - 3451 , - 4038 , - 1245 , - 272 , - 2159 , - 3786 , - 2033 , - 2100 , - 867 , - 3534 , - 2821 , - 3928 , - 3735 , - 3282 , - 3609 , - 1596 , - 2443 , - 3030 , - 237 , - 3424 , - 1151 , - 2778 , - 1025 , - 1092 , - 4019 , - 2526 , - 1813 , - 2920 , - 2727 , - 2274 , - 2601 , - 588 , - 1435 , - 2022 , - 3389 , - 2416 , - 143 , - 1770 , - 17 , - 84 , - 3011 , - 1518 , - 805 , - 1912 , - 1719 , - 1266 , - 1593 , - 3740 , - 427 , - 1014 , - 2381 , - 1408 , - 3295 , - 762 , - 3169 , - 3236 , - 2003 , - 510 , - 3957 , - 904 , - 711 , - 258 , - 585 , - 2732 , - 3579 , - 6 , - 1373 , - 400 , - 2287 , - 3914 , - 2161 , - 2228 , - 995 , - 3662 , - 2949 , - 4056 , - 3863 , - 3410 , - 3737 , - 1724 , - 2571 , - 3158 , - 365 , - 3552 , - 1279 , - 2906 , - 1153 , - 1220 , - 4147 , - 2654 , - 1941 , - 3048 , - 2855 , - 2402 , - 2729 , - 716 , - 1563 , - 2150 , - 3517 , - 2544 , - 271 , - 1898 , - 145 , - 212 , - 3139 , - 1646 , - 933 , - 2040 , - 1847 , - 1394 , - 1721 , - 3868 , - 555 , - 1142 , - 2509 , - 1536 , - 3423 , - 890 , - 3297 , - 3364 , - 2131 , - 638 , - 4085 , - 1032 , - 839 , - 386 , - 713 , - 2860 , - 3707 , - 134 , - 1501 , - 528 , - 2415 , - 4042 , - 2289 , - 2356 , - 1123 , - 3790 , - 3077 , - 24 , - 3991 , - 3538 , - 3865 , - 1852 , - 2699 , - 3286 , - 493 , - 3680 , - 1407 , - 3034 , - 1281 , - 1348 , - 115 , - 2782 , - 2069 , - 3176 , - 2983 , - 2530 , - 2857 , - 844 , - 1691 , - 2278 , - 3645 , - 2672 , - 399 , - 2026 , - 273 , - 340 , - 3267 , - 1774 , - 1061 , - 2168 , - 1975 , - 1522 , - 1849 , - 3996 , - 683 , - 1270 , - 2637 , - 1664 , - 3551 , - 1018 , - 3425 , - 3492 , - 2259 , - 766 , - 53 , - 1160 , - 967 , - 514 , - 841 , - 2988 , - 3835 , - 262 , - 1629 , - 656 , - 2543 , - 10 , - 2417 , - 2484 , - 1251 , - 3918 , - 3205 , - 152 , - 4119 , - 3666 , - 3993 , - 1980 , - 2827 , - 3414 , - 621 , - 3808 , - 1535 , - 3162 , - 1409 , - 1476 , - 243 , - 2910 , - 2197 , - 3304 , - 3111 , - 2658 , - 2985 , - 972 , - 1819 , - 2406 , - 3773 , - 2800 , - 527 , - 2154 , - 401 , - 468 , - 3395 , - 1902 , - 1189 , - 2296 , - 2103 , - 1650 , - 1977 , - 4124 , - 811 , - 1398 , - 2765 , - 1792 , - 3679 , - 1146 , - 3553 , - 3620 , - 2387 , - 894 , - 181 , - 1288 , - 1095 , - 642 , - 969 , - 3116 , - 3963 , - 390 , - 1757 , - 784 , - 2671 , - 138 , - 2545 , - 2612 , - 1379 , - 4046 , - 3333 , - 280 , - 87 , - 3794 , - 4121 , - 2108 , - 2955 , - 3542 , - 749 , - 3936 , - 1663 , - 3290 , - 1537 , - 1604 , - 371 , - 3038 , - 2325 , - 3432 , - 3239 , - 2786 , - 3113 , - 1100 , - 1947 , - 2534 , - 3901 , - 2928 , - 655 , - 2282 , - 529 , - 596 , - 3523 , - 2030 , - 1317 , - 2424 , - 2231 , - 1778 , - 2105 , - 92 , - 939 , - 1526 , - 2893 , - 1920 , - 3807 , - 1274 , - 3681 , - 3748 , - 2515 , - 1022 , - 309 , - 1416 , - 1223 , - 770 , - 1097 , - 3244 , - 4091 , - 518 , - 1885 , - 912 , - 2799 , - 266 , - 2673 , - 2740 , - 1507 , - 14 , - 3461 , - 408 , - 215 , - 3922 , - 89 , - 2236 , - 3083 , - 3670 , - 877 , - 4064 , - 1791 , - 3418 , - 1665 , - 1732 , - 499 , - 3166 , - 2453 , - 3560 , - 3367 , - 2914 , - 3241 , - 1228 , - 2075 , - 2662 , - 4029 , - 3056 , - 783 , - 2410 , - 657 , - 724 , - 3651 , - 2158 , - 1445 , - 2552 , - 2359 , - 1906 , - 2233 , - 220 , - 1067 , - 1654 , - 3021 , - 2048 , - 3935 , - 1402 , - 3809 , - 3876 , - 2643 , - 1150 , - 437 , - 1544 , - 1351 , - 898 , - 1225 , - 3372 , - 59 , - 646 , - 2013 , - 1040 , - 2927 , - 394 , - 2801 , - 2868 , - 1635 , - 142 , - 3589 , - 536 , - 343 , - 4050 , - 217 , - 2364 , - 3211 , - 3798 , - 1005 , - 32 , - 1919 , - 3546 , - 1793 , - 1860 , - 627 , - 3294 , - 2581 , - 3688 , - 3495 , - 3042 , - 3369 , - 1356 , - 2203 , - 2790 , - 4157 , - 3184 , - 911 , - 2538 , - 785 , - 852 , - 3779 , - 2286 , - 1573 , - 2680 , - 2487 , - 2034 , - 2361 , - 348 , - 1195 , - 1782 , - 3149 , - 2176 , - 4063 , - 1530 , - 3937 , - 4004 , - 2771 , - 1278 , - 565 , - 1672 , - 1479 , - 1026 , - 1353 , - 3500 , - 187 , - 774 , - 2141 , - 1168 , - 3055 , - 522 , - 2929 , - 2996 , - 1763 , - 270 , - 3717 , - 664 , - 471 , - 18 , - 345 , - 2492 , - 3339 , - 3926 , - 1133 , - 160 , - 2047 , - 3674 , - 1921 , - 1988 , - 755 , - 3422 , - 2709 , - 3816 , - 3623 , - 3170 , - 3497 , - 1484 , - 2331 , - 2918 , - 125 , - 3312 , - 1039 , - 2666 , - 913 , - 980 , - 3907 , - 2414 , - 1701 , - 2808 , - 2615 , - 2162 , - 2489 , - 476 , - 1323 , - 1910 , - 3277 , - 2304 , - 31 , - 1658 , - 4065 , - 4132 , - 2899 , - 1406 , - 693 , - 1800 , - 1607 , - 1154 , - 1481 , - 3628 , - 315 , - 902 , - 2269 , - 1296 , - 3183 , - 650 , - 3057 , - 3124 , - 1891 , - 398 , - 3845 , - 792 , - 599 , - 146 , - 473 , - 2620 , - 3467 , - 4054 , - 1261 , - 288 , - 2175 , - 3802 , - 2049 , - 2116 , - 883 , - 3550 , - 2837 , - 3944 , - 3751 , - 3298 , - 3625 , - 1612 , - 2459 , - 3046 , - 253 , - 3440 , - 1167 , - 2794 , - 1041 , - 1108 , - 4035 , - 2542 , - 1829 , - 2936 , - 2743 , - 2290 , - 2617 , - 604 , - 1451 , - 2038 , - 3405 , - 2432 , - 159 , - 1786 , - 33 , - 100 , - 3027 , - 1534 , - 821 , - 1928 , - 1735 , - 1282 , - 1609 , - 3756 , - 443 , - 1030 , - 2397 , - 1424 , - 3311 , - 778 , - 3185 , - 3252 , - 2019 , - 526 , - 3973 , - 920 , - 727 , - 274 , - 601 , - 2748 , - 3595 , - 22 , - 1389 , - 416 , - 2303 , - 3930 , - 2177 , - 2244 , - 1011 , - 3678 , - 2965 , - 4072 , - 3879 , - 3426 , - 3753 , - 1740 , - 2587 , - 3174 , - 381 , - 3568 , - 1295 , - 2922 , - 1169 , - 1236 , - 3 , - 2670 , - 1957 , - 3064 , - 2871 , - 2418 , - 2745 , - 732 , - 1579 , - 2166 , - 3533 , - 2560 , - 287 , - 1914 , - 161 , - 228 , - 3155 , - 1662 , - 949 , - 2056 , - 1863 , - 1410 , - 1737 , - 3884 , - 571 , - 1158 , - 2525 , - 1552 , - 3439 , - 906 , - 3313 , - 3380 , - 2147 , - 654 , - 4101 , - 1048 , - 855 , - 402 , - 729 , - 2876 , - 3723 , - 150 , - 1517 , - 544 , - 2431 , - 4058 , - 2305 , - 2372 , - 1139 , - 3806 , - 3093 , - 40 , - 4007 , - 3554 , - 3881 , - 1868 , - 2715 , - 3302 , - 509 , - 3696 , - 1423 , - 3050 , - 1297 , - 1364 , - 131 , - 2798 , - 2085 , - 3192 , - 2999 , - 2546 , - 2873 , - 860 , - 1707 , - 2294 , - 3661 , - 2688 , - 415 , - 2042 , - 289 , - 356 , - 3283 , - 1790 , - 1077 , - 2184 , - 1991 , - 1538 , - 1865 , - 4012 , - 699 , - 1286 , - 2653 , - 1680 , - 3567 , - 1034 , - 3441 , - 3508 , - 2275 , - 782 , - 69 , - 1176 , - 983 , - 530 , - 857 , - 3004 , - 3851 , - 278 , - 1645 , - 672 , - 2559 , - 26 , - 2433 , - 2500 , - 1267 , - 3934 , - 3221 , - 168 , - 4135 , - 3682 , - 4009 , - 1996 , - 2843 , - 3430 , - 637 , - 3824 , - 1551 , - 3178 , - 1425 , - 1492 , - 259 , - 2926 , - 2213 , - 3320 , - 3127 , - 2674 , - 3001 , - 988 , - 1835 , - 2422 , - 3789 , - 2816 , - 543 , - 2170 , - 417 , - 484 , - 3411 , - 1918 , - 1205 , - 2312 , - 2119 , - 1666 , - 1993 , - 4140 , - 827 , - 1414 , - 2781 , - 1808 , - 3695 , - 1162 , - 3569 , - 3636 , - 2403 , - 910 , - 197 , - 1304 , - 1111 , - 658 , - 985 , - 3132 , - 3979 , - 406 , - 1773 , - 800 , - 2687 , - 154 , - 2561 , - 2628 , - 1395 , - 4062 , - 3349 , - 296 , - 103 , - 3810 , - 4137 , - 2124 , - 2971 , - 3558 , - 765 , - 3952 , - 1679 , - 3306 , - 1553 , - 1620 , - 387 , - 3054 , - 2341 , - 3448 , - 3255 , - 2802 , - 3129 , - 1116 , - 1963 , - 2550 , - 3917 , - 2944 , - 671 , - 2298 , - 545 , - 612 , - 3539 , - 2046 , - 1333 , - 2440 , - 2247 , - 1794 , - 2121 , - 108 , - 955 , - 1542 , - 2909 , - 1936 , - 3823 , - 1290 , - 3697 , - 3764 , - 2531 , - 1038 , - 325 , - 1432 , - 1239 , - 786 , - 1113 , - 3260 , - 4107 , - 534 , - 1901 , - 928 , - 2815 , - 282 , - 2689 , - 2756 , - 1523 , - 30 , - 3477 , - 424 , - 231 , - 3938 , - 105 , - 2252 , - 3099 , - 3686 , - 893 , - 4080 , - 1807 , - 3434 , - 1681 , - 1748 , - 515 , - 3182 , - 2469 , - 3576 , - 3383 , - 2930 , - 3257 , - 1244 , - 2091 , - 2678 , - 4045 , - 3072 , - 799 , - 2426 , - 673 , - 740 , - 3667 , - 2174 , - 1461 , - 2568 , - 2375 , - 1922 , - 2249 , - 236 , - 1083 , - 1670 , - 3037 , - 2064 , - 3951 , - 1418 , - 3825 , - 3892 , - 2659 , - 1166 , - 453 , - 1560 , - 1367 , - 914 , - 1241 , - 3388 , - 75 , - 662 , - 2029 , - 1056 , - 2943 , - 410 , - 2817 , - 2884 , - 1651 , - 158 , - 3605 , - 552 , - 359 , - 4066 , - 233 , - 2380 , - 3227 , - 3814 , - 1021 , - 48 , - 1935 , - 3562 , - 1809 , - 1876 , - 643 , - 3310 , - 2597 , - 3704 , - 3511 , - 3058 , - 3385 , - 1372 , - 2219 , - 2806 , - 13 , - 3200 , - 927 , - 2554 , - 801 , - 868 , - 3795 , - 2302 , - 1589 , - 2696 , - 2503 , - 2050 , - 2377 , - 364 , - 1211 , - 1798 , - 3165 , - 2192 , - 4079 , - 1546 , - 3953 , - 4020 , - 2787 , - 1294 , - 581 , - 1688 , - 1495 , - 1042 , - 1369 , - 3516 , - 203 , - 790 , - 2157 , - 1184 , - 3071 , - 538 , - 2945 , - 3012 , - 1779 , - 286 , - 3733 , - 680 , - 487 , - 34 , - 361 , - 2508 , - 3355 , - 3942 , - 1149 , - 176 , - 2063 , - 3690 , - 1937 , - 2004 , - 771 , - 3438 , - 2725 , - 3832 , - 3639 , - 3186 , - 3513 , - 1500 , - 2347 , - 2934 , - 141 , - 3328 , - 1055 , - 2682 , - 929 , - 996 , - 3923 , - 2430 , - 1717 , - 2824 , - 2631 , - 2178 , - 2505 , - 492 , - 1339 , - 1926 , - 3293 , - 2320 , - 47 , - 1674 , - 4081 , - 4148 , - 2915 , - 1422 , - 709 , - 1816 , - 1623 , - 1170 , - 1497 , - 3644 , - 331 , - 918 , - 2285 , - 1312 , - 3199 , - 666 , - 3073 , - 3140 , - 1907 , - 414 , - 3861 , - 808 , - 615 , - 162 , - 489 , - 2636 , - 3483 , - 4070 , - 1277 , - 304 , - 2191 , - 3818 , - 2065 , - 2132 , - 899 , - 3566 , - 2853 , - 3960 , - 3767 , - 3314 , - 3641 , - 1628 , - 2475 , - 3062 , - 269 , - 3456 , - 1183 , - 2810 , - 1057 , - 1124 , - 4051 , - 2558 , - 1845 , - 2952 , - 2759 , - 2306 , - 2633 , - 620 , - 1467 , - 2054 , - 3421 , - 2448 , - 175 , - 1802 , - 49 , - 116 , - 3043 , - 1550 , - 837 , - 1944 , - 1751 , - 1298 , - 1625 , - 3772 , - 459 , - 1046 , - 2413 , - 1440 , - 3327 , - 794 , - 3201 , - 3268 , - 2035 , - 542 , - 3989 , - 936 , - 743 , - 290 , - 617 , - 2764 , - 3611 , - 38 , - 1405 , - 432 , - 2319 , - 3946 , - 2193 , - 2260 , - 1027 , - 3694 , - 2981 , - 4088 , - 3895 , - 3442 , - 3769 , - 1756 , - 2603 , - 3190 , - 397 , - 3584 , - 1311 , - 2938 , - 1185 , - 1252 , - 19 , - 2686 , - 1973 , - 3080 , - 2887 , - 2434 , - 2761 , - 748 , - 1595 , - 2182 , - 3549 , - 2576 , - 303 , - 1930 , - 177 , - 244 , - 3171 , - 1678 , - 965 , - 2072 , - 1879 , - 1426 , - 1753 , - 3900 , - 587 , - 1174 , - 2541 , - 1568 , - 3455 , - 922 , - 3329 , - 3396 , - 2163 , - 670 , - 4117 , - 1064 , - 871 , - 418 , - 745 , - 2892 , - 3739 , - 166 , - 1533 , - 560 , - 2447 , - 4074 , - 2321 , - 2388 , - 1155 , - 3822 , - 3109 , - 56 , - 4023 , - 3570 , - 3897 , - 1884 , - 2731 , - 3318 , - 525 , - 3712 , - 1439 , - 3066 , - 1313 , - 1380 , - 147 , - 2814 , - 2101 , - 3208 , - 3015 , - 2562 , - 2889 , - 876 , - 1723 , - 2310 , - 3677 , - 2704 , - 431 , - 2058 , - 305 , - 372 , - 3299 , - 1806 , - 1093 , - 2200 , - 2007 , - 1554 , - 1881 , - 4028 , - 715 , - 1302 , - 2669 , - 1696 , - 3583 , - 1050 , - 3457 , - 3524 , - 2291 , - 798 , - 85 , - 1192 , - 999 , - 546 , - 873 , - 3020 , - 3867 , - 294 , - 1661 , - 688 , - 2575 , - 42 , - 2449 , - 2516 , - 1283 , - 3950 , - 3237 , - 184 , - 4151 , - 3698 , - 4025 , - 2012 , - 2859 , - 3446 , - 653 , - 3840 , - 1567 , - 3194 , - 1441 , - 1508 , - 275 , - 2942 , - 2229 , - 3336 , - 3143 , - 2690 , - 3017 , - 1004 , - 1851 , - 2438 , - 3805 , - 2832 , - 559 , - 2186 , - 433 , - 500 , - 3427 , - 1934 , - 1221 , - 2328 , - 2135 , - 1682 , - 2009 , - 4156 , - 843 , - 1430 , - 2797 , - 1824 , - 3711 , - 1178 , - 3585 , - 3652 , - 2419 , - 926 , - 213 , - 1320 , - 1127 , - 674 , - 1001 , - 3148 , - 3995 , - 422 , - 1789 , - 816 , - 2703 , - 170 , - 2577 , - 2644 , - 1411 , - 4078 , - 3365 , - 312 , - 119 , - 3826 , - 4153 , - 2140 , - 2987 , - 3574 , - 781 , - 3968 , - 1695 , - 3322 , - 1569 , - 1636 , - 403 , - 3070 , - 2357 , - 3464 , - 3271 , - 2818 , - 3145 , - 1132 , - 1979 , - 2566 , - 3933 , - 2960 , - 687 , - 2314 , - 561 , - 628 , - 3555 , - 2062 , - 1349 , - 2456 , - 2263 , - 1810 , - 2137 , - 124 , - 971 , - 1558 , - 2925 , - 1952 , - 3839 , - 1306 , - 3713 , - 3780 , - 2547 , - 1054 , - 341 , - 1448 , - 1255 , - 802 , - 1129 , - 3276 , - 4123 , - 550 , - 1917 , - 944 , - 2831 , - 298 , - 2705 , - 2772 , - 1539 , - 46 , - 3493 , - 440 , - 247 , - 3954 , - 121 , - 2268 , - 3115 , - 3702 , - 909 , - 4096 , - 1823 , - 3450 , - 1697 , - 1764 , - 531 , - 3198 , - 2485 , - 3592 , - 3399 , - 2946 , - 3273 , - 1260 , - 2107 , - 2694 , - 4061 , - 3088 , - 815 , - 2442 , - 689 , - 756 , - 3683 , - 2190 , - 1477 , - 2584 , - 2391 , - 1938 , - 2265 , - 252 , - 1099 , - 1686 , - 3053 , - 2080 , - 3967 , - 1434 , - 3841 , - 3908 , - 2675 , - 1182 , - 469 , - 1576 , - 1383 , - 930 , - 1257 , - 3404 , - 91 , - 678 , - 2045 , - 1072 , - 2959 , - 426 , - 2833 , - 2900 , - 1667 , - 174 , - 3621 , - 568 , - 375 , - 4082 , - 249 , - 2396 , - 3243 , - 3830 , - 1037 , - 64 , - 1951 , - 3578 , - 1825 , - 1892 , - 659 , - 3326 , - 2613 , - 3720 , - 3527 , - 3074 , - 3401 , - 1388 , - 2235 , - 2822 , - 29 , - 3216 , - 943 , - 2570 , - 817 , - 884 , - 3811 , - 2318 , - 1605 , - 2712 , - 2519 , - 2066 , - 2393 , - 380 , - 1227 , - 1814 , - 3181 , - 2208 , - 4095 , - 1562 , - 3969 , - 4036 , - 2803 , - 1310 , - 597 , - 1704 , - 1511 , - 1058 , - 1385 , - 3532 , - 219 , - 806 , - 2173 , - 1200 , - 3087 , - 554 , - 2961 , - 3028 , - 1795 , - 302 , - 3749 , - 696 , - 503 , - 50 , - 377 , - 2524 , - 3371 , - 3958 , - 1165 , - 192 , - 2079 , - 3706 , - 1953 , - 2020 , - 787 , - 3454 , - 2741 , - 3848 , - 3655 , - 3202 , - 3529 , - 1516 , - 2363 , - 2950 , - 157 , - 3344 , - 1071 , - 2698 , - 945 , - 1012 , - 3939 , - 2446 , - 1733 , - 2840 , - 2647 , - 2194 , - 2521 , - 508 , - 1355 , - 1942 , - 3309 , - 2336 , - 63 , - 1690 , - 4097 , - 4 , - 2931 , - 1438 , - 725 , - 1832 , - 1639 , - 1186 , - 1513 , - 3660 , - 347 , - 934 , - 2301 , - 1328 , - 3215 , - 682 , - 3089 , - 3156 , - 1923 , - 430 , - 3877 , - 824 , - 631 , - 178 , - 505 , - 2652 , - 3499 , - 4086 , - 1293 , - 320 , - 2207 , - 3834 , - 2081 , - 2148 , - 915 , - 3582 , - 2869 , - 3976 , - 3783 , - 3330 , - 3657 , - 1644 , - 2491 , - 3078 , - 285 , - 3472 , - 1199 , - 2826 , - 1073 , - 1140 , - 4067 , - 2574 , - 1861 , - 2968 , - 2775 , - 2322 , - 2649 , - 636 , - 1483 , - 2070 , - 3437 , - 2464 , - 191 , - 1818 , - 65 , - 132 , - 3059 , - 1566 , - 853 , - 1960 , - 1767 , - 1314 , - 1641 , - 3788 , - 475 , - 1062 , - 2429 , - 1456 , - 3343 , - 810 , - 3217 , - 3284 , - 2051 , - 558 , - 4005 , - 952 , - 759 , - 306 , - 633 , - 2780 , - 3627 , - 54 , - 1421 , - 448 , - 2335 , - 3962 , - 2209 , - 2276 , - 1043 , - 3710 , - 2997 , - 4104 , - 3911 , - 3458 , - 3785 , - 1772 , - 2619 , - 3206 , - 413 , - 3600 , - 1327 , - 2954 , - 1201 , - 1268 , - 35 , - 2702 , - 1989 , - 3096 , - 2903 , - 2450 , - 2777 , - 764 , - 1611 , - 2198 , - 3565 , - 2592 , - 319 , - 1946 , - 193 , - 260 , - 3187 , - 1694 , - 981 , - 2088 , - 1895 , - 1442 , - 1769 , - 3916 , - 603 , - 1190 , - 2557 , - 1584 , - 3471 , - 938 , - 3345 , - 3412 , - 2179 , - 686 , - 4133 , - 1080 , - 887 , - 434 , - 761 , - 2908 , - 3755 , - 182 , - 1549 , - 576 , - 2463 , - 4090 , - 2337 , - 2404 , - 1171 , - 3838 , - 3125 , - 72 , - 4039 , - 3586 , - 3913 , - 1900 , - 2747 , - 3334 , - 541 , - 3728 , - 1455 , - 3082 , - 1329 , - 1396 , - 163 , - 2830 , - 2117 , - 3224 , - 3031 , - 2578 , - 2905 , - 892 , - 1739 , - 2326 , - 3693 , - 2720 , - 447 , - 2074 , - 321 , - 388 , - 3315 , - 1822 , - 1109 , - 2216 , - 2023 , - 1570 , - 1897 , - 4044 , - 731 , - 1318 , - 2685 , - 1712 , - 3599 , - 1066 , - 3473 , - 3540 , - 2307 , - 814 , - 101 , - 1208 , - 1015 , - 562 , - 889 , - 3036 , - 3883 , - 310 , - 1677 , - 704 , - 2591 , - 58 , - 2465 , - 2532 , - 1299 , - 3966 , - 3253 , - 200 , - 7 , - 3714 , - 4041 , - 2028 , - 2875 , - 3462 , - 669 , - 3856 , - 1583 , - 3210 , - 1457 , - 1524 , - 291 , - 2958 , - 2245 , - 3352 , - 3159 , - 2706 , - 3033 , - 1020 , - 1867 , - 2454 , - 3821 , - 2848 , - 575 , - 2202 , - 449 , - 516 , - 3443 , - 1950 , - 1237 , - 2344 , - 2151 , - 1698 , - 2025 , - 12 , - 859 , - 1446 , - 2813 , - 1840 , - 3727 , - 1194 , - 3601 , - 3668 , - 2435 , - 942 , - 229 , - 1336 , - 1143 , - 690 , - 1017 , - 3164 , - 4011 , - 438 , - 1805 , - 832 , - 2719 , - 186 , - 2593 , - 2660 , - 1427 , - 4094 , - 3381 , - 328 , - 135 , - 3842 , - 9 , - 2156 , - 3003 , - 3590 , - 797 , - 3984 , - 1711 , - 3338 , - 1585 , - 1652 , - 419 , - 3086 , - 2373 , - 3480 , - 3287 , - 2834 , - 3161 , - 1148 , - 1995 , - 2582 , - 3949 , - 2976 , - 703 , - 2330 , - 577 , - 644 , - 3571 , - 2078 , - 1365 , - 2472 , - 2279 , - 1826 , - 2153 , - 140 , - 987 , - 1574 , - 2941 , - 1968 , - 3855 , - 1322 , - 3729 , - 3796 , - 2563 , - 1070 , - 357 , - 1464 , - 1271 , - 818 , - 1145 , - 3292 , - 4139 , - 566 , - 1933 , - 960 , - 2847 , - 314 , - 2721 , - 2788 , - 1555 , - 62 , - 3509 , - 456 , - 263 , - 3970 , - 137 , - 2284 , - 3131 , - 3718 , - 925 , - 4112 , - 1839 , - 3466 , - 1713 , - 1780 , - 547 , - 3214 , - 2501 , - 3608 , - 3415 , - 2962 , - 3289 , - 1276 , - 2123 , - 2710 , - 4077 , - 3104 , - 831 , - 2458 , - 705 , - 772 , - 3699 , - 2206 , - 1493 , - 2600 , - 2407 , - 1954 , - 2281 , - 268 , - 1115 , - 1702 , - 3069 , - 2096 , - 3983 , - 1450 , - 3857 , - 3924 , - 2691 , - 1198 , - 485 , - 1592 , - 1399 , - 946 , - 1273 , - 3420 , - 107 , - 694 , - 2061 , - 1088 , - 2975 , - 442 , - 2849 , - 2916 , - 1683 , - 190 , - 3637 , - 584 , - 391 , - 4098 , - 265 , - 2412 , - 3259 , - 3846 , - 1053 , - 80 , - 1967 , - 3594 , - 1841 , - 1908 , - 675 , - 3342 , - 2629 , - 3736 , - 3543 , - 3090 , - 3417 , - 1404 , - 2251 , - 2838 , - 45 , - 3232 , - 959 , - 2586 , - 833 , - 900 , - 3827 , - 2334 , - 1621 , - 2728 , - 2535 , - 2082 , - 2409 , - 396 , - 1243 , - 1830 , - 3197 , - 2224 , - 4111 , - 1578 , - 3985 , - 4052 , - 2819 , - 1326 , - 613 , - 1720 , - 1527 , - 1074 , - 1401 , - 3548 , - 235 , - 822 , - 2189 , - 1216 , - 3103 , - 570 , - 2977 , - 3044 , - 1811 , - 318 , - 3765 , - 712 , - 519 , - 66 , - 393 , - 2540 , - 3387 , - 3974 , - 1181 , - 208 , - 2095 , - 3722 , - 1969 , - 2036 , - 803 , - 3470 , - 2757 , - 3864 , - 3671 , - 3218 , - 3545 , - 1532 , - 2379 , - 2966 , - 173 , - 3360 , - 1087 , - 2714 , - 961 , - 1028 , - 3955 , - 2462 , - 1749 , - 2856 , - 2663 , - 2210 , - 2537 , - 524 , - 1371 , - 1958 , - 3325 , - 2352 , - 79 , - 1706 , - 4113 , - 20 , - 2947 , - 1454 , - 741 , - 1848 , - 1655 , - 1202 , - 1529 , - 3676 , - 363 , - 950 , - 2317 , - 1344 , - 3231 , - 698 , - 3105 , - 3172 , - 1939 , - 446 , - 3893 , - 840 , - 647 , - 194 , - 521 , - 2668 , - 3515 , - 4102 , - 1309 , - 336 , - 2223 , - 3850 , - 2097 , - 2164 , - 931 , - 3598 , - 2885 , - 3992 , - 3799 , - 3346 , - 3673 , - 1660 , - 2507 , - 3094 , - 301 , - 3488 , - 1215 , - 2842 , - 1089 , - 1156 , - 4083 , - 2590 , - 1877 , - 2984 , - 2791 , - 2338 , - 2665 , - 652 , - 1499 , - 2086 , - 3453 , - 2480 , - 207 , - 1834 , - 81 , - 148 , - 3075 , - 1582 , - 869 , - 1976 , - 1783 , - 1330 , - 1657 , - 3804 , - 491 , - 1078 , - 2445 , - 1472 , - 3359 , - 826 , - 3233 , - 3300 , - 2067 , - 574 , - 4021 , - 968 , - 775 , - 322 , - 649 , - 2796 , - 3643 , - 70 , - 1437 , - 464 , - 2351 , - 3978 , - 2225 , - 2292 , - 1059 , - 3726 , - 3013 , - 4120 , - 3927 , - 3474 , - 3801 , - 1788 , - 2635 , - 3222 , - 429 , - 3616 , - 1343 , - 2970 , - 1217 , - 1284 , - 51 , - 2718 , - 2005 , - 3112 , - 2919 , - 2466 , - 2793 , - 780 , - 1627 , - 2214 , - 3581 , - 2608 , - 335 , - 1962 , - 209 , - 276 , - 3203 , - 1710 , - 997 , - 2104 , - 1911 , - 1458 , - 1785 , - 3932 , - 619 , - 1206 , - 2573 , - 1600 , - 3487 , - 954 , - 3361 , - 3428 , - 2195 , - 702 , - 4149 , - 1096 , - 903 , - 450 , - 777 , - 2924 , - 3771 , - 198 , - 1565 , - 592 , - 2479 , - 4106 , - 2353 , - 2420 , - 1187 , - 3854 , - 3141 , - 88 , - 4055 , - 3602 , - 3929 , - 1916 , - 2763 , - 3350 , - 557 , - 3744 , - 1471 , - 3098 , - 1345 , - 1412 , - 179 , - 2846 , - 2133 , - 3240 , - 3047 , - 2594 , - 2921 , - 908 , - 1755 , - 2342 , - 3709 , - 2736 , - 463 , - 2090 , - 337 , - 404 , - 3331 , - 1838 , - 1125 , - 2232 , - 2039 , - 1586 , - 1913 , - 4060 , - 747 , - 1334 , - 2701 , - 1728 , - 3615 , - 1082 , - 3489 , - 3556 , - 2323 , - 830 , - 117 , - 1224 , - 1031 , - 578 , - 905 , - 3052 , - 3899 , - 326 , - 1693 , - 720 , - 2607 , - 74 , - 2481 , - 2548 , - 1315 , - 3982 , - 3269 , - 216 , - 23 , - 3730 , - 4057 , - 2044 , - 2891 , - 3478 , - 685 , - 3872 , - 1599 , - 3226 , - 1473 , - 1540 , - 307 , - 2974 , - 2261 , - 3368 , - 3175 , - 2722 , - 3049 , - 1036 , - 1883 , - 2470 , - 3837 , - 2864 , - 591 , - 2218 , - 465 , - 532 , - 3459 , - 1966 , - 1253 , - 2360 , - 2167 , - 1714 , - 2041 , - 28 , - 875 , - 1462 , - 2829 , - 1856 , - 3743 , - 1210 , - 3617 , - 3684 , - 2451 , - 958 , - 245 , - 1352 , - 1159 , - 706 , - 1033 , - 3180 , - 4027 , - 454 , - 1821 , - 848 , - 2735 , - 202 , - 2609 , - 2676 , - 1443 , - 4110 , - 3397 , - 344 , - 151 , - 3858 , - 25 , - 2172 , - 3019 , - 3606 , - 813 , - 4000 , - 1727 , - 3354 , - 1601 , - 1668 , - 435 , - 3102 , - 2389 , - 3496 , - 3303 , - 2850 , - 3177 , - 1164 , - 2011 , - 2598 , - 3965 , - 2992 , - 719 , - 2346 , - 593 , - 660 , - 3587 , - 2094 , - 1381 , - 2488 , - 2295 , - 1842 , - 2169 , - 156 , - 1003 , - 1590 , - 2957 , - 1984 , - 3871 , - 1338 , - 3745 , - 3812 , - 2579 , - 1086 , - 373 , - 1480 , - 1287 , - 834 , - 1161 , - 3308 , - 4155 , - 582 , - 1949 , - 976 , - 2863 , - 330 , - 2737 , - 2804 , - 1571 , - 78 , - 3525 , - 472 , - 279 , - 3986 , - 153 , - 2300 , - 3147 , - 3734 , - 941 , - 4128 , - 1855 , - 3482 , - 1729 , - 1796 , - 563 , - 3230 , - 2517 , - 3624 , - 3431 , - 2978 , - 3305 , - 1292 , - 2139 , - 2726 , - 4093 , - 3120 , - 847 , - 2474 , - 721 , - 788 , - 3715 , - 2222 , - 1509 , - 2616 , - 2423 , - 1970 , - 2297 , - 284 , - 1131 , - 1718 , - 3085 , - 2112 , - 3999 , - 1466 , - 3873 , - 3940 , - 2707 , - 1214 , - 501 , - 1608 , - 1415 , - 962 , - 1289 , - 3436 , - 123 , - 710 , - 2077 , - 1104 , - 2991 , - 458 , - 2865 , - 2932 , - 1699 , - 206 , - 3653 , - 600 , - 407 , - 4114 , - 281 , - 2428 , - 3275 , - 3862 , - 1069 , - 96 , - 1983 , - 3610 , - 1857 , - 1924 , - 691 , - 3358 , - 2645 , - 3752 , - 3559 , - 3106 , - 3433 , - 1420 , - 2267 , - 2854 , - 61 , - 3248 , - 975 , - 2602 , - 849 , - 916 , - 3843 , - 2350 , - 1637 , - 2744 , - 2551 , - 2098 , - 2425 , - 412 , - 1259 , - 1846 , - 3213 , - 2240 , - 4127 , - 1594 , - 4001 , - 4068 , - 2835 , - 1342 , - 629 , - 1736 , - 1543 , - 1090 , - 1417 , - 3564 , - 251 , - 838 , - 2205 , - 1232 , - 3119 , - 586 , - 2993 , - 3060 , - 1827 , - 334 , - 3781 , - 728 , - 535 , - 82 , - 409 , - 2556 , - 3403 , - 3990 , - 1197 , - 224 , - 2111 , - 3738 , - 1985 , - 2052 , - 819 , - 3486 , - 2773 , - 3880 , - 3687 , - 3234 , - 3561 , - 1548 , - 2395 , - 2982 , - 189 , - 3376 , - 1103 , - 2730 , - 977 , - 1044 , - 3971 , - 2478 , - 1765 , - 2872 , - 2679 , - 2226 , - 2553 , - 540 , - 1387 , - 1974 , - 3341 , - 2368 , - 95 , - 1722 , - 4129 , - 36 , - 2963 , - 1470 , - 757 , - 1864 , - 1671 , - 1218 , - 1545 , - 3692 , - 379 , - 966 , - 2333 , - 1360 , - 3247 , - 714 , - 3121 , - 3188 , - 1955 , - 462 , - 3909 , - 856 , - 663 , - 210 , - 537 , - 2684 , - 3531 , - 4118 , - 1325 , - 352 , - 2239 , - 3866 , - 2113 , - 2180 , - 947 , - 3614 , - 2901 , - 4008 , - 3815 , - 3362 , - 3689 , - 1676 , - 2523 , - 3110 , - 317 , - 3504 , - 1231 , - 2858 , - 1105 , - 1172 , - 4099 , - 2606 , - 1893 , - 3000 , - 2807 , - 2354 , - 2681 , - 668 , - 1515 , - 2102 , - 3469 , - 2496 , - 223 , - 1850 , - 97 , - 164 , - 3091 , - 1598 , - 885 , - 1992 , - 1799 , - 1346 , - 1673 , - 3820 , - 507 , - 1094 , - 2461 , - 1488 , - 3375 , - 842 , - 3249 , - 3316 , - 2083 , - 590 , - 4037 , - 984 , - 791 , - 338 , - 665 , - 2812 , - 3659 , - 86 , - 1453 , - 480 , - 2367 , - 3994 , - 2241 , - 2308 , - 1075 , - 3742 , - 3029 , - 4136 , - 3943 , - 3490 , - 3817 , - 1804 , - 2651 , - 3238 , - 445 , - 3632 , - 1359 , - 2986 , - 1233 , - 1300 , - 67 , - 2734 , - 2021 , - 3128 , - 2935 , - 2482 , - 2809 , - 796 , - 1643 , - 2230 , - 3597 , - 2624 , - 351 , - 1978 , - 225 , - 292 , - 3219 , - 1726 , - 1013 , - 2120 , - 1927 , - 1474 , - 1801 , - 3948 , - 635 , - 1222 , - 2589 , - 1616 , - 3503 , - 970 , - 3377 , - 3444 , - 2211 , - 718 , - 5 , - 1112 , - 919 , - 466 , - 793 , - 2940 , - 3787 , - 214 , - 1581 , - 608 , - 2495 , - 4122 , - 2369 , - 2436 , - 1203 , - 3870 , - 3157 , - 104 , - 4071 , - 3618 , - 3945 , - 1932 , - 2779 , - 3366 , - 573 , - 3760 , - 1487 , - 3114 , - 1361 , - 1428 , - 195 , - 2862 , - 2149 , - 3256 , - 3063 , - 2610 , - 2937 , - 924 , - 1771 , - 2358 , - 3725 , - 2752 , - 479 , - 2106 , - 353 , - 420 , - 3347 , - 1854 , - 1141 , - 2248 , - 2055 , - 1602 , - 1929 , - 4076 , - 763 , - 1350 , - 2717 , - 1744 , - 3631 , - 1098 , - 3505 , - 3572 , - 2339 , - 846 , - 133 , - 1240 , - 1047 , - 594 , - 921 , - 3068 , - 3915 , - 342 , - 1709 , - 736 , - 2623 , - 90 , - 2497 , - 2564 , - 1331 , - 3998 , - 3285 , - 232 , - 39 , - 3746 , - 4073 , - 2060 , - 2907 , - 3494 , - 701 , - 3888 , - 1615 , - 3242 , - 1489 , - 1556 , - 323 , - 2990 , - 2277 , - 3384 , - 3191 , - 2738 , - 3065 , - 1052 , - 1899 , - 2486 , - 3853 , - 2880 , - 607 , - 2234 , - 481 , - 548 , - 3475 , - 1982 , - 1269 , - 2376 , - 2183 , - 1730 , - 2057 , - 44 , - 891 , - 1478 , - 2845 , - 1872 , - 3759 , - 1226 , - 3633 , - 3700 , - 2467 , - 974 , - 261 , - 1368 , - 1175 , - 722 , - 1049 , - 3196 , - 4043 , - 470 , - 1837 , - 864 , - 2751 , - 218 , - 2625 , - 2692 , - 1459 , - 4126 , - 3413 , - 360 , - 167 , - 3874 , - 41 , - 2188 , - 3035 , - 3622 , - 829 , - 4016 , - 1743 , - 3370 , - 1617 , - 1684 , - 451 , - 3118 , - 2405 , - 3512 , - 3319 , - 2866 , - 3193 , - 1180 , - 2027 , - 2614 , - 3981 , - 3008 , - 735 , - 2362 , - 609 , - 676 , - 3603 , - 2110 , - 1397 , - 2504 , - 2311 , - 1858 , - 2185 , - 172 , - 1019 , - 1606 , - 2973 , - 2000 , - 3887 , - 1354 , - 3761 , - 3828 , - 2595 , - 1102 , - 389 , - 1496 , - 1303 , - 850 , - 1177 , - 3324 , - 11 , - 598 , - 1965 , - 992 , - 2879 , - 346 , - 2753 , - 2820 , - 1587 , - 94 , - 3541 , - 488 , - 295 , - 4002 , - 169 , - 2316 , - 3163 , - 3750 , - 957 , - 4144 , - 1871 , - 3498 , - 1745 , - 1812 , - 579 , - 3246 , - 2533 , - 3640 , - 3447 , - 2994 , - 3321 , - 1308 , - 2155 , - 2742 , - 4109 , - 3136 , - 863 , - 2490 , - 737 , - 804 , - 3731 , - 2238 , - 1525 , - 2632 , - 2439 , - 1986 , - 2313 , - 300 , - 1147 , - 1734 , - 3101 , - 2128 , - 4015 , - 1482 , - 3889 , - 3956 , - 2723 , - 1230 , - 517 , - 1624 , - 1431 , - 978 , - 1305 , - 3452 , - 139 , - 726 , - 2093 , - 1120 , - 3007 , - 474 , - 2881 , - 2948 , - 1715 , - 222 , - 3669 , - 616 , - 423 , - 4130 , - 297 , - 2444 , - 3291 , - 3878 , - 1085 , - 112 , - 1999 , - 3626 , - 1873 , - 1940 , - 707 , - 3374 , - 2661 , - 3768 , - 3575 , - 3122 , - 3449 , - 1436 , - 2283 , - 2870 , - 77 , - 3264 , - 991 , - 2618 , - 865 , - 932 , - 3859 , - 2366 , - 1653 , - 2760 , - 2567 , - 2114 , - 2441 , - 428 , - 1275 , - 1862 , - 3229 , - 2256 , - 4143 , - 1610 , - 4017 , - 4084 , - 2851 , - 1358 , - 645 , - 1752 , - 1559 , - 1106 , - 1433 , - 3580 , - 267 , - 854 , - 2221 , - 1248 , - 3135 , - 602 , - 3009 , - 3076 , - 1843 , - 350 , - 3797 , - 744 , - 551 , - 98 , - 425 , - 2572 , - 3419 , - 4006 , - 1213 , - 240 , - 2127 , - 3754 , - 2001 , - 2068 , - 835 , - 3502 , - 2789 , - 3896 , - 3703 , - 3250 , - 3577 , - 1564 , - 2411 , - 2998 , - 205 , - 3392 , - 1119 , - 2746 , - 993 , - 1060 , - 3987 , - 2494 , - 1781 , - 2888 , - 2695 , - 2242 , - 2569 , - 556 , - 1403 , - 1990 , - 3357 , - 2384 , - 111 , - 1738 , - 4145 , - 52 , - 2979 , - 1486 , - 773 , - 1880 , - 1687 , - 1234 , - 1561 , - 3708 , - 395 , - 982 , - 2349 , - 1376 , - 3263 , - 730 , - 3137 , - 3204 , - 1971 , - 478 , - 3925 , - 872 , - 679 , - 226 , - 553 , - 2700 , - 3547 , - 4134 , - 1341 , - 368 , - 2255 , - 3882 , - 2129 , - 2196 , - 963 , - 3630 , - 2917 , - 4024 , - 3831 , - 3378 , - 3705 , - 1692 , - 2539 , - 3126 , - 333 , - 3520 , - 1247 , - 2874 , - 1121 , - 1188 , - 4115 , - 2622 , - 1909 , - 3016 , - 2823 , - 2370 , - 2697 , - 684 , - 1531 , - 2118 , - 3485 , - 2512 , - 239 , - 1866 , - 113 , - 180 , - 3107 , - 1614 , - 901 , - 2008 , - 1815 , - 1362 , - 1689 , - 3836 , - 523 , - 1110 , - 2477 , - 1504 , - 3391 , - 858 , - 3265 , - 3332 , - 2099 , - 606 , - 4053 , - 1000 , - 807 , - 354 , - 681 , - 2828 , - 3675 , - 102 , - 1469 , - 496 , - 2383 , - 4010 , - 2257 , - 2324 , - 1091 , - 3758 , - 3045 , - 4152 , - 3959 , - 3506 , - 3833 , - 1820 , - 2667 , - 3254 , - 461 , - 3648 , - 1375 , - 3002 , - 1249 , - 1316 , - 83 , - 2750 , - 2037 , - 3144 , - 2951 , - 2498 , - 2825 , - 812 , - 1659 , - 2246 , - 3613 , - 2640 , - 367 , - 1994 , - 241 , - 308 , - 3235 , - 1742 , - 1029 , - 2136 , - 1943 , - 1490 , - 1817 , - 3964 , - 651 , - 1238 , - 2605 , - 1632 , - 3519 , - 986 , - 3393 , - 3460 , - 2227 , - 734 , - 21 , - 1128 , - 935 , - 482 , - 809 , - 2956 , - 3803 , - 230 , - 1597 , - 624 , - 2511 , - 4138 , - 2385 , - 2452 , - 1219 , - 3886 , - 3173 , - 120 , - 4087 , - 3634 , - 3961 , - 1948 , - 2795 , - 3382 , - 589 , - 3776 , - 1503 , - 3130 , - 1377 , - 1444 , - 211 , - 2878 , - 2165 , - 3272 , - 3079 , - 2626 , - 2953 , - 940 , - 1787 , - 2374 , - 3741 , - 2768 , - 495 , - 2122 , - 369 , - 436 , - 3363 , - 1870 , - 1157 , - 2264 , - 2071 , - 1618 , - 1945 , - 4092 , - 779 , - 1366 , - 2733 , - 1760 , - 3647 , - 1114 , - 3521 , - 3588 , - 2355 , - 862 , - 149 , - 1256 , - 1063 , - 610 , - 937 , - 3084 , - 3931 , - 358 , - 1725 , - 752 , - 2639 , - 106 , - 2513 , - 2580 , - 1347 , - 4014 , - 3301 , - 248 , - 55 , - 3762 , - 4089 , - 2076 , - 2923 , - 3510 , - 717 , - 3904 , - 1631 , - 3258 , - 1505 , - 1572 , - 339 , - 3006 , - 2293 , - 3400 , - 3207 , - 2754 , - 3081 , - 1068 , - 1915 , - 2502 , - 3869 , - 2896 , - 623 , - 2250 , - 497 , - 564 , - 3491 , - 1998 , - 1285 , - 2392 , - 2199 , - 1746 , - 2073 , - 60 , - 907 , - 1494 , - 2861 , - 1888 , - 3775 , - 1242 , - 3649 , - 3716 , - 2483 , - 990 , - 277 , - 1384 , - 1191 , - 738 , - 1065 , - 3212 , - 4059 , - 486 , - 1853 , - 880 , - 2767 , - 234 , - 2641 , - 2708 , - 1475 , - 4142 , - 3429 , - 376 , - 183 , - 3890 , - 57 , - 2204 , - 3051 , - 3638 , - 845 , - 4032 , - 1759 , - 3386 , - 1633 , - 1700 , - 467 , - 3134 , - 2421 , - 3528 , - 3335 , - 2882 , - 3209 , - 1196 , - 2043 , - 2630 , - 3997 , - 3024 , - 751 , - 2378 , - 625 , - 692 , - 3619 , - 2126 , - 1413 , - 2520 , - 2327 , - 1874 , - 2201 , - 188 , - 1035 , - 1622 , - 2989 , - 2016 , - 3903 , - 1370 , - 3777 , - 3844 , - 2611 , - 1118 , - 405 , - 1512 , - 1319 , - 866 , - 1193 , - 3340 , - 27 , - 614 , - 1981 , - 1008 , - 2895 , - 362 , - 2769 , - 2836 , - 1603 , - 110 , - 3557 , - 504 , - 311 , - 4018 , - 185 , - 2332 , - 3179 , - 3766 , - 973 , - 0 , - 43 , - 2726 , - 3825 , - 3340 , - 1271 , - 1842 , - 829 , - 2456 , - 2499 , - 958 , - 2057 , - 1572 , - 3727 , - 74 , - 3285 , - 688 , - 731 , - 3414 , - 289 , - 4028 , - 1959 , - 2530 , - 1517 , - 3144 , - 3187 , - 1646 , - 2745 , - 2260 , - 191 , - 762 , - 3973 , - 1376 , - 1419 , - 4102 , - 977 , - 492 , - 2647 , - 3218 , - 2205 , - 3832 , - 3875 , - 2334 , - 3433 , - 2948 , - 879 , - 1450 , - 437 , - 2064 , - 2107 , - 566 , - 1665 , - 1180 , - 3335 , - 3906 , - 2893 , - 296 , - 339 , - 3022 , - 4121 , - 3636 , - 1567 , - 2138 , - 1125 , - 2752 , - 2795 , - 1254 , - 2353 , - 1868 , - 4023 , - 370 , - 3581 , - 984 , - 1027 , - 3710 , - 585 , - 100 , - 2255 , - 2826 , - 1813 , - 3440 , - 3483 , - 1942 , - 3041 , - 2556 , - 487 , - 1058 , - 45 , - 1672 , - 1715 , - 174 , - 1273 , - 788 , - 2943 , - 3514 , - 2501 , - 4128 , - 4171 , - 2630 , - 3729 , - 3244 , - 1175 , - 1746 , - 733 , - 2360 , - 2403 , - 862 , - 1961 , - 1476 , - 3631 , - 4202 , - 3189 , - 592 , - 635 , - 3318 , - 193 , - 3932 , - 1863 , - 2434 , - 1421 , - 3048 , - 3091 , - 1550 , - 2649 , - 2164 , - 95 , - 666 , - 3877 , - 1280 , - 1323 , - 4006 , - 881 , - 396 , - 2551 , - 3122 , - 2109 , - 3736 , - 3779 , - 2238 , - 3337 , - 2852 , - 783 , - 1354 , - 341 , - 1968 , - 2011 , - 470 , - 1569 , - 1084 , - 3239 , - 3810 , - 2797 , - 200 , - 243 , - 2926 , - 4025 , - 3540 , - 1471 , - 2042 , - 1029 , - 2656 , - 2699 , - 1158 , - 2257 , - 1772 , - 3927 , - 274 , - 3485 , - 888 , - 931 , - 3614 , - 489 , - 4 , - 2159 , - 2730 , - 1717 , - 3344 , - 3387 , - 1846 , - 2945 , - 2460 , - 391 , - 962 , - 4173 , - 1576 , - 1619 , - 78 , - 1177 , - 692 , - 2847 , - 3418 , - 2405 , - 4032 , - 4075 , - 2534 , - 3633 , - 3148 , - 1079 , - 1650 , - 637 , - 2264 , - 2307 , - 766 , - 1865 , - 1380 , - 3535 , - 4106 , - 3093 , - 496 , - 539 , - 3222 , - 97 , - 3836 , - 1767 , - 2338 , - 1325 , - 2952 , - 2995 , - 1454 , - 2553 , - 2068 , - 4223 , - 570 , - 3781 , - 1184 , - 1227 , - 3910 , - 785 , - 300 , - 2455 , - 3026 , - 2013 , - 3640 , - 3683 , - 2142 , - 3241 , - 2756 , - 687 , - 1258 , - 245 , - 1872 , - 1915 , - 374 , - 1473 , - 988 , - 3143 , - 3714 , - 2701 , - 104 , - 147 , - 2830 , - 3929 , - 3444 , - 1375 , - 1946 , - 933 , - 2560 , - 2603 , - 1062 , - 2161 , - 1676 , - 3831 , - 178 , - 3389 , - 792 , - 835 , - 3518 , - 393 , - 4132 , - 2063 , - 2634 , - 1621 , - 3248 , - 3291 , - 1750 , - 2849 , - 2364 , - 295 , - 866 , - 4077 , - 1480 , - 1523 , - 4206 , - 1081 , - 596 , - 2751 , - 3322 , - 2309 , - 3936 , - 3979 , - 2438 , - 3537 , - 3052 , - 983 , - 1554 , - 541 , - 2168 , - 2211 , - 670 , - 1769 , - 1284 , - 3439 , - 4010 , - 2997 , - 400 , - 443 , - 3126 , - 1 , - 3740 , - 1671 , - 2242 , - 1229 , - 2856 , - 2899 , - 1358 , - 2457 , - 1972 , - 4127 , - 474 , - 3685 , - 1088 , - 1131 , - 3814 , - 689 , - 204 , - 2359 , - 2930 , - 1917 , - 3544 , - 3587 , - 2046 , - 3145 , - 2660 , - 591 , - 1162 , - 149 , - 1776 , - 1819 , - 278 , - 1377 , - 892 , - 3047 , - 3618 , - 2605 , - 8 , - 51 , - 2734 , - 3833 , - 3348 , - 1279 , - 1850 , - 837 , - 2464 , - 2507 , - 966 , - 2065 , - 1580 , - 3735 , - 82 , - 3293 , - 696 , - 739 , - 3422 , - 297 , - 4036 , - 1967 , - 2538 , - 1525 , - 3152 , - 3195 , - 1654 , - 2753 , - 2268 , - 199 , - 770 , - 3981 , - 1384 , - 1427 , - 4110 , - 985 , - 500 , - 2655 , - 3226 , - 2213 , - 3840 , - 3883 , - 2342 , - 3441 , - 2956 , - 887 , - 1458 , - 445 , - 2072 , - 2115 , - 574 , - 1673 , - 1188 , - 3343 , - 3914 , - 2901 , - 304 , - 347 , - 3030 , - 4129 , - 3644 , - 1575 , - 2146 , - 1133 , - 2760 , - 2803 , - 1262 , - 2361 , - 1876 , - 4031 , - 378 , - 3589 , - 992 , - 1035 , - 3718 , - 593 , - 108 , - 2263 , - 2834 , - 1821 , - 3448 , - 3491 , - 1950 , - 3049 , - 2564 , - 495 , - 1066 , - 53 , - 1680 , - 1723 , - 182 , - 1281 , - 796 , - 2951 , - 3522 , - 2509 , - 4136 , - 4179 , - 2638 , - 3737 , - 3252 , - 1183 , - 1754 , - 741 , - 2368 , - 2411 , - 870 , - 1969 , - 1484 , - 3639 , - 4210 , - 3197 , - 600 , - 643 , - 3326 , - 201 , - 3940 , - 1871 , - 2442 , - 1429 , - 3056 , - 3099 , - 1558 , - 2657 , - 2172 , - 103 , - 674 , - 3885 , - 1288 , - 1331 , - 4014 , - 889 , - 404 , - 2559 , - 3130 , - 2117 , - 3744 , - 3787 , - 2246 , - 3345 , - 2860 , - 791 , - 1362 , - 349 , - 1976 , - 2019 , - 478 , - 1577 , - 1092 , - 3247 , - 3818 , - 2805 , - 208 , - 251 , - 2934 , - 4033 , - 3548 , - 1479 , - 2050 , - 1037 , - 2664 , - 2707 , - 1166 , - 2265 , - 1780 , - 3935 , - 282 , - 3493 , - 896 , - 939 , - 3622 , - 497 , - 12 , - 2167 , - 2738 , - 1725 , - 3352 , - 3395 , - 1854 , - 2953 , - 2468 , - 399 , - 970 , - 4181 , - 1584 , - 1627 , - 86 , - 1185 , - 700 , - 2855 , - 3426 , - 2413 , - 4040 , - 4083 , - 2542 , - 3641 , - 3156 , - 1087 , - 1658 , - 645 , - 2272 , - 2315 , - 774 , - 1873 , - 1388 , - 3543 , - 4114 , - 3101 , - 504 , - 547 , - 3230 , - 105 , - 3844 , - 1775 , - 2346 , - 1333 , - 2960 , - 3003 , - 1462 , - 2561 , - 2076 , - 7 , - 578 , - 3789 , - 1192 , - 1235 , - 3918 , - 793 , - 308 , - 2463 , - 3034 , - 2021 , - 3648 , - 3691 , - 2150 , - 3249 , - 2764 , - 695 , - 1266 , - 253 , - 1880 , - 1923 , - 382 , - 1481 , - 996 , - 3151 , - 3722 , - 2709 , - 112 , - 155 , - 2838 , - 3937 , - 3452 , - 1383 , - 1954 , - 941 , - 2568 , - 2611 , - 1070 , - 2169 , - 1684 , - 3839 , - 186 , - 3397 , - 800 , - 843 , - 3526 , - 401 , - 4140 , - 2071 , - 2642 , - 1629 , - 3256 , - 3299 , - 1758 , - 2857 , - 2372 , - 303 , - 874 , - 4085 , - 1488 , - 1531 , - 4214 , - 1089 , - 604 , - 2759 , - 3330 , - 2317 , - 3944 , - 3987 , - 2446 , - 3545 , - 3060 , - 991 , - 1562 , - 549 , - 2176 , - 2219 , - 678 , - 1777 , - 1292 , - 3447 , - 4018 , - 3005 , - 408 , - 451 , - 3134 , - 9 , - 3748 , - 1679 , - 2250 , - 1237 , - 2864 , - 2907 , - 1366 , - 2465 , - 1980 , - 4135 , - 482 , - 3693 , - 1096 , - 1139 , - 3822 , - 697 , - 212 , - 2367 , - 2938 , - 1925 , - 3552 , - 3595 , - 2054 , - 3153 , - 2668 , - 599 , - 1170 , - 157 , - 1784 , - 1827 , - 286 , - 1385 , - 900 , - 3055 , - 3626 , - 2613 , - 16 , - 59 , - 2742 , - 3841 , - 3356 , - 1287 , - 1858 , - 845 , - 2472 , - 2515 , - 974 , - 2073 , - 1588 , - 3743 , - 90 , - 3301 , - 704 , - 747 , - 3430 , - 305 , - 4044 , - 1975 , - 2546 , - 1533 , - 3160 , - 3203 , - 1662 , - 2761 , - 2276 , - 207 , - 778 , - 3989 , - 1392 , - 1435 , - 4118 , - 993 , - 508 , - 2663 , - 3234 , - 2221 , - 3848 , - 3891 , - 2350 , - 3449 , - 2964 , - 895 , - 1466 , - 453 , - 2080 , - 2123 , - 582 , - 1681 , - 1196 , - 3351 , - 3922 , - 2909 , - 312 , - 355 , - 3038 , - 4137 , - 3652 , - 1583 , - 2154 , - 1141 , - 2768 , - 2811 , - 1270 , - 2369 , - 1884 , - 4039 , - 386 , - 3597 , - 1000 , - 1043 , - 3726 , - 601 , - 116 , - 2271 , - 2842 , - 1829 , - 3456 , - 3499 , - 1958 , - 3057 , - 2572 , - 503 , - 1074 , - 61 , - 1688 , - 1731 , - 190 , - 1289 , - 804 , - 2959 , - 3530 , - 2517 , - 4144 , - 4187 , - 2646 , - 3745 , - 3260 , - 1191 , - 1762 , - 749 , - 2376 , - 2419 , - 878 , - 1977 , - 1492 , - 3647 , - 4218 , - 3205 , - 608 , - 651 , - 3334 , - 209 , - 3948 , - 1879 , - 2450 , - 1437 , - 3064 , - 3107 , - 1566 , - 2665 , - 2180 , - 111 , - 682 , - 3893 , - 1296 , - 1339 , - 4022 , - 897 , - 412 , - 2567 , - 3138 , - 2125 , - 3752 , - 3795 , - 2254 , - 3353 , - 2868 , - 799 , - 1370 , - 357 , - 1984 , - 2027 , - 486 , - 1585 , - 1100 , - 3255 , - 3826 , - 2813 , - 216 , - 259 , - 2942 , - 4041 , - 3556 , - 1487 , - 2058 , - 1045 , - 2672 , - 2715 , - 1174 , - 2273 , - 1788 , - 3943 , - 290 , - 3501 , - 904 , - 947 , - 3630 , - 505 , - 20 , - 2175 , - 2746 , - 1733 , - 3360 , - 3403 , - 1862 , - 2961 , - 2476 , - 407 , - 978 , - 4189 , - 1592 , - 1635 , - 94 , - 1193 , - 708 , - 2863 , - 3434 , - 2421 , - 4048 , - 4091 , - 2550 , - 3649 , - 3164 , - 1095 , - 1666 , - 653 , - 2280 , - 2323 , - 782 , - 1881 , - 1396 , - 3551 , - 4122 , - 3109 , - 512 , - 555 , - 3238 , - 113 , - 3852 , - 1783 , - 2354 , - 1341 , - 2968 , - 3011 , - 1470 , - 2569 , - 2084 , - 15 , - 586 , - 3797 , - 1200 , - 1243 , - 3926 , - 801 , - 316 , - 2471 , - 3042 , - 2029 , - 3656 , - 3699 , - 2158 , - 3257 , - 2772 , - 703 , - 1274 , - 261 , - 1888 , - 1931 , - 390 , - 1489 , - 1004 , - 3159 , - 3730 , - 2717 , - 120 , - 163 , - 2846 , - 3945 , - 3460 , - 1391 , - 1962 , - 949 , - 2576 , - 2619 , - 1078 , - 2177 , - 1692 , - 3847 , - 194 , - 3405 , - 808 , - 851 , - 3534 , - 409 , - 4148 , - 2079 , - 2650 , - 1637 , - 3264 , - 3307 , - 1766 , - 2865 , - 2380 , - 311 , - 882 , - 4093 , - 1496 , - 1539 , - 4222 , - 1097 , - 612 , - 2767 , - 3338 , - 2325 , - 3952 , - 3995 , - 2454 , - 3553 , - 3068 , - 999 , - 1570 , - 557 , - 2184 , - 2227 , - 686 , - 1785 , - 1300 , - 3455 , - 4026 , - 3013 , - 416 , - 459 , - 3142 , - 17 , - 3756 , - 1687 , - 2258 , - 1245 , - 2872 , - 2915 , - 1374 , - 2473 , - 1988 , - 4143 , - 490 , - 3701 , - 1104 , - 1147 , - 3830 , - 705 , - 220 , - 2375 , - 2946 , - 1933 , - 3560 , - 3603 , - 2062 , - 3161 , - 2676 , - 607 , - 1178 , - 165 , - 1792 , - 1835 , - 294 , - 1393 , - 908 , - 3063 , - 3634 , - 2621 , - 24 , - 67 , - 2750 , - 3849 , - 3364 , - 1295 , - 1866 , - 853 , - 2480 , - 2523 , - 982 , - 2081 , - 1596 , - 3751 , - 98 , - 3309 , - 712 , - 755 , - 3438 , - 313 , - 4052 , - 1983 , - 2554 , - 1541 , - 3168 , - 3211 , - 1670 , - 2769 , - 2284 , - 215 , - 786 , - 3997 , - 1400 , - 1443 , - 4126 , - 1001 , - 516 , - 2671 , - 3242 , - 2229 , - 3856 , - 3899 , - 2358 , - 3457 , - 2972 , - 903 , - 1474 , - 461 , - 2088 , - 2131 , - 590 , - 1689 , - 1204 , - 3359 , - 3930 , - 2917 , - 320 , - 363 , - 3046 , - 4145 , - 3660 , - 1591 , - 2162 , - 1149 , - 2776 , - 2819 , - 1278 , - 2377 , - 1892 , - 4047 , - 394 , - 3605 , - 1008 , - 1051 , - 3734 , - 609 , - 124 , - 2279 , - 2850 , - 1837 , - 3464 , - 3507 , - 1966 , - 3065 , - 2580 , - 511 , - 1082 , - 69 , - 1696 , - 1739 , - 198 , - 1297 , - 812 , - 2967 , - 3538 , - 2525 , - 4152 , - 4195 , - 2654 , - 3753 , - 3268 , - 1199 , - 1770 , - 757 , - 2384 , - 2427 , - 886 , - 1985 , - 1500 , - 3655 , - 2 , - 3213 , - 616 , - 659 , - 3342 , - 217 , - 3956 , - 1887 , - 2458 , - 1445 , - 3072 , - 3115 , - 1574 , - 2673 , - 2188 , - 119 , - 690 , - 3901 , - 1304 , - 1347 , - 4030 , - 905 , - 420 , - 2575 , - 3146 , - 2133 , - 3760 , - 3803 , - 2262 , - 3361 , - 2876 , - 807 , - 1378 , - 365 , - 1992 , - 2035 , - 494 , - 1593 , - 1108 , - 3263 , - 3834 , - 2821 , - 224 , - 267 , - 2950 , - 4049 , - 3564 , - 1495 , - 2066 , - 1053 , - 2680 , - 2723 , - 1182 , - 2281 , - 1796 , - 3951 , - 298 , - 3509 , - 912 , - 955 , - 3638 , - 513 , - 28 , - 2183 , - 2754 , - 1741 , - 3368 , - 3411 , - 1870 , - 2969 , - 2484 , - 415 , - 986 , - 4197 , - 1600 , - 1643 , - 102 , - 1201 , - 716 , - 2871 , - 3442 , - 2429 , - 4056 , - 4099 , - 2558 , - 3657 , - 3172 , - 1103 , - 1674 , - 661 , - 2288 , - 2331 , - 790 , - 1889 , - 1404 , - 3559 , - 4130 , - 3117 , - 520 , - 563 , - 3246 , - 121 , - 3860 , - 1791 , - 2362 , - 1349 , - 2976 , - 3019 , - 1478 , - 2577 , - 2092 , - 23 , - 594 , - 3805 , - 1208 , - 1251 , - 3934 , - 809 , - 324 , - 2479 , - 3050 , - 2037 , - 3664 , - 3707 , - 2166 , - 3265 , - 2780 , - 711 , - 1282 , - 269 , - 1896 , - 1939 , - 398 , - 1497 , - 1012 , - 3167 , - 3738 , - 2725 , - 128 , - 171 , - 2854 , - 3953 , - 3468 , - 1399 , - 1970 , - 957 , - 2584 , - 2627 , - 1086 , - 2185 , - 1700 , - 3855 , - 202 , - 3413 , - 816 , - 859 , - 3542 , - 417 , - 4156 , - 2087 , - 2658 , - 1645 , - 3272 , - 3315 , - 1774 , - 2873 , - 2388 , - 319 , - 890 , - 4101 , - 1504 , - 1547 , - 6 , - 1105 , - 620 , - 2775 , - 3346 , - 2333 , - 3960 , - 4003 , - 2462 , - 3561 , - 3076 , - 1007 , - 1578 , - 565 , - 2192 , - 2235 , - 694 , - 1793 , - 1308 , - 3463 , - 4034 , - 3021 , - 424 , - 467 , - 3150 , - 25 , - 3764 , - 1695 , - 2266 , - 1253 , - 2880 , - 2923 , - 1382 , - 2481 , - 1996 , - 4151 , - 498 , - 3709 , - 1112 , - 1155 , - 3838 , - 713 , - 228 , - 2383 , - 2954 , - 1941 , - 3568 , - 3611 , - 2070 , - 3169 , - 2684 , - 615 , - 1186 , - 173 , - 1800 , - 1843 , - 302 , - 1401 , - 916 , - 3071 , - 3642 , - 2629 , - 32 , - 75 , - 2758 , - 3857 , - 3372 , - 1303 , - 1874 , - 861 , - 2488 , - 2531 , - 990 , - 2089 , - 1604 , - 3759 , - 106 , - 3317 , - 720 , - 763 , - 3446 , - 321 , - 4060 , - 1991 , - 2562 , - 1549 , - 3176 , - 3219 , - 1678 , - 2777 , - 2292 , - 223 , - 794 , - 4005 , - 1408 , - 1451 , - 4134 , - 1009 , - 524 , - 2679 , - 3250 , - 2237 , - 3864 , - 3907 , - 2366 , - 3465 , - 2980 , - 911 , - 1482 , - 469 , - 2096 , - 2139 , - 598 , - 1697 , - 1212 , - 3367 , - 3938 , - 2925 , - 328 , - 371 , - 3054 , - 4153 , - 3668 , - 1599 , - 2170 , - 1157 , - 2784 , - 2827 , - 1286 , - 2385 , - 1900 , - 4055 , - 402 , - 3613 , - 1016 , - 1059 , - 3742 , - 617 , - 132 , - 2287 , - 2858 , - 1845 , - 3472 , - 3515 , - 1974 , - 3073 , - 2588 , - 519 , - 1090 , - 77 , - 1704 , - 1747 , - 206 , - 1305 , - 820 , - 2975 , - 3546 , - 2533 , - 4160 , - 4203 , - 2662 , - 3761 , - 3276 , - 1207 , - 1778 , - 765 , - 2392 , - 2435 , - 894 , - 1993 , - 1508 , - 3663 , - 10 , - 3221 , - 624 , - 667 , - 3350 , - 225 , - 3964 , - 1895 , - 2466 , - 1453 , - 3080 , - 3123 , - 1582 , - 2681 , - 2196 , - 127 , - 698 , - 3909 , - 1312 , - 1355 , - 4038 , - 913 , - 428 , - 2583 , - 3154 , - 2141 , - 3768 , - 3811 , - 2270 , - 3369 , - 2884 , - 815 , - 1386 , - 373 , - 2000 , - 2043 , - 502 , - 1601 , - 1116 , - 3271 , - 3842 , - 2829 , - 232 , - 275 , - 2958 , - 4057 , - 3572 , - 1503 , - 2074 , - 1061 , - 2688 , - 2731 , - 1190 , - 2289 , - 1804 , - 3959 , - 306 , - 3517 , - 920 , - 963 , - 3646 , - 521 , - 36 , - 2191 , - 2762 , - 1749 , - 3376 , - 3419 , - 1878 , - 2977 , - 2492 , - 423 , - 994 , - 4205 , - 1608 , - 1651 , - 110 , - 1209 , - 724 , - 2879 , - 3450 , - 2437 , - 4064 , - 4107 , - 2566 , - 3665 , - 3180 , - 1111 , - 1682 , - 669 , - 2296 , - 2339 , - 798 , - 1897 , - 1412 , - 3567 , - 4138 , - 3125 , - 528 , - 571 , - 3254 , - 129 , - 3868 , - 1799 , - 2370 , - 1357 , - 2984 , - 3027 , - 1486 , - 2585 , - 2100 , - 31 , - 602 , - 3813 , - 1216 , - 1259 , - 3942 , - 817 , - 332 , - 2487 , - 3058 , - 2045 , - 3672 , - 3715 , - 2174 , - 3273 , - 2788 , - 719 , - 1290 , - 277 , - 1904 , - 1947 , - 406 , - 1505 , - 1020 , - 3175 , - 3746 , - 2733 , - 136 , - 179 , - 2862 , - 3961 , - 3476 , - 1407 , - 1978 , - 965 , - 2592 , - 2635 , - 1094 , - 2193 , - 1708 , - 3863 , - 210 , - 3421 , - 824 , - 867 , - 3550 , - 425 , - 4164 , - 2095 , - 2666 , - 1653 , - 3280 , - 3323 , - 1782 , - 2881 , - 2396 , - 327 , - 898 , - 4109 , - 1512 , - 1555 , - 14 , - 1113 , - 628 , - 2783 , - 3354 , - 2341 , - 3968 , - 4011 , - 2470 , - 3569 , - 3084 , - 1015 , - 1586 , - 573 , - 2200 , - 2243 , - 702 , - 1801 , - 1316 , - 3471 , - 4042 , - 3029 , - 432 , - 475 , - 3158 , - 33 , - 3772 , - 1703 , - 2274 , - 1261 , - 2888 , - 2931 , - 1390 , - 2489 , - 2004 , - 4159 , - 506 , - 3717 , - 1120 , - 1163 , - 3846 , - 721 , - 236 , - 2391 , - 2962 , - 1949 , - 3576 , - 3619 , - 2078 , - 3177 , - 2692 , - 623 , - 1194 , - 181 , - 1808 , - 1851 , - 310 , - 1409 , - 924 , - 3079 , - 3650 , - 2637 , - 40 , - 83 , - 2766 , - 3865 , - 3380 , - 1311 , - 1882 , - 869 , - 2496 , - 2539 , - 998 , - 2097 , - 1612 , - 3767 , - 114 , - 3325 , - 728 , - 771 , - 3454 , - 329 , - 4068 , - 1999 , - 2570 , - 1557 , - 3184 , - 3227 , - 1686 , - 2785 , - 2300 , - 231 , - 802 , - 4013 , - 1416 , - 1459 , - 4142 , - 1017 , - 532 , - 2687 , - 3258 , - 2245 , - 3872 , - 3915 , - 2374 , - 3473 , - 2988 , - 919 , - 1490 , - 477 , - 2104 , - 2147 , - 606 , - 1705 , - 1220 , - 3375 , - 3946 , - 2933 , - 336 , - 379 , - 3062 , - 4161 , - 3676 , - 1607 , - 2178 , - 1165 , - 2792 , - 2835 , - 1294 , - 2393 , - 1908 , - 4063 , - 410 , - 3621 , - 1024 , - 1067 , - 3750 , - 625 , - 140 , - 2295 , - 2866 , - 1853 , - 3480 , - 3523 , - 1982 , - 3081 , - 2596 , - 527 , - 1098 , - 85 , - 1712 , - 1755 , - 214 , - 1313 , - 828 , - 2983 , - 3554 , - 2541 , - 4168 , - 4211 , - 2670 , - 3769 , - 3284 , - 1215 , - 1786 , - 773 , - 2400 , - 2443 , - 902 , - 2001 , - 1516 , - 3671 , - 18 , - 3229 , - 632 , - 675 , - 3358 , - 233 , - 3972 , - 1903 , - 2474 , - 1461 , - 3088 , - 3131 , - 1590 , - 2689 , - 2204 , - 135 , - 706 , - 3917 , - 1320 , - 1363 , - 4046 , - 921 , - 436 , - 2591 , - 3162 , - 2149 , - 3776 , - 3819 , - 2278 , - 3377 , - 2892 , - 823 , - 1394 , - 381 , - 2008 , - 2051 , - 510 , - 1609 , - 1124 , - 3279 , - 3850 , - 2837 , - 240 , - 283 , - 2966 , - 4065 , - 3580 , - 1511 , - 2082 , - 1069 , - 2696 , - 2739 , - 1198 , - 2297 , - 1812 , - 3967 , - 314 , - 3525 , - 928 , - 971 , - 3654 , - 529 , - 44 , - 2199 , - 2770 , - 1757 , - 3384 , - 3427 , - 1886 , - 2985 , - 2500 , - 431 , - 1002 , - 4213 , - 1616 , - 1659 , - 118 , - 1217 , - 732 , - 2887 , - 3458 , - 2445 , - 4072 , - 4115 , - 2574 , - 3673 , - 3188 , - 1119 , - 1690 , - 677 , - 2304 , - 2347 , - 806 , - 1905 , - 1420 , - 3575 , - 4146 , - 3133 , - 536 , - 579 , - 3262 , - 137 , - 3876 , - 1807 , - 2378 , - 1365 , - 2992 , - 3035 , - 1494 , - 2593 , - 2108 , - 39 , - 610 , - 3821 , - 1224 , - 1267 , - 3950 , - 825 , - 340 , - 2495 , - 3066 , - 2053 , - 3680 , - 3723 , - 2182 , - 3281 , - 2796 , - 727 , - 1298 , - 285 , - 1912 , - 1955 , - 414 , - 1513 , - 1028 , - 3183 , - 3754 , - 2741 , - 144 , - 187 , - 2870 , - 3969 , - 3484 , - 1415 , - 1986 , - 973 , - 2600 , - 2643 , - 1102 , - 2201 , - 1716 , - 3871 , - 218 , - 3429 , - 832 , - 875 , - 3558 , - 433 , - 4172 , - 2103 , - 2674 , - 1661 , - 3288 , - 3331 , - 1790 , - 2889 , - 2404 , - 335 , - 906 , - 4117 , - 1520 , - 1563 , - 22 , - 1121 , - 636 , - 2791 , - 3362 , - 2349 , - 3976 , - 4019 , - 2478 , - 3577 , - 3092 , - 1023 , - 1594 , - 581 , - 2208 , - 2251 , - 710 , - 1809 , - 1324 , - 3479 , - 4050 , - 3037 , - 440 , - 483 , - 3166 , - 41 , - 3780 , - 1711 , - 2282 , - 1269 , - 2896 , - 2939 , - 1398 , - 2497 , - 2012 , - 4167 , - 514 , - 3725 , - 1128 , - 1171 , - 3854 , - 729 , - 244 , - 2399 , - 2970 , - 1957 , - 3584 , - 3627 , - 2086 , - 3185 , - 2700 , - 631 , - 1202 , - 189 , - 1816 , - 1859 , - 318 , - 1417 , - 932 , - 3087 , - 3658 , - 2645 , - 48 , - 91 , - 2774 , - 3873 , - 3388 , - 1319 , - 1890 , - 877 , - 2504 , - 2547 , - 1006 , - 2105 , - 1620 , - 3775 , - 122 , - 3333 , - 736 , - 779 , - 3462 , - 337 , - 4076 , - 2007 , - 2578 , - 1565 , - 3192 , - 3235 , - 1694 , - 2793 , - 2308 , - 239 , - 810 , - 4021 , - 1424 , - 1467 , - 4150 , - 1025 , - 540 , - 2695 , - 3266 , - 2253 , - 3880 , - 3923 , - 2382 , - 3481 , - 2996 , - 927 , - 1498 , - 485 , - 2112 , - 2155 , - 614 , - 1713 , - 1228 , - 3383 , - 3954 , - 2941 , - 344 , - 387 , - 3070 , - 4169 , - 3684 , - 1615 , - 2186 , - 1173 , - 2800 , - 2843 , - 1302 , - 2401 , - 1916 , - 4071 , - 418 , - 3629 , - 1032 , - 1075 , - 3758 , - 633 , - 148 , - 2303 , - 2874 , - 1861 , - 3488 , - 3531 , - 1990 , - 3089 , - 2604 , - 535 , - 1106 , - 93 , - 1720 , - 1763 , - 222 , - 1321 , - 836 , - 2991 , - 3562 , - 2549 , - 4176 , - 4219 , - 2678 , - 3777 , - 3292 , - 1223 , - 1794 , - 781 , - 2408 , - 2451 , - 910 , - 2009 , - 1524 , - 3679 , - 26 , - 3237 , - 640 , - 683 , - 3366 , - 241 , - 3980 , - 1911 , - 2482 , - 1469 , - 3096 , - 3139 , - 1598 , - 2697 , - 2212 , - 143 , - 714 , - 3925 , - 1328 , - 1371 , - 4054 , - 929 , - 444 , - 2599 , - 3170 , - 2157 , - 3784 , - 3827 , - 2286 , - 3385 , - 2900 , - 831 , - 1402 , - 389 , - 2016 , - 2059 , - 518 , - 1617 , - 1132 , - 3287 , - 3858 , - 2845 , - 248 , - 291 , - 2974 , - 4073 , - 3588 , - 1519 , - 2090 , - 1077 , - 2704 , - 2747 , - 1206 , - 2305 , - 1820 , - 3975 , - 322 , - 3533 , - 936 , - 979 , - 3662 , - 537 , - 52 , - 2207 , - 2778 , - 1765 , - 3392 , - 3435 , - 1894 , - 2993 , - 2508 , - 439 , - 1010 , - 4221 , - 1624 , - 1667 , - 126 , - 1225 , - 740 , - 2895 , - 3466 , - 2453 , - 4080 , - 4123 , - 2582 , - 3681 , - 3196 , - 1127 , - 1698 , - 685 , - 2312 , - 2355 , - 814 , - 1913 , - 1428 , - 3583 , - 4154 , - 3141 , - 544 , - 587 , - 3270 , - 145 , - 3884 , - 1815 , - 2386 , - 1373 , - 3000 , - 3043 , - 1502 , - 2601 , - 2116 , - 47 , - 618 , - 3829 , - 1232 , - 1275 , - 3958 , - 833 , - 348 , - 2503 , - 3074 , - 2061 , - 3688 , - 3731 , - 2190 , - 3289 , - 2804 , - 735 , - 1306 , - 293 , - 1920 , - 1963 , - 422 , - 1521 , - 1036 , - 3191 , - 3762 , - 2749 , - 152 , - 195 , - 2878 , - 3977 , - 3492 , - 1423 , - 1994 , - 981 , - 2608 , - 2651 , - 1110 , - 2209 , - 1724 , - 3879 , - 226 , - 3437 , - 840 , - 883 , - 3566 , - 441 , - 4180 , - 2111 , - 2682 , - 1669 , - 3296 , - 3339 , - 1798 , - 2897 , - 2412 , - 343 , - 914 , - 4125 , - 1528 , - 1571 , - 30 , - 1129 , - 644 , - 2799 , - 3370 , - 2357 , - 3984 , - 4027 , - 2486 , - 3585 , - 3100 , - 1031 , - 1602 , - 589 , - 2216 , - 2259 , - 718 , - 1817 , - 1332 , - 3487 , - 4058 , - 3045 , - 448 , - 491 , - 3174 , - 49 , - 3788 , - 1719 , - 2290 , - 1277 , - 2904 , - 2947 , - 1406 , - 2505 , - 2020 , - 4175 , - 522 , - 3733 , - 1136 , - 1179 , - 3862 , - 737 , - 252 , - 2407 , - 2978 , - 1965 , - 3592 , - 3635 , - 2094 , - 3193 , - 2708 , - 639 , - 1210 , - 197 , - 1824 , - 1867 , - 326 , - 1425 , - 940 , - 3095 , - 3666 , - 2653 , - 56 , - 99 , - 2782 , - 3881 , - 3396 , - 1327 , - 1898 , - 885 , - 2512 , - 2555 , - 1014 , - 2113 , - 1628 , - 3783 , - 130 , - 3341 , - 744 , - 787 , - 3470 , - 345 , - 4084 , - 2015 , - 2586 , - 1573 , - 3200 , - 3243 , - 1702 , - 2801 , - 2316 , - 247 , - 818 , - 4029 , - 1432 , - 1475 , - 4158 , - 1033 , - 548 , - 2703 , - 3274 , - 2261 , - 3888 , - 3931 , - 2390 , - 3489 , - 3004 , - 935 , - 1506 , - 493 , - 2120 , - 2163 , - 622 , - 1721 , - 1236 , - 3391 , - 3962 , - 2949 , - 352 , - 395 , - 3078 , - 4177 , - 3692 , - 1623 , - 2194 , - 1181 , - 2808 , - 2851 , - 1310 , - 2409 , - 1924 , - 4079 , - 426 , - 3637 , - 1040 , - 1083 , - 3766 , - 641 , - 156 , - 2311 , - 2882 , - 1869 , - 3496 , - 3539 , - 1998 , - 3097 , - 2612 , - 543 , - 1114 , - 101 , - 1728 , - 1771 , - 230 , - 1329 , - 844 , - 2999 , - 3570 , - 2557 , - 4184 , - 3 , - 2686 , - 3785 , - 3300 , - 1231 , - 1802 , - 789 , - 2416 , - 2459 , - 918 , - 2017 , - 1532 , - 3687 , - 34 , - 3245 , - 648 , - 691 , - 3374 , - 249 , - 3988 , - 1919 , - 2490 , - 1477 , - 3104 , - 3147 , - 1606 , - 2705 , - 2220 , - 151 , - 722 , - 3933 , - 1336 , - 1379 , - 4062 , - 937 , - 452 , - 2607 , - 3178 , - 2165 , - 3792 , - 3835 , - 2294 , - 3393 , - 2908 , - 839 , - 1410 , - 397 , - 2024 , - 2067 , - 526 , - 1625 , - 1140 , - 3295 , - 3866 , - 2853 , - 256 , - 299 , - 2982 , - 4081 , - 3596 , - 1527 , - 2098 , - 1085 , - 2712 , - 2755 , - 1214 , - 2313 , - 1828 , - 3983 , - 330 , - 3541 , - 944 , - 987 , - 3670 , - 545 , - 60 , - 2215 , - 2786 , - 1773 , - 3400 , - 3443 , - 1902 , - 3001 , - 2516 , - 447 , - 1018 , - 5 , - 1632 , - 1675 , - 134 , - 1233 , - 748 , - 2903 , - 3474 , - 2461 , - 4088 , - 4131 , - 2590 , - 3689 , - 3204 , - 1135 , - 1706 , - 693 , - 2320 , - 2363 , - 822 , - 1921 , - 1436 , - 3591 , - 4162 , - 3149 , - 552 , - 595 , - 3278 , - 153 , - 3892 , - 1823 , - 2394 , - 1381 , - 3008 , - 3051 , - 1510 , - 2609 , - 2124 , - 55 , - 626 , - 3837 , - 1240 , - 1283 , - 3966 , - 841 , - 356 , - 2511 , - 3082 , - 2069 , - 3696 , - 3739 , - 2198 , - 3297 , - 2812 , - 743 , - 1314 , - 301 , - 1928 , - 1971 , - 430 , - 1529 , - 1044 , - 3199 , - 3770 , - 2757 , - 160 , - 203 , - 2886 , - 3985 , - 3500 , - 1431 , - 2002 , - 989 , - 2616 , - 2659 , - 1118 , - 2217 , - 1732 , - 3887 , - 234 , - 3445 , - 848 , - 891 , - 3574 , - 449 , - 4188 , - 2119 , - 2690 , - 1677 , - 3304 , - 3347 , - 1806 , - 2905 , - 2420 , - 351 , - 922 , - 4133 , - 1536 , - 1579 , - 38 , - 1137 , - 652 , - 2807 , - 3378 , - 2365 , - 3992 , - 4035 , - 2494 , - 3593 , - 3108 , - 1039 , - 1610 , - 597 , - 2224 , - 2267 , - 726 , - 1825 , - 1340 , - 3495 , - 4066 , - 3053 , - 456 , - 499 , - 3182 , - 57 , - 3796 , - 1727 , - 2298 , - 1285 , - 2912 , - 2955 , - 1414 , - 2513 , - 2028 , - 4183 , - 530 , - 3741 , - 1144 , - 1187 , - 3870 , - 745 , - 260 , - 2415 , - 2986 , - 1973 , - 3600 , - 3643 , - 2102 , - 3201 , - 2716 , - 647 , - 1218 , - 205 , - 1832 , - 1875 , - 334 , - 1433 , - 948 , - 3103 , - 3674 , - 2661 , - 64 , - 107 , - 2790 , - 3889 , - 3404 , - 1335 , - 1906 , - 893 , - 2520 , - 2563 , - 1022 , - 2121 , - 1636 , - 3791 , - 138 , - 3349 , - 752 , - 795 , - 3478 , - 353 , - 4092 , - 2023 , - 2594 , - 1581 , - 3208 , - 3251 , - 1710 , - 2809 , - 2324 , - 255 , - 826 , - 4037 , - 1440 , - 1483 , - 4166 , - 1041 , - 556 , - 2711 , - 3282 , - 2269 , - 3896 , - 3939 , - 2398 , - 3497 , - 3012 , - 943 , - 1514 , - 501 , - 2128 , - 2171 , - 630 , - 1729 , - 1244 , - 3399 , - 3970 , - 2957 , - 360 , - 403 , - 3086 , - 4185 , - 3700 , - 1631 , - 2202 , - 1189 , - 2816 , - 2859 , - 1318 , - 2417 , - 1932 , - 4087 , - 434 , - 3645 , - 1048 , - 1091 , - 3774 , - 649 , - 164 , - 2319 , - 2890 , - 1877 , - 3504 , - 3547 , - 2006 , - 3105 , - 2620 , - 551 , - 1122 , - 109 , - 1736 , - 1779 , - 238 , - 1337 , - 852 , - 3007 , - 3578 , - 2565 , - 4192 , - 11 , - 2694 , - 3793 , - 3308 , - 1239 , - 1810 , - 797 , - 2424 , - 2467 , - 926 , - 2025 , - 1540 , - 3695 , - 42 , - 3253 , - 656 , - 699 , - 3382 , - 257 , - 3996 , - 1927 , - 2498 , - 1485 , - 3112 , - 3155 , - 1614 , - 2713 , - 2228 , - 159 , - 730 , - 3941 , - 1344 , - 1387 , - 4070 , - 945 , - 460 , - 2615 , - 3186 , - 2173 , - 3800 , - 3843 , - 2302 , - 3401 , - 2916 , - 847 , - 1418 , - 405 , - 2032 , - 2075 , - 534 , - 1633 , - 1148 , - 3303 , - 3874 , - 2861 , - 264 , - 307 , - 2990 , - 4089 , - 3604 , - 1535 , - 2106 , - 1093 , - 2720 , - 2763 , - 1222 , - 2321 , - 1836 , - 3991 , - 338 , - 3549 , - 952 , - 995 , - 3678 , - 553 , - 68 , - 2223 , - 2794 , - 1781 , - 3408 , - 3451 , - 1910 , - 3009 , - 2524 , - 455 , - 1026 , - 13 , - 1640 , - 1683 , - 142 , - 1241 , - 756 , - 2911 , - 3482 , - 2469 , - 4096 , - 4139 , - 2598 , - 3697 , - 3212 , - 1143 , - 1714 , - 701 , - 2328 , - 2371 , - 830 , - 1929 , - 1444 , - 3599 , - 4170 , - 3157 , - 560 , - 603 , - 3286 , - 161 , - 3900 , - 1831 , - 2402 , - 1389 , - 3016 , - 3059 , - 1518 , - 2617 , - 2132 , - 63 , - 634 , - 3845 , - 1248 , - 1291 , - 3974 , - 849 , - 364 , - 2519 , - 3090 , - 2077 , - 3704 , - 3747 , - 2206 , - 3305 , - 2820 , - 751 , - 1322 , - 309 , - 1936 , - 1979 , - 438 , - 1537 , - 1052 , - 3207 , - 3778 , - 2765 , - 168 , - 211 , - 2894 , - 3993 , - 3508 , - 1439 , - 2010 , - 997 , - 2624 , - 2667 , - 1126 , - 2225 , - 1740 , - 3895 , - 242 , - 3453 , - 856 , - 899 , - 3582 , - 457 , - 4196 , - 2127 , - 2698 , - 1685 , - 3312 , - 3355 , - 1814 , - 2913 , - 2428 , - 359 , - 930 , - 4141 , - 1544 , - 1587 , - 46 , - 1145 , - 660 , - 2815 , - 3386 , - 2373 , - 4000 , - 4043 , - 2502 , - 3601 , - 3116 , - 1047 , - 1618 , - 605 , - 2232 , - 2275 , - 734 , - 1833 , - 1348 , - 3503 , - 4074 , - 3061 , - 464 , - 507 , - 3190 , - 65 , - 3804 , - 1735 , - 2306 , - 1293 , - 2920 , - 2963 , - 1422 , - 2521 , - 2036 , - 4191 , - 538 , - 3749 , - 1152 , - 1195 , - 3878 , - 753 , - 268 , - 2423 , - 2994 , - 1981 , - 3608 , - 3651 , - 2110 , - 3209 , - 2724 , - 655 , - 1226 , - 213 , - 1840 , - 1883 , - 342 , - 1441 , - 956 , - 3111 , - 3682 , - 2669 , - 72 , - 115 , - 2798 , - 3897 , - 3412 , - 1343 , - 1914 , - 901 , - 2528 , - 2571 , - 1030 , - 2129 , - 1644 , - 3799 , - 146 , - 3357 , - 760 , - 803 , - 3486 , - 361 , - 4100 , - 2031 , - 2602 , - 1589 , - 3216 , - 3259 , - 1718 , - 2817 , - 2332 , - 263 , - 834 , - 4045 , - 1448 , - 1491 , - 4174 , - 1049 , - 564 , - 2719 , - 3290 , - 2277 , - 3904 , - 3947 , - 2406 , - 3505 , - 3020 , - 951 , - 1522 , - 509 , - 2136 , - 2179 , - 638 , - 1737 , - 1252 , - 3407 , - 3978 , - 2965 , - 368 , - 411 , - 3094 , - 4193 , - 3708 , - 1639 , - 2210 , - 1197 , - 2824 , - 2867 , - 1326 , - 2425 , - 1940 , - 4095 , - 442 , - 3653 , - 1056 , - 1099 , - 3782 , - 657 , - 172 , - 2327 , - 2898 , - 1885 , - 3512 , - 3555 , - 2014 , - 3113 , - 2628 , - 559 , - 1130 , - 117 , - 1744 , - 1787 , - 246 , - 1345 , - 860 , - 3015 , - 3586 , - 2573 , - 4200 , - 19 , - 2702 , - 3801 , - 3316 , - 1247 , - 1818 , - 805 , - 2432 , - 2475 , - 934 , - 2033 , - 1548 , - 3703 , - 50 , - 3261 , - 664 , - 707 , - 3390 , - 265 , - 4004 , - 1935 , - 2506 , - 1493 , - 3120 , - 3163 , - 1622 , - 2721 , - 2236 , - 167 , - 738 , - 3949 , - 1352 , - 1395 , - 4078 , - 953 , - 468 , - 2623 , - 3194 , - 2181 , - 3808 , - 3851 , - 2310 , - 3409 , - 2924 , - 855 , - 1426 , - 413 , - 2040 , - 2083 , - 542 , - 1641 , - 1156 , - 3311 , - 3882 , - 2869 , - 272 , - 315 , - 2998 , - 4097 , - 3612 , - 1543 , - 2114 , - 1101 , - 2728 , - 2771 , - 1230 , - 2329 , - 1844 , - 3999 , - 346 , - 3557 , - 960 , - 1003 , - 3686 , - 561 , - 76 , - 2231 , - 2802 , - 1789 , - 3416 , - 3459 , - 1918 , - 3017 , - 2532 , - 463 , - 1034 , - 21 , - 1648 , - 1691 , - 150 , - 1249 , - 764 , - 2919 , - 3490 , - 2477 , - 4104 , - 4147 , - 2606 , - 3705 , - 3220 , - 1151 , - 1722 , - 709 , - 2336 , - 2379 , - 838 , - 1937 , - 1452 , - 3607 , - 4178 , - 3165 , - 568 , - 611 , - 3294 , - 169 , - 3908 , - 1839 , - 2410 , - 1397 , - 3024 , - 3067 , - 1526 , - 2625 , - 2140 , - 71 , - 642 , - 3853 , - 1256 , - 1299 , - 3982 , - 857 , - 372 , - 2527 , - 3098 , - 2085 , - 3712 , - 3755 , - 2214 , - 3313 , - 2828 , - 759 , - 1330 , - 317 , - 1944 , - 1987 , - 446 , - 1545 , - 1060 , - 3215 , - 3786 , - 2773 , - 176 , - 219 , - 2902 , - 4001 , - 3516 , - 1447 , - 2018 , - 1005 , - 2632 , - 2675 , - 1134 , - 2233 , - 1748 , - 3903 , - 250 , - 3461 , - 864 , - 907 , - 3590 , - 465 , - 4204 , - 2135 , - 2706 , - 1693 , - 3320 , - 3363 , - 1822 , - 2921 , - 2436 , - 367 , - 938 , - 4149 , - 1552 , - 1595 , - 54 , - 1153 , - 668 , - 2823 , - 3394 , - 2381 , - 4008 , - 4051 , - 2510 , - 3609 , - 3124 , - 1055 , - 1626 , - 613 , - 2240 , - 2283 , - 742 , - 1841 , - 1356 , - 3511 , - 4082 , - 3069 , - 472 , - 515 , - 3198 , - 73 , - 3812 , - 1743 , - 2314 , - 1301 , - 2928 , - 2971 , - 1430 , - 2529 , - 2044 , - 4199 , - 546 , - 3757 , - 1160 , - 1203 , - 3886 , - 761 , - 276 , - 2431 , - 3002 , - 1989 , - 3616 , - 3659 , - 2118 , - 3217 , - 2732 , - 663 , - 1234 , - 221 , - 1848 , - 1891 , - 350 , - 1449 , - 964 , - 3119 , - 3690 , - 2677 , - 80 , - 123 , - 2806 , - 3905 , - 3420 , - 1351 , - 1922 , - 909 , - 2536 , - 2579 , - 1038 , - 2137 , - 1652 , - 3807 , - 154 , - 3365 , - 768 , - 811 , - 3494 , - 369 , - 4108 , - 2039 , - 2610 , - 1597 , - 3224 , - 3267 , - 1726 , - 2825 , - 2340 , - 271 , - 842 , - 4053 , - 1456 , - 1499 , - 4182 , - 1057 , - 572 , - 2727 , - 3298 , - 2285 , - 3912 , - 3955 , - 2414 , - 3513 , - 3028 , - 959 , - 1530 , - 517 , - 2144 , - 2187 , - 646 , - 1745 , - 1260 , - 3415 , - 3986 , - 2973 , - 376 , - 419 , - 3102 , - 4201 , - 3716 , - 1647 , - 2218 , - 1205 , - 2832 , - 2875 , - 1334 , - 2433 , - 1948 , - 4103 , - 450 , - 3661 , - 1064 , - 1107 , - 3790 , - 665 , - 180 , - 2335 , - 2906 , - 1893 , - 3520 , - 3563 , - 2022 , - 3121 , - 2636 , - 567 , - 1138 , - 125 , - 1752 , - 1795 , - 254 , - 1353 , - 868 , - 3023 , - 3594 , - 2581 , - 4208 , - 27 , - 2710 , - 3809 , - 3324 , - 1255 , - 1826 , - 813 , - 2440 , - 2483 , - 942 , - 2041 , - 1556 , - 3711 , - 58 , - 3269 , - 672 , - 715 , - 3398 , - 273 , - 4012 , - 1943 , - 2514 , - 1501 , - 3128 , - 3171 , - 1630 , - 2729 , - 2244 , - 175 , - 746 , - 3957 , - 1360 , - 1403 , - 4086 , - 961 , - 476 , - 2631 , - 3202 , - 2189 , - 3816 , - 3859 , - 2318 , - 3417 , - 2932 , - 863 , - 1434 , - 421 , - 2048 , - 2091 , - 550 , - 1649 , - 1164 , - 3319 , - 3890 , - 2877 , - 280 , - 323 , - 3006 , - 4105 , - 3620 , - 1551 , - 2122 , - 1109 , - 2736 , - 2779 , - 1238 , - 2337 , - 1852 , - 4007 , - 354 , - 3565 , - 968 , - 1011 , - 3694 , - 569 , - 84 , - 2239 , - 2810 , - 1797 , - 3424 , - 3467 , - 1926 , - 3025 , - 2540 , - 471 , - 1042 , - 29 , - 1656 , - 1699 , - 158 , - 1257 , - 772 , - 2927 , - 3498 , - 2485 , - 4112 , - 4155 , - 2614 , - 3713 , - 3228 , - 1159 , - 1730 , - 717 , - 2344 , - 2387 , - 846 , - 1945 , - 1460 , - 3615 , - 4186 , - 3173 , - 576 , - 619 , - 3302 , - 177 , - 3916 , - 1847 , - 2418 , - 1405 , - 3032 , - 3075 , - 1534 , - 2633 , - 2148 , - 79 , - 650 , - 3861 , - 1264 , - 1307 , - 3990 , - 865 , - 380 , - 2535 , - 3106 , - 2093 , - 3720 , - 3763 , - 2222 , - 3321 , - 2836 , - 767 , - 1338 , - 325 , - 1952 , - 1995 , - 454 , - 1553 , - 1068 , - 3223 , - 3794 , - 2781 , - 184 , - 227 , - 2910 , - 4009 , - 3524 , - 1455 , - 2026 , - 1013 , - 2640 , - 2683 , - 1142 , - 2241 , - 1756 , - 3911 , - 258 , - 3469 , - 872 , - 915 , - 3598 , - 473 , - 4212 , - 2143 , - 2714 , - 1701 , - 3328 , - 3371 , - 1830 , - 2929 , - 2444 , - 375 , - 946 , - 4157 , - 1560 , - 1603 , - 62 , - 1161 , - 676 , - 2831 , - 3402 , - 2389 , - 4016 , - 4059 , - 2518 , - 3617 , - 3132 , - 1063 , - 1634 , - 621 , - 2248 , - 2291 , - 750 , - 1849 , - 1364 , - 3519 , - 4090 , - 3077 , - 480 , - 523 , - 3206 , - 81 , - 3820 , - 1751 , - 2322 , - 1309 , - 2936 , - 2979 , - 1438 , - 2537 , - 2052 , - 4207 , - 554 , - 3765 , - 1168 , - 1211 , - 3894 , - 769 , - 284 , - 2439 , - 3010 , - 1997 , - 3624 , - 3667 , - 2126 , - 3225 , - 2740 , - 671 , - 1242 , - 229 , - 1856 , - 1899 , - 358 , - 1457 , - 972 , - 3127 , - 3698 , - 2685 , - 88 , - 131 , - 2814 , - 3913 , - 3428 , - 1359 , - 1930 , - 917 , - 2544 , - 2587 , - 1046 , - 2145 , - 1660 , - 3815 , - 162 , - 3373 , - 776 , - 819 , - 3502 , - 377 , - 4116 , - 2047 , - 2618 , - 1605 , - 3232 , - 3275 , - 1734 , - 2833 , - 2348 , - 279 , - 850 , - 4061 , - 1464 , - 1507 , - 4190 , - 1065 , - 580 , - 2735 , - 3306 , - 2293 , - 3920 , - 3963 , - 2422 , - 3521 , - 3036 , - 967 , - 1538 , - 525 , - 2152 , - 2195 , - 654 , - 1753 , - 1268 , - 3423 , - 3994 , - 2981 , - 384 , - 427 , - 3110 , - 4209 , - 3724 , - 1655 , - 2226 , - 1213 , - 2840 , - 2883 , - 1342 , - 2441 , - 1956 , - 4111 , - 458 , - 3669 , - 1072 , - 1115 , - 3798 , - 673 , - 188 , - 2343 , - 2914 , - 1901 , - 3528 , - 3571 , - 2030 , - 3129 , - 2644 , - 575 , - 1146 , - 133 , - 1760 , - 1803 , - 262 , - 1361 , - 876 , - 3031 , - 3602 , - 2589 , - 4216 , - 35 , - 2718 , - 3817 , - 3332 , - 1263 , - 1834 , - 821 , - 2448 , - 2491 , - 950 , - 2049 , - 1564 , - 3719 , - 66 , - 3277 , - 680 , - 723 , - 3406 , - 281 , - 4020 , - 1951 , - 2522 , - 1509 , - 3136 , - 3179 , - 1638 , - 2737 , - 2252 , - 183 , - 754 , - 3965 , - 1368 , - 1411 , - 4094 , - 969 , - 484 , - 2639 , - 3210 , - 2197 , - 3824 , - 3867 , - 2326 , - 3425 , - 2940 , - 871 , - 1442 , - 429 , - 2056 , - 2099 , - 558 , - 1657 , - 1172 , - 3327 , - 3898 , - 2885 , - 288 , - 331 , - 3014 , - 4113 , - 3628 , - 1559 , - 2130 , - 1117 , - 2744 , - 2787 , - 1246 , - 2345 , - 1860 , - 4015 , - 362 , - 3573 , - 976 , - 1019 , - 3702 , - 577 , - 92 , - 2247 , - 2818 , - 1805 , - 3432 , - 3475 , - 1934 , - 3033 , - 2548 , - 479 , - 1050 , - 37 , - 1664 , - 1707 , - 166 , - 1265 , - 780 , - 2935 , - 3506 , - 2493 , - 4120 , - 4163 , - 2622 , - 3721 , - 3236 , - 1167 , - 1738 , - 725 , - 2352 , - 2395 , - 854 , - 1953 , - 1468 , - 3623 , - 4194 , - 3181 , - 584 , - 627 , - 3310 , - 185 , - 3924 , - 1855 , - 2426 , - 1413 , - 3040 , - 3083 , - 1542 , - 2641 , - 2156 , - 87 , - 658 , - 3869 , - 1272 , - 1315 , - 3998 , - 873 , - 388 , - 2543 , - 3114 , - 2101 , - 3728 , - 3771 , - 2230 , - 3329 , - 2844 , - 775 , - 1346 , - 333 , - 1960 , - 2003 , - 462 , - 1561 , - 1076 , - 3231 , - 3802 , - 2789 , - 192 , - 235 , - 2918 , - 4017 , - 3532 , - 1463 , - 2034 , - 1021 , - 2648 , - 2691 , - 1150 , - 2249 , - 1764 , - 3919 , - 266 , - 3477 , - 880 , - 923 , - 3606 , - 481 , - 4220 , - 2151 , - 2722 , - 1709 , - 3336 , - 3379 , - 1838 , - 2937 , - 2452 , - 383 , - 954 , - 4165 , - 1568 , - 1611 , - 70 , - 1169 , - 684 , - 2839 , - 3410 , - 2397 , - 4024 , - 4067 , - 2526 , - 3625 , - 3140 , - 1071 , - 1642 , - 629 , - 2256 , - 2299 , - 758 , - 1857 , - 1372 , - 3527 , - 4098 , - 3085 , - 488 , - 531 , - 3214 , - 89 , - 3828 , - 1759 , - 2330 , - 1317 , - 2944 , - 2987 , - 1446 , - 2545 , - 2060 , - 4215 , - 562 , - 3773 , - 1176 , - 1219 , - 3902 , - 777 , - 292 , - 2447 , - 3018 , - 2005 , - 3632 , - 3675 , - 2134 , - 3233 , - 2748 , - 679 , - 1250 , - 237 , - 1864 , - 1907 , - 366 , - 1465 , - 980 , - 3135 , - 3706 , - 2693 , - 96 , - 139 , - 2822 , - 3921 , - 3436 , - 1367 , - 1938 , - 925 , - 2552 , - 2595 , - 1054 , - 2153 , - 1668 , - 3823 , - 170 , - 3381 , - 784 , - 827 , - 3510 , - 385 , - 4124 , - 2055 , - 2626 , - 1613 , - 3240 , - 3283 , - 1742 , - 2841 , - 2356 , - 287 , - 858 , - 4069 , - 1472 , - 1515 , - 4198 , - 1073 , - 588 , - 2743 , - 3314 , - 2301 , - 3928 , - 3971 , - 2430 , - 3529 , - 3044 , - 975 , - 1546 , - 533 , - 2160 , - 2203 , - 662 , - 1761 , - 1276 , - 3431 , - 4002 , - 2989 , - 392 , - 435 , - 3118 , - 4217 , - 3732 , - 1663 , - 2234 , - 1221 , - 2848 , - 2891 , - 1350 , - 2449 , - 1964 , - 4119 , - 466 , - 3677 , - 1080 , - 1123 , - 3806 , - 681 , - 196 , - 2351 , - 2922 , - 1909 , - 3536 , - 3579 , - 2038 , - 3137 , - 2652 , - 583 , - 1154 , - 141 , - 1768 , - 1811 , - 270 , - 1369 , - 884 , - 3039 , - 3610 , - 2597 , - 0 , - 3147 , - 3882 , - 1133 , - 2404 , - 2335 , - 4142 , - 2465 , - 520 , - 1523 , - 114 , - 3797 , - 2924 , - 711 , - 374 , - 841 , - 1040 , - 4187 , - 634 , - 2173 , - 3444 , - 3375 , - 894 , - 3505 , - 1560 , - 2563 , - 1154 , - 549 , - 3964 , - 1751 , - 1414 , - 1881 , - 2080 , - 939 , - 1674 , - 3213 , - 196 , - 127 , - 1934 , - 257 , - 2600 , - 3603 , - 2194 , - 1589 , - 716 , - 2791 , - 2454 , - 2921 , - 3120 , - 1979 , - 2714 , - 4253 , - 1236 , - 1167 , - 2974 , - 1297 , - 3640 , - 355 , - 3234 , - 2629 , - 1756 , - 3831 , - 3494 , - 3961 , - 4160 , - 3019 , - 3754 , - 1005 , - 2276 , - 2207 , - 4014 , - 2337 , - 392 , - 1395 , - 4274 , - 3669 , - 2796 , - 583 , - 246 , - 713 , - 912 , - 4059 , - 506 , - 2045 , - 3316 , - 3247 , - 766 , - 3377 , - 1432 , - 2435 , - 1026 , - 421 , - 3836 , - 1623 , - 1286 , - 1753 , - 1952 , - 811 , - 1546 , - 3085 , - 68 , - 4287 , - 1806 , - 129 , - 2472 , - 3475 , - 2066 , - 1461 , - 588 , - 2663 , - 2326 , - 2793 , - 2992 , - 1851 , - 2586 , - 4125 , - 1108 , - 1039 , - 2846 , - 1169 , - 3512 , - 227 , - 3106 , - 2501 , - 1628 , - 3703 , - 3366 , - 3833 , - 4032 , - 2891 , - 3626 , - 877 , - 2148 , - 2079 , - 3886 , - 2209 , - 264 , - 1267 , - 4146 , - 3541 , - 2668 , - 455 , - 118 , - 585 , - 784 , - 3931 , - 378 , - 1917 , - 3188 , - 3119 , - 638 , - 3249 , - 1304 , - 2307 , - 898 , - 293 , - 3708 , - 1495 , - 1158 , - 1625 , - 1824 , - 683 , - 1418 , - 2957 , - 4228 , - 4159 , - 1678 , - 1 , - 2344 , - 3347 , - 1938 , - 1333 , - 460 , - 2535 , - 2198 , - 2665 , - 2864 , - 1723 , - 2458 , - 3997 , - 980 , - 911 , - 2718 , - 1041 , - 3384 , - 99 , - 2978 , - 2373 , - 1500 , - 3575 , - 3238 , - 3705 , - 3904 , - 2763 , - 3498 , - 749 , - 2020 , - 1951 , - 3758 , - 2081 , - 136 , - 1139 , - 4018 , - 3413 , - 2540 , - 327 , - 4278 , - 457 , - 656 , - 3803 , - 250 , - 1789 , - 3060 , - 2991 , - 510 , - 3121 , - 1176 , - 2179 , - 770 , - 165 , - 3580 , - 1367 , - 1030 , - 1497 , - 1696 , - 555 , - 1290 , - 2829 , - 4100 , - 4031 , - 1550 , - 4161 , - 2216 , - 3219 , - 1810 , - 1205 , - 332 , - 2407 , - 2070 , - 2537 , - 2736 , - 1595 , - 2330 , - 3869 , - 852 , - 783 , - 2590 , - 913 , - 3256 , - 4259 , - 2850 , - 2245 , - 1372 , - 3447 , - 3110 , - 3577 , - 3776 , - 2635 , - 3370 , - 621 , - 1892 , - 1823 , - 3630 , - 1953 , - 8 , - 1011 , - 3890 , - 3285 , - 2412 , - 199 , - 4150 , - 329 , - 528 , - 3675 , - 122 , - 1661 , - 2932 , - 2863 , - 382 , - 2993 , - 1048 , - 2051 , - 642 , - 37 , - 3452 , - 1239 , - 902 , - 1369 , - 1568 , - 427 , - 1162 , - 2701 , - 3972 , - 3903 , - 1422 , - 4033 , - 2088 , - 3091 , - 1682 , - 1077 , - 204 , - 2279 , - 1942 , - 2409 , - 2608 , - 1467 , - 2202 , - 3741 , - 724 , - 655 , - 2462 , - 785 , - 3128 , - 4131 , - 2722 , - 2117 , - 1244 , - 3319 , - 2982 , - 3449 , - 3648 , - 2507 , - 3242 , - 493 , - 1764 , - 1695 , - 3502 , - 1825 , - 4168 , - 883 , - 3762 , - 3157 , - 2284 , - 71 , - 4022 , - 201 , - 400 , - 3547 , - 4282 , - 1533 , - 2804 , - 2735 , - 254 , - 2865 , - 920 , - 1923 , - 514 , - 4197 , - 3324 , - 1111 , - 774 , - 1241 , - 1440 , - 299 , - 1034 , - 2573 , - 3844 , - 3775 , - 1294 , - 3905 , - 1960 , - 2963 , - 1554 , - 949 , - 76 , - 2151 , - 1814 , - 2281 , - 2480 , - 1339 , - 2074 , - 3613 , - 596 , - 527 , - 2334 , - 657 , - 3000 , - 4003 , - 2594 , - 1989 , - 1116 , - 3191 , - 2854 , - 3321 , - 3520 , - 2379 , - 3114 , - 365 , - 1636 , - 1567 , - 3374 , - 1697 , - 4040 , - 755 , - 3634 , - 3029 , - 2156 , - 4231 , - 3894 , - 73 , - 272 , - 3419 , - 4154 , - 1405 , - 2676 , - 2607 , - 126 , - 2737 , - 792 , - 1795 , - 386 , - 4069 , - 3196 , - 983 , - 646 , - 1113 , - 1312 , - 171 , - 906 , - 2445 , - 3716 , - 3647 , - 1166 , - 3777 , - 1832 , - 2835 , - 1426 , - 821 , - 4236 , - 2023 , - 1686 , - 2153 , - 2352 , - 1211 , - 1946 , - 3485 , - 468 , - 399 , - 2206 , - 529 , - 2872 , - 3875 , - 2466 , - 1861 , - 988 , - 3063 , - 2726 , - 3193 , - 3392 , - 2251 , - 2986 , - 237 , - 1508 , - 1439 , - 3246 , - 1569 , - 3912 , - 627 , - 3506 , - 2901 , - 2028 , - 4103 , - 3766 , - 4233 , - 144 , - 3291 , - 4026 , - 1277 , - 2548 , - 2479 , - 4286 , - 2609 , - 664 , - 1667 , - 258 , - 3941 , - 3068 , - 855 , - 518 , - 985 , - 1184 , - 43 , - 778 , - 2317 , - 3588 , - 3519 , - 1038 , - 3649 , - 1704 , - 2707 , - 1298 , - 693 , - 4108 , - 1895 , - 1558 , - 2025 , - 2224 , - 1083 , - 1818 , - 3357 , - 340 , - 271 , - 2078 , - 401 , - 2744 , - 3747 , - 2338 , - 1733 , - 860 , - 2935 , - 2598 , - 3065 , - 3264 , - 2123 , - 2858 , - 109 , - 1380 , - 1311 , - 3118 , - 1441 , - 3784 , - 499 , - 3378 , - 2773 , - 1900 , - 3975 , - 3638 , - 4105 , - 16 , - 3163 , - 3898 , - 1149 , - 2420 , - 2351 , - 4158 , - 2481 , - 536 , - 1539 , - 130 , - 3813 , - 2940 , - 727 , - 390 , - 857 , - 1056 , - 4203 , - 650 , - 2189 , - 3460 , - 3391 , - 910 , - 3521 , - 1576 , - 2579 , - 1170 , - 565 , - 3980 , - 1767 , - 1430 , - 1897 , - 2096 , - 955 , - 1690 , - 3229 , - 212 , - 143 , - 1950 , - 273 , - 2616 , - 3619 , - 2210 , - 1605 , - 732 , - 2807 , - 2470 , - 2937 , - 3136 , - 1995 , - 2730 , - 4269 , - 1252 , - 1183 , - 2990 , - 1313 , - 3656 , - 371 , - 3250 , - 2645 , - 1772 , - 3847 , - 3510 , - 3977 , - 4176 , - 3035 , - 3770 , - 1021 , - 2292 , - 2223 , - 4030 , - 2353 , - 408 , - 1411 , - 2 , - 3685 , - 2812 , - 599 , - 262 , - 729 , - 928 , - 4075 , - 522 , - 2061 , - 3332 , - 3263 , - 782 , - 3393 , - 1448 , - 2451 , - 1042 , - 437 , - 3852 , - 1639 , - 1302 , - 1769 , - 1968 , - 827 , - 1562 , - 3101 , - 84 , - 15 , - 1822 , - 145 , - 2488 , - 3491 , - 2082 , - 1477 , - 604 , - 2679 , - 2342 , - 2809 , - 3008 , - 1867 , - 2602 , - 4141 , - 1124 , - 1055 , - 2862 , - 1185 , - 3528 , - 243 , - 3122 , - 2517 , - 1644 , - 3719 , - 3382 , - 3849 , - 4048 , - 2907 , - 3642 , - 893 , - 2164 , - 2095 , - 3902 , - 2225 , - 280 , - 1283 , - 4162 , - 3557 , - 2684 , - 471 , - 134 , - 601 , - 800 , - 3947 , - 394 , - 1933 , - 3204 , - 3135 , - 654 , - 3265 , - 1320 , - 2323 , - 914 , - 309 , - 3724 , - 1511 , - 1174 , - 1641 , - 1840 , - 699 , - 1434 , - 2973 , - 4244 , - 4175 , - 1694 , - 17 , - 2360 , - 3363 , - 1954 , - 1349 , - 476 , - 2551 , - 2214 , - 2681 , - 2880 , - 1739 , - 2474 , - 4013 , - 996 , - 927 , - 2734 , - 1057 , - 3400 , - 115 , - 2994 , - 2389 , - 1516 , - 3591 , - 3254 , - 3721 , - 3920 , - 2779 , - 3514 , - 765 , - 2036 , - 1967 , - 3774 , - 2097 , - 152 , - 1155 , - 4034 , - 3429 , - 2556 , - 343 , - 6 , - 473 , - 672 , - 3819 , - 266 , - 1805 , - 3076 , - 3007 , - 526 , - 3137 , - 1192 , - 2195 , - 786 , - 181 , - 3596 , - 1383 , - 1046 , - 1513 , - 1712 , - 571 , - 1306 , - 2845 , - 4116 , - 4047 , - 1566 , - 4177 , - 2232 , - 3235 , - 1826 , - 1221 , - 348 , - 2423 , - 2086 , - 2553 , - 2752 , - 1611 , - 2346 , - 3885 , - 868 , - 799 , - 2606 , - 929 , - 3272 , - 4275 , - 2866 , - 2261 , - 1388 , - 3463 , - 3126 , - 3593 , - 3792 , - 2651 , - 3386 , - 637 , - 1908 , - 1839 , - 3646 , - 1969 , - 24 , - 1027 , - 3906 , - 3301 , - 2428 , - 215 , - 4166 , - 345 , - 544 , - 3691 , - 138 , - 1677 , - 2948 , - 2879 , - 398 , - 3009 , - 1064 , - 2067 , - 658 , - 53 , - 3468 , - 1255 , - 918 , - 1385 , - 1584 , - 443 , - 1178 , - 2717 , - 3988 , - 3919 , - 1438 , - 4049 , - 2104 , - 3107 , - 1698 , - 1093 , - 220 , - 2295 , - 1958 , - 2425 , - 2624 , - 1483 , - 2218 , - 3757 , - 740 , - 671 , - 2478 , - 801 , - 3144 , - 4147 , - 2738 , - 2133 , - 1260 , - 3335 , - 2998 , - 3465 , - 3664 , - 2523 , - 3258 , - 509 , - 1780 , - 1711 , - 3518 , - 1841 , - 4184 , - 899 , - 3778 , - 3173 , - 2300 , - 87 , - 4038 , - 217 , - 416 , - 3563 , - 10 , - 1549 , - 2820 , - 2751 , - 270 , - 2881 , - 936 , - 1939 , - 530 , - 4213 , - 3340 , - 1127 , - 790 , - 1257 , - 1456 , - 315 , - 1050 , - 2589 , - 3860 , - 3791 , - 1310 , - 3921 , - 1976 , - 2979 , - 1570 , - 965 , - 92 , - 2167 , - 1830 , - 2297 , - 2496 , - 1355 , - 2090 , - 3629 , - 612 , - 543 , - 2350 , - 673 , - 3016 , - 4019 , - 2610 , - 2005 , - 1132 , - 3207 , - 2870 , - 3337 , - 3536 , - 2395 , - 3130 , - 381 , - 1652 , - 1583 , - 3390 , - 1713 , - 4056 , - 771 , - 3650 , - 3045 , - 2172 , - 4247 , - 3910 , - 89 , - 288 , - 3435 , - 4170 , - 1421 , - 2692 , - 2623 , - 142 , - 2753 , - 808 , - 1811 , - 402 , - 4085 , - 3212 , - 999 , - 662 , - 1129 , - 1328 , - 187 , - 922 , - 2461 , - 3732 , - 3663 , - 1182 , - 3793 , - 1848 , - 2851 , - 1442 , - 837 , - 4252 , - 2039 , - 1702 , - 2169 , - 2368 , - 1227 , - 1962 , - 3501 , - 484 , - 415 , - 2222 , - 545 , - 2888 , - 3891 , - 2482 , - 1877 , - 1004 , - 3079 , - 2742 , - 3209 , - 3408 , - 2267 , - 3002 , - 253 , - 1524 , - 1455 , - 3262 , - 1585 , - 3928 , - 643 , - 3522 , - 2917 , - 2044 , - 4119 , - 3782 , - 4249 , - 160 , - 3307 , - 4042 , - 1293 , - 2564 , - 2495 , - 14 , - 2625 , - 680 , - 1683 , - 274 , - 3957 , - 3084 , - 871 , - 534 , - 1001 , - 1200 , - 59 , - 794 , - 2333 , - 3604 , - 3535 , - 1054 , - 3665 , - 1720 , - 2723 , - 1314 , - 709 , - 4124 , - 1911 , - 1574 , - 2041 , - 2240 , - 1099 , - 1834 , - 3373 , - 356 , - 287 , - 2094 , - 417 , - 2760 , - 3763 , - 2354 , - 1749 , - 876 , - 2951 , - 2614 , - 3081 , - 3280 , - 2139 , - 2874 , - 125 , - 1396 , - 1327 , - 3134 , - 1457 , - 3800 , - 515 , - 3394 , - 2789 , - 1916 , - 3991 , - 3654 , - 4121 , - 32 , - 3179 , - 3914 , - 1165 , - 2436 , - 2367 , - 4174 , - 2497 , - 552 , - 1555 , - 146 , - 3829 , - 2956 , - 743 , - 406 , - 873 , - 1072 , - 4219 , - 666 , - 2205 , - 3476 , - 3407 , - 926 , - 3537 , - 1592 , - 2595 , - 1186 , - 581 , - 3996 , - 1783 , - 1446 , - 1913 , - 2112 , - 971 , - 1706 , - 3245 , - 228 , - 159 , - 1966 , - 289 , - 2632 , - 3635 , - 2226 , - 1621 , - 748 , - 2823 , - 2486 , - 2953 , - 3152 , - 2011 , - 2746 , - 4285 , - 1268 , - 1199 , - 3006 , - 1329 , - 3672 , - 387 , - 3266 , - 2661 , - 1788 , - 3863 , - 3526 , - 3993 , - 4192 , - 3051 , - 3786 , - 1037 , - 2308 , - 2239 , - 4046 , - 2369 , - 424 , - 1427 , - 18 , - 3701 , - 2828 , - 615 , - 278 , - 745 , - 944 , - 4091 , - 538 , - 2077 , - 3348 , - 3279 , - 798 , - 3409 , - 1464 , - 2467 , - 1058 , - 453 , - 3868 , - 1655 , - 1318 , - 1785 , - 1984 , - 843 , - 1578 , - 3117 , - 100 , - 31 , - 1838 , - 161 , - 2504 , - 3507 , - 2098 , - 1493 , - 620 , - 2695 , - 2358 , - 2825 , - 3024 , - 1883 , - 2618 , - 4157 , - 1140 , - 1071 , - 2878 , - 1201 , - 3544 , - 259 , - 3138 , - 2533 , - 1660 , - 3735 , - 3398 , - 3865 , - 4064 , - 2923 , - 3658 , - 909 , - 2180 , - 2111 , - 3918 , - 2241 , - 296 , - 1299 , - 4178 , - 3573 , - 2700 , - 487 , - 150 , - 617 , - 816 , - 3963 , - 410 , - 1949 , - 3220 , - 3151 , - 670 , - 3281 , - 1336 , - 2339 , - 930 , - 325 , - 3740 , - 1527 , - 1190 , - 1657 , - 1856 , - 715 , - 1450 , - 2989 , - 4260 , - 4191 , - 1710 , - 33 , - 2376 , - 3379 , - 1970 , - 1365 , - 492 , - 2567 , - 2230 , - 2697 , - 2896 , - 1755 , - 2490 , - 4029 , - 1012 , - 943 , - 2750 , - 1073 , - 3416 , - 131 , - 3010 , - 2405 , - 1532 , - 3607 , - 3270 , - 3737 , - 3936 , - 2795 , - 3530 , - 781 , - 2052 , - 1983 , - 3790 , - 2113 , - 168 , - 1171 , - 4050 , - 3445 , - 2572 , - 359 , - 22 , - 489 , - 688 , - 3835 , - 282 , - 1821 , - 3092 , - 3023 , - 542 , - 3153 , - 1208 , - 2211 , - 802 , - 197 , - 3612 , - 1399 , - 1062 , - 1529 , - 1728 , - 587 , - 1322 , - 2861 , - 4132 , - 4063 , - 1582 , - 4193 , - 2248 , - 3251 , - 1842 , - 1237 , - 364 , - 2439 , - 2102 , - 2569 , - 2768 , - 1627 , - 2362 , - 3901 , - 884 , - 815 , - 2622 , - 945 , - 3288 , - 3 , - 2882 , - 2277 , - 1404 , - 3479 , - 3142 , - 3609 , - 3808 , - 2667 , - 3402 , - 653 , - 1924 , - 1855 , - 3662 , - 1985 , - 40 , - 1043 , - 3922 , - 3317 , - 2444 , - 231 , - 4182 , - 361 , - 560 , - 3707 , - 154 , - 1693 , - 2964 , - 2895 , - 414 , - 3025 , - 1080 , - 2083 , - 674 , - 69 , - 3484 , - 1271 , - 934 , - 1401 , - 1600 , - 459 , - 1194 , - 2733 , - 4004 , - 3935 , - 1454 , - 4065 , - 2120 , - 3123 , - 1714 , - 1109 , - 236 , - 2311 , - 1974 , - 2441 , - 2640 , - 1499 , - 2234 , - 3773 , - 756 , - 687 , - 2494 , - 817 , - 3160 , - 4163 , - 2754 , - 2149 , - 1276 , - 3351 , - 3014 , - 3481 , - 3680 , - 2539 , - 3274 , - 525 , - 1796 , - 1727 , - 3534 , - 1857 , - 4200 , - 915 , - 3794 , - 3189 , - 2316 , - 103 , - 4054 , - 233 , - 432 , - 3579 , - 26 , - 1565 , - 2836 , - 2767 , - 286 , - 2897 , - 952 , - 1955 , - 546 , - 4229 , - 3356 , - 1143 , - 806 , - 1273 , - 1472 , - 331 , - 1066 , - 2605 , - 3876 , - 3807 , - 1326 , - 3937 , - 1992 , - 2995 , - 1586 , - 981 , - 108 , - 2183 , - 1846 , - 2313 , - 2512 , - 1371 , - 2106 , - 3645 , - 628 , - 559 , - 2366 , - 689 , - 3032 , - 4035 , - 2626 , - 2021 , - 1148 , - 3223 , - 2886 , - 3353 , - 3552 , - 2411 , - 3146 , - 397 , - 1668 , - 1599 , - 3406 , - 1729 , - 4072 , - 787 , - 3666 , - 3061 , - 2188 , - 4263 , - 3926 , - 105 , - 304 , - 3451 , - 4186 , - 1437 , - 2708 , - 2639 , - 158 , - 2769 , - 824 , - 1827 , - 418 , - 4101 , - 3228 , - 1015 , - 678 , - 1145 , - 1344 , - 203 , - 938 , - 2477 , - 3748 , - 3679 , - 1198 , - 3809 , - 1864 , - 2867 , - 1458 , - 853 , - 4268 , - 2055 , - 1718 , - 2185 , - 2384 , - 1243 , - 1978 , - 3517 , - 500 , - 431 , - 2238 , - 561 , - 2904 , - 3907 , - 2498 , - 1893 , - 1020 , - 3095 , - 2758 , - 3225 , - 3424 , - 2283 , - 3018 , - 269 , - 1540 , - 1471 , - 3278 , - 1601 , - 3944 , - 659 , - 3538 , - 2933 , - 2060 , - 4135 , - 3798 , - 4265 , - 176 , - 3323 , - 4058 , - 1309 , - 2580 , - 2511 , - 30 , - 2641 , - 696 , - 1699 , - 290 , - 3973 , - 3100 , - 887 , - 550 , - 1017 , - 1216 , - 75 , - 810 , - 2349 , - 3620 , - 3551 , - 1070 , - 3681 , - 1736 , - 2739 , - 1330 , - 725 , - 4140 , - 1927 , - 1590 , - 2057 , - 2256 , - 1115 , - 1850 , - 3389 , - 372 , - 303 , - 2110 , - 433 , - 2776 , - 3779 , - 2370 , - 1765 , - 892 , - 2967 , - 2630 , - 3097 , - 3296 , - 2155 , - 2890 , - 141 , - 1412 , - 1343 , - 3150 , - 1473 , - 3816 , - 531 , - 3410 , - 2805 , - 1932 , - 4007 , - 3670 , - 4137 , - 48 , - 3195 , - 3930 , - 1181 , - 2452 , - 2383 , - 4190 , - 2513 , - 568 , - 1571 , - 162 , - 3845 , - 2972 , - 759 , - 422 , - 889 , - 1088 , - 4235 , - 682 , - 2221 , - 3492 , - 3423 , - 942 , - 3553 , - 1608 , - 2611 , - 1202 , - 597 , - 4012 , - 1799 , - 1462 , - 1929 , - 2128 , - 987 , - 1722 , - 3261 , - 244 , - 175 , - 1982 , - 305 , - 2648 , - 3651 , - 2242 , - 1637 , - 764 , - 2839 , - 2502 , - 2969 , - 3168 , - 2027 , - 2762 , - 13 , - 1284 , - 1215 , - 3022 , - 1345 , - 3688 , - 403 , - 3282 , - 2677 , - 1804 , - 3879 , - 3542 , - 4009 , - 4208 , - 3067 , - 3802 , - 1053 , - 2324 , - 2255 , - 4062 , - 2385 , - 440 , - 1443 , - 34 , - 3717 , - 2844 , - 631 , - 294 , - 761 , - 960 , - 4107 , - 554 , - 2093 , - 3364 , - 3295 , - 814 , - 3425 , - 1480 , - 2483 , - 1074 , - 469 , - 3884 , - 1671 , - 1334 , - 1801 , - 2000 , - 859 , - 1594 , - 3133 , - 116 , - 47 , - 1854 , - 177 , - 2520 , - 3523 , - 2114 , - 1509 , - 636 , - 2711 , - 2374 , - 2841 , - 3040 , - 1899 , - 2634 , - 4173 , - 1156 , - 1087 , - 2894 , - 1217 , - 3560 , - 275 , - 3154 , - 2549 , - 1676 , - 3751 , - 3414 , - 3881 , - 4080 , - 2939 , - 3674 , - 925 , - 2196 , - 2127 , - 3934 , - 2257 , - 312 , - 1315 , - 4194 , - 3589 , - 2716 , - 503 , - 166 , - 633 , - 832 , - 3979 , - 426 , - 1965 , - 3236 , - 3167 , - 686 , - 3297 , - 1352 , - 2355 , - 946 , - 341 , - 3756 , - 1543 , - 1206 , - 1673 , - 1872 , - 731 , - 1466 , - 3005 , - 4276 , - 4207 , - 1726 , - 49 , - 2392 , - 3395 , - 1986 , - 1381 , - 508 , - 2583 , - 2246 , - 2713 , - 2912 , - 1771 , - 2506 , - 4045 , - 1028 , - 959 , - 2766 , - 1089 , - 3432 , - 147 , - 3026 , - 2421 , - 1548 , - 3623 , - 3286 , - 3753 , - 3952 , - 2811 , - 3546 , - 797 , - 2068 , - 1999 , - 3806 , - 2129 , - 184 , - 1187 , - 4066 , - 3461 , - 2588 , - 375 , - 38 , - 505 , - 704 , - 3851 , - 298 , - 1837 , - 3108 , - 3039 , - 558 , - 3169 , - 1224 , - 2227 , - 818 , - 213 , - 3628 , - 1415 , - 1078 , - 1545 , - 1744 , - 603 , - 1338 , - 2877 , - 4148 , - 4079 , - 1598 , - 4209 , - 2264 , - 3267 , - 1858 , - 1253 , - 380 , - 2455 , - 2118 , - 2585 , - 2784 , - 1643 , - 2378 , - 3917 , - 900 , - 831 , - 2638 , - 961 , - 3304 , - 19 , - 2898 , - 2293 , - 1420 , - 3495 , - 3158 , - 3625 , - 3824 , - 2683 , - 3418 , - 669 , - 1940 , - 1871 , - 3678 , - 2001 , - 56 , - 1059 , - 3938 , - 3333 , - 2460 , - 247 , - 4198 , - 377 , - 576 , - 3723 , - 170 , - 1709 , - 2980 , - 2911 , - 430 , - 3041 , - 1096 , - 2099 , - 690 , - 85 , - 3500 , - 1287 , - 950 , - 1417 , - 1616 , - 475 , - 1210 , - 2749 , - 4020 , - 3951 , - 1470 , - 4081 , - 2136 , - 3139 , - 1730 , - 1125 , - 252 , - 2327 , - 1990 , - 2457 , - 2656 , - 1515 , - 2250 , - 3789 , - 772 , - 703 , - 2510 , - 833 , - 3176 , - 4179 , - 2770 , - 2165 , - 1292 , - 3367 , - 3030 , - 3497 , - 3696 , - 2555 , - 3290 , - 541 , - 1812 , - 1743 , - 3550 , - 1873 , - 4216 , - 931 , - 3810 , - 3205 , - 2332 , - 119 , - 4070 , - 249 , - 448 , - 3595 , - 42 , - 1581 , - 2852 , - 2783 , - 302 , - 2913 , - 968 , - 1971 , - 562 , - 4245 , - 3372 , - 1159 , - 822 , - 1289 , - 1488 , - 347 , - 1082 , - 2621 , - 3892 , - 3823 , - 1342 , - 3953 , - 2008 , - 3011 , - 1602 , - 997 , - 124 , - 2199 , - 1862 , - 2329 , - 2528 , - 1387 , - 2122 , - 3661 , - 644 , - 575 , - 2382 , - 705 , - 3048 , - 4051 , - 2642 , - 2037 , - 1164 , - 3239 , - 2902 , - 3369 , - 3568 , - 2427 , - 3162 , - 413 , - 1684 , - 1615 , - 3422 , - 1745 , - 4088 , - 803 , - 3682 , - 3077 , - 2204 , - 4279 , - 3942 , - 121 , - 320 , - 3467 , - 4202 , - 1453 , - 2724 , - 2655 , - 174 , - 2785 , - 840 , - 1843 , - 434 , - 4117 , - 3244 , - 1031 , - 694 , - 1161 , - 1360 , - 219 , - 954 , - 2493 , - 3764 , - 3695 , - 1214 , - 3825 , - 1880 , - 2883 , - 1474 , - 869 , - 4284 , - 2071 , - 1734 , - 2201 , - 2400 , - 1259 , - 1994 , - 3533 , - 516 , - 447 , - 2254 , - 577 , - 2920 , - 3923 , - 2514 , - 1909 , - 1036 , - 3111 , - 2774 , - 3241 , - 3440 , - 2299 , - 3034 , - 285 , - 1556 , - 1487 , - 3294 , - 1617 , - 3960 , - 675 , - 3554 , - 2949 , - 2076 , - 4151 , - 3814 , - 4281 , - 192 , - 3339 , - 4074 , - 1325 , - 2596 , - 2527 , - 46 , - 2657 , - 712 , - 1715 , - 306 , - 3989 , - 3116 , - 903 , - 566 , - 1033 , - 1232 , - 91 , - 826 , - 2365 , - 3636 , - 3567 , - 1086 , - 3697 , - 1752 , - 2755 , - 1346 , - 741 , - 4156 , - 1943 , - 1606 , - 2073 , - 2272 , - 1131 , - 1866 , - 3405 , - 388 , - 319 , - 2126 , - 449 , - 2792 , - 3795 , - 2386 , - 1781 , - 908 , - 2983 , - 2646 , - 3113 , - 3312 , - 2171 , - 2906 , - 157 , - 1428 , - 1359 , - 3166 , - 1489 , - 3832 , - 547 , - 3426 , - 2821 , - 1948 , - 4023 , - 3686 , - 4153 , - 64 , - 3211 , - 3946 , - 1197 , - 2468 , - 2399 , - 4206 , - 2529 , - 584 , - 1587 , - 178 , - 3861 , - 2988 , - 775 , - 438 , - 905 , - 1104 , - 4251 , - 698 , - 2237 , - 3508 , - 3439 , - 958 , - 3569 , - 1624 , - 2627 , - 1218 , - 613 , - 4028 , - 1815 , - 1478 , - 1945 , - 2144 , - 1003 , - 1738 , - 3277 , - 260 , - 191 , - 1998 , - 321 , - 2664 , - 3667 , - 2258 , - 1653 , - 780 , - 2855 , - 2518 , - 2985 , - 3184 , - 2043 , - 2778 , - 29 , - 1300 , - 1231 , - 3038 , - 1361 , - 3704 , - 419 , - 3298 , - 2693 , - 1820 , - 3895 , - 3558 , - 4025 , - 4224 , - 3083 , - 3818 , - 1069 , - 2340 , - 2271 , - 4078 , - 2401 , - 456 , - 1459 , - 50 , - 3733 , - 2860 , - 647 , - 310 , - 777 , - 976 , - 4123 , - 570 , - 2109 , - 3380 , - 3311 , - 830 , - 3441 , - 1496 , - 2499 , - 1090 , - 485 , - 3900 , - 1687 , - 1350 , - 1817 , - 2016 , - 875 , - 1610 , - 3149 , - 132 , - 63 , - 1870 , - 193 , - 2536 , - 3539 , - 2130 , - 1525 , - 652 , - 2727 , - 2390 , - 2857 , - 3056 , - 1915 , - 2650 , - 4189 , - 1172 , - 1103 , - 2910 , - 1233 , - 3576 , - 291 , - 3170 , - 2565 , - 1692 , - 3767 , - 3430 , - 3897 , - 4096 , - 2955 , - 3690 , - 941 , - 2212 , - 2143 , - 3950 , - 2273 , - 328 , - 1331 , - 4210 , - 3605 , - 2732 , - 519 , - 182 , - 649 , - 848 , - 3995 , - 442 , - 1981 , - 3252 , - 3183 , - 702 , - 3313 , - 1368 , - 2371 , - 962 , - 357 , - 3772 , - 1559 , - 1222 , - 1689 , - 1888 , - 747 , - 1482 , - 3021 , - 4 , - 4223 , - 1742 , - 65 , - 2408 , - 3411 , - 2002 , - 1397 , - 524 , - 2599 , - 2262 , - 2729 , - 2928 , - 1787 , - 2522 , - 4061 , - 1044 , - 975 , - 2782 , - 1105 , - 3448 , - 163 , - 3042 , - 2437 , - 1564 , - 3639 , - 3302 , - 3769 , - 3968 , - 2827 , - 3562 , - 813 , - 2084 , - 2015 , - 3822 , - 2145 , - 200 , - 1203 , - 4082 , - 3477 , - 2604 , - 391 , - 54 , - 521 , - 720 , - 3867 , - 314 , - 1853 , - 3124 , - 3055 , - 574 , - 3185 , - 1240 , - 2243 , - 834 , - 229 , - 3644 , - 1431 , - 1094 , - 1561 , - 1760 , - 619 , - 1354 , - 2893 , - 4164 , - 4095 , - 1614 , - 4225 , - 2280 , - 3283 , - 1874 , - 1269 , - 396 , - 2471 , - 2134 , - 2601 , - 2800 , - 1659 , - 2394 , - 3933 , - 916 , - 847 , - 2654 , - 977 , - 3320 , - 35 , - 2914 , - 2309 , - 1436 , - 3511 , - 3174 , - 3641 , - 3840 , - 2699 , - 3434 , - 685 , - 1956 , - 1887 , - 3694 , - 2017 , - 72 , - 1075 , - 3954 , - 3349 , - 2476 , - 263 , - 4214 , - 393 , - 592 , - 3739 , - 186 , - 1725 , - 2996 , - 2927 , - 446 , - 3057 , - 1112 , - 2115 , - 706 , - 101 , - 3516 , - 1303 , - 966 , - 1433 , - 1632 , - 491 , - 1226 , - 2765 , - 4036 , - 3967 , - 1486 , - 4097 , - 2152 , - 3155 , - 1746 , - 1141 , - 268 , - 2343 , - 2006 , - 2473 , - 2672 , - 1531 , - 2266 , - 3805 , - 788 , - 719 , - 2526 , - 849 , - 3192 , - 4195 , - 2786 , - 2181 , - 1308 , - 3383 , - 3046 , - 3513 , - 3712 , - 2571 , - 3306 , - 557 , - 1828 , - 1759 , - 3566 , - 1889 , - 4232 , - 947 , - 3826 , - 3221 , - 2348 , - 135 , - 4086 , - 265 , - 464 , - 3611 , - 58 , - 1597 , - 2868 , - 2799 , - 318 , - 2929 , - 984 , - 1987 , - 578 , - 4261 , - 3388 , - 1175 , - 838 , - 1305 , - 1504 , - 363 , - 1098 , - 2637 , - 3908 , - 3839 , - 1358 , - 3969 , - 2024 , - 3027 , - 1618 , - 1013 , - 140 , - 2215 , - 1878 , - 2345 , - 2544 , - 1403 , - 2138 , - 3677 , - 660 , - 591 , - 2398 , - 721 , - 3064 , - 4067 , - 2658 , - 2053 , - 1180 , - 3255 , - 2918 , - 3385 , - 3584 , - 2443 , - 3178 , - 429 , - 1700 , - 1631 , - 3438 , - 1761 , - 4104 , - 819 , - 3698 , - 3093 , - 2220 , - 7 , - 3958 , - 137 , - 336 , - 3483 , - 4218 , - 1469 , - 2740 , - 2671 , - 190 , - 2801 , - 856 , - 1859 , - 450 , - 4133 , - 3260 , - 1047 , - 710 , - 1177 , - 1376 , - 235 , - 970 , - 2509 , - 3780 , - 3711 , - 1230 , - 3841 , - 1896 , - 2899 , - 1490 , - 885 , - 12 , - 2087 , - 1750 , - 2217 , - 2416 , - 1275 , - 2010 , - 3549 , - 532 , - 463 , - 2270 , - 593 , - 2936 , - 3939 , - 2530 , - 1925 , - 1052 , - 3127 , - 2790 , - 3257 , - 3456 , - 2315 , - 3050 , - 301 , - 1572 , - 1503 , - 3310 , - 1633 , - 3976 , - 691 , - 3570 , - 2965 , - 2092 , - 4167 , - 3830 , - 9 , - 208 , - 3355 , - 4090 , - 1341 , - 2612 , - 2543 , - 62 , - 2673 , - 728 , - 1731 , - 322 , - 4005 , - 3132 , - 919 , - 582 , - 1049 , - 1248 , - 107 , - 842 , - 2381 , - 3652 , - 3583 , - 1102 , - 3713 , - 1768 , - 2771 , - 1362 , - 757 , - 4172 , - 1959 , - 1622 , - 2089 , - 2288 , - 1147 , - 1882 , - 3421 , - 404 , - 335 , - 2142 , - 465 , - 2808 , - 3811 , - 2402 , - 1797 , - 924 , - 2999 , - 2662 , - 3129 , - 3328 , - 2187 , - 2922 , - 173 , - 1444 , - 1375 , - 3182 , - 1505 , - 3848 , - 563 , - 3442 , - 2837 , - 1964 , - 4039 , - 3702 , - 4169 , - 80 , - 3227 , - 3962 , - 1213 , - 2484 , - 2415 , - 4222 , - 2545 , - 600 , - 1603 , - 194 , - 3877 , - 3004 , - 791 , - 454 , - 921 , - 1120 , - 4267 , - 714 , - 2253 , - 3524 , - 3455 , - 974 , - 3585 , - 1640 , - 2643 , - 1234 , - 629 , - 4044 , - 1831 , - 1494 , - 1961 , - 2160 , - 1019 , - 1754 , - 3293 , - 276 , - 207 , - 2014 , - 337 , - 2680 , - 3683 , - 2274 , - 1669 , - 796 , - 2871 , - 2534 , - 3001 , - 3200 , - 2059 , - 2794 , - 45 , - 1316 , - 1247 , - 3054 , - 1377 , - 3720 , - 435 , - 3314 , - 2709 , - 1836 , - 3911 , - 3574 , - 4041 , - 4240 , - 3099 , - 3834 , - 1085 , - 2356 , - 2287 , - 4094 , - 2417 , - 472 , - 1475 , - 66 , - 3749 , - 2876 , - 663 , - 326 , - 793 , - 992 , - 4139 , - 586 , - 2125 , - 3396 , - 3327 , - 846 , - 3457 , - 1512 , - 2515 , - 1106 , - 501 , - 3916 , - 1703 , - 1366 , - 1833 , - 2032 , - 891 , - 1626 , - 3165 , - 148 , - 79 , - 1886 , - 209 , - 2552 , - 3555 , - 2146 , - 1541 , - 668 , - 2743 , - 2406 , - 2873 , - 3072 , - 1931 , - 2666 , - 4205 , - 1188 , - 1119 , - 2926 , - 1249 , - 3592 , - 307 , - 3186 , - 2581 , - 1708 , - 3783 , - 3446 , - 3913 , - 4112 , - 2971 , - 3706 , - 957 , - 2228 , - 2159 , - 3966 , - 2289 , - 344 , - 1347 , - 4226 , - 3621 , - 2748 , - 535 , - 198 , - 665 , - 864 , - 4011 , - 458 , - 1997 , - 3268 , - 3199 , - 718 , - 3329 , - 1384 , - 2387 , - 978 , - 373 , - 3788 , - 1575 , - 1238 , - 1705 , - 1904 , - 763 , - 1498 , - 3037 , - 20 , - 4239 , - 1758 , - 81 , - 2424 , - 3427 , - 2018 , - 1413 , - 540 , - 2615 , - 2278 , - 2745 , - 2944 , - 1803 , - 2538 , - 4077 , - 1060 , - 991 , - 2798 , - 1121 , - 3464 , - 179 , - 3058 , - 2453 , - 1580 , - 3655 , - 3318 , - 3785 , - 3984 , - 2843 , - 3578 , - 829 , - 2100 , - 2031 , - 3838 , - 2161 , - 216 , - 1219 , - 4098 , - 3493 , - 2620 , - 407 , - 70 , - 537 , - 736 , - 3883 , - 330 , - 1869 , - 3140 , - 3071 , - 590 , - 3201 , - 1256 , - 2259 , - 850 , - 245 , - 3660 , - 1447 , - 1110 , - 1577 , - 1776 , - 635 , - 1370 , - 2909 , - 4180 , - 4111 , - 1630 , - 4241 , - 2296 , - 3299 , - 1890 , - 1285 , - 412 , - 2487 , - 2150 , - 2617 , - 2816 , - 1675 , - 2410 , - 3949 , - 932 , - 863 , - 2670 , - 993 , - 3336 , - 51 , - 2930 , - 2325 , - 1452 , - 3527 , - 3190 , - 3657 , - 3856 , - 2715 , - 3450 , - 701 , - 1972 , - 1903 , - 3710 , - 2033 , - 88 , - 1091 , - 3970 , - 3365 , - 2492 , - 279 , - 4230 , - 409 , - 608 , - 3755 , - 202 , - 1741 , - 3012 , - 2943 , - 462 , - 3073 , - 1128 , - 2131 , - 722 , - 117 , - 3532 , - 1319 , - 982 , - 1449 , - 1648 , - 507 , - 1242 , - 2781 , - 4052 , - 3983 , - 1502 , - 4113 , - 2168 , - 3171 , - 1762 , - 1157 , - 284 , - 2359 , - 2022 , - 2489 , - 2688 , - 1547 , - 2282 , - 3821 , - 804 , - 735 , - 2542 , - 865 , - 3208 , - 4211 , - 2802 , - 2197 , - 1324 , - 3399 , - 3062 , - 3529 , - 3728 , - 2587 , - 3322 , - 573 , - 1844 , - 1775 , - 3582 , - 1905 , - 4248 , - 963 , - 3842 , - 3237 , - 2364 , - 151 , - 4102 , - 281 , - 480 , - 3627 , - 74 , - 1613 , - 2884 , - 2815 , - 334 , - 2945 , - 1000 , - 2003 , - 594 , - 4277 , - 3404 , - 1191 , - 854 , - 1321 , - 1520 , - 379 , - 1114 , - 2653 , - 3924 , - 3855 , - 1374 , - 3985 , - 2040 , - 3043 , - 1634 , - 1029 , - 156 , - 2231 , - 1894 , - 2361 , - 2560 , - 1419 , - 2154 , - 3693 , - 676 , - 607 , - 2414 , - 737 , - 3080 , - 4083 , - 2674 , - 2069 , - 1196 , - 3271 , - 2934 , - 3401 , - 3600 , - 2459 , - 3194 , - 445 , - 1716 , - 1647 , - 3454 , - 1777 , - 4120 , - 835 , - 3714 , - 3109 , - 2236 , - 23 , - 3974 , - 153 , - 352 , - 3499 , - 4234 , - 1485 , - 2756 , - 2687 , - 206 , - 2817 , - 872 , - 1875 , - 466 , - 4149 , - 3276 , - 1063 , - 726 , - 1193 , - 1392 , - 251 , - 986 , - 2525 , - 3796 , - 3727 , - 1246 , - 3857 , - 1912 , - 2915 , - 1506 , - 901 , - 28 , - 2103 , - 1766 , - 2233 , - 2432 , - 1291 , - 2026 , - 3565 , - 548 , - 479 , - 2286 , - 609 , - 2952 , - 3955 , - 2546 , - 1941 , - 1068 , - 3143 , - 2806 , - 3273 , - 3472 , - 2331 , - 3066 , - 317 , - 1588 , - 1519 , - 3326 , - 1649 , - 3992 , - 707 , - 3586 , - 2981 , - 2108 , - 4183 , - 3846 , - 25 , - 224 , - 3371 , - 4106 , - 1357 , - 2628 , - 2559 , - 78 , - 2689 , - 744 , - 1747 , - 338 , - 4021 , - 3148 , - 935 , - 598 , - 1065 , - 1264 , - 123 , - 858 , - 2397 , - 3668 , - 3599 , - 1118 , - 3729 , - 1784 , - 2787 , - 1378 , - 773 , - 4188 , - 1975 , - 1638 , - 2105 , - 2304 , - 1163 , - 1898 , - 3437 , - 420 , - 351 , - 2158 , - 481 , - 2824 , - 3827 , - 2418 , - 1813 , - 940 , - 3015 , - 2678 , - 3145 , - 3344 , - 2203 , - 2938 , - 189 , - 1460 , - 1391 , - 3198 , - 1521 , - 3864 , - 579 , - 3458 , - 2853 , - 1980 , - 4055 , - 3718 , - 4185 , - 96 , - 3243 , - 3978 , - 1229 , - 2500 , - 2431 , - 4238 , - 2561 , - 616 , - 1619 , - 210 , - 3893 , - 3020 , - 807 , - 470 , - 937 , - 1136 , - 4283 , - 730 , - 2269 , - 3540 , - 3471 , - 990 , - 3601 , - 1656 , - 2659 , - 1250 , - 645 , - 4060 , - 1847 , - 1510 , - 1977 , - 2176 , - 1035 , - 1770 , - 3309 , - 292 , - 223 , - 2030 , - 353 , - 2696 , - 3699 , - 2290 , - 1685 , - 812 , - 2887 , - 2550 , - 3017 , - 3216 , - 2075 , - 2810 , - 61 , - 1332 , - 1263 , - 3070 , - 1393 , - 3736 , - 451 , - 3330 , - 2725 , - 1852 , - 3927 , - 3590 , - 4057 , - 4256 , - 3115 , - 3850 , - 1101 , - 2372 , - 2303 , - 4110 , - 2433 , - 488 , - 1491 , - 82 , - 3765 , - 2892 , - 679 , - 342 , - 809 , - 1008 , - 4155 , - 602 , - 2141 , - 3412 , - 3343 , - 862 , - 3473 , - 1528 , - 2531 , - 1122 , - 517 , - 3932 , - 1719 , - 1382 , - 1849 , - 2048 , - 907 , - 1642 , - 3181 , - 164 , - 95 , - 1902 , - 225 , - 2568 , - 3571 , - 2162 , - 1557 , - 684 , - 2759 , - 2422 , - 2889 , - 3088 , - 1947 , - 2682 , - 4221 , - 1204 , - 1135 , - 2942 , - 1265 , - 3608 , - 323 , - 3202 , - 2597 , - 1724 , - 3799 , - 3462 , - 3929 , - 4128 , - 2987 , - 3722 , - 973 , - 2244 , - 2175 , - 3982 , - 2305 , - 360 , - 1363 , - 4242 , - 3637 , - 2764 , - 551 , - 214 , - 681 , - 880 , - 4027 , - 474 , - 2013 , - 3284 , - 3215 , - 734 , - 3345 , - 1400 , - 2403 , - 994 , - 389 , - 3804 , - 1591 , - 1254 , - 1721 , - 1920 , - 779 , - 1514 , - 3053 , - 36 , - 4255 , - 1774 , - 97 , - 2440 , - 3443 , - 2034 , - 1429 , - 556 , - 2631 , - 2294 , - 2761 , - 2960 , - 1819 , - 2554 , - 4093 , - 1076 , - 1007 , - 2814 , - 1137 , - 3480 , - 195 , - 3074 , - 2469 , - 1596 , - 3671 , - 3334 , - 3801 , - 4000 , - 2859 , - 3594 , - 845 , - 2116 , - 2047 , - 3854 , - 2177 , - 232 , - 1235 , - 4114 , - 3509 , - 2636 , - 423 , - 86 , - 553 , - 752 , - 3899 , - 346 , - 1885 , - 3156 , - 3087 , - 606 , - 3217 , - 1272 , - 2275 , - 866 , - 261 , - 3676 , - 1463 , - 1126 , - 1593 , - 1792 , - 651 , - 1386 , - 2925 , - 4196 , - 4127 , - 1646 , - 4257 , - 2312 , - 3315 , - 1906 , - 1301 , - 428 , - 2503 , - 2166 , - 2633 , - 2832 , - 1691 , - 2426 , - 3965 , - 948 , - 879 , - 2686 , - 1009 , - 3352 , - 67 , - 2946 , - 2341 , - 1468 , - 3543 , - 3206 , - 3673 , - 3872 , - 2731 , - 3466 , - 717 , - 1988 , - 1919 , - 3726 , - 2049 , - 104 , - 1107 , - 3986 , - 3381 , - 2508 , - 295 , - 4246 , - 425 , - 624 , - 3771 , - 218 , - 1757 , - 3028 , - 2959 , - 478 , - 3089 , - 1144 , - 2147 , - 738 , - 133 , - 3548 , - 1335 , - 998 , - 1465 , - 1664 , - 523 , - 1258 , - 2797 , - 4068 , - 3999 , - 1518 , - 4129 , - 2184 , - 3187 , - 1778 , - 1173 , - 300 , - 2375 , - 2038 , - 2505 , - 2704 , - 1563 , - 2298 , - 3837 , - 820 , - 751 , - 2558 , - 881 , - 3224 , - 4227 , - 2818 , - 2213 , - 1340 , - 3415 , - 3078 , - 3545 , - 3744 , - 2603 , - 3338 , - 589 , - 1860 , - 1791 , - 3598 , - 1921 , - 4264 , - 979 , - 3858 , - 3253 , - 2380 , - 167 , - 4118 , - 297 , - 496 , - 3643 , - 90 , - 1629 , - 2900 , - 2831 , - 350 , - 2961 , - 1016 , - 2019 , - 610 , - 5 , - 3420 , - 1207 , - 870 , - 1337 , - 1536 , - 395 , - 1130 , - 2669 , - 3940 , - 3871 , - 1390 , - 4001 , - 2056 , - 3059 , - 1650 , - 1045 , - 172 , - 2247 , - 1910 , - 2377 , - 2576 , - 1435 , - 2170 , - 3709 , - 692 , - 623 , - 2430 , - 753 , - 3096 , - 4099 , - 2690 , - 2085 , - 1212 , - 3287 , - 2950 , - 3417 , - 3616 , - 2475 , - 3210 , - 461 , - 1732 , - 1663 , - 3470 , - 1793 , - 4136 , - 851 , - 3730 , - 3125 , - 2252 , - 39 , - 3990 , - 169 , - 368 , - 3515 , - 4250 , - 1501 , - 2772 , - 2703 , - 222 , - 2833 , - 888 , - 1891 , - 482 , - 4165 , - 3292 , - 1079 , - 742 , - 1209 , - 1408 , - 267 , - 1002 , - 2541 , - 3812 , - 3743 , - 1262 , - 3873 , - 1928 , - 2931 , - 1522 , - 917 , - 44 , - 2119 , - 1782 , - 2249 , - 2448 , - 1307 , - 2042 , - 3581 , - 564 , - 495 , - 2302 , - 625 , - 2968 , - 3971 , - 2562 , - 1957 , - 1084 , - 3159 , - 2822 , - 3289 , - 3488 , - 2347 , - 3082 , - 333 , - 1604 , - 1535 , - 3342 , - 1665 , - 4008 , - 723 , - 3602 , - 2997 , - 2124 , - 4199 , - 3862 , - 41 , - 240 , - 3387 , - 4122 , - 1373 , - 2644 , - 2575 , - 94 , - 2705 , - 760 , - 1763 , - 354 , - 4037 , - 3164 , - 951 , - 614 , - 1081 , - 1280 , - 139 , - 874 , - 2413 , - 3684 , - 3615 , - 1134 , - 3745 , - 1800 , - 2803 , - 1394 , - 789 , - 4204 , - 1991 , - 1654 , - 2121 , - 2320 , - 1179 , - 1914 , - 3453 , - 436 , - 367 , - 2174 , - 497 , - 2840 , - 3843 , - 2434 , - 1829 , - 956 , - 3031 , - 2694 , - 3161 , - 3360 , - 2219 , - 2954 , - 205 , - 1476 , - 1407 , - 3214 , - 1537 , - 3880 , - 595 , - 3474 , - 2869 , - 1996 , - 4071 , - 3734 , - 4201 , - 112 , - 3259 , - 3994 , - 1245 , - 2516 , - 2447 , - 4254 , - 2577 , - 632 , - 1635 , - 226 , - 3909 , - 3036 , - 823 , - 486 , - 953 , - 1152 , - 11 , - 746 , - 2285 , - 3556 , - 3487 , - 1006 , - 3617 , - 1672 , - 2675 , - 1266 , - 661 , - 4076 , - 1863 , - 1526 , - 1993 , - 2192 , - 1051 , - 1786 , - 3325 , - 308 , - 239 , - 2046 , - 369 , - 2712 , - 3715 , - 2306 , - 1701 , - 828 , - 2903 , - 2566 , - 3033 , - 3232 , - 2091 , - 2826 , - 77 , - 1348 , - 1279 , - 3086 , - 1409 , - 3752 , - 467 , - 3346 , - 2741 , - 1868 , - 3943 , - 3606 , - 4073 , - 4272 , - 3131 , - 3866 , - 1117 , - 2388 , - 2319 , - 4126 , - 2449 , - 504 , - 1507 , - 98 , - 3781 , - 2908 , - 695 , - 358 , - 825 , - 1024 , - 4171 , - 618 , - 2157 , - 3428 , - 3359 , - 878 , - 3489 , - 1544 , - 2547 , - 1138 , - 533 , - 3948 , - 1735 , - 1398 , - 1865 , - 2064 , - 923 , - 1658 , - 3197 , - 180 , - 111 , - 1918 , - 241 , - 2584 , - 3587 , - 2178 , - 1573 , - 700 , - 2775 , - 2438 , - 2905 , - 3104 , - 1963 , - 2698 , - 4237 , - 1220 , - 1151 , - 2958 , - 1281 , - 3624 , - 339 , - 3218 , - 2613 , - 1740 , - 3815 , - 3478 , - 3945 , - 4144 , - 3003 , - 3738 , - 989 , - 2260 , - 2191 , - 3998 , - 2321 , - 376 , - 1379 , - 4258 , - 3653 , - 2780 , - 567 , - 230 , - 697 , - 896 , - 4043 , - 490 , - 2029 , - 3300 , - 3231 , - 750 , - 3361 , - 1416 , - 2419 , - 1010 , - 405 , - 3820 , - 1607 , - 1270 , - 1737 , - 1936 , - 795 , - 1530 , - 3069 , - 52 , - 4271 , - 1790 , - 113 , - 2456 , - 3459 , - 2050 , - 1445 , - 572 , - 2647 , - 2310 , - 2777 , - 2976 , - 1835 , - 2570 , - 4109 , - 1092 , - 1023 , - 2830 , - 1153 , - 3496 , - 211 , - 3090 , - 2485 , - 1612 , - 3687 , - 3350 , - 3817 , - 4016 , - 2875 , - 3610 , - 861 , - 2132 , - 2063 , - 3870 , - 2193 , - 248 , - 1251 , - 4130 , - 3525 , - 2652 , - 439 , - 102 , - 569 , - 768 , - 3915 , - 362 , - 1901 , - 3172 , - 3103 , - 622 , - 3233 , - 1288 , - 2291 , - 882 , - 277 , - 3692 , - 1479 , - 1142 , - 1609 , - 1808 , - 667 , - 1402 , - 2941 , - 4212 , - 4143 , - 1662 , - 4273 , - 2328 , - 3331 , - 1922 , - 1317 , - 444 , - 2519 , - 2182 , - 2649 , - 2848 , - 1707 , - 2442 , - 3981 , - 964 , - 895 , - 2702 , - 1025 , - 3368 , - 83 , - 2962 , - 2357 , - 1484 , - 3559 , - 3222 , - 3689 , - 3888 , - 2747 , - 3482 , - 733 , - 2004 , - 1935 , - 3742 , - 2065 , - 120 , - 1123 , - 4002 , - 3397 , - 2524 , - 311 , - 4262 , - 441 , - 640 , - 3787 , - 234 , - 1773 , - 3044 , - 2975 , - 494 , - 3105 , - 1160 , - 2163 , - 754 , - 149 , - 3564 , - 1351 , - 1014 , - 1481 , - 1680 , - 539 , - 1274 , - 2813 , - 4084 , - 4015 , - 1534 , - 4145 , - 2200 , - 3203 , - 1794 , - 1189 , - 316 , - 2391 , - 2054 , - 2521 , - 2720 , - 1579 , - 2314 , - 3853 , - 836 , - 767 , - 2574 , - 897 , - 3240 , - 4243 , - 2834 , - 2229 , - 1356 , - 3431 , - 3094 , - 3561 , - 3760 , - 2619 , - 3354 , - 605 , - 1876 , - 1807 , - 3614 , - 1937 , - 4280 , - 995 , - 3874 , - 3269 , - 2396 , - 183 , - 4134 , - 313 , - 512 , - 3659 , - 106 , - 1645 , - 2916 , - 2847 , - 366 , - 2977 , - 1032 , - 2035 , - 626 , - 21 , - 3436 , - 1223 , - 886 , - 1353 , - 1552 , - 411 , - 1146 , - 2685 , - 3956 , - 3887 , - 1406 , - 4017 , - 2072 , - 3075 , - 1666 , - 1061 , - 188 , - 2263 , - 1926 , - 2393 , - 2592 , - 1451 , - 2186 , - 3725 , - 708 , - 639 , - 2446 , - 769 , - 3112 , - 4115 , - 2706 , - 2101 , - 1228 , - 3303 , - 2966 , - 3433 , - 3632 , - 2491 , - 3226 , - 477 , - 1748 , - 1679 , - 3486 , - 1809 , - 4152 , - 867 , - 3746 , - 3141 , - 2268 , - 55 , - 4006 , - 185 , - 384 , - 3531 , - 4266 , - 1517 , - 2788 , - 2719 , - 238 , - 2849 , - 904 , - 1907 , - 498 , - 4181 , - 3308 , - 1095 , - 758 , - 1225 , - 1424 , - 283 , - 1018 , - 2557 , - 3828 , - 3759 , - 1278 , - 3889 , - 1944 , - 2947 , - 1538 , - 933 , - 60 , - 2135 , - 1798 , - 2265 , - 2464 , - 1323 , - 2058 , - 3597 , - 580 , - 511 , - 2318 , - 641 , - 2984 , - 3987 , - 2578 , - 1973 , - 1100 , - 3175 , - 2838 , - 3305 , - 3504 , - 2363 , - 3098 , - 349 , - 1620 , - 1551 , - 3358 , - 1681 , - 4024 , - 739 , - 3618 , - 3013 , - 2140 , - 4215 , - 3878 , - 57 , - 256 , - 3403 , - 4138 , - 1389 , - 2660 , - 2591 , - 110 , - 2721 , - 776 , - 1779 , - 370 , - 4053 , - 3180 , - 967 , - 630 , - 1097 , - 1296 , - 155 , - 890 , - 2429 , - 3700 , - 3631 , - 1150 , - 3761 , - 1816 , - 2819 , - 1410 , - 805 , - 4220 , - 2007 , - 1670 , - 2137 , - 2336 , - 1195 , - 1930 , - 3469 , - 452 , - 383 , - 2190 , - 513 , - 2856 , - 3859 , - 2450 , - 1845 , - 972 , - 3047 , - 2710 , - 3177 , - 3376 , - 2235 , - 2970 , - 221 , - 1492 , - 1423 , - 3230 , - 1553 , - 3896 , - 611 , - 3490 , - 2885 , - 2012 , - 4087 , - 3750 , - 4217 , - 128 , - 3275 , - 4010 , - 1261 , - 2532 , - 2463 , - 4270 , - 2593 , - 648 , - 1651 , - 242 , - 3925 , - 3052 , - 839 , - 502 , - 969 , - 1168 , - 27 , - 762 , - 2301 , - 3572 , - 3503 , - 1022 , - 3633 , - 1688 , - 2691 , - 1282 , - 677 , - 4092 , - 1879 , - 1542 , - 2009 , - 2208 , - 1067 , - 1802 , - 3341 , - 324 , - 255 , - 2062 , - 385 , - 2728 , - 3731 , - 2322 , - 1717 , - 844 , - 2919 , - 2582 , - 3049 , - 3248 , - 2107 , - 2842 , - 93 , - 1364 , - 1295 , - 3102 , - 1425 , - 3768 , - 483 , - 3362 , - 2757 , - 1884 , - 3959 , - 3622 , - 4089 , - 0 , - 2109 , - 2314 , - 615 , - 1364 , - 209 , - 1502 , - 891 , - 2728 , - 2661 , - 690 , - 1167 , - 4092 , - 761 , - 4230 , - 1443 , - 1104 , - 3213 , - 3418 , - 1719 , - 2468 , - 1313 , - 2606 , - 1995 , - 3832 , - 3765 , - 1794 , - 2271 , - 844 , - 1865 , - 982 , - 2547 , - 2208 , - 4317 , - 170 , - 2823 , - 3572 , - 2417 , - 3710 , - 3099 , - 584 , - 517 , - 2898 , - 3375 , - 1948 , - 2969 , - 2086 , - 3651 , - 3312 , - 1069 , - 1274 , - 3927 , - 324 , - 3521 , - 462 , - 4203 , - 1688 , - 1621 , - 4002 , - 127 , - 3052 , - 4073 , - 3190 , - 403 , - 64 , - 2173 , - 2378 , - 679 , - 1428 , - 273 , - 1566 , - 955 , - 2792 , - 2725 , - 754 , - 1231 , - 4156 , - 825 , - 4294 , - 1507 , - 1168 , - 3277 , - 3482 , - 1783 , - 2532 , - 1377 , - 2670 , - 2059 , - 3896 , - 3829 , - 1858 , - 2335 , - 908 , - 1929 , - 1046 , - 2611 , - 2272 , - 29 , - 234 , - 2887 , - 3636 , - 2481 , - 3774 , - 3163 , - 648 , - 581 , - 2962 , - 3439 , - 2012 , - 3033 , - 2150 , - 3715 , - 3376 , - 1133 , - 1338 , - 3991 , - 388 , - 3585 , - 526 , - 4267 , - 1752 , - 1685 , - 4066 , - 191 , - 3116 , - 4137 , - 3254 , - 467 , - 128 , - 2237 , - 2442 , - 743 , - 1492 , - 337 , - 1630 , - 1019 , - 2856 , - 2789 , - 818 , - 1295 , - 4220 , - 889 , - 6 , - 1571 , - 1232 , - 3341 , - 3546 , - 1847 , - 2596 , - 1441 , - 2734 , - 2123 , - 3960 , - 3893 , - 1922 , - 2399 , - 972 , - 1993 , - 1110 , - 2675 , - 2336 , - 93 , - 298 , - 2951 , - 3700 , - 2545 , - 3838 , - 3227 , - 712 , - 645 , - 3026 , - 3503 , - 2076 , - 3097 , - 2214 , - 3779 , - 3440 , - 1197 , - 1402 , - 4055 , - 452 , - 3649 , - 590 , - 4331 , - 1816 , - 1749 , - 4130 , - 255 , - 3180 , - 4201 , - 3318 , - 531 , - 192 , - 2301 , - 2506 , - 807 , - 1556 , - 401 , - 1694 , - 1083 , - 2920 , - 2853 , - 882 , - 1359 , - 4284 , - 953 , - 70 , - 1635 , - 1296 , - 3405 , - 3610 , - 1911 , - 2660 , - 1505 , - 2798 , - 2187 , - 4024 , - 3957 , - 1986 , - 2463 , - 1036 , - 2057 , - 1174 , - 2739 , - 2400 , - 157 , - 362 , - 3015 , - 3764 , - 2609 , - 3902 , - 3291 , - 776 , - 709 , - 3090 , - 3567 , - 2140 , - 3161 , - 2278 , - 3843 , - 3504 , - 1261 , - 1466 , - 4119 , - 516 , - 3713 , - 654 , - 43 , - 1880 , - 1813 , - 4194 , - 319 , - 3244 , - 4265 , - 3382 , - 595 , - 256 , - 2365 , - 2570 , - 871 , - 1620 , - 465 , - 1758 , - 1147 , - 2984 , - 2917 , - 946 , - 1423 , - 4348 , - 1017 , - 134 , - 1699 , - 1360 , - 3469 , - 3674 , - 1975 , - 2724 , - 1569 , - 2862 , - 2251 , - 4088 , - 4021 , - 2050 , - 2527 , - 1100 , - 2121 , - 1238 , - 2803 , - 2464 , - 221 , - 426 , - 3079 , - 3828 , - 2673 , - 3966 , - 3355 , - 840 , - 773 , - 3154 , - 3631 , - 2204 , - 3225 , - 2342 , - 3907 , - 3568 , - 1325 , - 1530 , - 4183 , - 580 , - 3777 , - 718 , - 107 , - 1944 , - 1877 , - 4258 , - 383 , - 3308 , - 4329 , - 3446 , - 659 , - 320 , - 2429 , - 2634 , - 935 , - 1684 , - 529 , - 1822 , - 1211 , - 3048 , - 2981 , - 1010 , - 1487 , - 60 , - 1081 , - 198 , - 1763 , - 1424 , - 3533 , - 3738 , - 2039 , - 2788 , - 1633 , - 2926 , - 2315 , - 4152 , - 4085 , - 2114 , - 2591 , - 1164 , - 2185 , - 1302 , - 2867 , - 2528 , - 285 , - 490 , - 3143 , - 3892 , - 2737 , - 4030 , - 3419 , - 904 , - 837 , - 3218 , - 3695 , - 2268 , - 3289 , - 2406 , - 3971 , - 3632 , - 1389 , - 1594 , - 4247 , - 644 , - 3841 , - 782 , - 171 , - 2008 , - 1941 , - 4322 , - 447 , - 3372 , - 41 , - 3510 , - 723 , - 384 , - 2493 , - 2698 , - 999 , - 1748 , - 593 , - 1886 , - 1275 , - 3112 , - 3045 , - 1074 , - 1551 , - 124 , - 1145 , - 262 , - 1827 , - 1488 , - 3597 , - 3802 , - 2103 , - 2852 , - 1697 , - 2990 , - 2379 , - 4216 , - 4149 , - 2178 , - 2655 , - 1228 , - 2249 , - 1366 , - 2931 , - 2592 , - 349 , - 554 , - 3207 , - 3956 , - 2801 , - 4094 , - 3483 , - 968 , - 901 , - 3282 , - 3759 , - 2332 , - 3353 , - 2470 , - 4035 , - 3696 , - 1453 , - 1658 , - 4311 , - 708 , - 3905 , - 846 , - 235 , - 2072 , - 2005 , - 34 , - 511 , - 3436 , - 105 , - 3574 , - 787 , - 448 , - 2557 , - 2762 , - 1063 , - 1812 , - 657 , - 1950 , - 1339 , - 3176 , - 3109 , - 1138 , - 1615 , - 188 , - 1209 , - 326 , - 1891 , - 1552 , - 3661 , - 3866 , - 2167 , - 2916 , - 1761 , - 3054 , - 2443 , - 4280 , - 4213 , - 2242 , - 2719 , - 1292 , - 2313 , - 1430 , - 2995 , - 2656 , - 413 , - 618 , - 3271 , - 4020 , - 2865 , - 4158 , - 3547 , - 1032 , - 965 , - 3346 , - 3823 , - 2396 , - 3417 , - 2534 , - 4099 , - 3760 , - 1517 , - 1722 , - 23 , - 772 , - 3969 , - 910 , - 299 , - 2136 , - 2069 , - 98 , - 575 , - 3500 , - 169 , - 3638 , - 851 , - 512 , - 2621 , - 2826 , - 1127 , - 1876 , - 721 , - 2014 , - 1403 , - 3240 , - 3173 , - 1202 , - 1679 , - 252 , - 1273 , - 390 , - 1955 , - 1616 , - 3725 , - 3930 , - 2231 , - 2980 , - 1825 , - 3118 , - 2507 , - 4344 , - 4277 , - 2306 , - 2783 , - 1356 , - 2377 , - 1494 , - 3059 , - 2720 , - 477 , - 682 , - 3335 , - 4084 , - 2929 , - 4222 , - 3611 , - 1096 , - 1029 , - 3410 , - 3887 , - 2460 , - 3481 , - 2598 , - 4163 , - 3824 , - 1581 , - 1786 , - 87 , - 836 , - 4033 , - 974 , - 363 , - 2200 , - 2133 , - 162 , - 639 , - 3564 , - 233 , - 3702 , - 915 , - 576 , - 2685 , - 2890 , - 1191 , - 1940 , - 785 , - 2078 , - 1467 , - 3304 , - 3237 , - 1266 , - 1743 , - 316 , - 1337 , - 454 , - 2019 , - 1680 , - 3789 , - 3994 , - 2295 , - 3044 , - 1889 , - 3182 , - 2571 , - 56 , - 4341 , - 2370 , - 2847 , - 1420 , - 2441 , - 1558 , - 3123 , - 2784 , - 541 , - 746 , - 3399 , - 4148 , - 2993 , - 4286 , - 3675 , - 1160 , - 1093 , - 3474 , - 3951 , - 2524 , - 3545 , - 2662 , - 4227 , - 3888 , - 1645 , - 1850 , - 151 , - 900 , - 4097 , - 1038 , - 427 , - 2264 , - 2197 , - 226 , - 703 , - 3628 , - 297 , - 3766 , - 979 , - 640 , - 2749 , - 2954 , - 1255 , - 2004 , - 849 , - 2142 , - 1531 , - 3368 , - 3301 , - 1330 , - 1807 , - 380 , - 1401 , - 518 , - 2083 , - 1744 , - 3853 , - 4058 , - 2359 , - 3108 , - 1953 , - 3246 , - 2635 , - 120 , - 53 , - 2434 , - 2911 , - 1484 , - 2505 , - 1622 , - 3187 , - 2848 , - 605 , - 810 , - 3463 , - 4212 , - 3057 , - 4350 , - 3739 , - 1224 , - 1157 , - 3538 , - 4015 , - 2588 , - 3609 , - 2726 , - 4291 , - 3952 , - 1709 , - 1914 , - 215 , - 964 , - 4161 , - 1102 , - 491 , - 2328 , - 2261 , - 290 , - 767 , - 3692 , - 361 , - 3830 , - 1043 , - 704 , - 2813 , - 3018 , - 1319 , - 2068 , - 913 , - 2206 , - 1595 , - 3432 , - 3365 , - 1394 , - 1871 , - 444 , - 1465 , - 582 , - 2147 , - 1808 , - 3917 , - 4122 , - 2423 , - 3172 , - 2017 , - 3310 , - 2699 , - 184 , - 117 , - 2498 , - 2975 , - 1548 , - 2569 , - 1686 , - 3251 , - 2912 , - 669 , - 874 , - 3527 , - 4276 , - 3121 , - 62 , - 3803 , - 1288 , - 1221 , - 3602 , - 4079 , - 2652 , - 3673 , - 2790 , - 3 , - 4016 , - 1773 , - 1978 , - 279 , - 1028 , - 4225 , - 1166 , - 555 , - 2392 , - 2325 , - 354 , - 831 , - 3756 , - 425 , - 3894 , - 1107 , - 768 , - 2877 , - 3082 , - 1383 , - 2132 , - 977 , - 2270 , - 1659 , - 3496 , - 3429 , - 1458 , - 1935 , - 508 , - 1529 , - 646 , - 2211 , - 1872 , - 3981 , - 4186 , - 2487 , - 3236 , - 2081 , - 3374 , - 2763 , - 248 , - 181 , - 2562 , - 3039 , - 1612 , - 2633 , - 1750 , - 3315 , - 2976 , - 733 , - 938 , - 3591 , - 4340 , - 3185 , - 126 , - 3867 , - 1352 , - 1285 , - 3666 , - 4143 , - 2716 , - 3737 , - 2854 , - 67 , - 4080 , - 1837 , - 2042 , - 343 , - 1092 , - 4289 , - 1230 , - 619 , - 2456 , - 2389 , - 418 , - 895 , - 3820 , - 489 , - 3958 , - 1171 , - 832 , - 2941 , - 3146 , - 1447 , - 2196 , - 1041 , - 2334 , - 1723 , - 3560 , - 3493 , - 1522 , - 1999 , - 572 , - 1593 , - 710 , - 2275 , - 1936 , - 4045 , - 4250 , - 2551 , - 3300 , - 2145 , - 3438 , - 2827 , - 312 , - 245 , - 2626 , - 3103 , - 1676 , - 2697 , - 1814 , - 3379 , - 3040 , - 797 , - 1002 , - 3655 , - 52 , - 3249 , - 190 , - 3931 , - 1416 , - 1349 , - 3730 , - 4207 , - 2780 , - 3801 , - 2918 , - 131 , - 4144 , - 1901 , - 2106 , - 407 , - 1156 , - 1 , - 1294 , - 683 , - 2520 , - 2453 , - 482 , - 959 , - 3884 , - 553 , - 4022 , - 1235 , - 896 , - 3005 , - 3210 , - 1511 , - 2260 , - 1105 , - 2398 , - 1787 , - 3624 , - 3557 , - 1586 , - 2063 , - 636 , - 1657 , - 774 , - 2339 , - 2000 , - 4109 , - 4314 , - 2615 , - 3364 , - 2209 , - 3502 , - 2891 , - 376 , - 309 , - 2690 , - 3167 , - 1740 , - 2761 , - 1878 , - 3443 , - 3104 , - 861 , - 1066 , - 3719 , - 116 , - 3313 , - 254 , - 3995 , - 1480 , - 1413 , - 3794 , - 4271 , - 2844 , - 3865 , - 2982 , - 195 , - 4208 , - 1965 , - 2170 , - 471 , - 1220 , - 65 , - 1358 , - 747 , - 2584 , - 2517 , - 546 , - 1023 , - 3948 , - 617 , - 4086 , - 1299 , - 960 , - 3069 , - 3274 , - 1575 , - 2324 , - 1169 , - 2462 , - 1851 , - 3688 , - 3621 , - 1650 , - 2127 , - 700 , - 1721 , - 838 , - 2403 , - 2064 , - 4173 , - 26 , - 2679 , - 3428 , - 2273 , - 3566 , - 2955 , - 440 , - 373 , - 2754 , - 3231 , - 1804 , - 2825 , - 1942 , - 3507 , - 3168 , - 925 , - 1130 , - 3783 , - 180 , - 3377 , - 318 , - 4059 , - 1544 , - 1477 , - 3858 , - 4335 , - 2908 , - 3929 , - 3046 , - 259 , - 4272 , - 2029 , - 2234 , - 535 , - 1284 , - 129 , - 1422 , - 811 , - 2648 , - 2581 , - 610 , - 1087 , - 4012 , - 681 , - 4150 , - 1363 , - 1024 , - 3133 , - 3338 , - 1639 , - 2388 , - 1233 , - 2526 , - 1915 , - 3752 , - 3685 , - 1714 , - 2191 , - 764 , - 1785 , - 902 , - 2467 , - 2128 , - 4237 , - 90 , - 2743 , - 3492 , - 2337 , - 3630 , - 3019 , - 504 , - 437 , - 2818 , - 3295 , - 1868 , - 2889 , - 2006 , - 3571 , - 3232 , - 989 , - 1194 , - 3847 , - 244 , - 3441 , - 382 , - 4123 , - 1608 , - 1541 , - 3922 , - 47 , - 2972 , - 3993 , - 3110 , - 323 , - 4336 , - 2093 , - 2298 , - 599 , - 1348 , - 193 , - 1486 , - 875 , - 2712 , - 2645 , - 674 , - 1151 , - 4076 , - 745 , - 4214 , - 1427 , - 1088 , - 3197 , - 3402 , - 1703 , - 2452 , - 1297 , - 2590 , - 1979 , - 3816 , - 3749 , - 1778 , - 2255 , - 828 , - 1849 , - 966 , - 2531 , - 2192 , - 4301 , - 154 , - 2807 , - 3556 , - 2401 , - 3694 , - 3083 , - 568 , - 501 , - 2882 , - 3359 , - 1932 , - 2953 , - 2070 , - 3635 , - 3296 , - 1053 , - 1258 , - 3911 , - 308 , - 3505 , - 446 , - 4187 , - 1672 , - 1605 , - 3986 , - 111 , - 3036 , - 4057 , - 3174 , - 387 , - 48 , - 2157 , - 2362 , - 663 , - 1412 , - 257 , - 1550 , - 939 , - 2776 , - 2709 , - 738 , - 1215 , - 4140 , - 809 , - 4278 , - 1491 , - 1152 , - 3261 , - 3466 , - 1767 , - 2516 , - 1361 , - 2654 , - 2043 , - 3880 , - 3813 , - 1842 , - 2319 , - 892 , - 1913 , - 1030 , - 2595 , - 2256 , - 13 , - 218 , - 2871 , - 3620 , - 2465 , - 3758 , - 3147 , - 632 , - 565 , - 2946 , - 3423 , - 1996 , - 3017 , - 2134 , - 3699 , - 3360 , - 1117 , - 1322 , - 3975 , - 372 , - 3569 , - 510 , - 4251 , - 1736 , - 1669 , - 4050 , - 175 , - 3100 , - 4121 , - 3238 , - 451 , - 112 , - 2221 , - 2426 , - 727 , - 1476 , - 321 , - 1614 , - 1003 , - 2840 , - 2773 , - 802 , - 1279 , - 4204 , - 873 , - 4342 , - 1555 , - 1216 , - 3325 , - 3530 , - 1831 , - 2580 , - 1425 , - 2718 , - 2107 , - 3944 , - 3877 , - 1906 , - 2383 , - 956 , - 1977 , - 1094 , - 2659 , - 2320 , - 77 , - 282 , - 2935 , - 3684 , - 2529 , - 3822 , - 3211 , - 696 , - 629 , - 3010 , - 3487 , - 2060 , - 3081 , - 2198 , - 3763 , - 3424 , - 1181 , - 1386 , - 4039 , - 436 , - 3633 , - 574 , - 4315 , - 1800 , - 1733 , - 4114 , - 239 , - 3164 , - 4185 , - 3302 , - 515 , - 176 , - 2285 , - 2490 , - 791 , - 1540 , - 385 , - 1678 , - 1067 , - 2904 , - 2837 , - 866 , - 1343 , - 4268 , - 937 , - 54 , - 1619 , - 1280 , - 3389 , - 3594 , - 1895 , - 2644 , - 1489 , - 2782 , - 2171 , - 4008 , - 3941 , - 1970 , - 2447 , - 1020 , - 2041 , - 1158 , - 2723 , - 2384 , - 141 , - 346 , - 2999 , - 3748 , - 2593 , - 3886 , - 3275 , - 760 , - 693 , - 3074 , - 3551 , - 2124 , - 3145 , - 2262 , - 3827 , - 3488 , - 1245 , - 1450 , - 4103 , - 500 , - 3697 , - 638 , - 27 , - 1864 , - 1797 , - 4178 , - 303 , - 3228 , - 4249 , - 3366 , - 579 , - 240 , - 2349 , - 2554 , - 855 , - 1604 , - 449 , - 1742 , - 1131 , - 2968 , - 2901 , - 930 , - 1407 , - 4332 , - 1001 , - 118 , - 1683 , - 1344 , - 3453 , - 3658 , - 1959 , - 2708 , - 1553 , - 2846 , - 2235 , - 4072 , - 4005 , - 2034 , - 2511 , - 1084 , - 2105 , - 1222 , - 2787 , - 2448 , - 205 , - 410 , - 3063 , - 3812 , - 2657 , - 3950 , - 3339 , - 824 , - 757 , - 3138 , - 3615 , - 2188 , - 3209 , - 2326 , - 3891 , - 3552 , - 1309 , - 1514 , - 4167 , - 564 , - 3761 , - 702 , - 91 , - 1928 , - 1861 , - 4242 , - 367 , - 3292 , - 4313 , - 3430 , - 643 , - 304 , - 2413 , - 2618 , - 919 , - 1668 , - 513 , - 1806 , - 1195 , - 3032 , - 2965 , - 994 , - 1471 , - 44 , - 1065 , - 182 , - 1747 , - 1408 , - 3517 , - 3722 , - 2023 , - 2772 , - 1617 , - 2910 , - 2299 , - 4136 , - 4069 , - 2098 , - 2575 , - 1148 , - 2169 , - 1286 , - 2851 , - 2512 , - 269 , - 474 , - 3127 , - 3876 , - 2721 , - 4014 , - 3403 , - 888 , - 821 , - 3202 , - 3679 , - 2252 , - 3273 , - 2390 , - 3955 , - 3616 , - 1373 , - 1578 , - 4231 , - 628 , - 3825 , - 766 , - 155 , - 1992 , - 1925 , - 4306 , - 431 , - 3356 , - 25 , - 3494 , - 707 , - 368 , - 2477 , - 2682 , - 983 , - 1732 , - 577 , - 1870 , - 1259 , - 3096 , - 3029 , - 1058 , - 1535 , - 108 , - 1129 , - 246 , - 1811 , - 1472 , - 3581 , - 3786 , - 2087 , - 2836 , - 1681 , - 2974 , - 2363 , - 4200 , - 4133 , - 2162 , - 2639 , - 1212 , - 2233 , - 1350 , - 2915 , - 2576 , - 333 , - 538 , - 3191 , - 3940 , - 2785 , - 4078 , - 3467 , - 952 , - 885 , - 3266 , - 3743 , - 2316 , - 3337 , - 2454 , - 4019 , - 3680 , - 1437 , - 1642 , - 4295 , - 692 , - 3889 , - 830 , - 219 , - 2056 , - 1989 , - 18 , - 495 , - 3420 , - 89 , - 3558 , - 771 , - 432 , - 2541 , - 2746 , - 1047 , - 1796 , - 641 , - 1934 , - 1323 , - 3160 , - 3093 , - 1122 , - 1599 , - 172 , - 1193 , - 310 , - 1875 , - 1536 , - 3645 , - 3850 , - 2151 , - 2900 , - 1745 , - 3038 , - 2427 , - 4264 , - 4197 , - 2226 , - 2703 , - 1276 , - 2297 , - 1414 , - 2979 , - 2640 , - 397 , - 602 , - 3255 , - 4004 , - 2849 , - 4142 , - 3531 , - 1016 , - 949 , - 3330 , - 3807 , - 2380 , - 3401 , - 2518 , - 4083 , - 3744 , - 1501 , - 1706 , - 7 , - 756 , - 3953 , - 894 , - 283 , - 2120 , - 2053 , - 82 , - 559 , - 3484 , - 153 , - 3622 , - 835 , - 496 , - 2605 , - 2810 , - 1111 , - 1860 , - 705 , - 1998 , - 1387 , - 3224 , - 3157 , - 1186 , - 1663 , - 236 , - 1257 , - 374 , - 1939 , - 1600 , - 3709 , - 3914 , - 2215 , - 2964 , - 1809 , - 3102 , - 2491 , - 4328 , - 4261 , - 2290 , - 2767 , - 1340 , - 2361 , - 1478 , - 3043 , - 2704 , - 461 , - 666 , - 3319 , - 4068 , - 2913 , - 4206 , - 3595 , - 1080 , - 1013 , - 3394 , - 3871 , - 2444 , - 3465 , - 2582 , - 4147 , - 3808 , - 1565 , - 1770 , - 71 , - 820 , - 4017 , - 958 , - 347 , - 2184 , - 2117 , - 146 , - 623 , - 3548 , - 217 , - 3686 , - 899 , - 560 , - 2669 , - 2874 , - 1175 , - 1924 , - 769 , - 2062 , - 1451 , - 3288 , - 3221 , - 1250 , - 1727 , - 300 , - 1321 , - 438 , - 2003 , - 1664 , - 3773 , - 3978 , - 2279 , - 3028 , - 1873 , - 3166 , - 2555 , - 40 , - 4325 , - 2354 , - 2831 , - 1404 , - 2425 , - 1542 , - 3107 , - 2768 , - 525 , - 730 , - 3383 , - 4132 , - 2977 , - 4270 , - 3659 , - 1144 , - 1077 , - 3458 , - 3935 , - 2508 , - 3529 , - 2646 , - 4211 , - 3872 , - 1629 , - 1834 , - 135 , - 884 , - 4081 , - 1022 , - 411 , - 2248 , - 2181 , - 210 , - 687 , - 3612 , - 281 , - 3750 , - 963 , - 624 , - 2733 , - 2938 , - 1239 , - 1988 , - 833 , - 2126 , - 1515 , - 3352 , - 3285 , - 1314 , - 1791 , - 364 , - 1385 , - 502 , - 2067 , - 1728 , - 3837 , - 4042 , - 2343 , - 3092 , - 1937 , - 3230 , - 2619 , - 104 , - 37 , - 2418 , - 2895 , - 1468 , - 2489 , - 1606 , - 3171 , - 2832 , - 589 , - 794 , - 3447 , - 4196 , - 3041 , - 4334 , - 3723 , - 1208 , - 1141 , - 3522 , - 3999 , - 2572 , - 3593 , - 2710 , - 4275 , - 3936 , - 1693 , - 1898 , - 199 , - 948 , - 4145 , - 1086 , - 475 , - 2312 , - 2245 , - 274 , - 751 , - 3676 , - 345 , - 3814 , - 1027 , - 688 , - 2797 , - 3002 , - 1303 , - 2052 , - 897 , - 2190 , - 1579 , - 3416 , - 3349 , - 1378 , - 1855 , - 428 , - 1449 , - 566 , - 2131 , - 1792 , - 3901 , - 4106 , - 2407 , - 3156 , - 2001 , - 3294 , - 2683 , - 168 , - 101 , - 2482 , - 2959 , - 1532 , - 2553 , - 1670 , - 3235 , - 2896 , - 653 , - 858 , - 3511 , - 4260 , - 3105 , - 46 , - 3787 , - 1272 , - 1205 , - 3586 , - 4063 , - 2636 , - 3657 , - 2774 , - 4339 , - 4000 , - 1757 , - 1962 , - 263 , - 1012 , - 4209 , - 1150 , - 539 , - 2376 , - 2309 , - 338 , - 815 , - 3740 , - 409 , - 3878 , - 1091 , - 752 , - 2861 , - 3066 , - 1367 , - 2116 , - 961 , - 2254 , - 1643 , - 3480 , - 3413 , - 1442 , - 1919 , - 492 , - 1513 , - 630 , - 2195 , - 1856 , - 3965 , - 4170 , - 2471 , - 3220 , - 2065 , - 3358 , - 2747 , - 232 , - 165 , - 2546 , - 3023 , - 1596 , - 2617 , - 1734 , - 3299 , - 2960 , - 717 , - 922 , - 3575 , - 4324 , - 3169 , - 110 , - 3851 , - 1336 , - 1269 , - 3650 , - 4127 , - 2700 , - 3721 , - 2838 , - 51 , - 4064 , - 1821 , - 2026 , - 327 , - 1076 , - 4273 , - 1214 , - 603 , - 2440 , - 2373 , - 402 , - 879 , - 3804 , - 473 , - 3942 , - 1155 , - 816 , - 2925 , - 3130 , - 1431 , - 2180 , - 1025 , - 2318 , - 1707 , - 3544 , - 3477 , - 1506 , - 1983 , - 556 , - 1577 , - 694 , - 2259 , - 1920 , - 4029 , - 4234 , - 2535 , - 3284 , - 2129 , - 3422 , - 2811 , - 296 , - 229 , - 2610 , - 3087 , - 1660 , - 2681 , - 1798 , - 3363 , - 3024 , - 781 , - 986 , - 3639 , - 36 , - 3233 , - 174 , - 3915 , - 1400 , - 1333 , - 3714 , - 4191 , - 2764 , - 3785 , - 2902 , - 115 , - 4128 , - 1885 , - 2090 , - 391 , - 1140 , - 4337 , - 1278 , - 667 , - 2504 , - 2437 , - 466 , - 943 , - 3868 , - 537 , - 4006 , - 1219 , - 880 , - 2989 , - 3194 , - 1495 , - 2244 , - 1089 , - 2382 , - 1771 , - 3608 , - 3541 , - 1570 , - 2047 , - 620 , - 1641 , - 758 , - 2323 , - 1984 , - 4093 , - 4298 , - 2599 , - 3348 , - 2193 , - 3486 , - 2875 , - 360 , - 293 , - 2674 , - 3151 , - 1724 , - 2745 , - 1862 , - 3427 , - 3088 , - 845 , - 1050 , - 3703 , - 100 , - 3297 , - 238 , - 3979 , - 1464 , - 1397 , - 3778 , - 4255 , - 2828 , - 3849 , - 2966 , - 179 , - 4192 , - 1949 , - 2154 , - 455 , - 1204 , - 49 , - 1342 , - 731 , - 2568 , - 2501 , - 530 , - 1007 , - 3932 , - 601 , - 4070 , - 1283 , - 944 , - 3053 , - 3258 , - 1559 , - 2308 , - 1153 , - 2446 , - 1835 , - 3672 , - 3605 , - 1634 , - 2111 , - 684 , - 1705 , - 822 , - 2387 , - 2048 , - 4157 , - 10 , - 2663 , - 3412 , - 2257 , - 3550 , - 2939 , - 424 , - 357 , - 2738 , - 3215 , - 1788 , - 2809 , - 1926 , - 3491 , - 3152 , - 909 , - 1114 , - 3767 , - 164 , - 3361 , - 302 , - 4043 , - 1528 , - 1461 , - 3842 , - 4319 , - 2892 , - 3913 , - 3030 , - 243 , - 4256 , - 2013 , - 2218 , - 519 , - 1268 , - 113 , - 1406 , - 795 , - 2632 , - 2565 , - 594 , - 1071 , - 3996 , - 665 , - 4134 , - 1347 , - 1008 , - 3117 , - 3322 , - 1623 , - 2372 , - 1217 , - 2510 , - 1899 , - 3736 , - 3669 , - 1698 , - 2175 , - 748 , - 1769 , - 886 , - 2451 , - 2112 , - 4221 , - 74 , - 2727 , - 3476 , - 2321 , - 3614 , - 3003 , - 488 , - 421 , - 2802 , - 3279 , - 1852 , - 2873 , - 1990 , - 3555 , - 3216 , - 973 , - 1178 , - 3831 , - 228 , - 3425 , - 366 , - 4107 , - 1592 , - 1525 , - 3906 , - 31 , - 2956 , - 3977 , - 3094 , - 307 , - 4320 , - 2077 , - 2282 , - 583 , - 1332 , - 177 , - 1470 , - 859 , - 2696 , - 2629 , - 658 , - 1135 , - 4060 , - 729 , - 4198 , - 1411 , - 1072 , - 3181 , - 3386 , - 1687 , - 2436 , - 1281 , - 2574 , - 1963 , - 3800 , - 3733 , - 1762 , - 2239 , - 812 , - 1833 , - 950 , - 2515 , - 2176 , - 4285 , - 138 , - 2791 , - 3540 , - 2385 , - 3678 , - 3067 , - 552 , - 485 , - 2866 , - 3343 , - 1916 , - 2937 , - 2054 , - 3619 , - 3280 , - 1037 , - 1242 , - 3895 , - 292 , - 3489 , - 430 , - 4171 , - 1656 , - 1589 , - 3970 , - 95 , - 3020 , - 4041 , - 3158 , - 371 , - 32 , - 2141 , - 2346 , - 647 , - 1396 , - 241 , - 1534 , - 923 , - 2760 , - 2693 , - 722 , - 1199 , - 4124 , - 793 , - 4262 , - 1475 , - 1136 , - 3245 , - 3450 , - 1751 , - 2500 , - 1345 , - 2638 , - 2027 , - 3864 , - 3797 , - 1826 , - 2303 , - 876 , - 1897 , - 1014 , - 2579 , - 2240 , - 4349 , - 202 , - 2855 , - 3604 , - 2449 , - 3742 , - 3131 , - 616 , - 549 , - 2930 , - 3407 , - 1980 , - 3001 , - 2118 , - 3683 , - 3344 , - 1101 , - 1306 , - 3959 , - 356 , - 3553 , - 494 , - 4235 , - 1720 , - 1653 , - 4034 , - 159 , - 3084 , - 4105 , - 3222 , - 435 , - 96 , - 2205 , - 2410 , - 711 , - 1460 , - 305 , - 1598 , - 987 , - 2824 , - 2757 , - 786 , - 1263 , - 4188 , - 857 , - 4326 , - 1539 , - 1200 , - 3309 , - 3514 , - 1815 , - 2564 , - 1409 , - 2702 , - 2091 , - 3928 , - 3861 , - 1890 , - 2367 , - 940 , - 1961 , - 1078 , - 2643 , - 2304 , - 61 , - 266 , - 2919 , - 3668 , - 2513 , - 3806 , - 3195 , - 680 , - 613 , - 2994 , - 3471 , - 2044 , - 3065 , - 2182 , - 3747 , - 3408 , - 1165 , - 1370 , - 4023 , - 420 , - 3617 , - 558 , - 4299 , - 1784 , - 1717 , - 4098 , - 223 , - 3148 , - 4169 , - 3286 , - 499 , - 160 , - 2269 , - 2474 , - 775 , - 1524 , - 369 , - 1662 , - 1051 , - 2888 , - 2821 , - 850 , - 1327 , - 4252 , - 921 , - 38 , - 1603 , - 1264 , - 3373 , - 3578 , - 1879 , - 2628 , - 1473 , - 2766 , - 2155 , - 3992 , - 3925 , - 1954 , - 2431 , - 1004 , - 2025 , - 1142 , - 2707 , - 2368 , - 125 , - 330 , - 2983 , - 3732 , - 2577 , - 3870 , - 3259 , - 744 , - 677 , - 3058 , - 3535 , - 2108 , - 3129 , - 2246 , - 3811 , - 3472 , - 1229 , - 1434 , - 4087 , - 484 , - 3681 , - 622 , - 11 , - 1848 , - 1781 , - 4162 , - 287 , - 3212 , - 4233 , - 3350 , - 563 , - 224 , - 2333 , - 2538 , - 839 , - 1588 , - 433 , - 1726 , - 1115 , - 2952 , - 2885 , - 914 , - 1391 , - 4316 , - 985 , - 102 , - 1667 , - 1328 , - 3437 , - 3642 , - 1943 , - 2692 , - 1537 , - 2830 , - 2219 , - 4056 , - 3989 , - 2018 , - 2495 , - 1068 , - 2089 , - 1206 , - 2771 , - 2432 , - 189 , - 394 , - 3047 , - 3796 , - 2641 , - 3934 , - 3323 , - 808 , - 741 , - 3122 , - 3599 , - 2172 , - 3193 , - 2310 , - 3875 , - 3536 , - 1293 , - 1498 , - 4151 , - 548 , - 3745 , - 686 , - 75 , - 1912 , - 1845 , - 4226 , - 351 , - 3276 , - 4297 , - 3414 , - 627 , - 288 , - 2397 , - 2602 , - 903 , - 1652 , - 497 , - 1790 , - 1179 , - 3016 , - 2949 , - 978 , - 1455 , - 28 , - 1049 , - 166 , - 1731 , - 1392 , - 3501 , - 3706 , - 2007 , - 2756 , - 1601 , - 2894 , - 2283 , - 4120 , - 4053 , - 2082 , - 2559 , - 1132 , - 2153 , - 1270 , - 2835 , - 2496 , - 253 , - 458 , - 3111 , - 3860 , - 2705 , - 3998 , - 3387 , - 872 , - 805 , - 3186 , - 3663 , - 2236 , - 3257 , - 2374 , - 3939 , - 3600 , - 1357 , - 1562 , - 4215 , - 612 , - 3809 , - 750 , - 139 , - 1976 , - 1909 , - 4290 , - 415 , - 3340 , - 9 , - 3478 , - 691 , - 352 , - 2461 , - 2666 , - 967 , - 1716 , - 561 , - 1854 , - 1243 , - 3080 , - 3013 , - 1042 , - 1519 , - 92 , - 1113 , - 230 , - 1795 , - 1456 , - 3565 , - 3770 , - 2071 , - 2820 , - 1665 , - 2958 , - 2347 , - 4184 , - 4117 , - 2146 , - 2623 , - 1196 , - 2217 , - 1334 , - 2899 , - 2560 , - 317 , - 522 , - 3175 , - 3924 , - 2769 , - 4062 , - 3451 , - 936 , - 869 , - 3250 , - 3727 , - 2300 , - 3321 , - 2438 , - 4003 , - 3664 , - 1421 , - 1626 , - 4279 , - 676 , - 3873 , - 814 , - 203 , - 2040 , - 1973 , - 2 , - 479 , - 3404 , - 73 , - 3542 , - 755 , - 416 , - 2525 , - 2730 , - 1031 , - 1780 , - 625 , - 1918 , - 1307 , - 3144 , - 3077 , - 1106 , - 1583 , - 156 , - 1177 , - 294 , - 1859 , - 1520 , - 3629 , - 3834 , - 2135 , - 2884 , - 1729 , - 3022 , - 2411 , - 4248 , - 4181 , - 2210 , - 2687 , - 1260 , - 2281 , - 1398 , - 2963 , - 2624 , - 381 , - 586 , - 3239 , - 3988 , - 2833 , - 4126 , - 3515 , - 1000 , - 933 , - 3314 , - 3791 , - 2364 , - 3385 , - 2502 , - 4067 , - 3728 , - 1485 , - 1690 , - 4343 , - 740 , - 3937 , - 878 , - 267 , - 2104 , - 2037 , - 66 , - 543 , - 3468 , - 137 , - 3606 , - 819 , - 480 , - 2589 , - 2794 , - 1095 , - 1844 , - 689 , - 1982 , - 1371 , - 3208 , - 3141 , - 1170 , - 1647 , - 220 , - 1241 , - 358 , - 1923 , - 1584 , - 3693 , - 3898 , - 2199 , - 2948 , - 1793 , - 3086 , - 2475 , - 4312 , - 4245 , - 2274 , - 2751 , - 1324 , - 2345 , - 1462 , - 3027 , - 2688 , - 445 , - 650 , - 3303 , - 4052 , - 2897 , - 4190 , - 3579 , - 1064 , - 997 , - 3378 , - 3855 , - 2428 , - 3449 , - 2566 , - 4131 , - 3792 , - 1549 , - 1754 , - 55 , - 804 , - 4001 , - 942 , - 331 , - 2168 , - 2101 , - 130 , - 607 , - 3532 , - 201 , - 3670 , - 883 , - 544 , - 2653 , - 2858 , - 1159 , - 1908 , - 753 , - 2046 , - 1435 , - 3272 , - 3205 , - 1234 , - 1711 , - 284 , - 1305 , - 422 , - 1987 , - 1648 , - 3757 , - 3962 , - 2263 , - 3012 , - 1857 , - 3150 , - 2539 , - 24 , - 4309 , - 2338 , - 2815 , - 1388 , - 2409 , - 1526 , - 3091 , - 2752 , - 509 , - 714 , - 3367 , - 4116 , - 2961 , - 4254 , - 3643 , - 1128 , - 1061 , - 3442 , - 3919 , - 2492 , - 3513 , - 2630 , - 4195 , - 3856 , - 1613 , - 1818 , - 119 , - 868 , - 4065 , - 1006 , - 395 , - 2232 , - 2165 , - 194 , - 671 , - 3596 , - 265 , - 3734 , - 947 , - 608 , - 2717 , - 2922 , - 1223 , - 1972 , - 817 , - 2110 , - 1499 , - 3336 , - 3269 , - 1298 , - 1775 , - 348 , - 1369 , - 486 , - 2051 , - 1712 , - 3821 , - 4026 , - 2327 , - 3076 , - 1921 , - 3214 , - 2603 , - 88 , - 21 , - 2402 , - 2879 , - 1452 , - 2473 , - 1590 , - 3155 , - 2816 , - 573 , - 778 , - 3431 , - 4180 , - 3025 , - 4318 , - 3707 , - 1192 , - 1125 , - 3506 , - 3983 , - 2556 , - 3577 , - 2694 , - 4259 , - 3920 , - 1677 , - 1882 , - 183 , - 932 , - 4129 , - 1070 , - 459 , - 2296 , - 2229 , - 258 , - 735 , - 3660 , - 329 , - 3798 , - 1011 , - 672 , - 2781 , - 2986 , - 1287 , - 2036 , - 881 , - 2174 , - 1563 , - 3400 , - 3333 , - 1362 , - 1839 , - 412 , - 1433 , - 550 , - 2115 , - 1776 , - 3885 , - 4090 , - 2391 , - 3140 , - 1985 , - 3278 , - 2667 , - 152 , - 85 , - 2466 , - 2943 , - 1516 , - 2537 , - 1654 , - 3219 , - 2880 , - 637 , - 842 , - 3495 , - 4244 , - 3089 , - 30 , - 3771 , - 1256 , - 1189 , - 3570 , - 4047 , - 2620 , - 3641 , - 2758 , - 4323 , - 3984 , - 1741 , - 1946 , - 247 , - 996 , - 4193 , - 1134 , - 523 , - 2360 , - 2293 , - 322 , - 799 , - 3724 , - 393 , - 3862 , - 1075 , - 736 , - 2845 , - 3050 , - 1351 , - 2100 , - 945 , - 2238 , - 1627 , - 3464 , - 3397 , - 1426 , - 1903 , - 476 , - 1497 , - 614 , - 2179 , - 1840 , - 3949 , - 4154 , - 2455 , - 3204 , - 2049 , - 3342 , - 2731 , - 216 , - 149 , - 2530 , - 3007 , - 1580 , - 2601 , - 1718 , - 3283 , - 2944 , - 701 , - 906 , - 3559 , - 4308 , - 3153 , - 94 , - 3835 , - 1320 , - 1253 , - 3634 , - 4111 , - 2684 , - 3705 , - 2822 , - 35 , - 4048 , - 1805 , - 2010 , - 311 , - 1060 , - 4257 , - 1198 , - 587 , - 2424 , - 2357 , - 386 , - 863 , - 3788 , - 457 , - 3926 , - 1139 , - 800 , - 2909 , - 3114 , - 1415 , - 2164 , - 1009 , - 2302 , - 1691 , - 3528 , - 3461 , - 1490 , - 1967 , - 540 , - 1561 , - 678 , - 2243 , - 1904 , - 4013 , - 4218 , - 2519 , - 3268 , - 2113 , - 3406 , - 2795 , - 280 , - 213 , - 2594 , - 3071 , - 1644 , - 2665 , - 1782 , - 3347 , - 3008 , - 765 , - 970 , - 3623 , - 20 , - 3217 , - 158 , - 3899 , - 1384 , - 1317 , - 3698 , - 4175 , - 2748 , - 3769 , - 2886 , - 99 , - 4112 , - 1869 , - 2074 , - 375 , - 1124 , - 4321 , - 1262 , - 651 , - 2488 , - 2421 , - 450 , - 927 , - 3852 , - 521 , - 3990 , - 1203 , - 864 , - 2973 , - 3178 , - 1479 , - 2228 , - 1073 , - 2366 , - 1755 , - 3592 , - 3525 , - 1554 , - 2031 , - 604 , - 1625 , - 742 , - 2307 , - 1968 , - 4077 , - 4282 , - 2583 , - 3332 , - 2177 , - 3470 , - 2859 , - 344 , - 277 , - 2658 , - 3135 , - 1708 , - 2729 , - 1846 , - 3411 , - 3072 , - 829 , - 1034 , - 3687 , - 84 , - 3281 , - 222 , - 3963 , - 1448 , - 1381 , - 3762 , - 4239 , - 2812 , - 3833 , - 2950 , - 163 , - 4176 , - 1933 , - 2138 , - 439 , - 1188 , - 33 , - 1326 , - 715 , - 2552 , - 2485 , - 514 , - 991 , - 3916 , - 585 , - 4054 , - 1267 , - 928 , - 3037 , - 3242 , - 1543 , - 2292 , - 1137 , - 2430 , - 1819 , - 3656 , - 3589 , - 1618 , - 2095 , - 668 , - 1689 , - 806 , - 2371 , - 2032 , - 4141 , - 4346 , - 2647 , - 3396 , - 2241 , - 3534 , - 2923 , - 408 , - 341 , - 2722 , - 3199 , - 1772 , - 2793 , - 1910 , - 3475 , - 3136 , - 893 , - 1098 , - 3751 , - 148 , - 3345 , - 286 , - 4027 , - 1512 , - 1445 , - 3826 , - 4303 , - 2876 , - 3897 , - 3014 , - 227 , - 4240 , - 1997 , - 2202 , - 503 , - 1252 , - 97 , - 1390 , - 779 , - 2616 , - 2549 , - 578 , - 1055 , - 3980 , - 649 , - 4118 , - 1331 , - 992 , - 3101 , - 3306 , - 1607 , - 2356 , - 1201 , - 2494 , - 1883 , - 3720 , - 3653 , - 1682 , - 2159 , - 732 , - 1753 , - 870 , - 2435 , - 2096 , - 4205 , - 58 , - 2711 , - 3460 , - 2305 , - 3598 , - 2987 , - 472 , - 405 , - 2786 , - 3263 , - 1836 , - 2857 , - 1974 , - 3539 , - 3200 , - 957 , - 1162 , - 3815 , - 212 , - 3409 , - 350 , - 4091 , - 1576 , - 1509 , - 3890 , - 15 , - 2940 , - 3961 , - 3078 , - 291 , - 4304 , - 2061 , - 2266 , - 567 , - 1316 , - 161 , - 1454 , - 843 , - 2680 , - 2613 , - 642 , - 1119 , - 4044 , - 713 , - 4182 , - 1395 , - 1056 , - 3165 , - 3370 , - 1671 , - 2420 , - 1265 , - 2558 , - 1947 , - 3784 , - 3717 , - 1746 , - 2223 , - 796 , - 1817 , - 934 , - 2499 , - 2160 , - 4269 , - 122 , - 2775 , - 3524 , - 2369 , - 3662 , - 3051 , - 536 , - 469 , - 2850 , - 3327 , - 1900 , - 2921 , - 2038 , - 3603 , - 3264 , - 1021 , - 1226 , - 3879 , - 276 , - 3473 , - 414 , - 4155 , - 1640 , - 1573 , - 3954 , - 79 , - 3004 , - 4025 , - 3142 , - 355 , - 16 , - 2125 , - 2330 , - 631 , - 1380 , - 225 , - 1518 , - 907 , - 2744 , - 2677 , - 706 , - 1183 , - 4108 , - 777 , - 4246 , - 1459 , - 1120 , - 3229 , - 3434 , - 1735 , - 2484 , - 1329 , - 2622 , - 2011 , - 3848 , - 3781 , - 1810 , - 2287 , - 860 , - 1881 , - 998 , - 2563 , - 2224 , - 4333 , - 186 , - 2839 , - 3588 , - 2433 , - 3726 , - 3115 , - 600 , - 533 , - 2914 , - 3391 , - 1964 , - 2985 , - 2102 , - 3667 , - 3328 , - 1085 , - 1290 , - 3943 , - 340 , - 3537 , - 478 , - 4219 , - 1704 , - 1637 , - 4018 , - 143 , - 3068 , - 4089 , - 3206 , - 419 , - 80 , - 2189 , - 2394 , - 695 , - 1444 , - 289 , - 1582 , - 971 , - 2808 , - 2741 , - 770 , - 1247 , - 4172 , - 841 , - 4310 , - 1523 , - 1184 , - 3293 , - 3498 , - 1799 , - 2548 , - 1393 , - 2686 , - 2075 , - 3912 , - 3845 , - 1874 , - 2351 , - 924 , - 1945 , - 1062 , - 2627 , - 2288 , - 45 , - 250 , - 2903 , - 3652 , - 2497 , - 3790 , - 3179 , - 664 , - 597 , - 2978 , - 3455 , - 2028 , - 3049 , - 2166 , - 3731 , - 3392 , - 1149 , - 1354 , - 4007 , - 404 , - 3601 , - 542 , - 4283 , - 1768 , - 1701 , - 4082 , - 207 , - 3132 , - 4153 , - 3270 , - 483 , - 144 , - 2253 , - 2458 , - 759 , - 1508 , - 353 , - 1646 , - 1035 , - 2872 , - 2805 , - 834 , - 1311 , - 4236 , - 905 , - 22 , - 1587 , - 1248 , - 3357 , - 3562 , - 1863 , - 2612 , - 1457 , - 2750 , - 2139 , - 3976 , - 3909 , - 1938 , - 2415 , - 988 , - 2009 , - 1126 , - 2691 , - 2352 , - 109 , - 314 , - 2967 , - 3716 , - 2561 , - 3854 , - 3243 , - 728 , - 661 , - 3042 , - 3519 , - 2092 , - 3113 , - 2230 , - 3795 , - 3456 , - 1213 , - 1418 , - 4071 , - 468 , - 3665 , - 606 , - 4347 , - 1832 , - 1765 , - 4146 , - 271 , - 3196 , - 4217 , - 3334 , - 547 , - 208 , - 2317 , - 2522 , - 823 , - 1572 , - 417 , - 1710 , - 1099 , - 2936 , - 2869 , - 898 , - 1375 , - 4300 , - 969 , - 86 , - 1651 , - 1312 , - 3421 , - 3626 , - 1927 , - 2676 , - 1521 , - 2814 , - 2203 , - 4040 , - 3973 , - 2002 , - 2479 , - 1052 , - 2073 , - 1190 , - 2755 , - 2416 , - 173 , - 378 , - 3031 , - 3780 , - 2625 , - 3918 , - 3307 , - 792 , - 725 , - 3106 , - 3583 , - 2156 , - 3177 , - 2294 , - 3859 , - 3520 , - 1277 , - 1482 , - 4135 , - 532 , - 3729 , - 670 , - 59 , - 1896 , - 1829 , - 4210 , - 335 , - 3260 , - 4281 , - 3398 , - 611 , - 272 , - 2381 , - 2586 , - 887 , - 1636 , - 481 , - 1774 , - 1163 , - 3000 , - 2933 , - 962 , - 1439 , - 12 , - 1033 , - 150 , - 1715 , - 1376 , - 3485 , - 3690 , - 1991 , - 2740 , - 1585 , - 2878 , - 2267 , - 4104 , - 4037 , - 2066 , - 2543 , - 1116 , - 2137 , - 1254 , - 2819 , - 2480 , - 237 , - 442 , - 3095 , - 3844 , - 2689 , - 3982 , - 3371 , - 856 , - 789 , - 3170 , - 3647 , - 2220 , - 3241 , - 2358 , - 3923 , - 3584 , - 1341 , - 1546 , - 4199 , - 596 , - 3793 , - 734 , - 123 , - 1960 , - 1893 , - 4274 , - 399 , - 3324 , - 4345 , - 3462 , - 675 , - 336 , - 2445 , - 2650 , - 951 , - 1700 , - 545 , - 1838 , - 1227 , - 3064 , - 2997 , - 1026 , - 1503 , - 76 , - 1097 , - 214 , - 1779 , - 1440 , - 3549 , - 3754 , - 2055 , - 2804 , - 1649 , - 2942 , - 2331 , - 4168 , - 4101 , - 2130 , - 2607 , - 1180 , - 2201 , - 1318 , - 2883 , - 2544 , - 301 , - 506 , - 3159 , - 3908 , - 2753 , - 4046 , - 3435 , - 920 , - 853 , - 3234 , - 3711 , - 2284 , - 3305 , - 2422 , - 3987 , - 3648 , - 1405 , - 1610 , - 4263 , - 660 , - 3857 , - 798 , - 187 , - 2024 , - 1957 , - 4338 , - 463 , - 3388 , - 57 , - 3526 , - 739 , - 400 , - 2509 , - 2714 , - 1015 , - 1764 , - 609 , - 1902 , - 1291 , - 3128 , - 3061 , - 1090 , - 1567 , - 140 , - 1161 , - 278 , - 1843 , - 1504 , - 3613 , - 3818 , - 2119 , - 2868 , - 1713 , - 3006 , - 2395 , - 4232 , - 4165 , - 2194 , - 2671 , - 1244 , - 2265 , - 1382 , - 2947 , - 2608 , - 365 , - 570 , - 3223 , - 3972 , - 2817 , - 4110 , - 3499 , - 984 , - 917 , - 3298 , - 3775 , - 2348 , - 3369 , - 2486 , - 4051 , - 3712 , - 1469 , - 1674 , - 4327 , - 724 , - 3921 , - 862 , - 251 , - 2088 , - 2021 , - 50 , - 527 , - 3452 , - 121 , - 3590 , - 803 , - 464 , - 2573 , - 2778 , - 1079 , - 1828 , - 673 , - 1966 , - 1355 , - 3192 , - 3125 , - 1154 , - 1631 , - 204 , - 1225 , - 342 , - 1907 , - 1568 , - 3677 , - 3882 , - 2183 , - 2932 , - 1777 , - 3070 , - 2459 , - 4296 , - 4229 , - 2258 , - 2735 , - 1308 , - 2329 , - 1446 , - 3011 , - 2672 , - 429 , - 634 , - 3287 , - 4036 , - 2881 , - 4174 , - 3563 , - 1048 , - 981 , - 3362 , - 3839 , - 2412 , - 3433 , - 2550 , - 4115 , - 3776 , - 1533 , - 1738 , - 39 , - 788 , - 3985 , - 926 , - 315 , - 2152 , - 2085 , - 114 , - 591 , - 3516 , - 185 , - 3654 , - 867 , - 528 , - 2637 , - 2842 , - 1143 , - 1892 , - 737 , - 2030 , - 1419 , - 3256 , - 3189 , - 1218 , - 1695 , - 268 , - 1289 , - 406 , - 1971 , - 1632 , - 3741 , - 3946 , - 2247 , - 2996 , - 1841 , - 3134 , - 2523 , - 8 , - 4293 , - 2322 , - 2799 , - 1372 , - 2393 , - 1510 , - 3075 , - 2736 , - 493 , - 698 , - 3351 , - 4100 , - 2945 , - 4238 , - 3627 , - 1112 , - 1045 , - 3426 , - 3903 , - 2476 , - 3497 , - 2614 , - 4179 , - 3840 , - 1597 , - 1802 , - 103 , - 852 , - 4049 , - 990 , - 379 , - 2216 , - 2149 , - 178 , - 655 , - 3580 , - 249 , - 3718 , - 931 , - 592 , - 2701 , - 2906 , - 1207 , - 1956 , - 801 , - 2094 , - 1483 , - 3320 , - 3253 , - 1282 , - 1759 , - 332 , - 1353 , - 470 , - 2035 , - 1696 , - 3805 , - 4010 , - 2311 , - 3060 , - 1905 , - 3198 , - 2587 , - 72 , - 5 , - 2386 , - 2863 , - 1436 , - 2457 , - 1574 , - 3139 , - 2800 , - 557 , - 762 , - 3415 , - 4164 , - 3009 , - 4302 , - 3691 , - 1176 , - 1109 , - 3490 , - 3967 , - 2540 , - 3561 , - 2678 , - 4243 , - 3904 , - 1661 , - 1866 , - 167 , - 916 , - 4113 , - 1054 , - 443 , - 2280 , - 2213 , - 242 , - 719 , - 3644 , - 313 , - 3782 , - 995 , - 656 , - 2765 , - 2970 , - 1271 , - 2020 , - 865 , - 2158 , - 1547 , - 3384 , - 3317 , - 1346 , - 1823 , - 396 , - 1417 , - 534 , - 2099 , - 1760 , - 3869 , - 4074 , - 2375 , - 3124 , - 1969 , - 3262 , - 2651 , - 136 , - 69 , - 2450 , - 2927 , - 1500 , - 2521 , - 1638 , - 3203 , - 2864 , - 621 , - 826 , - 3479 , - 4228 , - 3073 , - 14 , - 3755 , - 1240 , - 1173 , - 3554 , - 4031 , - 2604 , - 3625 , - 2742 , - 4307 , - 3968 , - 1725 , - 1930 , - 231 , - 980 , - 4177 , - 1118 , - 507 , - 2344 , - 2277 , - 306 , - 783 , - 3708 , - 377 , - 3846 , - 1059 , - 720 , - 2829 , - 3034 , - 1335 , - 2084 , - 929 , - 2222 , - 1611 , - 3448 , - 3381 , - 1410 , - 1887 , - 460 , - 1481 , - 598 , - 2163 , - 1824 , - 3933 , - 4138 , - 2439 , - 3188 , - 2033 , - 3326 , - 2715 , - 200 , - 133 , - 2514 , - 2991 , - 1564 , - 2585 , - 1702 , - 3267 , - 2928 , - 685 , - 890 , - 3543 , - 4292 , - 3137 , - 78 , - 3819 , - 1304 , - 1237 , - 3618 , - 4095 , - 2668 , - 3689 , - 2806 , - 19 , - 4032 , - 1789 , - 1994 , - 295 , - 1044 , - 4241 , - 1182 , - 571 , - 2408 , - 2341 , - 370 , - 847 , - 3772 , - 441 , - 3910 , - 1123 , - 784 , - 2893 , - 3098 , - 1399 , - 2148 , - 993 , - 2286 , - 1675 , - 3512 , - 3445 , - 1474 , - 1951 , - 524 , - 1545 , - 662 , - 2227 , - 1888 , - 3997 , - 4202 , - 2503 , - 3252 , - 2097 , - 3390 , - 2779 , - 264 , - 197 , - 2578 , - 3055 , - 1628 , - 2649 , - 1766 , - 3331 , - 2992 , - 749 , - 954 , - 3607 , - 4 , - 3201 , - 142 , - 3883 , - 1368 , - 1301 , - 3682 , - 4159 , - 2732 , - 3753 , - 2870 , - 83 , - 4096 , - 1853 , - 2058 , - 359 , - 1108 , - 4305 , - 1246 , - 635 , - 2472 , - 2405 , - 434 , - 911 , - 3836 , - 505 , - 3974 , - 1187 , - 848 , - 2957 , - 3162 , - 1463 , - 2212 , - 1057 , - 2350 , - 1739 , - 3576 , - 3509 , - 1538 , - 2015 , - 588 , - 1609 , - 726 , - 2291 , - 1952 , - 4061 , - 4266 , - 2567 , - 3316 , - 2161 , - 3454 , - 2843 , - 328 , - 261 , - 2642 , - 3119 , - 1692 , - 2713 , - 1830 , - 3395 , - 3056 , - 813 , - 1018 , - 3671 , - 68 , - 3265 , - 206 , - 3947 , - 1432 , - 1365 , - 3746 , - 4223 , - 2796 , - 3817 , - 2934 , - 147 , - 4160 , - 1917 , - 2122 , - 423 , - 1172 , - 17 , - 1310 , - 699 , - 2536 , - 2469 , - 498 , - 975 , - 3900 , - 569 , - 4038 , - 1251 , - 912 , - 3021 , - 3226 , - 1527 , - 2276 , - 1121 , - 2414 , - 1803 , - 3640 , - 3573 , - 1602 , - 2079 , - 652 , - 1673 , - 790 , - 2355 , - 2016 , - 4125 , - 4330 , - 2631 , - 3380 , - 2225 , - 3518 , - 2907 , - 392 , - 325 , - 2706 , - 3183 , - 1756 , - 2777 , - 1894 , - 3459 , - 3120 , - 877 , - 1082 , - 3735 , - 132 , - 3329 , - 270 , - 4011 , - 1496 , - 1429 , - 3810 , - 4287 , - 2860 , - 3881 , - 2998 , - 211 , - 4224 , - 1981 , - 2186 , - 487 , - 1236 , - 81 , - 1374 , - 763 , - 2600 , - 2533 , - 562 , - 1039 , - 3964 , - 633 , - 4102 , - 1315 , - 976 , - 3085 , - 3290 , - 1591 , - 2340 , - 1185 , - 2478 , - 1867 , - 3704 , - 3637 , - 1666 , - 2143 , - 716 , - 1737 , - 854 , - 2419 , - 2080 , - 4189 , - 42 , - 2695 , - 3444 , - 2289 , - 3582 , - 2971 , - 456 , - 389 , - 2770 , - 3247 , - 1820 , - 2841 , - 1958 , - 3523 , - 3184 , - 941 , - 1146 , - 3799 , - 196 , - 3393 , - 334 , - 4075 , - 1560 , - 1493 , - 3874 , - 4351 , - 2924 , - 3945 , - 3062 , - 275 , - 4288 , - 2045 , - 2250 , - 551 , - 1300 , - 145 , - 1438 , - 827 , - 2664 , - 2597 , - 626 , - 1103 , - 4028 , - 697 , - 4166 , - 1379 , - 1040 , - 3149 , - 3354 , - 1655 , - 2404 , - 1249 , - 2542 , - 1931 , - 3768 , - 3701 , - 1730 , - 2207 , - 780 , - 1801 , - 918 , - 2483 , - 2144 , - 4253 , - 106 , - 2759 , - 3508 , - 2353 , - 3646 , - 3035 , - 520 , - 453 , - 2834 , - 3311 , - 1884 , - 2905 , - 2022 , - 3587 , - 3248 , - 1005 , - 1210 , - 3863 , - 260 , - 3457 , - 398 , - 4139 , - 1624 , - 1557 , - 3938 , - 63 , - 2988 , - 4009 , - 3126 , - 339 , - 0 , - 3245 , - 1246 , - 1731 , - 3596 , - 1321 , - 2634 , - 2015 , - 2776 , - 3813 , - 4022 , - 2299 , - 1956 , - 1889 , - 994 , - 2583 , - 1136 , - 4381 , - 2382 , - 2867 , - 316 , - 2457 , - 3770 , - 3151 , - 3912 , - 533 , - 742 , - 3435 , - 3092 , - 3025 , - 2130 , - 3719 , - 2272 , - 1101 , - 3518 , - 4003 , - 1452 , - 3593 , - 490 , - 4287 , - 632 , - 1669 , - 1878 , - 155 , - 4228 , - 4161 , - 3266 , - 439 , - 3408 , - 2237 , - 238 , - 723 , - 2588 , - 313 , - 1626 , - 1007 , - 1768 , - 2805 , - 3014 , - 1291 , - 948 , - 881 , - 4402 , - 1575 , - 128 , - 3373 , - 1374 , - 1859 , - 3724 , - 1449 , - 2762 , - 2143 , - 2904 , - 3941 , - 4150 , - 2427 , - 2084 , - 2017 , - 1122 , - 2711 , - 1264 , - 93 , - 2510 , - 2995 , - 444 , - 2585 , - 3898 , - 3279 , - 4040 , - 661 , - 870 , - 3563 , - 3220 , - 3153 , - 2258 , - 3847 , - 2400 , - 1229 , - 3646 , - 4131 , - 1580 , - 3721 , - 618 , - 4415 , - 760 , - 1797 , - 2006 , - 283 , - 4356 , - 4289 , - 3394 , - 567 , - 3536 , - 2365 , - 366 , - 851 , - 2716 , - 441 , - 1754 , - 1135 , - 1896 , - 2933 , - 3142 , - 1419 , - 1076 , - 1009 , - 114 , - 1703 , - 256 , - 3501 , - 1502 , - 1987 , - 3852 , - 1577 , - 2890 , - 2271 , - 3032 , - 4069 , - 4278 , - 2555 , - 2212 , - 2145 , - 1250 , - 2839 , - 1392 , - 221 , - 2638 , - 3123 , - 572 , - 2713 , - 4026 , - 3407 , - 4168 , - 789 , - 998 , - 3691 , - 3348 , - 3281 , - 2386 , - 3975 , - 2528 , - 1357 , - 3774 , - 4259 , - 1708 , - 3849 , - 746 , - 127 , - 888 , - 1925 , - 2134 , - 411 , - 68 , - 1 , - 3522 , - 695 , - 3664 , - 2493 , - 494 , - 979 , - 2844 , - 569 , - 1882 , - 1263 , - 2024 , - 3061 , - 3270 , - 1547 , - 1204 , - 1137 , - 242 , - 1831 , - 384 , - 3629 , - 1630 , - 2115 , - 3980 , - 1705 , - 3018 , - 2399 , - 3160 , - 4197 , - 4406 , - 2683 , - 2340 , - 2273 , - 1378 , - 2967 , - 1520 , - 349 , - 2766 , - 3251 , - 700 , - 2841 , - 4154 , - 3535 , - 4296 , - 917 , - 1126 , - 3819 , - 3476 , - 3409 , - 2514 , - 4103 , - 2656 , - 1485 , - 3902 , - 4387 , - 1836 , - 3977 , - 874 , - 255 , - 1016 , - 2053 , - 2262 , - 539 , - 196 , - 129 , - 3650 , - 823 , - 3792 , - 2621 , - 622 , - 1107 , - 2972 , - 697 , - 2010 , - 1391 , - 2152 , - 3189 , - 3398 , - 1675 , - 1332 , - 1265 , - 370 , - 1959 , - 512 , - 3757 , - 1758 , - 2243 , - 4108 , - 1833 , - 3146 , - 2527 , - 3288 , - 4325 , - 118 , - 2811 , - 2468 , - 2401 , - 1506 , - 3095 , - 1648 , - 477 , - 2894 , - 3379 , - 828 , - 2969 , - 4282 , - 3663 , - 8 , - 1045 , - 1254 , - 3947 , - 3604 , - 3537 , - 2642 , - 4231 , - 2784 , - 1613 , - 4030 , - 99 , - 1964 , - 4105 , - 1002 , - 383 , - 1144 , - 2181 , - 2390 , - 667 , - 324 , - 257 , - 3778 , - 951 , - 3920 , - 2749 , - 750 , - 1235 , - 3100 , - 825 , - 2138 , - 1519 , - 2280 , - 3317 , - 3526 , - 1803 , - 1460 , - 1393 , - 498 , - 2087 , - 640 , - 3885 , - 1886 , - 2371 , - 4236 , - 1961 , - 3274 , - 2655 , - 3416 , - 37 , - 246 , - 2939 , - 2596 , - 2529 , - 1634 , - 3223 , - 1776 , - 605 , - 3022 , - 3507 , - 956 , - 3097 , - 4410 , - 3791 , - 136 , - 1173 , - 1382 , - 4075 , - 3732 , - 3665 , - 2770 , - 4359 , - 2912 , - 1741 , - 4158 , - 227 , - 2092 , - 4233 , - 1130 , - 511 , - 1272 , - 2309 , - 2518 , - 795 , - 452 , - 385 , - 3906 , - 1079 , - 4048 , - 2877 , - 878 , - 1363 , - 3228 , - 953 , - 2266 , - 1647 , - 2408 , - 3445 , - 3654 , - 1931 , - 1588 , - 1521 , - 626 , - 2215 , - 768 , - 4013 , - 2014 , - 2499 , - 4364 , - 2089 , - 3402 , - 2783 , - 3544 , - 165 , - 374 , - 3067 , - 2724 , - 2657 , - 1762 , - 3351 , - 1904 , - 733 , - 3150 , - 3635 , - 1084 , - 3225 , - 122 , - 3919 , - 264 , - 1301 , - 1510 , - 4203 , - 3860 , - 3793 , - 2898 , - 71 , - 3040 , - 1869 , - 4286 , - 355 , - 2220 , - 4361 , - 1258 , - 639 , - 1400 , - 2437 , - 2646 , - 923 , - 580 , - 513 , - 4034 , - 1207 , - 4176 , - 3005 , - 1006 , - 1491 , - 3356 , - 1081 , - 2394 , - 1775 , - 2536 , - 3573 , - 3782 , - 2059 , - 1716 , - 1649 , - 754 , - 2343 , - 896 , - 4141 , - 2142 , - 2627 , - 76 , - 2217 , - 3530 , - 2911 , - 3672 , - 293 , - 502 , - 3195 , - 2852 , - 2785 , - 1890 , - 3479 , - 2032 , - 861 , - 3278 , - 3763 , - 1212 , - 3353 , - 250 , - 4047 , - 392 , - 1429 , - 1638 , - 4331 , - 3988 , - 3921 , - 3026 , - 199 , - 3168 , - 1997 , - 4414 , - 483 , - 2348 , - 73 , - 1386 , - 767 , - 1528 , - 2565 , - 2774 , - 1051 , - 708 , - 641 , - 4162 , - 1335 , - 4304 , - 3133 , - 1134 , - 1619 , - 3484 , - 1209 , - 2522 , - 1903 , - 2664 , - 3701 , - 3910 , - 2187 , - 1844 , - 1777 , - 882 , - 2471 , - 1024 , - 4269 , - 2270 , - 2755 , - 204 , - 2345 , - 3658 , - 3039 , - 3800 , - 421 , - 630 , - 3323 , - 2980 , - 2913 , - 2018 , - 3607 , - 2160 , - 989 , - 3406 , - 3891 , - 1340 , - 3481 , - 378 , - 4175 , - 520 , - 1557 , - 1766 , - 43 , - 4116 , - 4049 , - 3154 , - 327 , - 3296 , - 2125 , - 126 , - 611 , - 2476 , - 201 , - 1514 , - 895 , - 1656 , - 2693 , - 2902 , - 1179 , - 836 , - 769 , - 4290 , - 1463 , - 16 , - 3261 , - 1262 , - 1747 , - 3612 , - 1337 , - 2650 , - 2031 , - 2792 , - 3829 , - 4038 , - 2315 , - 1972 , - 1905 , - 1010 , - 2599 , - 1152 , - 4397 , - 2398 , - 2883 , - 332 , - 2473 , - 3786 , - 3167 , - 3928 , - 549 , - 758 , - 3451 , - 3108 , - 3041 , - 2146 , - 3735 , - 2288 , - 1117 , - 3534 , - 4019 , - 1468 , - 3609 , - 506 , - 4303 , - 648 , - 1685 , - 1894 , - 171 , - 4244 , - 4177 , - 3282 , - 455 , - 3424 , - 2253 , - 254 , - 739 , - 2604 , - 329 , - 1642 , - 1023 , - 1784 , - 2821 , - 3030 , - 1307 , - 964 , - 897 , - 2 , - 1591 , - 144 , - 3389 , - 1390 , - 1875 , - 3740 , - 1465 , - 2778 , - 2159 , - 2920 , - 3957 , - 4166 , - 2443 , - 2100 , - 2033 , - 1138 , - 2727 , - 1280 , - 109 , - 2526 , - 3011 , - 460 , - 2601 , - 3914 , - 3295 , - 4056 , - 677 , - 886 , - 3579 , - 3236 , - 3169 , - 2274 , - 3863 , - 2416 , - 1245 , - 3662 , - 4147 , - 1596 , - 3737 , - 634 , - 15 , - 776 , - 1813 , - 2022 , - 299 , - 4372 , - 4305 , - 3410 , - 583 , - 3552 , - 2381 , - 382 , - 867 , - 2732 , - 457 , - 1770 , - 1151 , - 1912 , - 2949 , - 3158 , - 1435 , - 1092 , - 1025 , - 130 , - 1719 , - 272 , - 3517 , - 1518 , - 2003 , - 3868 , - 1593 , - 2906 , - 2287 , - 3048 , - 4085 , - 4294 , - 2571 , - 2228 , - 2161 , - 1266 , - 2855 , - 1408 , - 237 , - 2654 , - 3139 , - 588 , - 2729 , - 4042 , - 3423 , - 4184 , - 805 , - 1014 , - 3707 , - 3364 , - 3297 , - 2402 , - 3991 , - 2544 , - 1373 , - 3790 , - 4275 , - 1724 , - 3865 , - 762 , - 143 , - 904 , - 1941 , - 2150 , - 427 , - 84 , - 17 , - 3538 , - 711 , - 3680 , - 2509 , - 510 , - 995 , - 2860 , - 585 , - 1898 , - 1279 , - 2040 , - 3077 , - 3286 , - 1563 , - 1220 , - 1153 , - 258 , - 1847 , - 400 , - 3645 , - 1646 , - 2131 , - 3996 , - 1721 , - 3034 , - 2415 , - 3176 , - 4213 , - 6 , - 2699 , - 2356 , - 2289 , - 1394 , - 2983 , - 1536 , - 365 , - 2782 , - 3267 , - 716 , - 2857 , - 4170 , - 3551 , - 4312 , - 933 , - 1142 , - 3835 , - 3492 , - 3425 , - 2530 , - 4119 , - 2672 , - 1501 , - 3918 , - 4403 , - 1852 , - 3993 , - 890 , - 271 , - 1032 , - 2069 , - 2278 , - 555 , - 212 , - 145 , - 3666 , - 839 , - 3808 , - 2637 , - 638 , - 1123 , - 2988 , - 713 , - 2026 , - 1407 , - 2168 , - 3205 , - 3414 , - 1691 , - 1348 , - 1281 , - 386 , - 1975 , - 528 , - 3773 , - 1774 , - 2259 , - 4124 , - 1849 , - 3162 , - 2543 , - 3304 , - 4341 , - 134 , - 2827 , - 2484 , - 2417 , - 1522 , - 3111 , - 1664 , - 493 , - 2910 , - 3395 , - 844 , - 2985 , - 4298 , - 3679 , - 24 , - 1061 , - 1270 , - 3963 , - 3620 , - 3553 , - 2658 , - 4247 , - 2800 , - 1629 , - 4046 , - 115 , - 1980 , - 4121 , - 1018 , - 399 , - 1160 , - 2197 , - 2406 , - 683 , - 340 , - 273 , - 3794 , - 967 , - 3936 , - 2765 , - 766 , - 1251 , - 3116 , - 841 , - 2154 , - 1535 , - 2296 , - 3333 , - 3542 , - 1819 , - 1476 , - 1409 , - 514 , - 2103 , - 656 , - 3901 , - 1902 , - 2387 , - 4252 , - 1977 , - 3290 , - 2671 , - 3432 , - 53 , - 262 , - 2955 , - 2612 , - 2545 , - 1650 , - 3239 , - 1792 , - 621 , - 3038 , - 3523 , - 972 , - 3113 , - 10 , - 3807 , - 152 , - 1189 , - 1398 , - 4091 , - 3748 , - 3681 , - 2786 , - 4375 , - 2928 , - 1757 , - 4174 , - 243 , - 2108 , - 4249 , - 1146 , - 527 , - 1288 , - 2325 , - 2534 , - 811 , - 468 , - 401 , - 3922 , - 1095 , - 4064 , - 2893 , - 894 , - 1379 , - 3244 , - 969 , - 2282 , - 1663 , - 2424 , - 3461 , - 3670 , - 1947 , - 1604 , - 1537 , - 642 , - 2231 , - 784 , - 4029 , - 2030 , - 2515 , - 4380 , - 2105 , - 3418 , - 2799 , - 3560 , - 181 , - 390 , - 3083 , - 2740 , - 2673 , - 1778 , - 3367 , - 1920 , - 749 , - 3166 , - 3651 , - 1100 , - 3241 , - 138 , - 3935 , - 280 , - 1317 , - 1526 , - 4219 , - 3876 , - 3809 , - 2914 , - 87 , - 3056 , - 1885 , - 4302 , - 371 , - 2236 , - 4377 , - 1274 , - 655 , - 1416 , - 2453 , - 2662 , - 939 , - 596 , - 529 , - 4050 , - 1223 , - 4192 , - 3021 , - 1022 , - 1507 , - 3372 , - 1097 , - 2410 , - 1791 , - 2552 , - 3589 , - 3798 , - 2075 , - 1732 , - 1665 , - 770 , - 2359 , - 912 , - 4157 , - 2158 , - 2643 , - 92 , - 2233 , - 3546 , - 2927 , - 3688 , - 309 , - 518 , - 3211 , - 2868 , - 2801 , - 1906 , - 3495 , - 2048 , - 877 , - 3294 , - 3779 , - 1228 , - 3369 , - 266 , - 4063 , - 408 , - 1445 , - 1654 , - 4347 , - 4004 , - 3937 , - 3042 , - 215 , - 3184 , - 2013 , - 14 , - 499 , - 2364 , - 89 , - 1402 , - 783 , - 1544 , - 2581 , - 2790 , - 1067 , - 724 , - 657 , - 4178 , - 1351 , - 4320 , - 3149 , - 1150 , - 1635 , - 3500 , - 1225 , - 2538 , - 1919 , - 2680 , - 3717 , - 3926 , - 2203 , - 1860 , - 1793 , - 898 , - 2487 , - 1040 , - 4285 , - 2286 , - 2771 , - 220 , - 2361 , - 3674 , - 3055 , - 3816 , - 437 , - 646 , - 3339 , - 2996 , - 2929 , - 2034 , - 3623 , - 2176 , - 1005 , - 3422 , - 3907 , - 1356 , - 3497 , - 394 , - 4191 , - 536 , - 1573 , - 1782 , - 59 , - 4132 , - 4065 , - 3170 , - 343 , - 3312 , - 2141 , - 142 , - 627 , - 2492 , - 217 , - 1530 , - 911 , - 1672 , - 2709 , - 2918 , - 1195 , - 852 , - 785 , - 4306 , - 1479 , - 32 , - 3277 , - 1278 , - 1763 , - 3628 , - 1353 , - 2666 , - 2047 , - 2808 , - 3845 , - 4054 , - 2331 , - 1988 , - 1921 , - 1026 , - 2615 , - 1168 , - 4413 , - 2414 , - 2899 , - 348 , - 2489 , - 3802 , - 3183 , - 3944 , - 565 , - 774 , - 3467 , - 3124 , - 3057 , - 2162 , - 3751 , - 2304 , - 1133 , - 3550 , - 4035 , - 1484 , - 3625 , - 522 , - 4319 , - 664 , - 1701 , - 1910 , - 187 , - 4260 , - 4193 , - 3298 , - 471 , - 3440 , - 2269 , - 270 , - 755 , - 2620 , - 345 , - 1658 , - 1039 , - 1800 , - 2837 , - 3046 , - 1323 , - 980 , - 913 , - 18 , - 1607 , - 160 , - 3405 , - 1406 , - 1891 , - 3756 , - 1481 , - 2794 , - 2175 , - 2936 , - 3973 , - 4182 , - 2459 , - 2116 , - 2049 , - 1154 , - 2743 , - 1296 , - 125 , - 2542 , - 3027 , - 476 , - 2617 , - 3930 , - 3311 , - 4072 , - 693 , - 902 , - 3595 , - 3252 , - 3185 , - 2290 , - 3879 , - 2432 , - 1261 , - 3678 , - 4163 , - 1612 , - 3753 , - 650 , - 31 , - 792 , - 1829 , - 2038 , - 315 , - 4388 , - 4321 , - 3426 , - 599 , - 3568 , - 2397 , - 398 , - 883 , - 2748 , - 473 , - 1786 , - 1167 , - 1928 , - 2965 , - 3174 , - 1451 , - 1108 , - 1041 , - 146 , - 1735 , - 288 , - 3533 , - 1534 , - 2019 , - 3884 , - 1609 , - 2922 , - 2303 , - 3064 , - 4101 , - 4310 , - 2587 , - 2244 , - 2177 , - 1282 , - 2871 , - 1424 , - 253 , - 2670 , - 3155 , - 604 , - 2745 , - 4058 , - 3439 , - 4200 , - 821 , - 1030 , - 3723 , - 3380 , - 3313 , - 2418 , - 4007 , - 2560 , - 1389 , - 3806 , - 4291 , - 1740 , - 3881 , - 778 , - 159 , - 920 , - 1957 , - 2166 , - 443 , - 100 , - 33 , - 3554 , - 727 , - 3696 , - 2525 , - 526 , - 1011 , - 2876 , - 601 , - 1914 , - 1295 , - 2056 , - 3093 , - 3302 , - 1579 , - 1236 , - 1169 , - 274 , - 1863 , - 416 , - 3661 , - 1662 , - 2147 , - 4012 , - 1737 , - 3050 , - 2431 , - 3192 , - 4229 , - 22 , - 2715 , - 2372 , - 2305 , - 1410 , - 2999 , - 1552 , - 381 , - 2798 , - 3283 , - 732 , - 2873 , - 4186 , - 3567 , - 4328 , - 949 , - 1158 , - 3851 , - 3508 , - 3441 , - 2546 , - 4135 , - 2688 , - 1517 , - 3934 , - 3 , - 1868 , - 4009 , - 906 , - 287 , - 1048 , - 2085 , - 2294 , - 571 , - 228 , - 161 , - 3682 , - 855 , - 3824 , - 2653 , - 654 , - 1139 , - 3004 , - 729 , - 2042 , - 1423 , - 2184 , - 3221 , - 3430 , - 1707 , - 1364 , - 1297 , - 402 , - 1991 , - 544 , - 3789 , - 1790 , - 2275 , - 4140 , - 1865 , - 3178 , - 2559 , - 3320 , - 4357 , - 150 , - 2843 , - 2500 , - 2433 , - 1538 , - 3127 , - 1680 , - 509 , - 2926 , - 3411 , - 860 , - 3001 , - 4314 , - 3695 , - 40 , - 1077 , - 1286 , - 3979 , - 3636 , - 3569 , - 2674 , - 4263 , - 2816 , - 1645 , - 4062 , - 131 , - 1996 , - 4137 , - 1034 , - 415 , - 1176 , - 2213 , - 2422 , - 699 , - 356 , - 289 , - 3810 , - 983 , - 3952 , - 2781 , - 782 , - 1267 , - 3132 , - 857 , - 2170 , - 1551 , - 2312 , - 3349 , - 3558 , - 1835 , - 1492 , - 1425 , - 530 , - 2119 , - 672 , - 3917 , - 1918 , - 2403 , - 4268 , - 1993 , - 3306 , - 2687 , - 3448 , - 69 , - 278 , - 2971 , - 2628 , - 2561 , - 1666 , - 3255 , - 1808 , - 637 , - 3054 , - 3539 , - 988 , - 3129 , - 26 , - 3823 , - 168 , - 1205 , - 1414 , - 4107 , - 3764 , - 3697 , - 2802 , - 4391 , - 2944 , - 1773 , - 4190 , - 259 , - 2124 , - 4265 , - 1162 , - 543 , - 1304 , - 2341 , - 2550 , - 827 , - 484 , - 417 , - 3938 , - 1111 , - 4080 , - 2909 , - 910 , - 1395 , - 3260 , - 985 , - 2298 , - 1679 , - 2440 , - 3477 , - 3686 , - 1963 , - 1620 , - 1553 , - 658 , - 2247 , - 800 , - 4045 , - 2046 , - 2531 , - 4396 , - 2121 , - 3434 , - 2815 , - 3576 , - 197 , - 406 , - 3099 , - 2756 , - 2689 , - 1794 , - 3383 , - 1936 , - 765 , - 3182 , - 3667 , - 1116 , - 3257 , - 154 , - 3951 , - 296 , - 1333 , - 1542 , - 4235 , - 3892 , - 3825 , - 2930 , - 103 , - 3072 , - 1901 , - 4318 , - 387 , - 2252 , - 4393 , - 1290 , - 671 , - 1432 , - 2469 , - 2678 , - 955 , - 612 , - 545 , - 4066 , - 1239 , - 4208 , - 3037 , - 1038 , - 1523 , - 3388 , - 1113 , - 2426 , - 1807 , - 2568 , - 3605 , - 3814 , - 2091 , - 1748 , - 1681 , - 786 , - 2375 , - 928 , - 4173 , - 2174 , - 2659 , - 108 , - 2249 , - 3562 , - 2943 , - 3704 , - 325 , - 534 , - 3227 , - 2884 , - 2817 , - 1922 , - 3511 , - 2064 , - 893 , - 3310 , - 3795 , - 1244 , - 3385 , - 282 , - 4079 , - 424 , - 1461 , - 1670 , - 4363 , - 4020 , - 3953 , - 3058 , - 231 , - 3200 , - 2029 , - 30 , - 515 , - 2380 , - 105 , - 1418 , - 799 , - 1560 , - 2597 , - 2806 , - 1083 , - 740 , - 673 , - 4194 , - 1367 , - 4336 , - 3165 , - 1166 , - 1651 , - 3516 , - 1241 , - 2554 , - 1935 , - 2696 , - 3733 , - 3942 , - 2219 , - 1876 , - 1809 , - 914 , - 2503 , - 1056 , - 4301 , - 2302 , - 2787 , - 236 , - 2377 , - 3690 , - 3071 , - 3832 , - 453 , - 662 , - 3355 , - 3012 , - 2945 , - 2050 , - 3639 , - 2192 , - 1021 , - 3438 , - 3923 , - 1372 , - 3513 , - 410 , - 4207 , - 552 , - 1589 , - 1798 , - 75 , - 4148 , - 4081 , - 3186 , - 359 , - 3328 , - 2157 , - 158 , - 643 , - 2508 , - 233 , - 1546 , - 927 , - 1688 , - 2725 , - 2934 , - 1211 , - 868 , - 801 , - 4322 , - 1495 , - 48 , - 3293 , - 1294 , - 1779 , - 3644 , - 1369 , - 2682 , - 2063 , - 2824 , - 3861 , - 4070 , - 2347 , - 2004 , - 1937 , - 1042 , - 2631 , - 1184 , - 13 , - 2430 , - 2915 , - 364 , - 2505 , - 3818 , - 3199 , - 3960 , - 581 , - 790 , - 3483 , - 3140 , - 3073 , - 2178 , - 3767 , - 2320 , - 1149 , - 3566 , - 4051 , - 1500 , - 3641 , - 538 , - 4335 , - 680 , - 1717 , - 1926 , - 203 , - 4276 , - 4209 , - 3314 , - 487 , - 3456 , - 2285 , - 286 , - 771 , - 2636 , - 361 , - 1674 , - 1055 , - 1816 , - 2853 , - 3062 , - 1339 , - 996 , - 929 , - 34 , - 1623 , - 176 , - 3421 , - 1422 , - 1907 , - 3772 , - 1497 , - 2810 , - 2191 , - 2952 , - 3989 , - 4198 , - 2475 , - 2132 , - 2065 , - 1170 , - 2759 , - 1312 , - 141 , - 2558 , - 3043 , - 492 , - 2633 , - 3946 , - 3327 , - 4088 , - 709 , - 918 , - 3611 , - 3268 , - 3201 , - 2306 , - 3895 , - 2448 , - 1277 , - 3694 , - 4179 , - 1628 , - 3769 , - 666 , - 47 , - 808 , - 1845 , - 2054 , - 331 , - 4404 , - 4337 , - 3442 , - 615 , - 3584 , - 2413 , - 414 , - 899 , - 2764 , - 489 , - 1802 , - 1183 , - 1944 , - 2981 , - 3190 , - 1467 , - 1124 , - 1057 , - 162 , - 1751 , - 304 , - 3549 , - 1550 , - 2035 , - 3900 , - 1625 , - 2938 , - 2319 , - 3080 , - 4117 , - 4326 , - 2603 , - 2260 , - 2193 , - 1298 , - 2887 , - 1440 , - 269 , - 2686 , - 3171 , - 620 , - 2761 , - 4074 , - 3455 , - 4216 , - 837 , - 1046 , - 3739 , - 3396 , - 3329 , - 2434 , - 4023 , - 2576 , - 1405 , - 3822 , - 4307 , - 1756 , - 3897 , - 794 , - 175 , - 936 , - 1973 , - 2182 , - 459 , - 116 , - 49 , - 3570 , - 743 , - 3712 , - 2541 , - 542 , - 1027 , - 2892 , - 617 , - 1930 , - 1311 , - 2072 , - 3109 , - 3318 , - 1595 , - 1252 , - 1185 , - 290 , - 1879 , - 432 , - 3677 , - 1678 , - 2163 , - 4028 , - 1753 , - 3066 , - 2447 , - 3208 , - 4245 , - 38 , - 2731 , - 2388 , - 2321 , - 1426 , - 3015 , - 1568 , - 397 , - 2814 , - 3299 , - 748 , - 2889 , - 4202 , - 3583 , - 4344 , - 965 , - 1174 , - 3867 , - 3524 , - 3457 , - 2562 , - 4151 , - 2704 , - 1533 , - 3950 , - 19 , - 1884 , - 4025 , - 922 , - 303 , - 1064 , - 2101 , - 2310 , - 587 , - 244 , - 177 , - 3698 , - 871 , - 3840 , - 2669 , - 670 , - 1155 , - 3020 , - 745 , - 2058 , - 1439 , - 2200 , - 3237 , - 3446 , - 1723 , - 1380 , - 1313 , - 418 , - 2007 , - 560 , - 3805 , - 1806 , - 2291 , - 4156 , - 1881 , - 3194 , - 2575 , - 3336 , - 4373 , - 166 , - 2859 , - 2516 , - 2449 , - 1554 , - 3143 , - 1696 , - 525 , - 2942 , - 3427 , - 876 , - 3017 , - 4330 , - 3711 , - 56 , - 1093 , - 1302 , - 3995 , - 3652 , - 3585 , - 2690 , - 4279 , - 2832 , - 1661 , - 4078 , - 147 , - 2012 , - 4153 , - 1050 , - 431 , - 1192 , - 2229 , - 2438 , - 715 , - 372 , - 305 , - 3826 , - 999 , - 3968 , - 2797 , - 798 , - 1283 , - 3148 , - 873 , - 2186 , - 1567 , - 2328 , - 3365 , - 3574 , - 1851 , - 1508 , - 1441 , - 546 , - 2135 , - 688 , - 3933 , - 1934 , - 2419 , - 4284 , - 2009 , - 3322 , - 2703 , - 3464 , - 85 , - 294 , - 2987 , - 2644 , - 2577 , - 1682 , - 3271 , - 1824 , - 653 , - 3070 , - 3555 , - 1004 , - 3145 , - 42 , - 3839 , - 184 , - 1221 , - 1430 , - 4123 , - 3780 , - 3713 , - 2818 , - 4407 , - 2960 , - 1789 , - 4206 , - 275 , - 2140 , - 4281 , - 1178 , - 559 , - 1320 , - 2357 , - 2566 , - 843 , - 500 , - 433 , - 3954 , - 1127 , - 4096 , - 2925 , - 926 , - 1411 , - 3276 , - 1001 , - 2314 , - 1695 , - 2456 , - 3493 , - 3702 , - 1979 , - 1636 , - 1569 , - 674 , - 2263 , - 816 , - 4061 , - 2062 , - 2547 , - 4412 , - 2137 , - 3450 , - 2831 , - 3592 , - 213 , - 422 , - 3115 , - 2772 , - 2705 , - 1810 , - 3399 , - 1952 , - 781 , - 3198 , - 3683 , - 1132 , - 3273 , - 170 , - 3967 , - 312 , - 1349 , - 1558 , - 4251 , - 3908 , - 3841 , - 2946 , - 119 , - 3088 , - 1917 , - 4334 , - 403 , - 2268 , - 4409 , - 1306 , - 687 , - 1448 , - 2485 , - 2694 , - 971 , - 628 , - 561 , - 4082 , - 1255 , - 4224 , - 3053 , - 1054 , - 1539 , - 3404 , - 1129 , - 2442 , - 1823 , - 2584 , - 3621 , - 3830 , - 2107 , - 1764 , - 1697 , - 802 , - 2391 , - 944 , - 4189 , - 2190 , - 2675 , - 124 , - 2265 , - 3578 , - 2959 , - 3720 , - 341 , - 550 , - 3243 , - 2900 , - 2833 , - 1938 , - 3527 , - 2080 , - 909 , - 3326 , - 3811 , - 1260 , - 3401 , - 298 , - 4095 , - 440 , - 1477 , - 1686 , - 4379 , - 4036 , - 3969 , - 3074 , - 247 , - 3216 , - 2045 , - 46 , - 531 , - 2396 , - 121 , - 1434 , - 815 , - 1576 , - 2613 , - 2822 , - 1099 , - 756 , - 689 , - 4210 , - 1383 , - 4352 , - 3181 , - 1182 , - 1667 , - 3532 , - 1257 , - 2570 , - 1951 , - 2712 , - 3749 , - 3958 , - 2235 , - 1892 , - 1825 , - 930 , - 2519 , - 1072 , - 4317 , - 2318 , - 2803 , - 252 , - 2393 , - 3706 , - 3087 , - 3848 , - 469 , - 678 , - 3371 , - 3028 , - 2961 , - 2066 , - 3655 , - 2208 , - 1037 , - 3454 , - 3939 , - 1388 , - 3529 , - 426 , - 4223 , - 568 , - 1605 , - 1814 , - 91 , - 4164 , - 4097 , - 3202 , - 375 , - 3344 , - 2173 , - 174 , - 659 , - 2524 , - 249 , - 1562 , - 943 , - 1704 , - 2741 , - 2950 , - 1227 , - 884 , - 817 , - 4338 , - 1511 , - 64 , - 3309 , - 1310 , - 1795 , - 3660 , - 1385 , - 2698 , - 2079 , - 2840 , - 3877 , - 4086 , - 2363 , - 2020 , - 1953 , - 1058 , - 2647 , - 1200 , - 29 , - 2446 , - 2931 , - 380 , - 2521 , - 3834 , - 3215 , - 3976 , - 597 , - 806 , - 3499 , - 3156 , - 3089 , - 2194 , - 3783 , - 2336 , - 1165 , - 3582 , - 4067 , - 1516 , - 3657 , - 554 , - 4351 , - 696 , - 1733 , - 1942 , - 219 , - 4292 , - 4225 , - 3330 , - 503 , - 3472 , - 2301 , - 302 , - 787 , - 2652 , - 377 , - 1690 , - 1071 , - 1832 , - 2869 , - 3078 , - 1355 , - 1012 , - 945 , - 50 , - 1639 , - 192 , - 3437 , - 1438 , - 1923 , - 3788 , - 1513 , - 2826 , - 2207 , - 2968 , - 4005 , - 4214 , - 2491 , - 2148 , - 2081 , - 1186 , - 2775 , - 1328 , - 157 , - 2574 , - 3059 , - 508 , - 2649 , - 3962 , - 3343 , - 4104 , - 725 , - 934 , - 3627 , - 3284 , - 3217 , - 2322 , - 3911 , - 2464 , - 1293 , - 3710 , - 4195 , - 1644 , - 3785 , - 682 , - 63 , - 824 , - 1861 , - 2070 , - 347 , - 4 , - 4353 , - 3458 , - 631 , - 3600 , - 2429 , - 430 , - 915 , - 2780 , - 505 , - 1818 , - 1199 , - 1960 , - 2997 , - 3206 , - 1483 , - 1140 , - 1073 , - 178 , - 1767 , - 320 , - 3565 , - 1566 , - 2051 , - 3916 , - 1641 , - 2954 , - 2335 , - 3096 , - 4133 , - 4342 , - 2619 , - 2276 , - 2209 , - 1314 , - 2903 , - 1456 , - 285 , - 2702 , - 3187 , - 636 , - 2777 , - 4090 , - 3471 , - 4232 , - 853 , - 1062 , - 3755 , - 3412 , - 3345 , - 2450 , - 4039 , - 2592 , - 1421 , - 3838 , - 4323 , - 1772 , - 3913 , - 810 , - 191 , - 952 , - 1989 , - 2198 , - 475 , - 132 , - 65 , - 3586 , - 759 , - 3728 , - 2557 , - 558 , - 1043 , - 2908 , - 633 , - 1946 , - 1327 , - 2088 , - 3125 , - 3334 , - 1611 , - 1268 , - 1201 , - 306 , - 1895 , - 448 , - 3693 , - 1694 , - 2179 , - 4044 , - 1769 , - 3082 , - 2463 , - 3224 , - 4261 , - 54 , - 2747 , - 2404 , - 2337 , - 1442 , - 3031 , - 1584 , - 413 , - 2830 , - 3315 , - 764 , - 2905 , - 4218 , - 3599 , - 4360 , - 981 , - 1190 , - 3883 , - 3540 , - 3473 , - 2578 , - 4167 , - 2720 , - 1549 , - 3966 , - 35 , - 1900 , - 4041 , - 938 , - 319 , - 1080 , - 2117 , - 2326 , - 603 , - 260 , - 193 , - 3714 , - 887 , - 3856 , - 2685 , - 686 , - 1171 , - 3036 , - 761 , - 2074 , - 1455 , - 2216 , - 3253 , - 3462 , - 1739 , - 1396 , - 1329 , - 434 , - 2023 , - 576 , - 3821 , - 1822 , - 2307 , - 4172 , - 1897 , - 3210 , - 2591 , - 3352 , - 4389 , - 182 , - 2875 , - 2532 , - 2465 , - 1570 , - 3159 , - 1712 , - 541 , - 2958 , - 3443 , - 892 , - 3033 , - 4346 , - 3727 , - 72 , - 1109 , - 1318 , - 4011 , - 3668 , - 3601 , - 2706 , - 4295 , - 2848 , - 1677 , - 4094 , - 163 , - 2028 , - 4169 , - 1066 , - 447 , - 1208 , - 2245 , - 2454 , - 731 , - 388 , - 321 , - 3842 , - 1015 , - 3984 , - 2813 , - 814 , - 1299 , - 3164 , - 889 , - 2202 , - 1583 , - 2344 , - 3381 , - 3590 , - 1867 , - 1524 , - 1457 , - 562 , - 2151 , - 704 , - 3949 , - 1950 , - 2435 , - 4300 , - 2025 , - 3338 , - 2719 , - 3480 , - 101 , - 310 , - 3003 , - 2660 , - 2593 , - 1698 , - 3287 , - 1840 , - 669 , - 3086 , - 3571 , - 1020 , - 3161 , - 58 , - 3855 , - 200 , - 1237 , - 1446 , - 4139 , - 3796 , - 3729 , - 2834 , - 7 , - 2976 , - 1805 , - 4222 , - 291 , - 2156 , - 4297 , - 1194 , - 575 , - 1336 , - 2373 , - 2582 , - 859 , - 516 , - 449 , - 3970 , - 1143 , - 4112 , - 2941 , - 942 , - 1427 , - 3292 , - 1017 , - 2330 , - 1711 , - 2472 , - 3509 , - 3718 , - 1995 , - 1652 , - 1585 , - 690 , - 2279 , - 832 , - 4077 , - 2078 , - 2563 , - 12 , - 2153 , - 3466 , - 2847 , - 3608 , - 229 , - 438 , - 3131 , - 2788 , - 2721 , - 1826 , - 3415 , - 1968 , - 797 , - 3214 , - 3699 , - 1148 , - 3289 , - 186 , - 3983 , - 328 , - 1365 , - 1574 , - 4267 , - 3924 , - 3857 , - 2962 , - 135 , - 3104 , - 1933 , - 4350 , - 419 , - 2284 , - 9 , - 1322 , - 703 , - 1464 , - 2501 , - 2710 , - 987 , - 644 , - 577 , - 4098 , - 1271 , - 4240 , - 3069 , - 1070 , - 1555 , - 3420 , - 1145 , - 2458 , - 1839 , - 2600 , - 3637 , - 3846 , - 2123 , - 1780 , - 1713 , - 818 , - 2407 , - 960 , - 4205 , - 2206 , - 2691 , - 140 , - 2281 , - 3594 , - 2975 , - 3736 , - 357 , - 566 , - 3259 , - 2916 , - 2849 , - 1954 , - 3543 , - 2096 , - 925 , - 3342 , - 3827 , - 1276 , - 3417 , - 314 , - 4111 , - 456 , - 1493 , - 1702 , - 4395 , - 4052 , - 3985 , - 3090 , - 263 , - 3232 , - 2061 , - 62 , - 547 , - 2412 , - 137 , - 1450 , - 831 , - 1592 , - 2629 , - 2838 , - 1115 , - 772 , - 705 , - 4226 , - 1399 , - 4368 , - 3197 , - 1198 , - 1683 , - 3548 , - 1273 , - 2586 , - 1967 , - 2728 , - 3765 , - 3974 , - 2251 , - 1908 , - 1841 , - 946 , - 2535 , - 1088 , - 4333 , - 2334 , - 2819 , - 268 , - 2409 , - 3722 , - 3103 , - 3864 , - 485 , - 694 , - 3387 , - 3044 , - 2977 , - 2082 , - 3671 , - 2224 , - 1053 , - 3470 , - 3955 , - 1404 , - 3545 , - 442 , - 4239 , - 584 , - 1621 , - 1830 , - 107 , - 4180 , - 4113 , - 3218 , - 391 , - 3360 , - 2189 , - 190 , - 675 , - 2540 , - 265 , - 1578 , - 959 , - 1720 , - 2757 , - 2966 , - 1243 , - 900 , - 833 , - 4354 , - 1527 , - 80 , - 3325 , - 1326 , - 1811 , - 3676 , - 1401 , - 2714 , - 2095 , - 2856 , - 3893 , - 4102 , - 2379 , - 2036 , - 1969 , - 1074 , - 2663 , - 1216 , - 45 , - 2462 , - 2947 , - 396 , - 2537 , - 3850 , - 3231 , - 3992 , - 613 , - 822 , - 3515 , - 3172 , - 3105 , - 2210 , - 3799 , - 2352 , - 1181 , - 3598 , - 4083 , - 1532 , - 3673 , - 570 , - 4367 , - 712 , - 1749 , - 1958 , - 235 , - 4308 , - 4241 , - 3346 , - 519 , - 3488 , - 2317 , - 318 , - 803 , - 2668 , - 393 , - 1706 , - 1087 , - 1848 , - 2885 , - 3094 , - 1371 , - 1028 , - 961 , - 66 , - 1655 , - 208 , - 3453 , - 1454 , - 1939 , - 3804 , - 1529 , - 2842 , - 2223 , - 2984 , - 4021 , - 4230 , - 2507 , - 2164 , - 2097 , - 1202 , - 2791 , - 1344 , - 173 , - 2590 , - 3075 , - 524 , - 2665 , - 3978 , - 3359 , - 4120 , - 741 , - 950 , - 3643 , - 3300 , - 3233 , - 2338 , - 3927 , - 2480 , - 1309 , - 3726 , - 4211 , - 1660 , - 3801 , - 698 , - 79 , - 840 , - 1877 , - 2086 , - 363 , - 20 , - 4369 , - 3474 , - 647 , - 3616 , - 2445 , - 446 , - 931 , - 2796 , - 521 , - 1834 , - 1215 , - 1976 , - 3013 , - 3222 , - 1499 , - 1156 , - 1089 , - 194 , - 1783 , - 336 , - 3581 , - 1582 , - 2067 , - 3932 , - 1657 , - 2970 , - 2351 , - 3112 , - 4149 , - 4358 , - 2635 , - 2292 , - 2225 , - 1330 , - 2919 , - 1472 , - 301 , - 2718 , - 3203 , - 652 , - 2793 , - 4106 , - 3487 , - 4248 , - 869 , - 1078 , - 3771 , - 3428 , - 3361 , - 2466 , - 4055 , - 2608 , - 1437 , - 3854 , - 4339 , - 1788 , - 3929 , - 826 , - 207 , - 968 , - 2005 , - 2214 , - 491 , - 148 , - 81 , - 3602 , - 775 , - 3744 , - 2573 , - 574 , - 1059 , - 2924 , - 649 , - 1962 , - 1343 , - 2104 , - 3141 , - 3350 , - 1627 , - 1284 , - 1217 , - 322 , - 1911 , - 464 , - 3709 , - 1710 , - 2195 , - 4060 , - 1785 , - 3098 , - 2479 , - 3240 , - 4277 , - 70 , - 2763 , - 2420 , - 2353 , - 1458 , - 3047 , - 1600 , - 429 , - 2846 , - 3331 , - 780 , - 2921 , - 4234 , - 3615 , - 4376 , - 997 , - 1206 , - 3899 , - 3556 , - 3489 , - 2594 , - 4183 , - 2736 , - 1565 , - 3982 , - 51 , - 1916 , - 4057 , - 954 , - 335 , - 1096 , - 2133 , - 2342 , - 619 , - 276 , - 209 , - 3730 , - 903 , - 3872 , - 2701 , - 702 , - 1187 , - 3052 , - 777 , - 2090 , - 1471 , - 2232 , - 3269 , - 3478 , - 1755 , - 1412 , - 1345 , - 450 , - 2039 , - 592 , - 3837 , - 1838 , - 2323 , - 4188 , - 1913 , - 3226 , - 2607 , - 3368 , - 4405 , - 198 , - 2891 , - 2548 , - 2481 , - 1586 , - 3175 , - 1728 , - 557 , - 2974 , - 3459 , - 908 , - 3049 , - 4362 , - 3743 , - 88 , - 1125 , - 1334 , - 4027 , - 3684 , - 3617 , - 2722 , - 4311 , - 2864 , - 1693 , - 4110 , - 179 , - 2044 , - 4185 , - 1082 , - 463 , - 1224 , - 2261 , - 2470 , - 747 , - 404 , - 337 , - 3858 , - 1031 , - 4000 , - 2829 , - 830 , - 1315 , - 3180 , - 905 , - 2218 , - 1599 , - 2360 , - 3397 , - 3606 , - 1883 , - 1540 , - 1473 , - 578 , - 2167 , - 720 , - 3965 , - 1966 , - 2451 , - 4316 , - 2041 , - 3354 , - 2735 , - 3496 , - 117 , - 326 , - 3019 , - 2676 , - 2609 , - 1714 , - 3303 , - 1856 , - 685 , - 3102 , - 3587 , - 1036 , - 3177 , - 74 , - 3871 , - 216 , - 1253 , - 1462 , - 4155 , - 3812 , - 3745 , - 2850 , - 23 , - 2992 , - 1821 , - 4238 , - 307 , - 2172 , - 4313 , - 1210 , - 591 , - 1352 , - 2389 , - 2598 , - 875 , - 532 , - 465 , - 3986 , - 1159 , - 4128 , - 2957 , - 958 , - 1443 , - 3308 , - 1033 , - 2346 , - 1727 , - 2488 , - 3525 , - 3734 , - 2011 , - 1668 , - 1601 , - 706 , - 2295 , - 848 , - 4093 , - 2094 , - 2579 , - 28 , - 2169 , - 3482 , - 2863 , - 3624 , - 245 , - 454 , - 3147 , - 2804 , - 2737 , - 1842 , - 3431 , - 1984 , - 813 , - 3230 , - 3715 , - 1164 , - 3305 , - 202 , - 3999 , - 344 , - 1381 , - 1590 , - 4283 , - 3940 , - 3873 , - 2978 , - 151 , - 3120 , - 1949 , - 4366 , - 435 , - 2300 , - 25 , - 1338 , - 719 , - 1480 , - 2517 , - 2726 , - 1003 , - 660 , - 593 , - 4114 , - 1287 , - 4256 , - 3085 , - 1086 , - 1571 , - 3436 , - 1161 , - 2474 , - 1855 , - 2616 , - 3653 , - 3862 , - 2139 , - 1796 , - 1729 , - 834 , - 2423 , - 976 , - 4221 , - 2222 , - 2707 , - 156 , - 2297 , - 3610 , - 2991 , - 3752 , - 373 , - 582 , - 3275 , - 2932 , - 2865 , - 1970 , - 3559 , - 2112 , - 941 , - 3358 , - 3843 , - 1292 , - 3433 , - 330 , - 4127 , - 472 , - 1509 , - 1718 , - 4411 , - 4068 , - 4001 , - 3106 , - 279 , - 3248 , - 2077 , - 78 , - 563 , - 2428 , - 153 , - 1466 , - 847 , - 1608 , - 2645 , - 2854 , - 1131 , - 788 , - 721 , - 4242 , - 1415 , - 4384 , - 3213 , - 1214 , - 1699 , - 3564 , - 1289 , - 2602 , - 1983 , - 2744 , - 3781 , - 3990 , - 2267 , - 1924 , - 1857 , - 962 , - 2551 , - 1104 , - 4349 , - 2350 , - 2835 , - 284 , - 2425 , - 3738 , - 3119 , - 3880 , - 501 , - 710 , - 3403 , - 3060 , - 2993 , - 2098 , - 3687 , - 2240 , - 1069 , - 3486 , - 3971 , - 1420 , - 3561 , - 458 , - 4255 , - 600 , - 1637 , - 1846 , - 123 , - 4196 , - 4129 , - 3234 , - 407 , - 3376 , - 2205 , - 206 , - 691 , - 2556 , - 281 , - 1594 , - 975 , - 1736 , - 2773 , - 2982 , - 1259 , - 916 , - 849 , - 4370 , - 1543 , - 96 , - 3341 , - 1342 , - 1827 , - 3692 , - 1417 , - 2730 , - 2111 , - 2872 , - 3909 , - 4118 , - 2395 , - 2052 , - 1985 , - 1090 , - 2679 , - 1232 , - 61 , - 2478 , - 2963 , - 412 , - 2553 , - 3866 , - 3247 , - 4008 , - 629 , - 838 , - 3531 , - 3188 , - 3121 , - 2226 , - 3815 , - 2368 , - 1197 , - 3614 , - 4099 , - 1548 , - 3689 , - 586 , - 4383 , - 728 , - 1765 , - 1974 , - 251 , - 4324 , - 4257 , - 3362 , - 535 , - 3504 , - 2333 , - 334 , - 819 , - 2684 , - 409 , - 1722 , - 1103 , - 1864 , - 2901 , - 3110 , - 1387 , - 1044 , - 977 , - 82 , - 1671 , - 224 , - 3469 , - 1470 , - 1955 , - 3820 , - 1545 , - 2858 , - 2239 , - 3000 , - 4037 , - 4246 , - 2523 , - 2180 , - 2113 , - 1218 , - 2807 , - 1360 , - 189 , - 2606 , - 3091 , - 540 , - 2681 , - 3994 , - 3375 , - 4136 , - 757 , - 966 , - 3659 , - 3316 , - 3249 , - 2354 , - 3943 , - 2496 , - 1325 , - 3742 , - 4227 , - 1676 , - 3817 , - 714 , - 95 , - 856 , - 1893 , - 2102 , - 379 , - 36 , - 4385 , - 3490 , - 663 , - 3632 , - 2461 , - 462 , - 947 , - 2812 , - 537 , - 1850 , - 1231 , - 1992 , - 3029 , - 3238 , - 1515 , - 1172 , - 1105 , - 210 , - 1799 , - 352 , - 3597 , - 1598 , - 2083 , - 3948 , - 1673 , - 2986 , - 2367 , - 3128 , - 4165 , - 4374 , - 2651 , - 2308 , - 2241 , - 1346 , - 2935 , - 1488 , - 317 , - 2734 , - 3219 , - 668 , - 2809 , - 4122 , - 3503 , - 4264 , - 885 , - 1094 , - 3787 , - 3444 , - 3377 , - 2482 , - 4071 , - 2624 , - 1453 , - 3870 , - 4355 , - 1804 , - 3945 , - 842 , - 223 , - 984 , - 2021 , - 2230 , - 507 , - 164 , - 97 , - 3618 , - 791 , - 3760 , - 2589 , - 590 , - 1075 , - 2940 , - 665 , - 1978 , - 1359 , - 2120 , - 3157 , - 3366 , - 1643 , - 1300 , - 1233 , - 338 , - 1927 , - 480 , - 3725 , - 1726 , - 2211 , - 4076 , - 1801 , - 3114 , - 2495 , - 3256 , - 4293 , - 86 , - 2779 , - 2436 , - 2369 , - 1474 , - 3063 , - 1616 , - 445 , - 2862 , - 3347 , - 796 , - 2937 , - 4250 , - 3631 , - 4392 , - 1013 , - 1222 , - 3915 , - 3572 , - 3505 , - 2610 , - 4199 , - 2752 , - 1581 , - 3998 , - 67 , - 1932 , - 4073 , - 970 , - 351 , - 1112 , - 2149 , - 2358 , - 635 , - 292 , - 225 , - 3746 , - 919 , - 3888 , - 2717 , - 718 , - 1203 , - 3068 , - 793 , - 2106 , - 1487 , - 2248 , - 3285 , - 3494 , - 1771 , - 1428 , - 1361 , - 466 , - 2055 , - 608 , - 3853 , - 1854 , - 2339 , - 4204 , - 1929 , - 3242 , - 2623 , - 3384 , - 5 , - 214 , - 2907 , - 2564 , - 2497 , - 1602 , - 3191 , - 1744 , - 573 , - 2990 , - 3475 , - 924 , - 3065 , - 4378 , - 3759 , - 104 , - 1141 , - 1350 , - 4043 , - 3700 , - 3633 , - 2738 , - 4327 , - 2880 , - 1709 , - 4126 , - 195 , - 2060 , - 4201 , - 1098 , - 479 , - 1240 , - 2277 , - 2486 , - 763 , - 420 , - 353 , - 3874 , - 1047 , - 4016 , - 2845 , - 846 , - 1331 , - 3196 , - 921 , - 2234 , - 1615 , - 2376 , - 3413 , - 3622 , - 1899 , - 1556 , - 1489 , - 594 , - 2183 , - 736 , - 3981 , - 1982 , - 2467 , - 4332 , - 2057 , - 3370 , - 2751 , - 3512 , - 133 , - 342 , - 3035 , - 2692 , - 2625 , - 1730 , - 3319 , - 1872 , - 701 , - 3118 , - 3603 , - 1052 , - 3193 , - 90 , - 3887 , - 232 , - 1269 , - 1478 , - 4171 , - 3828 , - 3761 , - 2866 , - 39 , - 3008 , - 1837 , - 4254 , - 323 , - 2188 , - 4329 , - 1226 , - 607 , - 1368 , - 2405 , - 2614 , - 891 , - 548 , - 481 , - 4002 , - 1175 , - 4144 , - 2973 , - 974 , - 1459 , - 3324 , - 1049 , - 2362 , - 1743 , - 2504 , - 3541 , - 3750 , - 2027 , - 1684 , - 1617 , - 722 , - 2311 , - 864 , - 4109 , - 2110 , - 2595 , - 44 , - 2185 , - 3498 , - 2879 , - 3640 , - 261 , - 470 , - 3163 , - 2820 , - 2753 , - 1858 , - 3447 , - 2000 , - 829 , - 3246 , - 3731 , - 1180 , - 3321 , - 218 , - 4015 , - 360 , - 1397 , - 1606 , - 4299 , - 3956 , - 3889 , - 2994 , - 167 , - 3136 , - 1965 , - 4382 , - 451 , - 2316 , - 41 , - 1354 , - 735 , - 1496 , - 2533 , - 2742 , - 1019 , - 676 , - 609 , - 4130 , - 1303 , - 4272 , - 3101 , - 1102 , - 1587 , - 3452 , - 1177 , - 2490 , - 1871 , - 2632 , - 3669 , - 3878 , - 2155 , - 1812 , - 1745 , - 850 , - 2439 , - 992 , - 4237 , - 2238 , - 2723 , - 172 , - 2313 , - 3626 , - 3007 , - 3768 , - 389 , - 598 , - 3291 , - 2948 , - 2881 , - 1986 , - 3575 , - 2128 , - 957 , - 3374 , - 3859 , - 1308 , - 3449 , - 346 , - 4143 , - 488 , - 1525 , - 1734 , - 11 , - 4084 , - 4017 , - 3122 , - 295 , - 3264 , - 2093 , - 94 , - 579 , - 2444 , - 169 , - 1482 , - 863 , - 1624 , - 2661 , - 2870 , - 1147 , - 804 , - 737 , - 4258 , - 1431 , - 4400 , - 3229 , - 1230 , - 1715 , - 3580 , - 1305 , - 2618 , - 1999 , - 2760 , - 3797 , - 4006 , - 2283 , - 1940 , - 1873 , - 978 , - 2567 , - 1120 , - 4365 , - 2366 , - 2851 , - 300 , - 2441 , - 3754 , - 3135 , - 3896 , - 517 , - 726 , - 3419 , - 3076 , - 3009 , - 2114 , - 3703 , - 2256 , - 1085 , - 3502 , - 3987 , - 1436 , - 3577 , - 474 , - 4271 , - 616 , - 1653 , - 1862 , - 139 , - 4212 , - 4145 , - 3250 , - 423 , - 3392 , - 2221 , - 222 , - 707 , - 2572 , - 297 , - 1610 , - 991 , - 1752 , - 2789 , - 2998 , - 1275 , - 932 , - 865 , - 4386 , - 1559 , - 112 , - 3357 , - 1358 , - 1843 , - 3708 , - 1433 , - 2746 , - 2127 , - 2888 , - 3925 , - 4134 , - 2411 , - 2068 , - 2001 , - 1106 , - 2695 , - 1248 , - 77 , - 2494 , - 2979 , - 428 , - 2569 , - 3882 , - 3263 , - 4024 , - 645 , - 854 , - 3547 , - 3204 , - 3137 , - 2242 , - 3831 , - 2384 , - 1213 , - 3630 , - 4115 , - 1564 , - 3705 , - 602 , - 4399 , - 744 , - 1781 , - 1990 , - 267 , - 4340 , - 4273 , - 3378 , - 551 , - 3520 , - 2349 , - 350 , - 835 , - 2700 , - 425 , - 1738 , - 1119 , - 1880 , - 2917 , - 3126 , - 1403 , - 1060 , - 993 , - 98 , - 1687 , - 240 , - 3485 , - 1486 , - 1971 , - 3836 , - 1561 , - 2874 , - 2255 , - 3016 , - 4053 , - 4262 , - 2539 , - 2196 , - 2129 , - 1234 , - 2823 , - 1376 , - 205 , - 2622 , - 3107 , - 556 , - 2697 , - 4010 , - 3391 , - 4152 , - 773 , - 982 , - 3675 , - 3332 , - 3265 , - 2370 , - 3959 , - 2512 , - 1341 , - 3758 , - 4243 , - 1692 , - 3833 , - 730 , - 111 , - 872 , - 1909 , - 2118 , - 395 , - 52 , - 4401 , - 3506 , - 679 , - 3648 , - 2477 , - 478 , - 963 , - 2828 , - 553 , - 1866 , - 1247 , - 2008 , - 3045 , - 3254 , - 1531 , - 1188 , - 1121 , - 226 , - 1815 , - 368 , - 3613 , - 1614 , - 2099 , - 3964 , - 1689 , - 3002 , - 2383 , - 3144 , - 4181 , - 4390 , - 2667 , - 2324 , - 2257 , - 1362 , - 2951 , - 1504 , - 333 , - 2750 , - 3235 , - 684 , - 2825 , - 4138 , - 3519 , - 4280 , - 901 , - 1110 , - 3803 , - 3460 , - 3393 , - 2498 , - 4087 , - 2640 , - 1469 , - 3886 , - 4371 , - 1820 , - 3961 , - 858 , - 239 , - 1000 , - 2037 , - 2246 , - 523 , - 180 , - 113 , - 3634 , - 807 , - 3776 , - 2605 , - 606 , - 1091 , - 2956 , - 681 , - 1994 , - 1375 , - 2136 , - 3173 , - 3382 , - 1659 , - 1316 , - 1249 , - 354 , - 1943 , - 496 , - 3741 , - 1742 , - 2227 , - 4092 , - 1817 , - 3130 , - 2511 , - 3272 , - 4309 , - 102 , - 2795 , - 2452 , - 2385 , - 1490 , - 3079 , - 1632 , - 461 , - 2878 , - 3363 , - 812 , - 2953 , - 4266 , - 3647 , - 4408 , - 1029 , - 1238 , - 3931 , - 3588 , - 3521 , - 2626 , - 4215 , - 2768 , - 1597 , - 4014 , - 83 , - 1948 , - 4089 , - 986 , - 367 , - 1128 , - 2165 , - 2374 , - 651 , - 308 , - 241 , - 3762 , - 935 , - 3904 , - 2733 , - 734 , - 1219 , - 3084 , - 809 , - 2122 , - 1503 , - 2264 , - 3301 , - 3510 , - 1787 , - 1444 , - 1377 , - 482 , - 2071 , - 624 , - 3869 , - 1870 , - 2355 , - 4220 , - 1945 , - 3258 , - 2639 , - 3400 , - 21 , - 230 , - 2923 , - 2580 , - 2513 , - 1618 , - 3207 , - 1760 , - 589 , - 3006 , - 3491 , - 940 , - 3081 , - 4394 , - 3775 , - 120 , - 1157 , - 1366 , - 4059 , - 3716 , - 3649 , - 2754 , - 4343 , - 2896 , - 1725 , - 4142 , - 211 , - 2076 , - 4217 , - 1114 , - 495 , - 1256 , - 2293 , - 2502 , - 779 , - 436 , - 369 , - 3890 , - 1063 , - 4032 , - 2861 , - 862 , - 1347 , - 3212 , - 937 , - 2250 , - 1631 , - 2392 , - 3429 , - 3638 , - 1915 , - 1572 , - 1505 , - 610 , - 2199 , - 752 , - 3997 , - 1998 , - 2483 , - 4348 , - 2073 , - 3386 , - 2767 , - 3528 , - 149 , - 358 , - 3051 , - 2708 , - 2641 , - 1746 , - 3335 , - 1888 , - 717 , - 3134 , - 3619 , - 1068 , - 3209 , - 106 , - 3903 , - 248 , - 1285 , - 1494 , - 4187 , - 3844 , - 3777 , - 2882 , - 55 , - 3024 , - 1853 , - 4270 , - 339 , - 2204 , - 4345 , - 1242 , - 623 , - 1384 , - 2421 , - 2630 , - 907 , - 564 , - 497 , - 4018 , - 1191 , - 4160 , - 2989 , - 990 , - 1475 , - 3340 , - 1065 , - 2378 , - 1759 , - 2520 , - 3557 , - 3766 , - 2043 , - 1700 , - 1633 , - 738 , - 2327 , - 880 , - 4125 , - 2126 , - 2611 , - 60 , - 2201 , - 3514 , - 2895 , - 3656 , - 277 , - 486 , - 3179 , - 2836 , - 2769 , - 1874 , - 3463 , - 2016 , - 845 , - 3262 , - 3747 , - 1196 , - 3337 , - 234 , - 4031 , - 376 , - 1413 , - 1622 , - 4315 , - 3972 , - 3905 , - 3010 , - 183 , - 3152 , - 1981 , - 4398 , - 467 , - 2332 , - 57 , - 1370 , - 751 , - 1512 , - 2549 , - 2758 , - 1035 , - 692 , - 625 , - 4146 , - 1319 , - 4288 , - 3117 , - 1118 , - 1603 , - 3468 , - 1193 , - 2506 , - 1887 , - 2648 , - 3685 , - 3894 , - 2171 , - 1828 , - 1761 , - 866 , - 2455 , - 1008 , - 4253 , - 2254 , - 2739 , - 188 , - 2329 , - 3642 , - 3023 , - 3784 , - 405 , - 614 , - 3307 , - 2964 , - 2897 , - 2002 , - 3591 , - 2144 , - 973 , - 3390 , - 3875 , - 1324 , - 3465 , - 362 , - 4159 , - 504 , - 1541 , - 1750 , - 27 , - 4100 , - 4033 , - 3138 , - 311 , - 3280 , - 2109 , - 110 , - 595 , - 2460 , - 185 , - 1498 , - 879 , - 1640 , - 2677 , - 2886 , - 1163 , - 820 , - 753 , - 4274 , - 1447 , - 0 , - 1537 , - 2514 , - 2931 , - 2788 , - 2085 , - 822 , - 3479 , - 1096 , - 2633 , - 3610 , - 4027 , - 3884 , - 3181 , - 1918 , - 95 , - 2192 , - 3729 , - 226 , - 643 , - 500 , - 4277 , - 3014 , - 1191 , - 3288 , - 345 , - 1322 , - 1739 , - 1596 , - 893 , - 4110 , - 2287 , - 4384 , - 1441 , - 2418 , - 2835 , - 2692 , - 1989 , - 726 , - 3383 , - 1000 , - 2537 , - 3514 , - 3931 , - 3788 , - 3085 , - 1822 , - 4479 , - 2096 , - 3633 , - 130 , - 547 , - 404 , - 4181 , - 2918 , - 1095 , - 3192 , - 249 , - 1226 , - 1643 , - 1500 , - 797 , - 4014 , - 2191 , - 4288 , - 1345 , - 2322 , - 2739 , - 2596 , - 1893 , - 630 , - 3287 , - 904 , - 2441 , - 3418 , - 3835 , - 3692 , - 2989 , - 1726 , - 4383 , - 2000 , - 3537 , - 34 , - 451 , - 308 , - 4085 , - 2822 , - 999 , - 3096 , - 153 , - 1130 , - 1547 , - 1404 , - 701 , - 3918 , - 2095 , - 4192 , - 1249 , - 2226 , - 2643 , - 2500 , - 1797 , - 534 , - 3191 , - 808 , - 2345 , - 3322 , - 3739 , - 3596 , - 2893 , - 1630 , - 4287 , - 1904 , - 3441 , - 4418 , - 355 , - 212 , - 3989 , - 2726 , - 903 , - 3000 , - 57 , - 1034 , - 1451 , - 1308 , - 605 , - 3822 , - 1999 , - 4096 , - 1153 , - 2130 , - 2547 , - 2404 , - 1701 , - 438 , - 3095 , - 712 , - 2249 , - 3226 , - 3643 , - 3500 , - 2797 , - 1534 , - 4191 , - 1808 , - 3345 , - 4322 , - 259 , - 116 , - 3893 , - 2630 , - 807 , - 2904 , - 4441 , - 938 , - 1355 , - 1212 , - 509 , - 3726 , - 1903 , - 4000 , - 1057 , - 2034 , - 2451 , - 2308 , - 1605 , - 342 , - 2999 , - 616 , - 2153 , - 3130 , - 3547 , - 3404 , - 2701 , - 1438 , - 4095 , - 1712 , - 3249 , - 4226 , - 163 , - 20 , - 3797 , - 2534 , - 711 , - 2808 , - 4345 , - 842 , - 1259 , - 1116 , - 413 , - 3630 , - 1807 , - 3904 , - 961 , - 1938 , - 2355 , - 2212 , - 1509 , - 246 , - 2903 , - 520 , - 2057 , - 3034 , - 3451 , - 3308 , - 2605 , - 1342 , - 3999 , - 1616 , - 3153 , - 4130 , - 67 , - 4404 , - 3701 , - 2438 , - 615 , - 2712 , - 4249 , - 746 , - 1163 , - 1020 , - 317 , - 3534 , - 1711 , - 3808 , - 865 , - 1842 , - 2259 , - 2116 , - 1413 , - 150 , - 2807 , - 424 , - 1961 , - 2938 , - 3355 , - 3212 , - 2509 , - 1246 , - 3903 , - 1520 , - 3057 , - 4034 , - 4451 , - 4308 , - 3605 , - 2342 , - 519 , - 2616 , - 4153 , - 650 , - 1067 , - 924 , - 221 , - 3438 , - 1615 , - 3712 , - 769 , - 1746 , - 2163 , - 2020 , - 1317 , - 54 , - 2711 , - 328 , - 1865 , - 2842 , - 3259 , - 3116 , - 2413 , - 1150 , - 3807 , - 1424 , - 2961 , - 3938 , - 4355 , - 4212 , - 3509 , - 2246 , - 423 , - 2520 , - 4057 , - 554 , - 971 , - 828 , - 125 , - 3342 , - 1519 , - 3616 , - 673 , - 1650 , - 2067 , - 1924 , - 1221 , - 4438 , - 2615 , - 232 , - 1769 , - 2746 , - 3163 , - 3020 , - 2317 , - 1054 , - 3711 , - 1328 , - 2865 , - 3842 , - 4259 , - 4116 , - 3413 , - 2150 , - 327 , - 2424 , - 3961 , - 458 , - 875 , - 732 , - 29 , - 3246 , - 1423 , - 3520 , - 577 , - 1554 , - 1971 , - 1828 , - 1125 , - 4342 , - 2519 , - 136 , - 1673 , - 2650 , - 3067 , - 2924 , - 2221 , - 958 , - 3615 , - 1232 , - 2769 , - 3746 , - 4163 , - 4020 , - 3317 , - 2054 , - 231 , - 2328 , - 3865 , - 362 , - 779 , - 636 , - 4413 , - 3150 , - 1327 , - 3424 , - 481 , - 1458 , - 1875 , - 1732 , - 1029 , - 4246 , - 2423 , - 40 , - 1577 , - 2554 , - 2971 , - 2828 , - 2125 , - 862 , - 3519 , - 1136 , - 2673 , - 3650 , - 4067 , - 3924 , - 3221 , - 1958 , - 135 , - 2232 , - 3769 , - 266 , - 683 , - 540 , - 4317 , - 3054 , - 1231 , - 3328 , - 385 , - 1362 , - 1779 , - 1636 , - 933 , - 4150 , - 2327 , - 4424 , - 1481 , - 2458 , - 2875 , - 2732 , - 2029 , - 766 , - 3423 , - 1040 , - 2577 , - 3554 , - 3971 , - 3828 , - 3125 , - 1862 , - 39 , - 2136 , - 3673 , - 170 , - 587 , - 444 , - 4221 , - 2958 , - 1135 , - 3232 , - 289 , - 1266 , - 1683 , - 1540 , - 837 , - 4054 , - 2231 , - 4328 , - 1385 , - 2362 , - 2779 , - 2636 , - 1933 , - 670 , - 3327 , - 944 , - 2481 , - 3458 , - 3875 , - 3732 , - 3029 , - 1766 , - 4423 , - 2040 , - 3577 , - 74 , - 491 , - 348 , - 4125 , - 2862 , - 1039 , - 3136 , - 193 , - 1170 , - 1587 , - 1444 , - 741 , - 3958 , - 2135 , - 4232 , - 1289 , - 2266 , - 2683 , - 2540 , - 1837 , - 574 , - 3231 , - 848 , - 2385 , - 3362 , - 3779 , - 3636 , - 2933 , - 1670 , - 4327 , - 1944 , - 3481 , - 4458 , - 395 , - 252 , - 4029 , - 2766 , - 943 , - 3040 , - 97 , - 1074 , - 1491 , - 1348 , - 645 , - 3862 , - 2039 , - 4136 , - 1193 , - 2170 , - 2587 , - 2444 , - 1741 , - 478 , - 3135 , - 752 , - 2289 , - 3266 , - 3683 , - 3540 , - 2837 , - 1574 , - 4231 , - 1848 , - 3385 , - 4362 , - 299 , - 156 , - 3933 , - 2670 , - 847 , - 2944 , - 1 , - 978 , - 1395 , - 1252 , - 549 , - 3766 , - 1943 , - 4040 , - 1097 , - 2074 , - 2491 , - 2348 , - 1645 , - 382 , - 3039 , - 656 , - 2193 , - 3170 , - 3587 , - 3444 , - 2741 , - 1478 , - 4135 , - 1752 , - 3289 , - 4266 , - 203 , - 60 , - 3837 , - 2574 , - 751 , - 2848 , - 4385 , - 882 , - 1299 , - 1156 , - 453 , - 3670 , - 1847 , - 3944 , - 1001 , - 1978 , - 2395 , - 2252 , - 1549 , - 286 , - 2943 , - 560 , - 2097 , - 3074 , - 3491 , - 3348 , - 2645 , - 1382 , - 4039 , - 1656 , - 3193 , - 4170 , - 107 , - 4444 , - 3741 , - 2478 , - 655 , - 2752 , - 4289 , - 786 , - 1203 , - 1060 , - 357 , - 3574 , - 1751 , - 3848 , - 905 , - 1882 , - 2299 , - 2156 , - 1453 , - 190 , - 2847 , - 464 , - 2001 , - 2978 , - 3395 , - 3252 , - 2549 , - 1286 , - 3943 , - 1560 , - 3097 , - 4074 , - 11 , - 4348 , - 3645 , - 2382 , - 559 , - 2656 , - 4193 , - 690 , - 1107 , - 964 , - 261 , - 3478 , - 1655 , - 3752 , - 809 , - 1786 , - 2203 , - 2060 , - 1357 , - 94 , - 2751 , - 368 , - 1905 , - 2882 , - 3299 , - 3156 , - 2453 , - 1190 , - 3847 , - 1464 , - 3001 , - 3978 , - 4395 , - 4252 , - 3549 , - 2286 , - 463 , - 2560 , - 4097 , - 594 , - 1011 , - 868 , - 165 , - 3382 , - 1559 , - 3656 , - 713 , - 1690 , - 2107 , - 1964 , - 1261 , - 4478 , - 2655 , - 272 , - 1809 , - 2786 , - 3203 , - 3060 , - 2357 , - 1094 , - 3751 , - 1368 , - 2905 , - 3882 , - 4299 , - 4156 , - 3453 , - 2190 , - 367 , - 2464 , - 4001 , - 498 , - 915 , - 772 , - 69 , - 3286 , - 1463 , - 3560 , - 617 , - 1594 , - 2011 , - 1868 , - 1165 , - 4382 , - 2559 , - 176 , - 1713 , - 2690 , - 3107 , - 2964 , - 2261 , - 998 , - 3655 , - 1272 , - 2809 , - 3786 , - 4203 , - 4060 , - 3357 , - 2094 , - 271 , - 2368 , - 3905 , - 402 , - 819 , - 676 , - 4453 , - 3190 , - 1367 , - 3464 , - 521 , - 1498 , - 1915 , - 1772 , - 1069 , - 4286 , - 2463 , - 80 , - 1617 , - 2594 , - 3011 , - 2868 , - 2165 , - 902 , - 3559 , - 1176 , - 2713 , - 3690 , - 4107 , - 3964 , - 3261 , - 1998 , - 175 , - 2272 , - 3809 , - 306 , - 723 , - 580 , - 4357 , - 3094 , - 1271 , - 3368 , - 425 , - 1402 , - 1819 , - 1676 , - 973 , - 4190 , - 2367 , - 4464 , - 1521 , - 2498 , - 2915 , - 2772 , - 2069 , - 806 , - 3463 , - 1080 , - 2617 , - 3594 , - 4011 , - 3868 , - 3165 , - 1902 , - 79 , - 2176 , - 3713 , - 210 , - 627 , - 484 , - 4261 , - 2998 , - 1175 , - 3272 , - 329 , - 1306 , - 1723 , - 1580 , - 877 , - 4094 , - 2271 , - 4368 , - 1425 , - 2402 , - 2819 , - 2676 , - 1973 , - 710 , - 3367 , - 984 , - 2521 , - 3498 , - 3915 , - 3772 , - 3069 , - 1806 , - 4463 , - 2080 , - 3617 , - 114 , - 531 , - 388 , - 4165 , - 2902 , - 1079 , - 3176 , - 233 , - 1210 , - 1627 , - 1484 , - 781 , - 3998 , - 2175 , - 4272 , - 1329 , - 2306 , - 2723 , - 2580 , - 1877 , - 614 , - 3271 , - 888 , - 2425 , - 3402 , - 3819 , - 3676 , - 2973 , - 1710 , - 4367 , - 1984 , - 3521 , - 18 , - 435 , - 292 , - 4069 , - 2806 , - 983 , - 3080 , - 137 , - 1114 , - 1531 , - 1388 , - 685 , - 3902 , - 2079 , - 4176 , - 1233 , - 2210 , - 2627 , - 2484 , - 1781 , - 518 , - 3175 , - 792 , - 2329 , - 3306 , - 3723 , - 3580 , - 2877 , - 1614 , - 4271 , - 1888 , - 3425 , - 4402 , - 339 , - 196 , - 3973 , - 2710 , - 887 , - 2984 , - 41 , - 1018 , - 1435 , - 1292 , - 589 , - 3806 , - 1983 , - 4080 , - 1137 , - 2114 , - 2531 , - 2388 , - 1685 , - 422 , - 3079 , - 696 , - 2233 , - 3210 , - 3627 , - 3484 , - 2781 , - 1518 , - 4175 , - 1792 , - 3329 , - 4306 , - 243 , - 100 , - 3877 , - 2614 , - 791 , - 2888 , - 4425 , - 922 , - 1339 , - 1196 , - 493 , - 3710 , - 1887 , - 3984 , - 1041 , - 2018 , - 2435 , - 2292 , - 1589 , - 326 , - 2983 , - 600 , - 2137 , - 3114 , - 3531 , - 3388 , - 2685 , - 1422 , - 4079 , - 1696 , - 3233 , - 4210 , - 147 , - 4 , - 3781 , - 2518 , - 695 , - 2792 , - 4329 , - 826 , - 1243 , - 1100 , - 397 , - 3614 , - 1791 , - 3888 , - 945 , - 1922 , - 2339 , - 2196 , - 1493 , - 230 , - 2887 , - 504 , - 2041 , - 3018 , - 3435 , - 3292 , - 2589 , - 1326 , - 3983 , - 1600 , - 3137 , - 4114 , - 51 , - 4388 , - 3685 , - 2422 , - 599 , - 2696 , - 4233 , - 730 , - 1147 , - 1004 , - 301 , - 3518 , - 1695 , - 3792 , - 849 , - 1826 , - 2243 , - 2100 , - 1397 , - 134 , - 2791 , - 408 , - 1945 , - 2922 , - 3339 , - 3196 , - 2493 , - 1230 , - 3887 , - 1504 , - 3041 , - 4018 , - 4435 , - 4292 , - 3589 , - 2326 , - 503 , - 2600 , - 4137 , - 634 , - 1051 , - 908 , - 205 , - 3422 , - 1599 , - 3696 , - 753 , - 1730 , - 2147 , - 2004 , - 1301 , - 38 , - 2695 , - 312 , - 1849 , - 2826 , - 3243 , - 3100 , - 2397 , - 1134 , - 3791 , - 1408 , - 2945 , - 3922 , - 4339 , - 4196 , - 3493 , - 2230 , - 407 , - 2504 , - 4041 , - 538 , - 955 , - 812 , - 109 , - 3326 , - 1503 , - 3600 , - 657 , - 1634 , - 2051 , - 1908 , - 1205 , - 4422 , - 2599 , - 216 , - 1753 , - 2730 , - 3147 , - 3004 , - 2301 , - 1038 , - 3695 , - 1312 , - 2849 , - 3826 , - 4243 , - 4100 , - 3397 , - 2134 , - 311 , - 2408 , - 3945 , - 442 , - 859 , - 716 , - 13 , - 3230 , - 1407 , - 3504 , - 561 , - 1538 , - 1955 , - 1812 , - 1109 , - 4326 , - 2503 , - 120 , - 1657 , - 2634 , - 3051 , - 2908 , - 2205 , - 942 , - 3599 , - 1216 , - 2753 , - 3730 , - 4147 , - 4004 , - 3301 , - 2038 , - 215 , - 2312 , - 3849 , - 346 , - 763 , - 620 , - 4397 , - 3134 , - 1311 , - 3408 , - 465 , - 1442 , - 1859 , - 1716 , - 1013 , - 4230 , - 2407 , - 24 , - 1561 , - 2538 , - 2955 , - 2812 , - 2109 , - 846 , - 3503 , - 1120 , - 2657 , - 3634 , - 4051 , - 3908 , - 3205 , - 1942 , - 119 , - 2216 , - 3753 , - 250 , - 667 , - 524 , - 4301 , - 3038 , - 1215 , - 3312 , - 369 , - 1346 , - 1763 , - 1620 , - 917 , - 4134 , - 2311 , - 4408 , - 1465 , - 2442 , - 2859 , - 2716 , - 2013 , - 750 , - 3407 , - 1024 , - 2561 , - 3538 , - 3955 , - 3812 , - 3109 , - 1846 , - 23 , - 2120 , - 3657 , - 154 , - 571 , - 428 , - 4205 , - 2942 , - 1119 , - 3216 , - 273 , - 1250 , - 1667 , - 1524 , - 821 , - 4038 , - 2215 , - 4312 , - 1369 , - 2346 , - 2763 , - 2620 , - 1917 , - 654 , - 3311 , - 928 , - 2465 , - 3442 , - 3859 , - 3716 , - 3013 , - 1750 , - 4407 , - 2024 , - 3561 , - 58 , - 475 , - 332 , - 4109 , - 2846 , - 1023 , - 3120 , - 177 , - 1154 , - 1571 , - 1428 , - 725 , - 3942 , - 2119 , - 4216 , - 1273 , - 2250 , - 2667 , - 2524 , - 1821 , - 558 , - 3215 , - 832 , - 2369 , - 3346 , - 3763 , - 3620 , - 2917 , - 1654 , - 4311 , - 1928 , - 3465 , - 4442 , - 379 , - 236 , - 4013 , - 2750 , - 927 , - 3024 , - 81 , - 1058 , - 1475 , - 1332 , - 629 , - 3846 , - 2023 , - 4120 , - 1177 , - 2154 , - 2571 , - 2428 , - 1725 , - 462 , - 3119 , - 736 , - 2273 , - 3250 , - 3667 , - 3524 , - 2821 , - 1558 , - 4215 , - 1832 , - 3369 , - 4346 , - 283 , - 140 , - 3917 , - 2654 , - 831 , - 2928 , - 4465 , - 962 , - 1379 , - 1236 , - 533 , - 3750 , - 1927 , - 4024 , - 1081 , - 2058 , - 2475 , - 2332 , - 1629 , - 366 , - 3023 , - 640 , - 2177 , - 3154 , - 3571 , - 3428 , - 2725 , - 1462 , - 4119 , - 1736 , - 3273 , - 4250 , - 187 , - 44 , - 3821 , - 2558 , - 735 , - 2832 , - 4369 , - 866 , - 1283 , - 1140 , - 437 , - 3654 , - 1831 , - 3928 , - 985 , - 1962 , - 2379 , - 2236 , - 1533 , - 270 , - 2927 , - 544 , - 2081 , - 3058 , - 3475 , - 3332 , - 2629 , - 1366 , - 4023 , - 1640 , - 3177 , - 4154 , - 91 , - 4428 , - 3725 , - 2462 , - 639 , - 2736 , - 4273 , - 770 , - 1187 , - 1044 , - 341 , - 3558 , - 1735 , - 3832 , - 889 , - 1866 , - 2283 , - 2140 , - 1437 , - 174 , - 2831 , - 448 , - 1985 , - 2962 , - 3379 , - 3236 , - 2533 , - 1270 , - 3927 , - 1544 , - 3081 , - 4058 , - 4475 , - 4332 , - 3629 , - 2366 , - 543 , - 2640 , - 4177 , - 674 , - 1091 , - 948 , - 245 , - 3462 , - 1639 , - 3736 , - 793 , - 1770 , - 2187 , - 2044 , - 1341 , - 78 , - 2735 , - 352 , - 1889 , - 2866 , - 3283 , - 3140 , - 2437 , - 1174 , - 3831 , - 1448 , - 2985 , - 3962 , - 4379 , - 4236 , - 3533 , - 2270 , - 447 , - 2544 , - 4081 , - 578 , - 995 , - 852 , - 149 , - 3366 , - 1543 , - 3640 , - 697 , - 1674 , - 2091 , - 1948 , - 1245 , - 4462 , - 2639 , - 256 , - 1793 , - 2770 , - 3187 , - 3044 , - 2341 , - 1078 , - 3735 , - 1352 , - 2889 , - 3866 , - 4283 , - 4140 , - 3437 , - 2174 , - 351 , - 2448 , - 3985 , - 482 , - 899 , - 756 , - 53 , - 3270 , - 1447 , - 3544 , - 601 , - 1578 , - 1995 , - 1852 , - 1149 , - 4366 , - 2543 , - 160 , - 1697 , - 2674 , - 3091 , - 2948 , - 2245 , - 982 , - 3639 , - 1256 , - 2793 , - 3770 , - 4187 , - 4044 , - 3341 , - 2078 , - 255 , - 2352 , - 3889 , - 386 , - 803 , - 660 , - 4437 , - 3174 , - 1351 , - 3448 , - 505 , - 1482 , - 1899 , - 1756 , - 1053 , - 4270 , - 2447 , - 64 , - 1601 , - 2578 , - 2995 , - 2852 , - 2149 , - 886 , - 3543 , - 1160 , - 2697 , - 3674 , - 4091 , - 3948 , - 3245 , - 1982 , - 159 , - 2256 , - 3793 , - 290 , - 707 , - 564 , - 4341 , - 3078 , - 1255 , - 3352 , - 409 , - 1386 , - 1803 , - 1660 , - 957 , - 4174 , - 2351 , - 4448 , - 1505 , - 2482 , - 2899 , - 2756 , - 2053 , - 790 , - 3447 , - 1064 , - 2601 , - 3578 , - 3995 , - 3852 , - 3149 , - 1886 , - 63 , - 2160 , - 3697 , - 194 , - 611 , - 468 , - 4245 , - 2982 , - 1159 , - 3256 , - 313 , - 1290 , - 1707 , - 1564 , - 861 , - 4078 , - 2255 , - 4352 , - 1409 , - 2386 , - 2803 , - 2660 , - 1957 , - 694 , - 3351 , - 968 , - 2505 , - 3482 , - 3899 , - 3756 , - 3053 , - 1790 , - 4447 , - 2064 , - 3601 , - 98 , - 515 , - 372 , - 4149 , - 2886 , - 1063 , - 3160 , - 217 , - 1194 , - 1611 , - 1468 , - 765 , - 3982 , - 2159 , - 4256 , - 1313 , - 2290 , - 2707 , - 2564 , - 1861 , - 598 , - 3255 , - 872 , - 2409 , - 3386 , - 3803 , - 3660 , - 2957 , - 1694 , - 4351 , - 1968 , - 3505 , - 2 , - 419 , - 276 , - 4053 , - 2790 , - 967 , - 3064 , - 121 , - 1098 , - 1515 , - 1372 , - 669 , - 3886 , - 2063 , - 4160 , - 1217 , - 2194 , - 2611 , - 2468 , - 1765 , - 502 , - 3159 , - 776 , - 2313 , - 3290 , - 3707 , - 3564 , - 2861 , - 1598 , - 4255 , - 1872 , - 3409 , - 4386 , - 323 , - 180 , - 3957 , - 2694 , - 871 , - 2968 , - 25 , - 1002 , - 1419 , - 1276 , - 573 , - 3790 , - 1967 , - 4064 , - 1121 , - 2098 , - 2515 , - 2372 , - 1669 , - 406 , - 3063 , - 680 , - 2217 , - 3194 , - 3611 , - 3468 , - 2765 , - 1502 , - 4159 , - 1776 , - 3313 , - 4290 , - 227 , - 84 , - 3861 , - 2598 , - 775 , - 2872 , - 4409 , - 906 , - 1323 , - 1180 , - 477 , - 3694 , - 1871 , - 3968 , - 1025 , - 2002 , - 2419 , - 2276 , - 1573 , - 310 , - 2967 , - 584 , - 2121 , - 3098 , - 3515 , - 3372 , - 2669 , - 1406 , - 4063 , - 1680 , - 3217 , - 4194 , - 131 , - 4468 , - 3765 , - 2502 , - 679 , - 2776 , - 4313 , - 810 , - 1227 , - 1084 , - 381 , - 3598 , - 1775 , - 3872 , - 929 , - 1906 , - 2323 , - 2180 , - 1477 , - 214 , - 2871 , - 488 , - 2025 , - 3002 , - 3419 , - 3276 , - 2573 , - 1310 , - 3967 , - 1584 , - 3121 , - 4098 , - 35 , - 4372 , - 3669 , - 2406 , - 583 , - 2680 , - 4217 , - 714 , - 1131 , - 988 , - 285 , - 3502 , - 1679 , - 3776 , - 833 , - 1810 , - 2227 , - 2084 , - 1381 , - 118 , - 2775 , - 392 , - 1929 , - 2906 , - 3323 , - 3180 , - 2477 , - 1214 , - 3871 , - 1488 , - 3025 , - 4002 , - 4419 , - 4276 , - 3573 , - 2310 , - 487 , - 2584 , - 4121 , - 618 , - 1035 , - 892 , - 189 , - 3406 , - 1583 , - 3680 , - 737 , - 1714 , - 2131 , - 1988 , - 1285 , - 22 , - 2679 , - 296 , - 1833 , - 2810 , - 3227 , - 3084 , - 2381 , - 1118 , - 3775 , - 1392 , - 2929 , - 3906 , - 4323 , - 4180 , - 3477 , - 2214 , - 391 , - 2488 , - 4025 , - 522 , - 939 , - 796 , - 93 , - 3310 , - 1487 , - 3584 , - 641 , - 1618 , - 2035 , - 1892 , - 1189 , - 4406 , - 2583 , - 200 , - 1737 , - 2714 , - 3131 , - 2988 , - 2285 , - 1022 , - 3679 , - 1296 , - 2833 , - 3810 , - 4227 , - 4084 , - 3381 , - 2118 , - 295 , - 2392 , - 3929 , - 426 , - 843 , - 700 , - 4477 , - 3214 , - 1391 , - 3488 , - 545 , - 1522 , - 1939 , - 1796 , - 1093 , - 4310 , - 2487 , - 104 , - 1641 , - 2618 , - 3035 , - 2892 , - 2189 , - 926 , - 3583 , - 1200 , - 2737 , - 3714 , - 4131 , - 3988 , - 3285 , - 2022 , - 199 , - 2296 , - 3833 , - 330 , - 747 , - 604 , - 4381 , - 3118 , - 1295 , - 3392 , - 449 , - 1426 , - 1843 , - 1700 , - 997 , - 4214 , - 2391 , - 8 , - 1545 , - 2522 , - 2939 , - 2796 , - 2093 , - 830 , - 3487 , - 1104 , - 2641 , - 3618 , - 4035 , - 3892 , - 3189 , - 1926 , - 103 , - 2200 , - 3737 , - 234 , - 651 , - 508 , - 4285 , - 3022 , - 1199 , - 3296 , - 353 , - 1330 , - 1747 , - 1604 , - 901 , - 4118 , - 2295 , - 4392 , - 1449 , - 2426 , - 2843 , - 2700 , - 1997 , - 734 , - 3391 , - 1008 , - 2545 , - 3522 , - 3939 , - 3796 , - 3093 , - 1830 , - 7 , - 2104 , - 3641 , - 138 , - 555 , - 412 , - 4189 , - 2926 , - 1103 , - 3200 , - 257 , - 1234 , - 1651 , - 1508 , - 805 , - 4022 , - 2199 , - 4296 , - 1353 , - 2330 , - 2747 , - 2604 , - 1901 , - 638 , - 3295 , - 912 , - 2449 , - 3426 , - 3843 , - 3700 , - 2997 , - 1734 , - 4391 , - 2008 , - 3545 , - 42 , - 459 , - 316 , - 4093 , - 2830 , - 1007 , - 3104 , - 161 , - 1138 , - 1555 , - 1412 , - 709 , - 3926 , - 2103 , - 4200 , - 1257 , - 2234 , - 2651 , - 2508 , - 1805 , - 542 , - 3199 , - 816 , - 2353 , - 3330 , - 3747 , - 3604 , - 2901 , - 1638 , - 4295 , - 1912 , - 3449 , - 4426 , - 363 , - 220 , - 3997 , - 2734 , - 911 , - 3008 , - 65 , - 1042 , - 1459 , - 1316 , - 613 , - 3830 , - 2007 , - 4104 , - 1161 , - 2138 , - 2555 , - 2412 , - 1709 , - 446 , - 3103 , - 720 , - 2257 , - 3234 , - 3651 , - 3508 , - 2805 , - 1542 , - 4199 , - 1816 , - 3353 , - 4330 , - 267 , - 124 , - 3901 , - 2638 , - 815 , - 2912 , - 4449 , - 946 , - 1363 , - 1220 , - 517 , - 3734 , - 1911 , - 4008 , - 1065 , - 2042 , - 2459 , - 2316 , - 1613 , - 350 , - 3007 , - 624 , - 2161 , - 3138 , - 3555 , - 3412 , - 2709 , - 1446 , - 4103 , - 1720 , - 3257 , - 4234 , - 171 , - 28 , - 3805 , - 2542 , - 719 , - 2816 , - 4353 , - 850 , - 1267 , - 1124 , - 421 , - 3638 , - 1815 , - 3912 , - 969 , - 1946 , - 2363 , - 2220 , - 1517 , - 254 , - 2911 , - 528 , - 2065 , - 3042 , - 3459 , - 3316 , - 2613 , - 1350 , - 4007 , - 1624 , - 3161 , - 4138 , - 75 , - 4412 , - 3709 , - 2446 , - 623 , - 2720 , - 4257 , - 754 , - 1171 , - 1028 , - 325 , - 3542 , - 1719 , - 3816 , - 873 , - 1850 , - 2267 , - 2124 , - 1421 , - 158 , - 2815 , - 432 , - 1969 , - 2946 , - 3363 , - 3220 , - 2517 , - 1254 , - 3911 , - 1528 , - 3065 , - 4042 , - 4459 , - 4316 , - 3613 , - 2350 , - 527 , - 2624 , - 4161 , - 658 , - 1075 , - 932 , - 229 , - 3446 , - 1623 , - 3720 , - 777 , - 1754 , - 2171 , - 2028 , - 1325 , - 62 , - 2719 , - 336 , - 1873 , - 2850 , - 3267 , - 3124 , - 2421 , - 1158 , - 3815 , - 1432 , - 2969 , - 3946 , - 4363 , - 4220 , - 3517 , - 2254 , - 431 , - 2528 , - 4065 , - 562 , - 979 , - 836 , - 133 , - 3350 , - 1527 , - 3624 , - 681 , - 1658 , - 2075 , - 1932 , - 1229 , - 4446 , - 2623 , - 240 , - 1777 , - 2754 , - 3171 , - 3028 , - 2325 , - 1062 , - 3719 , - 1336 , - 2873 , - 3850 , - 4267 , - 4124 , - 3421 , - 2158 , - 335 , - 2432 , - 3969 , - 466 , - 883 , - 740 , - 37 , - 3254 , - 1431 , - 3528 , - 585 , - 1562 , - 1979 , - 1836 , - 1133 , - 4350 , - 2527 , - 144 , - 1681 , - 2658 , - 3075 , - 2932 , - 2229 , - 966 , - 3623 , - 1240 , - 2777 , - 3754 , - 4171 , - 4028 , - 3325 , - 2062 , - 239 , - 2336 , - 3873 , - 370 , - 787 , - 644 , - 4421 , - 3158 , - 1335 , - 3432 , - 489 , - 1466 , - 1883 , - 1740 , - 1037 , - 4254 , - 2431 , - 48 , - 1585 , - 2562 , - 2979 , - 2836 , - 2133 , - 870 , - 3527 , - 1144 , - 2681 , - 3658 , - 4075 , - 3932 , - 3229 , - 1966 , - 143 , - 2240 , - 3777 , - 274 , - 691 , - 548 , - 4325 , - 3062 , - 1239 , - 3336 , - 393 , - 1370 , - 1787 , - 1644 , - 941 , - 4158 , - 2335 , - 4432 , - 1489 , - 2466 , - 2883 , - 2740 , - 2037 , - 774 , - 3431 , - 1048 , - 2585 , - 3562 , - 3979 , - 3836 , - 3133 , - 1870 , - 47 , - 2144 , - 3681 , - 178 , - 595 , - 452 , - 4229 , - 2966 , - 1143 , - 3240 , - 297 , - 1274 , - 1691 , - 1548 , - 845 , - 4062 , - 2239 , - 4336 , - 1393 , - 2370 , - 2787 , - 2644 , - 1941 , - 678 , - 3335 , - 952 , - 2489 , - 3466 , - 3883 , - 3740 , - 3037 , - 1774 , - 4431 , - 2048 , - 3585 , - 82 , - 499 , - 356 , - 4133 , - 2870 , - 1047 , - 3144 , - 201 , - 1178 , - 1595 , - 1452 , - 749 , - 3966 , - 2143 , - 4240 , - 1297 , - 2274 , - 2691 , - 2548 , - 1845 , - 582 , - 3239 , - 856 , - 2393 , - 3370 , - 3787 , - 3644 , - 2941 , - 1678 , - 4335 , - 1952 , - 3489 , - 4466 , - 403 , - 260 , - 4037 , - 2774 , - 951 , - 3048 , - 105 , - 1082 , - 1499 , - 1356 , - 653 , - 3870 , - 2047 , - 4144 , - 1201 , - 2178 , - 2595 , - 2452 , - 1749 , - 486 , - 3143 , - 760 , - 2297 , - 3274 , - 3691 , - 3548 , - 2845 , - 1582 , - 4239 , - 1856 , - 3393 , - 4370 , - 307 , - 164 , - 3941 , - 2678 , - 855 , - 2952 , - 9 , - 986 , - 1403 , - 1260 , - 557 , - 3774 , - 1951 , - 4048 , - 1105 , - 2082 , - 2499 , - 2356 , - 1653 , - 390 , - 3047 , - 664 , - 2201 , - 3178 , - 3595 , - 3452 , - 2749 , - 1486 , - 4143 , - 1760 , - 3297 , - 4274 , - 211 , - 68 , - 3845 , - 2582 , - 759 , - 2856 , - 4393 , - 890 , - 1307 , - 1164 , - 461 , - 3678 , - 1855 , - 3952 , - 1009 , - 1986 , - 2403 , - 2260 , - 1557 , - 294 , - 2951 , - 568 , - 2105 , - 3082 , - 3499 , - 3356 , - 2653 , - 1390 , - 4047 , - 1664 , - 3201 , - 4178 , - 115 , - 4452 , - 3749 , - 2486 , - 663 , - 2760 , - 4297 , - 794 , - 1211 , - 1068 , - 365 , - 3582 , - 1759 , - 3856 , - 913 , - 1890 , - 2307 , - 2164 , - 1461 , - 198 , - 2855 , - 472 , - 2009 , - 2986 , - 3403 , - 3260 , - 2557 , - 1294 , - 3951 , - 1568 , - 3105 , - 4082 , - 19 , - 4356 , - 3653 , - 2390 , - 567 , - 2664 , - 4201 , - 698 , - 1115 , - 972 , - 269 , - 3486 , - 1663 , - 3760 , - 817 , - 1794 , - 2211 , - 2068 , - 1365 , - 102 , - 2759 , - 376 , - 1913 , - 2890 , - 3307 , - 3164 , - 2461 , - 1198 , - 3855 , - 1472 , - 3009 , - 3986 , - 4403 , - 4260 , - 3557 , - 2294 , - 471 , - 2568 , - 4105 , - 602 , - 1019 , - 876 , - 173 , - 3390 , - 1567 , - 3664 , - 721 , - 1698 , - 2115 , - 1972 , - 1269 , - 6 , - 2663 , - 280 , - 1817 , - 2794 , - 3211 , - 3068 , - 2365 , - 1102 , - 3759 , - 1376 , - 2913 , - 3890 , - 4307 , - 4164 , - 3461 , - 2198 , - 375 , - 2472 , - 4009 , - 506 , - 923 , - 780 , - 77 , - 3294 , - 1471 , - 3568 , - 625 , - 1602 , - 2019 , - 1876 , - 1173 , - 4390 , - 2567 , - 184 , - 1721 , - 2698 , - 3115 , - 2972 , - 2269 , - 1006 , - 3663 , - 1280 , - 2817 , - 3794 , - 4211 , - 4068 , - 3365 , - 2102 , - 279 , - 2376 , - 3913 , - 410 , - 827 , - 684 , - 4461 , - 3198 , - 1375 , - 3472 , - 529 , - 1506 , - 1923 , - 1780 , - 1077 , - 4294 , - 2471 , - 88 , - 1625 , - 2602 , - 3019 , - 2876 , - 2173 , - 910 , - 3567 , - 1184 , - 2721 , - 3698 , - 4115 , - 3972 , - 3269 , - 2006 , - 183 , - 2280 , - 3817 , - 314 , - 731 , - 588 , - 4365 , - 3102 , - 1279 , - 3376 , - 433 , - 1410 , - 1827 , - 1684 , - 981 , - 4198 , - 2375 , - 4472 , - 1529 , - 2506 , - 2923 , - 2780 , - 2077 , - 814 , - 3471 , - 1088 , - 2625 , - 3602 , - 4019 , - 3876 , - 3173 , - 1910 , - 87 , - 2184 , - 3721 , - 218 , - 635 , - 492 , - 4269 , - 3006 , - 1183 , - 3280 , - 337 , - 1314 , - 1731 , - 1588 , - 885 , - 4102 , - 2279 , - 4376 , - 1433 , - 2410 , - 2827 , - 2684 , - 1981 , - 718 , - 3375 , - 992 , - 2529 , - 3506 , - 3923 , - 3780 , - 3077 , - 1814 , - 4471 , - 2088 , - 3625 , - 122 , - 539 , - 396 , - 4173 , - 2910 , - 1087 , - 3184 , - 241 , - 1218 , - 1635 , - 1492 , - 789 , - 4006 , - 2183 , - 4280 , - 1337 , - 2314 , - 2731 , - 2588 , - 1885 , - 622 , - 3279 , - 896 , - 2433 , - 3410 , - 3827 , - 3684 , - 2981 , - 1718 , - 4375 , - 1992 , - 3529 , - 26 , - 443 , - 300 , - 4077 , - 2814 , - 991 , - 3088 , - 145 , - 1122 , - 1539 , - 1396 , - 693 , - 3910 , - 2087 , - 4184 , - 1241 , - 2218 , - 2635 , - 2492 , - 1789 , - 526 , - 3183 , - 800 , - 2337 , - 3314 , - 3731 , - 3588 , - 2885 , - 1622 , - 4279 , - 1896 , - 3433 , - 4410 , - 347 , - 204 , - 3981 , - 2718 , - 895 , - 2992 , - 49 , - 1026 , - 1443 , - 1300 , - 597 , - 3814 , - 1991 , - 4088 , - 1145 , - 2122 , - 2539 , - 2396 , - 1693 , - 430 , - 3087 , - 704 , - 2241 , - 3218 , - 3635 , - 3492 , - 2789 , - 1526 , - 4183 , - 1800 , - 3337 , - 4314 , - 251 , - 108 , - 3885 , - 2622 , - 799 , - 2896 , - 4433 , - 930 , - 1347 , - 1204 , - 501 , - 3718 , - 1895 , - 3992 , - 1049 , - 2026 , - 2443 , - 2300 , - 1597 , - 334 , - 2991 , - 608 , - 2145 , - 3122 , - 3539 , - 3396 , - 2693 , - 1430 , - 4087 , - 1704 , - 3241 , - 4218 , - 155 , - 12 , - 3789 , - 2526 , - 703 , - 2800 , - 4337 , - 834 , - 1251 , - 1108 , - 405 , - 3622 , - 1799 , - 3896 , - 953 , - 1930 , - 2347 , - 2204 , - 1501 , - 238 , - 2895 , - 512 , - 2049 , - 3026 , - 3443 , - 3300 , - 2597 , - 1334 , - 3991 , - 1608 , - 3145 , - 4122 , - 59 , - 4396 , - 3693 , - 2430 , - 607 , - 2704 , - 4241 , - 738 , - 1155 , - 1012 , - 309 , - 3526 , - 1703 , - 3800 , - 857 , - 1834 , - 2251 , - 2108 , - 1405 , - 142 , - 2799 , - 416 , - 1953 , - 2930 , - 3347 , - 3204 , - 2501 , - 1238 , - 3895 , - 1512 , - 3049 , - 4026 , - 4443 , - 4300 , - 3597 , - 2334 , - 511 , - 2608 , - 4145 , - 642 , - 1059 , - 916 , - 213 , - 3430 , - 1607 , - 3704 , - 761 , - 1738 , - 2155 , - 2012 , - 1309 , - 46 , - 2703 , - 320 , - 1857 , - 2834 , - 3251 , - 3108 , - 2405 , - 1142 , - 3799 , - 1416 , - 2953 , - 3930 , - 4347 , - 4204 , - 3501 , - 2238 , - 415 , - 2512 , - 4049 , - 546 , - 963 , - 820 , - 117 , - 3334 , - 1511 , - 3608 , - 665 , - 1642 , - 2059 , - 1916 , - 1213 , - 4430 , - 2607 , - 224 , - 1761 , - 2738 , - 3155 , - 3012 , - 2309 , - 1046 , - 3703 , - 1320 , - 2857 , - 3834 , - 4251 , - 4108 , - 3405 , - 2142 , - 319 , - 2416 , - 3953 , - 450 , - 867 , - 724 , - 21 , - 3238 , - 1415 , - 3512 , - 569 , - 1546 , - 1963 , - 1820 , - 1117 , - 4334 , - 2511 , - 128 , - 1665 , - 2642 , - 3059 , - 2916 , - 2213 , - 950 , - 3607 , - 1224 , - 2761 , - 3738 , - 4155 , - 4012 , - 3309 , - 2046 , - 223 , - 2320 , - 3857 , - 354 , - 771 , - 628 , - 4405 , - 3142 , - 1319 , - 3416 , - 473 , - 1450 , - 1867 , - 1724 , - 1021 , - 4238 , - 2415 , - 32 , - 1569 , - 2546 , - 2963 , - 2820 , - 2117 , - 854 , - 3511 , - 1128 , - 2665 , - 3642 , - 4059 , - 3916 , - 3213 , - 1950 , - 127 , - 2224 , - 3761 , - 258 , - 675 , - 532 , - 4309 , - 3046 , - 1223 , - 3320 , - 377 , - 1354 , - 1771 , - 1628 , - 925 , - 4142 , - 2319 , - 4416 , - 1473 , - 2450 , - 2867 , - 2724 , - 2021 , - 758 , - 3415 , - 1032 , - 2569 , - 3546 , - 3963 , - 3820 , - 3117 , - 1854 , - 31 , - 2128 , - 3665 , - 162 , - 579 , - 436 , - 4213 , - 2950 , - 1127 , - 3224 , - 281 , - 1258 , - 1675 , - 1532 , - 829 , - 4046 , - 2223 , - 4320 , - 1377 , - 2354 , - 2771 , - 2628 , - 1925 , - 662 , - 3319 , - 936 , - 2473 , - 3450 , - 3867 , - 3724 , - 3021 , - 1758 , - 4415 , - 2032 , - 3569 , - 66 , - 483 , - 340 , - 4117 , - 2854 , - 1031 , - 3128 , - 185 , - 1162 , - 1579 , - 1436 , - 733 , - 3950 , - 2127 , - 4224 , - 1281 , - 2258 , - 2675 , - 2532 , - 1829 , - 566 , - 3223 , - 840 , - 2377 , - 3354 , - 3771 , - 3628 , - 2925 , - 1662 , - 4319 , - 1936 , - 3473 , - 4450 , - 387 , - 244 , - 4021 , - 2758 , - 935 , - 3032 , - 89 , - 1066 , - 1483 , - 1340 , - 637 , - 3854 , - 2031 , - 4128 , - 1185 , - 2162 , - 2579 , - 2436 , - 1733 , - 470 , - 3127 , - 744 , - 2281 , - 3258 , - 3675 , - 3532 , - 2829 , - 1566 , - 4223 , - 1840 , - 3377 , - 4354 , - 291 , - 148 , - 3925 , - 2662 , - 839 , - 2936 , - 4473 , - 970 , - 1387 , - 1244 , - 541 , - 3758 , - 1935 , - 4032 , - 1089 , - 2066 , - 2483 , - 2340 , - 1637 , - 374 , - 3031 , - 648 , - 2185 , - 3162 , - 3579 , - 3436 , - 2733 , - 1470 , - 4127 , - 1744 , - 3281 , - 4258 , - 195 , - 52 , - 3829 , - 2566 , - 743 , - 2840 , - 4377 , - 874 , - 1291 , - 1148 , - 445 , - 3662 , - 1839 , - 3936 , - 993 , - 1970 , - 2387 , - 2244 , - 1541 , - 278 , - 2935 , - 552 , - 2089 , - 3066 , - 3483 , - 3340 , - 2637 , - 1374 , - 4031 , - 1648 , - 3185 , - 4162 , - 99 , - 4436 , - 3733 , - 2470 , - 647 , - 2744 , - 4281 , - 778 , - 1195 , - 1052 , - 349 , - 3566 , - 1743 , - 3840 , - 897 , - 1874 , - 2291 , - 2148 , - 1445 , - 182 , - 2839 , - 456 , - 1993 , - 2970 , - 3387 , - 3244 , - 2541 , - 1278 , - 3935 , - 1552 , - 3089 , - 4066 , - 3 , - 4340 , - 3637 , - 2374 , - 551 , - 2648 , - 4185 , - 682 , - 1099 , - 956 , - 253 , - 3470 , - 1647 , - 3744 , - 801 , - 1778 , - 2195 , - 2052 , - 1349 , - 86 , - 2743 , - 360 , - 1897 , - 2874 , - 3291 , - 3148 , - 2445 , - 1182 , - 3839 , - 1456 , - 2993 , - 3970 , - 4387 , - 4244 , - 3541 , - 2278 , - 455 , - 2552 , - 4089 , - 586 , - 1003 , - 860 , - 157 , - 3374 , - 1551 , - 3648 , - 705 , - 1682 , - 2099 , - 1956 , - 1253 , - 4470 , - 2647 , - 264 , - 1801 , - 2778 , - 3195 , - 3052 , - 2349 , - 1086 , - 3743 , - 1360 , - 2897 , - 3874 , - 4291 , - 4148 , - 3445 , - 2182 , - 359 , - 2456 , - 3993 , - 490 , - 907 , - 764 , - 61 , - 3278 , - 1455 , - 3552 , - 609 , - 1586 , - 2003 , - 1860 , - 1157 , - 4374 , - 2551 , - 168 , - 1705 , - 2682 , - 3099 , - 2956 , - 2253 , - 990 , - 3647 , - 1264 , - 2801 , - 3778 , - 4195 , - 4052 , - 3349 , - 2086 , - 263 , - 2360 , - 3897 , - 394 , - 811 , - 668 , - 4445 , - 3182 , - 1359 , - 3456 , - 513 , - 1490 , - 1907 , - 1764 , - 1061 , - 4278 , - 2455 , - 72 , - 1609 , - 2586 , - 3003 , - 2860 , - 2157 , - 894 , - 3551 , - 1168 , - 2705 , - 3682 , - 4099 , - 3956 , - 3253 , - 1990 , - 167 , - 2264 , - 3801 , - 298 , - 715 , - 572 , - 4349 , - 3086 , - 1263 , - 3360 , - 417 , - 1394 , - 1811 , - 1668 , - 965 , - 4182 , - 2359 , - 4456 , - 1513 , - 2490 , - 2907 , - 2764 , - 2061 , - 798 , - 3455 , - 1072 , - 2609 , - 3586 , - 4003 , - 3860 , - 3157 , - 1894 , - 71 , - 2168 , - 3705 , - 202 , - 619 , - 476 , - 4253 , - 2990 , - 1167 , - 3264 , - 321 , - 1298 , - 1715 , - 1572 , - 869 , - 4086 , - 2263 , - 4360 , - 1417 , - 2394 , - 2811 , - 2668 , - 1965 , - 702 , - 3359 , - 976 , - 2513 , - 3490 , - 3907 , - 3764 , - 3061 , - 1798 , - 4455 , - 2072 , - 3609 , - 106 , - 523 , - 380 , - 4157 , - 2894 , - 1071 , - 3168 , - 225 , - 1202 , - 1619 , - 1476 , - 773 , - 3990 , - 2167 , - 4264 , - 1321 , - 2298 , - 2715 , - 2572 , - 1869 , - 606 , - 3263 , - 880 , - 2417 , - 3394 , - 3811 , - 3668 , - 2965 , - 1702 , - 4359 , - 1976 , - 3513 , - 10 , - 427 , - 284 , - 4061 , - 2798 , - 975 , - 3072 , - 129 , - 1106 , - 1523 , - 1380 , - 677 , - 3894 , - 2071 , - 4168 , - 1225 , - 2202 , - 2619 , - 2476 , - 1773 , - 510 , - 3167 , - 784 , - 2321 , - 3298 , - 3715 , - 3572 , - 2869 , - 1606 , - 4263 , - 1880 , - 3417 , - 4394 , - 331 , - 188 , - 3965 , - 2702 , - 879 , - 2976 , - 33 , - 1010 , - 1427 , - 1284 , - 581 , - 3798 , - 1975 , - 4072 , - 1129 , - 2106 , - 2523 , - 2380 , - 1677 , - 414 , - 3071 , - 688 , - 2225 , - 3202 , - 3619 , - 3476 , - 2773 , - 1510 , - 4167 , - 1784 , - 3321 , - 4298 , - 235 , - 92 , - 3869 , - 2606 , - 783 , - 2880 , - 4417 , - 914 , - 1331 , - 1188 , - 485 , - 3702 , - 1879 , - 3976 , - 1033 , - 2010 , - 2427 , - 2284 , - 1581 , - 318 , - 2975 , - 592 , - 2129 , - 3106 , - 3523 , - 3380 , - 2677 , - 1414 , - 4071 , - 1688 , - 3225 , - 4202 , - 139 , - 4476 , - 3773 , - 2510 , - 687 , - 2784 , - 4321 , - 818 , - 1235 , - 1092 , - 389 , - 3606 , - 1783 , - 3880 , - 937 , - 1914 , - 2331 , - 2188 , - 1485 , - 222 , - 2879 , - 496 , - 2033 , - 3010 , - 3427 , - 3284 , - 2581 , - 1318 , - 3975 , - 1592 , - 3129 , - 4106 , - 43 , - 4380 , - 3677 , - 2414 , - 591 , - 2688 , - 4225 , - 722 , - 1139 , - 996 , - 293 , - 3510 , - 1687 , - 3784 , - 841 , - 1818 , - 2235 , - 2092 , - 1389 , - 126 , - 2783 , - 400 , - 1937 , - 2914 , - 3331 , - 3188 , - 2485 , - 1222 , - 3879 , - 1496 , - 3033 , - 4010 , - 4427 , - 4284 , - 3581 , - 2318 , - 495 , - 2592 , - 4129 , - 626 , - 1043 , - 900 , - 197 , - 3414 , - 1591 , - 3688 , - 745 , - 1722 , - 2139 , - 1996 , - 1293 , - 30 , - 2687 , - 304 , - 1841 , - 2818 , - 3235 , - 3092 , - 2389 , - 1126 , - 3783 , - 1400 , - 2937 , - 3914 , - 4331 , - 4188 , - 3485 , - 2222 , - 399 , - 2496 , - 4033 , - 530 , - 947 , - 804 , - 101 , - 3318 , - 1495 , - 3592 , - 649 , - 1626 , - 2043 , - 1900 , - 1197 , - 4414 , - 2591 , - 208 , - 1745 , - 2722 , - 3139 , - 2996 , - 2293 , - 1030 , - 3687 , - 1304 , - 2841 , - 3818 , - 4235 , - 4092 , - 3389 , - 2126 , - 303 , - 2400 , - 3937 , - 434 , - 851 , - 708 , - 5 , - 3222 , - 1399 , - 3496 , - 553 , - 1530 , - 1947 , - 1804 , - 1101 , - 4318 , - 2495 , - 112 , - 1649 , - 2626 , - 3043 , - 2900 , - 2197 , - 934 , - 3591 , - 1208 , - 2745 , - 3722 , - 4139 , - 3996 , - 3293 , - 2030 , - 207 , - 2304 , - 3841 , - 338 , - 755 , - 612 , - 4389 , - 3126 , - 1303 , - 3400 , - 457 , - 1434 , - 1851 , - 1708 , - 1005 , - 4222 , - 2399 , - 16 , - 1553 , - 2530 , - 2947 , - 2804 , - 2101 , - 838 , - 3495 , - 1112 , - 2649 , - 3626 , - 4043 , - 3900 , - 3197 , - 1934 , - 111 , - 2208 , - 3745 , - 242 , - 659 , - 516 , - 4293 , - 3030 , - 1207 , - 3304 , - 361 , - 1338 , - 1755 , - 1612 , - 909 , - 4126 , - 2303 , - 4400 , - 1457 , - 2434 , - 2851 , - 2708 , - 2005 , - 742 , - 3399 , - 1016 , - 2553 , - 3530 , - 3947 , - 3804 , - 3101 , - 1838 , - 15 , - 2112 , - 3649 , - 146 , - 563 , - 420 , - 4197 , - 2934 , - 1111 , - 3208 , - 265 , - 1242 , - 1659 , - 1516 , - 813 , - 4030 , - 2207 , - 4304 , - 1361 , - 2338 , - 2755 , - 2612 , - 1909 , - 646 , - 3303 , - 920 , - 2457 , - 3434 , - 3851 , - 3708 , - 3005 , - 1742 , - 4399 , - 2016 , - 3553 , - 50 , - 467 , - 324 , - 4101 , - 2838 , - 1015 , - 3112 , - 169 , - 1146 , - 1563 , - 1420 , - 717 , - 3934 , - 2111 , - 4208 , - 1265 , - 2242 , - 2659 , - 2516 , - 1813 , - 550 , - 3207 , - 824 , - 2361 , - 3338 , - 3755 , - 3612 , - 2909 , - 1646 , - 4303 , - 1920 , - 3457 , - 4434 , - 371 , - 228 , - 4005 , - 2742 , - 919 , - 3016 , - 73 , - 1050 , - 1467 , - 1324 , - 621 , - 3838 , - 2015 , - 4112 , - 1169 , - 2146 , - 2563 , - 2420 , - 1717 , - 454 , - 3111 , - 728 , - 2265 , - 3242 , - 3659 , - 3516 , - 2813 , - 1550 , - 4207 , - 1824 , - 3361 , - 4338 , - 275 , - 132 , - 3909 , - 2646 , - 823 , - 2920 , - 4457 , - 954 , - 1371 , - 1228 , - 525 , - 3742 , - 1919 , - 4016 , - 1073 , - 2050 , - 2467 , - 2324 , - 1621 , - 358 , - 3015 , - 632 , - 2169 , - 3146 , - 3563 , - 3420 , - 2717 , - 1454 , - 4111 , - 1728 , - 3265 , - 4242 , - 179 , - 36 , - 3813 , - 2550 , - 727 , - 2824 , - 4361 , - 858 , - 1275 , - 1132 , - 429 , - 3646 , - 1823 , - 3920 , - 977 , - 1954 , - 2371 , - 2228 , - 1525 , - 262 , - 2919 , - 536 , - 2073 , - 3050 , - 3467 , - 3324 , - 2621 , - 1358 , - 4015 , - 1632 , - 3169 , - 4146 , - 83 , - 4420 , - 3717 , - 2454 , - 631 , - 2728 , - 4265 , - 762 , - 1179 , - 1036 , - 333 , - 3550 , - 1727 , - 3824 , - 881 , - 1858 , - 2275 , - 2132 , - 1429 , - 166 , - 2823 , - 440 , - 1977 , - 2954 , - 3371 , - 3228 , - 2525 , - 1262 , - 3919 , - 1536 , - 3073 , - 4050 , - 4467 , - 4324 , - 3621 , - 2358 , - 535 , - 2632 , - 4169 , - 666 , - 1083 , - 940 , - 237 , - 3454 , - 1631 , - 3728 , - 785 , - 1762 , - 2179 , - 2036 , - 1333 , - 70 , - 2727 , - 344 , - 1881 , - 2858 , - 3275 , - 3132 , - 2429 , - 1166 , - 3823 , - 1440 , - 2977 , - 3954 , - 4371 , - 4228 , - 3525 , - 2262 , - 439 , - 2536 , - 4073 , - 570 , - 987 , - 844 , - 141 , - 3358 , - 1535 , - 3632 , - 689 , - 1666 , - 2083 , - 1940 , - 1237 , - 4454 , - 2631 , - 248 , - 1785 , - 2762 , - 3179 , - 3036 , - 2333 , - 1070 , - 3727 , - 1344 , - 2881 , - 3858 , - 4275 , - 4132 , - 3429 , - 2166 , - 343 , - 2440 , - 3977 , - 474 , - 891 , - 748 , - 45 , - 3262 , - 1439 , - 3536 , - 593 , - 1570 , - 1987 , - 1844 , - 1141 , - 4358 , - 2535 , - 152 , - 1689 , - 2666 , - 3083 , - 2940 , - 2237 , - 974 , - 3631 , - 1248 , - 2785 , - 3762 , - 4179 , - 4036 , - 3333 , - 2070 , - 247 , - 2344 , - 3881 , - 378 , - 795 , - 652 , - 4429 , - 3166 , - 1343 , - 3440 , - 497 , - 1474 , - 1891 , - 1748 , - 1045 , - 4262 , - 2439 , - 56 , - 1593 , - 2570 , - 2987 , - 2844 , - 2141 , - 878 , - 3535 , - 1152 , - 2689 , - 3666 , - 4083 , - 3940 , - 3237 , - 1974 , - 151 , - 2248 , - 3785 , - 282 , - 699 , - 556 , - 4333 , - 3070 , - 1247 , - 3344 , - 401 , - 1378 , - 1795 , - 1652 , - 949 , - 4166 , - 2343 , - 4440 , - 1497 , - 2474 , - 2891 , - 2748 , - 2045 , - 782 , - 3439 , - 1056 , - 2593 , - 3570 , - 3987 , - 3844 , - 3141 , - 1878 , - 55 , - 2152 , - 3689 , - 186 , - 603 , - 460 , - 4237 , - 2974 , - 1151 , - 3248 , - 305 , - 1282 , - 1699 , - 1556 , - 853 , - 4070 , - 2247 , - 4344 , - 1401 , - 2378 , - 2795 , - 2652 , - 1949 , - 686 , - 3343 , - 960 , - 2497 , - 3474 , - 3891 , - 3748 , - 3045 , - 1782 , - 4439 , - 2056 , - 3593 , - 90 , - 507 , - 364 , - 4141 , - 2878 , - 1055 , - 3152 , - 209 , - 1186 , - 1603 , - 1460 , - 757 , - 3974 , - 2151 , - 4248 , - 1305 , - 2282 , - 2699 , - 2556 , - 1853 , - 590 , - 3247 , - 864 , - 2401 , - 3378 , - 3795 , - 3652 , - 2949 , - 1686 , - 4343 , - 1960 , - 3497 , - 4474 , - 411 , - 268 , - 4045 , - 2782 , - 959 , - 3056 , - 113 , - 1090 , - 1507 , - 1364 , - 661 , - 3878 , - 2055 , - 4152 , - 1209 , - 2186 , - 2603 , - 2460 , - 1757 , - 494 , - 3151 , - 768 , - 2305 , - 3282 , - 3699 , - 3556 , - 2853 , - 1590 , - 4247 , - 1864 , - 3401 , - 4378 , - 315 , - 172 , - 3949 , - 2686 , - 863 , - 2960 , - 17 , - 994 , - 1411 , - 1268 , - 565 , - 3782 , - 1959 , - 4056 , - 1113 , - 2090 , - 2507 , - 2364 , - 1661 , - 398 , - 3055 , - 672 , - 2209 , - 3186 , - 3603 , - 3460 , - 2757 , - 1494 , - 4151 , - 1768 , - 3305 , - 4282 , - 219 , - 76 , - 3853 , - 2590 , - 767 , - 2864 , - 4401 , - 898 , - 1315 , - 1172 , - 469 , - 3686 , - 1863 , - 3960 , - 1017 , - 1994 , - 2411 , - 2268 , - 1565 , - 302 , - 2959 , - 576 , - 2113 , - 3090 , - 3507 , - 3364 , - 2661 , - 1398 , - 4055 , - 1672 , - 3209 , - 4186 , - 123 , - 4460 , - 3757 , - 2494 , - 671 , - 2768 , - 4305 , - 802 , - 1219 , - 1076 , - 373 , - 3590 , - 1767 , - 3864 , - 921 , - 1898 , - 2315 , - 2172 , - 1469 , - 206 , - 2863 , - 480 , - 2017 , - 2994 , - 3411 , - 3268 , - 2565 , - 1302 , - 3959 , - 1576 , - 3113 , - 4090 , - 27 , - 4364 , - 3661 , - 2398 , - 575 , - 2672 , - 4209 , - 706 , - 1123 , - 980 , - 277 , - 3494 , - 1671 , - 3768 , - 825 , - 1802 , - 2219 , - 2076 , - 1373 , - 110 , - 2767 , - 384 , - 1921 , - 2898 , - 3315 , - 3172 , - 2469 , - 1206 , - 3863 , - 1480 , - 3017 , - 3994 , - 4411 , - 4268 , - 3565 , - 2302 , - 479 , - 2576 , - 4113 , - 610 , - 1027 , - 884 , - 181 , - 3398 , - 1575 , - 3672 , - 729 , - 1706 , - 2123 , - 1980 , - 1277 , - 14 , - 2671 , - 288 , - 1825 , - 2802 , - 3219 , - 3076 , - 2373 , - 1110 , - 3767 , - 1384 , - 2921 , - 3898 , - 4315 , - 4172 , - 3469 , - 2206 , - 383 , - 2480 , - 4017 , - 514 , - 931 , - 788 , - 85 , - 3302 , - 1479 , - 3576 , - 633 , - 1610 , - 2027 , - 1884 , - 1181 , - 4398 , - 2575 , - 192 , - 1729 , - 2706 , - 3123 , - 2980 , - 2277 , - 1014 , - 3671 , - 1288 , - 2825 , - 3802 , - 4219 , - 4076 , - 3373 , - 2110 , - 287 , - 2384 , - 3921 , - 418 , - 835 , - 692 , - 4469 , - 3206 , - 1383 , - 3480 , - 537 , - 1514 , - 1931 , - 1788 , - 1085 , - 4302 , - 2479 , - 96 , - 1633 , - 2610 , - 3027 , - 2884 , - 2181 , - 918 , - 3575 , - 1192 , - 2729 , - 3706 , - 4123 , - 3980 , - 3277 , - 2014 , - 191 , - 2288 , - 3825 , - 322 , - 739 , - 596 , - 4373 , - 3110 , - 1287 , - 3384 , - 441 , - 1418 , - 1835 , - 1692 , - 989 , - 4206 , - 2383 , - 0 , - 3799 , - 3906 , - 3729 , - 2132 , - 2523 , - 3766 , - 181 , - 4264 , - 1247 , - 3626 , - 1177 , - 1852 , - 4515 , - 3486 , - 2173 , - 3984 , - 3239 , - 3346 , - 3169 , - 1572 , - 1963 , - 3206 , - 4165 , - 3704 , - 687 , - 3066 , - 617 , - 1292 , - 3955 , - 2926 , - 1613 , - 3424 , - 2679 , - 2786 , - 2609 , - 1012 , - 1403 , - 2646 , - 3605 , - 3144 , - 127 , - 2506 , - 57 , - 732 , - 3395 , - 2366 , - 1053 , - 2864 , - 2119 , - 2226 , - 2049 , - 452 , - 843 , - 2086 , - 3045 , - 2584 , - 4111 , - 1946 , - 4041 , - 172 , - 2835 , - 1806 , - 493 , - 2304 , - 1559 , - 1666 , - 1489 , - 4436 , - 283 , - 1526 , - 2485 , - 2024 , - 3551 , - 1386 , - 3481 , - 4156 , - 2275 , - 1246 , - 4477 , - 1744 , - 999 , - 1106 , - 929 , - 3876 , - 4267 , - 966 , - 1925 , - 1464 , - 2991 , - 826 , - 2921 , - 3596 , - 1715 , - 686 , - 3917 , - 1184 , - 439 , - 546 , - 369 , - 3316 , - 3707 , - 406 , - 1365 , - 904 , - 2431 , - 266 , - 2361 , - 3036 , - 1155 , - 126 , - 3357 , - 624 , - 4423 , - 4530 , - 4353 , - 2756 , - 3147 , - 4390 , - 805 , - 344 , - 1871 , - 4250 , - 1801 , - 2476 , - 595 , - 4110 , - 2797 , - 64 , - 3863 , - 3970 , - 3793 , - 2196 , - 2587 , - 3830 , - 245 , - 4328 , - 1311 , - 3690 , - 1241 , - 1916 , - 35 , - 3550 , - 2237 , - 4048 , - 3303 , - 3410 , - 3233 , - 1636 , - 2027 , - 3270 , - 4229 , - 3768 , - 751 , - 3130 , - 681 , - 1356 , - 4019 , - 2990 , - 1677 , - 3488 , - 2743 , - 2850 , - 2673 , - 1076 , - 1467 , - 2710 , - 3669 , - 3208 , - 191 , - 2570 , - 121 , - 796 , - 3459 , - 2430 , - 1117 , - 2928 , - 2183 , - 2290 , - 2113 , - 516 , - 907 , - 2150 , - 3109 , - 2648 , - 4175 , - 2010 , - 4105 , - 236 , - 2899 , - 1870 , - 557 , - 2368 , - 1623 , - 1730 , - 1553 , - 4500 , - 347 , - 1590 , - 2549 , - 2088 , - 3615 , - 1450 , - 3545 , - 4220 , - 2339 , - 1310 , - 4541 , - 1808 , - 1063 , - 1170 , - 993 , - 3940 , - 4331 , - 1030 , - 1989 , - 1528 , - 3055 , - 890 , - 2985 , - 3660 , - 1779 , - 750 , - 3981 , - 1248 , - 503 , - 610 , - 433 , - 3380 , - 3771 , - 470 , - 1429 , - 968 , - 2495 , - 330 , - 2425 , - 3100 , - 1219 , - 190 , - 3421 , - 688 , - 4487 , - 50 , - 4417 , - 2820 , - 3211 , - 4454 , - 869 , - 408 , - 1935 , - 4314 , - 1865 , - 2540 , - 659 , - 4174 , - 2861 , - 128 , - 3927 , - 4034 , - 3857 , - 2260 , - 2651 , - 3894 , - 309 , - 4392 , - 1375 , - 3754 , - 1305 , - 1980 , - 99 , - 3614 , - 2301 , - 4112 , - 3367 , - 3474 , - 3297 , - 1700 , - 2091 , - 3334 , - 4293 , - 3832 , - 815 , - 3194 , - 745 , - 1420 , - 4083 , - 3054 , - 1741 , - 3552 , - 2807 , - 2914 , - 2737 , - 1140 , - 1531 , - 2774 , - 3733 , - 3272 , - 255 , - 2634 , - 185 , - 860 , - 3523 , - 2494 , - 1181 , - 2992 , - 2247 , - 2354 , - 2177 , - 580 , - 971 , - 2214 , - 3173 , - 2712 , - 4239 , - 2074 , - 4169 , - 300 , - 2963 , - 1934 , - 621 , - 2432 , - 1687 , - 1794 , - 1617 , - 20 , - 411 , - 1654 , - 2613 , - 2152 , - 3679 , - 1514 , - 3609 , - 4284 , - 2403 , - 1374 , - 61 , - 1872 , - 1127 , - 1234 , - 1057 , - 4004 , - 4395 , - 1094 , - 2053 , - 1592 , - 3119 , - 954 , - 3049 , - 3724 , - 1843 , - 814 , - 4045 , - 1312 , - 567 , - 674 , - 497 , - 3444 , - 3835 , - 534 , - 1493 , - 1032 , - 2559 , - 394 , - 2489 , - 3164 , - 1283 , - 254 , - 3485 , - 752 , - 7 , - 114 , - 4481 , - 2884 , - 3275 , - 4518 , - 933 , - 472 , - 1999 , - 4378 , - 1929 , - 2604 , - 723 , - 4238 , - 2925 , - 192 , - 3991 , - 4098 , - 3921 , - 2324 , - 2715 , - 3958 , - 373 , - 4456 , - 1439 , - 3818 , - 1369 , - 2044 , - 163 , - 3678 , - 2365 , - 4176 , - 3431 , - 3538 , - 3361 , - 1764 , - 2155 , - 3398 , - 4357 , - 3896 , - 879 , - 3258 , - 809 , - 1484 , - 4147 , - 3118 , - 1805 , - 3616 , - 2871 , - 2978 , - 2801 , - 1204 , - 1595 , - 2838 , - 3797 , - 3336 , - 319 , - 2698 , - 249 , - 924 , - 3587 , - 2558 , - 1245 , - 3056 , - 2311 , - 2418 , - 2241 , - 644 , - 1035 , - 2278 , - 3237 , - 2776 , - 4303 , - 2138 , - 4233 , - 364 , - 3027 , - 1998 , - 685 , - 2496 , - 1751 , - 1858 , - 1681 , - 84 , - 475 , - 1718 , - 2677 , - 2216 , - 3743 , - 1578 , - 3673 , - 4348 , - 2467 , - 1438 , - 125 , - 1936 , - 1191 , - 1298 , - 1121 , - 4068 , - 4459 , - 1158 , - 2117 , - 1656 , - 3183 , - 1018 , - 3113 , - 3788 , - 1907 , - 878 , - 4109 , - 1376 , - 631 , - 738 , - 561 , - 3508 , - 3899 , - 598 , - 1557 , - 1096 , - 2623 , - 458 , - 2553 , - 3228 , - 1347 , - 318 , - 3549 , - 816 , - 71 , - 178 , - 1 , - 2948 , - 3339 , - 38 , - 997 , - 536 , - 2063 , - 4442 , - 1993 , - 2668 , - 787 , - 4302 , - 2989 , - 256 , - 4055 , - 4162 , - 3985 , - 2388 , - 2779 , - 4022 , - 437 , - 4520 , - 1503 , - 3882 , - 1433 , - 2108 , - 227 , - 3742 , - 2429 , - 4240 , - 3495 , - 3602 , - 3425 , - 1828 , - 2219 , - 3462 , - 4421 , - 3960 , - 943 , - 3322 , - 873 , - 1548 , - 4211 , - 3182 , - 1869 , - 3680 , - 2935 , - 3042 , - 2865 , - 1268 , - 1659 , - 2902 , - 3861 , - 3400 , - 383 , - 2762 , - 313 , - 988 , - 3651 , - 2622 , - 1309 , - 3120 , - 2375 , - 2482 , - 2305 , - 708 , - 1099 , - 2342 , - 3301 , - 2840 , - 4367 , - 2202 , - 4297 , - 428 , - 3091 , - 2062 , - 749 , - 2560 , - 1815 , - 1922 , - 1745 , - 148 , - 539 , - 1782 , - 2741 , - 2280 , - 3807 , - 1642 , - 3737 , - 4412 , - 2531 , - 1502 , - 189 , - 2000 , - 1255 , - 1362 , - 1185 , - 4132 , - 4523 , - 1222 , - 2181 , - 1720 , - 3247 , - 1082 , - 3177 , - 3852 , - 1971 , - 942 , - 4173 , - 1440 , - 695 , - 802 , - 625 , - 3572 , - 3963 , - 662 , - 1621 , - 1160 , - 2687 , - 522 , - 2617 , - 3292 , - 1411 , - 382 , - 3613 , - 880 , - 135 , - 242 , - 65 , - 3012 , - 3403 , - 102 , - 1061 , - 600 , - 2127 , - 4506 , - 2057 , - 2732 , - 851 , - 4366 , - 3053 , - 320 , - 4119 , - 4226 , - 4049 , - 2452 , - 2843 , - 4086 , - 501 , - 40 , - 1567 , - 3946 , - 1497 , - 2172 , - 291 , - 3806 , - 2493 , - 4304 , - 3559 , - 3666 , - 3489 , - 1892 , - 2283 , - 3526 , - 4485 , - 4024 , - 1007 , - 3386 , - 937 , - 1612 , - 4275 , - 3246 , - 1933 , - 3744 , - 2999 , - 3106 , - 2929 , - 1332 , - 1723 , - 2966 , - 3925 , - 3464 , - 447 , - 2826 , - 377 , - 1052 , - 3715 , - 2686 , - 1373 , - 3184 , - 2439 , - 2546 , - 2369 , - 772 , - 1163 , - 2406 , - 3365 , - 2904 , - 4431 , - 2266 , - 4361 , - 492 , - 3155 , - 2126 , - 813 , - 2624 , - 1879 , - 1986 , - 1809 , - 212 , - 603 , - 1846 , - 2805 , - 2344 , - 3871 , - 1706 , - 3801 , - 4476 , - 2595 , - 1566 , - 253 , - 2064 , - 1319 , - 1426 , - 1249 , - 4196 , - 43 , - 1286 , - 2245 , - 1784 , - 3311 , - 1146 , - 3241 , - 3916 , - 2035 , - 1006 , - 4237 , - 1504 , - 759 , - 866 , - 689 , - 3636 , - 4027 , - 726 , - 1685 , - 1224 , - 2751 , - 586 , - 2681 , - 3356 , - 1475 , - 446 , - 3677 , - 944 , - 199 , - 306 , - 129 , - 3076 , - 3467 , - 166 , - 1125 , - 664 , - 2191 , - 26 , - 2121 , - 2796 , - 915 , - 4430 , - 3117 , - 384 , - 4183 , - 4290 , - 4113 , - 2516 , - 2907 , - 4150 , - 565 , - 104 , - 1631 , - 4010 , - 1561 , - 2236 , - 355 , - 3870 , - 2557 , - 4368 , - 3623 , - 3730 , - 3553 , - 1956 , - 2347 , - 3590 , - 5 , - 4088 , - 1071 , - 3450 , - 1001 , - 1676 , - 4339 , - 3310 , - 1997 , - 3808 , - 3063 , - 3170 , - 2993 , - 1396 , - 1787 , - 3030 , - 3989 , - 3528 , - 511 , - 2890 , - 441 , - 1116 , - 3779 , - 2750 , - 1437 , - 3248 , - 2503 , - 2610 , - 2433 , - 836 , - 1227 , - 2470 , - 3429 , - 2968 , - 4495 , - 2330 , - 4425 , - 556 , - 3219 , - 2190 , - 877 , - 2688 , - 1943 , - 2050 , - 1873 , - 276 , - 667 , - 1910 , - 2869 , - 2408 , - 3935 , - 1770 , - 3865 , - 4540 , - 2659 , - 1630 , - 317 , - 2128 , - 1383 , - 1490 , - 1313 , - 4260 , - 107 , - 1350 , - 2309 , - 1848 , - 3375 , - 1210 , - 3305 , - 3980 , - 2099 , - 1070 , - 4301 , - 1568 , - 823 , - 930 , - 753 , - 3700 , - 4091 , - 790 , - 1749 , - 1288 , - 2815 , - 650 , - 2745 , - 3420 , - 1539 , - 510 , - 3741 , - 1008 , - 263 , - 370 , - 193 , - 3140 , - 3531 , - 230 , - 1189 , - 728 , - 2255 , - 90 , - 2185 , - 2860 , - 979 , - 4494 , - 3181 , - 448 , - 4247 , - 4354 , - 4177 , - 2580 , - 2971 , - 4214 , - 629 , - 168 , - 1695 , - 4074 , - 1625 , - 2300 , - 419 , - 3934 , - 2621 , - 4432 , - 3687 , - 3794 , - 3617 , - 2020 , - 2411 , - 3654 , - 69 , - 4152 , - 1135 , - 3514 , - 1065 , - 1740 , - 4403 , - 3374 , - 2061 , - 3872 , - 3127 , - 3234 , - 3057 , - 1460 , - 1851 , - 3094 , - 4053 , - 3592 , - 575 , - 2954 , - 505 , - 1180 , - 3843 , - 2814 , - 1501 , - 3312 , - 2567 , - 2674 , - 2497 , - 900 , - 1291 , - 2534 , - 3493 , - 3032 , - 15 , - 2394 , - 4489 , - 620 , - 3283 , - 2254 , - 941 , - 2752 , - 2007 , - 2114 , - 1937 , - 340 , - 731 , - 1974 , - 2933 , - 2472 , - 3999 , - 1834 , - 3929 , - 60 , - 2723 , - 1694 , - 381 , - 2192 , - 1447 , - 1554 , - 1377 , - 4324 , - 171 , - 1414 , - 2373 , - 1912 , - 3439 , - 1274 , - 3369 , - 4044 , - 2163 , - 1134 , - 4365 , - 1632 , - 887 , - 994 , - 817 , - 3764 , - 4155 , - 854 , - 1813 , - 1352 , - 2879 , - 714 , - 2809 , - 3484 , - 1603 , - 574 , - 3805 , - 1072 , - 327 , - 434 , - 257 , - 3204 , - 3595 , - 294 , - 1253 , - 792 , - 2319 , - 154 , - 2249 , - 2924 , - 1043 , - 14 , - 3245 , - 512 , - 4311 , - 4418 , - 4241 , - 2644 , - 3035 , - 4278 , - 693 , - 232 , - 1759 , - 4138 , - 1689 , - 2364 , - 483 , - 3998 , - 2685 , - 4496 , - 3751 , - 3858 , - 3681 , - 2084 , - 2475 , - 3718 , - 133 , - 4216 , - 1199 , - 3578 , - 1129 , - 1804 , - 4467 , - 3438 , - 2125 , - 3936 , - 3191 , - 3298 , - 3121 , - 1524 , - 1915 , - 3158 , - 4117 , - 3656 , - 639 , - 3018 , - 569 , - 1244 , - 3907 , - 2878 , - 1565 , - 3376 , - 2631 , - 2738 , - 2561 , - 964 , - 1355 , - 2598 , - 3557 , - 3096 , - 79 , - 2458 , - 9 , - 684 , - 3347 , - 2318 , - 1005 , - 2816 , - 2071 , - 2178 , - 2001 , - 404 , - 795 , - 2038 , - 2997 , - 2536 , - 4063 , - 1898 , - 3993 , - 124 , - 2787 , - 1758 , - 445 , - 2256 , - 1511 , - 1618 , - 1441 , - 4388 , - 235 , - 1478 , - 2437 , - 1976 , - 3503 , - 1338 , - 3433 , - 4108 , - 2227 , - 1198 , - 4429 , - 1696 , - 951 , - 1058 , - 881 , - 3828 , - 4219 , - 918 , - 1877 , - 1416 , - 2943 , - 778 , - 2873 , - 3548 , - 1667 , - 638 , - 3869 , - 1136 , - 391 , - 498 , - 321 , - 3268 , - 3659 , - 358 , - 1317 , - 856 , - 2383 , - 218 , - 2313 , - 2988 , - 1107 , - 78 , - 3309 , - 576 , - 4375 , - 4482 , - 4305 , - 2708 , - 3099 , - 4342 , - 757 , - 296 , - 1823 , - 4202 , - 1753 , - 2428 , - 547 , - 4062 , - 2749 , - 16 , - 3815 , - 3922 , - 3745 , - 2148 , - 2539 , - 3782 , - 197 , - 4280 , - 1263 , - 3642 , - 1193 , - 1868 , - 4531 , - 3502 , - 2189 , - 4000 , - 3255 , - 3362 , - 3185 , - 1588 , - 1979 , - 3222 , - 4181 , - 3720 , - 703 , - 3082 , - 633 , - 1308 , - 3971 , - 2942 , - 1629 , - 3440 , - 2695 , - 2802 , - 2625 , - 1028 , - 1419 , - 2662 , - 3621 , - 3160 , - 143 , - 2522 , - 73 , - 748 , - 3411 , - 2382 , - 1069 , - 2880 , - 2135 , - 2242 , - 2065 , - 468 , - 859 , - 2102 , - 3061 , - 2600 , - 4127 , - 1962 , - 4057 , - 188 , - 2851 , - 1822 , - 509 , - 2320 , - 1575 , - 1682 , - 1505 , - 4452 , - 299 , - 1542 , - 2501 , - 2040 , - 3567 , - 1402 , - 3497 , - 4172 , - 2291 , - 1262 , - 4493 , - 1760 , - 1015 , - 1122 , - 945 , - 3892 , - 4283 , - 982 , - 1941 , - 1480 , - 3007 , - 842 , - 2937 , - 3612 , - 1731 , - 702 , - 3933 , - 1200 , - 455 , - 562 , - 385 , - 3332 , - 3723 , - 422 , - 1381 , - 920 , - 2447 , - 282 , - 2377 , - 3052 , - 1171 , - 142 , - 3373 , - 640 , - 4439 , - 2 , - 4369 , - 2772 , - 3163 , - 4406 , - 821 , - 360 , - 1887 , - 4266 , - 1817 , - 2492 , - 611 , - 4126 , - 2813 , - 80 , - 3879 , - 3986 , - 3809 , - 2212 , - 2603 , - 3846 , - 261 , - 4344 , - 1327 , - 3706 , - 1257 , - 1932 , - 51 , - 3566 , - 2253 , - 4064 , - 3319 , - 3426 , - 3249 , - 1652 , - 2043 , - 3286 , - 4245 , - 3784 , - 767 , - 3146 , - 697 , - 1372 , - 4035 , - 3006 , - 1693 , - 3504 , - 2759 , - 2866 , - 2689 , - 1092 , - 1483 , - 2726 , - 3685 , - 3224 , - 207 , - 2586 , - 137 , - 812 , - 3475 , - 2446 , - 1133 , - 2944 , - 2199 , - 2306 , - 2129 , - 532 , - 923 , - 2166 , - 3125 , - 2664 , - 4191 , - 2026 , - 4121 , - 252 , - 2915 , - 1886 , - 573 , - 2384 , - 1639 , - 1746 , - 1569 , - 4516 , - 363 , - 1606 , - 2565 , - 2104 , - 3631 , - 1466 , - 3561 , - 4236 , - 2355 , - 1326 , - 13 , - 1824 , - 1079 , - 1186 , - 1009 , - 3956 , - 4347 , - 1046 , - 2005 , - 1544 , - 3071 , - 906 , - 3001 , - 3676 , - 1795 , - 766 , - 3997 , - 1264 , - 519 , - 626 , - 449 , - 3396 , - 3787 , - 486 , - 1445 , - 984 , - 2511 , - 346 , - 2441 , - 3116 , - 1235 , - 206 , - 3437 , - 704 , - 4503 , - 66 , - 4433 , - 2836 , - 3227 , - 4470 , - 885 , - 424 , - 1951 , - 4330 , - 1881 , - 2556 , - 675 , - 4190 , - 2877 , - 144 , - 3943 , - 4050 , - 3873 , - 2276 , - 2667 , - 3910 , - 325 , - 4408 , - 1391 , - 3770 , - 1321 , - 1996 , - 115 , - 3630 , - 2317 , - 4128 , - 3383 , - 3490 , - 3313 , - 1716 , - 2107 , - 3350 , - 4309 , - 3848 , - 831 , - 3210 , - 761 , - 1436 , - 4099 , - 3070 , - 1757 , - 3568 , - 2823 , - 2930 , - 2753 , - 1156 , - 1547 , - 2790 , - 3749 , - 3288 , - 271 , - 2650 , - 201 , - 876 , - 3539 , - 2510 , - 1197 , - 3008 , - 2263 , - 2370 , - 2193 , - 596 , - 987 , - 2230 , - 3189 , - 2728 , - 4255 , - 2090 , - 4185 , - 316 , - 2979 , - 1950 , - 637 , - 2448 , - 1703 , - 1810 , - 1633 , - 36 , - 427 , - 1670 , - 2629 , - 2168 , - 3695 , - 1530 , - 3625 , - 4300 , - 2419 , - 1390 , - 77 , - 1888 , - 1143 , - 1250 , - 1073 , - 4020 , - 4411 , - 1110 , - 2069 , - 1608 , - 3135 , - 970 , - 3065 , - 3740 , - 1859 , - 830 , - 4061 , - 1328 , - 583 , - 690 , - 513 , - 3460 , - 3851 , - 550 , - 1509 , - 1048 , - 2575 , - 410 , - 2505 , - 3180 , - 1299 , - 270 , - 3501 , - 768 , - 23 , - 130 , - 4497 , - 2900 , - 3291 , - 4534 , - 949 , - 488 , - 2015 , - 4394 , - 1945 , - 2620 , - 739 , - 4254 , - 2941 , - 208 , - 4007 , - 4114 , - 3937 , - 2340 , - 2731 , - 3974 , - 389 , - 4472 , - 1455 , - 3834 , - 1385 , - 2060 , - 179 , - 3694 , - 2381 , - 4192 , - 3447 , - 3554 , - 3377 , - 1780 , - 2171 , - 3414 , - 4373 , - 3912 , - 895 , - 3274 , - 825 , - 1500 , - 4163 , - 3134 , - 1821 , - 3632 , - 2887 , - 2994 , - 2817 , - 1220 , - 1611 , - 2854 , - 3813 , - 3352 , - 335 , - 2714 , - 265 , - 940 , - 3603 , - 2574 , - 1261 , - 3072 , - 2327 , - 2434 , - 2257 , - 660 , - 1051 , - 2294 , - 3253 , - 2792 , - 4319 , - 2154 , - 4249 , - 380 , - 3043 , - 2014 , - 701 , - 2512 , - 1767 , - 1874 , - 1697 , - 100 , - 491 , - 1734 , - 2693 , - 2232 , - 3759 , - 1594 , - 3689 , - 4364 , - 2483 , - 1454 , - 141 , - 1952 , - 1207 , - 1314 , - 1137 , - 4084 , - 4475 , - 1174 , - 2133 , - 1672 , - 3199 , - 1034 , - 3129 , - 3804 , - 1923 , - 894 , - 4125 , - 1392 , - 647 , - 754 , - 577 , - 3524 , - 3915 , - 614 , - 1573 , - 1112 , - 2639 , - 474 , - 2569 , - 3244 , - 1363 , - 334 , - 3565 , - 832 , - 87 , - 194 , - 17 , - 2964 , - 3355 , - 54 , - 1013 , - 552 , - 2079 , - 4458 , - 2009 , - 2684 , - 803 , - 4318 , - 3005 , - 272 , - 4071 , - 4178 , - 4001 , - 2404 , - 2795 , - 4038 , - 453 , - 4536 , - 1519 , - 3898 , - 1449 , - 2124 , - 243 , - 3758 , - 2445 , - 4256 , - 3511 , - 3618 , - 3441 , - 1844 , - 2235 , - 3478 , - 4437 , - 3976 , - 959 , - 3338 , - 889 , - 1564 , - 4227 , - 3198 , - 1885 , - 3696 , - 2951 , - 3058 , - 2881 , - 1284 , - 1675 , - 2918 , - 3877 , - 3416 , - 399 , - 2778 , - 329 , - 1004 , - 3667 , - 2638 , - 1325 , - 3136 , - 2391 , - 2498 , - 2321 , - 724 , - 1115 , - 2358 , - 3317 , - 2856 , - 4383 , - 2218 , - 4313 , - 444 , - 3107 , - 2078 , - 765 , - 2576 , - 1831 , - 1938 , - 1761 , - 164 , - 555 , - 1798 , - 2757 , - 2296 , - 3823 , - 1658 , - 3753 , - 4428 , - 2547 , - 1518 , - 205 , - 2016 , - 1271 , - 1378 , - 1201 , - 4148 , - 4539 , - 1238 , - 2197 , - 1736 , - 3263 , - 1098 , - 3193 , - 3868 , - 1987 , - 958 , - 4189 , - 1456 , - 711 , - 818 , - 641 , - 3588 , - 3979 , - 678 , - 1637 , - 1176 , - 2703 , - 538 , - 2633 , - 3308 , - 1427 , - 398 , - 3629 , - 896 , - 151 , - 258 , - 81 , - 3028 , - 3419 , - 118 , - 1077 , - 616 , - 2143 , - 4522 , - 2073 , - 2748 , - 867 , - 4382 , - 3069 , - 336 , - 4135 , - 4242 , - 4065 , - 2468 , - 2859 , - 4102 , - 517 , - 56 , - 1583 , - 3962 , - 1513 , - 2188 , - 307 , - 3822 , - 2509 , - 4320 , - 3575 , - 3682 , - 3505 , - 1908 , - 2299 , - 3542 , - 4501 , - 4040 , - 1023 , - 3402 , - 953 , - 1628 , - 4291 , - 3262 , - 1949 , - 3760 , - 3015 , - 3122 , - 2945 , - 1348 , - 1739 , - 2982 , - 3941 , - 3480 , - 463 , - 2842 , - 393 , - 1068 , - 3731 , - 2702 , - 1389 , - 3200 , - 2455 , - 2562 , - 2385 , - 788 , - 1179 , - 2422 , - 3381 , - 2920 , - 4447 , - 2282 , - 4377 , - 508 , - 3171 , - 2142 , - 829 , - 2640 , - 1895 , - 2002 , - 1825 , - 228 , - 619 , - 1862 , - 2821 , - 2360 , - 3887 , - 1722 , - 3817 , - 4492 , - 2611 , - 1582 , - 269 , - 2080 , - 1335 , - 1442 , - 1265 , - 4212 , - 59 , - 1302 , - 2261 , - 1800 , - 3327 , - 1162 , - 3257 , - 3932 , - 2051 , - 1022 , - 4253 , - 1520 , - 775 , - 882 , - 705 , - 3652 , - 4043 , - 742 , - 1701 , - 1240 , - 2767 , - 602 , - 2697 , - 3372 , - 1491 , - 462 , - 3693 , - 960 , - 215 , - 322 , - 145 , - 3092 , - 3483 , - 182 , - 1141 , - 680 , - 2207 , - 42 , - 2137 , - 2812 , - 931 , - 4446 , - 3133 , - 400 , - 4199 , - 4306 , - 4129 , - 2532 , - 2923 , - 4166 , - 581 , - 120 , - 1647 , - 4026 , - 1577 , - 2252 , - 371 , - 3886 , - 2573 , - 4384 , - 3639 , - 3746 , - 3569 , - 1972 , - 2363 , - 3606 , - 21 , - 4104 , - 1087 , - 3466 , - 1017 , - 1692 , - 4355 , - 3326 , - 2013 , - 3824 , - 3079 , - 3186 , - 3009 , - 1412 , - 1803 , - 3046 , - 4005 , - 3544 , - 527 , - 2906 , - 457 , - 1132 , - 3795 , - 2766 , - 1453 , - 3264 , - 2519 , - 2626 , - 2449 , - 852 , - 1243 , - 2486 , - 3445 , - 2984 , - 4511 , - 2346 , - 4441 , - 572 , - 3235 , - 2206 , - 893 , - 2704 , - 1959 , - 2066 , - 1889 , - 292 , - 683 , - 1926 , - 2885 , - 2424 , - 3951 , - 1786 , - 3881 , - 12 , - 2675 , - 1646 , - 333 , - 2144 , - 1399 , - 1506 , - 1329 , - 4276 , - 123 , - 1366 , - 2325 , - 1864 , - 3391 , - 1226 , - 3321 , - 3996 , - 2115 , - 1086 , - 4317 , - 1584 , - 839 , - 946 , - 769 , - 3716 , - 4107 , - 806 , - 1765 , - 1304 , - 2831 , - 666 , - 2761 , - 3436 , - 1555 , - 526 , - 3757 , - 1024 , - 279 , - 386 , - 209 , - 3156 , - 3547 , - 246 , - 1205 , - 744 , - 2271 , - 106 , - 2201 , - 2876 , - 995 , - 4510 , - 3197 , - 464 , - 4263 , - 4370 , - 4193 , - 2596 , - 2987 , - 4230 , - 645 , - 184 , - 1711 , - 4090 , - 1641 , - 2316 , - 435 , - 3950 , - 2637 , - 4448 , - 3703 , - 3810 , - 3633 , - 2036 , - 2427 , - 3670 , - 85 , - 4168 , - 1151 , - 3530 , - 1081 , - 1756 , - 4419 , - 3390 , - 2077 , - 3888 , - 3143 , - 3250 , - 3073 , - 1476 , - 1867 , - 3110 , - 4069 , - 3608 , - 591 , - 2970 , - 521 , - 1196 , - 3859 , - 2830 , - 1517 , - 3328 , - 2583 , - 2690 , - 2513 , - 916 , - 1307 , - 2550 , - 3509 , - 3048 , - 31 , - 2410 , - 4505 , - 636 , - 3299 , - 2270 , - 957 , - 2768 , - 2023 , - 2130 , - 1953 , - 356 , - 747 , - 1990 , - 2949 , - 2488 , - 4015 , - 1850 , - 3945 , - 76 , - 2739 , - 1710 , - 397 , - 2208 , - 1463 , - 1570 , - 1393 , - 4340 , - 187 , - 1430 , - 2389 , - 1928 , - 3455 , - 1290 , - 3385 , - 4060 , - 2179 , - 1150 , - 4381 , - 1648 , - 903 , - 1010 , - 833 , - 3780 , - 4171 , - 870 , - 1829 , - 1368 , - 2895 , - 730 , - 2825 , - 3500 , - 1619 , - 590 , - 3821 , - 1088 , - 343 , - 450 , - 273 , - 3220 , - 3611 , - 310 , - 1269 , - 808 , - 2335 , - 170 , - 2265 , - 2940 , - 1059 , - 30 , - 3261 , - 528 , - 4327 , - 4434 , - 4257 , - 2660 , - 3051 , - 4294 , - 709 , - 248 , - 1775 , - 4154 , - 1705 , - 2380 , - 499 , - 4014 , - 2701 , - 4512 , - 3767 , - 3874 , - 3697 , - 2100 , - 2491 , - 3734 , - 149 , - 4232 , - 1215 , - 3594 , - 1145 , - 1820 , - 4483 , - 3454 , - 2141 , - 3952 , - 3207 , - 3314 , - 3137 , - 1540 , - 1931 , - 3174 , - 4133 , - 3672 , - 655 , - 3034 , - 585 , - 1260 , - 3923 , - 2894 , - 1581 , - 3392 , - 2647 , - 2754 , - 2577 , - 980 , - 1371 , - 2614 , - 3573 , - 3112 , - 95 , - 2474 , - 25 , - 700 , - 3363 , - 2334 , - 1021 , - 2832 , - 2087 , - 2194 , - 2017 , - 420 , - 811 , - 2054 , - 3013 , - 2552 , - 4079 , - 1914 , - 4009 , - 140 , - 2803 , - 1774 , - 461 , - 2272 , - 1527 , - 1634 , - 1457 , - 4404 , - 251 , - 1494 , - 2453 , - 1992 , - 3519 , - 1354 , - 3449 , - 4124 , - 2243 , - 1214 , - 4445 , - 1712 , - 967 , - 1074 , - 897 , - 3844 , - 4235 , - 934 , - 1893 , - 1432 , - 2959 , - 794 , - 2889 , - 3564 , - 1683 , - 654 , - 3885 , - 1152 , - 407 , - 514 , - 337 , - 3284 , - 3675 , - 374 , - 1333 , - 872 , - 2399 , - 234 , - 2329 , - 3004 , - 1123 , - 94 , - 3325 , - 592 , - 4391 , - 4498 , - 4321 , - 2724 , - 3115 , - 4358 , - 773 , - 312 , - 1839 , - 4218 , - 1769 , - 2444 , - 563 , - 4078 , - 2765 , - 32 , - 3831 , - 3938 , - 3761 , - 2164 , - 2555 , - 3798 , - 213 , - 4296 , - 1279 , - 3658 , - 1209 , - 1884 , - 3 , - 3518 , - 2205 , - 4016 , - 3271 , - 3378 , - 3201 , - 1604 , - 1995 , - 3238 , - 4197 , - 3736 , - 719 , - 3098 , - 649 , - 1324 , - 3987 , - 2958 , - 1645 , - 3456 , - 2711 , - 2818 , - 2641 , - 1044 , - 1435 , - 2678 , - 3637 , - 3176 , - 159 , - 2538 , - 89 , - 764 , - 3427 , - 2398 , - 1085 , - 2896 , - 2151 , - 2258 , - 2081 , - 484 , - 875 , - 2118 , - 3077 , - 2616 , - 4143 , - 1978 , - 4073 , - 204 , - 2867 , - 1838 , - 525 , - 2336 , - 1591 , - 1698 , - 1521 , - 4468 , - 315 , - 1558 , - 2517 , - 2056 , - 3583 , - 1418 , - 3513 , - 4188 , - 2307 , - 1278 , - 4509 , - 1776 , - 1031 , - 1138 , - 961 , - 3908 , - 4299 , - 998 , - 1957 , - 1496 , - 3023 , - 858 , - 2953 , - 3628 , - 1747 , - 718 , - 3949 , - 1216 , - 471 , - 578 , - 401 , - 3348 , - 3739 , - 438 , - 1397 , - 936 , - 2463 , - 298 , - 2393 , - 3068 , - 1187 , - 158 , - 3389 , - 656 , - 4455 , - 18 , - 4385 , - 2788 , - 3179 , - 4422 , - 837 , - 376 , - 1903 , - 4282 , - 1833 , - 2508 , - 627 , - 4142 , - 2829 , - 96 , - 3895 , - 4002 , - 3825 , - 2228 , - 2619 , - 3862 , - 277 , - 4360 , - 1343 , - 3722 , - 1273 , - 1948 , - 67 , - 3582 , - 2269 , - 4080 , - 3335 , - 3442 , - 3265 , - 1668 , - 2059 , - 3302 , - 4261 , - 3800 , - 783 , - 3162 , - 713 , - 1388 , - 4051 , - 3022 , - 1709 , - 3520 , - 2775 , - 2882 , - 2705 , - 1108 , - 1499 , - 2742 , - 3701 , - 3240 , - 223 , - 2602 , - 153 , - 828 , - 3491 , - 2462 , - 1149 , - 2960 , - 2215 , - 2322 , - 2145 , - 548 , - 939 , - 2182 , - 3141 , - 2680 , - 4207 , - 2042 , - 4137 , - 268 , - 2931 , - 1902 , - 589 , - 2400 , - 1655 , - 1762 , - 1585 , - 4532 , - 379 , - 1622 , - 2581 , - 2120 , - 3647 , - 1482 , - 3577 , - 4252 , - 2371 , - 1342 , - 29 , - 1840 , - 1095 , - 1202 , - 1025 , - 3972 , - 4363 , - 1062 , - 2021 , - 1560 , - 3087 , - 922 , - 3017 , - 3692 , - 1811 , - 782 , - 4013 , - 1280 , - 535 , - 642 , - 465 , - 3412 , - 3803 , - 502 , - 1461 , - 1000 , - 2527 , - 362 , - 2457 , - 3132 , - 1251 , - 222 , - 3453 , - 720 , - 4519 , - 82 , - 4449 , - 2852 , - 3243 , - 4486 , - 901 , - 440 , - 1967 , - 4346 , - 1897 , - 2572 , - 691 , - 4206 , - 2893 , - 160 , - 3959 , - 4066 , - 3889 , - 2292 , - 2683 , - 3926 , - 341 , - 4424 , - 1407 , - 3786 , - 1337 , - 2012 , - 131 , - 3646 , - 2333 , - 4144 , - 3399 , - 3506 , - 3329 , - 1732 , - 2123 , - 3366 , - 4325 , - 3864 , - 847 , - 3226 , - 777 , - 1452 , - 4115 , - 3086 , - 1773 , - 3584 , - 2839 , - 2946 , - 2769 , - 1172 , - 1563 , - 2806 , - 3765 , - 3304 , - 287 , - 2666 , - 217 , - 892 , - 3555 , - 2526 , - 1213 , - 3024 , - 2279 , - 2386 , - 2209 , - 612 , - 1003 , - 2246 , - 3205 , - 2744 , - 4271 , - 2106 , - 4201 , - 332 , - 2995 , - 1966 , - 653 , - 2464 , - 1719 , - 1826 , - 1649 , - 52 , - 443 , - 1686 , - 2645 , - 2184 , - 3711 , - 1546 , - 3641 , - 4316 , - 2435 , - 1406 , - 93 , - 1904 , - 1159 , - 1266 , - 1089 , - 4036 , - 4427 , - 1126 , - 2085 , - 1624 , - 3151 , - 986 , - 3081 , - 3756 , - 1875 , - 846 , - 4077 , - 1344 , - 599 , - 706 , - 529 , - 3476 , - 3867 , - 566 , - 1525 , - 1064 , - 2591 , - 426 , - 2521 , - 3196 , - 1315 , - 286 , - 3517 , - 784 , - 39 , - 146 , - 4513 , - 2916 , - 3307 , - 6 , - 965 , - 504 , - 2031 , - 4410 , - 1961 , - 2636 , - 755 , - 4270 , - 2957 , - 224 , - 4023 , - 4130 , - 3953 , - 2356 , - 2747 , - 3990 , - 405 , - 4488 , - 1471 , - 3850 , - 1401 , - 2076 , - 195 , - 3710 , - 2397 , - 4208 , - 3463 , - 3570 , - 3393 , - 1796 , - 2187 , - 3430 , - 4389 , - 3928 , - 911 , - 3290 , - 841 , - 1516 , - 4179 , - 3150 , - 1837 , - 3648 , - 2903 , - 3010 , - 2833 , - 1236 , - 1627 , - 2870 , - 3829 , - 3368 , - 351 , - 2730 , - 281 , - 956 , - 3619 , - 2590 , - 1277 , - 3088 , - 2343 , - 2450 , - 2273 , - 676 , - 1067 , - 2310 , - 3269 , - 2808 , - 4335 , - 2170 , - 4265 , - 396 , - 3059 , - 2030 , - 717 , - 2528 , - 1783 , - 1890 , - 1713 , - 116 , - 507 , - 1750 , - 2709 , - 2248 , - 3775 , - 1610 , - 3705 , - 4380 , - 2499 , - 1470 , - 157 , - 1968 , - 1223 , - 1330 , - 1153 , - 4100 , - 4491 , - 1190 , - 2149 , - 1688 , - 3215 , - 1050 , - 3145 , - 3820 , - 1939 , - 910 , - 4141 , - 1408 , - 663 , - 770 , - 593 , - 3540 , - 3931 , - 630 , - 1589 , - 1128 , - 2655 , - 490 , - 2585 , - 3260 , - 1379 , - 350 , - 3581 , - 848 , - 103 , - 210 , - 33 , - 2980 , - 3371 , - 70 , - 1029 , - 568 , - 2095 , - 4474 , - 2025 , - 2700 , - 819 , - 4334 , - 3021 , - 288 , - 4087 , - 4194 , - 4017 , - 2420 , - 2811 , - 4054 , - 469 , - 8 , - 1535 , - 3914 , - 1465 , - 2140 , - 259 , - 3774 , - 2461 , - 4272 , - 3527 , - 3634 , - 3457 , - 1860 , - 2251 , - 3494 , - 4453 , - 3992 , - 975 , - 3354 , - 905 , - 1580 , - 4243 , - 3214 , - 1901 , - 3712 , - 2967 , - 3074 , - 2897 , - 1300 , - 1691 , - 2934 , - 3893 , - 3432 , - 415 , - 2794 , - 345 , - 1020 , - 3683 , - 2654 , - 1341 , - 3152 , - 2407 , - 2514 , - 2337 , - 740 , - 1131 , - 2374 , - 3333 , - 2872 , - 4399 , - 2234 , - 4329 , - 460 , - 3123 , - 2094 , - 781 , - 2592 , - 1847 , - 1954 , - 1777 , - 180 , - 571 , - 1814 , - 2773 , - 2312 , - 3839 , - 1674 , - 3769 , - 4444 , - 2563 , - 1534 , - 221 , - 2032 , - 1287 , - 1394 , - 1217 , - 4164 , - 11 , - 1254 , - 2213 , - 1752 , - 3279 , - 1114 , - 3209 , - 3884 , - 2003 , - 974 , - 4205 , - 1472 , - 727 , - 834 , - 657 , - 3604 , - 3995 , - 694 , - 1653 , - 1192 , - 2719 , - 554 , - 2649 , - 3324 , - 1443 , - 414 , - 3645 , - 912 , - 167 , - 274 , - 97 , - 3044 , - 3435 , - 134 , - 1093 , - 632 , - 2159 , - 4538 , - 2089 , - 2764 , - 883 , - 4398 , - 3085 , - 352 , - 4151 , - 4258 , - 4081 , - 2484 , - 2875 , - 4118 , - 533 , - 72 , - 1599 , - 3978 , - 1529 , - 2204 , - 323 , - 3838 , - 2525 , - 4336 , - 3591 , - 3698 , - 3521 , - 1924 , - 2315 , - 3558 , - 4517 , - 4056 , - 1039 , - 3418 , - 969 , - 1644 , - 4307 , - 3278 , - 1965 , - 3776 , - 3031 , - 3138 , - 2961 , - 1364 , - 1755 , - 2998 , - 3957 , - 3496 , - 479 , - 2858 , - 409 , - 1084 , - 3747 , - 2718 , - 1405 , - 3216 , - 2471 , - 2578 , - 2401 , - 804 , - 1195 , - 2438 , - 3397 , - 2936 , - 4463 , - 2298 , - 4393 , - 524 , - 3187 , - 2158 , - 845 , - 2656 , - 1911 , - 2018 , - 1841 , - 244 , - 635 , - 1878 , - 2837 , - 2376 , - 3903 , - 1738 , - 3833 , - 4508 , - 2627 , - 1598 , - 285 , - 2096 , - 1351 , - 1458 , - 1281 , - 4228 , - 75 , - 1318 , - 2277 , - 1816 , - 3343 , - 1178 , - 3273 , - 3948 , - 2067 , - 1038 , - 4269 , - 1536 , - 791 , - 898 , - 721 , - 3668 , - 4059 , - 758 , - 1717 , - 1256 , - 2783 , - 618 , - 2713 , - 3388 , - 1507 , - 478 , - 3709 , - 976 , - 231 , - 338 , - 161 , - 3108 , - 3499 , - 198 , - 1157 , - 696 , - 2223 , - 58 , - 2153 , - 2828 , - 947 , - 4462 , - 3149 , - 416 , - 4215 , - 4322 , - 4145 , - 2548 , - 2939 , - 4182 , - 597 , - 136 , - 1663 , - 4042 , - 1593 , - 2268 , - 387 , - 3902 , - 2589 , - 4400 , - 3655 , - 3762 , - 3585 , - 1988 , - 2379 , - 3622 , - 37 , - 4120 , - 1103 , - 3482 , - 1033 , - 1708 , - 4371 , - 3342 , - 2029 , - 3840 , - 3095 , - 3202 , - 3025 , - 1428 , - 1819 , - 3062 , - 4021 , - 3560 , - 543 , - 2922 , - 473 , - 1148 , - 3811 , - 2782 , - 1469 , - 3280 , - 2535 , - 2642 , - 2465 , - 868 , - 1259 , - 2502 , - 3461 , - 3000 , - 4527 , - 2362 , - 4457 , - 588 , - 3251 , - 2222 , - 909 , - 2720 , - 1975 , - 2082 , - 1905 , - 308 , - 699 , - 1942 , - 2901 , - 2440 , - 3967 , - 1802 , - 3897 , - 28 , - 2691 , - 1662 , - 349 , - 2160 , - 1415 , - 1522 , - 1345 , - 4292 , - 139 , - 1382 , - 2341 , - 1880 , - 3407 , - 1242 , - 3337 , - 4012 , - 2131 , - 1102 , - 4333 , - 1600 , - 855 , - 962 , - 785 , - 3732 , - 4123 , - 822 , - 1781 , - 1320 , - 2847 , - 682 , - 2777 , - 3452 , - 1571 , - 542 , - 3773 , - 1040 , - 295 , - 402 , - 225 , - 3172 , - 3563 , - 262 , - 1221 , - 760 , - 2287 , - 122 , - 2217 , - 2892 , - 1011 , - 4526 , - 3213 , - 480 , - 4279 , - 4386 , - 4209 , - 2612 , - 3003 , - 4246 , - 661 , - 200 , - 1727 , - 4106 , - 1657 , - 2332 , - 451 , - 3966 , - 2653 , - 4464 , - 3719 , - 3826 , - 3649 , - 2052 , - 2443 , - 3686 , - 101 , - 4184 , - 1167 , - 3546 , - 1097 , - 1772 , - 4435 , - 3406 , - 2093 , - 3904 , - 3159 , - 3266 , - 3089 , - 1492 , - 1883 , - 3126 , - 4085 , - 3624 , - 607 , - 2986 , - 537 , - 1212 , - 3875 , - 2846 , - 1533 , - 3344 , - 2599 , - 2706 , - 2529 , - 932 , - 1323 , - 2566 , - 3525 , - 3064 , - 47 , - 2426 , - 4521 , - 652 , - 3315 , - 2286 , - 973 , - 2784 , - 2039 , - 2146 , - 1969 , - 372 , - 763 , - 2006 , - 2965 , - 2504 , - 4031 , - 1866 , - 3961 , - 92 , - 2755 , - 1726 , - 413 , - 2224 , - 1479 , - 1586 , - 1409 , - 4356 , - 203 , - 1446 , - 2405 , - 1944 , - 3471 , - 1306 , - 3401 , - 4076 , - 2195 , - 1166 , - 4397 , - 1664 , - 919 , - 1026 , - 849 , - 3796 , - 4187 , - 886 , - 1845 , - 1384 , - 2911 , - 746 , - 2841 , - 3516 , - 1635 , - 606 , - 3837 , - 1104 , - 359 , - 466 , - 289 , - 3236 , - 3627 , - 326 , - 1285 , - 824 , - 2351 , - 186 , - 2281 , - 2956 , - 1075 , - 46 , - 3277 , - 544 , - 4343 , - 4450 , - 4273 , - 2676 , - 3067 , - 4310 , - 725 , - 264 , - 1791 , - 4170 , - 1721 , - 2396 , - 515 , - 4030 , - 2717 , - 4528 , - 3783 , - 3890 , - 3713 , - 2116 , - 2507 , - 3750 , - 165 , - 4248 , - 1231 , - 3610 , - 1161 , - 1836 , - 4499 , - 3470 , - 2157 , - 3968 , - 3223 , - 3330 , - 3153 , - 1556 , - 1947 , - 3190 , - 4149 , - 3688 , - 671 , - 3050 , - 601 , - 1276 , - 3939 , - 2910 , - 1597 , - 3408 , - 2663 , - 2770 , - 2593 , - 996 , - 1387 , - 2630 , - 3589 , - 3128 , - 111 , - 2490 , - 41 , - 716 , - 3379 , - 2350 , - 1037 , - 2848 , - 2103 , - 2210 , - 2033 , - 436 , - 827 , - 2070 , - 3029 , - 2568 , - 4095 , - 1930 , - 4025 , - 156 , - 2819 , - 1790 , - 477 , - 2288 , - 1543 , - 1650 , - 1473 , - 4420 , - 267 , - 1510 , - 2469 , - 2008 , - 3535 , - 1370 , - 3465 , - 4140 , - 2259 , - 1230 , - 4461 , - 1728 , - 983 , - 1090 , - 913 , - 3860 , - 4251 , - 950 , - 1909 , - 1448 , - 2975 , - 810 , - 2905 , - 3580 , - 1699 , - 670 , - 3901 , - 1168 , - 423 , - 530 , - 353 , - 3300 , - 3691 , - 390 , - 1349 , - 888 , - 2415 , - 250 , - 2345 , - 3020 , - 1139 , - 110 , - 3341 , - 608 , - 4407 , - 4514 , - 4337 , - 2740 , - 3131 , - 4374 , - 789 , - 328 , - 1855 , - 4234 , - 1785 , - 2460 , - 579 , - 4094 , - 2781 , - 48 , - 3847 , - 3954 , - 3777 , - 2180 , - 2571 , - 3814 , - 229 , - 4312 , - 1295 , - 3674 , - 1225 , - 1900 , - 19 , - 3534 , - 2221 , - 4032 , - 3287 , - 3394 , - 3217 , - 1620 , - 2011 , - 3254 , - 4213 , - 3752 , - 735 , - 3114 , - 665 , - 1340 , - 4003 , - 2974 , - 1661 , - 3472 , - 2727 , - 2834 , - 2657 , - 1060 , - 1451 , - 2694 , - 3653 , - 3192 , - 175 , - 2554 , - 105 , - 780 , - 3443 , - 2414 , - 1101 , - 2912 , - 2167 , - 2274 , - 2097 , - 500 , - 891 , - 2134 , - 3093 , - 2632 , - 4159 , - 1994 , - 4089 , - 220 , - 2883 , - 1854 , - 541 , - 2352 , - 1607 , - 1714 , - 1537 , - 4484 , - 331 , - 1574 , - 2533 , - 2072 , - 3599 , - 1434 , - 3529 , - 4204 , - 2323 , - 1294 , - 4525 , - 1792 , - 1047 , - 1154 , - 977 , - 3924 , - 4315 , - 1014 , - 1973 , - 1512 , - 3039 , - 874 , - 2969 , - 3644 , - 1763 , - 734 , - 3965 , - 1232 , - 487 , - 594 , - 417 , - 3364 , - 3755 , - 454 , - 1413 , - 952 , - 2479 , - 314 , - 2409 , - 3084 , - 1203 , - 174 , - 3405 , - 672 , - 4471 , - 34 , - 4401 , - 2804 , - 3195 , - 4438 , - 853 , - 392 , - 1919 , - 4298 , - 1849 , - 2524 , - 643 , - 4158 , - 2845 , - 112 , - 3911 , - 4018 , - 3841 , - 2244 , - 2635 , - 3878 , - 293 , - 4376 , - 1359 , - 3738 , - 1289 , - 1964 , - 83 , - 3598 , - 2285 , - 4096 , - 3351 , - 3458 , - 3281 , - 1684 , - 2075 , - 3318 , - 4277 , - 3816 , - 799 , - 3178 , - 729 , - 1404 , - 4067 , - 3038 , - 1725 , - 3536 , - 2791 , - 2898 , - 2721 , - 1124 , - 1515 , - 2758 , - 3717 , - 3256 , - 239 , - 2618 , - 169 , - 844 , - 3507 , - 2478 , - 1165 , - 2976 , - 2231 , - 2338 , - 2161 , - 564 , - 955 , - 2198 , - 3157 , - 2696 , - 4223 , - 2058 , - 4153 , - 284 , - 2947 , - 1918 , - 605 , - 2416 , - 1671 , - 1778 , - 1601 , - 4 , - 395 , - 1638 , - 2597 , - 2136 , - 3663 , - 1498 , - 3593 , - 4268 , - 2387 , - 1358 , - 45 , - 1856 , - 1111 , - 1218 , - 1041 , - 3988 , - 4379 , - 1078 , - 2037 , - 1576 , - 3103 , - 938 , - 3033 , - 3708 , - 1827 , - 798 , - 4029 , - 1296 , - 551 , - 658 , - 481 , - 3428 , - 3819 , - 518 , - 1477 , - 1016 , - 2543 , - 378 , - 2473 , - 3148 , - 1267 , - 238 , - 3469 , - 736 , - 4535 , - 98 , - 4465 , - 2868 , - 3259 , - 4502 , - 917 , - 456 , - 1983 , - 4362 , - 1913 , - 2588 , - 707 , - 4222 , - 2909 , - 176 , - 3975 , - 4082 , - 3905 , - 2308 , - 2699 , - 3942 , - 357 , - 4440 , - 1423 , - 3802 , - 1353 , - 2028 , - 147 , - 3662 , - 2349 , - 4160 , - 3415 , - 3522 , - 3345 , - 1748 , - 2139 , - 3382 , - 4341 , - 3880 , - 863 , - 3242 , - 793 , - 1468 , - 4131 , - 3102 , - 1789 , - 3600 , - 2855 , - 2962 , - 2785 , - 1188 , - 1579 , - 2822 , - 3781 , - 3320 , - 303 , - 2682 , - 233 , - 908 , - 3571 , - 2542 , - 1229 , - 3040 , - 2295 , - 2402 , - 2225 , - 628 , - 1019 , - 2262 , - 3221 , - 2760 , - 4287 , - 2122 , - 4217 , - 348 , - 3011 , - 1982 , - 669 , - 2480 , - 1735 , - 1842 , - 1665 , - 68 , - 459 , - 1702 , - 2661 , - 2200 , - 3727 , - 1562 , - 3657 , - 4332 , - 2451 , - 1422 , - 109 , - 1920 , - 1175 , - 1282 , - 1105 , - 4052 , - 4443 , - 1142 , - 2101 , - 1640 , - 3167 , - 1002 , - 3097 , - 3772 , - 1891 , - 862 , - 4093 , - 1360 , - 615 , - 722 , - 545 , - 3492 , - 3883 , - 582 , - 1541 , - 1080 , - 2607 , - 442 , - 2537 , - 3212 , - 1331 , - 302 , - 3533 , - 800 , - 55 , - 162 , - 4529 , - 2932 , - 3323 , - 22 , - 981 , - 520 , - 2047 , - 4426 , - 1977 , - 2652 , - 771 , - 4286 , - 2973 , - 240 , - 4039 , - 4146 , - 3969 , - 2372 , - 2763 , - 4006 , - 421 , - 4504 , - 1487 , - 3866 , - 1417 , - 2092 , - 211 , - 3726 , - 2413 , - 4224 , - 3479 , - 3586 , - 3409 , - 1812 , - 2203 , - 3446 , - 4405 , - 3944 , - 927 , - 3306 , - 857 , - 1532 , - 4195 , - 3166 , - 1853 , - 3664 , - 2919 , - 3026 , - 2849 , - 1252 , - 1643 , - 2886 , - 3845 , - 3384 , - 367 , - 2746 , - 297 , - 972 , - 3635 , - 2606 , - 1293 , - 3104 , - 2359 , - 2466 , - 2289 , - 692 , - 1083 , - 2326 , - 3285 , - 2824 , - 4351 , - 2186 , - 4281 , - 412 , - 3075 , - 2046 , - 733 , - 2544 , - 1799 , - 1906 , - 1729 , - 132 , - 523 , - 1766 , - 2725 , - 2264 , - 3791 , - 1626 , - 3721 , - 4396 , - 2515 , - 1486 , - 173 , - 1984 , - 1239 , - 1346 , - 1169 , - 4116 , - 4507 , - 1206 , - 2165 , - 1704 , - 3231 , - 1066 , - 3161 , - 3836 , - 1955 , - 926 , - 4157 , - 1424 , - 679 , - 786 , - 609 , - 3556 , - 3947 , - 646 , - 1605 , - 1144 , - 2671 , - 506 , - 2601 , - 3276 , - 1395 , - 366 , - 3597 , - 864 , - 119 , - 226 , - 49 , - 2996 , - 3387 , - 86 , - 1045 , - 584 , - 2111 , - 4490 , - 2041 , - 2716 , - 835 , - 4350 , - 3037 , - 304 , - 4103 , - 4210 , - 4033 , - 2436 , - 2827 , - 4070 , - 485 , - 24 , - 1551 , - 3930 , - 1481 , - 2156 , - 275 , - 3790 , - 2477 , - 4288 , - 3543 , - 3650 , - 3473 , - 1876 , - 2267 , - 3510 , - 4469 , - 4008 , - 991 , - 3370 , - 921 , - 1596 , - 4259 , - 3230 , - 1917 , - 3728 , - 2983 , - 3090 , - 2913 , - 1316 , - 1707 , - 2950 , - 3909 , - 3448 , - 431 , - 2810 , - 361 , - 1036 , - 3699 , - 2670 , - 1357 , - 3168 , - 2423 , - 2530 , - 2353 , - 756 , - 1147 , - 2390 , - 3349 , - 2888 , - 4415 , - 2250 , - 4345 , - 476 , - 3139 , - 2110 , - 797 , - 2608 , - 1863 , - 1970 , - 1793 , - 196 , - 587 , - 1830 , - 2789 , - 2328 , - 3855 , - 1690 , - 3785 , - 4460 , - 2579 , - 1550 , - 237 , - 2048 , - 1303 , - 1410 , - 1233 , - 4180 , - 27 , - 1270 , - 2229 , - 1768 , - 3295 , - 1130 , - 3225 , - 3900 , - 2019 , - 990 , - 4221 , - 1488 , - 743 , - 850 , - 673 , - 3620 , - 4011 , - 710 , - 1669 , - 1208 , - 2735 , - 570 , - 2665 , - 3340 , - 1459 , - 430 , - 3661 , - 928 , - 183 , - 290 , - 113 , - 3060 , - 3451 , - 150 , - 1109 , - 648 , - 2175 , - 10 , - 2105 , - 2780 , - 899 , - 4414 , - 3101 , - 368 , - 4167 , - 4274 , - 4097 , - 2500 , - 2891 , - 4134 , - 549 , - 88 , - 1615 , - 3994 , - 1545 , - 2220 , - 339 , - 3854 , - 2541 , - 4352 , - 3607 , - 3714 , - 3537 , - 1940 , - 2331 , - 3574 , - 4533 , - 4072 , - 1055 , - 3434 , - 985 , - 1660 , - 4323 , - 3294 , - 1981 , - 3792 , - 3047 , - 3154 , - 2977 , - 1380 , - 1771 , - 3014 , - 3973 , - 3512 , - 495 , - 2874 , - 425 , - 1100 , - 3763 , - 2734 , - 1421 , - 3232 , - 2487 , - 2594 , - 2417 , - 820 , - 1211 , - 2454 , - 3413 , - 2952 , - 4479 , - 2314 , - 4409 , - 540 , - 3203 , - 2174 , - 861 , - 2672 , - 1927 , - 2034 , - 1857 , - 260 , - 651 , - 1894 , - 2853 , - 2392 , - 3919 , - 1754 , - 3849 , - 4524 , - 2643 , - 1614 , - 301 , - 2112 , - 1367 , - 1474 , - 1297 , - 4244 , - 91 , - 1334 , - 2293 , - 1832 , - 3359 , - 1194 , - 3289 , - 3964 , - 2083 , - 1054 , - 4285 , - 1552 , - 807 , - 914 , - 737 , - 3684 , - 4075 , - 774 , - 1733 , - 1272 , - 2799 , - 634 , - 2729 , - 3404 , - 1523 , - 494 , - 3725 , - 992 , - 247 , - 354 , - 177 , - 3124 , - 3515 , - 214 , - 1173 , - 712 , - 2239 , - 74 , - 2169 , - 2844 , - 963 , - 4478 , - 3165 , - 432 , - 4231 , - 4338 , - 4161 , - 2564 , - 2955 , - 4198 , - 613 , - 152 , - 1679 , - 4058 , - 1609 , - 2284 , - 403 , - 3918 , - 2605 , - 4416 , - 3671 , - 3778 , - 3601 , - 2004 , - 2395 , - 3638 , - 53 , - 4136 , - 1119 , - 3498 , - 1049 , - 1724 , - 4387 , - 3358 , - 2045 , - 3856 , - 3111 , - 3218 , - 3041 , - 1444 , - 1835 , - 3078 , - 4037 , - 3576 , - 559 , - 2938 , - 489 , - 1164 , - 3827 , - 2798 , - 1485 , - 3296 , - 2551 , - 2658 , - 2481 , - 884 , - 1275 , - 2518 , - 3477 , - 3016 , - 4543 , - 2378 , - 4473 , - 604 , - 3267 , - 2238 , - 925 , - 2736 , - 1991 , - 2098 , - 1921 , - 324 , - 715 , - 1958 , - 2917 , - 2456 , - 3983 , - 1818 , - 3913 , - 44 , - 2707 , - 1678 , - 365 , - 2176 , - 1431 , - 1538 , - 1361 , - 4308 , - 155 , - 1398 , - 2357 , - 1896 , - 3423 , - 1258 , - 3353 , - 4028 , - 2147 , - 1118 , - 4349 , - 1616 , - 871 , - 978 , - 801 , - 3748 , - 4139 , - 838 , - 1797 , - 1336 , - 2863 , - 698 , - 2793 , - 3468 , - 1587 , - 558 , - 3789 , - 1056 , - 311 , - 418 , - 241 , - 3188 , - 3579 , - 278 , - 1237 , - 776 , - 2303 , - 138 , - 2233 , - 2908 , - 1027 , - 4542 , - 3229 , - 496 , - 4295 , - 4402 , - 4225 , - 2628 , - 3019 , - 4262 , - 677 , - 216 , - 1743 , - 4122 , - 1673 , - 2348 , - 467 , - 3982 , - 2669 , - 4480 , - 3735 , - 3842 , - 3665 , - 2068 , - 2459 , - 3702 , - 117 , - 4200 , - 1183 , - 3562 , - 1113 , - 1788 , - 4451 , - 3422 , - 2109 , - 3920 , - 3175 , - 3282 , - 3105 , - 1508 , - 1899 , - 3142 , - 4101 , - 3640 , - 623 , - 3002 , - 553 , - 1228 , - 3891 , - 2862 , - 1549 , - 3360 , - 2615 , - 2722 , - 2545 , - 948 , - 1339 , - 2582 , - 3541 , - 3080 , - 63 , - 2442 , - 4537 , - 668 , - 3331 , - 2302 , - 989 , - 2800 , - 2055 , - 2162 , - 1985 , - 388 , - 779 , - 2022 , - 2981 , - 2520 , - 4047 , - 1882 , - 3977 , - 108 , - 2771 , - 1742 , - 429 , - 2240 , - 1495 , - 1602 , - 1425 , - 4372 , - 219 , - 1462 , - 2421 , - 1960 , - 3487 , - 1322 , - 3417 , - 4092 , - 2211 , - 1182 , - 4413 , - 1680 , - 935 , - 1042 , - 865 , - 3812 , - 4203 , - 902 , - 1861 , - 1400 , - 2927 , - 762 , - 2857 , - 3532 , - 1651 , - 622 , - 3853 , - 1120 , - 375 , - 482 , - 305 , - 3252 , - 3643 , - 342 , - 1301 , - 840 , - 2367 , - 202 , - 2297 , - 2972 , - 1091 , - 62 , - 3293 , - 560 , - 4359 , - 4466 , - 4289 , - 2692 , - 3083 , - 4326 , - 741 , - 280 , - 1807 , - 4186 , - 1737 , - 2412 , - 531 , - 4046 , - 2733 , - 0 , - 1489 , - 2018 , - 1587 , - 196 , - 2453 , - 3750 , - 4087 , - 3464 , - 1881 , - 3946 , - 443 , - 588 , - 4381 , - 2606 , - 4479 , - 784 , - 737 , - 4338 , - 2371 , - 4052 , - 165 , - 4534 , - 3335 , - 1176 , - 2665 , - 3194 , - 2763 , - 1372 , - 3629 , - 318 , - 655 , - 32 , - 3057 , - 514 , - 1619 , - 1764 , - 949 , - 3782 , - 1047 , - 1960 , - 1913 , - 906 , - 3547 , - 620 , - 1341 , - 1102 , - 4511 , - 2352 , - 3841 , - 4370 , - 3939 , - 2548 , - 197 , - 1494 , - 1831 , - 1208 , - 4233 , - 1690 , - 2795 , - 2940 , - 2125 , - 350 , - 2223 , - 3136 , - 3089 , - 2082 , - 115 , - 1796 , - 2517 , - 2278 , - 1079 , - 3528 , - 409 , - 938 , - 507 , - 3724 , - 1373 , - 2670 , - 3007 , - 2384 , - 801 , - 2866 , - 3971 , - 4116 , - 3301 , - 1526 , - 3399 , - 4312 , - 4265 , - 3258 , - 1291 , - 2972 , - 3693 , - 3454 , - 2255 , - 96 , - 1585 , - 2114 , - 1683 , - 292 , - 2549 , - 3846 , - 4183 , - 3560 , - 1977 , - 4042 , - 539 , - 684 , - 4477 , - 2702 , - 4575 , - 880 , - 833 , - 4434 , - 2467 , - 4148 , - 261 , - 22 , - 3431 , - 1272 , - 2761 , - 3290 , - 2859 , - 1468 , - 3725 , - 414 , - 751 , - 128 , - 3153 , - 610 , - 1715 , - 1860 , - 1045 , - 3878 , - 1143 , - 2056 , - 2009 , - 1002 , - 3643 , - 716 , - 1437 , - 1198 , - 4607 , - 2448 , - 3937 , - 4466 , - 4035 , - 2644 , - 293 , - 1590 , - 1927 , - 1304 , - 4329 , - 1786 , - 2891 , - 3036 , - 2221 , - 446 , - 2319 , - 3232 , - 3185 , - 2178 , - 211 , - 1892 , - 2613 , - 2374 , - 1175 , - 3624 , - 505 , - 1034 , - 603 , - 3820 , - 1469 , - 2766 , - 3103 , - 2480 , - 897 , - 2962 , - 4067 , - 4212 , - 3397 , - 1622 , - 3495 , - 4408 , - 4361 , - 3354 , - 1387 , - 3068 , - 3789 , - 3550 , - 2351 , - 192 , - 1681 , - 2210 , - 1779 , - 388 , - 2645 , - 3942 , - 4279 , - 3656 , - 2073 , - 4138 , - 635 , - 780 , - 4573 , - 2798 , - 63 , - 976 , - 929 , - 4530 , - 2563 , - 4244 , - 357 , - 118 , - 3527 , - 1368 , - 2857 , - 3386 , - 2955 , - 1564 , - 3821 , - 510 , - 847 , - 224 , - 3249 , - 706 , - 1811 , - 1956 , - 1141 , - 3974 , - 1239 , - 2152 , - 2105 , - 1098 , - 3739 , - 812 , - 1533 , - 1294 , - 95 , - 2544 , - 4033 , - 4562 , - 4131 , - 2740 , - 389 , - 1686 , - 2023 , - 1400 , - 4425 , - 1882 , - 2987 , - 3132 , - 2317 , - 542 , - 2415 , - 3328 , - 3281 , - 2274 , - 307 , - 1988 , - 2709 , - 2470 , - 1271 , - 3720 , - 601 , - 1130 , - 699 , - 3916 , - 1565 , - 2862 , - 3199 , - 2576 , - 993 , - 3058 , - 4163 , - 4308 , - 3493 , - 1718 , - 3591 , - 4504 , - 4457 , - 3450 , - 1483 , - 3164 , - 3885 , - 3646 , - 2447 , - 288 , - 1777 , - 2306 , - 1875 , - 484 , - 2741 , - 4038 , - 4375 , - 3752 , - 2169 , - 4234 , - 731 , - 876 , - 61 , - 2894 , - 159 , - 1072 , - 1025 , - 18 , - 2659 , - 4340 , - 453 , - 214 , - 3623 , - 1464 , - 2953 , - 3482 , - 3051 , - 1660 , - 3917 , - 606 , - 943 , - 320 , - 3345 , - 802 , - 1907 , - 2052 , - 1237 , - 4070 , - 1335 , - 2248 , - 2201 , - 1194 , - 3835 , - 908 , - 1629 , - 1390 , - 191 , - 2640 , - 4129 , - 50 , - 4227 , - 2836 , - 485 , - 1782 , - 2119 , - 1496 , - 4521 , - 1978 , - 3083 , - 3228 , - 2413 , - 638 , - 2511 , - 3424 , - 3377 , - 2370 , - 403 , - 2084 , - 2805 , - 2566 , - 1367 , - 3816 , - 697 , - 1226 , - 795 , - 4012 , - 1661 , - 2958 , - 3295 , - 2672 , - 1089 , - 3154 , - 4259 , - 4404 , - 3589 , - 1814 , - 3687 , - 4600 , - 4553 , - 3546 , - 1579 , - 3260 , - 3981 , - 3742 , - 2543 , - 384 , - 1873 , - 2402 , - 1971 , - 580 , - 2837 , - 4134 , - 4471 , - 3848 , - 2265 , - 4330 , - 827 , - 972 , - 157 , - 2990 , - 255 , - 1168 , - 1121 , - 114 , - 2755 , - 4436 , - 549 , - 310 , - 3719 , - 1560 , - 3049 , - 3578 , - 3147 , - 1756 , - 4013 , - 702 , - 1039 , - 416 , - 3441 , - 898 , - 2003 , - 2148 , - 1333 , - 4166 , - 1431 , - 2344 , - 2297 , - 1290 , - 3931 , - 1004 , - 1725 , - 1486 , - 287 , - 2736 , - 4225 , - 146 , - 4323 , - 2932 , - 581 , - 1878 , - 2215 , - 1592 , - 9 , - 2074 , - 3179 , - 3324 , - 2509 , - 734 , - 2607 , - 3520 , - 3473 , - 2466 , - 499 , - 2180 , - 2901 , - 2662 , - 1463 , - 3912 , - 793 , - 1322 , - 891 , - 4108 , - 1757 , - 3054 , - 3391 , - 2768 , - 1185 , - 3250 , - 4355 , - 4500 , - 3685 , - 1910 , - 3783 , - 88 , - 41 , - 3642 , - 1675 , - 3356 , - 4077 , - 3838 , - 2639 , - 480 , - 1969 , - 2498 , - 2067 , - 676 , - 2933 , - 4230 , - 4567 , - 3944 , - 2361 , - 4426 , - 923 , - 1068 , - 253 , - 3086 , - 351 , - 1264 , - 1217 , - 210 , - 2851 , - 4532 , - 645 , - 406 , - 3815 , - 1656 , - 3145 , - 3674 , - 3243 , - 1852 , - 4109 , - 798 , - 1135 , - 512 , - 3537 , - 994 , - 2099 , - 2244 , - 1429 , - 4262 , - 1527 , - 2440 , - 2393 , - 1386 , - 4027 , - 1100 , - 1821 , - 1582 , - 383 , - 2832 , - 4321 , - 242 , - 4419 , - 3028 , - 677 , - 1974 , - 2311 , - 1688 , - 105 , - 2170 , - 3275 , - 3420 , - 2605 , - 830 , - 2703 , - 3616 , - 3569 , - 2562 , - 595 , - 2276 , - 2997 , - 2758 , - 1559 , - 4008 , - 889 , - 1418 , - 987 , - 4204 , - 1853 , - 3150 , - 3487 , - 2864 , - 1281 , - 3346 , - 4451 , - 4596 , - 3781 , - 2006 , - 3879 , - 184 , - 137 , - 3738 , - 1771 , - 3452 , - 4173 , - 3934 , - 2735 , - 576 , - 2065 , - 2594 , - 2163 , - 772 , - 3029 , - 4326 , - 55 , - 4040 , - 2457 , - 4522 , - 1019 , - 1164 , - 349 , - 3182 , - 447 , - 1360 , - 1313 , - 306 , - 2947 , - 20 , - 741 , - 502 , - 3911 , - 1752 , - 3241 , - 3770 , - 3339 , - 1948 , - 4205 , - 894 , - 1231 , - 608 , - 3633 , - 1090 , - 2195 , - 2340 , - 1525 , - 4358 , - 1623 , - 2536 , - 2489 , - 1482 , - 4123 , - 1196 , - 1917 , - 1678 , - 479 , - 2928 , - 4417 , - 338 , - 4515 , - 3124 , - 773 , - 2070 , - 2407 , - 1784 , - 201 , - 2266 , - 3371 , - 3516 , - 2701 , - 926 , - 2799 , - 3712 , - 3665 , - 2658 , - 691 , - 2372 , - 3093 , - 2854 , - 1655 , - 4104 , - 985 , - 1514 , - 1083 , - 4300 , - 1949 , - 3246 , - 3583 , - 2960 , - 1377 , - 3442 , - 4547 , - 84 , - 3877 , - 2102 , - 3975 , - 280 , - 233 , - 3834 , - 1867 , - 3548 , - 4269 , - 4030 , - 2831 , - 672 , - 2161 , - 2690 , - 2259 , - 868 , - 3125 , - 4422 , - 151 , - 4136 , - 2553 , - 10 , - 1115 , - 1260 , - 445 , - 3278 , - 543 , - 1456 , - 1409 , - 402 , - 3043 , - 116 , - 837 , - 598 , - 4007 , - 1848 , - 3337 , - 3866 , - 3435 , - 2044 , - 4301 , - 990 , - 1327 , - 704 , - 3729 , - 1186 , - 2291 , - 2436 , - 1621 , - 4454 , - 1719 , - 2632 , - 2585 , - 1578 , - 4219 , - 1292 , - 2013 , - 1774 , - 575 , - 3024 , - 4513 , - 434 , - 3 , - 3220 , - 869 , - 2166 , - 2503 , - 1880 , - 297 , - 2362 , - 3467 , - 3612 , - 2797 , - 1022 , - 2895 , - 3808 , - 3761 , - 2754 , - 787 , - 2468 , - 3189 , - 2950 , - 1751 , - 4200 , - 1081 , - 1610 , - 1179 , - 4396 , - 2045 , - 3342 , - 3679 , - 3056 , - 1473 , - 3538 , - 35 , - 180 , - 3973 , - 2198 , - 4071 , - 376 , - 329 , - 3930 , - 1963 , - 3644 , - 4365 , - 4126 , - 2927 , - 768 , - 2257 , - 2786 , - 2355 , - 964 , - 3221 , - 4518 , - 247 , - 4232 , - 2649 , - 106 , - 1211 , - 1356 , - 541 , - 3374 , - 639 , - 1552 , - 1505 , - 498 , - 3139 , - 212 , - 933 , - 694 , - 4103 , - 1944 , - 3433 , - 3962 , - 3531 , - 2140 , - 4397 , - 1086 , - 1423 , - 800 , - 3825 , - 1282 , - 2387 , - 2532 , - 1717 , - 4550 , - 1815 , - 2728 , - 2681 , - 1674 , - 4315 , - 1388 , - 2109 , - 1870 , - 671 , - 3120 , - 1 , - 530 , - 99 , - 3316 , - 965 , - 2262 , - 2599 , - 1976 , - 393 , - 2458 , - 3563 , - 3708 , - 2893 , - 1118 , - 2991 , - 3904 , - 3857 , - 2850 , - 883 , - 2564 , - 3285 , - 3046 , - 1847 , - 4296 , - 1177 , - 1706 , - 1275 , - 4492 , - 2141 , - 3438 , - 3775 , - 3152 , - 1569 , - 3634 , - 131 , - 276 , - 4069 , - 2294 , - 4167 , - 472 , - 425 , - 4026 , - 2059 , - 3740 , - 4461 , - 4222 , - 3023 , - 864 , - 2353 , - 2882 , - 2451 , - 1060 , - 3317 , - 6 , - 343 , - 4328 , - 2745 , - 202 , - 1307 , - 1452 , - 637 , - 3470 , - 735 , - 1648 , - 1601 , - 594 , - 3235 , - 308 , - 1029 , - 790 , - 4199 , - 2040 , - 3529 , - 4058 , - 3627 , - 2236 , - 4493 , - 1182 , - 1519 , - 896 , - 3921 , - 1378 , - 2483 , - 2628 , - 1813 , - 38 , - 1911 , - 2824 , - 2777 , - 1770 , - 4411 , - 1484 , - 2205 , - 1966 , - 767 , - 3216 , - 97 , - 626 , - 195 , - 3412 , - 1061 , - 2358 , - 2695 , - 2072 , - 489 , - 2554 , - 3659 , - 3804 , - 2989 , - 1214 , - 3087 , - 4000 , - 3953 , - 2946 , - 979 , - 2660 , - 3381 , - 3142 , - 1943 , - 4392 , - 1273 , - 1802 , - 1371 , - 4588 , - 2237 , - 3534 , - 3871 , - 3248 , - 1665 , - 3730 , - 227 , - 372 , - 4165 , - 2390 , - 4263 , - 568 , - 521 , - 4122 , - 2155 , - 3836 , - 4557 , - 4318 , - 3119 , - 960 , - 2449 , - 2978 , - 2547 , - 1156 , - 3413 , - 102 , - 439 , - 4424 , - 2841 , - 298 , - 1403 , - 1548 , - 733 , - 3566 , - 831 , - 1744 , - 1697 , - 690 , - 3331 , - 404 , - 1125 , - 886 , - 4295 , - 2136 , - 3625 , - 4154 , - 3723 , - 2332 , - 4589 , - 1278 , - 1615 , - 992 , - 4017 , - 1474 , - 2579 , - 2724 , - 1909 , - 134 , - 2007 , - 2920 , - 2873 , - 1866 , - 4507 , - 1580 , - 2301 , - 2062 , - 863 , - 3312 , - 193 , - 722 , - 291 , - 3508 , - 1157 , - 2454 , - 2791 , - 2168 , - 585 , - 2650 , - 3755 , - 3900 , - 3085 , - 1310 , - 3183 , - 4096 , - 4049 , - 3042 , - 1075 , - 2756 , - 3477 , - 3238 , - 2039 , - 4488 , - 1369 , - 1898 , - 1467 , - 76 , - 2333 , - 3630 , - 3967 , - 3344 , - 1761 , - 3826 , - 323 , - 468 , - 4261 , - 2486 , - 4359 , - 664 , - 617 , - 4218 , - 2251 , - 3932 , - 45 , - 4414 , - 3215 , - 1056 , - 2545 , - 3074 , - 2643 , - 1252 , - 3509 , - 198 , - 535 , - 4520 , - 2937 , - 394 , - 1499 , - 1644 , - 829 , - 3662 , - 927 , - 1840 , - 1793 , - 786 , - 3427 , - 500 , - 1221 , - 982 , - 4391 , - 2232 , - 3721 , - 4250 , - 3819 , - 2428 , - 77 , - 1374 , - 1711 , - 1088 , - 4113 , - 1570 , - 2675 , - 2820 , - 2005 , - 230 , - 2103 , - 3016 , - 2969 , - 1962 , - 4603 , - 1676 , - 2397 , - 2158 , - 959 , - 3408 , - 289 , - 818 , - 387 , - 3604 , - 1253 , - 2550 , - 2887 , - 2264 , - 681 , - 2746 , - 3851 , - 3996 , - 3181 , - 1406 , - 3279 , - 4192 , - 4145 , - 3138 , - 1171 , - 2852 , - 3573 , - 3334 , - 2135 , - 4584 , - 1465 , - 1994 , - 1563 , - 172 , - 2429 , - 3726 , - 4063 , - 3440 , - 1857 , - 3922 , - 419 , - 564 , - 4357 , - 2582 , - 4455 , - 760 , - 713 , - 4314 , - 2347 , - 4028 , - 141 , - 4510 , - 3311 , - 1152 , - 2641 , - 3170 , - 2739 , - 1348 , - 3605 , - 294 , - 631 , - 8 , - 3033 , - 490 , - 1595 , - 1740 , - 925 , - 3758 , - 1023 , - 1936 , - 1889 , - 882 , - 3523 , - 596 , - 1317 , - 1078 , - 4487 , - 2328 , - 3817 , - 4346 , - 3915 , - 2524 , - 173 , - 1470 , - 1807 , - 1184 , - 4209 , - 1666 , - 2771 , - 2916 , - 2101 , - 326 , - 2199 , - 3112 , - 3065 , - 2058 , - 91 , - 1772 , - 2493 , - 2254 , - 1055 , - 3504 , - 385 , - 914 , - 483 , - 3700 , - 1349 , - 2646 , - 2983 , - 2360 , - 777 , - 2842 , - 3947 , - 4092 , - 3277 , - 1502 , - 3375 , - 4288 , - 4241 , - 3234 , - 1267 , - 2948 , - 3669 , - 3430 , - 2231 , - 72 , - 1561 , - 2090 , - 1659 , - 268 , - 2525 , - 3822 , - 4159 , - 3536 , - 1953 , - 4018 , - 515 , - 660 , - 4453 , - 2678 , - 4551 , - 856 , - 809 , - 4410 , - 2443 , - 4124 , - 237 , - 4606 , - 3407 , - 1248 , - 2737 , - 3266 , - 2835 , - 1444 , - 3701 , - 390 , - 727 , - 104 , - 3129 , - 586 , - 1691 , - 1836 , - 1021 , - 3854 , - 1119 , - 2032 , - 1985 , - 978 , - 3619 , - 692 , - 1413 , - 1174 , - 4583 , - 2424 , - 3913 , - 4442 , - 4011 , - 2620 , - 269 , - 1566 , - 1903 , - 1280 , - 4305 , - 1762 , - 2867 , - 3012 , - 2197 , - 422 , - 2295 , - 3208 , - 3161 , - 2154 , - 187 , - 1868 , - 2589 , - 2350 , - 1151 , - 3600 , - 481 , - 1010 , - 579 , - 3796 , - 1445 , - 2742 , - 3079 , - 2456 , - 873 , - 2938 , - 4043 , - 4188 , - 3373 , - 1598 , - 3471 , - 4384 , - 4337 , - 3330 , - 1363 , - 3044 , - 3765 , - 3526 , - 2327 , - 168 , - 1657 , - 2186 , - 1755 , - 364 , - 2621 , - 3918 , - 4255 , - 3632 , - 2049 , - 4114 , - 611 , - 756 , - 4549 , - 2774 , - 39 , - 952 , - 905 , - 4506 , - 2539 , - 4220 , - 333 , - 94 , - 3503 , - 1344 , - 2833 , - 3362 , - 2931 , - 1540 , - 3797 , - 486 , - 823 , - 200 , - 3225 , - 682 , - 1787 , - 1932 , - 1117 , - 3950 , - 1215 , - 2128 , - 2081 , - 1074 , - 3715 , - 788 , - 1509 , - 1270 , - 71 , - 2520 , - 4009 , - 4538 , - 4107 , - 2716 , - 365 , - 1662 , - 1999 , - 1376 , - 4401 , - 1858 , - 2963 , - 3108 , - 2293 , - 518 , - 2391 , - 3304 , - 3257 , - 2250 , - 283 , - 1964 , - 2685 , - 2446 , - 1247 , - 3696 , - 577 , - 1106 , - 675 , - 3892 , - 1541 , - 2838 , - 3175 , - 2552 , - 969 , - 3034 , - 4139 , - 4284 , - 3469 , - 1694 , - 3567 , - 4480 , - 4433 , - 3426 , - 1459 , - 3140 , - 3861 , - 3622 , - 2423 , - 264 , - 1753 , - 2282 , - 1851 , - 460 , - 2717 , - 4014 , - 4351 , - 3728 , - 2145 , - 4210 , - 707 , - 852 , - 37 , - 2870 , - 135 , - 1048 , - 1001 , - 4602 , - 2635 , - 4316 , - 429 , - 190 , - 3599 , - 1440 , - 2929 , - 3458 , - 3027 , - 1636 , - 3893 , - 582 , - 919 , - 296 , - 3321 , - 778 , - 1883 , - 2028 , - 1213 , - 4046 , - 1311 , - 2224 , - 2177 , - 1170 , - 3811 , - 884 , - 1605 , - 1366 , - 167 , - 2616 , - 4105 , - 26 , - 4203 , - 2812 , - 461 , - 1758 , - 2095 , - 1472 , - 4497 , - 1954 , - 3059 , - 3204 , - 2389 , - 614 , - 2487 , - 3400 , - 3353 , - 2346 , - 379 , - 2060 , - 2781 , - 2542 , - 1343 , - 3792 , - 673 , - 1202 , - 771 , - 3988 , - 1637 , - 2934 , - 3271 , - 2648 , - 1065 , - 3130 , - 4235 , - 4380 , - 3565 , - 1790 , - 3663 , - 4576 , - 4529 , - 3522 , - 1555 , - 3236 , - 3957 , - 3718 , - 2519 , - 360 , - 1849 , - 2378 , - 1947 , - 556 , - 2813 , - 4110 , - 4447 , - 3824 , - 2241 , - 4306 , - 803 , - 948 , - 133 , - 2966 , - 231 , - 1144 , - 1097 , - 90 , - 2731 , - 4412 , - 525 , - 286 , - 3695 , - 1536 , - 3025 , - 3554 , - 3123 , - 1732 , - 3989 , - 678 , - 1015 , - 392 , - 3417 , - 874 , - 1979 , - 2124 , - 1309 , - 4142 , - 1407 , - 2320 , - 2273 , - 1266 , - 3907 , - 980 , - 1701 , - 1462 , - 263 , - 2712 , - 4201 , - 122 , - 4299 , - 2908 , - 557 , - 1854 , - 2191 , - 1568 , - 4593 , - 2050 , - 3155 , - 3300 , - 2485 , - 710 , - 2583 , - 3496 , - 3449 , - 2442 , - 475 , - 2156 , - 2877 , - 2638 , - 1439 , - 3888 , - 769 , - 1298 , - 867 , - 4084 , - 1733 , - 3030 , - 3367 , - 2744 , - 1161 , - 3226 , - 4331 , - 4476 , - 3661 , - 1886 , - 3759 , - 64 , - 17 , - 3618 , - 1651 , - 3332 , - 4053 , - 3814 , - 2615 , - 456 , - 1945 , - 2474 , - 2043 , - 652 , - 2909 , - 4206 , - 4543 , - 3920 , - 2337 , - 4402 , - 899 , - 1044 , - 229 , - 3062 , - 327 , - 1240 , - 1193 , - 186 , - 2827 , - 4508 , - 621 , - 382 , - 3791 , - 1632 , - 3121 , - 3650 , - 3219 , - 1828 , - 4085 , - 774 , - 1111 , - 488 , - 3513 , - 970 , - 2075 , - 2220 , - 1405 , - 4238 , - 1503 , - 2416 , - 2369 , - 1362 , - 4003 , - 1076 , - 1797 , - 1558 , - 359 , - 2808 , - 4297 , - 218 , - 4395 , - 3004 , - 653 , - 1950 , - 2287 , - 1664 , - 81 , - 2146 , - 3251 , - 3396 , - 2581 , - 806 , - 2679 , - 3592 , - 3545 , - 2538 , - 571 , - 2252 , - 2973 , - 2734 , - 1535 , - 3984 , - 865 , - 1394 , - 963 , - 4180 , - 1829 , - 3126 , - 3463 , - 2840 , - 1257 , - 3322 , - 4427 , - 4572 , - 3757 , - 1982 , - 3855 , - 160 , - 113 , - 3714 , - 1747 , - 3428 , - 4149 , - 3910 , - 2711 , - 552 , - 2041 , - 2570 , - 2139 , - 748 , - 3005 , - 4302 , - 31 , - 4016 , - 2433 , - 4498 , - 995 , - 1140 , - 325 , - 3158 , - 423 , - 1336 , - 1289 , - 282 , - 2923 , - 4604 , - 717 , - 478 , - 3887 , - 1728 , - 3217 , - 3746 , - 3315 , - 1924 , - 4181 , - 870 , - 1207 , - 584 , - 3609 , - 1066 , - 2171 , - 2316 , - 1501 , - 4334 , - 1599 , - 2512 , - 2465 , - 1458 , - 4099 , - 1172 , - 1893 , - 1654 , - 455 , - 2904 , - 4393 , - 314 , - 4491 , - 3100 , - 749 , - 2046 , - 2383 , - 1760 , - 177 , - 2242 , - 3347 , - 3492 , - 2677 , - 902 , - 2775 , - 3688 , - 3641 , - 2634 , - 667 , - 2348 , - 3069 , - 2830 , - 1631 , - 4080 , - 961 , - 1490 , - 1059 , - 4276 , - 1925 , - 3222 , - 3559 , - 2936 , - 1353 , - 3418 , - 4523 , - 60 , - 3853 , - 2078 , - 3951 , - 256 , - 209 , - 3810 , - 1843 , - 3524 , - 4245 , - 4006 , - 2807 , - 648 , - 2137 , - 2666 , - 2235 , - 844 , - 3101 , - 4398 , - 127 , - 4112 , - 2529 , - 4594 , - 1091 , - 1236 , - 421 , - 3254 , - 519 , - 1432 , - 1385 , - 378 , - 3019 , - 92 , - 813 , - 574 , - 3983 , - 1824 , - 3313 , - 3842 , - 3411 , - 2020 , - 4277 , - 966 , - 1303 , - 680 , - 3705 , - 1162 , - 2267 , - 2412 , - 1597 , - 4430 , - 1695 , - 2608 , - 2561 , - 1554 , - 4195 , - 1268 , - 1989 , - 1750 , - 551 , - 3000 , - 4489 , - 410 , - 4587 , - 3196 , - 845 , - 2142 , - 2479 , - 1856 , - 273 , - 2338 , - 3443 , - 3588 , - 2773 , - 998 , - 2871 , - 3784 , - 3737 , - 2730 , - 763 , - 2444 , - 3165 , - 2926 , - 1727 , - 4176 , - 1057 , - 1586 , - 1155 , - 4372 , - 2021 , - 3318 , - 3655 , - 3032 , - 1449 , - 3514 , - 11 , - 156 , - 3949 , - 2174 , - 4047 , - 352 , - 305 , - 3906 , - 1939 , - 3620 , - 4341 , - 4102 , - 2903 , - 744 , - 2233 , - 2762 , - 2331 , - 940 , - 3197 , - 4494 , - 223 , - 4208 , - 2625 , - 82 , - 1187 , - 1332 , - 517 , - 3350 , - 615 , - 1528 , - 1481 , - 474 , - 3115 , - 188 , - 909 , - 670 , - 4079 , - 1920 , - 3409 , - 3938 , - 3507 , - 2116 , - 4373 , - 1062 , - 1399 , - 776 , - 3801 , - 1258 , - 2363 , - 2508 , - 1693 , - 4526 , - 1791 , - 2704 , - 2657 , - 1650 , - 4291 , - 1364 , - 2085 , - 1846 , - 647 , - 3096 , - 4585 , - 506 , - 75 , - 3292 , - 941 , - 2238 , - 2575 , - 1952 , - 369 , - 2434 , - 3539 , - 3684 , - 2869 , - 1094 , - 2967 , - 3880 , - 3833 , - 2826 , - 859 , - 2540 , - 3261 , - 3022 , - 1823 , - 4272 , - 1153 , - 1682 , - 1251 , - 4468 , - 2117 , - 3414 , - 3751 , - 3128 , - 1545 , - 3610 , - 107 , - 252 , - 4045 , - 2270 , - 4143 , - 448 , - 401 , - 4002 , - 2035 , - 3716 , - 4437 , - 4198 , - 2999 , - 840 , - 2329 , - 2858 , - 2427 , - 1036 , - 3293 , - 4590 , - 319 , - 4304 , - 2721 , - 178 , - 1283 , - 1428 , - 613 , - 3446 , - 711 , - 1624 , - 1577 , - 570 , - 3211 , - 284 , - 1005 , - 766 , - 4175 , - 2016 , - 3505 , - 4034 , - 3603 , - 2212 , - 4469 , - 1158 , - 1495 , - 872 , - 3897 , - 1354 , - 2459 , - 2604 , - 1789 , - 14 , - 1887 , - 2800 , - 2753 , - 1746 , - 4387 , - 1460 , - 2181 , - 1942 , - 743 , - 3192 , - 73 , - 602 , - 171 , - 3388 , - 1037 , - 2334 , - 2671 , - 2048 , - 465 , - 2530 , - 3635 , - 3780 , - 2965 , - 1190 , - 3063 , - 3976 , - 3929 , - 2922 , - 955 , - 2636 , - 3357 , - 3118 , - 1919 , - 4368 , - 1249 , - 1778 , - 1347 , - 4564 , - 2213 , - 3510 , - 3847 , - 3224 , - 1641 , - 3706 , - 203 , - 348 , - 4141 , - 2366 , - 4239 , - 544 , - 497 , - 4098 , - 2131 , - 3812 , - 4533 , - 4294 , - 3095 , - 936 , - 2425 , - 2954 , - 2523 , - 1132 , - 3389 , - 78 , - 415 , - 4400 , - 2817 , - 274 , - 1379 , - 1524 , - 709 , - 3542 , - 807 , - 1720 , - 1673 , - 666 , - 3307 , - 380 , - 1101 , - 862 , - 4271 , - 2112 , - 3601 , - 4130 , - 3699 , - 2308 , - 4565 , - 1254 , - 1591 , - 968 , - 3993 , - 1450 , - 2555 , - 2700 , - 1885 , - 110 , - 1983 , - 2896 , - 2849 , - 1842 , - 4483 , - 1556 , - 2277 , - 2038 , - 839 , - 3288 , - 169 , - 698 , - 267 , - 3484 , - 1133 , - 2430 , - 2767 , - 2144 , - 561 , - 2626 , - 3731 , - 3876 , - 3061 , - 1286 , - 3159 , - 4072 , - 4025 , - 3018 , - 1051 , - 2732 , - 3453 , - 3214 , - 2015 , - 4464 , - 1345 , - 1874 , - 1443 , - 52 , - 2309 , - 3606 , - 3943 , - 3320 , - 1737 , - 3802 , - 299 , - 444 , - 4237 , - 2462 , - 4335 , - 640 , - 593 , - 4194 , - 2227 , - 3908 , - 21 , - 4390 , - 3191 , - 1032 , - 2521 , - 3050 , - 2619 , - 1228 , - 3485 , - 174 , - 511 , - 4496 , - 2913 , - 370 , - 1475 , - 1620 , - 805 , - 3638 , - 903 , - 1816 , - 1769 , - 762 , - 3403 , - 476 , - 1197 , - 958 , - 4367 , - 2208 , - 3697 , - 4226 , - 3795 , - 2404 , - 53 , - 1350 , - 1687 , - 1064 , - 4089 , - 1546 , - 2651 , - 2796 , - 1981 , - 206 , - 2079 , - 2992 , - 2945 , - 1938 , - 4579 , - 1652 , - 2373 , - 2134 , - 935 , - 3384 , - 265 , - 794 , - 363 , - 3580 , - 1229 , - 2526 , - 2863 , - 2240 , - 657 , - 2722 , - 3827 , - 3972 , - 3157 , - 1382 , - 3255 , - 4168 , - 4121 , - 3114 , - 1147 , - 2828 , - 3549 , - 3310 , - 2111 , - 4560 , - 1441 , - 1970 , - 1539 , - 148 , - 2405 , - 3702 , - 4039 , - 3416 , - 1833 , - 3898 , - 395 , - 540 , - 4333 , - 2558 , - 4431 , - 736 , - 689 , - 4290 , - 2323 , - 4004 , - 117 , - 4486 , - 3287 , - 1128 , - 2617 , - 3146 , - 2715 , - 1324 , - 3581 , - 270 , - 607 , - 4592 , - 3009 , - 466 , - 1571 , - 1716 , - 901 , - 3734 , - 999 , - 1912 , - 1865 , - 858 , - 3499 , - 572 , - 1293 , - 1054 , - 4463 , - 2304 , - 3793 , - 4322 , - 3891 , - 2500 , - 149 , - 1446 , - 1783 , - 1160 , - 4185 , - 1642 , - 2747 , - 2892 , - 2077 , - 302 , - 2175 , - 3088 , - 3041 , - 2034 , - 67 , - 1748 , - 2469 , - 2230 , - 1031 , - 3480 , - 361 , - 890 , - 459 , - 3676 , - 1325 , - 2622 , - 2959 , - 2336 , - 753 , - 2818 , - 3923 , - 4068 , - 3253 , - 1478 , - 3351 , - 4264 , - 4217 , - 3210 , - 1243 , - 2924 , - 3645 , - 3406 , - 2207 , - 48 , - 1537 , - 2066 , - 1635 , - 244 , - 2501 , - 3798 , - 4135 , - 3512 , - 1929 , - 3994 , - 491 , - 636 , - 4429 , - 2654 , - 4527 , - 832 , - 785 , - 4386 , - 2419 , - 4100 , - 213 , - 4582 , - 3383 , - 1224 , - 2713 , - 3242 , - 2811 , - 1420 , - 3677 , - 366 , - 703 , - 80 , - 3105 , - 562 , - 1667 , - 1812 , - 997 , - 3830 , - 1095 , - 2008 , - 1961 , - 954 , - 3595 , - 668 , - 1389 , - 1150 , - 4559 , - 2400 , - 3889 , - 4418 , - 3987 , - 2596 , - 245 , - 1542 , - 1879 , - 1256 , - 4281 , - 1738 , - 2843 , - 2988 , - 2173 , - 398 , - 2271 , - 3184 , - 3137 , - 2130 , - 163 , - 1844 , - 2565 , - 2326 , - 1127 , - 3576 , - 457 , - 986 , - 555 , - 3772 , - 1421 , - 2718 , - 3055 , - 2432 , - 849 , - 2914 , - 4019 , - 4164 , - 3349 , - 1574 , - 3447 , - 4360 , - 4313 , - 3306 , - 1339 , - 3020 , - 3741 , - 3502 , - 2303 , - 144 , - 1633 , - 2162 , - 1731 , - 340 , - 2597 , - 3894 , - 4231 , - 3608 , - 2025 , - 4090 , - 587 , - 732 , - 4525 , - 2750 , - 15 , - 928 , - 881 , - 4482 , - 2515 , - 4196 , - 309 , - 70 , - 3479 , - 1320 , - 2809 , - 3338 , - 2907 , - 1516 , - 3773 , - 462 , - 799 , - 176 , - 3201 , - 658 , - 1763 , - 1908 , - 1093 , - 3926 , - 1191 , - 2104 , - 2057 , - 1050 , - 3691 , - 764 , - 1485 , - 1246 , - 47 , - 2496 , - 3985 , - 4514 , - 4083 , - 2692 , - 341 , - 1638 , - 1975 , - 1352 , - 4377 , - 1834 , - 2939 , - 3084 , - 2269 , - 494 , - 2367 , - 3280 , - 3233 , - 2226 , - 259 , - 1940 , - 2661 , - 2422 , - 1223 , - 3672 , - 553 , - 1082 , - 651 , - 3868 , - 1517 , - 2814 , - 3151 , - 2528 , - 945 , - 3010 , - 4115 , - 4260 , - 3445 , - 1670 , - 3543 , - 4456 , - 4409 , - 3402 , - 1435 , - 3116 , - 3837 , - 3598 , - 2399 , - 240 , - 1729 , - 2258 , - 1827 , - 436 , - 2693 , - 3990 , - 4327 , - 3704 , - 2121 , - 4186 , - 683 , - 828 , - 13 , - 2846 , - 111 , - 1024 , - 977 , - 4578 , - 2611 , - 4292 , - 405 , - 166 , - 3575 , - 1416 , - 2905 , - 3434 , - 3003 , - 1612 , - 3869 , - 558 , - 895 , - 272 , - 3297 , - 754 , - 1859 , - 2004 , - 1189 , - 4022 , - 1287 , - 2200 , - 2153 , - 1146 , - 3787 , - 860 , - 1581 , - 1342 , - 143 , - 2592 , - 4081 , - 2 , - 4179 , - 2788 , - 437 , - 1734 , - 2071 , - 1448 , - 4473 , - 1930 , - 3035 , - 3180 , - 2365 , - 590 , - 2463 , - 3376 , - 3329 , - 2322 , - 355 , - 2036 , - 2757 , - 2518 , - 1319 , - 3768 , - 649 , - 1178 , - 747 , - 3964 , - 1613 , - 2910 , - 3247 , - 2624 , - 1041 , - 3106 , - 4211 , - 4356 , - 3541 , - 1766 , - 3639 , - 4552 , - 4505 , - 3498 , - 1531 , - 3212 , - 3933 , - 3694 , - 2495 , - 336 , - 1825 , - 2354 , - 1923 , - 532 , - 2789 , - 4086 , - 4423 , - 3800 , - 2217 , - 4282 , - 779 , - 924 , - 109 , - 2942 , - 207 , - 1120 , - 1073 , - 66 , - 2707 , - 4388 , - 501 , - 262 , - 3671 , - 1512 , - 3001 , - 3530 , - 3099 , - 1708 , - 3965 , - 654 , - 991 , - 368 , - 3393 , - 850 , - 1955 , - 2100 , - 1285 , - 4118 , - 1383 , - 2296 , - 2249 , - 1242 , - 3883 , - 956 , - 1677 , - 1438 , - 239 , - 2688 , - 4177 , - 98 , - 4275 , - 2884 , - 533 , - 1830 , - 2167 , - 1544 , - 4569 , - 2026 , - 3131 , - 3276 , - 2461 , - 686 , - 2559 , - 3472 , - 3425 , - 2418 , - 451 , - 2132 , - 2853 , - 2614 , - 1415 , - 3864 , - 745 , - 1274 , - 843 , - 4060 , - 1709 , - 3006 , - 3343 , - 2720 , - 1137 , - 3202 , - 4307 , - 4452 , - 3637 , - 1862 , - 3735 , - 40 , - 4601 , - 3594 , - 1627 , - 3308 , - 4029 , - 3790 , - 2591 , - 432 , - 1921 , - 2450 , - 2019 , - 628 , - 2885 , - 4182 , - 4519 , - 3896 , - 2313 , - 4378 , - 875 , - 1020 , - 205 , - 3038 , - 303 , - 1216 , - 1169 , - 162 , - 2803 , - 4484 , - 597 , - 358 , - 3767 , - 1608 , - 3097 , - 3626 , - 3195 , - 1804 , - 4061 , - 750 , - 1087 , - 464 , - 3489 , - 946 , - 2051 , - 2196 , - 1381 , - 4214 , - 1479 , - 2392 , - 2345 , - 1338 , - 3979 , - 1052 , - 1773 , - 1534 , - 335 , - 2784 , - 4273 , - 194 , - 4371 , - 2980 , - 629 , - 1926 , - 2263 , - 1640 , - 57 , - 2122 , - 3227 , - 3372 , - 2557 , - 782 , - 2655 , - 3568 , - 3521 , - 2514 , - 547 , - 2228 , - 2949 , - 2710 , - 1511 , - 3960 , - 841 , - 1370 , - 939 , - 4156 , - 1805 , - 3102 , - 3439 , - 2816 , - 1233 , - 3298 , - 4403 , - 4548 , - 3733 , - 1958 , - 3831 , - 136 , - 89 , - 3690 , - 1723 , - 3404 , - 4125 , - 3886 , - 2687 , - 528 , - 2017 , - 2546 , - 2115 , - 724 , - 2981 , - 4278 , - 7 , - 3992 , - 2409 , - 4474 , - 971 , - 1116 , - 301 , - 3134 , - 399 , - 1312 , - 1265 , - 258 , - 2899 , - 4580 , - 693 , - 454 , - 3863 , - 1704 , - 3193 , - 3722 , - 3291 , - 1900 , - 4157 , - 846 , - 1183 , - 560 , - 3585 , - 1042 , - 2147 , - 2292 , - 1477 , - 4310 , - 1575 , - 2488 , - 2441 , - 1434 , - 4075 , - 1148 , - 1869 , - 1630 , - 431 , - 2880 , - 4369 , - 290 , - 4467 , - 3076 , - 725 , - 2022 , - 2359 , - 1736 , - 153 , - 2218 , - 3323 , - 3468 , - 2653 , - 878 , - 2751 , - 3664 , - 3617 , - 2610 , - 643 , - 2324 , - 3045 , - 2806 , - 1607 , - 4056 , - 937 , - 1466 , - 1035 , - 4252 , - 1901 , - 3198 , - 3535 , - 2912 , - 1329 , - 3394 , - 4499 , - 36 , - 3829 , - 2054 , - 3927 , - 232 , - 185 , - 3786 , - 1819 , - 3500 , - 4221 , - 3982 , - 2783 , - 624 , - 2113 , - 2642 , - 2211 , - 820 , - 3077 , - 4374 , - 103 , - 4088 , - 2505 , - 4570 , - 1067 , - 1212 , - 397 , - 3230 , - 495 , - 1408 , - 1361 , - 354 , - 2995 , - 68 , - 789 , - 550 , - 3959 , - 1800 , - 3289 , - 3818 , - 3387 , - 1996 , - 4253 , - 942 , - 1279 , - 656 , - 3681 , - 1138 , - 2243 , - 2388 , - 1573 , - 4406 , - 1671 , - 2584 , - 2537 , - 1530 , - 4171 , - 1244 , - 1965 , - 1726 , - 527 , - 2976 , - 4465 , - 386 , - 4563 , - 3172 , - 821 , - 2118 , - 2455 , - 1832 , - 249 , - 2314 , - 3419 , - 3564 , - 2749 , - 974 , - 2847 , - 3760 , - 3713 , - 2706 , - 739 , - 2420 , - 3141 , - 2902 , - 1703 , - 4152 , - 1033 , - 1562 , - 1131 , - 4348 , - 1997 , - 3294 , - 3631 , - 3008 , - 1425 , - 3490 , - 4595 , - 132 , - 3925 , - 2150 , - 4023 , - 328 , - 281 , - 3882 , - 1915 , - 3596 , - 4317 , - 4078 , - 2879 , - 720 , - 2209 , - 2738 , - 2307 , - 916 , - 3173 , - 4470 , - 199 , - 4184 , - 2601 , - 58 , - 1163 , - 1308 , - 493 , - 3326 , - 591 , - 1504 , - 1457 , - 450 , - 3091 , - 164 , - 885 , - 646 , - 4055 , - 1896 , - 3385 , - 3914 , - 3483 , - 2092 , - 4349 , - 1038 , - 1375 , - 752 , - 3777 , - 1234 , - 2339 , - 2484 , - 1669 , - 4502 , - 1767 , - 2680 , - 2633 , - 1626 , - 4267 , - 1340 , - 2061 , - 1822 , - 623 , - 3072 , - 4561 , - 482 , - 51 , - 3268 , - 917 , - 2214 , - 2551 , - 1928 , - 345 , - 2410 , - 3515 , - 3660 , - 2845 , - 1070 , - 2943 , - 3856 , - 3809 , - 2802 , - 835 , - 2516 , - 3237 , - 2998 , - 1799 , - 4248 , - 1129 , - 1658 , - 1227 , - 4444 , - 2093 , - 3390 , - 3727 , - 3104 , - 1521 , - 3586 , - 83 , - 228 , - 4021 , - 2246 , - 4119 , - 424 , - 377 , - 3978 , - 2011 , - 3692 , - 4413 , - 4174 , - 2975 , - 816 , - 2305 , - 2834 , - 2403 , - 1012 , - 3269 , - 4566 , - 295 , - 4280 , - 2697 , - 154 , - 1259 , - 1404 , - 589 , - 3422 , - 687 , - 1600 , - 1553 , - 546 , - 3187 , - 260 , - 981 , - 742 , - 4151 , - 1992 , - 3481 , - 4010 , - 3579 , - 2188 , - 4445 , - 1134 , - 1471 , - 848 , - 3873 , - 1330 , - 2435 , - 2580 , - 1765 , - 4598 , - 1863 , - 2776 , - 2729 , - 1722 , - 4363 , - 1436 , - 2157 , - 1918 , - 719 , - 3168 , - 49 , - 578 , - 147 , - 3364 , - 1013 , - 2310 , - 2647 , - 2024 , - 441 , - 2506 , - 3611 , - 3756 , - 2941 , - 1166 , - 3039 , - 3952 , - 3905 , - 2898 , - 931 , - 2612 , - 3333 , - 3094 , - 1895 , - 4344 , - 1225 , - 1754 , - 1323 , - 4540 , - 2189 , - 3486 , - 3823 , - 3200 , - 1617 , - 3682 , - 179 , - 324 , - 4117 , - 2342 , - 4215 , - 520 , - 473 , - 4074 , - 2107 , - 3788 , - 4509 , - 4270 , - 3071 , - 912 , - 2401 , - 2930 , - 2499 , - 1108 , - 3365 , - 54 , - 391 , - 4376 , - 2793 , - 250 , - 1355 , - 1500 , - 685 , - 3518 , - 783 , - 1696 , - 1649 , - 642 , - 3283 , - 356 , - 1077 , - 838 , - 4247 , - 2088 , - 3577 , - 4106 , - 3675 , - 2284 , - 4541 , - 1230 , - 1567 , - 944 , - 3969 , - 1426 , - 2531 , - 2676 , - 1861 , - 86 , - 1959 , - 2872 , - 2825 , - 1818 , - 4459 , - 1532 , - 2253 , - 2014 , - 815 , - 3264 , - 145 , - 674 , - 243 , - 3460 , - 1109 , - 2406 , - 2743 , - 2120 , - 537 , - 2602 , - 3707 , - 3852 , - 3037 , - 1262 , - 3135 , - 4048 , - 4001 , - 2994 , - 1027 , - 2708 , - 3429 , - 3190 , - 1991 , - 4440 , - 1321 , - 1850 , - 1419 , - 28 , - 2285 , - 3582 , - 3919 , - 3296 , - 1713 , - 3778 , - 275 , - 420 , - 4213 , - 2438 , - 4311 , - 616 , - 569 , - 4170 , - 2203 , - 3884 , - 4605 , - 4366 , - 3167 , - 1008 , - 2497 , - 3026 , - 2595 , - 1204 , - 3461 , - 150 , - 487 , - 4472 , - 2889 , - 346 , - 1451 , - 1596 , - 781 , - 3614 , - 879 , - 1792 , - 1745 , - 738 , - 3379 , - 452 , - 1173 , - 934 , - 4343 , - 2184 , - 3673 , - 4202 , - 3771 , - 2380 , - 29 , - 1326 , - 1663 , - 1040 , - 4065 , - 1522 , - 2627 , - 2772 , - 1957 , - 182 , - 2055 , - 2968 , - 2921 , - 1914 , - 4555 , - 1628 , - 2349 , - 2110 , - 911 , - 3360 , - 241 , - 770 , - 339 , - 3556 , - 1205 , - 2502 , - 2839 , - 2216 , - 633 , - 2698 , - 3803 , - 3948 , - 3133 , - 1358 , - 3231 , - 4144 , - 4097 , - 3090 , - 1123 , - 2804 , - 3525 , - 3286 , - 2087 , - 4536 , - 1417 , - 1946 , - 1515 , - 124 , - 2381 , - 3678 , - 4015 , - 3392 , - 1809 , - 3874 , - 371 , - 516 , - 4309 , - 2534 , - 4407 , - 712 , - 665 , - 4266 , - 2299 , - 3980 , - 93 , - 4462 , - 3263 , - 1104 , - 2593 , - 3122 , - 2691 , - 1300 , - 3557 , - 246 , - 583 , - 4568 , - 2985 , - 442 , - 1547 , - 1692 , - 877 , - 3710 , - 975 , - 1888 , - 1841 , - 834 , - 3475 , - 548 , - 1269 , - 1030 , - 4439 , - 2280 , - 3769 , - 4298 , - 3867 , - 2476 , - 125 , - 1422 , - 1759 , - 1136 , - 4161 , - 1618 , - 2723 , - 2868 , - 2053 , - 278 , - 2151 , - 3064 , - 3017 , - 2010 , - 43 , - 1724 , - 2445 , - 2206 , - 1007 , - 3456 , - 337 , - 866 , - 435 , - 3652 , - 1301 , - 2598 , - 2935 , - 2312 , - 729 , - 2794 , - 3899 , - 4044 , - 3229 , - 1454 , - 3327 , - 4240 , - 4193 , - 3186 , - 1219 , - 2900 , - 3621 , - 3382 , - 2183 , - 24 , - 1513 , - 2042 , - 1611 , - 220 , - 2477 , - 3774 , - 4111 , - 3488 , - 1905 , - 3970 , - 467 , - 612 , - 4405 , - 2630 , - 4503 , - 808 , - 761 , - 4362 , - 2395 , - 4076 , - 189 , - 4558 , - 3359 , - 1200 , - 2689 , - 3218 , - 2787 , - 1396 , - 3653 , - 342 , - 679 , - 56 , - 3081 , - 538 , - 1643 , - 1788 , - 973 , - 3806 , - 1071 , - 1984 , - 1937 , - 930 , - 3571 , - 644 , - 1365 , - 1126 , - 4535 , - 2376 , - 3865 , - 4394 , - 3963 , - 2572 , - 221 , - 1518 , - 1855 , - 1232 , - 4257 , - 1714 , - 2819 , - 2964 , - 2149 , - 374 , - 2247 , - 3160 , - 3113 , - 2106 , - 139 , - 1820 , - 2541 , - 2302 , - 1103 , - 3552 , - 433 , - 962 , - 531 , - 3748 , - 1397 , - 2694 , - 3031 , - 2408 , - 825 , - 2890 , - 3995 , - 4140 , - 3325 , - 1550 , - 3423 , - 4336 , - 4289 , - 3282 , - 1315 , - 2996 , - 3717 , - 3478 , - 2279 , - 120 , - 1609 , - 2138 , - 1707 , - 316 , - 2573 , - 3870 , - 4207 , - 3584 , - 2001 , - 4066 , - 563 , - 708 , - 4501 , - 2726 , - 4599 , - 904 , - 857 , - 4458 , - 2491 , - 4172 , - 285 , - 46 , - 3455 , - 1296 , - 2785 , - 3314 , - 2883 , - 1492 , - 3749 , - 438 , - 775 , - 152 , - 3177 , - 634 , - 1739 , - 1884 , - 1069 , - 3902 , - 1167 , - 2080 , - 2033 , - 1026 , - 3667 , - 740 , - 1461 , - 1222 , - 23 , - 2472 , - 3961 , - 4490 , - 4059 , - 2668 , - 317 , - 1614 , - 1951 , - 1328 , - 4353 , - 1810 , - 2915 , - 3060 , - 2245 , - 470 , - 2343 , - 3256 , - 3209 , - 2202 , - 235 , - 1916 , - 2637 , - 2398 , - 1199 , - 3648 , - 529 , - 1058 , - 627 , - 3844 , - 1493 , - 2790 , - 3127 , - 2504 , - 921 , - 2986 , - 4091 , - 4236 , - 3421 , - 1646 , - 3519 , - 4432 , - 4385 , - 3378 , - 1411 , - 3092 , - 3813 , - 3574 , - 2375 , - 216 , - 1705 , - 2234 , - 1803 , - 412 , - 2669 , - 3966 , - 4303 , - 3680 , - 2097 , - 4162 , - 659 , - 804 , - 4597 , - 2822 , - 87 , - 1000 , - 953 , - 4554 , - 2587 , - 4268 , - 381 , - 142 , - 3551 , - 1392 , - 2881 , - 3410 , - 2979 , - 1588 , - 3845 , - 534 , - 871 , - 248 , - 3273 , - 730 , - 1835 , - 1980 , - 1165 , - 3998 , - 1263 , - 2176 , - 2129 , - 1122 , - 3763 , - 836 , - 1557 , - 1318 , - 119 , - 2568 , - 4057 , - 4586 , - 4155 , - 2764 , - 413 , - 1710 , - 2047 , - 1424 , - 4449 , - 1906 , - 3011 , - 3156 , - 2341 , - 566 , - 2439 , - 3352 , - 3305 , - 2298 , - 331 , - 2012 , - 2733 , - 2494 , - 1295 , - 3744 , - 625 , - 1154 , - 723 , - 3940 , - 1589 , - 2886 , - 3223 , - 2600 , - 1017 , - 3082 , - 4187 , - 4332 , - 3517 , - 1742 , - 3615 , - 4528 , - 4481 , - 3474 , - 1507 , - 3188 , - 3909 , - 3670 , - 2471 , - 312 , - 1801 , - 2330 , - 1899 , - 508 , - 2765 , - 4062 , - 4399 , - 3776 , - 2193 , - 4258 , - 755 , - 900 , - 85 , - 2918 , - 183 , - 1096 , - 1049 , - 42 , - 2683 , - 4364 , - 477 , - 238 , - 3647 , - 1488 , - 2977 , - 3506 , - 3075 , - 1684 , - 3941 , - 630 , - 967 , - 344 , - 3369 , - 826 , - 1931 , - 2076 , - 1261 , - 4094 , - 1359 , - 2272 , - 2225 , - 1218 , - 3859 , - 932 , - 1653 , - 1414 , - 215 , - 2664 , - 4153 , - 74 , - 4251 , - 2860 , - 509 , - 1806 , - 2143 , - 1520 , - 4545 , - 2002 , - 3107 , - 3252 , - 2437 , - 662 , - 2535 , - 3448 , - 3401 , - 2394 , - 427 , - 2108 , - 2829 , - 2590 , - 1391 , - 3840 , - 721 , - 1250 , - 819 , - 4036 , - 1685 , - 2982 , - 3319 , - 2696 , - 1113 , - 3178 , - 4283 , - 4428 , - 3613 , - 1838 , - 3711 , - 16 , - 4577 , - 3570 , - 1603 , - 3284 , - 4005 , - 3766 , - 2567 , - 408 , - 1897 , - 2426 , - 1995 , - 604 , - 2861 , - 4158 , - 4495 , - 3872 , - 2289 , - 4354 , - 851 , - 996 , - 181 , - 3014 , - 279 , - 1192 , - 1145 , - 138 , - 2779 , - 4460 , - 573 , - 334 , - 3743 , - 1584 , - 3073 , - 3602 , - 3171 , - 1780 , - 4037 , - 726 , - 1063 , - 440 , - 3465 , - 922 , - 2027 , - 2172 , - 1357 , - 4190 , - 1455 , - 2368 , - 2321 , - 1314 , - 3955 , - 1028 , - 1749 , - 1510 , - 311 , - 2760 , - 4249 , - 170 , - 4347 , - 2956 , - 605 , - 1902 , - 2239 , - 1616 , - 33 , - 2098 , - 3203 , - 3348 , - 2533 , - 758 , - 2631 , - 3544 , - 3497 , - 2490 , - 523 , - 2204 , - 2925 , - 2686 , - 1487 , - 3936 , - 817 , - 1346 , - 915 , - 4132 , - 1781 , - 3078 , - 3415 , - 2792 , - 1209 , - 3274 , - 4379 , - 4524 , - 3709 , - 1934 , - 3807 , - 112 , - 65 , - 3666 , - 1699 , - 3380 , - 4101 , - 3862 , - 2663 , - 504 , - 1993 , - 2522 , - 2091 , - 700 , - 2957 , - 4254 , - 4591 , - 3968 , - 2385 , - 4450 , - 947 , - 1092 , - 277 , - 3110 , - 375 , - 1288 , - 1241 , - 234 , - 2875 , - 4556 , - 669 , - 430 , - 3839 , - 1680 , - 3169 , - 3698 , - 3267 , - 1876 , - 4133 , - 822 , - 1159 , - 536 , - 3561 , - 1018 , - 2123 , - 2268 , - 1453 , - 4286 , - 1551 , - 2464 , - 2417 , - 1410 , - 4051 , - 1124 , - 1845 , - 1606 , - 407 , - 2856 , - 4345 , - 266 , - 4443 , - 3052 , - 701 , - 1998 , - 2335 , - 1712 , - 129 , - 2194 , - 3299 , - 3444 , - 2629 , - 854 , - 2727 , - 3640 , - 3593 , - 2586 , - 619 , - 2300 , - 3021 , - 2782 , - 1583 , - 4032 , - 913 , - 1442 , - 1011 , - 4228 , - 1877 , - 3174 , - 3511 , - 2888 , - 1305 , - 3370 , - 4475 , - 12 , - 3805 , - 2030 , - 3903 , - 208 , - 161 , - 3762 , - 1795 , - 3476 , - 4197 , - 3958 , - 2759 , - 600 , - 2089 , - 2618 , - 2187 , - 796 , - 3053 , - 4350 , - 79 , - 4064 , - 2481 , - 4546 , - 1043 , - 1188 , - 373 , - 3206 , - 471 , - 1384 , - 1337 , - 330 , - 2971 , - 44 , - 765 , - 526 , - 3935 , - 1776 , - 3265 , - 3794 , - 3363 , - 1972 , - 4229 , - 918 , - 1255 , - 632 , - 3657 , - 1114 , - 2219 , - 2364 , - 1549 , - 4382 , - 1647 , - 2560 , - 2513 , - 1506 , - 4147 , - 1220 , - 1941 , - 1702 , - 503 , - 2952 , - 4441 , - 362 , - 4539 , - 3148 , - 797 , - 2094 , - 2431 , - 1808 , - 225 , - 2290 , - 3395 , - 3540 , - 2725 , - 950 , - 2823 , - 3736 , - 3689 , - 2682 , - 715 , - 2396 , - 3117 , - 2878 , - 1679 , - 4128 , - 1009 , - 1538 , - 1107 , - 4324 , - 1973 , - 3270 , - 3607 , - 2984 , - 1401 , - 3466 , - 4571 , - 108 , - 3901 , - 2126 , - 3999 , - 304 , - 257 , - 3858 , - 1891 , - 3572 , - 4293 , - 4054 , - 2855 , - 696 , - 2185 , - 2714 , - 2283 , - 892 , - 3149 , - 4446 , - 175 , - 4160 , - 2577 , - 34 , - 1139 , - 1284 , - 469 , - 3302 , - 567 , - 1480 , - 1433 , - 426 , - 3067 , - 140 , - 861 , - 622 , - 4031 , - 1872 , - 3361 , - 3890 , - 3459 , - 2068 , - 4325 , - 1014 , - 1351 , - 728 , - 3753 , - 1210 , - 2315 , - 2460 , - 1645 , - 4478 , - 1743 , - 2656 , - 2609 , - 1602 , - 4243 , - 1316 , - 2037 , - 1798 , - 599 , - 3048 , - 4537 , - 458 , - 27 , - 3244 , - 893 , - 2190 , - 2527 , - 1904 , - 321 , - 2386 , - 3491 , - 3636 , - 2821 , - 1046 , - 2919 , - 3832 , - 3785 , - 2778 , - 811 , - 2492 , - 3213 , - 2974 , - 1775 , - 4224 , - 1105 , - 1634 , - 1203 , - 4420 , - 2069 , - 3366 , - 3703 , - 3080 , - 1497 , - 3562 , - 59 , - 204 , - 3997 , - 2222 , - 4095 , - 400 , - 353 , - 3954 , - 1987 , - 3668 , - 4389 , - 4150 , - 2951 , - 792 , - 2281 , - 2810 , - 2379 , - 988 , - 3245 , - 4542 , - 271 , - 4256 , - 2673 , - 130 , - 1235 , - 1380 , - 565 , - 3398 , - 663 , - 1576 , - 1529 , - 522 , - 3163 , - 236 , - 957 , - 718 , - 4127 , - 1968 , - 3457 , - 3986 , - 3555 , - 2164 , - 4421 , - 1110 , - 1447 , - 824 , - 3849 , - 1306 , - 2411 , - 2556 , - 1741 , - 4574 , - 1839 , - 2752 , - 2705 , - 1698 , - 4339 , - 1412 , - 2133 , - 1894 , - 695 , - 3144 , - 25 , - 554 , - 123 , - 3340 , - 989 , - 2286 , - 2623 , - 2000 , - 417 , - 2482 , - 3587 , - 3732 , - 2917 , - 1142 , - 3015 , - 3928 , - 3881 , - 2874 , - 907 , - 2588 , - 3309 , - 3070 , - 1871 , - 4320 , - 1201 , - 1730 , - 1299 , - 4516 , - 2165 , - 3462 , - 3799 , - 3176 , - 1593 , - 3658 , - 155 , - 300 , - 4093 , - 2318 , - 4191 , - 496 , - 449 , - 4050 , - 2083 , - 3764 , - 4485 , - 4246 , - 3047 , - 888 , - 2377 , - 2906 , - 2475 , - 1084 , - 3341 , - 30 , - 367 , - 4352 , - 2769 , - 226 , - 1331 , - 1476 , - 661 , - 3494 , - 759 , - 1672 , - 1625 , - 618 , - 3259 , - 332 , - 1053 , - 814 , - 4223 , - 2064 , - 3553 , - 4082 , - 3651 , - 2260 , - 4517 , - 1206 , - 1543 , - 920 , - 3945 , - 1402 , - 2507 , - 2652 , - 1837 , - 62 , - 1935 , - 2848 , - 2801 , - 1794 , - 4435 , - 1508 , - 2229 , - 1990 , - 791 , - 3240 , - 121 , - 650 , - 219 , - 3436 , - 1085 , - 2382 , - 2719 , - 2096 , - 513 , - 2578 , - 3683 , - 3828 , - 3013 , - 1238 , - 3111 , - 4024 , - 3977 , - 2970 , - 1003 , - 2684 , - 3405 , - 3166 , - 1967 , - 4416 , - 1297 , - 1826 , - 1395 , - 4 , - 2261 , - 3558 , - 3895 , - 3272 , - 1689 , - 3754 , - 251 , - 396 , - 4189 , - 2414 , - 4287 , - 592 , - 545 , - 4146 , - 2179 , - 3860 , - 4581 , - 4342 , - 3143 , - 984 , - 2473 , - 3002 , - 2571 , - 1180 , - 3437 , - 126 , - 463 , - 4448 , - 2865 , - 322 , - 1427 , - 1572 , - 757 , - 3590 , - 855 , - 1768 , - 1721 , - 714 , - 3355 , - 428 , - 1149 , - 910 , - 4319 , - 2160 , - 3649 , - 4178 , - 3747 , - 2356 , - 5 , - 1302 , - 1639 , - 1016 , - 4041 , - 1498 , - 2603 , - 2748 , - 1933 , - 158 , - 2031 , - 2944 , - 2897 , - 1890 , - 4531 , - 1604 , - 2325 , - 2086 , - 887 , - 3336 , - 217 , - 746 , - 315 , - 3532 , - 1181 , - 2478 , - 2815 , - 2192 , - 609 , - 2674 , - 3779 , - 3924 , - 3109 , - 1334 , - 3207 , - 4120 , - 4073 , - 3066 , - 1099 , - 2780 , - 3501 , - 3262 , - 2063 , - 4512 , - 1393 , - 1922 , - 1491 , - 100 , - 2357 , - 3654 , - 3991 , - 3368 , - 1785 , - 3850 , - 347 , - 492 , - 4285 , - 2510 , - 4383 , - 688 , - 641 , - 4242 , - 2275 , - 3956 , - 69 , - 4438 , - 3239 , - 1080 , - 2569 , - 3098 , - 2667 , - 1276 , - 3533 , - 222 , - 559 , - 4544 , - 2961 , - 418 , - 1523 , - 1668 , - 853 , - 3686 , - 951 , - 1864 , - 1817 , - 810 , - 3451 , - 524 , - 1245 , - 1006 , - 4415 , - 2256 , - 3745 , - 4274 , - 3843 , - 2452 , - 101 , - 1398 , - 1735 , - 1112 , - 4137 , - 1594 , - 2699 , - 2844 , - 2029 , - 254 , - 2127 , - 3040 , - 2993 , - 1986 , - 19 , - 1700 , - 2421 , - 2182 , - 983 , - 3432 , - 313 , - 842 , - 411 , - 3628 , - 1277 , - 2574 , - 2911 , - 2288 , - 705 , - 2770 , - 3875 , - 4020 , - 3205 , - 1430 , - 3303 , - 4216 , - 4169 , - 3162 , - 1195 , - 2876 , - 3597 , - 3358 , - 2159 , - 0 , - 2995 , - 4530 , - 1101 , - 3220 , - 2711 , - 742 , - 3153 , - 1768 , - 2427 , - 1626 , - 533 , - 316 , - 2143 , - 2510 , - 2585 , - 3536 , - 1859 , - 3394 , - 4637 , - 2084 , - 1575 , - 4278 , - 2017 , - 632 , - 1291 , - 490 , - 4069 , - 3852 , - 1007 , - 1374 , - 1449 , - 2400 , - 723 , - 2258 , - 3501 , - 948 , - 439 , - 3142 , - 881 , - 4168 , - 155 , - 4026 , - 2933 , - 2716 , - 4543 , - 238 , - 313 , - 1264 , - 4259 , - 1122 , - 2365 , - 4484 , - 3975 , - 2006 , - 4417 , - 3032 , - 3691 , - 2890 , - 1797 , - 1580 , - 3407 , - 3774 , - 3849 , - 128 , - 3123 , - 4658 , - 1229 , - 3348 , - 2839 , - 870 , - 3281 , - 1896 , - 2555 , - 1754 , - 661 , - 444 , - 2271 , - 2638 , - 2713 , - 3664 , - 1987 , - 3522 , - 93 , - 2212 , - 1703 , - 4406 , - 2145 , - 760 , - 1419 , - 618 , - 4197 , - 3980 , - 1135 , - 1502 , - 1577 , - 2528 , - 851 , - 2386 , - 3629 , - 1076 , - 567 , - 3270 , - 1009 , - 4296 , - 283 , - 4154 , - 3061 , - 2844 , - 4671 , - 366 , - 441 , - 1392 , - 4387 , - 1250 , - 2493 , - 4612 , - 4103 , - 2134 , - 4545 , - 3160 , - 3819 , - 3018 , - 1925 , - 1708 , - 3535 , - 3902 , - 3977 , - 256 , - 3251 , - 114 , - 1357 , - 3476 , - 2967 , - 998 , - 3409 , - 2024 , - 2683 , - 1882 , - 789 , - 572 , - 2399 , - 2766 , - 2841 , - 3792 , - 2115 , - 3650 , - 221 , - 2340 , - 1831 , - 4534 , - 2273 , - 888 , - 1547 , - 746 , - 4325 , - 4108 , - 1263 , - 1630 , - 1705 , - 2656 , - 979 , - 2514 , - 3757 , - 1204 , - 695 , - 3398 , - 1137 , - 4424 , - 411 , - 4282 , - 3189 , - 2972 , - 127 , - 494 , - 569 , - 1520 , - 4515 , - 1378 , - 2621 , - 68 , - 4231 , - 2262 , - 1 , - 3288 , - 3947 , - 3146 , - 2053 , - 1836 , - 3663 , - 4030 , - 4105 , - 384 , - 3379 , - 242 , - 1485 , - 3604 , - 3095 , - 1126 , - 3537 , - 2152 , - 2811 , - 2010 , - 917 , - 700 , - 2527 , - 2894 , - 2969 , - 3920 , - 2243 , - 3778 , - 349 , - 2468 , - 1959 , - 4662 , - 2401 , - 1016 , - 1675 , - 874 , - 4453 , - 4236 , - 1391 , - 1758 , - 1833 , - 2784 , - 1107 , - 2642 , - 3885 , - 1332 , - 823 , - 3526 , - 1265 , - 4552 , - 539 , - 4410 , - 3317 , - 3100 , - 255 , - 622 , - 697 , - 1648 , - 4643 , - 1506 , - 2749 , - 196 , - 4359 , - 2390 , - 129 , - 3416 , - 4075 , - 3274 , - 2181 , - 1964 , - 3791 , - 4158 , - 4233 , - 512 , - 3507 , - 370 , - 1613 , - 3732 , - 3223 , - 1254 , - 3665 , - 2280 , - 2939 , - 2138 , - 1045 , - 828 , - 2655 , - 3022 , - 3097 , - 4048 , - 2371 , - 3906 , - 477 , - 2596 , - 2087 , - 118 , - 2529 , - 1144 , - 1803 , - 1002 , - 4581 , - 4364 , - 1519 , - 1886 , - 1961 , - 2912 , - 1235 , - 2770 , - 4013 , - 1460 , - 951 , - 3654 , - 1393 , - 8 , - 667 , - 4538 , - 3445 , - 3228 , - 383 , - 750 , - 825 , - 1776 , - 99 , - 1634 , - 2877 , - 324 , - 4487 , - 2518 , - 257 , - 3544 , - 4203 , - 3402 , - 2309 , - 2092 , - 3919 , - 4286 , - 4361 , - 640 , - 3635 , - 498 , - 1741 , - 3860 , - 3351 , - 1382 , - 3793 , - 2408 , - 3067 , - 2266 , - 1173 , - 956 , - 2783 , - 3150 , - 3225 , - 4176 , - 2499 , - 4034 , - 605 , - 2724 , - 2215 , - 246 , - 2657 , - 1272 , - 1931 , - 1130 , - 37 , - 4492 , - 1647 , - 2014 , - 2089 , - 3040 , - 1363 , - 2898 , - 4141 , - 1588 , - 1079 , - 3782 , - 1521 , - 136 , - 795 , - 4666 , - 3573 , - 3356 , - 511 , - 878 , - 953 , - 1904 , - 227 , - 1762 , - 3005 , - 452 , - 4615 , - 2646 , - 385 , - 3672 , - 4331 , - 3530 , - 2437 , - 2220 , - 4047 , - 4414 , - 4489 , - 768 , - 3763 , - 626 , - 1869 , - 3988 , - 3479 , - 1510 , - 3921 , - 2536 , - 3195 , - 2394 , - 1301 , - 1084 , - 2911 , - 3278 , - 3353 , - 4304 , - 2627 , - 4162 , - 733 , - 2852 , - 2343 , - 374 , - 2785 , - 1400 , - 2059 , - 1258 , - 165 , - 4620 , - 1775 , - 2142 , - 2217 , - 3168 , - 1491 , - 3026 , - 4269 , - 1716 , - 1207 , - 3910 , - 1649 , - 264 , - 923 , - 122 , - 3701 , - 3484 , - 639 , - 1006 , - 1081 , - 2032 , - 355 , - 1890 , - 3133 , - 580 , - 71 , - 2774 , - 513 , - 3800 , - 4459 , - 3658 , - 2565 , - 2348 , - 4175 , - 4542 , - 4617 , - 896 , - 3891 , - 754 , - 1997 , - 4116 , - 3607 , - 1638 , - 4049 , - 2664 , - 3323 , - 2522 , - 1429 , - 1212 , - 3039 , - 3406 , - 3481 , - 4432 , - 2755 , - 4290 , - 861 , - 2980 , - 2471 , - 502 , - 2913 , - 1528 , - 2187 , - 1386 , - 293 , - 76 , - 1903 , - 2270 , - 2345 , - 3296 , - 1619 , - 3154 , - 4397 , - 1844 , - 1335 , - 4038 , - 1777 , - 392 , - 1051 , - 250 , - 3829 , - 3612 , - 767 , - 1134 , - 1209 , - 2160 , - 483 , - 2018 , - 3261 , - 708 , - 199 , - 2902 , - 641 , - 3928 , - 4587 , - 3786 , - 2693 , - 2476 , - 4303 , - 4670 , - 73 , - 1024 , - 4019 , - 882 , - 2125 , - 4244 , - 3735 , - 1766 , - 4177 , - 2792 , - 3451 , - 2650 , - 1557 , - 1340 , - 3167 , - 3534 , - 3609 , - 4560 , - 2883 , - 4418 , - 989 , - 3108 , - 2599 , - 630 , - 3041 , - 1656 , - 2315 , - 1514 , - 421 , - 204 , - 2031 , - 2398 , - 2473 , - 3424 , - 1747 , - 3282 , - 4525 , - 1972 , - 1463 , - 4166 , - 1905 , - 520 , - 1179 , - 378 , - 3957 , - 3740 , - 895 , - 1262 , - 1337 , - 2288 , - 611 , - 2146 , - 3389 , - 836 , - 327 , - 3030 , - 769 , - 4056 , - 43 , - 3914 , - 2821 , - 2604 , - 4431 , - 126 , - 201 , - 1152 , - 4147 , - 1010 , - 2253 , - 4372 , - 3863 , - 1894 , - 4305 , - 2920 , - 3579 , - 2778 , - 1685 , - 1468 , - 3295 , - 3662 , - 3737 , - 16 , - 3011 , - 4546 , - 1117 , - 3236 , - 2727 , - 758 , - 3169 , - 1784 , - 2443 , - 1642 , - 549 , - 332 , - 2159 , - 2526 , - 2601 , - 3552 , - 1875 , - 3410 , - 4653 , - 2100 , - 1591 , - 4294 , - 2033 , - 648 , - 1307 , - 506 , - 4085 , - 3868 , - 1023 , - 1390 , - 1465 , - 2416 , - 739 , - 2274 , - 3517 , - 964 , - 455 , - 3158 , - 897 , - 4184 , - 171 , - 4042 , - 2949 , - 2732 , - 4559 , - 254 , - 329 , - 1280 , - 4275 , - 1138 , - 2381 , - 4500 , - 3991 , - 2022 , - 4433 , - 3048 , - 3707 , - 2906 , - 1813 , - 1596 , - 3423 , - 3790 , - 3865 , - 144 , - 3139 , - 2 , - 1245 , - 3364 , - 2855 , - 886 , - 3297 , - 1912 , - 2571 , - 1770 , - 677 , - 460 , - 2287 , - 2654 , - 2729 , - 3680 , - 2003 , - 3538 , - 109 , - 2228 , - 1719 , - 4422 , - 2161 , - 776 , - 1435 , - 634 , - 4213 , - 3996 , - 1151 , - 1518 , - 1593 , - 2544 , - 867 , - 2402 , - 3645 , - 1092 , - 583 , - 3286 , - 1025 , - 4312 , - 299 , - 4170 , - 3077 , - 2860 , - 15 , - 382 , - 457 , - 1408 , - 4403 , - 1266 , - 2509 , - 4628 , - 4119 , - 2150 , - 4561 , - 3176 , - 3835 , - 3034 , - 1941 , - 1724 , - 3551 , - 3918 , - 3993 , - 272 , - 3267 , - 130 , - 1373 , - 3492 , - 2983 , - 1014 , - 3425 , - 2040 , - 2699 , - 1898 , - 805 , - 588 , - 2415 , - 2782 , - 2857 , - 3808 , - 2131 , - 3666 , - 237 , - 2356 , - 1847 , - 4550 , - 2289 , - 904 , - 1563 , - 762 , - 4341 , - 4124 , - 1279 , - 1646 , - 1721 , - 2672 , - 995 , - 2530 , - 3773 , - 1220 , - 711 , - 3414 , - 1153 , - 4440 , - 427 , - 4298 , - 3205 , - 2988 , - 143 , - 510 , - 585 , - 1536 , - 4531 , - 1394 , - 2637 , - 84 , - 4247 , - 2278 , - 17 , - 3304 , - 3963 , - 3162 , - 2069 , - 1852 , - 3679 , - 4046 , - 4121 , - 400 , - 3395 , - 258 , - 1501 , - 3620 , - 3111 , - 1142 , - 3553 , - 2168 , - 2827 , - 2026 , - 933 , - 716 , - 2543 , - 2910 , - 2985 , - 3936 , - 2259 , - 3794 , - 365 , - 2484 , - 1975 , - 6 , - 2417 , - 1032 , - 1691 , - 890 , - 4469 , - 4252 , - 1407 , - 1774 , - 1849 , - 2800 , - 1123 , - 2658 , - 3901 , - 1348 , - 839 , - 3542 , - 1281 , - 4568 , - 555 , - 4426 , - 3333 , - 3116 , - 271 , - 638 , - 713 , - 1664 , - 4659 , - 1522 , - 2765 , - 212 , - 4375 , - 2406 , - 145 , - 3432 , - 4091 , - 3290 , - 2197 , - 1980 , - 3807 , - 4174 , - 4249 , - 528 , - 3523 , - 386 , - 1629 , - 3748 , - 3239 , - 1270 , - 3681 , - 2296 , - 2955 , - 2154 , - 1061 , - 844 , - 2671 , - 3038 , - 3113 , - 4064 , - 2387 , - 3922 , - 493 , - 2612 , - 2103 , - 134 , - 2545 , - 1160 , - 1819 , - 1018 , - 4597 , - 4380 , - 1535 , - 1902 , - 1977 , - 2928 , - 1251 , - 2786 , - 4029 , - 1476 , - 967 , - 3670 , - 1409 , - 24 , - 683 , - 4554 , - 3461 , - 3244 , - 399 , - 766 , - 841 , - 1792 , - 115 , - 1650 , - 2893 , - 340 , - 4503 , - 2534 , - 273 , - 3560 , - 4219 , - 3418 , - 2325 , - 2108 , - 3935 , - 4302 , - 4377 , - 656 , - 3651 , - 514 , - 1757 , - 3876 , - 3367 , - 1398 , - 3809 , - 2424 , - 3083 , - 2282 , - 1189 , - 972 , - 2799 , - 3166 , - 3241 , - 4192 , - 2515 , - 4050 , - 621 , - 2740 , - 2231 , - 262 , - 2673 , - 1288 , - 1947 , - 1146 , - 53 , - 4508 , - 1663 , - 2030 , - 2105 , - 3056 , - 1379 , - 2914 , - 4157 , - 1604 , - 1095 , - 3798 , - 1537 , - 152 , - 811 , - 10 , - 3589 , - 3372 , - 527 , - 894 , - 969 , - 1920 , - 243 , - 1778 , - 3021 , - 468 , - 4631 , - 2662 , - 401 , - 3688 , - 4347 , - 3546 , - 2453 , - 2236 , - 4063 , - 4430 , - 4505 , - 784 , - 3779 , - 642 , - 1885 , - 4004 , - 3495 , - 1526 , - 3937 , - 2552 , - 3211 , - 2410 , - 1317 , - 1100 , - 2927 , - 3294 , - 3369 , - 4320 , - 2643 , - 4178 , - 749 , - 2868 , - 2359 , - 390 , - 2801 , - 1416 , - 2075 , - 1274 , - 181 , - 4636 , - 1791 , - 2158 , - 2233 , - 3184 , - 1507 , - 3042 , - 4285 , - 1732 , - 1223 , - 3926 , - 1665 , - 280 , - 939 , - 138 , - 3717 , - 3500 , - 655 , - 1022 , - 1097 , - 2048 , - 371 , - 1906 , - 3149 , - 596 , - 87 , - 2790 , - 529 , - 3816 , - 4475 , - 3674 , - 2581 , - 2364 , - 4191 , - 4558 , - 4633 , - 912 , - 3907 , - 770 , - 2013 , - 4132 , - 3623 , - 1654 , - 4065 , - 2680 , - 3339 , - 2538 , - 1445 , - 1228 , - 3055 , - 3422 , - 3497 , - 4448 , - 2771 , - 4306 , - 877 , - 2996 , - 2487 , - 518 , - 2929 , - 1544 , - 2203 , - 1402 , - 309 , - 92 , - 1919 , - 2286 , - 2361 , - 3312 , - 1635 , - 3170 , - 4413 , - 1860 , - 1351 , - 4054 , - 1793 , - 408 , - 1067 , - 266 , - 3845 , - 3628 , - 783 , - 1150 , - 1225 , - 2176 , - 499 , - 2034 , - 3277 , - 724 , - 215 , - 2918 , - 657 , - 3944 , - 4603 , - 3802 , - 2709 , - 2492 , - 4319 , - 14 , - 89 , - 1040 , - 4035 , - 898 , - 2141 , - 4260 , - 3751 , - 1782 , - 4193 , - 2808 , - 3467 , - 2666 , - 1573 , - 1356 , - 3183 , - 3550 , - 3625 , - 4576 , - 2899 , - 4434 , - 1005 , - 3124 , - 2615 , - 646 , - 3057 , - 1672 , - 2331 , - 1530 , - 437 , - 220 , - 2047 , - 2414 , - 2489 , - 3440 , - 1763 , - 3298 , - 4541 , - 1988 , - 1479 , - 4182 , - 1921 , - 536 , - 1195 , - 394 , - 3973 , - 3756 , - 911 , - 1278 , - 1353 , - 2304 , - 627 , - 2162 , - 3405 , - 852 , - 343 , - 3046 , - 785 , - 4072 , - 59 , - 3930 , - 2837 , - 2620 , - 4447 , - 142 , - 217 , - 1168 , - 4163 , - 1026 , - 2269 , - 4388 , - 3879 , - 1910 , - 4321 , - 2936 , - 3595 , - 2794 , - 1701 , - 1484 , - 3311 , - 3678 , - 3753 , - 32 , - 3027 , - 4562 , - 1133 , - 3252 , - 2743 , - 774 , - 3185 , - 1800 , - 2459 , - 1658 , - 565 , - 348 , - 2175 , - 2542 , - 2617 , - 3568 , - 1891 , - 3426 , - 4669 , - 2116 , - 1607 , - 4310 , - 2049 , - 664 , - 1323 , - 522 , - 4101 , - 3884 , - 1039 , - 1406 , - 1481 , - 2432 , - 755 , - 2290 , - 3533 , - 980 , - 471 , - 3174 , - 913 , - 4200 , - 187 , - 4058 , - 2965 , - 2748 , - 4575 , - 270 , - 345 , - 1296 , - 4291 , - 1154 , - 2397 , - 4516 , - 4007 , - 2038 , - 4449 , - 3064 , - 3723 , - 2922 , - 1829 , - 1612 , - 3439 , - 3806 , - 3881 , - 160 , - 3155 , - 18 , - 1261 , - 3380 , - 2871 , - 902 , - 3313 , - 1928 , - 2587 , - 1786 , - 693 , - 476 , - 2303 , - 2670 , - 2745 , - 3696 , - 2019 , - 3554 , - 125 , - 2244 , - 1735 , - 4438 , - 2177 , - 792 , - 1451 , - 650 , - 4229 , - 4012 , - 1167 , - 1534 , - 1609 , - 2560 , - 883 , - 2418 , - 3661 , - 1108 , - 599 , - 3302 , - 1041 , - 4328 , - 315 , - 4186 , - 3093 , - 2876 , - 31 , - 398 , - 473 , - 1424 , - 4419 , - 1282 , - 2525 , - 4644 , - 4135 , - 2166 , - 4577 , - 3192 , - 3851 , - 3050 , - 1957 , - 1740 , - 3567 , - 3934 , - 4009 , - 288 , - 3283 , - 146 , - 1389 , - 3508 , - 2999 , - 1030 , - 3441 , - 2056 , - 2715 , - 1914 , - 821 , - 604 , - 2431 , - 2798 , - 2873 , - 3824 , - 2147 , - 3682 , - 253 , - 2372 , - 1863 , - 4566 , - 2305 , - 920 , - 1579 , - 778 , - 4357 , - 4140 , - 1295 , - 1662 , - 1737 , - 2688 , - 1011 , - 2546 , - 3789 , - 1236 , - 727 , - 3430 , - 1169 , - 4456 , - 443 , - 4314 , - 3221 , - 3004 , - 159 , - 526 , - 601 , - 1552 , - 4547 , - 1410 , - 2653 , - 100 , - 4263 , - 2294 , - 33 , - 3320 , - 3979 , - 3178 , - 2085 , - 1868 , - 3695 , - 4062 , - 4137 , - 416 , - 3411 , - 274 , - 1517 , - 3636 , - 3127 , - 1158 , - 3569 , - 2184 , - 2843 , - 2042 , - 949 , - 732 , - 2559 , - 2926 , - 3001 , - 3952 , - 2275 , - 3810 , - 381 , - 2500 , - 1991 , - 22 , - 2433 , - 1048 , - 1707 , - 906 , - 4485 , - 4268 , - 1423 , - 1790 , - 1865 , - 2816 , - 1139 , - 2674 , - 3917 , - 1364 , - 855 , - 3558 , - 1297 , - 4584 , - 571 , - 4442 , - 3349 , - 3132 , - 287 , - 654 , - 729 , - 1680 , - 3 , - 1538 , - 2781 , - 228 , - 4391 , - 2422 , - 161 , - 3448 , - 4107 , - 3306 , - 2213 , - 1996 , - 3823 , - 4190 , - 4265 , - 544 , - 3539 , - 402 , - 1645 , - 3764 , - 3255 , - 1286 , - 3697 , - 2312 , - 2971 , - 2170 , - 1077 , - 860 , - 2687 , - 3054 , - 3129 , - 4080 , - 2403 , - 3938 , - 509 , - 2628 , - 2119 , - 150 , - 2561 , - 1176 , - 1835 , - 1034 , - 4613 , - 4396 , - 1551 , - 1918 , - 1993 , - 2944 , - 1267 , - 2802 , - 4045 , - 1492 , - 983 , - 3686 , - 1425 , - 40 , - 699 , - 4570 , - 3477 , - 3260 , - 415 , - 782 , - 857 , - 1808 , - 131 , - 1666 , - 2909 , - 356 , - 4519 , - 2550 , - 289 , - 3576 , - 4235 , - 3434 , - 2341 , - 2124 , - 3951 , - 4318 , - 4393 , - 672 , - 3667 , - 530 , - 1773 , - 3892 , - 3383 , - 1414 , - 3825 , - 2440 , - 3099 , - 2298 , - 1205 , - 988 , - 2815 , - 3182 , - 3257 , - 4208 , - 2531 , - 4066 , - 637 , - 2756 , - 2247 , - 278 , - 2689 , - 1304 , - 1963 , - 1162 , - 69 , - 4524 , - 1679 , - 2046 , - 2121 , - 3072 , - 1395 , - 2930 , - 4173 , - 1620 , - 1111 , - 3814 , - 1553 , - 168 , - 827 , - 26 , - 3605 , - 3388 , - 543 , - 910 , - 985 , - 1936 , - 259 , - 1794 , - 3037 , - 484 , - 4647 , - 2678 , - 417 , - 3704 , - 4363 , - 3562 , - 2469 , - 2252 , - 4079 , - 4446 , - 4521 , - 800 , - 3795 , - 658 , - 1901 , - 4020 , - 3511 , - 1542 , - 3953 , - 2568 , - 3227 , - 2426 , - 1333 , - 1116 , - 2943 , - 3310 , - 3385 , - 4336 , - 2659 , - 4194 , - 765 , - 2884 , - 2375 , - 406 , - 2817 , - 1432 , - 2091 , - 1290 , - 197 , - 4652 , - 1807 , - 2174 , - 2249 , - 3200 , - 1523 , - 3058 , - 4301 , - 1748 , - 1239 , - 3942 , - 1681 , - 296 , - 955 , - 154 , - 3733 , - 3516 , - 671 , - 1038 , - 1113 , - 2064 , - 387 , - 1922 , - 3165 , - 612 , - 103 , - 2806 , - 545 , - 3832 , - 4491 , - 3690 , - 2597 , - 2380 , - 4207 , - 4574 , - 4649 , - 928 , - 3923 , - 786 , - 2029 , - 4148 , - 3639 , - 1670 , - 4081 , - 2696 , - 3355 , - 2554 , - 1461 , - 1244 , - 3071 , - 3438 , - 3513 , - 4464 , - 2787 , - 4322 , - 893 , - 3012 , - 2503 , - 534 , - 2945 , - 1560 , - 2219 , - 1418 , - 325 , - 108 , - 1935 , - 2302 , - 2377 , - 3328 , - 1651 , - 3186 , - 4429 , - 1876 , - 1367 , - 4070 , - 1809 , - 424 , - 1083 , - 282 , - 3861 , - 3644 , - 799 , - 1166 , - 1241 , - 2192 , - 515 , - 2050 , - 3293 , - 740 , - 231 , - 2934 , - 673 , - 3960 , - 4619 , - 3818 , - 2725 , - 2508 , - 4335 , - 30 , - 105 , - 1056 , - 4051 , - 914 , - 2157 , - 4276 , - 3767 , - 1798 , - 4209 , - 2824 , - 3483 , - 2682 , - 1589 , - 1372 , - 3199 , - 3566 , - 3641 , - 4592 , - 2915 , - 4450 , - 1021 , - 3140 , - 2631 , - 662 , - 3073 , - 1688 , - 2347 , - 1546 , - 453 , - 236 , - 2063 , - 2430 , - 2505 , - 3456 , - 1779 , - 3314 , - 4557 , - 2004 , - 1495 , - 4198 , - 1937 , - 552 , - 1211 , - 410 , - 3989 , - 3772 , - 927 , - 1294 , - 1369 , - 2320 , - 643 , - 2178 , - 3421 , - 868 , - 359 , - 3062 , - 801 , - 4088 , - 75 , - 3946 , - 2853 , - 2636 , - 4463 , - 158 , - 233 , - 1184 , - 4179 , - 1042 , - 2285 , - 4404 , - 3895 , - 1926 , - 4337 , - 2952 , - 3611 , - 2810 , - 1717 , - 1500 , - 3327 , - 3694 , - 3769 , - 48 , - 3043 , - 4578 , - 1149 , - 3268 , - 2759 , - 790 , - 3201 , - 1816 , - 2475 , - 1674 , - 581 , - 364 , - 2191 , - 2558 , - 2633 , - 3584 , - 1907 , - 3442 , - 13 , - 2132 , - 1623 , - 4326 , - 2065 , - 680 , - 1339 , - 538 , - 4117 , - 3900 , - 1055 , - 1422 , - 1497 , - 2448 , - 771 , - 2306 , - 3549 , - 996 , - 487 , - 3190 , - 929 , - 4216 , - 203 , - 4074 , - 2981 , - 2764 , - 4591 , - 286 , - 361 , - 1312 , - 4307 , - 1170 , - 2413 , - 4532 , - 4023 , - 2054 , - 4465 , - 3080 , - 3739 , - 2938 , - 1845 , - 1628 , - 3455 , - 3822 , - 3897 , - 176 , - 3171 , - 34 , - 1277 , - 3396 , - 2887 , - 918 , - 3329 , - 1944 , - 2603 , - 1802 , - 709 , - 492 , - 2319 , - 2686 , - 2761 , - 3712 , - 2035 , - 3570 , - 141 , - 2260 , - 1751 , - 4454 , - 2193 , - 808 , - 1467 , - 666 , - 4245 , - 4028 , - 1183 , - 1550 , - 1625 , - 2576 , - 899 , - 2434 , - 3677 , - 1124 , - 615 , - 3318 , - 1057 , - 4344 , - 331 , - 4202 , - 3109 , - 2892 , - 47 , - 414 , - 489 , - 1440 , - 4435 , - 1298 , - 2541 , - 4660 , - 4151 , - 2182 , - 4593 , - 3208 , - 3867 , - 3066 , - 1973 , - 1756 , - 3583 , - 3950 , - 4025 , - 304 , - 3299 , - 162 , - 1405 , - 3524 , - 3015 , - 1046 , - 3457 , - 2072 , - 2731 , - 1930 , - 837 , - 620 , - 2447 , - 2814 , - 2889 , - 3840 , - 2163 , - 3698 , - 269 , - 2388 , - 1879 , - 4582 , - 2321 , - 936 , - 1595 , - 794 , - 4373 , - 4156 , - 1311 , - 1678 , - 1753 , - 2704 , - 1027 , - 2562 , - 3805 , - 1252 , - 743 , - 3446 , - 1185 , - 4472 , - 459 , - 4330 , - 3237 , - 3020 , - 175 , - 542 , - 617 , - 1568 , - 4563 , - 1426 , - 2669 , - 116 , - 4279 , - 2310 , - 49 , - 3336 , - 3995 , - 3194 , - 2101 , - 1884 , - 3711 , - 4078 , - 4153 , - 432 , - 3427 , - 290 , - 1533 , - 3652 , - 3143 , - 1174 , - 3585 , - 2200 , - 2859 , - 2058 , - 965 , - 748 , - 2575 , - 2942 , - 3017 , - 3968 , - 2291 , - 3826 , - 397 , - 2516 , - 2007 , - 38 , - 2449 , - 1064 , - 1723 , - 922 , - 4501 , - 4284 , - 1439 , - 1806 , - 1881 , - 2832 , - 1155 , - 2690 , - 3933 , - 1380 , - 871 , - 3574 , - 1313 , - 4600 , - 587 , - 4458 , - 3365 , - 3148 , - 303 , - 670 , - 745 , - 1696 , - 19 , - 1554 , - 2797 , - 244 , - 4407 , - 2438 , - 177 , - 3464 , - 4123 , - 3322 , - 2229 , - 2012 , - 3839 , - 4206 , - 4281 , - 560 , - 3555 , - 418 , - 1661 , - 3780 , - 3271 , - 1302 , - 3713 , - 2328 , - 2987 , - 2186 , - 1093 , - 876 , - 2703 , - 3070 , - 3145 , - 4096 , - 2419 , - 3954 , - 525 , - 2644 , - 2135 , - 166 , - 2577 , - 1192 , - 1851 , - 1050 , - 4629 , - 4412 , - 1567 , - 1934 , - 2009 , - 2960 , - 1283 , - 2818 , - 4061 , - 1508 , - 999 , - 3702 , - 1441 , - 56 , - 715 , - 4586 , - 3493 , - 3276 , - 431 , - 798 , - 873 , - 1824 , - 147 , - 1682 , - 2925 , - 372 , - 4535 , - 2566 , - 305 , - 3592 , - 4251 , - 3450 , - 2357 , - 2140 , - 3967 , - 4334 , - 4409 , - 688 , - 3683 , - 546 , - 1789 , - 3908 , - 3399 , - 1430 , - 3841 , - 2456 , - 3115 , - 2314 , - 1221 , - 1004 , - 2831 , - 3198 , - 3273 , - 4224 , - 2547 , - 4082 , - 653 , - 2772 , - 2263 , - 294 , - 2705 , - 1320 , - 1979 , - 1178 , - 85 , - 4540 , - 1695 , - 2062 , - 2137 , - 3088 , - 1411 , - 2946 , - 4189 , - 1636 , - 1127 , - 3830 , - 1569 , - 184 , - 843 , - 42 , - 3621 , - 3404 , - 559 , - 926 , - 1001 , - 1952 , - 275 , - 1810 , - 3053 , - 500 , - 4663 , - 2694 , - 433 , - 3720 , - 4379 , - 3578 , - 2485 , - 2268 , - 4095 , - 4462 , - 4537 , - 816 , - 3811 , - 674 , - 1917 , - 4036 , - 3527 , - 1558 , - 3969 , - 2584 , - 3243 , - 2442 , - 1349 , - 1132 , - 2959 , - 3326 , - 3401 , - 4352 , - 2675 , - 4210 , - 781 , - 2900 , - 2391 , - 422 , - 2833 , - 1448 , - 2107 , - 1306 , - 213 , - 4668 , - 1823 , - 2190 , - 2265 , - 3216 , - 1539 , - 3074 , - 4317 , - 1764 , - 1255 , - 3958 , - 1697 , - 312 , - 971 , - 170 , - 3749 , - 3532 , - 687 , - 1054 , - 1129 , - 2080 , - 403 , - 1938 , - 3181 , - 628 , - 119 , - 2822 , - 561 , - 3848 , - 4507 , - 3706 , - 2613 , - 2396 , - 4223 , - 4590 , - 4665 , - 944 , - 3939 , - 802 , - 2045 , - 4164 , - 3655 , - 1686 , - 4097 , - 2712 , - 3371 , - 2570 , - 1477 , - 1260 , - 3087 , - 3454 , - 3529 , - 4480 , - 2803 , - 4338 , - 909 , - 3028 , - 2519 , - 550 , - 2961 , - 1576 , - 2235 , - 1434 , - 341 , - 124 , - 1951 , - 2318 , - 2393 , - 3344 , - 1667 , - 3202 , - 4445 , - 1892 , - 1383 , - 4086 , - 1825 , - 440 , - 1099 , - 298 , - 3877 , - 3660 , - 815 , - 1182 , - 1257 , - 2208 , - 531 , - 2066 , - 3309 , - 756 , - 247 , - 2950 , - 689 , - 3976 , - 4635 , - 3834 , - 2741 , - 2524 , - 4351 , - 46 , - 121 , - 1072 , - 4067 , - 930 , - 2173 , - 4292 , - 3783 , - 1814 , - 4225 , - 2840 , - 3499 , - 2698 , - 1605 , - 1388 , - 3215 , - 3582 , - 3657 , - 4608 , - 2931 , - 4466 , - 1037 , - 3156 , - 2647 , - 678 , - 3089 , - 1704 , - 2363 , - 1562 , - 469 , - 252 , - 2079 , - 2446 , - 2521 , - 3472 , - 1795 , - 3330 , - 4573 , - 2020 , - 1511 , - 4214 , - 1953 , - 568 , - 1227 , - 426 , - 4005 , - 3788 , - 943 , - 1310 , - 1385 , - 2336 , - 659 , - 2194 , - 3437 , - 884 , - 375 , - 3078 , - 817 , - 4104 , - 91 , - 3962 , - 2869 , - 2652 , - 4479 , - 174 , - 249 , - 1200 , - 4195 , - 1058 , - 2301 , - 4420 , - 3911 , - 1942 , - 4353 , - 2968 , - 3627 , - 2826 , - 1733 , - 1516 , - 3343 , - 3710 , - 3785 , - 64 , - 3059 , - 4594 , - 1165 , - 3284 , - 2775 , - 806 , - 3217 , - 1832 , - 2491 , - 1690 , - 597 , - 380 , - 2207 , - 2574 , - 2649 , - 3600 , - 1923 , - 3458 , - 29 , - 2148 , - 1639 , - 4342 , - 2081 , - 696 , - 1355 , - 554 , - 4133 , - 3916 , - 1071 , - 1438 , - 1513 , - 2464 , - 787 , - 2322 , - 3565 , - 1012 , - 503 , - 3206 , - 945 , - 4232 , - 219 , - 4090 , - 2997 , - 2780 , - 4607 , - 302 , - 377 , - 1328 , - 4323 , - 1186 , - 2429 , - 4548 , - 4039 , - 2070 , - 4481 , - 3096 , - 3755 , - 2954 , - 1861 , - 1644 , - 3471 , - 3838 , - 3913 , - 192 , - 3187 , - 50 , - 1293 , - 3412 , - 2903 , - 934 , - 3345 , - 1960 , - 2619 , - 1818 , - 725 , - 508 , - 2335 , - 2702 , - 2777 , - 3728 , - 2051 , - 3586 , - 157 , - 2276 , - 1767 , - 4470 , - 2209 , - 824 , - 1483 , - 682 , - 4261 , - 4044 , - 1199 , - 1566 , - 1641 , - 2592 , - 915 , - 2450 , - 3693 , - 1140 , - 631 , - 3334 , - 1073 , - 4360 , - 347 , - 4218 , - 3125 , - 2908 , - 63 , - 430 , - 505 , - 1456 , - 4451 , - 1314 , - 2557 , - 4 , - 4167 , - 2198 , - 4609 , - 3224 , - 3883 , - 3082 , - 1989 , - 1772 , - 3599 , - 3966 , - 4041 , - 320 , - 3315 , - 178 , - 1421 , - 3540 , - 3031 , - 1062 , - 3473 , - 2088 , - 2747 , - 1946 , - 853 , - 636 , - 2463 , - 2830 , - 2905 , - 3856 , - 2179 , - 3714 , - 285 , - 2404 , - 1895 , - 4598 , - 2337 , - 952 , - 1611 , - 810 , - 4389 , - 4172 , - 1327 , - 1694 , - 1769 , - 2720 , - 1043 , - 2578 , - 3821 , - 1268 , - 759 , - 3462 , - 1201 , - 4488 , - 475 , - 4346 , - 3253 , - 3036 , - 191 , - 558 , - 633 , - 1584 , - 4579 , - 1442 , - 2685 , - 132 , - 4295 , - 2326 , - 65 , - 3352 , - 4011 , - 3210 , - 2117 , - 1900 , - 3727 , - 4094 , - 4169 , - 448 , - 3443 , - 306 , - 1549 , - 3668 , - 3159 , - 1190 , - 3601 , - 2216 , - 2875 , - 2074 , - 981 , - 764 , - 2591 , - 2958 , - 3033 , - 3984 , - 2307 , - 3842 , - 413 , - 2532 , - 2023 , - 54 , - 2465 , - 1080 , - 1739 , - 938 , - 4517 , - 4300 , - 1455 , - 1822 , - 1897 , - 2848 , - 1171 , - 2706 , - 3949 , - 1396 , - 887 , - 3590 , - 1329 , - 4616 , - 603 , - 4474 , - 3381 , - 3164 , - 319 , - 686 , - 761 , - 1712 , - 35 , - 1570 , - 2813 , - 260 , - 4423 , - 2454 , - 193 , - 3480 , - 4139 , - 3338 , - 2245 , - 2028 , - 3855 , - 4222 , - 4297 , - 576 , - 3571 , - 434 , - 1677 , - 3796 , - 3287 , - 1318 , - 3729 , - 2344 , - 3003 , - 2202 , - 1109 , - 892 , - 2719 , - 3086 , - 3161 , - 4112 , - 2435 , - 3970 , - 541 , - 2660 , - 2151 , - 182 , - 2593 , - 1208 , - 1867 , - 1066 , - 4645 , - 4428 , - 1583 , - 1950 , - 2025 , - 2976 , - 1299 , - 2834 , - 4077 , - 1524 , - 1015 , - 3718 , - 1457 , - 72 , - 731 , - 4602 , - 3509 , - 3292 , - 447 , - 814 , - 889 , - 1840 , - 163 , - 1698 , - 2941 , - 388 , - 4551 , - 2582 , - 321 , - 3608 , - 4267 , - 3466 , - 2373 , - 2156 , - 3983 , - 4350 , - 4425 , - 704 , - 3699 , - 562 , - 1805 , - 3924 , - 3415 , - 1446 , - 3857 , - 2472 , - 3131 , - 2330 , - 1237 , - 1020 , - 2847 , - 3214 , - 3289 , - 4240 , - 2563 , - 4098 , - 669 , - 2788 , - 2279 , - 310 , - 2721 , - 1336 , - 1995 , - 1194 , - 101 , - 4556 , - 1711 , - 2078 , - 2153 , - 3104 , - 1427 , - 2962 , - 4205 , - 1652 , - 1143 , - 3846 , - 1585 , - 200 , - 859 , - 58 , - 3637 , - 3420 , - 575 , - 942 , - 1017 , - 1968 , - 291 , - 1826 , - 3069 , - 516 , - 7 , - 2710 , - 449 , - 3736 , - 4395 , - 3594 , - 2501 , - 2284 , - 4111 , - 4478 , - 4553 , - 832 , - 3827 , - 690 , - 1933 , - 4052 , - 3543 , - 1574 , - 3985 , - 2600 , - 3259 , - 2458 , - 1365 , - 1148 , - 2975 , - 3342 , - 3417 , - 4368 , - 2691 , - 4226 , - 797 , - 2916 , - 2407 , - 438 , - 2849 , - 1464 , - 2123 , - 1322 , - 229 , - 12 , - 1839 , - 2206 , - 2281 , - 3232 , - 1555 , - 3090 , - 4333 , - 1780 , - 1271 , - 3974 , - 1713 , - 328 , - 987 , - 186 , - 3765 , - 3548 , - 703 , - 1070 , - 1145 , - 2096 , - 419 , - 1954 , - 3197 , - 644 , - 135 , - 2838 , - 577 , - 3864 , - 4523 , - 3722 , - 2629 , - 2412 , - 4239 , - 4606 , - 9 , - 960 , - 3955 , - 818 , - 2061 , - 4180 , - 3671 , - 1702 , - 4113 , - 2728 , - 3387 , - 2586 , - 1493 , - 1276 , - 3103 , - 3470 , - 3545 , - 4496 , - 2819 , - 4354 , - 925 , - 3044 , - 2535 , - 566 , - 2977 , - 1592 , - 2251 , - 1450 , - 357 , - 140 , - 1967 , - 2334 , - 2409 , - 3360 , - 1683 , - 3218 , - 4461 , - 1908 , - 1399 , - 4102 , - 1841 , - 456 , - 1115 , - 314 , - 3893 , - 3676 , - 831 , - 1198 , - 1273 , - 2224 , - 547 , - 2082 , - 3325 , - 772 , - 263 , - 2966 , - 705 , - 3992 , - 4651 , - 3850 , - 2757 , - 2540 , - 4367 , - 62 , - 137 , - 1088 , - 4083 , - 946 , - 2189 , - 4308 , - 3799 , - 1830 , - 4241 , - 2856 , - 3515 , - 2714 , - 1621 , - 1404 , - 3231 , - 3598 , - 3673 , - 4624 , - 2947 , - 4482 , - 1053 , - 3172 , - 2663 , - 694 , - 3105 , - 1720 , - 2379 , - 1578 , - 485 , - 268 , - 2095 , - 2462 , - 2537 , - 3488 , - 1811 , - 3346 , - 4589 , - 2036 , - 1527 , - 4230 , - 1969 , - 584 , - 1243 , - 442 , - 4021 , - 3804 , - 959 , - 1326 , - 1401 , - 2352 , - 675 , - 2210 , - 3453 , - 900 , - 391 , - 3094 , - 833 , - 4120 , - 107 , - 3978 , - 2885 , - 2668 , - 4495 , - 190 , - 265 , - 1216 , - 4211 , - 1074 , - 2317 , - 4436 , - 3927 , - 1958 , - 4369 , - 2984 , - 3643 , - 2842 , - 1749 , - 1532 , - 3359 , - 3726 , - 3801 , - 80 , - 3075 , - 4610 , - 1181 , - 3300 , - 2791 , - 822 , - 3233 , - 1848 , - 2507 , - 1706 , - 613 , - 396 , - 2223 , - 2590 , - 2665 , - 3616 , - 1939 , - 3474 , - 45 , - 2164 , - 1655 , - 4358 , - 2097 , - 712 , - 1371 , - 570 , - 4149 , - 3932 , - 1087 , - 1454 , - 1529 , - 2480 , - 803 , - 2338 , - 3581 , - 1028 , - 519 , - 3222 , - 961 , - 4248 , - 235 , - 4106 , - 3013 , - 2796 , - 4623 , - 318 , - 393 , - 1344 , - 4339 , - 1202 , - 2445 , - 4564 , - 4055 , - 2086 , - 4497 , - 3112 , - 3771 , - 2970 , - 1877 , - 1660 , - 3487 , - 3854 , - 3929 , - 208 , - 3203 , - 66 , - 1309 , - 3428 , - 2919 , - 950 , - 3361 , - 1976 , - 2635 , - 1834 , - 741 , - 524 , - 2351 , - 2718 , - 2793 , - 3744 , - 2067 , - 3602 , - 173 , - 2292 , - 1783 , - 4486 , - 2225 , - 840 , - 1499 , - 698 , - 4277 , - 4060 , - 1215 , - 1582 , - 1657 , - 2608 , - 931 , - 2466 , - 3709 , - 1156 , - 647 , - 3350 , - 1089 , - 4376 , - 363 , - 4234 , - 3141 , - 2924 , - 79 , - 446 , - 521 , - 1472 , - 4467 , - 1330 , - 2573 , - 20 , - 4183 , - 2214 , - 4625 , - 3240 , - 3899 , - 3098 , - 2005 , - 1788 , - 3615 , - 3982 , - 4057 , - 336 , - 3331 , - 194 , - 1437 , - 3556 , - 3047 , - 1078 , - 3489 , - 2104 , - 2763 , - 1962 , - 869 , - 652 , - 2479 , - 2846 , - 2921 , - 3872 , - 2195 , - 3730 , - 301 , - 2420 , - 1911 , - 4614 , - 2353 , - 968 , - 1627 , - 826 , - 4405 , - 4188 , - 1343 , - 1710 , - 1785 , - 2736 , - 1059 , - 2594 , - 3837 , - 1284 , - 775 , - 3478 , - 1217 , - 4504 , - 491 , - 4362 , - 3269 , - 3052 , - 207 , - 574 , - 649 , - 1600 , - 4595 , - 1458 , - 2701 , - 148 , - 4311 , - 2342 , - 81 , - 3368 , - 4027 , - 3226 , - 2133 , - 1916 , - 3743 , - 4110 , - 4185 , - 464 , - 3459 , - 322 , - 1565 , - 3684 , - 3175 , - 1206 , - 3617 , - 2232 , - 2891 , - 2090 , - 997 , - 780 , - 2607 , - 2974 , - 3049 , - 4000 , - 2323 , - 3858 , - 429 , - 2548 , - 2039 , - 70 , - 2481 , - 1096 , - 1755 , - 954 , - 4533 , - 4316 , - 1471 , - 1838 , - 1913 , - 2864 , - 1187 , - 2722 , - 3965 , - 1412 , - 903 , - 3606 , - 1345 , - 4632 , - 619 , - 4490 , - 3397 , - 3180 , - 335 , - 702 , - 777 , - 1728 , - 51 , - 1586 , - 2829 , - 276 , - 4439 , - 2470 , - 209 , - 3496 , - 4155 , - 3354 , - 2261 , - 2044 , - 3871 , - 4238 , - 4313 , - 592 , - 3587 , - 450 , - 1693 , - 3812 , - 3303 , - 1334 , - 3745 , - 2360 , - 3019 , - 2218 , - 1125 , - 908 , - 2735 , - 3102 , - 3177 , - 4128 , - 2451 , - 3986 , - 557 , - 2676 , - 2167 , - 198 , - 2609 , - 1224 , - 1883 , - 1082 , - 4661 , - 4444 , - 1599 , - 1966 , - 2041 , - 2992 , - 1315 , - 2850 , - 4093 , - 1540 , - 1031 , - 3734 , - 1473 , - 88 , - 747 , - 4618 , - 3525 , - 3308 , - 463 , - 830 , - 905 , - 1856 , - 179 , - 1714 , - 2957 , - 404 , - 4567 , - 2598 , - 337 , - 3624 , - 4283 , - 3482 , - 2389 , - 2172 , - 3999 , - 4366 , - 4441 , - 720 , - 3715 , - 578 , - 1821 , - 3940 , - 3431 , - 1462 , - 3873 , - 2488 , - 3147 , - 2346 , - 1253 , - 1036 , - 2863 , - 3230 , - 3305 , - 4256 , - 2579 , - 4114 , - 685 , - 2804 , - 2295 , - 326 , - 2737 , - 1352 , - 2011 , - 1210 , - 117 , - 4572 , - 1727 , - 2094 , - 2169 , - 3120 , - 1443 , - 2978 , - 4221 , - 1668 , - 1159 , - 3862 , - 1601 , - 216 , - 875 , - 74 , - 3653 , - 3436 , - 591 , - 958 , - 1033 , - 1984 , - 307 , - 1842 , - 3085 , - 532 , - 23 , - 2726 , - 465 , - 3752 , - 4411 , - 3610 , - 2517 , - 2300 , - 4127 , - 4494 , - 4569 , - 848 , - 3843 , - 706 , - 1949 , - 4068 , - 3559 , - 1590 , - 4001 , - 2616 , - 3275 , - 2474 , - 1381 , - 1164 , - 2991 , - 3358 , - 3433 , - 4384 , - 2707 , - 4242 , - 813 , - 2932 , - 2423 , - 454 , - 2865 , - 1480 , - 2139 , - 1338 , - 245 , - 28 , - 1855 , - 2222 , - 2297 , - 3248 , - 1571 , - 3106 , - 4349 , - 1796 , - 1287 , - 3990 , - 1729 , - 344 , - 1003 , - 202 , - 3781 , - 3564 , - 719 , - 1086 , - 1161 , - 2112 , - 435 , - 1970 , - 3213 , - 660 , - 151 , - 2854 , - 593 , - 3880 , - 4539 , - 3738 , - 2645 , - 2428 , - 4255 , - 4622 , - 25 , - 976 , - 3971 , - 834 , - 2077 , - 4196 , - 3687 , - 1718 , - 4129 , - 2744 , - 3403 , - 2602 , - 1509 , - 1292 , - 3119 , - 3486 , - 3561 , - 4512 , - 2835 , - 4370 , - 941 , - 3060 , - 2551 , - 582 , - 2993 , - 1608 , - 2267 , - 1466 , - 373 , - 156 , - 1983 , - 2350 , - 2425 , - 3376 , - 1699 , - 3234 , - 4477 , - 1924 , - 1415 , - 4118 , - 1857 , - 472 , - 1131 , - 330 , - 3909 , - 3692 , - 847 , - 1214 , - 1289 , - 2240 , - 563 , - 2098 , - 3341 , - 788 , - 279 , - 2982 , - 721 , - 4008 , - 4667 , - 3866 , - 2773 , - 2556 , - 4383 , - 78 , - 153 , - 1104 , - 4099 , - 962 , - 2205 , - 4324 , - 3815 , - 1846 , - 4257 , - 2872 , - 3531 , - 2730 , - 1637 , - 1420 , - 3247 , - 3614 , - 3689 , - 4640 , - 2963 , - 4498 , - 1069 , - 3188 , - 2679 , - 710 , - 3121 , - 1736 , - 2395 , - 1594 , - 501 , - 284 , - 2111 , - 2478 , - 2553 , - 3504 , - 1827 , - 3362 , - 4605 , - 2052 , - 1543 , - 4246 , - 1985 , - 600 , - 1259 , - 458 , - 4037 , - 3820 , - 975 , - 1342 , - 1417 , - 2368 , - 691 , - 2226 , - 3469 , - 916 , - 407 , - 3110 , - 849 , - 4136 , - 123 , - 3994 , - 2901 , - 2684 , - 4511 , - 206 , - 281 , - 1232 , - 4227 , - 1090 , - 2333 , - 4452 , - 3943 , - 1974 , - 4385 , - 3000 , - 3659 , - 2858 , - 1765 , - 1548 , - 3375 , - 3742 , - 3817 , - 96 , - 3091 , - 4626 , - 1197 , - 3316 , - 2807 , - 838 , - 3249 , - 1864 , - 2523 , - 1722 , - 629 , - 412 , - 2239 , - 2606 , - 2681 , - 3632 , - 1955 , - 3490 , - 61 , - 2180 , - 1671 , - 4374 , - 2113 , - 728 , - 1387 , - 586 , - 4165 , - 3948 , - 1103 , - 1470 , - 1545 , - 2496 , - 819 , - 2354 , - 3597 , - 1044 , - 535 , - 3238 , - 977 , - 4264 , - 251 , - 4122 , - 3029 , - 2812 , - 4639 , - 334 , - 409 , - 1360 , - 4355 , - 1218 , - 2461 , - 4580 , - 4071 , - 2102 , - 4513 , - 3128 , - 3787 , - 2986 , - 1893 , - 1676 , - 3503 , - 3870 , - 3945 , - 224 , - 3219 , - 82 , - 1325 , - 3444 , - 2935 , - 966 , - 3377 , - 1992 , - 2651 , - 1850 , - 757 , - 540 , - 2367 , - 2734 , - 2809 , - 3760 , - 2083 , - 3618 , - 189 , - 2308 , - 1799 , - 4502 , - 2241 , - 856 , - 1515 , - 714 , - 4293 , - 4076 , - 1231 , - 1598 , - 1673 , - 2624 , - 947 , - 2482 , - 3725 , - 1172 , - 663 , - 3366 , - 1105 , - 4392 , - 379 , - 4250 , - 3157 , - 2940 , - 95 , - 462 , - 537 , - 1488 , - 4483 , - 1346 , - 2589 , - 36 , - 4199 , - 2230 , - 4641 , - 3256 , - 3915 , - 3114 , - 2021 , - 1804 , - 3631 , - 3998 , - 4073 , - 352 , - 3347 , - 210 , - 1453 , - 3572 , - 3063 , - 1094 , - 3505 , - 2120 , - 2779 , - 1978 , - 885 , - 668 , - 2495 , - 2862 , - 2937 , - 3888 , - 2211 , - 3746 , - 317 , - 2436 , - 1927 , - 4630 , - 2369 , - 984 , - 1643 , - 842 , - 4421 , - 4204 , - 1359 , - 1726 , - 1801 , - 2752 , - 1075 , - 2610 , - 3853 , - 1300 , - 791 , - 3494 , - 1233 , - 4520 , - 507 , - 4378 , - 3285 , - 3068 , - 223 , - 590 , - 665 , - 1616 , - 4611 , - 1474 , - 2717 , - 164 , - 4327 , - 2358 , - 97 , - 3384 , - 4043 , - 3242 , - 2149 , - 1932 , - 3759 , - 4126 , - 4201 , - 480 , - 3475 , - 338 , - 1581 , - 3700 , - 3191 , - 1222 , - 3633 , - 2248 , - 2907 , - 2106 , - 1013 , - 796 , - 2623 , - 2990 , - 3065 , - 4016 , - 2339 , - 3874 , - 445 , - 2564 , - 2055 , - 86 , - 2497 , - 1112 , - 1771 , - 970 , - 4549 , - 4332 , - 1487 , - 1854 , - 1929 , - 2880 , - 1203 , - 2738 , - 3981 , - 1428 , - 919 , - 3622 , - 1361 , - 4648 , - 635 , - 4506 , - 3413 , - 3196 , - 351 , - 718 , - 793 , - 1744 , - 67 , - 1602 , - 2845 , - 292 , - 4455 , - 2486 , - 225 , - 3512 , - 4171 , - 3370 , - 2277 , - 2060 , - 3887 , - 4254 , - 4329 , - 608 , - 3603 , - 466 , - 1709 , - 3828 , - 3319 , - 1350 , - 3761 , - 2376 , - 3035 , - 2234 , - 1141 , - 924 , - 2751 , - 3118 , - 3193 , - 4144 , - 2467 , - 4002 , - 573 , - 2692 , - 2183 , - 214 , - 2625 , - 1240 , - 1899 , - 1098 , - 5 , - 4460 , - 1615 , - 1982 , - 2057 , - 3008 , - 1331 , - 2866 , - 4109 , - 1556 , - 1047 , - 3750 , - 1489 , - 104 , - 763 , - 4634 , - 3541 , - 3324 , - 479 , - 846 , - 921 , - 1872 , - 195 , - 1730 , - 2973 , - 420 , - 4583 , - 2614 , - 353 , - 3640 , - 4299 , - 3498 , - 2405 , - 2188 , - 4015 , - 4382 , - 4457 , - 736 , - 3731 , - 594 , - 1837 , - 3956 , - 3447 , - 1478 , - 3889 , - 2504 , - 3163 , - 2362 , - 1269 , - 1052 , - 2879 , - 3246 , - 3321 , - 4272 , - 2595 , - 4130 , - 701 , - 2820 , - 2311 , - 342 , - 2753 , - 1368 , - 2027 , - 1226 , - 133 , - 4588 , - 1743 , - 2110 , - 2185 , - 3136 , - 1459 , - 2994 , - 4237 , - 1684 , - 1175 , - 3878 , - 1617 , - 232 , - 891 , - 90 , - 3669 , - 3452 , - 607 , - 974 , - 1049 , - 2000 , - 323 , - 1858 , - 3101 , - 548 , - 39 , - 2742 , - 481 , - 3768 , - 4427 , - 3626 , - 2533 , - 2316 , - 4143 , - 4510 , - 4585 , - 864 , - 3859 , - 722 , - 1965 , - 4084 , - 3575 , - 1606 , - 4017 , - 2632 , - 3291 , - 2490 , - 1397 , - 1180 , - 3007 , - 3374 , - 3449 , - 4400 , - 2723 , - 4258 , - 829 , - 2948 , - 2439 , - 470 , - 2881 , - 1496 , - 2155 , - 1354 , - 261 , - 44 , - 1871 , - 2238 , - 2313 , - 3264 , - 1587 , - 3122 , - 4365 , - 1812 , - 1303 , - 4006 , - 1745 , - 360 , - 1019 , - 218 , - 3797 , - 3580 , - 735 , - 1102 , - 1177 , - 2128 , - 451 , - 1986 , - 3229 , - 676 , - 167 , - 2870 , - 609 , - 3896 , - 4555 , - 3754 , - 2661 , - 2444 , - 4271 , - 4638 , - 41 , - 992 , - 3987 , - 850 , - 2093 , - 4212 , - 3703 , - 1734 , - 4145 , - 2760 , - 3419 , - 2618 , - 1525 , - 1308 , - 3135 , - 3502 , - 3577 , - 4528 , - 2851 , - 4386 , - 957 , - 3076 , - 2567 , - 598 , - 3009 , - 1624 , - 2283 , - 1482 , - 389 , - 172 , - 1999 , - 2366 , - 2441 , - 3392 , - 1715 , - 3250 , - 4493 , - 1940 , - 1431 , - 4134 , - 1873 , - 488 , - 1147 , - 346 , - 3925 , - 3708 , - 863 , - 1230 , - 1305 , - 2256 , - 579 , - 2114 , - 3357 , - 804 , - 295 , - 2998 , - 737 , - 4024 , - 11 , - 3882 , - 2789 , - 2572 , - 4399 , - 94 , - 169 , - 1120 , - 4115 , - 978 , - 2221 , - 4340 , - 3831 , - 1862 , - 4273 , - 2888 , - 3547 , - 2746 , - 1653 , - 1436 , - 3263 , - 3630 , - 3705 , - 4656 , - 2979 , - 4514 , - 1085 , - 3204 , - 2695 , - 726 , - 3137 , - 1752 , - 2411 , - 1610 , - 517 , - 300 , - 2127 , - 2494 , - 2569 , - 3520 , - 1843 , - 3378 , - 4621 , - 2068 , - 1559 , - 4262 , - 2001 , - 616 , - 1275 , - 474 , - 4053 , - 3836 , - 991 , - 1358 , - 1433 , - 2384 , - 707 , - 2242 , - 3485 , - 932 , - 423 , - 3126 , - 865 , - 4152 , - 139 , - 4010 , - 2917 , - 2700 , - 4527 , - 222 , - 297 , - 1248 , - 4243 , - 1106 , - 2349 , - 4468 , - 3959 , - 1990 , - 4401 , - 3016 , - 3675 , - 2874 , - 1781 , - 1564 , - 3391 , - 3758 , - 3833 , - 112 , - 3107 , - 4642 , - 1213 , - 3332 , - 2823 , - 854 , - 3265 , - 1880 , - 2539 , - 1738 , - 645 , - 428 , - 2255 , - 2622 , - 2697 , - 3648 , - 1971 , - 3506 , - 77 , - 2196 , - 1687 , - 4390 , - 2129 , - 744 , - 1403 , - 602 , - 4181 , - 3964 , - 1119 , - 1486 , - 1561 , - 2512 , - 835 , - 2370 , - 3613 , - 1060 , - 551 , - 3254 , - 993 , - 4280 , - 267 , - 4138 , - 3045 , - 2828 , - 4655 , - 350 , - 425 , - 1376 , - 4371 , - 1234 , - 2477 , - 4596 , - 4087 , - 2118 , - 4529 , - 3144 , - 3803 , - 3002 , - 1909 , - 1692 , - 3519 , - 3886 , - 3961 , - 240 , - 3235 , - 98 , - 1341 , - 3460 , - 2951 , - 982 , - 3393 , - 2008 , - 2667 , - 1866 , - 773 , - 556 , - 2383 , - 2750 , - 2825 , - 3776 , - 2099 , - 3634 , - 205 , - 2324 , - 1815 , - 4518 , - 2257 , - 872 , - 1531 , - 730 , - 4309 , - 4092 , - 1247 , - 1614 , - 1689 , - 2640 , - 963 , - 2498 , - 3741 , - 1188 , - 679 , - 3382 , - 1121 , - 4408 , - 395 , - 4266 , - 3173 , - 2956 , - 111 , - 478 , - 553 , - 1504 , - 4499 , - 1362 , - 2605 , - 52 , - 4215 , - 2246 , - 4657 , - 3272 , - 3931 , - 3130 , - 2037 , - 1820 , - 3647 , - 4014 , - 4089 , - 368 , - 3363 , - 226 , - 1469 , - 3588 , - 3079 , - 1110 , - 3521 , - 2136 , - 2795 , - 1994 , - 901 , - 684 , - 2511 , - 2878 , - 2953 , - 3904 , - 2227 , - 3762 , - 333 , - 2452 , - 1943 , - 4646 , - 2385 , - 1000 , - 1659 , - 858 , - 4437 , - 4220 , - 1375 , - 1742 , - 1817 , - 2768 , - 1091 , - 2626 , - 3869 , - 1316 , - 807 , - 3510 , - 1249 , - 4536 , - 523 , - 4394 , - 3301 , - 3084 , - 239 , - 606 , - 681 , - 1632 , - 4627 , - 1490 , - 2733 , - 180 , - 4343 , - 2374 , - 113 , - 3400 , - 4059 , - 3258 , - 2165 , - 1948 , - 3775 , - 4142 , - 4217 , - 496 , - 3491 , - 354 , - 1597 , - 3716 , - 3207 , - 1238 , - 3649 , - 2264 , - 2923 , - 2122 , - 1029 , - 812 , - 2639 , - 3006 , - 3081 , - 4032 , - 2355 , - 3890 , - 461 , - 2580 , - 2071 , - 102 , - 2513 , - 1128 , - 1787 , - 986 , - 4565 , - 4348 , - 1503 , - 1870 , - 1945 , - 2896 , - 1219 , - 2754 , - 3997 , - 1444 , - 935 , - 3638 , - 1377 , - 4664 , - 651 , - 4522 , - 3429 , - 3212 , - 367 , - 734 , - 809 , - 1760 , - 83 , - 1618 , - 2861 , - 308 , - 4471 , - 2502 , - 241 , - 3528 , - 4187 , - 3386 , - 2293 , - 2076 , - 3903 , - 4270 , - 4345 , - 624 , - 3619 , - 482 , - 1725 , - 3844 , - 3335 , - 1366 , - 3777 , - 2392 , - 3051 , - 2250 , - 1157 , - 940 , - 2767 , - 3134 , - 3209 , - 4160 , - 2483 , - 4018 , - 589 , - 2708 , - 2199 , - 230 , - 2641 , - 1256 , - 1915 , - 1114 , - 21 , - 4476 , - 1631 , - 1998 , - 2073 , - 3024 , - 1347 , - 2882 , - 4125 , - 1572 , - 1063 , - 3766 , - 1505 , - 120 , - 779 , - 4650 , - 3557 , - 3340 , - 495 , - 862 , - 937 , - 1888 , - 211 , - 1746 , - 2989 , - 436 , - 4599 , - 2630 , - 369 , - 3656 , - 4315 , - 3514 , - 2421 , - 2204 , - 4031 , - 4398 , - 4473 , - 752 , - 3747 , - 610 , - 1853 , - 3972 , - 3463 , - 1494 , - 3905 , - 2520 , - 3179 , - 2378 , - 1285 , - 1068 , - 2895 , - 3262 , - 3337 , - 4288 , - 2611 , - 4146 , - 717 , - 2836 , - 2327 , - 358 , - 2769 , - 1384 , - 2043 , - 1242 , - 149 , - 4604 , - 1759 , - 2126 , - 2201 , - 3152 , - 1475 , - 3010 , - 4253 , - 1700 , - 1191 , - 3894 , - 1633 , - 248 , - 907 , - 106 , - 3685 , - 3468 , - 623 , - 990 , - 1065 , - 2016 , - 339 , - 1874 , - 3117 , - 564 , - 55 , - 2758 , - 497 , - 3784 , - 4443 , - 3642 , - 2549 , - 2332 , - 4159 , - 4526 , - 4601 , - 880 , - 3875 , - 738 , - 1981 , - 4100 , - 3591 , - 1622 , - 4033 , - 2648 , - 3307 , - 2506 , - 1413 , - 1196 , - 3023 , - 3390 , - 3465 , - 4416 , - 2739 , - 4274 , - 845 , - 2964 , - 2455 , - 486 , - 2897 , - 1512 , - 2171 , - 1370 , - 277 , - 60 , - 1887 , - 2254 , - 2329 , - 3280 , - 1603 , - 3138 , - 4381 , - 1828 , - 1319 , - 4022 , - 1761 , - 376 , - 1035 , - 234 , - 3813 , - 3596 , - 751 , - 1118 , - 1193 , - 2144 , - 467 , - 2002 , - 3245 , - 692 , - 183 , - 2886 , - 625 , - 3912 , - 4571 , - 3770 , - 2677 , - 2460 , - 4287 , - 4654 , - 57 , - 1008 , - 4003 , - 866 , - 2109 , - 4228 , - 3719 , - 1750 , - 4161 , - 2776 , - 3435 , - 2634 , - 1541 , - 1324 , - 3151 , - 3518 , - 3593 , - 4544 , - 2867 , - 4402 , - 973 , - 3092 , - 2583 , - 614 , - 3025 , - 1640 , - 2299 , - 1498 , - 405 , - 188 , - 2015 , - 2382 , - 2457 , - 3408 , - 1731 , - 3266 , - 4509 , - 1956 , - 1447 , - 4150 , - 1889 , - 504 , - 1163 , - 362 , - 3941 , - 3724 , - 879 , - 1246 , - 1321 , - 2272 , - 595 , - 2130 , - 3373 , - 820 , - 311 , - 3014 , - 753 , - 4040 , - 27 , - 3898 , - 2805 , - 2588 , - 4415 , - 110 , - 185 , - 1136 , - 4131 , - 994 , - 2237 , - 4356 , - 3847 , - 1878 , - 4289 , - 2904 , - 3563 , - 2762 , - 1669 , - 1452 , - 3279 , - 3646 , - 3721 , - 0 , - 1011 , - 2910 , - 3329 , - 4636 , - 4463 , - 442 , - 4413 , - 4536 , - 3179 , - 2710 , - 761 , - 4436 , - 1895 , - 242 , - 1845 , - 4336 , - 611 , - 2510 , - 2929 , - 4236 , - 4063 , - 42 , - 4013 , - 4136 , - 2779 , - 2310 , - 361 , - 4036 , - 1495 , - 4578 , - 1445 , - 3936 , - 211 , - 2110 , - 2529 , - 3836 , - 3663 , - 4378 , - 3613 , - 3736 , - 2379 , - 1910 , - 4697 , - 3636 , - 1095 , - 4178 , - 1045 , - 3536 , - 4547 , - 1710 , - 2129 , - 3436 , - 3263 , - 3978 , - 3213 , - 3336 , - 1979 , - 1510 , - 4297 , - 3236 , - 695 , - 3778 , - 645 , - 3136 , - 4147 , - 1310 , - 1729 , - 3036 , - 2863 , - 3578 , - 2813 , - 2936 , - 1579 , - 1110 , - 3897 , - 2836 , - 295 , - 3378 , - 245 , - 2736 , - 3747 , - 910 , - 1329 , - 2636 , - 2463 , - 3178 , - 2413 , - 2536 , - 1179 , - 710 , - 3497 , - 2436 , - 4631 , - 2978 , - 4581 , - 2336 , - 3347 , - 510 , - 929 , - 2236 , - 2063 , - 2778 , - 2013 , - 2136 , - 779 , - 310 , - 3097 , - 2036 , - 4231 , - 2578 , - 4181 , - 1936 , - 2947 , - 110 , - 529 , - 1836 , - 1663 , - 2378 , - 1613 , - 1736 , - 379 , - 4646 , - 2697 , - 1636 , - 3831 , - 2178 , - 3781 , - 1536 , - 2547 , - 4446 , - 129 , - 1436 , - 1263 , - 1978 , - 1213 , - 1336 , - 4715 , - 4246 , - 2297 , - 1236 , - 3431 , - 1778 , - 3381 , - 1136 , - 2147 , - 4046 , - 4465 , - 1036 , - 863 , - 1578 , - 813 , - 936 , - 4315 , - 3846 , - 1897 , - 836 , - 3031 , - 1378 , - 2981 , - 736 , - 1747 , - 3646 , - 4065 , - 636 , - 463 , - 1178 , - 413 , - 536 , - 3915 , - 3446 , - 1497 , - 436 , - 2631 , - 978 , - 2581 , - 336 , - 1347 , - 3246 , - 3665 , - 236 , - 63 , - 778 , - 13 , - 136 , - 3515 , - 3046 , - 1097 , - 36 , - 2231 , - 578 , - 2181 , - 4672 , - 947 , - 2846 , - 3265 , - 4572 , - 4399 , - 378 , - 4349 , - 4472 , - 3115 , - 2646 , - 697 , - 4372 , - 1831 , - 178 , - 1781 , - 4272 , - 547 , - 2446 , - 2865 , - 4172 , - 3999 , - 4714 , - 3949 , - 4072 , - 2715 , - 2246 , - 297 , - 3972 , - 1431 , - 4514 , - 1381 , - 3872 , - 147 , - 2046 , - 2465 , - 3772 , - 3599 , - 4314 , - 3549 , - 3672 , - 2315 , - 1846 , - 4633 , - 3572 , - 1031 , - 4114 , - 981 , - 3472 , - 4483 , - 1646 , - 2065 , - 3372 , - 3199 , - 3914 , - 3149 , - 3272 , - 1915 , - 1446 , - 4233 , - 3172 , - 631 , - 3714 , - 581 , - 3072 , - 4083 , - 1246 , - 1665 , - 2972 , - 2799 , - 3514 , - 2749 , - 2872 , - 1515 , - 1046 , - 3833 , - 2772 , - 231 , - 3314 , - 181 , - 2672 , - 3683 , - 846 , - 1265 , - 2572 , - 2399 , - 3114 , - 2349 , - 2472 , - 1115 , - 646 , - 3433 , - 2372 , - 4567 , - 2914 , - 4517 , - 2272 , - 3283 , - 446 , - 865 , - 2172 , - 1999 , - 2714 , - 1949 , - 2072 , - 715 , - 246 , - 3033 , - 1972 , - 4167 , - 2514 , - 4117 , - 1872 , - 2883 , - 46 , - 465 , - 1772 , - 1599 , - 2314 , - 1549 , - 1672 , - 315 , - 4582 , - 2633 , - 1572 , - 3767 , - 2114 , - 3717 , - 1472 , - 2483 , - 4382 , - 65 , - 1372 , - 1199 , - 1914 , - 1149 , - 1272 , - 4651 , - 4182 , - 2233 , - 1172 , - 3367 , - 1714 , - 3317 , - 1072 , - 2083 , - 3982 , - 4401 , - 972 , - 799 , - 1514 , - 749 , - 872 , - 4251 , - 3782 , - 1833 , - 772 , - 2967 , - 1314 , - 2917 , - 672 , - 1683 , - 3582 , - 4001 , - 572 , - 399 , - 1114 , - 349 , - 472 , - 3851 , - 3382 , - 1433 , - 372 , - 2567 , - 914 , - 2517 , - 272 , - 1283 , - 3182 , - 3601 , - 172 , - 4735 , - 714 , - 4685 , - 72 , - 3451 , - 2982 , - 1033 , - 4708 , - 2167 , - 514 , - 2117 , - 4608 , - 883 , - 2782 , - 3201 , - 4508 , - 4335 , - 314 , - 4285 , - 4408 , - 3051 , - 2582 , - 633 , - 4308 , - 1767 , - 114 , - 1717 , - 4208 , - 483 , - 2382 , - 2801 , - 4108 , - 3935 , - 4650 , - 3885 , - 4008 , - 2651 , - 2182 , - 233 , - 3908 , - 1367 , - 4450 , - 1317 , - 3808 , - 83 , - 1982 , - 2401 , - 3708 , - 3535 , - 4250 , - 3485 , - 3608 , - 2251 , - 1782 , - 4569 , - 3508 , - 967 , - 4050 , - 917 , - 3408 , - 4419 , - 1582 , - 2001 , - 3308 , - 3135 , - 3850 , - 3085 , - 3208 , - 1851 , - 1382 , - 4169 , - 3108 , - 567 , - 3650 , - 517 , - 3008 , - 4019 , - 1182 , - 1601 , - 2908 , - 2735 , - 3450 , - 2685 , - 2808 , - 1451 , - 982 , - 3769 , - 2708 , - 167 , - 3250 , - 117 , - 2608 , - 3619 , - 782 , - 1201 , - 2508 , - 2335 , - 3050 , - 2285 , - 2408 , - 1051 , - 582 , - 3369 , - 2308 , - 4503 , - 2850 , - 4453 , - 2208 , - 3219 , - 382 , - 801 , - 2108 , - 1935 , - 2650 , - 1885 , - 2008 , - 651 , - 182 , - 2969 , - 1908 , - 4103 , - 2450 , - 4053 , - 1808 , - 2819 , - 4718 , - 401 , - 1708 , - 1535 , - 2250 , - 1485 , - 1608 , - 251 , - 4518 , - 2569 , - 1508 , - 3703 , - 2050 , - 3653 , - 1408 , - 2419 , - 4318 , - 1 , - 1308 , - 1135 , - 1850 , - 1085 , - 1208 , - 4587 , - 4118 , - 2169 , - 1108 , - 3303 , - 1650 , - 3253 , - 1008 , - 2019 , - 3918 , - 4337 , - 908 , - 735 , - 1450 , - 685 , - 808 , - 4187 , - 3718 , - 1769 , - 708 , - 2903 , - 1250 , - 2853 , - 608 , - 1619 , - 3518 , - 3937 , - 508 , - 335 , - 1050 , - 285 , - 408 , - 3787 , - 3318 , - 1369 , - 308 , - 2503 , - 850 , - 2453 , - 208 , - 1219 , - 3118 , - 3537 , - 108 , - 4671 , - 650 , - 4621 , - 8 , - 3387 , - 2918 , - 969 , - 4644 , - 2103 , - 450 , - 2053 , - 4544 , - 819 , - 2718 , - 3137 , - 4444 , - 4271 , - 250 , - 4221 , - 4344 , - 2987 , - 2518 , - 569 , - 4244 , - 1703 , - 50 , - 1653 , - 4144 , - 419 , - 2318 , - 2737 , - 4044 , - 3871 , - 4586 , - 3821 , - 3944 , - 2587 , - 2118 , - 169 , - 3844 , - 1303 , - 4386 , - 1253 , - 3744 , - 19 , - 1918 , - 2337 , - 3644 , - 3471 , - 4186 , - 3421 , - 3544 , - 2187 , - 1718 , - 4505 , - 3444 , - 903 , - 3986 , - 853 , - 3344 , - 4355 , - 1518 , - 1937 , - 3244 , - 3071 , - 3786 , - 3021 , - 3144 , - 1787 , - 1318 , - 4105 , - 3044 , - 503 , - 3586 , - 453 , - 2944 , - 3955 , - 1118 , - 1537 , - 2844 , - 2671 , - 3386 , - 2621 , - 2744 , - 1387 , - 918 , - 3705 , - 2644 , - 103 , - 3186 , - 53 , - 2544 , - 3555 , - 718 , - 1137 , - 2444 , - 2271 , - 2986 , - 2221 , - 2344 , - 987 , - 518 , - 3305 , - 2244 , - 4439 , - 2786 , - 4389 , - 2144 , - 3155 , - 318 , - 737 , - 2044 , - 1871 , - 2586 , - 1821 , - 1944 , - 587 , - 118 , - 2905 , - 1844 , - 4039 , - 2386 , - 3989 , - 1744 , - 2755 , - 4654 , - 337 , - 1644 , - 1471 , - 2186 , - 1421 , - 1544 , - 187 , - 4454 , - 2505 , - 1444 , - 3639 , - 1986 , - 3589 , - 1344 , - 2355 , - 4254 , - 4673 , - 1244 , - 1071 , - 1786 , - 1021 , - 1144 , - 4523 , - 4054 , - 2105 , - 1044 , - 3239 , - 1586 , - 3189 , - 944 , - 1955 , - 3854 , - 4273 , - 844 , - 671 , - 1386 , - 621 , - 744 , - 4123 , - 3654 , - 1705 , - 644 , - 2839 , - 1186 , - 2789 , - 544 , - 1555 , - 3454 , - 3873 , - 444 , - 271 , - 986 , - 221 , - 344 , - 3723 , - 3254 , - 1305 , - 244 , - 2439 , - 786 , - 2389 , - 144 , - 1155 , - 3054 , - 3473 , - 44 , - 4607 , - 586 , - 4557 , - 4680 , - 3323 , - 2854 , - 905 , - 4580 , - 2039 , - 386 , - 1989 , - 4480 , - 755 , - 2654 , - 3073 , - 4380 , - 4207 , - 186 , - 4157 , - 4280 , - 2923 , - 2454 , - 505 , - 4180 , - 1639 , - 4722 , - 1589 , - 4080 , - 355 , - 2254 , - 2673 , - 3980 , - 3807 , - 4522 , - 3757 , - 3880 , - 2523 , - 2054 , - 105 , - 3780 , - 1239 , - 4322 , - 1189 , - 3680 , - 4691 , - 1854 , - 2273 , - 3580 , - 3407 , - 4122 , - 3357 , - 3480 , - 2123 , - 1654 , - 4441 , - 3380 , - 839 , - 3922 , - 789 , - 3280 , - 4291 , - 1454 , - 1873 , - 3180 , - 3007 , - 3722 , - 2957 , - 3080 , - 1723 , - 1254 , - 4041 , - 2980 , - 439 , - 3522 , - 389 , - 2880 , - 3891 , - 1054 , - 1473 , - 2780 , - 2607 , - 3322 , - 2557 , - 2680 , - 1323 , - 854 , - 3641 , - 2580 , - 39 , - 3122 , - 4725 , - 2480 , - 3491 , - 654 , - 1073 , - 2380 , - 2207 , - 2922 , - 2157 , - 2280 , - 923 , - 454 , - 3241 , - 2180 , - 4375 , - 2722 , - 4325 , - 2080 , - 3091 , - 254 , - 673 , - 1980 , - 1807 , - 2522 , - 1757 , - 1880 , - 523 , - 54 , - 2841 , - 1780 , - 3975 , - 2322 , - 3925 , - 1680 , - 2691 , - 4590 , - 273 , - 1580 , - 1407 , - 2122 , - 1357 , - 1480 , - 123 , - 4390 , - 2441 , - 1380 , - 3575 , - 1922 , - 3525 , - 1280 , - 2291 , - 4190 , - 4609 , - 1180 , - 1007 , - 1722 , - 957 , - 1080 , - 4459 , - 3990 , - 2041 , - 980 , - 3175 , - 1522 , - 3125 , - 880 , - 1891 , - 3790 , - 4209 , - 780 , - 607 , - 1322 , - 557 , - 680 , - 4059 , - 3590 , - 1641 , - 580 , - 2775 , - 1122 , - 2725 , - 480 , - 1491 , - 3390 , - 3809 , - 380 , - 207 , - 922 , - 157 , - 280 , - 3659 , - 3190 , - 1241 , - 180 , - 2375 , - 722 , - 2325 , - 80 , - 1091 , - 2990 , - 3409 , - 4716 , - 4543 , - 522 , - 4493 , - 4616 , - 3259 , - 2790 , - 841 , - 4516 , - 1975 , - 322 , - 1925 , - 4416 , - 691 , - 2590 , - 3009 , - 4316 , - 4143 , - 122 , - 4093 , - 4216 , - 2859 , - 2390 , - 441 , - 4116 , - 1575 , - 4658 , - 1525 , - 4016 , - 291 , - 2190 , - 2609 , - 3916 , - 3743 , - 4458 , - 3693 , - 3816 , - 2459 , - 1990 , - 41 , - 3716 , - 1175 , - 4258 , - 1125 , - 3616 , - 4627 , - 1790 , - 2209 , - 3516 , - 3343 , - 4058 , - 3293 , - 3416 , - 2059 , - 1590 , - 4377 , - 3316 , - 775 , - 3858 , - 725 , - 3216 , - 4227 , - 1390 , - 1809 , - 3116 , - 2943 , - 3658 , - 2893 , - 3016 , - 1659 , - 1190 , - 3977 , - 2916 , - 375 , - 3458 , - 325 , - 2816 , - 3827 , - 990 , - 1409 , - 2716 , - 2543 , - 3258 , - 2493 , - 2616 , - 1259 , - 790 , - 3577 , - 2516 , - 4711 , - 3058 , - 4661 , - 2416 , - 3427 , - 590 , - 1009 , - 2316 , - 2143 , - 2858 , - 2093 , - 2216 , - 859 , - 390 , - 3177 , - 2116 , - 4311 , - 2658 , - 4261 , - 2016 , - 3027 , - 190 , - 609 , - 1916 , - 1743 , - 2458 , - 1693 , - 1816 , - 459 , - 4726 , - 2777 , - 1716 , - 3911 , - 2258 , - 3861 , - 1616 , - 2627 , - 4526 , - 209 , - 1516 , - 1343 , - 2058 , - 1293 , - 1416 , - 59 , - 4326 , - 2377 , - 1316 , - 3511 , - 1858 , - 3461 , - 1216 , - 2227 , - 4126 , - 4545 , - 1116 , - 943 , - 1658 , - 893 , - 1016 , - 4395 , - 3926 , - 1977 , - 916 , - 3111 , - 1458 , - 3061 , - 816 , - 1827 , - 3726 , - 4145 , - 716 , - 543 , - 1258 , - 493 , - 616 , - 3995 , - 3526 , - 1577 , - 516 , - 2711 , - 1058 , - 2661 , - 416 , - 1427 , - 3326 , - 3745 , - 316 , - 143 , - 858 , - 93 , - 216 , - 3595 , - 3126 , - 1177 , - 116 , - 2311 , - 658 , - 2261 , - 16 , - 1027 , - 2926 , - 3345 , - 4652 , - 4479 , - 458 , - 4429 , - 4552 , - 3195 , - 2726 , - 777 , - 4452 , - 1911 , - 258 , - 1861 , - 4352 , - 627 , - 2526 , - 2945 , - 4252 , - 4079 , - 58 , - 4029 , - 4152 , - 2795 , - 2326 , - 377 , - 4052 , - 1511 , - 4594 , - 1461 , - 3952 , - 227 , - 2126 , - 2545 , - 3852 , - 3679 , - 4394 , - 3629 , - 3752 , - 2395 , - 1926 , - 4713 , - 3652 , - 1111 , - 4194 , - 1061 , - 3552 , - 4563 , - 1726 , - 2145 , - 3452 , - 3279 , - 3994 , - 3229 , - 3352 , - 1995 , - 1526 , - 4313 , - 3252 , - 711 , - 3794 , - 661 , - 3152 , - 4163 , - 1326 , - 1745 , - 3052 , - 2879 , - 3594 , - 2829 , - 2952 , - 1595 , - 1126 , - 3913 , - 2852 , - 311 , - 3394 , - 261 , - 2752 , - 3763 , - 926 , - 1345 , - 2652 , - 2479 , - 3194 , - 2429 , - 2552 , - 1195 , - 726 , - 3513 , - 2452 , - 4647 , - 2994 , - 4597 , - 2352 , - 3363 , - 526 , - 945 , - 2252 , - 2079 , - 2794 , - 2029 , - 2152 , - 795 , - 326 , - 3113 , - 2052 , - 4247 , - 2594 , - 4197 , - 1952 , - 2963 , - 126 , - 545 , - 1852 , - 1679 , - 2394 , - 1629 , - 1752 , - 395 , - 4662 , - 2713 , - 1652 , - 3847 , - 2194 , - 3797 , - 1552 , - 2563 , - 4462 , - 145 , - 1452 , - 1279 , - 1994 , - 1229 , - 1352 , - 4731 , - 4262 , - 2313 , - 1252 , - 3447 , - 1794 , - 3397 , - 1152 , - 2163 , - 4062 , - 4481 , - 1052 , - 879 , - 1594 , - 829 , - 952 , - 4331 , - 3862 , - 1913 , - 852 , - 3047 , - 1394 , - 2997 , - 752 , - 1763 , - 3662 , - 4081 , - 652 , - 479 , - 1194 , - 429 , - 552 , - 3931 , - 3462 , - 1513 , - 452 , - 2647 , - 994 , - 2597 , - 352 , - 1363 , - 3262 , - 3681 , - 252 , - 79 , - 794 , - 29 , - 152 , - 3531 , - 3062 , - 1113 , - 52 , - 2247 , - 594 , - 2197 , - 4688 , - 963 , - 2862 , - 3281 , - 4588 , - 4415 , - 394 , - 4365 , - 4488 , - 3131 , - 2662 , - 713 , - 4388 , - 1847 , - 194 , - 1797 , - 4288 , - 563 , - 2462 , - 2881 , - 4188 , - 4015 , - 4730 , - 3965 , - 4088 , - 2731 , - 2262 , - 313 , - 3988 , - 1447 , - 4530 , - 1397 , - 3888 , - 163 , - 2062 , - 2481 , - 3788 , - 3615 , - 4330 , - 3565 , - 3688 , - 2331 , - 1862 , - 4649 , - 3588 , - 1047 , - 4130 , - 997 , - 3488 , - 4499 , - 1662 , - 2081 , - 3388 , - 3215 , - 3930 , - 3165 , - 3288 , - 1931 , - 1462 , - 4249 , - 3188 , - 647 , - 3730 , - 597 , - 3088 , - 4099 , - 1262 , - 1681 , - 2988 , - 2815 , - 3530 , - 2765 , - 2888 , - 1531 , - 1062 , - 3849 , - 2788 , - 247 , - 3330 , - 197 , - 2688 , - 3699 , - 862 , - 1281 , - 2588 , - 2415 , - 3130 , - 2365 , - 2488 , - 1131 , - 662 , - 3449 , - 2388 , - 4583 , - 2930 , - 4533 , - 2288 , - 3299 , - 462 , - 881 , - 2188 , - 2015 , - 2730 , - 1965 , - 2088 , - 731 , - 262 , - 3049 , - 1988 , - 4183 , - 2530 , - 4133 , - 1888 , - 2899 , - 62 , - 481 , - 1788 , - 1615 , - 2330 , - 1565 , - 1688 , - 331 , - 4598 , - 2649 , - 1588 , - 3783 , - 2130 , - 3733 , - 1488 , - 2499 , - 4398 , - 81 , - 1388 , - 1215 , - 1930 , - 1165 , - 1288 , - 4667 , - 4198 , - 2249 , - 1188 , - 3383 , - 1730 , - 3333 , - 1088 , - 2099 , - 3998 , - 4417 , - 988 , - 815 , - 1530 , - 765 , - 888 , - 4267 , - 3798 , - 1849 , - 788 , - 2983 , - 1330 , - 2933 , - 688 , - 1699 , - 3598 , - 4017 , - 588 , - 415 , - 1130 , - 365 , - 488 , - 3867 , - 3398 , - 1449 , - 388 , - 2583 , - 930 , - 2533 , - 288 , - 1299 , - 3198 , - 3617 , - 188 , - 15 , - 730 , - 4701 , - 88 , - 3467 , - 2998 , - 1049 , - 4724 , - 2183 , - 530 , - 2133 , - 4624 , - 899 , - 2798 , - 3217 , - 4524 , - 4351 , - 330 , - 4301 , - 4424 , - 3067 , - 2598 , - 649 , - 4324 , - 1783 , - 130 , - 1733 , - 4224 , - 499 , - 2398 , - 2817 , - 4124 , - 3951 , - 4666 , - 3901 , - 4024 , - 2667 , - 2198 , - 249 , - 3924 , - 1383 , - 4466 , - 1333 , - 3824 , - 99 , - 1998 , - 2417 , - 3724 , - 3551 , - 4266 , - 3501 , - 3624 , - 2267 , - 1798 , - 4585 , - 3524 , - 983 , - 4066 , - 933 , - 3424 , - 4435 , - 1598 , - 2017 , - 3324 , - 3151 , - 3866 , - 3101 , - 3224 , - 1867 , - 1398 , - 4185 , - 3124 , - 583 , - 3666 , - 533 , - 3024 , - 4035 , - 1198 , - 1617 , - 2924 , - 2751 , - 3466 , - 2701 , - 2824 , - 1467 , - 998 , - 3785 , - 2724 , - 183 , - 3266 , - 133 , - 2624 , - 3635 , - 798 , - 1217 , - 2524 , - 2351 , - 3066 , - 2301 , - 2424 , - 1067 , - 598 , - 3385 , - 2324 , - 4519 , - 2866 , - 4469 , - 2224 , - 3235 , - 398 , - 817 , - 2124 , - 1951 , - 2666 , - 1901 , - 2024 , - 667 , - 198 , - 2985 , - 1924 , - 4119 , - 2466 , - 4069 , - 1824 , - 2835 , - 4734 , - 417 , - 1724 , - 1551 , - 2266 , - 1501 , - 1624 , - 267 , - 4534 , - 2585 , - 1524 , - 3719 , - 2066 , - 3669 , - 1424 , - 2435 , - 4334 , - 17 , - 1324 , - 1151 , - 1866 , - 1101 , - 1224 , - 4603 , - 4134 , - 2185 , - 1124 , - 3319 , - 1666 , - 3269 , - 1024 , - 2035 , - 3934 , - 4353 , - 924 , - 751 , - 1466 , - 701 , - 824 , - 4203 , - 3734 , - 1785 , - 724 , - 2919 , - 1266 , - 2869 , - 624 , - 1635 , - 3534 , - 3953 , - 524 , - 351 , - 1066 , - 301 , - 424 , - 3803 , - 3334 , - 1385 , - 324 , - 2519 , - 866 , - 2469 , - 224 , - 1235 , - 3134 , - 3553 , - 124 , - 4687 , - 666 , - 4637 , - 24 , - 3403 , - 2934 , - 985 , - 4660 , - 2119 , - 466 , - 2069 , - 4560 , - 835 , - 2734 , - 3153 , - 4460 , - 4287 , - 266 , - 4237 , - 4360 , - 3003 , - 2534 , - 585 , - 4260 , - 1719 , - 66 , - 1669 , - 4160 , - 435 , - 2334 , - 2753 , - 4060 , - 3887 , - 4602 , - 3837 , - 3960 , - 2603 , - 2134 , - 185 , - 3860 , - 1319 , - 4402 , - 1269 , - 3760 , - 35 , - 1934 , - 2353 , - 3660 , - 3487 , - 4202 , - 3437 , - 3560 , - 2203 , - 1734 , - 4521 , - 3460 , - 919 , - 4002 , - 869 , - 3360 , - 4371 , - 1534 , - 1953 , - 3260 , - 3087 , - 3802 , - 3037 , - 3160 , - 1803 , - 1334 , - 4121 , - 3060 , - 519 , - 3602 , - 469 , - 2960 , - 3971 , - 1134 , - 1553 , - 2860 , - 2687 , - 3402 , - 2637 , - 2760 , - 1403 , - 934 , - 3721 , - 2660 , - 119 , - 3202 , - 69 , - 2560 , - 3571 , - 734 , - 1153 , - 2460 , - 2287 , - 3002 , - 2237 , - 2360 , - 1003 , - 534 , - 3321 , - 2260 , - 4455 , - 2802 , - 4405 , - 2160 , - 3171 , - 334 , - 753 , - 2060 , - 1887 , - 2602 , - 1837 , - 1960 , - 603 , - 134 , - 2921 , - 1860 , - 4055 , - 2402 , - 4005 , - 1760 , - 2771 , - 4670 , - 353 , - 1660 , - 1487 , - 2202 , - 1437 , - 1560 , - 203 , - 4470 , - 2521 , - 1460 , - 3655 , - 2002 , - 3605 , - 1360 , - 2371 , - 4270 , - 4689 , - 1260 , - 1087 , - 1802 , - 1037 , - 1160 , - 4539 , - 4070 , - 2121 , - 1060 , - 3255 , - 1602 , - 3205 , - 960 , - 1971 , - 3870 , - 4289 , - 860 , - 687 , - 1402 , - 637 , - 760 , - 4139 , - 3670 , - 1721 , - 660 , - 2855 , - 1202 , - 2805 , - 560 , - 1571 , - 3470 , - 3889 , - 460 , - 287 , - 1002 , - 237 , - 360 , - 3739 , - 3270 , - 1321 , - 260 , - 2455 , - 802 , - 2405 , - 160 , - 1171 , - 3070 , - 3489 , - 60 , - 4623 , - 602 , - 4573 , - 4696 , - 3339 , - 2870 , - 921 , - 4596 , - 2055 , - 402 , - 2005 , - 4496 , - 771 , - 2670 , - 3089 , - 4396 , - 4223 , - 202 , - 4173 , - 4296 , - 2939 , - 2470 , - 521 , - 4196 , - 1655 , - 2 , - 1605 , - 4096 , - 371 , - 2270 , - 2689 , - 3996 , - 3823 , - 4538 , - 3773 , - 3896 , - 2539 , - 2070 , - 121 , - 3796 , - 1255 , - 4338 , - 1205 , - 3696 , - 4707 , - 1870 , - 2289 , - 3596 , - 3423 , - 4138 , - 3373 , - 3496 , - 2139 , - 1670 , - 4457 , - 3396 , - 855 , - 3938 , - 805 , - 3296 , - 4307 , - 1470 , - 1889 , - 3196 , - 3023 , - 3738 , - 2973 , - 3096 , - 1739 , - 1270 , - 4057 , - 2996 , - 455 , - 3538 , - 405 , - 2896 , - 3907 , - 1070 , - 1489 , - 2796 , - 2623 , - 3338 , - 2573 , - 2696 , - 1339 , - 870 , - 3657 , - 2596 , - 55 , - 3138 , - 5 , - 2496 , - 3507 , - 670 , - 1089 , - 2396 , - 2223 , - 2938 , - 2173 , - 2296 , - 939 , - 470 , - 3257 , - 2196 , - 4391 , - 2738 , - 4341 , - 2096 , - 3107 , - 270 , - 689 , - 1996 , - 1823 , - 2538 , - 1773 , - 1896 , - 539 , - 70 , - 2857 , - 1796 , - 3991 , - 2338 , - 3941 , - 1696 , - 2707 , - 4606 , - 289 , - 1596 , - 1423 , - 2138 , - 1373 , - 1496 , - 139 , - 4406 , - 2457 , - 1396 , - 3591 , - 1938 , - 3541 , - 1296 , - 2307 , - 4206 , - 4625 , - 1196 , - 1023 , - 1738 , - 973 , - 1096 , - 4475 , - 4006 , - 2057 , - 996 , - 3191 , - 1538 , - 3141 , - 896 , - 1907 , - 3806 , - 4225 , - 796 , - 623 , - 1338 , - 573 , - 696 , - 4075 , - 3606 , - 1657 , - 596 , - 2791 , - 1138 , - 2741 , - 496 , - 1507 , - 3406 , - 3825 , - 396 , - 223 , - 938 , - 173 , - 296 , - 3675 , - 3206 , - 1257 , - 196 , - 2391 , - 738 , - 2341 , - 96 , - 1107 , - 3006 , - 3425 , - 4732 , - 4559 , - 538 , - 4509 , - 4632 , - 3275 , - 2806 , - 857 , - 4532 , - 1991 , - 338 , - 1941 , - 4432 , - 707 , - 2606 , - 3025 , - 4332 , - 4159 , - 138 , - 4109 , - 4232 , - 2875 , - 2406 , - 457 , - 4132 , - 1591 , - 4674 , - 1541 , - 4032 , - 307 , - 2206 , - 2625 , - 3932 , - 3759 , - 4474 , - 3709 , - 3832 , - 2475 , - 2006 , - 57 , - 3732 , - 1191 , - 4274 , - 1141 , - 3632 , - 4643 , - 1806 , - 2225 , - 3532 , - 3359 , - 4074 , - 3309 , - 3432 , - 2075 , - 1606 , - 4393 , - 3332 , - 791 , - 3874 , - 741 , - 3232 , - 4243 , - 1406 , - 1825 , - 3132 , - 2959 , - 3674 , - 2909 , - 3032 , - 1675 , - 1206 , - 3993 , - 2932 , - 391 , - 3474 , - 341 , - 2832 , - 3843 , - 1006 , - 1425 , - 2732 , - 2559 , - 3274 , - 2509 , - 2632 , - 1275 , - 806 , - 3593 , - 2532 , - 4727 , - 3074 , - 4677 , - 2432 , - 3443 , - 606 , - 1025 , - 2332 , - 2159 , - 2874 , - 2109 , - 2232 , - 875 , - 406 , - 3193 , - 2132 , - 4327 , - 2674 , - 4277 , - 2032 , - 3043 , - 206 , - 625 , - 1932 , - 1759 , - 2474 , - 1709 , - 1832 , - 475 , - 6 , - 2793 , - 1732 , - 3927 , - 2274 , - 3877 , - 1632 , - 2643 , - 4542 , - 225 , - 1532 , - 1359 , - 2074 , - 1309 , - 1432 , - 75 , - 4342 , - 2393 , - 1332 , - 3527 , - 1874 , - 3477 , - 1232 , - 2243 , - 4142 , - 4561 , - 1132 , - 959 , - 1674 , - 909 , - 1032 , - 4411 , - 3942 , - 1993 , - 932 , - 3127 , - 1474 , - 3077 , - 832 , - 1843 , - 3742 , - 4161 , - 732 , - 559 , - 1274 , - 509 , - 632 , - 4011 , - 3542 , - 1593 , - 532 , - 2727 , - 1074 , - 2677 , - 432 , - 1443 , - 3342 , - 3761 , - 332 , - 159 , - 874 , - 109 , - 232 , - 3611 , - 3142 , - 1193 , - 132 , - 2327 , - 674 , - 2277 , - 32 , - 1043 , - 2942 , - 3361 , - 4668 , - 4495 , - 474 , - 4445 , - 4568 , - 3211 , - 2742 , - 793 , - 4468 , - 1927 , - 274 , - 1877 , - 4368 , - 643 , - 2542 , - 2961 , - 4268 , - 4095 , - 74 , - 4045 , - 4168 , - 2811 , - 2342 , - 393 , - 4068 , - 1527 , - 4610 , - 1477 , - 3968 , - 243 , - 2142 , - 2561 , - 3868 , - 3695 , - 4410 , - 3645 , - 3768 , - 2411 , - 1942 , - 4729 , - 3668 , - 1127 , - 4210 , - 1077 , - 3568 , - 4579 , - 1742 , - 2161 , - 3468 , - 3295 , - 4010 , - 3245 , - 3368 , - 2011 , - 1542 , - 4329 , - 3268 , - 727 , - 3810 , - 677 , - 3168 , - 4179 , - 1342 , - 1761 , - 3068 , - 2895 , - 3610 , - 2845 , - 2968 , - 1611 , - 1142 , - 3929 , - 2868 , - 327 , - 3410 , - 277 , - 2768 , - 3779 , - 942 , - 1361 , - 2668 , - 2495 , - 3210 , - 2445 , - 2568 , - 1211 , - 742 , - 3529 , - 2468 , - 4663 , - 3010 , - 4613 , - 2368 , - 3379 , - 542 , - 961 , - 2268 , - 2095 , - 2810 , - 2045 , - 2168 , - 811 , - 342 , - 3129 , - 2068 , - 4263 , - 2610 , - 4213 , - 1968 , - 2979 , - 142 , - 561 , - 1868 , - 1695 , - 2410 , - 1645 , - 1768 , - 411 , - 4678 , - 2729 , - 1668 , - 3863 , - 2210 , - 3813 , - 1568 , - 2579 , - 4478 , - 161 , - 1468 , - 1295 , - 2010 , - 1245 , - 1368 , - 11 , - 4278 , - 2329 , - 1268 , - 3463 , - 1810 , - 3413 , - 1168 , - 2179 , - 4078 , - 4497 , - 1068 , - 895 , - 1610 , - 845 , - 968 , - 4347 , - 3878 , - 1929 , - 868 , - 3063 , - 1410 , - 3013 , - 768 , - 1779 , - 3678 , - 4097 , - 668 , - 495 , - 1210 , - 445 , - 568 , - 3947 , - 3478 , - 1529 , - 468 , - 2663 , - 1010 , - 2613 , - 368 , - 1379 , - 3278 , - 3697 , - 268 , - 95 , - 810 , - 45 , - 168 , - 3547 , - 3078 , - 1129 , - 68 , - 2263 , - 610 , - 2213 , - 4704 , - 979 , - 2878 , - 3297 , - 4604 , - 4431 , - 410 , - 4381 , - 4504 , - 3147 , - 2678 , - 729 , - 4404 , - 1863 , - 210 , - 1813 , - 4304 , - 579 , - 2478 , - 2897 , - 4204 , - 4031 , - 10 , - 3981 , - 4104 , - 2747 , - 2278 , - 329 , - 4004 , - 1463 , - 4546 , - 1413 , - 3904 , - 179 , - 2078 , - 2497 , - 3804 , - 3631 , - 4346 , - 3581 , - 3704 , - 2347 , - 1878 , - 4665 , - 3604 , - 1063 , - 4146 , - 1013 , - 3504 , - 4515 , - 1678 , - 2097 , - 3404 , - 3231 , - 3946 , - 3181 , - 3304 , - 1947 , - 1478 , - 4265 , - 3204 , - 663 , - 3746 , - 613 , - 3104 , - 4115 , - 1278 , - 1697 , - 3004 , - 2831 , - 3546 , - 2781 , - 2904 , - 1547 , - 1078 , - 3865 , - 2804 , - 263 , - 3346 , - 213 , - 2704 , - 3715 , - 878 , - 1297 , - 2604 , - 2431 , - 3146 , - 2381 , - 2504 , - 1147 , - 678 , - 3465 , - 2404 , - 4599 , - 2946 , - 4549 , - 2304 , - 3315 , - 478 , - 897 , - 2204 , - 2031 , - 2746 , - 1981 , - 2104 , - 747 , - 278 , - 3065 , - 2004 , - 4199 , - 2546 , - 4149 , - 1904 , - 2915 , - 78 , - 497 , - 1804 , - 1631 , - 2346 , - 1581 , - 1704 , - 347 , - 4614 , - 2665 , - 1604 , - 3799 , - 2146 , - 3749 , - 1504 , - 2515 , - 4414 , - 97 , - 1404 , - 1231 , - 1946 , - 1181 , - 1304 , - 4683 , - 4214 , - 2265 , - 1204 , - 3399 , - 1746 , - 3349 , - 1104 , - 2115 , - 4014 , - 4433 , - 1004 , - 831 , - 1546 , - 781 , - 904 , - 4283 , - 3814 , - 1865 , - 804 , - 2999 , - 1346 , - 2949 , - 704 , - 1715 , - 3614 , - 4033 , - 604 , - 431 , - 1146 , - 381 , - 504 , - 3883 , - 3414 , - 1465 , - 404 , - 2599 , - 946 , - 2549 , - 304 , - 1315 , - 3214 , - 3633 , - 204 , - 31 , - 746 , - 4717 , - 104 , - 3483 , - 3014 , - 1065 , - 4 , - 2199 , - 546 , - 2149 , - 4640 , - 915 , - 2814 , - 3233 , - 4540 , - 4367 , - 346 , - 4317 , - 4440 , - 3083 , - 2614 , - 665 , - 4340 , - 1799 , - 146 , - 1749 , - 4240 , - 515 , - 2414 , - 2833 , - 4140 , - 3967 , - 4682 , - 3917 , - 4040 , - 2683 , - 2214 , - 265 , - 3940 , - 1399 , - 4482 , - 1349 , - 3840 , - 115 , - 2014 , - 2433 , - 3740 , - 3567 , - 4282 , - 3517 , - 3640 , - 2283 , - 1814 , - 4601 , - 3540 , - 999 , - 4082 , - 949 , - 3440 , - 4451 , - 1614 , - 2033 , - 3340 , - 3167 , - 3882 , - 3117 , - 3240 , - 1883 , - 1414 , - 4201 , - 3140 , - 599 , - 3682 , - 549 , - 3040 , - 4051 , - 1214 , - 1633 , - 2940 , - 2767 , - 3482 , - 2717 , - 2840 , - 1483 , - 1014 , - 3801 , - 2740 , - 199 , - 3282 , - 149 , - 2640 , - 3651 , - 814 , - 1233 , - 2540 , - 2367 , - 3082 , - 2317 , - 2440 , - 1083 , - 614 , - 3401 , - 2340 , - 4535 , - 2882 , - 4485 , - 2240 , - 3251 , - 414 , - 833 , - 2140 , - 1967 , - 2682 , - 1917 , - 2040 , - 683 , - 214 , - 3001 , - 1940 , - 4135 , - 2482 , - 4085 , - 1840 , - 2851 , - 14 , - 433 , - 1740 , - 1567 , - 2282 , - 1517 , - 1640 , - 283 , - 4550 , - 2601 , - 1540 , - 3735 , - 2082 , - 3685 , - 1440 , - 2451 , - 4350 , - 33 , - 1340 , - 1167 , - 1882 , - 1117 , - 1240 , - 4619 , - 4150 , - 2201 , - 1140 , - 3335 , - 1682 , - 3285 , - 1040 , - 2051 , - 3950 , - 4369 , - 940 , - 767 , - 1482 , - 717 , - 840 , - 4219 , - 3750 , - 1801 , - 740 , - 2935 , - 1282 , - 2885 , - 640 , - 1651 , - 3550 , - 3969 , - 540 , - 367 , - 1082 , - 317 , - 440 , - 3819 , - 3350 , - 1401 , - 340 , - 2535 , - 882 , - 2485 , - 240 , - 1251 , - 3150 , - 3569 , - 140 , - 4703 , - 682 , - 4653 , - 40 , - 3419 , - 2950 , - 1001 , - 4676 , - 2135 , - 482 , - 2085 , - 4576 , - 851 , - 2750 , - 3169 , - 4476 , - 4303 , - 282 , - 4253 , - 4376 , - 3019 , - 2550 , - 601 , - 4276 , - 1735 , - 82 , - 1685 , - 4176 , - 451 , - 2350 , - 2769 , - 4076 , - 3903 , - 4618 , - 3853 , - 3976 , - 2619 , - 2150 , - 201 , - 3876 , - 1335 , - 4418 , - 1285 , - 3776 , - 51 , - 1950 , - 2369 , - 3676 , - 3503 , - 4218 , - 3453 , - 3576 , - 2219 , - 1750 , - 4537 , - 3476 , - 935 , - 4018 , - 885 , - 3376 , - 4387 , - 1550 , - 1969 , - 3276 , - 3103 , - 3818 , - 3053 , - 3176 , - 1819 , - 1350 , - 4137 , - 3076 , - 535 , - 3618 , - 485 , - 2976 , - 3987 , - 1150 , - 1569 , - 2876 , - 2703 , - 3418 , - 2653 , - 2776 , - 1419 , - 950 , - 3737 , - 2676 , - 135 , - 3218 , - 85 , - 2576 , - 3587 , - 750 , - 1169 , - 2476 , - 2303 , - 3018 , - 2253 , - 2376 , - 1019 , - 550 , - 3337 , - 2276 , - 4471 , - 2818 , - 4421 , - 2176 , - 3187 , - 350 , - 769 , - 2076 , - 1903 , - 2618 , - 1853 , - 1976 , - 619 , - 150 , - 2937 , - 1876 , - 4071 , - 2418 , - 4021 , - 1776 , - 2787 , - 4686 , - 369 , - 1676 , - 1503 , - 2218 , - 1453 , - 1576 , - 219 , - 4486 , - 2537 , - 1476 , - 3671 , - 2018 , - 3621 , - 1376 , - 2387 , - 4286 , - 4705 , - 1276 , - 1103 , - 1818 , - 1053 , - 1176 , - 4555 , - 4086 , - 2137 , - 1076 , - 3271 , - 1618 , - 3221 , - 976 , - 1987 , - 3886 , - 4305 , - 876 , - 703 , - 1418 , - 653 , - 776 , - 4155 , - 3686 , - 1737 , - 676 , - 2871 , - 1218 , - 2821 , - 576 , - 1587 , - 3486 , - 3905 , - 476 , - 303 , - 1018 , - 253 , - 376 , - 3755 , - 3286 , - 1337 , - 276 , - 2471 , - 818 , - 2421 , - 176 , - 1187 , - 3086 , - 3505 , - 76 , - 4639 , - 618 , - 4589 , - 4712 , - 3355 , - 2886 , - 937 , - 4612 , - 2071 , - 418 , - 2021 , - 4512 , - 787 , - 2686 , - 3105 , - 4412 , - 4239 , - 218 , - 4189 , - 4312 , - 2955 , - 2486 , - 537 , - 4212 , - 1671 , - 18 , - 1621 , - 4112 , - 387 , - 2286 , - 2705 , - 4012 , - 3839 , - 4554 , - 3789 , - 3912 , - 2555 , - 2086 , - 137 , - 3812 , - 1271 , - 4354 , - 1221 , - 3712 , - 4723 , - 1886 , - 2305 , - 3612 , - 3439 , - 4154 , - 3389 , - 3512 , - 2155 , - 1686 , - 4473 , - 3412 , - 871 , - 3954 , - 821 , - 3312 , - 4323 , - 1486 , - 1905 , - 3212 , - 3039 , - 3754 , - 2989 , - 3112 , - 1755 , - 1286 , - 4073 , - 3012 , - 471 , - 3554 , - 421 , - 2912 , - 3923 , - 1086 , - 1505 , - 2812 , - 2639 , - 3354 , - 2589 , - 2712 , - 1355 , - 886 , - 3673 , - 2612 , - 71 , - 3154 , - 21 , - 2512 , - 3523 , - 686 , - 1105 , - 2412 , - 2239 , - 2954 , - 2189 , - 2312 , - 955 , - 486 , - 3273 , - 2212 , - 4407 , - 2754 , - 4357 , - 2112 , - 3123 , - 286 , - 705 , - 2012 , - 1839 , - 2554 , - 1789 , - 1912 , - 555 , - 86 , - 2873 , - 1812 , - 4007 , - 2354 , - 3957 , - 1712 , - 2723 , - 4622 , - 305 , - 1612 , - 1439 , - 2154 , - 1389 , - 1512 , - 155 , - 4422 , - 2473 , - 1412 , - 3607 , - 1954 , - 3557 , - 1312 , - 2323 , - 4222 , - 4641 , - 1212 , - 1039 , - 1754 , - 989 , - 1112 , - 4491 , - 4022 , - 2073 , - 1012 , - 3207 , - 1554 , - 3157 , - 912 , - 1923 , - 3822 , - 4241 , - 812 , - 639 , - 1354 , - 589 , - 712 , - 4091 , - 3622 , - 1673 , - 612 , - 2807 , - 1154 , - 2757 , - 512 , - 1523 , - 3422 , - 3841 , - 412 , - 239 , - 954 , - 189 , - 312 , - 3691 , - 3222 , - 1273 , - 212 , - 2407 , - 754 , - 2357 , - 112 , - 1123 , - 3022 , - 3441 , - 12 , - 4575 , - 554 , - 4525 , - 4648 , - 3291 , - 2822 , - 873 , - 4548 , - 2007 , - 354 , - 1957 , - 4448 , - 723 , - 2622 , - 3041 , - 4348 , - 4175 , - 154 , - 4125 , - 4248 , - 2891 , - 2422 , - 473 , - 4148 , - 1607 , - 4690 , - 1557 , - 4048 , - 323 , - 2222 , - 2641 , - 3948 , - 3775 , - 4490 , - 3725 , - 3848 , - 2491 , - 2022 , - 73 , - 3748 , - 1207 , - 4290 , - 1157 , - 3648 , - 4659 , - 1822 , - 2241 , - 3548 , - 3375 , - 4090 , - 3325 , - 3448 , - 2091 , - 1622 , - 4409 , - 3348 , - 807 , - 3890 , - 757 , - 3248 , - 4259 , - 1422 , - 1841 , - 3148 , - 2975 , - 3690 , - 2925 , - 3048 , - 1691 , - 1222 , - 4009 , - 2948 , - 407 , - 3490 , - 357 , - 2848 , - 3859 , - 1022 , - 1441 , - 2748 , - 2575 , - 3290 , - 2525 , - 2648 , - 1291 , - 822 , - 3609 , - 2548 , - 7 , - 3090 , - 4693 , - 2448 , - 3459 , - 622 , - 1041 , - 2348 , - 2175 , - 2890 , - 2125 , - 2248 , - 891 , - 422 , - 3209 , - 2148 , - 4343 , - 2690 , - 4293 , - 2048 , - 3059 , - 222 , - 641 , - 1948 , - 1775 , - 2490 , - 1725 , - 1848 , - 491 , - 22 , - 2809 , - 1748 , - 3943 , - 2290 , - 3893 , - 1648 , - 2659 , - 4558 , - 241 , - 1548 , - 1375 , - 2090 , - 1325 , - 1448 , - 91 , - 4358 , - 2409 , - 1348 , - 3543 , - 1890 , - 3493 , - 1248 , - 2259 , - 4158 , - 4577 , - 1148 , - 975 , - 1690 , - 925 , - 1048 , - 4427 , - 3958 , - 2009 , - 948 , - 3143 , - 1490 , - 3093 , - 848 , - 1859 , - 3758 , - 4177 , - 748 , - 575 , - 1290 , - 525 , - 648 , - 4027 , - 3558 , - 1609 , - 548 , - 2743 , - 1090 , - 2693 , - 448 , - 1459 , - 3358 , - 3777 , - 348 , - 175 , - 890 , - 125 , - 248 , - 3627 , - 3158 , - 1209 , - 148 , - 2343 , - 690 , - 2293 , - 48 , - 1059 , - 2958 , - 3377 , - 4684 , - 4511 , - 490 , - 4461 , - 4584 , - 3227 , - 2758 , - 809 , - 4484 , - 1943 , - 290 , - 1893 , - 4384 , - 659 , - 2558 , - 2977 , - 4284 , - 4111 , - 90 , - 4061 , - 4184 , - 2827 , - 2358 , - 409 , - 4084 , - 1543 , - 4626 , - 1493 , - 3984 , - 259 , - 2158 , - 2577 , - 3884 , - 3711 , - 4426 , - 3661 , - 3784 , - 2427 , - 1958 , - 9 , - 3684 , - 1143 , - 4226 , - 1093 , - 3584 , - 4595 , - 1758 , - 2177 , - 3484 , - 3311 , - 4026 , - 3261 , - 3384 , - 2027 , - 1558 , - 4345 , - 3284 , - 743 , - 3826 , - 693 , - 3184 , - 4195 , - 1358 , - 1777 , - 3084 , - 2911 , - 3626 , - 2861 , - 2984 , - 1627 , - 1158 , - 3945 , - 2884 , - 343 , - 3426 , - 293 , - 2784 , - 3795 , - 958 , - 1377 , - 2684 , - 2511 , - 3226 , - 2461 , - 2584 , - 1227 , - 758 , - 3545 , - 2484 , - 4679 , - 3026 , - 4629 , - 2384 , - 3395 , - 558 , - 977 , - 2284 , - 2111 , - 2826 , - 2061 , - 2184 , - 827 , - 358 , - 3145 , - 2084 , - 4279 , - 2626 , - 4229 , - 1984 , - 2995 , - 158 , - 577 , - 1884 , - 1711 , - 2426 , - 1661 , - 1784 , - 427 , - 4694 , - 2745 , - 1684 , - 3879 , - 2226 , - 3829 , - 1584 , - 2595 , - 4494 , - 177 , - 1484 , - 1311 , - 2026 , - 1261 , - 1384 , - 27 , - 4294 , - 2345 , - 1284 , - 3479 , - 1826 , - 3429 , - 1184 , - 2195 , - 4094 , - 4513 , - 1084 , - 911 , - 1626 , - 861 , - 984 , - 4363 , - 3894 , - 1945 , - 884 , - 3079 , - 1426 , - 3029 , - 784 , - 1795 , - 3694 , - 4113 , - 684 , - 511 , - 1226 , - 461 , - 584 , - 3963 , - 3494 , - 1545 , - 484 , - 2679 , - 1026 , - 2629 , - 384 , - 1395 , - 3294 , - 3713 , - 284 , - 111 , - 826 , - 61 , - 184 , - 3563 , - 3094 , - 1145 , - 84 , - 2279 , - 626 , - 2229 , - 4720 , - 995 , - 2894 , - 3313 , - 4620 , - 4447 , - 426 , - 4397 , - 4520 , - 3163 , - 2694 , - 745 , - 4420 , - 1879 , - 226 , - 1829 , - 4320 , - 595 , - 2494 , - 2913 , - 4220 , - 4047 , - 26 , - 3997 , - 4120 , - 2763 , - 2294 , - 345 , - 4020 , - 1479 , - 4562 , - 1429 , - 3920 , - 195 , - 2094 , - 2513 , - 3820 , - 3647 , - 4362 , - 3597 , - 3720 , - 2363 , - 1894 , - 4681 , - 3620 , - 1079 , - 4162 , - 1029 , - 3520 , - 4531 , - 1694 , - 2113 , - 3420 , - 3247 , - 3962 , - 3197 , - 3320 , - 1963 , - 1494 , - 4281 , - 3220 , - 679 , - 3762 , - 629 , - 3120 , - 4131 , - 1294 , - 1713 , - 3020 , - 2847 , - 3562 , - 2797 , - 2920 , - 1563 , - 1094 , - 3881 , - 2820 , - 279 , - 3362 , - 229 , - 2720 , - 3731 , - 894 , - 1313 , - 2620 , - 2447 , - 3162 , - 2397 , - 2520 , - 1163 , - 694 , - 3481 , - 2420 , - 4615 , - 2962 , - 4565 , - 2320 , - 3331 , - 494 , - 913 , - 2220 , - 2047 , - 2762 , - 1997 , - 2120 , - 763 , - 294 , - 3081 , - 2020 , - 4215 , - 2562 , - 4165 , - 1920 , - 2931 , - 94 , - 513 , - 1820 , - 1647 , - 2362 , - 1597 , - 1720 , - 363 , - 4630 , - 2681 , - 1620 , - 3815 , - 2162 , - 3765 , - 1520 , - 2531 , - 4430 , - 113 , - 1420 , - 1247 , - 1962 , - 1197 , - 1320 , - 4699 , - 4230 , - 2281 , - 1220 , - 3415 , - 1762 , - 3365 , - 1120 , - 2131 , - 4030 , - 4449 , - 1020 , - 847 , - 1562 , - 797 , - 920 , - 4299 , - 3830 , - 1881 , - 820 , - 3015 , - 1362 , - 2965 , - 720 , - 1731 , - 3630 , - 4049 , - 620 , - 447 , - 1162 , - 397 , - 520 , - 3899 , - 3430 , - 1481 , - 420 , - 2615 , - 962 , - 2565 , - 320 , - 1331 , - 3230 , - 3649 , - 220 , - 47 , - 762 , - 4733 , - 120 , - 3499 , - 3030 , - 1081 , - 20 , - 2215 , - 562 , - 2165 , - 4656 , - 931 , - 2830 , - 3249 , - 4556 , - 4383 , - 362 , - 4333 , - 4456 , - 3099 , - 2630 , - 681 , - 4356 , - 1815 , - 162 , - 1765 , - 4256 , - 531 , - 2430 , - 2849 , - 4156 , - 3983 , - 4698 , - 3933 , - 4056 , - 2699 , - 2230 , - 281 , - 3956 , - 1415 , - 4498 , - 1365 , - 3856 , - 131 , - 2030 , - 2449 , - 3756 , - 3583 , - 4298 , - 3533 , - 3656 , - 2299 , - 1830 , - 4617 , - 3556 , - 1015 , - 4098 , - 965 , - 3456 , - 4467 , - 1630 , - 2049 , - 3356 , - 3183 , - 3898 , - 3133 , - 3256 , - 1899 , - 1430 , - 4217 , - 3156 , - 615 , - 3698 , - 565 , - 3056 , - 4067 , - 1230 , - 1649 , - 2956 , - 2783 , - 3498 , - 2733 , - 2856 , - 1499 , - 1030 , - 3817 , - 2756 , - 215 , - 3298 , - 165 , - 2656 , - 3667 , - 830 , - 1249 , - 2556 , - 2383 , - 3098 , - 2333 , - 2456 , - 1099 , - 630 , - 3417 , - 2356 , - 4551 , - 2898 , - 4501 , - 2256 , - 3267 , - 430 , - 849 , - 2156 , - 1983 , - 2698 , - 1933 , - 2056 , - 699 , - 230 , - 3017 , - 1956 , - 4151 , - 2498 , - 4101 , - 1856 , - 2867 , - 30 , - 449 , - 1756 , - 1583 , - 2298 , - 1533 , - 1656 , - 299 , - 4566 , - 2617 , - 1556 , - 3751 , - 2098 , - 3701 , - 1456 , - 2467 , - 4366 , - 49 , - 1356 , - 1183 , - 1898 , - 1133 , - 1256 , - 4635 , - 4166 , - 2217 , - 1156 , - 3351 , - 1698 , - 3301 , - 1056 , - 2067 , - 3966 , - 4385 , - 956 , - 783 , - 1498 , - 733 , - 856 , - 4235 , - 3766 , - 1817 , - 756 , - 2951 , - 1298 , - 2901 , - 656 , - 1667 , - 3566 , - 3985 , - 556 , - 383 , - 1098 , - 333 , - 456 , - 3835 , - 3366 , - 1417 , - 356 , - 2551 , - 898 , - 2501 , - 256 , - 1267 , - 3166 , - 3585 , - 156 , - 4719 , - 698 , - 4669 , - 56 , - 3435 , - 2966 , - 1017 , - 4692 , - 2151 , - 498 , - 2101 , - 4592 , - 867 , - 2766 , - 3185 , - 4492 , - 4319 , - 298 , - 4269 , - 4392 , - 3035 , - 2566 , - 617 , - 4292 , - 1751 , - 98 , - 1701 , - 4192 , - 467 , - 2366 , - 2785 , - 4092 , - 3919 , - 4634 , - 3869 , - 3992 , - 2635 , - 2166 , - 217 , - 3892 , - 1351 , - 4434 , - 1301 , - 3792 , - 67 , - 1966 , - 2385 , - 3692 , - 3519 , - 4234 , - 3469 , - 3592 , - 2235 , - 1766 , - 4553 , - 3492 , - 951 , - 4034 , - 901 , - 3392 , - 4403 , - 1566 , - 1985 , - 3292 , - 3119 , - 3834 , - 3069 , - 3192 , - 1835 , - 1366 , - 4153 , - 3092 , - 551 , - 3634 , - 501 , - 2992 , - 4003 , - 1166 , - 1585 , - 2892 , - 2719 , - 3434 , - 2669 , - 2792 , - 1435 , - 966 , - 3753 , - 2692 , - 151 , - 3234 , - 101 , - 2592 , - 3603 , - 766 , - 1185 , - 2492 , - 2319 , - 3034 , - 2269 , - 2392 , - 1035 , - 566 , - 3353 , - 2292 , - 4487 , - 2834 , - 4437 , - 2192 , - 3203 , - 366 , - 785 , - 2092 , - 1919 , - 2634 , - 1869 , - 1992 , - 635 , - 166 , - 2953 , - 1892 , - 4087 , - 2434 , - 4037 , - 1792 , - 2803 , - 4702 , - 385 , - 1692 , - 1519 , - 2234 , - 1469 , - 1592 , - 235 , - 4502 , - 2553 , - 1492 , - 3687 , - 2034 , - 3637 , - 1392 , - 2403 , - 4302 , - 4721 , - 1292 , - 1119 , - 1834 , - 1069 , - 1192 , - 4571 , - 4102 , - 2153 , - 1092 , - 3287 , - 1634 , - 3237 , - 992 , - 2003 , - 3902 , - 4321 , - 892 , - 719 , - 1434 , - 669 , - 792 , - 4171 , - 3702 , - 1753 , - 692 , - 2887 , - 1234 , - 2837 , - 592 , - 1603 , - 3502 , - 3921 , - 492 , - 319 , - 1034 , - 269 , - 392 , - 3771 , - 3302 , - 1353 , - 292 , - 2487 , - 834 , - 2437 , - 192 , - 1203 , - 3102 , - 3521 , - 92 , - 4655 , - 634 , - 4605 , - 4728 , - 3371 , - 2902 , - 953 , - 4628 , - 2087 , - 434 , - 2037 , - 4528 , - 803 , - 2702 , - 3121 , - 4428 , - 4255 , - 234 , - 4205 , - 4328 , - 2971 , - 2502 , - 553 , - 4228 , - 1687 , - 34 , - 1637 , - 4128 , - 403 , - 2302 , - 2721 , - 4028 , - 3855 , - 4570 , - 3805 , - 3928 , - 2571 , - 2102 , - 153 , - 3828 , - 1287 , - 4370 , - 1237 , - 3728 , - 3 , - 1902 , - 2321 , - 3628 , - 3455 , - 4170 , - 3405 , - 3528 , - 2171 , - 1702 , - 4489 , - 3428 , - 887 , - 3970 , - 837 , - 3328 , - 4339 , - 1502 , - 1921 , - 3228 , - 3055 , - 3770 , - 3005 , - 3128 , - 1771 , - 1302 , - 4089 , - 3028 , - 487 , - 3570 , - 437 , - 2928 , - 3939 , - 1102 , - 1521 , - 2828 , - 2655 , - 3370 , - 2605 , - 2728 , - 1371 , - 902 , - 3689 , - 2628 , - 87 , - 3170 , - 37 , - 2528 , - 3539 , - 702 , - 1121 , - 2428 , - 2255 , - 2970 , - 2205 , - 2328 , - 971 , - 502 , - 3289 , - 2228 , - 4423 , - 2770 , - 4373 , - 2128 , - 3139 , - 302 , - 721 , - 2028 , - 1855 , - 2570 , - 1805 , - 1928 , - 571 , - 102 , - 2889 , - 1828 , - 4023 , - 2370 , - 3973 , - 1728 , - 2739 , - 4638 , - 321 , - 1628 , - 1455 , - 2170 , - 1405 , - 1528 , - 171 , - 4438 , - 2489 , - 1428 , - 3623 , - 1970 , - 3573 , - 1328 , - 2339 , - 4238 , - 4657 , - 1228 , - 1055 , - 1770 , - 1005 , - 1128 , - 4507 , - 4038 , - 2089 , - 1028 , - 3223 , - 1570 , - 3173 , - 928 , - 1939 , - 3838 , - 4257 , - 828 , - 655 , - 1370 , - 605 , - 728 , - 4107 , - 3638 , - 1689 , - 628 , - 2823 , - 1170 , - 2773 , - 528 , - 1539 , - 3438 , - 3857 , - 428 , - 255 , - 970 , - 205 , - 328 , - 3707 , - 3238 , - 1289 , - 228 , - 2423 , - 770 , - 2373 , - 128 , - 1139 , - 3038 , - 3457 , - 28 , - 4591 , - 570 , - 4541 , - 4664 , - 3307 , - 2838 , - 889 , - 4564 , - 2023 , - 370 , - 1973 , - 4464 , - 739 , - 2638 , - 3057 , - 4364 , - 4191 , - 170 , - 4141 , - 4264 , - 2907 , - 2438 , - 489 , - 4164 , - 1623 , - 4706 , - 1573 , - 4064 , - 339 , - 2238 , - 2657 , - 3964 , - 3791 , - 4506 , - 3741 , - 3864 , - 2507 , - 2038 , - 89 , - 3764 , - 1223 , - 4306 , - 1173 , - 3664 , - 4675 , - 1838 , - 2257 , - 3564 , - 3391 , - 4106 , - 3341 , - 3464 , - 2107 , - 1638 , - 4425 , - 3364 , - 823 , - 3906 , - 773 , - 3264 , - 4275 , - 1438 , - 1857 , - 3164 , - 2991 , - 3706 , - 2941 , - 3064 , - 1707 , - 1238 , - 4025 , - 2964 , - 423 , - 3506 , - 373 , - 2864 , - 3875 , - 1038 , - 1457 , - 2764 , - 2591 , - 3306 , - 2541 , - 2664 , - 1307 , - 838 , - 3625 , - 2564 , - 23 , - 3106 , - 4709 , - 2464 , - 3475 , - 638 , - 1057 , - 2364 , - 2191 , - 2906 , - 2141 , - 2264 , - 907 , - 438 , - 3225 , - 2164 , - 4359 , - 2706 , - 4309 , - 2064 , - 3075 , - 238 , - 657 , - 1964 , - 1791 , - 2506 , - 1741 , - 1864 , - 507 , - 38 , - 2825 , - 1764 , - 3959 , - 2306 , - 3909 , - 1664 , - 2675 , - 4574 , - 257 , - 1564 , - 1391 , - 2106 , - 1341 , - 1464 , - 107 , - 4374 , - 2425 , - 1364 , - 3559 , - 1906 , - 3509 , - 1264 , - 2275 , - 4174 , - 4593 , - 1164 , - 991 , - 1706 , - 941 , - 1064 , - 4443 , - 3974 , - 2025 , - 964 , - 3159 , - 1506 , - 3109 , - 864 , - 1875 , - 3774 , - 4193 , - 764 , - 591 , - 1306 , - 541 , - 664 , - 4043 , - 3574 , - 1625 , - 564 , - 2759 , - 1106 , - 2709 , - 464 , - 1475 , - 3374 , - 3793 , - 364 , - 191 , - 906 , - 141 , - 264 , - 3643 , - 3174 , - 1225 , - 164 , - 2359 , - 706 , - 2309 , - 64 , - 1075 , - 2974 , - 3393 , - 4700 , - 4527 , - 506 , - 4477 , - 4600 , - 3243 , - 2774 , - 825 , - 4500 , - 1959 , - 306 , - 1909 , - 4400 , - 675 , - 2574 , - 2993 , - 4300 , - 4127 , - 106 , - 4077 , - 4200 , - 2843 , - 2374 , - 425 , - 4100 , - 1559 , - 4642 , - 1509 , - 4000 , - 275 , - 2174 , - 2593 , - 3900 , - 3727 , - 4442 , - 3677 , - 3800 , - 2443 , - 1974 , - 25 , - 3700 , - 1159 , - 4242 , - 1109 , - 3600 , - 4611 , - 1774 , - 2193 , - 3500 , - 3327 , - 4042 , - 3277 , - 3400 , - 2043 , - 1574 , - 4361 , - 3300 , - 759 , - 3842 , - 709 , - 3200 , - 4211 , - 1374 , - 1793 , - 3100 , - 2927 , - 3642 , - 2877 , - 3000 , - 1643 , - 1174 , - 3961 , - 2900 , - 359 , - 3442 , - 309 , - 2800 , - 3811 , - 974 , - 1393 , - 2700 , - 2527 , - 3242 , - 2477 , - 2600 , - 1243 , - 774 , - 3561 , - 2500 , - 4695 , - 3042 , - 4645 , - 2400 , - 3411 , - 574 , - 993 , - 2300 , - 2127 , - 2842 , - 2077 , - 2200 , - 843 , - 374 , - 3161 , - 2100 , - 4295 , - 2642 , - 4245 , - 2000 , - 3011 , - 174 , - 593 , - 1900 , - 1727 , - 2442 , - 1677 , - 1800 , - 443 , - 4710 , - 2761 , - 1700 , - 3895 , - 2242 , - 3845 , - 1600 , - 2611 , - 4510 , - 193 , - 1500 , - 1327 , - 2042 , - 1277 , - 1400 , - 43 , - 4310 , - 2361 , - 1300 , - 3495 , - 1842 , - 3445 , - 1200 , - 2211 , - 4110 , - 4529 , - 1100 , - 927 , - 1642 , - 877 , - 1000 , - 4379 , - 3910 , - 1961 , - 900 , - 3095 , - 1442 , - 3045 , - 800 , - 1811 , - 3710 , - 4129 , - 700 , - 527 , - 1242 , - 477 , - 600 , - 3979 , - 3510 , - 1561 , - 500 , - 2695 , - 1042 , - 2645 , - 400 , - 1411 , - 3310 , - 3729 , - 300 , - 127 , - 842 , - 77 , - 200 , - 3579 , - 3110 , - 1161 , - 100 , - 2295 , - 642 , - 2245 , - 0 , - 3311 , - 3982 , - 2013 , - 2204 , - 4555 , - 4266 , - 1337 , - 568 , - 1959 , - 710 , - 1621 , - 4692 , - 323 , - 2914 , - 2865 , - 176 , - 4447 , - 1278 , - 269 , - 1420 , - 4731 , - 602 , - 3433 , - 3624 , - 1175 , - 886 , - 2757 , - 1988 , - 3379 , - 2130 , - 3041 , - 1312 , - 1743 , - 4334 , - 4285 , - 1596 , - 1067 , - 2698 , - 1689 , - 2840 , - 1351 , - 2022 , - 53 , - 244 , - 2595 , - 2306 , - 4177 , - 3408 , - 4799 , - 3550 , - 4461 , - 2732 , - 3163 , - 954 , - 905 , - 3016 , - 2487 , - 4118 , - 3109 , - 4260 , - 2771 , - 3442 , - 1473 , - 1664 , - 4015 , - 3726 , - 797 , - 28 , - 1419 , - 170 , - 1081 , - 4152 , - 4583 , - 2374 , - 2325 , - 4436 , - 3907 , - 738 , - 4529 , - 880 , - 4191 , - 62 , - 2893 , - 3084 , - 635 , - 346 , - 2217 , - 1448 , - 2839 , - 1590 , - 2501 , - 772 , - 1203 , - 3794 , - 3745 , - 1056 , - 527 , - 2158 , - 1149 , - 2300 , - 811 , - 1482 , - 4313 , - 4504 , - 2055 , - 1766 , - 3637 , - 2868 , - 4259 , - 3010 , - 3921 , - 2192 , - 2623 , - 414 , - 365 , - 2476 , - 1947 , - 3578 , - 2569 , - 3720 , - 2231 , - 2902 , - 933 , - 1124 , - 3475 , - 3186 , - 257 , - 4288 , - 879 , - 4430 , - 541 , - 3612 , - 4043 , - 1834 , - 1785 , - 3896 , - 3367 , - 198 , - 3989 , - 340 , - 3651 , - 4322 , - 2353 , - 2544 , - 95 , - 4606 , - 1677 , - 908 , - 2299 , - 1050 , - 1961 , - 232 , - 663 , - 3254 , - 3205 , - 516 , - 4787 , - 1618 , - 609 , - 1760 , - 271 , - 942 , - 3773 , - 3964 , - 1515 , - 1226 , - 3097 , - 2328 , - 3719 , - 2470 , - 3381 , - 1652 , - 2083 , - 4674 , - 4625 , - 1936 , - 1407 , - 3038 , - 2029 , - 3180 , - 1691 , - 2362 , - 393 , - 584 , - 2935 , - 2646 , - 4517 , - 3748 , - 339 , - 3890 , - 1 , - 3072 , - 3503 , - 1294 , - 1245 , - 3356 , - 2827 , - 4458 , - 3449 , - 4600 , - 3111 , - 3782 , - 1813 , - 2004 , - 4355 , - 4066 , - 1137 , - 368 , - 1759 , - 510 , - 1421 , - 4492 , - 123 , - 2714 , - 2665 , - 4776 , - 4247 , - 1078 , - 69 , - 1220 , - 4531 , - 402 , - 3233 , - 3424 , - 975 , - 686 , - 2557 , - 1788 , - 3179 , - 1930 , - 2841 , - 1112 , - 1543 , - 4134 , - 4085 , - 1396 , - 867 , - 2498 , - 1489 , - 2640 , - 1151 , - 1822 , - 4653 , - 44 , - 2395 , - 2106 , - 3977 , - 3208 , - 4599 , - 3350 , - 4261 , - 2532 , - 2963 , - 754 , - 705 , - 2816 , - 2287 , - 3918 , - 2909 , - 4060 , - 2571 , - 3242 , - 1273 , - 1464 , - 3815 , - 3526 , - 597 , - 4628 , - 1219 , - 4770 , - 881 , - 3952 , - 4383 , - 2174 , - 2125 , - 4236 , - 3707 , - 538 , - 4329 , - 680 , - 3991 , - 4662 , - 2693 , - 2884 , - 435 , - 146 , - 2017 , - 1248 , - 2639 , - 1390 , - 2301 , - 572 , - 1003 , - 3594 , - 3545 , - 856 , - 327 , - 1958 , - 949 , - 2100 , - 611 , - 1282 , - 4113 , - 4304 , - 1855 , - 1566 , - 3437 , - 2668 , - 4059 , - 2810 , - 3721 , - 1992 , - 2423 , - 214 , - 165 , - 2276 , - 1747 , - 3378 , - 2369 , - 3520 , - 2031 , - 2702 , - 733 , - 924 , - 3275 , - 2986 , - 57 , - 4088 , - 679 , - 4230 , - 341 , - 3412 , - 3843 , - 1634 , - 1585 , - 3696 , - 3167 , - 4798 , - 3789 , - 140 , - 3451 , - 4122 , - 2153 , - 2344 , - 4695 , - 4406 , - 1477 , - 708 , - 2099 , - 850 , - 1761 , - 32 , - 463 , - 3054 , - 3005 , - 316 , - 4587 , - 1418 , - 409 , - 1560 , - 71 , - 742 , - 3573 , - 3764 , - 1315 , - 1026 , - 2897 , - 2128 , - 3519 , - 2270 , - 3181 , - 1452 , - 1883 , - 4474 , - 4425 , - 1736 , - 1207 , - 2838 , - 1829 , - 2980 , - 1491 , - 2162 , - 193 , - 384 , - 2735 , - 2446 , - 4317 , - 3548 , - 139 , - 3690 , - 4601 , - 2872 , - 3303 , - 1094 , - 1045 , - 3156 , - 2627 , - 4258 , - 3249 , - 4400 , - 2911 , - 3582 , - 1613 , - 1804 , - 4155 , - 3866 , - 937 , - 168 , - 1559 , - 310 , - 1221 , - 4292 , - 4723 , - 2514 , - 2465 , - 4576 , - 4047 , - 878 , - 4669 , - 1020 , - 4331 , - 202 , - 3033 , - 3224 , - 775 , - 486 , - 2357 , - 1588 , - 2979 , - 1730 , - 2641 , - 912 , - 1343 , - 3934 , - 3885 , - 1196 , - 667 , - 2298 , - 1289 , - 2440 , - 951 , - 1622 , - 4453 , - 4644 , - 2195 , - 1906 , - 3777 , - 3008 , - 4399 , - 3150 , - 4061 , - 2332 , - 2763 , - 554 , - 505 , - 2616 , - 2087 , - 3718 , - 2709 , - 3860 , - 2371 , - 3042 , - 1073 , - 1264 , - 3615 , - 3326 , - 397 , - 4428 , - 1019 , - 4570 , - 681 , - 3752 , - 4183 , - 1974 , - 1925 , - 4036 , - 3507 , - 338 , - 4129 , - 480 , - 3791 , - 4462 , - 2493 , - 2684 , - 235 , - 4746 , - 1817 , - 1048 , - 2439 , - 1190 , - 2101 , - 372 , - 803 , - 3394 , - 3345 , - 656 , - 127 , - 1758 , - 749 , - 1900 , - 411 , - 1082 , - 3913 , - 4104 , - 1655 , - 1366 , - 3237 , - 2468 , - 3859 , - 2610 , - 3521 , - 1792 , - 2223 , - 14 , - 4765 , - 2076 , - 1547 , - 3178 , - 2169 , - 3320 , - 1831 , - 2502 , - 533 , - 724 , - 3075 , - 2786 , - 4657 , - 3888 , - 479 , - 4030 , - 141 , - 3212 , - 3643 , - 1434 , - 1385 , - 3496 , - 2967 , - 4598 , - 3589 , - 4740 , - 3251 , - 3922 , - 1953 , - 2144 , - 4495 , - 4206 , - 1277 , - 508 , - 1899 , - 650 , - 1561 , - 4632 , - 263 , - 2854 , - 2805 , - 116 , - 4387 , - 1218 , - 209 , - 1360 , - 4671 , - 542 , - 3373 , - 3564 , - 1115 , - 826 , - 2697 , - 1928 , - 3319 , - 2070 , - 2981 , - 1252 , - 1683 , - 4274 , - 4225 , - 1536 , - 1007 , - 2638 , - 1629 , - 2780 , - 1291 , - 1962 , - 4793 , - 184 , - 2535 , - 2246 , - 4117 , - 3348 , - 4739 , - 3490 , - 4401 , - 2672 , - 3103 , - 894 , - 845 , - 2956 , - 2427 , - 4058 , - 3049 , - 4200 , - 2711 , - 3382 , - 1413 , - 1604 , - 3955 , - 3666 , - 737 , - 4768 , - 1359 , - 110 , - 1021 , - 4092 , - 4523 , - 2314 , - 2265 , - 4376 , - 3847 , - 678 , - 4469 , - 820 , - 4131 , - 2 , - 2833 , - 3024 , - 575 , - 286 , - 2157 , - 1388 , - 2779 , - 1530 , - 2441 , - 712 , - 1143 , - 3734 , - 3685 , - 996 , - 467 , - 2098 , - 1089 , - 2240 , - 751 , - 1422 , - 4253 , - 4444 , - 1995 , - 1706 , - 3577 , - 2808 , - 4199 , - 2950 , - 3861 , - 2132 , - 2563 , - 354 , - 305 , - 2416 , - 1887 , - 3518 , - 2509 , - 3660 , - 2171 , - 2842 , - 873 , - 1064 , - 3415 , - 3126 , - 197 , - 4228 , - 819 , - 4370 , - 481 , - 3552 , - 3983 , - 1774 , - 1725 , - 3836 , - 3307 , - 138 , - 3929 , - 280 , - 3591 , - 4262 , - 2293 , - 2484 , - 35 , - 4546 , - 1617 , - 848 , - 2239 , - 990 , - 1901 , - 172 , - 603 , - 3194 , - 3145 , - 456 , - 4727 , - 1558 , - 549 , - 1700 , - 211 , - 882 , - 3713 , - 3904 , - 1455 , - 1166 , - 3037 , - 2268 , - 3659 , - 2410 , - 3321 , - 1592 , - 2023 , - 4614 , - 4565 , - 1876 , - 1347 , - 2978 , - 1969 , - 3120 , - 1631 , - 2302 , - 333 , - 524 , - 2875 , - 2586 , - 4457 , - 3688 , - 279 , - 3830 , - 4741 , - 3012 , - 3443 , - 1234 , - 1185 , - 3296 , - 2767 , - 4398 , - 3389 , - 4540 , - 3051 , - 3722 , - 1753 , - 1944 , - 4295 , - 4006 , - 1077 , - 308 , - 1699 , - 450 , - 1361 , - 4432 , - 63 , - 2654 , - 2605 , - 4716 , - 4187 , - 1018 , - 9 , - 1160 , - 4471 , - 342 , - 3173 , - 3364 , - 915 , - 626 , - 2497 , - 1728 , - 3119 , - 1870 , - 2781 , - 1052 , - 1483 , - 4074 , - 4025 , - 1336 , - 807 , - 2438 , - 1429 , - 2580 , - 1091 , - 1762 , - 4593 , - 4784 , - 2335 , - 2046 , - 3917 , - 3148 , - 4539 , - 3290 , - 4201 , - 2472 , - 2903 , - 694 , - 645 , - 2756 , - 2227 , - 3858 , - 2849 , - 4000 , - 2511 , - 3182 , - 1213 , - 1404 , - 3755 , - 3466 , - 537 , - 4568 , - 1159 , - 4710 , - 821 , - 3892 , - 4323 , - 2114 , - 2065 , - 4176 , - 3647 , - 478 , - 4269 , - 620 , - 3931 , - 4602 , - 2633 , - 2824 , - 375 , - 86 , - 1957 , - 1188 , - 2579 , - 1330 , - 2241 , - 512 , - 943 , - 3534 , - 3485 , - 796 , - 267 , - 1898 , - 889 , - 2040 , - 551 , - 1222 , - 4053 , - 4244 , - 1795 , - 1506 , - 3377 , - 2608 , - 3999 , - 2750 , - 3661 , - 1932 , - 2363 , - 154 , - 105 , - 2216 , - 1687 , - 3318 , - 2309 , - 3460 , - 1971 , - 2642 , - 673 , - 864 , - 3215 , - 2926 , - 4797 , - 4028 , - 619 , - 4170 , - 281 , - 3352 , - 3783 , - 1574 , - 1525 , - 3636 , - 3107 , - 4738 , - 3729 , - 80 , - 3391 , - 4062 , - 2093 , - 2284 , - 4635 , - 4346 , - 1417 , - 648 , - 2039 , - 790 , - 1701 , - 4772 , - 403 , - 2994 , - 2945 , - 256 , - 4527 , - 1358 , - 349 , - 1500 , - 11 , - 682 , - 3513 , - 3704 , - 1255 , - 966 , - 2837 , - 2068 , - 3459 , - 2210 , - 3121 , - 1392 , - 1823 , - 4414 , - 4365 , - 1676 , - 1147 , - 2778 , - 1769 , - 2920 , - 1431 , - 2102 , - 133 , - 324 , - 2675 , - 2386 , - 4257 , - 3488 , - 79 , - 3630 , - 4541 , - 2812 , - 3243 , - 1034 , - 985 , - 3096 , - 2567 , - 4198 , - 3189 , - 4340 , - 2851 , - 3522 , - 1553 , - 1744 , - 4095 , - 3806 , - 877 , - 108 , - 1499 , - 250 , - 1161 , - 4232 , - 4663 , - 2454 , - 2405 , - 4516 , - 3987 , - 818 , - 4609 , - 960 , - 4271 , - 142 , - 2973 , - 3164 , - 715 , - 426 , - 2297 , - 1528 , - 2919 , - 1670 , - 2581 , - 852 , - 1283 , - 3874 , - 3825 , - 1136 , - 607 , - 2238 , - 1229 , - 2380 , - 891 , - 1562 , - 4393 , - 4584 , - 2135 , - 1846 , - 3717 , - 2948 , - 4339 , - 3090 , - 4001 , - 2272 , - 2703 , - 494 , - 445 , - 2556 , - 2027 , - 3658 , - 2649 , - 3800 , - 2311 , - 2982 , - 1013 , - 1204 , - 3555 , - 3266 , - 337 , - 4368 , - 959 , - 4510 , - 621 , - 3692 , - 4123 , - 1914 , - 1865 , - 3976 , - 3447 , - 278 , - 4069 , - 420 , - 3731 , - 4402 , - 2433 , - 2624 , - 175 , - 4686 , - 1757 , - 988 , - 2379 , - 1130 , - 2041 , - 312 , - 743 , - 3334 , - 3285 , - 596 , - 67 , - 1698 , - 689 , - 1840 , - 351 , - 1022 , - 3853 , - 4044 , - 1595 , - 1306 , - 3177 , - 2408 , - 3799 , - 2550 , - 3461 , - 1732 , - 2163 , - 4754 , - 4705 , - 2016 , - 1487 , - 3118 , - 2109 , - 3260 , - 1771 , - 2442 , - 473 , - 664 , - 3015 , - 2726 , - 4597 , - 3828 , - 419 , - 3970 , - 81 , - 3152 , - 3583 , - 1374 , - 1325 , - 3436 , - 2907 , - 4538 , - 3529 , - 4680 , - 3191 , - 3862 , - 1893 , - 2084 , - 4435 , - 4146 , - 1217 , - 448 , - 1839 , - 590 , - 1501 , - 4572 , - 203 , - 2794 , - 2745 , - 56 , - 4327 , - 1158 , - 149 , - 1300 , - 4611 , - 482 , - 3313 , - 3504 , - 1055 , - 766 , - 2637 , - 1868 , - 3259 , - 2010 , - 2921 , - 1192 , - 1623 , - 4214 , - 4165 , - 1476 , - 947 , - 2578 , - 1569 , - 2720 , - 1231 , - 1902 , - 4733 , - 124 , - 2475 , - 2186 , - 4057 , - 3288 , - 4679 , - 3430 , - 4341 , - 2612 , - 3043 , - 834 , - 785 , - 2896 , - 2367 , - 3998 , - 2989 , - 4140 , - 2651 , - 3322 , - 1353 , - 1544 , - 3895 , - 3606 , - 677 , - 4708 , - 1299 , - 50 , - 961 , - 4032 , - 4463 , - 2254 , - 2205 , - 4316 , - 3787 , - 618 , - 4409 , - 760 , - 4071 , - 4742 , - 2773 , - 2964 , - 515 , - 226 , - 2097 , - 1328 , - 2719 , - 1470 , - 2381 , - 652 , - 1083 , - 3674 , - 3625 , - 936 , - 407 , - 2038 , - 1029 , - 2180 , - 691 , - 1362 , - 4193 , - 4384 , - 1935 , - 1646 , - 3517 , - 2748 , - 4139 , - 2890 , - 3801 , - 2072 , - 2503 , - 294 , - 245 , - 2356 , - 1827 , - 3458 , - 2449 , - 3600 , - 2111 , - 2782 , - 813 , - 1004 , - 3355 , - 3066 , - 137 , - 4168 , - 759 , - 4310 , - 421 , - 3492 , - 3923 , - 1714 , - 1665 , - 3776 , - 3247 , - 78 , - 3869 , - 220 , - 3531 , - 4202 , - 2233 , - 2424 , - 4775 , - 4486 , - 1557 , - 788 , - 2179 , - 930 , - 1841 , - 112 , - 543 , - 3134 , - 3085 , - 396 , - 4667 , - 1498 , - 489 , - 1640 , - 151 , - 822 , - 3653 , - 3844 , - 1395 , - 1106 , - 2977 , - 2208 , - 3599 , - 2350 , - 3261 , - 1532 , - 1963 , - 4554 , - 4505 , - 1816 , - 1287 , - 2918 , - 1909 , - 3060 , - 1571 , - 2242 , - 273 , - 464 , - 2815 , - 2526 , - 4397 , - 3628 , - 219 , - 3770 , - 4681 , - 2952 , - 3383 , - 1174 , - 1125 , - 3236 , - 2707 , - 4338 , - 3329 , - 4480 , - 2991 , - 3662 , - 1693 , - 1884 , - 4235 , - 3946 , - 1017 , - 248 , - 1639 , - 390 , - 1301 , - 4372 , - 3 , - 2594 , - 2545 , - 4656 , - 4127 , - 958 , - 4749 , - 1100 , - 4411 , - 282 , - 3113 , - 3304 , - 855 , - 566 , - 2437 , - 1668 , - 3059 , - 1810 , - 2721 , - 992 , - 1423 , - 4014 , - 3965 , - 1276 , - 747 , - 2378 , - 1369 , - 2520 , - 1031 , - 1702 , - 4533 , - 4724 , - 2275 , - 1986 , - 3857 , - 3088 , - 4479 , - 3230 , - 4141 , - 2412 , - 2843 , - 634 , - 585 , - 2696 , - 2167 , - 3798 , - 2789 , - 3940 , - 2451 , - 3122 , - 1153 , - 1344 , - 3695 , - 3406 , - 477 , - 4508 , - 1099 , - 4650 , - 761 , - 3832 , - 4263 , - 2054 , - 2005 , - 4116 , - 3587 , - 418 , - 4209 , - 560 , - 3871 , - 4542 , - 2573 , - 2764 , - 315 , - 26 , - 1897 , - 1128 , - 2519 , - 1270 , - 2181 , - 452 , - 883 , - 3474 , - 3425 , - 736 , - 207 , - 1838 , - 829 , - 1980 , - 491 , - 1162 , - 3993 , - 4184 , - 1735 , - 1446 , - 3317 , - 2548 , - 3939 , - 2690 , - 3601 , - 1872 , - 2303 , - 94 , - 45 , - 2156 , - 1627 , - 3258 , - 2249 , - 3400 , - 1911 , - 2582 , - 613 , - 804 , - 3155 , - 2866 , - 4737 , - 3968 , - 559 , - 4110 , - 221 , - 3292 , - 3723 , - 1514 , - 1465 , - 3576 , - 3047 , - 4678 , - 3669 , - 20 , - 3331 , - 4002 , - 2033 , - 2224 , - 4575 , - 4286 , - 1357 , - 588 , - 1979 , - 730 , - 1641 , - 4712 , - 343 , - 2934 , - 2885 , - 196 , - 4467 , - 1298 , - 289 , - 1440 , - 4751 , - 622 , - 3453 , - 3644 , - 1195 , - 906 , - 2777 , - 2008 , - 3399 , - 2150 , - 3061 , - 1332 , - 1763 , - 4354 , - 4305 , - 1616 , - 1087 , - 2718 , - 1709 , - 2860 , - 1371 , - 2042 , - 73 , - 264 , - 2615 , - 2326 , - 4197 , - 3428 , - 19 , - 3570 , - 4481 , - 2752 , - 3183 , - 974 , - 925 , - 3036 , - 2507 , - 4138 , - 3129 , - 4280 , - 2791 , - 3462 , - 1493 , - 1684 , - 4035 , - 3746 , - 817 , - 48 , - 1439 , - 190 , - 1101 , - 4172 , - 4603 , - 2394 , - 2345 , - 4456 , - 3927 , - 758 , - 4549 , - 900 , - 4211 , - 82 , - 2913 , - 3104 , - 655 , - 366 , - 2237 , - 1468 , - 2859 , - 1610 , - 2521 , - 792 , - 1223 , - 3814 , - 3765 , - 1076 , - 547 , - 2178 , - 1169 , - 2320 , - 831 , - 1502 , - 4333 , - 4524 , - 2075 , - 1786 , - 3657 , - 2888 , - 4279 , - 3030 , - 3941 , - 2212 , - 2643 , - 434 , - 385 , - 2496 , - 1967 , - 3598 , - 2589 , - 3740 , - 2251 , - 2922 , - 953 , - 1144 , - 3495 , - 3206 , - 277 , - 4308 , - 899 , - 4450 , - 561 , - 3632 , - 4063 , - 1854 , - 1805 , - 3916 , - 3387 , - 218 , - 4009 , - 360 , - 3671 , - 4342 , - 2373 , - 2564 , - 115 , - 4626 , - 1697 , - 928 , - 2319 , - 1070 , - 1981 , - 252 , - 683 , - 3274 , - 3225 , - 536 , - 7 , - 1638 , - 629 , - 1780 , - 291 , - 962 , - 3793 , - 3984 , - 1535 , - 1246 , - 3117 , - 2348 , - 3739 , - 2490 , - 3401 , - 1672 , - 2103 , - 4694 , - 4645 , - 1956 , - 1427 , - 3058 , - 2049 , - 3200 , - 1711 , - 2382 , - 413 , - 604 , - 2955 , - 2666 , - 4537 , - 3768 , - 359 , - 3910 , - 21 , - 3092 , - 3523 , - 1314 , - 1265 , - 3376 , - 2847 , - 4478 , - 3469 , - 4620 , - 3131 , - 3802 , - 1833 , - 2024 , - 4375 , - 4086 , - 1157 , - 388 , - 1779 , - 530 , - 1441 , - 4512 , - 143 , - 2734 , - 2685 , - 4796 , - 4267 , - 1098 , - 89 , - 1240 , - 4551 , - 422 , - 3253 , - 3444 , - 995 , - 706 , - 2577 , - 1808 , - 3199 , - 1950 , - 2861 , - 1132 , - 1563 , - 4154 , - 4105 , - 1416 , - 887 , - 2518 , - 1509 , - 2660 , - 1171 , - 1842 , - 4673 , - 64 , - 2415 , - 2126 , - 3997 , - 3228 , - 4619 , - 3370 , - 4281 , - 2552 , - 2983 , - 774 , - 725 , - 2836 , - 2307 , - 3938 , - 2929 , - 4080 , - 2591 , - 3262 , - 1293 , - 1484 , - 3835 , - 3546 , - 617 , - 4648 , - 1239 , - 4790 , - 901 , - 3972 , - 4403 , - 2194 , - 2145 , - 4256 , - 3727 , - 558 , - 4349 , - 700 , - 4011 , - 4682 , - 2713 , - 2904 , - 455 , - 166 , - 2037 , - 1268 , - 2659 , - 1410 , - 2321 , - 592 , - 1023 , - 3614 , - 3565 , - 876 , - 347 , - 1978 , - 969 , - 2120 , - 631 , - 1302 , - 4133 , - 4324 , - 1875 , - 1586 , - 3457 , - 2688 , - 4079 , - 2830 , - 3741 , - 2012 , - 2443 , - 234 , - 185 , - 2296 , - 1767 , - 3398 , - 2389 , - 3540 , - 2051 , - 2722 , - 753 , - 944 , - 3295 , - 3006 , - 77 , - 4108 , - 699 , - 4250 , - 361 , - 3432 , - 3863 , - 1654 , - 1605 , - 3716 , - 3187 , - 18 , - 3809 , - 160 , - 3471 , - 4142 , - 2173 , - 2364 , - 4715 , - 4426 , - 1497 , - 728 , - 2119 , - 870 , - 1781 , - 52 , - 483 , - 3074 , - 3025 , - 336 , - 4607 , - 1438 , - 429 , - 1580 , - 91 , - 762 , - 3593 , - 3784 , - 1335 , - 1046 , - 2917 , - 2148 , - 3539 , - 2290 , - 3201 , - 1472 , - 1903 , - 4494 , - 4445 , - 1756 , - 1227 , - 2858 , - 1849 , - 3000 , - 1511 , - 2182 , - 213 , - 404 , - 2755 , - 2466 , - 4337 , - 3568 , - 159 , - 3710 , - 4621 , - 2892 , - 3323 , - 1114 , - 1065 , - 3176 , - 2647 , - 4278 , - 3269 , - 4420 , - 2931 , - 3602 , - 1633 , - 1824 , - 4175 , - 3886 , - 957 , - 188 , - 1579 , - 330 , - 1241 , - 4312 , - 4743 , - 2534 , - 2485 , - 4596 , - 4067 , - 898 , - 4689 , - 1040 , - 4351 , - 222 , - 3053 , - 3244 , - 795 , - 506 , - 2377 , - 1608 , - 2999 , - 1750 , - 2661 , - 932 , - 1363 , - 3954 , - 3905 , - 1216 , - 687 , - 2318 , - 1309 , - 2460 , - 971 , - 1642 , - 4473 , - 4664 , - 2215 , - 1926 , - 3797 , - 3028 , - 4419 , - 3170 , - 4081 , - 2352 , - 2783 , - 574 , - 525 , - 2636 , - 2107 , - 3738 , - 2729 , - 3880 , - 2391 , - 3062 , - 1093 , - 1284 , - 3635 , - 3346 , - 417 , - 4448 , - 1039 , - 4590 , - 701 , - 3772 , - 4203 , - 1994 , - 1945 , - 4056 , - 3527 , - 358 , - 4149 , - 500 , - 3811 , - 4482 , - 2513 , - 2704 , - 255 , - 4766 , - 1837 , - 1068 , - 2459 , - 1210 , - 2121 , - 392 , - 823 , - 3414 , - 3365 , - 676 , - 147 , - 1778 , - 769 , - 1920 , - 431 , - 1102 , - 3933 , - 4124 , - 1675 , - 1386 , - 3257 , - 2488 , - 3879 , - 2630 , - 3541 , - 1812 , - 2243 , - 34 , - 4785 , - 2096 , - 1567 , - 3198 , - 2189 , - 3340 , - 1851 , - 2522 , - 553 , - 744 , - 3095 , - 2806 , - 4677 , - 3908 , - 499 , - 4050 , - 161 , - 3232 , - 3663 , - 1454 , - 1405 , - 3516 , - 2987 , - 4618 , - 3609 , - 4760 , - 3271 , - 3942 , - 1973 , - 2164 , - 4515 , - 4226 , - 1297 , - 528 , - 1919 , - 670 , - 1581 , - 4652 , - 283 , - 2874 , - 2825 , - 136 , - 4407 , - 1238 , - 229 , - 1380 , - 4691 , - 562 , - 3393 , - 3584 , - 1135 , - 846 , - 2717 , - 1948 , - 3339 , - 2090 , - 3001 , - 1272 , - 1703 , - 4294 , - 4245 , - 1556 , - 1027 , - 2658 , - 1649 , - 2800 , - 1311 , - 1982 , - 13 , - 204 , - 2555 , - 2266 , - 4137 , - 3368 , - 4759 , - 3510 , - 4421 , - 2692 , - 3123 , - 914 , - 865 , - 2976 , - 2447 , - 4078 , - 3069 , - 4220 , - 2731 , - 3402 , - 1433 , - 1624 , - 3975 , - 3686 , - 757 , - 4788 , - 1379 , - 130 , - 1041 , - 4112 , - 4543 , - 2334 , - 2285 , - 4396 , - 3867 , - 698 , - 4489 , - 840 , - 4151 , - 22 , - 2853 , - 3044 , - 595 , - 306 , - 2177 , - 1408 , - 2799 , - 1550 , - 2461 , - 732 , - 1163 , - 3754 , - 3705 , - 1016 , - 487 , - 2118 , - 1109 , - 2260 , - 771 , - 1442 , - 4273 , - 4464 , - 2015 , - 1726 , - 3597 , - 2828 , - 4219 , - 2970 , - 3881 , - 2152 , - 2583 , - 374 , - 325 , - 2436 , - 1907 , - 3538 , - 2529 , - 3680 , - 2191 , - 2862 , - 893 , - 1084 , - 3435 , - 3146 , - 217 , - 4248 , - 839 , - 4390 , - 501 , - 3572 , - 4003 , - 1794 , - 1745 , - 3856 , - 3327 , - 158 , - 3949 , - 300 , - 3611 , - 4282 , - 2313 , - 2504 , - 55 , - 4566 , - 1637 , - 868 , - 2259 , - 1010 , - 1921 , - 192 , - 623 , - 3214 , - 3165 , - 476 , - 4747 , - 1578 , - 569 , - 1720 , - 231 , - 902 , - 3733 , - 3924 , - 1475 , - 1186 , - 3057 , - 2288 , - 3679 , - 2430 , - 3341 , - 1612 , - 2043 , - 4634 , - 4585 , - 1896 , - 1367 , - 2998 , - 1989 , - 3140 , - 1651 , - 2322 , - 353 , - 544 , - 2895 , - 2606 , - 4477 , - 3708 , - 299 , - 3850 , - 4761 , - 3032 , - 3463 , - 1254 , - 1205 , - 3316 , - 2787 , - 4418 , - 3409 , - 4560 , - 3071 , - 3742 , - 1773 , - 1964 , - 4315 , - 4026 , - 1097 , - 328 , - 1719 , - 470 , - 1381 , - 4452 , - 83 , - 2674 , - 2625 , - 4736 , - 4207 , - 1038 , - 29 , - 1180 , - 4491 , - 362 , - 3193 , - 3384 , - 935 , - 646 , - 2517 , - 1748 , - 3139 , - 1890 , - 2801 , - 1072 , - 1503 , - 4094 , - 4045 , - 1356 , - 827 , - 2458 , - 1449 , - 2600 , - 1111 , - 1782 , - 4613 , - 4 , - 2355 , - 2066 , - 3937 , - 3168 , - 4559 , - 3310 , - 4221 , - 2492 , - 2923 , - 714 , - 665 , - 2776 , - 2247 , - 3878 , - 2869 , - 4020 , - 2531 , - 3202 , - 1233 , - 1424 , - 3775 , - 3486 , - 557 , - 4588 , - 1179 , - 4730 , - 841 , - 3912 , - 4343 , - 2134 , - 2085 , - 4196 , - 3667 , - 498 , - 4289 , - 640 , - 3951 , - 4622 , - 2653 , - 2844 , - 395 , - 106 , - 1977 , - 1208 , - 2599 , - 1350 , - 2261 , - 532 , - 963 , - 3554 , - 3505 , - 816 , - 287 , - 1918 , - 909 , - 2060 , - 571 , - 1242 , - 4073 , - 4264 , - 1815 , - 1526 , - 3397 , - 2628 , - 4019 , - 2770 , - 3681 , - 1952 , - 2383 , - 174 , - 125 , - 2236 , - 1707 , - 3338 , - 2329 , - 3480 , - 1991 , - 2662 , - 693 , - 884 , - 3235 , - 2946 , - 17 , - 4048 , - 639 , - 4190 , - 301 , - 3372 , - 3803 , - 1594 , - 1545 , - 3656 , - 3127 , - 4758 , - 3749 , - 100 , - 3411 , - 4082 , - 2113 , - 2304 , - 4655 , - 4366 , - 1437 , - 668 , - 2059 , - 810 , - 1721 , - 4792 , - 423 , - 3014 , - 2965 , - 276 , - 4547 , - 1378 , - 369 , - 1520 , - 31 , - 702 , - 3533 , - 3724 , - 1275 , - 986 , - 2857 , - 2088 , - 3479 , - 2230 , - 3141 , - 1412 , - 1843 , - 4434 , - 4385 , - 1696 , - 1167 , - 2798 , - 1789 , - 2940 , - 1451 , - 2122 , - 153 , - 344 , - 2695 , - 2406 , - 4277 , - 3508 , - 99 , - 3650 , - 4561 , - 2832 , - 3263 , - 1054 , - 1005 , - 3116 , - 2587 , - 4218 , - 3209 , - 4360 , - 2871 , - 3542 , - 1573 , - 1764 , - 4115 , - 3826 , - 897 , - 128 , - 1519 , - 270 , - 1181 , - 4252 , - 4683 , - 2474 , - 2425 , - 4536 , - 4007 , - 838 , - 4629 , - 980 , - 4291 , - 162 , - 2993 , - 3184 , - 735 , - 446 , - 2317 , - 1548 , - 2939 , - 1690 , - 2601 , - 872 , - 1303 , - 3894 , - 3845 , - 1156 , - 627 , - 2258 , - 1249 , - 2400 , - 911 , - 1582 , - 4413 , - 4604 , - 2155 , - 1866 , - 3737 , - 2968 , - 4359 , - 3110 , - 4021 , - 2292 , - 2723 , - 514 , - 465 , - 2576 , - 2047 , - 3678 , - 2669 , - 3820 , - 2331 , - 3002 , - 1033 , - 1224 , - 3575 , - 3286 , - 357 , - 4388 , - 979 , - 4530 , - 641 , - 3712 , - 4143 , - 1934 , - 1885 , - 3996 , - 3467 , - 298 , - 4089 , - 440 , - 3751 , - 4422 , - 2453 , - 2644 , - 195 , - 4706 , - 1777 , - 1008 , - 2399 , - 1150 , - 2061 , - 332 , - 763 , - 3354 , - 3305 , - 616 , - 87 , - 1718 , - 709 , - 1860 , - 371 , - 1042 , - 3873 , - 4064 , - 1615 , - 1326 , - 3197 , - 2428 , - 3819 , - 2570 , - 3481 , - 1752 , - 2183 , - 4774 , - 4725 , - 2036 , - 1507 , - 3138 , - 2129 , - 3280 , - 1791 , - 2462 , - 493 , - 684 , - 3035 , - 2746 , - 4617 , - 3848 , - 439 , - 3990 , - 101 , - 3172 , - 3603 , - 1394 , - 1345 , - 3456 , - 2927 , - 4558 , - 3549 , - 4700 , - 3211 , - 3882 , - 1913 , - 2104 , - 4455 , - 4166 , - 1237 , - 468 , - 1859 , - 610 , - 1521 , - 4592 , - 223 , - 2814 , - 2765 , - 76 , - 4347 , - 1178 , - 169 , - 1320 , - 4631 , - 502 , - 3333 , - 3524 , - 1075 , - 786 , - 2657 , - 1888 , - 3279 , - 2030 , - 2941 , - 1212 , - 1643 , - 4234 , - 4185 , - 1496 , - 967 , - 2598 , - 1589 , - 2740 , - 1251 , - 1922 , - 4753 , - 144 , - 2495 , - 2206 , - 4077 , - 3308 , - 4699 , - 3450 , - 4361 , - 2632 , - 3063 , - 854 , - 805 , - 2916 , - 2387 , - 4018 , - 3009 , - 4160 , - 2671 , - 3342 , - 1373 , - 1564 , - 3915 , - 3626 , - 697 , - 4728 , - 1319 , - 70 , - 981 , - 4052 , - 4483 , - 2274 , - 2225 , - 4336 , - 3807 , - 638 , - 4429 , - 780 , - 4091 , - 4762 , - 2793 , - 2984 , - 535 , - 246 , - 2117 , - 1348 , - 2739 , - 1490 , - 2401 , - 672 , - 1103 , - 3694 , - 3645 , - 956 , - 427 , - 2058 , - 1049 , - 2200 , - 711 , - 1382 , - 4213 , - 4404 , - 1955 , - 1666 , - 3537 , - 2768 , - 4159 , - 2910 , - 3821 , - 2092 , - 2523 , - 314 , - 265 , - 2376 , - 1847 , - 3478 , - 2469 , - 3620 , - 2131 , - 2802 , - 833 , - 1024 , - 3375 , - 3086 , - 157 , - 4188 , - 779 , - 4330 , - 441 , - 3512 , - 3943 , - 1734 , - 1685 , - 3796 , - 3267 , - 98 , - 3889 , - 240 , - 3551 , - 4222 , - 2253 , - 2444 , - 4795 , - 4506 , - 1577 , - 808 , - 2199 , - 950 , - 1861 , - 132 , - 563 , - 3154 , - 3105 , - 416 , - 4687 , - 1518 , - 509 , - 1660 , - 171 , - 842 , - 3673 , - 3864 , - 1415 , - 1126 , - 2997 , - 2228 , - 3619 , - 2370 , - 3281 , - 1552 , - 1983 , - 4574 , - 4525 , - 1836 , - 1307 , - 2938 , - 1929 , - 3080 , - 1591 , - 2262 , - 293 , - 484 , - 2835 , - 2546 , - 4417 , - 3648 , - 239 , - 3790 , - 4701 , - 2972 , - 3403 , - 1194 , - 1145 , - 3256 , - 2727 , - 4358 , - 3349 , - 4500 , - 3011 , - 3682 , - 1713 , - 1904 , - 4255 , - 3966 , - 1037 , - 268 , - 1659 , - 410 , - 1321 , - 4392 , - 23 , - 2614 , - 2565 , - 4676 , - 4147 , - 978 , - 4769 , - 1120 , - 4431 , - 302 , - 3133 , - 3324 , - 875 , - 586 , - 2457 , - 1688 , - 3079 , - 1830 , - 2741 , - 1012 , - 1443 , - 4034 , - 3985 , - 1296 , - 767 , - 2398 , - 1389 , - 2540 , - 1051 , - 1722 , - 4553 , - 4744 , - 2295 , - 2006 , - 3877 , - 3108 , - 4499 , - 3250 , - 4161 , - 2432 , - 2863 , - 654 , - 605 , - 2716 , - 2187 , - 3818 , - 2809 , - 3960 , - 2471 , - 3142 , - 1173 , - 1364 , - 3715 , - 3426 , - 497 , - 4528 , - 1119 , - 4670 , - 781 , - 3852 , - 4283 , - 2074 , - 2025 , - 4136 , - 3607 , - 438 , - 4229 , - 580 , - 3891 , - 4562 , - 2593 , - 2784 , - 335 , - 46 , - 1917 , - 1148 , - 2539 , - 1290 , - 2201 , - 472 , - 903 , - 3494 , - 3445 , - 756 , - 227 , - 1858 , - 849 , - 2000 , - 511 , - 1182 , - 4013 , - 4204 , - 1755 , - 1466 , - 3337 , - 2568 , - 3959 , - 2710 , - 3621 , - 1892 , - 2323 , - 114 , - 65 , - 2176 , - 1647 , - 3278 , - 2269 , - 3420 , - 1931 , - 2602 , - 633 , - 824 , - 3175 , - 2886 , - 4757 , - 3988 , - 579 , - 4130 , - 241 , - 3312 , - 3743 , - 1534 , - 1485 , - 3596 , - 3067 , - 4698 , - 3689 , - 40 , - 3351 , - 4022 , - 2053 , - 2244 , - 4595 , - 4306 , - 1377 , - 608 , - 1999 , - 750 , - 1661 , - 4732 , - 363 , - 2954 , - 2905 , - 216 , - 4487 , - 1318 , - 309 , - 1460 , - 4771 , - 642 , - 3473 , - 3664 , - 1215 , - 926 , - 2797 , - 2028 , - 3419 , - 2170 , - 3081 , - 1352 , - 1783 , - 4374 , - 4325 , - 1636 , - 1107 , - 2738 , - 1729 , - 2880 , - 1391 , - 2062 , - 93 , - 284 , - 2635 , - 2346 , - 4217 , - 3448 , - 39 , - 3590 , - 4501 , - 2772 , - 3203 , - 994 , - 945 , - 3056 , - 2527 , - 4158 , - 3149 , - 4300 , - 2811 , - 3482 , - 1513 , - 1704 , - 4055 , - 3766 , - 837 , - 68 , - 1459 , - 210 , - 1121 , - 4192 , - 4623 , - 2414 , - 2365 , - 4476 , - 3947 , - 778 , - 4569 , - 920 , - 4231 , - 102 , - 2933 , - 3124 , - 675 , - 386 , - 2257 , - 1488 , - 2879 , - 1630 , - 2541 , - 812 , - 1243 , - 3834 , - 3785 , - 1096 , - 567 , - 2198 , - 1189 , - 2340 , - 851 , - 1522 , - 4353 , - 4544 , - 2095 , - 1806 , - 3677 , - 2908 , - 4299 , - 3050 , - 3961 , - 2232 , - 2663 , - 454 , - 405 , - 2516 , - 1987 , - 3618 , - 2609 , - 3760 , - 2271 , - 2942 , - 973 , - 1164 , - 3515 , - 3226 , - 297 , - 4328 , - 919 , - 4470 , - 581 , - 3652 , - 4083 , - 1874 , - 1825 , - 3936 , - 3407 , - 238 , - 4029 , - 380 , - 3691 , - 4362 , - 2393 , - 2584 , - 135 , - 4646 , - 1717 , - 948 , - 2339 , - 1090 , - 2001 , - 272 , - 703 , - 3294 , - 3245 , - 556 , - 27 , - 1658 , - 649 , - 1800 , - 311 , - 982 , - 3813 , - 4004 , - 1555 , - 1266 , - 3137 , - 2368 , - 3759 , - 2510 , - 3421 , - 1692 , - 2123 , - 4714 , - 4665 , - 1976 , - 1447 , - 3078 , - 2069 , - 3220 , - 1731 , - 2402 , - 433 , - 624 , - 2975 , - 2686 , - 4557 , - 3788 , - 379 , - 3930 , - 41 , - 3112 , - 3543 , - 1334 , - 1285 , - 3396 , - 2867 , - 4498 , - 3489 , - 4640 , - 3151 , - 3822 , - 1853 , - 2044 , - 4395 , - 4106 , - 1177 , - 408 , - 1799 , - 550 , - 1461 , - 4532 , - 163 , - 2754 , - 2705 , - 16 , - 4287 , - 1118 , - 109 , - 1260 , - 4571 , - 442 , - 3273 , - 3464 , - 1015 , - 726 , - 2597 , - 1828 , - 3219 , - 1970 , - 2881 , - 1152 , - 1583 , - 4174 , - 4125 , - 1436 , - 907 , - 2538 , - 1529 , - 2680 , - 1191 , - 1862 , - 4693 , - 84 , - 2435 , - 2146 , - 4017 , - 3248 , - 4639 , - 3390 , - 4301 , - 2572 , - 3003 , - 794 , - 745 , - 2856 , - 2327 , - 3958 , - 2949 , - 4100 , - 2611 , - 3282 , - 1313 , - 1504 , - 3855 , - 3566 , - 637 , - 4668 , - 1259 , - 10 , - 921 , - 3992 , - 4423 , - 2214 , - 2165 , - 4276 , - 3747 , - 578 , - 4369 , - 720 , - 4031 , - 4702 , - 2733 , - 2924 , - 475 , - 186 , - 2057 , - 1288 , - 2679 , - 1430 , - 2341 , - 612 , - 1043 , - 3634 , - 3585 , - 896 , - 367 , - 1998 , - 989 , - 2140 , - 651 , - 1322 , - 4153 , - 4344 , - 1895 , - 1606 , - 3477 , - 2708 , - 4099 , - 2850 , - 3761 , - 2032 , - 2463 , - 254 , - 205 , - 2316 , - 1787 , - 3418 , - 2409 , - 3560 , - 2071 , - 2742 , - 773 , - 964 , - 3315 , - 3026 , - 97 , - 4128 , - 719 , - 4270 , - 381 , - 3452 , - 3883 , - 1674 , - 1625 , - 3736 , - 3207 , - 38 , - 3829 , - 180 , - 3491 , - 4162 , - 2193 , - 2384 , - 4735 , - 4446 , - 1517 , - 748 , - 2139 , - 890 , - 1801 , - 72 , - 503 , - 3094 , - 3045 , - 356 , - 4627 , - 1458 , - 449 , - 1600 , - 111 , - 782 , - 3613 , - 3804 , - 1355 , - 1066 , - 2937 , - 2168 , - 3559 , - 2310 , - 3221 , - 1492 , - 1923 , - 4514 , - 4465 , - 1776 , - 1247 , - 2878 , - 1869 , - 3020 , - 1531 , - 2202 , - 233 , - 424 , - 2775 , - 2486 , - 4357 , - 3588 , - 179 , - 3730 , - 4641 , - 2912 , - 3343 , - 1134 , - 1085 , - 3196 , - 2667 , - 4298 , - 3289 , - 4440 , - 2951 , - 3622 , - 1653 , - 1844 , - 4195 , - 3906 , - 977 , - 208 , - 1599 , - 350 , - 1261 , - 4332 , - 4763 , - 2554 , - 2505 , - 4616 , - 4087 , - 918 , - 4709 , - 1060 , - 4371 , - 242 , - 3073 , - 3264 , - 815 , - 526 , - 2397 , - 1628 , - 3019 , - 1770 , - 2681 , - 952 , - 1383 , - 3974 , - 3925 , - 1236 , - 707 , - 2338 , - 1329 , - 2480 , - 991 , - 1662 , - 4493 , - 4684 , - 2235 , - 1946 , - 3817 , - 3048 , - 4439 , - 3190 , - 4101 , - 2372 , - 2803 , - 594 , - 545 , - 2656 , - 2127 , - 3758 , - 2749 , - 3900 , - 2411 , - 3082 , - 1113 , - 1304 , - 3655 , - 3366 , - 437 , - 4468 , - 1059 , - 4610 , - 721 , - 3792 , - 4223 , - 2014 , - 1965 , - 4076 , - 3547 , - 378 , - 4169 , - 520 , - 3831 , - 4502 , - 2533 , - 2724 , - 275 , - 4786 , - 1857 , - 1088 , - 2479 , - 1230 , - 2141 , - 412 , - 843 , - 3434 , - 3385 , - 696 , - 167 , - 1798 , - 789 , - 1940 , - 451 , - 1122 , - 3953 , - 4144 , - 1695 , - 1406 , - 3277 , - 2508 , - 3899 , - 2650 , - 3561 , - 1832 , - 2263 , - 54 , - 5 , - 2116 , - 1587 , - 3218 , - 2209 , - 3360 , - 1871 , - 2542 , - 573 , - 764 , - 3115 , - 2826 , - 4697 , - 3928 , - 519 , - 4070 , - 181 , - 3252 , - 3683 , - 1474 , - 1425 , - 3536 , - 3007 , - 4638 , - 3629 , - 4780 , - 3291 , - 3962 , - 1993 , - 2184 , - 4535 , - 4246 , - 1317 , - 548 , - 1939 , - 690 , - 1601 , - 4672 , - 303 , - 2894 , - 2845 , - 156 , - 4427 , - 1258 , - 249 , - 1400 , - 4711 , - 582 , - 3413 , - 3604 , - 1155 , - 866 , - 2737 , - 1968 , - 3359 , - 2110 , - 3021 , - 1292 , - 1723 , - 4314 , - 4265 , - 1576 , - 1047 , - 2678 , - 1669 , - 2820 , - 1331 , - 2002 , - 33 , - 224 , - 2575 , - 2286 , - 4157 , - 3388 , - 4779 , - 3530 , - 4441 , - 2712 , - 3143 , - 934 , - 885 , - 2996 , - 2467 , - 4098 , - 3089 , - 4240 , - 2751 , - 3422 , - 1453 , - 1644 , - 3995 , - 3706 , - 777 , - 8 , - 1399 , - 150 , - 1061 , - 4132 , - 4563 , - 2354 , - 2305 , - 4416 , - 3887 , - 718 , - 4509 , - 860 , - 4171 , - 42 , - 2873 , - 3064 , - 615 , - 326 , - 2197 , - 1428 , - 2819 , - 1570 , - 2481 , - 752 , - 1183 , - 3774 , - 3725 , - 1036 , - 507 , - 2138 , - 1129 , - 2280 , - 791 , - 1462 , - 4293 , - 4484 , - 2035 , - 1746 , - 3617 , - 2848 , - 4239 , - 2990 , - 3901 , - 2172 , - 2603 , - 394 , - 345 , - 2456 , - 1927 , - 3558 , - 2549 , - 3700 , - 2211 , - 2882 , - 913 , - 1104 , - 3455 , - 3166 , - 237 , - 4268 , - 859 , - 4410 , - 521 , - 3592 , - 4023 , - 1814 , - 1765 , - 3876 , - 3347 , - 178 , - 3969 , - 320 , - 3631 , - 4302 , - 2333 , - 2524 , - 75 , - 4586 , - 1657 , - 888 , - 2279 , - 1030 , - 1941 , - 212 , - 643 , - 3234 , - 3185 , - 496 , - 4767 , - 1598 , - 589 , - 1740 , - 251 , - 922 , - 3753 , - 3944 , - 1495 , - 1206 , - 3077 , - 2308 , - 3699 , - 2450 , - 3361 , - 1632 , - 2063 , - 4654 , - 4605 , - 1916 , - 1387 , - 3018 , - 2009 , - 3160 , - 1671 , - 2342 , - 373 , - 564 , - 2915 , - 2626 , - 4497 , - 3728 , - 319 , - 3870 , - 4781 , - 3052 , - 3483 , - 1274 , - 1225 , - 3336 , - 2807 , - 4438 , - 3429 , - 4580 , - 3091 , - 3762 , - 1793 , - 1984 , - 4335 , - 4046 , - 1117 , - 348 , - 1739 , - 490 , - 1401 , - 4472 , - 103 , - 2694 , - 2645 , - 4756 , - 4227 , - 1058 , - 49 , - 1200 , - 4511 , - 382 , - 3213 , - 3404 , - 955 , - 666 , - 2537 , - 1768 , - 3159 , - 1910 , - 2821 , - 1092 , - 1523 , - 4114 , - 4065 , - 1376 , - 847 , - 2478 , - 1469 , - 2620 , - 1131 , - 1802 , - 4633 , - 24 , - 2375 , - 2086 , - 3957 , - 3188 , - 4579 , - 3330 , - 4241 , - 2512 , - 2943 , - 734 , - 685 , - 2796 , - 2267 , - 3898 , - 2889 , - 4040 , - 2551 , - 3222 , - 1253 , - 1444 , - 3795 , - 3506 , - 577 , - 4608 , - 1199 , - 4750 , - 861 , - 3932 , - 4363 , - 2154 , - 2105 , - 4216 , - 3687 , - 518 , - 4309 , - 660 , - 3971 , - 4642 , - 2673 , - 2864 , - 415 , - 126 , - 1997 , - 1228 , - 2619 , - 1370 , - 2281 , - 552 , - 983 , - 3574 , - 3525 , - 836 , - 307 , - 1938 , - 929 , - 2080 , - 591 , - 1262 , - 4093 , - 4284 , - 1835 , - 1546 , - 3417 , - 2648 , - 4039 , - 2790 , - 3701 , - 1972 , - 2403 , - 194 , - 145 , - 2256 , - 1727 , - 3358 , - 2349 , - 3500 , - 2011 , - 2682 , - 713 , - 904 , - 3255 , - 2966 , - 37 , - 4068 , - 659 , - 4210 , - 321 , - 3392 , - 3823 , - 1614 , - 1565 , - 3676 , - 3147 , - 4778 , - 3769 , - 120 , - 3431 , - 4102 , - 2133 , - 2324 , - 4675 , - 4386 , - 1457 , - 688 , - 2079 , - 830 , - 1741 , - 12 , - 443 , - 3034 , - 2985 , - 296 , - 4567 , - 1398 , - 389 , - 1540 , - 51 , - 722 , - 3553 , - 3744 , - 1295 , - 1006 , - 2877 , - 2108 , - 3499 , - 2250 , - 3161 , - 1432 , - 1863 , - 4454 , - 4405 , - 1716 , - 1187 , - 2818 , - 1809 , - 2960 , - 1471 , - 2142 , - 173 , - 364 , - 2715 , - 2426 , - 4297 , - 3528 , - 119 , - 3670 , - 4581 , - 2852 , - 3283 , - 1074 , - 1025 , - 3136 , - 2607 , - 4238 , - 3229 , - 4380 , - 2891 , - 3562 , - 1593 , - 1784 , - 4135 , - 3846 , - 917 , - 148 , - 1539 , - 290 , - 1201 , - 4272 , - 4703 , - 2494 , - 2445 , - 4556 , - 4027 , - 858 , - 4649 , - 1000 , - 4311 , - 182 , - 3013 , - 3204 , - 755 , - 466 , - 2337 , - 1568 , - 2959 , - 1710 , - 2621 , - 892 , - 1323 , - 3914 , - 3865 , - 1176 , - 647 , - 2278 , - 1269 , - 2420 , - 931 , - 1602 , - 4433 , - 4624 , - 2175 , - 1886 , - 3757 , - 2988 , - 4379 , - 3130 , - 4041 , - 2312 , - 2743 , - 534 , - 485 , - 2596 , - 2067 , - 3698 , - 2689 , - 3840 , - 2351 , - 3022 , - 1053 , - 1244 , - 3595 , - 3306 , - 377 , - 4408 , - 999 , - 4550 , - 661 , - 3732 , - 4163 , - 1954 , - 1905 , - 4016 , - 3487 , - 318 , - 4109 , - 460 , - 3771 , - 4442 , - 2473 , - 2664 , - 215 , - 4726 , - 1797 , - 1028 , - 2419 , - 1170 , - 2081 , - 352 , - 783 , - 3374 , - 3325 , - 636 , - 107 , - 1738 , - 729 , - 1880 , - 391 , - 1062 , - 3893 , - 4084 , - 1635 , - 1346 , - 3217 , - 2448 , - 3839 , - 2590 , - 3501 , - 1772 , - 2203 , - 4794 , - 4745 , - 2056 , - 1527 , - 3158 , - 2149 , - 3300 , - 1811 , - 2482 , - 513 , - 704 , - 3055 , - 2766 , - 4637 , - 3868 , - 459 , - 4010 , - 121 , - 3192 , - 3623 , - 1414 , - 1365 , - 3476 , - 2947 , - 4578 , - 3569 , - 4720 , - 3231 , - 3902 , - 1933 , - 2124 , - 4475 , - 4186 , - 1257 , - 488 , - 1879 , - 630 , - 1541 , - 4612 , - 243 , - 2834 , - 2785 , - 96 , - 4367 , - 1198 , - 189 , - 1340 , - 4651 , - 522 , - 3353 , - 3544 , - 1095 , - 806 , - 2677 , - 1908 , - 3299 , - 2050 , - 2961 , - 1232 , - 1663 , - 4254 , - 4205 , - 1516 , - 987 , - 2618 , - 1609 , - 2760 , - 1271 , - 1942 , - 4773 , - 164 , - 2515 , - 2226 , - 4097 , - 3328 , - 4719 , - 3470 , - 4381 , - 2652 , - 3083 , - 874 , - 825 , - 2936 , - 2407 , - 4038 , - 3029 , - 4180 , - 2691 , - 3362 , - 1393 , - 1584 , - 3935 , - 3646 , - 717 , - 4748 , - 1339 , - 90 , - 1001 , - 4072 , - 4503 , - 2294 , - 2245 , - 4356 , - 3827 , - 658 , - 4449 , - 800 , - 4111 , - 4782 , - 2813 , - 3004 , - 555 , - 266 , - 2137 , - 1368 , - 2759 , - 1510 , - 2421 , - 692 , - 1123 , - 3714 , - 3665 , - 976 , - 447 , - 2078 , - 1069 , - 2220 , - 731 , - 1402 , - 4233 , - 4424 , - 1975 , - 1686 , - 3557 , - 2788 , - 4179 , - 2930 , - 3841 , - 2112 , - 2543 , - 334 , - 285 , - 2396 , - 1867 , - 3498 , - 2489 , - 3640 , - 2151 , - 2822 , - 853 , - 1044 , - 3395 , - 3106 , - 177 , - 4208 , - 799 , - 4350 , - 461 , - 3532 , - 3963 , - 1754 , - 1705 , - 3816 , - 3287 , - 118 , - 3909 , - 260 , - 3571 , - 4242 , - 2273 , - 2464 , - 15 , - 4526 , - 1597 , - 828 , - 2219 , - 970 , - 1881 , - 152 , - 583 , - 3174 , - 3125 , - 436 , - 4707 , - 1538 , - 529 , - 1680 , - 191 , - 862 , - 3693 , - 3884 , - 1435 , - 1146 , - 3017 , - 2248 , - 3639 , - 2390 , - 3301 , - 1572 , - 2003 , - 4594 , - 4545 , - 1856 , - 1327 , - 2958 , - 1949 , - 3100 , - 1611 , - 2282 , - 313 , - 504 , - 2855 , - 2566 , - 4437 , - 3668 , - 259 , - 3810 , - 4721 , - 2992 , - 3423 , - 1214 , - 1165 , - 3276 , - 2747 , - 4378 , - 3369 , - 4520 , - 3031 , - 3702 , - 1733 , - 1924 , - 4275 , - 3986 , - 1057 , - 288 , - 1679 , - 430 , - 1341 , - 4412 , - 43 , - 2634 , - 2585 , - 4696 , - 4167 , - 998 , - 4789 , - 1140 , - 4451 , - 322 , - 3153 , - 3344 , - 895 , - 606 , - 2477 , - 1708 , - 3099 , - 1850 , - 2761 , - 1032 , - 1463 , - 4054 , - 4005 , - 1316 , - 787 , - 2418 , - 1409 , - 2560 , - 1071 , - 1742 , - 4573 , - 4764 , - 2315 , - 2026 , - 3897 , - 3128 , - 4519 , - 3270 , - 4181 , - 2452 , - 2883 , - 674 , - 625 , - 2736 , - 2207 , - 3838 , - 2829 , - 3980 , - 2491 , - 3162 , - 1193 , - 1384 , - 3735 , - 3446 , - 517 , - 4548 , - 1139 , - 4690 , - 801 , - 3872 , - 4303 , - 2094 , - 2045 , - 4156 , - 3627 , - 458 , - 4249 , - 600 , - 3911 , - 4582 , - 2613 , - 2804 , - 355 , - 66 , - 1937 , - 1168 , - 2559 , - 1310 , - 2221 , - 492 , - 923 , - 3514 , - 3465 , - 776 , - 247 , - 1878 , - 869 , - 2020 , - 531 , - 1202 , - 4033 , - 4224 , - 1775 , - 1486 , - 3357 , - 2588 , - 3979 , - 2730 , - 3641 , - 1912 , - 2343 , - 134 , - 85 , - 2196 , - 1667 , - 3298 , - 2289 , - 3440 , - 1951 , - 2622 , - 653 , - 844 , - 3195 , - 2906 , - 4777 , - 4008 , - 599 , - 4150 , - 261 , - 3332 , - 3763 , - 1554 , - 1505 , - 3616 , - 3087 , - 4718 , - 3709 , - 60 , - 3371 , - 4042 , - 2073 , - 2264 , - 4615 , - 4326 , - 1397 , - 628 , - 2019 , - 770 , - 1681 , - 4752 , - 383 , - 2974 , - 2925 , - 236 , - 4507 , - 1338 , - 329 , - 1480 , - 4791 , - 662 , - 3493 , - 3684 , - 1235 , - 946 , - 2817 , - 2048 , - 3439 , - 2190 , - 3101 , - 1372 , - 1803 , - 4394 , - 4345 , - 1656 , - 1127 , - 2758 , - 1749 , - 2900 , - 1411 , - 2082 , - 113 , - 304 , - 2655 , - 2366 , - 4237 , - 3468 , - 59 , - 3610 , - 4521 , - 2792 , - 3223 , - 1014 , - 965 , - 3076 , - 2547 , - 4178 , - 3169 , - 4320 , - 2831 , - 3502 , - 1533 , - 1724 , - 4075 , - 3786 , - 857 , - 88 , - 1479 , - 230 , - 1141 , - 4212 , - 4643 , - 2434 , - 2385 , - 4496 , - 3967 , - 798 , - 4589 , - 940 , - 4251 , - 122 , - 2953 , - 3144 , - 695 , - 406 , - 2277 , - 1508 , - 2899 , - 1650 , - 2561 , - 832 , - 1263 , - 3854 , - 3805 , - 1116 , - 587 , - 2218 , - 1209 , - 2360 , - 871 , - 1542 , - 4373 , - 4564 , - 2115 , - 1826 , - 3697 , - 2928 , - 4319 , - 3070 , - 3981 , - 2252 , - 2683 , - 474 , - 425 , - 2536 , - 2007 , - 3638 , - 2629 , - 3780 , - 2291 , - 2962 , - 993 , - 1184 , - 3535 , - 3246 , - 317 , - 4348 , - 939 , - 4490 , - 601 , - 3672 , - 4103 , - 1894 , - 1845 , - 3956 , - 3427 , - 258 , - 4049 , - 400 , - 3711 , - 4382 , - 2413 , - 2604 , - 155 , - 4666 , - 1737 , - 968 , - 2359 , - 1110 , - 2021 , - 292 , - 723 , - 3314 , - 3265 , - 576 , - 47 , - 1678 , - 669 , - 1820 , - 331 , - 1002 , - 3833 , - 4024 , - 1575 , - 1286 , - 3157 , - 2388 , - 3779 , - 2530 , - 3441 , - 1712 , - 2143 , - 4734 , - 4685 , - 1996 , - 1467 , - 3098 , - 2089 , - 3240 , - 1751 , - 2422 , - 453 , - 644 , - 2995 , - 2706 , - 4577 , - 3808 , - 399 , - 3950 , - 61 , - 3132 , - 3563 , - 1354 , - 1305 , - 3416 , - 2887 , - 4518 , - 3509 , - 4660 , - 3171 , - 3842 , - 1873 , - 2064 , - 4415 , - 4126 , - 1197 , - 428 , - 1819 , - 570 , - 1481 , - 4552 , - 183 , - 2774 , - 2725 , - 36 , - 4307 , - 1138 , - 129 , - 1280 , - 4591 , - 462 , - 3293 , - 3484 , - 1035 , - 746 , - 2617 , - 1848 , - 3239 , - 1990 , - 2901 , - 1172 , - 1603 , - 4194 , - 4145 , - 1456 , - 927 , - 2558 , - 1549 , - 2700 , - 1211 , - 1882 , - 4713 , - 104 , - 2455 , - 2166 , - 4037 , - 3268 , - 4659 , - 3410 , - 4321 , - 2592 , - 3023 , - 814 , - 765 , - 2876 , - 2347 , - 3978 , - 2969 , - 4120 , - 2631 , - 3302 , - 1333 , - 1524 , - 3875 , - 3586 , - 657 , - 4688 , - 1279 , - 30 , - 941 , - 4012 , - 4443 , - 2234 , - 2185 , - 4296 , - 3767 , - 598 , - 4389 , - 740 , - 4051 , - 4722 , - 2753 , - 2944 , - 495 , - 206 , - 2077 , - 1308 , - 2699 , - 1450 , - 2361 , - 632 , - 1063 , - 3654 , - 3605 , - 916 , - 387 , - 2018 , - 1009 , - 2160 , - 671 , - 1342 , - 4173 , - 4364 , - 1915 , - 1626 , - 3497 , - 2728 , - 4119 , - 2870 , - 3781 , - 2052 , - 2483 , - 274 , - 225 , - 2336 , - 1807 , - 3438 , - 2429 , - 3580 , - 2091 , - 2762 , - 793 , - 984 , - 3335 , - 3046 , - 117 , - 4148 , - 739 , - 4290 , - 401 , - 3472 , - 3903 , - 1694 , - 1645 , - 3756 , - 3227 , - 58 , - 3849 , - 200 , - 3511 , - 4182 , - 2213 , - 2404 , - 4755 , - 4466 , - 1537 , - 768 , - 2159 , - 910 , - 1821 , - 92 , - 523 , - 3114 , - 3065 , - 376 , - 4647 , - 1478 , - 469 , - 1620 , - 131 , - 802 , - 3633 , - 3824 , - 1375 , - 1086 , - 2957 , - 2188 , - 3579 , - 2330 , - 3241 , - 1512 , - 1943 , - 4534 , - 4485 , - 1796 , - 1267 , - 2898 , - 1889 , - 3040 , - 1551 , - 2222 , - 253 , - 444 , - 2795 , - 2506 , - 4377 , - 3608 , - 199 , - 3750 , - 4661 , - 2932 , - 3363 , - 1154 , - 1105 , - 3216 , - 2687 , - 4318 , - 3309 , - 4460 , - 2971 , - 3642 , - 1673 , - 1864 , - 4215 , - 3926 , - 997 , - 228 , - 1619 , - 370 , - 1281 , - 4352 , - 4783 , - 2574 , - 2525 , - 4636 , - 4107 , - 938 , - 4729 , - 1080 , - 4391 , - 262 , - 3093 , - 3284 , - 835 , - 546 , - 2417 , - 1648 , - 3039 , - 1790 , - 2701 , - 972 , - 1403 , - 3994 , - 3945 , - 1256 , - 727 , - 2358 , - 1349 , - 2500 , - 1011 , - 1682 , - 4513 , - 4704 , - 2255 , - 1966 , - 3837 , - 3068 , - 4459 , - 3210 , - 4121 , - 2392 , - 2823 , - 614 , - 565 , - 2676 , - 2147 , - 3778 , - 2769 , - 3920 , - 2431 , - 3102 , - 1133 , - 1324 , - 3675 , - 3386 , - 457 , - 4488 , - 1079 , - 4630 , - 741 , - 3812 , - 4243 , - 2034 , - 1985 , - 4096 , - 3567 , - 398 , - 4189 , - 540 , - 3851 , - 4522 , - 2553 , - 2744 , - 295 , - 6 , - 1877 , - 1108 , - 2499 , - 1250 , - 2161 , - 432 , - 863 , - 3454 , - 3405 , - 716 , - 187 , - 1818 , - 809 , - 1960 , - 471 , - 1142 , - 3973 , - 4164 , - 1715 , - 1426 , - 3297 , - 2528 , - 3919 , - 2670 , - 3581 , - 1852 , - 2283 , - 74 , - 25 , - 2136 , - 1607 , - 3238 , - 2229 , - 3380 , - 1891 , - 2562 , - 593 , - 784 , - 3135 , - 2846 , - 4717 , - 3948 , - 539 , - 4090 , - 201 , - 3272 , - 3703 , - 1494 , - 1445 , - 3556 , - 3027 , - 4658 , - 3649 , - 0 , - 949 , - 378 , - 3151 , - 4404 , - 4137 , - 2350 , - 3907 , - 3944 , - 2461 , - 4322 , - 4663 , - 3484 , - 785 , - 1430 , - 555 , - 3024 , - 3973 , - 3402 , - 1311 , - 2564 , - 2297 , - 510 , - 2067 , - 2104 , - 621 , - 2482 , - 2823 , - 1644 , - 3809 , - 4454 , - 3579 , - 1184 , - 2133 , - 1562 , - 4335 , - 724 , - 457 , - 3534 , - 227 , - 264 , - 3645 , - 642 , - 983 , - 4668 , - 1969 , - 2614 , - 1739 , - 4208 , - 293 , - 4586 , - 2495 , - 3748 , - 3481 , - 1694 , - 3251 , - 3288 , - 1805 , - 3666 , - 4007 , - 2828 , - 129 , - 774 , - 4763 , - 2368 , - 3317 , - 2746 , - 655 , - 1908 , - 1641 , - 4718 , - 1411 , - 1448 , - 4829 , - 1826 , - 2167 , - 988 , - 3153 , - 3798 , - 2923 , - 528 , - 1477 , - 906 , - 3679 , - 68 , - 4665 , - 2878 , - 4435 , - 4472 , - 2989 , - 4850 , - 327 , - 4012 , - 1313 , - 1958 , - 1083 , - 3552 , - 4501 , - 3930 , - 1839 , - 3092 , - 2825 , - 1038 , - 2595 , - 2632 , - 1149 , - 3010 , - 3351 , - 2172 , - 4337 , - 118 , - 4107 , - 1712 , - 2661 , - 2090 , - 4863 , - 1252 , - 985 , - 4062 , - 755 , - 792 , - 4173 , - 1170 , - 1511 , - 332 , - 2497 , - 3142 , - 2267 , - 4736 , - 821 , - 250 , - 3023 , - 4276 , - 4009 , - 2222 , - 3779 , - 3816 , - 2333 , - 4194 , - 4535 , - 3356 , - 657 , - 1302 , - 427 , - 2896 , - 3845 , - 3274 , - 1183 , - 2436 , - 2169 , - 382 , - 1939 , - 1976 , - 493 , - 2354 , - 2695 , - 1516 , - 3681 , - 4326 , - 3451 , - 1056 , - 2005 , - 1434 , - 4207 , - 596 , - 329 , - 3406 , - 99 , - 136 , - 3517 , - 514 , - 855 , - 4540 , - 1841 , - 2486 , - 1611 , - 4080 , - 165 , - 4458 , - 2367 , - 3620 , - 3353 , - 1566 , - 3123 , - 3160 , - 1677 , - 3538 , - 3879 , - 2700 , - 1 , - 646 , - 4635 , - 2240 , - 3189 , - 2618 , - 527 , - 1780 , - 1513 , - 4590 , - 1283 , - 1320 , - 4701 , - 1698 , - 2039 , - 860 , - 3025 , - 3670 , - 2795 , - 400 , - 1349 , - 778 , - 3551 , - 4804 , - 4537 , - 2750 , - 4307 , - 4344 , - 2861 , - 4722 , - 199 , - 3884 , - 1185 , - 1830 , - 955 , - 3424 , - 4373 , - 3802 , - 1711 , - 2964 , - 2697 , - 910 , - 2467 , - 2504 , - 1021 , - 2882 , - 3223 , - 2044 , - 4209 , - 4854 , - 3979 , - 1584 , - 2533 , - 1962 , - 4735 , - 1124 , - 857 , - 3934 , - 627 , - 664 , - 4045 , - 1042 , - 1383 , - 204 , - 2369 , - 3014 , - 2139 , - 4608 , - 693 , - 122 , - 2895 , - 4148 , - 3881 , - 2094 , - 3651 , - 3688 , - 2205 , - 4066 , - 4407 , - 3228 , - 529 , - 1174 , - 299 , - 2768 , - 3717 , - 3146 , - 1055 , - 2308 , - 2041 , - 254 , - 1811 , - 1848 , - 365 , - 2226 , - 2567 , - 1388 , - 3553 , - 4198 , - 3323 , - 928 , - 1877 , - 1306 , - 4079 , - 468 , - 201 , - 3278 , - 4835 , - 8 , - 3389 , - 386 , - 727 , - 4412 , - 1713 , - 2358 , - 1483 , - 3952 , - 37 , - 4330 , - 2239 , - 3492 , - 3225 , - 1438 , - 2995 , - 3032 , - 1549 , - 3410 , - 3751 , - 2572 , - 4737 , - 518 , - 4507 , - 2112 , - 3061 , - 2490 , - 399 , - 1652 , - 1385 , - 4462 , - 1155 , - 1192 , - 4573 , - 1570 , - 1911 , - 732 , - 2897 , - 3542 , - 2667 , - 272 , - 1221 , - 650 , - 3423 , - 4676 , - 4409 , - 2622 , - 4179 , - 4216 , - 2733 , - 4594 , - 71 , - 3756 , - 1057 , - 1702 , - 827 , - 3296 , - 4245 , - 3674 , - 1583 , - 2836 , - 2569 , - 782 , - 2339 , - 2376 , - 893 , - 2754 , - 3095 , - 1916 , - 4081 , - 4726 , - 3851 , - 1456 , - 2405 , - 1834 , - 4607 , - 996 , - 729 , - 3806 , - 499 , - 536 , - 3917 , - 914 , - 1255 , - 76 , - 2241 , - 2886 , - 2011 , - 4480 , - 565 , - 4858 , - 2767 , - 4020 , - 3753 , - 1966 , - 3523 , - 3560 , - 2077 , - 3938 , - 4279 , - 3100 , - 401 , - 1046 , - 171 , - 2640 , - 3589 , - 3018 , - 927 , - 2180 , - 1913 , - 126 , - 1683 , - 1720 , - 237 , - 2098 , - 2439 , - 1260 , - 3425 , - 4070 , - 3195 , - 800 , - 1749 , - 1178 , - 3951 , - 340 , - 73 , - 3150 , - 4707 , - 4744 , - 3261 , - 258 , - 599 , - 4284 , - 1585 , - 2230 , - 1355 , - 3824 , - 4773 , - 4202 , - 2111 , - 3364 , - 3097 , - 1310 , - 2867 , - 2904 , - 1421 , - 3282 , - 3623 , - 2444 , - 4609 , - 390 , - 4379 , - 1984 , - 2933 , - 2362 , - 271 , - 1524 , - 1257 , - 4334 , - 1027 , - 1064 , - 4445 , - 1442 , - 1783 , - 604 , - 2769 , - 3414 , - 2539 , - 144 , - 1093 , - 522 , - 3295 , - 4548 , - 4281 , - 2494 , - 4051 , - 4088 , - 2605 , - 4466 , - 4807 , - 3628 , - 929 , - 1574 , - 699 , - 3168 , - 4117 , - 3546 , - 1455 , - 2708 , - 2441 , - 654 , - 2211 , - 2248 , - 765 , - 2626 , - 2967 , - 1788 , - 3953 , - 4598 , - 3723 , - 1328 , - 2277 , - 1706 , - 4479 , - 868 , - 601 , - 3678 , - 371 , - 408 , - 3789 , - 786 , - 1127 , - 4812 , - 2113 , - 2758 , - 1883 , - 4352 , - 437 , - 4730 , - 2639 , - 3892 , - 3625 , - 1838 , - 3395 , - 3432 , - 1949 , - 3810 , - 4151 , - 2972 , - 273 , - 918 , - 43 , - 2512 , - 3461 , - 2890 , - 799 , - 2052 , - 1785 , - 4862 , - 1555 , - 1592 , - 109 , - 1970 , - 2311 , - 1132 , - 3297 , - 3942 , - 3067 , - 672 , - 1621 , - 1050 , - 3823 , - 212 , - 4809 , - 3022 , - 4579 , - 4616 , - 3133 , - 130 , - 471 , - 4156 , - 1457 , - 2102 , - 1227 , - 3696 , - 4645 , - 4074 , - 1983 , - 3236 , - 2969 , - 1182 , - 2739 , - 2776 , - 1293 , - 3154 , - 3495 , - 2316 , - 4481 , - 262 , - 4251 , - 1856 , - 2805 , - 2234 , - 143 , - 1396 , - 1129 , - 4206 , - 899 , - 936 , - 4317 , - 1314 , - 1655 , - 476 , - 2641 , - 3286 , - 2411 , - 16 , - 965 , - 394 , - 3167 , - 4420 , - 4153 , - 2366 , - 3923 , - 3960 , - 2477 , - 4338 , - 4679 , - 3500 , - 801 , - 1446 , - 571 , - 3040 , - 3989 , - 3418 , - 1327 , - 2580 , - 2313 , - 526 , - 2083 , - 2120 , - 637 , - 2498 , - 2839 , - 1660 , - 3825 , - 4470 , - 3595 , - 1200 , - 2149 , - 1578 , - 4351 , - 740 , - 473 , - 3550 , - 243 , - 280 , - 3661 , - 658 , - 999 , - 4684 , - 1985 , - 2630 , - 1755 , - 4224 , - 309 , - 4602 , - 2511 , - 3764 , - 3497 , - 1710 , - 3267 , - 3304 , - 1821 , - 3682 , - 4023 , - 2844 , - 145 , - 790 , - 4779 , - 2384 , - 3333 , - 2762 , - 671 , - 1924 , - 1657 , - 4734 , - 1427 , - 1464 , - 4845 , - 1842 , - 2183 , - 1004 , - 3169 , - 3814 , - 2939 , - 544 , - 1493 , - 922 , - 3695 , - 84 , - 4681 , - 2894 , - 4451 , - 4488 , - 3005 , - 2 , - 343 , - 4028 , - 1329 , - 1974 , - 1099 , - 3568 , - 4517 , - 3946 , - 1855 , - 3108 , - 2841 , - 1054 , - 2611 , - 2648 , - 1165 , - 3026 , - 3367 , - 2188 , - 4353 , - 134 , - 4123 , - 1728 , - 2677 , - 2106 , - 15 , - 1268 , - 1001 , - 4078 , - 771 , - 808 , - 4189 , - 1186 , - 1527 , - 348 , - 2513 , - 3158 , - 2283 , - 4752 , - 837 , - 266 , - 3039 , - 4292 , - 4025 , - 2238 , - 3795 , - 3832 , - 2349 , - 4210 , - 4551 , - 3372 , - 673 , - 1318 , - 443 , - 2912 , - 3861 , - 3290 , - 1199 , - 2452 , - 2185 , - 398 , - 1955 , - 1992 , - 509 , - 2370 , - 2711 , - 1532 , - 3697 , - 4342 , - 3467 , - 1072 , - 2021 , - 1450 , - 4223 , - 612 , - 345 , - 3422 , - 115 , - 152 , - 3533 , - 530 , - 871 , - 4556 , - 1857 , - 2502 , - 1627 , - 4096 , - 181 , - 4474 , - 2383 , - 3636 , - 3369 , - 1582 , - 3139 , - 3176 , - 1693 , - 3554 , - 3895 , - 2716 , - 17 , - 662 , - 4651 , - 2256 , - 3205 , - 2634 , - 543 , - 1796 , - 1529 , - 4606 , - 1299 , - 1336 , - 4717 , - 1714 , - 2055 , - 876 , - 3041 , - 3686 , - 2811 , - 416 , - 1365 , - 794 , - 3567 , - 4820 , - 4553 , - 2766 , - 4323 , - 4360 , - 2877 , - 4738 , - 215 , - 3900 , - 1201 , - 1846 , - 971 , - 3440 , - 4389 , - 3818 , - 1727 , - 2980 , - 2713 , - 926 , - 2483 , - 2520 , - 1037 , - 2898 , - 3239 , - 2060 , - 4225 , - 6 , - 3995 , - 1600 , - 2549 , - 1978 , - 4751 , - 1140 , - 873 , - 3950 , - 643 , - 680 , - 4061 , - 1058 , - 1399 , - 220 , - 2385 , - 3030 , - 2155 , - 4624 , - 709 , - 138 , - 2911 , - 4164 , - 3897 , - 2110 , - 3667 , - 3704 , - 2221 , - 4082 , - 4423 , - 3244 , - 545 , - 1190 , - 315 , - 2784 , - 3733 , - 3162 , - 1071 , - 2324 , - 2057 , - 270 , - 1827 , - 1864 , - 381 , - 2242 , - 2583 , - 1404 , - 3569 , - 4214 , - 3339 , - 944 , - 1893 , - 1322 , - 4095 , - 484 , - 217 , - 3294 , - 4851 , - 24 , - 3405 , - 402 , - 743 , - 4428 , - 1729 , - 2374 , - 1499 , - 3968 , - 53 , - 4346 , - 2255 , - 3508 , - 3241 , - 1454 , - 3011 , - 3048 , - 1565 , - 3426 , - 3767 , - 2588 , - 4753 , - 534 , - 4523 , - 2128 , - 3077 , - 2506 , - 415 , - 1668 , - 1401 , - 4478 , - 1171 , - 1208 , - 4589 , - 1586 , - 1927 , - 748 , - 2913 , - 3558 , - 2683 , - 288 , - 1237 , - 666 , - 3439 , - 4692 , - 4425 , - 2638 , - 4195 , - 4232 , - 2749 , - 4610 , - 87 , - 3772 , - 1073 , - 1718 , - 843 , - 3312 , - 4261 , - 3690 , - 1599 , - 2852 , - 2585 , - 798 , - 2355 , - 2392 , - 909 , - 2770 , - 3111 , - 1932 , - 4097 , - 4742 , - 3867 , - 1472 , - 2421 , - 1850 , - 4623 , - 1012 , - 745 , - 3822 , - 515 , - 552 , - 3933 , - 930 , - 1271 , - 92 , - 2257 , - 2902 , - 2027 , - 4496 , - 581 , - 10 , - 2783 , - 4036 , - 3769 , - 1982 , - 3539 , - 3576 , - 2093 , - 3954 , - 4295 , - 3116 , - 417 , - 1062 , - 187 , - 2656 , - 3605 , - 3034 , - 943 , - 2196 , - 1929 , - 142 , - 1699 , - 1736 , - 253 , - 2114 , - 2455 , - 1276 , - 3441 , - 4086 , - 3211 , - 816 , - 1765 , - 1194 , - 3967 , - 356 , - 89 , - 3166 , - 4723 , - 4760 , - 3277 , - 274 , - 615 , - 4300 , - 1601 , - 2246 , - 1371 , - 3840 , - 4789 , - 4218 , - 2127 , - 3380 , - 3113 , - 1326 , - 2883 , - 2920 , - 1437 , - 3298 , - 3639 , - 2460 , - 4625 , - 406 , - 4395 , - 2000 , - 2949 , - 2378 , - 287 , - 1540 , - 1273 , - 4350 , - 1043 , - 1080 , - 4461 , - 1458 , - 1799 , - 620 , - 2785 , - 3430 , - 2555 , - 160 , - 1109 , - 538 , - 3311 , - 4564 , - 4297 , - 2510 , - 4067 , - 4104 , - 2621 , - 4482 , - 4823 , - 3644 , - 945 , - 1590 , - 715 , - 3184 , - 4133 , - 3562 , - 1471 , - 2724 , - 2457 , - 670 , - 2227 , - 2264 , - 781 , - 2642 , - 2983 , - 1804 , - 3969 , - 4614 , - 3739 , - 1344 , - 2293 , - 1722 , - 4495 , - 884 , - 617 , - 3694 , - 387 , - 424 , - 3805 , - 802 , - 1143 , - 4828 , - 2129 , - 2774 , - 1899 , - 4368 , - 453 , - 4746 , - 2655 , - 3908 , - 3641 , - 1854 , - 3411 , - 3448 , - 1965 , - 3826 , - 4167 , - 2988 , - 289 , - 934 , - 59 , - 2528 , - 3477 , - 2906 , - 815 , - 2068 , - 1801 , - 14 , - 1571 , - 1608 , - 125 , - 1986 , - 2327 , - 1148 , - 3313 , - 3958 , - 3083 , - 688 , - 1637 , - 1066 , - 3839 , - 228 , - 4825 , - 3038 , - 4595 , - 4632 , - 3149 , - 146 , - 487 , - 4172 , - 1473 , - 2118 , - 1243 , - 3712 , - 4661 , - 4090 , - 1999 , - 3252 , - 2985 , - 1198 , - 2755 , - 2792 , - 1309 , - 3170 , - 3511 , - 2332 , - 4497 , - 278 , - 4267 , - 1872 , - 2821 , - 2250 , - 159 , - 1412 , - 1145 , - 4222 , - 915 , - 952 , - 4333 , - 1330 , - 1671 , - 492 , - 2657 , - 3302 , - 2427 , - 32 , - 981 , - 410 , - 3183 , - 4436 , - 4169 , - 2382 , - 3939 , - 3976 , - 2493 , - 4354 , - 4695 , - 3516 , - 817 , - 1462 , - 587 , - 3056 , - 4005 , - 3434 , - 1343 , - 2596 , - 2329 , - 542 , - 2099 , - 2136 , - 653 , - 2514 , - 2855 , - 1676 , - 3841 , - 4486 , - 3611 , - 1216 , - 2165 , - 1594 , - 4367 , - 756 , - 489 , - 3566 , - 259 , - 296 , - 3677 , - 674 , - 1015 , - 4700 , - 2001 , - 2646 , - 1771 , - 4240 , - 325 , - 4618 , - 2527 , - 3780 , - 3513 , - 1726 , - 3283 , - 3320 , - 1837 , - 3698 , - 4039 , - 2860 , - 161 , - 806 , - 4795 , - 2400 , - 3349 , - 2778 , - 687 , - 1940 , - 1673 , - 4750 , - 1443 , - 1480 , - 4861 , - 1858 , - 2199 , - 1020 , - 3185 , - 3830 , - 2955 , - 560 , - 1509 , - 938 , - 3711 , - 100 , - 4697 , - 2910 , - 4467 , - 4504 , - 3021 , - 18 , - 359 , - 4044 , - 1345 , - 1990 , - 1115 , - 3584 , - 4533 , - 3962 , - 1871 , - 3124 , - 2857 , - 1070 , - 2627 , - 2664 , - 1181 , - 3042 , - 3383 , - 2204 , - 4369 , - 150 , - 4139 , - 1744 , - 2693 , - 2122 , - 31 , - 1284 , - 1017 , - 4094 , - 787 , - 824 , - 4205 , - 1202 , - 1543 , - 364 , - 2529 , - 3174 , - 2299 , - 4768 , - 853 , - 282 , - 3055 , - 4308 , - 4041 , - 2254 , - 3811 , - 3848 , - 2365 , - 4226 , - 4567 , - 3388 , - 689 , - 1334 , - 459 , - 2928 , - 3877 , - 3306 , - 1215 , - 2468 , - 2201 , - 414 , - 1971 , - 2008 , - 525 , - 2386 , - 2727 , - 1548 , - 3713 , - 4358 , - 3483 , - 1088 , - 2037 , - 1466 , - 4239 , - 628 , - 361 , - 3438 , - 131 , - 168 , - 3549 , - 546 , - 887 , - 4572 , - 1873 , - 2518 , - 1643 , - 4112 , - 197 , - 4490 , - 2399 , - 3652 , - 3385 , - 1598 , - 3155 , - 3192 , - 1709 , - 3570 , - 3911 , - 2732 , - 33 , - 678 , - 4667 , - 2272 , - 3221 , - 2650 , - 559 , - 1812 , - 1545 , - 4622 , - 1315 , - 1352 , - 4733 , - 1730 , - 2071 , - 892 , - 3057 , - 3702 , - 2827 , - 432 , - 1381 , - 810 , - 3583 , - 4836 , - 4569 , - 2782 , - 4339 , - 4376 , - 2893 , - 4754 , - 231 , - 3916 , - 1217 , - 1862 , - 987 , - 3456 , - 4405 , - 3834 , - 1743 , - 2996 , - 2729 , - 942 , - 2499 , - 2536 , - 1053 , - 2914 , - 3255 , - 2076 , - 4241 , - 22 , - 4011 , - 1616 , - 2565 , - 1994 , - 4767 , - 1156 , - 889 , - 3966 , - 659 , - 696 , - 4077 , - 1074 , - 1415 , - 236 , - 2401 , - 3046 , - 2171 , - 4640 , - 725 , - 154 , - 2927 , - 4180 , - 3913 , - 2126 , - 3683 , - 3720 , - 2237 , - 4098 , - 4439 , - 3260 , - 561 , - 1206 , - 331 , - 2800 , - 3749 , - 3178 , - 1087 , - 2340 , - 2073 , - 286 , - 1843 , - 1880 , - 397 , - 2258 , - 2599 , - 1420 , - 3585 , - 4230 , - 3355 , - 960 , - 1909 , - 1338 , - 4111 , - 500 , - 233 , - 3310 , - 3 , - 40 , - 3421 , - 418 , - 759 , - 4444 , - 1745 , - 2390 , - 1515 , - 3984 , - 69 , - 4362 , - 2271 , - 3524 , - 3257 , - 1470 , - 3027 , - 3064 , - 1581 , - 3442 , - 3783 , - 2604 , - 4769 , - 550 , - 4539 , - 2144 , - 3093 , - 2522 , - 431 , - 1684 , - 1417 , - 4494 , - 1187 , - 1224 , - 4605 , - 1602 , - 1943 , - 764 , - 2929 , - 3574 , - 2699 , - 304 , - 1253 , - 682 , - 3455 , - 4708 , - 4441 , - 2654 , - 4211 , - 4248 , - 2765 , - 4626 , - 103 , - 3788 , - 1089 , - 1734 , - 859 , - 3328 , - 4277 , - 3706 , - 1615 , - 2868 , - 2601 , - 814 , - 2371 , - 2408 , - 925 , - 2786 , - 3127 , - 1948 , - 4113 , - 4758 , - 3883 , - 1488 , - 2437 , - 1866 , - 4639 , - 1028 , - 761 , - 3838 , - 531 , - 568 , - 3949 , - 946 , - 1287 , - 108 , - 2273 , - 2918 , - 2043 , - 4512 , - 597 , - 26 , - 2799 , - 4052 , - 3785 , - 1998 , - 3555 , - 3592 , - 2109 , - 3970 , - 4311 , - 3132 , - 433 , - 1078 , - 203 , - 2672 , - 3621 , - 3050 , - 959 , - 2212 , - 1945 , - 158 , - 1715 , - 1752 , - 269 , - 2130 , - 2471 , - 1292 , - 3457 , - 4102 , - 3227 , - 832 , - 1781 , - 1210 , - 3983 , - 372 , - 105 , - 3182 , - 4739 , - 4776 , - 3293 , - 290 , - 631 , - 4316 , - 1617 , - 2262 , - 1387 , - 3856 , - 4805 , - 4234 , - 2143 , - 3396 , - 3129 , - 1342 , - 2899 , - 2936 , - 1453 , - 3314 , - 3655 , - 2476 , - 4641 , - 422 , - 4411 , - 2016 , - 2965 , - 2394 , - 303 , - 1556 , - 1289 , - 4366 , - 1059 , - 1096 , - 4477 , - 1474 , - 1815 , - 636 , - 2801 , - 3446 , - 2571 , - 176 , - 1125 , - 554 , - 3327 , - 4580 , - 4313 , - 2526 , - 4083 , - 4120 , - 2637 , - 4498 , - 4839 , - 3660 , - 961 , - 1606 , - 731 , - 3200 , - 4149 , - 3578 , - 1487 , - 2740 , - 2473 , - 686 , - 2243 , - 2280 , - 797 , - 2658 , - 2999 , - 1820 , - 3985 , - 4630 , - 3755 , - 1360 , - 2309 , - 1738 , - 4511 , - 900 , - 633 , - 3710 , - 403 , - 440 , - 3821 , - 818 , - 1159 , - 4844 , - 2145 , - 2790 , - 1915 , - 4384 , - 469 , - 4762 , - 2671 , - 3924 , - 3657 , - 1870 , - 3427 , - 3464 , - 1981 , - 3842 , - 4183 , - 3004 , - 305 , - 950 , - 75 , - 2544 , - 3493 , - 2922 , - 831 , - 2084 , - 1817 , - 30 , - 1587 , - 1624 , - 141 , - 2002 , - 2343 , - 1164 , - 3329 , - 3974 , - 3099 , - 704 , - 1653 , - 1082 , - 3855 , - 244 , - 4841 , - 3054 , - 4611 , - 4648 , - 3165 , - 162 , - 503 , - 4188 , - 1489 , - 2134 , - 1259 , - 3728 , - 4677 , - 4106 , - 2015 , - 3268 , - 3001 , - 1214 , - 2771 , - 2808 , - 1325 , - 3186 , - 3527 , - 2348 , - 4513 , - 294 , - 4283 , - 1888 , - 2837 , - 2266 , - 175 , - 1428 , - 1161 , - 4238 , - 931 , - 968 , - 4349 , - 1346 , - 1687 , - 508 , - 2673 , - 3318 , - 2443 , - 48 , - 997 , - 426 , - 3199 , - 4452 , - 4185 , - 2398 , - 3955 , - 3992 , - 2509 , - 4370 , - 4711 , - 3532 , - 833 , - 1478 , - 603 , - 3072 , - 4021 , - 3450 , - 1359 , - 2612 , - 2345 , - 558 , - 2115 , - 2152 , - 669 , - 2530 , - 2871 , - 1692 , - 3857 , - 4502 , - 3627 , - 1232 , - 2181 , - 1610 , - 4383 , - 772 , - 505 , - 3582 , - 275 , - 312 , - 3693 , - 690 , - 1031 , - 4716 , - 2017 , - 2662 , - 1787 , - 4256 , - 341 , - 4634 , - 2543 , - 3796 , - 3529 , - 1742 , - 3299 , - 3336 , - 1853 , - 3714 , - 4055 , - 2876 , - 177 , - 822 , - 4811 , - 2416 , - 3365 , - 2794 , - 703 , - 1956 , - 1689 , - 4766 , - 1459 , - 1496 , - 13 , - 1874 , - 2215 , - 1036 , - 3201 , - 3846 , - 2971 , - 576 , - 1525 , - 954 , - 3727 , - 116 , - 4713 , - 2926 , - 4483 , - 4520 , - 3037 , - 34 , - 375 , - 4060 , - 1361 , - 2006 , - 1131 , - 3600 , - 4549 , - 3978 , - 1887 , - 3140 , - 2873 , - 1086 , - 2643 , - 2680 , - 1197 , - 3058 , - 3399 , - 2220 , - 4385 , - 166 , - 4155 , - 1760 , - 2709 , - 2138 , - 47 , - 1300 , - 1033 , - 4110 , - 803 , - 840 , - 4221 , - 1218 , - 1559 , - 380 , - 2545 , - 3190 , - 2315 , - 4784 , - 869 , - 298 , - 3071 , - 4324 , - 4057 , - 2270 , - 3827 , - 3864 , - 2381 , - 4242 , - 4583 , - 3404 , - 705 , - 1350 , - 475 , - 2944 , - 3893 , - 3322 , - 1231 , - 2484 , - 2217 , - 430 , - 1987 , - 2024 , - 541 , - 2402 , - 2743 , - 1564 , - 3729 , - 4374 , - 3499 , - 1104 , - 2053 , - 1482 , - 4255 , - 644 , - 377 , - 3454 , - 147 , - 184 , - 3565 , - 562 , - 903 , - 4588 , - 1889 , - 2534 , - 1659 , - 4128 , - 213 , - 4506 , - 2415 , - 3668 , - 3401 , - 1614 , - 3171 , - 3208 , - 1725 , - 3586 , - 3927 , - 2748 , - 49 , - 694 , - 4683 , - 2288 , - 3237 , - 2666 , - 575 , - 1828 , - 1561 , - 4638 , - 1331 , - 1368 , - 4749 , - 1746 , - 2087 , - 908 , - 3073 , - 3718 , - 2843 , - 448 , - 1397 , - 826 , - 3599 , - 4852 , - 4585 , - 2798 , - 4355 , - 4392 , - 2909 , - 4770 , - 247 , - 3932 , - 1233 , - 1878 , - 1003 , - 3472 , - 4421 , - 3850 , - 1759 , - 3012 , - 2745 , - 958 , - 2515 , - 2552 , - 1069 , - 2930 , - 3271 , - 2092 , - 4257 , - 38 , - 4027 , - 1632 , - 2581 , - 2010 , - 4783 , - 1172 , - 905 , - 3982 , - 675 , - 712 , - 4093 , - 1090 , - 1431 , - 252 , - 2417 , - 3062 , - 2187 , - 4656 , - 741 , - 170 , - 2943 , - 4196 , - 3929 , - 2142 , - 3699 , - 3736 , - 2253 , - 4114 , - 4455 , - 3276 , - 577 , - 1222 , - 347 , - 2816 , - 3765 , - 3194 , - 1103 , - 2356 , - 2089 , - 302 , - 1859 , - 1896 , - 413 , - 2274 , - 2615 , - 1436 , - 3601 , - 4246 , - 3371 , - 976 , - 1925 , - 1354 , - 4127 , - 516 , - 249 , - 3326 , - 19 , - 56 , - 3437 , - 434 , - 775 , - 4460 , - 1761 , - 2406 , - 1531 , - 4000 , - 85 , - 4378 , - 2287 , - 3540 , - 3273 , - 1486 , - 3043 , - 3080 , - 1597 , - 3458 , - 3799 , - 2620 , - 4785 , - 566 , - 4555 , - 2160 , - 3109 , - 2538 , - 447 , - 1700 , - 1433 , - 4510 , - 1203 , - 1240 , - 4621 , - 1618 , - 1959 , - 780 , - 2945 , - 3590 , - 2715 , - 320 , - 1269 , - 698 , - 3471 , - 4724 , - 4457 , - 2670 , - 4227 , - 4264 , - 2781 , - 4642 , - 119 , - 3804 , - 1105 , - 1750 , - 875 , - 3344 , - 4293 , - 3722 , - 1631 , - 2884 , - 2617 , - 830 , - 2387 , - 2424 , - 941 , - 2802 , - 3143 , - 1964 , - 4129 , - 4774 , - 3899 , - 1504 , - 2453 , - 1882 , - 4655 , - 1044 , - 777 , - 3854 , - 547 , - 584 , - 3965 , - 962 , - 1303 , - 124 , - 2289 , - 2934 , - 2059 , - 4528 , - 613 , - 42 , - 2815 , - 4068 , - 3801 , - 2014 , - 3571 , - 3608 , - 2125 , - 3986 , - 4327 , - 3148 , - 449 , - 1094 , - 219 , - 2688 , - 3637 , - 3066 , - 975 , - 2228 , - 1961 , - 174 , - 1731 , - 1768 , - 285 , - 2146 , - 2487 , - 1308 , - 3473 , - 4118 , - 3243 , - 848 , - 1797 , - 1226 , - 3999 , - 388 , - 121 , - 3198 , - 4755 , - 4792 , - 3309 , - 306 , - 647 , - 4332 , - 1633 , - 2278 , - 1403 , - 3872 , - 4821 , - 4250 , - 2159 , - 3412 , - 3145 , - 1358 , - 2915 , - 2952 , - 1469 , - 3330 , - 3671 , - 2492 , - 4657 , - 438 , - 4427 , - 2032 , - 2981 , - 2410 , - 319 , - 1572 , - 1305 , - 4382 , - 1075 , - 1112 , - 4493 , - 1490 , - 1831 , - 652 , - 2817 , - 3462 , - 2587 , - 192 , - 1141 , - 570 , - 3343 , - 4596 , - 4329 , - 2542 , - 4099 , - 4136 , - 2653 , - 4514 , - 4855 , - 3676 , - 977 , - 1622 , - 747 , - 3216 , - 4165 , - 3594 , - 1503 , - 2756 , - 2489 , - 702 , - 2259 , - 2296 , - 813 , - 2674 , - 3015 , - 1836 , - 4001 , - 4646 , - 3771 , - 1376 , - 2325 , - 1754 , - 4527 , - 916 , - 649 , - 3726 , - 419 , - 456 , - 3837 , - 834 , - 1175 , - 4860 , - 2161 , - 2806 , - 1931 , - 4400 , - 485 , - 4778 , - 2687 , - 3940 , - 3673 , - 1886 , - 3443 , - 3480 , - 1997 , - 3858 , - 4199 , - 3020 , - 321 , - 966 , - 91 , - 2560 , - 3509 , - 2938 , - 847 , - 2100 , - 1833 , - 46 , - 1603 , - 1640 , - 157 , - 2018 , - 2359 , - 1180 , - 3345 , - 3990 , - 3115 , - 720 , - 1669 , - 1098 , - 3871 , - 260 , - 4857 , - 3070 , - 4627 , - 4664 , - 3181 , - 178 , - 519 , - 4204 , - 1505 , - 2150 , - 1275 , - 3744 , - 4693 , - 4122 , - 2031 , - 3284 , - 3017 , - 1230 , - 2787 , - 2824 , - 1341 , - 3202 , - 3543 , - 2364 , - 4529 , - 310 , - 4299 , - 1904 , - 2853 , - 2282 , - 191 , - 1444 , - 1177 , - 4254 , - 947 , - 984 , - 4365 , - 1362 , - 1703 , - 524 , - 2689 , - 3334 , - 2459 , - 64 , - 1013 , - 442 , - 3215 , - 4468 , - 4201 , - 2414 , - 3971 , - 4008 , - 2525 , - 4386 , - 4727 , - 3548 , - 849 , - 1494 , - 619 , - 3088 , - 4037 , - 3466 , - 1375 , - 2628 , - 2361 , - 574 , - 2131 , - 2168 , - 685 , - 2546 , - 2887 , - 1708 , - 3873 , - 4518 , - 3643 , - 1248 , - 2197 , - 1626 , - 4399 , - 788 , - 521 , - 3598 , - 291 , - 328 , - 3709 , - 706 , - 1047 , - 4732 , - 2033 , - 2678 , - 1803 , - 4272 , - 357 , - 4650 , - 2559 , - 3812 , - 3545 , - 1758 , - 3315 , - 3352 , - 1869 , - 3730 , - 4071 , - 2892 , - 193 , - 838 , - 4827 , - 2432 , - 3381 , - 2810 , - 719 , - 1972 , - 1705 , - 4782 , - 1475 , - 1512 , - 29 , - 1890 , - 2231 , - 1052 , - 3217 , - 3862 , - 2987 , - 592 , - 1541 , - 970 , - 3743 , - 132 , - 4729 , - 2942 , - 4499 , - 4536 , - 3053 , - 50 , - 391 , - 4076 , - 1377 , - 2022 , - 1147 , - 3616 , - 4565 , - 3994 , - 1903 , - 3156 , - 2889 , - 1102 , - 2659 , - 2696 , - 1213 , - 3074 , - 3415 , - 2236 , - 4401 , - 182 , - 4171 , - 1776 , - 2725 , - 2154 , - 63 , - 1316 , - 1049 , - 4126 , - 819 , - 856 , - 4237 , - 1234 , - 1575 , - 396 , - 2561 , - 3206 , - 2331 , - 4800 , - 885 , - 314 , - 3087 , - 4340 , - 4073 , - 2286 , - 3843 , - 3880 , - 2397 , - 4258 , - 4599 , - 3420 , - 721 , - 1366 , - 491 , - 2960 , - 3909 , - 3338 , - 1247 , - 2500 , - 2233 , - 446 , - 2003 , - 2040 , - 557 , - 2418 , - 2759 , - 1580 , - 3745 , - 4390 , - 3515 , - 1120 , - 2069 , - 1498 , - 4271 , - 660 , - 393 , - 3470 , - 163 , - 200 , - 3581 , - 578 , - 919 , - 4604 , - 1905 , - 2550 , - 1675 , - 4144 , - 229 , - 4522 , - 2431 , - 3684 , - 3417 , - 1630 , - 3187 , - 3224 , - 1741 , - 3602 , - 3943 , - 2764 , - 65 , - 710 , - 4699 , - 2304 , - 3253 , - 2682 , - 591 , - 1844 , - 1577 , - 4654 , - 1347 , - 1384 , - 4765 , - 1762 , - 2103 , - 924 , - 3089 , - 3734 , - 2859 , - 464 , - 1413 , - 842 , - 3615 , - 4 , - 4601 , - 2814 , - 4371 , - 4408 , - 2925 , - 4786 , - 263 , - 3948 , - 1249 , - 1894 , - 1019 , - 3488 , - 4437 , - 3866 , - 1775 , - 3028 , - 2761 , - 974 , - 2531 , - 2568 , - 1085 , - 2946 , - 3287 , - 2108 , - 4273 , - 54 , - 4043 , - 1648 , - 2597 , - 2026 , - 4799 , - 1188 , - 921 , - 3998 , - 691 , - 728 , - 4109 , - 1106 , - 1447 , - 268 , - 2433 , - 3078 , - 2203 , - 4672 , - 757 , - 186 , - 2959 , - 4212 , - 3945 , - 2158 , - 3715 , - 3752 , - 2269 , - 4130 , - 4471 , - 3292 , - 593 , - 1238 , - 363 , - 2832 , - 3781 , - 3210 , - 1119 , - 2372 , - 2105 , - 318 , - 1875 , - 1912 , - 429 , - 2290 , - 2631 , - 1452 , - 3617 , - 4262 , - 3387 , - 992 , - 1941 , - 1370 , - 4143 , - 532 , - 265 , - 3342 , - 35 , - 72 , - 3453 , - 450 , - 791 , - 4476 , - 1777 , - 2422 , - 1547 , - 4016 , - 101 , - 4394 , - 2303 , - 3556 , - 3289 , - 1502 , - 3059 , - 3096 , - 1613 , - 3474 , - 3815 , - 2636 , - 4801 , - 582 , - 4571 , - 2176 , - 3125 , - 2554 , - 463 , - 1716 , - 1449 , - 4526 , - 1219 , - 1256 , - 4637 , - 1634 , - 1975 , - 796 , - 2961 , - 3606 , - 2731 , - 336 , - 1285 , - 714 , - 3487 , - 4740 , - 4473 , - 2686 , - 4243 , - 4280 , - 2797 , - 4658 , - 135 , - 3820 , - 1121 , - 1766 , - 891 , - 3360 , - 4309 , - 3738 , - 1647 , - 2900 , - 2633 , - 846 , - 2403 , - 2440 , - 957 , - 2818 , - 3159 , - 1980 , - 4145 , - 4790 , - 3915 , - 1520 , - 2469 , - 1898 , - 4671 , - 1060 , - 793 , - 3870 , - 563 , - 600 , - 3981 , - 978 , - 1319 , - 140 , - 2305 , - 2950 , - 2075 , - 4544 , - 629 , - 58 , - 2831 , - 4084 , - 3817 , - 2030 , - 3587 , - 3624 , - 2141 , - 4002 , - 4343 , - 3164 , - 465 , - 1110 , - 235 , - 2704 , - 3653 , - 3082 , - 991 , - 2244 , - 1977 , - 190 , - 1747 , - 1784 , - 301 , - 2162 , - 2503 , - 1324 , - 3489 , - 4134 , - 3259 , - 864 , - 1813 , - 1242 , - 4015 , - 404 , - 137 , - 3214 , - 4771 , - 4808 , - 3325 , - 322 , - 663 , - 4348 , - 1649 , - 2294 , - 1419 , - 3888 , - 4837 , - 4266 , - 2175 , - 3428 , - 3161 , - 1374 , - 2931 , - 2968 , - 1485 , - 3346 , - 3687 , - 2508 , - 4673 , - 454 , - 4443 , - 2048 , - 2997 , - 2426 , - 335 , - 1588 , - 1321 , - 4398 , - 1091 , - 1128 , - 4509 , - 1506 , - 1847 , - 668 , - 2833 , - 3478 , - 2603 , - 208 , - 1157 , - 586 , - 3359 , - 4612 , - 4345 , - 2558 , - 4115 , - 4152 , - 2669 , - 4530 , - 7 , - 3692 , - 993 , - 1638 , - 763 , - 3232 , - 4181 , - 3610 , - 1519 , - 2772 , - 2505 , - 718 , - 2275 , - 2312 , - 829 , - 2690 , - 3031 , - 1852 , - 4017 , - 4662 , - 3787 , - 1392 , - 2341 , - 1770 , - 4543 , - 932 , - 665 , - 3742 , - 435 , - 472 , - 3853 , - 850 , - 1191 , - 12 , - 2177 , - 2822 , - 1947 , - 4416 , - 501 , - 4794 , - 2703 , - 3956 , - 3689 , - 1902 , - 3459 , - 3496 , - 2013 , - 3874 , - 4215 , - 3036 , - 337 , - 982 , - 107 , - 2576 , - 3525 , - 2954 , - 863 , - 2116 , - 1849 , - 62 , - 1619 , - 1656 , - 173 , - 2034 , - 2375 , - 1196 , - 3361 , - 4006 , - 3131 , - 736 , - 1685 , - 1114 , - 3887 , - 276 , - 9 , - 3086 , - 4643 , - 4680 , - 3197 , - 194 , - 535 , - 4220 , - 1521 , - 2166 , - 1291 , - 3760 , - 4709 , - 4138 , - 2047 , - 3300 , - 3033 , - 1246 , - 2803 , - 2840 , - 1357 , - 3218 , - 3559 , - 2380 , - 4545 , - 326 , - 4315 , - 1920 , - 2869 , - 2298 , - 207 , - 1460 , - 1193 , - 4270 , - 963 , - 1000 , - 4381 , - 1378 , - 1719 , - 540 , - 2705 , - 3350 , - 2475 , - 80 , - 1029 , - 458 , - 3231 , - 4484 , - 4217 , - 2430 , - 3987 , - 4024 , - 2541 , - 4402 , - 4743 , - 3564 , - 865 , - 1510 , - 635 , - 3104 , - 4053 , - 3482 , - 1391 , - 2644 , - 2377 , - 590 , - 2147 , - 2184 , - 701 , - 2562 , - 2903 , - 1724 , - 3889 , - 4534 , - 3659 , - 1264 , - 2213 , - 1642 , - 4415 , - 804 , - 537 , - 3614 , - 307 , - 344 , - 3725 , - 722 , - 1063 , - 4748 , - 2049 , - 2694 , - 1819 , - 4288 , - 373 , - 4666 , - 2575 , - 3828 , - 3561 , - 1774 , - 3331 , - 3368 , - 1885 , - 3746 , - 4087 , - 2908 , - 209 , - 854 , - 4843 , - 2448 , - 3397 , - 2826 , - 735 , - 1988 , - 1721 , - 4798 , - 1491 , - 1528 , - 45 , - 1906 , - 2247 , - 1068 , - 3233 , - 3878 , - 3003 , - 608 , - 1557 , - 986 , - 3759 , - 148 , - 4745 , - 2958 , - 4515 , - 4552 , - 3069 , - 66 , - 407 , - 4092 , - 1393 , - 2038 , - 1163 , - 3632 , - 4581 , - 4010 , - 1919 , - 3172 , - 2905 , - 1118 , - 2675 , - 2712 , - 1229 , - 3090 , - 3431 , - 2252 , - 4417 , - 198 , - 4187 , - 1792 , - 2741 , - 2170 , - 79 , - 1332 , - 1065 , - 4142 , - 835 , - 872 , - 4253 , - 1250 , - 1591 , - 412 , - 2577 , - 3222 , - 2347 , - 4816 , - 901 , - 330 , - 3103 , - 4356 , - 4089 , - 2302 , - 3859 , - 3896 , - 2413 , - 4274 , - 4615 , - 3436 , - 737 , - 1382 , - 507 , - 2976 , - 3925 , - 3354 , - 1263 , - 2516 , - 2249 , - 462 , - 2019 , - 2056 , - 573 , - 2434 , - 2775 , - 1596 , - 3761 , - 4406 , - 3531 , - 1136 , - 2085 , - 1514 , - 4287 , - 676 , - 409 , - 3486 , - 179 , - 216 , - 3597 , - 594 , - 935 , - 4620 , - 1921 , - 2566 , - 1691 , - 4160 , - 245 , - 4538 , - 2447 , - 3700 , - 3433 , - 1646 , - 3203 , - 3240 , - 1757 , - 3618 , - 3959 , - 2780 , - 81 , - 726 , - 4715 , - 2320 , - 3269 , - 2698 , - 607 , - 1860 , - 1593 , - 4670 , - 1363 , - 1400 , - 4781 , - 1778 , - 2119 , - 940 , - 3105 , - 3750 , - 2875 , - 480 , - 1429 , - 858 , - 3631 , - 20 , - 4617 , - 2830 , - 4387 , - 4424 , - 2941 , - 4802 , - 279 , - 3964 , - 1265 , - 1910 , - 1035 , - 3504 , - 4453 , - 3882 , - 1791 , - 3044 , - 2777 , - 990 , - 2547 , - 2584 , - 1101 , - 2962 , - 3303 , - 2124 , - 4289 , - 70 , - 4059 , - 1664 , - 2613 , - 2042 , - 4815 , - 1204 , - 937 , - 4014 , - 707 , - 744 , - 4125 , - 1122 , - 1463 , - 284 , - 2449 , - 3094 , - 2219 , - 4688 , - 773 , - 202 , - 2975 , - 4228 , - 3961 , - 2174 , - 3731 , - 3768 , - 2285 , - 4146 , - 4487 , - 3308 , - 609 , - 1254 , - 379 , - 2848 , - 3797 , - 3226 , - 1135 , - 2388 , - 2121 , - 334 , - 1891 , - 1928 , - 445 , - 2306 , - 2647 , - 1468 , - 3633 , - 4278 , - 3403 , - 1008 , - 1957 , - 1386 , - 4159 , - 548 , - 281 , - 3358 , - 51 , - 88 , - 3469 , - 466 , - 807 , - 4492 , - 1793 , - 2438 , - 1563 , - 4032 , - 117 , - 4410 , - 2319 , - 3572 , - 3305 , - 1518 , - 3075 , - 3112 , - 1629 , - 3490 , - 3831 , - 2652 , - 4817 , - 598 , - 4587 , - 2192 , - 3141 , - 2570 , - 479 , - 1732 , - 1465 , - 4542 , - 1235 , - 1272 , - 4653 , - 1650 , - 1991 , - 812 , - 2977 , - 3622 , - 2747 , - 352 , - 1301 , - 730 , - 3503 , - 4756 , - 4489 , - 2702 , - 4259 , - 4296 , - 2813 , - 4674 , - 151 , - 3836 , - 1137 , - 1782 , - 907 , - 3376 , - 4325 , - 3754 , - 1663 , - 2916 , - 2649 , - 862 , - 2419 , - 2456 , - 973 , - 2834 , - 3175 , - 1996 , - 4161 , - 4806 , - 3931 , - 1536 , - 2485 , - 1914 , - 4687 , - 1076 , - 809 , - 3886 , - 579 , - 616 , - 3997 , - 994 , - 1335 , - 156 , - 2321 , - 2966 , - 2091 , - 4560 , - 645 , - 74 , - 2847 , - 4100 , - 3833 , - 2046 , - 3603 , - 3640 , - 2157 , - 4018 , - 4359 , - 3180 , - 481 , - 1126 , - 251 , - 2720 , - 3669 , - 3098 , - 1007 , - 2260 , - 1993 , - 206 , - 1763 , - 1800 , - 317 , - 2178 , - 2519 , - 1340 , - 3505 , - 4150 , - 3275 , - 880 , - 1829 , - 1258 , - 4031 , - 420 , - 153 , - 3230 , - 4787 , - 4824 , - 3341 , - 338 , - 679 , - 4364 , - 1665 , - 2310 , - 1435 , - 3904 , - 4853 , - 4282 , - 2191 , - 3444 , - 3177 , - 1390 , - 2947 , - 2984 , - 1501 , - 3362 , - 3703 , - 2524 , - 4689 , - 470 , - 4459 , - 2064 , - 3013 , - 2442 , - 351 , - 1604 , - 1337 , - 4414 , - 1107 , - 1144 , - 4525 , - 1522 , - 1863 , - 684 , - 2849 , - 3494 , - 2619 , - 224 , - 1173 , - 602 , - 3375 , - 4628 , - 4361 , - 2574 , - 4131 , - 4168 , - 2685 , - 4546 , - 23 , - 3708 , - 1009 , - 1654 , - 779 , - 3248 , - 4197 , - 3626 , - 1535 , - 2788 , - 2521 , - 734 , - 2291 , - 2328 , - 845 , - 2706 , - 3047 , - 1868 , - 4033 , - 4678 , - 3803 , - 1408 , - 2357 , - 1786 , - 4559 , - 948 , - 681 , - 3758 , - 451 , - 488 , - 3869 , - 866 , - 1207 , - 28 , - 2193 , - 2838 , - 1963 , - 4432 , - 517 , - 4810 , - 2719 , - 3972 , - 3705 , - 1918 , - 3475 , - 3512 , - 2029 , - 3890 , - 4231 , - 3052 , - 353 , - 998 , - 123 , - 2592 , - 3541 , - 2970 , - 879 , - 2132 , - 1865 , - 78 , - 1635 , - 1672 , - 189 , - 2050 , - 2391 , - 1212 , - 3377 , - 4022 , - 3147 , - 752 , - 1701 , - 1130 , - 3903 , - 292 , - 25 , - 3102 , - 4659 , - 4696 , - 3213 , - 210 , - 551 , - 4236 , - 1537 , - 2182 , - 1307 , - 3776 , - 4725 , - 4154 , - 2063 , - 3316 , - 3049 , - 1262 , - 2819 , - 2856 , - 1373 , - 3234 , - 3575 , - 2396 , - 4561 , - 342 , - 4331 , - 1936 , - 2885 , - 2314 , - 223 , - 1476 , - 1209 , - 4286 , - 979 , - 1016 , - 4397 , - 1394 , - 1735 , - 556 , - 2721 , - 3366 , - 2491 , - 96 , - 1045 , - 474 , - 3247 , - 4500 , - 4233 , - 2446 , - 4003 , - 4040 , - 2557 , - 4418 , - 4759 , - 3580 , - 881 , - 1526 , - 651 , - 3120 , - 4069 , - 3498 , - 1407 , - 2660 , - 2393 , - 606 , - 2163 , - 2200 , - 717 , - 2578 , - 2919 , - 1740 , - 3905 , - 4550 , - 3675 , - 1280 , - 2229 , - 1658 , - 4431 , - 820 , - 553 , - 3630 , - 323 , - 360 , - 3741 , - 738 , - 1079 , - 4764 , - 2065 , - 2710 , - 1835 , - 4304 , - 389 , - 4682 , - 2591 , - 3844 , - 3577 , - 1790 , - 3347 , - 3384 , - 1901 , - 3762 , - 4103 , - 2924 , - 225 , - 870 , - 4859 , - 2464 , - 3413 , - 2842 , - 751 , - 2004 , - 1737 , - 4814 , - 1507 , - 1544 , - 61 , - 1922 , - 2263 , - 1084 , - 3249 , - 3894 , - 3019 , - 624 , - 1573 , - 1002 , - 3775 , - 164 , - 4761 , - 2974 , - 4531 , - 4568 , - 3085 , - 82 , - 423 , - 4108 , - 1409 , - 2054 , - 1179 , - 3648 , - 4597 , - 4026 , - 1935 , - 3188 , - 2921 , - 1134 , - 2691 , - 2728 , - 1245 , - 3106 , - 3447 , - 2268 , - 4433 , - 214 , - 4203 , - 1808 , - 2757 , - 2186 , - 95 , - 1348 , - 1081 , - 4158 , - 851 , - 888 , - 4269 , - 1266 , - 1607 , - 428 , - 2593 , - 3238 , - 2363 , - 4832 , - 917 , - 346 , - 3119 , - 4372 , - 4105 , - 2318 , - 3875 , - 3912 , - 2429 , - 4290 , - 4631 , - 3452 , - 753 , - 1398 , - 523 , - 2992 , - 3941 , - 3370 , - 1279 , - 2532 , - 2265 , - 478 , - 2035 , - 2072 , - 589 , - 2450 , - 2791 , - 1612 , - 3777 , - 4422 , - 3547 , - 1152 , - 2101 , - 1530 , - 4303 , - 692 , - 425 , - 3502 , - 195 , - 232 , - 3613 , - 610 , - 951 , - 4636 , - 1937 , - 2582 , - 1707 , - 4176 , - 261 , - 4554 , - 2463 , - 3716 , - 3449 , - 1662 , - 3219 , - 3256 , - 1773 , - 3634 , - 3975 , - 2796 , - 97 , - 742 , - 4731 , - 2336 , - 3285 , - 2714 , - 623 , - 1876 , - 1609 , - 4686 , - 1379 , - 1416 , - 4797 , - 1794 , - 2135 , - 956 , - 3121 , - 3766 , - 2891 , - 496 , - 1445 , - 874 , - 3647 , - 36 , - 4633 , - 2846 , - 4403 , - 4440 , - 2957 , - 4818 , - 295 , - 3980 , - 1281 , - 1926 , - 1051 , - 3520 , - 4469 , - 3898 , - 1807 , - 3060 , - 2793 , - 1006 , - 2563 , - 2600 , - 1117 , - 2978 , - 3319 , - 2140 , - 4305 , - 86 , - 4075 , - 1680 , - 2629 , - 2058 , - 4831 , - 1220 , - 953 , - 4030 , - 723 , - 760 , - 4141 , - 1138 , - 1479 , - 300 , - 2465 , - 3110 , - 2235 , - 4704 , - 789 , - 218 , - 2991 , - 4244 , - 3977 , - 2190 , - 3747 , - 3784 , - 2301 , - 4162 , - 4503 , - 3324 , - 625 , - 1270 , - 395 , - 2864 , - 3813 , - 3242 , - 1151 , - 2404 , - 2137 , - 350 , - 1907 , - 1944 , - 461 , - 2322 , - 2663 , - 1484 , - 3649 , - 4294 , - 3419 , - 1024 , - 1973 , - 1402 , - 4175 , - 564 , - 297 , - 3374 , - 67 , - 104 , - 3485 , - 482 , - 823 , - 4508 , - 1809 , - 2454 , - 1579 , - 4048 , - 133 , - 4426 , - 2335 , - 3588 , - 3321 , - 1534 , - 3091 , - 3128 , - 1645 , - 3506 , - 3847 , - 2668 , - 4833 , - 614 , - 4603 , - 2208 , - 3157 , - 2586 , - 495 , - 1748 , - 1481 , - 4558 , - 1251 , - 1288 , - 4669 , - 1666 , - 2007 , - 828 , - 2993 , - 3638 , - 2763 , - 368 , - 1317 , - 746 , - 3519 , - 4772 , - 4505 , - 2718 , - 4275 , - 4312 , - 2829 , - 4690 , - 167 , - 3852 , - 1153 , - 1798 , - 923 , - 3392 , - 4341 , - 3770 , - 1679 , - 2932 , - 2665 , - 878 , - 2435 , - 2472 , - 989 , - 2850 , - 3191 , - 2012 , - 4177 , - 4822 , - 3947 , - 1552 , - 2501 , - 1930 , - 4703 , - 1092 , - 825 , - 3902 , - 595 , - 632 , - 4013 , - 1010 , - 1351 , - 172 , - 2337 , - 2982 , - 2107 , - 4576 , - 661 , - 90 , - 2863 , - 4116 , - 3849 , - 2062 , - 3619 , - 3656 , - 2173 , - 4034 , - 4375 , - 3196 , - 497 , - 1142 , - 267 , - 2736 , - 3685 , - 3114 , - 1023 , - 2276 , - 2009 , - 222 , - 1779 , - 1816 , - 333 , - 2194 , - 2535 , - 1356 , - 3521 , - 4166 , - 3291 , - 896 , - 1845 , - 1274 , - 4047 , - 436 , - 169 , - 3246 , - 4803 , - 4840 , - 3357 , - 354 , - 695 , - 4380 , - 1681 , - 2326 , - 1451 , - 3920 , - 5 , - 4298 , - 2207 , - 3460 , - 3193 , - 1406 , - 2963 , - 3000 , - 1517 , - 3378 , - 3719 , - 2540 , - 4705 , - 486 , - 4475 , - 2080 , - 3029 , - 2458 , - 367 , - 1620 , - 1353 , - 4430 , - 1123 , - 1160 , - 4541 , - 1538 , - 1879 , - 700 , - 2865 , - 3510 , - 2635 , - 240 , - 1189 , - 618 , - 3391 , - 4644 , - 4377 , - 2590 , - 4147 , - 4184 , - 2701 , - 4562 , - 39 , - 3724 , - 1025 , - 1670 , - 795 , - 3264 , - 4213 , - 3642 , - 1551 , - 2804 , - 2537 , - 750 , - 2307 , - 2344 , - 861 , - 2722 , - 3063 , - 1884 , - 4049 , - 4694 , - 3819 , - 1424 , - 2373 , - 1802 , - 4575 , - 964 , - 697 , - 3774 , - 467 , - 504 , - 3885 , - 882 , - 1223 , - 44 , - 2209 , - 2854 , - 1979 , - 4448 , - 533 , - 4826 , - 2735 , - 3988 , - 3721 , - 1934 , - 3491 , - 3528 , - 2045 , - 3906 , - 4247 , - 3068 , - 369 , - 1014 , - 139 , - 2608 , - 3557 , - 2986 , - 895 , - 2148 , - 1881 , - 94 , - 1651 , - 1688 , - 205 , - 2066 , - 2407 , - 1228 , - 3393 , - 4038 , - 3163 , - 768 , - 1717 , - 1146 , - 3919 , - 308 , - 41 , - 3118 , - 4675 , - 4712 , - 3229 , - 226 , - 567 , - 4252 , - 1553 , - 2198 , - 1323 , - 3792 , - 4741 , - 4170 , - 2079 , - 3332 , - 3065 , - 1278 , - 2835 , - 2872 , - 1389 , - 3250 , - 3591 , - 2412 , - 4577 , - 358 , - 4347 , - 1952 , - 2901 , - 2330 , - 239 , - 1492 , - 1225 , - 4302 , - 995 , - 1032 , - 4413 , - 1410 , - 1751 , - 572 , - 2737 , - 3382 , - 2507 , - 112 , - 1061 , - 490 , - 3263 , - 4516 , - 4249 , - 2462 , - 4019 , - 4056 , - 2573 , - 4434 , - 4775 , - 3596 , - 897 , - 1542 , - 667 , - 3136 , - 4085 , - 3514 , - 1423 , - 2676 , - 2409 , - 622 , - 2179 , - 2216 , - 733 , - 2594 , - 2935 , - 1756 , - 3921 , - 4566 , - 3691 , - 1296 , - 2245 , - 1674 , - 4447 , - 836 , - 569 , - 3646 , - 339 , - 376 , - 3757 , - 754 , - 1095 , - 4780 , - 2081 , - 2726 , - 1851 , - 4320 , - 405 , - 4698 , - 2607 , - 3860 , - 3593 , - 1806 , - 3363 , - 3400 , - 1917 , - 3778 , - 4119 , - 2940 , - 241 , - 886 , - 11 , - 2480 , - 3429 , - 2858 , - 767 , - 2020 , - 1753 , - 4830 , - 1523 , - 1560 , - 77 , - 1938 , - 2279 , - 1100 , - 3265 , - 3910 , - 3035 , - 640 , - 1589 , - 1018 , - 3791 , - 180 , - 4777 , - 2990 , - 4547 , - 4584 , - 3101 , - 98 , - 439 , - 4124 , - 1425 , - 2070 , - 1195 , - 3664 , - 4613 , - 4042 , - 1951 , - 3204 , - 2937 , - 1150 , - 2707 , - 2744 , - 1261 , - 3122 , - 3463 , - 2284 , - 4449 , - 230 , - 4219 , - 1824 , - 2773 , - 2202 , - 111 , - 1364 , - 1097 , - 4174 , - 867 , - 904 , - 4285 , - 1282 , - 1623 , - 444 , - 2609 , - 3254 , - 2379 , - 4848 , - 933 , - 362 , - 3135 , - 4388 , - 4121 , - 2334 , - 3891 , - 3928 , - 2445 , - 4306 , - 4647 , - 3468 , - 769 , - 1414 , - 539 , - 3008 , - 3957 , - 3386 , - 1295 , - 2548 , - 2281 , - 494 , - 2051 , - 2088 , - 605 , - 2466 , - 2807 , - 1628 , - 3793 , - 4438 , - 3563 , - 1168 , - 2117 , - 1546 , - 4319 , - 708 , - 441 , - 3518 , - 211 , - 248 , - 3629 , - 626 , - 967 , - 4652 , - 1953 , - 2598 , - 1723 , - 4192 , - 277 , - 4570 , - 2479 , - 3732 , - 3465 , - 1678 , - 3235 , - 3272 , - 1789 , - 3650 , - 3991 , - 2812 , - 113 , - 758 , - 4747 , - 2352 , - 3301 , - 2730 , - 639 , - 1892 , - 1625 , - 4702 , - 1395 , - 1432 , - 4813 , - 1810 , - 2151 , - 972 , - 3137 , - 3782 , - 2907 , - 512 , - 1461 , - 890 , - 3663 , - 52 , - 4649 , - 2862 , - 4419 , - 4456 , - 2973 , - 4834 , - 311 , - 3996 , - 1297 , - 1942 , - 1067 , - 3536 , - 4485 , - 3914 , - 1823 , - 3076 , - 2809 , - 1022 , - 2579 , - 2616 , - 1133 , - 2994 , - 3335 , - 2156 , - 4321 , - 102 , - 4091 , - 1696 , - 2645 , - 2074 , - 4847 , - 1236 , - 969 , - 4046 , - 739 , - 776 , - 4157 , - 1154 , - 1495 , - 316 , - 2481 , - 3126 , - 2251 , - 4720 , - 805 , - 234 , - 3007 , - 4260 , - 3993 , - 2206 , - 3763 , - 3800 , - 2317 , - 4178 , - 4519 , - 3340 , - 641 , - 1286 , - 411 , - 2880 , - 3829 , - 3258 , - 1167 , - 2420 , - 2153 , - 366 , - 1923 , - 1960 , - 477 , - 2338 , - 2679 , - 1500 , - 3665 , - 4310 , - 3435 , - 1040 , - 1989 , - 1418 , - 4191 , - 580 , - 313 , - 3390 , - 83 , - 120 , - 3501 , - 498 , - 839 , - 4524 , - 1825 , - 2470 , - 1595 , - 4064 , - 149 , - 4442 , - 2351 , - 3604 , - 3337 , - 1550 , - 3107 , - 3144 , - 1661 , - 3522 , - 3863 , - 2684 , - 4849 , - 630 , - 4619 , - 2224 , - 3173 , - 2602 , - 511 , - 1764 , - 1497 , - 4574 , - 1267 , - 1304 , - 4685 , - 1682 , - 2023 , - 844 , - 3009 , - 3654 , - 2779 , - 384 , - 1333 , - 762 , - 3535 , - 4788 , - 4521 , - 2734 , - 4291 , - 4328 , - 2845 , - 4706 , - 183 , - 3868 , - 1169 , - 1814 , - 939 , - 3408 , - 4357 , - 3786 , - 1695 , - 2948 , - 2681 , - 894 , - 2451 , - 2488 , - 1005 , - 2866 , - 3207 , - 2028 , - 4193 , - 4838 , - 3963 , - 1568 , - 2517 , - 1946 , - 4719 , - 1108 , - 841 , - 3918 , - 611 , - 648 , - 4029 , - 1026 , - 1367 , - 188 , - 2353 , - 2998 , - 2123 , - 4592 , - 677 , - 106 , - 2879 , - 4132 , - 3865 , - 2078 , - 3635 , - 3672 , - 2189 , - 4050 , - 4391 , - 3212 , - 513 , - 1158 , - 283 , - 2752 , - 3701 , - 3130 , - 1039 , - 2292 , - 2025 , - 238 , - 1795 , - 1832 , - 349 , - 2210 , - 2551 , - 1372 , - 3537 , - 4182 , - 3307 , - 912 , - 1861 , - 1290 , - 4063 , - 452 , - 185 , - 3262 , - 4819 , - 4856 , - 3373 , - 370 , - 711 , - 4396 , - 1697 , - 2342 , - 1467 , - 3936 , - 21 , - 4314 , - 2223 , - 3476 , - 3209 , - 1422 , - 2979 , - 3016 , - 1533 , - 3394 , - 3735 , - 2556 , - 4721 , - 502 , - 4491 , - 2096 , - 3045 , - 2474 , - 383 , - 1636 , - 1369 , - 4446 , - 1139 , - 1176 , - 4557 , - 1554 , - 1895 , - 716 , - 2881 , - 3526 , - 2651 , - 256 , - 1205 , - 634 , - 3407 , - 4660 , - 4393 , - 2606 , - 4163 , - 4200 , - 2717 , - 4578 , - 55 , - 3740 , - 1041 , - 1686 , - 811 , - 3280 , - 4229 , - 3658 , - 1567 , - 2820 , - 2553 , - 766 , - 2323 , - 2360 , - 877 , - 2738 , - 3079 , - 1900 , - 4065 , - 4710 , - 3835 , - 1440 , - 2389 , - 1818 , - 4591 , - 980 , - 713 , - 3790 , - 483 , - 520 , - 3901 , - 898 , - 1239 , - 60 , - 2225 , - 2870 , - 1995 , - 4464 , - 549 , - 4842 , - 2751 , - 4004 , - 3737 , - 1950 , - 3507 , - 3544 , - 2061 , - 3922 , - 4263 , - 3084 , - 385 , - 1030 , - 155 , - 2624 , - 3573 , - 3002 , - 911 , - 2164 , - 1897 , - 110 , - 1667 , - 1704 , - 221 , - 2082 , - 2423 , - 1244 , - 3409 , - 4054 , - 3179 , - 784 , - 1733 , - 1162 , - 3935 , - 324 , - 57 , - 3134 , - 4691 , - 4728 , - 3245 , - 242 , - 583 , - 4268 , - 1569 , - 2214 , - 1339 , - 3808 , - 4757 , - 4186 , - 2095 , - 3348 , - 3081 , - 1294 , - 2851 , - 2888 , - 1405 , - 3266 , - 3607 , - 2428 , - 4593 , - 374 , - 4363 , - 1968 , - 2917 , - 2346 , - 255 , - 1508 , - 1241 , - 4318 , - 1011 , - 1048 , - 4429 , - 1426 , - 1767 , - 588 , - 2753 , - 3398 , - 2523 , - 128 , - 1077 , - 506 , - 3279 , - 4532 , - 4265 , - 2478 , - 4035 , - 4072 , - 2589 , - 4450 , - 4791 , - 3612 , - 913 , - 1558 , - 683 , - 3152 , - 4101 , - 3530 , - 1439 , - 2692 , - 2425 , - 638 , - 2195 , - 2232 , - 749 , - 2610 , - 2951 , - 1772 , - 3937 , - 4582 , - 3707 , - 1312 , - 2261 , - 1690 , - 4463 , - 852 , - 585 , - 3662 , - 355 , - 392 , - 3773 , - 770 , - 1111 , - 4796 , - 2097 , - 2742 , - 1867 , - 4336 , - 421 , - 4714 , - 2623 , - 3876 , - 3609 , - 1822 , - 3379 , - 3416 , - 1933 , - 3794 , - 4135 , - 2956 , - 257 , - 902 , - 27 , - 2496 , - 3445 , - 2874 , - 783 , - 2036 , - 1769 , - 4846 , - 1539 , - 1576 , - 93 , - 1954 , - 2295 , - 1116 , - 3281 , - 3926 , - 3051 , - 656 , - 1605 , - 1034 , - 3807 , - 196 , - 4793 , - 3006 , - 4563 , - 4600 , - 3117 , - 114 , - 455 , - 4140 , - 1441 , - 2086 , - 1211 , - 3680 , - 4629 , - 4058 , - 1967 , - 3220 , - 2953 , - 1166 , - 2723 , - 2760 , - 1277 , - 3138 , - 3479 , - 2300 , - 4465 , - 246 , - 4235 , - 1840 , - 2789 , - 2218 , - 127 , - 1380 , - 1113 , - 4190 , - 883 , - 920 , - 4301 , - 1298 , - 1639 , - 460 , - 2625 , - 3270 , - 2395 , - 0 , - 3621 , - 3238 , - 2547 , - 316 , - 241 , - 1090 , - 1631 , - 632 , - 1789 , - 3870 , - 715 , - 948 , - 3337 , - 1722 , - 4727 , - 1264 , - 4885 , - 4502 , - 3811 , - 1580 , - 1505 , - 2354 , - 2895 , - 1896 , - 3053 , - 206 , - 1979 , - 2212 , - 4601 , - 2986 , - 1063 , - 2528 , - 1221 , - 838 , - 147 , - 2844 , - 2769 , - 3618 , - 4159 , - 3160 , - 4317 , - 1470 , - 3243 , - 3476 , - 937 , - 4250 , - 2327 , - 3792 , - 2485 , - 2102 , - 1411 , - 4108 , - 4033 , - 4882 , - 495 , - 4424 , - 653 , - 2734 , - 4507 , - 4740 , - 2201 , - 586 , - 3591 , - 128 , - 3749 , - 3366 , - 2675 , - 444 , - 369 , - 1218 , - 1759 , - 760 , - 1917 , - 3998 , - 843 , - 1076 , - 3465 , - 1850 , - 4855 , - 1392 , - 85 , - 4630 , - 3939 , - 1708 , - 1633 , - 2482 , - 3023 , - 2024 , - 3181 , - 334 , - 2107 , - 2340 , - 4729 , - 3114 , - 1191 , - 2656 , - 1349 , - 966 , - 275 , - 2972 , - 2897 , - 3746 , - 4287 , - 3288 , - 4445 , - 1598 , - 3371 , - 3604 , - 1065 , - 4378 , - 2455 , - 3920 , - 2613 , - 2230 , - 1539 , - 4236 , - 4161 , - 82 , - 623 , - 4552 , - 781 , - 2862 , - 4635 , - 4868 , - 2329 , - 714 , - 3719 , - 256 , - 3877 , - 3494 , - 2803 , - 572 , - 497 , - 1346 , - 1887 , - 888 , - 2045 , - 4126 , - 971 , - 1204 , - 3593 , - 1978 , - 55 , - 1520 , - 213 , - 4758 , - 4067 , - 1836 , - 1761 , - 2610 , - 3151 , - 2152 , - 3309 , - 462 , - 2235 , - 2468 , - 4857 , - 3242 , - 1319 , - 2784 , - 1477 , - 1094 , - 403 , - 3100 , - 3025 , - 3874 , - 4415 , - 3416 , - 4573 , - 1726 , - 3499 , - 3732 , - 1193 , - 4506 , - 2583 , - 4048 , - 2741 , - 2358 , - 1667 , - 4364 , - 4289 , - 210 , - 751 , - 4680 , - 909 , - 2990 , - 4763 , - 68 , - 2457 , - 842 , - 3847 , - 384 , - 4005 , - 3622 , - 2931 , - 700 , - 625 , - 1474 , - 2015 , - 1016 , - 2173 , - 4254 , - 1099 , - 1332 , - 3721 , - 2106 , - 183 , - 1648 , - 341 , - 4886 , - 4195 , - 1964 , - 1889 , - 2738 , - 3279 , - 2280 , - 3437 , - 590 , - 2363 , - 2596 , - 57 , - 3370 , - 1447 , - 2912 , - 1605 , - 1222 , - 531 , - 3228 , - 3153 , - 4002 , - 4543 , - 3544 , - 4701 , - 1854 , - 3627 , - 3860 , - 1321 , - 4634 , - 2711 , - 4176 , - 2869 , - 2486 , - 1795 , - 4492 , - 4417 , - 338 , - 879 , - 4808 , - 1037 , - 3118 , - 4891 , - 196 , - 2585 , - 970 , - 3975 , - 512 , - 4133 , - 3750 , - 3059 , - 828 , - 753 , - 1602 , - 2143 , - 1144 , - 2301 , - 4382 , - 1227 , - 1460 , - 3849 , - 2234 , - 311 , - 1776 , - 469 , - 86 , - 4323 , - 2092 , - 2017 , - 2866 , - 3407 , - 2408 , - 3565 , - 718 , - 2491 , - 2724 , - 185 , - 3498 , - 1575 , - 3040 , - 1733 , - 1350 , - 659 , - 3356 , - 3281 , - 4130 , - 4671 , - 3672 , - 4829 , - 1982 , - 3755 , - 3988 , - 1449 , - 4762 , - 2839 , - 4304 , - 2997 , - 2614 , - 1923 , - 4620 , - 4545 , - 466 , - 1007 , - 8 , - 1165 , - 3246 , - 91 , - 324 , - 2713 , - 1098 , - 4103 , - 640 , - 4261 , - 3878 , - 3187 , - 956 , - 881 , - 1730 , - 2271 , - 1272 , - 2429 , - 4510 , - 1355 , - 1588 , - 3977 , - 2362 , - 439 , - 1904 , - 597 , - 214 , - 4451 , - 2220 , - 2145 , - 2994 , - 3535 , - 2536 , - 3693 , - 846 , - 2619 , - 2852 , - 313 , - 3626 , - 1703 , - 3168 , - 1861 , - 1478 , - 787 , - 3484 , - 3409 , - 4258 , - 4799 , - 3800 , - 29 , - 2110 , - 3883 , - 4116 , - 1577 , - 4890 , - 2967 , - 4432 , - 3125 , - 2742 , - 2051 , - 4748 , - 4673 , - 594 , - 1135 , - 136 , - 1293 , - 3374 , - 219 , - 452 , - 2841 , - 1226 , - 4231 , - 768 , - 4389 , - 4006 , - 3315 , - 1084 , - 1009 , - 1858 , - 2399 , - 1400 , - 2557 , - 4638 , - 1483 , - 1716 , - 4105 , - 2490 , - 567 , - 2032 , - 725 , - 342 , - 4579 , - 2348 , - 2273 , - 3122 , - 3663 , - 2664 , - 3821 , - 974 , - 2747 , - 2980 , - 441 , - 3754 , - 1831 , - 3296 , - 1989 , - 1606 , - 915 , - 3612 , - 3537 , - 4386 , - 4927 , - 3928 , - 157 , - 2238 , - 4011 , - 4244 , - 1705 , - 90 , - 3095 , - 4560 , - 3253 , - 2870 , - 2179 , - 4876 , - 4801 , - 722 , - 1263 , - 264 , - 1421 , - 3502 , - 347 , - 580 , - 2969 , - 1354 , - 4359 , - 896 , - 4517 , - 4134 , - 3443 , - 1212 , - 1137 , - 1986 , - 2527 , - 1528 , - 2685 , - 4766 , - 1611 , - 1844 , - 4233 , - 2618 , - 695 , - 2160 , - 853 , - 470 , - 4707 , - 2476 , - 2401 , - 3250 , - 3791 , - 2792 , - 3949 , - 1102 , - 2875 , - 3108 , - 569 , - 3882 , - 1959 , - 3424 , - 2117 , - 1734 , - 1043 , - 3740 , - 3665 , - 4514 , - 127 , - 4056 , - 285 , - 2366 , - 4139 , - 4372 , - 1833 , - 218 , - 3223 , - 4688 , - 3381 , - 2998 , - 2307 , - 76 , - 1 , - 850 , - 1391 , - 392 , - 1549 , - 3630 , - 475 , - 708 , - 3097 , - 1482 , - 4487 , - 1024 , - 4645 , - 4262 , - 3571 , - 1340 , - 1265 , - 2114 , - 2655 , - 1656 , - 2813 , - 4894 , - 1739 , - 1972 , - 4361 , - 2746 , - 823 , - 2288 , - 981 , - 598 , - 4835 , - 2604 , - 2529 , - 3378 , - 3919 , - 2920 , - 4077 , - 1230 , - 3003 , - 3236 , - 697 , - 4010 , - 2087 , - 3552 , - 2245 , - 1862 , - 1171 , - 3868 , - 3793 , - 4642 , - 255 , - 4184 , - 413 , - 2494 , - 4267 , - 4500 , - 1961 , - 346 , - 3351 , - 4816 , - 3509 , - 3126 , - 2435 , - 204 , - 129 , - 978 , - 1519 , - 520 , - 1677 , - 3758 , - 603 , - 836 , - 3225 , - 1610 , - 4615 , - 1152 , - 4773 , - 4390 , - 3699 , - 1468 , - 1393 , - 2242 , - 2783 , - 1784 , - 2941 , - 94 , - 1867 , - 2100 , - 4489 , - 2874 , - 951 , - 2416 , - 1109 , - 726 , - 35 , - 2732 , - 2657 , - 3506 , - 4047 , - 3048 , - 4205 , - 1358 , - 3131 , - 3364 , - 825 , - 4138 , - 2215 , - 3680 , - 2373 , - 1990 , - 1299 , - 3996 , - 3921 , - 4770 , - 383 , - 4312 , - 541 , - 2622 , - 4395 , - 4628 , - 2089 , - 474 , - 3479 , - 16 , - 3637 , - 3254 , - 2563 , - 332 , - 257 , - 1106 , - 1647 , - 648 , - 1805 , - 3886 , - 731 , - 964 , - 3353 , - 1738 , - 4743 , - 1280 , - 4901 , - 4518 , - 3827 , - 1596 , - 1521 , - 2370 , - 2911 , - 1912 , - 3069 , - 222 , - 1995 , - 2228 , - 4617 , - 3002 , - 1079 , - 2544 , - 1237 , - 854 , - 163 , - 2860 , - 2785 , - 3634 , - 4175 , - 3176 , - 4333 , - 1486 , - 3259 , - 3492 , - 953 , - 4266 , - 2343 , - 3808 , - 2501 , - 2118 , - 1427 , - 4124 , - 4049 , - 4898 , - 511 , - 4440 , - 669 , - 2750 , - 4523 , - 4756 , - 2217 , - 602 , - 3607 , - 144 , - 3765 , - 3382 , - 2691 , - 460 , - 385 , - 1234 , - 1775 , - 776 , - 1933 , - 4014 , - 859 , - 1092 , - 3481 , - 1866 , - 4871 , - 1408 , - 101 , - 4646 , - 3955 , - 1724 , - 1649 , - 2498 , - 3039 , - 2040 , - 3197 , - 350 , - 2123 , - 2356 , - 4745 , - 3130 , - 1207 , - 2672 , - 1365 , - 982 , - 291 , - 2988 , - 2913 , - 3762 , - 4303 , - 3304 , - 4461 , - 1614 , - 3387 , - 3620 , - 1081 , - 4394 , - 2471 , - 3936 , - 2629 , - 2246 , - 1555 , - 4252 , - 4177 , - 98 , - 639 , - 4568 , - 797 , - 2878 , - 4651 , - 4884 , - 2345 , - 730 , - 3735 , - 272 , - 3893 , - 3510 , - 2819 , - 588 , - 513 , - 1362 , - 1903 , - 904 , - 2061 , - 4142 , - 987 , - 1220 , - 3609 , - 1994 , - 71 , - 1536 , - 229 , - 4774 , - 4083 , - 1852 , - 1777 , - 2626 , - 3167 , - 2168 , - 3325 , - 478 , - 2251 , - 2484 , - 4873 , - 3258 , - 1335 , - 2800 , - 1493 , - 1110 , - 419 , - 3116 , - 3041 , - 3890 , - 4431 , - 3432 , - 4589 , - 1742 , - 3515 , - 3748 , - 1209 , - 4522 , - 2599 , - 4064 , - 2757 , - 2374 , - 1683 , - 4380 , - 4305 , - 226 , - 767 , - 4696 , - 925 , - 3006 , - 4779 , - 84 , - 2473 , - 858 , - 3863 , - 400 , - 4021 , - 3638 , - 2947 , - 716 , - 641 , - 1490 , - 2031 , - 1032 , - 2189 , - 4270 , - 1115 , - 1348 , - 3737 , - 2122 , - 199 , - 1664 , - 357 , - 4902 , - 4211 , - 1980 , - 1905 , - 2754 , - 3295 , - 2296 , - 3453 , - 606 , - 2379 , - 2612 , - 73 , - 3386 , - 1463 , - 2928 , - 1621 , - 1238 , - 547 , - 3244 , - 3169 , - 4018 , - 4559 , - 3560 , - 4717 , - 1870 , - 3643 , - 3876 , - 1337 , - 4650 , - 2727 , - 4192 , - 2885 , - 2502 , - 1811 , - 4508 , - 4433 , - 354 , - 895 , - 4824 , - 1053 , - 3134 , - 4907 , - 212 , - 2601 , - 986 , - 3991 , - 528 , - 4149 , - 3766 , - 3075 , - 844 , - 769 , - 1618 , - 2159 , - 1160 , - 2317 , - 4398 , - 1243 , - 1476 , - 3865 , - 2250 , - 327 , - 1792 , - 485 , - 102 , - 4339 , - 2108 , - 2033 , - 2882 , - 3423 , - 2424 , - 3581 , - 734 , - 2507 , - 2740 , - 201 , - 3514 , - 1591 , - 3056 , - 1749 , - 1366 , - 675 , - 3372 , - 3297 , - 4146 , - 4687 , - 3688 , - 4845 , - 1998 , - 3771 , - 4004 , - 1465 , - 4778 , - 2855 , - 4320 , - 3013 , - 2630 , - 1939 , - 4636 , - 4561 , - 482 , - 1023 , - 24 , - 1181 , - 3262 , - 107 , - 340 , - 2729 , - 1114 , - 4119 , - 656 , - 4277 , - 3894 , - 3203 , - 972 , - 897 , - 1746 , - 2287 , - 1288 , - 2445 , - 4526 , - 1371 , - 1604 , - 3993 , - 2378 , - 455 , - 1920 , - 613 , - 230 , - 4467 , - 2236 , - 2161 , - 3010 , - 3551 , - 2552 , - 3709 , - 862 , - 2635 , - 2868 , - 329 , - 3642 , - 1719 , - 3184 , - 1877 , - 1494 , - 803 , - 3500 , - 3425 , - 4274 , - 4815 , - 3816 , - 45 , - 2126 , - 3899 , - 4132 , - 1593 , - 4906 , - 2983 , - 4448 , - 3141 , - 2758 , - 2067 , - 4764 , - 4689 , - 610 , - 1151 , - 152 , - 1309 , - 3390 , - 235 , - 468 , - 2857 , - 1242 , - 4247 , - 784 , - 4405 , - 4022 , - 3331 , - 1100 , - 1025 , - 1874 , - 2415 , - 1416 , - 2573 , - 4654 , - 1499 , - 1732 , - 4121 , - 2506 , - 583 , - 2048 , - 741 , - 358 , - 4595 , - 2364 , - 2289 , - 3138 , - 3679 , - 2680 , - 3837 , - 990 , - 2763 , - 2996 , - 457 , - 3770 , - 1847 , - 3312 , - 2005 , - 1622 , - 931 , - 3628 , - 3553 , - 4402 , - 15 , - 3944 , - 173 , - 2254 , - 4027 , - 4260 , - 1721 , - 106 , - 3111 , - 4576 , - 3269 , - 2886 , - 2195 , - 4892 , - 4817 , - 738 , - 1279 , - 280 , - 1437 , - 3518 , - 363 , - 596 , - 2985 , - 1370 , - 4375 , - 912 , - 4533 , - 4150 , - 3459 , - 1228 , - 1153 , - 2002 , - 2543 , - 1544 , - 2701 , - 4782 , - 1627 , - 1860 , - 4249 , - 2634 , - 711 , - 2176 , - 869 , - 486 , - 4723 , - 2492 , - 2417 , - 3266 , - 3807 , - 2808 , - 3965 , - 1118 , - 2891 , - 3124 , - 585 , - 3898 , - 1975 , - 3440 , - 2133 , - 1750 , - 1059 , - 3756 , - 3681 , - 4530 , - 143 , - 4072 , - 301 , - 2382 , - 4155 , - 4388 , - 1849 , - 234 , - 3239 , - 4704 , - 3397 , - 3014 , - 2323 , - 92 , - 17 , - 866 , - 1407 , - 408 , - 1565 , - 3646 , - 491 , - 724 , - 3113 , - 1498 , - 4503 , - 1040 , - 4661 , - 4278 , - 3587 , - 1356 , - 1281 , - 2130 , - 2671 , - 1672 , - 2829 , - 4910 , - 1755 , - 1988 , - 4377 , - 2762 , - 839 , - 2304 , - 997 , - 614 , - 4851 , - 2620 , - 2545 , - 3394 , - 3935 , - 2936 , - 4093 , - 1246 , - 3019 , - 3252 , - 713 , - 4026 , - 2103 , - 3568 , - 2261 , - 1878 , - 1187 , - 3884 , - 3809 , - 4658 , - 271 , - 4200 , - 429 , - 2510 , - 4283 , - 4516 , - 1977 , - 362 , - 3367 , - 4832 , - 3525 , - 3142 , - 2451 , - 220 , - 145 , - 994 , - 1535 , - 536 , - 1693 , - 3774 , - 619 , - 852 , - 3241 , - 1626 , - 4631 , - 1168 , - 4789 , - 4406 , - 3715 , - 1484 , - 1409 , - 2258 , - 2799 , - 1800 , - 2957 , - 110 , - 1883 , - 2116 , - 4505 , - 2890 , - 967 , - 2432 , - 1125 , - 742 , - 51 , - 2748 , - 2673 , - 3522 , - 4063 , - 3064 , - 4221 , - 1374 , - 3147 , - 3380 , - 841 , - 4154 , - 2231 , - 3696 , - 2389 , - 2006 , - 1315 , - 4012 , - 3937 , - 4786 , - 399 , - 4328 , - 557 , - 2638 , - 4411 , - 4644 , - 2105 , - 490 , - 3495 , - 32 , - 3653 , - 3270 , - 2579 , - 348 , - 273 , - 1122 , - 1663 , - 664 , - 1821 , - 3902 , - 747 , - 980 , - 3369 , - 1754 , - 4759 , - 1296 , - 4917 , - 4534 , - 3843 , - 1612 , - 1537 , - 2386 , - 2927 , - 1928 , - 3085 , - 238 , - 2011 , - 2244 , - 4633 , - 3018 , - 1095 , - 2560 , - 1253 , - 870 , - 179 , - 2876 , - 2801 , - 3650 , - 4191 , - 3192 , - 4349 , - 1502 , - 3275 , - 3508 , - 969 , - 4282 , - 2359 , - 3824 , - 2517 , - 2134 , - 1443 , - 4140 , - 4065 , - 4914 , - 527 , - 4456 , - 685 , - 2766 , - 4539 , - 4772 , - 2233 , - 618 , - 3623 , - 160 , - 3781 , - 3398 , - 2707 , - 476 , - 401 , - 1250 , - 1791 , - 792 , - 1949 , - 4030 , - 875 , - 1108 , - 3497 , - 1882 , - 4887 , - 1424 , - 117 , - 4662 , - 3971 , - 1740 , - 1665 , - 2514 , - 3055 , - 2056 , - 3213 , - 366 , - 2139 , - 2372 , - 4761 , - 3146 , - 1223 , - 2688 , - 1381 , - 998 , - 307 , - 3004 , - 2929 , - 3778 , - 4319 , - 3320 , - 4477 , - 1630 , - 3403 , - 3636 , - 1097 , - 4410 , - 2487 , - 3952 , - 2645 , - 2262 , - 1571 , - 4268 , - 4193 , - 114 , - 655 , - 4584 , - 813 , - 2894 , - 4667 , - 4900 , - 2361 , - 746 , - 3751 , - 288 , - 3909 , - 3526 , - 2835 , - 604 , - 529 , - 1378 , - 1919 , - 920 , - 2077 , - 4158 , - 1003 , - 1236 , - 3625 , - 2010 , - 87 , - 1552 , - 245 , - 4790 , - 4099 , - 1868 , - 1793 , - 2642 , - 3183 , - 2184 , - 3341 , - 494 , - 2267 , - 2500 , - 4889 , - 3274 , - 1351 , - 2816 , - 1509 , - 1126 , - 435 , - 3132 , - 3057 , - 3906 , - 4447 , - 3448 , - 4605 , - 1758 , - 3531 , - 3764 , - 1225 , - 4538 , - 2615 , - 4080 , - 2773 , - 2390 , - 1699 , - 4396 , - 4321 , - 242 , - 783 , - 4712 , - 941 , - 3022 , - 4795 , - 100 , - 2489 , - 874 , - 3879 , - 416 , - 4037 , - 3654 , - 2963 , - 732 , - 657 , - 1506 , - 2047 , - 1048 , - 2205 , - 4286 , - 1131 , - 1364 , - 3753 , - 2138 , - 215 , - 1680 , - 373 , - 4918 , - 4227 , - 1996 , - 1921 , - 2770 , - 3311 , - 2312 , - 3469 , - 622 , - 2395 , - 2628 , - 89 , - 3402 , - 1479 , - 2944 , - 1637 , - 1254 , - 563 , - 3260 , - 3185 , - 4034 , - 4575 , - 3576 , - 4733 , - 1886 , - 3659 , - 3892 , - 1353 , - 4666 , - 2743 , - 4208 , - 2901 , - 2518 , - 1827 , - 4524 , - 4449 , - 370 , - 911 , - 4840 , - 1069 , - 3150 , - 4923 , - 228 , - 2617 , - 1002 , - 4007 , - 544 , - 4165 , - 3782 , - 3091 , - 860 , - 785 , - 1634 , - 2175 , - 1176 , - 2333 , - 4414 , - 1259 , - 1492 , - 3881 , - 2266 , - 343 , - 1808 , - 501 , - 118 , - 4355 , - 2124 , - 2049 , - 2898 , - 3439 , - 2440 , - 3597 , - 750 , - 2523 , - 2756 , - 217 , - 3530 , - 1607 , - 3072 , - 1765 , - 1382 , - 691 , - 3388 , - 3313 , - 4162 , - 4703 , - 3704 , - 4861 , - 2014 , - 3787 , - 4020 , - 1481 , - 4794 , - 2871 , - 4336 , - 3029 , - 2646 , - 1955 , - 4652 , - 4577 , - 498 , - 1039 , - 40 , - 1197 , - 3278 , - 123 , - 356 , - 2745 , - 1130 , - 4135 , - 672 , - 4293 , - 3910 , - 3219 , - 988 , - 913 , - 1762 , - 2303 , - 1304 , - 2461 , - 4542 , - 1387 , - 1620 , - 4009 , - 2394 , - 471 , - 1936 , - 629 , - 246 , - 4483 , - 2252 , - 2177 , - 3026 , - 3567 , - 2568 , - 3725 , - 878 , - 2651 , - 2884 , - 345 , - 3658 , - 1735 , - 3200 , - 1893 , - 1510 , - 819 , - 3516 , - 3441 , - 4290 , - 4831 , - 3832 , - 61 , - 2142 , - 3915 , - 4148 , - 1609 , - 4922 , - 2999 , - 4464 , - 3157 , - 2774 , - 2083 , - 4780 , - 4705 , - 626 , - 1167 , - 168 , - 1325 , - 3406 , - 251 , - 484 , - 2873 , - 1258 , - 4263 , - 800 , - 4421 , - 4038 , - 3347 , - 1116 , - 1041 , - 1890 , - 2431 , - 1432 , - 2589 , - 4670 , - 1515 , - 1748 , - 4137 , - 2522 , - 599 , - 2064 , - 757 , - 374 , - 4611 , - 2380 , - 2305 , - 3154 , - 3695 , - 2696 , - 3853 , - 1006 , - 2779 , - 3012 , - 473 , - 3786 , - 1863 , - 3328 , - 2021 , - 1638 , - 947 , - 3644 , - 3569 , - 4418 , - 31 , - 3960 , - 189 , - 2270 , - 4043 , - 4276 , - 1737 , - 122 , - 3127 , - 4592 , - 3285 , - 2902 , - 2211 , - 4908 , - 4833 , - 754 , - 1295 , - 296 , - 1453 , - 3534 , - 379 , - 612 , - 3001 , - 1386 , - 4391 , - 928 , - 4549 , - 4166 , - 3475 , - 1244 , - 1169 , - 2018 , - 2559 , - 1560 , - 2717 , - 4798 , - 1643 , - 1876 , - 4265 , - 2650 , - 727 , - 2192 , - 885 , - 502 , - 4739 , - 2508 , - 2433 , - 3282 , - 3823 , - 2824 , - 3981 , - 1134 , - 2907 , - 3140 , - 601 , - 3914 , - 1991 , - 3456 , - 2149 , - 1766 , - 1075 , - 3772 , - 3697 , - 4546 , - 159 , - 4088 , - 317 , - 2398 , - 4171 , - 4404 , - 1865 , - 250 , - 3255 , - 4720 , - 3413 , - 3030 , - 2339 , - 108 , - 33 , - 882 , - 1423 , - 424 , - 1581 , - 3662 , - 507 , - 740 , - 3129 , - 1514 , - 4519 , - 1056 , - 4677 , - 4294 , - 3603 , - 1372 , - 1297 , - 2146 , - 2687 , - 1688 , - 2845 , - 4926 , - 1771 , - 2004 , - 4393 , - 2778 , - 855 , - 2320 , - 1013 , - 630 , - 4867 , - 2636 , - 2561 , - 3410 , - 3951 , - 2952 , - 4109 , - 1262 , - 3035 , - 3268 , - 729 , - 4042 , - 2119 , - 3584 , - 2277 , - 1894 , - 1203 , - 3900 , - 3825 , - 4674 , - 287 , - 4216 , - 445 , - 2526 , - 4299 , - 4532 , - 1993 , - 378 , - 3383 , - 4848 , - 3541 , - 3158 , - 2467 , - 236 , - 161 , - 1010 , - 1551 , - 552 , - 1709 , - 3790 , - 635 , - 868 , - 3257 , - 1642 , - 4647 , - 1184 , - 4805 , - 4422 , - 3731 , - 1500 , - 1425 , - 2274 , - 2815 , - 1816 , - 2973 , - 126 , - 1899 , - 2132 , - 4521 , - 2906 , - 983 , - 2448 , - 1141 , - 758 , - 67 , - 2764 , - 2689 , - 3538 , - 4079 , - 3080 , - 4237 , - 1390 , - 3163 , - 3396 , - 857 , - 4170 , - 2247 , - 3712 , - 2405 , - 2022 , - 1331 , - 4028 , - 3953 , - 4802 , - 415 , - 4344 , - 573 , - 2654 , - 4427 , - 4660 , - 2121 , - 506 , - 3511 , - 48 , - 3669 , - 3286 , - 2595 , - 364 , - 289 , - 1138 , - 1679 , - 680 , - 1837 , - 3918 , - 763 , - 996 , - 3385 , - 1770 , - 4775 , - 1312 , - 5 , - 4550 , - 3859 , - 1628 , - 1553 , - 2402 , - 2943 , - 1944 , - 3101 , - 254 , - 2027 , - 2260 , - 4649 , - 3034 , - 1111 , - 2576 , - 1269 , - 886 , - 195 , - 2892 , - 2817 , - 3666 , - 4207 , - 3208 , - 4365 , - 1518 , - 3291 , - 3524 , - 985 , - 4298 , - 2375 , - 3840 , - 2533 , - 2150 , - 1459 , - 4156 , - 4081 , - 2 , - 543 , - 4472 , - 701 , - 2782 , - 4555 , - 4788 , - 2249 , - 634 , - 3639 , - 176 , - 3797 , - 3414 , - 2723 , - 492 , - 417 , - 1266 , - 1807 , - 808 , - 1965 , - 4046 , - 891 , - 1124 , - 3513 , - 1898 , - 4903 , - 1440 , - 133 , - 4678 , - 3987 , - 1756 , - 1681 , - 2530 , - 3071 , - 2072 , - 3229 , - 382 , - 2155 , - 2388 , - 4777 , - 3162 , - 1239 , - 2704 , - 1397 , - 1014 , - 323 , - 3020 , - 2945 , - 3794 , - 4335 , - 3336 , - 4493 , - 1646 , - 3419 , - 3652 , - 1113 , - 4426 , - 2503 , - 3968 , - 2661 , - 2278 , - 1587 , - 4284 , - 4209 , - 130 , - 671 , - 4600 , - 829 , - 2910 , - 4683 , - 4916 , - 2377 , - 762 , - 3767 , - 304 , - 3925 , - 3542 , - 2851 , - 620 , - 545 , - 1394 , - 1935 , - 936 , - 2093 , - 4174 , - 1019 , - 1252 , - 3641 , - 2026 , - 103 , - 1568 , - 261 , - 4806 , - 4115 , - 1884 , - 1809 , - 2658 , - 3199 , - 2200 , - 3357 , - 510 , - 2283 , - 2516 , - 4905 , - 3290 , - 1367 , - 2832 , - 1525 , - 1142 , - 451 , - 3148 , - 3073 , - 3922 , - 4463 , - 3464 , - 4621 , - 1774 , - 3547 , - 3780 , - 1241 , - 4554 , - 2631 , - 4096 , - 2789 , - 2406 , - 1715 , - 4412 , - 4337 , - 258 , - 799 , - 4728 , - 957 , - 3038 , - 4811 , - 116 , - 2505 , - 890 , - 3895 , - 432 , - 4053 , - 3670 , - 2979 , - 748 , - 673 , - 1522 , - 2063 , - 1064 , - 2221 , - 4302 , - 1147 , - 1380 , - 3769 , - 2154 , - 231 , - 1696 , - 389 , - 6 , - 4243 , - 2012 , - 1937 , - 2786 , - 3327 , - 2328 , - 3485 , - 638 , - 2411 , - 2644 , - 105 , - 3418 , - 1495 , - 2960 , - 1653 , - 1270 , - 579 , - 3276 , - 3201 , - 4050 , - 4591 , - 3592 , - 4749 , - 1902 , - 3675 , - 3908 , - 1369 , - 4682 , - 2759 , - 4224 , - 2917 , - 2534 , - 1843 , - 4540 , - 4465 , - 386 , - 927 , - 4856 , - 1085 , - 3166 , - 11 , - 244 , - 2633 , - 1018 , - 4023 , - 560 , - 4181 , - 3798 , - 3107 , - 876 , - 801 , - 1650 , - 2191 , - 1192 , - 2349 , - 4430 , - 1275 , - 1508 , - 3897 , - 2282 , - 359 , - 1824 , - 517 , - 134 , - 4371 , - 2140 , - 2065 , - 2914 , - 3455 , - 2456 , - 3613 , - 766 , - 2539 , - 2772 , - 233 , - 3546 , - 1623 , - 3088 , - 1781 , - 1398 , - 707 , - 3404 , - 3329 , - 4178 , - 4719 , - 3720 , - 4877 , - 2030 , - 3803 , - 4036 , - 1497 , - 4810 , - 2887 , - 4352 , - 3045 , - 2662 , - 1971 , - 4668 , - 4593 , - 514 , - 1055 , - 56 , - 1213 , - 3294 , - 139 , - 372 , - 2761 , - 1146 , - 4151 , - 688 , - 4309 , - 3926 , - 3235 , - 1004 , - 929 , - 1778 , - 2319 , - 1320 , - 2477 , - 4558 , - 1403 , - 1636 , - 4025 , - 2410 , - 487 , - 1952 , - 645 , - 262 , - 4499 , - 2268 , - 2193 , - 3042 , - 3583 , - 2584 , - 3741 , - 894 , - 2667 , - 2900 , - 361 , - 3674 , - 1751 , - 3216 , - 1909 , - 1526 , - 835 , - 3532 , - 3457 , - 4306 , - 4847 , - 3848 , - 77 , - 2158 , - 3931 , - 4164 , - 1625 , - 10 , - 3015 , - 4480 , - 3173 , - 2790 , - 2099 , - 4796 , - 4721 , - 642 , - 1183 , - 184 , - 1341 , - 3422 , - 267 , - 500 , - 2889 , - 1274 , - 4279 , - 816 , - 4437 , - 4054 , - 3363 , - 1132 , - 1057 , - 1906 , - 2447 , - 1448 , - 2605 , - 4686 , - 1531 , - 1764 , - 4153 , - 2538 , - 615 , - 2080 , - 773 , - 390 , - 4627 , - 2396 , - 2321 , - 3170 , - 3711 , - 2712 , - 3869 , - 1022 , - 2795 , - 3028 , - 489 , - 3802 , - 1879 , - 3344 , - 2037 , - 1654 , - 963 , - 3660 , - 3585 , - 4434 , - 47 , - 3976 , - 205 , - 2286 , - 4059 , - 4292 , - 1753 , - 138 , - 3143 , - 4608 , - 3301 , - 2918 , - 2227 , - 4924 , - 4849 , - 770 , - 1311 , - 312 , - 1469 , - 3550 , - 395 , - 628 , - 3017 , - 1402 , - 4407 , - 944 , - 4565 , - 4182 , - 3491 , - 1260 , - 1185 , - 2034 , - 2575 , - 1576 , - 2733 , - 4814 , - 1659 , - 1892 , - 4281 , - 2666 , - 743 , - 2208 , - 901 , - 518 , - 4755 , - 2524 , - 2449 , - 3298 , - 3839 , - 2840 , - 3997 , - 1150 , - 2923 , - 3156 , - 617 , - 3930 , - 2007 , - 3472 , - 2165 , - 1782 , - 1091 , - 3788 , - 3713 , - 4562 , - 175 , - 4104 , - 333 , - 2414 , - 4187 , - 4420 , - 1881 , - 266 , - 3271 , - 4736 , - 3429 , - 3046 , - 2355 , - 124 , - 49 , - 898 , - 1439 , - 440 , - 1597 , - 3678 , - 523 , - 756 , - 3145 , - 1530 , - 4535 , - 1072 , - 4693 , - 4310 , - 3619 , - 1388 , - 1313 , - 2162 , - 2703 , - 1704 , - 2861 , - 14 , - 1787 , - 2020 , - 4409 , - 2794 , - 871 , - 2336 , - 1029 , - 646 , - 4883 , - 2652 , - 2577 , - 3426 , - 3967 , - 2968 , - 4125 , - 1278 , - 3051 , - 3284 , - 745 , - 4058 , - 2135 , - 3600 , - 2293 , - 1910 , - 1219 , - 3916 , - 3841 , - 4690 , - 303 , - 4232 , - 461 , - 2542 , - 4315 , - 4548 , - 2009 , - 394 , - 3399 , - 4864 , - 3557 , - 3174 , - 2483 , - 252 , - 177 , - 1026 , - 1567 , - 568 , - 1725 , - 3806 , - 651 , - 884 , - 3273 , - 1658 , - 4663 , - 1200 , - 4821 , - 4438 , - 3747 , - 1516 , - 1441 , - 2290 , - 2831 , - 1832 , - 2989 , - 142 , - 1915 , - 2148 , - 4537 , - 2922 , - 999 , - 2464 , - 1157 , - 774 , - 83 , - 2780 , - 2705 , - 3554 , - 4095 , - 3096 , - 4253 , - 1406 , - 3179 , - 3412 , - 873 , - 4186 , - 2263 , - 3728 , - 2421 , - 2038 , - 1347 , - 4044 , - 3969 , - 4818 , - 431 , - 4360 , - 589 , - 2670 , - 4443 , - 4676 , - 2137 , - 522 , - 3527 , - 64 , - 3685 , - 3302 , - 2611 , - 380 , - 305 , - 1154 , - 1695 , - 696 , - 1853 , - 3934 , - 779 , - 1012 , - 3401 , - 1786 , - 4791 , - 1328 , - 21 , - 4566 , - 3875 , - 1644 , - 1569 , - 2418 , - 2959 , - 1960 , - 3117 , - 270 , - 2043 , - 2276 , - 4665 , - 3050 , - 1127 , - 2592 , - 1285 , - 902 , - 211 , - 2908 , - 2833 , - 3682 , - 4223 , - 3224 , - 4381 , - 1534 , - 3307 , - 3540 , - 1001 , - 4314 , - 2391 , - 3856 , - 2549 , - 2166 , - 1475 , - 4172 , - 4097 , - 18 , - 559 , - 4488 , - 717 , - 2798 , - 4571 , - 4804 , - 2265 , - 650 , - 3655 , - 192 , - 3813 , - 3430 , - 2739 , - 508 , - 433 , - 1282 , - 1823 , - 824 , - 1981 , - 4062 , - 907 , - 1140 , - 3529 , - 1914 , - 4919 , - 1456 , - 149 , - 4694 , - 4003 , - 1772 , - 1697 , - 2546 , - 3087 , - 2088 , - 3245 , - 398 , - 2171 , - 2404 , - 4793 , - 3178 , - 1255 , - 2720 , - 1413 , - 1030 , - 339 , - 3036 , - 2961 , - 3810 , - 4351 , - 3352 , - 4509 , - 1662 , - 3435 , - 3668 , - 1129 , - 4442 , - 2519 , - 3984 , - 2677 , - 2294 , - 1603 , - 4300 , - 4225 , - 146 , - 687 , - 4616 , - 845 , - 2926 , - 4699 , - 4 , - 2393 , - 778 , - 3783 , - 320 , - 3941 , - 3558 , - 2867 , - 636 , - 561 , - 1410 , - 1951 , - 952 , - 2109 , - 4190 , - 1035 , - 1268 , - 3657 , - 2042 , - 119 , - 1584 , - 277 , - 4822 , - 4131 , - 1900 , - 1825 , - 2674 , - 3215 , - 2216 , - 3373 , - 526 , - 2299 , - 2532 , - 4921 , - 3306 , - 1383 , - 2848 , - 1541 , - 1158 , - 467 , - 3164 , - 3089 , - 3938 , - 4479 , - 3480 , - 4637 , - 1790 , - 3563 , - 3796 , - 1257 , - 4570 , - 2647 , - 4112 , - 2805 , - 2422 , - 1731 , - 4428 , - 4353 , - 274 , - 815 , - 4744 , - 973 , - 3054 , - 4827 , - 132 , - 2521 , - 906 , - 3911 , - 448 , - 4069 , - 3686 , - 2995 , - 764 , - 689 , - 1538 , - 2079 , - 1080 , - 2237 , - 4318 , - 1163 , - 1396 , - 3785 , - 2170 , - 247 , - 1712 , - 405 , - 22 , - 4259 , - 2028 , - 1953 , - 2802 , - 3343 , - 2344 , - 3501 , - 654 , - 2427 , - 2660 , - 121 , - 3434 , - 1511 , - 2976 , - 1669 , - 1286 , - 595 , - 3292 , - 3217 , - 4066 , - 4607 , - 3608 , - 4765 , - 1918 , - 3691 , - 3924 , - 1385 , - 4698 , - 2775 , - 4240 , - 2933 , - 2550 , - 1859 , - 4556 , - 4481 , - 402 , - 943 , - 4872 , - 1101 , - 3182 , - 27 , - 260 , - 2649 , - 1034 , - 4039 , - 576 , - 4197 , - 3814 , - 3123 , - 892 , - 817 , - 1666 , - 2207 , - 1208 , - 2365 , - 4446 , - 1291 , - 1524 , - 3913 , - 2298 , - 375 , - 1840 , - 533 , - 150 , - 4387 , - 2156 , - 2081 , - 2930 , - 3471 , - 2472 , - 3629 , - 782 , - 2555 , - 2788 , - 249 , - 3562 , - 1639 , - 3104 , - 1797 , - 1414 , - 723 , - 3420 , - 3345 , - 4194 , - 4735 , - 3736 , - 4893 , - 2046 , - 3819 , - 4052 , - 1513 , - 4826 , - 2903 , - 4368 , - 3061 , - 2678 , - 1987 , - 4684 , - 4609 , - 530 , - 1071 , - 72 , - 1229 , - 3310 , - 155 , - 388 , - 2777 , - 1162 , - 4167 , - 704 , - 4325 , - 3942 , - 3251 , - 1020 , - 945 , - 1794 , - 2335 , - 1336 , - 2493 , - 4574 , - 1419 , - 1652 , - 4041 , - 2426 , - 503 , - 1968 , - 661 , - 278 , - 4515 , - 2284 , - 2209 , - 3058 , - 3599 , - 2600 , - 3757 , - 910 , - 2683 , - 2916 , - 377 , - 3690 , - 1767 , - 3232 , - 1925 , - 1542 , - 851 , - 3548 , - 3473 , - 4322 , - 4863 , - 3864 , - 93 , - 2174 , - 3947 , - 4180 , - 1641 , - 26 , - 3031 , - 4496 , - 3189 , - 2806 , - 2115 , - 4812 , - 4737 , - 658 , - 1199 , - 200 , - 1357 , - 3438 , - 283 , - 516 , - 2905 , - 1290 , - 4295 , - 832 , - 4453 , - 4070 , - 3379 , - 1148 , - 1073 , - 1922 , - 2463 , - 1464 , - 2621 , - 4702 , - 1547 , - 1780 , - 4169 , - 2554 , - 631 , - 2096 , - 789 , - 406 , - 4643 , - 2412 , - 2337 , - 3186 , - 3727 , - 2728 , - 3885 , - 1038 , - 2811 , - 3044 , - 505 , - 3818 , - 1895 , - 3360 , - 2053 , - 1670 , - 979 , - 3676 , - 3601 , - 4450 , - 63 , - 3992 , - 221 , - 2302 , - 4075 , - 4308 , - 1769 , - 154 , - 3159 , - 4624 , - 3317 , - 2934 , - 2243 , - 12 , - 4865 , - 786 , - 1327 , - 328 , - 1485 , - 3566 , - 411 , - 644 , - 3033 , - 1418 , - 4423 , - 960 , - 4581 , - 4198 , - 3507 , - 1276 , - 1201 , - 2050 , - 2591 , - 1592 , - 2749 , - 4830 , - 1675 , - 1908 , - 4297 , - 2682 , - 759 , - 2224 , - 917 , - 534 , - 4771 , - 2540 , - 2465 , - 3314 , - 3855 , - 2856 , - 4013 , - 1166 , - 2939 , - 3172 , - 633 , - 3946 , - 2023 , - 3488 , - 2181 , - 1798 , - 1107 , - 3804 , - 3729 , - 4578 , - 191 , - 4120 , - 349 , - 2430 , - 4203 , - 4436 , - 1897 , - 282 , - 3287 , - 4752 , - 3445 , - 3062 , - 2371 , - 140 , - 65 , - 914 , - 1455 , - 456 , - 1613 , - 3694 , - 539 , - 772 , - 3161 , - 1546 , - 4551 , - 1088 , - 4709 , - 4326 , - 3635 , - 1404 , - 1329 , - 2178 , - 2719 , - 1720 , - 2877 , - 30 , - 1803 , - 2036 , - 4425 , - 2810 , - 887 , - 2352 , - 1045 , - 662 , - 4899 , - 2668 , - 2593 , - 3442 , - 3983 , - 2984 , - 4141 , - 1294 , - 3067 , - 3300 , - 761 , - 4074 , - 2151 , - 3616 , - 2309 , - 1926 , - 1235 , - 3932 , - 3857 , - 4706 , - 319 , - 4248 , - 477 , - 2558 , - 4331 , - 4564 , - 2025 , - 410 , - 3415 , - 4880 , - 3573 , - 3190 , - 2499 , - 268 , - 193 , - 1042 , - 1583 , - 584 , - 1741 , - 3822 , - 667 , - 900 , - 3289 , - 1674 , - 4679 , - 1216 , - 4837 , - 4454 , - 3763 , - 1532 , - 1457 , - 2306 , - 2847 , - 1848 , - 3005 , - 158 , - 1931 , - 2164 , - 4553 , - 2938 , - 1015 , - 2480 , - 1173 , - 790 , - 99 , - 2796 , - 2721 , - 3570 , - 4111 , - 3112 , - 4269 , - 1422 , - 3195 , - 3428 , - 889 , - 4202 , - 2279 , - 3744 , - 2437 , - 2054 , - 1363 , - 4060 , - 3985 , - 4834 , - 447 , - 4376 , - 605 , - 2686 , - 4459 , - 4692 , - 2153 , - 538 , - 3543 , - 80 , - 3701 , - 3318 , - 2627 , - 396 , - 321 , - 1170 , - 1711 , - 712 , - 1869 , - 3950 , - 795 , - 1028 , - 3417 , - 1802 , - 4807 , - 1344 , - 37 , - 4582 , - 3891 , - 1660 , - 1585 , - 2434 , - 2975 , - 1976 , - 3133 , - 286 , - 2059 , - 2292 , - 4681 , - 3066 , - 1143 , - 2608 , - 1301 , - 918 , - 227 , - 2924 , - 2849 , - 3698 , - 4239 , - 3240 , - 4397 , - 1550 , - 3323 , - 3556 , - 1017 , - 4330 , - 2407 , - 3872 , - 2565 , - 2182 , - 1491 , - 4188 , - 4113 , - 34 , - 575 , - 4504 , - 733 , - 2814 , - 4587 , - 4820 , - 2281 , - 666 , - 3671 , - 208 , - 3829 , - 3446 , - 2755 , - 524 , - 449 , - 1298 , - 1839 , - 840 , - 1997 , - 4078 , - 923 , - 1156 , - 3545 , - 1930 , - 7 , - 1472 , - 165 , - 4710 , - 4019 , - 1788 , - 1713 , - 2562 , - 3103 , - 2104 , - 3261 , - 414 , - 2187 , - 2420 , - 4809 , - 3194 , - 1271 , - 2736 , - 1429 , - 1046 , - 355 , - 3052 , - 2977 , - 3826 , - 4367 , - 3368 , - 4525 , - 1678 , - 3451 , - 3684 , - 1145 , - 4458 , - 2535 , - 4000 , - 2693 , - 2310 , - 1619 , - 4316 , - 4241 , - 162 , - 703 , - 4632 , - 861 , - 2942 , - 4715 , - 20 , - 2409 , - 794 , - 3799 , - 336 , - 3957 , - 3574 , - 2883 , - 652 , - 577 , - 1426 , - 1967 , - 968 , - 2125 , - 4206 , - 1051 , - 1284 , - 3673 , - 2058 , - 135 , - 1600 , - 293 , - 4838 , - 4147 , - 1916 , - 1841 , - 2690 , - 3231 , - 2232 , - 3389 , - 542 , - 2315 , - 2548 , - 9 , - 3322 , - 1399 , - 2864 , - 1557 , - 1174 , - 483 , - 3180 , - 3105 , - 3954 , - 4495 , - 3496 , - 4653 , - 1806 , - 3579 , - 3812 , - 1273 , - 4586 , - 2663 , - 4128 , - 2821 , - 2438 , - 1747 , - 4444 , - 4369 , - 290 , - 831 , - 4760 , - 989 , - 3070 , - 4843 , - 148 , - 2537 , - 922 , - 3927 , - 464 , - 4085 , - 3702 , - 3011 , - 780 , - 705 , - 1554 , - 2095 , - 1096 , - 2253 , - 4334 , - 1179 , - 1412 , - 3801 , - 2186 , - 263 , - 1728 , - 421 , - 38 , - 4275 , - 2044 , - 1969 , - 2818 , - 3359 , - 2360 , - 3517 , - 670 , - 2443 , - 2676 , - 137 , - 3450 , - 1527 , - 2992 , - 1685 , - 1302 , - 611 , - 3308 , - 3233 , - 4082 , - 4623 , - 3624 , - 4781 , - 1934 , - 3707 , - 3940 , - 1401 , - 4714 , - 2791 , - 4256 , - 2949 , - 2566 , - 1875 , - 4572 , - 4497 , - 418 , - 959 , - 4888 , - 1117 , - 3198 , - 43 , - 276 , - 2665 , - 1050 , - 4055 , - 592 , - 4213 , - 3830 , - 3139 , - 908 , - 833 , - 1682 , - 2223 , - 1224 , - 2381 , - 4462 , - 1307 , - 1540 , - 3929 , - 2314 , - 391 , - 1856 , - 549 , - 166 , - 4403 , - 2172 , - 2097 , - 2946 , - 3487 , - 2488 , - 3645 , - 798 , - 2571 , - 2804 , - 265 , - 3578 , - 1655 , - 3120 , - 1813 , - 1430 , - 739 , - 3436 , - 3361 , - 4210 , - 4751 , - 3752 , - 4909 , - 2062 , - 3835 , - 4068 , - 1529 , - 4842 , - 2919 , - 4384 , - 3077 , - 2694 , - 2003 , - 4700 , - 4625 , - 546 , - 1087 , - 88 , - 1245 , - 3326 , - 171 , - 404 , - 2793 , - 1178 , - 4183 , - 720 , - 4341 , - 3958 , - 3267 , - 1036 , - 961 , - 1810 , - 2351 , - 1352 , - 2509 , - 4590 , - 1435 , - 1668 , - 4057 , - 2442 , - 519 , - 1984 , - 677 , - 294 , - 4531 , - 2300 , - 2225 , - 3074 , - 3615 , - 2616 , - 3773 , - 926 , - 2699 , - 2932 , - 393 , - 3706 , - 1783 , - 3248 , - 1941 , - 1558 , - 867 , - 3564 , - 3489 , - 4338 , - 4879 , - 3880 , - 109 , - 2190 , - 3963 , - 4196 , - 1657 , - 42 , - 3047 , - 4512 , - 3205 , - 2822 , - 2131 , - 4828 , - 4753 , - 674 , - 1215 , - 216 , - 1373 , - 3454 , - 299 , - 532 , - 2921 , - 1306 , - 4311 , - 848 , - 4469 , - 4086 , - 3395 , - 1164 , - 1089 , - 1938 , - 2479 , - 1480 , - 2637 , - 4718 , - 1563 , - 1796 , - 4185 , - 2570 , - 647 , - 2112 , - 805 , - 422 , - 4659 , - 2428 , - 2353 , - 3202 , - 3743 , - 2744 , - 3901 , - 1054 , - 2827 , - 3060 , - 521 , - 3834 , - 1911 , - 3376 , - 2069 , - 1686 , - 995 , - 3692 , - 3617 , - 4466 , - 79 , - 4008 , - 237 , - 2318 , - 4091 , - 4324 , - 1785 , - 170 , - 3175 , - 4640 , - 3333 , - 2950 , - 2259 , - 28 , - 4881 , - 802 , - 1343 , - 344 , - 1501 , - 3582 , - 427 , - 660 , - 3049 , - 1434 , - 4439 , - 976 , - 4597 , - 4214 , - 3523 , - 1292 , - 1217 , - 2066 , - 2607 , - 1608 , - 2765 , - 4846 , - 1691 , - 1924 , - 4313 , - 2698 , - 775 , - 2240 , - 933 , - 550 , - 4787 , - 2556 , - 2481 , - 3330 , - 3871 , - 2872 , - 4029 , - 1182 , - 2955 , - 3188 , - 649 , - 3962 , - 2039 , - 3504 , - 2197 , - 1814 , - 1123 , - 3820 , - 3745 , - 4594 , - 207 , - 4136 , - 365 , - 2446 , - 4219 , - 4452 , - 1913 , - 298 , - 3303 , - 4768 , - 3461 , - 3078 , - 2387 , - 156 , - 81 , - 930 , - 1471 , - 472 , - 1629 , - 3710 , - 555 , - 788 , - 3177 , - 1562 , - 4567 , - 1104 , - 4725 , - 4342 , - 3651 , - 1420 , - 1345 , - 2194 , - 2735 , - 1736 , - 2893 , - 46 , - 1819 , - 2052 , - 4441 , - 2826 , - 903 , - 2368 , - 1061 , - 678 , - 4915 , - 2684 , - 2609 , - 3458 , - 3999 , - 3000 , - 4157 , - 1310 , - 3083 , - 3316 , - 777 , - 4090 , - 2167 , - 3632 , - 2325 , - 1942 , - 1251 , - 3948 , - 3873 , - 4722 , - 335 , - 4264 , - 493 , - 2574 , - 4347 , - 4580 , - 2041 , - 426 , - 3431 , - 4896 , - 3589 , - 3206 , - 2515 , - 284 , - 209 , - 1058 , - 1599 , - 600 , - 1757 , - 3838 , - 683 , - 916 , - 3305 , - 1690 , - 4695 , - 1232 , - 4853 , - 4470 , - 3779 , - 1548 , - 1473 , - 2322 , - 2863 , - 1864 , - 3021 , - 174 , - 1947 , - 2180 , - 4569 , - 2954 , - 1031 , - 2496 , - 1189 , - 806 , - 115 , - 2812 , - 2737 , - 3586 , - 4127 , - 3128 , - 4285 , - 1438 , - 3211 , - 3444 , - 905 , - 4218 , - 2295 , - 3760 , - 2453 , - 2070 , - 1379 , - 4076 , - 4001 , - 4850 , - 463 , - 4392 , - 621 , - 2702 , - 4475 , - 4708 , - 2169 , - 554 , - 3559 , - 96 , - 3717 , - 3334 , - 2643 , - 412 , - 337 , - 1186 , - 1727 , - 728 , - 1885 , - 3966 , - 811 , - 1044 , - 3433 , - 1818 , - 4823 , - 1360 , - 53 , - 4598 , - 3907 , - 1676 , - 1601 , - 2450 , - 2991 , - 1992 , - 3149 , - 302 , - 2075 , - 2308 , - 4697 , - 3082 , - 1159 , - 2624 , - 1317 , - 934 , - 243 , - 2940 , - 2865 , - 3714 , - 4255 , - 3256 , - 4413 , - 1566 , - 3339 , - 3572 , - 1033 , - 4346 , - 2423 , - 3888 , - 2581 , - 2198 , - 1507 , - 4204 , - 4129 , - 50 , - 591 , - 4520 , - 749 , - 2830 , - 4603 , - 4836 , - 2297 , - 682 , - 3687 , - 224 , - 3845 , - 3462 , - 2771 , - 540 , - 465 , - 1314 , - 1855 , - 856 , - 2013 , - 4094 , - 939 , - 1172 , - 3561 , - 1946 , - 23 , - 1488 , - 181 , - 4726 , - 4035 , - 1804 , - 1729 , - 2578 , - 3119 , - 2120 , - 3277 , - 430 , - 2203 , - 2436 , - 4825 , - 3210 , - 1287 , - 2752 , - 1445 , - 1062 , - 371 , - 3068 , - 2993 , - 3842 , - 4383 , - 3384 , - 4541 , - 1694 , - 3467 , - 3700 , - 1161 , - 4474 , - 2551 , - 4016 , - 2709 , - 2326 , - 1635 , - 4332 , - 4257 , - 178 , - 719 , - 4648 , - 877 , - 2958 , - 4731 , - 36 , - 2425 , - 810 , - 3815 , - 352 , - 3973 , - 3590 , - 2899 , - 668 , - 593 , - 1442 , - 1983 , - 984 , - 2141 , - 4222 , - 1067 , - 1300 , - 3689 , - 2074 , - 151 , - 1616 , - 309 , - 4854 , - 4163 , - 1932 , - 1857 , - 2706 , - 3247 , - 2248 , - 3405 , - 558 , - 2331 , - 2564 , - 25 , - 3338 , - 1415 , - 2880 , - 1573 , - 1190 , - 499 , - 3196 , - 3121 , - 3970 , - 4511 , - 3512 , - 4669 , - 1822 , - 3595 , - 3828 , - 1289 , - 4602 , - 2679 , - 4144 , - 2837 , - 2454 , - 1763 , - 4460 , - 4385 , - 306 , - 847 , - 4776 , - 1005 , - 3086 , - 4859 , - 164 , - 2553 , - 938 , - 3943 , - 480 , - 4101 , - 3718 , - 3027 , - 796 , - 721 , - 1570 , - 2111 , - 1112 , - 2269 , - 4350 , - 1195 , - 1428 , - 3817 , - 2202 , - 279 , - 1744 , - 437 , - 54 , - 4291 , - 2060 , - 1985 , - 2834 , - 3375 , - 2376 , - 3533 , - 686 , - 2459 , - 2692 , - 153 , - 3466 , - 1543 , - 3008 , - 1701 , - 1318 , - 627 , - 3324 , - 3249 , - 4098 , - 4639 , - 3640 , - 4797 , - 1950 , - 3723 , - 3956 , - 1417 , - 4730 , - 2807 , - 4272 , - 2965 , - 2582 , - 1891 , - 4588 , - 4513 , - 434 , - 975 , - 4904 , - 1133 , - 3214 , - 59 , - 292 , - 2681 , - 1066 , - 4071 , - 608 , - 4229 , - 3846 , - 3155 , - 924 , - 849 , - 1698 , - 2239 , - 1240 , - 2397 , - 4478 , - 1323 , - 1556 , - 3945 , - 2330 , - 407 , - 1872 , - 565 , - 182 , - 4419 , - 2188 , - 2113 , - 2962 , - 3503 , - 2504 , - 3661 , - 814 , - 2587 , - 2820 , - 281 , - 3594 , - 1671 , - 3136 , - 1829 , - 1446 , - 755 , - 3452 , - 3377 , - 4226 , - 4767 , - 3768 , - 4925 , - 2078 , - 3851 , - 4084 , - 1545 , - 4858 , - 2935 , - 4400 , - 3093 , - 2710 , - 2019 , - 4716 , - 4641 , - 562 , - 1103 , - 104 , - 1261 , - 3342 , - 187 , - 420 , - 2809 , - 1194 , - 4199 , - 736 , - 4357 , - 3974 , - 3283 , - 1052 , - 977 , - 1826 , - 2367 , - 1368 , - 2525 , - 4606 , - 1451 , - 1684 , - 4073 , - 2458 , - 535 , - 2000 , - 693 , - 310 , - 4547 , - 2316 , - 2241 , - 3090 , - 3631 , - 2632 , - 3789 , - 942 , - 2715 , - 2948 , - 409 , - 3722 , - 1799 , - 3264 , - 1957 , - 1574 , - 883 , - 3580 , - 3505 , - 4354 , - 4895 , - 3896 , - 125 , - 2206 , - 3979 , - 4212 , - 1673 , - 58 , - 3063 , - 4528 , - 3221 , - 2838 , - 2147 , - 4844 , - 4769 , - 690 , - 1231 , - 232 , - 1389 , - 3470 , - 315 , - 548 , - 2937 , - 1322 , - 4327 , - 864 , - 4485 , - 4102 , - 3411 , - 1180 , - 1105 , - 1954 , - 2495 , - 1496 , - 2653 , - 4734 , - 1579 , - 1812 , - 4201 , - 2586 , - 663 , - 2128 , - 821 , - 438 , - 4675 , - 2444 , - 2369 , - 3218 , - 3759 , - 2760 , - 3917 , - 1070 , - 2843 , - 3076 , - 537 , - 3850 , - 1927 , - 3392 , - 2085 , - 1702 , - 1011 , - 3708 , - 3633 , - 4482 , - 95 , - 4024 , - 253 , - 2334 , - 4107 , - 4340 , - 1801 , - 186 , - 3191 , - 4656 , - 3349 , - 2966 , - 2275 , - 44 , - 4897 , - 818 , - 1359 , - 360 , - 1517 , - 3598 , - 443 , - 676 , - 3065 , - 1450 , - 4455 , - 992 , - 4613 , - 4230 , - 3539 , - 1308 , - 1233 , - 2082 , - 2623 , - 1624 , - 2781 , - 4862 , - 1707 , - 1940 , - 4329 , - 2714 , - 791 , - 2256 , - 949 , - 566 , - 4803 , - 2572 , - 2497 , - 3346 , - 3887 , - 2888 , - 4045 , - 1198 , - 2971 , - 3204 , - 665 , - 3978 , - 2055 , - 3520 , - 2213 , - 1830 , - 1139 , - 3836 , - 3761 , - 4610 , - 223 , - 4152 , - 381 , - 2462 , - 4235 , - 4468 , - 1929 , - 314 , - 3319 , - 4784 , - 3477 , - 3094 , - 2403 , - 172 , - 97 , - 946 , - 1487 , - 488 , - 1645 , - 3726 , - 571 , - 804 , - 3193 , - 1578 , - 4583 , - 1120 , - 4741 , - 4358 , - 3667 , - 1436 , - 1361 , - 2210 , - 2751 , - 1752 , - 2909 , - 62 , - 1835 , - 2068 , - 4457 , - 2842 , - 919 , - 2384 , - 1077 , - 694 , - 3 , - 2700 , - 2625 , - 3474 , - 4015 , - 3016 , - 4173 , - 1326 , - 3099 , - 3332 , - 793 , - 4106 , - 2183 , - 3648 , - 2341 , - 1958 , - 1267 , - 3964 , - 3889 , - 4738 , - 351 , - 4280 , - 509 , - 2590 , - 4363 , - 4596 , - 2057 , - 442 , - 3447 , - 4912 , - 3605 , - 3222 , - 2531 , - 300 , - 225 , - 1074 , - 1615 , - 616 , - 1773 , - 3854 , - 699 , - 932 , - 3321 , - 1706 , - 4711 , - 1248 , - 4869 , - 4486 , - 3795 , - 1564 , - 1489 , - 2338 , - 2879 , - 1880 , - 3037 , - 190 , - 1963 , - 2196 , - 4585 , - 2970 , - 1047 , - 2512 , - 1205 , - 822 , - 131 , - 2828 , - 2753 , - 3602 , - 4143 , - 3144 , - 4301 , - 1454 , - 3227 , - 3460 , - 921 , - 4234 , - 2311 , - 3776 , - 2469 , - 2086 , - 1395 , - 4092 , - 4017 , - 4866 , - 479 , - 4408 , - 637 , - 2718 , - 4491 , - 4724 , - 2185 , - 570 , - 3575 , - 112 , - 3733 , - 3350 , - 2659 , - 428 , - 353 , - 1202 , - 1743 , - 744 , - 1901 , - 3982 , - 827 , - 1060 , - 3449 , - 1834 , - 4839 , - 1376 , - 69 , - 4614 , - 3923 , - 1692 , - 1617 , - 2466 , - 3007 , - 2008 , - 3165 , - 318 , - 2091 , - 2324 , - 4713 , - 3098 , - 1175 , - 2640 , - 1333 , - 950 , - 259 , - 2956 , - 2881 , - 3730 , - 4271 , - 3272 , - 4429 , - 1582 , - 3355 , - 3588 , - 1049 , - 4362 , - 2439 , - 3904 , - 2597 , - 2214 , - 1523 , - 4220 , - 4145 , - 66 , - 607 , - 4536 , - 765 , - 2846 , - 4619 , - 4852 , - 2313 , - 698 , - 3703 , - 240 , - 3861 , - 3478 , - 2787 , - 556 , - 481 , - 1330 , - 1871 , - 872 , - 2029 , - 4110 , - 955 , - 1188 , - 3577 , - 1962 , - 39 , - 1504 , - 197 , - 4742 , - 4051 , - 1820 , - 1745 , - 2594 , - 3135 , - 2136 , - 3293 , - 446 , - 2219 , - 2452 , - 4841 , - 3226 , - 1303 , - 2768 , - 1461 , - 1078 , - 387 , - 3084 , - 3009 , - 3858 , - 4399 , - 3400 , - 4557 , - 1710 , - 3483 , - 3716 , - 1177 , - 4490 , - 2567 , - 4032 , - 2725 , - 2342 , - 1651 , - 4348 , - 4273 , - 194 , - 735 , - 4664 , - 893 , - 2974 , - 4747 , - 52 , - 2441 , - 826 , - 3831 , - 368 , - 3989 , - 3606 , - 2915 , - 684 , - 609 , - 1458 , - 1999 , - 1000 , - 2157 , - 4238 , - 1083 , - 1316 , - 3705 , - 2090 , - 167 , - 1632 , - 325 , - 4870 , - 4179 , - 1948 , - 1873 , - 2722 , - 3263 , - 2264 , - 3421 , - 574 , - 2347 , - 2580 , - 41 , - 3354 , - 1431 , - 2896 , - 1589 , - 1206 , - 515 , - 3212 , - 3137 , - 3986 , - 4527 , - 3528 , - 4685 , - 1838 , - 3611 , - 3844 , - 1305 , - 4618 , - 2695 , - 4160 , - 2853 , - 2470 , - 1779 , - 4476 , - 4401 , - 322 , - 863 , - 4792 , - 1021 , - 3102 , - 4875 , - 180 , - 2569 , - 954 , - 3959 , - 496 , - 4117 , - 3734 , - 3043 , - 812 , - 737 , - 1586 , - 2127 , - 1128 , - 2285 , - 4366 , - 1211 , - 1444 , - 3833 , - 2218 , - 295 , - 1760 , - 453 , - 70 , - 4307 , - 2076 , - 2001 , - 2850 , - 3391 , - 2392 , - 3549 , - 702 , - 2475 , - 2708 , - 169 , - 3482 , - 1559 , - 3024 , - 1717 , - 1334 , - 643 , - 3340 , - 3265 , - 4114 , - 4655 , - 3656 , - 4813 , - 1966 , - 3739 , - 3972 , - 1433 , - 4746 , - 2823 , - 4288 , - 2981 , - 2598 , - 1907 , - 4604 , - 4529 , - 450 , - 991 , - 4920 , - 1149 , - 3230 , - 75 , - 308 , - 2697 , - 1082 , - 4087 , - 624 , - 4245 , - 3862 , - 3171 , - 940 , - 865 , - 1714 , - 2255 , - 1256 , - 2413 , - 4494 , - 1339 , - 1572 , - 3961 , - 2346 , - 423 , - 1888 , - 581 , - 198 , - 4435 , - 2204 , - 2129 , - 2978 , - 3519 , - 2520 , - 3677 , - 830 , - 2603 , - 2836 , - 297 , - 3610 , - 1687 , - 3152 , - 1845 , - 1462 , - 771 , - 3468 , - 3393 , - 4242 , - 4783 , - 3784 , - 13 , - 2094 , - 3867 , - 4100 , - 1561 , - 4874 , - 2951 , - 4416 , - 3109 , - 2726 , - 2035 , - 4732 , - 4657 , - 578 , - 1119 , - 120 , - 1277 , - 3358 , - 203 , - 436 , - 2825 , - 1210 , - 4215 , - 752 , - 4373 , - 3990 , - 3299 , - 1068 , - 993 , - 1842 , - 2383 , - 1384 , - 2541 , - 4622 , - 1467 , - 1700 , - 4089 , - 2474 , - 551 , - 2016 , - 709 , - 326 , - 4563 , - 2332 , - 2257 , - 3106 , - 3647 , - 2648 , - 3805 , - 958 , - 2731 , - 2964 , - 425 , - 3738 , - 1815 , - 3280 , - 1973 , - 1590 , - 899 , - 3596 , - 3521 , - 4370 , - 4911 , - 3912 , - 141 , - 2222 , - 3995 , - 4228 , - 1689 , - 74 , - 3079 , - 4544 , - 3237 , - 2854 , - 2163 , - 4860 , - 4785 , - 706 , - 1247 , - 248 , - 1405 , - 3486 , - 331 , - 564 , - 2953 , - 1338 , - 4343 , - 880 , - 4501 , - 4118 , - 3427 , - 1196 , - 1121 , - 1970 , - 2511 , - 1512 , - 2669 , - 4750 , - 1595 , - 1828 , - 4217 , - 2602 , - 679 , - 2144 , - 837 , - 454 , - 4691 , - 2460 , - 2385 , - 3234 , - 3775 , - 2776 , - 3933 , - 1086 , - 2859 , - 3092 , - 553 , - 3866 , - 1943 , - 3408 , - 2101 , - 1718 , - 1027 , - 3724 , - 3649 , - 4498 , - 111 , - 4040 , - 269 , - 2350 , - 4123 , - 4356 , - 1817 , - 202 , - 3207 , - 4672 , - 3365 , - 2982 , - 2291 , - 60 , - 4913 , - 834 , - 1375 , - 376 , - 1533 , - 3614 , - 459 , - 692 , - 3081 , - 1466 , - 4471 , - 1008 , - 4629 , - 4246 , - 3555 , - 1324 , - 1249 , - 2098 , - 2639 , - 1640 , - 2797 , - 4878 , - 1723 , - 1956 , - 4345 , - 2730 , - 807 , - 2272 , - 965 , - 582 , - 4819 , - 2588 , - 2513 , - 3362 , - 3903 , - 2904 , - 4061 , - 1214 , - 2987 , - 3220 , - 681 , - 3994 , - 2071 , - 3536 , - 2229 , - 1846 , - 1155 , - 3852 , - 3777 , - 4626 , - 239 , - 4168 , - 397 , - 2478 , - 4251 , - 4484 , - 1945 , - 330 , - 3335 , - 4800 , - 3493 , - 3110 , - 2419 , - 188 , - 113 , - 962 , - 1503 , - 504 , - 1661 , - 3742 , - 587 , - 820 , - 3209 , - 1594 , - 4599 , - 1136 , - 4757 , - 4374 , - 3683 , - 1452 , - 1377 , - 2226 , - 2767 , - 1768 , - 2925 , - 78 , - 1851 , - 2084 , - 4473 , - 2858 , - 935 , - 2400 , - 1093 , - 710 , - 19 , - 2716 , - 2641 , - 3490 , - 4031 , - 3032 , - 4189 , - 1342 , - 3115 , - 3348 , - 809 , - 4122 , - 2199 , - 3664 , - 2357 , - 1974 , - 1283 , - 3980 , - 3905 , - 4754 , - 367 , - 4296 , - 525 , - 2606 , - 4379 , - 4612 , - 2073 , - 458 , - 3463 , - 0 , - 4489 , - 4454 , - 3015 , - 796 , - 917 , - 4002 , - 3187 , - 4088 , - 4833 , - 1054 , - 863 , - 4884 , - 1261 , - 602 , - 1035 , - 3184 , - 185 , - 2646 , - 3703 , - 3980 , - 1605 , - 2194 , - 3875 , - 2280 , - 529 , - 4238 , - 1551 , - 3076 , - 1949 , - 3786 , - 1723 , - 1376 , - 873 , - 838 , - 4391 , - 2172 , - 2293 , - 386 , - 4563 , - 472 , - 1217 , - 2430 , - 2239 , - 1268 , - 2637 , - 1978 , - 2411 , - 4560 , - 1561 , - 4022 , - 87 , - 364 , - 2981 , - 3570 , - 259 , - 3656 , - 1905 , - 622 , - 2927 , - 4452 , - 3325 , - 170 , - 3099 , - 2752 , - 2249 , - 2214 , - 775 , - 3548 , - 3669 , - 1762 , - 947 , - 1848 , - 2593 , - 3806 , - 3615 , - 2644 , - 4013 , - 3354 , - 3787 , - 944 , - 2937 , - 406 , - 1463 , - 1740 , - 4357 , - 4946 , - 1635 , - 40 , - 3281 , - 1998 , - 4303 , - 836 , - 4701 , - 1546 , - 4475 , - 4128 , - 3625 , - 3590 , - 2151 , - 4924 , - 53 , - 3138 , - 2323 , - 3224 , - 3969 , - 190 , - 4991 , - 4020 , - 397 , - 4730 , - 171 , - 2320 , - 4313 , - 1782 , - 2839 , - 3116 , - 741 , - 1330 , - 3011 , - 1416 , - 4657 , - 3374 , - 687 , - 2212 , - 1085 , - 2922 , - 859 , - 512 , - 9 , - 4966 , - 3527 , - 1308 , - 1429 , - 4514 , - 3699 , - 4600 , - 353 , - 1566 , - 1375 , - 404 , - 1773 , - 1114 , - 1547 , - 3696 , - 697 , - 3158 , - 4215 , - 4492 , - 2117 , - 2706 , - 4387 , - 2792 , - 1041 , - 4750 , - 2063 , - 3588 , - 2461 , - 4298 , - 2235 , - 1888 , - 1385 , - 1350 , - 4903 , - 2684 , - 2805 , - 898 , - 83 , - 984 , - 1729 , - 2942 , - 2751 , - 1780 , - 3149 , - 2490 , - 2923 , - 80 , - 2073 , - 4534 , - 599 , - 876 , - 3493 , - 4082 , - 771 , - 4168 , - 2417 , - 1134 , - 3439 , - 4964 , - 3837 , - 682 , - 3611 , - 3264 , - 2761 , - 2726 , - 1287 , - 4060 , - 4181 , - 2274 , - 1459 , - 2360 , - 3105 , - 4318 , - 4127 , - 3156 , - 4525 , - 3866 , - 4299 , - 1456 , - 3449 , - 918 , - 1975 , - 2252 , - 4869 , - 466 , - 2147 , - 552 , - 3793 , - 2510 , - 4815 , - 1348 , - 221 , - 2058 , - 4987 , - 4640 , - 4137 , - 4102 , - 2663 , - 444 , - 565 , - 3650 , - 2835 , - 3736 , - 4481 , - 702 , - 511 , - 4532 , - 909 , - 250 , - 683 , - 2832 , - 4825 , - 2294 , - 3351 , - 3628 , - 1253 , - 1842 , - 3523 , - 1928 , - 177 , - 3886 , - 1199 , - 2724 , - 1597 , - 3434 , - 1371 , - 1024 , - 521 , - 486 , - 4039 , - 1820 , - 1941 , - 34 , - 4211 , - 120 , - 865 , - 2078 , - 1887 , - 916 , - 2285 , - 1626 , - 2059 , - 4208 , - 1209 , - 3670 , - 4727 , - 12 , - 2629 , - 3218 , - 4899 , - 3304 , - 1553 , - 270 , - 2575 , - 4100 , - 2973 , - 4810 , - 2747 , - 2400 , - 1897 , - 1862 , - 423 , - 3196 , - 3317 , - 1410 , - 595 , - 1496 , - 2241 , - 3454 , - 3263 , - 2292 , - 3661 , - 3002 , - 3435 , - 592 , - 2585 , - 54 , - 1111 , - 1388 , - 4005 , - 4594 , - 1283 , - 4680 , - 2929 , - 1646 , - 3951 , - 484 , - 4349 , - 1194 , - 4123 , - 3776 , - 3273 , - 3238 , - 1799 , - 4572 , - 4693 , - 2786 , - 1971 , - 2872 , - 3617 , - 4830 , - 4639 , - 3668 , - 45 , - 4378 , - 4811 , - 1968 , - 3961 , - 1430 , - 2487 , - 2764 , - 389 , - 978 , - 2659 , - 1064 , - 4305 , - 3022 , - 335 , - 1860 , - 733 , - 2570 , - 507 , - 160 , - 4649 , - 4614 , - 3175 , - 956 , - 1077 , - 4162 , - 3347 , - 4248 , - 1 , - 1214 , - 1023 , - 52 , - 1421 , - 762 , - 1195 , - 3344 , - 345 , - 2806 , - 3863 , - 4140 , - 1765 , - 2354 , - 4035 , - 2440 , - 689 , - 4398 , - 1711 , - 3236 , - 2109 , - 3946 , - 1883 , - 1536 , - 1033 , - 998 , - 4551 , - 2332 , - 2453 , - 546 , - 4723 , - 632 , - 1377 , - 2590 , - 2399 , - 1428 , - 2797 , - 2138 , - 2571 , - 4720 , - 1721 , - 4182 , - 247 , - 524 , - 3141 , - 3730 , - 419 , - 3816 , - 2065 , - 782 , - 3087 , - 4612 , - 3485 , - 330 , - 3259 , - 2912 , - 2409 , - 2374 , - 935 , - 3708 , - 3829 , - 1922 , - 1107 , - 2008 , - 2753 , - 3966 , - 3775 , - 2804 , - 4173 , - 3514 , - 3947 , - 1104 , - 3097 , - 566 , - 1623 , - 1900 , - 4517 , - 114 , - 1795 , - 200 , - 3441 , - 2158 , - 4463 , - 996 , - 4861 , - 1706 , - 4635 , - 4288 , - 3785 , - 3750 , - 2311 , - 92 , - 213 , - 3298 , - 2483 , - 3384 , - 4129 , - 350 , - 159 , - 4180 , - 557 , - 4890 , - 331 , - 2480 , - 4473 , - 1942 , - 2999 , - 3276 , - 901 , - 1490 , - 3171 , - 1576 , - 4817 , - 3534 , - 847 , - 2372 , - 1245 , - 3082 , - 1019 , - 672 , - 169 , - 134 , - 3687 , - 1468 , - 1589 , - 4674 , - 3859 , - 4760 , - 513 , - 1726 , - 1535 , - 564 , - 1933 , - 1274 , - 1707 , - 3856 , - 857 , - 3318 , - 4375 , - 4652 , - 2277 , - 2866 , - 4547 , - 2952 , - 1201 , - 4910 , - 2223 , - 3748 , - 2621 , - 4458 , - 2395 , - 2048 , - 1545 , - 1510 , - 71 , - 2844 , - 2965 , - 1058 , - 243 , - 1144 , - 1889 , - 3102 , - 2911 , - 1940 , - 3309 , - 2650 , - 3083 , - 240 , - 2233 , - 4694 , - 759 , - 1036 , - 3653 , - 4242 , - 931 , - 4328 , - 2577 , - 1294 , - 3599 , - 132 , - 3997 , - 842 , - 3771 , - 3424 , - 2921 , - 2886 , - 1447 , - 4220 , - 4341 , - 2434 , - 1619 , - 2520 , - 3265 , - 4478 , - 4287 , - 3316 , - 4685 , - 4026 , - 4459 , - 1616 , - 3609 , - 1078 , - 2135 , - 2412 , - 37 , - 626 , - 2307 , - 712 , - 3953 , - 2670 , - 4975 , - 1508 , - 381 , - 2218 , - 155 , - 4800 , - 4297 , - 4262 , - 2823 , - 604 , - 725 , - 3810 , - 2995 , - 3896 , - 4641 , - 862 , - 671 , - 4692 , - 1069 , - 410 , - 843 , - 2992 , - 4985 , - 2454 , - 3511 , - 3788 , - 1413 , - 2002 , - 3683 , - 2088 , - 337 , - 4046 , - 1359 , - 2884 , - 1757 , - 3594 , - 1531 , - 1184 , - 681 , - 646 , - 4199 , - 1980 , - 2101 , - 194 , - 4371 , - 280 , - 1025 , - 2238 , - 2047 , - 1076 , - 2445 , - 1786 , - 2219 , - 4368 , - 1369 , - 3830 , - 4887 , - 172 , - 2789 , - 3378 , - 67 , - 3464 , - 1713 , - 430 , - 2735 , - 4260 , - 3133 , - 4970 , - 2907 , - 2560 , - 2057 , - 2022 , - 583 , - 3356 , - 3477 , - 1570 , - 755 , - 1656 , - 2401 , - 3614 , - 3423 , - 2452 , - 3821 , - 3162 , - 3595 , - 752 , - 2745 , - 214 , - 1271 , - 1548 , - 4165 , - 4754 , - 1443 , - 4840 , - 3089 , - 1806 , - 4111 , - 644 , - 4509 , - 1354 , - 4283 , - 3936 , - 3433 , - 3398 , - 1959 , - 4732 , - 4853 , - 2946 , - 2131 , - 3032 , - 3777 , - 4990 , - 4799 , - 3828 , - 205 , - 4538 , - 4971 , - 2128 , - 4121 , - 1590 , - 2647 , - 2924 , - 549 , - 1138 , - 2819 , - 1224 , - 4465 , - 3182 , - 495 , - 2020 , - 893 , - 2730 , - 667 , - 320 , - 4809 , - 4774 , - 3335 , - 1116 , - 1237 , - 4322 , - 3507 , - 4408 , - 161 , - 1374 , - 1183 , - 212 , - 1581 , - 922 , - 1355 , - 3504 , - 505 , - 2966 , - 4023 , - 4300 , - 1925 , - 2514 , - 4195 , - 2600 , - 849 , - 4558 , - 1871 , - 3396 , - 2269 , - 4106 , - 2043 , - 1696 , - 1193 , - 1158 , - 4711 , - 2492 , - 2613 , - 706 , - 4883 , - 792 , - 1537 , - 2750 , - 2559 , - 1588 , - 2957 , - 2298 , - 2731 , - 4880 , - 1881 , - 4342 , - 407 , - 684 , - 3301 , - 3890 , - 579 , - 3976 , - 2225 , - 942 , - 3247 , - 4772 , - 3645 , - 490 , - 3419 , - 3072 , - 2569 , - 2534 , - 1095 , - 3868 , - 3989 , - 2082 , - 1267 , - 2168 , - 2913 , - 4126 , - 3935 , - 2964 , - 4333 , - 3674 , - 4107 , - 1264 , - 3257 , - 726 , - 1783 , - 2060 , - 4677 , - 274 , - 1955 , - 360 , - 3601 , - 2318 , - 4623 , - 1156 , - 29 , - 1866 , - 4795 , - 4448 , - 3945 , - 3910 , - 2471 , - 252 , - 373 , - 3458 , - 2643 , - 3544 , - 4289 , - 510 , - 319 , - 4340 , - 717 , - 58 , - 491 , - 2640 , - 4633 , - 2102 , - 3159 , - 3436 , - 1061 , - 1650 , - 3331 , - 1736 , - 4977 , - 3694 , - 1007 , - 2532 , - 1405 , - 3242 , - 1179 , - 832 , - 329 , - 294 , - 3847 , - 1628 , - 1749 , - 4834 , - 4019 , - 4920 , - 673 , - 1886 , - 1695 , - 724 , - 2093 , - 1434 , - 1867 , - 4016 , - 1017 , - 3478 , - 4535 , - 4812 , - 2437 , - 3026 , - 4707 , - 3112 , - 1361 , - 78 , - 2383 , - 3908 , - 2781 , - 4618 , - 2555 , - 2208 , - 1705 , - 1670 , - 231 , - 3004 , - 3125 , - 1218 , - 403 , - 1304 , - 2049 , - 3262 , - 3071 , - 2100 , - 3469 , - 2810 , - 3243 , - 400 , - 2393 , - 4854 , - 919 , - 1196 , - 3813 , - 4402 , - 1091 , - 4488 , - 2737 , - 1454 , - 3759 , - 292 , - 4157 , - 1002 , - 3931 , - 3584 , - 3081 , - 3046 , - 1607 , - 4380 , - 4501 , - 2594 , - 1779 , - 2680 , - 3425 , - 4638 , - 4447 , - 3476 , - 4845 , - 4186 , - 4619 , - 1776 , - 3769 , - 1238 , - 2295 , - 2572 , - 197 , - 786 , - 2467 , - 872 , - 4113 , - 2830 , - 143 , - 1668 , - 541 , - 2378 , - 315 , - 4960 , - 4457 , - 4422 , - 2983 , - 764 , - 885 , - 3970 , - 3155 , - 4056 , - 4801 , - 1022 , - 831 , - 4852 , - 1229 , - 570 , - 1003 , - 3152 , - 153 , - 2614 , - 3671 , - 3948 , - 1573 , - 2162 , - 3843 , - 2248 , - 497 , - 4206 , - 1519 , - 3044 , - 1917 , - 3754 , - 1691 , - 1344 , - 841 , - 806 , - 4359 , - 2140 , - 2261 , - 354 , - 4531 , - 440 , - 1185 , - 2398 , - 2207 , - 1236 , - 2605 , - 1946 , - 2379 , - 4528 , - 1529 , - 3990 , - 55 , - 332 , - 2949 , - 3538 , - 227 , - 3624 , - 1873 , - 590 , - 2895 , - 4420 , - 3293 , - 138 , - 3067 , - 2720 , - 2217 , - 2182 , - 743 , - 3516 , - 3637 , - 1730 , - 915 , - 1816 , - 2561 , - 3774 , - 3583 , - 2612 , - 3981 , - 3322 , - 3755 , - 912 , - 2905 , - 374 , - 1431 , - 1708 , - 4325 , - 4914 , - 1603 , - 8 , - 3249 , - 1966 , - 4271 , - 804 , - 4669 , - 1514 , - 4443 , - 4096 , - 3593 , - 3558 , - 2119 , - 4892 , - 21 , - 3106 , - 2291 , - 3192 , - 3937 , - 158 , - 4959 , - 3988 , - 365 , - 4698 , - 139 , - 2288 , - 4281 , - 1750 , - 2807 , - 3084 , - 709 , - 1298 , - 2979 , - 1384 , - 4625 , - 3342 , - 655 , - 2180 , - 1053 , - 2890 , - 827 , - 480 , - 4969 , - 4934 , - 3495 , - 1276 , - 1397 , - 4482 , - 3667 , - 4568 , - 321 , - 1534 , - 1343 , - 372 , - 1741 , - 1082 , - 1515 , - 3664 , - 665 , - 3126 , - 4183 , - 4460 , - 2085 , - 2674 , - 4355 , - 2760 , - 1009 , - 4718 , - 2031 , - 3556 , - 2429 , - 4266 , - 2203 , - 1856 , - 1353 , - 1318 , - 4871 , - 2652 , - 2773 , - 866 , - 51 , - 952 , - 1697 , - 2910 , - 2719 , - 1748 , - 3117 , - 2458 , - 2891 , - 48 , - 2041 , - 4502 , - 567 , - 844 , - 3461 , - 4050 , - 739 , - 4136 , - 2385 , - 1102 , - 3407 , - 4932 , - 3805 , - 650 , - 3579 , - 3232 , - 2729 , - 2694 , - 1255 , - 4028 , - 4149 , - 2242 , - 1427 , - 2328 , - 3073 , - 4286 , - 4095 , - 3124 , - 4493 , - 3834 , - 4267 , - 1424 , - 3417 , - 886 , - 1943 , - 2220 , - 4837 , - 434 , - 2115 , - 520 , - 3761 , - 2478 , - 4783 , - 1316 , - 189 , - 2026 , - 4955 , - 4608 , - 4105 , - 4070 , - 2631 , - 412 , - 533 , - 3618 , - 2803 , - 3704 , - 4449 , - 670 , - 479 , - 4500 , - 877 , - 218 , - 651 , - 2800 , - 4793 , - 2262 , - 3319 , - 3596 , - 1221 , - 1810 , - 3491 , - 1896 , - 145 , - 3854 , - 1167 , - 2692 , - 1565 , - 3402 , - 1339 , - 992 , - 489 , - 454 , - 4007 , - 1788 , - 1909 , - 2 , - 4179 , - 88 , - 833 , - 2046 , - 1855 , - 884 , - 2253 , - 1594 , - 2027 , - 4176 , - 1177 , - 3638 , - 4695 , - 4972 , - 2597 , - 3186 , - 4867 , - 3272 , - 1521 , - 238 , - 2543 , - 4068 , - 2941 , - 4778 , - 2715 , - 2368 , - 1865 , - 1830 , - 391 , - 3164 , - 3285 , - 1378 , - 563 , - 1464 , - 2209 , - 3422 , - 3231 , - 2260 , - 3629 , - 2970 , - 3403 , - 560 , - 2553 , - 22 , - 1079 , - 1356 , - 3973 , - 4562 , - 1251 , - 4648 , - 2897 , - 1614 , - 3919 , - 452 , - 4317 , - 1162 , - 4091 , - 3744 , - 3241 , - 3206 , - 1767 , - 4540 , - 4661 , - 2754 , - 1939 , - 2840 , - 3585 , - 4798 , - 4607 , - 3636 , - 13 , - 4346 , - 4779 , - 1936 , - 3929 , - 1398 , - 2455 , - 2732 , - 357 , - 946 , - 2627 , - 1032 , - 4273 , - 2990 , - 303 , - 1828 , - 701 , - 2538 , - 475 , - 128 , - 4617 , - 4582 , - 3143 , - 924 , - 1045 , - 4130 , - 3315 , - 4216 , - 4961 , - 1182 , - 991 , - 20 , - 1389 , - 730 , - 1163 , - 3312 , - 313 , - 2774 , - 3831 , - 4108 , - 1733 , - 2322 , - 4003 , - 2408 , - 657 , - 4366 , - 1679 , - 3204 , - 2077 , - 3914 , - 1851 , - 1504 , - 1001 , - 966 , - 4519 , - 2300 , - 2421 , - 514 , - 4691 , - 600 , - 1345 , - 2558 , - 2367 , - 1396 , - 2765 , - 2106 , - 2539 , - 4688 , - 1689 , - 4150 , - 215 , - 492 , - 3109 , - 3698 , - 387 , - 3784 , - 2033 , - 750 , - 3055 , - 4580 , - 3453 , - 298 , - 3227 , - 2880 , - 2377 , - 2342 , - 903 , - 3676 , - 3797 , - 1890 , - 1075 , - 1976 , - 2721 , - 3934 , - 3743 , - 2772 , - 4141 , - 3482 , - 3915 , - 1072 , - 3065 , - 534 , - 1591 , - 1868 , - 4485 , - 82 , - 1763 , - 168 , - 3409 , - 2126 , - 4431 , - 964 , - 4829 , - 1674 , - 4603 , - 4256 , - 3753 , - 3718 , - 2279 , - 60 , - 181 , - 3266 , - 2451 , - 3352 , - 4097 , - 318 , - 127 , - 4148 , - 525 , - 4858 , - 299 , - 2448 , - 4441 , - 1910 , - 2967 , - 3244 , - 869 , - 1458 , - 3139 , - 1544 , - 4785 , - 3502 , - 815 , - 2340 , - 1213 , - 3050 , - 987 , - 640 , - 137 , - 102 , - 3655 , - 1436 , - 1557 , - 4642 , - 3827 , - 4728 , - 481 , - 1694 , - 1503 , - 532 , - 1901 , - 1242 , - 1675 , - 3824 , - 825 , - 3286 , - 4343 , - 4620 , - 2245 , - 2834 , - 4515 , - 2920 , - 1169 , - 4878 , - 2191 , - 3716 , - 2589 , - 4426 , - 2363 , - 2016 , - 1513 , - 1478 , - 39 , - 2812 , - 2933 , - 1026 , - 211 , - 1112 , - 1857 , - 3070 , - 2879 , - 1908 , - 3277 , - 2618 , - 3051 , - 208 , - 2201 , - 4662 , - 727 , - 1004 , - 3621 , - 4210 , - 899 , - 4296 , - 2545 , - 1262 , - 3567 , - 100 , - 3965 , - 810 , - 3739 , - 3392 , - 2889 , - 2854 , - 1415 , - 4188 , - 4309 , - 2402 , - 1587 , - 2488 , - 3233 , - 4446 , - 4255 , - 3284 , - 4653 , - 3994 , - 4427 , - 1584 , - 3577 , - 1046 , - 2103 , - 2380 , - 5 , - 594 , - 2275 , - 680 , - 3921 , - 2638 , - 4943 , - 1476 , - 349 , - 2186 , - 123 , - 4768 , - 4265 , - 4230 , - 2791 , - 572 , - 693 , - 3778 , - 2963 , - 3864 , - 4609 , - 830 , - 639 , - 4660 , - 1037 , - 378 , - 811 , - 2960 , - 4953 , - 2422 , - 3479 , - 3756 , - 1381 , - 1970 , - 3651 , - 2056 , - 305 , - 4014 , - 1327 , - 2852 , - 1725 , - 3562 , - 1499 , - 1152 , - 649 , - 614 , - 4167 , - 1948 , - 2069 , - 162 , - 4339 , - 248 , - 993 , - 2206 , - 2015 , - 1044 , - 2413 , - 1754 , - 2187 , - 4336 , - 1337 , - 3798 , - 4855 , - 140 , - 2757 , - 3346 , - 35 , - 3432 , - 1681 , - 398 , - 2703 , - 4228 , - 3101 , - 4938 , - 2875 , - 2528 , - 2025 , - 1990 , - 551 , - 3324 , - 3445 , - 1538 , - 723 , - 1624 , - 2369 , - 3582 , - 3391 , - 2420 , - 3789 , - 3130 , - 3563 , - 720 , - 2713 , - 182 , - 1239 , - 1516 , - 4133 , - 4722 , - 1411 , - 4808 , - 3057 , - 1774 , - 4079 , - 612 , - 4477 , - 1322 , - 4251 , - 3904 , - 3401 , - 3366 , - 1927 , - 4700 , - 4821 , - 2914 , - 2099 , - 3000 , - 3745 , - 4958 , - 4767 , - 3796 , - 173 , - 4506 , - 4939 , - 2096 , - 4089 , - 1558 , - 2615 , - 2892 , - 517 , - 1106 , - 2787 , - 1192 , - 4433 , - 3150 , - 463 , - 1988 , - 861 , - 2698 , - 635 , - 288 , - 4777 , - 4742 , - 3303 , - 1084 , - 1205 , - 4290 , - 3475 , - 4376 , - 129 , - 1342 , - 1151 , - 180 , - 1549 , - 890 , - 1323 , - 3472 , - 473 , - 2934 , - 3991 , - 4268 , - 1893 , - 2482 , - 4163 , - 2568 , - 817 , - 4526 , - 1839 , - 3364 , - 2237 , - 4074 , - 2011 , - 1664 , - 1161 , - 1126 , - 4679 , - 2460 , - 2581 , - 674 , - 4851 , - 760 , - 1505 , - 2718 , - 2527 , - 1556 , - 2925 , - 2266 , - 2699 , - 4848 , - 1849 , - 4310 , - 375 , - 652 , - 3269 , - 3858 , - 547 , - 3944 , - 2193 , - 910 , - 3215 , - 4740 , - 3613 , - 458 , - 3387 , - 3040 , - 2537 , - 2502 , - 1063 , - 3836 , - 3957 , - 2050 , - 1235 , - 2136 , - 2881 , - 4094 , - 3903 , - 2932 , - 4301 , - 3642 , - 4075 , - 1232 , - 3225 , - 694 , - 1751 , - 2028 , - 4645 , - 242 , - 1923 , - 328 , - 3569 , - 2286 , - 4591 , - 1124 , - 4989 , - 1834 , - 4763 , - 4416 , - 3913 , - 3878 , - 2439 , - 220 , - 341 , - 3426 , - 2611 , - 3512 , - 4257 , - 478 , - 287 , - 4308 , - 685 , - 26 , - 459 , - 2608 , - 4601 , - 2070 , - 3127 , - 3404 , - 1029 , - 1618 , - 3299 , - 1704 , - 4945 , - 3662 , - 975 , - 2500 , - 1373 , - 3210 , - 1147 , - 800 , - 297 , - 262 , - 3815 , - 1596 , - 1717 , - 4802 , - 3987 , - 4888 , - 641 , - 1854 , - 1663 , - 692 , - 2061 , - 1402 , - 1835 , - 3984 , - 985 , - 3446 , - 4503 , - 4780 , - 2405 , - 2994 , - 4675 , - 3080 , - 1329 , - 46 , - 2351 , - 3876 , - 2749 , - 4586 , - 2523 , - 2176 , - 1673 , - 1638 , - 199 , - 2972 , - 3093 , - 1186 , - 371 , - 1272 , - 2017 , - 3230 , - 3039 , - 2068 , - 3437 , - 2778 , - 3211 , - 368 , - 2361 , - 4822 , - 887 , - 1164 , - 3781 , - 4370 , - 1059 , - 4456 , - 2705 , - 1422 , - 3727 , - 260 , - 4125 , - 970 , - 3899 , - 3552 , - 3049 , - 3014 , - 1575 , - 4348 , - 4469 , - 2562 , - 1747 , - 2648 , - 3393 , - 4606 , - 4415 , - 3444 , - 4813 , - 4154 , - 4587 , - 1744 , - 3737 , - 1206 , - 2263 , - 2540 , - 165 , - 754 , - 2435 , - 840 , - 4081 , - 2798 , - 111 , - 1636 , - 509 , - 2346 , - 283 , - 4928 , - 4425 , - 4390 , - 2951 , - 732 , - 853 , - 3938 , - 3123 , - 4024 , - 4769 , - 990 , - 799 , - 4820 , - 1197 , - 538 , - 971 , - 3120 , - 121 , - 2582 , - 3639 , - 3916 , - 1541 , - 2130 , - 3811 , - 2216 , - 465 , - 4174 , - 1487 , - 3012 , - 1885 , - 3722 , - 1659 , - 1312 , - 809 , - 774 , - 4327 , - 2108 , - 2229 , - 322 , - 4499 , - 408 , - 1153 , - 2366 , - 2175 , - 1204 , - 2573 , - 1914 , - 2347 , - 4496 , - 1497 , - 3958 , - 23 , - 300 , - 2917 , - 3506 , - 195 , - 3592 , - 1841 , - 558 , - 2863 , - 4388 , - 3261 , - 106 , - 3035 , - 2688 , - 2185 , - 2150 , - 711 , - 3484 , - 3605 , - 1698 , - 883 , - 1784 , - 2529 , - 3742 , - 3551 , - 2580 , - 3949 , - 3290 , - 3723 , - 880 , - 2873 , - 342 , - 1399 , - 1676 , - 4293 , - 4882 , - 1571 , - 4968 , - 3217 , - 1934 , - 4239 , - 772 , - 4637 , - 1482 , - 4411 , - 4064 , - 3561 , - 3526 , - 2087 , - 4860 , - 4981 , - 3074 , - 2259 , - 3160 , - 3905 , - 126 , - 4927 , - 3956 , - 333 , - 4666 , - 107 , - 2256 , - 4249 , - 1718 , - 2775 , - 3052 , - 677 , - 1266 , - 2947 , - 1352 , - 4593 , - 3310 , - 623 , - 2148 , - 1021 , - 2858 , - 795 , - 448 , - 4937 , - 4902 , - 3463 , - 1244 , - 1365 , - 4450 , - 3635 , - 4536 , - 289 , - 1502 , - 1311 , - 340 , - 1709 , - 1050 , - 1483 , - 3632 , - 633 , - 3094 , - 4151 , - 4428 , - 2053 , - 2642 , - 4323 , - 2728 , - 977 , - 4686 , - 1999 , - 3524 , - 2397 , - 4234 , - 2171 , - 1824 , - 1321 , - 1286 , - 4839 , - 2620 , - 2741 , - 834 , - 19 , - 920 , - 1665 , - 2878 , - 2687 , - 1716 , - 3085 , - 2426 , - 2859 , - 16 , - 2009 , - 4470 , - 535 , - 812 , - 3429 , - 4018 , - 707 , - 4104 , - 2353 , - 1070 , - 3375 , - 4900 , - 3773 , - 618 , - 3547 , - 3200 , - 2697 , - 2662 , - 1223 , - 3996 , - 4117 , - 2210 , - 1395 , - 2296 , - 3041 , - 4254 , - 4063 , - 3092 , - 4461 , - 3802 , - 4235 , - 1392 , - 3385 , - 854 , - 1911 , - 2188 , - 4805 , - 402 , - 2083 , - 488 , - 3729 , - 2446 , - 4751 , - 1284 , - 157 , - 1994 , - 4923 , - 4576 , - 4073 , - 4038 , - 2599 , - 380 , - 501 , - 3586 , - 2771 , - 3672 , - 4417 , - 638 , - 447 , - 4468 , - 845 , - 186 , - 619 , - 2768 , - 4761 , - 2230 , - 3287 , - 3564 , - 1189 , - 1778 , - 3459 , - 1864 , - 113 , - 3822 , - 1135 , - 2660 , - 1533 , - 3370 , - 1307 , - 960 , - 457 , - 422 , - 3975 , - 1756 , - 1877 , - 4962 , - 4147 , - 56 , - 801 , - 2014 , - 1823 , - 852 , - 2221 , - 1562 , - 1995 , - 4144 , - 1145 , - 3606 , - 4663 , - 4940 , - 2565 , - 3154 , - 4835 , - 3240 , - 1489 , - 206 , - 2511 , - 4036 , - 2909 , - 4746 , - 2683 , - 2336 , - 1833 , - 1798 , - 359 , - 3132 , - 3253 , - 1346 , - 531 , - 1432 , - 2177 , - 3390 , - 3199 , - 2228 , - 3597 , - 2938 , - 3371 , - 528 , - 2521 , - 4982 , - 1047 , - 1324 , - 3941 , - 4530 , - 1219 , - 4616 , - 2865 , - 1582 , - 3887 , - 420 , - 4285 , - 1130 , - 4059 , - 3712 , - 3209 , - 3174 , - 1735 , - 4508 , - 4629 , - 2722 , - 1907 , - 2808 , - 3553 , - 4766 , - 4575 , - 3604 , - 4973 , - 4314 , - 4747 , - 1904 , - 3897 , - 1366 , - 2423 , - 2700 , - 325 , - 914 , - 2595 , - 1000 , - 4241 , - 2958 , - 271 , - 1796 , - 669 , - 2506 , - 443 , - 96 , - 4585 , - 4550 , - 3111 , - 892 , - 1013 , - 4098 , - 3283 , - 4184 , - 4929 , - 1150 , - 959 , - 4980 , - 1357 , - 698 , - 1131 , - 3280 , - 281 , - 2742 , - 3799 , - 4076 , - 1701 , - 2290 , - 3971 , - 2376 , - 625 , - 4334 , - 1647 , - 3172 , - 2045 , - 3882 , - 1819 , - 1472 , - 969 , - 934 , - 4487 , - 2268 , - 2389 , - 482 , - 4659 , - 568 , - 1313 , - 2526 , - 2335 , - 1364 , - 2733 , - 2074 , - 2507 , - 4656 , - 1657 , - 4118 , - 183 , - 460 , - 3077 , - 3666 , - 355 , - 3752 , - 2001 , - 718 , - 3023 , - 4548 , - 3421 , - 266 , - 3195 , - 2848 , - 2345 , - 2310 , - 871 , - 3644 , - 3765 , - 1858 , - 1043 , - 1944 , - 2689 , - 3902 , - 3711 , - 2740 , - 4109 , - 3450 , - 3883 , - 1040 , - 3033 , - 502 , - 1559 , - 1836 , - 4453 , - 50 , - 1731 , - 136 , - 3377 , - 2094 , - 4399 , - 932 , - 4797 , - 1642 , - 4571 , - 4224 , - 3721 , - 3686 , - 2247 , - 28 , - 149 , - 3234 , - 2419 , - 3320 , - 4065 , - 286 , - 95 , - 4116 , - 493 , - 4826 , - 267 , - 2416 , - 4409 , - 1878 , - 2935 , - 3212 , - 837 , - 1426 , - 3107 , - 1512 , - 4753 , - 3470 , - 783 , - 2308 , - 1181 , - 3018 , - 955 , - 608 , - 105 , - 70 , - 3623 , - 1404 , - 1525 , - 4610 , - 3795 , - 4696 , - 449 , - 1662 , - 1471 , - 500 , - 1869 , - 1210 , - 1643 , - 3792 , - 793 , - 3254 , - 4311 , - 4588 , - 2213 , - 2802 , - 4483 , - 2888 , - 1137 , - 4846 , - 2159 , - 3684 , - 2557 , - 4394 , - 2331 , - 1984 , - 1481 , - 1446 , - 7 , - 2780 , - 2901 , - 994 , - 179 , - 1080 , - 1825 , - 3038 , - 2847 , - 1876 , - 3245 , - 2586 , - 3019 , - 176 , - 2169 , - 4630 , - 695 , - 972 , - 3589 , - 4178 , - 867 , - 4264 , - 2513 , - 1230 , - 3535 , - 68 , - 3933 , - 778 , - 3707 , - 3360 , - 2857 , - 2822 , - 1383 , - 4156 , - 4277 , - 2370 , - 1555 , - 2456 , - 3201 , - 4414 , - 4223 , - 3252 , - 4621 , - 3962 , - 4395 , - 1552 , - 3545 , - 1014 , - 2071 , - 2348 , - 4965 , - 562 , - 2243 , - 648 , - 3889 , - 2606 , - 4911 , - 1444 , - 317 , - 2154 , - 91 , - 4736 , - 4233 , - 4198 , - 2759 , - 540 , - 661 , - 3746 , - 2931 , - 3832 , - 4577 , - 798 , - 607 , - 4628 , - 1005 , - 346 , - 779 , - 2928 , - 4921 , - 2390 , - 3447 , - 3724 , - 1349 , - 1938 , - 3619 , - 2024 , - 273 , - 3982 , - 1295 , - 2820 , - 1693 , - 3530 , - 1467 , - 1120 , - 617 , - 582 , - 4135 , - 1916 , - 2037 , - 130 , - 4307 , - 216 , - 961 , - 2174 , - 1983 , - 1012 , - 2381 , - 1722 , - 2155 , - 4304 , - 1305 , - 3766 , - 4823 , - 108 , - 2725 , - 3314 , - 3 , - 3400 , - 1649 , - 366 , - 2671 , - 4196 , - 3069 , - 4906 , - 2843 , - 2496 , - 1993 , - 1958 , - 519 , - 3292 , - 3413 , - 1506 , - 691 , - 1592 , - 2337 , - 3550 , - 3359 , - 2388 , - 3757 , - 3098 , - 3531 , - 688 , - 2681 , - 150 , - 1207 , - 1484 , - 4101 , - 4690 , - 1379 , - 4776 , - 3025 , - 1742 , - 4047 , - 580 , - 4445 , - 1290 , - 4219 , - 3872 , - 3369 , - 3334 , - 1895 , - 4668 , - 4789 , - 2882 , - 2067 , - 2968 , - 3713 , - 4926 , - 4735 , - 3764 , - 141 , - 4474 , - 4907 , - 2064 , - 4057 , - 1526 , - 2583 , - 2860 , - 485 , - 1074 , - 2755 , - 1160 , - 4401 , - 3118 , - 431 , - 1956 , - 829 , - 2666 , - 603 , - 256 , - 4745 , - 4710 , - 3271 , - 1052 , - 1173 , - 4258 , - 3443 , - 4344 , - 97 , - 1310 , - 1119 , - 148 , - 1517 , - 858 , - 1291 , - 3440 , - 441 , - 2902 , - 3959 , - 4236 , - 1861 , - 2450 , - 4131 , - 2536 , - 785 , - 4494 , - 1807 , - 3332 , - 2205 , - 4042 , - 1979 , - 1632 , - 1129 , - 1094 , - 4647 , - 2428 , - 2549 , - 642 , - 4819 , - 728 , - 1473 , - 2686 , - 2495 , - 1524 , - 2893 , - 2234 , - 2667 , - 4816 , - 1817 , - 4278 , - 343 , - 620 , - 3237 , - 3826 , - 515 , - 3912 , - 2161 , - 878 , - 3183 , - 4708 , - 3581 , - 426 , - 3355 , - 3008 , - 2505 , - 2470 , - 1031 , - 3804 , - 3925 , - 2018 , - 1203 , - 2104 , - 2849 , - 4062 , - 3871 , - 2900 , - 4269 , - 3610 , - 4043 , - 1200 , - 3193 , - 662 , - 1719 , - 1996 , - 4613 , - 210 , - 1891 , - 296 , - 3537 , - 2254 , - 4559 , - 1092 , - 4957 , - 1802 , - 4731 , - 4384 , - 3881 , - 3846 , - 2407 , - 188 , - 309 , - 3394 , - 2579 , - 3480 , - 4225 , - 446 , - 255 , - 4276 , - 653 , - 4986 , - 427 , - 2576 , - 4569 , - 2038 , - 3095 , - 3372 , - 997 , - 1586 , - 3267 , - 1672 , - 4913 , - 3630 , - 943 , - 2468 , - 1341 , - 3178 , - 1115 , - 768 , - 265 , - 230 , - 3783 , - 1564 , - 1685 , - 4770 , - 3955 , - 4856 , - 609 , - 1822 , - 1631 , - 660 , - 2029 , - 1370 , - 1803 , - 3952 , - 953 , - 3414 , - 4471 , - 4748 , - 2373 , - 2962 , - 4643 , - 3048 , - 1297 , - 14 , - 2319 , - 3844 , - 2717 , - 4554 , - 2491 , - 2144 , - 1641 , - 1606 , - 167 , - 2940 , - 3061 , - 1154 , - 339 , - 1240 , - 1985 , - 3198 , - 3007 , - 2036 , - 3405 , - 2746 , - 3179 , - 336 , - 2329 , - 4790 , - 855 , - 1132 , - 3749 , - 4338 , - 1027 , - 4424 , - 2673 , - 1390 , - 3695 , - 228 , - 4093 , - 938 , - 3867 , - 3520 , - 3017 , - 2982 , - 1543 , - 4316 , - 4437 , - 2530 , - 1715 , - 2616 , - 3361 , - 4574 , - 4383 , - 3412 , - 4781 , - 4122 , - 4555 , - 1712 , - 3705 , - 1174 , - 2231 , - 2508 , - 133 , - 722 , - 2403 , - 808 , - 4049 , - 2766 , - 79 , - 1604 , - 477 , - 2314 , - 251 , - 4896 , - 4393 , - 4358 , - 2919 , - 700 , - 821 , - 3906 , - 3091 , - 3992 , - 4737 , - 958 , - 767 , - 4788 , - 1165 , - 506 , - 939 , - 3088 , - 89 , - 2550 , - 3607 , - 3884 , - 1509 , - 2098 , - 3779 , - 2184 , - 433 , - 4142 , - 1455 , - 2980 , - 1853 , - 3690 , - 1627 , - 1280 , - 777 , - 742 , - 4295 , - 2076 , - 2197 , - 290 , - 4467 , - 376 , - 1121 , - 2334 , - 2143 , - 1172 , - 2541 , - 1882 , - 2315 , - 4464 , - 1465 , - 3926 , - 4983 , - 268 , - 2885 , - 3474 , - 163 , - 3560 , - 1809 , - 526 , - 2831 , - 4356 , - 3229 , - 74 , - 3003 , - 2656 , - 2153 , - 2118 , - 679 , - 3452 , - 3573 , - 1666 , - 851 , - 1752 , - 2497 , - 3710 , - 3519 , - 2548 , - 3917 , - 3258 , - 3691 , - 848 , - 2841 , - 310 , - 1367 , - 1644 , - 4261 , - 4850 , - 1539 , - 4936 , - 3185 , - 1902 , - 4207 , - 740 , - 4605 , - 1450 , - 4379 , - 4032 , - 3529 , - 3494 , - 2055 , - 4828 , - 4949 , - 3042 , - 2227 , - 3128 , - 3873 , - 94 , - 4895 , - 3924 , - 301 , - 4634 , - 75 , - 2224 , - 4217 , - 1686 , - 2743 , - 3020 , - 645 , - 1234 , - 2915 , - 1320 , - 4561 , - 3278 , - 591 , - 2116 , - 989 , - 2826 , - 763 , - 416 , - 4905 , - 4870 , - 3431 , - 1212 , - 1333 , - 4418 , - 3603 , - 4504 , - 257 , - 1470 , - 1279 , - 308 , - 1677 , - 1018 , - 1451 , - 3600 , - 601 , - 3062 , - 4119 , - 4396 , - 2021 , - 2610 , - 4291 , - 2696 , - 945 , - 4654 , - 1967 , - 3492 , - 2365 , - 4202 , - 2139 , - 1792 , - 1289 , - 1254 , - 4807 , - 2588 , - 2709 , - 802 , - 4979 , - 888 , - 1633 , - 2846 , - 2655 , - 1684 , - 3053 , - 2394 , - 2827 , - 4976 , - 1977 , - 4438 , - 503 , - 780 , - 3397 , - 3986 , - 675 , - 4072 , - 2321 , - 1038 , - 3343 , - 4868 , - 3741 , - 586 , - 3515 , - 3168 , - 2665 , - 2630 , - 1191 , - 3964 , - 4085 , - 2178 , - 1363 , - 2264 , - 3009 , - 4222 , - 4031 , - 3060 , - 4429 , - 3770 , - 4203 , - 1360 , - 3353 , - 822 , - 1879 , - 2156 , - 4773 , - 370 , - 2051 , - 456 , - 3697 , - 2414 , - 4719 , - 1252 , - 125 , - 1962 , - 4891 , - 4544 , - 4041 , - 4006 , - 2567 , - 348 , - 469 , - 3554 , - 2739 , - 3640 , - 4385 , - 606 , - 415 , - 4436 , - 813 , - 154 , - 587 , - 2736 , - 4729 , - 2198 , - 3255 , - 3532 , - 1157 , - 1746 , - 3427 , - 1832 , - 81 , - 3790 , - 1103 , - 2628 , - 1501 , - 3338 , - 1275 , - 928 , - 425 , - 390 , - 3943 , - 1724 , - 1845 , - 4930 , - 4115 , - 24 , - 769 , - 1982 , - 1791 , - 820 , - 2189 , - 1530 , - 1963 , - 4112 , - 1113 , - 3574 , - 4631 , - 4908 , - 2533 , - 3122 , - 4803 , - 3208 , - 1457 , - 174 , - 2479 , - 4004 , - 2877 , - 4714 , - 2651 , - 2304 , - 1801 , - 1766 , - 327 , - 3100 , - 3221 , - 1314 , - 499 , - 1400 , - 2145 , - 3358 , - 3167 , - 2196 , - 3565 , - 2906 , - 3339 , - 496 , - 2489 , - 4950 , - 1015 , - 1292 , - 3909 , - 4498 , - 1187 , - 4584 , - 2833 , - 1550 , - 3855 , - 388 , - 4253 , - 1098 , - 4027 , - 3680 , - 3177 , - 3142 , - 1703 , - 4476 , - 4597 , - 2690 , - 1875 , - 2776 , - 3521 , - 4734 , - 4543 , - 3572 , - 4941 , - 4282 , - 4715 , - 1872 , - 3865 , - 1334 , - 2391 , - 2668 , - 293 , - 882 , - 2563 , - 968 , - 4209 , - 2926 , - 239 , - 1764 , - 637 , - 2474 , - 411 , - 64 , - 4553 , - 4518 , - 3079 , - 860 , - 981 , - 4066 , - 3251 , - 4152 , - 4897 , - 1118 , - 927 , - 4948 , - 1325 , - 666 , - 1099 , - 3248 , - 249 , - 2710 , - 3767 , - 4044 , - 1669 , - 2258 , - 3939 , - 2344 , - 593 , - 4302 , - 1615 , - 3140 , - 2013 , - 3850 , - 1787 , - 1440 , - 937 , - 902 , - 4455 , - 2236 , - 2357 , - 450 , - 4627 , - 536 , - 1281 , - 2494 , - 2303 , - 1332 , - 2701 , - 2042 , - 2475 , - 4624 , - 1625 , - 4086 , - 151 , - 428 , - 3045 , - 3634 , - 323 , - 3720 , - 1969 , - 686 , - 2991 , - 4516 , - 3389 , - 234 , - 3163 , - 2816 , - 2313 , - 2278 , - 839 , - 3612 , - 3733 , - 1826 , - 1011 , - 1912 , - 2657 , - 3870 , - 3679 , - 2708 , - 4077 , - 3418 , - 3851 , - 1008 , - 3001 , - 470 , - 1527 , - 1804 , - 4421 , - 18 , - 1699 , - 104 , - 3345 , - 2062 , - 4367 , - 900 , - 4765 , - 1610 , - 4539 , - 4192 , - 3689 , - 3654 , - 2215 , - 4988 , - 117 , - 3202 , - 2387 , - 3288 , - 4033 , - 254 , - 63 , - 4084 , - 461 , - 4794 , - 235 , - 2384 , - 4377 , - 1846 , - 2903 , - 3180 , - 805 , - 1394 , - 3075 , - 1480 , - 4721 , - 3438 , - 751 , - 2276 , - 1149 , - 2986 , - 923 , - 576 , - 73 , - 38 , - 3591 , - 1372 , - 1493 , - 4578 , - 3763 , - 4664 , - 417 , - 1630 , - 1439 , - 468 , - 1837 , - 1178 , - 1611 , - 3760 , - 761 , - 3222 , - 4279 , - 4556 , - 2181 , - 2770 , - 4451 , - 2856 , - 1105 , - 4814 , - 2127 , - 3652 , - 2525 , - 4362 , - 2299 , - 1952 , - 1449 , - 1414 , - 4967 , - 2748 , - 2869 , - 962 , - 147 , - 1048 , - 1793 , - 3006 , - 2815 , - 1844 , - 3213 , - 2554 , - 2987 , - 144 , - 2137 , - 4598 , - 663 , - 940 , - 3557 , - 4146 , - 835 , - 4232 , - 2481 , - 1198 , - 3503 , - 36 , - 3901 , - 746 , - 3675 , - 3328 , - 2825 , - 2790 , - 1351 , - 4124 , - 4245 , - 2338 , - 1523 , - 2424 , - 3169 , - 4382 , - 4191 , - 3220 , - 4589 , - 3930 , - 4363 , - 1520 , - 3513 , - 982 , - 2039 , - 2316 , - 4933 , - 530 , - 2211 , - 616 , - 3857 , - 2574 , - 4879 , - 1412 , - 285 , - 2122 , - 59 , - 4704 , - 4201 , - 4166 , - 2727 , - 508 , - 629 , - 3714 , - 2899 , - 3800 , - 4545 , - 766 , - 575 , - 4596 , - 973 , - 314 , - 747 , - 2896 , - 4889 , - 2358 , - 3415 , - 3692 , - 1317 , - 1906 , - 3587 , - 1992 , - 241 , - 3950 , - 1263 , - 2788 , - 1661 , - 3498 , - 1435 , - 1088 , - 585 , - 550 , - 4103 , - 1884 , - 2005 , - 98 , - 4275 , - 184 , - 929 , - 2142 , - 1951 , - 980 , - 2349 , - 1690 , - 2123 , - 4272 , - 1273 , - 3734 , - 4791 , - 76 , - 2693 , - 3282 , - 4963 , - 3368 , - 1617 , - 334 , - 2639 , - 4164 , - 3037 , - 4874 , - 2811 , - 2464 , - 1961 , - 1926 , - 487 , - 3260 , - 3381 , - 1474 , - 659 , - 1560 , - 2305 , - 3518 , - 3327 , - 2356 , - 3725 , - 3066 , - 3499 , - 656 , - 2649 , - 118 , - 1175 , - 1452 , - 4069 , - 4658 , - 1347 , - 4744 , - 2993 , - 1710 , - 4015 , - 548 , - 4413 , - 1258 , - 4187 , - 3840 , - 3337 , - 3302 , - 1863 , - 4636 , - 4757 , - 2850 , - 2035 , - 2936 , - 3681 , - 4894 , - 4703 , - 3732 , - 109 , - 4442 , - 4875 , - 2032 , - 4025 , - 1494 , - 2551 , - 2828 , - 453 , - 1042 , - 2723 , - 1128 , - 4369 , - 3086 , - 399 , - 1924 , - 797 , - 2634 , - 571 , - 224 , - 4713 , - 4678 , - 3239 , - 1020 , - 1141 , - 4226 , - 3411 , - 4312 , - 65 , - 1278 , - 1087 , - 116 , - 1485 , - 826 , - 1259 , - 3408 , - 409 , - 2870 , - 3927 , - 4204 , - 1829 , - 2418 , - 4099 , - 2504 , - 753 , - 4462 , - 1775 , - 3300 , - 2173 , - 4010 , - 1947 , - 1600 , - 1097 , - 1062 , - 4615 , - 2396 , - 2517 , - 610 , - 4787 , - 696 , - 1441 , - 2654 , - 2463 , - 1492 , - 2861 , - 2202 , - 2635 , - 4784 , - 1785 , - 4246 , - 311 , - 588 , - 3205 , - 3794 , - 483 , - 3880 , - 2129 , - 846 , - 3151 , - 4676 , - 3549 , - 394 , - 3323 , - 2976 , - 2473 , - 2438 , - 999 , - 3772 , - 3893 , - 1986 , - 1171 , - 2072 , - 2817 , - 4030 , - 3839 , - 2868 , - 4237 , - 3578 , - 4011 , - 1168 , - 3161 , - 630 , - 1687 , - 1964 , - 4581 , - 178 , - 1859 , - 264 , - 3505 , - 2222 , - 4527 , - 1060 , - 4925 , - 1770 , - 4699 , - 4352 , - 3849 , - 3814 , - 2375 , - 156 , - 277 , - 3362 , - 2547 , - 3448 , - 4193 , - 414 , - 223 , - 4244 , - 621 , - 4954 , - 395 , - 2544 , - 4537 , - 2006 , - 3063 , - 3340 , - 965 , - 1554 , - 3235 , - 1640 , - 4881 , - 3598 , - 911 , - 2436 , - 1309 , - 3146 , - 1083 , - 736 , - 233 , - 198 , - 3751 , - 1532 , - 1653 , - 4738 , - 3923 , - 4824 , - 577 , - 1790 , - 1599 , - 628 , - 1997 , - 1338 , - 1771 , - 3920 , - 921 , - 3382 , - 4439 , - 4716 , - 2341 , - 2930 , - 4611 , - 3016 , - 1265 , - 4974 , - 2287 , - 3812 , - 2685 , - 4522 , - 2459 , - 2112 , - 1609 , - 1574 , - 135 , - 2908 , - 3029 , - 1122 , - 307 , - 1208 , - 1953 , - 3166 , - 2975 , - 2004 , - 3373 , - 2714 , - 3147 , - 304 , - 2297 , - 4758 , - 823 , - 1100 , - 3717 , - 4306 , - 995 , - 4392 , - 2641 , - 1358 , - 3663 , - 196 , - 4061 , - 906 , - 3835 , - 3488 , - 2985 , - 2950 , - 1511 , - 4284 , - 4405 , - 2498 , - 1683 , - 2584 , - 3329 , - 4542 , - 4351 , - 3380 , - 4749 , - 4090 , - 4523 , - 1680 , - 3673 , - 1142 , - 2199 , - 2476 , - 101 , - 690 , - 2371 , - 776 , - 4017 , - 2734 , - 47 , - 1572 , - 445 , - 2282 , - 219 , - 4864 , - 4361 , - 4326 , - 2887 , - 668 , - 789 , - 3874 , - 3059 , - 3960 , - 4705 , - 926 , - 735 , - 4756 , - 1133 , - 474 , - 907 , - 3056 , - 57 , - 2518 , - 3575 , - 3852 , - 1477 , - 2066 , - 3747 , - 2152 , - 401 , - 4110 , - 1423 , - 2948 , - 1821 , - 3658 , - 1595 , - 1248 , - 745 , - 710 , - 4263 , - 2044 , - 2165 , - 258 , - 4435 , - 344 , - 1089 , - 2302 , - 2111 , - 1140 , - 2509 , - 1850 , - 2283 , - 4432 , - 1433 , - 3894 , - 4951 , - 236 , - 2853 , - 3442 , - 131 , - 3528 , - 1777 , - 494 , - 2799 , - 4324 , - 3197 , - 42 , - 2971 , - 2624 , - 2121 , - 2086 , - 647 , - 3420 , - 3541 , - 1634 , - 819 , - 1720 , - 2465 , - 3678 , - 3487 , - 2516 , - 3885 , - 3226 , - 3659 , - 816 , - 2809 , - 278 , - 1335 , - 1612 , - 4229 , - 4818 , - 1507 , - 4904 , - 3153 , - 1870 , - 4175 , - 708 , - 4573 , - 1418 , - 4347 , - 4000 , - 3497 , - 3462 , - 2023 , - 4796 , - 4917 , - 3010 , - 2195 , - 3096 , - 3841 , - 62 , - 4863 , - 3892 , - 269 , - 4602 , - 43 , - 2192 , - 4185 , - 1654 , - 2711 , - 2988 , - 613 , - 1202 , - 2883 , - 1288 , - 4529 , - 3246 , - 559 , - 2084 , - 957 , - 2794 , - 731 , - 384 , - 4873 , - 4838 , - 3399 , - 1180 , - 1301 , - 4386 , - 3571 , - 4472 , - 225 , - 1438 , - 1247 , - 276 , - 1645 , - 986 , - 1419 , - 3568 , - 569 , - 3030 , - 4087 , - 4364 , - 1989 , - 2578 , - 4259 , - 2664 , - 913 , - 4622 , - 1935 , - 3460 , - 2333 , - 4170 , - 2107 , - 1760 , - 1257 , - 1222 , - 4775 , - 2556 , - 2677 , - 770 , - 4947 , - 856 , - 1601 , - 2814 , - 2623 , - 1652 , - 3021 , - 2362 , - 2795 , - 4944 , - 1945 , - 4406 , - 471 , - 748 , - 3365 , - 3954 , - 643 , - 4040 , - 2289 , - 1006 , - 3311 , - 4836 , - 3709 , - 554 , - 3483 , - 3136 , - 2633 , - 2598 , - 1159 , - 3932 , - 4053 , - 2146 , - 1331 , - 2232 , - 2977 , - 4190 , - 3999 , - 3028 , - 4397 , - 3738 , - 4171 , - 1328 , - 3321 , - 790 , - 1847 , - 2124 , - 4741 , - 338 , - 2019 , - 424 , - 3665 , - 2382 , - 4687 , - 1220 , - 93 , - 1930 , - 4859 , - 4512 , - 4009 , - 3974 , - 2535 , - 316 , - 437 , - 3522 , - 2707 , - 3608 , - 4353 , - 574 , - 383 , - 4404 , - 781 , - 122 , - 555 , - 2704 , - 4697 , - 2166 , - 3223 , - 3500 , - 1125 , - 1714 , - 3395 , - 1800 , - 49 , - 3758 , - 1071 , - 2596 , - 1469 , - 3306 , - 1243 , - 896 , - 393 , - 358 , - 3911 , - 1692 , - 1813 , - 4898 , - 4083 , - 4984 , - 737 , - 1950 , - 1759 , - 788 , - 2157 , - 1498 , - 1931 , - 4080 , - 1081 , - 3542 , - 4599 , - 4876 , - 2501 , - 3090 , - 4771 , - 3176 , - 1425 , - 142 , - 2447 , - 3972 , - 2845 , - 4682 , - 2619 , - 2272 , - 1769 , - 1734 , - 295 , - 3068 , - 3189 , - 1282 , - 467 , - 1368 , - 2113 , - 3326 , - 3135 , - 2164 , - 3533 , - 2874 , - 3307 , - 464 , - 2457 , - 4918 , - 983 , - 1260 , - 3877 , - 4466 , - 1155 , - 4552 , - 2801 , - 1518 , - 3823 , - 356 , - 4221 , - 1066 , - 3995 , - 3648 , - 3145 , - 3110 , - 1671 , - 4444 , - 4565 , - 2658 , - 1843 , - 2744 , - 3489 , - 4702 , - 4511 , - 3540 , - 4909 , - 4250 , - 4683 , - 1840 , - 3833 , - 1302 , - 2359 , - 2636 , - 261 , - 850 , - 2531 , - 936 , - 4177 , - 2894 , - 207 , - 1732 , - 605 , - 2442 , - 379 , - 32 , - 4521 , - 4486 , - 3047 , - 828 , - 949 , - 4034 , - 3219 , - 4120 , - 4865 , - 1086 , - 895 , - 4916 , - 1293 , - 634 , - 1067 , - 3216 , - 217 , - 2678 , - 3735 , - 4012 , - 1637 , - 2226 , - 3907 , - 2312 , - 561 , - 4270 , - 1583 , - 3108 , - 1981 , - 3818 , - 1755 , - 1408 , - 905 , - 870 , - 4423 , - 2204 , - 2325 , - 418 , - 4595 , - 504 , - 1249 , - 2462 , - 2271 , - 1300 , - 2669 , - 2010 , - 2443 , - 4592 , - 1593 , - 4054 , - 119 , - 396 , - 3013 , - 3602 , - 291 , - 3688 , - 1937 , - 654 , - 2959 , - 4484 , - 3357 , - 202 , - 3131 , - 2784 , - 2281 , - 2246 , - 807 , - 3580 , - 3701 , - 1794 , - 979 , - 1880 , - 2625 , - 3838 , - 3647 , - 2676 , - 4045 , - 3386 , - 3819 , - 976 , - 2969 , - 438 , - 1495 , - 1772 , - 4389 , - 4978 , - 1667 , - 72 , - 3313 , - 2030 , - 4335 , - 868 , - 4733 , - 1578 , - 4507 , - 4160 , - 3657 , - 3622 , - 2183 , - 4956 , - 85 , - 3170 , - 2355 , - 3256 , - 4001 , - 222 , - 31 , - 4052 , - 429 , - 4762 , - 203 , - 2352 , - 4345 , - 1814 , - 2871 , - 3148 , - 773 , - 1362 , - 3043 , - 1448 , - 4689 , - 3406 , - 719 , - 2244 , - 1117 , - 2954 , - 891 , - 544 , - 41 , - 6 , - 3559 , - 1340 , - 1461 , - 4546 , - 3731 , - 4632 , - 385 , - 1598 , - 1407 , - 436 , - 1805 , - 1146 , - 1579 , - 3728 , - 729 , - 3190 , - 4247 , - 4524 , - 2149 , - 2738 , - 4419 , - 2824 , - 1073 , - 4782 , - 2095 , - 3620 , - 2493 , - 4330 , - 2267 , - 1920 , - 1417 , - 1382 , - 4935 , - 2716 , - 2837 , - 930 , - 115 , - 1016 , - 1761 , - 2974 , - 2783 , - 1812 , - 3181 , - 2522 , - 2955 , - 112 , - 2105 , - 4566 , - 631 , - 908 , - 3525 , - 4114 , - 803 , - 4200 , - 2449 , - 1166 , - 3471 , - 4 , - 3869 , - 714 , - 3643 , - 3296 , - 2793 , - 2758 , - 1319 , - 4092 , - 4213 , - 2306 , - 1491 , - 2392 , - 3137 , - 4350 , - 4159 , - 3188 , - 4557 , - 3898 , - 4331 , - 1488 , - 3481 , - 950 , - 2007 , - 2284 , - 4901 , - 498 , - 2179 , - 584 , - 3825 , - 2542 , - 4847 , - 1380 , - 253 , - 2090 , - 27 , - 4672 , - 4169 , - 4134 , - 2695 , - 476 , - 597 , - 3682 , - 2867 , - 3768 , - 4513 , - 734 , - 543 , - 4564 , - 941 , - 282 , - 715 , - 2864 , - 4857 , - 2326 , - 3383 , - 3660 , - 1285 , - 1874 , - 3555 , - 1960 , - 209 , - 3918 , - 1231 , - 2756 , - 1629 , - 3466 , - 1403 , - 1056 , - 553 , - 518 , - 4071 , - 1852 , - 1973 , - 66 , - 4243 , - 152 , - 897 , - 2110 , - 1919 , - 948 , - 2317 , - 1658 , - 2091 , - 4240 , - 1241 , - 3702 , - 4759 , - 44 , - 2661 , - 3250 , - 4931 , - 3336 , - 1585 , - 302 , - 2607 , - 4132 , - 3005 , - 4842 , - 2779 , - 2432 , - 1929 , - 1894 , - 455 , - 3228 , - 3349 , - 1442 , - 627 , - 1528 , - 2273 , - 3486 , - 3295 , - 2324 , - 3693 , - 3034 , - 3467 , - 624 , - 2617 , - 86 , - 1143 , - 1420 , - 4037 , - 4626 , - 1315 , - 4712 , - 2961 , - 1678 , - 3983 , - 516 , - 4381 , - 1226 , - 4155 , - 3808 , - 3305 , - 3270 , - 1831 , - 4604 , - 4725 , - 2818 , - 2003 , - 2904 , - 3649 , - 4862 , - 4671 , - 3700 , - 77 , - 4410 , - 4843 , - 2000 , - 3993 , - 1462 , - 2519 , - 2796 , - 421 , - 1010 , - 2691 , - 1096 , - 4337 , - 3054 , - 367 , - 1892 , - 765 , - 2602 , - 539 , - 192 , - 4681 , - 4646 , - 3207 , - 988 , - 1109 , - 4194 , - 3379 , - 4280 , - 33 , - 1246 , - 1055 , - 84 , - 1453 , - 794 , - 1227 , - 3376 , - 377 , - 2838 , - 3895 , - 4172 , - 1797 , - 2386 , - 4067 , - 2472 , - 721 , - 4430 , - 1743 , - 3268 , - 2141 , - 3978 , - 1915 , - 1568 , - 1065 , - 1030 , - 4583 , - 2364 , - 2485 , - 578 , - 4755 , - 664 , - 1409 , - 2622 , - 2431 , - 1460 , - 2829 , - 2170 , - 2603 , - 4752 , - 1753 , - 4214 , - 279 , - 556 , - 3173 , - 3762 , - 451 , - 3848 , - 2097 , - 814 , - 3119 , - 4644 , - 3517 , - 362 , - 3291 , - 2944 , - 2441 , - 2406 , - 967 , - 3740 , - 3861 , - 1954 , - 1139 , - 2040 , - 2785 , - 3998 , - 3807 , - 2836 , - 4205 , - 3546 , - 3979 , - 1136 , - 3129 , - 598 , - 1655 , - 1932 , - 4549 , - 146 , - 1827 , - 232 , - 3473 , - 2190 , - 4495 , - 1028 , - 4893 , - 1738 , - 4667 , - 4320 , - 3817 , - 3782 , - 2343 , - 124 , - 245 , - 3330 , - 2515 , - 3416 , - 4161 , - 382 , - 191 , - 4212 , - 589 , - 4922 , - 363 , - 2512 , - 4505 , - 1974 , - 3031 , - 3308 , - 933 , - 1522 , - 3203 , - 1608 , - 4849 , - 3566 , - 879 , - 2404 , - 1277 , - 3114 , - 1051 , - 704 , - 201 , - 166 , - 3719 , - 1500 , - 1621 , - 4706 , - 3891 , - 4792 , - 545 , - 1758 , - 1567 , - 596 , - 1965 , - 1306 , - 1739 , - 3888 , - 889 , - 3350 , - 4407 , - 4684 , - 2309 , - 2898 , - 4579 , - 2984 , - 1233 , - 4942 , - 2255 , - 3780 , - 2653 , - 4490 , - 2427 , - 2080 , - 1577 , - 1542 , - 103 , - 2876 , - 2997 , - 1090 , - 275 , - 1176 , - 1921 , - 3134 , - 2943 , - 1972 , - 3341 , - 2682 , - 3115 , - 272 , - 2265 , - 4726 , - 791 , - 1068 , - 3685 , - 4274 , - 963 , - 4360 , - 2609 , - 1326 , - 3631 , - 164 , - 4029 , - 874 , - 3803 , - 3456 , - 2953 , - 2918 , - 1479 , - 4252 , - 4373 , - 2466 , - 1651 , - 2552 , - 3297 , - 4510 , - 4319 , - 3348 , - 4717 , - 4058 , - 4491 , - 1648 , - 3641 , - 1110 , - 2167 , - 2444 , - 69 , - 658 , - 2339 , - 744 , - 3985 , - 2702 , - 15 , - 1540 , - 413 , - 2250 , - 187 , - 4832 , - 4329 , - 4294 , - 2855 , - 636 , - 757 , - 3842 , - 3027 , - 3928 , - 4673 , - 894 , - 703 , - 4724 , - 1101 , - 442 , - 875 , - 3024 , - 25 , - 2486 , - 3543 , - 3820 , - 1445 , - 2034 , - 3715 , - 2120 , - 369 , - 4078 , - 1391 , - 2916 , - 1789 , - 3626 , - 1563 , - 1216 , - 713 , - 678 , - 4231 , - 2012 , - 2133 , - 226 , - 4403 , - 312 , - 1057 , - 2270 , - 2079 , - 1108 , - 2477 , - 1818 , - 2251 , - 4400 , - 1401 , - 3862 , - 4919 , - 204 , - 2821 , - 3410 , - 99 , - 3496 , - 1745 , - 462 , - 2767 , - 4292 , - 3165 , - 10 , - 2939 , - 2592 , - 2089 , - 2054 , - 615 , - 3388 , - 3509 , - 1602 , - 787 , - 1688 , - 2433 , - 3646 , - 3455 , - 2484 , - 3853 , - 3194 , - 3627 , - 784 , - 2777 , - 246 , - 1303 , - 1580 , - 4197 , - 4786 , - 1475 , - 4872 , - 3121 , - 1838 , - 4143 , - 676 , - 4541 , - 1386 , - 4315 , - 3968 , - 3465 , - 3430 , - 1991 , - 4764 , - 4885 , - 2978 , - 2163 , - 3064 , - 3809 , - 30 , - 4831 , - 3860 , - 237 , - 4570 , - 11 , - 2160 , - 4153 , - 1622 , - 2679 , - 2956 , - 581 , - 1170 , - 2851 , - 1256 , - 4497 , - 3214 , - 527 , - 2052 , - 925 , - 2762 , - 699 , - 352 , - 4841 , - 4806 , - 3367 , - 1148 , - 1269 , - 4354 , - 3539 , - 4440 , - 193 , - 1406 , - 1215 , - 244 , - 1613 , - 954 , - 1387 , - 3536 , - 537 , - 2998 , - 4055 , - 4332 , - 1957 , - 2546 , - 4227 , - 2632 , - 881 , - 4590 , - 1903 , - 3428 , - 2301 , - 4138 , - 2075 , - 1728 , - 1225 , - 1190 , - 4743 , - 2524 , - 2645 , - 738 , - 4915 , - 824 , - 1569 , - 2782 , - 2591 , - 1620 , - 2989 , - 2330 , - 2763 , - 4912 , - 1913 , - 4374 , - 439 , - 716 , - 3333 , - 3922 , - 611 , - 4008 , - 2257 , - 974 , - 3279 , - 4804 , - 3677 , - 522 , - 3451 , - 3104 , - 2601 , - 2566 , - 1127 , - 3900 , - 4021 , - 2114 , - 1299 , - 2200 , - 2945 , - 4158 , - 3967 , - 2996 , - 4365 , - 3706 , - 4139 , - 1296 , - 3289 , - 758 , - 1815 , - 2092 , - 4709 , - 306 , - 1987 , - 392 , - 3633 , - 2350 , - 4655 , - 1188 , - 61 , - 1898 , - 4827 , - 4480 , - 3977 , - 3942 , - 2503 , - 284 , - 405 , - 3490 , - 2675 , - 3576 , - 4321 , - 542 , - 351 , - 4372 , - 749 , - 90 , - 523 , - 2672 , - 4665 , - 2134 , - 3191 , - 3468 , - 1093 , - 1682 , - 3363 , - 1768 , - 17 , - 3726 , - 1039 , - 2564 , - 1437 , - 3274 , - 1211 , - 864 , - 361 , - 326 , - 3879 , - 1660 , - 1781 , - 4866 , - 4051 , - 4952 , - 705 , - 1918 , - 1727 , - 756 , - 2125 , - 1466 , - 1899 , - 4048 , - 1049 , - 3510 , - 4567 , - 4844 , - 2469 , - 3058 , - 4739 , - 3144 , - 1393 , - 110 , - 2415 , - 3940 , - 2813 , - 4650 , - 2587 , - 2240 , - 1737 , - 1702 , - 263 , - 3036 , - 3157 , - 1250 , - 435 , - 1336 , - 2081 , - 3294 , - 3103 , - 2132 , - 3501 , - 2842 , - 3275 , - 432 , - 2425 , - 4886 , - 951 , - 1228 , - 3845 , - 4434 , - 1123 , - 4520 , - 2769 , - 1486 , - 3791 , - 324 , - 4189 , - 1034 , - 3963 , - 3616 , - 3113 , - 3078 , - 1639 , - 4412 , - 4533 , - 2626 , - 1811 , - 2712 , - 3457 , - 4670 , - 4479 , - 3508 , - 4877 , - 4218 , - 4651 , - 1808 , - 3801 , - 1270 , - 2327 , - 2604 , - 229 , - 818 , - 2499 , - 904 , - 4145 , - 2862 , - 175 , - 1700 , - 573 , - 2410 , - 347 , - 0 , - 1973 , - 4262 , - 3075 , - 4732 , - 385 , - 1410 , - 4015 , - 4408 , - 3853 , - 3614 , - 4955 , - 4084 , - 2265 , - 762 , - 839 , - 3760 , - 677 , - 2966 , - 1779 , - 3436 , - 4145 , - 114 , - 2719 , - 3112 , - 2557 , - 2318 , - 3659 , - 2788 , - 969 , - 4522 , - 4599 , - 2464 , - 4437 , - 1670 , - 483 , - 2140 , - 2849 , - 3874 , - 1423 , - 1816 , - 1261 , - 1022 , - 2363 , - 1492 , - 4729 , - 3226 , - 3303 , - 1168 , - 3141 , - 374 , - 4243 , - 844 , - 1553 , - 2578 , - 127 , - 520 , - 5021 , - 4782 , - 1067 , - 196 , - 3433 , - 1930 , - 2007 , - 4928 , - 1845 , - 4134 , - 2947 , - 4604 , - 257 , - 1282 , - 3887 , - 4280 , - 3725 , - 3486 , - 4827 , - 3956 , - 2137 , - 634 , - 711 , - 3632 , - 549 , - 2838 , - 1651 , - 3308 , - 4017 , - 5042 , - 2591 , - 2984 , - 2429 , - 2190 , - 3531 , - 2660 , - 841 , - 4394 , - 4471 , - 2336 , - 4309 , - 1542 , - 355 , - 2012 , - 2721 , - 3746 , - 1295 , - 1688 , - 1133 , - 894 , - 2235 , - 1364 , - 4601 , - 3098 , - 3175 , - 1040 , - 3013 , - 246 , - 4115 , - 716 , - 1425 , - 2450 , - 5055 , - 392 , - 4893 , - 4654 , - 939 , - 68 , - 3305 , - 1802 , - 1879 , - 4800 , - 1717 , - 4006 , - 2819 , - 4476 , - 129 , - 1154 , - 3759 , - 4152 , - 3597 , - 3358 , - 4699 , - 3828 , - 2009 , - 506 , - 583 , - 3504 , - 421 , - 2710 , - 1523 , - 3180 , - 3889 , - 4914 , - 2463 , - 2856 , - 2301 , - 2062 , - 3403 , - 2532 , - 713 , - 4266 , - 4343 , - 2208 , - 4181 , - 1414 , - 227 , - 1884 , - 2593 , - 3618 , - 1167 , - 1560 , - 1005 , - 766 , - 2107 , - 1236 , - 4473 , - 2970 , - 3047 , - 912 , - 2885 , - 118 , - 3987 , - 588 , - 1297 , - 2322 , - 4927 , - 264 , - 4765 , - 4526 , - 811 , - 4996 , - 3177 , - 1674 , - 1751 , - 4672 , - 1589 , - 3878 , - 2691 , - 4348 , - 1 , - 1026 , - 3631 , - 4024 , - 3469 , - 3230 , - 4571 , - 3700 , - 1881 , - 378 , - 455 , - 3376 , - 293 , - 2582 , - 1395 , - 3052 , - 3761 , - 4786 , - 2335 , - 2728 , - 2173 , - 1934 , - 3275 , - 2404 , - 585 , - 4138 , - 4215 , - 2080 , - 4053 , - 1286 , - 99 , - 1756 , - 2465 , - 3490 , - 1039 , - 1432 , - 877 , - 638 , - 1979 , - 1108 , - 4345 , - 2842 , - 2919 , - 784 , - 2757 , - 5046 , - 3859 , - 460 , - 1169 , - 2194 , - 4799 , - 136 , - 4637 , - 4398 , - 683 , - 4868 , - 3049 , - 1546 , - 1623 , - 4544 , - 1461 , - 3750 , - 2563 , - 4220 , - 4929 , - 898 , - 3503 , - 3896 , - 3341 , - 3102 , - 4443 , - 3572 , - 1753 , - 250 , - 327 , - 3248 , - 165 , - 2454 , - 1267 , - 2924 , - 3633 , - 4658 , - 2207 , - 2600 , - 2045 , - 1806 , - 3147 , - 2276 , - 457 , - 4010 , - 4087 , - 1952 , - 3925 , - 1158 , - 5027 , - 1628 , - 2337 , - 3362 , - 911 , - 1304 , - 749 , - 510 , - 1851 , - 980 , - 4217 , - 2714 , - 2791 , - 656 , - 2629 , - 4918 , - 3731 , - 332 , - 1041 , - 2066 , - 4671 , - 8 , - 4509 , - 4270 , - 555 , - 4740 , - 2921 , - 1418 , - 1495 , - 4416 , - 1333 , - 3622 , - 2435 , - 4092 , - 4801 , - 770 , - 3375 , - 3768 , - 3213 , - 2974 , - 4315 , - 3444 , - 1625 , - 122 , - 199 , - 3120 , - 37 , - 2326 , - 1139 , - 2796 , - 3505 , - 4530 , - 2079 , - 2472 , - 1917 , - 1678 , - 3019 , - 2148 , - 329 , - 3882 , - 3959 , - 1824 , - 3797 , - 1030 , - 4899 , - 1500 , - 2209 , - 3234 , - 783 , - 1176 , - 621 , - 382 , - 1723 , - 852 , - 4089 , - 2586 , - 2663 , - 528 , - 2501 , - 4790 , - 3603 , - 204 , - 913 , - 1938 , - 4543 , - 4936 , - 4381 , - 4142 , - 427 , - 4612 , - 2793 , - 1290 , - 1367 , - 4288 , - 1205 , - 3494 , - 2307 , - 3964 , - 4673 , - 642 , - 3247 , - 3640 , - 3085 , - 2846 , - 4187 , - 3316 , - 1497 , - 5050 , - 71 , - 2992 , - 4965 , - 2198 , - 1011 , - 2668 , - 3377 , - 4402 , - 1951 , - 2344 , - 1789 , - 1550 , - 2891 , - 2020 , - 201 , - 3754 , - 3831 , - 1696 , - 3669 , - 902 , - 4771 , - 1372 , - 2081 , - 3106 , - 655 , - 1048 , - 493 , - 254 , - 1595 , - 724 , - 3961 , - 2458 , - 2535 , - 400 , - 2373 , - 4662 , - 3475 , - 76 , - 785 , - 1810 , - 4415 , - 4808 , - 4253 , - 4014 , - 299 , - 4484 , - 2665 , - 1162 , - 1239 , - 4160 , - 1077 , - 3366 , - 2179 , - 3836 , - 4545 , - 514 , - 3119 , - 3512 , - 2957 , - 2718 , - 4059 , - 3188 , - 1369 , - 4922 , - 4999 , - 2864 , - 4837 , - 2070 , - 883 , - 2540 , - 3249 , - 4274 , - 1823 , - 2216 , - 1661 , - 1422 , - 2763 , - 1892 , - 73 , - 3626 , - 3703 , - 1568 , - 3541 , - 774 , - 4643 , - 1244 , - 1953 , - 2978 , - 527 , - 920 , - 365 , - 126 , - 1467 , - 596 , - 3833 , - 2330 , - 2407 , - 272 , - 2245 , - 4534 , - 3347 , - 5004 , - 657 , - 1682 , - 4287 , - 4680 , - 4125 , - 3886 , - 171 , - 4356 , - 2537 , - 1034 , - 1111 , - 4032 , - 949 , - 3238 , - 2051 , - 3708 , - 4417 , - 386 , - 2991 , - 3384 , - 2829 , - 2590 , - 3931 , - 3060 , - 1241 , - 4794 , - 4871 , - 2736 , - 4709 , - 1942 , - 755 , - 2412 , - 3121 , - 4146 , - 1695 , - 2088 , - 1533 , - 1294 , - 2635 , - 1764 , - 5001 , - 3498 , - 3575 , - 1440 , - 3413 , - 646 , - 4515 , - 1116 , - 1825 , - 2850 , - 399 , - 792 , - 237 , - 5054 , - 1339 , - 468 , - 3705 , - 2202 , - 2279 , - 144 , - 2117 , - 4406 , - 3219 , - 4876 , - 529 , - 1554 , - 4159 , - 4552 , - 3997 , - 3758 , - 43 , - 4228 , - 2409 , - 906 , - 983 , - 3904 , - 821 , - 3110 , - 1923 , - 3580 , - 4289 , - 258 , - 2863 , - 3256 , - 2701 , - 2462 , - 3803 , - 2932 , - 1113 , - 4666 , - 4743 , - 2608 , - 4581 , - 1814 , - 627 , - 2284 , - 2993 , - 4018 , - 1567 , - 1960 , - 1405 , - 1166 , - 2507 , - 1636 , - 4873 , - 3370 , - 3447 , - 1312 , - 3285 , - 518 , - 4387 , - 988 , - 1697 , - 2722 , - 271 , - 664 , - 109 , - 4926 , - 1211 , - 340 , - 3577 , - 2074 , - 2151 , - 16 , - 1989 , - 4278 , - 3091 , - 4748 , - 401 , - 1426 , - 4031 , - 4424 , - 3869 , - 3630 , - 4971 , - 4100 , - 2281 , - 778 , - 855 , - 3776 , - 693 , - 2982 , - 1795 , - 3452 , - 4161 , - 130 , - 2735 , - 3128 , - 2573 , - 2334 , - 3675 , - 2804 , - 985 , - 4538 , - 4615 , - 2480 , - 4453 , - 1686 , - 499 , - 2156 , - 2865 , - 3890 , - 1439 , - 1832 , - 1277 , - 1038 , - 2379 , - 1508 , - 4745 , - 3242 , - 3319 , - 1184 , - 3157 , - 390 , - 4259 , - 860 , - 1569 , - 2594 , - 143 , - 536 , - 5037 , - 4798 , - 1083 , - 212 , - 3449 , - 1946 , - 2023 , - 4944 , - 1861 , - 4150 , - 2963 , - 4620 , - 273 , - 1298 , - 3903 , - 4296 , - 3741 , - 3502 , - 4843 , - 3972 , - 2153 , - 650 , - 727 , - 3648 , - 565 , - 2854 , - 1667 , - 3324 , - 4033 , - 2 , - 2607 , - 3000 , - 2445 , - 2206 , - 3547 , - 2676 , - 857 , - 4410 , - 4487 , - 2352 , - 4325 , - 1558 , - 371 , - 2028 , - 2737 , - 3762 , - 1311 , - 1704 , - 1149 , - 910 , - 2251 , - 1380 , - 4617 , - 3114 , - 3191 , - 1056 , - 3029 , - 262 , - 4131 , - 732 , - 1441 , - 2466 , - 15 , - 408 , - 4909 , - 4670 , - 955 , - 84 , - 3321 , - 1818 , - 1895 , - 4816 , - 1733 , - 4022 , - 2835 , - 4492 , - 145 , - 1170 , - 3775 , - 4168 , - 3613 , - 3374 , - 4715 , - 3844 , - 2025 , - 522 , - 599 , - 3520 , - 437 , - 2726 , - 1539 , - 3196 , - 3905 , - 4930 , - 2479 , - 2872 , - 2317 , - 2078 , - 3419 , - 2548 , - 729 , - 4282 , - 4359 , - 2224 , - 4197 , - 1430 , - 243 , - 1900 , - 2609 , - 3634 , - 1183 , - 1576 , - 1021 , - 782 , - 2123 , - 1252 , - 4489 , - 2986 , - 3063 , - 928 , - 2901 , - 134 , - 4003 , - 604 , - 1313 , - 2338 , - 4943 , - 280 , - 4781 , - 4542 , - 827 , - 5012 , - 3193 , - 1690 , - 1767 , - 4688 , - 1605 , - 3894 , - 2707 , - 4364 , - 17 , - 1042 , - 3647 , - 4040 , - 3485 , - 3246 , - 4587 , - 3716 , - 1897 , - 394 , - 471 , - 3392 , - 309 , - 2598 , - 1411 , - 3068 , - 3777 , - 4802 , - 2351 , - 2744 , - 2189 , - 1950 , - 3291 , - 2420 , - 601 , - 4154 , - 4231 , - 2096 , - 4069 , - 1302 , - 115 , - 1772 , - 2481 , - 3506 , - 1055 , - 1448 , - 893 , - 654 , - 1995 , - 1124 , - 4361 , - 2858 , - 2935 , - 800 , - 2773 , - 6 , - 3875 , - 476 , - 1185 , - 2210 , - 4815 , - 152 , - 4653 , - 4414 , - 699 , - 4884 , - 3065 , - 1562 , - 1639 , - 4560 , - 1477 , - 3766 , - 2579 , - 4236 , - 4945 , - 914 , - 3519 , - 3912 , - 3357 , - 3118 , - 4459 , - 3588 , - 1769 , - 266 , - 343 , - 3264 , - 181 , - 2470 , - 1283 , - 2940 , - 3649 , - 4674 , - 2223 , - 2616 , - 2061 , - 1822 , - 3163 , - 2292 , - 473 , - 4026 , - 4103 , - 1968 , - 3941 , - 1174 , - 5043 , - 1644 , - 2353 , - 3378 , - 927 , - 1320 , - 765 , - 526 , - 1867 , - 996 , - 4233 , - 2730 , - 2807 , - 672 , - 2645 , - 4934 , - 3747 , - 348 , - 1057 , - 2082 , - 4687 , - 24 , - 4525 , - 4286 , - 571 , - 4756 , - 2937 , - 1434 , - 1511 , - 4432 , - 1349 , - 3638 , - 2451 , - 4108 , - 4817 , - 786 , - 3391 , - 3784 , - 3229 , - 2990 , - 4331 , - 3460 , - 1641 , - 138 , - 215 , - 3136 , - 53 , - 2342 , - 1155 , - 2812 , - 3521 , - 4546 , - 2095 , - 2488 , - 1933 , - 1694 , - 3035 , - 2164 , - 345 , - 3898 , - 3975 , - 1840 , - 3813 , - 1046 , - 4915 , - 1516 , - 2225 , - 3250 , - 799 , - 1192 , - 637 , - 398 , - 1739 , - 868 , - 4105 , - 2602 , - 2679 , - 544 , - 2517 , - 4806 , - 3619 , - 220 , - 929 , - 1954 , - 4559 , - 4952 , - 4397 , - 4158 , - 443 , - 4628 , - 2809 , - 1306 , - 1383 , - 4304 , - 1221 , - 3510 , - 2323 , - 3980 , - 4689 , - 658 , - 3263 , - 3656 , - 3101 , - 2862 , - 4203 , - 3332 , - 1513 , - 10 , - 87 , - 3008 , - 4981 , - 2214 , - 1027 , - 2684 , - 3393 , - 4418 , - 1967 , - 2360 , - 1805 , - 1566 , - 2907 , - 2036 , - 217 , - 3770 , - 3847 , - 1712 , - 3685 , - 918 , - 4787 , - 1388 , - 2097 , - 3122 , - 671 , - 1064 , - 509 , - 270 , - 1611 , - 740 , - 3977 , - 2474 , - 2551 , - 416 , - 2389 , - 4678 , - 3491 , - 92 , - 801 , - 1826 , - 4431 , - 4824 , - 4269 , - 4030 , - 315 , - 4500 , - 2681 , - 1178 , - 1255 , - 4176 , - 1093 , - 3382 , - 2195 , - 3852 , - 4561 , - 530 , - 3135 , - 3528 , - 2973 , - 2734 , - 4075 , - 3204 , - 1385 , - 4938 , - 5015 , - 2880 , - 4853 , - 2086 , - 899 , - 2556 , - 3265 , - 4290 , - 1839 , - 2232 , - 1677 , - 1438 , - 2779 , - 1908 , - 89 , - 3642 , - 3719 , - 1584 , - 3557 , - 790 , - 4659 , - 1260 , - 1969 , - 2994 , - 543 , - 936 , - 381 , - 142 , - 1483 , - 612 , - 3849 , - 2346 , - 2423 , - 288 , - 2261 , - 4550 , - 3363 , - 5020 , - 673 , - 1698 , - 4303 , - 4696 , - 4141 , - 3902 , - 187 , - 4372 , - 2553 , - 1050 , - 1127 , - 4048 , - 965 , - 3254 , - 2067 , - 3724 , - 4433 , - 402 , - 3007 , - 3400 , - 2845 , - 2606 , - 3947 , - 3076 , - 1257 , - 4810 , - 4887 , - 2752 , - 4725 , - 1958 , - 771 , - 2428 , - 3137 , - 4162 , - 1711 , - 2104 , - 1549 , - 1310 , - 2651 , - 1780 , - 5017 , - 3514 , - 3591 , - 1456 , - 3429 , - 662 , - 4531 , - 1132 , - 1841 , - 2866 , - 415 , - 808 , - 253 , - 14 , - 1355 , - 484 , - 3721 , - 2218 , - 2295 , - 160 , - 2133 , - 4422 , - 3235 , - 4892 , - 545 , - 1570 , - 4175 , - 4568 , - 4013 , - 3774 , - 59 , - 4244 , - 2425 , - 922 , - 999 , - 3920 , - 837 , - 3126 , - 1939 , - 3596 , - 4305 , - 274 , - 2879 , - 3272 , - 2717 , - 2478 , - 3819 , - 2948 , - 1129 , - 4682 , - 4759 , - 2624 , - 4597 , - 1830 , - 643 , - 2300 , - 3009 , - 4034 , - 1583 , - 1976 , - 1421 , - 1182 , - 2523 , - 1652 , - 4889 , - 3386 , - 3463 , - 1328 , - 3301 , - 534 , - 4403 , - 1004 , - 1713 , - 2738 , - 287 , - 680 , - 125 , - 4942 , - 1227 , - 356 , - 3593 , - 2090 , - 2167 , - 32 , - 2005 , - 4294 , - 3107 , - 4764 , - 417 , - 1442 , - 4047 , - 4440 , - 3885 , - 3646 , - 4987 , - 4116 , - 2297 , - 794 , - 871 , - 3792 , - 709 , - 2998 , - 1811 , - 3468 , - 4177 , - 146 , - 2751 , - 3144 , - 2589 , - 2350 , - 3691 , - 2820 , - 1001 , - 4554 , - 4631 , - 2496 , - 4469 , - 1702 , - 515 , - 2172 , - 2881 , - 3906 , - 1455 , - 1848 , - 1293 , - 1054 , - 2395 , - 1524 , - 4761 , - 3258 , - 3335 , - 1200 , - 3173 , - 406 , - 4275 , - 876 , - 1585 , - 2610 , - 159 , - 552 , - 5053 , - 4814 , - 1099 , - 228 , - 3465 , - 1962 , - 2039 , - 4960 , - 1877 , - 4166 , - 2979 , - 4636 , - 289 , - 1314 , - 3919 , - 4312 , - 3757 , - 3518 , - 4859 , - 3988 , - 2169 , - 666 , - 743 , - 3664 , - 581 , - 2870 , - 1683 , - 3340 , - 4049 , - 18 , - 2623 , - 3016 , - 2461 , - 2222 , - 3563 , - 2692 , - 873 , - 4426 , - 4503 , - 2368 , - 4341 , - 1574 , - 387 , - 2044 , - 2753 , - 3778 , - 1327 , - 1720 , - 1165 , - 926 , - 2267 , - 1396 , - 4633 , - 3130 , - 3207 , - 1072 , - 3045 , - 278 , - 4147 , - 748 , - 1457 , - 2482 , - 31 , - 424 , - 4925 , - 4686 , - 971 , - 100 , - 3337 , - 1834 , - 1911 , - 4832 , - 1749 , - 4038 , - 2851 , - 4508 , - 161 , - 1186 , - 3791 , - 4184 , - 3629 , - 3390 , - 4731 , - 3860 , - 2041 , - 538 , - 615 , - 3536 , - 453 , - 2742 , - 1555 , - 3212 , - 3921 , - 4946 , - 2495 , - 2888 , - 2333 , - 2094 , - 3435 , - 2564 , - 745 , - 4298 , - 4375 , - 2240 , - 4213 , - 1446 , - 259 , - 1916 , - 2625 , - 3650 , - 1199 , - 1592 , - 1037 , - 798 , - 2139 , - 1268 , - 4505 , - 3002 , - 3079 , - 944 , - 2917 , - 150 , - 4019 , - 620 , - 1329 , - 2354 , - 4959 , - 296 , - 4797 , - 4558 , - 843 , - 5028 , - 3209 , - 1706 , - 1783 , - 4704 , - 1621 , - 3910 , - 2723 , - 4380 , - 33 , - 1058 , - 3663 , - 4056 , - 3501 , - 3262 , - 4603 , - 3732 , - 1913 , - 410 , - 487 , - 3408 , - 325 , - 2614 , - 1427 , - 3084 , - 3793 , - 4818 , - 2367 , - 2760 , - 2205 , - 1966 , - 3307 , - 2436 , - 617 , - 4170 , - 4247 , - 2112 , - 4085 , - 1318 , - 131 , - 1788 , - 2497 , - 3522 , - 1071 , - 1464 , - 909 , - 670 , - 2011 , - 1140 , - 4377 , - 2874 , - 2951 , - 816 , - 2789 , - 22 , - 3891 , - 492 , - 1201 , - 2226 , - 4831 , - 168 , - 4669 , - 4430 , - 715 , - 4900 , - 3081 , - 1578 , - 1655 , - 4576 , - 1493 , - 3782 , - 2595 , - 4252 , - 4961 , - 930 , - 3535 , - 3928 , - 3373 , - 3134 , - 4475 , - 3604 , - 1785 , - 282 , - 359 , - 3280 , - 197 , - 2486 , - 1299 , - 2956 , - 3665 , - 4690 , - 2239 , - 2632 , - 2077 , - 1838 , - 3179 , - 2308 , - 489 , - 4042 , - 4119 , - 1984 , - 3957 , - 1190 , - 3 , - 1660 , - 2369 , - 3394 , - 943 , - 1336 , - 781 , - 542 , - 1883 , - 1012 , - 4249 , - 2746 , - 2823 , - 688 , - 2661 , - 4950 , - 3763 , - 364 , - 1073 , - 2098 , - 4703 , - 40 , - 4541 , - 4302 , - 587 , - 4772 , - 2953 , - 1450 , - 1527 , - 4448 , - 1365 , - 3654 , - 2467 , - 4124 , - 4833 , - 802 , - 3407 , - 3800 , - 3245 , - 3006 , - 4347 , - 3476 , - 1657 , - 154 , - 231 , - 3152 , - 69 , - 2358 , - 1171 , - 2828 , - 3537 , - 4562 , - 2111 , - 2504 , - 1949 , - 1710 , - 3051 , - 2180 , - 361 , - 3914 , - 3991 , - 1856 , - 3829 , - 1062 , - 4931 , - 1532 , - 2241 , - 3266 , - 815 , - 1208 , - 653 , - 414 , - 1755 , - 884 , - 4121 , - 2618 , - 2695 , - 560 , - 2533 , - 4822 , - 3635 , - 236 , - 945 , - 1970 , - 4575 , - 4968 , - 4413 , - 4174 , - 459 , - 4644 , - 2825 , - 1322 , - 1399 , - 4320 , - 1237 , - 3526 , - 2339 , - 3996 , - 4705 , - 674 , - 3279 , - 3672 , - 3117 , - 2878 , - 4219 , - 3348 , - 1529 , - 26 , - 103 , - 3024 , - 4997 , - 2230 , - 1043 , - 2700 , - 3409 , - 4434 , - 1983 , - 2376 , - 1821 , - 1582 , - 2923 , - 2052 , - 233 , - 3786 , - 3863 , - 1728 , - 3701 , - 934 , - 4803 , - 1404 , - 2113 , - 3138 , - 687 , - 1080 , - 525 , - 286 , - 1627 , - 756 , - 3993 , - 2490 , - 2567 , - 432 , - 2405 , - 4694 , - 3507 , - 108 , - 817 , - 1842 , - 4447 , - 4840 , - 4285 , - 4046 , - 331 , - 4516 , - 2697 , - 1194 , - 1271 , - 4192 , - 1109 , - 3398 , - 2211 , - 3868 , - 4577 , - 546 , - 3151 , - 3544 , - 2989 , - 2750 , - 4091 , - 3220 , - 1401 , - 4954 , - 5031 , - 2896 , - 4869 , - 2102 , - 915 , - 2572 , - 3281 , - 4306 , - 1855 , - 2248 , - 1693 , - 1454 , - 2795 , - 1924 , - 105 , - 3658 , - 3735 , - 1600 , - 3573 , - 806 , - 4675 , - 1276 , - 1985 , - 3010 , - 559 , - 952 , - 397 , - 158 , - 1499 , - 628 , - 3865 , - 2362 , - 2439 , - 304 , - 2277 , - 4566 , - 3379 , - 5036 , - 689 , - 1714 , - 4319 , - 4712 , - 4157 , - 3918 , - 203 , - 4388 , - 2569 , - 1066 , - 1143 , - 4064 , - 981 , - 3270 , - 2083 , - 3740 , - 4449 , - 418 , - 3023 , - 3416 , - 2861 , - 2622 , - 3963 , - 3092 , - 1273 , - 4826 , - 4903 , - 2768 , - 4741 , - 1974 , - 787 , - 2444 , - 3153 , - 4178 , - 1727 , - 2120 , - 1565 , - 1326 , - 2667 , - 1796 , - 5033 , - 3530 , - 3607 , - 1472 , - 3445 , - 678 , - 4547 , - 1148 , - 1857 , - 2882 , - 431 , - 824 , - 269 , - 30 , - 1371 , - 500 , - 3737 , - 2234 , - 2311 , - 176 , - 2149 , - 4438 , - 3251 , - 4908 , - 561 , - 1586 , - 4191 , - 4584 , - 4029 , - 3790 , - 75 , - 4260 , - 2441 , - 938 , - 1015 , - 3936 , - 853 , - 3142 , - 1955 , - 3612 , - 4321 , - 290 , - 2895 , - 3288 , - 2733 , - 2494 , - 3835 , - 2964 , - 1145 , - 4698 , - 4775 , - 2640 , - 4613 , - 1846 , - 659 , - 2316 , - 3025 , - 4050 , - 1599 , - 1992 , - 1437 , - 1198 , - 2539 , - 1668 , - 4905 , - 3402 , - 3479 , - 1344 , - 3317 , - 550 , - 4419 , - 1020 , - 1729 , - 2754 , - 303 , - 696 , - 141 , - 4958 , - 1243 , - 372 , - 3609 , - 2106 , - 2183 , - 48 , - 2021 , - 4310 , - 3123 , - 4780 , - 433 , - 1458 , - 4063 , - 4456 , - 3901 , - 3662 , - 5003 , - 4132 , - 2313 , - 810 , - 887 , - 3808 , - 725 , - 3014 , - 1827 , - 3484 , - 4193 , - 162 , - 2767 , - 3160 , - 2605 , - 2366 , - 3707 , - 2836 , - 1017 , - 4570 , - 4647 , - 2512 , - 4485 , - 1718 , - 531 , - 2188 , - 2897 , - 3922 , - 1471 , - 1864 , - 1309 , - 1070 , - 2411 , - 1540 , - 4777 , - 3274 , - 3351 , - 1216 , - 3189 , - 422 , - 4291 , - 892 , - 1601 , - 2626 , - 175 , - 568 , - 13 , - 4830 , - 1115 , - 244 , - 3481 , - 1978 , - 2055 , - 4976 , - 1893 , - 4182 , - 2995 , - 4652 , - 305 , - 1330 , - 3935 , - 4328 , - 3773 , - 3534 , - 4875 , - 4004 , - 2185 , - 682 , - 759 , - 3680 , - 597 , - 2886 , - 1699 , - 3356 , - 4065 , - 34 , - 2639 , - 3032 , - 2477 , - 2238 , - 3579 , - 2708 , - 889 , - 4442 , - 4519 , - 2384 , - 4357 , - 1590 , - 403 , - 2060 , - 2769 , - 3794 , - 1343 , - 1736 , - 1181 , - 942 , - 2283 , - 1412 , - 4649 , - 3146 , - 3223 , - 1088 , - 3061 , - 294 , - 4163 , - 764 , - 1473 , - 2498 , - 47 , - 440 , - 4941 , - 4702 , - 987 , - 116 , - 3353 , - 1850 , - 1927 , - 4848 , - 1765 , - 4054 , - 2867 , - 4524 , - 177 , - 1202 , - 3807 , - 4200 , - 3645 , - 3406 , - 4747 , - 3876 , - 2057 , - 554 , - 631 , - 3552 , - 469 , - 2758 , - 1571 , - 3228 , - 3937 , - 4962 , - 2511 , - 2904 , - 2349 , - 2110 , - 3451 , - 2580 , - 761 , - 4314 , - 4391 , - 2256 , - 4229 , - 1462 , - 275 , - 1932 , - 2641 , - 3666 , - 1215 , - 1608 , - 1053 , - 814 , - 2155 , - 1284 , - 4521 , - 3018 , - 3095 , - 960 , - 2933 , - 166 , - 4035 , - 636 , - 1345 , - 2370 , - 4975 , - 312 , - 4813 , - 4574 , - 859 , - 5044 , - 3225 , - 1722 , - 1799 , - 4720 , - 1637 , - 3926 , - 2739 , - 4396 , - 49 , - 1074 , - 3679 , - 4072 , - 3517 , - 3278 , - 4619 , - 3748 , - 1929 , - 426 , - 503 , - 3424 , - 341 , - 2630 , - 1443 , - 3100 , - 3809 , - 4834 , - 2383 , - 2776 , - 2221 , - 1982 , - 3323 , - 2452 , - 633 , - 4186 , - 4263 , - 2128 , - 4101 , - 1334 , - 147 , - 1804 , - 2513 , - 3538 , - 1087 , - 1480 , - 925 , - 686 , - 2027 , - 1156 , - 4393 , - 2890 , - 2967 , - 832 , - 2805 , - 38 , - 3907 , - 508 , - 1217 , - 2242 , - 4847 , - 184 , - 4685 , - 4446 , - 731 , - 4916 , - 3097 , - 1594 , - 1671 , - 4592 , - 1509 , - 3798 , - 2611 , - 4268 , - 4977 , - 946 , - 3551 , - 3944 , - 3389 , - 3150 , - 4491 , - 3620 , - 1801 , - 298 , - 375 , - 3296 , - 213 , - 2502 , - 1315 , - 2972 , - 3681 , - 4706 , - 2255 , - 2648 , - 2093 , - 1854 , - 3195 , - 2324 , - 505 , - 4058 , - 4135 , - 2000 , - 3973 , - 1206 , - 19 , - 1676 , - 2385 , - 3410 , - 959 , - 1352 , - 797 , - 558 , - 1899 , - 1028 , - 4265 , - 2762 , - 2839 , - 704 , - 2677 , - 4966 , - 3779 , - 380 , - 1089 , - 2114 , - 4719 , - 56 , - 4557 , - 4318 , - 603 , - 4788 , - 2969 , - 1466 , - 1543 , - 4464 , - 1381 , - 3670 , - 2483 , - 4140 , - 4849 , - 818 , - 3423 , - 3816 , - 3261 , - 3022 , - 4363 , - 3492 , - 1673 , - 170 , - 247 , - 3168 , - 85 , - 2374 , - 1187 , - 2844 , - 3553 , - 4578 , - 2127 , - 2520 , - 1965 , - 1726 , - 3067 , - 2196 , - 377 , - 3930 , - 4007 , - 1872 , - 3845 , - 1078 , - 4947 , - 1548 , - 2257 , - 3282 , - 831 , - 1224 , - 669 , - 430 , - 1771 , - 900 , - 4137 , - 2634 , - 2711 , - 576 , - 2549 , - 4838 , - 3651 , - 252 , - 961 , - 1986 , - 4591 , - 4984 , - 4429 , - 4190 , - 475 , - 4660 , - 2841 , - 1338 , - 1415 , - 4336 , - 1253 , - 3542 , - 2355 , - 4012 , - 4721 , - 690 , - 3295 , - 3688 , - 3133 , - 2894 , - 4235 , - 3364 , - 1545 , - 42 , - 119 , - 3040 , - 5013 , - 2246 , - 1059 , - 2716 , - 3425 , - 4450 , - 1999 , - 2392 , - 1837 , - 1598 , - 2939 , - 2068 , - 249 , - 3802 , - 3879 , - 1744 , - 3717 , - 950 , - 4819 , - 1420 , - 2129 , - 3154 , - 703 , - 1096 , - 541 , - 302 , - 1643 , - 772 , - 4009 , - 2506 , - 2583 , - 448 , - 2421 , - 4710 , - 3523 , - 124 , - 833 , - 1858 , - 4463 , - 4856 , - 4301 , - 4062 , - 347 , - 4532 , - 2713 , - 1210 , - 1287 , - 4208 , - 1125 , - 3414 , - 2227 , - 3884 , - 4593 , - 562 , - 3167 , - 3560 , - 3005 , - 2766 , - 4107 , - 3236 , - 1417 , - 4970 , - 5047 , - 2912 , - 4885 , - 2118 , - 931 , - 2588 , - 3297 , - 4322 , - 1871 , - 2264 , - 1709 , - 1470 , - 2811 , - 1940 , - 121 , - 3674 , - 3751 , - 1616 , - 3589 , - 822 , - 4691 , - 1292 , - 2001 , - 3026 , - 575 , - 968 , - 413 , - 174 , - 1515 , - 644 , - 3881 , - 2378 , - 2455 , - 320 , - 2293 , - 4582 , - 3395 , - 5052 , - 705 , - 1730 , - 4335 , - 4728 , - 4173 , - 3934 , - 219 , - 4404 , - 2585 , - 1082 , - 1159 , - 4080 , - 997 , - 3286 , - 2099 , - 3756 , - 4465 , - 434 , - 3039 , - 3432 , - 2877 , - 2638 , - 3979 , - 3108 , - 1289 , - 4842 , - 4919 , - 2784 , - 4757 , - 1990 , - 803 , - 2460 , - 3169 , - 4194 , - 1743 , - 2136 , - 1581 , - 1342 , - 2683 , - 1812 , - 5049 , - 3546 , - 3623 , - 1488 , - 3461 , - 694 , - 4563 , - 1164 , - 1873 , - 2898 , - 447 , - 840 , - 285 , - 46 , - 1387 , - 516 , - 3753 , - 2250 , - 2327 , - 192 , - 2165 , - 4454 , - 3267 , - 4924 , - 577 , - 1602 , - 4207 , - 4600 , - 4045 , - 3806 , - 91 , - 4276 , - 2457 , - 954 , - 1031 , - 3952 , - 869 , - 3158 , - 1971 , - 3628 , - 4337 , - 306 , - 2911 , - 3304 , - 2749 , - 2510 , - 3851 , - 2980 , - 1161 , - 4714 , - 4791 , - 2656 , - 4629 , - 1862 , - 675 , - 2332 , - 3041 , - 4066 , - 1615 , - 2008 , - 1453 , - 1214 , - 2555 , - 1684 , - 4921 , - 3418 , - 3495 , - 1360 , - 3333 , - 566 , - 4435 , - 1036 , - 1745 , - 2770 , - 319 , - 712 , - 157 , - 4974 , - 1259 , - 388 , - 3625 , - 2122 , - 2199 , - 64 , - 2037 , - 4326 , - 3139 , - 4796 , - 449 , - 1474 , - 4079 , - 4472 , - 3917 , - 3678 , - 5019 , - 4148 , - 2329 , - 826 , - 903 , - 3824 , - 741 , - 3030 , - 1843 , - 3500 , - 4209 , - 178 , - 2783 , - 3176 , - 2621 , - 2382 , - 3723 , - 2852 , - 1033 , - 4586 , - 4663 , - 2528 , - 4501 , - 1734 , - 547 , - 2204 , - 2913 , - 3938 , - 1487 , - 1880 , - 1325 , - 1086 , - 2427 , - 1556 , - 4793 , - 3290 , - 3367 , - 1232 , - 3205 , - 438 , - 4307 , - 908 , - 1617 , - 2642 , - 191 , - 584 , - 29 , - 4846 , - 1131 , - 260 , - 3497 , - 1994 , - 2071 , - 4992 , - 1909 , - 4198 , - 3011 , - 4668 , - 321 , - 1346 , - 3951 , - 4344 , - 3789 , - 3550 , - 4891 , - 4020 , - 2201 , - 698 , - 775 , - 3696 , - 613 , - 2902 , - 1715 , - 3372 , - 4081 , - 50 , - 2655 , - 3048 , - 2493 , - 2254 , - 3595 , - 2724 , - 905 , - 4458 , - 4535 , - 2400 , - 4373 , - 1606 , - 419 , - 2076 , - 2785 , - 3810 , - 1359 , - 1752 , - 1197 , - 958 , - 2299 , - 1428 , - 4665 , - 3162 , - 3239 , - 1104 , - 3077 , - 310 , - 4179 , - 780 , - 1489 , - 2514 , - 63 , - 456 , - 4957 , - 4718 , - 1003 , - 132 , - 3369 , - 1866 , - 1943 , - 4864 , - 1781 , - 4070 , - 2883 , - 4540 , - 193 , - 1218 , - 3823 , - 4216 , - 3661 , - 3422 , - 4763 , - 3892 , - 2073 , - 570 , - 647 , - 3568 , - 485 , - 2774 , - 1587 , - 3244 , - 3953 , - 4978 , - 2527 , - 2920 , - 2365 , - 2126 , - 3467 , - 2596 , - 777 , - 4330 , - 4407 , - 2272 , - 4245 , - 1478 , - 291 , - 1948 , - 2657 , - 3682 , - 1231 , - 1624 , - 1069 , - 830 , - 2171 , - 1300 , - 4537 , - 3034 , - 3111 , - 976 , - 2949 , - 182 , - 4051 , - 652 , - 1361 , - 2386 , - 4991 , - 328 , - 4829 , - 4590 , - 875 , - 4 , - 3241 , - 1738 , - 1815 , - 4736 , - 1653 , - 3942 , - 2755 , - 4412 , - 65 , - 1090 , - 3695 , - 4088 , - 3533 , - 3294 , - 4635 , - 3764 , - 1945 , - 442 , - 519 , - 3440 , - 357 , - 2646 , - 1459 , - 3116 , - 3825 , - 4850 , - 2399 , - 2792 , - 2237 , - 1998 , - 3339 , - 2468 , - 649 , - 4202 , - 4279 , - 2144 , - 4117 , - 1350 , - 163 , - 1820 , - 2529 , - 3554 , - 1103 , - 1496 , - 941 , - 702 , - 2043 , - 1172 , - 4409 , - 2906 , - 2983 , - 848 , - 2821 , - 54 , - 3923 , - 524 , - 1233 , - 2258 , - 4863 , - 200 , - 4701 , - 4462 , - 747 , - 4932 , - 3113 , - 1610 , - 1687 , - 4608 , - 1525 , - 3814 , - 2627 , - 4284 , - 4993 , - 962 , - 3567 , - 3960 , - 3405 , - 3166 , - 4507 , - 3636 , - 1817 , - 314 , - 391 , - 3312 , - 229 , - 2518 , - 1331 , - 2988 , - 3697 , - 4722 , - 2271 , - 2664 , - 2109 , - 1870 , - 3211 , - 2340 , - 521 , - 4074 , - 4151 , - 2016 , - 3989 , - 1222 , - 35 , - 1692 , - 2401 , - 3426 , - 975 , - 1368 , - 813 , - 574 , - 1915 , - 1044 , - 4281 , - 2778 , - 2855 , - 720 , - 2693 , - 4982 , - 3795 , - 396 , - 1105 , - 2130 , - 4735 , - 72 , - 4573 , - 4334 , - 619 , - 4804 , - 2985 , - 1482 , - 1559 , - 4480 , - 1397 , - 3686 , - 2499 , - 4156 , - 4865 , - 834 , - 3439 , - 3832 , - 3277 , - 3038 , - 4379 , - 3508 , - 1689 , - 186 , - 263 , - 3184 , - 101 , - 2390 , - 1203 , - 2860 , - 3569 , - 4594 , - 2143 , - 2536 , - 1981 , - 1742 , - 3083 , - 2212 , - 393 , - 3946 , - 4023 , - 1888 , - 3861 , - 1094 , - 4963 , - 1564 , - 2273 , - 3298 , - 847 , - 1240 , - 685 , - 446 , - 1787 , - 916 , - 4153 , - 2650 , - 2727 , - 592 , - 2565 , - 4854 , - 3667 , - 268 , - 977 , - 2002 , - 4607 , - 5000 , - 4445 , - 4206 , - 491 , - 4676 , - 2857 , - 1354 , - 1431 , - 4352 , - 1269 , - 3558 , - 2371 , - 4028 , - 4737 , - 706 , - 3311 , - 3704 , - 3149 , - 2910 , - 4251 , - 3380 , - 1561 , - 58 , - 135 , - 3056 , - 5029 , - 2262 , - 1075 , - 2732 , - 3441 , - 4466 , - 2015 , - 2408 , - 1853 , - 1614 , - 2955 , - 2084 , - 265 , - 3818 , - 3895 , - 1760 , - 3733 , - 966 , - 4835 , - 1436 , - 2145 , - 3170 , - 719 , - 1112 , - 557 , - 318 , - 1659 , - 788 , - 4025 , - 2522 , - 2599 , - 464 , - 2437 , - 4726 , - 3539 , - 140 , - 849 , - 1874 , - 4479 , - 4872 , - 4317 , - 4078 , - 363 , - 4548 , - 2729 , - 1226 , - 1303 , - 4224 , - 1141 , - 3430 , - 2243 , - 3900 , - 4609 , - 578 , - 3183 , - 3576 , - 3021 , - 2782 , - 4123 , - 3252 , - 1433 , - 4986 , - 7 , - 2928 , - 4901 , - 2134 , - 947 , - 2604 , - 3313 , - 4338 , - 1887 , - 2280 , - 1725 , - 1486 , - 2827 , - 1956 , - 137 , - 3690 , - 3767 , - 1632 , - 3605 , - 838 , - 4707 , - 1308 , - 2017 , - 3042 , - 591 , - 984 , - 429 , - 190 , - 1531 , - 660 , - 3897 , - 2394 , - 2471 , - 336 , - 2309 , - 4598 , - 3411 , - 12 , - 721 , - 1746 , - 4351 , - 4744 , - 4189 , - 3950 , - 235 , - 4420 , - 2601 , - 1098 , - 1175 , - 4096 , - 1013 , - 3302 , - 2115 , - 3772 , - 4481 , - 450 , - 3055 , - 3448 , - 2893 , - 2654 , - 3995 , - 3124 , - 1305 , - 4858 , - 4935 , - 2800 , - 4773 , - 2006 , - 819 , - 2476 , - 3185 , - 4210 , - 1759 , - 2152 , - 1597 , - 1358 , - 2699 , - 1828 , - 9 , - 3562 , - 3639 , - 1504 , - 3477 , - 710 , - 4579 , - 1180 , - 1889 , - 2914 , - 463 , - 856 , - 301 , - 62 , - 1403 , - 532 , - 3769 , - 2266 , - 2343 , - 208 , - 2181 , - 4470 , - 3283 , - 4940 , - 593 , - 1618 , - 4223 , - 4616 , - 4061 , - 3822 , - 107 , - 4292 , - 2473 , - 970 , - 1047 , - 3968 , - 885 , - 3174 , - 1987 , - 3644 , - 4353 , - 322 , - 2927 , - 3320 , - 2765 , - 2526 , - 3867 , - 2996 , - 1177 , - 4730 , - 4807 , - 2672 , - 4645 , - 1878 , - 691 , - 2348 , - 3057 , - 4082 , - 1631 , - 2024 , - 1469 , - 1230 , - 2571 , - 1700 , - 4937 , - 3434 , - 3511 , - 1376 , - 3349 , - 582 , - 4451 , - 1052 , - 1761 , - 2786 , - 335 , - 728 , - 173 , - 4990 , - 1275 , - 404 , - 3641 , - 2138 , - 2215 , - 80 , - 2053 , - 4342 , - 3155 , - 4812 , - 465 , - 1490 , - 4095 , - 4488 , - 3933 , - 3694 , - 5035 , - 4164 , - 2345 , - 842 , - 919 , - 3840 , - 757 , - 3046 , - 1859 , - 3516 , - 4225 , - 194 , - 2799 , - 3192 , - 2637 , - 2398 , - 3739 , - 2868 , - 1049 , - 4602 , - 4679 , - 2544 , - 4517 , - 1750 , - 563 , - 2220 , - 2929 , - 3954 , - 1503 , - 1896 , - 1341 , - 1102 , - 2443 , - 1572 , - 4809 , - 3306 , - 3383 , - 1248 , - 3221 , - 454 , - 4323 , - 924 , - 1633 , - 2658 , - 207 , - 600 , - 45 , - 4862 , - 1147 , - 276 , - 3513 , - 2010 , - 2087 , - 5008 , - 1925 , - 4214 , - 3027 , - 4684 , - 337 , - 1362 , - 3967 , - 4360 , - 3805 , - 3566 , - 4907 , - 4036 , - 2217 , - 714 , - 791 , - 3712 , - 629 , - 2918 , - 1731 , - 3388 , - 4097 , - 66 , - 2671 , - 3064 , - 2509 , - 2270 , - 3611 , - 2740 , - 921 , - 4474 , - 4551 , - 2416 , - 4389 , - 1622 , - 435 , - 2092 , - 2801 , - 3826 , - 1375 , - 1768 , - 1213 , - 974 , - 2315 , - 1444 , - 4681 , - 3178 , - 3255 , - 1120 , - 3093 , - 326 , - 4195 , - 796 , - 1505 , - 2530 , - 79 , - 472 , - 4973 , - 4734 , - 1019 , - 148 , - 3385 , - 1882 , - 1959 , - 4880 , - 1797 , - 4086 , - 2899 , - 4556 , - 209 , - 1234 , - 3839 , - 4232 , - 3677 , - 3438 , - 4779 , - 3908 , - 2089 , - 586 , - 663 , - 3584 , - 501 , - 2790 , - 1603 , - 3260 , - 3969 , - 4994 , - 2543 , - 2936 , - 2381 , - 2142 , - 3483 , - 2612 , - 793 , - 4346 , - 4423 , - 2288 , - 4261 , - 1494 , - 307 , - 1964 , - 2673 , - 3698 , - 1247 , - 1640 , - 1085 , - 846 , - 2187 , - 1316 , - 4553 , - 3050 , - 3127 , - 992 , - 2965 , - 198 , - 4067 , - 668 , - 1377 , - 2402 , - 5007 , - 344 , - 4845 , - 4606 , - 891 , - 20 , - 3257 , - 1754 , - 1831 , - 4752 , - 1669 , - 3958 , - 2771 , - 4428 , - 81 , - 1106 , - 3711 , - 4104 , - 3549 , - 3310 , - 4651 , - 3780 , - 1961 , - 458 , - 535 , - 3456 , - 373 , - 2662 , - 1475 , - 3132 , - 3841 , - 4866 , - 2415 , - 2808 , - 2253 , - 2014 , - 3355 , - 2484 , - 665 , - 4218 , - 4295 , - 2160 , - 4133 , - 1366 , - 179 , - 1836 , - 2545 , - 3570 , - 1119 , - 1512 , - 957 , - 718 , - 2059 , - 1188 , - 4425 , - 2922 , - 2999 , - 864 , - 2837 , - 70 , - 3939 , - 540 , - 1249 , - 2274 , - 4879 , - 216 , - 4717 , - 4478 , - 763 , - 4948 , - 3129 , - 1626 , - 1703 , - 4624 , - 1541 , - 3830 , - 2643 , - 4300 , - 5009 , - 978 , - 3583 , - 3976 , - 3421 , - 3182 , - 4523 , - 3652 , - 1833 , - 330 , - 407 , - 3328 , - 245 , - 2534 , - 1347 , - 3004 , - 3713 , - 4738 , - 2287 , - 2680 , - 2125 , - 1886 , - 3227 , - 2356 , - 537 , - 4090 , - 4167 , - 2032 , - 4005 , - 1238 , - 51 , - 1708 , - 2417 , - 3442 , - 991 , - 1384 , - 829 , - 590 , - 1931 , - 1060 , - 4297 , - 2794 , - 2871 , - 736 , - 2709 , - 4998 , - 3811 , - 412 , - 1121 , - 2146 , - 4751 , - 88 , - 4589 , - 4350 , - 635 , - 4820 , - 3001 , - 1498 , - 1575 , - 4496 , - 1413 , - 3702 , - 2515 , - 4172 , - 4881 , - 850 , - 3455 , - 3848 , - 3293 , - 3054 , - 4395 , - 3524 , - 1705 , - 202 , - 279 , - 3200 , - 117 , - 2406 , - 1219 , - 2876 , - 3585 , - 4610 , - 2159 , - 2552 , - 1997 , - 1758 , - 3099 , - 2228 , - 409 , - 3962 , - 4039 , - 1904 , - 3877 , - 1110 , - 4979 , - 1580 , - 2289 , - 3314 , - 863 , - 1256 , - 701 , - 462 , - 1803 , - 932 , - 4169 , - 2666 , - 2743 , - 608 , - 2581 , - 4870 , - 3683 , - 284 , - 993 , - 2018 , - 4623 , - 5016 , - 4461 , - 4222 , - 507 , - 4692 , - 2873 , - 1370 , - 1447 , - 4368 , - 1285 , - 3574 , - 2387 , - 4044 , - 4753 , - 722 , - 3327 , - 3720 , - 3165 , - 2926 , - 4267 , - 3396 , - 1577 , - 74 , - 151 , - 3072 , - 5045 , - 2278 , - 1091 , - 2748 , - 3457 , - 4482 , - 2031 , - 2424 , - 1869 , - 1630 , - 2971 , - 2100 , - 281 , - 3834 , - 3911 , - 1776 , - 3749 , - 982 , - 4851 , - 1452 , - 2161 , - 3186 , - 735 , - 1128 , - 573 , - 334 , - 1675 , - 804 , - 4041 , - 2538 , - 2615 , - 480 , - 2453 , - 4742 , - 3555 , - 156 , - 865 , - 1890 , - 4495 , - 4888 , - 4333 , - 4094 , - 379 , - 4564 , - 2745 , - 1242 , - 1319 , - 4240 , - 1157 , - 3446 , - 2259 , - 3916 , - 4625 , - 594 , - 3199 , - 3592 , - 3037 , - 2798 , - 4139 , - 3268 , - 1449 , - 5002 , - 23 , - 2944 , - 4917 , - 2150 , - 963 , - 2620 , - 3329 , - 4354 , - 1903 , - 2296 , - 1741 , - 1502 , - 2843 , - 1972 , - 153 , - 3706 , - 3783 , - 1648 , - 3621 , - 854 , - 4723 , - 1324 , - 2033 , - 3058 , - 607 , - 1000 , - 445 , - 206 , - 1547 , - 676 , - 3913 , - 2410 , - 2487 , - 352 , - 2325 , - 4614 , - 3427 , - 28 , - 737 , - 1762 , - 4367 , - 4760 , - 4205 , - 3966 , - 251 , - 4436 , - 2617 , - 1114 , - 1191 , - 4112 , - 1029 , - 3318 , - 2131 , - 3788 , - 4497 , - 466 , - 3071 , - 3464 , - 2909 , - 2670 , - 4011 , - 3140 , - 1321 , - 4874 , - 4951 , - 2816 , - 4789 , - 2022 , - 835 , - 2492 , - 3201 , - 4226 , - 1775 , - 2168 , - 1613 , - 1374 , - 2715 , - 1844 , - 25 , - 3578 , - 3655 , - 1520 , - 3493 , - 726 , - 4595 , - 1196 , - 1905 , - 2930 , - 479 , - 872 , - 317 , - 78 , - 1419 , - 548 , - 3785 , - 2282 , - 2359 , - 224 , - 2197 , - 4486 , - 3299 , - 4956 , - 609 , - 1634 , - 4239 , - 4632 , - 4077 , - 3838 , - 123 , - 4308 , - 2489 , - 986 , - 1063 , - 3984 , - 901 , - 3190 , - 2003 , - 3660 , - 4369 , - 338 , - 2943 , - 3336 , - 2781 , - 2542 , - 3883 , - 3012 , - 1193 , - 4746 , - 4823 , - 2688 , - 4661 , - 1894 , - 707 , - 2364 , - 3073 , - 4098 , - 1647 , - 2040 , - 1485 , - 1246 , - 2587 , - 1716 , - 4953 , - 3450 , - 3527 , - 1392 , - 3365 , - 598 , - 4467 , - 1068 , - 1777 , - 2802 , - 351 , - 744 , - 189 , - 5006 , - 1291 , - 420 , - 3657 , - 2154 , - 2231 , - 96 , - 2069 , - 4358 , - 3171 , - 4828 , - 481 , - 1506 , - 4111 , - 4504 , - 3949 , - 3710 , - 5051 , - 4180 , - 2361 , - 858 , - 935 , - 3856 , - 773 , - 3062 , - 1875 , - 3532 , - 4241 , - 210 , - 2815 , - 3208 , - 2653 , - 2414 , - 3755 , - 2884 , - 1065 , - 4618 , - 4695 , - 2560 , - 4533 , - 1766 , - 579 , - 2236 , - 2945 , - 3970 , - 1519 , - 1912 , - 1357 , - 1118 , - 2459 , - 1588 , - 4825 , - 3322 , - 3399 , - 1264 , - 3237 , - 470 , - 4339 , - 940 , - 1649 , - 2674 , - 223 , - 616 , - 61 , - 4878 , - 1163 , - 292 , - 3529 , - 2026 , - 2103 , - 5024 , - 1941 , - 4230 , - 3043 , - 4700 , - 353 , - 1378 , - 3983 , - 4376 , - 3821 , - 3582 , - 4923 , - 4052 , - 2233 , - 730 , - 807 , - 3728 , - 645 , - 2934 , - 1747 , - 3404 , - 4113 , - 82 , - 2687 , - 3080 , - 2525 , - 2286 , - 3627 , - 2756 , - 937 , - 4490 , - 4567 , - 2432 , - 4405 , - 1638 , - 451 , - 2108 , - 2817 , - 3842 , - 1391 , - 1784 , - 1229 , - 990 , - 2331 , - 1460 , - 4697 , - 3194 , - 3271 , - 1136 , - 3109 , - 342 , - 4211 , - 812 , - 1521 , - 2546 , - 95 , - 488 , - 4989 , - 4750 , - 1035 , - 164 , - 3401 , - 1898 , - 1975 , - 4896 , - 1813 , - 4102 , - 2915 , - 4572 , - 225 , - 1250 , - 3855 , - 4248 , - 3693 , - 3454 , - 4795 , - 3924 , - 2105 , - 602 , - 679 , - 3600 , - 517 , - 2806 , - 1619 , - 3276 , - 3985 , - 5010 , - 2559 , - 2952 , - 2397 , - 2158 , - 3499 , - 2628 , - 809 , - 4362 , - 4439 , - 2304 , - 4277 , - 1510 , - 323 , - 1980 , - 2689 , - 3714 , - 1263 , - 1656 , - 1101 , - 862 , - 2203 , - 1332 , - 4569 , - 3066 , - 3143 , - 1008 , - 2981 , - 214 , - 4083 , - 684 , - 1393 , - 2418 , - 5023 , - 360 , - 4861 , - 4622 , - 907 , - 36 , - 3273 , - 1770 , - 1847 , - 4768 , - 1685 , - 3974 , - 2787 , - 4444 , - 97 , - 1122 , - 3727 , - 4120 , - 3565 , - 3326 , - 4667 , - 3796 , - 1977 , - 474 , - 551 , - 3472 , - 389 , - 2678 , - 1491 , - 3148 , - 3857 , - 4882 , - 2431 , - 2824 , - 2269 , - 2030 , - 3371 , - 2500 , - 681 , - 4234 , - 4311 , - 2176 , - 4149 , - 1382 , - 195 , - 1852 , - 2561 , - 3586 , - 1135 , - 1528 , - 973 , - 734 , - 2075 , - 1204 , - 4441 , - 2938 , - 3015 , - 880 , - 2853 , - 86 , - 3955 , - 556 , - 1265 , - 2290 , - 4895 , - 232 , - 4733 , - 4494 , - 779 , - 4964 , - 3145 , - 1642 , - 1719 , - 4640 , - 1557 , - 3846 , - 2659 , - 4316 , - 5025 , - 994 , - 3599 , - 3992 , - 3437 , - 3198 , - 4539 , - 3668 , - 1849 , - 346 , - 423 , - 3344 , - 261 , - 2550 , - 1363 , - 3020 , - 3729 , - 4754 , - 2303 , - 2696 , - 2141 , - 1902 , - 3243 , - 2372 , - 553 , - 4106 , - 4183 , - 2048 , - 4021 , - 1254 , - 67 , - 1724 , - 2433 , - 3458 , - 1007 , - 1400 , - 845 , - 606 , - 1947 , - 1076 , - 4313 , - 2810 , - 2887 , - 752 , - 2725 , - 5014 , - 3827 , - 428 , - 1137 , - 2162 , - 4767 , - 104 , - 4605 , - 4366 , - 651 , - 4836 , - 3017 , - 1514 , - 1591 , - 4512 , - 1429 , - 3718 , - 2531 , - 4188 , - 4897 , - 866 , - 3471 , - 3864 , - 3309 , - 3070 , - 4411 , - 3540 , - 1721 , - 218 , - 295 , - 3216 , - 133 , - 2422 , - 1235 , - 2892 , - 3601 , - 4626 , - 2175 , - 2568 , - 2013 , - 1774 , - 3115 , - 2244 , - 425 , - 3978 , - 4055 , - 1920 , - 3893 , - 1126 , - 4995 , - 1596 , - 2305 , - 3330 , - 879 , - 1272 , - 717 , - 478 , - 1819 , - 948 , - 4185 , - 2682 , - 2759 , - 624 , - 2597 , - 4886 , - 3699 , - 300 , - 1009 , - 2034 , - 4639 , - 5032 , - 4477 , - 4238 , - 523 , - 4708 , - 2889 , - 1386 , - 1463 , - 4384 , - 1301 , - 3590 , - 2403 , - 4060 , - 4769 , - 738 , - 3343 , - 3736 , - 3181 , - 2942 , - 4283 , - 3412 , - 1593 , - 90 , - 167 , - 3088 , - 5 , - 2294 , - 1107 , - 2764 , - 3473 , - 4498 , - 2047 , - 2440 , - 1885 , - 1646 , - 2987 , - 2116 , - 297 , - 3850 , - 3927 , - 1792 , - 3765 , - 998 , - 4867 , - 1468 , - 2177 , - 3202 , - 751 , - 1144 , - 589 , - 350 , - 1691 , - 820 , - 4057 , - 2554 , - 2631 , - 496 , - 2469 , - 4758 , - 3571 , - 172 , - 881 , - 1906 , - 4511 , - 4904 , - 4349 , - 4110 , - 395 , - 4580 , - 2761 , - 1258 , - 1335 , - 4256 , - 1173 , - 3462 , - 2275 , - 3932 , - 4641 , - 610 , - 3215 , - 3608 , - 3053 , - 2814 , - 4155 , - 3284 , - 1465 , - 5018 , - 39 , - 2960 , - 4933 , - 2166 , - 979 , - 2636 , - 3345 , - 4370 , - 1919 , - 2312 , - 1757 , - 1518 , - 2859 , - 1988 , - 169 , - 3722 , - 3799 , - 1664 , - 3637 , - 870 , - 4739 , - 1340 , - 2049 , - 3074 , - 623 , - 1016 , - 461 , - 222 , - 1563 , - 692 , - 3929 , - 2426 , - 2503 , - 368 , - 2341 , - 4630 , - 3443 , - 44 , - 753 , - 1778 , - 4383 , - 4776 , - 4221 , - 3982 , - 267 , - 4452 , - 2633 , - 1130 , - 1207 , - 4128 , - 1045 , - 3334 , - 2147 , - 3804 , - 4513 , - 482 , - 3087 , - 3480 , - 2925 , - 2686 , - 4027 , - 3156 , - 1337 , - 4890 , - 4967 , - 2832 , - 4805 , - 2038 , - 851 , - 2508 , - 3217 , - 4242 , - 1791 , - 2184 , - 1629 , - 1390 , - 2731 , - 1860 , - 41 , - 3594 , - 3671 , - 1536 , - 3509 , - 742 , - 4611 , - 1212 , - 1921 , - 2946 , - 495 , - 888 , - 333 , - 94 , - 1435 , - 564 , - 3801 , - 2298 , - 2375 , - 240 , - 2213 , - 4502 , - 3315 , - 4972 , - 625 , - 1650 , - 4255 , - 4648 , - 4093 , - 3854 , - 139 , - 4324 , - 2505 , - 1002 , - 1079 , - 4000 , - 917 , - 3206 , - 2019 , - 3676 , - 4385 , - 354 , - 2959 , - 3352 , - 2797 , - 2558 , - 3899 , - 3028 , - 1209 , - 4762 , - 4839 , - 2704 , - 4677 , - 1910 , - 723 , - 2380 , - 3089 , - 4114 , - 1663 , - 2056 , - 1501 , - 1262 , - 2603 , - 1732 , - 4969 , - 3466 , - 3543 , - 1408 , - 3381 , - 614 , - 4483 , - 1084 , - 1793 , - 2818 , - 367 , - 760 , - 205 , - 5022 , - 1307 , - 436 , - 3673 , - 2170 , - 2247 , - 112 , - 2085 , - 4374 , - 3187 , - 4844 , - 497 , - 1522 , - 4127 , - 4520 , - 3965 , - 3726 , - 11 , - 4196 , - 2377 , - 874 , - 951 , - 3872 , - 789 , - 3078 , - 1891 , - 3548 , - 4257 , - 226 , - 2831 , - 3224 , - 2669 , - 2430 , - 3771 , - 2900 , - 1081 , - 4634 , - 4711 , - 2576 , - 4549 , - 1782 , - 595 , - 2252 , - 2961 , - 3986 , - 1535 , - 1928 , - 1373 , - 1134 , - 2475 , - 1604 , - 4841 , - 3338 , - 3415 , - 1280 , - 3253 , - 486 , - 4355 , - 956 , - 1665 , - 2690 , - 239 , - 632 , - 77 , - 4894 , - 1179 , - 308 , - 3545 , - 2042 , - 2119 , - 5040 , - 1957 , - 4246 , - 3059 , - 4716 , - 369 , - 1394 , - 3999 , - 4392 , - 3837 , - 3598 , - 4939 , - 4068 , - 2249 , - 746 , - 823 , - 3744 , - 661 , - 2950 , - 1763 , - 3420 , - 4129 , - 98 , - 2703 , - 3096 , - 2541 , - 2302 , - 3643 , - 2772 , - 953 , - 4506 , - 4583 , - 2448 , - 4421 , - 1654 , - 467 , - 2124 , - 2833 , - 3858 , - 1407 , - 1800 , - 1245 , - 1006 , - 2347 , - 1476 , - 4713 , - 3210 , - 3287 , - 1152 , - 3125 , - 358 , - 4227 , - 828 , - 1537 , - 2562 , - 111 , - 504 , - 5005 , - 4766 , - 1051 , - 180 , - 3417 , - 1914 , - 1991 , - 4912 , - 1829 , - 4118 , - 2931 , - 4588 , - 241 , - 1266 , - 3871 , - 4264 , - 3709 , - 3470 , - 4811 , - 3940 , - 2121 , - 618 , - 695 , - 3616 , - 533 , - 2822 , - 1635 , - 3292 , - 4001 , - 5026 , - 2575 , - 2968 , - 2413 , - 2174 , - 3515 , - 2644 , - 825 , - 4378 , - 4455 , - 2320 , - 4293 , - 1526 , - 339 , - 1996 , - 2705 , - 3730 , - 1279 , - 1672 , - 1117 , - 878 , - 2219 , - 1348 , - 4585 , - 3082 , - 3159 , - 1024 , - 2997 , - 230 , - 4099 , - 700 , - 1409 , - 2434 , - 5039 , - 376 , - 4877 , - 4638 , - 923 , - 52 , - 3289 , - 1786 , - 1863 , - 4784 , - 1701 , - 3990 , - 2803 , - 4460 , - 113 , - 1138 , - 3743 , - 4136 , - 3581 , - 3342 , - 4683 , - 3812 , - 1993 , - 490 , - 567 , - 3488 , - 405 , - 2694 , - 1507 , - 3164 , - 3873 , - 4898 , - 2447 , - 2840 , - 2285 , - 2046 , - 3387 , - 2516 , - 697 , - 4250 , - 4327 , - 2192 , - 4165 , - 1398 , - 211 , - 1868 , - 2577 , - 3602 , - 1151 , - 1544 , - 989 , - 750 , - 2091 , - 1220 , - 4457 , - 2954 , - 3031 , - 896 , - 2869 , - 102 , - 3971 , - 572 , - 1281 , - 2306 , - 4911 , - 248 , - 4749 , - 4510 , - 795 , - 4980 , - 3161 , - 1658 , - 1735 , - 4656 , - 1573 , - 3862 , - 2675 , - 4332 , - 5041 , - 1010 , - 3615 , - 4008 , - 3453 , - 3214 , - 4555 , - 3684 , - 1865 , - 362 , - 439 , - 3360 , - 277 , - 2566 , - 1379 , - 3036 , - 3745 , - 4770 , - 2319 , - 2712 , - 2157 , - 1918 , - 3259 , - 2388 , - 569 , - 4122 , - 4199 , - 2064 , - 4037 , - 1270 , - 83 , - 1740 , - 2449 , - 3474 , - 1023 , - 1416 , - 861 , - 622 , - 1963 , - 1092 , - 4329 , - 2826 , - 2903 , - 768 , - 2741 , - 5030 , - 3843 , - 444 , - 1153 , - 2178 , - 4783 , - 120 , - 4621 , - 4382 , - 667 , - 4852 , - 3033 , - 1530 , - 1607 , - 4528 , - 1445 , - 3734 , - 2547 , - 4204 , - 4913 , - 882 , - 3487 , - 3880 , - 3325 , - 3086 , - 4427 , - 3556 , - 1737 , - 234 , - 311 , - 3232 , - 149 , - 2438 , - 1251 , - 2908 , - 3617 , - 4642 , - 2191 , - 2584 , - 2029 , - 1790 , - 3131 , - 2260 , - 441 , - 3994 , - 4071 , - 1936 , - 3909 , - 1142 , - 5011 , - 1612 , - 2321 , - 3346 , - 895 , - 1288 , - 733 , - 494 , - 1835 , - 964 , - 4201 , - 2698 , - 2775 , - 640 , - 2613 , - 4902 , - 3715 , - 316 , - 1025 , - 2050 , - 4655 , - 5048 , - 4493 , - 4254 , - 539 , - 4724 , - 2905 , - 1402 , - 1479 , - 4400 , - 1317 , - 3606 , - 2419 , - 4076 , - 4785 , - 754 , - 3359 , - 3752 , - 3197 , - 2958 , - 4299 , - 3428 , - 1609 , - 106 , - 183 , - 3104 , - 21 , - 2310 , - 1123 , - 2780 , - 3489 , - 4514 , - 2063 , - 2456 , - 1901 , - 1662 , - 3003 , - 2132 , - 313 , - 3866 , - 3943 , - 1808 , - 3781 , - 1014 , - 4883 , - 1484 , - 2193 , - 3218 , - 767 , - 1160 , - 605 , - 366 , - 1707 , - 836 , - 4073 , - 2570 , - 2647 , - 512 , - 2485 , - 4774 , - 3587 , - 188 , - 897 , - 1922 , - 4527 , - 4920 , - 4365 , - 4126 , - 411 , - 4596 , - 2777 , - 1274 , - 1351 , - 4272 , - 1189 , - 3478 , - 2291 , - 3948 , - 4657 , - 626 , - 3231 , - 3624 , - 3069 , - 2830 , - 4171 , - 3300 , - 1481 , - 5034 , - 55 , - 2976 , - 4949 , - 2182 , - 995 , - 2652 , - 3361 , - 4386 , - 1935 , - 2328 , - 1773 , - 1534 , - 2875 , - 2004 , - 185 , - 3738 , - 3815 , - 1680 , - 3653 , - 886 , - 4755 , - 1356 , - 2065 , - 3090 , - 639 , - 1032 , - 477 , - 238 , - 1579 , - 708 , - 3945 , - 2442 , - 2519 , - 384 , - 2357 , - 4646 , - 3459 , - 60 , - 769 , - 1794 , - 4399 , - 4792 , - 4237 , - 3998 , - 283 , - 4468 , - 2649 , - 1146 , - 1223 , - 4144 , - 1061 , - 3350 , - 2163 , - 3820 , - 4529 , - 498 , - 3103 , - 3496 , - 2941 , - 2702 , - 4043 , - 3172 , - 1353 , - 4906 , - 4983 , - 2848 , - 4821 , - 2054 , - 867 , - 2524 , - 3233 , - 4258 , - 1807 , - 2200 , - 1645 , - 1406 , - 2747 , - 1876 , - 57 , - 3610 , - 3687 , - 1552 , - 3525 , - 758 , - 4627 , - 1228 , - 1937 , - 2962 , - 511 , - 904 , - 349 , - 110 , - 1451 , - 580 , - 3817 , - 2314 , - 2391 , - 256 , - 2229 , - 4518 , - 3331 , - 4988 , - 641 , - 1666 , - 4271 , - 4664 , - 4109 , - 3870 , - 155 , - 4340 , - 2521 , - 1018 , - 1095 , - 4016 , - 933 , - 3222 , - 2035 , - 3692 , - 4401 , - 370 , - 2975 , - 3368 , - 2813 , - 2574 , - 3915 , - 3044 , - 1225 , - 4778 , - 4855 , - 2720 , - 4693 , - 1926 , - 739 , - 2396 , - 3105 , - 4130 , - 1679 , - 2072 , - 1517 , - 1278 , - 2619 , - 1748 , - 4985 , - 3482 , - 3559 , - 1424 , - 3397 , - 630 , - 4499 , - 1100 , - 1809 , - 2834 , - 383 , - 776 , - 221 , - 5038 , - 1323 , - 452 , - 3689 , - 2186 , - 2263 , - 128 , - 2101 , - 4390 , - 3203 , - 4860 , - 513 , - 1538 , - 4143 , - 4536 , - 3981 , - 3742 , - 27 , - 4212 , - 2393 , - 890 , - 967 , - 3888 , - 805 , - 3094 , - 1907 , - 3564 , - 4273 , - 242 , - 2847 , - 3240 , - 2685 , - 2446 , - 3787 , - 2916 , - 1097 , - 4650 , - 4727 , - 2592 , - 4565 , - 1798 , - 611 , - 2268 , - 2977 , - 4002 , - 1551 , - 1944 , - 1389 , - 1150 , - 2491 , - 1620 , - 4857 , - 3354 , - 3431 , - 1296 , - 3269 , - 502 , - 4371 , - 972 , - 1681 , - 2706 , - 255 , - 648 , - 93 , - 4910 , - 1195 , - 324 , - 3561 , - 2058 , - 2135 , - 0 , - 2919 , - 4718 , - 277 , - 4956 , - 3395 , - 714 , - 2033 , - 2232 , - 1311 , - 4390 , - 1229 , - 2068 , - 1787 , - 386 , - 2985 , - 4464 , - 4823 , - 4062 , - 2181 , - 4300 , - 179 , - 58 , - 3937 , - 1576 , - 3215 , - 3734 , - 3133 , - 1412 , - 3691 , - 4850 , - 4889 , - 3808 , - 1607 , - 3406 , - 4085 , - 3644 , - 2083 , - 4522 , - 721 , - 920 , - 5119 , - 3078 , - 5037 , - 756 , - 475 , - 4194 , - 1673 , - 3152 , - 3511 , - 2750 , - 869 , - 2988 , - 3987 , - 3866 , - 2625 , - 264 , - 1903 , - 2422 , - 1821 , - 100 , - 2379 , - 3538 , - 3577 , - 2496 , - 295 , - 2094 , - 2773 , - 2332 , - 771 , - 3210 , - 4529 , - 4728 , - 3807 , - 1766 , - 3725 , - 4564 , - 4283 , - 2882 , - 361 , - 1840 , - 2199 , - 1438 , - 4677 , - 1676 , - 2675 , - 2554 , - 1313 , - 4072 , - 591 , - 1110 , - 509 , - 3908 , - 1067 , - 2226 , - 2265 , - 1184 , - 4103 , - 782 , - 1461 , - 1020 , - 4579 , - 1898 , - 3217 , - 3416 , - 2495 , - 454 , - 2413 , - 3252 , - 2971 , - 1570 , - 4169 , - 528 , - 887 , - 126 , - 3365 , - 364 , - 1363 , - 1242 , - 1 , - 2760 , - 4399 , - 4918 , - 4317 , - 2596 , - 4875 , - 914 , - 953 , - 4992 , - 2791 , - 4590 , - 149 , - 4828 , - 3267 , - 586 , - 1905 , - 2104 , - 1183 , - 4262 , - 1101 , - 1940 , - 1659 , - 258 , - 2857 , - 4336 , - 4695 , - 3934 , - 2053 , - 4172 , - 51 , - 5050 , - 3809 , - 1448 , - 3087 , - 3606 , - 3005 , - 1284 , - 3563 , - 4722 , - 4761 , - 3680 , - 1479 , - 3278 , - 3957 , - 3516 , - 1955 , - 4394 , - 593 , - 792 , - 4991 , - 2950 , - 4909 , - 628 , - 347 , - 4066 , - 1545 , - 3024 , - 3383 , - 2622 , - 741 , - 2860 , - 3859 , - 3738 , - 2497 , - 136 , - 1775 , - 2294 , - 1693 , - 5092 , - 2251 , - 3410 , - 3449 , - 2368 , - 167 , - 1966 , - 2645 , - 2204 , - 643 , - 3082 , - 4401 , - 4600 , - 3679 , - 1638 , - 3597 , - 4436 , - 4155 , - 2754 , - 233 , - 1712 , - 2071 , - 1310 , - 4549 , - 1548 , - 2547 , - 2426 , - 1185 , - 3944 , - 463 , - 982 , - 381 , - 3780 , - 939 , - 2098 , - 2137 , - 1056 , - 3975 , - 654 , - 1333 , - 892 , - 4451 , - 1770 , - 3089 , - 3288 , - 2367 , - 326 , - 2285 , - 3124 , - 2843 , - 1442 , - 4041 , - 400 , - 759 , - 5118 , - 3237 , - 236 , - 1235 , - 1114 , - 4993 , - 2632 , - 4271 , - 4790 , - 4189 , - 2468 , - 4747 , - 786 , - 825 , - 4864 , - 2663 , - 4462 , - 21 , - 4700 , - 3139 , - 458 , - 1777 , - 1976 , - 1055 , - 4134 , - 973 , - 1812 , - 1531 , - 130 , - 2729 , - 4208 , - 4567 , - 3806 , - 1925 , - 4044 , - 5043 , - 4922 , - 3681 , - 1320 , - 2959 , - 3478 , - 2877 , - 1156 , - 3435 , - 4594 , - 4633 , - 3552 , - 1351 , - 3150 , - 3829 , - 3388 , - 1827 , - 4266 , - 465 , - 664 , - 4863 , - 2822 , - 4781 , - 500 , - 219 , - 3938 , - 1417 , - 2896 , - 3255 , - 2494 , - 613 , - 2732 , - 3731 , - 3610 , - 2369 , - 8 , - 1647 , - 2166 , - 1565 , - 4964 , - 2123 , - 3282 , - 3321 , - 2240 , - 39 , - 1838 , - 2517 , - 2076 , - 515 , - 2954 , - 4273 , - 4472 , - 3551 , - 1510 , - 3469 , - 4308 , - 4027 , - 2626 , - 105 , - 1584 , - 1943 , - 1182 , - 4421 , - 1420 , - 2419 , - 2298 , - 1057 , - 3816 , - 335 , - 854 , - 253 , - 3652 , - 811 , - 1970 , - 2009 , - 928 , - 3847 , - 526 , - 1205 , - 764 , - 4323 , - 1642 , - 2961 , - 3160 , - 2239 , - 198 , - 2157 , - 2996 , - 2715 , - 1314 , - 3913 , - 272 , - 631 , - 4990 , - 3109 , - 108 , - 1107 , - 986 , - 4865 , - 2504 , - 4143 , - 4662 , - 4061 , - 2340 , - 4619 , - 658 , - 697 , - 4736 , - 2535 , - 4334 , - 5013 , - 4572 , - 3011 , - 330 , - 1649 , - 1848 , - 927 , - 4006 , - 845 , - 1684 , - 1403 , - 2 , - 2601 , - 4080 , - 4439 , - 3678 , - 1797 , - 3916 , - 4915 , - 4794 , - 3553 , - 1192 , - 2831 , - 3350 , - 2749 , - 1028 , - 3307 , - 4466 , - 4505 , - 3424 , - 1223 , - 3022 , - 3701 , - 3260 , - 1699 , - 4138 , - 337 , - 536 , - 4735 , - 2694 , - 4653 , - 372 , - 91 , - 3810 , - 1289 , - 2768 , - 3127 , - 2366 , - 485 , - 2604 , - 3603 , - 3482 , - 2241 , - 5000 , - 1519 , - 2038 , - 1437 , - 4836 , - 1995 , - 3154 , - 3193 , - 2112 , - 5031 , - 1710 , - 2389 , - 1948 , - 387 , - 2826 , - 4145 , - 4344 , - 3423 , - 1382 , - 3341 , - 4180 , - 3899 , - 2498 , - 5097 , - 1456 , - 1815 , - 1054 , - 4293 , - 1292 , - 2291 , - 2170 , - 929 , - 3688 , - 207 , - 726 , - 125 , - 3524 , - 683 , - 1842 , - 1881 , - 800 , - 3719 , - 398 , - 1077 , - 636 , - 4195 , - 1514 , - 2833 , - 3032 , - 2111 , - 70 , - 2029 , - 2868 , - 2587 , - 1186 , - 3785 , - 144 , - 503 , - 4862 , - 2981 , - 5100 , - 979 , - 858 , - 4737 , - 2376 , - 4015 , - 4534 , - 3933 , - 2212 , - 4491 , - 530 , - 569 , - 4608 , - 2407 , - 4206 , - 4885 , - 4444 , - 2883 , - 202 , - 1521 , - 1720 , - 799 , - 3878 , - 717 , - 1556 , - 1275 , - 4994 , - 2473 , - 3952 , - 4311 , - 3550 , - 1669 , - 3788 , - 4787 , - 4666 , - 3425 , - 1064 , - 2703 , - 3222 , - 2621 , - 900 , - 3179 , - 4338 , - 4377 , - 3296 , - 1095 , - 2894 , - 3573 , - 3132 , - 1571 , - 4010 , - 209 , - 408 , - 4607 , - 2566 , - 4525 , - 244 , - 5083 , - 3682 , - 1161 , - 2640 , - 2999 , - 2238 , - 357 , - 2476 , - 3475 , - 3354 , - 2113 , - 4872 , - 1391 , - 1910 , - 1309 , - 4708 , - 1867 , - 3026 , - 3065 , - 1984 , - 4903 , - 1582 , - 2261 , - 1820 , - 259 , - 2698 , - 4017 , - 4216 , - 3295 , - 1254 , - 3213 , - 4052 , - 3771 , - 2370 , - 4969 , - 1328 , - 1687 , - 926 , - 4165 , - 1164 , - 2163 , - 2042 , - 801 , - 3560 , - 79 , - 598 , - 5117 , - 3396 , - 555 , - 1714 , - 1753 , - 672 , - 3591 , - 270 , - 949 , - 508 , - 4067 , - 1386 , - 2705 , - 2904 , - 1983 , - 5062 , - 1901 , - 2740 , - 2459 , - 1058 , - 3657 , - 16 , - 375 , - 4734 , - 2853 , - 4972 , - 851 , - 730 , - 4609 , - 2248 , - 3887 , - 4406 , - 3805 , - 2084 , - 4363 , - 402 , - 441 , - 4480 , - 2279 , - 4078 , - 4757 , - 4316 , - 2755 , - 74 , - 1393 , - 1592 , - 671 , - 3750 , - 589 , - 1428 , - 1147 , - 4866 , - 2345 , - 3824 , - 4183 , - 3422 , - 1541 , - 3660 , - 4659 , - 4538 , - 3297 , - 936 , - 2575 , - 3094 , - 2493 , - 772 , - 3051 , - 4210 , - 4249 , - 3168 , - 967 , - 2766 , - 3445 , - 3004 , - 1443 , - 3882 , - 81 , - 280 , - 4479 , - 2438 , - 4397 , - 116 , - 4955 , - 3554 , - 1033 , - 2512 , - 2871 , - 2110 , - 229 , - 2348 , - 3347 , - 3226 , - 1985 , - 4744 , - 1263 , - 1782 , - 1181 , - 4580 , - 1739 , - 2898 , - 2937 , - 1856 , - 4775 , - 1454 , - 2133 , - 1692 , - 131 , - 2570 , - 3889 , - 4088 , - 3167 , - 1126 , - 3085 , - 3924 , - 3643 , - 2242 , - 4841 , - 1200 , - 1559 , - 798 , - 4037 , - 1036 , - 2035 , - 1914 , - 673 , - 3432 , - 5071 , - 470 , - 4989 , - 3268 , - 427 , - 1586 , - 1625 , - 544 , - 3463 , - 142 , - 821 , - 380 , - 3939 , - 1258 , - 2577 , - 2776 , - 1855 , - 4934 , - 1773 , - 2612 , - 2331 , - 930 , - 3529 , - 5008 , - 247 , - 4606 , - 2725 , - 4844 , - 723 , - 602 , - 4481 , - 2120 , - 3759 , - 4278 , - 3677 , - 1956 , - 4235 , - 274 , - 313 , - 4352 , - 2151 , - 3950 , - 4629 , - 4188 , - 2627 , - 5066 , - 1265 , - 1464 , - 543 , - 3622 , - 461 , - 1300 , - 1019 , - 4738 , - 2217 , - 3696 , - 4055 , - 3294 , - 1413 , - 3532 , - 4531 , - 4410 , - 3169 , - 808 , - 2447 , - 2966 , - 2365 , - 644 , - 2923 , - 4082 , - 4121 , - 3040 , - 839 , - 2638 , - 3317 , - 2876 , - 1315 , - 3754 , - 5073 , - 152 , - 4351 , - 2310 , - 4269 , - 5108 , - 4827 , - 3426 , - 905 , - 2384 , - 2743 , - 1982 , - 101 , - 2220 , - 3219 , - 3098 , - 1857 , - 4616 , - 1135 , - 1654 , - 1053 , - 4452 , - 1611 , - 2770 , - 2809 , - 1728 , - 4647 , - 1326 , - 2005 , - 1564 , - 3 , - 2442 , - 3761 , - 3960 , - 3039 , - 998 , - 2957 , - 3796 , - 3515 , - 2114 , - 4713 , - 1072 , - 1431 , - 670 , - 3909 , - 908 , - 1907 , - 1786 , - 545 , - 3304 , - 4943 , - 342 , - 4861 , - 3140 , - 299 , - 1458 , - 1497 , - 416 , - 3335 , - 14 , - 693 , - 252 , - 3811 , - 1130 , - 2449 , - 2648 , - 1727 , - 4806 , - 1645 , - 2484 , - 2203 , - 802 , - 3401 , - 4880 , - 119 , - 4478 , - 2597 , - 4716 , - 595 , - 474 , - 4353 , - 1992 , - 3631 , - 4150 , - 3549 , - 1828 , - 4107 , - 146 , - 185 , - 4224 , - 2023 , - 3822 , - 4501 , - 4060 , - 2499 , - 4938 , - 1137 , - 1336 , - 415 , - 3494 , - 333 , - 1172 , - 891 , - 4610 , - 2089 , - 3568 , - 3927 , - 3166 , - 1285 , - 3404 , - 4403 , - 4282 , - 3041 , - 680 , - 2319 , - 2838 , - 2237 , - 516 , - 2795 , - 3954 , - 3993 , - 2912 , - 711 , - 2510 , - 3189 , - 2748 , - 1187 , - 3626 , - 4945 , - 24 , - 4223 , - 2182 , - 4141 , - 4980 , - 4699 , - 3298 , - 777 , - 2256 , - 2615 , - 1854 , - 5093 , - 2092 , - 3091 , - 2970 , - 1729 , - 4488 , - 1007 , - 1526 , - 925 , - 4324 , - 1483 , - 2642 , - 2681 , - 1600 , - 4519 , - 1198 , - 1877 , - 1436 , - 4995 , - 2314 , - 3633 , - 3832 , - 2911 , - 870 , - 2829 , - 3668 , - 3387 , - 1986 , - 4585 , - 944 , - 1303 , - 542 , - 3781 , - 780 , - 1779 , - 1658 , - 417 , - 3176 , - 4815 , - 214 , - 4733 , - 3012 , - 171 , - 1330 , - 1369 , - 288 , - 3207 , - 5006 , - 565 , - 124 , - 3683 , - 1002 , - 2321 , - 2520 , - 1599 , - 4678 , - 1517 , - 2356 , - 2075 , - 674 , - 3273 , - 4752 , - 5111 , - 4350 , - 2469 , - 4588 , - 467 , - 346 , - 4225 , - 1864 , - 3503 , - 4022 , - 3421 , - 1700 , - 3979 , - 18 , - 57 , - 4096 , - 1895 , - 3694 , - 4373 , - 3932 , - 2371 , - 4810 , - 1009 , - 1208 , - 287 , - 3366 , - 205 , - 1044 , - 763 , - 4482 , - 1961 , - 3440 , - 3799 , - 3038 , - 1157 , - 3276 , - 4275 , - 4154 , - 2913 , - 552 , - 2191 , - 2710 , - 2109 , - 388 , - 2667 , - 3826 , - 3865 , - 2784 , - 583 , - 2382 , - 3061 , - 2620 , - 1059 , - 3498 , - 4817 , - 5016 , - 4095 , - 2054 , - 4013 , - 4852 , - 4571 , - 3170 , - 649 , - 2128 , - 2487 , - 1726 , - 4965 , - 1964 , - 2963 , - 2842 , - 1601 , - 4360 , - 879 , - 1398 , - 797 , - 4196 , - 1355 , - 2514 , - 2553 , - 1472 , - 4391 , - 1070 , - 1749 , - 1308 , - 4867 , - 2186 , - 3505 , - 3704 , - 2783 , - 742 , - 2701 , - 3540 , - 3259 , - 1858 , - 4457 , - 816 , - 1175 , - 414 , - 3653 , - 652 , - 1651 , - 1530 , - 289 , - 3048 , - 4687 , - 86 , - 4605 , - 2884 , - 43 , - 1202 , - 1241 , - 160 , - 3079 , - 4878 , - 437 , - 5116 , - 3555 , - 874 , - 2193 , - 2392 , - 1471 , - 4550 , - 1389 , - 2228 , - 1947 , - 546 , - 3145 , - 4624 , - 4983 , - 4222 , - 2341 , - 4460 , - 339 , - 218 , - 4097 , - 1736 , - 3375 , - 3894 , - 3293 , - 1572 , - 3851 , - 5010 , - 5049 , - 3968 , - 1767 , - 3566 , - 4245 , - 3804 , - 2243 , - 4682 , - 881 , - 1080 , - 159 , - 3238 , - 77 , - 916 , - 635 , - 4354 , - 1833 , - 3312 , - 3671 , - 2910 , - 1029 , - 3148 , - 4147 , - 4026 , - 2785 , - 424 , - 2063 , - 2582 , - 1981 , - 260 , - 2539 , - 3698 , - 3737 , - 2656 , - 455 , - 2254 , - 2933 , - 2492 , - 931 , - 3370 , - 4689 , - 4888 , - 3967 , - 1926 , - 3885 , - 4724 , - 4443 , - 3042 , - 521 , - 2000 , - 2359 , - 1598 , - 4837 , - 1836 , - 2835 , - 2714 , - 1473 , - 4232 , - 751 , - 1270 , - 669 , - 4068 , - 1227 , - 2386 , - 2425 , - 1344 , - 4263 , - 942 , - 1621 , - 1180 , - 4739 , - 2058 , - 3377 , - 3576 , - 2655 , - 614 , - 2573 , - 3412 , - 3131 , - 1730 , - 4329 , - 688 , - 1047 , - 286 , - 3525 , - 524 , - 1523 , - 1402 , - 161 , - 2920 , - 4559 , - 5078 , - 4477 , - 2756 , - 5035 , - 1074 , - 1113 , - 32 , - 2951 , - 4750 , - 309 , - 4988 , - 3427 , - 746 , - 2065 , - 2264 , - 1343 , - 4422 , - 1261 , - 2100 , - 1819 , - 418 , - 3017 , - 4496 , - 4855 , - 4094 , - 2213 , - 4332 , - 211 , - 90 , - 3969 , - 1608 , - 3247 , - 3766 , - 3165 , - 1444 , - 3723 , - 4882 , - 4921 , - 3840 , - 1639 , - 3438 , - 4117 , - 3676 , - 2115 , - 4554 , - 753 , - 952 , - 31 , - 3110 , - 5069 , - 788 , - 507 , - 4226 , - 1705 , - 3184 , - 3543 , - 2782 , - 901 , - 3020 , - 4019 , - 3898 , - 2657 , - 296 , - 1935 , - 2454 , - 1853 , - 132 , - 2411 , - 3570 , - 3609 , - 2528 , - 327 , - 2126 , - 2805 , - 2364 , - 803 , - 3242 , - 4561 , - 4760 , - 3839 , - 1798 , - 3757 , - 4596 , - 4315 , - 2914 , - 393 , - 1872 , - 2231 , - 1470 , - 4709 , - 1708 , - 2707 , - 2586 , - 1345 , - 4104 , - 623 , - 1142 , - 541 , - 3940 , - 1099 , - 2258 , - 2297 , - 1216 , - 4135 , - 814 , - 1493 , - 1052 , - 4611 , - 1930 , - 3249 , - 3448 , - 2527 , - 486 , - 2445 , - 3284 , - 3003 , - 1602 , - 4201 , - 560 , - 919 , - 158 , - 3397 , - 396 , - 1395 , - 1274 , - 33 , - 2792 , - 4431 , - 4950 , - 4349 , - 2628 , - 4907 , - 946 , - 985 , - 5024 , - 2823 , - 4622 , - 181 , - 4860 , - 3299 , - 618 , - 1937 , - 2136 , - 1215 , - 4294 , - 1133 , - 1972 , - 1691 , - 290 , - 2889 , - 4368 , - 4727 , - 3966 , - 2085 , - 4204 , - 83 , - 5082 , - 3841 , - 1480 , - 3119 , - 3638 , - 3037 , - 1316 , - 3595 , - 4754 , - 4793 , - 3712 , - 1511 , - 3310 , - 3989 , - 3548 , - 1987 , - 4426 , - 625 , - 824 , - 5023 , - 2982 , - 4941 , - 660 , - 379 , - 4098 , - 1577 , - 3056 , - 3415 , - 2654 , - 773 , - 2892 , - 3891 , - 3770 , - 2529 , - 168 , - 1807 , - 2326 , - 1725 , - 4 , - 2283 , - 3442 , - 3481 , - 2400 , - 199 , - 1998 , - 2677 , - 2236 , - 675 , - 3114 , - 4433 , - 4632 , - 3711 , - 1670 , - 3629 , - 4468 , - 4187 , - 2786 , - 265 , - 1744 , - 2103 , - 1342 , - 4581 , - 1580 , - 2579 , - 2458 , - 1217 , - 3976 , - 495 , - 1014 , - 413 , - 3812 , - 971 , - 2130 , - 2169 , - 1088 , - 4007 , - 686 , - 1365 , - 924 , - 4483 , - 1802 , - 3121 , - 3320 , - 2399 , - 358 , - 2317 , - 3156 , - 2875 , - 1474 , - 4073 , - 432 , - 791 , - 30 , - 3269 , - 268 , - 1267 , - 1146 , - 5025 , - 2664 , - 4303 , - 4822 , - 4221 , - 2500 , - 4779 , - 818 , - 857 , - 4896 , - 2695 , - 4494 , - 53 , - 4732 , - 3171 , - 490 , - 1809 , - 2008 , - 1087 , - 4166 , - 1005 , - 1844 , - 1563 , - 162 , - 2761 , - 4240 , - 4599 , - 3838 , - 1957 , - 4076 , - 5075 , - 4954 , - 3713 , - 1352 , - 2991 , - 3510 , - 2909 , - 1188 , - 3467 , - 4626 , - 4665 , - 3584 , - 1383 , - 3182 , - 3861 , - 3420 , - 1859 , - 4298 , - 497 , - 696 , - 4895 , - 2854 , - 4813 , - 532 , - 251 , - 3970 , - 1449 , - 2928 , - 3287 , - 2526 , - 645 , - 2764 , - 3763 , - 3642 , - 2401 , - 40 , - 1679 , - 2198 , - 1597 , - 4996 , - 2155 , - 3314 , - 3353 , - 2272 , - 71 , - 1870 , - 2549 , - 2108 , - 547 , - 2986 , - 4305 , - 4504 , - 3583 , - 1542 , - 3501 , - 4340 , - 4059 , - 2658 , - 137 , - 1616 , - 1975 , - 1214 , - 4453 , - 1452 , - 2451 , - 2330 , - 1089 , - 3848 , - 367 , - 886 , - 285 , - 3684 , - 843 , - 2002 , - 2041 , - 960 , - 3879 , - 558 , - 1237 , - 796 , - 4355 , - 1674 , - 2993 , - 3192 , - 2271 , - 230 , - 2189 , - 3028 , - 2747 , - 1346 , - 3945 , - 304 , - 663 , - 5022 , - 3141 , - 140 , - 1139 , - 1018 , - 4897 , - 2536 , - 4175 , - 4694 , - 4093 , - 2372 , - 4651 , - 690 , - 729 , - 4768 , - 2567 , - 4366 , - 5045 , - 4604 , - 3043 , - 362 , - 1681 , - 1880 , - 959 , - 4038 , - 877 , - 1716 , - 1435 , - 34 , - 2633 , - 4112 , - 4471 , - 3710 , - 1829 , - 3948 , - 4947 , - 4826 , - 3585 , - 1224 , - 2863 , - 3382 , - 2781 , - 1060 , - 3339 , - 4498 , - 4537 , - 3456 , - 1255 , - 3054 , - 3733 , - 3292 , - 1731 , - 4170 , - 369 , - 568 , - 4767 , - 2726 , - 4685 , - 404 , - 123 , - 3842 , - 1321 , - 2800 , - 3159 , - 2398 , - 517 , - 2636 , - 3635 , - 3514 , - 2273 , - 5032 , - 1551 , - 2070 , - 1469 , - 4868 , - 2027 , - 3186 , - 3225 , - 2144 , - 5063 , - 1742 , - 2421 , - 1980 , - 419 , - 2858 , - 4177 , - 4376 , - 3455 , - 1414 , - 3373 , - 4212 , - 3931 , - 2530 , - 9 , - 1488 , - 1847 , - 1086 , - 4325 , - 1324 , - 2323 , - 2202 , - 961 , - 3720 , - 239 , - 758 , - 157 , - 3556 , - 715 , - 1874 , - 1913 , - 832 , - 3751 , - 430 , - 1109 , - 668 , - 4227 , - 1546 , - 2865 , - 3064 , - 2143 , - 102 , - 2061 , - 2900 , - 2619 , - 1218 , - 3817 , - 176 , - 535 , - 4894 , - 3013 , - 12 , - 1011 , - 890 , - 4769 , - 2408 , - 4047 , - 4566 , - 3965 , - 2244 , - 4523 , - 562 , - 601 , - 4640 , - 2439 , - 4238 , - 4917 , - 4476 , - 2915 , - 234 , - 1553 , - 1752 , - 831 , - 3910 , - 749 , - 1588 , - 1307 , - 5026 , - 2505 , - 3984 , - 4343 , - 3582 , - 1701 , - 3820 , - 4819 , - 4698 , - 3457 , - 1096 , - 2735 , - 3254 , - 2653 , - 932 , - 3211 , - 4370 , - 4409 , - 3328 , - 1127 , - 2926 , - 3605 , - 3164 , - 1603 , - 4042 , - 241 , - 440 , - 4639 , - 2598 , - 4557 , - 276 , - 5115 , - 3714 , - 1193 , - 2672 , - 3031 , - 2270 , - 389 , - 2508 , - 3507 , - 3386 , - 2145 , - 4904 , - 1423 , - 1942 , - 1341 , - 4740 , - 1899 , - 3058 , - 3097 , - 2016 , - 4935 , - 1614 , - 2293 , - 1852 , - 291 , - 2730 , - 4049 , - 4248 , - 3327 , - 1286 , - 3245 , - 4084 , - 3803 , - 2402 , - 5001 , - 1360 , - 1719 , - 958 , - 4197 , - 1196 , - 2195 , - 2074 , - 833 , - 3592 , - 111 , - 630 , - 29 , - 3428 , - 587 , - 1746 , - 1785 , - 704 , - 3623 , - 302 , - 981 , - 540 , - 4099 , - 1418 , - 2737 , - 2936 , - 2015 , - 5094 , - 1933 , - 2772 , - 2491 , - 1090 , - 3689 , - 48 , - 407 , - 4766 , - 2885 , - 5004 , - 883 , - 762 , - 4641 , - 2280 , - 3919 , - 4438 , - 3837 , - 2116 , - 4395 , - 434 , - 473 , - 4512 , - 2311 , - 4110 , - 4789 , - 4348 , - 2787 , - 106 , - 1425 , - 1624 , - 703 , - 3782 , - 621 , - 1460 , - 1179 , - 4898 , - 2377 , - 3856 , - 4215 , - 3454 , - 1573 , - 3692 , - 4691 , - 4570 , - 3329 , - 968 , - 2607 , - 3126 , - 2525 , - 804 , - 3083 , - 4242 , - 4281 , - 3200 , - 999 , - 2798 , - 3477 , - 3036 , - 1475 , - 3914 , - 113 , - 312 , - 4511 , - 2470 , - 4429 , - 148 , - 4987 , - 3586 , - 1065 , - 2544 , - 2903 , - 2142 , - 261 , - 2380 , - 3379 , - 3258 , - 2017 , - 4776 , - 1295 , - 1814 , - 1213 , - 4612 , - 1771 , - 2930 , - 2969 , - 1888 , - 4807 , - 1486 , - 2165 , - 1724 , - 163 , - 2602 , - 3921 , - 4120 , - 3199 , - 1158 , - 3117 , - 3956 , - 3675 , - 2274 , - 4873 , - 1232 , - 1591 , - 830 , - 4069 , - 1068 , - 2067 , - 1946 , - 705 , - 3464 , - 5103 , - 502 , - 5021 , - 3300 , - 459 , - 1618 , - 1657 , - 576 , - 3495 , - 174 , - 853 , - 412 , - 3971 , - 1290 , - 2609 , - 2808 , - 1887 , - 4966 , - 1805 , - 2644 , - 2363 , - 962 , - 3561 , - 5040 , - 279 , - 4638 , - 2757 , - 4876 , - 755 , - 634 , - 4513 , - 2152 , - 3791 , - 4310 , - 3709 , - 1988 , - 4267 , - 306 , - 345 , - 4384 , - 2183 , - 3982 , - 4661 , - 4220 , - 2659 , - 5098 , - 1297 , - 1496 , - 575 , - 3654 , - 493 , - 1332 , - 1051 , - 4770 , - 2249 , - 3728 , - 4087 , - 3326 , - 1445 , - 3564 , - 4563 , - 4442 , - 3201 , - 840 , - 2479 , - 2998 , - 2397 , - 676 , - 2955 , - 4114 , - 4153 , - 3072 , - 871 , - 2670 , - 3349 , - 2908 , - 1347 , - 3786 , - 5105 , - 184 , - 4383 , - 2342 , - 4301 , - 20 , - 4859 , - 3458 , - 937 , - 2416 , - 2775 , - 2014 , - 133 , - 2252 , - 3251 , - 3130 , - 1889 , - 4648 , - 1167 , - 1686 , - 1085 , - 4484 , - 1643 , - 2802 , - 2841 , - 1760 , - 4679 , - 1358 , - 2037 , - 1596 , - 35 , - 2474 , - 3793 , - 3992 , - 3071 , - 1030 , - 2989 , - 3828 , - 3547 , - 2146 , - 4745 , - 1104 , - 1463 , - 702 , - 3941 , - 940 , - 1939 , - 1818 , - 577 , - 3336 , - 4975 , - 374 , - 4893 , - 3172 , - 331 , - 1490 , - 1529 , - 448 , - 3367 , - 46 , - 725 , - 284 , - 3843 , - 1162 , - 2481 , - 2680 , - 1759 , - 4838 , - 1677 , - 2516 , - 2235 , - 834 , - 3433 , - 4912 , - 151 , - 4510 , - 2629 , - 4748 , - 627 , - 506 , - 4385 , - 2024 , - 3663 , - 4182 , - 3581 , - 1860 , - 4139 , - 178 , - 217 , - 4256 , - 2055 , - 3854 , - 4533 , - 4092 , - 2531 , - 4970 , - 1169 , - 1368 , - 447 , - 3526 , - 365 , - 1204 , - 923 , - 4642 , - 2121 , - 3600 , - 3959 , - 3198 , - 1317 , - 3436 , - 4435 , - 4314 , - 3073 , - 712 , - 2351 , - 2870 , - 2269 , - 548 , - 2827 , - 3986 , - 4025 , - 2944 , - 743 , - 2542 , - 3221 , - 2780 , - 1219 , - 3658 , - 4977 , - 56 , - 4255 , - 2214 , - 4173 , - 5012 , - 4731 , - 3330 , - 809 , - 2288 , - 2647 , - 1886 , - 5 , - 2124 , - 3123 , - 3002 , - 1761 , - 4520 , - 1039 , - 1558 , - 957 , - 4356 , - 1515 , - 2674 , - 2713 , - 1632 , - 4551 , - 1230 , - 1909 , - 1468 , - 5027 , - 2346 , - 3665 , - 3864 , - 2943 , - 902 , - 2861 , - 3700 , - 3419 , - 2018 , - 4617 , - 976 , - 1335 , - 574 , - 3813 , - 812 , - 1811 , - 1690 , - 449 , - 3208 , - 4847 , - 246 , - 4765 , - 3044 , - 203 , - 1362 , - 1401 , - 320 , - 3239 , - 5038 , - 597 , - 156 , - 3715 , - 1034 , - 2353 , - 2552 , - 1631 , - 4710 , - 1549 , - 2388 , - 2107 , - 706 , - 3305 , - 4784 , - 23 , - 4382 , - 2501 , - 4620 , - 499 , - 378 , - 4257 , - 1896 , - 3535 , - 4054 , - 3453 , - 1732 , - 4011 , - 50 , - 89 , - 4128 , - 1927 , - 3726 , - 4405 , - 3964 , - 2403 , - 4842 , - 1041 , - 1240 , - 319 , - 3398 , - 237 , - 1076 , - 795 , - 4514 , - 1993 , - 3472 , - 3831 , - 3070 , - 1189 , - 3308 , - 4307 , - 4186 , - 2945 , - 584 , - 2223 , - 2742 , - 2141 , - 420 , - 2699 , - 3858 , - 3897 , - 2816 , - 615 , - 2414 , - 3093 , - 2652 , - 1091 , - 3530 , - 4849 , - 5048 , - 4127 , - 2086 , - 4045 , - 4884 , - 4603 , - 3202 , - 681 , - 2160 , - 2519 , - 1758 , - 4997 , - 1996 , - 2995 , - 2874 , - 1633 , - 4392 , - 911 , - 1430 , - 829 , - 4228 , - 1387 , - 2546 , - 2585 , - 1504 , - 4423 , - 1102 , - 1781 , - 1340 , - 4899 , - 2218 , - 3537 , - 3736 , - 2815 , - 774 , - 2733 , - 3572 , - 3291 , - 1890 , - 4489 , - 848 , - 1207 , - 446 , - 3685 , - 684 , - 1683 , - 1562 , - 321 , - 3080 , - 4719 , - 118 , - 4637 , - 2916 , - 75 , - 1234 , - 1273 , - 192 , - 3111 , - 4910 , - 469 , - 28 , - 3587 , - 906 , - 2225 , - 2424 , - 1503 , - 4582 , - 1421 , - 2260 , - 1979 , - 578 , - 3177 , - 4656 , - 5015 , - 4254 , - 2373 , - 4492 , - 371 , - 250 , - 4129 , - 1768 , - 3407 , - 3926 , - 3325 , - 1604 , - 3883 , - 5042 , - 5081 , - 4000 , - 1799 , - 3598 , - 4277 , - 3836 , - 2275 , - 4714 , - 913 , - 1112 , - 191 , - 3270 , - 109 , - 948 , - 667 , - 4386 , - 1865 , - 3344 , - 3703 , - 2942 , - 1061 , - 3180 , - 4179 , - 4058 , - 2817 , - 456 , - 2095 , - 2614 , - 2013 , - 292 , - 2571 , - 3730 , - 3769 , - 2688 , - 487 , - 2286 , - 2965 , - 2524 , - 963 , - 3402 , - 4721 , - 4920 , - 3999 , - 1958 , - 3917 , - 4756 , - 4475 , - 3074 , - 553 , - 2032 , - 2391 , - 1630 , - 4869 , - 1868 , - 2867 , - 2746 , - 1505 , - 4264 , - 783 , - 1302 , - 701 , - 4100 , - 1259 , - 2418 , - 2457 , - 1376 , - 4295 , - 974 , - 1653 , - 1212 , - 4771 , - 2090 , - 3409 , - 3608 , - 2687 , - 646 , - 2605 , - 3444 , - 3163 , - 1762 , - 4361 , - 720 , - 1079 , - 318 , - 3557 , - 556 , - 1555 , - 1434 , - 193 , - 2952 , - 4591 , - 5110 , - 4509 , - 2788 , - 5067 , - 1106 , - 1145 , - 64 , - 2983 , - 4782 , - 341 , - 5020 , - 3459 , - 778 , - 2097 , - 2296 , - 1375 , - 4454 , - 1293 , - 2132 , - 1851 , - 450 , - 3049 , - 4528 , - 4887 , - 4126 , - 2245 , - 4364 , - 243 , - 122 , - 4001 , - 1640 , - 3279 , - 3798 , - 3197 , - 1476 , - 3755 , - 4914 , - 4953 , - 3872 , - 1671 , - 3470 , - 4149 , - 3708 , - 2147 , - 4586 , - 785 , - 984 , - 63 , - 3142 , - 5101 , - 820 , - 539 , - 4258 , - 1737 , - 3216 , - 3575 , - 2814 , - 933 , - 3052 , - 4051 , - 3930 , - 2689 , - 328 , - 1967 , - 2486 , - 1885 , - 164 , - 2443 , - 3602 , - 3641 , - 2560 , - 359 , - 2158 , - 2837 , - 2396 , - 835 , - 3274 , - 4593 , - 4792 , - 3871 , - 1830 , - 3789 , - 4628 , - 4347 , - 2946 , - 425 , - 1904 , - 2263 , - 1502 , - 4741 , - 1740 , - 2739 , - 2618 , - 1377 , - 4136 , - 655 , - 1174 , - 573 , - 3972 , - 1131 , - 2290 , - 2329 , - 1248 , - 4167 , - 846 , - 1525 , - 1084 , - 4643 , - 1962 , - 3281 , - 3480 , - 2559 , - 518 , - 2477 , - 3316 , - 3035 , - 1634 , - 4233 , - 592 , - 951 , - 190 , - 3429 , - 428 , - 1427 , - 1306 , - 65 , - 2824 , - 4463 , - 4982 , - 4381 , - 2660 , - 4939 , - 978 , - 1017 , - 5056 , - 2855 , - 4654 , - 213 , - 4892 , - 3331 , - 650 , - 1969 , - 2168 , - 1247 , - 4326 , - 1165 , - 2004 , - 1723 , - 322 , - 2921 , - 4400 , - 4759 , - 3998 , - 2117 , - 4236 , - 115 , - 5114 , - 3873 , - 1512 , - 3151 , - 3670 , - 3069 , - 1348 , - 3627 , - 4786 , - 4825 , - 3744 , - 1543 , - 3342 , - 4021 , - 3580 , - 2019 , - 4458 , - 657 , - 856 , - 5055 , - 3014 , - 4973 , - 692 , - 411 , - 4130 , - 1609 , - 3088 , - 3447 , - 2686 , - 805 , - 2924 , - 3923 , - 3802 , - 2561 , - 200 , - 1839 , - 2358 , - 1757 , - 36 , - 2315 , - 3474 , - 3513 , - 2432 , - 231 , - 2030 , - 2709 , - 2268 , - 707 , - 3146 , - 4465 , - 4664 , - 3743 , - 1702 , - 3661 , - 4500 , - 4219 , - 2818 , - 297 , - 1776 , - 2135 , - 1374 , - 4613 , - 1612 , - 2611 , - 2490 , - 1249 , - 4008 , - 527 , - 1046 , - 445 , - 3844 , - 1003 , - 2162 , - 2201 , - 1120 , - 4039 , - 718 , - 1397 , - 956 , - 4515 , - 1834 , - 3153 , - 3352 , - 2431 , - 390 , - 2349 , - 3188 , - 2907 , - 1506 , - 4105 , - 464 , - 823 , - 62 , - 3301 , - 300 , - 1299 , - 1178 , - 5057 , - 2696 , - 4335 , - 4854 , - 4253 , - 2532 , - 4811 , - 850 , - 889 , - 4928 , - 2727 , - 4526 , - 85 , - 4764 , - 3203 , - 522 , - 1841 , - 2040 , - 1119 , - 4198 , - 1037 , - 1876 , - 1595 , - 194 , - 2793 , - 4272 , - 4631 , - 3870 , - 1989 , - 4108 , - 5107 , - 4986 , - 3745 , - 1384 , - 3023 , - 3542 , - 2941 , - 1220 , - 3499 , - 4658 , - 4697 , - 3616 , - 1415 , - 3214 , - 3893 , - 3452 , - 1891 , - 4330 , - 529 , - 728 , - 4927 , - 2886 , - 4845 , - 564 , - 283 , - 4002 , - 1481 , - 2960 , - 3319 , - 2558 , - 677 , - 2796 , - 3795 , - 3674 , - 2433 , - 72 , - 1711 , - 2230 , - 1629 , - 5028 , - 2187 , - 3346 , - 3385 , - 2304 , - 103 , - 1902 , - 2581 , - 2140 , - 579 , - 3018 , - 4337 , - 4536 , - 3615 , - 1574 , - 3533 , - 4372 , - 4091 , - 2690 , - 169 , - 1648 , - 2007 , - 1246 , - 4485 , - 1484 , - 2483 , - 2362 , - 1121 , - 3880 , - 399 , - 918 , - 317 , - 3716 , - 875 , - 2034 , - 2073 , - 992 , - 3911 , - 590 , - 1269 , - 828 , - 4387 , - 1706 , - 3025 , - 3224 , - 2303 , - 262 , - 2221 , - 3060 , - 2779 , - 1378 , - 3977 , - 336 , - 695 , - 5054 , - 3173 , - 172 , - 1171 , - 1050 , - 4929 , - 2568 , - 4207 , - 4726 , - 4125 , - 2404 , - 4683 , - 722 , - 761 , - 4800 , - 2599 , - 4398 , - 5077 , - 4636 , - 3075 , - 394 , - 1713 , - 1912 , - 991 , - 4070 , - 909 , - 1748 , - 1467 , - 66 , - 2665 , - 4144 , - 4503 , - 3742 , - 1861 , - 3980 , - 4979 , - 4858 , - 3617 , - 1256 , - 2895 , - 3414 , - 2813 , - 1092 , - 3371 , - 4530 , - 4569 , - 3488 , - 1287 , - 3086 , - 3765 , - 3324 , - 1763 , - 4202 , - 401 , - 600 , - 4799 , - 2758 , - 4717 , - 436 , - 155 , - 3874 , - 1353 , - 2832 , - 3191 , - 2430 , - 549 , - 2668 , - 3667 , - 3546 , - 2305 , - 5064 , - 1583 , - 2102 , - 1501 , - 4900 , - 2059 , - 3218 , - 3257 , - 2176 , - 5095 , - 1774 , - 2453 , - 2012 , - 451 , - 2890 , - 4209 , - 4408 , - 3487 , - 1446 , - 3405 , - 4244 , - 3963 , - 2562 , - 41 , - 1520 , - 1879 , - 1118 , - 4357 , - 1356 , - 2355 , - 2234 , - 993 , - 3752 , - 271 , - 790 , - 189 , - 3588 , - 747 , - 1906 , - 1945 , - 864 , - 3783 , - 462 , - 1141 , - 700 , - 4259 , - 1578 , - 2897 , - 3096 , - 2175 , - 134 , - 2093 , - 2932 , - 2651 , - 1250 , - 3849 , - 208 , - 567 , - 4926 , - 3045 , - 44 , - 1043 , - 922 , - 4801 , - 2440 , - 4079 , - 4598 , - 3997 , - 2276 , - 4555 , - 594 , - 633 , - 4672 , - 2471 , - 4270 , - 4949 , - 4508 , - 2947 , - 266 , - 1585 , - 1784 , - 863 , - 3942 , - 781 , - 1620 , - 1339 , - 5058 , - 2537 , - 4016 , - 4375 , - 3614 , - 1733 , - 3852 , - 4851 , - 4730 , - 3489 , - 1128 , - 2767 , - 3286 , - 2685 , - 964 , - 3243 , - 4402 , - 4441 , - 3360 , - 1159 , - 2958 , - 3637 , - 3196 , - 1635 , - 4074 , - 273 , - 472 , - 4671 , - 2630 , - 4589 , - 308 , - 27 , - 3746 , - 1225 , - 2704 , - 3063 , - 2302 , - 421 , - 2540 , - 3539 , - 3418 , - 2177 , - 4936 , - 1455 , - 1974 , - 1373 , - 4772 , - 1931 , - 3090 , - 3129 , - 2048 , - 4967 , - 1646 , - 2325 , - 1884 , - 323 , - 2762 , - 4081 , - 4280 , - 3359 , - 1318 , - 3277 , - 4116 , - 3835 , - 2434 , - 5033 , - 1392 , - 1751 , - 990 , - 4229 , - 1228 , - 2227 , - 2106 , - 865 , - 3624 , - 143 , - 662 , - 61 , - 3460 , - 619 , - 1778 , - 1817 , - 736 , - 3655 , - 334 , - 1013 , - 572 , - 4131 , - 1450 , - 2769 , - 2968 , - 2047 , - 6 , - 1965 , - 2804 , - 2523 , - 1122 , - 3721 , - 80 , - 439 , - 4798 , - 2917 , - 5036 , - 915 , - 794 , - 4673 , - 2312 , - 3951 , - 4470 , - 3869 , - 2148 , - 4427 , - 466 , - 505 , - 4544 , - 2343 , - 4142 , - 4821 , - 4380 , - 2819 , - 138 , - 1457 , - 1656 , - 735 , - 3814 , - 653 , - 1492 , - 1211 , - 4930 , - 2409 , - 3888 , - 4247 , - 3486 , - 1605 , - 3724 , - 4723 , - 4602 , - 3361 , - 1000 , - 2639 , - 3158 , - 2557 , - 836 , - 3115 , - 4274 , - 4313 , - 3232 , - 1031 , - 2830 , - 3509 , - 3068 , - 1507 , - 3946 , - 145 , - 344 , - 4543 , - 2502 , - 4461 , - 180 , - 5019 , - 3618 , - 1097 , - 2576 , - 2935 , - 2174 , - 293 , - 2412 , - 3411 , - 3290 , - 2049 , - 4808 , - 1327 , - 1846 , - 1245 , - 4644 , - 1803 , - 2962 , - 3001 , - 1920 , - 4839 , - 1518 , - 2197 , - 1756 , - 195 , - 2634 , - 3953 , - 4152 , - 3231 , - 1190 , - 3149 , - 3988 , - 3707 , - 2306 , - 4905 , - 1264 , - 1623 , - 862 , - 4101 , - 1100 , - 2099 , - 1978 , - 737 , - 3496 , - 15 , - 534 , - 5053 , - 3332 , - 491 , - 1650 , - 1689 , - 608 , - 3527 , - 206 , - 885 , - 444 , - 4003 , - 1322 , - 2641 , - 2840 , - 1919 , - 4998 , - 1837 , - 2676 , - 2395 , - 994 , - 3593 , - 5072 , - 311 , - 4670 , - 2789 , - 4908 , - 787 , - 666 , - 4545 , - 2184 , - 3823 , - 4342 , - 3741 , - 2020 , - 4299 , - 338 , - 377 , - 4416 , - 2215 , - 4014 , - 4693 , - 4252 , - 2691 , - 10 , - 1329 , - 1528 , - 607 , - 3686 , - 525 , - 1364 , - 1083 , - 4802 , - 2281 , - 3760 , - 4119 , - 3358 , - 1477 , - 3596 , - 4595 , - 4474 , - 3233 , - 872 , - 2511 , - 3030 , - 2429 , - 708 , - 2987 , - 4146 , - 4185 , - 3104 , - 903 , - 2702 , - 3381 , - 2940 , - 1379 , - 3818 , - 17 , - 216 , - 4415 , - 2374 , - 4333 , - 52 , - 4891 , - 3490 , - 969 , - 2448 , - 2807 , - 2046 , - 165 , - 2284 , - 3283 , - 3162 , - 1921 , - 4680 , - 1199 , - 1718 , - 1117 , - 4516 , - 1675 , - 2834 , - 2873 , - 1792 , - 4711 , - 1390 , - 2069 , - 1628 , - 67 , - 2506 , - 3825 , - 4024 , - 3103 , - 1062 , - 3021 , - 3860 , - 3579 , - 2178 , - 4777 , - 1136 , - 1495 , - 734 , - 3973 , - 972 , - 1971 , - 1850 , - 609 , - 3368 , - 5007 , - 406 , - 4925 , - 3204 , - 363 , - 1522 , - 1561 , - 480 , - 3399 , - 78 , - 757 , - 316 , - 3875 , - 1194 , - 2513 , - 2712 , - 1791 , - 4870 , - 1709 , - 2548 , - 2267 , - 866 , - 3465 , - 4944 , - 183 , - 4542 , - 2661 , - 4780 , - 659 , - 538 , - 4417 , - 2056 , - 3695 , - 4214 , - 3613 , - 1892 , - 4171 , - 210 , - 249 , - 4288 , - 2087 , - 3886 , - 4565 , - 4124 , - 2563 , - 5002 , - 1201 , - 1400 , - 479 , - 3558 , - 397 , - 1236 , - 955 , - 4674 , - 2153 , - 3632 , - 3991 , - 3230 , - 1349 , - 3468 , - 4467 , - 4346 , - 3105 , - 744 , - 2383 , - 2902 , - 2301 , - 580 , - 2859 , - 4018 , - 4057 , - 2976 , - 775 , - 2574 , - 3253 , - 2812 , - 1251 , - 3690 , - 5009 , - 88 , - 4287 , - 2246 , - 4205 , - 5044 , - 4763 , - 3362 , - 841 , - 2320 , - 2679 , - 1918 , - 37 , - 2156 , - 3155 , - 3034 , - 1793 , - 4552 , - 1071 , - 1590 , - 989 , - 4388 , - 1547 , - 2706 , - 2745 , - 1664 , - 4583 , - 1262 , - 1941 , - 1500 , - 5059 , - 2378 , - 3697 , - 3896 , - 2975 , - 934 , - 2893 , - 3732 , - 3451 , - 2050 , - 4649 , - 1008 , - 1367 , - 606 , - 3845 , - 844 , - 1843 , - 1722 , - 481 , - 3240 , - 4879 , - 278 , - 4797 , - 3076 , - 235 , - 1394 , - 1433 , - 352 , - 3271 , - 5070 , - 629 , - 188 , - 3747 , - 1066 , - 2385 , - 2584 , - 1663 , - 4742 , - 1581 , - 2420 , - 2139 , - 738 , - 3337 , - 4816 , - 55 , - 4414 , - 2533 , - 4652 , - 531 , - 410 , - 4289 , - 1928 , - 3567 , - 4086 , - 3485 , - 1764 , - 4043 , - 82 , - 121 , - 4160 , - 1959 , - 3758 , - 4437 , - 3996 , - 2435 , - 4874 , - 1073 , - 1272 , - 351 , - 3430 , - 269 , - 1108 , - 827 , - 4546 , - 2025 , - 3504 , - 3863 , - 3102 , - 1221 , - 3340 , - 4339 , - 4218 , - 2977 , - 616 , - 2255 , - 2774 , - 2173 , - 452 , - 2731 , - 3890 , - 3929 , - 2848 , - 647 , - 2446 , - 3125 , - 2684 , - 1123 , - 3562 , - 4881 , - 5080 , - 4159 , - 2118 , - 4077 , - 4916 , - 4635 , - 3234 , - 713 , - 2192 , - 2551 , - 1790 , - 5029 , - 2028 , - 3027 , - 2906 , - 1665 , - 4424 , - 943 , - 1462 , - 861 , - 4260 , - 1419 , - 2578 , - 2617 , - 1536 , - 4455 , - 1134 , - 1813 , - 1372 , - 4931 , - 2250 , - 3569 , - 3768 , - 2847 , - 806 , - 2765 , - 3604 , - 3323 , - 1922 , - 4521 , - 880 , - 1239 , - 478 , - 3717 , - 716 , - 1715 , - 1594 , - 353 , - 3112 , - 4751 , - 150 , - 4669 , - 2948 , - 107 , - 1266 , - 1305 , - 224 , - 3143 , - 4942 , - 501 , - 60 , - 3619 , - 938 , - 2257 , - 2456 , - 1535 , - 4614 , - 1453 , - 2292 , - 2011 , - 610 , - 3209 , - 4688 , - 5047 , - 4286 , - 2405 , - 4524 , - 403 , - 282 , - 4161 , - 1800 , - 3439 , - 3958 , - 3357 , - 1636 , - 3915 , - 5074 , - 5113 , - 4032 , - 1831 , - 3630 , - 4309 , - 3868 , - 2307 , - 4746 , - 945 , - 1144 , - 223 , - 3302 , - 141 , - 980 , - 699 , - 4418 , - 1897 , - 3376 , - 3735 , - 2974 , - 1093 , - 3212 , - 4211 , - 4090 , - 2849 , - 488 , - 2127 , - 2646 , - 2045 , - 324 , - 2603 , - 3762 , - 3801 , - 2720 , - 519 , - 2318 , - 2997 , - 2556 , - 995 , - 3434 , - 4753 , - 4952 , - 4031 , - 1990 , - 3949 , - 4788 , - 4507 , - 3106 , - 585 , - 2064 , - 2423 , - 1662 , - 4901 , - 1900 , - 2899 , - 2778 , - 1537 , - 4296 , - 815 , - 1334 , - 733 , - 4132 , - 1291 , - 2450 , - 2489 , - 1408 , - 4327 , - 1006 , - 1685 , - 1244 , - 4803 , - 2122 , - 3441 , - 3640 , - 2719 , - 678 , - 2637 , - 3476 , - 3195 , - 1794 , - 4393 , - 752 , - 1111 , - 350 , - 3589 , - 588 , - 1587 , - 1466 , - 225 , - 2984 , - 4623 , - 22 , - 4541 , - 2820 , - 5099 , - 1138 , - 1177 , - 96 , - 3015 , - 4814 , - 373 , - 5052 , - 3491 , - 810 , - 2129 , - 2328 , - 1407 , - 4486 , - 1325 , - 2164 , - 1883 , - 482 , - 3081 , - 4560 , - 4919 , - 4158 , - 2277 , - 4396 , - 275 , - 154 , - 4033 , - 1672 , - 3311 , - 3830 , - 3229 , - 1508 , - 3787 , - 4946 , - 4985 , - 3904 , - 1703 , - 3502 , - 4181 , - 3740 , - 2179 , - 4618 , - 817 , - 1016 , - 95 , - 3174 , - 13 , - 852 , - 571 , - 4290 , - 1769 , - 3248 , - 3607 , - 2846 , - 965 , - 3084 , - 4083 , - 3962 , - 2721 , - 360 , - 1999 , - 2518 , - 1917 , - 196 , - 2475 , - 3634 , - 3673 , - 2592 , - 391 , - 2190 , - 2869 , - 2428 , - 867 , - 3306 , - 4625 , - 4824 , - 3903 , - 1862 , - 3821 , - 4660 , - 4379 , - 2978 , - 457 , - 1936 , - 2295 , - 1534 , - 4773 , - 1772 , - 2771 , - 2650 , - 1409 , - 4168 , - 687 , - 1206 , - 605 , - 4004 , - 1163 , - 2322 , - 2361 , - 1280 , - 4199 , - 878 , - 1557 , - 1116 , - 4675 , - 1994 , - 3313 , - 3512 , - 2591 , - 550 , - 2509 , - 3348 , - 3067 , - 1666 , - 4265 , - 624 , - 983 , - 222 , - 3461 , - 460 , - 1459 , - 1338 , - 97 , - 2856 , - 4495 , - 5014 , - 4413 , - 2692 , - 4971 , - 1010 , - 1049 , - 5088 , - 2887 , - 4686 , - 245 , - 4924 , - 3363 , - 682 , - 2001 , - 2200 , - 1279 , - 4358 , - 1197 , - 2036 , - 1755 , - 354 , - 2953 , - 4432 , - 4791 , - 4030 , - 2149 , - 4268 , - 147 , - 26 , - 3905 , - 1544 , - 3183 , - 3702 , - 3101 , - 1380 , - 3659 , - 4818 , - 4857 , - 3776 , - 1575 , - 3374 , - 4053 , - 3612 , - 2051 , - 4490 , - 689 , - 888 , - 5087 , - 3046 , - 5005 , - 724 , - 443 , - 4162 , - 1641 , - 3120 , - 3479 , - 2718 , - 837 , - 2956 , - 3955 , - 3834 , - 2593 , - 232 , - 1871 , - 2390 , - 1789 , - 68 , - 2347 , - 3506 , - 3545 , - 2464 , - 263 , - 2062 , - 2741 , - 2300 , - 739 , - 3178 , - 4497 , - 4696 , - 3775 , - 1734 , - 3693 , - 4532 , - 4251 , - 2850 , - 329 , - 1808 , - 2167 , - 1406 , - 4645 , - 1644 , - 2643 , - 2522 , - 1281 , - 4040 , - 559 , - 1078 , - 477 , - 3876 , - 1035 , - 2194 , - 2233 , - 1152 , - 4071 , - 750 , - 1429 , - 988 , - 4547 , - 1866 , - 3185 , - 3384 , - 2463 , - 422 , - 2381 , - 3220 , - 2939 , - 1538 , - 4137 , - 496 , - 855 , - 94 , - 3333 , - 332 , - 1331 , - 1210 , - 5089 , - 2728 , - 4367 , - 4886 , - 4285 , - 2564 , - 4843 , - 882 , - 921 , - 4960 , - 2759 , - 4558 , - 117 , - 4796 , - 3235 , - 554 , - 1873 , - 2072 , - 1151 , - 4230 , - 1069 , - 1908 , - 1627 , - 226 , - 2825 , - 4304 , - 4663 , - 3902 , - 2021 , - 4140 , - 19 , - 5018 , - 3777 , - 1416 , - 3055 , - 3574 , - 2973 , - 1252 , - 3531 , - 4690 , - 4729 , - 3648 , - 1447 , - 3246 , - 3925 , - 3484 , - 1923 , - 4362 , - 561 , - 760 , - 4959 , - 2918 , - 4877 , - 596 , - 315 , - 4034 , - 1513 , - 2992 , - 3351 , - 2590 , - 709 , - 2828 , - 3827 , - 3706 , - 2465 , - 104 , - 1743 , - 2262 , - 1661 , - 5060 , - 2219 , - 3378 , - 3417 , - 2336 , - 135 , - 1934 , - 2613 , - 2172 , - 611 , - 3050 , - 4369 , - 4568 , - 3647 , - 1606 , - 3565 , - 4404 , - 4123 , - 2722 , - 201 , - 1680 , - 2039 , - 1278 , - 4517 , - 1516 , - 2515 , - 2394 , - 1153 , - 3912 , - 431 , - 950 , - 349 , - 3748 , - 907 , - 2066 , - 2105 , - 1024 , - 3943 , - 622 , - 1301 , - 860 , - 4419 , - 1738 , - 3057 , - 3256 , - 2335 , - 294 , - 2253 , - 3092 , - 2811 , - 1410 , - 4009 , - 368 , - 727 , - 5086 , - 3205 , - 204 , - 1203 , - 1082 , - 4961 , - 2600 , - 4239 , - 4758 , - 4157 , - 2436 , - 4715 , - 754 , - 793 , - 4832 , - 2631 , - 4430 , - 5109 , - 4668 , - 3107 , - 426 , - 1745 , - 1944 , - 1023 , - 4102 , - 941 , - 1780 , - 1499 , - 98 , - 2697 , - 4176 , - 4535 , - 3774 , - 1893 , - 4012 , - 5011 , - 4890 , - 3649 , - 1288 , - 2927 , - 3446 , - 2845 , - 1124 , - 3403 , - 4562 , - 4601 , - 3520 , - 1319 , - 3118 , - 3797 , - 3356 , - 1795 , - 4234 , - 433 , - 632 , - 4831 , - 2790 , - 4749 , - 468 , - 187 , - 3906 , - 1385 , - 2864 , - 3223 , - 2462 , - 581 , - 2700 , - 3699 , - 3578 , - 2337 , - 5096 , - 1615 , - 2134 , - 1533 , - 4932 , - 2091 , - 3250 , - 3289 , - 2208 , - 7 , - 1806 , - 2485 , - 2044 , - 483 , - 2922 , - 4241 , - 4440 , - 3519 , - 1478 , - 3437 , - 4276 , - 3995 , - 2594 , - 73 , - 1552 , - 1911 , - 1150 , - 4389 , - 1388 , - 2387 , - 2266 , - 1025 , - 3784 , - 303 , - 822 , - 221 , - 3620 , - 779 , - 1938 , - 1977 , - 896 , - 3815 , - 494 , - 1173 , - 732 , - 4291 , - 1610 , - 2929 , - 3128 , - 2207 , - 166 , - 2125 , - 2964 , - 2683 , - 1282 , - 3881 , - 240 , - 599 , - 4958 , - 3077 , - 76 , - 1075 , - 954 , - 4833 , - 2472 , - 4111 , - 4630 , - 4029 , - 2308 , - 4587 , - 626 , - 665 , - 4704 , - 2503 , - 4302 , - 4981 , - 4540 , - 2979 , - 298 , - 1617 , - 1816 , - 895 , - 3974 , - 813 , - 1652 , - 1371 , - 5090 , - 2569 , - 4048 , - 4407 , - 3646 , - 1765 , - 3884 , - 4883 , - 4762 , - 3521 , - 1160 , - 2799 , - 3318 , - 2717 , - 996 , - 3275 , - 4434 , - 4473 , - 3392 , - 1191 , - 2990 , - 3669 , - 3228 , - 1667 , - 4106 , - 305 , - 504 , - 4703 , - 2662 , - 4621 , - 340 , - 59 , - 3778 , - 1257 , - 2736 , - 3095 , - 2334 , - 453 , - 2572 , - 3571 , - 3450 , - 2209 , - 4968 , - 1487 , - 2006 , - 1405 , - 4804 , - 1963 , - 3122 , - 3161 , - 2080 , - 4999 , - 1678 , - 2357 , - 1916 , - 355 , - 2794 , - 4113 , - 4312 , - 3391 , - 1350 , - 3309 , - 4148 , - 3867 , - 2466 , - 5065 , - 1424 , - 1783 , - 1022 , - 4261 , - 1260 , - 2259 , - 2138 , - 897 , - 3656 , - 175 , - 694 , - 93 , - 3492 , - 651 , - 1810 , - 1849 , - 768 , - 3687 , - 366 , - 1045 , - 604 , - 4163 , - 1482 , - 2801 , - 3000 , - 2079 , - 38 , - 1997 , - 2836 , - 2555 , - 1154 , - 3753 , - 112 , - 471 , - 4830 , - 2949 , - 5068 , - 947 , - 826 , - 4705 , - 2344 , - 3983 , - 4502 , - 3901 , - 2180 , - 4459 , - 498 , - 537 , - 4576 , - 2375 , - 4174 , - 4853 , - 4412 , - 2851 , - 170 , - 1489 , - 1688 , - 767 , - 3846 , - 685 , - 1524 , - 1243 , - 4962 , - 2441 , - 3920 , - 4279 , - 3518 , - 1637 , - 3756 , - 4755 , - 4634 , - 3393 , - 1032 , - 2671 , - 3190 , - 2589 , - 868 , - 3147 , - 4306 , - 4345 , - 3264 , - 1063 , - 2862 , - 3541 , - 3100 , - 1539 , - 3978 , - 177 , - 376 , - 4575 , - 2534 , - 4493 , - 212 , - 5051 , - 3650 , - 1129 , - 2608 , - 2967 , - 2206 , - 325 , - 2444 , - 3443 , - 3322 , - 2081 , - 4840 , - 1359 , - 1878 , - 1277 , - 4676 , - 1835 , - 2994 , - 3033 , - 1952 , - 4871 , - 1550 , - 2229 , - 1788 , - 227 , - 2666 , - 3985 , - 4184 , - 3263 , - 1222 , - 3181 , - 4020 , - 3739 , - 2338 , - 4937 , - 1296 , - 1655 , - 894 , - 4133 , - 1132 , - 2131 , - 2010 , - 769 , - 3528 , - 47 , - 566 , - 5085 , - 3364 , - 523 , - 1682 , - 1721 , - 640 , - 3559 , - 238 , - 917 , - 476 , - 4035 , - 1354 , - 2673 , - 2872 , - 1951 , - 5030 , - 1869 , - 2708 , - 2427 , - 1026 , - 3625 , - 5104 , - 343 , - 4702 , - 2821 , - 4940 , - 819 , - 698 , - 4577 , - 2216 , - 3855 , - 4374 , - 3773 , - 2052 , - 4331 , - 370 , - 409 , - 4448 , - 2247 , - 4046 , - 4725 , - 4284 , - 2723 , - 42 , - 1361 , - 1560 , - 639 , - 3718 , - 557 , - 1396 , - 1115 , - 4834 , - 2313 , - 3792 , - 4151 , - 3390 , - 1509 , - 3628 , - 4627 , - 4506 , - 3265 , - 904 , - 2543 , - 3062 , - 2461 , - 740 , - 3019 , - 4178 , - 4217 , - 3136 , - 935 , - 2734 , - 3413 , - 2972 , - 1411 , - 3850 , - 49 , - 248 , - 4447 , - 2406 , - 4365 , - 84 , - 4923 , - 3522 , - 1001 , - 2480 , - 2839 , - 2078 , - 197 , - 2316 , - 3315 , - 3194 , - 1953 , - 4712 , - 1231 , - 1750 , - 1149 , - 4548 , - 1707 , - 2866 , - 2905 , - 1824 , - 4743 , - 1422 , - 2101 , - 1660 , - 99 , - 2538 , - 3857 , - 4056 , - 3135 , - 1094 , - 3053 , - 3892 , - 3611 , - 2210 , - 4809 , - 1168 , - 1527 , - 766 , - 4005 , - 1004 , - 2003 , - 1882 , - 641 , - 3400 , - 5039 , - 438 , - 4957 , - 3236 , - 395 , - 1554 , - 1593 , - 512 , - 3431 , - 110 , - 789 , - 348 , - 3907 , - 1226 , - 2545 , - 2744 , - 1823 , - 4902 , - 1741 , - 2580 , - 2299 , - 898 , - 3497 , - 4976 , - 215 , - 4574 , - 2693 , - 4812 , - 691 , - 570 , - 4449 , - 2088 , - 3727 , - 4246 , - 3645 , - 1924 , - 4203 , - 242 , - 281 , - 4320 , - 2119 , - 3918 , - 4597 , - 4156 , - 2595 , - 5034 , - 1233 , - 1432 , - 511 , - 3590 , - 429 , - 1268 , - 987 , - 4706 , - 2185 , - 3664 , - 4023 , - 3262 , - 1381 , - 3500 , - 4499 , - 4378 , - 3137 , - 776 , - 2415 , - 2934 , - 2333 , - 612 , - 2891 , - 4050 , - 4089 , - 3008 , - 807 , - 2606 , - 3285 , - 2844 , - 1283 , - 3722 , - 5041 , - 120 , - 4319 , - 2278 , - 4237 , - 5076 , - 4795 , - 3394 , - 873 , - 2352 , - 2711 , - 1950 , - 69 , - 2188 , - 3187 , - 3066 , - 1825 , - 4584 , - 1103 , - 1622 , - 1021 , - 4420 , - 1579 , - 2738 , - 2777 , - 1696 , - 4615 , - 1294 , - 1973 , - 1532 , - 5091 , - 2410 , - 3729 , - 3928 , - 3007 , - 966 , - 2925 , - 3764 , - 3483 , - 2082 , - 4681 , - 1040 , - 1399 , - 638 , - 3877 , - 876 , - 1875 , - 1754 , - 513 , - 3272 , - 4911 , - 310 , - 4829 , - 3108 , - 267 , - 1426 , - 1465 , - 384 , - 3303 , - 5102 , - 661 , - 220 , - 3779 , - 1098 , - 2417 , - 2616 , - 1695 , - 4774 , - 1613 , - 2452 , - 2171 , - 770 , - 3369 , - 4848 , - 87 , - 4446 , - 2565 , - 4684 , - 563 , - 442 , - 4321 , - 1960 , - 3599 , - 4118 , - 3517 , - 1796 , - 4075 , - 114 , - 153 , - 4192 , - 1991 , - 3790 , - 4469 , - 4028 , - 2467 , - 4906 , - 1105 , - 1304 , - 383 , - 3462 , - 301 , - 1140 , - 859 , - 4578 , - 2057 , - 3536 , - 3895 , - 3134 , - 1253 , - 3372 , - 4371 , - 4250 , - 3009 , - 648 , - 2287 , - 2806 , - 2205 , - 484 , - 2763 , - 3922 , - 3961 , - 2880 , - 679 , - 2478 , - 3157 , - 2716 , - 1155 , - 3594 , - 4913 , - 5112 , - 4191 , - 2150 , - 4109 , - 4948 , - 4667 , - 3266 , - 745 , - 2224 , - 2583 , - 1822 , - 5061 , - 2060 , - 3059 , - 2938 , - 1697 , - 4456 , - 975 , - 1494 , - 893 , - 4292 , - 1451 , - 2610 , - 2649 , - 1568 , - 4487 , - 1166 , - 1845 , - 1404 , - 4963 , - 2282 , - 3601 , - 3800 , - 2879 , - 838 , - 2797 , - 3636 , - 3355 , - 1954 , - 4553 , - 912 , - 1271 , - 510 , - 3749 , - 748 , - 1747 , - 1626 , - 385 , - 3144 , - 4783 , - 182 , - 4701 , - 2980 , - 139 , - 1298 , - 1337 , - 256 , - 3175 , - 4974 , - 533 , - 92 , - 3651 , - 970 , - 2289 , - 2488 , - 1567 , - 4646 , - 1485 , - 2324 , - 2043 , - 642 , - 3241 , - 4720 , - 5079 , - 4318 , - 2437 , - 4556 , - 435 , - 314 , - 4193 , - 1832 , - 3471 , - 3990 , - 3389 , - 1668 , - 3947 , - 5106 , - 25 , - 4064 , - 1863 , - 3662 , - 4341 , - 3900 , - 2339 , - 4778 , - 977 , - 1176 , - 255 , - 3334 , - 173 , - 1012 , - 731 , - 4450 , - 1929 , - 3408 , - 3767 , - 3006 , - 1125 , - 3244 , - 4243 , - 4122 , - 2881 , - 520 , - 2159 , - 2678 , - 2077 , - 356 , - 2635 , - 3794 , - 3833 , - 2752 , - 551 , - 2350 , - 3029 , - 2588 , - 1027 , - 3466 , - 4785 , - 4984 , - 4063 , - 2022 , - 3981 , - 4820 , - 4539 , - 3138 , - 617 , - 2096 , - 2455 , - 1694 , - 4933 , - 1932 , - 2931 , - 2810 , - 1569 , - 4328 , - 847 , - 1366 , - 765 , - 4164 , - 1323 , - 2482 , - 2521 , - 1440 , - 4359 , - 1038 , - 1717 , - 1276 , - 4835 , - 2154 , - 3473 , - 3672 , - 2751 , - 710 , - 2669 , - 3508 , - 3227 , - 1826 , - 4425 , - 784 , - 1143 , - 382 , - 3621 , - 620 , - 1619 , - 1498 , - 257 , - 3016 , - 4655 , - 54 , - 4573 , - 2852 , - 11 , - 1170 , - 1209 , - 128 , - 3047 , - 4846 , - 405 , - 5084 , - 3523 , - 842 , - 2161 , - 2360 , - 1439 , - 4518 , - 1357 , - 2196 , - 1915 , - 514 , - 3113 , - 4592 , - 4951 , - 4190 , - 2309 , - 4428 , - 307 , - 186 , - 4065 , - 1704 , - 3343 , - 3862 , - 3261 , - 1540 , - 3819 , - 4978 , - 5017 , - 3936 , - 1735 , - 3534 , - 4213 , - 3772 , - 2211 , - 4650 , - 849 , - 1048 , - 127 , - 3206 , - 45 , - 884 , - 603 , - 4322 , - 1801 , - 3280 , - 3639 , - 2878 , - 997 , - 3116 , - 4115 , - 3994 , - 2753 , - 392 , - 2031 , - 2550 , - 1949 , - 228 , - 2507 , - 3666 , - 3705 , - 2624 , - 423 , - 2222 , - 2901 , - 2460 , - 899 , - 3338 , - 4657 , - 4856 , - 3935 , - 1894 , - 3853 , - 4692 , - 4411 , - 3010 , - 489 , - 1968 , - 2327 , - 1566 , - 4805 , - 1804 , - 2803 , - 2682 , - 1441 , - 4200 , - 719 , - 1238 , - 637 , - 4036 , - 1195 , - 2354 , - 2393 , - 1312 , - 4231 , - 910 , - 1589 , - 1148 , - 4707 , - 2026 , - 3345 , - 3544 , - 2623 , - 582 , - 2541 , - 3380 , - 3099 , - 1698 , - 4297 , - 656 , - 1015 , - 254 , - 3493 , - 492 , - 1491 , - 1370 , - 129 , - 2888 , - 4527 , - 5046 , - 4445 , - 2724 , - 5003 , - 1042 , - 1081 , - 0 , - 1279 , - 2366 , - 4989 , - 508 , - 1019 , - 3066 , - 3193 , - 3128 , - 4599 , - 4150 , - 3509 , - 4404 , - 3379 , - 2162 , - 2481 , - 880 , - 4271 , - 4014 , - 1837 , - 4652 , - 3819 , - 1066 , - 3305 , - 1896 , - 3751 , - 230 , - 3429 , - 4708 , - 611 , - 3234 , - 3937 , - 4448 , - 1311 , - 1438 , - 1373 , - 2844 , - 2395 , - 1754 , - 2649 , - 1624 , - 407 , - 726 , - 4309 , - 2516 , - 2259 , - 82 , - 2897 , - 2064 , - 4495 , - 1550 , - 141 , - 1996 , - 3659 , - 1674 , - 2953 , - 4040 , - 1479 , - 2182 , - 2693 , - 4740 , - 4867 , - 4802 , - 1089 , - 640 , - 5183 , - 894 , - 5053 , - 3836 , - 4155 , - 2554 , - 761 , - 504 , - 3511 , - 1142 , - 309 , - 2740 , - 4979 , - 3570 , - 241 , - 1904 , - 5103 , - 1198 , - 2285 , - 4908 , - 427 , - 938 , - 2985 , - 3112 , - 3047 , - 4518 , - 4069 , - 3428 , - 4323 , - 3298 , - 2081 , - 2400 , - 799 , - 4190 , - 3933 , - 1756 , - 4571 , - 3738 , - 985 , - 3224 , - 1815 , - 3670 , - 149 , - 3348 , - 4627 , - 530 , - 3153 , - 3856 , - 4367 , - 1230 , - 1357 , - 1292 , - 2763 , - 2314 , - 1673 , - 2568 , - 1543 , - 326 , - 645 , - 4228 , - 2435 , - 2178 , - 1 , - 2816 , - 1983 , - 4414 , - 1469 , - 60 , - 1915 , - 3578 , - 1593 , - 2872 , - 3959 , - 1398 , - 2101 , - 2612 , - 4659 , - 4786 , - 4721 , - 1008 , - 559 , - 5102 , - 813 , - 4972 , - 3755 , - 4074 , - 2473 , - 680 , - 423 , - 3430 , - 1061 , - 228 , - 2659 , - 4898 , - 3489 , - 160 , - 1823 , - 5022 , - 1117 , - 2204 , - 4827 , - 346 , - 857 , - 2904 , - 3031 , - 2966 , - 4437 , - 3988 , - 3347 , - 4242 , - 3217 , - 2000 , - 2319 , - 718 , - 4109 , - 3852 , - 1675 , - 4490 , - 3657 , - 904 , - 3143 , - 1734 , - 3589 , - 68 , - 3267 , - 4546 , - 449 , - 3072 , - 3775 , - 4286 , - 1149 , - 1276 , - 1211 , - 2682 , - 2233 , - 1592 , - 2487 , - 1462 , - 245 , - 564 , - 4147 , - 2354 , - 2097 , - 5104 , - 2735 , - 1902 , - 4333 , - 1388 , - 5163 , - 1834 , - 3497 , - 1512 , - 2791 , - 3878 , - 1317 , - 2020 , - 2531 , - 4578 , - 4705 , - 4640 , - 927 , - 478 , - 5021 , - 732 , - 4891 , - 3674 , - 3993 , - 2392 , - 599 , - 342 , - 3349 , - 980 , - 147 , - 2578 , - 4817 , - 3408 , - 79 , - 1742 , - 4941 , - 1036 , - 2123 , - 4746 , - 265 , - 776 , - 2823 , - 2950 , - 2885 , - 4356 , - 3907 , - 3266 , - 4161 , - 3136 , - 1919 , - 2238 , - 637 , - 4028 , - 3771 , - 1594 , - 4409 , - 3576 , - 823 , - 3062 , - 1653 , - 3508 , - 5171 , - 3186 , - 4465 , - 368 , - 2991 , - 3694 , - 4205 , - 1068 , - 1195 , - 1130 , - 2601 , - 2152 , - 1511 , - 2406 , - 1381 , - 164 , - 483 , - 4066 , - 2273 , - 2016 , - 5023 , - 2654 , - 1821 , - 4252 , - 1307 , - 5082 , - 1753 , - 3416 , - 1431 , - 2710 , - 3797 , - 1236 , - 1939 , - 2450 , - 4497 , - 4624 , - 4559 , - 846 , - 397 , - 4940 , - 651 , - 4810 , - 3593 , - 3912 , - 2311 , - 518 , - 261 , - 3268 , - 899 , - 66 , - 2497 , - 4736 , - 3327 , - 5182 , - 1661 , - 4860 , - 955 , - 2042 , - 4665 , - 184 , - 695 , - 2742 , - 2869 , - 2804 , - 4275 , - 3826 , - 3185 , - 4080 , - 3055 , - 1838 , - 2157 , - 556 , - 3947 , - 3690 , - 1513 , - 4328 , - 3495 , - 742 , - 2981 , - 1572 , - 3427 , - 5090 , - 3105 , - 4384 , - 287 , - 2910 , - 3613 , - 4124 , - 987 , - 1114 , - 1049 , - 2520 , - 2071 , - 1430 , - 2325 , - 1300 , - 83 , - 402 , - 3985 , - 2192 , - 1935 , - 4942 , - 2573 , - 1740 , - 4171 , - 1226 , - 5001 , - 1672 , - 3335 , - 1350 , - 2629 , - 3716 , - 1155 , - 1858 , - 2369 , - 4416 , - 4543 , - 4478 , - 765 , - 316 , - 4859 , - 570 , - 4729 , - 3512 , - 3831 , - 2230 , - 437 , - 180 , - 3187 , - 818 , - 5169 , - 2416 , - 4655 , - 3246 , - 5101 , - 1580 , - 4779 , - 874 , - 1961 , - 4584 , - 103 , - 614 , - 2661 , - 2788 , - 2723 , - 4194 , - 3745 , - 3104 , - 3999 , - 2974 , - 1757 , - 2076 , - 475 , - 3866 , - 3609 , - 1432 , - 4247 , - 3414 , - 661 , - 2900 , - 1491 , - 3346 , - 5009 , - 3024 , - 4303 , - 206 , - 2829 , - 3532 , - 4043 , - 906 , - 1033 , - 968 , - 2439 , - 1990 , - 1349 , - 2244 , - 1219 , - 2 , - 321 , - 3904 , - 2111 , - 1854 , - 4861 , - 2492 , - 1659 , - 4090 , - 1145 , - 4920 , - 1591 , - 3254 , - 1269 , - 2548 , - 3635 , - 1074 , - 1777 , - 2288 , - 4335 , - 4462 , - 4397 , - 684 , - 235 , - 4778 , - 489 , - 4648 , - 3431 , - 3750 , - 2149 , - 356 , - 99 , - 3106 , - 737 , - 5088 , - 2335 , - 4574 , - 3165 , - 5020 , - 1499 , - 4698 , - 793 , - 1880 , - 4503 , - 22 , - 533 , - 2580 , - 2707 , - 2642 , - 4113 , - 3664 , - 3023 , - 3918 , - 2893 , - 1676 , - 1995 , - 394 , - 3785 , - 3528 , - 1351 , - 4166 , - 3333 , - 580 , - 2819 , - 1410 , - 3265 , - 4928 , - 2943 , - 4222 , - 125 , - 2748 , - 3451 , - 3962 , - 825 , - 952 , - 887 , - 2358 , - 1909 , - 1268 , - 2163 , - 1138 , - 5105 , - 240 , - 3823 , - 2030 , - 1773 , - 4780 , - 2411 , - 1578 , - 4009 , - 1064 , - 4839 , - 1510 , - 3173 , - 1188 , - 2467 , - 3554 , - 993 , - 1696 , - 2207 , - 4254 , - 4381 , - 4316 , - 603 , - 154 , - 4697 , - 408 , - 4567 , - 3350 , - 3669 , - 2068 , - 275 , - 18 , - 3025 , - 656 , - 5007 , - 2254 , - 4493 , - 3084 , - 4939 , - 1418 , - 4617 , - 712 , - 1799 , - 4422 , - 5125 , - 452 , - 2499 , - 2626 , - 2561 , - 4032 , - 3583 , - 2942 , - 3837 , - 2812 , - 1595 , - 1914 , - 313 , - 3704 , - 3447 , - 1270 , - 4085 , - 3252 , - 499 , - 2738 , - 1329 , - 3184 , - 4847 , - 2862 , - 4141 , - 44 , - 2667 , - 3370 , - 3881 , - 744 , - 871 , - 806 , - 2277 , - 1828 , - 1187 , - 2082 , - 1057 , - 5024 , - 159 , - 3742 , - 1949 , - 1692 , - 4699 , - 2330 , - 1497 , - 3928 , - 983 , - 4758 , - 1429 , - 3092 , - 1107 , - 2386 , - 3473 , - 912 , - 1615 , - 2126 , - 4173 , - 4300 , - 4235 , - 522 , - 73 , - 4616 , - 327 , - 4486 , - 3269 , - 3588 , - 1987 , - 194 , - 5121 , - 2944 , - 575 , - 4926 , - 2173 , - 4412 , - 3003 , - 4858 , - 1337 , - 4536 , - 631 , - 1718 , - 4341 , - 5044 , - 371 , - 2418 , - 2545 , - 2480 , - 3951 , - 3502 , - 2861 , - 3756 , - 2731 , - 1514 , - 1833 , - 232 , - 3623 , - 3366 , - 1189 , - 4004 , - 3171 , - 418 , - 2657 , - 1248 , - 3103 , - 4766 , - 2781 , - 4060 , - 5147 , - 2586 , - 3289 , - 3800 , - 663 , - 790 , - 725 , - 2196 , - 1747 , - 1106 , - 2001 , - 976 , - 4943 , - 78 , - 3661 , - 1868 , - 1611 , - 4618 , - 2249 , - 1416 , - 3847 , - 902 , - 4677 , - 1348 , - 3011 , - 1026 , - 2305 , - 3392 , - 831 , - 1534 , - 2045 , - 4092 , - 4219 , - 4154 , - 441 , - 5176 , - 4535 , - 246 , - 4405 , - 3188 , - 3507 , - 1906 , - 113 , - 5040 , - 2863 , - 494 , - 4845 , - 2092 , - 4331 , - 2922 , - 4777 , - 1256 , - 4455 , - 550 , - 1637 , - 4260 , - 4963 , - 290 , - 2337 , - 2464 , - 2399 , - 3870 , - 3421 , - 2780 , - 3675 , - 2650 , - 1433 , - 1752 , - 151 , - 3542 , - 3285 , - 1108 , - 3923 , - 3090 , - 337 , - 2576 , - 1167 , - 3022 , - 4685 , - 2700 , - 3979 , - 5066 , - 2505 , - 3208 , - 3719 , - 582 , - 709 , - 644 , - 2115 , - 1666 , - 1025 , - 1920 , - 895 , - 4862 , - 5181 , - 3580 , - 1787 , - 1530 , - 4537 , - 2168 , - 1335 , - 3766 , - 821 , - 4596 , - 1267 , - 2930 , - 945 , - 2224 , - 3311 , - 750 , - 1453 , - 1964 , - 4011 , - 4138 , - 4073 , - 360 , - 5095 , - 4454 , - 165 , - 4324 , - 3107 , - 3426 , - 1825 , - 32 , - 4959 , - 2782 , - 413 , - 4764 , - 2011 , - 4250 , - 2841 , - 4696 , - 1175 , - 4374 , - 469 , - 1556 , - 4179 , - 4882 , - 209 , - 2256 , - 2383 , - 2318 , - 3789 , - 3340 , - 2699 , - 3594 , - 2569 , - 1352 , - 1671 , - 70 , - 3461 , - 3204 , - 1027 , - 3842 , - 3009 , - 256 , - 2495 , - 1086 , - 2941 , - 4604 , - 2619 , - 3898 , - 4985 , - 2424 , - 3127 , - 3638 , - 501 , - 628 , - 563 , - 2034 , - 1585 , - 944 , - 1839 , - 814 , - 4781 , - 5100 , - 3499 , - 1706 , - 1449 , - 4456 , - 2087 , - 1254 , - 3685 , - 740 , - 4515 , - 1186 , - 2849 , - 864 , - 2143 , - 3230 , - 669 , - 1372 , - 1883 , - 3930 , - 4057 , - 3992 , - 279 , - 5014 , - 4373 , - 84 , - 4243 , - 3026 , - 3345 , - 1744 , - 5135 , - 4878 , - 2701 , - 332 , - 4683 , - 1930 , - 4169 , - 2760 , - 4615 , - 1094 , - 4293 , - 388 , - 1475 , - 4098 , - 4801 , - 128 , - 2175 , - 2302 , - 2237 , - 3708 , - 3259 , - 2618 , - 3513 , - 2488 , - 1271 , - 1590 , - 5173 , - 3380 , - 3123 , - 946 , - 3761 , - 2928 , - 175 , - 2414 , - 1005 , - 2860 , - 4523 , - 2538 , - 3817 , - 4904 , - 2343 , - 3046 , - 3557 , - 420 , - 547 , - 482 , - 1953 , - 1504 , - 863 , - 1758 , - 733 , - 4700 , - 5019 , - 3418 , - 1625 , - 1368 , - 4375 , - 2006 , - 1173 , - 3604 , - 659 , - 4434 , - 1105 , - 2768 , - 783 , - 2062 , - 3149 , - 588 , - 1291 , - 1802 , - 3849 , - 3976 , - 3911 , - 198 , - 4933 , - 4292 , - 3 , - 4162 , - 2945 , - 3264 , - 1663 , - 5054 , - 4797 , - 2620 , - 251 , - 4602 , - 1849 , - 4088 , - 2679 , - 4534 , - 1013 , - 4212 , - 307 , - 1394 , - 4017 , - 4720 , - 47 , - 2094 , - 2221 , - 2156 , - 3627 , - 3178 , - 2537 , - 3432 , - 2407 , - 1190 , - 1509 , - 5092 , - 3299 , - 3042 , - 865 , - 3680 , - 2847 , - 94 , - 2333 , - 924 , - 2779 , - 4442 , - 2457 , - 3736 , - 4823 , - 2262 , - 2965 , - 3476 , - 339 , - 466 , - 401 , - 1872 , - 1423 , - 782 , - 1677 , - 652 , - 4619 , - 4938 , - 3337 , - 1544 , - 1287 , - 4294 , - 1925 , - 1092 , - 3523 , - 578 , - 4353 , - 1024 , - 2687 , - 702 , - 1981 , - 3068 , - 507 , - 1210 , - 1721 , - 3768 , - 3895 , - 3830 , - 117 , - 4852 , - 4211 , - 5106 , - 4081 , - 2864 , - 3183 , - 1582 , - 4973 , - 4716 , - 2539 , - 170 , - 4521 , - 1768 , - 4007 , - 2598 , - 4453 , - 932 , - 4131 , - 226 , - 1313 , - 3936 , - 4639 , - 5150 , - 2013 , - 2140 , - 2075 , - 3546 , - 3097 , - 2456 , - 3351 , - 2326 , - 1109 , - 1428 , - 5011 , - 3218 , - 2961 , - 784 , - 3599 , - 2766 , - 13 , - 2252 , - 843 , - 2698 , - 4361 , - 2376 , - 3655 , - 4742 , - 2181 , - 2884 , - 3395 , - 258 , - 385 , - 320 , - 1791 , - 1342 , - 701 , - 1596 , - 571 , - 4538 , - 4857 , - 3256 , - 1463 , - 1206 , - 4213 , - 1844 , - 1011 , - 3442 , - 497 , - 4272 , - 943 , - 2606 , - 621 , - 1900 , - 2987 , - 426 , - 1129 , - 1640 , - 3687 , - 3814 , - 3749 , - 36 , - 4771 , - 4130 , - 5025 , - 4000 , - 2783 , - 3102 , - 1501 , - 4892 , - 4635 , - 2458 , - 89 , - 4440 , - 1687 , - 3926 , - 2517 , - 4372 , - 851 , - 4050 , - 145 , - 1232 , - 3855 , - 4558 , - 5069 , - 1932 , - 2059 , - 1994 , - 3465 , - 3016 , - 2375 , - 3270 , - 2245 , - 1028 , - 1347 , - 4930 , - 3137 , - 2880 , - 703 , - 3518 , - 2685 , - 5116 , - 2171 , - 762 , - 2617 , - 4280 , - 2295 , - 3574 , - 4661 , - 2100 , - 2803 , - 3314 , - 177 , - 304 , - 239 , - 1710 , - 1261 , - 620 , - 1515 , - 490 , - 4457 , - 4776 , - 3175 , - 1382 , - 1125 , - 4132 , - 1763 , - 930 , - 3361 , - 416 , - 4191 , - 862 , - 2525 , - 540 , - 1819 , - 2906 , - 345 , - 1048 , - 1559 , - 3606 , - 3733 , - 3668 , - 5139 , - 4690 , - 4049 , - 4944 , - 3919 , - 2702 , - 3021 , - 1420 , - 4811 , - 4554 , - 2377 , - 8 , - 4359 , - 1606 , - 3845 , - 2436 , - 4291 , - 770 , - 3969 , - 64 , - 1151 , - 3774 , - 4477 , - 4988 , - 1851 , - 1978 , - 1913 , - 3384 , - 2935 , - 2294 , - 3189 , - 2164 , - 947 , - 1266 , - 4849 , - 3056 , - 2799 , - 622 , - 3437 , - 2604 , - 5035 , - 2090 , - 681 , - 2536 , - 4199 , - 2214 , - 3493 , - 4580 , - 2019 , - 2722 , - 3233 , - 96 , - 223 , - 158 , - 1629 , - 1180 , - 539 , - 1434 , - 409 , - 4376 , - 4695 , - 3094 , - 1301 , - 1044 , - 4051 , - 1682 , - 849 , - 3280 , - 335 , - 4110 , - 781 , - 2444 , - 459 , - 1738 , - 2825 , - 264 , - 967 , - 1478 , - 3525 , - 3652 , - 3587 , - 5058 , - 4609 , - 3968 , - 4863 , - 3838 , - 2621 , - 2940 , - 1339 , - 4730 , - 4473 , - 2296 , - 5111 , - 4278 , - 1525 , - 3764 , - 2355 , - 4210 , - 689 , - 3888 , - 5167 , - 1070 , - 3693 , - 4396 , - 4907 , - 1770 , - 1897 , - 1832 , - 3303 , - 2854 , - 2213 , - 3108 , - 2083 , - 866 , - 1185 , - 4768 , - 2975 , - 2718 , - 541 , - 3356 , - 2523 , - 4954 , - 2009 , - 600 , - 2455 , - 4118 , - 2133 , - 3412 , - 4499 , - 1938 , - 2641 , - 3152 , - 15 , - 142 , - 77 , - 1548 , - 1099 , - 458 , - 1353 , - 328 , - 4295 , - 4614 , - 3013 , - 1220 , - 963 , - 3970 , - 1601 , - 768 , - 3199 , - 254 , - 4029 , - 700 , - 2363 , - 378 , - 1657 , - 2744 , - 183 , - 886 , - 1397 , - 3444 , - 3571 , - 3506 , - 4977 , - 4528 , - 3887 , - 4782 , - 3757 , - 2540 , - 2859 , - 1258 , - 4649 , - 4392 , - 2215 , - 5030 , - 4197 , - 1444 , - 3683 , - 2274 , - 4129 , - 608 , - 3807 , - 5086 , - 989 , - 3612 , - 4315 , - 4826 , - 1689 , - 1816 , - 1751 , - 3222 , - 2773 , - 2132 , - 3027 , - 2002 , - 785 , - 1104 , - 4687 , - 2894 , - 2637 , - 460 , - 3275 , - 2442 , - 4873 , - 1928 , - 519 , - 2374 , - 4037 , - 2052 , - 3331 , - 4418 , - 1857 , - 2560 , - 3071 , - 5118 , - 61 , - 5180 , - 1467 , - 1018 , - 377 , - 1272 , - 247 , - 4214 , - 4533 , - 2932 , - 1139 , - 882 , - 3889 , - 1520 , - 687 , - 3118 , - 173 , - 3948 , - 619 , - 2282 , - 297 , - 1576 , - 2663 , - 102 , - 805 , - 1316 , - 3363 , - 3490 , - 3425 , - 4896 , - 4447 , - 3806 , - 4701 , - 3676 , - 2459 , - 2778 , - 1177 , - 4568 , - 4311 , - 2134 , - 4949 , - 4116 , - 1363 , - 3602 , - 2193 , - 4048 , - 527 , - 3726 , - 5005 , - 908 , - 3531 , - 4234 , - 4745 , - 1608 , - 1735 , - 1670 , - 3141 , - 2692 , - 2051 , - 2946 , - 1921 , - 704 , - 1023 , - 4606 , - 2813 , - 2556 , - 379 , - 3194 , - 2361 , - 4792 , - 1847 , - 438 , - 2293 , - 3956 , - 1971 , - 3250 , - 4337 , - 1776 , - 2479 , - 2990 , - 5037 , - 5164 , - 5099 , - 1386 , - 937 , - 296 , - 1191 , - 166 , - 4133 , - 4452 , - 2851 , - 1058 , - 801 , - 3808 , - 1439 , - 606 , - 3037 , - 92 , - 3867 , - 538 , - 2201 , - 216 , - 1495 , - 2582 , - 21 , - 724 , - 1235 , - 3282 , - 3409 , - 3344 , - 4815 , - 4366 , - 3725 , - 4620 , - 3595 , - 2378 , - 2697 , - 1096 , - 4487 , - 4230 , - 2053 , - 4868 , - 4035 , - 1282 , - 3521 , - 2112 , - 3967 , - 446 , - 3645 , - 4924 , - 827 , - 3450 , - 4153 , - 4664 , - 1527 , - 1654 , - 1589 , - 3060 , - 2611 , - 1970 , - 2865 , - 1840 , - 623 , - 942 , - 4525 , - 2732 , - 2475 , - 298 , - 3113 , - 2280 , - 4711 , - 1766 , - 357 , - 2212 , - 3875 , - 1890 , - 3169 , - 4256 , - 1695 , - 2398 , - 2909 , - 4956 , - 5083 , - 5018 , - 1305 , - 856 , - 215 , - 1110 , - 85 , - 4052 , - 4371 , - 2770 , - 977 , - 720 , - 3727 , - 1358 , - 525 , - 2956 , - 11 , - 3786 , - 457 , - 2120 , - 135 , - 1414 , - 2501 , - 5124 , - 643 , - 1154 , - 3201 , - 3328 , - 3263 , - 4734 , - 4285 , - 3644 , - 4539 , - 3514 , - 2297 , - 2616 , - 1015 , - 4406 , - 4149 , - 1972 , - 4787 , - 3954 , - 1201 , - 3440 , - 2031 , - 3886 , - 365 , - 3564 , - 4843 , - 746 , - 3369 , - 4072 , - 4583 , - 1446 , - 1573 , - 1508 , - 2979 , - 2530 , - 1889 , - 2784 , - 1759 , - 542 , - 861 , - 4444 , - 2651 , - 2394 , - 217 , - 3032 , - 2199 , - 4630 , - 1685 , - 276 , - 2131 , - 3794 , - 1809 , - 3088 , - 4175 , - 1614 , - 2317 , - 2828 , - 4875 , - 5002 , - 4937 , - 1224 , - 775 , - 134 , - 1029 , - 4 , - 3971 , - 4290 , - 2689 , - 896 , - 639 , - 3646 , - 1277 , - 444 , - 2875 , - 5114 , - 3705 , - 376 , - 2039 , - 54 , - 1333 , - 2420 , - 5043 , - 562 , - 1073 , - 3120 , - 3247 , - 3182 , - 4653 , - 4204 , - 3563 , - 4458 , - 3433 , - 2216 , - 2535 , - 934 , - 4325 , - 4068 , - 1891 , - 4706 , - 3873 , - 1120 , - 3359 , - 1950 , - 3805 , - 284 , - 3483 , - 4762 , - 665 , - 3288 , - 3991 , - 4502 , - 1365 , - 1492 , - 1427 , - 2898 , - 2449 , - 1808 , - 2703 , - 1678 , - 461 , - 780 , - 4363 , - 2570 , - 2313 , - 136 , - 2951 , - 2118 , - 4549 , - 1604 , - 195 , - 2050 , - 3713 , - 1728 , - 3007 , - 4094 , - 1533 , - 2236 , - 2747 , - 4794 , - 4921 , - 4856 , - 1143 , - 694 , - 53 , - 948 , - 5107 , - 3890 , - 4209 , - 2608 , - 815 , - 558 , - 3565 , - 1196 , - 363 , - 2794 , - 5033 , - 3624 , - 295 , - 1958 , - 5157 , - 1252 , - 2339 , - 4962 , - 481 , - 992 , - 3039 , - 3166 , - 3101 , - 4572 , - 4123 , - 3482 , - 4377 , - 3352 , - 2135 , - 2454 , - 853 , - 4244 , - 3987 , - 1810 , - 4625 , - 3792 , - 1039 , - 3278 , - 1869 , - 3724 , - 203 , - 3402 , - 4681 , - 584 , - 3207 , - 3910 , - 4421 , - 1284 , - 1411 , - 1346 , - 2817 , - 2368 , - 1727 , - 2622 , - 1597 , - 380 , - 699 , - 4282 , - 2489 , - 2232 , - 55 , - 2870 , - 2037 , - 4468 , - 1523 , - 114 , - 1969 , - 3632 , - 1647 , - 2926 , - 4013 , - 1452 , - 2155 , - 2666 , - 4713 , - 4840 , - 4775 , - 1062 , - 613 , - 5156 , - 867 , - 5026 , - 3809 , - 4128 , - 2527 , - 734 , - 477 , - 3484 , - 1115 , - 282 , - 2713 , - 4952 , - 3543 , - 214 , - 1877 , - 5076 , - 1171 , - 2258 , - 4881 , - 400 , - 911 , - 2958 , - 3085 , - 3020 , - 4491 , - 4042 , - 3401 , - 4296 , - 3271 , - 2054 , - 2373 , - 772 , - 4163 , - 3906 , - 1729 , - 4544 , - 3711 , - 958 , - 3197 , - 1788 , - 3643 , - 122 , - 3321 , - 4600 , - 503 , - 3126 , - 3829 , - 4340 , - 1203 , - 1330 , - 1265 , - 2736 , - 2287 , - 1646 , - 2541 , - 1516 , - 299 , - 618 , - 4201 , - 2408 , - 2151 , - 5158 , - 2789 , - 1956 , - 4387 , - 1442 , - 33 , - 1888 , - 3551 , - 1566 , - 2845 , - 3932 , - 1371 , - 2074 , - 2585 , - 4632 , - 4759 , - 4694 , - 981 , - 532 , - 5075 , - 786 , - 4945 , - 3728 , - 4047 , - 2446 , - 653 , - 396 , - 3403 , - 1034 , - 201 , - 2632 , - 4871 , - 3462 , - 133 , - 1796 , - 4995 , - 1090 , - 2177 , - 4800 , - 319 , - 830 , - 2877 , - 3004 , - 2939 , - 4410 , - 3961 , - 3320 , - 4215 , - 3190 , - 1973 , - 2292 , - 691 , - 4082 , - 3825 , - 1648 , - 4463 , - 3630 , - 877 , - 3116 , - 1707 , - 3562 , - 41 , - 3240 , - 4519 , - 422 , - 3045 , - 3748 , - 4259 , - 1122 , - 1249 , - 1184 , - 2655 , - 2206 , - 1565 , - 2460 , - 1435 , - 218 , - 537 , - 4120 , - 2327 , - 2070 , - 5077 , - 2708 , - 1875 , - 4306 , - 1361 , - 5136 , - 1807 , - 3470 , - 1485 , - 2764 , - 3851 , - 1290 , - 1993 , - 2504 , - 4551 , - 4678 , - 4613 , - 900 , - 451 , - 4994 , - 705 , - 4864 , - 3647 , - 3966 , - 2365 , - 572 , - 315 , - 3322 , - 953 , - 120 , - 2551 , - 4790 , - 3381 , - 52 , - 1715 , - 4914 , - 1009 , - 2096 , - 4719 , - 238 , - 749 , - 2796 , - 2923 , - 2858 , - 4329 , - 3880 , - 3239 , - 4134 , - 3109 , - 1892 , - 2211 , - 610 , - 4001 , - 3744 , - 1567 , - 4382 , - 3549 , - 796 , - 3035 , - 1626 , - 3481 , - 5144 , - 3159 , - 4438 , - 341 , - 2964 , - 3667 , - 4178 , - 1041 , - 1168 , - 1103 , - 2574 , - 2125 , - 1484 , - 2379 , - 1354 , - 137 , - 456 , - 4039 , - 2246 , - 1989 , - 4996 , - 2627 , - 1794 , - 4225 , - 1280 , - 5055 , - 1726 , - 3389 , - 1404 , - 2683 , - 3770 , - 1209 , - 1912 , - 2423 , - 4470 , - 4597 , - 4532 , - 819 , - 370 , - 4913 , - 624 , - 4783 , - 3566 , - 3885 , - 2284 , - 491 , - 234 , - 3241 , - 872 , - 39 , - 2470 , - 4709 , - 3300 , - 5155 , - 1634 , - 4833 , - 928 , - 2015 , - 4638 , - 157 , - 668 , - 2715 , - 2842 , - 2777 , - 4248 , - 3799 , - 3158 , - 4053 , - 3028 , - 1811 , - 2130 , - 529 , - 3920 , - 3663 , - 1486 , - 4301 , - 3468 , - 715 , - 2954 , - 1545 , - 3400 , - 5063 , - 3078 , - 4357 , - 260 , - 2883 , - 3586 , - 4097 , - 960 , - 1087 , - 1022 , - 2493 , - 2044 , - 1403 , - 2298 , - 1273 , - 56 , - 375 , - 3958 , - 2165 , - 1908 , - 4915 , - 2546 , - 1713 , - 4144 , - 1199 , - 4974 , - 1645 , - 3308 , - 1323 , - 2602 , - 3689 , - 1128 , - 1831 , - 2342 , - 4389 , - 4516 , - 4451 , - 738 , - 289 , - 4832 , - 543 , - 4702 , - 3485 , - 3804 , - 2203 , - 410 , - 153 , - 3160 , - 791 , - 5142 , - 2389 , - 4628 , - 3219 , - 5074 , - 1553 , - 4752 , - 847 , - 1934 , - 4557 , - 76 , - 587 , - 2634 , - 2761 , - 2696 , - 4167 , - 3718 , - 3077 , - 3972 , - 2947 , - 1730 , - 2049 , - 448 , - 3839 , - 3582 , - 1405 , - 4220 , - 3387 , - 634 , - 2873 , - 1464 , - 3319 , - 4982 , - 2997 , - 4276 , - 179 , - 2802 , - 3505 , - 4016 , - 879 , - 1006 , - 941 , - 2412 , - 1963 , - 1322 , - 2217 , - 1192 , - 5159 , - 294 , - 3877 , - 2084 , - 1827 , - 4834 , - 2465 , - 1632 , - 4063 , - 1118 , - 4893 , - 1564 , - 3227 , - 1242 , - 2521 , - 3608 , - 1047 , - 1750 , - 2261 , - 4308 , - 4435 , - 4370 , - 657 , - 208 , - 4751 , - 462 , - 4621 , - 3404 , - 3723 , - 2122 , - 329 , - 72 , - 3079 , - 710 , - 5061 , - 2308 , - 4547 , - 3138 , - 4993 , - 1472 , - 4671 , - 766 , - 1853 , - 4476 , - 5179 , - 506 , - 2553 , - 2680 , - 2615 , - 4086 , - 3637 , - 2996 , - 3891 , - 2866 , - 1649 , - 1968 , - 367 , - 3758 , - 3501 , - 1324 , - 4139 , - 3306 , - 553 , - 2792 , - 1383 , - 3238 , - 4901 , - 2916 , - 4195 , - 98 , - 2721 , - 3424 , - 3935 , - 798 , - 925 , - 860 , - 2331 , - 1882 , - 1241 , - 2136 , - 1111 , - 5078 , - 213 , - 3796 , - 2003 , - 1746 , - 4753 , - 2384 , - 1551 , - 3982 , - 1037 , - 4812 , - 1483 , - 3146 , - 1161 , - 2440 , - 3527 , - 966 , - 1669 , - 2180 , - 4227 , - 4354 , - 4289 , - 576 , - 127 , - 4670 , - 381 , - 4540 , - 3323 , - 3642 , - 2041 , - 248 , - 5175 , - 2998 , - 629 , - 4980 , - 2227 , - 4466 , - 3057 , - 4912 , - 1391 , - 4590 , - 685 , - 1772 , - 4395 , - 5098 , - 425 , - 2472 , - 2599 , - 2534 , - 4005 , - 3556 , - 2915 , - 3810 , - 2785 , - 1568 , - 1887 , - 286 , - 3677 , - 3420 , - 1243 , - 4058 , - 3225 , - 472 , - 2711 , - 1302 , - 3157 , - 4820 , - 2835 , - 4114 , - 17 , - 2640 , - 3343 , - 3854 , - 717 , - 844 , - 779 , - 2250 , - 1801 , - 1160 , - 2055 , - 1030 , - 4997 , - 132 , - 3715 , - 1922 , - 1665 , - 4672 , - 2303 , - 1470 , - 3901 , - 956 , - 4731 , - 1402 , - 3065 , - 1080 , - 2359 , - 3446 , - 885 , - 1588 , - 2099 , - 4146 , - 4273 , - 4208 , - 495 , - 46 , - 4589 , - 300 , - 4459 , - 3242 , - 3561 , - 1960 , - 167 , - 5094 , - 2917 , - 548 , - 4899 , - 2146 , - 4385 , - 2976 , - 4831 , - 1310 , - 4509 , - 604 , - 1691 , - 4314 , - 5017 , - 344 , - 2391 , - 2518 , - 2453 , - 3924 , - 3475 , - 2834 , - 3729 , - 2704 , - 1487 , - 1806 , - 205 , - 3596 , - 3339 , - 1162 , - 3977 , - 3144 , - 391 , - 2630 , - 1221 , - 3076 , - 4739 , - 2754 , - 4033 , - 5120 , - 2559 , - 3262 , - 3773 , - 636 , - 763 , - 698 , - 2169 , - 1720 , - 1079 , - 1974 , - 949 , - 4916 , - 51 , - 3634 , - 1841 , - 1584 , - 4591 , - 2222 , - 1389 , - 3820 , - 875 , - 4650 , - 1321 , - 2984 , - 999 , - 2278 , - 3365 , - 804 , - 1507 , - 2018 , - 4065 , - 4192 , - 4127 , - 414 , - 5149 , - 4508 , - 219 , - 4378 , - 3161 , - 3480 , - 1879 , - 86 , - 5013 , - 2836 , - 467 , - 4818 , - 2065 , - 4304 , - 2895 , - 4750 , - 1229 , - 4428 , - 523 , - 1610 , - 4233 , - 4936 , - 263 , - 2310 , - 2437 , - 2372 , - 3843 , - 3394 , - 2753 , - 3648 , - 2623 , - 1406 , - 1725 , - 124 , - 3515 , - 3258 , - 1081 , - 3896 , - 3063 , - 310 , - 2549 , - 1140 , - 2995 , - 4658 , - 2673 , - 3952 , - 5039 , - 2478 , - 3181 , - 3692 , - 555 , - 682 , - 617 , - 2088 , - 1639 , - 998 , - 1893 , - 868 , - 4835 , - 5154 , - 3553 , - 1760 , - 1503 , - 4510 , - 2141 , - 1308 , - 3739 , - 794 , - 4569 , - 1240 , - 2903 , - 918 , - 2197 , - 3284 , - 723 , - 1426 , - 1937 , - 3984 , - 4111 , - 4046 , - 333 , - 5068 , - 4427 , - 138 , - 4297 , - 3080 , - 3399 , - 1798 , - 5 , - 4932 , - 2755 , - 386 , - 4737 , - 1984 , - 4223 , - 2814 , - 4669 , - 1148 , - 4347 , - 442 , - 1529 , - 4152 , - 4855 , - 182 , - 2229 , - 2356 , - 2291 , - 3762 , - 3313 , - 2672 , - 3567 , - 2542 , - 1325 , - 1644 , - 43 , - 3434 , - 3177 , - 1000 , - 3815 , - 2982 , - 229 , - 2468 , - 1059 , - 2914 , - 4577 , - 2592 , - 3871 , - 4958 , - 2397 , - 3100 , - 3611 , - 474 , - 601 , - 536 , - 2007 , - 1558 , - 917 , - 1812 , - 787 , - 4754 , - 5073 , - 3472 , - 1679 , - 1422 , - 4429 , - 2060 , - 1227 , - 3658 , - 713 , - 4488 , - 1159 , - 2822 , - 837 , - 2116 , - 3203 , - 642 , - 1345 , - 1856 , - 3903 , - 4030 , - 3965 , - 252 , - 4987 , - 4346 , - 57 , - 4216 , - 2999 , - 3318 , - 1717 , - 5108 , - 4851 , - 2674 , - 305 , - 4656 , - 1903 , - 4142 , - 2733 , - 4588 , - 1067 , - 4266 , - 361 , - 1448 , - 4071 , - 4774 , - 101 , - 2148 , - 2275 , - 2210 , - 3681 , - 3232 , - 2591 , - 3486 , - 2461 , - 1244 , - 1563 , - 5146 , - 3353 , - 3096 , - 919 , - 3734 , - 2901 , - 148 , - 2387 , - 978 , - 2833 , - 4496 , - 2511 , - 3790 , - 4877 , - 2316 , - 3019 , - 3530 , - 393 , - 520 , - 455 , - 1926 , - 1477 , - 836 , - 1731 , - 706 , - 4673 , - 4992 , - 3391 , - 1598 , - 1341 , - 4348 , - 1979 , - 1146 , - 3577 , - 632 , - 4407 , - 1078 , - 2741 , - 756 , - 2035 , - 3122 , - 561 , - 1264 , - 1775 , - 3822 , - 3949 , - 3884 , - 171 , - 4906 , - 4265 , - 5160 , - 4135 , - 2918 , - 3237 , - 1636 , - 5027 , - 4770 , - 2593 , - 224 , - 4575 , - 1822 , - 4061 , - 2652 , - 4507 , - 986 , - 4185 , - 280 , - 1367 , - 3990 , - 4693 , - 20 , - 2067 , - 2194 , - 2129 , - 3600 , - 3151 , - 2510 , - 3405 , - 2380 , - 1163 , - 1482 , - 5065 , - 3272 , - 3015 , - 838 , - 3653 , - 2820 , - 67 , - 2306 , - 897 , - 2752 , - 4415 , - 2430 , - 3709 , - 4796 , - 2235 , - 2938 , - 3449 , - 312 , - 439 , - 374 , - 1845 , - 1396 , - 755 , - 1650 , - 625 , - 4592 , - 4911 , - 3310 , - 1517 , - 1260 , - 4267 , - 1898 , - 1065 , - 3496 , - 551 , - 4326 , - 997 , - 2660 , - 675 , - 1954 , - 3041 , - 480 , - 1183 , - 1694 , - 3741 , - 3868 , - 3803 , - 90 , - 4825 , - 4184 , - 5079 , - 4054 , - 2837 , - 3156 , - 1555 , - 4946 , - 4689 , - 2512 , - 143 , - 4494 , - 1741 , - 3980 , - 2571 , - 4426 , - 905 , - 4104 , - 199 , - 1286 , - 3909 , - 4612 , - 5123 , - 1986 , - 2113 , - 2048 , - 3519 , - 3070 , - 2429 , - 3324 , - 2299 , - 1082 , - 1401 , - 4984 , - 3191 , - 2934 , - 757 , - 3572 , - 2739 , - 5170 , - 2225 , - 816 , - 2671 , - 4334 , - 2349 , - 3628 , - 4715 , - 2154 , - 2857 , - 3368 , - 231 , - 358 , - 293 , - 1764 , - 1315 , - 674 , - 1569 , - 544 , - 4511 , - 4830 , - 3229 , - 1436 , - 1179 , - 4186 , - 1817 , - 984 , - 3415 , - 470 , - 4245 , - 916 , - 2579 , - 594 , - 1873 , - 2960 , - 399 , - 1102 , - 1613 , - 3660 , - 3787 , - 3722 , - 9 , - 4744 , - 4103 , - 4998 , - 3973 , - 2756 , - 3075 , - 1474 , - 4865 , - 4608 , - 2431 , - 62 , - 4413 , - 1660 , - 3899 , - 2490 , - 4345 , - 824 , - 4023 , - 118 , - 1205 , - 3828 , - 4531 , - 5042 , - 1905 , - 2032 , - 1967 , - 3438 , - 2989 , - 2348 , - 3243 , - 2218 , - 1001 , - 1320 , - 4903 , - 3110 , - 2853 , - 676 , - 3491 , - 2658 , - 5089 , - 2144 , - 735 , - 2590 , - 4253 , - 2268 , - 3547 , - 4634 , - 2073 , - 2776 , - 3287 , - 150 , - 277 , - 212 , - 1683 , - 1234 , - 593 , - 1488 , - 463 , - 4430 , - 4749 , - 3148 , - 1355 , - 1098 , - 4105 , - 1736 , - 903 , - 3334 , - 389 , - 4164 , - 835 , - 2498 , - 513 , - 1792 , - 2879 , - 318 , - 1021 , - 1532 , - 3579 , - 3706 , - 3641 , - 5112 , - 4663 , - 4022 , - 4917 , - 3892 , - 2675 , - 2994 , - 1393 , - 4784 , - 4527 , - 2350 , - 5165 , - 4332 , - 1579 , - 3818 , - 2409 , - 4264 , - 743 , - 3942 , - 37 , - 1124 , - 3747 , - 4450 , - 4961 , - 1824 , - 1951 , - 1886 , - 3357 , - 2908 , - 2267 , - 3162 , - 2137 , - 920 , - 1239 , - 4822 , - 3029 , - 2772 , - 595 , - 3410 , - 2577 , - 5008 , - 2063 , - 654 , - 2509 , - 4172 , - 2187 , - 3466 , - 4553 , - 1992 , - 2695 , - 3206 , - 69 , - 196 , - 131 , - 1602 , - 1153 , - 512 , - 1407 , - 382 , - 4349 , - 4668 , - 3067 , - 1274 , - 1017 , - 4024 , - 1655 , - 822 , - 3253 , - 308 , - 4083 , - 754 , - 2417 , - 432 , - 1711 , - 2798 , - 237 , - 940 , - 1451 , - 3498 , - 3625 , - 3560 , - 5031 , - 4582 , - 3941 , - 4836 , - 3811 , - 2594 , - 2913 , - 1312 , - 4703 , - 4446 , - 2269 , - 5084 , - 4251 , - 1498 , - 3737 , - 2328 , - 4183 , - 662 , - 3861 , - 5140 , - 1043 , - 3666 , - 4369 , - 4880 , - 1743 , - 1870 , - 1805 , - 3276 , - 2827 , - 2186 , - 3081 , - 2056 , - 839 , - 1158 , - 4741 , - 2948 , - 2691 , - 514 , - 3329 , - 2496 , - 4927 , - 1982 , - 573 , - 2428 , - 4091 , - 2106 , - 3385 , - 4472 , - 1911 , - 2614 , - 3125 , - 5172 , - 115 , - 50 , - 1521 , - 1072 , - 431 , - 1326 , - 301 , - 4268 , - 4587 , - 2986 , - 1193 , - 936 , - 3943 , - 1574 , - 741 , - 3172 , - 227 , - 4002 , - 673 , - 2336 , - 351 , - 1630 , - 2717 , - 156 , - 859 , - 1370 , - 3417 , - 3544 , - 3479 , - 4950 , - 4501 , - 3860 , - 4755 , - 3730 , - 2513 , - 2832 , - 1231 , - 4622 , - 4365 , - 2188 , - 5003 , - 4170 , - 1417 , - 3656 , - 2247 , - 4102 , - 581 , - 3780 , - 5059 , - 962 , - 3585 , - 4288 , - 4799 , - 1662 , - 1789 , - 1724 , - 3195 , - 2746 , - 2105 , - 3000 , - 1975 , - 758 , - 1077 , - 4660 , - 2867 , - 2610 , - 433 , - 3248 , - 2415 , - 4846 , - 1901 , - 492 , - 2347 , - 4010 , - 2025 , - 3304 , - 4391 , - 1830 , - 2533 , - 3044 , - 5091 , - 34 , - 5153 , - 1440 , - 991 , - 350 , - 1245 , - 220 , - 4187 , - 4506 , - 2905 , - 1112 , - 855 , - 3862 , - 1493 , - 660 , - 3091 , - 146 , - 3921 , - 592 , - 2255 , - 270 , - 1549 , - 2636 , - 75 , - 778 , - 1289 , - 3336 , - 3463 , - 3398 , - 4869 , - 4420 , - 3779 , - 4674 , - 3649 , - 2432 , - 2751 , - 1150 , - 4541 , - 4284 , - 2107 , - 4922 , - 4089 , - 1336 , - 3575 , - 2166 , - 4021 , - 500 , - 3699 , - 4978 , - 881 , - 3504 , - 4207 , - 4718 , - 1581 , - 1708 , - 1643 , - 3114 , - 2665 , - 2024 , - 2919 , - 1894 , - 677 , - 996 , - 4579 , - 2786 , - 2529 , - 352 , - 3167 , - 2334 , - 4765 , - 1820 , - 411 , - 2266 , - 3929 , - 1944 , - 3223 , - 4310 , - 1749 , - 2452 , - 2963 , - 5010 , - 5137 , - 5072 , - 1359 , - 910 , - 269 , - 1164 , - 139 , - 4106 , - 4425 , - 2824 , - 1031 , - 774 , - 3781 , - 1412 , - 579 , - 3010 , - 65 , - 3840 , - 511 , - 2174 , - 189 , - 1468 , - 2555 , - 5178 , - 697 , - 1208 , - 3255 , - 3382 , - 3317 , - 4788 , - 4339 , - 3698 , - 4593 , - 3568 , - 2351 , - 2670 , - 1069 , - 4460 , - 4203 , - 2026 , - 4841 , - 4008 , - 1255 , - 3494 , - 2085 , - 3940 , - 419 , - 3618 , - 4897 , - 800 , - 3423 , - 4126 , - 4637 , - 1500 , - 1627 , - 1562 , - 3033 , - 2584 , - 1943 , - 2838 , - 1813 , - 596 , - 915 , - 4498 , - 2705 , - 2448 , - 271 , - 3086 , - 2253 , - 4684 , - 1739 , - 330 , - 2185 , - 3848 , - 1863 , - 3142 , - 4229 , - 1668 , - 2371 , - 2882 , - 4929 , - 5056 , - 4991 , - 1278 , - 829 , - 188 , - 1083 , - 58 , - 4025 , - 4344 , - 2743 , - 950 , - 693 , - 3700 , - 1331 , - 498 , - 2929 , - 5168 , - 3759 , - 430 , - 2093 , - 108 , - 1387 , - 2474 , - 5097 , - 616 , - 1127 , - 3174 , - 3301 , - 3236 , - 4707 , - 4258 , - 3617 , - 4512 , - 3487 , - 2270 , - 2589 , - 988 , - 4379 , - 4122 , - 1945 , - 4760 , - 3927 , - 1174 , - 3413 , - 2004 , - 3859 , - 338 , - 3537 , - 4816 , - 719 , - 3342 , - 4045 , - 4556 , - 1419 , - 1546 , - 1481 , - 2952 , - 2503 , - 1862 , - 2757 , - 1732 , - 515 , - 834 , - 4417 , - 2624 , - 2367 , - 190 , - 3005 , - 2172 , - 4603 , - 1658 , - 249 , - 2104 , - 3767 , - 1782 , - 3061 , - 4148 , - 1587 , - 2290 , - 2801 , - 4848 , - 4975 , - 4910 , - 1197 , - 748 , - 107 , - 1002 , - 5161 , - 3944 , - 4263 , - 2662 , - 869 , - 612 , - 3619 , - 1250 , - 417 , - 2848 , - 5087 , - 3678 , - 349 , - 2012 , - 27 , - 1306 , - 2393 , - 5016 , - 535 , - 1046 , - 3093 , - 3220 , - 3155 , - 4626 , - 4177 , - 3536 , - 4431 , - 3406 , - 2189 , - 2508 , - 907 , - 4298 , - 4041 , - 1864 , - 4679 , - 3846 , - 1093 , - 3332 , - 1923 , - 3778 , - 257 , - 3456 , - 4735 , - 638 , - 3261 , - 3964 , - 4475 , - 1338 , - 1465 , - 1400 , - 2871 , - 2422 , - 1781 , - 2676 , - 1651 , - 434 , - 753 , - 4336 , - 2543 , - 2286 , - 109 , - 2924 , - 2091 , - 4522 , - 1577 , - 168 , - 2023 , - 3686 , - 1701 , - 2980 , - 4067 , - 1506 , - 2209 , - 2720 , - 4767 , - 4894 , - 4829 , - 1116 , - 667 , - 26 , - 921 , - 5080 , - 3863 , - 4182 , - 2581 , - 788 , - 531 , - 3538 , - 1169 , - 336 , - 2767 , - 5006 , - 3597 , - 268 , - 1931 , - 5130 , - 1225 , - 2312 , - 4935 , - 454 , - 965 , - 3012 , - 3139 , - 3074 , - 4545 , - 4096 , - 3455 , - 4350 , - 3325 , - 2108 , - 2427 , - 826 , - 4217 , - 3960 , - 1783 , - 4598 , - 3765 , - 1012 , - 3251 , - 1842 , - 3697 , - 176 , - 3375 , - 4654 , - 557 , - 3180 , - 3883 , - 4394 , - 1257 , - 1384 , - 1319 , - 2790 , - 2341 , - 1700 , - 2595 , - 1570 , - 353 , - 672 , - 4255 , - 2462 , - 2205 , - 28 , - 2843 , - 2010 , - 4441 , - 1496 , - 87 , - 1942 , - 3605 , - 1620 , - 2899 , - 3986 , - 1425 , - 2128 , - 2639 , - 4686 , - 4813 , - 4748 , - 1035 , - 586 , - 5129 , - 840 , - 4999 , - 3782 , - 4101 , - 2500 , - 707 , - 450 , - 3457 , - 1088 , - 255 , - 2686 , - 4925 , - 3516 , - 187 , - 1850 , - 5049 , - 1144 , - 2231 , - 4854 , - 373 , - 884 , - 2931 , - 3058 , - 2993 , - 4464 , - 4015 , - 3374 , - 4269 , - 3244 , - 2027 , - 2346 , - 745 , - 4136 , - 3879 , - 1702 , - 4517 , - 3684 , - 931 , - 3170 , - 1761 , - 3616 , - 95 , - 3294 , - 4573 , - 476 , - 3099 , - 3802 , - 4313 , - 1176 , - 1303 , - 1238 , - 2709 , - 2260 , - 1619 , - 2514 , - 1489 , - 272 , - 591 , - 4174 , - 2381 , - 2124 , - 5131 , - 2762 , - 1929 , - 4360 , - 1415 , - 6 , - 1861 , - 3524 , - 1539 , - 2818 , - 3905 , - 1344 , - 2047 , - 2558 , - 4605 , - 4732 , - 4667 , - 954 , - 505 , - 5048 , - 759 , - 4918 , - 3701 , - 4020 , - 2419 , - 626 , - 369 , - 3376 , - 1007 , - 174 , - 2605 , - 4844 , - 3435 , - 106 , - 1769 , - 4968 , - 1063 , - 2150 , - 4773 , - 292 , - 803 , - 2850 , - 2977 , - 2912 , - 4383 , - 3934 , - 3293 , - 4188 , - 3163 , - 1946 , - 2265 , - 664 , - 4055 , - 3798 , - 1621 , - 4436 , - 3603 , - 850 , - 3089 , - 1680 , - 3535 , - 14 , - 3213 , - 4492 , - 395 , - 3018 , - 3721 , - 4232 , - 1095 , - 1222 , - 1157 , - 2628 , - 2179 , - 1538 , - 2433 , - 1408 , - 191 , - 510 , - 4093 , - 2300 , - 2043 , - 5050 , - 2681 , - 1848 , - 4279 , - 1334 , - 5109 , - 1780 , - 3443 , - 1458 , - 2737 , - 3824 , - 1263 , - 1966 , - 2477 , - 4524 , - 4651 , - 4586 , - 873 , - 424 , - 4967 , - 678 , - 4837 , - 3620 , - 3939 , - 2338 , - 545 , - 288 , - 3295 , - 926 , - 93 , - 2524 , - 4763 , - 3354 , - 25 , - 1688 , - 4887 , - 982 , - 2069 , - 4692 , - 211 , - 722 , - 2769 , - 2896 , - 2831 , - 4302 , - 3853 , - 3212 , - 4107 , - 3082 , - 1865 , - 2184 , - 583 , - 3974 , - 3717 , - 1540 , - 4355 , - 3522 , - 769 , - 3008 , - 1599 , - 3454 , - 5117 , - 3132 , - 4411 , - 314 , - 2937 , - 3640 , - 4151 , - 1014 , - 1141 , - 1076 , - 2547 , - 2098 , - 1457 , - 2352 , - 1327 , - 110 , - 429 , - 4012 , - 2219 , - 1962 , - 4969 , - 2600 , - 1767 , - 4198 , - 1253 , - 5028 , - 1699 , - 3362 , - 1377 , - 2656 , - 3743 , - 1182 , - 1885 , - 2396 , - 4443 , - 4570 , - 4505 , - 792 , - 343 , - 4886 , - 597 , - 4756 , - 3539 , - 3858 , - 2257 , - 464 , - 207 , - 3214 , - 845 , - 12 , - 2443 , - 4682 , - 3273 , - 5128 , - 1607 , - 4806 , - 901 , - 1988 , - 4611 , - 130 , - 641 , - 2688 , - 2815 , - 2750 , - 4221 , - 3772 , - 3131 , - 4026 , - 3001 , - 1784 , - 2103 , - 502 , - 3893 , - 3636 , - 1459 , - 4274 , - 3441 , - 688 , - 2927 , - 1518 , - 3373 , - 5036 , - 3051 , - 4330 , - 233 , - 2856 , - 3559 , - 4070 , - 933 , - 1060 , - 995 , - 2466 , - 2017 , - 1376 , - 2271 , - 1246 , - 29 , - 348 , - 3931 , - 2138 , - 1881 , - 4888 , - 2519 , - 1686 , - 4117 , - 1172 , - 4947 , - 1618 , - 3281 , - 1296 , - 2575 , - 3662 , - 1101 , - 1804 , - 2315 , - 4362 , - 4489 , - 4424 , - 711 , - 262 , - 4805 , - 516 , - 4675 , - 3458 , - 3777 , - 2176 , - 383 , - 126 , - 3133 , - 764 , - 5115 , - 2362 , - 4601 , - 3192 , - 5047 , - 1526 , - 4725 , - 820 , - 1907 , - 4530 , - 49 , - 560 , - 2607 , - 2734 , - 2669 , - 4140 , - 3691 , - 3050 , - 3945 , - 2920 , - 1703 , - 2022 , - 421 , - 3812 , - 3555 , - 1378 , - 4193 , - 3360 , - 607 , - 2846 , - 1437 , - 3292 , - 4955 , - 2970 , - 4249 , - 152 , - 2775 , - 3478 , - 3989 , - 852 , - 979 , - 914 , - 2385 , - 1936 , - 1295 , - 2190 , - 1165 , - 5132 , - 267 , - 3850 , - 2057 , - 1800 , - 4807 , - 2438 , - 1605 , - 4036 , - 1091 , - 4866 , - 1537 , - 3200 , - 1215 , - 2494 , - 3581 , - 1020 , - 1723 , - 2234 , - 4281 , - 4408 , - 4343 , - 630 , - 181 , - 4724 , - 435 , - 4594 , - 3377 , - 3696 , - 2095 , - 302 , - 45 , - 3052 , - 683 , - 5034 , - 2281 , - 4520 , - 3111 , - 4966 , - 1445 , - 4644 , - 739 , - 1826 , - 4449 , - 5152 , - 479 , - 2526 , - 2653 , - 2588 , - 4059 , - 3610 , - 2969 , - 3864 , - 2839 , - 1622 , - 1941 , - 340 , - 3731 , - 3474 , - 1297 , - 4112 , - 3279 , - 526 , - 2765 , - 1356 , - 3211 , - 4874 , - 2889 , - 4168 , - 71 , - 2694 , - 3397 , - 3908 , - 771 , - 898 , - 833 , - 2304 , - 1855 , - 1214 , - 2109 , - 1084 , - 5051 , - 186 , - 3769 , - 1976 , - 1719 , - 4726 , - 2357 , - 1524 , - 3955 , - 1010 , - 4785 , - 1456 , - 3119 , - 1134 , - 2413 , - 3500 , - 939 , - 1642 , - 2153 , - 4200 , - 4327 , - 4262 , - 549 , - 100 , - 4643 , - 354 , - 4513 , - 3296 , - 3615 , - 2014 , - 221 , - 5148 , - 2971 , - 602 , - 4953 , - 2200 , - 4439 , - 3030 , - 4885 , - 1364 , - 4563 , - 658 , - 1745 , - 4368 , - 5071 , - 398 , - 2445 , - 2572 , - 2507 , - 3978 , - 3529 , - 2888 , - 3783 , - 2758 , - 1541 , - 1860 , - 259 , - 3650 , - 3393 , - 1216 , - 4031 , - 3198 , - 445 , - 2684 , - 1275 , - 3130 , - 4793 , - 2808 , - 4087 , - 5174 , - 2613 , - 3316 , - 3827 , - 690 , - 817 , - 752 , - 2223 , - 1774 , - 1133 , - 2028 , - 1003 , - 4970 , - 105 , - 3688 , - 1895 , - 1638 , - 4645 , - 2276 , - 1443 , - 3874 , - 929 , - 4704 , - 1375 , - 3038 , - 1053 , - 2332 , - 3419 , - 858 , - 1561 , - 2072 , - 4119 , - 4246 , - 4181 , - 468 , - 19 , - 4562 , - 273 , - 4432 , - 3215 , - 3534 , - 1933 , - 140 , - 5067 , - 2890 , - 521 , - 4872 , - 2119 , - 4358 , - 2949 , - 4804 , - 1283 , - 4482 , - 577 , - 1664 , - 4287 , - 4990 , - 317 , - 2364 , - 2491 , - 2426 , - 3897 , - 3448 , - 2807 , - 3702 , - 2677 , - 1460 , - 1779 , - 178 , - 3569 , - 3312 , - 1135 , - 3950 , - 3117 , - 364 , - 2603 , - 1194 , - 3049 , - 4712 , - 2727 , - 4006 , - 5093 , - 2532 , - 3235 , - 3746 , - 609 , - 736 , - 671 , - 2142 , - 1693 , - 1052 , - 1947 , - 922 , - 4889 , - 24 , - 3607 , - 1814 , - 1557 , - 4564 , - 2195 , - 1362 , - 3793 , - 848 , - 4623 , - 1294 , - 2957 , - 972 , - 2251 , - 3338 , - 777 , - 1480 , - 1991 , - 4038 , - 4165 , - 4100 , - 387 , - 5122 , - 4481 , - 192 , - 4351 , - 3134 , - 3453 , - 1852 , - 59 , - 4986 , - 2809 , - 440 , - 4791 , - 2038 , - 4277 , - 2868 , - 4723 , - 1202 , - 4401 , - 496 , - 1583 , - 4206 , - 4909 , - 236 , - 2283 , - 2410 , - 2345 , - 3816 , - 3367 , - 2726 , - 3621 , - 2596 , - 1379 , - 1698 , - 97 , - 3488 , - 3231 , - 1054 , - 3869 , - 3036 , - 283 , - 2522 , - 1113 , - 2968 , - 4631 , - 2646 , - 3925 , - 5012 , - 2451 , - 3154 , - 3665 , - 528 , - 655 , - 590 , - 2061 , - 1612 , - 971 , - 1866 , - 841 , - 4808 , - 5127 , - 3526 , - 1733 , - 1476 , - 4483 , - 2114 , - 1281 , - 3712 , - 767 , - 4542 , - 1213 , - 2876 , - 891 , - 2170 , - 3257 , - 696 , - 1399 , - 1910 , - 3957 , - 4084 , - 4019 , - 306 , - 5041 , - 4400 , - 111 , - 4270 , - 3053 , - 3372 , - 1771 , - 5162 , - 4905 , - 2728 , - 359 , - 4710 , - 1957 , - 4196 , - 2787 , - 4642 , - 1121 , - 4320 , - 415 , - 1502 , - 4125 , - 4828 , - 155 , - 2202 , - 2329 , - 2264 , - 3735 , - 3286 , - 2645 , - 3540 , - 2515 , - 1298 , - 1617 , - 16 , - 3407 , - 3150 , - 973 , - 3788 , - 2955 , - 202 , - 2441 , - 1032 , - 2887 , - 4550 , - 2565 , - 3844 , - 4931 , - 2370 , - 3073 , - 3584 , - 447 , - 574 , - 509 , - 1980 , - 1531 , - 890 , - 1785 , - 760 , - 4727 , - 5046 , - 3445 , - 1652 , - 1395 , - 4402 , - 2033 , - 1200 , - 3631 , - 686 , - 4461 , - 1132 , - 2795 , - 810 , - 2089 , - 3176 , - 615 , - 1318 , - 1829 , - 3876 , - 4003 , - 3938 , - 225 , - 4960 , - 4319 , - 30 , - 4189 , - 2972 , - 3291 , - 1690 , - 5081 , - 4824 , - 2647 , - 278 , - 4629 , - 1876 , - 4115 , - 2706 , - 4561 , - 1040 , - 4239 , - 334 , - 1421 , - 4044 , - 4747 , - 74 , - 2121 , - 2248 , - 2183 , - 3654 , - 3205 , - 2564 , - 3459 , - 2434 , - 1217 , - 1536 , - 5119 , - 3326 , - 3069 , - 892 , - 3707 , - 2874 , - 121 , - 2360 , - 951 , - 2806 , - 4469 , - 2484 , - 3763 , - 4850 , - 2289 , - 2992 , - 3503 , - 366 , - 493 , - 428 , - 1899 , - 1450 , - 809 , - 1704 , - 679 , - 4646 , - 4965 , - 3364 , - 1571 , - 1314 , - 4321 , - 1952 , - 1119 , - 3550 , - 605 , - 4380 , - 1051 , - 2714 , - 729 , - 2008 , - 3095 , - 534 , - 1237 , - 1748 , - 3795 , - 3922 , - 3857 , - 144 , - 4879 , - 4238 , - 5133 , - 4108 , - 2891 , - 3210 , - 1609 , - 5000 , - 4743 , - 2566 , - 197 , - 4548 , - 1795 , - 4034 , - 2625 , - 4480 , - 959 , - 4158 , - 253 , - 1340 , - 3963 , - 4666 , - 5177 , - 2040 , - 2167 , - 2102 , - 3573 , - 3124 , - 2483 , - 3378 , - 2353 , - 1136 , - 1455 , - 5038 , - 3245 , - 2988 , - 811 , - 3626 , - 2793 , - 40 , - 2279 , - 870 , - 2725 , - 4388 , - 2403 , - 3682 , - 4769 , - 2208 , - 2911 , - 3422 , - 285 , - 412 , - 347 , - 1818 , - 1369 , - 728 , - 1623 , - 598 , - 4565 , - 4884 , - 3283 , - 1490 , - 1233 , - 4240 , - 1871 , - 1038 , - 3469 , - 524 , - 4299 , - 970 , - 2633 , - 648 , - 1927 , - 3014 , - 453 , - 1156 , - 1667 , - 3714 , - 3841 , - 3776 , - 63 , - 4798 , - 4157 , - 5052 , - 4027 , - 2810 , - 3129 , - 1528 , - 4919 , - 4662 , - 2485 , - 116 , - 4467 , - 1714 , - 3953 , - 2544 , - 4399 , - 878 , - 4077 , - 172 , - 1259 , - 3882 , - 4585 , - 5096 , - 1959 , - 2086 , - 2021 , - 3492 , - 3043 , - 2402 , - 3297 , - 2272 , - 1055 , - 1374 , - 4957 , - 3164 , - 2907 , - 730 , - 3545 , - 2712 , - 5143 , - 2198 , - 789 , - 2644 , - 4307 , - 2322 , - 3601 , - 4688 , - 2127 , - 2830 , - 3341 , - 204 , - 331 , - 266 , - 1737 , - 1288 , - 647 , - 1542 , - 517 , - 4484 , - 4803 , - 3202 , - 1409 , - 1152 , - 4159 , - 1790 , - 957 , - 3388 , - 443 , - 4218 , - 889 , - 2552 , - 567 , - 1846 , - 2933 , - 372 , - 1075 , - 1586 , - 3633 , - 3760 , - 3695 , - 5166 , - 4717 , - 4076 , - 4971 , - 3946 , - 2729 , - 3048 , - 1447 , - 4838 , - 4581 , - 2404 , - 35 , - 4386 , - 1633 , - 3872 , - 2463 , - 4318 , - 797 , - 3996 , - 91 , - 1178 , - 3801 , - 4504 , - 5015 , - 1878 , - 2005 , - 1940 , - 3411 , - 2962 , - 2321 , - 3216 , - 2191 , - 974 , - 1293 , - 4876 , - 3083 , - 2826 , - 649 , - 3464 , - 2631 , - 5062 , - 2117 , - 708 , - 2563 , - 4226 , - 2241 , - 3520 , - 4607 , - 2046 , - 2749 , - 3260 , - 123 , - 250 , - 185 , - 1656 , - 1207 , - 566 , - 1461 , - 436 , - 4403 , - 4722 , - 3121 , - 1328 , - 1071 , - 4078 , - 1709 , - 876 , - 3307 , - 362 , - 4137 , - 808 , - 2471 , - 486 , - 1765 , - 2852 , - 291 , - 994 , - 1505 , - 3552 , - 3679 , - 3614 , - 5085 , - 4636 , - 3995 , - 4890 , - 3865 , - 2648 , - 2967 , - 1366 , - 4757 , - 4500 , - 2323 , - 5138 , - 4305 , - 1552 , - 3791 , - 2382 , - 4237 , - 716 , - 3915 , - 10 , - 1097 , - 3720 , - 4423 , - 4934 , - 1797 , - 1924 , - 1859 , - 3330 , - 2881 , - 2240 , - 3135 , - 2110 , - 893 , - 1212 , - 4795 , - 3002 , - 2745 , - 568 , - 3383 , - 2550 , - 4981 , - 2036 , - 627 , - 2482 , - 4145 , - 2160 , - 3439 , - 4526 , - 1965 , - 2668 , - 3179 , - 42 , - 169 , - 104 , - 1575 , - 1126 , - 485 , - 1380 , - 355 , - 4322 , - 4641 , - 3040 , - 1247 , - 990 , - 3997 , - 1628 , - 795 , - 3226 , - 281 , - 4056 , - 727 , - 2390 , - 405 , - 1684 , - 2771 , - 210 , - 913 , - 1424 , - 3471 , - 3598 , - 3533 , - 5004 , - 4555 , - 3914 , - 4809 , - 3784 , - 2567 , - 2886 , - 1285 , - 4676 , - 4419 , - 2242 , - 5057 , - 4224 , - 1471 , - 3710 , - 2301 , - 4156 , - 635 , - 3834 , - 5113 , - 1016 , - 3639 , - 4342 , - 4853 , - 1716 , - 1843 , - 1778 , - 3249 , - 2800 , - 2159 , - 3054 , - 2029 , - 812 , - 1131 , - 4714 , - 2921 , - 2664 , - 487 , - 3302 , - 2469 , - 4900 , - 1955 , - 546 , - 2401 , - 4064 , - 2079 , - 3358 , - 4445 , - 1884 , - 2587 , - 3098 , - 5145 , - 88 , - 23 , - 1494 , - 1045 , - 404 , - 1299 , - 274 , - 4241 , - 4560 , - 2959 , - 1166 , - 909 , - 3916 , - 1547 , - 714 , - 3145 , - 200 , - 3975 , - 646 , - 2309 , - 324 , - 1603 , - 2690 , - 129 , - 832 , - 1343 , - 3390 , - 3517 , - 3452 , - 4923 , - 4474 , - 3833 , - 4728 , - 3703 , - 2486 , - 2805 , - 1204 , - 4595 , - 4338 , - 2161 , - 4976 , - 4143 , - 1390 , - 3629 , - 2220 , - 4075 , - 554 , - 3753 , - 5032 , - 935 , - 3558 , - 4261 , - 4772 , - 1635 , - 1762 , - 1697 , - 3168 , - 2719 , - 2078 , - 2973 , - 1948 , - 731 , - 1050 , - 4633 , - 2840 , - 2583 , - 406 , - 3221 , - 2388 , - 4819 , - 1874 , - 465 , - 2320 , - 3983 , - 1998 , - 3277 , - 4364 , - 1803 , - 2506 , - 3017 , - 5064 , - 7 , - 5126 , - 1413 , - 964 , - 323 , - 1218 , - 193 , - 4160 , - 4479 , - 2878 , - 1085 , - 828 , - 3835 , - 1466 , - 633 , - 3064 , - 119 , - 3894 , - 565 , - 2228 , - 243 , - 1522 , - 2609 , - 48 , - 751 , - 1262 , - 3309 , - 3436 , - 3371 , - 4842 , - 4393 , - 3752 , - 4647 , - 3622 , - 2405 , - 2724 , - 1123 , - 4514 , - 4257 , - 2080 , - 4895 , - 4062 , - 1309 , - 3548 , - 2139 , - 3994 , - 473 , - 3672 , - 4951 , - 854 , - 3477 , - 4180 , - 4691 , - 1554 , - 1681 , - 1616 , - 3087 , - 2638 , - 1997 , - 2892 , - 1867 , - 650 , - 969 , - 4552 , - 2759 , - 2502 , - 325 , - 3140 , - 2307 , - 4738 , - 1793 , - 384 , - 2239 , - 3902 , - 1917 , - 3196 , - 4283 , - 1722 , - 2425 , - 2936 , - 4983 , - 5110 , - 5045 , - 1332 , - 883 , - 242 , - 1137 , - 112 , - 4079 , - 4398 , - 2797 , - 1004 , - 747 , - 3754 , - 1385 , - 552 , - 2983 , - 38 , - 3813 , - 484 , - 2147 , - 162 , - 1441 , - 2528 , - 5151 , - 670 , - 1181 , - 3228 , - 3355 , - 3290 , - 4761 , - 4312 , - 3671 , - 4566 , - 3541 , - 2324 , - 2643 , - 1042 , - 4433 , - 4176 , - 1999 , - 4814 , - 3981 , - 1228 , - 3467 , - 2058 , - 3913 , - 392 , - 3591 , - 4870 , - 773 , - 3396 , - 4099 , - 4610 , - 1473 , - 1600 , - 1535 , - 3006 , - 2557 , - 1916 , - 2811 , - 1786 , - 569 , - 888 , - 4471 , - 2678 , - 2421 , - 244 , - 3059 , - 2226 , - 4657 , - 1712 , - 303 , - 2158 , - 3821 , - 1836 , - 3115 , - 4202 , - 1641 , - 2344 , - 2855 , - 4902 , - 5029 , - 4964 , - 1251 , - 802 , - 161 , - 1056 , - 31 , - 3998 , - 4317 , - 2716 , - 923 , - 666 , - 3673 , - 1304 , - 471 , - 2902 , - 5141 , - 3732 , - 403 , - 2066 , - 81 , - 1360 , - 2447 , - 5070 , - 589 , - 1100 , - 3147 , - 3274 , - 3209 , - 4680 , - 4231 , - 3590 , - 4485 , - 3460 , - 2243 , - 2562 , - 961 , - 4352 , - 4095 , - 1918 , - 4733 , - 3900 , - 1147 , - 3386 , - 1977 , - 3832 , - 311 , - 3510 , - 4789 , - 692 , - 3315 , - 4018 , - 4529 , - 1392 , - 1519 , - 1454 , - 2925 , - 2476 , - 1835 , - 2730 , - 1705 , - 488 , - 807 , - 4390 , - 2597 , - 2340 , - 163 , - 2978 , - 2145 , - 4576 , - 1631 , - 222 , - 2077 , - 3740 , - 1755 , - 3034 , - 4121 , - 1560 , - 2263 , - 2774 , - 4821 , - 4948 , - 4883 , - 1170 , - 721 , - 80 , - 975 , - 5134 , - 3917 , - 4236 , - 2635 , - 842 , - 585 , - 3592 , - 1223 , - 390 , - 2821 , - 5060 , - 3651 , - 322 , - 1985 , - 0 , - 2587 , - 4682 , - 1693 , - 2148 , - 1455 , - 2894 , - 1873 , - 1672 , - 2947 , - 3730 , - 4677 , - 3820 , - 1815 , - 1942 , - 4857 , - 3344 , - 3307 , - 2778 , - 2413 , - 244 , - 2175 , - 990 , - 2593 , - 5016 , - 3667 , - 1826 , - 149 , - 1916 , - 2535 , - 38 , - 329 , - 1440 , - 4027 , - 874 , - 3133 , - 3588 , - 2895 , - 4334 , - 3313 , - 3112 , - 4387 , - 5170 , - 869 , - 12 , - 3255 , - 3382 , - 1049 , - 4784 , - 4747 , - 4218 , - 3853 , - 1684 , - 3615 , - 2430 , - 4033 , - 1208 , - 5107 , - 3266 , - 1589 , - 3356 , - 3975 , - 1478 , - 1769 , - 2880 , - 219 , - 2314 , - 4573 , - 5028 , - 4335 , - 526 , - 4753 , - 4552 , - 579 , - 1362 , - 2309 , - 1452 , - 4695 , - 4822 , - 2489 , - 976 , - 939 , - 410 , - 45 , - 3124 , - 5055 , - 3870 , - 225 , - 2648 , - 1299 , - 4706 , - 3029 , - 4796 , - 167 , - 2918 , - 3209 , - 4320 , - 1659 , - 3754 , - 765 , - 1220 , - 527 , - 1966 , - 945 , - 744 , - 2019 , - 2802 , - 3749 , - 2892 , - 887 , - 1014 , - 3929 , - 2416 , - 2379 , - 1850 , - 1485 , - 4564 , - 1247 , - 62 , - 1665 , - 4088 , - 2739 , - 898 , - 4469 , - 988 , - 1607 , - 4358 , - 4649 , - 512 , - 3099 , - 5194 , - 2205 , - 2660 , - 1967 , - 3406 , - 2385 , - 2184 , - 3459 , - 4242 , - 5189 , - 4332 , - 2327 , - 2454 , - 121 , - 3856 , - 3819 , - 3290 , - 2925 , - 756 , - 2687 , - 1502 , - 3105 , - 280 , - 4179 , - 2338 , - 661 , - 2428 , - 3047 , - 550 , - 841 , - 1952 , - 4539 , - 1386 , - 3645 , - 4100 , - 3407 , - 4846 , - 3825 , - 3624 , - 4899 , - 434 , - 1381 , - 524 , - 3767 , - 3894 , - 1561 , - 48 , - 11 , - 4730 , - 4365 , - 2196 , - 4127 , - 2942 , - 4545 , - 1720 , - 371 , - 3778 , - 2101 , - 3868 , - 4487 , - 1990 , - 2281 , - 3392 , - 731 , - 2826 , - 5085 , - 292 , - 4847 , - 1038 , - 17 , - 5064 , - 1091 , - 1874 , - 2821 , - 1964 , - 5207 , - 86 , - 3001 , - 1488 , - 1451 , - 922 , - 557 , - 3636 , - 319 , - 4382 , - 737 , - 3160 , - 1811 , - 5218 , - 3541 , - 60 , - 679 , - 3430 , - 3721 , - 4832 , - 2171 , - 4266 , - 1277 , - 1732 , - 1039 , - 2478 , - 1457 , - 1256 , - 2531 , - 3314 , - 4261 , - 3404 , - 1399 , - 1526 , - 4441 , - 2928 , - 2891 , - 2362 , - 1997 , - 5076 , - 1759 , - 574 , - 2177 , - 4600 , - 3251 , - 1410 , - 4981 , - 1500 , - 2119 , - 4870 , - 5161 , - 1024 , - 3611 , - 458 , - 2717 , - 3172 , - 2479 , - 3918 , - 2897 , - 2696 , - 3971 , - 4754 , - 453 , - 4844 , - 2839 , - 2966 , - 633 , - 4368 , - 4331 , - 3802 , - 3437 , - 1268 , - 3199 , - 2014 , - 3617 , - 792 , - 4691 , - 2850 , - 1173 , - 2940 , - 3559 , - 1062 , - 1353 , - 2464 , - 5051 , - 1898 , - 4157 , - 4612 , - 3919 , - 110 , - 4337 , - 4136 , - 163 , - 946 , - 1893 , - 1036 , - 4279 , - 4406 , - 2073 , - 560 , - 523 , - 5242 , - 4877 , - 2708 , - 4639 , - 3454 , - 5057 , - 2232 , - 883 , - 4290 , - 2613 , - 4380 , - 4999 , - 2502 , - 2793 , - 3904 , - 1243 , - 3338 , - 349 , - 804 , - 111 , - 1550 , - 529 , - 328 , - 1603 , - 2386 , - 3333 , - 2476 , - 471 , - 598 , - 3513 , - 2000 , - 1963 , - 1434 , - 1069 , - 4148 , - 831 , - 4894 , - 1249 , - 3672 , - 2323 , - 482 , - 4053 , - 572 , - 1191 , - 3942 , - 4233 , - 96 , - 2683 , - 4778 , - 1789 , - 2244 , - 1551 , - 2990 , - 1969 , - 1768 , - 3043 , - 3826 , - 4773 , - 3916 , - 1911 , - 2038 , - 4953 , - 3440 , - 3403 , - 2874 , - 2509 , - 340 , - 2271 , - 1086 , - 2689 , - 5112 , - 3763 , - 1922 , - 245 , - 2012 , - 2631 , - 134 , - 425 , - 1536 , - 4123 , - 970 , - 3229 , - 3684 , - 2991 , - 4430 , - 3409 , - 3208 , - 4483 , - 18 , - 965 , - 108 , - 3351 , - 3478 , - 1145 , - 4880 , - 4843 , - 4314 , - 3949 , - 1780 , - 3711 , - 2526 , - 4129 , - 1304 , - 5203 , - 3362 , - 1685 , - 3452 , - 4071 , - 1574 , - 1865 , - 2976 , - 315 , - 2410 , - 4669 , - 5124 , - 4431 , - 622 , - 4849 , - 4648 , - 675 , - 1458 , - 2405 , - 1548 , - 4791 , - 4918 , - 2585 , - 1072 , - 1035 , - 506 , - 141 , - 3220 , - 5151 , - 3966 , - 321 , - 2744 , - 1395 , - 4802 , - 3125 , - 4892 , - 263 , - 3014 , - 3305 , - 4416 , - 1755 , - 3850 , - 861 , - 1316 , - 623 , - 2062 , - 1041 , - 840 , - 2115 , - 2898 , - 3845 , - 2988 , - 983 , - 1110 , - 4025 , - 2512 , - 2475 , - 1946 , - 1581 , - 4660 , - 1343 , - 158 , - 1761 , - 4184 , - 2835 , - 994 , - 4565 , - 1084 , - 1703 , - 4454 , - 4745 , - 608 , - 3195 , - 42 , - 2301 , - 2756 , - 2063 , - 3502 , - 2481 , - 2280 , - 3555 , - 4338 , - 37 , - 4428 , - 2423 , - 2550 , - 217 , - 3952 , - 3915 , - 3386 , - 3021 , - 852 , - 2783 , - 1598 , - 3201 , - 376 , - 4275 , - 2434 , - 757 , - 2524 , - 3143 , - 646 , - 937 , - 2048 , - 4635 , - 1482 , - 3741 , - 4196 , - 3503 , - 4942 , - 3921 , - 3720 , - 4995 , - 530 , - 1477 , - 620 , - 3863 , - 3990 , - 1657 , - 144 , - 107 , - 4826 , - 4461 , - 2292 , - 4223 , - 3038 , - 4641 , - 1816 , - 467 , - 3874 , - 2197 , - 3964 , - 4583 , - 2086 , - 2377 , - 3488 , - 827 , - 2922 , - 5181 , - 388 , - 4943 , - 1134 , - 113 , - 5160 , - 1187 , - 1970 , - 2917 , - 2060 , - 55 , - 182 , - 3097 , - 1584 , - 1547 , - 1018 , - 653 , - 3732 , - 415 , - 4478 , - 833 , - 3256 , - 1907 , - 66 , - 3637 , - 156 , - 775 , - 3526 , - 3817 , - 4928 , - 2267 , - 4362 , - 1373 , - 1828 , - 1135 , - 2574 , - 1553 , - 1352 , - 2627 , - 3410 , - 4357 , - 3500 , - 1495 , - 1622 , - 4537 , - 3024 , - 2987 , - 2458 , - 2093 , - 5172 , - 1855 , - 670 , - 2273 , - 4696 , - 3347 , - 1506 , - 5077 , - 1596 , - 2215 , - 4966 , - 9 , - 1120 , - 3707 , - 554 , - 2813 , - 3268 , - 2575 , - 4014 , - 2993 , - 2792 , - 4067 , - 4850 , - 549 , - 4940 , - 2935 , - 3062 , - 729 , - 4464 , - 4427 , - 3898 , - 3533 , - 1364 , - 3295 , - 2110 , - 3713 , - 888 , - 4787 , - 2946 , - 1269 , - 3036 , - 3655 , - 1158 , - 1449 , - 2560 , - 5147 , - 1994 , - 4253 , - 4708 , - 4015 , - 206 , - 4433 , - 4232 , - 259 , - 1042 , - 1989 , - 1132 , - 4375 , - 4502 , - 2169 , - 656 , - 619 , - 90 , - 4973 , - 2804 , - 4735 , - 3550 , - 5153 , - 2328 , - 979 , - 4386 , - 2709 , - 4476 , - 5095 , - 2598 , - 2889 , - 4000 , - 1339 , - 3434 , - 445 , - 900 , - 207 , - 1646 , - 625 , - 424 , - 1699 , - 2482 , - 3429 , - 2572 , - 567 , - 694 , - 3609 , - 2096 , - 2059 , - 1530 , - 1165 , - 4244 , - 927 , - 4990 , - 1345 , - 3768 , - 2419 , - 578 , - 4149 , - 668 , - 1287 , - 4038 , - 4329 , - 192 , - 2779 , - 4874 , - 1885 , - 2340 , - 1647 , - 3086 , - 2065 , - 1864 , - 3139 , - 3922 , - 4869 , - 4012 , - 2007 , - 2134 , - 5049 , - 3536 , - 3499 , - 2970 , - 2605 , - 436 , - 2367 , - 1182 , - 2785 , - 5208 , - 3859 , - 2018 , - 341 , - 2108 , - 2727 , - 230 , - 521 , - 1632 , - 4219 , - 1066 , - 3325 , - 3780 , - 3087 , - 4526 , - 3505 , - 3304 , - 4579 , - 114 , - 1061 , - 204 , - 3447 , - 3574 , - 1241 , - 4976 , - 4939 , - 4410 , - 4045 , - 1876 , - 3807 , - 2622 , - 4225 , - 1400 , - 51 , - 3458 , - 1781 , - 3548 , - 4167 , - 1670 , - 1961 , - 3072 , - 411 , - 2506 , - 4765 , - 5220 , - 4527 , - 718 , - 4945 , - 4744 , - 771 , - 1554 , - 2501 , - 1644 , - 4887 , - 5014 , - 2681 , - 1168 , - 1131 , - 602 , - 237 , - 3316 , - 5247 , - 4062 , - 417 , - 2840 , - 1491 , - 4898 , - 3221 , - 4988 , - 359 , - 3110 , - 3401 , - 4512 , - 1851 , - 3946 , - 957 , - 1412 , - 719 , - 2158 , - 1137 , - 936 , - 2211 , - 2994 , - 3941 , - 3084 , - 1079 , - 1206 , - 4121 , - 2608 , - 2571 , - 2042 , - 1677 , - 4756 , - 1439 , - 254 , - 1857 , - 4280 , - 2931 , - 1090 , - 4661 , - 1180 , - 1799 , - 4550 , - 4841 , - 704 , - 3291 , - 138 , - 2397 , - 2852 , - 2159 , - 3598 , - 2577 , - 2376 , - 3651 , - 4434 , - 133 , - 4524 , - 2519 , - 2646 , - 313 , - 4048 , - 4011 , - 3482 , - 3117 , - 948 , - 2879 , - 1694 , - 3297 , - 472 , - 4371 , - 2530 , - 853 , - 2620 , - 3239 , - 742 , - 1033 , - 2144 , - 4731 , - 1578 , - 3837 , - 4292 , - 3599 , - 5038 , - 4017 , - 3816 , - 5091 , - 626 , - 1573 , - 716 , - 3959 , - 4086 , - 1753 , - 240 , - 203 , - 4922 , - 4557 , - 2388 , - 4319 , - 3134 , - 4737 , - 1912 , - 563 , - 3970 , - 2293 , - 4060 , - 4679 , - 2182 , - 2473 , - 3584 , - 923 , - 3018 , - 29 , - 484 , - 5039 , - 1230 , - 209 , - 8 , - 1283 , - 2066 , - 3013 , - 2156 , - 151 , - 278 , - 3193 , - 1680 , - 1643 , - 1114 , - 749 , - 3828 , - 511 , - 4574 , - 929 , - 3352 , - 2003 , - 162 , - 3733 , - 252 , - 871 , - 3622 , - 3913 , - 5024 , - 2363 , - 4458 , - 1469 , - 1924 , - 1231 , - 2670 , - 1649 , - 1448 , - 2723 , - 3506 , - 4453 , - 3596 , - 1591 , - 1718 , - 4633 , - 3120 , - 3083 , - 2554 , - 2189 , - 20 , - 1951 , - 766 , - 2369 , - 4792 , - 3443 , - 1602 , - 5173 , - 1692 , - 2311 , - 5062 , - 105 , - 1216 , - 3803 , - 650 , - 2909 , - 3364 , - 2671 , - 4110 , - 3089 , - 2888 , - 4163 , - 4946 , - 645 , - 5036 , - 3031 , - 3158 , - 825 , - 4560 , - 4523 , - 3994 , - 3629 , - 1460 , - 3391 , - 2206 , - 3809 , - 984 , - 4883 , - 3042 , - 1365 , - 3132 , - 3751 , - 1254 , - 1545 , - 2656 , - 5243 , - 2090 , - 4349 , - 4804 , - 4111 , - 302 , - 4529 , - 4328 , - 355 , - 1138 , - 2085 , - 1228 , - 4471 , - 4598 , - 2265 , - 752 , - 715 , - 186 , - 5069 , - 2900 , - 4831 , - 3646 , - 1 , - 2424 , - 1075 , - 4482 , - 2805 , - 4572 , - 5191 , - 2694 , - 2985 , - 4096 , - 1435 , - 3530 , - 541 , - 996 , - 303 , - 1742 , - 721 , - 520 , - 1795 , - 2578 , - 3525 , - 2668 , - 663 , - 790 , - 3705 , - 2192 , - 2155 , - 1626 , - 1261 , - 4340 , - 1023 , - 5086 , - 1441 , - 3864 , - 2515 , - 674 , - 4245 , - 764 , - 1383 , - 4134 , - 4425 , - 288 , - 2875 , - 4970 , - 1981 , - 2436 , - 1743 , - 3182 , - 2161 , - 1960 , - 3235 , - 4018 , - 4965 , - 4108 , - 2103 , - 2230 , - 5145 , - 3632 , - 3595 , - 3066 , - 2701 , - 532 , - 2463 , - 1278 , - 2881 , - 56 , - 3955 , - 2114 , - 437 , - 2204 , - 2823 , - 326 , - 617 , - 1728 , - 4315 , - 1162 , - 3421 , - 3876 , - 3183 , - 4622 , - 3601 , - 3400 , - 4675 , - 210 , - 1157 , - 300 , - 3543 , - 3670 , - 1337 , - 5072 , - 5035 , - 4506 , - 4141 , - 1972 , - 3903 , - 2718 , - 4321 , - 1496 , - 147 , - 3554 , - 1877 , - 3644 , - 4263 , - 1766 , - 2057 , - 3168 , - 507 , - 2602 , - 4861 , - 68 , - 4623 , - 814 , - 5041 , - 4840 , - 867 , - 1650 , - 2597 , - 1740 , - 4983 , - 5110 , - 2777 , - 1264 , - 1227 , - 698 , - 333 , - 3412 , - 95 , - 4158 , - 513 , - 2936 , - 1587 , - 4994 , - 3317 , - 5084 , - 455 , - 3206 , - 3497 , - 4608 , - 1947 , - 4042 , - 1053 , - 1508 , - 815 , - 2254 , - 1233 , - 1032 , - 2307 , - 3090 , - 4037 , - 3180 , - 1175 , - 1302 , - 4217 , - 2704 , - 2667 , - 2138 , - 1773 , - 4852 , - 1535 , - 350 , - 1953 , - 4376 , - 3027 , - 1186 , - 4757 , - 1276 , - 1895 , - 4646 , - 4937 , - 800 , - 3387 , - 234 , - 2493 , - 2948 , - 2255 , - 3694 , - 2673 , - 2472 , - 3747 , - 4530 , - 229 , - 4620 , - 2615 , - 2742 , - 409 , - 4144 , - 4107 , - 3578 , - 3213 , - 1044 , - 2975 , - 1790 , - 3393 , - 568 , - 4467 , - 2626 , - 949 , - 2716 , - 3335 , - 838 , - 1129 , - 2240 , - 4827 , - 1674 , - 3933 , - 4388 , - 3695 , - 5134 , - 4113 , - 3912 , - 5187 , - 722 , - 1669 , - 812 , - 4055 , - 4182 , - 1849 , - 336 , - 299 , - 5018 , - 4653 , - 2484 , - 4415 , - 3230 , - 4833 , - 2008 , - 659 , - 4066 , - 2389 , - 4156 , - 4775 , - 2278 , - 2569 , - 3680 , - 1019 , - 3114 , - 125 , - 580 , - 5135 , - 1326 , - 305 , - 104 , - 1379 , - 2162 , - 3109 , - 2252 , - 247 , - 374 , - 3289 , - 1776 , - 1739 , - 1210 , - 845 , - 3924 , - 607 , - 4670 , - 1025 , - 3448 , - 2099 , - 258 , - 3829 , - 348 , - 967 , - 3718 , - 4009 , - 5120 , - 2459 , - 4554 , - 1565 , - 2020 , - 1327 , - 2766 , - 1745 , - 1544 , - 2819 , - 3602 , - 4549 , - 3692 , - 1687 , - 1814 , - 4729 , - 3216 , - 3179 , - 2650 , - 2285 , - 116 , - 2047 , - 862 , - 2465 , - 4888 , - 3539 , - 1698 , - 21 , - 1788 , - 2407 , - 5158 , - 201 , - 1312 , - 3899 , - 746 , - 3005 , - 3460 , - 2767 , - 4206 , - 3185 , - 2984 , - 4259 , - 5042 , - 741 , - 5132 , - 3127 , - 3254 , - 921 , - 4656 , - 4619 , - 4090 , - 3725 , - 1556 , - 3487 , - 2302 , - 3905 , - 1080 , - 4979 , - 3138 , - 1461 , - 3228 , - 3847 , - 1350 , - 1641 , - 2752 , - 91 , - 2186 , - 4445 , - 4900 , - 4207 , - 398 , - 4625 , - 4424 , - 451 , - 1234 , - 2181 , - 1324 , - 4567 , - 4694 , - 2361 , - 848 , - 811 , - 282 , - 5165 , - 2996 , - 4927 , - 3742 , - 97 , - 2520 , - 1171 , - 4578 , - 2901 , - 4668 , - 39 , - 2790 , - 3081 , - 4192 , - 1531 , - 3626 , - 637 , - 1092 , - 399 , - 1838 , - 817 , - 616 , - 1891 , - 2674 , - 3621 , - 2764 , - 759 , - 886 , - 3801 , - 2288 , - 2251 , - 1722 , - 1357 , - 4436 , - 1119 , - 5182 , - 1537 , - 3960 , - 2611 , - 770 , - 4341 , - 860 , - 1479 , - 4230 , - 4521 , - 384 , - 2971 , - 5066 , - 2077 , - 2532 , - 1839 , - 3278 , - 2257 , - 2056 , - 3331 , - 4114 , - 5061 , - 4204 , - 2199 , - 2326 , - 5241 , - 3728 , - 3691 , - 3162 , - 2797 , - 628 , - 2559 , - 1374 , - 2977 , - 152 , - 4051 , - 2210 , - 533 , - 2300 , - 2919 , - 422 , - 713 , - 1824 , - 4411 , - 1258 , - 3517 , - 3972 , - 3279 , - 4718 , - 3697 , - 3496 , - 4771 , - 306 , - 1253 , - 396 , - 3639 , - 3766 , - 1433 , - 5168 , - 5131 , - 4602 , - 4237 , - 2068 , - 3999 , - 2814 , - 4417 , - 1592 , - 243 , - 3650 , - 1973 , - 3740 , - 4359 , - 1862 , - 2153 , - 3264 , - 603 , - 2698 , - 4957 , - 164 , - 4719 , - 910 , - 5137 , - 4936 , - 963 , - 1746 , - 2693 , - 1836 , - 5079 , - 5206 , - 2873 , - 1360 , - 1323 , - 794 , - 429 , - 3508 , - 191 , - 4254 , - 609 , - 3032 , - 1683 , - 5090 , - 3413 , - 5180 , - 551 , - 3302 , - 3593 , - 4704 , - 2043 , - 4138 , - 1149 , - 1604 , - 911 , - 2350 , - 1329 , - 1128 , - 2403 , - 3186 , - 4133 , - 3276 , - 1271 , - 1398 , - 4313 , - 2800 , - 2763 , - 2234 , - 1869 , - 4948 , - 1631 , - 446 , - 2049 , - 4472 , - 3123 , - 1282 , - 4853 , - 1372 , - 1991 , - 4742 , - 5033 , - 896 , - 3483 , - 330 , - 2589 , - 3044 , - 2351 , - 3790 , - 2769 , - 2568 , - 3843 , - 4626 , - 325 , - 4716 , - 2711 , - 2838 , - 505 , - 4240 , - 4203 , - 3674 , - 3309 , - 1140 , - 3071 , - 1886 , - 3489 , - 664 , - 4563 , - 2722 , - 1045 , - 2812 , - 3431 , - 934 , - 1225 , - 2336 , - 4923 , - 1770 , - 4029 , - 4484 , - 3791 , - 5230 , - 4209 , - 4008 , - 35 , - 818 , - 1765 , - 908 , - 4151 , - 4278 , - 1945 , - 432 , - 395 , - 5114 , - 4749 , - 2580 , - 4511 , - 3326 , - 4929 , - 2104 , - 755 , - 4162 , - 2485 , - 4252 , - 4871 , - 2374 , - 2665 , - 3776 , - 1115 , - 3210 , - 221 , - 676 , - 5231 , - 1422 , - 401 , - 200 , - 1475 , - 2258 , - 3205 , - 2348 , - 343 , - 470 , - 3385 , - 1872 , - 1835 , - 1306 , - 941 , - 4020 , - 703 , - 4766 , - 1121 , - 3544 , - 2195 , - 354 , - 3925 , - 444 , - 1063 , - 3814 , - 4105 , - 5216 , - 2555 , - 4650 , - 1661 , - 2116 , - 1423 , - 2862 , - 1841 , - 1640 , - 2915 , - 3698 , - 4645 , - 3788 , - 1783 , - 1910 , - 4825 , - 3312 , - 3275 , - 2746 , - 2381 , - 212 , - 2143 , - 958 , - 2561 , - 4984 , - 3635 , - 1794 , - 117 , - 1884 , - 2503 , - 6 , - 297 , - 1408 , - 3995 , - 842 , - 3101 , - 3556 , - 2863 , - 4302 , - 3281 , - 3080 , - 4355 , - 5138 , - 837 , - 5228 , - 3223 , - 3350 , - 1017 , - 4752 , - 4715 , - 4186 , - 3821 , - 1652 , - 3583 , - 2398 , - 4001 , - 1176 , - 5075 , - 3234 , - 1557 , - 3324 , - 3943 , - 1446 , - 1737 , - 2848 , - 187 , - 2282 , - 4541 , - 4996 , - 4303 , - 494 , - 4721 , - 4520 , - 547 , - 1330 , - 2277 , - 1420 , - 4663 , - 4790 , - 2457 , - 944 , - 907 , - 378 , - 13 , - 3092 , - 5023 , - 3838 , - 193 , - 2616 , - 1267 , - 4674 , - 2997 , - 4764 , - 135 , - 2886 , - 3177 , - 4288 , - 1627 , - 3722 , - 733 , - 1188 , - 495 , - 1934 , - 913 , - 712 , - 1987 , - 2770 , - 3717 , - 2860 , - 855 , - 982 , - 3897 , - 2384 , - 2347 , - 1818 , - 1453 , - 4532 , - 1215 , - 30 , - 1633 , - 4056 , - 2707 , - 866 , - 4437 , - 956 , - 1575 , - 4326 , - 4617 , - 480 , - 3067 , - 5162 , - 2173 , - 2628 , - 1935 , - 3374 , - 2353 , - 2152 , - 3427 , - 4210 , - 5157 , - 4300 , - 2295 , - 2422 , - 89 , - 3824 , - 3787 , - 3258 , - 2893 , - 724 , - 2655 , - 1470 , - 3073 , - 248 , - 4147 , - 2306 , - 629 , - 2396 , - 3015 , - 518 , - 809 , - 1920 , - 4507 , - 1354 , - 3613 , - 4068 , - 3375 , - 4814 , - 3793 , - 3592 , - 4867 , - 402 , - 1349 , - 492 , - 3735 , - 3862 , - 1529 , - 16 , - 5227 , - 4698 , - 4333 , - 2164 , - 4095 , - 2910 , - 4513 , - 1688 , - 339 , - 3746 , - 2069 , - 3836 , - 4455 , - 1958 , - 2249 , - 3360 , - 699 , - 2794 , - 5053 , - 260 , - 4815 , - 1006 , - 5233 , - 5032 , - 1059 , - 1842 , - 2789 , - 1932 , - 5175 , - 54 , - 2969 , - 1456 , - 1419 , - 890 , - 525 , - 3604 , - 287 , - 4350 , - 705 , - 3128 , - 1779 , - 5186 , - 3509 , - 28 , - 647 , - 3398 , - 3689 , - 4800 , - 2139 , - 4234 , - 1245 , - 1700 , - 1007 , - 2446 , - 1425 , - 1224 , - 2499 , - 3282 , - 4229 , - 3372 , - 1367 , - 1494 , - 4409 , - 2896 , - 2859 , - 2330 , - 1965 , - 5044 , - 1727 , - 542 , - 2145 , - 4568 , - 3219 , - 1378 , - 4949 , - 1468 , - 2087 , - 4838 , - 5129 , - 992 , - 3579 , - 426 , - 2685 , - 3140 , - 2447 , - 3886 , - 2865 , - 2664 , - 3939 , - 4722 , - 421 , - 4812 , - 2807 , - 2934 , - 601 , - 4336 , - 4299 , - 3770 , - 3405 , - 1236 , - 3167 , - 1982 , - 3585 , - 760 , - 4659 , - 2818 , - 1141 , - 2908 , - 3527 , - 1030 , - 1321 , - 2432 , - 5019 , - 1866 , - 4125 , - 4580 , - 3887 , - 78 , - 4305 , - 4104 , - 131 , - 914 , - 1861 , - 1004 , - 4247 , - 4374 , - 2041 , - 528 , - 491 , - 5210 , - 4845 , - 2676 , - 4607 , - 3422 , - 5025 , - 2200 , - 851 , - 4258 , - 2581 , - 4348 , - 4967 , - 2470 , - 2761 , - 3872 , - 1211 , - 3306 , - 317 , - 772 , - 79 , - 1518 , - 497 , - 296 , - 1571 , - 2354 , - 3301 , - 2444 , - 439 , - 566 , - 3481 , - 1968 , - 1931 , - 1402 , - 1037 , - 4116 , - 799 , - 4862 , - 1217 , - 3640 , - 2291 , - 450 , - 4021 , - 540 , - 1159 , - 3910 , - 4201 , - 64 , - 2651 , - 4746 , - 1757 , - 2212 , - 1519 , - 2958 , - 1937 , - 1736 , - 3011 , - 3794 , - 4741 , - 3884 , - 1879 , - 2006 , - 4921 , - 3408 , - 3371 , - 2842 , - 2477 , - 308 , - 2239 , - 1054 , - 2657 , - 5080 , - 3731 , - 1890 , - 213 , - 1980 , - 2599 , - 102 , - 393 , - 1504 , - 4091 , - 938 , - 3197 , - 3652 , - 2959 , - 4398 , - 3377 , - 3176 , - 4451 , - 5234 , - 933 , - 76 , - 3319 , - 3446 , - 1113 , - 4848 , - 4811 , - 4282 , - 3917 , - 1748 , - 3679 , - 2494 , - 4097 , - 1272 , - 5171 , - 3330 , - 1653 , - 3420 , - 4039 , - 1542 , - 1833 , - 2944 , - 283 , - 2378 , - 4637 , - 5092 , - 4399 , - 590 , - 4817 , - 4616 , - 643 , - 1426 , - 2373 , - 1516 , - 4759 , - 4886 , - 2553 , - 1040 , - 1003 , - 474 , - 109 , - 3188 , - 5119 , - 3934 , - 289 , - 2712 , - 1363 , - 4770 , - 3093 , - 4860 , - 231 , - 2982 , - 3273 , - 4384 , - 1723 , - 3818 , - 829 , - 1284 , - 591 , - 2030 , - 1009 , - 808 , - 2083 , - 2866 , - 3813 , - 2956 , - 951 , - 1078 , - 3993 , - 2480 , - 2443 , - 1914 , - 1549 , - 4628 , - 1311 , - 126 , - 1729 , - 4152 , - 2803 , - 962 , - 4533 , - 1052 , - 1671 , - 4422 , - 4713 , - 576 , - 3163 , - 10 , - 2269 , - 2724 , - 2031 , - 3470 , - 2449 , - 2248 , - 3523 , - 4306 , - 5 , - 4396 , - 2391 , - 2518 , - 185 , - 3920 , - 3883 , - 3354 , - 2989 , - 820 , - 2751 , - 1566 , - 3169 , - 344 , - 4243 , - 2402 , - 725 , - 2492 , - 3111 , - 614 , - 905 , - 2016 , - 4603 , - 1450 , - 3709 , - 4164 , - 3471 , - 4910 , - 3889 , - 3688 , - 4963 , - 498 , - 1445 , - 588 , - 3831 , - 3958 , - 1625 , - 112 , - 75 , - 4794 , - 4429 , - 2260 , - 4191 , - 3006 , - 4609 , - 1784 , - 435 , - 3842 , - 2165 , - 3932 , - 4551 , - 2054 , - 2345 , - 3456 , - 795 , - 2890 , - 5149 , - 356 , - 4911 , - 1102 , - 81 , - 5128 , - 1155 , - 1938 , - 2885 , - 2028 , - 23 , - 150 , - 3065 , - 1552 , - 1515 , - 986 , - 621 , - 3700 , - 383 , - 4446 , - 801 , - 3224 , - 1875 , - 34 , - 3605 , - 124 , - 743 , - 3494 , - 3785 , - 4896 , - 2235 , - 4330 , - 1341 , - 1796 , - 1103 , - 2542 , - 1521 , - 1320 , - 2595 , - 3378 , - 4325 , - 3468 , - 1463 , - 1590 , - 4505 , - 2992 , - 2955 , - 2426 , - 2061 , - 5140 , - 1823 , - 638 , - 2241 , - 4664 , - 3315 , - 1474 , - 5045 , - 1564 , - 2183 , - 4934 , - 5225 , - 1088 , - 3675 , - 522 , - 2781 , - 3236 , - 2543 , - 3982 , - 2961 , - 2760 , - 4035 , - 4818 , - 517 , - 4908 , - 2903 , - 3030 , - 697 , - 4432 , - 4395 , - 3866 , - 3501 , - 1332 , - 3263 , - 2078 , - 3681 , - 856 , - 4755 , - 2914 , - 1237 , - 3004 , - 3623 , - 1126 , - 1417 , - 2528 , - 5115 , - 1962 , - 4221 , - 4676 , - 3983 , - 174 , - 4401 , - 4200 , - 227 , - 1010 , - 1957 , - 1100 , - 4343 , - 4470 , - 2137 , - 624 , - 587 , - 58 , - 4941 , - 2772 , - 4703 , - 3518 , - 5121 , - 2296 , - 947 , - 4354 , - 2677 , - 4444 , - 5063 , - 2566 , - 2857 , - 3968 , - 1307 , - 3402 , - 413 , - 868 , - 175 , - 1614 , - 593 , - 392 , - 1667 , - 2450 , - 3397 , - 2540 , - 535 , - 662 , - 3577 , - 2064 , - 2027 , - 1498 , - 1133 , - 4212 , - 895 , - 4958 , - 1313 , - 3736 , - 2387 , - 546 , - 4117 , - 636 , - 1255 , - 4006 , - 4297 , - 160 , - 2747 , - 4842 , - 1853 , - 2308 , - 1615 , - 3054 , - 2033 , - 1832 , - 3107 , - 3890 , - 4837 , - 3980 , - 1975 , - 2102 , - 5017 , - 3504 , - 3467 , - 2938 , - 2573 , - 404 , - 2335 , - 1150 , - 2753 , - 5176 , - 3827 , - 1986 , - 309 , - 2076 , - 2695 , - 198 , - 489 , - 1600 , - 4187 , - 1034 , - 3293 , - 3748 , - 3055 , - 4494 , - 3473 , - 3272 , - 4547 , - 82 , - 1029 , - 172 , - 3415 , - 3542 , - 1209 , - 4944 , - 4907 , - 4378 , - 4013 , - 1844 , - 3775 , - 2590 , - 4193 , - 1368 , - 19 , - 3426 , - 1749 , - 3516 , - 4135 , - 1638 , - 1929 , - 3040 , - 379 , - 2474 , - 4733 , - 5188 , - 4495 , - 686 , - 4913 , - 4712 , - 739 , - 1522 , - 2469 , - 1612 , - 4855 , - 4982 , - 2649 , - 1136 , - 1099 , - 570 , - 205 , - 3284 , - 5215 , - 4030 , - 385 , - 2808 , - 1459 , - 4866 , - 3189 , - 4956 , - 327 , - 3078 , - 3369 , - 4480 , - 1819 , - 3914 , - 925 , - 1380 , - 687 , - 2126 , - 1105 , - 904 , - 2179 , - 2962 , - 3909 , - 3052 , - 1047 , - 1174 , - 4089 , - 2576 , - 2539 , - 2010 , - 1645 , - 4724 , - 1407 , - 222 , - 1825 , - 4248 , - 2899 , - 1058 , - 4629 , - 1148 , - 1767 , - 4518 , - 4809 , - 672 , - 3259 , - 106 , - 2365 , - 2820 , - 2127 , - 3566 , - 2545 , - 2344 , - 3619 , - 4402 , - 101 , - 4492 , - 2487 , - 2614 , - 281 , - 4016 , - 3979 , - 3450 , - 3085 , - 916 , - 2847 , - 1662 , - 3265 , - 440 , - 4339 , - 2498 , - 821 , - 2588 , - 3207 , - 710 , - 1001 , - 2112 , - 4699 , - 1546 , - 3805 , - 4260 , - 3567 , - 5006 , - 3985 , - 3784 , - 5059 , - 594 , - 1541 , - 684 , - 3927 , - 4054 , - 1721 , - 208 , - 171 , - 4890 , - 4525 , - 2356 , - 4287 , - 3102 , - 4705 , - 1880 , - 531 , - 3938 , - 2261 , - 4028 , - 4647 , - 2150 , - 2441 , - 3552 , - 891 , - 2986 , - 5245 , - 452 , - 5007 , - 1198 , - 177 , - 5224 , - 1251 , - 2034 , - 2981 , - 2124 , - 119 , - 246 , - 3161 , - 1648 , - 1611 , - 1082 , - 717 , - 3796 , - 479 , - 4542 , - 897 , - 3320 , - 1971 , - 130 , - 3701 , - 220 , - 839 , - 3590 , - 3881 , - 4992 , - 2331 , - 4426 , - 1437 , - 1892 , - 1199 , - 2638 , - 1617 , - 1416 , - 2691 , - 3474 , - 4421 , - 3564 , - 1559 , - 1686 , - 4601 , - 3088 , - 3051 , - 2522 , - 2157 , - 5236 , - 1919 , - 734 , - 2337 , - 4760 , - 3411 , - 1570 , - 5141 , - 1660 , - 2279 , - 5030 , - 73 , - 1184 , - 3771 , - 618 , - 2877 , - 3332 , - 2639 , - 4078 , - 3057 , - 2856 , - 4131 , - 4914 , - 613 , - 5004 , - 2999 , - 3126 , - 793 , - 4528 , - 4491 , - 3962 , - 3597 , - 1428 , - 3359 , - 2174 , - 3777 , - 952 , - 4851 , - 3010 , - 1333 , - 3100 , - 3719 , - 1222 , - 1513 , - 2624 , - 5211 , - 2058 , - 4317 , - 4772 , - 4079 , - 270 , - 4497 , - 4296 , - 323 , - 1106 , - 2053 , - 1196 , - 4439 , - 4566 , - 2233 , - 720 , - 683 , - 154 , - 5037 , - 2868 , - 4799 , - 3614 , - 5217 , - 2392 , - 1043 , - 4450 , - 2773 , - 4540 , - 5159 , - 2662 , - 2953 , - 4064 , - 1403 , - 3498 , - 509 , - 964 , - 271 , - 1710 , - 689 , - 488 , - 1763 , - 2546 , - 3493 , - 2636 , - 631 , - 758 , - 3673 , - 2160 , - 2123 , - 1594 , - 1229 , - 4308 , - 991 , - 5054 , - 1409 , - 3832 , - 2483 , - 642 , - 4213 , - 732 , - 1351 , - 4102 , - 4393 , - 256 , - 2843 , - 4938 , - 1949 , - 2404 , - 1711 , - 3150 , - 2129 , - 1928 , - 3203 , - 3986 , - 4933 , - 4076 , - 2071 , - 2198 , - 5113 , - 3600 , - 3563 , - 3034 , - 2669 , - 500 , - 2431 , - 1246 , - 2849 , - 24 , - 3923 , - 2082 , - 405 , - 2172 , - 2791 , - 294 , - 585 , - 1696 , - 4283 , - 1130 , - 3389 , - 3844 , - 3151 , - 4590 , - 3569 , - 3368 , - 4643 , - 178 , - 1125 , - 268 , - 3511 , - 3638 , - 1305 , - 5040 , - 5003 , - 4474 , - 4109 , - 1940 , - 3871 , - 2686 , - 4289 , - 1464 , - 115 , - 3522 , - 1845 , - 3612 , - 4231 , - 1734 , - 2025 , - 3136 , - 475 , - 2570 , - 4829 , - 36 , - 4591 , - 782 , - 5009 , - 4808 , - 835 , - 1618 , - 2565 , - 1708 , - 4951 , - 5078 , - 2745 , - 1232 , - 1195 , - 666 , - 301 , - 3380 , - 63 , - 4126 , - 481 , - 2904 , - 1555 , - 4962 , - 3285 , - 5052 , - 423 , - 3174 , - 3465 , - 4576 , - 1915 , - 4010 , - 1021 , - 1476 , - 783 , - 2222 , - 1201 , - 1000 , - 2275 , - 3058 , - 4005 , - 3148 , - 1143 , - 1270 , - 4185 , - 2672 , - 2635 , - 2106 , - 1741 , - 4820 , - 1503 , - 318 , - 1921 , - 4344 , - 2995 , - 1154 , - 4725 , - 1244 , - 1863 , - 4614 , - 4905 , - 768 , - 3355 , - 202 , - 2461 , - 2916 , - 2223 , - 3662 , - 2641 , - 2440 , - 3715 , - 4498 , - 197 , - 4588 , - 2583 , - 2710 , - 377 , - 4112 , - 4075 , - 3546 , - 3181 , - 1012 , - 2943 , - 1758 , - 3361 , - 536 , - 4435 , - 2594 , - 917 , - 2684 , - 3303 , - 806 , - 1097 , - 2208 , - 4795 , - 1642 , - 3901 , - 4356 , - 3663 , - 5102 , - 4081 , - 3880 , - 5155 , - 690 , - 1637 , - 780 , - 4023 , - 4150 , - 1817 , - 304 , - 267 , - 4986 , - 4621 , - 2452 , - 4383 , - 3198 , - 4801 , - 1976 , - 627 , - 4034 , - 2357 , - 4124 , - 4743 , - 2246 , - 2537 , - 3648 , - 987 , - 3082 , - 93 , - 548 , - 5103 , - 1294 , - 273 , - 72 , - 1347 , - 2130 , - 3077 , - 2220 , - 215 , - 342 , - 3257 , - 1744 , - 1707 , - 1178 , - 813 , - 3892 , - 575 , - 4638 , - 993 , - 3416 , - 2067 , - 226 , - 3797 , - 316 , - 935 , - 3686 , - 3977 , - 5088 , - 2427 , - 4522 , - 1533 , - 1988 , - 1295 , - 2734 , - 1713 , - 1512 , - 2787 , - 3570 , - 4517 , - 3660 , - 1655 , - 1782 , - 4697 , - 3184 , - 3147 , - 2618 , - 2253 , - 84 , - 2015 , - 830 , - 2433 , - 4856 , - 3507 , - 1666 , - 5237 , - 1756 , - 2375 , - 5126 , - 169 , - 1280 , - 3867 , - 714 , - 2973 , - 3428 , - 2735 , - 4174 , - 3153 , - 2952 , - 4227 , - 5010 , - 709 , - 5100 , - 3095 , - 3222 , - 889 , - 4624 , - 4587 , - 4058 , - 3693 , - 1524 , - 3455 , - 2270 , - 3873 , - 1048 , - 4947 , - 3106 , - 1429 , - 3196 , - 3815 , - 1318 , - 1609 , - 2720 , - 59 , - 2154 , - 4413 , - 4868 , - 4175 , - 366 , - 4593 , - 4392 , - 419 , - 1202 , - 2149 , - 1292 , - 4535 , - 4662 , - 2329 , - 816 , - 779 , - 250 , - 5133 , - 2964 , - 4895 , - 3710 , - 65 , - 2488 , - 1139 , - 4546 , - 2869 , - 4636 , - 7 , - 2758 , - 3049 , - 4160 , - 1499 , - 3594 , - 605 , - 1060 , - 367 , - 1806 , - 785 , - 584 , - 1859 , - 2642 , - 3589 , - 2732 , - 727 , - 854 , - 3769 , - 2256 , - 2219 , - 1690 , - 1325 , - 4404 , - 1087 , - 5150 , - 1505 , - 3928 , - 2579 , - 738 , - 4309 , - 828 , - 1447 , - 4198 , - 4489 , - 352 , - 2939 , - 5034 , - 2045 , - 2500 , - 1807 , - 3246 , - 2225 , - 2024 , - 3299 , - 4082 , - 5029 , - 4172 , - 2167 , - 2294 , - 5209 , - 3696 , - 3659 , - 3130 , - 2765 , - 596 , - 2527 , - 1342 , - 2945 , - 120 , - 4019 , - 2178 , - 501 , - 2268 , - 2887 , - 390 , - 681 , - 1792 , - 4379 , - 1226 , - 3485 , - 3940 , - 3247 , - 4686 , - 3665 , - 3464 , - 4739 , - 274 , - 1221 , - 364 , - 3607 , - 3734 , - 1401 , - 5136 , - 5099 , - 4570 , - 4205 , - 2036 , - 3967 , - 2782 , - 4385 , - 1560 , - 211 , - 3618 , - 1941 , - 3708 , - 4327 , - 1830 , - 2121 , - 3232 , - 571 , - 2666 , - 4925 , - 132 , - 4687 , - 878 , - 5105 , - 4904 , - 931 , - 1714 , - 2661 , - 1804 , - 5047 , - 5174 , - 2841 , - 1328 , - 1291 , - 762 , - 397 , - 3476 , - 159 , - 4222 , - 577 , - 3000 , - 1651 , - 5058 , - 3381 , - 5148 , - 519 , - 3270 , - 3561 , - 4672 , - 2011 , - 4106 , - 1117 , - 1572 , - 879 , - 2318 , - 1297 , - 1096 , - 2371 , - 3154 , - 4101 , - 3244 , - 1239 , - 1366 , - 4281 , - 2768 , - 2731 , - 2202 , - 1837 , - 4916 , - 1599 , - 414 , - 2017 , - 4440 , - 3091 , - 1250 , - 4821 , - 1340 , - 1959 , - 4710 , - 5001 , - 864 , - 3451 , - 298 , - 2557 , - 3012 , - 2319 , - 3758 , - 2737 , - 2536 , - 3811 , - 4594 , - 293 , - 4684 , - 2679 , - 2806 , - 473 , - 4208 , - 4171 , - 3642 , - 3277 , - 1108 , - 3039 , - 1854 , - 3457 , - 632 , - 4531 , - 2690 , - 1013 , - 2780 , - 3399 , - 902 , - 1193 , - 2304 , - 4891 , - 1738 , - 3997 , - 4452 , - 3759 , - 5198 , - 4177 , - 3976 , - 3 , - 786 , - 1733 , - 876 , - 4119 , - 4246 , - 1913 , - 400 , - 363 , - 5082 , - 4717 , - 2548 , - 4479 , - 3294 , - 4897 , - 2072 , - 723 , - 4130 , - 2453 , - 4220 , - 4839 , - 2342 , - 2633 , - 3744 , - 1083 , - 3178 , - 189 , - 644 , - 5199 , - 1390 , - 369 , - 168 , - 1443 , - 2226 , - 3173 , - 2316 , - 311 , - 438 , - 3353 , - 1840 , - 1803 , - 1274 , - 909 , - 3988 , - 671 , - 4734 , - 1089 , - 3512 , - 2163 , - 322 , - 3893 , - 412 , - 1031 , - 3782 , - 4073 , - 5184 , - 2523 , - 4618 , - 1629 , - 2084 , - 1391 , - 2830 , - 1809 , - 1608 , - 2883 , - 3666 , - 4613 , - 3756 , - 1751 , - 1878 , - 4793 , - 3280 , - 3243 , - 2714 , - 2349 , - 180 , - 2111 , - 926 , - 2529 , - 4952 , - 3603 , - 1762 , - 85 , - 1852 , - 2471 , - 5222 , - 265 , - 1376 , - 3963 , - 810 , - 3069 , - 3524 , - 2831 , - 4270 , - 3249 , - 3048 , - 4323 , - 5106 , - 805 , - 5196 , - 3191 , - 3318 , - 985 , - 4720 , - 4683 , - 4154 , - 3789 , - 1620 , - 3551 , - 2366 , - 3969 , - 1144 , - 5043 , - 3202 , - 1525 , - 3292 , - 3911 , - 1414 , - 1705 , - 2816 , - 155 , - 2250 , - 4509 , - 4964 , - 4271 , - 462 , - 4689 , - 4488 , - 515 , - 1298 , - 2245 , - 1388 , - 4631 , - 4758 , - 2425 , - 912 , - 875 , - 346 , - 5229 , - 3060 , - 4991 , - 3806 , - 161 , - 2584 , - 1235 , - 4642 , - 2965 , - 4732 , - 103 , - 2854 , - 3145 , - 4256 , - 1595 , - 3690 , - 701 , - 1156 , - 463 , - 1902 , - 881 , - 680 , - 1955 , - 2738 , - 3685 , - 2828 , - 823 , - 950 , - 3865 , - 2352 , - 2315 , - 1786 , - 1421 , - 4500 , - 1183 , - 5246 , - 1601 , - 4024 , - 2675 , - 834 , - 4405 , - 924 , - 1543 , - 4294 , - 4585 , - 448 , - 3035 , - 5130 , - 2141 , - 2596 , - 1903 , - 3342 , - 2321 , - 2120 , - 3395 , - 4178 , - 5125 , - 4268 , - 2263 , - 2390 , - 57 , - 3792 , - 3755 , - 3226 , - 2861 , - 692 , - 2623 , - 1438 , - 3041 , - 216 , - 4115 , - 2274 , - 597 , - 2364 , - 2983 , - 486 , - 777 , - 1888 , - 4475 , - 1322 , - 3581 , - 4036 , - 3343 , - 4782 , - 3761 , - 3560 , - 4835 , - 370 , - 1317 , - 460 , - 3703 , - 3830 , - 1497 , - 5232 , - 5195 , - 4666 , - 4301 , - 2132 , - 4063 , - 2878 , - 4481 , - 1656 , - 307 , - 3714 , - 2037 , - 3804 , - 4423 , - 1926 , - 2217 , - 3328 , - 667 , - 2762 , - 5021 , - 228 , - 4783 , - 974 , - 5201 , - 5000 , - 1027 , - 1810 , - 2757 , - 1900 , - 5143 , - 22 , - 2937 , - 1424 , - 1387 , - 858 , - 493 , - 3572 , - 255 , - 4318 , - 673 , - 3096 , - 1747 , - 5154 , - 3477 , - 5244 , - 615 , - 3366 , - 3657 , - 4768 , - 2107 , - 4202 , - 1213 , - 1668 , - 975 , - 2414 , - 1393 , - 1192 , - 2467 , - 3250 , - 4197 , - 3340 , - 1335 , - 1462 , - 4377 , - 2864 , - 2827 , - 2298 , - 1933 , - 5012 , - 1695 , - 510 , - 2113 , - 4536 , - 3187 , - 1346 , - 4917 , - 1436 , - 2055 , - 4806 , - 5097 , - 960 , - 3547 , - 394 , - 2653 , - 3108 , - 2415 , - 3854 , - 2833 , - 2632 , - 3907 , - 4690 , - 389 , - 4780 , - 2775 , - 2902 , - 569 , - 4304 , - 4267 , - 3738 , - 3373 , - 1204 , - 3135 , - 1950 , - 3553 , - 728 , - 4627 , - 2786 , - 1109 , - 2876 , - 3495 , - 998 , - 1289 , - 2400 , - 4987 , - 1834 , - 4093 , - 4548 , - 3855 , - 46 , - 4273 , - 4072 , - 99 , - 882 , - 1829 , - 972 , - 4215 , - 4342 , - 2009 , - 496 , - 459 , - 5178 , - 4813 , - 2644 , - 4575 , - 3390 , - 4993 , - 2168 , - 819 , - 4226 , - 2549 , - 4316 , - 4935 , - 2438 , - 2729 , - 3840 , - 1179 , - 3274 , - 285 , - 740 , - 47 , - 1486 , - 465 , - 264 , - 1539 , - 2322 , - 3269 , - 2412 , - 407 , - 534 , - 3449 , - 1936 , - 1899 , - 1370 , - 1005 , - 4084 , - 767 , - 4830 , - 1185 , - 3608 , - 2259 , - 418 , - 3989 , - 508 , - 1127 , - 3878 , - 4169 , - 32 , - 2619 , - 4714 , - 1725 , - 2180 , - 1487 , - 2926 , - 1905 , - 1704 , - 2979 , - 3762 , - 4709 , - 3852 , - 1847 , - 1974 , - 4889 , - 3376 , - 3339 , - 2810 , - 2445 , - 276 , - 2207 , - 1022 , - 2625 , - 5048 , - 3699 , - 1858 , - 181 , - 1948 , - 2567 , - 70 , - 361 , - 1472 , - 4059 , - 906 , - 3165 , - 3620 , - 2927 , - 4366 , - 3345 , - 3144 , - 4419 , - 5202 , - 901 , - 44 , - 3287 , - 3414 , - 1081 , - 4816 , - 4779 , - 4250 , - 3885 , - 1716 , - 3647 , - 2462 , - 4065 , - 1240 , - 5139 , - 3298 , - 1621 , - 3388 , - 4007 , - 1510 , - 1801 , - 2912 , - 251 , - 2346 , - 4605 , - 5060 , - 4367 , - 558 , - 4785 , - 4584 , - 611 , - 1394 , - 2341 , - 1484 , - 4727 , - 4854 , - 2521 , - 1008 , - 971 , - 442 , - 77 , - 3156 , - 5087 , - 3902 , - 257 , - 2680 , - 1331 , - 4738 , - 3061 , - 4828 , - 199 , - 2950 , - 3241 , - 4352 , - 1691 , - 3786 , - 797 , - 1252 , - 559 , - 1998 , - 977 , - 776 , - 2051 , - 2834 , - 3781 , - 2924 , - 919 , - 1046 , - 3961 , - 2448 , - 2411 , - 1882 , - 1517 , - 4596 , - 1279 , - 94 , - 1697 , - 4120 , - 2771 , - 930 , - 4501 , - 1020 , - 1639 , - 4390 , - 4681 , - 544 , - 3131 , - 5226 , - 2237 , - 2692 , - 1999 , - 3438 , - 2417 , - 2216 , - 3491 , - 4274 , - 5221 , - 4364 , - 2359 , - 2486 , - 153 , - 3888 , - 3851 , - 3322 , - 2957 , - 788 , - 2719 , - 1534 , - 3137 , - 312 , - 4211 , - 2370 , - 693 , - 2460 , - 3079 , - 582 , - 873 , - 1984 , - 4571 , - 1418 , - 3677 , - 4132 , - 3439 , - 4878 , - 3857 , - 3656 , - 4931 , - 466 , - 1413 , - 556 , - 3799 , - 3926 , - 1593 , - 80 , - 43 , - 4762 , - 4397 , - 2228 , - 4159 , - 2974 , - 4577 , - 1752 , - 403 , - 3810 , - 2133 , - 3900 , - 4519 , - 2022 , - 2313 , - 3424 , - 763 , - 2858 , - 5117 , - 324 , - 4879 , - 1070 , - 49 , - 5096 , - 1123 , - 1906 , - 2853 , - 1996 , - 5239 , - 118 , - 3033 , - 1520 , - 1483 , - 954 , - 589 , - 3668 , - 351 , - 4414 , - 769 , - 3192 , - 1843 , - 2 , - 3573 , - 92 , - 711 , - 3462 , - 3753 , - 4864 , - 2203 , - 4298 , - 1309 , - 1764 , - 1071 , - 2510 , - 1489 , - 1288 , - 2563 , - 3346 , - 4293 , - 3436 , - 1431 , - 1558 , - 4473 , - 2960 , - 2923 , - 2394 , - 2029 , - 5108 , - 1791 , - 606 , - 2209 , - 4632 , - 3283 , - 1442 , - 5013 , - 1532 , - 2151 , - 4902 , - 5193 , - 1056 , - 3643 , - 490 , - 2749 , - 3204 , - 2511 , - 3950 , - 2929 , - 2728 , - 4003 , - 4786 , - 485 , - 4876 , - 2871 , - 2998 , - 665 , - 4400 , - 4363 , - 3834 , - 3469 , - 1300 , - 3231 , - 2046 , - 3649 , - 824 , - 4723 , - 2882 , - 1205 , - 2972 , - 3591 , - 1094 , - 1385 , - 2496 , - 5083 , - 1930 , - 4189 , - 4644 , - 3951 , - 142 , - 4369 , - 4168 , - 195 , - 978 , - 1925 , - 1068 , - 4311 , - 4438 , - 2105 , - 592 , - 555 , - 26 , - 4909 , - 2740 , - 4671 , - 3486 , - 5089 , - 2264 , - 915 , - 4322 , - 2645 , - 4412 , - 5031 , - 2534 , - 2825 , - 3936 , - 1275 , - 3370 , - 381 , - 836 , - 143 , - 1582 , - 561 , - 360 , - 1635 , - 2418 , - 3365 , - 2508 , - 503 , - 630 , - 3545 , - 2032 , - 1995 , - 1466 , - 1101 , - 4180 , - 863 , - 4926 , - 1281 , - 3704 , - 2355 , - 514 , - 4085 , - 604 , - 1223 , - 3974 , - 4265 , - 128 , - 2715 , - 4810 , - 1821 , - 2276 , - 1583 , - 3022 , - 2001 , - 1800 , - 3075 , - 3858 , - 4805 , - 3948 , - 1943 , - 2070 , - 4985 , - 3472 , - 3435 , - 2906 , - 2541 , - 372 , - 2303 , - 1118 , - 2721 , - 5144 , - 3795 , - 1954 , - 277 , - 2044 , - 2663 , - 166 , - 457 , - 1568 , - 4155 , - 1002 , - 3261 , - 3716 , - 3023 , - 4462 , - 3441 , - 3240 , - 4515 , - 50 , - 997 , - 140 , - 3383 , - 3510 , - 1177 , - 4912 , - 4875 , - 4346 , - 3981 , - 1812 , - 3743 , - 2558 , - 4161 , - 1336 , - 5235 , - 3394 , - 1717 , - 3484 , - 4103 , - 1606 , - 1897 , - 3008 , - 347 , - 2442 , - 4701 , - 5156 , - 4463 , - 654 , - 4881 , - 4680 , - 707 , - 1490 , - 2437 , - 1580 , - 4823 , - 4950 , - 2617 , - 1104 , - 1067 , - 538 , - 173 , - 3252 , - 5183 , - 3998 , - 353 , - 2776 , - 1427 , - 4834 , - 3157 , - 4924 , - 295 , - 3046 , - 3337 , - 4448 , - 1787 , - 3882 , - 893 , - 1348 , - 655 , - 2094 , - 1073 , - 872 , - 2147 , - 2930 , - 3877 , - 3020 , - 1015 , - 1142 , - 4057 , - 2544 , - 2507 , - 1978 , - 1613 , - 4692 , - 1375 , - 190 , - 1793 , - 4216 , - 2867 , - 1026 , - 4597 , - 1116 , - 1735 , - 4486 , - 4777 , - 640 , - 3227 , - 74 , - 2333 , - 2788 , - 2095 , - 3534 , - 2513 , - 2312 , - 3587 , - 4370 , - 69 , - 4460 , - 2455 , - 2582 , - 249 , - 3984 , - 3947 , - 3418 , - 3053 , - 884 , - 2815 , - 1630 , - 3233 , - 408 , - 4307 , - 2466 , - 789 , - 2556 , - 3175 , - 678 , - 969 , - 2080 , - 4667 , - 1514 , - 3773 , - 4228 , - 3535 , - 4974 , - 3953 , - 3752 , - 5027 , - 562 , - 1509 , - 652 , - 3895 , - 4022 , - 1689 , - 176 , - 139 , - 4858 , - 4493 , - 2324 , - 4255 , - 3070 , - 4673 , - 1848 , - 499 , - 3906 , - 2229 , - 3996 , - 4615 , - 2118 , - 2409 , - 3520 , - 859 , - 2954 , - 5213 , - 420 , - 4975 , - 1166 , - 145 , - 5192 , - 1219 , - 2002 , - 2949 , - 2092 , - 87 , - 214 , - 3129 , - 1616 , - 1579 , - 1050 , - 685 , - 3764 , - 447 , - 4510 , - 865 , - 3288 , - 1939 , - 98 , - 3669 , - 188 , - 807 , - 3558 , - 3849 , - 4960 , - 2299 , - 4394 , - 1405 , - 1860 , - 1167 , - 2606 , - 1585 , - 1384 , - 2659 , - 3442 , - 4389 , - 3532 , - 1527 , - 1654 , - 4569 , - 3056 , - 3019 , - 2490 , - 2125 , - 5204 , - 1887 , - 702 , - 2305 , - 4728 , - 3379 , - 1538 , - 5109 , - 1628 , - 2247 , - 4998 , - 41 , - 1152 , - 3739 , - 586 , - 2845 , - 3300 , - 2607 , - 4046 , - 3025 , - 2824 , - 4099 , - 4882 , - 581 , - 4972 , - 2967 , - 3094 , - 761 , - 4496 , - 4459 , - 3930 , - 3565 , - 1396 , - 3327 , - 2142 , - 3745 , - 920 , - 4819 , - 2978 , - 1301 , - 3068 , - 3687 , - 1190 , - 1481 , - 2592 , - 5179 , - 2026 , - 4285 , - 4740 , - 4047 , - 238 , - 4465 , - 4264 , - 291 , - 1074 , - 2021 , - 1164 , - 4407 , - 4534 , - 2201 , - 688 , - 651 , - 122 , - 5005 , - 2836 , - 4767 , - 3582 , - 5185 , - 2360 , - 1011 , - 4418 , - 2741 , - 4508 , - 5127 , - 2630 , - 2921 , - 4032 , - 1371 , - 3466 , - 477 , - 932 , - 239 , - 1678 , - 657 , - 456 , - 1731 , - 2514 , - 3461 , - 2604 , - 599 , - 726 , - 3641 , - 2128 , - 2091 , - 1562 , - 1197 , - 4276 , - 959 , - 5022 , - 1377 , - 3800 , - 2451 , - 610 , - 4181 , - 700 , - 1319 , - 4070 , - 4361 , - 224 , - 2811 , - 4906 , - 1917 , - 2372 , - 1679 , - 3118 , - 2097 , - 1896 , - 3171 , - 3954 , - 4901 , - 4044 , - 2039 , - 2166 , - 5081 , - 3568 , - 3531 , - 3002 , - 2637 , - 468 , - 2399 , - 1214 , - 2817 , - 5240 , - 3891 , - 2050 , - 373 , - 2140 , - 2759 , - 262 , - 553 , - 1664 , - 4251 , - 1098 , - 3357 , - 3812 , - 3119 , - 4558 , - 3537 , - 3336 , - 4611 , - 146 , - 1093 , - 236 , - 3479 , - 3606 , - 1273 , - 5008 , - 4971 , - 4442 , - 4077 , - 1908 , - 3839 , - 2654 , - 4257 , - 1432 , - 83 , - 3490 , - 1813 , - 3580 , - 4199 , - 1702 , - 1993 , - 3104 , - 443 , - 2538 , - 4797 , - 4 , - 4559 , - 750 , - 4977 , - 4776 , - 803 , - 1586 , - 2533 , - 1676 , - 4919 , - 5046 , - 2713 , - 1200 , - 1163 , - 634 , - 269 , - 3348 , - 31 , - 4094 , - 449 , - 2872 , - 1523 , - 4930 , - 3253 , - 5020 , - 391 , - 3142 , - 3433 , - 4544 , - 1883 , - 3978 , - 989 , - 1444 , - 751 , - 2190 , - 1169 , - 968 , - 2243 , - 3026 , - 3973 , - 3116 , - 1111 , - 1238 , - 4153 , - 2640 , - 2603 , - 2074 , - 1709 , - 4788 , - 1471 , - 286 , - 1889 , - 4312 , - 2963 , - 1122 , - 4693 , - 1212 , - 1831 , - 4582 , - 4873 , - 736 , - 3323 , - 170 , - 2429 , - 2884 , - 2191 , - 3630 , - 2609 , - 2408 , - 3683 , - 4466 , - 165 , - 4556 , - 2551 , - 2678 , - 345 , - 4080 , - 4043 , - 3514 , - 3149 , - 980 , - 2911 , - 1726 , - 3329 , - 504 , - 4403 , - 2562 , - 885 , - 2652 , - 3271 , - 774 , - 1065 , - 2176 , - 4763 , - 1610 , - 3869 , - 4324 , - 3631 , - 5070 , - 4049 , - 3848 , - 5123 , - 658 , - 1605 , - 748 , - 3991 , - 4118 , - 1785 , - 272 , - 235 , - 4954 , - 4589 , - 2420 , - 4351 , - 3166 , - 4769 , - 1944 , - 595 , - 4002 , - 2325 , - 4092 , - 4711 , - 2214 , - 2505 , - 3616 , - 955 , - 3050 , - 61 , - 516 , - 5071 , - 1262 , - 241 , - 40 , - 1315 , - 2098 , - 3045 , - 2188 , - 183 , - 310 , - 3225 , - 1712 , - 1675 , - 1146 , - 781 , - 3860 , - 543 , - 4606 , - 961 , - 3384 , - 2035 , - 194 , - 3765 , - 284 , - 903 , - 3654 , - 3945 , - 5056 , - 2395 , - 4490 , - 1501 , - 1956 , - 1263 , - 2702 , - 1681 , - 1480 , - 2755 , - 3538 , - 4485 , - 3628 , - 1623 , - 1750 , - 4665 , - 3152 , - 3115 , - 2586 , - 2221 , - 52 , - 1983 , - 798 , - 2401 , - 4824 , - 3475 , - 1634 , - 5205 , - 1724 , - 2343 , - 5094 , - 137 , - 1248 , - 3835 , - 682 , - 2941 , - 3396 , - 2703 , - 4142 , - 3121 , - 2920 , - 4195 , - 4978 , - 677 , - 5068 , - 3063 , - 3190 , - 857 , - 4592 , - 4555 , - 4026 , - 3661 , - 1492 , - 3423 , - 2238 , - 3841 , - 1016 , - 4915 , - 3074 , - 1397 , - 3164 , - 3783 , - 1286 , - 1577 , - 2688 , - 27 , - 2122 , - 4381 , - 4836 , - 4143 , - 334 , - 4561 , - 4360 , - 387 , - 1170 , - 2117 , - 1260 , - 4503 , - 4630 , - 2297 , - 784 , - 747 , - 218 , - 5101 , - 2932 , - 4863 , - 3678 , - 33 , - 2456 , - 1107 , - 4514 , - 2837 , - 4604 , - 5223 , - 2726 , - 3017 , - 4128 , - 1467 , - 3562 , - 573 , - 1028 , - 335 , - 1774 , - 753 , - 552 , - 1827 , - 2610 , - 3557 , - 2700 , - 695 , - 822 , - 3737 , - 2224 , - 2187 , - 1658 , - 1293 , - 4372 , - 1055 , - 5118 , - 1473 , - 3896 , - 2547 , - 706 , - 4277 , - 796 , - 1415 , - 4166 , - 4457 , - 320 , - 2907 , - 5002 , - 2013 , - 2468 , - 1775 , - 3214 , - 2193 , - 1992 , - 3267 , - 4050 , - 4997 , - 4140 , - 2135 , - 2262 , - 5177 , - 3664 , - 3627 , - 3098 , - 2733 , - 564 , - 2495 , - 1310 , - 2913 , - 88 , - 3987 , - 2146 , - 469 , - 2236 , - 2855 , - 358 , - 649 , - 1760 , - 4347 , - 1194 , - 3453 , - 3908 , - 3215 , - 4654 , - 3633 , - 3432 , - 4707 , - 242 , - 1189 , - 332 , - 3575 , - 3702 , - 1369 , - 5104 , - 5067 , - 4538 , - 4173 , - 2004 , - 3935 , - 2750 , - 4353 , - 1528 , - 179 , - 3586 , - 1909 , - 3676 , - 4295 , - 1798 , - 2089 , - 3200 , - 539 , - 2634 , - 4893 , - 100 , - 4655 , - 846 , - 5073 , - 4872 , - 899 , - 1682 , - 2629 , - 1772 , - 5015 , - 5142 , - 2809 , - 1296 , - 1259 , - 730 , - 365 , - 3444 , - 127 , - 4190 , - 545 , - 2968 , - 1619 , - 5026 , - 3349 , - 5116 , - 487 , - 3238 , - 3529 , - 4640 , - 1979 , - 4074 , - 1085 , - 1540 , - 847 , - 2286 , - 1265 , - 1064 , - 2339 , - 3122 , - 4069 , - 3212 , - 1207 , - 1334 , - 4249 , - 2736 , - 2699 , - 2170 , - 1805 , - 4884 , - 1567 , - 382 , - 1985 , - 4408 , - 3059 , - 1218 , - 4789 , - 1308 , - 1927 , - 4678 , - 4969 , - 832 , - 3419 , - 266 , - 2525 , - 2980 , - 2287 , - 3726 , - 2705 , - 2504 , - 3779 , - 4562 , - 261 , - 4652 , - 2647 , - 2774 , - 441 , - 4176 , - 4139 , - 3610 , - 3245 , - 1076 , - 3007 , - 1822 , - 3425 , - 600 , - 4499 , - 2658 , - 981 , - 2748 , - 3367 , - 870 , - 1161 , - 2272 , - 4859 , - 1706 , - 3965 , - 4420 , - 3727 , - 5166 , - 4145 , - 3944 , - 5219 , - 754 , - 1701 , - 844 , - 4087 , - 4214 , - 1881 , - 368 , - 331 , - 5050 , - 4685 , - 2516 , - 4447 , - 3262 , - 4865 , - 2040 , - 691 , - 4098 , - 2421 , - 4188 , - 4807 , - 2310 , - 2601 , - 3712 , - 1051 , - 3146 , - 157 , - 612 , - 5167 , - 1358 , - 337 , - 136 , - 1411 , - 2194 , - 3141 , - 2284 , - 279 , - 406 , - 3321 , - 1808 , - 1771 , - 1242 , - 877 , - 3956 , - 639 , - 4702 , - 1057 , - 3480 , - 2131 , - 290 , - 3861 , - 380 , - 999 , - 3750 , - 4041 , - 5152 , - 2491 , - 4586 , - 1597 , - 2052 , - 1359 , - 2798 , - 1777 , - 1576 , - 2851 , - 3634 , - 4581 , - 3724 , - 1719 , - 1846 , - 4761 , - 3248 , - 3211 , - 2682 , - 2317 , - 148 , - 2079 , - 894 , - 2497 , - 4920 , - 3571 , - 1730 , - 53 , - 1820 , - 2439 , - 5190 , - 233 , - 1344 , - 3931 , - 778 , - 3037 , - 3492 , - 2799 , - 4238 , - 3217 , - 3016 , - 4291 , - 5074 , - 773 , - 5164 , - 3159 , - 3286 , - 953 , - 4688 , - 4651 , - 4122 , - 3757 , - 1588 , - 3519 , - 2334 , - 3937 , - 1112 , - 5011 , - 3170 , - 1493 , - 3260 , - 3879 , - 1382 , - 1673 , - 2784 , - 123 , - 2218 , - 4477 , - 4932 , - 4239 , - 430 , - 4657 , - 4456 , - 483 , - 1266 , - 2213 , - 1356 , - 4599 , - 4726 , - 2393 , - 880 , - 843 , - 314 , - 5197 , - 3028 , - 4959 , - 3774 , - 129 , - 2552 , - 1203 , - 4610 , - 2933 , - 4700 , - 71 , - 2822 , - 3113 , - 4224 , - 1563 , - 3658 , - 669 , - 1124 , - 431 , - 1870 , - 849 , - 648 , - 1923 , - 2706 , - 3653 , - 2796 , - 791 , - 918 , - 3833 , - 2320 , - 2283 , - 1754 , - 1389 , - 4468 , - 1151 , - 5214 , - 1569 , - 3992 , - 2643 , - 802 , - 4373 , - 892 , - 1511 , - 4262 , - 4553 , - 416 , - 3003 , - 5098 , - 2109 , - 2564 , - 1871 , - 3310 , - 2289 , - 2088 , - 3363 , - 4146 , - 5093 , - 4236 , - 2231 , - 2358 , - 25 , - 3760 , - 3723 , - 3194 , - 2829 , - 660 , - 2591 , - 1406 , - 3009 , - 184 , - 4083 , - 2242 , - 565 , - 2332 , - 2951 , - 454 , - 745 , - 1856 , - 4443 , - 1290 , - 3549 , - 4004 , - 3311 , - 4750 , - 3729 , - 3528 , - 4803 , - 338 , - 1285 , - 428 , - 3671 , - 3798 , - 1465 , - 5200 , - 5163 , - 4634 , - 4269 , - 2100 , - 4031 , - 2846 , - 4449 , - 1624 , - 275 , - 3682 , - 2005 , - 3772 , - 4391 , - 1894 , - 2185 , - 3296 , - 635 , - 2730 , - 4989 , - 196 , - 4751 , - 942 , - 5169 , - 4968 , - 995 , - 1778 , - 2725 , - 1868 , - 5111 , - 5238 , - 2905 , - 1392 , - 1355 , - 826 , - 461 , - 3540 , - 223 , - 4286 , - 641 , - 3064 , - 1715 , - 5122 , - 3445 , - 5212 , - 583 , - 3334 , - 3625 , - 4736 , - 2075 , - 4170 , - 1181 , - 1636 , - 943 , - 2382 , - 1361 , - 1160 , - 2435 , - 3218 , - 4165 , - 3308 , - 1303 , - 1430 , - 4345 , - 2832 , - 2795 , - 2266 , - 1901 , - 4980 , - 1663 , - 478 , - 2081 , - 4504 , - 3155 , - 1314 , - 4885 , - 1404 , - 2023 , - 4774 , - 5065 , - 928 , - 3515 , - 362 , - 2621 , - 3076 , - 2383 , - 3822 , - 2801 , - 2600 , - 3875 , - 4658 , - 357 , - 4748 , - 2743 , - 2870 , - 537 , - 4272 , - 4235 , - 3706 , - 3341 , - 1172 , - 3103 , - 1918 , - 3521 , - 696 , - 4595 , - 2754 , - 1077 , - 2844 , - 3463 , - 966 , - 1257 , - 2368 , - 4955 , - 1802 , - 4061 , - 4516 , - 3823 , - 14 , - 4241 , - 4040 , - 67 , - 850 , - 1797 , - 940 , - 4183 , - 4310 , - 1977 , - 464 , - 427 , - 5146 , - 4781 , - 2612 , - 4543 , - 3358 , - 4961 , - 2136 , - 787 , - 4194 , - 2517 , - 4284 , - 4903 , - 2406 , - 2697 , - 3808 , - 1147 , - 3242 , - 253 , - 708 , - 15 , - 1454 , - 433 , - 232 , - 1507 , - 2290 , - 3237 , - 2380 , - 375 , - 502 , - 3417 , - 1904 , - 1867 , - 1338 , - 973 , - 4052 , - 735 , - 4798 , - 1153 , - 3576 , - 2227 , - 386 , - 3957 , - 476 , - 1095 , - 3846 , - 4137 , - 0 , - 1907 , - 3482 , - 3397 , - 324 , - 3559 , - 1150 , - 2393 , - 648 , - 5211 , - 4130 , - 1389 , - 972 , - 1551 , - 1798 , - 385 , - 1296 , - 3203 , - 4778 , - 4693 , - 1620 , - 4855 , - 2446 , - 3689 , - 1944 , - 1195 , - 114 , - 2685 , - 2268 , - 2847 , - 3094 , - 1681 , - 2592 , - 4499 , - 762 , - 677 , - 2916 , - 839 , - 3742 , - 4985 , - 3240 , - 2491 , - 1410 , - 3981 , - 3564 , - 4143 , - 4390 , - 2977 , - 3888 , - 483 , - 2058 , - 1973 , - 4212 , - 2135 , - 5038 , - 969 , - 4536 , - 3787 , - 2706 , - 5277 , - 4860 , - 127 , - 374 , - 4273 , - 5184 , - 1779 , - 3354 , - 3269 , - 196 , - 3431 , - 1022 , - 2265 , - 520 , - 5083 , - 4002 , - 1261 , - 844 , - 1423 , - 1670 , - 257 , - 1168 , - 3075 , - 4650 , - 4565 , - 1492 , - 4727 , - 2318 , - 3561 , - 1816 , - 1067 , - 5298 , - 2557 , - 2140 , - 2719 , - 2966 , - 1553 , - 2464 , - 4371 , - 634 , - 549 , - 2788 , - 711 , - 3614 , - 4857 , - 3112 , - 2363 , - 1282 , - 3853 , - 3436 , - 4015 , - 4262 , - 2849 , - 3760 , - 355 , - 1930 , - 1845 , - 4084 , - 2007 , - 4910 , - 841 , - 4408 , - 3659 , - 2578 , - 5149 , - 4732 , - 5311 , - 246 , - 4145 , - 5056 , - 1651 , - 3226 , - 3141 , - 68 , - 3303 , - 894 , - 2137 , - 392 , - 4955 , - 3874 , - 1133 , - 716 , - 1295 , - 1542 , - 129 , - 1040 , - 2947 , - 4522 , - 4437 , - 1364 , - 4599 , - 2190 , - 3433 , - 1688 , - 939 , - 5170 , - 2429 , - 2012 , - 2591 , - 2838 , - 1425 , - 2336 , - 4243 , - 506 , - 421 , - 2660 , - 583 , - 3486 , - 4729 , - 2984 , - 2235 , - 1154 , - 3725 , - 3308 , - 3887 , - 4134 , - 2721 , - 3632 , - 227 , - 1802 , - 1717 , - 3956 , - 1879 , - 4782 , - 713 , - 4280 , - 3531 , - 2450 , - 5021 , - 4604 , - 5183 , - 118 , - 4017 , - 4928 , - 1523 , - 3098 , - 3013 , - 5252 , - 3175 , - 766 , - 2009 , - 264 , - 4827 , - 3746 , - 1005 , - 588 , - 1167 , - 1414 , - 1 , - 912 , - 2819 , - 4394 , - 4309 , - 1236 , - 4471 , - 2062 , - 3305 , - 1560 , - 811 , - 5042 , - 2301 , - 1884 , - 2463 , - 2710 , - 1297 , - 2208 , - 4115 , - 378 , - 293 , - 2532 , - 455 , - 3358 , - 4601 , - 2856 , - 2107 , - 1026 , - 3597 , - 3180 , - 3759 , - 4006 , - 2593 , - 3504 , - 99 , - 1674 , - 1589 , - 3828 , - 1751 , - 4654 , - 585 , - 4152 , - 3403 , - 2322 , - 4893 , - 4476 , - 5055 , - 5302 , - 3889 , - 4800 , - 1395 , - 2970 , - 2885 , - 5124 , - 3047 , - 638 , - 1881 , - 136 , - 4699 , - 3618 , - 877 , - 460 , - 1039 , - 1286 , - 5185 , - 784 , - 2691 , - 4266 , - 4181 , - 1108 , - 4343 , - 1934 , - 3177 , - 1432 , - 683 , - 4914 , - 2173 , - 1756 , - 2335 , - 2582 , - 1169 , - 2080 , - 3987 , - 250 , - 165 , - 2404 , - 327 , - 3230 , - 4473 , - 2728 , - 1979 , - 898 , - 3469 , - 3052 , - 3631 , - 3878 , - 2465 , - 3376 , - 5283 , - 1546 , - 1461 , - 3700 , - 1623 , - 4526 , - 457 , - 4024 , - 3275 , - 2194 , - 4765 , - 4348 , - 4927 , - 5174 , - 3761 , - 4672 , - 1267 , - 2842 , - 2757 , - 4996 , - 2919 , - 510 , - 1753 , - 8 , - 4571 , - 3490 , - 749 , - 332 , - 911 , - 1158 , - 5057 , - 656 , - 2563 , - 4138 , - 4053 , - 980 , - 4215 , - 1806 , - 3049 , - 1304 , - 555 , - 4786 , - 2045 , - 1628 , - 2207 , - 2454 , - 1041 , - 1952 , - 3859 , - 122 , - 37 , - 2276 , - 199 , - 3102 , - 4345 , - 2600 , - 1851 , - 770 , - 3341 , - 2924 , - 3503 , - 3750 , - 2337 , - 3248 , - 5155 , - 1418 , - 1333 , - 3572 , - 1495 , - 4398 , - 329 , - 3896 , - 3147 , - 2066 , - 4637 , - 4220 , - 4799 , - 5046 , - 3633 , - 4544 , - 1139 , - 2714 , - 2629 , - 4868 , - 2791 , - 382 , - 1625 , - 5192 , - 4443 , - 3362 , - 621 , - 204 , - 783 , - 1030 , - 4929 , - 528 , - 2435 , - 4010 , - 3925 , - 852 , - 4087 , - 1678 , - 2921 , - 1176 , - 427 , - 4658 , - 1917 , - 1500 , - 2079 , - 2326 , - 913 , - 1824 , - 3731 , - 5306 , - 5221 , - 2148 , - 71 , - 2974 , - 4217 , - 2472 , - 1723 , - 642 , - 3213 , - 2796 , - 3375 , - 3622 , - 2209 , - 3120 , - 5027 , - 1290 , - 1205 , - 3444 , - 1367 , - 4270 , - 201 , - 3768 , - 3019 , - 1938 , - 4509 , - 4092 , - 4671 , - 4918 , - 3505 , - 4416 , - 1011 , - 2586 , - 2501 , - 4740 , - 2663 , - 254 , - 1497 , - 5064 , - 4315 , - 3234 , - 493 , - 76 , - 655 , - 902 , - 4801 , - 400 , - 2307 , - 3882 , - 3797 , - 724 , - 3959 , - 1550 , - 2793 , - 1048 , - 299 , - 4530 , - 1789 , - 1372 , - 1951 , - 2198 , - 785 , - 1696 , - 3603 , - 5178 , - 5093 , - 2020 , - 5255 , - 2846 , - 4089 , - 2344 , - 1595 , - 514 , - 3085 , - 2668 , - 3247 , - 3494 , - 2081 , - 2992 , - 4899 , - 1162 , - 1077 , - 3316 , - 1239 , - 4142 , - 73 , - 3640 , - 2891 , - 1810 , - 4381 , - 3964 , - 4543 , - 4790 , - 3377 , - 4288 , - 883 , - 2458 , - 2373 , - 4612 , - 2535 , - 126 , - 1369 , - 4936 , - 4187 , - 3106 , - 365 , - 5260 , - 527 , - 774 , - 4673 , - 272 , - 2179 , - 3754 , - 3669 , - 596 , - 3831 , - 1422 , - 2665 , - 920 , - 171 , - 4402 , - 1661 , - 1244 , - 1823 , - 2070 , - 657 , - 1568 , - 3475 , - 5050 , - 4965 , - 1892 , - 5127 , - 2718 , - 3961 , - 2216 , - 1467 , - 386 , - 2957 , - 2540 , - 3119 , - 3366 , - 1953 , - 2864 , - 4771 , - 1034 , - 949 , - 3188 , - 1111 , - 4014 , - 5257 , - 3512 , - 2763 , - 1682 , - 4253 , - 3836 , - 4415 , - 4662 , - 3249 , - 4160 , - 755 , - 2330 , - 2245 , - 4484 , - 2407 , - 5310 , - 1241 , - 4808 , - 4059 , - 2978 , - 237 , - 5132 , - 399 , - 646 , - 4545 , - 144 , - 2051 , - 3626 , - 3541 , - 468 , - 3703 , - 1294 , - 2537 , - 792 , - 43 , - 4274 , - 1533 , - 1116 , - 1695 , - 1942 , - 529 , - 1440 , - 3347 , - 4922 , - 4837 , - 1764 , - 4999 , - 2590 , - 3833 , - 2088 , - 1339 , - 258 , - 2829 , - 2412 , - 2991 , - 3238 , - 1825 , - 2736 , - 4643 , - 906 , - 821 , - 3060 , - 983 , - 3886 , - 5129 , - 3384 , - 2635 , - 1554 , - 4125 , - 3708 , - 4287 , - 4534 , - 3121 , - 4032 , - 627 , - 2202 , - 2117 , - 4356 , - 2279 , - 5182 , - 1113 , - 4680 , - 3931 , - 2850 , - 109 , - 5004 , - 271 , - 518 , - 4417 , - 16 , - 1923 , - 3498 , - 3413 , - 340 , - 3575 , - 1166 , - 2409 , - 664 , - 5227 , - 4146 , - 1405 , - 988 , - 1567 , - 1814 , - 401 , - 1312 , - 3219 , - 4794 , - 4709 , - 1636 , - 4871 , - 2462 , - 3705 , - 1960 , - 1211 , - 130 , - 2701 , - 2284 , - 2863 , - 3110 , - 1697 , - 2608 , - 4515 , - 778 , - 693 , - 2932 , - 855 , - 3758 , - 5001 , - 3256 , - 2507 , - 1426 , - 3997 , - 3580 , - 4159 , - 4406 , - 2993 , - 3904 , - 499 , - 2074 , - 1989 , - 4228 , - 2151 , - 5054 , - 985 , - 4552 , - 3803 , - 2722 , - 5293 , - 4876 , - 143 , - 390 , - 4289 , - 5200 , - 1795 , - 3370 , - 3285 , - 212 , - 3447 , - 1038 , - 2281 , - 536 , - 5099 , - 4018 , - 1277 , - 860 , - 1439 , - 1686 , - 273 , - 1184 , - 3091 , - 4666 , - 4581 , - 1508 , - 4743 , - 2334 , - 3577 , - 1832 , - 1083 , - 2 , - 2573 , - 2156 , - 2735 , - 2982 , - 1569 , - 2480 , - 4387 , - 650 , - 565 , - 2804 , - 727 , - 3630 , - 4873 , - 3128 , - 2379 , - 1298 , - 3869 , - 3452 , - 4031 , - 4278 , - 2865 , - 3776 , - 371 , - 1946 , - 1861 , - 4100 , - 2023 , - 4926 , - 857 , - 4424 , - 3675 , - 2594 , - 5165 , - 4748 , - 15 , - 262 , - 4161 , - 5072 , - 1667 , - 3242 , - 3157 , - 84 , - 3319 , - 910 , - 2153 , - 408 , - 4971 , - 3890 , - 1149 , - 732 , - 1311 , - 1558 , - 145 , - 1056 , - 2963 , - 4538 , - 4453 , - 1380 , - 4615 , - 2206 , - 3449 , - 1704 , - 955 , - 5186 , - 2445 , - 2028 , - 2607 , - 2854 , - 1441 , - 2352 , - 4259 , - 522 , - 437 , - 2676 , - 599 , - 3502 , - 4745 , - 3000 , - 2251 , - 1170 , - 3741 , - 3324 , - 3903 , - 4150 , - 2737 , - 3648 , - 243 , - 1818 , - 1733 , - 3972 , - 1895 , - 4798 , - 729 , - 4296 , - 3547 , - 2466 , - 5037 , - 4620 , - 5199 , - 134 , - 4033 , - 4944 , - 1539 , - 3114 , - 3029 , - 5268 , - 3191 , - 782 , - 2025 , - 280 , - 4843 , - 3762 , - 1021 , - 604 , - 1183 , - 1430 , - 17 , - 928 , - 2835 , - 4410 , - 4325 , - 1252 , - 4487 , - 2078 , - 3321 , - 1576 , - 827 , - 5058 , - 2317 , - 1900 , - 2479 , - 2726 , - 1313 , - 2224 , - 4131 , - 394 , - 309 , - 2548 , - 471 , - 3374 , - 4617 , - 2872 , - 2123 , - 1042 , - 3613 , - 3196 , - 3775 , - 4022 , - 2609 , - 3520 , - 115 , - 1690 , - 1605 , - 3844 , - 1767 , - 4670 , - 601 , - 4168 , - 3419 , - 2338 , - 4909 , - 4492 , - 5071 , - 6 , - 3905 , - 4816 , - 1411 , - 2986 , - 2901 , - 5140 , - 3063 , - 654 , - 1897 , - 152 , - 4715 , - 3634 , - 893 , - 476 , - 1055 , - 1302 , - 5201 , - 800 , - 2707 , - 4282 , - 4197 , - 1124 , - 4359 , - 1950 , - 3193 , - 1448 , - 699 , - 4930 , - 2189 , - 1772 , - 2351 , - 2598 , - 1185 , - 2096 , - 4003 , - 266 , - 181 , - 2420 , - 343 , - 3246 , - 4489 , - 2744 , - 1995 , - 914 , - 3485 , - 3068 , - 3647 , - 3894 , - 2481 , - 3392 , - 5299 , - 1562 , - 1477 , - 3716 , - 1639 , - 4542 , - 473 , - 4040 , - 3291 , - 2210 , - 4781 , - 4364 , - 4943 , - 5190 , - 3777 , - 4688 , - 1283 , - 2858 , - 2773 , - 5012 , - 2935 , - 526 , - 1769 , - 24 , - 4587 , - 3506 , - 765 , - 348 , - 927 , - 1174 , - 5073 , - 672 , - 2579 , - 4154 , - 4069 , - 996 , - 4231 , - 1822 , - 3065 , - 1320 , - 571 , - 4802 , - 2061 , - 1644 , - 2223 , - 2470 , - 1057 , - 1968 , - 3875 , - 138 , - 53 , - 2292 , - 215 , - 3118 , - 4361 , - 2616 , - 1867 , - 786 , - 3357 , - 2940 , - 3519 , - 3766 , - 2353 , - 3264 , - 5171 , - 1434 , - 1349 , - 3588 , - 1511 , - 4414 , - 345 , - 3912 , - 3163 , - 2082 , - 4653 , - 4236 , - 4815 , - 5062 , - 3649 , - 4560 , - 1155 , - 2730 , - 2645 , - 4884 , - 2807 , - 398 , - 1641 , - 5208 , - 4459 , - 3378 , - 637 , - 220 , - 799 , - 1046 , - 4945 , - 544 , - 2451 , - 4026 , - 3941 , - 868 , - 4103 , - 1694 , - 2937 , - 1192 , - 443 , - 4674 , - 1933 , - 1516 , - 2095 , - 2342 , - 929 , - 1840 , - 3747 , - 10 , - 5237 , - 2164 , - 87 , - 2990 , - 4233 , - 2488 , - 1739 , - 658 , - 3229 , - 2812 , - 3391 , - 3638 , - 2225 , - 3136 , - 5043 , - 1306 , - 1221 , - 3460 , - 1383 , - 4286 , - 217 , - 3784 , - 3035 , - 1954 , - 4525 , - 4108 , - 4687 , - 4934 , - 3521 , - 4432 , - 1027 , - 2602 , - 2517 , - 4756 , - 2679 , - 270 , - 1513 , - 5080 , - 4331 , - 3250 , - 509 , - 92 , - 671 , - 918 , - 4817 , - 416 , - 2323 , - 3898 , - 3813 , - 740 , - 3975 , - 1566 , - 2809 , - 1064 , - 315 , - 4546 , - 1805 , - 1388 , - 1967 , - 2214 , - 801 , - 1712 , - 3619 , - 5194 , - 5109 , - 2036 , - 5271 , - 2862 , - 4105 , - 2360 , - 1611 , - 530 , - 3101 , - 2684 , - 3263 , - 3510 , - 2097 , - 3008 , - 4915 , - 1178 , - 1093 , - 3332 , - 1255 , - 4158 , - 89 , - 3656 , - 2907 , - 1826 , - 4397 , - 3980 , - 4559 , - 4806 , - 3393 , - 4304 , - 899 , - 2474 , - 2389 , - 4628 , - 2551 , - 142 , - 1385 , - 4952 , - 4203 , - 3122 , - 381 , - 5276 , - 543 , - 790 , - 4689 , - 288 , - 2195 , - 3770 , - 3685 , - 612 , - 3847 , - 1438 , - 2681 , - 936 , - 187 , - 4418 , - 1677 , - 1260 , - 1839 , - 2086 , - 673 , - 1584 , - 3491 , - 5066 , - 4981 , - 1908 , - 5143 , - 2734 , - 3977 , - 2232 , - 1483 , - 402 , - 2973 , - 2556 , - 3135 , - 3382 , - 1969 , - 2880 , - 4787 , - 1050 , - 965 , - 3204 , - 1127 , - 4030 , - 5273 , - 3528 , - 2779 , - 1698 , - 4269 , - 3852 , - 4431 , - 4678 , - 3265 , - 4176 , - 771 , - 2346 , - 2261 , - 4500 , - 2423 , - 14 , - 1257 , - 4824 , - 4075 , - 2994 , - 253 , - 5148 , - 415 , - 662 , - 4561 , - 160 , - 2067 , - 3642 , - 3557 , - 484 , - 3719 , - 1310 , - 2553 , - 808 , - 59 , - 4290 , - 1549 , - 1132 , - 1711 , - 1958 , - 545 , - 1456 , - 3363 , - 4938 , - 4853 , - 1780 , - 5015 , - 2606 , - 3849 , - 2104 , - 1355 , - 274 , - 2845 , - 2428 , - 3007 , - 3254 , - 1841 , - 2752 , - 4659 , - 922 , - 837 , - 3076 , - 999 , - 3902 , - 5145 , - 3400 , - 2651 , - 1570 , - 4141 , - 3724 , - 4303 , - 4550 , - 3137 , - 4048 , - 643 , - 2218 , - 2133 , - 4372 , - 2295 , - 5198 , - 1129 , - 4696 , - 3947 , - 2866 , - 125 , - 5020 , - 287 , - 534 , - 4433 , - 32 , - 1939 , - 3514 , - 3429 , - 356 , - 3591 , - 1182 , - 2425 , - 680 , - 5243 , - 4162 , - 1421 , - 1004 , - 1583 , - 1830 , - 417 , - 1328 , - 3235 , - 4810 , - 4725 , - 1652 , - 4887 , - 2478 , - 3721 , - 1976 , - 1227 , - 146 , - 2717 , - 2300 , - 2879 , - 3126 , - 1713 , - 2624 , - 4531 , - 794 , - 709 , - 2948 , - 871 , - 3774 , - 5017 , - 3272 , - 2523 , - 1442 , - 4013 , - 3596 , - 4175 , - 4422 , - 3009 , - 3920 , - 515 , - 2090 , - 2005 , - 4244 , - 2167 , - 5070 , - 1001 , - 4568 , - 3819 , - 2738 , - 5309 , - 4892 , - 159 , - 406 , - 4305 , - 5216 , - 1811 , - 3386 , - 3301 , - 228 , - 3463 , - 1054 , - 2297 , - 552 , - 5115 , - 4034 , - 1293 , - 876 , - 1455 , - 1702 , - 289 , - 1200 , - 3107 , - 4682 , - 4597 , - 1524 , - 4759 , - 2350 , - 3593 , - 1848 , - 1099 , - 18 , - 2589 , - 2172 , - 2751 , - 2998 , - 1585 , - 2496 , - 4403 , - 666 , - 581 , - 2820 , - 743 , - 3646 , - 4889 , - 3144 , - 2395 , - 1314 , - 3885 , - 3468 , - 4047 , - 4294 , - 2881 , - 3792 , - 387 , - 1962 , - 1877 , - 4116 , - 2039 , - 4942 , - 873 , - 4440 , - 3691 , - 2610 , - 5181 , - 4764 , - 31 , - 278 , - 4177 , - 5088 , - 1683 , - 3258 , - 3173 , - 100 , - 3335 , - 926 , - 2169 , - 424 , - 4987 , - 3906 , - 1165 , - 748 , - 1327 , - 1574 , - 161 , - 1072 , - 2979 , - 4554 , - 4469 , - 1396 , - 4631 , - 2222 , - 3465 , - 1720 , - 971 , - 5202 , - 2461 , - 2044 , - 2623 , - 2870 , - 1457 , - 2368 , - 4275 , - 538 , - 453 , - 2692 , - 615 , - 3518 , - 4761 , - 3016 , - 2267 , - 1186 , - 3757 , - 3340 , - 3919 , - 4166 , - 2753 , - 3664 , - 259 , - 1834 , - 1749 , - 3988 , - 1911 , - 4814 , - 745 , - 4312 , - 3563 , - 2482 , - 5053 , - 4636 , - 5215 , - 150 , - 4049 , - 4960 , - 1555 , - 3130 , - 3045 , - 5284 , - 3207 , - 798 , - 2041 , - 296 , - 4859 , - 3778 , - 1037 , - 620 , - 1199 , - 1446 , - 33 , - 944 , - 2851 , - 4426 , - 4341 , - 1268 , - 4503 , - 2094 , - 3337 , - 1592 , - 843 , - 5074 , - 2333 , - 1916 , - 2495 , - 2742 , - 1329 , - 2240 , - 4147 , - 410 , - 325 , - 2564 , - 487 , - 3390 , - 4633 , - 2888 , - 2139 , - 1058 , - 3629 , - 3212 , - 3791 , - 4038 , - 2625 , - 3536 , - 131 , - 1706 , - 1621 , - 3860 , - 1783 , - 4686 , - 617 , - 4184 , - 3435 , - 2354 , - 4925 , - 4508 , - 5087 , - 22 , - 3921 , - 4832 , - 1427 , - 3002 , - 2917 , - 5156 , - 3079 , - 670 , - 1913 , - 168 , - 4731 , - 3650 , - 909 , - 492 , - 1071 , - 1318 , - 5217 , - 816 , - 2723 , - 4298 , - 4213 , - 1140 , - 4375 , - 1966 , - 3209 , - 1464 , - 715 , - 4946 , - 2205 , - 1788 , - 2367 , - 2614 , - 1201 , - 2112 , - 4019 , - 282 , - 197 , - 2436 , - 359 , - 3262 , - 4505 , - 2760 , - 2011 , - 930 , - 3501 , - 3084 , - 3663 , - 3910 , - 2497 , - 3408 , - 3 , - 1578 , - 1493 , - 3732 , - 1655 , - 4558 , - 489 , - 4056 , - 3307 , - 2226 , - 4797 , - 4380 , - 4959 , - 5206 , - 3793 , - 4704 , - 1299 , - 2874 , - 2789 , - 5028 , - 2951 , - 542 , - 1785 , - 40 , - 4603 , - 3522 , - 781 , - 364 , - 943 , - 1190 , - 5089 , - 688 , - 2595 , - 4170 , - 4085 , - 1012 , - 4247 , - 1838 , - 3081 , - 1336 , - 587 , - 4818 , - 2077 , - 1660 , - 2239 , - 2486 , - 1073 , - 1984 , - 3891 , - 154 , - 69 , - 2308 , - 231 , - 3134 , - 4377 , - 2632 , - 1883 , - 802 , - 3373 , - 2956 , - 3535 , - 3782 , - 2369 , - 3280 , - 5187 , - 1450 , - 1365 , - 3604 , - 1527 , - 4430 , - 361 , - 3928 , - 3179 , - 2098 , - 4669 , - 4252 , - 4831 , - 5078 , - 3665 , - 4576 , - 1171 , - 2746 , - 2661 , - 4900 , - 2823 , - 414 , - 1657 , - 5224 , - 4475 , - 3394 , - 653 , - 236 , - 815 , - 1062 , - 4961 , - 560 , - 2467 , - 4042 , - 3957 , - 884 , - 4119 , - 1710 , - 2953 , - 1208 , - 459 , - 4690 , - 1949 , - 1532 , - 2111 , - 2358 , - 945 , - 1856 , - 3763 , - 26 , - 5253 , - 2180 , - 103 , - 3006 , - 4249 , - 2504 , - 1755 , - 674 , - 3245 , - 2828 , - 3407 , - 3654 , - 2241 , - 3152 , - 5059 , - 1322 , - 1237 , - 3476 , - 1399 , - 4302 , - 233 , - 3800 , - 3051 , - 1970 , - 4541 , - 4124 , - 4703 , - 4950 , - 3537 , - 4448 , - 1043 , - 2618 , - 2533 , - 4772 , - 2695 , - 286 , - 1529 , - 5096 , - 4347 , - 3266 , - 525 , - 108 , - 687 , - 934 , - 4833 , - 432 , - 2339 , - 3914 , - 3829 , - 756 , - 3991 , - 1582 , - 2825 , - 1080 , - 331 , - 4562 , - 1821 , - 1404 , - 1983 , - 2230 , - 817 , - 1728 , - 3635 , - 5210 , - 5125 , - 2052 , - 5287 , - 2878 , - 4121 , - 2376 , - 1627 , - 546 , - 3117 , - 2700 , - 3279 , - 3526 , - 2113 , - 3024 , - 4931 , - 1194 , - 1109 , - 3348 , - 1271 , - 4174 , - 105 , - 3672 , - 2923 , - 1842 , - 4413 , - 3996 , - 4575 , - 4822 , - 3409 , - 4320 , - 915 , - 2490 , - 2405 , - 4644 , - 2567 , - 158 , - 1401 , - 4968 , - 4219 , - 3138 , - 397 , - 5292 , - 559 , - 806 , - 4705 , - 304 , - 2211 , - 3786 , - 3701 , - 628 , - 3863 , - 1454 , - 2697 , - 952 , - 203 , - 4434 , - 1693 , - 1276 , - 1855 , - 2102 , - 689 , - 1600 , - 3507 , - 5082 , - 4997 , - 1924 , - 5159 , - 2750 , - 3993 , - 2248 , - 1499 , - 418 , - 2989 , - 2572 , - 3151 , - 3398 , - 1985 , - 2896 , - 4803 , - 1066 , - 981 , - 3220 , - 1143 , - 4046 , - 5289 , - 3544 , - 2795 , - 1714 , - 4285 , - 3868 , - 4447 , - 4694 , - 3281 , - 4192 , - 787 , - 2362 , - 2277 , - 4516 , - 2439 , - 30 , - 1273 , - 4840 , - 4091 , - 3010 , - 269 , - 5164 , - 431 , - 678 , - 4577 , - 176 , - 2083 , - 3658 , - 3573 , - 500 , - 3735 , - 1326 , - 2569 , - 824 , - 75 , - 4306 , - 1565 , - 1148 , - 1727 , - 1974 , - 561 , - 1472 , - 3379 , - 4954 , - 4869 , - 1796 , - 5031 , - 2622 , - 3865 , - 2120 , - 1371 , - 290 , - 2861 , - 2444 , - 3023 , - 3270 , - 1857 , - 2768 , - 4675 , - 938 , - 853 , - 3092 , - 1015 , - 3918 , - 5161 , - 3416 , - 2667 , - 1586 , - 4157 , - 3740 , - 4319 , - 4566 , - 3153 , - 4064 , - 659 , - 2234 , - 2149 , - 4388 , - 2311 , - 5214 , - 1145 , - 4712 , - 3963 , - 2882 , - 141 , - 5036 , - 303 , - 550 , - 4449 , - 48 , - 1955 , - 3530 , - 3445 , - 372 , - 3607 , - 1198 , - 2441 , - 696 , - 5259 , - 4178 , - 1437 , - 1020 , - 1599 , - 1846 , - 433 , - 1344 , - 3251 , - 4826 , - 4741 , - 1668 , - 4903 , - 2494 , - 3737 , - 1992 , - 1243 , - 162 , - 2733 , - 2316 , - 2895 , - 3142 , - 1729 , - 2640 , - 4547 , - 810 , - 725 , - 2964 , - 887 , - 3790 , - 5033 , - 3288 , - 2539 , - 1458 , - 4029 , - 3612 , - 4191 , - 4438 , - 3025 , - 3936 , - 531 , - 2106 , - 2021 , - 4260 , - 2183 , - 5086 , - 1017 , - 4584 , - 3835 , - 2754 , - 13 , - 4908 , - 175 , - 422 , - 4321 , - 5232 , - 1827 , - 3402 , - 3317 , - 244 , - 3479 , - 1070 , - 2313 , - 568 , - 5131 , - 4050 , - 1309 , - 892 , - 1471 , - 1718 , - 305 , - 1216 , - 3123 , - 4698 , - 4613 , - 1540 , - 4775 , - 2366 , - 3609 , - 1864 , - 1115 , - 34 , - 2605 , - 2188 , - 2767 , - 3014 , - 1601 , - 2512 , - 4419 , - 682 , - 597 , - 2836 , - 759 , - 3662 , - 4905 , - 3160 , - 2411 , - 1330 , - 3901 , - 3484 , - 4063 , - 4310 , - 2897 , - 3808 , - 403 , - 1978 , - 1893 , - 4132 , - 2055 , - 4958 , - 889 , - 4456 , - 3707 , - 2626 , - 5197 , - 4780 , - 47 , - 294 , - 4193 , - 5104 , - 1699 , - 3274 , - 3189 , - 116 , - 3351 , - 942 , - 2185 , - 440 , - 5003 , - 3922 , - 1181 , - 764 , - 1343 , - 1590 , - 177 , - 1088 , - 2995 , - 4570 , - 4485 , - 1412 , - 4647 , - 2238 , - 3481 , - 1736 , - 987 , - 5218 , - 2477 , - 2060 , - 2639 , - 2886 , - 1473 , - 2384 , - 4291 , - 554 , - 469 , - 2708 , - 631 , - 3534 , - 4777 , - 3032 , - 2283 , - 1202 , - 3773 , - 3356 , - 3935 , - 4182 , - 2769 , - 3680 , - 275 , - 1850 , - 1765 , - 4004 , - 1927 , - 4830 , - 761 , - 4328 , - 3579 , - 2498 , - 5069 , - 4652 , - 5231 , - 166 , - 4065 , - 4976 , - 1571 , - 3146 , - 3061 , - 5300 , - 3223 , - 814 , - 2057 , - 312 , - 4875 , - 3794 , - 1053 , - 636 , - 1215 , - 1462 , - 49 , - 960 , - 2867 , - 4442 , - 4357 , - 1284 , - 4519 , - 2110 , - 3353 , - 1608 , - 859 , - 5090 , - 2349 , - 1932 , - 2511 , - 2758 , - 1345 , - 2256 , - 4163 , - 426 , - 341 , - 2580 , - 503 , - 3406 , - 4649 , - 2904 , - 2155 , - 1074 , - 3645 , - 3228 , - 3807 , - 4054 , - 2641 , - 3552 , - 147 , - 1722 , - 1637 , - 3876 , - 1799 , - 4702 , - 633 , - 4200 , - 3451 , - 2370 , - 4941 , - 4524 , - 5103 , - 38 , - 3937 , - 4848 , - 1443 , - 3018 , - 2933 , - 5172 , - 3095 , - 686 , - 1929 , - 184 , - 4747 , - 3666 , - 925 , - 508 , - 1087 , - 1334 , - 5233 , - 832 , - 2739 , - 4314 , - 4229 , - 1156 , - 4391 , - 1982 , - 3225 , - 1480 , - 731 , - 4962 , - 2221 , - 1804 , - 2383 , - 2630 , - 1217 , - 2128 , - 4035 , - 298 , - 213 , - 2452 , - 375 , - 3278 , - 4521 , - 2776 , - 2027 , - 946 , - 3517 , - 3100 , - 3679 , - 3926 , - 2513 , - 3424 , - 19 , - 1594 , - 1509 , - 3748 , - 1671 , - 4574 , - 505 , - 4072 , - 3323 , - 2242 , - 4813 , - 4396 , - 4975 , - 5222 , - 3809 , - 4720 , - 1315 , - 2890 , - 2805 , - 5044 , - 2967 , - 558 , - 1801 , - 56 , - 4619 , - 3538 , - 797 , - 380 , - 959 , - 1206 , - 5105 , - 704 , - 2611 , - 4186 , - 4101 , - 1028 , - 4263 , - 1854 , - 3097 , - 1352 , - 603 , - 4834 , - 2093 , - 1676 , - 2255 , - 2502 , - 1089 , - 2000 , - 3907 , - 170 , - 85 , - 2324 , - 247 , - 3150 , - 4393 , - 2648 , - 1899 , - 818 , - 3389 , - 2972 , - 3551 , - 3798 , - 2385 , - 3296 , - 5203 , - 1466 , - 1381 , - 3620 , - 1543 , - 4446 , - 377 , - 3944 , - 3195 , - 2114 , - 4685 , - 4268 , - 4847 , - 5094 , - 3681 , - 4592 , - 1187 , - 2762 , - 2677 , - 4916 , - 2839 , - 430 , - 1673 , - 5240 , - 4491 , - 3410 , - 669 , - 252 , - 831 , - 1078 , - 4977 , - 576 , - 2483 , - 4058 , - 3973 , - 900 , - 4135 , - 1726 , - 2969 , - 1224 , - 475 , - 4706 , - 1965 , - 1548 , - 2127 , - 2374 , - 961 , - 1872 , - 3779 , - 42 , - 5269 , - 2196 , - 119 , - 3022 , - 4265 , - 2520 , - 1771 , - 690 , - 3261 , - 2844 , - 3423 , - 3670 , - 2257 , - 3168 , - 5075 , - 1338 , - 1253 , - 3492 , - 1415 , - 4318 , - 249 , - 3816 , - 3067 , - 1986 , - 4557 , - 4140 , - 4719 , - 4966 , - 3553 , - 4464 , - 1059 , - 2634 , - 2549 , - 4788 , - 2711 , - 302 , - 1545 , - 5112 , - 4363 , - 3282 , - 541 , - 124 , - 703 , - 950 , - 4849 , - 448 , - 2355 , - 3930 , - 3845 , - 772 , - 4007 , - 1598 , - 2841 , - 1096 , - 347 , - 4578 , - 1837 , - 1420 , - 1999 , - 2246 , - 833 , - 1744 , - 3651 , - 5226 , - 5141 , - 2068 , - 5303 , - 2894 , - 4137 , - 2392 , - 1643 , - 562 , - 3133 , - 2716 , - 3295 , - 3542 , - 2129 , - 3040 , - 4947 , - 1210 , - 1125 , - 3364 , - 1287 , - 4190 , - 121 , - 3688 , - 2939 , - 1858 , - 4429 , - 4012 , - 4591 , - 4838 , - 3425 , - 4336 , - 931 , - 2506 , - 2421 , - 4660 , - 2583 , - 174 , - 1417 , - 4984 , - 4235 , - 3154 , - 413 , - 5308 , - 575 , - 822 , - 4721 , - 320 , - 2227 , - 3802 , - 3717 , - 644 , - 3879 , - 1470 , - 2713 , - 968 , - 219 , - 4450 , - 1709 , - 1292 , - 1871 , - 2118 , - 705 , - 1616 , - 3523 , - 5098 , - 5013 , - 1940 , - 5175 , - 2766 , - 4009 , - 2264 , - 1515 , - 434 , - 3005 , - 2588 , - 3167 , - 3414 , - 2001 , - 2912 , - 4819 , - 1082 , - 997 , - 3236 , - 1159 , - 4062 , - 5305 , - 3560 , - 2811 , - 1730 , - 4301 , - 3884 , - 4463 , - 4710 , - 3297 , - 4208 , - 803 , - 2378 , - 2293 , - 4532 , - 2455 , - 46 , - 1289 , - 4856 , - 4107 , - 3026 , - 285 , - 5180 , - 447 , - 694 , - 4593 , - 192 , - 2099 , - 3674 , - 3589 , - 516 , - 3751 , - 1342 , - 2585 , - 840 , - 91 , - 4322 , - 1581 , - 1164 , - 1743 , - 1990 , - 577 , - 1488 , - 3395 , - 4970 , - 4885 , - 1812 , - 5047 , - 2638 , - 3881 , - 2136 , - 1387 , - 306 , - 2877 , - 2460 , - 3039 , - 3286 , - 1873 , - 2784 , - 4691 , - 954 , - 869 , - 3108 , - 1031 , - 3934 , - 5177 , - 3432 , - 2683 , - 1602 , - 4173 , - 3756 , - 4335 , - 4582 , - 3169 , - 4080 , - 675 , - 2250 , - 2165 , - 4404 , - 2327 , - 5230 , - 1161 , - 4728 , - 3979 , - 2898 , - 157 , - 5052 , - 319 , - 566 , - 4465 , - 64 , - 1971 , - 3546 , - 3461 , - 388 , - 3623 , - 1214 , - 2457 , - 712 , - 5275 , - 4194 , - 1453 , - 1036 , - 1615 , - 1862 , - 449 , - 1360 , - 3267 , - 4842 , - 4757 , - 1684 , - 4919 , - 2510 , - 3753 , - 2008 , - 1259 , - 178 , - 2749 , - 2332 , - 2911 , - 3158 , - 1745 , - 2656 , - 4563 , - 826 , - 741 , - 2980 , - 903 , - 3806 , - 5049 , - 3304 , - 2555 , - 1474 , - 4045 , - 3628 , - 4207 , - 4454 , - 3041 , - 3952 , - 547 , - 2122 , - 2037 , - 4276 , - 2199 , - 5102 , - 1033 , - 4600 , - 3851 , - 2770 , - 29 , - 4924 , - 191 , - 438 , - 4337 , - 5248 , - 1843 , - 3418 , - 3333 , - 260 , - 3495 , - 1086 , - 2329 , - 584 , - 5147 , - 4066 , - 1325 , - 908 , - 1487 , - 1734 , - 321 , - 1232 , - 3139 , - 4714 , - 4629 , - 1556 , - 4791 , - 2382 , - 3625 , - 1880 , - 1131 , - 50 , - 2621 , - 2204 , - 2783 , - 3030 , - 1617 , - 2528 , - 4435 , - 698 , - 613 , - 2852 , - 775 , - 3678 , - 4921 , - 3176 , - 2427 , - 1346 , - 3917 , - 3500 , - 4079 , - 4326 , - 2913 , - 3824 , - 419 , - 1994 , - 1909 , - 4148 , - 2071 , - 4974 , - 905 , - 4472 , - 3723 , - 2642 , - 5213 , - 4796 , - 63 , - 310 , - 4209 , - 5120 , - 1715 , - 3290 , - 3205 , - 132 , - 3367 , - 958 , - 2201 , - 456 , - 5019 , - 3938 , - 1197 , - 780 , - 1359 , - 1606 , - 193 , - 1104 , - 3011 , - 4586 , - 4501 , - 1428 , - 4663 , - 2254 , - 3497 , - 1752 , - 1003 , - 5234 , - 2493 , - 2076 , - 2655 , - 2902 , - 1489 , - 2400 , - 4307 , - 570 , - 485 , - 2724 , - 647 , - 3550 , - 4793 , - 3048 , - 2299 , - 1218 , - 3789 , - 3372 , - 3951 , - 4198 , - 2785 , - 3696 , - 291 , - 1866 , - 1781 , - 4020 , - 1943 , - 4846 , - 777 , - 4344 , - 3595 , - 2514 , - 5085 , - 4668 , - 5247 , - 182 , - 4081 , - 4992 , - 1587 , - 3162 , - 3077 , - 4 , - 3239 , - 830 , - 2073 , - 328 , - 4891 , - 3810 , - 1069 , - 652 , - 1231 , - 1478 , - 65 , - 976 , - 2883 , - 4458 , - 4373 , - 1300 , - 4535 , - 2126 , - 3369 , - 1624 , - 875 , - 5106 , - 2365 , - 1948 , - 2527 , - 2774 , - 1361 , - 2272 , - 4179 , - 442 , - 357 , - 2596 , - 519 , - 3422 , - 4665 , - 2920 , - 2171 , - 1090 , - 3661 , - 3244 , - 3823 , - 4070 , - 2657 , - 3568 , - 163 , - 1738 , - 1653 , - 3892 , - 1815 , - 4718 , - 649 , - 4216 , - 3467 , - 2386 , - 4957 , - 4540 , - 5119 , - 54 , - 3953 , - 4864 , - 1459 , - 3034 , - 2949 , - 5188 , - 3111 , - 702 , - 1945 , - 200 , - 4763 , - 3682 , - 941 , - 524 , - 1103 , - 1350 , - 5249 , - 848 , - 2755 , - 4330 , - 4245 , - 1172 , - 4407 , - 1998 , - 3241 , - 1496 , - 747 , - 4978 , - 2237 , - 1820 , - 2399 , - 2646 , - 1233 , - 2144 , - 4051 , - 314 , - 229 , - 2468 , - 391 , - 3294 , - 4537 , - 2792 , - 2043 , - 962 , - 3533 , - 3116 , - 3695 , - 3942 , - 2529 , - 3440 , - 35 , - 1610 , - 1525 , - 3764 , - 1687 , - 4590 , - 521 , - 4088 , - 3339 , - 2258 , - 4829 , - 4412 , - 4991 , - 5238 , - 3825 , - 4736 , - 1331 , - 2906 , - 2821 , - 5060 , - 2983 , - 574 , - 1817 , - 72 , - 4635 , - 3554 , - 813 , - 396 , - 975 , - 1222 , - 5121 , - 720 , - 2627 , - 4202 , - 4117 , - 1044 , - 4279 , - 1870 , - 3113 , - 1368 , - 619 , - 4850 , - 2109 , - 1692 , - 2271 , - 2518 , - 1105 , - 2016 , - 3923 , - 186 , - 101 , - 2340 , - 263 , - 3166 , - 4409 , - 2664 , - 1915 , - 834 , - 3405 , - 2988 , - 3567 , - 3814 , - 2401 , - 3312 , - 5219 , - 1482 , - 1397 , - 3636 , - 1559 , - 4462 , - 393 , - 3960 , - 3211 , - 2130 , - 4701 , - 4284 , - 4863 , - 5110 , - 3697 , - 4608 , - 1203 , - 2778 , - 2693 , - 4932 , - 2855 , - 446 , - 1689 , - 5256 , - 4507 , - 3426 , - 685 , - 268 , - 847 , - 1094 , - 4993 , - 592 , - 2499 , - 4074 , - 3989 , - 916 , - 4151 , - 1742 , - 2985 , - 1240 , - 491 , - 4722 , - 1981 , - 1564 , - 2143 , - 2390 , - 977 , - 1888 , - 3795 , - 58 , - 5285 , - 2212 , - 135 , - 3038 , - 4281 , - 2536 , - 1787 , - 706 , - 3277 , - 2860 , - 3439 , - 3686 , - 2273 , - 3184 , - 5091 , - 1354 , - 1269 , - 3508 , - 1431 , - 4334 , - 265 , - 3832 , - 3083 , - 2002 , - 4573 , - 4156 , - 4735 , - 4982 , - 3569 , - 4480 , - 1075 , - 2650 , - 2565 , - 4804 , - 2727 , - 318 , - 1561 , - 5128 , - 4379 , - 3298 , - 557 , - 140 , - 719 , - 966 , - 4865 , - 464 , - 2371 , - 3946 , - 3861 , - 788 , - 4023 , - 1614 , - 2857 , - 1112 , - 363 , - 4594 , - 1853 , - 1436 , - 2015 , - 2262 , - 849 , - 1760 , - 3667 , - 5242 , - 5157 , - 2084 , - 7 , - 2910 , - 4153 , - 2408 , - 1659 , - 578 , - 3149 , - 2732 , - 3311 , - 3558 , - 2145 , - 3056 , - 4963 , - 1226 , - 1141 , - 3380 , - 1303 , - 4206 , - 137 , - 3704 , - 2955 , - 1874 , - 4445 , - 4028 , - 4607 , - 4854 , - 3441 , - 4352 , - 947 , - 2522 , - 2437 , - 4676 , - 2599 , - 190 , - 1433 , - 5000 , - 4251 , - 3170 , - 429 , - 12 , - 591 , - 838 , - 4737 , - 336 , - 2243 , - 3818 , - 3733 , - 660 , - 3895 , - 1486 , - 2729 , - 984 , - 235 , - 4466 , - 1725 , - 1308 , - 1887 , - 2134 , - 721 , - 1632 , - 3539 , - 5114 , - 5029 , - 1956 , - 5191 , - 2782 , - 4025 , - 2280 , - 1531 , - 450 , - 3021 , - 2604 , - 3183 , - 3430 , - 2017 , - 2928 , - 4835 , - 1098 , - 1013 , - 3252 , - 1175 , - 4078 , - 9 , - 3576 , - 2827 , - 1746 , - 4317 , - 3900 , - 4479 , - 4726 , - 3313 , - 4224 , - 819 , - 2394 , - 2309 , - 4548 , - 2471 , - 62 , - 1305 , - 4872 , - 4123 , - 3042 , - 301 , - 5196 , - 463 , - 710 , - 4609 , - 208 , - 2115 , - 3690 , - 3605 , - 532 , - 3767 , - 1358 , - 2601 , - 856 , - 107 , - 4338 , - 1597 , - 1180 , - 1759 , - 2006 , - 593 , - 1504 , - 3411 , - 4986 , - 4901 , - 1828 , - 5063 , - 2654 , - 3897 , - 2152 , - 1403 , - 322 , - 2893 , - 2476 , - 3055 , - 3302 , - 1889 , - 2800 , - 4707 , - 970 , - 885 , - 3124 , - 1047 , - 3950 , - 5193 , - 3448 , - 2699 , - 1618 , - 4189 , - 3772 , - 4351 , - 4598 , - 3185 , - 4096 , - 691 , - 2266 , - 2181 , - 4420 , - 2343 , - 5246 , - 1177 , - 4744 , - 3995 , - 2914 , - 173 , - 5068 , - 335 , - 582 , - 4481 , - 80 , - 1987 , - 3562 , - 3477 , - 404 , - 3639 , - 1230 , - 2473 , - 728 , - 5291 , - 4210 , - 1469 , - 1052 , - 1631 , - 1878 , - 465 , - 1376 , - 3283 , - 4858 , - 4773 , - 1700 , - 4935 , - 2526 , - 3769 , - 2024 , - 1275 , - 194 , - 2765 , - 2348 , - 2927 , - 3174 , - 1761 , - 2672 , - 4579 , - 842 , - 757 , - 2996 , - 919 , - 3822 , - 5065 , - 3320 , - 2571 , - 1490 , - 4061 , - 3644 , - 4223 , - 4470 , - 3057 , - 3968 , - 563 , - 2138 , - 2053 , - 4292 , - 2215 , - 5118 , - 1049 , - 4616 , - 3867 , - 2786 , - 45 , - 4940 , - 207 , - 454 , - 4353 , - 5264 , - 1859 , - 3434 , - 3349 , - 276 , - 3511 , - 1102 , - 2345 , - 600 , - 5163 , - 4082 , - 1341 , - 924 , - 1503 , - 1750 , - 337 , - 1248 , - 3155 , - 4730 , - 4645 , - 1572 , - 4807 , - 2398 , - 3641 , - 1896 , - 1147 , - 66 , - 2637 , - 2220 , - 2799 , - 3046 , - 1633 , - 2544 , - 4451 , - 714 , - 629 , - 2868 , - 791 , - 3694 , - 4937 , - 3192 , - 2443 , - 1362 , - 3933 , - 3516 , - 4095 , - 4342 , - 2929 , - 3840 , - 435 , - 2010 , - 1925 , - 4164 , - 2087 , - 4990 , - 921 , - 4488 , - 3739 , - 2658 , - 5229 , - 4812 , - 79 , - 326 , - 4225 , - 5136 , - 1731 , - 3306 , - 3221 , - 148 , - 3383 , - 974 , - 2217 , - 472 , - 5035 , - 3954 , - 1213 , - 796 , - 1375 , - 1622 , - 209 , - 1120 , - 3027 , - 4602 , - 4517 , - 1444 , - 4679 , - 2270 , - 3513 , - 1768 , - 1019 , - 5250 , - 2509 , - 2092 , - 2671 , - 2918 , - 1505 , - 2416 , - 4323 , - 586 , - 501 , - 2740 , - 663 , - 3566 , - 4809 , - 3064 , - 2315 , - 1234 , - 3805 , - 3388 , - 3967 , - 4214 , - 2801 , - 3712 , - 307 , - 1882 , - 1797 , - 4036 , - 1959 , - 4862 , - 793 , - 4360 , - 3611 , - 2530 , - 5101 , - 4684 , - 5263 , - 198 , - 4097 , - 5008 , - 1603 , - 3178 , - 3093 , - 20 , - 3255 , - 846 , - 2089 , - 344 , - 4907 , - 3826 , - 1085 , - 668 , - 1247 , - 1494 , - 81 , - 992 , - 2899 , - 4474 , - 4389 , - 1316 , - 4551 , - 2142 , - 3385 , - 1640 , - 891 , - 5122 , - 2381 , - 1964 , - 2543 , - 2790 , - 1377 , - 2288 , - 4195 , - 458 , - 373 , - 2612 , - 535 , - 3438 , - 4681 , - 2936 , - 2187 , - 1106 , - 3677 , - 3260 , - 3839 , - 4086 , - 2673 , - 3584 , - 179 , - 1754 , - 1669 , - 3908 , - 1831 , - 4734 , - 665 , - 4232 , - 3483 , - 2402 , - 4973 , - 4556 , - 5135 , - 70 , - 3969 , - 4880 , - 1475 , - 3050 , - 2965 , - 5204 , - 3127 , - 718 , - 1961 , - 216 , - 4779 , - 3698 , - 957 , - 540 , - 1119 , - 1366 , - 5265 , - 864 , - 2771 , - 4346 , - 4261 , - 1188 , - 4423 , - 2014 , - 3257 , - 1512 , - 763 , - 4994 , - 2253 , - 1836 , - 2415 , - 2662 , - 1249 , - 2160 , - 4067 , - 330 , - 245 , - 2484 , - 407 , - 3310 , - 4553 , - 2808 , - 2059 , - 978 , - 3549 , - 3132 , - 3711 , - 3958 , - 2545 , - 3456 , - 51 , - 1626 , - 1541 , - 3780 , - 1703 , - 4606 , - 537 , - 4104 , - 3355 , - 2274 , - 4845 , - 4428 , - 5007 , - 5254 , - 3841 , - 4752 , - 1347 , - 2922 , - 2837 , - 5076 , - 2999 , - 590 , - 1833 , - 88 , - 4651 , - 3570 , - 829 , - 412 , - 991 , - 1238 , - 5137 , - 736 , - 2643 , - 4218 , - 4133 , - 1060 , - 4295 , - 1886 , - 3129 , - 1384 , - 635 , - 4866 , - 2125 , - 1708 , - 2287 , - 2534 , - 1121 , - 2032 , - 3939 , - 202 , - 117 , - 2356 , - 279 , - 3182 , - 4425 , - 2680 , - 1931 , - 850 , - 3421 , - 3004 , - 3583 , - 3830 , - 2417 , - 3328 , - 5235 , - 1498 , - 1413 , - 3652 , - 1575 , - 4478 , - 409 , - 3976 , - 3227 , - 2146 , - 4717 , - 4300 , - 4879 , - 5126 , - 3713 , - 4624 , - 1219 , - 2794 , - 2709 , - 4948 , - 2871 , - 462 , - 1705 , - 5272 , - 4523 , - 3442 , - 701 , - 284 , - 863 , - 1110 , - 5009 , - 608 , - 2515 , - 4090 , - 4005 , - 932 , - 4167 , - 1758 , - 3001 , - 1256 , - 507 , - 4738 , - 1997 , - 1580 , - 2159 , - 2406 , - 993 , - 1904 , - 3811 , - 74 , - 5301 , - 2228 , - 151 , - 3054 , - 4297 , - 2552 , - 1803 , - 722 , - 3293 , - 2876 , - 3455 , - 3702 , - 2289 , - 3200 , - 5107 , - 1370 , - 1285 , - 3524 , - 1447 , - 4350 , - 281 , - 3848 , - 3099 , - 2018 , - 4589 , - 4172 , - 4751 , - 4998 , - 3585 , - 4496 , - 1091 , - 2666 , - 2581 , - 4820 , - 2743 , - 334 , - 1577 , - 5144 , - 4395 , - 3314 , - 573 , - 156 , - 735 , - 982 , - 4881 , - 480 , - 2387 , - 3962 , - 3877 , - 804 , - 4039 , - 1630 , - 2873 , - 1128 , - 379 , - 4610 , - 1869 , - 1452 , - 2031 , - 2278 , - 865 , - 1776 , - 3683 , - 5258 , - 5173 , - 2100 , - 23 , - 2926 , - 4169 , - 2424 , - 1675 , - 594 , - 3165 , - 2748 , - 3327 , - 3574 , - 2161 , - 3072 , - 4979 , - 1242 , - 1157 , - 3396 , - 1319 , - 4222 , - 153 , - 3720 , - 2971 , - 1890 , - 4461 , - 4044 , - 4623 , - 4870 , - 3457 , - 4368 , - 963 , - 2538 , - 2453 , - 4692 , - 2615 , - 206 , - 1449 , - 5016 , - 4267 , - 3186 , - 445 , - 28 , - 607 , - 854 , - 4753 , - 352 , - 2259 , - 3834 , - 3749 , - 676 , - 3911 , - 1502 , - 2745 , - 1000 , - 251 , - 4482 , - 1741 , - 1324 , - 1903 , - 2150 , - 737 , - 1648 , - 3555 , - 5130 , - 5045 , - 1972 , - 5207 , - 2798 , - 4041 , - 2296 , - 1547 , - 466 , - 3037 , - 2620 , - 3199 , - 3446 , - 2033 , - 2944 , - 4851 , - 1114 , - 1029 , - 3268 , - 1191 , - 4094 , - 25 , - 3592 , - 2843 , - 1762 , - 4333 , - 3916 , - 4495 , - 4742 , - 3329 , - 4240 , - 835 , - 2410 , - 2325 , - 4564 , - 2487 , - 78 , - 1321 , - 4888 , - 4139 , - 3058 , - 317 , - 5212 , - 479 , - 726 , - 4625 , - 224 , - 2131 , - 3706 , - 3621 , - 548 , - 3783 , - 1374 , - 2617 , - 872 , - 123 , - 4354 , - 1613 , - 1196 , - 1775 , - 2022 , - 609 , - 1520 , - 3427 , - 5002 , - 4917 , - 1844 , - 5079 , - 2670 , - 3913 , - 2168 , - 1419 , - 338 , - 2909 , - 2492 , - 3071 , - 3318 , - 1905 , - 2816 , - 4723 , - 986 , - 901 , - 3140 , - 1063 , - 3966 , - 5209 , - 3464 , - 2715 , - 1634 , - 4205 , - 3788 , - 4367 , - 4614 , - 3201 , - 4112 , - 707 , - 2282 , - 2197 , - 4436 , - 2359 , - 5262 , - 1193 , - 4760 , - 4011 , - 2930 , - 189 , - 5084 , - 351 , - 598 , - 4497 , - 96 , - 2003 , - 3578 , - 3493 , - 420 , - 3655 , - 1246 , - 2489 , - 744 , - 5307 , - 4226 , - 1485 , - 1068 , - 1647 , - 1894 , - 481 , - 1392 , - 3299 , - 4874 , - 4789 , - 1716 , - 4951 , - 2542 , - 3785 , - 2040 , - 1291 , - 210 , - 2781 , - 2364 , - 2943 , - 3190 , - 1777 , - 2688 , - 4595 , - 858 , - 773 , - 3012 , - 935 , - 3838 , - 5081 , - 3336 , - 2587 , - 1506 , - 4077 , - 3660 , - 4239 , - 4486 , - 3073 , - 3984 , - 579 , - 2154 , - 2069 , - 4308 , - 2231 , - 5134 , - 1065 , - 4632 , - 3883 , - 2802 , - 61 , - 4956 , - 223 , - 470 , - 4369 , - 5280 , - 1875 , - 3450 , - 3365 , - 292 , - 3527 , - 1118 , - 2361 , - 616 , - 5179 , - 4098 , - 1357 , - 940 , - 1519 , - 1766 , - 353 , - 1264 , - 3171 , - 4746 , - 4661 , - 1588 , - 4823 , - 2414 , - 3657 , - 1912 , - 1163 , - 82 , - 2653 , - 2236 , - 2815 , - 3062 , - 1649 , - 2560 , - 4467 , - 730 , - 645 , - 2884 , - 807 , - 3710 , - 4953 , - 3208 , - 2459 , - 1378 , - 3949 , - 3532 , - 4111 , - 4358 , - 2945 , - 3856 , - 451 , - 2026 , - 1941 , - 4180 , - 2103 , - 5006 , - 937 , - 4504 , - 3755 , - 2674 , - 5245 , - 4828 , - 95 , - 342 , - 4241 , - 5152 , - 1747 , - 3322 , - 3237 , - 164 , - 3399 , - 990 , - 2233 , - 488 , - 5051 , - 3970 , - 1229 , - 812 , - 1391 , - 1638 , - 225 , - 1136 , - 3043 , - 4618 , - 4533 , - 1460 , - 4695 , - 2286 , - 3529 , - 1784 , - 1035 , - 5266 , - 2525 , - 2108 , - 2687 , - 2934 , - 1521 , - 2432 , - 4339 , - 602 , - 517 , - 2756 , - 679 , - 3582 , - 4825 , - 3080 , - 2331 , - 1250 , - 3821 , - 3404 , - 3983 , - 4230 , - 2817 , - 3728 , - 323 , - 1898 , - 1813 , - 4052 , - 1975 , - 4878 , - 809 , - 4376 , - 3627 , - 2546 , - 5117 , - 4700 , - 5279 , - 214 , - 4113 , - 5024 , - 1619 , - 3194 , - 3109 , - 36 , - 3271 , - 862 , - 2105 , - 360 , - 4923 , - 3842 , - 1101 , - 684 , - 1263 , - 1510 , - 97 , - 1008 , - 2915 , - 4490 , - 4405 , - 1332 , - 4567 , - 2158 , - 3401 , - 1656 , - 907 , - 5138 , - 2397 , - 1980 , - 2559 , - 2806 , - 1393 , - 2304 , - 4211 , - 474 , - 389 , - 2628 , - 551 , - 3454 , - 4697 , - 2952 , - 2203 , - 1122 , - 3693 , - 3276 , - 3855 , - 4102 , - 2689 , - 3600 , - 195 , - 1770 , - 1685 , - 3924 , - 1847 , - 4750 , - 681 , - 4248 , - 3499 , - 2418 , - 4989 , - 4572 , - 5151 , - 86 , - 3985 , - 4896 , - 1491 , - 3066 , - 2981 , - 5220 , - 3143 , - 734 , - 1977 , - 232 , - 4795 , - 3714 , - 973 , - 556 , - 1135 , - 1382 , - 5281 , - 880 , - 2787 , - 4362 , - 4277 , - 1204 , - 4439 , - 2030 , - 3273 , - 1528 , - 779 , - 5010 , - 2269 , - 1852 , - 2431 , - 2678 , - 1265 , - 2176 , - 4083 , - 346 , - 261 , - 2500 , - 423 , - 3326 , - 4569 , - 2824 , - 2075 , - 994 , - 3565 , - 3148 , - 3727 , - 3974 , - 2561 , - 3472 , - 67 , - 1642 , - 1557 , - 3796 , - 1719 , - 4622 , - 553 , - 4120 , - 3371 , - 2290 , - 4861 , - 4444 , - 5023 , - 5270 , - 3857 , - 4768 , - 1363 , - 2938 , - 2853 , - 5092 , - 3015 , - 606 , - 1849 , - 104 , - 4667 , - 3586 , - 845 , - 428 , - 1007 , - 1254 , - 5153 , - 752 , - 2659 , - 4234 , - 4149 , - 1076 , - 4311 , - 1902 , - 3145 , - 1400 , - 651 , - 4882 , - 2141 , - 1724 , - 2303 , - 2550 , - 1137 , - 2048 , - 3955 , - 218 , - 133 , - 2372 , - 295 , - 3198 , - 4441 , - 2696 , - 1947 , - 866 , - 3437 , - 3020 , - 3599 , - 3846 , - 2433 , - 3344 , - 5251 , - 1514 , - 1429 , - 3668 , - 1591 , - 4494 , - 425 , - 3992 , - 3243 , - 2162 , - 4733 , - 4316 , - 4895 , - 5142 , - 3729 , - 4640 , - 1235 , - 2810 , - 2725 , - 4964 , - 2887 , - 478 , - 1721 , - 5288 , - 4539 , - 3458 , - 717 , - 300 , - 879 , - 1126 , - 5025 , - 624 , - 2531 , - 4106 , - 4021 , - 948 , - 4183 , - 1774 , - 3017 , - 1272 , - 523 , - 4754 , - 2013 , - 1596 , - 2175 , - 2422 , - 1009 , - 1920 , - 3827 , - 90 , - 5 , - 2244 , - 167 , - 3070 , - 4313 , - 2568 , - 1819 , - 738 , - 3309 , - 2892 , - 3471 , - 3718 , - 2305 , - 3216 , - 5123 , - 1386 , - 1301 , - 3540 , - 1463 , - 4366 , - 297 , - 3864 , - 3115 , - 2034 , - 4605 , - 4188 , - 4767 , - 5014 , - 3601 , - 4512 , - 1107 , - 2682 , - 2597 , - 4836 , - 2759 , - 350 , - 1593 , - 5160 , - 4411 , - 3330 , - 589 , - 172 , - 751 , - 998 , - 4897 , - 496 , - 2403 , - 3978 , - 3893 , - 820 , - 4055 , - 1646 , - 2889 , - 1144 , - 395 , - 4626 , - 1885 , - 1468 , - 2047 , - 2294 , - 881 , - 1792 , - 3699 , - 5274 , - 5189 , - 2116 , - 39 , - 2942 , - 4185 , - 2440 , - 1691 , - 610 , - 3181 , - 2764 , - 3343 , - 3590 , - 2177 , - 3088 , - 4995 , - 1258 , - 1173 , - 3412 , - 1335 , - 4238 , - 169 , - 3736 , - 2987 , - 1906 , - 4477 , - 4060 , - 4639 , - 4886 , - 3473 , - 4384 , - 979 , - 2554 , - 2469 , - 4708 , - 2631 , - 222 , - 1465 , - 5032 , - 4283 , - 3202 , - 461 , - 44 , - 623 , - 870 , - 4769 , - 368 , - 2275 , - 3850 , - 3765 , - 692 , - 3927 , - 1518 , - 2761 , - 1016 , - 267 , - 4498 , - 1757 , - 1340 , - 1919 , - 2166 , - 753 , - 1664 , - 3571 , - 5146 , - 5061 , - 1988 , - 5223 , - 2814 , - 4057 , - 2312 , - 1563 , - 482 , - 3053 , - 2636 , - 3215 , - 3462 , - 2049 , - 2960 , - 4867 , - 1130 , - 1045 , - 3284 , - 1207 , - 4110 , - 41 , - 3608 , - 2859 , - 1778 , - 4349 , - 3932 , - 4511 , - 4758 , - 3345 , - 4256 , - 851 , - 2426 , - 2341 , - 4580 , - 2503 , - 94 , - 1337 , - 4904 , - 4155 , - 3074 , - 333 , - 5228 , - 495 , - 742 , - 4641 , - 240 , - 2147 , - 3722 , - 3637 , - 564 , - 3799 , - 1390 , - 2633 , - 888 , - 139 , - 4370 , - 1629 , - 1212 , - 1791 , - 2038 , - 625 , - 1536 , - 3443 , - 5018 , - 4933 , - 1860 , - 5095 , - 2686 , - 3929 , - 2184 , - 1435 , - 354 , - 2925 , - 2508 , - 3087 , - 3334 , - 1921 , - 2832 , - 4739 , - 1002 , - 917 , - 3156 , - 1079 , - 3982 , - 5225 , - 3480 , - 2731 , - 1650 , - 4221 , - 3804 , - 4383 , - 4630 , - 3217 , - 4128 , - 723 , - 2298 , - 2213 , - 4452 , - 2375 , - 5278 , - 1209 , - 4776 , - 4027 , - 2946 , - 205 , - 5100 , - 367 , - 614 , - 4513 , - 112 , - 2019 , - 3594 , - 3509 , - 436 , - 3671 , - 1262 , - 2505 , - 760 , - 11 , - 4242 , - 1501 , - 1084 , - 1663 , - 1910 , - 497 , - 1408 , - 3315 , - 4890 , - 4805 , - 1732 , - 4967 , - 2558 , - 3801 , - 2056 , - 1307 , - 226 , - 2797 , - 2380 , - 2959 , - 3206 , - 1793 , - 2704 , - 4611 , - 874 , - 789 , - 3028 , - 951 , - 3854 , - 5097 , - 3352 , - 2603 , - 1522 , - 4093 , - 3676 , - 4255 , - 4502 , - 3089 , - 4000 , - 595 , - 2170 , - 2085 , - 4324 , - 2247 , - 5150 , - 1081 , - 4648 , - 3899 , - 2818 , - 77 , - 4972 , - 239 , - 486 , - 4385 , - 5296 , - 1891 , - 3466 , - 3381 , - 308 , - 3543 , - 1134 , - 2377 , - 632 , - 5195 , - 4114 , - 1373 , - 956 , - 1535 , - 1782 , - 369 , - 1280 , - 3187 , - 4762 , - 4677 , - 1604 , - 4839 , - 2430 , - 3673 , - 1928 , - 1179 , - 98 , - 2669 , - 2252 , - 2831 , - 3078 , - 1665 , - 2576 , - 4483 , - 746 , - 661 , - 2900 , - 823 , - 3726 , - 4969 , - 3224 , - 2475 , - 1394 , - 3965 , - 3548 , - 4127 , - 4374 , - 2961 , - 3872 , - 467 , - 2042 , - 1957 , - 4196 , - 2119 , - 5022 , - 953 , - 4520 , - 3771 , - 2690 , - 5261 , - 4844 , - 111 , - 358 , - 4257 , - 5168 , - 1763 , - 3338 , - 3253 , - 180 , - 3415 , - 1006 , - 2249 , - 504 , - 5067 , - 3986 , - 1245 , - 828 , - 1407 , - 1654 , - 241 , - 1152 , - 3059 , - 4634 , - 4549 , - 1476 , - 4711 , - 2302 , - 3545 , - 1800 , - 1051 , - 5282 , - 2541 , - 2124 , - 2703 , - 2950 , - 1537 , - 2448 , - 4355 , - 618 , - 533 , - 2772 , - 695 , - 3598 , - 4841 , - 3096 , - 2347 , - 1266 , - 3837 , - 3420 , - 3999 , - 4246 , - 2833 , - 3744 , - 339 , - 1914 , - 1829 , - 4068 , - 1991 , - 4894 , - 825 , - 4392 , - 3643 , - 2562 , - 5133 , - 4716 , - 5295 , - 230 , - 4129 , - 5040 , - 1635 , - 3210 , - 3125 , - 52 , - 3287 , - 878 , - 2121 , - 376 , - 4939 , - 3858 , - 1117 , - 700 , - 1279 , - 1526 , - 113 , - 1024 , - 2931 , - 4506 , - 4421 , - 1348 , - 4583 , - 2174 , - 3417 , - 1672 , - 923 , - 5154 , - 2413 , - 1996 , - 2575 , - 2822 , - 1409 , - 2320 , - 4227 , - 490 , - 405 , - 2644 , - 567 , - 3470 , - 4713 , - 2968 , - 2219 , - 1138 , - 3709 , - 3292 , - 3871 , - 4118 , - 2705 , - 3616 , - 211 , - 1786 , - 1701 , - 3940 , - 1863 , - 4766 , - 697 , - 4264 , - 3515 , - 2434 , - 5005 , - 4588 , - 5167 , - 102 , - 4001 , - 4912 , - 1507 , - 3082 , - 2997 , - 5236 , - 3159 , - 750 , - 1993 , - 248 , - 4811 , - 3730 , - 989 , - 572 , - 1151 , - 1398 , - 5297 , - 896 , - 2803 , - 4378 , - 4293 , - 1220 , - 4455 , - 2046 , - 3289 , - 1544 , - 795 , - 5026 , - 2285 , - 1868 , - 2447 , - 2694 , - 1281 , - 2192 , - 4099 , - 362 , - 277 , - 2516 , - 439 , - 3342 , - 4585 , - 2840 , - 2091 , - 1010 , - 3581 , - 3164 , - 3743 , - 3990 , - 2577 , - 3488 , - 83 , - 1658 , - 1573 , - 3812 , - 1735 , - 4638 , - 569 , - 4136 , - 3387 , - 2306 , - 4877 , - 4460 , - 5039 , - 5286 , - 3873 , - 4784 , - 1379 , - 2954 , - 2869 , - 5108 , - 3031 , - 622 , - 1865 , - 120 , - 4683 , - 3602 , - 861 , - 444 , - 1023 , - 1270 , - 5169 , - 768 , - 2675 , - 4250 , - 4165 , - 1092 , - 4327 , - 1918 , - 3161 , - 1416 , - 667 , - 4898 , - 2157 , - 1740 , - 2319 , - 2566 , - 1153 , - 2064 , - 3971 , - 234 , - 149 , - 2388 , - 311 , - 3214 , - 4457 , - 2712 , - 1963 , - 882 , - 3453 , - 3036 , - 3615 , - 3862 , - 2449 , - 3360 , - 5267 , - 1530 , - 1445 , - 3684 , - 1607 , - 4510 , - 441 , - 4008 , - 3259 , - 2178 , - 4749 , - 4332 , - 4911 , - 5158 , - 3745 , - 4656 , - 1251 , - 2826 , - 2741 , - 4980 , - 2903 , - 494 , - 1737 , - 5304 , - 4555 , - 3474 , - 733 , - 316 , - 895 , - 1142 , - 5041 , - 640 , - 2547 , - 4122 , - 4037 , - 964 , - 4199 , - 1790 , - 3033 , - 1288 , - 539 , - 4770 , - 2029 , - 1612 , - 2191 , - 2438 , - 1025 , - 1936 , - 3843 , - 106 , - 21 , - 2260 , - 183 , - 3086 , - 4329 , - 2584 , - 1835 , - 754 , - 3325 , - 2908 , - 3487 , - 3734 , - 2321 , - 3232 , - 5139 , - 1402 , - 1317 , - 3556 , - 1479 , - 4382 , - 313 , - 3880 , - 3131 , - 2050 , - 4621 , - 4204 , - 4783 , - 5030 , - 3617 , - 4528 , - 1123 , - 2698 , - 2613 , - 4852 , - 2775 , - 366 , - 1609 , - 5176 , - 4427 , - 3346 , - 605 , - 188 , - 767 , - 1014 , - 4913 , - 512 , - 2419 , - 3994 , - 3909 , - 836 , - 4071 , - 1662 , - 2905 , - 1160 , - 411 , - 4642 , - 1901 , - 1484 , - 2063 , - 2310 , - 897 , - 1808 , - 3715 , - 5290 , - 5205 , - 2132 , - 55 , - 2958 , - 4201 , - 2456 , - 1707 , - 626 , - 3197 , - 2780 , - 3359 , - 3606 , - 2193 , - 3104 , - 5011 , - 1274 , - 1189 , - 3428 , - 1351 , - 4254 , - 185 , - 3752 , - 3003 , - 1922 , - 4493 , - 4076 , - 4655 , - 4902 , - 3489 , - 4400 , - 995 , - 2570 , - 2485 , - 4724 , - 2647 , - 238 , - 1481 , - 5048 , - 4299 , - 3218 , - 477 , - 60 , - 639 , - 886 , - 4785 , - 384 , - 2291 , - 3866 , - 3781 , - 708 , - 3943 , - 1534 , - 2777 , - 1032 , - 283 , - 4514 , - 1773 , - 1356 , - 1935 , - 2182 , - 769 , - 1680 , - 3587 , - 5162 , - 5077 , - 2004 , - 5239 , - 2830 , - 4073 , - 2328 , - 1579 , - 498 , - 3069 , - 2652 , - 3231 , - 3478 , - 2065 , - 2976 , - 4883 , - 1146 , - 1061 , - 3300 , - 1223 , - 4126 , - 57 , - 3624 , - 2875 , - 1794 , - 4365 , - 3948 , - 4527 , - 4774 , - 3361 , - 4272 , - 867 , - 2442 , - 2357 , - 4596 , - 2519 , - 110 , - 1353 , - 4920 , - 4171 , - 3090 , - 349 , - 5244 , - 511 , - 758 , - 4657 , - 256 , - 2163 , - 3738 , - 3653 , - 580 , - 3815 , - 1406 , - 2649 , - 904 , - 155 , - 4386 , - 1645 , - 1228 , - 1807 , - 2054 , - 641 , - 1552 , - 3459 , - 5034 , - 4949 , - 1876 , - 5111 , - 2702 , - 3945 , - 2200 , - 1451 , - 370 , - 2941 , - 2524 , - 3103 , - 3350 , - 1937 , - 2848 , - 4755 , - 1018 , - 933 , - 3172 , - 1095 , - 3998 , - 5241 , - 3496 , - 2747 , - 1666 , - 4237 , - 3820 , - 4399 , - 4646 , - 3233 , - 4144 , - 739 , - 2314 , - 2229 , - 4468 , - 2391 , - 5294 , - 1225 , - 4792 , - 4043 , - 2962 , - 221 , - 5116 , - 383 , - 630 , - 4529 , - 128 , - 2035 , - 3610 , - 3525 , - 452 , - 3687 , - 1278 , - 2521 , - 776 , - 27 , - 4258 , - 1517 , - 1100 , - 1679 , - 1926 , - 513 , - 1424 , - 3331 , - 4906 , - 4821 , - 1748 , - 4983 , - 2574 , - 3817 , - 2072 , - 1323 , - 242 , - 2813 , - 2396 , - 2975 , - 3222 , - 1809 , - 2720 , - 4627 , - 890 , - 805 , - 3044 , - 967 , - 3870 , - 5113 , - 3368 , - 2619 , - 1538 , - 4109 , - 3692 , - 4271 , - 4518 , - 3105 , - 4016 , - 611 , - 2186 , - 2101 , - 4340 , - 2263 , - 5166 , - 1097 , - 4664 , - 3915 , - 2834 , - 93 , - 4988 , - 255 , - 502 , - 4401 , - 0 , - 3779 , - 166 , - 5289 , - 3020 , - 4111 , - 3186 , - 245 , - 664 , - 4443 , - 830 , - 577 , - 3684 , - 4775 , - 3850 , - 909 , - 1328 , - 5107 , - 1494 , - 1241 , - 4348 , - 63 , - 4514 , - 1573 , - 1992 , - 395 , - 2158 , - 1905 , - 5012 , - 727 , - 5178 , - 2237 , - 2656 , - 1059 , - 2822 , - 2569 , - 300 , - 1391 , - 466 , - 2901 , - 3320 , - 1723 , - 3486 , - 3233 , - 964 , - 2055 , - 1130 , - 3565 , - 3984 , - 2387 , - 4150 , - 3897 , - 1628 , - 2719 , - 1794 , - 4229 , - 4648 , - 3051 , - 4814 , - 4561 , - 2292 , - 3383 , - 2458 , - 4893 , - 5312 , - 3715 , - 102 , - 5225 , - 2956 , - 4047 , - 3122 , - 181 , - 600 , - 4379 , - 766 , - 513 , - 3620 , - 4711 , - 3786 , - 845 , - 1264 , - 5043 , - 1430 , - 1177 , - 4284 , - 5375 , - 4450 , - 1509 , - 1928 , - 331 , - 2094 , - 1841 , - 4948 , - 663 , - 5114 , - 2173 , - 2592 , - 995 , - 2758 , - 2505 , - 236 , - 1327 , - 402 , - 2837 , - 3256 , - 1659 , - 3422 , - 3169 , - 900 , - 1991 , - 1066 , - 3501 , - 3920 , - 2323 , - 4086 , - 3833 , - 1564 , - 2655 , - 1730 , - 4165 , - 4584 , - 2987 , - 4750 , - 4497 , - 2228 , - 3319 , - 2394 , - 4829 , - 5248 , - 3651 , - 38 , - 5161 , - 2892 , - 3983 , - 3058 , - 117 , - 536 , - 4315 , - 702 , - 449 , - 3556 , - 4647 , - 3722 , - 781 , - 1200 , - 4979 , - 1366 , - 1113 , - 4220 , - 5311 , - 4386 , - 1445 , - 1864 , - 267 , - 2030 , - 1777 , - 4884 , - 599 , - 5050 , - 2109 , - 2528 , - 931 , - 2694 , - 2441 , - 172 , - 1263 , - 338 , - 2773 , - 3192 , - 1595 , - 3358 , - 3105 , - 836 , - 1927 , - 1002 , - 3437 , - 3856 , - 2259 , - 4022 , - 3769 , - 1500 , - 2591 , - 1666 , - 4101 , - 4520 , - 2923 , - 4686 , - 4433 , - 2164 , - 3255 , - 2330 , - 4765 , - 5184 , - 3587 , - 5350 , - 5097 , - 2828 , - 3919 , - 2994 , - 53 , - 472 , - 4251 , - 638 , - 385 , - 3492 , - 4583 , - 3658 , - 717 , - 1136 , - 4915 , - 1302 , - 1049 , - 4156 , - 5247 , - 4322 , - 1381 , - 1800 , - 203 , - 1966 , - 1713 , - 4820 , - 535 , - 4986 , - 2045 , - 2464 , - 867 , - 2630 , - 2377 , - 108 , - 1199 , - 274 , - 2709 , - 3128 , - 1531 , - 3294 , - 3041 , - 772 , - 1863 , - 938 , - 3373 , - 3792 , - 2195 , - 3958 , - 3705 , - 1436 , - 2527 , - 1602 , - 4037 , - 4456 , - 2859 , - 4622 , - 4369 , - 2100 , - 3191 , - 2266 , - 4701 , - 5120 , - 3523 , - 5286 , - 5033 , - 2764 , - 3855 , - 2930 , - 5365 , - 408 , - 4187 , - 574 , - 321 , - 3428 , - 4519 , - 3594 , - 653 , - 1072 , - 4851 , - 1238 , - 985 , - 4092 , - 5183 , - 4258 , - 1317 , - 1736 , - 139 , - 1902 , - 1649 , - 4756 , - 471 , - 4922 , - 1981 , - 2400 , - 803 , - 2566 , - 2313 , - 44 , - 1135 , - 210 , - 2645 , - 3064 , - 1467 , - 3230 , - 2977 , - 708 , - 1799 , - 874 , - 3309 , - 3728 , - 2131 , - 3894 , - 3641 , - 1372 , - 2463 , - 1538 , - 3973 , - 4392 , - 2795 , - 4558 , - 4305 , - 2036 , - 3127 , - 2202 , - 4637 , - 5056 , - 3459 , - 5222 , - 4969 , - 2700 , - 3791 , - 2866 , - 5301 , - 344 , - 4123 , - 510 , - 257 , - 3364 , - 4455 , - 3530 , - 589 , - 1008 , - 4787 , - 1174 , - 921 , - 4028 , - 5119 , - 4194 , - 1253 , - 1672 , - 75 , - 1838 , - 1585 , - 4692 , - 407 , - 4858 , - 1917 , - 2336 , - 739 , - 2502 , - 2249 , - 5356 , - 1071 , - 146 , - 2581 , - 3000 , - 1403 , - 3166 , - 2913 , - 644 , - 1735 , - 810 , - 3245 , - 3664 , - 2067 , - 3830 , - 3577 , - 1308 , - 2399 , - 1474 , - 3909 , - 4328 , - 2731 , - 4494 , - 4241 , - 1972 , - 3063 , - 2138 , - 4573 , - 4992 , - 3395 , - 5158 , - 4905 , - 2636 , - 3727 , - 2802 , - 5237 , - 280 , - 4059 , - 446 , - 193 , - 3300 , - 4391 , - 3466 , - 525 , - 944 , - 4723 , - 1110 , - 857 , - 3964 , - 5055 , - 4130 , - 1189 , - 1608 , - 11 , - 1774 , - 1521 , - 4628 , - 343 , - 4794 , - 1853 , - 2272 , - 675 , - 2438 , - 2185 , - 5292 , - 1007 , - 82 , - 2517 , - 2936 , - 1339 , - 3102 , - 2849 , - 580 , - 1671 , - 746 , - 3181 , - 3600 , - 2003 , - 3766 , - 3513 , - 1244 , - 2335 , - 1410 , - 3845 , - 4264 , - 2667 , - 4430 , - 4177 , - 1908 , - 2999 , - 2074 , - 4509 , - 4928 , - 3331 , - 5094 , - 4841 , - 2572 , - 3663 , - 2738 , - 5173 , - 216 , - 3995 , - 382 , - 129 , - 3236 , - 4327 , - 3402 , - 461 , - 880 , - 4659 , - 1046 , - 793 , - 3900 , - 4991 , - 4066 , - 1125 , - 1544 , - 5323 , - 1710 , - 1457 , - 4564 , - 279 , - 4730 , - 1789 , - 2208 , - 611 , - 2374 , - 2121 , - 5228 , - 943 , - 18 , - 2453 , - 2872 , - 1275 , - 3038 , - 2785 , - 516 , - 1607 , - 682 , - 3117 , - 3536 , - 1939 , - 3702 , - 3449 , - 1180 , - 2271 , - 1346 , - 3781 , - 4200 , - 2603 , - 4366 , - 4113 , - 1844 , - 2935 , - 2010 , - 4445 , - 4864 , - 3267 , - 5030 , - 4777 , - 2508 , - 3599 , - 2674 , - 5109 , - 152 , - 3931 , - 318 , - 65 , - 3172 , - 4263 , - 3338 , - 397 , - 816 , - 4595 , - 982 , - 729 , - 3836 , - 4927 , - 4002 , - 1061 , - 1480 , - 5259 , - 1646 , - 1393 , - 4500 , - 215 , - 4666 , - 1725 , - 2144 , - 547 , - 2310 , - 2057 , - 5164 , - 879 , - 5330 , - 2389 , - 2808 , - 1211 , - 2974 , - 2721 , - 452 , - 1543 , - 618 , - 3053 , - 3472 , - 1875 , - 3638 , - 3385 , - 1116 , - 2207 , - 1282 , - 3717 , - 4136 , - 2539 , - 4302 , - 4049 , - 1780 , - 2871 , - 1946 , - 4381 , - 4800 , - 3203 , - 4966 , - 4713 , - 2444 , - 3535 , - 2610 , - 5045 , - 88 , - 3867 , - 254 , - 1 , - 3108 , - 4199 , - 3274 , - 333 , - 752 , - 4531 , - 918 , - 665 , - 3772 , - 4863 , - 3938 , - 997 , - 1416 , - 5195 , - 1582 , - 1329 , - 4436 , - 151 , - 4602 , - 1661 , - 2080 , - 483 , - 2246 , - 1993 , - 5100 , - 815 , - 5266 , - 2325 , - 2744 , - 1147 , - 2910 , - 2657 , - 388 , - 1479 , - 554 , - 2989 , - 3408 , - 1811 , - 3574 , - 3321 , - 1052 , - 2143 , - 1218 , - 3653 , - 4072 , - 2475 , - 4238 , - 3985 , - 1716 , - 2807 , - 1882 , - 4317 , - 4736 , - 3139 , - 4902 , - 4649 , - 2380 , - 3471 , - 2546 , - 4981 , - 24 , - 3803 , - 190 , - 5313 , - 3044 , - 4135 , - 3210 , - 269 , - 688 , - 4467 , - 854 , - 601 , - 3708 , - 4799 , - 3874 , - 933 , - 1352 , - 5131 , - 1518 , - 1265 , - 4372 , - 87 , - 4538 , - 1597 , - 2016 , - 419 , - 2182 , - 1929 , - 5036 , - 751 , - 5202 , - 2261 , - 2680 , - 1083 , - 2846 , - 2593 , - 324 , - 1415 , - 490 , - 2925 , - 3344 , - 1747 , - 3510 , - 3257 , - 988 , - 2079 , - 1154 , - 3589 , - 4008 , - 2411 , - 4174 , - 3921 , - 1652 , - 2743 , - 1818 , - 4253 , - 4672 , - 3075 , - 4838 , - 4585 , - 2316 , - 3407 , - 2482 , - 4917 , - 5336 , - 3739 , - 126 , - 5249 , - 2980 , - 4071 , - 3146 , - 205 , - 624 , - 4403 , - 790 , - 537 , - 3644 , - 4735 , - 3810 , - 869 , - 1288 , - 5067 , - 1454 , - 1201 , - 4308 , - 23 , - 4474 , - 1533 , - 1952 , - 355 , - 2118 , - 1865 , - 4972 , - 687 , - 5138 , - 2197 , - 2616 , - 1019 , - 2782 , - 2529 , - 260 , - 1351 , - 426 , - 2861 , - 3280 , - 1683 , - 3446 , - 3193 , - 924 , - 2015 , - 1090 , - 3525 , - 3944 , - 2347 , - 4110 , - 3857 , - 1588 , - 2679 , - 1754 , - 4189 , - 4608 , - 3011 , - 4774 , - 4521 , - 2252 , - 3343 , - 2418 , - 4853 , - 5272 , - 3675 , - 62 , - 5185 , - 2916 , - 4007 , - 3082 , - 141 , - 560 , - 4339 , - 726 , - 473 , - 3580 , - 4671 , - 3746 , - 805 , - 1224 , - 5003 , - 1390 , - 1137 , - 4244 , - 5335 , - 4410 , - 1469 , - 1888 , - 291 , - 2054 , - 1801 , - 4908 , - 623 , - 5074 , - 2133 , - 2552 , - 955 , - 2718 , - 2465 , - 196 , - 1287 , - 362 , - 2797 , - 3216 , - 1619 , - 3382 , - 3129 , - 860 , - 1951 , - 1026 , - 3461 , - 3880 , - 2283 , - 4046 , - 3793 , - 1524 , - 2615 , - 1690 , - 4125 , - 4544 , - 2947 , - 4710 , - 4457 , - 2188 , - 3279 , - 2354 , - 4789 , - 5208 , - 3611 , - 5374 , - 5121 , - 2852 , - 3943 , - 3018 , - 77 , - 496 , - 4275 , - 662 , - 409 , - 3516 , - 4607 , - 3682 , - 741 , - 1160 , - 4939 , - 1326 , - 1073 , - 4180 , - 5271 , - 4346 , - 1405 , - 1824 , - 227 , - 1990 , - 1737 , - 4844 , - 559 , - 5010 , - 2069 , - 2488 , - 891 , - 2654 , - 2401 , - 132 , - 1223 , - 298 , - 2733 , - 3152 , - 1555 , - 3318 , - 3065 , - 796 , - 1887 , - 962 , - 3397 , - 3816 , - 2219 , - 3982 , - 3729 , - 1460 , - 2551 , - 1626 , - 4061 , - 4480 , - 2883 , - 4646 , - 4393 , - 2124 , - 3215 , - 2290 , - 4725 , - 5144 , - 3547 , - 5310 , - 5057 , - 2788 , - 3879 , - 2954 , - 13 , - 432 , - 4211 , - 598 , - 345 , - 3452 , - 4543 , - 3618 , - 677 , - 1096 , - 4875 , - 1262 , - 1009 , - 4116 , - 5207 , - 4282 , - 1341 , - 1760 , - 163 , - 1926 , - 1673 , - 4780 , - 495 , - 4946 , - 2005 , - 2424 , - 827 , - 2590 , - 2337 , - 68 , - 1159 , - 234 , - 2669 , - 3088 , - 1491 , - 3254 , - 3001 , - 732 , - 1823 , - 898 , - 3333 , - 3752 , - 2155 , - 3918 , - 3665 , - 1396 , - 2487 , - 1562 , - 3997 , - 4416 , - 2819 , - 4582 , - 4329 , - 2060 , - 3151 , - 2226 , - 4661 , - 5080 , - 3483 , - 5246 , - 4993 , - 2724 , - 3815 , - 2890 , - 5325 , - 368 , - 4147 , - 534 , - 281 , - 3388 , - 4479 , - 3554 , - 613 , - 1032 , - 4811 , - 1198 , - 945 , - 4052 , - 5143 , - 4218 , - 1277 , - 1696 , - 99 , - 1862 , - 1609 , - 4716 , - 431 , - 4882 , - 1941 , - 2360 , - 763 , - 2526 , - 2273 , - 4 , - 1095 , - 170 , - 2605 , - 3024 , - 1427 , - 3190 , - 2937 , - 668 , - 1759 , - 834 , - 3269 , - 3688 , - 2091 , - 3854 , - 3601 , - 1332 , - 2423 , - 1498 , - 3933 , - 4352 , - 2755 , - 4518 , - 4265 , - 1996 , - 3087 , - 2162 , - 4597 , - 5016 , - 3419 , - 5182 , - 4929 , - 2660 , - 3751 , - 2826 , - 5261 , - 304 , - 4083 , - 470 , - 217 , - 3324 , - 4415 , - 3490 , - 549 , - 968 , - 4747 , - 1134 , - 881 , - 3988 , - 5079 , - 4154 , - 1213 , - 1632 , - 35 , - 1798 , - 1545 , - 4652 , - 367 , - 4818 , - 1877 , - 2296 , - 699 , - 2462 , - 2209 , - 5316 , - 1031 , - 106 , - 2541 , - 2960 , - 1363 , - 3126 , - 2873 , - 604 , - 1695 , - 770 , - 3205 , - 3624 , - 2027 , - 3790 , - 3537 , - 1268 , - 2359 , - 1434 , - 3869 , - 4288 , - 2691 , - 4454 , - 4201 , - 1932 , - 3023 , - 2098 , - 4533 , - 4952 , - 3355 , - 5118 , - 4865 , - 2596 , - 3687 , - 2762 , - 5197 , - 240 , - 4019 , - 406 , - 153 , - 3260 , - 4351 , - 3426 , - 485 , - 904 , - 4683 , - 1070 , - 817 , - 3924 , - 5015 , - 4090 , - 1149 , - 1568 , - 5347 , - 1734 , - 1481 , - 4588 , - 303 , - 4754 , - 1813 , - 2232 , - 635 , - 2398 , - 2145 , - 5252 , - 967 , - 42 , - 2477 , - 2896 , - 1299 , - 3062 , - 2809 , - 540 , - 1631 , - 706 , - 3141 , - 3560 , - 1963 , - 3726 , - 3473 , - 1204 , - 2295 , - 1370 , - 3805 , - 4224 , - 2627 , - 4390 , - 4137 , - 1868 , - 2959 , - 2034 , - 4469 , - 4888 , - 3291 , - 5054 , - 4801 , - 2532 , - 3623 , - 2698 , - 5133 , - 176 , - 3955 , - 342 , - 89 , - 3196 , - 4287 , - 3362 , - 421 , - 840 , - 4619 , - 1006 , - 753 , - 3860 , - 4951 , - 4026 , - 1085 , - 1504 , - 5283 , - 1670 , - 1417 , - 4524 , - 239 , - 4690 , - 1749 , - 2168 , - 571 , - 2334 , - 2081 , - 5188 , - 903 , - 5354 , - 2413 , - 2832 , - 1235 , - 2998 , - 2745 , - 476 , - 1567 , - 642 , - 3077 , - 3496 , - 1899 , - 3662 , - 3409 , - 1140 , - 2231 , - 1306 , - 3741 , - 4160 , - 2563 , - 4326 , - 4073 , - 1804 , - 2895 , - 1970 , - 4405 , - 4824 , - 3227 , - 4990 , - 4737 , - 2468 , - 3559 , - 2634 , - 5069 , - 112 , - 3891 , - 278 , - 25 , - 3132 , - 4223 , - 3298 , - 357 , - 776 , - 4555 , - 942 , - 689 , - 3796 , - 4887 , - 3962 , - 1021 , - 1440 , - 5219 , - 1606 , - 1353 , - 4460 , - 175 , - 4626 , - 1685 , - 2104 , - 507 , - 2270 , - 2017 , - 5124 , - 839 , - 5290 , - 2349 , - 2768 , - 1171 , - 2934 , - 2681 , - 412 , - 1503 , - 578 , - 3013 , - 3432 , - 1835 , - 3598 , - 3345 , - 1076 , - 2167 , - 1242 , - 3677 , - 4096 , - 2499 , - 4262 , - 4009 , - 1740 , - 2831 , - 1906 , - 4341 , - 4760 , - 3163 , - 4926 , - 4673 , - 2404 , - 3495 , - 2570 , - 5005 , - 48 , - 3827 , - 214 , - 5337 , - 3068 , - 4159 , - 3234 , - 293 , - 712 , - 4491 , - 878 , - 625 , - 3732 , - 4823 , - 3898 , - 957 , - 1376 , - 5155 , - 1542 , - 1289 , - 4396 , - 111 , - 4562 , - 1621 , - 2040 , - 443 , - 2206 , - 1953 , - 5060 , - 775 , - 5226 , - 2285 , - 2704 , - 1107 , - 2870 , - 2617 , - 348 , - 1439 , - 514 , - 2949 , - 3368 , - 1771 , - 3534 , - 3281 , - 1012 , - 2103 , - 1178 , - 3613 , - 4032 , - 2435 , - 4198 , - 3945 , - 1676 , - 2767 , - 1842 , - 4277 , - 4696 , - 3099 , - 4862 , - 4609 , - 2340 , - 3431 , - 2506 , - 4941 , - 5360 , - 3763 , - 150 , - 5273 , - 3004 , - 4095 , - 3170 , - 229 , - 648 , - 4427 , - 814 , - 561 , - 3668 , - 4759 , - 3834 , - 893 , - 1312 , - 5091 , - 1478 , - 1225 , - 4332 , - 47 , - 4498 , - 1557 , - 1976 , - 379 , - 2142 , - 1889 , - 4996 , - 711 , - 5162 , - 2221 , - 2640 , - 1043 , - 2806 , - 2553 , - 284 , - 1375 , - 450 , - 2885 , - 3304 , - 1707 , - 3470 , - 3217 , - 948 , - 2039 , - 1114 , - 3549 , - 3968 , - 2371 , - 4134 , - 3881 , - 1612 , - 2703 , - 1778 , - 4213 , - 4632 , - 3035 , - 4798 , - 4545 , - 2276 , - 3367 , - 2442 , - 4877 , - 5296 , - 3699 , - 86 , - 5209 , - 2940 , - 4031 , - 3106 , - 165 , - 584 , - 4363 , - 750 , - 497 , - 3604 , - 4695 , - 3770 , - 829 , - 1248 , - 5027 , - 1414 , - 1161 , - 4268 , - 5359 , - 4434 , - 1493 , - 1912 , - 315 , - 2078 , - 1825 , - 4932 , - 647 , - 5098 , - 2157 , - 2576 , - 979 , - 2742 , - 2489 , - 220 , - 1311 , - 386 , - 2821 , - 3240 , - 1643 , - 3406 , - 3153 , - 884 , - 1975 , - 1050 , - 3485 , - 3904 , - 2307 , - 4070 , - 3817 , - 1548 , - 2639 , - 1714 , - 4149 , - 4568 , - 2971 , - 4734 , - 4481 , - 2212 , - 3303 , - 2378 , - 4813 , - 5232 , - 3635 , - 22 , - 5145 , - 2876 , - 3967 , - 3042 , - 101 , - 520 , - 4299 , - 686 , - 433 , - 3540 , - 4631 , - 3706 , - 765 , - 1184 , - 4963 , - 1350 , - 1097 , - 4204 , - 5295 , - 4370 , - 1429 , - 1848 , - 251 , - 2014 , - 1761 , - 4868 , - 583 , - 5034 , - 2093 , - 2512 , - 915 , - 2678 , - 2425 , - 156 , - 1247 , - 322 , - 2757 , - 3176 , - 1579 , - 3342 , - 3089 , - 820 , - 1911 , - 986 , - 3421 , - 3840 , - 2243 , - 4006 , - 3753 , - 1484 , - 2575 , - 1650 , - 4085 , - 4504 , - 2907 , - 4670 , - 4417 , - 2148 , - 3239 , - 2314 , - 4749 , - 5168 , - 3571 , - 5334 , - 5081 , - 2812 , - 3903 , - 2978 , - 37 , - 456 , - 4235 , - 622 , - 369 , - 3476 , - 4567 , - 3642 , - 701 , - 1120 , - 4899 , - 1286 , - 1033 , - 4140 , - 5231 , - 4306 , - 1365 , - 1784 , - 187 , - 1950 , - 1697 , - 4804 , - 519 , - 4970 , - 2029 , - 2448 , - 851 , - 2614 , - 2361 , - 92 , - 1183 , - 258 , - 2693 , - 3112 , - 1515 , - 3278 , - 3025 , - 756 , - 1847 , - 922 , - 3357 , - 3776 , - 2179 , - 3942 , - 3689 , - 1420 , - 2511 , - 1586 , - 4021 , - 4440 , - 2843 , - 4606 , - 4353 , - 2084 , - 3175 , - 2250 , - 4685 , - 5104 , - 3507 , - 5270 , - 5017 , - 2748 , - 3839 , - 2914 , - 5349 , - 392 , - 4171 , - 558 , - 305 , - 3412 , - 4503 , - 3578 , - 637 , - 1056 , - 4835 , - 1222 , - 969 , - 4076 , - 5167 , - 4242 , - 1301 , - 1720 , - 123 , - 1886 , - 1633 , - 4740 , - 455 , - 4906 , - 1965 , - 2384 , - 787 , - 2550 , - 2297 , - 28 , - 1119 , - 194 , - 2629 , - 3048 , - 1451 , - 3214 , - 2961 , - 692 , - 1783 , - 858 , - 3293 , - 3712 , - 2115 , - 3878 , - 3625 , - 1356 , - 2447 , - 1522 , - 3957 , - 4376 , - 2779 , - 4542 , - 4289 , - 2020 , - 3111 , - 2186 , - 4621 , - 5040 , - 3443 , - 5206 , - 4953 , - 2684 , - 3775 , - 2850 , - 5285 , - 328 , - 4107 , - 494 , - 241 , - 3348 , - 4439 , - 3514 , - 573 , - 992 , - 4771 , - 1158 , - 905 , - 4012 , - 5103 , - 4178 , - 1237 , - 1656 , - 59 , - 1822 , - 1569 , - 4676 , - 391 , - 4842 , - 1901 , - 2320 , - 723 , - 2486 , - 2233 , - 5340 , - 1055 , - 130 , - 2565 , - 2984 , - 1387 , - 3150 , - 2897 , - 628 , - 1719 , - 794 , - 3229 , - 3648 , - 2051 , - 3814 , - 3561 , - 1292 , - 2383 , - 1458 , - 3893 , - 4312 , - 2715 , - 4478 , - 4225 , - 1956 , - 3047 , - 2122 , - 4557 , - 4976 , - 3379 , - 5142 , - 4889 , - 2620 , - 3711 , - 2786 , - 5221 , - 264 , - 4043 , - 430 , - 177 , - 3284 , - 4375 , - 3450 , - 509 , - 928 , - 4707 , - 1094 , - 841 , - 3948 , - 5039 , - 4114 , - 1173 , - 1592 , - 5371 , - 1758 , - 1505 , - 4612 , - 327 , - 4778 , - 1837 , - 2256 , - 659 , - 2422 , - 2169 , - 5276 , - 991 , - 66 , - 2501 , - 2920 , - 1323 , - 3086 , - 2833 , - 564 , - 1655 , - 730 , - 3165 , - 3584 , - 1987 , - 3750 , - 3497 , - 1228 , - 2319 , - 1394 , - 3829 , - 4248 , - 2651 , - 4414 , - 4161 , - 1892 , - 2983 , - 2058 , - 4493 , - 4912 , - 3315 , - 5078 , - 4825 , - 2556 , - 3647 , - 2722 , - 5157 , - 200 , - 3979 , - 366 , - 113 , - 3220 , - 4311 , - 3386 , - 445 , - 864 , - 4643 , - 1030 , - 777 , - 3884 , - 4975 , - 4050 , - 1109 , - 1528 , - 5307 , - 1694 , - 1441 , - 4548 , - 263 , - 4714 , - 1773 , - 2192 , - 595 , - 2358 , - 2105 , - 5212 , - 927 , - 2 , - 2437 , - 2856 , - 1259 , - 3022 , - 2769 , - 500 , - 1591 , - 666 , - 3101 , - 3520 , - 1923 , - 3686 , - 3433 , - 1164 , - 2255 , - 1330 , - 3765 , - 4184 , - 2587 , - 4350 , - 4097 , - 1828 , - 2919 , - 1994 , - 4429 , - 4848 , - 3251 , - 5014 , - 4761 , - 2492 , - 3583 , - 2658 , - 5093 , - 136 , - 3915 , - 302 , - 49 , - 3156 , - 4247 , - 3322 , - 381 , - 800 , - 4579 , - 966 , - 713 , - 3820 , - 4911 , - 3986 , - 1045 , - 1464 , - 5243 , - 1630 , - 1377 , - 4484 , - 199 , - 4650 , - 1709 , - 2128 , - 531 , - 2294 , - 2041 , - 5148 , - 863 , - 5314 , - 2373 , - 2792 , - 1195 , - 2958 , - 2705 , - 436 , - 1527 , - 602 , - 3037 , - 3456 , - 1859 , - 3622 , - 3369 , - 1100 , - 2191 , - 1266 , - 3701 , - 4120 , - 2523 , - 4286 , - 4033 , - 1764 , - 2855 , - 1930 , - 4365 , - 4784 , - 3187 , - 4950 , - 4697 , - 2428 , - 3519 , - 2594 , - 5029 , - 72 , - 3851 , - 238 , - 5361 , - 3092 , - 4183 , - 3258 , - 317 , - 736 , - 4515 , - 902 , - 649 , - 3756 , - 4847 , - 3922 , - 981 , - 1400 , - 5179 , - 1566 , - 1313 , - 4420 , - 135 , - 4586 , - 1645 , - 2064 , - 467 , - 2230 , - 1977 , - 5084 , - 799 , - 5250 , - 2309 , - 2728 , - 1131 , - 2894 , - 2641 , - 372 , - 1463 , - 538 , - 2973 , - 3392 , - 1795 , - 3558 , - 3305 , - 1036 , - 2127 , - 1202 , - 3637 , - 4056 , - 2459 , - 4222 , - 3969 , - 1700 , - 2791 , - 1866 , - 4301 , - 4720 , - 3123 , - 4886 , - 4633 , - 2364 , - 3455 , - 2530 , - 4965 , - 8 , - 3787 , - 174 , - 5297 , - 3028 , - 4119 , - 3194 , - 253 , - 672 , - 4451 , - 838 , - 585 , - 3692 , - 4783 , - 3858 , - 917 , - 1336 , - 5115 , - 1502 , - 1249 , - 4356 , - 71 , - 4522 , - 1581 , - 2000 , - 403 , - 2166 , - 1913 , - 5020 , - 735 , - 5186 , - 2245 , - 2664 , - 1067 , - 2830 , - 2577 , - 308 , - 1399 , - 474 , - 2909 , - 3328 , - 1731 , - 3494 , - 3241 , - 972 , - 2063 , - 1138 , - 3573 , - 3992 , - 2395 , - 4158 , - 3905 , - 1636 , - 2727 , - 1802 , - 4237 , - 4656 , - 3059 , - 4822 , - 4569 , - 2300 , - 3391 , - 2466 , - 4901 , - 5320 , - 3723 , - 110 , - 5233 , - 2964 , - 4055 , - 3130 , - 189 , - 608 , - 4387 , - 774 , - 521 , - 3628 , - 4719 , - 3794 , - 853 , - 1272 , - 5051 , - 1438 , - 1185 , - 4292 , - 7 , - 4458 , - 1517 , - 1936 , - 339 , - 2102 , - 1849 , - 4956 , - 671 , - 5122 , - 2181 , - 2600 , - 1003 , - 2766 , - 2513 , - 244 , - 1335 , - 410 , - 2845 , - 3264 , - 1667 , - 3430 , - 3177 , - 908 , - 1999 , - 1074 , - 3509 , - 3928 , - 2331 , - 4094 , - 3841 , - 1572 , - 2663 , - 1738 , - 4173 , - 4592 , - 2995 , - 4758 , - 4505 , - 2236 , - 3327 , - 2402 , - 4837 , - 5256 , - 3659 , - 46 , - 5169 , - 2900 , - 3991 , - 3066 , - 125 , - 544 , - 4323 , - 710 , - 457 , - 3564 , - 4655 , - 3730 , - 789 , - 1208 , - 4987 , - 1374 , - 1121 , - 4228 , - 5319 , - 4394 , - 1453 , - 1872 , - 275 , - 2038 , - 1785 , - 4892 , - 607 , - 5058 , - 2117 , - 2536 , - 939 , - 2702 , - 2449 , - 180 , - 1271 , - 346 , - 2781 , - 3200 , - 1603 , - 3366 , - 3113 , - 844 , - 1935 , - 1010 , - 3445 , - 3864 , - 2267 , - 4030 , - 3777 , - 1508 , - 2599 , - 1674 , - 4109 , - 4528 , - 2931 , - 4694 , - 4441 , - 2172 , - 3263 , - 2338 , - 4773 , - 5192 , - 3595 , - 5358 , - 5105 , - 2836 , - 3927 , - 3002 , - 61 , - 480 , - 4259 , - 646 , - 393 , - 3500 , - 4591 , - 3666 , - 725 , - 1144 , - 4923 , - 1310 , - 1057 , - 4164 , - 5255 , - 4330 , - 1389 , - 1808 , - 211 , - 1974 , - 1721 , - 4828 , - 543 , - 4994 , - 2053 , - 2472 , - 875 , - 2638 , - 2385 , - 116 , - 1207 , - 282 , - 2717 , - 3136 , - 1539 , - 3302 , - 3049 , - 780 , - 1871 , - 946 , - 3381 , - 3800 , - 2203 , - 3966 , - 3713 , - 1444 , - 2535 , - 1610 , - 4045 , - 4464 , - 2867 , - 4630 , - 4377 , - 2108 , - 3199 , - 2274 , - 4709 , - 5128 , - 3531 , - 5294 , - 5041 , - 2772 , - 3863 , - 2938 , - 5373 , - 416 , - 4195 , - 582 , - 329 , - 3436 , - 4527 , - 3602 , - 661 , - 1080 , - 4859 , - 1246 , - 993 , - 4100 , - 5191 , - 4266 , - 1325 , - 1744 , - 147 , - 1910 , - 1657 , - 4764 , - 479 , - 4930 , - 1989 , - 2408 , - 811 , - 2574 , - 2321 , - 52 , - 1143 , - 218 , - 2653 , - 3072 , - 1475 , - 3238 , - 2985 , - 716 , - 1807 , - 882 , - 3317 , - 3736 , - 2139 , - 3902 , - 3649 , - 1380 , - 2471 , - 1546 , - 3981 , - 4400 , - 2803 , - 4566 , - 4313 , - 2044 , - 3135 , - 2210 , - 4645 , - 5064 , - 3467 , - 5230 , - 4977 , - 2708 , - 3799 , - 2874 , - 5309 , - 352 , - 4131 , - 518 , - 265 , - 3372 , - 4463 , - 3538 , - 597 , - 1016 , - 4795 , - 1182 , - 929 , - 4036 , - 5127 , - 4202 , - 1261 , - 1680 , - 83 , - 1846 , - 1593 , - 4700 , - 415 , - 4866 , - 1925 , - 2344 , - 747 , - 2510 , - 2257 , - 5364 , - 1079 , - 154 , - 2589 , - 3008 , - 1411 , - 3174 , - 2921 , - 652 , - 1743 , - 818 , - 3253 , - 3672 , - 2075 , - 3838 , - 3585 , - 1316 , - 2407 , - 1482 , - 3917 , - 4336 , - 2739 , - 4502 , - 4249 , - 1980 , - 3071 , - 2146 , - 4581 , - 5000 , - 3403 , - 5166 , - 4913 , - 2644 , - 3735 , - 2810 , - 5245 , - 288 , - 4067 , - 454 , - 201 , - 3308 , - 4399 , - 3474 , - 533 , - 952 , - 4731 , - 1118 , - 865 , - 3972 , - 5063 , - 4138 , - 1197 , - 1616 , - 19 , - 1782 , - 1529 , - 4636 , - 351 , - 4802 , - 1861 , - 2280 , - 683 , - 2446 , - 2193 , - 5300 , - 1015 , - 90 , - 2525 , - 2944 , - 1347 , - 3110 , - 2857 , - 588 , - 1679 , - 754 , - 3189 , - 3608 , - 2011 , - 3774 , - 3521 , - 1252 , - 2343 , - 1418 , - 3853 , - 4272 , - 2675 , - 4438 , - 4185 , - 1916 , - 3007 , - 2082 , - 4517 , - 4936 , - 3339 , - 5102 , - 4849 , - 2580 , - 3671 , - 2746 , - 5181 , - 224 , - 4003 , - 390 , - 137 , - 3244 , - 4335 , - 3410 , - 469 , - 888 , - 4667 , - 1054 , - 801 , - 3908 , - 4999 , - 4074 , - 1133 , - 1552 , - 5331 , - 1718 , - 1465 , - 4572 , - 287 , - 4738 , - 1797 , - 2216 , - 619 , - 2382 , - 2129 , - 5236 , - 951 , - 26 , - 2461 , - 2880 , - 1283 , - 3046 , - 2793 , - 524 , - 1615 , - 690 , - 3125 , - 3544 , - 1947 , - 3710 , - 3457 , - 1188 , - 2279 , - 1354 , - 3789 , - 4208 , - 2611 , - 4374 , - 4121 , - 1852 , - 2943 , - 2018 , - 4453 , - 4872 , - 3275 , - 5038 , - 4785 , - 2516 , - 3607 , - 2682 , - 5117 , - 160 , - 3939 , - 326 , - 73 , - 3180 , - 4271 , - 3346 , - 405 , - 824 , - 4603 , - 990 , - 737 , - 3844 , - 4935 , - 4010 , - 1069 , - 1488 , - 5267 , - 1654 , - 1401 , - 4508 , - 223 , - 4674 , - 1733 , - 2152 , - 555 , - 2318 , - 2065 , - 5172 , - 887 , - 5338 , - 2397 , - 2816 , - 1219 , - 2982 , - 2729 , - 460 , - 1551 , - 626 , - 3061 , - 3480 , - 1883 , - 3646 , - 3393 , - 1124 , - 2215 , - 1290 , - 3725 , - 4144 , - 2547 , - 4310 , - 4057 , - 1788 , - 2879 , - 1954 , - 4389 , - 4808 , - 3211 , - 4974 , - 4721 , - 2452 , - 3543 , - 2618 , - 5053 , - 96 , - 3875 , - 262 , - 9 , - 3116 , - 4207 , - 3282 , - 341 , - 760 , - 4539 , - 926 , - 673 , - 3780 , - 4871 , - 3946 , - 1005 , - 1424 , - 5203 , - 1590 , - 1337 , - 4444 , - 159 , - 4610 , - 1669 , - 2088 , - 491 , - 2254 , - 2001 , - 5108 , - 823 , - 5274 , - 2333 , - 2752 , - 1155 , - 2918 , - 2665 , - 396 , - 1487 , - 562 , - 2997 , - 3416 , - 1819 , - 3582 , - 3329 , - 1060 , - 2151 , - 1226 , - 3661 , - 4080 , - 2483 , - 4246 , - 3993 , - 1724 , - 2815 , - 1890 , - 4325 , - 4744 , - 3147 , - 4910 , - 4657 , - 2388 , - 3479 , - 2554 , - 4989 , - 32 , - 3811 , - 198 , - 5321 , - 3052 , - 4143 , - 3218 , - 277 , - 696 , - 4475 , - 862 , - 609 , - 3716 , - 4807 , - 3882 , - 941 , - 1360 , - 5139 , - 1526 , - 1273 , - 4380 , - 95 , - 4546 , - 1605 , - 2024 , - 427 , - 2190 , - 1937 , - 5044 , - 759 , - 5210 , - 2269 , - 2688 , - 1091 , - 2854 , - 2601 , - 332 , - 1423 , - 498 , - 2933 , - 3352 , - 1755 , - 3518 , - 3265 , - 996 , - 2087 , - 1162 , - 3597 , - 4016 , - 2419 , - 4182 , - 3929 , - 1660 , - 2751 , - 1826 , - 4261 , - 4680 , - 3083 , - 4846 , - 4593 , - 2324 , - 3415 , - 2490 , - 4925 , - 5344 , - 3747 , - 134 , - 5257 , - 2988 , - 4079 , - 3154 , - 213 , - 632 , - 4411 , - 798 , - 545 , - 3652 , - 4743 , - 3818 , - 877 , - 1296 , - 5075 , - 1462 , - 1209 , - 4316 , - 31 , - 4482 , - 1541 , - 1960 , - 363 , - 2126 , - 1873 , - 4980 , - 695 , - 5146 , - 2205 , - 2624 , - 1027 , - 2790 , - 2537 , - 268 , - 1359 , - 434 , - 2869 , - 3288 , - 1691 , - 3454 , - 3201 , - 932 , - 2023 , - 1098 , - 3533 , - 3952 , - 2355 , - 4118 , - 3865 , - 1596 , - 2687 , - 1762 , - 4197 , - 4616 , - 3019 , - 4782 , - 4529 , - 2260 , - 3351 , - 2426 , - 4861 , - 5280 , - 3683 , - 70 , - 5193 , - 2924 , - 4015 , - 3090 , - 149 , - 568 , - 4347 , - 734 , - 481 , - 3588 , - 4679 , - 3754 , - 813 , - 1232 , - 5011 , - 1398 , - 1145 , - 4252 , - 5343 , - 4418 , - 1477 , - 1896 , - 299 , - 2062 , - 1809 , - 4916 , - 631 , - 5082 , - 2141 , - 2560 , - 963 , - 2726 , - 2473 , - 204 , - 1295 , - 370 , - 2805 , - 3224 , - 1627 , - 3390 , - 3137 , - 868 , - 1959 , - 1034 , - 3469 , - 3888 , - 2291 , - 4054 , - 3801 , - 1532 , - 2623 , - 1698 , - 4133 , - 4552 , - 2955 , - 4718 , - 4465 , - 2196 , - 3287 , - 2362 , - 4797 , - 5216 , - 3619 , - 6 , - 5129 , - 2860 , - 3951 , - 3026 , - 85 , - 504 , - 4283 , - 670 , - 417 , - 3524 , - 4615 , - 3690 , - 749 , - 1168 , - 4947 , - 1334 , - 1081 , - 4188 , - 5279 , - 4354 , - 1413 , - 1832 , - 235 , - 1998 , - 1745 , - 4852 , - 567 , - 5018 , - 2077 , - 2496 , - 899 , - 2662 , - 2409 , - 140 , - 1231 , - 306 , - 2741 , - 3160 , - 1563 , - 3326 , - 3073 , - 804 , - 1895 , - 970 , - 3405 , - 3824 , - 2227 , - 3990 , - 3737 , - 1468 , - 2559 , - 1634 , - 4069 , - 4488 , - 2891 , - 4654 , - 4401 , - 2132 , - 3223 , - 2298 , - 4733 , - 5152 , - 3555 , - 5318 , - 5065 , - 2796 , - 3887 , - 2962 , - 21 , - 440 , - 4219 , - 606 , - 353 , - 3460 , - 4551 , - 3626 , - 685 , - 1104 , - 4883 , - 1270 , - 1017 , - 4124 , - 5215 , - 4290 , - 1349 , - 1768 , - 171 , - 1934 , - 1681 , - 4788 , - 503 , - 4954 , - 2013 , - 2432 , - 835 , - 2598 , - 2345 , - 76 , - 1167 , - 242 , - 2677 , - 3096 , - 1499 , - 3262 , - 3009 , - 740 , - 1831 , - 906 , - 3341 , - 3760 , - 2163 , - 3926 , - 3673 , - 1404 , - 2495 , - 1570 , - 4005 , - 4424 , - 2827 , - 4590 , - 4337 , - 2068 , - 3159 , - 2234 , - 4669 , - 5088 , - 3491 , - 5254 , - 5001 , - 2732 , - 3823 , - 2898 , - 5333 , - 376 , - 4155 , - 542 , - 289 , - 3396 , - 4487 , - 3562 , - 621 , - 1040 , - 4819 , - 1206 , - 953 , - 4060 , - 5151 , - 4226 , - 1285 , - 1704 , - 107 , - 1870 , - 1617 , - 4724 , - 439 , - 4890 , - 1949 , - 2368 , - 771 , - 2534 , - 2281 , - 12 , - 1103 , - 178 , - 2613 , - 3032 , - 1435 , - 3198 , - 2945 , - 676 , - 1767 , - 842 , - 3277 , - 3696 , - 2099 , - 3862 , - 3609 , - 1340 , - 2431 , - 1506 , - 3941 , - 4360 , - 2763 , - 4526 , - 4273 , - 2004 , - 3095 , - 2170 , - 4605 , - 5024 , - 3427 , - 5190 , - 4937 , - 2668 , - 3759 , - 2834 , - 5269 , - 312 , - 4091 , - 478 , - 225 , - 3332 , - 4423 , - 3498 , - 557 , - 976 , - 4755 , - 1142 , - 889 , - 3996 , - 5087 , - 4162 , - 1221 , - 1640 , - 43 , - 1806 , - 1553 , - 4660 , - 375 , - 4826 , - 1885 , - 2304 , - 707 , - 2470 , - 2217 , - 5324 , - 1039 , - 114 , - 2549 , - 2968 , - 1371 , - 3134 , - 2881 , - 612 , - 1703 , - 778 , - 3213 , - 3632 , - 2035 , - 3798 , - 3545 , - 1276 , - 2367 , - 1442 , - 3877 , - 4296 , - 2699 , - 4462 , - 4209 , - 1940 , - 3031 , - 2106 , - 4541 , - 4960 , - 3363 , - 5126 , - 4873 , - 2604 , - 3695 , - 2770 , - 5205 , - 248 , - 4027 , - 414 , - 161 , - 3268 , - 4359 , - 3434 , - 493 , - 912 , - 4691 , - 1078 , - 825 , - 3932 , - 5023 , - 4098 , - 1157 , - 1576 , - 5355 , - 1742 , - 1489 , - 4596 , - 311 , - 4762 , - 1821 , - 2240 , - 643 , - 2406 , - 2153 , - 5260 , - 975 , - 50 , - 2485 , - 2904 , - 1307 , - 3070 , - 2817 , - 548 , - 1639 , - 714 , - 3149 , - 3568 , - 1971 , - 3734 , - 3481 , - 1212 , - 2303 , - 1378 , - 3813 , - 4232 , - 2635 , - 4398 , - 4145 , - 1876 , - 2967 , - 2042 , - 4477 , - 4896 , - 3299 , - 5062 , - 4809 , - 2540 , - 3631 , - 2706 , - 5141 , - 184 , - 3963 , - 350 , - 97 , - 3204 , - 4295 , - 3370 , - 429 , - 848 , - 4627 , - 1014 , - 761 , - 3868 , - 4959 , - 4034 , - 1093 , - 1512 , - 5291 , - 1678 , - 1425 , - 4532 , - 247 , - 4698 , - 1757 , - 2176 , - 579 , - 2342 , - 2089 , - 5196 , - 911 , - 5362 , - 2421 , - 2840 , - 1243 , - 3006 , - 2753 , - 484 , - 1575 , - 650 , - 3085 , - 3504 , - 1907 , - 3670 , - 3417 , - 1148 , - 2239 , - 1314 , - 3749 , - 4168 , - 2571 , - 4334 , - 4081 , - 1812 , - 2903 , - 1978 , - 4413 , - 4832 , - 3235 , - 4998 , - 4745 , - 2476 , - 3567 , - 2642 , - 5077 , - 120 , - 3899 , - 286 , - 33 , - 3140 , - 4231 , - 3306 , - 365 , - 784 , - 4563 , - 950 , - 697 , - 3804 , - 4895 , - 3970 , - 1029 , - 1448 , - 5227 , - 1614 , - 1361 , - 4468 , - 183 , - 4634 , - 1693 , - 2112 , - 515 , - 2278 , - 2025 , - 5132 , - 847 , - 5298 , - 2357 , - 2776 , - 1179 , - 2942 , - 2689 , - 420 , - 1511 , - 586 , - 3021 , - 3440 , - 1843 , - 3606 , - 3353 , - 1084 , - 2175 , - 1250 , - 3685 , - 4104 , - 2507 , - 4270 , - 4017 , - 1748 , - 2839 , - 1914 , - 4349 , - 4768 , - 3171 , - 4934 , - 4681 , - 2412 , - 3503 , - 2578 , - 5013 , - 56 , - 3835 , - 222 , - 5345 , - 3076 , - 4167 , - 3242 , - 301 , - 720 , - 4499 , - 886 , - 633 , - 3740 , - 4831 , - 3906 , - 965 , - 1384 , - 5163 , - 1550 , - 1297 , - 4404 , - 119 , - 4570 , - 1629 , - 2048 , - 451 , - 2214 , - 1961 , - 5068 , - 783 , - 5234 , - 2293 , - 2712 , - 1115 , - 2878 , - 2625 , - 356 , - 1447 , - 522 , - 2957 , - 3376 , - 1779 , - 3542 , - 3289 , - 1020 , - 2111 , - 1186 , - 3621 , - 4040 , - 2443 , - 4206 , - 3953 , - 1684 , - 2775 , - 1850 , - 4285 , - 4704 , - 3107 , - 4870 , - 4617 , - 2348 , - 3439 , - 2514 , - 4949 , - 5368 , - 3771 , - 158 , - 5281 , - 3012 , - 4103 , - 3178 , - 237 , - 656 , - 4435 , - 822 , - 569 , - 3676 , - 4767 , - 3842 , - 901 , - 1320 , - 5099 , - 1486 , - 1233 , - 4340 , - 55 , - 4506 , - 1565 , - 1984 , - 387 , - 2150 , - 1897 , - 5004 , - 719 , - 5170 , - 2229 , - 2648 , - 1051 , - 2814 , - 2561 , - 292 , - 1383 , - 458 , - 2893 , - 3312 , - 1715 , - 3478 , - 3225 , - 956 , - 2047 , - 1122 , - 3557 , - 3976 , - 2379 , - 4142 , - 3889 , - 1620 , - 2711 , - 1786 , - 4221 , - 4640 , - 3043 , - 4806 , - 4553 , - 2284 , - 3375 , - 2450 , - 4885 , - 5304 , - 3707 , - 94 , - 5217 , - 2948 , - 4039 , - 3114 , - 173 , - 592 , - 4371 , - 758 , - 505 , - 3612 , - 4703 , - 3778 , - 837 , - 1256 , - 5035 , - 1422 , - 1169 , - 4276 , - 5367 , - 4442 , - 1501 , - 1920 , - 323 , - 2086 , - 1833 , - 4940 , - 655 , - 5106 , - 2165 , - 2584 , - 987 , - 2750 , - 2497 , - 228 , - 1319 , - 394 , - 2829 , - 3248 , - 1651 , - 3414 , - 3161 , - 892 , - 1983 , - 1058 , - 3493 , - 3912 , - 2315 , - 4078 , - 3825 , - 1556 , - 2647 , - 1722 , - 4157 , - 4576 , - 2979 , - 4742 , - 4489 , - 2220 , - 3311 , - 2386 , - 4821 , - 5240 , - 3643 , - 30 , - 5153 , - 2884 , - 3975 , - 3050 , - 109 , - 528 , - 4307 , - 694 , - 441 , - 3548 , - 4639 , - 3714 , - 773 , - 1192 , - 4971 , - 1358 , - 1105 , - 4212 , - 5303 , - 4378 , - 1437 , - 1856 , - 259 , - 2022 , - 1769 , - 4876 , - 591 , - 5042 , - 2101 , - 2520 , - 923 , - 2686 , - 2433 , - 164 , - 1255 , - 330 , - 2765 , - 3184 , - 1587 , - 3350 , - 3097 , - 828 , - 1919 , - 994 , - 3429 , - 3848 , - 2251 , - 4014 , - 3761 , - 1492 , - 2583 , - 1658 , - 4093 , - 4512 , - 2915 , - 4678 , - 4425 , - 2156 , - 3247 , - 2322 , - 4757 , - 5176 , - 3579 , - 5342 , - 5089 , - 2820 , - 3911 , - 2986 , - 45 , - 464 , - 4243 , - 630 , - 377 , - 3484 , - 4575 , - 3650 , - 709 , - 1128 , - 4907 , - 1294 , - 1041 , - 4148 , - 5239 , - 4314 , - 1373 , - 1792 , - 195 , - 1958 , - 1705 , - 4812 , - 527 , - 4978 , - 2037 , - 2456 , - 859 , - 2622 , - 2369 , - 100 , - 1191 , - 266 , - 2701 , - 3120 , - 1523 , - 3286 , - 3033 , - 764 , - 1855 , - 930 , - 3365 , - 3784 , - 2187 , - 3950 , - 3697 , - 1428 , - 2519 , - 1594 , - 4029 , - 4448 , - 2851 , - 4614 , - 4361 , - 2092 , - 3183 , - 2258 , - 4693 , - 5112 , - 3515 , - 5278 , - 5025 , - 2756 , - 3847 , - 2922 , - 5357 , - 400 , - 4179 , - 566 , - 313 , - 3420 , - 4511 , - 3586 , - 645 , - 1064 , - 4843 , - 1230 , - 977 , - 4084 , - 5175 , - 4250 , - 1309 , - 1728 , - 131 , - 1894 , - 1641 , - 4748 , - 463 , - 4914 , - 1973 , - 2392 , - 795 , - 2558 , - 2305 , - 36 , - 1127 , - 202 , - 2637 , - 3056 , - 1459 , - 3222 , - 2969 , - 700 , - 1791 , - 866 , - 3301 , - 3720 , - 2123 , - 3886 , - 3633 , - 1364 , - 2455 , - 1530 , - 3965 , - 4384 , - 2787 , - 4550 , - 4297 , - 2028 , - 3119 , - 2194 , - 4629 , - 5048 , - 3451 , - 5214 , - 4961 , - 2692 , - 3783 , - 2858 , - 5293 , - 336 , - 4115 , - 502 , - 249 , - 3356 , - 4447 , - 3522 , - 581 , - 1000 , - 4779 , - 1166 , - 913 , - 4020 , - 5111 , - 4186 , - 1245 , - 1664 , - 67 , - 1830 , - 1577 , - 4684 , - 399 , - 4850 , - 1909 , - 2328 , - 731 , - 2494 , - 2241 , - 5348 , - 1063 , - 138 , - 2573 , - 2992 , - 1395 , - 3158 , - 2905 , - 636 , - 1727 , - 802 , - 3237 , - 3656 , - 2059 , - 3822 , - 3569 , - 1300 , - 2391 , - 1466 , - 3901 , - 4320 , - 2723 , - 4486 , - 4233 , - 1964 , - 3055 , - 2130 , - 4565 , - 4984 , - 3387 , - 5150 , - 4897 , - 2628 , - 3719 , - 2794 , - 5229 , - 272 , - 4051 , - 438 , - 185 , - 3292 , - 4383 , - 3458 , - 517 , - 936 , - 4715 , - 1102 , - 849 , - 3956 , - 5047 , - 4122 , - 1181 , - 1600 , - 3 , - 1766 , - 1513 , - 4620 , - 335 , - 4786 , - 1845 , - 2264 , - 667 , - 2430 , - 2177 , - 5284 , - 999 , - 74 , - 2509 , - 2928 , - 1331 , - 3094 , - 2841 , - 572 , - 1663 , - 738 , - 3173 , - 3592 , - 1995 , - 3758 , - 3505 , - 1236 , - 2327 , - 1402 , - 3837 , - 4256 , - 2659 , - 4422 , - 4169 , - 1900 , - 2991 , - 2066 , - 4501 , - 4920 , - 3323 , - 5086 , - 4833 , - 2564 , - 3655 , - 2730 , - 5165 , - 208 , - 3987 , - 374 , - 121 , - 3228 , - 4319 , - 3394 , - 453 , - 872 , - 4651 , - 1038 , - 785 , - 3892 , - 4983 , - 4058 , - 1117 , - 1536 , - 5315 , - 1702 , - 1449 , - 4556 , - 271 , - 4722 , - 1781 , - 2200 , - 603 , - 2366 , - 2113 , - 5220 , - 935 , - 10 , - 2445 , - 2864 , - 1267 , - 3030 , - 2777 , - 508 , - 1599 , - 674 , - 3109 , - 3528 , - 1931 , - 3694 , - 3441 , - 1172 , - 2263 , - 1338 , - 3773 , - 4192 , - 2595 , - 4358 , - 4105 , - 1836 , - 2927 , - 2002 , - 4437 , - 4856 , - 3259 , - 5022 , - 4769 , - 2500 , - 3591 , - 2666 , - 5101 , - 144 , - 3923 , - 310 , - 57 , - 3164 , - 4255 , - 3330 , - 389 , - 808 , - 4587 , - 974 , - 721 , - 3828 , - 4919 , - 3994 , - 1053 , - 1472 , - 5251 , - 1638 , - 1385 , - 4492 , - 207 , - 4658 , - 1717 , - 2136 , - 539 , - 2302 , - 2049 , - 5156 , - 871 , - 5322 , - 2381 , - 2800 , - 1203 , - 2966 , - 2713 , - 444 , - 1535 , - 610 , - 3045 , - 3464 , - 1867 , - 3630 , - 3377 , - 1108 , - 2199 , - 1274 , - 3709 , - 4128 , - 2531 , - 4294 , - 4041 , - 1772 , - 2863 , - 1938 , - 4373 , - 4792 , - 3195 , - 4958 , - 4705 , - 2436 , - 3527 , - 2602 , - 5037 , - 80 , - 3859 , - 246 , - 5369 , - 3100 , - 4191 , - 3266 , - 325 , - 744 , - 4523 , - 910 , - 657 , - 3764 , - 4855 , - 3930 , - 989 , - 1408 , - 5187 , - 1574 , - 1321 , - 4428 , - 143 , - 4594 , - 1653 , - 2072 , - 475 , - 2238 , - 1985 , - 5092 , - 807 , - 5258 , - 2317 , - 2736 , - 1139 , - 2902 , - 2649 , - 380 , - 1471 , - 546 , - 2981 , - 3400 , - 1803 , - 3566 , - 3313 , - 1044 , - 2135 , - 1210 , - 3645 , - 4064 , - 2467 , - 4230 , - 3977 , - 1708 , - 2799 , - 1874 , - 4309 , - 4728 , - 3131 , - 4894 , - 4641 , - 2372 , - 3463 , - 2538 , - 4973 , - 16 , - 3795 , - 182 , - 5305 , - 3036 , - 4127 , - 3202 , - 261 , - 680 , - 4459 , - 846 , - 593 , - 3700 , - 4791 , - 3866 , - 925 , - 1344 , - 5123 , - 1510 , - 1257 , - 4364 , - 79 , - 4530 , - 1589 , - 2008 , - 411 , - 2174 , - 1921 , - 5028 , - 743 , - 5194 , - 2253 , - 2672 , - 1075 , - 2838 , - 2585 , - 316 , - 1407 , - 482 , - 2917 , - 3336 , - 1739 , - 3502 , - 3249 , - 980 , - 2071 , - 1146 , - 3581 , - 4000 , - 2403 , - 4166 , - 3913 , - 1644 , - 2735 , - 1810 , - 4245 , - 4664 , - 3067 , - 4830 , - 4577 , - 2308 , - 3399 , - 2474 , - 4909 , - 5328 , - 3731 , - 118 , - 5241 , - 2972 , - 4063 , - 3138 , - 197 , - 616 , - 4395 , - 782 , - 529 , - 3636 , - 4727 , - 3802 , - 861 , - 1280 , - 5059 , - 1446 , - 1193 , - 4300 , - 15 , - 4466 , - 1525 , - 1944 , - 347 , - 2110 , - 1857 , - 4964 , - 679 , - 5130 , - 2189 , - 2608 , - 1011 , - 2774 , - 2521 , - 252 , - 1343 , - 418 , - 2853 , - 3272 , - 1675 , - 3438 , - 3185 , - 916 , - 2007 , - 1082 , - 3517 , - 3936 , - 2339 , - 4102 , - 3849 , - 1580 , - 2671 , - 1746 , - 4181 , - 4600 , - 3003 , - 4766 , - 4513 , - 2244 , - 3335 , - 2410 , - 4845 , - 5264 , - 3667 , - 54 , - 5177 , - 2908 , - 3999 , - 3074 , - 133 , - 552 , - 4331 , - 718 , - 465 , - 3572 , - 4663 , - 3738 , - 797 , - 1216 , - 4995 , - 1382 , - 1129 , - 4236 , - 5327 , - 4402 , - 1461 , - 1880 , - 283 , - 2046 , - 1793 , - 4900 , - 615 , - 5066 , - 2125 , - 2544 , - 947 , - 2710 , - 2457 , - 188 , - 1279 , - 354 , - 2789 , - 3208 , - 1611 , - 3374 , - 3121 , - 852 , - 1943 , - 1018 , - 3453 , - 3872 , - 2275 , - 4038 , - 3785 , - 1516 , - 2607 , - 1682 , - 4117 , - 4536 , - 2939 , - 4702 , - 4449 , - 2180 , - 3271 , - 2346 , - 4781 , - 5200 , - 3603 , - 5366 , - 5113 , - 2844 , - 3935 , - 3010 , - 69 , - 488 , - 4267 , - 654 , - 401 , - 3508 , - 4599 , - 3674 , - 733 , - 1152 , - 4931 , - 1318 , - 1065 , - 4172 , - 5263 , - 4338 , - 1397 , - 1816 , - 219 , - 1982 , - 1729 , - 4836 , - 551 , - 5002 , - 2061 , - 2480 , - 883 , - 2646 , - 2393 , - 124 , - 1215 , - 290 , - 2725 , - 3144 , - 1547 , - 3310 , - 3057 , - 788 , - 1879 , - 954 , - 3389 , - 3808 , - 2211 , - 3974 , - 3721 , - 1452 , - 2543 , - 1618 , - 4053 , - 4472 , - 2875 , - 4638 , - 4385 , - 2116 , - 3207 , - 2282 , - 4717 , - 5136 , - 3539 , - 5302 , - 5049 , - 2780 , - 3871 , - 2946 , - 5 , - 424 , - 4203 , - 590 , - 337 , - 3444 , - 4535 , - 3610 , - 669 , - 1088 , - 4867 , - 1254 , - 1001 , - 4108 , - 5199 , - 4274 , - 1333 , - 1752 , - 155 , - 1918 , - 1665 , - 4772 , - 487 , - 4938 , - 1997 , - 2416 , - 819 , - 2582 , - 2329 , - 60 , - 1151 , - 226 , - 2661 , - 3080 , - 1483 , - 3246 , - 2993 , - 724 , - 1815 , - 890 , - 3325 , - 3744 , - 2147 , - 3910 , - 3657 , - 1388 , - 2479 , - 1554 , - 3989 , - 4408 , - 2811 , - 4574 , - 4321 , - 2052 , - 3143 , - 2218 , - 4653 , - 5072 , - 3475 , - 5238 , - 4985 , - 2716 , - 3807 , - 2882 , - 5317 , - 360 , - 4139 , - 526 , - 273 , - 3380 , - 4471 , - 3546 , - 605 , - 1024 , - 4803 , - 1190 , - 937 , - 4044 , - 5135 , - 4210 , - 1269 , - 1688 , - 91 , - 1854 , - 1601 , - 4708 , - 423 , - 4874 , - 1933 , - 2352 , - 755 , - 2518 , - 2265 , - 5372 , - 1087 , - 162 , - 2597 , - 3016 , - 1419 , - 3182 , - 2929 , - 660 , - 1751 , - 826 , - 3261 , - 3680 , - 2083 , - 3846 , - 3593 , - 1324 , - 2415 , - 1490 , - 3925 , - 4344 , - 2747 , - 4510 , - 4257 , - 1988 , - 3079 , - 2154 , - 4589 , - 5008 , - 3411 , - 5174 , - 4921 , - 2652 , - 3743 , - 2818 , - 5253 , - 296 , - 4075 , - 462 , - 209 , - 3316 , - 4407 , - 3482 , - 541 , - 960 , - 4739 , - 1126 , - 873 , - 3980 , - 5071 , - 4146 , - 1205 , - 1624 , - 27 , - 1790 , - 1537 , - 4644 , - 359 , - 4810 , - 1869 , - 2288 , - 691 , - 2454 , - 2201 , - 5308 , - 1023 , - 98 , - 2533 , - 2952 , - 1355 , - 3118 , - 2865 , - 596 , - 1687 , - 762 , - 3197 , - 3616 , - 2019 , - 3782 , - 3529 , - 1260 , - 2351 , - 1426 , - 3861 , - 4280 , - 2683 , - 4446 , - 4193 , - 1924 , - 3015 , - 2090 , - 4525 , - 4944 , - 3347 , - 5110 , - 4857 , - 2588 , - 3679 , - 2754 , - 5189 , - 232 , - 4011 , - 398 , - 145 , - 3252 , - 4343 , - 3418 , - 477 , - 896 , - 4675 , - 1062 , - 809 , - 3916 , - 5007 , - 4082 , - 1141 , - 1560 , - 5339 , - 1726 , - 1473 , - 4580 , - 295 , - 4746 , - 1805 , - 2224 , - 627 , - 2390 , - 2137 , - 5244 , - 959 , - 34 , - 2469 , - 2888 , - 1291 , - 3054 , - 2801 , - 532 , - 1623 , - 698 , - 3133 , - 3552 , - 1955 , - 3718 , - 3465 , - 1196 , - 2287 , - 1362 , - 3797 , - 4216 , - 2619 , - 4382 , - 4129 , - 1860 , - 2951 , - 2026 , - 4461 , - 4880 , - 3283 , - 5046 , - 4793 , - 2524 , - 3615 , - 2690 , - 5125 , - 168 , - 3947 , - 334 , - 81 , - 3188 , - 4279 , - 3354 , - 413 , - 832 , - 4611 , - 998 , - 745 , - 3852 , - 4943 , - 4018 , - 1077 , - 1496 , - 5275 , - 1662 , - 1409 , - 4516 , - 231 , - 4682 , - 1741 , - 2160 , - 563 , - 2326 , - 2073 , - 5180 , - 895 , - 5346 , - 2405 , - 2824 , - 1227 , - 2990 , - 2737 , - 468 , - 1559 , - 634 , - 3069 , - 3488 , - 1891 , - 3654 , - 3401 , - 1132 , - 2223 , - 1298 , - 3733 , - 4152 , - 2555 , - 4318 , - 4065 , - 1796 , - 2887 , - 1962 , - 4397 , - 4816 , - 3219 , - 4982 , - 4729 , - 2460 , - 3551 , - 2626 , - 5061 , - 104 , - 3883 , - 270 , - 17 , - 3124 , - 4215 , - 3290 , - 349 , - 768 , - 4547 , - 934 , - 681 , - 3788 , - 4879 , - 3954 , - 1013 , - 1432 , - 5211 , - 1598 , - 1345 , - 4452 , - 167 , - 4618 , - 1677 , - 2096 , - 499 , - 2262 , - 2009 , - 5116 , - 831 , - 5282 , - 2341 , - 2760 , - 1163 , - 2926 , - 2673 , - 404 , - 1495 , - 570 , - 3005 , - 3424 , - 1827 , - 3590 , - 3337 , - 1068 , - 2159 , - 1234 , - 3669 , - 4088 , - 2491 , - 4254 , - 4001 , - 1732 , - 2823 , - 1898 , - 4333 , - 4752 , - 3155 , - 4918 , - 4665 , - 2396 , - 3487 , - 2562 , - 4997 , - 40 , - 3819 , - 206 , - 5329 , - 3060 , - 4151 , - 3226 , - 285 , - 704 , - 4483 , - 870 , - 617 , - 3724 , - 4815 , - 3890 , - 949 , - 1368 , - 5147 , - 1534 , - 1281 , - 4388 , - 103 , - 4554 , - 1613 , - 2032 , - 435 , - 2198 , - 1945 , - 5052 , - 767 , - 5218 , - 2277 , - 2696 , - 1099 , - 2862 , - 2609 , - 340 , - 1431 , - 506 , - 2941 , - 3360 , - 1763 , - 3526 , - 3273 , - 1004 , - 2095 , - 1170 , - 3605 , - 4024 , - 2427 , - 4190 , - 3937 , - 1668 , - 2759 , - 1834 , - 4269 , - 4688 , - 3091 , - 4854 , - 4601 , - 2332 , - 3423 , - 2498 , - 4933 , - 5352 , - 3755 , - 142 , - 5265 , - 2996 , - 4087 , - 3162 , - 221 , - 640 , - 4419 , - 806 , - 553 , - 3660 , - 4751 , - 3826 , - 885 , - 1304 , - 5083 , - 1470 , - 1217 , - 4324 , - 39 , - 4490 , - 1549 , - 1968 , - 371 , - 2134 , - 1881 , - 4988 , - 703 , - 5154 , - 2213 , - 2632 , - 1035 , - 2798 , - 2545 , - 276 , - 1367 , - 442 , - 2877 , - 3296 , - 1699 , - 3462 , - 3209 , - 940 , - 2031 , - 1106 , - 3541 , - 3960 , - 2363 , - 4126 , - 3873 , - 1604 , - 2695 , - 1770 , - 4205 , - 4624 , - 3027 , - 4790 , - 4537 , - 2268 , - 3359 , - 2434 , - 4869 , - 5288 , - 3691 , - 78 , - 5201 , - 2932 , - 4023 , - 3098 , - 157 , - 576 , - 4355 , - 742 , - 489 , - 3596 , - 4687 , - 3762 , - 821 , - 1240 , - 5019 , - 1406 , - 1153 , - 4260 , - 5351 , - 4426 , - 1485 , - 1904 , - 307 , - 2070 , - 1817 , - 4924 , - 639 , - 5090 , - 2149 , - 2568 , - 971 , - 2734 , - 2481 , - 212 , - 1303 , - 378 , - 2813 , - 3232 , - 1635 , - 3398 , - 3145 , - 876 , - 1967 , - 1042 , - 3477 , - 3896 , - 2299 , - 4062 , - 3809 , - 1540 , - 2631 , - 1706 , - 4141 , - 4560 , - 2963 , - 4726 , - 4473 , - 2204 , - 3295 , - 2370 , - 4805 , - 5224 , - 3627 , - 14 , - 5137 , - 2868 , - 3959 , - 3034 , - 93 , - 512 , - 4291 , - 678 , - 425 , - 3532 , - 4623 , - 3698 , - 757 , - 1176 , - 4955 , - 1342 , - 1089 , - 4196 , - 5287 , - 4362 , - 1421 , - 1840 , - 243 , - 2006 , - 1753 , - 4860 , - 575 , - 5026 , - 2085 , - 2504 , - 907 , - 2670 , - 2417 , - 148 , - 1239 , - 314 , - 2749 , - 3168 , - 1571 , - 3334 , - 3081 , - 812 , - 1903 , - 978 , - 3413 , - 3832 , - 2235 , - 3998 , - 3745 , - 1476 , - 2567 , - 1642 , - 4077 , - 4496 , - 2899 , - 4662 , - 4409 , - 2140 , - 3231 , - 2306 , - 4741 , - 5160 , - 3563 , - 5326 , - 5073 , - 2804 , - 3895 , - 2970 , - 29 , - 448 , - 4227 , - 614 , - 361 , - 3468 , - 4559 , - 3634 , - 693 , - 1112 , - 4891 , - 1278 , - 1025 , - 4132 , - 5223 , - 4298 , - 1357 , - 1776 , - 179 , - 1942 , - 1689 , - 4796 , - 511 , - 4962 , - 2021 , - 2440 , - 843 , - 2606 , - 2353 , - 84 , - 1175 , - 250 , - 2685 , - 3104 , - 1507 , - 3270 , - 3017 , - 748 , - 1839 , - 914 , - 3349 , - 3768 , - 2171 , - 3934 , - 3681 , - 1412 , - 2503 , - 1578 , - 4013 , - 4432 , - 2835 , - 4598 , - 4345 , - 2076 , - 3167 , - 2242 , - 4677 , - 5096 , - 3499 , - 5262 , - 5009 , - 2740 , - 3831 , - 2906 , - 5341 , - 384 , - 4163 , - 550 , - 297 , - 3404 , - 4495 , - 3570 , - 629 , - 1048 , - 4827 , - 1214 , - 961 , - 4068 , - 5159 , - 4234 , - 1293 , - 1712 , - 115 , - 1878 , - 1625 , - 4732 , - 447 , - 4898 , - 1957 , - 2376 , - 779 , - 2542 , - 2289 , - 20 , - 1111 , - 186 , - 2621 , - 3040 , - 1443 , - 3206 , - 2953 , - 684 , - 1775 , - 850 , - 3285 , - 3704 , - 2107 , - 3870 , - 3617 , - 1348 , - 2439 , - 1514 , - 3949 , - 4368 , - 2771 , - 4534 , - 4281 , - 2012 , - 3103 , - 2178 , - 4613 , - 5032 , - 3435 , - 5198 , - 4945 , - 2676 , - 3767 , - 2842 , - 5277 , - 320 , - 4099 , - 486 , - 233 , - 3340 , - 4431 , - 3506 , - 565 , - 984 , - 4763 , - 1150 , - 897 , - 4004 , - 5095 , - 4170 , - 1229 , - 1648 , - 51 , - 1814 , - 1561 , - 4668 , - 383 , - 4834 , - 1893 , - 2312 , - 715 , - 2478 , - 2225 , - 5332 , - 1047 , - 122 , - 2557 , - 2976 , - 1379 , - 3142 , - 2889 , - 620 , - 1711 , - 786 , - 3221 , - 3640 , - 2043 , - 3806 , - 3553 , - 1284 , - 2375 , - 1450 , - 3885 , - 4304 , - 2707 , - 4470 , - 4217 , - 1948 , - 3039 , - 2114 , - 4549 , - 4968 , - 3371 , - 5134 , - 4881 , - 2612 , - 3703 , - 2778 , - 5213 , - 256 , - 4035 , - 422 , - 169 , - 3276 , - 4367 , - 3442 , - 501 , - 920 , - 4699 , - 1086 , - 833 , - 3940 , - 5031 , - 4106 , - 1165 , - 1584 , - 5363 , - 1750 , - 1497 , - 4604 , - 319 , - 4770 , - 1829 , - 2248 , - 651 , - 2414 , - 2161 , - 5268 , - 983 , - 58 , - 2493 , - 2912 , - 1315 , - 3078 , - 2825 , - 556 , - 1647 , - 722 , - 3157 , - 3576 , - 1979 , - 3742 , - 3489 , - 1220 , - 2311 , - 1386 , - 3821 , - 4240 , - 2643 , - 4406 , - 4153 , - 1884 , - 2975 , - 2050 , - 4485 , - 4904 , - 3307 , - 5070 , - 4817 , - 2548 , - 3639 , - 2714 , - 5149 , - 192 , - 3971 , - 358 , - 105 , - 3212 , - 4303 , - 3378 , - 437 , - 856 , - 4635 , - 1022 , - 769 , - 3876 , - 4967 , - 4042 , - 1101 , - 1520 , - 5299 , - 1686 , - 1433 , - 4540 , - 255 , - 4706 , - 1765 , - 2184 , - 587 , - 2350 , - 2097 , - 5204 , - 919 , - 5370 , - 2429 , - 2848 , - 1251 , - 3014 , - 2761 , - 492 , - 1583 , - 658 , - 3093 , - 3512 , - 1915 , - 3678 , - 3425 , - 1156 , - 2247 , - 1322 , - 3757 , - 4176 , - 2579 , - 4342 , - 4089 , - 1820 , - 2911 , - 1986 , - 4421 , - 4840 , - 3243 , - 5006 , - 4753 , - 2484 , - 3575 , - 2650 , - 5085 , - 128 , - 3907 , - 294 , - 41 , - 3148 , - 4239 , - 3314 , - 373 , - 792 , - 4571 , - 958 , - 705 , - 3812 , - 4903 , - 3978 , - 1037 , - 1456 , - 5235 , - 1622 , - 1369 , - 4476 , - 191 , - 4642 , - 1701 , - 2120 , - 523 , - 2286 , - 2033 , - 5140 , - 855 , - 5306 , - 2365 , - 2784 , - 1187 , - 2950 , - 2697 , - 428 , - 1519 , - 594 , - 3029 , - 3448 , - 1851 , - 3614 , - 3361 , - 1092 , - 2183 , - 1258 , - 3693 , - 4112 , - 2515 , - 4278 , - 4025 , - 1756 , - 2847 , - 1922 , - 4357 , - 4776 , - 3179 , - 4942 , - 4689 , - 2420 , - 3511 , - 2586 , - 5021 , - 64 , - 3843 , - 230 , - 5353 , - 3084 , - 4175 , - 3250 , - 309 , - 728 , - 4507 , - 894 , - 641 , - 3748 , - 4839 , - 3914 , - 973 , - 1392 , - 5171 , - 1558 , - 1305 , - 4412 , - 127 , - 4578 , - 1637 , - 2056 , - 459 , - 2222 , - 1969 , - 5076 , - 791 , - 5242 , - 2301 , - 2720 , - 1123 , - 2886 , - 2633 , - 364 , - 1455 , - 530 , - 2965 , - 3384 , - 1787 , - 3550 , - 3297 , - 1028 , - 2119 , - 1194 , - 3629 , - 4048 , - 2451 , - 4214 , - 3961 , - 1692 , - 2783 , - 1858 , - 4293 , - 4712 , - 3115 , - 4878 , - 4625 , - 2356 , - 3447 , - 2522 , - 4957 , - 0 , - 3317 , - 2894 , - 2811 , - 1708 , - 3665 , - 1882 , - 439 , - 3416 , - 4013 , - 870 , - 3507 , - 5124 , - 4361 , - 5298 , - 1135 , - 1392 , - 4709 , - 4286 , - 4203 , - 3100 , - 5057 , - 3274 , - 1831 , - 4808 , - 5405 , - 2262 , - 4899 , - 1076 , - 313 , - 1250 , - 2527 , - 2784 , - 661 , - 238 , - 155 , - 4492 , - 1009 , - 4666 , - 3223 , - 760 , - 1357 , - 3654 , - 851 , - 2468 , - 1705 , - 2642 , - 3919 , - 4176 , - 2053 , - 1630 , - 1547 , - 444 , - 2401 , - 618 , - 4615 , - 2152 , - 2749 , - 5046 , - 2243 , - 3860 , - 3097 , - 4034 , - 5311 , - 128 , - 3445 , - 3022 , - 2939 , - 1836 , - 3793 , - 2010 , - 567 , - 3544 , - 4141 , - 998 , - 3635 , - 5252 , - 4489 , - 5426 , - 1263 , - 1520 , - 4837 , - 4414 , - 4331 , - 3228 , - 5185 , - 3402 , - 1959 , - 4936 , - 93 , - 2390 , - 5027 , - 1204 , - 441 , - 1378 , - 2655 , - 2912 , - 789 , - 366 , - 283 , - 4620 , - 1137 , - 4794 , - 3351 , - 888 , - 1485 , - 3782 , - 979 , - 2596 , - 1833 , - 2770 , - 4047 , - 4304 , - 2181 , - 1758 , - 1675 , - 572 , - 2529 , - 746 , - 4743 , - 2280 , - 2877 , - 5174 , - 2371 , - 3988 , - 3225 , - 4162 , - 5439 , - 256 , - 3573 , - 3150 , - 3067 , - 1964 , - 3921 , - 2138 , - 695 , - 3672 , - 4269 , - 1126 , - 3763 , - 5380 , - 4617 , - 114 , - 1391 , - 1648 , - 4965 , - 4542 , - 4459 , - 3356 , - 5313 , - 3530 , - 2087 , - 5064 , - 221 , - 2518 , - 5155 , - 1332 , - 569 , - 1506 , - 2783 , - 3040 , - 917 , - 494 , - 411 , - 4748 , - 1265 , - 4922 , - 3479 , - 1016 , - 1613 , - 3910 , - 1107 , - 2724 , - 1961 , - 2898 , - 4175 , - 4432 , - 2309 , - 1886 , - 1803 , - 700 , - 2657 , - 874 , - 4871 , - 2408 , - 3005 , - 5302 , - 2499 , - 4116 , - 3353 , - 4290 , - 127 , - 384 , - 3701 , - 3278 , - 3195 , - 2092 , - 4049 , - 2266 , - 823 , - 3800 , - 4397 , - 1254 , - 3891 , - 68 , - 4745 , - 242 , - 1519 , - 1776 , - 5093 , - 4670 , - 4587 , - 3484 , - 1 , - 3658 , - 2215 , - 5192 , - 349 , - 2646 , - 5283 , - 1460 , - 697 , - 1634 , - 2911 , - 3168 , - 1045 , - 622 , - 539 , - 4876 , - 1393 , - 5050 , - 3607 , - 1144 , - 1741 , - 4038 , - 1235 , - 2852 , - 2089 , - 3026 , - 4303 , - 4560 , - 2437 , - 2014 , - 1931 , - 828 , - 2785 , - 1002 , - 4999 , - 2536 , - 3133 , - 5430 , - 2627 , - 4244 , - 3481 , - 4418 , - 255 , - 512 , - 3829 , - 3406 , - 3323 , - 2220 , - 4177 , - 2394 , - 951 , - 3928 , - 4525 , - 1382 , - 4019 , - 196 , - 4873 , - 370 , - 1647 , - 1904 , - 5221 , - 4798 , - 4715 , - 3612 , - 129 , - 3786 , - 2343 , - 5320 , - 477 , - 2774 , - 5411 , - 1588 , - 825 , - 1762 , - 3039 , - 3296 , - 1173 , - 750 , - 667 , - 5004 , - 1521 , - 5178 , - 3735 , - 1272 , - 1869 , - 4166 , - 1363 , - 2980 , - 2217 , - 3154 , - 4431 , - 4688 , - 2565 , - 2142 , - 2059 , - 956 , - 2913 , - 1130 , - 5127 , - 2664 , - 3261 , - 118 , - 2755 , - 4372 , - 3609 , - 4546 , - 383 , - 640 , - 3957 , - 3534 , - 3451 , - 2348 , - 4305 , - 2522 , - 1079 , - 4056 , - 4653 , - 1510 , - 4147 , - 324 , - 5001 , - 498 , - 1775 , - 2032 , - 5349 , - 4926 , - 4843 , - 3740 , - 257 , - 3914 , - 2471 , - 8 , - 605 , - 2902 , - 99 , - 1716 , - 953 , - 1890 , - 3167 , - 3424 , - 1301 , - 878 , - 795 , - 5132 , - 1649 , - 5306 , - 3863 , - 1400 , - 1997 , - 4294 , - 1491 , - 3108 , - 2345 , - 3282 , - 4559 , - 4816 , - 2693 , - 2270 , - 2187 , - 1084 , - 3041 , - 1258 , - 5255 , - 2792 , - 3389 , - 246 , - 2883 , - 4500 , - 3737 , - 4674 , - 511 , - 768 , - 4085 , - 3662 , - 3579 , - 2476 , - 4433 , - 2650 , - 1207 , - 4184 , - 4781 , - 1638 , - 4275 , - 452 , - 5129 , - 626 , - 1903 , - 2160 , - 37 , - 5054 , - 4971 , - 3868 , - 385 , - 4042 , - 2599 , - 136 , - 733 , - 3030 , - 227 , - 1844 , - 1081 , - 2018 , - 3295 , - 3552 , - 1429 , - 1006 , - 923 , - 5260 , - 1777 , - 5434 , - 3991 , - 1528 , - 2125 , - 4422 , - 1619 , - 3236 , - 2473 , - 3410 , - 4687 , - 4944 , - 2821 , - 2398 , - 2315 , - 1212 , - 3169 , - 1386 , - 5383 , - 2920 , - 3517 , - 374 , - 3011 , - 4628 , - 3865 , - 4802 , - 639 , - 896 , - 4213 , - 3790 , - 3707 , - 2604 , - 4561 , - 2778 , - 1335 , - 4312 , - 4909 , - 1766 , - 4403 , - 580 , - 5257 , - 754 , - 2031 , - 2288 , - 165 , - 5182 , - 5099 , - 3996 , - 513 , - 4170 , - 2727 , - 264 , - 861 , - 3158 , - 355 , - 1972 , - 1209 , - 2146 , - 3423 , - 3680 , - 1557 , - 1134 , - 1051 , - 5388 , - 1905 , - 122 , - 4119 , - 1656 , - 2253 , - 4550 , - 1747 , - 3364 , - 2601 , - 3538 , - 4815 , - 5072 , - 2949 , - 2526 , - 2443 , - 1340 , - 3297 , - 1514 , - 71 , - 3048 , - 3645 , - 502 , - 3139 , - 4756 , - 3993 , - 4930 , - 767 , - 1024 , - 4341 , - 3918 , - 3835 , - 2732 , - 4689 , - 2906 , - 1463 , - 4440 , - 5037 , - 1894 , - 4531 , - 708 , - 5385 , - 882 , - 2159 , - 2416 , - 293 , - 5310 , - 5227 , - 4124 , - 641 , - 4298 , - 2855 , - 392 , - 989 , - 3286 , - 483 , - 2100 , - 1337 , - 2274 , - 3551 , - 3808 , - 1685 , - 1262 , - 1179 , - 76 , - 2033 , - 250 , - 4247 , - 1784 , - 2381 , - 4678 , - 1875 , - 3492 , - 2729 , - 3666 , - 4943 , - 5200 , - 3077 , - 2654 , - 2571 , - 1468 , - 3425 , - 1642 , - 199 , - 3176 , - 3773 , - 630 , - 3267 , - 4884 , - 4121 , - 5058 , - 895 , - 1152 , - 4469 , - 4046 , - 3963 , - 2860 , - 4817 , - 3034 , - 1591 , - 4568 , - 5165 , - 2022 , - 4659 , - 836 , - 73 , - 1010 , - 2287 , - 2544 , - 421 , - 5438 , - 5355 , - 4252 , - 769 , - 4426 , - 2983 , - 520 , - 1117 , - 3414 , - 611 , - 2228 , - 1465 , - 2402 , - 3679 , - 3936 , - 1813 , - 1390 , - 1307 , - 204 , - 2161 , - 378 , - 4375 , - 1912 , - 2509 , - 4806 , - 2003 , - 3620 , - 2857 , - 3794 , - 5071 , - 5328 , - 3205 , - 2782 , - 2699 , - 1596 , - 3553 , - 1770 , - 327 , - 3304 , - 3901 , - 758 , - 3395 , - 5012 , - 4249 , - 5186 , - 1023 , - 1280 , - 4597 , - 4174 , - 4091 , - 2988 , - 4945 , - 3162 , - 1719 , - 4696 , - 5293 , - 2150 , - 4787 , - 964 , - 201 , - 1138 , - 2415 , - 2672 , - 549 , - 126 , - 43 , - 4380 , - 897 , - 4554 , - 3111 , - 648 , - 1245 , - 3542 , - 739 , - 2356 , - 1593 , - 2530 , - 3807 , - 4064 , - 1941 , - 1518 , - 1435 , - 332 , - 2289 , - 506 , - 4503 , - 2040 , - 2637 , - 4934 , - 2131 , - 3748 , - 2985 , - 3922 , - 5199 , - 16 , - 3333 , - 2910 , - 2827 , - 1724 , - 3681 , - 1898 , - 455 , - 3432 , - 4029 , - 886 , - 3523 , - 5140 , - 4377 , - 5314 , - 1151 , - 1408 , - 4725 , - 4302 , - 4219 , - 3116 , - 5073 , - 3290 , - 1847 , - 4824 , - 5421 , - 2278 , - 4915 , - 1092 , - 329 , - 1266 , - 2543 , - 2800 , - 677 , - 254 , - 171 , - 4508 , - 1025 , - 4682 , - 3239 , - 776 , - 1373 , - 3670 , - 867 , - 2484 , - 1721 , - 2658 , - 3935 , - 4192 , - 2069 , - 1646 , - 1563 , - 460 , - 2417 , - 634 , - 4631 , - 2168 , - 2765 , - 5062 , - 2259 , - 3876 , - 3113 , - 4050 , - 5327 , - 144 , - 3461 , - 3038 , - 2955 , - 1852 , - 3809 , - 2026 , - 583 , - 3560 , - 4157 , - 1014 , - 3651 , - 5268 , - 4505 , - 2 , - 1279 , - 1536 , - 4853 , - 4430 , - 4347 , - 3244 , - 5201 , - 3418 , - 1975 , - 4952 , - 109 , - 2406 , - 5043 , - 1220 , - 457 , - 1394 , - 2671 , - 2928 , - 805 , - 382 , - 299 , - 4636 , - 1153 , - 4810 , - 3367 , - 904 , - 1501 , - 3798 , - 995 , - 2612 , - 1849 , - 2786 , - 4063 , - 4320 , - 2197 , - 1774 , - 1691 , - 588 , - 2545 , - 762 , - 4759 , - 2296 , - 2893 , - 5190 , - 2387 , - 4004 , - 3241 , - 4178 , - 15 , - 272 , - 3589 , - 3166 , - 3083 , - 1980 , - 3937 , - 2154 , - 711 , - 3688 , - 4285 , - 1142 , - 3779 , - 5396 , - 4633 , - 130 , - 1407 , - 1664 , - 4981 , - 4558 , - 4475 , - 3372 , - 5329 , - 3546 , - 2103 , - 5080 , - 237 , - 2534 , - 5171 , - 1348 , - 585 , - 1522 , - 2799 , - 3056 , - 933 , - 510 , - 427 , - 4764 , - 1281 , - 4938 , - 3495 , - 1032 , - 1629 , - 3926 , - 1123 , - 2740 , - 1977 , - 2914 , - 4191 , - 4448 , - 2325 , - 1902 , - 1819 , - 716 , - 2673 , - 890 , - 4887 , - 2424 , - 3021 , - 5318 , - 2515 , - 4132 , - 3369 , - 4306 , - 143 , - 400 , - 3717 , - 3294 , - 3211 , - 2108 , - 4065 , - 2282 , - 839 , - 3816 , - 4413 , - 1270 , - 3907 , - 84 , - 4761 , - 258 , - 1535 , - 1792 , - 5109 , - 4686 , - 4603 , - 3500 , - 17 , - 3674 , - 2231 , - 5208 , - 365 , - 2662 , - 5299 , - 1476 , - 713 , - 1650 , - 2927 , - 3184 , - 1061 , - 638 , - 555 , - 4892 , - 1409 , - 5066 , - 3623 , - 1160 , - 1757 , - 4054 , - 1251 , - 2868 , - 2105 , - 3042 , - 4319 , - 4576 , - 2453 , - 2030 , - 1947 , - 844 , - 2801 , - 1018 , - 5015 , - 2552 , - 3149 , - 6 , - 2643 , - 4260 , - 3497 , - 4434 , - 271 , - 528 , - 3845 , - 3422 , - 3339 , - 2236 , - 4193 , - 2410 , - 967 , - 3944 , - 4541 , - 1398 , - 4035 , - 212 , - 4889 , - 386 , - 1663 , - 1920 , - 5237 , - 4814 , - 4731 , - 3628 , - 145 , - 3802 , - 2359 , - 5336 , - 493 , - 2790 , - 5427 , - 1604 , - 841 , - 1778 , - 3055 , - 3312 , - 1189 , - 766 , - 683 , - 5020 , - 1537 , - 5194 , - 3751 , - 1288 , - 1885 , - 4182 , - 1379 , - 2996 , - 2233 , - 3170 , - 4447 , - 4704 , - 2581 , - 2158 , - 2075 , - 972 , - 2929 , - 1146 , - 5143 , - 2680 , - 3277 , - 134 , - 2771 , - 4388 , - 3625 , - 4562 , - 399 , - 656 , - 3973 , - 3550 , - 3467 , - 2364 , - 4321 , - 2538 , - 1095 , - 4072 , - 4669 , - 1526 , - 4163 , - 340 , - 5017 , - 514 , - 1791 , - 2048 , - 5365 , - 4942 , - 4859 , - 3756 , - 273 , - 3930 , - 2487 , - 24 , - 621 , - 2918 , - 115 , - 1732 , - 969 , - 1906 , - 3183 , - 3440 , - 1317 , - 894 , - 811 , - 5148 , - 1665 , - 5322 , - 3879 , - 1416 , - 2013 , - 4310 , - 1507 , - 3124 , - 2361 , - 3298 , - 4575 , - 4832 , - 2709 , - 2286 , - 2203 , - 1100 , - 3057 , - 1274 , - 5271 , - 2808 , - 3405 , - 262 , - 2899 , - 4516 , - 3753 , - 4690 , - 527 , - 784 , - 4101 , - 3678 , - 3595 , - 2492 , - 4449 , - 2666 , - 1223 , - 4200 , - 4797 , - 1654 , - 4291 , - 468 , - 5145 , - 642 , - 1919 , - 2176 , - 53 , - 5070 , - 4987 , - 3884 , - 401 , - 4058 , - 2615 , - 152 , - 749 , - 3046 , - 243 , - 1860 , - 1097 , - 2034 , - 3311 , - 3568 , - 1445 , - 1022 , - 939 , - 5276 , - 1793 , - 10 , - 4007 , - 1544 , - 2141 , - 4438 , - 1635 , - 3252 , - 2489 , - 3426 , - 4703 , - 4960 , - 2837 , - 2414 , - 2331 , - 1228 , - 3185 , - 1402 , - 5399 , - 2936 , - 3533 , - 390 , - 3027 , - 4644 , - 3881 , - 4818 , - 655 , - 912 , - 4229 , - 3806 , - 3723 , - 2620 , - 4577 , - 2794 , - 1351 , - 4328 , - 4925 , - 1782 , - 4419 , - 596 , - 5273 , - 770 , - 2047 , - 2304 , - 181 , - 5198 , - 5115 , - 4012 , - 529 , - 4186 , - 2743 , - 280 , - 877 , - 3174 , - 371 , - 1988 , - 1225 , - 2162 , - 3439 , - 3696 , - 1573 , - 1150 , - 1067 , - 5404 , - 1921 , - 138 , - 4135 , - 1672 , - 2269 , - 4566 , - 1763 , - 3380 , - 2617 , - 3554 , - 4831 , - 5088 , - 2965 , - 2542 , - 2459 , - 1356 , - 3313 , - 1530 , - 87 , - 3064 , - 3661 , - 518 , - 3155 , - 4772 , - 4009 , - 4946 , - 783 , - 1040 , - 4357 , - 3934 , - 3851 , - 2748 , - 4705 , - 2922 , - 1479 , - 4456 , - 5053 , - 1910 , - 4547 , - 724 , - 5401 , - 898 , - 2175 , - 2432 , - 309 , - 5326 , - 5243 , - 4140 , - 657 , - 4314 , - 2871 , - 408 , - 1005 , - 3302 , - 499 , - 2116 , - 1353 , - 2290 , - 3567 , - 3824 , - 1701 , - 1278 , - 1195 , - 92 , - 2049 , - 266 , - 4263 , - 1800 , - 2397 , - 4694 , - 1891 , - 3508 , - 2745 , - 3682 , - 4959 , - 5216 , - 3093 , - 2670 , - 2587 , - 1484 , - 3441 , - 1658 , - 215 , - 3192 , - 3789 , - 646 , - 3283 , - 4900 , - 4137 , - 5074 , - 911 , - 1168 , - 4485 , - 4062 , - 3979 , - 2876 , - 4833 , - 3050 , - 1607 , - 4584 , - 5181 , - 2038 , - 4675 , - 852 , - 89 , - 1026 , - 2303 , - 2560 , - 437 , - 14 , - 5371 , - 4268 , - 785 , - 4442 , - 2999 , - 536 , - 1133 , - 3430 , - 627 , - 2244 , - 1481 , - 2418 , - 3695 , - 3952 , - 1829 , - 1406 , - 1323 , - 220 , - 2177 , - 394 , - 4391 , - 1928 , - 2525 , - 4822 , - 2019 , - 3636 , - 2873 , - 3810 , - 5087 , - 5344 , - 3221 , - 2798 , - 2715 , - 1612 , - 3569 , - 1786 , - 343 , - 3320 , - 3917 , - 774 , - 3411 , - 5028 , - 4265 , - 5202 , - 1039 , - 1296 , - 4613 , - 4190 , - 4107 , - 3004 , - 4961 , - 3178 , - 1735 , - 4712 , - 5309 , - 2166 , - 4803 , - 980 , - 217 , - 1154 , - 2431 , - 2688 , - 565 , - 142 , - 59 , - 4396 , - 913 , - 4570 , - 3127 , - 664 , - 1261 , - 3558 , - 755 , - 2372 , - 1609 , - 2546 , - 3823 , - 4080 , - 1957 , - 1534 , - 1451 , - 348 , - 2305 , - 522 , - 4519 , - 2056 , - 2653 , - 4950 , - 2147 , - 3764 , - 3001 , - 3938 , - 5215 , - 32 , - 3349 , - 2926 , - 2843 , - 1740 , - 3697 , - 1914 , - 471 , - 3448 , - 4045 , - 902 , - 3539 , - 5156 , - 4393 , - 5330 , - 1167 , - 1424 , - 4741 , - 4318 , - 4235 , - 3132 , - 5089 , - 3306 , - 1863 , - 4840 , - 5437 , - 2294 , - 4931 , - 1108 , - 345 , - 1282 , - 2559 , - 2816 , - 693 , - 270 , - 187 , - 4524 , - 1041 , - 4698 , - 3255 , - 792 , - 1389 , - 3686 , - 883 , - 2500 , - 1737 , - 2674 , - 3951 , - 4208 , - 2085 , - 1662 , - 1579 , - 476 , - 2433 , - 650 , - 4647 , - 2184 , - 2781 , - 5078 , - 2275 , - 3892 , - 3129 , - 4066 , - 5343 , - 160 , - 3477 , - 3054 , - 2971 , - 1868 , - 3825 , - 2042 , - 599 , - 3576 , - 4173 , - 1030 , - 3667 , - 5284 , - 4521 , - 18 , - 1295 , - 1552 , - 4869 , - 4446 , - 4363 , - 3260 , - 5217 , - 3434 , - 1991 , - 4968 , - 125 , - 2422 , - 5059 , - 1236 , - 473 , - 1410 , - 2687 , - 2944 , - 821 , - 398 , - 315 , - 4652 , - 1169 , - 4826 , - 3383 , - 920 , - 1517 , - 3814 , - 1011 , - 2628 , - 1865 , - 2802 , - 4079 , - 4336 , - 2213 , - 1790 , - 1707 , - 604 , - 2561 , - 778 , - 4775 , - 2312 , - 2909 , - 5206 , - 2403 , - 4020 , - 3257 , - 4194 , - 31 , - 288 , - 3605 , - 3182 , - 3099 , - 1996 , - 3953 , - 2170 , - 727 , - 3704 , - 4301 , - 1158 , - 3795 , - 5412 , - 4649 , - 146 , - 1423 , - 1680 , - 4997 , - 4574 , - 4491 , - 3388 , - 5345 , - 3562 , - 2119 , - 5096 , - 253 , - 2550 , - 5187 , - 1364 , - 601 , - 1538 , - 2815 , - 3072 , - 949 , - 526 , - 443 , - 4780 , - 1297 , - 4954 , - 3511 , - 1048 , - 1645 , - 3942 , - 1139 , - 2756 , - 1993 , - 2930 , - 4207 , - 4464 , - 2341 , - 1918 , - 1835 , - 732 , - 2689 , - 906 , - 4903 , - 2440 , - 3037 , - 5334 , - 2531 , - 4148 , - 3385 , - 4322 , - 159 , - 416 , - 3733 , - 3310 , - 3227 , - 2124 , - 4081 , - 2298 , - 855 , - 3832 , - 4429 , - 1286 , - 3923 , - 100 , - 4777 , - 274 , - 1551 , - 1808 , - 5125 , - 4702 , - 4619 , - 3516 , - 33 , - 3690 , - 2247 , - 5224 , - 381 , - 2678 , - 5315 , - 1492 , - 729 , - 1666 , - 2943 , - 3200 , - 1077 , - 654 , - 571 , - 4908 , - 1425 , - 5082 , - 3639 , - 1176 , - 1773 , - 4070 , - 1267 , - 2884 , - 2121 , - 3058 , - 4335 , - 4592 , - 2469 , - 2046 , - 1963 , - 860 , - 2817 , - 1034 , - 5031 , - 2568 , - 3165 , - 22 , - 2659 , - 4276 , - 3513 , - 4450 , - 287 , - 544 , - 3861 , - 3438 , - 3355 , - 2252 , - 4209 , - 2426 , - 983 , - 3960 , - 4557 , - 1414 , - 4051 , - 228 , - 4905 , - 402 , - 1679 , - 1936 , - 5253 , - 4830 , - 4747 , - 3644 , - 161 , - 3818 , - 2375 , - 5352 , - 509 , - 2806 , - 3 , - 1620 , - 857 , - 1794 , - 3071 , - 3328 , - 1205 , - 782 , - 699 , - 5036 , - 1553 , - 5210 , - 3767 , - 1304 , - 1901 , - 4198 , - 1395 , - 3012 , - 2249 , - 3186 , - 4463 , - 4720 , - 2597 , - 2174 , - 2091 , - 988 , - 2945 , - 1162 , - 5159 , - 2696 , - 3293 , - 150 , - 2787 , - 4404 , - 3641 , - 4578 , - 415 , - 672 , - 3989 , - 3566 , - 3483 , - 2380 , - 4337 , - 2554 , - 1111 , - 4088 , - 4685 , - 1542 , - 4179 , - 356 , - 5033 , - 530 , - 1807 , - 2064 , - 5381 , - 4958 , - 4875 , - 3772 , - 289 , - 3946 , - 2503 , - 40 , - 637 , - 2934 , - 131 , - 1748 , - 985 , - 1922 , - 3199 , - 3456 , - 1333 , - 910 , - 827 , - 5164 , - 1681 , - 5338 , - 3895 , - 1432 , - 2029 , - 4326 , - 1523 , - 3140 , - 2377 , - 3314 , - 4591 , - 4848 , - 2725 , - 2302 , - 2219 , - 1116 , - 3073 , - 1290 , - 5287 , - 2824 , - 3421 , - 278 , - 2915 , - 4532 , - 3769 , - 4706 , - 543 , - 800 , - 4117 , - 3694 , - 3611 , - 2508 , - 4465 , - 2682 , - 1239 , - 4216 , - 4813 , - 1670 , - 4307 , - 484 , - 5161 , - 658 , - 1935 , - 2192 , - 69 , - 5086 , - 5003 , - 3900 , - 417 , - 4074 , - 2631 , - 168 , - 765 , - 3062 , - 259 , - 1876 , - 1113 , - 2050 , - 3327 , - 3584 , - 1461 , - 1038 , - 955 , - 5292 , - 1809 , - 26 , - 4023 , - 1560 , - 2157 , - 4454 , - 1651 , - 3268 , - 2505 , - 3442 , - 4719 , - 4976 , - 2853 , - 2430 , - 2347 , - 1244 , - 3201 , - 1418 , - 5415 , - 2952 , - 3549 , - 406 , - 3043 , - 4660 , - 3897 , - 4834 , - 671 , - 928 , - 4245 , - 3822 , - 3739 , - 2636 , - 4593 , - 2810 , - 1367 , - 4344 , - 4941 , - 1798 , - 4435 , - 612 , - 5289 , - 786 , - 2063 , - 2320 , - 197 , - 5214 , - 5131 , - 4028 , - 545 , - 4202 , - 2759 , - 296 , - 893 , - 3190 , - 387 , - 2004 , - 1241 , - 2178 , - 3455 , - 3712 , - 1589 , - 1166 , - 1083 , - 5420 , - 1937 , - 154 , - 4151 , - 1688 , - 2285 , - 4582 , - 1779 , - 3396 , - 2633 , - 3570 , - 4847 , - 5104 , - 2981 , - 2558 , - 2475 , - 1372 , - 3329 , - 1546 , - 103 , - 3080 , - 3677 , - 534 , - 3171 , - 4788 , - 4025 , - 4962 , - 799 , - 1056 , - 4373 , - 3950 , - 3867 , - 2764 , - 4721 , - 2938 , - 1495 , - 4472 , - 5069 , - 1926 , - 4563 , - 740 , - 5417 , - 914 , - 2191 , - 2448 , - 325 , - 5342 , - 5259 , - 4156 , - 673 , - 4330 , - 2887 , - 424 , - 1021 , - 3318 , - 515 , - 2132 , - 1369 , - 2306 , - 3583 , - 3840 , - 1717 , - 1294 , - 1211 , - 108 , - 2065 , - 282 , - 4279 , - 1816 , - 2413 , - 4710 , - 1907 , - 3524 , - 2761 , - 3698 , - 4975 , - 5232 , - 3109 , - 2686 , - 2603 , - 1500 , - 3457 , - 1674 , - 231 , - 3208 , - 3805 , - 662 , - 3299 , - 4916 , - 4153 , - 5090 , - 927 , - 1184 , - 4501 , - 4078 , - 3995 , - 2892 , - 4849 , - 3066 , - 1623 , - 4600 , - 5197 , - 2054 , - 4691 , - 868 , - 105 , - 1042 , - 2319 , - 2576 , - 453 , - 30 , - 5387 , - 4284 , - 801 , - 4458 , - 3015 , - 552 , - 1149 , - 3446 , - 643 , - 2260 , - 1497 , - 2434 , - 3711 , - 3968 , - 1845 , - 1422 , - 1339 , - 236 , - 2193 , - 410 , - 4407 , - 1944 , - 2541 , - 4838 , - 2035 , - 3652 , - 2889 , - 3826 , - 5103 , - 5360 , - 3237 , - 2814 , - 2731 , - 1628 , - 3585 , - 1802 , - 359 , - 3336 , - 3933 , - 790 , - 3427 , - 5044 , - 4281 , - 5218 , - 1055 , - 1312 , - 4629 , - 4206 , - 4123 , - 3020 , - 4977 , - 3194 , - 1751 , - 4728 , - 5325 , - 2182 , - 4819 , - 996 , - 233 , - 1170 , - 2447 , - 2704 , - 581 , - 158 , - 75 , - 4412 , - 929 , - 4586 , - 3143 , - 680 , - 1277 , - 3574 , - 771 , - 2388 , - 1625 , - 2562 , - 3839 , - 4096 , - 1973 , - 1550 , - 1467 , - 364 , - 2321 , - 538 , - 4535 , - 2072 , - 2669 , - 4966 , - 2163 , - 3780 , - 3017 , - 3954 , - 5231 , - 48 , - 3365 , - 2942 , - 2859 , - 1756 , - 3713 , - 1930 , - 487 , - 3464 , - 4061 , - 918 , - 3555 , - 5172 , - 4409 , - 5346 , - 1183 , - 1440 , - 4757 , - 4334 , - 4251 , - 3148 , - 5105 , - 3322 , - 1879 , - 4856 , - 13 , - 2310 , - 4947 , - 1124 , - 361 , - 1298 , - 2575 , - 2832 , - 709 , - 286 , - 203 , - 4540 , - 1057 , - 4714 , - 3271 , - 808 , - 1405 , - 3702 , - 899 , - 2516 , - 1753 , - 2690 , - 3967 , - 4224 , - 2101 , - 1678 , - 1595 , - 492 , - 2449 , - 666 , - 4663 , - 2200 , - 2797 , - 5094 , - 2291 , - 3908 , - 3145 , - 4082 , - 5359 , - 176 , - 3493 , - 3070 , - 2987 , - 1884 , - 3841 , - 2058 , - 615 , - 3592 , - 4189 , - 1046 , - 3683 , - 5300 , - 4537 , - 34 , - 1311 , - 1568 , - 4885 , - 4462 , - 4379 , - 3276 , - 5233 , - 3450 , - 2007 , - 4984 , - 141 , - 2438 , - 5075 , - 1252 , - 489 , - 1426 , - 2703 , - 2960 , - 837 , - 414 , - 331 , - 4668 , - 1185 , - 4842 , - 3399 , - 936 , - 1533 , - 3830 , - 1027 , - 2644 , - 1881 , - 2818 , - 4095 , - 4352 , - 2229 , - 1806 , - 1723 , - 620 , - 2577 , - 794 , - 4791 , - 2328 , - 2925 , - 5222 , - 2419 , - 4036 , - 3273 , - 4210 , - 47 , - 304 , - 3621 , - 3198 , - 3115 , - 2012 , - 3969 , - 2186 , - 743 , - 3720 , - 4317 , - 1174 , - 3811 , - 5428 , - 4665 , - 162 , - 1439 , - 1696 , - 5013 , - 4590 , - 4507 , - 3404 , - 5361 , - 3578 , - 2135 , - 5112 , - 269 , - 2566 , - 5203 , - 1380 , - 617 , - 1554 , - 2831 , - 3088 , - 965 , - 542 , - 459 , - 4796 , - 1313 , - 4970 , - 3527 , - 1064 , - 1661 , - 3958 , - 1155 , - 2772 , - 2009 , - 2946 , - 4223 , - 4480 , - 2357 , - 1934 , - 1851 , - 748 , - 2705 , - 922 , - 4919 , - 2456 , - 3053 , - 5350 , - 2547 , - 4164 , - 3401 , - 4338 , - 175 , - 432 , - 3749 , - 3326 , - 3243 , - 2140 , - 4097 , - 2314 , - 871 , - 3848 , - 4445 , - 1302 , - 3939 , - 116 , - 4793 , - 290 , - 1567 , - 1824 , - 5141 , - 4718 , - 4635 , - 3532 , - 49 , - 3706 , - 2263 , - 5240 , - 397 , - 2694 , - 5331 , - 1508 , - 745 , - 1682 , - 2959 , - 3216 , - 1093 , - 670 , - 587 , - 4924 , - 1441 , - 5098 , - 3655 , - 1192 , - 1789 , - 4086 , - 1283 , - 2900 , - 2137 , - 3074 , - 4351 , - 4608 , - 2485 , - 2062 , - 1979 , - 876 , - 2833 , - 1050 , - 5047 , - 2584 , - 3181 , - 38 , - 2675 , - 4292 , - 3529 , - 4466 , - 303 , - 560 , - 3877 , - 3454 , - 3371 , - 2268 , - 4225 , - 2442 , - 999 , - 3976 , - 4573 , - 1430 , - 4067 , - 244 , - 4921 , - 418 , - 1695 , - 1952 , - 5269 , - 4846 , - 4763 , - 3660 , - 177 , - 3834 , - 2391 , - 5368 , - 525 , - 2822 , - 19 , - 1636 , - 873 , - 1810 , - 3087 , - 3344 , - 1221 , - 798 , - 715 , - 5052 , - 1569 , - 5226 , - 3783 , - 1320 , - 1917 , - 4214 , - 1411 , - 3028 , - 2265 , - 3202 , - 4479 , - 4736 , - 2613 , - 2190 , - 2107 , - 1004 , - 2961 , - 1178 , - 5175 , - 2712 , - 3309 , - 166 , - 2803 , - 4420 , - 3657 , - 4594 , - 431 , - 688 , - 4005 , - 3582 , - 3499 , - 2396 , - 4353 , - 2570 , - 1127 , - 4104 , - 4701 , - 1558 , - 4195 , - 372 , - 5049 , - 546 , - 1823 , - 2080 , - 5397 , - 4974 , - 4891 , - 3788 , - 305 , - 3962 , - 2519 , - 56 , - 653 , - 2950 , - 147 , - 1764 , - 1001 , - 1938 , - 3215 , - 3472 , - 1349 , - 926 , - 843 , - 5180 , - 1697 , - 5354 , - 3911 , - 1448 , - 2045 , - 4342 , - 1539 , - 3156 , - 2393 , - 3330 , - 4607 , - 4864 , - 2741 , - 2318 , - 2235 , - 1132 , - 3089 , - 1306 , - 5303 , - 2840 , - 3437 , - 294 , - 2931 , - 4548 , - 3785 , - 4722 , - 559 , - 816 , - 4133 , - 3710 , - 3627 , - 2524 , - 4481 , - 2698 , - 1255 , - 4232 , - 4829 , - 1686 , - 4323 , - 500 , - 5177 , - 674 , - 1951 , - 2208 , - 85 , - 5102 , - 5019 , - 3916 , - 433 , - 4090 , - 2647 , - 184 , - 781 , - 3078 , - 275 , - 1892 , - 1129 , - 2066 , - 3343 , - 3600 , - 1477 , - 1054 , - 971 , - 5308 , - 1825 , - 42 , - 4039 , - 1576 , - 2173 , - 4470 , - 1667 , - 3284 , - 2521 , - 3458 , - 4735 , - 4992 , - 2869 , - 2446 , - 2363 , - 1260 , - 3217 , - 1434 , - 5431 , - 2968 , - 3565 , - 422 , - 3059 , - 4676 , - 3913 , - 4850 , - 687 , - 944 , - 4261 , - 3838 , - 3755 , - 2652 , - 4609 , - 2826 , - 1383 , - 4360 , - 4957 , - 1814 , - 4451 , - 628 , - 5305 , - 802 , - 2079 , - 2336 , - 213 , - 5230 , - 5147 , - 4044 , - 561 , - 4218 , - 2775 , - 312 , - 909 , - 3206 , - 403 , - 2020 , - 1257 , - 2194 , - 3471 , - 3728 , - 1605 , - 1182 , - 1099 , - 5436 , - 1953 , - 170 , - 4167 , - 1704 , - 2301 , - 4598 , - 1795 , - 3412 , - 2649 , - 3586 , - 4863 , - 5120 , - 2997 , - 2574 , - 2491 , - 1388 , - 3345 , - 1562 , - 119 , - 3096 , - 3693 , - 550 , - 3187 , - 4804 , - 4041 , - 4978 , - 815 , - 1072 , - 4389 , - 3966 , - 3883 , - 2780 , - 4737 , - 2954 , - 1511 , - 4488 , - 5085 , - 1942 , - 4579 , - 756 , - 5433 , - 930 , - 2207 , - 2464 , - 341 , - 5358 , - 5275 , - 4172 , - 689 , - 4346 , - 2903 , - 440 , - 1037 , - 3334 , - 531 , - 2148 , - 1385 , - 2322 , - 3599 , - 3856 , - 1733 , - 1310 , - 1227 , - 124 , - 2081 , - 298 , - 4295 , - 1832 , - 2429 , - 4726 , - 1923 , - 3540 , - 2777 , - 3714 , - 4991 , - 5248 , - 3125 , - 2702 , - 2619 , - 1516 , - 3473 , - 1690 , - 247 , - 3224 , - 3821 , - 678 , - 3315 , - 4932 , - 4169 , - 5106 , - 943 , - 1200 , - 4517 , - 4094 , - 4011 , - 2908 , - 4865 , - 3082 , - 1639 , - 4616 , - 5213 , - 2070 , - 4707 , - 884 , - 121 , - 1058 , - 2335 , - 2592 , - 469 , - 46 , - 5403 , - 4300 , - 817 , - 4474 , - 3031 , - 568 , - 1165 , - 3462 , - 659 , - 2276 , - 1513 , - 2450 , - 3727 , - 3984 , - 1861 , - 1438 , - 1355 , - 252 , - 2209 , - 426 , - 4423 , - 1960 , - 2557 , - 4854 , - 2051 , - 3668 , - 2905 , - 3842 , - 5119 , - 5376 , - 3253 , - 2830 , - 2747 , - 1644 , - 3601 , - 1818 , - 375 , - 3352 , - 3949 , - 806 , - 3443 , - 5060 , - 4297 , - 5234 , - 1071 , - 1328 , - 4645 , - 4222 , - 4139 , - 3036 , - 4993 , - 3210 , - 1767 , - 4744 , - 5341 , - 2198 , - 4835 , - 1012 , - 249 , - 1186 , - 2463 , - 2720 , - 597 , - 174 , - 91 , - 4428 , - 945 , - 4602 , - 3159 , - 696 , - 1293 , - 3590 , - 787 , - 2404 , - 1641 , - 2578 , - 3855 , - 4112 , - 1989 , - 1566 , - 1483 , - 380 , - 2337 , - 554 , - 4551 , - 2088 , - 2685 , - 4982 , - 2179 , - 3796 , - 3033 , - 3970 , - 5247 , - 64 , - 3381 , - 2958 , - 2875 , - 1772 , - 3729 , - 1946 , - 503 , - 3480 , - 4077 , - 934 , - 3571 , - 5188 , - 4425 , - 5362 , - 1199 , - 1456 , - 4773 , - 4350 , - 4267 , - 3164 , - 5121 , - 3338 , - 1895 , - 4872 , - 29 , - 2326 , - 4963 , - 1140 , - 377 , - 1314 , - 2591 , - 2848 , - 725 , - 302 , - 219 , - 4556 , - 1073 , - 4730 , - 3287 , - 824 , - 1421 , - 3718 , - 915 , - 2532 , - 1769 , - 2706 , - 3983 , - 4240 , - 2117 , - 1694 , - 1611 , - 508 , - 2465 , - 682 , - 4679 , - 2216 , - 2813 , - 5110 , - 2307 , - 3924 , - 3161 , - 4098 , - 5375 , - 192 , - 3509 , - 3086 , - 3003 , - 1900 , - 3857 , - 2074 , - 631 , - 3608 , - 4205 , - 1062 , - 3699 , - 5316 , - 4553 , - 50 , - 1327 , - 1584 , - 4901 , - 4478 , - 4395 , - 3292 , - 5249 , - 3466 , - 2023 , - 5000 , - 157 , - 2454 , - 5091 , - 1268 , - 505 , - 1442 , - 2719 , - 2976 , - 853 , - 430 , - 347 , - 4684 , - 1201 , - 4858 , - 3415 , - 952 , - 1549 , - 3846 , - 1043 , - 2660 , - 1897 , - 2834 , - 4111 , - 4368 , - 2245 , - 1822 , - 1739 , - 636 , - 2593 , - 810 , - 4807 , - 2344 , - 2941 , - 5238 , - 2435 , - 4052 , - 3289 , - 4226 , - 63 , - 320 , - 3637 , - 3214 , - 3131 , - 2028 , - 3985 , - 2202 , - 759 , - 3736 , - 4333 , - 1190 , - 3827 , - 4 , - 4681 , - 178 , - 1455 , - 1712 , - 5029 , - 4606 , - 4523 , - 3420 , - 5377 , - 3594 , - 2151 , - 5128 , - 285 , - 2582 , - 5219 , - 1396 , - 633 , - 1570 , - 2847 , - 3104 , - 981 , - 558 , - 475 , - 4812 , - 1329 , - 4986 , - 3543 , - 1080 , - 1677 , - 3974 , - 1171 , - 2788 , - 2025 , - 2962 , - 4239 , - 4496 , - 2373 , - 1950 , - 1867 , - 764 , - 2721 , - 938 , - 4935 , - 2472 , - 3069 , - 5366 , - 2563 , - 4180 , - 3417 , - 4354 , - 191 , - 448 , - 3765 , - 3342 , - 3259 , - 2156 , - 4113 , - 2330 , - 887 , - 3864 , - 4461 , - 1318 , - 3955 , - 132 , - 4809 , - 306 , - 1583 , - 1840 , - 5157 , - 4734 , - 4651 , - 3548 , - 65 , - 3722 , - 2279 , - 5256 , - 413 , - 2710 , - 5347 , - 1524 , - 761 , - 1698 , - 2975 , - 3232 , - 1109 , - 686 , - 603 , - 4940 , - 1457 , - 5114 , - 3671 , - 1208 , - 1805 , - 4102 , - 1299 , - 2916 , - 2153 , - 3090 , - 4367 , - 4624 , - 2501 , - 2078 , - 1995 , - 892 , - 2849 , - 1066 , - 5063 , - 2600 , - 3197 , - 54 , - 2691 , - 4308 , - 3545 , - 4482 , - 319 , - 576 , - 3893 , - 3470 , - 3387 , - 2284 , - 4241 , - 2458 , - 1015 , - 3992 , - 4589 , - 1446 , - 4083 , - 260 , - 4937 , - 434 , - 1711 , - 1968 , - 5285 , - 4862 , - 4779 , - 3676 , - 193 , - 3850 , - 2407 , - 5384 , - 541 , - 2838 , - 35 , - 1652 , - 889 , - 1826 , - 3103 , - 3360 , - 1237 , - 814 , - 731 , - 5068 , - 1585 , - 5242 , - 3799 , - 1336 , - 1933 , - 4230 , - 1427 , - 3044 , - 2281 , - 3218 , - 4495 , - 4752 , - 2629 , - 2206 , - 2123 , - 1020 , - 2977 , - 1194 , - 5191 , - 2728 , - 3325 , - 182 , - 2819 , - 4436 , - 3673 , - 4610 , - 447 , - 704 , - 4021 , - 3598 , - 3515 , - 2412 , - 4369 , - 2586 , - 1143 , - 4120 , - 4717 , - 1574 , - 4211 , - 388 , - 5065 , - 562 , - 1839 , - 2096 , - 5413 , - 4990 , - 4907 , - 3804 , - 321 , - 3978 , - 2535 , - 72 , - 669 , - 2966 , - 163 , - 1780 , - 1017 , - 1954 , - 3231 , - 3488 , - 1365 , - 942 , - 859 , - 5196 , - 1713 , - 5370 , - 3927 , - 1464 , - 2061 , - 4358 , - 1555 , - 3172 , - 2409 , - 3346 , - 4623 , - 4880 , - 2757 , - 2334 , - 2251 , - 1148 , - 3105 , - 1322 , - 5319 , - 2856 , - 3453 , - 310 , - 2947 , - 4564 , - 3801 , - 4738 , - 575 , - 832 , - 4149 , - 3726 , - 3643 , - 2540 , - 4497 , - 2714 , - 1271 , - 4248 , - 4845 , - 1702 , - 4339 , - 516 , - 5193 , - 690 , - 1967 , - 2224 , - 101 , - 5118 , - 5035 , - 3932 , - 449 , - 4106 , - 2663 , - 200 , - 797 , - 3094 , - 291 , - 1908 , - 1145 , - 2082 , - 3359 , - 3616 , - 1493 , - 1070 , - 987 , - 5324 , - 1841 , - 58 , - 4055 , - 1592 , - 2189 , - 4486 , - 1683 , - 3300 , - 2537 , - 3474 , - 4751 , - 5008 , - 2885 , - 2462 , - 2379 , - 1276 , - 3233 , - 1450 , - 7 , - 2984 , - 3581 , - 438 , - 3075 , - 4692 , - 3929 , - 4866 , - 703 , - 960 , - 4277 , - 3854 , - 3771 , - 2668 , - 4625 , - 2842 , - 1399 , - 4376 , - 4973 , - 1830 , - 4467 , - 644 , - 5321 , - 818 , - 2095 , - 2352 , - 229 , - 5246 , - 5163 , - 4060 , - 577 , - 4234 , - 2791 , - 328 , - 925 , - 3222 , - 419 , - 2036 , - 1273 , - 2210 , - 3487 , - 3744 , - 1621 , - 1198 , - 1115 , - 12 , - 1969 , - 186 , - 4183 , - 1720 , - 2317 , - 4614 , - 1811 , - 3428 , - 2665 , - 3602 , - 4879 , - 5136 , - 3013 , - 2590 , - 2507 , - 1404 , - 3361 , - 1578 , - 135 , - 3112 , - 3709 , - 566 , - 3203 , - 4820 , - 4057 , - 4994 , - 831 , - 1088 , - 4405 , - 3982 , - 3899 , - 2796 , - 4753 , - 2970 , - 1527 , - 4504 , - 5101 , - 1958 , - 4595 , - 772 , - 9 , - 946 , - 2223 , - 2480 , - 357 , - 5374 , - 5291 , - 4188 , - 705 , - 4362 , - 2919 , - 456 , - 1053 , - 3350 , - 547 , - 2164 , - 1401 , - 2338 , - 3615 , - 3872 , - 1749 , - 1326 , - 1243 , - 140 , - 2097 , - 314 , - 4311 , - 1848 , - 2445 , - 4742 , - 1939 , - 3556 , - 2793 , - 3730 , - 5007 , - 5264 , - 3141 , - 2718 , - 2635 , - 1532 , - 3489 , - 1706 , - 263 , - 3240 , - 3837 , - 694 , - 3331 , - 4948 , - 4185 , - 5122 , - 959 , - 1216 , - 4533 , - 4110 , - 4027 , - 2924 , - 4881 , - 3098 , - 1655 , - 4632 , - 5229 , - 2086 , - 4723 , - 900 , - 137 , - 1074 , - 2351 , - 2608 , - 485 , - 62 , - 5419 , - 4316 , - 833 , - 4490 , - 3047 , - 584 , - 1181 , - 3478 , - 675 , - 2292 , - 1529 , - 2466 , - 3743 , - 4000 , - 1877 , - 1454 , - 1371 , - 268 , - 2225 , - 442 , - 4439 , - 1976 , - 2573 , - 4870 , - 2067 , - 3684 , - 2921 , - 3858 , - 5135 , - 5392 , - 3269 , - 2846 , - 2763 , - 1660 , - 3617 , - 1834 , - 391 , - 3368 , - 3965 , - 822 , - 3459 , - 5076 , - 4313 , - 5250 , - 1087 , - 1344 , - 4661 , - 4238 , - 4155 , - 3052 , - 5009 , - 3226 , - 1783 , - 4760 , - 5357 , - 2214 , - 4851 , - 1028 , - 265 , - 1202 , - 2479 , - 2736 , - 613 , - 190 , - 107 , - 4444 , - 961 , - 4618 , - 3175 , - 712 , - 1309 , - 3606 , - 803 , - 2420 , - 1657 , - 2594 , - 3871 , - 4128 , - 2005 , - 1582 , - 1499 , - 396 , - 2353 , - 570 , - 4567 , - 2104 , - 2701 , - 4998 , - 2195 , - 3812 , - 3049 , - 3986 , - 5263 , - 80 , - 3397 , - 2974 , - 2891 , - 1788 , - 3745 , - 1962 , - 519 , - 3496 , - 4093 , - 950 , - 3587 , - 5204 , - 4441 , - 5378 , - 1215 , - 1472 , - 4789 , - 4366 , - 4283 , - 3180 , - 5137 , - 3354 , - 1911 , - 4888 , - 45 , - 2342 , - 4979 , - 1156 , - 393 , - 1330 , - 2607 , - 2864 , - 741 , - 318 , - 235 , - 4572 , - 1089 , - 4746 , - 3303 , - 840 , - 1437 , - 3734 , - 931 , - 2548 , - 1785 , - 2722 , - 3999 , - 4256 , - 2133 , - 1710 , - 1627 , - 524 , - 2481 , - 698 , - 4695 , - 2232 , - 2829 , - 5126 , - 2323 , - 3940 , - 3177 , - 4114 , - 5391 , - 208 , - 3525 , - 3102 , - 3019 , - 1916 , - 3873 , - 2090 , - 647 , - 3624 , - 4221 , - 1078 , - 3715 , - 5332 , - 4569 , - 66 , - 1343 , - 1600 , - 4917 , - 4494 , - 4411 , - 3308 , - 5265 , - 3482 , - 2039 , - 5016 , - 173 , - 2470 , - 5107 , - 1284 , - 521 , - 1458 , - 2735 , - 2992 , - 869 , - 446 , - 363 , - 4700 , - 1217 , - 4874 , - 3431 , - 968 , - 1565 , - 3862 , - 1059 , - 2676 , - 1913 , - 2850 , - 4127 , - 4384 , - 2261 , - 1838 , - 1755 , - 652 , - 2609 , - 826 , - 4823 , - 2360 , - 2957 , - 5254 , - 2451 , - 4068 , - 3305 , - 4242 , - 79 , - 336 , - 3653 , - 3230 , - 3147 , - 2044 , - 4001 , - 2218 , - 775 , - 3752 , - 4349 , - 1206 , - 3843 , - 20 , - 4697 , - 194 , - 1471 , - 1728 , - 5045 , - 4622 , - 4539 , - 3436 , - 5393 , - 3610 , - 2167 , - 5144 , - 301 , - 2598 , - 5235 , - 1412 , - 649 , - 1586 , - 2863 , - 3120 , - 997 , - 574 , - 491 , - 4828 , - 1345 , - 5002 , - 3559 , - 1096 , - 1693 , - 3990 , - 1187 , - 2804 , - 2041 , - 2978 , - 4255 , - 4512 , - 2389 , - 1966 , - 1883 , - 780 , - 2737 , - 954 , - 4951 , - 2488 , - 3085 , - 5382 , - 2579 , - 4196 , - 3433 , - 4370 , - 207 , - 464 , - 3781 , - 3358 , - 3275 , - 2172 , - 4129 , - 2346 , - 903 , - 3880 , - 4477 , - 1334 , - 3971 , - 148 , - 4825 , - 322 , - 1599 , - 1856 , - 5173 , - 4750 , - 4667 , - 3564 , - 81 , - 3738 , - 2295 , - 5272 , - 429 , - 2726 , - 5363 , - 1540 , - 777 , - 1714 , - 2991 , - 3248 , - 1125 , - 702 , - 619 , - 4956 , - 1473 , - 5130 , - 3687 , - 1224 , - 1821 , - 4118 , - 1315 , - 2932 , - 2169 , - 3106 , - 4383 , - 4640 , - 2517 , - 2094 , - 2011 , - 908 , - 2865 , - 1082 , - 5079 , - 2616 , - 3213 , - 70 , - 2707 , - 4324 , - 3561 , - 4498 , - 335 , - 592 , - 3909 , - 3486 , - 3403 , - 2300 , - 4257 , - 2474 , - 1031 , - 4008 , - 4605 , - 1462 , - 4099 , - 276 , - 4953 , - 450 , - 1727 , - 1984 , - 5301 , - 4878 , - 4795 , - 3692 , - 209 , - 3866 , - 2423 , - 5400 , - 557 , - 2854 , - 51 , - 1668 , - 905 , - 1842 , - 3119 , - 3376 , - 1253 , - 830 , - 747 , - 5084 , - 1601 , - 5258 , - 3815 , - 1352 , - 1949 , - 4246 , - 1443 , - 3060 , - 2297 , - 3234 , - 4511 , - 4768 , - 2645 , - 2222 , - 2139 , - 1036 , - 2993 , - 1210 , - 5207 , - 2744 , - 3341 , - 198 , - 2835 , - 4452 , - 3689 , - 4626 , - 463 , - 720 , - 4037 , - 3614 , - 3531 , - 2428 , - 4385 , - 2602 , - 1159 , - 4136 , - 4733 , - 1590 , - 4227 , - 404 , - 5081 , - 578 , - 1855 , - 2112 , - 5429 , - 5006 , - 4923 , - 3820 , - 337 , - 3994 , - 2551 , - 88 , - 685 , - 2982 , - 179 , - 1796 , - 1033 , - 1970 , - 3247 , - 3504 , - 1381 , - 958 , - 875 , - 5212 , - 1729 , - 5386 , - 3943 , - 1480 , - 2077 , - 4374 , - 1571 , - 3188 , - 2425 , - 3362 , - 4639 , - 4896 , - 2773 , - 2350 , - 2267 , - 1164 , - 3121 , - 1338 , - 5335 , - 2872 , - 3469 , - 326 , - 2963 , - 4580 , - 3817 , - 4754 , - 591 , - 848 , - 4165 , - 3742 , - 3659 , - 2556 , - 4513 , - 2730 , - 1287 , - 4264 , - 4861 , - 1718 , - 4355 , - 532 , - 5209 , - 706 , - 1983 , - 2240 , - 117 , - 5134 , - 5051 , - 3948 , - 465 , - 4122 , - 2679 , - 216 , - 813 , - 3110 , - 307 , - 1924 , - 1161 , - 2098 , - 3375 , - 3632 , - 1509 , - 1086 , - 1003 , - 5340 , - 1857 , - 74 , - 4071 , - 1608 , - 2205 , - 4502 , - 1699 , - 3316 , - 2553 , - 3490 , - 4767 , - 5024 , - 2901 , - 2478 , - 2395 , - 1292 , - 3249 , - 1466 , - 23 , - 3000 , - 3597 , - 454 , - 3091 , - 4708 , - 3945 , - 4882 , - 719 , - 976 , - 4293 , - 3870 , - 3787 , - 2684 , - 4641 , - 2858 , - 1415 , - 4392 , - 4989 , - 1846 , - 4483 , - 660 , - 5337 , - 834 , - 2111 , - 2368 , - 245 , - 5262 , - 5179 , - 4076 , - 593 , - 4250 , - 2807 , - 344 , - 941 , - 3238 , - 435 , - 2052 , - 1289 , - 2226 , - 3503 , - 3760 , - 1637 , - 1214 , - 1131 , - 28 , - 1985 , - 202 , - 4199 , - 1736 , - 2333 , - 4630 , - 1827 , - 3444 , - 2681 , - 3618 , - 4895 , - 5152 , - 3029 , - 2606 , - 2523 , - 1420 , - 3377 , - 1594 , - 151 , - 3128 , - 3725 , - 582 , - 3219 , - 4836 , - 4073 , - 5010 , - 847 , - 1104 , - 4421 , - 3998 , - 3915 , - 2812 , - 4769 , - 2986 , - 1543 , - 4520 , - 5117 , - 1974 , - 4611 , - 788 , - 25 , - 962 , - 2239 , - 2496 , - 373 , - 5390 , - 5307 , - 4204 , - 721 , - 4378 , - 2935 , - 472 , - 1069 , - 3366 , - 563 , - 2180 , - 1417 , - 2354 , - 3631 , - 3888 , - 1765 , - 1342 , - 1259 , - 156 , - 2113 , - 330 , - 4327 , - 1864 , - 2461 , - 4758 , - 1955 , - 3572 , - 2809 , - 3746 , - 5023 , - 5280 , - 3157 , - 2734 , - 2651 , - 1548 , - 3505 , - 1722 , - 279 , - 3256 , - 3853 , - 710 , - 3347 , - 4964 , - 4201 , - 5138 , - 975 , - 1232 , - 4549 , - 4126 , - 4043 , - 2940 , - 4897 , - 3114 , - 1671 , - 4648 , - 5245 , - 2102 , - 4739 , - 916 , - 153 , - 1090 , - 2367 , - 2624 , - 501 , - 78 , - 5435 , - 4332 , - 849 , - 4506 , - 3063 , - 600 , - 1197 , - 3494 , - 691 , - 2308 , - 1545 , - 2482 , - 3759 , - 4016 , - 1893 , - 1470 , - 1387 , - 284 , - 2241 , - 458 , - 4455 , - 1992 , - 2589 , - 4886 , - 2083 , - 3700 , - 2937 , - 3874 , - 5151 , - 5408 , - 3285 , - 2862 , - 2779 , - 1676 , - 3633 , - 1850 , - 407 , - 3384 , - 3981 , - 838 , - 3475 , - 5092 , - 4329 , - 5266 , - 1103 , - 1360 , - 4677 , - 4254 , - 4171 , - 3068 , - 5025 , - 3242 , - 1799 , - 4776 , - 5373 , - 2230 , - 4867 , - 1044 , - 281 , - 1218 , - 2495 , - 2752 , - 629 , - 206 , - 123 , - 4460 , - 977 , - 4634 , - 3191 , - 728 , - 1325 , - 3622 , - 819 , - 2436 , - 1673 , - 2610 , - 3887 , - 4144 , - 2021 , - 1598 , - 1515 , - 412 , - 2369 , - 586 , - 4583 , - 2120 , - 2717 , - 5014 , - 2211 , - 3828 , - 3065 , - 4002 , - 5279 , - 96 , - 3413 , - 2990 , - 2907 , - 1804 , - 3761 , - 1978 , - 535 , - 3512 , - 4109 , - 966 , - 3603 , - 5220 , - 4457 , - 5394 , - 1231 , - 1488 , - 4805 , - 4382 , - 4299 , - 3196 , - 5153 , - 3370 , - 1927 , - 4904 , - 61 , - 2358 , - 4995 , - 1172 , - 409 , - 1346 , - 2623 , - 2880 , - 757 , - 334 , - 251 , - 4588 , - 1105 , - 4762 , - 3319 , - 856 , - 1453 , - 3750 , - 947 , - 2564 , - 1801 , - 2738 , - 4015 , - 4272 , - 2149 , - 1726 , - 1643 , - 540 , - 2497 , - 714 , - 4711 , - 2248 , - 2845 , - 5142 , - 2339 , - 3956 , - 3193 , - 4130 , - 5407 , - 224 , - 3541 , - 3118 , - 3035 , - 1932 , - 3889 , - 2106 , - 663 , - 3640 , - 4237 , - 1094 , - 3731 , - 5348 , - 4585 , - 82 , - 1359 , - 1616 , - 4933 , - 4510 , - 4427 , - 3324 , - 5281 , - 3498 , - 2055 , - 5032 , - 189 , - 2486 , - 5123 , - 1300 , - 537 , - 1474 , - 2751 , - 3008 , - 885 , - 462 , - 379 , - 4716 , - 1233 , - 4890 , - 3447 , - 984 , - 1581 , - 3878 , - 1075 , - 2692 , - 1929 , - 2866 , - 4143 , - 4400 , - 2277 , - 1854 , - 1771 , - 668 , - 2625 , - 842 , - 4839 , - 2376 , - 2973 , - 5270 , - 2467 , - 4084 , - 3321 , - 4258 , - 95 , - 352 , - 3669 , - 3246 , - 3163 , - 2060 , - 4017 , - 2234 , - 791 , - 3768 , - 4365 , - 1222 , - 3859 , - 36 , - 4713 , - 210 , - 1487 , - 1744 , - 5061 , - 4638 , - 4555 , - 3452 , - 5409 , - 3626 , - 2183 , - 5160 , - 317 , - 2614 , - 5251 , - 1428 , - 665 , - 1602 , - 2879 , - 3136 , - 1013 , - 590 , - 507 , - 4844 , - 1361 , - 5018 , - 3575 , - 1112 , - 1709 , - 4006 , - 1203 , - 2820 , - 2057 , - 2994 , - 4271 , - 4528 , - 2405 , - 1982 , - 1899 , - 796 , - 2753 , - 970 , - 4967 , - 2504 , - 3101 , - 5398 , - 2595 , - 4212 , - 3449 , - 4386 , - 223 , - 480 , - 3797 , - 3374 , - 3291 , - 2188 , - 4145 , - 2362 , - 919 , - 3896 , - 4493 , - 1350 , - 3987 , - 164 , - 4841 , - 338 , - 1615 , - 1872 , - 5189 , - 4766 , - 4683 , - 3580 , - 97 , - 3754 , - 2311 , - 5288 , - 445 , - 2742 , - 5379 , - 1556 , - 793 , - 1730 , - 3007 , - 3264 , - 1141 , - 718 , - 635 , - 4972 , - 1489 , - 5146 , - 3703 , - 1240 , - 1837 , - 4134 , - 1331 , - 2948 , - 2185 , - 3122 , - 4399 , - 4656 , - 2533 , - 2110 , - 2027 , - 924 , - 2881 , - 1098 , - 5095 , - 2632 , - 3229 , - 86 , - 2723 , - 4340 , - 3577 , - 4514 , - 351 , - 608 , - 3925 , - 3502 , - 3419 , - 2316 , - 4273 , - 2490 , - 1047 , - 4024 , - 4621 , - 1478 , - 4115 , - 292 , - 4969 , - 466 , - 1743 , - 2000 , - 5317 , - 4894 , - 4811 , - 3708 , - 225 , - 3882 , - 2439 , - 5416 , - 573 , - 2870 , - 67 , - 1684 , - 921 , - 1858 , - 3135 , - 3392 , - 1269 , - 846 , - 763 , - 5100 , - 1617 , - 5274 , - 3831 , - 1368 , - 1965 , - 4262 , - 1459 , - 3076 , - 2313 , - 3250 , - 4527 , - 4784 , - 2661 , - 2238 , - 2155 , - 1052 , - 3009 , - 1226 , - 5223 , - 2760 , - 3357 , - 214 , - 2851 , - 4468 , - 3705 , - 4642 , - 479 , - 736 , - 4053 , - 3630 , - 3547 , - 2444 , - 4401 , - 2618 , - 1175 , - 4152 , - 4749 , - 1606 , - 4243 , - 420 , - 5097 , - 594 , - 1871 , - 2128 , - 5 , - 5022 , - 4939 , - 3836 , - 353 , - 4010 , - 2567 , - 104 , - 701 , - 2998 , - 195 , - 1812 , - 1049 , - 1986 , - 3263 , - 3520 , - 1397 , - 974 , - 891 , - 5228 , - 1745 , - 5402 , - 3959 , - 1496 , - 2093 , - 4390 , - 1587 , - 3204 , - 2441 , - 3378 , - 4655 , - 4912 , - 2789 , - 2366 , - 2283 , - 1180 , - 3137 , - 1354 , - 5351 , - 2888 , - 3485 , - 342 , - 2979 , - 4596 , - 3833 , - 4770 , - 607 , - 864 , - 4181 , - 3758 , - 3675 , - 2572 , - 4529 , - 2746 , - 1303 , - 4280 , - 4877 , - 1734 , - 4371 , - 548 , - 5225 , - 722 , - 1999 , - 2256 , - 133 , - 5150 , - 5067 , - 3964 , - 481 , - 4138 , - 2695 , - 232 , - 829 , - 3126 , - 323 , - 1940 , - 1177 , - 2114 , - 3391 , - 3648 , - 1525 , - 1102 , - 1019 , - 5356 , - 1873 , - 90 , - 4087 , - 1624 , - 2221 , - 4518 , - 1715 , - 3332 , - 2569 , - 3506 , - 4783 , - 5040 , - 2917 , - 2494 , - 2411 , - 1308 , - 3265 , - 1482 , - 39 , - 3016 , - 3613 , - 470 , - 3107 , - 4724 , - 3961 , - 4898 , - 735 , - 992 , - 4309 , - 3886 , - 3803 , - 2700 , - 4657 , - 2874 , - 1431 , - 4408 , - 5005 , - 1862 , - 4499 , - 676 , - 5353 , - 850 , - 2127 , - 2384 , - 261 , - 5278 , - 5195 , - 4092 , - 609 , - 4266 , - 2823 , - 360 , - 957 , - 3254 , - 451 , - 2068 , - 1305 , - 2242 , - 3519 , - 3776 , - 1653 , - 1230 , - 1147 , - 44 , - 2001 , - 218 , - 4215 , - 1752 , - 2349 , - 4646 , - 1843 , - 3460 , - 2697 , - 3634 , - 4911 , - 5168 , - 3045 , - 2622 , - 2539 , - 1436 , - 3393 , - 1610 , - 167 , - 3144 , - 3741 , - 598 , - 3235 , - 4852 , - 4089 , - 5026 , - 863 , - 1120 , - 4437 , - 4014 , - 3931 , - 2828 , - 4785 , - 3002 , - 1559 , - 4536 , - 5133 , - 1990 , - 4627 , - 804 , - 41 , - 978 , - 2255 , - 2512 , - 389 , - 5406 , - 5323 , - 4220 , - 737 , - 4394 , - 2951 , - 488 , - 1085 , - 3382 , - 579 , - 2196 , - 1433 , - 2370 , - 3647 , - 3904 , - 1781 , - 1358 , - 1275 , - 172 , - 2129 , - 346 , - 4343 , - 1880 , - 2477 , - 4774 , - 1971 , - 3588 , - 2825 , - 3762 , - 5039 , - 5296 , - 3173 , - 2750 , - 2667 , - 1564 , - 3521 , - 1738 , - 295 , - 3272 , - 3869 , - 726 , - 3363 , - 4980 , - 4217 , - 5154 , - 991 , - 1248 , - 4565 , - 4142 , - 4059 , - 2956 , - 4913 , - 3130 , - 1687 , - 4664 , - 5261 , - 2118 , - 4755 , - 932 , - 169 , - 1106 , - 2383 , - 2640 , - 517 , - 94 , - 11 , - 4348 , - 865 , - 4522 , - 3079 , - 616 , - 1213 , - 3510 , - 707 , - 2324 , - 1561 , - 2498 , - 3775 , - 4032 , - 1909 , - 1486 , - 1403 , - 300 , - 2257 , - 474 , - 4471 , - 2008 , - 2605 , - 4902 , - 2099 , - 3716 , - 2953 , - 3890 , - 5167 , - 5424 , - 3301 , - 2878 , - 2795 , - 1692 , - 3649 , - 1866 , - 423 , - 3400 , - 3997 , - 854 , - 3491 , - 5108 , - 4345 , - 5282 , - 1119 , - 1376 , - 4693 , - 4270 , - 4187 , - 3084 , - 5041 , - 3258 , - 1815 , - 4792 , - 5389 , - 2246 , - 4883 , - 1060 , - 297 , - 1234 , - 2511 , - 2768 , - 645 , - 222 , - 139 , - 4476 , - 993 , - 4650 , - 3207 , - 744 , - 1341 , - 3638 , - 835 , - 2452 , - 1689 , - 2626 , - 3903 , - 4160 , - 2037 , - 1614 , - 1531 , - 428 , - 2385 , - 602 , - 4599 , - 2136 , - 2733 , - 5030 , - 2227 , - 3844 , - 3081 , - 4018 , - 5295 , - 112 , - 3429 , - 3006 , - 2923 , - 1820 , - 3777 , - 1994 , - 551 , - 3528 , - 4125 , - 982 , - 3619 , - 5236 , - 4473 , - 5410 , - 1247 , - 1504 , - 4821 , - 4398 , - 4315 , - 3212 , - 5169 , - 3386 , - 1943 , - 4920 , - 77 , - 2374 , - 5011 , - 1188 , - 425 , - 1362 , - 2639 , - 2896 , - 773 , - 350 , - 267 , - 4604 , - 1121 , - 4778 , - 3335 , - 872 , - 1469 , - 3766 , - 963 , - 2580 , - 1817 , - 2754 , - 4031 , - 4288 , - 2165 , - 1742 , - 1659 , - 556 , - 2513 , - 730 , - 4727 , - 2264 , - 2861 , - 5158 , - 2355 , - 3972 , - 3209 , - 4146 , - 5423 , - 240 , - 3557 , - 3134 , - 3051 , - 1948 , - 3905 , - 2122 , - 679 , - 3656 , - 4253 , - 1110 , - 3747 , - 5364 , - 4601 , - 98 , - 1375 , - 1632 , - 4949 , - 4526 , - 4443 , - 3340 , - 5297 , - 3514 , - 2071 , - 5048 , - 205 , - 2502 , - 5139 , - 1316 , - 553 , - 1490 , - 2767 , - 3024 , - 901 , - 478 , - 395 , - 4732 , - 1249 , - 4906 , - 3463 , - 1000 , - 1597 , - 3894 , - 1091 , - 2708 , - 1945 , - 2882 , - 4159 , - 4416 , - 2293 , - 1870 , - 1787 , - 684 , - 2641 , - 858 , - 4855 , - 2392 , - 2989 , - 5286 , - 2483 , - 4100 , - 3337 , - 4274 , - 111 , - 368 , - 3685 , - 3262 , - 3179 , - 2076 , - 4033 , - 2250 , - 807 , - 3784 , - 4381 , - 1238 , - 3875 , - 52 , - 4729 , - 226 , - 1503 , - 1760 , - 5077 , - 4654 , - 4571 , - 3468 , - 5425 , - 3642 , - 2199 , - 5176 , - 333 , - 2630 , - 5267 , - 1444 , - 681 , - 1618 , - 2895 , - 3152 , - 1029 , - 606 , - 523 , - 4860 , - 1377 , - 5034 , - 3591 , - 1128 , - 1725 , - 4022 , - 1219 , - 2836 , - 2073 , - 3010 , - 4287 , - 4544 , - 2421 , - 1998 , - 1915 , - 812 , - 2769 , - 986 , - 4983 , - 2520 , - 3117 , - 5414 , - 2611 , - 4228 , - 3465 , - 4402 , - 239 , - 496 , - 3813 , - 3390 , - 3307 , - 2204 , - 4161 , - 2378 , - 935 , - 3912 , - 4509 , - 1366 , - 4003 , - 180 , - 4857 , - 354 , - 1631 , - 1888 , - 5205 , - 4782 , - 4699 , - 3596 , - 113 , - 3770 , - 2327 , - 5304 , - 461 , - 2758 , - 5395 , - 1572 , - 809 , - 1746 , - 3023 , - 3280 , - 1157 , - 734 , - 651 , - 4988 , - 1505 , - 5162 , - 3719 , - 1256 , - 1853 , - 4150 , - 1347 , - 2964 , - 2201 , - 3138 , - 4415 , - 4672 , - 2549 , - 2126 , - 2043 , - 940 , - 2897 , - 1114 , - 5111 , - 2648 , - 3245 , - 102 , - 2739 , - 4356 , - 3593 , - 4530 , - 367 , - 624 , - 3941 , - 3518 , - 3435 , - 2332 , - 4289 , - 2506 , - 1063 , - 4040 , - 4637 , - 1494 , - 4131 , - 308 , - 4985 , - 482 , - 1759 , - 2016 , - 5333 , - 4910 , - 4827 , - 3724 , - 241 , - 3898 , - 2455 , - 5432 , - 589 , - 2886 , - 83 , - 1700 , - 937 , - 1874 , - 3151 , - 3408 , - 1285 , - 862 , - 779 , - 5116 , - 1633 , - 5290 , - 3847 , - 1384 , - 1981 , - 4278 , - 1475 , - 3092 , - 2329 , - 3266 , - 4543 , - 4800 , - 2677 , - 2254 , - 2171 , - 1068 , - 3025 , - 1242 , - 5239 , - 2776 , - 3373 , - 230 , - 2867 , - 4484 , - 3721 , - 4658 , - 495 , - 752 , - 4069 , - 3646 , - 3563 , - 2460 , - 4417 , - 2634 , - 1191 , - 4168 , - 4765 , - 1622 , - 4259 , - 436 , - 5113 , - 610 , - 1887 , - 2144 , - 21 , - 5038 , - 4955 , - 3852 , - 369 , - 4026 , - 2583 , - 120 , - 717 , - 3014 , - 211 , - 1828 , - 1065 , - 2002 , - 3279 , - 3536 , - 1413 , - 990 , - 907 , - 5244 , - 1761 , - 5418 , - 3975 , - 1512 , - 2109 , - 4406 , - 1603 , - 3220 , - 2457 , - 3394 , - 4671 , - 4928 , - 2805 , - 2382 , - 2299 , - 1196 , - 3153 , - 1370 , - 5367 , - 2904 , - 3501 , - 358 , - 2995 , - 4612 , - 3849 , - 4786 , - 623 , - 880 , - 4197 , - 3774 , - 3691 , - 2588 , - 4545 , - 2762 , - 1319 , - 4296 , - 4893 , - 1750 , - 4387 , - 564 , - 5241 , - 738 , - 2015 , - 2272 , - 149 , - 5166 , - 5083 , - 3980 , - 497 , - 4154 , - 2711 , - 248 , - 845 , - 3142 , - 339 , - 1956 , - 1193 , - 2130 , - 3407 , - 3664 , - 1541 , - 1118 , - 1035 , - 5372 , - 1889 , - 106 , - 4103 , - 1640 , - 2237 , - 4534 , - 1731 , - 3348 , - 2585 , - 3522 , - 4799 , - 5056 , - 2933 , - 2510 , - 2427 , - 1324 , - 3281 , - 1498 , - 55 , - 3032 , - 3629 , - 486 , - 3123 , - 4740 , - 3977 , - 4914 , - 751 , - 1008 , - 4325 , - 3902 , - 3819 , - 2716 , - 4673 , - 2890 , - 1447 , - 4424 , - 5021 , - 1878 , - 4515 , - 692 , - 5369 , - 866 , - 2143 , - 2400 , - 277 , - 5294 , - 5211 , - 4108 , - 625 , - 4282 , - 2839 , - 376 , - 973 , - 3270 , - 467 , - 2084 , - 1321 , - 2258 , - 3535 , - 3792 , - 1669 , - 1246 , - 1163 , - 60 , - 2017 , - 234 , - 4231 , - 1768 , - 2365 , - 4662 , - 1859 , - 3476 , - 2713 , - 3650 , - 4927 , - 5184 , - 3061 , - 2638 , - 2555 , - 1452 , - 3409 , - 1626 , - 183 , - 3160 , - 3757 , - 614 , - 3251 , - 4868 , - 4105 , - 5042 , - 879 , - 1136 , - 4453 , - 4030 , - 3947 , - 2844 , - 4801 , - 3018 , - 1575 , - 4552 , - 5149 , - 2006 , - 4643 , - 820 , - 57 , - 994 , - 2271 , - 2528 , - 405 , - 5422 , - 5339 , - 4236 , - 753 , - 4410 , - 2967 , - 504 , - 1101 , - 3398 , - 595 , - 2212 , - 1449 , - 2386 , - 3663 , - 3920 , - 1797 , - 1374 , - 1291 , - 188 , - 2145 , - 362 , - 4359 , - 1896 , - 2493 , - 4790 , - 1987 , - 3604 , - 2841 , - 3778 , - 5055 , - 5312 , - 3189 , - 2766 , - 2683 , - 1580 , - 3537 , - 1754 , - 311 , - 3288 , - 3885 , - 742 , - 3379 , - 4996 , - 4233 , - 5170 , - 1007 , - 1264 , - 4581 , - 4158 , - 4075 , - 2972 , - 4929 , - 3146 , - 1703 , - 4680 , - 5277 , - 2134 , - 4771 , - 948 , - 185 , - 1122 , - 2399 , - 2656 , - 533 , - 110 , - 27 , - 4364 , - 881 , - 4538 , - 3095 , - 632 , - 1229 , - 3526 , - 723 , - 2340 , - 1577 , - 2514 , - 3791 , - 4048 , - 1925 , - 1502 , - 1419 , - 316 , - 2273 , - 490 , - 4487 , - 2024 , - 2621 , - 4918 , - 2115 , - 3732 , - 2969 , - 3906 , - 5183 , - 0 , - 2879 , - 770 , - 3993 , - 3604 , - 4419 , - 2998 , - 4157 , - 4456 , - 3207 , - 2474 , - 1569 , - 2556 , - 4747 , - 4702 , - 1733 , - 3408 , - 3535 , - 4178 , - 4649 , - 1508 , - 5075 , - 902 , - 4813 , - 2360 , - 3863 , - 378 , - 2225 , - 460 , - 5403 , - 2606 , - 2389 , - 1312 , - 4191 , - 2082 , - 5305 , - 4916 , - 227 , - 4310 , - 5469 , - 264 , - 4519 , - 3786 , - 2881 , - 3868 , - 555 , - 510 , - 3045 , - 4720 , - 4847 , - 5490 , - 457 , - 2820 , - 883 , - 2214 , - 621 , - 3672 , - 5175 , - 1690 , - 3537 , - 1772 , - 1211 , - 3918 , - 3701 , - 2624 , - 5503 , - 3394 , - 1113 , - 724 , - 1539 , - 118 , - 1277 , - 1576 , - 327 , - 5098 , - 4193 , - 5180 , - 1867 , - 1822 , - 4357 , - 528 , - 655 , - 1298 , - 1769 , - 4132 , - 2195 , - 3526 , - 1933 , - 4984 , - 983 , - 3002 , - 4849 , - 3084 , - 2523 , - 5230 , - 5013 , - 3936 , - 1311 , - 4706 , - 2425 , - 2036 , - 2851 , - 1430 , - 2589 , - 2888 , - 1639 , - 906 , - 1 , - 988 , - 3179 , - 3134 , - 165 , - 1840 , - 1967 , - 2610 , - 3081 , - 5444 , - 3507 , - 4838 , - 3245 , - 792 , - 2295 , - 4314 , - 657 , - 4396 , - 3835 , - 1038 , - 821 , - 5248 , - 2623 , - 514 , - 3737 , - 3348 , - 4163 , - 2742 , - 3901 , - 4200 , - 2951 , - 2218 , - 1313 , - 2300 , - 4491 , - 4446 , - 1477 , - 3152 , - 3279 , - 3922 , - 4393 , - 1252 , - 4819 , - 646 , - 4557 , - 2104 , - 3607 , - 122 , - 1969 , - 204 , - 5147 , - 2350 , - 2133 , - 1056 , - 3935 , - 1826 , - 5049 , - 4660 , - 5475 , - 4054 , - 5213 , - 8 , - 4263 , - 3530 , - 2625 , - 3612 , - 299 , - 254 , - 2789 , - 4464 , - 4591 , - 5234 , - 201 , - 2564 , - 627 , - 1958 , - 365 , - 3416 , - 4919 , - 1434 , - 3281 , - 1516 , - 955 , - 3662 , - 3445 , - 2368 , - 5247 , - 3138 , - 857 , - 468 , - 1283 , - 5366 , - 1021 , - 1320 , - 71 , - 4842 , - 3937 , - 4924 , - 1611 , - 1566 , - 4101 , - 272 , - 399 , - 1042 , - 1513 , - 3876 , - 1939 , - 3270 , - 1677 , - 4728 , - 727 , - 2746 , - 4593 , - 2828 , - 2267 , - 4974 , - 4757 , - 3680 , - 1055 , - 4450 , - 2169 , - 1780 , - 2595 , - 1174 , - 2333 , - 2632 , - 1383 , - 650 , - 5249 , - 732 , - 2923 , - 2878 , - 5413 , - 1584 , - 1711 , - 2354 , - 2825 , - 5188 , - 3251 , - 4582 , - 2989 , - 536 , - 2039 , - 4058 , - 401 , - 4140 , - 3579 , - 782 , - 565 , - 4992 , - 2367 , - 258 , - 3481 , - 3092 , - 3907 , - 2486 , - 3645 , - 3944 , - 2695 , - 1962 , - 1057 , - 2044 , - 4235 , - 4190 , - 1221 , - 2896 , - 3023 , - 3666 , - 4137 , - 996 , - 4563 , - 390 , - 4301 , - 1848 , - 3351 , - 5370 , - 1713 , - 5452 , - 4891 , - 2094 , - 1877 , - 800 , - 3679 , - 1570 , - 4793 , - 4404 , - 5219 , - 3798 , - 4957 , - 5256 , - 4007 , - 3274 , - 2369 , - 3356 , - 43 , - 5502 , - 2533 , - 4208 , - 4335 , - 4978 , - 5449 , - 2308 , - 371 , - 1702 , - 109 , - 3160 , - 4663 , - 1178 , - 3025 , - 1260 , - 699 , - 3406 , - 3189 , - 2112 , - 4991 , - 2882 , - 601 , - 212 , - 1027 , - 5110 , - 765 , - 1064 , - 5319 , - 4586 , - 3681 , - 4668 , - 1355 , - 1310 , - 3845 , - 16 , - 143 , - 786 , - 1257 , - 3620 , - 1683 , - 3014 , - 1421 , - 4472 , - 471 , - 2490 , - 4337 , - 2572 , - 2011 , - 4718 , - 4501 , - 3424 , - 799 , - 4194 , - 1913 , - 1524 , - 2339 , - 918 , - 2077 , - 2376 , - 1127 , - 394 , - 4993 , - 476 , - 2667 , - 2622 , - 5157 , - 1328 , - 1455 , - 2098 , - 2569 , - 4932 , - 2995 , - 4326 , - 2733 , - 280 , - 1783 , - 3802 , - 145 , - 3884 , - 3323 , - 526 , - 309 , - 4736 , - 2111 , - 2 , - 3225 , - 2836 , - 3651 , - 2230 , - 3389 , - 3688 , - 2439 , - 1706 , - 801 , - 1788 , - 3979 , - 3934 , - 965 , - 2640 , - 2767 , - 3410 , - 3881 , - 740 , - 4307 , - 134 , - 4045 , - 1592 , - 3095 , - 5114 , - 1457 , - 5196 , - 4635 , - 1838 , - 1621 , - 544 , - 3423 , - 1314 , - 4537 , - 4148 , - 4963 , - 3542 , - 4701 , - 5000 , - 3751 , - 3018 , - 2113 , - 3100 , - 5291 , - 5246 , - 2277 , - 3952 , - 4079 , - 4722 , - 5193 , - 2052 , - 115 , - 1446 , - 5357 , - 2904 , - 4407 , - 922 , - 2769 , - 1004 , - 443 , - 3150 , - 2933 , - 1856 , - 4735 , - 2626 , - 345 , - 5460 , - 771 , - 4854 , - 509 , - 808 , - 5063 , - 4330 , - 3425 , - 4412 , - 1099 , - 1054 , - 3589 , - 5264 , - 5391 , - 530 , - 1001 , - 3364 , - 1427 , - 2758 , - 1165 , - 4216 , - 215 , - 2234 , - 4081 , - 2316 , - 1755 , - 4462 , - 4245 , - 3168 , - 543 , - 3938 , - 1657 , - 1268 , - 2083 , - 662 , - 1821 , - 2120 , - 871 , - 138 , - 4737 , - 220 , - 2411 , - 2366 , - 4901 , - 1072 , - 1199 , - 1842 , - 2313 , - 4676 , - 2739 , - 4070 , - 2477 , - 24 , - 1527 , - 3546 , - 5393 , - 3628 , - 3067 , - 270 , - 53 , - 4480 , - 1855 , - 5250 , - 2969 , - 2580 , - 3395 , - 1974 , - 3133 , - 3432 , - 2183 , - 1450 , - 545 , - 1532 , - 3723 , - 3678 , - 709 , - 2384 , - 2511 , - 3154 , - 3625 , - 484 , - 4051 , - 5382 , - 3789 , - 1336 , - 2839 , - 4858 , - 1201 , - 4940 , - 4379 , - 1582 , - 1365 , - 288 , - 3167 , - 1058 , - 4281 , - 3892 , - 4707 , - 3286 , - 4445 , - 4744 , - 3495 , - 2762 , - 1857 , - 2844 , - 5035 , - 4990 , - 2021 , - 3696 , - 3823 , - 4466 , - 4937 , - 1796 , - 5363 , - 1190 , - 5101 , - 2648 , - 4151 , - 666 , - 2513 , - 748 , - 187 , - 2894 , - 2677 , - 1600 , - 4479 , - 2370 , - 89 , - 5204 , - 515 , - 4598 , - 253 , - 552 , - 4807 , - 4074 , - 3169 , - 4156 , - 843 , - 798 , - 3333 , - 5008 , - 5135 , - 274 , - 745 , - 3108 , - 1171 , - 2502 , - 909 , - 3960 , - 5463 , - 1978 , - 3825 , - 2060 , - 1499 , - 4206 , - 3989 , - 2912 , - 287 , - 3682 , - 1401 , - 1012 , - 1827 , - 406 , - 1565 , - 1864 , - 615 , - 5386 , - 4481 , - 5468 , - 2155 , - 2110 , - 4645 , - 816 , - 943 , - 1586 , - 2057 , - 4420 , - 2483 , - 3814 , - 2221 , - 5272 , - 1271 , - 3290 , - 5137 , - 3372 , - 2811 , - 14 , - 5301 , - 4224 , - 1599 , - 4994 , - 2713 , - 2324 , - 3139 , - 1718 , - 2877 , - 3176 , - 1927 , - 1194 , - 289 , - 1276 , - 3467 , - 3422 , - 453 , - 2128 , - 2255 , - 2898 , - 3369 , - 228 , - 3795 , - 5126 , - 3533 , - 1080 , - 2583 , - 4602 , - 945 , - 4684 , - 4123 , - 1326 , - 1109 , - 32 , - 2911 , - 802 , - 4025 , - 3636 , - 4451 , - 3030 , - 4189 , - 4488 , - 3239 , - 2506 , - 1601 , - 2588 , - 4779 , - 4734 , - 1765 , - 3440 , - 3567 , - 4210 , - 4681 , - 1540 , - 5107 , - 934 , - 4845 , - 2392 , - 3895 , - 410 , - 2257 , - 492 , - 5435 , - 2638 , - 2421 , - 1344 , - 4223 , - 2114 , - 5337 , - 4948 , - 259 , - 4342 , - 5501 , - 296 , - 4551 , - 3818 , - 2913 , - 3900 , - 587 , - 542 , - 3077 , - 4752 , - 4879 , - 18 , - 489 , - 2852 , - 915 , - 2246 , - 653 , - 3704 , - 5207 , - 1722 , - 3569 , - 1804 , - 1243 , - 3950 , - 3733 , - 2656 , - 31 , - 3426 , - 1145 , - 756 , - 1571 , - 150 , - 1309 , - 1608 , - 359 , - 5130 , - 4225 , - 5212 , - 1899 , - 1854 , - 4389 , - 560 , - 687 , - 1330 , - 1801 , - 4164 , - 2227 , - 3558 , - 1965 , - 5016 , - 1015 , - 3034 , - 4881 , - 3116 , - 2555 , - 5262 , - 5045 , - 3968 , - 1343 , - 4738 , - 2457 , - 2068 , - 2883 , - 1462 , - 2621 , - 2920 , - 1671 , - 938 , - 33 , - 1020 , - 3211 , - 3166 , - 197 , - 1872 , - 1999 , - 2642 , - 3113 , - 5476 , - 3539 , - 4870 , - 3277 , - 824 , - 2327 , - 4346 , - 689 , - 4428 , - 3867 , - 1070 , - 853 , - 5280 , - 2655 , - 546 , - 3769 , - 3380 , - 4195 , - 2774 , - 3933 , - 4232 , - 2983 , - 2250 , - 1345 , - 2332 , - 4523 , - 4478 , - 1509 , - 3184 , - 3311 , - 3954 , - 4425 , - 1284 , - 4851 , - 678 , - 4589 , - 2136 , - 3639 , - 154 , - 2001 , - 236 , - 5179 , - 2382 , - 2165 , - 1088 , - 3967 , - 1858 , - 5081 , - 4692 , - 3 , - 4086 , - 5245 , - 40 , - 4295 , - 3562 , - 2657 , - 3644 , - 331 , - 286 , - 2821 , - 4496 , - 4623 , - 5266 , - 233 , - 2596 , - 659 , - 1990 , - 397 , - 3448 , - 4951 , - 1466 , - 3313 , - 1548 , - 987 , - 3694 , - 3477 , - 2400 , - 5279 , - 3170 , - 889 , - 500 , - 1315 , - 5398 , - 1053 , - 1352 , - 103 , - 4874 , - 3969 , - 4956 , - 1643 , - 1598 , - 4133 , - 304 , - 431 , - 1074 , - 1545 , - 3908 , - 1971 , - 3302 , - 1709 , - 4760 , - 759 , - 2778 , - 4625 , - 2860 , - 2299 , - 5006 , - 4789 , - 3712 , - 1087 , - 4482 , - 2201 , - 1812 , - 2627 , - 1206 , - 2365 , - 2664 , - 1415 , - 682 , - 5281 , - 764 , - 2955 , - 2910 , - 5445 , - 1616 , - 1743 , - 2386 , - 2857 , - 5220 , - 3283 , - 4614 , - 3021 , - 568 , - 2071 , - 4090 , - 433 , - 4172 , - 3611 , - 814 , - 597 , - 5024 , - 2399 , - 290 , - 3513 , - 3124 , - 3939 , - 2518 , - 3677 , - 3976 , - 2727 , - 1994 , - 1089 , - 2076 , - 4267 , - 4222 , - 1253 , - 2928 , - 3055 , - 3698 , - 4169 , - 1028 , - 4595 , - 422 , - 4333 , - 1880 , - 3383 , - 5402 , - 1745 , - 5484 , - 4923 , - 2126 , - 1909 , - 832 , - 3711 , - 1602 , - 4825 , - 4436 , - 5251 , - 3830 , - 4989 , - 5288 , - 4039 , - 3306 , - 2401 , - 3388 , - 75 , - 30 , - 2565 , - 4240 , - 4367 , - 5010 , - 5481 , - 2340 , - 403 , - 1734 , - 141 , - 3192 , - 4695 , - 1210 , - 3057 , - 1292 , - 731 , - 3438 , - 3221 , - 2144 , - 5023 , - 2914 , - 633 , - 244 , - 1059 , - 5142 , - 797 , - 1096 , - 5351 , - 4618 , - 3713 , - 4700 , - 1387 , - 1342 , - 3877 , - 48 , - 175 , - 818 , - 1289 , - 3652 , - 1715 , - 3046 , - 1453 , - 4504 , - 503 , - 2522 , - 4369 , - 2604 , - 2043 , - 4750 , - 4533 , - 3456 , - 831 , - 4226 , - 1945 , - 1556 , - 2371 , - 950 , - 2109 , - 2408 , - 1159 , - 426 , - 5025 , - 508 , - 2699 , - 2654 , - 5189 , - 1360 , - 1487 , - 2130 , - 2601 , - 4964 , - 3027 , - 4358 , - 2765 , - 312 , - 1815 , - 3834 , - 177 , - 3916 , - 3355 , - 558 , - 341 , - 4768 , - 2143 , - 34 , - 3257 , - 2868 , - 3683 , - 2262 , - 3421 , - 3720 , - 2471 , - 1738 , - 833 , - 1820 , - 4011 , - 3966 , - 997 , - 2672 , - 2799 , - 3442 , - 3913 , - 772 , - 4339 , - 166 , - 4077 , - 1624 , - 3127 , - 5146 , - 1489 , - 5228 , - 4667 , - 1870 , - 1653 , - 576 , - 3455 , - 1346 , - 4569 , - 4180 , - 4995 , - 3574 , - 4733 , - 5032 , - 3783 , - 3050 , - 2145 , - 3132 , - 5323 , - 5278 , - 2309 , - 3984 , - 4111 , - 4754 , - 5225 , - 2084 , - 147 , - 1478 , - 5389 , - 2936 , - 4439 , - 954 , - 2801 , - 1036 , - 475 , - 3182 , - 2965 , - 1888 , - 4767 , - 2658 , - 377 , - 5492 , - 803 , - 4886 , - 541 , - 840 , - 5095 , - 4362 , - 3457 , - 4444 , - 1131 , - 1086 , - 3621 , - 5296 , - 5423 , - 562 , - 1033 , - 3396 , - 1459 , - 2790 , - 1197 , - 4248 , - 247 , - 2266 , - 4113 , - 2348 , - 1787 , - 4494 , - 4277 , - 3200 , - 575 , - 3970 , - 1689 , - 1300 , - 2115 , - 694 , - 1853 , - 2152 , - 903 , - 170 , - 4769 , - 252 , - 2443 , - 2398 , - 4933 , - 1104 , - 1231 , - 1874 , - 2345 , - 4708 , - 2771 , - 4102 , - 2509 , - 56 , - 1559 , - 3578 , - 5425 , - 3660 , - 3099 , - 302 , - 85 , - 4512 , - 1887 , - 5282 , - 3001 , - 2612 , - 3427 , - 2006 , - 3165 , - 3464 , - 2215 , - 1482 , - 577 , - 1564 , - 3755 , - 3710 , - 741 , - 2416 , - 2543 , - 3186 , - 3657 , - 516 , - 4083 , - 5414 , - 3821 , - 1368 , - 2871 , - 4890 , - 1233 , - 4972 , - 4411 , - 1614 , - 1397 , - 320 , - 3199 , - 1090 , - 4313 , - 3924 , - 4739 , - 3318 , - 4477 , - 4776 , - 3527 , - 2794 , - 1889 , - 2876 , - 5067 , - 5022 , - 2053 , - 3728 , - 3855 , - 4498 , - 4969 , - 1828 , - 5395 , - 1222 , - 5133 , - 2680 , - 4183 , - 698 , - 2545 , - 780 , - 219 , - 2926 , - 2709 , - 1632 , - 4511 , - 2402 , - 121 , - 5236 , - 547 , - 4630 , - 285 , - 584 , - 4839 , - 4106 , - 3201 , - 4188 , - 875 , - 830 , - 3365 , - 5040 , - 5167 , - 306 , - 777 , - 3140 , - 1203 , - 2534 , - 941 , - 3992 , - 5495 , - 2010 , - 3857 , - 2092 , - 1531 , - 4238 , - 4021 , - 2944 , - 319 , - 3714 , - 1433 , - 1044 , - 1859 , - 438 , - 1597 , - 1896 , - 647 , - 5418 , - 4513 , - 5500 , - 2187 , - 2142 , - 4677 , - 848 , - 975 , - 1618 , - 2089 , - 4452 , - 2515 , - 3846 , - 2253 , - 5304 , - 1303 , - 3322 , - 5169 , - 3404 , - 2843 , - 46 , - 5333 , - 4256 , - 1631 , - 5026 , - 2745 , - 2356 , - 3171 , - 1750 , - 2909 , - 3208 , - 1959 , - 1226 , - 321 , - 1308 , - 3499 , - 3454 , - 485 , - 2160 , - 2287 , - 2930 , - 3401 , - 260 , - 3827 , - 5158 , - 3565 , - 1112 , - 2615 , - 4634 , - 977 , - 4716 , - 4155 , - 1358 , - 1141 , - 64 , - 2943 , - 834 , - 4057 , - 3668 , - 4483 , - 3062 , - 4221 , - 4520 , - 3271 , - 2538 , - 1633 , - 2620 , - 4811 , - 4766 , - 1797 , - 3472 , - 3599 , - 4242 , - 4713 , - 1572 , - 5139 , - 966 , - 4877 , - 2424 , - 3927 , - 442 , - 2289 , - 524 , - 5467 , - 2670 , - 2453 , - 1376 , - 4255 , - 2146 , - 5369 , - 4980 , - 291 , - 4374 , - 29 , - 328 , - 4583 , - 3850 , - 2945 , - 3932 , - 619 , - 574 , - 3109 , - 4784 , - 4911 , - 50 , - 521 , - 2884 , - 947 , - 2278 , - 685 , - 3736 , - 5239 , - 1754 , - 3601 , - 1836 , - 1275 , - 3982 , - 3765 , - 2688 , - 63 , - 3458 , - 1177 , - 788 , - 1603 , - 182 , - 1341 , - 1640 , - 391 , - 5162 , - 4257 , - 5244 , - 1931 , - 1886 , - 4421 , - 592 , - 719 , - 1362 , - 1833 , - 4196 , - 2259 , - 3590 , - 1997 , - 5048 , - 1047 , - 3066 , - 4913 , - 3148 , - 2587 , - 5294 , - 5077 , - 4000 , - 1375 , - 4770 , - 2489 , - 2100 , - 2915 , - 1494 , - 2653 , - 2952 , - 1703 , - 970 , - 65 , - 1052 , - 3243 , - 3198 , - 229 , - 1904 , - 2031 , - 2674 , - 3145 , - 4 , - 3571 , - 4902 , - 3309 , - 856 , - 2359 , - 4378 , - 721 , - 4460 , - 3899 , - 1102 , - 885 , - 5312 , - 2687 , - 578 , - 3801 , - 3412 , - 4227 , - 2806 , - 3965 , - 4264 , - 3015 , - 2282 , - 1377 , - 2364 , - 4555 , - 4510 , - 1541 , - 3216 , - 3343 , - 3986 , - 4457 , - 1316 , - 4883 , - 710 , - 4621 , - 2168 , - 3671 , - 186 , - 2033 , - 268 , - 5211 , - 2414 , - 2197 , - 1120 , - 3999 , - 1890 , - 5113 , - 4724 , - 35 , - 4118 , - 5277 , - 72 , - 4327 , - 3594 , - 2689 , - 3676 , - 363 , - 318 , - 2853 , - 4528 , - 4655 , - 5298 , - 265 , - 2628 , - 691 , - 2022 , - 429 , - 3480 , - 4983 , - 1498 , - 3345 , - 1580 , - 1019 , - 3726 , - 3509 , - 2432 , - 5311 , - 3202 , - 921 , - 532 , - 1347 , - 5430 , - 1085 , - 1384 , - 135 , - 4906 , - 4001 , - 4988 , - 1675 , - 1630 , - 4165 , - 336 , - 463 , - 1106 , - 1577 , - 3940 , - 2003 , - 3334 , - 1741 , - 4792 , - 791 , - 2810 , - 4657 , - 2892 , - 2331 , - 5038 , - 4821 , - 3744 , - 1119 , - 4514 , - 2233 , - 1844 , - 2659 , - 1238 , - 2397 , - 2696 , - 1447 , - 714 , - 5313 , - 796 , - 2987 , - 2942 , - 5477 , - 1648 , - 1775 , - 2418 , - 2889 , - 5252 , - 3315 , - 4646 , - 3053 , - 600 , - 2103 , - 4122 , - 465 , - 4204 , - 3643 , - 846 , - 629 , - 5056 , - 2431 , - 322 , - 3545 , - 3156 , - 3971 , - 2550 , - 3709 , - 4008 , - 2759 , - 2026 , - 1121 , - 2108 , - 4299 , - 4254 , - 1285 , - 2960 , - 3087 , - 3730 , - 4201 , - 1060 , - 4627 , - 454 , - 4365 , - 1912 , - 3415 , - 5434 , - 1777 , - 12 , - 4955 , - 2158 , - 1941 , - 864 , - 3743 , - 1634 , - 4857 , - 4468 , - 5283 , - 3862 , - 5021 , - 5320 , - 4071 , - 3338 , - 2433 , - 3420 , - 107 , - 62 , - 2597 , - 4272 , - 4399 , - 5042 , - 9 , - 2372 , - 435 , - 1766 , - 173 , - 3224 , - 4727 , - 1242 , - 3089 , - 1324 , - 763 , - 3470 , - 3253 , - 2176 , - 5055 , - 2946 , - 665 , - 276 , - 1091 , - 5174 , - 829 , - 1128 , - 5383 , - 4650 , - 3745 , - 4732 , - 1419 , - 1374 , - 3909 , - 80 , - 207 , - 850 , - 1321 , - 3684 , - 1747 , - 3078 , - 1485 , - 4536 , - 535 , - 2554 , - 4401 , - 2636 , - 2075 , - 4782 , - 4565 , - 3488 , - 863 , - 4258 , - 1977 , - 1588 , - 2403 , - 982 , - 2141 , - 2440 , - 1191 , - 458 , - 5057 , - 540 , - 2731 , - 2686 , - 5221 , - 1392 , - 1519 , - 2162 , - 2633 , - 4996 , - 3059 , - 4390 , - 2797 , - 344 , - 1847 , - 3866 , - 209 , - 3948 , - 3387 , - 590 , - 373 , - 4800 , - 2175 , - 66 , - 3289 , - 2900 , - 3715 , - 2294 , - 3453 , - 3752 , - 2503 , - 1770 , - 865 , - 1852 , - 4043 , - 3998 , - 1029 , - 2704 , - 2831 , - 3474 , - 3945 , - 804 , - 4371 , - 198 , - 4109 , - 1656 , - 3159 , - 5178 , - 1521 , - 5260 , - 4699 , - 1902 , - 1685 , - 608 , - 3487 , - 1378 , - 4601 , - 4212 , - 5027 , - 3606 , - 4765 , - 5064 , - 3815 , - 3082 , - 2177 , - 3164 , - 5355 , - 5310 , - 2341 , - 4016 , - 4143 , - 4786 , - 5257 , - 2116 , - 179 , - 1510 , - 5421 , - 2968 , - 4471 , - 986 , - 2833 , - 1068 , - 507 , - 3214 , - 2997 , - 1920 , - 4799 , - 2690 , - 409 , - 20 , - 835 , - 4918 , - 573 , - 872 , - 5127 , - 4394 , - 3489 , - 4476 , - 1163 , - 1118 , - 3653 , - 5328 , - 5455 , - 594 , - 1065 , - 3428 , - 1491 , - 2822 , - 1229 , - 4280 , - 279 , - 2298 , - 4145 , - 2380 , - 1819 , - 4526 , - 4309 , - 3232 , - 607 , - 4002 , - 1721 , - 1332 , - 2147 , - 726 , - 1885 , - 2184 , - 935 , - 202 , - 4801 , - 284 , - 2475 , - 2430 , - 4965 , - 1136 , - 1263 , - 1906 , - 2377 , - 4740 , - 2803 , - 4134 , - 2541 , - 88 , - 1591 , - 3610 , - 5457 , - 3692 , - 3131 , - 334 , - 117 , - 4544 , - 1919 , - 5314 , - 3033 , - 2644 , - 3459 , - 2038 , - 3197 , - 3496 , - 2247 , - 1514 , - 609 , - 1596 , - 3787 , - 3742 , - 773 , - 2448 , - 2575 , - 3218 , - 3689 , - 548 , - 4115 , - 5446 , - 3853 , - 1400 , - 2903 , - 4922 , - 1265 , - 5004 , - 4443 , - 1646 , - 1429 , - 352 , - 3231 , - 1122 , - 4345 , - 3956 , - 4771 , - 3350 , - 4509 , - 4808 , - 3559 , - 2826 , - 1921 , - 2908 , - 5099 , - 5054 , - 2085 , - 3760 , - 3887 , - 4530 , - 5001 , - 1860 , - 5427 , - 1254 , - 5165 , - 2712 , - 4215 , - 730 , - 2577 , - 812 , - 251 , - 2958 , - 2741 , - 1664 , - 4543 , - 2434 , - 153 , - 5268 , - 579 , - 4662 , - 317 , - 616 , - 4871 , - 4138 , - 3233 , - 4220 , - 907 , - 862 , - 3397 , - 5072 , - 5199 , - 338 , - 809 , - 3172 , - 1235 , - 2566 , - 973 , - 4024 , - 23 , - 2042 , - 3889 , - 2124 , - 1563 , - 4270 , - 4053 , - 2976 , - 351 , - 3746 , - 1465 , - 1076 , - 1891 , - 470 , - 1629 , - 1928 , - 679 , - 5450 , - 4545 , - 28 , - 2219 , - 2174 , - 4709 , - 880 , - 1007 , - 1650 , - 2121 , - 4484 , - 2547 , - 3878 , - 2285 , - 5336 , - 1335 , - 3354 , - 5201 , - 3436 , - 2875 , - 78 , - 5365 , - 4288 , - 1663 , - 5058 , - 2777 , - 2388 , - 3203 , - 1782 , - 2941 , - 3240 , - 1991 , - 1258 , - 353 , - 1340 , - 3531 , - 3486 , - 517 , - 2192 , - 2319 , - 2962 , - 3433 , - 292 , - 3859 , - 5190 , - 3597 , - 1144 , - 2647 , - 4666 , - 1009 , - 4748 , - 4187 , - 1390 , - 1173 , - 96 , - 2975 , - 866 , - 4089 , - 3700 , - 4515 , - 3094 , - 4253 , - 4552 , - 3303 , - 2570 , - 1665 , - 2652 , - 4843 , - 4798 , - 1829 , - 3504 , - 3631 , - 4274 , - 4745 , - 1604 , - 5171 , - 998 , - 4909 , - 2456 , - 3959 , - 474 , - 2321 , - 556 , - 5499 , - 2702 , - 2485 , - 1408 , - 4287 , - 2178 , - 5401 , - 5012 , - 323 , - 4406 , - 61 , - 360 , - 4615 , - 3882 , - 2977 , - 3964 , - 651 , - 606 , - 3141 , - 4816 , - 4943 , - 82 , - 553 , - 2916 , - 979 , - 2310 , - 717 , - 3768 , - 5271 , - 1786 , - 3633 , - 1868 , - 1307 , - 4014 , - 3797 , - 2720 , - 95 , - 3490 , - 1209 , - 820 , - 1635 , - 214 , - 1373 , - 1672 , - 423 , - 5194 , - 4289 , - 5276 , - 1963 , - 1918 , - 4453 , - 624 , - 751 , - 1394 , - 1865 , - 4228 , - 2291 , - 3622 , - 2029 , - 5080 , - 1079 , - 3098 , - 4945 , - 3180 , - 2619 , - 5326 , - 5109 , - 4032 , - 1407 , - 4802 , - 2521 , - 2132 , - 2947 , - 1526 , - 2685 , - 2984 , - 1735 , - 1002 , - 97 , - 1084 , - 3275 , - 3230 , - 261 , - 1936 , - 2063 , - 2706 , - 3177 , - 36 , - 3603 , - 4934 , - 3341 , - 888 , - 2391 , - 4410 , - 753 , - 4492 , - 3931 , - 1134 , - 917 , - 5344 , - 2719 , - 610 , - 3833 , - 3444 , - 4259 , - 2838 , - 3997 , - 4296 , - 3047 , - 2314 , - 1409 , - 2396 , - 4587 , - 4542 , - 1573 , - 3248 , - 3375 , - 4018 , - 4489 , - 1348 , - 4915 , - 742 , - 4653 , - 2200 , - 3703 , - 218 , - 2065 , - 300 , - 5243 , - 2446 , - 2229 , - 1152 , - 4031 , - 1922 , - 5145 , - 4756 , - 67 , - 4150 , - 5309 , - 104 , - 4359 , - 3626 , - 2721 , - 3708 , - 395 , - 350 , - 2885 , - 4560 , - 4687 , - 5330 , - 297 , - 2660 , - 723 , - 2054 , - 461 , - 3512 , - 5015 , - 1530 , - 3377 , - 1612 , - 1051 , - 3758 , - 3541 , - 2464 , - 5343 , - 3234 , - 953 , - 564 , - 1379 , - 5462 , - 1117 , - 1416 , - 167 , - 4938 , - 4033 , - 5020 , - 1707 , - 1662 , - 4197 , - 368 , - 495 , - 1138 , - 1609 , - 3972 , - 2035 , - 3366 , - 1773 , - 4824 , - 823 , - 2842 , - 4689 , - 2924 , - 2363 , - 5070 , - 4853 , - 3776 , - 1151 , - 4546 , - 2265 , - 1876 , - 2691 , - 1270 , - 2429 , - 2728 , - 1479 , - 746 , - 5345 , - 828 , - 3019 , - 2974 , - 5 , - 1680 , - 1807 , - 2450 , - 2921 , - 5284 , - 3347 , - 4678 , - 3085 , - 632 , - 2135 , - 4154 , - 497 , - 4236 , - 3675 , - 878 , - 661 , - 5088 , - 2463 , - 354 , - 3577 , - 3188 , - 4003 , - 2582 , - 3741 , - 4040 , - 2791 , - 2058 , - 1153 , - 2140 , - 4331 , - 4286 , - 1317 , - 2992 , - 3119 , - 3762 , - 4233 , - 1092 , - 4659 , - 486 , - 4397 , - 1944 , - 3447 , - 5466 , - 1809 , - 44 , - 4987 , - 2190 , - 1973 , - 896 , - 3775 , - 1666 , - 4889 , - 4500 , - 5315 , - 3894 , - 5053 , - 5352 , - 4103 , - 3370 , - 2465 , - 3452 , - 139 , - 94 , - 2629 , - 4304 , - 4431 , - 5074 , - 41 , - 2404 , - 467 , - 1798 , - 205 , - 3256 , - 4759 , - 1274 , - 3121 , - 1356 , - 795 , - 3502 , - 3285 , - 2208 , - 5087 , - 2978 , - 697 , - 308 , - 1123 , - 5206 , - 861 , - 1160 , - 5415 , - 4682 , - 3777 , - 4764 , - 1451 , - 1406 , - 3941 , - 112 , - 239 , - 882 , - 1353 , - 3716 , - 1779 , - 3110 , - 1517 , - 4568 , - 567 , - 2586 , - 4433 , - 2668 , - 2107 , - 4814 , - 4597 , - 3520 , - 895 , - 4290 , - 2009 , - 1620 , - 2435 , - 1014 , - 2173 , - 2472 , - 1223 , - 490 , - 5089 , - 572 , - 2763 , - 2718 , - 5253 , - 1424 , - 1551 , - 2194 , - 2665 , - 5028 , - 3091 , - 4422 , - 2829 , - 376 , - 1879 , - 3898 , - 241 , - 3980 , - 3419 , - 622 , - 405 , - 4832 , - 2207 , - 98 , - 3321 , - 2932 , - 3747 , - 2326 , - 3485 , - 3784 , - 2535 , - 1802 , - 897 , - 1884 , - 4075 , - 4030 , - 1061 , - 2736 , - 2863 , - 3506 , - 3977 , - 836 , - 4403 , - 230 , - 4141 , - 1688 , - 3191 , - 5210 , - 1553 , - 5292 , - 4731 , - 1934 , - 1717 , - 640 , - 3519 , - 1410 , - 4633 , - 4244 , - 5059 , - 3638 , - 4797 , - 5096 , - 3847 , - 3114 , - 2209 , - 3196 , - 5387 , - 5342 , - 2373 , - 4048 , - 4175 , - 4818 , - 5289 , - 2148 , - 211 , - 1542 , - 5453 , - 3000 , - 4503 , - 1018 , - 2865 , - 1100 , - 539 , - 3246 , - 3029 , - 1952 , - 4831 , - 2722 , - 441 , - 52 , - 867 , - 4950 , - 605 , - 904 , - 5159 , - 4426 , - 3521 , - 4508 , - 1195 , - 1150 , - 3685 , - 5360 , - 5487 , - 626 , - 1097 , - 3460 , - 1523 , - 2854 , - 1261 , - 4312 , - 311 , - 2330 , - 4177 , - 2412 , - 1851 , - 4558 , - 4341 , - 3264 , - 639 , - 4034 , - 1753 , - 1364 , - 2179 , - 758 , - 1917 , - 2216 , - 967 , - 234 , - 4833 , - 316 , - 2507 , - 2462 , - 4997 , - 1168 , - 1295 , - 1938 , - 2409 , - 4772 , - 2835 , - 4166 , - 2573 , - 120 , - 1623 , - 3642 , - 5489 , - 3724 , - 3163 , - 366 , - 149 , - 4576 , - 1951 , - 5346 , - 3065 , - 2676 , - 3491 , - 2070 , - 3229 , - 3528 , - 2279 , - 1546 , - 641 , - 1628 , - 3819 , - 3774 , - 805 , - 2480 , - 2607 , - 3250 , - 3721 , - 580 , - 4147 , - 5478 , - 3885 , - 1432 , - 2935 , - 4954 , - 1297 , - 5036 , - 4475 , - 1678 , - 1461 , - 384 , - 3263 , - 1154 , - 4377 , - 3988 , - 4803 , - 3382 , - 4541 , - 4840 , - 3591 , - 2858 , - 1953 , - 2940 , - 5131 , - 5086 , - 2117 , - 3792 , - 3919 , - 4562 , - 5033 , - 1892 , - 5459 , - 1286 , - 5197 , - 2744 , - 4247 , - 762 , - 2609 , - 844 , - 283 , - 2990 , - 2773 , - 1696 , - 4575 , - 2466 , - 185 , - 5300 , - 611 , - 4694 , - 349 , - 648 , - 4903 , - 4170 , - 3265 , - 4252 , - 939 , - 894 , - 3429 , - 5104 , - 5231 , - 370 , - 841 , - 3204 , - 1267 , - 2598 , - 1005 , - 4056 , - 55 , - 2074 , - 3921 , - 2156 , - 1595 , - 4302 , - 4085 , - 3008 , - 383 , - 3778 , - 1497 , - 1108 , - 1923 , - 502 , - 1661 , - 1960 , - 711 , - 5482 , - 4577 , - 60 , - 2251 , - 2206 , - 4741 , - 912 , - 1039 , - 1682 , - 2153 , - 4516 , - 2579 , - 3910 , - 2317 , - 5368 , - 1367 , - 3386 , - 5233 , - 3468 , - 2907 , - 110 , - 5397 , - 4320 , - 1695 , - 5090 , - 2809 , - 2420 , - 3235 , - 1814 , - 2973 , - 3272 , - 2023 , - 1290 , - 385 , - 1372 , - 3563 , - 3518 , - 549 , - 2224 , - 2351 , - 2994 , - 3465 , - 324 , - 3891 , - 5222 , - 3629 , - 1176 , - 2679 , - 4698 , - 1041 , - 4780 , - 4219 , - 1422 , - 1205 , - 128 , - 3007 , - 898 , - 4121 , - 3732 , - 4547 , - 3126 , - 4285 , - 4584 , - 3335 , - 2602 , - 1697 , - 2684 , - 4875 , - 4830 , - 1861 , - 3536 , - 3663 , - 4306 , - 4777 , - 1636 , - 5203 , - 1030 , - 4941 , - 2488 , - 3991 , - 506 , - 2353 , - 588 , - 27 , - 2734 , - 2517 , - 1440 , - 4319 , - 2210 , - 5433 , - 5044 , - 355 , - 4438 , - 93 , - 392 , - 4647 , - 3914 , - 3009 , - 3996 , - 683 , - 638 , - 3173 , - 4848 , - 4975 , - 114 , - 585 , - 2948 , - 1011 , - 2342 , - 749 , - 3800 , - 5303 , - 1818 , - 3665 , - 1900 , - 1339 , - 4046 , - 3829 , - 2752 , - 127 , - 3522 , - 1241 , - 852 , - 1667 , - 246 , - 1405 , - 1704 , - 455 , - 5226 , - 4321 , - 5308 , - 1995 , - 1950 , - 4485 , - 656 , - 783 , - 1426 , - 1897 , - 4260 , - 2323 , - 3654 , - 2061 , - 5112 , - 1111 , - 3130 , - 4977 , - 3212 , - 2651 , - 5358 , - 5141 , - 4064 , - 1439 , - 4834 , - 2553 , - 2164 , - 2979 , - 1558 , - 2717 , - 3016 , - 1767 , - 1034 , - 129 , - 1116 , - 3307 , - 3262 , - 293 , - 1968 , - 2095 , - 2738 , - 3209 , - 68 , - 3635 , - 4966 , - 3373 , - 920 , - 2423 , - 4442 , - 785 , - 4524 , - 3963 , - 1166 , - 949 , - 5376 , - 2751 , - 642 , - 3865 , - 3476 , - 4291 , - 2870 , - 4029 , - 4328 , - 3079 , - 2346 , - 1441 , - 2428 , - 4619 , - 4574 , - 1605 , - 3280 , - 3407 , - 4050 , - 4521 , - 1380 , - 4947 , - 774 , - 4685 , - 2232 , - 3735 , - 250 , - 2097 , - 332 , - 5275 , - 2478 , - 2261 , - 1184 , - 4063 , - 1954 , - 5177 , - 4788 , - 99 , - 4182 , - 5341 , - 136 , - 4391 , - 3658 , - 2753 , - 3740 , - 427 , - 382 , - 2917 , - 4592 , - 4719 , - 5362 , - 329 , - 2692 , - 755 , - 2086 , - 493 , - 3544 , - 5047 , - 1562 , - 3409 , - 1644 , - 1083 , - 3790 , - 3573 , - 2496 , - 5375 , - 3266 , - 985 , - 596 , - 1411 , - 5494 , - 1149 , - 1448 , - 199 , - 4970 , - 4065 , - 5052 , - 1739 , - 1694 , - 4229 , - 400 , - 527 , - 1170 , - 1641 , - 4004 , - 2067 , - 3398 , - 1805 , - 4856 , - 855 , - 2874 , - 4721 , - 2956 , - 2395 , - 5102 , - 4885 , - 3808 , - 1183 , - 4578 , - 2297 , - 1908 , - 2723 , - 1302 , - 2461 , - 2760 , - 1511 , - 778 , - 5377 , - 860 , - 3051 , - 3006 , - 37 , - 1712 , - 1839 , - 2482 , - 2953 , - 5316 , - 3379 , - 4710 , - 3117 , - 664 , - 2167 , - 4186 , - 529 , - 4268 , - 3707 , - 910 , - 693 , - 5120 , - 2495 , - 386 , - 3609 , - 3220 , - 4035 , - 2614 , - 3773 , - 4072 , - 2823 , - 2090 , - 1185 , - 2172 , - 4363 , - 4318 , - 1349 , - 3024 , - 3151 , - 3794 , - 4265 , - 1124 , - 4691 , - 518 , - 4429 , - 1976 , - 3479 , - 5498 , - 1841 , - 76 , - 5019 , - 2222 , - 2005 , - 928 , - 3807 , - 1698 , - 4921 , - 4532 , - 5347 , - 3926 , - 5085 , - 5384 , - 4135 , - 3402 , - 2497 , - 3484 , - 171 , - 126 , - 2661 , - 4336 , - 4463 , - 5106 , - 73 , - 2436 , - 499 , - 1830 , - 237 , - 3288 , - 4791 , - 1306 , - 3153 , - 1388 , - 827 , - 3534 , - 3317 , - 2240 , - 5119 , - 3010 , - 729 , - 340 , - 1155 , - 5238 , - 893 , - 1192 , - 5447 , - 4714 , - 3809 , - 4796 , - 1483 , - 1438 , - 3973 , - 144 , - 271 , - 914 , - 1385 , - 3748 , - 1811 , - 3142 , - 1549 , - 4600 , - 599 , - 2618 , - 4465 , - 2700 , - 2139 , - 4846 , - 4629 , - 3552 , - 927 , - 4322 , - 2041 , - 1652 , - 2467 , - 1046 , - 2205 , - 2504 , - 1255 , - 522 , - 5121 , - 604 , - 2795 , - 2750 , - 5285 , - 1456 , - 1583 , - 2226 , - 2697 , - 5060 , - 3123 , - 4454 , - 2861 , - 408 , - 1911 , - 3930 , - 273 , - 4012 , - 3451 , - 654 , - 437 , - 4864 , - 2239 , - 130 , - 3353 , - 2964 , - 3779 , - 2358 , - 3517 , - 3816 , - 2567 , - 1834 , - 929 , - 1916 , - 4107 , - 4062 , - 1093 , - 2768 , - 2895 , - 3538 , - 4009 , - 868 , - 4435 , - 262 , - 4173 , - 1720 , - 3223 , - 5242 , - 1585 , - 5324 , - 4763 , - 1966 , - 1749 , - 672 , - 3551 , - 1442 , - 4665 , - 4276 , - 5091 , - 3670 , - 4829 , - 5128 , - 3879 , - 3146 , - 2241 , - 3228 , - 5419 , - 5374 , - 2405 , - 4080 , - 4207 , - 4850 , - 5321 , - 2180 , - 243 , - 1574 , - 5485 , - 3032 , - 4535 , - 1050 , - 2897 , - 1132 , - 571 , - 3278 , - 3061 , - 1984 , - 4863 , - 2754 , - 473 , - 84 , - 899 , - 4982 , - 637 , - 936 , - 5191 , - 4458 , - 3553 , - 4540 , - 1227 , - 1182 , - 3717 , - 5392 , - 15 , - 658 , - 1129 , - 3492 , - 1555 , - 2886 , - 1293 , - 4344 , - 343 , - 2362 , - 4209 , - 2444 , - 1883 , - 4590 , - 4373 , - 3296 , - 671 , - 4066 , - 1785 , - 1396 , - 2211 , - 790 , - 1949 , - 2248 , - 999 , - 266 , - 4865 , - 348 , - 2539 , - 2494 , - 5029 , - 1200 , - 1327 , - 1970 , - 2441 , - 4804 , - 2867 , - 4198 , - 2605 , - 152 , - 1655 , - 3674 , - 17 , - 3756 , - 3195 , - 398 , - 181 , - 4608 , - 1983 , - 5378 , - 3097 , - 2708 , - 3523 , - 2102 , - 3261 , - 3560 , - 2311 , - 1578 , - 673 , - 1660 , - 3851 , - 3806 , - 837 , - 2512 , - 2639 , - 3282 , - 3753 , - 612 , - 4179 , - 6 , - 3917 , - 1464 , - 2967 , - 4986 , - 1329 , - 5068 , - 4507 , - 1710 , - 1493 , - 416 , - 3295 , - 1186 , - 4409 , - 4020 , - 4835 , - 3414 , - 4573 , - 4872 , - 3623 , - 2890 , - 1985 , - 2972 , - 5163 , - 5118 , - 2149 , - 3824 , - 3951 , - 4594 , - 5065 , - 1924 , - 5491 , - 1318 , - 5229 , - 2776 , - 4279 , - 794 , - 2641 , - 876 , - 315 , - 3022 , - 2805 , - 1728 , - 4607 , - 2498 , - 217 , - 5332 , - 643 , - 4726 , - 381 , - 680 , - 4935 , - 4202 , - 3297 , - 4284 , - 971 , - 926 , - 3461 , - 5136 , - 5263 , - 402 , - 873 , - 3236 , - 1299 , - 2630 , - 1037 , - 4088 , - 87 , - 2106 , - 3953 , - 2188 , - 1627 , - 4334 , - 4117 , - 3040 , - 415 , - 3810 , - 1529 , - 1140 , - 1955 , - 534 , - 1693 , - 1992 , - 743 , - 10 , - 4609 , - 92 , - 2283 , - 2238 , - 4773 , - 944 , - 1071 , - 1714 , - 2185 , - 4548 , - 2611 , - 3942 , - 2349 , - 5400 , - 1399 , - 3418 , - 5265 , - 3500 , - 2939 , - 142 , - 5429 , - 4352 , - 1727 , - 5122 , - 2841 , - 2452 , - 3267 , - 1846 , - 3005 , - 3304 , - 2055 , - 1322 , - 417 , - 1404 , - 3595 , - 3550 , - 581 , - 2256 , - 2383 , - 3026 , - 3497 , - 356 , - 3923 , - 5254 , - 3661 , - 1208 , - 2711 , - 4730 , - 1073 , - 4812 , - 4251 , - 1454 , - 1237 , - 160 , - 3039 , - 930 , - 4153 , - 3764 , - 4579 , - 3158 , - 4317 , - 4616 , - 3367 , - 2634 , - 1729 , - 2716 , - 4907 , - 4862 , - 1893 , - 3568 , - 3695 , - 4338 , - 4809 , - 1668 , - 5235 , - 1062 , - 4973 , - 2520 , - 4023 , - 538 , - 2385 , - 620 , - 59 , - 2766 , - 2549 , - 1472 , - 4351 , - 2242 , - 5465 , - 5076 , - 387 , - 4470 , - 125 , - 424 , - 4679 , - 3946 , - 3041 , - 4028 , - 715 , - 670 , - 3205 , - 4880 , - 5007 , - 146 , - 617 , - 2980 , - 1043 , - 2374 , - 781 , - 3832 , - 5335 , - 1850 , - 3697 , - 1932 , - 1371 , - 4078 , - 3861 , - 2784 , - 159 , - 3554 , - 1273 , - 884 , - 1699 , - 278 , - 1437 , - 1736 , - 487 , - 5258 , - 4353 , - 5340 , - 2027 , - 1982 , - 4517 , - 688 , - 815 , - 1458 , - 1929 , - 4292 , - 2355 , - 3686 , - 2093 , - 5144 , - 1143 , - 3162 , - 5009 , - 3244 , - 2683 , - 5390 , - 5173 , - 4096 , - 1471 , - 4866 , - 2585 , - 2196 , - 3011 , - 1590 , - 2749 , - 3048 , - 1799 , - 1066 , - 161 , - 1148 , - 3339 , - 3294 , - 325 , - 2000 , - 2127 , - 2770 , - 3241 , - 100 , - 3667 , - 4998 , - 3405 , - 952 , - 2455 , - 4474 , - 817 , - 4556 , - 3995 , - 1198 , - 981 , - 5408 , - 2783 , - 674 , - 3897 , - 3508 , - 4323 , - 2902 , - 4061 , - 4360 , - 3111 , - 2378 , - 1473 , - 2460 , - 4651 , - 4606 , - 1637 , - 3312 , - 3439 , - 4082 , - 4553 , - 1412 , - 4979 , - 806 , - 4717 , - 2264 , - 3767 , - 282 , - 2129 , - 364 , - 5307 , - 2510 , - 2293 , - 1216 , - 4095 , - 1986 , - 5209 , - 4820 , - 131 , - 4214 , - 5373 , - 168 , - 4423 , - 3690 , - 2785 , - 3772 , - 459 , - 414 , - 2949 , - 4624 , - 4751 , - 5394 , - 361 , - 2724 , - 787 , - 2118 , - 525 , - 3576 , - 5079 , - 1594 , - 3441 , - 1676 , - 1115 , - 3822 , - 3605 , - 2528 , - 5407 , - 3298 , - 1017 , - 628 , - 1443 , - 22 , - 1181 , - 1480 , - 231 , - 5002 , - 4097 , - 5084 , - 1771 , - 1726 , - 4261 , - 432 , - 559 , - 1202 , - 1673 , - 4036 , - 2099 , - 3430 , - 1837 , - 4888 , - 887 , - 2906 , - 4753 , - 2988 , - 2427 , - 5134 , - 4917 , - 3840 , - 1215 , - 4610 , - 2329 , - 1940 , - 2755 , - 1334 , - 2493 , - 2792 , - 1543 , - 810 , - 5409 , - 892 , - 3083 , - 3038 , - 69 , - 1744 , - 1871 , - 2514 , - 2985 , - 5348 , - 3411 , - 4742 , - 3149 , - 696 , - 2199 , - 4218 , - 561 , - 4300 , - 3739 , - 942 , - 725 , - 5152 , - 2527 , - 418 , - 3641 , - 3252 , - 4067 , - 2646 , - 3805 , - 4104 , - 2855 , - 2122 , - 1217 , - 2204 , - 4395 , - 4350 , - 1381 , - 3056 , - 3183 , - 3826 , - 4297 , - 1156 , - 4723 , - 550 , - 4461 , - 2008 , - 3511 , - 26 , - 1873 , - 108 , - 5051 , - 2254 , - 2037 , - 960 , - 3839 , - 1730 , - 4953 , - 4564 , - 5379 , - 3958 , - 5117 , - 5416 , - 4167 , - 3434 , - 2529 , - 3516 , - 203 , - 158 , - 2693 , - 4368 , - 4495 , - 5138 , - 105 , - 2468 , - 531 , - 1862 , - 269 , - 3320 , - 4823 , - 1338 , - 3185 , - 1420 , - 859 , - 3566 , - 3349 , - 2272 , - 5151 , - 3042 , - 761 , - 372 , - 1187 , - 5270 , - 925 , - 1224 , - 5479 , - 4746 , - 3841 , - 4828 , - 1515 , - 1470 , - 4005 , - 176 , - 303 , - 946 , - 1417 , - 3780 , - 1843 , - 3174 , - 1581 , - 4632 , - 631 , - 2650 , - 4497 , - 2732 , - 2171 , - 4878 , - 4661 , - 3584 , - 959 , - 4354 , - 2073 , - 1684 , - 2499 , - 1078 , - 2237 , - 2536 , - 1287 , - 554 , - 5153 , - 636 , - 2827 , - 2782 , - 5317 , - 1488 , - 1615 , - 2258 , - 2729 , - 5092 , - 3155 , - 4486 , - 2893 , - 440 , - 1943 , - 3962 , - 305 , - 4044 , - 3483 , - 686 , - 469 , - 4896 , - 2271 , - 162 , - 3385 , - 2996 , - 3811 , - 2390 , - 3549 , - 3848 , - 2599 , - 1866 , - 961 , - 1948 , - 4139 , - 4094 , - 1125 , - 2800 , - 2927 , - 3570 , - 4041 , - 900 , - 4467 , - 294 , - 4205 , - 1752 , - 3255 , - 5274 , - 1617 , - 5356 , - 4795 , - 1998 , - 1781 , - 704 , - 3583 , - 1474 , - 4697 , - 4308 , - 5123 , - 3702 , - 4861 , - 5160 , - 3911 , - 3178 , - 2273 , - 3260 , - 5451 , - 5406 , - 2437 , - 4112 , - 4239 , - 4882 , - 5353 , - 2212 , - 275 , - 1606 , - 13 , - 3064 , - 4567 , - 1082 , - 2929 , - 1164 , - 603 , - 3310 , - 3093 , - 2016 , - 4895 , - 2786 , - 505 , - 116 , - 931 , - 5014 , - 669 , - 968 , - 5223 , - 4490 , - 3585 , - 4572 , - 1259 , - 1214 , - 3749 , - 5424 , - 47 , - 690 , - 1161 , - 3524 , - 1587 , - 2918 , - 1325 , - 4376 , - 375 , - 2394 , - 4241 , - 2476 , - 1915 , - 4622 , - 4405 , - 3328 , - 703 , - 4098 , - 1817 , - 1428 , - 2243 , - 822 , - 1981 , - 2280 , - 1031 , - 298 , - 4897 , - 380 , - 2571 , - 2526 , - 5061 , - 1232 , - 1359 , - 2002 , - 2473 , - 4836 , - 2899 , - 4230 , - 2637 , - 184 , - 1687 , - 3706 , - 49 , - 3788 , - 3227 , - 430 , - 213 , - 4640 , - 2015 , - 5410 , - 3129 , - 2740 , - 3555 , - 2134 , - 3293 , - 3592 , - 2343 , - 1610 , - 705 , - 1692 , - 3883 , - 3838 , - 869 , - 2544 , - 2671 , - 3314 , - 3785 , - 644 , - 4211 , - 38 , - 3949 , - 1496 , - 2999 , - 5018 , - 1361 , - 5100 , - 4539 , - 1742 , - 1525 , - 448 , - 3327 , - 1218 , - 4441 , - 4052 , - 4867 , - 3446 , - 4605 , - 4904 , - 3655 , - 2922 , - 2017 , - 3004 , - 5195 , - 5150 , - 2181 , - 3856 , - 3983 , - 4626 , - 5097 , - 1956 , - 19 , - 1350 , - 5261 , - 2808 , - 4311 , - 826 , - 2673 , - 908 , - 347 , - 3054 , - 2837 , - 1760 , - 4639 , - 2530 , - 249 , - 5364 , - 675 , - 4758 , - 413 , - 712 , - 4967 , - 4234 , - 3329 , - 4316 , - 1003 , - 958 , - 3493 , - 5168 , - 5295 , - 434 , - 905 , - 3268 , - 1331 , - 2662 , - 1069 , - 4120 , - 119 , - 2138 , - 3985 , - 2220 , - 1659 , - 4366 , - 4149 , - 3072 , - 447 , - 3842 , - 1561 , - 1172 , - 1987 , - 566 , - 1725 , - 2024 , - 775 , - 42 , - 4641 , - 124 , - 2315 , - 2270 , - 4805 , - 976 , - 1103 , - 1746 , - 2217 , - 4580 , - 2643 , - 3974 , - 2381 , - 5432 , - 1431 , - 3450 , - 5297 , - 3532 , - 2971 , - 174 , - 5461 , - 4384 , - 1759 , - 5154 , - 2873 , - 2484 , - 3299 , - 1878 , - 3037 , - 3336 , - 2087 , - 1354 , - 449 , - 1436 , - 3627 , - 3582 , - 613 , - 2288 , - 2415 , - 3058 , - 3529 , - 388 , - 3955 , - 5286 , - 3693 , - 1240 , - 2743 , - 4762 , - 1105 , - 4844 , - 4283 , - 1486 , - 1269 , - 192 , - 3071 , - 962 , - 4185 , - 3796 , - 4611 , - 3190 , - 4349 , - 4648 , - 3399 , - 2666 , - 1761 , - 2748 , - 4939 , - 4894 , - 1925 , - 3600 , - 3727 , - 4370 , - 4841 , - 1700 , - 5267 , - 1094 , - 5005 , - 2552 , - 4055 , - 570 , - 2417 , - 652 , - 91 , - 2798 , - 2581 , - 1504 , - 4383 , - 2274 , - 5497 , - 5108 , - 419 , - 4502 , - 157 , - 456 , - 4711 , - 3978 , - 3073 , - 4060 , - 747 , - 702 , - 3237 , - 4912 , - 5039 , - 178 , - 649 , - 3012 , - 1075 , - 2406 , - 813 , - 3864 , - 5367 , - 1882 , - 3729 , - 1964 , - 1403 , - 4110 , - 3893 , - 2816 , - 191 , - 3586 , - 1305 , - 916 , - 1731 , - 310 , - 1469 , - 1768 , - 519 , - 5290 , - 4385 , - 5372 , - 2059 , - 2014 , - 4549 , - 720 , - 847 , - 1490 , - 1961 , - 4324 , - 2387 , - 3718 , - 2125 , - 5176 , - 1175 , - 3194 , - 5041 , - 3276 , - 2715 , - 5422 , - 5205 , - 4128 , - 1503 , - 4898 , - 2617 , - 2228 , - 3043 , - 1622 , - 2781 , - 3080 , - 1831 , - 1098 , - 193 , - 1180 , - 3371 , - 3326 , - 357 , - 2032 , - 2159 , - 2802 , - 3273 , - 132 , - 3699 , - 5030 , - 3437 , - 984 , - 2487 , - 4506 , - 849 , - 4588 , - 4027 , - 1230 , - 1013 , - 5440 , - 2815 , - 706 , - 3929 , - 3540 , - 4355 , - 2934 , - 4093 , - 4392 , - 3143 , - 2410 , - 1505 , - 2492 , - 4683 , - 4638 , - 1669 , - 3344 , - 3471 , - 4114 , - 4585 , - 1444 , - 5011 , - 838 , - 4749 , - 2296 , - 3799 , - 314 , - 2161 , - 396 , - 5339 , - 2542 , - 2325 , - 1248 , - 4127 , - 2018 , - 5241 , - 4852 , - 163 , - 4246 , - 5405 , - 200 , - 4455 , - 3722 , - 2817 , - 3804 , - 491 , - 446 , - 2981 , - 4656 , - 4783 , - 5426 , - 393 , - 2756 , - 819 , - 2150 , - 557 , - 3608 , - 5111 , - 1626 , - 3473 , - 1708 , - 1147 , - 3854 , - 3637 , - 2560 , - 5439 , - 3330 , - 1049 , - 660 , - 1475 , - 54 , - 1213 , - 1512 , - 263 , - 5034 , - 4129 , - 5116 , - 1803 , - 1758 , - 4293 , - 464 , - 591 , - 1234 , - 1705 , - 4068 , - 2131 , - 3462 , - 1869 , - 4920 , - 919 , - 2938 , - 4785 , - 3020 , - 2459 , - 5166 , - 4949 , - 3872 , - 1247 , - 4642 , - 2361 , - 1972 , - 2787 , - 1366 , - 2525 , - 2824 , - 1575 , - 842 , - 5441 , - 924 , - 3115 , - 3070 , - 101 , - 1776 , - 1903 , - 2546 , - 3017 , - 5380 , - 3443 , - 4774 , - 3181 , - 728 , - 2231 , - 4250 , - 593 , - 4332 , - 3771 , - 974 , - 757 , - 5184 , - 2559 , - 450 , - 3673 , - 3284 , - 4099 , - 2678 , - 3837 , - 4136 , - 2887 , - 2154 , - 1249 , - 2236 , - 4427 , - 4382 , - 1413 , - 3088 , - 3215 , - 3858 , - 4329 , - 1188 , - 4755 , - 582 , - 4493 , - 2040 , - 3543 , - 58 , - 1905 , - 140 , - 5083 , - 2286 , - 2069 , - 992 , - 3871 , - 1762 , - 4985 , - 4596 , - 5411 , - 3990 , - 5149 , - 5448 , - 4199 , - 3466 , - 2561 , - 3548 , - 235 , - 190 , - 2725 , - 4400 , - 4527 , - 5170 , - 137 , - 2500 , - 563 , - 1894 , - 301 , - 3352 , - 4855 , - 1370 , - 3217 , - 1452 , - 891 , - 3598 , - 3381 , - 2304 , - 5183 , - 3074 , - 793 , - 404 , - 1219 , - 5302 , - 957 , - 1256 , - 7 , - 4778 , - 3873 , - 4860 , - 1547 , - 1502 , - 4037 , - 208 , - 335 , - 978 , - 1449 , - 3812 , - 1875 , - 3206 , - 1613 , - 4664 , - 663 , - 2682 , - 4529 , - 2764 , - 2203 , - 4910 , - 4693 , - 3616 , - 991 , - 4386 , - 2105 , - 1716 , - 2531 , - 1110 , - 2269 , - 2568 , - 1319 , - 586 , - 5185 , - 668 , - 2859 , - 2814 , - 5349 , - 1520 , - 1647 , - 2290 , - 2761 , - 5124 , - 3187 , - 4518 , - 2925 , - 472 , - 1975 , - 3994 , - 337 , - 4076 , - 3515 , - 718 , - 501 , - 4928 , - 2303 , - 194 , - 3417 , - 3028 , - 3843 , - 2422 , - 3581 , - 3880 , - 2631 , - 1898 , - 993 , - 1980 , - 4171 , - 4126 , - 1157 , - 2832 , - 2959 , - 3602 , - 4073 , - 932 , - 4499 , - 326 , - 4237 , - 1784 , - 3287 , - 5306 , - 1649 , - 5388 , - 4827 , - 2030 , - 1813 , - 736 , - 3615 , - 1506 , - 4729 , - 4340 , - 5155 , - 3734 , - 4893 , - 5192 , - 3943 , - 3210 , - 2305 , - 3292 , - 5483 , - 5438 , - 2469 , - 4144 , - 4271 , - 4914 , - 5385 , - 2244 , - 307 , - 1638 , - 45 , - 3096 , - 4599 , - 1114 , - 2961 , - 1196 , - 635 , - 3342 , - 3125 , - 2048 , - 4927 , - 2818 , - 537 , - 148 , - 963 , - 5046 , - 701 , - 1000 , - 5255 , - 4522 , - 3617 , - 4604 , - 1291 , - 1246 , - 3781 , - 5456 , - 79 , - 722 , - 1193 , - 3556 , - 1619 , - 2950 , - 1357 , - 4408 , - 407 , - 2426 , - 4273 , - 2508 , - 1947 , - 4654 , - 4437 , - 3360 , - 735 , - 4130 , - 1849 , - 1460 , - 2275 , - 854 , - 2013 , - 2312 , - 1063 , - 330 , - 4929 , - 412 , - 2603 , - 2558 , - 5093 , - 1264 , - 1391 , - 2034 , - 2505 , - 4868 , - 2931 , - 4262 , - 2669 , - 216 , - 1719 , - 3738 , - 81 , - 3820 , - 3259 , - 462 , - 245 , - 4672 , - 2047 , - 5442 , - 3161 , - 2772 , - 3587 , - 2166 , - 3325 , - 3624 , - 2375 , - 1642 , - 737 , - 1724 , - 3915 , - 3870 , - 901 , - 2576 , - 2703 , - 3346 , - 3817 , - 676 , - 4243 , - 70 , - 3981 , - 1528 , - 3031 , - 5050 , - 1393 , - 5132 , - 4571 , - 1774 , - 1557 , - 480 , - 3359 , - 1250 , - 4473 , - 4084 , - 4899 , - 3478 , - 4637 , - 4936 , - 3687 , - 2954 , - 2049 , - 3036 , - 5227 , - 5182 , - 2213 , - 3888 , - 4015 , - 4658 , - 5129 , - 1988 , - 51 , - 1382 , - 5293 , - 2840 , - 4343 , - 858 , - 2705 , - 940 , - 379 , - 3086 , - 2869 , - 1792 , - 4671 , - 2562 , - 281 , - 5396 , - 707 , - 4790 , - 445 , - 744 , - 4999 , - 4266 , - 3361 , - 4348 , - 1035 , - 990 , - 3525 , - 5200 , - 5327 , - 466 , - 937 , - 3300 , - 1363 , - 2694 , - 1101 , - 4152 , - 151 , - 2170 , - 4017 , - 2252 , - 1691 , - 4398 , - 4181 , - 3104 , - 479 , - 3874 , - 1593 , - 1204 , - 2019 , - 598 , - 1757 , - 2056 , - 807 , - 74 , - 4673 , - 156 , - 2347 , - 2302 , - 4837 , - 1008 , - 1135 , - 1778 , - 2249 , - 4612 , - 2675 , - 4006 , - 2413 , - 5464 , - 1463 , - 3482 , - 5329 , - 3564 , - 3003 , - 206 , - 5493 , - 4416 , - 1791 , - 5186 , - 2905 , - 2516 , - 3331 , - 1910 , - 3069 , - 3368 , - 2119 , - 1386 , - 481 , - 1468 , - 3659 , - 3614 , - 645 , - 2320 , - 2447 , - 3090 , - 3561 , - 420 , - 3987 , - 5318 , - 3725 , - 1272 , - 2775 , - 4794 , - 1137 , - 4876 , - 4315 , - 1518 , - 1301 , - 224 , - 3103 , - 994 , - 4217 , - 3828 , - 4643 , - 3222 , - 4381 , - 4680 , - 3431 , - 2698 , - 1793 , - 2780 , - 4971 , - 4926 , - 1957 , - 3632 , - 3759 , - 4402 , - 4873 , - 1732 , - 5299 , - 1126 , - 5037 , - 2584 , - 4087 , - 602 , - 2449 , - 684 , - 123 , - 2830 , - 2613 , - 1536 , - 4415 , - 2306 , - 25 , - 5140 , - 451 , - 4534 , - 189 , - 488 , - 4743 , - 4010 , - 3105 , - 4092 , - 779 , - 734 , - 3269 , - 4944 , - 5071 , - 210 , - 681 , - 3044 , - 1107 , - 2438 , - 845 , - 3896 , - 5399 , - 1914 , - 3761 , - 1996 , - 1435 , - 4142 , - 3925 , - 2848 , - 223 , - 3618 , - 1337 , - 948 , - 1763 , - 342 , - 1501 , - 1800 , - 551 , - 5322 , - 4417 , - 5404 , - 2091 , - 2046 , - 4581 , - 752 , - 879 , - 1522 , - 1993 , - 4356 , - 2419 , - 3750 , - 2157 , - 5208 , - 1207 , - 3226 , - 5073 , - 3308 , - 2747 , - 5454 , - 5237 , - 4160 , - 1535 , - 4930 , - 2649 , - 2260 , - 3075 , - 1654 , - 2813 , - 3112 , - 1863 , - 1130 , - 225 , - 1212 , - 3403 , - 3358 , - 389 , - 2064 , - 2191 , - 2834 , - 3305 , - 164 , - 3731 , - 5062 , - 3469 , - 1016 , - 2519 , - 4538 , - 881 , - 4620 , - 4059 , - 1262 , - 1045 , - 5472 , - 2847 , - 738 , - 3961 , - 3572 , - 4387 , - 2966 , - 4125 , - 4424 , - 3175 , - 2442 , - 1537 , - 2524 , - 4715 , - 4670 , - 1701 , - 3376 , - 3503 , - 4146 , - 4617 , - 1476 , - 5043 , - 870 , - 4781 , - 2328 , - 3831 , - 346 , - 2193 , - 428 , - 5371 , - 2574 , - 2357 , - 1280 , - 4159 , - 2050 , - 5273 , - 4884 , - 195 , - 4278 , - 5437 , - 232 , - 4487 , - 3754 , - 2849 , - 3836 , - 523 , - 478 , - 3013 , - 4688 , - 4815 , - 5458 , - 425 , - 2788 , - 851 , - 2182 , - 589 , - 3640 , - 5143 , - 1658 , - 3505 , - 1740 , - 1179 , - 3886 , - 3669 , - 2592 , - 5471 , - 3362 , - 1081 , - 692 , - 1507 , - 86 , - 1245 , - 1544 , - 295 , - 5066 , - 4161 , - 5148 , - 1835 , - 1790 , - 4325 , - 496 , - 623 , - 1266 , - 1737 , - 4100 , - 2163 , - 3494 , - 1901 , - 4952 , - 951 , - 2970 , - 4817 , - 3052 , - 2491 , - 5198 , - 4981 , - 3904 , - 1279 , - 4674 , - 2393 , - 2004 , - 2819 , - 1398 , - 2557 , - 2856 , - 1607 , - 874 , - 5473 , - 956 , - 3147 , - 3102 , - 133 , - 1808 , - 1935 , - 2578 , - 3049 , - 5412 , - 3475 , - 4806 , - 3213 , - 760 , - 2263 , - 4282 , - 625 , - 4364 , - 3803 , - 1006 , - 789 , - 5216 , - 2591 , - 482 , - 3705 , - 3316 , - 4131 , - 2710 , - 3869 , - 4168 , - 2919 , - 2186 , - 1281 , - 2268 , - 4459 , - 4414 , - 1445 , - 3120 , - 3247 , - 3890 , - 4361 , - 1220 , - 4787 , - 614 , - 4525 , - 2072 , - 3575 , - 90 , - 1937 , - 172 , - 5115 , - 2318 , - 2101 , - 1024 , - 3903 , - 1794 , - 5017 , - 4628 , - 5443 , - 4022 , - 5181 , - 5480 , - 4231 , - 3498 , - 2593 , - 3580 , - 267 , - 222 , - 2757 , - 4432 , - 4559 , - 5202 , - 169 , - 2532 , - 595 , - 1926 , - 333 , - 3384 , - 4887 , - 1402 , - 3249 , - 1484 , - 923 , - 3630 , - 3413 , - 2336 , - 5215 , - 3106 , - 825 , - 436 , - 1251 , - 5334 , - 989 , - 1288 , - 39 , - 4810 , - 3905 , - 4892 , - 1579 , - 1534 , - 4069 , - 240 , - 367 , - 1010 , - 1481 , - 3844 , - 1907 , - 3238 , - 1645 , - 4696 , - 695 , - 2714 , - 4561 , - 2796 , - 2235 , - 4942 , - 4725 , - 3648 , - 1023 , - 4418 , - 2137 , - 1748 , - 2563 , - 1142 , - 2301 , - 2600 , - 1351 , - 618 , - 5217 , - 700 , - 2891 , - 2846 , - 5381 , - 1552 , - 1679 , - 2322 , - 2793 , - 5156 , - 3219 , - 4550 , - 2957 , - 504 , - 2007 , - 4026 , - 369 , - 4108 , - 3547 , - 750 , - 533 , - 4960 , - 2335 , - 226 , - 3449 , - 3060 , - 3875 , - 2454 , - 3613 , - 3912 , - 2663 , - 1930 , - 1025 , - 2012 , - 4203 , - 4158 , - 1189 , - 2864 , - 2991 , - 3634 , - 4105 , - 964 , - 4531 , - 358 , - 4269 , - 1816 , - 3319 , - 5338 , - 1681 , - 5420 , - 4859 , - 2062 , - 1845 , - 768 , - 3647 , - 1538 , - 4761 , - 4372 , - 5187 , - 3766 , - 4925 , - 5224 , - 3975 , - 3242 , - 2337 , - 3324 , - 11 , - 5470 , - 2501 , - 4176 , - 4303 , - 4946 , - 5417 , - 2276 , - 339 , - 1670 , - 77 , - 3128 , - 4631 , - 1146 , - 2993 , - 1228 , - 667 , - 3374 , - 3157 , - 2080 , - 4959 , - 2850 , - 569 , - 180 , - 995 , - 5078 , - 733 , - 1032 , - 5287 , - 4554 , - 3649 , - 4636 , - 1323 , - 1278 , - 3813 , - 5488 , - 111 , - 754 , - 1225 , - 3588 , - 1651 , - 2982 , - 1389 , - 4440 , - 439 , - 2458 , - 4305 , - 2540 , - 1979 , - 4686 , - 4469 , - 3392 , - 767 , - 4162 , - 1881 , - 1492 , - 2307 , - 886 , - 2045 , - 2344 , - 1095 , - 362 , - 4961 , - 444 , - 2635 , - 2590 , - 5125 , - 1296 , - 1423 , - 2066 , - 2537 , - 4900 , - 2963 , - 4294 , - 2701 , - 248 , - 1751 , - 3770 , - 113 , - 3852 , - 3291 , - 494 , - 277 , - 4704 , - 2079 , - 5474 , - 3193 , - 2804 , - 3619 , - 2198 , - 3357 , - 3656 , - 2407 , - 1674 , - 769 , - 1756 , - 3947 , - 3902 , - 933 , - 2608 , - 2735 , - 3378 , - 3849 , - 708 , - 4275 , - 102 , - 4013 , - 1560 , - 3063 , - 5082 , - 1425 , - 5164 , - 4603 , - 1806 , - 1589 , - 512 , - 3391 , - 1282 , - 4505 , - 4116 , - 4931 , - 3510 , - 4669 , - 4968 , - 3719 , - 2986 , - 2081 , - 3068 , - 5259 , - 5214 , - 2245 , - 3920 , - 4047 , - 4690 , - 5161 , - 2020 , - 83 , - 1414 , - 5325 , - 2872 , - 4375 , - 890 , - 2737 , - 972 , - 411 , - 3118 , - 2901 , - 1824 , - 4703 , - 2594 , - 313 , - 5428 , - 739 , - 4822 , - 477 , - 776 , - 5031 , - 4298 , - 3393 , - 4380 , - 1067 , - 1022 , - 3557 , - 5232 , - 5359 , - 498 , - 969 , - 3332 , - 1395 , - 2726 , - 1133 , - 4184 , - 183 , - 2202 , - 4049 , - 2284 , - 1723 , - 4430 , - 4213 , - 3136 , - 511 , - 3906 , - 1625 , - 1236 , - 2051 , - 630 , - 1789 , - 2088 , - 839 , - 106 , - 4705 , - 188 , - 2379 , - 2334 , - 4869 , - 1040 , - 1167 , - 1810 , - 2281 , - 4644 , - 2707 , - 4038 , - 2445 , - 5496 , - 1495 , - 3514 , - 5361 , - 3596 , - 3035 , - 238 , - 21 , - 4448 , - 1823 , - 5218 , - 2937 , - 2548 , - 3363 , - 1942 , - 3101 , - 3400 , - 2151 , - 1418 , - 513 , - 1500 , - 3691 , - 3646 , - 677 , - 2352 , - 2479 , - 3122 , - 3593 , - 452 , - 4019 , - 5350 , - 3757 , - 1304 , - 2807 , - 4826 , - 1169 , - 4908 , - 4347 , - 1550 , - 1333 , - 256 , - 3135 , - 1026 , - 4249 , - 3860 , - 4675 , - 3254 , - 4413 , - 4712 , - 3463 , - 2730 , - 1825 , - 2812 , - 5003 , - 4958 , - 1989 , - 3664 , - 3791 , - 4434 , - 4905 , - 1764 , - 5331 , - 1158 , - 5069 , - 2616 , - 4119 , - 634 , - 2481 , - 716 , - 155 , - 2862 , - 2645 , - 1568 , - 4447 , - 2338 , - 57 , - 5172 , - 483 , - 4566 , - 221 , - 520 , - 4775 , - 4042 , - 3137 , - 4124 , - 811 , - 766 , - 3301 , - 4976 , - 5103 , - 242 , - 713 , - 3076 , - 1139 , - 2470 , - 877 , - 3928 , - 5431 , - 1946 , - 3793 , - 2028 , - 1467 , - 4174 , - 3957 , - 2880 , - 255 , - 3650 , - 1369 , - 980 , - 1795 , - 374 , - 1533 , - 1832 , - 583 , - 5354 , - 4449 , - 5436 , - 2123 , - 2078 , - 4613 , - 784 , - 911 , - 1554 , - 2025 , - 4388 , - 2451 , - 3782 , - 2189 , - 5240 , - 1239 , - 3258 , - 5105 , - 3340 , - 2779 , - 5486 , - 5269 , - 4192 , - 1567 , - 4962 , - 2681 , - 2292 , - 3107 , - 1686 , - 2845 , - 3144 , - 1895 , - 1162 , - 257 , - 1244 , - 3435 , - 3390 , - 421 , - 2096 , - 2223 , - 2866 , - 3337 , - 196 , - 3763 , - 5094 , - 3501 , - 1048 , - 2551 , - 4570 , - 913 , - 4652 , - 4091 , - 1294 , - 1077 , - 0 , - 2521 , - 3998 , - 255 , - 3820 , - 4949 , - 5034 , - 5467 , - 2072 , - 1809 , - 502 , - 5111 , - 324 , - 4237 , - 1538 , - 4755 , - 4144 , - 1097 , - 2574 , - 4399 , - 2396 , - 3525 , - 3610 , - 4043 , - 648 , - 385 , - 4646 , - 3687 , - 4468 , - 2813 , - 114 , - 3331 , - 2720 , - 5241 , - 1150 , - 2975 , - 972 , - 2101 , - 2186 , - 2619 , - 4792 , - 4529 , - 3222 , - 2263 , - 3044 , - 1389 , - 4258 , - 1907 , - 1296 , - 3817 , - 5294 , - 1551 , - 5116 , - 677 , - 762 , - 1195 , - 3368 , - 3105 , - 1798 , - 839 , - 1620 , - 5533 , - 2834 , - 483 , - 5440 , - 2393 , - 3870 , - 127 , - 3692 , - 4821 , - 4906 , - 5339 , - 1944 , - 1681 , - 374 , - 4983 , - 196 , - 4109 , - 1410 , - 4627 , - 4016 , - 969 , - 2446 , - 4271 , - 2268 , - 3397 , - 3482 , - 3915 , - 520 , - 257 , - 4518 , - 3559 , - 4340 , - 2685 , - 5554 , - 3203 , - 2592 , - 5113 , - 1022 , - 2847 , - 844 , - 1973 , - 2058 , - 2491 , - 4664 , - 4401 , - 3094 , - 2135 , - 2916 , - 1261 , - 4130 , - 1779 , - 1168 , - 3689 , - 5166 , - 1423 , - 4988 , - 549 , - 634 , - 1067 , - 3240 , - 2977 , - 1670 , - 711 , - 1492 , - 5405 , - 2706 , - 355 , - 5312 , - 2265 , - 3742 , - 5567 , - 3564 , - 4693 , - 4778 , - 5211 , - 1816 , - 1553 , - 246 , - 4855 , - 68 , - 3981 , - 1282 , - 4499 , - 3888 , - 841 , - 2318 , - 4143 , - 2140 , - 3269 , - 3354 , - 3787 , - 392 , - 129 , - 4390 , - 3431 , - 4212 , - 2557 , - 5426 , - 3075 , - 2464 , - 4985 , - 894 , - 2719 , - 716 , - 1845 , - 1930 , - 2363 , - 4536 , - 4273 , - 2966 , - 2007 , - 2788 , - 1133 , - 4002 , - 1651 , - 1040 , - 3561 , - 5038 , - 1295 , - 4860 , - 421 , - 506 , - 939 , - 3112 , - 2849 , - 1542 , - 583 , - 1364 , - 5277 , - 2578 , - 227 , - 5184 , - 2137 , - 3614 , - 5439 , - 3436 , - 4565 , - 4650 , - 5083 , - 1688 , - 1425 , - 118 , - 4727 , - 5508 , - 3853 , - 1154 , - 4371 , - 3760 , - 713 , - 2190 , - 4015 , - 2012 , - 3141 , - 3226 , - 3659 , - 264 , - 1 , - 4262 , - 3303 , - 4084 , - 2429 , - 5298 , - 2947 , - 2336 , - 4857 , - 766 , - 2591 , - 588 , - 1717 , - 1802 , - 2235 , - 4408 , - 4145 , - 2838 , - 1879 , - 2660 , - 1005 , - 3874 , - 1523 , - 912 , - 3433 , - 4910 , - 1167 , - 4732 , - 293 , - 378 , - 811 , - 2984 , - 2721 , - 1414 , - 455 , - 1236 , - 5149 , - 2450 , - 99 , - 5056 , - 2009 , - 3486 , - 5311 , - 3308 , - 4437 , - 4522 , - 4955 , - 1560 , - 1297 , - 5558 , - 4599 , - 5380 , - 3725 , - 1026 , - 4243 , - 3632 , - 585 , - 2062 , - 3887 , - 1884 , - 3013 , - 3098 , - 3531 , - 136 , - 5441 , - 4134 , - 3175 , - 3956 , - 2301 , - 5170 , - 2819 , - 2208 , - 4729 , - 638 , - 2463 , - 460 , - 1589 , - 1674 , - 2107 , - 4280 , - 4017 , - 2710 , - 1751 , - 2532 , - 877 , - 3746 , - 1395 , - 784 , - 3305 , - 4782 , - 1039 , - 4604 , - 165 , - 250 , - 683 , - 2856 , - 2593 , - 1286 , - 327 , - 1108 , - 5021 , - 2322 , - 5539 , - 4928 , - 1881 , - 3358 , - 5183 , - 3180 , - 4309 , - 4394 , - 4827 , - 1432 , - 1169 , - 5430 , - 4471 , - 5252 , - 3597 , - 898 , - 4115 , - 3504 , - 457 , - 1934 , - 3759 , - 1756 , - 2885 , - 2970 , - 3403 , - 8 , - 5313 , - 4006 , - 3047 , - 3828 , - 2173 , - 5042 , - 2691 , - 2080 , - 4601 , - 510 , - 2335 , - 332 , - 1461 , - 1546 , - 1979 , - 4152 , - 3889 , - 2582 , - 1623 , - 2404 , - 749 , - 3618 , - 1267 , - 656 , - 3177 , - 4654 , - 911 , - 4476 , - 37 , - 122 , - 555 , - 2728 , - 2465 , - 1158 , - 199 , - 980 , - 4893 , - 2194 , - 5411 , - 4800 , - 1753 , - 3230 , - 5055 , - 3052 , - 4181 , - 4266 , - 4699 , - 1304 , - 1041 , - 5302 , - 4343 , - 5124 , - 3469 , - 770 , - 3987 , - 3376 , - 329 , - 1806 , - 3631 , - 1628 , - 2757 , - 2842 , - 3275 , - 5448 , - 5185 , - 3878 , - 2919 , - 3700 , - 2045 , - 4914 , - 2563 , - 1952 , - 4473 , - 382 , - 2207 , - 204 , - 1333 , - 1418 , - 1851 , - 4024 , - 3761 , - 2454 , - 1495 , - 2276 , - 621 , - 3490 , - 1139 , - 528 , - 3049 , - 4526 , - 783 , - 4348 , - 5477 , - 5562 , - 427 , - 2600 , - 2337 , - 1030 , - 71 , - 852 , - 4765 , - 2066 , - 5283 , - 4672 , - 1625 , - 3102 , - 4927 , - 2924 , - 4053 , - 4138 , - 4571 , - 1176 , - 913 , - 5174 , - 4215 , - 4996 , - 3341 , - 642 , - 3859 , - 3248 , - 201 , - 1678 , - 3503 , - 1500 , - 2629 , - 2714 , - 3147 , - 5320 , - 5057 , - 3750 , - 2791 , - 3572 , - 1917 , - 4786 , - 2435 , - 1824 , - 4345 , - 254 , - 2079 , - 76 , - 1205 , - 1290 , - 1723 , - 3896 , - 3633 , - 2326 , - 1367 , - 2148 , - 493 , - 3362 , - 1011 , - 400 , - 2921 , - 4398 , - 655 , - 4220 , - 5349 , - 5434 , - 299 , - 2472 , - 2209 , - 902 , - 5511 , - 724 , - 4637 , - 1938 , - 5155 , - 4544 , - 1497 , - 2974 , - 4799 , - 2796 , - 3925 , - 4010 , - 4443 , - 1048 , - 785 , - 5046 , - 4087 , - 4868 , - 3213 , - 514 , - 3731 , - 3120 , - 73 , - 1550 , - 3375 , - 1372 , - 2501 , - 2586 , - 3019 , - 5192 , - 4929 , - 3622 , - 2663 , - 3444 , - 1789 , - 4658 , - 2307 , - 1696 , - 4217 , - 126 , - 1951 , - 5516 , - 1077 , - 1162 , - 1595 , - 3768 , - 3505 , - 2198 , - 1239 , - 2020 , - 365 , - 3234 , - 883 , - 272 , - 2793 , - 4270 , - 527 , - 4092 , - 5221 , - 5306 , - 171 , - 2344 , - 2081 , - 774 , - 5383 , - 596 , - 4509 , - 1810 , - 5027 , - 4416 , - 1369 , - 2846 , - 4671 , - 2668 , - 3797 , - 3882 , - 4315 , - 920 , - 657 , - 4918 , - 3959 , - 4740 , - 3085 , - 386 , - 3603 , - 2992 , - 5513 , - 1422 , - 3247 , - 1244 , - 2373 , - 2458 , - 2891 , - 5064 , - 4801 , - 3494 , - 2535 , - 3316 , - 1661 , - 4530 , - 2179 , - 1568 , - 4089 , - 5566 , - 1823 , - 5388 , - 949 , - 1034 , - 1467 , - 3640 , - 3377 , - 2070 , - 1111 , - 1892 , - 237 , - 3106 , - 755 , - 144 , - 2665 , - 4142 , - 399 , - 3964 , - 5093 , - 5178 , - 43 , - 2216 , - 1953 , - 646 , - 5255 , - 468 , - 4381 , - 1682 , - 4899 , - 4288 , - 1241 , - 2718 , - 4543 , - 2540 , - 3669 , - 3754 , - 4187 , - 792 , - 529 , - 4790 , - 3831 , - 4612 , - 2957 , - 258 , - 3475 , - 2864 , - 5385 , - 1294 , - 3119 , - 1116 , - 2245 , - 2330 , - 2763 , - 4936 , - 4673 , - 3366 , - 2407 , - 3188 , - 1533 , - 4402 , - 2051 , - 1440 , - 3961 , - 5438 , - 1695 , - 5260 , - 821 , - 906 , - 1339 , - 3512 , - 3249 , - 1942 , - 983 , - 1764 , - 109 , - 2978 , - 627 , - 16 , - 2537 , - 4014 , - 271 , - 3836 , - 4965 , - 5050 , - 5483 , - 2088 , - 1825 , - 518 , - 5127 , - 340 , - 4253 , - 1554 , - 4771 , - 4160 , - 1113 , - 2590 , - 4415 , - 2412 , - 3541 , - 3626 , - 4059 , - 664 , - 401 , - 4662 , - 3703 , - 4484 , - 2829 , - 130 , - 3347 , - 2736 , - 5257 , - 1166 , - 2991 , - 988 , - 2117 , - 2202 , - 2635 , - 4808 , - 4545 , - 3238 , - 2279 , - 3060 , - 1405 , - 4274 , - 1923 , - 1312 , - 3833 , - 5310 , - 1567 , - 5132 , - 693 , - 778 , - 1211 , - 3384 , - 3121 , - 1814 , - 855 , - 1636 , - 5549 , - 2850 , - 499 , - 5456 , - 2409 , - 3886 , - 143 , - 3708 , - 4837 , - 4922 , - 5355 , - 1960 , - 1697 , - 390 , - 4999 , - 212 , - 4125 , - 1426 , - 4643 , - 4032 , - 985 , - 2462 , - 4287 , - 2284 , - 3413 , - 3498 , - 3931 , - 536 , - 273 , - 4534 , - 3575 , - 4356 , - 2701 , - 2 , - 3219 , - 2608 , - 5129 , - 1038 , - 2863 , - 860 , - 1989 , - 2074 , - 2507 , - 4680 , - 4417 , - 3110 , - 2151 , - 2932 , - 1277 , - 4146 , - 1795 , - 1184 , - 3705 , - 5182 , - 1439 , - 5004 , - 565 , - 650 , - 1083 , - 3256 , - 2993 , - 1686 , - 727 , - 1508 , - 5421 , - 2722 , - 371 , - 5328 , - 2281 , - 3758 , - 15 , - 3580 , - 4709 , - 4794 , - 5227 , - 1832 , - 1569 , - 262 , - 4871 , - 84 , - 3997 , - 1298 , - 4515 , - 3904 , - 857 , - 2334 , - 4159 , - 2156 , - 3285 , - 3370 , - 3803 , - 408 , - 145 , - 4406 , - 3447 , - 4228 , - 2573 , - 5442 , - 3091 , - 2480 , - 5001 , - 910 , - 2735 , - 732 , - 1861 , - 1946 , - 2379 , - 4552 , - 4289 , - 2982 , - 2023 , - 2804 , - 1149 , - 4018 , - 1667 , - 1056 , - 3577 , - 5054 , - 1311 , - 4876 , - 437 , - 522 , - 955 , - 3128 , - 2865 , - 1558 , - 599 , - 1380 , - 5293 , - 2594 , - 243 , - 5200 , - 2153 , - 3630 , - 5455 , - 3452 , - 4581 , - 4666 , - 5099 , - 1704 , - 1441 , - 134 , - 4743 , - 5524 , - 3869 , - 1170 , - 4387 , - 3776 , - 729 , - 2206 , - 4031 , - 2028 , - 3157 , - 3242 , - 3675 , - 280 , - 17 , - 4278 , - 3319 , - 4100 , - 2445 , - 5314 , - 2963 , - 2352 , - 4873 , - 782 , - 2607 , - 604 , - 1733 , - 1818 , - 2251 , - 4424 , - 4161 , - 2854 , - 1895 , - 2676 , - 1021 , - 3890 , - 1539 , - 928 , - 3449 , - 4926 , - 1183 , - 4748 , - 309 , - 394 , - 827 , - 3000 , - 2737 , - 1430 , - 471 , - 1252 , - 5165 , - 2466 , - 115 , - 5072 , - 2025 , - 3502 , - 5327 , - 3324 , - 4453 , - 4538 , - 4971 , - 1576 , - 1313 , - 6 , - 4615 , - 5396 , - 3741 , - 1042 , - 4259 , - 3648 , - 601 , - 2078 , - 3903 , - 1900 , - 3029 , - 3114 , - 3547 , - 152 , - 5457 , - 4150 , - 3191 , - 3972 , - 2317 , - 5186 , - 2835 , - 2224 , - 4745 , - 654 , - 2479 , - 476 , - 1605 , - 1690 , - 2123 , - 4296 , - 4033 , - 2726 , - 1767 , - 2548 , - 893 , - 3762 , - 1411 , - 800 , - 3321 , - 4798 , - 1055 , - 4620 , - 181 , - 266 , - 699 , - 2872 , - 2609 , - 1302 , - 343 , - 1124 , - 5037 , - 2338 , - 5555 , - 4944 , - 1897 , - 3374 , - 5199 , - 3196 , - 4325 , - 4410 , - 4843 , - 1448 , - 1185 , - 5446 , - 4487 , - 5268 , - 3613 , - 914 , - 4131 , - 3520 , - 473 , - 1950 , - 3775 , - 1772 , - 2901 , - 2986 , - 3419 , - 24 , - 5329 , - 4022 , - 3063 , - 3844 , - 2189 , - 5058 , - 2707 , - 2096 , - 4617 , - 526 , - 2351 , - 348 , - 1477 , - 1562 , - 1995 , - 4168 , - 3905 , - 2598 , - 1639 , - 2420 , - 765 , - 3634 , - 1283 , - 672 , - 3193 , - 4670 , - 927 , - 4492 , - 53 , - 138 , - 571 , - 2744 , - 2481 , - 1174 , - 215 , - 996 , - 4909 , - 2210 , - 5427 , - 4816 , - 1769 , - 3246 , - 5071 , - 3068 , - 4197 , - 4282 , - 4715 , - 1320 , - 1057 , - 5318 , - 4359 , - 5140 , - 3485 , - 786 , - 4003 , - 3392 , - 345 , - 1822 , - 3647 , - 1644 , - 2773 , - 2858 , - 3291 , - 5464 , - 5201 , - 3894 , - 2935 , - 3716 , - 2061 , - 4930 , - 2579 , - 1968 , - 4489 , - 398 , - 2223 , - 220 , - 1349 , - 1434 , - 1867 , - 4040 , - 3777 , - 2470 , - 1511 , - 2292 , - 637 , - 3506 , - 1155 , - 544 , - 3065 , - 4542 , - 799 , - 4364 , - 5493 , - 10 , - 443 , - 2616 , - 2353 , - 1046 , - 87 , - 868 , - 4781 , - 2082 , - 5299 , - 4688 , - 1641 , - 3118 , - 4943 , - 2940 , - 4069 , - 4154 , - 4587 , - 1192 , - 929 , - 5190 , - 4231 , - 5012 , - 3357 , - 658 , - 3875 , - 3264 , - 217 , - 1694 , - 3519 , - 1516 , - 2645 , - 2730 , - 3163 , - 5336 , - 5073 , - 3766 , - 2807 , - 3588 , - 1933 , - 4802 , - 2451 , - 1840 , - 4361 , - 270 , - 2095 , - 92 , - 1221 , - 1306 , - 1739 , - 3912 , - 3649 , - 2342 , - 1383 , - 2164 , - 509 , - 3378 , - 1027 , - 416 , - 2937 , - 4414 , - 671 , - 4236 , - 5365 , - 5450 , - 315 , - 2488 , - 2225 , - 918 , - 5527 , - 740 , - 4653 , - 1954 , - 5171 , - 4560 , - 1513 , - 2990 , - 4815 , - 2812 , - 3941 , - 4026 , - 4459 , - 1064 , - 801 , - 5062 , - 4103 , - 4884 , - 3229 , - 530 , - 3747 , - 3136 , - 89 , - 1566 , - 3391 , - 1388 , - 2517 , - 2602 , - 3035 , - 5208 , - 4945 , - 3638 , - 2679 , - 3460 , - 1805 , - 4674 , - 2323 , - 1712 , - 4233 , - 142 , - 1967 , - 5532 , - 1093 , - 1178 , - 1611 , - 3784 , - 3521 , - 2214 , - 1255 , - 2036 , - 381 , - 3250 , - 899 , - 288 , - 2809 , - 4286 , - 543 , - 4108 , - 5237 , - 5322 , - 187 , - 2360 , - 2097 , - 790 , - 5399 , - 612 , - 4525 , - 1826 , - 5043 , - 4432 , - 1385 , - 2862 , - 4687 , - 2684 , - 3813 , - 3898 , - 4331 , - 936 , - 673 , - 4934 , - 3975 , - 4756 , - 3101 , - 402 , - 3619 , - 3008 , - 5529 , - 1438 , - 3263 , - 1260 , - 2389 , - 2474 , - 2907 , - 5080 , - 4817 , - 3510 , - 2551 , - 3332 , - 1677 , - 4546 , - 2195 , - 1584 , - 4105 , - 14 , - 1839 , - 5404 , - 965 , - 1050 , - 1483 , - 3656 , - 3393 , - 2086 , - 1127 , - 1908 , - 253 , - 3122 , - 771 , - 160 , - 2681 , - 4158 , - 415 , - 3980 , - 5109 , - 5194 , - 59 , - 2232 , - 1969 , - 662 , - 5271 , - 484 , - 4397 , - 1698 , - 4915 , - 4304 , - 1257 , - 2734 , - 4559 , - 2556 , - 3685 , - 3770 , - 4203 , - 808 , - 545 , - 4806 , - 3847 , - 4628 , - 2973 , - 274 , - 3491 , - 2880 , - 5401 , - 1310 , - 3135 , - 1132 , - 2261 , - 2346 , - 2779 , - 4952 , - 4689 , - 3382 , - 2423 , - 3204 , - 1549 , - 4418 , - 2067 , - 1456 , - 3977 , - 5454 , - 1711 , - 5276 , - 837 , - 922 , - 1355 , - 3528 , - 3265 , - 1958 , - 999 , - 1780 , - 125 , - 2994 , - 643 , - 32 , - 2553 , - 4030 , - 287 , - 3852 , - 4981 , - 5066 , - 5499 , - 2104 , - 1841 , - 534 , - 5143 , - 356 , - 4269 , - 1570 , - 4787 , - 4176 , - 1129 , - 2606 , - 4431 , - 2428 , - 3557 , - 3642 , - 4075 , - 680 , - 417 , - 4678 , - 3719 , - 4500 , - 2845 , - 146 , - 3363 , - 2752 , - 5273 , - 1182 , - 3007 , - 1004 , - 2133 , - 2218 , - 2651 , - 4824 , - 4561 , - 3254 , - 2295 , - 3076 , - 1421 , - 4290 , - 1939 , - 1328 , - 3849 , - 5326 , - 1583 , - 5148 , - 709 , - 794 , - 1227 , - 3400 , - 3137 , - 1830 , - 871 , - 1652 , - 5565 , - 2866 , - 515 , - 5472 , - 2425 , - 3902 , - 159 , - 3724 , - 4853 , - 4938 , - 5371 , - 1976 , - 1713 , - 406 , - 5015 , - 228 , - 4141 , - 1442 , - 4659 , - 4048 , - 1001 , - 2478 , - 4303 , - 2300 , - 3429 , - 3514 , - 3947 , - 552 , - 289 , - 4550 , - 3591 , - 4372 , - 2717 , - 18 , - 3235 , - 2624 , - 5145 , - 1054 , - 2879 , - 876 , - 2005 , - 2090 , - 2523 , - 4696 , - 4433 , - 3126 , - 2167 , - 2948 , - 1293 , - 4162 , - 1811 , - 1200 , - 3721 , - 5198 , - 1455 , - 5020 , - 581 , - 666 , - 1099 , - 3272 , - 3009 , - 1702 , - 743 , - 1524 , - 5437 , - 2738 , - 387 , - 5344 , - 2297 , - 3774 , - 31 , - 3596 , - 4725 , - 4810 , - 5243 , - 1848 , - 1585 , - 278 , - 4887 , - 100 , - 4013 , - 1314 , - 4531 , - 3920 , - 873 , - 2350 , - 4175 , - 2172 , - 3301 , - 3386 , - 3819 , - 424 , - 161 , - 4422 , - 3463 , - 4244 , - 2589 , - 5458 , - 3107 , - 2496 , - 5017 , - 926 , - 2751 , - 748 , - 1877 , - 1962 , - 2395 , - 4568 , - 4305 , - 2998 , - 2039 , - 2820 , - 1165 , - 4034 , - 1683 , - 1072 , - 3593 , - 5070 , - 1327 , - 4892 , - 453 , - 538 , - 971 , - 3144 , - 2881 , - 1574 , - 615 , - 1396 , - 5309 , - 2610 , - 259 , - 5216 , - 2169 , - 3646 , - 5471 , - 3468 , - 4597 , - 4682 , - 5115 , - 1720 , - 1457 , - 150 , - 4759 , - 5540 , - 3885 , - 1186 , - 4403 , - 3792 , - 745 , - 2222 , - 4047 , - 2044 , - 3173 , - 3258 , - 3691 , - 296 , - 33 , - 4294 , - 3335 , - 4116 , - 2461 , - 5330 , - 2979 , - 2368 , - 4889 , - 798 , - 2623 , - 620 , - 1749 , - 1834 , - 2267 , - 4440 , - 4177 , - 2870 , - 1911 , - 2692 , - 1037 , - 3906 , - 1555 , - 944 , - 3465 , - 4942 , - 1199 , - 4764 , - 325 , - 410 , - 843 , - 3016 , - 2753 , - 1446 , - 487 , - 1268 , - 5181 , - 2482 , - 131 , - 5088 , - 2041 , - 3518 , - 5343 , - 3340 , - 4469 , - 4554 , - 4987 , - 1592 , - 1329 , - 22 , - 4631 , - 5412 , - 3757 , - 1058 , - 4275 , - 3664 , - 617 , - 2094 , - 3919 , - 1916 , - 3045 , - 3130 , - 3563 , - 168 , - 5473 , - 4166 , - 3207 , - 3988 , - 2333 , - 5202 , - 2851 , - 2240 , - 4761 , - 670 , - 2495 , - 492 , - 1621 , - 1706 , - 2139 , - 4312 , - 4049 , - 2742 , - 1783 , - 2564 , - 909 , - 3778 , - 1427 , - 816 , - 3337 , - 4814 , - 1071 , - 4636 , - 197 , - 282 , - 715 , - 2888 , - 2625 , - 1318 , - 359 , - 1140 , - 5053 , - 2354 , - 3 , - 4960 , - 1913 , - 3390 , - 5215 , - 3212 , - 4341 , - 4426 , - 4859 , - 1464 , - 1201 , - 5462 , - 4503 , - 5284 , - 3629 , - 930 , - 4147 , - 3536 , - 489 , - 1966 , - 3791 , - 1788 , - 2917 , - 3002 , - 3435 , - 40 , - 5345 , - 4038 , - 3079 , - 3860 , - 2205 , - 5074 , - 2723 , - 2112 , - 4633 , - 542 , - 2367 , - 364 , - 1493 , - 1578 , - 2011 , - 4184 , - 3921 , - 2614 , - 1655 , - 2436 , - 781 , - 3650 , - 1299 , - 688 , - 3209 , - 4686 , - 943 , - 4508 , - 69 , - 154 , - 587 , - 2760 , - 2497 , - 1190 , - 231 , - 1012 , - 4925 , - 2226 , - 5443 , - 4832 , - 1785 , - 3262 , - 5087 , - 3084 , - 4213 , - 4298 , - 4731 , - 1336 , - 1073 , - 5334 , - 4375 , - 5156 , - 3501 , - 802 , - 4019 , - 3408 , - 361 , - 1838 , - 3663 , - 1660 , - 2789 , - 2874 , - 3307 , - 5480 , - 5217 , - 3910 , - 2951 , - 3732 , - 2077 , - 4946 , - 2595 , - 1984 , - 4505 , - 414 , - 2239 , - 236 , - 1365 , - 1450 , - 1883 , - 4056 , - 3793 , - 2486 , - 1527 , - 2308 , - 653 , - 3522 , - 1171 , - 560 , - 3081 , - 4558 , - 815 , - 4380 , - 5509 , - 26 , - 459 , - 2632 , - 2369 , - 1062 , - 103 , - 884 , - 4797 , - 2098 , - 5315 , - 4704 , - 1657 , - 3134 , - 4959 , - 2956 , - 4085 , - 4170 , - 4603 , - 1208 , - 945 , - 5206 , - 4247 , - 5028 , - 3373 , - 674 , - 3891 , - 3280 , - 233 , - 1710 , - 3535 , - 1532 , - 2661 , - 2746 , - 3179 , - 5352 , - 5089 , - 3782 , - 2823 , - 3604 , - 1949 , - 4818 , - 2467 , - 1856 , - 4377 , - 286 , - 2111 , - 108 , - 1237 , - 1322 , - 1755 , - 3928 , - 3665 , - 2358 , - 1399 , - 2180 , - 525 , - 3394 , - 1043 , - 432 , - 2953 , - 4430 , - 687 , - 4252 , - 5381 , - 5466 , - 331 , - 2504 , - 2241 , - 934 , - 5543 , - 756 , - 4669 , - 1970 , - 5187 , - 4576 , - 1529 , - 3006 , - 4831 , - 2828 , - 3957 , - 4042 , - 4475 , - 1080 , - 817 , - 5078 , - 4119 , - 4900 , - 3245 , - 546 , - 3763 , - 3152 , - 105 , - 1582 , - 3407 , - 1404 , - 2533 , - 2618 , - 3051 , - 5224 , - 4961 , - 3654 , - 2695 , - 3476 , - 1821 , - 4690 , - 2339 , - 1728 , - 4249 , - 158 , - 1983 , - 5548 , - 1109 , - 1194 , - 1627 , - 3800 , - 3537 , - 2230 , - 1271 , - 2052 , - 397 , - 3266 , - 915 , - 304 , - 2825 , - 4302 , - 559 , - 4124 , - 5253 , - 5338 , - 203 , - 2376 , - 2113 , - 806 , - 5415 , - 628 , - 4541 , - 1842 , - 5059 , - 4448 , - 1401 , - 2878 , - 4703 , - 2700 , - 3829 , - 3914 , - 4347 , - 952 , - 689 , - 4950 , - 3991 , - 4772 , - 3117 , - 418 , - 3635 , - 3024 , - 5545 , - 1454 , - 3279 , - 1276 , - 2405 , - 2490 , - 2923 , - 5096 , - 4833 , - 3526 , - 2567 , - 3348 , - 1693 , - 4562 , - 2211 , - 1600 , - 4121 , - 30 , - 1855 , - 5420 , - 981 , - 1066 , - 1499 , - 3672 , - 3409 , - 2102 , - 1143 , - 1924 , - 269 , - 3138 , - 787 , - 176 , - 2697 , - 4174 , - 431 , - 3996 , - 5125 , - 5210 , - 75 , - 2248 , - 1985 , - 678 , - 5287 , - 500 , - 4413 , - 1714 , - 4931 , - 4320 , - 1273 , - 2750 , - 4575 , - 2572 , - 3701 , - 3786 , - 4219 , - 824 , - 561 , - 4822 , - 3863 , - 4644 , - 2989 , - 290 , - 3507 , - 2896 , - 5417 , - 1326 , - 3151 , - 1148 , - 2277 , - 2362 , - 2795 , - 4968 , - 4705 , - 3398 , - 2439 , - 3220 , - 1565 , - 4434 , - 2083 , - 1472 , - 3993 , - 5470 , - 1727 , - 5292 , - 853 , - 938 , - 1371 , - 3544 , - 3281 , - 1974 , - 1015 , - 1796 , - 141 , - 3010 , - 659 , - 48 , - 2569 , - 4046 , - 303 , - 3868 , - 4997 , - 5082 , - 5515 , - 2120 , - 1857 , - 550 , - 5159 , - 372 , - 4285 , - 1586 , - 4803 , - 4192 , - 1145 , - 2622 , - 4447 , - 2444 , - 3573 , - 3658 , - 4091 , - 696 , - 433 , - 4694 , - 3735 , - 4516 , - 2861 , - 162 , - 3379 , - 2768 , - 5289 , - 1198 , - 3023 , - 1020 , - 2149 , - 2234 , - 2667 , - 4840 , - 4577 , - 3270 , - 2311 , - 3092 , - 1437 , - 4306 , - 1955 , - 1344 , - 3865 , - 5342 , - 1599 , - 5164 , - 725 , - 810 , - 1243 , - 3416 , - 3153 , - 1846 , - 887 , - 1668 , - 13 , - 2882 , - 531 , - 5488 , - 2441 , - 3918 , - 175 , - 3740 , - 4869 , - 4954 , - 5387 , - 1992 , - 1729 , - 422 , - 5031 , - 244 , - 4157 , - 1458 , - 4675 , - 4064 , - 1017 , - 2494 , - 4319 , - 2316 , - 3445 , - 3530 , - 3963 , - 568 , - 305 , - 4566 , - 3607 , - 4388 , - 2733 , - 34 , - 3251 , - 2640 , - 5161 , - 1070 , - 2895 , - 892 , - 2021 , - 2106 , - 2539 , - 4712 , - 4449 , - 3142 , - 2183 , - 2964 , - 1309 , - 4178 , - 1827 , - 1216 , - 3737 , - 5214 , - 1471 , - 5036 , - 597 , - 682 , - 1115 , - 3288 , - 3025 , - 1718 , - 759 , - 1540 , - 5453 , - 2754 , - 403 , - 5360 , - 2313 , - 3790 , - 47 , - 3612 , - 4741 , - 4826 , - 5259 , - 1864 , - 1601 , - 294 , - 4903 , - 116 , - 4029 , - 1330 , - 4547 , - 3936 , - 889 , - 2366 , - 4191 , - 2188 , - 3317 , - 3402 , - 3835 , - 440 , - 177 , - 4438 , - 3479 , - 4260 , - 2605 , - 5474 , - 3123 , - 2512 , - 5033 , - 942 , - 2767 , - 764 , - 1893 , - 1978 , - 2411 , - 4584 , - 4321 , - 3014 , - 2055 , - 2836 , - 1181 , - 4050 , - 1699 , - 1088 , - 3609 , - 5086 , - 1343 , - 4908 , - 469 , - 554 , - 987 , - 3160 , - 2897 , - 1590 , - 631 , - 1412 , - 5325 , - 2626 , - 275 , - 5232 , - 2185 , - 3662 , - 5487 , - 3484 , - 4613 , - 4698 , - 5131 , - 1736 , - 1473 , - 166 , - 4775 , - 5556 , - 3901 , - 1202 , - 4419 , - 3808 , - 761 , - 2238 , - 4063 , - 2060 , - 3189 , - 3274 , - 3707 , - 312 , - 49 , - 4310 , - 3351 , - 4132 , - 2477 , - 5346 , - 2995 , - 2384 , - 4905 , - 814 , - 2639 , - 636 , - 1765 , - 1850 , - 2283 , - 4456 , - 4193 , - 2886 , - 1927 , - 2708 , - 1053 , - 3922 , - 1571 , - 960 , - 3481 , - 4958 , - 1215 , - 4780 , - 341 , - 426 , - 859 , - 3032 , - 2769 , - 1462 , - 503 , - 1284 , - 5197 , - 2498 , - 147 , - 5104 , - 2057 , - 3534 , - 5359 , - 3356 , - 4485 , - 4570 , - 5003 , - 1608 , - 1345 , - 38 , - 4647 , - 5428 , - 3773 , - 1074 , - 4291 , - 3680 , - 633 , - 2110 , - 3935 , - 1932 , - 3061 , - 3146 , - 3579 , - 184 , - 5489 , - 4182 , - 3223 , - 4004 , - 2349 , - 5218 , - 2867 , - 2256 , - 4777 , - 686 , - 2511 , - 508 , - 1637 , - 1722 , - 2155 , - 4328 , - 4065 , - 2758 , - 1799 , - 2580 , - 925 , - 3794 , - 1443 , - 832 , - 3353 , - 4830 , - 1087 , - 4652 , - 213 , - 298 , - 731 , - 2904 , - 2641 , - 1334 , - 375 , - 1156 , - 5069 , - 2370 , - 19 , - 4976 , - 1929 , - 3406 , - 5231 , - 3228 , - 4357 , - 4442 , - 4875 , - 1480 , - 1217 , - 5478 , - 4519 , - 5300 , - 3645 , - 946 , - 4163 , - 3552 , - 505 , - 1982 , - 3807 , - 1804 , - 2933 , - 3018 , - 3451 , - 56 , - 5361 , - 4054 , - 3095 , - 3876 , - 2221 , - 5090 , - 2739 , - 2128 , - 4649 , - 558 , - 2383 , - 380 , - 1509 , - 1594 , - 2027 , - 4200 , - 3937 , - 2630 , - 1671 , - 2452 , - 797 , - 3666 , - 1315 , - 704 , - 3225 , - 4702 , - 959 , - 4524 , - 85 , - 170 , - 603 , - 2776 , - 2513 , - 1206 , - 247 , - 1028 , - 4941 , - 2242 , - 5459 , - 4848 , - 1801 , - 3278 , - 5103 , - 3100 , - 4229 , - 4314 , - 4747 , - 1352 , - 1089 , - 5350 , - 4391 , - 5172 , - 3517 , - 818 , - 4035 , - 3424 , - 377 , - 1854 , - 3679 , - 1676 , - 2805 , - 2890 , - 3323 , - 5496 , - 5233 , - 3926 , - 2967 , - 3748 , - 2093 , - 4962 , - 2611 , - 2000 , - 4521 , - 430 , - 2255 , - 252 , - 1381 , - 1466 , - 1899 , - 4072 , - 3809 , - 2502 , - 1543 , - 2324 , - 669 , - 3538 , - 1187 , - 576 , - 3097 , - 4574 , - 831 , - 4396 , - 5525 , - 42 , - 475 , - 2648 , - 2385 , - 1078 , - 119 , - 900 , - 4813 , - 2114 , - 5331 , - 4720 , - 1673 , - 3150 , - 4975 , - 2972 , - 4101 , - 4186 , - 4619 , - 1224 , - 961 , - 5222 , - 4263 , - 5044 , - 3389 , - 690 , - 3907 , - 3296 , - 249 , - 1726 , - 3551 , - 1548 , - 2677 , - 2762 , - 3195 , - 5368 , - 5105 , - 3798 , - 2839 , - 3620 , - 1965 , - 4834 , - 2483 , - 1872 , - 4393 , - 302 , - 2127 , - 124 , - 1253 , - 1338 , - 1771 , - 3944 , - 3681 , - 2374 , - 1415 , - 2196 , - 541 , - 3410 , - 1059 , - 448 , - 2969 , - 4446 , - 703 , - 4268 , - 5397 , - 5482 , - 347 , - 2520 , - 2257 , - 950 , - 5559 , - 772 , - 4685 , - 1986 , - 5203 , - 4592 , - 1545 , - 3022 , - 4847 , - 2844 , - 3973 , - 4058 , - 4491 , - 1096 , - 833 , - 5094 , - 4135 , - 4916 , - 3261 , - 562 , - 3779 , - 3168 , - 121 , - 1598 , - 3423 , - 1420 , - 2549 , - 2634 , - 3067 , - 5240 , - 4977 , - 3670 , - 2711 , - 3492 , - 1837 , - 4706 , - 2355 , - 1744 , - 4265 , - 174 , - 1999 , - 5564 , - 1125 , - 1210 , - 1643 , - 3816 , - 3553 , - 2246 , - 1287 , - 2068 , - 413 , - 3282 , - 931 , - 320 , - 2841 , - 4318 , - 575 , - 4140 , - 5269 , - 5354 , - 219 , - 2392 , - 2129 , - 822 , - 5431 , - 644 , - 4557 , - 1858 , - 5075 , - 4464 , - 1417 , - 2894 , - 4719 , - 2716 , - 3845 , - 3930 , - 4363 , - 968 , - 705 , - 4966 , - 4007 , - 4788 , - 3133 , - 434 , - 3651 , - 3040 , - 5561 , - 1470 , - 3295 , - 1292 , - 2421 , - 2506 , - 2939 , - 5112 , - 4849 , - 3542 , - 2583 , - 3364 , - 1709 , - 4578 , - 2227 , - 1616 , - 4137 , - 46 , - 1871 , - 5436 , - 997 , - 1082 , - 1515 , - 3688 , - 3425 , - 2118 , - 1159 , - 1940 , - 285 , - 3154 , - 803 , - 192 , - 2713 , - 4190 , - 447 , - 4012 , - 5141 , - 5226 , - 91 , - 2264 , - 2001 , - 694 , - 5303 , - 516 , - 4429 , - 1730 , - 4947 , - 4336 , - 1289 , - 2766 , - 4591 , - 2588 , - 3717 , - 3802 , - 4235 , - 840 , - 577 , - 4838 , - 3879 , - 4660 , - 3005 , - 306 , - 3523 , - 2912 , - 5433 , - 1342 , - 3167 , - 1164 , - 2293 , - 2378 , - 2811 , - 4984 , - 4721 , - 3414 , - 2455 , - 3236 , - 1581 , - 4450 , - 2099 , - 1488 , - 4009 , - 5486 , - 1743 , - 5308 , - 869 , - 954 , - 1387 , - 3560 , - 3297 , - 1990 , - 1031 , - 1812 , - 157 , - 3026 , - 675 , - 64 , - 2585 , - 4062 , - 319 , - 3884 , - 5013 , - 5098 , - 5531 , - 2136 , - 1873 , - 566 , - 5175 , - 388 , - 4301 , - 1602 , - 4819 , - 4208 , - 1161 , - 2638 , - 4463 , - 2460 , - 3589 , - 3674 , - 4107 , - 712 , - 449 , - 4710 , - 3751 , - 4532 , - 2877 , - 178 , - 3395 , - 2784 , - 5305 , - 1214 , - 3039 , - 1036 , - 2165 , - 2250 , - 2683 , - 4856 , - 4593 , - 3286 , - 2327 , - 3108 , - 1453 , - 4322 , - 1971 , - 1360 , - 3881 , - 5358 , - 1615 , - 5180 , - 741 , - 826 , - 1259 , - 3432 , - 3169 , - 1862 , - 903 , - 1684 , - 29 , - 2898 , - 547 , - 5504 , - 2457 , - 3934 , - 191 , - 3756 , - 4885 , - 4970 , - 5403 , - 2008 , - 1745 , - 438 , - 5047 , - 260 , - 4173 , - 1474 , - 4691 , - 4080 , - 1033 , - 2510 , - 4335 , - 2332 , - 3461 , - 3546 , - 3979 , - 584 , - 321 , - 4582 , - 3623 , - 4404 , - 2749 , - 50 , - 3267 , - 2656 , - 5177 , - 1086 , - 2911 , - 908 , - 2037 , - 2122 , - 2555 , - 4728 , - 4465 , - 3158 , - 2199 , - 2980 , - 1325 , - 4194 , - 1843 , - 1232 , - 3753 , - 5230 , - 1487 , - 5052 , - 613 , - 698 , - 1131 , - 3304 , - 3041 , - 1734 , - 775 , - 1556 , - 5469 , - 2770 , - 419 , - 5376 , - 2329 , - 3806 , - 63 , - 3628 , - 4757 , - 4842 , - 5275 , - 1880 , - 1617 , - 310 , - 4919 , - 132 , - 4045 , - 1346 , - 4563 , - 3952 , - 905 , - 2382 , - 4207 , - 2204 , - 3333 , - 3418 , - 3851 , - 456 , - 193 , - 4454 , - 3495 , - 4276 , - 2621 , - 5490 , - 3139 , - 2528 , - 5049 , - 958 , - 2783 , - 780 , - 1909 , - 1994 , - 2427 , - 4600 , - 4337 , - 3030 , - 2071 , - 2852 , - 1197 , - 4066 , - 1715 , - 1104 , - 3625 , - 5102 , - 1359 , - 4924 , - 485 , - 570 , - 1003 , - 3176 , - 2913 , - 1606 , - 647 , - 1428 , - 5341 , - 2642 , - 291 , - 5248 , - 2201 , - 3678 , - 5503 , - 3500 , - 4629 , - 4714 , - 5147 , - 1752 , - 1489 , - 182 , - 4791 , - 4 , - 3917 , - 1218 , - 4435 , - 3824 , - 777 , - 2254 , - 4079 , - 2076 , - 3205 , - 3290 , - 3723 , - 328 , - 65 , - 4326 , - 3367 , - 4148 , - 2493 , - 5362 , - 3011 , - 2400 , - 4921 , - 830 , - 2655 , - 652 , - 1781 , - 1866 , - 2299 , - 4472 , - 4209 , - 2902 , - 1943 , - 2724 , - 1069 , - 3938 , - 1587 , - 976 , - 3497 , - 4974 , - 1231 , - 4796 , - 357 , - 442 , - 875 , - 3048 , - 2785 , - 1478 , - 519 , - 1300 , - 5213 , - 2514 , - 163 , - 5120 , - 2073 , - 3550 , - 5375 , - 3372 , - 4501 , - 4586 , - 5019 , - 1624 , - 1361 , - 54 , - 4663 , - 5444 , - 3789 , - 1090 , - 4307 , - 3696 , - 649 , - 2126 , - 3951 , - 1948 , - 3077 , - 3162 , - 3595 , - 200 , - 5505 , - 4198 , - 3239 , - 4020 , - 2365 , - 5234 , - 2883 , - 2272 , - 4793 , - 702 , - 2527 , - 524 , - 1653 , - 1738 , - 2171 , - 4344 , - 4081 , - 2774 , - 1815 , - 2596 , - 941 , - 3810 , - 1459 , - 848 , - 3369 , - 4846 , - 1103 , - 4668 , - 229 , - 314 , - 747 , - 2920 , - 2657 , - 1350 , - 391 , - 1172 , - 5085 , - 2386 , - 35 , - 4992 , - 1945 , - 3422 , - 5247 , - 3244 , - 4373 , - 4458 , - 4891 , - 1496 , - 1233 , - 5494 , - 4535 , - 5316 , - 3661 , - 962 , - 4179 , - 3568 , - 521 , - 1998 , - 3823 , - 1820 , - 2949 , - 3034 , - 3467 , - 72 , - 5377 , - 4070 , - 3111 , - 3892 , - 2237 , - 5106 , - 2755 , - 2144 , - 4665 , - 574 , - 2399 , - 396 , - 1525 , - 1610 , - 2043 , - 4216 , - 3953 , - 2646 , - 1687 , - 2468 , - 813 , - 3682 , - 1331 , - 720 , - 3241 , - 4718 , - 975 , - 4540 , - 101 , - 186 , - 619 , - 2792 , - 2529 , - 1222 , - 263 , - 1044 , - 4957 , - 2258 , - 5475 , - 4864 , - 1817 , - 3294 , - 5119 , - 3116 , - 4245 , - 4330 , - 4763 , - 1368 , - 1105 , - 5366 , - 4407 , - 5188 , - 3533 , - 834 , - 4051 , - 3440 , - 393 , - 1870 , - 3695 , - 1692 , - 2821 , - 2906 , - 3339 , - 5512 , - 5249 , - 3942 , - 2983 , - 3764 , - 2109 , - 4978 , - 2627 , - 2016 , - 4537 , - 446 , - 2271 , - 268 , - 1397 , - 1482 , - 1915 , - 4088 , - 3825 , - 2518 , - 1559 , - 2340 , - 685 , - 3554 , - 1203 , - 592 , - 3113 , - 4590 , - 847 , - 4412 , - 5541 , - 58 , - 491 , - 2664 , - 2401 , - 1094 , - 135 , - 916 , - 4829 , - 2130 , - 5347 , - 4736 , - 1689 , - 3166 , - 4991 , - 2988 , - 4117 , - 4202 , - 4635 , - 1240 , - 977 , - 5238 , - 4279 , - 5060 , - 3405 , - 706 , - 3923 , - 3312 , - 265 , - 1742 , - 3567 , - 1564 , - 2693 , - 2778 , - 3211 , - 5384 , - 5121 , - 3814 , - 2855 , - 3636 , - 1981 , - 4850 , - 2499 , - 1888 , - 4409 , - 318 , - 2143 , - 140 , - 1269 , - 1354 , - 1787 , - 3960 , - 3697 , - 2390 , - 1431 , - 2212 , - 557 , - 3426 , - 1075 , - 464 , - 2985 , - 4462 , - 719 , - 4284 , - 5413 , - 5498 , - 363 , - 2536 , - 2273 , - 966 , - 7 , - 788 , - 4701 , - 2002 , - 5219 , - 4608 , - 1561 , - 3038 , - 4863 , - 2860 , - 3989 , - 4074 , - 4507 , - 1112 , - 849 , - 5110 , - 4151 , - 4932 , - 3277 , - 578 , - 3795 , - 3184 , - 137 , - 1614 , - 3439 , - 1436 , - 2565 , - 2650 , - 3083 , - 5256 , - 4993 , - 3686 , - 2727 , - 3508 , - 1853 , - 4722 , - 2371 , - 1760 , - 4281 , - 190 , - 2015 , - 12 , - 1141 , - 1226 , - 1659 , - 3832 , - 3569 , - 2262 , - 1303 , - 2084 , - 429 , - 3298 , - 947 , - 336 , - 2857 , - 4334 , - 591 , - 4156 , - 5285 , - 5370 , - 235 , - 2408 , - 2145 , - 838 , - 5447 , - 660 , - 4573 , - 1874 , - 5091 , - 4480 , - 1433 , - 2910 , - 4735 , - 2732 , - 3861 , - 3946 , - 4379 , - 984 , - 721 , - 4982 , - 4023 , - 4804 , - 3149 , - 450 , - 3667 , - 3056 , - 9 , - 1486 , - 3311 , - 1308 , - 2437 , - 2522 , - 2955 , - 5128 , - 4865 , - 3558 , - 2599 , - 3380 , - 1725 , - 4594 , - 2243 , - 1632 , - 4153 , - 62 , - 1887 , - 5452 , - 1013 , - 1098 , - 1531 , - 3704 , - 3441 , - 2134 , - 1175 , - 1956 , - 301 , - 3170 , - 819 , - 208 , - 2729 , - 4206 , - 463 , - 4028 , - 5157 , - 5242 , - 107 , - 2280 , - 2017 , - 710 , - 5319 , - 532 , - 4445 , - 1746 , - 4963 , - 4352 , - 1305 , - 2782 , - 4607 , - 2604 , - 3733 , - 3818 , - 4251 , - 856 , - 593 , - 4854 , - 3895 , - 4676 , - 3021 , - 322 , - 3539 , - 2928 , - 5449 , - 1358 , - 3183 , - 1180 , - 2309 , - 2394 , - 2827 , - 5000 , - 4737 , - 3430 , - 2471 , - 3252 , - 1597 , - 4466 , - 2115 , - 1504 , - 4025 , - 5502 , - 1759 , - 5324 , - 885 , - 970 , - 1403 , - 3576 , - 3313 , - 2006 , - 1047 , - 1828 , - 173 , - 3042 , - 691 , - 80 , - 2601 , - 4078 , - 335 , - 3900 , - 5029 , - 5114 , - 5547 , - 2152 , - 1889 , - 582 , - 5191 , - 404 , - 4317 , - 1618 , - 4835 , - 4224 , - 1177 , - 2654 , - 4479 , - 2476 , - 3605 , - 3690 , - 4123 , - 728 , - 465 , - 4726 , - 3767 , - 4548 , - 2893 , - 194 , - 3411 , - 2800 , - 5321 , - 1230 , - 3055 , - 1052 , - 2181 , - 2266 , - 2699 , - 4872 , - 4609 , - 3302 , - 2343 , - 3124 , - 1469 , - 4338 , - 1987 , - 1376 , - 3897 , - 5374 , - 1631 , - 5196 , - 757 , - 842 , - 1275 , - 3448 , - 3185 , - 1878 , - 919 , - 1700 , - 45 , - 2914 , - 563 , - 5520 , - 2473 , - 3950 , - 207 , - 3772 , - 4901 , - 4986 , - 5419 , - 2024 , - 1761 , - 454 , - 5063 , - 276 , - 4189 , - 1490 , - 4707 , - 4096 , - 1049 , - 2526 , - 4351 , - 2348 , - 3477 , - 3562 , - 3995 , - 600 , - 337 , - 4598 , - 3639 , - 4420 , - 2765 , - 66 , - 3283 , - 2672 , - 5193 , - 1102 , - 2927 , - 924 , - 2053 , - 2138 , - 2571 , - 4744 , - 4481 , - 3174 , - 2215 , - 2996 , - 1341 , - 4210 , - 1859 , - 1248 , - 3769 , - 5246 , - 1503 , - 5068 , - 629 , - 714 , - 1147 , - 3320 , - 3057 , - 1750 , - 791 , - 1572 , - 5485 , - 2786 , - 435 , - 5392 , - 2345 , - 3822 , - 79 , - 3644 , - 4773 , - 4858 , - 5291 , - 1896 , - 1633 , - 326 , - 4935 , - 148 , - 4061 , - 1362 , - 4579 , - 3968 , - 921 , - 2398 , - 4223 , - 2220 , - 3349 , - 3434 , - 3867 , - 472 , - 209 , - 4470 , - 3511 , - 4292 , - 2637 , - 5506 , - 3155 , - 2544 , - 5065 , - 974 , - 2799 , - 796 , - 1925 , - 2010 , - 2443 , - 4616 , - 4353 , - 3046 , - 2087 , - 2868 , - 1213 , - 4082 , - 1731 , - 1120 , - 3641 , - 5118 , - 1375 , - 4940 , - 501 , - 586 , - 1019 , - 3192 , - 2929 , - 1622 , - 663 , - 1444 , - 5357 , - 2658 , - 307 , - 5264 , - 2217 , - 3694 , - 5519 , - 3516 , - 4645 , - 4730 , - 5163 , - 1768 , - 1505 , - 198 , - 4807 , - 20 , - 3933 , - 1234 , - 4451 , - 3840 , - 793 , - 2270 , - 4095 , - 2092 , - 3221 , - 3306 , - 3739 , - 344 , - 81 , - 4342 , - 3383 , - 4164 , - 2509 , - 5378 , - 3027 , - 2416 , - 4937 , - 846 , - 2671 , - 668 , - 1797 , - 1882 , - 2315 , - 4488 , - 4225 , - 2918 , - 1959 , - 2740 , - 1085 , - 3954 , - 1603 , - 992 , - 3513 , - 4990 , - 1247 , - 4812 , - 373 , - 458 , - 891 , - 3064 , - 2801 , - 1494 , - 535 , - 1316 , - 5229 , - 2530 , - 179 , - 5136 , - 2089 , - 3566 , - 5391 , - 3388 , - 4517 , - 4602 , - 5035 , - 1640 , - 1377 , - 70 , - 4679 , - 5460 , - 3805 , - 1106 , - 4323 , - 3712 , - 665 , - 2142 , - 3967 , - 1964 , - 3093 , - 3178 , - 3611 , - 216 , - 5521 , - 4214 , - 3255 , - 4036 , - 2381 , - 5250 , - 2899 , - 2288 , - 4809 , - 718 , - 2543 , - 540 , - 1669 , - 1754 , - 2187 , - 4360 , - 4097 , - 2790 , - 1831 , - 2612 , - 957 , - 3826 , - 1475 , - 864 , - 3385 , - 4862 , - 1119 , - 4684 , - 245 , - 330 , - 763 , - 2936 , - 2673 , - 1366 , - 407 , - 1188 , - 5101 , - 2402 , - 51 , - 5008 , - 1961 , - 3438 , - 5263 , - 3260 , - 4389 , - 4474 , - 4907 , - 1512 , - 1249 , - 5510 , - 4551 , - 5332 , - 3677 , - 978 , - 4195 , - 3584 , - 537 , - 2014 , - 3839 , - 1836 , - 2965 , - 3050 , - 3483 , - 88 , - 5393 , - 4086 , - 3127 , - 3908 , - 2253 , - 5122 , - 2771 , - 2160 , - 4681 , - 590 , - 2415 , - 412 , - 1541 , - 1626 , - 2059 , - 4232 , - 3969 , - 2662 , - 1703 , - 2484 , - 829 , - 3698 , - 1347 , - 736 , - 3257 , - 4734 , - 991 , - 4556 , - 117 , - 202 , - 635 , - 2808 , - 2545 , - 1238 , - 279 , - 1060 , - 4973 , - 2274 , - 5491 , - 4880 , - 1833 , - 3310 , - 5135 , - 3132 , - 4261 , - 4346 , - 4779 , - 1384 , - 1121 , - 5382 , - 4423 , - 5204 , - 3549 , - 850 , - 4067 , - 3456 , - 409 , - 1886 , - 3711 , - 1708 , - 2837 , - 2922 , - 3355 , - 5528 , - 5265 , - 3958 , - 2999 , - 3780 , - 2125 , - 4994 , - 2643 , - 2032 , - 4553 , - 462 , - 2287 , - 284 , - 1413 , - 1498 , - 1931 , - 4104 , - 3841 , - 2534 , - 1575 , - 2356 , - 701 , - 3570 , - 1219 , - 608 , - 3129 , - 4606 , - 863 , - 4428 , - 5557 , - 74 , - 507 , - 2680 , - 2417 , - 1110 , - 151 , - 932 , - 4845 , - 2146 , - 5363 , - 4752 , - 1705 , - 3182 , - 5007 , - 3004 , - 4133 , - 4218 , - 4651 , - 1256 , - 993 , - 5254 , - 4295 , - 5076 , - 3421 , - 722 , - 3939 , - 3328 , - 281 , - 1758 , - 3583 , - 1580 , - 2709 , - 2794 , - 3227 , - 5400 , - 5137 , - 3830 , - 2871 , - 3652 , - 1997 , - 4866 , - 2515 , - 1904 , - 4425 , - 334 , - 2159 , - 156 , - 1285 , - 1370 , - 1803 , - 3976 , - 3713 , - 2406 , - 1447 , - 2228 , - 573 , - 3442 , - 1091 , - 480 , - 3001 , - 4478 , - 735 , - 4300 , - 5429 , - 5514 , - 379 , - 2552 , - 2289 , - 982 , - 23 , - 804 , - 4717 , - 2018 , - 5235 , - 4624 , - 1577 , - 3054 , - 4879 , - 2876 , - 4005 , - 4090 , - 4523 , - 1128 , - 865 , - 5126 , - 4167 , - 4948 , - 3293 , - 594 , - 3811 , - 3200 , - 153 , - 1630 , - 3455 , - 1452 , - 2581 , - 2666 , - 3099 , - 5272 , - 5009 , - 3702 , - 2743 , - 3524 , - 1869 , - 4738 , - 2387 , - 1776 , - 4297 , - 206 , - 2031 , - 28 , - 1157 , - 1242 , - 1675 , - 3848 , - 3585 , - 2278 , - 1319 , - 2100 , - 445 , - 3314 , - 963 , - 352 , - 2873 , - 4350 , - 607 , - 4172 , - 5301 , - 5386 , - 251 , - 2424 , - 2161 , - 854 , - 5463 , - 676 , - 4589 , - 1890 , - 5107 , - 4496 , - 1449 , - 2926 , - 4751 , - 2748 , - 3877 , - 3962 , - 4395 , - 1000 , - 737 , - 4998 , - 4039 , - 4820 , - 3165 , - 466 , - 3683 , - 3072 , - 25 , - 1502 , - 3327 , - 1324 , - 2453 , - 2538 , - 2971 , - 5144 , - 4881 , - 3574 , - 2615 , - 3396 , - 1741 , - 4610 , - 2259 , - 1648 , - 4169 , - 78 , - 1903 , - 5468 , - 1029 , - 1114 , - 1547 , - 3720 , - 3457 , - 2150 , - 1191 , - 1972 , - 317 , - 3186 , - 835 , - 224 , - 2745 , - 4222 , - 479 , - 4044 , - 5173 , - 5258 , - 123 , - 2296 , - 2033 , - 726 , - 5335 , - 548 , - 4461 , - 1762 , - 4979 , - 4368 , - 1321 , - 2798 , - 4623 , - 2620 , - 3749 , - 3834 , - 4267 , - 872 , - 609 , - 4870 , - 3911 , - 4692 , - 3037 , - 338 , - 3555 , - 2944 , - 5465 , - 1374 , - 3199 , - 1196 , - 2325 , - 2410 , - 2843 , - 5016 , - 4753 , - 3446 , - 2487 , - 3268 , - 1613 , - 4482 , - 2131 , - 1520 , - 4041 , - 5518 , - 1775 , - 5340 , - 901 , - 986 , - 1419 , - 3592 , - 3329 , - 2022 , - 1063 , - 1844 , - 189 , - 3058 , - 707 , - 96 , - 2617 , - 4094 , - 351 , - 3916 , - 5045 , - 5130 , - 5563 , - 2168 , - 1905 , - 598 , - 5207 , - 420 , - 4333 , - 1634 , - 4851 , - 4240 , - 1193 , - 2670 , - 4495 , - 2492 , - 3621 , - 3706 , - 4139 , - 744 , - 481 , - 4742 , - 3783 , - 4564 , - 2909 , - 210 , - 3427 , - 2816 , - 5337 , - 1246 , - 3071 , - 1068 , - 2197 , - 2282 , - 2715 , - 4888 , - 4625 , - 3318 , - 2359 , - 3140 , - 1485 , - 4354 , - 2003 , - 1392 , - 3913 , - 5390 , - 1647 , - 5212 , - 773 , - 858 , - 1291 , - 3464 , - 3201 , - 1894 , - 935 , - 1716 , - 61 , - 2930 , - 579 , - 5536 , - 2489 , - 3966 , - 223 , - 3788 , - 4917 , - 5002 , - 5435 , - 2040 , - 1777 , - 470 , - 5079 , - 292 , - 4205 , - 1506 , - 4723 , - 4112 , - 1065 , - 2542 , - 4367 , - 2364 , - 3493 , - 3578 , - 4011 , - 616 , - 353 , - 4614 , - 3655 , - 4436 , - 2781 , - 82 , - 3299 , - 2688 , - 5209 , - 1118 , - 2943 , - 940 , - 2069 , - 2154 , - 2587 , - 4760 , - 4497 , - 3190 , - 2231 , - 3012 , - 1357 , - 4226 , - 1875 , - 1264 , - 3785 , - 5262 , - 1519 , - 5084 , - 645 , - 730 , - 1163 , - 3336 , - 3073 , - 1766 , - 807 , - 1588 , - 5501 , - 2802 , - 451 , - 5408 , - 2361 , - 3838 , - 95 , - 3660 , - 4789 , - 4874 , - 5307 , - 1912 , - 1649 , - 342 , - 4951 , - 164 , - 4077 , - 1378 , - 4595 , - 3984 , - 937 , - 2414 , - 4239 , - 2236 , - 3365 , - 3450 , - 3883 , - 488 , - 225 , - 4486 , - 3527 , - 4308 , - 2653 , - 5522 , - 3171 , - 2560 , - 5081 , - 990 , - 2815 , - 812 , - 1941 , - 2026 , - 2459 , - 4632 , - 4369 , - 3062 , - 2103 , - 2884 , - 1229 , - 4098 , - 1747 , - 1136 , - 3657 , - 5134 , - 1391 , - 4956 , - 517 , - 602 , - 1035 , - 3208 , - 2945 , - 1638 , - 679 , - 1460 , - 5373 , - 2674 , - 323 , - 5280 , - 2233 , - 3710 , - 5535 , - 3532 , - 4661 , - 4746 , - 5179 , - 1784 , - 1521 , - 214 , - 4823 , - 36 , - 3949 , - 1250 , - 4467 , - 3856 , - 809 , - 2286 , - 4111 , - 2108 , - 3237 , - 3322 , - 3755 , - 360 , - 97 , - 4358 , - 3399 , - 4180 , - 2525 , - 5394 , - 3043 , - 2432 , - 4953 , - 862 , - 2687 , - 684 , - 1813 , - 1898 , - 2331 , - 4504 , - 4241 , - 2934 , - 1975 , - 2756 , - 1101 , - 3970 , - 1619 , - 1008 , - 3529 , - 5006 , - 1263 , - 4828 , - 389 , - 474 , - 907 , - 3080 , - 2817 , - 1510 , - 551 , - 1332 , - 5245 , - 2546 , - 195 , - 5152 , - 2105 , - 3582 , - 5407 , - 3404 , - 4533 , - 4618 , - 5051 , - 1656 , - 1393 , - 86 , - 4695 , - 5476 , - 3821 , - 1122 , - 4339 , - 3728 , - 681 , - 2158 , - 3983 , - 1980 , - 3109 , - 3194 , - 3627 , - 232 , - 5537 , - 4230 , - 3271 , - 4052 , - 2397 , - 5266 , - 2915 , - 2304 , - 4825 , - 734 , - 2559 , - 556 , - 1685 , - 1770 , - 2203 , - 4376 , - 4113 , - 2806 , - 1847 , - 2628 , - 973 , - 3842 , - 1491 , - 880 , - 3401 , - 4878 , - 1135 , - 4700 , - 261 , - 346 , - 779 , - 2952 , - 2689 , - 1382 , - 423 , - 1204 , - 5117 , - 2418 , - 67 , - 5024 , - 1977 , - 3454 , - 5279 , - 3276 , - 4405 , - 4490 , - 4923 , - 1528 , - 1265 , - 5526 , - 4567 , - 5348 , - 3693 , - 994 , - 4211 , - 3600 , - 553 , - 2030 , - 3855 , - 1852 , - 2981 , - 3066 , - 3499 , - 104 , - 5409 , - 4102 , - 3143 , - 3924 , - 2269 , - 5138 , - 2787 , - 2176 , - 4697 , - 606 , - 2431 , - 428 , - 1557 , - 1642 , - 2075 , - 4248 , - 3985 , - 2678 , - 1719 , - 2500 , - 845 , - 3714 , - 1363 , - 752 , - 3273 , - 4750 , - 1007 , - 4572 , - 133 , - 218 , - 651 , - 2824 , - 2561 , - 1254 , - 295 , - 1076 , - 4989 , - 2290 , - 5507 , - 4896 , - 1849 , - 3326 , - 5151 , - 3148 , - 4277 , - 4362 , - 4795 , - 1400 , - 1137 , - 5398 , - 4439 , - 5220 , - 3565 , - 866 , - 4083 , - 3472 , - 425 , - 1902 , - 3727 , - 1724 , - 2853 , - 2938 , - 3371 , - 5544 , - 5281 , - 3974 , - 3015 , - 3796 , - 2141 , - 5010 , - 2659 , - 2048 , - 4569 , - 478 , - 2303 , - 300 , - 1429 , - 1514 , - 1947 , - 4120 , - 3857 , - 2550 , - 1591 , - 2372 , - 717 , - 3586 , - 1235 , - 624 , - 3145 , - 4622 , - 879 , - 4444 , - 5 , - 90 , - 523 , - 2696 , - 2433 , - 1126 , - 167 , - 948 , - 4861 , - 2162 , - 5379 , - 4768 , - 1721 , - 3198 , - 5023 , - 3020 , - 4149 , - 4234 , - 4667 , - 1272 , - 1009 , - 5270 , - 4311 , - 5092 , - 3437 , - 738 , - 3955 , - 3344 , - 297 , - 1774 , - 3599 , - 1596 , - 2725 , - 2810 , - 3243 , - 5416 , - 5153 , - 3846 , - 2887 , - 3668 , - 2013 , - 4882 , - 2531 , - 1920 , - 4441 , - 350 , - 2175 , - 172 , - 1301 , - 1386 , - 1819 , - 3992 , - 3729 , - 2422 , - 1463 , - 2244 , - 589 , - 3458 , - 1107 , - 496 , - 3017 , - 4494 , - 751 , - 4316 , - 5445 , - 5530 , - 395 , - 2568 , - 2305 , - 998 , - 39 , - 820 , - 4733 , - 2034 , - 5251 , - 4640 , - 1593 , - 3070 , - 4895 , - 2892 , - 4021 , - 4106 , - 4539 , - 1144 , - 881 , - 5142 , - 4183 , - 4964 , - 3309 , - 610 , - 3827 , - 3216 , - 169 , - 1646 , - 3471 , - 1468 , - 2597 , - 2682 , - 3115 , - 5288 , - 5025 , - 3718 , - 2759 , - 3540 , - 1885 , - 4754 , - 2403 , - 1792 , - 4313 , - 222 , - 2047 , - 44 , - 1173 , - 1258 , - 1691 , - 3864 , - 3601 , - 2294 , - 1335 , - 2116 , - 461 , - 3330 , - 979 , - 368 , - 2889 , - 4366 , - 623 , - 4188 , - 5317 , - 5402 , - 267 , - 2440 , - 2177 , - 870 , - 5479 , - 692 , - 4605 , - 1906 , - 5123 , - 4512 , - 1465 , - 2942 , - 4767 , - 2764 , - 3893 , - 3978 , - 4411 , - 1016 , - 753 , - 5014 , - 4055 , - 4836 , - 3181 , - 482 , - 3699 , - 3088 , - 41 , - 1518 , - 3343 , - 1340 , - 2469 , - 2554 , - 2987 , - 5160 , - 4897 , - 3590 , - 2631 , - 3412 , - 1757 , - 4626 , - 2275 , - 1664 , - 4185 , - 94 , - 1919 , - 5484 , - 1045 , - 1130 , - 1563 , - 3736 , - 3473 , - 2166 , - 1207 , - 1988 , - 333 , - 3202 , - 851 , - 240 , - 2761 , - 4238 , - 495 , - 4060 , - 5189 , - 5274 , - 139 , - 2312 , - 2049 , - 742 , - 5351 , - 564 , - 4477 , - 1778 , - 4995 , - 4384 , - 1337 , - 2814 , - 4639 , - 2636 , - 3765 , - 3850 , - 4283 , - 888 , - 625 , - 4886 , - 3927 , - 4708 , - 3053 , - 354 , - 3571 , - 2960 , - 5481 , - 1390 , - 3215 , - 1212 , - 2341 , - 2426 , - 2859 , - 5032 , - 4769 , - 3462 , - 2503 , - 3284 , - 1629 , - 4498 , - 2147 , - 1536 , - 4057 , - 5534 , - 1791 , - 5356 , - 917 , - 1002 , - 1435 , - 3608 , - 3345 , - 2038 , - 1079 , - 1860 , - 205 , - 3074 , - 723 , - 112 , - 2633 , - 4110 , - 367 , - 3932 , - 5061 , - 5146 , - 11 , - 2184 , - 1921 , - 614 , - 5223 , - 436 , - 4349 , - 1650 , - 4867 , - 4256 , - 1209 , - 2686 , - 4511 , - 2508 , - 3637 , - 3722 , - 4155 , - 760 , - 497 , - 4758 , - 3799 , - 4580 , - 2925 , - 226 , - 3443 , - 2832 , - 5353 , - 1262 , - 3087 , - 1084 , - 2213 , - 2298 , - 2731 , - 4904 , - 4641 , - 3334 , - 2375 , - 3156 , - 1501 , - 4370 , - 2019 , - 1408 , - 3929 , - 5406 , - 1663 , - 5228 , - 789 , - 874 , - 1307 , - 3480 , - 3217 , - 1910 , - 951 , - 1732 , - 77 , - 2946 , - 595 , - 5552 , - 2505 , - 3982 , - 239 , - 3804 , - 4933 , - 5018 , - 5451 , - 2056 , - 1793 , - 486 , - 5095 , - 308 , - 4221 , - 1522 , - 4739 , - 4128 , - 1081 , - 2558 , - 4383 , - 2380 , - 3509 , - 3594 , - 4027 , - 632 , - 369 , - 4630 , - 3671 , - 4452 , - 2797 , - 98 , - 3315 , - 2704 , - 5225 , - 1134 , - 2959 , - 956 , - 2085 , - 2170 , - 2603 , - 4776 , - 4513 , - 3206 , - 2247 , - 3028 , - 1373 , - 4242 , - 1891 , - 1280 , - 3801 , - 5278 , - 1535 , - 5100 , - 661 , - 746 , - 1179 , - 3352 , - 3089 , - 1782 , - 823 , - 1604 , - 5517 , - 2818 , - 467 , - 5424 , - 2377 , - 3854 , - 111 , - 3676 , - 4805 , - 4890 , - 5323 , - 1928 , - 1665 , - 358 , - 4967 , - 180 , - 4093 , - 1394 , - 4611 , - 4000 , - 953 , - 2430 , - 4255 , - 2252 , - 3381 , - 3466 , - 3899 , - 504 , - 241 , - 4502 , - 3543 , - 4324 , - 2669 , - 5538 , - 3187 , - 2576 , - 5097 , - 1006 , - 2831 , - 828 , - 1957 , - 2042 , - 2475 , - 4648 , - 4385 , - 3078 , - 2119 , - 2900 , - 1245 , - 4114 , - 1763 , - 1152 , - 3673 , - 5150 , - 1407 , - 4972 , - 533 , - 618 , - 1051 , - 3224 , - 2961 , - 1654 , - 695 , - 1476 , - 5389 , - 2690 , - 339 , - 5296 , - 2249 , - 3726 , - 5551 , - 3548 , - 4677 , - 4762 , - 5195 , - 1800 , - 1537 , - 230 , - 4839 , - 52 , - 3965 , - 1266 , - 4483 , - 3872 , - 825 , - 2302 , - 4127 , - 2124 , - 3253 , - 3338 , - 3771 , - 376 , - 113 , - 4374 , - 3415 , - 4196 , - 2541 , - 5410 , - 3059 , - 2448 , - 4969 , - 878 , - 2703 , - 700 , - 1829 , - 1914 , - 2347 , - 4520 , - 4257 , - 2950 , - 1991 , - 2772 , - 1117 , - 3986 , - 1635 , - 1024 , - 3545 , - 5022 , - 1279 , - 4844 , - 405 , - 490 , - 923 , - 3096 , - 2833 , - 1526 , - 567 , - 1348 , - 5261 , - 2562 , - 211 , - 5168 , - 2121 , - 3598 , - 5423 , - 3420 , - 4549 , - 4634 , - 5067 , - 1672 , - 1409 , - 102 , - 4711 , - 5492 , - 3837 , - 1138 , - 4355 , - 3744 , - 697 , - 2174 , - 3999 , - 1996 , - 3125 , - 3210 , - 3643 , - 248 , - 5553 , - 4246 , - 3287 , - 4068 , - 2413 , - 5282 , - 2931 , - 2320 , - 4841 , - 750 , - 2575 , - 572 , - 1701 , - 1786 , - 2219 , - 4392 , - 4129 , - 2822 , - 1863 , - 2644 , - 989 , - 3858 , - 1507 , - 896 , - 3417 , - 4894 , - 1151 , - 4716 , - 277 , - 362 , - 795 , - 2968 , - 2705 , - 1398 , - 439 , - 1220 , - 5133 , - 2434 , - 83 , - 5040 , - 1993 , - 3470 , - 5295 , - 3292 , - 4421 , - 4506 , - 4939 , - 1544 , - 1281 , - 5542 , - 4583 , - 5364 , - 3709 , - 1010 , - 4227 , - 3616 , - 569 , - 2046 , - 3871 , - 1868 , - 2997 , - 3082 , - 3515 , - 120 , - 5425 , - 4118 , - 3159 , - 3940 , - 2285 , - 5154 , - 2803 , - 2192 , - 4713 , - 622 , - 2447 , - 444 , - 1573 , - 1658 , - 2091 , - 4264 , - 4001 , - 2694 , - 1735 , - 2516 , - 861 , - 3730 , - 1379 , - 768 , - 3289 , - 4766 , - 1023 , - 4588 , - 149 , - 234 , - 667 , - 2840 , - 2577 , - 1270 , - 311 , - 1092 , - 5005 , - 2306 , - 5523 , - 4912 , - 1865 , - 3342 , - 5167 , - 3164 , - 4293 , - 4378 , - 4811 , - 1416 , - 1153 , - 5414 , - 4455 , - 5236 , - 3581 , - 882 , - 4099 , - 3488 , - 441 , - 1918 , - 3743 , - 1740 , - 2869 , - 2954 , - 3387 , - 5560 , - 5297 , - 3990 , - 3031 , - 3812 , - 2157 , - 5026 , - 2675 , - 2064 , - 4585 , - 494 , - 2319 , - 316 , - 1445 , - 1530 , - 1963 , - 4136 , - 3873 , - 2566 , - 1607 , - 2388 , - 733 , - 3602 , - 1251 , - 640 , - 3161 , - 4638 , - 895 , - 4460 , - 21 , - 106 , - 539 , - 2712 , - 2449 , - 1142 , - 183 , - 964 , - 4877 , - 2178 , - 5395 , - 4784 , - 1737 , - 3214 , - 5039 , - 3036 , - 4165 , - 4250 , - 4683 , - 1288 , - 1025 , - 5286 , - 4327 , - 5108 , - 3453 , - 754 , - 3971 , - 3360 , - 313 , - 1790 , - 3615 , - 1612 , - 2741 , - 2826 , - 3259 , - 5432 , - 5169 , - 3862 , - 2903 , - 3684 , - 2029 , - 4898 , - 2547 , - 1936 , - 4457 , - 366 , - 2191 , - 188 , - 1317 , - 1402 , - 1835 , - 4008 , - 3745 , - 2438 , - 1479 , - 2260 , - 605 , - 3474 , - 1123 , - 512 , - 3033 , - 4510 , - 767 , - 4332 , - 5461 , - 5546 , - 411 , - 2584 , - 2321 , - 1014 , - 55 , - 836 , - 4749 , - 2050 , - 5267 , - 4656 , - 1609 , - 3086 , - 4911 , - 2908 , - 4037 , - 4122 , - 4555 , - 1160 , - 897 , - 5158 , - 4199 , - 4980 , - 3325 , - 626 , - 3843 , - 3232 , - 185 , - 1662 , - 3487 , - 1484 , - 2613 , - 2698 , - 3131 , - 5304 , - 5041 , - 3734 , - 2775 , - 3556 , - 1901 , - 4770 , - 2419 , - 1808 , - 4329 , - 238 , - 2063 , - 60 , - 1189 , - 1274 , - 1707 , - 3880 , - 3617 , - 2310 , - 1351 , - 2132 , - 477 , - 3346 , - 995 , - 384 , - 2905 , - 4382 , - 639 , - 4204 , - 5333 , - 5418 , - 283 , - 2456 , - 2193 , - 886 , - 5495 , - 708 , - 4621 , - 1922 , - 5139 , - 4528 , - 1481 , - 2958 , - 4783 , - 2780 , - 3909 , - 3994 , - 4427 , - 1032 , - 769 , - 5030 , - 4071 , - 4852 , - 3197 , - 498 , - 3715 , - 3104 , - 57 , - 1534 , - 3359 , - 1356 , - 2485 , - 2570 , - 3003 , - 5176 , - 4913 , - 3606 , - 2647 , - 3428 , - 1773 , - 4642 , - 2291 , - 1680 , - 4201 , - 110 , - 1935 , - 5500 , - 1061 , - 1146 , - 1579 , - 3752 , - 3489 , - 2182 , - 1223 , - 2004 , - 349 , - 3218 , - 867 , - 256 , - 2777 , - 4254 , - 511 , - 4076 , - 5205 , - 5290 , - 155 , - 2328 , - 2065 , - 758 , - 5367 , - 580 , - 4493 , - 1794 , - 5011 , - 4400 , - 1353 , - 2830 , - 4655 , - 2652 , - 3781 , - 3866 , - 4299 , - 904 , - 641 , - 4902 , - 3943 , - 4724 , - 3069 , - 370 , - 3587 , - 2976 , - 5497 , - 1406 , - 3231 , - 1228 , - 2357 , - 2442 , - 2875 , - 5048 , - 4785 , - 3478 , - 2519 , - 3300 , - 1645 , - 4514 , - 2163 , - 1552 , - 4073 , - 5550 , - 1807 , - 5372 , - 933 , - 1018 , - 1451 , - 3624 , - 3361 , - 2054 , - 1095 , - 1876 , - 221 , - 3090 , - 739 , - 128 , - 2649 , - 4126 , - 383 , - 3948 , - 5077 , - 5162 , - 27 , - 2200 , - 1937 , - 630 , - 5239 , - 452 , - 4365 , - 1666 , - 4883 , - 4272 , - 1225 , - 2702 , - 4527 , - 2524 , - 3653 , - 3738 , - 4171 , - 776 , - 513 , - 4774 , - 3815 , - 4596 , - 2941 , - 242 , - 3459 , - 2848 , - 5369 , - 1278 , - 3103 , - 1100 , - 2229 , - 2314 , - 2747 , - 4920 , - 4657 , - 3350 , - 2391 , - 3172 , - 1517 , - 4386 , - 2035 , - 1424 , - 3945 , - 5422 , - 1679 , - 5244 , - 805 , - 890 , - 1323 , - 3496 , - 3233 , - 1926 , - 967 , - 1748 , - 93 , - 2962 , - 611 , - 0 , - 4533 , - 4490 , - 5503 , - 1940 , - 5065 , - 3614 , - 3219 , - 3880 , - 5597 , - 2738 , - 935 , - 188 , - 497 , - 1862 , - 4283 , - 2128 , - 1029 , - 986 , - 1999 , - 4068 , - 1561 , - 110 , - 5347 , - 376 , - 2093 , - 4866 , - 3063 , - 2316 , - 2625 , - 3990 , - 779 , - 4256 , - 3157 , - 3114 , - 4127 , - 564 , - 3689 , - 2238 , - 1843 , - 2504 , - 4221 , - 1362 , - 5191 , - 4444 , - 4753 , - 486 , - 2907 , - 752 , - 5285 , - 5242 , - 623 , - 2692 , - 185 , - 4366 , - 3971 , - 4632 , - 717 , - 3490 , - 1687 , - 940 , - 1249 , - 2614 , - 5035 , - 2880 , - 1781 , - 1738 , - 2751 , - 4820 , - 2313 , - 862 , - 467 , - 1128 , - 2845 , - 5618 , - 3815 , - 3068 , - 3377 , - 4742 , - 1531 , - 5008 , - 3909 , - 3866 , - 4879 , - 1316 , - 4441 , - 2990 , - 2595 , - 3256 , - 4973 , - 2114 , - 311 , - 5196 , - 5505 , - 1238 , - 3659 , - 1504 , - 405 , - 362 , - 1375 , - 3444 , - 937 , - 5118 , - 4723 , - 5384 , - 1469 , - 4242 , - 2439 , - 1692 , - 2001 , - 3366 , - 155 , - 3632 , - 2533 , - 2490 , - 3503 , - 5572 , - 3065 , - 1614 , - 1219 , - 1880 , - 3597 , - 738 , - 4567 , - 3820 , - 4129 , - 5494 , - 2283 , - 128 , - 4661 , - 4618 , - 5631 , - 2068 , - 5193 , - 3742 , - 3347 , - 4008 , - 93 , - 2866 , - 1063 , - 316 , - 625 , - 1990 , - 4411 , - 2256 , - 1157 , - 1114 , - 2127 , - 4196 , - 1689 , - 238 , - 5475 , - 504 , - 2221 , - 4994 , - 3191 , - 2444 , - 2753 , - 4118 , - 907 , - 4384 , - 3285 , - 3242 , - 4255 , - 692 , - 3817 , - 2366 , - 1971 , - 2632 , - 4349 , - 1490 , - 5319 , - 4572 , - 4881 , - 614 , - 3035 , - 880 , - 5413 , - 5370 , - 751 , - 2820 , - 313 , - 4494 , - 4099 , - 4760 , - 845 , - 3618 , - 1815 , - 1068 , - 1377 , - 2742 , - 5163 , - 3008 , - 1909 , - 1866 , - 2879 , - 4948 , - 2441 , - 990 , - 595 , - 1256 , - 2973 , - 114 , - 3943 , - 3196 , - 3505 , - 4870 , - 1659 , - 5136 , - 4037 , - 3994 , - 5007 , - 1444 , - 4569 , - 3118 , - 2723 , - 3384 , - 5101 , - 2242 , - 439 , - 5324 , - 1 , - 1366 , - 3787 , - 1632 , - 533 , - 490 , - 1503 , - 3572 , - 1065 , - 5246 , - 4851 , - 5512 , - 1597 , - 4370 , - 2567 , - 1820 , - 2129 , - 3494 , - 283 , - 3760 , - 2661 , - 2618 , - 3631 , - 68 , - 3193 , - 1742 , - 1347 , - 2008 , - 3725 , - 866 , - 4695 , - 3948 , - 4257 , - 5622 , - 2411 , - 256 , - 4789 , - 4746 , - 127 , - 2196 , - 5321 , - 3870 , - 3475 , - 4136 , - 221 , - 2994 , - 1191 , - 444 , - 753 , - 2118 , - 4539 , - 2384 , - 1285 , - 1242 , - 2255 , - 4324 , - 1817 , - 366 , - 5603 , - 632 , - 2349 , - 5122 , - 3319 , - 2572 , - 2881 , - 4246 , - 1035 , - 4512 , - 3413 , - 3370 , - 4383 , - 820 , - 3945 , - 2494 , - 2099 , - 2760 , - 4477 , - 1618 , - 5447 , - 4700 , - 5009 , - 742 , - 3163 , - 1008 , - 5541 , - 5498 , - 879 , - 2948 , - 441 , - 4622 , - 4227 , - 4888 , - 973 , - 3746 , - 1943 , - 1196 , - 1505 , - 2870 , - 5291 , - 3136 , - 2037 , - 1994 , - 3007 , - 5076 , - 2569 , - 1118 , - 723 , - 1384 , - 3101 , - 242 , - 4071 , - 3324 , - 3633 , - 4998 , - 1787 , - 5264 , - 4165 , - 4122 , - 5135 , - 1572 , - 4697 , - 3246 , - 2851 , - 3512 , - 5229 , - 2370 , - 567 , - 5452 , - 129 , - 1494 , - 3915 , - 1760 , - 661 , - 618 , - 1631 , - 3700 , - 1193 , - 5374 , - 4979 , - 8 , - 1725 , - 4498 , - 2695 , - 1948 , - 2257 , - 3622 , - 411 , - 3888 , - 2789 , - 2746 , - 3759 , - 196 , - 3321 , - 1870 , - 1475 , - 2136 , - 3853 , - 994 , - 4823 , - 4076 , - 4385 , - 118 , - 2539 , - 384 , - 4917 , - 4874 , - 255 , - 2324 , - 5449 , - 3998 , - 3603 , - 4264 , - 349 , - 3122 , - 1319 , - 572 , - 881 , - 2246 , - 4667 , - 2512 , - 1413 , - 1370 , - 2383 , - 4452 , - 1945 , - 494 , - 99 , - 760 , - 2477 , - 5250 , - 3447 , - 2700 , - 3009 , - 4374 , - 1163 , - 4640 , - 3541 , - 3498 , - 4511 , - 948 , - 4073 , - 2622 , - 2227 , - 2888 , - 4605 , - 1746 , - 5575 , - 4828 , - 5137 , - 870 , - 3291 , - 1136 , - 37 , - 5626 , - 1007 , - 3076 , - 569 , - 4750 , - 4355 , - 5016 , - 1101 , - 3874 , - 2071 , - 1324 , - 1633 , - 2998 , - 5419 , - 3264 , - 2165 , - 2122 , - 3135 , - 5204 , - 2697 , - 1246 , - 851 , - 1512 , - 3229 , - 370 , - 4199 , - 3452 , - 3761 , - 5126 , - 1915 , - 5392 , - 4293 , - 4250 , - 5263 , - 1700 , - 4825 , - 3374 , - 2979 , - 3640 , - 5357 , - 2498 , - 695 , - 5580 , - 257 , - 1622 , - 4043 , - 1888 , - 789 , - 746 , - 1759 , - 3828 , - 1321 , - 5502 , - 5107 , - 136 , - 1853 , - 4626 , - 2823 , - 2076 , - 2385 , - 3750 , - 539 , - 4016 , - 2917 , - 2874 , - 3887 , - 324 , - 3449 , - 1998 , - 1603 , - 2264 , - 3981 , - 1122 , - 4951 , - 4204 , - 4513 , - 246 , - 2667 , - 512 , - 5045 , - 5002 , - 383 , - 2452 , - 5577 , - 4126 , - 3731 , - 4392 , - 477 , - 3250 , - 1447 , - 700 , - 1009 , - 2374 , - 4795 , - 2640 , - 1541 , - 1498 , - 2511 , - 4580 , - 2073 , - 622 , - 227 , - 888 , - 2605 , - 5378 , - 3575 , - 2828 , - 3137 , - 4502 , - 1291 , - 4768 , - 3669 , - 3626 , - 4639 , - 1076 , - 4201 , - 2750 , - 2355 , - 3016 , - 4733 , - 1874 , - 71 , - 4956 , - 5265 , - 998 , - 3419 , - 1264 , - 165 , - 122 , - 1135 , - 3204 , - 697 , - 4878 , - 4483 , - 5144 , - 1229 , - 4002 , - 2199 , - 1452 , - 1761 , - 3126 , - 5547 , - 3392 , - 2293 , - 2250 , - 3263 , - 5332 , - 2825 , - 1374 , - 979 , - 1640 , - 3357 , - 498 , - 4327 , - 3580 , - 3889 , - 5254 , - 2043 , - 5520 , - 4421 , - 4378 , - 5391 , - 1828 , - 4953 , - 3502 , - 3107 , - 3768 , - 5485 , - 2626 , - 823 , - 76 , - 385 , - 1750 , - 4171 , - 2016 , - 917 , - 874 , - 1887 , - 3956 , - 1449 , - 5630 , - 5235 , - 264 , - 1981 , - 4754 , - 2951 , - 2204 , - 2513 , - 3878 , - 667 , - 4144 , - 3045 , - 3002 , - 4015 , - 452 , - 3577 , - 2126 , - 1731 , - 2392 , - 4109 , - 1250 , - 5079 , - 4332 , - 4641 , - 374 , - 2795 , - 640 , - 5173 , - 5130 , - 511 , - 2580 , - 73 , - 4254 , - 3859 , - 4520 , - 605 , - 3378 , - 1575 , - 828 , - 1137 , - 2502 , - 4923 , - 2768 , - 1669 , - 1626 , - 2639 , - 4708 , - 2201 , - 750 , - 355 , - 1016 , - 2733 , - 5506 , - 3703 , - 2956 , - 3265 , - 4630 , - 1419 , - 4896 , - 3797 , - 3754 , - 4767 , - 1204 , - 4329 , - 2878 , - 2483 , - 3144 , - 4861 , - 2002 , - 199 , - 5084 , - 5393 , - 1126 , - 3547 , - 1392 , - 293 , - 250 , - 1263 , - 3332 , - 825 , - 5006 , - 4611 , - 5272 , - 1357 , - 4130 , - 2327 , - 1580 , - 1889 , - 3254 , - 43 , - 3520 , - 2421 , - 2378 , - 3391 , - 5460 , - 2953 , - 1502 , - 1107 , - 1768 , - 3485 , - 626 , - 4455 , - 3708 , - 4017 , - 5382 , - 2171 , - 16 , - 4549 , - 4506 , - 5519 , - 1956 , - 5081 , - 3630 , - 3235 , - 3896 , - 5613 , - 2754 , - 951 , - 204 , - 513 , - 1878 , - 4299 , - 2144 , - 1045 , - 1002 , - 2015 , - 4084 , - 1577 , - 126 , - 5363 , - 392 , - 2109 , - 4882 , - 3079 , - 2332 , - 2641 , - 4006 , - 795 , - 4272 , - 3173 , - 3130 , - 4143 , - 580 , - 3705 , - 2254 , - 1859 , - 2520 , - 4237 , - 1378 , - 5207 , - 4460 , - 4769 , - 502 , - 2923 , - 768 , - 5301 , - 5258 , - 639 , - 2708 , - 201 , - 4382 , - 3987 , - 4648 , - 733 , - 3506 , - 1703 , - 956 , - 1265 , - 2630 , - 5051 , - 2896 , - 1797 , - 1754 , - 2767 , - 4836 , - 2329 , - 878 , - 483 , - 1144 , - 2861 , - 2 , - 3831 , - 3084 , - 3393 , - 4758 , - 1547 , - 5024 , - 3925 , - 3882 , - 4895 , - 1332 , - 4457 , - 3006 , - 2611 , - 3272 , - 4989 , - 2130 , - 327 , - 5212 , - 5521 , - 1254 , - 3675 , - 1520 , - 421 , - 378 , - 1391 , - 3460 , - 953 , - 5134 , - 4739 , - 5400 , - 1485 , - 4258 , - 2455 , - 1708 , - 2017 , - 3382 , - 171 , - 3648 , - 2549 , - 2506 , - 3519 , - 5588 , - 3081 , - 1630 , - 1235 , - 1896 , - 3613 , - 754 , - 4583 , - 3836 , - 4145 , - 5510 , - 2299 , - 144 , - 4677 , - 4634 , - 15 , - 2084 , - 5209 , - 3758 , - 3363 , - 4024 , - 109 , - 2882 , - 1079 , - 332 , - 641 , - 2006 , - 4427 , - 2272 , - 1173 , - 1130 , - 2143 , - 4212 , - 1705 , - 254 , - 5491 , - 520 , - 2237 , - 5010 , - 3207 , - 2460 , - 2769 , - 4134 , - 923 , - 4400 , - 3301 , - 3258 , - 4271 , - 708 , - 3833 , - 2382 , - 1987 , - 2648 , - 4365 , - 1506 , - 5335 , - 4588 , - 4897 , - 630 , - 3051 , - 896 , - 5429 , - 5386 , - 767 , - 2836 , - 329 , - 4510 , - 4115 , - 4776 , - 861 , - 3634 , - 1831 , - 1084 , - 1393 , - 2758 , - 5179 , - 3024 , - 1925 , - 1882 , - 2895 , - 4964 , - 2457 , - 1006 , - 611 , - 1272 , - 2989 , - 130 , - 3959 , - 3212 , - 3521 , - 4886 , - 1675 , - 5152 , - 4053 , - 4010 , - 5023 , - 1460 , - 4585 , - 3134 , - 2739 , - 3400 , - 5117 , - 2258 , - 455 , - 5340 , - 17 , - 1382 , - 3803 , - 1648 , - 549 , - 506 , - 1519 , - 3588 , - 1081 , - 5262 , - 4867 , - 5528 , - 1613 , - 4386 , - 2583 , - 1836 , - 2145 , - 3510 , - 299 , - 3776 , - 2677 , - 2634 , - 3647 , - 84 , - 3209 , - 1758 , - 1363 , - 2024 , - 3741 , - 882 , - 4711 , - 3964 , - 4273 , - 6 , - 2427 , - 272 , - 4805 , - 4762 , - 143 , - 2212 , - 5337 , - 3886 , - 3491 , - 4152 , - 237 , - 3010 , - 1207 , - 460 , - 769 , - 2134 , - 4555 , - 2400 , - 1301 , - 1258 , - 2271 , - 4340 , - 1833 , - 382 , - 5619 , - 648 , - 2365 , - 5138 , - 3335 , - 2588 , - 2897 , - 4262 , - 1051 , - 4528 , - 3429 , - 3386 , - 4399 , - 836 , - 3961 , - 2510 , - 2115 , - 2776 , - 4493 , - 1634 , - 5463 , - 4716 , - 5025 , - 758 , - 3179 , - 1024 , - 5557 , - 5514 , - 895 , - 2964 , - 457 , - 4638 , - 4243 , - 4904 , - 989 , - 3762 , - 1959 , - 1212 , - 1521 , - 2886 , - 5307 , - 3152 , - 2053 , - 2010 , - 3023 , - 5092 , - 2585 , - 1134 , - 739 , - 1400 , - 3117 , - 258 , - 4087 , - 3340 , - 3649 , - 5014 , - 1803 , - 5280 , - 4181 , - 4138 , - 5151 , - 1588 , - 4713 , - 3262 , - 2867 , - 3528 , - 5245 , - 2386 , - 583 , - 5468 , - 145 , - 1510 , - 3931 , - 1776 , - 677 , - 634 , - 1647 , - 3716 , - 1209 , - 5390 , - 4995 , - 24 , - 1741 , - 4514 , - 2711 , - 1964 , - 2273 , - 3638 , - 427 , - 3904 , - 2805 , - 2762 , - 3775 , - 212 , - 3337 , - 1886 , - 1491 , - 2152 , - 3869 , - 1010 , - 4839 , - 4092 , - 4401 , - 134 , - 2555 , - 400 , - 4933 , - 4890 , - 271 , - 2340 , - 5465 , - 4014 , - 3619 , - 4280 , - 365 , - 3138 , - 1335 , - 588 , - 897 , - 2262 , - 4683 , - 2528 , - 1429 , - 1386 , - 2399 , - 4468 , - 1961 , - 510 , - 115 , - 776 , - 2493 , - 5266 , - 3463 , - 2716 , - 3025 , - 4390 , - 1179 , - 4656 , - 3557 , - 3514 , - 4527 , - 964 , - 4089 , - 2638 , - 2243 , - 2904 , - 4621 , - 1762 , - 5591 , - 4844 , - 5153 , - 886 , - 3307 , - 1152 , - 53 , - 10 , - 1023 , - 3092 , - 585 , - 4766 , - 4371 , - 5032 , - 1117 , - 3890 , - 2087 , - 1340 , - 1649 , - 3014 , - 5435 , - 3280 , - 2181 , - 2138 , - 3151 , - 5220 , - 2713 , - 1262 , - 867 , - 1528 , - 3245 , - 386 , - 4215 , - 3468 , - 3777 , - 5142 , - 1931 , - 5408 , - 4309 , - 4266 , - 5279 , - 1716 , - 4841 , - 3390 , - 2995 , - 3656 , - 5373 , - 2514 , - 711 , - 5596 , - 273 , - 1638 , - 4059 , - 1904 , - 805 , - 762 , - 1775 , - 3844 , - 1337 , - 5518 , - 5123 , - 152 , - 1869 , - 4642 , - 2839 , - 2092 , - 2401 , - 3766 , - 555 , - 4032 , - 2933 , - 2890 , - 3903 , - 340 , - 3465 , - 2014 , - 1619 , - 2280 , - 3997 , - 1138 , - 4967 , - 4220 , - 4529 , - 262 , - 2683 , - 528 , - 5061 , - 5018 , - 399 , - 2468 , - 5593 , - 4142 , - 3747 , - 4408 , - 493 , - 3266 , - 1463 , - 716 , - 1025 , - 2390 , - 4811 , - 2656 , - 1557 , - 1514 , - 2527 , - 4596 , - 2089 , - 638 , - 243 , - 904 , - 2621 , - 5394 , - 3591 , - 2844 , - 3153 , - 4518 , - 1307 , - 4784 , - 3685 , - 3642 , - 4655 , - 1092 , - 4217 , - 2766 , - 2371 , - 3032 , - 4749 , - 1890 , - 87 , - 4972 , - 5281 , - 1014 , - 3435 , - 1280 , - 181 , - 138 , - 1151 , - 3220 , - 713 , - 4894 , - 4499 , - 5160 , - 1245 , - 4018 , - 2215 , - 1468 , - 1777 , - 3142 , - 5563 , - 3408 , - 2309 , - 2266 , - 3279 , - 5348 , - 2841 , - 1390 , - 995 , - 1656 , - 3373 , - 514 , - 4343 , - 3596 , - 3905 , - 5270 , - 2059 , - 5536 , - 4437 , - 4394 , - 5407 , - 1844 , - 4969 , - 3518 , - 3123 , - 3784 , - 5501 , - 2642 , - 839 , - 92 , - 401 , - 1766 , - 4187 , - 2032 , - 933 , - 890 , - 1903 , - 3972 , - 1465 , - 14 , - 5251 , - 280 , - 1997 , - 4770 , - 2967 , - 2220 , - 2529 , - 3894 , - 683 , - 4160 , - 3061 , - 3018 , - 4031 , - 468 , - 3593 , - 2142 , - 1747 , - 2408 , - 4125 , - 1266 , - 5095 , - 4348 , - 4657 , - 390 , - 2811 , - 656 , - 5189 , - 5146 , - 527 , - 2596 , - 89 , - 4270 , - 3875 , - 4536 , - 621 , - 3394 , - 1591 , - 844 , - 1153 , - 2518 , - 4939 , - 2784 , - 1685 , - 1642 , - 2655 , - 4724 , - 2217 , - 766 , - 371 , - 1032 , - 2749 , - 5522 , - 3719 , - 2972 , - 3281 , - 4646 , - 1435 , - 4912 , - 3813 , - 3770 , - 4783 , - 1220 , - 4345 , - 2894 , - 2499 , - 3160 , - 4877 , - 2018 , - 215 , - 5100 , - 5409 , - 1142 , - 3563 , - 1408 , - 309 , - 266 , - 1279 , - 3348 , - 841 , - 5022 , - 4627 , - 5288 , - 1373 , - 4146 , - 2343 , - 1596 , - 1905 , - 3270 , - 59 , - 3536 , - 2437 , - 2394 , - 3407 , - 5476 , - 2969 , - 1518 , - 1123 , - 1784 , - 3501 , - 642 , - 4471 , - 3724 , - 4033 , - 5398 , - 2187 , - 32 , - 4565 , - 4522 , - 5535 , - 1972 , - 5097 , - 3646 , - 3251 , - 3912 , - 5629 , - 2770 , - 967 , - 220 , - 529 , - 1894 , - 4315 , - 2160 , - 1061 , - 1018 , - 2031 , - 4100 , - 1593 , - 142 , - 5379 , - 408 , - 2125 , - 4898 , - 3095 , - 2348 , - 2657 , - 4022 , - 811 , - 4288 , - 3189 , - 3146 , - 4159 , - 596 , - 3721 , - 2270 , - 1875 , - 2536 , - 4253 , - 1394 , - 5223 , - 4476 , - 4785 , - 518 , - 2939 , - 784 , - 5317 , - 5274 , - 655 , - 2724 , - 217 , - 4398 , - 4003 , - 4664 , - 749 , - 3522 , - 1719 , - 972 , - 1281 , - 2646 , - 5067 , - 2912 , - 1813 , - 1770 , - 2783 , - 4852 , - 2345 , - 894 , - 499 , - 1160 , - 2877 , - 18 , - 3847 , - 3100 , - 3409 , - 4774 , - 1563 , - 5040 , - 3941 , - 3898 , - 4911 , - 1348 , - 4473 , - 3022 , - 2627 , - 3288 , - 5005 , - 2146 , - 343 , - 5228 , - 5537 , - 1270 , - 3691 , - 1536 , - 437 , - 394 , - 1407 , - 3476 , - 969 , - 5150 , - 4755 , - 5416 , - 1501 , - 4274 , - 2471 , - 1724 , - 2033 , - 3398 , - 187 , - 3664 , - 2565 , - 2522 , - 3535 , - 5604 , - 3097 , - 1646 , - 1251 , - 1912 , - 3629 , - 770 , - 4599 , - 3852 , - 4161 , - 5526 , - 2315 , - 160 , - 4693 , - 4650 , - 31 , - 2100 , - 5225 , - 3774 , - 3379 , - 4040 , - 125 , - 2898 , - 1095 , - 348 , - 657 , - 2022 , - 4443 , - 2288 , - 1189 , - 1146 , - 2159 , - 4228 , - 1721 , - 270 , - 5507 , - 536 , - 2253 , - 5026 , - 3223 , - 2476 , - 2785 , - 4150 , - 939 , - 4416 , - 3317 , - 3274 , - 4287 , - 724 , - 3849 , - 2398 , - 2003 , - 2664 , - 4381 , - 1522 , - 5351 , - 4604 , - 4913 , - 646 , - 3067 , - 912 , - 5445 , - 5402 , - 783 , - 2852 , - 345 , - 4526 , - 4131 , - 4792 , - 877 , - 3650 , - 1847 , - 1100 , - 1409 , - 2774 , - 5195 , - 3040 , - 1941 , - 1898 , - 2911 , - 4980 , - 2473 , - 1022 , - 627 , - 1288 , - 3005 , - 146 , - 3975 , - 3228 , - 3537 , - 4902 , - 1691 , - 5168 , - 4069 , - 4026 , - 5039 , - 1476 , - 4601 , - 3150 , - 2755 , - 3416 , - 5133 , - 2274 , - 471 , - 5356 , - 33 , - 1398 , - 3819 , - 1664 , - 565 , - 522 , - 1535 , - 3604 , - 1097 , - 5278 , - 4883 , - 5544 , - 1629 , - 4402 , - 2599 , - 1852 , - 2161 , - 3526 , - 315 , - 3792 , - 2693 , - 2650 , - 3663 , - 100 , - 3225 , - 1774 , - 1379 , - 2040 , - 3757 , - 898 , - 4727 , - 3980 , - 4289 , - 22 , - 2443 , - 288 , - 4821 , - 4778 , - 159 , - 2228 , - 5353 , - 3902 , - 3507 , - 4168 , - 253 , - 3026 , - 1223 , - 476 , - 785 , - 2150 , - 4571 , - 2416 , - 1317 , - 1274 , - 2287 , - 4356 , - 1849 , - 398 , - 3 , - 664 , - 2381 , - 5154 , - 3351 , - 2604 , - 2913 , - 4278 , - 1067 , - 4544 , - 3445 , - 3402 , - 4415 , - 852 , - 3977 , - 2526 , - 2131 , - 2792 , - 4509 , - 1650 , - 5479 , - 4732 , - 5041 , - 774 , - 3195 , - 1040 , - 5573 , - 5530 , - 911 , - 2980 , - 473 , - 4654 , - 4259 , - 4920 , - 1005 , - 3778 , - 1975 , - 1228 , - 1537 , - 2902 , - 5323 , - 3168 , - 2069 , - 2026 , - 3039 , - 5108 , - 2601 , - 1150 , - 755 , - 1416 , - 3133 , - 274 , - 4103 , - 3356 , - 3665 , - 5030 , - 1819 , - 5296 , - 4197 , - 4154 , - 5167 , - 1604 , - 4729 , - 3278 , - 2883 , - 3544 , - 5261 , - 2402 , - 599 , - 5484 , - 161 , - 1526 , - 3947 , - 1792 , - 693 , - 650 , - 1663 , - 3732 , - 1225 , - 5406 , - 5011 , - 40 , - 1757 , - 4530 , - 2727 , - 1980 , - 2289 , - 3654 , - 443 , - 3920 , - 2821 , - 2778 , - 3791 , - 228 , - 3353 , - 1902 , - 1507 , - 2168 , - 3885 , - 1026 , - 4855 , - 4108 , - 4417 , - 150 , - 2571 , - 416 , - 4949 , - 4906 , - 287 , - 2356 , - 5481 , - 4030 , - 3635 , - 4296 , - 381 , - 3154 , - 1351 , - 604 , - 913 , - 2278 , - 4699 , - 2544 , - 1445 , - 1402 , - 2415 , - 4484 , - 1977 , - 526 , - 131 , - 792 , - 2509 , - 5282 , - 3479 , - 2732 , - 3041 , - 4406 , - 1195 , - 4672 , - 3573 , - 3530 , - 4543 , - 980 , - 4105 , - 2654 , - 2259 , - 2920 , - 4637 , - 1778 , - 5607 , - 4860 , - 5169 , - 902 , - 3323 , - 1168 , - 69 , - 26 , - 1039 , - 3108 , - 601 , - 4782 , - 4387 , - 5048 , - 1133 , - 3906 , - 2103 , - 1356 , - 1665 , - 3030 , - 5451 , - 3296 , - 2197 , - 2154 , - 3167 , - 5236 , - 2729 , - 1278 , - 883 , - 1544 , - 3261 , - 402 , - 4231 , - 3484 , - 3793 , - 5158 , - 1947 , - 5424 , - 4325 , - 4282 , - 5295 , - 1732 , - 4857 , - 3406 , - 3011 , - 3672 , - 5389 , - 2530 , - 727 , - 5612 , - 289 , - 1654 , - 4075 , - 1920 , - 821 , - 778 , - 1791 , - 3860 , - 1353 , - 5534 , - 5139 , - 168 , - 1885 , - 4658 , - 2855 , - 2108 , - 2417 , - 3782 , - 571 , - 4048 , - 2949 , - 2906 , - 3919 , - 356 , - 3481 , - 2030 , - 1635 , - 2296 , - 4013 , - 1154 , - 4983 , - 4236 , - 4545 , - 278 , - 2699 , - 544 , - 5077 , - 5034 , - 415 , - 2484 , - 5609 , - 4158 , - 3763 , - 4424 , - 509 , - 3282 , - 1479 , - 732 , - 1041 , - 2406 , - 4827 , - 2672 , - 1573 , - 1530 , - 2543 , - 4612 , - 2105 , - 654 , - 259 , - 920 , - 2637 , - 5410 , - 3607 , - 2860 , - 3169 , - 4534 , - 1323 , - 4800 , - 3701 , - 3658 , - 4671 , - 1108 , - 4233 , - 2782 , - 2387 , - 3048 , - 4765 , - 1906 , - 103 , - 4988 , - 5297 , - 1030 , - 3451 , - 1296 , - 197 , - 154 , - 1167 , - 3236 , - 729 , - 4910 , - 4515 , - 5176 , - 1261 , - 4034 , - 2231 , - 1484 , - 1793 , - 3158 , - 5579 , - 3424 , - 2325 , - 2282 , - 3295 , - 5364 , - 2857 , - 1406 , - 1011 , - 1672 , - 3389 , - 530 , - 4359 , - 3612 , - 3921 , - 5286 , - 2075 , - 5552 , - 4453 , - 4410 , - 5423 , - 1860 , - 4985 , - 3534 , - 3139 , - 3800 , - 5517 , - 2658 , - 855 , - 108 , - 417 , - 1782 , - 4203 , - 2048 , - 949 , - 906 , - 1919 , - 3988 , - 1481 , - 30 , - 5267 , - 296 , - 2013 , - 4786 , - 2983 , - 2236 , - 2545 , - 3910 , - 699 , - 4176 , - 3077 , - 3034 , - 4047 , - 484 , - 3609 , - 2158 , - 1763 , - 2424 , - 4141 , - 1282 , - 5111 , - 4364 , - 4673 , - 406 , - 2827 , - 672 , - 5205 , - 5162 , - 543 , - 2612 , - 105 , - 4286 , - 3891 , - 4552 , - 637 , - 3410 , - 1607 , - 860 , - 1169 , - 2534 , - 4955 , - 2800 , - 1701 , - 1658 , - 2671 , - 4740 , - 2233 , - 782 , - 387 , - 1048 , - 2765 , - 5538 , - 3735 , - 2988 , - 3297 , - 4662 , - 1451 , - 4928 , - 3829 , - 3786 , - 4799 , - 1236 , - 4361 , - 2910 , - 2515 , - 3176 , - 4893 , - 2034 , - 231 , - 5116 , - 5425 , - 1158 , - 3579 , - 1424 , - 325 , - 282 , - 1295 , - 3364 , - 857 , - 5038 , - 4643 , - 5304 , - 1389 , - 4162 , - 2359 , - 1612 , - 1921 , - 3286 , - 75 , - 3552 , - 2453 , - 2410 , - 3423 , - 5492 , - 2985 , - 1534 , - 1139 , - 1800 , - 3517 , - 658 , - 4487 , - 3740 , - 4049 , - 5414 , - 2203 , - 48 , - 4581 , - 4538 , - 5551 , - 1988 , - 5113 , - 3662 , - 3267 , - 3928 , - 13 , - 2786 , - 983 , - 236 , - 545 , - 1910 , - 4331 , - 2176 , - 1077 , - 1034 , - 2047 , - 4116 , - 1609 , - 158 , - 5395 , - 424 , - 2141 , - 4914 , - 3111 , - 2364 , - 2673 , - 4038 , - 827 , - 4304 , - 3205 , - 3162 , - 4175 , - 612 , - 3737 , - 2286 , - 1891 , - 2552 , - 4269 , - 1410 , - 5239 , - 4492 , - 4801 , - 534 , - 2955 , - 800 , - 5333 , - 5290 , - 671 , - 2740 , - 233 , - 4414 , - 4019 , - 4680 , - 765 , - 3538 , - 1735 , - 988 , - 1297 , - 2662 , - 5083 , - 2928 , - 1829 , - 1786 , - 2799 , - 4868 , - 2361 , - 910 , - 515 , - 1176 , - 2893 , - 34 , - 3863 , - 3116 , - 3425 , - 4790 , - 1579 , - 5056 , - 3957 , - 3914 , - 4927 , - 1364 , - 4489 , - 3038 , - 2643 , - 3304 , - 5021 , - 2162 , - 359 , - 5244 , - 5553 , - 1286 , - 3707 , - 1552 , - 453 , - 410 , - 1423 , - 3492 , - 985 , - 5166 , - 4771 , - 5432 , - 1517 , - 4290 , - 2487 , - 1740 , - 2049 , - 3414 , - 203 , - 3680 , - 2581 , - 2538 , - 3551 , - 5620 , - 3113 , - 1662 , - 1267 , - 1928 , - 3645 , - 786 , - 4615 , - 3868 , - 4177 , - 5542 , - 2331 , - 176 , - 4709 , - 4666 , - 47 , - 2116 , - 5241 , - 3790 , - 3395 , - 4056 , - 141 , - 2914 , - 1111 , - 364 , - 673 , - 2038 , - 4459 , - 2304 , - 1205 , - 1162 , - 2175 , - 4244 , - 1737 , - 286 , - 5523 , - 552 , - 2269 , - 5042 , - 3239 , - 2492 , - 2801 , - 4166 , - 955 , - 4432 , - 3333 , - 3290 , - 4303 , - 740 , - 3865 , - 2414 , - 2019 , - 2680 , - 4397 , - 1538 , - 5367 , - 4620 , - 4929 , - 662 , - 3083 , - 928 , - 5461 , - 5418 , - 799 , - 2868 , - 361 , - 4542 , - 4147 , - 4808 , - 893 , - 3666 , - 1863 , - 1116 , - 1425 , - 2790 , - 5211 , - 3056 , - 1957 , - 1914 , - 2927 , - 4996 , - 2489 , - 1038 , - 643 , - 1304 , - 3021 , - 162 , - 3991 , - 3244 , - 3553 , - 4918 , - 1707 , - 5184 , - 4085 , - 4042 , - 5055 , - 1492 , - 4617 , - 3166 , - 2771 , - 3432 , - 5149 , - 2290 , - 487 , - 5372 , - 49 , - 1414 , - 3835 , - 1680 , - 581 , - 538 , - 1551 , - 3620 , - 1113 , - 5294 , - 4899 , - 5560 , - 1645 , - 4418 , - 2615 , - 1868 , - 2177 , - 3542 , - 331 , - 3808 , - 2709 , - 2666 , - 3679 , - 116 , - 3241 , - 1790 , - 1395 , - 2056 , - 3773 , - 914 , - 4743 , - 3996 , - 4305 , - 38 , - 2459 , - 304 , - 4837 , - 4794 , - 175 , - 2244 , - 5369 , - 3918 , - 3523 , - 4184 , - 269 , - 3042 , - 1239 , - 492 , - 801 , - 2166 , - 4587 , - 2432 , - 1333 , - 1290 , - 2303 , - 4372 , - 1865 , - 414 , - 19 , - 680 , - 2397 , - 5170 , - 3367 , - 2620 , - 2929 , - 4294 , - 1083 , - 4560 , - 3461 , - 3418 , - 4431 , - 868 , - 3993 , - 2542 , - 2147 , - 2808 , - 4525 , - 1666 , - 5495 , - 4748 , - 5057 , - 790 , - 3211 , - 1056 , - 5589 , - 5546 , - 927 , - 2996 , - 489 , - 4670 , - 4275 , - 4936 , - 1021 , - 3794 , - 1991 , - 1244 , - 1553 , - 2918 , - 5339 , - 3184 , - 2085 , - 2042 , - 3055 , - 5124 , - 2617 , - 1166 , - 771 , - 1432 , - 3149 , - 290 , - 4119 , - 3372 , - 3681 , - 5046 , - 1835 , - 5312 , - 4213 , - 4170 , - 5183 , - 1620 , - 4745 , - 3294 , - 2899 , - 3560 , - 5277 , - 2418 , - 615 , - 5500 , - 177 , - 1542 , - 3963 , - 1808 , - 709 , - 666 , - 1679 , - 3748 , - 1241 , - 5422 , - 5027 , - 56 , - 1773 , - 4546 , - 2743 , - 1996 , - 2305 , - 3670 , - 459 , - 3936 , - 2837 , - 2794 , - 3807 , - 244 , - 3369 , - 1918 , - 1523 , - 2184 , - 3901 , - 1042 , - 4871 , - 4124 , - 4433 , - 166 , - 2587 , - 432 , - 4965 , - 4922 , - 303 , - 2372 , - 5497 , - 4046 , - 3651 , - 4312 , - 397 , - 3170 , - 1367 , - 620 , - 929 , - 2294 , - 4715 , - 2560 , - 1461 , - 1418 , - 2431 , - 4500 , - 1993 , - 542 , - 147 , - 808 , - 2525 , - 5298 , - 3495 , - 2748 , - 3057 , - 4422 , - 1211 , - 4688 , - 3589 , - 3546 , - 4559 , - 996 , - 4121 , - 2670 , - 2275 , - 2936 , - 4653 , - 1794 , - 5623 , - 4876 , - 5185 , - 918 , - 3339 , - 1184 , - 85 , - 42 , - 1055 , - 3124 , - 617 , - 4798 , - 4403 , - 5064 , - 1149 , - 3922 , - 2119 , - 1372 , - 1681 , - 3046 , - 5467 , - 3312 , - 2213 , - 2170 , - 3183 , - 5252 , - 2745 , - 1294 , - 899 , - 1560 , - 3277 , - 418 , - 4247 , - 3500 , - 3809 , - 5174 , - 1963 , - 5440 , - 4341 , - 4298 , - 5311 , - 1748 , - 4873 , - 3422 , - 3027 , - 3688 , - 5405 , - 2546 , - 743 , - 5628 , - 305 , - 1670 , - 4091 , - 1936 , - 837 , - 794 , - 1807 , - 3876 , - 1369 , - 5550 , - 5155 , - 184 , - 1901 , - 4674 , - 2871 , - 2124 , - 2433 , - 3798 , - 587 , - 4064 , - 2965 , - 2922 , - 3935 , - 372 , - 3497 , - 2046 , - 1651 , - 2312 , - 4029 , - 1170 , - 4999 , - 4252 , - 4561 , - 294 , - 2715 , - 560 , - 5093 , - 5050 , - 431 , - 2500 , - 5625 , - 4174 , - 3779 , - 4440 , - 525 , - 3298 , - 1495 , - 748 , - 1057 , - 2422 , - 4843 , - 2688 , - 1589 , - 1546 , - 2559 , - 4628 , - 2121 , - 670 , - 275 , - 936 , - 2653 , - 5426 , - 3623 , - 2876 , - 3185 , - 4550 , - 1339 , - 4816 , - 3717 , - 3674 , - 4687 , - 1124 , - 4249 , - 2798 , - 2403 , - 3064 , - 4781 , - 1922 , - 119 , - 5004 , - 5313 , - 1046 , - 3467 , - 1312 , - 213 , - 170 , - 1183 , - 3252 , - 745 , - 4926 , - 4531 , - 5192 , - 1277 , - 4050 , - 2247 , - 1500 , - 1809 , - 3174 , - 5595 , - 3440 , - 2341 , - 2298 , - 3311 , - 5380 , - 2873 , - 1422 , - 1027 , - 1688 , - 3405 , - 546 , - 4375 , - 3628 , - 3937 , - 5302 , - 2091 , - 5568 , - 4469 , - 4426 , - 5439 , - 1876 , - 5001 , - 3550 , - 3155 , - 3816 , - 5533 , - 2674 , - 871 , - 124 , - 433 , - 1798 , - 4219 , - 2064 , - 965 , - 922 , - 1935 , - 4004 , - 1497 , - 46 , - 5283 , - 312 , - 2029 , - 4802 , - 2999 , - 2252 , - 2561 , - 3926 , - 715 , - 4192 , - 3093 , - 3050 , - 4063 , - 500 , - 3625 , - 2174 , - 1779 , - 2440 , - 4157 , - 1298 , - 5127 , - 4380 , - 4689 , - 422 , - 2843 , - 688 , - 5221 , - 5178 , - 559 , - 2628 , - 121 , - 4302 , - 3907 , - 4568 , - 653 , - 3426 , - 1623 , - 876 , - 1185 , - 2550 , - 4971 , - 2816 , - 1717 , - 1674 , - 2687 , - 4756 , - 2249 , - 798 , - 403 , - 1064 , - 2781 , - 5554 , - 3751 , - 3004 , - 3313 , - 4678 , - 1467 , - 4944 , - 3845 , - 3802 , - 4815 , - 1252 , - 4377 , - 2926 , - 2531 , - 3192 , - 4909 , - 2050 , - 247 , - 5132 , - 5441 , - 1174 , - 3595 , - 1440 , - 341 , - 298 , - 1311 , - 3380 , - 873 , - 5054 , - 4659 , - 5320 , - 1405 , - 4178 , - 2375 , - 1628 , - 1937 , - 3302 , - 91 , - 3568 , - 2469 , - 2426 , - 3439 , - 5508 , - 3001 , - 1550 , - 1155 , - 1816 , - 3533 , - 674 , - 4503 , - 3756 , - 4065 , - 5430 , - 2219 , - 64 , - 4597 , - 4554 , - 5567 , - 2004 , - 5129 , - 3678 , - 3283 , - 3944 , - 29 , - 2802 , - 999 , - 252 , - 561 , - 1926 , - 4347 , - 2192 , - 1093 , - 1050 , - 2063 , - 4132 , - 1625 , - 174 , - 5411 , - 440 , - 2157 , - 4930 , - 3127 , - 2380 , - 2689 , - 4054 , - 843 , - 4320 , - 3221 , - 3178 , - 4191 , - 628 , - 3753 , - 2302 , - 1907 , - 2568 , - 4285 , - 1426 , - 5255 , - 4508 , - 4817 , - 550 , - 2971 , - 816 , - 5349 , - 5306 , - 687 , - 2756 , - 249 , - 4430 , - 4035 , - 4696 , - 781 , - 3554 , - 1751 , - 1004 , - 1313 , - 2678 , - 5099 , - 2944 , - 1845 , - 1802 , - 2815 , - 4884 , - 2377 , - 926 , - 531 , - 1192 , - 2909 , - 50 , - 3879 , - 3132 , - 3441 , - 4806 , - 1595 , - 5072 , - 3973 , - 3930 , - 4943 , - 1380 , - 4505 , - 3054 , - 2659 , - 3320 , - 5037 , - 2178 , - 375 , - 5260 , - 5569 , - 1302 , - 3723 , - 1568 , - 469 , - 426 , - 1439 , - 3508 , - 1001 , - 5182 , - 4787 , - 5448 , - 1533 , - 4306 , - 2503 , - 1756 , - 2065 , - 3430 , - 219 , - 3696 , - 2597 , - 2554 , - 3567 , - 4 , - 3129 , - 1678 , - 1283 , - 1944 , - 3661 , - 802 , - 4631 , - 3884 , - 4193 , - 5558 , - 2347 , - 192 , - 4725 , - 4682 , - 63 , - 2132 , - 5257 , - 3806 , - 3411 , - 4072 , - 157 , - 2930 , - 1127 , - 380 , - 689 , - 2054 , - 4475 , - 2320 , - 1221 , - 1178 , - 2191 , - 4260 , - 1753 , - 302 , - 5539 , - 568 , - 2285 , - 5058 , - 3255 , - 2508 , - 2817 , - 4182 , - 971 , - 4448 , - 3349 , - 3306 , - 4319 , - 756 , - 3881 , - 2430 , - 2035 , - 2696 , - 4413 , - 1554 , - 5383 , - 4636 , - 4945 , - 678 , - 3099 , - 944 , - 5477 , - 5434 , - 815 , - 2884 , - 377 , - 4558 , - 4163 , - 4824 , - 909 , - 3682 , - 1879 , - 1132 , - 1441 , - 2806 , - 5227 , - 3072 , - 1973 , - 1930 , - 2943 , - 5012 , - 2505 , - 1054 , - 659 , - 1320 , - 3037 , - 178 , - 4007 , - 3260 , - 3569 , - 4934 , - 1723 , - 5200 , - 4101 , - 4058 , - 5071 , - 1508 , - 4633 , - 3182 , - 2787 , - 3448 , - 5165 , - 2306 , - 503 , - 5388 , - 65 , - 1430 , - 3851 , - 1696 , - 597 , - 554 , - 1567 , - 3636 , - 1129 , - 5310 , - 4915 , - 5576 , - 1661 , - 4434 , - 2631 , - 1884 , - 2193 , - 3558 , - 347 , - 3824 , - 2725 , - 2682 , - 3695 , - 132 , - 3257 , - 1806 , - 1411 , - 2072 , - 3789 , - 930 , - 4759 , - 4012 , - 4321 , - 54 , - 2475 , - 320 , - 4853 , - 4810 , - 191 , - 2260 , - 5385 , - 3934 , - 3539 , - 4200 , - 285 , - 3058 , - 1255 , - 508 , - 817 , - 2182 , - 4603 , - 2448 , - 1349 , - 1306 , - 2319 , - 4388 , - 1881 , - 430 , - 35 , - 696 , - 2413 , - 5186 , - 3383 , - 2636 , - 2945 , - 4310 , - 1099 , - 4576 , - 3477 , - 3434 , - 4447 , - 884 , - 4009 , - 2558 , - 2163 , - 2824 , - 4541 , - 1682 , - 5511 , - 4764 , - 5073 , - 806 , - 3227 , - 1072 , - 5605 , - 5562 , - 943 , - 3012 , - 505 , - 4686 , - 4291 , - 4952 , - 1037 , - 3810 , - 2007 , - 1260 , - 1569 , - 2934 , - 5355 , - 3200 , - 2101 , - 2058 , - 3071 , - 5140 , - 2633 , - 1182 , - 787 , - 1448 , - 3165 , - 306 , - 4135 , - 3388 , - 3697 , - 5062 , - 1851 , - 5328 , - 4229 , - 4186 , - 5199 , - 1636 , - 4761 , - 3310 , - 2915 , - 3576 , - 5293 , - 2434 , - 631 , - 5516 , - 193 , - 1558 , - 3979 , - 1824 , - 725 , - 682 , - 1695 , - 3764 , - 1257 , - 5438 , - 5043 , - 72 , - 1789 , - 4562 , - 2759 , - 2012 , - 2321 , - 3686 , - 475 , - 3952 , - 2853 , - 2810 , - 3823 , - 260 , - 3385 , - 1934 , - 1539 , - 2200 , - 3917 , - 1058 , - 4887 , - 4140 , - 4449 , - 182 , - 2603 , - 448 , - 4981 , - 4938 , - 319 , - 2388 , - 5513 , - 4062 , - 3667 , - 4328 , - 413 , - 3186 , - 1383 , - 636 , - 945 , - 2310 , - 4731 , - 2576 , - 1477 , - 1434 , - 2447 , - 4516 , - 2009 , - 558 , - 163 , - 824 , - 2541 , - 5314 , - 3511 , - 2764 , - 3073 , - 4438 , - 1227 , - 4704 , - 3605 , - 3562 , - 4575 , - 1012 , - 4137 , - 2686 , - 2291 , - 2952 , - 4669 , - 1810 , - 7 , - 4892 , - 5201 , - 934 , - 3355 , - 1200 , - 101 , - 58 , - 1071 , - 3140 , - 633 , - 4814 , - 4419 , - 5080 , - 1165 , - 3938 , - 2135 , - 1388 , - 1697 , - 3062 , - 5483 , - 3328 , - 2229 , - 2186 , - 3199 , - 5268 , - 2761 , - 1310 , - 915 , - 1576 , - 3293 , - 434 , - 4263 , - 3516 , - 3825 , - 5190 , - 1979 , - 5456 , - 4357 , - 4314 , - 5327 , - 1764 , - 4889 , - 3438 , - 3043 , - 3704 , - 5421 , - 2562 , - 759 , - 12 , - 321 , - 1686 , - 4107 , - 1952 , - 853 , - 810 , - 1823 , - 3892 , - 1385 , - 5566 , - 5171 , - 200 , - 1917 , - 4690 , - 2887 , - 2140 , - 2449 , - 3814 , - 603 , - 4080 , - 2981 , - 2938 , - 3951 , - 388 , - 3513 , - 2062 , - 1667 , - 2328 , - 4045 , - 1186 , - 5015 , - 4268 , - 4577 , - 310 , - 2731 , - 576 , - 5109 , - 5066 , - 447 , - 2516 , - 9 , - 4190 , - 3795 , - 4456 , - 541 , - 3314 , - 1511 , - 764 , - 1073 , - 2438 , - 4859 , - 2704 , - 1605 , - 1562 , - 2575 , - 4644 , - 2137 , - 686 , - 291 , - 952 , - 2669 , - 5442 , - 3639 , - 2892 , - 3201 , - 4566 , - 1355 , - 4832 , - 3733 , - 3690 , - 4703 , - 1140 , - 4265 , - 2814 , - 2419 , - 3080 , - 4797 , - 1938 , - 135 , - 5020 , - 5329 , - 1062 , - 3483 , - 1328 , - 229 , - 186 , - 1199 , - 3268 , - 761 , - 4942 , - 4547 , - 5208 , - 1293 , - 4066 , - 2263 , - 1516 , - 1825 , - 3190 , - 5611 , - 3456 , - 2357 , - 2314 , - 3327 , - 5396 , - 2889 , - 1438 , - 1043 , - 1704 , - 3421 , - 562 , - 4391 , - 3644 , - 3953 , - 5318 , - 2107 , - 5584 , - 4485 , - 4442 , - 5455 , - 1892 , - 5017 , - 3566 , - 3171 , - 3832 , - 5549 , - 2690 , - 887 , - 140 , - 449 , - 1814 , - 4235 , - 2080 , - 981 , - 938 , - 1951 , - 4020 , - 1513 , - 62 , - 5299 , - 328 , - 2045 , - 4818 , - 3015 , - 2268 , - 2577 , - 3942 , - 731 , - 4208 , - 3109 , - 3066 , - 4079 , - 516 , - 3641 , - 2190 , - 1795 , - 2456 , - 4173 , - 1314 , - 5143 , - 4396 , - 4705 , - 438 , - 2859 , - 704 , - 5237 , - 5194 , - 575 , - 2644 , - 137 , - 4318 , - 3923 , - 4584 , - 669 , - 3442 , - 1639 , - 892 , - 1201 , - 2566 , - 4987 , - 2832 , - 1733 , - 1690 , - 2703 , - 4772 , - 2265 , - 814 , - 419 , - 1080 , - 2797 , - 5570 , - 3767 , - 3020 , - 3329 , - 4694 , - 1483 , - 4960 , - 3861 , - 3818 , - 4831 , - 1268 , - 4393 , - 2942 , - 2547 , - 3208 , - 4925 , - 2066 , - 263 , - 5148 , - 5457 , - 1190 , - 3611 , - 1456 , - 357 , - 314 , - 1327 , - 3396 , - 889 , - 5070 , - 4675 , - 5336 , - 1421 , - 4194 , - 2391 , - 1644 , - 1953 , - 3318 , - 107 , - 3584 , - 2485 , - 2442 , - 3455 , - 5524 , - 3017 , - 1566 , - 1171 , - 1832 , - 3549 , - 690 , - 4519 , - 3772 , - 4081 , - 5446 , - 2235 , - 80 , - 4613 , - 4570 , - 5583 , - 2020 , - 5145 , - 3694 , - 3299 , - 3960 , - 45 , - 2818 , - 1015 , - 268 , - 577 , - 1942 , - 4363 , - 2208 , - 1109 , - 1066 , - 2079 , - 4148 , - 1641 , - 190 , - 5427 , - 456 , - 2173 , - 4946 , - 3143 , - 2396 , - 2705 , - 4070 , - 859 , - 4336 , - 3237 , - 3194 , - 4207 , - 644 , - 3769 , - 2318 , - 1923 , - 2584 , - 4301 , - 1442 , - 5271 , - 4524 , - 4833 , - 566 , - 2987 , - 832 , - 5365 , - 5322 , - 703 , - 2772 , - 265 , - 4446 , - 4051 , - 4712 , - 797 , - 3570 , - 1767 , - 1020 , - 1329 , - 2694 , - 5115 , - 2960 , - 1861 , - 1818 , - 2831 , - 4900 , - 2393 , - 942 , - 547 , - 1208 , - 2925 , - 66 , - 3895 , - 3148 , - 3457 , - 4822 , - 1611 , - 5088 , - 3989 , - 3946 , - 4959 , - 1396 , - 4521 , - 3070 , - 2675 , - 3336 , - 5053 , - 2194 , - 391 , - 5276 , - 5585 , - 1318 , - 3739 , - 1584 , - 485 , - 442 , - 1455 , - 3524 , - 1017 , - 5198 , - 4803 , - 5464 , - 1549 , - 4322 , - 2519 , - 1772 , - 2081 , - 3446 , - 235 , - 3712 , - 2613 , - 2570 , - 3583 , - 20 , - 3145 , - 1694 , - 1299 , - 1960 , - 3677 , - 818 , - 4647 , - 3900 , - 4209 , - 5574 , - 2363 , - 208 , - 4741 , - 4698 , - 79 , - 2148 , - 5273 , - 3822 , - 3427 , - 4088 , - 173 , - 2946 , - 1143 , - 396 , - 705 , - 2070 , - 4491 , - 2336 , - 1237 , - 1194 , - 2207 , - 4276 , - 1769 , - 318 , - 5555 , - 584 , - 2301 , - 5074 , - 3271 , - 2524 , - 2833 , - 4198 , - 987 , - 4464 , - 3365 , - 3322 , - 4335 , - 772 , - 3897 , - 2446 , - 2051 , - 2712 , - 4429 , - 1570 , - 5399 , - 4652 , - 4961 , - 694 , - 3115 , - 960 , - 5493 , - 5450 , - 831 , - 2900 , - 393 , - 4574 , - 4179 , - 4840 , - 925 , - 3698 , - 1895 , - 1148 , - 1457 , - 2822 , - 5243 , - 3088 , - 1989 , - 1946 , - 2959 , - 5028 , - 2521 , - 1070 , - 675 , - 1336 , - 3053 , - 194 , - 4023 , - 3276 , - 3585 , - 4950 , - 1739 , - 5216 , - 4117 , - 4074 , - 5087 , - 1524 , - 4649 , - 3198 , - 2803 , - 3464 , - 5181 , - 2322 , - 519 , - 5404 , - 81 , - 1446 , - 3867 , - 1712 , - 613 , - 570 , - 1583 , - 3652 , - 1145 , - 5326 , - 4931 , - 5592 , - 1677 , - 4450 , - 2647 , - 1900 , - 2209 , - 3574 , - 363 , - 3840 , - 2741 , - 2698 , - 3711 , - 148 , - 3273 , - 1822 , - 1427 , - 2088 , - 3805 , - 946 , - 4775 , - 4028 , - 4337 , - 70 , - 2491 , - 336 , - 4869 , - 4826 , - 207 , - 2276 , - 5401 , - 3950 , - 3555 , - 4216 , - 301 , - 3074 , - 1271 , - 524 , - 833 , - 2198 , - 4619 , - 2464 , - 1365 , - 1322 , - 2335 , - 4404 , - 1897 , - 446 , - 51 , - 712 , - 2429 , - 5202 , - 3399 , - 2652 , - 2961 , - 4326 , - 1115 , - 4592 , - 3493 , - 3450 , - 4463 , - 900 , - 4025 , - 2574 , - 2179 , - 2840 , - 4557 , - 1698 , - 5527 , - 4780 , - 5089 , - 822 , - 3243 , - 1088 , - 5621 , - 5578 , - 959 , - 3028 , - 521 , - 4702 , - 4307 , - 4968 , - 1053 , - 3826 , - 2023 , - 1276 , - 1585 , - 2950 , - 5371 , - 3216 , - 2117 , - 2074 , - 3087 , - 5156 , - 2649 , - 1198 , - 803 , - 1464 , - 3181 , - 322 , - 4151 , - 3404 , - 3713 , - 5078 , - 1867 , - 5344 , - 4245 , - 4202 , - 5215 , - 1652 , - 4777 , - 3326 , - 2931 , - 3592 , - 5309 , - 2450 , - 647 , - 5532 , - 209 , - 1574 , - 3995 , - 1840 , - 741 , - 698 , - 1711 , - 3780 , - 1273 , - 5454 , - 5059 , - 88 , - 1805 , - 4578 , - 2775 , - 2028 , - 2337 , - 3702 , - 491 , - 3968 , - 2869 , - 2826 , - 3839 , - 276 , - 3401 , - 1950 , - 1555 , - 2216 , - 3933 , - 1074 , - 4903 , - 4156 , - 4465 , - 198 , - 2619 , - 464 , - 4997 , - 4954 , - 335 , - 2404 , - 5529 , - 4078 , - 3683 , - 4344 , - 429 , - 3202 , - 1399 , - 652 , - 961 , - 2326 , - 4747 , - 2592 , - 1493 , - 1450 , - 2463 , - 4532 , - 2025 , - 574 , - 179 , - 840 , - 2557 , - 5330 , - 3527 , - 2780 , - 3089 , - 4454 , - 1243 , - 4720 , - 3621 , - 3578 , - 4591 , - 1028 , - 4153 , - 2702 , - 2307 , - 2968 , - 4685 , - 1826 , - 23 , - 4908 , - 5217 , - 950 , - 3371 , - 1216 , - 117 , - 74 , - 1087 , - 3156 , - 649 , - 4830 , - 4435 , - 5096 , - 1181 , - 3954 , - 2151 , - 1404 , - 1713 , - 3078 , - 5499 , - 3344 , - 2245 , - 2202 , - 3215 , - 5284 , - 2777 , - 1326 , - 931 , - 1592 , - 3309 , - 450 , - 4279 , - 3532 , - 3841 , - 5206 , - 1995 , - 5472 , - 4373 , - 4330 , - 5343 , - 1780 , - 4905 , - 3454 , - 3059 , - 3720 , - 5437 , - 2578 , - 775 , - 28 , - 337 , - 1702 , - 4123 , - 1968 , - 869 , - 826 , - 1839 , - 3908 , - 1401 , - 5582 , - 5187 , - 216 , - 1933 , - 4706 , - 2903 , - 2156 , - 2465 , - 3830 , - 619 , - 4096 , - 2997 , - 2954 , - 3967 , - 404 , - 3529 , - 2078 , - 1683 , - 2344 , - 4061 , - 1202 , - 5031 , - 4284 , - 4593 , - 326 , - 2747 , - 592 , - 5125 , - 5082 , - 463 , - 2532 , - 25 , - 4206 , - 3811 , - 4472 , - 557 , - 3330 , - 1527 , - 780 , - 1089 , - 2454 , - 4875 , - 2720 , - 1621 , - 1578 , - 2591 , - 4660 , - 2153 , - 702 , - 307 , - 968 , - 2685 , - 5458 , - 3655 , - 2908 , - 3217 , - 4582 , - 1371 , - 4848 , - 3749 , - 3706 , - 4719 , - 1156 , - 4281 , - 2830 , - 2435 , - 3096 , - 4813 , - 1954 , - 151 , - 5036 , - 5345 , - 1078 , - 3499 , - 1344 , - 245 , - 202 , - 1215 , - 3284 , - 777 , - 4958 , - 4563 , - 5224 , - 1309 , - 4082 , - 2279 , - 1532 , - 1841 , - 3206 , - 5627 , - 3472 , - 2373 , - 2330 , - 3343 , - 5412 , - 2905 , - 1454 , - 1059 , - 1720 , - 3437 , - 578 , - 4407 , - 3660 , - 3969 , - 5334 , - 2123 , - 5600 , - 4501 , - 4458 , - 5471 , - 1908 , - 5033 , - 3582 , - 3187 , - 3848 , - 5565 , - 2706 , - 903 , - 156 , - 465 , - 1830 , - 4251 , - 2096 , - 997 , - 954 , - 1967 , - 4036 , - 1529 , - 78 , - 5315 , - 344 , - 2061 , - 4834 , - 3031 , - 2284 , - 2593 , - 3958 , - 747 , - 4224 , - 3125 , - 3082 , - 4095 , - 532 , - 3657 , - 2206 , - 1811 , - 2472 , - 4189 , - 1330 , - 5159 , - 4412 , - 4721 , - 454 , - 2875 , - 720 , - 5253 , - 5210 , - 591 , - 2660 , - 153 , - 4334 , - 3939 , - 4600 , - 685 , - 3458 , - 1655 , - 908 , - 1217 , - 2582 , - 5003 , - 2848 , - 1749 , - 1706 , - 2719 , - 4788 , - 2281 , - 830 , - 435 , - 1096 , - 2813 , - 5586 , - 3783 , - 3036 , - 3345 , - 4710 , - 1499 , - 4976 , - 3877 , - 3834 , - 4847 , - 1284 , - 4409 , - 2958 , - 2563 , - 3224 , - 4941 , - 2082 , - 279 , - 5164 , - 5473 , - 1206 , - 3627 , - 1472 , - 373 , - 330 , - 1343 , - 3412 , - 905 , - 5086 , - 4691 , - 5352 , - 1437 , - 4210 , - 2407 , - 1660 , - 1969 , - 3334 , - 123 , - 3600 , - 2501 , - 2458 , - 3471 , - 5540 , - 3033 , - 1582 , - 1187 , - 1848 , - 3565 , - 706 , - 4535 , - 3788 , - 4097 , - 5462 , - 2251 , - 96 , - 4629 , - 4586 , - 5599 , - 2036 , - 5161 , - 3710 , - 3315 , - 3976 , - 61 , - 2834 , - 1031 , - 284 , - 593 , - 1958 , - 4379 , - 2224 , - 1125 , - 1082 , - 2095 , - 4164 , - 1657 , - 206 , - 5443 , - 472 , - 2189 , - 4962 , - 3159 , - 2412 , - 2721 , - 4086 , - 875 , - 4352 , - 3253 , - 3210 , - 4223 , - 660 , - 3785 , - 2334 , - 1939 , - 2600 , - 4317 , - 1458 , - 5287 , - 4540 , - 4849 , - 582 , - 3003 , - 848 , - 5381 , - 5338 , - 719 , - 2788 , - 281 , - 4462 , - 4067 , - 4728 , - 813 , - 3586 , - 1783 , - 1036 , - 1345 , - 2710 , - 5131 , - 2976 , - 1877 , - 1834 , - 2847 , - 4916 , - 2409 , - 958 , - 563 , - 1224 , - 2941 , - 82 , - 3911 , - 3164 , - 3473 , - 4838 , - 1627 , - 5104 , - 4005 , - 3962 , - 4975 , - 1412 , - 4537 , - 3086 , - 2691 , - 3352 , - 5069 , - 2210 , - 407 , - 5292 , - 5601 , - 1334 , - 3755 , - 1600 , - 501 , - 458 , - 1471 , - 3540 , - 1033 , - 5214 , - 4819 , - 5480 , - 1565 , - 4338 , - 2535 , - 1788 , - 2097 , - 3462 , - 251 , - 3728 , - 2629 , - 2586 , - 3599 , - 36 , - 3161 , - 1710 , - 1315 , - 1976 , - 3693 , - 834 , - 4663 , - 3916 , - 4225 , - 5590 , - 2379 , - 224 , - 4757 , - 4714 , - 95 , - 2164 , - 5289 , - 3838 , - 3443 , - 4104 , - 189 , - 2962 , - 1159 , - 412 , - 721 , - 2086 , - 4507 , - 2352 , - 1253 , - 1210 , - 2223 , - 4292 , - 1785 , - 334 , - 5571 , - 600 , - 2317 , - 5090 , - 3287 , - 2540 , - 2849 , - 4214 , - 1003 , - 4480 , - 3381 , - 3338 , - 4351 , - 788 , - 3913 , - 2462 , - 2067 , - 2728 , - 4445 , - 1586 , - 5415 , - 4668 , - 4977 , - 710 , - 3131 , - 976 , - 5509 , - 5466 , - 847 , - 2916 , - 409 , - 4590 , - 4195 , - 4856 , - 941 , - 3714 , - 1911 , - 1164 , - 1473 , - 2838 , - 5259 , - 3104 , - 2005 , - 1962 , - 2975 , - 5044 , - 2537 , - 1086 , - 691 , - 1352 , - 3069 , - 210 , - 4039 , - 3292 , - 3601 , - 4966 , - 1755 , - 5232 , - 4133 , - 4090 , - 5103 , - 1540 , - 4665 , - 3214 , - 2819 , - 3480 , - 5197 , - 2338 , - 535 , - 5420 , - 97 , - 1462 , - 3883 , - 1728 , - 629 , - 586 , - 1599 , - 3668 , - 1161 , - 5342 , - 4947 , - 5608 , - 1693 , - 4466 , - 2663 , - 1916 , - 2225 , - 3590 , - 379 , - 3856 , - 2757 , - 2714 , - 3727 , - 164 , - 3289 , - 1838 , - 1443 , - 2104 , - 3821 , - 962 , - 4791 , - 4044 , - 4353 , - 86 , - 2507 , - 352 , - 4885 , - 4842 , - 223 , - 2292 , - 5417 , - 3966 , - 3571 , - 4232 , - 317 , - 3090 , - 1287 , - 540 , - 849 , - 2214 , - 4635 , - 2480 , - 1381 , - 1338 , - 2351 , - 4420 , - 1913 , - 462 , - 67 , - 728 , - 2445 , - 5218 , - 3415 , - 2668 , - 2977 , - 4342 , - 1131 , - 4608 , - 3509 , - 3466 , - 4479 , - 916 , - 4041 , - 2590 , - 2195 , - 2856 , - 4573 , - 1714 , - 5543 , - 4796 , - 5105 , - 838 , - 3259 , - 1104 , - 5 , - 5594 , - 975 , - 3044 , - 537 , - 4718 , - 4323 , - 4984 , - 1069 , - 3842 , - 2039 , - 1292 , - 1601 , - 2966 , - 5387 , - 3232 , - 2133 , - 2090 , - 3103 , - 5172 , - 2665 , - 1214 , - 819 , - 1480 , - 3197 , - 338 , - 4167 , - 3420 , - 3729 , - 5094 , - 1883 , - 5360 , - 4261 , - 4218 , - 5231 , - 1668 , - 4793 , - 3342 , - 2947 , - 3608 , - 5325 , - 2466 , - 663 , - 5548 , - 225 , - 1590 , - 4011 , - 1856 , - 757 , - 714 , - 1727 , - 3796 , - 1289 , - 5470 , - 5075 , - 104 , - 1821 , - 4594 , - 2791 , - 2044 , - 2353 , - 3718 , - 507 , - 3984 , - 2885 , - 2842 , - 3855 , - 292 , - 3417 , - 1966 , - 1571 , - 2232 , - 3949 , - 1090 , - 4919 , - 4172 , - 4481 , - 214 , - 2635 , - 480 , - 5013 , - 4970 , - 351 , - 2420 , - 5545 , - 4094 , - 3699 , - 4360 , - 445 , - 3218 , - 1415 , - 668 , - 977 , - 2342 , - 4763 , - 2608 , - 1509 , - 1466 , - 2479 , - 4548 , - 2041 , - 590 , - 195 , - 856 , - 2573 , - 5346 , - 3543 , - 2796 , - 3105 , - 4470 , - 1259 , - 4736 , - 3637 , - 3594 , - 4607 , - 1044 , - 4169 , - 2718 , - 2323 , - 2984 , - 4701 , - 1842 , - 39 , - 4924 , - 5233 , - 966 , - 3387 , - 1232 , - 133 , - 90 , - 1103 , - 3172 , - 665 , - 4846 , - 4451 , - 5112 , - 1197 , - 3970 , - 2167 , - 1420 , - 1729 , - 3094 , - 5515 , - 3360 , - 2261 , - 2218 , - 3231 , - 5300 , - 2793 , - 1342 , - 947 , - 1608 , - 3325 , - 466 , - 4295 , - 3548 , - 3857 , - 5222 , - 2011 , - 5488 , - 4389 , - 4346 , - 5359 , - 1796 , - 4921 , - 3470 , - 3075 , - 3736 , - 5453 , - 2594 , - 791 , - 44 , - 353 , - 1718 , - 4139 , - 1984 , - 885 , - 842 , - 1855 , - 3924 , - 1417 , - 5598 , - 5203 , - 232 , - 1949 , - 4722 , - 2919 , - 2172 , - 2481 , - 3846 , - 635 , - 4112 , - 3013 , - 2970 , - 3983 , - 420 , - 3545 , - 2094 , - 1699 , - 2360 , - 4077 , - 1218 , - 5047 , - 4300 , - 4609 , - 342 , - 2763 , - 608 , - 5141 , - 5098 , - 479 , - 2548 , - 41 , - 4222 , - 3827 , - 4488 , - 573 , - 3346 , - 1543 , - 796 , - 1105 , - 2470 , - 4891 , - 2736 , - 1637 , - 1594 , - 2607 , - 4676 , - 2169 , - 718 , - 323 , - 984 , - 2701 , - 5474 , - 3671 , - 2924 , - 3233 , - 4598 , - 1387 , - 4864 , - 3765 , - 3722 , - 4735 , - 1172 , - 4297 , - 2846 , - 2451 , - 3112 , - 4829 , - 1970 , - 167 , - 5052 , - 5361 , - 1094 , - 3515 , - 1360 , - 261 , - 218 , - 1231 , - 3300 , - 793 , - 4974 , - 4579 , - 5240 , - 1325 , - 4098 , - 2295 , - 1548 , - 1857 , - 3222 , - 11 , - 3488 , - 2389 , - 2346 , - 3359 , - 5428 , - 2921 , - 1470 , - 1075 , - 1736 , - 3453 , - 594 , - 4423 , - 3676 , - 3985 , - 5350 , - 2139 , - 5616 , - 4517 , - 4474 , - 5487 , - 1924 , - 5049 , - 3598 , - 3203 , - 3864 , - 5581 , - 2722 , - 919 , - 172 , - 481 , - 1846 , - 4267 , - 2112 , - 1013 , - 970 , - 1983 , - 4052 , - 1545 , - 94 , - 5331 , - 360 , - 2077 , - 4850 , - 3047 , - 2300 , - 2609 , - 3974 , - 763 , - 4240 , - 3141 , - 3098 , - 4111 , - 548 , - 3673 , - 2222 , - 1827 , - 2488 , - 4205 , - 1346 , - 5175 , - 4428 , - 4737 , - 470 , - 2891 , - 736 , - 5269 , - 5226 , - 607 , - 2676 , - 169 , - 4350 , - 3955 , - 4616 , - 701 , - 3474 , - 1671 , - 924 , - 1233 , - 2598 , - 5019 , - 2864 , - 1765 , - 1722 , - 2735 , - 4804 , - 2297 , - 846 , - 451 , - 1112 , - 2829 , - 5602 , - 3799 , - 3052 , - 3361 , - 4726 , - 1515 , - 4992 , - 3893 , - 3850 , - 4863 , - 1300 , - 4425 , - 2974 , - 2579 , - 3240 , - 4957 , - 2098 , - 295 , - 5180 , - 5489 , - 1222 , - 3643 , - 1488 , - 389 , - 346 , - 1359 , - 3428 , - 921 , - 5102 , - 4707 , - 5368 , - 1453 , - 4226 , - 2423 , - 1676 , - 1985 , - 3350 , - 139 , - 3616 , - 2517 , - 2474 , - 3487 , - 5556 , - 3049 , - 1598 , - 1203 , - 1864 , - 3581 , - 722 , - 4551 , - 3804 , - 4113 , - 5478 , - 2267 , - 112 , - 4645 , - 4602 , - 5615 , - 2052 , - 5177 , - 3726 , - 3331 , - 3992 , - 77 , - 2850 , - 1047 , - 300 , - 609 , - 1974 , - 4395 , - 2240 , - 1141 , - 1098 , - 2111 , - 4180 , - 1673 , - 222 , - 5459 , - 488 , - 2205 , - 4978 , - 3175 , - 2428 , - 2737 , - 4102 , - 891 , - 4368 , - 3269 , - 3226 , - 4239 , - 676 , - 3801 , - 2350 , - 1955 , - 2616 , - 4333 , - 1474 , - 5303 , - 4556 , - 4865 , - 598 , - 3019 , - 864 , - 5397 , - 5354 , - 735 , - 2804 , - 297 , - 4478 , - 4083 , - 4744 , - 829 , - 3602 , - 1799 , - 1052 , - 1361 , - 2726 , - 5147 , - 2992 , - 1893 , - 1850 , - 2863 , - 4932 , - 2425 , - 974 , - 579 , - 1240 , - 2957 , - 98 , - 3927 , - 3180 , - 3489 , - 4854 , - 1643 , - 5120 , - 4021 , - 3978 , - 4991 , - 1428 , - 4553 , - 3102 , - 2707 , - 3368 , - 5085 , - 2226 , - 423 , - 5308 , - 5617 , - 1350 , - 3771 , - 1616 , - 517 , - 474 , - 1487 , - 3556 , - 1049 , - 5230 , - 4835 , - 5496 , - 1581 , - 4354 , - 2551 , - 1804 , - 2113 , - 3478 , - 267 , - 3744 , - 2645 , - 2602 , - 3615 , - 52 , - 3177 , - 1726 , - 1331 , - 1992 , - 3709 , - 850 , - 4679 , - 3932 , - 4241 , - 5606 , - 2395 , - 240 , - 4773 , - 4730 , - 111 , - 2180 , - 5305 , - 3854 , - 3459 , - 4120 , - 205 , - 2978 , - 1175 , - 428 , - 737 , - 2102 , - 4523 , - 2368 , - 1269 , - 1226 , - 2239 , - 4308 , - 1801 , - 350 , - 5587 , - 616 , - 2333 , - 5106 , - 3303 , - 2556 , - 2865 , - 4230 , - 1019 , - 4496 , - 3397 , - 3354 , - 4367 , - 804 , - 3929 , - 2478 , - 2083 , - 2744 , - 4461 , - 1602 , - 5431 , - 4684 , - 4993 , - 726 , - 3147 , - 992 , - 5525 , - 5482 , - 863 , - 2932 , - 425 , - 4606 , - 4211 , - 4872 , - 957 , - 3730 , - 1927 , - 1180 , - 1489 , - 2854 , - 5275 , - 3120 , - 2021 , - 1978 , - 2991 , - 5060 , - 2553 , - 1102 , - 707 , - 1368 , - 3085 , - 226 , - 4055 , - 3308 , - 3617 , - 4982 , - 1771 , - 5248 , - 4149 , - 4106 , - 5119 , - 1556 , - 4681 , - 3230 , - 2835 , - 3496 , - 5213 , - 2354 , - 551 , - 5436 , - 113 , - 1478 , - 3899 , - 1744 , - 645 , - 602 , - 1615 , - 3684 , - 1177 , - 5358 , - 4963 , - 5624 , - 1709 , - 4482 , - 2679 , - 1932 , - 2241 , - 3606 , - 395 , - 3872 , - 2773 , - 2730 , - 3743 , - 180 , - 3305 , - 1854 , - 1459 , - 2120 , - 3837 , - 978 , - 4807 , - 4060 , - 4369 , - 102 , - 2523 , - 368 , - 4901 , - 4858 , - 239 , - 2308 , - 5433 , - 3982 , - 3587 , - 4248 , - 333 , - 3106 , - 1303 , - 556 , - 865 , - 2230 , - 4651 , - 2496 , - 1397 , - 1354 , - 2367 , - 4436 , - 1929 , - 478 , - 83 , - 744 , - 2461 , - 5234 , - 3431 , - 2684 , - 2993 , - 4358 , - 1147 , - 4624 , - 3525 , - 3482 , - 4495 , - 932 , - 4057 , - 2606 , - 2211 , - 2872 , - 4589 , - 1730 , - 5559 , - 4812 , - 5121 , - 854 , - 3275 , - 1120 , - 21 , - 5610 , - 991 , - 3060 , - 553 , - 4734 , - 4339 , - 5000 , - 1085 , - 3858 , - 2055 , - 1308 , - 1617 , - 2982 , - 5403 , - 3248 , - 2149 , - 2106 , - 3119 , - 5188 , - 2681 , - 1230 , - 835 , - 1496 , - 3213 , - 354 , - 4183 , - 3436 , - 3745 , - 5110 , - 1899 , - 5376 , - 4277 , - 4234 , - 5247 , - 1684 , - 4809 , - 3358 , - 2963 , - 3624 , - 5341 , - 2482 , - 679 , - 5564 , - 241 , - 1606 , - 4027 , - 1872 , - 773 , - 730 , - 1743 , - 3812 , - 1305 , - 5486 , - 5091 , - 120 , - 1837 , - 4610 , - 2807 , - 2060 , - 2369 , - 3734 , - 523 , - 4000 , - 2901 , - 2858 , - 3871 , - 308 , - 3433 , - 1982 , - 1587 , - 2248 , - 3965 , - 1106 , - 4935 , - 4188 , - 4497 , - 230 , - 2651 , - 496 , - 5029 , - 4986 , - 367 , - 2436 , - 5561 , - 4110 , - 3715 , - 4376 , - 461 , - 3234 , - 1431 , - 684 , - 993 , - 2358 , - 4779 , - 2624 , - 1525 , - 1482 , - 2495 , - 4564 , - 2057 , - 606 , - 211 , - 872 , - 2589 , - 5362 , - 3559 , - 2812 , - 3121 , - 4486 , - 1275 , - 4752 , - 3653 , - 3610 , - 4623 , - 1060 , - 4185 , - 2734 , - 2339 , - 3000 , - 4717 , - 1858 , - 55 , - 4940 , - 5249 , - 982 , - 3403 , - 1248 , - 149 , - 106 , - 1119 , - 3188 , - 681 , - 4862 , - 4467 , - 5128 , - 1213 , - 3986 , - 2183 , - 1436 , - 1745 , - 3110 , - 5531 , - 3376 , - 2277 , - 2234 , - 3247 , - 5316 , - 2809 , - 1358 , - 963 , - 1624 , - 3341 , - 482 , - 4311 , - 3564 , - 3873 , - 5238 , - 2027 , - 5504 , - 4405 , - 4362 , - 5375 , - 1812 , - 4937 , - 3486 , - 3091 , - 3752 , - 5469 , - 2610 , - 807 , - 60 , - 369 , - 1734 , - 4155 , - 2000 , - 901 , - 858 , - 1871 , - 3940 , - 1433 , - 5614 , - 5219 , - 248 , - 1965 , - 4738 , - 2935 , - 2188 , - 2497 , - 3862 , - 651 , - 4128 , - 3029 , - 2986 , - 3999 , - 436 , - 3561 , - 2110 , - 1715 , - 2376 , - 4093 , - 1234 , - 5063 , - 4316 , - 4625 , - 358 , - 2779 , - 624 , - 5157 , - 5114 , - 495 , - 2564 , - 57 , - 4238 , - 3843 , - 4504 , - 589 , - 3362 , - 1559 , - 812 , - 1121 , - 2486 , - 4907 , - 2752 , - 1653 , - 1610 , - 2623 , - 4692 , - 2185 , - 734 , - 339 , - 1000 , - 2717 , - 5490 , - 3687 , - 2940 , - 3249 , - 4614 , - 1403 , - 4880 , - 3781 , - 3738 , - 4751 , - 1188 , - 4313 , - 2862 , - 2467 , - 3128 , - 4845 , - 1986 , - 183 , - 5068 , - 5377 , - 1110 , - 3531 , - 1376 , - 277 , - 234 , - 1247 , - 3316 , - 809 , - 4990 , - 4595 , - 5256 , - 1341 , - 4114 , - 2311 , - 1564 , - 1873 , - 3238 , - 27 , - 3504 , - 2405 , - 2362 , - 3375 , - 5444 , - 2937 , - 1486 , - 1091 , - 1752 , - 3469 , - 610 , - 4439 , - 3692 , - 4001 , - 5366 , - 2155 , - 0 , - 2939 , - 1250 , - 2053 , - 1076 , - 5439 , - 5174 , - 1705 , - 2152 , - 2243 , - 3402 , - 1357 , - 3228 , - 4743 , - 1630 , - 1009 , - 4304 , - 1547 , - 5554 , - 661 , - 5380 , - 4047 , - 3782 , - 313 , - 760 , - 851 , - 2010 , - 5661 , - 1836 , - 3351 , - 238 , - 5313 , - 2912 , - 155 , - 4162 , - 4965 , - 3988 , - 2655 , - 2390 , - 4617 , - 5064 , - 5155 , - 618 , - 4269 , - 444 , - 1959 , - 4542 , - 3921 , - 1520 , - 4459 , - 2770 , - 3573 , - 2596 , - 1263 , - 998 , - 3225 , - 3672 , - 3763 , - 4922 , - 2877 , - 4748 , - 567 , - 3150 , - 2529 , - 128 , - 3067 , - 1378 , - 2181 , - 1204 , - 5567 , - 5302 , - 1833 , - 2280 , - 2371 , - 3530 , - 1485 , - 3356 , - 4871 , - 1758 , - 1137 , - 4432 , - 1675 , - 5682 , - 789 , - 5508 , - 4175 , - 3910 , - 441 , - 888 , - 979 , - 2138 , - 93 , - 1964 , - 3479 , - 366 , - 5441 , - 3040 , - 283 , - 4290 , - 5093 , - 4116 , - 2783 , - 2518 , - 4745 , - 5192 , - 5283 , - 746 , - 4397 , - 572 , - 2087 , - 4670 , - 4049 , - 1648 , - 4587 , - 2898 , - 3701 , - 2724 , - 1391 , - 1126 , - 3353 , - 3800 , - 3891 , - 5050 , - 3005 , - 4876 , - 695 , - 3278 , - 2657 , - 256 , - 3195 , - 1506 , - 2309 , - 1332 , - 5695 , - 5430 , - 1961 , - 2408 , - 2499 , - 3658 , - 1613 , - 3484 , - 4999 , - 1886 , - 1265 , - 4560 , - 1803 , - 114 , - 917 , - 5636 , - 4303 , - 4038 , - 569 , - 1016 , - 1107 , - 2266 , - 221 , - 2092 , - 3607 , - 494 , - 5569 , - 3168 , - 411 , - 4418 , - 5221 , - 4244 , - 2911 , - 2646 , - 4873 , - 5320 , - 5411 , - 874 , - 4525 , - 700 , - 2215 , - 4798 , - 4177 , - 1776 , - 4715 , - 3026 , - 3829 , - 2852 , - 1519 , - 1254 , - 3481 , - 3928 , - 4019 , - 5178 , - 3133 , - 5004 , - 823 , - 3406 , - 2785 , - 384 , - 3323 , - 1634 , - 2437 , - 1460 , - 127 , - 5558 , - 2089 , - 2536 , - 2627 , - 3786 , - 1741 , - 3612 , - 5127 , - 2014 , - 1393 , - 4688 , - 1931 , - 242 , - 1045 , - 68 , - 4431 , - 4166 , - 697 , - 1144 , - 1235 , - 2394 , - 349 , - 2220 , - 3735 , - 622 , - 1 , - 3296 , - 539 , - 4546 , - 5349 , - 4372 , - 3039 , - 2774 , - 5001 , - 5448 , - 5539 , - 1002 , - 4653 , - 828 , - 2343 , - 4926 , - 4305 , - 1904 , - 4843 , - 3154 , - 3957 , - 2980 , - 1647 , - 1382 , - 3609 , - 4056 , - 4147 , - 5306 , - 3261 , - 5132 , - 951 , - 3534 , - 2913 , - 512 , - 3451 , - 1762 , - 2565 , - 1588 , - 255 , - 5686 , - 2217 , - 2664 , - 2755 , - 3914 , - 1869 , - 3740 , - 5255 , - 2142 , - 1521 , - 4816 , - 2059 , - 370 , - 1173 , - 196 , - 4559 , - 4294 , - 825 , - 1272 , - 1363 , - 2522 , - 477 , - 2348 , - 3863 , - 750 , - 129 , - 3424 , - 667 , - 4674 , - 5477 , - 4500 , - 3167 , - 2902 , - 5129 , - 5576 , - 5667 , - 1130 , - 4781 , - 956 , - 2471 , - 5054 , - 4433 , - 2032 , - 4971 , - 3282 , - 4085 , - 3108 , - 1775 , - 1510 , - 3737 , - 4184 , - 4275 , - 5434 , - 3389 , - 5260 , - 1079 , - 3662 , - 3041 , - 640 , - 3579 , - 1890 , - 2693 , - 1716 , - 383 , - 118 , - 2345 , - 2792 , - 2883 , - 4042 , - 1997 , - 3868 , - 5383 , - 2270 , - 1649 , - 4944 , - 2187 , - 498 , - 1301 , - 324 , - 4687 , - 4422 , - 953 , - 1400 , - 1491 , - 2650 , - 605 , - 2476 , - 3991 , - 878 , - 257 , - 3552 , - 795 , - 4802 , - 5605 , - 4628 , - 3295 , - 3030 , - 5257 , - 8 , - 99 , - 1258 , - 4909 , - 1084 , - 2599 , - 5182 , - 4561 , - 2160 , - 5099 , - 3410 , - 4213 , - 3236 , - 1903 , - 1638 , - 3865 , - 4312 , - 4403 , - 5562 , - 3517 , - 5388 , - 1207 , - 3790 , - 3169 , - 768 , - 3707 , - 2018 , - 2821 , - 1844 , - 511 , - 246 , - 2473 , - 2920 , - 3011 , - 4170 , - 2125 , - 3996 , - 5511 , - 2398 , - 1777 , - 5072 , - 2315 , - 626 , - 1429 , - 452 , - 4815 , - 4550 , - 1081 , - 1528 , - 1619 , - 2778 , - 733 , - 2604 , - 4119 , - 1006 , - 385 , - 3680 , - 923 , - 4930 , - 37 , - 4756 , - 3423 , - 3158 , - 5385 , - 136 , - 227 , - 1386 , - 5037 , - 1212 , - 2727 , - 5310 , - 4689 , - 2288 , - 5227 , - 3538 , - 4341 , - 3364 , - 2031 , - 1766 , - 3993 , - 4440 , - 4531 , - 5690 , - 3645 , - 5516 , - 1335 , - 3918 , - 3297 , - 896 , - 3835 , - 2146 , - 2949 , - 1972 , - 639 , - 374 , - 2601 , - 3048 , - 3139 , - 4298 , - 2253 , - 4124 , - 5639 , - 2526 , - 1905 , - 5200 , - 2443 , - 754 , - 1557 , - 580 , - 4943 , - 4678 , - 1209 , - 1656 , - 1747 , - 2906 , - 861 , - 2732 , - 4247 , - 1134 , - 513 , - 3808 , - 1051 , - 5058 , - 165 , - 4884 , - 3551 , - 3286 , - 5513 , - 264 , - 355 , - 1514 , - 5165 , - 1340 , - 2855 , - 5438 , - 4817 , - 2416 , - 5355 , - 3666 , - 4469 , - 3492 , - 2159 , - 1894 , - 4121 , - 4568 , - 4659 , - 122 , - 3773 , - 5644 , - 1463 , - 4046 , - 3425 , - 1024 , - 3963 , - 2274 , - 3077 , - 2100 , - 767 , - 502 , - 2729 , - 3176 , - 3267 , - 4426 , - 2381 , - 4252 , - 71 , - 2654 , - 2033 , - 5328 , - 2571 , - 882 , - 1685 , - 708 , - 5071 , - 4806 , - 1337 , - 1784 , - 1875 , - 3034 , - 989 , - 2860 , - 4375 , - 1262 , - 641 , - 3936 , - 1179 , - 5186 , - 293 , - 5012 , - 3679 , - 3414 , - 5641 , - 392 , - 483 , - 1642 , - 5293 , - 1468 , - 2983 , - 5566 , - 4945 , - 2544 , - 5483 , - 3794 , - 4597 , - 3620 , - 2287 , - 2022 , - 4249 , - 4696 , - 4787 , - 250 , - 3901 , - 76 , - 1591 , - 4174 , - 3553 , - 1152 , - 4091 , - 2402 , - 3205 , - 2228 , - 895 , - 630 , - 2857 , - 3304 , - 3395 , - 4554 , - 2509 , - 4380 , - 199 , - 2782 , - 2161 , - 5456 , - 2699 , - 1010 , - 1813 , - 836 , - 5199 , - 4934 , - 1465 , - 1912 , - 2003 , - 3162 , - 1117 , - 2988 , - 4503 , - 1390 , - 769 , - 4064 , - 1307 , - 5314 , - 421 , - 5140 , - 3807 , - 3542 , - 73 , - 520 , - 611 , - 1770 , - 5421 , - 1596 , - 3111 , - 5694 , - 5073 , - 2672 , - 5611 , - 3922 , - 4725 , - 3748 , - 2415 , - 2150 , - 4377 , - 4824 , - 4915 , - 378 , - 4029 , - 204 , - 1719 , - 4302 , - 3681 , - 1280 , - 4219 , - 2530 , - 3333 , - 2356 , - 1023 , - 758 , - 2985 , - 3432 , - 3523 , - 4682 , - 2637 , - 4508 , - 327 , - 2910 , - 2289 , - 5584 , - 2827 , - 1138 , - 1941 , - 964 , - 5327 , - 5062 , - 1593 , - 2040 , - 2131 , - 3290 , - 1245 , - 3116 , - 4631 , - 1518 , - 897 , - 4192 , - 1435 , - 5442 , - 549 , - 5268 , - 3935 , - 3670 , - 201 , - 648 , - 739 , - 1898 , - 5549 , - 1724 , - 3239 , - 126 , - 5201 , - 2800 , - 43 , - 4050 , - 4853 , - 3876 , - 2543 , - 2278 , - 4505 , - 4952 , - 5043 , - 506 , - 4157 , - 332 , - 1847 , - 4430 , - 3809 , - 1408 , - 4347 , - 2658 , - 3461 , - 2484 , - 1151 , - 886 , - 3113 , - 3560 , - 3651 , - 4810 , - 2765 , - 4636 , - 455 , - 3038 , - 2417 , - 16 , - 2955 , - 1266 , - 2069 , - 1092 , - 5455 , - 5190 , - 1721 , - 2168 , - 2259 , - 3418 , - 1373 , - 3244 , - 4759 , - 1646 , - 1025 , - 4320 , - 1563 , - 5570 , - 677 , - 5396 , - 4063 , - 3798 , - 329 , - 776 , - 867 , - 2026 , - 5677 , - 1852 , - 3367 , - 254 , - 5329 , - 2928 , - 171 , - 4178 , - 4981 , - 4004 , - 2671 , - 2406 , - 4633 , - 5080 , - 5171 , - 634 , - 4285 , - 460 , - 1975 , - 4558 , - 3937 , - 1536 , - 4475 , - 2786 , - 3589 , - 2612 , - 1279 , - 1014 , - 3241 , - 3688 , - 3779 , - 4938 , - 2893 , - 4764 , - 583 , - 3166 , - 2545 , - 144 , - 3083 , - 1394 , - 2197 , - 1220 , - 5583 , - 5318 , - 1849 , - 2296 , - 2387 , - 3546 , - 1501 , - 3372 , - 4887 , - 1774 , - 1153 , - 4448 , - 1691 , - 2 , - 805 , - 5524 , - 4191 , - 3926 , - 457 , - 904 , - 995 , - 2154 , - 109 , - 1980 , - 3495 , - 382 , - 5457 , - 3056 , - 299 , - 4306 , - 5109 , - 4132 , - 2799 , - 2534 , - 4761 , - 5208 , - 5299 , - 762 , - 4413 , - 588 , - 2103 , - 4686 , - 4065 , - 1664 , - 4603 , - 2914 , - 3717 , - 2740 , - 1407 , - 1142 , - 3369 , - 3816 , - 3907 , - 5066 , - 3021 , - 4892 , - 711 , - 3294 , - 2673 , - 272 , - 3211 , - 1522 , - 2325 , - 1348 , - 15 , - 5446 , - 1977 , - 2424 , - 2515 , - 3674 , - 1629 , - 3500 , - 5015 , - 1902 , - 1281 , - 4576 , - 1819 , - 130 , - 933 , - 5652 , - 4319 , - 4054 , - 585 , - 1032 , - 1123 , - 2282 , - 237 , - 2108 , - 3623 , - 510 , - 5585 , - 3184 , - 427 , - 4434 , - 5237 , - 4260 , - 2927 , - 2662 , - 4889 , - 5336 , - 5427 , - 890 , - 4541 , - 716 , - 2231 , - 4814 , - 4193 , - 1792 , - 4731 , - 3042 , - 3845 , - 2868 , - 1535 , - 1270 , - 3497 , - 3944 , - 4035 , - 5194 , - 3149 , - 5020 , - 839 , - 3422 , - 2801 , - 400 , - 3339 , - 1650 , - 2453 , - 1476 , - 143 , - 5574 , - 2105 , - 2552 , - 2643 , - 3802 , - 1757 , - 3628 , - 5143 , - 2030 , - 1409 , - 4704 , - 1947 , - 258 , - 1061 , - 84 , - 4447 , - 4182 , - 713 , - 1160 , - 1251 , - 2410 , - 365 , - 2236 , - 3751 , - 638 , - 17 , - 3312 , - 555 , - 4562 , - 5365 , - 4388 , - 3055 , - 2790 , - 5017 , - 5464 , - 5555 , - 1018 , - 4669 , - 844 , - 2359 , - 4942 , - 4321 , - 1920 , - 4859 , - 3170 , - 3973 , - 2996 , - 1663 , - 1398 , - 3625 , - 4072 , - 4163 , - 5322 , - 3277 , - 5148 , - 967 , - 3550 , - 2929 , - 528 , - 3467 , - 1778 , - 2581 , - 1604 , - 271 , - 6 , - 2233 , - 2680 , - 2771 , - 3930 , - 1885 , - 3756 , - 5271 , - 2158 , - 1537 , - 4832 , - 2075 , - 386 , - 1189 , - 212 , - 4575 , - 4310 , - 841 , - 1288 , - 1379 , - 2538 , - 493 , - 2364 , - 3879 , - 766 , - 145 , - 3440 , - 683 , - 4690 , - 5493 , - 4516 , - 3183 , - 2918 , - 5145 , - 5592 , - 5683 , - 1146 , - 4797 , - 972 , - 2487 , - 5070 , - 4449 , - 2048 , - 4987 , - 3298 , - 4101 , - 3124 , - 1791 , - 1526 , - 3753 , - 4200 , - 4291 , - 5450 , - 3405 , - 5276 , - 1095 , - 3678 , - 3057 , - 656 , - 3595 , - 1906 , - 2709 , - 1732 , - 399 , - 134 , - 2361 , - 2808 , - 2899 , - 4058 , - 2013 , - 3884 , - 5399 , - 2286 , - 1665 , - 4960 , - 2203 , - 514 , - 1317 , - 340 , - 4703 , - 4438 , - 969 , - 1416 , - 1507 , - 2666 , - 621 , - 2492 , - 4007 , - 894 , - 273 , - 3568 , - 811 , - 4818 , - 5621 , - 4644 , - 3311 , - 3046 , - 5273 , - 24 , - 115 , - 1274 , - 4925 , - 1100 , - 2615 , - 5198 , - 4577 , - 2176 , - 5115 , - 3426 , - 4229 , - 3252 , - 1919 , - 1654 , - 3881 , - 4328 , - 4419 , - 5578 , - 3533 , - 5404 , - 1223 , - 3806 , - 3185 , - 784 , - 3723 , - 2034 , - 2837 , - 1860 , - 527 , - 262 , - 2489 , - 2936 , - 3027 , - 4186 , - 2141 , - 4012 , - 5527 , - 2414 , - 1793 , - 5088 , - 2331 , - 642 , - 1445 , - 468 , - 4831 , - 4566 , - 1097 , - 1544 , - 1635 , - 2794 , - 749 , - 2620 , - 4135 , - 1022 , - 401 , - 3696 , - 939 , - 4946 , - 53 , - 4772 , - 3439 , - 3174 , - 5401 , - 152 , - 243 , - 1402 , - 5053 , - 1228 , - 2743 , - 5326 , - 4705 , - 2304 , - 5243 , - 3554 , - 4357 , - 3380 , - 2047 , - 1782 , - 4009 , - 4456 , - 4547 , - 10 , - 3661 , - 5532 , - 1351 , - 3934 , - 3313 , - 912 , - 3851 , - 2162 , - 2965 , - 1988 , - 655 , - 390 , - 2617 , - 3064 , - 3155 , - 4314 , - 2269 , - 4140 , - 5655 , - 2542 , - 1921 , - 5216 , - 2459 , - 770 , - 1573 , - 596 , - 4959 , - 4694 , - 1225 , - 1672 , - 1763 , - 2922 , - 877 , - 2748 , - 4263 , - 1150 , - 529 , - 3824 , - 1067 , - 5074 , - 181 , - 4900 , - 3567 , - 3302 , - 5529 , - 280 , - 371 , - 1530 , - 5181 , - 1356 , - 2871 , - 5454 , - 4833 , - 2432 , - 5371 , - 3682 , - 4485 , - 3508 , - 2175 , - 1910 , - 4137 , - 4584 , - 4675 , - 138 , - 3789 , - 5660 , - 1479 , - 4062 , - 3441 , - 1040 , - 3979 , - 2290 , - 3093 , - 2116 , - 783 , - 518 , - 2745 , - 3192 , - 3283 , - 4442 , - 2397 , - 4268 , - 87 , - 2670 , - 2049 , - 5344 , - 2587 , - 898 , - 1701 , - 724 , - 5087 , - 4822 , - 1353 , - 1800 , - 1891 , - 3050 , - 1005 , - 2876 , - 4391 , - 1278 , - 657 , - 3952 , - 1195 , - 5202 , - 309 , - 5028 , - 3695 , - 3430 , - 5657 , - 408 , - 499 , - 1658 , - 5309 , - 1484 , - 2999 , - 5582 , - 4961 , - 2560 , - 5499 , - 3810 , - 4613 , - 3636 , - 2303 , - 2038 , - 4265 , - 4712 , - 4803 , - 266 , - 3917 , - 92 , - 1607 , - 4190 , - 3569 , - 1168 , - 4107 , - 2418 , - 3221 , - 2244 , - 911 , - 646 , - 2873 , - 3320 , - 3411 , - 4570 , - 2525 , - 4396 , - 215 , - 2798 , - 2177 , - 5472 , - 2715 , - 1026 , - 1829 , - 852 , - 5215 , - 4950 , - 1481 , - 1928 , - 2019 , - 3178 , - 1133 , - 3004 , - 4519 , - 1406 , - 785 , - 4080 , - 1323 , - 5330 , - 437 , - 5156 , - 3823 , - 3558 , - 89 , - 536 , - 627 , - 1786 , - 5437 , - 1612 , - 3127 , - 14 , - 5089 , - 2688 , - 5627 , - 3938 , - 4741 , - 3764 , - 2431 , - 2166 , - 4393 , - 4840 , - 4931 , - 394 , - 4045 , - 220 , - 1735 , - 4318 , - 3697 , - 1296 , - 4235 , - 2546 , - 3349 , - 2372 , - 1039 , - 774 , - 3001 , - 3448 , - 3539 , - 4698 , - 2653 , - 4524 , - 343 , - 2926 , - 2305 , - 5600 , - 2843 , - 1154 , - 1957 , - 980 , - 5343 , - 5078 , - 1609 , - 2056 , - 2147 , - 3306 , - 1261 , - 3132 , - 4647 , - 1534 , - 913 , - 4208 , - 1451 , - 5458 , - 565 , - 5284 , - 3951 , - 3686 , - 217 , - 664 , - 755 , - 1914 , - 5565 , - 1740 , - 3255 , - 142 , - 5217 , - 2816 , - 59 , - 4066 , - 4869 , - 3892 , - 2559 , - 2294 , - 4521 , - 4968 , - 5059 , - 522 , - 4173 , - 348 , - 1863 , - 4446 , - 3825 , - 1424 , - 4363 , - 2674 , - 3477 , - 2500 , - 1167 , - 902 , - 3129 , - 3576 , - 3667 , - 4826 , - 2781 , - 4652 , - 471 , - 3054 , - 2433 , - 32 , - 2971 , - 1282 , - 2085 , - 1108 , - 5471 , - 5206 , - 1737 , - 2184 , - 2275 , - 3434 , - 1389 , - 3260 , - 4775 , - 1662 , - 1041 , - 4336 , - 1579 , - 5586 , - 693 , - 5412 , - 4079 , - 3814 , - 345 , - 792 , - 883 , - 2042 , - 5693 , - 1868 , - 3383 , - 270 , - 5345 , - 2944 , - 187 , - 4194 , - 4997 , - 4020 , - 2687 , - 2422 , - 4649 , - 5096 , - 5187 , - 650 , - 4301 , - 476 , - 1991 , - 4574 , - 3953 , - 1552 , - 4491 , - 2802 , - 3605 , - 2628 , - 1295 , - 1030 , - 3257 , - 3704 , - 3795 , - 4954 , - 2909 , - 4780 , - 599 , - 3182 , - 2561 , - 160 , - 3099 , - 1410 , - 2213 , - 1236 , - 5599 , - 5334 , - 1865 , - 2312 , - 2403 , - 3562 , - 1517 , - 3388 , - 4903 , - 1790 , - 1169 , - 4464 , - 1707 , - 18 , - 821 , - 5540 , - 4207 , - 3942 , - 473 , - 920 , - 1011 , - 2170 , - 125 , - 1996 , - 3511 , - 398 , - 5473 , - 3072 , - 315 , - 4322 , - 5125 , - 4148 , - 2815 , - 2550 , - 4777 , - 5224 , - 5315 , - 778 , - 4429 , - 604 , - 2119 , - 4702 , - 4081 , - 1680 , - 4619 , - 2930 , - 3733 , - 2756 , - 1423 , - 1158 , - 3385 , - 3832 , - 3923 , - 5082 , - 3037 , - 4908 , - 727 , - 3310 , - 2689 , - 288 , - 3227 , - 1538 , - 2341 , - 1364 , - 31 , - 5462 , - 1993 , - 2440 , - 2531 , - 3690 , - 1645 , - 3516 , - 5031 , - 1918 , - 1297 , - 4592 , - 1835 , - 146 , - 949 , - 5668 , - 4335 , - 4070 , - 601 , - 1048 , - 1139 , - 2298 , - 253 , - 2124 , - 3639 , - 526 , - 5601 , - 3200 , - 443 , - 4450 , - 5253 , - 4276 , - 2943 , - 2678 , - 4905 , - 5352 , - 5443 , - 906 , - 4557 , - 732 , - 2247 , - 4830 , - 4209 , - 1808 , - 4747 , - 3058 , - 3861 , - 2884 , - 1551 , - 1286 , - 3513 , - 3960 , - 4051 , - 5210 , - 3165 , - 5036 , - 855 , - 3438 , - 2817 , - 416 , - 3355 , - 1666 , - 2469 , - 1492 , - 159 , - 5590 , - 2121 , - 2568 , - 2659 , - 3818 , - 1773 , - 3644 , - 5159 , - 2046 , - 1425 , - 4720 , - 1963 , - 274 , - 1077 , - 100 , - 4463 , - 4198 , - 729 , - 1176 , - 1267 , - 2426 , - 381 , - 2252 , - 3767 , - 654 , - 33 , - 3328 , - 571 , - 4578 , - 5381 , - 4404 , - 3071 , - 2806 , - 5033 , - 5480 , - 5571 , - 1034 , - 4685 , - 860 , - 2375 , - 4958 , - 4337 , - 1936 , - 4875 , - 3186 , - 3989 , - 3012 , - 1679 , - 1414 , - 3641 , - 4088 , - 4179 , - 5338 , - 3293 , - 5164 , - 983 , - 3566 , - 2945 , - 544 , - 3483 , - 1794 , - 2597 , - 1620 , - 287 , - 22 , - 2249 , - 2696 , - 2787 , - 3946 , - 1901 , - 3772 , - 5287 , - 2174 , - 1553 , - 4848 , - 2091 , - 402 , - 1205 , - 228 , - 4591 , - 4326 , - 857 , - 1304 , - 1395 , - 2554 , - 509 , - 2380 , - 3895 , - 782 , - 161 , - 3456 , - 699 , - 4706 , - 5509 , - 4532 , - 3199 , - 2934 , - 5161 , - 5608 , - 3 , - 1162 , - 4813 , - 988 , - 2503 , - 5086 , - 4465 , - 2064 , - 5003 , - 3314 , - 4117 , - 3140 , - 1807 , - 1542 , - 3769 , - 4216 , - 4307 , - 5466 , - 3421 , - 5292 , - 1111 , - 3694 , - 3073 , - 672 , - 3611 , - 1922 , - 2725 , - 1748 , - 415 , - 150 , - 2377 , - 2824 , - 2915 , - 4074 , - 2029 , - 3900 , - 5415 , - 2302 , - 1681 , - 4976 , - 2219 , - 530 , - 1333 , - 356 , - 4719 , - 4454 , - 985 , - 1432 , - 1523 , - 2682 , - 637 , - 2508 , - 4023 , - 910 , - 289 , - 3584 , - 827 , - 4834 , - 5637 , - 4660 , - 3327 , - 3062 , - 5289 , - 40 , - 131 , - 1290 , - 4941 , - 1116 , - 2631 , - 5214 , - 4593 , - 2192 , - 5131 , - 3442 , - 4245 , - 3268 , - 1935 , - 1670 , - 3897 , - 4344 , - 4435 , - 5594 , - 3549 , - 5420 , - 1239 , - 3822 , - 3201 , - 800 , - 3739 , - 2050 , - 2853 , - 1876 , - 543 , - 278 , - 2505 , - 2952 , - 3043 , - 4202 , - 2157 , - 4028 , - 5543 , - 2430 , - 1809 , - 5104 , - 2347 , - 658 , - 1461 , - 484 , - 4847 , - 4582 , - 1113 , - 1560 , - 1651 , - 2810 , - 765 , - 2636 , - 4151 , - 1038 , - 417 , - 3712 , - 955 , - 4962 , - 69 , - 4788 , - 3455 , - 3190 , - 5417 , - 168 , - 259 , - 1418 , - 5069 , - 1244 , - 2759 , - 5342 , - 4721 , - 2320 , - 5259 , - 3570 , - 4373 , - 3396 , - 2063 , - 1798 , - 4025 , - 4472 , - 4563 , - 26 , - 3677 , - 5548 , - 1367 , - 3950 , - 3329 , - 928 , - 3867 , - 2178 , - 2981 , - 2004 , - 671 , - 406 , - 2633 , - 3080 , - 3171 , - 4330 , - 2285 , - 4156 , - 5671 , - 2558 , - 1937 , - 5232 , - 2475 , - 786 , - 1589 , - 612 , - 4975 , - 4710 , - 1241 , - 1688 , - 1779 , - 2938 , - 893 , - 2764 , - 4279 , - 1166 , - 545 , - 3840 , - 1083 , - 5090 , - 197 , - 4916 , - 3583 , - 3318 , - 5545 , - 296 , - 387 , - 1546 , - 5197 , - 1372 , - 2887 , - 5470 , - 4849 , - 2448 , - 5387 , - 3698 , - 4501 , - 3524 , - 2191 , - 1926 , - 4153 , - 4600 , - 4691 , - 154 , - 3805 , - 5676 , - 1495 , - 4078 , - 3457 , - 1056 , - 3995 , - 2306 , - 3109 , - 2132 , - 799 , - 534 , - 2761 , - 3208 , - 3299 , - 4458 , - 2413 , - 4284 , - 103 , - 2686 , - 2065 , - 5360 , - 2603 , - 914 , - 1717 , - 740 , - 5103 , - 4838 , - 1369 , - 1816 , - 1907 , - 3066 , - 1021 , - 2892 , - 4407 , - 1294 , - 673 , - 3968 , - 1211 , - 5218 , - 325 , - 5044 , - 3711 , - 3446 , - 5673 , - 424 , - 515 , - 1674 , - 5325 , - 1500 , - 3015 , - 5598 , - 4977 , - 2576 , - 5515 , - 3826 , - 4629 , - 3652 , - 2319 , - 2054 , - 4281 , - 4728 , - 4819 , - 282 , - 3933 , - 108 , - 1623 , - 4206 , - 3585 , - 1184 , - 4123 , - 2434 , - 3237 , - 2260 , - 927 , - 662 , - 2889 , - 3336 , - 3427 , - 4586 , - 2541 , - 4412 , - 231 , - 2814 , - 2193 , - 5488 , - 2731 , - 1042 , - 1845 , - 868 , - 5231 , - 4966 , - 1497 , - 1944 , - 2035 , - 3194 , - 1149 , - 3020 , - 4535 , - 1422 , - 801 , - 4096 , - 1339 , - 5346 , - 453 , - 5172 , - 3839 , - 3574 , - 105 , - 552 , - 643 , - 1802 , - 5453 , - 1628 , - 3143 , - 30 , - 5105 , - 2704 , - 5643 , - 3954 , - 4757 , - 3780 , - 2447 , - 2182 , - 4409 , - 4856 , - 4947 , - 410 , - 4061 , - 236 , - 1751 , - 4334 , - 3713 , - 1312 , - 4251 , - 2562 , - 3365 , - 2388 , - 1055 , - 790 , - 3017 , - 3464 , - 3555 , - 4714 , - 2669 , - 4540 , - 359 , - 2942 , - 2321 , - 5616 , - 2859 , - 1170 , - 1973 , - 996 , - 5359 , - 5094 , - 1625 , - 2072 , - 2163 , - 3322 , - 1277 , - 3148 , - 4663 , - 1550 , - 929 , - 4224 , - 1467 , - 5474 , - 581 , - 5300 , - 3967 , - 3702 , - 233 , - 680 , - 771 , - 1930 , - 5581 , - 1756 , - 3271 , - 158 , - 5233 , - 2832 , - 75 , - 4082 , - 4885 , - 3908 , - 2575 , - 2310 , - 4537 , - 4984 , - 5075 , - 538 , - 4189 , - 364 , - 1879 , - 4462 , - 3841 , - 1440 , - 4379 , - 2690 , - 3493 , - 2516 , - 1183 , - 918 , - 3145 , - 3592 , - 3683 , - 4842 , - 2797 , - 4668 , - 487 , - 3070 , - 2449 , - 48 , - 2987 , - 1298 , - 2101 , - 1124 , - 5487 , - 5222 , - 1753 , - 2200 , - 2291 , - 3450 , - 1405 , - 3276 , - 4791 , - 1678 , - 1057 , - 4352 , - 1595 , - 5602 , - 709 , - 5428 , - 4095 , - 3830 , - 361 , - 808 , - 899 , - 2058 , - 13 , - 1884 , - 3399 , - 286 , - 5361 , - 2960 , - 203 , - 4210 , - 5013 , - 4036 , - 2703 , - 2438 , - 4665 , - 5112 , - 5203 , - 666 , - 4317 , - 492 , - 2007 , - 4590 , - 3969 , - 1568 , - 4507 , - 2818 , - 3621 , - 2644 , - 1311 , - 1046 , - 3273 , - 3720 , - 3811 , - 4970 , - 2925 , - 4796 , - 615 , - 3198 , - 2577 , - 176 , - 3115 , - 1426 , - 2229 , - 1252 , - 5615 , - 5350 , - 1881 , - 2328 , - 2419 , - 3578 , - 1533 , - 3404 , - 4919 , - 1806 , - 1185 , - 4480 , - 1723 , - 34 , - 837 , - 5556 , - 4223 , - 3958 , - 489 , - 936 , - 1027 , - 2186 , - 141 , - 2012 , - 3527 , - 414 , - 5489 , - 3088 , - 331 , - 4338 , - 5141 , - 4164 , - 2831 , - 2566 , - 4793 , - 5240 , - 5331 , - 794 , - 4445 , - 620 , - 2135 , - 4718 , - 4097 , - 1696 , - 4635 , - 2946 , - 3749 , - 2772 , - 1439 , - 1174 , - 3401 , - 3848 , - 3939 , - 5098 , - 3053 , - 4924 , - 743 , - 3326 , - 2705 , - 304 , - 3243 , - 1554 , - 2357 , - 1380 , - 47 , - 5478 , - 2009 , - 2456 , - 2547 , - 3706 , - 1661 , - 3532 , - 5047 , - 1934 , - 1313 , - 4608 , - 1851 , - 162 , - 965 , - 5684 , - 4351 , - 4086 , - 617 , - 1064 , - 1155 , - 2314 , - 269 , - 2140 , - 3655 , - 542 , - 5617 , - 3216 , - 459 , - 4466 , - 5269 , - 4292 , - 2959 , - 2694 , - 4921 , - 5368 , - 5459 , - 922 , - 4573 , - 748 , - 2263 , - 4846 , - 4225 , - 1824 , - 4763 , - 3074 , - 3877 , - 2900 , - 1567 , - 1302 , - 3529 , - 3976 , - 4067 , - 5226 , - 3181 , - 5052 , - 871 , - 3454 , - 2833 , - 432 , - 3371 , - 1682 , - 2485 , - 1508 , - 175 , - 5606 , - 2137 , - 2584 , - 2675 , - 3834 , - 1789 , - 3660 , - 5175 , - 2062 , - 1441 , - 4736 , - 1979 , - 290 , - 1093 , - 116 , - 4479 , - 4214 , - 745 , - 1192 , - 1283 , - 2442 , - 397 , - 2268 , - 3783 , - 670 , - 49 , - 3344 , - 587 , - 4594 , - 5397 , - 4420 , - 3087 , - 2822 , - 5049 , - 5496 , - 5587 , - 1050 , - 4701 , - 876 , - 2391 , - 4974 , - 4353 , - 1952 , - 4891 , - 3202 , - 4005 , - 3028 , - 1695 , - 1430 , - 3657 , - 4104 , - 4195 , - 5354 , - 3309 , - 5180 , - 999 , - 3582 , - 2961 , - 560 , - 3499 , - 1810 , - 2613 , - 1636 , - 303 , - 38 , - 2265 , - 2712 , - 2803 , - 3962 , - 1917 , - 3788 , - 5303 , - 2190 , - 1569 , - 4864 , - 2107 , - 418 , - 1221 , - 244 , - 4607 , - 4342 , - 873 , - 1320 , - 1411 , - 2570 , - 525 , - 2396 , - 3911 , - 798 , - 177 , - 3472 , - 715 , - 4722 , - 5525 , - 4548 , - 3215 , - 2950 , - 5177 , - 5624 , - 19 , - 1178 , - 4829 , - 1004 , - 2519 , - 5102 , - 4481 , - 2080 , - 5019 , - 3330 , - 4133 , - 3156 , - 1823 , - 1558 , - 3785 , - 4232 , - 4323 , - 5482 , - 3437 , - 5308 , - 1127 , - 3710 , - 3089 , - 688 , - 3627 , - 1938 , - 2741 , - 1764 , - 431 , - 166 , - 2393 , - 2840 , - 2931 , - 4090 , - 2045 , - 3916 , - 5431 , - 2318 , - 1697 , - 4992 , - 2235 , - 546 , - 1349 , - 372 , - 4735 , - 4470 , - 1001 , - 1448 , - 1539 , - 2698 , - 653 , - 2524 , - 4039 , - 926 , - 305 , - 3600 , - 843 , - 4850 , - 5653 , - 4676 , - 3343 , - 3078 , - 5305 , - 56 , - 147 , - 1306 , - 4957 , - 1132 , - 2647 , - 5230 , - 4609 , - 2208 , - 5147 , - 3458 , - 4261 , - 3284 , - 1951 , - 1686 , - 3913 , - 4360 , - 4451 , - 5610 , - 3565 , - 5436 , - 1255 , - 3838 , - 3217 , - 816 , - 3755 , - 2066 , - 2869 , - 1892 , - 559 , - 294 , - 2521 , - 2968 , - 3059 , - 4218 , - 2173 , - 4044 , - 5559 , - 2446 , - 1825 , - 5120 , - 2363 , - 674 , - 1477 , - 500 , - 4863 , - 4598 , - 1129 , - 1576 , - 1667 , - 2826 , - 781 , - 2652 , - 4167 , - 1054 , - 433 , - 3728 , - 971 , - 4978 , - 85 , - 4804 , - 3471 , - 3206 , - 5433 , - 184 , - 275 , - 1434 , - 5085 , - 1260 , - 2775 , - 5358 , - 4737 , - 2336 , - 5275 , - 3586 , - 4389 , - 3412 , - 2079 , - 1814 , - 4041 , - 4488 , - 4579 , - 42 , - 3693 , - 5564 , - 1383 , - 3966 , - 3345 , - 944 , - 3883 , - 2194 , - 2997 , - 2020 , - 687 , - 422 , - 2649 , - 3096 , - 3187 , - 4346 , - 2301 , - 4172 , - 5687 , - 2574 , - 1953 , - 5248 , - 2491 , - 802 , - 1605 , - 628 , - 4991 , - 4726 , - 1257 , - 1704 , - 1795 , - 2954 , - 909 , - 2780 , - 4295 , - 1182 , - 561 , - 3856 , - 1099 , - 5106 , - 213 , - 4932 , - 3599 , - 3334 , - 5561 , - 312 , - 403 , - 1562 , - 5213 , - 1388 , - 2903 , - 5486 , - 4865 , - 2464 , - 5403 , - 3714 , - 4517 , - 3540 , - 2207 , - 1942 , - 4169 , - 4616 , - 4707 , - 170 , - 3821 , - 5692 , - 1511 , - 4094 , - 3473 , - 1072 , - 4011 , - 2322 , - 3125 , - 2148 , - 815 , - 550 , - 2777 , - 3224 , - 3315 , - 4474 , - 2429 , - 4300 , - 119 , - 2702 , - 2081 , - 5376 , - 2619 , - 930 , - 1733 , - 756 , - 5119 , - 4854 , - 1385 , - 1832 , - 1923 , - 3082 , - 1037 , - 2908 , - 4423 , - 1310 , - 689 , - 3984 , - 1227 , - 5234 , - 341 , - 5060 , - 3727 , - 3462 , - 5689 , - 440 , - 531 , - 1690 , - 5341 , - 1516 , - 3031 , - 5614 , - 4993 , - 2592 , - 5531 , - 3842 , - 4645 , - 3668 , - 2335 , - 2070 , - 4297 , - 4744 , - 4835 , - 298 , - 3949 , - 124 , - 1639 , - 4222 , - 3601 , - 1200 , - 4139 , - 2450 , - 3253 , - 2276 , - 943 , - 678 , - 2905 , - 3352 , - 3443 , - 4602 , - 2557 , - 4428 , - 247 , - 2830 , - 2209 , - 5504 , - 2747 , - 1058 , - 1861 , - 884 , - 5247 , - 4982 , - 1513 , - 1960 , - 2051 , - 3210 , - 1165 , - 3036 , - 4551 , - 1438 , - 817 , - 4112 , - 1355 , - 5362 , - 469 , - 5188 , - 3855 , - 3590 , - 121 , - 568 , - 659 , - 1818 , - 5469 , - 1644 , - 3159 , - 46 , - 5121 , - 2720 , - 5659 , - 3970 , - 4773 , - 3796 , - 2463 , - 2198 , - 4425 , - 4872 , - 4963 , - 426 , - 4077 , - 252 , - 1767 , - 4350 , - 3729 , - 1328 , - 4267 , - 2578 , - 3381 , - 2404 , - 1071 , - 806 , - 3033 , - 3480 , - 3571 , - 4730 , - 2685 , - 4556 , - 375 , - 2958 , - 2337 , - 5632 , - 2875 , - 1186 , - 1989 , - 1012 , - 5375 , - 5110 , - 1641 , - 2088 , - 2179 , - 3338 , - 1293 , - 3164 , - 4679 , - 1566 , - 945 , - 4240 , - 1483 , - 5490 , - 597 , - 5316 , - 3983 , - 3718 , - 249 , - 696 , - 787 , - 1946 , - 5597 , - 1772 , - 3287 , - 174 , - 5249 , - 2848 , - 91 , - 4098 , - 4901 , - 3924 , - 2591 , - 2326 , - 4553 , - 5000 , - 5091 , - 554 , - 4205 , - 380 , - 1895 , - 4478 , - 3857 , - 1456 , - 4395 , - 2706 , - 3509 , - 2532 , - 1199 , - 934 , - 3161 , - 3608 , - 3699 , - 4858 , - 2813 , - 4684 , - 503 , - 3086 , - 2465 , - 64 , - 3003 , - 1314 , - 2117 , - 1140 , - 5503 , - 5238 , - 1769 , - 2216 , - 2307 , - 3466 , - 1421 , - 3292 , - 4807 , - 1694 , - 1073 , - 4368 , - 1611 , - 5618 , - 725 , - 5444 , - 4111 , - 3846 , - 377 , - 824 , - 915 , - 2074 , - 29 , - 1900 , - 3415 , - 302 , - 5377 , - 2976 , - 219 , - 4226 , - 5029 , - 4052 , - 2719 , - 2454 , - 4681 , - 5128 , - 5219 , - 682 , - 4333 , - 508 , - 2023 , - 4606 , - 3985 , - 1584 , - 4523 , - 2834 , - 3637 , - 2660 , - 1327 , - 1062 , - 3289 , - 3736 , - 3827 , - 4986 , - 2941 , - 4812 , - 631 , - 3214 , - 2593 , - 192 , - 3131 , - 1442 , - 2245 , - 1268 , - 5631 , - 5366 , - 1897 , - 2344 , - 2435 , - 3594 , - 1549 , - 3420 , - 4935 , - 1822 , - 1201 , - 4496 , - 1739 , - 50 , - 853 , - 5572 , - 4239 , - 3974 , - 505 , - 952 , - 1043 , - 2202 , - 157 , - 2028 , - 3543 , - 430 , - 5505 , - 3104 , - 347 , - 4354 , - 5157 , - 4180 , - 2847 , - 2582 , - 4809 , - 5256 , - 5347 , - 810 , - 4461 , - 636 , - 2151 , - 4734 , - 4113 , - 1712 , - 4651 , - 2962 , - 3765 , - 2788 , - 1455 , - 1190 , - 3417 , - 3864 , - 3955 , - 5114 , - 3069 , - 4940 , - 759 , - 3342 , - 2721 , - 320 , - 3259 , - 1570 , - 2373 , - 1396 , - 63 , - 5494 , - 2025 , - 2472 , - 2563 , - 3722 , - 1677 , - 3548 , - 5063 , - 1950 , - 1329 , - 4624 , - 1867 , - 178 , - 981 , - 4 , - 4367 , - 4102 , - 633 , - 1080 , - 1171 , - 2330 , - 285 , - 2156 , - 3671 , - 558 , - 5633 , - 3232 , - 475 , - 4482 , - 5285 , - 4308 , - 2975 , - 2710 , - 4937 , - 5384 , - 5475 , - 938 , - 4589 , - 764 , - 2279 , - 4862 , - 4241 , - 1840 , - 4779 , - 3090 , - 3893 , - 2916 , - 1583 , - 1318 , - 3545 , - 3992 , - 4083 , - 5242 , - 3197 , - 5068 , - 887 , - 3470 , - 2849 , - 448 , - 3387 , - 1698 , - 2501 , - 1524 , - 191 , - 5622 , - 2153 , - 2600 , - 2691 , - 3850 , - 1805 , - 3676 , - 5191 , - 2078 , - 1457 , - 4752 , - 1995 , - 306 , - 1109 , - 132 , - 4495 , - 4230 , - 761 , - 1208 , - 1299 , - 2458 , - 413 , - 2284 , - 3799 , - 686 , - 65 , - 3360 , - 603 , - 4610 , - 5413 , - 4436 , - 3103 , - 2838 , - 5065 , - 5512 , - 5603 , - 1066 , - 4717 , - 892 , - 2407 , - 4990 , - 4369 , - 1968 , - 4907 , - 3218 , - 4021 , - 3044 , - 1711 , - 1446 , - 3673 , - 4120 , - 4211 , - 5370 , - 3325 , - 5196 , - 1015 , - 3598 , - 2977 , - 576 , - 3515 , - 1826 , - 2629 , - 1652 , - 319 , - 54 , - 2281 , - 2728 , - 2819 , - 3978 , - 1933 , - 3804 , - 5319 , - 2206 , - 1585 , - 4880 , - 2123 , - 434 , - 1237 , - 260 , - 4623 , - 4358 , - 889 , - 1336 , - 1427 , - 2586 , - 541 , - 2412 , - 3927 , - 814 , - 193 , - 3488 , - 731 , - 4738 , - 5541 , - 4564 , - 3231 , - 2966 , - 5193 , - 5640 , - 35 , - 1194 , - 4845 , - 1020 , - 2535 , - 5118 , - 4497 , - 2096 , - 5035 , - 3346 , - 4149 , - 3172 , - 1839 , - 1574 , - 3801 , - 4248 , - 4339 , - 5498 , - 3453 , - 5324 , - 1143 , - 3726 , - 3105 , - 704 , - 3643 , - 1954 , - 2757 , - 1780 , - 447 , - 182 , - 2409 , - 2856 , - 2947 , - 4106 , - 2061 , - 3932 , - 5447 , - 2334 , - 1713 , - 5008 , - 2251 , - 562 , - 1365 , - 388 , - 4751 , - 4486 , - 1017 , - 1464 , - 1555 , - 2714 , - 669 , - 2540 , - 4055 , - 942 , - 321 , - 3616 , - 859 , - 4866 , - 5669 , - 4692 , - 3359 , - 3094 , - 5321 , - 72 , - 163 , - 1322 , - 4973 , - 1148 , - 2663 , - 5246 , - 4625 , - 2224 , - 5163 , - 3474 , - 4277 , - 3300 , - 1967 , - 1702 , - 3929 , - 4376 , - 4467 , - 5626 , - 3581 , - 5452 , - 1271 , - 3854 , - 3233 , - 832 , - 3771 , - 2082 , - 2885 , - 1908 , - 575 , - 310 , - 2537 , - 2984 , - 3075 , - 4234 , - 2189 , - 4060 , - 5575 , - 2462 , - 1841 , - 5136 , - 2379 , - 690 , - 1493 , - 516 , - 4879 , - 4614 , - 1145 , - 1592 , - 1683 , - 2842 , - 797 , - 2668 , - 4183 , - 1070 , - 449 , - 3744 , - 987 , - 4994 , - 101 , - 4820 , - 3487 , - 3222 , - 5449 , - 200 , - 291 , - 1450 , - 5101 , - 1276 , - 2791 , - 5374 , - 4753 , - 2352 , - 5291 , - 3602 , - 4405 , - 3428 , - 2095 , - 1830 , - 4057 , - 4504 , - 4595 , - 58 , - 3709 , - 5580 , - 1399 , - 3982 , - 3361 , - 960 , - 3899 , - 2210 , - 3013 , - 2036 , - 703 , - 438 , - 2665 , - 3112 , - 3203 , - 4362 , - 2317 , - 4188 , - 7 , - 2590 , - 1969 , - 5264 , - 2507 , - 818 , - 1621 , - 644 , - 5007 , - 4742 , - 1273 , - 1720 , - 1811 , - 2970 , - 925 , - 2796 , - 4311 , - 1198 , - 577 , - 3872 , - 1115 , - 5122 , - 229 , - 4948 , - 3615 , - 3350 , - 5577 , - 328 , - 419 , - 1578 , - 5229 , - 1404 , - 2919 , - 5502 , - 4881 , - 2480 , - 5419 , - 3730 , - 4533 , - 3556 , - 2223 , - 1958 , - 4185 , - 4632 , - 4723 , - 186 , - 3837 , - 12 , - 1527 , - 4110 , - 3489 , - 1088 , - 4027 , - 2338 , - 3141 , - 2164 , - 831 , - 566 , - 2793 , - 3240 , - 3331 , - 4490 , - 2445 , - 4316 , - 135 , - 2718 , - 2097 , - 5392 , - 2635 , - 946 , - 1749 , - 772 , - 5135 , - 4870 , - 1401 , - 1848 , - 1939 , - 3098 , - 1053 , - 2924 , - 4439 , - 1326 , - 705 , - 4000 , - 1243 , - 5250 , - 357 , - 5076 , - 3743 , - 3478 , - 9 , - 456 , - 547 , - 1706 , - 5357 , - 1532 , - 3047 , - 5630 , - 5009 , - 2608 , - 5547 , - 3858 , - 4661 , - 3684 , - 2351 , - 2086 , - 4313 , - 4760 , - 4851 , - 314 , - 3965 , - 140 , - 1655 , - 4238 , - 3617 , - 1216 , - 4155 , - 2466 , - 3269 , - 2292 , - 959 , - 694 , - 2921 , - 3368 , - 3459 , - 4618 , - 2573 , - 4444 , - 263 , - 2846 , - 2225 , - 5520 , - 2763 , - 1074 , - 1877 , - 900 , - 5263 , - 4998 , - 1529 , - 1976 , - 2067 , - 3226 , - 1181 , - 3052 , - 4567 , - 1454 , - 833 , - 4128 , - 1371 , - 5378 , - 485 , - 5204 , - 3871 , - 3606 , - 137 , - 584 , - 675 , - 1834 , - 5485 , - 1660 , - 3175 , - 62 , - 5137 , - 2736 , - 5675 , - 3986 , - 4789 , - 3812 , - 2479 , - 2214 , - 4441 , - 4888 , - 4979 , - 442 , - 4093 , - 268 , - 1783 , - 4366 , - 3745 , - 1344 , - 4283 , - 2594 , - 3397 , - 2420 , - 1087 , - 822 , - 3049 , - 3496 , - 3587 , - 4746 , - 2701 , - 4572 , - 391 , - 2974 , - 2353 , - 5648 , - 2891 , - 1202 , - 2005 , - 1028 , - 5391 , - 5126 , - 1657 , - 2104 , - 2195 , - 3354 , - 1309 , - 3180 , - 4695 , - 1582 , - 961 , - 4256 , - 1499 , - 5506 , - 613 , - 5332 , - 3999 , - 3734 , - 265 , - 712 , - 803 , - 1962 , - 5613 , - 1788 , - 3303 , - 190 , - 5265 , - 2864 , - 107 , - 4114 , - 4917 , - 3940 , - 2607 , - 2342 , - 4569 , - 5016 , - 5107 , - 570 , - 4221 , - 396 , - 1911 , - 4494 , - 3873 , - 1472 , - 4411 , - 2722 , - 3525 , - 2548 , - 1215 , - 950 , - 3177 , - 3624 , - 3715 , - 4874 , - 2829 , - 4700 , - 519 , - 3102 , - 2481 , - 80 , - 3019 , - 1330 , - 2133 , - 1156 , - 5519 , - 5254 , - 1785 , - 2232 , - 2323 , - 3482 , - 1437 , - 3308 , - 4823 , - 1710 , - 1089 , - 4384 , - 1627 , - 5634 , - 741 , - 5460 , - 4127 , - 3862 , - 393 , - 840 , - 931 , - 2090 , - 45 , - 1916 , - 3431 , - 318 , - 5393 , - 2992 , - 235 , - 4242 , - 5045 , - 4068 , - 2735 , - 2470 , - 4697 , - 5144 , - 5235 , - 698 , - 4349 , - 524 , - 2039 , - 4622 , - 4001 , - 1600 , - 4539 , - 2850 , - 3653 , - 2676 , - 1343 , - 1078 , - 3305 , - 3752 , - 3843 , - 5002 , - 2957 , - 4828 , - 647 , - 3230 , - 2609 , - 208 , - 3147 , - 1458 , - 2261 , - 1284 , - 5647 , - 5382 , - 1913 , - 2360 , - 2451 , - 3610 , - 1565 , - 3436 , - 4951 , - 1838 , - 1217 , - 4512 , - 1755 , - 66 , - 869 , - 5588 , - 4255 , - 3990 , - 521 , - 968 , - 1059 , - 2218 , - 173 , - 2044 , - 3559 , - 446 , - 5521 , - 3120 , - 363 , - 4370 , - 5173 , - 4196 , - 2863 , - 2598 , - 4825 , - 5272 , - 5363 , - 826 , - 4477 , - 652 , - 2167 , - 4750 , - 4129 , - 1728 , - 4667 , - 2978 , - 3781 , - 2804 , - 1471 , - 1206 , - 3433 , - 3880 , - 3971 , - 5130 , - 3085 , - 4956 , - 775 , - 3358 , - 2737 , - 336 , - 3275 , - 1586 , - 2389 , - 1412 , - 79 , - 5510 , - 2041 , - 2488 , - 2579 , - 3738 , - 1693 , - 3564 , - 5079 , - 1966 , - 1345 , - 4640 , - 1883 , - 194 , - 997 , - 20 , - 4383 , - 4118 , - 649 , - 1096 , - 1187 , - 2346 , - 301 , - 2172 , - 3687 , - 574 , - 5649 , - 3248 , - 491 , - 4498 , - 5301 , - 4324 , - 2991 , - 2726 , - 4953 , - 5400 , - 5491 , - 954 , - 4605 , - 780 , - 2295 , - 4878 , - 4257 , - 1856 , - 4795 , - 3106 , - 3909 , - 2932 , - 1599 , - 1334 , - 3561 , - 4008 , - 4099 , - 5258 , - 3213 , - 5084 , - 903 , - 3486 , - 2865 , - 464 , - 3403 , - 1714 , - 2517 , - 1540 , - 207 , - 5638 , - 2169 , - 2616 , - 2707 , - 3866 , - 1821 , - 3692 , - 5207 , - 2094 , - 1473 , - 4768 , - 2011 , - 322 , - 1125 , - 148 , - 4511 , - 4246 , - 777 , - 1224 , - 1315 , - 2474 , - 429 , - 2300 , - 3815 , - 702 , - 81 , - 3376 , - 619 , - 4626 , - 5429 , - 4452 , - 3119 , - 2854 , - 5081 , - 5528 , - 5619 , - 1082 , - 4733 , - 908 , - 2423 , - 5006 , - 4385 , - 1984 , - 4923 , - 3234 , - 4037 , - 3060 , - 1727 , - 1462 , - 3689 , - 4136 , - 4227 , - 5386 , - 3341 , - 5212 , - 1031 , - 3614 , - 2993 , - 592 , - 3531 , - 1842 , - 2645 , - 1668 , - 335 , - 70 , - 2297 , - 2744 , - 2835 , - 3994 , - 1949 , - 3820 , - 5335 , - 2222 , - 1601 , - 4896 , - 2139 , - 450 , - 1253 , - 276 , - 4639 , - 4374 , - 905 , - 1352 , - 1443 , - 2602 , - 557 , - 2428 , - 3943 , - 830 , - 209 , - 3504 , - 747 , - 4754 , - 5557 , - 4580 , - 3247 , - 2982 , - 5209 , - 5656 , - 51 , - 1210 , - 4861 , - 1036 , - 2551 , - 5134 , - 4513 , - 2112 , - 5051 , - 3362 , - 4165 , - 3188 , - 1855 , - 1590 , - 3817 , - 4264 , - 4355 , - 5514 , - 3469 , - 5340 , - 1159 , - 3742 , - 3121 , - 720 , - 3659 , - 1970 , - 2773 , - 1796 , - 463 , - 198 , - 2425 , - 2872 , - 2963 , - 4122 , - 2077 , - 3948 , - 5463 , - 2350 , - 1729 , - 5024 , - 2267 , - 578 , - 1381 , - 404 , - 4767 , - 4502 , - 1033 , - 1480 , - 1571 , - 2730 , - 685 , - 2556 , - 4071 , - 958 , - 337 , - 3632 , - 875 , - 4882 , - 5685 , - 4708 , - 3375 , - 3110 , - 5337 , - 88 , - 179 , - 1338 , - 4989 , - 1164 , - 2679 , - 5262 , - 4641 , - 2240 , - 5179 , - 3490 , - 4293 , - 3316 , - 1983 , - 1718 , - 3945 , - 4392 , - 4483 , - 5642 , - 3597 , - 5468 , - 1287 , - 3870 , - 3249 , - 848 , - 3787 , - 2098 , - 2901 , - 1924 , - 591 , - 326 , - 2553 , - 3000 , - 3091 , - 4250 , - 2205 , - 4076 , - 5591 , - 2478 , - 1857 , - 5152 , - 2395 , - 706 , - 1509 , - 532 , - 4895 , - 4630 , - 1161 , - 1608 , - 1699 , - 2858 , - 813 , - 2684 , - 4199 , - 1086 , - 465 , - 3760 , - 1003 , - 5010 , - 117 , - 4836 , - 3503 , - 3238 , - 5465 , - 216 , - 307 , - 1466 , - 5117 , - 1292 , - 2807 , - 5390 , - 4769 , - 2368 , - 5307 , - 3618 , - 4421 , - 3444 , - 2111 , - 1846 , - 4073 , - 4520 , - 4611 , - 74 , - 3725 , - 5596 , - 1415 , - 3998 , - 3377 , - 976 , - 3915 , - 2226 , - 3029 , - 2052 , - 719 , - 454 , - 2681 , - 3128 , - 3219 , - 4378 , - 2333 , - 4204 , - 23 , - 2606 , - 1985 , - 5280 , - 2523 , - 834 , - 1637 , - 660 , - 5023 , - 4758 , - 1289 , - 1736 , - 1827 , - 2986 , - 941 , - 2812 , - 4327 , - 1214 , - 593 , - 3888 , - 1131 , - 5138 , - 245 , - 4964 , - 3631 , - 3366 , - 5593 , - 344 , - 435 , - 1594 , - 5245 , - 1420 , - 2935 , - 5518 , - 4897 , - 2496 , - 5435 , - 3746 , - 4549 , - 3572 , - 2239 , - 1974 , - 4201 , - 4648 , - 4739 , - 202 , - 3853 , - 28 , - 1543 , - 4126 , - 3505 , - 1104 , - 4043 , - 2354 , - 3157 , - 2180 , - 847 , - 582 , - 2809 , - 3256 , - 3347 , - 4506 , - 2461 , - 4332 , - 151 , - 2734 , - 2113 , - 5408 , - 2651 , - 962 , - 1765 , - 788 , - 5151 , - 4886 , - 1417 , - 1864 , - 1955 , - 3114 , - 1069 , - 2940 , - 4455 , - 1342 , - 721 , - 4016 , - 1259 , - 5266 , - 373 , - 5092 , - 3759 , - 3494 , - 25 , - 472 , - 563 , - 1722 , - 5373 , - 1548 , - 3063 , - 5646 , - 5025 , - 2624 , - 5563 , - 3874 , - 4677 , - 3700 , - 2367 , - 2102 , - 4329 , - 4776 , - 4867 , - 330 , - 3981 , - 156 , - 1671 , - 4254 , - 3633 , - 1232 , - 4171 , - 2482 , - 3285 , - 2308 , - 975 , - 710 , - 2937 , - 3384 , - 3475 , - 4634 , - 2589 , - 4460 , - 279 , - 2862 , - 2241 , - 5536 , - 2779 , - 1090 , - 1893 , - 916 , - 5279 , - 5014 , - 1545 , - 1992 , - 2083 , - 3242 , - 1197 , - 3068 , - 4583 , - 1470 , - 849 , - 4144 , - 1387 , - 5394 , - 501 , - 5220 , - 3887 , - 3622 , - 153 , - 600 , - 691 , - 1850 , - 5501 , - 1676 , - 3191 , - 78 , - 5153 , - 2752 , - 5691 , - 4002 , - 4805 , - 3828 , - 2495 , - 2230 , - 4457 , - 4904 , - 4995 , - 458 , - 4109 , - 284 , - 1799 , - 4382 , - 3761 , - 1360 , - 4299 , - 2610 , - 3413 , - 2436 , - 1103 , - 838 , - 3065 , - 3512 , - 3603 , - 4762 , - 2717 , - 4588 , - 407 , - 2990 , - 2369 , - 5664 , - 2907 , - 1218 , - 2021 , - 1044 , - 5407 , - 5142 , - 1673 , - 2120 , - 2211 , - 3370 , - 1325 , - 3196 , - 4711 , - 1598 , - 977 , - 4272 , - 1515 , - 5522 , - 629 , - 5348 , - 4015 , - 3750 , - 281 , - 728 , - 819 , - 1978 , - 5629 , - 1804 , - 3319 , - 206 , - 5281 , - 2880 , - 123 , - 4130 , - 4933 , - 3956 , - 2623 , - 2358 , - 4585 , - 5032 , - 5123 , - 586 , - 4237 , - 412 , - 1927 , - 4510 , - 3889 , - 1488 , - 4427 , - 2738 , - 3541 , - 2564 , - 1231 , - 966 , - 3193 , - 3640 , - 3731 , - 4890 , - 2845 , - 4716 , - 535 , - 3118 , - 2497 , - 96 , - 3035 , - 1346 , - 2149 , - 1172 , - 5535 , - 5270 , - 1801 , - 2248 , - 2339 , - 3498 , - 1453 , - 3324 , - 4839 , - 1726 , - 1105 , - 4400 , - 1643 , - 5650 , - 757 , - 5476 , - 4143 , - 3878 , - 409 , - 856 , - 947 , - 2106 , - 61 , - 1932 , - 3447 , - 334 , - 5409 , - 3008 , - 251 , - 4258 , - 5061 , - 4084 , - 2751 , - 2486 , - 4713 , - 5160 , - 5251 , - 714 , - 4365 , - 540 , - 2055 , - 4638 , - 4017 , - 1616 , - 4555 , - 2866 , - 3669 , - 2692 , - 1359 , - 1094 , - 3321 , - 3768 , - 3859 , - 5018 , - 2973 , - 4844 , - 663 , - 3246 , - 2625 , - 224 , - 3163 , - 1474 , - 2277 , - 1300 , - 5663 , - 5398 , - 1929 , - 2376 , - 2467 , - 3626 , - 1581 , - 3452 , - 4967 , - 1854 , - 1233 , - 4528 , - 1771 , - 82 , - 885 , - 5604 , - 4271 , - 4006 , - 537 , - 984 , - 1075 , - 2234 , - 189 , - 2060 , - 3575 , - 462 , - 5537 , - 3136 , - 379 , - 4386 , - 5189 , - 4212 , - 2879 , - 2614 , - 4841 , - 5288 , - 5379 , - 842 , - 4493 , - 668 , - 2183 , - 4766 , - 4145 , - 1744 , - 4683 , - 2994 , - 3797 , - 2820 , - 1487 , - 1222 , - 3449 , - 3896 , - 3987 , - 5146 , - 3101 , - 4972 , - 791 , - 3374 , - 2753 , - 352 , - 3291 , - 1602 , - 2405 , - 1428 , - 95 , - 5526 , - 2057 , - 2504 , - 2595 , - 3754 , - 1709 , - 3580 , - 5095 , - 1982 , - 1361 , - 4656 , - 1899 , - 210 , - 1013 , - 36 , - 4399 , - 4134 , - 665 , - 1112 , - 1203 , - 2362 , - 317 , - 2188 , - 3703 , - 590 , - 5665 , - 3264 , - 507 , - 4514 , - 5317 , - 4340 , - 3007 , - 2742 , - 4969 , - 5416 , - 5507 , - 970 , - 4621 , - 796 , - 2311 , - 4894 , - 4273 , - 1872 , - 4811 , - 3122 , - 3925 , - 2948 , - 1615 , - 1350 , - 3577 , - 4024 , - 4115 , - 5274 , - 3229 , - 5100 , - 919 , - 3502 , - 2881 , - 480 , - 3419 , - 1730 , - 2533 , - 1556 , - 223 , - 5654 , - 2185 , - 2632 , - 2723 , - 3882 , - 1837 , - 3708 , - 5223 , - 2110 , - 1489 , - 4784 , - 2027 , - 338 , - 1141 , - 164 , - 4527 , - 4262 , - 793 , - 1240 , - 1331 , - 2490 , - 445 , - 2316 , - 3831 , - 718 , - 97 , - 3392 , - 635 , - 4642 , - 5445 , - 4468 , - 3135 , - 2870 , - 5097 , - 5544 , - 5635 , - 1098 , - 4749 , - 924 , - 2439 , - 5022 , - 4401 , - 2000 , - 4939 , - 3250 , - 4053 , - 3076 , - 1743 , - 1478 , - 3705 , - 4152 , - 4243 , - 5402 , - 3357 , - 5228 , - 1047 , - 3630 , - 3009 , - 608 , - 3547 , - 1858 , - 2661 , - 1684 , - 351 , - 86 , - 2313 , - 2760 , - 2851 , - 4010 , - 1965 , - 3836 , - 5351 , - 2238 , - 1617 , - 4912 , - 2155 , - 466 , - 1269 , - 292 , - 4655 , - 4390 , - 921 , - 1368 , - 1459 , - 2618 , - 573 , - 2444 , - 3959 , - 846 , - 225 , - 3520 , - 763 , - 4770 , - 5573 , - 4596 , - 3263 , - 2998 , - 5225 , - 5672 , - 67 , - 1226 , - 4877 , - 1052 , - 2567 , - 5150 , - 4529 , - 2128 , - 5067 , - 3378 , - 4181 , - 3204 , - 1871 , - 1606 , - 3833 , - 4280 , - 4371 , - 5530 , - 3485 , - 5356 , - 1175 , - 3758 , - 3137 , - 736 , - 3675 , - 1986 , - 2789 , - 1812 , - 479 , - 214 , - 2441 , - 2888 , - 2979 , - 4138 , - 2093 , - 3964 , - 5479 , - 2366 , - 1745 , - 5040 , - 2283 , - 594 , - 1397 , - 420 , - 4783 , - 4518 , - 1049 , - 1496 , - 1587 , - 2746 , - 701 , - 2572 , - 4087 , - 974 , - 353 , - 3648 , - 891 , - 4898 , - 5 , - 4724 , - 3391 , - 3126 , - 5353 , - 104 , - 195 , - 1354 , - 5005 , - 1180 , - 2695 , - 5278 , - 4657 , - 2256 , - 5195 , - 3506 , - 4309 , - 3332 , - 1999 , - 1734 , - 3961 , - 4408 , - 4499 , - 5658 , - 3613 , - 5484 , - 1303 , - 3886 , - 3265 , - 864 , - 3803 , - 2114 , - 2917 , - 1940 , - 607 , - 342 , - 2569 , - 3016 , - 3107 , - 4266 , - 2221 , - 4092 , - 5607 , - 2494 , - 1873 , - 5168 , - 2411 , - 722 , - 1525 , - 548 , - 4911 , - 4646 , - 1177 , - 1624 , - 1715 , - 2874 , - 829 , - 2700 , - 4215 , - 1102 , - 481 , - 3776 , - 1019 , - 5026 , - 133 , - 4852 , - 3519 , - 3254 , - 5481 , - 232 , - 323 , - 1482 , - 5133 , - 1308 , - 2823 , - 5406 , - 4785 , - 2384 , - 5323 , - 3634 , - 4437 , - 3460 , - 2127 , - 1862 , - 4089 , - 4536 , - 4627 , - 90 , - 3741 , - 5612 , - 1431 , - 4014 , - 3393 , - 992 , - 3931 , - 2242 , - 3045 , - 2068 , - 735 , - 470 , - 2697 , - 3144 , - 3235 , - 4394 , - 2349 , - 4220 , - 39 , - 2622 , - 2001 , - 5296 , - 2539 , - 850 , - 1653 , - 676 , - 5039 , - 4774 , - 1305 , - 1752 , - 1843 , - 3002 , - 957 , - 2828 , - 4343 , - 1230 , - 609 , - 3904 , - 1147 , - 5154 , - 261 , - 4980 , - 3647 , - 3382 , - 5609 , - 360 , - 451 , - 1610 , - 5261 , - 1436 , - 2951 , - 5534 , - 4913 , - 2512 , - 5451 , - 3762 , - 4565 , - 3588 , - 2255 , - 1990 , - 4217 , - 4664 , - 4755 , - 218 , - 3869 , - 44 , - 1559 , - 4142 , - 3521 , - 1120 , - 4059 , - 2370 , - 3173 , - 2196 , - 863 , - 598 , - 2825 , - 3272 , - 3363 , - 4522 , - 2477 , - 4348 , - 167 , - 2750 , - 2129 , - 5424 , - 2667 , - 978 , - 1781 , - 804 , - 5167 , - 4902 , - 1433 , - 1880 , - 1971 , - 3130 , - 1085 , - 2956 , - 4471 , - 1358 , - 737 , - 4032 , - 1275 , - 5282 , - 389 , - 5108 , - 3775 , - 3510 , - 41 , - 488 , - 579 , - 1738 , - 5389 , - 1564 , - 3079 , - 5662 , - 5041 , - 2640 , - 5579 , - 3890 , - 4693 , - 3716 , - 2383 , - 2118 , - 4345 , - 4792 , - 4883 , - 346 , - 3997 , - 172 , - 1687 , - 4270 , - 3649 , - 1248 , - 4187 , - 2498 , - 3301 , - 2324 , - 991 , - 726 , - 2953 , - 3400 , - 3491 , - 4650 , - 2605 , - 4476 , - 295 , - 2878 , - 2257 , - 5552 , - 2795 , - 1106 , - 1909 , - 932 , - 5295 , - 5030 , - 1561 , - 2008 , - 2099 , - 3258 , - 1213 , - 3084 , - 4599 , - 1486 , - 865 , - 4160 , - 1403 , - 5410 , - 517 , - 5236 , - 3903 , - 3638 , - 169 , - 616 , - 707 , - 1866 , - 5517 , - 1692 , - 3207 , - 94 , - 5169 , - 2768 , - 11 , - 4018 , - 4821 , - 3844 , - 2511 , - 2246 , - 4473 , - 4920 , - 5011 , - 474 , - 4125 , - 300 , - 1815 , - 4398 , - 3777 , - 1376 , - 4315 , - 2626 , - 3429 , - 2452 , - 1119 , - 854 , - 3081 , - 3528 , - 3619 , - 4778 , - 2733 , - 4604 , - 423 , - 3006 , - 2385 , - 5680 , - 2923 , - 1234 , - 2037 , - 1060 , - 5423 , - 5158 , - 1689 , - 2136 , - 2227 , - 3386 , - 1341 , - 3212 , - 4727 , - 1614 , - 993 , - 4288 , - 1531 , - 5538 , - 645 , - 5364 , - 4031 , - 3766 , - 297 , - 744 , - 835 , - 1994 , - 5645 , - 1820 , - 3335 , - 222 , - 5297 , - 2896 , - 139 , - 4146 , - 4949 , - 3972 , - 2639 , - 2374 , - 4601 , - 5048 , - 5139 , - 602 , - 4253 , - 428 , - 1943 , - 4526 , - 3905 , - 1504 , - 4443 , - 2754 , - 3557 , - 2580 , - 1247 , - 982 , - 3209 , - 3656 , - 3747 , - 4906 , - 2861 , - 4732 , - 551 , - 3134 , - 2513 , - 112 , - 3051 , - 1362 , - 2165 , - 1188 , - 5551 , - 5286 , - 1817 , - 2264 , - 2355 , - 3514 , - 1469 , - 3340 , - 4855 , - 1742 , - 1121 , - 4416 , - 1659 , - 5666 , - 773 , - 5492 , - 4159 , - 3894 , - 425 , - 872 , - 963 , - 2122 , - 77 , - 1948 , - 3463 , - 350 , - 5425 , - 3024 , - 267 , - 4274 , - 5077 , - 4100 , - 2767 , - 2502 , - 4729 , - 5176 , - 5267 , - 730 , - 4381 , - 556 , - 2071 , - 4654 , - 4033 , - 1632 , - 4571 , - 2882 , - 3685 , - 2708 , - 1375 , - 1110 , - 3337 , - 3784 , - 3875 , - 5034 , - 2989 , - 4860 , - 679 , - 3262 , - 2641 , - 240 , - 3179 , - 1490 , - 2293 , - 1316 , - 5679 , - 5414 , - 1945 , - 2392 , - 2483 , - 3642 , - 1597 , - 3468 , - 4983 , - 1870 , - 1249 , - 4544 , - 1787 , - 98 , - 901 , - 5620 , - 4287 , - 4022 , - 553 , - 1000 , - 1091 , - 2250 , - 205 , - 2076 , - 3591 , - 478 , - 5553 , - 3152 , - 395 , - 4402 , - 5205 , - 4228 , - 2895 , - 2630 , - 4857 , - 5304 , - 5395 , - 858 , - 4509 , - 684 , - 2199 , - 4782 , - 4161 , - 1760 , - 4699 , - 3010 , - 3813 , - 2836 , - 1503 , - 1238 , - 3465 , - 3912 , - 4003 , - 5162 , - 3117 , - 4988 , - 807 , - 3390 , - 2769 , - 368 , - 3307 , - 1618 , - 2421 , - 1444 , - 111 , - 5542 , - 2073 , - 2520 , - 2611 , - 3770 , - 1725 , - 3596 , - 5111 , - 1998 , - 1377 , - 4672 , - 1915 , - 226 , - 1029 , - 52 , - 4415 , - 4150 , - 681 , - 1128 , - 1219 , - 2378 , - 333 , - 2204 , - 3719 , - 606 , - 5681 , - 3280 , - 523 , - 4530 , - 5333 , - 4356 , - 3023 , - 2758 , - 4985 , - 5432 , - 5523 , - 986 , - 4637 , - 812 , - 2327 , - 4910 , - 4289 , - 1888 , - 4827 , - 3138 , - 3941 , - 2964 , - 1631 , - 1366 , - 3593 , - 4040 , - 4131 , - 5290 , - 3245 , - 5116 , - 935 , - 3518 , - 2897 , - 496 , - 3435 , - 1746 , - 2549 , - 1572 , - 239 , - 5670 , - 2201 , - 2648 , - 2739 , - 3898 , - 1853 , - 3724 , - 5239 , - 2126 , - 1505 , - 4800 , - 2043 , - 354 , - 1157 , - 180 , - 4543 , - 4278 , - 809 , - 1256 , - 1347 , - 2506 , - 461 , - 2332 , - 3847 , - 734 , - 113 , - 3408 , - 651 , - 4658 , - 5461 , - 4484 , - 3151 , - 2886 , - 5113 , - 5560 , - 5651 , - 1114 , - 4765 , - 940 , - 2455 , - 5038 , - 4417 , - 2016 , - 4955 , - 3266 , - 4069 , - 3092 , - 1759 , - 1494 , - 3721 , - 4168 , - 4259 , - 5418 , - 3373 , - 5244 , - 1063 , - 3646 , - 3025 , - 624 , - 3563 , - 1874 , - 2677 , - 1700 , - 367 , - 102 , - 2329 , - 2776 , - 2867 , - 4026 , - 1981 , - 3852 , - 5367 , - 2254 , - 1633 , - 4928 , - 2171 , - 482 , - 1285 , - 308 , - 4671 , - 4406 , - 937 , - 1384 , - 1475 , - 2634 , - 589 , - 2460 , - 3975 , - 862 , - 241 , - 3536 , - 779 , - 4786 , - 5589 , - 4612 , - 3279 , - 3014 , - 5241 , - 5688 , - 83 , - 1242 , - 4893 , - 1068 , - 2583 , - 5166 , - 4545 , - 2144 , - 5083 , - 3394 , - 4197 , - 3220 , - 1887 , - 1622 , - 3849 , - 4296 , - 4387 , - 5546 , - 3501 , - 5372 , - 1191 , - 3774 , - 3153 , - 752 , - 3691 , - 2002 , - 2805 , - 1828 , - 495 , - 230 , - 2457 , - 2904 , - 2995 , - 4154 , - 2109 , - 3980 , - 5495 , - 2382 , - 1761 , - 5056 , - 2299 , - 610 , - 1413 , - 436 , - 4799 , - 4534 , - 1065 , - 1512 , - 1603 , - 2762 , - 717 , - 2588 , - 4103 , - 990 , - 369 , - 3664 , - 907 , - 4914 , - 21 , - 4740 , - 3407 , - 3142 , - 5369 , - 120 , - 211 , - 1370 , - 5021 , - 1196 , - 2711 , - 5294 , - 4673 , - 2272 , - 5211 , - 3522 , - 4325 , - 3348 , - 2015 , - 1750 , - 3977 , - 4424 , - 4515 , - 5674 , - 3629 , - 5500 , - 1319 , - 3902 , - 3281 , - 880 , - 3819 , - 2130 , - 2933 , - 1956 , - 623 , - 358 , - 2585 , - 3032 , - 3123 , - 4282 , - 2237 , - 4108 , - 5623 , - 2510 , - 1889 , - 5184 , - 2427 , - 738 , - 1541 , - 564 , - 4927 , - 4662 , - 1193 , - 1640 , - 1731 , - 2890 , - 845 , - 2716 , - 4231 , - 1118 , - 497 , - 3792 , - 1035 , - 5042 , - 149 , - 4868 , - 3535 , - 3270 , - 5497 , - 248 , - 339 , - 1498 , - 5149 , - 1324 , - 2839 , - 5422 , - 4801 , - 2400 , - 5339 , - 3650 , - 4453 , - 3476 , - 2143 , - 1878 , - 4105 , - 4552 , - 4643 , - 106 , - 3757 , - 5628 , - 1447 , - 4030 , - 3409 , - 1008 , - 3947 , - 2258 , - 3061 , - 2084 , - 751 , - 486 , - 2713 , - 3160 , - 3251 , - 4410 , - 2365 , - 4236 , - 55 , - 2638 , - 2017 , - 5312 , - 2555 , - 866 , - 1669 , - 692 , - 5055 , - 4790 , - 1321 , - 1768 , - 1859 , - 3018 , - 973 , - 2844 , - 4359 , - 1246 , - 625 , - 3920 , - 1163 , - 5170 , - 277 , - 4996 , - 3663 , - 3398 , - 5625 , - 376 , - 467 , - 1626 , - 5277 , - 1452 , - 2967 , - 5550 , - 4929 , - 2528 , - 5467 , - 3778 , - 4581 , - 3604 , - 2271 , - 2006 , - 4233 , - 4680 , - 4771 , - 234 , - 3885 , - 60 , - 1575 , - 4158 , - 3537 , - 1136 , - 4075 , - 2386 , - 3189 , - 2212 , - 879 , - 614 , - 2841 , - 3288 , - 3379 , - 4538 , - 2493 , - 4364 , - 183 , - 2766 , - 2145 , - 5440 , - 2683 , - 994 , - 1797 , - 820 , - 5183 , - 4918 , - 1449 , - 1896 , - 1987 , - 3146 , - 1101 , - 2972 , - 4487 , - 1374 , - 753 , - 4048 , - 1291 , - 5298 , - 405 , - 5124 , - 3791 , - 3526 , - 57 , - 504 , - 595 , - 1754 , - 5405 , - 1580 , - 3095 , - 5678 , - 5057 , - 2656 , - 5595 , - 3906 , - 4709 , - 3732 , - 2399 , - 2134 , - 4361 , - 4808 , - 4899 , - 362 , - 4013 , - 188 , - 1703 , - 4286 , - 3665 , - 1264 , - 4203 , - 2514 , - 3317 , - 2340 , - 1007 , - 742 , - 2969 , - 3416 , - 3507 , - 4666 , - 2621 , - 4492 , - 311 , - 2894 , - 2273 , - 5568 , - 2811 , - 1122 , - 1925 , - 948 , - 5311 , - 5046 , - 1577 , - 2024 , - 2115 , - 3274 , - 1229 , - 3100 , - 4615 , - 1502 , - 881 , - 4176 , - 1419 , - 5426 , - 533 , - 5252 , - 3919 , - 3654 , - 185 , - 632 , - 723 , - 1882 , - 5533 , - 1708 , - 3223 , - 110 , - 5185 , - 2784 , - 27 , - 4034 , - 4837 , - 3860 , - 2527 , - 2262 , - 4489 , - 4936 , - 5027 , - 490 , - 4141 , - 316 , - 1831 , - 4414 , - 3793 , - 1392 , - 4331 , - 2642 , - 3445 , - 2468 , - 1135 , - 870 , - 3097 , - 3544 , - 3635 , - 4794 , - 2749 , - 4620 , - 439 , - 3022 , - 2401 , - 0 , - 1001 , - 3682 , - 2283 , - 2564 , - 4525 , - 2406 , - 1967 , - 3208 , - 369 , - 4970 , - 5491 , - 1932 , - 53 , - 5614 , - 1335 , - 4496 , - 3577 , - 4338 , - 1019 , - 5140 , - 5181 , - 1142 , - 4543 , - 3864 , - 4865 , - 1786 , - 387 , - 668 , - 2629 , - 510 , - 71 , - 1312 , - 4233 , - 3074 , - 3595 , - 36 , - 3917 , - 3718 , - 5199 , - 2600 , - 1681 , - 2442 , - 4883 , - 3244 , - 3285 , - 5006 , - 2647 , - 1968 , - 2969 , - 5650 , - 4251 , - 4532 , - 733 , - 4374 , - 3935 , - 5176 , - 2337 , - 1178 , - 1699 , - 3900 , - 2021 , - 1822 , - 3303 , - 704 , - 5545 , - 546 , - 2987 , - 1348 , - 1389 , - 3110 , - 751 , - 72 , - 1073 , - 3754 , - 2355 , - 2636 , - 4597 , - 2478 , - 2039 , - 3280 , - 441 , - 5042 , - 5563 , - 2004 , - 125 , - 5686 , - 1407 , - 4568 , - 3649 , - 4410 , - 1091 , - 5212 , - 5253 , - 1214 , - 4615 , - 3936 , - 4937 , - 1858 , - 459 , - 740 , - 2701 , - 582 , - 143 , - 1384 , - 4305 , - 3146 , - 3667 , - 108 , - 3989 , - 3790 , - 5271 , - 2672 , - 1753 , - 2514 , - 4955 , - 3316 , - 3357 , - 5078 , - 2719 , - 2040 , - 3041 , - 5722 , - 4323 , - 4604 , - 805 , - 4446 , - 4007 , - 5248 , - 2409 , - 1250 , - 1771 , - 3972 , - 2093 , - 1894 , - 3375 , - 776 , - 5617 , - 618 , - 3059 , - 1420 , - 1461 , - 3182 , - 823 , - 144 , - 1145 , - 3826 , - 2427 , - 2708 , - 4669 , - 2550 , - 2111 , - 3352 , - 513 , - 5114 , - 5635 , - 2076 , - 197 , - 5758 , - 1479 , - 4640 , - 3721 , - 4482 , - 1163 , - 5284 , - 5325 , - 1286 , - 4687 , - 4008 , - 5009 , - 1930 , - 531 , - 812 , - 2773 , - 654 , - 215 , - 1456 , - 4377 , - 3218 , - 3739 , - 180 , - 4061 , - 3862 , - 5343 , - 2744 , - 1825 , - 2586 , - 5027 , - 3388 , - 3429 , - 5150 , - 2791 , - 2112 , - 3113 , - 34 , - 4395 , - 4676 , - 877 , - 4518 , - 4079 , - 5320 , - 2481 , - 1322 , - 1843 , - 4044 , - 2165 , - 1966 , - 3447 , - 848 , - 5689 , - 690 , - 3131 , - 1492 , - 1533 , - 3254 , - 895 , - 216 , - 1217 , - 3898 , - 2499 , - 2780 , - 4741 , - 2622 , - 2183 , - 3424 , - 585 , - 5186 , - 5707 , - 2148 , - 269 , - 70 , - 1551 , - 4712 , - 3793 , - 4554 , - 1235 , - 5356 , - 5397 , - 1358 , - 4759 , - 4080 , - 5081 , - 2002 , - 603 , - 884 , - 2845 , - 726 , - 287 , - 1528 , - 4449 , - 3290 , - 3811 , - 252 , - 4133 , - 3934 , - 5415 , - 2816 , - 1897 , - 2658 , - 5099 , - 3460 , - 3501 , - 5222 , - 2863 , - 2184 , - 3185 , - 106 , - 4467 , - 4748 , - 949 , - 4590 , - 4151 , - 5392 , - 2553 , - 1394 , - 1915 , - 4116 , - 2237 , - 2038 , - 3519 , - 920 , - 1 , - 762 , - 3203 , - 1564 , - 1605 , - 3326 , - 967 , - 288 , - 1289 , - 3970 , - 2571 , - 2852 , - 4813 , - 2694 , - 2255 , - 3496 , - 657 , - 5258 , - 19 , - 2220 , - 341 , - 142 , - 1623 , - 4784 , - 3865 , - 4626 , - 1307 , - 5428 , - 5469 , - 1430 , - 4831 , - 4152 , - 5153 , - 2074 , - 675 , - 956 , - 2917 , - 798 , - 359 , - 1600 , - 4521 , - 3362 , - 3883 , - 324 , - 4205 , - 4006 , - 5487 , - 2888 , - 1969 , - 2730 , - 5171 , - 3532 , - 3573 , - 5294 , - 2935 , - 2256 , - 3257 , - 178 , - 4539 , - 4820 , - 1021 , - 4662 , - 4223 , - 5464 , - 2625 , - 1466 , - 1987 , - 4188 , - 2309 , - 2110 , - 3591 , - 992 , - 73 , - 834 , - 3275 , - 1636 , - 1677 , - 3398 , - 1039 , - 360 , - 1361 , - 4042 , - 2643 , - 2924 , - 4885 , - 2766 , - 2327 , - 3568 , - 729 , - 5330 , - 91 , - 2292 , - 413 , - 214 , - 1695 , - 4856 , - 3937 , - 4698 , - 1379 , - 5500 , - 5541 , - 1502 , - 4903 , - 4224 , - 5225 , - 2146 , - 747 , - 1028 , - 2989 , - 870 , - 431 , - 1672 , - 4593 , - 3434 , - 3955 , - 396 , - 4277 , - 4078 , - 5559 , - 2960 , - 2041 , - 2802 , - 5243 , - 3604 , - 3645 , - 5366 , - 3007 , - 2328 , - 3329 , - 250 , - 4611 , - 4892 , - 1093 , - 4734 , - 4295 , - 5536 , - 2697 , - 1538 , - 2059 , - 4260 , - 2381 , - 2182 , - 3663 , - 1064 , - 145 , - 906 , - 3347 , - 1708 , - 1749 , - 3470 , - 1111 , - 432 , - 1433 , - 4114 , - 2715 , - 2996 , - 4957 , - 2838 , - 2399 , - 3640 , - 801 , - 5402 , - 163 , - 2364 , - 485 , - 286 , - 1767 , - 4928 , - 4009 , - 4770 , - 1451 , - 5572 , - 5613 , - 1574 , - 4975 , - 4296 , - 5297 , - 2218 , - 819 , - 1100 , - 3061 , - 942 , - 503 , - 1744 , - 4665 , - 3506 , - 4027 , - 468 , - 4349 , - 4150 , - 5631 , - 3032 , - 2113 , - 2874 , - 5315 , - 3676 , - 3717 , - 5438 , - 3079 , - 2400 , - 3401 , - 322 , - 4683 , - 4964 , - 1165 , - 4806 , - 4367 , - 5608 , - 2769 , - 1610 , - 2131 , - 4332 , - 2453 , - 2254 , - 3735 , - 1136 , - 217 , - 978 , - 3419 , - 1780 , - 1821 , - 3542 , - 1183 , - 504 , - 1505 , - 4186 , - 2787 , - 3068 , - 5029 , - 2910 , - 2471 , - 3712 , - 873 , - 5474 , - 235 , - 2436 , - 557 , - 358 , - 1839 , - 5000 , - 4081 , - 4842 , - 1523 , - 5644 , - 5685 , - 1646 , - 5047 , - 4368 , - 5369 , - 2290 , - 891 , - 1172 , - 3133 , - 1014 , - 575 , - 1816 , - 4737 , - 3578 , - 4099 , - 540 , - 4421 , - 4222 , - 5703 , - 3104 , - 2185 , - 2946 , - 5387 , - 3748 , - 3789 , - 5510 , - 3151 , - 2472 , - 3473 , - 394 , - 4755 , - 5036 , - 1237 , - 4878 , - 4439 , - 5680 , - 2841 , - 1682 , - 2203 , - 4404 , - 2525 , - 2326 , - 3807 , - 1208 , - 289 , - 1050 , - 3491 , - 1852 , - 1893 , - 3614 , - 1255 , - 576 , - 1577 , - 4258 , - 2859 , - 3140 , - 5101 , - 2982 , - 2543 , - 3784 , - 945 , - 5546 , - 307 , - 2508 , - 629 , - 430 , - 1911 , - 5072 , - 4153 , - 4914 , - 1595 , - 5716 , - 5757 , - 1718 , - 5119 , - 4440 , - 5441 , - 2362 , - 963 , - 1244 , - 3205 , - 1086 , - 647 , - 1888 , - 4809 , - 3650 , - 4171 , - 612 , - 4493 , - 4294 , - 15 , - 3176 , - 2257 , - 3018 , - 5459 , - 3820 , - 3861 , - 5582 , - 3223 , - 2544 , - 3545 , - 466 , - 4827 , - 5108 , - 1309 , - 4950 , - 4511 , - 5752 , - 2913 , - 1754 , - 2275 , - 4476 , - 2597 , - 2398 , - 3879 , - 1280 , - 361 , - 1122 , - 3563 , - 1924 , - 1965 , - 3686 , - 1327 , - 648 , - 1649 , - 4330 , - 2931 , - 3212 , - 5173 , - 3054 , - 2615 , - 3856 , - 1017 , - 5618 , - 379 , - 2580 , - 701 , - 502 , - 1983 , - 5144 , - 4225 , - 4986 , - 1667 , - 28 , - 69 , - 1790 , - 5191 , - 4512 , - 5513 , - 2434 , - 1035 , - 1316 , - 3277 , - 1158 , - 719 , - 1960 , - 4881 , - 3722 , - 4243 , - 684 , - 4565 , - 4366 , - 87 , - 3248 , - 2329 , - 3090 , - 5531 , - 3892 , - 3933 , - 5654 , - 3295 , - 2616 , - 3617 , - 538 , - 4899 , - 5180 , - 1381 , - 5022 , - 4583 , - 64 , - 2985 , - 1826 , - 2347 , - 4548 , - 2669 , - 2470 , - 3951 , - 1352 , - 433 , - 1194 , - 3635 , - 1996 , - 2037 , - 3758 , - 1399 , - 720 , - 1721 , - 4402 , - 3003 , - 3284 , - 5245 , - 3126 , - 2687 , - 3928 , - 1089 , - 5690 , - 451 , - 2652 , - 773 , - 574 , - 2055 , - 5216 , - 4297 , - 5058 , - 1739 , - 100 , - 141 , - 1862 , - 5263 , - 4584 , - 5585 , - 2506 , - 1107 , - 1388 , - 3349 , - 1230 , - 791 , - 2032 , - 4953 , - 3794 , - 4315 , - 756 , - 4637 , - 4438 , - 159 , - 3320 , - 2401 , - 3162 , - 5603 , - 3964 , - 4005 , - 5726 , - 3367 , - 2688 , - 3689 , - 610 , - 4971 , - 5252 , - 1453 , - 5094 , - 4655 , - 136 , - 3057 , - 1898 , - 2419 , - 4620 , - 2741 , - 2542 , - 4023 , - 1424 , - 505 , - 1266 , - 3707 , - 2068 , - 2109 , - 3830 , - 1471 , - 792 , - 1793 , - 4474 , - 3075 , - 3356 , - 5317 , - 3198 , - 2759 , - 4000 , - 1161 , - 2 , - 523 , - 2724 , - 845 , - 646 , - 2127 , - 5288 , - 4369 , - 5130 , - 1811 , - 172 , - 213 , - 1934 , - 5335 , - 4656 , - 5657 , - 2578 , - 1179 , - 1460 , - 3421 , - 1302 , - 863 , - 2104 , - 5025 , - 3866 , - 4387 , - 828 , - 4709 , - 4510 , - 231 , - 3392 , - 2473 , - 3234 , - 5675 , - 4036 , - 4077 , - 38 , - 3439 , - 2760 , - 3761 , - 682 , - 5043 , - 5324 , - 1525 , - 5166 , - 4727 , - 208 , - 3129 , - 1970 , - 2491 , - 4692 , - 2813 , - 2614 , - 4095 , - 1496 , - 577 , - 1338 , - 3779 , - 2140 , - 2181 , - 3902 , - 1543 , - 864 , - 1865 , - 4546 , - 3147 , - 3428 , - 5389 , - 3270 , - 2831 , - 4072 , - 1233 , - 74 , - 595 , - 2796 , - 917 , - 718 , - 2199 , - 5360 , - 4441 , - 5202 , - 1883 , - 244 , - 285 , - 2006 , - 5407 , - 4728 , - 5729 , - 2650 , - 1251 , - 1532 , - 3493 , - 1374 , - 935 , - 2176 , - 5097 , - 3938 , - 4459 , - 900 , - 4781 , - 4582 , - 303 , - 3464 , - 2545 , - 3306 , - 5747 , - 4108 , - 4149 , - 110 , - 3511 , - 2832 , - 3833 , - 754 , - 5115 , - 5396 , - 1597 , - 5238 , - 4799 , - 280 , - 3201 , - 2042 , - 2563 , - 4764 , - 2885 , - 2686 , - 4167 , - 1568 , - 649 , - 1410 , - 3851 , - 2212 , - 2253 , - 3974 , - 1615 , - 936 , - 1937 , - 4618 , - 3219 , - 3500 , - 5461 , - 3342 , - 2903 , - 4144 , - 1305 , - 146 , - 667 , - 2868 , - 989 , - 790 , - 2271 , - 5432 , - 4513 , - 5274 , - 1955 , - 316 , - 357 , - 2078 , - 5479 , - 4800 , - 41 , - 2722 , - 1323 , - 1604 , - 3565 , - 1446 , - 1007 , - 2248 , - 5169 , - 4010 , - 4531 , - 972 , - 4853 , - 4654 , - 375 , - 3536 , - 2617 , - 3378 , - 59 , - 4180 , - 4221 , - 182 , - 3583 , - 2904 , - 3905 , - 826 , - 5187 , - 5468 , - 1669 , - 5310 , - 4871 , - 352 , - 3273 , - 2114 , - 2635 , - 4836 , - 2957 , - 2758 , - 4239 , - 1640 , - 721 , - 1482 , - 3923 , - 2284 , - 2325 , - 4046 , - 1687 , - 1008 , - 2009 , - 4690 , - 3291 , - 3572 , - 5533 , - 3414 , - 2975 , - 4216 , - 1377 , - 218 , - 739 , - 2940 , - 1061 , - 862 , - 2343 , - 5504 , - 4585 , - 5346 , - 2027 , - 388 , - 429 , - 2150 , - 5551 , - 4872 , - 113 , - 2794 , - 1395 , - 1676 , - 3637 , - 1518 , - 1079 , - 2320 , - 5241 , - 4082 , - 4603 , - 1044 , - 4925 , - 4726 , - 447 , - 3608 , - 2689 , - 3450 , - 131 , - 4252 , - 4293 , - 254 , - 3655 , - 2976 , - 3977 , - 898 , - 5259 , - 5540 , - 1741 , - 5382 , - 4943 , - 424 , - 3345 , - 2186 , - 2707 , - 4908 , - 3029 , - 2830 , - 4311 , - 1712 , - 793 , - 1554 , - 3995 , - 2356 , - 2397 , - 4118 , - 1759 , - 1080 , - 2081 , - 4762 , - 3363 , - 3644 , - 5605 , - 3486 , - 3047 , - 4288 , - 1449 , - 290 , - 811 , - 3012 , - 1133 , - 934 , - 2415 , - 5576 , - 4657 , - 5418 , - 2099 , - 460 , - 501 , - 2222 , - 5623 , - 4944 , - 185 , - 2866 , - 1467 , - 1748 , - 3709 , - 1590 , - 1151 , - 2392 , - 5313 , - 4154 , - 4675 , - 1116 , - 4997 , - 4798 , - 519 , - 3680 , - 2761 , - 3522 , - 203 , - 4324 , - 4365 , - 326 , - 3727 , - 3048 , - 4049 , - 970 , - 5331 , - 5612 , - 1813 , - 5454 , - 5015 , - 496 , - 3417 , - 2258 , - 2779 , - 4980 , - 3101 , - 2902 , - 4383 , - 1784 , - 865 , - 1626 , - 4067 , - 2428 , - 2469 , - 4190 , - 1831 , - 1152 , - 2153 , - 4834 , - 3435 , - 3716 , - 5677 , - 3558 , - 3119 , - 4360 , - 1521 , - 362 , - 883 , - 3084 , - 1205 , - 1006 , - 2487 , - 5648 , - 4729 , - 5490 , - 2171 , - 532 , - 573 , - 2294 , - 5695 , - 5016 , - 257 , - 2938 , - 1539 , - 1820 , - 3781 , - 1662 , - 1223 , - 2464 , - 5385 , - 4226 , - 4747 , - 1188 , - 5069 , - 4870 , - 591 , - 3752 , - 2833 , - 3594 , - 275 , - 4396 , - 4437 , - 398 , - 3799 , - 3120 , - 4121 , - 1042 , - 5403 , - 5684 , - 1885 , - 5526 , - 5087 , - 568 , - 3489 , - 2330 , - 2851 , - 5052 , - 3173 , - 2974 , - 4455 , - 1856 , - 937 , - 1698 , - 4139 , - 2500 , - 2541 , - 4262 , - 1903 , - 1224 , - 2225 , - 4906 , - 3507 , - 3788 , - 5749 , - 3630 , - 3191 , - 4432 , - 1593 , - 434 , - 955 , - 3156 , - 1277 , - 1078 , - 2559 , - 5720 , - 4801 , - 5562 , - 2243 , - 604 , - 645 , - 2366 , - 7 , - 5088 , - 329 , - 3010 , - 1611 , - 1892 , - 3853 , - 1734 , - 1295 , - 2536 , - 5457 , - 4298 , - 4819 , - 1260 , - 5141 , - 4942 , - 663 , - 3824 , - 2905 , - 3666 , - 347 , - 4468 , - 4509 , - 470 , - 3871 , - 3192 , - 4193 , - 1114 , - 5475 , - 5756 , - 1957 , - 5598 , - 5159 , - 640 , - 3561 , - 2402 , - 2923 , - 5124 , - 3245 , - 3046 , - 4527 , - 1928 , - 1009 , - 1770 , - 4211 , - 2572 , - 2613 , - 4334 , - 1975 , - 1296 , - 2297 , - 4978 , - 3579 , - 3860 , - 61 , - 3702 , - 3263 , - 4504 , - 1665 , - 506 , - 1027 , - 3228 , - 1349 , - 1150 , - 2631 , - 32 , - 4873 , - 5634 , - 2315 , - 676 , - 717 , - 2438 , - 79 , - 5160 , - 401 , - 3082 , - 1683 , - 1964 , - 3925 , - 1806 , - 1367 , - 2608 , - 5529 , - 4370 , - 4891 , - 1332 , - 5213 , - 5014 , - 735 , - 3896 , - 2977 , - 3738 , - 419 , - 4540 , - 4581 , - 542 , - 3943 , - 3264 , - 4265 , - 1186 , - 5547 , - 68 , - 2029 , - 5670 , - 5231 , - 712 , - 3633 , - 2474 , - 2995 , - 5196 , - 3317 , - 3118 , - 4599 , - 2000 , - 1081 , - 1842 , - 4283 , - 2644 , - 2685 , - 4406 , - 2047 , - 1368 , - 2369 , - 5050 , - 3651 , - 3932 , - 133 , - 3774 , - 3335 , - 4576 , - 1737 , - 578 , - 1099 , - 3300 , - 1421 , - 1222 , - 2703 , - 104 , - 4945 , - 5706 , - 2387 , - 748 , - 789 , - 2510 , - 151 , - 5232 , - 473 , - 3154 , - 1755 , - 2036 , - 3997 , - 1878 , - 1439 , - 2680 , - 5601 , - 4442 , - 4963 , - 1404 , - 5285 , - 5086 , - 807 , - 3968 , - 3049 , - 3810 , - 491 , - 4612 , - 4653 , - 614 , - 4015 , - 3336 , - 4337 , - 1258 , - 5619 , - 140 , - 2101 , - 5742 , - 5303 , - 784 , - 3705 , - 2546 , - 3067 , - 5268 , - 3389 , - 3190 , - 4671 , - 2072 , - 1153 , - 1914 , - 4355 , - 2716 , - 2757 , - 4478 , - 2119 , - 1440 , - 2441 , - 5122 , - 3723 , - 4004 , - 205 , - 3846 , - 3407 , - 4648 , - 1809 , - 650 , - 1171 , - 3372 , - 1493 , - 1294 , - 2775 , - 176 , - 5017 , - 18 , - 2459 , - 820 , - 861 , - 2582 , - 223 , - 5304 , - 545 , - 3226 , - 1827 , - 2108 , - 4069 , - 1950 , - 1511 , - 2752 , - 5673 , - 4514 , - 5035 , - 1476 , - 5357 , - 5158 , - 879 , - 4040 , - 3121 , - 3882 , - 563 , - 4684 , - 4725 , - 686 , - 4087 , - 3408 , - 4409 , - 1330 , - 5691 , - 212 , - 2173 , - 54 , - 5375 , - 856 , - 3777 , - 2618 , - 3139 , - 5340 , - 3461 , - 3262 , - 4743 , - 2144 , - 1225 , - 1986 , - 4427 , - 2788 , - 2829 , - 4550 , - 2191 , - 1512 , - 2513 , - 5194 , - 3795 , - 4076 , - 277 , - 3918 , - 3479 , - 4720 , - 1881 , - 722 , - 1243 , - 3444 , - 1565 , - 1366 , - 2847 , - 248 , - 5089 , - 90 , - 2531 , - 892 , - 933 , - 2654 , - 295 , - 5376 , - 617 , - 3298 , - 1899 , - 2180 , - 4141 , - 2022 , - 1583 , - 2824 , - 5745 , - 4586 , - 5107 , - 1548 , - 5429 , - 5230 , - 951 , - 4112 , - 3193 , - 3954 , - 635 , - 4756 , - 4797 , - 758 , - 4159 , - 3480 , - 4481 , - 1402 , - 3 , - 284 , - 2245 , - 126 , - 5447 , - 928 , - 3849 , - 2690 , - 3211 , - 5412 , - 3533 , - 3334 , - 4815 , - 2216 , - 1297 , - 2058 , - 4499 , - 2860 , - 2901 , - 4622 , - 2263 , - 1584 , - 2585 , - 5266 , - 3867 , - 4148 , - 349 , - 3990 , - 3551 , - 4792 , - 1953 , - 794 , - 1315 , - 3516 , - 1637 , - 1438 , - 2919 , - 320 , - 5161 , - 162 , - 2603 , - 964 , - 1005 , - 2726 , - 367 , - 5448 , - 689 , - 3370 , - 1971 , - 2252 , - 4213 , - 2094 , - 1655 , - 2896 , - 57 , - 4658 , - 5179 , - 1620 , - 5501 , - 5302 , - 1023 , - 4184 , - 3265 , - 4026 , - 707 , - 4828 , - 4869 , - 830 , - 4231 , - 3552 , - 4553 , - 1474 , - 75 , - 356 , - 2317 , - 198 , - 5519 , - 1000 , - 3921 , - 2762 , - 3283 , - 5484 , - 3605 , - 3406 , - 4887 , - 2288 , - 1369 , - 2130 , - 4571 , - 2932 , - 2973 , - 4694 , - 2335 , - 1656 , - 2657 , - 5338 , - 3939 , - 4220 , - 421 , - 4062 , - 3623 , - 4864 , - 2025 , - 866 , - 1387 , - 3588 , - 1709 , - 1510 , - 2991 , - 392 , - 5233 , - 234 , - 2675 , - 1036 , - 1077 , - 2798 , - 439 , - 5520 , - 761 , - 3442 , - 2043 , - 2324 , - 4285 , - 2166 , - 1727 , - 2968 , - 129 , - 4730 , - 5251 , - 1692 , - 5573 , - 5374 , - 1095 , - 4256 , - 3337 , - 4098 , - 779 , - 4900 , - 4941 , - 902 , - 4303 , - 3624 , - 4625 , - 1546 , - 147 , - 428 , - 2389 , - 270 , - 5591 , - 1072 , - 3993 , - 2834 , - 3355 , - 5556 , - 3677 , - 3478 , - 4959 , - 2360 , - 1441 , - 2202 , - 4643 , - 3004 , - 3045 , - 4766 , - 2407 , - 1728 , - 2729 , - 5410 , - 4011 , - 4292 , - 493 , - 4134 , - 3695 , - 4936 , - 2097 , - 938 , - 1459 , - 3660 , - 1781 , - 1582 , - 3063 , - 464 , - 5305 , - 306 , - 2747 , - 1108 , - 1149 , - 2870 , - 511 , - 5592 , - 833 , - 3514 , - 2115 , - 2396 , - 4357 , - 2238 , - 1799 , - 3040 , - 201 , - 4802 , - 5323 , - 1764 , - 5645 , - 5446 , - 1167 , - 4328 , - 3409 , - 4170 , - 851 , - 4972 , - 5013 , - 974 , - 4375 , - 3696 , - 4697 , - 1618 , - 219 , - 500 , - 2461 , - 342 , - 5663 , - 1144 , - 4065 , - 2906 , - 3427 , - 5628 , - 3749 , - 3550 , - 5031 , - 2432 , - 1513 , - 2274 , - 4715 , - 3076 , - 3117 , - 4838 , - 2479 , - 1800 , - 2801 , - 5482 , - 4083 , - 4364 , - 565 , - 4206 , - 3767 , - 5008 , - 2169 , - 1010 , - 1531 , - 3732 , - 1853 , - 1654 , - 3135 , - 536 , - 5377 , - 378 , - 2819 , - 1180 , - 1221 , - 2942 , - 583 , - 5664 , - 905 , - 3586 , - 2187 , - 2468 , - 4429 , - 2310 , - 1871 , - 3112 , - 273 , - 4874 , - 5395 , - 1836 , - 5717 , - 5518 , - 1239 , - 4400 , - 3481 , - 4242 , - 923 , - 5044 , - 5085 , - 1046 , - 4447 , - 3768 , - 4769 , - 1690 , - 291 , - 572 , - 2533 , - 414 , - 5735 , - 1216 , - 4137 , - 2978 , - 3499 , - 5700 , - 3821 , - 3622 , - 5103 , - 2504 , - 1585 , - 2346 , - 4787 , - 3148 , - 3189 , - 4910 , - 2551 , - 1872 , - 2873 , - 5554 , - 4155 , - 4436 , - 637 , - 4278 , - 3839 , - 5080 , - 2241 , - 1082 , - 1603 , - 3804 , - 1925 , - 1726 , - 3207 , - 608 , - 5449 , - 450 , - 2891 , - 1252 , - 1293 , - 3014 , - 655 , - 5736 , - 977 , - 3658 , - 2259 , - 2540 , - 4501 , - 2382 , - 1943 , - 3184 , - 345 , - 4946 , - 5467 , - 1908 , - 29 , - 5590 , - 1311 , - 4472 , - 3553 , - 4314 , - 995 , - 5116 , - 5157 , - 1118 , - 4519 , - 3840 , - 4841 , - 1762 , - 363 , - 644 , - 2605 , - 486 , - 47 , - 1288 , - 4209 , - 3050 , - 3571 , - 12 , - 3893 , - 3694 , - 5175 , - 2576 , - 1657 , - 2418 , - 4859 , - 3220 , - 3261 , - 4982 , - 2623 , - 1944 , - 2945 , - 5626 , - 4227 , - 4508 , - 709 , - 4350 , - 3911 , - 5152 , - 2313 , - 1154 , - 1675 , - 3876 , - 1997 , - 1798 , - 3279 , - 680 , - 5521 , - 522 , - 2963 , - 1324 , - 1365 , - 3086 , - 727 , - 48 , - 1049 , - 3730 , - 2331 , - 2612 , - 4573 , - 2454 , - 2015 , - 3256 , - 417 , - 5018 , - 5539 , - 1980 , - 101 , - 5662 , - 1383 , - 4544 , - 3625 , - 4386 , - 1067 , - 5188 , - 5229 , - 1190 , - 4591 , - 3912 , - 4913 , - 1834 , - 435 , - 716 , - 2677 , - 558 , - 119 , - 1360 , - 4281 , - 3122 , - 3643 , - 84 , - 3965 , - 3766 , - 5247 , - 2648 , - 1729 , - 2490 , - 4931 , - 3292 , - 3333 , - 5054 , - 2695 , - 2016 , - 3017 , - 5698 , - 4299 , - 4580 , - 781 , - 4422 , - 3983 , - 5224 , - 2385 , - 1226 , - 1747 , - 3948 , - 2069 , - 1870 , - 3351 , - 752 , - 5593 , - 594 , - 3035 , - 1396 , - 1437 , - 3158 , - 799 , - 120 , - 1121 , - 3802 , - 2403 , - 2684 , - 4645 , - 2526 , - 2087 , - 3328 , - 489 , - 5090 , - 5611 , - 2052 , - 173 , - 5734 , - 1455 , - 4616 , - 3697 , - 4458 , - 1139 , - 5260 , - 5301 , - 1262 , - 4663 , - 3984 , - 4985 , - 1906 , - 507 , - 788 , - 2749 , - 630 , - 191 , - 1432 , - 4353 , - 3194 , - 3715 , - 156 , - 4037 , - 3838 , - 5319 , - 2720 , - 1801 , - 2562 , - 5003 , - 3364 , - 3405 , - 5126 , - 2767 , - 2088 , - 3089 , - 10 , - 4371 , - 4652 , - 853 , - 4494 , - 4055 , - 5296 , - 2457 , - 1298 , - 1819 , - 4020 , - 2141 , - 1942 , - 3423 , - 824 , - 5665 , - 666 , - 3107 , - 1468 , - 1509 , - 3230 , - 871 , - 192 , - 1193 , - 3874 , - 2475 , - 2756 , - 4717 , - 2598 , - 2159 , - 3400 , - 561 , - 5162 , - 5683 , - 2124 , - 245 , - 46 , - 1527 , - 4688 , - 3769 , - 4530 , - 1211 , - 5332 , - 5373 , - 1334 , - 4735 , - 4056 , - 5057 , - 1978 , - 579 , - 860 , - 2821 , - 702 , - 263 , - 1504 , - 4425 , - 3266 , - 3787 , - 228 , - 4109 , - 3910 , - 5391 , - 2792 , - 1873 , - 2634 , - 5075 , - 3436 , - 3477 , - 5198 , - 2839 , - 2160 , - 3161 , - 82 , - 4443 , - 4724 , - 925 , - 4566 , - 4127 , - 5368 , - 2529 , - 1370 , - 1891 , - 4092 , - 2213 , - 2014 , - 3495 , - 896 , - 5737 , - 738 , - 3179 , - 1540 , - 1581 , - 3302 , - 943 , - 264 , - 1265 , - 3946 , - 2547 , - 2828 , - 4789 , - 2670 , - 2231 , - 3472 , - 633 , - 5234 , - 5755 , - 2196 , - 317 , - 118 , - 1599 , - 4760 , - 3841 , - 4602 , - 1283 , - 5404 , - 5445 , - 1406 , - 4807 , - 4128 , - 5129 , - 2050 , - 651 , - 932 , - 2893 , - 774 , - 335 , - 1576 , - 4497 , - 3338 , - 3859 , - 300 , - 4181 , - 3982 , - 5463 , - 2864 , - 1945 , - 2706 , - 5147 , - 3508 , - 3549 , - 5270 , - 2911 , - 2232 , - 3233 , - 154 , - 4515 , - 4796 , - 997 , - 4638 , - 4199 , - 5440 , - 2601 , - 1442 , - 1963 , - 4164 , - 2285 , - 2086 , - 3567 , - 968 , - 49 , - 810 , - 3251 , - 1612 , - 1653 , - 3374 , - 1015 , - 336 , - 1337 , - 4018 , - 2619 , - 2900 , - 4861 , - 2742 , - 2303 , - 3544 , - 705 , - 5306 , - 67 , - 2268 , - 389 , - 190 , - 1671 , - 4832 , - 3913 , - 4674 , - 1355 , - 5476 , - 5517 , - 1478 , - 4879 , - 4200 , - 5201 , - 2122 , - 723 , - 1004 , - 2965 , - 846 , - 407 , - 1648 , - 4569 , - 3410 , - 3931 , - 372 , - 4253 , - 4054 , - 5535 , - 2936 , - 2017 , - 2778 , - 5219 , - 3580 , - 3621 , - 5342 , - 2983 , - 2304 , - 3305 , - 226 , - 4587 , - 4868 , - 1069 , - 4710 , - 4271 , - 5512 , - 2673 , - 1514 , - 2035 , - 4236 , - 2357 , - 2158 , - 3639 , - 1040 , - 121 , - 882 , - 3323 , - 1684 , - 1725 , - 3446 , - 1087 , - 408 , - 1409 , - 4090 , - 2691 , - 2972 , - 4933 , - 2814 , - 2375 , - 3616 , - 777 , - 5378 , - 139 , - 2340 , - 461 , - 262 , - 1743 , - 4904 , - 3985 , - 4746 , - 1427 , - 5548 , - 5589 , - 1550 , - 4951 , - 4272 , - 5273 , - 2194 , - 795 , - 1076 , - 3037 , - 918 , - 479 , - 1720 , - 4641 , - 3482 , - 4003 , - 444 , - 4325 , - 4126 , - 5607 , - 3008 , - 2089 , - 2850 , - 5291 , - 3652 , - 3693 , - 5414 , - 3055 , - 2376 , - 3377 , - 298 , - 4659 , - 4940 , - 1141 , - 4782 , - 4343 , - 5584 , - 2745 , - 1586 , - 2107 , - 4308 , - 2429 , - 2230 , - 3711 , - 1112 , - 193 , - 954 , - 3395 , - 1756 , - 1797 , - 3518 , - 1159 , - 480 , - 1481 , - 4162 , - 2763 , - 3044 , - 5005 , - 2886 , - 2447 , - 3688 , - 849 , - 5450 , - 211 , - 2412 , - 533 , - 334 , - 1815 , - 4976 , - 4057 , - 4818 , - 1499 , - 5620 , - 5661 , - 1622 , - 5023 , - 4344 , - 5345 , - 2266 , - 867 , - 1148 , - 3109 , - 990 , - 551 , - 1792 , - 4713 , - 3554 , - 4075 , - 516 , - 4397 , - 4198 , - 5679 , - 3080 , - 2161 , - 2922 , - 5363 , - 3724 , - 3765 , - 5486 , - 3127 , - 2448 , - 3449 , - 370 , - 4731 , - 5012 , - 1213 , - 4854 , - 4415 , - 5656 , - 2817 , - 1658 , - 2179 , - 4380 , - 2501 , - 2302 , - 3783 , - 1184 , - 265 , - 1026 , - 3467 , - 1828 , - 1869 , - 3590 , - 1231 , - 552 , - 1553 , - 4234 , - 2835 , - 3116 , - 5077 , - 2958 , - 2519 , - 3760 , - 921 , - 5522 , - 283 , - 2484 , - 605 , - 406 , - 1887 , - 5048 , - 4129 , - 4890 , - 1571 , - 5692 , - 5733 , - 1694 , - 5095 , - 4416 , - 5417 , - 2338 , - 939 , - 1220 , - 3181 , - 1062 , - 623 , - 1864 , - 4785 , - 3626 , - 4147 , - 588 , - 4469 , - 4270 , - 5751 , - 3152 , - 2233 , - 2994 , - 5435 , - 3796 , - 3837 , - 5558 , - 3199 , - 2520 , - 3521 , - 442 , - 4803 , - 5084 , - 1285 , - 4926 , - 4487 , - 5728 , - 2889 , - 1730 , - 2251 , - 4452 , - 2573 , - 2374 , - 3855 , - 1256 , - 337 , - 1098 , - 3539 , - 1900 , - 1941 , - 3662 , - 1303 , - 624 , - 1625 , - 4306 , - 2907 , - 3188 , - 5149 , - 3030 , - 2591 , - 3832 , - 993 , - 5594 , - 355 , - 2556 , - 677 , - 478 , - 1959 , - 5120 , - 4201 , - 4962 , - 1643 , - 4 , - 45 , - 1766 , - 5167 , - 4488 , - 5489 , - 2410 , - 1011 , - 1292 , - 3253 , - 1134 , - 695 , - 1936 , - 4857 , - 3698 , - 4219 , - 660 , - 4541 , - 4342 , - 63 , - 3224 , - 2305 , - 3066 , - 5507 , - 3868 , - 3909 , - 5630 , - 3271 , - 2592 , - 3593 , - 514 , - 4875 , - 5156 , - 1357 , - 4998 , - 4559 , - 40 , - 2961 , - 1802 , - 2323 , - 4524 , - 2645 , - 2446 , - 3927 , - 1328 , - 409 , - 1170 , - 3611 , - 1972 , - 2013 , - 3734 , - 1375 , - 696 , - 1697 , - 4378 , - 2979 , - 3260 , - 5221 , - 3102 , - 2663 , - 3904 , - 1065 , - 5666 , - 427 , - 2628 , - 749 , - 550 , - 2031 , - 5192 , - 4273 , - 5034 , - 1715 , - 76 , - 117 , - 1838 , - 5239 , - 4560 , - 5561 , - 2482 , - 1083 , - 1364 , - 3325 , - 1206 , - 767 , - 2008 , - 4929 , - 3770 , - 4291 , - 732 , - 4613 , - 4414 , - 135 , - 3296 , - 2377 , - 3138 , - 5579 , - 3940 , - 3981 , - 5702 , - 3343 , - 2664 , - 3665 , - 586 , - 4947 , - 5228 , - 1429 , - 5070 , - 4631 , - 112 , - 3033 , - 1874 , - 2395 , - 4596 , - 2717 , - 2518 , - 3999 , - 1400 , - 481 , - 1242 , - 3683 , - 2044 , - 2085 , - 3806 , - 1447 , - 768 , - 1769 , - 4450 , - 3051 , - 3332 , - 5293 , - 3174 , - 2735 , - 3976 , - 1137 , - 5738 , - 499 , - 2700 , - 821 , - 622 , - 2103 , - 5264 , - 4345 , - 5106 , - 1787 , - 148 , - 189 , - 1910 , - 5311 , - 4632 , - 5633 , - 2554 , - 1155 , - 1436 , - 3397 , - 1278 , - 839 , - 2080 , - 5001 , - 3842 , - 4363 , - 804 , - 4685 , - 4486 , - 207 , - 3368 , - 2449 , - 3210 , - 5651 , - 4012 , - 4053 , - 14 , - 3415 , - 2736 , - 3737 , - 658 , - 5019 , - 5300 , - 1501 , - 5142 , - 4703 , - 184 , - 3105 , - 1946 , - 2467 , - 4668 , - 2789 , - 2590 , - 4071 , - 1472 , - 553 , - 1314 , - 3755 , - 2116 , - 2157 , - 3878 , - 1519 , - 840 , - 1841 , - 4522 , - 3123 , - 3404 , - 5365 , - 3246 , - 2807 , - 4048 , - 1209 , - 50 , - 571 , - 2772 , - 893 , - 694 , - 2175 , - 5336 , - 4417 , - 5178 , - 1859 , - 220 , - 261 , - 1982 , - 5383 , - 4704 , - 5705 , - 2626 , - 1227 , - 1508 , - 3469 , - 1350 , - 911 , - 2152 , - 5073 , - 3914 , - 4435 , - 876 , - 4757 , - 4558 , - 279 , - 3440 , - 2521 , - 3282 , - 5723 , - 4084 , - 4125 , - 86 , - 3487 , - 2808 , - 3809 , - 730 , - 5091 , - 5372 , - 1573 , - 5214 , - 4775 , - 256 , - 3177 , - 2018 , - 2539 , - 4740 , - 2861 , - 2662 , - 4143 , - 1544 , - 625 , - 1386 , - 3827 , - 2188 , - 2229 , - 3950 , - 1591 , - 912 , - 1913 , - 4594 , - 3195 , - 3476 , - 5437 , - 3318 , - 2879 , - 4120 , - 1281 , - 122 , - 643 , - 2844 , - 965 , - 766 , - 2247 , - 5408 , - 4489 , - 5250 , - 1931 , - 292 , - 333 , - 2054 , - 5455 , - 4776 , - 17 , - 2698 , - 1299 , - 1580 , - 3541 , - 1422 , - 983 , - 2224 , - 5145 , - 3986 , - 4507 , - 948 , - 4829 , - 4630 , - 351 , - 3512 , - 2593 , - 3354 , - 35 , - 4156 , - 4197 , - 158 , - 3559 , - 2880 , - 3881 , - 802 , - 5163 , - 5444 , - 1645 , - 5286 , - 4847 , - 328 , - 3249 , - 2090 , - 2611 , - 4812 , - 2933 , - 2734 , - 4215 , - 1616 , - 697 , - 1458 , - 3899 , - 2260 , - 2301 , - 4022 , - 1663 , - 984 , - 1985 , - 4666 , - 3267 , - 3548 , - 5509 , - 3390 , - 2951 , - 4192 , - 1353 , - 194 , - 715 , - 2916 , - 1037 , - 838 , - 2319 , - 5480 , - 4561 , - 5322 , - 2003 , - 364 , - 405 , - 2126 , - 5527 , - 4848 , - 89 , - 2770 , - 1371 , - 1652 , - 3613 , - 1494 , - 1055 , - 2296 , - 5217 , - 4058 , - 4579 , - 1020 , - 4901 , - 4702 , - 423 , - 3584 , - 2665 , - 3426 , - 107 , - 4228 , - 4269 , - 230 , - 3631 , - 2952 , - 3953 , - 874 , - 5235 , - 5516 , - 1717 , - 5358 , - 4919 , - 400 , - 3321 , - 2162 , - 2683 , - 4884 , - 3005 , - 2806 , - 4287 , - 1688 , - 769 , - 1530 , - 3971 , - 2332 , - 2373 , - 4094 , - 1735 , - 1056 , - 2057 , - 4738 , - 3339 , - 3620 , - 5581 , - 3462 , - 3023 , - 4264 , - 1425 , - 266 , - 787 , - 2988 , - 1109 , - 910 , - 2391 , - 5552 , - 4633 , - 5394 , - 2075 , - 436 , - 477 , - 2198 , - 5599 , - 4920 , - 161 , - 2842 , - 1443 , - 1724 , - 3685 , - 1566 , - 1127 , - 2368 , - 5289 , - 4130 , - 4651 , - 1092 , - 4973 , - 4774 , - 495 , - 3656 , - 2737 , - 3498 , - 179 , - 4300 , - 4341 , - 302 , - 3703 , - 3024 , - 4025 , - 946 , - 5307 , - 5588 , - 1789 , - 5430 , - 4991 , - 472 , - 3393 , - 2234 , - 2755 , - 4956 , - 3077 , - 2878 , - 4359 , - 1760 , - 841 , - 1602 , - 4043 , - 2404 , - 2445 , - 4166 , - 1807 , - 1128 , - 2129 , - 4810 , - 3411 , - 3692 , - 5653 , - 3534 , - 3095 , - 4336 , - 1497 , - 338 , - 859 , - 3060 , - 1181 , - 982 , - 2463 , - 5624 , - 4705 , - 5466 , - 2147 , - 508 , - 549 , - 2270 , - 5671 , - 4992 , - 233 , - 2914 , - 1515 , - 1796 , - 3757 , - 1638 , - 1199 , - 2440 , - 5361 , - 4202 , - 4723 , - 1164 , - 5045 , - 4846 , - 567 , - 3728 , - 2809 , - 3570 , - 251 , - 4372 , - 4413 , - 374 , - 3775 , - 3096 , - 4097 , - 1018 , - 5379 , - 5660 , - 1861 , - 5502 , - 5063 , - 544 , - 3465 , - 2306 , - 2827 , - 5028 , - 3149 , - 2950 , - 4431 , - 1832 , - 913 , - 1674 , - 4115 , - 2476 , - 2517 , - 4238 , - 1879 , - 1200 , - 2201 , - 4882 , - 3483 , - 3764 , - 5725 , - 3606 , - 3167 , - 4408 , - 1569 , - 410 , - 931 , - 3132 , - 1253 , - 1054 , - 2535 , - 5696 , - 4777 , - 5538 , - 2219 , - 580 , - 621 , - 2342 , - 5743 , - 5064 , - 305 , - 2986 , - 1587 , - 1868 , - 3829 , - 1710 , - 1271 , - 2512 , - 5433 , - 4274 , - 4795 , - 1236 , - 5117 , - 4918 , - 639 , - 3800 , - 2881 , - 3642 , - 323 , - 4444 , - 4485 , - 446 , - 3847 , - 3168 , - 4169 , - 1090 , - 5451 , - 5732 , - 1933 , - 5574 , - 5135 , - 616 , - 3537 , - 2378 , - 2899 , - 5100 , - 3221 , - 3022 , - 4503 , - 1904 , - 985 , - 1746 , - 4187 , - 2548 , - 2589 , - 4310 , - 1951 , - 1272 , - 2273 , - 4954 , - 3555 , - 3836 , - 37 , - 3678 , - 3239 , - 4480 , - 1641 , - 482 , - 1003 , - 3204 , - 1325 , - 1126 , - 2607 , - 8 , - 4849 , - 5610 , - 2291 , - 652 , - 693 , - 2414 , - 55 , - 5136 , - 377 , - 3058 , - 1659 , - 1940 , - 3901 , - 1782 , - 1343 , - 2584 , - 5505 , - 4346 , - 4867 , - 1308 , - 5189 , - 4990 , - 711 , - 3872 , - 2953 , - 3714 , - 395 , - 4516 , - 4557 , - 518 , - 3919 , - 3240 , - 4241 , - 1162 , - 5523 , - 44 , - 2005 , - 5646 , - 5207 , - 688 , - 3609 , - 2450 , - 2971 , - 5172 , - 3293 , - 3094 , - 4575 , - 1976 , - 1057 , - 1818 , - 4259 , - 2620 , - 2661 , - 4382 , - 2023 , - 1344 , - 2345 , - 5026 , - 3627 , - 3908 , - 109 , - 3750 , - 3311 , - 4552 , - 1713 , - 554 , - 1075 , - 3276 , - 1397 , - 1198 , - 2679 , - 80 , - 4921 , - 5682 , - 2363 , - 724 , - 765 , - 2486 , - 127 , - 5208 , - 449 , - 3130 , - 1731 , - 2012 , - 3973 , - 1854 , - 1415 , - 2656 , - 5577 , - 4418 , - 4939 , - 1380 , - 5261 , - 5062 , - 783 , - 3944 , - 3025 , - 3786 , - 467 , - 4588 , - 4629 , - 590 , - 3991 , - 3312 , - 4313 , - 1234 , - 5595 , - 116 , - 2077 , - 5718 , - 5279 , - 760 , - 3681 , - 2522 , - 3043 , - 5244 , - 3365 , - 3166 , - 4647 , - 2048 , - 1129 , - 1890 , - 4331 , - 2692 , - 2733 , - 4454 , - 2095 , - 1416 , - 2417 , - 5098 , - 3699 , - 3980 , - 181 , - 3822 , - 3383 , - 4624 , - 1785 , - 626 , - 1147 , - 3348 , - 1469 , - 1270 , - 2751 , - 152 , - 4993 , - 5754 , - 2435 , - 796 , - 837 , - 2558 , - 199 , - 5280 , - 521 , - 3202 , - 1803 , - 2084 , - 4045 , - 1926 , - 1487 , - 2728 , - 5649 , - 4490 , - 5011 , - 1452 , - 5333 , - 5134 , - 855 , - 4016 , - 3097 , - 3858 , - 539 , - 4660 , - 4701 , - 662 , - 4063 , - 3384 , - 4385 , - 1306 , - 5667 , - 188 , - 2149 , - 30 , - 5351 , - 832 , - 3753 , - 2594 , - 3115 , - 5316 , - 3437 , - 3238 , - 4719 , - 2120 , - 1201 , - 1962 , - 4403 , - 2764 , - 2805 , - 4526 , - 2167 , - 1488 , - 2489 , - 5170 , - 3771 , - 4052 , - 253 , - 3894 , - 3455 , - 4696 , - 1857 , - 698 , - 1219 , - 3420 , - 1541 , - 1342 , - 2823 , - 224 , - 5065 , - 66 , - 2507 , - 868 , - 909 , - 2630 , - 271 , - 5352 , - 593 , - 3274 , - 1875 , - 2156 , - 4117 , - 1998 , - 1559 , - 2800 , - 5721 , - 4562 , - 5083 , - 1524 , - 5405 , - 5206 , - 927 , - 4088 , - 3169 , - 3930 , - 611 , - 4732 , - 4773 , - 734 , - 4135 , - 3456 , - 4457 , - 1378 , - 5739 , - 260 , - 2221 , - 102 , - 5423 , - 904 , - 3825 , - 2666 , - 3187 , - 5388 , - 3509 , - 3310 , - 4791 , - 2192 , - 1273 , - 2034 , - 4475 , - 2836 , - 2877 , - 4598 , - 2239 , - 1560 , - 2561 , - 5242 , - 3843 , - 4124 , - 325 , - 3966 , - 3527 , - 4768 , - 1929 , - 770 , - 1291 , - 3492 , - 1613 , - 1414 , - 2895 , - 296 , - 5137 , - 138 , - 2579 , - 940 , - 981 , - 2702 , - 343 , - 5424 , - 665 , - 3346 , - 1947 , - 2228 , - 4189 , - 2070 , - 1631 , - 2872 , - 33 , - 4634 , - 5155 , - 1596 , - 5477 , - 5278 , - 999 , - 4160 , - 3241 , - 4002 , - 683 , - 4804 , - 4845 , - 806 , - 4207 , - 3528 , - 4529 , - 1450 , - 51 , - 332 , - 2293 , - 174 , - 5495 , - 976 , - 3897 , - 2738 , - 3259 , - 5460 , - 3581 , - 3382 , - 4863 , - 2264 , - 1345 , - 2106 , - 4547 , - 2908 , - 2949 , - 4670 , - 2311 , - 1632 , - 2633 , - 5314 , - 3915 , - 4196 , - 397 , - 4038 , - 3599 , - 4840 , - 2001 , - 842 , - 1363 , - 3564 , - 1685 , - 1486 , - 2967 , - 368 , - 5209 , - 210 , - 2651 , - 1012 , - 1053 , - 2774 , - 415 , - 5496 , - 737 , - 3418 , - 2019 , - 2300 , - 4261 , - 2142 , - 1703 , - 2944 , - 105 , - 4706 , - 5227 , - 1668 , - 5549 , - 5350 , - 1071 , - 4232 , - 3313 , - 4074 , - 755 , - 4876 , - 4917 , - 878 , - 4279 , - 3600 , - 4601 , - 1522 , - 123 , - 404 , - 2365 , - 246 , - 5567 , - 1048 , - 3969 , - 2810 , - 3331 , - 5532 , - 3653 , - 3454 , - 4935 , - 2336 , - 1417 , - 2178 , - 4619 , - 2980 , - 3021 , - 4742 , - 2383 , - 1704 , - 2705 , - 5386 , - 3987 , - 4268 , - 469 , - 4110 , - 3671 , - 4912 , - 2073 , - 914 , - 1435 , - 3636 , - 1757 , - 1558 , - 3039 , - 440 , - 5281 , - 282 , - 2723 , - 1084 , - 1125 , - 2846 , - 487 , - 5568 , - 809 , - 3490 , - 2091 , - 2372 , - 4333 , - 2214 , - 1775 , - 3016 , - 177 , - 4778 , - 5299 , - 1740 , - 5621 , - 5422 , - 1143 , - 4304 , - 3385 , - 4146 , - 827 , - 4948 , - 4989 , - 950 , - 4351 , - 3672 , - 4673 , - 1594 , - 195 , - 476 , - 2437 , - 318 , - 5639 , - 1120 , - 4041 , - 2882 , - 3403 , - 5604 , - 3725 , - 3526 , - 5007 , - 2408 , - 1489 , - 2250 , - 4691 , - 3052 , - 3093 , - 4814 , - 2455 , - 1776 , - 2777 , - 5458 , - 4059 , - 4340 , - 541 , - 4182 , - 3743 , - 4984 , - 2145 , - 986 , - 1507 , - 3708 , - 1829 , - 1630 , - 3111 , - 512 , - 5353 , - 354 , - 2795 , - 1156 , - 1197 , - 2918 , - 559 , - 5640 , - 881 , - 3562 , - 2163 , - 2444 , - 4405 , - 2286 , - 1847 , - 3088 , - 249 , - 4850 , - 5371 , - 1812 , - 5693 , - 5494 , - 1215 , - 4376 , - 3457 , - 4218 , - 899 , - 5020 , - 5061 , - 1022 , - 4423 , - 3744 , - 4745 , - 1666 , - 267 , - 548 , - 2509 , - 390 , - 5711 , - 1192 , - 4113 , - 2954 , - 3475 , - 5676 , - 3797 , - 3598 , - 5079 , - 2480 , - 1561 , - 2322 , - 4763 , - 3124 , - 3165 , - 4886 , - 2527 , - 1848 , - 2849 , - 5530 , - 4131 , - 4412 , - 613 , - 4254 , - 3815 , - 5056 , - 2217 , - 1058 , - 1579 , - 3780 , - 1901 , - 1702 , - 3183 , - 584 , - 5425 , - 426 , - 2867 , - 1228 , - 1269 , - 2990 , - 631 , - 5712 , - 953 , - 3634 , - 2235 , - 2516 , - 4477 , - 2358 , - 1919 , - 3160 , - 321 , - 4922 , - 5443 , - 1884 , - 5 , - 5566 , - 1287 , - 4448 , - 3529 , - 4290 , - 971 , - 5092 , - 5133 , - 1094 , - 4495 , - 3816 , - 4817 , - 1738 , - 339 , - 620 , - 2581 , - 462 , - 23 , - 1264 , - 4185 , - 3026 , - 3547 , - 5748 , - 3869 , - 3670 , - 5151 , - 2552 , - 1633 , - 2394 , - 4835 , - 3196 , - 3237 , - 4958 , - 2599 , - 1920 , - 2921 , - 5602 , - 4203 , - 4484 , - 685 , - 4326 , - 3887 , - 5128 , - 2289 , - 1130 , - 1651 , - 3852 , - 1973 , - 1774 , - 3255 , - 656 , - 5497 , - 498 , - 2939 , - 1300 , - 1341 , - 3062 , - 703 , - 24 , - 1025 , - 3706 , - 2307 , - 2588 , - 4549 , - 2430 , - 1991 , - 3232 , - 393 , - 4994 , - 5515 , - 1956 , - 77 , - 5638 , - 1359 , - 4520 , - 3601 , - 4362 , - 1043 , - 5164 , - 5205 , - 1166 , - 4567 , - 3888 , - 4889 , - 1810 , - 411 , - 692 , - 2653 , - 534 , - 95 , - 1336 , - 4257 , - 3098 , - 3619 , - 60 , - 3941 , - 3742 , - 5223 , - 2624 , - 1705 , - 2466 , - 4907 , - 3268 , - 3309 , - 5030 , - 2671 , - 1992 , - 2993 , - 5674 , - 4275 , - 4556 , - 757 , - 4398 , - 3959 , - 5200 , - 2361 , - 1202 , - 1723 , - 3924 , - 2045 , - 1846 , - 3327 , - 728 , - 5569 , - 570 , - 3011 , - 1372 , - 1413 , - 3134 , - 775 , - 96 , - 1097 , - 3778 , - 2379 , - 2660 , - 4621 , - 2502 , - 2063 , - 3304 , - 465 , - 5066 , - 5587 , - 2028 , - 149 , - 5710 , - 1431 , - 4592 , - 3673 , - 4434 , - 1115 , - 5236 , - 5277 , - 1238 , - 4639 , - 3960 , - 4961 , - 1882 , - 483 , - 764 , - 2725 , - 606 , - 167 , - 1408 , - 4329 , - 3170 , - 3691 , - 132 , - 4013 , - 3814 , - 5295 , - 2696 , - 1777 , - 2538 , - 4979 , - 3340 , - 3381 , - 5102 , - 2743 , - 2064 , - 3065 , - 5746 , - 4347 , - 4628 , - 829 , - 4470 , - 4031 , - 5272 , - 2433 , - 1274 , - 1795 , - 3996 , - 2117 , - 1918 , - 3399 , - 800 , - 5641 , - 642 , - 3083 , - 1444 , - 1485 , - 3206 , - 847 , - 168 , - 1169 , - 3850 , - 2451 , - 2732 , - 4693 , - 2574 , - 2135 , - 3376 , - 537 , - 5138 , - 5659 , - 2100 , - 221 , - 22 , - 1503 , - 4664 , - 3745 , - 4506 , - 1187 , - 5308 , - 5349 , - 1310 , - 4711 , - 4032 , - 5033 , - 1954 , - 555 , - 836 , - 2797 , - 678 , - 239 , - 1480 , - 4401 , - 3242 , - 3763 , - 204 , - 4085 , - 3886 , - 5367 , - 2768 , - 1849 , - 2610 , - 5051 , - 3412 , - 3453 , - 5174 , - 2815 , - 2136 , - 3137 , - 58 , - 4419 , - 4700 , - 901 , - 4542 , - 4103 , - 5344 , - 2505 , - 1346 , - 1867 , - 4068 , - 2189 , - 1990 , - 3471 , - 872 , - 5713 , - 714 , - 3155 , - 1516 , - 1557 , - 3278 , - 919 , - 240 , - 1241 , - 3922 , - 2523 , - 2804 , - 4765 , - 2646 , - 2207 , - 3448 , - 609 , - 5210 , - 5731 , - 2172 , - 293 , - 94 , - 1575 , - 4736 , - 3817 , - 4578 , - 1259 , - 5380 , - 5421 , - 1382 , - 4783 , - 4104 , - 5105 , - 2026 , - 627 , - 908 , - 2869 , - 750 , - 311 , - 1552 , - 4473 , - 3314 , - 3835 , - 276 , - 4157 , - 3958 , - 5439 , - 2840 , - 1921 , - 2682 , - 5123 , - 3484 , - 3525 , - 5246 , - 2887 , - 2208 , - 3209 , - 130 , - 4491 , - 4772 , - 973 , - 4614 , - 4175 , - 5416 , - 2577 , - 1418 , - 1939 , - 4140 , - 2261 , - 2062 , - 3543 , - 944 , - 25 , - 786 , - 3227 , - 1588 , - 1629 , - 3350 , - 991 , - 312 , - 1313 , - 3994 , - 2595 , - 2876 , - 4837 , - 2718 , - 2279 , - 3520 , - 681 , - 5282 , - 43 , - 2244 , - 365 , - 166 , - 1647 , - 4808 , - 3889 , - 4650 , - 1331 , - 5452 , - 5493 , - 1454 , - 4855 , - 4176 , - 5177 , - 2098 , - 699 , - 980 , - 2941 , - 822 , - 383 , - 1624 , - 4545 , - 3386 , - 3907 , - 348 , - 4229 , - 4030 , - 5511 , - 2912 , - 1993 , - 2754 , - 5195 , - 3556 , - 3597 , - 5318 , - 2959 , - 2280 , - 3281 , - 202 , - 4563 , - 4844 , - 1045 , - 4686 , - 4247 , - 5488 , - 2649 , - 1490 , - 2011 , - 4212 , - 2333 , - 2134 , - 3615 , - 1016 , - 97 , - 858 , - 3299 , - 1660 , - 1701 , - 3422 , - 1063 , - 384 , - 1385 , - 4066 , - 2667 , - 2948 , - 4909 , - 2790 , - 2351 , - 3592 , - 753 , - 5354 , - 115 , - 2316 , - 437 , - 238 , - 1719 , - 4880 , - 3961 , - 4722 , - 1403 , - 5524 , - 5565 , - 1526 , - 4927 , - 4248 , - 5249 , - 2170 , - 771 , - 1052 , - 3013 , - 894 , - 455 , - 1696 , - 4617 , - 3458 , - 3979 , - 420 , - 4301 , - 4102 , - 5583 , - 2984 , - 2065 , - 2826 , - 5267 , - 3628 , - 3669 , - 5390 , - 3031 , - 2352 , - 3353 , - 274 , - 4635 , - 4916 , - 1117 , - 4758 , - 4319 , - 5560 , - 2721 , - 1562 , - 2083 , - 4284 , - 2405 , - 2206 , - 3687 , - 1088 , - 169 , - 930 , - 3371 , - 1732 , - 1773 , - 3494 , - 1135 , - 456 , - 1457 , - 4138 , - 2739 , - 3020 , - 4981 , - 2862 , - 2423 , - 3664 , - 825 , - 5426 , - 187 , - 2388 , - 509 , - 310 , - 1791 , - 4952 , - 4033 , - 4794 , - 1475 , - 5596 , - 5637 , - 1598 , - 4999 , - 4320 , - 5321 , - 2242 , - 843 , - 1124 , - 3085 , - 966 , - 527 , - 1768 , - 4689 , - 3530 , - 4051 , - 492 , - 4373 , - 4174 , - 5655 , - 3056 , - 2137 , - 2898 , - 5339 , - 3700 , - 3741 , - 5462 , - 3103 , - 2424 , - 3425 , - 346 , - 4707 , - 4988 , - 1189 , - 4830 , - 4391 , - 5632 , - 2793 , - 1634 , - 2155 , - 4356 , - 2477 , - 2278 , - 3759 , - 1160 , - 241 , - 1002 , - 3443 , - 1804 , - 1845 , - 3566 , - 1207 , - 528 , - 1529 , - 4210 , - 2811 , - 3092 , - 5053 , - 2934 , - 2495 , - 3736 , - 897 , - 5498 , - 259 , - 2460 , - 581 , - 382 , - 1863 , - 5024 , - 4105 , - 4866 , - 1547 , - 5668 , - 5709 , - 1670 , - 5071 , - 4392 , - 5393 , - 2314 , - 915 , - 1196 , - 3157 , - 1038 , - 599 , - 1840 , - 4761 , - 3602 , - 4123 , - 564 , - 4445 , - 4246 , - 5727 , - 3128 , - 2209 , - 2970 , - 5411 , - 3772 , - 3813 , - 5534 , - 3175 , - 2496 , - 3497 , - 418 , - 4779 , - 5060 , - 1261 , - 4902 , - 4463 , - 5704 , - 2865 , - 1706 , - 2227 , - 4428 , - 2549 , - 2350 , - 3831 , - 1232 , - 313 , - 1074 , - 3515 , - 1876 , - 1917 , - 3638 , - 1279 , - 600 , - 1601 , - 4282 , - 2883 , - 3164 , - 5125 , - 3006 , - 2567 , - 3808 , - 969 , - 5570 , - 331 , - 2532 , - 653 , - 454 , - 1935 , - 5096 , - 4177 , - 4938 , - 1619 , - 5740 , - 21 , - 1742 , - 5143 , - 4464 , - 5465 , - 2386 , - 987 , - 1268 , - 3229 , - 1110 , - 671 , - 1912 , - 4833 , - 3674 , - 4195 , - 636 , - 4517 , - 4318 , - 39 , - 3200 , - 2281 , - 3042 , - 5483 , - 3844 , - 3885 , - 5606 , - 3247 , - 2568 , - 3569 , - 490 , - 4851 , - 5132 , - 1333 , - 4974 , - 4535 , - 16 , - 2937 , - 1778 , - 2299 , - 4500 , - 2621 , - 2422 , - 3903 , - 1304 , - 385 , - 1146 , - 3587 , - 1948 , - 1989 , - 3710 , - 1351 , - 672 , - 1673 , - 4354 , - 2955 , - 3236 , - 5197 , - 3078 , - 2639 , - 3880 , - 1041 , - 5642 , - 403 , - 2604 , - 725 , - 526 , - 2007 , - 5168 , - 4249 , - 5010 , - 1691 , - 52 , - 93 , - 1814 , - 5215 , - 4536 , - 5537 , - 2458 , - 1059 , - 1340 , - 3301 , - 1182 , - 743 , - 1984 , - 4905 , - 3746 , - 4267 , - 708 , - 4589 , - 4390 , - 111 , - 3272 , - 2353 , - 3114 , - 5555 , - 3916 , - 3957 , - 5678 , - 3319 , - 2640 , - 3641 , - 562 , - 4923 , - 5204 , - 1405 , - 5046 , - 4607 , - 88 , - 3009 , - 1850 , - 2371 , - 4572 , - 2693 , - 2494 , - 3975 , - 1376 , - 457 , - 1218 , - 3659 , - 2020 , - 2061 , - 3782 , - 1423 , - 744 , - 1745 , - 4426 , - 3027 , - 3308 , - 5269 , - 3150 , - 2711 , - 3952 , - 1113 , - 5714 , - 475 , - 2676 , - 797 , - 598 , - 2079 , - 5240 , - 4321 , - 5082 , - 1763 , - 124 , - 165 , - 1886 , - 5287 , - 4608 , - 5609 , - 2530 , - 1131 , - 1412 , - 3373 , - 1254 , - 815 , - 2056 , - 4977 , - 3818 , - 4339 , - 780 , - 4661 , - 4462 , - 183 , - 3344 , - 2425 , - 3186 , - 5627 , - 3988 , - 4029 , - 5750 , - 3391 , - 2712 , - 3713 , - 634 , - 4995 , - 5276 , - 1477 , - 5118 , - 4679 , - 160 , - 3081 , - 1922 , - 2443 , - 4644 , - 2765 , - 2566 , - 4047 , - 1448 , - 529 , - 1290 , - 3731 , - 2092 , - 2133 , - 3854 , - 1495 , - 816 , - 1817 , - 4498 , - 3099 , - 3380 , - 5341 , - 3222 , - 2783 , - 4024 , - 1185 , - 26 , - 547 , - 2748 , - 869 , - 670 , - 2151 , - 5312 , - 4393 , - 5154 , - 1835 , - 196 , - 237 , - 1958 , - 5359 , - 4680 , - 5681 , - 2602 , - 1203 , - 1484 , - 3445 , - 1326 , - 887 , - 2128 , - 5049 , - 3890 , - 4411 , - 852 , - 4733 , - 4534 , - 255 , - 3416 , - 2497 , - 3258 , - 5699 , - 4060 , - 4101 , - 62 , - 3463 , - 2784 , - 3785 , - 706 , - 5067 , - 5348 , - 1549 , - 5190 , - 4751 , - 232 , - 3153 , - 1994 , - 2515 , - 4716 , - 2837 , - 2638 , - 4119 , - 1520 , - 601 , - 1362 , - 3803 , - 2164 , - 2205 , - 3926 , - 1567 , - 888 , - 1889 , - 4570 , - 3171 , - 3452 , - 5413 , - 3294 , - 2855 , - 4096 , - 1257 , - 98 , - 619 , - 2820 , - 941 , - 742 , - 2223 , - 5384 , - 4465 , - 5226 , - 1907 , - 268 , - 309 , - 2030 , - 5431 , - 4752 , - 5753 , - 2674 , - 1275 , - 1556 , - 3517 , - 1398 , - 959 , - 2200 , - 5121 , - 3962 , - 4483 , - 924 , - 4805 , - 4606 , - 327 , - 3488 , - 2569 , - 3330 , - 11 , - 4132 , - 4173 , - 134 , - 3535 , - 2856 , - 3857 , - 778 , - 5139 , - 5420 , - 1621 , - 5262 , - 4823 , - 304 , - 3225 , - 2066 , - 2587 , - 4788 , - 2909 , - 2710 , - 4191 , - 1592 , - 673 , - 1434 , - 3875 , - 2236 , - 2277 , - 3998 , - 1639 , - 960 , - 1961 , - 4642 , - 3243 , - 3524 , - 5485 , - 3366 , - 2927 , - 4168 , - 1329 , - 170 , - 691 , - 2892 , - 1013 , - 814 , - 2295 , - 5456 , - 4537 , - 5298 , - 1979 , - 340 , - 381 , - 2102 , - 5503 , - 4824 , - 65 , - 2746 , - 1347 , - 1628 , - 3589 , - 1470 , - 1031 , - 2272 , - 5193 , - 4034 , - 4555 , - 996 , - 4877 , - 4678 , - 399 , - 3560 , - 2641 , - 3402 , - 83 , - 4204 , - 4245 , - 206 , - 3607 , - 2928 , - 3929 , - 850 , - 5211 , - 5492 , - 1693 , - 5334 , - 4895 , - 376 , - 3297 , - 2138 , - 2659 , - 4860 , - 2981 , - 2782 , - 4263 , - 1664 , - 745 , - 1506 , - 3947 , - 2308 , - 2349 , - 4070 , - 1711 , - 1032 , - 2033 , - 4714 , - 3315 , - 3596 , - 5557 , - 3438 , - 2999 , - 4240 , - 1401 , - 242 , - 763 , - 2964 , - 1085 , - 886 , - 2367 , - 5528 , - 4609 , - 5370 , - 2051 , - 412 , - 453 , - 2174 , - 5575 , - 4896 , - 137 , - 2818 , - 1419 , - 1700 , - 3661 , - 1542 , - 1103 , - 2344 , - 5265 , - 4106 , - 4627 , - 1068 , - 4949 , - 4750 , - 471 , - 3632 , - 2713 , - 3474 , - 155 , - 4276 , - 4317 , - 278 , - 3679 , - 3000 , - 4001 , - 922 , - 5283 , - 5564 , - 1765 , - 5406 , - 4967 , - 448 , - 3369 , - 2210 , - 2731 , - 4932 , - 3053 , - 2854 , - 4335 , - 1736 , - 817 , - 1578 , - 4019 , - 2380 , - 2421 , - 4142 , - 1783 , - 1104 , - 2105 , - 4786 , - 3387 , - 3668 , - 5629 , - 3510 , - 3071 , - 4312 , - 1473 , - 314 , - 835 , - 3036 , - 1157 , - 958 , - 2439 , - 5600 , - 4681 , - 5442 , - 2123 , - 484 , - 525 , - 2246 , - 5647 , - 4968 , - 209 , - 2890 , - 1491 , - 1772 , - 3733 , - 1614 , - 1175 , - 2416 , - 5337 , - 4178 , - 4699 , - 1140 , - 5021 , - 4822 , - 543 , - 3704 , - 2785 , - 3546 , - 227 , - 4348 , - 4389 , - 350 , - 3751 , - 3072 , - 4073 , - 994 , - 5355 , - 5636 , - 1837 , - 5478 , - 5039 , - 520 , - 3441 , - 2282 , - 2803 , - 5004 , - 3125 , - 2926 , - 4407 , - 1808 , - 889 , - 1650 , - 4091 , - 2452 , - 2493 , - 4214 , - 1855 , - 1176 , - 2177 , - 4858 , - 3459 , - 3740 , - 5701 , - 3582 , - 3143 , - 4384 , - 1545 , - 386 , - 907 , - 3108 , - 1229 , - 1030 , - 2511 , - 5672 , - 4753 , - 5514 , - 2195 , - 556 , - 597 , - 2318 , - 5719 , - 5040 , - 281 , - 2962 , - 1563 , - 1844 , - 3805 , - 1686 , - 1247 , - 2488 , - 5409 , - 4250 , - 4771 , - 1212 , - 5093 , - 4894 , - 615 , - 3776 , - 2857 , - 3618 , - 299 , - 4420 , - 4461 , - 422 , - 3823 , - 3144 , - 4145 , - 1066 , - 5427 , - 5708 , - 1909 , - 5550 , - 5111 , - 592 , - 3513 , - 2354 , - 2875 , - 5076 , - 3197 , - 2998 , - 4479 , - 1880 , - 961 , - 1722 , - 4163 , - 2524 , - 2565 , - 4286 , - 1927 , - 1248 , - 2249 , - 4930 , - 3531 , - 3812 , - 13 , - 3654 , - 3215 , - 4456 , - 1617 , - 458 , - 979 , - 3180 , - 1301 , - 1102 , - 2583 , - 5744 , - 4825 , - 5586 , - 2267 , - 628 , - 669 , - 2390 , - 31 , - 5112 , - 353 , - 3034 , - 1635 , - 1916 , - 3877 , - 1758 , - 1319 , - 2560 , - 5481 , - 4322 , - 4843 , - 1284 , - 5165 , - 4966 , - 687 , - 3848 , - 2929 , - 3690 , - 371 , - 4492 , - 4533 , - 494 , - 3895 , - 3216 , - 4217 , - 1138 , - 5499 , - 20 , - 1981 , - 5622 , - 5183 , - 664 , - 3585 , - 2426 , - 2947 , - 5148 , - 3269 , - 3070 , - 4551 , - 1952 , - 1033 , - 1794 , - 4235 , - 2596 , - 2637 , - 4358 , - 1999 , - 1320 , - 2321 , - 5002 , - 3603 , - 3884 , - 85 , - 3726 , - 3287 , - 4528 , - 1689 , - 530 , - 1051 , - 3252 , - 1373 , - 1174 , - 2655 , - 56 , - 4897 , - 5658 , - 2339 , - 700 , - 741 , - 2462 , - 103 , - 5184 , - 425 , - 3106 , - 1707 , - 1988 , - 3949 , - 1830 , - 1391 , - 2632 , - 5553 , - 4394 , - 4915 , - 1356 , - 5237 , - 5038 , - 759 , - 3920 , - 3001 , - 3762 , - 443 , - 4564 , - 4605 , - 566 , - 3967 , - 3288 , - 4289 , - 1210 , - 5571 , - 92 , - 2053 , - 5694 , - 5255 , - 736 , - 3657 , - 2498 , - 3019 , - 5220 , - 3341 , - 3142 , - 4623 , - 2024 , - 1105 , - 1866 , - 4307 , - 2668 , - 2709 , - 4430 , - 2071 , - 1392 , - 2393 , - 5074 , - 3675 , - 3956 , - 157 , - 3798 , - 3359 , - 4600 , - 1761 , - 602 , - 1123 , - 3324 , - 1445 , - 1246 , - 2727 , - 128 , - 4969 , - 5730 , - 2411 , - 772 , - 813 , - 2534 , - 175 , - 5256 , - 497 , - 3178 , - 1779 , - 2060 , - 4021 , - 1902 , - 1463 , - 2704 , - 5625 , - 4466 , - 4987 , - 1428 , - 5309 , - 5110 , - 831 , - 3992 , - 3073 , - 3834 , - 515 , - 4636 , - 4677 , - 638 , - 4039 , - 3360 , - 4361 , - 1282 , - 5643 , - 164 , - 2125 , - 6 , - 5327 , - 808 , - 3729 , - 2570 , - 3091 , - 5292 , - 3413 , - 3214 , - 4695 , - 2096 , - 1177 , - 1938 , - 4379 , - 2740 , - 2781 , - 4502 , - 2143 , - 1464 , - 2465 , - 5146 , - 3747 , - 4028 , - 229 , - 3870 , - 3431 , - 4672 , - 1833 , - 674 , - 1195 , - 3396 , - 1517 , - 1318 , - 2799 , - 200 , - 5041 , - 42 , - 2483 , - 844 , - 885 , - 2606 , - 247 , - 5328 , - 569 , - 3250 , - 1851 , - 2132 , - 4093 , - 1974 , - 1535 , - 2776 , - 5697 , - 4538 , - 5059 , - 1500 , - 5381 , - 5182 , - 903 , - 4064 , - 3145 , - 3906 , - 587 , - 4708 , - 4749 , - 710 , - 4111 , - 3432 , - 4433 , - 1354 , - 5715 , - 236 , - 2197 , - 78 , - 5399 , - 880 , - 3801 , - 2642 , - 3163 , - 5364 , - 3485 , - 3286 , - 4767 , - 2168 , - 1249 , - 2010 , - 4451 , - 2812 , - 2853 , - 4574 , - 2215 , - 1536 , - 2537 , - 5218 , - 3819 , - 4100 , - 301 , - 3942 , - 3503 , - 4744 , - 1905 , - 746 , - 1267 , - 3468 , - 1589 , - 1390 , - 2871 , - 272 , - 5113 , - 114 , - 2555 , - 916 , - 957 , - 2678 , - 319 , - 5400 , - 641 , - 3322 , - 1923 , - 2204 , - 4165 , - 2046 , - 1607 , - 2848 , - 9 , - 4610 , - 5131 , - 1572 , - 5453 , - 5254 , - 975 , - 4136 , - 3217 , - 3978 , - 659 , - 4780 , - 4821 , - 782 , - 4183 , - 3504 , - 4505 , - 1426 , - 27 , - 308 , - 2269 , - 150 , - 5471 , - 952 , - 3873 , - 2714 , - 3235 , - 5436 , - 3557 , - 3358 , - 4839 , - 2240 , - 1321 , - 2082 , - 4523 , - 2884 , - 2925 , - 4646 , - 2287 , - 1608 , - 2609 , - 5290 , - 3891 , - 4172 , - 373 , - 4014 , - 3575 , - 4816 , - 1977 , - 818 , - 1339 , - 3540 , - 1661 , - 1462 , - 2943 , - 344 , - 5185 , - 186 , - 2627 , - 988 , - 1029 , - 2750 , - 391 , - 5472 , - 713 , - 3394 , - 1995 , - 2276 , - 4237 , - 2118 , - 1679 , - 2920 , - 81 , - 4682 , - 5203 , - 1644 , - 5525 , - 5326 , - 1047 , - 4208 , - 3289 , - 4050 , - 731 , - 4852 , - 4893 , - 854 , - 4255 , - 3576 , - 4577 , - 1498 , - 99 , - 380 , - 2341 , - 222 , - 5543 , - 1024 , - 3945 , - 2786 , - 3307 , - 5508 , - 3629 , - 3430 , - 4911 , - 2312 , - 1393 , - 2154 , - 4595 , - 2956 , - 2997 , - 4718 , - 2359 , - 1680 , - 2681 , - 5362 , - 3963 , - 4244 , - 445 , - 4086 , - 3647 , - 4888 , - 2049 , - 890 , - 1411 , - 3612 , - 1733 , - 1534 , - 3015 , - 416 , - 5257 , - 258 , - 2699 , - 1060 , - 1101 , - 2822 , - 463 , - 5544 , - 785 , - 3466 , - 2067 , - 2348 , - 4309 , - 2190 , - 1751 , - 2992 , - 153 , - 4754 , - 5275 , - 1716 , - 5597 , - 5398 , - 1119 , - 4280 , - 3361 , - 4122 , - 803 , - 4924 , - 4965 , - 926 , - 4327 , - 3648 , - 4649 , - 1570 , - 171 , - 452 , - 2413 , - 294 , - 5615 , - 1096 , - 4017 , - 2858 , - 3379 , - 5580 , - 3701 , - 3502 , - 4983 , - 2384 , - 1465 , - 2226 , - 4667 , - 3028 , - 3069 , - 4790 , - 2431 , - 1752 , - 2753 , - 5434 , - 4035 , - 4316 , - 517 , - 4158 , - 3719 , - 4960 , - 2121 , - 962 , - 1483 , - 3684 , - 1805 , - 1606 , - 3087 , - 488 , - 5329 , - 330 , - 2771 , - 1132 , - 1173 , - 2894 , - 535 , - 5616 , - 857 , - 3538 , - 2139 , - 2420 , - 4381 , - 2262 , - 1823 , - 3064 , - 225 , - 4826 , - 5347 , - 1788 , - 5669 , - 5470 , - 1191 , - 4352 , - 3433 , - 4194 , - 875 , - 4996 , - 5037 , - 998 , - 4399 , - 3720 , - 4721 , - 1642 , - 243 , - 524 , - 2485 , - 366 , - 5687 , - 1168 , - 4089 , - 2930 , - 3451 , - 5652 , - 3773 , - 3574 , - 5055 , - 2456 , - 1537 , - 2298 , - 4739 , - 3100 , - 3141 , - 4862 , - 2503 , - 1824 , - 2825 , - 5506 , - 4107 , - 4388 , - 589 , - 4230 , - 3791 , - 5032 , - 2193 , - 1034 , - 1555 , - 3756 , - 1877 , - 1678 , - 3159 , - 560 , - 5401 , - 402 , - 2843 , - 1204 , - 1245 , - 2966 , - 607 , - 5688 , - 929 , - 3610 , - 2211 , - 2492 , - 4453 , - 2334 , - 1895 , - 3136 , - 297 , - 4898 , - 5419 , - 1860 , - 5741 , - 5542 , - 1263 , - 4424 , - 3505 , - 4266 , - 947 , - 5068 , - 5109 , - 1070 , - 4471 , - 3792 , - 4793 , - 1714 , - 315 , - 596 , - 2557 , - 438 , - 5759 , - 1240 , - 4161 , - 3002 , - 3523 , - 5724 , - 3845 , - 3646 , - 5127 , - 2528 , - 1609 , - 2370 , - 4811 , - 3172 , - 3213 , - 4934 , - 2575 , - 1896 , - 2897 , - 5578 , - 4179 , - 4460 , - 661 , - 4302 , - 3863 , - 5104 , - 2265 , - 1106 , - 1627 , - 3828 , - 1949 , - 1750 , - 3231 , - 632 , - 5473 , - 474 , - 2915 , - 1276 , - 1317 , - 3038 , - 679 , - 0 , - 1683 , - 3002 , - 2501 , - 4548 , - 1863 , - 4638 , - 5593 , - 3272 , - 2043 , - 450 , - 2861 , - 1996 , - 2223 , - 2086 , - 129 , - 720 , - 2403 , - 3722 , - 3221 , - 5268 , - 2583 , - 5358 , - 489 , - 3992 , - 2763 , - 1170 , - 3581 , - 2716 , - 2943 , - 2806 , - 849 , - 1440 , - 3123 , - 4442 , - 3941 , - 164 , - 3303 , - 254 , - 1209 , - 4712 , - 3483 , - 1890 , - 4301 , - 3436 , - 3663 , - 3526 , - 1569 , - 2160 , - 3843 , - 5162 , - 4661 , - 884 , - 4023 , - 974 , - 1929 , - 5432 , - 4203 , - 2610 , - 5021 , - 4156 , - 4383 , - 4246 , - 2289 , - 2880 , - 4563 , - 58 , - 5381 , - 1604 , - 4743 , - 1694 , - 2649 , - 328 , - 4923 , - 3330 , - 5741 , - 4876 , - 5103 , - 4966 , - 3009 , - 3600 , - 5283 , - 778 , - 277 , - 2324 , - 5463 , - 2414 , - 3369 , - 1048 , - 5643 , - 4050 , - 637 , - 5596 , - 5823 , - 5686 , - 3729 , - 4320 , - 179 , - 1498 , - 997 , - 3044 , - 359 , - 3134 , - 4089 , - 1768 , - 539 , - 4770 , - 1357 , - 492 , - 719 , - 582 , - 4449 , - 5040 , - 899 , - 2218 , - 1717 , - 3764 , - 1079 , - 3854 , - 4809 , - 2488 , - 1259 , - 5490 , - 2077 , - 1212 , - 1439 , - 1302 , - 5169 , - 5760 , - 1619 , - 2938 , - 2437 , - 4484 , - 1799 , - 4574 , - 5529 , - 3208 , - 1979 , - 386 , - 2797 , - 1932 , - 2159 , - 2022 , - 65 , - 656 , - 2339 , - 3658 , - 3157 , - 5204 , - 2519 , - 5294 , - 425 , - 3928 , - 2699 , - 1106 , - 3517 , - 2652 , - 2879 , - 2742 , - 785 , - 1376 , - 3059 , - 4378 , - 3877 , - 100 , - 3239 , - 190 , - 1145 , - 4648 , - 3419 , - 1826 , - 4237 , - 3372 , - 3599 , - 3462 , - 1505 , - 2096 , - 3779 , - 5098 , - 4597 , - 820 , - 3959 , - 910 , - 1865 , - 5368 , - 4139 , - 2546 , - 4957 , - 4092 , - 4319 , - 4182 , - 2225 , - 2816 , - 4499 , - 5818 , - 5317 , - 1540 , - 4679 , - 1630 , - 2585 , - 264 , - 4859 , - 3266 , - 5677 , - 4812 , - 5039 , - 4902 , - 2945 , - 3536 , - 5219 , - 714 , - 213 , - 2260 , - 5399 , - 2350 , - 3305 , - 984 , - 5579 , - 3986 , - 573 , - 5532 , - 5759 , - 5622 , - 3665 , - 4256 , - 115 , - 1434 , - 933 , - 2980 , - 295 , - 3070 , - 4025 , - 1704 , - 475 , - 4706 , - 1293 , - 428 , - 655 , - 518 , - 4385 , - 4976 , - 835 , - 2154 , - 1653 , - 3700 , - 1015 , - 3790 , - 4745 , - 2424 , - 1195 , - 5426 , - 2013 , - 1148 , - 1375 , - 1238 , - 5105 , - 5696 , - 1555 , - 2874 , - 2373 , - 4420 , - 1735 , - 4510 , - 5465 , - 3144 , - 1915 , - 322 , - 2733 , - 1868 , - 2095 , - 1958 , - 1 , - 592 , - 2275 , - 3594 , - 3093 , - 5140 , - 2455 , - 5230 , - 361 , - 3864 , - 2635 , - 1042 , - 3453 , - 2588 , - 2815 , - 2678 , - 721 , - 1312 , - 2995 , - 4314 , - 3813 , - 36 , - 3175 , - 126 , - 1081 , - 4584 , - 3355 , - 1762 , - 4173 , - 3308 , - 3535 , - 3398 , - 1441 , - 2032 , - 3715 , - 5034 , - 4533 , - 756 , - 3895 , - 846 , - 1801 , - 5304 , - 4075 , - 2482 , - 4893 , - 4028 , - 4255 , - 4118 , - 2161 , - 2752 , - 4435 , - 5754 , - 5253 , - 1476 , - 4615 , - 1566 , - 2521 , - 200 , - 4795 , - 3202 , - 5613 , - 4748 , - 4975 , - 4838 , - 2881 , - 3472 , - 5155 , - 650 , - 149 , - 2196 , - 5335 , - 2286 , - 3241 , - 920 , - 5515 , - 3922 , - 509 , - 5468 , - 5695 , - 5558 , - 3601 , - 4192 , - 51 , - 1370 , - 869 , - 2916 , - 231 , - 3006 , - 3961 , - 1640 , - 411 , - 4642 , - 1229 , - 364 , - 591 , - 454 , - 4321 , - 4912 , - 771 , - 2090 , - 1589 , - 3636 , - 951 , - 3726 , - 4681 , - 2360 , - 1131 , - 5362 , - 1949 , - 1084 , - 1311 , - 1174 , - 5041 , - 5632 , - 1491 , - 2810 , - 2309 , - 4356 , - 1671 , - 4446 , - 5401 , - 3080 , - 1851 , - 258 , - 2669 , - 1804 , - 2031 , - 1894 , - 5761 , - 528 , - 2211 , - 3530 , - 3029 , - 5076 , - 2391 , - 5166 , - 297 , - 3800 , - 2571 , - 978 , - 3389 , - 2524 , - 2751 , - 2614 , - 657 , - 1248 , - 2931 , - 4250 , - 3749 , - 5796 , - 3111 , - 62 , - 1017 , - 4520 , - 3291 , - 1698 , - 4109 , - 3244 , - 3471 , - 3334 , - 1377 , - 1968 , - 3651 , - 4970 , - 4469 , - 692 , - 3831 , - 782 , - 1737 , - 5240 , - 4011 , - 2418 , - 4829 , - 3964 , - 4191 , - 4054 , - 2097 , - 2688 , - 4371 , - 5690 , - 5189 , - 1412 , - 4551 , - 1502 , - 2457 , - 136 , - 4731 , - 3138 , - 5549 , - 4684 , - 4911 , - 4774 , - 2817 , - 3408 , - 5091 , - 586 , - 85 , - 2132 , - 5271 , - 2222 , - 3177 , - 856 , - 5451 , - 3858 , - 445 , - 5404 , - 5631 , - 5494 , - 3537 , - 4128 , - 5811 , - 1306 , - 805 , - 2852 , - 167 , - 2942 , - 3897 , - 1576 , - 347 , - 4578 , - 1165 , - 300 , - 527 , - 390 , - 4257 , - 4848 , - 707 , - 2026 , - 1525 , - 3572 , - 887 , - 3662 , - 4617 , - 2296 , - 1067 , - 5298 , - 1885 , - 1020 , - 1247 , - 1110 , - 4977 , - 5568 , - 1427 , - 2746 , - 2245 , - 4292 , - 1607 , - 4382 , - 5337 , - 3016 , - 1787 , - 194 , - 2605 , - 1740 , - 1967 , - 1830 , - 5697 , - 464 , - 2147 , - 3466 , - 2965 , - 5012 , - 2327 , - 5102 , - 233 , - 3736 , - 2507 , - 914 , - 3325 , - 2460 , - 2687 , - 2550 , - 593 , - 1184 , - 2867 , - 4186 , - 3685 , - 5732 , - 3047 , - 5822 , - 953 , - 4456 , - 3227 , - 1634 , - 4045 , - 3180 , - 3407 , - 3270 , - 1313 , - 1904 , - 3587 , - 4906 , - 4405 , - 628 , - 3767 , - 718 , - 1673 , - 5176 , - 3947 , - 2354 , - 4765 , - 3900 , - 4127 , - 3990 , - 2033 , - 2624 , - 4307 , - 5626 , - 5125 , - 1348 , - 4487 , - 1438 , - 2393 , - 72 , - 4667 , - 3074 , - 5485 , - 4620 , - 4847 , - 4710 , - 2753 , - 3344 , - 5027 , - 522 , - 21 , - 2068 , - 5207 , - 2158 , - 3113 , - 792 , - 5387 , - 3794 , - 381 , - 5340 , - 5567 , - 5430 , - 3473 , - 4064 , - 5747 , - 1242 , - 741 , - 2788 , - 103 , - 2878 , - 3833 , - 1512 , - 283 , - 4514 , - 1101 , - 236 , - 463 , - 326 , - 4193 , - 4784 , - 643 , - 1962 , - 1461 , - 3508 , - 823 , - 3598 , - 4553 , - 2232 , - 1003 , - 5234 , - 1821 , - 956 , - 1183 , - 1046 , - 4913 , - 5504 , - 1363 , - 2682 , - 2181 , - 4228 , - 1543 , - 4318 , - 5273 , - 2952 , - 1723 , - 130 , - 2541 , - 1676 , - 1903 , - 1766 , - 5633 , - 400 , - 2083 , - 3402 , - 2901 , - 4948 , - 2263 , - 5038 , - 169 , - 3672 , - 2443 , - 850 , - 3261 , - 2396 , - 2623 , - 2486 , - 529 , - 1120 , - 2803 , - 4122 , - 3621 , - 5668 , - 2983 , - 5758 , - 889 , - 4392 , - 3163 , - 1570 , - 3981 , - 3116 , - 3343 , - 3206 , - 1249 , - 1840 , - 3523 , - 4842 , - 4341 , - 564 , - 3703 , - 654 , - 1609 , - 5112 , - 3883 , - 2290 , - 4701 , - 3836 , - 4063 , - 3926 , - 1969 , - 2560 , - 4243 , - 5562 , - 5061 , - 1284 , - 4423 , - 1374 , - 2329 , - 8 , - 4603 , - 3010 , - 5421 , - 4556 , - 4783 , - 4646 , - 2689 , - 3280 , - 4963 , - 458 , - 5781 , - 2004 , - 5143 , - 2094 , - 3049 , - 728 , - 5323 , - 3730 , - 317 , - 5276 , - 5503 , - 5366 , - 3409 , - 4000 , - 5683 , - 1178 , - 677 , - 2724 , - 39 , - 2814 , - 3769 , - 1448 , - 219 , - 4450 , - 1037 , - 172 , - 399 , - 262 , - 4129 , - 4720 , - 579 , - 1898 , - 1397 , - 3444 , - 759 , - 3534 , - 4489 , - 2168 , - 939 , - 5170 , - 1757 , - 892 , - 1119 , - 982 , - 4849 , - 5440 , - 1299 , - 2618 , - 2117 , - 4164 , - 1479 , - 4254 , - 5209 , - 2888 , - 1659 , - 66 , - 2477 , - 1612 , - 1839 , - 1702 , - 5569 , - 336 , - 2019 , - 3338 , - 2837 , - 4884 , - 2199 , - 4974 , - 105 , - 3608 , - 2379 , - 786 , - 3197 , - 2332 , - 2559 , - 2422 , - 465 , - 1056 , - 2739 , - 4058 , - 3557 , - 5604 , - 2919 , - 5694 , - 825 , - 4328 , - 3099 , - 1506 , - 3917 , - 3052 , - 3279 , - 3142 , - 1185 , - 1776 , - 3459 , - 4778 , - 4277 , - 500 , - 3639 , - 590 , - 1545 , - 5048 , - 3819 , - 2226 , - 4637 , - 3772 , - 3999 , - 3862 , - 1905 , - 2496 , - 4179 , - 5498 , - 4997 , - 1220 , - 4359 , - 1310 , - 2265 , - 5768 , - 4539 , - 2946 , - 5357 , - 4492 , - 4719 , - 4582 , - 2625 , - 3216 , - 4899 , - 394 , - 5717 , - 1940 , - 5079 , - 2030 , - 2985 , - 664 , - 5259 , - 3666 , - 253 , - 5212 , - 5439 , - 5302 , - 3345 , - 3936 , - 5619 , - 1114 , - 613 , - 2660 , - 5799 , - 2750 , - 3705 , - 1384 , - 155 , - 4386 , - 973 , - 108 , - 335 , - 198 , - 4065 , - 4656 , - 515 , - 1834 , - 1333 , - 3380 , - 695 , - 3470 , - 4425 , - 2104 , - 875 , - 5106 , - 1693 , - 828 , - 1055 , - 918 , - 4785 , - 5376 , - 1235 , - 2554 , - 2053 , - 4100 , - 1415 , - 4190 , - 5145 , - 2824 , - 1595 , - 2 , - 2413 , - 1548 , - 1775 , - 1638 , - 5505 , - 272 , - 1955 , - 3274 , - 2773 , - 4820 , - 2135 , - 4910 , - 41 , - 3544 , - 2315 , - 722 , - 3133 , - 2268 , - 2495 , - 2358 , - 401 , - 992 , - 2675 , - 3994 , - 3493 , - 5540 , - 2855 , - 5630 , - 761 , - 4264 , - 3035 , - 1442 , - 3853 , - 2988 , - 3215 , - 3078 , - 1121 , - 1712 , - 3395 , - 4714 , - 4213 , - 436 , - 3575 , - 526 , - 1481 , - 4984 , - 3755 , - 2162 , - 4573 , - 3708 , - 3935 , - 3798 , - 1841 , - 2432 , - 4115 , - 5434 , - 4933 , - 1156 , - 4295 , - 1246 , - 2201 , - 5704 , - 4475 , - 2882 , - 5293 , - 4428 , - 4655 , - 4518 , - 2561 , - 3152 , - 4835 , - 330 , - 5653 , - 1876 , - 5015 , - 1966 , - 2921 , - 600 , - 5195 , - 3602 , - 189 , - 5148 , - 5375 , - 5238 , - 3281 , - 3872 , - 5555 , - 1050 , - 549 , - 2596 , - 5735 , - 2686 , - 3641 , - 1320 , - 91 , - 4322 , - 909 , - 44 , - 271 , - 134 , - 4001 , - 4592 , - 451 , - 1770 , - 1269 , - 3316 , - 631 , - 3406 , - 4361 , - 2040 , - 811 , - 5042 , - 1629 , - 764 , - 991 , - 854 , - 4721 , - 5312 , - 1171 , - 2490 , - 1989 , - 4036 , - 1351 , - 4126 , - 5081 , - 2760 , - 1531 , - 5762 , - 2349 , - 1484 , - 1711 , - 1574 , - 5441 , - 208 , - 1891 , - 3210 , - 2709 , - 4756 , - 2071 , - 4846 , - 5801 , - 3480 , - 2251 , - 658 , - 3069 , - 2204 , - 2431 , - 2294 , - 337 , - 928 , - 2611 , - 3930 , - 3429 , - 5476 , - 2791 , - 5566 , - 697 , - 4200 , - 2971 , - 1378 , - 3789 , - 2924 , - 3151 , - 3014 , - 1057 , - 1648 , - 3331 , - 4650 , - 4149 , - 372 , - 3511 , - 462 , - 1417 , - 4920 , - 3691 , - 2098 , - 4509 , - 3644 , - 3871 , - 3734 , - 1777 , - 2368 , - 4051 , - 5370 , - 4869 , - 1092 , - 4231 , - 1182 , - 2137 , - 5640 , - 4411 , - 2818 , - 5229 , - 4364 , - 4591 , - 4454 , - 2497 , - 3088 , - 4771 , - 266 , - 5589 , - 1812 , - 4951 , - 1902 , - 2857 , - 536 , - 5131 , - 3538 , - 125 , - 5084 , - 5311 , - 5174 , - 3217 , - 3808 , - 5491 , - 986 , - 485 , - 2532 , - 5671 , - 2622 , - 3577 , - 1256 , - 27 , - 4258 , - 845 , - 5804 , - 207 , - 70 , - 3937 , - 4528 , - 387 , - 1706 , - 1205 , - 3252 , - 567 , - 3342 , - 4297 , - 1976 , - 747 , - 4978 , - 1565 , - 700 , - 927 , - 790 , - 4657 , - 5248 , - 1107 , - 2426 , - 1925 , - 3972 , - 1287 , - 4062 , - 5017 , - 2696 , - 1467 , - 5698 , - 2285 , - 1420 , - 1647 , - 1510 , - 5377 , - 144 , - 1827 , - 3146 , - 2645 , - 4692 , - 2007 , - 4782 , - 5737 , - 3416 , - 2187 , - 594 , - 3005 , - 2140 , - 2367 , - 2230 , - 273 , - 864 , - 2547 , - 3866 , - 3365 , - 5412 , - 2727 , - 5502 , - 633 , - 4136 , - 2907 , - 1314 , - 3725 , - 2860 , - 3087 , - 2950 , - 993 , - 1584 , - 3267 , - 4586 , - 4085 , - 308 , - 3447 , - 398 , - 1353 , - 4856 , - 3627 , - 2034 , - 4445 , - 3580 , - 3807 , - 3670 , - 1713 , - 2304 , - 3987 , - 5306 , - 4805 , - 1028 , - 4167 , - 1118 , - 2073 , - 5576 , - 4347 , - 2754 , - 5165 , - 4300 , - 4527 , - 4390 , - 2433 , - 3024 , - 4707 , - 202 , - 5525 , - 1748 , - 4887 , - 1838 , - 2793 , - 472 , - 5067 , - 3474 , - 61 , - 5020 , - 5247 , - 5110 , - 3153 , - 3744 , - 5427 , - 922 , - 421 , - 2468 , - 5607 , - 2558 , - 3513 , - 1192 , - 5787 , - 4194 , - 781 , - 5740 , - 143 , - 6 , - 3873 , - 4464 , - 323 , - 1642 , - 1141 , - 3188 , - 503 , - 3278 , - 4233 , - 1912 , - 683 , - 4914 , - 1501 , - 636 , - 863 , - 726 , - 4593 , - 5184 , - 1043 , - 2362 , - 1861 , - 3908 , - 1223 , - 3998 , - 4953 , - 2632 , - 1403 , - 5634 , - 2221 , - 1356 , - 1583 , - 1446 , - 5313 , - 80 , - 1763 , - 3082 , - 2581 , - 4628 , - 1943 , - 4718 , - 5673 , - 3352 , - 2123 , - 530 , - 2941 , - 2076 , - 2303 , - 2166 , - 209 , - 800 , - 2483 , - 3802 , - 3301 , - 5348 , - 2663 , - 5438 , - 569 , - 4072 , - 2843 , - 1250 , - 3661 , - 2796 , - 3023 , - 2886 , - 929 , - 1520 , - 3203 , - 4522 , - 4021 , - 244 , - 3383 , - 334 , - 1289 , - 4792 , - 3563 , - 1970 , - 4381 , - 3516 , - 3743 , - 3606 , - 1649 , - 2240 , - 3923 , - 5242 , - 4741 , - 964 , - 4103 , - 1054 , - 2009 , - 5512 , - 4283 , - 2690 , - 5101 , - 4236 , - 4463 , - 4326 , - 2369 , - 2960 , - 4643 , - 138 , - 5461 , - 1684 , - 4823 , - 1774 , - 2729 , - 408 , - 5003 , - 3410 , - 5821 , - 4956 , - 5183 , - 5046 , - 3089 , - 3680 , - 5363 , - 858 , - 357 , - 2404 , - 5543 , - 2494 , - 3449 , - 1128 , - 5723 , - 4130 , - 717 , - 5676 , - 79 , - 5766 , - 3809 , - 4400 , - 259 , - 1578 , - 1077 , - 3124 , - 439 , - 3214 , - 4169 , - 1848 , - 619 , - 4850 , - 1437 , - 572 , - 799 , - 662 , - 4529 , - 5120 , - 979 , - 2298 , - 1797 , - 3844 , - 1159 , - 3934 , - 4889 , - 2568 , - 1339 , - 5570 , - 2157 , - 1292 , - 1519 , - 1382 , - 5249 , - 16 , - 1699 , - 3018 , - 2517 , - 4564 , - 1879 , - 4654 , - 5609 , - 3288 , - 2059 , - 466 , - 2877 , - 2012 , - 2239 , - 2102 , - 145 , - 736 , - 2419 , - 3738 , - 3237 , - 5284 , - 2599 , - 5374 , - 505 , - 4008 , - 2779 , - 1186 , - 3597 , - 2732 , - 2959 , - 2822 , - 865 , - 1456 , - 3139 , - 4458 , - 3957 , - 180 , - 3319 , - 270 , - 1225 , - 4728 , - 3499 , - 1906 , - 4317 , - 3452 , - 3679 , - 3542 , - 1585 , - 2176 , - 3859 , - 5178 , - 4677 , - 900 , - 4039 , - 990 , - 1945 , - 5448 , - 4219 , - 2626 , - 5037 , - 4172 , - 4399 , - 4262 , - 2305 , - 2896 , - 4579 , - 74 , - 5397 , - 1620 , - 4759 , - 1710 , - 2665 , - 344 , - 4939 , - 3346 , - 5757 , - 4892 , - 5119 , - 4982 , - 3025 , - 3616 , - 5299 , - 794 , - 293 , - 2340 , - 5479 , - 2430 , - 3385 , - 1064 , - 5659 , - 4066 , - 653 , - 5612 , - 15 , - 5702 , - 3745 , - 4336 , - 195 , - 1514 , - 1013 , - 3060 , - 375 , - 3150 , - 4105 , - 1784 , - 555 , - 4786 , - 1373 , - 508 , - 735 , - 598 , - 4465 , - 5056 , - 915 , - 2234 , - 1733 , - 3780 , - 1095 , - 3870 , - 4825 , - 2504 , - 1275 , - 5506 , - 2093 , - 1228 , - 1455 , - 1318 , - 5185 , - 5776 , - 1635 , - 2954 , - 2453 , - 4500 , - 1815 , - 4590 , - 5545 , - 3224 , - 1995 , - 402 , - 2813 , - 1948 , - 2175 , - 2038 , - 81 , - 672 , - 2355 , - 3674 , - 3173 , - 5220 , - 2535 , - 5310 , - 441 , - 3944 , - 2715 , - 1122 , - 3533 , - 2668 , - 2895 , - 2758 , - 801 , - 1392 , - 3075 , - 4394 , - 3893 , - 116 , - 3255 , - 206 , - 1161 , - 4664 , - 3435 , - 1842 , - 4253 , - 3388 , - 3615 , - 3478 , - 1521 , - 2112 , - 3795 , - 5114 , - 4613 , - 836 , - 3975 , - 926 , - 1881 , - 5384 , - 4155 , - 2562 , - 4973 , - 4108 , - 4335 , - 4198 , - 2241 , - 2832 , - 4515 , - 10 , - 5333 , - 1556 , - 4695 , - 1646 , - 2601 , - 280 , - 4875 , - 3282 , - 5693 , - 4828 , - 5055 , - 4918 , - 2961 , - 3552 , - 5235 , - 730 , - 229 , - 2276 , - 5415 , - 2366 , - 3321 , - 1000 , - 5595 , - 4002 , - 589 , - 5548 , - 5775 , - 5638 , - 3681 , - 4272 , - 131 , - 1450 , - 949 , - 2996 , - 311 , - 3086 , - 4041 , - 1720 , - 491 , - 4722 , - 1309 , - 444 , - 671 , - 534 , - 4401 , - 4992 , - 851 , - 2170 , - 1669 , - 3716 , - 1031 , - 3806 , - 4761 , - 2440 , - 1211 , - 5442 , - 2029 , - 1164 , - 1391 , - 1254 , - 5121 , - 5712 , - 1571 , - 2890 , - 2389 , - 4436 , - 1751 , - 4526 , - 5481 , - 3160 , - 1931 , - 338 , - 2749 , - 1884 , - 2111 , - 1974 , - 17 , - 608 , - 2291 , - 3610 , - 3109 , - 5156 , - 2471 , - 5246 , - 377 , - 3880 , - 2651 , - 1058 , - 3469 , - 2604 , - 2831 , - 2694 , - 737 , - 1328 , - 3011 , - 4330 , - 3829 , - 52 , - 3191 , - 142 , - 1097 , - 4600 , - 3371 , - 1778 , - 4189 , - 3324 , - 3551 , - 3414 , - 1457 , - 2048 , - 3731 , - 5050 , - 4549 , - 772 , - 3911 , - 862 , - 1817 , - 5320 , - 4091 , - 2498 , - 4909 , - 4044 , - 4271 , - 4134 , - 2177 , - 2768 , - 4451 , - 5770 , - 5269 , - 1492 , - 4631 , - 1582 , - 2537 , - 216 , - 4811 , - 3218 , - 5629 , - 4764 , - 4991 , - 4854 , - 2897 , - 3488 , - 5171 , - 666 , - 165 , - 2212 , - 5351 , - 2302 , - 3257 , - 936 , - 5531 , - 3938 , - 525 , - 5484 , - 5711 , - 5574 , - 3617 , - 4208 , - 67 , - 1386 , - 885 , - 2932 , - 247 , - 3022 , - 3977 , - 1656 , - 427 , - 4658 , - 1245 , - 380 , - 607 , - 470 , - 4337 , - 4928 , - 787 , - 2106 , - 1605 , - 3652 , - 967 , - 3742 , - 4697 , - 2376 , - 1147 , - 5378 , - 1965 , - 1100 , - 1327 , - 1190 , - 5057 , - 5648 , - 1507 , - 2826 , - 2325 , - 4372 , - 1687 , - 4462 , - 5417 , - 3096 , - 1867 , - 274 , - 2685 , - 1820 , - 2047 , - 1910 , - 5777 , - 544 , - 2227 , - 3546 , - 3045 , - 5092 , - 2407 , - 5182 , - 313 , - 3816 , - 2587 , - 994 , - 3405 , - 2540 , - 2767 , - 2630 , - 673 , - 1264 , - 2947 , - 4266 , - 3765 , - 5812 , - 3127 , - 78 , - 1033 , - 4536 , - 3307 , - 1714 , - 4125 , - 3260 , - 3487 , - 3350 , - 1393 , - 1984 , - 3667 , - 4986 , - 4485 , - 708 , - 3847 , - 798 , - 1753 , - 5256 , - 4027 , - 2434 , - 4845 , - 3980 , - 4207 , - 4070 , - 2113 , - 2704 , - 4387 , - 5706 , - 5205 , - 1428 , - 4567 , - 1518 , - 2473 , - 152 , - 4747 , - 3154 , - 5565 , - 4700 , - 4927 , - 4790 , - 2833 , - 3424 , - 5107 , - 602 , - 101 , - 2148 , - 5287 , - 2238 , - 3193 , - 872 , - 5467 , - 3874 , - 461 , - 5420 , - 5647 , - 5510 , - 3553 , - 4144 , - 3 , - 1322 , - 821 , - 2868 , - 183 , - 2958 , - 3913 , - 1592 , - 363 , - 4594 , - 1181 , - 316 , - 543 , - 406 , - 4273 , - 4864 , - 723 , - 2042 , - 1541 , - 3588 , - 903 , - 3678 , - 4633 , - 2312 , - 1083 , - 5314 , - 1901 , - 1036 , - 1263 , - 1126 , - 4993 , - 5584 , - 1443 , - 2762 , - 2261 , - 4308 , - 1623 , - 4398 , - 5353 , - 3032 , - 1803 , - 210 , - 2621 , - 1756 , - 1983 , - 1846 , - 5713 , - 480 , - 2163 , - 3482 , - 2981 , - 5028 , - 2343 , - 5118 , - 249 , - 3752 , - 2523 , - 930 , - 3341 , - 2476 , - 2703 , - 2566 , - 609 , - 1200 , - 2883 , - 4202 , - 3701 , - 5748 , - 3063 , - 14 , - 969 , - 4472 , - 3243 , - 1650 , - 4061 , - 3196 , - 3423 , - 3286 , - 1329 , - 1920 , - 3603 , - 4922 , - 4421 , - 644 , - 3783 , - 734 , - 1689 , - 5192 , - 3963 , - 2370 , - 4781 , - 3916 , - 4143 , - 4006 , - 2049 , - 2640 , - 4323 , - 5642 , - 5141 , - 1364 , - 4503 , - 1454 , - 2409 , - 88 , - 4683 , - 3090 , - 5501 , - 4636 , - 4863 , - 4726 , - 2769 , - 3360 , - 5043 , - 538 , - 37 , - 2084 , - 5223 , - 2174 , - 3129 , - 808 , - 5403 , - 3810 , - 397 , - 5356 , - 5583 , - 5446 , - 3489 , - 4080 , - 5763 , - 1258 , - 757 , - 2804 , - 119 , - 2894 , - 3849 , - 1528 , - 299 , - 4530 , - 1117 , - 252 , - 479 , - 342 , - 4209 , - 4800 , - 659 , - 1978 , - 1477 , - 3524 , - 839 , - 3614 , - 4569 , - 2248 , - 1019 , - 5250 , - 1837 , - 972 , - 1199 , - 1062 , - 4929 , - 5520 , - 1379 , - 2698 , - 2197 , - 4244 , - 1559 , - 4334 , - 5289 , - 2968 , - 1739 , - 146 , - 2557 , - 1692 , - 1919 , - 1782 , - 5649 , - 416 , - 2099 , - 3418 , - 2917 , - 4964 , - 2279 , - 5054 , - 185 , - 3688 , - 2459 , - 866 , - 3277 , - 2412 , - 2639 , - 2502 , - 545 , - 1136 , - 2819 , - 4138 , - 3637 , - 5684 , - 2999 , - 5774 , - 905 , - 4408 , - 3179 , - 1586 , - 3997 , - 3132 , - 3359 , - 3222 , - 1265 , - 1856 , - 3539 , - 4858 , - 4357 , - 580 , - 3719 , - 670 , - 1625 , - 5128 , - 3899 , - 2306 , - 4717 , - 3852 , - 4079 , - 3942 , - 1985 , - 2576 , - 4259 , - 5578 , - 5077 , - 1300 , - 4439 , - 1390 , - 2345 , - 24 , - 4619 , - 3026 , - 5437 , - 4572 , - 4799 , - 4662 , - 2705 , - 3296 , - 4979 , - 474 , - 5797 , - 2020 , - 5159 , - 2110 , - 3065 , - 744 , - 5339 , - 3746 , - 333 , - 5292 , - 5519 , - 5382 , - 3425 , - 4016 , - 5699 , - 1194 , - 693 , - 2740 , - 55 , - 2830 , - 3785 , - 1464 , - 235 , - 4466 , - 1053 , - 188 , - 415 , - 278 , - 4145 , - 4736 , - 595 , - 1914 , - 1413 , - 3460 , - 775 , - 3550 , - 4505 , - 2184 , - 955 , - 5186 , - 1773 , - 908 , - 1135 , - 998 , - 4865 , - 5456 , - 1315 , - 2634 , - 2133 , - 4180 , - 1495 , - 4270 , - 5225 , - 2904 , - 1675 , - 82 , - 2493 , - 1628 , - 1855 , - 1718 , - 5585 , - 352 , - 2035 , - 3354 , - 2853 , - 4900 , - 2215 , - 4990 , - 121 , - 3624 , - 2395 , - 802 , - 3213 , - 2348 , - 2575 , - 2438 , - 481 , - 1072 , - 2755 , - 4074 , - 3573 , - 5620 , - 2935 , - 5710 , - 841 , - 4344 , - 3115 , - 1522 , - 3933 , - 3068 , - 3295 , - 3158 , - 1201 , - 1792 , - 3475 , - 4794 , - 4293 , - 516 , - 3655 , - 606 , - 1561 , - 5064 , - 3835 , - 2242 , - 4653 , - 3788 , - 4015 , - 3878 , - 1921 , - 2512 , - 4195 , - 5514 , - 5013 , - 1236 , - 4375 , - 1326 , - 2281 , - 5784 , - 4555 , - 2962 , - 5373 , - 4508 , - 4735 , - 4598 , - 2641 , - 3232 , - 4915 , - 410 , - 5733 , - 1956 , - 5095 , - 2046 , - 3001 , - 680 , - 5275 , - 3682 , - 269 , - 5228 , - 5455 , - 5318 , - 3361 , - 3952 , - 5635 , - 1130 , - 629 , - 2676 , - 5815 , - 2766 , - 3721 , - 1400 , - 171 , - 4402 , - 989 , - 124 , - 351 , - 214 , - 4081 , - 4672 , - 531 , - 1850 , - 1349 , - 3396 , - 711 , - 3486 , - 4441 , - 2120 , - 891 , - 5122 , - 1709 , - 844 , - 1071 , - 934 , - 4801 , - 5392 , - 1251 , - 2570 , - 2069 , - 4116 , - 1431 , - 4206 , - 5161 , - 2840 , - 1611 , - 18 , - 2429 , - 1564 , - 1791 , - 1654 , - 5521 , - 288 , - 1971 , - 3290 , - 2789 , - 4836 , - 2151 , - 4926 , - 57 , - 3560 , - 2331 , - 738 , - 3149 , - 2284 , - 2511 , - 2374 , - 417 , - 1008 , - 2691 , - 4010 , - 3509 , - 5556 , - 2871 , - 5646 , - 777 , - 4280 , - 3051 , - 1458 , - 3869 , - 3004 , - 3231 , - 3094 , - 1137 , - 1728 , - 3411 , - 4730 , - 4229 , - 452 , - 3591 , - 542 , - 1497 , - 5000 , - 3771 , - 2178 , - 4589 , - 3724 , - 3951 , - 3814 , - 1857 , - 2448 , - 4131 , - 5450 , - 4949 , - 1172 , - 4311 , - 1262 , - 2217 , - 5720 , - 4491 , - 2898 , - 5309 , - 4444 , - 4671 , - 4534 , - 2577 , - 3168 , - 4851 , - 346 , - 5669 , - 1892 , - 5031 , - 1982 , - 2937 , - 616 , - 5211 , - 3618 , - 205 , - 5164 , - 5391 , - 5254 , - 3297 , - 3888 , - 5571 , - 1066 , - 565 , - 2612 , - 5751 , - 2702 , - 3657 , - 1336 , - 107 , - 4338 , - 925 , - 60 , - 287 , - 150 , - 4017 , - 4608 , - 467 , - 1786 , - 1285 , - 3332 , - 647 , - 3422 , - 4377 , - 2056 , - 827 , - 5058 , - 1645 , - 780 , - 1007 , - 870 , - 4737 , - 5328 , - 1187 , - 2506 , - 2005 , - 4052 , - 1367 , - 4142 , - 5097 , - 2776 , - 1547 , - 5778 , - 2365 , - 1500 , - 1727 , - 1590 , - 5457 , - 224 , - 1907 , - 3226 , - 2725 , - 4772 , - 2087 , - 4862 , - 5817 , - 3496 , - 2267 , - 674 , - 3085 , - 2220 , - 2447 , - 2310 , - 353 , - 944 , - 2627 , - 3946 , - 3445 , - 5492 , - 2807 , - 5582 , - 713 , - 4216 , - 2987 , - 1394 , - 3805 , - 2940 , - 3167 , - 3030 , - 1073 , - 1664 , - 3347 , - 4666 , - 4165 , - 388 , - 3527 , - 478 , - 1433 , - 4936 , - 3707 , - 2114 , - 4525 , - 3660 , - 3887 , - 3750 , - 1793 , - 2384 , - 4067 , - 5386 , - 4885 , - 1108 , - 4247 , - 1198 , - 2153 , - 5656 , - 4427 , - 2834 , - 5245 , - 4380 , - 4607 , - 4470 , - 2513 , - 3104 , - 4787 , - 282 , - 5605 , - 1828 , - 4967 , - 1918 , - 2873 , - 552 , - 5147 , - 3554 , - 141 , - 5100 , - 5327 , - 5190 , - 3233 , - 3824 , - 5507 , - 1002 , - 501 , - 2548 , - 5687 , - 2638 , - 3593 , - 1272 , - 43 , - 4274 , - 861 , - 5820 , - 223 , - 86 , - 3953 , - 4544 , - 403 , - 1722 , - 1221 , - 3268 , - 583 , - 3358 , - 4313 , - 1992 , - 763 , - 4994 , - 1581 , - 716 , - 943 , - 806 , - 4673 , - 5264 , - 1123 , - 2442 , - 1941 , - 3988 , - 1303 , - 4078 , - 5033 , - 2712 , - 1483 , - 5714 , - 2301 , - 1436 , - 1663 , - 1526 , - 5393 , - 160 , - 1843 , - 3162 , - 2661 , - 4708 , - 2023 , - 4798 , - 5753 , - 3432 , - 2203 , - 610 , - 3021 , - 2156 , - 2383 , - 2246 , - 289 , - 880 , - 2563 , - 3882 , - 3381 , - 5428 , - 2743 , - 5518 , - 649 , - 4152 , - 2923 , - 1330 , - 3741 , - 2876 , - 3103 , - 2966 , - 1009 , - 1600 , - 3283 , - 4602 , - 4101 , - 324 , - 3463 , - 414 , - 1369 , - 4872 , - 3643 , - 2050 , - 4461 , - 3596 , - 3823 , - 3686 , - 1729 , - 2320 , - 4003 , - 5322 , - 4821 , - 1044 , - 4183 , - 1134 , - 2089 , - 5592 , - 4363 , - 2770 , - 5181 , - 4316 , - 4543 , - 4406 , - 2449 , - 3040 , - 4723 , - 218 , - 5541 , - 1764 , - 4903 , - 1854 , - 2809 , - 488 , - 5083 , - 3490 , - 77 , - 5036 , - 5263 , - 5126 , - 3169 , - 3760 , - 5443 , - 938 , - 437 , - 2484 , - 5623 , - 2574 , - 3529 , - 1208 , - 5803 , - 4210 , - 797 , - 5756 , - 159 , - 22 , - 3889 , - 4480 , - 339 , - 1658 , - 1157 , - 3204 , - 519 , - 3294 , - 4249 , - 1928 , - 699 , - 4930 , - 1517 , - 652 , - 879 , - 742 , - 4609 , - 5200 , - 1059 , - 2378 , - 1877 , - 3924 , - 1239 , - 4014 , - 4969 , - 2648 , - 1419 , - 5650 , - 2237 , - 1372 , - 1599 , - 1462 , - 5329 , - 96 , - 1779 , - 3098 , - 2597 , - 4644 , - 1959 , - 4734 , - 5689 , - 3368 , - 2139 , - 546 , - 2957 , - 2092 , - 2319 , - 2182 , - 225 , - 816 , - 2499 , - 3818 , - 3317 , - 5364 , - 2679 , - 5454 , - 585 , - 4088 , - 2859 , - 1266 , - 3677 , - 2812 , - 3039 , - 2902 , - 945 , - 1536 , - 3219 , - 4538 , - 4037 , - 260 , - 3399 , - 350 , - 1305 , - 4808 , - 3579 , - 1986 , - 4397 , - 3532 , - 3759 , - 3622 , - 1665 , - 2256 , - 3939 , - 5258 , - 4757 , - 980 , - 4119 , - 1070 , - 2025 , - 5528 , - 4299 , - 2706 , - 5117 , - 4252 , - 4479 , - 4342 , - 2385 , - 2976 , - 4659 , - 154 , - 5477 , - 1700 , - 4839 , - 1790 , - 2745 , - 424 , - 5019 , - 3426 , - 13 , - 4972 , - 5199 , - 5062 , - 3105 , - 3696 , - 5379 , - 874 , - 373 , - 2420 , - 5559 , - 2510 , - 3465 , - 1144 , - 5739 , - 4146 , - 733 , - 5692 , - 95 , - 5782 , - 3825 , - 4416 , - 275 , - 1594 , - 1093 , - 3140 , - 455 , - 3230 , - 4185 , - 1864 , - 635 , - 4866 , - 1453 , - 588 , - 815 , - 678 , - 4545 , - 5136 , - 995 , - 2314 , - 1813 , - 3860 , - 1175 , - 3950 , - 4905 , - 2584 , - 1355 , - 5586 , - 2173 , - 1308 , - 1535 , - 1398 , - 5265 , - 32 , - 1715 , - 3034 , - 2533 , - 4580 , - 1895 , - 4670 , - 5625 , - 3304 , - 2075 , - 482 , - 2893 , - 2028 , - 2255 , - 2118 , - 161 , - 752 , - 2435 , - 3754 , - 3253 , - 5300 , - 2615 , - 5390 , - 521 , - 4024 , - 2795 , - 1202 , - 3613 , - 2748 , - 2975 , - 2838 , - 881 , - 1472 , - 3155 , - 4474 , - 3973 , - 196 , - 3335 , - 286 , - 1241 , - 4744 , - 3515 , - 1922 , - 4333 , - 3468 , - 3695 , - 3558 , - 1601 , - 2192 , - 3875 , - 5194 , - 4693 , - 916 , - 4055 , - 1006 , - 1961 , - 5464 , - 4235 , - 2642 , - 5053 , - 4188 , - 4415 , - 4278 , - 2321 , - 2912 , - 4595 , - 90 , - 5413 , - 1636 , - 4775 , - 1726 , - 2681 , - 360 , - 4955 , - 3362 , - 5773 , - 4908 , - 5135 , - 4998 , - 3041 , - 3632 , - 5315 , - 810 , - 309 , - 2356 , - 5495 , - 2446 , - 3401 , - 1080 , - 5675 , - 4082 , - 669 , - 5628 , - 31 , - 5718 , - 3761 , - 4352 , - 211 , - 1530 , - 1029 , - 3076 , - 391 , - 3166 , - 4121 , - 1800 , - 571 , - 4802 , - 1389 , - 524 , - 751 , - 614 , - 4481 , - 5072 , - 931 , - 2250 , - 1749 , - 3796 , - 1111 , - 3886 , - 4841 , - 2520 , - 1291 , - 5522 , - 2109 , - 1244 , - 1471 , - 1334 , - 5201 , - 5792 , - 1651 , - 2970 , - 2469 , - 4516 , - 1831 , - 4606 , - 5561 , - 3240 , - 2011 , - 418 , - 2829 , - 1964 , - 2191 , - 2054 , - 97 , - 688 , - 2371 , - 3690 , - 3189 , - 5236 , - 2551 , - 5326 , - 457 , - 3960 , - 2731 , - 1138 , - 3549 , - 2684 , - 2911 , - 2774 , - 817 , - 1408 , - 3091 , - 4410 , - 3909 , - 132 , - 3271 , - 222 , - 1177 , - 4680 , - 3451 , - 1858 , - 4269 , - 3404 , - 3631 , - 3494 , - 1537 , - 2128 , - 3811 , - 5130 , - 4629 , - 852 , - 3991 , - 942 , - 1897 , - 5400 , - 4171 , - 2578 , - 4989 , - 4124 , - 4351 , - 4214 , - 2257 , - 2848 , - 4531 , - 26 , - 5349 , - 1572 , - 4711 , - 1662 , - 2617 , - 296 , - 4891 , - 3298 , - 5709 , - 4844 , - 5071 , - 4934 , - 2977 , - 3568 , - 5251 , - 746 , - 245 , - 2292 , - 5431 , - 2382 , - 3337 , - 1016 , - 5611 , - 4018 , - 605 , - 5564 , - 5791 , - 5654 , - 3697 , - 4288 , - 147 , - 1466 , - 965 , - 3012 , - 327 , - 3102 , - 4057 , - 1736 , - 507 , - 4738 , - 1325 , - 460 , - 687 , - 550 , - 4417 , - 5008 , - 867 , - 2186 , - 1685 , - 3732 , - 1047 , - 3822 , - 4777 , - 2456 , - 1227 , - 5458 , - 2045 , - 1180 , - 1407 , - 1270 , - 5137 , - 5728 , - 1587 , - 2906 , - 2405 , - 4452 , - 1767 , - 4542 , - 5497 , - 3176 , - 1947 , - 354 , - 2765 , - 1900 , - 2127 , - 1990 , - 33 , - 624 , - 2307 , - 3626 , - 3125 , - 5172 , - 2487 , - 5262 , - 393 , - 3896 , - 2667 , - 1074 , - 3485 , - 2620 , - 2847 , - 2710 , - 753 , - 1344 , - 3027 , - 4346 , - 3845 , - 68 , - 3207 , - 158 , - 1113 , - 4616 , - 3387 , - 1794 , - 4205 , - 3340 , - 3567 , - 3430 , - 1473 , - 2064 , - 3747 , - 5066 , - 4565 , - 788 , - 3927 , - 878 , - 1833 , - 5336 , - 4107 , - 2514 , - 4925 , - 4060 , - 4287 , - 4150 , - 2193 , - 2784 , - 4467 , - 5786 , - 5285 , - 1508 , - 4647 , - 1598 , - 2553 , - 232 , - 4827 , - 3234 , - 5645 , - 4780 , - 5007 , - 4870 , - 2913 , - 3504 , - 5187 , - 682 , - 181 , - 2228 , - 5367 , - 2318 , - 3273 , - 952 , - 5547 , - 3954 , - 541 , - 5500 , - 5727 , - 5590 , - 3633 , - 4224 , - 83 , - 1402 , - 901 , - 2948 , - 263 , - 3038 , - 3993 , - 1672 , - 443 , - 4674 , - 1261 , - 396 , - 623 , - 486 , - 4353 , - 4944 , - 803 , - 2122 , - 1621 , - 3668 , - 983 , - 3758 , - 4713 , - 2392 , - 1163 , - 5394 , - 1981 , - 1116 , - 1343 , - 1206 , - 5073 , - 5664 , - 1523 , - 2842 , - 2341 , - 4388 , - 1703 , - 4478 , - 5433 , - 3112 , - 1883 , - 290 , - 2701 , - 1836 , - 2063 , - 1926 , - 5793 , - 560 , - 2243 , - 3562 , - 3061 , - 5108 , - 2423 , - 5198 , - 329 , - 3832 , - 2603 , - 1010 , - 3421 , - 2556 , - 2783 , - 2646 , - 689 , - 1280 , - 2963 , - 4282 , - 3781 , - 4 , - 3143 , - 94 , - 1049 , - 4552 , - 3323 , - 1730 , - 4141 , - 3276 , - 3503 , - 3366 , - 1409 , - 2000 , - 3683 , - 5002 , - 4501 , - 724 , - 3863 , - 814 , - 1769 , - 5272 , - 4043 , - 2450 , - 4861 , - 3996 , - 4223 , - 4086 , - 2129 , - 2720 , - 4403 , - 5722 , - 5221 , - 1444 , - 4583 , - 1534 , - 2489 , - 168 , - 4763 , - 3170 , - 5581 , - 4716 , - 4943 , - 4806 , - 2849 , - 3440 , - 5123 , - 618 , - 117 , - 2164 , - 5303 , - 2254 , - 3209 , - 888 , - 5483 , - 3890 , - 477 , - 5436 , - 5663 , - 5526 , - 3569 , - 4160 , - 19 , - 1338 , - 837 , - 2884 , - 199 , - 2974 , - 3929 , - 1608 , - 379 , - 4610 , - 1197 , - 332 , - 559 , - 422 , - 4289 , - 4880 , - 739 , - 2058 , - 1557 , - 3604 , - 919 , - 3694 , - 4649 , - 2328 , - 1099 , - 5330 , - 1917 , - 1052 , - 1279 , - 1142 , - 5009 , - 5600 , - 1459 , - 2778 , - 2277 , - 4324 , - 1639 , - 4414 , - 5369 , - 3048 , - 1819 , - 226 , - 2637 , - 1772 , - 1999 , - 1862 , - 5729 , - 496 , - 2179 , - 3498 , - 2997 , - 5044 , - 2359 , - 5134 , - 265 , - 3768 , - 2539 , - 946 , - 3357 , - 2492 , - 2719 , - 2582 , - 625 , - 1216 , - 2899 , - 4218 , - 3717 , - 5764 , - 3079 , - 30 , - 985 , - 4488 , - 3259 , - 1666 , - 4077 , - 3212 , - 3439 , - 3302 , - 1345 , - 1936 , - 3619 , - 4938 , - 4437 , - 660 , - 3799 , - 750 , - 1705 , - 5208 , - 3979 , - 2386 , - 4797 , - 3932 , - 4159 , - 4022 , - 2065 , - 2656 , - 4339 , - 5658 , - 5157 , - 1380 , - 4519 , - 1470 , - 2425 , - 104 , - 4699 , - 3106 , - 5517 , - 4652 , - 4879 , - 4742 , - 2785 , - 3376 , - 5059 , - 554 , - 53 , - 2100 , - 5239 , - 2190 , - 3145 , - 824 , - 5419 , - 3826 , - 413 , - 5372 , - 5599 , - 5462 , - 3505 , - 4096 , - 5779 , - 1274 , - 773 , - 2820 , - 135 , - 2910 , - 3865 , - 1544 , - 315 , - 4546 , - 1133 , - 268 , - 495 , - 358 , - 4225 , - 4816 , - 675 , - 1994 , - 1493 , - 3540 , - 855 , - 3630 , - 4585 , - 2264 , - 1035 , - 5266 , - 1853 , - 988 , - 1215 , - 1078 , - 4945 , - 5536 , - 1395 , - 2714 , - 2213 , - 4260 , - 1575 , - 4350 , - 5305 , - 2984 , - 1755 , - 162 , - 2573 , - 1708 , - 1935 , - 1798 , - 5665 , - 432 , - 2115 , - 3434 , - 2933 , - 4980 , - 2295 , - 5070 , - 201 , - 3704 , - 2475 , - 882 , - 3293 , - 2428 , - 2655 , - 2518 , - 561 , - 1152 , - 2835 , - 4154 , - 3653 , - 5700 , - 3015 , - 5790 , - 921 , - 4424 , - 3195 , - 1602 , - 4013 , - 3148 , - 3375 , - 3238 , - 1281 , - 1872 , - 3555 , - 4874 , - 4373 , - 596 , - 3735 , - 686 , - 1641 , - 5144 , - 3915 , - 2322 , - 4733 , - 3868 , - 4095 , - 3958 , - 2001 , - 2592 , - 4275 , - 5594 , - 5093 , - 1316 , - 4455 , - 1406 , - 2361 , - 40 , - 4635 , - 3042 , - 5453 , - 4588 , - 4815 , - 4678 , - 2721 , - 3312 , - 4995 , - 490 , - 5813 , - 2036 , - 5175 , - 2126 , - 3081 , - 760 , - 5355 , - 3762 , - 349 , - 5308 , - 5535 , - 5398 , - 3441 , - 4032 , - 5715 , - 1210 , - 709 , - 2756 , - 71 , - 2846 , - 3801 , - 1480 , - 251 , - 4482 , - 1069 , - 204 , - 431 , - 294 , - 4161 , - 4752 , - 611 , - 1930 , - 1429 , - 3476 , - 791 , - 3566 , - 4521 , - 2200 , - 971 , - 5202 , - 1789 , - 924 , - 1151 , - 1014 , - 4881 , - 5472 , - 1331 , - 2650 , - 2149 , - 4196 , - 1511 , - 4286 , - 5241 , - 2920 , - 1691 , - 98 , - 2509 , - 1644 , - 1871 , - 1734 , - 5601 , - 368 , - 2051 , - 3370 , - 2869 , - 4916 , - 2231 , - 5006 , - 137 , - 3640 , - 2411 , - 818 , - 3229 , - 2364 , - 2591 , - 2454 , - 497 , - 1088 , - 2771 , - 4090 , - 3589 , - 5636 , - 2951 , - 5726 , - 857 , - 4360 , - 3131 , - 1538 , - 3949 , - 3084 , - 3311 , - 3174 , - 1217 , - 1808 , - 3491 , - 4810 , - 4309 , - 532 , - 3671 , - 622 , - 1577 , - 5080 , - 3851 , - 2258 , - 4669 , - 3804 , - 4031 , - 3894 , - 1937 , - 2528 , - 4211 , - 5530 , - 5029 , - 1252 , - 4391 , - 1342 , - 2297 , - 5800 , - 4571 , - 2978 , - 5389 , - 4524 , - 4751 , - 4614 , - 2657 , - 3248 , - 4931 , - 426 , - 5749 , - 1972 , - 5111 , - 2062 , - 3017 , - 696 , - 5291 , - 3698 , - 285 , - 5244 , - 5471 , - 5334 , - 3377 , - 3968 , - 5651 , - 1146 , - 645 , - 2692 , - 7 , - 2782 , - 3737 , - 1416 , - 187 , - 4418 , - 1005 , - 140 , - 367 , - 230 , - 4097 , - 4688 , - 547 , - 1866 , - 1365 , - 3412 , - 727 , - 3502 , - 4457 , - 2136 , - 907 , - 5138 , - 1725 , - 860 , - 1087 , - 950 , - 4817 , - 5408 , - 1267 , - 2586 , - 2085 , - 4132 , - 1447 , - 4222 , - 5177 , - 2856 , - 1627 , - 34 , - 2445 , - 1580 , - 1807 , - 1670 , - 5537 , - 304 , - 1987 , - 3306 , - 2805 , - 4852 , - 2167 , - 4942 , - 73 , - 3576 , - 2347 , - 754 , - 3165 , - 2300 , - 2527 , - 2390 , - 433 , - 1024 , - 2707 , - 4026 , - 3525 , - 5572 , - 2887 , - 5662 , - 793 , - 4296 , - 3067 , - 1474 , - 3885 , - 3020 , - 3247 , - 3110 , - 1153 , - 1744 , - 3427 , - 4746 , - 4245 , - 468 , - 3607 , - 558 , - 1513 , - 5016 , - 3787 , - 2194 , - 4605 , - 3740 , - 3967 , - 3830 , - 1873 , - 2464 , - 4147 , - 5466 , - 4965 , - 1188 , - 4327 , - 1278 , - 2233 , - 5736 , - 4507 , - 2914 , - 5325 , - 4460 , - 4687 , - 4550 , - 2593 , - 3184 , - 4867 , - 362 , - 5685 , - 1908 , - 5047 , - 1998 , - 2953 , - 632 , - 5227 , - 3634 , - 221 , - 5180 , - 5407 , - 5270 , - 3313 , - 3904 , - 5587 , - 1082 , - 581 , - 2628 , - 5767 , - 2718 , - 3673 , - 1352 , - 123 , - 4354 , - 941 , - 76 , - 303 , - 166 , - 4033 , - 4624 , - 483 , - 1802 , - 1301 , - 3348 , - 663 , - 3438 , - 4393 , - 2072 , - 843 , - 5074 , - 1661 , - 796 , - 1023 , - 886 , - 4753 , - 5344 , - 1203 , - 2522 , - 2021 , - 4068 , - 1383 , - 4158 , - 5113 , - 2792 , - 1563 , - 5794 , - 2381 , - 1516 , - 1743 , - 1606 , - 5473 , - 240 , - 1923 , - 3242 , - 2741 , - 4788 , - 2103 , - 4878 , - 9 , - 3512 , - 2283 , - 690 , - 3101 , - 2236 , - 2463 , - 2326 , - 369 , - 960 , - 2643 , - 3962 , - 3461 , - 5508 , - 2823 , - 5598 , - 729 , - 4232 , - 3003 , - 1410 , - 3821 , - 2956 , - 3183 , - 3046 , - 1089 , - 1680 , - 3363 , - 4682 , - 4181 , - 404 , - 3543 , - 494 , - 1449 , - 4952 , - 3723 , - 2130 , - 4541 , - 3676 , - 3903 , - 3766 , - 1809 , - 2400 , - 4083 , - 5402 , - 4901 , - 1124 , - 4263 , - 1214 , - 2169 , - 5672 , - 4443 , - 2850 , - 5261 , - 4396 , - 4623 , - 4486 , - 2529 , - 3120 , - 4803 , - 298 , - 5621 , - 1844 , - 4983 , - 1934 , - 2889 , - 568 , - 5163 , - 3570 , - 157 , - 5116 , - 5343 , - 5206 , - 3249 , - 3840 , - 5523 , - 1018 , - 517 , - 2564 , - 5703 , - 2654 , - 3609 , - 1288 , - 59 , - 4290 , - 877 , - 12 , - 239 , - 102 , - 3969 , - 4560 , - 419 , - 1738 , - 1237 , - 3284 , - 599 , - 3374 , - 4329 , - 2008 , - 779 , - 5010 , - 1597 , - 732 , - 959 , - 822 , - 4689 , - 5280 , - 1139 , - 2458 , - 1957 , - 4004 , - 1319 , - 4094 , - 5049 , - 2728 , - 1499 , - 5730 , - 2317 , - 1452 , - 1679 , - 1542 , - 5409 , - 176 , - 1859 , - 3178 , - 2677 , - 4724 , - 2039 , - 4814 , - 5769 , - 3448 , - 2219 , - 626 , - 3037 , - 2172 , - 2399 , - 2262 , - 305 , - 896 , - 2579 , - 3898 , - 3397 , - 5444 , - 2759 , - 5534 , - 665 , - 4168 , - 2939 , - 1346 , - 3757 , - 2892 , - 3119 , - 2982 , - 1025 , - 1616 , - 3299 , - 4618 , - 4117 , - 340 , - 3479 , - 430 , - 1385 , - 4888 , - 3659 , - 2066 , - 4477 , - 3612 , - 3839 , - 3702 , - 1745 , - 2336 , - 4019 , - 5338 , - 4837 , - 1060 , - 4199 , - 1150 , - 2105 , - 5608 , - 4379 , - 2786 , - 5197 , - 4332 , - 4559 , - 4422 , - 2465 , - 3056 , - 4739 , - 234 , - 5557 , - 1780 , - 4919 , - 1870 , - 2825 , - 504 , - 5099 , - 3506 , - 93 , - 5052 , - 5279 , - 5142 , - 3185 , - 3776 , - 5459 , - 954 , - 453 , - 2500 , - 5639 , - 2590 , - 3545 , - 1224 , - 5819 , - 4226 , - 813 , - 5772 , - 175 , - 38 , - 3905 , - 4496 , - 355 , - 1674 , - 1173 , - 3220 , - 535 , - 3310 , - 4265 , - 1944 , - 715 , - 4946 , - 1533 , - 668 , - 895 , - 758 , - 4625 , - 5216 , - 1075 , - 2394 , - 1893 , - 3940 , - 1255 , - 4030 , - 4985 , - 2664 , - 1435 , - 5666 , - 2253 , - 1388 , - 1615 , - 1478 , - 5345 , - 112 , - 1795 , - 3114 , - 2613 , - 4660 , - 1975 , - 4750 , - 5705 , - 3384 , - 2155 , - 562 , - 2973 , - 2108 , - 2335 , - 2198 , - 241 , - 832 , - 2515 , - 3834 , - 3333 , - 5380 , - 2695 , - 5470 , - 601 , - 4104 , - 2875 , - 1282 , - 3693 , - 2828 , - 3055 , - 2918 , - 961 , - 1552 , - 3235 , - 4554 , - 4053 , - 276 , - 3415 , - 366 , - 1321 , - 4824 , - 3595 , - 2002 , - 4413 , - 3548 , - 3775 , - 3638 , - 1681 , - 2272 , - 3955 , - 5274 , - 4773 , - 996 , - 4135 , - 1086 , - 2041 , - 5544 , - 4315 , - 2722 , - 5133 , - 4268 , - 4495 , - 4358 , - 2401 , - 2992 , - 4675 , - 170 , - 5493 , - 1716 , - 4855 , - 1806 , - 2761 , - 440 , - 5035 , - 3442 , - 29 , - 4988 , - 5215 , - 5078 , - 3121 , - 3712 , - 5395 , - 890 , - 389 , - 2436 , - 5575 , - 2526 , - 3481 , - 1160 , - 5755 , - 4162 , - 749 , - 5708 , - 111 , - 5798 , - 3841 , - 4432 , - 291 , - 1610 , - 1109 , - 3156 , - 471 , - 3246 , - 4201 , - 1880 , - 651 , - 4882 , - 1469 , - 604 , - 831 , - 694 , - 4561 , - 5152 , - 1011 , - 2330 , - 1829 , - 3876 , - 1191 , - 3966 , - 4921 , - 2600 , - 1371 , - 5602 , - 2189 , - 1324 , - 1551 , - 1414 , - 5281 , - 48 , - 1731 , - 3050 , - 2549 , - 4596 , - 1911 , - 4686 , - 5641 , - 3320 , - 2091 , - 498 , - 2909 , - 2044 , - 2271 , - 2134 , - 177 , - 768 , - 2451 , - 3770 , - 3269 , - 5316 , - 2631 , - 5406 , - 537 , - 4040 , - 2811 , - 1218 , - 3629 , - 2764 , - 2991 , - 2854 , - 897 , - 1488 , - 3171 , - 4490 , - 3989 , - 212 , - 3351 , - 302 , - 1257 , - 4760 , - 3531 , - 1938 , - 4349 , - 3484 , - 3711 , - 3574 , - 1617 , - 2208 , - 3891 , - 5210 , - 4709 , - 932 , - 4071 , - 1022 , - 1977 , - 5480 , - 4251 , - 2658 , - 5069 , - 4204 , - 4431 , - 4294 , - 2337 , - 2928 , - 4611 , - 106 , - 5429 , - 1652 , - 4791 , - 1742 , - 2697 , - 376 , - 4971 , - 3378 , - 5789 , - 4924 , - 5151 , - 5014 , - 3057 , - 3648 , - 5331 , - 826 , - 325 , - 2372 , - 5511 , - 2462 , - 3417 , - 1096 , - 5691 , - 4098 , - 685 , - 5644 , - 47 , - 5734 , - 3777 , - 4368 , - 227 , - 1546 , - 1045 , - 3092 , - 407 , - 3182 , - 4137 , - 1816 , - 587 , - 4818 , - 1405 , - 540 , - 767 , - 630 , - 4497 , - 5088 , - 947 , - 2266 , - 1765 , - 3812 , - 1127 , - 3902 , - 4857 , - 2536 , - 1307 , - 5538 , - 2125 , - 1260 , - 1487 , - 1350 , - 5217 , - 5808 , - 1667 , - 2986 , - 2485 , - 4532 , - 1847 , - 4622 , - 5577 , - 3256 , - 2027 , - 434 , - 2845 , - 1980 , - 2207 , - 2070 , - 113 , - 704 , - 2387 , - 3706 , - 3205 , - 5252 , - 2567 , - 5342 , - 473 , - 3976 , - 2747 , - 1154 , - 3565 , - 2700 , - 2927 , - 2790 , - 833 , - 1424 , - 3107 , - 4426 , - 3925 , - 148 , - 3287 , - 238 , - 1193 , - 4696 , - 3467 , - 1874 , - 4285 , - 3420 , - 3647 , - 3510 , - 1553 , - 2144 , - 3827 , - 5146 , - 4645 , - 868 , - 4007 , - 958 , - 1913 , - 5416 , - 4187 , - 2594 , - 5005 , - 4140 , - 4367 , - 4230 , - 2273 , - 2864 , - 4547 , - 42 , - 5365 , - 1588 , - 4727 , - 1678 , - 2633 , - 312 , - 4907 , - 3314 , - 5725 , - 4860 , - 5087 , - 4950 , - 2993 , - 3584 , - 5267 , - 762 , - 261 , - 2308 , - 5447 , - 2398 , - 3353 , - 1032 , - 5627 , - 4034 , - 621 , - 5580 , - 5807 , - 5670 , - 3713 , - 4304 , - 163 , - 1482 , - 981 , - 3028 , - 343 , - 3118 , - 4073 , - 1752 , - 523 , - 4754 , - 1341 , - 476 , - 703 , - 566 , - 4433 , - 5024 , - 883 , - 2202 , - 1701 , - 3748 , - 1063 , - 3838 , - 4793 , - 2472 , - 1243 , - 5474 , - 2061 , - 1196 , - 1423 , - 1286 , - 5153 , - 5744 , - 1603 , - 2922 , - 2421 , - 4468 , - 1783 , - 4558 , - 5513 , - 3192 , - 1963 , - 370 , - 2781 , - 1916 , - 2143 , - 2006 , - 49 , - 640 , - 2323 , - 3642 , - 3141 , - 5188 , - 2503 , - 5278 , - 409 , - 3912 , - 2683 , - 1090 , - 3501 , - 2636 , - 2863 , - 2726 , - 769 , - 1360 , - 3043 , - 4362 , - 3861 , - 84 , - 3223 , - 174 , - 1129 , - 4632 , - 3403 , - 1810 , - 4221 , - 3356 , - 3583 , - 3446 , - 1489 , - 2080 , - 3763 , - 5082 , - 4581 , - 804 , - 3943 , - 894 , - 1849 , - 5352 , - 4123 , - 2530 , - 4941 , - 4076 , - 4303 , - 4166 , - 2209 , - 2800 , - 4483 , - 5802 , - 5301 , - 1524 , - 4663 , - 1614 , - 2569 , - 248 , - 4843 , - 3250 , - 5661 , - 4796 , - 5023 , - 4886 , - 2929 , - 3520 , - 5203 , - 698 , - 197 , - 2244 , - 5383 , - 2334 , - 3289 , - 968 , - 5563 , - 3970 , - 557 , - 5516 , - 5743 , - 5606 , - 3649 , - 4240 , - 99 , - 1418 , - 917 , - 2964 , - 279 , - 3054 , - 4009 , - 1688 , - 459 , - 4690 , - 1277 , - 412 , - 639 , - 502 , - 4369 , - 4960 , - 819 , - 2138 , - 1637 , - 3684 , - 999 , - 3774 , - 4729 , - 2408 , - 1179 , - 5410 , - 1997 , - 1132 , - 1359 , - 1222 , - 5089 , - 5680 , - 1539 , - 2858 , - 2357 , - 4404 , - 1719 , - 4494 , - 5449 , - 3128 , - 1899 , - 306 , - 2717 , - 1852 , - 2079 , - 1942 , - 5809 , - 576 , - 2259 , - 3578 , - 3077 , - 5124 , - 2439 , - 5214 , - 345 , - 3848 , - 2619 , - 1026 , - 3437 , - 2572 , - 2799 , - 2662 , - 705 , - 1296 , - 2979 , - 4298 , - 3797 , - 20 , - 3159 , - 110 , - 1065 , - 4568 , - 3339 , - 1746 , - 4157 , - 3292 , - 3519 , - 3382 , - 1425 , - 2016 , - 3699 , - 5018 , - 4517 , - 740 , - 3879 , - 830 , - 1785 , - 5288 , - 4059 , - 2466 , - 4877 , - 4012 , - 4239 , - 4102 , - 2145 , - 2736 , - 4419 , - 5738 , - 5237 , - 1460 , - 4599 , - 1550 , - 2505 , - 184 , - 4779 , - 3186 , - 5597 , - 4732 , - 4959 , - 4822 , - 2865 , - 3456 , - 5139 , - 634 , - 133 , - 2180 , - 5319 , - 2270 , - 3225 , - 904 , - 5499 , - 3906 , - 493 , - 5452 , - 5679 , - 5542 , - 3585 , - 4176 , - 35 , - 1354 , - 853 , - 2900 , - 215 , - 2990 , - 3945 , - 1624 , - 395 , - 4626 , - 1213 , - 348 , - 575 , - 438 , - 4305 , - 4896 , - 755 , - 2074 , - 1573 , - 3620 , - 935 , - 3710 , - 4665 , - 2344 , - 1115 , - 5346 , - 1933 , - 1068 , - 1295 , - 1158 , - 5025 , - 5616 , - 1475 , - 2794 , - 2293 , - 4340 , - 1655 , - 4430 , - 5385 , - 3064 , - 1835 , - 242 , - 2653 , - 1788 , - 2015 , - 1878 , - 5745 , - 512 , - 2195 , - 3514 , - 3013 , - 5060 , - 2375 , - 5150 , - 281 , - 3784 , - 2555 , - 962 , - 3373 , - 2508 , - 2735 , - 2598 , - 641 , - 1232 , - 2915 , - 4234 , - 3733 , - 5780 , - 3095 , - 46 , - 1001 , - 4504 , - 3275 , - 1682 , - 4093 , - 3228 , - 3455 , - 3318 , - 1361 , - 1952 , - 3635 , - 4954 , - 4453 , - 676 , - 3815 , - 766 , - 1721 , - 5224 , - 3995 , - 2402 , - 4813 , - 3948 , - 4175 , - 4038 , - 2081 , - 2672 , - 4355 , - 5674 , - 5173 , - 1396 , - 4535 , - 1486 , - 2441 , - 120 , - 4715 , - 3122 , - 5533 , - 4668 , - 4895 , - 4758 , - 2801 , - 3392 , - 5075 , - 570 , - 69 , - 2116 , - 5255 , - 2206 , - 3161 , - 840 , - 5435 , - 3842 , - 429 , - 5388 , - 5615 , - 5478 , - 3521 , - 4112 , - 5795 , - 1290 , - 789 , - 2836 , - 151 , - 2926 , - 3881 , - 1560 , - 331 , - 4562 , - 1149 , - 284 , - 511 , - 374 , - 4241 , - 4832 , - 691 , - 2010 , - 1509 , - 3556 , - 871 , - 3646 , - 4601 , - 2280 , - 1051 , - 5282 , - 1869 , - 1004 , - 1231 , - 1094 , - 4961 , - 5552 , - 1411 , - 2730 , - 2229 , - 4276 , - 1591 , - 4366 , - 5321 , - 3000 , - 1771 , - 178 , - 2589 , - 1724 , - 1951 , - 1814 , - 5681 , - 448 , - 2131 , - 3450 , - 2949 , - 4996 , - 2311 , - 5086 , - 217 , - 3720 , - 2491 , - 898 , - 3309 , - 2444 , - 2671 , - 2534 , - 577 , - 1168 , - 2851 , - 4170 , - 3669 , - 5716 , - 3031 , - 5806 , - 937 , - 4440 , - 3211 , - 1618 , - 4029 , - 3164 , - 3391 , - 3254 , - 1297 , - 1888 , - 3571 , - 4890 , - 4389 , - 612 , - 3751 , - 702 , - 1657 , - 5160 , - 3931 , - 2338 , - 4749 , - 3884 , - 4111 , - 3974 , - 2017 , - 2608 , - 4291 , - 5610 , - 5109 , - 1332 , - 4471 , - 1422 , - 2377 , - 56 , - 4651 , - 3058 , - 5469 , - 4604 , - 4831 , - 4694 , - 2737 , - 3328 , - 5011 , - 506 , - 5 , - 2052 , - 5191 , - 2142 , - 3097 , - 776 , - 5371 , - 3778 , - 365 , - 5324 , - 5551 , - 5414 , - 3457 , - 4048 , - 5731 , - 1226 , - 725 , - 2772 , - 87 , - 2862 , - 3817 , - 1496 , - 267 , - 4498 , - 1085 , - 220 , - 447 , - 310 , - 4177 , - 4768 , - 627 , - 1946 , - 1445 , - 3492 , - 807 , - 3582 , - 4537 , - 2216 , - 987 , - 5218 , - 1805 , - 940 , - 1167 , - 1030 , - 4897 , - 5488 , - 1347 , - 2666 , - 2165 , - 4212 , - 1527 , - 4302 , - 5257 , - 2936 , - 1707 , - 114 , - 2525 , - 1660 , - 1887 , - 1750 , - 5617 , - 384 , - 2067 , - 3386 , - 2885 , - 4932 , - 2247 , - 5022 , - 153 , - 3656 , - 2427 , - 834 , - 3245 , - 2380 , - 2607 , - 2470 , - 513 , - 1104 , - 2787 , - 4106 , - 3605 , - 5652 , - 2967 , - 5742 , - 873 , - 4376 , - 3147 , - 1554 , - 3965 , - 3100 , - 3327 , - 3190 , - 1233 , - 1824 , - 3507 , - 4826 , - 4325 , - 548 , - 3687 , - 638 , - 1593 , - 5096 , - 3867 , - 2274 , - 4685 , - 3820 , - 4047 , - 3910 , - 1953 , - 2544 , - 4227 , - 5546 , - 5045 , - 1268 , - 4407 , - 1358 , - 2313 , - 5816 , - 4587 , - 2994 , - 5405 , - 4540 , - 4767 , - 4630 , - 2673 , - 3264 , - 4947 , - 442 , - 5765 , - 1988 , - 5127 , - 2078 , - 3033 , - 712 , - 5307 , - 3714 , - 301 , - 5260 , - 5487 , - 5350 , - 3393 , - 3984 , - 5667 , - 1162 , - 661 , - 2708 , - 23 , - 2798 , - 3753 , - 1432 , - 203 , - 4434 , - 1021 , - 156 , - 383 , - 246 , - 4113 , - 4704 , - 563 , - 1882 , - 1381 , - 3428 , - 743 , - 3518 , - 4473 , - 2152 , - 923 , - 5154 , - 1741 , - 876 , - 1103 , - 966 , - 4833 , - 5424 , - 1283 , - 2602 , - 2101 , - 4148 , - 1463 , - 4238 , - 5193 , - 2872 , - 1643 , - 50 , - 2461 , - 1596 , - 1823 , - 1686 , - 5553 , - 320 , - 2003 , - 3322 , - 2821 , - 4868 , - 2183 , - 4958 , - 89 , - 3592 , - 2363 , - 770 , - 3181 , - 2316 , - 2543 , - 2406 , - 449 , - 1040 , - 2723 , - 4042 , - 3541 , - 5588 , - 2903 , - 5678 , - 809 , - 4312 , - 3083 , - 1490 , - 3901 , - 3036 , - 3263 , - 3126 , - 1169 , - 1760 , - 3443 , - 4762 , - 4261 , - 484 , - 3623 , - 574 , - 1529 , - 5032 , - 3803 , - 2210 , - 4621 , - 3756 , - 3983 , - 3846 , - 1889 , - 2480 , - 4163 , - 5482 , - 4981 , - 1204 , - 4343 , - 1294 , - 2249 , - 5752 , - 4523 , - 2930 , - 5341 , - 4476 , - 4703 , - 4566 , - 2609 , - 3200 , - 4883 , - 378 , - 5701 , - 1924 , - 5063 , - 2014 , - 2969 , - 648 , - 5243 , - 3650 , - 237 , - 5196 , - 5423 , - 5286 , - 3329 , - 3920 , - 5603 , - 1098 , - 597 , - 2644 , - 5783 , - 2734 , - 3689 , - 1368 , - 139 , - 4370 , - 957 , - 92 , - 319 , - 182 , - 4049 , - 4640 , - 499 , - 1818 , - 1317 , - 3364 , - 679 , - 3454 , - 4409 , - 2088 , - 859 , - 5090 , - 1677 , - 812 , - 1039 , - 902 , - 4769 , - 5360 , - 1219 , - 2538 , - 2037 , - 4084 , - 1399 , - 4174 , - 5129 , - 2808 , - 1579 , - 5810 , - 2397 , - 1532 , - 1759 , - 1622 , - 5489 , - 256 , - 1939 , - 3258 , - 2757 , - 4804 , - 2119 , - 4894 , - 25 , - 3528 , - 2299 , - 706 , - 3117 , - 2252 , - 2479 , - 2342 , - 385 , - 976 , - 2659 , - 3978 , - 3477 , - 5524 , - 2839 , - 5614 , - 745 , - 4248 , - 3019 , - 1426 , - 3837 , - 2972 , - 3199 , - 3062 , - 1105 , - 1696 , - 3379 , - 4698 , - 4197 , - 420 , - 3559 , - 510 , - 1465 , - 4968 , - 3739 , - 2146 , - 4557 , - 3692 , - 3919 , - 3782 , - 1825 , - 2416 , - 4099 , - 5418 , - 4917 , - 1140 , - 4279 , - 1230 , - 2185 , - 5688 , - 4459 , - 2866 , - 5277 , - 4412 , - 4639 , - 4502 , - 2545 , - 3136 , - 4819 , - 314 , - 5637 , - 1860 , - 4999 , - 1950 , - 2905 , - 584 , - 5179 , - 3586 , - 173 , - 5132 , - 5359 , - 5222 , - 3265 , - 3856 , - 5539 , - 1034 , - 533 , - 2580 , - 5719 , - 2670 , - 3625 , - 1304 , - 75 , - 4306 , - 893 , - 28 , - 255 , - 118 , - 3985 , - 4576 , - 435 , - 1754 , - 1253 , - 3300 , - 615 , - 3390 , - 4345 , - 2024 , - 795 , - 5026 , - 1613 , - 748 , - 975 , - 838 , - 4705 , - 5296 , - 1155 , - 2474 , - 1973 , - 4020 , - 1335 , - 4110 , - 5065 , - 2744 , - 1515 , - 5746 , - 2333 , - 1468 , - 1695 , - 1558 , - 5425 , - 192 , - 1875 , - 3194 , - 2693 , - 4740 , - 2055 , - 4830 , - 5785 , - 3464 , - 2235 , - 642 , - 3053 , - 2188 , - 2415 , - 2278 , - 321 , - 912 , - 2595 , - 3914 , - 3413 , - 5460 , - 2775 , - 5550 , - 681 , - 4184 , - 2955 , - 1362 , - 3773 , - 2908 , - 3135 , - 2998 , - 1041 , - 1632 , - 3315 , - 4634 , - 4133 , - 356 , - 3495 , - 446 , - 1401 , - 4904 , - 3675 , - 2082 , - 4493 , - 3628 , - 3855 , - 3718 , - 1761 , - 2352 , - 4035 , - 5354 , - 4853 , - 1076 , - 4215 , - 1166 , - 2121 , - 5624 , - 4395 , - 2802 , - 5213 , - 4348 , - 4575 , - 4438 , - 2481 , - 3072 , - 4755 , - 250 , - 5573 , - 1796 , - 4935 , - 1886 , - 2841 , - 520 , - 5115 , - 3522 , - 109 , - 5068 , - 5295 , - 5158 , - 3201 , - 3792 , - 5475 , - 970 , - 469 , - 2516 , - 5655 , - 2606 , - 3561 , - 1240 , - 11 , - 4242 , - 829 , - 5788 , - 191 , - 54 , - 3921 , - 4512 , - 371 , - 1690 , - 1189 , - 3236 , - 551 , - 3326 , - 4281 , - 1960 , - 731 , - 4962 , - 1549 , - 684 , - 911 , - 774 , - 4641 , - 5232 , - 1091 , - 2410 , - 1909 , - 3956 , - 1271 , - 4046 , - 5001 , - 2680 , - 1451 , - 5682 , - 2269 , - 1404 , - 1631 , - 1494 , - 5361 , - 128 , - 1811 , - 3130 , - 2629 , - 4676 , - 1991 , - 4766 , - 5721 , - 3400 , - 2171 , - 578 , - 2989 , - 2124 , - 2351 , - 2214 , - 257 , - 848 , - 2531 , - 3850 , - 3349 , - 5396 , - 2711 , - 5486 , - 617 , - 4120 , - 2891 , - 1298 , - 3709 , - 2844 , - 3071 , - 2934 , - 977 , - 1568 , - 3251 , - 4570 , - 4069 , - 292 , - 3431 , - 382 , - 1337 , - 4840 , - 3611 , - 2018 , - 4429 , - 3564 , - 3791 , - 3654 , - 1697 , - 2288 , - 3971 , - 5290 , - 4789 , - 1012 , - 4151 , - 1102 , - 2057 , - 5560 , - 4331 , - 2738 , - 5149 , - 4284 , - 4511 , - 4374 , - 2417 , - 3008 , - 4691 , - 186 , - 5509 , - 1732 , - 4871 , - 1822 , - 2777 , - 456 , - 5051 , - 3458 , - 45 , - 5004 , - 5231 , - 5094 , - 3137 , - 3728 , - 5411 , - 906 , - 405 , - 2452 , - 5591 , - 2542 , - 3497 , - 1176 , - 5771 , - 4178 , - 765 , - 5724 , - 127 , - 5814 , - 3857 , - 4448 , - 307 , - 1626 , - 1125 , - 3172 , - 487 , - 3262 , - 4217 , - 1896 , - 667 , - 4898 , - 1485 , - 620 , - 847 , - 710 , - 4577 , - 5168 , - 1027 , - 2346 , - 1845 , - 3892 , - 1207 , - 3982 , - 4937 , - 2616 , - 1387 , - 5618 , - 2205 , - 1340 , - 1567 , - 1430 , - 5297 , - 64 , - 1747 , - 3066 , - 2565 , - 4612 , - 1927 , - 4702 , - 5657 , - 3336 , - 2107 , - 514 , - 2925 , - 2060 , - 2287 , - 2150 , - 193 , - 784 , - 2467 , - 3786 , - 3285 , - 5332 , - 2647 , - 5422 , - 553 , - 4056 , - 2827 , - 1234 , - 3645 , - 2780 , - 3007 , - 2870 , - 913 , - 1504 , - 3187 , - 4506 , - 4005 , - 228 , - 3367 , - 318 , - 1273 , - 4776 , - 3547 , - 1954 , - 4365 , - 3500 , - 3727 , - 3590 , - 1633 , - 2224 , - 3907 , - 5226 , - 4725 , - 948 , - 4087 , - 1038 , - 1993 , - 5496 , - 4267 , - 2674 , - 5085 , - 4220 , - 4447 , - 4310 , - 2353 , - 2944 , - 4627 , - 122 , - 5445 , - 1668 , - 4807 , - 1758 , - 2713 , - 392 , - 4987 , - 3394 , - 5805 , - 4940 , - 5167 , - 5030 , - 3073 , - 3664 , - 5347 , - 842 , - 341 , - 2388 , - 5527 , - 2478 , - 3433 , - 1112 , - 5707 , - 4114 , - 701 , - 5660 , - 63 , - 5750 , - 3793 , - 4384 , - 243 , - 1562 , - 1061 , - 3108 , - 423 , - 3198 , - 4153 , - 1832 , - 603 , - 4834 , - 1421 , - 556 , - 783 , - 646 , - 4513 , - 5104 , - 963 , - 2282 , - 1781 , - 3828 , - 1143 , - 3918 , - 4873 , - 2552 , - 1323 , - 5554 , - 2141 , - 1276 , - 1503 , - 1366 , - 5233 , - 0 , - 323 , - 5430 , - 3545 , - 556 , - 2351 , - 3042 , - 2629 , - 1112 , - 4379 , - 654 , - 1713 , - 1668 , - 519 , - 4154 , - 797 , - 2224 , - 2547 , - 1766 , - 5769 , - 2780 , - 4575 , - 5266 , - 4853 , - 3336 , - 715 , - 2878 , - 3937 , - 3892 , - 2743 , - 490 , - 3021 , - 4448 , - 4771 , - 3990 , - 2105 , - 5004 , - 911 , - 1602 , - 1189 , - 5560 , - 2939 , - 5102 , - 273 , - 228 , - 4967 , - 2714 , - 5245 , - 784 , - 1107 , - 326 , - 4329 , - 1340 , - 3135 , - 3826 , - 3413 , - 1896 , - 5163 , - 1438 , - 2497 , - 2452 , - 1303 , - 4938 , - 1581 , - 3008 , - 3331 , - 2550 , - 665 , - 3564 , - 5359 , - 162 , - 5637 , - 4120 , - 1499 , - 3662 , - 4721 , - 4676 , - 3527 , - 1274 , - 3805 , - 5232 , - 5555 , - 4774 , - 2889 , - 5788 , - 1695 , - 2386 , - 1973 , - 456 , - 3723 , - 5886 , - 1057 , - 1012 , - 5751 , - 3498 , - 141 , - 1568 , - 1891 , - 1110 , - 5113 , - 2124 , - 3919 , - 4610 , - 4197 , - 2680 , - 59 , - 2222 , - 3281 , - 3236 , - 2087 , - 5722 , - 2365 , - 3792 , - 4115 , - 3334 , - 1449 , - 4348 , - 255 , - 946 , - 533 , - 4904 , - 2283 , - 4446 , - 5505 , - 5460 , - 4311 , - 2058 , - 4589 , - 128 , - 451 , - 5558 , - 3673 , - 684 , - 2479 , - 3170 , - 2757 , - 1240 , - 4507 , - 782 , - 1841 , - 1796 , - 647 , - 4282 , - 925 , - 2352 , - 2675 , - 1894 , - 9 , - 2908 , - 4703 , - 5394 , - 4981 , - 3464 , - 843 , - 3006 , - 4065 , - 4020 , - 2871 , - 618 , - 3149 , - 4576 , - 4899 , - 4118 , - 2233 , - 5132 , - 1039 , - 1730 , - 1317 , - 5688 , - 3067 , - 5230 , - 401 , - 356 , - 5095 , - 2842 , - 5373 , - 912 , - 1235 , - 454 , - 4457 , - 1468 , - 3263 , - 3954 , - 3541 , - 2024 , - 5291 , - 1566 , - 2625 , - 2580 , - 1431 , - 5066 , - 1709 , - 3136 , - 3459 , - 2678 , - 793 , - 3692 , - 5487 , - 290 , - 5765 , - 4248 , - 1627 , - 3790 , - 4849 , - 4804 , - 3655 , - 1402 , - 3933 , - 5360 , - 5683 , - 4902 , - 3017 , - 28 , - 1823 , - 2514 , - 2101 , - 584 , - 3851 , - 126 , - 1185 , - 1140 , - 5879 , - 3626 , - 269 , - 1696 , - 2019 , - 1238 , - 5241 , - 2252 , - 4047 , - 4738 , - 4325 , - 2808 , - 187 , - 2350 , - 3409 , - 3364 , - 2215 , - 5850 , - 2493 , - 3920 , - 4243 , - 3462 , - 1577 , - 4476 , - 383 , - 1074 , - 661 , - 5032 , - 2411 , - 4574 , - 5633 , - 5588 , - 4439 , - 2186 , - 4717 , - 256 , - 579 , - 5686 , - 3801 , - 812 , - 2607 , - 3298 , - 2885 , - 1368 , - 4635 , - 910 , - 1969 , - 1924 , - 775 , - 4410 , - 1053 , - 2480 , - 2803 , - 2022 , - 137 , - 3036 , - 4831 , - 5522 , - 5109 , - 3592 , - 971 , - 3134 , - 4193 , - 4148 , - 2999 , - 746 , - 3277 , - 4704 , - 5027 , - 4246 , - 2361 , - 5260 , - 1167 , - 1858 , - 1445 , - 5816 , - 3195 , - 5358 , - 529 , - 484 , - 5223 , - 2970 , - 5501 , - 1040 , - 1363 , - 582 , - 4585 , - 1596 , - 3391 , - 4082 , - 3669 , - 2152 , - 5419 , - 1694 , - 2753 , - 2708 , - 1559 , - 5194 , - 1837 , - 3264 , - 3587 , - 2806 , - 921 , - 3820 , - 5615 , - 418 , - 5 , - 4376 , - 1755 , - 3918 , - 4977 , - 4932 , - 3783 , - 1530 , - 4061 , - 5488 , - 5811 , - 5030 , - 3145 , - 156 , - 1951 , - 2642 , - 2229 , - 712 , - 3979 , - 254 , - 1313 , - 1268 , - 119 , - 3754 , - 397 , - 1824 , - 2147 , - 1366 , - 5369 , - 2380 , - 4175 , - 4866 , - 4453 , - 2936 , - 315 , - 2478 , - 3537 , - 3492 , - 2343 , - 90 , - 2621 , - 4048 , - 4371 , - 3590 , - 1705 , - 4604 , - 511 , - 1202 , - 789 , - 5160 , - 2539 , - 4702 , - 5761 , - 5716 , - 4567 , - 2314 , - 4845 , - 384 , - 707 , - 5814 , - 3929 , - 940 , - 2735 , - 3426 , - 3013 , - 1496 , - 4763 , - 1038 , - 2097 , - 2052 , - 903 , - 4538 , - 1181 , - 2608 , - 2931 , - 2150 , - 265 , - 3164 , - 4959 , - 5650 , - 5237 , - 3720 , - 1099 , - 3262 , - 4321 , - 4276 , - 3127 , - 874 , - 3405 , - 4832 , - 5155 , - 4374 , - 2489 , - 5388 , - 1295 , - 1986 , - 1573 , - 56 , - 3323 , - 5486 , - 657 , - 612 , - 5351 , - 3098 , - 5629 , - 1168 , - 1491 , - 710 , - 4713 , - 1724 , - 3519 , - 4210 , - 3797 , - 2280 , - 5547 , - 1822 , - 2881 , - 2836 , - 1687 , - 5322 , - 1965 , - 3392 , - 3715 , - 2934 , - 1049 , - 3948 , - 5743 , - 546 , - 133 , - 4504 , - 1883 , - 4046 , - 5105 , - 5060 , - 3911 , - 1658 , - 4189 , - 5616 , - 51 , - 5158 , - 3273 , - 284 , - 2079 , - 2770 , - 2357 , - 840 , - 4107 , - 382 , - 1441 , - 1396 , - 247 , - 3882 , - 525 , - 1952 , - 2275 , - 1494 , - 5497 , - 2508 , - 4303 , - 4994 , - 4581 , - 3064 , - 443 , - 2606 , - 3665 , - 3620 , - 2471 , - 218 , - 2749 , - 4176 , - 4499 , - 3718 , - 1833 , - 4732 , - 639 , - 1330 , - 917 , - 5288 , - 2667 , - 4830 , - 1 , - 5844 , - 4695 , - 2442 , - 4973 , - 512 , - 835 , - 54 , - 4057 , - 1068 , - 2863 , - 3554 , - 3141 , - 1624 , - 4891 , - 1166 , - 2225 , - 2180 , - 1031 , - 4666 , - 1309 , - 2736 , - 3059 , - 2278 , - 393 , - 3292 , - 5087 , - 5778 , - 5365 , - 3848 , - 1227 , - 3390 , - 4449 , - 4404 , - 3255 , - 1002 , - 3533 , - 4960 , - 5283 , - 4502 , - 2617 , - 5516 , - 1423 , - 2114 , - 1701 , - 184 , - 3451 , - 5614 , - 785 , - 740 , - 5479 , - 3226 , - 5757 , - 1296 , - 1619 , - 838 , - 4841 , - 1852 , - 3647 , - 4338 , - 3925 , - 2408 , - 5675 , - 1950 , - 3009 , - 2964 , - 1815 , - 5450 , - 2093 , - 3520 , - 3843 , - 3062 , - 1177 , - 4076 , - 5871 , - 674 , - 261 , - 4632 , - 2011 , - 4174 , - 5233 , - 5188 , - 4039 , - 1786 , - 4317 , - 5744 , - 179 , - 5286 , - 3401 , - 412 , - 2207 , - 2898 , - 2485 , - 968 , - 4235 , - 510 , - 1569 , - 1524 , - 375 , - 4010 , - 653 , - 2080 , - 2403 , - 1622 , - 5625 , - 2636 , - 4431 , - 5122 , - 4709 , - 3192 , - 571 , - 2734 , - 3793 , - 3748 , - 2599 , - 346 , - 2877 , - 4304 , - 4627 , - 3846 , - 1961 , - 4860 , - 767 , - 1458 , - 1045 , - 5416 , - 2795 , - 4958 , - 129 , - 84 , - 4823 , - 2570 , - 5101 , - 640 , - 963 , - 182 , - 4185 , - 1196 , - 2991 , - 3682 , - 3269 , - 1752 , - 5019 , - 1294 , - 2353 , - 2308 , - 1159 , - 4794 , - 1437 , - 2864 , - 3187 , - 2406 , - 521 , - 3420 , - 5215 , - 18 , - 5493 , - 3976 , - 1355 , - 3518 , - 4577 , - 4532 , - 3383 , - 1130 , - 3661 , - 5088 , - 5411 , - 4630 , - 2745 , - 5644 , - 1551 , - 2242 , - 1829 , - 312 , - 3579 , - 5742 , - 913 , - 868 , - 5607 , - 3354 , - 5885 , - 1424 , - 1747 , - 966 , - 4969 , - 1980 , - 3775 , - 4466 , - 4053 , - 2536 , - 5803 , - 2078 , - 3137 , - 3092 , - 1943 , - 5578 , - 2221 , - 3648 , - 3971 , - 3190 , - 1305 , - 4204 , - 111 , - 802 , - 389 , - 4760 , - 2139 , - 4302 , - 5361 , - 5316 , - 4167 , - 1914 , - 4445 , - 5872 , - 307 , - 5414 , - 3529 , - 540 , - 2335 , - 3026 , - 2613 , - 1096 , - 4363 , - 638 , - 1697 , - 1652 , - 503 , - 4138 , - 781 , - 2208 , - 2531 , - 1750 , - 5753 , - 2764 , - 4559 , - 5250 , - 4837 , - 3320 , - 699 , - 2862 , - 3921 , - 3876 , - 2727 , - 474 , - 3005 , - 4432 , - 4755 , - 3974 , - 2089 , - 4988 , - 895 , - 1586 , - 1173 , - 5544 , - 2923 , - 5086 , - 257 , - 212 , - 4951 , - 2698 , - 5229 , - 768 , - 1091 , - 310 , - 4313 , - 1324 , - 3119 , - 3810 , - 3397 , - 1880 , - 5147 , - 1422 , - 2481 , - 2436 , - 1287 , - 4922 , - 1565 , - 2992 , - 3315 , - 2534 , - 649 , - 3548 , - 5343 , - 146 , - 5621 , - 4104 , - 1483 , - 3646 , - 4705 , - 4660 , - 3511 , - 1258 , - 3789 , - 5216 , - 5539 , - 4758 , - 2873 , - 5772 , - 1679 , - 2370 , - 1957 , - 440 , - 3707 , - 5870 , - 1041 , - 996 , - 5735 , - 3482 , - 125 , - 1552 , - 1875 , - 1094 , - 5097 , - 2108 , - 3903 , - 4594 , - 4181 , - 2664 , - 43 , - 2206 , - 3265 , - 3220 , - 2071 , - 5706 , - 2349 , - 3776 , - 4099 , - 3318 , - 1433 , - 4332 , - 239 , - 930 , - 517 , - 4888 , - 2267 , - 4430 , - 5489 , - 5444 , - 4295 , - 2042 , - 4573 , - 112 , - 435 , - 5542 , - 3657 , - 668 , - 2463 , - 3154 , - 2741 , - 1224 , - 4491 , - 766 , - 1825 , - 1780 , - 631 , - 4266 , - 909 , - 2336 , - 2659 , - 1878 , - 5881 , - 2892 , - 4687 , - 5378 , - 4965 , - 3448 , - 827 , - 2990 , - 4049 , - 4004 , - 2855 , - 602 , - 3133 , - 4560 , - 4883 , - 4102 , - 2217 , - 5116 , - 1023 , - 1714 , - 1301 , - 5672 , - 3051 , - 5214 , - 385 , - 340 , - 5079 , - 2826 , - 5357 , - 896 , - 1219 , - 438 , - 4441 , - 1452 , - 3247 , - 3938 , - 3525 , - 2008 , - 5275 , - 1550 , - 2609 , - 2564 , - 1415 , - 5050 , - 1693 , - 3120 , - 3443 , - 2662 , - 777 , - 3676 , - 5471 , - 274 , - 5749 , - 4232 , - 1611 , - 3774 , - 4833 , - 4788 , - 3639 , - 1386 , - 3917 , - 5344 , - 5667 , - 4886 , - 3001 , - 12 , - 1807 , - 2498 , - 2085 , - 568 , - 3835 , - 110 , - 1169 , - 1124 , - 5863 , - 3610 , - 253 , - 1680 , - 2003 , - 1222 , - 5225 , - 2236 , - 4031 , - 4722 , - 4309 , - 2792 , - 171 , - 2334 , - 3393 , - 3348 , - 2199 , - 5834 , - 2477 , - 3904 , - 4227 , - 3446 , - 1561 , - 4460 , - 367 , - 1058 , - 645 , - 5016 , - 2395 , - 4558 , - 5617 , - 5572 , - 4423 , - 2170 , - 4701 , - 240 , - 563 , - 5670 , - 3785 , - 796 , - 2591 , - 3282 , - 2869 , - 1352 , - 4619 , - 894 , - 1953 , - 1908 , - 759 , - 4394 , - 1037 , - 2464 , - 2787 , - 2006 , - 121 , - 3020 , - 4815 , - 5506 , - 5093 , - 3576 , - 955 , - 3118 , - 4177 , - 4132 , - 2983 , - 730 , - 3261 , - 4688 , - 5011 , - 4230 , - 2345 , - 5244 , - 1151 , - 1842 , - 1429 , - 5800 , - 3179 , - 5342 , - 513 , - 468 , - 5207 , - 2954 , - 5485 , - 1024 , - 1347 , - 566 , - 4569 , - 1580 , - 3375 , - 4066 , - 3653 , - 2136 , - 5403 , - 1678 , - 2737 , - 2692 , - 1543 , - 5178 , - 1821 , - 3248 , - 3571 , - 2790 , - 905 , - 3804 , - 5599 , - 402 , - 5877 , - 4360 , - 1739 , - 3902 , - 4961 , - 4916 , - 3767 , - 1514 , - 4045 , - 5472 , - 5795 , - 5014 , - 3129 , - 140 , - 1935 , - 2626 , - 2213 , - 696 , - 3963 , - 238 , - 1297 , - 1252 , - 103 , - 3738 , - 381 , - 1808 , - 2131 , - 1350 , - 5353 , - 2364 , - 4159 , - 4850 , - 4437 , - 2920 , - 299 , - 2462 , - 3521 , - 3476 , - 2327 , - 74 , - 2605 , - 4032 , - 4355 , - 3574 , - 1689 , - 4588 , - 495 , - 1186 , - 773 , - 5144 , - 2523 , - 4686 , - 5745 , - 5700 , - 4551 , - 2298 , - 4829 , - 368 , - 691 , - 5798 , - 3913 , - 924 , - 2719 , - 3410 , - 2997 , - 1480 , - 4747 , - 1022 , - 2081 , - 2036 , - 887 , - 4522 , - 1165 , - 2592 , - 2915 , - 2134 , - 249 , - 3148 , - 4943 , - 5634 , - 5221 , - 3704 , - 1083 , - 3246 , - 4305 , - 4260 , - 3111 , - 858 , - 3389 , - 4816 , - 5139 , - 4358 , - 2473 , - 5372 , - 1279 , - 1970 , - 1557 , - 40 , - 3307 , - 5470 , - 641 , - 596 , - 5335 , - 3082 , - 5613 , - 1152 , - 1475 , - 694 , - 4697 , - 1708 , - 3503 , - 4194 , - 3781 , - 2264 , - 5531 , - 1806 , - 2865 , - 2820 , - 1671 , - 5306 , - 1949 , - 3376 , - 3699 , - 2918 , - 1033 , - 3932 , - 5727 , - 530 , - 117 , - 4488 , - 1867 , - 4030 , - 5089 , - 5044 , - 3895 , - 1642 , - 4173 , - 5600 , - 35 , - 5142 , - 3257 , - 268 , - 2063 , - 2754 , - 2341 , - 824 , - 4091 , - 366 , - 1425 , - 1380 , - 231 , - 3866 , - 509 , - 1936 , - 2259 , - 1478 , - 5481 , - 2492 , - 4287 , - 4978 , - 4565 , - 3048 , - 427 , - 2590 , - 3649 , - 3604 , - 2455 , - 202 , - 2733 , - 4160 , - 4483 , - 3702 , - 1817 , - 4716 , - 623 , - 1314 , - 901 , - 5272 , - 2651 , - 4814 , - 5873 , - 5828 , - 4679 , - 2426 , - 4957 , - 496 , - 819 , - 38 , - 4041 , - 1052 , - 2847 , - 3538 , - 3125 , - 1608 , - 4875 , - 1150 , - 2209 , - 2164 , - 1015 , - 4650 , - 1293 , - 2720 , - 3043 , - 2262 , - 377 , - 3276 , - 5071 , - 5762 , - 5349 , - 3832 , - 1211 , - 3374 , - 4433 , - 4388 , - 3239 , - 986 , - 3517 , - 4944 , - 5267 , - 4486 , - 2601 , - 5500 , - 1407 , - 2098 , - 1685 , - 168 , - 3435 , - 5598 , - 769 , - 724 , - 5463 , - 3210 , - 5741 , - 1280 , - 1603 , - 822 , - 4825 , - 1836 , - 3631 , - 4322 , - 3909 , - 2392 , - 5659 , - 1934 , - 2993 , - 2948 , - 1799 , - 5434 , - 2077 , - 3504 , - 3827 , - 3046 , - 1161 , - 4060 , - 5855 , - 658 , - 245 , - 4616 , - 1995 , - 4158 , - 5217 , - 5172 , - 4023 , - 1770 , - 4301 , - 5728 , - 163 , - 5270 , - 3385 , - 396 , - 2191 , - 2882 , - 2469 , - 952 , - 4219 , - 494 , - 1553 , - 1508 , - 359 , - 3994 , - 637 , - 2064 , - 2387 , - 1606 , - 5609 , - 2620 , - 4415 , - 5106 , - 4693 , - 3176 , - 555 , - 2718 , - 3777 , - 3732 , - 2583 , - 330 , - 2861 , - 4288 , - 4611 , - 3830 , - 1945 , - 4844 , - 751 , - 1442 , - 1029 , - 5400 , - 2779 , - 4942 , - 113 , - 68 , - 4807 , - 2554 , - 5085 , - 624 , - 947 , - 166 , - 4169 , - 1180 , - 2975 , - 3666 , - 3253 , - 1736 , - 5003 , - 1278 , - 2337 , - 2292 , - 1143 , - 4778 , - 1421 , - 2848 , - 3171 , - 2390 , - 505 , - 3404 , - 5199 , - 2 , - 5477 , - 3960 , - 1339 , - 3502 , - 4561 , - 4516 , - 3367 , - 1114 , - 3645 , - 5072 , - 5395 , - 4614 , - 2729 , - 5628 , - 1535 , - 2226 , - 1813 , - 296 , - 3563 , - 5726 , - 897 , - 852 , - 5591 , - 3338 , - 5869 , - 1408 , - 1731 , - 950 , - 4953 , - 1964 , - 3759 , - 4450 , - 4037 , - 2520 , - 5787 , - 2062 , - 3121 , - 3076 , - 1927 , - 5562 , - 2205 , - 3632 , - 3955 , - 3174 , - 1289 , - 4188 , - 95 , - 786 , - 373 , - 4744 , - 2123 , - 4286 , - 5345 , - 5300 , - 4151 , - 1898 , - 4429 , - 5856 , - 291 , - 5398 , - 3513 , - 524 , - 2319 , - 3010 , - 2597 , - 1080 , - 4347 , - 622 , - 1681 , - 1636 , - 487 , - 4122 , - 765 , - 2192 , - 2515 , - 1734 , - 5737 , - 2748 , - 4543 , - 5234 , - 4821 , - 3304 , - 683 , - 2846 , - 3905 , - 3860 , - 2711 , - 458 , - 2989 , - 4416 , - 4739 , - 3958 , - 2073 , - 4972 , - 879 , - 1570 , - 1157 , - 5528 , - 2907 , - 5070 , - 241 , - 196 , - 4935 , - 2682 , - 5213 , - 752 , - 1075 , - 294 , - 4297 , - 1308 , - 3103 , - 3794 , - 3381 , - 1864 , - 5131 , - 1406 , - 2465 , - 2420 , - 1271 , - 4906 , - 1549 , - 2976 , - 3299 , - 2518 , - 633 , - 3532 , - 5327 , - 130 , - 5605 , - 4088 , - 1467 , - 3630 , - 4689 , - 4644 , - 3495 , - 1242 , - 3773 , - 5200 , - 5523 , - 4742 , - 2857 , - 5756 , - 1663 , - 2354 , - 1941 , - 424 , - 3691 , - 5854 , - 1025 , - 980 , - 5719 , - 3466 , - 109 , - 1536 , - 1859 , - 1078 , - 5081 , - 2092 , - 3887 , - 4578 , - 4165 , - 2648 , - 27 , - 2190 , - 3249 , - 3204 , - 2055 , - 5690 , - 2333 , - 3760 , - 4083 , - 3302 , - 1417 , - 4316 , - 223 , - 914 , - 501 , - 4872 , - 2251 , - 4414 , - 5473 , - 5428 , - 4279 , - 2026 , - 4557 , - 96 , - 419 , - 5526 , - 3641 , - 652 , - 2447 , - 3138 , - 2725 , - 1208 , - 4475 , - 750 , - 1809 , - 1764 , - 615 , - 4250 , - 893 , - 2320 , - 2643 , - 1862 , - 5865 , - 2876 , - 4671 , - 5362 , - 4949 , - 3432 , - 811 , - 2974 , - 4033 , - 3988 , - 2839 , - 586 , - 3117 , - 4544 , - 4867 , - 4086 , - 2201 , - 5100 , - 1007 , - 1698 , - 1285 , - 5656 , - 3035 , - 5198 , - 369 , - 324 , - 5063 , - 2810 , - 5341 , - 880 , - 1203 , - 422 , - 4425 , - 1436 , - 3231 , - 3922 , - 3509 , - 1992 , - 5259 , - 1534 , - 2593 , - 2548 , - 1399 , - 5034 , - 1677 , - 3104 , - 3427 , - 2646 , - 761 , - 3660 , - 5455 , - 258 , - 5733 , - 4216 , - 1595 , - 3758 , - 4817 , - 4772 , - 3623 , - 1370 , - 3901 , - 5328 , - 5651 , - 4870 , - 2985 , - 5884 , - 1791 , - 2482 , - 2069 , - 552 , - 3819 , - 94 , - 1153 , - 1108 , - 5847 , - 3594 , - 237 , - 1664 , - 1987 , - 1206 , - 5209 , - 2220 , - 4015 , - 4706 , - 4293 , - 2776 , - 155 , - 2318 , - 3377 , - 3332 , - 2183 , - 5818 , - 2461 , - 3888 , - 4211 , - 3430 , - 1545 , - 4444 , - 351 , - 1042 , - 629 , - 5000 , - 2379 , - 4542 , - 5601 , - 5556 , - 4407 , - 2154 , - 4685 , - 224 , - 547 , - 5654 , - 3769 , - 780 , - 2575 , - 3266 , - 2853 , - 1336 , - 4603 , - 878 , - 1937 , - 1892 , - 743 , - 4378 , - 1021 , - 2448 , - 2771 , - 1990 , - 105 , - 3004 , - 4799 , - 5490 , - 5077 , - 3560 , - 939 , - 3102 , - 4161 , - 4116 , - 2967 , - 714 , - 3245 , - 4672 , - 4995 , - 4214 , - 2329 , - 5228 , - 1135 , - 1826 , - 1413 , - 5784 , - 3163 , - 5326 , - 497 , - 452 , - 5191 , - 2938 , - 5469 , - 1008 , - 1331 , - 550 , - 4553 , - 1564 , - 3359 , - 4050 , - 3637 , - 2120 , - 5387 , - 1662 , - 2721 , - 2676 , - 1527 , - 5162 , - 1805 , - 3232 , - 3555 , - 2774 , - 889 , - 3788 , - 5583 , - 386 , - 5861 , - 4344 , - 1723 , - 3886 , - 4945 , - 4900 , - 3751 , - 1498 , - 4029 , - 5456 , - 5779 , - 4998 , - 3113 , - 124 , - 1919 , - 2610 , - 2197 , - 680 , - 3947 , - 222 , - 1281 , - 1236 , - 87 , - 3722 , - 365 , - 1792 , - 2115 , - 1334 , - 5337 , - 2348 , - 4143 , - 4834 , - 4421 , - 2904 , - 283 , - 2446 , - 3505 , - 3460 , - 2311 , - 58 , - 2589 , - 4016 , - 4339 , - 3558 , - 1673 , - 4572 , - 479 , - 1170 , - 757 , - 5128 , - 2507 , - 4670 , - 5729 , - 5684 , - 4535 , - 2282 , - 4813 , - 352 , - 675 , - 5782 , - 3897 , - 908 , - 2703 , - 3394 , - 2981 , - 1464 , - 4731 , - 1006 , - 2065 , - 2020 , - 871 , - 4506 , - 1149 , - 2576 , - 2899 , - 2118 , - 233 , - 3132 , - 4927 , - 5618 , - 5205 , - 3688 , - 1067 , - 3230 , - 4289 , - 4244 , - 3095 , - 842 , - 3373 , - 4800 , - 5123 , - 4342 , - 2457 , - 5356 , - 1263 , - 1954 , - 1541 , - 24 , - 3291 , - 5454 , - 625 , - 580 , - 5319 , - 3066 , - 5597 , - 1136 , - 1459 , - 678 , - 4681 , - 1692 , - 3487 , - 4178 , - 3765 , - 2248 , - 5515 , - 1790 , - 2849 , - 2804 , - 1655 , - 5290 , - 1933 , - 3360 , - 3683 , - 2902 , - 1017 , - 3916 , - 5711 , - 514 , - 101 , - 4472 , - 1851 , - 4014 , - 5073 , - 5028 , - 3879 , - 1626 , - 4157 , - 5584 , - 19 , - 5126 , - 3241 , - 252 , - 2047 , - 2738 , - 2325 , - 808 , - 4075 , - 350 , - 1409 , - 1364 , - 215 , - 3850 , - 493 , - 1920 , - 2243 , - 1462 , - 5465 , - 2476 , - 4271 , - 4962 , - 4549 , - 3032 , - 411 , - 2574 , - 3633 , - 3588 , - 2439 , - 186 , - 2717 , - 4144 , - 4467 , - 3686 , - 1801 , - 4700 , - 607 , - 1298 , - 885 , - 5256 , - 2635 , - 4798 , - 5857 , - 5812 , - 4663 , - 2410 , - 4941 , - 480 , - 803 , - 22 , - 4025 , - 1036 , - 2831 , - 3522 , - 3109 , - 1592 , - 4859 , - 1134 , - 2193 , - 2148 , - 999 , - 4634 , - 1277 , - 2704 , - 3027 , - 2246 , - 361 , - 3260 , - 5055 , - 5746 , - 5333 , - 3816 , - 1195 , - 3358 , - 4417 , - 4372 , - 3223 , - 970 , - 3501 , - 4928 , - 5251 , - 4470 , - 2585 , - 5484 , - 1391 , - 2082 , - 1669 , - 152 , - 3419 , - 5582 , - 753 , - 708 , - 5447 , - 3194 , - 5725 , - 1264 , - 1587 , - 806 , - 4809 , - 1820 , - 3615 , - 4306 , - 3893 , - 2376 , - 5643 , - 1918 , - 2977 , - 2932 , - 1783 , - 5418 , - 2061 , - 3488 , - 3811 , - 3030 , - 1145 , - 4044 , - 5839 , - 642 , - 229 , - 4600 , - 1979 , - 4142 , - 5201 , - 5156 , - 4007 , - 1754 , - 4285 , - 5712 , - 147 , - 5254 , - 3369 , - 380 , - 2175 , - 2866 , - 2453 , - 936 , - 4203 , - 478 , - 1537 , - 1492 , - 343 , - 3978 , - 621 , - 2048 , - 2371 , - 1590 , - 5593 , - 2604 , - 4399 , - 5090 , - 4677 , - 3160 , - 539 , - 2702 , - 3761 , - 3716 , - 2567 , - 314 , - 2845 , - 4272 , - 4595 , - 3814 , - 1929 , - 4828 , - 735 , - 1426 , - 1013 , - 5384 , - 2763 , - 4926 , - 97 , - 52 , - 4791 , - 2538 , - 5069 , - 608 , - 931 , - 150 , - 4153 , - 1164 , - 2959 , - 3650 , - 3237 , - 1720 , - 4987 , - 1262 , - 2321 , - 2276 , - 1127 , - 4762 , - 1405 , - 2832 , - 3155 , - 2374 , - 489 , - 3388 , - 5183 , - 5874 , - 5461 , - 3944 , - 1323 , - 3486 , - 4545 , - 4500 , - 3351 , - 1098 , - 3629 , - 5056 , - 5379 , - 4598 , - 2713 , - 5612 , - 1519 , - 2210 , - 1797 , - 280 , - 3547 , - 5710 , - 881 , - 836 , - 5575 , - 3322 , - 5853 , - 1392 , - 1715 , - 934 , - 4937 , - 1948 , - 3743 , - 4434 , - 4021 , - 2504 , - 5771 , - 2046 , - 3105 , - 3060 , - 1911 , - 5546 , - 2189 , - 3616 , - 3939 , - 3158 , - 1273 , - 4172 , - 79 , - 770 , - 357 , - 4728 , - 2107 , - 4270 , - 5329 , - 5284 , - 4135 , - 1882 , - 4413 , - 5840 , - 275 , - 5382 , - 3497 , - 508 , - 2303 , - 2994 , - 2581 , - 1064 , - 4331 , - 606 , - 1665 , - 1620 , - 471 , - 4106 , - 749 , - 2176 , - 2499 , - 1718 , - 5721 , - 2732 , - 4527 , - 5218 , - 4805 , - 3288 , - 667 , - 2830 , - 3889 , - 3844 , - 2695 , - 442 , - 2973 , - 4400 , - 4723 , - 3942 , - 2057 , - 4956 , - 863 , - 1554 , - 1141 , - 5512 , - 2891 , - 5054 , - 225 , - 180 , - 4919 , - 2666 , - 5197 , - 736 , - 1059 , - 278 , - 4281 , - 1292 , - 3087 , - 3778 , - 3365 , - 1848 , - 5115 , - 1390 , - 2449 , - 2404 , - 1255 , - 4890 , - 1533 , - 2960 , - 3283 , - 2502 , - 617 , - 3516 , - 5311 , - 114 , - 5589 , - 4072 , - 1451 , - 3614 , - 4673 , - 4628 , - 3479 , - 1226 , - 3757 , - 5184 , - 5507 , - 4726 , - 2841 , - 5740 , - 1647 , - 2338 , - 1925 , - 408 , - 3675 , - 5838 , - 1009 , - 964 , - 5703 , - 3450 , - 93 , - 1520 , - 1843 , - 1062 , - 5065 , - 2076 , - 3871 , - 4562 , - 4149 , - 2632 , - 11 , - 2174 , - 3233 , - 3188 , - 2039 , - 5674 , - 2317 , - 3744 , - 4067 , - 3286 , - 1401 , - 4300 , - 207 , - 898 , - 485 , - 4856 , - 2235 , - 4398 , - 5457 , - 5412 , - 4263 , - 2010 , - 4541 , - 80 , - 403 , - 5510 , - 3625 , - 636 , - 2431 , - 3122 , - 2709 , - 1192 , - 4459 , - 734 , - 1793 , - 1748 , - 599 , - 4234 , - 877 , - 2304 , - 2627 , - 1846 , - 5849 , - 2860 , - 4655 , - 5346 , - 4933 , - 3416 , - 795 , - 2958 , - 4017 , - 3972 , - 2823 , - 570 , - 3101 , - 4528 , - 4851 , - 4070 , - 2185 , - 5084 , - 991 , - 1682 , - 1269 , - 5640 , - 3019 , - 5182 , - 353 , - 308 , - 5047 , - 2794 , - 5325 , - 864 , - 1187 , - 406 , - 4409 , - 1420 , - 3215 , - 3906 , - 3493 , - 1976 , - 5243 , - 1518 , - 2577 , - 2532 , - 1383 , - 5018 , - 1661 , - 3088 , - 3411 , - 2630 , - 745 , - 3644 , - 5439 , - 242 , - 5717 , - 4200 , - 1579 , - 3742 , - 4801 , - 4756 , - 3607 , - 1354 , - 3885 , - 5312 , - 5635 , - 4854 , - 2969 , - 5868 , - 1775 , - 2466 , - 2053 , - 536 , - 3803 , - 78 , - 1137 , - 1092 , - 5831 , - 3578 , - 221 , - 1648 , - 1971 , - 1190 , - 5193 , - 2204 , - 3999 , - 4690 , - 4277 , - 2760 , - 139 , - 2302 , - 3361 , - 3316 , - 2167 , - 5802 , - 2445 , - 3872 , - 4195 , - 3414 , - 1529 , - 4428 , - 335 , - 1026 , - 613 , - 4984 , - 2363 , - 4526 , - 5585 , - 5540 , - 4391 , - 2138 , - 4669 , - 208 , - 531 , - 5638 , - 3753 , - 764 , - 2559 , - 3250 , - 2837 , - 1320 , - 4587 , - 862 , - 1921 , - 1876 , - 727 , - 4362 , - 1005 , - 2432 , - 2755 , - 1974 , - 89 , - 2988 , - 4783 , - 5474 , - 5061 , - 3544 , - 923 , - 3086 , - 4145 , - 4100 , - 2951 , - 698 , - 3229 , - 4656 , - 4979 , - 4198 , - 2313 , - 5212 , - 1119 , - 1810 , - 1397 , - 5768 , - 3147 , - 5310 , - 481 , - 436 , - 5175 , - 2922 , - 5453 , - 992 , - 1315 , - 534 , - 4537 , - 1548 , - 3343 , - 4034 , - 3621 , - 2104 , - 5371 , - 1646 , - 2705 , - 2660 , - 1511 , - 5146 , - 1789 , - 3216 , - 3539 , - 2758 , - 873 , - 3772 , - 5567 , - 370 , - 5845 , - 4328 , - 1707 , - 3870 , - 4929 , - 4884 , - 3735 , - 1482 , - 4013 , - 5440 , - 5763 , - 4982 , - 3097 , - 108 , - 1903 , - 2594 , - 2181 , - 664 , - 3931 , - 206 , - 1265 , - 1220 , - 71 , - 3706 , - 349 , - 1776 , - 2099 , - 1318 , - 5321 , - 2332 , - 4127 , - 4818 , - 4405 , - 2888 , - 267 , - 2430 , - 3489 , - 3444 , - 2295 , - 42 , - 2573 , - 4000 , - 4323 , - 3542 , - 1657 , - 4556 , - 463 , - 1154 , - 741 , - 5112 , - 2491 , - 4654 , - 5713 , - 5668 , - 4519 , - 2266 , - 4797 , - 336 , - 659 , - 5766 , - 3881 , - 892 , - 2687 , - 3378 , - 2965 , - 1448 , - 4715 , - 990 , - 2049 , - 2004 , - 855 , - 4490 , - 1133 , - 2560 , - 2883 , - 2102 , - 217 , - 3116 , - 4911 , - 5602 , - 5189 , - 3672 , - 1051 , - 3214 , - 4273 , - 4228 , - 3079 , - 826 , - 3357 , - 4784 , - 5107 , - 4326 , - 2441 , - 5340 , - 1247 , - 1938 , - 1525 , - 8 , - 3275 , - 5438 , - 609 , - 564 , - 5303 , - 3050 , - 5581 , - 1120 , - 1443 , - 662 , - 4665 , - 1676 , - 3471 , - 4162 , - 3749 , - 2232 , - 5499 , - 1774 , - 2833 , - 2788 , - 1639 , - 5274 , - 1917 , - 3344 , - 3667 , - 2886 , - 1001 , - 3900 , - 5695 , - 498 , - 85 , - 4456 , - 1835 , - 3998 , - 5057 , - 5012 , - 3863 , - 1610 , - 4141 , - 5568 , - 3 , - 5110 , - 3225 , - 236 , - 2031 , - 2722 , - 2309 , - 792 , - 4059 , - 334 , - 1393 , - 1348 , - 199 , - 3834 , - 477 , - 1904 , - 2227 , - 1446 , - 5449 , - 2460 , - 4255 , - 4946 , - 4533 , - 3016 , - 395 , - 2558 , - 3617 , - 3572 , - 2423 , - 170 , - 2701 , - 4128 , - 4451 , - 3670 , - 1785 , - 4684 , - 591 , - 1282 , - 869 , - 5240 , - 2619 , - 4782 , - 5841 , - 5796 , - 4647 , - 2394 , - 4925 , - 464 , - 787 , - 6 , - 4009 , - 1020 , - 2815 , - 3506 , - 3093 , - 1576 , - 4843 , - 1118 , - 2177 , - 2132 , - 983 , - 4618 , - 1261 , - 2688 , - 3011 , - 2230 , - 345 , - 3244 , - 5039 , - 5730 , - 5317 , - 3800 , - 1179 , - 3342 , - 4401 , - 4356 , - 3207 , - 954 , - 3485 , - 4912 , - 5235 , - 4454 , - 2569 , - 5468 , - 1375 , - 2066 , - 1653 , - 136 , - 3403 , - 5566 , - 737 , - 692 , - 5431 , - 3178 , - 5709 , - 1248 , - 1571 , - 790 , - 4793 , - 1804 , - 3599 , - 4290 , - 3877 , - 2360 , - 5627 , - 1902 , - 2961 , - 2916 , - 1767 , - 5402 , - 2045 , - 3472 , - 3795 , - 3014 , - 1129 , - 4028 , - 5823 , - 626 , - 213 , - 4584 , - 1963 , - 4126 , - 5185 , - 5140 , - 3991 , - 1738 , - 4269 , - 5696 , - 131 , - 5238 , - 3353 , - 364 , - 2159 , - 2850 , - 2437 , - 920 , - 4187 , - 462 , - 1521 , - 1476 , - 327 , - 3962 , - 605 , - 2032 , - 2355 , - 1574 , - 5577 , - 2588 , - 4383 , - 5074 , - 4661 , - 3144 , - 523 , - 2686 , - 3745 , - 3700 , - 2551 , - 298 , - 2829 , - 4256 , - 4579 , - 3798 , - 1913 , - 4812 , - 719 , - 1410 , - 997 , - 5368 , - 2747 , - 4910 , - 81 , - 36 , - 4775 , - 2522 , - 5053 , - 592 , - 915 , - 134 , - 4137 , - 1148 , - 2943 , - 3634 , - 3221 , - 1704 , - 4971 , - 1246 , - 2305 , - 2260 , - 1111 , - 4746 , - 1389 , - 2816 , - 3139 , - 2358 , - 473 , - 3372 , - 5167 , - 5858 , - 5445 , - 3928 , - 1307 , - 3470 , - 4529 , - 4484 , - 3335 , - 1082 , - 3613 , - 5040 , - 5363 , - 4582 , - 2697 , - 5596 , - 1503 , - 2194 , - 1781 , - 264 , - 3531 , - 5694 , - 865 , - 820 , - 5559 , - 3306 , - 5837 , - 1376 , - 1699 , - 918 , - 4921 , - 1932 , - 3727 , - 4418 , - 4005 , - 2488 , - 5755 , - 2030 , - 3089 , - 3044 , - 1895 , - 5530 , - 2173 , - 3600 , - 3923 , - 3142 , - 1257 , - 4156 , - 63 , - 754 , - 341 , - 4712 , - 2091 , - 4254 , - 5313 , - 5268 , - 4119 , - 1866 , - 4397 , - 5824 , - 259 , - 5366 , - 3481 , - 492 , - 2287 , - 2978 , - 2565 , - 1048 , - 4315 , - 590 , - 1649 , - 1604 , - 455 , - 4090 , - 733 , - 2160 , - 2483 , - 1702 , - 5705 , - 2716 , - 4511 , - 5202 , - 4789 , - 3272 , - 651 , - 2814 , - 3873 , - 3828 , - 2679 , - 426 , - 2957 , - 4384 , - 4707 , - 3926 , - 2041 , - 4940 , - 847 , - 1538 , - 1125 , - 5496 , - 2875 , - 5038 , - 209 , - 164 , - 4903 , - 2650 , - 5181 , - 720 , - 1043 , - 262 , - 4265 , - 1276 , - 3071 , - 3762 , - 3349 , - 1832 , - 5099 , - 1374 , - 2433 , - 2388 , - 1239 , - 4874 , - 1517 , - 2944 , - 3267 , - 2486 , - 601 , - 3500 , - 5295 , - 98 , - 5573 , - 4056 , - 1435 , - 3598 , - 4657 , - 4612 , - 3463 , - 1210 , - 3741 , - 5168 , - 5491 , - 4710 , - 2825 , - 5724 , - 1631 , - 2322 , - 1909 , - 392 , - 3659 , - 5822 , - 993 , - 948 , - 5687 , - 3434 , - 77 , - 1504 , - 1827 , - 1046 , - 5049 , - 2060 , - 3855 , - 4546 , - 4133 , - 2616 , - 5883 , - 2158 , - 3217 , - 3172 , - 2023 , - 5658 , - 2301 , - 3728 , - 4051 , - 3270 , - 1385 , - 4284 , - 191 , - 882 , - 469 , - 4840 , - 2219 , - 4382 , - 5441 , - 5396 , - 4247 , - 1994 , - 4525 , - 64 , - 387 , - 5494 , - 3609 , - 620 , - 2415 , - 3106 , - 2693 , - 1176 , - 4443 , - 718 , - 1777 , - 1732 , - 583 , - 4218 , - 861 , - 2288 , - 2611 , - 1830 , - 5833 , - 2844 , - 4639 , - 5330 , - 4917 , - 3400 , - 779 , - 2942 , - 4001 , - 3956 , - 2807 , - 554 , - 3085 , - 4512 , - 4835 , - 4054 , - 2169 , - 5068 , - 975 , - 1666 , - 1253 , - 5624 , - 3003 , - 5166 , - 337 , - 292 , - 5031 , - 2778 , - 5309 , - 848 , - 1171 , - 390 , - 4393 , - 1404 , - 3199 , - 3890 , - 3477 , - 1960 , - 5227 , - 1502 , - 2561 , - 2516 , - 1367 , - 5002 , - 1645 , - 3072 , - 3395 , - 2614 , - 729 , - 3628 , - 5423 , - 226 , - 5701 , - 4184 , - 1563 , - 3726 , - 4785 , - 4740 , - 3591 , - 1338 , - 3869 , - 5296 , - 5619 , - 4838 , - 2953 , - 5852 , - 1759 , - 2450 , - 2037 , - 520 , - 3787 , - 62 , - 1121 , - 1076 , - 5815 , - 3562 , - 205 , - 1632 , - 1955 , - 1174 , - 5177 , - 2188 , - 3983 , - 4674 , - 4261 , - 2744 , - 123 , - 2286 , - 3345 , - 3300 , - 2151 , - 5786 , - 2429 , - 3856 , - 4179 , - 3398 , - 1513 , - 4412 , - 319 , - 1010 , - 597 , - 4968 , - 2347 , - 4510 , - 5569 , - 5524 , - 4375 , - 2122 , - 4653 , - 192 , - 515 , - 5622 , - 3737 , - 748 , - 2543 , - 3234 , - 2821 , - 1304 , - 4571 , - 846 , - 1905 , - 1860 , - 711 , - 4346 , - 989 , - 2416 , - 2739 , - 1958 , - 73 , - 2972 , - 4767 , - 5458 , - 5045 , - 3528 , - 907 , - 3070 , - 4129 , - 4084 , - 2935 , - 682 , - 3213 , - 4640 , - 4963 , - 4182 , - 2297 , - 5196 , - 1103 , - 1794 , - 1381 , - 5752 , - 3131 , - 5294 , - 465 , - 420 , - 5159 , - 2906 , - 5437 , - 976 , - 1299 , - 518 , - 4521 , - 1532 , - 3327 , - 4018 , - 3605 , - 2088 , - 5355 , - 1630 , - 2689 , - 2644 , - 1495 , - 5130 , - 1773 , - 3200 , - 3523 , - 2742 , - 857 , - 3756 , - 5551 , - 354 , - 5829 , - 4312 , - 1691 , - 3854 , - 4913 , - 4868 , - 3719 , - 1466 , - 3997 , - 5424 , - 5747 , - 4966 , - 3081 , - 92 , - 1887 , - 2578 , - 2165 , - 648 , - 3915 , - 190 , - 1249 , - 1204 , - 55 , - 3690 , - 333 , - 1760 , - 2083 , - 1302 , - 5305 , - 2316 , - 4111 , - 4802 , - 4389 , - 2872 , - 251 , - 2414 , - 3473 , - 3428 , - 2279 , - 26 , - 2557 , - 3984 , - 4307 , - 3526 , - 1641 , - 4540 , - 447 , - 1138 , - 725 , - 5096 , - 2475 , - 4638 , - 5697 , - 5652 , - 4503 , - 2250 , - 4781 , - 320 , - 643 , - 5750 , - 3865 , - 876 , - 2671 , - 3362 , - 2949 , - 1432 , - 4699 , - 974 , - 2033 , - 1988 , - 839 , - 4474 , - 1117 , - 2544 , - 2867 , - 2086 , - 201 , - 3100 , - 4895 , - 5586 , - 5173 , - 3656 , - 1035 , - 3198 , - 4257 , - 4212 , - 3063 , - 810 , - 3341 , - 4768 , - 5091 , - 4310 , - 2425 , - 5324 , - 1231 , - 1922 , - 1509 , - 5880 , - 3259 , - 5422 , - 593 , - 548 , - 5287 , - 3034 , - 5565 , - 1104 , - 1427 , - 646 , - 4649 , - 1660 , - 3455 , - 4146 , - 3733 , - 2216 , - 5483 , - 1758 , - 2817 , - 2772 , - 1623 , - 5258 , - 1901 , - 3328 , - 3651 , - 2870 , - 985 , - 3884 , - 5679 , - 482 , - 69 , - 4440 , - 1819 , - 3982 , - 5041 , - 4996 , - 3847 , - 1594 , - 4125 , - 5552 , - 5875 , - 5094 , - 3209 , - 220 , - 2015 , - 2706 , - 2293 , - 776 , - 4043 , - 318 , - 1377 , - 1332 , - 183 , - 3818 , - 461 , - 1888 , - 2211 , - 1430 , - 5433 , - 2444 , - 4239 , - 4930 , - 4517 , - 3000 , - 379 , - 2542 , - 3601 , - 3556 , - 2407 , - 154 , - 2685 , - 4112 , - 4435 , - 3654 , - 1769 , - 4668 , - 575 , - 1266 , - 853 , - 5224 , - 2603 , - 4766 , - 5825 , - 5780 , - 4631 , - 2378 , - 4909 , - 448 , - 771 , - 5878 , - 3993 , - 1004 , - 2799 , - 3490 , - 3077 , - 1560 , - 4827 , - 1102 , - 2161 , - 2116 , - 967 , - 4602 , - 1245 , - 2672 , - 2995 , - 2214 , - 329 , - 3228 , - 5023 , - 5714 , - 5301 , - 3784 , - 1163 , - 3326 , - 4385 , - 4340 , - 3191 , - 938 , - 3469 , - 4896 , - 5219 , - 4438 , - 2553 , - 5452 , - 1359 , - 2050 , - 1637 , - 120 , - 3387 , - 5550 , - 721 , - 676 , - 5415 , - 3162 , - 5693 , - 1232 , - 1555 , - 774 , - 4777 , - 1788 , - 3583 , - 4274 , - 3861 , - 2344 , - 5611 , - 1886 , - 2945 , - 2900 , - 1751 , - 5386 , - 2029 , - 3456 , - 3779 , - 2998 , - 1113 , - 4012 , - 5807 , - 610 , - 197 , - 4568 , - 1947 , - 4110 , - 5169 , - 5124 , - 3975 , - 1722 , - 4253 , - 5680 , - 115 , - 5222 , - 3337 , - 348 , - 2143 , - 2834 , - 2421 , - 904 , - 4171 , - 446 , - 1505 , - 1460 , - 311 , - 3946 , - 589 , - 2016 , - 2339 , - 1558 , - 5561 , - 2572 , - 4367 , - 5058 , - 4645 , - 3128 , - 507 , - 2670 , - 3729 , - 3684 , - 2535 , - 282 , - 2813 , - 4240 , - 4563 , - 3782 , - 1897 , - 4796 , - 703 , - 1394 , - 981 , - 5352 , - 2731 , - 4894 , - 65 , - 20 , - 4759 , - 2506 , - 5037 , - 576 , - 899 , - 118 , - 4121 , - 1132 , - 2927 , - 3618 , - 3205 , - 1688 , - 4955 , - 1230 , - 2289 , - 2244 , - 1095 , - 4730 , - 1373 , - 2800 , - 3123 , - 2342 , - 457 , - 3356 , - 5151 , - 5842 , - 5429 , - 3912 , - 1291 , - 3454 , - 4513 , - 4468 , - 3319 , - 1066 , - 3597 , - 5024 , - 5347 , - 4566 , - 2681 , - 5580 , - 1487 , - 2178 , - 1765 , - 248 , - 3515 , - 5678 , - 849 , - 804 , - 5543 , - 3290 , - 5821 , - 1360 , - 1683 , - 902 , - 4905 , - 1916 , - 3711 , - 4402 , - 3989 , - 2472 , - 5739 , - 2014 , - 3073 , - 3028 , - 1879 , - 5514 , - 2157 , - 3584 , - 3907 , - 3126 , - 1241 , - 4140 , - 47 , - 738 , - 325 , - 4696 , - 2075 , - 4238 , - 5297 , - 5252 , - 4103 , - 1850 , - 4381 , - 5808 , - 243 , - 5350 , - 3465 , - 476 , - 2271 , - 2962 , - 2549 , - 1032 , - 4299 , - 574 , - 1633 , - 1588 , - 439 , - 4074 , - 717 , - 2144 , - 2467 , - 1686 , - 5689 , - 2700 , - 4495 , - 5186 , - 4773 , - 3256 , - 635 , - 2798 , - 3857 , - 3812 , - 2663 , - 410 , - 2941 , - 4368 , - 4691 , - 3910 , - 2025 , - 4924 , - 831 , - 1522 , - 1109 , - 5480 , - 2859 , - 5022 , - 193 , - 148 , - 4887 , - 2634 , - 5165 , - 704 , - 1027 , - 246 , - 4249 , - 1260 , - 3055 , - 3746 , - 3333 , - 1816 , - 5083 , - 1358 , - 2417 , - 2372 , - 1223 , - 4858 , - 1501 , - 2928 , - 3251 , - 2470 , - 585 , - 3484 , - 5279 , - 82 , - 5557 , - 4040 , - 1419 , - 3582 , - 4641 , - 4596 , - 3447 , - 1194 , - 3725 , - 5152 , - 5475 , - 4694 , - 2809 , - 5708 , - 1615 , - 2306 , - 1893 , - 376 , - 3643 , - 5806 , - 977 , - 932 , - 5671 , - 3418 , - 61 , - 1488 , - 1811 , - 1030 , - 5033 , - 2044 , - 3839 , - 4530 , - 4117 , - 2600 , - 5867 , - 2142 , - 3201 , - 3156 , - 2007 , - 5642 , - 2285 , - 3712 , - 4035 , - 3254 , - 1369 , - 4268 , - 175 , - 866 , - 453 , - 4824 , - 2203 , - 4366 , - 5425 , - 5380 , - 4231 , - 1978 , - 4509 , - 48 , - 371 , - 5478 , - 3593 , - 604 , - 2399 , - 3090 , - 2677 , - 1160 , - 4427 , - 702 , - 1761 , - 1716 , - 567 , - 4202 , - 845 , - 2272 , - 2595 , - 1814 , - 5817 , - 2828 , - 4623 , - 5314 , - 4901 , - 3384 , - 763 , - 2926 , - 3985 , - 3940 , - 2791 , - 538 , - 3069 , - 4496 , - 4819 , - 4038 , - 2153 , - 5052 , - 959 , - 1650 , - 1237 , - 5608 , - 2987 , - 5150 , - 321 , - 276 , - 5015 , - 2762 , - 5293 , - 832 , - 1155 , - 374 , - 4377 , - 1388 , - 3183 , - 3874 , - 3461 , - 1944 , - 5211 , - 1486 , - 2545 , - 2500 , - 1351 , - 4986 , - 1629 , - 3056 , - 3379 , - 2598 , - 713 , - 3612 , - 5407 , - 210 , - 5685 , - 4168 , - 1547 , - 3710 , - 4769 , - 4724 , - 3575 , - 1322 , - 3853 , - 5280 , - 5603 , - 4822 , - 2937 , - 5836 , - 1743 , - 2434 , - 2021 , - 504 , - 3771 , - 46 , - 1105 , - 1060 , - 5799 , - 3546 , - 189 , - 1616 , - 1939 , - 1158 , - 5161 , - 2172 , - 3967 , - 4658 , - 4245 , - 2728 , - 107 , - 2270 , - 3329 , - 3284 , - 2135 , - 5770 , - 2413 , - 3840 , - 4163 , - 3382 , - 1497 , - 4396 , - 303 , - 994 , - 581 , - 4952 , - 2331 , - 4494 , - 5553 , - 5508 , - 4359 , - 2106 , - 4637 , - 176 , - 499 , - 5606 , - 3721 , - 732 , - 2527 , - 3218 , - 2805 , - 1288 , - 4555 , - 830 , - 1889 , - 1844 , - 695 , - 4330 , - 973 , - 2400 , - 2723 , - 1942 , - 57 , - 2956 , - 4751 , - 5442 , - 5029 , - 3512 , - 891 , - 3054 , - 4113 , - 4068 , - 2919 , - 666 , - 3197 , - 4624 , - 4947 , - 4166 , - 2281 , - 5180 , - 1087 , - 1778 , - 1365 , - 5736 , - 3115 , - 5278 , - 449 , - 404 , - 5143 , - 2890 , - 5421 , - 960 , - 1283 , - 502 , - 4505 , - 1516 , - 3311 , - 4002 , - 3589 , - 2072 , - 5339 , - 1614 , - 2673 , - 2628 , - 1479 , - 5114 , - 1757 , - 3184 , - 3507 , - 2726 , - 841 , - 3740 , - 5535 , - 338 , - 5813 , - 4296 , - 1675 , - 3838 , - 4897 , - 4852 , - 3703 , - 1450 , - 3981 , - 5408 , - 5731 , - 4950 , - 3065 , - 76 , - 1871 , - 2562 , - 2149 , - 632 , - 3899 , - 174 , - 1233 , - 1188 , - 39 , - 3674 , - 317 , - 1744 , - 2067 , - 1286 , - 5289 , - 2300 , - 4095 , - 4786 , - 4373 , - 2856 , - 235 , - 2398 , - 3457 , - 3412 , - 2263 , - 10 , - 2541 , - 3968 , - 4291 , - 3510 , - 1625 , - 4524 , - 431 , - 1122 , - 709 , - 5080 , - 2459 , - 4622 , - 5681 , - 5636 , - 4487 , - 2234 , - 4765 , - 304 , - 627 , - 5734 , - 3849 , - 860 , - 2655 , - 3346 , - 2933 , - 1416 , - 4683 , - 958 , - 2017 , - 1972 , - 823 , - 4458 , - 1101 , - 2528 , - 2851 , - 2070 , - 185 , - 3084 , - 4879 , - 5570 , - 5157 , - 3640 , - 1019 , - 3182 , - 4241 , - 4196 , - 3047 , - 794 , - 3325 , - 4752 , - 5075 , - 4294 , - 2409 , - 5308 , - 1215 , - 1906 , - 1493 , - 5864 , - 3243 , - 5406 , - 577 , - 532 , - 5271 , - 3018 , - 5549 , - 1088 , - 1411 , - 630 , - 4633 , - 1644 , - 3439 , - 4130 , - 3717 , - 2200 , - 5467 , - 1742 , - 2801 , - 2756 , - 1607 , - 5242 , - 1885 , - 3312 , - 3635 , - 2854 , - 969 , - 3868 , - 5663 , - 466 , - 53 , - 4424 , - 1803 , - 3966 , - 5025 , - 4980 , - 3831 , - 1578 , - 4109 , - 5536 , - 5859 , - 5078 , - 3193 , - 204 , - 1999 , - 2690 , - 2277 , - 760 , - 4027 , - 302 , - 1361 , - 1316 , - 167 , - 3802 , - 445 , - 1872 , - 2195 , - 1414 , - 5417 , - 2428 , - 4223 , - 4914 , - 4501 , - 2984 , - 363 , - 2526 , - 3585 , - 3540 , - 2391 , - 138 , - 2669 , - 4096 , - 4419 , - 3638 , - 1753 , - 4652 , - 559 , - 1250 , - 837 , - 5208 , - 2587 , - 4750 , - 5809 , - 5764 , - 4615 , - 2362 , - 4893 , - 432 , - 755 , - 5862 , - 3977 , - 988 , - 2783 , - 3474 , - 3061 , - 1544 , - 4811 , - 1086 , - 2145 , - 2100 , - 951 , - 4586 , - 1229 , - 2656 , - 2979 , - 2198 , - 313 , - 3212 , - 5007 , - 5698 , - 5285 , - 3768 , - 1147 , - 3310 , - 4369 , - 4324 , - 3175 , - 922 , - 3453 , - 4880 , - 5203 , - 4422 , - 2537 , - 5436 , - 1343 , - 2034 , - 1621 , - 104 , - 3371 , - 5534 , - 705 , - 660 , - 5399 , - 3146 , - 5677 , - 1216 , - 1539 , - 758 , - 4761 , - 1772 , - 3567 , - 4258 , - 3845 , - 2328 , - 5595 , - 1870 , - 2929 , - 2884 , - 1735 , - 5370 , - 2013 , - 3440 , - 3763 , - 2982 , - 1097 , - 3996 , - 5791 , - 594 , - 181 , - 4552 , - 1931 , - 4094 , - 5153 , - 5108 , - 3959 , - 1706 , - 4237 , - 5664 , - 99 , - 5206 , - 3321 , - 332 , - 2127 , - 2818 , - 2405 , - 888 , - 4155 , - 430 , - 1489 , - 1444 , - 295 , - 3930 , - 573 , - 2000 , - 2323 , - 1542 , - 5545 , - 2556 , - 4351 , - 5042 , - 4629 , - 3112 , - 491 , - 2654 , - 3713 , - 3668 , - 2519 , - 266 , - 2797 , - 4224 , - 4547 , - 3766 , - 1881 , - 4780 , - 687 , - 1378 , - 965 , - 5336 , - 2715 , - 4878 , - 49 , - 4 , - 4743 , - 2490 , - 5021 , - 560 , - 883 , - 102 , - 4105 , - 1116 , - 2911 , - 3602 , - 3189 , - 1672 , - 4939 , - 1214 , - 2273 , - 2228 , - 1079 , - 4714 , - 1357 , - 2784 , - 3107 , - 2326 , - 441 , - 3340 , - 5135 , - 5826 , - 5413 , - 3896 , - 1275 , - 3438 , - 4497 , - 4452 , - 3303 , - 1050 , - 3581 , - 5008 , - 5331 , - 4550 , - 2665 , - 5564 , - 1471 , - 2162 , - 1749 , - 232 , - 3499 , - 5662 , - 833 , - 788 , - 5527 , - 3274 , - 5805 , - 1344 , - 1667 , - 886 , - 4889 , - 1900 , - 3695 , - 4386 , - 3973 , - 2456 , - 5723 , - 1998 , - 3057 , - 3012 , - 1863 , - 5498 , - 2141 , - 3568 , - 3891 , - 3110 , - 1225 , - 4124 , - 31 , - 722 , - 309 , - 4680 , - 2059 , - 4222 , - 5281 , - 5236 , - 4087 , - 1834 , - 4365 , - 5792 , - 227 , - 5334 , - 3449 , - 460 , - 2255 , - 2946 , - 2533 , - 1016 , - 4283 , - 558 , - 1617 , - 1572 , - 423 , - 4058 , - 701 , - 2128 , - 2451 , - 1670 , - 5673 , - 2684 , - 4479 , - 5170 , - 4757 , - 3240 , - 619 , - 2782 , - 3841 , - 3796 , - 2647 , - 394 , - 2925 , - 4352 , - 4675 , - 3894 , - 2009 , - 4908 , - 815 , - 1506 , - 1093 , - 5464 , - 2843 , - 5006 , - 177 , - 132 , - 4871 , - 2618 , - 5149 , - 688 , - 1011 , - 230 , - 4233 , - 1244 , - 3039 , - 3730 , - 3317 , - 1800 , - 5067 , - 1342 , - 2401 , - 2356 , - 1207 , - 4842 , - 1485 , - 2912 , - 3235 , - 2454 , - 569 , - 3468 , - 5263 , - 66 , - 5541 , - 4024 , - 1403 , - 3566 , - 4625 , - 4580 , - 3431 , - 1178 , - 3709 , - 5136 , - 5459 , - 4678 , - 2793 , - 5692 , - 1599 , - 2290 , - 1877 , - 360 , - 3627 , - 5790 , - 961 , - 916 , - 5655 , - 3402 , - 45 , - 1472 , - 1795 , - 1014 , - 5017 , - 2028 , - 3823 , - 4514 , - 4101 , - 2584 , - 5851 , - 2126 , - 3185 , - 3140 , - 1991 , - 5626 , - 2269 , - 3696 , - 4019 , - 3238 , - 1353 , - 4252 , - 159 , - 850 , - 437 , - 4808 , - 2187 , - 4350 , - 5409 , - 5364 , - 4215 , - 1962 , - 4493 , - 32 , - 355 , - 5462 , - 3577 , - 588 , - 2383 , - 3074 , - 2661 , - 1144 , - 4411 , - 686 , - 1745 , - 1700 , - 551 , - 4186 , - 829 , - 2256 , - 2579 , - 1798 , - 5801 , - 2812 , - 4607 , - 5298 , - 4885 , - 3368 , - 747 , - 2910 , - 3969 , - 3924 , - 2775 , - 522 , - 3053 , - 4480 , - 4803 , - 4022 , - 2137 , - 5036 , - 943 , - 1634 , - 1221 , - 5592 , - 2971 , - 5134 , - 305 , - 260 , - 4999 , - 2746 , - 5277 , - 816 , - 1139 , - 358 , - 4361 , - 1372 , - 3167 , - 3858 , - 3445 , - 1928 , - 5195 , - 1470 , - 2529 , - 2484 , - 1335 , - 4970 , - 1613 , - 3040 , - 3363 , - 2582 , - 697 , - 3596 , - 5391 , - 194 , - 5669 , - 4152 , - 1531 , - 3694 , - 4753 , - 4708 , - 3559 , - 1306 , - 3837 , - 5264 , - 5587 , - 4806 , - 2921 , - 5820 , - 1727 , - 2418 , - 2005 , - 488 , - 3755 , - 30 , - 1089 , - 1044 , - 5783 , - 3530 , - 173 , - 1600 , - 1923 , - 1142 , - 5145 , - 2156 , - 3951 , - 4642 , - 4229 , - 2712 , - 91 , - 2254 , - 3313 , - 3268 , - 2119 , - 5754 , - 2397 , - 3824 , - 4147 , - 3366 , - 1481 , - 4380 , - 287 , - 978 , - 565 , - 4936 , - 2315 , - 4478 , - 5537 , - 5492 , - 4343 , - 2090 , - 4621 , - 160 , - 483 , - 5590 , - 3705 , - 716 , - 2511 , - 3202 , - 2789 , - 1272 , - 4539 , - 814 , - 1873 , - 1828 , - 679 , - 4314 , - 957 , - 2384 , - 2707 , - 1926 , - 41 , - 2940 , - 4735 , - 5426 , - 5013 , - 3496 , - 875 , - 3038 , - 4097 , - 4052 , - 2903 , - 650 , - 3181 , - 4608 , - 4931 , - 4150 , - 2265 , - 5164 , - 1071 , - 1762 , - 1349 , - 5720 , - 3099 , - 5262 , - 433 , - 388 , - 5127 , - 2874 , - 5405 , - 944 , - 1267 , - 486 , - 4489 , - 1500 , - 3295 , - 3986 , - 3573 , - 2056 , - 5323 , - 1598 , - 2657 , - 2612 , - 1463 , - 5098 , - 1741 , - 3168 , - 3491 , - 2710 , - 825 , - 3724 , - 5519 , - 322 , - 5797 , - 4280 , - 1659 , - 3822 , - 4881 , - 4836 , - 3687 , - 1434 , - 3965 , - 5392 , - 5715 , - 4934 , - 3049 , - 60 , - 1855 , - 2546 , - 2133 , - 616 , - 3883 , - 158 , - 1217 , - 1172 , - 23 , - 3658 , - 301 , - 1728 , - 2051 , - 1270 , - 5273 , - 2284 , - 4079 , - 4770 , - 4357 , - 2840 , - 219 , - 2382 , - 3441 , - 3396 , - 2247 , - 5882 , - 2525 , - 3952 , - 4275 , - 3494 , - 1609 , - 4508 , - 415 , - 1106 , - 693 , - 5064 , - 2443 , - 4606 , - 5665 , - 5620 , - 4471 , - 2218 , - 4749 , - 288 , - 611 , - 5718 , - 3833 , - 844 , - 2639 , - 3330 , - 2917 , - 1400 , - 4667 , - 942 , - 2001 , - 1956 , - 807 , - 4442 , - 1085 , - 2512 , - 2835 , - 2054 , - 169 , - 3068 , - 4863 , - 5554 , - 5141 , - 3624 , - 1003 , - 3166 , - 4225 , - 4180 , - 3031 , - 778 , - 3309 , - 4736 , - 5059 , - 4278 , - 2393 , - 5292 , - 1199 , - 1890 , - 1477 , - 5848 , - 3227 , - 5390 , - 561 , - 516 , - 5255 , - 3002 , - 5533 , - 1072 , - 1395 , - 614 , - 4617 , - 1628 , - 3423 , - 4114 , - 3701 , - 2184 , - 5451 , - 1726 , - 2785 , - 2740 , - 1591 , - 5226 , - 1869 , - 3296 , - 3619 , - 2838 , - 953 , - 3852 , - 5647 , - 450 , - 37 , - 4408 , - 1787 , - 3950 , - 5009 , - 4964 , - 3815 , - 1562 , - 4093 , - 5520 , - 5843 , - 5062 , - 3177 , - 188 , - 1983 , - 2674 , - 2261 , - 744 , - 4011 , - 286 , - 1345 , - 1300 , - 151 , - 3786 , - 429 , - 1856 , - 2179 , - 1398 , - 5401 , - 2412 , - 4207 , - 4898 , - 4485 , - 2968 , - 347 , - 2510 , - 3569 , - 3524 , - 2375 , - 122 , - 2653 , - 4080 , - 4403 , - 3622 , - 1737 , - 4636 , - 543 , - 1234 , - 821 , - 5192 , - 2571 , - 4734 , - 5793 , - 5748 , - 4599 , - 2346 , - 4877 , - 416 , - 739 , - 5846 , - 3961 , - 972 , - 2767 , - 3458 , - 3045 , - 1528 , - 4795 , - 1070 , - 2129 , - 2084 , - 935 , - 4570 , - 1213 , - 2640 , - 2963 , - 2182 , - 297 , - 3196 , - 4991 , - 5682 , - 5269 , - 3752 , - 1131 , - 3294 , - 4353 , - 4308 , - 3159 , - 906 , - 3437 , - 4864 , - 5187 , - 4406 , - 2521 , - 5420 , - 1327 , - 2018 , - 1605 , - 88 , - 3355 , - 5518 , - 689 , - 644 , - 5383 , - 3130 , - 5661 , - 1200 , - 1523 , - 742 , - 4745 , - 1756 , - 3551 , - 4242 , - 3829 , - 2312 , - 5579 , - 1854 , - 2913 , - 2868 , - 1719 , - 5354 , - 1997 , - 3424 , - 3747 , - 2966 , - 1081 , - 3980 , - 5775 , - 578 , - 165 , - 4536 , - 1915 , - 4078 , - 5137 , - 5092 , - 3943 , - 1690 , - 4221 , - 5648 , - 83 , - 5190 , - 3305 , - 316 , - 2111 , - 2802 , - 2389 , - 872 , - 4139 , - 414 , - 1473 , - 1428 , - 279 , - 3914 , - 557 , - 1984 , - 2307 , - 1526 , - 5529 , - 2540 , - 4335 , - 5026 , - 4613 , - 3096 , - 475 , - 2638 , - 3697 , - 3652 , - 2503 , - 250 , - 2781 , - 4208 , - 4531 , - 3750 , - 1865 , - 4764 , - 671 , - 1362 , - 949 , - 5320 , - 2699 , - 4862 , - 33 , - 5876 , - 4727 , - 2474 , - 5005 , - 544 , - 867 , - 86 , - 4089 , - 1100 , - 2895 , - 3586 , - 3173 , - 1656 , - 4923 , - 1198 , - 2257 , - 2212 , - 1063 , - 4698 , - 1341 , - 2768 , - 3091 , - 2310 , - 425 , - 3324 , - 5119 , - 5810 , - 5397 , - 3880 , - 1259 , - 3422 , - 4481 , - 4436 , - 3287 , - 1034 , - 3565 , - 4992 , - 5315 , - 4534 , - 2649 , - 5548 , - 1455 , - 2146 , - 1733 , - 216 , - 3483 , - 5646 , - 817 , - 772 , - 5511 , - 3258 , - 5789 , - 1328 , - 1651 , - 870 , - 4873 , - 1884 , - 3679 , - 4370 , - 3957 , - 2440 , - 5707 , - 1982 , - 3041 , - 2996 , - 1847 , - 5482 , - 2125 , - 3552 , - 3875 , - 3094 , - 1209 , - 4108 , - 15 , - 706 , - 293 , - 4664 , - 2043 , - 4206 , - 5265 , - 5220 , - 4071 , - 1818 , - 4349 , - 5776 , - 211 , - 5318 , - 3433 , - 444 , - 2239 , - 2930 , - 2517 , - 1000 , - 4267 , - 542 , - 1601 , - 1556 , - 407 , - 4042 , - 685 , - 2112 , - 2435 , - 1654 , - 5657 , - 2668 , - 4463 , - 5154 , - 4741 , - 3224 , - 603 , - 2766 , - 3825 , - 3780 , - 2631 , - 378 , - 2909 , - 4336 , - 4659 , - 3878 , - 1993 , - 4892 , - 799 , - 1490 , - 1077 , - 5448 , - 2827 , - 4990 , - 161 , - 116 , - 4855 , - 2602 , - 5133 , - 672 , - 995 , - 214 , - 4217 , - 1228 , - 3023 , - 3714 , - 3301 , - 1784 , - 5051 , - 1326 , - 2385 , - 2340 , - 1191 , - 4826 , - 1469 , - 2896 , - 3219 , - 2438 , - 553 , - 3452 , - 5247 , - 50 , - 5525 , - 4008 , - 1387 , - 3550 , - 4609 , - 4564 , - 3415 , - 1162 , - 3693 , - 5120 , - 5443 , - 4662 , - 2777 , - 5676 , - 1583 , - 2274 , - 1861 , - 344 , - 3611 , - 5774 , - 945 , - 900 , - 5639 , - 3386 , - 29 , - 1456 , - 1779 , - 998 , - 5001 , - 2012 , - 3807 , - 4498 , - 4085 , - 2568 , - 5835 , - 2110 , - 3169 , - 3124 , - 1975 , - 5610 , - 2253 , - 3680 , - 4003 , - 3222 , - 1337 , - 4236 , - 143 , - 834 , - 421 , - 4792 , - 2171 , - 4334 , - 5393 , - 5348 , - 4199 , - 1946 , - 4477 , - 16 , - 339 , - 5446 , - 3561 , - 572 , - 2367 , - 3058 , - 2645 , - 1128 , - 4395 , - 670 , - 1729 , - 1684 , - 535 , - 4170 , - 813 , - 2240 , - 2563 , - 1782 , - 5785 , - 2796 , - 4591 , - 5282 , - 4869 , - 3352 , - 731 , - 2894 , - 3953 , - 3908 , - 2759 , - 506 , - 3037 , - 4464 , - 4787 , - 4006 , - 2121 , - 5020 , - 927 , - 1618 , - 1205 , - 5576 , - 2955 , - 5118 , - 289 , - 244 , - 4983 , - 2730 , - 5261 , - 800 , - 1123 , - 342 , - 4345 , - 1356 , - 3151 , - 3842 , - 3429 , - 1912 , - 5179 , - 1454 , - 2513 , - 2468 , - 1319 , - 4954 , - 1597 , - 3024 , - 3347 , - 2566 , - 681 , - 3580 , - 5375 , - 178 , - 5653 , - 4136 , - 1515 , - 3678 , - 4737 , - 4692 , - 3543 , - 1290 , - 3821 , - 5248 , - 5571 , - 4790 , - 2905 , - 5804 , - 1711 , - 2402 , - 1989 , - 472 , - 3739 , - 14 , - 1073 , - 1028 , - 5767 , - 3514 , - 157 , - 1584 , - 1907 , - 1126 , - 5129 , - 2140 , - 3935 , - 4626 , - 4213 , - 2696 , - 75 , - 2238 , - 3297 , - 3252 , - 2103 , - 5738 , - 2381 , - 3808 , - 4131 , - 3350 , - 1465 , - 4364 , - 271 , - 962 , - 549 , - 4920 , - 2299 , - 4462 , - 5521 , - 5476 , - 4327 , - 2074 , - 4605 , - 144 , - 467 , - 5574 , - 3689 , - 700 , - 2495 , - 3186 , - 2773 , - 1256 , - 4523 , - 798 , - 1857 , - 1812 , - 663 , - 4298 , - 941 , - 2368 , - 2691 , - 1910 , - 25 , - 2924 , - 4719 , - 5410 , - 4997 , - 3480 , - 859 , - 3022 , - 4081 , - 4036 , - 2887 , - 634 , - 3165 , - 4592 , - 4915 , - 4134 , - 2249 , - 5148 , - 1055 , - 1746 , - 1333 , - 5704 , - 3083 , - 5246 , - 417 , - 372 , - 5111 , - 2858 , - 5389 , - 928 , - 1251 , - 470 , - 4473 , - 1484 , - 3279 , - 3970 , - 3557 , - 2040 , - 5307 , - 1582 , - 2641 , - 2596 , - 1447 , - 5082 , - 1725 , - 3152 , - 3475 , - 2694 , - 809 , - 3708 , - 5503 , - 306 , - 5781 , - 4264 , - 1643 , - 3806 , - 4865 , - 4820 , - 3671 , - 1418 , - 3949 , - 5376 , - 5699 , - 4918 , - 3033 , - 44 , - 1839 , - 2530 , - 2117 , - 600 , - 3867 , - 142 , - 1201 , - 1156 , - 7 , - 3642 , - 285 , - 1712 , - 2035 , - 1254 , - 5257 , - 2268 , - 4063 , - 4754 , - 4341 , - 2824 , - 203 , - 2366 , - 3425 , - 3380 , - 2231 , - 5866 , - 2509 , - 3936 , - 4259 , - 3478 , - 1593 , - 4492 , - 399 , - 1090 , - 677 , - 5048 , - 2427 , - 4590 , - 5649 , - 5604 , - 4455 , - 2202 , - 4733 , - 272 , - 595 , - 5702 , - 3817 , - 828 , - 2623 , - 3314 , - 2901 , - 1384 , - 4651 , - 926 , - 1985 , - 1940 , - 791 , - 4426 , - 1069 , - 2496 , - 2819 , - 2038 , - 153 , - 3052 , - 4847 , - 5538 , - 5125 , - 3608 , - 987 , - 3150 , - 4209 , - 4164 , - 3015 , - 762 , - 3293 , - 4720 , - 5043 , - 4262 , - 2377 , - 5276 , - 1183 , - 1874 , - 1461 , - 5832 , - 3211 , - 5374 , - 545 , - 500 , - 5239 , - 2986 , - 5517 , - 1056 , - 1379 , - 598 , - 4601 , - 1612 , - 3407 , - 4098 , - 3685 , - 2168 , - 5435 , - 1710 , - 2769 , - 2724 , - 1575 , - 5210 , - 1853 , - 3280 , - 3603 , - 2822 , - 937 , - 3836 , - 5631 , - 434 , - 21 , - 4392 , - 1771 , - 3934 , - 4993 , - 4948 , - 3799 , - 1546 , - 4077 , - 5504 , - 5827 , - 5046 , - 3161 , - 172 , - 1967 , - 2658 , - 2245 , - 728 , - 3995 , - 270 , - 1329 , - 1284 , - 135 , - 3770 , - 413 , - 1840 , - 2163 , - 1382 , - 5385 , - 2396 , - 4191 , - 4882 , - 4469 , - 2952 , - 331 , - 2494 , - 3553 , - 3508 , - 2359 , - 106 , - 2637 , - 4064 , - 4387 , - 3606 , - 1721 , - 4620 , - 527 , - 1218 , - 805 , - 5176 , - 2555 , - 4718 , - 5777 , - 5732 , - 4583 , - 2330 , - 4861 , - 400 , - 723 , - 5830 , - 3945 , - 956 , - 2751 , - 3442 , - 3029 , - 1512 , - 4779 , - 1054 , - 2113 , - 2068 , - 919 , - 4554 , - 1197 , - 2624 , - 2947 , - 2166 , - 281 , - 3180 , - 4975 , - 5666 , - 5253 , - 3736 , - 1115 , - 3278 , - 4337 , - 4292 , - 3143 , - 890 , - 3421 , - 4848 , - 5171 , - 4390 , - 2505 , - 5404 , - 1311 , - 2002 , - 1589 , - 72 , - 3339 , - 5502 , - 673 , - 628 , - 5367 , - 3114 , - 5645 , - 1184 , - 1507 , - 726 , - 4729 , - 1740 , - 3535 , - 4226 , - 3813 , - 2296 , - 5563 , - 1838 , - 2897 , - 2852 , - 1703 , - 5338 , - 1981 , - 3408 , - 3731 , - 2950 , - 1065 , - 3964 , - 5759 , - 562 , - 149 , - 4520 , - 1899 , - 4062 , - 5121 , - 5076 , - 3927 , - 1674 , - 4205 , - 5632 , - 67 , - 5174 , - 3289 , - 300 , - 2095 , - 2786 , - 2373 , - 856 , - 4123 , - 398 , - 1457 , - 1412 , - 263 , - 3898 , - 541 , - 1968 , - 2291 , - 1510 , - 5513 , - 2524 , - 4319 , - 5010 , - 4597 , - 3080 , - 459 , - 2622 , - 3681 , - 3636 , - 2487 , - 234 , - 2765 , - 4192 , - 4515 , - 3734 , - 1849 , - 4748 , - 655 , - 1346 , - 933 , - 5304 , - 2683 , - 4846 , - 17 , - 5860 , - 4711 , - 2458 , - 4989 , - 528 , - 851 , - 70 , - 4073 , - 1084 , - 2879 , - 3570 , - 3157 , - 1640 , - 4907 , - 1182 , - 2241 , - 2196 , - 1047 , - 4682 , - 1325 , - 2752 , - 3075 , - 2294 , - 409 , - 3308 , - 5103 , - 5794 , - 5381 , - 3864 , - 1243 , - 3406 , - 4465 , - 4420 , - 3271 , - 1018 , - 3549 , - 4976 , - 5299 , - 4518 , - 2633 , - 5532 , - 1439 , - 2130 , - 1717 , - 200 , - 3467 , - 5630 , - 801 , - 756 , - 5495 , - 3242 , - 5773 , - 1312 , - 1635 , - 854 , - 4857 , - 1868 , - 3663 , - 4354 , - 3941 , - 2424 , - 5691 , - 1966 , - 3025 , - 2980 , - 1831 , - 5466 , - 2109 , - 3536 , - 3859 , - 3078 , - 1193 , - 4092 , - 5887 , - 690 , - 277 , - 4648 , - 2027 , - 4190 , - 5249 , - 5204 , - 4055 , - 1802 , - 4333 , - 5760 , - 195 , - 5302 , - 3417 , - 428 , - 2223 , - 2914 , - 2501 , - 984 , - 4251 , - 526 , - 1585 , - 1540 , - 391 , - 4026 , - 669 , - 2096 , - 2419 , - 1638 , - 5641 , - 2652 , - 4447 , - 5138 , - 4725 , - 3208 , - 587 , - 2750 , - 3809 , - 3764 , - 2615 , - 362 , - 2893 , - 4320 , - 4643 , - 3862 , - 1977 , - 4876 , - 783 , - 1474 , - 1061 , - 5432 , - 2811 , - 4974 , - 145 , - 100 , - 4839 , - 2586 , - 5117 , - 656 , - 979 , - 198 , - 4201 , - 1212 , - 3007 , - 3698 , - 3285 , - 1768 , - 5035 , - 1310 , - 2369 , - 2324 , - 1175 , - 4810 , - 1453 , - 2880 , - 3203 , - 2422 , - 537 , - 3436 , - 5231 , - 34 , - 5509 , - 3992 , - 1371 , - 3534 , - 4593 , - 4548 , - 3399 , - 1146 , - 3677 , - 5104 , - 5427 , - 4646 , - 2761 , - 5660 , - 1567 , - 2258 , - 1845 , - 328 , - 3595 , - 5758 , - 929 , - 884 , - 5623 , - 3370 , - 13 , - 1440 , - 1763 , - 982 , - 4985 , - 1996 , - 3791 , - 4482 , - 4069 , - 2552 , - 5819 , - 2094 , - 3153 , - 3108 , - 1959 , - 5594 , - 2237 , - 3664 , - 3987 , - 3206 , - 1321 , - 4220 , - 127 , - 818 , - 405 , - 4776 , - 2155 , - 4318 , - 5377 , - 5332 , - 4183 , - 1930 , - 4461 , - 0 , - 4745 , - 3910 , - 1959 , - 3356 , - 661 , - 4290 , - 851 , - 760 , - 2529 , - 4670 , - 5695 , - 4116 , - 4397 , - 5050 , - 4587 , - 1520 , - 313 , - 5430 , - 3479 , - 4876 , - 2181 , - 5810 , - 2371 , - 2280 , - 4049 , - 238 , - 1263 , - 5636 , - 5917 , - 618 , - 155 , - 3040 , - 1833 , - 998 , - 4999 , - 444 , - 3701 , - 1378 , - 3891 , - 3800 , - 5569 , - 1758 , - 2783 , - 1204 , - 1485 , - 2138 , - 1675 , - 4560 , - 3353 , - 2518 , - 567 , - 1964 , - 5221 , - 2898 , - 5411 , - 5320 , - 1137 , - 3278 , - 4303 , - 2724 , - 3005 , - 3658 , - 3195 , - 128 , - 4873 , - 4038 , - 2087 , - 3484 , - 789 , - 4418 , - 979 , - 888 , - 2657 , - 4798 , - 5823 , - 4244 , - 4525 , - 5178 , - 4715 , - 1648 , - 441 , - 5558 , - 3607 , - 5004 , - 2309 , - 5938 , - 2499 , - 2408 , - 4177 , - 366 , - 1391 , - 5764 , - 93 , - 746 , - 283 , - 3168 , - 1961 , - 1126 , - 5127 , - 572 , - 3829 , - 1506 , - 4019 , - 3928 , - 5697 , - 1886 , - 2911 , - 1332 , - 1613 , - 2266 , - 1803 , - 4688 , - 3481 , - 2646 , - 695 , - 2092 , - 5349 , - 3026 , - 5539 , - 5448 , - 1265 , - 3406 , - 4431 , - 2852 , - 3133 , - 3786 , - 3323 , - 256 , - 5001 , - 4166 , - 2215 , - 3612 , - 917 , - 4546 , - 1107 , - 1016 , - 2785 , - 4926 , - 5951 , - 4372 , - 4653 , - 5306 , - 4843 , - 1776 , - 569 , - 5686 , - 3735 , - 5132 , - 2437 , - 114 , - 2627 , - 2536 , - 4305 , - 494 , - 1519 , - 5892 , - 221 , - 874 , - 411 , - 3296 , - 2089 , - 1254 , - 5255 , - 700 , - 3957 , - 1634 , - 4147 , - 4056 , - 5825 , - 2014 , - 3039 , - 1460 , - 1741 , - 2394 , - 1931 , - 4816 , - 3609 , - 2774 , - 823 , - 2220 , - 5477 , - 3154 , - 5667 , - 5576 , - 1393 , - 3534 , - 4559 , - 2980 , - 3261 , - 3914 , - 3451 , - 384 , - 5129 , - 4294 , - 2343 , - 3740 , - 1045 , - 4674 , - 1235 , - 1144 , - 2913 , - 5054 , - 127 , - 4500 , - 4781 , - 5434 , - 4971 , - 1904 , - 697 , - 5814 , - 3863 , - 5260 , - 2565 , - 242 , - 2755 , - 2664 , - 4433 , - 622 , - 1647 , - 68 , - 349 , - 1002 , - 539 , - 3424 , - 2217 , - 1382 , - 5383 , - 828 , - 4085 , - 1762 , - 4275 , - 4184 , - 1 , - 2142 , - 3167 , - 1588 , - 1869 , - 2522 , - 2059 , - 4944 , - 3737 , - 2902 , - 951 , - 2348 , - 5605 , - 3282 , - 5795 , - 5704 , - 1521 , - 3662 , - 4687 , - 3108 , - 3389 , - 4042 , - 3579 , - 512 , - 5257 , - 4422 , - 2471 , - 3868 , - 1173 , - 4802 , - 1363 , - 1272 , - 3041 , - 5182 , - 255 , - 4628 , - 4909 , - 5562 , - 5099 , - 2032 , - 825 , - 5942 , - 3991 , - 5388 , - 2693 , - 370 , - 2883 , - 2792 , - 4561 , - 750 , - 1775 , - 196 , - 477 , - 1130 , - 667 , - 3552 , - 2345 , - 1510 , - 5511 , - 956 , - 4213 , - 1890 , - 4403 , - 4312 , - 129 , - 2270 , - 3295 , - 1716 , - 1997 , - 2650 , - 2187 , - 5072 , - 3865 , - 3030 , - 1079 , - 2476 , - 5733 , - 3410 , - 5923 , - 5832 , - 1649 , - 3790 , - 4815 , - 3236 , - 3517 , - 4170 , - 3707 , - 640 , - 5385 , - 4550 , - 2599 , - 3996 , - 1301 , - 4930 , - 1491 , - 1400 , - 3169 , - 5310 , - 383 , - 4756 , - 5037 , - 5690 , - 5227 , - 2160 , - 953 , - 118 , - 4119 , - 5516 , - 2821 , - 498 , - 3011 , - 2920 , - 4689 , - 878 , - 1903 , - 324 , - 605 , - 1258 , - 795 , - 3680 , - 2473 , - 1638 , - 5639 , - 1084 , - 4341 , - 2018 , - 4531 , - 4440 , - 257 , - 2398 , - 3423 , - 1844 , - 2125 , - 2778 , - 2315 , - 5200 , - 3993 , - 3158 , - 1207 , - 2604 , - 5861 , - 3538 , - 99 , - 8 , - 1777 , - 3918 , - 4943 , - 3364 , - 3645 , - 4298 , - 3835 , - 768 , - 5513 , - 4678 , - 2727 , - 4124 , - 1429 , - 5058 , - 1619 , - 1528 , - 3297 , - 5438 , - 511 , - 4884 , - 5165 , - 5818 , - 5355 , - 2288 , - 1081 , - 246 , - 4247 , - 5644 , - 2949 , - 626 , - 3139 , - 3048 , - 4817 , - 1006 , - 2031 , - 452 , - 733 , - 1386 , - 923 , - 3808 , - 2601 , - 1766 , - 5767 , - 1212 , - 4469 , - 2146 , - 4659 , - 4568 , - 385 , - 2526 , - 3551 , - 1972 , - 2253 , - 2906 , - 2443 , - 5328 , - 4121 , - 3286 , - 1335 , - 2732 , - 37 , - 3666 , - 227 , - 136 , - 1905 , - 4046 , - 5071 , - 3492 , - 3773 , - 4426 , - 3963 , - 896 , - 5641 , - 4806 , - 2855 , - 4252 , - 1557 , - 5186 , - 1747 , - 1656 , - 3425 , - 5566 , - 639 , - 5012 , - 5293 , - 5946 , - 5483 , - 2416 , - 1209 , - 374 , - 4375 , - 5772 , - 3077 , - 754 , - 3267 , - 3176 , - 4945 , - 1134 , - 2159 , - 580 , - 861 , - 1514 , - 1051 , - 3936 , - 2729 , - 1894 , - 5895 , - 1340 , - 4597 , - 2274 , - 4787 , - 4696 , - 513 , - 2654 , - 3679 , - 2100 , - 2381 , - 3034 , - 2571 , - 5456 , - 4249 , - 3414 , - 1463 , - 2860 , - 165 , - 3794 , - 355 , - 264 , - 2033 , - 4174 , - 5199 , - 3620 , - 3901 , - 4554 , - 4091 , - 1024 , - 5769 , - 4934 , - 2983 , - 4380 , - 1685 , - 5314 , - 1875 , - 1784 , - 3553 , - 5694 , - 767 , - 5140 , - 5421 , - 122 , - 5611 , - 2544 , - 1337 , - 502 , - 4503 , - 5900 , - 3205 , - 882 , - 3395 , - 3304 , - 5073 , - 1262 , - 2287 , - 708 , - 989 , - 1642 , - 1179 , - 4064 , - 2857 , - 2022 , - 71 , - 1468 , - 4725 , - 2402 , - 4915 , - 4824 , - 641 , - 2782 , - 3807 , - 2228 , - 2509 , - 3162 , - 2699 , - 5584 , - 4377 , - 3542 , - 1591 , - 2988 , - 293 , - 3922 , - 483 , - 392 , - 2161 , - 4302 , - 5327 , - 3748 , - 4029 , - 4682 , - 4219 , - 1152 , - 5897 , - 5062 , - 3111 , - 4508 , - 1813 , - 5442 , - 2003 , - 1912 , - 3681 , - 5822 , - 895 , - 5268 , - 5549 , - 250 , - 5739 , - 2672 , - 1465 , - 630 , - 4631 , - 76 , - 3333 , - 1010 , - 3523 , - 3432 , - 5201 , - 1390 , - 2415 , - 836 , - 1117 , - 1770 , - 1307 , - 4192 , - 2985 , - 2150 , - 199 , - 1596 , - 4853 , - 2530 , - 5043 , - 4952 , - 769 , - 2910 , - 3935 , - 2356 , - 2637 , - 3290 , - 2827 , - 5712 , - 4505 , - 3670 , - 1719 , - 3116 , - 421 , - 4050 , - 611 , - 520 , - 2289 , - 4430 , - 5455 , - 3876 , - 4157 , - 4810 , - 4347 , - 1280 , - 73 , - 5190 , - 3239 , - 4636 , - 1941 , - 5570 , - 2131 , - 2040 , - 3809 , - 5950 , - 1023 , - 5396 , - 5677 , - 378 , - 5867 , - 2800 , - 1593 , - 758 , - 4759 , - 204 , - 3461 , - 1138 , - 3651 , - 3560 , - 5329 , - 1518 , - 2543 , - 964 , - 1245 , - 1898 , - 1435 , - 4320 , - 3113 , - 2278 , - 327 , - 1724 , - 4981 , - 2658 , - 5171 , - 5080 , - 897 , - 3038 , - 4063 , - 2484 , - 2765 , - 3418 , - 2955 , - 5840 , - 4633 , - 3798 , - 1847 , - 3244 , - 549 , - 4178 , - 739 , - 648 , - 2417 , - 4558 , - 5583 , - 4004 , - 4285 , - 4938 , - 4475 , - 1408 , - 201 , - 5318 , - 3367 , - 4764 , - 2069 , - 5698 , - 2259 , - 2168 , - 3937 , - 126 , - 1151 , - 5524 , - 5805 , - 506 , - 43 , - 2928 , - 1721 , - 886 , - 4887 , - 332 , - 3589 , - 1266 , - 3779 , - 3688 , - 5457 , - 1646 , - 2671 , - 1092 , - 1373 , - 2026 , - 1563 , - 4448 , - 3241 , - 2406 , - 455 , - 1852 , - 5109 , - 2786 , - 5299 , - 5208 , - 1025 , - 3166 , - 4191 , - 2612 , - 2893 , - 3546 , - 3083 , - 16 , - 4761 , - 3926 , - 1975 , - 3372 , - 677 , - 4306 , - 867 , - 776 , - 2545 , - 4686 , - 5711 , - 4132 , - 4413 , - 5066 , - 4603 , - 1536 , - 329 , - 5446 , - 3495 , - 4892 , - 2197 , - 5826 , - 2387 , - 2296 , - 4065 , - 254 , - 1279 , - 5652 , - 5933 , - 634 , - 171 , - 3056 , - 1849 , - 1014 , - 5015 , - 460 , - 3717 , - 1394 , - 3907 , - 3816 , - 5585 , - 1774 , - 2799 , - 1220 , - 1501 , - 2154 , - 1691 , - 4576 , - 3369 , - 2534 , - 583 , - 1980 , - 5237 , - 2914 , - 5427 , - 5336 , - 1153 , - 3294 , - 4319 , - 2740 , - 3021 , - 3674 , - 3211 , - 144 , - 4889 , - 4054 , - 2103 , - 3500 , - 805 , - 4434 , - 995 , - 904 , - 2673 , - 4814 , - 5839 , - 4260 , - 4541 , - 5194 , - 4731 , - 1664 , - 457 , - 5574 , - 3623 , - 5020 , - 2325 , - 2 , - 2515 , - 2424 , - 4193 , - 382 , - 1407 , - 5780 , - 109 , - 762 , - 299 , - 3184 , - 1977 , - 1142 , - 5143 , - 588 , - 3845 , - 1522 , - 4035 , - 3944 , - 5713 , - 1902 , - 2927 , - 1348 , - 1629 , - 2282 , - 1819 , - 4704 , - 3497 , - 2662 , - 711 , - 2108 , - 5365 , - 3042 , - 5555 , - 5464 , - 1281 , - 3422 , - 4447 , - 2868 , - 3149 , - 3802 , - 3339 , - 272 , - 5017 , - 4182 , - 2231 , - 3628 , - 933 , - 4562 , - 1123 , - 1032 , - 2801 , - 4942 , - 15 , - 4388 , - 4669 , - 5322 , - 4859 , - 1792 , - 585 , - 5702 , - 3751 , - 5148 , - 2453 , - 130 , - 2643 , - 2552 , - 4321 , - 510 , - 1535 , - 5908 , - 237 , - 890 , - 427 , - 3312 , - 2105 , - 1270 , - 5271 , - 716 , - 3973 , - 1650 , - 4163 , - 4072 , - 5841 , - 2030 , - 3055 , - 1476 , - 1757 , - 2410 , - 1947 , - 4832 , - 3625 , - 2790 , - 839 , - 2236 , - 5493 , - 3170 , - 5683 , - 5592 , - 1409 , - 3550 , - 4575 , - 2996 , - 3277 , - 3930 , - 3467 , - 400 , - 5145 , - 4310 , - 2359 , - 3756 , - 1061 , - 4690 , - 1251 , - 1160 , - 2929 , - 5070 , - 143 , - 4516 , - 4797 , - 5450 , - 4987 , - 1920 , - 713 , - 5830 , - 3879 , - 5276 , - 2581 , - 258 , - 2771 , - 2680 , - 4449 , - 638 , - 1663 , - 84 , - 365 , - 1018 , - 555 , - 3440 , - 2233 , - 1398 , - 5399 , - 844 , - 4101 , - 1778 , - 4291 , - 4200 , - 17 , - 2158 , - 3183 , - 1604 , - 1885 , - 2538 , - 2075 , - 4960 , - 3753 , - 2918 , - 967 , - 2364 , - 5621 , - 3298 , - 5811 , - 5720 , - 1537 , - 3678 , - 4703 , - 3124 , - 3405 , - 4058 , - 3595 , - 528 , - 5273 , - 4438 , - 2487 , - 3884 , - 1189 , - 4818 , - 1379 , - 1288 , - 3057 , - 5198 , - 271 , - 4644 , - 4925 , - 5578 , - 5115 , - 2048 , - 841 , - 6 , - 4007 , - 5404 , - 2709 , - 386 , - 2899 , - 2808 , - 4577 , - 766 , - 1791 , - 212 , - 493 , - 1146 , - 683 , - 3568 , - 2361 , - 1526 , - 5527 , - 972 , - 4229 , - 1906 , - 4419 , - 4328 , - 145 , - 2286 , - 3311 , - 1732 , - 2013 , - 2666 , - 2203 , - 5088 , - 3881 , - 3046 , - 1095 , - 2492 , - 5749 , - 3426 , - 5939 , - 5848 , - 1665 , - 3806 , - 4831 , - 3252 , - 3533 , - 4186 , - 3723 , - 656 , - 5401 , - 4566 , - 2615 , - 4012 , - 1317 , - 4946 , - 1507 , - 1416 , - 3185 , - 5326 , - 399 , - 4772 , - 5053 , - 5706 , - 5243 , - 2176 , - 969 , - 134 , - 4135 , - 5532 , - 2837 , - 514 , - 3027 , - 2936 , - 4705 , - 894 , - 1919 , - 340 , - 621 , - 1274 , - 811 , - 3696 , - 2489 , - 1654 , - 5655 , - 1100 , - 4357 , - 2034 , - 4547 , - 4456 , - 273 , - 2414 , - 3439 , - 1860 , - 2141 , - 2794 , - 2331 , - 5216 , - 4009 , - 3174 , - 1223 , - 2620 , - 5877 , - 3554 , - 115 , - 24 , - 1793 , - 3934 , - 4959 , - 3380 , - 3661 , - 4314 , - 3851 , - 784 , - 5529 , - 4694 , - 2743 , - 4140 , - 1445 , - 5074 , - 1635 , - 1544 , - 3313 , - 5454 , - 527 , - 4900 , - 5181 , - 5834 , - 5371 , - 2304 , - 1097 , - 262 , - 4263 , - 5660 , - 2965 , - 642 , - 3155 , - 3064 , - 4833 , - 1022 , - 2047 , - 468 , - 749 , - 1402 , - 939 , - 3824 , - 2617 , - 1782 , - 5783 , - 1228 , - 4485 , - 2162 , - 4675 , - 4584 , - 401 , - 2542 , - 3567 , - 1988 , - 2269 , - 2922 , - 2459 , - 5344 , - 4137 , - 3302 , - 1351 , - 2748 , - 53 , - 3682 , - 243 , - 152 , - 1921 , - 4062 , - 5087 , - 3508 , - 3789 , - 4442 , - 3979 , - 912 , - 5657 , - 4822 , - 2871 , - 4268 , - 1573 , - 5202 , - 1763 , - 1672 , - 3441 , - 5582 , - 655 , - 5028 , - 5309 , - 10 , - 5499 , - 2432 , - 1225 , - 390 , - 4391 , - 5788 , - 3093 , - 770 , - 3283 , - 3192 , - 4961 , - 1150 , - 2175 , - 596 , - 877 , - 1530 , - 1067 , - 3952 , - 2745 , - 1910 , - 5911 , - 1356 , - 4613 , - 2290 , - 4803 , - 4712 , - 529 , - 2670 , - 3695 , - 2116 , - 2397 , - 3050 , - 2587 , - 5472 , - 4265 , - 3430 , - 1479 , - 2876 , - 181 , - 3810 , - 371 , - 280 , - 2049 , - 4190 , - 5215 , - 3636 , - 3917 , - 4570 , - 4107 , - 1040 , - 5785 , - 4950 , - 2999 , - 4396 , - 1701 , - 5330 , - 1891 , - 1800 , - 3569 , - 5710 , - 783 , - 5156 , - 5437 , - 138 , - 5627 , - 2560 , - 1353 , - 518 , - 4519 , - 5916 , - 3221 , - 898 , - 3411 , - 3320 , - 5089 , - 1278 , - 2303 , - 724 , - 1005 , - 1658 , - 1195 , - 4080 , - 2873 , - 2038 , - 87 , - 1484 , - 4741 , - 2418 , - 4931 , - 4840 , - 657 , - 2798 , - 3823 , - 2244 , - 2525 , - 3178 , - 2715 , - 5600 , - 4393 , - 3558 , - 1607 , - 3004 , - 309 , - 3938 , - 499 , - 408 , - 2177 , - 4318 , - 5343 , - 3764 , - 4045 , - 4698 , - 4235 , - 1168 , - 5913 , - 5078 , - 3127 , - 4524 , - 1829 , - 5458 , - 2019 , - 1928 , - 3697 , - 5838 , - 911 , - 5284 , - 5565 , - 266 , - 5755 , - 2688 , - 1481 , - 646 , - 4647 , - 92 , - 3349 , - 1026 , - 3539 , - 3448 , - 5217 , - 1406 , - 2431 , - 852 , - 1133 , - 1786 , - 1323 , - 4208 , - 3001 , - 2166 , - 215 , - 1612 , - 4869 , - 2546 , - 5059 , - 4968 , - 785 , - 2926 , - 3951 , - 2372 , - 2653 , - 3306 , - 2843 , - 5728 , - 4521 , - 3686 , - 1735 , - 3132 , - 437 , - 4066 , - 627 , - 536 , - 2305 , - 4446 , - 5471 , - 3892 , - 4173 , - 4826 , - 4363 , - 1296 , - 89 , - 5206 , - 3255 , - 4652 , - 1957 , - 5586 , - 2147 , - 2056 , - 3825 , - 14 , - 1039 , - 5412 , - 5693 , - 394 , - 5883 , - 2816 , - 1609 , - 774 , - 4775 , - 220 , - 3477 , - 1154 , - 3667 , - 3576 , - 5345 , - 1534 , - 2559 , - 980 , - 1261 , - 1914 , - 1451 , - 4336 , - 3129 , - 2294 , - 343 , - 1740 , - 4997 , - 2674 , - 5187 , - 5096 , - 913 , - 3054 , - 4079 , - 2500 , - 2781 , - 3434 , - 2971 , - 5856 , - 4649 , - 3814 , - 1863 , - 3260 , - 565 , - 4194 , - 755 , - 664 , - 2433 , - 4574 , - 5599 , - 4020 , - 4301 , - 4954 , - 4491 , - 1424 , - 217 , - 5334 , - 3383 , - 4780 , - 2085 , - 5714 , - 2275 , - 2184 , - 3953 , - 142 , - 1167 , - 5540 , - 5821 , - 522 , - 59 , - 2944 , - 1737 , - 902 , - 4903 , - 348 , - 3605 , - 1282 , - 3795 , - 3704 , - 5473 , - 1662 , - 2687 , - 1108 , - 1389 , - 2042 , - 1579 , - 4464 , - 3257 , - 2422 , - 471 , - 1868 , - 5125 , - 2802 , - 5315 , - 5224 , - 1041 , - 3182 , - 4207 , - 2628 , - 2909 , - 3562 , - 3099 , - 32 , - 4777 , - 3942 , - 1991 , - 3388 , - 693 , - 4322 , - 883 , - 792 , - 2561 , - 4702 , - 5727 , - 4148 , - 4429 , - 5082 , - 4619 , - 1552 , - 345 , - 5462 , - 3511 , - 4908 , - 2213 , - 5842 , - 2403 , - 2312 , - 4081 , - 270 , - 1295 , - 5668 , - 5949 , - 650 , - 187 , - 3072 , - 1865 , - 1030 , - 5031 , - 476 , - 3733 , - 1410 , - 3923 , - 3832 , - 5601 , - 1790 , - 2815 , - 1236 , - 1517 , - 2170 , - 1707 , - 4592 , - 3385 , - 2550 , - 599 , - 1996 , - 5253 , - 2930 , - 5443 , - 5352 , - 1169 , - 3310 , - 4335 , - 2756 , - 3037 , - 3690 , - 3227 , - 160 , - 4905 , - 4070 , - 2119 , - 3516 , - 821 , - 4450 , - 1011 , - 920 , - 2689 , - 4830 , - 5855 , - 4276 , - 4557 , - 5210 , - 4747 , - 1680 , - 473 , - 5590 , - 3639 , - 5036 , - 2341 , - 18 , - 2531 , - 2440 , - 4209 , - 398 , - 1423 , - 5796 , - 125 , - 778 , - 315 , - 3200 , - 1993 , - 1158 , - 5159 , - 604 , - 3861 , - 1538 , - 4051 , - 3960 , - 5729 , - 1918 , - 2943 , - 1364 , - 1645 , - 2298 , - 1835 , - 4720 , - 3513 , - 2678 , - 727 , - 2124 , - 5381 , - 3058 , - 5571 , - 5480 , - 1297 , - 3438 , - 4463 , - 2884 , - 3165 , - 3818 , - 3355 , - 288 , - 5033 , - 4198 , - 2247 , - 3644 , - 949 , - 4578 , - 1139 , - 1048 , - 2817 , - 4958 , - 31 , - 4404 , - 4685 , - 5338 , - 4875 , - 1808 , - 601 , - 5718 , - 3767 , - 5164 , - 2469 , - 146 , - 2659 , - 2568 , - 4337 , - 526 , - 1551 , - 5924 , - 253 , - 906 , - 443 , - 3328 , - 2121 , - 1286 , - 5287 , - 732 , - 3989 , - 1666 , - 4179 , - 4088 , - 5857 , - 2046 , - 3071 , - 1492 , - 1773 , - 2426 , - 1963 , - 4848 , - 3641 , - 2806 , - 855 , - 2252 , - 5509 , - 3186 , - 5699 , - 5608 , - 1425 , - 3566 , - 4591 , - 3012 , - 3293 , - 3946 , - 3483 , - 416 , - 5161 , - 4326 , - 2375 , - 3772 , - 1077 , - 4706 , - 1267 , - 1176 , - 2945 , - 5086 , - 159 , - 4532 , - 4813 , - 5466 , - 5003 , - 1936 , - 729 , - 5846 , - 3895 , - 5292 , - 2597 , - 274 , - 2787 , - 2696 , - 4465 , - 654 , - 1679 , - 100 , - 381 , - 1034 , - 571 , - 3456 , - 2249 , - 1414 , - 5415 , - 860 , - 4117 , - 1794 , - 4307 , - 4216 , - 33 , - 2174 , - 3199 , - 1620 , - 1901 , - 2554 , - 2091 , - 4976 , - 3769 , - 2934 , - 983 , - 2380 , - 5637 , - 3314 , - 5827 , - 5736 , - 1553 , - 3694 , - 4719 , - 3140 , - 3421 , - 4074 , - 3611 , - 544 , - 5289 , - 4454 , - 2503 , - 3900 , - 1205 , - 4834 , - 1395 , - 1304 , - 3073 , - 5214 , - 287 , - 4660 , - 4941 , - 5594 , - 5131 , - 2064 , - 857 , - 22 , - 4023 , - 5420 , - 2725 , - 402 , - 2915 , - 2824 , - 4593 , - 782 , - 1807 , - 228 , - 509 , - 1162 , - 699 , - 3584 , - 2377 , - 1542 , - 5543 , - 988 , - 4245 , - 1922 , - 4435 , - 4344 , - 161 , - 2302 , - 3327 , - 1748 , - 2029 , - 2682 , - 2219 , - 5104 , - 3897 , - 3062 , - 1111 , - 2508 , - 5765 , - 3442 , - 3 , - 5864 , - 1681 , - 3822 , - 4847 , - 3268 , - 3549 , - 4202 , - 3739 , - 672 , - 5417 , - 4582 , - 2631 , - 4028 , - 1333 , - 4962 , - 1523 , - 1432 , - 3201 , - 5342 , - 415 , - 4788 , - 5069 , - 5722 , - 5259 , - 2192 , - 985 , - 150 , - 4151 , - 5548 , - 2853 , - 530 , - 3043 , - 2952 , - 4721 , - 910 , - 1935 , - 356 , - 637 , - 1290 , - 827 , - 3712 , - 2505 , - 1670 , - 5671 , - 1116 , - 4373 , - 2050 , - 4563 , - 4472 , - 289 , - 2430 , - 3455 , - 1876 , - 2157 , - 2810 , - 2347 , - 5232 , - 4025 , - 3190 , - 1239 , - 2636 , - 5893 , - 3570 , - 131 , - 40 , - 1809 , - 3950 , - 4975 , - 3396 , - 3677 , - 4330 , - 3867 , - 800 , - 5545 , - 4710 , - 2759 , - 4156 , - 1461 , - 5090 , - 1651 , - 1560 , - 3329 , - 5470 , - 543 , - 4916 , - 5197 , - 5850 , - 5387 , - 2320 , - 1113 , - 278 , - 4279 , - 5676 , - 2981 , - 658 , - 3171 , - 3080 , - 4849 , - 1038 , - 2063 , - 484 , - 765 , - 1418 , - 955 , - 3840 , - 2633 , - 1798 , - 5799 , - 1244 , - 4501 , - 2178 , - 4691 , - 4600 , - 417 , - 2558 , - 3583 , - 2004 , - 2285 , - 2938 , - 2475 , - 5360 , - 4153 , - 3318 , - 1367 , - 2764 , - 69 , - 3698 , - 259 , - 168 , - 1937 , - 4078 , - 5103 , - 3524 , - 3805 , - 4458 , - 3995 , - 928 , - 5673 , - 4838 , - 2887 , - 4284 , - 1589 , - 5218 , - 1779 , - 1688 , - 3457 , - 5598 , - 671 , - 5044 , - 5325 , - 26 , - 5515 , - 2448 , - 1241 , - 406 , - 4407 , - 5804 , - 3109 , - 786 , - 3299 , - 3208 , - 4977 , - 1166 , - 2191 , - 612 , - 893 , - 1546 , - 1083 , - 3968 , - 2761 , - 1926 , - 5927 , - 1372 , - 4629 , - 2306 , - 4819 , - 4728 , - 545 , - 2686 , - 3711 , - 2132 , - 2413 , - 3066 , - 2603 , - 5488 , - 4281 , - 3446 , - 1495 , - 2892 , - 197 , - 3826 , - 387 , - 296 , - 2065 , - 4206 , - 5231 , - 3652 , - 3933 , - 4586 , - 4123 , - 1056 , - 5801 , - 4966 , - 3015 , - 4412 , - 1717 , - 5346 , - 1907 , - 1816 , - 3585 , - 5726 , - 799 , - 5172 , - 5453 , - 154 , - 5643 , - 2576 , - 1369 , - 534 , - 4535 , - 5932 , - 3237 , - 914 , - 3427 , - 3336 , - 5105 , - 1294 , - 2319 , - 740 , - 1021 , - 1674 , - 1211 , - 4096 , - 2889 , - 2054 , - 103 , - 1500 , - 4757 , - 2434 , - 4947 , - 4856 , - 673 , - 2814 , - 3839 , - 2260 , - 2541 , - 3194 , - 2731 , - 5616 , - 4409 , - 3574 , - 1623 , - 3020 , - 325 , - 3954 , - 515 , - 424 , - 2193 , - 4334 , - 5359 , - 3780 , - 4061 , - 4714 , - 4251 , - 1184 , - 5929 , - 5094 , - 3143 , - 4540 , - 1845 , - 5474 , - 2035 , - 1944 , - 3713 , - 5854 , - 927 , - 5300 , - 5581 , - 282 , - 5771 , - 2704 , - 1497 , - 662 , - 4663 , - 108 , - 3365 , - 1042 , - 3555 , - 3464 , - 5233 , - 1422 , - 2447 , - 868 , - 1149 , - 1802 , - 1339 , - 4224 , - 3017 , - 2182 , - 231 , - 1628 , - 4885 , - 2562 , - 5075 , - 4984 , - 801 , - 2942 , - 3967 , - 2388 , - 2669 , - 3322 , - 2859 , - 5744 , - 4537 , - 3702 , - 1751 , - 3148 , - 453 , - 4082 , - 643 , - 552 , - 2321 , - 4462 , - 5487 , - 3908 , - 4189 , - 4842 , - 4379 , - 1312 , - 105 , - 5222 , - 3271 , - 4668 , - 1973 , - 5602 , - 2163 , - 2072 , - 3841 , - 30 , - 1055 , - 5428 , - 5709 , - 410 , - 5899 , - 2832 , - 1625 , - 790 , - 4791 , - 236 , - 3493 , - 1170 , - 3683 , - 3592 , - 5361 , - 1550 , - 2575 , - 996 , - 1277 , - 1930 , - 1467 , - 4352 , - 3145 , - 2310 , - 359 , - 1756 , - 5013 , - 2690 , - 5203 , - 5112 , - 929 , - 3070 , - 4095 , - 2516 , - 2797 , - 3450 , - 2987 , - 5872 , - 4665 , - 3830 , - 1879 , - 3276 , - 581 , - 4210 , - 771 , - 680 , - 2449 , - 4590 , - 5615 , - 4036 , - 4317 , - 4970 , - 4507 , - 1440 , - 233 , - 5350 , - 3399 , - 4796 , - 2101 , - 5730 , - 2291 , - 2200 , - 3969 , - 158 , - 1183 , - 5556 , - 5837 , - 538 , - 75 , - 2960 , - 1753 , - 918 , - 4919 , - 364 , - 3621 , - 1298 , - 3811 , - 3720 , - 5489 , - 1678 , - 2703 , - 1124 , - 1405 , - 2058 , - 1595 , - 4480 , - 3273 , - 2438 , - 487 , - 1884 , - 5141 , - 2818 , - 5331 , - 5240 , - 1057 , - 3198 , - 4223 , - 2644 , - 2925 , - 3578 , - 3115 , - 48 , - 4793 , - 3958 , - 2007 , - 3404 , - 709 , - 4338 , - 899 , - 808 , - 2577 , - 4718 , - 5743 , - 4164 , - 4445 , - 5098 , - 4635 , - 1568 , - 361 , - 5478 , - 3527 , - 4924 , - 2229 , - 5858 , - 2419 , - 2328 , - 4097 , - 286 , - 1311 , - 5684 , - 13 , - 666 , - 203 , - 3088 , - 1881 , - 1046 , - 5047 , - 492 , - 3749 , - 1426 , - 3939 , - 3848 , - 5617 , - 1806 , - 2831 , - 1252 , - 1533 , - 2186 , - 1723 , - 4608 , - 3401 , - 2566 , - 615 , - 2012 , - 5269 , - 2946 , - 5459 , - 5368 , - 1185 , - 3326 , - 4351 , - 2772 , - 3053 , - 3706 , - 3243 , - 176 , - 4921 , - 4086 , - 2135 , - 3532 , - 837 , - 4466 , - 1027 , - 936 , - 2705 , - 4846 , - 5871 , - 4292 , - 4573 , - 5226 , - 4763 , - 1696 , - 489 , - 5606 , - 3655 , - 5052 , - 2357 , - 34 , - 2547 , - 2456 , - 4225 , - 414 , - 1439 , - 5812 , - 141 , - 794 , - 331 , - 3216 , - 2009 , - 1174 , - 5175 , - 620 , - 3877 , - 1554 , - 4067 , - 3976 , - 5745 , - 1934 , - 2959 , - 1380 , - 1661 , - 2314 , - 1851 , - 4736 , - 3529 , - 2694 , - 743 , - 2140 , - 5397 , - 3074 , - 5587 , - 5496 , - 1313 , - 3454 , - 4479 , - 2900 , - 3181 , - 3834 , - 3371 , - 304 , - 5049 , - 4214 , - 2263 , - 3660 , - 965 , - 4594 , - 1155 , - 1064 , - 2833 , - 4974 , - 47 , - 4420 , - 4701 , - 5354 , - 4891 , - 1824 , - 617 , - 5734 , - 3783 , - 5180 , - 2485 , - 162 , - 2675 , - 2584 , - 4353 , - 542 , - 1567 , - 5940 , - 269 , - 922 , - 459 , - 3344 , - 2137 , - 1302 , - 5303 , - 748 , - 4005 , - 1682 , - 4195 , - 4104 , - 5873 , - 2062 , - 3087 , - 1508 , - 1789 , - 2442 , - 1979 , - 4864 , - 3657 , - 2822 , - 871 , - 2268 , - 5525 , - 3202 , - 5715 , - 5624 , - 1441 , - 3582 , - 4607 , - 3028 , - 3309 , - 3962 , - 3499 , - 432 , - 5177 , - 4342 , - 2391 , - 3788 , - 1093 , - 4722 , - 1283 , - 1192 , - 2961 , - 5102 , - 175 , - 4548 , - 4829 , - 5482 , - 5019 , - 1952 , - 745 , - 5862 , - 3911 , - 5308 , - 2613 , - 290 , - 2803 , - 2712 , - 4481 , - 670 , - 1695 , - 116 , - 397 , - 1050 , - 587 , - 3472 , - 2265 , - 1430 , - 5431 , - 876 , - 4133 , - 1810 , - 4323 , - 4232 , - 49 , - 2190 , - 3215 , - 1636 , - 1917 , - 2570 , - 2107 , - 4992 , - 3785 , - 2950 , - 999 , - 2396 , - 5653 , - 3330 , - 5843 , - 5752 , - 1569 , - 3710 , - 4735 , - 3156 , - 3437 , - 4090 , - 3627 , - 560 , - 5305 , - 4470 , - 2519 , - 3916 , - 1221 , - 4850 , - 1411 , - 1320 , - 3089 , - 5230 , - 303 , - 4676 , - 4957 , - 5610 , - 5147 , - 2080 , - 873 , - 38 , - 4039 , - 5436 , - 2741 , - 418 , - 2931 , - 2840 , - 4609 , - 798 , - 1823 , - 244 , - 525 , - 1178 , - 715 , - 3600 , - 2393 , - 1558 , - 5559 , - 1004 , - 4261 , - 1938 , - 4451 , - 4360 , - 177 , - 2318 , - 3343 , - 1764 , - 2045 , - 2698 , - 2235 , - 5120 , - 3913 , - 3078 , - 1127 , - 2524 , - 5781 , - 3458 , - 19 , - 5880 , - 1697 , - 3838 , - 4863 , - 3284 , - 3565 , - 4218 , - 3755 , - 688 , - 5433 , - 4598 , - 2647 , - 4044 , - 1349 , - 4978 , - 1539 , - 1448 , - 3217 , - 5358 , - 431 , - 4804 , - 5085 , - 5738 , - 5275 , - 2208 , - 1001 , - 166 , - 4167 , - 5564 , - 2869 , - 546 , - 3059 , - 2968 , - 4737 , - 926 , - 1951 , - 372 , - 653 , - 1306 , - 843 , - 3728 , - 2521 , - 1686 , - 5687 , - 1132 , - 4389 , - 2066 , - 4579 , - 4488 , - 305 , - 2446 , - 3471 , - 1892 , - 2173 , - 2826 , - 2363 , - 5248 , - 4041 , - 3206 , - 1255 , - 2652 , - 5909 , - 3586 , - 147 , - 56 , - 1825 , - 3966 , - 4991 , - 3412 , - 3693 , - 4346 , - 3883 , - 816 , - 5561 , - 4726 , - 2775 , - 4172 , - 1477 , - 5106 , - 1667 , - 1576 , - 3345 , - 5486 , - 559 , - 4932 , - 5213 , - 5866 , - 5403 , - 2336 , - 1129 , - 294 , - 4295 , - 5692 , - 2997 , - 674 , - 3187 , - 3096 , - 4865 , - 1054 , - 2079 , - 500 , - 781 , - 1434 , - 971 , - 3856 , - 2649 , - 1814 , - 5815 , - 1260 , - 4517 , - 2194 , - 4707 , - 4616 , - 433 , - 2574 , - 3599 , - 2020 , - 2301 , - 2954 , - 2491 , - 5376 , - 4169 , - 3334 , - 1383 , - 2780 , - 85 , - 3714 , - 275 , - 184 , - 1953 , - 4094 , - 5119 , - 3540 , - 3821 , - 4474 , - 4011 , - 944 , - 5689 , - 4854 , - 2903 , - 4300 , - 1605 , - 5234 , - 1795 , - 1704 , - 3473 , - 5614 , - 687 , - 5060 , - 5341 , - 42 , - 5531 , - 2464 , - 1257 , - 422 , - 4423 , - 5820 , - 3125 , - 802 , - 3315 , - 3224 , - 4993 , - 1182 , - 2207 , - 628 , - 909 , - 1562 , - 1099 , - 3984 , - 2777 , - 1942 , - 5943 , - 1388 , - 4645 , - 2322 , - 4835 , - 4744 , - 561 , - 2702 , - 3727 , - 2148 , - 2429 , - 3082 , - 2619 , - 5504 , - 4297 , - 3462 , - 1511 , - 2908 , - 213 , - 3842 , - 403 , - 312 , - 2081 , - 4222 , - 5247 , - 3668 , - 3949 , - 4602 , - 4139 , - 1072 , - 5817 , - 4982 , - 3031 , - 4428 , - 1733 , - 5362 , - 1923 , - 1832 , - 3601 , - 5742 , - 815 , - 5188 , - 5469 , - 170 , - 5659 , - 2592 , - 1385 , - 550 , - 4551 , - 5948 , - 3253 , - 930 , - 3443 , - 3352 , - 5121 , - 1310 , - 2335 , - 756 , - 1037 , - 1690 , - 1227 , - 4112 , - 2905 , - 2070 , - 119 , - 1516 , - 4773 , - 2450 , - 4963 , - 4872 , - 689 , - 2830 , - 3855 , - 2276 , - 2557 , - 3210 , - 2747 , - 5632 , - 4425 , - 3590 , - 1639 , - 3036 , - 341 , - 3970 , - 531 , - 440 , - 2209 , - 4350 , - 5375 , - 3796 , - 4077 , - 4730 , - 4267 , - 1200 , - 5945 , - 5110 , - 3159 , - 4556 , - 1861 , - 5490 , - 2051 , - 1960 , - 3729 , - 5870 , - 943 , - 5316 , - 5597 , - 298 , - 5787 , - 2720 , - 1513 , - 678 , - 4679 , - 124 , - 3381 , - 1058 , - 3571 , - 3480 , - 5249 , - 1438 , - 2463 , - 884 , - 1165 , - 1818 , - 1355 , - 4240 , - 3033 , - 2198 , - 247 , - 1644 , - 4901 , - 2578 , - 5091 , - 5000 , - 817 , - 2958 , - 3983 , - 2404 , - 2685 , - 3338 , - 2875 , - 5760 , - 4553 , - 3718 , - 1767 , - 3164 , - 469 , - 4098 , - 659 , - 568 , - 2337 , - 4478 , - 5503 , - 3924 , - 4205 , - 4858 , - 4395 , - 1328 , - 121 , - 5238 , - 3287 , - 4684 , - 1989 , - 5618 , - 2179 , - 2088 , - 3857 , - 46 , - 1071 , - 5444 , - 5725 , - 426 , - 5915 , - 2848 , - 1641 , - 806 , - 4807 , - 252 , - 3509 , - 1186 , - 3699 , - 3608 , - 5377 , - 1566 , - 2591 , - 1012 , - 1293 , - 1946 , - 1483 , - 4368 , - 3161 , - 2326 , - 375 , - 1772 , - 5029 , - 2706 , - 5219 , - 5128 , - 945 , - 3086 , - 4111 , - 2532 , - 2813 , - 3466 , - 3003 , - 5888 , - 4681 , - 3846 , - 1895 , - 3292 , - 597 , - 4226 , - 787 , - 696 , - 2465 , - 4606 , - 5631 , - 4052 , - 4333 , - 4986 , - 4523 , - 1456 , - 249 , - 5366 , - 3415 , - 4812 , - 2117 , - 5746 , - 2307 , - 2216 , - 3985 , - 174 , - 1199 , - 5572 , - 5853 , - 554 , - 91 , - 2976 , - 1769 , - 934 , - 4935 , - 380 , - 3637 , - 1314 , - 3827 , - 3736 , - 5505 , - 1694 , - 2719 , - 1140 , - 1421 , - 2074 , - 1611 , - 4496 , - 3289 , - 2454 , - 503 , - 1900 , - 5157 , - 2834 , - 5347 , - 5256 , - 1073 , - 3214 , - 4239 , - 2660 , - 2941 , - 3594 , - 3131 , - 64 , - 4809 , - 3974 , - 2023 , - 3420 , - 725 , - 4354 , - 915 , - 824 , - 2593 , - 4734 , - 5759 , - 4180 , - 4461 , - 5114 , - 4651 , - 1584 , - 377 , - 5494 , - 3543 , - 4940 , - 2245 , - 5874 , - 2435 , - 2344 , - 4113 , - 302 , - 1327 , - 5700 , - 29 , - 682 , - 219 , - 3104 , - 1897 , - 1062 , - 5063 , - 508 , - 3765 , - 1442 , - 3955 , - 3864 , - 5633 , - 1822 , - 2847 , - 1268 , - 1549 , - 2202 , - 1739 , - 4624 , - 3417 , - 2582 , - 631 , - 2028 , - 5285 , - 2962 , - 5475 , - 5384 , - 1201 , - 3342 , - 4367 , - 2788 , - 3069 , - 3722 , - 3259 , - 192 , - 4937 , - 4102 , - 2151 , - 3548 , - 853 , - 4482 , - 1043 , - 952 , - 2721 , - 4862 , - 5887 , - 4308 , - 4589 , - 5242 , - 4779 , - 1712 , - 505 , - 5622 , - 3671 , - 5068 , - 2373 , - 50 , - 2563 , - 2472 , - 4241 , - 430 , - 1455 , - 5828 , - 157 , - 810 , - 347 , - 3232 , - 2025 , - 1190 , - 5191 , - 636 , - 3893 , - 1570 , - 4083 , - 3992 , - 5761 , - 1950 , - 2975 , - 1396 , - 1677 , - 2330 , - 1867 , - 4752 , - 3545 , - 2710 , - 759 , - 2156 , - 5413 , - 3090 , - 5603 , - 5512 , - 1329 , - 3470 , - 4495 , - 2916 , - 3197 , - 3850 , - 3387 , - 320 , - 5065 , - 4230 , - 2279 , - 3676 , - 981 , - 4610 , - 1171 , - 1080 , - 2849 , - 4990 , - 63 , - 4436 , - 4717 , - 5370 , - 4907 , - 1840 , - 633 , - 5750 , - 3799 , - 5196 , - 2501 , - 178 , - 2691 , - 2600 , - 4369 , - 558 , - 1583 , - 4 , - 285 , - 938 , - 475 , - 3360 , - 2153 , - 1318 , - 5319 , - 764 , - 4021 , - 1698 , - 4211 , - 4120 , - 5889 , - 2078 , - 3103 , - 1524 , - 1805 , - 2458 , - 1995 , - 4880 , - 3673 , - 2838 , - 887 , - 2284 , - 5541 , - 3218 , - 5731 , - 5640 , - 1457 , - 3598 , - 4623 , - 3044 , - 3325 , - 3978 , - 3515 , - 448 , - 5193 , - 4358 , - 2407 , - 3804 , - 1109 , - 4738 , - 1299 , - 1208 , - 2977 , - 5118 , - 191 , - 4564 , - 4845 , - 5498 , - 5035 , - 1968 , - 761 , - 5878 , - 3927 , - 5324 , - 2629 , - 306 , - 2819 , - 2728 , - 4497 , - 686 , - 1711 , - 132 , - 413 , - 1066 , - 603 , - 3488 , - 2281 , - 1446 , - 5447 , - 892 , - 4149 , - 1826 , - 4339 , - 4248 , - 65 , - 2206 , - 3231 , - 1652 , - 1933 , - 2586 , - 2123 , - 5008 , - 3801 , - 2966 , - 1015 , - 2412 , - 5669 , - 3346 , - 5859 , - 5768 , - 1585 , - 3726 , - 4751 , - 3172 , - 3453 , - 4106 , - 3643 , - 576 , - 5321 , - 4486 , - 2535 , - 3932 , - 1237 , - 4866 , - 1427 , - 1336 , - 3105 , - 5246 , - 319 , - 4692 , - 4973 , - 5626 , - 5163 , - 2096 , - 889 , - 54 , - 4055 , - 5452 , - 2757 , - 434 , - 2947 , - 2856 , - 4625 , - 814 , - 1839 , - 260 , - 541 , - 1194 , - 731 , - 3616 , - 2409 , - 1574 , - 5575 , - 1020 , - 4277 , - 1954 , - 4467 , - 4376 , - 193 , - 2334 , - 3359 , - 1780 , - 2061 , - 2714 , - 2251 , - 5136 , - 3929 , - 3094 , - 1143 , - 2540 , - 5797 , - 3474 , - 35 , - 5896 , - 1713 , - 3854 , - 4879 , - 3300 , - 3581 , - 4234 , - 3771 , - 704 , - 5449 , - 4614 , - 2663 , - 4060 , - 1365 , - 4994 , - 1555 , - 1464 , - 3233 , - 5374 , - 447 , - 4820 , - 5101 , - 5754 , - 5291 , - 2224 , - 1017 , - 182 , - 4183 , - 5580 , - 2885 , - 562 , - 3075 , - 2984 , - 4753 , - 942 , - 1967 , - 388 , - 669 , - 1322 , - 859 , - 3744 , - 2537 , - 1702 , - 5703 , - 1148 , - 4405 , - 2082 , - 4595 , - 4504 , - 321 , - 2462 , - 3487 , - 1908 , - 2189 , - 2842 , - 2379 , - 5264 , - 4057 , - 3222 , - 1271 , - 2668 , - 5925 , - 3602 , - 163 , - 72 , - 1841 , - 3982 , - 5007 , - 3428 , - 3709 , - 4362 , - 3899 , - 832 , - 5577 , - 4742 , - 2791 , - 4188 , - 1493 , - 5122 , - 1683 , - 1592 , - 3361 , - 5502 , - 575 , - 4948 , - 5229 , - 5882 , - 5419 , - 2352 , - 1145 , - 310 , - 4311 , - 5708 , - 3013 , - 690 , - 3203 , - 3112 , - 4881 , - 1070 , - 2095 , - 516 , - 797 , - 1450 , - 987 , - 3872 , - 2665 , - 1830 , - 5831 , - 1276 , - 4533 , - 2210 , - 4723 , - 4632 , - 449 , - 2590 , - 3615 , - 2036 , - 2317 , - 2970 , - 2507 , - 5392 , - 4185 , - 3350 , - 1399 , - 2796 , - 101 , - 3730 , - 291 , - 200 , - 1969 , - 4110 , - 5135 , - 3556 , - 3837 , - 4490 , - 4027 , - 960 , - 5705 , - 4870 , - 2919 , - 4316 , - 1621 , - 5250 , - 1811 , - 1720 , - 3489 , - 5630 , - 703 , - 5076 , - 5357 , - 58 , - 5547 , - 2480 , - 1273 , - 438 , - 4439 , - 5836 , - 3141 , - 818 , - 3331 , - 3240 , - 5009 , - 1198 , - 2223 , - 644 , - 925 , - 1578 , - 1115 , - 4000 , - 2793 , - 1958 , - 7 , - 1404 , - 4661 , - 2338 , - 4851 , - 4760 , - 577 , - 2718 , - 3743 , - 2164 , - 2445 , - 3098 , - 2635 , - 5520 , - 4313 , - 3478 , - 1527 , - 2924 , - 229 , - 3858 , - 419 , - 328 , - 2097 , - 4238 , - 5263 , - 3684 , - 3965 , - 4618 , - 4155 , - 1088 , - 5833 , - 4998 , - 3047 , - 4444 , - 1749 , - 5378 , - 1939 , - 1848 , - 3617 , - 5758 , - 831 , - 5204 , - 5485 , - 186 , - 5675 , - 2608 , - 1401 , - 566 , - 4567 , - 12 , - 3269 , - 946 , - 3459 , - 3368 , - 5137 , - 1326 , - 2351 , - 772 , - 1053 , - 1706 , - 1243 , - 4128 , - 2921 , - 2086 , - 135 , - 1532 , - 4789 , - 2466 , - 4979 , - 4888 , - 705 , - 2846 , - 3871 , - 2292 , - 2573 , - 3226 , - 2763 , - 5648 , - 4441 , - 3606 , - 1655 , - 3052 , - 357 , - 3986 , - 547 , - 456 , - 2225 , - 4366 , - 5391 , - 3812 , - 4093 , - 4746 , - 4283 , - 1216 , - 9 , - 5126 , - 3175 , - 4572 , - 1877 , - 5506 , - 2067 , - 1976 , - 3745 , - 5886 , - 959 , - 5332 , - 5613 , - 314 , - 5803 , - 2736 , - 1529 , - 694 , - 4695 , - 140 , - 3397 , - 1074 , - 3587 , - 3496 , - 5265 , - 1454 , - 2479 , - 900 , - 1181 , - 1834 , - 1371 , - 4256 , - 3049 , - 2214 , - 263 , - 1660 , - 4917 , - 2594 , - 5107 , - 5016 , - 833 , - 2974 , - 3999 , - 2420 , - 2701 , - 3354 , - 2891 , - 5776 , - 4569 , - 3734 , - 1783 , - 3180 , - 485 , - 4114 , - 675 , - 584 , - 2353 , - 4494 , - 5519 , - 3940 , - 4221 , - 4874 , - 4411 , - 1344 , - 137 , - 5254 , - 3303 , - 4700 , - 2005 , - 5634 , - 2195 , - 2104 , - 3873 , - 62 , - 1087 , - 5460 , - 5741 , - 442 , - 5931 , - 2864 , - 1657 , - 822 , - 4823 , - 268 , - 3525 , - 1202 , - 3715 , - 3624 , - 5393 , - 1582 , - 2607 , - 1028 , - 1309 , - 1962 , - 1499 , - 4384 , - 3177 , - 2342 , - 391 , - 1788 , - 5045 , - 2722 , - 5235 , - 5144 , - 961 , - 3102 , - 4127 , - 2548 , - 2829 , - 3482 , - 3019 , - 5904 , - 4697 , - 3862 , - 1911 , - 3308 , - 613 , - 4242 , - 803 , - 712 , - 2481 , - 4622 , - 5647 , - 4068 , - 4349 , - 5002 , - 4539 , - 1472 , - 265 , - 5382 , - 3431 , - 4828 , - 2133 , - 5762 , - 2323 , - 2232 , - 4001 , - 190 , - 1215 , - 5588 , - 5869 , - 570 , - 107 , - 2992 , - 1785 , - 950 , - 4951 , - 396 , - 3653 , - 1330 , - 3843 , - 3752 , - 5521 , - 1710 , - 2735 , - 1156 , - 1437 , - 2090 , - 1627 , - 4512 , - 3305 , - 2470 , - 519 , - 1916 , - 5173 , - 2850 , - 5363 , - 5272 , - 1089 , - 3230 , - 4255 , - 2676 , - 2957 , - 3610 , - 3147 , - 80 , - 4825 , - 3990 , - 2039 , - 3436 , - 741 , - 4370 , - 931 , - 840 , - 2609 , - 4750 , - 5775 , - 4196 , - 4477 , - 5130 , - 4667 , - 1600 , - 393 , - 5510 , - 3559 , - 4956 , - 2261 , - 5890 , - 2451 , - 2360 , - 4129 , - 318 , - 1343 , - 5716 , - 45 , - 698 , - 235 , - 3120 , - 1913 , - 1078 , - 5079 , - 524 , - 3781 , - 1458 , - 3971 , - 3880 , - 5649 , - 1838 , - 2863 , - 1284 , - 1565 , - 2218 , - 1755 , - 4640 , - 3433 , - 2598 , - 647 , - 2044 , - 5301 , - 2978 , - 5491 , - 5400 , - 1217 , - 3358 , - 4383 , - 2804 , - 3085 , - 3738 , - 3275 , - 208 , - 4953 , - 4118 , - 2167 , - 3564 , - 869 , - 4498 , - 1059 , - 968 , - 2737 , - 4878 , - 5903 , - 4324 , - 4605 , - 5258 , - 4795 , - 1728 , - 521 , - 5638 , - 3687 , - 5084 , - 2389 , - 66 , - 2579 , - 2488 , - 4257 , - 446 , - 1471 , - 5844 , - 173 , - 826 , - 363 , - 3248 , - 2041 , - 1206 , - 5207 , - 652 , - 3909 , - 1586 , - 4099 , - 4008 , - 5777 , - 1966 , - 2991 , - 1412 , - 1693 , - 2346 , - 1883 , - 4768 , - 3561 , - 2726 , - 775 , - 2172 , - 5429 , - 3106 , - 5619 , - 5528 , - 1345 , - 3486 , - 4511 , - 2932 , - 3213 , - 3866 , - 3403 , - 336 , - 5081 , - 4246 , - 2295 , - 3692 , - 997 , - 4626 , - 1187 , - 1096 , - 2865 , - 5006 , - 79 , - 4452 , - 4733 , - 5386 , - 4923 , - 1856 , - 649 , - 5766 , - 3815 , - 5212 , - 2517 , - 194 , - 2707 , - 2616 , - 4385 , - 574 , - 1599 , - 20 , - 301 , - 954 , - 491 , - 3376 , - 2169 , - 1334 , - 5335 , - 780 , - 4037 , - 1714 , - 4227 , - 4136 , - 5905 , - 2094 , - 3119 , - 1540 , - 1821 , - 2474 , - 2011 , - 4896 , - 3689 , - 2854 , - 903 , - 2300 , - 5557 , - 3234 , - 5747 , - 5656 , - 1473 , - 3614 , - 4639 , - 3060 , - 3341 , - 3994 , - 3531 , - 464 , - 5209 , - 4374 , - 2423 , - 3820 , - 1125 , - 4754 , - 1315 , - 1224 , - 2993 , - 5134 , - 207 , - 4580 , - 4861 , - 5514 , - 5051 , - 1984 , - 777 , - 5894 , - 3943 , - 5340 , - 2645 , - 322 , - 2835 , - 2744 , - 4513 , - 702 , - 1727 , - 148 , - 429 , - 1082 , - 619 , - 3504 , - 2297 , - 1462 , - 5463 , - 908 , - 4165 , - 1842 , - 4355 , - 4264 , - 81 , - 2222 , - 3247 , - 1668 , - 1949 , - 2602 , - 2139 , - 5024 , - 3817 , - 2982 , - 1031 , - 2428 , - 5685 , - 3362 , - 5875 , - 5784 , - 1601 , - 3742 , - 4767 , - 3188 , - 3469 , - 4122 , - 3659 , - 592 , - 5337 , - 4502 , - 2551 , - 3948 , - 1253 , - 4882 , - 1443 , - 1352 , - 3121 , - 5262 , - 335 , - 4708 , - 4989 , - 5642 , - 5179 , - 2112 , - 905 , - 70 , - 4071 , - 5468 , - 2773 , - 450 , - 2963 , - 2872 , - 4641 , - 830 , - 1855 , - 276 , - 557 , - 1210 , - 747 , - 3632 , - 2425 , - 1590 , - 5591 , - 1036 , - 4293 , - 1970 , - 4483 , - 4392 , - 209 , - 2350 , - 3375 , - 1796 , - 2077 , - 2730 , - 2267 , - 5152 , - 3945 , - 3110 , - 1159 , - 2556 , - 5813 , - 3490 , - 51 , - 5912 , - 1729 , - 3870 , - 4895 , - 3316 , - 3597 , - 4250 , - 3787 , - 720 , - 5465 , - 4630 , - 2679 , - 4076 , - 1381 , - 5010 , - 1571 , - 1480 , - 3249 , - 5390 , - 463 , - 4836 , - 5117 , - 5770 , - 5307 , - 2240 , - 1033 , - 198 , - 4199 , - 5596 , - 2901 , - 578 , - 3091 , - 3000 , - 4769 , - 958 , - 1983 , - 404 , - 685 , - 1338 , - 875 , - 3760 , - 2553 , - 1718 , - 5719 , - 1164 , - 4421 , - 2098 , - 4611 , - 4520 , - 337 , - 2478 , - 3503 , - 1924 , - 2205 , - 2858 , - 2395 , - 5280 , - 4073 , - 3238 , - 1287 , - 2684 , - 5941 , - 3618 , - 179 , - 88 , - 1857 , - 3998 , - 5023 , - 3444 , - 3725 , - 4378 , - 3915 , - 848 , - 5593 , - 4758 , - 2807 , - 4204 , - 1509 , - 5138 , - 1699 , - 1608 , - 3377 , - 5518 , - 591 , - 4964 , - 5245 , - 5898 , - 5435 , - 2368 , - 1161 , - 326 , - 4327 , - 5724 , - 3029 , - 706 , - 3219 , - 3128 , - 4897 , - 1086 , - 2111 , - 532 , - 813 , - 1466 , - 1003 , - 3888 , - 2681 , - 1846 , - 5847 , - 1292 , - 4549 , - 2226 , - 4739 , - 4648 , - 465 , - 2606 , - 3631 , - 2052 , - 2333 , - 2986 , - 2523 , - 5408 , - 4201 , - 3366 , - 1415 , - 2812 , - 117 , - 3746 , - 307 , - 216 , - 1985 , - 4126 , - 5151 , - 3572 , - 3853 , - 4506 , - 4043 , - 976 , - 5721 , - 4886 , - 2935 , - 4332 , - 1637 , - 5266 , - 1827 , - 1736 , - 3505 , - 5646 , - 719 , - 5092 , - 5373 , - 74 , - 5563 , - 2496 , - 1289 , - 454 , - 4455 , - 5852 , - 3157 , - 834 , - 3347 , - 3256 , - 5025 , - 1214 , - 2239 , - 660 , - 941 , - 1594 , - 1131 , - 4016 , - 2809 , - 1974 , - 23 , - 1420 , - 4677 , - 2354 , - 4867 , - 4776 , - 593 , - 2734 , - 3759 , - 2180 , - 2461 , - 3114 , - 2651 , - 5536 , - 4329 , - 3494 , - 1543 , - 2940 , - 245 , - 3874 , - 435 , - 344 , - 2113 , - 4254 , - 5279 , - 3700 , - 3981 , - 4634 , - 4171 , - 1104 , - 5849 , - 5014 , - 3063 , - 4460 , - 1765 , - 5394 , - 1955 , - 1864 , - 3633 , - 5774 , - 847 , - 5220 , - 5501 , - 202 , - 5691 , - 2624 , - 1417 , - 582 , - 4583 , - 28 , - 3285 , - 962 , - 3475 , - 3384 , - 5153 , - 1342 , - 2367 , - 788 , - 1069 , - 1722 , - 1259 , - 4144 , - 2937 , - 2102 , - 151 , - 1548 , - 4805 , - 2482 , - 4995 , - 4904 , - 721 , - 2862 , - 3887 , - 2308 , - 2589 , - 3242 , - 2779 , - 5664 , - 4457 , - 3622 , - 1671 , - 3068 , - 373 , - 4002 , - 563 , - 472 , - 2241 , - 4382 , - 5407 , - 3828 , - 4109 , - 4762 , - 4299 , - 1232 , - 25 , - 5142 , - 3191 , - 4588 , - 1893 , - 5522 , - 2083 , - 1992 , - 3761 , - 5902 , - 975 , - 5348 , - 5629 , - 330 , - 5819 , - 2752 , - 1545 , - 710 , - 4711 , - 156 , - 3413 , - 1090 , - 3603 , - 3512 , - 5281 , - 1470 , - 2495 , - 916 , - 1197 , - 1850 , - 1387 , - 4272 , - 3065 , - 2230 , - 279 , - 1676 , - 4933 , - 2610 , - 5123 , - 5032 , - 849 , - 2990 , - 4015 , - 2436 , - 2717 , - 3370 , - 2907 , - 5792 , - 4585 , - 3750 , - 1799 , - 3196 , - 501 , - 4130 , - 691 , - 600 , - 2369 , - 4510 , - 5535 , - 3956 , - 4237 , - 4890 , - 4427 , - 1360 , - 153 , - 5270 , - 3319 , - 4716 , - 2021 , - 5650 , - 2211 , - 2120 , - 3889 , - 78 , - 1103 , - 5476 , - 5757 , - 458 , - 5947 , - 2880 , - 1673 , - 838 , - 4839 , - 284 , - 3541 , - 1218 , - 3731 , - 3640 , - 5409 , - 1598 , - 2623 , - 1044 , - 1325 , - 1978 , - 1515 , - 4400 , - 3193 , - 2358 , - 407 , - 1804 , - 5061 , - 2738 , - 5251 , - 5160 , - 977 , - 3118 , - 4143 , - 2564 , - 2845 , - 3498 , - 3035 , - 5920 , - 4713 , - 3878 , - 1927 , - 3324 , - 629 , - 4258 , - 819 , - 728 , - 2497 , - 4638 , - 5663 , - 4084 , - 4365 , - 5018 , - 4555 , - 1488 , - 281 , - 5398 , - 3447 , - 4844 , - 2149 , - 5778 , - 2339 , - 2248 , - 4017 , - 206 , - 1231 , - 5604 , - 5885 , - 586 , - 123 , - 3008 , - 1801 , - 966 , - 4967 , - 412 , - 3669 , - 1346 , - 3859 , - 3768 , - 5537 , - 1726 , - 2751 , - 1172 , - 1453 , - 2106 , - 1643 , - 4528 , - 3321 , - 2486 , - 535 , - 1932 , - 5189 , - 2866 , - 5379 , - 5288 , - 1105 , - 3246 , - 4271 , - 2692 , - 2973 , - 3626 , - 3163 , - 96 , - 4841 , - 4006 , - 2055 , - 3452 , - 757 , - 4386 , - 947 , - 856 , - 2625 , - 4766 , - 5791 , - 4212 , - 4493 , - 5146 , - 4683 , - 1616 , - 409 , - 5526 , - 3575 , - 4972 , - 2277 , - 5906 , - 2467 , - 2376 , - 4145 , - 334 , - 1359 , - 5732 , - 61 , - 714 , - 251 , - 3136 , - 1929 , - 1094 , - 5095 , - 540 , - 3797 , - 1474 , - 3987 , - 3896 , - 5665 , - 1854 , - 2879 , - 1300 , - 1581 , - 2234 , - 1771 , - 4656 , - 3449 , - 2614 , - 663 , - 2060 , - 5317 , - 2994 , - 5507 , - 5416 , - 1233 , - 3374 , - 4399 , - 2820 , - 3101 , - 3754 , - 3291 , - 224 , - 4969 , - 4134 , - 2183 , - 3580 , - 885 , - 4514 , - 1075 , - 984 , - 2753 , - 4894 , - 5919 , - 4340 , - 4621 , - 5274 , - 4811 , - 1744 , - 537 , - 5654 , - 3703 , - 5100 , - 2405 , - 82 , - 2595 , - 2504 , - 4273 , - 462 , - 1487 , - 5860 , - 189 , - 842 , - 379 , - 3264 , - 2057 , - 1222 , - 5223 , - 668 , - 3925 , - 1602 , - 4115 , - 4024 , - 5793 , - 1982 , - 3007 , - 1428 , - 1709 , - 2362 , - 1899 , - 4784 , - 3577 , - 2742 , - 791 , - 2188 , - 5445 , - 3122 , - 5635 , - 5544 , - 1361 , - 3502 , - 4527 , - 2948 , - 3229 , - 3882 , - 3419 , - 352 , - 5097 , - 4262 , - 2311 , - 3708 , - 1013 , - 4642 , - 1203 , - 1112 , - 2881 , - 5022 , - 95 , - 4468 , - 4749 , - 5402 , - 4939 , - 1872 , - 665 , - 5782 , - 3831 , - 5228 , - 2533 , - 210 , - 2723 , - 2632 , - 4401 , - 590 , - 1615 , - 36 , - 317 , - 970 , - 507 , - 3392 , - 2185 , - 1350 , - 5351 , - 796 , - 4053 , - 1730 , - 4243 , - 4152 , - 5921 , - 2110 , - 3135 , - 1556 , - 1837 , - 2490 , - 2027 , - 4912 , - 3705 , - 2870 , - 919 , - 2316 , - 5573 , - 3250 , - 5763 , - 5672 , - 1489 , - 3630 , - 4655 , - 3076 , - 3357 , - 4010 , - 3547 , - 480 , - 5225 , - 4390 , - 2439 , - 3836 , - 1141 , - 4770 , - 1331 , - 1240 , - 3009 , - 5150 , - 223 , - 4596 , - 4877 , - 5530 , - 5067 , - 2000 , - 793 , - 5910 , - 3959 , - 5356 , - 2661 , - 338 , - 2851 , - 2760 , - 4529 , - 718 , - 1743 , - 164 , - 445 , - 1098 , - 635 , - 3520 , - 2313 , - 1478 , - 5479 , - 924 , - 4181 , - 1858 , - 4371 , - 4280 , - 97 , - 2238 , - 3263 , - 1684 , - 1965 , - 2618 , - 2155 , - 5040 , - 3833 , - 2998 , - 1047 , - 2444 , - 5701 , - 3378 , - 5891 , - 5800 , - 1617 , - 3758 , - 4783 , - 3204 , - 3485 , - 4138 , - 3675 , - 608 , - 5353 , - 4518 , - 2567 , - 3964 , - 1269 , - 4898 , - 1459 , - 1368 , - 3137 , - 5278 , - 351 , - 4724 , - 5005 , - 5658 , - 5195 , - 2128 , - 921 , - 86 , - 4087 , - 5484 , - 2789 , - 466 , - 2979 , - 2888 , - 4657 , - 846 , - 1871 , - 292 , - 573 , - 1226 , - 763 , - 3648 , - 2441 , - 1606 , - 5607 , - 1052 , - 4309 , - 1986 , - 4499 , - 4408 , - 225 , - 2366 , - 3391 , - 1812 , - 2093 , - 2746 , - 2283 , - 5168 , - 3961 , - 3126 , - 1175 , - 2572 , - 5829 , - 3506 , - 67 , - 5928 , - 1745 , - 3886 , - 4911 , - 3332 , - 3613 , - 4266 , - 3803 , - 736 , - 5481 , - 4646 , - 2695 , - 4092 , - 1397 , - 5026 , - 1587 , - 1496 , - 3265 , - 5406 , - 479 , - 4852 , - 5133 , - 5786 , - 5323 , - 2256 , - 1049 , - 214 , - 4215 , - 5612 , - 2917 , - 594 , - 3107 , - 3016 , - 4785 , - 974 , - 1999 , - 420 , - 701 , - 1354 , - 891 , - 3776 , - 2569 , - 1734 , - 5735 , - 1180 , - 4437 , - 2114 , - 4627 , - 4536 , - 353 , - 2494 , - 3519 , - 1940 , - 2221 , - 2874 , - 2411 , - 5296 , - 4089 , - 3254 , - 1303 , - 2700 , - 5 , - 3634 , - 195 , - 104 , - 1873 , - 4014 , - 5039 , - 3460 , - 3741 , - 4394 , - 3931 , - 864 , - 5609 , - 4774 , - 2823 , - 4220 , - 1525 , - 5154 , - 1715 , - 1624 , - 3393 , - 5534 , - 607 , - 4980 , - 5261 , - 5914 , - 5451 , - 2384 , - 1177 , - 342 , - 4343 , - 5740 , - 3045 , - 722 , - 3235 , - 3144 , - 4913 , - 1102 , - 2127 , - 548 , - 829 , - 1482 , - 1019 , - 3904 , - 2697 , - 1862 , - 5863 , - 1308 , - 4565 , - 2242 , - 4755 , - 4664 , - 481 , - 2622 , - 3647 , - 2068 , - 2349 , - 3002 , - 2539 , - 5424 , - 4217 , - 3382 , - 1431 , - 2828 , - 133 , - 3762 , - 323 , - 232 , - 2001 , - 4142 , - 5167 , - 3588 , - 3869 , - 4522 , - 4059 , - 992 , - 5737 , - 4902 , - 2951 , - 4348 , - 1653 , - 5282 , - 1843 , - 1752 , - 3521 , - 5662 , - 735 , - 5108 , - 5389 , - 90 , - 5579 , - 2512 , - 1305 , - 470 , - 4471 , - 5868 , - 3173 , - 850 , - 3363 , - 3272 , - 5041 , - 1230 , - 2255 , - 676 , - 957 , - 1610 , - 1147 , - 4032 , - 2825 , - 1990 , - 39 , - 1436 , - 4693 , - 2370 , - 4883 , - 4792 , - 609 , - 2750 , - 3775 , - 2196 , - 2477 , - 3130 , - 2667 , - 5552 , - 4345 , - 3510 , - 1559 , - 2956 , - 261 , - 3890 , - 451 , - 360 , - 2129 , - 4270 , - 5295 , - 3716 , - 3997 , - 4650 , - 4187 , - 1120 , - 5865 , - 5030 , - 3079 , - 4476 , - 1781 , - 5410 , - 1971 , - 1880 , - 3649 , - 5790 , - 863 , - 5236 , - 5517 , - 218 , - 5707 , - 2640 , - 1433 , - 598 , - 4599 , - 44 , - 3301 , - 978 , - 3491 , - 3400 , - 5169 , - 1358 , - 2383 , - 804 , - 1085 , - 1738 , - 1275 , - 4160 , - 2953 , - 2118 , - 167 , - 1564 , - 4821 , - 2498 , - 5011 , - 4920 , - 737 , - 2878 , - 3903 , - 2324 , - 2605 , - 3258 , - 2795 , - 5680 , - 4473 , - 3638 , - 1687 , - 3084 , - 389 , - 4018 , - 579 , - 488 , - 2257 , - 4398 , - 5423 , - 3844 , - 4125 , - 4778 , - 4315 , - 1248 , - 41 , - 5158 , - 3207 , - 4604 , - 1909 , - 5538 , - 2099 , - 2008 , - 3777 , - 5918 , - 991 , - 5364 , - 5645 , - 346 , - 5835 , - 2768 , - 1561 , - 726 , - 4727 , - 172 , - 3429 , - 1106 , - 3619 , - 3528 , - 5297 , - 1486 , - 2511 , - 932 , - 1213 , - 1866 , - 1403 , - 4288 , - 3081 , - 2246 , - 295 , - 1692 , - 4949 , - 2626 , - 5139 , - 5048 , - 865 , - 3006 , - 4031 , - 2452 , - 2733 , - 3386 , - 2923 , - 5808 , - 4601 , - 3766 , - 1815 , - 3212 , - 517 , - 4146 , - 707 , - 616 , - 2385 , - 4526 , - 5551 , - 3972 , - 4253 , - 4906 , - 4443 , - 1376 , - 169 , - 5286 , - 3335 , - 4732 , - 2037 , - 5666 , - 2227 , - 2136 , - 3905 , - 94 , - 1119 , - 5492 , - 5773 , - 474 , - 11 , - 2896 , - 1689 , - 854 , - 4855 , - 300 , - 3557 , - 1234 , - 3747 , - 3656 , - 5425 , - 1614 , - 2639 , - 1060 , - 1341 , - 1994 , - 1531 , - 4416 , - 3209 , - 2374 , - 423 , - 1820 , - 5077 , - 2754 , - 5267 , - 5176 , - 993 , - 3134 , - 4159 , - 2580 , - 2861 , - 3514 , - 3051 , - 5936 , - 4729 , - 3894 , - 1943 , - 3340 , - 645 , - 4274 , - 835 , - 744 , - 2513 , - 4654 , - 5679 , - 4100 , - 4381 , - 5034 , - 4571 , - 1504 , - 297 , - 5414 , - 3463 , - 4860 , - 2165 , - 5794 , - 2355 , - 2264 , - 4033 , - 222 , - 1247 , - 5620 , - 5901 , - 602 , - 139 , - 3024 , - 1817 , - 982 , - 4983 , - 428 , - 3685 , - 1362 , - 3875 , - 3784 , - 5553 , - 1742 , - 2767 , - 1188 , - 1469 , - 2122 , - 1659 , - 4544 , - 3337 , - 2502 , - 551 , - 1948 , - 5205 , - 2882 , - 5395 , - 5304 , - 1121 , - 3262 , - 4287 , - 2708 , - 2989 , - 3642 , - 3179 , - 112 , - 4857 , - 4022 , - 2071 , - 3468 , - 773 , - 4402 , - 963 , - 872 , - 2641 , - 4782 , - 5807 , - 4228 , - 4509 , - 5162 , - 4699 , - 1632 , - 425 , - 5542 , - 3591 , - 4988 , - 2293 , - 5922 , - 2483 , - 2392 , - 4161 , - 350 , - 1375 , - 5748 , - 77 , - 730 , - 267 , - 3152 , - 1945 , - 1110 , - 5111 , - 556 , - 3813 , - 1490 , - 4003 , - 3912 , - 5681 , - 1870 , - 2895 , - 1316 , - 1597 , - 2250 , - 1787 , - 4672 , - 3465 , - 2630 , - 679 , - 2076 , - 5333 , - 3010 , - 5523 , - 5432 , - 1249 , - 3390 , - 4415 , - 2836 , - 3117 , - 3770 , - 3307 , - 240 , - 4985 , - 4150 , - 2199 , - 3596 , - 901 , - 4530 , - 1091 , - 1000 , - 2769 , - 4910 , - 5935 , - 4356 , - 4637 , - 5290 , - 4827 , - 1760 , - 553 , - 5670 , - 3719 , - 5116 , - 2421 , - 98 , - 2611 , - 2520 , - 4289 , - 478 , - 1503 , - 5876 , - 205 , - 858 , - 395 , - 3280 , - 2073 , - 1238 , - 5239 , - 684 , - 3941 , - 1618 , - 4131 , - 4040 , - 5809 , - 1998 , - 3023 , - 1444 , - 1725 , - 2378 , - 1915 , - 4800 , - 3593 , - 2758 , - 807 , - 2204 , - 5461 , - 3138 , - 5651 , - 5560 , - 1377 , - 3518 , - 4543 , - 2964 , - 3245 , - 3898 , - 3435 , - 368 , - 5113 , - 4278 , - 2327 , - 3724 , - 1029 , - 4658 , - 1219 , - 1128 , - 2897 , - 5038 , - 111 , - 4484 , - 4765 , - 5418 , - 4955 , - 1888 , - 681 , - 5798 , - 3847 , - 5244 , - 2549 , - 226 , - 2739 , - 2648 , - 4417 , - 606 , - 1631 , - 52 , - 333 , - 986 , - 523 , - 3408 , - 2201 , - 1366 , - 5367 , - 812 , - 4069 , - 1746 , - 4259 , - 4168 , - 5937 , - 2126 , - 3151 , - 1572 , - 1853 , - 2506 , - 2043 , - 4928 , - 3721 , - 2886 , - 935 , - 2332 , - 5589 , - 3266 , - 5779 , - 5688 , - 1505 , - 3646 , - 4671 , - 3092 , - 3373 , - 4026 , - 3563 , - 496 , - 5241 , - 4406 , - 2455 , - 3852 , - 1157 , - 4786 , - 1347 , - 1256 , - 3025 , - 5166 , - 239 , - 4612 , - 4893 , - 5546 , - 5083 , - 2016 , - 809 , - 5926 , - 3975 , - 5372 , - 2677 , - 354 , - 2867 , - 2776 , - 4545 , - 734 , - 1759 , - 180 , - 461 , - 1114 , - 651 , - 3536 , - 2329 , - 1494 , - 5495 , - 940 , - 4197 , - 1874 , - 4387 , - 4296 , - 113 , - 2254 , - 3279 , - 1700 , - 1981 , - 2634 , - 2171 , - 5056 , - 3849 , - 3014 , - 1063 , - 2460 , - 5717 , - 3394 , - 5907 , - 5816 , - 1633 , - 3774 , - 4799 , - 3220 , - 3501 , - 4154 , - 3691 , - 624 , - 5369 , - 4534 , - 2583 , - 3980 , - 1285 , - 4914 , - 1475 , - 1384 , - 3153 , - 5294 , - 367 , - 4740 , - 5021 , - 5674 , - 5211 , - 2144 , - 937 , - 102 , - 4103 , - 5500 , - 2805 , - 482 , - 2995 , - 2904 , - 4673 , - 862 , - 1887 , - 308 , - 589 , - 1242 , - 779 , - 3664 , - 2457 , - 1622 , - 5623 , - 1068 , - 4325 , - 2002 , - 4515 , - 4424 , - 241 , - 2382 , - 3407 , - 1828 , - 2109 , - 2762 , - 2299 , - 5184 , - 3977 , - 3142 , - 1191 , - 2588 , - 5845 , - 3522 , - 83 , - 5944 , - 1761 , - 3902 , - 4927 , - 3348 , - 3629 , - 4282 , - 3819 , - 752 , - 5497 , - 4662 , - 2711 , - 4108 , - 1413 , - 5042 , - 1603 , - 1512 , - 3281 , - 5422 , - 495 , - 4868 , - 5149 , - 5802 , - 5339 , - 2272 , - 1065 , - 230 , - 4231 , - 5628 , - 2933 , - 610 , - 3123 , - 3032 , - 4801 , - 990 , - 2015 , - 436 , - 717 , - 1370 , - 907 , - 3792 , - 2585 , - 1750 , - 5751 , - 1196 , - 4453 , - 2130 , - 4643 , - 4552 , - 369 , - 2510 , - 3535 , - 1956 , - 2237 , - 2890 , - 2427 , - 5312 , - 4105 , - 3270 , - 1319 , - 2716 , - 21 , - 3650 , - 211 , - 120 , - 1889 , - 4030 , - 5055 , - 3476 , - 3757 , - 4410 , - 3947 , - 880 , - 5625 , - 4790 , - 2839 , - 4236 , - 1541 , - 5170 , - 1731 , - 1640 , - 3409 , - 5550 , - 623 , - 4996 , - 5277 , - 5930 , - 5467 , - 2400 , - 1193 , - 358 , - 4359 , - 5756 , - 3061 , - 738 , - 3251 , - 3160 , - 4929 , - 1118 , - 2143 , - 564 , - 845 , - 1498 , - 1035 , - 3920 , - 2713 , - 1878 , - 5879 , - 1324 , - 4581 , - 2258 , - 4771 , - 4680 , - 497 , - 2638 , - 3663 , - 2084 , - 2365 , - 3018 , - 2555 , - 5440 , - 4233 , - 3398 , - 1447 , - 2844 , - 149 , - 3778 , - 339 , - 248 , - 2017 , - 4158 , - 5183 , - 3604 , - 3885 , - 4538 , - 4075 , - 1008 , - 5753 , - 4918 , - 2967 , - 4364 , - 1669 , - 5298 , - 1859 , - 1768 , - 3537 , - 5678 , - 751 , - 5124 , - 5405 , - 106 , - 5595 , - 2528 , - 1321 , - 486 , - 4487 , - 5884 , - 3189 , - 866 , - 3379 , - 3288 , - 5057 , - 1246 , - 2271 , - 692 , - 973 , - 1626 , - 1163 , - 4048 , - 2841 , - 2006 , - 55 , - 1452 , - 4709 , - 2386 , - 4899 , - 4808 , - 625 , - 2766 , - 3791 , - 2212 , - 2493 , - 3146 , - 2683 , - 5568 , - 4361 , - 3526 , - 1575 , - 2972 , - 277 , - 3906 , - 467 , - 376 , - 2145 , - 4286 , - 5311 , - 3732 , - 4013 , - 4666 , - 4203 , - 1136 , - 5881 , - 5046 , - 3095 , - 4492 , - 1797 , - 5426 , - 1987 , - 1896 , - 3665 , - 5806 , - 879 , - 5252 , - 5533 , - 234 , - 5723 , - 2656 , - 1449 , - 614 , - 4615 , - 60 , - 3317 , - 994 , - 3507 , - 3416 , - 5185 , - 1374 , - 2399 , - 820 , - 1101 , - 1754 , - 1291 , - 4176 , - 2969 , - 2134 , - 183 , - 1580 , - 4837 , - 2514 , - 5027 , - 4936 , - 753 , - 2894 , - 3919 , - 2340 , - 2621 , - 3274 , - 2811 , - 5696 , - 4489 , - 3654 , - 1703 , - 3100 , - 405 , - 4034 , - 595 , - 504 , - 2273 , - 4414 , - 5439 , - 3860 , - 4141 , - 4794 , - 4331 , - 1264 , - 57 , - 5174 , - 3223 , - 4620 , - 1925 , - 5554 , - 2115 , - 2024 , - 3793 , - 5934 , - 1007 , - 5380 , - 5661 , - 362 , - 5851 , - 2784 , - 1577 , - 742 , - 4743 , - 188 , - 3445 , - 1122 , - 3635 , - 3544 , - 5313 , - 1502 , - 2527 , - 948 , - 1229 , - 1882 , - 1419 , - 4304 , - 3097 , - 2262 , - 311 , - 1708 , - 4965 , - 2642 , - 5155 , - 5064 , - 881 , - 3022 , - 4047 , - 2468 , - 2749 , - 3402 , - 2939 , - 5824 , - 4617 , - 3782 , - 1831 , - 3228 , - 533 , - 4162 , - 723 , - 632 , - 2401 , - 4542 , - 5567 , - 3988 , - 4269 , - 4922 , - 4459 , - 1392 , - 185 , - 5302 , - 3351 , - 4748 , - 2053 , - 5682 , - 2243 , - 2152 , - 3921 , - 110 , - 1135 , - 5508 , - 5789 , - 490 , - 27 , - 2912 , - 1705 , - 870 , - 4871 , - 316 , - 3573 , - 1250 , - 3763 , - 3672 , - 5441 , - 1630 , - 2655 , - 1076 , - 1357 , - 2010 , - 1547 , - 4432 , - 3225 , - 2390 , - 439 , - 1836 , - 5093 , - 2770 , - 5283 , - 5192 , - 1009 , - 3150 , - 4175 , - 2596 , - 2877 , - 3530 , - 3067 , - 0 , - 421 , - 4038 , - 5587 , - 2812 , - 2481 , - 2338 , - 3135 , - 2616 , - 1533 , - 3646 , - 3691 , - 5428 , - 3593 , - 1946 , - 1239 , - 5232 , - 2645 , - 3254 , - 1795 , - 2028 , - 4705 , - 1554 , - 5359 , - 1832 , - 3757 , - 2862 , - 5915 , - 4644 , - 5817 , - 1162 , - 3463 , - 4448 , - 4869 , - 2470 , - 4019 , - 1244 , - 913 , - 770 , - 1567 , - 1048 , - 5981 , - 2078 , - 2123 , - 3860 , - 2025 , - 378 , - 5687 , - 3664 , - 1077 , - 1686 , - 227 , - 460 , - 3137 , - 6002 , - 3791 , - 264 , - 2189 , - 1294 , - 4347 , - 3076 , - 4249 , - 5610 , - 1895 , - 2880 , - 3301 , - 902 , - 2451 , - 5692 , - 5361 , - 5218 , - 6015 , - 5496 , - 4413 , - 510 , - 555 , - 2292 , - 457 , - 4826 , - 4119 , - 2096 , - 5525 , - 118 , - 4675 , - 4908 , - 1569 , - 4434 , - 2223 , - 4712 , - 621 , - 5742 , - 2779 , - 1508 , - 2681 , - 4042 , - 327 , - 1312 , - 1733 , - 5350 , - 883 , - 4124 , - 3793 , - 3650 , - 4447 , - 3928 , - 2845 , - 4958 , - 5003 , - 724 , - 4905 , - 3258 , - 2551 , - 528 , - 3957 , - 4566 , - 3107 , - 3340 , - 1 , - 2866 , - 655 , - 3144 , - 5069 , - 4174 , - 1211 , - 5956 , - 1113 , - 2474 , - 4775 , - 5760 , - 165 , - 3782 , - 5331 , - 2556 , - 2225 , - 2082 , - 2879 , - 2360 , - 1277 , - 3390 , - 3435 , - 5172 , - 3337 , - 1690 , - 983 , - 4976 , - 2389 , - 2998 , - 1539 , - 1772 , - 4449 , - 1298 , - 5103 , - 1576 , - 3501 , - 2606 , - 5659 , - 4388 , - 5561 , - 906 , - 3207 , - 4192 , - 4613 , - 2214 , - 3763 , - 988 , - 657 , - 514 , - 1311 , - 792 , - 5725 , - 1822 , - 1867 , - 3604 , - 1769 , - 122 , - 5431 , - 3408 , - 821 , - 1430 , - 5987 , - 204 , - 2881 , - 5746 , - 3535 , - 8 , - 1933 , - 1038 , - 4091 , - 2820 , - 3993 , - 5354 , - 1639 , - 2624 , - 3045 , - 646 , - 2195 , - 5436 , - 5105 , - 4962 , - 5759 , - 5240 , - 4157 , - 254 , - 299 , - 2036 , - 201 , - 4570 , - 3863 , - 1840 , - 5269 , - 5878 , - 4419 , - 4652 , - 1313 , - 4178 , - 1967 , - 4456 , - 365 , - 5486 , - 2523 , - 1252 , - 2425 , - 3786 , - 71 , - 1056 , - 1477 , - 5094 , - 627 , - 3868 , - 3537 , - 3394 , - 4191 , - 3672 , - 2589 , - 4702 , - 4747 , - 468 , - 4649 , - 3002 , - 2295 , - 272 , - 3701 , - 4310 , - 2851 , - 3084 , - 5761 , - 2610 , - 399 , - 2888 , - 4813 , - 3918 , - 955 , - 5700 , - 857 , - 2218 , - 4519 , - 5504 , - 5925 , - 3526 , - 5075 , - 2300 , - 1969 , - 1826 , - 2623 , - 2104 , - 1021 , - 3134 , - 3179 , - 4916 , - 3081 , - 1434 , - 727 , - 4720 , - 2133 , - 2742 , - 1283 , - 1516 , - 4193 , - 1042 , - 4847 , - 1320 , - 3245 , - 2350 , - 5403 , - 4132 , - 5305 , - 650 , - 2951 , - 3936 , - 4357 , - 1958 , - 3507 , - 732 , - 401 , - 258 , - 1055 , - 536 , - 5469 , - 1566 , - 1611 , - 3348 , - 1513 , - 5882 , - 5175 , - 3152 , - 565 , - 1174 , - 5731 , - 5964 , - 2625 , - 5490 , - 3279 , - 5768 , - 1677 , - 782 , - 3835 , - 2564 , - 3737 , - 5098 , - 1383 , - 2368 , - 2789 , - 390 , - 1939 , - 5180 , - 4849 , - 4706 , - 5503 , - 4984 , - 3901 , - 6014 , - 43 , - 1780 , - 5961 , - 4314 , - 3607 , - 1584 , - 5013 , - 5622 , - 4163 , - 4396 , - 1057 , - 3922 , - 1711 , - 4200 , - 109 , - 5230 , - 2267 , - 996 , - 2169 , - 3530 , - 5831 , - 800 , - 1221 , - 4838 , - 371 , - 3612 , - 3281 , - 3138 , - 3935 , - 3416 , - 2333 , - 4446 , - 4491 , - 212 , - 4393 , - 2746 , - 2039 , - 16 , - 3445 , - 4054 , - 2595 , - 2828 , - 5505 , - 2354 , - 143 , - 2632 , - 4557 , - 3662 , - 699 , - 5444 , - 601 , - 1962 , - 4263 , - 5248 , - 5669 , - 3270 , - 4819 , - 2044 , - 1713 , - 1570 , - 2367 , - 1848 , - 765 , - 2878 , - 2923 , - 4660 , - 2825 , - 1178 , - 471 , - 4464 , - 1877 , - 2486 , - 1027 , - 1260 , - 3937 , - 786 , - 4591 , - 1064 , - 2989 , - 2094 , - 5147 , - 3876 , - 5049 , - 394 , - 2695 , - 3680 , - 4101 , - 1702 , - 3251 , - 476 , - 145 , - 2 , - 799 , - 280 , - 5213 , - 1310 , - 1355 , - 3092 , - 1257 , - 5626 , - 4919 , - 2896 , - 309 , - 918 , - 5475 , - 5708 , - 2369 , - 5234 , - 3023 , - 5512 , - 1421 , - 526 , - 3579 , - 2308 , - 3481 , - 4842 , - 1127 , - 2112 , - 2533 , - 134 , - 1683 , - 4924 , - 4593 , - 4450 , - 5247 , - 4728 , - 3645 , - 5758 , - 5803 , - 1524 , - 5705 , - 4058 , - 3351 , - 1328 , - 4757 , - 5366 , - 3907 , - 4140 , - 801 , - 3666 , - 1455 , - 3944 , - 5869 , - 4974 , - 2011 , - 740 , - 1913 , - 3274 , - 5575 , - 544 , - 965 , - 4582 , - 115 , - 3356 , - 3025 , - 2882 , - 3679 , - 3160 , - 2077 , - 4190 , - 4235 , - 5972 , - 4137 , - 2490 , - 1783 , - 5776 , - 3189 , - 3798 , - 2339 , - 2572 , - 5249 , - 2098 , - 5903 , - 2376 , - 4301 , - 3406 , - 443 , - 5188 , - 345 , - 1706 , - 4007 , - 4992 , - 5413 , - 3014 , - 4563 , - 1788 , - 1457 , - 1314 , - 2111 , - 1592 , - 509 , - 2622 , - 2667 , - 4404 , - 2569 , - 922 , - 215 , - 4208 , - 1621 , - 2230 , - 771 , - 1004 , - 3681 , - 530 , - 4335 , - 808 , - 2733 , - 1838 , - 4891 , - 3620 , - 4793 , - 138 , - 2439 , - 3424 , - 3845 , - 1446 , - 2995 , - 220 , - 5905 , - 5762 , - 543 , - 24 , - 4957 , - 1054 , - 1099 , - 2836 , - 1001 , - 5370 , - 4663 , - 2640 , - 53 , - 662 , - 5219 , - 5452 , - 2113 , - 4978 , - 2767 , - 5256 , - 1165 , - 270 , - 3323 , - 2052 , - 3225 , - 4586 , - 871 , - 1856 , - 2277 , - 5894 , - 1427 , - 4668 , - 4337 , - 4194 , - 4991 , - 4472 , - 3389 , - 5502 , - 5547 , - 1268 , - 5449 , - 3802 , - 3095 , - 1072 , - 4501 , - 5110 , - 3651 , - 3884 , - 545 , - 3410 , - 1199 , - 3688 , - 5613 , - 4718 , - 1755 , - 484 , - 1657 , - 3018 , - 5319 , - 288 , - 709 , - 4326 , - 5875 , - 3100 , - 2769 , - 2626 , - 3423 , - 2904 , - 1821 , - 3934 , - 3979 , - 5716 , - 3881 , - 2234 , - 1527 , - 5520 , - 2933 , - 3542 , - 2083 , - 2316 , - 4993 , - 1842 , - 5647 , - 2120 , - 4045 , - 3150 , - 187 , - 4932 , - 89 , - 1450 , - 3751 , - 4736 , - 5157 , - 2758 , - 4307 , - 1532 , - 1201 , - 1058 , - 1855 , - 1336 , - 253 , - 2366 , - 2411 , - 4148 , - 2313 , - 666 , - 5975 , - 3952 , - 1365 , - 1974 , - 515 , - 748 , - 3425 , - 274 , - 4079 , - 552 , - 2477 , - 1582 , - 4635 , - 3364 , - 4537 , - 5898 , - 2183 , - 3168 , - 3589 , - 1190 , - 2739 , - 5980 , - 5649 , - 5506 , - 287 , - 5784 , - 4701 , - 798 , - 843 , - 2580 , - 745 , - 5114 , - 4407 , - 2384 , - 5813 , - 406 , - 4963 , - 5196 , - 1857 , - 4722 , - 2511 , - 5000 , - 909 , - 14 , - 3067 , - 1796 , - 2969 , - 4330 , - 615 , - 1600 , - 2021 , - 5638 , - 1171 , - 4412 , - 4081 , - 3938 , - 4735 , - 4216 , - 3133 , - 5246 , - 5291 , - 1012 , - 5193 , - 3546 , - 2839 , - 816 , - 4245 , - 4854 , - 3395 , - 3628 , - 289 , - 3154 , - 943 , - 3432 , - 5357 , - 4462 , - 1499 , - 228 , - 1401 , - 2762 , - 5063 , - 32 , - 453 , - 4070 , - 5619 , - 2844 , - 2513 , - 2370 , - 3167 , - 2648 , - 1565 , - 3678 , - 3723 , - 5460 , - 3625 , - 1978 , - 1271 , - 5264 , - 2677 , - 3286 , - 1827 , - 2060 , - 4737 , - 1586 , - 5391 , - 1864 , - 3789 , - 2894 , - 5947 , - 4676 , - 5849 , - 1194 , - 3495 , - 4480 , - 4901 , - 2502 , - 4051 , - 1276 , - 945 , - 802 , - 1599 , - 1080 , - 6013 , - 2110 , - 2155 , - 3892 , - 2057 , - 410 , - 5719 , - 3696 , - 1109 , - 1718 , - 259 , - 492 , - 3169 , - 18 , - 3823 , - 296 , - 2221 , - 1326 , - 4379 , - 3108 , - 4281 , - 5642 , - 1927 , - 2912 , - 3333 , - 934 , - 2483 , - 5724 , - 5393 , - 5250 , - 31 , - 5528 , - 4445 , - 542 , - 587 , - 2324 , - 489 , - 4858 , - 4151 , - 2128 , - 5557 , - 150 , - 4707 , - 4940 , - 1601 , - 4466 , - 2255 , - 4744 , - 653 , - 5774 , - 2811 , - 1540 , - 2713 , - 4074 , - 359 , - 1344 , - 1765 , - 5382 , - 915 , - 4156 , - 3825 , - 3682 , - 4479 , - 3960 , - 2877 , - 4990 , - 5035 , - 756 , - 4937 , - 3290 , - 2583 , - 560 , - 3989 , - 4598 , - 3139 , - 3372 , - 33 , - 2898 , - 687 , - 3176 , - 5101 , - 4206 , - 1243 , - 5988 , - 1145 , - 2506 , - 4807 , - 5792 , - 197 , - 3814 , - 5363 , - 2588 , - 2257 , - 2114 , - 2911 , - 2392 , - 1309 , - 3422 , - 3467 , - 5204 , - 3369 , - 1722 , - 1015 , - 5008 , - 2421 , - 3030 , - 1571 , - 1804 , - 4481 , - 1330 , - 5135 , - 1608 , - 3533 , - 2638 , - 5691 , - 4420 , - 5593 , - 938 , - 3239 , - 4224 , - 4645 , - 2246 , - 3795 , - 1020 , - 689 , - 546 , - 1343 , - 824 , - 5757 , - 1854 , - 1899 , - 3636 , - 1801 , - 154 , - 5463 , - 3440 , - 853 , - 1462 , - 3 , - 236 , - 2913 , - 5778 , - 3567 , - 40 , - 1965 , - 1070 , - 4123 , - 2852 , - 4025 , - 5386 , - 1671 , - 2656 , - 3077 , - 678 , - 2227 , - 5468 , - 5137 , - 4994 , - 5791 , - 5272 , - 4189 , - 286 , - 331 , - 2068 , - 233 , - 4602 , - 3895 , - 1872 , - 5301 , - 5910 , - 4451 , - 4684 , - 1345 , - 4210 , - 1999 , - 4488 , - 397 , - 5518 , - 2555 , - 1284 , - 2457 , - 3818 , - 103 , - 1088 , - 1509 , - 5126 , - 659 , - 3900 , - 3569 , - 3426 , - 4223 , - 3704 , - 2621 , - 4734 , - 4779 , - 500 , - 4681 , - 3034 , - 2327 , - 304 , - 3733 , - 4342 , - 2883 , - 3116 , - 5793 , - 2642 , - 431 , - 2920 , - 4845 , - 3950 , - 987 , - 5732 , - 889 , - 2250 , - 4551 , - 5536 , - 5957 , - 3558 , - 5107 , - 2332 , - 2001 , - 1858 , - 2655 , - 2136 , - 1053 , - 3166 , - 3211 , - 4948 , - 3113 , - 1466 , - 759 , - 4752 , - 2165 , - 2774 , - 1315 , - 1548 , - 4225 , - 1074 , - 4879 , - 1352 , - 3277 , - 2382 , - 5435 , - 4164 , - 5337 , - 682 , - 2983 , - 3968 , - 4389 , - 1990 , - 3539 , - 764 , - 433 , - 290 , - 1087 , - 568 , - 5501 , - 1598 , - 1643 , - 3380 , - 1545 , - 5914 , - 5207 , - 3184 , - 597 , - 1206 , - 5763 , - 5996 , - 2657 , - 5522 , - 3311 , - 5800 , - 1709 , - 814 , - 3867 , - 2596 , - 3769 , - 5130 , - 1415 , - 2400 , - 2821 , - 422 , - 1971 , - 5212 , - 4881 , - 4738 , - 5535 , - 5016 , - 3933 , - 30 , - 75 , - 1812 , - 5993 , - 4346 , - 3639 , - 1616 , - 5045 , - 5654 , - 4195 , - 4428 , - 1089 , - 3954 , - 1743 , - 4232 , - 141 , - 5262 , - 2299 , - 1028 , - 2201 , - 3562 , - 5863 , - 832 , - 1253 , - 4870 , - 403 , - 3644 , - 3313 , - 3170 , - 3967 , - 3448 , - 2365 , - 4478 , - 4523 , - 244 , - 4425 , - 2778 , - 2071 , - 48 , - 3477 , - 4086 , - 2627 , - 2860 , - 5537 , - 2386 , - 175 , - 2664 , - 4589 , - 3694 , - 731 , - 5476 , - 633 , - 1994 , - 4295 , - 5280 , - 5701 , - 3302 , - 4851 , - 2076 , - 1745 , - 1602 , - 2399 , - 1880 , - 797 , - 2910 , - 2955 , - 4692 , - 2857 , - 1210 , - 503 , - 4496 , - 1909 , - 2518 , - 1059 , - 1292 , - 3969 , - 818 , - 4623 , - 1096 , - 3021 , - 2126 , - 5179 , - 3908 , - 5081 , - 426 , - 2727 , - 3712 , - 4133 , - 1734 , - 3283 , - 508 , - 177 , - 34 , - 831 , - 312 , - 5245 , - 1342 , - 1387 , - 3124 , - 1289 , - 5658 , - 4951 , - 2928 , - 341 , - 950 , - 5507 , - 5740 , - 2401 , - 5266 , - 3055 , - 5544 , - 1453 , - 558 , - 3611 , - 2340 , - 3513 , - 4874 , - 1159 , - 2144 , - 2565 , - 166 , - 1715 , - 4956 , - 4625 , - 4482 , - 5279 , - 4760 , - 3677 , - 5790 , - 5835 , - 1556 , - 5737 , - 4090 , - 3383 , - 1360 , - 4789 , - 5398 , - 3939 , - 4172 , - 833 , - 3698 , - 1487 , - 3976 , - 5901 , - 5006 , - 2043 , - 772 , - 1945 , - 3306 , - 5607 , - 576 , - 997 , - 4614 , - 147 , - 3388 , - 3057 , - 2914 , - 3711 , - 3192 , - 2109 , - 4222 , - 4267 , - 6004 , - 4169 , - 2522 , - 1815 , - 5808 , - 3221 , - 3830 , - 2371 , - 2604 , - 5281 , - 2130 , - 5935 , - 2408 , - 4333 , - 3438 , - 475 , - 5220 , - 377 , - 1738 , - 4039 , - 5024 , - 5445 , - 3046 , - 4595 , - 1820 , - 1489 , - 1346 , - 2143 , - 1624 , - 541 , - 2654 , - 2699 , - 4436 , - 2601 , - 954 , - 247 , - 4240 , - 1653 , - 2262 , - 803 , - 1036 , - 3713 , - 562 , - 4367 , - 840 , - 2765 , - 1870 , - 4923 , - 3652 , - 4825 , - 170 , - 2471 , - 3456 , - 3877 , - 1478 , - 3027 , - 252 , - 5937 , - 5794 , - 575 , - 56 , - 4989 , - 1086 , - 1131 , - 2868 , - 1033 , - 5402 , - 4695 , - 2672 , - 85 , - 694 , - 5251 , - 5484 , - 2145 , - 5010 , - 2799 , - 5288 , - 1197 , - 302 , - 3355 , - 2084 , - 3257 , - 4618 , - 903 , - 1888 , - 2309 , - 5926 , - 1459 , - 4700 , - 4369 , - 4226 , - 5023 , - 4504 , - 3421 , - 5534 , - 5579 , - 1300 , - 5481 , - 3834 , - 3127 , - 1104 , - 4533 , - 5142 , - 3683 , - 3916 , - 577 , - 3442 , - 1231 , - 3720 , - 5645 , - 4750 , - 1787 , - 516 , - 1689 , - 3050 , - 5351 , - 320 , - 741 , - 4358 , - 5907 , - 3132 , - 2801 , - 2658 , - 3455 , - 2936 , - 1853 , - 3966 , - 4011 , - 5748 , - 3913 , - 2266 , - 1559 , - 5552 , - 2965 , - 3574 , - 2115 , - 2348 , - 5025 , - 1874 , - 5679 , - 2152 , - 4077 , - 3182 , - 219 , - 4964 , - 121 , - 1482 , - 3783 , - 4768 , - 5189 , - 2790 , - 4339 , - 1564 , - 1233 , - 1090 , - 1887 , - 1368 , - 285 , - 2398 , - 2443 , - 4180 , - 2345 , - 698 , - 6007 , - 3984 , - 1397 , - 2006 , - 547 , - 780 , - 3457 , - 306 , - 4111 , - 584 , - 2509 , - 1614 , - 4667 , - 3396 , - 4569 , - 5930 , - 2215 , - 3200 , - 3621 , - 1222 , - 2771 , - 6012 , - 5681 , - 5538 , - 319 , - 5816 , - 4733 , - 830 , - 875 , - 2612 , - 777 , - 5146 , - 4439 , - 2416 , - 5845 , - 438 , - 4995 , - 5228 , - 1889 , - 4754 , - 2543 , - 5032 , - 941 , - 46 , - 3099 , - 1828 , - 3001 , - 4362 , - 647 , - 1632 , - 2053 , - 5670 , - 1203 , - 4444 , - 4113 , - 3970 , - 4767 , - 4248 , - 3165 , - 5278 , - 5323 , - 1044 , - 5225 , - 3578 , - 2871 , - 848 , - 4277 , - 4886 , - 3427 , - 3660 , - 321 , - 3186 , - 975 , - 3464 , - 5389 , - 4494 , - 1531 , - 260 , - 1433 , - 2794 , - 5095 , - 64 , - 485 , - 4102 , - 5651 , - 2876 , - 2545 , - 2402 , - 3199 , - 2680 , - 1597 , - 3710 , - 3755 , - 5492 , - 3657 , - 2010 , - 1303 , - 5296 , - 2709 , - 3318 , - 1859 , - 2092 , - 4769 , - 1618 , - 5423 , - 1896 , - 3821 , - 2926 , - 5979 , - 4708 , - 5881 , - 1226 , - 3527 , - 4512 , - 4933 , - 2534 , - 4083 , - 1308 , - 977 , - 834 , - 1631 , - 1112 , - 29 , - 2142 , - 2187 , - 3924 , - 2089 , - 442 , - 5751 , - 3728 , - 1141 , - 1750 , - 291 , - 524 , - 3201 , - 50 , - 3855 , - 328 , - 2253 , - 1358 , - 4411 , - 3140 , - 4313 , - 5674 , - 1959 , - 2944 , - 3365 , - 966 , - 2515 , - 5756 , - 5425 , - 5282 , - 63 , - 5560 , - 4477 , - 574 , - 619 , - 2356 , - 521 , - 4890 , - 4183 , - 2160 , - 5589 , - 182 , - 4739 , - 4972 , - 1633 , - 4498 , - 2287 , - 4776 , - 685 , - 5806 , - 2843 , - 1572 , - 2745 , - 4106 , - 391 , - 1376 , - 1797 , - 5414 , - 947 , - 4188 , - 3857 , - 3714 , - 4511 , - 3992 , - 2909 , - 5022 , - 5067 , - 788 , - 4969 , - 3322 , - 2615 , - 592 , - 4021 , - 4630 , - 3171 , - 3404 , - 65 , - 2930 , - 719 , - 3208 , - 5133 , - 4238 , - 1275 , - 4 , - 1177 , - 2538 , - 4839 , - 5824 , - 229 , - 3846 , - 5395 , - 2620 , - 2289 , - 2146 , - 2943 , - 2424 , - 1341 , - 3454 , - 3499 , - 5236 , - 3401 , - 1754 , - 1047 , - 5040 , - 2453 , - 3062 , - 1603 , - 1836 , - 4513 , - 1362 , - 5167 , - 1640 , - 3565 , - 2670 , - 5723 , - 4452 , - 5625 , - 970 , - 3271 , - 4256 , - 4677 , - 2278 , - 3827 , - 1052 , - 721 , - 578 , - 1375 , - 856 , - 5789 , - 1886 , - 1931 , - 3668 , - 1833 , - 186 , - 5495 , - 3472 , - 885 , - 1494 , - 35 , - 268 , - 2945 , - 5810 , - 3599 , - 72 , - 1997 , - 1102 , - 4155 , - 2884 , - 4057 , - 5418 , - 1703 , - 2688 , - 3109 , - 710 , - 2259 , - 5500 , - 5169 , - 5026 , - 5823 , - 5304 , - 4221 , - 318 , - 363 , - 2100 , - 265 , - 4634 , - 3927 , - 1904 , - 5333 , - 5942 , - 4483 , - 4716 , - 1377 , - 4242 , - 2031 , - 4520 , - 429 , - 5550 , - 2587 , - 1316 , - 2489 , - 3850 , - 135 , - 1120 , - 1541 , - 5158 , - 691 , - 3932 , - 3601 , - 3458 , - 4255 , - 3736 , - 2653 , - 4766 , - 4811 , - 532 , - 4713 , - 3066 , - 2359 , - 336 , - 3765 , - 4374 , - 2915 , - 3148 , - 5825 , - 2674 , - 463 , - 2952 , - 4877 , - 3982 , - 1019 , - 5764 , - 921 , - 2282 , - 4583 , - 5568 , - 5989 , - 3590 , - 5139 , - 2364 , - 2033 , - 1890 , - 2687 , - 2168 , - 1085 , - 3198 , - 3243 , - 4980 , - 3145 , - 1498 , - 791 , - 4784 , - 2197 , - 2806 , - 1347 , - 1580 , - 4257 , - 1106 , - 4911 , - 1384 , - 3309 , - 2414 , - 5467 , - 4196 , - 5369 , - 714 , - 3015 , - 4000 , - 4421 , - 2022 , - 3571 , - 796 , - 465 , - 322 , - 1119 , - 600 , - 5533 , - 1630 , - 1675 , - 3412 , - 1577 , - 5946 , - 5239 , - 3216 , - 629 , - 1238 , - 5795 , - 12 , - 2689 , - 5554 , - 3343 , - 5832 , - 1741 , - 846 , - 3899 , - 2628 , - 3801 , - 5162 , - 1447 , - 2432 , - 2853 , - 454 , - 2003 , - 5244 , - 4913 , - 4770 , - 5567 , - 5048 , - 3965 , - 62 , - 107 , - 1844 , - 9 , - 4378 , - 3671 , - 1648 , - 5077 , - 5686 , - 4227 , - 4460 , - 1121 , - 3986 , - 1775 , - 4264 , - 173 , - 5294 , - 2331 , - 1060 , - 2233 , - 3594 , - 5895 , - 864 , - 1285 , - 4902 , - 435 , - 3676 , - 3345 , - 3202 , - 3999 , - 3480 , - 2397 , - 4510 , - 4555 , - 276 , - 4457 , - 2810 , - 2103 , - 80 , - 3509 , - 4118 , - 2659 , - 2892 , - 5569 , - 2418 , - 207 , - 2696 , - 4621 , - 3726 , - 763 , - 5508 , - 665 , - 2026 , - 4327 , - 5312 , - 5733 , - 3334 , - 4883 , - 2108 , - 1777 , - 1634 , - 2431 , - 1912 , - 829 , - 2942 , - 2987 , - 4724 , - 2889 , - 1242 , - 535 , - 4528 , - 1941 , - 2550 , - 1091 , - 1324 , - 4001 , - 850 , - 4655 , - 1128 , - 3053 , - 2158 , - 5211 , - 3940 , - 5113 , - 458 , - 2759 , - 3744 , - 4165 , - 1766 , - 3315 , - 540 , - 209 , - 66 , - 863 , - 344 , - 5277 , - 1374 , - 1419 , - 3156 , - 1321 , - 5690 , - 4983 , - 2960 , - 373 , - 982 , - 5539 , - 5772 , - 2433 , - 5298 , - 3087 , - 5576 , - 1485 , - 590 , - 3643 , - 2372 , - 3545 , - 4906 , - 1191 , - 2176 , - 2597 , - 198 , - 1747 , - 4988 , - 4657 , - 4514 , - 5311 , - 4792 , - 3709 , - 5822 , - 5867 , - 1588 , - 5769 , - 4122 , - 3415 , - 1392 , - 4821 , - 5430 , - 3971 , - 4204 , - 865 , - 3730 , - 1519 , - 4008 , - 5933 , - 5038 , - 2075 , - 804 , - 1977 , - 3338 , - 5639 , - 608 , - 1029 , - 4646 , - 179 , - 3420 , - 3089 , - 2946 , - 3743 , - 3224 , - 2141 , - 4254 , - 4299 , - 20 , - 4201 , - 2554 , - 1847 , - 5840 , - 3253 , - 3862 , - 2403 , - 2636 , - 5313 , - 2162 , - 5967 , - 2440 , - 4365 , - 3470 , - 507 , - 5252 , - 409 , - 1770 , - 4071 , - 5056 , - 5477 , - 3078 , - 4627 , - 1852 , - 1521 , - 1378 , - 2175 , - 1656 , - 573 , - 2686 , - 2731 , - 4468 , - 2633 , - 986 , - 279 , - 4272 , - 1685 , - 2294 , - 835 , - 1068 , - 3745 , - 594 , - 4399 , - 872 , - 2797 , - 1902 , - 4955 , - 3684 , - 4857 , - 202 , - 2503 , - 3488 , - 3909 , - 1510 , - 3059 , - 284 , - 5969 , - 5826 , - 607 , - 88 , - 5021 , - 1118 , - 1163 , - 2900 , - 1065 , - 5434 , - 4727 , - 2704 , - 117 , - 726 , - 5283 , - 5516 , - 2177 , - 5042 , - 2831 , - 5320 , - 1229 , - 334 , - 3387 , - 2116 , - 3289 , - 4650 , - 935 , - 1920 , - 2341 , - 5958 , - 1491 , - 4732 , - 4401 , - 4258 , - 5055 , - 4536 , - 3453 , - 5566 , - 5611 , - 1332 , - 5513 , - 3866 , - 3159 , - 1136 , - 4565 , - 5174 , - 3715 , - 3948 , - 609 , - 3474 , - 1263 , - 3752 , - 5677 , - 4782 , - 1819 , - 548 , - 1721 , - 3082 , - 5383 , - 352 , - 773 , - 4390 , - 5939 , - 3164 , - 2833 , - 2690 , - 3487 , - 2968 , - 1885 , - 3998 , - 4043 , - 5780 , - 3945 , - 2298 , - 1591 , - 5584 , - 2997 , - 3606 , - 2147 , - 2380 , - 5057 , - 1906 , - 5711 , - 2184 , - 4109 , - 3214 , - 251 , - 4996 , - 153 , - 1514 , - 3815 , - 4800 , - 5221 , - 2822 , - 4371 , - 1596 , - 1265 , - 1122 , - 1919 , - 1400 , - 317 , - 2430 , - 2475 , - 4212 , - 2377 , - 730 , - 23 , - 4016 , - 1429 , - 2038 , - 579 , - 812 , - 3489 , - 338 , - 4143 , - 616 , - 2541 , - 1646 , - 4699 , - 3428 , - 4601 , - 5962 , - 2247 , - 3232 , - 3653 , - 1254 , - 2803 , - 28 , - 5713 , - 5570 , - 351 , - 5848 , - 4765 , - 862 , - 907 , - 2644 , - 809 , - 5178 , - 4471 , - 2448 , - 5877 , - 470 , - 5027 , - 5260 , - 1921 , - 4786 , - 2575 , - 5064 , - 973 , - 78 , - 3131 , - 1860 , - 3033 , - 4394 , - 679 , - 1664 , - 2085 , - 5702 , - 1235 , - 4476 , - 4145 , - 4002 , - 4799 , - 4280 , - 3197 , - 5310 , - 5355 , - 1076 , - 5257 , - 3610 , - 2903 , - 880 , - 4309 , - 4918 , - 3459 , - 3692 , - 353 , - 3218 , - 1007 , - 3496 , - 5421 , - 4526 , - 1563 , - 292 , - 1465 , - 2826 , - 5127 , - 96 , - 517 , - 4134 , - 5683 , - 2908 , - 2577 , - 2434 , - 3231 , - 2712 , - 1629 , - 3742 , - 3787 , - 5524 , - 3689 , - 2042 , - 1335 , - 5328 , - 2741 , - 3350 , - 1891 , - 2124 , - 4801 , - 1650 , - 5455 , - 1928 , - 3853 , - 2958 , - 6011 , - 4740 , - 5913 , - 1258 , - 3559 , - 4544 , - 4965 , - 2566 , - 4115 , - 1340 , - 1009 , - 866 , - 1663 , - 1144 , - 61 , - 2174 , - 2219 , - 3956 , - 2121 , - 474 , - 5783 , - 3760 , - 1173 , - 1782 , - 323 , - 556 , - 3233 , - 82 , - 3887 , - 360 , - 2285 , - 1390 , - 4443 , - 3172 , - 4345 , - 5706 , - 1991 , - 2976 , - 3397 , - 998 , - 2547 , - 5788 , - 5457 , - 5314 , - 95 , - 5592 , - 4509 , - 606 , - 651 , - 2388 , - 553 , - 4922 , - 4215 , - 2192 , - 5621 , - 214 , - 4771 , - 5004 , - 1665 , - 4530 , - 2319 , - 4808 , - 717 , - 5838 , - 2875 , - 1604 , - 2777 , - 4138 , - 423 , - 1408 , - 1829 , - 5446 , - 979 , - 4220 , - 3889 , - 3746 , - 4543 , - 4024 , - 2941 , - 5054 , - 5099 , - 820 , - 5001 , - 3354 , - 2647 , - 624 , - 4053 , - 4662 , - 3203 , - 3436 , - 97 , - 2962 , - 751 , - 3240 , - 5165 , - 4270 , - 1307 , - 36 , - 1209 , - 2570 , - 4871 , - 5856 , - 261 , - 3878 , - 5427 , - 2652 , - 2321 , - 2178 , - 2975 , - 2456 , - 1373 , - 3486 , - 3531 , - 5268 , - 3433 , - 1786 , - 1079 , - 5072 , - 2485 , - 3094 , - 1635 , - 1868 , - 4545 , - 1394 , - 5199 , - 1672 , - 3597 , - 2702 , - 5755 , - 4484 , - 5657 , - 1002 , - 3303 , - 4288 , - 4709 , - 2310 , - 3859 , - 1084 , - 753 , - 610 , - 1407 , - 888 , - 5821 , - 1918 , - 1963 , - 3700 , - 1865 , - 218 , - 5527 , - 3504 , - 917 , - 1526 , - 67 , - 300 , - 2977 , - 5842 , - 3631 , - 104 , - 2029 , - 1134 , - 4187 , - 2916 , - 4089 , - 5450 , - 1735 , - 2720 , - 3141 , - 742 , - 2291 , - 5532 , - 5201 , - 5058 , - 5855 , - 5336 , - 4253 , - 350 , - 395 , - 2132 , - 297 , - 4666 , - 3959 , - 1936 , - 5365 , - 5974 , - 4515 , - 4748 , - 1409 , - 4274 , - 2063 , - 4552 , - 461 , - 5582 , - 2619 , - 1348 , - 2521 , - 3882 , - 167 , - 1152 , - 1573 , - 5190 , - 723 , - 3964 , - 3633 , - 3490 , - 4287 , - 3768 , - 2685 , - 4798 , - 4843 , - 564 , - 4745 , - 3098 , - 2391 , - 368 , - 3797 , - 4406 , - 2947 , - 3180 , - 5857 , - 2706 , - 495 , - 2984 , - 4909 , - 4014 , - 1051 , - 5796 , - 953 , - 2314 , - 4615 , - 5600 , - 5 , - 3622 , - 5171 , - 2396 , - 2065 , - 1922 , - 2719 , - 2200 , - 1117 , - 3230 , - 3275 , - 5012 , - 3177 , - 1530 , - 823 , - 4816 , - 2229 , - 2838 , - 1379 , - 1612 , - 4289 , - 1138 , - 4943 , - 1416 , - 3341 , - 2446 , - 5499 , - 4228 , - 5401 , - 746 , - 3047 , - 4032 , - 4453 , - 2054 , - 3603 , - 828 , - 497 , - 354 , - 1151 , - 632 , - 5565 , - 1662 , - 1707 , - 3444 , - 1609 , - 5978 , - 5271 , - 3248 , - 661 , - 1270 , - 5827 , - 44 , - 2721 , - 5586 , - 3375 , - 5864 , - 1773 , - 878 , - 3931 , - 2660 , - 3833 , - 5194 , - 1479 , - 2464 , - 2885 , - 486 , - 2035 , - 5276 , - 4945 , - 4802 , - 5599 , - 5080 , - 3997 , - 94 , - 139 , - 1876 , - 41 , - 4410 , - 3703 , - 1680 , - 5109 , - 5718 , - 4259 , - 4492 , - 1153 , - 4018 , - 1807 , - 4296 , - 205 , - 5326 , - 2363 , - 1092 , - 2265 , - 3626 , - 5927 , - 896 , - 1317 , - 4934 , - 467 , - 3708 , - 3377 , - 3234 , - 4031 , - 3512 , - 2429 , - 4542 , - 4587 , - 308 , - 4489 , - 2842 , - 2135 , - 112 , - 3541 , - 4150 , - 2691 , - 2924 , - 5601 , - 2450 , - 239 , - 2728 , - 4653 , - 3758 , - 795 , - 5540 , - 697 , - 2058 , - 4359 , - 5344 , - 5765 , - 3366 , - 4915 , - 2140 , - 1809 , - 1666 , - 2463 , - 1944 , - 861 , - 2974 , - 3019 , - 4756 , - 2921 , - 1274 , - 567 , - 4560 , - 1973 , - 2582 , - 1123 , - 1356 , - 4033 , - 882 , - 4687 , - 1160 , - 3085 , - 2190 , - 5243 , - 3972 , - 5145 , - 490 , - 2791 , - 3776 , - 4197 , - 1798 , - 3347 , - 572 , - 241 , - 98 , - 895 , - 376 , - 5309 , - 1406 , - 1451 , - 3188 , - 1353 , - 5722 , - 5015 , - 2992 , - 405 , - 1014 , - 5571 , - 5804 , - 2465 , - 5330 , - 3119 , - 5608 , - 1517 , - 622 , - 3675 , - 2404 , - 3577 , - 4938 , - 1223 , - 2208 , - 2629 , - 230 , - 1779 , - 5020 , - 4689 , - 4546 , - 5343 , - 4824 , - 3741 , - 5854 , - 5899 , - 1620 , - 5801 , - 4154 , - 3447 , - 1424 , - 4853 , - 5462 , - 4003 , - 4236 , - 897 , - 3762 , - 1551 , - 4040 , - 5965 , - 5070 , - 2107 , - 836 , - 2009 , - 3370 , - 5671 , - 640 , - 1061 , - 4678 , - 211 , - 3452 , - 3121 , - 2978 , - 3775 , - 3256 , - 2173 , - 4286 , - 4331 , - 52 , - 4233 , - 2586 , - 1879 , - 5872 , - 3285 , - 3894 , - 2435 , - 2668 , - 5345 , - 2194 , - 5999 , - 2472 , - 4397 , - 3502 , - 539 , - 5284 , - 441 , - 1802 , - 4103 , - 5088 , - 5509 , - 3110 , - 4659 , - 1884 , - 1553 , - 1410 , - 2207 , - 1688 , - 605 , - 2718 , - 2763 , - 4500 , - 2665 , - 1018 , - 311 , - 4304 , - 1717 , - 2326 , - 867 , - 1100 , - 3777 , - 626 , - 4431 , - 904 , - 2829 , - 1934 , - 4987 , - 3716 , - 4889 , - 234 , - 2535 , - 3520 , - 3941 , - 1542 , - 3091 , - 316 , - 6001 , - 5858 , - 639 , - 120 , - 5053 , - 1150 , - 1195 , - 2932 , - 1097 , - 5466 , - 4759 , - 2736 , - 149 , - 758 , - 5315 , - 5548 , - 2209 , - 5074 , - 2863 , - 5352 , - 1261 , - 366 , - 3419 , - 2148 , - 3321 , - 4682 , - 967 , - 1952 , - 2373 , - 5990 , - 1523 , - 4764 , - 4433 , - 4290 , - 5087 , - 4568 , - 3485 , - 5598 , - 5643 , - 1364 , - 5545 , - 3898 , - 3191 , - 1168 , - 4597 , - 5206 , - 3747 , - 3980 , - 641 , - 3506 , - 1295 , - 3784 , - 5709 , - 4814 , - 1851 , - 580 , - 1753 , - 3114 , - 5415 , - 384 , - 805 , - 4422 , - 5971 , - 3196 , - 2865 , - 2722 , - 3519 , - 3000 , - 1917 , - 4030 , - 4075 , - 5812 , - 3977 , - 2330 , - 1623 , - 5616 , - 3029 , - 3638 , - 2179 , - 2412 , - 5089 , - 1938 , - 5743 , - 2216 , - 4141 , - 3246 , - 283 , - 5028 , - 185 , - 1546 , - 3847 , - 4832 , - 5253 , - 2854 , - 4403 , - 1628 , - 1297 , - 1154 , - 1951 , - 1432 , - 349 , - 2462 , - 2507 , - 4244 , - 2409 , - 762 , - 55 , - 4048 , - 1461 , - 2070 , - 611 , - 844 , - 3521 , - 370 , - 4175 , - 648 , - 2573 , - 1678 , - 4731 , - 3460 , - 4633 , - 5994 , - 2279 , - 3264 , - 3685 , - 1286 , - 2835 , - 60 , - 5745 , - 5602 , - 383 , - 5880 , - 4797 , - 894 , - 939 , - 2676 , - 841 , - 5210 , - 4503 , - 2480 , - 5909 , - 502 , - 5059 , - 5292 , - 1953 , - 4818 , - 2607 , - 5096 , - 1005 , - 110 , - 3163 , - 1892 , - 3065 , - 4426 , - 711 , - 1696 , - 2117 , - 5734 , - 1267 , - 4508 , - 4177 , - 4034 , - 4831 , - 4312 , - 3229 , - 5342 , - 5387 , - 1108 , - 5289 , - 3642 , - 2935 , - 912 , - 4341 , - 4950 , - 3491 , - 3724 , - 385 , - 3250 , - 1039 , - 3528 , - 5453 , - 4558 , - 1595 , - 324 , - 1497 , - 2858 , - 5159 , - 128 , - 549 , - 4166 , - 5715 , - 2940 , - 2609 , - 2466 , - 3263 , - 2744 , - 1661 , - 3774 , - 3819 , - 5556 , - 3721 , - 2074 , - 1367 , - 5360 , - 2773 , - 3382 , - 1923 , - 2156 , - 4833 , - 1682 , - 5487 , - 1960 , - 3885 , - 2990 , - 27 , - 4772 , - 5945 , - 1290 , - 3591 , - 4576 , - 4997 , - 2598 , - 4147 , - 1372 , - 1041 , - 898 , - 1695 , - 1176 , - 93 , - 2206 , - 2251 , - 3988 , - 2153 , - 506 , - 5815 , - 3792 , - 1205 , - 1814 , - 355 , - 588 , - 3265 , - 114 , - 3919 , - 392 , - 2317 , - 1422 , - 4475 , - 3204 , - 4377 , - 5738 , - 2023 , - 3008 , - 3429 , - 1030 , - 2579 , - 5820 , - 5489 , - 5346 , - 127 , - 5624 , - 4541 , - 638 , - 683 , - 2420 , - 585 , - 4954 , - 4247 , - 2224 , - 5653 , - 246 , - 4803 , - 5036 , - 1697 , - 4562 , - 2351 , - 4840 , - 749 , - 5870 , - 2907 , - 1636 , - 2809 , - 4170 , - 455 , - 1440 , - 1861 , - 5478 , - 1011 , - 4252 , - 3921 , - 3778 , - 4575 , - 4056 , - 2973 , - 5086 , - 5131 , - 852 , - 5033 , - 3386 , - 2679 , - 656 , - 4085 , - 4694 , - 3235 , - 3468 , - 129 , - 2994 , - 783 , - 3272 , - 5197 , - 4302 , - 1339 , - 68 , - 1241 , - 2602 , - 4903 , - 5888 , - 293 , - 3910 , - 5459 , - 2684 , - 2353 , - 2210 , - 3007 , - 2488 , - 1405 , - 3518 , - 3563 , - 5300 , - 3465 , - 1818 , - 1111 , - 5104 , - 2517 , - 3126 , - 1667 , - 1900 , - 4577 , - 1426 , - 5231 , - 1704 , - 3629 , - 2734 , - 5787 , - 4516 , - 5689 , - 1034 , - 3335 , - 4320 , - 4741 , - 2342 , - 3891 , - 1116 , - 785 , - 642 , - 1439 , - 920 , - 5853 , - 1950 , - 1995 , - 3732 , - 1897 , - 250 , - 5559 , - 3536 , - 949 , - 1558 , - 99 , - 332 , - 3009 , - 5874 , - 3663 , - 136 , - 2061 , - 1166 , - 4219 , - 2948 , - 4121 , - 5482 , - 1767 , - 2752 , - 3173 , - 774 , - 2323 , - 5564 , - 5233 , - 5090 , - 5887 , - 5368 , - 4285 , - 382 , - 427 , - 2164 , - 329 , - 4698 , - 3991 , - 1968 , - 5397 , - 6006 , - 4547 , - 4780 , - 1441 , - 4306 , - 2095 , - 4584 , - 493 , - 5614 , - 2651 , - 1380 , - 2553 , - 3914 , - 199 , - 1184 , - 1605 , - 5222 , - 755 , - 3996 , - 3665 , - 3522 , - 4319 , - 3800 , - 2717 , - 4830 , - 4875 , - 596 , - 4777 , - 3130 , - 2423 , - 400 , - 3829 , - 4438 , - 2979 , - 3212 , - 5889 , - 2738 , - 527 , - 3016 , - 4941 , - 4046 , - 1083 , - 5828 , - 985 , - 2346 , - 4647 , - 5632 , - 37 , - 3654 , - 5203 , - 2428 , - 2097 , - 1954 , - 2751 , - 2232 , - 1149 , - 3262 , - 3307 , - 5044 , - 3209 , - 1562 , - 855 , - 4848 , - 2261 , - 2870 , - 1411 , - 1644 , - 4321 , - 1170 , - 4975 , - 1448 , - 3373 , - 2478 , - 5531 , - 4260 , - 5433 , - 778 , - 3079 , - 4064 , - 4485 , - 2086 , - 3635 , - 860 , - 529 , - 386 , - 1183 , - 664 , - 5597 , - 1694 , - 1739 , - 3476 , - 1641 , - 6010 , - 5303 , - 3280 , - 693 , - 1302 , - 5859 , - 76 , - 2753 , - 5618 , - 3407 , - 5896 , - 1805 , - 910 , - 3963 , - 2692 , - 3865 , - 5226 , - 1511 , - 2496 , - 2917 , - 518 , - 2067 , - 5308 , - 4977 , - 4834 , - 5631 , - 5112 , - 4029 , - 126 , - 171 , - 1908 , - 73 , - 4442 , - 3735 , - 1712 , - 5141 , - 5750 , - 4291 , - 4524 , - 1185 , - 4050 , - 1839 , - 4328 , - 237 , - 5358 , - 2395 , - 1124 , - 2297 , - 3658 , - 5959 , - 928 , - 1349 , - 4966 , - 499 , - 3740 , - 3409 , - 3266 , - 4063 , - 3544 , - 2461 , - 4574 , - 4619 , - 340 , - 4521 , - 2874 , - 2167 , - 144 , - 3573 , - 4182 , - 2723 , - 2956 , - 5633 , - 2482 , - 271 , - 2760 , - 4685 , - 3790 , - 827 , - 5572 , - 729 , - 2090 , - 4391 , - 5376 , - 5797 , - 3398 , - 4947 , - 2172 , - 1841 , - 1698 , - 2495 , - 1976 , - 893 , - 3006 , - 3051 , - 4788 , - 2953 , - 1306 , - 599 , - 4592 , - 2005 , - 2614 , - 1155 , - 1388 , - 4065 , - 914 , - 4719 , - 1192 , - 3117 , - 2222 , - 5275 , - 4004 , - 5177 , - 522 , - 2823 , - 3808 , - 4229 , - 1830 , - 3379 , - 604 , - 273 , - 130 , - 927 , - 408 , - 5341 , - 1438 , - 1483 , - 3220 , - 1385 , - 5754 , - 5047 , - 3024 , - 437 , - 1046 , - 5603 , - 5836 , - 2497 , - 5362 , - 3151 , - 5640 , - 1549 , - 654 , - 3707 , - 2436 , - 3609 , - 4970 , - 1255 , - 2240 , - 2661 , - 262 , - 1811 , - 5052 , - 4721 , - 4578 , - 5375 , - 4856 , - 3773 , - 5886 , - 5931 , - 1652 , - 5833 , - 4186 , - 3479 , - 1456 , - 4885 , - 5494 , - 4035 , - 4268 , - 929 , - 3794 , - 1583 , - 4072 , - 5997 , - 5102 , - 2139 , - 868 , - 2041 , - 3402 , - 5703 , - 672 , - 1093 , - 4710 , - 243 , - 3484 , - 3153 , - 3010 , - 3807 , - 3288 , - 2205 , - 4318 , - 4363 , - 84 , - 4265 , - 2618 , - 1911 , - 5904 , - 3317 , - 3926 , - 2467 , - 2700 , - 5377 , - 2226 , - 15 , - 2504 , - 4429 , - 3534 , - 571 , - 5316 , - 473 , - 1834 , - 4135 , - 5120 , - 5541 , - 3142 , - 4691 , - 1916 , - 1585 , - 1442 , - 2239 , - 1720 , - 637 , - 2750 , - 2795 , - 4532 , - 2697 , - 1050 , - 343 , - 4336 , - 1749 , - 2358 , - 899 , - 1132 , - 3809 , - 658 , - 4463 , - 936 , - 2861 , - 1966 , - 5019 , - 3748 , - 4921 , - 266 , - 2567 , - 3552 , - 3973 , - 1574 , - 3123 , - 348 , - 17 , - 5890 , - 671 , - 152 , - 5085 , - 1182 , - 1227 , - 2964 , - 1129 , - 5498 , - 4791 , - 2768 , - 181 , - 790 , - 5347 , - 5580 , - 2241 , - 5106 , - 2895 , - 5384 , - 1293 , - 398 , - 3451 , - 2180 , - 3353 , - 4714 , - 999 , - 1984 , - 2405 , - 6 , - 1555 , - 4796 , - 4465 , - 4322 , - 5119 , - 4600 , - 3517 , - 5630 , - 5675 , - 1396 , - 5577 , - 3930 , - 3223 , - 1200 , - 4629 , - 5238 , - 3779 , - 4012 , - 673 , - 3538 , - 1327 , - 3816 , - 5741 , - 4846 , - 1883 , - 612 , - 1785 , - 3146 , - 5447 , - 416 , - 837 , - 4454 , - 6003 , - 3228 , - 2897 , - 2754 , - 3551 , - 3032 , - 1949 , - 4062 , - 4107 , - 5844 , - 4009 , - 2362 , - 1655 , - 5648 , - 3061 , - 3670 , - 2211 , - 2444 , - 5121 , - 1970 , - 5775 , - 2248 , - 4173 , - 3278 , - 315 , - 5060 , - 217 , - 1578 , - 3879 , - 4864 , - 5285 , - 2886 , - 4435 , - 1660 , - 1329 , - 1186 , - 1983 , - 1464 , - 381 , - 2494 , - 2539 , - 4276 , - 2441 , - 794 , - 87 , - 4080 , - 1493 , - 2102 , - 643 , - 876 , - 3553 , - 402 , - 4207 , - 680 , - 2605 , - 1710 , - 4763 , - 3492 , - 4665 , - 10 , - 2311 , - 3296 , - 3717 , - 1318 , - 2867 , - 92 , - 5777 , - 5634 , - 415 , - 5912 , - 4829 , - 926 , - 971 , - 2708 , - 873 , - 5242 , - 4535 , - 2512 , - 5941 , - 534 , - 5091 , - 5324 , - 1985 , - 4850 , - 2639 , - 5128 , - 1037 , - 142 , - 3195 , - 1924 , - 3097 , - 4458 , - 743 , - 1728 , - 2149 , - 5766 , - 1299 , - 4540 , - 4209 , - 4066 , - 4863 , - 4344 , - 3261 , - 5374 , - 5419 , - 1140 , - 5321 , - 3674 , - 2967 , - 944 , - 4373 , - 4982 , - 3523 , - 3756 , - 417 , - 3282 , - 1071 , - 3560 , - 5485 , - 4590 , - 1627 , - 356 , - 1529 , - 2890 , - 5191 , - 160 , - 581 , - 4198 , - 5747 , - 2972 , - 2641 , - 2498 , - 3295 , - 2776 , - 1693 , - 3806 , - 3851 , - 5588 , - 3753 , - 2106 , - 1399 , - 5392 , - 2805 , - 3414 , - 1955 , - 2188 , - 4865 , - 1714 , - 5519 , - 1992 , - 3917 , - 3022 , - 59 , - 4804 , - 5977 , - 1322 , - 3623 , - 4608 , - 5029 , - 2630 , - 4179 , - 1404 , - 1073 , - 930 , - 1727 , - 1208 , - 125 , - 2238 , - 2283 , - 4020 , - 2185 , - 538 , - 5847 , - 3824 , - 1237 , - 1846 , - 387 , - 620 , - 3297 , - 146 , - 3951 , - 424 , - 2349 , - 1454 , - 4507 , - 3236 , - 4409 , - 5770 , - 2055 , - 3040 , - 3461 , - 1062 , - 2611 , - 5852 , - 5521 , - 5378 , - 159 , - 5656 , - 4573 , - 670 , - 715 , - 2452 , - 617 , - 4986 , - 4279 , - 2256 , - 5685 , - 278 , - 4835 , - 5068 , - 1729 , - 4594 , - 2383 , - 4872 , - 781 , - 5902 , - 2939 , - 1668 , - 2841 , - 4202 , - 487 , - 1472 , - 1893 , - 5510 , - 1043 , - 4284 , - 3953 , - 3810 , - 4607 , - 4088 , - 3005 , - 5118 , - 5163 , - 884 , - 5065 , - 3418 , - 2711 , - 688 , - 4117 , - 4726 , - 3267 , - 3500 , - 161 , - 3026 , - 815 , - 3304 , - 5229 , - 4334 , - 1371 , - 100 , - 1273 , - 2634 , - 4935 , - 5920 , - 325 , - 3942 , - 5491 , - 2716 , - 2385 , - 2242 , - 3039 , - 2520 , - 1437 , - 3550 , - 3595 , - 5332 , - 3497 , - 1850 , - 1143 , - 5136 , - 2549 , - 3158 , - 1699 , - 1932 , - 4609 , - 1458 , - 5263 , - 1736 , - 3661 , - 2766 , - 5819 , - 4548 , - 5721 , - 1066 , - 3367 , - 4352 , - 4773 , - 2374 , - 3923 , - 1148 , - 817 , - 674 , - 1471 , - 952 , - 5885 , - 1982 , - 2027 , - 3764 , - 1929 , - 282 , - 5591 , - 3568 , - 981 , - 1590 , - 131 , - 364 , - 3041 , - 5906 , - 3695 , - 168 , - 2093 , - 1198 , - 4251 , - 2980 , - 4153 , - 5514 , - 1799 , - 2784 , - 3205 , - 806 , - 2355 , - 5596 , - 5265 , - 5122 , - 5919 , - 5400 , - 4317 , - 414 , - 459 , - 2196 , - 361 , - 4730 , - 4023 , - 2000 , - 5429 , - 22 , - 4579 , - 4812 , - 1473 , - 4338 , - 2127 , - 4616 , - 525 , - 5646 , - 2683 , - 1412 , - 2585 , - 3946 , - 231 , - 1216 , - 1637 , - 5254 , - 787 , - 4028 , - 3697 , - 3554 , - 4351 , - 3832 , - 2749 , - 4862 , - 4907 , - 628 , - 4809 , - 3162 , - 2455 , - 432 , - 3861 , - 4470 , - 3011 , - 3244 , - 5921 , - 2770 , - 559 , - 3048 , - 4973 , - 4078 , - 1115 , - 5860 , - 1017 , - 2378 , - 4679 , - 5664 , - 69 , - 3686 , - 5235 , - 2460 , - 2129 , - 1986 , - 2783 , - 2264 , - 1181 , - 3294 , - 3339 , - 5076 , - 3241 , - 1594 , - 887 , - 4880 , - 2293 , - 2902 , - 1443 , - 1676 , - 4353 , - 1202 , - 5007 , - 1480 , - 3405 , - 2510 , - 5563 , - 4292 , - 5465 , - 810 , - 3111 , - 4096 , - 4517 , - 2118 , - 3667 , - 892 , - 561 , - 418 , - 1215 , - 696 , - 5629 , - 1726 , - 1771 , - 3508 , - 1673 , - 26 , - 5335 , - 3312 , - 725 , - 1334 , - 5891 , - 108 , - 2785 , - 5650 , - 3439 , - 5928 , - 1837 , - 942 , - 3995 , - 2724 , - 3897 , - 5258 , - 1543 , - 2528 , - 2949 , - 550 , - 2099 , - 5340 , - 5009 , - 4866 , - 5663 , - 5144 , - 4061 , - 158 , - 203 , - 1940 , - 105 , - 4474 , - 3767 , - 1744 , - 5173 , - 5782 , - 4323 , - 4556 , - 1217 , - 4082 , - 1871 , - 4360 , - 269 , - 5390 , - 2427 , - 1156 , - 2329 , - 3690 , - 5991 , - 960 , - 1381 , - 4998 , - 531 , - 3772 , - 3441 , - 3298 , - 4095 , - 3576 , - 2493 , - 4606 , - 4651 , - 372 , - 4553 , - 2906 , - 2199 , - 176 , - 3605 , - 4214 , - 2755 , - 2988 , - 5665 , - 2514 , - 303 , - 2792 , - 4717 , - 3822 , - 859 , - 5604 , - 761 , - 2122 , - 4423 , - 5408 , - 5829 , - 3430 , - 4979 , - 2204 , - 1873 , - 1730 , - 2527 , - 2008 , - 925 , - 3038 , - 3083 , - 4820 , - 2985 , - 1338 , - 631 , - 4624 , - 2037 , - 2646 , - 1187 , - 1420 , - 4097 , - 946 , - 4751 , - 1224 , - 3149 , - 2254 , - 5307 , - 4036 , - 5209 , - 554 , - 2855 , - 3840 , - 4261 , - 1862 , - 3411 , - 636 , - 305 , - 162 , - 959 , - 440 , - 5373 , - 1470 , - 1515 , - 3252 , - 1417 , - 5786 , - 5079 , - 3056 , - 469 , - 1078 , - 5635 , - 5868 , - 2529 , - 5394 , - 3183 , - 5672 , - 1581 , - 686 , - 3739 , - 2468 , - 3641 , - 5002 , - 1287 , - 2272 , - 2693 , - 294 , - 1843 , - 5084 , - 4753 , - 4610 , - 5407 , - 4888 , - 3805 , - 5918 , - 5963 , - 1684 , - 5865 , - 4218 , - 3511 , - 1488 , - 4917 , - 5526 , - 4067 , - 4300 , - 961 , - 3826 , - 1615 , - 4104 , - 13 , - 5134 , - 2171 , - 900 , - 2073 , - 3434 , - 5735 , - 704 , - 1125 , - 4742 , - 275 , - 3516 , - 3185 , - 3042 , - 3839 , - 3320 , - 2237 , - 4350 , - 4395 , - 116 , - 4297 , - 2650 , - 1943 , - 5936 , - 3349 , - 3958 , - 2499 , - 2732 , - 5409 , - 2258 , - 47 , - 2536 , - 4461 , - 3566 , - 603 , - 5348 , - 505 , - 1866 , - 4167 , - 5152 , - 5573 , - 3174 , - 4723 , - 1948 , - 1617 , - 1474 , - 2271 , - 1752 , - 669 , - 2782 , - 2827 , - 4564 , - 2729 , - 1082 , - 375 , - 4368 , - 1781 , - 2390 , - 931 , - 1164 , - 3841 , - 690 , - 4495 , - 968 , - 2893 , - 1998 , - 5051 , - 3780 , - 4953 , - 298 , - 2599 , - 3584 , - 4005 , - 1606 , - 3155 , - 380 , - 49 , - 5922 , - 703 , - 184 , - 5117 , - 1214 , - 1259 , - 2996 , - 1161 , - 5530 , - 4823 , - 2800 , - 213 , - 822 , - 5379 , - 5612 , - 2273 , - 5138 , - 2927 , - 5416 , - 1325 , - 430 , - 3483 , - 2212 , - 3385 , - 4746 , - 1031 , - 2016 , - 2437 , - 38 , - 1587 , - 4828 , - 4497 , - 4354 , - 5151 , - 4632 , - 3549 , - 5662 , - 5707 , - 1428 , - 5609 , - 3962 , - 3255 , - 1232 , - 4661 , - 5270 , - 3811 , - 4044 , - 705 , - 3570 , - 1359 , - 3848 , - 5773 , - 4878 , - 1915 , - 644 , - 1817 , - 3178 , - 5479 , - 448 , - 869 , - 4486 , - 19 , - 3260 , - 2929 , - 2786 , - 3583 , - 3064 , - 1981 , - 4094 , - 4139 , - 5876 , - 4041 , - 2394 , - 1687 , - 5680 , - 3093 , - 3702 , - 2243 , - 2476 , - 5153 , - 2002 , - 5807 , - 2280 , - 4205 , - 3310 , - 347 , - 5092 , - 249 , - 1610 , - 3911 , - 4896 , - 5317 , - 2918 , - 4467 , - 1692 , - 1361 , - 1218 , - 2015 , - 1496 , - 413 , - 2526 , - 2571 , - 4308 , - 2473 , - 826 , - 119 , - 4112 , - 1525 , - 2134 , - 675 , - 908 , - 3585 , - 434 , - 4239 , - 712 , - 2637 , - 1742 , - 4795 , - 3524 , - 4697 , - 42 , - 2343 , - 3328 , - 3749 , - 1350 , - 2899 , - 124 , - 5809 , - 5666 , - 447 , - 5944 , - 4861 , - 958 , - 1003 , - 2740 , - 905 , - 5274 , - 4567 , - 2544 , - 5973 , - 566 , - 5123 , - 5356 , - 2017 , - 4882 , - 2671 , - 5160 , - 1069 , - 174 , - 3227 , - 1956 , - 3129 , - 4490 , - 775 , - 1760 , - 2181 , - 5798 , - 1331 , - 4572 , - 4241 , - 4098 , - 4895 , - 4376 , - 3293 , - 5406 , - 5451 , - 1172 , - 5353 , - 3706 , - 2999 , - 976 , - 4405 , - 5014 , - 3555 , - 3788 , - 449 , - 3314 , - 1103 , - 3592 , - 5517 , - 4622 , - 1659 , - 388 , - 1561 , - 2922 , - 5223 , - 192 , - 613 , - 4230 , - 5779 , - 3004 , - 2673 , - 2530 , - 3327 , - 2808 , - 1725 , - 3838 , - 3883 , - 5620 , - 3785 , - 2138 , - 1431 , - 5424 , - 2837 , - 3446 , - 1987 , - 2220 , - 4897 , - 1746 , - 5551 , - 2024 , - 3949 , - 3054 , - 91 , - 4836 , - 6009 , - 1354 , - 3655 , - 4640 , - 5061 , - 2662 , - 4211 , - 1436 , - 1105 , - 962 , - 1759 , - 1240 , - 157 , - 2270 , - 2315 , - 4052 , - 2217 , - 570 , - 5879 , - 3856 , - 1269 , - 1878 , - 419 , - 652 , - 3329 , - 178 , - 3983 , - 456 , - 2381 , - 1486 , - 4539 , - 3268 , - 4441 , - 5802 , - 2087 , - 3072 , - 3493 , - 1094 , - 2643 , - 5884 , - 5553 , - 5410 , - 191 , - 5688 , - 4605 , - 702 , - 747 , - 2484 , - 649 , - 5018 , - 4311 , - 2288 , - 5717 , - 310 , - 4867 , - 5100 , - 1761 , - 4626 , - 2415 , - 4904 , - 813 , - 5934 , - 2971 , - 1700 , - 2873 , - 4234 , - 519 , - 1504 , - 1925 , - 5542 , - 1075 , - 4316 , - 3985 , - 3842 , - 4639 , - 4120 , - 3037 , - 5150 , - 5195 , - 916 , - 5097 , - 3450 , - 2743 , - 720 , - 4149 , - 4758 , - 3299 , - 3532 , - 193 , - 3058 , - 847 , - 3336 , - 5261 , - 4366 , - 1403 , - 132 , - 1305 , - 2666 , - 4967 , - 5952 , - 357 , - 3974 , - 5523 , - 2748 , - 2417 , - 2274 , - 3071 , - 2552 , - 1469 , - 3582 , - 3627 , - 5364 , - 3529 , - 1882 , - 1175 , - 5168 , - 2581 , - 3190 , - 1731 , - 1964 , - 4641 , - 1490 , - 5295 , - 1768 , - 3693 , - 2798 , - 5851 , - 4580 , - 5753 , - 1098 , - 3399 , - 4384 , - 4805 , - 2406 , - 3955 , - 1180 , - 849 , - 706 , - 1503 , - 984 , - 5917 , - 2014 , - 2059 , - 3796 , - 1961 , - 314 , - 5623 , - 3600 , - 1013 , - 1622 , - 163 , - 396 , - 3073 , - 5938 , - 3727 , - 200 , - 2125 , - 1230 , - 4283 , - 3012 , - 4185 , - 5546 , - 1831 , - 2816 , - 3237 , - 838 , - 2387 , - 5628 , - 5297 , - 5154 , - 5951 , - 5432 , - 4349 , - 446 , - 491 , - 2228 , - 393 , - 4762 , - 4055 , - 2032 , - 5461 , - 54 , - 4611 , - 4844 , - 1505 , - 4370 , - 2159 , - 4648 , - 557 , - 5678 , - 2715 , - 1444 , - 2617 , - 3978 , - 263 , - 1248 , - 1669 , - 5286 , - 819 , - 4060 , - 3729 , - 3586 , - 4383 , - 3864 , - 2781 , - 4894 , - 4939 , - 660 , - 4841 , - 3194 , - 2487 , - 464 , - 3893 , - 4502 , - 3043 , - 3276 , - 5953 , - 2802 , - 591 , - 3080 , - 5005 , - 4110 , - 1147 , - 5892 , - 1049 , - 2410 , - 4711 , - 5696 , - 101 , - 3718 , - 5267 , - 2492 , - 2161 , - 2018 , - 2815 , - 2296 , - 1213 , - 3326 , - 3371 , - 5108 , - 3273 , - 1626 , - 919 , - 4912 , - 2325 , - 2934 , - 1475 , - 1708 , - 4385 , - 1234 , - 5039 , - 1512 , - 3437 , - 2542 , - 5595 , - 4324 , - 5497 , - 842 , - 3143 , - 4128 , - 4549 , - 2150 , - 3699 , - 924 , - 593 , - 450 , - 1247 , - 728 , - 5661 , - 1758 , - 1803 , - 3540 , - 1705 , - 58 , - 5367 , - 3344 , - 757 , - 1366 , - 5923 , - 140 , - 2817 , - 5682 , - 3471 , - 5960 , - 1869 , - 974 , - 4027 , - 2756 , - 3929 , - 5290 , - 1575 , - 2560 , - 2981 , - 582 , - 2131 , - 5372 , - 5041 , - 4898 , - 5695 , - 5176 , - 4093 , - 190 , - 235 , - 1972 , - 137 , - 4506 , - 3799 , - 1776 , - 5205 , - 5814 , - 4355 , - 4588 , - 1249 , - 4114 , - 1903 , - 4392 , - 301 , - 5422 , - 2459 , - 1188 , - 2361 , - 3722 , - 7 , - 992 , - 1413 , - 5030 , - 563 , - 3804 , - 3473 , - 3330 , - 4127 , - 3608 , - 2525 , - 4638 , - 4683 , - 404 , - 4585 , - 2938 , - 2231 , - 208 , - 3637 , - 4246 , - 2787 , - 3020 , - 5697 , - 2546 , - 335 , - 2824 , - 4749 , - 3854 , - 891 , - 5636 , - 793 , - 2154 , - 4455 , - 5440 , - 5861 , - 3462 , - 5011 , - 2236 , - 1905 , - 1762 , - 2559 , - 2040 , - 957 , - 3070 , - 3115 , - 4852 , - 3017 , - 1370 , - 663 , - 4656 , - 2069 , - 2678 , - 1219 , - 1452 , - 4129 , - 978 , - 4783 , - 1256 , - 3181 , - 2286 , - 5339 , - 4068 , - 5241 , - 586 , - 2887 , - 3872 , - 4293 , - 1894 , - 3443 , - 668 , - 337 , - 194 , - 991 , - 472 , - 5405 , - 1502 , - 1547 , - 3284 , - 1449 , - 5818 , - 5111 , - 3088 , - 501 , - 1110 , - 5667 , - 5900 , - 2561 , - 5426 , - 3215 , - 5704 , - 1613 , - 718 , - 3771 , - 2500 , - 3673 , - 5034 , - 1319 , - 2304 , - 2725 , - 326 , - 1875 , - 5116 , - 4785 , - 4642 , - 5439 , - 4920 , - 3837 , - 5950 , - 5995 , - 1716 , - 5897 , - 4250 , - 3543 , - 1520 , - 4949 , - 5558 , - 4099 , - 4332 , - 993 , - 3858 , - 1647 , - 4136 , - 45 , - 5166 , - 2203 , - 932 , - 2105 , - 3466 , - 5767 , - 736 , - 1157 , - 4774 , - 307 , - 3548 , - 3217 , - 3074 , - 3871 , - 3352 , - 2269 , - 4382 , - 4427 , - 148 , - 4329 , - 2682 , - 1975 , - 5968 , - 3381 , - 3990 , - 2531 , - 2764 , - 5441 , - 2290 , - 79 , - 2568 , - 4493 , - 3598 , - 635 , - 5380 , - 537 , - 1898 , - 4199 , - 5184 , - 5605 , - 3206 , - 4755 , - 1980 , - 1649 , - 1506 , - 2303 , - 1784 , - 701 , - 2814 , - 2859 , - 4596 , - 2761 , - 1114 , - 407 , - 4400 , - 1813 , - 2422 , - 963 , - 1196 , - 3873 , - 722 , - 4527 , - 1000 , - 2925 , - 2030 , - 5083 , - 3812 , - 4985 , - 330 , - 2631 , - 3616 , - 4037 , - 1638 , - 3187 , - 412 , - 81 , - 5954 , - 735 , - 216 , - 5149 , - 1246 , - 1291 , - 3028 , - 1193 , - 5562 , - 4855 , - 2832 , - 245 , - 854 , - 5411 , - 5644 , - 2305 , - 5170 , - 2959 , - 5448 , - 1357 , - 462 , - 3515 , - 2244 , - 3417 , - 4778 , - 1063 , - 2048 , - 2469 , - 70 , - 1619 , - 4860 , - 4529 , - 4386 , - 5183 , - 4664 , - 3581 , - 5694 , - 5739 , - 1460 , - 5641 , - 3994 , - 3287 , - 1264 , - 4693 , - 5302 , - 3843 , - 4076 , - 737 , - 3602 , - 1391 , - 3880 , - 5805 , - 4910 , - 1947 , - 676 , - 1849 , - 3210 , - 5511 , - 480 , - 901 , - 4518 , - 51 , - 3292 , - 2961 , - 2818 , - 3615 , - 3096 , - 2013 , - 4126 , - 4171 , - 5908 , - 4073 , - 2426 , - 1719 , - 5712 , - 3125 , - 3734 , - 2275 , - 2508 , - 5185 , - 2034 , - 5839 , - 2312 , - 4237 , - 3342 , - 379 , - 5124 , - 281 , - 1642 , - 3943 , - 4928 , - 5349 , - 2950 , - 4499 , - 1724 , - 1393 , - 1250 , - 2047 , - 1528 , - 445 , - 2558 , - 2603 , - 4340 , - 2505 , - 858 , - 151 , - 4144 , - 1557 , - 2166 , - 707 , - 940 , - 3617 , - 466 , - 4271 , - 744 , - 2669 , - 1774 , - 4827 , - 3556 , - 4729 , - 74 , - 2375 , - 3360 , - 3781 , - 1382 , - 2931 , - 156 , - 5841 , - 5698 , - 479 , - 5976 , - 4893 , - 990 , - 1035 , - 2772 , - 937 , - 5306 , - 4599 , - 2576 , - 6005 , - 598 , - 5155 , - 5388 , - 2049 , - 4914 , - 2703 , - 5192 , - 1101 , - 206 , - 3259 , - 1988 , - 3161 , - 4522 , - 807 , - 1792 , - 2213 , - 5830 , - 1363 , - 4604 , - 4273 , - 4130 , - 4927 , - 4408 , - 3325 , - 5438 , - 5483 , - 1204 , - 5385 , - 3738 , - 3031 , - 1008 , - 4437 , - 5046 , - 3587 , - 3820 , - 481 , - 3346 , - 1135 , - 3624 , - 5549 , - 4654 , - 1691 , - 420 , - 1593 , - 2954 , - 5255 , - 224 , - 645 , - 4262 , - 5811 , - 3036 , - 2705 , - 2562 , - 3359 , - 2840 , - 1757 , - 3870 , - 3915 , - 5652 , - 3817 , - 2170 , - 1463 , - 5456 , - 2869 , - 3478 , - 2019 , - 2252 , - 4929 , - 1778 , - 5583 , - 2056 , - 3981 , - 3086 , - 123 , - 4868 , - 25 , - 1386 , - 3687 , - 4672 , - 5093 , - 2694 , - 4243 , - 1468 , - 1137 , - 994 , - 1791 , - 1272 , - 189 , - 2302 , - 2347 , - 4084 , - 2249 , - 602 , - 5911 , - 3888 , - 1301 , - 1910 , - 451 , - 684 , - 3361 , - 210 , - 4015 , - 488 , - 2413 , - 1518 , - 4571 , - 3300 , - 4473 , - 5834 , - 2119 , - 3104 , - 3525 , - 1126 , - 2675 , - 5916 , - 5585 , - 5442 , - 223 , - 5720 , - 4637 , - 734 , - 779 , - 2516 , - 681 , - 5050 , - 4343 , - 2320 , - 5749 , - 342 , - 4899 , - 5132 , - 1793 , - 4658 , - 2447 , - 4936 , - 845 , - 5966 , - 3003 , - 1732 , - 2905 , - 4266 , - 551 , - 1536 , - 1957 , - 5574 , - 1107 , - 4348 , - 4017 , - 3874 , - 4671 , - 4152 , - 3069 , - 5182 , - 5227 , - 948 , - 5129 , - 3482 , - 2775 , - 752 , - 4181 , - 4790 , - 3331 , - 3564 , - 225 , - 3090 , - 879 , - 3368 , - 5293 , - 4398 , - 1435 , - 164 , - 1337 , - 2698 , - 4999 , - 5984 , - 389 , - 4006 , - 5555 , - 2780 , - 2449 , - 2306 , - 3103 , - 2584 , - 1501 , - 3614 , - 3659 , - 5396 , - 3561 , - 1914 , - 1207 , - 5200 , - 2613 , - 3222 , - 1763 , - 1996 , - 4673 , - 1522 , - 5327 , - 1800 , - 3725 , - 2830 , - 5883 , - 4612 , - 5785 , - 1130 , - 3431 , - 4416 , - 4837 , - 2438 , - 3987 , - 1212 , - 881 , - 738 , - 1535 , - 1016 , - 5949 , - 2046 , - 2091 , - 3828 , - 1993 , - 346 , - 5655 , - 3632 , - 1045 , - 1654 , - 195 , - 428 , - 3105 , - 5970 , - 3759 , - 232 , - 2157 , - 1262 , - 4315 , - 3044 , - 4217 , - 5578 , - 1863 , - 2848 , - 3269 , - 870 , - 2419 , - 5660 , - 5329 , - 5186 , - 5983 , - 5464 , - 4381 , - 478 , - 523 , - 2260 , - 425 , - 4794 , - 4087 , - 2064 , - 5493 , - 86 , - 4643 , - 4876 , - 1537 , - 4402 , - 2191 , - 4680 , - 589 , - 5710 , - 2747 , - 1476 , - 2649 , - 4010 , - 295 , - 1280 , - 1701 , - 5318 , - 851 , - 4092 , - 3761 , - 3618 , - 4415 , - 3896 , - 2813 , - 4926 , - 4971 , - 692 , - 4873 , - 3226 , - 2519 , - 496 , - 3925 , - 4534 , - 3075 , - 3308 , - 5985 , - 2834 , - 623 , - 3112 , - 5037 , - 4142 , - 1179 , - 5924 , - 1081 , - 2442 , - 4743 , - 5728 , - 133 , - 3750 , - 5299 , - 2524 , - 2193 , - 2050 , - 2847 , - 2328 , - 1245 , - 3358 , - 3403 , - 5140 , - 3305 , - 1658 , - 951 , - 4944 , - 2357 , - 2966 , - 1507 , - 1740 , - 4417 , - 1266 , - 5071 , - 1544 , - 3469 , - 2574 , - 5627 , - 4356 , - 5529 , - 874 , - 3175 , - 4160 , - 4581 , - 2182 , - 3731 , - 956 , - 625 , - 482 , - 1279 , - 760 , - 5693 , - 1790 , - 1835 , - 3572 , - 1737 , - 90 , - 5399 , - 3376 , - 789 , - 1398 , - 5955 , - 172 , - 2849 , - 5714 , - 3503 , - 5992 , - 1901 , - 1006 , - 4059 , - 2788 , - 3961 , - 5322 , - 1607 , - 2592 , - 3013 , - 614 , - 2163 , - 5404 , - 5073 , - 4930 , - 5727 , - 5208 , - 4125 , - 222 , - 267 , - 2004 , - 169 , - 4538 , - 3831 , - 1808 , - 5237 , - 5846 , - 4387 , - 4620 , - 1281 , - 4146 , - 1935 , - 4424 , - 333 , - 5454 , - 2491 , - 1220 , - 2393 , - 3754 , - 39 , - 1024 , - 1445 , - 5062 , - 595 , - 3836 , - 3505 , - 3362 , - 4159 , - 3640 , - 2557 , - 4670 , - 4715 , - 436 , - 4617 , - 2970 , - 2263 , - 240 , - 3669 , - 4278 , - 2819 , - 3052 , - 5729 , - 2578 , - 367 , - 2856 , - 4781 , - 3886 , - 923 , - 5668 , - 825 , - 2186 , - 4487 , - 5472 , - 5893 , - 3494 , - 5043 , - 2268 , - 1937 , - 1794 , - 2591 , - 2072 , - 989 , - 3102 , - 3147 , - 4884 , - 3049 , - 1402 , - 695 , - 4688 , - 2101 , - 2710 , - 1251 , - 1484 , - 4161 , - 1010 , - 4815 , - 1288 , - 3213 , - 2318 , - 5371 , - 4100 , - 5273 , - 618 , - 2919 , - 3904 , - 4325 , - 1926 , - 3475 , - 700 , - 369 , - 226 , - 1023 , - 504 , - 5437 , - 1534 , - 1579 , - 3316 , - 1481 , - 5850 , - 5143 , - 3120 , - 533 , - 1142 , - 5699 , - 5932 , - 2593 , - 5458 , - 3247 , - 5736 , - 1645 , - 750 , - 3803 , - 2532 , - 3705 , - 5066 , - 1351 , - 2336 , - 2757 , - 358 , - 1907 , - 5148 , - 4817 , - 4674 , - 5471 , - 4952 , - 3869 , - 5982 , - 11 , - 1748 , - 5929 , - 4282 , - 3575 , - 1552 , - 4981 , - 5590 , - 4131 , - 4364 , - 1025 , - 3890 , - 1679 , - 4168 , - 77 , - 5198 , - 2235 , - 964 , - 2137 , - 3498 , - 5799 , - 768 , - 1189 , - 4806 , - 339 , - 3580 , - 3249 , - 3106 , - 3903 , - 3384 , - 2301 , - 4414 , - 4459 , - 180 , - 4361 , - 2714 , - 2007 , - 6000 , - 3413 , - 4022 , - 2563 , - 2796 , - 5473 , - 2322 , - 111 , - 2600 , - 4525 , - 3630 , - 667 , - 5412 , - 569 , - 1930 , - 4231 , - 5216 , - 5637 , - 3238 , - 4787 , - 2012 , - 1681 , - 1538 , - 2335 , - 1816 , - 733 , - 2846 , - 2891 , - 4628 , - 2793 , - 1146 , - 439 , - 4432 , - 1845 , - 2454 , - 995 , - 1228 , - 3905 , - 754 , - 4559 , - 1032 , - 2957 , - 2062 , - 5115 , - 3844 , - 5017 , - 362 , - 2663 , - 3648 , - 4069 , - 1670 , - 3219 , - 444 , - 113 , - 5986 , - 767 , - 248 , - 5181 , - 1278 , - 1323 , - 3060 , - 1225 , - 5594 , - 4887 , - 2864 , - 277 , - 886 , - 5443 , - 5676 , - 2337 , - 5202 , - 2991 , - 5480 , - 1389 , - 494 , - 3547 , - 2276 , - 3449 , - 4810 , - 1095 , - 2080 , - 2501 , - 102 , - 1651 , - 4892 , - 4561 , - 4418 , - 5215 , - 4696 , - 3613 , - 5726 , - 5771 , - 1492 , - 5673 , - 4026 , - 3319 , - 1296 , - 4725 , - 5334 , - 3875 , - 4108 , - 769 , - 3634 , - 1423 , - 3912 , - 5837 , - 4942 , - 1979 , - 708 , - 1881 , - 3242 , - 5543 , - 512 , - 933 , - 4550 , - 83 , - 3324 , - 2993 , - 2850 , - 3647 , - 3128 , - 2045 , - 4158 , - 4203 , - 5940 , - 4105 , - 2458 , - 1751 , - 5744 , - 3157 , - 3766 , - 2307 , - 2540 , - 5217 , - 2066 , - 5871 , - 2344 , - 4269 , - 3374 , - 411 , - 5156 , - 313 , - 1674 , - 3975 , - 4960 , - 5381 , - 2982 , - 4531 , - 1756 , - 1425 , - 1282 , - 2079 , - 1560 , - 477 , - 2590 , - 2635 , - 4372 , - 2537 , - 890 , - 183 , - 4176 , - 1589 , - 2198 , - 739 , - 972 , - 3649 , - 498 , - 4303 , - 776 , - 2701 , - 1806 , - 4859 , - 3588 , - 4761 , - 106 , - 2407 , - 3392 , - 3813 , - 1414 , - 2963 , - 188 , - 5873 , - 5730 , - 511 , - 6008 , - 4925 , - 1022 , - 1067 , - 2804 , - 969 , - 5338 , - 4631 , - 2608 , - 21 , - 630 , - 5187 , - 5420 , - 2081 , - 4946 , - 2735 , - 5224 , - 1133 , - 238 , - 3291 , - 2020 , - 3193 , - 4554 , - 839 , - 1824 , - 2245 , - 5862 , - 1395 , - 4636 , - 4305 , - 4162 , - 4959 , - 4440 , - 3357 , - 5470 , - 5515 , - 1236 , - 5417 , - 3770 , - 3063 , - 1040 , - 4469 , - 5078 , - 3619 , - 3852 , - 513 , - 3378 , - 1167 , - 3656 , - 5581 , - 4686 , - 1723 , - 452 , - 1625 , - 2986 , - 5287 , - 256 , - 677 , - 4294 , - 5843 , - 3068 , - 2737 , - 2594 , - 3391 , - 2872 , - 1789 , - 3902 , - 3947 , - 5684 , - 3849 , - 2202 , - 1495 , - 5488 , - 2901 , - 3510 , - 2051 , - 2284 , - 4961 , - 1810 , - 5615 , - 2088 , - 4013 , - 3118 , - 155 , - 4900 , - 57 , - 1418 , - 3719 , - 4704 , - 5125 , - 2726 , - 4275 , - 1500 , - 1169 , - 1026 , - 1823 , - 1304 , - 221 , - 2334 , - 2379 , - 4116 , - 2281 , - 634 , - 5943 , - 3920 , - 1333 , - 1942 , - 483 , - 716 , - 3393 , - 242 , - 4047 , - 520 , - 2445 , - 1550 , - 4603 , - 3332 , - 4505 , - 5866 , - 2151 , - 3136 , - 3557 , - 1158 , - 2707 , - 5948 , - 5617 , - 5474 , - 255 , - 5752 , - 4669 , - 766 , - 811 , - 2548 , - 713 , - 5082 , - 4375 , - 2352 , - 5781 , - 374 , - 4931 , - 5164 , - 1825 , - 4690 , - 2479 , - 4968 , - 877 , - 5998 , - 3035 , - 1764 , - 2937 , - 4298 , - 583 , - 1568 , - 1989 , - 5606 , - 1139 , - 4380 , - 4049 , - 3906 , - 4703 , - 4184 , - 3101 , - 5214 , - 5259 , - 980 , - 5161 , - 3514 , - 2807 , - 784 , - 4213 , - 4822 , - 3363 , - 3596 , - 257 , - 3122 , - 911 , - 3400 , - 5325 , - 4430 , - 1467 , - 196 , - 1369 , - 2730 , - 5031 , - 0 , - 93 , - 3606 , - 5979 , - 2652 , - 1225 , - 3218 , - 4071 , - 5304 , - 2357 , - 2830 , - 2163 , - 1876 , - 3489 , - 2442 , - 255 , - 4528 , - 4621 , - 2054 , - 4427 , - 1100 , - 5753 , - 1666 , - 2519 , - 3752 , - 805 , - 1278 , - 611 , - 324 , - 1937 , - 890 , - 4783 , - 2976 , - 3069 , - 502 , - 2875 , - 5628 , - 4201 , - 114 , - 967 , - 2200 , - 5333 , - 5806 , - 5139 , - 4852 , - 385 , - 5418 , - 3231 , - 1424 , - 1517 , - 5030 , - 1323 , - 4076 , - 2649 , - 4642 , - 5495 , - 648 , - 3781 , - 4254 , - 3587 , - 3300 , - 4913 , - 3866 , - 1679 , - 5952 , - 6045 , - 3478 , - 5851 , - 2524 , - 1097 , - 3090 , - 3943 , - 5176 , - 2229 , - 2702 , - 2035 , - 1748 , - 3361 , - 2314 , - 127 , - 4400 , - 4493 , - 1926 , - 4299 , - 972 , - 5625 , - 1538 , - 2391 , - 3624 , - 677 , - 1150 , - 483 , - 196 , - 1809 , - 762 , - 4655 , - 2848 , - 2941 , - 374 , - 2747 , - 5500 , - 4073 , - 6066 , - 839 , - 2072 , - 5205 , - 5678 , - 5011 , - 4724 , - 257 , - 5290 , - 3103 , - 1296 , - 1389 , - 4902 , - 1195 , - 3948 , - 2521 , - 4514 , - 5367 , - 520 , - 3653 , - 4126 , - 3459 , - 3172 , - 4785 , - 3738 , - 1551 , - 5824 , - 5917 , - 3350 , - 5723 , - 2396 , - 969 , - 2962 , - 3815 , - 5048 , - 2101 , - 2574 , - 1907 , - 1620 , - 3233 , - 2186 , - 6079 , - 4272 , - 4365 , - 1798 , - 4171 , - 844 , - 5497 , - 1410 , - 2263 , - 3496 , - 549 , - 1022 , - 355 , - 68 , - 1681 , - 634 , - 4527 , - 2720 , - 2813 , - 246 , - 2619 , - 5372 , - 3945 , - 5938 , - 711 , - 1944 , - 5077 , - 5550 , - 4883 , - 4596 , - 129 , - 5162 , - 2975 , - 1168 , - 1261 , - 4774 , - 1067 , - 3820 , - 2393 , - 4386 , - 5239 , - 392 , - 3525 , - 3998 , - 3331 , - 3044 , - 4657 , - 3610 , - 1423 , - 5696 , - 5789 , - 3222 , - 5595 , - 2268 , - 841 , - 2834 , - 3687 , - 4920 , - 1973 , - 2446 , - 1779 , - 1492 , - 3105 , - 2058 , - 5951 , - 4144 , - 4237 , - 1670 , - 4043 , - 716 , - 5369 , - 1282 , - 2135 , - 3368 , - 421 , - 894 , - 227 , - 6020 , - 1553 , - 506 , - 4399 , - 2592 , - 2685 , - 118 , - 2491 , - 5244 , - 3817 , - 5810 , - 583 , - 1816 , - 4949 , - 5422 , - 4755 , - 4468 , - 1 , - 5034 , - 2847 , - 1040 , - 1133 , - 4646 , - 939 , - 3692 , - 2265 , - 4258 , - 5111 , - 264 , - 3397 , - 3870 , - 3203 , - 2916 , - 4529 , - 3482 , - 1295 , - 5568 , - 5661 , - 3094 , - 5467 , - 2140 , - 713 , - 2706 , - 3559 , - 4792 , - 1845 , - 2318 , - 1651 , - 1364 , - 2977 , - 1930 , - 5823 , - 4016 , - 4109 , - 1542 , - 3915 , - 588 , - 5241 , - 1154 , - 2007 , - 3240 , - 293 , - 766 , - 99 , - 5892 , - 1425 , - 378 , - 4271 , - 2464 , - 2557 , - 6070 , - 2363 , - 5116 , - 3689 , - 5682 , - 455 , - 1688 , - 4821 , - 5294 , - 4627 , - 4340 , - 5953 , - 4906 , - 2719 , - 912 , - 1005 , - 4518 , - 811 , - 3564 , - 2137 , - 4130 , - 4983 , - 136 , - 3269 , - 3742 , - 3075 , - 2788 , - 4401 , - 3354 , - 1167 , - 5440 , - 5533 , - 2966 , - 5339 , - 2012 , - 585 , - 2578 , - 3431 , - 4664 , - 1717 , - 2190 , - 1523 , - 1236 , - 2849 , - 1802 , - 5695 , - 3888 , - 3981 , - 1414 , - 3787 , - 460 , - 5113 , - 1026 , - 1879 , - 3112 , - 165 , - 638 , - 6051 , - 5764 , - 1297 , - 250 , - 4143 , - 2336 , - 2429 , - 5942 , - 2235 , - 4988 , - 3561 , - 5554 , - 327 , - 1560 , - 4693 , - 5166 , - 4499 , - 4212 , - 5825 , - 4778 , - 2591 , - 784 , - 877 , - 4390 , - 683 , - 3436 , - 2009 , - 4002 , - 4855 , - 8 , - 3141 , - 3614 , - 2947 , - 2660 , - 4273 , - 3226 , - 1039 , - 5312 , - 5405 , - 2838 , - 5211 , - 1884 , - 457 , - 2450 , - 3303 , - 4536 , - 1589 , - 2062 , - 1395 , - 1108 , - 2721 , - 1674 , - 5567 , - 3760 , - 3853 , - 1286 , - 3659 , - 332 , - 4985 , - 898 , - 1751 , - 2984 , - 37 , - 510 , - 5923 , - 5636 , - 1169 , - 122 , - 4015 , - 2208 , - 2301 , - 5814 , - 2107 , - 4860 , - 3433 , - 5426 , - 199 , - 1432 , - 4565 , - 5038 , - 4371 , - 4084 , - 5697 , - 4650 , - 2463 , - 656 , - 749 , - 4262 , - 555 , - 3308 , - 1881 , - 3874 , - 4727 , - 5960 , - 3013 , - 3486 , - 2819 , - 2532 , - 4145 , - 3098 , - 911 , - 5184 , - 5277 , - 2710 , - 5083 , - 1756 , - 329 , - 2322 , - 3175 , - 4408 , - 1461 , - 1934 , - 1267 , - 980 , - 2593 , - 1546 , - 5439 , - 3632 , - 3725 , - 1158 , - 3531 , - 204 , - 4857 , - 770 , - 1623 , - 2856 , - 5989 , - 382 , - 5795 , - 5508 , - 1041 , - 6074 , - 3887 , - 2080 , - 2173 , - 5686 , - 1979 , - 4732 , - 3305 , - 5298 , - 71 , - 1304 , - 4437 , - 4910 , - 4243 , - 3956 , - 5569 , - 4522 , - 2335 , - 528 , - 621 , - 4134 , - 427 , - 3180 , - 1753 , - 3746 , - 4599 , - 5832 , - 2885 , - 3358 , - 2691 , - 2404 , - 4017 , - 2970 , - 783 , - 5056 , - 5149 , - 2582 , - 4955 , - 1628 , - 201 , - 2194 , - 3047 , - 4280 , - 1333 , - 1806 , - 1139 , - 852 , - 2465 , - 1418 , - 5311 , - 3504 , - 3597 , - 1030 , - 3403 , - 76 , - 4729 , - 642 , - 1495 , - 2728 , - 5861 , - 254 , - 5667 , - 5380 , - 913 , - 5946 , - 3759 , - 1952 , - 2045 , - 5558 , - 1851 , - 4604 , - 3177 , - 5170 , - 6023 , - 1176 , - 4309 , - 4782 , - 4115 , - 3828 , - 5441 , - 4394 , - 2207 , - 400 , - 493 , - 4006 , - 299 , - 3052 , - 1625 , - 3618 , - 4471 , - 5704 , - 2757 , - 3230 , - 2563 , - 2276 , - 3889 , - 2842 , - 655 , - 4928 , - 5021 , - 2454 , - 4827 , - 1500 , - 73 , - 2066 , - 2919 , - 4152 , - 1205 , - 1678 , - 1011 , - 724 , - 2337 , - 1290 , - 5183 , - 3376 , - 3469 , - 902 , - 3275 , - 6028 , - 4601 , - 514 , - 1367 , - 2600 , - 5733 , - 126 , - 5539 , - 5252 , - 785 , - 5818 , - 3631 , - 1824 , - 1917 , - 5430 , - 1723 , - 4476 , - 3049 , - 5042 , - 5895 , - 1048 , - 4181 , - 4654 , - 3987 , - 3700 , - 5313 , - 4266 , - 2079 , - 272 , - 365 , - 3878 , - 171 , - 2924 , - 1497 , - 3490 , - 4343 , - 5576 , - 2629 , - 3102 , - 2435 , - 2148 , - 3761 , - 2714 , - 527 , - 4800 , - 4893 , - 2326 , - 4699 , - 1372 , - 6025 , - 1938 , - 2791 , - 4024 , - 1077 , - 1550 , - 883 , - 596 , - 2209 , - 1162 , - 5055 , - 3248 , - 3341 , - 774 , - 3147 , - 5900 , - 4473 , - 386 , - 1239 , - 2472 , - 5605 , - 6078 , - 5411 , - 5124 , - 657 , - 5690 , - 3503 , - 1696 , - 1789 , - 5302 , - 1595 , - 4348 , - 2921 , - 4914 , - 5767 , - 920 , - 4053 , - 4526 , - 3859 , - 3572 , - 5185 , - 4138 , - 1951 , - 144 , - 237 , - 3750 , - 43 , - 2796 , - 1369 , - 3362 , - 4215 , - 5448 , - 2501 , - 2974 , - 2307 , - 2020 , - 3633 , - 2586 , - 399 , - 4672 , - 4765 , - 2198 , - 4571 , - 1244 , - 5897 , - 1810 , - 2663 , - 3896 , - 949 , - 1422 , - 755 , - 468 , - 2081 , - 1034 , - 4927 , - 3120 , - 3213 , - 646 , - 3019 , - 5772 , - 4345 , - 258 , - 1111 , - 2344 , - 5477 , - 5950 , - 5283 , - 4996 , - 529 , - 5562 , - 3375 , - 1568 , - 1661 , - 5174 , - 1467 , - 4220 , - 2793 , - 4786 , - 5639 , - 792 , - 3925 , - 4398 , - 3731 , - 3444 , - 5057 , - 4010 , - 1823 , - 16 , - 109 , - 3622 , - 5995 , - 2668 , - 1241 , - 3234 , - 4087 , - 5320 , - 2373 , - 2846 , - 2179 , - 1892 , - 3505 , - 2458 , - 271 , - 4544 , - 4637 , - 2070 , - 4443 , - 1116 , - 5769 , - 1682 , - 2535 , - 3768 , - 821 , - 1294 , - 627 , - 340 , - 1953 , - 906 , - 4799 , - 2992 , - 3085 , - 518 , - 2891 , - 5644 , - 4217 , - 130 , - 983 , - 2216 , - 5349 , - 5822 , - 5155 , - 4868 , - 401 , - 5434 , - 3247 , - 1440 , - 1533 , - 5046 , - 1339 , - 4092 , - 2665 , - 4658 , - 5511 , - 664 , - 3797 , - 4270 , - 3603 , - 3316 , - 4929 , - 3882 , - 1695 , - 5968 , - 6061 , - 3494 , - 5867 , - 2540 , - 1113 , - 3106 , - 3959 , - 5192 , - 2245 , - 2718 , - 2051 , - 1764 , - 3377 , - 2330 , - 143 , - 4416 , - 4509 , - 1942 , - 4315 , - 988 , - 5641 , - 1554 , - 2407 , - 3640 , - 693 , - 1166 , - 499 , - 212 , - 1825 , - 778 , - 4671 , - 2864 , - 2957 , - 390 , - 2763 , - 5516 , - 4089 , - 2 , - 855 , - 2088 , - 5221 , - 5694 , - 5027 , - 4740 , - 273 , - 5306 , - 3119 , - 1312 , - 1405 , - 4918 , - 1211 , - 3964 , - 2537 , - 4530 , - 5383 , - 536 , - 3669 , - 4142 , - 3475 , - 3188 , - 4801 , - 3754 , - 1567 , - 5840 , - 5933 , - 3366 , - 5739 , - 2412 , - 985 , - 2978 , - 3831 , - 5064 , - 2117 , - 2590 , - 1923 , - 1636 , - 3249 , - 2202 , - 15 , - 4288 , - 4381 , - 1814 , - 4187 , - 860 , - 5513 , - 1426 , - 2279 , - 3512 , - 565 , - 1038 , - 371 , - 84 , - 1697 , - 650 , - 4543 , - 2736 , - 2829 , - 262 , - 2635 , - 5388 , - 3961 , - 5954 , - 727 , - 1960 , - 5093 , - 5566 , - 4899 , - 4612 , - 145 , - 5178 , - 2991 , - 1184 , - 1277 , - 4790 , - 1083 , - 3836 , - 2409 , - 4402 , - 5255 , - 408 , - 3541 , - 4014 , - 3347 , - 3060 , - 4673 , - 3626 , - 1439 , - 5712 , - 5805 , - 3238 , - 5611 , - 2284 , - 857 , - 2850 , - 3703 , - 4936 , - 1989 , - 2462 , - 1795 , - 1508 , - 3121 , - 2074 , - 5967 , - 4160 , - 4253 , - 1686 , - 4059 , - 732 , - 5385 , - 1298 , - 2151 , - 3384 , - 437 , - 910 , - 243 , - 6036 , - 1569 , - 522 , - 4415 , - 2608 , - 2701 , - 134 , - 2507 , - 5260 , - 3833 , - 5826 , - 599 , - 1832 , - 4965 , - 5438 , - 4771 , - 4484 , - 17 , - 5050 , - 2863 , - 1056 , - 1149 , - 4662 , - 955 , - 3708 , - 2281 , - 4274 , - 5127 , - 280 , - 3413 , - 3886 , - 3219 , - 2932 , - 4545 , - 3498 , - 1311 , - 5584 , - 5677 , - 3110 , - 5483 , - 2156 , - 729 , - 2722 , - 3575 , - 4808 , - 1861 , - 2334 , - 1667 , - 1380 , - 2993 , - 1946 , - 5839 , - 4032 , - 4125 , - 1558 , - 3931 , - 604 , - 5257 , - 1170 , - 2023 , - 3256 , - 309 , - 782 , - 115 , - 5908 , - 1441 , - 394 , - 4287 , - 2480 , - 2573 , - 6 , - 2379 , - 5132 , - 3705 , - 5698 , - 471 , - 1704 , - 4837 , - 5310 , - 4643 , - 4356 , - 5969 , - 4922 , - 2735 , - 928 , - 1021 , - 4534 , - 827 , - 3580 , - 2153 , - 4146 , - 4999 , - 152 , - 3285 , - 3758 , - 3091 , - 2804 , - 4417 , - 3370 , - 1183 , - 5456 , - 5549 , - 2982 , - 5355 , - 2028 , - 601 , - 2594 , - 3447 , - 4680 , - 1733 , - 2206 , - 1539 , - 1252 , - 2865 , - 1818 , - 5711 , - 3904 , - 3997 , - 1430 , - 3803 , - 476 , - 5129 , - 1042 , - 1895 , - 3128 , - 181 , - 654 , - 6067 , - 5780 , - 1313 , - 266 , - 4159 , - 2352 , - 2445 , - 5958 , - 2251 , - 5004 , - 3577 , - 5570 , - 343 , - 1576 , - 4709 , - 5182 , - 4515 , - 4228 , - 5841 , - 4794 , - 2607 , - 800 , - 893 , - 4406 , - 699 , - 3452 , - 2025 , - 4018 , - 4871 , - 24 , - 3157 , - 3630 , - 2963 , - 2676 , - 4289 , - 3242 , - 1055 , - 5328 , - 5421 , - 2854 , - 5227 , - 1900 , - 473 , - 2466 , - 3319 , - 4552 , - 1605 , - 2078 , - 1411 , - 1124 , - 2737 , - 1690 , - 5583 , - 3776 , - 3869 , - 1302 , - 3675 , - 348 , - 5001 , - 914 , - 1767 , - 3000 , - 53 , - 526 , - 5939 , - 5652 , - 1185 , - 138 , - 4031 , - 2224 , - 2317 , - 5830 , - 2123 , - 4876 , - 3449 , - 5442 , - 215 , - 1448 , - 4581 , - 5054 , - 4387 , - 4100 , - 5713 , - 4666 , - 2479 , - 672 , - 765 , - 4278 , - 571 , - 3324 , - 1897 , - 3890 , - 4743 , - 5976 , - 3029 , - 3502 , - 2835 , - 2548 , - 4161 , - 3114 , - 927 , - 5200 , - 5293 , - 2726 , - 5099 , - 1772 , - 345 , - 2338 , - 3191 , - 4424 , - 1477 , - 1950 , - 1283 , - 996 , - 2609 , - 1562 , - 5455 , - 3648 , - 3741 , - 1174 , - 3547 , - 220 , - 4873 , - 786 , - 1639 , - 2872 , - 6005 , - 398 , - 5811 , - 5524 , - 1057 , - 10 , - 3903 , - 2096 , - 2189 , - 5702 , - 1995 , - 4748 , - 3321 , - 5314 , - 87 , - 1320 , - 4453 , - 4926 , - 4259 , - 3972 , - 5585 , - 4538 , - 2351 , - 544 , - 637 , - 4150 , - 443 , - 3196 , - 1769 , - 3762 , - 4615 , - 5848 , - 2901 , - 3374 , - 2707 , - 2420 , - 4033 , - 2986 , - 799 , - 5072 , - 5165 , - 2598 , - 4971 , - 1644 , - 217 , - 2210 , - 3063 , - 4296 , - 1349 , - 1822 , - 1155 , - 868 , - 2481 , - 1434 , - 5327 , - 3520 , - 3613 , - 1046 , - 3419 , - 92 , - 4745 , - 658 , - 1511 , - 2744 , - 5877 , - 270 , - 5683 , - 5396 , - 929 , - 5962 , - 3775 , - 1968 , - 2061 , - 5574 , - 1867 , - 4620 , - 3193 , - 5186 , - 6039 , - 1192 , - 4325 , - 4798 , - 4131 , - 3844 , - 5457 , - 4410 , - 2223 , - 416 , - 509 , - 4022 , - 315 , - 3068 , - 1641 , - 3634 , - 4487 , - 5720 , - 2773 , - 3246 , - 2579 , - 2292 , - 3905 , - 2858 , - 671 , - 4944 , - 5037 , - 2470 , - 4843 , - 1516 , - 89 , - 2082 , - 2935 , - 4168 , - 1221 , - 1694 , - 1027 , - 740 , - 2353 , - 1306 , - 5199 , - 3392 , - 3485 , - 918 , - 3291 , - 6044 , - 4617 , - 530 , - 1383 , - 2616 , - 5749 , - 142 , - 5555 , - 5268 , - 801 , - 5834 , - 3647 , - 1840 , - 1933 , - 5446 , - 1739 , - 4492 , - 3065 , - 5058 , - 5911 , - 1064 , - 4197 , - 4670 , - 4003 , - 3716 , - 5329 , - 4282 , - 2095 , - 288 , - 381 , - 3894 , - 187 , - 2940 , - 1513 , - 3506 , - 4359 , - 5592 , - 2645 , - 3118 , - 2451 , - 2164 , - 3777 , - 2730 , - 543 , - 4816 , - 4909 , - 2342 , - 4715 , - 1388 , - 6041 , - 1954 , - 2807 , - 4040 , - 1093 , - 1566 , - 899 , - 612 , - 2225 , - 1178 , - 5071 , - 3264 , - 3357 , - 790 , - 3163 , - 5916 , - 4489 , - 402 , - 1255 , - 2488 , - 5621 , - 14 , - 5427 , - 5140 , - 673 , - 5706 , - 3519 , - 1712 , - 1805 , - 5318 , - 1611 , - 4364 , - 2937 , - 4930 , - 5783 , - 936 , - 4069 , - 4542 , - 3875 , - 3588 , - 5201 , - 4154 , - 1967 , - 160 , - 253 , - 3766 , - 59 , - 2812 , - 1385 , - 3378 , - 4231 , - 5464 , - 2517 , - 2990 , - 2323 , - 2036 , - 3649 , - 2602 , - 415 , - 4688 , - 4781 , - 2214 , - 4587 , - 1260 , - 5913 , - 1826 , - 2679 , - 3912 , - 965 , - 1438 , - 771 , - 484 , - 2097 , - 1050 , - 4943 , - 3136 , - 3229 , - 662 , - 3035 , - 5788 , - 4361 , - 274 , - 1127 , - 2360 , - 5493 , - 5966 , - 5299 , - 5012 , - 545 , - 5578 , - 3391 , - 1584 , - 1677 , - 5190 , - 1483 , - 4236 , - 2809 , - 4802 , - 5655 , - 808 , - 3941 , - 4414 , - 3747 , - 3460 , - 5073 , - 4026 , - 1839 , - 32 , - 125 , - 3638 , - 6011 , - 2684 , - 1257 , - 3250 , - 4103 , - 5336 , - 2389 , - 2862 , - 2195 , - 1908 , - 3521 , - 2474 , - 287 , - 4560 , - 4653 , - 2086 , - 4459 , - 1132 , - 5785 , - 1698 , - 2551 , - 3784 , - 837 , - 1310 , - 643 , - 356 , - 1969 , - 922 , - 4815 , - 3008 , - 3101 , - 534 , - 2907 , - 5660 , - 4233 , - 146 , - 999 , - 2232 , - 5365 , - 5838 , - 5171 , - 4884 , - 417 , - 5450 , - 3263 , - 1456 , - 1549 , - 5062 , - 1355 , - 4108 , - 2681 , - 4674 , - 5527 , - 680 , - 3813 , - 4286 , - 3619 , - 3332 , - 4945 , - 3898 , - 1711 , - 5984 , - 6077 , - 3510 , - 5883 , - 2556 , - 1129 , - 3122 , - 3975 , - 5208 , - 2261 , - 2734 , - 2067 , - 1780 , - 3393 , - 2346 , - 159 , - 4432 , - 4525 , - 1958 , - 4331 , - 1004 , - 5657 , - 1570 , - 2423 , - 3656 , - 709 , - 1182 , - 515 , - 228 , - 1841 , - 794 , - 4687 , - 2880 , - 2973 , - 406 , - 2779 , - 5532 , - 4105 , - 18 , - 871 , - 2104 , - 5237 , - 5710 , - 5043 , - 4756 , - 289 , - 5322 , - 3135 , - 1328 , - 1421 , - 4934 , - 1227 , - 3980 , - 2553 , - 4546 , - 5399 , - 552 , - 3685 , - 4158 , - 3491 , - 3204 , - 4817 , - 3770 , - 1583 , - 5856 , - 5949 , - 3382 , - 5755 , - 2428 , - 1001 , - 2994 , - 3847 , - 5080 , - 2133 , - 2606 , - 1939 , - 1652 , - 3265 , - 2218 , - 31 , - 4304 , - 4397 , - 1830 , - 4203 , - 876 , - 5529 , - 1442 , - 2295 , - 3528 , - 581 , - 1054 , - 387 , - 100 , - 1713 , - 666 , - 4559 , - 2752 , - 2845 , - 278 , - 2651 , - 5404 , - 3977 , - 5970 , - 743 , - 1976 , - 5109 , - 5582 , - 4915 , - 4628 , - 161 , - 5194 , - 3007 , - 1200 , - 1293 , - 4806 , - 1099 , - 3852 , - 2425 , - 4418 , - 5271 , - 424 , - 3557 , - 4030 , - 3363 , - 3076 , - 4689 , - 3642 , - 1455 , - 5728 , - 5821 , - 3254 , - 5627 , - 2300 , - 873 , - 2866 , - 3719 , - 4952 , - 2005 , - 2478 , - 1811 , - 1524 , - 3137 , - 2090 , - 5983 , - 4176 , - 4269 , - 1702 , - 4075 , - 748 , - 5401 , - 1314 , - 2167 , - 3400 , - 453 , - 926 , - 259 , - 6052 , - 1585 , - 538 , - 4431 , - 2624 , - 2717 , - 150 , - 2523 , - 5276 , - 3849 , - 5842 , - 615 , - 1848 , - 4981 , - 5454 , - 4787 , - 4500 , - 33 , - 5066 , - 2879 , - 1072 , - 1165 , - 4678 , - 971 , - 3724 , - 2297 , - 4290 , - 5143 , - 296 , - 3429 , - 3902 , - 3235 , - 2948 , - 4561 , - 3514 , - 1327 , - 5600 , - 5693 , - 3126 , - 5499 , - 2172 , - 745 , - 2738 , - 3591 , - 4824 , - 1877 , - 2350 , - 1683 , - 1396 , - 3009 , - 1962 , - 5855 , - 4048 , - 4141 , - 1574 , - 3947 , - 620 , - 5273 , - 1186 , - 2039 , - 3272 , - 325 , - 798 , - 131 , - 5924 , - 1457 , - 410 , - 4303 , - 2496 , - 2589 , - 22 , - 2395 , - 5148 , - 3721 , - 5714 , - 487 , - 1720 , - 4853 , - 5326 , - 4659 , - 4372 , - 5985 , - 4938 , - 2751 , - 944 , - 1037 , - 4550 , - 843 , - 3596 , - 2169 , - 4162 , - 5015 , - 168 , - 3301 , - 3774 , - 3107 , - 2820 , - 4433 , - 3386 , - 1199 , - 5472 , - 5565 , - 2998 , - 5371 , - 2044 , - 617 , - 2610 , - 3463 , - 4696 , - 1749 , - 2222 , - 1555 , - 1268 , - 2881 , - 1834 , - 5727 , - 3920 , - 4013 , - 1446 , - 3819 , - 492 , - 5145 , - 1058 , - 1911 , - 3144 , - 197 , - 670 , - 3 , - 5796 , - 1329 , - 282 , - 4175 , - 2368 , - 2461 , - 5974 , - 2267 , - 5020 , - 3593 , - 5586 , - 359 , - 1592 , - 4725 , - 5198 , - 4531 , - 4244 , - 5857 , - 4810 , - 2623 , - 816 , - 909 , - 4422 , - 715 , - 3468 , - 2041 , - 4034 , - 4887 , - 40 , - 3173 , - 3646 , - 2979 , - 2692 , - 4305 , - 3258 , - 1071 , - 5344 , - 5437 , - 2870 , - 5243 , - 1916 , - 489 , - 2482 , - 3335 , - 4568 , - 1621 , - 2094 , - 1427 , - 1140 , - 2753 , - 1706 , - 5599 , - 3792 , - 3885 , - 1318 , - 3691 , - 364 , - 5017 , - 930 , - 1783 , - 3016 , - 69 , - 542 , - 5955 , - 5668 , - 1201 , - 154 , - 4047 , - 2240 , - 2333 , - 5846 , - 2139 , - 4892 , - 3465 , - 5458 , - 231 , - 1464 , - 4597 , - 5070 , - 4403 , - 4116 , - 5729 , - 4682 , - 2495 , - 688 , - 781 , - 4294 , - 587 , - 3340 , - 1913 , - 3906 , - 4759 , - 5992 , - 3045 , - 3518 , - 2851 , - 2564 , - 4177 , - 3130 , - 943 , - 5216 , - 5309 , - 2742 , - 5115 , - 1788 , - 361 , - 2354 , - 3207 , - 4440 , - 1493 , - 1966 , - 1299 , - 1012 , - 2625 , - 1578 , - 5471 , - 3664 , - 3757 , - 1190 , - 3563 , - 236 , - 4889 , - 802 , - 1655 , - 2888 , - 6021 , - 414 , - 5827 , - 5540 , - 1073 , - 26 , - 3919 , - 2112 , - 2205 , - 5718 , - 2011 , - 4764 , - 3337 , - 5330 , - 103 , - 1336 , - 4469 , - 4942 , - 4275 , - 3988 , - 5601 , - 4554 , - 2367 , - 560 , - 653 , - 4166 , - 459 , - 3212 , - 1785 , - 3778 , - 4631 , - 5864 , - 2917 , - 3390 , - 2723 , - 2436 , - 4049 , - 3002 , - 815 , - 5088 , - 5181 , - 2614 , - 4987 , - 1660 , - 233 , - 2226 , - 3079 , - 4312 , - 1365 , - 1838 , - 1171 , - 884 , - 2497 , - 1450 , - 5343 , - 3536 , - 3629 , - 1062 , - 3435 , - 108 , - 4761 , - 674 , - 1527 , - 2760 , - 5893 , - 286 , - 5699 , - 5412 , - 945 , - 5978 , - 3791 , - 1984 , - 2077 , - 5590 , - 1883 , - 4636 , - 3209 , - 5202 , - 6055 , - 1208 , - 4341 , - 4814 , - 4147 , - 3860 , - 5473 , - 4426 , - 2239 , - 432 , - 525 , - 4038 , - 331 , - 3084 , - 1657 , - 3650 , - 4503 , - 5736 , - 2789 , - 3262 , - 2595 , - 2308 , - 3921 , - 2874 , - 687 , - 4960 , - 5053 , - 2486 , - 4859 , - 1532 , - 105 , - 2098 , - 2951 , - 4184 , - 1237 , - 1710 , - 1043 , - 756 , - 2369 , - 1322 , - 5215 , - 3408 , - 3501 , - 934 , - 3307 , - 6060 , - 4633 , - 546 , - 1399 , - 2632 , - 5765 , - 158 , - 5571 , - 5284 , - 817 , - 5850 , - 3663 , - 1856 , - 1949 , - 5462 , - 1755 , - 4508 , - 3081 , - 5074 , - 5927 , - 1080 , - 4213 , - 4686 , - 4019 , - 3732 , - 5345 , - 4298 , - 2111 , - 304 , - 397 , - 3910 , - 203 , - 2956 , - 1529 , - 3522 , - 4375 , - 5608 , - 2661 , - 3134 , - 2467 , - 2180 , - 3793 , - 2746 , - 559 , - 4832 , - 4925 , - 2358 , - 4731 , - 1404 , - 6057 , - 1970 , - 2823 , - 4056 , - 1109 , - 1582 , - 915 , - 628 , - 2241 , - 1194 , - 5087 , - 3280 , - 3373 , - 806 , - 3179 , - 5932 , - 4505 , - 418 , - 1271 , - 2504 , - 5637 , - 30 , - 5443 , - 5156 , - 689 , - 5722 , - 3535 , - 1728 , - 1821 , - 5334 , - 1627 , - 4380 , - 2953 , - 4946 , - 5799 , - 952 , - 4085 , - 4558 , - 3891 , - 3604 , - 5217 , - 4170 , - 1983 , - 176 , - 269 , - 3782 , - 75 , - 2828 , - 1401 , - 3394 , - 4247 , - 5480 , - 2533 , - 3006 , - 2339 , - 2052 , - 3665 , - 2618 , - 431 , - 4704 , - 4797 , - 2230 , - 4603 , - 1276 , - 5929 , - 1842 , - 2695 , - 3928 , - 981 , - 1454 , - 787 , - 500 , - 2113 , - 1066 , - 4959 , - 3152 , - 3245 , - 678 , - 3051 , - 5804 , - 4377 , - 290 , - 1143 , - 2376 , - 5509 , - 5982 , - 5315 , - 5028 , - 561 , - 5594 , - 3407 , - 1600 , - 1693 , - 5206 , - 1499 , - 4252 , - 2825 , - 4818 , - 5671 , - 824 , - 3957 , - 4430 , - 3763 , - 3476 , - 5089 , - 4042 , - 1855 , - 48 , - 141 , - 3654 , - 6027 , - 2700 , - 1273 , - 3266 , - 4119 , - 5352 , - 2405 , - 2878 , - 2211 , - 1924 , - 3537 , - 2490 , - 303 , - 4576 , - 4669 , - 2102 , - 4475 , - 1148 , - 5801 , - 1714 , - 2567 , - 3800 , - 853 , - 1326 , - 659 , - 372 , - 1985 , - 938 , - 4831 , - 3024 , - 3117 , - 550 , - 2923 , - 5676 , - 4249 , - 162 , - 1015 , - 2248 , - 5381 , - 5854 , - 5187 , - 4900 , - 433 , - 5466 , - 3279 , - 1472 , - 1565 , - 5078 , - 1371 , - 4124 , - 2697 , - 4690 , - 5543 , - 696 , - 3829 , - 4302 , - 3635 , - 3348 , - 4961 , - 3914 , - 1727 , - 6000 , - 13 , - 3526 , - 5899 , - 2572 , - 1145 , - 3138 , - 3991 , - 5224 , - 2277 , - 2750 , - 2083 , - 1796 , - 3409 , - 2362 , - 175 , - 4448 , - 4541 , - 1974 , - 4347 , - 1020 , - 5673 , - 1586 , - 2439 , - 3672 , - 725 , - 1198 , - 531 , - 244 , - 1857 , - 810 , - 4703 , - 2896 , - 2989 , - 422 , - 2795 , - 5548 , - 4121 , - 34 , - 887 , - 2120 , - 5253 , - 5726 , - 5059 , - 4772 , - 305 , - 5338 , - 3151 , - 1344 , - 1437 , - 4950 , - 1243 , - 3996 , - 2569 , - 4562 , - 5415 , - 568 , - 3701 , - 4174 , - 3507 , - 3220 , - 4833 , - 3786 , - 1599 , - 5872 , - 5965 , - 3398 , - 5771 , - 2444 , - 1017 , - 3010 , - 3863 , - 5096 , - 2149 , - 2622 , - 1955 , - 1668 , - 3281 , - 2234 , - 47 , - 4320 , - 4413 , - 1846 , - 4219 , - 892 , - 5545 , - 1458 , - 2311 , - 3544 , - 597 , - 1070 , - 403 , - 116 , - 1729 , - 682 , - 4575 , - 2768 , - 2861 , - 294 , - 2667 , - 5420 , - 3993 , - 5986 , - 759 , - 1992 , - 5125 , - 5598 , - 4931 , - 4644 , - 177 , - 5210 , - 3023 , - 1216 , - 1309 , - 4822 , - 1115 , - 3868 , - 2441 , - 4434 , - 5287 , - 440 , - 3573 , - 4046 , - 3379 , - 3092 , - 4705 , - 3658 , - 1471 , - 5744 , - 5837 , - 3270 , - 5643 , - 2316 , - 889 , - 2882 , - 3735 , - 4968 , - 2021 , - 2494 , - 1827 , - 1540 , - 3153 , - 2106 , - 5999 , - 4192 , - 4285 , - 1718 , - 4091 , - 764 , - 5417 , - 1330 , - 2183 , - 3416 , - 469 , - 942 , - 275 , - 6068 , - 1601 , - 554 , - 4447 , - 2640 , - 2733 , - 166 , - 2539 , - 5292 , - 3865 , - 5858 , - 631 , - 1864 , - 4997 , - 5470 , - 4803 , - 4516 , - 49 , - 5082 , - 2895 , - 1088 , - 1181 , - 4694 , - 987 , - 3740 , - 2313 , - 4306 , - 5159 , - 312 , - 3445 , - 3918 , - 3251 , - 2964 , - 4577 , - 3530 , - 1343 , - 5616 , - 5709 , - 3142 , - 5515 , - 2188 , - 761 , - 2754 , - 3607 , - 4840 , - 1893 , - 2366 , - 1699 , - 1412 , - 3025 , - 1978 , - 5871 , - 4064 , - 4157 , - 1590 , - 3963 , - 636 , - 5289 , - 1202 , - 2055 , - 3288 , - 341 , - 814 , - 147 , - 5940 , - 1473 , - 426 , - 4319 , - 2512 , - 2605 , - 38 , - 2411 , - 5164 , - 3737 , - 5730 , - 503 , - 1736 , - 4869 , - 5342 , - 4675 , - 4388 , - 6001 , - 4954 , - 2767 , - 960 , - 1053 , - 4566 , - 859 , - 3612 , - 2185 , - 4178 , - 5031 , - 184 , - 3317 , - 3790 , - 3123 , - 2836 , - 4449 , - 3402 , - 1215 , - 5488 , - 5581 , - 3014 , - 5387 , - 2060 , - 633 , - 2626 , - 3479 , - 4712 , - 1765 , - 2238 , - 1571 , - 1284 , - 2897 , - 1850 , - 5743 , - 3936 , - 4029 , - 1462 , - 3835 , - 508 , - 5161 , - 1074 , - 1927 , - 3160 , - 213 , - 686 , - 19 , - 5812 , - 1345 , - 298 , - 4191 , - 2384 , - 2477 , - 5990 , - 2283 , - 5036 , - 3609 , - 5602 , - 375 , - 1608 , - 4741 , - 5214 , - 4547 , - 4260 , - 5873 , - 4826 , - 2639 , - 832 , - 925 , - 4438 , - 731 , - 3484 , - 2057 , - 4050 , - 4903 , - 56 , - 3189 , - 3662 , - 2995 , - 2708 , - 4321 , - 3274 , - 1087 , - 5360 , - 5453 , - 2886 , - 5259 , - 1932 , - 505 , - 2498 , - 3351 , - 4584 , - 1637 , - 2110 , - 1443 , - 1156 , - 2769 , - 1722 , - 5615 , - 3808 , - 3901 , - 1334 , - 3707 , - 380 , - 5033 , - 946 , - 1799 , - 3032 , - 85 , - 558 , - 5971 , - 5684 , - 1217 , - 170 , - 4063 , - 2256 , - 2349 , - 5862 , - 2155 , - 4908 , - 3481 , - 5474 , - 247 , - 1480 , - 4613 , - 5086 , - 4419 , - 4132 , - 5745 , - 4698 , - 2511 , - 704 , - 797 , - 4310 , - 603 , - 3356 , - 1929 , - 3922 , - 4775 , - 6008 , - 3061 , - 3534 , - 2867 , - 2580 , - 4193 , - 3146 , - 959 , - 5232 , - 5325 , - 2758 , - 5131 , - 1804 , - 377 , - 2370 , - 3223 , - 4456 , - 1509 , - 1982 , - 1315 , - 1028 , - 2641 , - 1594 , - 5487 , - 3680 , - 3773 , - 1206 , - 3579 , - 252 , - 4905 , - 818 , - 1671 , - 2904 , - 6037 , - 430 , - 5843 , - 5556 , - 1089 , - 42 , - 3935 , - 2128 , - 2221 , - 5734 , - 2027 , - 4780 , - 3353 , - 5346 , - 119 , - 1352 , - 4485 , - 4958 , - 4291 , - 4004 , - 5617 , - 4570 , - 2383 , - 576 , - 669 , - 4182 , - 475 , - 3228 , - 1801 , - 3794 , - 4647 , - 5880 , - 2933 , - 3406 , - 2739 , - 2452 , - 4065 , - 3018 , - 831 , - 5104 , - 5197 , - 2630 , - 5003 , - 1676 , - 249 , - 2242 , - 3095 , - 4328 , - 1381 , - 1854 , - 1187 , - 900 , - 2513 , - 1466 , - 5359 , - 3552 , - 3645 , - 1078 , - 3451 , - 124 , - 4777 , - 690 , - 1543 , - 2776 , - 5909 , - 302 , - 5715 , - 5428 , - 961 , - 5994 , - 3807 , - 2000 , - 2093 , - 5606 , - 1899 , - 4652 , - 3225 , - 5218 , - 6071 , - 1224 , - 4357 , - 4830 , - 4163 , - 3876 , - 5489 , - 4442 , - 2255 , - 448 , - 541 , - 4054 , - 347 , - 3100 , - 1673 , - 3666 , - 4519 , - 5752 , - 2805 , - 3278 , - 2611 , - 2324 , - 3937 , - 2890 , - 703 , - 4976 , - 5069 , - 2502 , - 4875 , - 1548 , - 121 , - 2114 , - 2967 , - 4200 , - 1253 , - 1726 , - 1059 , - 772 , - 2385 , - 1338 , - 5231 , - 3424 , - 3517 , - 950 , - 3323 , - 6076 , - 4649 , - 562 , - 1415 , - 2648 , - 5781 , - 174 , - 5587 , - 5300 , - 833 , - 5866 , - 3679 , - 1872 , - 1965 , - 5478 , - 1771 , - 4524 , - 3097 , - 5090 , - 5943 , - 1096 , - 4229 , - 4702 , - 4035 , - 3748 , - 5361 , - 4314 , - 2127 , - 320 , - 413 , - 3926 , - 219 , - 2972 , - 1545 , - 3538 , - 4391 , - 5624 , - 2677 , - 3150 , - 2483 , - 2196 , - 3809 , - 2762 , - 575 , - 4848 , - 4941 , - 2374 , - 4747 , - 1420 , - 6073 , - 1986 , - 2839 , - 4072 , - 1125 , - 1598 , - 931 , - 644 , - 2257 , - 1210 , - 5103 , - 3296 , - 3389 , - 822 , - 3195 , - 5948 , - 4521 , - 434 , - 1287 , - 2520 , - 5653 , - 46 , - 5459 , - 5172 , - 705 , - 5738 , - 3551 , - 1744 , - 1837 , - 5350 , - 1643 , - 4396 , - 2969 , - 4962 , - 5815 , - 968 , - 4101 , - 4574 , - 3907 , - 3620 , - 5233 , - 4186 , - 1999 , - 192 , - 285 , - 3798 , - 91 , - 2844 , - 1417 , - 3410 , - 4263 , - 5496 , - 2549 , - 3022 , - 2355 , - 2068 , - 3681 , - 2634 , - 447 , - 4720 , - 4813 , - 2246 , - 4619 , - 1292 , - 5945 , - 1858 , - 2711 , - 3944 , - 997 , - 1470 , - 803 , - 516 , - 2129 , - 1082 , - 4975 , - 3168 , - 3261 , - 694 , - 3067 , - 5820 , - 4393 , - 306 , - 1159 , - 2392 , - 5525 , - 5998 , - 5331 , - 5044 , - 577 , - 5610 , - 3423 , - 1616 , - 1709 , - 5222 , - 1515 , - 4268 , - 2841 , - 4834 , - 5687 , - 840 , - 3973 , - 4446 , - 3779 , - 3492 , - 5105 , - 4058 , - 1871 , - 64 , - 157 , - 3670 , - 6043 , - 2716 , - 1289 , - 3282 , - 4135 , - 5368 , - 2421 , - 2894 , - 2227 , - 1940 , - 3553 , - 2506 , - 319 , - 4592 , - 4685 , - 2118 , - 4491 , - 1164 , - 5817 , - 1730 , - 2583 , - 3816 , - 869 , - 1342 , - 675 , - 388 , - 2001 , - 954 , - 4847 , - 3040 , - 3133 , - 566 , - 2939 , - 5692 , - 4265 , - 178 , - 1031 , - 2264 , - 5397 , - 5870 , - 5203 , - 4916 , - 449 , - 5482 , - 3295 , - 1488 , - 1581 , - 5094 , - 1387 , - 4140 , - 2713 , - 4706 , - 5559 , - 712 , - 3845 , - 4318 , - 3651 , - 3364 , - 4977 , - 3930 , - 1743 , - 6016 , - 29 , - 3542 , - 5915 , - 2588 , - 1161 , - 3154 , - 4007 , - 5240 , - 2293 , - 2766 , - 2099 , - 1812 , - 3425 , - 2378 , - 191 , - 4464 , - 4557 , - 1990 , - 4363 , - 1036 , - 5689 , - 1602 , - 2455 , - 3688 , - 741 , - 1214 , - 547 , - 260 , - 1873 , - 826 , - 4719 , - 2912 , - 3005 , - 438 , - 2811 , - 5564 , - 4137 , - 50 , - 903 , - 2136 , - 5269 , - 5742 , - 5075 , - 4788 , - 321 , - 5354 , - 3167 , - 1360 , - 1453 , - 4966 , - 1259 , - 4012 , - 2585 , - 4578 , - 5431 , - 584 , - 3717 , - 4190 , - 3523 , - 3236 , - 4849 , - 3802 , - 1615 , - 5888 , - 5981 , - 3414 , - 5787 , - 2460 , - 1033 , - 3026 , - 3879 , - 5112 , - 2165 , - 2638 , - 1971 , - 1684 , - 3297 , - 2250 , - 63 , - 4336 , - 4429 , - 1862 , - 4235 , - 908 , - 5561 , - 1474 , - 2327 , - 3560 , - 613 , - 1086 , - 419 , - 132 , - 1745 , - 698 , - 4591 , - 2784 , - 2877 , - 310 , - 2683 , - 5436 , - 4009 , - 6002 , - 775 , - 2008 , - 5141 , - 5614 , - 4947 , - 4660 , - 193 , - 5226 , - 3039 , - 1232 , - 1325 , - 4838 , - 1131 , - 3884 , - 2457 , - 4450 , - 5303 , - 456 , - 3589 , - 4062 , - 3395 , - 3108 , - 4721 , - 3674 , - 1487 , - 5760 , - 5853 , - 3286 , - 5659 , - 2332 , - 905 , - 2898 , - 3751 , - 4984 , - 2037 , - 2510 , - 1843 , - 1556 , - 3169 , - 2122 , - 6015 , - 4208 , - 4301 , - 1734 , - 4107 , - 780 , - 5433 , - 1346 , - 2199 , - 3432 , - 485 , - 958 , - 291 , - 4 , - 1617 , - 570 , - 4463 , - 2656 , - 2749 , - 182 , - 2555 , - 5308 , - 3881 , - 5874 , - 647 , - 1880 , - 5013 , - 5486 , - 4819 , - 4532 , - 65 , - 5098 , - 2911 , - 1104 , - 1197 , - 4710 , - 1003 , - 3756 , - 2329 , - 4322 , - 5175 , - 328 , - 3461 , - 3934 , - 3267 , - 2980 , - 4593 , - 3546 , - 1359 , - 5632 , - 5725 , - 3158 , - 5531 , - 2204 , - 777 , - 2770 , - 3623 , - 4856 , - 1909 , - 2382 , - 1715 , - 1428 , - 3041 , - 1994 , - 5887 , - 4080 , - 4173 , - 1606 , - 3979 , - 652 , - 5305 , - 1218 , - 2071 , - 3304 , - 357 , - 830 , - 163 , - 5956 , - 1489 , - 442 , - 4335 , - 2528 , - 2621 , - 54 , - 2427 , - 5180 , - 3753 , - 5746 , - 519 , - 1752 , - 4885 , - 5358 , - 4691 , - 4404 , - 6017 , - 4970 , - 2783 , - 976 , - 1069 , - 4582 , - 875 , - 3628 , - 2201 , - 4194 , - 5047 , - 200 , - 3333 , - 3806 , - 3139 , - 2852 , - 4465 , - 3418 , - 1231 , - 5504 , - 5597 , - 3030 , - 5403 , - 2076 , - 649 , - 2642 , - 3495 , - 4728 , - 1781 , - 2254 , - 1587 , - 1300 , - 2913 , - 1866 , - 5759 , - 3952 , - 4045 , - 1478 , - 3851 , - 524 , - 5177 , - 1090 , - 1943 , - 3176 , - 229 , - 702 , - 35 , - 5828 , - 1361 , - 314 , - 4207 , - 2400 , - 2493 , - 6006 , - 2299 , - 5052 , - 3625 , - 5618 , - 391 , - 1624 , - 4757 , - 5230 , - 4563 , - 4276 , - 5889 , - 4842 , - 2655 , - 848 , - 941 , - 4454 , - 747 , - 3500 , - 2073 , - 4066 , - 4919 , - 72 , - 3205 , - 3678 , - 3011 , - 2724 , - 4337 , - 3290 , - 1103 , - 5376 , - 5469 , - 2902 , - 5275 , - 1948 , - 521 , - 2514 , - 3367 , - 4600 , - 1653 , - 2126 , - 1459 , - 1172 , - 2785 , - 1738 , - 5631 , - 3824 , - 3917 , - 1350 , - 3723 , - 396 , - 5049 , - 962 , - 1815 , - 3048 , - 101 , - 574 , - 5987 , - 5700 , - 1233 , - 186 , - 4079 , - 2272 , - 2365 , - 5878 , - 2171 , - 4924 , - 3497 , - 5490 , - 263 , - 1496 , - 4629 , - 5102 , - 4435 , - 4148 , - 5761 , - 4714 , - 2527 , - 720 , - 813 , - 4326 , - 619 , - 3372 , - 1945 , - 3938 , - 4791 , - 6024 , - 3077 , - 3550 , - 2883 , - 2596 , - 4209 , - 3162 , - 975 , - 5248 , - 5341 , - 2774 , - 5147 , - 1820 , - 393 , - 2386 , - 3239 , - 4472 , - 1525 , - 1998 , - 1331 , - 1044 , - 2657 , - 1610 , - 5503 , - 3696 , - 3789 , - 1222 , - 3595 , - 268 , - 4921 , - 834 , - 1687 , - 2920 , - 6053 , - 446 , - 5859 , - 5572 , - 1105 , - 58 , - 3951 , - 2144 , - 2237 , - 5750 , - 2043 , - 4796 , - 3369 , - 5362 , - 135 , - 1368 , - 4501 , - 4974 , - 4307 , - 4020 , - 5633 , - 4586 , - 2399 , - 592 , - 685 , - 4198 , - 491 , - 3244 , - 1817 , - 3810 , - 4663 , - 5896 , - 2949 , - 3422 , - 2755 , - 2468 , - 4081 , - 3034 , - 847 , - 5120 , - 5213 , - 2646 , - 5019 , - 1692 , - 265 , - 2258 , - 3111 , - 4344 , - 1397 , - 1870 , - 1203 , - 916 , - 2529 , - 1482 , - 5375 , - 3568 , - 3661 , - 1094 , - 3467 , - 140 , - 4793 , - 706 , - 1559 , - 2792 , - 5925 , - 318 , - 5731 , - 5444 , - 977 , - 6010 , - 3823 , - 2016 , - 2109 , - 5622 , - 1915 , - 4668 , - 3241 , - 5234 , - 7 , - 1240 , - 4373 , - 4846 , - 4179 , - 3892 , - 5505 , - 4458 , - 2271 , - 464 , - 557 , - 4070 , - 363 , - 3116 , - 1689 , - 3682 , - 4535 , - 5768 , - 2821 , - 3294 , - 2627 , - 2340 , - 3953 , - 2906 , - 719 , - 4992 , - 5085 , - 2518 , - 4891 , - 1564 , - 137 , - 2130 , - 2983 , - 4216 , - 1269 , - 1742 , - 1075 , - 788 , - 2401 , - 1354 , - 5247 , - 3440 , - 3533 , - 966 , - 3339 , - 12 , - 4665 , - 578 , - 1431 , - 2664 , - 5797 , - 190 , - 5603 , - 5316 , - 849 , - 5882 , - 3695 , - 1888 , - 1981 , - 5494 , - 1787 , - 4540 , - 3113 , - 5106 , - 5959 , - 1112 , - 4245 , - 4718 , - 4051 , - 3764 , - 5377 , - 4330 , - 2143 , - 336 , - 429 , - 3942 , - 235 , - 2988 , - 1561 , - 3554 , - 4407 , - 5640 , - 2693 , - 3166 , - 2499 , - 2212 , - 3825 , - 2778 , - 591 , - 4864 , - 4957 , - 2390 , - 4763 , - 1436 , - 9 , - 2002 , - 2855 , - 4088 , - 1141 , - 1614 , - 947 , - 660 , - 2273 , - 1226 , - 5119 , - 3312 , - 3405 , - 838 , - 3211 , - 5964 , - 4537 , - 450 , - 1303 , - 2536 , - 5669 , - 62 , - 5475 , - 5188 , - 721 , - 5754 , - 3567 , - 1760 , - 1853 , - 5366 , - 1659 , - 4412 , - 2985 , - 4978 , - 5831 , - 984 , - 4117 , - 4590 , - 3923 , - 3636 , - 5249 , - 4202 , - 2015 , - 208 , - 301 , - 3814 , - 107 , - 2860 , - 1433 , - 3426 , - 4279 , - 5512 , - 2565 , - 3038 , - 2371 , - 2084 , - 3697 , - 2650 , - 463 , - 4736 , - 4829 , - 2262 , - 4635 , - 1308 , - 5961 , - 1874 , - 2727 , - 3960 , - 1013 , - 1486 , - 819 , - 532 , - 2145 , - 1098 , - 4991 , - 3184 , - 3277 , - 710 , - 3083 , - 5836 , - 4409 , - 322 , - 1175 , - 2408 , - 5541 , - 6014 , - 5347 , - 5060 , - 593 , - 5626 , - 3439 , - 1632 , - 1725 , - 5238 , - 1531 , - 4284 , - 2857 , - 4850 , - 5703 , - 856 , - 3989 , - 4462 , - 3795 , - 3508 , - 5121 , - 4074 , - 1887 , - 80 , - 173 , - 3686 , - 6059 , - 2732 , - 1305 , - 3298 , - 4151 , - 5384 , - 2437 , - 2910 , - 2243 , - 1956 , - 3569 , - 2522 , - 335 , - 4608 , - 4701 , - 2134 , - 4507 , - 1180 , - 5833 , - 1746 , - 2599 , - 3832 , - 885 , - 1358 , - 691 , - 404 , - 2017 , - 970 , - 4863 , - 3056 , - 3149 , - 582 , - 2955 , - 5708 , - 4281 , - 194 , - 1047 , - 2280 , - 5413 , - 5886 , - 5219 , - 4932 , - 465 , - 5498 , - 3311 , - 1504 , - 1597 , - 5110 , - 1403 , - 4156 , - 2729 , - 4722 , - 5575 , - 728 , - 3861 , - 4334 , - 3667 , - 3380 , - 4993 , - 3946 , - 1759 , - 6032 , - 45 , - 3558 , - 5931 , - 2604 , - 1177 , - 3170 , - 4023 , - 5256 , - 2309 , - 2782 , - 2115 , - 1828 , - 3441 , - 2394 , - 207 , - 4480 , - 4573 , - 2006 , - 4379 , - 1052 , - 5705 , - 1618 , - 2471 , - 3704 , - 757 , - 1230 , - 563 , - 276 , - 1889 , - 842 , - 4735 , - 2928 , - 3021 , - 454 , - 2827 , - 5580 , - 4153 , - 66 , - 919 , - 2152 , - 5285 , - 5758 , - 5091 , - 4804 , - 337 , - 5370 , - 3183 , - 1376 , - 1469 , - 4982 , - 1275 , - 4028 , - 2601 , - 4594 , - 5447 , - 600 , - 3733 , - 4206 , - 3539 , - 3252 , - 4865 , - 3818 , - 1631 , - 5904 , - 5997 , - 3430 , - 5803 , - 2476 , - 1049 , - 3042 , - 3895 , - 5128 , - 2181 , - 2654 , - 1987 , - 1700 , - 3313 , - 2266 , - 79 , - 4352 , - 4445 , - 1878 , - 4251 , - 924 , - 5577 , - 1490 , - 2343 , - 3576 , - 629 , - 1102 , - 435 , - 148 , - 1761 , - 714 , - 4607 , - 2800 , - 2893 , - 326 , - 2699 , - 5452 , - 4025 , - 6018 , - 791 , - 2024 , - 5157 , - 5630 , - 4963 , - 4676 , - 209 , - 5242 , - 3055 , - 1248 , - 1341 , - 4854 , - 1147 , - 3900 , - 2473 , - 4466 , - 5319 , - 472 , - 3605 , - 4078 , - 3411 , - 3124 , - 4737 , - 3690 , - 1503 , - 5776 , - 5869 , - 3302 , - 5675 , - 2348 , - 921 , - 2914 , - 3767 , - 5000 , - 2053 , - 2526 , - 1859 , - 1572 , - 3185 , - 2138 , - 6031 , - 4224 , - 4317 , - 1750 , - 4123 , - 796 , - 5449 , - 1362 , - 2215 , - 3448 , - 501 , - 974 , - 307 , - 20 , - 1633 , - 586 , - 4479 , - 2672 , - 2765 , - 198 , - 2571 , - 5324 , - 3897 , - 5890 , - 663 , - 1896 , - 5029 , - 5502 , - 4835 , - 4548 , - 81 , - 5114 , - 2927 , - 1120 , - 1213 , - 4726 , - 1019 , - 3772 , - 2345 , - 4338 , - 5191 , - 344 , - 3477 , - 3950 , - 3283 , - 2996 , - 4609 , - 3562 , - 1375 , - 5648 , - 5741 , - 3174 , - 5547 , - 2220 , - 793 , - 2786 , - 3639 , - 4872 , - 1925 , - 2398 , - 1731 , - 1444 , - 3057 , - 2010 , - 5903 , - 4096 , - 4189 , - 1622 , - 3995 , - 668 , - 5321 , - 1234 , - 2087 , - 3320 , - 373 , - 846 , - 179 , - 5972 , - 1505 , - 458 , - 4351 , - 2544 , - 2637 , - 70 , - 2443 , - 5196 , - 3769 , - 5762 , - 535 , - 1768 , - 4901 , - 5374 , - 4707 , - 4420 , - 6033 , - 4986 , - 2799 , - 992 , - 1085 , - 4598 , - 891 , - 3644 , - 2217 , - 4210 , - 5063 , - 216 , - 3349 , - 3822 , - 3155 , - 2868 , - 4481 , - 3434 , - 1247 , - 5520 , - 5613 , - 3046 , - 5419 , - 2092 , - 665 , - 2658 , - 3511 , - 4744 , - 1797 , - 2270 , - 1603 , - 1316 , - 2929 , - 1882 , - 5775 , - 3968 , - 4061 , - 1494 , - 3867 , - 540 , - 5193 , - 1106 , - 1959 , - 3192 , - 245 , - 718 , - 51 , - 5844 , - 1377 , - 330 , - 4223 , - 2416 , - 2509 , - 6022 , - 2315 , - 5068 , - 3641 , - 5634 , - 407 , - 1640 , - 4773 , - 5246 , - 4579 , - 4292 , - 5905 , - 4858 , - 2671 , - 864 , - 957 , - 4470 , - 763 , - 3516 , - 2089 , - 4082 , - 4935 , - 88 , - 3221 , - 3694 , - 3027 , - 2740 , - 4353 , - 3306 , - 1119 , - 5392 , - 5485 , - 2918 , - 5291 , - 1964 , - 537 , - 2530 , - 3383 , - 4616 , - 1669 , - 2142 , - 1475 , - 1188 , - 2801 , - 1754 , - 5647 , - 3840 , - 3933 , - 1366 , - 3739 , - 412 , - 5065 , - 978 , - 1831 , - 3064 , - 117 , - 590 , - 6003 , - 5716 , - 1249 , - 202 , - 4095 , - 2288 , - 2381 , - 5894 , - 2187 , - 4940 , - 3513 , - 5506 , - 279 , - 1512 , - 4645 , - 5118 , - 4451 , - 4164 , - 5777 , - 4730 , - 2543 , - 736 , - 829 , - 4342 , - 635 , - 3388 , - 1961 , - 3954 , - 4807 , - 6040 , - 3093 , - 3566 , - 2899 , - 2612 , - 4225 , - 3178 , - 991 , - 5264 , - 5357 , - 2790 , - 5163 , - 1836 , - 409 , - 2402 , - 3255 , - 4488 , - 1541 , - 2014 , - 1347 , - 1060 , - 2673 , - 1626 , - 5519 , - 3712 , - 3805 , - 1238 , - 3611 , - 284 , - 4937 , - 850 , - 1703 , - 2936 , - 6069 , - 462 , - 5875 , - 5588 , - 1121 , - 74 , - 3967 , - 2160 , - 2253 , - 5766 , - 2059 , - 4812 , - 3385 , - 5378 , - 151 , - 1384 , - 4517 , - 4990 , - 4323 , - 4036 , - 5649 , - 4602 , - 2415 , - 608 , - 701 , - 4214 , - 507 , - 3260 , - 1833 , - 3826 , - 4679 , - 5912 , - 2965 , - 3438 , - 2771 , - 2484 , - 4097 , - 3050 , - 863 , - 5136 , - 5229 , - 2662 , - 5035 , - 1708 , - 281 , - 2274 , - 3127 , - 4360 , - 1413 , - 1886 , - 1219 , - 932 , - 2545 , - 1498 , - 5391 , - 3584 , - 3677 , - 1110 , - 3483 , - 156 , - 4809 , - 722 , - 1575 , - 2808 , - 5941 , - 334 , - 5747 , - 5460 , - 993 , - 6026 , - 3839 , - 2032 , - 2125 , - 5638 , - 1931 , - 4684 , - 3257 , - 5250 , - 23 , - 1256 , - 4389 , - 4862 , - 4195 , - 3908 , - 5521 , - 4474 , - 2287 , - 480 , - 573 , - 4086 , - 379 , - 3132 , - 1705 , - 3698 , - 4551 , - 5784 , - 2837 , - 3310 , - 2643 , - 2356 , - 3969 , - 2922 , - 735 , - 5008 , - 5101 , - 2534 , - 4907 , - 1580 , - 153 , - 2146 , - 2999 , - 4232 , - 1285 , - 1758 , - 1091 , - 804 , - 2417 , - 1370 , - 5263 , - 3456 , - 3549 , - 982 , - 3355 , - 28 , - 4681 , - 594 , - 1447 , - 2680 , - 5813 , - 206 , - 5619 , - 5332 , - 865 , - 5898 , - 3711 , - 1904 , - 1997 , - 5510 , - 1803 , - 4556 , - 3129 , - 5122 , - 5975 , - 1128 , - 4261 , - 4734 , - 4067 , - 3780 , - 5393 , - 4346 , - 2159 , - 352 , - 445 , - 3958 , - 251 , - 3004 , - 1577 , - 3570 , - 4423 , - 5656 , - 2709 , - 3182 , - 2515 , - 2228 , - 3841 , - 2794 , - 607 , - 4880 , - 4973 , - 2406 , - 4779 , - 1452 , - 25 , - 2018 , - 2871 , - 4104 , - 1157 , - 1630 , - 963 , - 676 , - 2289 , - 1242 , - 5135 , - 3328 , - 3421 , - 854 , - 3227 , - 5980 , - 4553 , - 466 , - 1319 , - 2552 , - 5685 , - 78 , - 5491 , - 5204 , - 737 , - 5770 , - 3583 , - 1776 , - 1869 , - 5382 , - 1675 , - 4428 , - 3001 , - 4994 , - 5847 , - 1000 , - 4133 , - 4606 , - 3939 , - 3652 , - 5265 , - 4218 , - 2031 , - 224 , - 317 , - 3830 , - 123 , - 2876 , - 1449 , - 3442 , - 4295 , - 5528 , - 2581 , - 3054 , - 2387 , - 2100 , - 3713 , - 2666 , - 479 , - 4752 , - 4845 , - 2278 , - 4651 , - 1324 , - 5977 , - 1890 , - 2743 , - 3976 , - 1029 , - 1502 , - 835 , - 548 , - 2161 , - 1114 , - 5007 , - 3200 , - 3293 , - 726 , - 3099 , - 5852 , - 4425 , - 338 , - 1191 , - 2424 , - 5557 , - 6030 , - 5363 , - 5076 , - 609 , - 5642 , - 3455 , - 1648 , - 1741 , - 5254 , - 1547 , - 4300 , - 2873 , - 4866 , - 5719 , - 872 , - 4005 , - 4478 , - 3811 , - 3524 , - 5137 , - 4090 , - 1903 , - 96 , - 189 , - 3702 , - 6075 , - 2748 , - 1321 , - 3314 , - 4167 , - 5400 , - 2453 , - 2926 , - 2259 , - 1972 , - 3585 , - 2538 , - 351 , - 4624 , - 4717 , - 2150 , - 4523 , - 1196 , - 5849 , - 1762 , - 2615 , - 3848 , - 901 , - 1374 , - 707 , - 420 , - 2033 , - 986 , - 4879 , - 3072 , - 3165 , - 598 , - 2971 , - 5724 , - 4297 , - 210 , - 1063 , - 2296 , - 5429 , - 5902 , - 5235 , - 4948 , - 481 , - 5514 , - 3327 , - 1520 , - 1613 , - 5126 , - 1419 , - 4172 , - 2745 , - 4738 , - 5591 , - 744 , - 3877 , - 4350 , - 3683 , - 3396 , - 5009 , - 3962 , - 1775 , - 6048 , - 61 , - 3574 , - 5947 , - 2620 , - 1193 , - 3186 , - 4039 , - 5272 , - 2325 , - 2798 , - 2131 , - 1844 , - 3457 , - 2410 , - 223 , - 4496 , - 4589 , - 2022 , - 4395 , - 1068 , - 5721 , - 1634 , - 2487 , - 3720 , - 773 , - 1246 , - 579 , - 292 , - 1905 , - 858 , - 4751 , - 2944 , - 3037 , - 470 , - 2843 , - 5596 , - 4169 , - 82 , - 935 , - 2168 , - 5301 , - 5774 , - 5107 , - 4820 , - 353 , - 5386 , - 3199 , - 1392 , - 1485 , - 4998 , - 1291 , - 4044 , - 2617 , - 4610 , - 5463 , - 616 , - 3749 , - 4222 , - 3555 , - 3268 , - 4881 , - 3834 , - 1647 , - 5920 , - 6013 , - 3446 , - 5819 , - 2492 , - 1065 , - 3058 , - 3911 , - 5144 , - 2197 , - 2670 , - 2003 , - 1716 , - 3329 , - 2282 , - 95 , - 4368 , - 4461 , - 1894 , - 4267 , - 940 , - 5593 , - 1506 , - 2359 , - 3592 , - 645 , - 1118 , - 451 , - 164 , - 1777 , - 730 , - 4623 , - 2816 , - 2909 , - 342 , - 2715 , - 5468 , - 4041 , - 6034 , - 807 , - 2040 , - 5173 , - 5646 , - 4979 , - 4692 , - 225 , - 5258 , - 3071 , - 1264 , - 1357 , - 4870 , - 1163 , - 3916 , - 2489 , - 4482 , - 5335 , - 488 , - 3621 , - 4094 , - 3427 , - 3140 , - 4753 , - 3706 , - 1519 , - 5792 , - 5885 , - 3318 , - 5691 , - 2364 , - 937 , - 2930 , - 3783 , - 5016 , - 2069 , - 2542 , - 1875 , - 1588 , - 3201 , - 2154 , - 6047 , - 4240 , - 4333 , - 1766 , - 4139 , - 812 , - 5465 , - 1378 , - 2231 , - 3464 , - 517 , - 990 , - 323 , - 36 , - 1649 , - 602 , - 4495 , - 2688 , - 2781 , - 214 , - 2587 , - 5340 , - 3913 , - 5906 , - 679 , - 1912 , - 5045 , - 5518 , - 4851 , - 4564 , - 97 , - 5130 , - 2943 , - 1136 , - 1229 , - 4742 , - 1035 , - 3788 , - 2361 , - 4354 , - 5207 , - 360 , - 3493 , - 3966 , - 3299 , - 3012 , - 4625 , - 3578 , - 1391 , - 5664 , - 5757 , - 3190 , - 5563 , - 2236 , - 809 , - 2802 , - 3655 , - 4888 , - 1941 , - 2414 , - 1747 , - 1460 , - 3073 , - 2026 , - 5919 , - 4112 , - 4205 , - 1638 , - 4011 , - 684 , - 5337 , - 1250 , - 2103 , - 3336 , - 389 , - 862 , - 195 , - 5988 , - 1521 , - 474 , - 4367 , - 2560 , - 2653 , - 86 , - 2459 , - 5212 , - 3785 , - 5778 , - 551 , - 1784 , - 4917 , - 5390 , - 4723 , - 4436 , - 6049 , - 5002 , - 2815 , - 1008 , - 1101 , - 4614 , - 907 , - 3660 , - 2233 , - 4226 , - 5079 , - 232 , - 3365 , - 3838 , - 3171 , - 2884 , - 4497 , - 3450 , - 1263 , - 5536 , - 5629 , - 3062 , - 5435 , - 2108 , - 681 , - 2674 , - 3527 , - 4760 , - 1813 , - 2286 , - 1619 , - 1332 , - 2945 , - 1898 , - 5791 , - 3984 , - 4077 , - 1510 , - 3883 , - 556 , - 5209 , - 1122 , - 1975 , - 3208 , - 261 , - 734 , - 67 , - 5860 , - 1393 , - 346 , - 4239 , - 2432 , - 2525 , - 6038 , - 2331 , - 5084 , - 3657 , - 5650 , - 423 , - 1656 , - 4789 , - 5262 , - 4595 , - 4308 , - 5921 , - 4874 , - 2687 , - 880 , - 973 , - 4486 , - 779 , - 3532 , - 2105 , - 4098 , - 4951 , - 104 , - 3237 , - 3710 , - 3043 , - 2756 , - 4369 , - 3322 , - 1135 , - 5408 , - 5501 , - 2934 , - 5307 , - 1980 , - 553 , - 2546 , - 3399 , - 4632 , - 1685 , - 2158 , - 1491 , - 1204 , - 2817 , - 1770 , - 5663 , - 3856 , - 3949 , - 1382 , - 3755 , - 428 , - 5081 , - 994 , - 1847 , - 3080 , - 133 , - 606 , - 6019 , - 5732 , - 1265 , - 218 , - 4111 , - 2304 , - 2397 , - 5910 , - 2203 , - 4956 , - 3529 , - 5522 , - 295 , - 1528 , - 4661 , - 5134 , - 4467 , - 4180 , - 5793 , - 4746 , - 2559 , - 752 , - 845 , - 4358 , - 651 , - 3404 , - 1977 , - 3970 , - 4823 , - 6056 , - 3109 , - 3582 , - 2915 , - 2628 , - 4241 , - 3194 , - 1007 , - 5280 , - 5373 , - 2806 , - 5179 , - 1852 , - 425 , - 2418 , - 3271 , - 4504 , - 1557 , - 2030 , - 1363 , - 1076 , - 2689 , - 1642 , - 5535 , - 3728 , - 3821 , - 1254 , - 3627 , - 300 , - 4953 , - 866 , - 1719 , - 2952 , - 5 , - 478 , - 5891 , - 5604 , - 1137 , - 90 , - 3983 , - 2176 , - 2269 , - 5782 , - 2075 , - 4828 , - 3401 , - 5394 , - 167 , - 1400 , - 4533 , - 5006 , - 4339 , - 4052 , - 5665 , - 4618 , - 2431 , - 624 , - 717 , - 4230 , - 523 , - 3276 , - 1849 , - 3842 , - 4695 , - 5928 , - 2981 , - 3454 , - 2787 , - 2500 , - 4113 , - 3066 , - 879 , - 5152 , - 5245 , - 2678 , - 5051 , - 1724 , - 297 , - 2290 , - 3143 , - 4376 , - 1429 , - 1902 , - 1235 , - 948 , - 2561 , - 1514 , - 5407 , - 3600 , - 3693 , - 1126 , - 3499 , - 172 , - 4825 , - 738 , - 1591 , - 2824 , - 5957 , - 350 , - 5763 , - 5476 , - 1009 , - 6042 , - 3855 , - 2048 , - 2141 , - 5654 , - 1947 , - 4700 , - 3273 , - 5266 , - 39 , - 1272 , - 4405 , - 4878 , - 4211 , - 3924 , - 5537 , - 4490 , - 2303 , - 496 , - 589 , - 4102 , - 395 , - 3148 , - 1721 , - 3714 , - 4567 , - 5800 , - 2853 , - 3326 , - 2659 , - 2372 , - 3985 , - 2938 , - 751 , - 5024 , - 5117 , - 2550 , - 4923 , - 1596 , - 169 , - 2162 , - 3015 , - 4248 , - 1301 , - 1774 , - 1107 , - 820 , - 2433 , - 1386 , - 5279 , - 3472 , - 3565 , - 998 , - 3371 , - 44 , - 4697 , - 610 , - 1463 , - 2696 , - 5829 , - 222 , - 5635 , - 5348 , - 881 , - 5914 , - 3727 , - 1920 , - 2013 , - 5526 , - 1819 , - 4572 , - 3145 , - 5138 , - 5991 , - 1144 , - 4277 , - 4750 , - 4083 , - 3796 , - 5409 , - 4362 , - 2175 , - 368 , - 461 , - 3974 , - 267 , - 3020 , - 1593 , - 3586 , - 4439 , - 5672 , - 2725 , - 3198 , - 2531 , - 2244 , - 3857 , - 2810 , - 623 , - 4896 , - 4989 , - 2422 , - 4795 , - 1468 , - 41 , - 2034 , - 2887 , - 4120 , - 1173 , - 1646 , - 979 , - 692 , - 2305 , - 1258 , - 5151 , - 3344 , - 3437 , - 870 , - 3243 , - 5996 , - 4569 , - 482 , - 1335 , - 2568 , - 5701 , - 94 , - 5507 , - 5220 , - 753 , - 5786 , - 3599 , - 1792 , - 1885 , - 5398 , - 1691 , - 4444 , - 3017 , - 5010 , - 5863 , - 1016 , - 4149 , - 4622 , - 3955 , - 3668 , - 5281 , - 4234 , - 2047 , - 240 , - 333 , - 3846 , - 139 , - 2892 , - 1465 , - 3458 , - 4311 , - 5544 , - 2597 , - 3070 , - 2403 , - 2116 , - 3729 , - 2682 , - 495 , - 4768 , - 4861 , - 2294 , - 4667 , - 1340 , - 5993 , - 1906 , - 2759 , - 3992 , - 1045 , - 1518 , - 851 , - 564 , - 2177 , - 1130 , - 5023 , - 3216 , - 3309 , - 742 , - 3115 , - 5868 , - 4441 , - 354 , - 1207 , - 2440 , - 5573 , - 6046 , - 5379 , - 5092 , - 625 , - 5658 , - 3471 , - 1664 , - 1757 , - 5270 , - 1563 , - 4316 , - 2889 , - 4882 , - 5735 , - 888 , - 4021 , - 4494 , - 3827 , - 3540 , - 5153 , - 4106 , - 1919 , - 112 , - 205 , - 3718 , - 11 , - 2764 , - 1337 , - 3330 , - 4183 , - 5416 , - 2469 , - 2942 , - 2275 , - 1988 , - 3601 , - 2554 , - 367 , - 4640 , - 4733 , - 2166 , - 4539 , - 1212 , - 5865 , - 1778 , - 2631 , - 3864 , - 917 , - 1390 , - 723 , - 436 , - 2049 , - 1002 , - 4895 , - 3088 , - 3181 , - 614 , - 2987 , - 5740 , - 4313 , - 226 , - 1079 , - 2312 , - 5445 , - 5918 , - 5251 , - 4964 , - 497 , - 5530 , - 3343 , - 1536 , - 1629 , - 5142 , - 1435 , - 4188 , - 2761 , - 4754 , - 5607 , - 760 , - 3893 , - 4366 , - 3699 , - 3412 , - 5025 , - 3978 , - 1791 , - 6064 , - 77 , - 3590 , - 5963 , - 2636 , - 1209 , - 3202 , - 4055 , - 5288 , - 2341 , - 2814 , - 2147 , - 1860 , - 3473 , - 2426 , - 239 , - 4512 , - 4605 , - 2038 , - 4411 , - 1084 , - 5737 , - 1650 , - 2503 , - 3736 , - 789 , - 1262 , - 595 , - 308 , - 1921 , - 874 , - 4767 , - 2960 , - 3053 , - 486 , - 2859 , - 5612 , - 4185 , - 98 , - 951 , - 2184 , - 5317 , - 5790 , - 5123 , - 4836 , - 369 , - 5402 , - 3215 , - 1408 , - 1501 , - 5014 , - 1307 , - 4060 , - 2633 , - 4626 , - 5479 , - 632 , - 3765 , - 4238 , - 3571 , - 3284 , - 4897 , - 3850 , - 1663 , - 5936 , - 6029 , - 3462 , - 5835 , - 2508 , - 1081 , - 3074 , - 3927 , - 5160 , - 2213 , - 2686 , - 2019 , - 1732 , - 3345 , - 2298 , - 111 , - 4384 , - 4477 , - 1910 , - 4283 , - 956 , - 5609 , - 1522 , - 2375 , - 3608 , - 661 , - 1134 , - 467 , - 180 , - 1793 , - 746 , - 4639 , - 2832 , - 2925 , - 358 , - 2731 , - 5484 , - 4057 , - 6050 , - 823 , - 2056 , - 5189 , - 5662 , - 4995 , - 4708 , - 241 , - 5274 , - 3087 , - 1280 , - 1373 , - 4886 , - 1179 , - 3932 , - 2505 , - 4498 , - 5351 , - 504 , - 3637 , - 4110 , - 3443 , - 3156 , - 4769 , - 3722 , - 1535 , - 5808 , - 5901 , - 3334 , - 5707 , - 2380 , - 953 , - 2946 , - 3799 , - 5032 , - 2085 , - 2558 , - 1891 , - 1604 , - 3217 , - 2170 , - 6063 , - 4256 , - 4349 , - 1782 , - 4155 , - 828 , - 5481 , - 1394 , - 2247 , - 3480 , - 533 , - 1006 , - 339 , - 52 , - 1665 , - 618 , - 4511 , - 2704 , - 2797 , - 230 , - 2603 , - 5356 , - 3929 , - 5922 , - 695 , - 1928 , - 5061 , - 5534 , - 4867 , - 4580 , - 113 , - 5146 , - 2959 , - 1152 , - 1245 , - 4758 , - 1051 , - 3804 , - 2377 , - 4370 , - 5223 , - 376 , - 3509 , - 3982 , - 3315 , - 3028 , - 4641 , - 3594 , - 1407 , - 5680 , - 5773 , - 3206 , - 5579 , - 2252 , - 825 , - 2818 , - 3671 , - 4904 , - 1957 , - 2430 , - 1763 , - 1476 , - 3089 , - 2042 , - 5935 , - 4128 , - 4221 , - 1654 , - 4027 , - 700 , - 5353 , - 1266 , - 2119 , - 3352 , - 405 , - 878 , - 211 , - 6004 , - 1537 , - 490 , - 4383 , - 2576 , - 2669 , - 102 , - 2475 , - 5228 , - 3801 , - 5794 , - 567 , - 1800 , - 4933 , - 5406 , - 4739 , - 4452 , - 6065 , - 5018 , - 2831 , - 1024 , - 1117 , - 4630 , - 923 , - 3676 , - 2249 , - 4242 , - 5095 , - 248 , - 3381 , - 3854 , - 3187 , - 2900 , - 4513 , - 3466 , - 1279 , - 5552 , - 5645 , - 3078 , - 5451 , - 2124 , - 697 , - 2690 , - 3543 , - 4776 , - 1829 , - 2302 , - 1635 , - 1348 , - 2961 , - 1914 , - 5807 , - 4000 , - 4093 , - 1526 , - 3899 , - 572 , - 5225 , - 1138 , - 1991 , - 3224 , - 277 , - 750 , - 83 , - 5876 , - 1409 , - 362 , - 4255 , - 2448 , - 2541 , - 6054 , - 2347 , - 5100 , - 3673 , - 5666 , - 439 , - 1672 , - 4805 , - 5278 , - 4611 , - 4324 , - 5937 , - 4890 , - 2703 , - 896 , - 989 , - 4502 , - 795 , - 3548 , - 2121 , - 4114 , - 4967 , - 120 , - 3253 , - 3726 , - 3059 , - 2772 , - 4385 , - 3338 , - 1151 , - 5424 , - 5517 , - 2950 , - 5323 , - 1996 , - 569 , - 2562 , - 3415 , - 4648 , - 1701 , - 2174 , - 1507 , - 1220 , - 2833 , - 1786 , - 5679 , - 3872 , - 3965 , - 1398 , - 3771 , - 444 , - 5097 , - 1010 , - 1863 , - 3096 , - 149 , - 622 , - 6035 , - 5748 , - 1281 , - 234 , - 4127 , - 2320 , - 2413 , - 5926 , - 2219 , - 4972 , - 3545 , - 5538 , - 311 , - 1544 , - 4677 , - 5150 , - 4483 , - 4196 , - 5809 , - 4762 , - 2575 , - 768 , - 861 , - 4374 , - 667 , - 3420 , - 1993 , - 3986 , - 4839 , - 6072 , - 3125 , - 3598 , - 2931 , - 2644 , - 4257 , - 3210 , - 1023 , - 5296 , - 5389 , - 2822 , - 5195 , - 1868 , - 441 , - 2434 , - 3287 , - 4520 , - 1573 , - 2046 , - 1379 , - 1092 , - 2705 , - 1658 , - 5551 , - 3744 , - 3837 , - 1270 , - 3643 , - 316 , - 4969 , - 882 , - 1735 , - 2968 , - 21 , - 494 , - 5907 , - 5620 , - 1153 , - 106 , - 3999 , - 2192 , - 2285 , - 5798 , - 2091 , - 4844 , - 3417 , - 5410 , - 183 , - 1416 , - 4549 , - 5022 , - 4355 , - 4068 , - 5681 , - 4634 , - 2447 , - 640 , - 733 , - 4246 , - 539 , - 3292 , - 1865 , - 3858 , - 4711 , - 5944 , - 2997 , - 3470 , - 2803 , - 2516 , - 4129 , - 3082 , - 895 , - 5168 , - 5261 , - 2694 , - 5067 , - 1740 , - 313 , - 2306 , - 3159 , - 4392 , - 1445 , - 1918 , - 1251 , - 964 , - 2577 , - 1530 , - 5423 , - 3616 , - 3709 , - 1142 , - 3515 , - 188 , - 4841 , - 754 , - 1607 , - 2840 , - 5973 , - 366 , - 5779 , - 5492 , - 1025 , - 6058 , - 3871 , - 2064 , - 2157 , - 5670 , - 1963 , - 4716 , - 3289 , - 5282 , - 55 , - 1288 , - 4421 , - 4894 , - 4227 , - 3940 , - 5553 , - 4506 , - 2319 , - 512 , - 605 , - 4118 , - 411 , - 3164 , - 1737 , - 3730 , - 4583 , - 5816 , - 2869 , - 3342 , - 2675 , - 2388 , - 4001 , - 2954 , - 767 , - 5040 , - 5133 , - 2566 , - 4939 , - 1612 , - 185 , - 2178 , - 3031 , - 4264 , - 1317 , - 1790 , - 1123 , - 836 , - 2449 , - 1402 , - 5295 , - 3488 , - 3581 , - 1014 , - 3387 , - 60 , - 4713 , - 626 , - 1479 , - 2712 , - 5845 , - 238 , - 5651 , - 5364 , - 897 , - 5930 , - 3743 , - 1936 , - 2029 , - 5542 , - 1835 , - 4588 , - 3161 , - 5154 , - 6007 , - 1160 , - 4293 , - 4766 , - 4099 , - 3812 , - 5425 , - 4378 , - 2191 , - 384 , - 477 , - 3990 , - 283 , - 3036 , - 1609 , - 3602 , - 4455 , - 5688 , - 2741 , - 3214 , - 2547 , - 2260 , - 3873 , - 2826 , - 639 , - 4912 , - 5005 , - 2438 , - 4811 , - 1484 , - 57 , - 2050 , - 2903 , - 4136 , - 1189 , - 1662 , - 995 , - 708 , - 2321 , - 1274 , - 5167 , - 3360 , - 3453 , - 886 , - 3259 , - 6012 , - 4585 , - 498 , - 1351 , - 2584 , - 5717 , - 110 , - 5523 , - 5236 , - 769 , - 5802 , - 3615 , - 1808 , - 1901 , - 5414 , - 1707 , - 4460 , - 3033 , - 5026 , - 5879 , - 1032 , - 4165 , - 4638 , - 3971 , - 3684 , - 5297 , - 4250 , - 2063 , - 256 , - 349 , - 3862 , - 155 , - 2908 , - 1481 , - 3474 , - 4327 , - 5560 , - 2613 , - 3086 , - 2419 , - 2132 , - 3745 , - 2698 , - 511 , - 4784 , - 4877 , - 2310 , - 4683 , - 1356 , - 6009 , - 1922 , - 2775 , - 4008 , - 1061 , - 1534 , - 867 , - 580 , - 2193 , - 1146 , - 5039 , - 3232 , - 3325 , - 758 , - 3131 , - 5884 , - 4457 , - 370 , - 1223 , - 2456 , - 5589 , - 6062 , - 5395 , - 5108 , - 641 , - 5674 , - 3487 , - 1680 , - 1773 , - 5286 , - 1579 , - 4332 , - 2905 , - 4898 , - 5751 , - 904 , - 4037 , - 4510 , - 3843 , - 3556 , - 5169 , - 4122 , - 1935 , - 128 , - 221 , - 3734 , - 27 , - 2780 , - 1353 , - 3346 , - 4199 , - 5432 , - 2485 , - 2958 , - 2291 , - 2004 , - 3617 , - 2570 , - 383 , - 4656 , - 4749 , - 2182 , - 4555 , - 1228 , - 5881 , - 1794 , - 2647 , - 3880 , - 933 , - 1406 , - 739 , - 452 , - 2065 , - 1018 , - 4911 , - 3104 , - 3197 , - 630 , - 3003 , - 5756 , - 4329 , - 242 , - 1095 , - 2328 , - 5461 , - 5934 , - 5267 , - 4980 , - 513 , - 5546 , - 3359 , - 1552 , - 1645 , - 5158 , - 1451 , - 4204 , - 2777 , - 4770 , - 5623 , - 776 , - 3909 , - 4382 , - 3715 , - 3428 , - 5041 , - 3994 , - 1807 , - 0 , - 5015 , - 3310 , - 1029 , - 4316 , - 883 , - 3018 , - 4577 , - 5560 , - 5967 , - 5798 , - 5053 , - 3732 , - 1835 , - 5506 , - 2457 , - 4976 , - 775 , - 2142 , - 2933 , - 3148 , - 2787 , - 1850 , - 337 , - 4392 , - 1727 , - 4630 , - 813 , - 2564 , - 3739 , - 4338 , - 4361 , - 3808 , - 2679 , - 974 , - 4837 , - 1980 , - 4691 , - 682 , - 2241 , - 3224 , - 3631 , - 3462 , - 2717 , - 1396 , - 5643 , - 3170 , - 121 , - 2640 , - 4583 , - 5950 , - 597 , - 812 , - 451 , - 5658 , - 4145 , - 2056 , - 5535 , - 2294 , - 4621 , - 228 , - 1403 , - 2002 , - 2025 , - 1472 , - 343 , - 4782 , - 2501 , - 5788 , - 2355 , - 4490 , - 6049 , - 888 , - 1295 , - 1126 , - 381 , - 5204 , - 3307 , - 834 , - 3929 , - 304 , - 2247 , - 3614 , - 4405 , - 4620 , - 4259 , - 3322 , - 1809 , - 5864 , - 3199 , - 6102 , - 2285 , - 4036 , - 5211 , - 5810 , - 5833 , - 5280 , - 4151 , - 2446 , - 165 , - 3452 , - 19 , - 2154 , - 3713 , - 4696 , - 5103 , - 4934 , - 4189 , - 2868 , - 971 , - 4642 , - 1593 , - 4112 , - 6055 , - 1278 , - 2069 , - 2284 , - 1923 , - 986 , - 5617 , - 3528 , - 863 , - 3766 , - 6093 , - 1700 , - 2875 , - 3474 , - 3497 , - 2944 , - 1815 , - 110 , - 3973 , - 1116 , - 3827 , - 5962 , - 1377 , - 2360 , - 2767 , - 2598 , - 1853 , - 532 , - 4779 , - 2306 , - 5401 , - 1776 , - 3719 , - 5086 , - 5877 , - 6092 , - 5731 , - 4794 , - 3281 , - 1192 , - 4671 , - 1430 , - 3757 , - 5508 , - 539 , - 1138 , - 1161 , - 608 , - 5623 , - 3918 , - 1637 , - 4924 , - 1491 , - 3626 , - 5185 , - 24 , - 431 , - 262 , - 5661 , - 4340 , - 2443 , - 6114 , - 3065 , - 5584 , - 1383 , - 2750 , - 3541 , - 3756 , - 3395 , - 2458 , - 945 , - 5000 , - 2335 , - 5238 , - 1421 , - 3172 , - 4347 , - 4946 , - 4969 , - 4416 , - 3287 , - 1582 , - 5445 , - 2588 , - 5299 , - 1290 , - 2849 , - 3832 , - 4239 , - 4070 , - 3325 , - 2004 , - 107 , - 3778 , - 729 , - 3248 , - 5191 , - 414 , - 1205 , - 1420 , - 1059 , - 122 , - 4753 , - 2664 , - 6143 , - 2902 , - 5229 , - 836 , - 2011 , - 2610 , - 2633 , - 2080 , - 951 , - 5390 , - 3109 , - 252 , - 2963 , - 5098 , - 513 , - 1496 , - 1903 , - 1734 , - 989 , - 5812 , - 3915 , - 1442 , - 4537 , - 912 , - 2855 , - 4222 , - 5013 , - 5228 , - 4867 , - 3930 , - 2417 , - 328 , - 3807 , - 566 , - 2893 , - 4644 , - 5819 , - 274 , - 297 , - 5888 , - 4759 , - 3054 , - 773 , - 4060 , - 627 , - 2762 , - 4321 , - 5304 , - 5711 , - 5542 , - 4797 , - 3476 , - 1579 , - 5250 , - 2201 , - 4720 , - 519 , - 1886 , - 2677 , - 2892 , - 2531 , - 1594 , - 81 , - 4136 , - 1471 , - 4374 , - 557 , - 2308 , - 3483 , - 4082 , - 4105 , - 3552 , - 2423 , - 718 , - 4581 , - 1724 , - 4435 , - 426 , - 1985 , - 2968 , - 3375 , - 3206 , - 2461 , - 1140 , - 5387 , - 2914 , - 6009 , - 2384 , - 4327 , - 5694 , - 341 , - 556 , - 195 , - 5402 , - 3889 , - 1800 , - 5279 , - 2038 , - 4365 , - 6116 , - 1147 , - 1746 , - 1769 , - 1216 , - 87 , - 4526 , - 2245 , - 5532 , - 2099 , - 4234 , - 5793 , - 632 , - 1039 , - 870 , - 125 , - 4948 , - 3051 , - 578 , - 3673 , - 48 , - 1991 , - 3358 , - 4149 , - 4364 , - 4003 , - 3066 , - 1553 , - 5608 , - 2943 , - 5846 , - 2029 , - 3780 , - 4955 , - 5554 , - 5577 , - 5024 , - 3895 , - 2190 , - 6053 , - 3196 , - 5907 , - 1898 , - 3457 , - 4440 , - 4847 , - 4678 , - 3933 , - 2612 , - 715 , - 4386 , - 1337 , - 3856 , - 5799 , - 1022 , - 1813 , - 2028 , - 1667 , - 730 , - 5361 , - 3272 , - 607 , - 3510 , - 5837 , - 1444 , - 2619 , - 3218 , - 3241 , - 2688 , - 1559 , - 5998 , - 3717 , - 860 , - 3571 , - 5706 , - 1121 , - 2104 , - 2511 , - 2342 , - 1597 , - 276 , - 4523 , - 2050 , - 5145 , - 1520 , - 3463 , - 4830 , - 5621 , - 5836 , - 5475 , - 4538 , - 3025 , - 936 , - 4415 , - 1174 , - 3501 , - 5252 , - 283 , - 882 , - 905 , - 352 , - 5367 , - 3662 , - 1381 , - 4668 , - 1235 , - 3370 , - 4929 , - 5912 , - 175 , - 6 , - 5405 , - 4084 , - 2187 , - 5858 , - 2809 , - 5328 , - 1127 , - 2494 , - 3285 , - 3500 , - 3139 , - 2202 , - 689 , - 4744 , - 2079 , - 4982 , - 1165 , - 2916 , - 4091 , - 4690 , - 4713 , - 4160 , - 3031 , - 1326 , - 5189 , - 2332 , - 5043 , - 1034 , - 2593 , - 3576 , - 3983 , - 3814 , - 3069 , - 1748 , - 5995 , - 3522 , - 473 , - 2992 , - 4935 , - 158 , - 949 , - 1164 , - 803 , - 6010 , - 4497 , - 2408 , - 5887 , - 2646 , - 4973 , - 580 , - 1755 , - 2354 , - 2377 , - 1824 , - 695 , - 5134 , - 2853 , - 6140 , - 2707 , - 4842 , - 257 , - 1240 , - 1647 , - 1478 , - 733 , - 5556 , - 3659 , - 1186 , - 4281 , - 656 , - 2599 , - 3966 , - 4757 , - 4972 , - 4611 , - 3674 , - 2161 , - 72 , - 3551 , - 310 , - 2637 , - 4388 , - 5563 , - 18 , - 41 , - 5632 , - 4503 , - 2798 , - 517 , - 3804 , - 371 , - 2506 , - 4065 , - 5048 , - 5455 , - 5286 , - 4541 , - 3220 , - 1323 , - 4994 , - 1945 , - 4464 , - 263 , - 1630 , - 2421 , - 2636 , - 2275 , - 1338 , - 5969 , - 3880 , - 1215 , - 4118 , - 301 , - 2052 , - 3227 , - 3826 , - 3849 , - 3296 , - 2167 , - 462 , - 4325 , - 1468 , - 4179 , - 170 , - 1729 , - 2712 , - 3119 , - 2950 , - 2205 , - 884 , - 5131 , - 2658 , - 5753 , - 2128 , - 4071 , - 5438 , - 85 , - 300 , - 6083 , - 5146 , - 3633 , - 1544 , - 5023 , - 1782 , - 4109 , - 5860 , - 891 , - 1490 , - 1513 , - 960 , - 5975 , - 4270 , - 1989 , - 5276 , - 1843 , - 3978 , - 5537 , - 376 , - 783 , - 614 , - 6013 , - 4692 , - 2795 , - 322 , - 3417 , - 5936 , - 1735 , - 3102 , - 3893 , - 4108 , - 3747 , - 2810 , - 1297 , - 5352 , - 2687 , - 5590 , - 1773 , - 3524 , - 4699 , - 5298 , - 5321 , - 4768 , - 3639 , - 1934 , - 5797 , - 2940 , - 5651 , - 1642 , - 3201 , - 4184 , - 4591 , - 4422 , - 3677 , - 2356 , - 459 , - 4130 , - 1081 , - 3600 , - 5543 , - 766 , - 1557 , - 1772 , - 1411 , - 474 , - 5105 , - 3016 , - 351 , - 3254 , - 5581 , - 1188 , - 2363 , - 2962 , - 2985 , - 2432 , - 1303 , - 5742 , - 3461 , - 604 , - 3315 , - 5450 , - 865 , - 1848 , - 2255 , - 2086 , - 1341 , - 20 , - 4267 , - 1794 , - 4889 , - 1264 , - 3207 , - 4574 , - 5365 , - 5580 , - 5219 , - 4282 , - 2769 , - 680 , - 4159 , - 918 , - 3245 , - 4996 , - 27 , - 626 , - 649 , - 96 , - 5111 , - 3406 , - 1125 , - 4412 , - 979 , - 3114 , - 4673 , - 5656 , - 6063 , - 5894 , - 5149 , - 3828 , - 1931 , - 5602 , - 2553 , - 5072 , - 871 , - 2238 , - 3029 , - 3244 , - 2883 , - 1946 , - 433 , - 4488 , - 1823 , - 4726 , - 909 , - 2660 , - 3835 , - 4434 , - 4457 , - 3904 , - 2775 , - 1070 , - 4933 , - 2076 , - 4787 , - 778 , - 2337 , - 3320 , - 3727 , - 3558 , - 2813 , - 1492 , - 5739 , - 3266 , - 217 , - 2736 , - 4679 , - 6046 , - 693 , - 908 , - 547 , - 5754 , - 4241 , - 2152 , - 5631 , - 2390 , - 4717 , - 324 , - 1499 , - 2098 , - 2121 , - 1568 , - 439 , - 4878 , - 2597 , - 5884 , - 2451 , - 4586 , - 1 , - 984 , - 1391 , - 1222 , - 477 , - 5300 , - 3403 , - 930 , - 4025 , - 400 , - 2343 , - 3710 , - 4501 , - 4716 , - 4355 , - 3418 , - 1905 , - 5960 , - 3295 , - 54 , - 2381 , - 4132 , - 5307 , - 5906 , - 5929 , - 5376 , - 4247 , - 2542 , - 261 , - 3548 , - 115 , - 2250 , - 3809 , - 4792 , - 5199 , - 5030 , - 4285 , - 2964 , - 1067 , - 4738 , - 1689 , - 4208 , - 7 , - 1374 , - 2165 , - 2380 , - 2019 , - 1082 , - 5713 , - 3624 , - 959 , - 3862 , - 45 , - 1796 , - 2971 , - 3570 , - 3593 , - 3040 , - 1911 , - 206 , - 4069 , - 1212 , - 3923 , - 6058 , - 1473 , - 2456 , - 2863 , - 2694 , - 1949 , - 628 , - 4875 , - 2402 , - 5497 , - 1872 , - 3815 , - 5182 , - 5973 , - 44 , - 5827 , - 4890 , - 3377 , - 1288 , - 4767 , - 1526 , - 3853 , - 5604 , - 635 , - 1234 , - 1257 , - 704 , - 5719 , - 4014 , - 1733 , - 5020 , - 1587 , - 3722 , - 5281 , - 120 , - 527 , - 358 , - 5757 , - 4436 , - 2539 , - 66 , - 3161 , - 5680 , - 1479 , - 2846 , - 3637 , - 3852 , - 3491 , - 2554 , - 1041 , - 5096 , - 2431 , - 5334 , - 1517 , - 3268 , - 4443 , - 5042 , - 5065 , - 4512 , - 3383 , - 1678 , - 5541 , - 2684 , - 5395 , - 1386 , - 2945 , - 3928 , - 4335 , - 4166 , - 3421 , - 2100 , - 203 , - 3874 , - 825 , - 3344 , - 5287 , - 510 , - 1301 , - 1516 , - 1155 , - 218 , - 4849 , - 2760 , - 95 , - 2998 , - 5325 , - 932 , - 2107 , - 2706 , - 2729 , - 2176 , - 1047 , - 5486 , - 3205 , - 348 , - 3059 , - 5194 , - 609 , - 1592 , - 1999 , - 1830 , - 1085 , - 5908 , - 4011 , - 1538 , - 4633 , - 1008 , - 2951 , - 4318 , - 5109 , - 5324 , - 4963 , - 4026 , - 2513 , - 424 , - 3903 , - 662 , - 2989 , - 4740 , - 5915 , - 370 , - 393 , - 5984 , - 4855 , - 3150 , - 869 , - 4156 , - 723 , - 2858 , - 4417 , - 5400 , - 5807 , - 5638 , - 4893 , - 3572 , - 1675 , - 5346 , - 2297 , - 4816 , - 615 , - 1982 , - 2773 , - 2988 , - 2627 , - 1690 , - 177 , - 4232 , - 1567 , - 4470 , - 653 , - 2404 , - 3579 , - 4178 , - 4201 , - 3648 , - 2519 , - 814 , - 4677 , - 1820 , - 4531 , - 522 , - 2081 , - 3064 , - 3471 , - 3302 , - 2557 , - 1236 , - 5483 , - 3010 , - 6105 , - 2480 , - 4423 , - 5790 , - 437 , - 652 , - 291 , - 5498 , - 3985 , - 1896 , - 5375 , - 2134 , - 4461 , - 68 , - 1243 , - 1842 , - 1865 , - 1312 , - 183 , - 4622 , - 2341 , - 5628 , - 2195 , - 4330 , - 5889 , - 728 , - 1135 , - 966 , - 221 , - 5044 , - 3147 , - 674 , - 3769 , - 144 , - 2087 , - 3454 , - 4245 , - 4460 , - 4099 , - 3162 , - 1649 , - 5704 , - 3039 , - 5942 , - 2125 , - 3876 , - 5051 , - 5650 , - 5673 , - 5120 , - 3991 , - 2286 , - 5 , - 3292 , - 6003 , - 1994 , - 3553 , - 4536 , - 4943 , - 4774 , - 4029 , - 2708 , - 811 , - 4482 , - 1433 , - 3952 , - 5895 , - 1118 , - 1909 , - 2124 , - 1763 , - 826 , - 5457 , - 3368 , - 703 , - 3606 , - 5933 , - 1540 , - 2715 , - 3314 , - 3337 , - 2784 , - 1655 , - 6094 , - 3813 , - 956 , - 3667 , - 5802 , - 1217 , - 2200 , - 2607 , - 2438 , - 1693 , - 372 , - 4619 , - 2146 , - 5241 , - 1616 , - 3559 , - 4926 , - 5717 , - 5932 , - 5571 , - 4634 , - 3121 , - 1032 , - 4511 , - 1270 , - 3597 , - 5348 , - 379 , - 978 , - 1001 , - 448 , - 5463 , - 3758 , - 1477 , - 4764 , - 1331 , - 3466 , - 5025 , - 6008 , - 271 , - 102 , - 5501 , - 4180 , - 2283 , - 5954 , - 2905 , - 5424 , - 1223 , - 2590 , - 3381 , - 3596 , - 3235 , - 2298 , - 785 , - 4840 , - 2175 , - 5078 , - 1261 , - 3012 , - 4187 , - 4786 , - 4809 , - 4256 , - 3127 , - 1422 , - 5285 , - 2428 , - 5139 , - 1130 , - 2689 , - 3672 , - 4079 , - 3910 , - 3165 , - 1844 , - 6091 , - 3618 , - 569 , - 3088 , - 5031 , - 254 , - 1045 , - 1260 , - 899 , - 6106 , - 4593 , - 2504 , - 5983 , - 2742 , - 5069 , - 676 , - 1851 , - 2450 , - 2473 , - 1920 , - 791 , - 5230 , - 2949 , - 92 , - 2803 , - 4938 , - 353 , - 1336 , - 1743 , - 1574 , - 829 , - 5652 , - 3755 , - 1282 , - 4377 , - 752 , - 2695 , - 4062 , - 4853 , - 5068 , - 4707 , - 3770 , - 2257 , - 168 , - 3647 , - 406 , - 2733 , - 4484 , - 5659 , - 114 , - 137 , - 5728 , - 4599 , - 2894 , - 613 , - 3900 , - 467 , - 2602 , - 4161 , - 5144 , - 5551 , - 5382 , - 4637 , - 3316 , - 1419 , - 5090 , - 2041 , - 4560 , - 359 , - 1726 , - 2517 , - 2732 , - 2371 , - 1434 , - 6065 , - 3976 , - 1311 , - 4214 , - 397 , - 2148 , - 3323 , - 3922 , - 3945 , - 3392 , - 2263 , - 558 , - 4421 , - 1564 , - 4275 , - 266 , - 1825 , - 2808 , - 3215 , - 3046 , - 2301 , - 980 , - 5227 , - 2754 , - 5849 , - 2224 , - 4167 , - 5534 , - 181 , - 396 , - 35 , - 5242 , - 3729 , - 1640 , - 5119 , - 1878 , - 4205 , - 5956 , - 987 , - 1586 , - 1609 , - 1056 , - 6071 , - 4366 , - 2085 , - 5372 , - 1939 , - 4074 , - 5633 , - 472 , - 879 , - 710 , - 6109 , - 4788 , - 2891 , - 418 , - 3513 , - 6032 , - 1831 , - 3198 , - 3989 , - 4204 , - 3843 , - 2906 , - 1393 , - 5448 , - 2783 , - 5686 , - 1869 , - 3620 , - 4795 , - 5394 , - 5417 , - 4864 , - 3735 , - 2030 , - 5893 , - 3036 , - 5747 , - 1738 , - 3297 , - 4280 , - 4687 , - 4518 , - 3773 , - 2452 , - 555 , - 4226 , - 1177 , - 3696 , - 5639 , - 862 , - 1653 , - 1868 , - 1507 , - 570 , - 5201 , - 3112 , - 447 , - 3350 , - 5677 , - 1284 , - 2459 , - 3058 , - 3081 , - 2528 , - 1399 , - 5838 , - 3557 , - 700 , - 3411 , - 5546 , - 961 , - 1944 , - 2351 , - 2182 , - 1437 , - 116 , - 4363 , - 1890 , - 4985 , - 1360 , - 3303 , - 4670 , - 5461 , - 5676 , - 5315 , - 4378 , - 2865 , - 776 , - 4255 , - 1014 , - 3341 , - 5092 , - 123 , - 722 , - 745 , - 192 , - 5207 , - 3502 , - 1221 , - 4508 , - 1075 , - 3210 , - 4769 , - 5752 , - 15 , - 5990 , - 5245 , - 3924 , - 2027 , - 5698 , - 2649 , - 5168 , - 967 , - 2334 , - 3125 , - 3340 , - 2979 , - 2042 , - 529 , - 4584 , - 1919 , - 4822 , - 1005 , - 2756 , - 3931 , - 4530 , - 4553 , - 4000 , - 2871 , - 1166 , - 5029 , - 2172 , - 4883 , - 874 , - 2433 , - 3416 , - 3823 , - 3654 , - 2909 , - 1588 , - 5835 , - 3362 , - 313 , - 2832 , - 4775 , - 6142 , - 789 , - 1004 , - 643 , - 5850 , - 4337 , - 2248 , - 5727 , - 2486 , - 4813 , - 420 , - 1595 , - 2194 , - 2217 , - 1664 , - 535 , - 4974 , - 2693 , - 5980 , - 2547 , - 4682 , - 97 , - 1080 , - 1487 , - 1318 , - 573 , - 5396 , - 3499 , - 1026 , - 4121 , - 496 , - 2439 , - 3806 , - 4597 , - 4812 , - 4451 , - 3514 , - 2001 , - 6056 , - 3391 , - 150 , - 2477 , - 4228 , - 5403 , - 6002 , - 6025 , - 5472 , - 4343 , - 2638 , - 357 , - 3644 , - 211 , - 2346 , - 3905 , - 4888 , - 5295 , - 5126 , - 4381 , - 3060 , - 1163 , - 4834 , - 1785 , - 4304 , - 103 , - 1470 , - 2261 , - 2476 , - 2115 , - 1178 , - 5809 , - 3720 , - 1055 , - 3958 , - 141 , - 1892 , - 3067 , - 3666 , - 3689 , - 3136 , - 2007 , - 302 , - 4165 , - 1308 , - 4019 , - 10 , - 1569 , - 2552 , - 2959 , - 2790 , - 2045 , - 724 , - 4971 , - 2498 , - 5593 , - 1968 , - 3911 , - 5278 , - 6069 , - 140 , - 5923 , - 4986 , - 3473 , - 1384 , - 4863 , - 1622 , - 3949 , - 5700 , - 731 , - 1330 , - 1353 , - 800 , - 5815 , - 4110 , - 1829 , - 5116 , - 1683 , - 3818 , - 5377 , - 216 , - 623 , - 454 , - 5853 , - 4532 , - 2635 , - 162 , - 3257 , - 5776 , - 1575 , - 2942 , - 3733 , - 3948 , - 3587 , - 2650 , - 1137 , - 5192 , - 2527 , - 5430 , - 1613 , - 3364 , - 4539 , - 5138 , - 5161 , - 4608 , - 3479 , - 1774 , - 5637 , - 2780 , - 5491 , - 1482 , - 3041 , - 4024 , - 4431 , - 4262 , - 3517 , - 2196 , - 299 , - 3970 , - 921 , - 3440 , - 5383 , - 606 , - 1397 , - 1612 , - 1251 , - 314 , - 4945 , - 2856 , - 191 , - 3094 , - 5421 , - 1028 , - 2203 , - 2802 , - 2825 , - 2272 , - 1143 , - 5582 , - 3301 , - 444 , - 3155 , - 5290 , - 705 , - 1688 , - 2095 , - 1926 , - 1181 , - 6004 , - 4107 , - 1634 , - 4729 , - 1104 , - 3047 , - 4414 , - 5205 , - 5420 , - 5059 , - 4122 , - 2609 , - 520 , - 3999 , - 758 , - 3085 , - 4836 , - 6011 , - 466 , - 489 , - 6080 , - 4951 , - 3246 , - 965 , - 4252 , - 819 , - 2954 , - 4513 , - 5496 , - 5903 , - 5734 , - 4989 , - 3668 , - 1771 , - 5442 , - 2393 , - 4912 , - 711 , - 2078 , - 2869 , - 3084 , - 2723 , - 1786 , - 273 , - 4328 , - 1663 , - 4566 , - 749 , - 2500 , - 3675 , - 4274 , - 4297 , - 3744 , - 2615 , - 910 , - 4773 , - 1916 , - 4627 , - 618 , - 2177 , - 3160 , - 3567 , - 3398 , - 2653 , - 1332 , - 5579 , - 3106 , - 57 , - 2576 , - 4519 , - 5886 , - 533 , - 748 , - 387 , - 5594 , - 4081 , - 1992 , - 5471 , - 2230 , - 4557 , - 164 , - 1339 , - 1938 , - 1961 , - 1408 , - 279 , - 4718 , - 2437 , - 5724 , - 2291 , - 4426 , - 5985 , - 824 , - 1231 , - 1062 , - 317 , - 5140 , - 3243 , - 770 , - 3865 , - 240 , - 2183 , - 3550 , - 4341 , - 4556 , - 4195 , - 3258 , - 1745 , - 5800 , - 3135 , - 6038 , - 2221 , - 3972 , - 5147 , - 5746 , - 5769 , - 5216 , - 4087 , - 2382 , - 101 , - 3388 , - 6099 , - 2090 , - 3649 , - 4632 , - 5039 , - 4870 , - 4125 , - 2804 , - 907 , - 4578 , - 1529 , - 4048 , - 5991 , - 1214 , - 2005 , - 2220 , - 1859 , - 922 , - 5553 , - 3464 , - 799 , - 3702 , - 6029 , - 1636 , - 2811 , - 3410 , - 3433 , - 2880 , - 1751 , - 46 , - 3909 , - 1052 , - 3763 , - 5898 , - 1313 , - 2296 , - 2703 , - 2534 , - 1789 , - 468 , - 4715 , - 2242 , - 5337 , - 1712 , - 3655 , - 5022 , - 5813 , - 6028 , - 5667 , - 4730 , - 3217 , - 1128 , - 4607 , - 1366 , - 3693 , - 5444 , - 475 , - 1074 , - 1097 , - 544 , - 5559 , - 3854 , - 1573 , - 4860 , - 1427 , - 3562 , - 5121 , - 6104 , - 367 , - 198 , - 5597 , - 4276 , - 2379 , - 6050 , - 3001 , - 5520 , - 1319 , - 2686 , - 3477 , - 3692 , - 3331 , - 2394 , - 881 , - 4936 , - 2271 , - 5174 , - 1357 , - 3108 , - 4283 , - 4882 , - 4905 , - 4352 , - 3223 , - 1518 , - 5381 , - 2524 , - 5235 , - 1226 , - 2785 , - 3768 , - 4175 , - 4006 , - 3261 , - 1940 , - 43 , - 3714 , - 665 , - 3184 , - 5127 , - 350 , - 1141 , - 1356 , - 995 , - 58 , - 4689 , - 2600 , - 6079 , - 2838 , - 5165 , - 772 , - 1947 , - 2546 , - 2569 , - 2016 , - 887 , - 5326 , - 3045 , - 188 , - 2899 , - 5034 , - 449 , - 1432 , - 1839 , - 1670 , - 925 , - 5748 , - 3851 , - 1378 , - 4473 , - 848 , - 2791 , - 4158 , - 4949 , - 5164 , - 4803 , - 3866 , - 2353 , - 264 , - 3743 , - 502 , - 2829 , - 4580 , - 5755 , - 210 , - 233 , - 5824 , - 4695 , - 2990 , - 709 , - 3996 , - 563 , - 2698 , - 4257 , - 5240 , - 5647 , - 5478 , - 4733 , - 3412 , - 1515 , - 5186 , - 2137 , - 4656 , - 455 , - 1822 , - 2613 , - 2828 , - 2467 , - 1530 , - 17 , - 4072 , - 1407 , - 4310 , - 493 , - 2244 , - 3419 , - 4018 , - 4041 , - 3488 , - 2359 , - 654 , - 4517 , - 1660 , - 4371 , - 362 , - 1921 , - 2904 , - 3311 , - 3142 , - 2397 , - 1076 , - 5323 , - 2850 , - 5945 , - 2320 , - 4263 , - 5630 , - 277 , - 492 , - 131 , - 5338 , - 3825 , - 1736 , - 5215 , - 1974 , - 4301 , - 6052 , - 1083 , - 1682 , - 1705 , - 1152 , - 23 , - 4462 , - 2181 , - 5468 , - 2035 , - 4170 , - 5729 , - 568 , - 975 , - 806 , - 61 , - 4884 , - 2987 , - 514 , - 3609 , - 6128 , - 1927 , - 3294 , - 4085 , - 4300 , - 3939 , - 3002 , - 1489 , - 5544 , - 2879 , - 5782 , - 1965 , - 3716 , - 4891 , - 5490 , - 5513 , - 4960 , - 3831 , - 2126 , - 5989 , - 3132 , - 5843 , - 1834 , - 3393 , - 4376 , - 4783 , - 4614 , - 3869 , - 2548 , - 651 , - 4322 , - 1273 , - 3792 , - 5735 , - 958 , - 1749 , - 1964 , - 1603 , - 666 , - 5297 , - 3208 , - 543 , - 3446 , - 5773 , - 1380 , - 2555 , - 3154 , - 3177 , - 2624 , - 1495 , - 5934 , - 3653 , - 796 , - 3507 , - 5642 , - 1057 , - 2040 , - 2447 , - 2278 , - 1533 , - 212 , - 4459 , - 1986 , - 5081 , - 1456 , - 3399 , - 4766 , - 5557 , - 5772 , - 5411 , - 4474 , - 2961 , - 872 , - 4351 , - 1110 , - 3437 , - 5188 , - 219 , - 818 , - 841 , - 288 , - 5303 , - 3598 , - 1317 , - 4604 , - 1171 , - 3306 , - 4865 , - 5848 , - 111 , - 6086 , - 5341 , - 4020 , - 2123 , - 5794 , - 2745 , - 5264 , - 1063 , - 2430 , - 3221 , - 3436 , - 3075 , - 2138 , - 625 , - 4680 , - 2015 , - 4918 , - 1101 , - 2852 , - 4027 , - 4626 , - 4649 , - 4096 , - 2967 , - 1262 , - 5125 , - 2268 , - 4979 , - 970 , - 2529 , - 3512 , - 3919 , - 3750 , - 3005 , - 1684 , - 5931 , - 3458 , - 409 , - 2928 , - 4871 , - 94 , - 885 , - 1100 , - 739 , - 5946 , - 4433 , - 2344 , - 5823 , - 2582 , - 4909 , - 516 , - 1691 , - 2290 , - 2313 , - 1760 , - 631 , - 5070 , - 2789 , - 6076 , - 2643 , - 4778 , - 193 , - 1176 , - 1583 , - 1414 , - 669 , - 5492 , - 3595 , - 1122 , - 4217 , - 592 , - 2535 , - 3902 , - 4693 , - 4908 , - 4547 , - 3610 , - 2097 , - 8 , - 3487 , - 246 , - 2573 , - 4324 , - 5499 , - 6098 , - 6121 , - 5568 , - 4439 , - 2734 , - 453 , - 3740 , - 307 , - 2442 , - 4001 , - 4984 , - 5391 , - 5222 , - 4477 , - 3156 , - 1259 , - 4930 , - 1881 , - 4400 , - 199 , - 1566 , - 2357 , - 2572 , - 2211 , - 1274 , - 5905 , - 3816 , - 1151 , - 4054 , - 237 , - 1988 , - 3163 , - 3762 , - 3785 , - 3232 , - 2103 , - 398 , - 4261 , - 1404 , - 4115 , - 106 , - 1665 , - 2648 , - 3055 , - 2886 , - 2141 , - 820 , - 5067 , - 2594 , - 5689 , - 2064 , - 4007 , - 5374 , - 21 , - 236 , - 6019 , - 5082 , - 3569 , - 1480 , - 4959 , - 1718 , - 4045 , - 5796 , - 827 , - 1426 , - 1449 , - 896 , - 5911 , - 4206 , - 1925 , - 5212 , - 1779 , - 3914 , - 5473 , - 312 , - 719 , - 550 , - 5949 , - 4628 , - 2731 , - 258 , - 3353 , - 5872 , - 1671 , - 3038 , - 3829 , - 4044 , - 3683 , - 2746 , - 1233 , - 5288 , - 2623 , - 5526 , - 1709 , - 3460 , - 4635 , - 5234 , - 5257 , - 4704 , - 3575 , - 1870 , - 5733 , - 2876 , - 5587 , - 1578 , - 3137 , - 4120 , - 4527 , - 4358 , - 3613 , - 2292 , - 395 , - 4066 , - 1017 , - 3536 , - 5479 , - 702 , - 1493 , - 1708 , - 1347 , - 410 , - 5041 , - 2952 , - 287 , - 3190 , - 5517 , - 1124 , - 2299 , - 2898 , - 2921 , - 2368 , - 1239 , - 5678 , - 3397 , - 540 , - 3251 , - 5386 , - 801 , - 1784 , - 2191 , - 2022 , - 1277 , - 6100 , - 4203 , - 1730 , - 4825 , - 1200 , - 3143 , - 4510 , - 5301 , - 5516 , - 5155 , - 4218 , - 2705 , - 616 , - 4095 , - 854 , - 3181 , - 4932 , - 6107 , - 562 , - 585 , - 32 , - 5047 , - 3342 , - 1061 , - 4348 , - 915 , - 3050 , - 4609 , - 5592 , - 5999 , - 5830 , - 5085 , - 3764 , - 1867 , - 5538 , - 2489 , - 5008 , - 807 , - 2174 , - 2965 , - 3180 , - 2819 , - 1882 , - 369 , - 4424 , - 1759 , - 4662 , - 845 , - 2596 , - 3771 , - 4370 , - 4393 , - 3840 , - 2711 , - 1006 , - 4869 , - 2012 , - 4723 , - 714 , - 2273 , - 3256 , - 3663 , - 3494 , - 2749 , - 1428 , - 5675 , - 3202 , - 153 , - 2672 , - 4615 , - 5982 , - 629 , - 844 , - 483 , - 5690 , - 4177 , - 2088 , - 5567 , - 2326 , - 4653 , - 260 , - 1435 , - 2034 , - 2057 , - 1504 , - 375 , - 4814 , - 2533 , - 5820 , - 2387 , - 4522 , - 6081 , - 920 , - 1327 , - 1158 , - 413 , - 5236 , - 3339 , - 866 , - 3961 , - 336 , - 2279 , - 3646 , - 4437 , - 4652 , - 4291 , - 3354 , - 1841 , - 5896 , - 3231 , - 6134 , - 2317 , - 4068 , - 5243 , - 5842 , - 5865 , - 5312 , - 4183 , - 2478 , - 197 , - 3484 , - 51 , - 2186 , - 3745 , - 4728 , - 5135 , - 4966 , - 4221 , - 2900 , - 1003 , - 4674 , - 1625 , - 4144 , - 6087 , - 1310 , - 2101 , - 2316 , - 1955 , - 1018 , - 5649 , - 3560 , - 895 , - 3798 , - 6125 , - 1732 , - 2907 , - 3506 , - 3529 , - 2976 , - 1847 , - 142 , - 4005 , - 1148 , - 3859 , - 5994 , - 1409 , - 2392 , - 2799 , - 2630 , - 1885 , - 564 , - 4811 , - 2338 , - 5433 , - 1808 , - 3751 , - 5118 , - 5909 , - 6124 , - 5763 , - 4826 , - 3313 , - 1224 , - 4703 , - 1462 , - 3789 , - 5540 , - 571 , - 1170 , - 1193 , - 640 , - 5655 , - 3950 , - 1669 , - 4956 , - 1523 , - 3658 , - 5217 , - 56 , - 463 , - 294 , - 5693 , - 4372 , - 2475 , - 2 , - 3097 , - 5616 , - 1415 , - 2782 , - 3573 , - 3788 , - 3427 , - 2490 , - 977 , - 5032 , - 2367 , - 5270 , - 1453 , - 3204 , - 4379 , - 4978 , - 5001 , - 4448 , - 3319 , - 1614 , - 5477 , - 2620 , - 5331 , - 1322 , - 2881 , - 3864 , - 4271 , - 4102 , - 3357 , - 2036 , - 139 , - 3810 , - 761 , - 3280 , - 5223 , - 446 , - 1237 , - 1452 , - 1091 , - 154 , - 4785 , - 2696 , - 31 , - 2934 , - 5261 , - 868 , - 2043 , - 2642 , - 2665 , - 2112 , - 983 , - 5422 , - 3141 , - 284 , - 2995 , - 5130 , - 545 , - 1528 , - 1935 , - 1766 , - 1021 , - 5844 , - 3947 , - 1474 , - 4569 , - 944 , - 2887 , - 4254 , - 5045 , - 5260 , - 4899 , - 3962 , - 2449 , - 360 , - 3839 , - 598 , - 2925 , - 4676 , - 5851 , - 306 , - 329 , - 5920 , - 4791 , - 3086 , - 805 , - 4092 , - 659 , - 2794 , - 4353 , - 5336 , - 5743 , - 5574 , - 4829 , - 3508 , - 1611 , - 5282 , - 2233 , - 4752 , - 551 , - 1918 , - 2709 , - 2924 , - 2563 , - 1626 , - 113 , - 4168 , - 1503 , - 4406 , - 589 , - 2340 , - 3515 , - 4114 , - 4137 , - 3584 , - 2455 , - 750 , - 4613 , - 1756 , - 4467 , - 458 , - 2017 , - 3000 , - 3407 , - 3238 , - 2493 , - 1172 , - 5419 , - 2946 , - 6041 , - 2416 , - 4359 , - 5726 , - 373 , - 588 , - 227 , - 5434 , - 3921 , - 1832 , - 5311 , - 2070 , - 4397 , - 4 , - 1179 , - 1778 , - 1801 , - 1248 , - 119 , - 4558 , - 2277 , - 5564 , - 2131 , - 4266 , - 5825 , - 664 , - 1071 , - 902 , - 157 , - 4980 , - 3083 , - 610 , - 3705 , - 80 , - 2023 , - 3390 , - 4181 , - 4396 , - 4035 , - 3098 , - 1585 , - 5640 , - 2975 , - 5878 , - 2061 , - 3812 , - 4987 , - 5586 , - 5609 , - 5056 , - 3927 , - 2222 , - 6085 , - 3228 , - 5939 , - 1930 , - 3489 , - 4472 , - 4879 , - 4710 , - 3965 , - 2644 , - 747 , - 4418 , - 1369 , - 3888 , - 5831 , - 1054 , - 1845 , - 2060 , - 1699 , - 762 , - 5393 , - 3304 , - 639 , - 3542 , - 5869 , - 1476 , - 2651 , - 3250 , - 3273 , - 2720 , - 1591 , - 6030 , - 3749 , - 892 , - 3603 , - 5738 , - 1153 , - 2136 , - 2543 , - 2374 , - 1629 , - 308 , - 4555 , - 2082 , - 5177 , - 1552 , - 3495 , - 4862 , - 5653 , - 5868 , - 5507 , - 4570 , - 3057 , - 968 , - 4447 , - 1206 , - 3533 , - 5284 , - 315 , - 914 , - 937 , - 384 , - 5399 , - 3694 , - 1413 , - 4700 , - 1267 , - 3402 , - 4961 , - 5944 , - 207 , - 38 , - 5437 , - 4116 , - 2219 , - 5890 , - 2841 , - 5360 , - 1159 , - 2526 , - 3317 , - 3532 , - 3171 , - 2234 , - 721 , - 4776 , - 2111 , - 5014 , - 1197 , - 2948 , - 4123 , - 4722 , - 4745 , - 4192 , - 3063 , - 1358 , - 5221 , - 2364 , - 5075 , - 1066 , - 2625 , - 3608 , - 4015 , - 3846 , - 3101 , - 1780 , - 6027 , - 3554 , - 505 , - 3024 , - 4967 , - 190 , - 981 , - 1196 , - 835 , - 6042 , - 4529 , - 2440 , - 5919 , - 2678 , - 5005 , - 612 , - 1787 , - 2386 , - 2409 , - 1856 , - 727 , - 5166 , - 2885 , - 28 , - 2739 , - 4874 , - 289 , - 1272 , - 1679 , - 1510 , - 765 , - 5588 , - 3691 , - 1218 , - 4313 , - 688 , - 2631 , - 3998 , - 4789 , - 5004 , - 4643 , - 3706 , - 2193 , - 104 , - 3583 , - 342 , - 2669 , - 4420 , - 5595 , - 50 , - 73 , - 5664 , - 4535 , - 2830 , - 549 , - 3836 , - 403 , - 2538 , - 4097 , - 5080 , - 5487 , - 5318 , - 4573 , - 3252 , - 1355 , - 5026 , - 1977 , - 4496 , - 295 , - 1662 , - 2453 , - 2668 , - 2307 , - 1370 , - 6001 , - 3912 , - 1247 , - 4150 , - 333 , - 2084 , - 3259 , - 3858 , - 3881 , - 3328 , - 2199 , - 494 , - 4357 , - 1500 , - 4211 , - 202 , - 1761 , - 2744 , - 3151 , - 2982 , - 2237 , - 916 , - 5163 , - 2690 , - 5785 , - 2160 , - 4103 , - 5470 , - 117 , - 332 , - 6115 , - 5178 , - 3665 , - 1576 , - 5055 , - 1814 , - 4141 , - 5892 , - 923 , - 1522 , - 1545 , - 992 , - 6007 , - 4302 , - 2021 , - 5308 , - 1875 , - 4010 , - 5569 , - 408 , - 815 , - 646 , - 6045 , - 4724 , - 2827 , - 354 , - 3449 , - 5968 , - 1767 , - 3134 , - 3925 , - 4140 , - 3779 , - 2842 , - 1329 , - 5384 , - 2719 , - 5622 , - 1805 , - 3556 , - 4731 , - 5330 , - 5353 , - 4800 , - 3671 , - 1966 , - 5829 , - 2972 , - 5683 , - 1674 , - 3233 , - 4216 , - 4623 , - 4454 , - 3709 , - 2388 , - 491 , - 4162 , - 1113 , - 3632 , - 5575 , - 798 , - 1589 , - 1804 , - 1443 , - 506 , - 5137 , - 3048 , - 383 , - 3286 , - 5613 , - 1220 , - 2395 , - 2994 , - 3017 , - 2464 , - 1335 , - 5774 , - 3493 , - 636 , - 3347 , - 5482 , - 897 , - 1880 , - 2287 , - 2118 , - 1373 , - 52 , - 4299 , - 1826 , - 4921 , - 1296 , - 3239 , - 4606 , - 5397 , - 5612 , - 5251 , - 4314 , - 2801 , - 712 , - 4191 , - 950 , - 3277 , - 5028 , - 59 , - 658 , - 681 , - 128 , - 5143 , - 3438 , - 1157 , - 4444 , - 1011 , - 3146 , - 4705 , - 5688 , - 6095 , - 5926 , - 5181 , - 3860 , - 1963 , - 5634 , - 2585 , - 5104 , - 903 , - 2270 , - 3061 , - 3276 , - 2915 , - 1978 , - 465 , - 4520 , - 1855 , - 4758 , - 941 , - 2692 , - 3867 , - 4466 , - 4489 , - 3936 , - 2807 , - 1102 , - 4965 , - 2108 , - 4819 , - 810 , - 2369 , - 3352 , - 3759 , - 3590 , - 2845 , - 1524 , - 5771 , - 3298 , - 249 , - 2768 , - 4711 , - 6078 , - 725 , - 940 , - 579 , - 5786 , - 4273 , - 2184 , - 5663 , - 2422 , - 4749 , - 356 , - 1531 , - 2130 , - 2153 , - 1600 , - 471 , - 4910 , - 2629 , - 5916 , - 2483 , - 4618 , - 33 , - 1016 , - 1423 , - 1254 , - 509 , - 5332 , - 3435 , - 962 , - 4057 , - 432 , - 2375 , - 3742 , - 4533 , - 4748 , - 4387 , - 3450 , - 1937 , - 5992 , - 3327 , - 86 , - 2413 , - 4164 , - 5339 , - 5938 , - 5961 , - 5408 , - 4279 , - 2574 , - 293 , - 3580 , - 147 , - 2282 , - 3841 , - 4824 , - 5231 , - 5062 , - 4317 , - 2996 , - 1099 , - 4770 , - 1721 , - 4240 , - 39 , - 1406 , - 2197 , - 2412 , - 2051 , - 1114 , - 5745 , - 3656 , - 991 , - 3894 , - 77 , - 1828 , - 3003 , - 3602 , - 3625 , - 3072 , - 1943 , - 238 , - 4101 , - 1244 , - 3955 , - 6090 , - 1505 , - 2488 , - 2895 , - 2726 , - 1981 , - 660 , - 4907 , - 2434 , - 5529 , - 1904 , - 3847 , - 5214 , - 6005 , - 76 , - 5859 , - 4922 , - 3409 , - 1320 , - 4799 , - 1558 , - 3885 , - 5636 , - 667 , - 1266 , - 1289 , - 736 , - 5751 , - 4046 , - 1765 , - 5052 , - 1619 , - 3754 , - 5313 , - 152 , - 559 , - 390 , - 5789 , - 4468 , - 2571 , - 98 , - 3193 , - 5712 , - 1511 , - 2878 , - 3669 , - 3884 , - 3523 , - 2586 , - 1073 , - 5128 , - 2463 , - 5366 , - 1549 , - 3300 , - 4475 , - 5074 , - 5097 , - 4544 , - 3415 , - 1710 , - 5573 , - 2716 , - 5427 , - 1418 , - 2977 , - 3960 , - 4367 , - 4198 , - 3453 , - 2132 , - 235 , - 3906 , - 857 , - 3376 , - 5319 , - 542 , - 1333 , - 1548 , - 1187 , - 250 , - 4881 , - 2792 , - 127 , - 3030 , - 5357 , - 964 , - 2139 , - 2738 , - 2761 , - 2208 , - 1079 , - 5518 , - 3237 , - 380 , - 3091 , - 5226 , - 641 , - 1624 , - 2031 , - 1862 , - 1117 , - 5940 , - 4043 , - 1570 , - 4665 , - 1040 , - 2983 , - 4350 , - 5141 , - 5356 , - 4995 , - 4058 , - 2545 , - 456 , - 3935 , - 694 , - 3021 , - 4772 , - 5947 , - 402 , - 425 , - 6016 , - 4887 , - 3182 , - 901 , - 4188 , - 755 , - 2890 , - 4449 , - 5432 , - 5839 , - 5670 , - 4925 , - 3604 , - 1707 , - 5378 , - 2329 , - 4848 , - 647 , - 2014 , - 2805 , - 3020 , - 2659 , - 1722 , - 209 , - 4264 , - 1599 , - 4502 , - 685 , - 2436 , - 3611 , - 4210 , - 4233 , - 3680 , - 2551 , - 846 , - 4709 , - 1852 , - 4563 , - 554 , - 2113 , - 3096 , - 3503 , - 3334 , - 2589 , - 1268 , - 5515 , - 3042 , - 6137 , - 2512 , - 4455 , - 5822 , - 469 , - 684 , - 323 , - 5530 , - 4017 , - 1928 , - 5407 , - 2166 , - 4493 , - 100 , - 1275 , - 1874 , - 1897 , - 1344 , - 215 , - 4654 , - 2373 , - 5660 , - 2227 , - 4362 , - 5921 , - 760 , - 1167 , - 998 , - 253 , - 5076 , - 3179 , - 706 , - 3801 , - 176 , - 2119 , - 3486 , - 4277 , - 4492 , - 4131 , - 3194 , - 1681 , - 5736 , - 3071 , - 5974 , - 2157 , - 3908 , - 5083 , - 5682 , - 5705 , - 5152 , - 4023 , - 2318 , - 37 , - 3324 , - 6035 , - 2026 , - 3585 , - 4568 , - 4975 , - 4806 , - 4061 , - 2740 , - 843 , - 4514 , - 1465 , - 3984 , - 5927 , - 1150 , - 1941 , - 2156 , - 1795 , - 858 , - 5489 , - 3400 , - 735 , - 3638 , - 5965 , - 1572 , - 2747 , - 3346 , - 3369 , - 2816 , - 1687 , - 6126 , - 3845 , - 988 , - 3699 , - 5834 , - 1249 , - 2232 , - 2639 , - 2470 , - 1725 , - 404 , - 4651 , - 2178 , - 5273 , - 1648 , - 3591 , - 4958 , - 5749 , - 5964 , - 5603 , - 4666 , - 3153 , - 1064 , - 4543 , - 1302 , - 3629 , - 5380 , - 411 , - 1010 , - 1033 , - 480 , - 5495 , - 3790 , - 1509 , - 4796 , - 1363 , - 3498 , - 5057 , - 6040 , - 303 , - 134 , - 5533 , - 4212 , - 2315 , - 5986 , - 2937 , - 5456 , - 1255 , - 2622 , - 3413 , - 3628 , - 3267 , - 2330 , - 817 , - 4872 , - 2207 , - 5110 , - 1293 , - 3044 , - 4219 , - 4818 , - 4841 , - 4288 , - 3159 , - 1454 , - 5317 , - 2460 , - 5171 , - 1162 , - 2721 , - 3704 , - 4111 , - 3942 , - 3197 , - 1876 , - 6123 , - 3650 , - 601 , - 3120 , - 5063 , - 286 , - 1077 , - 1292 , - 931 , - 6138 , - 4625 , - 2536 , - 6015 , - 2774 , - 5101 , - 708 , - 1883 , - 2482 , - 2505 , - 1952 , - 823 , - 5262 , - 2981 , - 124 , - 2835 , - 4970 , - 385 , - 1368 , - 1775 , - 1606 , - 861 , - 5684 , - 3787 , - 1314 , - 4409 , - 784 , - 2727 , - 4094 , - 4885 , - 5100 , - 4739 , - 3802 , - 2289 , - 200 , - 3679 , - 438 , - 2765 , - 4516 , - 5691 , - 146 , - 169 , - 5760 , - 4631 , - 2926 , - 645 , - 3932 , - 499 , - 2634 , - 4193 , - 5176 , - 5583 , - 5414 , - 4669 , - 3348 , - 1451 , - 5122 , - 2073 , - 4592 , - 391 , - 1758 , - 2549 , - 2764 , - 2403 , - 1466 , - 6097 , - 4008 , - 1343 , - 4246 , - 429 , - 2180 , - 3355 , - 3954 , - 3977 , - 3424 , - 2295 , - 590 , - 4453 , - 1596 , - 4307 , - 298 , - 1857 , - 2840 , - 3247 , - 3078 , - 2333 , - 1012 , - 5259 , - 2786 , - 5881 , - 2256 , - 4199 , - 5566 , - 213 , - 428 , - 67 , - 5274 , - 3761 , - 1672 , - 5151 , - 1910 , - 4237 , - 5988 , - 1019 , - 1618 , - 1641 , - 1088 , - 6103 , - 4398 , - 2117 , - 5404 , - 1971 , - 4106 , - 5665 , - 504 , - 911 , - 742 , - 6141 , - 4820 , - 2923 , - 450 , - 3545 , - 6064 , - 1863 , - 3230 , - 4021 , - 4236 , - 3875 , - 2938 , - 1425 , - 5480 , - 2815 , - 5718 , - 1901 , - 3652 , - 4827 , - 5426 , - 5449 , - 4896 , - 3767 , - 2062 , - 5925 , - 3068 , - 5779 , - 1770 , - 3329 , - 4312 , - 4719 , - 4550 , - 3805 , - 2484 , - 587 , - 4258 , - 1209 , - 3728 , - 5671 , - 894 , - 1685 , - 1900 , - 1539 , - 602 , - 5233 , - 3144 , - 479 , - 3382 , - 5709 , - 1316 , - 2491 , - 3090 , - 3113 , - 2560 , - 1431 , - 5870 , - 3589 , - 732 , - 3443 , - 5578 , - 993 , - 1976 , - 2383 , - 2214 , - 1469 , - 148 , - 4395 , - 1922 , - 5017 , - 1392 , - 3335 , - 4702 , - 5493 , - 5708 , - 5347 , - 4410 , - 2897 , - 808 , - 4287 , - 1046 , - 3373 , - 5124 , - 155 , - 754 , - 777 , - 224 , - 5239 , - 3534 , - 1253 , - 4540 , - 1107 , - 3242 , - 4801 , - 5784 , - 47 , - 6022 , - 5277 , - 3956 , - 2059 , - 5730 , - 2681 , - 5200 , - 999 , - 2366 , - 3157 , - 3372 , - 3011 , - 2074 , - 561 , - 4616 , - 1951 , - 4854 , - 1037 , - 2788 , - 3963 , - 4562 , - 4585 , - 4032 , - 2903 , - 1198 , - 5061 , - 2204 , - 4915 , - 906 , - 2465 , - 3448 , - 3855 , - 3686 , - 2941 , - 1620 , - 5867 , - 3394 , - 345 , - 2864 , - 4807 , - 30 , - 821 , - 1036 , - 675 , - 5882 , - 4369 , - 2280 , - 5759 , - 2518 , - 4845 , - 452 , - 1627 , - 2226 , - 2249 , - 1696 , - 567 , - 5006 , - 2725 , - 6012 , - 2579 , - 4714 , - 129 , - 1112 , - 1519 , - 1350 , - 605 , - 5428 , - 3531 , - 1058 , - 4153 , - 528 , - 2471 , - 3838 , - 4629 , - 4844 , - 4483 , - 3546 , - 2033 , - 6088 , - 3423 , - 182 , - 2509 , - 4260 , - 5435 , - 6034 , - 6057 , - 5504 , - 4375 , - 2670 , - 389 , - 3676 , - 243 , - 2378 , - 3937 , - 4920 , - 5327 , - 5158 , - 4413 , - 3092 , - 1195 , - 4866 , - 1817 , - 4336 , - 135 , - 1502 , - 2293 , - 2508 , - 2147 , - 1210 , - 5841 , - 3752 , - 1087 , - 3990 , - 173 , - 1924 , - 3099 , - 3698 , - 3721 , - 3168 , - 2039 , - 334 , - 4197 , - 1340 , - 4051 , - 42 , - 1601 , - 2584 , - 2991 , - 2822 , - 2077 , - 756 , - 5003 , - 2530 , - 5625 , - 2000 , - 3943 , - 5310 , - 6101 , - 172 , - 5955 , - 5018 , - 3505 , - 1416 , - 4895 , - 1654 , - 3981 , - 5732 , - 763 , - 1362 , - 1385 , - 832 , - 5847 , - 4142 , - 1861 , - 5148 , - 1715 , - 3850 , - 5409 , - 248 , - 655 , - 486 , - 5885 , - 4564 , - 2667 , - 194 , - 3289 , - 5808 , - 1607 , - 2974 , - 3765 , - 3980 , - 3619 , - 2682 , - 1169 , - 5224 , - 2559 , - 5462 , - 1645 , - 3396 , - 4571 , - 5170 , - 5193 , - 4640 , - 3511 , - 1806 , - 5669 , - 2812 , - 5523 , - 1514 , - 3073 , - 4056 , - 4463 , - 4294 , - 3549 , - 2228 , - 331 , - 4002 , - 953 , - 3472 , - 5415 , - 638 , - 1429 , - 1644 , - 1283 , - 346 , - 4977 , - 2888 , - 223 , - 3126 , - 5453 , - 1060 , - 2235 , - 2834 , - 2857 , - 2304 , - 1175 , - 5614 , - 3333 , - 476 , - 3187 , - 5322 , - 737 , - 1720 , - 2127 , - 1958 , - 1213 , - 6036 , - 4139 , - 1666 , - 4761 , - 1136 , - 3079 , - 4446 , - 5237 , - 5452 , - 5091 , - 4154 , - 2641 , - 552 , - 4031 , - 790 , - 3117 , - 4868 , - 6043 , - 498 , - 521 , - 6112 , - 4983 , - 3278 , - 997 , - 4284 , - 851 , - 2986 , - 4545 , - 5528 , - 5935 , - 5766 , - 5021 , - 3700 , - 1803 , - 5474 , - 2425 , - 4944 , - 743 , - 2110 , - 2901 , - 3116 , - 2755 , - 1818 , - 305 , - 4360 , - 1695 , - 4598 , - 781 , - 2532 , - 3707 , - 4306 , - 4329 , - 3776 , - 2647 , - 942 , - 4805 , - 1948 , - 4659 , - 650 , - 2209 , - 3192 , - 3599 , - 3430 , - 2685 , - 1364 , - 5611 , - 3138 , - 89 , - 2608 , - 4551 , - 5918 , - 565 , - 780 , - 419 , - 5626 , - 4113 , - 2024 , - 5503 , - 2262 , - 4589 , - 196 , - 1371 , - 1970 , - 1993 , - 1440 , - 311 , - 4750 , - 2469 , - 5756 , - 2323 , - 4458 , - 6017 , - 856 , - 1263 , - 1094 , - 349 , - 5172 , - 3275 , - 802 , - 3897 , - 272 , - 2215 , - 3582 , - 4373 , - 4588 , - 4227 , - 3290 , - 1777 , - 5832 , - 3167 , - 6070 , - 2253 , - 4004 , - 5179 , - 5778 , - 5801 , - 5248 , - 4119 , - 2414 , - 133 , - 3420 , - 6131 , - 2122 , - 3681 , - 4664 , - 5071 , - 4902 , - 4157 , - 2836 , - 939 , - 4610 , - 1561 , - 4080 , - 6023 , - 1246 , - 2037 , - 2252 , - 1891 , - 954 , - 5585 , - 3496 , - 831 , - 3734 , - 6061 , - 1668 , - 2843 , - 3442 , - 3465 , - 2912 , - 1783 , - 78 , - 3941 , - 1084 , - 3795 , - 5930 , - 1345 , - 2328 , - 2735 , - 2566 , - 1821 , - 500 , - 4747 , - 2274 , - 5369 , - 1744 , - 3687 , - 5054 , - 5845 , - 6060 , - 5699 , - 4762 , - 3249 , - 1160 , - 4639 , - 1398 , - 3725 , - 5476 , - 507 , - 1106 , - 1129 , - 576 , - 5591 , - 3886 , - 1605 , - 4892 , - 1459 , - 3594 , - 5153 , - 6136 , - 399 , - 230 , - 5629 , - 4308 , - 2411 , - 6082 , - 3033 , - 5552 , - 1351 , - 2718 , - 3509 , - 3724 , - 3363 , - 2426 , - 913 , - 4968 , - 2303 , - 5206 , - 1389 , - 3140 , - 4315 , - 4914 , - 4937 , - 4384 , - 3255 , - 1550 , - 5413 , - 2556 , - 5267 , - 1258 , - 2817 , - 3800 , - 4207 , - 4038 , - 3293 , - 1972 , - 75 , - 3746 , - 697 , - 3216 , - 5159 , - 382 , - 1173 , - 1388 , - 1027 , - 90 , - 4721 , - 2632 , - 6111 , - 2870 , - 5197 , - 804 , - 1979 , - 2578 , - 2601 , - 2048 , - 919 , - 5358 , - 3077 , - 220 , - 2931 , - 5066 , - 481 , - 1464 , - 1871 , - 1702 , - 957 , - 5780 , - 3883 , - 1410 , - 4505 , - 880 , - 2823 , - 4190 , - 4981 , - 5196 , - 4835 , - 3898 , - 2385 , - 296 , - 3775 , - 534 , - 2861 , - 4612 , - 5787 , - 242 , - 265 , - 5856 , - 4727 , - 3022 , - 741 , - 4028 , - 595 , - 2730 , - 4289 , - 5272 , - 5679 , - 5510 , - 4765 , - 3444 , - 1547 , - 5218 , - 2169 , - 4688 , - 487 , - 1854 , - 2645 , - 2860 , - 2499 , - 1562 , - 49 , - 4104 , - 1439 , - 4342 , - 525 , - 2276 , - 3451 , - 4050 , - 4073 , - 3520 , - 2391 , - 686 , - 4549 , - 1692 , - 4403 , - 394 , - 1953 , - 2936 , - 3343 , - 3174 , - 2429 , - 1108 , - 5355 , - 2882 , - 5977 , - 2352 , - 4295 , - 5662 , - 309 , - 524 , - 163 , - 5370 , - 3857 , - 1768 , - 5247 , - 2006 , - 4333 , - 6084 , - 1115 , - 1714 , - 1737 , - 1184 , - 55 , - 4494 , - 2213 , - 5500 , - 2067 , - 4202 , - 5761 , - 600 , - 1007 , - 838 , - 93 , - 4916 , - 3019 , - 546 , - 3641 , - 16 , - 1959 , - 3326 , - 4117 , - 4332 , - 3971 , - 3034 , - 1521 , - 5576 , - 2911 , - 5814 , - 1997 , - 3748 , - 4923 , - 5522 , - 5545 , - 4992 , - 3863 , - 2158 , - 6021 , - 3164 , - 5875 , - 1866 , - 3425 , - 4408 , - 4815 , - 4646 , - 3901 , - 2580 , - 683 , - 4354 , - 1305 , - 3824 , - 5767 , - 990 , - 1781 , - 1996 , - 1635 , - 698 , - 5329 , - 3240 , - 575 , - 3478 , - 5805 , - 1412 , - 2587 , - 3186 , - 3209 , - 2656 , - 1527 , - 5966 , - 3685 , - 828 , - 3539 , - 5674 , - 1089 , - 2072 , - 2479 , - 2310 , - 1565 , - 244 , - 4491 , - 2018 , - 5113 , - 1488 , - 3431 , - 4798 , - 5589 , - 5804 , - 5443 , - 4506 , - 2993 , - 904 , - 4383 , - 1142 , - 3469 , - 5220 , - 251 , - 850 , - 873 , - 320 , - 5335 , - 3630 , - 1349 , - 4636 , - 1203 , - 3338 , - 4897 , - 5880 , - 143 , - 6118 , - 5373 , - 4052 , - 2155 , - 5826 , - 2777 , - 5296 , - 1095 , - 2462 , - 3253 , - 3468 , - 3107 , - 2170 , - 657 , - 4712 , - 2047 , - 4950 , - 1133 , - 2884 , - 4059 , - 4658 , - 4681 , - 4128 , - 2999 , - 1294 , - 5157 , - 2300 , - 5011 , - 1002 , - 2561 , - 3544 , - 3951 , - 3782 , - 3037 , - 1716 , - 5963 , - 3490 , - 441 , - 2960 , - 4903 , - 126 , - 917 , - 1132 , - 771 , - 5978 , - 4465 , - 2376 , - 5855 , - 2614 , - 4941 , - 548 , - 1723 , - 2322 , - 2345 , - 1792 , - 663 , - 5102 , - 2821 , - 6108 , - 2675 , - 4810 , - 225 , - 1208 , - 1615 , - 1446 , - 701 , - 5524 , - 3627 , - 1154 , - 4249 , - 624 , - 2567 , - 3934 , - 4725 , - 4940 , - 4579 , - 3642 , - 2129 , - 40 , - 3519 , - 278 , - 2605 , - 4356 , - 5531 , - 6130 , - 9 , - 5600 , - 4471 , - 2766 , - 485 , - 3772 , - 339 , - 2474 , - 4033 , - 5016 , - 5423 , - 5254 , - 4509 , - 3188 , - 1291 , - 4962 , - 1913 , - 4432 , - 231 , - 1598 , - 2389 , - 2604 , - 2243 , - 1306 , - 5937 , - 3848 , - 1183 , - 4086 , - 269 , - 2020 , - 3195 , - 3794 , - 3817 , - 3264 , - 2135 , - 430 , - 4293 , - 1436 , - 4147 , - 138 , - 1697 , - 2680 , - 3087 , - 2918 , - 2173 , - 852 , - 5099 , - 2626 , - 5721 , - 2096 , - 4039 , - 5406 , - 53 , - 268 , - 6051 , - 5114 , - 3601 , - 1512 , - 4991 , - 1750 , - 4077 , - 5828 , - 859 , - 1458 , - 1481 , - 928 , - 5943 , - 4238 , - 1957 , - 5244 , - 1811 , - 3946 , - 5505 , - 344 , - 751 , - 582 , - 5981 , - 4660 , - 2763 , - 290 , - 3385 , - 5904 , - 1703 , - 3070 , - 3861 , - 4076 , - 3715 , - 2778 , - 1265 , - 5320 , - 2655 , - 5558 , - 1741 , - 3492 , - 4667 , - 5266 , - 5289 , - 4736 , - 3607 , - 1902 , - 5765 , - 2908 , - 5619 , - 1610 , - 3169 , - 4152 , - 4559 , - 4390 , - 3645 , - 2324 , - 427 , - 4098 , - 1049 , - 3568 , - 5511 , - 734 , - 1525 , - 1740 , - 1379 , - 442 , - 5073 , - 2984 , - 319 , - 3222 , - 5549 , - 1156 , - 2331 , - 2930 , - 2953 , - 2400 , - 1271 , - 5710 , - 3429 , - 572 , - 3283 , - 5418 , - 833 , - 1816 , - 2223 , - 2054 , - 1309 , - 6132 , - 4235 , - 1762 , - 4857 , - 1232 , - 3175 , - 4542 , - 5333 , - 5548 , - 5187 , - 4250 , - 2737 , - 648 , - 4127 , - 886 , - 3213 , - 4964 , - 6139 , - 594 , - 617 , - 64 , - 5079 , - 3374 , - 1093 , - 4380 , - 947 , - 3082 , - 4641 , - 5624 , - 6031 , - 5862 , - 5117 , - 3796 , - 1899 , - 5570 , - 2521 , - 5040 , - 839 , - 2206 , - 2997 , - 3212 , - 2851 , - 1914 , - 401 , - 4456 , - 1791 , - 4694 , - 877 , - 2628 , - 3803 , - 4402 , - 4425 , - 3872 , - 2743 , - 1038 , - 4901 , - 2044 , - 4755 , - 746 , - 2305 , - 3288 , - 3695 , - 3526 , - 2781 , - 1460 , - 5707 , - 3234 , - 185 , - 2704 , - 4647 , - 6014 , - 661 , - 876 , - 515 , - 5722 , - 4209 , - 2120 , - 5599 , - 2358 , - 4685 , - 292 , - 1467 , - 2066 , - 2089 , - 1536 , - 407 , - 4846 , - 2565 , - 5852 , - 2419 , - 4554 , - 6113 , - 952 , - 1359 , - 1190 , - 445 , - 5268 , - 3371 , - 898 , - 3993 , - 368 , - 2311 , - 3678 , - 4469 , - 4684 , - 4323 , - 3386 , - 1873 , - 5928 , - 3263 , - 22 , - 2349 , - 4100 , - 5275 , - 5874 , - 5897 , - 5344 , - 4215 , - 2510 , - 229 , - 3516 , - 83 , - 2218 , - 3777 , - 4760 , - 5167 , - 4998 , - 4253 , - 2932 , - 1035 , - 4706 , - 1657 , - 4176 , - 6119 , - 1342 , - 2133 , - 2348 , - 1987 , - 1050 , - 5681 , - 3592 , - 927 , - 3830 , - 13 , - 1764 , - 2939 , - 3538 , - 3561 , - 3008 , - 1879 , - 174 , - 4037 , - 1180 , - 3891 , - 6026 , - 1441 , - 2424 , - 2831 , - 2662 , - 1917 , - 596 , - 4843 , - 2370 , - 5465 , - 1840 , - 3783 , - 5150 , - 5941 , - 12 , - 5795 , - 4858 , - 3345 , - 1256 , - 4735 , - 1494 , - 3821 , - 5572 , - 603 , - 1202 , - 1225 , - 672 , - 5687 , - 3982 , - 1701 , - 4988 , - 1555 , - 3690 , - 5249 , - 88 , - 495 , - 326 , - 5725 , - 4404 , - 2507 , - 34 , - 3129 , - 5648 , - 1447 , - 2814 , - 3605 , - 3820 , - 3459 , - 2522 , - 1009 , - 5064 , - 2399 , - 5302 , - 1485 , - 3236 , - 4411 , - 5010 , - 5033 , - 4480 , - 3351 , - 1646 , - 5509 , - 2652 , - 5363 , - 1354 , - 2913 , - 3896 , - 4303 , - 4134 , - 3389 , - 2068 , - 171 , - 3842 , - 793 , - 3312 , - 5255 , - 478 , - 1269 , - 1484 , - 1123 , - 186 , - 4817 , - 2728 , - 63 , - 2966 , - 5293 , - 900 , - 2075 , - 2674 , - 2697 , - 2144 , - 1015 , - 5454 , - 3173 , - 316 , - 3027 , - 5162 , - 577 , - 1560 , - 1967 , - 1798 , - 1053 , - 5876 , - 3979 , - 1506 , - 4601 , - 976 , - 2919 , - 4286 , - 5077 , - 5292 , - 4931 , - 3994 , - 2481 , - 392 , - 3871 , - 630 , - 2957 , - 4708 , - 5883 , - 338 , - 361 , - 5952 , - 4823 , - 3118 , - 837 , - 4124 , - 691 , - 2826 , - 4385 , - 5368 , - 5775 , - 5606 , - 4861 , - 3540 , - 1643 , - 5314 , - 2265 , - 4784 , - 583 , - 1950 , - 2741 , - 2956 , - 2595 , - 1658 , - 145 , - 4200 , - 1535 , - 4438 , - 621 , - 2372 , - 3547 , - 4146 , - 4169 , - 3616 , - 2487 , - 782 , - 4645 , - 1788 , - 4499 , - 490 , - 2049 , - 3032 , - 3439 , - 3270 , - 2525 , - 1204 , - 5451 , - 2978 , - 6073 , - 2448 , - 4391 , - 5758 , - 405 , - 620 , - 259 , - 5466 , - 3953 , - 1864 , - 5343 , - 2102 , - 4429 , - 36 , - 1211 , - 1810 , - 1833 , - 1280 , - 151 , - 4590 , - 2309 , - 5596 , - 2163 , - 4298 , - 5857 , - 696 , - 1103 , - 934 , - 189 , - 5012 , - 3115 , - 642 , - 3737 , - 112 , - 2055 , - 3422 , - 4213 , - 4428 , - 4067 , - 3130 , - 1617 , - 5672 , - 3007 , - 5910 , - 2093 , - 3844 , - 5019 , - 5618 , - 5641 , - 5088 , - 3959 , - 2254 , - 6117 , - 3260 , - 5971 , - 1962 , - 3521 , - 4504 , - 4911 , - 4742 , - 3997 , - 2676 , - 779 , - 4450 , - 1401 , - 3920 , - 5863 , - 1086 , - 1877 , - 2092 , - 1731 , - 794 , - 5425 , - 3336 , - 671 , - 3574 , - 5901 , - 1508 , - 2683 , - 3282 , - 3305 , - 2752 , - 1623 , - 6062 , - 3781 , - 924 , - 3635 , - 5770 , - 1185 , - 2168 , - 2575 , - 2406 , - 1661 , - 340 , - 4587 , - 2114 , - 5209 , - 1584 , - 3527 , - 4894 , - 5685 , - 5900 , - 5539 , - 4602 , - 3089 , - 1000 , - 4479 , - 1238 , - 3565 , - 5316 , - 347 , - 946 , - 969 , - 416 , - 5431 , - 3726 , - 1445 , - 4732 , - 1299 , - 3434 , - 4993 , - 5976 , - 239 , - 70 , - 5469 , - 4148 , - 2251 , - 5922 , - 2873 , - 5392 , - 1191 , - 2558 , - 3349 , - 3564 , - 3203 , - 2266 , - 753 , - 4808 , - 2143 , - 5046 , - 1229 , - 2980 , - 4155 , - 4754 , - 4777 , - 4224 , - 3095 , - 1390 , - 5253 , - 2396 , - 5107 , - 1098 , - 2657 , - 3640 , - 4047 , - 3878 , - 3133 , - 1812 , - 6059 , - 3586 , - 537 , - 3056 , - 4999 , - 222 , - 1013 , - 1228 , - 867 , - 6074 , - 4561 , - 2472 , - 5951 , - 2710 , - 5037 , - 644 , - 1819 , - 2418 , - 2441 , - 1888 , - 759 , - 5198 , - 2917 , - 60 , - 2771 , - 4906 , - 321 , - 1304 , - 1711 , - 1542 , - 797 , - 5620 , - 3723 , - 1250 , - 4345 , - 720 , - 2663 , - 4030 , - 4821 , - 5036 , - 4675 , - 3738 , - 2225 , - 136 , - 3615 , - 374 , - 2701 , - 4452 , - 5627 , - 82 , - 105 , - 5696 , - 4567 , - 2862 , - 581 , - 3868 , - 435 , - 2570 , - 4129 , - 5112 , - 5519 , - 5350 , - 4605 , - 3284 , - 1387 , - 5058 , - 2009 , - 4528 , - 327 , - 1694 , - 2485 , - 2700 , - 2339 , - 1402 , - 6033 , - 3944 , - 1279 , - 4182 , - 365 , - 2116 , - 3291 , - 3890 , - 3913 , - 3360 , - 2231 , - 526 , - 4389 , - 1532 , - 4243 , - 234 , - 1793 , - 2776 , - 3183 , - 3014 , - 2269 , - 948 , - 5195 , - 2722 , - 5817 , - 2192 , - 4135 , - 5502 , - 149 , - 364 , - 3 , - 5210 , - 3697 , - 1608 , - 5087 , - 1846 , - 4173 , - 5924 , - 955 , - 1554 , - 1577 , - 1024 , - 6039 , - 4334 , - 2053 , - 5340 , - 1907 , - 4042 , - 5601 , - 440 , - 847 , - 678 , - 6077 , - 4756 , - 2859 , - 386 , - 3481 , - 6000 , - 1799 , - 3166 , - 3957 , - 4172 , - 3811 , - 2874 , - 1361 , - 5416 , - 2751 , - 5654 , - 1837 , - 3588 , - 4763 , - 5362 , - 5385 , - 4832 , - 3703 , - 1998 , - 5861 , - 3004 , - 5715 , - 1706 , - 3265 , - 4248 , - 4655 , - 4486 , - 3741 , - 2420 , - 523 , - 4194 , - 1145 , - 3664 , - 5607 , - 830 , - 1621 , - 1836 , - 1475 , - 538 , - 5169 , - 3080 , - 415 , - 3318 , - 5645 , - 1252 , - 2427 , - 3026 , - 3049 , - 2496 , - 1367 , - 5806 , - 3525 , - 668 , - 3379 , - 5514 , - 929 , - 1912 , - 2319 , - 2150 , - 1405 , - 84 , - 4331 , - 1858 , - 4953 , - 1328 , - 3271 , - 4638 , - 5429 , - 5644 , - 5283 , - 4346 , - 2833 , - 744 , - 4223 , - 982 , - 3309 , - 5060 , - 91 , - 690 , - 713 , - 160 , - 5175 , - 3470 , - 1189 , - 4476 , - 1043 , - 3178 , - 4737 , - 5720 , - 6127 , - 5958 , - 5213 , - 3892 , - 1995 , - 5666 , - 2617 , - 5136 , - 935 , - 2302 , - 3093 , - 3308 , - 2947 , - 2010 , - 497 , - 4552 , - 1887 , - 4790 , - 973 , - 2724 , - 3899 , - 4498 , - 4521 , - 3968 , - 2839 , - 1134 , - 4997 , - 2140 , - 4851 , - 842 , - 2401 , - 3384 , - 3791 , - 3622 , - 2877 , - 1556 , - 5803 , - 3330 , - 281 , - 2800 , - 4743 , - 6110 , - 757 , - 972 , - 611 , - 5818 , - 4305 , - 2216 , - 5695 , - 2454 , - 4781 , - 388 , - 1563 , - 2162 , - 2185 , - 1632 , - 503 , - 4942 , - 2661 , - 5948 , - 2515 , - 4650 , - 65 , - 1048 , - 1455 , - 1286 , - 541 , - 5364 , - 3467 , - 994 , - 4089 , - 464 , - 2407 , - 3774 , - 4565 , - 4780 , - 4419 , - 3482 , - 1969 , - 6024 , - 3359 , - 118 , - 2445 , - 4196 , - 5371 , - 5970 , - 5993 , - 5440 , - 4311 , - 2606 , - 325 , - 3612 , - 179 , - 2314 , - 3873 , - 4856 , - 5263 , - 5094 , - 4349 , - 3028 , - 1131 , - 4802 , - 1753 , - 4272 , - 71 , - 1438 , - 2229 , - 2444 , - 2083 , - 1146 , - 5777 , - 3688 , - 1023 , - 3926 , - 109 , - 1860 , - 3035 , - 3634 , - 3657 , - 3104 , - 1975 , - 270 , - 4133 , - 1276 , - 3987 , - 6122 , - 1537 , - 2520 , - 2927 , - 2758 , - 2013 , - 692 , - 4939 , - 2466 , - 5561 , - 1936 , - 3879 , - 5246 , - 6037 , - 108 , - 5891 , - 4954 , - 3441 , - 1352 , - 4831 , - 1590 , - 3917 , - 5668 , - 699 , - 1298 , - 1321 , - 768 , - 5783 , - 4078 , - 1797 , - 5084 , - 1651 , - 3786 , - 5345 , - 184 , - 591 , - 422 , - 5821 , - 4500 , - 2603 , - 130 , - 3225 , - 5744 , - 1543 , - 2910 , - 3701 , - 3916 , - 3555 , - 2618 , - 1105 , - 5160 , - 2495 , - 5398 , - 1581 , - 3332 , - 4507 , - 5106 , - 5129 , - 4576 , - 3447 , - 1742 , - 5605 , - 2748 , - 5459 , - 1450 , - 3009 , - 3992 , - 4399 , - 4230 , - 3485 , - 2164 , - 267 , - 3938 , - 889 , - 3408 , - 5351 , - 574 , - 1365 , - 1580 , - 1219 , - 282 , - 4913 , - 2824 , - 159 , - 3062 , - 5389 , - 996 , - 2171 , - 2770 , - 2793 , - 2240 , - 1111 , - 5550 , - 3269 , - 412 , - 3123 , - 5258 , - 673 , - 1656 , - 2063 , - 1894 , - 1149 , - 5972 , - 4075 , - 1602 , - 4697 , - 1072 , - 3015 , - 4382 , - 5173 , - 5388 , - 5027 , - 4090 , - 2577 , - 488 , - 3967 , - 726 , - 3053 , - 4804 , - 5979 , - 434 , - 457 , - 6048 , - 4919 , - 3214 , - 933 , - 4220 , - 787 , - 2922 , - 4481 , - 5464 , - 5871 , - 5702 , - 4957 , - 3636 , - 1739 , - 5410 , - 2361 , - 4880 , - 679 , - 2046 , - 2837 , - 3052 , - 2691 , - 1754 , - 241 , - 4296 , - 1631 , - 4534 , - 717 , - 2468 , - 3643 , - 4242 , - 4265 , - 3712 , - 2583 , - 878 , - 4741 , - 1884 , - 4595 , - 586 , - 2145 , - 3128 , - 3535 , - 3366 , - 2621 , - 1300 , - 5547 , - 3074 , - 25 , - 2544 , - 4487 , - 5854 , - 501 , - 716 , - 355 , - 5562 , - 4049 , - 1960 , - 5439 , - 2198 , - 4525 , - 132 , - 1307 , - 1906 , - 1929 , - 1376 , - 247 , - 4686 , - 2405 , - 5692 , - 2259 , - 4394 , - 5953 , - 792 , - 1199 , - 1030 , - 285 , - 5108 , - 3211 , - 738 , - 3833 , - 208 , - 2151 , - 3518 , - 4309 , - 4524 , - 4163 , - 3226 , - 1713 , - 5768 , - 3103 , - 6006 , - 2189 , - 3940 , - 5115 , - 5714 , - 5737 , - 5184 , - 4055 , - 2350 , - 69 , - 3356 , - 6067 , - 2058 , - 3617 , - 4600 , - 5007 , - 4838 , - 4093 , - 2772 , - 875 , - 4546 , - 1497 , - 4016 , - 5959 , - 1182 , - 1973 , - 2188 , - 1827 , - 890 , - 5521 , - 3432 , - 767 , - 3670 , - 5997 , - 1604 , - 2779 , - 3378 , - 3401 , - 2848 , - 1719 , - 14 , - 3877 , - 1020 , - 3731 , - 5866 , - 1281 , - 2264 , - 2671 , - 2502 , - 1757 , - 436 , - 4683 , - 2210 , - 5305 , - 1680 , - 3623 , - 4990 , - 5781 , - 5996 , - 5635 , - 4698 , - 3185 , - 1096 , - 4575 , - 1334 , - 3661 , - 5412 , - 443 , - 1042 , - 1065 , - 512 , - 5527 , - 3822 , - 1541 , - 4828 , - 1395 , - 3530 , - 5089 , - 6072 , - 335 , - 166 , - 5565 , - 4244 , - 2347 , - 6018 , - 2969 , - 5488 , - 1287 , - 2654 , - 3445 , - 3660 , - 3299 , - 2362 , - 849 , - 4904 , - 2239 , - 5142 , - 1325 , - 3076 , - 4251 , - 4850 , - 4873 , - 4320 , - 3191 , - 1486 , - 5349 , - 2492 , - 5203 , - 1194 , - 2753 , - 3736 , - 4143 , - 3974 , - 3229 , - 1908 , - 11 , - 3682 , - 633 , - 3152 , - 5095 , - 318 , - 1109 , - 1324 , - 963 , - 26 , - 4657 , - 2568 , - 6047 , - 2806 , - 5133 , - 740 , - 1915 , - 2514 , - 2537 , - 1984 , - 855 , - 5294 , - 3013 , - 156 , - 2867 , - 5002 , - 417 , - 1400 , - 1807 , - 1638 , - 893 , - 5716 , - 3819 , - 1346 , - 4441 , - 816 , - 2759 , - 4126 , - 4917 , - 5132 , - 4771 , - 3834 , - 2321 , - 232 , - 3711 , - 470 , - 2797 , - 4548 , - 5723 , - 178 , - 201 , - 5792 , - 4663 , - 2958 , - 677 , - 3964 , - 531 , - 2666 , - 4225 , - 5208 , - 5615 , - 5446 , - 4701 , - 3380 , - 1483 , - 5154 , - 2105 , - 4624 , - 423 , - 1790 , - 2581 , - 2796 , - 2435 , - 1498 , - 6129 , - 4040 , - 1375 , - 4278 , - 461 , - 2212 , - 3387 , - 3986 , - 4009 , - 3456 , - 2327 , - 622 , - 4485 , - 1628 , - 4339 , - 330 , - 1889 , - 2872 , - 3279 , - 3110 , - 2365 , - 1044 , - 5291 , - 2818 , - 5913 , - 2288 , - 4231 , - 5598 , - 245 , - 460 , - 99 , - 5306 , - 3793 , - 1704 , - 5183 , - 1942 , - 4269 , - 6020 , - 1051 , - 1650 , - 1673 , - 1120 , - 6135 , - 4430 , - 2149 , - 5436 , - 2003 , - 4138 , - 5697 , - 536 , - 943 , - 774 , - 29 , - 4852 , - 2955 , - 482 , - 3577 , - 6096 , - 1895 , - 3262 , - 4053 , - 4268 , - 3907 , - 2970 , - 1457 , - 5512 , - 2847 , - 5750 , - 1933 , - 3684 , - 4859 , - 5458 , - 5481 , - 4928 , - 3799 , - 2094 , - 5957 , - 3100 , - 5811 , - 1802 , - 3361 , - 4344 , - 4751 , - 4582 , - 3837 , - 2516 , - 619 , - 4290 , - 1241 , - 3760 , - 5703 , - 926 , - 1717 , - 1932 , - 1571 , - 634 , - 5265 , - 3176 , - 511 , - 3414 , - 5741 , - 1348 , - 2523 , - 3122 , - 3145 , - 2592 , - 1463 , - 5902 , - 3621 , - 764 , - 3475 , - 5610 , - 1025 , - 2008 , - 2415 , - 2246 , - 1501 , - 180 , - 4427 , - 1954 , - 5049 , - 1424 , - 3367 , - 4734 , - 5525 , - 5740 , - 5379 , - 4442 , - 2929 , - 840 , - 4319 , - 1078 , - 3405 , - 5156 , - 187 , - 786 , - 809 , - 256 , - 5271 , - 3566 , - 1285 , - 4572 , - 1139 , - 3274 , - 4833 , - 5816 , - 79 , - 6054 , - 5309 , - 3988 , - 2091 , - 5762 , - 2713 , - 5232 , - 1031 , - 2398 , - 3189 , - 3404 , - 3043 , - 2106 , - 593 , - 4648 , - 1983 , - 4886 , - 1069 , - 2820 , - 3995 , - 4594 , - 4617 , - 4064 , - 2935 , - 1230 , - 5093 , - 2236 , - 4947 , - 938 , - 2497 , - 3480 , - 3887 , - 3718 , - 2973 , - 1652 , - 5899 , - 3426 , - 377 , - 2896 , - 4839 , - 62 , - 853 , - 1068 , - 707 , - 5914 , - 4401 , - 2312 , - 5791 , - 2550 , - 4877 , - 484 , - 1659 , - 2258 , - 2281 , - 1728 , - 599 , - 5038 , - 2757 , - 6044 , - 2611 , - 4746 , - 161 , - 1144 , - 1551 , - 1382 , - 637 , - 5460 , - 3563 , - 1090 , - 4185 , - 560 , - 2503 , - 3870 , - 4661 , - 4876 , - 4515 , - 3578 , - 2065 , - 6120 , - 3455 , - 214 , - 2541 , - 4292 , - 5467 , - 6066 , - 6089 , - 5536 , - 4407 , - 2702 , - 421 , - 3708 , - 275 , - 2410 , - 3969 , - 4952 , - 5359 , - 5190 , - 4445 , - 3124 , - 1227 , - 4898 , - 1849 , - 4368 , - 167 , - 1534 , - 2325 , - 2540 , - 2179 , - 1242 , - 5873 , - 3784 , - 1119 , - 4022 , - 205 , - 1956 , - 3131 , - 3730 , - 3753 , - 3200 , - 2071 , - 366 , - 4229 , - 1372 , - 4083 , - 74 , - 1633 , - 2616 , - 3023 , - 2854 , - 2109 , - 788 , - 5035 , - 2562 , - 5657 , - 2032 , - 3975 , - 5342 , - 6133 , - 204 , - 5987 , - 5050 , - 3537 , - 1448 , - 4927 , - 1686 , - 4013 , - 5764 , - 795 , - 1394 , - 1417 , - 864 , - 5879 , - 4174 , - 1893 , - 5180 , - 1747 , - 3882 , - 5441 , - 280 , - 687 , - 518 , - 5917 , - 4596 , - 2699 , - 226 , - 3321 , - 5840 , - 1639 , - 3006 , - 3797 , - 4012 , - 3651 , - 2714 , - 1201 , - 5256 , - 2591 , - 5494 , - 1677 , - 3428 , - 4603 , - 5202 , - 5225 , - 4672 , - 3543 , - 1838 , - 5701 , - 2844 , - 5555 , - 1546 , - 3105 , - 4088 , - 4495 , - 4326 , - 3581 , - 2260 , - 363 , - 4034 , - 985 , - 3504 , - 5447 , - 670 , - 1461 , - 1676 , - 1315 , - 378 , - 5009 , - 2920 , - 255 , - 3158 , - 5485 , - 1092 , - 2267 , - 2866 , - 2889 , - 2336 , - 1207 , - 5646 , - 3365 , - 508 , - 3219 , - 5354 , - 769 , - 1752 , - 2159 , - 1990 , - 1245 , - 6068 , - 4171 , - 1698 , - 4793 , - 1168 , - 3111 , - 4478 , - 5269 , - 5484 , - 5123 , - 4186 , - 2673 , - 584 , - 4063 , - 822 , - 3149 , - 4900 , - 6075 , - 530 , - 553 , -}; -#endif diff --git a/openair1/PHY/CODING/lte_interleaver2.h b/openair1/PHY/CODING/lte_interleaver2.h deleted file mode 100644 index 60b2fa6d1f..0000000000 --- a/openair1/PHY/CODING/lte_interleaver2.h +++ /dev/null @@ -1,210 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -unsigned short f1f2mat_old[2*188] = {3, 10, - 7, 12, - 19, 42, - 7, 16, - 7, 18, - 11, 20, - 5, 22, - 11, 24, - 7, 26, - 41, 84, - 103, 90, - 15, 32, - 9, 34, - 17, 108, - 9, 38, - 21, 120, - 101, 84, - 21, 44, - 57, 46, - 23, 48, - 13, 50, - 27, 52, - 11, 36, - 27, 56, - 85, 58, - 29, 60, - 33, 62, - 15, 32, - 17, 198, - 33, 68, - 103, 210, - 19, 36, - 19, 74, - 37, 76, - 19, 78, - 21, 120, - 21, 82, - 115, 84, - 193, 86, - 21, 44, - 133, 90, - 81, 46, - 45, 94, - 23, 48, - 243, 98, - 151, 40, - 155, 102, - 25, 52, - 51, 106, - 47, 72, - 91, 110, - 29, 168, - 29, 114, - 247, 58, - 29, 118, - 89, 180, - 91, 122, - 157, 62, - 55, 84, - 31, 64, - 17, 66, - 35, 68, - 227, 420, - 65, 96, - 19, 74, - 37, 76, - 41, 234, - 39, 80, - 185, 82, - 43, 252, - 21, 86, - 155, 44, - 79, 120, - 139, 92, - 23, 94, - 217, 48, - 25, 98, - 17, 80, - 127, 102, - 25, 52, - 239, 106, - 17, 48, - 137, 110, - 215, 112, - 29, 114, - 15, 58, - 147, 118, - 29, 60, - 59, 122, - 65, 124, - 55, 84, - 31, 64, - 17, 66, - 171, 204, - 67, 140, - 35, 72, - 19, 74, - 39, 76, - 19, 78, - 199, 240, - 21, 82, - 211, 252, - 21, 86, - 43, 88, - 149, 60, - 45, 92, - 49, 846, - 71, 48, - 13, 28, - 17, 80, - 25, 102, - 183, 104, - 55, 954, - 127, 96, - 27, 110, - 29, 112, - 29, 114, - 57, 116, - 45, 354, - 31, 120, - 59, 610, - 185, 124, - 113, 420, - 31, 64, - 17, 66, - 171, 136, - 209, 420, - 253, 216, - 367, 444, - 265, 456, - 181, 468, - 39, 80, - 27, 164, - 127, 504, - 143, 172, - 43, 88, - 29, 300, - 45, 92, - 157, 188, - 47, 96, - 13, 28, - 111, 240, - 443, 204, - 51, 104, - 51, 212, - 451, 192, - 257, 220, - 57, 336, - 313, 228, - 271, 232, - 179, 236, - 331, 120, - 363, 244, - 375, 248, - 127, 168, - 31, 64, - 33, 130, - 43, 264, - 33, 134, - 477, 408, - 35, 138, - 233, 280, - 357, 142, - 337, 480, - 37, 146, - 71, 444, - 71, 120, - 37, 152, - 39, 462, - 127, 234, - 39, 158, - 39, 80, - 31, 96, - 113, 902, - 41, 166, - 251, 336, - 43, 170, - 21, 86, - 43, 174, - 45, 176, - 45, 178, - 161, 120, - 89, 182, - 323, 184, - 47, 186, - 23, 94, - 47, 190, - 263, 480 - }; diff --git a/openair1/PHY/INIT/init_top.c b/openair1/PHY/INIT/init_top.c index f033a7e5c1..e64eda740c 100644 --- a/openair1/PHY/INIT/init_top.c +++ b/openair1/PHY/INIT/init_top.c @@ -67,17 +67,12 @@ void generate_qpsk_table(void) void init_lte_top(LTE_DL_FRAME_PARMS *frame_parms) { - crcTableInit(); - - ccodedot11_init(); - ccodedot11_init_inv(); - ccodelte_init(); ccodelte_init_inv(); + init_dfts(); - phy_generate_viterbi_tables(); phy_generate_viterbi_tables_lte(); load_codinglib(); @@ -88,6 +83,7 @@ void init_lte_top(LTE_DL_FRAME_PARMS *frame_parms) generate_64qam_table(); generate_16qam_table(); + generate_qpsk_table(); generate_RIV_tables(); init_unscrambling_lut(); diff --git a/openair1/PHY/INIT/lte_init.c b/openair1/PHY/INIT/lte_init.c index 55ac76d2f6..cbae84f56b 100644 --- a/openair1/PHY/INIT/lte_init.c +++ b/openair1/PHY/INIT/lte_init.c @@ -31,7 +31,7 @@ #include "RadioResourceConfigDedicated.h" #include "TDD-Config.h" #include "MBSFN-SubframeConfigList.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "assertions.h" #include @@ -255,12 +255,7 @@ void phy_config_request(PHY_Config_t *phy_config) { "prach_starting_subframe_periodicity[0] %d < prach_numPetitionPerPreambleAttempt[0] %d\n", fp->prach_emtc_config_common.prach_ConfigInfo.prach_starting_subframe_periodicity[0], fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[0]); -#if 0 - AssertFatal(fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[0] > 0, - "prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[0]==0\n"); -#else - LOG_E(PHY,"***DJP*** removed assert on preamble fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[0]:%d expecting >0 %s:%d\n\n\n", fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[0], __FILE__, __LINE__); -#endif + fp->prach_emtc_config_common.prach_ConfigInfo.prach_ConfigIndex[0] = cfg->emtc_config.prach_ce_level_0_configuration_index.value; fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[0] = cfg->emtc_config.prach_ce_level_0_frequency_offset.value; fp->prach_emtc_config_common.prach_ConfigInfo.prach_hopping_enable[0] = cfg->emtc_config.prach_ce_level_0_hopping_enable.value; @@ -471,7 +466,7 @@ void phy_config_sib2_eNB(uint8_t Mod_id, } */ -void phy_config_sib13_eNB(uint8_t Mod_id,int CC_id,int mbsfn_Area_idx, +void phy_config_sib13_eNB(module_id_t Mod_id,int CC_id,int mbsfn_Area_idx, long mbsfn_AreaId_r9) { @@ -482,7 +477,7 @@ void phy_config_sib13_eNB(uint8_t Mod_id,int CC_id,int mbsfn_Area_idx, if (mbsfn_Area_idx == 0) { fp->Nid_cell_mbsfn = (uint16_t)mbsfn_AreaId_r9; - LOG_N(PHY,"Fix me: only called when mbsfn_Area_idx == 0)\n"); + LOG_I(PHY,"Fix me: only called when mbsfn_Area_idx == 0)\n"); } lte_gold_mbsfn(fp,RC.eNB[Mod_id][CC_id]->lte_gold_mbsfn_table,fp->Nid_cell_mbsfn); @@ -491,8 +486,7 @@ void phy_config_sib13_eNB(uint8_t Mod_id,int CC_id,int mbsfn_Area_idx, void phy_config_dedicated_eNB_step2(PHY_VARS_eNB *eNB) { - - uint8_t UE_id; + uint16_t UE_id; struct PhysicalConfigDedicated *physicalConfigDedicated; LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms; diff --git a/openair1/PHY/INIT/lte_init_ru.c b/openair1/PHY/INIT/lte_init_ru.c index 76006afaaa..bcd8bedc1a 100644 --- a/openair1/PHY/INIT/lte_init_ru.c +++ b/openair1/PHY/INIT/lte_init_ru.c @@ -27,7 +27,7 @@ #include "RadioResourceConfigDedicated.h" #include "TDD-Config.h" #include "MBSFN-SubframeConfigList.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "assertions.h" #include @@ -109,7 +109,7 @@ int phy_init_RU(RU_t *ru) { AssertFatal(RC.nb_L1_inst <= NUMBER_OF_eNB_MAX,"eNB instances %d > %d\n", RC.nb_L1_inst,NUMBER_OF_eNB_MAX); - LOG_E(PHY,"[INIT] %s() RC.nb_L1_inst:%d \n", __FUNCTION__, RC.nb_L1_inst); + LOG_D(PHY,"[INIT] %s() RC.nb_L1_inst:%d \n", __FUNCTION__, RC.nb_L1_inst); for (i=0; i #include "PHY/LTE_TRANSPORT/transport_common_proto.h" @@ -37,7 +37,7 @@ uint8_t dmrs1_tab_ue[8] = {0,2,3,4,6,8,9,10}; extern uint8_t nfapi_mode; -void phy_config_sib1_ue(uint8_t Mod_id,int CC_id, +void phy_config_sib1_ue(module_id_t Mod_id,int CC_id, uint8_t eNB_id, TDD_Config_t *tdd_Config, uint8_t SIwindowsize, @@ -55,7 +55,7 @@ void phy_config_sib1_ue(uint8_t Mod_id,int CC_id, fp->SIPeriod = SIperiod; } -void phy_config_sib2_ue(uint8_t Mod_id,int CC_id, +void phy_config_sib2_ue(module_id_t Mod_id,int CC_id, uint8_t eNB_id, RadioResourceConfigCommonSIB_t *radioResourceConfigCommon, ARFCN_ValueEUTRA_t *ul_CarrierFreq, @@ -179,7 +179,7 @@ void phy_config_sib2_ue(uint8_t Mod_id,int CC_id, } -void phy_config_sib13_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id,int mbsfn_Area_idx, +void phy_config_sib13_ue(module_id_t Mod_id,int CC_id,uint8_t eNB_id,int mbsfn_Area_idx, long mbsfn_AreaId_r9) { @@ -190,7 +190,7 @@ void phy_config_sib13_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id,int mbsfn_Area_ if (mbsfn_Area_idx == 0) { fp->Nid_cell_mbsfn = (uint16_t)mbsfn_AreaId_r9; - LOG_N(PHY,"Fix me: only called when mbsfn_Area_idx == 0)\n"); + LOG_I(PHY,"Fix me: only called when mbsfn_Area_idx == 0)\n"); } lte_gold_mbsfn(fp,PHY_vars_UE_g[Mod_id][CC_id]->lte_gold_mbsfn_table,fp->Nid_cell_mbsfn); @@ -201,7 +201,7 @@ void phy_config_sib13_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id,int mbsfn_Area_ /* * Configures UE MAC and PHY with radioResourceCommon received in mobilityControlInfo IE during Handover */ -void phy_config_afterHO_ue(uint8_t Mod_id,uint8_t CC_id,uint8_t eNB_id, MobilityControlInfo_t *mobilityControlInfo, uint8_t ho_failed) +void phy_config_afterHO_ue(module_id_t Mod_id,uint8_t CC_id,uint8_t eNB_id, MobilityControlInfo_t *mobilityControlInfo, uint8_t ho_failed) { if(mobilityControlInfo!=NULL) { @@ -324,7 +324,7 @@ void phy_config_afterHO_ue(uint8_t Mod_id,uint8_t CC_id,uint8_t eNB_id, Mobility } } -void phy_config_meas_ue(uint8_t Mod_id,uint8_t CC_id,uint8_t eNB_index,uint8_t n_adj_cells,unsigned int *adj_cell_id) +void phy_config_meas_ue(module_id_t Mod_id,uint8_t CC_id,uint8_t eNB_index,uint8_t n_adj_cells,unsigned int *adj_cell_id) { PHY_MEASUREMENTS *phy_meas = &PHY_vars_UE_g[Mod_id][CC_id]->measurements; @@ -353,7 +353,7 @@ void phy_config_dedicated_scell_ue(uint8_t Mod_id, #endif -void phy_config_harq_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id, +void phy_config_harq_ue(module_id_t Mod_id,int CC_id,uint8_t eNB_id, uint16_t max_harq_tx ) { @@ -363,7 +363,7 @@ void phy_config_harq_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id, extern uint16_t beta_cqi[16]; -void phy_config_dedicated_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id, +void phy_config_dedicated_ue(module_id_t Mod_id,int CC_id,uint8_t eNB_id, struct PhysicalConfigDedicated *physicalConfigDedicated ) { diff --git a/openair1/PHY/INIT/lte_parms.c b/openair1/PHY/INIT/lte_parms.c index e7c4ced5d3..3b8a26125d 100644 --- a/openair1/PHY/INIT/lte_parms.c +++ b/openair1/PHY/INIT/lte_parms.c @@ -100,6 +100,7 @@ int init_frame_parms(LTE_DL_FRAME_PARMS *frame_parms,uint8_t osf) frame_parms->first_carrier_offset = 1536-600; frame_parms->nb_prefix_samples=(frame_parms->nb_prefix_samples*3)>>2; frame_parms->nb_prefix_samples0=(frame_parms->nb_prefix_samples0*3)>>2; + } else { frame_parms->ofdm_symbol_size = 2048; @@ -148,7 +149,6 @@ int init_frame_parms(LTE_DL_FRAME_PARMS *frame_parms,uint8_t osf) frame_parms->N_RBGS = 2; frame_parms->N_RBG = 13; - break; case 15: @@ -159,6 +159,7 @@ int init_frame_parms(LTE_DL_FRAME_PARMS *frame_parms,uint8_t osf) frame_parms->nb_prefix_samples0>>=(3-log2_osf); frame_parms->N_RBGS = 2; frame_parms->N_RBG = 8; + break; case 6: @@ -169,6 +170,7 @@ int init_frame_parms(LTE_DL_FRAME_PARMS *frame_parms,uint8_t osf) frame_parms->nb_prefix_samples0>>=(4-log2_osf); frame_parms->N_RBGS = 1; frame_parms->N_RBG = 6; + break; default: diff --git a/openair1/PHY/INIT/phy_init.h b/openair1/PHY/INIT/phy_init.h index 8da34fc51c..da4050c848 100644 --- a/openair1/PHY/INIT/phy_init.h +++ b/openair1/PHY/INIT/phy_init.h @@ -373,6 +373,8 @@ void phy_config_request(PHY_Config_t *phy_config); int init_frame_parms(LTE_DL_FRAME_PARMS *frame_parms,uint8_t osf); void dump_frame_parms(LTE_DL_FRAME_PARMS *frame_parms); +void init_dfts(void); + /** @} */ #endif diff --git a/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c b/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c index 2b7873cc29..e268a5b061 100644 --- a/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c +++ b/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c @@ -34,7 +34,7 @@ void lte_adjust_synch(LTE_DL_FRAME_PARMS *frame_parms, PHY_VARS_UE *ue, - unsigned char eNB_id, + module_id_t eNB_id, uint8_t subframe, unsigned char clear, short coef) diff --git a/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync_eNB.c b/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync_eNB.c index 3bf4c40ade..61ce019577 100644 --- a/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync_eNB.c +++ b/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync_eNB.c @@ -23,7 +23,7 @@ #include "PHY/defs_eNB.h" #include "PHY/phy_extern.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #define DEBUG_PHY @@ -79,7 +79,7 @@ int lte_est_timing_advance(LTE_DL_FRAME_PARMS *frame_parms, #ifdef DEBUG_PHY sprintf(fname,"srs_ch_estimates_time_%d%d.m",ind,aa); sprintf(vname,"srs_time_%d%d",ind,aa); - write_output(fname,vname,lte_eNB_srs->srs_ch_estimates_time[aa],frame_parms->ofdm_symbol_size*2,2,1); + LOG_M(fname,vname,lte_eNB_srs->srs_ch_estimates_time[aa],frame_parms->ofdm_symbol_size*2,2,1); #endif } @@ -112,7 +112,7 @@ int lte_est_timing_advance(LTE_DL_FRAME_PARMS *frame_parms, } -int lte_est_timing_advance_pusch(PHY_VARS_eNB* eNB,uint8_t UE_id) +int lte_est_timing_advance_pusch(PHY_VARS_eNB* eNB,module_id_t UE_id) { int temp, i, aa, max_pos=0, max_val=0; short Re,Im; diff --git a/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync_ue.c b/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync_ue.c index 06ef4a5d1a..732db1fa4e 100644 --- a/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync_ue.c +++ b/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync_ue.c @@ -25,7 +25,7 @@ #include "PHY/impl_defs_top.h" #include "openair2/LAYER2/MAC/mac_proto.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #define DEBUG_PHY @@ -35,7 +35,7 @@ void lte_adjust_synch(LTE_DL_FRAME_PARMS *frame_parms, PHY_VARS_UE *ue, - unsigned char eNB_id, + module_id_t eNB_id, uint8_t subframe, unsigned char clear, short coef) diff --git a/openair1/PHY/LTE_ESTIMATION/lte_dl_bf_channel_estimation.c b/openair1/PHY/LTE_ESTIMATION/lte_dl_bf_channel_estimation.c index 8d1fb20d6b..43c0350efb 100644 --- a/openair1/PHY/LTE_ESTIMATION/lte_dl_bf_channel_estimation.c +++ b/openair1/PHY/LTE_ESTIMATION/lte_dl_bf_channel_estimation.c @@ -28,7 +28,7 @@ //#define DEBUG_BF_CH int lte_dl_bf_channel_estimation(PHY_VARS_UE *phy_vars_ue, - uint8_t eNB_id, + module_id_t eNB_id, uint8_t eNB_offset, unsigned char Ns, unsigned char p, @@ -81,7 +81,7 @@ int lte_dl_bf_channel_estimation(PHY_VARS_UE *phy_vars_ue, //generate ue specific pilots lprime = symbol/3-1; lte_dl_ue_spec_rx(phy_vars_ue,uespec_pilot,Ns,5,lprime,0,dlsch0_harq->nb_rb); - //write_output("uespec_pilot_rx.m","uespec_pilot",uespec_pilot,300,1,1); + //LOG_M("uespec_pilot_rx.m","uespec_pilot",uespec_pilot,300,1,1); if (frame_parms->Ncp==0){ if (symbol==3 || symbol==6 || symbol==9 || symbol==12) diff --git a/openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c b/openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c index a72563f7e6..f7c4a3ead3 100644 --- a/openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c +++ b/openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c @@ -29,7 +29,7 @@ #include "SCHED_UE/sched_UE.h" int lte_dl_channel_estimation(PHY_VARS_UE *ue, - uint8_t eNB_id, + module_id_t eNB_id, uint8_t eNB_offset, unsigned char Ns, unsigned char p, diff --git a/openair1/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c b/openair1/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c index c4fc80a8c1..1a0611b962 100644 --- a/openair1/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c +++ b/openair1/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c @@ -26,7 +26,7 @@ //#define DEBUG_CH int lte_dl_mbsfn_channel_estimation(PHY_VARS_UE *ue, - uint8_t eNB_id, + module_id_t eNB_id, uint8_t eNB_offset, int subframe, unsigned char l) diff --git a/openair1/PHY/LTE_ESTIMATION/lte_eNB_measurements.c b/openair1/PHY/LTE_ESTIMATION/lte_eNB_measurements.c index b416ff9e79..a881773910 100644 --- a/openair1/PHY/LTE_ESTIMATION/lte_eNB_measurements.c +++ b/openair1/PHY/LTE_ESTIMATION/lte_eNB_measurements.c @@ -34,7 +34,7 @@ int32_t rx_power_avg_eNB[3]; void lte_eNB_I0_measurements(PHY_VARS_eNB *eNB, int subframe, - unsigned char eNB_id, + module_id_t eNB_id, unsigned char clear) { @@ -115,8 +115,8 @@ void lte_eNB_I0_measurements(PHY_VARS_eNB *eNB, } void lte_eNB_srs_measurements(PHY_VARS_eNB *eNB, - unsigned char eNB_id, - unsigned char UE_id, + module_id_t eNB_id, + module_id_t UE_id, unsigned char init_averaging) { LTE_DL_FRAME_PARMS *frame_parms = &eNB->frame_parms; diff --git a/openair1/PHY/LTE_ESTIMATION/lte_sync_time.c b/openair1/PHY/LTE_ESTIMATION/lte_sync_time.c index 5f00ef4def..de29baa68f 100644 --- a/openair1/PHY/LTE_ESTIMATION/lte_sync_time.c +++ b/openair1/PHY/LTE_ESTIMATION/lte_sync_time.c @@ -276,11 +276,11 @@ int lte_sync_time_init(LTE_DL_FRAME_PARMS *frame_parms ) // LTE_UE_COMMON *com -#ifdef DEBUG_PHY - write_output("primary_sync0.m","psync0",primary_synch0_time,frame_parms->ofdm_symbol_size,1,1); - write_output("primary_sync1.m","psync1",primary_synch1_time,frame_parms->ofdm_symbol_size,1,1); - write_output("primary_sync2.m","psync2",primary_synch2_time,frame_parms->ofdm_symbol_size,1,1); -#endif +LOG_M_BEGIN(DEBUG_LTEESTIM); + LOG_M("primary_sync0.m","psync0",primary_synch0_time,frame_parms->ofdm_symbol_size,1,1); + LOG_M("primary_sync1.m","psync1",primary_synch1_time,frame_parms->ofdm_symbol_size,1,1); + LOG_M("primary_sync2.m","psync2",primary_synch2_time,frame_parms->ofdm_symbol_size,1,1); +LOG_M_END return (1); } @@ -332,10 +332,6 @@ static inline int abs32(int x) return (((int)((short*)&x)[0])*((int)((short*)&x)[0]) + ((int)((short*)&x)[1])*((int)((short*)&x)[1])); } -#ifdef DEBUG_PHY -int debug_cnt=0; -#endif - #define SHIFT 17 int lte_sync_time(int **rxdata, ///rx data in time domain @@ -458,19 +454,18 @@ int lte_sync_time(int **rxdata, ///rx data in time domain LOG_I(PHY,"[UE] lte_sync_time: Sync source = %d, Peak found at pos %d, val = %d (%d dB)\n",sync_source,peak_pos,peak_val,dB_fixed(peak_val)/2); -#ifdef DEBUG_PHY +LOG_M_BEGIN(DEBUG_LTEESTIM) +static int debug_cnt; if (debug_cnt == 0) { - write_output("sync_corr0_ue.m","synccorr0",sync_corr_ue0,2*length,1,2); - write_output("sync_corr1_ue.m","synccorr1",sync_corr_ue1,2*length,1,2); - write_output("sync_corr2_ue.m","synccorr2",sync_corr_ue2,2*length,1,2); - write_output("rxdata0.m","rxd0",rxdata[0],length<<1,1,1); + LOG_M("sync_corr0_ue.m","synccorr0",sync_corr_ue0,2*length,1,2); + LOG_M("sync_corr1_ue.m","synccorr1",sync_corr_ue1,2*length,1,2); + LOG_M("sync_corr2_ue.m","synccorr2",sync_corr_ue2,2*length,1,2); + LOG_M("rxdata0.m","rxd0",rxdata[0],length<<1,1,1); // exit(-1); } else { debug_cnt++; } - - -#endif +LOG_M_END return(peak_pos); diff --git a/openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c b/openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c index fd7b8d601a..de48a855df 100644 --- a/openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c +++ b/openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c @@ -67,7 +67,7 @@ void lte_sync_timefreq(PHY_VARS_UE *ue,int band,unsigned int DL_freq) for (i=0; i<38400*4; i+=3072) { // steps of 200 us with 100 us overlap, 0 to 5s - // write_output("rxsig0.m","rxs0",ue->lte_ue_common_vars.rxdata[0],30720,1,1); + // LOG_M("rxsig0.m","rxs0",ue->lte_ue_common_vars.rxdata[0],30720,1,1); //for (i = 15360-3072*2; i<15360+3072+1; i+=3072) { @@ -81,15 +81,15 @@ void lte_sync_timefreq(PHY_VARS_UE *ue,int band,unsigned int DL_freq) //compute frequency-domain representation of 6144-sample chunk dft6144((int16_t *)rxp, - sp); + sp,1); /* printf("i %d: sp %p\n",i,sp); if (i==12288) { - write_output("scan6144F.m","s6144F",sp,6144,1,1); - write_output("scan6144.m","s6144",rxp,6144,1,1); - write_output("pss0_6144.m","pss0",pss6144_0_0,256,1,1); + LOG_M("scan6144F.m","s6144F",sp,6144,1,1); + LOG_M("scan6144.m","s6144",rxp,6144,1,1); + LOG_M("pss0_6144.m","pss0",pss6144_0_0,256,1,1); }*/ for (f = -2000; f<2000; f++) { // this is -10MHz to 10 MHz in 5 kHz steps @@ -272,10 +272,10 @@ void lte_sync_timefreq(PHY_VARS_UE *ue,int band,unsigned int DL_freq) if (i==12288) { sprintf(fname,"corr256F_%d.m",abs(f)); sprintf(vname,"c256F_%d",abs(f)); - write_output(fname,vname,autocorr0,256,1,1); + LOG_M(fname,vname,autocorr0,256,1,1); sprintf(fname,"corr256_%d.m",abs(f)); sprintf(vname,"c256_%d",abs(f)); - write_output(fname,vname,tmp_t,256,1,1); + LOG_M(fname,vname,tmp_t,256,1,1); }*/ memset((void*)autocorr0_t,0,256*4); diff --git a/openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c b/openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c index 199fc2d846..bf22802145 100644 --- a/openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c +++ b/openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c @@ -55,7 +55,7 @@ void print_ints(char *s,int *x) } -int16_t get_PL(uint8_t Mod_id,uint8_t CC_id,uint8_t eNB_index) +int16_t get_PL(module_id_t Mod_id,uint8_t CC_id,uint8_t eNB_index) { PHY_VARS_UE *ue = PHY_vars_UE_g[Mod_id][CC_id]; @@ -81,7 +81,7 @@ int16_t get_PL(uint8_t Mod_id,uint8_t CC_id,uint8_t eNB_index) } -uint8_t get_n_adj_cells (uint8_t Mod_id,uint8_t CC_id) +uint8_t get_n_adj_cells (module_id_t Mod_id,uint8_t CC_id) { PHY_VARS_UE *ue = PHY_vars_UE_g[Mod_id][CC_id]; @@ -92,7 +92,7 @@ uint8_t get_n_adj_cells (uint8_t Mod_id,uint8_t CC_id) return 0; } -uint32_t get_rx_total_gain_dB (uint8_t Mod_id,uint8_t CC_id) +uint32_t get_rx_total_gain_dB (module_id_t Mod_id,uint8_t CC_id) { PHY_VARS_UE *ue = PHY_vars_UE_g[Mod_id][CC_id]; @@ -102,7 +102,7 @@ uint32_t get_rx_total_gain_dB (uint8_t Mod_id,uint8_t CC_id) return 0xFFFFFFFF; } -uint32_t get_RSSI (uint8_t Mod_id,uint8_t CC_id) +uint32_t get_RSSI (module_id_t Mod_id,uint8_t CC_id) { PHY_VARS_UE *ue = PHY_vars_UE_g[Mod_id][CC_id]; @@ -112,7 +112,7 @@ uint32_t get_RSSI (uint8_t Mod_id,uint8_t CC_id) return 0xFFFFFFFF; } -double get_RSRP(uint8_t Mod_id,uint8_t CC_id,uint8_t eNB_index) +double get_RSRP(module_id_t Mod_id,uint8_t CC_id,uint8_t eNB_index) { AssertFatal(PHY_vars_UE_g!=NULL,"PHY_vars_UE_g is null\n"); @@ -128,7 +128,7 @@ double get_RSRP(uint8_t Mod_id,uint8_t CC_id,uint8_t eNB_index) return -140.0; } -uint32_t get_RSRQ(uint8_t Mod_id,uint8_t CC_id,uint8_t eNB_index) +uint32_t get_RSRQ(module_id_t Mod_id,uint8_t CC_id,uint8_t eNB_index) { PHY_VARS_UE *ue = PHY_vars_UE_g[Mod_id][CC_id]; @@ -139,7 +139,7 @@ uint32_t get_RSRQ(uint8_t Mod_id,uint8_t CC_id,uint8_t eNB_index) return 0xFFFFFFFF; } -int8_t set_RSRP_filtered(uint8_t Mod_id,uint8_t CC_id,uint8_t eNB_index,float rsrp) +int8_t set_RSRP_filtered(module_id_t Mod_id,uint8_t CC_id,uint8_t eNB_index,float rsrp) { PHY_VARS_UE *ue = PHY_vars_UE_g[Mod_id][CC_id]; @@ -153,7 +153,7 @@ int8_t set_RSRP_filtered(uint8_t Mod_id,uint8_t CC_id,uint8_t eNB_index,float rs return -1; } -int8_t set_RSRQ_filtered(uint8_t Mod_id,uint8_t CC_id,uint8_t eNB_index,float rsrq) +int8_t set_RSRQ_filtered(module_id_t Mod_id,uint8_t CC_id,uint8_t eNB_index,float rsrq) { PHY_VARS_UE *ue = PHY_vars_UE_g[Mod_id][CC_id]; diff --git a/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c b/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c index 74ef6798c7..e5b28ff2e3 100644 --- a/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c +++ b/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c @@ -23,9 +23,8 @@ #include "PHY/phy_extern.h" #include "PHY/sse_intrin.h" //#define DEBUG_CH -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "PHY/LTE_TRANSPORT/transport_common_proto.h" -#include "T.h" #include "lte_estimation.h" // round(exp(sqrt(-1)*(pi/2)*[0:1:N-1]/N)*pow2(15)) @@ -37,7 +36,7 @@ static int16_t ru_90c[2*128] = {32767, 0,32766, -402,32758, -804,32746, -1206,32 int32_t lte_ul_channel_estimation(PHY_VARS_eNB *eNB, eNB_rxtx_proc_t *proc, - uint8_t UE_id, + module_id_t UE_id, unsigned char l, unsigned char Ns) { @@ -105,9 +104,9 @@ int32_t temp_in_ifft_0[2048*2] __attribute__((aligned(32))); #ifdef DEBUG_CH if (Ns==0) - write_output("drs_seq0.m","drsseq0",ul_ref_sigs_rx[u][v][Msc_RS_idx],2*Msc_RS,2,1); + LOG_M("drs_seq0.m","drsseq0",ul_ref_sigs_rx[u][v][Msc_RS_idx],2*Msc_RS,2,1); else - write_output("drs_seq1.m","drsseq1",ul_ref_sigs_rx[u][v][Msc_RS_idx],2*Msc_RS,2,1); + LOG_M("drs_seq1.m","drsseq1",ul_ref_sigs_rx[u][v][Msc_RS_idx],2*Msc_RS,2,1); #endif @@ -228,7 +227,7 @@ int32_t temp_in_ifft_0[2048*2] __attribute__((aligned(32))); if((cyclic_shift != 0)) { // Compensating for the phase shift introduced at the transmitte #ifdef DEBUG_CH - write_output("drs_est_pre.m","drsest_pre",ul_ch_estimates[0],300*12,1,1); + LOG_M("drs_est_pre.m","drsest_pre",ul_ch_estimates[0],300*12,1,1); #endif for(i=symbol_offset; isrs[eNB_id], 0x7FFF, subframe)==-1) { - LOG_E(PHY,"lte_srs_channel_estimation: Error in generate_srs_rx\n"); + LOG_E(PHY,"lte_srs_channel_estimation: Error in generate_srs\n"); return(-1); } @@ -466,8 +465,8 @@ int32_t lte_srs_channel_estimation(LTE_DL_FRAME_PARMS *frame_parms, srs_vars->srs_ch_estimates[aa]); #endif - //write_output("eNB_rxF.m","rxF",&common_vars->rxdataF[0][aa][2*frame_parms->ofdm_symbol_size*symbol],2*(frame_parms->ofdm_symbol_size),2,1); - //write_output("eNB_srs.m","srs_eNB",common_vars->srs,(frame_parms->ofdm_symbol_size),1,1); + //LOG_M("eNB_rxF.m","rxF",&common_vars->rxdataF[0][aa][2*frame_parms->ofdm_symbol_size*symbol],2*(frame_parms->ofdm_symbol_size),2,1); + //LOG_M("eNB_srs.m","srs_eNB",common_vars->srs,(frame_parms->ofdm_symbol_size),1,1); mult_cpx_conj_vector((int16_t*) &common_vars->rxdataF[aa][2*frame_parms->ofdm_symbol_size*symbol], @@ -480,7 +479,7 @@ int32_t lte_srs_channel_estimation(LTE_DL_FRAME_PARMS *frame_parms, #ifdef DEBUG_SRS sprintf(fname,"srs_ch_est%d.m",aa); sprintf(vname,"srs_est%d",aa); - write_output(fname,vname,srs_vars->srs_ch_estimates[aa],frame_parms->ofdm_symbol_size,1,1); + LOG_M(fname,vname,srs_vars->srs_ch_estimates[aa],frame_parms->ofdm_symbol_size,1,1); #endif } diff --git a/openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c b/openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c index 56d8aaf1df..1eabfd6c36 100644 --- a/openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c +++ b/openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c @@ -256,9 +256,9 @@ int lte_dl_cell_spec_rx(PHY_VARS_UE *ue, -//extern int write_output(const char *,const char *,void *,int,int,char); +//extern int LOG_M(const char *,const char *,void *,int,int,char); // flag change eren -extern int write_output(const char *,const char *,void *,int,int,char); +extern int LOG_M(const char *,const char *,void *,int,int,char); main() { @@ -317,10 +317,10 @@ main() 0); - write_output("dl_cell_spec00.m","dl_cs00",output00,1024,1,1); - write_output("dl_cell_spec01.m","dl_cs01",output01,1024,1,1); - write_output("dl_cell_spec10.m","dl_cs10",output10,1024,1,1); - write_output("dl_cell_spec11.m","dl_cs11",output11,1024,1,1); + LOG_M("dl_cell_spec00.m","dl_cs00",output00,1024,1,1); + LOG_M("dl_cell_spec01.m","dl_cs01",output01,1024,1,1); + LOG_M("dl_cell_spec10.m","dl_cs10",output10,1024,1,1); + LOG_M("dl_cell_spec11.m","dl_cs11",output11,1024,1,1); } #endif diff --git a/openair1/PHY/LTE_REFSIG/lte_dl_uespec.c b/openair1/PHY/LTE_REFSIG/lte_dl_uespec.c index fc03299f2b..2c5240e143 100644 --- a/openair1/PHY/LTE_REFSIG/lte_dl_uespec.c +++ b/openair1/PHY/LTE_REFSIG/lte_dl_uespec.c @@ -317,9 +317,9 @@ int lte_dl_ue_spec_rx(PHY_VARS_UE *ue, -//extern int write_output(const char *,const char *,void *,int,int,char); +//extern int LOG_M(const char *,const char *,void *,int,int,char); // flag change eren -extern int write_output(const char *,const char *,void *,int,int,char); +extern int LOG_M(const char *,const char *,void *,int,int,char); main() { @@ -378,10 +378,10 @@ main() 0); - write_output("dl_ue_spec00.m","dl_cs00",output00,1024,1,1); - write_output("dl_ue_spec01.m","dl_cs01",output01,1024,1,1); - write_output("dl_ue_spec10.m","dl_cs10",output10,1024,1,1); - write_output("dl_ue_spec11.m","dl_cs11",output11,1024,1,1); + LOG_M("dl_ue_spec00.m","dl_cs00",output00,1024,1,1); + LOG_M("dl_ue_spec01.m","dl_cs01",output01,1024,1,1); + LOG_M("dl_ue_spec10.m","dl_cs10",output10,1024,1,1); + LOG_M("dl_ue_spec11.m","dl_cs11",output11,1024,1,1); } diff --git a/openair1/PHY/LTE_REFSIG/lte_gold.c b/openair1/PHY/LTE_REFSIG/lte_gold.c index 78fae8b8f3..c5e48d8364 100644 --- a/openair1/PHY/LTE_REFSIG/lte_gold.c +++ b/openair1/PHY/LTE_REFSIG/lte_gold.c @@ -44,7 +44,6 @@ N_{ID}^{cell = 0..503 void lte_gold(LTE_DL_FRAME_PARMS *frame_parms,uint32_t lte_gold_table[20][2][14],uint16_t Nid_cell) { - unsigned char ns,l,Ncp=1-frame_parms->Ncp; unsigned int n,x1,x2;//,x1tmp,x2tmp; @@ -54,7 +53,7 @@ void lte_gold(LTE_DL_FRAME_PARMS *frame_parms,uint32_t lte_gold_table[20][2][14] x2 = Ncp + (Nid_cell<<1) + - (((1+(Nid_cell<<1))*(1 + (((frame_parms->Ncp==0)?4:3)*l) + (7*(1+ns))))<<10); //cinit + (((1+(Nid_cell<<1))*(1 + (((frame_parms->Ncp==0)?4:3)*l) + (7*(1+ns))))<<10); //cinit //x2 = frame_parms->Ncp + (Nid_cell<<1) + (1+(Nid_cell<<1))*(1 + (3*l) + (7*(1+ns))); //cinit //n = 0 x1 = 1+ (1<<31); @@ -81,7 +80,7 @@ void lte_gold(LTE_DL_FRAME_PARMS *frame_parms,uint32_t lte_gold_table[20][2][14] } } -void lte_gold_ue_spec(LTE_DL_FRAME_PARMS *frame_parms,uint32_t lte_gold_uespec_table[2][20][2][21],uint16_t Nid_cell, uint16_t *n_idDMRS) +void lte_gold_ue_spec(uint32_t lte_gold_uespec_table[2][20][2][21],uint16_t Nid_cell, uint16_t *n_idDMRS) { unsigned char ns,l; @@ -169,41 +168,6 @@ void lte_gold_ue_spec_port5(uint32_t lte_gold_uespec_port5_table[20][38],uint16_ } } -/*! \brief gold sequenquence generator -\param x1 -\param x2 this should be set to c_init if reset=1 -\param reset resets the generator -\return 32 bits of the gold sequence -*/ -unsigned int lte_gold_generic(unsigned int *x1, unsigned int *x2, unsigned char reset) -{ - int n; - - if (reset) { - *x1 = 1+ (1<<31); - *x2=*x2 ^ ((*x2 ^ (*x2>>1) ^ (*x2>>2) ^ (*x2>>3))<<31); - - // skip first 50 double words (1600 bits) - // printf("n=0 : x1 %x, x2 %x\n",x1,x2); - for (n=1; n<50; n++) { - *x1 = (*x1>>1) ^ (*x1>>4); - *x1 = *x1 ^ (*x1<<31) ^ (*x1<<28); - *x2 = (*x2>>1) ^ (*x2>>2) ^ (*x2>>3) ^ (*x2>>4); - *x2 = *x2 ^ (*x2<<31) ^ (*x2<<30) ^ (*x2<<29) ^ (*x2<<28); - } - } - - *x1 = (*x1>>1) ^ (*x1>>4); - *x1 = *x1 ^ (*x1<<31) ^ (*x1<<28); - *x2 = (*x2>>1) ^ (*x2>>2) ^ (*x2>>3) ^ (*x2>>4); - *x2 = *x2 ^ (*x2<<31) ^ (*x2<<30) ^ (*x2<<29) ^ (*x2<<28); - return(*x1^*x2); - // printf("n=%d : c %x\n",n,x1^x2); - -} - - - #ifdef LTE_GOLD_MAIN main() { diff --git a/openair1/PHY/LTE_REFSIG/lte_refsig.h b/openair1/PHY/LTE_REFSIG/lte_refsig.h index 27788e5e1a..1bac0d14fc 100644 --- a/openair1/PHY/LTE_REFSIG/lte_refsig.h +++ b/openair1/PHY/LTE_REFSIG/lte_refsig.h @@ -36,7 +36,7 @@ \param reset resets the generator \return 32 bits of the gold sequence */ -unsigned int lte_gold_generic(unsigned int *x1, unsigned int *x2, unsigned char reset); +uint32_t lte_gold_generic(uint32_t *x1, uint32_t *x2, uint8_t reset); /*!\brief This function generates the LTE Gold sequence (36-211, Sec 7.2), specifically for DL reference signals. @@ -45,8 +45,7 @@ unsigned int lte_gold_generic(unsigned int *x1, unsigned int *x2, unsigned char @param Nid_cell Cell Id (to compute sequences for local and adjacent cells) */ void lte_gold(LTE_DL_FRAME_PARMS *frame_parms,uint32_t lte_gold_table[20][2][14],uint16_t Nid_cell); - -void lte_gold_ue_spec(LTE_DL_FRAME_PARMS *frame_parms,uint32_t lte_gold_uespec_table[2][20][2][21],uint16_t Nid_cell, uint16_t *n_idDMRS); +void lte_gold_ue_spec(uint32_t lte_gold_uespec_table[2][20][2][21],uint16_t Nid_cell, uint16_t *n_idDMRS); void lte_gold_ue_spec_port5(uint32_t lte_gold_uespec_port5_table[20][38],uint16_t Nid_cell, uint16_t n_rnti); diff --git a/openair1/PHY/LTE_TRANSPORT/dci.c b/openair1/PHY/LTE_TRANSPORT/dci.c index 2a59407be3..1c015b1c84 100755 --- a/openair1/PHY/LTE_TRANSPORT/dci.c +++ b/openair1/PHY/LTE_TRANSPORT/dci.c @@ -41,8 +41,8 @@ #include "transport_common_proto.h" #include "assertions.h" #include "T.h" -#include "UTIL/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "PHY/LTE_TRANSPORT/transport_extern.h" #include "PHY/LTE_REFSIG/lte_refsig.h" diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools.c b/openair1/PHY/LTE_TRANSPORT/dci_tools.c index b27b951183..34065dc97b 100644 --- a/openair1/PHY/LTE_TRANSPORT/dci_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/dci_tools.c @@ -48,10 +48,10 @@ #include "dci_tools_common_extern.h" #include "transport_proto.h" -int8_t find_dlsch(uint16_t rnti, PHY_VARS_eNB *eNB,find_type_t type) +int16_t find_dlsch(uint16_t rnti, PHY_VARS_eNB *eNB,find_type_t type) { - uint8_t i; - int8_t first_free_index=-1; + uint16_t i; + int16_t first_free_index=-1; AssertFatal(eNB!=NULL,"eNB is null\n"); for (i=0; irnti_type == 2 ) && (rel8->rnti != SI_RNTI) && (rel8->rnti != P_RNTI)) dci_alloc->ra_flag = 1; UE_id = find_dlsch(rel8->rnti,eNB,SEARCH_EXIST_OR_FREE); - AssertFatal(UE_id!=-1,"no free or exiting dlsch_context\n"); - AssertFatal(UE_id= %d(NUMBER_OF_UE_MAX)\n",UE_id,NUMBER_OF_UE_MAX); + if( (UE_id<0) || (UE_id>=NUMBER_OF_UE_MAX) ){ + LOG_E(PHY,"illegal UE_id found!!! rnti %04x UE_id %d\n",rel8->rnti,UE_id); + return; + } + //AssertFatal(UE_id!=-1,"no free or exiting dlsch_context\n"); + //AssertFatal(UE_id= %d(NUMBER_OF_UE_MAX)\n",UE_id,NUMBER_OF_UE_MAX); dlsch0 = eNB->dlsch[UE_id][0]; dlsch1 = eNB->dlsch[UE_id][1]; @@ -298,7 +302,11 @@ void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t } dlsch0_harq->ndi = rel8->new_data_indicator_1; +#ifdef PHY_TX_THREAD + dlsch0->active[subframe] = 1; +#else dlsch0->active = 1; +#endif if (rel8->rnti_type == 2) dlsch0_harq->round = 0; @@ -475,10 +483,14 @@ void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t dlsch0_harq->mcs = rel8->mcs_1; dlsch0_harq->Qm = 2; dlsch0_harq->TBS = TBStable[I_mcs][NPRB-1]; - dlsch0->harq_ids[subframe] = rel8->harq_process; + dlsch0->harq_ids[frame%2][subframe] = rel8->harq_process; +#ifdef PHY_TX_THREAD + dlsch0->active[subframe] = 1; +#else dlsch0->active = 1; +#endif dlsch0->rnti = rel8->rnti; - dlsch0->harq_ids[subframe] = rel8->harq_process; + //dlsch0->harq_ids[subframe] = rel8->harq_process; if (dlsch0_harq->round == 0) dlsch0_harq->status = ACTIVE; @@ -490,7 +502,11 @@ void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t case NFAPI_DL_DCI_FORMAT_1: dci_alloc->format = format1; +#ifdef PHY_TX_THREAD + dlsch0->active[subframe] = 1; +#else dlsch0->active = 1; +#endif LOG_D(PHY,"SFN/SF:%04d%d proc:TX:SFN/SF:%04d%d: Programming DLSCH for Format 1 DCI, harq_pid %d\n",frame,subframe,proc->frame_tx,subframe,rel8->harq_process); @@ -635,7 +651,11 @@ void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t dlsch0_harq->dl_power_off = 1; +#ifdef PHY_TX_THREAD + dlsch0->active[subframe] = 1; +#else dlsch0->active = 1; +#endif @@ -651,7 +671,7 @@ void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t } LOG_D(PHY,"DCI: Set harq_ids[%d] to %d (%p)\n",subframe,rel8->harq_process,dlsch0); - dlsch0->harq_ids[subframe] = rel8->harq_process; + dlsch0->harq_ids[frame%2][subframe] = rel8->harq_process; dlsch0->harq_mask |= (1<harq_process); @@ -818,8 +838,8 @@ void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t dlsch0->subframe_tx[subframe] = 1; - dlsch0->harq_ids[subframe] = rel8->harq_process; - dlsch1->harq_ids[subframe] = rel8->harq_process; + dlsch0->harq_ids[frame%2][subframe] = rel8->harq_process; + dlsch1->harq_ids[frame%2][subframe] = rel8->harq_process; // printf("Setting DLSCH harq id %d to subframe %d\n",harq_pid,subframe); @@ -846,19 +866,32 @@ void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t // assume both TBs are active dlsch0_harq->Nl = 1; dlsch1_harq->Nl = 1; +#ifdef PHY_TX_THREAD + dlsch0->active[subframe] = 1; + dlsch1->active[subframe] = 1; +#else dlsch0->active = 1; dlsch1->active = 1; +#endif dlsch0->harq_mask |= (1<harq_process); dlsch1->harq_mask |= (1<harq_process); // check if either TB is disabled (see 36-213 V11.3 Section ) if ((dlsch0_harq->rvidx == 1) && (dlsch0_harq->mcs == 0)) { +#ifdef PHY_TX_THREAD + dlsch0->active[subframe] = 0; +#else dlsch0->active = 0; +#endif dlsch0->harq_mask &= ~(1<harq_process); } if ((dlsch1_harq->rvidx == 1) && (dlsch1_harq->mcs == 0)) { +#ifdef PHY_TX_THREAD + dlsch1->active[subframe]= 0; +#else dlsch1->active = 0; +#endif dlsch1->harq_mask &= ~(1<harq_process); } @@ -870,8 +903,11 @@ void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t dlsch0_harq->TBS = TBStable[get_I_TBS(dlsch0_harq->mcs)][dlsch0_harq->nb_rb-1]; dlsch1_harq->TBS = TBStable[get_I_TBS(dlsch1_harq->mcs)][dlsch0_harq->nb_rb-1]; +#ifdef PHY_TX_THREAD + if ((dlsch0->active[subframe]==1) && (dlsch1->active[subframe]==1)) { +#else if ((dlsch0->active==1) && (dlsch1->active==1)) { - +#endif dlsch0_harq->mimo_mode = LARGE_CDD; dlsch1_harq->mimo_mode = LARGE_CDD; dlsch0_harq->dl_power_off = 1; @@ -881,7 +917,11 @@ void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t dlsch1_harq->mimo_mode = ALAMOUTI; } } else if (fp->nb_antenna_ports_eNB == 4) { // 4 antenna case +#ifdef PHY_TX_THREAD + if ((dlsch0->active[subframe]==1) && (dlsch1->active[subframe]==1)) { +#else if ((dlsch0->active==1) && (dlsch1->active==1)) { +#endif switch (rel8->precoding_information) { case 0: // one layer per transport block dlsch0_harq->mimo_mode = LARGE_CDD; @@ -921,7 +961,11 @@ void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t LOG_E(PHY,"Illegal value (3) for TPMI in Format 2A DCI\n"); break; } +#ifdef PHY_TX_THREAD + } else if (dlsch0->active[subframe] == 1) { +#else } else if (dlsch0->active == 1) { +#endif switch (rel8->precoding_information) { case 0: // one layer per transport block dlsch0_harq->mimo_mode = ALAMOUTI; @@ -941,7 +985,11 @@ void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t LOG_E(PHY,"Illegal value %d for TPMI in Format 2A DCI with one transport block enabled\n",rel8->precoding_information); break; } +#ifdef PHY_TX_THREAD + } else if (dlsch1->active[subframe] == 1) { +#else } else if (dlsch1->active == 1) { +#endif switch (rel8->precoding_information) { case 0: // one layer per transport block dlsch0_harq->mimo_mode = ALAMOUTI; @@ -967,10 +1015,18 @@ void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t } // reset HARQ process if this is the first transmission +#ifdef PHY_TX_THREAD + if ((dlsch0->active[subframe]==1) && (dlsch0_harq->round == 0)) +#else if ((dlsch0->active==1) && (dlsch0_harq->round == 0)) +#endif dlsch0_harq->status = ACTIVE; +#ifdef PHY_TX_THREAD + if ((dlsch1->active[subframe]==1) && (dlsch1_harq->round == 0)) +#else if ((dlsch1->active==1) && (dlsch1_harq->round == 0)) +#endif dlsch1_harq->status = ACTIVE; dlsch0->rnti = rel8->rnti; @@ -1144,8 +1200,13 @@ void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t printf("RV0 = %d, RV1 = %d. MCS0 = %d, MCS1=%d\n", rel8->redundancy_version_1, rel8->redundancy_version_2, rel8->mcs_1, rel8->mcs_2); #endif if (TB0_active && TB1_active && rel8->transport_block_to_codeword_swap_flag==0) { +#ifdef PHY_TX_THREAD + dlsch0->active[subframe] = 1; + dlsch1->active[subframe] = 1; +#else dlsch0->active = 1; dlsch1->active = 1; +#endif dlsch0->harq_mask |= (1<harq_process); dlsch1->harq_mask |= (1<harq_process); dlsch0_harq = dlsch0->harq_processes[rel8->harq_process]; @@ -1167,8 +1228,13 @@ void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t else if (TB0_active && TB1_active && rel8->transport_block_to_codeword_swap_flag==1) { dlsch0 = eNB->dlsch[UE_id][1]; dlsch1 = eNB->dlsch[UE_id][0]; +#ifdef PHY_TX_THREAD + dlsch0->active[subframe] = 1; + dlsch1->active[subframe] = 1; +#else dlsch0->active = 1; dlsch1->active = 1; +#endif dlsch0->harq_mask |= (1<harq_process); dlsch1->harq_mask |= (1<harq_process); @@ -1186,7 +1252,11 @@ void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t dlsch1_harq->codeword=0; } else if (TB0_active && (TB1_active==0)) { +#ifdef PHY_TX_THREAD + dlsch0->active[subframe] = 1; +#else dlsch0->active = 1; +#endif dlsch0->harq_mask |= (1<harq_process); dlsch0_harq = dlsch0->harq_processes[rel8->harq_process]; dlsch0_harq->mcs = rel8->mcs_1; @@ -1201,7 +1271,11 @@ void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t #endif } else if ((TB0_active==0) && TB1_active) { +#ifdef PHY_TX_THREAD + dlsch1->active[subframe] = 1; +#else dlsch1->active = 1; +#endif dlsch1->harq_mask |= (1<harq_process); dlsch1_harq = dlsch1->harq_processes[rel8->harq_process]; dlsch1_harq->mcs = rel8->mcs_2; @@ -1219,11 +1293,11 @@ void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t if (dlsch0 != NULL){ dlsch0->subframe_tx[subframe] = 1; - dlsch0->harq_ids[subframe] = rel8->harq_process; + dlsch0->harq_ids[frame%2][subframe] = rel8->harq_process; } if (dlsch1_harq != NULL){ - dlsch1->harq_ids[subframe] = rel8->harq_process; + dlsch1->harq_ids[frame%2][subframe] = rel8->harq_process; } @@ -1434,6 +1508,7 @@ void fill_mdci_and_dlsch(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,mDCI_ALLOC_t *d LTE_DL_eNB_HARQ_t *dlsch0_harq=NULL; int UE_id; int subframe = proc->subframe_tx; + int frame = proc->frame_tx; dci_alloc->firstCCE = rel13->ecce_index; dci_alloc->L = rel13->aggregation_level; @@ -1452,8 +1527,12 @@ void fill_mdci_and_dlsch(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,mDCI_ALLOC_t *d if (rel13->rnti_type == 2 ) dci_alloc->ra_flag = 1; UE_id = find_dlsch(rel13->rnti,eNB,SEARCH_EXIST_OR_FREE); - AssertFatal(UE_id!=-1,"no free or exiting dlsch_context\n"); - AssertFatal(UE_id= %d(NUMBER_OF_UE_MAX)\n",UE_id,NUMBER_OF_UE_MAX); + if( (UE_id<0) || (UE_id>=NUMBER_OF_UE_MAX) ){ + LOG_E(PHY,"illegal UE_id found!!! rnti %04x UE_id %d\n",rel13->rnti,UE_id); + return; + } + //AssertFatal(UE_id!=-1,"no free or exiting dlsch_context\n"); + //AssertFatal(UE_id= %d(NUMBER_OF_UE_MAX)\n",UE_id,NUMBER_OF_UE_MAX); dlsch0 = eNB->dlsch[UE_id][0]; dlsch0_harq = dlsch0->harq_processes[rel13->harq_process]; @@ -1465,7 +1544,11 @@ void fill_mdci_and_dlsch(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,mDCI_ALLOC_t *d case 10: // Format 6-1A dci_alloc->format = format6_1A; +#ifdef PHY_TX_THREAD + dlsch0->active[subframe] = 1; +#else dlsch0->active = 1; +#endif switch (fp->N_RB_DL) { case 25: @@ -1521,7 +1604,11 @@ void fill_mdci_and_dlsch(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,mDCI_ALLOC_t *d break; case 11: // Format 6-1B dci_alloc->format = format6_1B; +#ifdef PHY_TX_THREAD + dlsch0->active[subframe] = 1; +#else dlsch0->active = 1; +#endif switch (fp->N_RB_DL) { case 25: @@ -1564,7 +1651,11 @@ void fill_mdci_and_dlsch(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,mDCI_ALLOC_t *d } case 12: // Format 6-2 dci_alloc->format = format6_2; +#ifdef PHY_TX_THREAD + dlsch0->active[subframe] = 1; +#else dlsch0->active = 1; +#endif switch (fp->N_RB_DL) { case 25: dci_alloc->dci_length = sizeof_DCI6_2_5MHz_t; @@ -1647,8 +1738,12 @@ void fill_mdci_and_dlsch(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,mDCI_ALLOC_t *d //LOG_E(PHY,"Invalid beamforming mode %dL\n", beamforming_mode); dlsch0_harq->dl_power_off = 1; - + +#ifdef PHY_TX_THREAD + dlsch0->active[subframe] = 1; +#else dlsch0->active = 1; +#endif dlsch0->harq_mask |= (1<harq_process); @@ -1661,7 +1756,7 @@ void fill_mdci_and_dlsch(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,mDCI_ALLOC_t *d } - dlsch0->harq_ids[subframe] = rel13->harq_process; + dlsch0->harq_ids[frame%2][subframe] = rel13->harq_process; @@ -1692,6 +1787,8 @@ void fill_dci0(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t *proc, uint32_t ndi = pdu->dci_pdu_rel8.new_data_indication_1; + uint16_t UE_id = -1; + #ifdef T_TRACER T(T_ENB_PHY_ULSCH_UE_DCI, T_INT(eNB->Mod_id), T_INT(frame), T_INT(subframe), T_INT(pdu->dci_pdu_rel8.rnti), T_INT(((frame*10+subframe+4) % 8) /* TODO: correct harq pid */), @@ -1837,16 +1934,23 @@ void fill_dci0(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t *proc, DevParam (frame_parms->N_RB_DL, 0, 0); break; } + + if(frame_parms->frame_type == TDD){ + UE_id = find_ulsch(pdu->dci_pdu_rel8.rnti, eNB,SEARCH_EXIST_OR_FREE); + if(UE_id != -1){ + eNB->ulsch[UE_id]->harq_processes[pdu->dci_pdu_rel8.harq_pid]->V_UL_DAI = dai +1; + } + } } -void fill_ulsch(PHY_VARS_eNB *eNB,nfapi_ul_config_ulsch_pdu *ulsch_pdu,int frame,int subframe) +void fill_ulsch(PHY_VARS_eNB *eNB,int UE_id,nfapi_ul_config_ulsch_pdu *ulsch_pdu,int frame,int subframe) { uint8_t harq_pid; - uint8_t UE_id; + //uint8_t UE_id; boolean_t new_ulsch = (find_ulsch(ulsch_pdu->ulsch_pdu_rel8.rnti,eNB,SEARCH_EXIST)==-1) ? TRUE : FALSE; - AssertFatal((UE_id=find_ulsch(ulsch_pdu->ulsch_pdu_rel8.rnti,eNB,SEARCH_EXIST_OR_FREE))>=0, - "No existing/free UE ULSCH for rnti %x\n",ulsch_pdu->ulsch_pdu_rel8.rnti); + //AssertFatal((UE_id=find_ulsch(ulsch_pdu->ulsch_pdu_rel8.rnti,eNB,SEARCH_EXIST_OR_FREE))>=0, + // "No existing/free UE ULSCH for rnti %x\n",ulsch_pdu->ulsch_pdu_rel8.rnti); LTE_eNB_ULSCH_t *ulsch=eNB->ulsch[UE_id]; LTE_DL_FRAME_PARMS *frame_parms = &eNB->frame_parms; @@ -1864,7 +1968,10 @@ void fill_ulsch(PHY_VARS_eNB *eNB,nfapi_ul_config_ulsch_pdu *ulsch_pdu,int frame ulsch->harq_processes[harq_pid]->first_rb = ulsch_pdu->ulsch_pdu_rel8.resource_block_start; ulsch->harq_processes[harq_pid]->nb_rb = ulsch_pdu->ulsch_pdu_rel8.number_of_resource_blocks; - AssertFatal(ulsch->harq_processes[harq_pid]->nb_rb>0,"nb_rb = 0\n"); + //AssertFatal(ulsch->harq_processes[harq_pid]->nb_rb>0,"nb_rb = 0\n"); + if(ulsch->harq_processes[harq_pid]->nb_rb == 0){ + LOG_E(PHY, "fill_ulsch UE_id %d nb_rb = 0\n", UE_id); + } ulsch->harq_processes[harq_pid]->dci_alloc = 1; ulsch->harq_processes[harq_pid]->rar_alloc = 0; @@ -1891,14 +1998,16 @@ void fill_ulsch(PHY_VARS_eNB *eNB,nfapi_ul_config_ulsch_pdu *ulsch_pdu,int frame else if(ulsch->harq_processes[harq_pid]->n_DMRS == 7) ulsch->harq_processes[harq_pid]->n_DMRS2 = 9; - LOG_D(PHY,"[eNB %d][PUSCH %d] Frame %d, Subframe %d Programming PUSCH with n_DMRS2 %d (cshift %d) ulsch:ndi:%d ulsch_pdu:ndi:%d new_ulsch:%d status:%d ulsch_pdu:rvidx:%d\n", + LOG_D(PHY,"[eNB %d][PUSCH %d] Frame %d, Subframe %d Programming PUSCH with n_DMRS2 %d (cshift %d) ulsch:ndi:%d ulsch_pdu:ndi:%d new_ulsch:%d status:%d ulsch_pdu:rvidx:%d ulsch_pdu->ulsch_pdu_rel8.size %d\n", eNB->Mod_id,harq_pid,frame,subframe, ulsch->harq_processes[harq_pid]->n_DMRS2, ulsch->harq_processes[harq_pid]->n_DMRS, ulsch->harq_processes[harq_pid]->ndi, ulsch_pdu->ulsch_pdu_rel8.new_data_indication, new_ulsch, ulsch->harq_processes[harq_pid]->status, - ulsch_pdu->ulsch_pdu_rel8.redundancy_version); + ulsch_pdu->ulsch_pdu_rel8.redundancy_version, + ulsch_pdu->ulsch_pdu_rel8.size); ulsch->harq_processes[harq_pid]->rvidx = ulsch_pdu->ulsch_pdu_rel8.redundancy_version; + if(ulsch_pdu->ulsch_pdu_rel8.modulation_type!=0) ulsch->harq_processes[harq_pid]->Qm = ulsch_pdu->ulsch_pdu_rel8.modulation_type; // Set O_ACK to 0 by default, will be set of DLSCH is scheduled and needs to be ulsch->harq_processes[harq_pid]->O_ACK = 0; @@ -1919,9 +2028,12 @@ void fill_ulsch(PHY_VARS_eNB *eNB,nfapi_ul_config_ulsch_pdu *ulsch_pdu,int frame // will be set if MAC has activated ULSCH_CQI_RI_PDU or ULSCH_CQI_HARQ_RI_PDU ulsch->harq_processes[harq_pid]->Or1 = 0; ulsch->harq_processes[harq_pid]->Or2 = 0; - } - else ulsch->harq_processes[harq_pid]->round++; - + } + else { + ulsch->harq_processes[harq_pid]->round++; + ulsch->harq_processes[harq_pid]->TBS = ulsch_pdu->ulsch_pdu_rel8.size<<3; + ulsch->harq_processes[harq_pid]->Msc_initial = 12*ulsch_pdu->ulsch_pdu_rel8.number_of_resource_blocks; + } ulsch->rnti = ulsch_pdu->ulsch_pdu_rel8.rnti; LOG_D(PHY,"Filling ULSCH %x (UE_id %d) (new_ulsch %d) for Frame %d, Subframe %d : harq_pid %d, status %d, handled %d, first_rb %d, nb_rb %d, rvidx %d, Qm %d, TBS %d, round %d \n", ulsch->rnti, diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools_common.c b/openair1/PHY/LTE_TRANSPORT/dci_tools_common.c index 8f0f8a6cab..9a1aa279b0 100644 --- a/openair1/PHY/LTE_TRANSPORT/dci_tools_common.c +++ b/openair1/PHY/LTE_TRANSPORT/dci_tools_common.c @@ -165,49 +165,6 @@ int8_t delta_PUSCH_acc[4] = {-1,0,1,3}; int8_t *delta_PUCCH_lut = delta_PUSCH_acc; -uint8_t get_pmi(uint8_t N_RB_DL, MIMO_mode_t mode, uint32_t pmi_alloc,uint16_t rb) -{ - /* - MIMO_mode_t mode = dlsch_harq->mimo_mode; - uint32_t pmi_alloc = dlsch_harq->pmi_alloc; - */ - - switch (N_RB_DL) { - case 6: // 1 PRB per subband - if (mode <= PUSCH_PRECODING1) - return((pmi_alloc>>(rb<<1))&3); - else - return((pmi_alloc>>rb)&1); - - break; - - default: - case 25: // 4 PRBs per subband - if (mode <= PUSCH_PRECODING1) - return((pmi_alloc>>((rb>>2)<<1))&3); - else - return((pmi_alloc>>(rb>>2))&1); - - break; - - case 50: // 6 PRBs per subband - if (mode <= PUSCH_PRECODING1) - return((pmi_alloc>>((rb/6)<<1))&3); - else - return((pmi_alloc>>(rb/6))&1); - - break; - - case 100: // 8 PRBs per subband - if (mode <= PUSCH_PRECODING1) - return((pmi_alloc>>((rb>>3)<<1))&3); - else - return((pmi_alloc>>(rb>>3))&1); - - break; - } -} - uint32_t check_phich_reg(LTE_DL_FRAME_PARMS *frame_parms,uint32_t kprime,uint8_t lprime,uint8_t mi) { @@ -330,7 +287,7 @@ void conv_eMTC_rballoc(uint16_t resource_block_coding, uint32_t N_RB_DL, uint32_t *rb_alloc) { - + int narrowband = resource_block_coding>>5; int RIV = resource_block_coding&31; int N_NB_DL = N_RB_DL/6; @@ -346,7 +303,7 @@ void conv_eMTC_rballoc(uint16_t resource_block_coding, rb_alloc[2] = 0; rb_alloc[3] = 0; rb_alloc[ind] = alloc< 26) rb_alloc[ind+1] = alloc>>(6-(ind_mod-26)); + if (ind_mod > 26) rb_alloc[ind+1] = alloc>>(6-(ind_mod-26)); } void conv_rballoc(uint8_t ra_header,uint32_t rb_alloc,uint32_t N_RB_DL,uint32_t *rb_alloc2) @@ -410,7 +367,7 @@ void conv_rballoc(uint8_t ra_header,uint32_t rb_alloc,uint32_t N_RB_DL,uint32_t // bit mask across if ((rb_alloc2[0]>>31)==1) rb_alloc2[1] |= 1; - + if ((rb_alloc&1) != 0) rb_alloc2[1] |= (3<<16); break; @@ -420,7 +377,7 @@ void conv_rballoc(uint8_t ra_header,uint32_t rb_alloc,uint32_t N_RB_DL,uint32_t for (i=0; i<25; i++) { if ((rb_alloc&(1<<(24-i))) != 0) rb_alloc2[(4*i)>>5] |= (0xf<<((4*i)%32)); - + // printf("rb_alloc2[%d] (type 0) %x (%d)\n",(4*i)>>5,rb_alloc2[(4*i)>>5],rb_alloc&(1<tdd_config) { - case 1: - if ((subframe==2) || - (subframe==3) || - (subframe==7) || - (subframe==8)) - switch (subframe) { - case 2: - case 3: - ret = (subframe-2); - break; + switch (subframe) { + case 2: + case 3: + ret = (subframe-2); + break; - case 7: - case 8: - ret = (subframe-5); - break; + case 7: + case 8: + ret = (subframe-5); + break; - default: - LOG_E(PHY,"subframe2_harq_pid, Illegal subframe %d for TDD mode %d\n",subframe,frame_parms->tdd_config); - ret = (255); - break; - } + default: + LOG_E(PHY,"subframe2_harq_pid, Illegal subframe %d for TDD mode %d\n",subframe,frame_parms->tdd_config); + ret = (255); + break; + } break; @@ -1052,10 +1004,13 @@ uint8_t pdcch_alloc2ul_subframe(LTE_DL_FRAME_PARMS *frame_parms,uint8_t n) uint8_t ul_subframe = 255; if ((frame_parms->frame_type == TDD) && - (frame_parms->tdd_config == 1) && - ((n==1)||(n==6))) // tdd_config 0,1 SF 1,5 - ul_subframe = ((n+6)%10); - else if ((frame_parms->frame_type == TDD) && + (frame_parms->tdd_config == 1)) { + if ((n==1)||(n==6)) { // tdd_config 0,1 SF 1,5 + ul_subframe = ((n+6)%10); + } else if ((n==4)||(n==9)) { + ul_subframe = ((n+4)%10); + } + } else if ((frame_parms->frame_type == TDD) && (frame_parms->tdd_config == 6) && ((n==0)||(n==1)||(n==5)||(n==6))) ul_subframe = ((n+7)%10); @@ -1063,10 +1018,10 @@ uint8_t pdcch_alloc2ul_subframe(LTE_DL_FRAME_PARMS *frame_parms,uint8_t n) (frame_parms->tdd_config == 6) && (n==9)) // tdd_config 6 SF 9 ul_subframe = ((n+5)%10); - else + else ul_subframe = ((n+4)%10); - AssertFatal(frame_parms->frame_type == FDD || subframe_select(frame_parms,ul_subframe) == SF_UL,"illegal ul_subframe %d (n %d)\n",ul_subframe,n); + if ( (subframe_select(frame_parms,ul_subframe) != SF_UL) && (frame_parms->frame_type == TDD)) return(255); LOG_D(PHY, "subframe %d: PUSCH subframe = %d\n", n, ul_subframe); return ul_subframe; @@ -1075,10 +1030,13 @@ uint8_t pdcch_alloc2ul_subframe(LTE_DL_FRAME_PARMS *frame_parms,uint8_t n) uint8_t ul_subframe2pdcch_alloc_subframe(LTE_DL_FRAME_PARMS *frame_parms,uint8_t n) { if ((frame_parms->frame_type == TDD) && - (frame_parms->tdd_config == 1) && - ((n==7)||(n==2))) // tdd_config 0,1 SF 1,5 - return((n==7)? 1 : 6); - else if ((frame_parms->frame_type == TDD) && + (frame_parms->tdd_config == 1)) { + if ((n==7)||(n==2)) { // tdd_config 0,1 SF 1,5 + return((n==7)? 1 : 6); + } else if ((n==3)||(n==8)) { + return((n==3)? 9 : 4); + } + } else if ((frame_parms->frame_type == TDD) && (frame_parms->tdd_config == 6) && ((n==7)||(n==8)||(n==2)||(n==3))) return((n+3)%10); @@ -1088,6 +1046,9 @@ uint8_t ul_subframe2pdcch_alloc_subframe(LTE_DL_FRAME_PARMS *frame_parms,uint8_t return(9); else return((n+6)%10); + + LOG_E(PHY, "%s %s:%i pdcch allocation error\n",__FUNCTION__,__FILE__,__LINE__); + return 0; } uint32_t pdcch_alloc2ul_frame(LTE_DL_FRAME_PARMS *frame_parms,uint32_t frame, uint8_t n) @@ -1096,9 +1057,9 @@ uint32_t pdcch_alloc2ul_frame(LTE_DL_FRAME_PARMS *frame_parms,uint32_t frame, ui if ((frame_parms->frame_type == TDD) && (frame_parms->tdd_config == 1) && - ((n==1)||(n==6))) // tdd_config 0,1 SF 1,5 - ul_frame = (frame + (n==1 ? 0 : 1)); - else if ((frame_parms->frame_type == TDD) && + ((n==1)||(n==6)||(n==4)||(n==9))) { // tdd_config 0,1 SF 1,5 + ul_frame = (frame + (n < 5 ? 0 : 1)); + } else if ((frame_parms->frame_type == TDD) && (frame_parms->tdd_config == 6) && ((n==0)||(n==1)||(n==5)||(n==6))) ul_frame = (frame + (n>=5 ? 1 : 0)); diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c b/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c index a726621022..a766bb8202 100644 --- a/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c +++ b/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c @@ -38,8 +38,8 @@ #include "PHY/LTE_TRANSPORT/transport_eNB.h" #include "PHY/LTE_TRANSPORT/transport_proto.h" #include "SCHED/sched_eNB.h" -#include "UTIL/LOG/vcd_signal_dumper.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/log.h" #include #include "targets/RT/USER/rt_wrapper.h" @@ -148,8 +148,8 @@ LTE_eNB_DLSCH_t *new_eNB_dlsch(unsigned char Kmimo,unsigned char Mdlharq,uint32_ }*/ - for (i=0; i<10; i++) - dlsch->harq_ids[i] = Mdlharq; + for (i=0; i<20; i++) + dlsch->harq_ids[i/10][i%10] = Mdlharq; for (i=0; iharq_processes[i] = (LTE_DL_eNB_HARQ_t *)malloc16(sizeof(LTE_DL_eNB_HARQ_t)); @@ -227,11 +227,16 @@ void clean_eNb_dlsch(LTE_eNB_DLSCH_t *dlsch) if (dlsch) { Mdlharq = dlsch->Mdlharq; dlsch->rnti = 0; +#ifdef PHY_TX_THREAD + for (i=0; i<10; i++) + dlsch->active[i] = 0; +#else dlsch->active = 0; +#endif dlsch->harq_mask = 0; - for (i=0; i<10; i++) - dlsch->harq_ids[i] = Mdlharq; + for (i=0; i<20; i++) + dlsch->harq_ids[i/10][i%10] = Mdlharq; for (i=0; iharq_processes[i]) { @@ -260,8 +265,6 @@ int dlsch_encoding_2threads0(te_params *tep) { unsigned int total_worker = tep->total_worker; unsigned int current_worker = tep->current_worker; - unsigned short iind; - unsigned short nb_rb = dlsch->harq_processes[harq_pid]->nb_rb; unsigned int Kr=0,Kr_bytes,r,r_offset=0; // unsigned short m=dlsch->harq_processes[harq_pid]->mcs; @@ -280,28 +283,10 @@ int dlsch_encoding_2threads0(te_params *tep) { Kr_bytes = Kr>>3; - // get interleaver index for Turbo code (lookup in Table 5.1.3-3 36-212, V8.6 2009-03, p. 13-14) - if (Kr_bytes<=64) - iind = (Kr_bytes-5); - else if (Kr_bytes <=128) - iind = 59 + ((Kr_bytes-64)>>1); - else if (Kr_bytes <= 256) - iind = 91 + ((Kr_bytes-128)>>2); - else if (Kr_bytes <= 768) - iind = 123 + ((Kr_bytes-256)>>3); - else { - printf("dlsch_coding: Illegal codeword size %d!!!\n",Kr_bytes); - return(-1); - } - - - encoder(dlsch->harq_processes[harq_pid]->c[r], Kr>>3, &dlsch->harq_processes[harq_pid]->d[r][96], - (r==0) ? dlsch->harq_processes[harq_pid]->F : 0, - f1f2mat_old[iind*2], // f1 (see 36121-820, page 14) - f1f2mat_old[(iind*2)+1] // f2 (see 36121-820, page 14) + (r==0) ? dlsch->harq_processes[harq_pid]->F : 0 ); dlsch->harq_processes[harq_pid]->RTC[r] = sub_block_interleaving_turbo(4+(Kr_bytes*8), @@ -411,9 +396,12 @@ int dlsch_encoding_2threads(PHY_VARS_eNB *eNB, eNB_proc_t *proc = &eNB->proc; unsigned int G; unsigned int crc=1; - unsigned short iind; - unsigned char harq_pid = dlsch->harq_ids[subframe]; + unsigned char harq_pid = dlsch->harq_ids[frame%2][subframe]; + if(harq_pid >= dlsch->Mdlharq) { + LOG_E(PHY,"dlsch_encoding_2threads illegal harq_pid %d\n", harq_pid); + return(-1); + } unsigned short nb_rb = dlsch->harq_processes[harq_pid]->nb_rb; unsigned int A; unsigned char mod_order; @@ -496,28 +484,11 @@ int dlsch_encoding_2threads(PHY_VARS_eNB *eNB, Kr_bytes = Kr>>3; - // get interleaver index for Turbo code (lookup in Table 5.1.3-3 36-212, V8.6 2009-03, p. 13-14) - if (Kr_bytes<=64) - iind = (Kr_bytes-5); - else if (Kr_bytes <=128) - iind = 59 + ((Kr_bytes-64)>>1); - else if (Kr_bytes <= 256) - iind = 91 + ((Kr_bytes-128)>>2); - else if (Kr_bytes <= 768) - iind = 123 + ((Kr_bytes-256)>>3); - else { - printf("dlsch_coding: Illegal codeword size %d!!!\n",Kr_bytes); - return(-1); - } - - start_meas(te_stats); encoder(dlsch->harq_processes[harq_pid]->c[r], Kr>>3, &dlsch->harq_processes[harq_pid]->d[r][96], - (r==0) ? dlsch->harq_processes[harq_pid]->F : 0, - f1f2mat_old[iind*2], // f1 (see 36121-820, page 14) - f1f2mat_old[(iind*2)+1] // f2 (see 36121-820, page 14) + (r==0) ? dlsch->harq_processes[harq_pid]->F : 0 ); stop_meas(te_stats); @@ -540,16 +511,15 @@ int dlsch_encoding_2threads(PHY_VARS_eNB *eNB, proc->tep[i].total_worker = worker_num; proc->tep[i].current_worker = i; if (pthread_cond_signal(&proc->tep[i].cond_te) != 0) { - printf("[eNB] ERROR pthread_cond_signal for te thread exit\n"); - exit_fun( "ERROR pthread_cond_signal" ); - return (-1); + printf("[eNB] ERROR pthread_cond_signal for te thread exit\n"); + exit_fun( "ERROR pthread_cond_signal" ); + return (-1); } } } // Fill in the "e"-sequence from 36-212, V8.6 2009-03, p. 16-17 (for each "e") and concatenate the // outputs for each code segment, see Section 5.1.5 p.20 - for (r=0,r_offset=0; rharq_processes[harq_pid]->C; r++) { // get information for E for the segments that are handled by the worker thread @@ -629,7 +599,7 @@ int dlsch_encoding_all(PHY_VARS_eNB *eNB, { int encoding_return = 0; unsigned int L,C,B; - B = dlsch->harq_processes[dlsch->harq_ids[subframe]]->B; + B = dlsch->harq_processes[dlsch->harq_ids[frame%2][subframe]]->B; if(B<=6144) { L=0; @@ -729,10 +699,13 @@ int dlsch_encoding(PHY_VARS_eNB *eNB, unsigned int G; unsigned int crc=1; - unsigned short iind; LTE_DL_FRAME_PARMS *frame_parms = &eNB->frame_parms; - unsigned char harq_pid = dlsch->harq_ids[subframe]; + unsigned char harq_pid = dlsch->harq_ids[frame%2][subframe]; + if(harq_pid >= dlsch->Mdlharq) { + LOG_E(PHY,"dlsch_encoding illegal harq_pid %d\n", harq_pid); + return(-1); + } unsigned short nb_rb = dlsch->harq_processes[harq_pid]->nb_rb; unsigned int A; unsigned char mod_order; @@ -800,21 +773,6 @@ int dlsch_encoding(PHY_VARS_eNB *eNB, Kr_bytes = Kr>>3; - // get interleaver index for Turbo code (lookup in Table 5.1.3-3 36-212, V8.6 2009-03, p. 13-14) - if (Kr_bytes<=64) - iind = (Kr_bytes-5); - else if (Kr_bytes <=128) - iind = 59 + ((Kr_bytes-64)>>1); - else if (Kr_bytes <= 256) - iind = 91 + ((Kr_bytes-128)>>2); - else if (Kr_bytes <= 768) - iind = 123 + ((Kr_bytes-256)>>3); - else { - printf("dlsch_coding: Illegal codeword size %d!!!\n",Kr_bytes); - return(-1); - } - - #ifdef DEBUG_DLSCH_CODING printf("Generating Code Segment %d (%d bits)\n",r,Kr); // generate codewords @@ -826,22 +784,17 @@ int dlsch_encoding(PHY_VARS_eNB *eNB, #endif -#ifdef DEBUG_DLSCH_CODING - printf("Encoding ... iind %d f1 %d, f2 %d\n",iind,f1f2mat_old[iind*2],f1f2mat_old[(iind*2)+1]); -#endif start_meas(te_stats); encoder(dlsch->harq_processes[harq_pid]->c[r], Kr>>3, &dlsch->harq_processes[harq_pid]->d[r][96], - (r==0) ? dlsch->harq_processes[harq_pid]->F : 0, - f1f2mat_old[iind*2], // f1 (see 36121-820, page 14) - f1f2mat_old[(iind*2)+1] // f2 (see 36121-820, page 14) + (r==0) ? dlsch->harq_processes[harq_pid]->F : 0 ); stop_meas(te_stats); #ifdef DEBUG_DLSCH_CODING if (r==0) - write_output("enc_output0.m","enc0",&dlsch->harq_processes[harq_pid]->d[r][96],(3*8*Kr_bytes)+12,1,4); + LOG_M("enc_output0.m","enc0",&dlsch->harq_processes[harq_pid]->d[r][96],(3*8*Kr_bytes)+12,1,4); #endif start_meas(i_stats); @@ -888,7 +841,7 @@ int dlsch_encoding(PHY_VARS_eNB *eNB, #ifdef DEBUG_DLSCH_CODING if (r==dlsch->harq_processes[harq_pid]->C-1) - write_output("enc_output.m","enc",dlsch->harq_processes[harq_pid]->e,r_offset,1,4); + LOG_M("enc_output.m","enc",dlsch->harq_processes[harq_pid]->e,r_offset,1,4); #endif } diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c b/openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c index a2f8f08073..6f1913ff91 100644 --- a/openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c +++ b/openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c @@ -35,11 +35,11 @@ #include "PHY/CODING/coding_extern.h" #include "PHY/CODING/lte_interleaver_inline.h" #include "PHY/LTE_TRANSPORT/transport_eNB.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "PHY/LTE_TRANSPORT/transport_proto.h" - +#include "PHY/LTE_TRANSPORT/transport_common_proto.h" //#define DEBUG_DLSCH_MODULATION -#define NEW_ALLOC_RE +//#define NEW_ALLOC_RE //#define is_not_pilot(pilots,re,nushift,use2ndpilots) ((pilots==0) || ((re!=nushift) && (re!=nushift+6)&&((re!=nushift+3)||(use2ndpilots==1))&&((re!=nushift+9)||(use2ndpilots==1)))?1:0) @@ -706,6 +706,7 @@ int allocate_REs_in_RB(PHY_VARS_eNB* phy_vars_eNB, int *P2_SHIFT) { + uint8_t *x0 = NULL; MIMO_mode_t mimo_mode = -1; @@ -714,8 +715,8 @@ int allocate_REs_in_RB(PHY_VARS_eNB* phy_vars_eNB, int first_layer0 = -1; //= dlsch0_harq->first_layer; int Nlayers0 = -1; // = dlsch0_harq->Nlayers; - uint8_t mod_order0=0; - uint8_t mod_order1=0; + uint8_t mod_order0=0; + uint8_t mod_order1=0; uint8_t precoder_index0,precoder_index1; uint8_t *x1=NULL; @@ -2077,6 +2078,7 @@ inline int check_skip_dc(int rb,LTE_DL_FRAME_PARMS *frame_parms) { int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB, int32_t **txdataF, int16_t amp, + int frame, uint32_t subframe_offset, uint8_t num_pdcch_symbols, LTE_eNB_DLSCH_t *dlsch0, @@ -2098,12 +2100,10 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB, uint8_t mod_order0 = 0; uint8_t mod_order1 = 0; int16_t amp_rho_a, amp_rho_b; - int16_t qam16_table_a0[4],qam64_table_a0[8],qam16_table_b0[4],qam64_table_b0[8];//qpsk_table_a0[2],qpsk_table_b0[2] - int16_t qam16_table_a1[4],qam64_table_a1[8],qam16_table_b1[4],qam64_table_b1[8];//qpsk_table_a1[2],qpsk_table_b1[2] + int16_t qam16_table_a0[4],qam64_table_a0[8],qam16_table_b0[4],qam64_table_b0[8],qpsk_table_a0[2],qpsk_table_b0[2]; + int16_t qam16_table_a1[4],qam64_table_a1[8],qam16_table_b1[4],qam64_table_b1[8],qpsk_table_a1[2],qpsk_table_b1[2]; int16_t *qam_table_s0=NULL,*qam_table_s1=NULL; -#ifdef NEW_ALLOC_RE - /* TODO: variable to be removed? */ int (*allocate_REs)(PHY_VARS_eNB*, int **, uint32_t*, @@ -2125,7 +2125,8 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB, uint8_t, int *, int *); -#endif + + int P1_SHIFT[13],P2_SHIFT[13]; int offset,nushiftmod3; @@ -2149,7 +2150,11 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB, if ((dlsch0 != NULL) && (dlsch1 != NULL)){ - harq_pid = dlsch0->harq_ids[subframe_offset]; + harq_pid = dlsch0->harq_ids[frame%2][subframe_offset]; + if(harq_pid >= dlsch0->Mdlharq) { + LOG_E(PHY,"illegal harq_pid %d\n", harq_pid); + return(-1); + } dlsch0_harq = dlsch0->harq_processes[harq_pid]; mimo_mode = dlsch0_harq->mimo_mode; mod_order0 = dlsch0_harq->Qm; @@ -2166,7 +2171,11 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB, }else if ((dlsch0 != NULL) && (dlsch1 == NULL)){ - harq_pid = dlsch0->harq_ids[subframe_offset]; + harq_pid = dlsch0->harq_ids[frame%2][subframe_offset]; + if(harq_pid >= dlsch0->Mdlharq) { + LOG_E(PHY,"illegal harq_pid %d\n", harq_pid); + return(-1); + } dlsch0_harq = dlsch0->harq_processes[harq_pid]; mimo_mode = dlsch0_harq->mimo_mode; mod_order0 = dlsch0_harq->Qm; @@ -2183,7 +2192,11 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB, }else if ((dlsch0 == NULL) && (dlsch1 != NULL)){ - harq_pid = dlsch1->harq_ids[subframe_offset]; + harq_pid = dlsch1->harq_ids[frame%2][subframe_offset]; + if(harq_pid >= dlsch1->Mdlharq) { + LOG_E(PHY,"illegal harq_pid %d\n", harq_pid); + return(-1); + } dlsch1_harq = dlsch1->harq_processes[harq_pid]; mimo_mode = dlsch1_harq->mimo_mode; mod_order0 = dlsch1_harq->Qm; @@ -2212,7 +2225,7 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB, amp_rho_b = (int16_t)(((int32_t)amp*dlsch1->sqrt_rho_b)>>13); } - /*if(mod_order0 == 2) + if(mod_order0 == 2) { for(i=0;i<2;i++) { @@ -2220,7 +2233,7 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB, qpsk_table_b0[i] = (int16_t)(((int32_t)qpsk_table[i]*amp_rho_b)>>15); } } - else*/ if (mod_order0 == 4) + else if (mod_order0 == 4) for (i=0;i<4; i++) { qam16_table_a0[i] = (int16_t)(((int32_t)qam16_table[i]*amp_rho_a)>>15); qam16_table_b0[i] = (int16_t)(((int32_t)qam16_table[i]*amp_rho_b)>>15); @@ -2231,14 +2244,14 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB, qam64_table_b0[i] = (int16_t)(((int32_t)qam64_table[i]*amp_rho_b)>>15); } - /*if (mod_order1 == 2) + if (mod_order1 == 2) { for (i=0; i<2; i++) { qpsk_table_a1[i] = (int16_t)(((int32_t)qpsk_table[i]*amp_rho_a)>>15); qpsk_table_b1[i] = (int16_t)(((int32_t)qpsk_table[i]*amp_rho_b)>>15); } } - else*/ if (mod_order1 == 4) + else if (mod_order1 == 4) for (i=0; i<4; i++) { qam16_table_a1[i] = (int16_t)(((int32_t)qam16_table[i]*amp_rho_a)>>15); qam16_table_b1[i] = (int16_t)(((int32_t)qam16_table[i]*amp_rho_b)>>15); @@ -2359,53 +2372,36 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB, re_offset = frame_parms->first_carrier_offset; symbol_offset = (uint32_t)frame_parms->ofdm_symbol_size*(l+(subframe_offset*nsymb)); - -#ifdef NEW_ALLOC_RE - /* TODO: remove this code? */ allocate_REs = allocate_REs_in_RB; -#endif switch (mod_order0) { case 2: qam_table_s0 = NULL; - /*if (pilots) { + if (pilots) { qam_table_s0 = qpsk_table_b0; -#ifdef NEW_ALLOC_RE - // TODO: remove this code? // allocate_REs = (dlsch0->harq_processes[harq_pid]->mimo_mode == SISO) ? allocate_REs_in_RB_pilots_QPSK_siso : allocate_REs_in_RB; -#endif } else { qam_table_s0 = qpsk_table_a0; -#ifdef NEW_ALLOC_RE - // TODO: remove this code? // allocate_REs = (dlsch0->harq_processes[harq_pid]->mimo_mode == SISO) ? allocate_REs_in_RB_no_pilots_QPSK_siso : allocate_REs_in_RB; -#endif - - }*/ + } break; case 4: if (pilots) { qam_table_s0 = qam16_table_b0; -#ifdef NEW_ALLOC_RE - /* TODO: remove this code? */ allocate_REs = (dlsch0->harq_processes[harq_pid]->mimo_mode == SISO) ? allocate_REs_in_RB_pilots_16QAM_siso : allocate_REs_in_RB; -#endif } else { qam_table_s0 = qam16_table_a0; -#ifdef NEW_ALLOC_RE - /* TODO: remove this code? */ allocate_REs = (dlsch0->harq_processes[harq_pid]->mimo_mode == SISO) ? allocate_REs_in_RB_no_pilots_16QAM_siso : allocate_REs_in_RB; -#endif } break; @@ -2413,39 +2409,41 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB, case 6: if (pilots) { qam_table_s0 = qam64_table_b0; -#ifdef NEW_ALLOC_RE - /* TODO: remove this code? */ allocate_REs = (dlsch0->harq_processes[harq_pid]->mimo_mode == SISO) ? allocate_REs_in_RB_pilots_64QAM_siso : allocate_REs_in_RB; -#endif } else { qam_table_s0 = qam64_table_a0; -#ifdef NEW_ALLOC_RE - /* TODO: remove this code? */ allocate_REs = (dlsch0->harq_processes[harq_pid]->mimo_mode == SISO) ? allocate_REs_in_RB_no_pilots_64QAM_siso : allocate_REs_in_RB; -#endif } + /* TODO: this is a quick hack to be removed. There is a problem + * with above code that needs to be analyzed and fixed. In the + * meantime, let's use the generic function. + */ + allocate_REs = allocate_REs_in_RB; break; } + /* TODO: hack, to be removed. The power is too different from + * previous version. Some more work/validation is needed before + * we switch to the new version. + */ + allocate_REs = allocate_REs_in_RB; + switch (mod_order1) { case 2: qam_table_s1 = NULL; -#ifdef NEW_ALLOC_RE - /* TODO: remove this code? */ allocate_REs = allocate_REs_in_RB; -#endif - /*if (pilots) { + if (pilots) { qam_table_s1 = qpsk_table_b1; } else { qam_table_s1 = qpsk_table_a1; - }*/ + } break; case 4: if (pilots) { @@ -2521,7 +2519,7 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB, rb); - allocate_REs_in_RB(phy_vars_eNB, + allocate_REs(phy_vars_eNB, txdataF, &jj, &jj2, diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c b/openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c index c1f80c40a4..9aacdd079d 100644 --- a/openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c +++ b/openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c @@ -34,47 +34,20 @@ #include "PHY/defs_eNB.h" #include "PHY/defs_UE.h" +#include "PHY/LTE_REFSIG/lte_refsig.h" #include "PHY/CODING/coding_extern.h" #include "PHY/CODING/lte_interleaver_inline.h" #include "transport_eNB.h" #include "PHY/phy_extern.h" -#include "UTIL/LOG/vcd_signal_dumper.h" - -static inline unsigned int lte_gold_scram(unsigned int *x1, unsigned int *x2, unsigned char reset) __attribute__((always_inline)); -static inline unsigned int lte_gold_scram(unsigned int *x1, unsigned int *x2, unsigned char reset) -{ - int n; - - if (reset) { - *x1 = 1+ (1<<31); - *x2=*x2 ^ ((*x2 ^ (*x2>>1) ^ (*x2>>2) ^ (*x2>>3))<<31); - - // skip first 50 double words (1600 bits) - // printf("n=0 : x1 %x, x2 %x\n",x1,x2); - for (n=1; n<50; n++) { - *x1 = (*x1>>1) ^ (*x1>>4); - *x1 = *x1 ^ (*x1<<31) ^ (*x1<<28); - *x2 = (*x2>>1) ^ (*x2>>2) ^ (*x2>>3) ^ (*x2>>4); - *x2 = *x2 ^ (*x2<<31) ^ (*x2<<30) ^ (*x2<<29) ^ (*x2<<28); - } - } - - *x1 = (*x1>>1) ^ (*x1>>4); - *x1 = *x1 ^ (*x1<<31) ^ (*x1<<28); - *x2 = (*x2>>1) ^ (*x2>>2) ^ (*x2>>3) ^ (*x2>>4); - *x2 = *x2 ^ (*x2<<31) ^ (*x2<<30) ^ (*x2<<29) ^ (*x2<<28); - return(*x1^*x2); - // printf("n=%d : c %x\n",n,x1^x2); - -} +#include "common/utils/LOG/vcd_signal_dumper.h" void dlsch_scrambling(LTE_DL_FRAME_PARMS *frame_parms, int mbsfn_flag, LTE_eNB_DLSCH_t *dlsch, - int harq_pid, + int harq_pid, int G, uint8_t q, - uint16_t frame, + uint16_t frame, uint8_t Ns) { @@ -92,13 +65,27 @@ void dlsch_scrambling(LTE_DL_FRAME_PARMS *frame_parms, uint8_t Nacc=4; uint16_t j0,j,idelta; uint16_t i = (Ns>>1) + (10*frame); +#ifdef PHY_TX_THREAD + uint16_t i0 = dlsch->harq_processes[harq_pid]->i0; +#else uint16_t i0 = dlsch->i0; +#endif +#ifdef PHY_TX_THREAD + if (dlsch->harq_processes[harq_pid]->sib1_br_flag==1) Nacc=1; +#else if (dlsch->sib1_br_flag==1) Nacc=1; +#endif else if (dlsch->rnti == 0xFFFF || dlsch->rnti == 0xFFFE) Nacc = (frame_parms->frame_type == TDD) ? 10 : 4; +#ifdef PHY_TX_THREAD + // Note: above SC-RNTI will also have to be added when/if implemented + else if (dlsch->harq_processes[harq_pid]->CEmode == CEmodeA) Nacc=1; + else if (dlsch->harq_processes[harq_pid]->CEmode == CEmodeB) Nacc = (frame_parms->frame_type == TDD) ? 10 : 4; +#else // Note: above SC-RNTI will also have to be added when/if implemented else if (dlsch->CEmode == CEmodeA) Nacc=1; else if (dlsch->CEmode == CEmodeB) Nacc = (frame_parms->frame_type == TDD) ? 10 : 4; +#endif if (frame_parms->frame_type == FDD || Nacc == 1) idelta = 0; else idelta = Nacc-2; @@ -111,7 +98,11 @@ void dlsch_scrambling(LTE_DL_FRAME_PARMS *frame_parms, // x1 is set in lte_gold_generic if (mbsfn_flag == 0) { #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) +#ifdef PHY_TX_THREAD + if (dlsch->harq_processes[harq_pid]->i0 != 0xFFFF) { +#else if (dlsch->i0 != 0xFFFF) { +#endif // rule for BL/CE UEs from Section 6.3.1 in 36.211 x2= (dlsch->rnti<<14) + (q<<13) + ((((j0+j)*Nacc)%10)<<9) + frame_parms->Nid_cell; if ((frame&1023) < 200) LOG_D(PHY,"Scrambling init for (i0 %d, i %d, j0 %d, j %d, Nacc %d) => x2 %d\n",i0,i,j0,j,Nacc,x2); @@ -130,7 +121,7 @@ void dlsch_scrambling(LTE_DL_FRAME_PARMS *frame_parms, printf("scrambling: rnti %x, q %d, Ns %d, Nid_cell %d, G %d x2 %x\n",dlsch->rnti,q,Ns,frame_parms->Nid_cell, G, x2); #endif #endif - s = lte_gold_scram(&x1, &x2, 1); + s = lte_gold_generic(&x1, &x2, 1); for (n=0; n<(1+(G>>5)); n++) { @@ -179,7 +170,7 @@ void dlsch_scrambling(LTE_DL_FRAME_PARMS *frame_parms, - s = lte_gold_scram(&x1, &x2, 0); + s = lte_gold_generic(&x1, &x2, 0); e += 32; } @@ -225,7 +216,7 @@ void dlsch_unscrambling(LTE_DL_FRAME_PARMS *frame_parms, #ifdef DEBUG_SCRAMBLING printf("unscrambling: rnti %x, q %d, Ns %d, Nid_cell %d G %d, x2 %x\n",dlsch->rnti,q,Ns,frame_parms->Nid_cell,G,x2); #endif - s = lte_gold_scram(&x1, &x2, 1); + s = lte_gold_generic(&x1, &x2, 1); for (i=0; i<(1+(G>>5)); i++) { for (j=0; j<32; j++,k++) { @@ -238,7 +229,7 @@ void dlsch_unscrambling(LTE_DL_FRAME_PARMS *frame_parms, #endif } - s = lte_gold_scram(&x1, &x2, 0); + s = lte_gold_generic(&x1, &x2, 0); } } diff --git a/openair1/PHY/LTE_TRANSPORT/edci.c b/openair1/PHY/LTE_TRANSPORT/edci.c index ca60fd4061..fc82fd0137 100755 --- a/openair1/PHY/LTE_TRANSPORT/edci.c +++ b/openair1/PHY/LTE_TRANSPORT/edci.c @@ -40,8 +40,7 @@ #include "transport_proto.h" #include "transport_common_proto.h" #include "assertions.h" -#include "T.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "PHY/LTE_REFSIG/lte_refsig.h" //#define DEBUG_DCI_ENCODING 1 diff --git a/openair1/PHY/LTE_TRANSPORT/if4_tools.c b/openair1/PHY/LTE_TRANSPORT/if4_tools.c index 451290ebf4..210d5c1af6 100644 --- a/openair1/PHY/LTE_TRANSPORT/if4_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/if4_tools.c @@ -37,7 +37,7 @@ //#include "targets/ARCH/ETHERNET/USERSPACE/LIB/if_defs.h" #include "targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" const uint8_t lin2alaw_if4p5[65536] = {213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85}; const uint16_t alaw2lin_if4p5[256] = {60032, 60288, 59520, 59776, 61056, 61312, 60544, 60800, 57984, 58240, 57472, 57728, 59008, 59264, 58496, 58752, 62784, 62912, 62528, 62656, 63296, 63424, 63040, 63168, 61760, 61888, 61504, 61632, 62272, 62400, 62016, 62144, 43520, 44544, 41472, 42496, 47616, 48640, 45568, 46592, 35328, 36352, 33280, 34304, 39424, 40448, 37376, 38400, 54528, 55040, 53504, 54016, 56576, 57088, 55552, 56064, 50432, 50944, 49408, 49920, 52480, 52992, 51456, 51968, 65192, 65208, 65160, 65176, 65256, 65272, 65224, 65240, 65064, 65080, 65032, 65048, 65128, 65144, 65096, 65112, 65448, 65464, 65416, 65432, 65512, 65528, 65480, 65496, 65320, 65336, 65288, 65304, 65384, 65400, 65352, 65368, 64160, 64224, 64032, 64096, 64416, 64480, 64288, 64352, 63648, 63712, 63520, 63584, 63904, 63968, 63776, 63840, 64848, 64880, 64784, 64816, 64976, 65008, 64912, 64944, 64592, 64624, 64528, 64560, 64720, 64752, 64656, 64688, 5504, 5248, 6016, 5760, 4480, 4224, 4992, 4736, 7552, 7296, 8064, 7808, 6528, 6272, 7040, 6784, 2752, 2624, 3008, 2880, 2240, 2112, 2496, 2368, 3776, 3648, 4032, 3904, 3264, 3136, 3520, 3392, 22016, 20992, 24064, 23040, 17920, 16896, 19968, 18944, 30208, 29184, 32256, 31232, 26112, 25088, 28160, 27136, 11008, 10496, 12032, 11520, 8960, 8448, 9984, 9472, 15104, 14592, 16128, 15616, 13056, 12544, 14080, 13568, 344, 328, 376, 360, 280, 264, 312, 296, 472, 456, 504, 488, 408, 392, 440, 424, 88, 72, 120, 104, 24, 8, 56, 40, 216, 200, 248, 232, 152, 136, 184, 168, 1376, 1312, 1504, 1440, 1120, 1056, 1248, 1184, 1888, 1824, 2016, 1952, 1632, 1568, 1760, 1696, 688, 656, 752, 720, 560, 528, 624, 592, 944, 912, 1008, 976, 816, 784, 880, 848}; diff --git a/openair1/PHY/LTE_TRANSPORT/if5_tools.c b/openair1/PHY/LTE_TRANSPORT/if5_tools.c index 06b4a4ad80..9f4ab3a580 100644 --- a/openair1/PHY/LTE_TRANSPORT/if5_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/if5_tools.c @@ -37,7 +37,7 @@ //#include "targets/ARCH/ETHERNET/USERSPACE/LIB/if_defs.h" #include "targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" //#define DEBUG_DL_MOBIPASS //#define DEBUG_UL_MOBIPASS #define SUBFRAME_SKIP_NUM_MOBIPASS 8 @@ -297,7 +297,7 @@ void send_IF5(RU_t *ru, openair0_timestamp proc_timestamp, int subframe, uint8_t #ifdef DEBUG_DL_MOBIPASS if(subframe==0) { if (dummy_cnt==100) { - write_output("txsigmb.m","txs",(void*)dummy_buffer, fp->samples_per_tti,1, 5); + LOG_M("txsigmb.m","txs",(void*)dummy_buffer, fp->samples_per_tti,1, 5); exit(-1); } else { dummy_cnt++; @@ -601,7 +601,7 @@ void recv_IF5(RU_t *ru, openair0_timestamp *proc_timestamp, int subframe, uint16 if (rxe > 0){ LOG_I(PHY,"[Mobipass] frame:%d, subframe:%d, energy %d\n", (*proc_timestamp/(10*fp->samples_per_tti))&1023,subframe, rxe); - // write_output("rxsigmb.m","rxs",(void*)dummy_buffer_rx, fp->samples_per_tti,1, 5); + // LOG_M("rxsigmb.m","rxs",(void*)dummy_buffer_rx, fp->samples_per_tti,1, 5); // exit(-1); } } diff --git a/openair1/PHY/LTE_TRANSPORT/lte_gold_generic.c b/openair1/PHY/LTE_TRANSPORT/lte_gold_generic.c new file mode 100644 index 0000000000..b249052cbf --- /dev/null +++ b/openair1/PHY/LTE_TRANSPORT/lte_gold_generic.c @@ -0,0 +1,75 @@ +/* + * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The OpenAirInterface Software Alliance licenses this file to You under + * the OAI Public License, Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.openairinterface.org/?page_id=698 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *------------------------------------------------------------------------------- + * For more information about the OpenAirInterface (OAI) Software Alliance: + * contact@openairinterface.org + */ + +#include "PHY/types.h" + +/** + \brief Gold Sequence Generation defined in 3x.211 + \param x1 x1 shift register + \param x2 x2 shift register / cinit if reset is set + \param reset Reset flag / reinitialize the generator + \return c 32 bits of gold output +*/ +extern inline uint32_t lte_gold_generic(uint32_t *x1, uint32_t *x2, uint8_t reset) +{ + int32_t n; + + // 3GPP 3x.211 + // Nc = 1600 + // c(n) = [x1(n+Nc) + x2(n+Nc)]mod2 + // x1(n+31) = [x1(n+3) + x1(n)]mod2 + // x2(n+31) = [x2(n+3) + x2(n+2) + x2(n+1) + x2(n)]mod2 + if (reset) + { + // Init value for x1: x1(0) = 1, x1(n) = 0, n=1,2,...,30 + // x1(31) = [x1(3) + x1(0)]mod2 = 1 + *x1 = 1 + (1<<31); + // Init value for x2: cinit = sum_{i=0}^30 x2*2^i + // x2(31) = [x2(3) + x2(2) + x2(1) + x2(0)]mod2 + // = (*x2>>3) ^ (*x2>>2) + (*x2>>1) + *x2 + *x2 = *x2 ^ ((*x2 ^ (*x2>>1) ^ (*x2>>2) ^ (*x2>>3))<<31); + + // x1 and x2 contain bits n = 0,1,...,31 + + // Nc = 1600 bits are skipped at the beginning + // i.e., 1600 / 32 = 50 32bit words + + for (n = 1; n < 50; n++) + { + // Compute x1(0),...,x1(27) + *x1 = (*x1>>1) ^ (*x1>>4); + // Compute x1(28),..,x1(31) and xor + *x1 = *x1 ^ (*x1<<31) ^ (*x1<<28); + // Compute x2(0),...,x2(27) + *x2 = (*x2>>1) ^ (*x2>>2) ^ (*x2>>3) ^ (*x2>>4); + // Compute x2(28),..,x2(31) and xor + *x2 = *x2 ^ (*x2<<31) ^ (*x2<<30) ^ (*x2<<29) ^ (*x2<<28); + } + } + + *x1 = (*x1>>1) ^ (*x1>>4); + *x1 = *x1 ^ (*x1<<31) ^ (*x1<<28); + *x2 = (*x2>>1) ^ (*x2>>2) ^ (*x2>>3) ^ (*x2>>4); + *x2 = *x2 ^ (*x2<<31) ^ (*x2<<30) ^ (*x2<<29) ^ (*x2<<28); + + // c(n) = [x1(n+Nc) + x2(n+Nc)]mod2 + return(*x1^*x2); +} diff --git a/openair1/PHY/LTE_TRANSPORT/pbch.c b/openair1/PHY/LTE_TRANSPORT/pbch.c index eae88a6afe..a27c6dbc90 100644 --- a/openair1/PHY/LTE_TRANSPORT/pbch.c +++ b/openair1/PHY/LTE_TRANSPORT/pbch.c @@ -281,7 +281,7 @@ int generate_pbch(LTE_eNB_PBCH *eNB_pbch, #endif #ifdef DEBUG_PBCH - write_output("pbch_encoded_output2.m","pbch_encoded_out2", + LOG_M"pbch_encoded_output2.m","pbch_encoded_out2", pbch_coded_data2, pbch_coded_bits, 1, @@ -308,7 +308,7 @@ int generate_pbch(LTE_eNB_PBCH *eNB_pbch, #ifdef DEBUG_PBCH if (frame_mod4==0) { - write_output("pbch_e.m","pbch_e", + LOG_M"pbch_e.m","pbch_e", eNB_pbch->pbch_e, pbch_E, 1, @@ -325,7 +325,7 @@ int generate_pbch(LTE_eNB_PBCH *eNB_pbch, pbch_E); #ifdef DEBUG_PBCH if (frame_mod4==0) { - write_output("pbch_e_s.m","pbch_e_s", + LOG_M"pbch_e_s.m","pbch_e_s", eNB_pbch->pbch_e, pbch_E, 1, diff --git a/openair1/PHY/LTE_TRANSPORT/phich.c b/openair1/PHY/LTE_TRANSPORT/phich.c index 912d737663..f348f5b8ae 100644 --- a/openair1/PHY/LTE_TRANSPORT/phich.c +++ b/openair1/PHY/LTE_TRANSPORT/phich.c @@ -712,12 +712,10 @@ void generate_phich_top(PHY_VARS_eNB *eNB, LTE_DL_FRAME_PARMS *frame_parms=&eNB->frame_parms; int32_t **txdataF = eNB->common_vars.txdataF; - uint8_t harq_pid; uint8_t Ngroup_PHICH,ngroup_PHICH,nseq_PHICH; uint8_t NSF_PHICH = 4; uint8_t pusch_subframe; uint8_t i; - uint32_t pusch_frame; int subframe = proc->subframe_tx; phich_config_t *phich; @@ -732,9 +730,7 @@ void generate_phich_top(PHY_VARS_eNB *eNB, NSF_PHICH = 2; if (eNB->phich_vars[subframe&1].num_hi > 0) { - pusch_frame = phich_frame2_pusch_frame(frame_parms,proc->frame_tx,subframe); pusch_subframe = phich_subframe2_pusch_subframe(frame_parms,subframe); - harq_pid = subframe2harq_pid(frame_parms,pusch_frame,pusch_subframe); } for (i=0; iphich_vars[subframe&1].num_hi; i++) { @@ -753,13 +749,15 @@ void generate_phich_top(PHY_VARS_eNB *eNB, nseq_PHICH = ((phich->first_rb/Ngroup_PHICH) + phich->n_DMRS)%(2*NSF_PHICH); LOG_D(PHY,"[eNB %d][PUSCH %d] Frame %d subframe %d Generating PHICH, AMP %d ngroup_PHICH %d/%d, nseq_PHICH %d : HI %d, first_rb %d)\n", - eNB->Mod_id,harq_pid,proc->frame_tx, + eNB->Mod_id,subframe2harq_pid(frame_parms, + phich_frame2_pusch_frame(frame_parms,proc->frame_tx,subframe),pusch_subframe),proc->frame_tx, subframe,amp,ngroup_PHICH,Ngroup_PHICH,nseq_PHICH, phich->hi, phich->first_rb); T(T_ENB_PHY_PHICH, T_INT(eNB->Mod_id), T_INT(proc->frame_tx), T_INT(subframe), - T_INT(-1 /* TODO: rnti */), T_INT(harq_pid), + T_INT(-1 /* TODO: rnti */), + T_INT(subframe2harq_pid(frame_parms,phich_frame2_pusch_frame(frame_parms,proc->frame_tx,subframe),pusch_subframe)), T_INT(Ngroup_PHICH), T_INT(NSF_PHICH), T_INT(ngroup_PHICH), T_INT(nseq_PHICH), T_INT(phich->hi), diff --git a/openair1/PHY/LTE_TRANSPORT/prach.c b/openair1/PHY/LTE_TRANSPORT/prach.c index bc8dc07d30..c691ed0396 100644 --- a/openair1/PHY/LTE_TRANSPORT/prach.c +++ b/openair1/PHY/LTE_TRANSPORT/prach.c @@ -35,13 +35,9 @@ //#include "prach.h" #include "PHY/LTE_TRANSPORT/if4_tools.h" #include "SCHED/sched_eNB.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "prach_extern.h" -#define PRACH_DEBUG 1 -//#define PRACH_WRITE_OUTPUT_DEBUG 1 - - #if (RRC_VERSION < MAKE_VERSION(14, 0, 0)) #define rx_prach0 rx_prach @@ -70,10 +66,6 @@ void rx_prach0(PHY_VARS_eNB *eNB, uint8_t Ncs_config; uint8_t restricted_set; uint8_t n_ra_prb; - -#ifdef PRACH_DEBUG - int frame; -#endif int subframe; int16_t *prachF=NULL; int16_t **rxsigF=NULL; @@ -92,7 +84,7 @@ void rx_prach0(PHY_VARS_eNB *eNB, uint8_t not_found; int k=0; uint16_t u; - int16_t *Xu; + int16_t *Xu=0; uint16_t offset; int16_t Ncp; uint16_t first_nonzero_root_idx=0; @@ -107,7 +99,6 @@ void rx_prach0(PHY_VARS_eNB *eNB, #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) int prach_ifft_cnt=0; #endif - if (ru) { fp = &ru->frame_parms; nb_rx = ru->nb_rx; @@ -162,61 +153,49 @@ void rx_prach0(PHY_VARS_eNB *eNB, #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) if (br_flag == 1) { prach_ifftp = eNB->prach_vars_br.prach_ifft[ce_level]; -#ifdef PRACH_DEBUG - frame = eNB->proc.frame_prach_br; -#endif subframe = eNB->proc.subframe_prach_br; prachF = eNB->prach_vars_br.prachF; rxsigF = eNB->prach_vars_br.rxsigF[ce_level]; -#ifdef PRACH_DEBUG - if ((frame&1023) < 20) LOG_I(PHY,"PRACH (eNB) : running rx_prach (br_flag %d, ce_level %d) for frame %d subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d, rootSequenceIndex %d, repetition number %d,numRepetitionsPrePreambleAttempt %d\n", - br_flag,ce_level,frame,subframe, +LOG_DEBUG_BEGIN(PRACH) + if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (eNB) : running rx_prach (br_flag %d, ce_level %d) for frame %d subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d, rootSequenceIndex %d, repetition number %d,numRepetitionsPrePreambleAttempt %d\n", + br_flag,ce_level,ru->proc.frame_prach,subframe, fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[ce_level], prach_ConfigIndex,rootSequenceIndex, eNB->prach_vars_br.repetition_number[ce_level], fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[ce_level]); -#endif +LOG_DEBUG_END } else #endif { prach_ifftp = eNB->prach_vars.prach_ifft[0]; -#ifdef PRACH_DEBUG - frame = eNB->proc.frame_prach; -#endif subframe = eNB->proc.subframe_prach; prachF = eNB->prach_vars.prachF; rxsigF = eNB->prach_vars.rxsigF[0]; -#ifdef PRACH_DEBUG - //if ((frame&1023) < 20) LOG_I(PHY,"PRACH (eNB) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d , rootSequenceIndex %d\n", subframe,fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset,prach_ConfigIndex,rootSequenceIndex); -#endif +LOG_DEBUG_BEGIN(PRACH) + if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (eNB) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d , rootSequenceIndex %d\n", subframe,fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset,prach_ConfigIndex,rootSequenceIndex); +LOG_DEBUG_END } } else { #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) if (br_flag == 1) { -#ifdef PRACH_DEBUG - frame = ru->proc.frame_prach_br; -#endif subframe = ru->proc.subframe_prach_br; rxsigF = ru->prach_rxsigF_br[ce_level]; -#ifdef PRACH_DEBUG - if ((frame&1023) < 20) LOG_I(PHY,"PRACH (RU) : running rx_prach (br_flag %d, ce_level %d) for frame %d subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n", - br_flag,ce_level,frame,subframe,fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[ce_level],prach_ConfigIndex); -#endif +LOG_DEBUG_BEGIN(PRACH) + if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (RU) : running rx_prach (br_flag %d, ce_level %d) for frame %d subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n", + br_flag,ce_level,ru->proc.frame_prach,subframe,fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[ce_level],prach_ConfigIndex); +LOG_DEBUG_END } else #endif { -#ifdef PRACH_DEBUG - frame = ru->proc.frame_prach; -#endif subframe = ru->proc.subframe_prach; rxsigF = ru->prach_rxsigF; -#ifdef PRACH_DEBUG - if ((frame&1023) < 20) LOG_I(PHY,"PRACH (RU) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n", +LOG_DEBUG_BEGIN(PRACH) + if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (RU) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n", subframe,fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset,prach_ConfigIndex); -#endif +LOG_DEBUG_END } } @@ -227,31 +206,28 @@ void rx_prach0(PHY_VARS_eNB *eNB, if (ru->if_south == LOCAL_RF) { // set the time-domain signal if we have to use it in this node // DJP - indexing below in subframe zero takes us off the beginning of the array??? prach[aa] = (int16_t*)&ru->common.rxdata[aa][(subframe*fp->samples_per_tti)-ru->N_TA_offset]; -#ifdef PRACH_DEBUG - int32_t en0=signal_energy((int32_t*)prach[aa],fp->samples_per_tti); - int8_t dbEn0 = dB_fixed(en0); - int8_t rach_dBm = dbEn0 - ru->rx_total_gain_dB; -#ifdef PRACH_WRITE_OUTPUT_DEBUG +LOG_M_BEGIN(PRACH) + int32_t en0=signal_energy((int32_t*)prach[aa],fp->samples_per_tti); + int8_t dbEn0 = dB_fixed(en0); + int8_t rach_dBm = dbEn0 - ru->rx_total_gain_dB; + char buffer[80]; if (dbEn0>32 && prach[0]!= NULL) { static int counter=0; - - char buffer[80]; - //counter++; sprintf(buffer, "%s%d", "/tmp/prach_rx",counter); - write_output(buffer,"prach_rx",prach[0],fp->samples_per_tti,1,13); + LOG_M(buffer,"prach_rx",prach[0],fp->samples_per_tti,1,13); } -#endif - - if (dbEn0>32) + if (dB_fixed(en0)>32) { -#ifdef PRACH_WRITE_OUTPUT_DEBUG - if (prach[0]!= NULL) write_output("prach_rx","prach_rx",prach[0],fp->samples_per_tti,1,1); -#endif - LOG_I(PHY,"RU %d, br_flag %d ce_level %d frame %d subframe %d per_tti:%d prach:%p (energy %d) TA:%d rach_dBm:%d rxdata:%p index:%d\n",ru->idx,br_flag,ce_level,frame,subframe,fp->samples_per_tti,prach[aa],dbEn0,ru->N_TA_offset,rach_dBm,ru->common.rxdata[aa], (subframe*fp->samples_per_tti)-ru->N_TA_offset); + sprintf(buffer, "rach_dBm:%d",rach_dBm); + if (prach[0]!= NULL) LOG_M("prach_rx","prach_rx",prach[0],fp->samples_per_tti,1,1); + LOG_I(PHY,"RU %d, br_flag %d ce_level %d frame %d subframe %d per_tti:%d prach:%p (energy %d) TA:%d %s rxdata:%p index:%d\n", + ru->idx,br_flag,ce_level,ru->proc.frame_prach,subframe,fp->samples_per_tti, + prach[aa],dbEn0,ru->N_TA_offset,buffer,ru->common.rxdata[aa], + (subframe*fp->samples_per_tti)-ru->N_TA_offset); } -#endif +LOG_M_END } } @@ -333,9 +309,9 @@ void rx_prach0(PHY_VARS_eNB *eNB, if (((eNB!=NULL) && (ru->function != NGFI_RAU_IF4p5))|| ((eNB==NULL) && (ru->function == NGFI_RRU_IF4p5))) { // compute the DFTs of the PRACH temporal resources // Do forward transform -#ifdef PRACH_DEBUG +LOG_DEBUG_BEGIN(PRACH) LOG_D(PHY,"rx_prach: Doing FFT for N_RB_UL %d nb_rx:%d Ncp:%d\n",fp->N_RB_UL, nb_rx, Ncp); -#endif +LOG_DEBUG_END for (aa=0; aa1) - dft3072(prach2+6144,rxsigF[aa]+6144); + dft3072(prach2+6144,rxsigF[aa]+6144,1); } break; @@ -372,10 +348,10 @@ void rx_prach0(PHY_VARS_eNB *eNB, dft1024(prach2,rxsigF[aa],1); fft_size = 1024; } else { - dft6144(prach2,rxsigF[aa]); + dft6144(prach2,rxsigF[aa],1); if (prach_fmt>1) - dft6144(prach2+12288,rxsigF[aa]+12288); + dft6144(prach2+12288,rxsigF[aa]+12288,1); fft_size = 6144; } @@ -386,22 +362,22 @@ void rx_prach0(PHY_VARS_eNB *eNB, if (prach_fmt == 4) { dft2048(prach2,rxsigF[aa],1); } else { - dft12288(prach2,rxsigF[aa]); + dft12288(prach2,rxsigF[aa],1); if (prach_fmt>1) - dft12288(prach2+24576,rxsigF[aa]+24576); + dft12288(prach2+24576,rxsigF[aa]+24576,1); } break; case 75: if (prach_fmt == 4) { - dft3072(prach2,rxsigF[aa]); + dft3072(prach2,rxsigF[aa],1); } else { - dft18432(prach2,rxsigF[aa]); + dft18432(prach2,rxsigF[aa],1); if (prach_fmt>1) - dft18432(prach2+36864,rxsigF[aa]+36864); + dft18432(prach2+36864,rxsigF[aa]+36864,1); } break; @@ -411,19 +387,19 @@ void rx_prach0(PHY_VARS_eNB *eNB, if (prach_fmt == 4) { dft4096(prach2,rxsigF[aa],1); } else { - dft24576(prach2,rxsigF[aa]); + dft24576(prach2,rxsigF[aa],1); if (prach_fmt>1) - dft24576(prach2+49152,rxsigF[aa]+49152); + dft24576(prach2+49152,rxsigF[aa]+49152,1); } } else { if (prach_fmt == 4) { - dft3072(prach2,rxsigF[aa]); + dft3072(prach2,rxsigF[aa],1); } else { - dft18432(prach2,rxsigF[aa]); + dft18432(prach2,rxsigF[aa],1); if (prach_fmt>1) - dft18432(prach2+36864,rxsigF[aa]+36864); + dft18432(prach2+36864,rxsigF[aa]+36864,1); } } @@ -466,10 +442,10 @@ void rx_prach0(PHY_VARS_eNB *eNB, return; } else if (eNB!=NULL) { -#ifdef PRACH_DEBUG - en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840)); +LOG_DEBUG_BEGIN(PRACH) + int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840)); if ((en > 60)&&(br_flag==1)) LOG_I(PHY,"PRACH (br_flag %d,ce_level %d, n_ra_prb %d, k %d): Frame %d, Subframe %d => %d dB\n",br_flag,ce_level,n_ra_prb,k,eNB->proc.frame_rx,eNB->proc.subframe_rx,en); -#endif +LOG_DEBUG_END } // in case of RAU and prach received rx_thread wakes up prach @@ -504,9 +480,10 @@ void rx_prach0(PHY_VARS_eNB *eNB, *max_preamble_energy=0; for (preamble_index=0 ; preamble_index<64 ; preamble_index++) { -#ifdef PRACH_DEBUG - if (en>60) LOG_I(PHY,"frame %d, subframe %d : Trying preamble %d (br_flag %d)\n",frame,subframe,preamble_index,br_flag); -#endif +LOG_DEBUG_BEGIN(PRACH) + int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840)); + if (en>60) LOG_I(PHY,"frame %d, subframe %d : Trying preamble %d (br_flag %d)\n",ru->proc.frame_prach,subframe,preamble_index,br_flag); +LOG_DEBUG_END if (restricted_set == 0) { // This is the relative offset in the root sequence table (5.7.2-4 from 36.211) for the given preamble index preamble_offset = ((NCS==0)? preamble_index : (preamble_index/(N_ZC/NCS))); @@ -589,10 +566,11 @@ void rx_prach0(PHY_VARS_eNB *eNB, } // Compute DFT of RX signal (conjugate input, results in conjugate output) for each new rootSequenceIndex -#ifdef PRACH_DEBUG +LOG_DEBUG_BEGIN(PRACH) + int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840)); if (en>60) LOG_I(PHY,"frame %d, subframe %d : preamble index %d: offset %d, preamble shift %d (br_flag %d, en %d)\n", - frame,subframe,preamble_index,preamble_offset,preamble_shift,br_flag,en); -#endif + ru->proc.frame_prach,subframe,preamble_index,preamble_offset,preamble_shift,br_flag,en); +LOG_DEBUG_END log2_ifft_size = 10; fft_size = 6144; @@ -614,12 +592,12 @@ void rx_prach0(PHY_VARS_eNB *eNB, } memset(prachF, 0, sizeof(int16_t)*2*1024 ); -#if defined(PRACH_WRITE_OUTPUT_DEBUG) - if (prach[0]!= NULL) write_output("prach_rx0.m","prach_rx0",prach[0],6144+792,1,1); -#endif - // write_output("prach_rx1.m","prach_rx1",prach[1],6144+792,1,1); - // write_output("prach_rxF0.m","prach_rxF0",rxsigF[0],24576,1,1); - // write_output("prach_rxF1.m","prach_rxF1",rxsigF[1],6144,1,1); +LOG_M_BEGIN(PRACH) + if (prach[0]!= NULL) LOG_M("prach_rx0.m","prach_rx0",prach[0],6144+792,1,1); + LOG_M("prach_rx1.m","prach_rx1",prach[1],6144+792,1,1); + LOG_M("prach_rxF0.m","prach_rxF0",rxsigF[0],24576,1,1); + LOG_M("prach_rxF1.m","prach_rxF1",rxsigF[1],6144,1,1); +LOG_M_END for (aa=0;aa>10; } - -#if defined(PRACH_WRITE_OUTPUT_DEBUG) - if (aa==0) write_output("prach_rxF_comp0.m","prach_rxF_comp0",prachF,1024,1,1); -#endif - // if (aa=1) write_output("prach_rxF_comp1.m","prach_rxF_comp1",prachF,1024,1,1); + +LOG_M_BEGIN(PRACH) + if (aa==0) LOG_M("prach_rxF_comp0.m","prach_rxF_comp0",prachF,1024,1,1); + if (aa==1) LOG_M("prach_rxF_comp1.m","prach_rxF_comp1",prachF,1024,1,1); +LOG_M_END }// antennas_rx } // new dft @@ -662,9 +640,10 @@ void rx_prach0(PHY_VARS_eNB *eNB, eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[ce_level])) #endif { -#ifdef PRACH_DEBUG - if (en>60) LOG_I(PHY,"frame %d, subframe %d: Checking for peak in time-domain (br_flag %d, en %d)\n",frame,subframe,br_flag,en); -#endif +LOG_DEBUG_BEGIN(PRACH) + int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840)); + if (en>60) LOG_I(PHY,"frame %d, subframe %d: Checking for peak in time-domain (br_flag %d, en %d)\n",ru->proc.frame_prach,subframe,br_flag,en); +LOG_DEBUG_END preamble_shift2 = ((preamble_shift==0) ? 0 : ((preamble_shift<>log2_ifft_size)*update_TA/update_TA2; *max_preamble = preamble_index; -#ifdef PRACH_DEBUG - if ((en>60) && (br_flag==1)) LOG_D(PHY,"frame %d, subframe %d : max_preamble_energy %d, max_preamble_delay %d, max_preamble %d (br_flag %d,ce_level %d, levdB %d, lev %d)\n",frame,subframe,*max_preamble_energy,*max_preamble_delay,*max_preamble,br_flag,ce_level,levdB,lev); -#endif +LOG_DEBUG_BEGIN(PRACH) + int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840)); + if ((en>60) && (br_flag==1)) LOG_D(PHY,"frame %d, subframe %d : max_preamble_energy %d, max_preamble_delay %d, max_preamble %d (br_flag %d,ce_level %d, levdB %d, lev %d)\n",ru->proc.frame_prach,subframe,*max_preamble_energy,*max_preamble_delay,*max_preamble,br_flag,ce_level,levdB,lev); +LOG_DEBUG_END } } } }// preamble_index -#ifdef PRACH_DEBUG - +LOG_M_BEGIN(PRACH) + int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840)); if (en>60) { k = (12*n_ra_prb) - 6*fp->N_RB_UL; @@ -697,26 +677,22 @@ void rx_prach0(PHY_VARS_eNB *eNB, k*=2; if (br_flag == 0) { -#if defined(PRACH_WRITE_OUTPUT_DEBUG) - write_output("rxsigF.m","prach_rxF",&rxsigF[0][0],12288,1,1); - write_output("prach_rxF_comp0.m","prach_rxF_comp0",prachF,1024,1,1); - write_output("Xu.m","xu",Xu,N_ZC,1,1); - write_output("prach_ifft0.m","prach_t0",prach_ifft,1024,1,1); -#endif + LOG_M("rxsigF.m","prach_rxF",&rxsigF[0][0],12288,1,1); + LOG_M("prach_rxF_comp0.m","prach_rxF_comp0",prachF,1024,1,1); + LOG_M("Xu.m","xu",Xu,N_ZC,1,1); + LOG_M("prach_ifft0.m","prach_t0",prach_ifft,1024,1,1); } else { -#if defined(PRACH_WRITE_OUTPUT_DEBUG) - printf("Dumping prach (br_flag %d), k = %d (n_ra_prb %d)\n",br_flag,k,n_ra_prb); - write_output("rxsigF_br.m","prach_rxF_br",&rxsigF[0][0],12288,1,1); - write_output("prach_rxF_comp0_br.m","prach_rxF_comp0_br",prachF,1024,1,1); - write_output("Xu_br.m","xu_br",Xu,N_ZC,1,1); - write_output("prach_ifft0_br.m","prach_t0_br",prach_ifft,1024,1,1); + LOG_E(PHY,"Dumping prach (br_flag %d), k = %d (n_ra_prb %d)\n",br_flag,k,n_ra_prb); + LOG_M("rxsigF_br.m","prach_rxF_br",&rxsigF[0][0],12288,1,1); + LOG_M("prach_rxF_comp0_br.m","prach_rxF_comp0_br",prachF,1024,1,1); + LOG_M("Xu_br.m","xu_br",Xu,N_ZC,1,1); + LOG_M("prach_ifft0_br.m","prach_t0_br",prach_ifft,1024,1,1); exit(-1); -#endif } } -#endif +LOG_M_END if (eNB) stop_meas(&eNB->rx_prach); } diff --git a/openair1/PHY/LTE_TRANSPORT/prach_common.c b/openair1/PHY/LTE_TRANSPORT/prach_common.c index 2f39346be2..475a97ca0c 100644 --- a/openair1/PHY/LTE_TRANSPORT/prach_common.c +++ b/openair1/PHY/LTE_TRANSPORT/prach_common.c @@ -33,7 +33,7 @@ #include "PHY/defs_common.h" #include "PHY/phy_extern.h" #include "PHY/phy_extern_ue.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" uint16_t NCS_unrestricted[16] = {0,13,15,18,22,26,32,38,46,59,76,93,119,167,279,419}; @@ -570,7 +570,7 @@ int is_prach_subframe(LTE_DL_FRAME_PARMS *frame_parms,uint32_t frame, uint8_t su uint8_t prach_ConfigIndex = frame_parms->prach_config_common.prach_ConfigInfo.prach_ConfigIndex; int prach_mask = is_prach_subframe0(frame_parms,prach_ConfigIndex,frame,subframe); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) int i; for (i=0;i<4;i++) { diff --git a/openair1/PHY/LTE_TRANSPORT/pucch.c b/openair1/PHY/LTE_TRANSPORT/pucch.c index a7f4a5e9cc..5c21666365 100644 --- a/openair1/PHY/LTE_TRANSPORT/pucch.c +++ b/openair1/PHY/LTE_TRANSPORT/pucch.c @@ -34,10 +34,9 @@ #include "LAYER2/MAC/mac.h" #include "PHY/LTE_REFSIG/lte_refsig.h" -#include "UTIL/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" -#include "T.h" //uint8_t ncs_cell[20][7]; //#define DEBUG_PUCCH_TXS @@ -795,25 +794,11 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB, for (j=0;jpucch1_stats_cnt[j][i]=0; eNB->pucch1ab_stats_cnt[j][i]=0; - } - } -#if defined(USRP_REC_PLAY) - // It's probably bad to do this statically only once. - // Looks like the above is incomplete. - // Such reset needs to be done once a UE PHY structure is being used/re-used - // Don't know if this is ever possible in current architecture - for (i=0;i<10240;i++) { - for (j=0;jpucch1_stats[j][i]=0; +#if defined(USRP_REC_PLAY) // not 100% sure eNB->pucch1_stats_thres[j][i]=0; +#endif } } - for (i=0;i<20480;i++) { - for (j=0;jpucch1ab_stats[j][i]=0; - } - } -#endif first_call=0; } @@ -1103,7 +1088,7 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB, #endif #ifdef DEBUG_PUCCH_RX - LOG_D(PHY,"[eNB] PUCCH fmt1: stat_max : %d, sigma2_dB %d (%d, %d), phase_max : %d\n",dB_fixed(stat_max),sigma2_dB,eNB->measurements.n0_subband_power_tot_dBm[6],pucch1_thres,phase_max); + LOG_I(PHY,"[eNB] PUCCH fmt1: stat_max : %d, sigma2_dB %d (%d, %d), phase_max : %d\n",dB_fixed(stat_max),sigma2_dB,eNB->measurements.n0_subband_power_tot_dBm[6],pucch1_thres,phase_max); #endif @@ -1116,7 +1101,7 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB, /* if (eNB->pucch1_stats_cnt[UE_id][subframe] == 0) { - write_output("pucch_debug.m","pucch_energy", + LOG_M("pucch_debug.m","pucch_energy", &eNB->pucch1_stats[UE_id][(subframe<<10)], 1024,1,2); AssertFatal(0,"Exiting for PUCCH 1 debug\n"); @@ -1236,6 +1221,7 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB, #if defined(USRP_REC_PLAY) // It looks like the value is a bit messy when RF is replayed. // For instance i assume to skip pucch1_thres from the test below. + // Not 100% sure if (sigma2_dB<(dB_fixed(stat_max))) {// #else if (sigma2_dB<(dB_fixed(stat_max)-pucch1_thres)) {// @@ -1364,9 +1350,9 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB, } // aa - LOG_I(PHY,"PUCCH 1a/b: subframe %d : stat %d,%d (pos %d)\n",subframe,stat_re,stat_im, + LOG_D(PHY,"PUCCH 1a/b: subframe %d : stat %d,%d (pos %d)\n",subframe,stat_re,stat_im, (subframe<<10) + (eNB->pucch1ab_stats_cnt[UE_id][subframe])); - LOG_I(PHY,"PUCCH 1a/b: subframe %d : sigma2_dB %d, stat_max %d, pucch1_thres %d\n",subframe,sigma2_dB,dB_fixed(stat_max),pucch1_thres); + LOG_D(PHY,"PUCCH 1a/b: subframe %d : sigma2_dB %d, stat_max %d, pucch1_thres %d\n",subframe,sigma2_dB,dB_fixed(stat_max),pucch1_thres); eNB->pucch1ab_stats[UE_id][(subframe<<11) + 2*(eNB->pucch1ab_stats_cnt[UE_id][subframe])] = (stat_re); eNB->pucch1ab_stats[UE_id][(subframe<<11) + 1+2*(eNB->pucch1ab_stats_cnt[UE_id][subframe])] = (stat_im); diff --git a/openair1/PHY/LTE_TRANSPORT/pucch_common.c b/openair1/PHY/LTE_TRANSPORT/pucch_common.c index a9181a8b3d..5b939b08d2 100644 --- a/openair1/PHY/LTE_TRANSPORT/pucch_common.c +++ b/openair1/PHY/LTE_TRANSPORT/pucch_common.c @@ -33,11 +33,10 @@ #include "PHY/phy_extern.h" #include "LAYER2/MAC/mac.h" -#include "UTIL/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/log.h" #include "PHY/LTE_REFSIG/lte_refsig.h" -#include "T.h" void init_ncs_cell(LTE_DL_FRAME_PARMS *frame_parms,uint8_t ncs_cell[20][7]) { diff --git a/openair1/PHY/LTE_TRANSPORT/rar_tools.c b/openair1/PHY/LTE_TRANSPORT/rar_tools.c index ab4656716b..abbb002410 100644 --- a/openair1/PHY/LTE_TRANSPORT/rar_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/rar_tools.c @@ -33,7 +33,7 @@ #include "PHY/phy_extern.h" #include "SCHED/sched_eNB.h" #include "LAYER2/MAC/mac.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "PHY/LTE_TRANSPORT/transport_proto.h" #include "assertions.h" diff --git a/openair1/PHY/LTE_TRANSPORT/transport_common.h b/openair1/PHY/LTE_TRANSPORT/transport_common.h index 167e2b111a..130c973774 100644 --- a/openair1/PHY/LTE_TRANSPORT/transport_common.h +++ b/openair1/PHY/LTE_TRANSPORT/transport_common.h @@ -105,7 +105,7 @@ typedef enum { -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) typedef enum { CEmodeA = 0, CEmodeB = 1 @@ -138,7 +138,7 @@ typedef enum { HARQ_SR_CQI } UCI_type_t; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) typedef enum { NOCE, CEMODEA, @@ -183,7 +183,7 @@ typedef struct { PRACH_TDD_PREAMBLE_MAP_elem map[6]; } PRACH_TDD_PREAMBLE_MAP; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) typedef struct { uint16_t slss_id; diff --git a/openair1/PHY/LTE_TRANSPORT/transport_eNB.h b/openair1/PHY/LTE_TRANSPORT/transport_eNB.h index 3013dfb218..d1dd595d35 100644 --- a/openair1/PHY/LTE_TRANSPORT/transport_eNB.h +++ b/openair1/PHY/LTE_TRANSPORT/transport_eNB.h @@ -125,6 +125,15 @@ typedef struct { uint8_t first_layer; /// codeword this transport block is mapped to uint8_t codeword; +#ifdef PHY_TX_THREAD +#ifdef Rel14 + /// indicator that this DLSCH corresponds to SIB1-BR, needed for c_init for scrambling + uint8_t sib1_br_flag; + /// initial absolute subframe (see 36.211 Section 6.3.1), needed for c_init for scrambling + uint16_t i0; + CEmode_t CEmode; +#endif +#endif } LTE_DL_eNB_HARQ_t; @@ -138,7 +147,11 @@ typedef struct { /// Allocated RNTI (0 means DLSCH_t is not currently used) uint16_t rnti; /// Active flag for baseband transmitter processing +#ifdef PHY_TX_THREAD + uint8_t active[10]; +#else uint8_t active; +#endif /// HARQ process mask, indicates which processes are currently active uint16_t harq_mask; /// Indicator of TX activation per subframe. Used during PUCCH detection for ACK/NAK. @@ -146,7 +159,7 @@ typedef struct { /// First CCE of last PDSCH scheduling per subframe. Again used during PUCCH detection for ACK/NAK. uint8_t nCCE[10]; /// Process ID's per subframe. Used to associate received ACKs on PUSCH/PUCCH to DLSCH harq process ids - uint8_t harq_ids[10]; + uint8_t harq_ids[2][10]; /// Window size (in outgoing transport blocks) for fine-grain rate adaptation uint8_t ra_window_size; /// First-round error threshold for fine-grain rate adaptation @@ -169,6 +182,7 @@ typedef struct { int16_t sqrt_rho_a; /// amplitude of PDSCH (compared to RS) in symbols containing pilots int16_t sqrt_rho_b; +#ifndef PHY_TX_THREAD #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// indicator that this DLSCH corresponds to SIB1-BR, needed for c_init for scrambling uint8_t sib1_br_flag; @@ -176,6 +190,7 @@ typedef struct { uint16_t i0; CEmode_t CEmode; #endif +#endif } LTE_eNB_DLSCH_t; diff --git a/openair1/PHY/LTE_TRANSPORT/transport_proto.h b/openair1/PHY/LTE_TRANSPORT/transport_proto.h index 5547c308e9..37ac335d02 100644 --- a/openair1/PHY/LTE_TRANSPORT/transport_proto.h +++ b/openair1/PHY/LTE_TRANSPORT/transport_proto.h @@ -241,6 +241,7 @@ int32_t allocate_REs_in_RB(PHY_VARS_eNB* phy_vars_eNB, int32_t dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB, int32_t **txdataF, int16_t amp, + int frame, uint32_t sub_frame_offset, uint8_t num_pdcch_symbols, LTE_eNB_DLSCH_t *dlsch0, @@ -418,7 +419,7 @@ void fill_mdci_and_dlsch(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,mDCI_ALLOC_t *d void fill_dci0(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc, nfapi_hi_dci0_dci_pdu *pdu); -void fill_ulsch(PHY_VARS_eNB *eNB,nfapi_ul_config_ulsch_pdu *ulsch_pdu,int frame,int subframe); +void fill_ulsch(PHY_VARS_eNB *eNB,int UE_id,nfapi_ul_config_ulsch_pdu *ulsch_pdu,int frame,int subframe); int generate_eNB_ulsch_params_from_rar(PHY_VARS_eNB *eNB, unsigned char *rar_pdu, @@ -577,7 +578,7 @@ void rx_prach(PHY_VARS_eNB *phy_vars_eNB,RU_t *ru, uint16_t *max_preamble_energy, uint16_t *max_preamble_delay, uint16_t Nf, uint8_t tdd_mapindex -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) , uint8_t br_flag #endif @@ -611,11 +612,11 @@ void conv_eMTC_rballoc(uint16_t resource_block_coding, uint32_t N_RB_DL, uint32_t *rb_alloc); -int8_t find_dlsch(uint16_t rnti, PHY_VARS_eNB *eNB,find_type_t type); +int16_t find_dlsch(uint16_t rnti, PHY_VARS_eNB *eNB,find_type_t type); -int8_t find_ulsch(uint16_t rnti, PHY_VARS_eNB *eNB,find_type_t type); +int16_t find_ulsch(uint16_t rnti, PHY_VARS_eNB *eNB,find_type_t type); -int8_t find_uci(uint16_t rnti, int frame, int subframe, PHY_VARS_eNB *eNB,find_type_t type); +int16_t find_uci(uint16_t rnti, int frame, int subframe, PHY_VARS_eNB *eNB,find_type_t type); /**@}*/ #endif diff --git a/openair1/PHY/LTE_TRANSPORT/uci_tools.c b/openair1/PHY/LTE_TRANSPORT/uci_tools.c index 539d5476ab..88c652133b 100644 --- a/openair1/PHY/LTE_TRANSPORT/uci_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/uci_tools.c @@ -37,10 +37,9 @@ //#define DEBUG_UCI 1 -int8_t find_uci(uint16_t rnti, int frame, int subframe, PHY_VARS_eNB *eNB,find_type_t type) { - uint8_t i; - int8_t first_free_index=-1; - +int16_t find_uci(uint16_t rnti, int frame, int subframe, PHY_VARS_eNB *eNB,find_type_t type) { + uint16_t i; + int16_t first_free_index=-1; AssertFatal(eNB!=NULL,"eNB is null\n"); for (i=0; iuci_vars[i].active >0) && diff --git a/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c b/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c index 50f469011f..851bcfff5a 100644 --- a/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c +++ b/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c @@ -40,7 +40,7 @@ #include "RRC/LTE/rrc_extern.h" #include "PHY_INTERFACE/phy_interface.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" //#define DEBUG_ULSCH_DECODING #include "targets/RT/USER/rt_wrapper.h" #include "transport_proto.h" @@ -228,7 +228,7 @@ int ulsch_decoding_data_2thread0(td_params* tdp) { int harq_pid = tdp->harq_pid; int llr8_flag = tdp->llr8_flag; - unsigned int r,r_offset=0,Kr,Kr_bytes,iind; + unsigned int r,r_offset=0,Kr,Kr_bytes; uint8_t crc_type; int offset = 0; int ret = 1; @@ -240,7 +240,7 @@ int ulsch_decoding_data_2thread0(td_params* tdp) { uint32_t E=0; uint32_t Gp,GpmodC,Nl=1; uint32_t C = ulsch_harq->C; - decoder_if_t tc; + decoder_if_t *tc; if (llr8_flag == 0) tc = decoder16; @@ -260,18 +260,6 @@ int ulsch_decoding_data_2thread0(td_params* tdp) { Kr_bytes = Kr>>3; - if (Kr_bytes<=64) - iind = (Kr_bytes-5); - else if (Kr_bytes <=128) - iind = 59 + ((Kr_bytes-64)>>1); - else if (Kr_bytes <= 256) - iind = 91 + ((Kr_bytes-128)>>2); - else if (Kr_bytes <= 768) - iind = 123 + ((Kr_bytes-256)>>3); - else { - AssertFatal(1==0,"ulsch_decoding: Illegal codeword size %d!!!\n",Kr_bytes); - } - // This is stolen from rate-matching algorithm to get the value of E Gp = G/Nl/Q_m; @@ -304,23 +292,6 @@ int ulsch_decoding_data_2thread0(td_params* tdp) { Kr_bytes = Kr>>3; - if (Kr_bytes<=64) - iind = (Kr_bytes-5); - else if (Kr_bytes <=128) - iind = 59 + ((Kr_bytes-64)>>1); - else if (Kr_bytes <= 256) - iind = 91 + ((Kr_bytes-128)>>2); - else if (Kr_bytes <= 768) - iind = 123 + ((Kr_bytes-256)>>3); - else { - LOG_E(PHY,"ulsch_decoding: Illegal codeword size %d!!!\n",Kr_bytes); - return(-1); - } - -#ifdef DEBUG_ULSCH_DECODING - printf("f1 %d, f2 %d, F %d\n",f1f2mat_old[2*iind],f1f2mat_old[1+(2*iind)],(r==0) ? ulsch_harq->F : 0); -#endif - memset(&dummy_w[r][0],0,3*(6144+64)*sizeof(short)); ulsch_harq->RTC[r] = generate_dummy_w(4+(Kr_bytes*8), (uint8_t*)&dummy_w[r][0], @@ -366,14 +337,12 @@ int ulsch_decoding_data_2thread0(td_params* tdp) { else crc_type = CRC24_B; - + ret = tc(&ulsch_harq->d[r][96], NULL, ulsch_harq->c[r], NULL, Kr, - f1f2mat_old[iind*2], - f1f2mat_old[(iind*2)+1], ulsch->max_turbo_iterations,//MAX_TURBO_ITERATIONS, crc_type, (r==0) ? ulsch_harq->F : 0, @@ -444,7 +413,7 @@ void *td_thread(void *param) { int ulsch_decoding_data_2thread(PHY_VARS_eNB *eNB,int UE_id,int harq_pid,int llr8_flag) { eNB_proc_t *proc = &eNB->proc; - unsigned int r,r_offset=0,Kr,Kr_bytes,iind; + unsigned int r,r_offset=0,Kr,Kr_bytes; uint8_t crc_type; int offset = 0; int ret = 1; @@ -455,7 +424,7 @@ int ulsch_decoding_data_2thread(PHY_VARS_eNB *eNB,int UE_id,int harq_pid,int llr int G = ulsch_harq->G; unsigned int E; int Cby2; - decoder_if_t tc; + decoder_if_t *tc; struct timespec wait; @@ -516,23 +485,6 @@ int ulsch_decoding_data_2thread(PHY_VARS_eNB *eNB,int UE_id,int harq_pid,int llr Kr_bytes = Kr>>3; - if (Kr_bytes<=64) - iind = (Kr_bytes-5); - else if (Kr_bytes <=128) - iind = 59 + ((Kr_bytes-64)>>1); - else if (Kr_bytes <= 256) - iind = 91 + ((Kr_bytes-128)>>2); - else if (Kr_bytes <= 768) - iind = 123 + ((Kr_bytes-256)>>3); - else { - LOG_E(PHY,"ulsch_decoding: Illegal codeword size %d!!!\n",Kr_bytes); - return(-1); - } - -#ifdef DEBUG_ULSCH_DECODING - printf("f1 %d, f2 %d, F %d\n",f1f2mat_old[2*iind],f1f2mat_old[1+(2*iind)],(r==0) ? ulsch_harq->F : 0); -#endif - memset(&dummy_w[r][0],0,3*(6144+64)*sizeof(short)); ulsch_harq->RTC[r] = generate_dummy_w(4+(Kr_bytes*8), (uint8_t*)&dummy_w[r][0], @@ -589,8 +541,6 @@ int ulsch_decoding_data_2thread(PHY_VARS_eNB *eNB,int UE_id,int harq_pid,int llr ulsch_harq->c[r], NULL, Kr, - f1f2mat_old[iind*2], - f1f2mat_old[(iind*2)+1], ulsch->max_turbo_iterations,//MAX_TURBO_ITERATIONS, crc_type, (r==0) ? ulsch_harq->F : 0, @@ -640,7 +590,7 @@ int ulsch_decoding_data_2thread(PHY_VARS_eNB *eNB,int UE_id,int harq_pid,int llr int ulsch_decoding_data(PHY_VARS_eNB *eNB,int UE_id,int harq_pid,int llr8_flag) { - unsigned int r,r_offset=0,Kr,Kr_bytes,iind; + unsigned int r,r_offset=0,Kr,Kr_bytes; uint8_t crc_type; int offset = 0; int ret = 1; @@ -650,7 +600,7 @@ int ulsch_decoding_data(PHY_VARS_eNB *eNB,int UE_id,int harq_pid,int llr8_flag) int G = ulsch_harq->G; unsigned int E; - decoder_if_t tc; + decoder_if_t *tc; if (llr8_flag == 0) tc = *decoder16; @@ -669,23 +619,6 @@ int ulsch_decoding_data(PHY_VARS_eNB *eNB,int UE_id,int harq_pid,int llr8_flag) Kr_bytes = Kr>>3; - if (Kr_bytes<=64) - iind = (Kr_bytes-5); - else if (Kr_bytes <=128) - iind = 59 + ((Kr_bytes-64)>>1); - else if (Kr_bytes <= 256) - iind = 91 + ((Kr_bytes-128)>>2); - else if (Kr_bytes <= 768) - iind = 123 + ((Kr_bytes-256)>>3); - else { - LOG_E(PHY,"ulsch_decoding: Illegal codeword size %d!!!\n",Kr_bytes); - return(-1); - } - -#ifdef DEBUG_ULSCH_DECODING - printf("f1 %d, f2 %d, F %d\n",f1f2mat_old[2*iind],f1f2mat_old[1+(2*iind)],(r==0) ? ulsch_harq->F : 0); -#endif - memset(&dummy_w[r][0],0,3*(6144+64)*sizeof(short)); ulsch_harq->RTC[r] = generate_dummy_w(4+(Kr_bytes*8), (uint8_t*)&dummy_w[r][0], @@ -734,7 +667,8 @@ int ulsch_decoding_data(PHY_VARS_eNB *eNB,int UE_id,int harq_pid,int llr8_flag) crc_type = CRC24_A; else crc_type = CRC24_B; - + + start_meas(&eNB->ulsch_turbo_decoding_stats); ret = tc(&ulsch_harq->d[r][96], @@ -742,8 +676,6 @@ int ulsch_decoding_data(PHY_VARS_eNB *eNB,int UE_id,int harq_pid,int llr8_flag) ulsch_harq->c[r], NULL, Kr, - f1f2mat_old[iind*2], - f1f2mat_old[(iind*2)+1], ulsch->max_turbo_iterations,//MAX_TURBO_ITERATIONS, crc_type, (r==0) ? ulsch_harq->F : 0, @@ -915,8 +847,7 @@ unsigned int ulsch_decoding(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, nb_rb); //#endif - - if (ulsch_harq->round == 0) { + //if (ulsch_harq->round == 0) { // delete for RB shortage pattern // This is a new packet, so compute quantities regarding segmentation ulsch_harq->B = A+24; lte_segmentation(NULL, @@ -929,8 +860,7 @@ unsigned int ulsch_decoding(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, &ulsch_harq->Kminus, &ulsch_harq->F); // CLEAR LLR's HERE for first packet in process - } - + //} // printf("after segmentation c[%d] = %p\n",0,ulsch_harq->c[0]); sumKr = 0; diff --git a/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c b/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c index 0ffe3d735b..619d84cee2 100644 --- a/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c +++ b/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c @@ -1024,20 +1024,6 @@ void ulsch_channel_compensation(int32_t **rxdataF_ext, #endif } - - - - - - - - - - - - - - void ulsch_channel_level(int32_t **drs_ch_estimates_ext, LTE_DL_FRAME_PARMS *frame_parms, int32_t *avg, @@ -1047,24 +1033,23 @@ void ulsch_channel_level(int32_t **drs_ch_estimates_ext, int16_t rb; uint8_t aarx; #if defined(__x86_64__) || defined(__i386__) - __m128i avg128U; __m128i *ul_ch128; + __m128 avg128U; #elif defined(__arm__) - int16x4_t *ul_ch128; int32x4_t avg128U; + int16x4_t *ul_ch128; #endif - for (aarx=0; aarxnb_antennas_rx; aarx++) { //clear average level #if defined(__x86_64__) || defined(__i386__) - avg128U = _mm_setzero_si128(); + avg128U = _mm_setzero_ps(); ul_ch128=(__m128i *)drs_ch_estimates_ext[aarx]; for (rb=0; rbrxdataF_ext[eNB_id][0],300*(frame_parms->symbols_per_tti-ulsch[UE_id]->srs_active),1,1); - //write_output("ulsch_chest.m","drs_est",pusch_vars->drs_ch_estimates[eNB_id][0],300*(frame_parms->symbols_per_tti-ulsch[UE_id]->srs_active),1,1); + //LOG_M("rxdataF_ext.m","rxF_ext",pusch_vars->rxdataF_ext[eNB_id][0],300*(frame_parms->symbols_per_tti-ulsch[UE_id]->srs_active),1,1); + //LOG_M("ulsch_chest.m","drs_est",pusch_vars->drs_ch_estimates[eNB_id][0],300*(frame_parms->symbols_per_tti-ulsch[UE_id]->srs_active),1,1); ulsch_channel_level(pusch_vars->drs_ch_estimates, @@ -1365,70 +1350,70 @@ void rx_ulsch_emul(PHY_VARS_eNB *eNB, eNB->ulsch[UE_id]->harq_processes[harq_pid]->Nsymb_pusch); sprintf(fname,"/tmp/ulsch_r%d_d",round); sprintf(vname,"/tmp/ulsch_r%d_dseq",round); - write_output(fname,vname,&eNB->ulsch[UE_id]->harq_processes[harq_pid]->d[0][96], + LOG_UM(fname,vname,&eNB->ulsch[UE_id]->harq_processes[harq_pid]->d[0][96], eNB->ulsch[UE_id]->harq_processes[harq_pid]->Kplus*3,1,0); if (eNB->common_vars.rxdata) { sprintf(fname,"/tmp/rxsig0_r%d.m",round); sprintf(vname,"rxs0_r%d",round); - write_output(fname,vname, &eNB->common_vars.rxdata[0][0],eNB->frame_parms.samples_per_tti*10,1,1); + LOG_UM(fname,vname, &eNB->common_vars.rxdata[0][0],eNB->frame_parms.samples_per_tti*10,1,1); if (eNB->frame_parms.nb_antennas_rx>1) if (eNB->common_vars.rxdata) { sprintf(fname,"/tmp/rxsig1_r%d.m",round); sprintf(vname,"rxs1_r%d",round); - write_output(fname,vname, &eNB->common_vars.rxdata[1][0],eNB->frame_parms.samples_per_tti*10,1,1); + LOG_UM(fname,vname, &eNB->common_vars.rxdata[1][0],eNB->frame_parms.samples_per_tti*10,1,1); } } sprintf(fname,"/tmp/rxsigF0_r%d.m",round); sprintf(vname,"rxsF0_r%d",round); - write_output(fname,vname, (void*)&eNB->common_vars.rxdataF[0][0],eNB->frame_parms.ofdm_symbol_size*nsymb,1,1); + LOG_UM(fname,vname, (void*)&eNB->common_vars.rxdataF[0][0],eNB->frame_parms.ofdm_symbol_size*nsymb,1,1); if (eNB->frame_parms.nb_antennas_rx>1) { sprintf(fname,"/tmp/rxsigF1_r%d.m",round); sprintf(vname,"rxsF1_r%d",round); - write_output(vname,fname, &eNB->common_vars.rxdataF[1][0],eNB->frame_parms.ofdm_symbol_size*nsymb,1,1); + LOG_UM(vname,fname, &eNB->common_vars.rxdataF[1][0],eNB->frame_parms.ofdm_symbol_size*nsymb,1,1); } sprintf(fname,"/tmp/rxsigF0_ext_r%d.m",round); sprintf(vname,"rxsF0_ext_r%d",round); - write_output(fname,vname, &eNB->pusch_vars[UE_id]->rxdataF_ext[0][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1); + LOG_UM(fname,vname, &eNB->pusch_vars[UE_id]->rxdataF_ext[0][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1); if (eNB->frame_parms.nb_antennas_rx>1) { sprintf(fname,"/tmp/rxsigF1_ext_r%d.m",round); sprintf(vname,"rxsF1_ext_r%d",round); - write_output(fname,vname,&eNB->pusch_vars[UE_id]->rxdataF_ext[1][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1); + LOG_UM(fname,vname,&eNB->pusch_vars[UE_id]->rxdataF_ext[1][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1); } /* - if (eNB->srs_vars[UE_id].srs_ch_estimates) write_output("/tmp/srs_est0.m","srsest0",eNB->srs_vars[UE_id].srs_ch_estimates[0],eNB->frame_parms.ofdm_symbol_size,1,1); + if (eNB->srs_vars[UE_id].srs_ch_estimates) LOG_UM("/tmp/srs_est0.m","srsest0",eNB->srs_vars[UE_id].srs_ch_estimates[0],eNB->frame_parms.ofdm_symbol_size,1,1); if (eNB->frame_parms.nb_antennas_rx>1) - if (eNB->srs_vars[UE_id].srs_ch_estimates) write_output("/tmp/srs_est1.m","srsest1",eNB->srs_vars[UE_id].srs_ch_estimates[1],eNB->frame_parms.ofdm_symbol_size,1,1); + if (eNB->srs_vars[UE_id].srs_ch_estimates) LOG_UM("/tmp/srs_est1.m","srsest1",eNB->srs_vars[UE_id].srs_ch_estimates[1],eNB->frame_parms.ofdm_symbol_size,1,1); */ sprintf(fname,"/tmp/drs_est0_r%d.m",round); sprintf(vname,"drsest0_r%d",round); - write_output(fname,vname,eNB->pusch_vars[UE_id]->drs_ch_estimates[0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1); + LOG_UM(fname,vname,eNB->pusch_vars[UE_id]->drs_ch_estimates[0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1); if (eNB->frame_parms.nb_antennas_rx>1) { sprintf(fname,"/tmp/drs_est1_r%d.m",round); sprintf(vname,"drsest1_r%d",round); - write_output(fname,vname,eNB->pusch_vars[UE_id]->drs_ch_estimates[1],eNB->frame_parms.N_RB_UL*12*nsymb,1,1); + LOG_UM(fname,vname,eNB->pusch_vars[UE_id]->drs_ch_estimates[1],eNB->frame_parms.N_RB_UL*12*nsymb,1,1); } sprintf(fname,"/tmp/ulsch0_rxF_comp0_r%d.m",round); sprintf(vname,"ulsch0_rxF_comp0_r%d",round); - write_output(fname,vname,&eNB->pusch_vars[UE_id]->rxdataF_comp[0][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1); - // write_output("ulsch_rxF_comp1.m","ulsch0_rxF_comp1",&eNB->pusch_vars[UE_id]->rxdataF_comp[0][1][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1); + LOG_UM(fname,vname,&eNB->pusch_vars[UE_id]->rxdataF_comp[0][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1); + // LOG_M("ulsch_rxF_comp1.m","ulsch0_rxF_comp1",&eNB->pusch_vars[UE_id]->rxdataF_comp[0][1][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1); sprintf(fname,"/tmp/ulsch_rxF_llr_r%d.m",round); sprintf(vname,"ulsch_llr_r%d",round); - write_output(fname,vname,eNB->pusch_vars[UE_id]->llr, + LOG_UM(fname,vname,eNB->pusch_vars[UE_id]->llr, eNB->ulsch[UE_id]->harq_processes[harq_pid]->nb_rb*12*eNB->ulsch[UE_id]->harq_processes[harq_pid]->Qm *eNB->ulsch[UE_id]->harq_processes[harq_pid]->Nsymb_pusch,1,0); sprintf(fname,"/tmp/ulsch_ch_mag_r%d.m",round); sprintf(vname,"ulsch_ch_mag_r%d",round); - write_output(fname,vname,&eNB->pusch_vars[UE_id]->ul_ch_mag[0][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1); - // write_output("ulsch_ch_mag1.m","ulsch_ch_mag1",&eNB->pusch_vars[UE_id]->ul_ch_mag[1][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1); + LOG_UM(fname,vname,&eNB->pusch_vars[UE_id]->ul_ch_mag[0][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1); + // LOG_UM("ulsch_ch_mag1.m","ulsch_ch_mag1",&eNB->pusch_vars[UE_id]->ul_ch_mag[1][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1); //#endif } diff --git a/openair1/PHY/LTE_UE_TRANSPORT/dci_tools_ue.c b/openair1/PHY/LTE_UE_TRANSPORT/dci_tools_ue.c index 82dedd9bc9..b9fbcad9c9 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/dci_tools_ue.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/dci_tools_ue.c @@ -943,7 +943,7 @@ int check_dci_format1_1a_coherency(DCI_format_t dci_format, } } - if ((rnti==si_rnti) || (rnti==p_rnti) || (rnti==ra_rnti)) + if (dci_format == format1A && ((rnti==si_rnti) || (rnti==p_rnti) || (rnti==ra_rnti))) { NPRB = (TPC&1) + 2; switch (N_RB_DL) { @@ -960,8 +960,8 @@ int check_dci_format1_1a_coherency(DCI_format_t dci_format, RIV_max = RIV_max100; break; } - } - else + } + else if (dci_format == format1A) { switch (N_RB_DL) { case 6: @@ -996,13 +996,13 @@ int check_dci_format1_1a_coherency(DCI_format_t dci_format, } - if(dci_format == format1) + else if (dci_format == format1) { NPRB = conv_nprb(rah, rballoc, N_RB_DL); } - if(rballoc > RIV_max) + if(dci_format == format1A && rballoc > RIV_max) { // LOG_I(PHY,"bad dci rballoc rballoc %d RIV_max %lld \n",rballoc, RIV_max); // DCI false detection @@ -3128,7 +3128,7 @@ void fill_CQI(LTE_UE_ULSCH_t *ulsch,PHY_MEASUREMENTS *meas,uint8_t eNB_id,uint8_ // this is the cba mcs uci for cba transmission ((HLC_subband_cqi_mcs_CBA_5MHz *)o)->mcs = ulsch->harq_processes[harq_pid]->mcs; ((HLC_subband_cqi_mcs_CBA_5MHz *)o)->crnti = rnti; - LOG_N(PHY,"fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs); + LOG_I(PHY,"fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs); break; case ue_selected: @@ -3182,7 +3182,7 @@ void fill_CQI(LTE_UE_ULSCH_t *ulsch,PHY_MEASUREMENTS *meas,uint8_t eNB_id,uint8_ // this is the cba mcs uci for cba transmission ((HLC_subband_cqi_mcs_CBA_10MHz *)o)->mcs = ulsch->harq_processes[harq_pid]->mcs; ((HLC_subband_cqi_mcs_CBA_10MHz *)o)->crnti = rnti; - LOG_N(PHY,"fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs); + LOG_I(PHY,"fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs); break; case ue_selected: @@ -3236,7 +3236,7 @@ void fill_CQI(LTE_UE_ULSCH_t *ulsch,PHY_MEASUREMENTS *meas,uint8_t eNB_id,uint8_ // this is the cba mcs uci for cba transmission ((HLC_subband_cqi_mcs_CBA_20MHz *)o)->mcs = ulsch->harq_processes[harq_pid]->mcs; ((HLC_subband_cqi_mcs_CBA_20MHz *)o)->crnti = rnti; - LOG_N(PHY,"fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs); + LOG_I(PHY,"fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs); break; case ue_selected: diff --git a/openair1/PHY/LTE_UE_TRANSPORT/dci_ue.c b/openair1/PHY/LTE_UE_TRANSPORT/dci_ue.c index f7afb08286..4a2c8481cb 100755 --- a/openair1/PHY/LTE_UE_TRANSPORT/dci_ue.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/dci_ue.c @@ -43,9 +43,8 @@ #include "SCHED/sched_common.h" #include "assertions.h" -#include "T.h" -#include "UTIL/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" //#define DEBUG_DCI_ENCODING 1 //#define DEBUG_DCI_DECODING 1 @@ -1357,7 +1356,7 @@ int32_t rx_pdcch(PHY_VARS_UE *ue, if (subframe==5) { printf("Writing output s0\n"); - write_output("rxF_comp_d0.m","rxF_c_d",&pdcch_vars[eNB_id]->rxdataF_comp[0][0*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1); + LOG_M("rxF_comp_d0.m","rxF_c_d",&pdcch_vars[eNB_id]->rxdataF_comp[0][0*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1); } #endif @@ -1435,7 +1434,7 @@ int32_t rx_pdcch(PHY_VARS_UE *ue, #ifdef DEBUG_PHY if (subframe==5) { - write_output("rxF_comp_ds.m","rxF_c_ds",&pdcch_vars[eNB_id]->rxdataF_comp[0][s*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1); + LOG_M("rxF_comp_ds.m","rxF_c_ds",&pdcch_vars[eNB_id]->rxdataF_comp[0][s*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1); } #endif @@ -1460,7 +1459,7 @@ int32_t rx_pdcch(PHY_VARS_UE *ue, (char *)pdcch_vars[eNB_id]->llr, s); /*#ifdef DEBUG_PHY - write_output("llr8_seq.m","llr8",&pdcch_vars[eNB_id]->llr[s*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,4); + LOG_M("llr8_seq.m","llr8",&pdcch_vars[eNB_id]->llr[s*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,4); #endif*/ } diff --git a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_decoding.c b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_decoding.c index 30f7733be2..afbd19329d 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_decoding.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_decoding.c @@ -35,10 +35,10 @@ #include "PHY/CODING/coding_extern.h" #include "SCHED/sched_common_extern.h" #include "SIMULATION/TOOLS/sim.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "PHY/LTE_UE_TRANSPORT/transport_proto_ue.h" //#define DEBUG_DLSCH_DECODING -//#define UE_DEBUG_TRACE 1 +#define UE_DEBUG_TRACE 1 void free_ue_dlsch(LTE_UE_DLSCH_t *dlsch) @@ -176,7 +176,6 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue, uint32_t A,E; uint32_t G; uint32_t ret,offset; - uint16_t iind; // uint8_t dummy_channel_output[(3*8*block_length)+12]; short dummy_w[MAX_NUM_DLSCH_SEGMENTS][3*(6144+64)]; uint32_t r,r_offset=0,Kr,Kr_bytes,err_flag=0; @@ -206,9 +205,7 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue, time_stats_t *); #endif -decoder_if_t tc; - - +decoder_if_t *tc; if (!dlsch_llr) { @@ -237,17 +234,13 @@ decoder_if_t tc; } if (llr8_flag == 0) { - //#ifdef __AVX2__ -#if 0 - tc_2cw = phy_threegpplte_turbo_decoder16avx2; -#endif tc = decoder16; } else { - AssertFatal (harq_process->TBS >= 256 , "Mismatch flag nbRB=%d TBS=%d mcs=%d Qm=%d RIV=%d round=%d \n", - harq_process->nb_rb, harq_process->TBS,harq_process->mcs,harq_process->Qm,harq_process->rvidx,harq_process->round); - tc = decoder8; + AssertFatal (harq_process->TBS >= 256 , "Mismatch flag nbRB=%d TBS=%d mcs=%d Qm=%d RIV=%d round=%d \n", + harq_process->nb_rb, harq_process->TBS,harq_process->mcs,harq_process->Qm,harq_process->rvidx,harq_process->round); + tc = decoder8; } @@ -343,23 +336,6 @@ decoder_if_t tc; Kr_bytes = Kr>>3; - if (Kr_bytes<=64) - iind = (Kr_bytes-5); - else if (Kr_bytes <=128) - iind = 59 + ((Kr_bytes-64)>>1); - else if (Kr_bytes <= 256) - iind = 91 + ((Kr_bytes-128)>>2); - else if (Kr_bytes <= 768) - iind = 123 + ((Kr_bytes-256)>>3); - else { - printf("dlsch_decoding: Illegal codeword size %d!!!\n",Kr_bytes); - return(dlsch->max_turbo_iterations); - } - -#ifdef DEBUG_DLSCH_DECODING - printf("f1 %d, f2 %d, F %d\n",f1f2mat_old[2*iind],f1f2mat_old[1+(2*iind)],(r==0) ? harq_process->F : 0); -#endif - #if UE_TIMING_TRACE start_meas(dlsch_rate_unmatching_stats); #endif @@ -429,8 +405,8 @@ decoder_if_t tc; #ifdef DEBUG_DLSCH_DECODING /* if (r==0) { - write_output("decoder_llr.m","decllr",dlsch_llr,G,1,0); - write_output("decoder_in.m","dec",&harq_process->d[0][96],(3*8*Kr_bytes)+12,1,0); + LOG_M("decoder_llr.m","decllr",dlsch_llr,G,1,0); + LOG_M("decoder_in.m","dec",&harq_process->d[0][96],(3*8*Kr_bytes)+12,1,0); } printf("decoder input(segment %d) :",r); @@ -480,8 +456,6 @@ decoder_if_t tc; harq_process->c[r], NULL, Kr, - f1f2mat_old[iind*2], - f1f2mat_old[(iind*2)+1], dlsch->max_turbo_iterations, crc_type, (r==0) ? harq_process->F : 0, @@ -508,8 +482,6 @@ decoder_if_t tc; (&harq_process->d[r][96], harq_process->c[r], Kr, - f1f2mat_old[iind*2], - f1f2mat_old[(iind*2)+1], dlsch->max_turbo_iterations, crc_type, (r==0) ? harq_process->F : 0, @@ -551,8 +523,6 @@ decoder_if_t tc; harq_process->c[r-1], harq_process->c[r], Kr, - f1f2mat_old[iind*2], - f1f2mat_old[(iind*2)+1], dlsch->max_turbo_iterations, crc_type, (r==0) ? harq_process->F : 0, @@ -568,8 +538,6 @@ decoder_if_t tc; (&harq_process->d[r-1][96], harq_process->c[r-1], Kr_last, - f1f2mat_old[iind*2], - f1f2mat_old[(iind*2)+1], dlsch->max_turbo_iterations, crc_type, (r==0) ? harq_process->F : 0, @@ -594,8 +562,6 @@ decoder_if_t tc; (&harq_process->d[r-1][96], harq_process->c[r-1], Kr_last, - f1f2mat_old[iind*2], - f1f2mat_old[(iind*2)+1], dlsch->max_turbo_iterations, crc_type, (r==0) ? harq_process->F : 0, @@ -616,8 +582,6 @@ decoder_if_t tc; (&harq_process->d[r][96], harq_process->c[r], Kr, - f1f2mat_old[iind*2], - f1f2mat_old[(iind*2)+1], dlsch->max_turbo_iterations, crc_type, (r==0) ? harq_process->F : 0, @@ -760,7 +724,6 @@ int dlsch_encoding_SIC(PHY_VARS_UE *ue, unsigned int G; unsigned int crc=1; - unsigned short iind; LTE_DL_FRAME_PARMS *frame_parms = &ue->frame_parms; unsigned char harq_pid = ue->dlsch[subframe&2][0][0]->rnti; @@ -830,21 +793,6 @@ int dlsch_encoding_SIC(PHY_VARS_UE *ue, Kr_bytes = Kr>>3; - // get interleaver index for Turbo code (lookup in Table 5.1.3-3 36-212, V8.6 2009-03, p. 13-14) - if (Kr_bytes<=64) - iind = (Kr_bytes-5); - else if (Kr_bytes <=128) - iind = 59 + ((Kr_bytes-64)>>1); - else if (Kr_bytes <= 256) - iind = 91 + ((Kr_bytes-128)>>2); - else if (Kr_bytes <= 768) - iind = 123 + ((Kr_bytes-256)>>3); - else { - printf("dlsch_coding: Illegal codeword size %d!!!\n",Kr_bytes); - return(-1); - } - - #ifdef DEBUG_DLSCH_CODING printf("Generating Code Segment %d (%d bits)\n",r,Kr); // generate codewords @@ -856,22 +804,17 @@ int dlsch_encoding_SIC(PHY_VARS_UE *ue, #endif -#ifdef DEBUG_DLSCH_CODING - printf("Encoding ... iind %d f1 %d, f2 %d\n",iind,f1f2mat_old[iind*2],f1f2mat_old[(iind*2)+1]); -#endif start_meas(te_stats); encoder(dlsch->harq_processes[harq_pid]->c[r], Kr>>3, &dlsch->harq_processes[harq_pid]->d[r][96], - (r==0) ? dlsch->harq_processes[harq_pid]->F : 0, - f1f2mat_old[iind*2], // f1 (see 36121-820, page 14) - f1f2mat_old[(iind*2)+1] // f2 (see 36121-820, page 14) + (r==0) ? dlsch->harq_processes[harq_pid]->F : 0 ); stop_meas(te_stats); #ifdef DEBUG_DLSCH_CODING if (r==0) - write_output("enc_output0.m","enc0",&dlsch->harq_processes[harq_pid]->d[r][96],(3*8*Kr_bytes)+12,1,4); + LOG_M("enc_output0.m","enc0",&dlsch->harq_processes[harq_pid]->d[r][96],(3*8*Kr_bytes)+12,1,4); #endif start_meas(i_stats); @@ -918,7 +861,7 @@ int dlsch_encoding_SIC(PHY_VARS_UE *ue, #ifdef DEBUG_DLSCH_CODING if (r==dlsch->harq_processes[harq_pid]->C-1) - write_output("enc_output.m","enc",dlsch->harq_processes[harq_pid]->e,r_offset,1,4); + LOG_M("enc_output.m","enc",dlsch->harq_processes[harq_pid]->e,r_offset,1,4); #endif } diff --git a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c index bc9169d731..8533b0f026 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c @@ -36,8 +36,18 @@ #include "transport_proto_ue.h" #include "PHY/sse_intrin.h" #include "T.h" +#include +#include +#include +#include +#include +#include +#include +#include "linear_preprocessing_rec.h" #define NOCYGWIN_STATIC +//#define DEBUG_MMSE + /* dynamic shift for LLR computation for TM3/4 * set as command line argument, see lte-softmodem.c @@ -103,6 +113,7 @@ int rx_pdsch(PHY_VARS_UE *ue, int avg[4]; int avg_0[2]; int avg_1[2]; + unsigned short mmse_flag=0; #if UE_TIMING_TRACE uint8_t slot = 0; @@ -440,14 +451,15 @@ int rx_pdsch(PHY_VARS_UE *ue, ((dlsch0_harq->mimo_mode >=DUALSTREAM_UNIFORM_PRECODING1) && (dlsch0_harq->mimo_mode <=DUALSTREAM_PUSCH_PRECODING))) { - dlsch_channel_level_TM34(pdsch_vars[eNB_id]->dl_ch_estimates_ext, - frame_parms, - pdsch_vars[eNB_id]->pmi_ext, - avg_0, - avg_1, - symbol, - nb_rb, - dlsch0_harq->mimo_mode); + dlsch_channel_level_TM34(pdsch_vars[eNB_id]->dl_ch_estimates_ext, + frame_parms, + pdsch_vars[eNB_id]->pmi_ext, + avg_0, + avg_1, + symbol, + nb_rb, + mmse_flag, + dlsch0_harq->mimo_mode); LOG_D(PHY,"Channel Level TM34 avg_0 %d, avg_1 %d, rx_type %d, rx_standard %d, dlsch_demod_shift %d \n", avg_0[0], avg_1[0], rx_type, rx_standard, dlsch_demod_shift); @@ -546,6 +558,27 @@ int rx_pdsch(PHY_VARS_UE *ue, #if UE_TIMING_TRACE start_meas(&ue->generic_stat_bis[ue->current_thread_id[subframe]][slot]); #endif + + if (rx_type==rx_IC_dual_stream && mmse_flag==1){ + + precode_channel_est(pdsch_vars[eNB_id]->dl_ch_estimates_ext, + frame_parms, + pdsch_vars[eNB_id], + symbol, + nb_rb, + dlsch0_harq->mimo_mode); + + mmse_processing_oai(pdsch_vars[eNB_id], + frame_parms, + measurements, + first_symbol_flag, + dlsch0_harq->mimo_mode, + mmse_flag, + 0.0, + symbol, + nb_rb); + } + // Now channel compensation if (dlsch0_harq->mimo_moderxdataF_ext, @@ -561,9 +594,10 @@ int rx_pdsch(PHY_VARS_UE *ue, nb_rb, pdsch_vars[eNB_id]->log2_maxh, measurements); // log2_maxh+I0_shift - /*if (symbol == 5) { - write_output("rxF_comp_d.m","rxF_c_d",&pdsch_vars[eNB_id]->rxdataF_comp0[0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1); - } */ + if (symbol == 5) { + LOG_M("rxF_comp_d.m","rxF_c_d",&pdsch_vars[eNB_id]->rxdataF_comp0[0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1); + } + if ((rx_type==rx_IC_single_stream) && (eNB_id_in_connected_eNB)) { dlsch_channel_compensation(pdsch_vars[eNB_id_i]->rxdataF_ext, @@ -579,12 +613,10 @@ int rx_pdsch(PHY_VARS_UE *ue, nb_rb, pdsch_vars[eNB_id]->log2_maxh, measurements); // log2_maxh+I0_shift -#ifdef DEBUG_PHY if (symbol == 5) { - write_output("rxF_comp_d.m","rxF_c_d",&pdsch_vars[eNB_id]->rxdataF_comp0[0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1); - write_output("rxF_comp_i.m","rxF_c_i",&pdsch_vars[eNB_id_i]->rxdataF_comp0[0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1); + LOG_M("rxF_comp_d.m","rxF_c_d",&pdsch_vars[eNB_id]->rxdataF_comp0[0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1); + LOG_M("rxF_comp_i.m","rxF_c_i",&pdsch_vars[eNB_id_i]->rxdataF_comp0[0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1); } -#endif dlsch_dual_stream_correlation(frame_parms, symbol, @@ -607,16 +639,17 @@ int rx_pdsch(PHY_VARS_UE *ue, dlsch0_harq->round, dlsch0_harq->mimo_mode, nb_rb, + mmse_flag, pdsch_vars[eNB_id]->log2_maxh0, pdsch_vars[eNB_id]->log2_maxh1); - /* if (symbol == 5) { - write_output("rxF_comp_d00.m","rxF_c_d00",&pdsch_vars[eNB_id]->rxdataF_comp0[0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);// should be QAM - write_output("rxF_comp_d01.m","rxF_c_d01",&pdsch_vars[eNB_id]->rxdataF_comp0[1][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);//should be almost 0 - write_output("rxF_comp_d10.m","rxF_c_d10",&pdsch_vars[eNB_id]->rxdataF_comp1[harq_pid][round][0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);//should be almost 0 - write_output("rxF_comp_d11.m","rxF_c_d11",&pdsch_vars[eNB_id]->rxdataF_comp1[harq_pid][round][1][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);//should be QAM - } */ + if (symbol == 5) { + LOG_M("rxF_comp_d00.m","rxF_c_d00",&pdsch_vars[eNB_id]->rxdataF_comp0[0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);// should be QAM + LOG_M("rxF_comp_d01.m","rxF_c_d01",&pdsch_vars[eNB_id]->rxdataF_comp0[1][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);//should be almost 0 + LOG_M("rxF_comp_d10.m","rxF_c_d10",&pdsch_vars[eNB_id]->rxdataF_comp1[harq_pid][round][0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);//should be almost 0 + LOG_M("rxF_comp_d11.m","rxF_c_d11",&pdsch_vars[eNB_id]->rxdataF_comp1[harq_pid][round][1][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);//should be QAM + } // compute correlation between signal and interference channels (rho12 and rho21) - dlsch_dual_stream_correlation(frame_parms, // this is doing h11'*h12 and h21'*h22 + dlsch_dual_stream_correlation(frame_parms, // this is doing h11'*h12 and h21'*h22 symbol, nb_rb, pdsch_vars[eNB_id]->dl_ch_estimates_ext, @@ -634,13 +667,12 @@ int rx_pdsch(PHY_VARS_UE *ue, pdsch_vars[eNB_id]->log2_maxh1); // printf("rho stream2 =%d\n",&pdsch_vars[eNB_id]->dl_ch_rho2_ext ); //printf("TM3 log2_maxh : %d\n",pdsch_vars[eNB_id]->log2_maxh); - /* if (symbol == 5) { - write_output("rho0_0.m","rho0_0",&pdsch_vars[eNB_id]->dl_ch_rho_ext[harq_pid][round][0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);// should be QAM - write_output("rho2_0.m","rho2_0",&pdsch_vars[eNB_id]->dl_ch_rho2_ext[0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);//should be almost 0 - write_output("rho0_1.m.m","rho0_1",&pdsch_vars[eNB_id]->dl_ch_rho_ext[harq_pid][round][1][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);//should be almost 0 - write_output("rho2_1.m","rho2_1",&pdsch_vars[eNB_id]->dl_ch_rho2_ext[1][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);//should be QAM - } */ - + if (symbol == 5) { + LOG_M("rho0_0.m","rho0_0",&pdsch_vars[eNB_id]->dl_ch_rho_ext[harq_pid][round][0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);// should be QAM + LOG_M("rho2_0.m","rho2_0",&pdsch_vars[eNB_id]->dl_ch_rho2_ext[0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);//should be almost 0 + LOG_M("rho0_1.m.m","rho0_1",&pdsch_vars[eNB_id]->dl_ch_rho_ext[harq_pid][round][1][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);//should be almost 0 + LOG_M("rho2_1.m","rho2_1",&pdsch_vars[eNB_id]->dl_ch_rho2_ext[1][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);//should be QAM + } } else if (dlsch0_harq->mimo_moden_connected_eNB) && (dlsch0_harq->dl_power_off==0)) { dlsch_channel_compensation_TM56(pdsch_vars[eNB_id]->rxdataF_ext, @@ -690,12 +722,11 @@ int rx_pdsch(PHY_VARS_UE *ue, nb_rb, pdsch_vars[eNB_id]->log2_maxh, dlsch0_harq->dl_power_off); -#ifdef DEBUG_PHY if (symbol==5) { - write_output("rxF_comp_d.m","rxF_c_d",&pdsch_vars[eNB_id]->rxdataF_comp0[0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1); - write_output("rxF_comp_i.m","rxF_c_i",&pdsch_vars[eNB_id_i]->rxdataF_comp0[0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1); + LOG_M("rxF_comp_d.m","rxF_c_d",&pdsch_vars[eNB_id]->rxdataF_comp0[0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1); + LOG_M("rxF_comp_i.m","rxF_c_i",&pdsch_vars[eNB_id_i]->rxdataF_comp0[0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1); } -#endif + dlsch_dual_stream_correlation(frame_parms, symbol, nb_rb, @@ -765,10 +796,10 @@ int rx_pdsch(PHY_VARS_UE *ue, symbol, nb_rb, 1); - /* if (symbol == 5) { - write_output("rho0_mrc.m","rho0_0",&pdsch_vars[eNB_id]->dl_ch_rho_ext[harq_pid][round][0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);// should be QAM - write_output("rho2_mrc.m","rho2_0",&pdsch_vars[eNB_id]->dl_ch_rho2_ext[0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);//should be almost 0 - } */ + if (symbol == 5) { + LOG_M("rho0_mrc.m","rho0_0",&pdsch_vars[eNB_id]->dl_ch_rho_ext[harq_pid][round][0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);// should be QAM + LOG_M("rho2_mrc.m","rho2_0",&pdsch_vars[eNB_id]->dl_ch_rho2_ext[0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);//should be almost 0 + } } } else { dlsch_detection_mrc(frame_parms, @@ -1188,7 +1219,8 @@ int rx_pdsch(PHY_VARS_UE *ue, LOG_D(PHY, "[AbsSFN %d.%d] Slot%d Symbol %d: LLR Computation %5.2f \n",frame,subframe,slot,symbol,ue->generic_stat_bis[ue->current_thread_id[subframe]][slot].p_time/(cpuf*1000.0)); #endif #endif -// Please keep it: useful for debugging + + // Please keep it: useful for debugging #if 0 if( (symbol == 13) && (subframe==0) && (dlsch0_harq->Qm == 6) /*&& (nb_rb==25)*/) { @@ -1196,29 +1228,29 @@ int rx_pdsch(PHY_VARS_UE *ue, if(1) { #if 1 - write_output("rxdataF0.m" , "rxdataF0", &common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF[0][0],14*frame_parms->ofdm_symbol_size,1,1); - //write_output("rxdataF1.m" , "rxdataF1", &common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF[0][0],14*frame_parms->ofdm_symbol_size,1,1); - write_output("dl_ch_estimates00.m", "dl_ch_estimates00", &common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id][0][0],14*frame_parms->ofdm_symbol_size,1,1); - //write_output("dl_ch_estimates01.m", "dl_ch_estimates01", &common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id][1][0],14*frame_parms->ofdm_symbol_size,1,1); - //write_output("dl_ch_estimates10.m", "dl_ch_estimates10", &common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id][2][0],14*frame_parms->ofdm_symbol_size,1,1); - //write_output("dl_ch_estimates11.m", "dl_ch_estimates11", &common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id][3][0],14*frame_parms->ofdm_symbol_size,1,1); + LOG_M("rxdataF0.m" , "rxdataF0", &common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF[0][0],14*frame_parms->ofdm_symbol_size,1,1); + //LOG_M("rxdataF1.m" , "rxdataF1", &common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF[0][0],14*frame_parms->ofdm_symbol_size,1,1); + LOG_M("dl_ch_estimates00.m", "dl_ch_estimates00", &common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id][0][0],14*frame_parms->ofdm_symbol_size,1,1); + //LOG_M("dl_ch_estimates01.m", "dl_ch_estimates01", &common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id][1][0],14*frame_parms->ofdm_symbol_size,1,1); + //LOG_M("dl_ch_estimates10.m", "dl_ch_estimates10", &common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id][2][0],14*frame_parms->ofdm_symbol_size,1,1); + //LOG_M("dl_ch_estimates11.m", "dl_ch_estimates11", &common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id][3][0],14*frame_parms->ofdm_symbol_size,1,1); - //write_output("rxdataF_ext00.m" , "rxdataF_ext00", &pdsch_vars[eNB_id]->rxdataF_ext[0][0],14*frame_parms->N_RB_DL*12,1,1); - //write_output("rxdataF_ext01.m" , "rxdataF_ext01", &pdsch_vars[eNB_id]->rxdataF_ext[1][0],14*frame_parms->N_RB_DL*12,1,1); - //write_output("rxdataF_ext10.m" , "rxdataF_ext10", &pdsch_vars[eNB_id]->rxdataF_ext[2][0],14*frame_parms->N_RB_DL*12,1,1); - //write_output("rxdataF_ext11.m" , "rxdataF_ext11", &pdsch_vars[eNB_id]->rxdataF_ext[3][0],14*frame_parms->N_RB_DL*12,1,1); - write_output("dl_ch_estimates_ext00.m", "dl_ch_estimates_ext00", &pdsch_vars[eNB_id]->dl_ch_estimates_ext[0][0],14*frame_parms->N_RB_DL*12,1,1); - //write_output("dl_ch_estimates_ext01.m", "dl_ch_estimates_ext01", &pdsch_vars[eNB_id]->dl_ch_estimates_ext[1][0],14*frame_parms->N_RB_DL*12,1,1); - //write_output("dl_ch_estimates_ext10.m", "dl_ch_estimates_ext10", &pdsch_vars[eNB_id]->dl_ch_estimates_ext[2][0],14*frame_parms->N_RB_DL*12,1,1); - //write_output("dl_ch_estimates_ext11.m", "dl_ch_estimates_ext11", &pdsch_vars[eNB_id]->dl_ch_estimates_ext[3][0],14*frame_parms->N_RB_DL*12,1,1); - write_output("rxdataF_comp00.m","rxdataF_comp00", &pdsch_vars[eNB_id]->rxdataF_comp0[0][0],14*frame_parms->N_RB_DL*12,1,1); - //write_output("rxdataF_comp01.m","rxdataF_comp01", &pdsch_vars[eNB_id]->rxdataF_comp0[1][0],14*frame_parms->N_RB_DL*12,1,1); - //write_output("rxdataF_comp10.m","rxdataF_comp10", &pdsch_vars[eNB_id]->rxdataF_comp1[harq_pid][round][0][0],14*frame_parms->N_RB_DL*12,1,1); - //write_output("rxdataF_comp11.m","rxdataF_comp11", &pdsch_vars[eNB_id]->rxdataF_comp1[harq_pid][round][1][0],14*frame_parms->N_RB_DL*12,1,1); + //LOG_M("rxdataF_ext00.m" , "rxdataF_ext00", &pdsch_vars[eNB_id]->rxdataF_ext[0][0],14*frame_parms->N_RB_DL*12,1,1); + //LOG_M("rxdataF_ext01.m" , "rxdataF_ext01", &pdsch_vars[eNB_id]->rxdataF_ext[1][0],14*frame_parms->N_RB_DL*12,1,1); + //LOG_M("rxdataF_ext10.m" , "rxdataF_ext10", &pdsch_vars[eNB_id]->rxdataF_ext[2][0],14*frame_parms->N_RB_DL*12,1,1); + //LOG_M("rxdataF_ext11.m" , "rxdataF_ext11", &pdsch_vars[eNB_id]->rxdataF_ext[3][0],14*frame_parms->N_RB_DL*12,1,1); + LOG_M("dl_ch_estimates_ext00.m", "dl_ch_estimates_ext00", &pdsch_vars[eNB_id]->dl_ch_estimates_ext[0][0],14*frame_parms->N_RB_DL*12,1,1); + //LOG_M("dl_ch_estimates_ext01.m", "dl_ch_estimates_ext01", &pdsch_vars[eNB_id]->dl_ch_estimates_ext[1][0],14*frame_parms->N_RB_DL*12,1,1); + //LOG_M("dl_ch_estimates_ext10.m", "dl_ch_estimates_ext10", &pdsch_vars[eNB_id]->dl_ch_estimates_ext[2][0],14*frame_parms->N_RB_DL*12,1,1); + //LOG_M("dl_ch_estimates_ext11.m", "dl_ch_estimates_ext11", &pdsch_vars[eNB_id]->dl_ch_estimates_ext[3][0],14*frame_parms->N_RB_DL*12,1,1); + LOG_M("rxdataF_comp00.m","rxdataF_comp00", &pdsch_vars[eNB_id]->rxdataF_comp0[0][0],14*frame_parms->N_RB_DL*12,1,1); + //LOG_M("rxdataF_comp01.m","rxdataF_comp01", &pdsch_vars[eNB_id]->rxdataF_comp0[1][0],14*frame_parms->N_RB_DL*12,1,1); + //LOG_M("rxdataF_comp10.m","rxdataF_comp10", &pdsch_vars[eNB_id]->rxdataF_comp1[harq_pid][round][0][0],14*frame_parms->N_RB_DL*12,1,1); + //LOG_M("rxdataF_comp11.m","rxdataF_comp11", &pdsch_vars[eNB_id]->rxdataF_comp1[harq_pid][round][1][0],14*frame_parms->N_RB_DL*12,1,1); #endif - write_output("llr0.m","llr0", &pdsch_vars[eNB_id]->llr[0][0],(14*nb_rb*12*dlsch1_harq->Qm) - 4*(nb_rb*4*dlsch1_harq->Qm),1,0); - //write_output("llr1.m","llr1", &pdsch_vars[eNB_id]->llr[1][0],(14*nb_rb*12*dlsch1_harq->Qm) - 4*(nb_rb*4*dlsch1_harq->Qm),1,0); + LOG_M("llr0.m","llr0", &pdsch_vars[eNB_id]->llr[0][0],(14*nb_rb*12*dlsch1_harq->Qm) - 4*(nb_rb*4*dlsch1_harq->Qm),1,0); + //LOG_M("llr1.m","llr1", &pdsch_vars[eNB_id]->llr[1][0],(14*nb_rb*12*dlsch1_harq->Qm) - 4*(nb_rb*4*dlsch1_harq->Qm),1,0); AssertFatal(0," "); @@ -1281,16 +1313,18 @@ void dlsch_channel_compensation(int **rxdataF_ext, QAM_amp128b = _mm_set1_epi16(QAM64_n2); } - // printf("comp: rxdataF_comp %p, symbol %d\n",rxdataF_comp[0],symbol); - for (aarx=0; aarxnb_antennas_rx; aarx++) { - - dl_ch128 = (__m128i *)&dl_ch_estimates_ext[(aatx<<1)+aarx][symbol*frame_parms->N_RB_DL*12]; - dl_ch_mag128 = (__m128i *)&dl_ch_mag[(aatx<<1)+aarx][symbol*frame_parms->N_RB_DL*12]; - dl_ch_mag128b = (__m128i *)&dl_ch_magb[(aatx<<1)+aarx][symbol*frame_parms->N_RB_DL*12]; + /* TODO: hack to be removed. There is crash for 1 antenna case, so + * for 1 antenna case, I put back the value 2 as it was before + * Elena's commit. + */ + int x = frame_parms->nb_antennas_rx > 1 ? frame_parms->nb_antennas_rx : 2; + dl_ch128 = (__m128i *)&dl_ch_estimates_ext[aatx*x + aarx][symbol*frame_parms->N_RB_DL*12]; + //print_shorts("dl_ch128[0]=",&dl_ch128[0]);*/ + dl_ch_mag128 = (__m128i *)&dl_ch_mag[aatx*x + aarx][symbol*frame_parms->N_RB_DL*12]; + dl_ch_mag128b = (__m128i *)&dl_ch_magb[aatx*x + aarx][symbol*frame_parms->N_RB_DL*12]; rxdataF128 = (__m128i *)&rxdataF_ext[aarx][symbol*frame_parms->N_RB_DL*12]; - rxdataF_comp128 = (__m128i *)&rxdataF_comp[(aatx<<1)+aarx][symbol*frame_parms->N_RB_DL*12]; - + rxdataF_comp128 = (__m128i *)&rxdataF_comp[aatx*x + aarx][symbol*frame_parms->N_RB_DL*12]; for (rb=0; rb2) { @@ -1310,9 +1344,9 @@ void dlsch_channel_compensation(int **rxdataF_ext, dl_ch_mag128b[0] = dl_ch_mag128[0]; dl_ch_mag128[0] = _mm_mulhi_epi16(dl_ch_mag128[0],QAM_amp128); dl_ch_mag128[0] = _mm_slli_epi16(dl_ch_mag128[0],1); - //print_ints("Re(ch):",(int16_t*)&mmtmpD0); - //print_shorts("QAM_amp:",(int16_t*)&QAM_amp128); - //print_shorts("mag:",(int16_t*)&dl_ch_mag128[0]); + //print_ints("Re(ch):",(int16_t*)&mmtmpD0); + //print_shorts("QAM_amp:",(int16_t*)&QAM_amp128); + //print_shorts("mag:",(int16_t*)&dl_ch_mag128[0]); dl_ch_mag128[1] = _mm_unpackhi_epi16(mmtmpD0,mmtmpD0); dl_ch_mag128b[1] = dl_ch_mag128[1]; dl_ch_mag128[1] = _mm_mulhi_epi16(dl_ch_mag128[1],QAM_amp128); @@ -1345,7 +1379,6 @@ void dlsch_channel_compensation(int **rxdataF_ext, // multiply by conjugated channel mmtmpD0 = _mm_madd_epi16(dl_ch128[0],rxdataF128[0]); - // print_ints("re",&mmtmpD0); // mmtmpD0 contains real part of 4 consecutive outputs (32-bit) mmtmpD1 = _mm_shufflelo_epi16(dl_ch128[0],_MM_SHUFFLE(2,3,0,1)); @@ -1402,7 +1435,7 @@ void dlsch_channel_compensation(int **rxdataF_ext, rxdataF_comp128[2] = _mm_packs_epi32(mmtmpD2,mmtmpD3); // print_shorts("rx:",rxdataF128+2); // print_shorts("ch:",dl_ch128+2); - // print_shorts("pack:",rxdataF_comp128+2); + // print_shorts("pack:",rxdataF_comp128+2); dl_ch128+=3; dl_ch_mag128+=3; @@ -1543,11 +1576,11 @@ void dlsch_channel_compensation(int **rxdataF_ext, // printf("comp: rxdataF_comp %p, symbol %d\n",rxdataF_comp[0],symbol); for (aarx=0; aarxnb_antennas_rx; aarx++) { - dl_ch128 = (int16x4_t*)&dl_ch_estimates_ext[(aatx<<1)+aarx][symbol*frame_parms->N_RB_DL*12]; - dl_ch_mag128 = (int16x8_t*)&dl_ch_mag[(aatx<<1)+aarx][symbol*frame_parms->N_RB_DL*12]; - dl_ch_mag128b = (int16x8_t*)&dl_ch_magb[(aatx<<1)+aarx][symbol*frame_parms->N_RB_DL*12]; + dl_ch128 = (int16x4_t*)&dl_ch_estimates_ext[aatx*frame_parms->nb_antennas_rx + aarx][symbol*frame_parms->N_RB_DL*12]; + dl_ch_mag128 = (int16x8_t*)&dl_ch_mag[aatx*frame_parms->nb_antennas_rx + aarx][symbol*frame_parms->N_RB_DL*12]; + dl_ch_mag128b = (int16x8_t*)&dl_ch_magb[aatx*frame_parms->nb_antennas_rx + aarx][symbol*frame_parms->N_RB_DL*12]; rxdataF128 = (int16x4_t*)&rxdataF_ext[aarx][symbol*frame_parms->N_RB_DL*12]; - rxdataF_comp128 = (int16x4x2_t*)&rxdataF_comp[(aatx<<1)+aarx][symbol*frame_parms->N_RB_DL*12]; + rxdataF_comp128 = (int16x4x2_t*)&rxdataF_comp[aatx*frame_parms->nb_antennas_rx + aarx][symbol*frame_parms->N_RB_DL*12]; for (rb=0; rb2) { @@ -1708,6 +1741,209 @@ void dlsch_channel_compensation(int **rxdataF_ext, #endif } +void dlsch_channel_compensation_core(int **rxdataF_ext, + int **dl_ch_estimates_ext, + int **dl_ch_mag, + int **dl_ch_magb, + int **rxdataF_comp, + int **rho, + unsigned char n_tx, + unsigned char n_rx, + unsigned char mod_order, + unsigned char output_shift, + int length, + int start_point) + +{ + + unsigned short ii; + int length_mod8 = 0; + int length2; + __m128i *dl_ch128,*dl_ch_mag128,*dl_ch_mag128b, *dl_ch128_2, *rxdataF128,*rxdataF_comp128,*rho128; + __m128i mmtmpD0,mmtmpD1,mmtmpD2,mmtmpD3,QAM_amp128,QAM_amp128b; + int aatx = 0, aarx = 0; + + for (aatx=0; aatx 1 ? n_rx : 2; + + dl_ch128 = (__m128i *)&dl_ch_estimates_ext[aatx*x + aarx][start_point]; + dl_ch_mag128 = (__m128i *)&dl_ch_mag[aatx*x + aarx][start_point]; + dl_ch_mag128b = (__m128i *)&dl_ch_magb[aatx*x + aarx][start_point]; + rxdataF128 = (__m128i *)&rxdataF_ext[aarx][start_point]; + rxdataF_comp128 = (__m128i *)&rxdataF_comp[aatx*x + aarx][start_point]; + + length_mod8 = length&7; + if (length_mod8 == 0){ + length2 = length>>3; + + for (ii=0; ii2) { + // get channel amplitude if not QPSK + + mmtmpD0 = _mm_madd_epi16(dl_ch128[0],dl_ch128[0]); + mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift); + + mmtmpD1 = _mm_madd_epi16(dl_ch128[1],dl_ch128[1]); + mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift); + + mmtmpD0 = _mm_packs_epi32(mmtmpD0,mmtmpD1); + + // store channel magnitude here in a new field of dlsch + + dl_ch_mag128[0] = _mm_unpacklo_epi16(mmtmpD0,mmtmpD0); + dl_ch_mag128b[0] = dl_ch_mag128[0]; + dl_ch_mag128[0] = _mm_mulhi_epi16(dl_ch_mag128[0],QAM_amp128); + dl_ch_mag128[0] = _mm_slli_epi16(dl_ch_mag128[0],1); + //print_ints("Re(ch):",(int16_t*)&mmtmpD0); + //print_shorts("QAM_amp:",(int16_t*)&QAM_amp128); + //print_shorts("mag:",(int16_t*)&dl_ch_mag128[0]); + dl_ch_mag128[1] = _mm_unpackhi_epi16(mmtmpD0,mmtmpD0); + dl_ch_mag128b[1] = dl_ch_mag128[1]; + dl_ch_mag128[1] = _mm_mulhi_epi16(dl_ch_mag128[1],QAM_amp128); + dl_ch_mag128[1] = _mm_slli_epi16(dl_ch_mag128[1],1); + + dl_ch_mag128b[0] = _mm_mulhi_epi16(dl_ch_mag128b[0],QAM_amp128b); + dl_ch_mag128b[0] = _mm_slli_epi16(dl_ch_mag128b[0],1); + + dl_ch_mag128b[1] = _mm_mulhi_epi16(dl_ch_mag128b[1],QAM_amp128b); + dl_ch_mag128b[1] = _mm_slli_epi16(dl_ch_mag128b[1],1); + + } + + // multiply by conjugated channel + mmtmpD0 = _mm_madd_epi16(dl_ch128[0],rxdataF128[0]); + + // mmtmpD0 contains real part of 4 consecutive outputs (32-bit) + mmtmpD1 = _mm_shufflelo_epi16(dl_ch128[0],_MM_SHUFFLE(2,3,0,1)); + mmtmpD1 = _mm_shufflehi_epi16(mmtmpD1,_MM_SHUFFLE(2,3,0,1)); + mmtmpD1 = _mm_sign_epi16(mmtmpD1,*(__m128i*)&conjugate[0]); + // print_ints("im",&mmtmpD1); + mmtmpD1 = _mm_madd_epi16(mmtmpD1,rxdataF128[0]); + // mmtmpD1 contains imag part of 4 consecutive outputs (32-bit) + mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift); + // print_ints("re(shift)",&mmtmpD0); + mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift); + // print_ints("im(shift)",&mmtmpD1); + mmtmpD2 = _mm_unpacklo_epi32(mmtmpD0,mmtmpD1); + mmtmpD3 = _mm_unpackhi_epi32(mmtmpD0,mmtmpD1); + // print_ints("c0",&mmtmpD2); + // print_ints("c1",&mmtmpD3); + rxdataF_comp128[0] = _mm_packs_epi32(mmtmpD2,mmtmpD3); + // print_shorts("rx:",rxdataF128); + // print_shorts("ch:",dl_ch128); + // print_shorts("pack:",rxdataF_comp128); + + // multiply by conjugated channel + mmtmpD0 = _mm_madd_epi16(dl_ch128[1],rxdataF128[1]); + // mmtmpD0 contains real part of 4 consecutive outputs (32-bit) + mmtmpD1 = _mm_shufflelo_epi16(dl_ch128[1],_MM_SHUFFLE(2,3,0,1)); + mmtmpD1 = _mm_shufflehi_epi16(mmtmpD1,_MM_SHUFFLE(2,3,0,1)); + mmtmpD1 = _mm_sign_epi16(mmtmpD1,*(__m128i*)conjugate); + mmtmpD1 = _mm_madd_epi16(mmtmpD1,rxdataF128[1]); + // mmtmpD1 contains imag part of 4 consecutive outputs (32-bit) + mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift); + mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift); + mmtmpD2 = _mm_unpacklo_epi32(mmtmpD0,mmtmpD1); + mmtmpD3 = _mm_unpackhi_epi32(mmtmpD0,mmtmpD1); + + rxdataF_comp128[1] = _mm_packs_epi32(mmtmpD2,mmtmpD3); + // print_shorts("rx:",rxdataF128+1); + // print_shorts("ch:",dl_ch128+1); + //print_shorts("pack:",rxdataF_comp128+1); + + dl_ch128+=2; + dl_ch_mag128+=2; + dl_ch_mag128b+=2; + rxdataF128+=2; + rxdataF_comp128+=2; + } + }else { + printf ("Channel Compensation: Received number of subcarriers is not multiple of 8, \n" + "need to adapt the code!\n"); + } + } + } + +/*This part of code makes sense only for processing in 2x2 blocks*/ + if (rho) { + + + for (aarx=0; aarx>3; + + for (ii=0; iipmi_ext; + + symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol; + + if ((symbol_mod == 0) || (symbol_mod == (4-frame_parms->Ncp))) + pilots=1; + + for (aarx=0;aarxnb_antennas_rx;aarx++) { + + dl_ch0_128 = (__m128i *)&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*12]; // this is h11 + dl_ch1_128 = (__m128i *)&dl_ch_estimates_ext[2+aarx][symbol*frame_parms->N_RB_DL*12]; // this is h12 + + for (rb=0; rbnb_antennas_rx;aarx++) { - /* if (aarx==0) { - output_shift=output_shift0; - } - else { - output_shift=output_shift1; - } */ - - // printf("antenna %d\n", aarx); - // printf("symbol %d, rx antenna %d\n", symbol, aarx); - dl_ch0_128 = (__m128i *)&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*12]; // this is h11 dl_ch1_128 = (__m128i *)&dl_ch_estimates_ext[2+aarx][symbol*frame_parms->N_RB_DL*12]; // this is h12 - - dl_ch_mag0_128 = (__m128i *)&dl_ch_mag0[aarx][symbol*frame_parms->N_RB_DL*12]; //responsible for x1 dl_ch_mag0_128b = (__m128i *)&dl_ch_magb0[aarx][symbol*frame_parms->N_RB_DL*12];//responsible for x1 dl_ch_mag1_128 = (__m128i *)&dl_ch_mag1[aarx][symbol*frame_parms->N_RB_DL*12]; //responsible for x2. always coming from tx2 @@ -2367,48 +2655,37 @@ void dlsch_channel_compensation_TM34(LTE_DL_FRAME_PARMS *frame_parms, rxdataF_comp1_128 = (__m128i *)&rxdataF_comp1[aarx][symbol*frame_parms->N_RB_DL*12]; //result of multipl with MF x2 on antenna of interest for (rb=0; rb2) { @@ -2537,7 +2814,7 @@ void dlsch_channel_compensation_TM34(LTE_DL_FRAME_PARMS *frame_parms, // print_shorts("rx:",rxdataF128); // print_shorts("ch:",dl_ch0_128); - // print_shorts("pack:",rxdataF_comp0_128); + //print_shorts("pack:",rxdataF_comp0_128); // multiply by conjugated channel mmtmpD0 = _mm_madd_epi16(dl_ch0_128[1],rxdataF128[1]); @@ -2756,36 +3033,31 @@ void dlsch_channel_compensation_TM34(LTE_DL_FRAME_PARMS *frame_parms, rxdataF_comp1_128 = (int16x8_t*)&rxdataF_comp1[aarx][symbol*frame_parms->N_RB_DL*12]; for (rb=0; rb2) { @@ -3010,19 +3282,15 @@ void dlsch_dual_stream_correlation(LTE_DL_FRAME_PARMS *frame_parms, for (aarx=0; aarxnb_antennas_rx; aarx++) { - - - //printf ("antenna %d", aarx); dl_ch128 = (__m128i *)&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*12]; if (dl_ch_estimates_ext_i == NULL) // TM3/4 - dl_ch128i = (__m128i *)&dl_ch_estimates_ext[2+aarx][symbol*frame_parms->N_RB_DL*12]; + dl_ch128i = (__m128i *)&dl_ch_estimates_ext[aarx + frame_parms->nb_antennas_rx][symbol*frame_parms->N_RB_DL*12]; else dl_ch128i = (__m128i *)&dl_ch_estimates_ext_i[aarx][symbol*frame_parms->N_RB_DL*12]; dl_ch_rho128 = (__m128i *)&dl_ch_rho_ext[aarx][symbol*frame_parms->N_RB_DL*12]; - for (rb=0; rb=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol; - - if ((symbol_mod == 0) || (symbol_mod == (4-frame_parms->Ncp))) { - pilots=1; - } - - // printf("Dual stream correlation (%p)\n",dl_ch_estimates_ext_i); - - for (aarx=0; aarxnb_antennas_rx; aarx++) { - - if (aarx==0) { - output_shift=output_shift0; - } - else { - output_shift=output_shift1; - } - - //printf ("antenna %d", aarx); - dl_ch128 = (__m128i *)&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*12]; - - if (dl_ch_estimates_ext_i == NULL) // TM3/4 - dl_ch128i = (__m128i *)&dl_ch_estimates_ext[2+aarx][symbol*frame_parms->N_RB_DL*12]; - else - dl_ch128i = (__m128i *)&dl_ch_estimates_ext_i[aarx][symbol*frame_parms->N_RB_DL*12]; - - dl_ch_rho128 = (__m128i *)&dl_ch_rho_ext[aarx][symbol*frame_parms->N_RB_DL*12]; - - - for (rb=0; rbrxdataF_comp0; int **rxdataF_comp1 = pdsch_vars->rxdataF_comp1[harq_pid][round]; @@ -3379,66 +3529,120 @@ void dlsch_detection_mrc_TM34(LTE_DL_FRAME_PARMS *frame_parms, int **dl_ch_magb0 = pdsch_vars->dl_ch_magb0; int **dl_ch_magb1 = pdsch_vars->dl_ch_magb1[harq_pid][round]; - if (frame_parms->nb_antennas_rx>1) { - - rxdataF_comp128_0 = (__m128i *)&rxdataF_comp0[0][symbol*frame_parms->N_RB_DL*12]; - rxdataF_comp128_1 = (__m128i *)&rxdataF_comp0[1][symbol*frame_parms->N_RB_DL*12]; - dl_ch_mag128_0 = (__m128i *)&dl_ch_mag0[0][symbol*frame_parms->N_RB_DL*12]; - dl_ch_mag128_1 = (__m128i *)&dl_ch_mag0[1][symbol*frame_parms->N_RB_DL*12]; - dl_ch_mag128_0b = (__m128i *)&dl_ch_magb0[0][symbol*frame_parms->N_RB_DL*12]; - dl_ch_mag128_1b = (__m128i *)&dl_ch_magb0[1][symbol*frame_parms->N_RB_DL*12]; + rxdataF_comp128_0 = (__m128i *)&rxdataF_comp0[0][symbol*frame_parms->N_RB_DL*12]; + rxdataF_comp128_1 = (__m128i *)&rxdataF_comp0[1][symbol*frame_parms->N_RB_DL*12]; + dl_ch_mag128_0 = (__m128i *)&dl_ch_mag0[0][symbol*frame_parms->N_RB_DL*12]; + dl_ch_mag128_1 = (__m128i *)&dl_ch_mag0[1][symbol*frame_parms->N_RB_DL*12]; + dl_ch_mag128_0b = (__m128i *)&dl_ch_magb0[0][symbol*frame_parms->N_RB_DL*12]; + dl_ch_mag128_1b = (__m128i *)&dl_ch_magb0[1][symbol*frame_parms->N_RB_DL*12]; + rho128_0 = (__m128i *) &dl_ch_rho2_ext[0][symbol*frame_parms->N_RB_DL*12]; + rho128_1 = (__m128i *) &dl_ch_rho2_ext[1][symbol*frame_parms->N_RB_DL*12]; // MRC on each re of rb, both on MF output and magnitude (for 16QAM/64QAM llr computation) - for (i=0;inb_antennas_rx>2) { - // if (rho) { - rho128_0 = (__m128i *) &dl_ch_rho2_ext[0][symbol*frame_parms->N_RB_DL*12]; - rho128_1 = (__m128i *) &dl_ch_rho2_ext[1][symbol*frame_parms->N_RB_DL*12]; - for (i=0;iN_RB_DL*12]; + rxdataF_comp128_3 = (__m128i *)&rxdataF_comp0[3][symbol*frame_parms->N_RB_DL*12]; + dl_ch_mag128_2 = (__m128i *)&dl_ch_mag0[2][symbol*frame_parms->N_RB_DL*12]; + dl_ch_mag128_3 = (__m128i *)&dl_ch_mag0[3][symbol*frame_parms->N_RB_DL*12]; + dl_ch_mag128_2b = (__m128i *)&dl_ch_magb0[2][symbol*frame_parms->N_RB_DL*12]; + dl_ch_mag128_3b = (__m128i *)&dl_ch_magb0[3][symbol*frame_parms->N_RB_DL*12]; + rho128_2 = (__m128i *) &dl_ch_rho2_ext[2][symbol*frame_parms->N_RB_DL*12]; + rho128_3 = (__m128i *) &dl_ch_rho2_ext[3][symbol*frame_parms->N_RB_DL*12]; + /*rxdataF_comp*/ + rxdataF_comp128_2[i] = _mm_adds_epi16(_mm_srai_epi16(rxdataF_comp128_2[i],1),_mm_srai_epi16(rxdataF_comp128_3[i],1)); + rxdataF_comp128_0[i] = _mm_adds_epi16(_mm_srai_epi16(rxdataF_comp128_0[i],1),_mm_srai_epi16(rxdataF_comp128_2[i],1)); + /*dl_ch_mag*/ + dl_ch_mag128_2[i] = _mm_adds_epi16(_mm_srai_epi16(dl_ch_mag128_2[i],1),_mm_srai_epi16(dl_ch_mag128_3[i],1)); + dl_ch_mag128_0[i] = _mm_adds_epi16(_mm_srai_epi16(dl_ch_mag128_0[i],1),_mm_srai_epi16(dl_ch_mag128_2[i],1)); + /*dl_ch_mag*/ + dl_ch_mag128_2b[i] = _mm_adds_epi16(_mm_srai_epi16(dl_ch_mag128_2b[i],1),_mm_srai_epi16(dl_ch_mag128_3b[i],1)); + dl_ch_mag128_0b[i] = _mm_adds_epi16(_mm_srai_epi16(dl_ch_mag128_0b[i],1),_mm_srai_epi16(dl_ch_mag128_2b[i],1)); + /*rho*/ + rho128_2[i] = _mm_adds_epi16(_mm_srai_epi16(rho128_2[i],1),_mm_srai_epi16(rho128_3[i],1)); + rho128_0[i] = _mm_adds_epi16(_mm_srai_epi16(rho128_0[i],1),_mm_srai_epi16(rho128_2[i],1)); + } + } if (dual_stream_UE == 1) { - rho128_i0 = (__m128i *) &dl_ch_rho_ext[0][symbol*frame_parms->N_RB_DL*12]; - rho128_i1 = (__m128i *) &dl_ch_rho_ext[1][symbol*frame_parms->N_RB_DL*12]; + + __m128i *dl_ch_mag128_i0, *dl_ch_mag128_i1; + __m128i *dl_ch_mag128_i0b, *dl_ch_mag128_i1b; + __m128i *rho128_i0, *rho128_i1; + __m128i *rxdataF_comp128_i0, *rxdataF_comp128_i1; + rxdataF_comp128_i0 = (__m128i *)&rxdataF_comp1[0][symbol*frame_parms->N_RB_DL*12]; rxdataF_comp128_i1 = (__m128i *)&rxdataF_comp1[1][symbol*frame_parms->N_RB_DL*12]; dl_ch_mag128_i0 = (__m128i *)&dl_ch_mag1[0][symbol*frame_parms->N_RB_DL*12]; dl_ch_mag128_i1 = (__m128i *)&dl_ch_mag1[1][symbol*frame_parms->N_RB_DL*12]; dl_ch_mag128_i0b = (__m128i *)&dl_ch_magb1[0][symbol*frame_parms->N_RB_DL*12]; dl_ch_mag128_i1b = (__m128i *)&dl_ch_magb1[1][symbol*frame_parms->N_RB_DL*12]; + rho128_i0 = (__m128i *) &dl_ch_rho_ext[0][symbol*frame_parms->N_RB_DL*12]; + rho128_i1 = (__m128i *) &dl_ch_rho_ext[1][symbol*frame_parms->N_RB_DL*12]; + + for (i=0;inb_antennas_rx>2) { + + __m128i *rxdataF_comp128_i2 = NULL; + __m128i *rxdataF_comp128_i3 = NULL; + __m128i *dl_ch_mag128_i2 = NULL; + __m128i *dl_ch_mag128_i3 = NULL; + __m128i *dl_ch_mag128_i2b = NULL; + __m128i *dl_ch_mag128_i3b = NULL; + __m128i *rho128_i2 = NULL; + __m128i *rho128_i3 = NULL; + + rxdataF_comp128_i2 = (__m128i *)&rxdataF_comp1[2][symbol*frame_parms->N_RB_DL*12]; + rxdataF_comp128_i3 = (__m128i *)&rxdataF_comp1[3][symbol*frame_parms->N_RB_DL*12]; + dl_ch_mag128_i2 = (__m128i *)&dl_ch_mag1[2][symbol*frame_parms->N_RB_DL*12]; + dl_ch_mag128_i3 = (__m128i *)&dl_ch_mag1[3][symbol*frame_parms->N_RB_DL*12]; + dl_ch_mag128_i2b = (__m128i *)&dl_ch_magb1[2][symbol*frame_parms->N_RB_DL*12]; + dl_ch_mag128_i3b = (__m128i *)&dl_ch_magb1[3][symbol*frame_parms->N_RB_DL*12]; + rho128_i2 = (__m128i *) &dl_ch_rho_ext[2][symbol*frame_parms->N_RB_DL*12]; + rho128_i3 = (__m128i *) &dl_ch_rho_ext[3][symbol*frame_parms->N_RB_DL*12]; + + + /*rxdataF_comp*/ + rxdataF_comp128_i2[i] = _mm_adds_epi16(_mm_srai_epi16(rxdataF_comp128_i2[i],1),_mm_srai_epi16(rxdataF_comp128_i3[i],1)); + rxdataF_comp128_i0[i] = _mm_adds_epi16(_mm_srai_epi16(rxdataF_comp128_i0[i],1),_mm_srai_epi16(rxdataF_comp128_i2[i],1)); + /*dl_ch_mag*/ + dl_ch_mag128_i2[i] = _mm_adds_epi16(_mm_srai_epi16(dl_ch_mag128_i2[i],1),_mm_srai_epi16(dl_ch_mag128_i3[i],1)); + dl_ch_mag128_i0[i] = _mm_adds_epi16(_mm_srai_epi16(dl_ch_mag128_i0[i],1),_mm_srai_epi16(dl_ch_mag128_i2[i],1)); + /*dl_ch_mag*/ + dl_ch_mag128_i2b[i] = _mm_adds_epi16(_mm_srai_epi16(dl_ch_mag128_i2b[i],1),_mm_srai_epi16(dl_ch_mag128_i3b[i],1)); + dl_ch_mag128_i0b[i] = _mm_adds_epi16(_mm_srai_epi16(dl_ch_mag128_i0b[i],1),_mm_srai_epi16(dl_ch_mag128_i2b[i],1)); + /*rho*/ + rho128_i2[i] = _mm_adds_epi16(_mm_srai_epi16(rho128_i2[i],1),_mm_srai_epi16(rho128_i3[i],1)); + rho128_i0[i] = _mm_adds_epi16(_mm_srai_epi16(rho128_i0[i],1),_mm_srai_epi16(rho128_i2[i],1)); + } } } - _mm_empty(); _m_empty(); } - - void dlsch_scale_channel(int **dl_ch_estimates_ext, LTE_DL_FRAME_PARMS *frame_parms, LTE_UE_DLSCH_t **dlsch_ue, @@ -3464,7 +3668,7 @@ void dlsch_scale_channel(int **dl_ch_estimates_ext, // Determine scaling amplitude based the symbol ch_amp = ((pilots) ? (dlsch_ue[0]->sqrt_rho_b) : (dlsch_ue[0]->sqrt_rho_a)); - + LOG_D(PHY,"Scaling PDSCH Chest in OFDM symbol %d by %d, pilots %d nb_rb %d NCP %d symbol %d\n",symbol_mod,ch_amp,pilots,nb_rb,frame_parms->Ncp,symbol); // printf("Scaling PDSCH Chest in OFDM symbol %d by %d\n",symbol_mod,ch_amp); @@ -3500,7 +3704,6 @@ void dlsch_scale_channel(int **dl_ch_estimates_ext, #endif } - //compute average channel_level on each (TX,RX) antenna pair void dlsch_channel_level(int **dl_ch_estimates_ext, LTE_DL_FRAME_PARMS *frame_parms, @@ -3510,6 +3713,7 @@ void dlsch_channel_level(int **dl_ch_estimates_ext, { #if defined(__x86_64__)||defined(__i386__) + //printf("symbol = %d\n", symbol); short rb; unsigned char aatx,aarx,nre=12,symbol_mod; @@ -3527,21 +3731,23 @@ void dlsch_channel_level(int **dl_ch_estimates_ext, //nb_rb*nre = y * 2^x int16_t x = factor2(nb_rb*nre); int16_t y = (nb_rb*nre)>>x; - //printf("nb_rb*nre = %d = %d * 2^(%d)\n",nb_rb*nre,y,x); for (aatx=0; aatxnb_antenna_ports_eNB; aatx++) for (aarx=0; aarxnb_antennas_rx; aarx++) { - //clear average level + //clear average level + //printf("aatx = %d, aarx = %d, aatx*frame_parms->nb_antennas_rx + aarx] = %d \n", aatx, aarx, aatx*frame_parms->nb_antennas_rx + aarx); + avg128D = _mm_setzero_si128(); // 5 is always a symbol with no pilots for both normal and extended prefix - dl_ch128=(__m128i *)&dl_ch_estimates_ext[(aatx<<1)+aarx][symbol*frame_parms->N_RB_DL*12]; + + dl_ch128=(__m128i *)&dl_ch_estimates_ext[aatx*2 + aarx][symbol*frame_parms->N_RB_DL*12]; for (rb=0;rbnb_antennas_rx + aarx] =(((int32_t*)&avg128D)[0] + + ((int32_t*)&avg128D)[1] + + ((int32_t*)&avg128D)[2] + + ((int32_t*)&avg128D)[3])/y; + } _mm_empty(); _m_empty(); @@ -3588,7 +3793,7 @@ void dlsch_channel_level(int **dl_ch_estimates_ext, avg128D = vdupq_n_s32(0); // 5 is always a symbol with no pilots for both normal and extended prefix - dl_ch128=(int16x4_t *)&dl_ch_estimates_ext[(aatx<<1)+aarx][symbol*frame_parms->N_RB_DL*12]; + dl_ch128=(int16x4_t *)&dl_ch_estimates_ext[aatx*frame_parms->nb_antennas_rx + aarx][symbol*frame_parms->N_RB_DL*12]; for (rb=0; rbNcp-1)))&&(frame_parms->nb_antenna_ports_eNB!=1)) { + if (((symbol_mod == 0) || (symbol_mod == (frame_parms->Ncp-1)))&&(frame_parms->mode1_flag==0)) { dl_ch128+=4; } else { avg128D = vqaddq_s32(avg128D,vmull_s16(dl_ch128[4],dl_ch128[4])); @@ -3615,6 +3820,113 @@ void dlsch_channel_level(int **dl_ch_estimates_ext, */ } + if (((symbol_mod == 0) || (symbol_mod == (frame_parms->Ncp-1)))&&(frame_parms->mode1_flag==0)) + nre=8; + else if (((symbol_mod == 0) || (symbol_mod == (frame_parms->Ncp-1)))&&(frame_parms->mode1_flag==1)) + nre=10; + else + nre=12; + + avg[aatx*frame_parms->nb_antennas_rx + aarx] = (((int32_t*)&avg128D)[0] + + ((int32_t*)&avg128D)[1] + + ((int32_t*)&avg128D)[2] + + ((int32_t*)&avg128D)[3])/(nb_rb*nre); + + //printf("Channel level : %d\n",avg[aatx*(frame_parms->nb_antennas_rx-1) + aarx]); + } +#endif + +} + +void dlsch_channel_level_core(int **dl_ch_estimates_ext, + int32_t *avg, + int n_tx, + int n_rx, + int length, + int start_point) +{ + +#if defined(__x86_64__)||defined(__i386__) + + short ii; + int aatx,aarx; + int length_mod8; + int length2; + __m128i *dl_ch128, avg128D; + + int16_t x = factor2(length); + int16_t y = (length)>>x; + + for (aatx=0; aatx>3; + + for (ii=0;ii=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol; + + for (aatx=0; aatxnb_antenna_ports_eNB; aatx++) + for (aarx=0; aarxnb_antennas_rx; aarx++) { + //clear average level + avg128D = vdupq_n_s32(0); + // 5 is always a symbol with no pilots for both normal and extended prefix + + dl_ch128=(int16x4_t *)&dl_ch_estimates_ext[aatx*frame_parms->nb_antennas_rx + aarx][symbol*frame_parms->N_RB_DL*12]; + + for (rb=0; rbNcp-1)))&&(frame_parms->nb_antenna_ports_eNB!=1)) { + dl_ch128+=4; + } else { + avg128D = vqaddq_s32(avg128D,vmull_s16(dl_ch128[4],dl_ch128[4])); + avg128D = vqaddq_s32(avg128D,vmull_s16(dl_ch128[5],dl_ch128[5])); + dl_ch128+=6; + } + } + if (((symbol_mod == 0) || (symbol_mod == (frame_parms->Ncp-1)))&&(frame_parms->nb_antenna_ports_eNB!=1)) nre=8; @@ -3623,19 +3935,698 @@ void dlsch_channel_level(int **dl_ch_estimates_ext, else nre=12; - avg[(aatx<<1)+aarx] = (((int32_t*)&avg128D)[0] + - ((int32_t*)&avg128D)[1] + - ((int32_t*)&avg128D)[2] + - ((int32_t*)&avg128D)[3])/(nb_rb*nre); + avg[aatx*frame_parms->nb_antennas_rx + aarx] = (((int32_t*)&avg128D)[0] + + ((int32_t*)&avg128D)[1] + + ((int32_t*)&avg128D)[2] + + ((int32_t*)&avg128D)[3])/(nb_rb*nre); - // printf("Channel level : %d\n",avg[(aatx<<1)+aarx]); + //printf("Channel level : %d\n",avg[aatx*(frame_parms->nb_antennas_rx-1) + aarx]); } - - #endif + } -//compute average channel_level of effective (precoded) channel +void dlsch_channel_level_median(int **dl_ch_estimates_ext, + int32_t *median, + int n_tx, + int n_rx, + int length, + int start_point) +{ + +#if defined(__x86_64__)||defined(__i386__) + + short ii; + int aatx,aarx; + int length2; + int max = 0, min=0; + int norm_pack; + __m128i *dl_ch128, norm128D; + + for (aatx=0; aatx>2; + + for (ii=0;ii max) + max = norm_pack; + if (norm_pack < min) + min = norm_pack; + + dl_ch128+=1; + } + + median[aatx*n_rx + aarx] = (max+min)>>1; + + // printf("Channel level median [%d]: %d\n",aatx*n_rx + aarx, median[aatx*n_rx + aarx]); + } + } + + _mm_empty(); + _m_empty(); + +#elif defined(__arm__) + + short rb; + unsigned char aatx,aarx,nre=12,symbol_mod; + int32x4_t norm128D; + int16x4_t *dl_ch128; + + for (aatx=0; aatxnb_antenna_ports_eNB; aatx++){ + for (aarx=0; aarxnb_antennas_rx; aarx++) { + max = 0; + min = 0; + norm128D = vdupq_n_s32(0); + + dl_ch128=(int16x4_t *)&dl_ch_estimates_ext[aatx*n_rx + aarx][start_point]; + + length_mod8=length&3; + length2 = length>>2; + + for (ii=0;ii max) + max = norm_pack; + if (norm_pack < min) + min = norm_pack; + + dl_ch128+=1; + } + + median[aatx*n_rx + aarx] = (max+min)>>1; + + //printf("Channel level median [%d]: %d\n",aatx*n_rx + aarx, median[aatx*n_rx + aarx]); + } + } +#endif + +} + +void mmse_processing_oai(LTE_UE_PDSCH *pdsch_vars, + LTE_DL_FRAME_PARMS *frame_parms, + PHY_MEASUREMENTS *measurements, + unsigned char first_symbol_flag, + MIMO_mode_t mimo_mode, + unsigned short mmse_flag, + int noise_power, + unsigned char symbol, + unsigned short nb_rb){ + + int **rxdataF_ext = pdsch_vars->rxdataF_ext; + int **dl_ch_estimates_ext = pdsch_vars->dl_ch_estimates_ext; + unsigned char *pmi_ext = pdsch_vars->pmi_ext; + int avg_00[frame_parms->nb_antenna_ports_eNB*frame_parms->nb_antennas_rx]; + int avg_01[frame_parms->nb_antenna_ports_eNB*frame_parms->nb_antennas_rx]; + int symbol_mod, length, start_point, nre; + + symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol; + + if (((symbol_mod == 0) || (symbol_mod == (frame_parms->Ncp-1)))&&(frame_parms->nb_antenna_ports_eNB!=1)) + nre=8; + else if (((symbol_mod == 0) || (symbol_mod == (frame_parms->Ncp-1)))&&(frame_parms->nb_antenna_ports_eNB==1)) + nre=10; + else + nre=12; + + length = nre*nb_rb; + start_point = symbol*nb_rb*12; + + + mmse_processing_core(rxdataF_ext, + dl_ch_estimates_ext, + noise_power, + frame_parms->nb_antenna_ports_eNB, + frame_parms->nb_antennas_rx, + length, + start_point); + + + /*dlsch_channel_aver_band(dl_ch_estimates_ext, + frame_parms, + chan_avg, + symbol, + nb_rb); + + + for (aatx=0; aatxnb_antenna_ports_eNB; aatx++) + for (aarx=0; aarxnb_antennas_rx; aarx++) { + H[aatx*frame_parms->nb_antennas_rx + aarx] = (float)(chan_avg[aatx*frame_parms->nb_antennas_rx + aarx].r/(32768.0)) + I*(float)(chan_avg[aatx*frame_parms->nb_antennas_rx + aarx].i/(32768.0)); + // printf("H [%d] = (%f, %f) \n", aatx*frame_parms->nb_antennas_rx + aarx, creal(H[aatx*frame_parms->nb_antennas_rx + aarx]), cimag(H[aatx*frame_parms->nb_antennas_rx + aarx])); + }*/ + + if (first_symbol_flag == 1){ + dlsch_channel_level_TM34(dl_ch_estimates_ext, + frame_parms, + pmi_ext, + avg_00, + avg_01, + symbol, + nb_rb, + mmse_flag, + mimo_mode); + + avg_00[0] = (log2_approx(avg_00[0])/2) + dlsch_demod_shift+4;// + 2 ;//+ 4; + avg_01[0] = (log2_approx(avg_01[0])/2) + dlsch_demod_shift+4;// + 2 ;//+ 4; + pdsch_vars->log2_maxh0 = cmax(avg_00[0],0); + pdsch_vars->log2_maxh1 = cmax(avg_01[0],0); + } +} + +void mmse_processing_core(int32_t **rxdataF_ext, + int32_t **dl_ch_estimates_ext, + int noise_power, + int n_tx, + int n_rx, + int length, + int start_point){ + + int aatx, aarx, re; + float imag; + float real; + + + float complex **W_MMSE= malloc(n_tx*n_rx*sizeof(float complex*)); + for (int j=0; j max) + max = fabs(creal(W_MMSE_re[aatx*n_rx + aarx])); + if (fabs(cimag(W_MMSE_re[aatx*n_rx + aarx])) > max) + max = fabs(cimag(W_MMSE_re[aatx*n_rx + aarx])); + } + } + } + one_over_max = 1.0/max; + + for (re=0; re=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol; + + if (((symbol_mod == 0) || (symbol_mod == (frame_parms->Ncp-1)))&&(frame_parms->nb_antenna_ports_eNB!=1)) + nre=8; + else if (((symbol_mod == 0) || (symbol_mod == (frame_parms->Ncp-1)))&&(frame_parms->nb_antenna_ports_eNB==1)) + nre=10; + else + nre=12; + + for (aatx=0; aatxnb_antennas_tx; aatx++){ + for (aarx=0; aarxnb_antennas_rx; aarx++) { + dl_ch128=(__m128i *)&dl_ch_estimates_ext[aatx*frame_parms->nb_antennas_rx + aarx][symbol*frame_parms->N_RB_DL*12]; + avg128D = _mm_setzero_si128(); + // print_shorts("avg128D 1",&avg128D); + + for (rb=0;rbnb_antennas_rx + aarx, nb_rb*nre, rb); + print_shorts("aver dl_ch128",&dl_ch128[0]); + print_shorts("aver dl_ch128",&dl_ch128[1]); + print_shorts("aver dl_ch128",&dl_ch128[2]); + avg128D = _mm_add_epi16(avg128D, dl_ch128[0]);*/ + //print_shorts("avg128D 2",&avg128D); + + avg128D = _mm_add_epi16(avg128D, dl_ch128[1]); + // print_shorts("avg128D 3",&avg128D); + + if (((symbol_mod == 0) || (symbol_mod == (frame_parms->Ncp-1)))&&(frame_parms->nb_antenna_ports_eNB!=1)) { + dl_ch128+=2; + }else { + avg128D = _mm_add_epi16(avg128D,dl_ch128[2]); + // print_shorts("avg128D 4",&avg128D); + dl_ch128+=3; + } + } + + chan_avg[aatx*frame_parms->nb_antennas_rx + aarx].r =(((int16_t*)&avg128D)[0] + + ((int16_t*)&avg128D)[2] + + ((int16_t*)&avg128D)[4] + + ((int16_t*)&avg128D)[6])/(nb_rb*nre); + // printf("symb %d chan_avg re [%d] = %d\n", symbol, aatx*frame_parms->nb_antennas_rx + aarx, chan_avg[aatx*frame_parms->nb_antennas_rx + aarx].r); + + + + chan_avg[aatx*frame_parms->nb_antennas_rx + aarx].i =(((int16_t*)&avg128D)[1] + + ((int16_t*)&avg128D)[3] + + ((int16_t*)&avg128D)[5] + + ((int16_t*)&avg128D)[7])/(nb_rb*nre); + // printf("symb %d chan_avg im [%d] = %d\n", symbol, aatx*frame_parms->nb_antennas_rx + aarx, chan_avg[aatx*frame_parms->nb_antennas_rx + aarx].i); + + //printf("symb %d chan_avg im [%d] = %d\n", symbol, aatx*frame_parms->nb_antennas_rx + aarx, chan_avg[aatx*frame_parms->nb_antennas_rx + aarx].i); + + + chan_est_avg[aatx*frame_parms->nb_antennas_rx + aarx] = (((int32_t)chan_avg[aatx*frame_parms->nb_antennas_rx + aarx].i)<<16)|(((int32_t)chan_avg[aatx*frame_parms->nb_antennas_rx + aarx].r) & 0xffff); + + //printf("symb %d chan_est_avg [%d] = %d\n", symbol, aatx*frame_parms->nb_antennas_rx + aarx, chan_est_avg[aatx*frame_parms->nb_antennas_rx + aarx]); + + dl_ch128=(__m128i *)&dl_ch_estimates_ext[aatx*frame_parms->nb_antennas_rx + aarx][symbol*frame_parms->N_RB_DL*12]; + + for (rb=0;rbnb_antennas_rx + aarx]); + dl_ch128[1] = _mm_set1_epi32(chan_est_avg[aatx*frame_parms->nb_antennas_rx + aarx]); + if (((symbol_mod == 0) || (symbol_mod == (frame_parms->Ncp-1)))&&(frame_parms->nb_antenna_ports_eNB!=1)) { + dl_ch128+=2; + }else { + dl_ch128[2] = _mm_set1_epi32(chan_est_avg[aatx*frame_parms->nb_antennas_rx + aarx]); + dl_ch128+=3; + } + } + } + } + + _mm_empty(); + _m_empty(); + +#elif defined(__arm__) +#endif + } + +void rxdataF_to_float(int32_t **rxdataF_ext, + float complex **rxdataF_f, + int n_rx, + int length, + int start_point) +{ + short re; + int aarx; + int16_t imag; + int16_t real; + + for (aarx=0; aarx> 16); + real = (int16_t) (rxdataF_ext[aarx][start_point + re] & 0xffff); + rxdataF_f[aarx][re] = (float)(real/(32768.0)) + I*(float)(imag/(32768.0)); +#ifdef DEBUG_MMSE + if (re==0){ + printf("rxdataF_to_float: aarx = %d, real= %d, imag = %d\n", aarx, real, imag); + //printf("rxdataF_to_float: rxdataF_ext[%d][%d] = %d\n", aarx, start_point + re, rxdataF_ext[aarx][start_point + re]); + //printf("rxdataF_to_float: ant %d, re = %d, rxdataF_f real = %f, rxdataF_f imag = %f \n", aarx, re, creal(rxdataF_f[aarx][re]), cimag(rxdataF_f[aarx][re])); + } +#endif + } + } +} + + + +void chan_est_to_float(int32_t **dl_ch_estimates_ext, + float complex **dl_ch_estimates_ext_f, + int n_tx, + int n_rx, + int length, + int start_point) +{ + short re; + int aatx,aarx; + int16_t imag; + int16_t real; + + for (aatx=0; aatx> 16); + real = (int16_t) (dl_ch_estimates_ext[aatx*n_rx + aarx][start_point+ re] & 0xffff); + dl_ch_estimates_ext_f[aatx*n_rx + aarx][re] = (float)(real/(32768.0)) + I*(float)(imag/(32768.0)); +#ifdef DEBUG_MMSE + if (re==0){ + printf("ant %d, re = %d, real = %d, imag = %d \n", aatx*n_rx + aarx, re, real, imag); + printf("ant %d, re = %d, real = %f, imag = %f \n", aatx*n_rx + aarx, re, creal(dl_ch_estimates_ext_f[aatx*n_rx + aarx][re]), cimag(dl_ch_estimates_ext_f[aatx*n_rx + aarx][re])); + } +#endif + } + } + } +} + +void float_to_chan_est(int32_t **dl_ch_estimates_ext, + float complex **dl_ch_estimates_ext_f, + int n_tx, + int n_rx, + int length, + int start_point) +{ + + short re; + int aarx, aatx; + int16_t imag; + int16_t real; + + for (aatx=0; aatx=1) + imag = 0x7FFF; + else + imag = cimag(dl_ch_estimates_ext_f[aatx*n_rx + aarx][re])*32768; + if (creal(dl_ch_estimates_ext_f[aatx*n_rx + aarx][re])<-1) + real = 0x8000; + else if (creal(dl_ch_estimates_ext_f[aatx*n_rx + aarx][re])>=1) + real = 0x7FFF; + else + real = creal(dl_ch_estimates_ext_f[aatx*n_rx + aarx][re])*32768; + + dl_ch_estimates_ext[aatx*n_rx + aarx][start_point + re] = (((int32_t)imag)<<16)|((int32_t)real & 0xffff); +#ifdef DEBUG_MMSE + if (re==0){ + printf(" float_to_chan_est: chan est real = %f, chan est imag = %f\n",creal(dl_ch_estimates_ext_f[aatx*n_rx + aarx][re]), cimag(dl_ch_estimates_ext_f[aatx*n_rx + aarx][re])); + printf("float_to_chan_est: real fixed = %d, imag fixed = %d\n", real, imag); + printf("float_to_chan_est: ant %d, re = %d, dl_ch_estimates_ext = %d \n", aatx*n_rx + aarx, re, dl_ch_estimates_ext[aatx*n_rx + aarx][start_point + re]); + } +#endif + } + } + } +} + + +void float_to_rxdataF(int32_t **rxdataF_ext, + float complex **rxdataF_f, + int n_tx, + int n_rx, + int length, + int start_point) +{ + + short re; + int aarx; + int16_t imag; + int16_t real; + + for (aarx=0; aarx=1) + imag = 0x7FFF; + else + imag = cimag(rxdataF_f[aarx][re])*32768; + if (creal(rxdataF_f[aarx][re])<-1) + real = 0x8000; + else if (creal(rxdataF_f[aarx][re])>=1) + real = 0x7FFF; + else + real = creal(rxdataF_f[aarx][re])*32768; + rxdataF_ext[aarx][start_point + re] = (((int32_t)imag)<<16)|(((int32_t)real) & 0xffff); +#ifdef DEBUG_MMSE + if (re==0){ + printf(" float_to_rxdataF: real = %f, imag = %f\n",creal(rxdataF_f[aarx][re]), cimag(rxdataF_f[aarx][re])); + printf("float_to_rxdataF: real fixed = %d, imag fixed = %d\n", real, imag); + printf("float_to_rxdataF: ant %d, re = %d, rxdataF_ext = %d \n", aarx, re, rxdataF_ext[aarx][start_point + re]); + } +#endif + } + } +} + + +void mult_mmse_rxdataF(float complex** Wmmse, + float complex** rxdataF_ext_f, + int n_tx, + int n_rx, + int length, + int start_point) +{ + short re; + int aarx, aatx; + + + float complex* rxdata_re = malloc(n_rx*sizeof(float complex)); + float complex* rxdata_mmse_re = malloc(n_rx*sizeof(float complex)); + float complex* Wmmse_re = malloc(n_tx*n_rx*sizeof(float complex)); + + for (re=0;re=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol; - - //clear average level - avg128D = _mm_setzero_si128(); - avg[0] = 0; - avg[1] = 0; - // 5 is always a symbol with no pilots for both normal and extended prefix - - if (((symbol_mod == 0) || (symbol_mod == (frame_parms->Ncp-1)))&&(frame_parms->nb_antenna_ports_eNB!=1)) - nre=8; - else if (((symbol_mod == 0) || (symbol_mod == (frame_parms->Ncp-1)))&&(frame_parms->nb_antenna_ports_eNB==1)) - nre=10; - else - nre=12; - - for (aarx=0; aarxnb_antennas_rx; aarx++) { - dl_ch0_128 = (__m128i *)&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*12]; - dl_ch1_128 = (__m128i *)&dl_ch_estimates_ext[2+aarx][symbol*frame_parms->N_RB_DL*12]; - - for (rb=0; rbNcp-1)))&&(frame_parms->nb_antenna_ports_eNB!=1)) { - dl_ch0_128+=2; - dl_ch1_128+=2; - } - else { - dl_ch0_128_tmp = _mm_load_si128(&dl_ch0_128[2]); - dl_ch1_128_tmp = _mm_load_si128(&dl_ch1_128[2]); - - if (mimo_mode==LARGE_CDD) - prec2A_TM3_128(&dl_ch0_128_tmp,&dl_ch1_128_tmp); - else if (mimo_mode==DUALSTREAM_UNIFORM_PRECODING1) - prec2A_TM4_128(0,&dl_ch0_128_tmp,&dl_ch1_128_tmp); - else if (mimo_mode==DUALSTREAM_UNIFORM_PRECODINGj) - prec2A_TM4_128(1,&dl_ch0_128_tmp,&dl_ch1_128_tmp); - - // mmtmpD2 = _mm_madd_epi16(dl_ch0_128_tmp,dl_ch0_128_tmp); - avg128D = _mm_add_epi32(avg128D,_mm_madd_epi16(dl_ch0_128_tmp,dl_ch0_128_tmp)); - - dl_ch0_128+=3; - dl_ch1_128+=3; - } - } - - avg[aarx] = (((int*)&avg128D)[0])/(nb_rb*nre) + - (((int*)&avg128D)[1])/(nb_rb*nre) + - (((int*)&avg128D)[2])/(nb_rb*nre) + - (((int*)&avg128D)[3])/(nb_rb*nre); - } - - // choose maximum of the 2 effective channels - avg[0] = cmax(avg[0],avg[1]); - - _mm_empty(); - _m_empty(); - -#elif defined(__arm__) - -#endif -}*/ - //compute average channel_level of effective (precoded) channel void dlsch_channel_level_TM56(int **dl_ch_estimates_ext, LTE_DL_FRAME_PARMS *frame_parms, @@ -6024,132 +6918,104 @@ unsigned short dlsch_extract_rbs_TM7(int **rxdataF, void dump_dlsch2(PHY_VARS_UE *ue,uint8_t eNB_id,uint8_t subframe,unsigned int *coded_bits_per_codeword,int round, unsigned char harq_pid) { - unsigned int nsymb = (ue->frame_parms.Ncp == 0) ? 14 : 12; +#define NSYMB ((ue->frame_parms.Ncp == 0) ? 14 : 12) char fname[32],vname[32]; - int N_RB_DL=ue->frame_parms.N_RB_DL; sprintf(fname,"dlsch%d_rxF_r%d_ext0.m",eNB_id,round); sprintf(vname,"dl%d_rxF_r%d_ext0",eNB_id,round); - write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_ext[0],12*N_RB_DL*nsymb,1,1); + LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_ext[0], + 12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1); if (ue->frame_parms.nb_antennas_rx >1) { sprintf(fname,"dlsch%d_rxF_r%d_ext1.m",eNB_id,round); sprintf(vname,"dl%d_rxF_r%d_ext1",eNB_id,round); - write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_ext[1],12*N_RB_DL*nsymb,1,1); + LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_ext[1], + 12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1); } sprintf(fname,"dlsch%d_ch_r%d_ext00.m",eNB_id,round); sprintf(vname,"dl%d_ch_r%d_ext00",eNB_id,round); - write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[0],12*N_RB_DL*nsymb,1,1); + LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[0], + 12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1); if (ue->transmission_mode[eNB_id]==7){ sprintf(fname,"dlsch%d_bf_ch_r%d.m",eNB_id,round); sprintf(vname,"dl%d_bf_ch_r%d",eNB_id,round); - write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_bf_ch_estimates[0],512*nsymb,1,1); - //write_output(fname,vname,phy_vars_ue->lte_ue_pdsch_vars[eNB_id]->dl_bf_ch_estimates[0],512,1,1); + LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_bf_ch_estimates[0],512*NSYMB,1,1); + //LOG_M(fname,vname,phy_vars_ue->lte_ue_pdsch_vars[eNB_id]->dl_bf_ch_estimates[0],512,1,1); sprintf(fname,"dlsch%d_bf_ch_r%d_ext00.m",eNB_id,round); sprintf(vname,"dl%d_bf_ch_r%d_ext00",eNB_id,round); - write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_bf_ch_estimates_ext[0],12*N_RB_DL*nsymb,1,1); + LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_bf_ch_estimates_ext[0], + 12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1); } if (ue->frame_parms.nb_antennas_rx == 2) { sprintf(fname,"dlsch%d_ch_r%d_ext01.m",eNB_id,round); sprintf(vname,"dl%d_ch_r%d_ext01",eNB_id,round); - write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[1],12*N_RB_DL*nsymb,1,1); + LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[1], + 12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1); } if (ue->frame_parms.nb_antenna_ports_eNB == 2) { sprintf(fname,"dlsch%d_ch_r%d_ext10.m",eNB_id,round); sprintf(vname,"dl%d_ch_r%d_ext10",eNB_id,round); - write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[2],12*N_RB_DL*nsymb,1,1); + LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[2], + 12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1); if (ue->frame_parms.nb_antennas_rx == 2) { sprintf(fname,"dlsch%d_ch_r%d_ext11.m",eNB_id,round); sprintf(vname,"dl%d_ch_r%d_ext11",eNB_id,round); - write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[3],12*N_RB_DL*nsymb,1,1); + LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[3], + 12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1); } } sprintf(fname,"dlsch%d_rxF_r%d_uespec0.m",eNB_id,round); sprintf(vname,"dl%d_rxF_r%d_uespec0",eNB_id,round); - write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_uespec_pilots[0],12*N_RB_DL,1,1); + LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_uespec_pilots[0], + 12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1); /* - write_output("dlsch%d_ch_ext01.m","dl01_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[1],12*N_RB_DL*nsymb,1,1); - write_output("dlsch%d_ch_ext10.m","dl10_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[2],12*N_RB_DL*nsymb,1,1); - write_output("dlsch%d_ch_ext11.m","dl11_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[3],12*N_RB_DL*nsymb,1,1); + LOG_M("dlsch%d_ch_ext01.m","dl01_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[1],12*N_RB_DL*NSYMB,1,1); + LOG_M("dlsch%d_ch_ext10.m","dl10_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[2],12*N_RB_DL*NSYMB,1,1); + LOG_M("dlsch%d_ch_ext11.m","dl11_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[3],12*N_RB_DL*NSYMB,1,1); */ sprintf(fname,"dlsch%d_r%d_rho.m",eNB_id,round); sprintf(vname,"dl_rho_r%d_%d",eNB_id,round); - write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_rho_ext[harq_pid][round][0],12*N_RB_DL*nsymb,1,1); + LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_rho_ext[harq_pid][round][0], + 12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1); sprintf(fname,"dlsch%d_r%d_rho2.m",eNB_id,round); sprintf(vname,"dl_rho2_r%d_%d",eNB_id,round); - write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_rho2_ext[0],12*N_RB_DL*nsymb,1,1); + LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_rho2_ext[0], + 12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1); sprintf(fname,"dlsch%d_rxF_r%d_comp0.m",eNB_id,round); sprintf(vname,"dl%d_rxF_r%d_comp0",eNB_id,round); - write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_comp0[0],12*N_RB_DL*nsymb,1,1); + LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_comp0[0], + 12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1); if (ue->frame_parms.nb_antenna_ports_eNB == 2) { sprintf(fname,"dlsch%d_rxF_r%d_comp1.m",eNB_id,round); sprintf(vname,"dl%d_rxF_r%d_comp1",eNB_id,round); - write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_comp1[harq_pid][round][0],12*N_RB_DL*nsymb,1,1); + LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_comp1[harq_pid][round][0], + 12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1); } sprintf(fname,"dlsch%d_rxF_r%d_llr.m",eNB_id,round); sprintf(vname,"dl%d_r%d_llr",eNB_id,round); - write_output(fname,vname, ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->llr[0],coded_bits_per_codeword[0],1,0); + LOG_M(fname,vname, ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->llr[0],coded_bits_per_codeword[0],1,0); sprintf(fname,"dlsch%d_r%d_mag1.m",eNB_id,round); sprintf(vname,"dl%d_r%d_mag1",eNB_id,round); - write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_mag0[0],12*N_RB_DL*nsymb,1,1); + LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_mag0[0], + 12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1); sprintf(fname,"dlsch%d_r%d_mag2.m",eNB_id,round); sprintf(vname,"dl%d_r%d_mag2",eNB_id,round); - write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_magb0[0],12*N_RB_DL*nsymb,1,1); - - // printf("log2_maxh = %d\n",ue->pdsch_vars[eNB_id]->log2_maxh); -} - -#ifdef DEBUG_DLSCH_DEMOD -/* -void print_bytes(char *s,__m128i *x) -{ - - char *tempb = (char *)x; - - printf("%s : %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",s, - tempb[0],tempb[1],tempb[2],tempb[3],tempb[4],tempb[5],tempb[6],tempb[7], - tempb[8],tempb[9],tempb[10],tempb[11],tempb[12],tempb[13],tempb[14],tempb[15] - ); + LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_magb0[0], + 12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1); } -void print_shorts(char *s,__m128i *x) -{ - short *tempb = (short *)x; - printf("%s : %d,%d,%d,%d,%d,%d,%d,%d\n",s, - tempb[0],tempb[1],tempb[2],tempb[3],tempb[4],tempb[5],tempb[6],tempb[7]); - -} - -void print_shorts2(char *s,__m64 *x) -{ - - short *tempb = (short *)x; - printf("%s : %d,%d,%d,%d\n",s, - tempb[0],tempb[1],tempb[2],tempb[3]); - -} - -void print_ints(char *s,__m128i *x) -{ - - int *tempb = (int *)x; - printf("%s : %d,%d,%d,%d\n",s, - tempb[0],tempb[1],tempb[2],tempb[3]); - -}*/ -#endif diff --git a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation.c b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation.c index 525c8db676..ea3f100504 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation.c @@ -642,7 +642,7 @@ int dlsch_qpsk_llr(LTE_DL_FRAME_PARMS *frame_parms, uint32_t *rxF = (uint32_t*)&rxdataF_comp[0][((int32_t)symbol*frame_parms->N_RB_DL*12)]; uint32_t *llr32; - int i,len; + int len; uint8_t symbol_mod = (symbol >= (7-frame_parms->Ncp))? (symbol-(7-frame_parms->Ncp)) : symbol; /* @@ -681,19 +681,28 @@ int dlsch_qpsk_llr(LTE_DL_FRAME_PARMS *frame_parms, dlsch_llr, llr32); */ - //printf("ll32p=%p , dlsch_llr=%p, symbol=%d, flag=%d \n", llr32, dlsch_llr, symbol, first_symbol_flag); - for (i=0; iN_RB_DL*12)]; + int32_t *ch_mag = (int32_t*)&dl_ch_mag[0][(symbol*frame_parms->N_RB_DL*12)]; + int32_t *llr32; -#if defined(__x86_64__) || defined(__i386__) - __m128i *rxF = (__m128i*)&rxdataF_comp[0][(symbol*frame_parms->N_RB_DL*12)]; - __m128i *ch_mag; - __m128i llr128[2]; - uint32_t *llr32; -#elif defined(__arm__) - int16x8_t *rxF = (int16x8_t*)&rxdataF_comp[0][(symbol*frame_parms->N_RB_DL*12)]; - int16x8_t *ch_mag; - int16x8_t xmm0; - int16_t *llr16; -#endif - - - int i,len; + int len; unsigned char symbol_mod,len_mod4=0; - -#if defined(__x86_64__) || defined(__i386__) if (first_symbol_flag==1) { - llr32 = (uint32_t*)dlsch_llr; + llr32 = (int32_t*)dlsch_llr; } else { - llr32 = (uint32_t*)*llr32p; + llr32 = (int32_t*)*llr32p; } -#elif defined(__arm__) - if (first_symbol_flag==1) { - llr16 = (int16_t*)dlsch_llr; - } else { - llr16 = (int16_t*)*llr32p; - } -#endif symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol; -#if defined(__x86_64__) || defined(__i386__) - ch_mag = (__m128i*)&dl_ch_mag[0][(symbol*frame_parms->N_RB_DL*12)]; -#elif defined(__arm__) - ch_mag = (int16x8_t*)&dl_ch_mag[0][(symbol*frame_parms->N_RB_DL*12)]; -#endif if ((symbol_mod==0) || (symbol_mod==(4-frame_parms->Ncp))) { if (frame_parms->nb_antenna_ports_eNB!=1) len = (nb_rb*8) - (2*pbch_pss_sss_adjust/3); @@ -881,18 +866,45 @@ void dlsch_16qam_llr(LTE_DL_FRAME_PARMS *frame_parms, len>>=2; // length in quad words (4 REs) // printf("len>>=2=%d\n", len); len+=(len_mod4==0 ? 0 : 1); - // printf("len+=%d\n", len); - for (i=0; iN_RB_DL*12)]; - __m128i *ch_mag,*ch_magb; -#elif defined(__arm__) - int16x8_t *rxF = (int16x8_t*)&rxdataF_comp[0][(symbol*frame_parms->N_RB_DL*12)]; - int16x8_t *ch_mag,*ch_magb,xmm1,xmm2; -#endif - int i,len,len2; + int32_t *rxF = (int32_t*)&rxdataF_comp[0][(symbol*frame_parms->N_RB_DL*12)]; + int32_t *ch_mag = (int32_t*)&dl_ch_mag[0][(symbol*frame_parms->N_RB_DL*12)]; + int32_t *ch_magb = (int32_t*)&dl_ch_magb[0][(symbol*frame_parms->N_RB_DL*12)]; + int len,len2; unsigned char symbol_mod,len_mod4; short *llr; int16_t *llr2; @@ -1079,13 +1091,6 @@ void dlsch_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms, symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol; -#if defined(__x86_64__) || defined(__i386__) - ch_mag = (__m128i*)&dl_ch_mag[0][(symbol*frame_parms->N_RB_DL*12)]; - ch_magb = (__m128i*)&dl_ch_magb[0][(symbol*frame_parms->N_RB_DL*12)]; -#elif defined(__arm__) - ch_mag = (int16x8_t*)&dl_ch_mag[0][(symbol*frame_parms->N_RB_DL*12)]; - ch_magb = (int16x8_t*)&dl_ch_magb[0][(symbol*frame_parms->N_RB_DL*12)]; -#endif if ((symbol_mod==0) || (symbol_mod==(4-frame_parms->Ncp))) { if (frame_parms->nb_antenna_ports_eNB!=1) len = (nb_rb*8) - (2*pbch_pss_sss_adjust/3); @@ -1115,18 +1120,49 @@ void dlsch_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms, len2=len>>2; // length in quad words (4 REs) len2+=((len_mod4==0)?0:1); - for (i=0; imimo_mode; + uint32_t pmi_alloc = dlsch_harq->pmi_alloc; + */ -int itti_dump_init(const char * const messages_definition_xml, const char * const dump_file_name); + switch (N_RB_DL) { + case 6: // 1 PRB per subband + if (mode <= PUSCH_PRECODING1) + return((pmi_alloc>>(rb<<1))&3); + else + return((pmi_alloc>>rb)&1); -void itti_dump_exit(void); + break; -void itti_dump_thread_use_ring_buffer(void); + default: + case 25: // 4 PRBs per subband + if (mode <= PUSCH_PRECODING1) + return((pmi_alloc>>((rb>>2)<<1))&3); + else + return((pmi_alloc>>(rb>>2))&1); -#endif /* INTERTASK_INTERFACE_DUMP_H_ */ + break; + + case 50: // 6 PRBs per subband + if (mode <= PUSCH_PRECODING1) + return((pmi_alloc>>((rb/6)<<1))&3); + else + return((pmi_alloc>>(rb/6))&1); + + break; + + case 100: // 8 PRBs per subband + if (mode <= PUSCH_PRECODING1) + return((pmi_alloc>>((rb>>3)<<1))&3); + else + return((pmi_alloc>>(rb>>3))&1); + + break; + } +} diff --git a/openair1/PHY/LTE_UE_TRANSPORT/initial_sync.c b/openair1/PHY/LTE_UE_TRANSPORT/initial_sync.c index 2759db1631..7491391f86 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/initial_sync.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/initial_sync.c @@ -284,17 +284,15 @@ int initial_sync(PHY_VARS_UE *ue, runmode_t mode) init_frame_parms(frame_parms,1); -/* - if (ue->Mod_id == 1) { - write_output("rxdata0.m","rxd0",ue->common_vars.rxdata[0],10*frame_parms->samples_per_tti,1,1); - exit(-1); - } + /* + LOG_M("rxdata0.m","rxd0",ue->common_vars.rxdata[0],10*frame_parms->samples_per_tti,1,1); + exit(-1); */ sync_pos = lte_sync_time(ue->common_vars.rxdata, frame_parms, (int *)&ue->common_vars.eNb_id); - // write_output("rxdata1.m","rxd1",ue->common_vars.rxdata[0],10*frame_parms->samples_per_tti,1,1); + // LOG_M("rxdata1.m","rxd1",ue->common_vars.rxdata[0],10*frame_parms->samples_per_tti,1,1); if (sync_pos >= frame_parms->nb_prefix_samples) sync_pos2 = sync_pos - frame_parms->nb_prefix_samples; else @@ -328,7 +326,7 @@ int initial_sync(PHY_VARS_UE *ue, runmode_t mode) init_frame_parms(&ue->frame_parms,1); lte_gold(frame_parms,ue->lte_gold_table[0],frame_parms->Nid_cell); ret = pbch_detection(ue,mode); - // write_output("rxdata2.m","rxd2",ue->common_vars.rxdata[0],10*frame_parms->samples_per_tti,1,1); + // LOG_M("rxdata2.m","rxd2",ue->common_vars.rxdata[0],10*frame_parms->samples_per_tti,1,1); #ifdef DEBUG_INITIAL_SYNCH LOG_I(PHY,"FDD Normal prefix: CellId %d metric %d, phase %d, flip %d, pbch %d\n", @@ -376,7 +374,7 @@ int initial_sync(PHY_VARS_UE *ue, runmode_t mode) init_frame_parms(&ue->frame_parms,1); lte_gold(frame_parms,ue->lte_gold_table[0],frame_parms->Nid_cell); ret = pbch_detection(ue,mode); - // write_output("rxdata3.m","rxd3",ue->common_vars.rxdata[0],10*frame_parms->samples_per_tti,1,1); + // LOG_M("rxdata3.m","rxd3",ue->common_vars.rxdata[0],10*frame_parms->samples_per_tti,1,1); #ifdef DEBUG_INITIAL_SYNCH LOG_I(PHY,"FDD Extended prefix: CellId %d metric %d, phase %d, flip %d, pbch %d\n", frame_parms->Nid_cell,metric_fdd_ecp,phase_fdd_ecp,flip_fdd_ecp,ret); @@ -391,6 +389,7 @@ int initial_sync(PHY_VARS_UE *ue, runmode_t mode) // Now TDD normal prefix frame_parms->Ncp=NORMAL; frame_parms->frame_type=TDD; + frame_parms->tdd_config=1; init_frame_parms(frame_parms,1); if (sync_pos >= frame_parms->nb_prefix_samples) @@ -419,7 +418,7 @@ int initial_sync(PHY_VARS_UE *ue, runmode_t mode) lte_gold(frame_parms,ue->lte_gold_table[0],frame_parms->Nid_cell); ret = pbch_detection(ue,mode); - // write_output("rxdata4.m","rxd4",ue->common_vars.rxdata[0],10*frame_parms->samples_per_tti,1,1); + // LOG_M("rxdata4.m","rxd4",ue->common_vars.rxdata[0],10*frame_parms->samples_per_tti,1,1); #ifdef DEBUG_INITIAL_SYNCH LOG_I(PHY,"TDD Normal prefix: CellId %d metric %d, phase %d, flip %d, pbch %d\n", @@ -430,6 +429,7 @@ int initial_sync(PHY_VARS_UE *ue, runmode_t mode) // Now TDD extended prefix frame_parms->Ncp=EXTENDED; frame_parms->frame_type=TDD; + frame_parms->tdd_config=1; init_frame_parms(frame_parms,1); sync_pos2 = sync_pos - frame_parms->nb_prefix_samples; @@ -456,7 +456,7 @@ int initial_sync(PHY_VARS_UE *ue, runmode_t mode) lte_gold(frame_parms,ue->lte_gold_table[0],frame_parms->Nid_cell); ret = pbch_detection(ue,mode); - // write_output("rxdata5.m","rxd5",ue->common_vars.rxdata[0],10*frame_parms->samples_per_tti,1,1); + // LOG_M("rxdata5.m","rxd5",ue->common_vars.rxdata[0],10*frame_parms->samples_per_tti,1,1); #ifdef DEBUG_INITIAL_SYNCH LOG_I(PHY,"TDD Extended prefix: CellId %d metric %d, phase %d, flip %d, pbch %d\n", frame_parms->Nid_cell,metric_tdd_ecp,phase_tdd_ecp,flip_tdd_ecp,ret); diff --git a/openair1/PHY/LTE_UE_TRANSPORT/linear_preprocessing_rec.c b/openair1/PHY/LTE_UE_TRANSPORT/linear_preprocessing_rec.c new file mode 100644 index 0000000000..d85d440193 --- /dev/null +++ b/openair1/PHY/LTE_UE_TRANSPORT/linear_preprocessing_rec.c @@ -0,0 +1,369 @@ +/* These functions compute linear preprocessing for +the UE using LAPACKE and CBLAS modules of +LAPACK libraries. +MMSE and MMSE whitening filters are available. +Functions are using RowMajor storage of the +matrices, like in conventional C. Traditional +Fortran functions of LAPACK employ ColumnMajor +data storage. */ + +#include +#include +#include +#include +#include +#include +#include +#include + +//#define DEBUG_PREPROC + + +void transpose (int N, float complex *A, float complex *Result) +{ + // COnputes C := alpha*op(A)*op(B) + beta*C, + enum CBLAS_TRANSPOSE transa = CblasTrans; + enum CBLAS_TRANSPOSE transb = CblasNoTrans; + int rows_opA = N; // number of rows in op(A) and in C + int col_opB = N; //number of columns of op(B) and in C + int col_opA = N; //number of columns in op(A) and rows in op(B) + int col_B; //number of columns in B + float complex alpha = 1.0+I*0; + int lda = rows_opA; + float complex beta = 0.0+I*0; + int ldc = rows_opA; + int i; + float complex* B; + + int ldb = col_opB; + + if (transb == CblasNoTrans) { + B = (float complex*)calloc(ldb*col_opB,sizeof(float complex)); + col_B= col_opB; + } + else { + B = (float complex*)calloc(ldb*col_opA, sizeof(float complex)); + col_B = col_opA; + } + float complex* C = (float complex*)malloc(ldc*col_opB*sizeof(float complex)); + + for (i=0; i>2)*sizeof(float complex)); + float complex *H1_re = malloc(n_rx*(n_tx>>2)*sizeof(float complex)); + float complex *R_corr_col_n_0_re = malloc(n_rx*n_tx*sizeof(float complex)); + float complex *R_corr_col_n_1_re = malloc(n_rx*n_tx*sizeof(float complex)); + float complex *U_0_re = malloc(n_rx*n_tx*sizeof(float complex)); + float complex *U_1_re = malloc(n_rx*n_tx*sizeof(float complex)); + float complex *U_0_herm_re = malloc(n_rx*n_tx*sizeof(float complex)); + float complex *U_1_herm_re = malloc(n_rx*n_tx*sizeof(float complex)); + float complex *D_0_re = malloc(n_rx*n_tx*sizeof(float complex)); + float complex *D_1_re = malloc(n_rx*n_tx*sizeof(float complex)); + float complex *W_Wh_0_re = malloc(n_rx*n_tx*sizeof(float complex)); + float complex *W_Wh_1_re = malloc(n_rx*n_tx*sizeof(float complex)); + + for (aatx=0; aatx>2), H1_re, sigma2, R_corr_col_n_0_re); + HH_herm_plus_sigma2I(n_rx, (n_tx>>2), H0_re, sigma2, R_corr_col_n_1_re); + + eigen_vectors_values(n_rx, R_corr_col_n_0_re, U_0_re, D_0_re); + eigen_vectors_values(n_rx, R_corr_col_n_1_re, U_1_re, D_1_re); + + transpose (n_rx, U_0_re, U_0_herm_re); + transpose (n_rx, U_1_re, U_1_herm_re); + + sigma = (float)(sqrt((double)(sigma2))); + + /*The inverse of a diagonal matrix is obtained by replacing each element in the diagonal with its reciprocal. + A square root of a diagonal matrix is given by the diagonal matrix, whose diagonal entries are just the square + roots of the original matrix.*/ + + + D_0_re_inv_sqrt[0] = sqrt_float(1/D_0_re_inv[0]); + D_0_re_inv_sqrt[5] = sqrt_float(1/D_0_re_inv[5]); + D_0_re_inv_sqrt[10] = sqrt_float(1/D_0_re_inv[10]); + D_0_re_inv_sqrt[15] = sqrt_float(1/D_0_re_inv[15]); + + D_1_re_inv[0] = sqrt_float(1/D_1_re_inv[0]); + D_1_re_inv[5] = sqrt_float(1/D_1_re_inv[5]); + D_1_re_inv[10] = sqrt_float(1/D_1_re_inv[10]); + D_1_re_inv[15] = sqrt_float(1/D_1_re_inv[15]); + + now only to multiply + + free(H0); + free(H1); + free(R_corr_col_n_0); + free(R_corr_col_n_1); +} +#endif + +float sqrt_float(float x, float sqrt_x) +{ + sqrt_x = (float)(sqrt((double)(x))); + return sqrt_x; +} \ No newline at end of file diff --git a/openair1/PHY/LTE_UE_TRANSPORT/linear_preprocessing_rec.h b/openair1/PHY/LTE_UE_TRANSPORT/linear_preprocessing_rec.h new file mode 100755 index 0000000000..f38bc47556 --- /dev/null +++ b/openair1/PHY/LTE_UE_TRANSPORT/linear_preprocessing_rec.h @@ -0,0 +1,121 @@ + +#include +#include +#include +#include +#include "PHY/defs_UE.h" + + +/* FUNCTIONS FOR LINEAR PREPROCESSING: MMSE, WHITENNING, etc*/ +void transpose(int N, float complex *A, float complex *Result); + +void conjugate_transpose(int N, float complex *A, float complex *Result); + +void H_hermH_plus_sigma2I(int N, int M, float complex *A, float sigma2, float complex *Result); + +void HH_herm_plus_sigma2I(int M, int N, float complex *A, float sigma2, float complex *Result); + +void eigen_vectors_values(int N, float complex *A, float complex *Vectors, float *Values_Matrix); + +void lin_eq_solver(int N, float complex *A, float complex* B); +//float complex* lin_eq_solver (int N, float complex* A, float complex* B); + +/* mutl_matrix_matrix_row_based performs multiplications when matrix is row-oriented H[0], H[1]; H[2], H[3]*/ +void mutl_matrix_matrix_row_based(float complex* M0, float complex* M1, int rows_M0, int col_M0, int rows_M1, int col_M1, float complex* Result ); + +/* mutl_matrix_matrix_col_based performs multiplications matrix is column-oriented H[0], H[2]; H[1], H[3]*/ +void mutl_matrix_matrix_col_based(float complex* M0, float complex* M1, int rows_M0, int col_M0, int rows_M1, int col_M1, float complex* Result ); + +void compute_MMSE(float complex* H, int order_H, float sigma2, float complex* W_MMSE); + +void compute_white_filter(float complex* H, int order_H, float sigma2, float complex* U_1, float complex* D_1); + +void mmse_processing_oai(LTE_UE_PDSCH *pdsch_vars, + LTE_DL_FRAME_PARMS *frame_parms, + PHY_MEASUREMENTS *measurements, + unsigned char first_symbol_flag, + MIMO_mode_t mimo_mode, + unsigned short mmse_flag, + int noise_power, + unsigned char symbol, + unsigned short nb_rb); + + +void precode_channel_est(int32_t **dl_ch_estimates_ext, + LTE_DL_FRAME_PARMS *frame_parms, + LTE_UE_PDSCH *pdsch_vars, + unsigned char symbol, + unsigned short nb_rb, + MIMO_mode_t mimo_mode); + + +void rxdataF_to_float(int32_t **rxdataF_ext, + float complex **rxdataF_f, + int n_rx, + int length, + int start_point); + +void chan_est_to_float(int32_t **dl_ch_estimates_ext, + float complex **dl_ch_estimates_ext_f, + int n_tx, + int n_rx, + int length, + int start_point); + +void float_to_chan_est(int32_t **dl_ch_estimates_ext, + float complex **dl_ch_estimates_ext_f, + int n_tx, + int n_rx, + int length, + int start_point); + +void float_to_rxdataF(int32_t **rxdataF_ext, + float complex **rxdataF_f, + int n_tx, + int n_rx, + int length, + int start_point); + +void mult_mmse_rxdataF(float complex** Wmmse, + float complex** rxdataF_ext_f, + int n_tx, + int n_rx, + int length, + int start_point); + +void mult_mmse_chan_est(float complex** Wmmse, + float complex** dl_ch_estimates_ext_f, + int n_tx, + int n_rx, + int length, + int start_point); + +void mmse_processing_core(int32_t **rxdataF_ext, + int32_t **dl_ch_estimates_ext, + int sigma2, + int n_tx, + int n_rx, + int length, + int start_point); + +void mmse_processing_core_flp(float complex** rxdataF_ext_flcpx, + float complex **H, + int32_t **rxdataF_ext, + int32_t **dl_ch_estimates_ext, + float sigma2, + int n_tx, + int n_rx, + int length, + int start_point); + +void whitening_processing_core_flp(float complex** rxdataF_ext_flcpx, + float complex **H, + int32_t **rxdataF_ext, + int32_t **dl_ch_estimates_ext, + float sigma2, + int n_tx, + int n_rx, + int length, + int start_point); + +float sqrt_float(float x, float sqrt_x); diff --git a/openair1/PHY/LTE_UE_TRANSPORT/pmch_ue.c b/openair1/PHY/LTE_UE_TRANSPORT/pmch_ue.c index d944491b63..0a12d393d4 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/pmch_ue.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/pmch_ue.c @@ -43,46 +43,44 @@ void dump_mch(PHY_VARS_UE *ue,uint8_t eNB_id,uint16_t coded_bits_per_codeword,int subframe) { - unsigned int nsymb_pmch=12; char fname[32],vname[32]; - int N_RB_DL=ue->frame_parms.N_RB_DL; - +#define NSYMB_PMCH 12 sprintf(fname,"mch_rxF_ext0.m"); sprintf(vname,"pmch_rxF_ext0"); - write_output(fname,vname,ue->pdsch_vars_MCH[eNB_id]->rxdataF_ext[0],12*N_RB_DL*nsymb_pmch,1,1); + LOG_M(fname,vname,ue->pdsch_vars_MCH[eNB_id]->rxdataF_ext[0],12*(ue->frame_parms.N_RB_DL)*12,1,1); sprintf(fname,"mch_ch_ext00.m"); sprintf(vname,"pmch_ch_ext00"); - write_output(fname,vname,ue->pdsch_vars_MCH[eNB_id]->dl_ch_estimates_ext[0],12*N_RB_DL*nsymb_pmch,1,1); + LOG_M(fname,vname,ue->pdsch_vars_MCH[eNB_id]->dl_ch_estimates_ext[0],12*(ue->frame_parms.N_RB_DL)*NSYMB_PMCH,1,1); /* - write_output("dlsch%d_ch_ext01.m","dl01_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[1],12*N_RB_DL*nsymb_pmch,1,1); - write_output("dlsch%d_ch_ext10.m","dl10_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[2],12*N_RB_DL*nsymb_pmch,1,1); - write_output("dlsch%d_ch_ext11.m","dl11_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[3],12*N_RB_DL*nsymb_pmch,1,1); - write_output("dlsch%d_rho.m","dl_rho",pdsch_vars[eNB_id]->rho[0],12*N_RB_DL*nsymb_pmch,1,1); + LOG_M("dlsch%d_ch_ext01.m","dl01_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[1],12*N_RB_DL*NSYMB_PMCH,1,1); + LOG_M("dlsch%d_ch_ext10.m","dl10_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[2],12*N_RB_DL*NSYMB_PMCH,1,1); + LOG_M("dlsch%d_ch_ext11.m","dl11_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[3],12*N_RB_DL*NSYMB_PMCH,1,1); + LOG_M("dlsch%d_rho.m","dl_rho",pdsch_vars[eNB_id]->rho[0],12*N_RB_DL*NSYMB_PMCH,1,1); */ sprintf(fname,"mch_rxF_comp0.m"); sprintf(vname,"pmch_rxF_comp0"); - write_output(fname,vname,ue->pdsch_vars_MCH[eNB_id]->rxdataF_comp0[0],12*N_RB_DL*nsymb_pmch,1,1); + LOG_M(fname,vname,ue->pdsch_vars_MCH[eNB_id]->rxdataF_comp0[0],12*(ue->frame_parms.N_RB_DL)*NSYMB_PMCH,1,1); sprintf(fname,"mch_rxF_llr.m"); sprintf(vname,"pmch_llr"); - write_output(fname,vname, ue->pdsch_vars_MCH[eNB_id]->llr[0],coded_bits_per_codeword,1,0); + LOG_M(fname,vname, ue->pdsch_vars_MCH[eNB_id]->llr[0],coded_bits_per_codeword,1,0); sprintf(fname,"mch_mag1.m"); sprintf(vname,"pmch_mag1"); - write_output(fname,vname,ue->pdsch_vars_MCH[eNB_id]->dl_ch_mag0[0],12*N_RB_DL*nsymb_pmch,1,1); + LOG_M(fname,vname,ue->pdsch_vars_MCH[eNB_id]->dl_ch_mag0[0],12*(ue->frame_parms.N_RB_DL)*NSYMB_PMCH,1,1); sprintf(fname,"mch_mag2.m"); sprintf(vname,"pmch_mag2"); - write_output(fname,vname,ue->pdsch_vars_MCH[eNB_id]->dl_ch_magb0[0],12*N_RB_DL*nsymb_pmch,1,1); + LOG_M(fname,vname,ue->pdsch_vars_MCH[eNB_id]->dl_ch_magb0[0],12*(ue->frame_parms.N_RB_DL)*NSYMB_PMCH,1,1); - write_output("mch00_ch0.m","pmch00_ch0", + LOG_M("mch00_ch0.m","pmch00_ch0", &(ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id][0][0]), ue->frame_parms.ofdm_symbol_size*12,1,1); - write_output("rxsig_mch.m","rxs_mch", + LOG_M("rxsig_mch.m","rxs_mch", &ue->common_vars.rxdata[0][subframe*ue->frame_parms.samples_per_tti], ue->frame_parms.samples_per_tti,1,1); /* if (PHY_vars_eNB_g) - write_output("txsig_mch.m","txs_mch", + LOG_M("txsig_mch.m","txs_mch", &PHY_vars_eNB_g[0][0]->common_vars.txdata[0][0][subframe*ue->frame_parms.samples_per_tti], ue->frame_parms.samples_per_tti,1,1);*/ } diff --git a/openair1/PHY/LTE_UE_TRANSPORT/prach_ue.c b/openair1/PHY/LTE_UE_TRANSPORT/prach_ue.c index 02d0c9aa4f..481d0bcaf8 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/prach_ue.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/prach_ue.c @@ -37,10 +37,12 @@ #include "SCHED_UE/sched_UE.h" #include "SCHED/sched_common_extern.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "../LTE_TRANSPORT/prach_extern.h" +//#define PRACH_DEBUG 1 + int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint16_t Nf ) { @@ -98,7 +100,7 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1 #else //normal case (simulation) prach_start = subframe*ue->frame_parms.samples_per_tti-ue->N_TA_offset; - LOG_D(PHY,"[UE %d] prach_start %d, rx_offset %d, hw_timing_advance %d, N_TA_offset %d\n", ue->Mod_id, + LOG_I(PHY,"[UE %d] prach_start %d, rx_offset %d, hw_timing_advance %d, N_TA_offset %d\n", ue->Mod_id, prach_start, ue->rx_offset, ue->hw_timing_advance, @@ -374,7 +376,7 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1 memmove( prach, prach+1024, Ncp<<2 ); prach_len = 512+Ncp; } else { - idft3072(prachF,prach2); + idft3072(prachF,prach2,1); memmove( prach, prach+6144, Ncp<<2 ); prach_len = 3072+Ncp; @@ -393,7 +395,7 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1 memmove( prach, prach+2048, Ncp<<2 ); prach_len = 1024+Ncp; } else { - idft6144(prachF,prach2); + idft6144(prachF,prach2,1); /*for (i=0;i<6144*2;i++) prach2[i]<<=1;*/ memmove( prach, prach+12288, Ncp<<2 ); @@ -413,7 +415,7 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1 memmove( prach, prach+4096, Ncp<<2 ); prach_len = 2048+Ncp; } else { - idft12288(prachF,prach2); + idft12288(prachF,prach2,1); memmove( prach, prach+24576, Ncp<<2 ); prach_len = 12288+Ncp; @@ -427,12 +429,12 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1 case 75: if (prach_fmt == 4) { - idft3072(prachF,prach2); + idft3072(prachF,prach2,1); //TODO: account for repeated format in dft output memmove( prach, prach+6144, Ncp<<2 ); prach_len = 3072+Ncp; } else { - idft18432(prachF,prach2); + idft18432(prachF,prach2,1); memmove( prach, prach+36864, Ncp<<2 ); prach_len = 18432+Ncp; @@ -451,7 +453,7 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1 memmove( prach, prach+8192, Ncp<<2 ); prach_len = 4096+Ncp; } else { - idft24576(prachF,prach2); + idft24576(prachF,prach2,1); memmove( prach, prach+49152, Ncp<<2 ); prach_len = 24576+Ncp; @@ -463,12 +465,12 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1 } else { if (prach_fmt == 4) { - idft3072(prachF,prach2); + idft3072(prachF,prach2,1); //TODO: account for repeated format in dft output memmove( prach, prach+6144, Ncp<<2 ); prach_len = 3072+Ncp; } else { - idft18432(prachF,prach2); + idft18432(prachF,prach2,1); memmove( prach, prach+36864, Ncp<<2 ); prach_len = 18432+Ncp; printf("Generated prach for 100 PRB, 3/4 sampling\n"); @@ -523,9 +525,9 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1 #if defined(PRACH_WRITE_OUTPUT_DEBUG) - write_output("prach_txF0.m","prachtxF0",prachF,prach_len-Ncp,1,1); - write_output("prach_tx0.m","prachtx0",prach+(Ncp<<1),prach_len-Ncp,1,1); - write_output("txsig.m","txs",(int16_t*)(&ue->common_vars.txdata[0][0]),2*ue->frame_parms.samples_per_tti,1,1); + LOG_M("prach_txF0.m","prachtxF0",prachF,prach_len-Ncp,1,1); + LOG_M("prach_tx0.m","prachtx0",prach+(Ncp<<1),prach_len-Ncp,1,1); + LOG_M("txsig.m","txs",(int16_t*)(&ue->common_vars.txdata[0][0]),2*ue->frame_parms.samples_per_tti,1,1); exit(-1); #endif diff --git a/openair1/PHY/LTE_UE_TRANSPORT/pucch_ue.c b/openair1/PHY/LTE_UE_TRANSPORT/pucch_ue.c index c3bbd0fb1c..1f9fb86f80 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/pucch_ue.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/pucch_ue.c @@ -33,8 +33,8 @@ #include "PHY/phy_extern_ue.h" #include "PHY/LTE_REFSIG/lte_refsig.h" -#include "UTIL/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "T.h" diff --git a/openair1/PHY/LTE_UE_TRANSPORT/rar_tools_ue.c b/openair1/PHY/LTE_UE_TRANSPORT/rar_tools_ue.c index f7451d165e..b4273095ba 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/rar_tools_ue.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/rar_tools_ue.c @@ -33,7 +33,7 @@ #include "PHY/phy_extern_ue.h" #include "SCHED_UE/sched_UE.h" #include "LAYER2/MAC/mac.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "transport_proto_ue.h" #include "assertions.h" diff --git a/openair1/PHY/LTE_UE_TRANSPORT/srs_modulation.c b/openair1/PHY/LTE_UE_TRANSPORT/srs_modulation.c index 45508fcff2..8bb2299b7c 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/srs_modulation.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/srs_modulation.c @@ -31,7 +31,7 @@ */ #include "PHY/defs_UE.h" #include "PHY/phy_extern_ue.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" unsigned short msrsb_6_40[8][4] = {{36,12,4,4}, {32,16,8,4}, @@ -134,7 +134,6 @@ int32_t generate_srs(LTE_DL_FRAME_PARMS *frame_parms, //uint32_t subframe_offset; uint8_t Bsrs = soundingrs_ul_config_dedicated->srs_Bandwidth; uint8_t Csrs = frame_parms->soundingrs_ul_config_common.srs_BandwidthConfig; - uint8_t Ssrs = frame_parms->soundingrs_ul_config_common.srs_SubframeConfig; uint8_t n_RRC = soundingrs_ul_config_dedicated->freqDomainPosition; uint8_t kTC = soundingrs_ul_config_dedicated->transmissionComb; @@ -144,7 +143,9 @@ int32_t generate_srs(LTE_DL_FRAME_PARMS *frame_parms, uint32_t v=frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.seqhop[1+(subframe<<1)]; LOG_D(PHY,"SRS root sequence: u %d, v %d\n",u,v); - LOG_D(PHY,"CommonSrsConfig: Csrs %d, Ssrs %d, AnSrsSimultan %d \n",Csrs,Ssrs,frame_parms->soundingrs_ul_config_common.ackNackSRS_SimultaneousTransmission); + LOG_D(PHY,"CommonSrsConfig: Csrs %d, Ssrs %d, AnSrsSimultan %d \n",Csrs, + frame_parms->soundingrs_ul_config_common.srs_SubframeConfig, + frame_parms->soundingrs_ul_config_common.ackNackSRS_SimultaneousTransmission); LOG_D(PHY,"DedicatedSrsConfig: Bsrs %d, bhop %d, nRRC %d, Isrs %d, kTC %d, n_SRS %d\n",Bsrs,soundingrs_ul_config_dedicated->srs_HoppingBandwidth,n_RRC ,soundingrs_ul_config_dedicated->srs_ConfigIndex,kTC ,soundingrs_ul_config_dedicated->cyclicShift); @@ -220,113 +221,6 @@ int generate_srs_tx_emul(PHY_VARS_UE *phy_vars_ue,uint8_t subframe) return(0); } -#if 0 -int generate_srs_rx(LTE_DL_FRAME_PARMS *frame_parms, - SOUNDINGRS_UL_CONFIG_DEDICATED *soundingrs_ul_config_dedicated, - int *txdataF) -{ - - uint16_t msrsb=0,Nb=0,nb,b,msrs0=0,k,Msc_RS,Msc_RS_idx,carrier_pos; - uint16_t *Msc_idx_ptr; - int k0; - uint8_t Bsrs = soundingrs_ul_config_dedicated->srs_Bandwidth; - uint8_t Csrs = frame_parms->soundingrs_ul_config_common.srs_BandwidthConfig; - uint8_t n_RRC = soundingrs_ul_config_dedicated->freqDomainPosition; - uint8_t kTC = soundingrs_ul_config_dedicated->transmissionComb; - - if (frame_parms->N_RB_UL < 41) { - msrs0 = msrsb_6_40[Csrs][0]; - msrsb = msrsb_6_40[Csrs][Bsrs]; - Nb = Nb_6_40[Csrs][Bsrs]; - } else if (frame_parms->N_RB_UL < 61) { - msrs0 = msrsb_41_60[Csrs][0]; - msrsb = msrsb_41_60[Csrs][Bsrs]; - Nb = Nb_41_60[Csrs][Bsrs]; - } else if (frame_parms->N_RB_UL < 81) { - msrs0 = msrsb_61_80[Csrs][0]; - msrsb = msrsb_61_80[Csrs][Bsrs]; - Nb = Nb_61_80[Csrs][Bsrs]; - } else if (frame_parms->N_RB_UL <111) { - msrs0 = msrsb_81_110[Csrs][0]; - msrsb = msrsb_81_110[Csrs][Bsrs]; - Nb = Nb_81_110[Csrs][Bsrs]; - } - - Msc_RS = msrsb * 6; - k0 = (((frame_parms->N_RB_UL>>1)-(msrs0>>1))*12) + kTC; - nb = (4*n_RRC/msrsb)%Nb; - - for (b=0; b<=Bsrs; b++) { - k0 += 2*nb*Msc_RS; - } - - if (k0<0) { - LOG_E(PHY,"Invalid parameter set msrs0=%d, msrsb=%d, Nb=%d => nb=%d, k0=%d\n",msrs0,msrsb,Nb,nb,k0); - return(-1); - } - - Msc_idx_ptr = (uint16_t*) bsearch((uint16_t*) &Msc_RS, (uint16_t*) dftsizes, 33, sizeof(uint16_t), compareints); - - if (Msc_idx_ptr) - Msc_RS_idx = Msc_idx_ptr - dftsizes; - else { - LOG_E(PHY,"generate_srs: index for Msc_RS=%d not found\n",Msc_RS); - return(-1); - } - -#ifdef DEBUG_SRS - LOG_I(PHY,"generate_srs_rx: Msc_RS = %d, Msc_RS_idx = %d, k0=%d\n",Msc_RS, Msc_RS_idx,k0); -#endif - - carrier_pos = (frame_parms->first_carrier_offset + k0) % frame_parms->ofdm_symbol_size; - - for (k=0; k= frame_parms->ofdm_symbol_size) - carrier_pos=1; - } - - /* - for (k=0;k= 0) && (ul_ref_sigs[0][0][Msc_RS_idx][(k<<1)+1] >= 0)) { - ((short*) txdataF)[4*(symbol_offset + carrier_pos)] = ONE_OVER_SQRT2_Q15; - ((short*) txdataF)[4*(symbol_offset + carrier_pos)+1] = ONE_OVER_SQRT2_Q15; - ((short*) txdataF)[4*(symbol_offset + carrier_pos)+2] = -ONE_OVER_SQRT2_Q15; - ((short*) txdataF)[4*(symbol_offset + carrier_pos)+3] = ONE_OVER_SQRT2_Q15; - } - else if ((ul_ref_sigs[0][0][Msc_RS_idx][k<<1] >= 0) && (ul_ref_sigs[0][0][Msc_RS_idx][(k<<1)+1] < 0)) { - ((short*) txdataF)[4*(symbol_offset + carrier_pos)] = ONE_OVER_SQRT2_Q15; - ((short*) txdataF)[4*(symbol_offset + carrier_pos)+1] = -ONE_OVER_SQRT2_Q15; - ((short*) txdataF)[4*(symbol_offset + carrier_pos)+2] = ONE_OVER_SQRT2_Q15; - ((short*) txdataF)[4*(symbol_offset + carrier_pos)+3] = ONE_OVER_SQRT2_Q15; - } - else if ((ul_ref_sigs[0][0][Msc_RS_idx][k<<1] < 0) && (ul_ref_sigs[0][0][Msc_RS_idx][(k<<1)+1] >= 0)) { - ((short*) txdataF)[4*(symbol_offset + carrier_pos)] = -ONE_OVER_SQRT2_Q15; - ((short*) txdataF)[4*(symbol_offset + carrier_pos)+1] = ONE_OVER_SQRT2_Q15; - ((short*) txdataF)[4*(symbol_offset + carrier_pos)+2] = -ONE_OVER_SQRT2_Q15; - ((short*) txdataF)[4*(symbol_offset + carrier_pos)+3] = -ONE_OVER_SQRT2_Q15; - } - else if ((ul_ref_sigs[0][0][Msc_RS_idx][k<<1] < 0) && (ul_ref_sigs[0][0][Msc_RS_idx][(k<<1)+1] < 0)) { - ((short*) txdataF)[4*(symbol_offset + carrier_pos)] = -ONE_OVER_SQRT2_Q15; - ((short*) txdataF)[4*(symbol_offset + carrier_pos)+1] = -ONE_OVER_SQRT2_Q15; - ((short*) txdataF)[4*(symbol_offset + carrier_pos)+2] = ONE_OVER_SQRT2_Q15; - ((short*) txdataF)[4*(symbol_offset + carrier_pos)+3] = -ONE_OVER_SQRT2_Q15; - } - - carrier_pos+=2; - if (carrier_pos >= frame_parms->ofdm_symbol_size) - carrier_pos=0; - } - */ - - // write_output("srs_rx.m","srsrx",txdataF,1024,2,1); - return(0); -} -#endif - #ifdef MAIN main() { diff --git a/openair1/PHY/LTE_UE_TRANSPORT/sss_ue.c b/openair1/PHY/LTE_UE_TRANSPORT/sss_ue.c index aee5d6bcf9..7087b83bca 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/sss_ue.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/sss_ue.c @@ -313,10 +313,10 @@ int rx_sss(PHY_VARS_UE *ue,int32_t *tot_metric,uint8_t *flip_max,uint8_t *phase_ pss_ext, sss0_ext,0); /* - write_output("rxsig0.m","rxs0",&ue->common_vars.rxdata[0][0],ue->frame_parms.samples_per_tti,1,1); - write_output("rxdataF0.m","rxF0",&ue->common_vars.rxdataF[0][0],2*14*ue->frame_parms.ofdm_symbol_size,2,1); - write_output("pss_ext0.m","pssext0",pss_ext,72,1,1); - write_output("sss0_ext0.m","sss0ext0",sss0_ext,72,1,1); + LOG_M("rxsig0.m","rxs0",&ue->common_vars.rxdata[0][0],ue->frame_parms.samples_per_tti,1,1); + LOG_M("rxdataF0.m","rxF0",&ue->common_vars.rxdataF[0][0],2*14*ue->frame_parms.ofdm_symbol_size,2,1); + LOG_M("pss_ext0.m","pssext0",pss_ext,72,1,1); + LOG_M("sss0_ext0.m","sss0ext0",sss0_ext,72,1,1); */ // get conjugated channel estimate from PSS (symbol 6), H* = R* \cdot PSS @@ -326,7 +326,7 @@ int rx_sss(PHY_VARS_UE *ue,int32_t *tot_metric,uint8_t *flip_max,uint8_t *phase_ pss_ext, sss0_ext); - // write_output("sss0_comp0.m","sss0comp0",sss0_ext,72,1,1); + // LOG_M("sss0_comp0.m","sss0comp0",sss0_ext,72,1,1); if (ue->frame_parms.frame_type == FDD) { // FDD @@ -364,7 +364,7 @@ int rx_sss(PHY_VARS_UE *ue,int32_t *tot_metric,uint8_t *flip_max,uint8_t *phase_ pss_ext, sss5_ext,5); - // write_output("sss5_ext0.m","sss5ext0",sss5_ext,72,1,1); + // LOG_M("sss5_ext0.m","sss5ext0",sss5_ext,72,1,1); // get conjugated channel estimate from PSS (symbol 6), H* = R* \cdot PSS // and do channel estimation and compensation based on PSS diff --git a/openair1/PHY/LTE_UE_TRANSPORT/transport_proto_ue.h b/openair1/PHY/LTE_UE_TRANSPORT/transport_proto_ue.h index 610600f39a..c4d576021b 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/transport_proto_ue.h +++ b/openair1/PHY/LTE_UE_TRANSPORT/transport_proto_ue.h @@ -106,6 +106,22 @@ void qpsk_qpsk(int16_t *stream0_in, @param nb_rb number of RBs for this allocation @param pbch_pss_sss_adj Number of channel bits taken by PBCH/PSS/SSS @param llr128p pointer to pointer to symbol in dlsch_llr*/ + +void qpsk_llr(int16_t *stream0_in, + int16_t *stream0_out, + int length); + +void qam16_llr(int16_t *stream0_in, + int16_t *chan_magn, + int16_t *llr, + int length); + +void qam64_llr(int16_t *stream0_in, + int16_t *chan_magn, + int16_t *chan_magn_b, + int16_t *llr, + int length); + int32_t dlsch_qpsk_qpsk_llr(LTE_DL_FRAME_PARMS *frame_parms, int32_t **rxdataF_comp, int32_t **rxdataF_comp_i, @@ -816,6 +832,19 @@ void dlsch_channel_compensation(int32_t **rxdataF_ext, uint8_t output_shift, PHY_MEASUREMENTS *phy_measurements); +void dlsch_channel_compensation_core(int **rxdataF_ext, + int **dl_ch_estimates_ext, + int **dl_ch_mag, + int **dl_ch_magb, + int **rxdataF_comp, + int **rho, + unsigned char n_tx, + unsigned char n_rx, + unsigned char mod_order, + unsigned char output_shift, + int length, + int start_point); + void dlsch_dual_stream_correlation(LTE_DL_FRAME_PARMS *frame_parms, unsigned char symbol, unsigned short nb_rb, @@ -912,6 +941,7 @@ void dlsch_channel_compensation_TM34(LTE_DL_FRAME_PARMS *frame_parms, int round, MIMO_mode_t mimo_mode, unsigned short nb_rb, + unsigned short mmse_flag, unsigned char output_shift0, unsigned char output_shift1); @@ -929,6 +959,20 @@ void dlsch_channel_level(int32_t **dl_ch_estimates_ext, uint8_t pilots_flag, uint16_t nb_rb); +void dlsch_channel_level_core(int32_t **dl_ch_estimates_ext, + int32_t *avg, + int n_tx, + int n_rx, + int length, + int start_point); + +void dlsch_channel_level_median(int **dl_ch_estimates_ext, + int32_t *median, + int n_tx, + int n_rx, + int length, + int start_point); + void dlsch_channel_level_TM34(int **dl_ch_estimates_ext, LTE_DL_FRAME_PARMS *frame_parms, @@ -937,6 +981,7 @@ void dlsch_channel_level_TM34(int **dl_ch_estimates_ext, int *avg_1, uint8_t symbol, unsigned short nb_rb, + unsigned int mmse_flag, MIMO_mode_t mimo_mode); @@ -1674,14 +1719,10 @@ double computeRhoB_UE(PDSCH_CONFIG_DEDICATED *pdsch_config_dedicated, LTE_UE_DLSCH_t *dlsch_ue); */ -uint8_t get_prach_prb_offset(LTE_DL_FRAME_PARMS *frame_parms, - uint8_t prach_ConfigIndex, +uint8_t get_prach_prb_offset(LTE_DL_FRAME_PARMS *frame_parms, + uint8_t prach_ConfigIndex, uint8_t n_ra_prboffset, uint8_t tdd_mapindex, uint16_t Nf); - - - - /**@}*/ #endif diff --git a/openair1/PHY/LTE_UE_TRANSPORT/ulsch_coding.c b/openair1/PHY/LTE_UE_TRANSPORT/ulsch_coding.c index d913a6f779..b62c5c5544 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/ulsch_coding.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/ulsch_coding.c @@ -37,7 +37,7 @@ #include "PHY/CODING/coding_extern.h" #include "PHY/CODING/lte_interleaver_inline.h" #include "PHY/LTE_UE_TRANSPORT/transport_ue.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" //#define DEBUG_ULSCH_CODING //#define DEBUG_ULSCH_FREE 1 @@ -191,7 +191,6 @@ uint32_t ulsch_encoding(uint8_t *a, // uint16_t offset; uint32_t crc=1; - uint16_t iind; uint32_t A; uint8_t Q_m=0; uint32_t Kr=0,Kr_bytes,r,r_offset=0; @@ -335,22 +334,6 @@ uint32_t ulsch_encoding(uint8_t *a, Kr_bytes = Kr>>3; - // get interleaver index for Turbo code (lookup in Table 5.1.3-3 36-212, V8.6 2009-03, p. 13-14) - if (Kr_bytes<=64) - iind = (Kr_bytes-5); - else if (Kr_bytes <=128) - iind = 59 + ((Kr_bytes-64)>>1); - else if (Kr_bytes <= 256) - iind = 91 + ((Kr_bytes-128)>>2); - else if (Kr_bytes <= 768) - iind = 123 + ((Kr_bytes-256)>>3); - else { - LOG_E(PHY,"ulsch_coding: Illegal codeword size %d!!!\n",Kr_bytes); - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_ENCODING, VCD_FUNCTION_OUT); - return(-1); - } - - #ifdef DEBUG_ULSCH_CODING printf("Generating Code Segment %d (%d bits)\n",r,Kr); // generate codewords @@ -364,22 +347,17 @@ uint32_t ulsch_encoding(uint8_t *a, // offset=0; -#ifdef DEBUG_ULSCH_CODING - printf("Encoding ... iind %d f1 %d, f2 %d\n",iind,f1f2mat_old[iind*2],f1f2mat_old[(iind*2)+1]); -#endif start_meas(te_stats); encoder(ulsch->harq_processes[harq_pid]->c[r], Kr>>3, &ulsch->harq_processes[harq_pid]->d[r][96], - (r==0) ? ulsch->harq_processes[harq_pid]->F : 0, - f1f2mat_old[iind*2], // f1 (see 36212-820, page 14) - f1f2mat_old[(iind*2)+1] // f2 (see 36212-820, page 14) + (r==0) ? ulsch->harq_processes[harq_pid]->F : 0 ); stop_meas(te_stats); #ifdef DEBUG_ULSCH_CODING if (r==0) - write_output("enc_output0.m","enc0",&ulsch->harq_processes[harq_pid]->d[r][96],(3*8*Kr_bytes)+12,1,4); + LOG_M("enc_output0.m","enc0",&ulsch->harq_processes[harq_pid]->d[r][96],(3*8*Kr_bytes)+12,1,4); #endif start_meas(i_stats); @@ -549,7 +527,7 @@ uint32_t ulsch_encoding(uint8_t *a, #ifdef DEBUG_ULSCH_CODING if (r==ulsch->harq_processes[harq_pid]->C-1) - write_output("enc_output.m","enc",ulsch->e,r_offset,1,4); + LOG_M("enc_output.m","enc",ulsch->e,r_offset,1,4); #endif } diff --git a/openair1/PHY/LTE_UE_TRANSPORT/ulsch_modulation.c b/openair1/PHY/LTE_UE_TRANSPORT/ulsch_modulation.c index 92a8d16b44..1281f815f8 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/ulsch_modulation.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/ulsch_modulation.c @@ -36,7 +36,7 @@ #include "PHY/LTE_UE_TRANSPORT/transport_ue.h" #include "PHY/LTE_UE_TRANSPORT/transport_proto_ue.h" #include "PHY/LTE_TRANSPORT/transport_eNB.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "PHY/LTE_REFSIG/lte_refsig.h" diff --git a/openair1/PHY/MODULATION/beamforming.c b/openair1/PHY/MODULATION/beamforming.c index e2ab0cd33b..9b1563e4f5 100644 --- a/openair1/PHY/MODULATION/beamforming.c +++ b/openair1/PHY/MODULATION/beamforming.c @@ -37,7 +37,7 @@ #include "PHY/CODING/lte_interleaver_inline.h" #include "PHY/LTE_TRANSPORT/transport_eNB.h" #include "modulation_eNB.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" int beam_precoding(int32_t **txdataF, int32_t **txdataF_BF, diff --git a/openair1/PHY/MODULATION/ofdm_mod.c b/openair1/PHY/MODULATION/ofdm_mod.c index dfb6c85f33..d1160a0bcd 100644 --- a/openair1/PHY/MODULATION/ofdm_mod.c +++ b/openair1/PHY/MODULATION/ofdm_mod.c @@ -31,8 +31,8 @@ This section deals with basic functions for OFDM Modulation. #include "PHY/defs_eNB.h" #include "PHY/impl_defs_top.h" -#include "UTIL/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "modulation_common.h" #include "PHY/LTE_TRANSPORT/transport_common_proto.h" //#define DEBUG_OFDM_MOD diff --git a/openair1/PHY/MODULATION/ul_7_5_kHz.c b/openair1/PHY/MODULATION/ul_7_5_kHz.c index 3d1d9c2b04..d27a305a5d 100644 --- a/openair1/PHY/MODULATION/ul_7_5_kHz.c +++ b/openair1/PHY/MODULATION/ul_7_5_kHz.c @@ -83,6 +83,9 @@ void remove_7_5_kHz(RU_t *ru,uint8_t slot) len = frame_parms->samples_per_tti/2; + AssertFatal(slot_offset<10*frame_parms->samples_per_tti, + "slot_offset %d >= %d\n",slot_offset,10*frame_parms->samples_per_tti); + for (aa=0; aanb_rx; aa++) { #if defined(__x86_64__) || defined(__i386__) diff --git a/openair1/PHY/TOOLS/Makefile b/openair1/PHY/TOOLS/Makefile index 59b6a1e03b..017bc74276 100644 --- a/openair1/PHY/TOOLS/Makefile +++ b/openair1/PHY/TOOLS/Makefile @@ -1,14 +1,14 @@ lte_dfts_sse4: lte_dfts.c - gcc -O2 -msse4.1 -g -ggdb -o lte_dfts_sse4 lte_dfts.c time_meas.c file_output.c ../../SIMULATION/TOOLS/taus.c -I$$OPENAIR1_DIR -I$$OPENAIR_TARGETS -I$$OPENAIR2_DIR/COMMON -DMR_MAIN -DNB_ANTENNAS_RX=1 # -DD256STATS #-DD64STATS + gcc -O2 -std=gnu99 -msse4.1 -g -ggdb -o lte_dfts_sse4 lte_dfts.c time_meas.c ../../SIMULATION/TOOLS/taus.c -I$$OPENAIR_HOME -I$$OPENAIR1_DIR -I$$OPENAIR_TARGETS -I$$OPENAIR2_DIR -I$$OPENAIR2_DIR/COMMON -I$$OPENAIR_HOME/common/utils -DMR_MAIN -DNB_ANTENNAS_RX=1 -lm -lpthread # -DD256STATS #-DD64STATS lte_dfts_avx2: lte_dfts.c - gcc -O2 -mavx2 -g -ggdb -o lte_dfts_avx2 lte_dfts.c time_meas.c file_output.c ../../SIMULATION/TOOLS/taus.c -I$$OPENAIR1_DIR -I$$OPENAIR_TARGETS -I$$OPENAIR2_DIR/COMMON -DMR_MAIN -DNB_ANTENNAS_RX=1 # -DD256STATS #-DD64STATS + gcc -O2 -std=gnu99 -mavx2 -g -ggdb -o lte_dfts_avx2 lte_dfts.c time_meas.c ../../SIMULATION/TOOLS/taus.c -I$$OPENAIR_HOME -I$$OPENAIR1_DIR -I$$OPENAIR_TARGETS -I$$OPENAIR2_DIR -I$$OPENAIR2_DIR/COMMON -I$$OPENAIR_HOME/common/utils -DMR_MAIN -DNB_ANTENNAS_RX=1 -lm -lpthread # -DD256STATS #-DD64STATS lte_dfts_avx2.s: lte_dfts.c - gcc -O2 -mavx2 -S lte_dfts.c time_meas.c file_output.c ../../SIMULATION/TOOLS/taus.c -I$$OPENAIR1_DIR -I$$OPENAIR_TARGETS -I$$OPENAIR2_DIR/COMMON -DMR_MAIN -DNB_ANTENNAS_RX=1 # -DD256STATS #-DD64STATS + gcc -O2 -std=gnu99 -mavx2 -S lte_dfts.c time_meas.c ../../SIMULATION/TOOLS/taus.c -I$$OPENAIR_HOME -I$$OPENAIR1_DIR -I$$OPENAIR_TARGETS -I$$OPENAIR2_DIR -I$$OPENAIR2_DIR/COMMON -I$$OPENAIR_HOME/common/utils -DMR_MAIN -DNB_ANTENNAS_RX=1 -lm -lpthread # -DD256STATS #-DD64STATS lte_dfts_sse4.s: lte_dfts.c - gcc -O2 -msse4.1 -S lte_dfts.c time_meas.c file_output.c ../../SIMULATION/TOOLS/taus.c -I$$OPENAIR1_DIR -I$$OPENAIR_TARGETS -I$$OPENAIR2_DIR/COMMON -DMR_MAIN -DNB_ANTENNAS_RX=1 # -DD256STATS #-DD64STATS + gcc -O2 -std=gnu99 -msse4.1 -S lte_dfts.c time_meas.c ../../SIMULATION/TOOLS/taus.c -I$$OPENAIR_HOME -I$$OPENAIR1_DIR -I$$OPENAIR_TARGETS -I$$OPENAIR2_DIR -I$$OPENAIR2_DIR/COMMON -I$$OPENAIR_HOME/common/utils -DMR_MAIN -DNB_ANTENNAS_RX=1 -lm # -DD256STATS #-DD64STATS dft_cycles_avx2: lte_dfts_avx2 ./lte_dfts_avx2 | egrep cycles diff --git a/openair1/PHY/TOOLS/file_output.c b/openair1/PHY/TOOLS/file_output.c deleted file mode 100644 index 1e0b31a47f..0000000000 --- a/openair1/PHY/TOOLS/file_output.c +++ /dev/null @@ -1,180 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -#include -#include -#include - - -int write_output(const char *fname,const char *vname,void *data,int length,int dec,char format) -{ - - FILE *fp=NULL; - int i; - - - printf("Writing %d elements of type %d to %s\n",length,format,fname); - - - if (format == 10 || format ==11 || format == 12 || format == 13 || format == 14) { - fp = fopen(fname,"a+"); - } else if (format != 10 && format !=11 && format != 12 && format != 13 && format != 14) { - fp = fopen(fname,"w+"); - } - - - - if (fp== NULL) { - printf("[OPENAIR][FILE OUTPUT] Cannot open file %s\n",fname); - return(-1); - } - - if (format != 10 && format !=11 && format != 12 && format != 13 && format != 14) - fprintf(fp,"%s = [",vname); - - - switch (format) { - case 0: // real 16-bit - - for (i=0; i 0)) - fprintf(fp,"%d + j*(%d),",((short *)data)[i],((short *)data)[i+1]); - else if (i == 2*(length-1)) - fprintf(fp,"%d + j*(%d);",((short *)data)[i],((short *)data)[i+1]); - else if (i == 0) - fprintf(fp,"\n%d + j*(%d),",((short *)data)[i],((short *)data)[i+1]); - - - - } - - break; - - case 11 : //case eren 16 bit real for channel magnitudes: - for (i=0; i 0)) - fprintf(fp,"%d,",((short *)data)[i]); - else if (i == (length-1)) - fprintf(fp,"%d;",((short *)data)[i]); - else if (i == 0) - fprintf(fp,"\n%d,",((short *)data)[i]); - } - - printf("\n erennnnnnnnnnnnnnn: length :%d",length); - break; - - case 12 : // case eren for log2_maxh real unsigned 8 bit - fprintf(fp,"%d \n",((unsigned char *)&data)[0]); - break; - - } - - if (format != 10 && format !=11 && format !=12 && format != 13 && format != 15) { - fprintf(fp,"];\n"); - fclose(fp); - return(0); - } else if (format == 10 || format ==11 || format == 12 || format == 13 || format == 15) { - fclose(fp); - return(0); - } - - return 0; -} diff --git a/openair1/PHY/TOOLS/lte_dfts.c b/openair1/PHY/TOOLS/lte_dfts.c index 9a5a504ec4..e7a7f1a259 100644 --- a/openair1/PHY/TOOLS/lte_dfts.c +++ b/openair1/PHY/TOOLS/lte_dfts.c @@ -24,6 +24,13 @@ #include #include +#include +#include +#include + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif #ifndef MR_MAIN #include "PHY/defs_common.h" @@ -31,18 +38,19 @@ #include "tools_defs.h" #else #include "time_meas.h" -#include - +#include "UTIL/LOG/log.h" #define debug_msg #define ONE_OVER_SQRT2_Q15 23170 - +int oai_exit=0; #endif #define ONE_OVER_SQRT3_Q15 18919 #include "PHY/sse_intrin.h" +#include "assertions.h" + #define print_shorts(s,x) printf("%s %d,%d,%d,%d,%d,%d,%d,%d\n",s,(x)[0],(x)[1],(x)[2],(x)[3],(x)[4],(x)[5],(x)[6],(x)[7]) #define print_shorts256(s,x) printf("%s %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",s,(x)[0],(x)[1],(x)[2],(x)[3],(x)[4],(x)[5],(x)[6],(x)[7],(x)[8],(x)[9],(x)[10],(x)[11],(x)[12],(x)[13],(x)[14],(x)[15]) @@ -54,6 +62,8 @@ const static int16_t conjugatedft[32] __attribute__((aligned(32))) = {-1,1,-1,1, const static int16_t reflip[32] __attribute__((aligned(32))) = {1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1}; + + #if defined(__x86_64__) || defined(__i386__) static inline void cmac(__m128i a,__m128i b, __m128i *re32, __m128i *im32) __attribute__((always_inline)); static inline void cmac(__m128i a,__m128i b, __m128i *re32, __m128i *im32) @@ -2511,25 +2521,6 @@ const static int16_t tw64[96] __attribute__((aligned(32))) = { -23170,-23170,-28898,-15447,-32138,-6393,-32610,3211, -30273,12539,-25330,20787,-18205,27244,-9512,31356 }; - -#if 0 -/* this is defined but not used, let's comment */ -const static int16_t tw64rep[192] __attribute__((aligned(32))) = { -32767,0,32609,-3212,32137,-6393,31356,-9512,32767,0,32609,-3212,32137,-6393,31356,-9512, -30272,-12540,28897,-15447,27244,-18205,25329,-20788,30272,-12540,28897,-15447,27244,-18205,25329,-20788, -23169,-23170,20787,-25330,18204,-27245,15446,-28898,23169,-23170,20787,-25330,18204,-27245,15446,-28898, -12539,-30273,9511,-31357,6392,-32138,3211,-32610,12539,-30273,9511,-31357,6392,-32138,3211,-32610, -32767,0,32137,-6393,30272,-12540,27244,-18205,32767,0,32137,-6393,30272,-12540,27244,-18205, -23169,-23170,18204,-27245,12539,-30273,6392,-32138,23169,-23170,18204,-27245,12539,-30273,6392,-32138, -0,-32767,-6393,-32138,-12540,-30273,-18205,-27245,0,-32767,-6393,-32138,-12540,-30273,-18205,-27245, --23170,-23170,-27245,-18205,-30273,-12540,-32138,-6393,-23170,-23170,-27245,-18205,-30273,-12540,-32138,-6393, -32767,0,31356,-9512,27244,-18205,20787,-25330,32767,0,31356,-9512,27244,-18205,20787,-25330, -12539,-30273,3211,-32610,-6393,-32138,-15447,-28898,12539,-30273,3211,-32610,-6393,-32138,-15447,-28898, --23170,-23170,-28898,-15447,-32138,-6393,-32610,3211,-23170,-23170,-28898,-15447,-32138,-6393,-32610,3211, --30273,12539,-25330,20787,-18205,27244,-9512,31356,-30273,12539,-25330,20787,-18205,27244,-9512,31356 - }; -#endif - const static int16_t tw64a[96] __attribute__((aligned(32))) = { 32767,0,32609,3212,32137,6393,31356,9512, 30272,12540,28897,15447,27244,18205,25329,20788, @@ -2544,24 +2535,6 @@ const static int16_t tw64a[96] __attribute__((aligned(32))) = { -23170,23170,-28898,15447,-32138,6393,-32610,-3211, -30273,-12539,-25330,-20787,-18205,-27244,-9512,-31356 }; -#if 0 -/* this is defined but not used, let's comment */ -const static int16_t tw64arep[192] __attribute__((aligned(32))) = { -32767,0,32609,3212,32137,6393,31356,9512,32767,0,32609,3212,32137,6393,31356,9512, -30272,12540,28897,15447,27244,18205,25329,20788,30272,12540,28897,15447,27244,18205,25329,20788, -23169,23170,20787,25330,18204,27245,15446,28898,23169,23170,20787,25330,18204,27245,15446,28898, -12539,30273,9511,31357,6392,32138,3211,32610,12539,30273,9511,31357,6392,32138,3211,32610, -32767,0,32137,6393,30272,12540,27244,18205,32767,0,32137,6393,30272,12540,27244,18205, -23169,23170,18204,27245,12539,30273,6392,32138,23169,23170,18204,27245,12539,30273,6392,32138, -0,32767,-6393,32138,-12540,30273,-18205,27245,0,32767,-6393,32138,-12540,30273,-18205,27245, --23170,23170,-27245,18205,-30273,12540,-32138,6393,-23170,23170,-27245,18205,-30273,12540,-32138,6393, -32767,0,31356,9512,27244,18205,20787,25330,32767,0,31356,9512,27244,18205,20787,25330, -12539,30273,3211,32610,-6393,32138,-15447,28898,12539,30273,3211,32610,-6393,32138,-15447,28898, --23170,23170,-28898,15447,-32138,6393,-32610,-3211,-23170,23170,-28898,15447,-32138,6393,-32610,-3211, --30273,-12539,-25330,-20787,-18205,-27244,-9512,-31356,-30273,-12539,-25330,-20787,-18205,-27244,-9512,-31356 - }; -#endif - const static int16_t tw64b[96] __attribute__((aligned(32))) = { 0,32767,-3212,32609,-6393,32137,-9512,31356, -12540,30272,-15447,28897,-18205,27244,-20788,25329, @@ -2576,25 +2549,6 @@ const static int16_t tw64b[96] __attribute__((aligned(32))) = { -23170,-23170,-15447,-28898,-6393,-32138,3211,-32610, 12539,-30273,20787,-25330,27244,-18205,31356,-9512 }; - -#if 0 -/* this is defined but not used, let's comment */ -const static int16_t tw64brep[192] __attribute__((aligned(32))) = { -0,32767,-3212,32609,-6393,32137,-9512,31356,0,32767,-3212,32609,-6393,32137,-9512,31356, --12540,30272,-15447,28897,-18205,27244,-20788,25329,-12540,30272,-15447,28897,-18205,27244,-20788,25329, --23170,23169,-25330,20787,-27245,18204,-28898,15446,-23170,23169,-25330,20787,-27245,18204,-28898,15446, --30273,12539,-31357,9511,-32138,6392,-32610,3211,-30273,12539,-31357,9511,-32138,6392,-32610,3211, -0,32767,-6393,32137,-12540,30272,-18205,27244,0,32767,-6393,32137,-12540,30272,-18205,27244, --23170,23169,-27245,18204,-30273,12539,-32138,6392,-23170,23169,-27245,18204,-30273,12539,-32138,6392, --32767,0,-32138,-6393,-30273,-12540,-27245,-18205,-32767,0,-32138,-6393,-30273,-12540,-27245,-18205, --23170,-23170,-18205,-27245,-12540,-30273,-6393,-32138,-23170,-23170,-18205,-27245,-12540,-30273,-6393,-32138, -0,32767,-9512,31356,-18205,27244,-25330,20787,0,32767,-9512,31356,-18205,27244,-25330,20787, --30273,12539,-32610,3211,-32138,-6393,-28898,-15447,-30273,12539,-32610,3211,-32138,-6393,-28898,-15447, --23170,-23170,-15447,-28898,-6393,-32138,3211,-32610,-23170,-23170,-15447,-28898,-6393,-32138,3211,-32610, -12539,-30273,20787,-25330,27244,-18205,31356,-9512,12539,-30273,20787,-25330,27244,-18205,31356,-9512 - }; -#endif - const static int16_t tw64c[96] __attribute__((aligned(32))) = { 0,32767,3212,32609,6393,32137,9512,31356, 12540,30272,15447,28897,18205,27244,20788,25329, @@ -2609,26 +2563,6 @@ const static int16_t tw64c[96] __attribute__((aligned(32))) = { 23170,-23170,15447,-28898,6393,-32138,-3211,-32610, -12539,-30273,-20787,-25330,-27244,-18205,-31356,-9512 }; - -#if 0 -/* this is defined but not used, let's comment */ -const static int16_t tw64crep[192] __attribute__((aligned(32))) = { -0,32767,3212,32609,6393,32137,9512,31356,0,32767,3212,32609,6393,32137,9512,31356, -12540,30272,15447,28897,18205,27244,20788,25329,12540,30272,15447,28897,18205,27244,20788,25329, -23170,23169,25330,20787,27245,18204,28898,15446,23170,23169,25330,20787,27245,18204,28898,15446, -30273,12539,31357,9511,32138,6392,32610,3211,30273,12539,31357,9511,32138,6392,32610,3211, -0,32767,6393,32137,12540,30272,18205,27244,0,32767,6393,32137,12540,30272,18205,27244, -23170,23169,27245,18204,30273,12539,32138,6392,23170,23169,27245,18204,30273,12539,32138,6392, -32767,0,32138,-6393,30273,-12540,27245,-18205,32767,0,32138,-6393,30273,-12540,27245,-18205, -23170,-23170,18205,-27245,12540,-30273,6393,-32138,23170,-23170,18205,-27245,12540,-30273,6393,-32138, -0,32767,9512,31356,18205,27244,25330,20787,0,32767,9512,31356,18205,27244,25330,20787, -30273,12539,32610,3211,32138,-6393,28898,-15447,30273,12539,32610,3211,32138,-6393,28898,-15447, -23170,-23170,15447,-28898,6393,-32138,-3211,-32610,23170,-23170,15447,-28898,6393,-32138,-3211,-32610, --12539,-30273,-20787,-25330,-27244,-18205,-31356,-9512,-12539,-30273,-20787,-25330,-27244,-18205,-31356,-9512 - }; -#endif - - #if defined(__x86_64__) || defined(__i386__) #define simd_q15_t __m128i #define simdshort_q15_t __m64 @@ -3164,8 +3098,8 @@ void dft128(int16_t *x,int16_t *y,int scale) dft64((int16_t*)(xtmp),(int16_t*)ytmp,1); dft64((int16_t*)(xtmp+32),(int16_t*)(ytmp+16),1); - /* write_output("dft128a.m","dfta",ytmp,64,1,1); - write_output("dft128b.m","dftb",ytmp+16,64,1,1);*/ + /* LOG_M("dft128a.m","dfta",ytmp,64,1,1); + LOG_M("dft128b.m","dftb",ytmp+16,64,1,1);*/ for (i=0; i<16; i++) { bfly2_16(ytmpp,ytmpp+16, @@ -3216,7 +3150,7 @@ void dft128(int16_t *x,int16_t *y,int scale) } - /* write_output("dft128out.m","dft128",y,128,1,1); + /* LOG_M("dft128out.m","dft128",y,128,1,1); exit(-1);*/ _mm_empty(); _m_empty(); @@ -3243,15 +3177,15 @@ void dft128(int16_t *x,int16_t *y,int scale) transpose4_ooff_simd256(x256+12,xtmp+6,8); transpose4_ooff_simd256(x256+14,xtmp+7,8); - /* write_output("dft128ina_256.m","dftina",xtmp,64,1,1); - write_output("dft128inb_256.m","dftinb",xtmp+8,64,1,1); + /* LOG_M("dft128ina_256.m","dftina",xtmp,64,1,1); + LOG_M("dft128inb_256.m","dftinb",xtmp+8,64,1,1); */ dft64((int16_t*)(xtmp),(int16_t*)ytmp,1); dft64((int16_t*)(xtmp+8),(int16_t*)(ytmp+8),1); - /*write_output("dft128outa_256.m","dftouta",ytmp,64,1,1); - write_output("dft128outb_256.m","dftoutb",ytmp+8,64,1,1); + /*LOG_M("dft128outa_256.m","dftouta",ytmp,64,1,1); + LOG_M("dft128outb_256.m","dftoutb",ytmp+8,64,1,1); */ for (i=0; i<8; i++) { @@ -3286,7 +3220,7 @@ void dft128(int16_t *x,int16_t *y,int scale) } - /* write_output("dft128.m","dft",y256,128,1,1); + /* LOG_M("dft128.m","dft",y256,128,1,1); exit(-1);*/ } @@ -4210,10 +4144,8 @@ void idft512(int16_t *x,int16_t *y,int scale) #endif -int16_t tw1024[1536] __attribute__((aligned(32))) = { 32767,0,32766,-202,32764,-403,32761,-604,32757,-805,32751,-1006,32744,-1207,32736,-1407,32727,-1608,32717,-1809,32705,-2010,32692,-2210,32678,-2411,32662,-2611,32646,-2812,32628,-3012,32609,-3212,32588,-3412,32567,-3612,32544,-3812,32520,-4012,32495,-4211,32468,-4410,32441,-4609,32412,-4808,32382,-5007,32350,-5206,32318,-5404,32284,-5602,32249,-5800,32213,-5998,32176,-6196,32137,-6393,32097,-6590,32056,-6787,32014,-6983,31970,-7180,31926,-7376,31880,-7572,31833,-7767,31785,-7962,31735,-8157,31684,-8352,31633,-8546,31580,-8740,31525,-8933,31470,-9127,31413,-9320,31356,-9512,31297,-9704,31236,-9896,31175,-10088,31113,-10279,31049,-10470,30984,-10660,30918,-10850,30851,-11039,30783,-11228,30713,-11417,30643,-11605,30571,-11793,30498,-11981,30424,-12167,30349,-12354,30272,-12540,30195,-12725,30116,-12910,30036,-13095,29955,-13279,29873,-13463,29790,-13646,29706,-13828,29621,-14010,29534,-14192,29446,-14373,29358,-14553,29268,-14733,29177,-14912,29085,-15091,28992,-15269,28897,-15447,28802,-15624,28706,-15800,28608,-15976,28510,-16151,28410,-16326,28309,-16500,28208,-16673,28105,-16846,28001,-17018,27896,-17190,27790,-17361,27683,-17531,27575,-17700,27466,-17869,27355,-18037,27244,-18205,27132,-18372,27019,-18538,26905,-18703,26789,-18868,26673,-19032,26556,-19195,26437,-19358,26318,-19520,26198,-19681,26077,-19841,25954,-20001,25831,-20160,25707,-20318,25582,-20475,25456,-20632,25329,-20788,25201,-20943,25072,-21097,24942,-21250,24811,-21403,24679,-21555,24546,-21706,24413,-21856,24278,-22005,24143,-22154,24006,-22302,23869,-22449,23731,-22595,23592,-22740,23452,-22884,23311,-23028,23169,-23170,23027,-23312,22883,-23453,22739,-23593,22594,-23732,22448,-23870,22301,-24007,22153,-24144,22004,-24279,21855,-24414,21705,-24547,21554,-24680,21402,-24812,21249,-24943,21096,-25073,20942,-25202,20787,-25330,20631,-25457,20474,-25583,20317,-25708,20159,-25832,20000,-25955,19840,-26078,19680,-26199,19519,-26319,19357,-26438,19194,-26557,19031,-26674,18867,-26790,18702,-26906,18537,-27020,18371,-27133,18204,-27245,18036,-27356,17868,-27467,17699,-27576,17530,-27684,17360,-27791,17189,-27897,17017,-28002,16845,-28106,16672,-28209,16499,-28310,16325,-28411,16150,-28511,15975,-28609,15799,-28707,15623,-28803,15446,-28898,15268,-28993,15090,-29086,14911,-29178,14732,-29269,14552,-29359,14372,-29447,14191,-29535,14009,-29622,13827,-29707,13645,-29791,13462,-29874,13278,-29956,13094,-30037,12909,-30117,12724,-30196,12539,-30273,12353,-30350,12166,-30425,11980,-30499,11792,-30572,11604,-30644,11416,-30714,11227,-30784,11038,-30852,10849,-30919,10659,-30985,10469,-31050,10278,-31114,10087,-31176,9895,-31237,9703,-31298,9511,-31357,9319,-31414,9126,-31471,8932,-31526,8739,-31581,8545,-31634,8351,-31685,8156,-31736,7961,-31786,7766,-31834,7571,-31881,7375,-31927,7179,-31971,6982,-32015,6786,-32057,6589,-32098,6392,-32138,6195,-32177,5997,-32214,5799,-32250,5601,-32285,5403,-32319,5205,-32351,5006,-32383,4807,-32413,4608,-32442,4409,-32469,4210,-32496,4011,-32521,3811,-32545,3611,-32568,3411,-32589,3211,-32610,3011,-32629,2811,-32647,2610,-32663,2410,-32679,2209,-32693,2009,-32706,1808,-32718,1607,-32728,1406,-32737,1206,-32745,1005,-32752,804,-32758,603,-32762,402,-32765,201,-32767, - 32767,0,32764,-403,32757,-805,32744,-1207,32727,-1608,32705,-2010,32678,-2411,32646,-2812,32609,-3212,32567,-3612,32520,-4012,32468,-4410,32412,-4808,32350,-5206,32284,-5602,32213,-5998,32137,-6393,32056,-6787,31970,-7180,31880,-7572,31785,-7962,31684,-8352,31580,-8740,31470,-9127,31356,-9512,31236,-9896,31113,-10279,30984,-10660,30851,-11039,30713,-11417,30571,-11793,30424,-12167,30272,-12540,30116,-12910,29955,-13279,29790,-13646,29621,-14010,29446,-14373,29268,-14733,29085,-15091,28897,-15447,28706,-15800,28510,-16151,28309,-16500,28105,-16846,27896,-17190,27683,-17531,27466,-17869,27244,-18205,27019,-18538,26789,-18868,26556,-19195,26318,-19520,26077,-19841,25831,-20160,25582,-20475,25329,-20788,25072,-21097,24811,-21403,24546,-21706,24278,-22005,24006,-22302,23731,-22595,23452,-22884,23169,-23170,22883,-23453,22594,-23732,22301,-24007,22004,-24279,21705,-24547,21402,-24812,21096,-25073,20787,-25330,20474,-25583,20159,-25832,19840,-26078,19519,-26319,19194,-26557,18867,-26790,18537,-27020,18204,-27245,17868,-27467,17530,-27684,17189,-27897,16845,-28106,16499,-28310,16150,-28511,15799,-28707,15446,-28898,15090,-29086,14732,-29269,14372,-29447,14009,-29622,13645,-29791,13278,-29956,12909,-30117,12539,-30273,12166,-30425,11792,-30572,11416,-30714,11038,-30852,10659,-30985,10278,-31114,9895,-31237,9511,-31357,9126,-31471,8739,-31581,8351,-31685,7961,-31786,7571,-31881,7179,-31971,6786,-32057,6392,-32138,5997,-32214,5601,-32285,5205,-32351,4807,-32413,4409,-32469,4011,-32521,3611,-32568,3211,-32610,2811,-32647,2410,-32679,2009,-32706,1607,-32728,1206,-32745,804,-32758,402,-32765,0,-32767,-403,-32765,-805,-32758,-1207,-32745,-1608,-32728,-2010,-32706,-2411,-32679,-2812,-32647,-3212,-32610,-3612,-32568,-4012,-32521,-4410,-32469,-4808,-32413,-5206,-32351,-5602,-32285,-5998,-32214,-6393,-32138,-6787,-32057,-7180,-31971,-7572,-31881,-7962,-31786,-8352,-31685,-8740,-31581,-9127,-31471,-9512,-31357,-9896,-31237,-10279,-31114,-10660,-30985,-11039,-30852,-11417,-30714,-11793,-30572,-12167,-30425,-12540,-30273,-12910,-30117,-13279,-29956,-13646,-29791,-14010,-29622,-14373,-29447,-14733,-29269,-15091,-29086,-15447,-28898,-15800,-28707,-16151,-28511,-16500,-28310,-16846,-28106,-17190,-27897,-17531,-27684,-17869,-27467,-18205,-27245,-18538,-27020,-18868,-26790,-19195,-26557,-19520,-26319,-19841,-26078,-20160,-25832,-20475,-25583,-20788,-25330,-21097,-25073,-21403,-24812,-21706,-24547,-22005,-24279,-22302,-24007,-22595,-23732,-22884,-23453,-23170,-23170,-23453,-22884,-23732,-22595,-24007,-22302,-24279,-22005,-24547,-21706,-24812,-21403,-25073,-21097,-25330,-20788,-25583,-20475,-25832,-20160,-26078,-19841,-26319,-19520,-26557,-19195,-26790,-18868,-27020,-18538,-27245,-18205,-27467,-17869,-27684,-17531,-27897,-17190,-28106,-16846,-28310,-16500,-28511,-16151,-28707,-15800,-28898,-15447,-29086,-15091,-29269,-14733,-29447,-14373,-29622,-14010,-29791,-13646,-29956,-13279,-30117,-12910,-30273,-12540,-30425,-12167,-30572,-11793,-30714,-11417,-30852,-11039,-30985,-10660,-31114,-10279,-31237,-9896,-31357,-9512,-31471,-9127,-31581,-8740,-31685,-8352,-31786,-7962,-31881,-7572,-31971,-7180,-32057,-6787,-32138,-6393,-32214,-5998,-32285,-5602,-32351,-5206,-32413,-4808,-32469,-4410,-32521,-4012,-32568,-3612,-32610,-3212,-32647,-2812,-32679,-2411,-32706,-2010,-32728,-1608,-32745,-1207,-32758,-805,-32765,-403, - 32767,0,32761,-604,32744,-1207,32717,-1809,32678,-2411,32628,-3012,32567,-3612,32495,-4211,32412,-4808,32318,-5404,32213,-5998,32097,-6590,31970,-7180,31833,-7767,31684,-8352,31525,-8933,31356,-9512,31175,-10088,30984,-10660,30783,-11228,30571,-11793,30349,-12354,30116,-12910,29873,-13463,29621,-14010,29358,-14553,29085,-15091,28802,-15624,28510,-16151,28208,-16673,27896,-17190,27575,-17700,27244,-18205,26905,-18703,26556,-19195,26198,-19681,25831,-20160,25456,-20632,25072,-21097,24679,-21555,24278,-22005,23869,-22449,23452,-22884,23027,-23312,22594,-23732,22153,-24144,21705,-24547,21249,-24943,20787,-25330,20317,-25708,19840,-26078,19357,-26438,18867,-26790,18371,-27133,17868,-27467,17360,-27791,16845,-28106,16325,-28411,15799,-28707,15268,-28993,14732,-29269,14191,-29535,13645,-29791,13094,-30037,12539,-30273,11980,-30499,11416,-30714,10849,-30919,10278,-31114,9703,-31298,9126,-31471,8545,-31634,7961,-31786,7375,-31927,6786,-32057,6195,-32177,5601,-32285,5006,-32383,4409,-32469,3811,-32545,3211,-32610,2610,-32663,2009,-32706,1406,-32737,804,-32758,201,-32767,-403,-32765,-1006,-32752,-1608,-32728,-2210,-32693,-2812,-32647,-3412,-32589,-4012,-32521,-4609,-32442,-5206,-32351,-5800,-32250,-6393,-32138,-6983,-32015,-7572,-31881,-8157,-31736,-8740,-31581,-9320,-31414,-9896,-31237,-10470,-31050,-11039,-30852,-11605,-30644,-12167,-30425,-12725,-30196,-13279,-29956,-13828,-29707,-14373,-29447,-14912,-29178,-15447,-28898,-15976,-28609,-16500,-28310,-17018,-28002,-17531,-27684,-18037,-27356,-18538,-27020,-19032,-26674,-19520,-26319,-20001,-25955,-20475,-25583,-20943,-25202,-21403,-24812,-21856,-24414,-22302,-24007,-22740,-23593,-23170,-23170,-23593,-22740,-24007,-22302,-24414,-21856,-24812,-21403,-25202,-20943,-25583,-20475,-25955,-20001,-26319,-19520,-26674,-19032,-27020,-18538,-27356,-18037,-27684,-17531,-28002,-17018,-28310,-16500,-28609,-15976,-28898,-15447,-29178,-14912,-29447,-14373,-29707,-13828,-29956,-13279,-30196,-12725,-30425,-12167,-30644,-11605,-30852,-11039,-31050,-10470,-31237,-9896,-31414,-9320,-31581,-8740,-31736,-8157,-31881,-7572,-32015,-6983,-32138,-6393,-32250,-5800,-32351,-5206,-32442,-4609,-32521,-4012,-32589,-3412,-32647,-2812,-32693,-2210,-32728,-1608,-32752,-1006,-32765,-403,-32767,201,-32758,804,-32737,1406,-32706,2009,-32663,2610,-32610,3211,-32545,3811,-32469,4409,-32383,5006,-32285,5601,-32177,6195,-32057,6786,-31927,7375,-31786,7961,-31634,8545,-31471,9126,-31298,9703,-31114,10278,-30919,10849,-30714,11416,-30499,11980,-30273,12539,-30037,13094,-29791,13645,-29535,14191,-29269,14732,-28993,15268,-28707,15799,-28411,16325,-28106,16845,-27791,17360,-27467,17868,-27133,18371,-26790,18867,-26438,19357,-26078,19840,-25708,20317,-25330,20787,-24943,21249,-24547,21705,-24144,22153,-23732,22594,-23312,23027,-22884,23452,-22449,23869,-22005,24278,-21555,24679,-21097,25072,-20632,25456,-20160,25831,-19681,26198,-19195,26556,-18703,26905,-18205,27244,-17700,27575,-17190,27896,-16673,28208,-16151,28510,-15624,28802,-15091,29085,-14553,29358,-14010,29621,-13463,29873,-12910,30116,-12354,30349,-11793,30571,-11228,30783,-10660,30984,-10088,31175,-9512,31356,-8933,31525,-8352,31684,-7767,31833,-7180,31970,-6590,32097,-5998,32213,-5404,32318,-4808,32412,-4211,32495,-3612,32567,-3012,32628,-2411,32678,-1809,32717,-1207,32744,-604,32761 - }; +int16_t tw1024[1536] __attribute__((aligned(32))); + #ifndef __AVX2__ void dft1024(int16_t *x,int16_t *y,int scale) { @@ -4441,7 +4373,7 @@ void idft1024(int16_t *x,int16_t *y,int scale) } #endif -int16_t tw2048[2048] __attribute__((aligned(32))) = {32767,0,32766,-101,32766,-202,32765,-302,32764,-403,32763,-503,32761,-604,32759,-704,32757,-805,32754,-905,32751,-1006,32748,-1106,32744,-1207,32740,-1307,32736,-1407,32732,-1508,32727,-1608,32722,-1709,32717,-1809,32711,-1909,32705,-2010,32699,-2110,32692,-2210,32685,-2311,32678,-2411,32670,-2511,32662,-2611,32654,-2712,32646,-2812,32637,-2912,32628,-3012,32618,-3112,32609,-3212,32599,-3312,32588,-3412,32578,-3512,32567,-3612,32556,-3712,32544,-3812,32532,-3912,32520,-4012,32508,-4111,32495,-4211,32482,-4311,32468,-4410,32455,-4510,32441,-4609,32426,-4709,32412,-4808,32397,-4908,32382,-5007,32366,-5107,32350,-5206,32334,-5305,32318,-5404,32301,-5503,32284,-5602,32267,-5701,32249,-5800,32231,-5899,32213,-5998,32194,-6097,32176,-6196,32156,-6294,32137,-6393,32117,-6492,32097,-6590,32077,-6689,32056,-6787,32035,-6885,32014,-6983,31992,-7082,31970,-7180,31948,-7278,31926,-7376,31903,-7474,31880,-7572,31856,-7669,31833,-7767,31809,-7865,31785,-7962,31760,-8060,31735,-8157,31710,-8254,31684,-8352,31659,-8449,31633,-8546,31606,-8643,31580,-8740,31553,-8837,31525,-8933,31498,-9030,31470,-9127,31442,-9223,31413,-9320,31385,-9416,31356,-9512,31326,-9608,31297,-9704,31267,-9800,31236,-9896,31206,-9992,31175,-10088,31144,-10183,31113,-10279,31081,-10374,31049,-10470,31017,-10565,30984,-10660,30951,-10755,30918,-10850,30885,-10945,30851,-11039,30817,-11134,30783,-11228,30748,-11323,30713,-11417,30678,-11511,30643,-11605,30607,-11699,30571,-11793,30535,-11887,30498,-11981,30461,-12074,30424,-12167,30386,-12261,30349,-12354,30311,-12447,30272,-12540,30234,-12633,30195,-12725,30156,-12818,30116,-12910,30076,-13003,30036,-13095,29996,-13187,29955,-13279,29915,-13371,29873,-13463,29832,-13554,29790,-13646,29748,-13737,29706,-13828,29663,-13919,29621,-14010,29577,-14101,29534,-14192,29490,-14282,29446,-14373,29402,-14463,29358,-14553,29313,-14643,29268,-14733,29222,-14823,29177,-14912,29131,-15002,29085,-15091,29038,-15180,28992,-15269,28945,-15358,28897,-15447,28850,-15535,28802,-15624,28754,-15712,28706,-15800,28657,-15888,28608,-15976,28559,-16064,28510,-16151,28460,-16239,28410,-16326,28360,-16413,28309,-16500,28259,-16587,28208,-16673,28156,-16760,28105,-16846,28053,-16932,28001,-17018,27948,-17104,27896,-17190,27843,-17275,27790,-17361,27736,-17446,27683,-17531,27629,-17616,27575,-17700,27520,-17785,27466,-17869,27411,-17953,27355,-18037,27300,-18121,27244,-18205,27188,-18288,27132,-18372,27076,-18455,27019,-18538,26962,-18621,26905,-18703,26847,-18786,26789,-18868,26731,-18950,26673,-19032,26615,-19114,26556,-19195,26497,-19277,26437,-19358,26378,-19439,26318,-19520,26258,-19600,26198,-19681,26137,-19761,26077,-19841,26016,-19921,25954,-20001,25893,-20080,25831,-20160,25769,-20239,25707,-20318,25645,-20397,25582,-20475,25519,-20554,25456,-20632,25392,-20710,25329,-20788,25265,-20865,25201,-20943,25136,-21020,25072,-21097,25007,-21174,24942,-21250,24877,-21327,24811,-21403,24745,-21479,24679,-21555,24613,-21630,24546,-21706,24480,-21781,24413,-21856,24346,-21931,24278,-22005,24211,-22080,24143,-22154,24075,-22228,24006,-22302,23938,-22375,23869,-22449,23800,-22522,23731,-22595,23661,-22667,23592,-22740,23522,-22812,23452,-22884,23382,-22956,23311,-23028,23240,-23099,23169,-23170,23098,-23241,23027,-23312,22955,-23383,22883,-23453,22811,-23523,22739,-23593,22666,-23662,22594,-23732,22521,-23801,22448,-23870,22374,-23939,22301,-24007,22227,-24076,22153,-24144,22079,-24212,22004,-24279,21930,-24347,21855,-24414,21780,-24481,21705,-24547,21629,-24614,21554,-24680,21478,-24746,21402,-24812,21326,-24878,21249,-24943,21173,-25008,21096,-25073,21019,-25137,20942,-25202,20864,-25266,20787,-25330,20709,-25393,20631,-25457,20553,-25520,20474,-25583,20396,-25646,20317,-25708,20238,-25770,20159,-25832,20079,-25894,20000,-25955,19920,-26017,19840,-26078,19760,-26138,19680,-26199,19599,-26259,19519,-26319,19438,-26379,19357,-26438,19276,-26498,19194,-26557,19113,-26616,19031,-26674,18949,-26732,18867,-26790,18785,-26848,18702,-26906,18620,-26963,18537,-27020,18454,-27077,18371,-27133,18287,-27189,18204,-27245,18120,-27301,18036,-27356,17952,-27412,17868,-27467,17784,-27521,17699,-27576,17615,-27630,17530,-27684,17445,-27737,17360,-27791,17274,-27844,17189,-27897,17103,-27949,17017,-28002,16931,-28054,16845,-28106,16759,-28157,16672,-28209,16586,-28260,16499,-28310,16412,-28361,16325,-28411,16238,-28461,16150,-28511,16063,-28560,15975,-28609,15887,-28658,15799,-28707,15711,-28755,15623,-28803,15534,-28851,15446,-28898,15357,-28946,15268,-28993,15179,-29039,15090,-29086,15001,-29132,14911,-29178,14822,-29223,14732,-29269,14642,-29314,14552,-29359,14462,-29403,14372,-29447,14281,-29491,14191,-29535,14100,-29578,14009,-29622,13918,-29664,13827,-29707,13736,-29749,13645,-29791,13553,-29833,13462,-29874,13370,-29916,13278,-29956,13186,-29997,13094,-30037,13002,-30077,12909,-30117,12817,-30157,12724,-30196,12632,-30235,12539,-30273,12446,-30312,12353,-30350,12260,-30387,12166,-30425,12073,-30462,11980,-30499,11886,-30536,11792,-30572,11698,-30608,11604,-30644,11510,-30679,11416,-30714,11322,-30749,11227,-30784,11133,-30818,11038,-30852,10944,-30886,10849,-30919,10754,-30952,10659,-30985,10564,-31018,10469,-31050,10373,-31082,10278,-31114,10182,-31145,10087,-31176,9991,-31207,9895,-31237,9799,-31268,9703,-31298,9607,-31327,9511,-31357,9415,-31386,9319,-31414,9222,-31443,9126,-31471,9029,-31499,8932,-31526,8836,-31554,8739,-31581,8642,-31607,8545,-31634,8448,-31660,8351,-31685,8253,-31711,8156,-31736,8059,-31761,7961,-31786,7864,-31810,7766,-31834,7668,-31857,7571,-31881,7473,-31904,7375,-31927,7277,-31949,7179,-31971,7081,-31993,6982,-32015,6884,-32036,6786,-32057,6688,-32078,6589,-32098,6491,-32118,6392,-32138,6293,-32157,6195,-32177,6096,-32195,5997,-32214,5898,-32232,5799,-32250,5700,-32268,5601,-32285,5502,-32302,5403,-32319,5304,-32335,5205,-32351,5106,-32367,5006,-32383,4907,-32398,4807,-32413,4708,-32427,4608,-32442,4509,-32456,4409,-32469,4310,-32483,4210,-32496,4110,-32509,4011,-32521,3911,-32533,3811,-32545,3711,-32557,3611,-32568,3511,-32579,3411,-32589,3311,-32600,3211,-32610,3111,-32619,3011,-32629,2911,-32638,2811,-32647,2711,-32655,2610,-32663,2510,-32671,2410,-32679,2310,-32686,2209,-32693,2109,-32700,2009,-32706,1908,-32712,1808,-32718,1708,-32723,1607,-32728,1507,-32733,1406,-32737,1306,-32741,1206,-32745,1105,-32749,1005,-32752,904,-32755,804,-32758,703,-32760,603,-32762,502,-32764,402,-32765,301,-32766,201,-32767,100,-32767,0,-32767,-101,-32767,-202,-32767,-302,-32766,-403,-32765,-503,-32764,-604,-32762,-704,-32760,-805,-32758,-905,-32755,-1006,-32752,-1106,-32749,-1207,-32745,-1307,-32741,-1407,-32737,-1508,-32733,-1608,-32728,-1709,-32723,-1809,-32718,-1909,-32712,-2010,-32706,-2110,-32700,-2210,-32693,-2311,-32686,-2411,-32679,-2511,-32671,-2611,-32663,-2712,-32655,-2812,-32647,-2912,-32638,-3012,-32629,-3112,-32619,-3212,-32610,-3312,-32600,-3412,-32589,-3512,-32579,-3612,-32568,-3712,-32557,-3812,-32545,-3912,-32533,-4012,-32521,-4111,-32509,-4211,-32496,-4311,-32483,-4410,-32469,-4510,-32456,-4609,-32442,-4709,-32427,-4808,-32413,-4908,-32398,-5007,-32383,-5107,-32367,-5206,-32351,-5305,-32335,-5404,-32319,-5503,-32302,-5602,-32285,-5701,-32268,-5800,-32250,-5899,-32232,-5998,-32214,-6097,-32195,-6196,-32177,-6294,-32157,-6393,-32138,-6492,-32118,-6590,-32098,-6689,-32078,-6787,-32057,-6885,-32036,-6983,-32015,-7082,-31993,-7180,-31971,-7278,-31949,-7376,-31927,-7474,-31904,-7572,-31881,-7669,-31857,-7767,-31834,-7865,-31810,-7962,-31786,-8060,-31761,-8157,-31736,-8254,-31711,-8352,-31685,-8449,-31660,-8546,-31634,-8643,-31607,-8740,-31581,-8837,-31554,-8933,-31526,-9030,-31499,-9127,-31471,-9223,-31443,-9320,-31414,-9416,-31386,-9512,-31357,-9608,-31327,-9704,-31298,-9800,-31268,-9896,-31237,-9992,-31207,-10088,-31176,-10183,-31145,-10279,-31114,-10374,-31082,-10470,-31050,-10565,-31018,-10660,-30985,-10755,-30952,-10850,-30919,-10945,-30886,-11039,-30852,-11134,-30818,-11228,-30784,-11323,-30749,-11417,-30714,-11511,-30679,-11605,-30644,-11699,-30608,-11793,-30572,-11887,-30536,-11981,-30499,-12074,-30462,-12167,-30425,-12261,-30387,-12354,-30350,-12447,-30312,-12540,-30273,-12633,-30235,-12725,-30196,-12818,-30157,-12910,-30117,-13003,-30077,-13095,-30037,-13187,-29997,-13279,-29956,-13371,-29916,-13463,-29874,-13554,-29833,-13646,-29791,-13737,-29749,-13828,-29707,-13919,-29664,-14010,-29622,-14101,-29578,-14192,-29535,-14282,-29491,-14373,-29447,-14463,-29403,-14553,-29359,-14643,-29314,-14733,-29269,-14823,-29223,-14912,-29178,-15002,-29132,-15091,-29086,-15180,-29039,-15269,-28993,-15358,-28946,-15447,-28898,-15535,-28851,-15624,-28803,-15712,-28755,-15800,-28707,-15888,-28658,-15976,-28609,-16064,-28560,-16151,-28511,-16239,-28461,-16326,-28411,-16413,-28361,-16500,-28310,-16587,-28260,-16673,-28209,-16760,-28157,-16846,-28106,-16932,-28054,-17018,-28002,-17104,-27949,-17190,-27897,-17275,-27844,-17361,-27791,-17446,-27737,-17531,-27684,-17616,-27630,-17700,-27576,-17785,-27521,-17869,-27467,-17953,-27412,-18037,-27356,-18121,-27301,-18205,-27245,-18288,-27189,-18372,-27133,-18455,-27077,-18538,-27020,-18621,-26963,-18703,-26906,-18786,-26848,-18868,-26790,-18950,-26732,-19032,-26674,-19114,-26616,-19195,-26557,-19277,-26498,-19358,-26438,-19439,-26379,-19520,-26319,-19600,-26259,-19681,-26199,-19761,-26138,-19841,-26078,-19921,-26017,-20001,-25955,-20080,-25894,-20160,-25832,-20239,-25770,-20318,-25708,-20397,-25646,-20475,-25583,-20554,-25520,-20632,-25457,-20710,-25393,-20788,-25330,-20865,-25266,-20943,-25202,-21020,-25137,-21097,-25073,-21174,-25008,-21250,-24943,-21327,-24878,-21403,-24812,-21479,-24746,-21555,-24680,-21630,-24614,-21706,-24547,-21781,-24481,-21856,-24414,-21931,-24347,-22005,-24279,-22080,-24212,-22154,-24144,-22228,-24076,-22302,-24007,-22375,-23939,-22449,-23870,-22522,-23801,-22595,-23732,-22667,-23662,-22740,-23593,-22812,-23523,-22884,-23453,-22956,-23383,-23028,-23312,-23099,-23241,-23170,-23170,-23241,-23099,-23312,-23028,-23383,-22956,-23453,-22884,-23523,-22812,-23593,-22740,-23662,-22667,-23732,-22595,-23801,-22522,-23870,-22449,-23939,-22375,-24007,-22302,-24076,-22228,-24144,-22154,-24212,-22080,-24279,-22005,-24347,-21931,-24414,-21856,-24481,-21781,-24547,-21706,-24614,-21630,-24680,-21555,-24746,-21479,-24812,-21403,-24878,-21327,-24943,-21250,-25008,-21174,-25073,-21097,-25137,-21020,-25202,-20943,-25266,-20865,-25330,-20788,-25393,-20710,-25457,-20632,-25520,-20554,-25583,-20475,-25646,-20397,-25708,-20318,-25770,-20239,-25832,-20160,-25894,-20080,-25955,-20001,-26017,-19921,-26078,-19841,-26138,-19761,-26199,-19681,-26259,-19600,-26319,-19520,-26379,-19439,-26438,-19358,-26498,-19277,-26557,-19195,-26616,-19114,-26674,-19032,-26732,-18950,-26790,-18868,-26848,-18786,-26906,-18703,-26963,-18621,-27020,-18538,-27077,-18455,-27133,-18372,-27189,-18288,-27245,-18205,-27301,-18121,-27356,-18037,-27412,-17953,-27467,-17869,-27521,-17785,-27576,-17700,-27630,-17616,-27684,-17531,-27737,-17446,-27791,-17361,-27844,-17275,-27897,-17190,-27949,-17104,-28002,-17018,-28054,-16932,-28106,-16846,-28157,-16760,-28209,-16673,-28260,-16587,-28310,-16500,-28361,-16413,-28411,-16326,-28461,-16239,-28511,-16151,-28560,-16064,-28609,-15976,-28658,-15888,-28707,-15800,-28755,-15712,-28803,-15624,-28851,-15535,-28898,-15447,-28946,-15358,-28993,-15269,-29039,-15180,-29086,-15091,-29132,-15002,-29178,-14912,-29223,-14823,-29269,-14733,-29314,-14643,-29359,-14553,-29403,-14463,-29447,-14373,-29491,-14282,-29535,-14192,-29578,-14101,-29622,-14010,-29664,-13919,-29707,-13828,-29749,-13737,-29791,-13646,-29833,-13554,-29874,-13463,-29916,-13371,-29956,-13279,-29997,-13187,-30037,-13095,-30077,-13003,-30117,-12910,-30157,-12818,-30196,-12725,-30235,-12633,-30273,-12540,-30312,-12447,-30350,-12354,-30387,-12261,-30425,-12167,-30462,-12074,-30499,-11981,-30536,-11887,-30572,-11793,-30608,-11699,-30644,-11605,-30679,-11511,-30714,-11417,-30749,-11323,-30784,-11228,-30818,-11134,-30852,-11039,-30886,-10945,-30919,-10850,-30952,-10755,-30985,-10660,-31018,-10565,-31050,-10470,-31082,-10374,-31114,-10279,-31145,-10183,-31176,-10088,-31207,-9992,-31237,-9896,-31268,-9800,-31298,-9704,-31327,-9608,-31357,-9512,-31386,-9416,-31414,-9320,-31443,-9223,-31471,-9127,-31499,-9030,-31526,-8933,-31554,-8837,-31581,-8740,-31607,-8643,-31634,-8546,-31660,-8449,-31685,-8352,-31711,-8254,-31736,-8157,-31761,-8060,-31786,-7962,-31810,-7865,-31834,-7767,-31857,-7669,-31881,-7572,-31904,-7474,-31927,-7376,-31949,-7278,-31971,-7180,-31993,-7082,-32015,-6983,-32036,-6885,-32057,-6787,-32078,-6689,-32098,-6590,-32118,-6492,-32138,-6393,-32157,-6294,-32177,-6196,-32195,-6097,-32214,-5998,-32232,-5899,-32250,-5800,-32268,-5701,-32285,-5602,-32302,-5503,-32319,-5404,-32335,-5305,-32351,-5206,-32367,-5107,-32383,-5007,-32398,-4908,-32413,-4808,-32427,-4709,-32442,-4609,-32456,-4510,-32469,-4410,-32483,-4311,-32496,-4211,-32509,-4111,-32521,-4012,-32533,-3912,-32545,-3812,-32557,-3712,-32568,-3612,-32579,-3512,-32589,-3412,-32600,-3312,-32610,-3212,-32619,-3112,-32629,-3012,-32638,-2912,-32647,-2812,-32655,-2712,-32663,-2611,-32671,-2511,-32679,-2411,-32686,-2311,-32693,-2210,-32700,-2110,-32706,-2010,-32712,-1909,-32718,-1809,-32723,-1709,-32728,-1608,-32733,-1508,-32737,-1407,-32741,-1307,-32745,-1207,-32749,-1106,-32752,-1006,-32755,-905,-32758,-805,-32760,-704,-32762,-604,-32764,-503,-32765,-403,-32766,-302,-32767,-202,-32767,-101}; +int16_t tw2048[2048] __attribute__((aligned(32))); #ifndef __AVX2__ void dft2048(int16_t *x,int16_t *y,int scale) @@ -4808,7 +4740,9 @@ void idft2048(int16_t *x,int16_t *y,int scale) #endif -#include "twiddles4096.h" + + +int16_t tw4096[3*2*1024]; #ifndef __AVX2__ void dft4096(int16_t *x,int16_t *y,int scale) @@ -5041,7 +4975,7 @@ void idft4096(int16_t *x,int16_t *y,int scale) #endif //__AVX2__ -#include "twiddles8192.h" +int16_t tw8192[2*4096] __attribute__((aligned(32))); #ifndef __AVX2__ void dft8192(int16_t *x,int16_t *y,int scale) @@ -5230,6 +5164,7 @@ void dft8192(int16_t *x,int16_t *y,int scale) simd256_q15_t xtmp[1024],*xtmpp,*x256 = (simd256_q15_t *)x; simd256_q15_t ytmp[1024],*tw8192_256p=(simd256_q15_t *)tw8192,*y256=(simd256_q15_t *)y,*y256p=(simd256_q15_t *)y; + simd256_q15_t *ytmpp = &ytmp[0]; int i; simd256_q15_t ONE_OVER_SQRT2_Q15_128 = set1_int16_simd256(ONE_OVER_SQRT2_Q15); @@ -5408,7 +5343,8 @@ void idft8192(int16_t *x,int16_t *y,int scale) #endif -#include "twiddle1536.h" +int16_t twa1536[1024],twb1536[1024]; + // 512 x 3 void idft1536(int16_t *input, int16_t *output, int scale) { @@ -5487,9 +5423,9 @@ void dft1536(int16_t *input, int16_t *output, int scale) tmpo[2][i] = tmpo[2][i<<1]; }*/ - // write_output("out0.m","o0",tmpo[0],2048,1,1); - // write_output("out1.m","o1",tmpo[1],2048,1,1); - // write_output("out2.m","o2",tmpo[2],2048,1,1); + // LOG_M("out0.m","o0",tmpo[0],2048,1,1); + // LOG_M("out1.m","o1",tmpo[1],2048,1,1); + // LOG_M("out2.m","o2",tmpo[2],2048,1,1); for (i=0,i2=0; i<1024; i+=8,i2+=4) { bfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),(simd_q15_t*)(&tmpo[2][i2]), (simd_q15_t*)(output+i),(simd_q15_t*)(output+1024+i),(simd_q15_t*)(output+2048+i), @@ -5523,24 +5459,121 @@ void dft1536(int16_t *input, int16_t *output, int scale) } +int16_t twa3072[2048] __attribute__((aligned(32))); +int16_t twb3072[2048] __attribute__((aligned(32))); // 1024 x 3 -void dft3072(int16_t *input, int16_t *output) +void dft3072(int16_t *input, int16_t *output,int scale) { + int i,i2,j; + uint32_t tmp[3][1024] __attribute__((aligned(32))); + uint32_t tmpo[3][1024] __attribute__((aligned(32))); + simd_q15_t *y128p=(simd_q15_t*)output; + simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15); + for (i=0,j=0; i<1024; i++) { + tmp[0][i] = ((uint32_t *)input)[j++]; + tmp[1][i] = ((uint32_t *)input)[j++]; + tmp[2][i] = ((uint32_t *)input)[j++]; + } + + dft1024((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]),1); + dft1024((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),1); + dft1024((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),1); + + for (i=0,i2=0; i<2048; i+=8,i2+=4) { + bfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),(simd_q15_t*)(&tmpo[2][i2]), + (simd_q15_t*)(output+i),(simd_q15_t*)(output+2048+i),(simd_q15_t*)(output+4096+i), + (simd_q15_t*)(twa3072+i),(simd_q15_t*)(twb3072+i)); + } + + if (scale==1) { + for (i=0; i<48; i++) { + y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128); + y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128); + y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128); + y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128); + y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128); + y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128); + y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128); + y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128); + y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128); + y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128); + y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128); + y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128); + y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128); + y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128); + y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128); + y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128); + y128p+=16; + } + } + + _mm_empty(); + _m_empty(); } -void idft3072(int16_t *input, int16_t *output) +void idft3072(int16_t *input, int16_t *output,int scale) { + int i,i2,j; + uint32_t tmp[3][1024]__attribute__((aligned(32))); + uint32_t tmpo[3][1024] __attribute__((aligned(32))); + simd_q15_t *y128p=(simd_q15_t*)output; + simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15); + for (i=0,j=0; i<1024; i++) { + tmp[0][i] = ((uint32_t *)input)[j++]; + tmp[1][i] = ((uint32_t *)input)[j++]; + tmp[2][i] = ((uint32_t *)input)[j++]; + } + + idft1024((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]),1); + idft1024((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),1); + idft1024((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),1); + + for (i=0,i2=0; i<2048; i+=8,i2+=4) { + ibfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),((simd_q15_t*)&tmpo[2][i2]), + (simd_q15_t*)(output+i),(simd_q15_t*)(output+2048+i),(simd_q15_t*)(output+4096+i), + (simd_q15_t*)(twa3072+i),(simd_q15_t*)(twb3072+i)); + } + + + if (scale==1) { + for (i=0; i<48; i++) { + y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128); + y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128); + y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128); + y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128); + y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128); + y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128); + y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128); + y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128); + y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128); + y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128); + y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128); + y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128); + y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128); + y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128); + y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128); + y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128); + y128p+=16; + } + } + + _mm_empty(); + _m_empty(); } -#include "twiddle6144.h" -void idft6144(int16_t *input, int16_t *output) +int16_t twa6144[4096] __attribute__((aligned(32))); +int16_t twb6144[4096] __attribute__((aligned(32))); + +void idft6144(int16_t *input, int16_t *output,int scale) { int i,i2,j; uint32_t tmp[3][2048] __attribute__((aligned(32))); uint32_t tmpo[3][2048] __attribute__((aligned(32))); + simd_q15_t *y128p=(simd_q15_t*)output; + simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15); for (i=0,j=0; i<2048; i++) { tmp[0][i] = ((uint32_t *)input)[j++]; @@ -5552,36 +5585,47 @@ void idft6144(int16_t *input, int16_t *output) idft2048((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),1); idft2048((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),1); - /* - for (i=1; i<2048; i++) { - tmpo[0][i] = tmpo[0][i<<1]; - tmpo[1][i] = tmpo[1][i<<1]; - tmpo[2][i] = tmpo[2][i<<1]; - }*/ - - // write_output("in.m","in",input,6144,1,1); - // write_output("out0.m","o0",tmpo[0],2048,1,1); - // write_output("out1.m","o1",tmpo[1],2048,1,1); - // write_output("out2.m","o2",tmpo[2],2048,1,1); - for (i=0,i2=0; i<4096; i+=8,i2+=4) { ibfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),((simd_q15_t*)&tmpo[2][i2]), (simd_q15_t*)(output+i),(simd_q15_t*)(output+4096+i),(simd_q15_t*)(output+8192+i), (simd_q15_t*)(twa6144+i),(simd_q15_t*)(twb6144+i)); } - // write_output("out.m","out",output,6144,1,1); + if (scale==1) { + for (i=0; i<96; i++) { + y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128); + y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128); + y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128); + y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128); + y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128); + y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128); + y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128); + y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128); + y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128); + y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128); + y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128); + y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128); + y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128); + y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128); + y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128); + y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128); + y128p+=16; + } + } + _mm_empty(); _m_empty(); } -void dft6144(int16_t *input, int16_t *output) +void dft6144(int16_t *input, int16_t *output,int scale) { int i,i2,j; uint32_t tmp[3][2048] __attribute__((aligned(32))); uint32_t tmpo[3][2048] __attribute__((aligned(32))); + simd_q15_t *y128p=(simd_q15_t*)output; + simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15); for (i=0,j=0; i<2048; i++) { tmp[0][i] = ((uint32_t *)input)[j++]; @@ -5600,28 +5644,53 @@ void dft6144(int16_t *input, int16_t *output) tmpo[2][i] = tmpo[2][i<<1]; }*/ - // write_output("out0.m","o0",tmpo[0],2048,1,1); - // write_output("out1.m","o1",tmpo[1],2048,1,1); - // write_output("out2.m","o2",tmpo[2],2048,1,1); + // LOG_M("out0.m","o0",tmpo[0],2048,1,1); + // LOG_M("out1.m","o1",tmpo[1],2048,1,1); + // LOG_M("out2.m","o2",tmpo[2],2048,1,1); for (i=0,i2=0; i<4096; i+=8,i2+=4) { bfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),(simd_q15_t*)(&tmpo[2][i2]), (simd_q15_t*)(output+i),(simd_q15_t*)(output+4096+i),(simd_q15_t*)(output+8192+i), (simd_q15_t*)(twa6144+i),(simd_q15_t*)(twb6144+i)); } + if (scale==1) { + for (i=0; i<96; i++) { + y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128); + y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128); + y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128); + y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128); + y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128); + y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128); + y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128); + y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128); + y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128); + y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128); + y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128); + y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128); + y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128); + y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128); + y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128); + y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128); + y128p+=16; + } + } + _mm_empty(); _m_empty(); } -#include "twiddle12288.h" +int16_t twa12288[8192] __attribute__((aligned(32))); +int16_t twb12288[8192] __attribute__((aligned(32))); // 4096 x 3 -void dft12288(int16_t *input, int16_t *output) +void dft12288(int16_t *input, int16_t *output,int scale) { int i,i2,j; uint32_t tmp[3][4096] __attribute__((aligned(32))); uint32_t tmpo[3][4096] __attribute__((aligned(32))); + simd_q15_t *y128p=(simd_q15_t*)output; + simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15); for (i=0,j=0; i<4096; i++) { tmp[0][i] = ((uint32_t *)input)[j++]; @@ -5629,9 +5698,9 @@ void dft12288(int16_t *input, int16_t *output) tmp[2][i] = ((uint32_t *)input)[j++]; } - dft4096((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]),1); - dft4096((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),1); - dft4096((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),1); + dft4096((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]),scale); + dft4096((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),scale); + dft4096((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),scale); /* for (i=1; i<4096; i++) { tmpo[0][i] = tmpo[0][i<<1]; @@ -5639,25 +5708,48 @@ void dft12288(int16_t *input, int16_t *output) tmpo[2][i] = tmpo[2][i<<1]; }*/ - // write_output("out0.m","o0",tmpo[0],4096,1,1); - // write_output("out1.m","o1",tmpo[1],4096,1,1); - // write_output("out2.m","o2",tmpo[2],4096,1,1); + // LOG_M("out0.m","o0",tmpo[0],4096,1,1); + // LOG_M("out1.m","o1",tmpo[1],4096,1,1); + // LOG_M("out2.m","o2",tmpo[2],4096,1,1); for (i=0,i2=0; i<8192; i+=8,i2+=4) { bfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),(simd_q15_t*)(&tmpo[2][i2]), (simd_q15_t*)(output+i),(simd_q15_t*)(output+8192+i),(simd_q15_t*)(output+16384+i), (simd_q15_t*)(twa12288+i),(simd_q15_t*)(twb12288+i)); } + if (scale==1) { + for (i=0; i<192; i++) { + y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128); + y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128); + y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128); + y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128); + y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128); + y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128); + y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128); + y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128); + y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128); + y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128); + y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128); + y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128); + y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128); + y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128); + y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128); + y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128); + y128p+=16; + } + } _mm_empty(); _m_empty(); } -void idft12288(int16_t *input, int16_t *output) +void idft12288(int16_t *input, int16_t *output,int scale) { int i,i2,j; uint32_t tmp[3][4096] __attribute__((aligned(32))); uint32_t tmpo[3][4096] __attribute__((aligned(32))); + simd_q15_t *y128p=(simd_q15_t*)output; + simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15); for (i=0,j=0; i<4096; i++) { tmp[0][i] = ((uint32_t *)input)[j++]; @@ -5666,34 +5758,52 @@ void idft12288(int16_t *input, int16_t *output) } - idft4096((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]),1); - idft4096((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),1); - idft4096((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),1); - /* - write_output("in.m","in",input,12288,1,1); - write_output("out0.m","o0",tmpo[0],4096,1,1); - write_output("out1.m","o1",tmpo[1],4096,1,1); - write_output("out2.m","o2",tmpo[2],4096,1,1); - */ + idft4096((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]),scale); + idft4096((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),scale); + idft4096((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),scale); for (i=0,i2=0; i<8192; i+=8,i2+=4) { ibfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),((simd_q15_t*)&tmpo[2][i2]), (simd_q15_t*)(output+i),(simd_q15_t*)(output+8192+i),(simd_q15_t*)(output+16384+i), (simd_q15_t*)(twa12288+i),(simd_q15_t*)(twb12288+i)); } + if (scale==1) { + for (i=0; i<192; i++) { + y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128); + y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128); + y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128); + y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128); + y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128); + y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128); + y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128); + y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128); + y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128); + y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128); + y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128); + y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128); + y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128); + y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128); + y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128); + y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128); + y128p+=16; + } + } _mm_empty(); _m_empty(); - // write_output("out.m","out",output,6144,1,1); + // LOG_M("out.m","out",output,6144,1,1); } -#include "twiddle18432.h" +int16_t twa18432[12288] __attribute__((aligned(32))); +int16_t twb18432[12288] __attribute__((aligned(32))); // 6144 x 3 -void dft18432(int16_t *input, int16_t *output) { +void dft18432(int16_t *input, int16_t *output,int scale) { int i,i2,j; uint32_t tmp[3][6144] __attribute__((aligned(32))); uint32_t tmpo[3][6144] __attribute__((aligned(32))); + simd_q15_t *y128p=(simd_q15_t*)output; + simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15); for (i=0,j=0; i<6144; i++) { tmp[0][i] = ((uint32_t *)input)[j++]; @@ -5701,25 +5811,47 @@ void dft18432(int16_t *input, int16_t *output) { tmp[2][i] = ((uint32_t *)input)[j++]; } - dft6144((int16_t*)(tmp[0]),(int16_t*)(tmpo[0])); - dft6144((int16_t*)(tmp[1]),(int16_t*)(tmpo[1])); - dft6144((int16_t*)(tmp[2]),(int16_t*)(tmpo[2])); + dft6144((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]),scale); + dft6144((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),scale); + dft6144((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),scale); for (i=0,i2=0; i<12288; i+=8,i2+=4) { bfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),(simd_q15_t*)(&tmpo[2][i2]), (simd_q15_t*)(output+i),(simd_q15_t*)(output+12288+i),(simd_q15_t*)(output+24576+i), (simd_q15_t*)(twa18432+i),(simd_q15_t*)(twb18432+i)); } - + if (scale==1) { + for (i=0; i<288; i++) { + y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128); + y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128); + y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128); + y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128); + y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128); + y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128); + y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128); + y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128); + y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128); + y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128); + y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128); + y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128); + y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128); + y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128); + y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128); + y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128); + y128p+=16; + } + } _mm_empty(); _m_empty(); } -void idft18432(int16_t *input, int16_t *output) { +void idft18432(int16_t *input, int16_t *output,int scale) { int i,i2,j; uint32_t tmp[3][6144] __attribute__((aligned(32))); uint32_t tmpo[3][6144] __attribute__((aligned(32))); + simd_q15_t *y128p=(simd_q15_t*)output; + simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15); for (i=0,j=0; i<6144; i++) { tmp[0][i] = ((uint32_t *)input)[j++]; @@ -5727,27 +5859,51 @@ void idft18432(int16_t *input, int16_t *output) { tmp[2][i] = ((uint32_t *)input)[j++]; } - idft6144((int16_t*)(tmp[0]),(int16_t*)(tmpo[0])); - idft6144((int16_t*)(tmp[1]),(int16_t*)(tmpo[1])); - idft6144((int16_t*)(tmp[2]),(int16_t*)(tmpo[2])); + idft6144((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]),scale); + idft6144((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),scale); + idft6144((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),scale); for (i=0,i2=0; i<12288; i+=8,i2+=4) { ibfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),(simd_q15_t*)(&tmpo[2][i2]), (simd_q15_t*)(output+i),(simd_q15_t*)(output+12288+i),(simd_q15_t*)(output+24576+i), (simd_q15_t*)(twa18432+i),(simd_q15_t*)(twb18432+i)); } - + if (scale==1) { + for (i=0; i<288; i++) { + y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128); + y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128); + y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128); + y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128); + y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128); + y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128); + y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128); + y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128); + y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128); + y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128); + y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128); + y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128); + y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128); + y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128); + y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128); + y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128); + y128p+=16; + } + } _mm_empty(); _m_empty(); } -#include "twiddle24576.h" + +int16_t twa24576[16384] __attribute__((aligned(32))); +int16_t twb24576[16384] __attribute__((aligned(32))); // 8192 x 3 -void dft24576(int16_t *input, int16_t *output) +void dft24576(int16_t *input, int16_t *output,int scale) { int i,i2,j; uint32_t tmp[3][8192] __attribute__((aligned(32))); uint32_t tmpo[3][8192] __attribute__((aligned(32))); + simd_q15_t *y128p=(simd_q15_t*)output; + simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15); for (i=0,j=0; i<8192; i++) { tmp[0][i] = ((uint32_t *)input)[j++]; @@ -5765,26 +5921,49 @@ void dft24576(int16_t *input, int16_t *output) tmpo[2][i] = tmpo[2][i<<1]; }*/ - // write_output("out0.m","o0",tmpo[0],8192,1,1); - // write_output("out1.m","o1",tmpo[1],8192,1,1); - // write_output("out2.m","o2",tmpo[2],8192,1,1); + // LOG_M("out0.m","o0",tmpo[0],8192,1,1); + // LOG_M("out1.m","o1",tmpo[1],8192,1,1); + // LOG_M("out2.m","o2",tmpo[2],8192,1,1); for (i=0,i2=0; i<16384; i+=8,i2+=4) { bfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),(simd_q15_t*)(&tmpo[2][i2]), (simd_q15_t*)(output+i),(simd_q15_t*)(output+16384+i),(simd_q15_t*)(output+32768+i), (simd_q15_t*)(twa24576+i),(simd_q15_t*)(twb24576+i)); } + if (scale==1) { + for (i=0; i<384; i++) { + y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128); + y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128); + y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128); + y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128); + y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128); + y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128); + y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128); + y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128); + y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128); + y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128); + y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128); + y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128); + y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128); + y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128); + y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128); + y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128); + y128p+=16; + } + } _mm_empty(); _m_empty(); - // write_output("out.m","out",output,24576,1,1); + // LOG_M("out.m","out",output,24576,1,1); } -void idft24576(int16_t *input, int16_t *output) +void idft24576(int16_t *input, int16_t *output,int scale) { int i,i2,j; uint32_t tmp[3][8192] __attribute__((aligned(32))); uint32_t tmpo[3][8192] __attribute__((aligned(32))); + simd_q15_t *y128p=(simd_q15_t*)output; + simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15); for (i=0,j=0; i<8192; i++) { tmp[0][i] = ((uint32_t *)input)[j++]; @@ -5797,10 +5976,10 @@ void idft24576(int16_t *input, int16_t *output) idft8192((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),1); /* - write_output("in.m","in",input,24576,1,1); - write_output("out0.m","o0",tmpo[0],8192,1,1); - write_output("out1.m","o1",tmpo[1],8192,1,1); - write_output("out2.m","o2",tmpo[2],8192,1,1); + LOG_M("in.m","in",input,24576,1,1); + LOG_M("out0.m","o0",tmpo[0],8192,1,1); + LOG_M("out1.m","o1",tmpo[1],8192,1,1); + LOG_M("out2.m","o2",tmpo[2],8192,1,1); */ for (i=0,i2=0; i<16384; i+=8,i2+=4) { @@ -5808,11 +5987,31 @@ void idft24576(int16_t *input, int16_t *output) (simd_q15_t*)(output+i),(simd_q15_t*)(output+16384+i),(simd_q15_t*)(output+32768+i), (simd_q15_t*)(twa24576+i),(simd_q15_t*)(twb24576+i)); } - + if (scale==1) { + for (i=0; i<384; i++) { + y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128); + y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128); + y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128); + y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128); + y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128); + y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128); + y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128); + y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128); + y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128); + y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128); + y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128); + y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128); + y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128); + y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128); + y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128); + y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128); + y128p+=16; + } + } _mm_empty(); _m_empty(); - // write_output("out.m","out",output,24576,1,1); + // LOG_M("out.m","out",output,24576,1,1); } /// THIS SECTION IS FOR ALL PUSCH DFTS (i.e. radix 2^a * 3^b * 4^c * 5^d) @@ -6187,23 +6386,7 @@ void dft12_simd256(int16_t *x,int16_t *y) #endif -static int16_t tw24[88]__attribute__((aligned(32))) = {31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 0,-32767,0,-32767,0,-32767,0,-32767, - -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169, - -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383, - -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480 - }; - -//static simd_q15_t ytmp128array[300]; -//static simd_q15_t ytmp128array2[300]; -//static simd_q15_t ytmp128array3[300]; -//static simd_q15_t x2128array[300]; +static int16_t tw24[88]__attribute__((aligned(32))); void dft24(int16_t *x,int16_t *y,unsigned char scale_flag) { @@ -6298,31 +6481,8 @@ void dft24(int16_t *x,int16_t *y,unsigned char scale_flag) } -static int16_t twa36[88]__attribute__((aligned(32))) = {32269,-5689,32269,-5689,32269,-5689,32269,-5689, - 30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 21062,-25100,21062,-25100,21062,-25100,21062,-25100, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 11206,-30790,11206,-30790,11206,-30790,11206,-30790, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - 0,-32767,0,-32767,0,-32767,0,-32767, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790 - }; - -static int16_t twb36[88]__attribute__((aligned(32))) = {30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -25100,-21062,-25100,-21062,-25100,-21062,-25100,-21062, - -30790,-11206,-30790,-11206,-30790,-11206,-30790,-11206, - -32767,0,-32767,0,-32767,0,-32767,0, - -30790,11206,-30790,11206,-30790,11206,-30790,11206, - -25100,21062,-25100,21062,-25100,21062,-25100,21062 - }; +static int16_t twa36[88]__attribute__((aligned(32))); +static int16_t twb36[88]__attribute__((aligned(32))); void dft36(int16_t *x,int16_t *y,unsigned char scale_flag) { @@ -6444,44 +6604,9 @@ void dft36(int16_t *x,int16_t *y,unsigned char scale_flag) } -static int16_t twa48[88]__attribute__((aligned(32))) = {32486,-4276,32486,-4276,32486,-4276,32486,-4276, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 30272,-12539,30272,-12539,30272,-12539,30272,-12539, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 25995,-19947,25995,-19947,25995,-19947,25995,-19947, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 19947,-25995,19947,-25995,19947,-25995,19947,-25995, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 12539,-30272,12539,-30272,12539,-30272,12539,-30272, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 4276,-32486,4276,-32486,4276,-32486,4276,-32486 - }; - -static int16_t twb48[88]__attribute__((aligned(32))) = {31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 0,-32767,0,-32767,0,-32767,0,-32767, - -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169, - -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383, - -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480 - }; - -static int16_t twc48[88]__attribute__((aligned(32))) = {30272,-12539,30272,-12539,30272,-12539,30272,-12539, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 12539,-30272,12539,-30272,12539,-30272,12539,-30272, - 0,-32767,0,-32767,0,-32767,0,-32767, - -12539,-30272,-12539,-30272,-12539,-30272,-12539,-30272, - -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169, - -30272,-12539,-30272,-12539,-30272,-12539,-30272,-12539, - -32767,0,-32767,0,-32767,0,-32767,0, - -30272,12539,-30272,12539,-30272,12539,-30272,12539, - -23169,23169,-23169,23169,-23169,23169,-23169,23169, - -12539,30272,-12539,30272,-12539,30272,-12539,30272 - }; +static int16_t twa48[88]__attribute__((aligned(32))); +static int16_t twb48[88]__attribute__((aligned(32))); +static int16_t twc48[88]__attribute__((aligned(32))); void dft48(int16_t *x, int16_t *y,unsigned char scale_flag) { @@ -6640,54 +6765,10 @@ void dft48(int16_t *x, int16_t *y,unsigned char scale_flag) } -static int16_t twa60[88]__attribute__((aligned(32))) = {32587,-3425,32587,-3425,32587,-3425,32587,-3425, - 32050,-6812,32050,-6812,32050,-6812,32050,-6812, - 31163,-10125,31163,-10125,31163,-10125,31163,-10125, - 29934,-13327,29934,-13327,29934,-13327,29934,-13327, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 26509,-19259,26509,-19259,26509,-19259,26509,-19259, - 24350,-21925,24350,-21925,24350,-21925,24350,-21925, - 21925,-24350,21925,-24350,21925,-24350,21925,-24350, - 19259,-26509,19259,-26509,19259,-26509,19259,-26509, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 13327,-29934,13327,-29934,13327,-29934,13327,-29934 - }; -static int16_t twb60[88]__attribute__((aligned(32))) = {32050,-6812,32050,-6812,32050,-6812,32050,-6812, - 29934,-13327,29934,-13327,29934,-13327,29934,-13327, - 26509,-19259,26509,-19259,26509,-19259,26509,-19259, - 21925,-24350,21925,-24350,21925,-24350,21925,-24350, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 10125,-31163,10125,-31163,10125,-31163,10125,-31163, - 3425,-32587,3425,-32587,3425,-32587,3425,-32587, - -3425,-32587,-3425,-32587,-3425,-32587,-3425,-32587, - -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -21925,-24350,-21925,-24350,-21925,-24350,-21925,-24350 - }; -static int16_t twc60[88]__attribute__((aligned(32))) = {31163,-10125,31163,-10125,31163,-10125,31163,-10125, - 26509,-19259,26509,-19259,26509,-19259,26509,-19259, - 19259,-26509,19259,-26509,19259,-26509,19259,-26509, - 10125,-31163,10125,-31163,10125,-31163,10125,-31163, - 0,-32767,0,-32767,0,-32767,0,-32767, - -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163, - -19259,-26509,-19259,-26509,-19259,-26509,-19259,-26509, - -26509,-19259,-26509,-19259,-26509,-19259,-26509,-19259, - -31163,-10125,-31163,-10125,-31163,-10125,-31163,-10125, - -32767,0,-32767,0,-32767,0,-32767,0, - -31163,10125,-31163,10125,-31163,10125,-31163,10125 - }; -static int16_t twd60[88]__attribute__((aligned(32))) = {29934,-13327,29934,-13327,29934,-13327,29934,-13327, - 21925,-24350,21925,-24350,21925,-24350,21925,-24350, - 10125,-31163,10125,-31163,10125,-31163,10125,-31163, - -3425,-32587,-3425,-32587,-3425,-32587,-3425,-32587, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -26509,-19259,-26509,-19259,-26509,-19259,-26509,-19259, - -32050,-6812,-32050,-6812,-32050,-6812,-32050,-6812, - -32050,6812,-32050,6812,-32050,6812,-32050,6812, - -26509,19259,-26509,19259,-26509,19259,-26509,19259, - -16383,28377,-16383,28377,-16383,28377,-16383,28377, - -3425,32587,-3425,32587,-3425,32587,-3425,32587 - }; +static int16_t twa60[88]__attribute__((aligned(32))); +static int16_t twb60[88]__attribute__((aligned(32))); +static int16_t twc60[88]__attribute__((aligned(32))); +static int16_t twd60[88]__attribute__((aligned(32))); void dft60(int16_t *x,int16_t *y,unsigned char scale) { @@ -6869,42 +6950,7 @@ void dft60(int16_t *x,int16_t *y,unsigned char scale) } -static int16_t tw72[280]__attribute__((aligned(32))) = {32642,-2855,32642,-2855,32642,-2855,32642,-2855, - 32269,-5689,32269,-5689,32269,-5689,32269,-5689, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 29696,-13847,29696,-13847,29696,-13847,29696,-13847, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 26841,-18794,26841,-18794,26841,-18794,26841,-18794, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 21062,-25100,21062,-25100,21062,-25100,21062,-25100, - 18794,-26841,18794,-26841,18794,-26841,18794,-26841, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 13847,-29696,13847,-29696,13847,-29696,13847,-29696, - 11206,-30790,11206,-30790,11206,-30790,11206,-30790, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - 2855,-32642,2855,-32642,2855,-32642,2855,-32642, - 0,-32767,0,-32767,0,-32767,0,-32767, - -2855,-32642,-2855,-32642,-2855,-32642,-2855,-32642, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650, - -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790, - -13847,-29696,-13847,-29696,-13847,-29696,-13847,-29696, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -18794,-26841,-18794,-26841,-18794,-26841,-18794,-26841, - -21062,-25100,-21062,-25100,-21062,-25100,-21062,-25100, - -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169, - -25100,-21062,-25100,-21062,-25100,-21062,-25100,-21062, - -26841,-18794,-26841,-18794,-26841,-18794,-26841,-18794, - -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383, - -29696,-13847,-29696,-13847,-29696,-13847,-29696,-13847, - -30790,-11206,-30790,-11206,-30790,-11206,-30790,-11206, - -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480, - -32269,-5689,-32269,-5689,-32269,-5689,-32269,-5689, - -32642,-2855,-32642,-2855,-32642,-2855,-32642,-2855, - }; +static int16_t tw72[280]__attribute__((aligned(32))); void dft72(int16_t *x,int16_t *y,unsigned char scale_flag) { @@ -6948,54 +6994,7 @@ void dft72(int16_t *x,int16_t *y,unsigned char scale_flag) } -static int16_t tw96[376]__attribute__((aligned(32))) = {32696,-2143,32696,-2143,32696,-2143,32696,-2143, - 32486,-4276,32486,-4276,32486,-4276,32486,-4276, - 32137,-6392,32137,-6392,32137,-6392,32137,-6392, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 31028,-10532,31028,-10532,31028,-10532,31028,-10532, - 30272,-12539,30272,-12539,30272,-12539,30272,-12539, - 29387,-14492,29387,-14492,29387,-14492,29387,-14492, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 27244,-18204,27244,-18204,27244,-18204,27244,-18204, - 25995,-19947,25995,-19947,25995,-19947,25995,-19947, - 24635,-21604,24635,-21604,24635,-21604,24635,-21604, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 21604,-24635,21604,-24635,21604,-24635,21604,-24635, - 19947,-25995,19947,-25995,19947,-25995,19947,-25995, - 18204,-27244,18204,-27244,18204,-27244,18204,-27244, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 14492,-29387,14492,-29387,14492,-29387,14492,-29387, - 12539,-30272,12539,-30272,12539,-30272,12539,-30272, - 10532,-31028,10532,-31028,10532,-31028,10532,-31028, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 6392,-32137,6392,-32137,6392,-32137,6392,-32137, - 4276,-32486,4276,-32486,4276,-32486,4276,-32486, - 2143,-32696,2143,-32696,2143,-32696,2143,-32696, - 0,-32767,0,-32767,0,-32767,0,-32767, - -2143,-32696,-2143,-32696,-2143,-32696,-2143,-32696, - -4276,-32486,-4276,-32486,-4276,-32486,-4276,-32486, - -6392,-32137,-6392,-32137,-6392,-32137,-6392,-32137, - -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650, - -10532,-31028,-10532,-31028,-10532,-31028,-10532,-31028, - -12539,-30272,-12539,-30272,-12539,-30272,-12539,-30272, - -14492,-29387,-14492,-29387,-14492,-29387,-14492,-29387, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -18204,-27244,-18204,-27244,-18204,-27244,-18204,-27244, - -19947,-25995,-19947,-25995,-19947,-25995,-19947,-25995, - -21604,-24635,-21604,-24635,-21604,-24635,-21604,-24635, - -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169, - -24635,-21604,-24635,-21604,-24635,-21604,-24635,-21604, - -25995,-19947,-25995,-19947,-25995,-19947,-25995,-19947, - -27244,-18204,-27244,-18204,-27244,-18204,-27244,-18204, - -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383, - -29387,-14492,-29387,-14492,-29387,-14492,-29387,-14492, - -30272,-12539,-30272,-12539,-30272,-12539,-30272,-12539, - -31028,-10532,-31028,-10532,-31028,-10532,-31028,-10532, - -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480, - -32137,-6392,-32137,-6392,-32137,-6392,-32137,-6392, - -32486,-4276,-32486,-4276,-32486,-4276,-32486,-4276, - -32696,-2143,-32696,-2143,-32696,-2143,-32696,-2143 - }; +static int16_t tw96[376]__attribute__((aligned(32))); void dft96(int16_t *x,int16_t *y,unsigned char scale_flag) { @@ -7041,84 +7040,11 @@ void dft96(int16_t *x,int16_t *y,unsigned char scale_flag) } -static int16_t twa108[280]__attribute__((aligned(32))) = {32711,-1905,32711,-1905,32711,-1905,32711,-1905, - 32545,-3804,32545,-3804,32545,-3804,32545,-3804, - 32269,-5689,32269,-5689,32269,-5689,32269,-5689, - 31883,-7556,31883,-7556,31883,-7556,31883,-7556, - 31390,-9397,31390,-9397,31390,-9397,31390,-9397, - 30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 30087,-12978,30087,-12978,30087,-12978,30087,-12978, - 29281,-14705,29281,-14705,29281,-14705,29281,-14705, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 27376,-18005,27376,-18005,27376,-18005,27376,-18005, - 26283,-19567,26283,-19567,26283,-19567,26283,-19567, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 23833,-22486,23833,-22486,23833,-22486,23833,-22486, - 22486,-23833,22486,-23833,22486,-23833,22486,-23833, - 21062,-25100,21062,-25100,21062,-25100,21062,-25100, - 19567,-26283,19567,-26283,19567,-26283,19567,-26283, - 18005,-27376,18005,-27376,18005,-27376,18005,-27376, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 14705,-29281,14705,-29281,14705,-29281,14705,-29281, - 12978,-30087,12978,-30087,12978,-30087,12978,-30087, - 11206,-30790,11206,-30790,11206,-30790,11206,-30790, - 9397,-31390,9397,-31390,9397,-31390,9397,-31390, - 7556,-31883,7556,-31883,7556,-31883,7556,-31883, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - 3804,-32545,3804,-32545,3804,-32545,3804,-32545, - 1905,-32711,1905,-32711,1905,-32711,1905,-32711, - 0,-32767,0,-32767,0,-32767,0,-32767, - -1905,-32711,-1905,-32711,-1905,-32711,-1905,-32711, - -3804,-32545,-3804,-32545,-3804,-32545,-3804,-32545, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -7556,-31883,-7556,-31883,-7556,-31883,-7556,-31883, - -9397,-31390,-9397,-31390,-9397,-31390,-9397,-31390, - -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790, - -12978,-30087,-12978,-30087,-12978,-30087,-12978,-30087, - -14705,-29281,-14705,-29281,-14705,-29281,-14705,-29281 - }; - -static int16_t twb108[280]__attribute__((aligned(32))) = {32545,-3804,32545,-3804,32545,-3804,32545,-3804, - 31883,-7556,31883,-7556,31883,-7556,31883,-7556, - 30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 29281,-14705,29281,-14705,29281,-14705,29281,-14705, - 27376,-18005,27376,-18005,27376,-18005,27376,-18005, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 22486,-23833,22486,-23833,22486,-23833,22486,-23833, - 19567,-26283,19567,-26283,19567,-26283,19567,-26283, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 12978,-30087,12978,-30087,12978,-30087,12978,-30087, - 9397,-31390,9397,-31390,9397,-31390,9397,-31390, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - 1905,-32711,1905,-32711,1905,-32711,1905,-32711, - -1905,-32711,-1905,-32711,-1905,-32711,-1905,-32711, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -9397,-31390,-9397,-31390,-9397,-31390,-9397,-31390, - -12978,-30087,-12978,-30087,-12978,-30087,-12978,-30087, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -19567,-26283,-19567,-26283,-19567,-26283,-19567,-26283, - -22486,-23833,-22486,-23833,-22486,-23833,-22486,-23833, - -25100,-21062,-25100,-21062,-25100,-21062,-25100,-21062, - -27376,-18005,-27376,-18005,-27376,-18005,-27376,-18005, - -29281,-14705,-29281,-14705,-29281,-14705,-29281,-14705, - -30790,-11206,-30790,-11206,-30790,-11206,-30790,-11206, - -31883,-7556,-31883,-7556,-31883,-7556,-31883,-7556, - -32545,-3804,-32545,-3804,-32545,-3804,-32545,-3804, - -32767,0,-32767,0,-32767,0,-32767,0, - -32545,3804,-32545,3804,-32545,3804,-32545,3804, - -31883,7556,-31883,7556,-31883,7556,-31883,7556, - -30790,11206,-30790,11206,-30790,11206,-30790,11206, - -29281,14705,-29281,14705,-29281,14705,-29281,14705, - -27376,18005,-27376,18005,-27376,18005,-27376,18005, - -25100,21062,-25100,21062,-25100,21062,-25100,21062, - -22486,23833,-22486,23833,-22486,23833,-22486,23833, - -19567,26283,-19567,26283,-19567,26283,-19567,26283 - }; +static int16_t twa108[280]__attribute__((aligned(32))); +static int16_t twb108[280]__attribute__((aligned(32))); void dft108(int16_t *x,int16_t *y,unsigned char scale_flag) { - - int i,j; simd_q15_t *x128=(simd_q15_t *)x; simd_q15_t *y128=(simd_q15_t *)y; @@ -7165,71 +7091,9 @@ void dft108(int16_t *x,int16_t *y,unsigned char scale_flag) } -static int16_t tw120[472]__attribute__((aligned(32))) = {32722,-1714,32722,-1714,32722,-1714,32722,-1714, - 32587,-3425,32587,-3425,32587,-3425,32587,-3425, - 32363,-5125,32363,-5125,32363,-5125,32363,-5125, - 32050,-6812,32050,-6812,32050,-6812,32050,-6812, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 31163,-10125,31163,-10125,31163,-10125,31163,-10125, - 30590,-11742,30590,-11742,30590,-11742,30590,-11742, - 29934,-13327,29934,-13327,29934,-13327,29934,-13327, - 29195,-14875,29195,-14875,29195,-14875,29195,-14875, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 27480,-17846,27480,-17846,27480,-17846,27480,-17846, - 26509,-19259,26509,-19259,26509,-19259,26509,-19259, - 25464,-20620,25464,-20620,25464,-20620,25464,-20620, - 24350,-21925,24350,-21925,24350,-21925,24350,-21925, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 21925,-24350,21925,-24350,21925,-24350,21925,-24350, - 20620,-25464,20620,-25464,20620,-25464,20620,-25464, - 19259,-26509,19259,-26509,19259,-26509,19259,-26509, - 17846,-27480,17846,-27480,17846,-27480,17846,-27480, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 14875,-29195,14875,-29195,14875,-29195,14875,-29195, - 13327,-29934,13327,-29934,13327,-29934,13327,-29934, - 11742,-30590,11742,-30590,11742,-30590,11742,-30590, - 10125,-31163,10125,-31163,10125,-31163,10125,-31163, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 6812,-32050,6812,-32050,6812,-32050,6812,-32050, - 5125,-32363,5125,-32363,5125,-32363,5125,-32363, - 3425,-32587,3425,-32587,3425,-32587,3425,-32587, - 1714,-32722,1714,-32722,1714,-32722,1714,-32722, - 0,-32767,0,-32767,0,-32767,0,-32767, - -1714,-32722,-1714,-32722,-1714,-32722,-1714,-32722, - -3425,-32587,-3425,-32587,-3425,-32587,-3425,-32587, - -5125,-32363,-5125,-32363,-5125,-32363,-5125,-32363, - -6812,-32050,-6812,-32050,-6812,-32050,-6812,-32050, - -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650, - -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163, - -11742,-30590,-11742,-30590,-11742,-30590,-11742,-30590, - -13327,-29934,-13327,-29934,-13327,-29934,-13327,-29934, - -14875,-29195,-14875,-29195,-14875,-29195,-14875,-29195, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -17846,-27480,-17846,-27480,-17846,-27480,-17846,-27480, - -19259,-26509,-19259,-26509,-19259,-26509,-19259,-26509, - -20620,-25464,-20620,-25464,-20620,-25464,-20620,-25464, - -21925,-24350,-21925,-24350,-21925,-24350,-21925,-24350, - -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169, - -24350,-21925,-24350,-21925,-24350,-21925,-24350,-21925, - -25464,-20620,-25464,-20620,-25464,-20620,-25464,-20620, - -26509,-19259,-26509,-19259,-26509,-19259,-26509,-19259, - -27480,-17846,-27480,-17846,-27480,-17846,-27480,-17846, - -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383, - -29195,-14875,-29195,-14875,-29195,-14875,-29195,-14875, - -29934,-13327,-29934,-13327,-29934,-13327,-29934,-13327, - -30590,-11742,-30590,-11742,-30590,-11742,-30590,-11742, - -31163,-10125,-31163,-10125,-31163,-10125,-31163,-10125, - -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480, - -32050,-6812,-32050,-6812,-32050,-6812,-32050,-6812, - -32363,-5125,-32363,-5125,-32363,-5125,-32363,-5125, - -32587,-3425,-32587,-3425,-32587,-3425,-32587,-3425, - -32722,-1714,-32722,-1714,-32722,-1714,-32722,-1714 - }; - +static int16_t tw120[472]__attribute__((aligned(32))); void dft120(int16_t *x,int16_t *y, unsigned char scale_flag) { - - int i,j; simd_q15_t *x128=(simd_q15_t *)x; simd_q15_t *y128=(simd_q15_t *)y; @@ -7237,7 +7101,6 @@ void dft120(int16_t *x,int16_t *y, unsigned char scale_flag) simd_q15_t x2128[120];// = (simd_q15_t *)&x2128array[0]; simd_q15_t ytmp128[120];//=&ytmp128array2[0]; - for (i=0,j=0; i<60; i++,j+=2) { x2128[i] = x128[j]; x2128[i+60] = x128[j+1]; @@ -7270,107 +7133,11 @@ void dft120(int16_t *x,int16_t *y, unsigned char scale_flag) } -static int16_t twa144[376]__attribute__((aligned(32))) = {32735,-1429,32735,-1429,32735,-1429,32735,-1429, - 32642,-2855,32642,-2855,32642,-2855,32642,-2855, - 32486,-4276,32486,-4276,32486,-4276,32486,-4276, - 32269,-5689,32269,-5689,32269,-5689,32269,-5689, - 31990,-7092,31990,-7092,31990,-7092,31990,-7092, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 31250,-9853,31250,-9853,31250,-9853,31250,-9853, - 30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 30272,-12539,30272,-12539,30272,-12539,30272,-12539, - 29696,-13847,29696,-13847,29696,-13847,29696,-13847, - 29064,-15130,29064,-15130,29064,-15130,29064,-15130, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 27635,-17605,27635,-17605,27635,-17605,27635,-17605, - 26841,-18794,26841,-18794,26841,-18794,26841,-18794, - 25995,-19947,25995,-19947,25995,-19947,25995,-19947, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 24158,-22137,24158,-22137,24158,-22137,24158,-22137, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 22137,-24158,22137,-24158,22137,-24158,22137,-24158, - 21062,-25100,21062,-25100,21062,-25100,21062,-25100, - 19947,-25995,19947,-25995,19947,-25995,19947,-25995, - 18794,-26841,18794,-26841,18794,-26841,18794,-26841, - 17605,-27635,17605,-27635,17605,-27635,17605,-27635, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 15130,-29064,15130,-29064,15130,-29064,15130,-29064, - 13847,-29696,13847,-29696,13847,-29696,13847,-29696, - 12539,-30272,12539,-30272,12539,-30272,12539,-30272, - 11206,-30790,11206,-30790,11206,-30790,11206,-30790, - 9853,-31250,9853,-31250,9853,-31250,9853,-31250, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 7092,-31990,7092,-31990,7092,-31990,7092,-31990, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - 4276,-32486,4276,-32486,4276,-32486,4276,-32486, - 2855,-32642,2855,-32642,2855,-32642,2855,-32642, - 1429,-32735,1429,-32735,1429,-32735,1429,-32735, - 0,-32767,0,-32767,0,-32767,0,-32767, - -1429,-32735,-1429,-32735,-1429,-32735,-1429,-32735, - -2855,-32642,-2855,-32642,-2855,-32642,-2855,-32642, - -4276,-32486,-4276,-32486,-4276,-32486,-4276,-32486, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -7092,-31990,-7092,-31990,-7092,-31990,-7092,-31990, - -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650, - -9853,-31250,-9853,-31250,-9853,-31250,-9853,-31250, - -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790, - -12539,-30272,-12539,-30272,-12539,-30272,-12539,-30272, - -13847,-29696,-13847,-29696,-13847,-29696,-13847,-29696, - -15130,-29064,-15130,-29064,-15130,-29064,-15130,-29064 - }; - -static int16_t twb144[376]__attribute__((aligned(32))) = {32642,-2855,32642,-2855,32642,-2855,32642,-2855, - 32269,-5689,32269,-5689,32269,-5689,32269,-5689, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 29696,-13847,29696,-13847,29696,-13847,29696,-13847, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 26841,-18794,26841,-18794,26841,-18794,26841,-18794, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 21062,-25100,21062,-25100,21062,-25100,21062,-25100, - 18794,-26841,18794,-26841,18794,-26841,18794,-26841, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 13847,-29696,13847,-29696,13847,-29696,13847,-29696, - 11206,-30790,11206,-30790,11206,-30790,11206,-30790, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - 2855,-32642,2855,-32642,2855,-32642,2855,-32642, - 0,-32767,0,-32767,0,-32767,0,-32767, - -2855,-32642,-2855,-32642,-2855,-32642,-2855,-32642, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650, - -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790, - -13847,-29696,-13847,-29696,-13847,-29696,-13847,-29696, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -18794,-26841,-18794,-26841,-18794,-26841,-18794,-26841, - -21062,-25100,-21062,-25100,-21062,-25100,-21062,-25100, - -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169, - -25100,-21062,-25100,-21062,-25100,-21062,-25100,-21062, - -26841,-18794,-26841,-18794,-26841,-18794,-26841,-18794, - -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383, - -29696,-13847,-29696,-13847,-29696,-13847,-29696,-13847, - -30790,-11206,-30790,-11206,-30790,-11206,-30790,-11206, - -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480, - -32269,-5689,-32269,-5689,-32269,-5689,-32269,-5689, - -32642,-2855,-32642,-2855,-32642,-2855,-32642,-2855, - -32767,0,-32767,0,-32767,0,-32767,0, - -32642,2855,-32642,2855,-32642,2855,-32642,2855, - -32269,5689,-32269,5689,-32269,5689,-32269,5689, - -31650,8480,-31650,8480,-31650,8480,-31650,8480, - -30790,11206,-30790,11206,-30790,11206,-30790,11206, - -29696,13847,-29696,13847,-29696,13847,-29696,13847, - -28377,16383,-28377,16383,-28377,16383,-28377,16383, - -26841,18794,-26841,18794,-26841,18794,-26841,18794, - -25100,21062,-25100,21062,-25100,21062,-25100,21062, - -23169,23169,-23169,23169,-23169,23169,-23169,23169, - -21062,25100,-21062,25100,-21062,25100,-21062,25100, - -18794,26841,-18794,26841,-18794,26841,-18794,26841 - }; +static int16_t twa144[376]__attribute__((aligned(32))); +static int16_t twb144[376]__attribute__((aligned(32))); void dft144(int16_t *x,int16_t *y,unsigned char scale_flag) { - int i,j; simd_q15_t *x128=(simd_q15_t *)x; simd_q15_t *y128=(simd_q15_t *)y; @@ -7417,127 +7184,8 @@ void dft144(int16_t *x,int16_t *y,unsigned char scale_flag) } -static int16_t twa180[472]__attribute__((aligned(32))) = {32747,-1143,32747,-1143,32747,-1143,32747,-1143, - 32687,-2285,32687,-2285,32687,-2285,32687,-2285, - 32587,-3425,32587,-3425,32587,-3425,32587,-3425, - 32448,-4560,32448,-4560,32448,-4560,32448,-4560, - 32269,-5689,32269,-5689,32269,-5689,32269,-5689, - 32050,-6812,32050,-6812,32050,-6812,32050,-6812, - 31793,-7927,31793,-7927,31793,-7927,31793,-7927, - 31497,-9031,31497,-9031,31497,-9031,31497,-9031, - 31163,-10125,31163,-10125,31163,-10125,31163,-10125, - 30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 30381,-12274,30381,-12274,30381,-12274,30381,-12274, - 29934,-13327,29934,-13327,29934,-13327,29934,-13327, - 29450,-14364,29450,-14364,29450,-14364,29450,-14364, - 28931,-15383,28931,-15383,28931,-15383,28931,-15383, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 27787,-17363,27787,-17363,27787,-17363,27787,-17363, - 27165,-18323,27165,-18323,27165,-18323,27165,-18323, - 26509,-19259,26509,-19259,26509,-19259,26509,-19259, - 25820,-20173,25820,-20173,25820,-20173,25820,-20173, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 24350,-21925,24350,-21925,24350,-21925,24350,-21925, - 23570,-22761,23570,-22761,23570,-22761,23570,-22761, - 22761,-23570,22761,-23570,22761,-23570,22761,-23570, - 21925,-24350,21925,-24350,21925,-24350,21925,-24350, - 21062,-25100,21062,-25100,21062,-25100,21062,-25100, - 20173,-25820,20173,-25820,20173,-25820,20173,-25820, - 19259,-26509,19259,-26509,19259,-26509,19259,-26509, - 18323,-27165,18323,-27165,18323,-27165,18323,-27165, - 17363,-27787,17363,-27787,17363,-27787,17363,-27787, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 15383,-28931,15383,-28931,15383,-28931,15383,-28931, - 14364,-29450,14364,-29450,14364,-29450,14364,-29450, - 13327,-29934,13327,-29934,13327,-29934,13327,-29934, - 12274,-30381,12274,-30381,12274,-30381,12274,-30381, - 11206,-30790,11206,-30790,11206,-30790,11206,-30790, - 10125,-31163,10125,-31163,10125,-31163,10125,-31163, - 9031,-31497,9031,-31497,9031,-31497,9031,-31497, - 7927,-31793,7927,-31793,7927,-31793,7927,-31793, - 6812,-32050,6812,-32050,6812,-32050,6812,-32050, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - 4560,-32448,4560,-32448,4560,-32448,4560,-32448, - 3425,-32587,3425,-32587,3425,-32587,3425,-32587, - 2285,-32687,2285,-32687,2285,-32687,2285,-32687, - 1143,-32747,1143,-32747,1143,-32747,1143,-32747, - 0,-32767,0,-32767,0,-32767,0,-32767, - -1143,-32747,-1143,-32747,-1143,-32747,-1143,-32747, - -2285,-32687,-2285,-32687,-2285,-32687,-2285,-32687, - -3425,-32587,-3425,-32587,-3425,-32587,-3425,-32587, - -4560,-32448,-4560,-32448,-4560,-32448,-4560,-32448, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -6812,-32050,-6812,-32050,-6812,-32050,-6812,-32050, - -7927,-31793,-7927,-31793,-7927,-31793,-7927,-31793, - -9031,-31497,-9031,-31497,-9031,-31497,-9031,-31497, - -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163, - -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790, - -12274,-30381,-12274,-30381,-12274,-30381,-12274,-30381, - -13327,-29934,-13327,-29934,-13327,-29934,-13327,-29934, - -14364,-29450,-14364,-29450,-14364,-29450,-14364,-29450, - -15383,-28931,-15383,-28931,-15383,-28931,-15383,-28931 - }; - -static int16_t twb180[472]__attribute__((aligned(32))) = {32687,-2285,32687,-2285,32687,-2285,32687,-2285, - 32448,-4560,32448,-4560,32448,-4560,32448,-4560, - 32050,-6812,32050,-6812,32050,-6812,32050,-6812, - 31497,-9031,31497,-9031,31497,-9031,31497,-9031, - 30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 29934,-13327,29934,-13327,29934,-13327,29934,-13327, - 28931,-15383,28931,-15383,28931,-15383,28931,-15383, - 27787,-17363,27787,-17363,27787,-17363,27787,-17363, - 26509,-19259,26509,-19259,26509,-19259,26509,-19259, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 23570,-22761,23570,-22761,23570,-22761,23570,-22761, - 21925,-24350,21925,-24350,21925,-24350,21925,-24350, - 20173,-25820,20173,-25820,20173,-25820,20173,-25820, - 18323,-27165,18323,-27165,18323,-27165,18323,-27165, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 14364,-29450,14364,-29450,14364,-29450,14364,-29450, - 12274,-30381,12274,-30381,12274,-30381,12274,-30381, - 10125,-31163,10125,-31163,10125,-31163,10125,-31163, - 7927,-31793,7927,-31793,7927,-31793,7927,-31793, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - 3425,-32587,3425,-32587,3425,-32587,3425,-32587, - 1143,-32747,1143,-32747,1143,-32747,1143,-32747, - -1143,-32747,-1143,-32747,-1143,-32747,-1143,-32747, - -3425,-32587,-3425,-32587,-3425,-32587,-3425,-32587, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -7927,-31793,-7927,-31793,-7927,-31793,-7927,-31793, - -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163, - -12274,-30381,-12274,-30381,-12274,-30381,-12274,-30381, - -14364,-29450,-14364,-29450,-14364,-29450,-14364,-29450, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -18323,-27165,-18323,-27165,-18323,-27165,-18323,-27165, - -20173,-25820,-20173,-25820,-20173,-25820,-20173,-25820, - -21925,-24350,-21925,-24350,-21925,-24350,-21925,-24350, - -23570,-22761,-23570,-22761,-23570,-22761,-23570,-22761, - -25100,-21062,-25100,-21062,-25100,-21062,-25100,-21062, - -26509,-19259,-26509,-19259,-26509,-19259,-26509,-19259, - -27787,-17363,-27787,-17363,-27787,-17363,-27787,-17363, - -28931,-15383,-28931,-15383,-28931,-15383,-28931,-15383, - -29934,-13327,-29934,-13327,-29934,-13327,-29934,-13327, - -30790,-11206,-30790,-11206,-30790,-11206,-30790,-11206, - -31497,-9031,-31497,-9031,-31497,-9031,-31497,-9031, - -32050,-6812,-32050,-6812,-32050,-6812,-32050,-6812, - -32448,-4560,-32448,-4560,-32448,-4560,-32448,-4560, - -32687,-2285,-32687,-2285,-32687,-2285,-32687,-2285, - -32767,0,-32767,0,-32767,0,-32767,0, - -32687,2285,-32687,2285,-32687,2285,-32687,2285, - -32448,4560,-32448,4560,-32448,4560,-32448,4560, - -32050,6812,-32050,6812,-32050,6812,-32050,6812, - -31497,9031,-31497,9031,-31497,9031,-31497,9031, - -30790,11206,-30790,11206,-30790,11206,-30790,11206, - -29934,13327,-29934,13327,-29934,13327,-29934,13327, - -28931,15383,-28931,15383,-28931,15383,-28931,15383, - -27787,17363,-27787,17363,-27787,17363,-27787,17363, - -26509,19259,-26509,19259,-26509,19259,-26509,19259, - -25100,21062,-25100,21062,-25100,21062,-25100,21062, - -23570,22761,-23570,22761,-23570,22761,-23570,22761, - -21925,24350,-21925,24350,-21925,24350,-21925,24350, - -20173,25820,-20173,25820,-20173,25820,-20173,25820, - -18323,27165,-18323,27165,-18323,27165,-18323,27165 - }; +static int16_t twa180[472]__attribute__((aligned(32))); +static int16_t twb180[472]__attribute__((aligned(32))); void dft180(int16_t *x,int16_t *y,unsigned char scale_flag) { @@ -7588,152 +7236,9 @@ void dft180(int16_t *x,int16_t *y,unsigned char scale_flag) } -static int16_t twa192[376]__attribute__((aligned(32))) = {32749,-1072,32749,-1072,32749,-1072,32749,-1072, - 32696,-2143,32696,-2143,32696,-2143,32696,-2143, - 32609,-3211,32609,-3211,32609,-3211,32609,-3211, - 32486,-4276,32486,-4276,32486,-4276,32486,-4276, - 32329,-5337,32329,-5337,32329,-5337,32329,-5337, - 32137,-6392,32137,-6392,32137,-6392,32137,-6392, - 31911,-7440,31911,-7440,31911,-7440,31911,-7440, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 31356,-9511,31356,-9511,31356,-9511,31356,-9511, - 31028,-10532,31028,-10532,31028,-10532,31028,-10532, - 30666,-11542,30666,-11542,30666,-11542,30666,-11542, - 30272,-12539,30272,-12539,30272,-12539,30272,-12539, - 29846,-13523,29846,-13523,29846,-13523,29846,-13523, - 29387,-14492,29387,-14492,29387,-14492,29387,-14492, - 28897,-15446,28897,-15446,28897,-15446,28897,-15446, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 27825,-17303,27825,-17303,27825,-17303,27825,-17303, - 27244,-18204,27244,-18204,27244,-18204,27244,-18204, - 26634,-19086,26634,-19086,26634,-19086,26634,-19086, - 25995,-19947,25995,-19947,25995,-19947,25995,-19947, - 25329,-20787,25329,-20787,25329,-20787,25329,-20787, - 24635,-21604,24635,-21604,24635,-21604,24635,-21604, - 23915,-22399,23915,-22399,23915,-22399,23915,-22399, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 22399,-23915,22399,-23915,22399,-23915,22399,-23915, - 21604,-24635,21604,-24635,21604,-24635,21604,-24635, - 20787,-25329,20787,-25329,20787,-25329,20787,-25329, - 19947,-25995,19947,-25995,19947,-25995,19947,-25995, - 19086,-26634,19086,-26634,19086,-26634,19086,-26634, - 18204,-27244,18204,-27244,18204,-27244,18204,-27244, - 17303,-27825,17303,-27825,17303,-27825,17303,-27825, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 15446,-28897,15446,-28897,15446,-28897,15446,-28897, - 14492,-29387,14492,-29387,14492,-29387,14492,-29387, - 13523,-29846,13523,-29846,13523,-29846,13523,-29846, - 12539,-30272,12539,-30272,12539,-30272,12539,-30272, - 11542,-30666,11542,-30666,11542,-30666,11542,-30666, - 10532,-31028,10532,-31028,10532,-31028,10532,-31028, - 9511,-31356,9511,-31356,9511,-31356,9511,-31356, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 7440,-31911,7440,-31911,7440,-31911,7440,-31911, - 6392,-32137,6392,-32137,6392,-32137,6392,-32137, - 5337,-32329,5337,-32329,5337,-32329,5337,-32329, - 4276,-32486,4276,-32486,4276,-32486,4276,-32486, - 3211,-32609,3211,-32609,3211,-32609,3211,-32609, - 2143,-32696,2143,-32696,2143,-32696,2143,-32696, - 1072,-32749,1072,-32749,1072,-32749,1072,-32749 - }; - -static int16_t twb192[376]__attribute__((aligned(32))) = {32696,-2143,32696,-2143,32696,-2143,32696,-2143, - 32486,-4276,32486,-4276,32486,-4276,32486,-4276, - 32137,-6392,32137,-6392,32137,-6392,32137,-6392, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 31028,-10532,31028,-10532,31028,-10532,31028,-10532, - 30272,-12539,30272,-12539,30272,-12539,30272,-12539, - 29387,-14492,29387,-14492,29387,-14492,29387,-14492, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 27244,-18204,27244,-18204,27244,-18204,27244,-18204, - 25995,-19947,25995,-19947,25995,-19947,25995,-19947, - 24635,-21604,24635,-21604,24635,-21604,24635,-21604, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 21604,-24635,21604,-24635,21604,-24635,21604,-24635, - 19947,-25995,19947,-25995,19947,-25995,19947,-25995, - 18204,-27244,18204,-27244,18204,-27244,18204,-27244, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 14492,-29387,14492,-29387,14492,-29387,14492,-29387, - 12539,-30272,12539,-30272,12539,-30272,12539,-30272, - 10532,-31028,10532,-31028,10532,-31028,10532,-31028, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 6392,-32137,6392,-32137,6392,-32137,6392,-32137, - 4276,-32486,4276,-32486,4276,-32486,4276,-32486, - 2143,-32696,2143,-32696,2143,-32696,2143,-32696, - 0,-32767,0,-32767,0,-32767,0,-32767, - -2143,-32696,-2143,-32696,-2143,-32696,-2143,-32696, - -4276,-32486,-4276,-32486,-4276,-32486,-4276,-32486, - -6392,-32137,-6392,-32137,-6392,-32137,-6392,-32137, - -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650, - -10532,-31028,-10532,-31028,-10532,-31028,-10532,-31028, - -12539,-30272,-12539,-30272,-12539,-30272,-12539,-30272, - -14492,-29387,-14492,-29387,-14492,-29387,-14492,-29387, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -18204,-27244,-18204,-27244,-18204,-27244,-18204,-27244, - -19947,-25995,-19947,-25995,-19947,-25995,-19947,-25995, - -21604,-24635,-21604,-24635,-21604,-24635,-21604,-24635, - -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169, - -24635,-21604,-24635,-21604,-24635,-21604,-24635,-21604, - -25995,-19947,-25995,-19947,-25995,-19947,-25995,-19947, - -27244,-18204,-27244,-18204,-27244,-18204,-27244,-18204, - -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383, - -29387,-14492,-29387,-14492,-29387,-14492,-29387,-14492, - -30272,-12539,-30272,-12539,-30272,-12539,-30272,-12539, - -31028,-10532,-31028,-10532,-31028,-10532,-31028,-10532, - -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480, - -32137,-6392,-32137,-6392,-32137,-6392,-32137,-6392, - -32486,-4276,-32486,-4276,-32486,-4276,-32486,-4276, - -32696,-2143,-32696,-2143,-32696,-2143,-32696,-2143 - }; - -static int16_t twc192[376]__attribute__((aligned(32))) = {32609,-3211,32609,-3211,32609,-3211,32609,-3211, - 32137,-6392,32137,-6392,32137,-6392,32137,-6392, - 31356,-9511,31356,-9511,31356,-9511,31356,-9511, - 30272,-12539,30272,-12539,30272,-12539,30272,-12539, - 28897,-15446,28897,-15446,28897,-15446,28897,-15446, - 27244,-18204,27244,-18204,27244,-18204,27244,-18204, - 25329,-20787,25329,-20787,25329,-20787,25329,-20787, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 20787,-25329,20787,-25329,20787,-25329,20787,-25329, - 18204,-27244,18204,-27244,18204,-27244,18204,-27244, - 15446,-28897,15446,-28897,15446,-28897,15446,-28897, - 12539,-30272,12539,-30272,12539,-30272,12539,-30272, - 9511,-31356,9511,-31356,9511,-31356,9511,-31356, - 6392,-32137,6392,-32137,6392,-32137,6392,-32137, - 3211,-32609,3211,-32609,3211,-32609,3211,-32609, - 0,-32767,0,-32767,0,-32767,0,-32767, - -3211,-32609,-3211,-32609,-3211,-32609,-3211,-32609, - -6392,-32137,-6392,-32137,-6392,-32137,-6392,-32137, - -9511,-31356,-9511,-31356,-9511,-31356,-9511,-31356, - -12539,-30272,-12539,-30272,-12539,-30272,-12539,-30272, - -15446,-28897,-15446,-28897,-15446,-28897,-15446,-28897, - -18204,-27244,-18204,-27244,-18204,-27244,-18204,-27244, - -20787,-25329,-20787,-25329,-20787,-25329,-20787,-25329, - -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169, - -25329,-20787,-25329,-20787,-25329,-20787,-25329,-20787, - -27244,-18204,-27244,-18204,-27244,-18204,-27244,-18204, - -28897,-15446,-28897,-15446,-28897,-15446,-28897,-15446, - -30272,-12539,-30272,-12539,-30272,-12539,-30272,-12539, - -31356,-9511,-31356,-9511,-31356,-9511,-31356,-9511, - -32137,-6392,-32137,-6392,-32137,-6392,-32137,-6392, - -32609,-3211,-32609,-3211,-32609,-3211,-32609,-3211, - -32767,0,-32767,0,-32767,0,-32767,0, - -32609,3211,-32609,3211,-32609,3211,-32609,3211, - -32137,6392,-32137,6392,-32137,6392,-32137,6392, - -31356,9511,-31356,9511,-31356,9511,-31356,9511, - -30272,12539,-30272,12539,-30272,12539,-30272,12539, - -28897,15446,-28897,15446,-28897,15446,-28897,15446, - -27244,18204,-27244,18204,-27244,18204,-27244,18204, - -25329,20787,-25329,20787,-25329,20787,-25329,20787, - -23169,23169,-23169,23169,-23169,23169,-23169,23169, - -20787,25329,-20787,25329,-20787,25329,-20787,25329, - -18204,27244,-18204,27244,-18204,27244,-18204,27244, - -15446,28897,-15446,28897,-15446,28897,-15446,28897, - -12539,30272,-12539,30272,-12539,30272,-12539,30272, - -9511,31356,-9511,31356,-9511,31356,-9511,31356, - -6392,32137,-6392,32137,-6392,32137,-6392,32137, - -3211,32609,-3211,32609,-3211,32609,-3211,32609 - }; +static int16_t twa192[376]__attribute__((aligned(32))); +static int16_t twb192[376]__attribute__((aligned(32))); +static int16_t twc192[376]__attribute__((aligned(32))); void dft192(int16_t *x,int16_t *y,unsigned char scale_flag) { @@ -7790,151 +7295,8 @@ void dft192(int16_t *x,int16_t *y,unsigned char scale_flag) } -static int16_t twa216[568]__attribute__((aligned(32))) = {32753,-953,32753,-953,32753,-953,32753,-953, - 32711,-1905,32711,-1905,32711,-1905,32711,-1905, - 32642,-2855,32642,-2855,32642,-2855,32642,-2855, - 32545,-3804,32545,-3804,32545,-3804,32545,-3804, - 32421,-4748,32421,-4748,32421,-4748,32421,-4748, - 32269,-5689,32269,-5689,32269,-5689,32269,-5689, - 32090,-6626,32090,-6626,32090,-6626,32090,-6626, - 31883,-7556,31883,-7556,31883,-7556,31883,-7556, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 31390,-9397,31390,-9397,31390,-9397,31390,-9397, - 31103,-10306,31103,-10306,31103,-10306,31103,-10306, - 30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 30451,-12097,30451,-12097,30451,-12097,30451,-12097, - 30087,-12978,30087,-12978,30087,-12978,30087,-12978, - 29696,-13847,29696,-13847,29696,-13847,29696,-13847, - 29281,-14705,29281,-14705,29281,-14705,29281,-14705, - 28841,-15551,28841,-15551,28841,-15551,28841,-15551, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 27888,-17201,27888,-17201,27888,-17201,27888,-17201, - 27376,-18005,27376,-18005,27376,-18005,27376,-18005, - 26841,-18794,26841,-18794,26841,-18794,26841,-18794, - 26283,-19567,26283,-19567,26283,-19567,26283,-19567, - 25702,-20323,25702,-20323,25702,-20323,25702,-20323, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 24477,-21783,24477,-21783,24477,-21783,24477,-21783, - 23833,-22486,23833,-22486,23833,-22486,23833,-22486, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 22486,-23833,22486,-23833,22486,-23833,22486,-23833, - 21783,-24477,21783,-24477,21783,-24477,21783,-24477, - 21062,-25100,21062,-25100,21062,-25100,21062,-25100, - 20323,-25702,20323,-25702,20323,-25702,20323,-25702, - 19567,-26283,19567,-26283,19567,-26283,19567,-26283, - 18794,-26841,18794,-26841,18794,-26841,18794,-26841, - 18005,-27376,18005,-27376,18005,-27376,18005,-27376, - 17201,-27888,17201,-27888,17201,-27888,17201,-27888, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 15551,-28841,15551,-28841,15551,-28841,15551,-28841, - 14705,-29281,14705,-29281,14705,-29281,14705,-29281, - 13847,-29696,13847,-29696,13847,-29696,13847,-29696, - 12978,-30087,12978,-30087,12978,-30087,12978,-30087, - 12097,-30451,12097,-30451,12097,-30451,12097,-30451, - 11206,-30790,11206,-30790,11206,-30790,11206,-30790, - 10306,-31103,10306,-31103,10306,-31103,10306,-31103, - 9397,-31390,9397,-31390,9397,-31390,9397,-31390, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 7556,-31883,7556,-31883,7556,-31883,7556,-31883, - 6626,-32090,6626,-32090,6626,-32090,6626,-32090, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - 4748,-32421,4748,-32421,4748,-32421,4748,-32421, - 3804,-32545,3804,-32545,3804,-32545,3804,-32545, - 2855,-32642,2855,-32642,2855,-32642,2855,-32642, - 1905,-32711,1905,-32711,1905,-32711,1905,-32711, - 953,-32753,953,-32753,953,-32753,953,-32753, - 0,-32767,0,-32767,0,-32767,0,-32767, - -953,-32753,-953,-32753,-953,-32753,-953,-32753, - -1905,-32711,-1905,-32711,-1905,-32711,-1905,-32711, - -2855,-32642,-2855,-32642,-2855,-32642,-2855,-32642, - -3804,-32545,-3804,-32545,-3804,-32545,-3804,-32545, - -4748,-32421,-4748,-32421,-4748,-32421,-4748,-32421, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -6626,-32090,-6626,-32090,-6626,-32090,-6626,-32090, - -7556,-31883,-7556,-31883,-7556,-31883,-7556,-31883, - -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650, - -9397,-31390,-9397,-31390,-9397,-31390,-9397,-31390, - -10306,-31103,-10306,-31103,-10306,-31103,-10306,-31103, - -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790, - -12097,-30451,-12097,-30451,-12097,-30451,-12097,-30451, - -12978,-30087,-12978,-30087,-12978,-30087,-12978,-30087, - -13847,-29696,-13847,-29696,-13847,-29696,-13847,-29696, - -14705,-29281,-14705,-29281,-14705,-29281,-14705,-29281, - -15551,-28841,-15551,-28841,-15551,-28841,-15551,-28841 - }; - -static int16_t twb216[568]__attribute__((aligned(32))) = {32711,-1905,32711,-1905,32711,-1905,32711,-1905, - 32545,-3804,32545,-3804,32545,-3804,32545,-3804, - 32269,-5689,32269,-5689,32269,-5689,32269,-5689, - 31883,-7556,31883,-7556,31883,-7556,31883,-7556, - 31390,-9397,31390,-9397,31390,-9397,31390,-9397, - 30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 30087,-12978,30087,-12978,30087,-12978,30087,-12978, - 29281,-14705,29281,-14705,29281,-14705,29281,-14705, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 27376,-18005,27376,-18005,27376,-18005,27376,-18005, - 26283,-19567,26283,-19567,26283,-19567,26283,-19567, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 23833,-22486,23833,-22486,23833,-22486,23833,-22486, - 22486,-23833,22486,-23833,22486,-23833,22486,-23833, - 21062,-25100,21062,-25100,21062,-25100,21062,-25100, - 19567,-26283,19567,-26283,19567,-26283,19567,-26283, - 18005,-27376,18005,-27376,18005,-27376,18005,-27376, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 14705,-29281,14705,-29281,14705,-29281,14705,-29281, - 12978,-30087,12978,-30087,12978,-30087,12978,-30087, - 11206,-30790,11206,-30790,11206,-30790,11206,-30790, - 9397,-31390,9397,-31390,9397,-31390,9397,-31390, - 7556,-31883,7556,-31883,7556,-31883,7556,-31883, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - 3804,-32545,3804,-32545,3804,-32545,3804,-32545, - 1905,-32711,1905,-32711,1905,-32711,1905,-32711, - 0,-32767,0,-32767,0,-32767,0,-32767, - -1905,-32711,-1905,-32711,-1905,-32711,-1905,-32711, - -3804,-32545,-3804,-32545,-3804,-32545,-3804,-32545, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -7556,-31883,-7556,-31883,-7556,-31883,-7556,-31883, - -9397,-31390,-9397,-31390,-9397,-31390,-9397,-31390, - -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790, - -12978,-30087,-12978,-30087,-12978,-30087,-12978,-30087, - -14705,-29281,-14705,-29281,-14705,-29281,-14705,-29281, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -18005,-27376,-18005,-27376,-18005,-27376,-18005,-27376, - -19567,-26283,-19567,-26283,-19567,-26283,-19567,-26283, - -21062,-25100,-21062,-25100,-21062,-25100,-21062,-25100, - -22486,-23833,-22486,-23833,-22486,-23833,-22486,-23833, - -23833,-22486,-23833,-22486,-23833,-22486,-23833,-22486, - -25100,-21062,-25100,-21062,-25100,-21062,-25100,-21062, - -26283,-19567,-26283,-19567,-26283,-19567,-26283,-19567, - -27376,-18005,-27376,-18005,-27376,-18005,-27376,-18005, - -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383, - -29281,-14705,-29281,-14705,-29281,-14705,-29281,-14705, - -30087,-12978,-30087,-12978,-30087,-12978,-30087,-12978, - -30790,-11206,-30790,-11206,-30790,-11206,-30790,-11206, - -31390,-9397,-31390,-9397,-31390,-9397,-31390,-9397, - -31883,-7556,-31883,-7556,-31883,-7556,-31883,-7556, - -32269,-5689,-32269,-5689,-32269,-5689,-32269,-5689, - -32545,-3804,-32545,-3804,-32545,-3804,-32545,-3804, - -32711,-1905,-32711,-1905,-32711,-1905,-32711,-1905, - -32767,0,-32767,0,-32767,0,-32767,0, - -32711,1905,-32711,1905,-32711,1905,-32711,1905, - -32545,3804,-32545,3804,-32545,3804,-32545,3804, - -32269,5689,-32269,5689,-32269,5689,-32269,5689, - -31883,7556,-31883,7556,-31883,7556,-31883,7556, - -31390,9397,-31390,9397,-31390,9397,-31390,9397, - -30790,11206,-30790,11206,-30790,11206,-30790,11206, - -30087,12978,-30087,12978,-30087,12978,-30087,12978, - -29281,14705,-29281,14705,-29281,14705,-29281,14705, - -28377,16383,-28377,16383,-28377,16383,-28377,16383, - -27376,18005,-27376,18005,-27376,18005,-27376,18005, - -26283,19567,-26283,19567,-26283,19567,-26283,19567, - -25100,21062,-25100,21062,-25100,21062,-25100,21062, - -23833,22486,-23833,22486,-23833,22486,-23833,22486, - -22486,23833,-22486,23833,-22486,23833,-22486,23833, - -21062,25100,-21062,25100,-21062,25100,-21062,25100, - -19567,26283,-19567,26283,-19567,26283,-19567,26283, - -18005,27376,-18005,27376,-18005,27376,-18005,27376 - }; +static int16_t twa216[568]__attribute__((aligned(32))); +static int16_t twb216[568]__attribute__((aligned(32))); void dft216(int16_t *x,int16_t *y,unsigned char scale_flag) { @@ -7985,188 +7347,9 @@ void dft216(int16_t *x,int16_t *y,unsigned char scale_flag) } -static int16_t twa240[472]__attribute__((aligned(32))) = {32755,-857,32755,-857,32755,-857,32755,-857, - 32722,-1714,32722,-1714,32722,-1714,32722,-1714, - 32665,-2570,32665,-2570,32665,-2570,32665,-2570, - 32587,-3425,32587,-3425,32587,-3425,32587,-3425, - 32486,-4276,32486,-4276,32486,-4276,32486,-4276, - 32363,-5125,32363,-5125,32363,-5125,32363,-5125, - 32218,-5971,32218,-5971,32218,-5971,32218,-5971, - 32050,-6812,32050,-6812,32050,-6812,32050,-6812, - 31861,-7649,31861,-7649,31861,-7649,31861,-7649, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 31417,-9306,31417,-9306,31417,-9306,31417,-9306, - 31163,-10125,31163,-10125,31163,-10125,31163,-10125, - 30887,-10937,30887,-10937,30887,-10937,30887,-10937, - 30590,-11742,30590,-11742,30590,-11742,30590,-11742, - 30272,-12539,30272,-12539,30272,-12539,30272,-12539, - 29934,-13327,29934,-13327,29934,-13327,29934,-13327, - 29575,-14106,29575,-14106,29575,-14106,29575,-14106, - 29195,-14875,29195,-14875,29195,-14875,29195,-14875, - 28796,-15635,28796,-15635,28796,-15635,28796,-15635, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 27938,-17120,27938,-17120,27938,-17120,27938,-17120, - 27480,-17846,27480,-17846,27480,-17846,27480,-17846, - 27004,-18559,27004,-18559,27004,-18559,27004,-18559, - 26509,-19259,26509,-19259,26509,-19259,26509,-19259, - 25995,-19947,25995,-19947,25995,-19947,25995,-19947, - 25464,-20620,25464,-20620,25464,-20620,25464,-20620, - 24916,-21280,24916,-21280,24916,-21280,24916,-21280, - 24350,-21925,24350,-21925,24350,-21925,24350,-21925, - 23768,-22555,23768,-22555,23768,-22555,23768,-22555, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 22555,-23768,22555,-23768,22555,-23768,22555,-23768, - 21925,-24350,21925,-24350,21925,-24350,21925,-24350, - 21280,-24916,21280,-24916,21280,-24916,21280,-24916, - 20620,-25464,20620,-25464,20620,-25464,20620,-25464, - 19947,-25995,19947,-25995,19947,-25995,19947,-25995, - 19259,-26509,19259,-26509,19259,-26509,19259,-26509, - 18559,-27004,18559,-27004,18559,-27004,18559,-27004, - 17846,-27480,17846,-27480,17846,-27480,17846,-27480, - 17120,-27938,17120,-27938,17120,-27938,17120,-27938, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 15635,-28796,15635,-28796,15635,-28796,15635,-28796, - 14875,-29195,14875,-29195,14875,-29195,14875,-29195, - 14106,-29575,14106,-29575,14106,-29575,14106,-29575, - 13327,-29934,13327,-29934,13327,-29934,13327,-29934, - 12539,-30272,12539,-30272,12539,-30272,12539,-30272, - 11742,-30590,11742,-30590,11742,-30590,11742,-30590, - 10937,-30887,10937,-30887,10937,-30887,10937,-30887, - 10125,-31163,10125,-31163,10125,-31163,10125,-31163, - 9306,-31417,9306,-31417,9306,-31417,9306,-31417, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 7649,-31861,7649,-31861,7649,-31861,7649,-31861, - 6812,-32050,6812,-32050,6812,-32050,6812,-32050, - 5971,-32218,5971,-32218,5971,-32218,5971,-32218, - 5125,-32363,5125,-32363,5125,-32363,5125,-32363, - 4276,-32486,4276,-32486,4276,-32486,4276,-32486, - 3425,-32587,3425,-32587,3425,-32587,3425,-32587, - 2570,-32665,2570,-32665,2570,-32665,2570,-32665, - 1714,-32722,1714,-32722,1714,-32722,1714,-32722, - 857,-32755,857,-32755,857,-32755,857,-32755 - }; - -static int16_t twb240[472]__attribute__((aligned(32))) = {32722,-1714,32722,-1714,32722,-1714,32722,-1714, - 32587,-3425,32587,-3425,32587,-3425,32587,-3425, - 32363,-5125,32363,-5125,32363,-5125,32363,-5125, - 32050,-6812,32050,-6812,32050,-6812,32050,-6812, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 31163,-10125,31163,-10125,31163,-10125,31163,-10125, - 30590,-11742,30590,-11742,30590,-11742,30590,-11742, - 29934,-13327,29934,-13327,29934,-13327,29934,-13327, - 29195,-14875,29195,-14875,29195,-14875,29195,-14875, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 27480,-17846,27480,-17846,27480,-17846,27480,-17846, - 26509,-19259,26509,-19259,26509,-19259,26509,-19259, - 25464,-20620,25464,-20620,25464,-20620,25464,-20620, - 24350,-21925,24350,-21925,24350,-21925,24350,-21925, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 21925,-24350,21925,-24350,21925,-24350,21925,-24350, - 20620,-25464,20620,-25464,20620,-25464,20620,-25464, - 19259,-26509,19259,-26509,19259,-26509,19259,-26509, - 17846,-27480,17846,-27480,17846,-27480,17846,-27480, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 14875,-29195,14875,-29195,14875,-29195,14875,-29195, - 13327,-29934,13327,-29934,13327,-29934,13327,-29934, - 11742,-30590,11742,-30590,11742,-30590,11742,-30590, - 10125,-31163,10125,-31163,10125,-31163,10125,-31163, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 6812,-32050,6812,-32050,6812,-32050,6812,-32050, - 5125,-32363,5125,-32363,5125,-32363,5125,-32363, - 3425,-32587,3425,-32587,3425,-32587,3425,-32587, - 1714,-32722,1714,-32722,1714,-32722,1714,-32722, - 0,-32767,0,-32767,0,-32767,0,-32767, - -1714,-32722,-1714,-32722,-1714,-32722,-1714,-32722, - -3425,-32587,-3425,-32587,-3425,-32587,-3425,-32587, - -5125,-32363,-5125,-32363,-5125,-32363,-5125,-32363, - -6812,-32050,-6812,-32050,-6812,-32050,-6812,-32050, - -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650, - -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163, - -11742,-30590,-11742,-30590,-11742,-30590,-11742,-30590, - -13327,-29934,-13327,-29934,-13327,-29934,-13327,-29934, - -14875,-29195,-14875,-29195,-14875,-29195,-14875,-29195, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -17846,-27480,-17846,-27480,-17846,-27480,-17846,-27480, - -19259,-26509,-19259,-26509,-19259,-26509,-19259,-26509, - -20620,-25464,-20620,-25464,-20620,-25464,-20620,-25464, - -21925,-24350,-21925,-24350,-21925,-24350,-21925,-24350, - -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169, - -24350,-21925,-24350,-21925,-24350,-21925,-24350,-21925, - -25464,-20620,-25464,-20620,-25464,-20620,-25464,-20620, - -26509,-19259,-26509,-19259,-26509,-19259,-26509,-19259, - -27480,-17846,-27480,-17846,-27480,-17846,-27480,-17846, - -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383, - -29195,-14875,-29195,-14875,-29195,-14875,-29195,-14875, - -29934,-13327,-29934,-13327,-29934,-13327,-29934,-13327, - -30590,-11742,-30590,-11742,-30590,-11742,-30590,-11742, - -31163,-10125,-31163,-10125,-31163,-10125,-31163,-10125, - -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480, - -32050,-6812,-32050,-6812,-32050,-6812,-32050,-6812, - -32363,-5125,-32363,-5125,-32363,-5125,-32363,-5125, - -32587,-3425,-32587,-3425,-32587,-3425,-32587,-3425, - -32722,-1714,-32722,-1714,-32722,-1714,-32722,-1714 - }; - -static int16_t twc240[472]__attribute__((aligned(32))) = {32665,-2570,32665,-2570,32665,-2570,32665,-2570, - 32363,-5125,32363,-5125,32363,-5125,32363,-5125, - 31861,-7649,31861,-7649,31861,-7649,31861,-7649, - 31163,-10125,31163,-10125,31163,-10125,31163,-10125, - 30272,-12539,30272,-12539,30272,-12539,30272,-12539, - 29195,-14875,29195,-14875,29195,-14875,29195,-14875, - 27938,-17120,27938,-17120,27938,-17120,27938,-17120, - 26509,-19259,26509,-19259,26509,-19259,26509,-19259, - 24916,-21280,24916,-21280,24916,-21280,24916,-21280, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 21280,-24916,21280,-24916,21280,-24916,21280,-24916, - 19259,-26509,19259,-26509,19259,-26509,19259,-26509, - 17120,-27938,17120,-27938,17120,-27938,17120,-27938, - 14875,-29195,14875,-29195,14875,-29195,14875,-29195, - 12539,-30272,12539,-30272,12539,-30272,12539,-30272, - 10125,-31163,10125,-31163,10125,-31163,10125,-31163, - 7649,-31861,7649,-31861,7649,-31861,7649,-31861, - 5125,-32363,5125,-32363,5125,-32363,5125,-32363, - 2570,-32665,2570,-32665,2570,-32665,2570,-32665, - 0,-32767,0,-32767,0,-32767,0,-32767, - -2570,-32665,-2570,-32665,-2570,-32665,-2570,-32665, - -5125,-32363,-5125,-32363,-5125,-32363,-5125,-32363, - -7649,-31861,-7649,-31861,-7649,-31861,-7649,-31861, - -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163, - -12539,-30272,-12539,-30272,-12539,-30272,-12539,-30272, - -14875,-29195,-14875,-29195,-14875,-29195,-14875,-29195, - -17120,-27938,-17120,-27938,-17120,-27938,-17120,-27938, - -19259,-26509,-19259,-26509,-19259,-26509,-19259,-26509, - -21280,-24916,-21280,-24916,-21280,-24916,-21280,-24916, - -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169, - -24916,-21280,-24916,-21280,-24916,-21280,-24916,-21280, - -26509,-19259,-26509,-19259,-26509,-19259,-26509,-19259, - -27938,-17120,-27938,-17120,-27938,-17120,-27938,-17120, - -29195,-14875,-29195,-14875,-29195,-14875,-29195,-14875, - -30272,-12539,-30272,-12539,-30272,-12539,-30272,-12539, - -31163,-10125,-31163,-10125,-31163,-10125,-31163,-10125, - -31861,-7649,-31861,-7649,-31861,-7649,-31861,-7649, - -32363,-5125,-32363,-5125,-32363,-5125,-32363,-5125, - -32665,-2570,-32665,-2570,-32665,-2570,-32665,-2570, - -32767,0,-32767,0,-32767,0,-32767,0, - -32665,2570,-32665,2570,-32665,2570,-32665,2570, - -32363,5125,-32363,5125,-32363,5125,-32363,5125, - -31861,7649,-31861,7649,-31861,7649,-31861,7649, - -31163,10125,-31163,10125,-31163,10125,-31163,10125, - -30272,12539,-30272,12539,-30272,12539,-30272,12539, - -29195,14875,-29195,14875,-29195,14875,-29195,14875, - -27938,17120,-27938,17120,-27938,17120,-27938,17120, - -26509,19259,-26509,19259,-26509,19259,-26509,19259, - -24916,21280,-24916,21280,-24916,21280,-24916,21280, - -23169,23169,-23169,23169,-23169,23169,-23169,23169, - -21280,24916,-21280,24916,-21280,24916,-21280,24916, - -19259,26509,-19259,26509,-19259,26509,-19259,26509, - -17120,27938,-17120,27938,-17120,27938,-17120,27938, - -14875,29195,-14875,29195,-14875,29195,-14875,29195, - -12539,30272,-12539,30272,-12539,30272,-12539,30272, - -10125,31163,-10125,31163,-10125,31163,-10125,31163, - -7649,31861,-7649,31861,-7649,31861,-7649,31861, - -5125,32363,-5125,32363,-5125,32363,-5125,32363, - -2570,32665,-2570,32665,-2570,32665,-2570,32665 - }; +static int16_t twa240[472]__attribute__((aligned(32))); +static int16_t twb240[472]__attribute__((aligned(32))); +static int16_t twc240[472]__attribute__((aligned(32))); void dft240(int16_t *x,int16_t *y,unsigned char scale_flag) { @@ -8223,211 +7406,8 @@ void dft240(int16_t *x,int16_t *y,unsigned char scale_flag) } -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:95)/288)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*(2:2:190)/288)); -twa2 = zeros(1,191); -twb2 = zeros(1,191); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); - - - */ -static int16_t twa288[760]__attribute__((aligned(32))) = {32759,-714,32759,-714,32759,-714,32759,-714, - 32735,-1429,32735,-1429,32735,-1429,32735,-1429, - 32696,-2143,32696,-2143,32696,-2143,32696,-2143, - 32642,-2855,32642,-2855,32642,-2855,32642,-2855, - 32572,-3567,32572,-3567,32572,-3567,32572,-3567, - 32486,-4276,32486,-4276,32486,-4276,32486,-4276, - 32385,-4984,32385,-4984,32385,-4984,32385,-4984, - 32269,-5689,32269,-5689,32269,-5689,32269,-5689, - 32137,-6392,32137,-6392,32137,-6392,32137,-6392, - 31990,-7092,31990,-7092,31990,-7092,31990,-7092, - 31827,-7788,31827,-7788,31827,-7788,31827,-7788, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 31457,-9169,31457,-9169,31457,-9169,31457,-9169, - 31250,-9853,31250,-9853,31250,-9853,31250,-9853, - 31028,-10532,31028,-10532,31028,-10532,31028,-10532, - 30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 30539,-11876,30539,-11876,30539,-11876,30539,-11876, - 30272,-12539,30272,-12539,30272,-12539,30272,-12539, - 29992,-13196,29992,-13196,29992,-13196,29992,-13196, - 29696,-13847,29696,-13847,29696,-13847,29696,-13847, - 29387,-14492,29387,-14492,29387,-14492,29387,-14492, - 29064,-15130,29064,-15130,29064,-15130,29064,-15130, - 28727,-15760,28727,-15760,28727,-15760,28727,-15760, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 28012,-16998,28012,-16998,28012,-16998,28012,-16998, - 27635,-17605,27635,-17605,27635,-17605,27635,-17605, - 27244,-18204,27244,-18204,27244,-18204,27244,-18204, - 26841,-18794,26841,-18794,26841,-18794,26841,-18794, - 26424,-19375,26424,-19375,26424,-19375,26424,-19375, - 25995,-19947,25995,-19947,25995,-19947,25995,-19947, - 25554,-20509,25554,-20509,25554,-20509,25554,-20509, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 24635,-21604,24635,-21604,24635,-21604,24635,-21604, - 24158,-22137,24158,-22137,24158,-22137,24158,-22137, - 23669,-22658,23669,-22658,23669,-22658,23669,-22658, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 22658,-23669,22658,-23669,22658,-23669,22658,-23669, - 22137,-24158,22137,-24158,22137,-24158,22137,-24158, - 21604,-24635,21604,-24635,21604,-24635,21604,-24635, - 21062,-25100,21062,-25100,21062,-25100,21062,-25100, - 20509,-25554,20509,-25554,20509,-25554,20509,-25554, - 19947,-25995,19947,-25995,19947,-25995,19947,-25995, - 19375,-26424,19375,-26424,19375,-26424,19375,-26424, - 18794,-26841,18794,-26841,18794,-26841,18794,-26841, - 18204,-27244,18204,-27244,18204,-27244,18204,-27244, - 17605,-27635,17605,-27635,17605,-27635,17605,-27635, - 16998,-28012,16998,-28012,16998,-28012,16998,-28012, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 15760,-28727,15760,-28727,15760,-28727,15760,-28727, - 15130,-29064,15130,-29064,15130,-29064,15130,-29064, - 14492,-29387,14492,-29387,14492,-29387,14492,-29387, - 13847,-29696,13847,-29696,13847,-29696,13847,-29696, - 13196,-29992,13196,-29992,13196,-29992,13196,-29992, - 12539,-30272,12539,-30272,12539,-30272,12539,-30272, - 11876,-30539,11876,-30539,11876,-30539,11876,-30539, - 11206,-30790,11206,-30790,11206,-30790,11206,-30790, - 10532,-31028,10532,-31028,10532,-31028,10532,-31028, - 9853,-31250,9853,-31250,9853,-31250,9853,-31250, - 9169,-31457,9169,-31457,9169,-31457,9169,-31457, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 7788,-31827,7788,-31827,7788,-31827,7788,-31827, - 7092,-31990,7092,-31990,7092,-31990,7092,-31990, - 6392,-32137,6392,-32137,6392,-32137,6392,-32137, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - 4984,-32385,4984,-32385,4984,-32385,4984,-32385, - 4276,-32486,4276,-32486,4276,-32486,4276,-32486, - 3567,-32572,3567,-32572,3567,-32572,3567,-32572, - 2855,-32642,2855,-32642,2855,-32642,2855,-32642, - 2143,-32696,2143,-32696,2143,-32696,2143,-32696, - 1429,-32735,1429,-32735,1429,-32735,1429,-32735, - 714,-32759,714,-32759,714,-32759,714,-32759, - 0,-32767,0,-32767,0,-32767,0,-32767, - -714,-32759,-714,-32759,-714,-32759,-714,-32759, - -1429,-32735,-1429,-32735,-1429,-32735,-1429,-32735, - -2143,-32696,-2143,-32696,-2143,-32696,-2143,-32696, - -2855,-32642,-2855,-32642,-2855,-32642,-2855,-32642, - -3567,-32572,-3567,-32572,-3567,-32572,-3567,-32572, - -4276,-32486,-4276,-32486,-4276,-32486,-4276,-32486, - -4984,-32385,-4984,-32385,-4984,-32385,-4984,-32385, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -6392,-32137,-6392,-32137,-6392,-32137,-6392,-32137, - -7092,-31990,-7092,-31990,-7092,-31990,-7092,-31990, - -7788,-31827,-7788,-31827,-7788,-31827,-7788,-31827, - -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650, - -9169,-31457,-9169,-31457,-9169,-31457,-9169,-31457, - -9853,-31250,-9853,-31250,-9853,-31250,-9853,-31250, - -10532,-31028,-10532,-31028,-10532,-31028,-10532,-31028, - -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790, - -11876,-30539,-11876,-30539,-11876,-30539,-11876,-30539, - -12539,-30272,-12539,-30272,-12539,-30272,-12539,-30272, - -13196,-29992,-13196,-29992,-13196,-29992,-13196,-29992, - -13847,-29696,-13847,-29696,-13847,-29696,-13847,-29696, - -14492,-29387,-14492,-29387,-14492,-29387,-14492,-29387, - -15130,-29064,-15130,-29064,-15130,-29064,-15130,-29064, - -15760,-28727,-15760,-28727,-15760,-28727,-15760,-28727 - }; - -static int16_t twb288[760]__attribute__((aligned(32))) = {32735,-1429,32735,-1429,32735,-1429,32735,-1429, - 32642,-2855,32642,-2855,32642,-2855,32642,-2855, - 32486,-4276,32486,-4276,32486,-4276,32486,-4276, - 32269,-5689,32269,-5689,32269,-5689,32269,-5689, - 31990,-7092,31990,-7092,31990,-7092,31990,-7092, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 31250,-9853,31250,-9853,31250,-9853,31250,-9853, - 30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 30272,-12539,30272,-12539,30272,-12539,30272,-12539, - 29696,-13847,29696,-13847,29696,-13847,29696,-13847, - 29064,-15130,29064,-15130,29064,-15130,29064,-15130, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 27635,-17605,27635,-17605,27635,-17605,27635,-17605, - 26841,-18794,26841,-18794,26841,-18794,26841,-18794, - 25995,-19947,25995,-19947,25995,-19947,25995,-19947, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 24158,-22137,24158,-22137,24158,-22137,24158,-22137, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 22137,-24158,22137,-24158,22137,-24158,22137,-24158, - 21062,-25100,21062,-25100,21062,-25100,21062,-25100, - 19947,-25995,19947,-25995,19947,-25995,19947,-25995, - 18794,-26841,18794,-26841,18794,-26841,18794,-26841, - 17605,-27635,17605,-27635,17605,-27635,17605,-27635, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 15130,-29064,15130,-29064,15130,-29064,15130,-29064, - 13847,-29696,13847,-29696,13847,-29696,13847,-29696, - 12539,-30272,12539,-30272,12539,-30272,12539,-30272, - 11206,-30790,11206,-30790,11206,-30790,11206,-30790, - 9853,-31250,9853,-31250,9853,-31250,9853,-31250, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 7092,-31990,7092,-31990,7092,-31990,7092,-31990, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - 4276,-32486,4276,-32486,4276,-32486,4276,-32486, - 2855,-32642,2855,-32642,2855,-32642,2855,-32642, - 1429,-32735,1429,-32735,1429,-32735,1429,-32735, - 0,-32767,0,-32767,0,-32767,0,-32767, - -1429,-32735,-1429,-32735,-1429,-32735,-1429,-32735, - -2855,-32642,-2855,-32642,-2855,-32642,-2855,-32642, - -4276,-32486,-4276,-32486,-4276,-32486,-4276,-32486, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -7092,-31990,-7092,-31990,-7092,-31990,-7092,-31990, - -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650, - -9853,-31250,-9853,-31250,-9853,-31250,-9853,-31250, - -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790, - -12539,-30272,-12539,-30272,-12539,-30272,-12539,-30272, - -13847,-29696,-13847,-29696,-13847,-29696,-13847,-29696, - -15130,-29064,-15130,-29064,-15130,-29064,-15130,-29064, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -17605,-27635,-17605,-27635,-17605,-27635,-17605,-27635, - -18794,-26841,-18794,-26841,-18794,-26841,-18794,-26841, - -19947,-25995,-19947,-25995,-19947,-25995,-19947,-25995, - -21062,-25100,-21062,-25100,-21062,-25100,-21062,-25100, - -22137,-24158,-22137,-24158,-22137,-24158,-22137,-24158, - -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169, - -24158,-22137,-24158,-22137,-24158,-22137,-24158,-22137, - -25100,-21062,-25100,-21062,-25100,-21062,-25100,-21062, - -25995,-19947,-25995,-19947,-25995,-19947,-25995,-19947, - -26841,-18794,-26841,-18794,-26841,-18794,-26841,-18794, - -27635,-17605,-27635,-17605,-27635,-17605,-27635,-17605, - -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383, - -29064,-15130,-29064,-15130,-29064,-15130,-29064,-15130, - -29696,-13847,-29696,-13847,-29696,-13847,-29696,-13847, - -30272,-12539,-30272,-12539,-30272,-12539,-30272,-12539, - -30790,-11206,-30790,-11206,-30790,-11206,-30790,-11206, - -31250,-9853,-31250,-9853,-31250,-9853,-31250,-9853, - -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480, - -31990,-7092,-31990,-7092,-31990,-7092,-31990,-7092, - -32269,-5689,-32269,-5689,-32269,-5689,-32269,-5689, - -32486,-4276,-32486,-4276,-32486,-4276,-32486,-4276, - -32642,-2855,-32642,-2855,-32642,-2855,-32642,-2855, - -32735,-1429,-32735,-1429,-32735,-1429,-32735,-1429, - -32767,0,-32767,0,-32767,0,-32767,0, - -32735,1429,-32735,1429,-32735,1429,-32735,1429, - -32642,2855,-32642,2855,-32642,2855,-32642,2855, - -32486,4276,-32486,4276,-32486,4276,-32486,4276, - -32269,5689,-32269,5689,-32269,5689,-32269,5689, - -31990,7092,-31990,7092,-31990,7092,-31990,7092, - -31650,8480,-31650,8480,-31650,8480,-31650,8480, - -31250,9853,-31250,9853,-31250,9853,-31250,9853, - -30790,11206,-30790,11206,-30790,11206,-30790,11206, - -30272,12539,-30272,12539,-30272,12539,-30272,12539, - -29696,13847,-29696,13847,-29696,13847,-29696,13847, - -29064,15130,-29064,15130,-29064,15130,-29064,15130, - -28377,16383,-28377,16383,-28377,16383,-28377,16383, - -27635,17605,-27635,17605,-27635,17605,-27635,17605, - -26841,18794,-26841,18794,-26841,18794,-26841,18794, - -25995,19947,-25995,19947,-25995,19947,-25995,19947, - -25100,21062,-25100,21062,-25100,21062,-25100,21062, - -24158,22137,-24158,22137,-24158,22137,-24158,22137, - -23169,23169,-23169,23169,-23169,23169,-23169,23169, - -22137,24158,-22137,24158,-22137,24158,-22137,24158, - -21062,25100,-21062,25100,-21062,25100,-21062,25100, - -19947,25995,-19947,25995,-19947,25995,-19947,25995, - -18794,26841,-18794,26841,-18794,26841,-18794,26841, - -17605,27635,-17605,27635,-17605,27635,-17605,27635 - }; +static int16_t twa288[760]__attribute__((aligned(32))); +static int16_t twb288[760]__attribute__((aligned(32))); void dft288(int16_t *x,int16_t *y,unsigned char scale_flag) { @@ -8478,249 +7458,10 @@ void dft288(int16_t *x,int16_t *y,unsigned char scale_flag) } -static int16_t twa300[472]__attribute__((aligned(32))) = {32759,-686,32759,-686,32759,-686,32759,-686, - 32738,-1372,32738,-1372,32738,-1372,32738,-1372, - 32702,-2057,32702,-2057,32702,-2057,32702,-2057, - 32652,-2741,32652,-2741,32652,-2741,32652,-2741, - 32587,-3425,32587,-3425,32587,-3425,32587,-3425, - 32508,-4106,32508,-4106,32508,-4106,32508,-4106, - 32415,-4786,32415,-4786,32415,-4786,32415,-4786, - 32308,-5464,32308,-5464,32308,-5464,32308,-5464, - 32186,-6139,32186,-6139,32186,-6139,32186,-6139, - 32050,-6812,32050,-6812,32050,-6812,32050,-6812, - 31901,-7482,31901,-7482,31901,-7482,31901,-7482, - 31737,-8148,31737,-8148,31737,-8148,31737,-8148, - 31559,-8811,31559,-8811,31559,-8811,31559,-8811, - 31368,-9470,31368,-9470,31368,-9470,31368,-9470, - 31163,-10125,31163,-10125,31163,-10125,31163,-10125, - 30944,-10775,30944,-10775,30944,-10775,30944,-10775, - 30711,-11421,30711,-11421,30711,-11421,30711,-11421, - 30465,-12062,30465,-12062,30465,-12062,30465,-12062, - 30206,-12697,30206,-12697,30206,-12697,30206,-12697, - 29934,-13327,29934,-13327,29934,-13327,29934,-13327, - 29648,-13951,29648,-13951,29648,-13951,29648,-13951, - 29349,-14569,29349,-14569,29349,-14569,29349,-14569, - 29038,-15180,29038,-15180,29038,-15180,29038,-15180, - 28713,-15785,28713,-15785,28713,-15785,28713,-15785, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 28027,-16974,28027,-16974,28027,-16974,28027,-16974, - 27666,-17557,27666,-17557,27666,-17557,27666,-17557, - 27292,-18132,27292,-18132,27292,-18132,27292,-18132, - 26906,-18700,26906,-18700,26906,-18700,26906,-18700, - 26509,-19259,26509,-19259,26509,-19259,26509,-19259, - 26099,-19810,26099,-19810,26099,-19810,26099,-19810, - 25679,-20353,25679,-20353,25679,-20353,25679,-20353, - 25247,-20886,25247,-20886,25247,-20886,25247,-20886, - 24804,-21410,24804,-21410,24804,-21410,24804,-21410, - 24350,-21925,24350,-21925,24350,-21925,24350,-21925, - 23886,-22430,23886,-22430,23886,-22430,23886,-22430, - 23411,-22925,23411,-22925,23411,-22925,23411,-22925, - 22925,-23411,22925,-23411,22925,-23411,22925,-23411, - 22430,-23886,22430,-23886,22430,-23886,22430,-23886, - 21925,-24350,21925,-24350,21925,-24350,21925,-24350, - 21410,-24804,21410,-24804,21410,-24804,21410,-24804, - 20886,-25247,20886,-25247,20886,-25247,20886,-25247, - 20353,-25679,20353,-25679,20353,-25679,20353,-25679, - 19810,-26099,19810,-26099,19810,-26099,19810,-26099, - 19259,-26509,19259,-26509,19259,-26509,19259,-26509, - 18700,-26906,18700,-26906,18700,-26906,18700,-26906, - 18132,-27292,18132,-27292,18132,-27292,18132,-27292, - 17557,-27666,17557,-27666,17557,-27666,17557,-27666, - 16974,-28027,16974,-28027,16974,-28027,16974,-28027, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 15785,-28713,15785,-28713,15785,-28713,15785,-28713, - 15180,-29038,15180,-29038,15180,-29038,15180,-29038, - 14569,-29349,14569,-29349,14569,-29349,14569,-29349, - 13951,-29648,13951,-29648,13951,-29648,13951,-29648, - 13327,-29934,13327,-29934,13327,-29934,13327,-29934, - 12697,-30206,12697,-30206,12697,-30206,12697,-30206, - 12062,-30465,12062,-30465,12062,-30465,12062,-30465, - 11421,-30711,11421,-30711,11421,-30711,11421,-30711, - 10775,-30944,10775,-30944,10775,-30944,10775,-30944 - }; - -static int16_t twb300[472]__attribute__((aligned(32))) = {32738,-1372,32738,-1372,32738,-1372,32738,-1372, - 32652,-2741,32652,-2741,32652,-2741,32652,-2741, - 32508,-4106,32508,-4106,32508,-4106,32508,-4106, - 32308,-5464,32308,-5464,32308,-5464,32308,-5464, - 32050,-6812,32050,-6812,32050,-6812,32050,-6812, - 31737,-8148,31737,-8148,31737,-8148,31737,-8148, - 31368,-9470,31368,-9470,31368,-9470,31368,-9470, - 30944,-10775,30944,-10775,30944,-10775,30944,-10775, - 30465,-12062,30465,-12062,30465,-12062,30465,-12062, - 29934,-13327,29934,-13327,29934,-13327,29934,-13327, - 29349,-14569,29349,-14569,29349,-14569,29349,-14569, - 28713,-15785,28713,-15785,28713,-15785,28713,-15785, - 28027,-16974,28027,-16974,28027,-16974,28027,-16974, - 27292,-18132,27292,-18132,27292,-18132,27292,-18132, - 26509,-19259,26509,-19259,26509,-19259,26509,-19259, - 25679,-20353,25679,-20353,25679,-20353,25679,-20353, - 24804,-21410,24804,-21410,24804,-21410,24804,-21410, - 23886,-22430,23886,-22430,23886,-22430,23886,-22430, - 22925,-23411,22925,-23411,22925,-23411,22925,-23411, - 21925,-24350,21925,-24350,21925,-24350,21925,-24350, - 20886,-25247,20886,-25247,20886,-25247,20886,-25247, - 19810,-26099,19810,-26099,19810,-26099,19810,-26099, - 18700,-26906,18700,-26906,18700,-26906,18700,-26906, - 17557,-27666,17557,-27666,17557,-27666,17557,-27666, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 15180,-29038,15180,-29038,15180,-29038,15180,-29038, - 13951,-29648,13951,-29648,13951,-29648,13951,-29648, - 12697,-30206,12697,-30206,12697,-30206,12697,-30206, - 11421,-30711,11421,-30711,11421,-30711,11421,-30711, - 10125,-31163,10125,-31163,10125,-31163,10125,-31163, - 8811,-31559,8811,-31559,8811,-31559,8811,-31559, - 7482,-31901,7482,-31901,7482,-31901,7482,-31901, - 6139,-32186,6139,-32186,6139,-32186,6139,-32186, - 4786,-32415,4786,-32415,4786,-32415,4786,-32415, - 3425,-32587,3425,-32587,3425,-32587,3425,-32587, - 2057,-32702,2057,-32702,2057,-32702,2057,-32702, - 686,-32759,686,-32759,686,-32759,686,-32759, - -686,-32759,-686,-32759,-686,-32759,-686,-32759, - -2057,-32702,-2057,-32702,-2057,-32702,-2057,-32702, - -3425,-32587,-3425,-32587,-3425,-32587,-3425,-32587, - -4786,-32415,-4786,-32415,-4786,-32415,-4786,-32415, - -6139,-32186,-6139,-32186,-6139,-32186,-6139,-32186, - -7482,-31901,-7482,-31901,-7482,-31901,-7482,-31901, - -8811,-31559,-8811,-31559,-8811,-31559,-8811,-31559, - -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163, - -11421,-30711,-11421,-30711,-11421,-30711,-11421,-30711, - -12697,-30206,-12697,-30206,-12697,-30206,-12697,-30206, - -13951,-29648,-13951,-29648,-13951,-29648,-13951,-29648, - -15180,-29038,-15180,-29038,-15180,-29038,-15180,-29038, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -17557,-27666,-17557,-27666,-17557,-27666,-17557,-27666, - -18700,-26906,-18700,-26906,-18700,-26906,-18700,-26906, - -19810,-26099,-19810,-26099,-19810,-26099,-19810,-26099, - -20886,-25247,-20886,-25247,-20886,-25247,-20886,-25247, - -21925,-24350,-21925,-24350,-21925,-24350,-21925,-24350, - -22925,-23411,-22925,-23411,-22925,-23411,-22925,-23411, - -23886,-22430,-23886,-22430,-23886,-22430,-23886,-22430, - -24804,-21410,-24804,-21410,-24804,-21410,-24804,-21410, - -25679,-20353,-25679,-20353,-25679,-20353,-25679,-20353 - }; - -static int16_t twc300[472]__attribute__((aligned(32))) = {32702,-2057,32702,-2057,32702,-2057,32702,-2057, - 32508,-4106,32508,-4106,32508,-4106,32508,-4106, - 32186,-6139,32186,-6139,32186,-6139,32186,-6139, - 31737,-8148,31737,-8148,31737,-8148,31737,-8148, - 31163,-10125,31163,-10125,31163,-10125,31163,-10125, - 30465,-12062,30465,-12062,30465,-12062,30465,-12062, - 29648,-13951,29648,-13951,29648,-13951,29648,-13951, - 28713,-15785,28713,-15785,28713,-15785,28713,-15785, - 27666,-17557,27666,-17557,27666,-17557,27666,-17557, - 26509,-19259,26509,-19259,26509,-19259,26509,-19259, - 25247,-20886,25247,-20886,25247,-20886,25247,-20886, - 23886,-22430,23886,-22430,23886,-22430,23886,-22430, - 22430,-23886,22430,-23886,22430,-23886,22430,-23886, - 20886,-25247,20886,-25247,20886,-25247,20886,-25247, - 19259,-26509,19259,-26509,19259,-26509,19259,-26509, - 17557,-27666,17557,-27666,17557,-27666,17557,-27666, - 15785,-28713,15785,-28713,15785,-28713,15785,-28713, - 13951,-29648,13951,-29648,13951,-29648,13951,-29648, - 12062,-30465,12062,-30465,12062,-30465,12062,-30465, - 10125,-31163,10125,-31163,10125,-31163,10125,-31163, - 8148,-31737,8148,-31737,8148,-31737,8148,-31737, - 6139,-32186,6139,-32186,6139,-32186,6139,-32186, - 4106,-32508,4106,-32508,4106,-32508,4106,-32508, - 2057,-32702,2057,-32702,2057,-32702,2057,-32702, - 0,-32767,0,-32767,0,-32767,0,-32767, - -2057,-32702,-2057,-32702,-2057,-32702,-2057,-32702, - -4106,-32508,-4106,-32508,-4106,-32508,-4106,-32508, - -6139,-32186,-6139,-32186,-6139,-32186,-6139,-32186, - -8148,-31737,-8148,-31737,-8148,-31737,-8148,-31737, - -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163, - -12062,-30465,-12062,-30465,-12062,-30465,-12062,-30465, - -13951,-29648,-13951,-29648,-13951,-29648,-13951,-29648, - -15785,-28713,-15785,-28713,-15785,-28713,-15785,-28713, - -17557,-27666,-17557,-27666,-17557,-27666,-17557,-27666, - -19259,-26509,-19259,-26509,-19259,-26509,-19259,-26509, - -20886,-25247,-20886,-25247,-20886,-25247,-20886,-25247, - -22430,-23886,-22430,-23886,-22430,-23886,-22430,-23886, - -23886,-22430,-23886,-22430,-23886,-22430,-23886,-22430, - -25247,-20886,-25247,-20886,-25247,-20886,-25247,-20886, - -26509,-19259,-26509,-19259,-26509,-19259,-26509,-19259, - -27666,-17557,-27666,-17557,-27666,-17557,-27666,-17557, - -28713,-15785,-28713,-15785,-28713,-15785,-28713,-15785, - -29648,-13951,-29648,-13951,-29648,-13951,-29648,-13951, - -30465,-12062,-30465,-12062,-30465,-12062,-30465,-12062, - -31163,-10125,-31163,-10125,-31163,-10125,-31163,-10125, - -31737,-8148,-31737,-8148,-31737,-8148,-31737,-8148, - -32186,-6139,-32186,-6139,-32186,-6139,-32186,-6139, - -32508,-4106,-32508,-4106,-32508,-4106,-32508,-4106, - -32702,-2057,-32702,-2057,-32702,-2057,-32702,-2057, - -32767,0,-32767,0,-32767,0,-32767,0, - -32702,2057,-32702,2057,-32702,2057,-32702,2057, - -32508,4106,-32508,4106,-32508,4106,-32508,4106, - -32186,6139,-32186,6139,-32186,6139,-32186,6139, - -31737,8148,-31737,8148,-31737,8148,-31737,8148, - -31163,10125,-31163,10125,-31163,10125,-31163,10125, - -30465,12062,-30465,12062,-30465,12062,-30465,12062, - -29648,13951,-29648,13951,-29648,13951,-29648,13951, - -28713,15785,-28713,15785,-28713,15785,-28713,15785, - -27666,17557,-27666,17557,-27666,17557,-27666,17557 - }; - -static int16_t twd300[472]__attribute__((aligned(32))) = {32652,-2741,32652,-2741,32652,-2741,32652,-2741, - 32308,-5464,32308,-5464,32308,-5464,32308,-5464, - 31737,-8148,31737,-8148,31737,-8148,31737,-8148, - 30944,-10775,30944,-10775,30944,-10775,30944,-10775, - 29934,-13327,29934,-13327,29934,-13327,29934,-13327, - 28713,-15785,28713,-15785,28713,-15785,28713,-15785, - 27292,-18132,27292,-18132,27292,-18132,27292,-18132, - 25679,-20353,25679,-20353,25679,-20353,25679,-20353, - 23886,-22430,23886,-22430,23886,-22430,23886,-22430, - 21925,-24350,21925,-24350,21925,-24350,21925,-24350, - 19810,-26099,19810,-26099,19810,-26099,19810,-26099, - 17557,-27666,17557,-27666,17557,-27666,17557,-27666, - 15180,-29038,15180,-29038,15180,-29038,15180,-29038, - 12697,-30206,12697,-30206,12697,-30206,12697,-30206, - 10125,-31163,10125,-31163,10125,-31163,10125,-31163, - 7482,-31901,7482,-31901,7482,-31901,7482,-31901, - 4786,-32415,4786,-32415,4786,-32415,4786,-32415, - 2057,-32702,2057,-32702,2057,-32702,2057,-32702, - -686,-32759,-686,-32759,-686,-32759,-686,-32759, - -3425,-32587,-3425,-32587,-3425,-32587,-3425,-32587, - -6139,-32186,-6139,-32186,-6139,-32186,-6139,-32186, - -8811,-31559,-8811,-31559,-8811,-31559,-8811,-31559, - -11421,-30711,-11421,-30711,-11421,-30711,-11421,-30711, - -13951,-29648,-13951,-29648,-13951,-29648,-13951,-29648, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -18700,-26906,-18700,-26906,-18700,-26906,-18700,-26906, - -20886,-25247,-20886,-25247,-20886,-25247,-20886,-25247, - -22925,-23411,-22925,-23411,-22925,-23411,-22925,-23411, - -24804,-21410,-24804,-21410,-24804,-21410,-24804,-21410, - -26509,-19259,-26509,-19259,-26509,-19259,-26509,-19259, - -28027,-16974,-28027,-16974,-28027,-16974,-28027,-16974, - -29349,-14569,-29349,-14569,-29349,-14569,-29349,-14569, - -30465,-12062,-30465,-12062,-30465,-12062,-30465,-12062, - -31368,-9470,-31368,-9470,-31368,-9470,-31368,-9470, - -32050,-6812,-32050,-6812,-32050,-6812,-32050,-6812, - -32508,-4106,-32508,-4106,-32508,-4106,-32508,-4106, - -32738,-1372,-32738,-1372,-32738,-1372,-32738,-1372, - -32738,1372,-32738,1372,-32738,1372,-32738,1372, - -32508,4106,-32508,4106,-32508,4106,-32508,4106, - -32050,6812,-32050,6812,-32050,6812,-32050,6812, - -31368,9470,-31368,9470,-31368,9470,-31368,9470, - -30465,12062,-30465,12062,-30465,12062,-30465,12062, - -29349,14569,-29349,14569,-29349,14569,-29349,14569, - -28027,16974,-28027,16974,-28027,16974,-28027,16974, - -26509,19259,-26509,19259,-26509,19259,-26509,19259, - -24804,21410,-24804,21410,-24804,21410,-24804,21410, - -22925,23411,-22925,23411,-22925,23411,-22925,23411, - -20886,25247,-20886,25247,-20886,25247,-20886,25247, - -18700,26906,-18700,26906,-18700,26906,-18700,26906, - -16383,28377,-16383,28377,-16383,28377,-16383,28377, - -13951,29648,-13951,29648,-13951,29648,-13951,29648, - -11421,30711,-11421,30711,-11421,30711,-11421,30711, - -8811,31559,-8811,31559,-8811,31559,-8811,31559, - -6139,32186,-6139,32186,-6139,32186,-6139,32186, - -3425,32587,-3425,32587,-3425,32587,-3425,32587, - -686,32759,-686,32759,-686,32759,-686,32759, - 2057,32702,2057,32702,2057,32702,2057,32702, - 4786,32415,4786,32415,4786,32415,4786,32415, - 7482,31901,7482,31901,7482,31901,7482,31901 - }; +static int16_t twa300[472]__attribute__((aligned(32))); +static int16_t twb300[472]__attribute__((aligned(32))); +static int16_t twc300[472]__attribute__((aligned(32))); +static int16_t twd300[472]__attribute__((aligned(32))); void dft300(int16_t *x,int16_t *y,unsigned char scale_flag) { @@ -8783,246 +7524,8 @@ void dft300(int16_t *x,int16_t *y,unsigned char scale_flag) } -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:107)/324)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:107)/324)); -twa2 = zeros(1,2*107); -twb2 = zeros(1,2*107); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa324[107*2*4] = {"); -for i=1:2:(2*106) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"static int16_t twb324[107*2*4] = {"); -for i=1:2:(2*106) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fclose(fd); - */ -static int16_t twa324[107*2*4] = {32760,-636,32760,-636,32760,-636,32760,-636, - 32742,-1271,32742,-1271,32742,-1271,32742,-1271, - 32711,-1906,32711,-1906,32711,-1906,32711,-1906, - 32668,-2540,32668,-2540,32668,-2540,32668,-2540, - 32613,-3173,32613,-3173,32613,-3173,32613,-3173, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32465,-4435,32465,-4435,32465,-4435,32465,-4435, - 32373,-5064,32373,-5064,32373,-5064,32373,-5064, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32152,-6315,32152,-6315,32152,-6315,32152,-6315, - 32024,-6937,32024,-6937,32024,-6937,32024,-6937, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31731,-8174,31731,-8174,31731,-8174,31731,-8174, - 31566,-8788,31566,-8788,31566,-8788,31566,-8788, - 31390,-9398,31390,-9398,31390,-9398,31390,-9398, - 31202,-10005,31202,-10005,31202,-10005,31202,-10005, - 31002,-10608,31002,-10608,31002,-10608,31002,-10608, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30567,-11802,30567,-11802,30567,-11802,30567,-11802, - 30333,-12393,30333,-12393,30333,-12393,30333,-12393, - 30087,-12979,30087,-12979,30087,-12979,30087,-12979, - 29829,-13560,29829,-13560,29829,-13560,29829,-13560, - 29561,-14136,29561,-14136,29561,-14136,29561,-14136, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 28990,-15271,28990,-15271,28990,-15271,28990,-15271, - 28689,-15831,28689,-15831,28689,-15831,28689,-15831, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28054,-16931,28054,-16931,28054,-16931,28054,-16931, - 27720,-17472,27720,-17472,27720,-17472,27720,-17472, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 27022,-18534,27022,-18534,27022,-18534,27022,-18534, - 26657,-19054,26657,-19054,26657,-19054,26657,-19054, - 26283,-19568,26283,-19568,26283,-19568,26283,-19568, - 25898,-20074,25898,-20074,25898,-20074,25898,-20074, - 25504,-20572,25504,-20572,25504,-20572,25504,-20572, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24687,-21546,24687,-21546,24687,-21546,24687,-21546, - 24265,-22020,24265,-22020,24265,-22020,24265,-22020, - 23833,-22487,23833,-22487,23833,-22487,23833,-22487, - 23393,-22945,23393,-22945,23393,-22945,23393,-22945, - 22944,-23394,22944,-23394,22944,-23394,22944,-23394, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 22019,-24266,22019,-24266,22019,-24266,22019,-24266, - 21545,-24688,21545,-24688,21545,-24688,21545,-24688, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20571,-25505,20571,-25505,20571,-25505,20571,-25505, - 20073,-25899,20073,-25899,20073,-25899,20073,-25899, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 19053,-26658,19053,-26658,19053,-26658,19053,-26658, - 18533,-27023,18533,-27023,18533,-27023,18533,-27023, - 18005,-27377,18005,-27377,18005,-27377,18005,-27377, - 17471,-27721,17471,-27721,17471,-27721,17471,-27721, - 16930,-28055,16930,-28055,16930,-28055,16930,-28055, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15830,-28690,15830,-28690,15830,-28690,15830,-28690, - 15270,-28991,15270,-28991,15270,-28991,15270,-28991, - 14705,-29282,14705,-29282,14705,-29282,14705,-29282, - 14135,-29562,14135,-29562,14135,-29562,14135,-29562, - 13559,-29830,13559,-29830,13559,-29830,13559,-29830, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12392,-30334,12392,-30334,12392,-30334,12392,-30334, - 11801,-30568,11801,-30568,11801,-30568,11801,-30568, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10607,-31003,10607,-31003,10607,-31003,10607,-31003, - 10004,-31203,10004,-31203,10004,-31203,10004,-31203, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 8787,-31567,8787,-31567,8787,-31567,8787,-31567, - 8173,-31732,8173,-31732,8173,-31732,8173,-31732, - 7556,-31884,7556,-31884,7556,-31884,7556,-31884, - 6936,-32025,6936,-32025,6936,-32025,6936,-32025, - 6314,-32153,6314,-32153,6314,-32153,6314,-32153, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5063,-32374,5063,-32374,5063,-32374,5063,-32374, - 4434,-32466,4434,-32466,4434,-32466,4434,-32466, - 3804,-32546,3804,-32546,3804,-32546,3804,-32546, - 3172,-32614,3172,-32614,3172,-32614,3172,-32614, - 2539,-32669,2539,-32669,2539,-32669,2539,-32669, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 1270,-32743,1270,-32743,1270,-32743,1270,-32743, - 635,-32761,635,-32761,635,-32761,635,-32761, - 0,-32767,0,-32767,0,-32767,0,-32767, - -636,-32761,-636,-32761,-636,-32761,-636,-32761, - -1271,-32743,-1271,-32743,-1271,-32743,-1271,-32743, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -2540,-32669,-2540,-32669,-2540,-32669,-2540,-32669, - -3173,-32614,-3173,-32614,-3173,-32614,-3173,-32614, - -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546, - -4435,-32466,-4435,-32466,-4435,-32466,-4435,-32466, - -5064,-32374,-5064,-32374,-5064,-32374,-5064,-32374, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6315,-32153,-6315,-32153,-6315,-32153,-6315,-32153, - -6937,-32025,-6937,-32025,-6937,-32025,-6937,-32025, - -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884, - -8174,-31732,-8174,-31732,-8174,-31732,-8174,-31732, - -8788,-31567,-8788,-31567,-8788,-31567,-8788,-31567, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -10005,-31203,-10005,-31203,-10005,-31203,-10005,-31203, - -10608,-31003,-10608,-31003,-10608,-31003,-10608,-31003, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11802,-30568,-11802,-30568,-11802,-30568,-11802,-30568, - -12393,-30334,-12393,-30334,-12393,-30334,-12393,-30334, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -13560,-29830,-13560,-29830,-13560,-29830,-13560,-29830, - -14136,-29562,-14136,-29562,-14136,-29562,-14136,-29562, - -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282, - -15271,-28991,-15271,-28991,-15271,-28991,-15271,-28991, - -15831,-28690,-15831,-28690,-15831,-28690,-15831,-28690 - }; -static int16_t twb324[107*2*4] = {32742,-1271,32742,-1271,32742,-1271,32742,-1271, - 32668,-2540,32668,-2540,32668,-2540,32668,-2540, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32373,-5064,32373,-5064,32373,-5064,32373,-5064, - 32152,-6315,32152,-6315,32152,-6315,32152,-6315, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31566,-8788,31566,-8788,31566,-8788,31566,-8788, - 31202,-10005,31202,-10005,31202,-10005,31202,-10005, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30333,-12393,30333,-12393,30333,-12393,30333,-12393, - 29829,-13560,29829,-13560,29829,-13560,29829,-13560, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 28689,-15831,28689,-15831,28689,-15831,28689,-15831, - 28054,-16931,28054,-16931,28054,-16931,28054,-16931, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 26657,-19054,26657,-19054,26657,-19054,26657,-19054, - 25898,-20074,25898,-20074,25898,-20074,25898,-20074, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24265,-22020,24265,-22020,24265,-22020,24265,-22020, - 23393,-22945,23393,-22945,23393,-22945,23393,-22945, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 21545,-24688,21545,-24688,21545,-24688,21545,-24688, - 20571,-25505,20571,-25505,20571,-25505,20571,-25505, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 18533,-27023,18533,-27023,18533,-27023,18533,-27023, - 17471,-27721,17471,-27721,17471,-27721,17471,-27721, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15270,-28991,15270,-28991,15270,-28991,15270,-28991, - 14135,-29562,14135,-29562,14135,-29562,14135,-29562, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 11801,-30568,11801,-30568,11801,-30568,11801,-30568, - 10607,-31003,10607,-31003,10607,-31003,10607,-31003, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 8173,-31732,8173,-31732,8173,-31732,8173,-31732, - 6936,-32025,6936,-32025,6936,-32025,6936,-32025, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 4434,-32466,4434,-32466,4434,-32466,4434,-32466, - 3172,-32614,3172,-32614,3172,-32614,3172,-32614, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 635,-32761,635,-32761,635,-32761,635,-32761, - -636,-32761,-636,-32761,-636,-32761,-636,-32761, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -3173,-32614,-3173,-32614,-3173,-32614,-3173,-32614, - -4435,-32466,-4435,-32466,-4435,-32466,-4435,-32466, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6937,-32025,-6937,-32025,-6937,-32025,-6937,-32025, - -8174,-31732,-8174,-31732,-8174,-31732,-8174,-31732, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -10608,-31003,-10608,-31003,-10608,-31003,-10608,-31003, - -11802,-30568,-11802,-30568,-11802,-30568,-11802,-30568, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -14136,-29562,-14136,-29562,-14136,-29562,-14136,-29562, - -15271,-28991,-15271,-28991,-15271,-28991,-15271,-28991, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -17472,-27721,-17472,-27721,-17472,-27721,-17472,-27721, - -18534,-27023,-18534,-27023,-18534,-27023,-18534,-27023, - -19568,-26284,-19568,-26284,-19568,-26284,-19568,-26284, - -20572,-25505,-20572,-25505,-20572,-25505,-20572,-25505, - -21546,-24688,-21546,-24688,-21546,-24688,-21546,-24688, - -22487,-23834,-22487,-23834,-22487,-23834,-22487,-23834, - -23394,-22945,-23394,-22945,-23394,-22945,-23394,-22945, - -24266,-22020,-24266,-22020,-24266,-22020,-24266,-22020, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25899,-20074,-25899,-20074,-25899,-20074,-25899,-20074, - -26658,-19054,-26658,-19054,-26658,-19054,-26658,-19054, - -27377,-18006,-27377,-18006,-27377,-18006,-27377,-18006, - -28055,-16931,-28055,-16931,-28055,-16931,-28055,-16931, - -28690,-15831,-28690,-15831,-28690,-15831,-28690,-15831, - -29282,-14706,-29282,-14706,-29282,-14706,-29282,-14706, - -29830,-13560,-29830,-13560,-29830,-13560,-29830,-13560, - -30334,-12393,-30334,-12393,-30334,-12393,-30334,-12393, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -31203,-10005,-31203,-10005,-31203,-10005,-31203,-10005, - -31567,-8788,-31567,-8788,-31567,-8788,-31567,-8788, - -31884,-7557,-31884,-7557,-31884,-7557,-31884,-7557, - -32153,-6315,-32153,-6315,-32153,-6315,-32153,-6315, - -32374,-5064,-32374,-5064,-32374,-5064,-32374,-5064, - -32546,-3805,-32546,-3805,-32546,-3805,-32546,-3805, - -32669,-2540,-32669,-2540,-32669,-2540,-32669,-2540, - -32743,-1271,-32743,-1271,-32743,-1271,-32743,-1271, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32743,1270,-32743,1270,-32743,1270,-32743,1270, - -32669,2539,-32669,2539,-32669,2539,-32669,2539, - -32546,3804,-32546,3804,-32546,3804,-32546,3804, - -32374,5063,-32374,5063,-32374,5063,-32374,5063, - -32153,6314,-32153,6314,-32153,6314,-32153,6314, - -31884,7556,-31884,7556,-31884,7556,-31884,7556, - -31567,8787,-31567,8787,-31567,8787,-31567,8787, - -31203,10004,-31203,10004,-31203,10004,-31203,10004, - -30791,11206,-30791,11206,-30791,11206,-30791,11206, - -30334,12392,-30334,12392,-30334,12392,-30334,12392, - -29830,13559,-29830,13559,-29830,13559,-29830,13559, - -29282,14705,-29282,14705,-29282,14705,-29282,14705, - -28690,15830,-28690,15830,-28690,15830,-28690,15830, - -28055,16930,-28055,16930,-28055,16930,-28055,16930, - -27377,18005,-27377,18005,-27377,18005,-27377,18005, - -26658,19053,-26658,19053,-26658,19053,-26658,19053, - -25899,20073,-25899,20073,-25899,20073,-25899,20073, - -25101,21062,-25101,21062,-25101,21062,-25101,21062, - -24266,22019,-24266,22019,-24266,22019,-24266,22019, - -23394,22944,-23394,22944,-23394,22944,-23394,22944, - -22487,23833,-22487,23833,-22487,23833,-22487,23833, - -21546,24687,-21546,24687,-21546,24687,-21546,24687, - -20572,25504,-20572,25504,-20572,25504,-20572,25504, - -19568,26283,-19568,26283,-19568,26283,-19568,26283, - -18534,27022,-18534,27022,-18534,27022,-18534,27022, - -17472,27720,-17472,27720,-17472,27720,-17472,27720 - }; +static int16_t twa324[107*2*4]; +static int16_t twb324[107*2*4]; void dft324(int16_t *x,int16_t *y,unsigned char scale_flag) // 108 x 3 { @@ -9072,271 +7575,8 @@ void dft324(int16_t *x,int16_t *y,unsigned char scale_flag) // 108 x 3 }; -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:119)/360)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:119)/360)); -twa2 = zeros(1,2*119); -twb2 = zeros(1,2*119); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa360[119*2*4] = {"); -for i=1:2:(2*118) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"static int16_t twb360[119*2*4] = {"); -for i=1:2:(2*118) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fclose(fd); - */ -static int16_t twa360[119*2*4] = {32762,-572,32762,-572,32762,-572,32762,-572, - 32747,-1144,32747,-1144,32747,-1144,32747,-1144, - 32722,-1715,32722,-1715,32722,-1715,32722,-1715, - 32687,-2286,32687,-2286,32687,-2286,32687,-2286, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32522,-3994,32522,-3994,32522,-3994,32522,-3994, - 32448,-4561,32448,-4561,32448,-4561,32448,-4561, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32164,-6253,32164,-6253,32164,-6253,32164,-6253, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31927,-7371,31927,-7371,31927,-7371,31927,-7371, - 31793,-7928,31793,-7928,31793,-7928,31793,-7928, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31497,-9032,31497,-9032,31497,-9032,31497,-9032, - 31335,-9581,31335,-9581,31335,-9581,31335,-9581, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 30981,-10668,30981,-10668,30981,-10668,30981,-10668, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30590,-11743,30590,-11743,30590,-11743,30590,-11743, - 30381,-12275,30381,-12275,30381,-12275,30381,-12275, - 30162,-12804,30162,-12804,30162,-12804,30162,-12804, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29450,-14365,29450,-14365,29450,-14365,29450,-14365, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 28931,-15384,28931,-15384,28931,-15384,28931,-15384, - 28658,-15886,28658,-15886,28658,-15886,28658,-15886, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28086,-16877,28086,-16877,28086,-16877,28086,-16877, - 27787,-17364,27787,-17364,27787,-17364,27787,-17364, - 27480,-17847,27480,-17847,27480,-17847,27480,-17847, - 27165,-18324,27165,-18324,27165,-18324,27165,-18324, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26168,-19720,26168,-19720,26168,-19720,26168,-19720, - 25820,-20174,25820,-20174,25820,-20174,25820,-20174, - 25464,-20621,25464,-20621,25464,-20621,25464,-20621, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24729,-21498,24729,-21498,24729,-21498,24729,-21498, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 23964,-22348,23964,-22348,23964,-22348,23964,-22348, - 23570,-22762,23570,-22762,23570,-22762,23570,-22762, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22761,-23571,22761,-23571,22761,-23571,22761,-23571, - 22347,-23965,22347,-23965,22347,-23965,22347,-23965, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21497,-24730,21497,-24730,21497,-24730,21497,-24730, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20620,-25465,20620,-25465,20620,-25465,20620,-25465, - 20173,-25821,20173,-25821,20173,-25821,20173,-25821, - 19719,-26169,19719,-26169,19719,-26169,19719,-26169, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18323,-27166,18323,-27166,18323,-27166,18323,-27166, - 17846,-27481,17846,-27481,17846,-27481,17846,-27481, - 17363,-27788,17363,-27788,17363,-27788,17363,-27788, - 16876,-28087,16876,-28087,16876,-28087,16876,-28087, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15885,-28659,15885,-28659,15885,-28659,15885,-28659, - 15383,-28932,15383,-28932,15383,-28932,15383,-28932, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14364,-29451,14364,-29451,14364,-29451,14364,-29451, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 12803,-30163,12803,-30163,12803,-30163,12803,-30163, - 12274,-30382,12274,-30382,12274,-30382,12274,-30382, - 11742,-30591,11742,-30591,11742,-30591,11742,-30591, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10667,-30982,10667,-30982,10667,-30982,10667,-30982, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9580,-31336,9580,-31336,9580,-31336,9580,-31336, - 9031,-31498,9031,-31498,9031,-31498,9031,-31498, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 7927,-31794,7927,-31794,7927,-31794,7927,-31794, - 7370,-31928,7370,-31928,7370,-31928,7370,-31928, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6252,-32165,6252,-32165,6252,-32165,6252,-32165, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4560,-32449,4560,-32449,4560,-32449,4560,-32449, - 3993,-32523,3993,-32523,3993,-32523,3993,-32523, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 2285,-32688,2285,-32688,2285,-32688,2285,-32688, - 1714,-32723,1714,-32723,1714,-32723,1714,-32723, - 1143,-32748,1143,-32748,1143,-32748,1143,-32748, - 571,-32763,571,-32763,571,-32763,571,-32763, - 0,-32767,0,-32767,0,-32767,0,-32767, - -572,-32763,-572,-32763,-572,-32763,-572,-32763, - -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748, - -1715,-32723,-1715,-32723,-1715,-32723,-1715,-32723, - -2286,-32688,-2286,-32688,-2286,-32688,-2286,-32688, - -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -3994,-32523,-3994,-32523,-3994,-32523,-3994,-32523, - -4561,-32449,-4561,-32449,-4561,-32449,-4561,-32449, - -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6253,-32165,-6253,-32165,-6253,-32165,-6253,-32165, - -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051, - -7371,-31928,-7371,-31928,-7371,-31928,-7371,-31928, - -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -9032,-31498,-9032,-31498,-9032,-31498,-9032,-31498, - -9581,-31336,-9581,-31336,-9581,-31336,-9581,-31336, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10668,-30982,-10668,-30982,-10668,-30982,-10668,-30982, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11743,-30591,-11743,-30591,-11743,-30591,-11743,-30591, - -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382, - -12804,-30163,-12804,-30163,-12804,-30163,-12804,-30163, - -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935, - -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697, - -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451, - -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196, - -15384,-28932,-15384,-28932,-15384,-28932,-15384,-28932, - -15886,-28659,-15886,-28659,-15886,-28659,-15886,-28659 - }; -static int16_t twb360[119*2*4] = {32747,-1144,32747,-1144,32747,-1144,32747,-1144, - 32687,-2286,32687,-2286,32687,-2286,32687,-2286, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32448,-4561,32448,-4561,32448,-4561,32448,-4561, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31793,-7928,31793,-7928,31793,-7928,31793,-7928, - 31497,-9032,31497,-9032,31497,-9032,31497,-9032, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30381,-12275,30381,-12275,30381,-12275,30381,-12275, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29450,-14365,29450,-14365,29450,-14365,29450,-14365, - 28931,-15384,28931,-15384,28931,-15384,28931,-15384, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 27787,-17364,27787,-17364,27787,-17364,27787,-17364, - 27165,-18324,27165,-18324,27165,-18324,27165,-18324, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 25820,-20174,25820,-20174,25820,-20174,25820,-20174, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 23570,-22762,23570,-22762,23570,-22762,23570,-22762, - 22761,-23571,22761,-23571,22761,-23571,22761,-23571, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20173,-25821,20173,-25821,20173,-25821,20173,-25821, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18323,-27166,18323,-27166,18323,-27166,18323,-27166, - 17363,-27788,17363,-27788,17363,-27788,17363,-27788, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15383,-28932,15383,-28932,15383,-28932,15383,-28932, - 14364,-29451,14364,-29451,14364,-29451,14364,-29451, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 12274,-30382,12274,-30382,12274,-30382,12274,-30382, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9031,-31498,9031,-31498,9031,-31498,9031,-31498, - 7927,-31794,7927,-31794,7927,-31794,7927,-31794, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 4560,-32449,4560,-32449,4560,-32449,4560,-32449, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 2285,-32688,2285,-32688,2285,-32688,2285,-32688, - 1143,-32748,1143,-32748,1143,-32748,1143,-32748, - 0,-32767,0,-32767,0,-32767,0,-32767, - -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748, - -2286,-32688,-2286,-32688,-2286,-32688,-2286,-32688, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -4561,-32449,-4561,-32449,-4561,-32449,-4561,-32449, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051, - -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794, - -9032,-31498,-9032,-31498,-9032,-31498,-9032,-31498, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382, - -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935, - -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451, - -15384,-28932,-15384,-28932,-15384,-28932,-15384,-28932, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -17364,-27788,-17364,-27788,-17364,-27788,-17364,-27788, - -18324,-27166,-18324,-27166,-18324,-27166,-18324,-27166, - -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510, - -20174,-25821,-20174,-25821,-20174,-25821,-20174,-25821, - -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101, - -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351, - -22762,-23571,-22762,-23571,-22762,-23571,-22762,-23571, - -23571,-22762,-23571,-22762,-23571,-22762,-23571,-22762, - -24351,-21926,-24351,-21926,-24351,-21926,-24351,-21926, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25821,-20174,-25821,-20174,-25821,-20174,-25821,-20174, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -27166,-18324,-27166,-18324,-27166,-18324,-27166,-18324, - -27788,-17364,-27788,-17364,-27788,-17364,-27788,-17364, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28932,-15384,-28932,-15384,-28932,-15384,-28932,-15384, - -29451,-14365,-29451,-14365,-29451,-14365,-29451,-14365, - -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328, - -30382,-12275,-30382,-12275,-30382,-12275,-30382,-12275, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126, - -31498,-9032,-31498,-9032,-31498,-9032,-31498,-9032, - -31794,-7928,-31794,-7928,-31794,-7928,-31794,-7928, - -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813, - -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690, - -32449,-4561,-32449,-4561,-32449,-4561,-32449,-4561, - -32588,-3426,-32588,-3426,-32588,-3426,-32588,-3426, - -32688,-2286,-32688,-2286,-32688,-2286,-32688,-2286, - -32748,-1144,-32748,-1144,-32748,-1144,-32748,-1144, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32748,1143,-32748,1143,-32748,1143,-32748,1143, - -32688,2285,-32688,2285,-32688,2285,-32688,2285, - -32588,3425,-32588,3425,-32588,3425,-32588,3425, - -32449,4560,-32449,4560,-32449,4560,-32449,4560, - -32270,5689,-32270,5689,-32270,5689,-32270,5689, - -32051,6812,-32051,6812,-32051,6812,-32051,6812, - -31794,7927,-31794,7927,-31794,7927,-31794,7927, - -31498,9031,-31498,9031,-31498,9031,-31498,9031, - -31164,10125,-31164,10125,-31164,10125,-31164,10125, - -30791,11206,-30791,11206,-30791,11206,-30791,11206, - -30382,12274,-30382,12274,-30382,12274,-30382,12274, - -29935,13327,-29935,13327,-29935,13327,-29935,13327, - -29451,14364,-29451,14364,-29451,14364,-29451,14364, - -28932,15383,-28932,15383,-28932,15383,-28932,15383, - -28378,16383,-28378,16383,-28378,16383,-28378,16383, - -27788,17363,-27788,17363,-27788,17363,-27788,17363, - -27166,18323,-27166,18323,-27166,18323,-27166,18323, - -26510,19259,-26510,19259,-26510,19259,-26510,19259, - -25821,20173,-25821,20173,-25821,20173,-25821,20173, - -25101,21062,-25101,21062,-25101,21062,-25101,21062, - -24351,21925,-24351,21925,-24351,21925,-24351,21925, - -23571,22761,-23571,22761,-23571,22761,-23571,22761, - -22762,23570,-22762,23570,-22762,23570,-22762,23570, - -21926,24350,-21926,24350,-21926,24350,-21926,24350, - -21063,25100,-21063,25100,-21063,25100,-21063,25100, - -20174,25820,-20174,25820,-20174,25820,-20174,25820, - -19260,26509,-19260,26509,-19260,26509,-19260,26509, - -18324,27165,-18324,27165,-18324,27165,-18324,27165, - -17364,27787,-17364,27787,-17364,27787,-17364,27787 - }; - +static int16_t twa360[119*2*4]; +static int16_t twb360[119*2*4]; void dft360(int16_t *x,int16_t *y,unsigned char scale_flag) // 120 x 3 { @@ -9386,329 +7626,9 @@ void dft360(int16_t *x,int16_t *y,unsigned char scale_flag) // 120 x 3 }; -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:95)/384)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:95)/384)); -twc = floor(32767*exp(-sqrt(-1)*2*pi*3*(1:95)/384)); -twa2 = zeros(1,2*95); -twb2 = zeros(1,2*95); -twc2 = zeros(1,2*95); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -twc2(1:2:end) = real(twc); -twc2(2:2:end) = imag(twc); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa384[95*2*4] = {"); -for i=1:2:(2*94) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"static int16_t twb384[95*2*4] = {"); -for i=1:2:(2*94) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fprintf(fd,"static int16_t twc384[95*2*4] = {"); -for i=1:2:(2*94) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1)); -fclose(fd); - */ - -static int16_t twa384[95*2*4] = {32762,-537,32762,-537,32762,-537,32762,-537, - 32749,-1073,32749,-1073,32749,-1073,32749,-1073, - 32727,-1608,32727,-1608,32727,-1608,32727,-1608, - 32696,-2144,32696,-2144,32696,-2144,32696,-2144, - 32657,-2678,32657,-2678,32657,-2678,32657,-2678, - 32609,-3212,32609,-3212,32609,-3212,32609,-3212, - 32552,-3745,32552,-3745,32552,-3745,32552,-3745, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32412,-4808,32412,-4808,32412,-4808,32412,-4808, - 32329,-5338,32329,-5338,32329,-5338,32329,-5338, - 32237,-5866,32237,-5866,32237,-5866,32237,-5866, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 32028,-6918,32028,-6918,32028,-6918,32028,-6918, - 31911,-7441,31911,-7441,31911,-7441,31911,-7441, - 31785,-7962,31785,-7962,31785,-7962,31785,-7962, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31507,-8998,31507,-8998,31507,-8998,31507,-8998, - 31356,-9512,31356,-9512,31356,-9512,31356,-9512, - 31196,-10024,31196,-10024,31196,-10024,31196,-10024, - 31028,-10533,31028,-10533,31028,-10533,31028,-10533, - 30851,-11039,30851,-11039,30851,-11039,30851,-11039, - 30666,-11543,30666,-11543,30666,-11543,30666,-11543, - 30473,-12043,30473,-12043,30473,-12043,30473,-12043, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30063,-13034,30063,-13034,30063,-13034,30063,-13034, - 29846,-13524,29846,-13524,29846,-13524,29846,-13524, - 29621,-14010,29621,-14010,29621,-14010,29621,-14010, - 29387,-14493,29387,-14493,29387,-14493,29387,-14493, - 29146,-14972,29146,-14972,29146,-14972,29146,-14972, - 28897,-15447,28897,-15447,28897,-15447,28897,-15447, - 28641,-15918,28641,-15918,28641,-15918,28641,-15918, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28105,-16846,28105,-16846,28105,-16846,28105,-16846, - 27825,-17304,27825,-17304,27825,-17304,27825,-17304, - 27538,-17757,27538,-17757,27538,-17757,27538,-17757, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 26943,-18648,26943,-18648,26943,-18648,26943,-18648, - 26634,-19087,26634,-19087,26634,-19087,26634,-19087, - 26318,-19520,26318,-19520,26318,-19520,26318,-19520, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25665,-20370,25665,-20370,25665,-20370,25665,-20370, - 25329,-20788,25329,-20788,25329,-20788,25329,-20788, - 24985,-21199,24985,-21199,24985,-21199,24985,-21199, - 24635,-21605,24635,-21605,24635,-21605,24635,-21605, - 24278,-22005,24278,-22005,24278,-22005,24278,-22005, - 23915,-22400,23915,-22400,23915,-22400,23915,-22400, - 23545,-22788,23545,-22788,23545,-22788,23545,-22788, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22787,-23546,22787,-23546,22787,-23546,22787,-23546, - 22399,-23916,22399,-23916,22399,-23916,22399,-23916, - 22004,-24279,22004,-24279,22004,-24279,22004,-24279, - 21604,-24636,21604,-24636,21604,-24636,21604,-24636, - 21198,-24986,21198,-24986,21198,-24986,21198,-24986, - 20787,-25330,20787,-25330,20787,-25330,20787,-25330, - 20369,-25666,20369,-25666,20369,-25666,20369,-25666, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19519,-26319,19519,-26319,19519,-26319,19519,-26319, - 19086,-26635,19086,-26635,19086,-26635,19086,-26635, - 18647,-26944,18647,-26944,18647,-26944,18647,-26944, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 17756,-27539,17756,-27539,17756,-27539,17756,-27539, - 17303,-27826,17303,-27826,17303,-27826,17303,-27826, - 16845,-28106,16845,-28106,16845,-28106,16845,-28106, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15917,-28642,15917,-28642,15917,-28642,15917,-28642, - 15446,-28898,15446,-28898,15446,-28898,15446,-28898, - 14971,-29147,14971,-29147,14971,-29147,14971,-29147, - 14492,-29388,14492,-29388,14492,-29388,14492,-29388, - 14009,-29622,14009,-29622,14009,-29622,14009,-29622, - 13523,-29847,13523,-29847,13523,-29847,13523,-29847, - 13033,-30064,13033,-30064,13033,-30064,13033,-30064, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12042,-30474,12042,-30474,12042,-30474,12042,-30474, - 11542,-30667,11542,-30667,11542,-30667,11542,-30667, - 11038,-30852,11038,-30852,11038,-30852,11038,-30852, - 10532,-31029,10532,-31029,10532,-31029,10532,-31029, - 10023,-31197,10023,-31197,10023,-31197,10023,-31197, - 9511,-31357,9511,-31357,9511,-31357,9511,-31357, - 8997,-31508,8997,-31508,8997,-31508,8997,-31508, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 7961,-31786,7961,-31786,7961,-31786,7961,-31786, - 7440,-31912,7440,-31912,7440,-31912,7440,-31912, - 6917,-32029,6917,-32029,6917,-32029,6917,-32029, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 5865,-32238,5865,-32238,5865,-32238,5865,-32238, - 5337,-32330,5337,-32330,5337,-32330,5337,-32330, - 4807,-32413,4807,-32413,4807,-32413,4807,-32413, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3744,-32553,3744,-32553,3744,-32553,3744,-32553, - 3211,-32610,3211,-32610,3211,-32610,3211,-32610, - 2677,-32658,2677,-32658,2677,-32658,2677,-32658, - 2143,-32697,2143,-32697,2143,-32697,2143,-32697, - 1607,-32728,1607,-32728,1607,-32728,1607,-32728, - 1072,-32750,1072,-32750,1072,-32750,1072,-32750, - 536,-32763,536,-32763,536,-32763,536,-32763 - }; -static int16_t twb384[95*2*4] = {32749,-1073,32749,-1073,32749,-1073,32749,-1073, - 32696,-2144,32696,-2144,32696,-2144,32696,-2144, - 32609,-3212,32609,-3212,32609,-3212,32609,-3212, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32329,-5338,32329,-5338,32329,-5338,32329,-5338, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 31911,-7441,31911,-7441,31911,-7441,31911,-7441, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31356,-9512,31356,-9512,31356,-9512,31356,-9512, - 31028,-10533,31028,-10533,31028,-10533,31028,-10533, - 30666,-11543,30666,-11543,30666,-11543,30666,-11543, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 29846,-13524,29846,-13524,29846,-13524,29846,-13524, - 29387,-14493,29387,-14493,29387,-14493,29387,-14493, - 28897,-15447,28897,-15447,28897,-15447,28897,-15447, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 27825,-17304,27825,-17304,27825,-17304,27825,-17304, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 26634,-19087,26634,-19087,26634,-19087,26634,-19087, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25329,-20788,25329,-20788,25329,-20788,25329,-20788, - 24635,-21605,24635,-21605,24635,-21605,24635,-21605, - 23915,-22400,23915,-22400,23915,-22400,23915,-22400, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22399,-23916,22399,-23916,22399,-23916,22399,-23916, - 21604,-24636,21604,-24636,21604,-24636,21604,-24636, - 20787,-25330,20787,-25330,20787,-25330,20787,-25330, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19086,-26635,19086,-26635,19086,-26635,19086,-26635, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 17303,-27826,17303,-27826,17303,-27826,17303,-27826, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15446,-28898,15446,-28898,15446,-28898,15446,-28898, - 14492,-29388,14492,-29388,14492,-29388,14492,-29388, - 13523,-29847,13523,-29847,13523,-29847,13523,-29847, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 11542,-30667,11542,-30667,11542,-30667,11542,-30667, - 10532,-31029,10532,-31029,10532,-31029,10532,-31029, - 9511,-31357,9511,-31357,9511,-31357,9511,-31357, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 7440,-31912,7440,-31912,7440,-31912,7440,-31912, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 5337,-32330,5337,-32330,5337,-32330,5337,-32330, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3211,-32610,3211,-32610,3211,-32610,3211,-32610, - 2143,-32697,2143,-32697,2143,-32697,2143,-32697, - 1072,-32750,1072,-32750,1072,-32750,1072,-32750, - 0,-32767,0,-32767,0,-32767,0,-32767, - -1073,-32750,-1073,-32750,-1073,-32750,-1073,-32750, - -2144,-32697,-2144,-32697,-2144,-32697,-2144,-32697, - -3212,-32610,-3212,-32610,-3212,-32610,-3212,-32610, - -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487, - -5338,-32330,-5338,-32330,-5338,-32330,-5338,-32330, - -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138, - -7441,-31912,-7441,-31912,-7441,-31912,-7441,-31912, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -9512,-31357,-9512,-31357,-9512,-31357,-9512,-31357, - -10533,-31029,-10533,-31029,-10533,-31029,-10533,-31029, - -11543,-30667,-11543,-30667,-11543,-30667,-11543,-30667, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -13524,-29847,-13524,-29847,-13524,-29847,-13524,-29847, - -14493,-29388,-14493,-29388,-14493,-29388,-14493,-29388, - -15447,-28898,-15447,-28898,-15447,-28898,-15447,-28898, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -17304,-27826,-17304,-27826,-17304,-27826,-17304,-27826, - -18205,-27245,-18205,-27245,-18205,-27245,-18205,-27245, - -19087,-26635,-19087,-26635,-19087,-26635,-19087,-26635, - -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996, - -20788,-25330,-20788,-25330,-20788,-25330,-20788,-25330, - -21605,-24636,-21605,-24636,-21605,-24636,-21605,-24636, - -22400,-23916,-22400,-23916,-22400,-23916,-22400,-23916, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23916,-22400,-23916,-22400,-23916,-22400,-23916,-22400, - -24636,-21605,-24636,-21605,-24636,-21605,-24636,-21605, - -25330,-20788,-25330,-20788,-25330,-20788,-25330,-20788, - -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948, - -26635,-19087,-26635,-19087,-26635,-19087,-26635,-19087, - -27245,-18205,-27245,-18205,-27245,-18205,-27245,-18205, - -27826,-17304,-27826,-17304,-27826,-17304,-27826,-17304, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28898,-15447,-28898,-15447,-28898,-15447,-28898,-15447, - -29388,-14493,-29388,-14493,-29388,-14493,-29388,-14493, - -29847,-13524,-29847,-13524,-29847,-13524,-29847,-13524, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30667,-11543,-30667,-11543,-30667,-11543,-30667,-11543, - -31029,-10533,-31029,-10533,-31029,-10533,-31029,-10533, - -31357,-9512,-31357,-9512,-31357,-9512,-31357,-9512, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31912,-7441,-31912,-7441,-31912,-7441,-31912,-7441, - -32138,-6393,-32138,-6393,-32138,-6393,-32138,-6393, - -32330,-5338,-32330,-5338,-32330,-5338,-32330,-5338, - -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277, - -32610,-3212,-32610,-3212,-32610,-3212,-32610,-3212, - -32697,-2144,-32697,-2144,-32697,-2144,-32697,-2144, - -32750,-1073,-32750,-1073,-32750,-1073,-32750,-1073 - }; -static int16_t twc384[95*2*4] = {32727,-1608,32727,-1608,32727,-1608,32727,-1608, - 32609,-3212,32609,-3212,32609,-3212,32609,-3212, - 32412,-4808,32412,-4808,32412,-4808,32412,-4808, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 31785,-7962,31785,-7962,31785,-7962,31785,-7962, - 31356,-9512,31356,-9512,31356,-9512,31356,-9512, - 30851,-11039,30851,-11039,30851,-11039,30851,-11039, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 29621,-14010,29621,-14010,29621,-14010,29621,-14010, - 28897,-15447,28897,-15447,28897,-15447,28897,-15447, - 28105,-16846,28105,-16846,28105,-16846,28105,-16846, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 26318,-19520,26318,-19520,26318,-19520,26318,-19520, - 25329,-20788,25329,-20788,25329,-20788,25329,-20788, - 24278,-22005,24278,-22005,24278,-22005,24278,-22005, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22004,-24279,22004,-24279,22004,-24279,22004,-24279, - 20787,-25330,20787,-25330,20787,-25330,20787,-25330, - 19519,-26319,19519,-26319,19519,-26319,19519,-26319, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 16845,-28106,16845,-28106,16845,-28106,16845,-28106, - 15446,-28898,15446,-28898,15446,-28898,15446,-28898, - 14009,-29622,14009,-29622,14009,-29622,14009,-29622, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 11038,-30852,11038,-30852,11038,-30852,11038,-30852, - 9511,-31357,9511,-31357,9511,-31357,9511,-31357, - 7961,-31786,7961,-31786,7961,-31786,7961,-31786, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 4807,-32413,4807,-32413,4807,-32413,4807,-32413, - 3211,-32610,3211,-32610,3211,-32610,3211,-32610, - 1607,-32728,1607,-32728,1607,-32728,1607,-32728, - 0,-32767,0,-32767,0,-32767,0,-32767, - -1608,-32728,-1608,-32728,-1608,-32728,-1608,-32728, - -3212,-32610,-3212,-32610,-3212,-32610,-3212,-32610, - -4808,-32413,-4808,-32413,-4808,-32413,-4808,-32413, - -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138, - -7962,-31786,-7962,-31786,-7962,-31786,-7962,-31786, - -9512,-31357,-9512,-31357,-9512,-31357,-9512,-31357, - -11039,-30852,-11039,-30852,-11039,-30852,-11039,-30852, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -14010,-29622,-14010,-29622,-14010,-29622,-14010,-29622, - -15447,-28898,-15447,-28898,-15447,-28898,-15447,-28898, - -16846,-28106,-16846,-28106,-16846,-28106,-16846,-28106, - -18205,-27245,-18205,-27245,-18205,-27245,-18205,-27245, - -19520,-26319,-19520,-26319,-19520,-26319,-19520,-26319, - -20788,-25330,-20788,-25330,-20788,-25330,-20788,-25330, - -22005,-24279,-22005,-24279,-22005,-24279,-22005,-24279, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -24279,-22005,-24279,-22005,-24279,-22005,-24279,-22005, - -25330,-20788,-25330,-20788,-25330,-20788,-25330,-20788, - -26319,-19520,-26319,-19520,-26319,-19520,-26319,-19520, - -27245,-18205,-27245,-18205,-27245,-18205,-27245,-18205, - -28106,-16846,-28106,-16846,-28106,-16846,-28106,-16846, - -28898,-15447,-28898,-15447,-28898,-15447,-28898,-15447, - -29622,-14010,-29622,-14010,-29622,-14010,-29622,-14010, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30852,-11039,-30852,-11039,-30852,-11039,-30852,-11039, - -31357,-9512,-31357,-9512,-31357,-9512,-31357,-9512, - -31786,-7962,-31786,-7962,-31786,-7962,-31786,-7962, - -32138,-6393,-32138,-6393,-32138,-6393,-32138,-6393, - -32413,-4808,-32413,-4808,-32413,-4808,-32413,-4808, - -32610,-3212,-32610,-3212,-32610,-3212,-32610,-3212, - -32728,-1608,-32728,-1608,-32728,-1608,-32728,-1608, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32728,1607,-32728,1607,-32728,1607,-32728,1607, - -32610,3211,-32610,3211,-32610,3211,-32610,3211, - -32413,4807,-32413,4807,-32413,4807,-32413,4807, - -32138,6392,-32138,6392,-32138,6392,-32138,6392, - -31786,7961,-31786,7961,-31786,7961,-31786,7961, - -31357,9511,-31357,9511,-31357,9511,-31357,9511, - -30852,11038,-30852,11038,-30852,11038,-30852,11038, - -30273,12539,-30273,12539,-30273,12539,-30273,12539, - -29622,14009,-29622,14009,-29622,14009,-29622,14009, - -28898,15446,-28898,15446,-28898,15446,-28898,15446, - -28106,16845,-28106,16845,-28106,16845,-28106,16845, - -27245,18204,-27245,18204,-27245,18204,-27245,18204, - -26319,19519,-26319,19519,-26319,19519,-26319,19519, - -25330,20787,-25330,20787,-25330,20787,-25330,20787, - -24279,22004,-24279,22004,-24279,22004,-24279,22004, - -23170,23169,-23170,23169,-23170,23169,-23170,23169, - -22005,24278,-22005,24278,-22005,24278,-22005,24278, - -20788,25329,-20788,25329,-20788,25329,-20788,25329, - -19520,26318,-19520,26318,-19520,26318,-19520,26318, - -18205,27244,-18205,27244,-18205,27244,-18205,27244, - -16846,28105,-16846,28105,-16846,28105,-16846,28105, - -15447,28897,-15447,28897,-15447,28897,-15447,28897, - -14010,29621,-14010,29621,-14010,29621,-14010,29621, - -12540,30272,-12540,30272,-12540,30272,-12540,30272, - -11039,30851,-11039,30851,-11039,30851,-11039,30851, - -9512,31356,-9512,31356,-9512,31356,-9512,31356, - -7962,31785,-7962,31785,-7962,31785,-7962,31785, - -6393,32137,-6393,32137,-6393,32137,-6393,32137, - -4808,32412,-4808,32412,-4808,32412,-4808,32412, - -3212,32609,-3212,32609,-3212,32609,-3212,32609, - -1608,32727,-1608,32727,-1608,32727,-1608,32727 - }; +static int16_t twa384[95*2*4]; +static int16_t twb384[95*2*4]; +static int16_t twc384[95*2*4]; void dft384(int16_t *x,int16_t *y,unsigned char scale_flag) // 96 x 4 { @@ -9764,366 +7684,9 @@ void dft384(int16_t *x,int16_t *y,unsigned char scale_flag) // 96 x 4 }; -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:107)/432)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:107)/432)); -twc = floor(32767*exp(-sqrt(-1)*2*pi*3*(1:107)/432)); -twa2 = zeros(1,2*107); -twb2 = zeros(1,2*107); -twc2 = zeros(1,2*107); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -twc2(1:2:end) = real(twc); -twc2(2:2:end) = imag(twc); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa432[107*2*4] = {"); -for i=1:2:(2*106) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"static int16_t twb432[107*2*4] = {"); -for i=1:2:(2*106) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fprintf(fd,"static int16_t twc432[107*2*4] = {"); -for i=1:2:(2*106) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1)); -fclose(fd); - */ - -static int16_t twa432[107*2*4] = {32763,-477,32763,-477,32763,-477,32763,-477, - 32753,-954,32753,-954,32753,-954,32753,-954, - 32735,-1430,32735,-1430,32735,-1430,32735,-1430, - 32711,-1906,32711,-1906,32711,-1906,32711,-1906, - 32680,-2381,32680,-2381,32680,-2381,32680,-2381, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32597,-3331,32597,-3331,32597,-3331,32597,-3331, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32421,-4749,32421,-4749,32421,-4749,32421,-4749, - 32348,-5221,32348,-5221,32348,-5221,32348,-5221, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32183,-6159,32183,-6159,32183,-6159,32183,-6159, - 32090,-6627,32090,-6627,32090,-6627,32090,-6627, - 31990,-7093,31990,-7093,31990,-7093,31990,-7093, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31770,-8020,31770,-8020,31770,-8020,31770,-8020, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31523,-8941,31523,-8941,31523,-8941,31523,-8941, - 31390,-9398,31390,-9398,31390,-9398,31390,-9398, - 31250,-9854,31250,-9854,31250,-9854,31250,-9854, - 31103,-10307,31103,-10307,31103,-10307,31103,-10307, - 30950,-10758,30950,-10758,30950,-10758,30950,-10758, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30624,-11654,30624,-11654,30624,-11654,30624,-11654, - 30451,-12098,30451,-12098,30451,-12098,30451,-12098, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30087,-12979,30087,-12979,30087,-12979,30087,-12979, - 29895,-13415,29895,-13415,29895,-13415,29895,-13415, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29492,-14279,29492,-14279,29492,-14279,29492,-14279, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 29064,-15131,29064,-15131,29064,-15131,29064,-15131, - 28841,-15552,28841,-15552,28841,-15552,28841,-15552, - 28612,-15970,28612,-15970,28612,-15970,28612,-15970, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28135,-16795,28135,-16795,28135,-16795,28135,-16795, - 27888,-17202,27888,-17202,27888,-17202,27888,-17202, - 27635,-17606,27635,-17606,27635,-17606,27635,-17606, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 27111,-18403,27111,-18403,27111,-18403,27111,-18403, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26564,-19183,26564,-19183,26564,-19183,26564,-19183, - 26283,-19568,26283,-19568,26283,-19568,26283,-19568, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25702,-20324,25702,-20324,25702,-20324,25702,-20324, - 25404,-20695,25404,-20695,25404,-20695,25404,-20695, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24791,-21426,24791,-21426,24791,-21426,24791,-21426, - 24477,-21784,24477,-21784,24477,-21784,24477,-21784, - 24158,-22138,24158,-22138,24158,-22138,24158,-22138, - 23833,-22487,23833,-22487,23833,-22487,23833,-22487, - 23504,-22831,23504,-22831,23504,-22831,23504,-22831, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22830,-23505,22830,-23505,22830,-23505,22830,-23505, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 22137,-24159,22137,-24159,22137,-24159,22137,-24159, - 21783,-24478,21783,-24478,21783,-24478,21783,-24478, - 21425,-24792,21425,-24792,21425,-24792,21425,-24792, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20694,-25405,20694,-25405,20694,-25405,20694,-25405, - 20323,-25703,20323,-25703,20323,-25703,20323,-25703, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 19182,-26565,19182,-26565,19182,-26565,19182,-26565, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18402,-27112,18402,-27112,18402,-27112,18402,-27112, - 18005,-27377,18005,-27377,18005,-27377,18005,-27377, - 17605,-27636,17605,-27636,17605,-27636,17605,-27636, - 17201,-27889,17201,-27889,17201,-27889,17201,-27889, - 16794,-28136,16794,-28136,16794,-28136,16794,-28136, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15969,-28613,15969,-28613,15969,-28613,15969,-28613, - 15551,-28842,15551,-28842,15551,-28842,15551,-28842, - 15130,-29065,15130,-29065,15130,-29065,15130,-29065, - 14705,-29282,14705,-29282,14705,-29282,14705,-29282, - 14278,-29493,14278,-29493,14278,-29493,14278,-29493, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 13414,-29896,13414,-29896,13414,-29896,13414,-29896, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12097,-30452,12097,-30452,12097,-30452,12097,-30452, - 11653,-30625,11653,-30625,11653,-30625,11653,-30625, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10757,-30951,10757,-30951,10757,-30951,10757,-30951, - 10306,-31104,10306,-31104,10306,-31104,10306,-31104, - 9853,-31251,9853,-31251,9853,-31251,9853,-31251, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 8940,-31524,8940,-31524,8940,-31524,8940,-31524, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8019,-31771,8019,-31771,8019,-31771,8019,-31771, - 7556,-31884,7556,-31884,7556,-31884,7556,-31884, - 7092,-31991,7092,-31991,7092,-31991,7092,-31991, - 6626,-32091,6626,-32091,6626,-32091,6626,-32091, - 6158,-32184,6158,-32184,6158,-32184,6158,-32184, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5220,-32349,5220,-32349,5220,-32349,5220,-32349, - 4748,-32422,4748,-32422,4748,-32422,4748,-32422, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3804,-32546,3804,-32546,3804,-32546,3804,-32546, - 3330,-32598,3330,-32598,3330,-32598,3330,-32598, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 2380,-32681,2380,-32681,2380,-32681,2380,-32681, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 1429,-32736,1429,-32736,1429,-32736,1429,-32736, - 953,-32754,953,-32754,953,-32754,953,-32754, - 476,-32764,476,-32764,476,-32764,476,-32764 - }; -static int16_t twb432[107*2*4] = {32753,-954,32753,-954,32753,-954,32753,-954, - 32711,-1906,32711,-1906,32711,-1906,32711,-1906, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32421,-4749,32421,-4749,32421,-4749,32421,-4749, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32090,-6627,32090,-6627,32090,-6627,32090,-6627, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31390,-9398,31390,-9398,31390,-9398,31390,-9398, - 31103,-10307,31103,-10307,31103,-10307,31103,-10307, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30451,-12098,30451,-12098,30451,-12098,30451,-12098, - 30087,-12979,30087,-12979,30087,-12979,30087,-12979, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 28841,-15552,28841,-15552,28841,-15552,28841,-15552, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 27888,-17202,27888,-17202,27888,-17202,27888,-17202, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26283,-19568,26283,-19568,26283,-19568,26283,-19568, - 25702,-20324,25702,-20324,25702,-20324,25702,-20324, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24477,-21784,24477,-21784,24477,-21784,24477,-21784, - 23833,-22487,23833,-22487,23833,-22487,23833,-22487, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 21783,-24478,21783,-24478,21783,-24478,21783,-24478, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20323,-25703,20323,-25703,20323,-25703,20323,-25703, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18005,-27377,18005,-27377,18005,-27377,18005,-27377, - 17201,-27889,17201,-27889,17201,-27889,17201,-27889, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15551,-28842,15551,-28842,15551,-28842,15551,-28842, - 14705,-29282,14705,-29282,14705,-29282,14705,-29282, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12097,-30452,12097,-30452,12097,-30452,12097,-30452, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10306,-31104,10306,-31104,10306,-31104,10306,-31104, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 7556,-31884,7556,-31884,7556,-31884,7556,-31884, - 6626,-32091,6626,-32091,6626,-32091,6626,-32091, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 4748,-32422,4748,-32422,4748,-32422,4748,-32422, - 3804,-32546,3804,-32546,3804,-32546,3804,-32546, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 953,-32754,953,-32754,953,-32754,953,-32754, - 0,-32767,0,-32767,0,-32767,0,-32767, - -954,-32754,-954,-32754,-954,-32754,-954,-32754, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643, - -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546, - -4749,-32422,-4749,-32422,-4749,-32422,-4749,-32422, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6627,-32091,-6627,-32091,-6627,-32091,-6627,-32091, - -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -10307,-31104,-10307,-31104,-10307,-31104,-10307,-31104, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -12098,-30452,-12098,-30452,-12098,-30452,-12098,-30452, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697, - -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282, - -15552,-28842,-15552,-28842,-15552,-28842,-15552,-28842, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -17202,-27889,-17202,-27889,-17202,-27889,-17202,-27889, - -18006,-27377,-18006,-27377,-18006,-27377,-18006,-27377, - -18795,-26842,-18795,-26842,-18795,-26842,-18795,-26842, - -19568,-26284,-19568,-26284,-19568,-26284,-19568,-26284, - -20324,-25703,-20324,-25703,-20324,-25703,-20324,-25703, - -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101, - -21784,-24478,-21784,-24478,-21784,-24478,-21784,-24478, - -22487,-23834,-22487,-23834,-22487,-23834,-22487,-23834, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23834,-22487,-23834,-22487,-23834,-22487,-23834,-22487, - -24478,-21784,-24478,-21784,-24478,-21784,-24478,-21784, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25703,-20324,-25703,-20324,-25703,-20324,-25703,-20324, - -26284,-19568,-26284,-19568,-26284,-19568,-26284,-19568, - -26842,-18795,-26842,-18795,-26842,-18795,-26842,-18795, - -27377,-18006,-27377,-18006,-27377,-18006,-27377,-18006, - -27889,-17202,-27889,-17202,-27889,-17202,-27889,-17202, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28842,-15552,-28842,-15552,-28842,-15552,-28842,-15552, - -29282,-14706,-29282,-14706,-29282,-14706,-29282,-14706, - -29697,-13848,-29697,-13848,-29697,-13848,-29697,-13848, - -30088,-12979,-30088,-12979,-30088,-12979,-30088,-12979, - -30452,-12098,-30452,-12098,-30452,-12098,-30452,-12098, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -31104,-10307,-31104,-10307,-31104,-10307,-31104,-10307, - -31391,-9398,-31391,-9398,-31391,-9398,-31391,-9398, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31884,-7557,-31884,-7557,-31884,-7557,-31884,-7557, - -32091,-6627,-32091,-6627,-32091,-6627,-32091,-6627, - -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690, - -32422,-4749,-32422,-4749,-32422,-4749,-32422,-4749, - -32546,-3805,-32546,-3805,-32546,-3805,-32546,-3805, - -32643,-2856,-32643,-2856,-32643,-2856,-32643,-2856, - -32712,-1906,-32712,-1906,-32712,-1906,-32712,-1906, - -32754,-954,-32754,-954,-32754,-954,-32754,-954 - }; -static int16_t twc432[107*2*4] = {32735,-1430,32735,-1430,32735,-1430,32735,-1430, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 31990,-7093,31990,-7093,31990,-7093,31990,-7093, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31250,-9854,31250,-9854,31250,-9854,31250,-9854, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29064,-15131,29064,-15131,29064,-15131,29064,-15131, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 27635,-17606,27635,-17606,27635,-17606,27635,-17606, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24158,-22138,24158,-22138,24158,-22138,24158,-22138, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22137,-24159,22137,-24159,22137,-24159,22137,-24159, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 17605,-27636,17605,-27636,17605,-27636,17605,-27636, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15130,-29065,15130,-29065,15130,-29065,15130,-29065, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 9853,-31251,9853,-31251,9853,-31251,9853,-31251, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 7092,-31991,7092,-31991,7092,-31991,7092,-31991, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 1429,-32736,1429,-32736,1429,-32736,1429,-32736, - 0,-32767,0,-32767,0,-32767,0,-32767, - -1430,-32736,-1430,-32736,-1430,-32736,-1430,-32736, - -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643, - -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -7093,-31991,-7093,-31991,-7093,-31991,-7093,-31991, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -9854,-31251,-9854,-31251,-9854,-31251,-9854,-31251, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697, - -15131,-29065,-15131,-29065,-15131,-29065,-15131,-29065, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -17606,-27636,-17606,-27636,-17606,-27636,-17606,-27636, - -18795,-26842,-18795,-26842,-18795,-26842,-18795,-26842, - -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996, - -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101, - -22138,-24159,-22138,-24159,-22138,-24159,-22138,-24159, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -24159,-22138,-24159,-22138,-24159,-22138,-24159,-22138, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948, - -26842,-18795,-26842,-18795,-26842,-18795,-26842,-18795, - -27636,-17606,-27636,-17606,-27636,-17606,-27636,-17606, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -29065,-15131,-29065,-15131,-29065,-15131,-29065,-15131, - -29697,-13848,-29697,-13848,-29697,-13848,-29697,-13848, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -31251,-9854,-31251,-9854,-31251,-9854,-31251,-9854, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31991,-7093,-31991,-7093,-31991,-7093,-31991,-7093, - -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690, - -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277, - -32643,-2856,-32643,-2856,-32643,-2856,-32643,-2856, - -32736,-1430,-32736,-1430,-32736,-1430,-32736,-1430, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32736,1429,-32736,1429,-32736,1429,-32736,1429, - -32643,2855,-32643,2855,-32643,2855,-32643,2855, - -32487,4276,-32487,4276,-32487,4276,-32487,4276, - -32270,5689,-32270,5689,-32270,5689,-32270,5689, - -31991,7092,-31991,7092,-31991,7092,-31991,7092, - -31651,8480,-31651,8480,-31651,8480,-31651,8480, - -31251,9853,-31251,9853,-31251,9853,-31251,9853, - -30791,11206,-30791,11206,-30791,11206,-30791,11206, - -30273,12539,-30273,12539,-30273,12539,-30273,12539, - -29697,13847,-29697,13847,-29697,13847,-29697,13847, - -29065,15130,-29065,15130,-29065,15130,-29065,15130, - -28378,16383,-28378,16383,-28378,16383,-28378,16383, - -27636,17605,-27636,17605,-27636,17605,-27636,17605, - -26842,18794,-26842,18794,-26842,18794,-26842,18794, - -25996,19947,-25996,19947,-25996,19947,-25996,19947, - -25101,21062,-25101,21062,-25101,21062,-25101,21062, - -24159,22137,-24159,22137,-24159,22137,-24159,22137, - -23170,23169,-23170,23169,-23170,23169,-23170,23169, - -22138,24158,-22138,24158,-22138,24158,-22138,24158, - -21063,25100,-21063,25100,-21063,25100,-21063,25100, - -19948,25995,-19948,25995,-19948,25995,-19948,25995, - -18795,26841,-18795,26841,-18795,26841,-18795,26841, - -17606,27635,-17606,27635,-17606,27635,-17606,27635, - -16384,28377,-16384,28377,-16384,28377,-16384,28377, - -15131,29064,-15131,29064,-15131,29064,-15131,29064, - -13848,29696,-13848,29696,-13848,29696,-13848,29696, - -12540,30272,-12540,30272,-12540,30272,-12540,30272, - -11207,30790,-11207,30790,-11207,30790,-11207,30790, - -9854,31250,-9854,31250,-9854,31250,-9854,31250, - -8481,31650,-8481,31650,-8481,31650,-8481,31650, - -7093,31990,-7093,31990,-7093,31990,-7093,31990, - -5690,32269,-5690,32269,-5690,32269,-5690,32269, - -4277,32486,-4277,32486,-4277,32486,-4277,32486, - -2856,32642,-2856,32642,-2856,32642,-2856,32642, - -1430,32735,-1430,32735,-1430,32735,-1430,32735 - }; - +static int16_t twa432[107*2*4]; +static int16_t twb432[107*2*4]; +static int16_t twc432[107*2*4]; void dft432(int16_t *x,int16_t *y,unsigned char scale_flag) // 108 x 4 { @@ -10177,402 +7740,9 @@ void dft432(int16_t *x,int16_t *y,unsigned char scale_flag) // 108 x 4 _m_empty(); }; -/* -Twiddles generated with - -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:119)/480)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:119)/480)); -twc = floor(32767*exp(-sqrt(-1)*2*pi*3*(1:119)/480)); -twa2 = zeros(1,2*119); -twb2 = zeros(1,2*119); -twc2 = zeros(1,2*119); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -twc2(1:2:end) = real(twc); -twc2(2:2:end) = imag(twc); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa480[119*2*4] = {"); -for i=1:2:(2*118) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"static int16_t twb480[119*2*4] = {"); -for i=1:2:(2*118) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fprintf(fd,"static int16_t twc480[119*2*4] = {"); -for i=1:2:(2*118) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1)); -fclose(fd); -*/ -static int16_t twa480[119*2*4] = {32764,-429,32764,-429,32764,-429,32764,-429, - 32755,-858,32755,-858,32755,-858,32755,-858, - 32741,-1287,32741,-1287,32741,-1287,32741,-1287, - 32722,-1715,32722,-1715,32722,-1715,32722,-1715, - 32696,-2144,32696,-2144,32696,-2144,32696,-2144, - 32665,-2571,32665,-2571,32665,-2571,32665,-2571, - 32629,-2999,32629,-2999,32629,-2999,32629,-2999, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32539,-3852,32539,-3852,32539,-3852,32539,-3852, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32427,-4702,32427,-4702,32427,-4702,32427,-4702, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32293,-5550,32293,-5550,32293,-5550,32293,-5550, - 32218,-5972,32218,-5972,32218,-5972,32218,-5972, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31959,-7232,31959,-7232,31959,-7232,31959,-7232, - 31861,-7650,31861,-7650,31861,-7650,31861,-7650, - 31758,-8066,31758,-8066,31758,-8066,31758,-8066, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31536,-8895,31536,-8895,31536,-8895,31536,-8895, - 31417,-9307,31417,-9307,31417,-9307,31417,-9307, - 31293,-9717,31293,-9717,31293,-9717,31293,-9717, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 31028,-10533,31028,-10533,31028,-10533,31028,-10533, - 30887,-10938,30887,-10938,30887,-10938,30887,-10938, - 30741,-11342,30741,-11342,30741,-11342,30741,-11342, - 30590,-11743,30590,-11743,30590,-11743,30590,-11743, - 30434,-12143,30434,-12143,30434,-12143,30434,-12143, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30106,-12935,30106,-12935,30106,-12935,30106,-12935, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29757,-13719,29757,-13719,29757,-13719,29757,-13719, - 29575,-14107,29575,-14107,29575,-14107,29575,-14107, - 29387,-14493,29387,-14493,29387,-14493,29387,-14493, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 28998,-15257,28998,-15257,28998,-15257,28998,-15257, - 28796,-15636,28796,-15636,28796,-15636,28796,-15636, - 28589,-16011,28589,-16011,28589,-16011,28589,-16011, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28160,-16754,28160,-16754,28160,-16754,28160,-16754, - 27938,-17121,27938,-17121,27938,-17121,27938,-17121, - 27711,-17485,27711,-17485,27711,-17485,27711,-17485, - 27480,-17847,27480,-17847,27480,-17847,27480,-17847, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 27004,-18560,27004,-18560,27004,-18560,27004,-18560, - 26758,-18912,26758,-18912,26758,-18912,26758,-18912, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26254,-19606,26254,-19606,26254,-19606,26254,-19606, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25732,-20286,25732,-20286,25732,-20286,25732,-20286, - 25464,-20621,25464,-20621,25464,-20621,25464,-20621, - 25192,-20953,25192,-20953,25192,-20953,25192,-20953, - 24916,-21281,24916,-21281,24916,-21281,24916,-21281, - 24635,-21605,24635,-21605,24635,-21605,24635,-21605, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 24061,-22243,24061,-22243,24061,-22243,24061,-22243, - 23768,-22556,23768,-22556,23768,-22556,23768,-22556, - 23471,-22865,23471,-22865,23471,-22865,23471,-22865, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22864,-23472,22864,-23472,22864,-23472,22864,-23472, - 22555,-23769,22555,-23769,22555,-23769,22555,-23769, - 22242,-24062,22242,-24062,22242,-24062,22242,-24062, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21604,-24636,21604,-24636,21604,-24636,21604,-24636, - 21280,-24917,21280,-24917,21280,-24917,21280,-24917, - 20952,-25193,20952,-25193,20952,-25193,20952,-25193, - 20620,-25465,20620,-25465,20620,-25465,20620,-25465, - 20285,-25733,20285,-25733,20285,-25733,20285,-25733, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19605,-26255,19605,-26255,19605,-26255,19605,-26255, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18911,-26759,18911,-26759,18911,-26759,18911,-26759, - 18559,-27005,18559,-27005,18559,-27005,18559,-27005, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 17846,-27481,17846,-27481,17846,-27481,17846,-27481, - 17484,-27712,17484,-27712,17484,-27712,17484,-27712, - 17120,-27939,17120,-27939,17120,-27939,17120,-27939, - 16753,-28161,16753,-28161,16753,-28161,16753,-28161, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16010,-28590,16010,-28590,16010,-28590,16010,-28590, - 15635,-28797,15635,-28797,15635,-28797,15635,-28797, - 15256,-28999,15256,-28999,15256,-28999,15256,-28999, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14492,-29388,14492,-29388,14492,-29388,14492,-29388, - 14106,-29576,14106,-29576,14106,-29576,14106,-29576, - 13718,-29758,13718,-29758,13718,-29758,13718,-29758, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 12934,-30107,12934,-30107,12934,-30107,12934,-30107, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12142,-30435,12142,-30435,12142,-30435,12142,-30435, - 11742,-30591,11742,-30591,11742,-30591,11742,-30591, - 11341,-30742,11341,-30742,11341,-30742,11341,-30742, - 10937,-30888,10937,-30888,10937,-30888,10937,-30888, - 10532,-31029,10532,-31029,10532,-31029,10532,-31029, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9716,-31294,9716,-31294,9716,-31294,9716,-31294, - 9306,-31418,9306,-31418,9306,-31418,9306,-31418, - 8894,-31537,8894,-31537,8894,-31537,8894,-31537, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8065,-31759,8065,-31759,8065,-31759,8065,-31759, - 7649,-31862,7649,-31862,7649,-31862,7649,-31862, - 7231,-31960,7231,-31960,7231,-31960,7231,-31960, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 5971,-32219,5971,-32219,5971,-32219,5971,-32219, - 5549,-32294,5549,-32294,5549,-32294,5549,-32294, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4701,-32428,4701,-32428,4701,-32428,4701,-32428, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3851,-32540,3851,-32540,3851,-32540,3851,-32540, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 2998,-32630,2998,-32630,2998,-32630,2998,-32630, - 2570,-32666,2570,-32666,2570,-32666,2570,-32666, - 2143,-32697,2143,-32697,2143,-32697,2143,-32697, - 1714,-32723,1714,-32723,1714,-32723,1714,-32723, - 1286,-32742,1286,-32742,1286,-32742,1286,-32742, - 857,-32756,857,-32756,857,-32756,857,-32756, - 428,-32765,428,-32765,428,-32765,428,-32765 - }; -static int16_t twb480[119*2*4] = {32755,-858,32755,-858,32755,-858,32755,-858, - 32722,-1715,32722,-1715,32722,-1715,32722,-1715, - 32665,-2571,32665,-2571,32665,-2571,32665,-2571, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32218,-5972,32218,-5972,32218,-5972,32218,-5972, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31861,-7650,31861,-7650,31861,-7650,31861,-7650, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31417,-9307,31417,-9307,31417,-9307,31417,-9307, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 30887,-10938,30887,-10938,30887,-10938,30887,-10938, - 30590,-11743,30590,-11743,30590,-11743,30590,-11743, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29575,-14107,29575,-14107,29575,-14107,29575,-14107, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 28796,-15636,28796,-15636,28796,-15636,28796,-15636, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 27938,-17121,27938,-17121,27938,-17121,27938,-17121, - 27480,-17847,27480,-17847,27480,-17847,27480,-17847, - 27004,-18560,27004,-18560,27004,-18560,27004,-18560, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25464,-20621,25464,-20621,25464,-20621,25464,-20621, - 24916,-21281,24916,-21281,24916,-21281,24916,-21281, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 23768,-22556,23768,-22556,23768,-22556,23768,-22556, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22555,-23769,22555,-23769,22555,-23769,22555,-23769, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21280,-24917,21280,-24917,21280,-24917,21280,-24917, - 20620,-25465,20620,-25465,20620,-25465,20620,-25465, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18559,-27005,18559,-27005,18559,-27005,18559,-27005, - 17846,-27481,17846,-27481,17846,-27481,17846,-27481, - 17120,-27939,17120,-27939,17120,-27939,17120,-27939, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15635,-28797,15635,-28797,15635,-28797,15635,-28797, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14106,-29576,14106,-29576,14106,-29576,14106,-29576, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 11742,-30591,11742,-30591,11742,-30591,11742,-30591, - 10937,-30888,10937,-30888,10937,-30888,10937,-30888, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9306,-31418,9306,-31418,9306,-31418,9306,-31418, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 7649,-31862,7649,-31862,7649,-31862,7649,-31862, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 5971,-32219,5971,-32219,5971,-32219,5971,-32219, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 2570,-32666,2570,-32666,2570,-32666,2570,-32666, - 1714,-32723,1714,-32723,1714,-32723,1714,-32723, - 857,-32756,857,-32756,857,-32756,857,-32756, - 0,-32767,0,-32767,0,-32767,0,-32767, - -858,-32756,-858,-32756,-858,-32756,-858,-32756, - -1715,-32723,-1715,-32723,-1715,-32723,-1715,-32723, - -2571,-32666,-2571,-32666,-2571,-32666,-2571,-32666, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487, - -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364, - -5972,-32219,-5972,-32219,-5972,-32219,-5972,-32219, - -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051, - -7650,-31862,-7650,-31862,-7650,-31862,-7650,-31862, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -9307,-31418,-9307,-31418,-9307,-31418,-9307,-31418, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10938,-30888,-10938,-30888,-10938,-30888,-10938,-30888, - -11743,-30591,-11743,-30591,-11743,-30591,-11743,-30591, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935, - -14107,-29576,-14107,-29576,-14107,-29576,-14107,-29576, - -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196, - -15636,-28797,-15636,-28797,-15636,-28797,-15636,-28797, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -17121,-27939,-17121,-27939,-17121,-27939,-17121,-27939, - -17847,-27481,-17847,-27481,-17847,-27481,-17847,-27481, - -18560,-27005,-18560,-27005,-18560,-27005,-18560,-27005, - -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510, - -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996, - -20621,-25465,-20621,-25465,-20621,-25465,-20621,-25465, - -21281,-24917,-21281,-24917,-21281,-24917,-21281,-24917, - -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351, - -22556,-23769,-22556,-23769,-22556,-23769,-22556,-23769, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23769,-22556,-23769,-22556,-23769,-22556,-23769,-22556, - -24351,-21926,-24351,-21926,-24351,-21926,-24351,-21926, - -24917,-21281,-24917,-21281,-24917,-21281,-24917,-21281, - -25465,-20621,-25465,-20621,-25465,-20621,-25465,-20621, - -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -27005,-18560,-27005,-18560,-27005,-18560,-27005,-18560, - -27481,-17847,-27481,-17847,-27481,-17847,-27481,-17847, - -27939,-17121,-27939,-17121,-27939,-17121,-27939,-17121, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28797,-15636,-28797,-15636,-28797,-15636,-28797,-15636, - -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876, - -29576,-14107,-29576,-14107,-29576,-14107,-29576,-14107, - -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30591,-11743,-30591,-11743,-30591,-11743,-30591,-11743, - -30888,-10938,-30888,-10938,-30888,-10938,-30888,-10938, - -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126, - -31418,-9307,-31418,-9307,-31418,-9307,-31418,-9307, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31862,-7650,-31862,-7650,-31862,-7650,-31862,-7650, - -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813, - -32219,-5972,-32219,-5972,-32219,-5972,-32219,-5972, - -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126, - -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277, - -32588,-3426,-32588,-3426,-32588,-3426,-32588,-3426, - -32666,-2571,-32666,-2571,-32666,-2571,-32666,-2571, - -32723,-1715,-32723,-1715,-32723,-1715,-32723,-1715, - -32756,-858,-32756,-858,-32756,-858,-32756,-858 - }; -static int16_t twc480[119*2*4] = {32741,-1287,32741,-1287,32741,-1287,32741,-1287, - 32665,-2571,32665,-2571,32665,-2571,32665,-2571, - 32539,-3852,32539,-3852,32539,-3852,32539,-3852, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 31861,-7650,31861,-7650,31861,-7650,31861,-7650, - 31536,-8895,31536,-8895,31536,-8895,31536,-8895, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 30741,-11342,30741,-11342,30741,-11342,30741,-11342, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 29757,-13719,29757,-13719,29757,-13719,29757,-13719, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 28589,-16011,28589,-16011,28589,-16011,28589,-16011, - 27938,-17121,27938,-17121,27938,-17121,27938,-17121, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 25732,-20286,25732,-20286,25732,-20286,25732,-20286, - 24916,-21281,24916,-21281,24916,-21281,24916,-21281, - 24061,-22243,24061,-22243,24061,-22243,24061,-22243, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22242,-24062,22242,-24062,22242,-24062,22242,-24062, - 21280,-24917,21280,-24917,21280,-24917,21280,-24917, - 20285,-25733,20285,-25733,20285,-25733,20285,-25733, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 17120,-27939,17120,-27939,17120,-27939,17120,-27939, - 16010,-28590,16010,-28590,16010,-28590,16010,-28590, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 13718,-29758,13718,-29758,13718,-29758,13718,-29758, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 11341,-30742,11341,-30742,11341,-30742,11341,-30742, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 8894,-31537,8894,-31537,8894,-31537,8894,-31537, - 7649,-31862,7649,-31862,7649,-31862,7649,-31862, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 3851,-32540,3851,-32540,3851,-32540,3851,-32540, - 2570,-32666,2570,-32666,2570,-32666,2570,-32666, - 1286,-32742,1286,-32742,1286,-32742,1286,-32742, - 0,-32767,0,-32767,0,-32767,0,-32767, - -1287,-32742,-1287,-32742,-1287,-32742,-1287,-32742, - -2571,-32666,-2571,-32666,-2571,-32666,-2571,-32666, - -3852,-32540,-3852,-32540,-3852,-32540,-3852,-32540, - -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364, - -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138, - -7650,-31862,-7650,-31862,-7650,-31862,-7650,-31862, - -8895,-31537,-8895,-31537,-8895,-31537,-8895,-31537, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -11342,-30742,-11342,-30742,-11342,-30742,-11342,-30742, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -13719,-29758,-13719,-29758,-13719,-29758,-13719,-29758, - -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196, - -16011,-28590,-16011,-28590,-16011,-28590,-16011,-28590, - -17121,-27939,-17121,-27939,-17121,-27939,-17121,-27939, - -18205,-27245,-18205,-27245,-18205,-27245,-18205,-27245, - -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510, - -20286,-25733,-20286,-25733,-20286,-25733,-20286,-25733, - -21281,-24917,-21281,-24917,-21281,-24917,-21281,-24917, - -22243,-24062,-22243,-24062,-22243,-24062,-22243,-24062, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -24062,-22243,-24062,-22243,-24062,-22243,-24062,-22243, - -24917,-21281,-24917,-21281,-24917,-21281,-24917,-21281, - -25733,-20286,-25733,-20286,-25733,-20286,-25733,-20286, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -27245,-18205,-27245,-18205,-27245,-18205,-27245,-18205, - -27939,-17121,-27939,-17121,-27939,-17121,-27939,-17121, - -28590,-16011,-28590,-16011,-28590,-16011,-28590,-16011, - -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876, - -29758,-13719,-29758,-13719,-29758,-13719,-29758,-13719, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30742,-11342,-30742,-11342,-30742,-11342,-30742,-11342, - -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126, - -31537,-8895,-31537,-8895,-31537,-8895,-31537,-8895, - -31862,-7650,-31862,-7650,-31862,-7650,-31862,-7650, - -32138,-6393,-32138,-6393,-32138,-6393,-32138,-6393, - -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126, - -32540,-3852,-32540,-3852,-32540,-3852,-32540,-3852, - -32666,-2571,-32666,-2571,-32666,-2571,-32666,-2571, - -32742,-1287,-32742,-1287,-32742,-1287,-32742,-1287, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32742,1286,-32742,1286,-32742,1286,-32742,1286, - -32666,2570,-32666,2570,-32666,2570,-32666,2570, - -32540,3851,-32540,3851,-32540,3851,-32540,3851, - -32364,5125,-32364,5125,-32364,5125,-32364,5125, - -32138,6392,-32138,6392,-32138,6392,-32138,6392, - -31862,7649,-31862,7649,-31862,7649,-31862,7649, - -31537,8894,-31537,8894,-31537,8894,-31537,8894, - -31164,10125,-31164,10125,-31164,10125,-31164,10125, - -30742,11341,-30742,11341,-30742,11341,-30742,11341, - -30273,12539,-30273,12539,-30273,12539,-30273,12539, - -29758,13718,-29758,13718,-29758,13718,-29758,13718, - -29196,14875,-29196,14875,-29196,14875,-29196,14875, - -28590,16010,-28590,16010,-28590,16010,-28590,16010, - -27939,17120,-27939,17120,-27939,17120,-27939,17120, - -27245,18204,-27245,18204,-27245,18204,-27245,18204, - -26510,19259,-26510,19259,-26510,19259,-26510,19259, - -25733,20285,-25733,20285,-25733,20285,-25733,20285, - -24917,21280,-24917,21280,-24917,21280,-24917,21280, - -24062,22242,-24062,22242,-24062,22242,-24062,22242, - -23170,23169,-23170,23169,-23170,23169,-23170,23169, - -22243,24061,-22243,24061,-22243,24061,-22243,24061, - -21281,24916,-21281,24916,-21281,24916,-21281,24916, - -20286,25732,-20286,25732,-20286,25732,-20286,25732, - -19260,26509,-19260,26509,-19260,26509,-19260,26509, - -18205,27244,-18205,27244,-18205,27244,-18205,27244, - -17121,27938,-17121,27938,-17121,27938,-17121,27938, - -16011,28589,-16011,28589,-16011,28589,-16011,28589, - -14876,29195,-14876,29195,-14876,29195,-14876,29195, - -13719,29757,-13719,29757,-13719,29757,-13719,29757, - -12540,30272,-12540,30272,-12540,30272,-12540,30272, - -11342,30741,-11342,30741,-11342,30741,-11342,30741, - -10126,31163,-10126,31163,-10126,31163,-10126,31163, - -8895,31536,-8895,31536,-8895,31536,-8895,31536, - -7650,31861,-7650,31861,-7650,31861,-7650,31861, - -6393,32137,-6393,32137,-6393,32137,-6393,32137, - -5126,32363,-5126,32363,-5126,32363,-5126,32363, - -3852,32539,-3852,32539,-3852,32539,-3852,32539, - -2571,32665,-2571,32665,-2571,32665,-2571,32665, - -1287,32741,-1287,32741,-1287,32741,-1287,32741 - }; +static int16_t twa480[119*2*4]; +static int16_t twb480[119*2*4]; +static int16_t twc480[119*2*4]; void dft480(int16_t *x,int16_t *y,unsigned char scale_flag) // 120 x 4 { @@ -10628,392 +7798,9 @@ void dft480(int16_t *x,int16_t *y,unsigned char scale_flag) // 120 x 4 }; -/* -Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:179)/540)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:179)/540)); -twa2 = zeros(1,2*179); -twb2 = zeros(1,2*179); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa540[179*2*4] = {"); -for i=1:2:(2*178) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"static int16_t twb540[179*2*4] = {"); -for i=1:2:(2*178) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fclose(fd); -*/ -static int16_t twa540[179*2*4] = {32764,-382,32764,-382,32764,-382,32764,-382, - 32758,-763,32758,-763,32758,-763,32758,-763, - 32747,-1144,32747,-1144,32747,-1144,32747,-1144, - 32731,-1525,32731,-1525,32731,-1525,32731,-1525, - 32711,-1906,32711,-1906,32711,-1906,32711,-1906, - 32687,-2286,32687,-2286,32687,-2286,32687,-2286, - 32658,-2666,32658,-2666,32658,-2666,32658,-2666, - 32625,-3046,32625,-3046,32625,-3046,32625,-3046, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32498,-4183,32498,-4183,32498,-4183,32498,-4183, - 32448,-4561,32448,-4561,32448,-4561,32448,-4561, - 32392,-4938,32392,-4938,32392,-4938,32392,-4938, - 32333,-5315,32333,-5315,32333,-5315,32333,-5315, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32200,-6066,32200,-6066,32200,-6066,32200,-6066, - 32128,-6440,32128,-6440,32128,-6440,32128,-6440, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31969,-7186,31969,-7186,31969,-7186,31969,-7186, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31793,-7928,31793,-7928,31793,-7928,31793,-7928, - 31699,-8297,31699,-8297,31699,-8297,31699,-8297, - 31600,-8665,31600,-8665,31600,-8665,31600,-8665, - 31497,-9032,31497,-9032,31497,-9032,31497,-9032, - 31390,-9398,31390,-9398,31390,-9398,31390,-9398, - 31278,-9763,31278,-9763,31278,-9763,31278,-9763, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 31043,-10488,31043,-10488,31043,-10488,31043,-10488, - 30919,-10848,30919,-10848,30919,-10848,30919,-10848, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30658,-11565,30658,-11565,30658,-11565,30658,-11565, - 30521,-11921,30521,-11921,30521,-11921,30521,-11921, - 30381,-12275,30381,-12275,30381,-12275,30381,-12275, - 30236,-12628,30236,-12628,30236,-12628,30236,-12628, - 30087,-12979,30087,-12979,30087,-12979,30087,-12979, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29777,-13675,29777,-13675,29777,-13675,29777,-13675, - 29615,-14021,29615,-14021,29615,-14021,29615,-14021, - 29450,-14365,29450,-14365,29450,-14365,29450,-14365, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 29108,-15046,29108,-15046,29108,-15046,29108,-15046, - 28931,-15384,28931,-15384,28931,-15384,28931,-15384, - 28750,-15719,28750,-15719,28750,-15719,28750,-15719, - 28565,-16053,28565,-16053,28565,-16053,28565,-16053, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28184,-16713,28184,-16713,28184,-16713,28184,-16713, - 27988,-17040,27988,-17040,27988,-17040,27988,-17040, - 27787,-17364,27787,-17364,27787,-17364,27787,-17364, - 27584,-17687,27584,-17687,27584,-17687,27584,-17687, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 27165,-18324,27165,-18324,27165,-18324,27165,-18324, - 26950,-18638,26950,-18638,26950,-18638,26950,-18638, - 26731,-18951,26731,-18951,26731,-18951,26731,-18951, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26283,-19568,26283,-19568,26283,-19568,26283,-19568, - 26053,-19872,26053,-19872,26053,-19872,26053,-19872, - 25820,-20174,25820,-20174,25820,-20174,25820,-20174, - 25584,-20473,25584,-20473,25584,-20473,25584,-20473, - 25344,-20769,25344,-20769,25344,-20769,25344,-20769, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24854,-21353,24854,-21353,24854,-21353,24854,-21353, - 24604,-21641,24604,-21641,24604,-21641,24604,-21641, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 24093,-22208,24093,-22208,24093,-22208,24093,-22208, - 23833,-22487,23833,-22487,23833,-22487,23833,-22487, - 23570,-22762,23570,-22762,23570,-22762,23570,-22762, - 23304,-23035,23304,-23035,23304,-23035,23304,-23035, - 23034,-23305,23034,-23305,23034,-23305,23034,-23305, - 22761,-23571,22761,-23571,22761,-23571,22761,-23571, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 22207,-24094,22207,-24094,22207,-24094,22207,-24094, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21640,-24605,21640,-24605,21640,-24605,21640,-24605, - 21352,-24855,21352,-24855,21352,-24855,21352,-24855, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20768,-25345,20768,-25345,20768,-25345,20768,-25345, - 20472,-25585,20472,-25585,20472,-25585,20472,-25585, - 20173,-25821,20173,-25821,20173,-25821,20173,-25821, - 19871,-26054,19871,-26054,19871,-26054,19871,-26054, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18950,-26732,18950,-26732,18950,-26732,18950,-26732, - 18637,-26951,18637,-26951,18637,-26951,18637,-26951, - 18323,-27166,18323,-27166,18323,-27166,18323,-27166, - 18005,-27377,18005,-27377,18005,-27377,18005,-27377, - 17686,-27585,17686,-27585,17686,-27585,17686,-27585, - 17363,-27788,17363,-27788,17363,-27788,17363,-27788, - 17039,-27989,17039,-27989,17039,-27989,17039,-27989, - 16712,-28185,16712,-28185,16712,-28185,16712,-28185, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16052,-28566,16052,-28566,16052,-28566,16052,-28566, - 15718,-28751,15718,-28751,15718,-28751,15718,-28751, - 15383,-28932,15383,-28932,15383,-28932,15383,-28932, - 15045,-29109,15045,-29109,15045,-29109,15045,-29109, - 14705,-29282,14705,-29282,14705,-29282,14705,-29282, - 14364,-29451,14364,-29451,14364,-29451,14364,-29451, - 14020,-29616,14020,-29616,14020,-29616,14020,-29616, - 13674,-29778,13674,-29778,13674,-29778,13674,-29778, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12627,-30237,12627,-30237,12627,-30237,12627,-30237, - 12274,-30382,12274,-30382,12274,-30382,12274,-30382, - 11920,-30522,11920,-30522,11920,-30522,11920,-30522, - 11564,-30659,11564,-30659,11564,-30659,11564,-30659, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10847,-30920,10847,-30920,10847,-30920,10847,-30920, - 10487,-31044,10487,-31044,10487,-31044,10487,-31044, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9762,-31279,9762,-31279,9762,-31279,9762,-31279, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 9031,-31498,9031,-31498,9031,-31498,9031,-31498, - 8664,-31601,8664,-31601,8664,-31601,8664,-31601, - 8296,-31700,8296,-31700,8296,-31700,8296,-31700, - 7927,-31794,7927,-31794,7927,-31794,7927,-31794, - 7556,-31884,7556,-31884,7556,-31884,7556,-31884, - 7185,-31970,7185,-31970,7185,-31970,7185,-31970, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6439,-32129,6439,-32129,6439,-32129,6439,-32129, - 6065,-32201,6065,-32201,6065,-32201,6065,-32201, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5314,-32334,5314,-32334,5314,-32334,5314,-32334, - 4937,-32393,4937,-32393,4937,-32393,4937,-32393, - 4560,-32449,4560,-32449,4560,-32449,4560,-32449, - 4182,-32499,4182,-32499,4182,-32499,4182,-32499, - 3804,-32546,3804,-32546,3804,-32546,3804,-32546, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 3045,-32626,3045,-32626,3045,-32626,3045,-32626, - 2665,-32659,2665,-32659,2665,-32659,2665,-32659, - 2285,-32688,2285,-32688,2285,-32688,2285,-32688, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 1524,-32732,1524,-32732,1524,-32732,1524,-32732, - 1143,-32748,1143,-32748,1143,-32748,1143,-32748, - 762,-32759,762,-32759,762,-32759,762,-32759, - 381,-32765,381,-32765,381,-32765,381,-32765, - 0,-32767,0,-32767,0,-32767,0,-32767, - -382,-32765,-382,-32765,-382,-32765,-382,-32765, - -763,-32759,-763,-32759,-763,-32759,-763,-32759, - -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748, - -1525,-32732,-1525,-32732,-1525,-32732,-1525,-32732, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -2286,-32688,-2286,-32688,-2286,-32688,-2286,-32688, - -2666,-32659,-2666,-32659,-2666,-32659,-2666,-32659, - -3046,-32626,-3046,-32626,-3046,-32626,-3046,-32626, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546, - -4183,-32499,-4183,-32499,-4183,-32499,-4183,-32499, - -4561,-32449,-4561,-32449,-4561,-32449,-4561,-32449, - -4938,-32393,-4938,-32393,-4938,-32393,-4938,-32393, - -5315,-32334,-5315,-32334,-5315,-32334,-5315,-32334, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6066,-32201,-6066,-32201,-6066,-32201,-6066,-32201, - -6440,-32129,-6440,-32129,-6440,-32129,-6440,-32129, - -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051, - -7186,-31970,-7186,-31970,-7186,-31970,-7186,-31970, - -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884, - -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794, - -8297,-31700,-8297,-31700,-8297,-31700,-8297,-31700, - -8665,-31601,-8665,-31601,-8665,-31601,-8665,-31601, - -9032,-31498,-9032,-31498,-9032,-31498,-9032,-31498, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -9763,-31279,-9763,-31279,-9763,-31279,-9763,-31279, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10488,-31044,-10488,-31044,-10488,-31044,-10488,-31044, - -10848,-30920,-10848,-30920,-10848,-30920,-10848,-30920, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11565,-30659,-11565,-30659,-11565,-30659,-11565,-30659, - -11921,-30522,-11921,-30522,-11921,-30522,-11921,-30522, - -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382, - -12628,-30237,-12628,-30237,-12628,-30237,-12628,-30237, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935, - -13675,-29778,-13675,-29778,-13675,-29778,-13675,-29778, - -14021,-29616,-14021,-29616,-14021,-29616,-14021,-29616, - -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451, - -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282, - -15046,-29109,-15046,-29109,-15046,-29109,-15046,-29109, - -15384,-28932,-15384,-28932,-15384,-28932,-15384,-28932, - -15719,-28751,-15719,-28751,-15719,-28751,-15719,-28751, - -16053,-28566,-16053,-28566,-16053,-28566,-16053,-28566 - }; -static int16_t twb540[179*2*4] = {32758,-763,32758,-763,32758,-763,32758,-763, - 32731,-1525,32731,-1525,32731,-1525,32731,-1525, - 32687,-2286,32687,-2286,32687,-2286,32687,-2286, - 32625,-3046,32625,-3046,32625,-3046,32625,-3046, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32448,-4561,32448,-4561,32448,-4561,32448,-4561, - 32333,-5315,32333,-5315,32333,-5315,32333,-5315, - 32200,-6066,32200,-6066,32200,-6066,32200,-6066, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31699,-8297,31699,-8297,31699,-8297,31699,-8297, - 31497,-9032,31497,-9032,31497,-9032,31497,-9032, - 31278,-9763,31278,-9763,31278,-9763,31278,-9763, - 31043,-10488,31043,-10488,31043,-10488,31043,-10488, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30521,-11921,30521,-11921,30521,-11921,30521,-11921, - 30236,-12628,30236,-12628,30236,-12628,30236,-12628, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29615,-14021,29615,-14021,29615,-14021,29615,-14021, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 28931,-15384,28931,-15384,28931,-15384,28931,-15384, - 28565,-16053,28565,-16053,28565,-16053,28565,-16053, - 28184,-16713,28184,-16713,28184,-16713,28184,-16713, - 27787,-17364,27787,-17364,27787,-17364,27787,-17364, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 26950,-18638,26950,-18638,26950,-18638,26950,-18638, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26053,-19872,26053,-19872,26053,-19872,26053,-19872, - 25584,-20473,25584,-20473,25584,-20473,25584,-20473, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24604,-21641,24604,-21641,24604,-21641,24604,-21641, - 24093,-22208,24093,-22208,24093,-22208,24093,-22208, - 23570,-22762,23570,-22762,23570,-22762,23570,-22762, - 23034,-23305,23034,-23305,23034,-23305,23034,-23305, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21352,-24855,21352,-24855,21352,-24855,21352,-24855, - 20768,-25345,20768,-25345,20768,-25345,20768,-25345, - 20173,-25821,20173,-25821,20173,-25821,20173,-25821, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 18950,-26732,18950,-26732,18950,-26732,18950,-26732, - 18323,-27166,18323,-27166,18323,-27166,18323,-27166, - 17686,-27585,17686,-27585,17686,-27585,17686,-27585, - 17039,-27989,17039,-27989,17039,-27989,17039,-27989, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15718,-28751,15718,-28751,15718,-28751,15718,-28751, - 15045,-29109,15045,-29109,15045,-29109,15045,-29109, - 14364,-29451,14364,-29451,14364,-29451,14364,-29451, - 13674,-29778,13674,-29778,13674,-29778,13674,-29778, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12274,-30382,12274,-30382,12274,-30382,12274,-30382, - 11564,-30659,11564,-30659,11564,-30659,11564,-30659, - 10847,-30920,10847,-30920,10847,-30920,10847,-30920, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 8664,-31601,8664,-31601,8664,-31601,8664,-31601, - 7927,-31794,7927,-31794,7927,-31794,7927,-31794, - 7185,-31970,7185,-31970,7185,-31970,7185,-31970, - 6439,-32129,6439,-32129,6439,-32129,6439,-32129, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 4937,-32393,4937,-32393,4937,-32393,4937,-32393, - 4182,-32499,4182,-32499,4182,-32499,4182,-32499, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 2665,-32659,2665,-32659,2665,-32659,2665,-32659, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 1143,-32748,1143,-32748,1143,-32748,1143,-32748, - 381,-32765,381,-32765,381,-32765,381,-32765, - -382,-32765,-382,-32765,-382,-32765,-382,-32765, - -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -2666,-32659,-2666,-32659,-2666,-32659,-2666,-32659, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -4183,-32499,-4183,-32499,-4183,-32499,-4183,-32499, - -4938,-32393,-4938,-32393,-4938,-32393,-4938,-32393, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6440,-32129,-6440,-32129,-6440,-32129,-6440,-32129, - -7186,-31970,-7186,-31970,-7186,-31970,-7186,-31970, - -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794, - -8665,-31601,-8665,-31601,-8665,-31601,-8665,-31601, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10848,-30920,-10848,-30920,-10848,-30920,-10848,-30920, - -11565,-30659,-11565,-30659,-11565,-30659,-11565,-30659, - -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -13675,-29778,-13675,-29778,-13675,-29778,-13675,-29778, - -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451, - -15046,-29109,-15046,-29109,-15046,-29109,-15046,-29109, - -15719,-28751,-15719,-28751,-15719,-28751,-15719,-28751, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -17040,-27989,-17040,-27989,-17040,-27989,-17040,-27989, - -17687,-27585,-17687,-27585,-17687,-27585,-17687,-27585, - -18324,-27166,-18324,-27166,-18324,-27166,-18324,-27166, - -18951,-26732,-18951,-26732,-18951,-26732,-18951,-26732, - -19568,-26284,-19568,-26284,-19568,-26284,-19568,-26284, - -20174,-25821,-20174,-25821,-20174,-25821,-20174,-25821, - -20769,-25345,-20769,-25345,-20769,-25345,-20769,-25345, - -21353,-24855,-21353,-24855,-21353,-24855,-21353,-24855, - -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351, - -22487,-23834,-22487,-23834,-22487,-23834,-22487,-23834, - -23035,-23305,-23035,-23305,-23035,-23305,-23035,-23305, - -23571,-22762,-23571,-22762,-23571,-22762,-23571,-22762, - -24094,-22208,-24094,-22208,-24094,-22208,-24094,-22208, - -24605,-21641,-24605,-21641,-24605,-21641,-24605,-21641, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25585,-20473,-25585,-20473,-25585,-20473,-25585,-20473, - -26054,-19872,-26054,-19872,-26054,-19872,-26054,-19872, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -26951,-18638,-26951,-18638,-26951,-18638,-26951,-18638, - -27377,-18006,-27377,-18006,-27377,-18006,-27377,-18006, - -27788,-17364,-27788,-17364,-27788,-17364,-27788,-17364, - -28185,-16713,-28185,-16713,-28185,-16713,-28185,-16713, - -28566,-16053,-28566,-16053,-28566,-16053,-28566,-16053, - -28932,-15384,-28932,-15384,-28932,-15384,-28932,-15384, - -29282,-14706,-29282,-14706,-29282,-14706,-29282,-14706, - -29616,-14021,-29616,-14021,-29616,-14021,-29616,-14021, - -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328, - -30237,-12628,-30237,-12628,-30237,-12628,-30237,-12628, - -30522,-11921,-30522,-11921,-30522,-11921,-30522,-11921, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -31044,-10488,-31044,-10488,-31044,-10488,-31044,-10488, - -31279,-9763,-31279,-9763,-31279,-9763,-31279,-9763, - -31498,-9032,-31498,-9032,-31498,-9032,-31498,-9032, - -31700,-8297,-31700,-8297,-31700,-8297,-31700,-8297, - -31884,-7557,-31884,-7557,-31884,-7557,-31884,-7557, - -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813, - -32201,-6066,-32201,-6066,-32201,-6066,-32201,-6066, - -32334,-5315,-32334,-5315,-32334,-5315,-32334,-5315, - -32449,-4561,-32449,-4561,-32449,-4561,-32449,-4561, - -32546,-3805,-32546,-3805,-32546,-3805,-32546,-3805, - -32626,-3046,-32626,-3046,-32626,-3046,-32626,-3046, - -32688,-2286,-32688,-2286,-32688,-2286,-32688,-2286, - -32732,-1525,-32732,-1525,-32732,-1525,-32732,-1525, - -32759,-763,-32759,-763,-32759,-763,-32759,-763, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32759,762,-32759,762,-32759,762,-32759,762, - -32732,1524,-32732,1524,-32732,1524,-32732,1524, - -32688,2285,-32688,2285,-32688,2285,-32688,2285, - -32626,3045,-32626,3045,-32626,3045,-32626,3045, - -32546,3804,-32546,3804,-32546,3804,-32546,3804, - -32449,4560,-32449,4560,-32449,4560,-32449,4560, - -32334,5314,-32334,5314,-32334,5314,-32334,5314, - -32201,6065,-32201,6065,-32201,6065,-32201,6065, - -32051,6812,-32051,6812,-32051,6812,-32051,6812, - -31884,7556,-31884,7556,-31884,7556,-31884,7556, - -31700,8296,-31700,8296,-31700,8296,-31700,8296, - -31498,9031,-31498,9031,-31498,9031,-31498,9031, - -31279,9762,-31279,9762,-31279,9762,-31279,9762, - -31044,10487,-31044,10487,-31044,10487,-31044,10487, - -30791,11206,-30791,11206,-30791,11206,-30791,11206, - -30522,11920,-30522,11920,-30522,11920,-30522,11920, - -30237,12627,-30237,12627,-30237,12627,-30237,12627, - -29935,13327,-29935,13327,-29935,13327,-29935,13327, - -29616,14020,-29616,14020,-29616,14020,-29616,14020, - -29282,14705,-29282,14705,-29282,14705,-29282,14705, - -28932,15383,-28932,15383,-28932,15383,-28932,15383, - -28566,16052,-28566,16052,-28566,16052,-28566,16052, - -28185,16712,-28185,16712,-28185,16712,-28185,16712, - -27788,17363,-27788,17363,-27788,17363,-27788,17363, - -27377,18005,-27377,18005,-27377,18005,-27377,18005, - -26951,18637,-26951,18637,-26951,18637,-26951,18637, - -26510,19259,-26510,19259,-26510,19259,-26510,19259, - -26054,19871,-26054,19871,-26054,19871,-26054,19871, - -25585,20472,-25585,20472,-25585,20472,-25585,20472, - -25101,21062,-25101,21062,-25101,21062,-25101,21062, - -24605,21640,-24605,21640,-24605,21640,-24605,21640, - -24094,22207,-24094,22207,-24094,22207,-24094,22207, - -23571,22761,-23571,22761,-23571,22761,-23571,22761, - -23035,23304,-23035,23304,-23035,23304,-23035,23304, - -22487,23833,-22487,23833,-22487,23833,-22487,23833, - -21926,24350,-21926,24350,-21926,24350,-21926,24350, - -21353,24854,-21353,24854,-21353,24854,-21353,24854, - -20769,25344,-20769,25344,-20769,25344,-20769,25344, - -20174,25820,-20174,25820,-20174,25820,-20174,25820, - -19568,26283,-19568,26283,-19568,26283,-19568,26283, - -18951,26731,-18951,26731,-18951,26731,-18951,26731, - -18324,27165,-18324,27165,-18324,27165,-18324,27165, - -17687,27584,-17687,27584,-17687,27584,-17687,27584, - -17040,27988,-17040,27988,-17040,27988,-17040,27988 - }; +static int16_t twa540[179*2*4]; +static int16_t twb540[179*2*4]; void dft540(int16_t *x,int16_t *y,unsigned char scale_flag) // 180 x 3 { @@ -11063,416 +7850,8 @@ void dft540(int16_t *x,int16_t *y,unsigned char scale_flag) // 180 x 3 }; -/* -Twiddles generated with - -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:191)/576)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:191)/576)); -twa2 = zeros(1,2*191); -twb2 = zeros(1,2*191); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa576[191*2*4] = {"); -for i=1:2:(2*190) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"static int16_t twb576[191*2*4] = {"); -for i=1:2:(2*190) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fclose(fd); -*/ -static int16_t twa576[191*2*4] = {32765,-358,32765,-358,32765,-358,32765,-358, - 32759,-715,32759,-715,32759,-715,32759,-715, - 32749,-1073,32749,-1073,32749,-1073,32749,-1073, - 32735,-1430,32735,-1430,32735,-1430,32735,-1430, - 32718,-1787,32718,-1787,32718,-1787,32718,-1787, - 32696,-2144,32696,-2144,32696,-2144,32696,-2144, - 32671,-2500,32671,-2500,32671,-2500,32671,-2500, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32609,-3212,32609,-3212,32609,-3212,32609,-3212, - 32572,-3568,32572,-3568,32572,-3568,32572,-3568, - 32531,-3923,32531,-3923,32531,-3923,32531,-3923, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32438,-4632,32438,-4632,32438,-4632,32438,-4632, - 32385,-4985,32385,-4985,32385,-4985,32385,-4985, - 32329,-5338,32329,-5338,32329,-5338,32329,-5338, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32205,-6042,32205,-6042,32205,-6042,32205,-6042, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 32065,-6743,32065,-6743,32065,-6743,32065,-6743, - 31990,-7093,31990,-7093,31990,-7093,31990,-7093, - 31911,-7441,31911,-7441,31911,-7441,31911,-7441, - 31827,-7789,31827,-7789,31827,-7789,31827,-7789, - 31741,-8135,31741,-8135,31741,-8135,31741,-8135, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31556,-8826,31556,-8826,31556,-8826,31556,-8826, - 31457,-9170,31457,-9170,31457,-9170,31457,-9170, - 31356,-9512,31356,-9512,31356,-9512,31356,-9512, - 31250,-9854,31250,-9854,31250,-9854,31250,-9854, - 31141,-10194,31141,-10194,31141,-10194,31141,-10194, - 31028,-10533,31028,-10533,31028,-10533,31028,-10533, - 30911,-10871,30911,-10871,30911,-10871,30911,-10871, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30666,-11543,30666,-11543,30666,-11543,30666,-11543, - 30539,-11877,30539,-11877,30539,-11877,30539,-11877, - 30407,-12209,30407,-12209,30407,-12209,30407,-12209, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30134,-12869,30134,-12869,30134,-12869,30134,-12869, - 29992,-13197,29992,-13197,29992,-13197,29992,-13197, - 29846,-13524,29846,-13524,29846,-13524,29846,-13524, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29544,-14172,29544,-14172,29544,-14172,29544,-14172, - 29387,-14493,29387,-14493,29387,-14493,29387,-14493, - 29227,-14813,29227,-14813,29227,-14813,29227,-14813, - 29064,-15131,29064,-15131,29064,-15131,29064,-15131, - 28897,-15447,28897,-15447,28897,-15447,28897,-15447, - 28727,-15761,28727,-15761,28727,-15761,28727,-15761, - 28554,-16073,28554,-16073,28554,-16073,28554,-16073, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28196,-16693,28196,-16693,28196,-16693,28196,-16693, - 28012,-16999,28012,-16999,28012,-16999,28012,-16999, - 27825,-17304,27825,-17304,27825,-17304,27825,-17304, - 27635,-17606,27635,-17606,27635,-17606,27635,-17606, - 27441,-17907,27441,-17907,27441,-17907,27441,-17907, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 27044,-18501,27044,-18501,27044,-18501,27044,-18501, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26634,-19087,26634,-19087,26634,-19087,26634,-19087, - 26424,-19376,26424,-19376,26424,-19376,26424,-19376, - 26211,-19663,26211,-19663,26211,-19663,26211,-19663, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25776,-20230,25776,-20230,25776,-20230,25776,-20230, - 25554,-20510,25554,-20510,25554,-20510,25554,-20510, - 25329,-20788,25329,-20788,25329,-20788,25329,-20788, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24869,-21335,24869,-21335,24869,-21335,24869,-21335, - 24635,-21605,24635,-21605,24635,-21605,24635,-21605, - 24398,-21873,24398,-21873,24398,-21873,24398,-21873, - 24158,-22138,24158,-22138,24158,-22138,24158,-22138, - 23915,-22400,23915,-22400,23915,-22400,23915,-22400, - 23669,-22659,23669,-22659,23669,-22659,23669,-22659, - 23421,-22916,23421,-22916,23421,-22916,23421,-22916, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22915,-23422,22915,-23422,22915,-23422,22915,-23422, - 22658,-23670,22658,-23670,22658,-23670,22658,-23670, - 22399,-23916,22399,-23916,22399,-23916,22399,-23916, - 22137,-24159,22137,-24159,22137,-24159,22137,-24159, - 21872,-24399,21872,-24399,21872,-24399,21872,-24399, - 21604,-24636,21604,-24636,21604,-24636,21604,-24636, - 21334,-24870,21334,-24870,21334,-24870,21334,-24870, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20787,-25330,20787,-25330,20787,-25330,20787,-25330, - 20509,-25555,20509,-25555,20509,-25555,20509,-25555, - 20229,-25777,20229,-25777,20229,-25777,20229,-25777, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19662,-26212,19662,-26212,19662,-26212,19662,-26212, - 19375,-26425,19375,-26425,19375,-26425,19375,-26425, - 19086,-26635,19086,-26635,19086,-26635,19086,-26635, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18500,-27045,18500,-27045,18500,-27045,18500,-27045, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 17906,-27442,17906,-27442,17906,-27442,17906,-27442, - 17605,-27636,17605,-27636,17605,-27636,17605,-27636, - 17303,-27826,17303,-27826,17303,-27826,17303,-27826, - 16998,-28013,16998,-28013,16998,-28013,16998,-28013, - 16692,-28197,16692,-28197,16692,-28197,16692,-28197, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16072,-28555,16072,-28555,16072,-28555,16072,-28555, - 15760,-28728,15760,-28728,15760,-28728,15760,-28728, - 15446,-28898,15446,-28898,15446,-28898,15446,-28898, - 15130,-29065,15130,-29065,15130,-29065,15130,-29065, - 14812,-29228,14812,-29228,14812,-29228,14812,-29228, - 14492,-29388,14492,-29388,14492,-29388,14492,-29388, - 14171,-29545,14171,-29545,14171,-29545,14171,-29545, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 13523,-29847,13523,-29847,13523,-29847,13523,-29847, - 13196,-29993,13196,-29993,13196,-29993,13196,-29993, - 12868,-30135,12868,-30135,12868,-30135,12868,-30135, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12208,-30408,12208,-30408,12208,-30408,12208,-30408, - 11876,-30540,11876,-30540,11876,-30540,11876,-30540, - 11542,-30667,11542,-30667,11542,-30667,11542,-30667, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10870,-30912,10870,-30912,10870,-30912,10870,-30912, - 10532,-31029,10532,-31029,10532,-31029,10532,-31029, - 10193,-31142,10193,-31142,10193,-31142,10193,-31142, - 9853,-31251,9853,-31251,9853,-31251,9853,-31251, - 9511,-31357,9511,-31357,9511,-31357,9511,-31357, - 9169,-31458,9169,-31458,9169,-31458,9169,-31458, - 8825,-31557,8825,-31557,8825,-31557,8825,-31557, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8134,-31742,8134,-31742,8134,-31742,8134,-31742, - 7788,-31828,7788,-31828,7788,-31828,7788,-31828, - 7440,-31912,7440,-31912,7440,-31912,7440,-31912, - 7092,-31991,7092,-31991,7092,-31991,7092,-31991, - 6742,-32066,6742,-32066,6742,-32066,6742,-32066, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 6041,-32206,6041,-32206,6041,-32206,6041,-32206, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5337,-32330,5337,-32330,5337,-32330,5337,-32330, - 4984,-32386,4984,-32386,4984,-32386,4984,-32386, - 4631,-32439,4631,-32439,4631,-32439,4631,-32439, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3922,-32532,3922,-32532,3922,-32532,3922,-32532, - 3567,-32573,3567,-32573,3567,-32573,3567,-32573, - 3211,-32610,3211,-32610,3211,-32610,3211,-32610, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 2499,-32672,2499,-32672,2499,-32672,2499,-32672, - 2143,-32697,2143,-32697,2143,-32697,2143,-32697, - 1786,-32719,1786,-32719,1786,-32719,1786,-32719, - 1429,-32736,1429,-32736,1429,-32736,1429,-32736, - 1072,-32750,1072,-32750,1072,-32750,1072,-32750, - 714,-32760,714,-32760,714,-32760,714,-32760, - 357,-32766,357,-32766,357,-32766,357,-32766, - 0,-32767,0,-32767,0,-32767,0,-32767, - -358,-32766,-358,-32766,-358,-32766,-358,-32766, - -715,-32760,-715,-32760,-715,-32760,-715,-32760, - -1073,-32750,-1073,-32750,-1073,-32750,-1073,-32750, - -1430,-32736,-1430,-32736,-1430,-32736,-1430,-32736, - -1787,-32719,-1787,-32719,-1787,-32719,-1787,-32719, - -2144,-32697,-2144,-32697,-2144,-32697,-2144,-32697, - -2500,-32672,-2500,-32672,-2500,-32672,-2500,-32672, - -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643, - -3212,-32610,-3212,-32610,-3212,-32610,-3212,-32610, - -3568,-32573,-3568,-32573,-3568,-32573,-3568,-32573, - -3923,-32532,-3923,-32532,-3923,-32532,-3923,-32532, - -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487, - -4632,-32439,-4632,-32439,-4632,-32439,-4632,-32439, - -4985,-32386,-4985,-32386,-4985,-32386,-4985,-32386, - -5338,-32330,-5338,-32330,-5338,-32330,-5338,-32330, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6042,-32206,-6042,-32206,-6042,-32206,-6042,-32206, - -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138, - -6743,-32066,-6743,-32066,-6743,-32066,-6743,-32066, - -7093,-31991,-7093,-31991,-7093,-31991,-7093,-31991, - -7441,-31912,-7441,-31912,-7441,-31912,-7441,-31912, - -7789,-31828,-7789,-31828,-7789,-31828,-7789,-31828, - -8135,-31742,-8135,-31742,-8135,-31742,-8135,-31742, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -8826,-31557,-8826,-31557,-8826,-31557,-8826,-31557, - -9170,-31458,-9170,-31458,-9170,-31458,-9170,-31458, - -9512,-31357,-9512,-31357,-9512,-31357,-9512,-31357, - -9854,-31251,-9854,-31251,-9854,-31251,-9854,-31251, - -10194,-31142,-10194,-31142,-10194,-31142,-10194,-31142, - -10533,-31029,-10533,-31029,-10533,-31029,-10533,-31029, - -10871,-30912,-10871,-30912,-10871,-30912,-10871,-30912, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11543,-30667,-11543,-30667,-11543,-30667,-11543,-30667, - -11877,-30540,-11877,-30540,-11877,-30540,-11877,-30540, - -12209,-30408,-12209,-30408,-12209,-30408,-12209,-30408, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -12869,-30135,-12869,-30135,-12869,-30135,-12869,-30135, - -13197,-29993,-13197,-29993,-13197,-29993,-13197,-29993, - -13524,-29847,-13524,-29847,-13524,-29847,-13524,-29847, - -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697, - -14172,-29545,-14172,-29545,-14172,-29545,-14172,-29545, - -14493,-29388,-14493,-29388,-14493,-29388,-14493,-29388, - -14813,-29228,-14813,-29228,-14813,-29228,-14813,-29228, - -15131,-29065,-15131,-29065,-15131,-29065,-15131,-29065, - -15447,-28898,-15447,-28898,-15447,-28898,-15447,-28898, - -15761,-28728,-15761,-28728,-15761,-28728,-15761,-28728, - -16073,-28555,-16073,-28555,-16073,-28555,-16073,-28555 - }; -static int16_t twb576[191*2*4] = {32759,-715,32759,-715,32759,-715,32759,-715, - 32735,-1430,32735,-1430,32735,-1430,32735,-1430, - 32696,-2144,32696,-2144,32696,-2144,32696,-2144, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32572,-3568,32572,-3568,32572,-3568,32572,-3568, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32385,-4985,32385,-4985,32385,-4985,32385,-4985, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 31990,-7093,31990,-7093,31990,-7093,31990,-7093, - 31827,-7789,31827,-7789,31827,-7789,31827,-7789, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31457,-9170,31457,-9170,31457,-9170,31457,-9170, - 31250,-9854,31250,-9854,31250,-9854,31250,-9854, - 31028,-10533,31028,-10533,31028,-10533,31028,-10533, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30539,-11877,30539,-11877,30539,-11877,30539,-11877, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 29992,-13197,29992,-13197,29992,-13197,29992,-13197, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29387,-14493,29387,-14493,29387,-14493,29387,-14493, - 29064,-15131,29064,-15131,29064,-15131,29064,-15131, - 28727,-15761,28727,-15761,28727,-15761,28727,-15761, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28012,-16999,28012,-16999,28012,-16999,28012,-16999, - 27635,-17606,27635,-17606,27635,-17606,27635,-17606, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26424,-19376,26424,-19376,26424,-19376,26424,-19376, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25554,-20510,25554,-20510,25554,-20510,25554,-20510, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24635,-21605,24635,-21605,24635,-21605,24635,-21605, - 24158,-22138,24158,-22138,24158,-22138,24158,-22138, - 23669,-22659,23669,-22659,23669,-22659,23669,-22659, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22658,-23670,22658,-23670,22658,-23670,22658,-23670, - 22137,-24159,22137,-24159,22137,-24159,22137,-24159, - 21604,-24636,21604,-24636,21604,-24636,21604,-24636, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20509,-25555,20509,-25555,20509,-25555,20509,-25555, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19375,-26425,19375,-26425,19375,-26425,19375,-26425, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 17605,-27636,17605,-27636,17605,-27636,17605,-27636, - 16998,-28013,16998,-28013,16998,-28013,16998,-28013, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15760,-28728,15760,-28728,15760,-28728,15760,-28728, - 15130,-29065,15130,-29065,15130,-29065,15130,-29065, - 14492,-29388,14492,-29388,14492,-29388,14492,-29388, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 13196,-29993,13196,-29993,13196,-29993,13196,-29993, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 11876,-30540,11876,-30540,11876,-30540,11876,-30540, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10532,-31029,10532,-31029,10532,-31029,10532,-31029, - 9853,-31251,9853,-31251,9853,-31251,9853,-31251, - 9169,-31458,9169,-31458,9169,-31458,9169,-31458, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 7788,-31828,7788,-31828,7788,-31828,7788,-31828, - 7092,-31991,7092,-31991,7092,-31991,7092,-31991, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 4984,-32386,4984,-32386,4984,-32386,4984,-32386, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3567,-32573,3567,-32573,3567,-32573,3567,-32573, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 2143,-32697,2143,-32697,2143,-32697,2143,-32697, - 1429,-32736,1429,-32736,1429,-32736,1429,-32736, - 714,-32760,714,-32760,714,-32760,714,-32760, - 0,-32767,0,-32767,0,-32767,0,-32767, - -715,-32760,-715,-32760,-715,-32760,-715,-32760, - -1430,-32736,-1430,-32736,-1430,-32736,-1430,-32736, - -2144,-32697,-2144,-32697,-2144,-32697,-2144,-32697, - -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643, - -3568,-32573,-3568,-32573,-3568,-32573,-3568,-32573, - -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487, - -4985,-32386,-4985,-32386,-4985,-32386,-4985,-32386, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138, - -7093,-31991,-7093,-31991,-7093,-31991,-7093,-31991, - -7789,-31828,-7789,-31828,-7789,-31828,-7789,-31828, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -9170,-31458,-9170,-31458,-9170,-31458,-9170,-31458, - -9854,-31251,-9854,-31251,-9854,-31251,-9854,-31251, - -10533,-31029,-10533,-31029,-10533,-31029,-10533,-31029, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11877,-30540,-11877,-30540,-11877,-30540,-11877,-30540, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -13197,-29993,-13197,-29993,-13197,-29993,-13197,-29993, - -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697, - -14493,-29388,-14493,-29388,-14493,-29388,-14493,-29388, - -15131,-29065,-15131,-29065,-15131,-29065,-15131,-29065, - -15761,-28728,-15761,-28728,-15761,-28728,-15761,-28728, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -16999,-28013,-16999,-28013,-16999,-28013,-16999,-28013, - -17606,-27636,-17606,-27636,-17606,-27636,-17606,-27636, - -18205,-27245,-18205,-27245,-18205,-27245,-18205,-27245, - -18795,-26842,-18795,-26842,-18795,-26842,-18795,-26842, - -19376,-26425,-19376,-26425,-19376,-26425,-19376,-26425, - -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996, - -20510,-25555,-20510,-25555,-20510,-25555,-20510,-25555, - -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101, - -21605,-24636,-21605,-24636,-21605,-24636,-21605,-24636, - -22138,-24159,-22138,-24159,-22138,-24159,-22138,-24159, - -22659,-23670,-22659,-23670,-22659,-23670,-22659,-23670, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23670,-22659,-23670,-22659,-23670,-22659,-23670,-22659, - -24159,-22138,-24159,-22138,-24159,-22138,-24159,-22138, - -24636,-21605,-24636,-21605,-24636,-21605,-24636,-21605, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25555,-20510,-25555,-20510,-25555,-20510,-25555,-20510, - -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948, - -26425,-19376,-26425,-19376,-26425,-19376,-26425,-19376, - -26842,-18795,-26842,-18795,-26842,-18795,-26842,-18795, - -27245,-18205,-27245,-18205,-27245,-18205,-27245,-18205, - -27636,-17606,-27636,-17606,-27636,-17606,-27636,-17606, - -28013,-16999,-28013,-16999,-28013,-16999,-28013,-16999, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28728,-15761,-28728,-15761,-28728,-15761,-28728,-15761, - -29065,-15131,-29065,-15131,-29065,-15131,-29065,-15131, - -29388,-14493,-29388,-14493,-29388,-14493,-29388,-14493, - -29697,-13848,-29697,-13848,-29697,-13848,-29697,-13848, - -29993,-13197,-29993,-13197,-29993,-13197,-29993,-13197, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30540,-11877,-30540,-11877,-30540,-11877,-30540,-11877, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -31029,-10533,-31029,-10533,-31029,-10533,-31029,-10533, - -31251,-9854,-31251,-9854,-31251,-9854,-31251,-9854, - -31458,-9170,-31458,-9170,-31458,-9170,-31458,-9170, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31828,-7789,-31828,-7789,-31828,-7789,-31828,-7789, - -31991,-7093,-31991,-7093,-31991,-7093,-31991,-7093, - -32138,-6393,-32138,-6393,-32138,-6393,-32138,-6393, - -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690, - -32386,-4985,-32386,-4985,-32386,-4985,-32386,-4985, - -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277, - -32573,-3568,-32573,-3568,-32573,-3568,-32573,-3568, - -32643,-2856,-32643,-2856,-32643,-2856,-32643,-2856, - -32697,-2144,-32697,-2144,-32697,-2144,-32697,-2144, - -32736,-1430,-32736,-1430,-32736,-1430,-32736,-1430, - -32760,-715,-32760,-715,-32760,-715,-32760,-715, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32760,714,-32760,714,-32760,714,-32760,714, - -32736,1429,-32736,1429,-32736,1429,-32736,1429, - -32697,2143,-32697,2143,-32697,2143,-32697,2143, - -32643,2855,-32643,2855,-32643,2855,-32643,2855, - -32573,3567,-32573,3567,-32573,3567,-32573,3567, - -32487,4276,-32487,4276,-32487,4276,-32487,4276, - -32386,4984,-32386,4984,-32386,4984,-32386,4984, - -32270,5689,-32270,5689,-32270,5689,-32270,5689, - -32138,6392,-32138,6392,-32138,6392,-32138,6392, - -31991,7092,-31991,7092,-31991,7092,-31991,7092, - -31828,7788,-31828,7788,-31828,7788,-31828,7788, - -31651,8480,-31651,8480,-31651,8480,-31651,8480, - -31458,9169,-31458,9169,-31458,9169,-31458,9169, - -31251,9853,-31251,9853,-31251,9853,-31251,9853, - -31029,10532,-31029,10532,-31029,10532,-31029,10532, - -30791,11206,-30791,11206,-30791,11206,-30791,11206, - -30540,11876,-30540,11876,-30540,11876,-30540,11876, - -30273,12539,-30273,12539,-30273,12539,-30273,12539, - -29993,13196,-29993,13196,-29993,13196,-29993,13196, - -29697,13847,-29697,13847,-29697,13847,-29697,13847, - -29388,14492,-29388,14492,-29388,14492,-29388,14492, - -29065,15130,-29065,15130,-29065,15130,-29065,15130, - -28728,15760,-28728,15760,-28728,15760,-28728,15760, - -28378,16383,-28378,16383,-28378,16383,-28378,16383, - -28013,16998,-28013,16998,-28013,16998,-28013,16998, - -27636,17605,-27636,17605,-27636,17605,-27636,17605, - -27245,18204,-27245,18204,-27245,18204,-27245,18204, - -26842,18794,-26842,18794,-26842,18794,-26842,18794, - -26425,19375,-26425,19375,-26425,19375,-26425,19375, - -25996,19947,-25996,19947,-25996,19947,-25996,19947, - -25555,20509,-25555,20509,-25555,20509,-25555,20509, - -25101,21062,-25101,21062,-25101,21062,-25101,21062, - -24636,21604,-24636,21604,-24636,21604,-24636,21604, - -24159,22137,-24159,22137,-24159,22137,-24159,22137, - -23670,22658,-23670,22658,-23670,22658,-23670,22658, - -23170,23169,-23170,23169,-23170,23169,-23170,23169, - -22659,23669,-22659,23669,-22659,23669,-22659,23669, - -22138,24158,-22138,24158,-22138,24158,-22138,24158, - -21605,24635,-21605,24635,-21605,24635,-21605,24635, - -21063,25100,-21063,25100,-21063,25100,-21063,25100, - -20510,25554,-20510,25554,-20510,25554,-20510,25554, - -19948,25995,-19948,25995,-19948,25995,-19948,25995, - -19376,26424,-19376,26424,-19376,26424,-19376,26424, - -18795,26841,-18795,26841,-18795,26841,-18795,26841, - -18205,27244,-18205,27244,-18205,27244,-18205,27244, - -17606,27635,-17606,27635,-17606,27635,-17606,27635, - -16999,28012,-16999,28012,-16999,28012,-16999,28012 - }; +static int16_t twa576[191*2*4]; +static int16_t twb576[191*2*4]; void dft576(int16_t *x,int16_t *y,unsigned char scale_flag) // 192 x 3 { @@ -11522,320 +7901,8 @@ void dft576(int16_t *x,int16_t *y,unsigned char scale_flag) // 192 x 3 _m_empty(); }; -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:299)/600)); -twa2 = zeros(1,2*299); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa600[299*2*4] = {"); -for i=1:2:(2*298) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fclose(fd); - */ -static int16_t twa600[299*2*4] = {32765,-344,32765,-344,32765,-344,32765,-344, - 32759,-687,32759,-687,32759,-687,32759,-687, - 32750,-1030,32750,-1030,32750,-1030,32750,-1030, - 32738,-1373,32738,-1373,32738,-1373,32738,-1373, - 32722,-1715,32722,-1715,32722,-1715,32722,-1715, - 32702,-2058,32702,-2058,32702,-2058,32702,-2058, - 32679,-2400,32679,-2400,32679,-2400,32679,-2400, - 32652,-2742,32652,-2742,32652,-2742,32652,-2742, - 32621,-3084,32621,-3084,32621,-3084,32621,-3084, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32549,-3767,32549,-3767,32549,-3767,32549,-3767, - 32508,-4107,32508,-4107,32508,-4107,32508,-4107, - 32463,-4447,32463,-4447,32463,-4447,32463,-4447, - 32415,-4787,32415,-4787,32415,-4787,32415,-4787, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32308,-5465,32308,-5465,32308,-5465,32308,-5465, - 32249,-5803,32249,-5803,32249,-5803,32249,-5803, - 32186,-6140,32186,-6140,32186,-6140,32186,-6140, - 32120,-6477,32120,-6477,32120,-6477,32120,-6477, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31977,-7148,31977,-7148,31977,-7148,31977,-7148, - 31901,-7483,31901,-7483,31901,-7483,31901,-7483, - 31821,-7817,31821,-7817,31821,-7817,31821,-7817, - 31737,-8149,31737,-8149,31737,-8149,31737,-8149, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31559,-8812,31559,-8812,31559,-8812,31559,-8812, - 31465,-9142,31465,-9142,31465,-9142,31465,-9142, - 31368,-9471,31368,-9471,31368,-9471,31368,-9471, - 31267,-9799,31267,-9799,31267,-9799,31267,-9799, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 31055,-10452,31055,-10452,31055,-10452,31055,-10452, - 30944,-10776,30944,-10776,30944,-10776,30944,-10776, - 30829,-11100,30829,-11100,30829,-11100,30829,-11100, - 30711,-11422,30711,-11422,30711,-11422,30711,-11422, - 30590,-11743,30590,-11743,30590,-11743,30590,-11743, - 30465,-12063,30465,-12063,30465,-12063,30465,-12063, - 30338,-12381,30338,-12381,30338,-12381,30338,-12381, - 30206,-12698,30206,-12698,30206,-12698,30206,-12698, - 30072,-13014,30072,-13014,30072,-13014,30072,-13014, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29792,-13641,29792,-13641,29792,-13641,29792,-13641, - 29648,-13952,29648,-13952,29648,-13952,29648,-13952, - 29500,-14262,29500,-14262,29500,-14262,29500,-14262, - 29349,-14570,29349,-14570,29349,-14570,29349,-14570, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 29038,-15181,29038,-15181,29038,-15181,29038,-15181, - 28877,-15485,28877,-15485,28877,-15485,28877,-15485, - 28713,-15786,28713,-15786,28713,-15786,28713,-15786, - 28547,-16086,28547,-16086,28547,-16086,28547,-16086, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28203,-16680,28203,-16680,28203,-16680,28203,-16680, - 28027,-16975,28027,-16975,28027,-16975,28027,-16975, - 27848,-17267,27848,-17267,27848,-17267,27848,-17267, - 27666,-17558,27666,-17558,27666,-17558,27666,-17558, - 27480,-17847,27480,-17847,27480,-17847,27480,-17847, - 27292,-18133,27292,-18133,27292,-18133,27292,-18133, - 27100,-18418,27100,-18418,27100,-18418,27100,-18418, - 26906,-18701,26906,-18701,26906,-18701,26906,-18701, - 26709,-18982,26709,-18982,26709,-18982,26709,-18982, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26305,-19537,26305,-19537,26305,-19537,26305,-19537, - 26099,-19811,26099,-19811,26099,-19811,26099,-19811, - 25891,-20084,25891,-20084,25891,-20084,25891,-20084, - 25679,-20354,25679,-20354,25679,-20354,25679,-20354, - 25464,-20621,25464,-20621,25464,-20621,25464,-20621, - 25247,-20887,25247,-20887,25247,-20887,25247,-20887, - 25027,-21150,25027,-21150,25027,-21150,25027,-21150, - 24804,-21411,24804,-21411,24804,-21411,24804,-21411, - 24578,-21670,24578,-21670,24578,-21670,24578,-21670, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 24119,-22180,24119,-22180,24119,-22180,24119,-22180, - 23886,-22431,23886,-22431,23886,-22431,23886,-22431, - 23649,-22680,23649,-22680,23649,-22680,23649,-22680, - 23411,-22926,23411,-22926,23411,-22926,23411,-22926, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22925,-23412,22925,-23412,22925,-23412,22925,-23412, - 22679,-23650,22679,-23650,22679,-23650,22679,-23650, - 22430,-23887,22430,-23887,22430,-23887,22430,-23887, - 22179,-24120,22179,-24120,22179,-24120,22179,-24120, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21669,-24579,21669,-24579,21669,-24579,21669,-24579, - 21410,-24805,21410,-24805,21410,-24805,21410,-24805, - 21149,-25028,21149,-25028,21149,-25028,21149,-25028, - 20886,-25248,20886,-25248,20886,-25248,20886,-25248, - 20620,-25465,20620,-25465,20620,-25465,20620,-25465, - 20353,-25680,20353,-25680,20353,-25680,20353,-25680, - 20083,-25892,20083,-25892,20083,-25892,20083,-25892, - 19810,-26100,19810,-26100,19810,-26100,19810,-26100, - 19536,-26306,19536,-26306,19536,-26306,19536,-26306, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18981,-26710,18981,-26710,18981,-26710,18981,-26710, - 18700,-26907,18700,-26907,18700,-26907,18700,-26907, - 18417,-27101,18417,-27101,18417,-27101,18417,-27101, - 18132,-27293,18132,-27293,18132,-27293,18132,-27293, - 17846,-27481,17846,-27481,17846,-27481,17846,-27481, - 17557,-27667,17557,-27667,17557,-27667,17557,-27667, - 17266,-27849,17266,-27849,17266,-27849,17266,-27849, - 16974,-28028,16974,-28028,16974,-28028,16974,-28028, - 16679,-28204,16679,-28204,16679,-28204,16679,-28204, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16085,-28548,16085,-28548,16085,-28548,16085,-28548, - 15785,-28714,15785,-28714,15785,-28714,15785,-28714, - 15484,-28878,15484,-28878,15484,-28878,15484,-28878, - 15180,-29039,15180,-29039,15180,-29039,15180,-29039, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14569,-29350,14569,-29350,14569,-29350,14569,-29350, - 14261,-29501,14261,-29501,14261,-29501,14261,-29501, - 13951,-29649,13951,-29649,13951,-29649,13951,-29649, - 13640,-29793,13640,-29793,13640,-29793,13640,-29793, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 13013,-30073,13013,-30073,13013,-30073,13013,-30073, - 12697,-30207,12697,-30207,12697,-30207,12697,-30207, - 12380,-30339,12380,-30339,12380,-30339,12380,-30339, - 12062,-30466,12062,-30466,12062,-30466,12062,-30466, - 11742,-30591,11742,-30591,11742,-30591,11742,-30591, - 11421,-30712,11421,-30712,11421,-30712,11421,-30712, - 11099,-30830,11099,-30830,11099,-30830,11099,-30830, - 10775,-30945,10775,-30945,10775,-30945,10775,-30945, - 10451,-31056,10451,-31056,10451,-31056,10451,-31056, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9798,-31268,9798,-31268,9798,-31268,9798,-31268, - 9470,-31369,9470,-31369,9470,-31369,9470,-31369, - 9141,-31466,9141,-31466,9141,-31466,9141,-31466, - 8811,-31560,8811,-31560,8811,-31560,8811,-31560, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8148,-31738,8148,-31738,8148,-31738,8148,-31738, - 7816,-31822,7816,-31822,7816,-31822,7816,-31822, - 7482,-31902,7482,-31902,7482,-31902,7482,-31902, - 7147,-31978,7147,-31978,7147,-31978,7147,-31978, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6476,-32121,6476,-32121,6476,-32121,6476,-32121, - 6139,-32187,6139,-32187,6139,-32187,6139,-32187, - 5802,-32250,5802,-32250,5802,-32250,5802,-32250, - 5464,-32309,5464,-32309,5464,-32309,5464,-32309, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4786,-32416,4786,-32416,4786,-32416,4786,-32416, - 4446,-32464,4446,-32464,4446,-32464,4446,-32464, - 4106,-32509,4106,-32509,4106,-32509,4106,-32509, - 3766,-32550,3766,-32550,3766,-32550,3766,-32550, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 3083,-32622,3083,-32622,3083,-32622,3083,-32622, - 2741,-32653,2741,-32653,2741,-32653,2741,-32653, - 2399,-32680,2399,-32680,2399,-32680,2399,-32680, - 2057,-32703,2057,-32703,2057,-32703,2057,-32703, - 1714,-32723,1714,-32723,1714,-32723,1714,-32723, - 1372,-32739,1372,-32739,1372,-32739,1372,-32739, - 1029,-32751,1029,-32751,1029,-32751,1029,-32751, - 686,-32760,686,-32760,686,-32760,686,-32760, - 343,-32766,343,-32766,343,-32766,343,-32766, - 0,-32767,0,-32767,0,-32767,0,-32767, - -344,-32766,-344,-32766,-344,-32766,-344,-32766, - -687,-32760,-687,-32760,-687,-32760,-687,-32760, - -1030,-32751,-1030,-32751,-1030,-32751,-1030,-32751, - -1373,-32739,-1373,-32739,-1373,-32739,-1373,-32739, - -1715,-32723,-1715,-32723,-1715,-32723,-1715,-32723, - -2058,-32703,-2058,-32703,-2058,-32703,-2058,-32703, - -2400,-32680,-2400,-32680,-2400,-32680,-2400,-32680, - -2742,-32653,-2742,-32653,-2742,-32653,-2742,-32653, - -3084,-32622,-3084,-32622,-3084,-32622,-3084,-32622, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -3767,-32550,-3767,-32550,-3767,-32550,-3767,-32550, - -4107,-32509,-4107,-32509,-4107,-32509,-4107,-32509, - -4447,-32464,-4447,-32464,-4447,-32464,-4447,-32464, - -4787,-32416,-4787,-32416,-4787,-32416,-4787,-32416, - -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364, - -5465,-32309,-5465,-32309,-5465,-32309,-5465,-32309, - -5803,-32250,-5803,-32250,-5803,-32250,-5803,-32250, - -6140,-32187,-6140,-32187,-6140,-32187,-6140,-32187, - -6477,-32121,-6477,-32121,-6477,-32121,-6477,-32121, - -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051, - -7148,-31978,-7148,-31978,-7148,-31978,-7148,-31978, - -7483,-31902,-7483,-31902,-7483,-31902,-7483,-31902, - -7817,-31822,-7817,-31822,-7817,-31822,-7817,-31822, - -8149,-31738,-8149,-31738,-8149,-31738,-8149,-31738, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -8812,-31560,-8812,-31560,-8812,-31560,-8812,-31560, - -9142,-31466,-9142,-31466,-9142,-31466,-9142,-31466, - -9471,-31369,-9471,-31369,-9471,-31369,-9471,-31369, - -9799,-31268,-9799,-31268,-9799,-31268,-9799,-31268, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10452,-31056,-10452,-31056,-10452,-31056,-10452,-31056, - -10776,-30945,-10776,-30945,-10776,-30945,-10776,-30945, - -11100,-30830,-11100,-30830,-11100,-30830,-11100,-30830, - -11422,-30712,-11422,-30712,-11422,-30712,-11422,-30712, - -11743,-30591,-11743,-30591,-11743,-30591,-11743,-30591, - -12063,-30466,-12063,-30466,-12063,-30466,-12063,-30466, - -12381,-30339,-12381,-30339,-12381,-30339,-12381,-30339, - -12698,-30207,-12698,-30207,-12698,-30207,-12698,-30207, - -13014,-30073,-13014,-30073,-13014,-30073,-13014,-30073, - -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935, - -13641,-29793,-13641,-29793,-13641,-29793,-13641,-29793, - -13952,-29649,-13952,-29649,-13952,-29649,-13952,-29649, - -14262,-29501,-14262,-29501,-14262,-29501,-14262,-29501, - -14570,-29350,-14570,-29350,-14570,-29350,-14570,-29350, - -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196, - -15181,-29039,-15181,-29039,-15181,-29039,-15181,-29039, - -15485,-28878,-15485,-28878,-15485,-28878,-15485,-28878, - -15786,-28714,-15786,-28714,-15786,-28714,-15786,-28714, - -16086,-28548,-16086,-28548,-16086,-28548,-16086,-28548, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -16680,-28204,-16680,-28204,-16680,-28204,-16680,-28204, - -16975,-28028,-16975,-28028,-16975,-28028,-16975,-28028, - -17267,-27849,-17267,-27849,-17267,-27849,-17267,-27849, - -17558,-27667,-17558,-27667,-17558,-27667,-17558,-27667, - -17847,-27481,-17847,-27481,-17847,-27481,-17847,-27481, - -18133,-27293,-18133,-27293,-18133,-27293,-18133,-27293, - -18418,-27101,-18418,-27101,-18418,-27101,-18418,-27101, - -18701,-26907,-18701,-26907,-18701,-26907,-18701,-26907, - -18982,-26710,-18982,-26710,-18982,-26710,-18982,-26710, - -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510, - -19537,-26306,-19537,-26306,-19537,-26306,-19537,-26306, - -19811,-26100,-19811,-26100,-19811,-26100,-19811,-26100, - -20084,-25892,-20084,-25892,-20084,-25892,-20084,-25892, - -20354,-25680,-20354,-25680,-20354,-25680,-20354,-25680, - -20621,-25465,-20621,-25465,-20621,-25465,-20621,-25465, - -20887,-25248,-20887,-25248,-20887,-25248,-20887,-25248, - -21150,-25028,-21150,-25028,-21150,-25028,-21150,-25028, - -21411,-24805,-21411,-24805,-21411,-24805,-21411,-24805, - -21670,-24579,-21670,-24579,-21670,-24579,-21670,-24579, - -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351, - -22180,-24120,-22180,-24120,-22180,-24120,-22180,-24120, - -22431,-23887,-22431,-23887,-22431,-23887,-22431,-23887, - -22680,-23650,-22680,-23650,-22680,-23650,-22680,-23650, - -22926,-23412,-22926,-23412,-22926,-23412,-22926,-23412, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23412,-22926,-23412,-22926,-23412,-22926,-23412,-22926, - -23650,-22680,-23650,-22680,-23650,-22680,-23650,-22680, - -23887,-22431,-23887,-22431,-23887,-22431,-23887,-22431, - -24120,-22180,-24120,-22180,-24120,-22180,-24120,-22180, - -24351,-21926,-24351,-21926,-24351,-21926,-24351,-21926, - -24579,-21670,-24579,-21670,-24579,-21670,-24579,-21670, - -24805,-21411,-24805,-21411,-24805,-21411,-24805,-21411, - -25028,-21150,-25028,-21150,-25028,-21150,-25028,-21150, - -25248,-20887,-25248,-20887,-25248,-20887,-25248,-20887, - -25465,-20621,-25465,-20621,-25465,-20621,-25465,-20621, - -25680,-20354,-25680,-20354,-25680,-20354,-25680,-20354, - -25892,-20084,-25892,-20084,-25892,-20084,-25892,-20084, - -26100,-19811,-26100,-19811,-26100,-19811,-26100,-19811, - -26306,-19537,-26306,-19537,-26306,-19537,-26306,-19537, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -26710,-18982,-26710,-18982,-26710,-18982,-26710,-18982, - -26907,-18701,-26907,-18701,-26907,-18701,-26907,-18701, - -27101,-18418,-27101,-18418,-27101,-18418,-27101,-18418, - -27293,-18133,-27293,-18133,-27293,-18133,-27293,-18133, - -27481,-17847,-27481,-17847,-27481,-17847,-27481,-17847, - -27667,-17558,-27667,-17558,-27667,-17558,-27667,-17558, - -27849,-17267,-27849,-17267,-27849,-17267,-27849,-17267, - -28028,-16975,-28028,-16975,-28028,-16975,-28028,-16975, - -28204,-16680,-28204,-16680,-28204,-16680,-28204,-16680, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28548,-16086,-28548,-16086,-28548,-16086,-28548,-16086, - -28714,-15786,-28714,-15786,-28714,-15786,-28714,-15786, - -28878,-15485,-28878,-15485,-28878,-15485,-28878,-15485, - -29039,-15181,-29039,-15181,-29039,-15181,-29039,-15181, - -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876, - -29350,-14570,-29350,-14570,-29350,-14570,-29350,-14570, - -29501,-14262,-29501,-14262,-29501,-14262,-29501,-14262, - -29649,-13952,-29649,-13952,-29649,-13952,-29649,-13952, - -29793,-13641,-29793,-13641,-29793,-13641,-29793,-13641, - -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328, - -30073,-13014,-30073,-13014,-30073,-13014,-30073,-13014, - -30207,-12698,-30207,-12698,-30207,-12698,-30207,-12698, - -30339,-12381,-30339,-12381,-30339,-12381,-30339,-12381, - -30466,-12063,-30466,-12063,-30466,-12063,-30466,-12063, - -30591,-11743,-30591,-11743,-30591,-11743,-30591,-11743, - -30712,-11422,-30712,-11422,-30712,-11422,-30712,-11422, - -30830,-11100,-30830,-11100,-30830,-11100,-30830,-11100, - -30945,-10776,-30945,-10776,-30945,-10776,-30945,-10776, - -31056,-10452,-31056,-10452,-31056,-10452,-31056,-10452, - -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126, - -31268,-9799,-31268,-9799,-31268,-9799,-31268,-9799, - -31369,-9471,-31369,-9471,-31369,-9471,-31369,-9471, - -31466,-9142,-31466,-9142,-31466,-9142,-31466,-9142, - -31560,-8812,-31560,-8812,-31560,-8812,-31560,-8812, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31738,-8149,-31738,-8149,-31738,-8149,-31738,-8149, - -31822,-7817,-31822,-7817,-31822,-7817,-31822,-7817, - -31902,-7483,-31902,-7483,-31902,-7483,-31902,-7483, - -31978,-7148,-31978,-7148,-31978,-7148,-31978,-7148, - -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813, - -32121,-6477,-32121,-6477,-32121,-6477,-32121,-6477, - -32187,-6140,-32187,-6140,-32187,-6140,-32187,-6140, - -32250,-5803,-32250,-5803,-32250,-5803,-32250,-5803, - -32309,-5465,-32309,-5465,-32309,-5465,-32309,-5465, - -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126, - -32416,-4787,-32416,-4787,-32416,-4787,-32416,-4787, - -32464,-4447,-32464,-4447,-32464,-4447,-32464,-4447, - -32509,-4107,-32509,-4107,-32509,-4107,-32509,-4107, - -32550,-3767,-32550,-3767,-32550,-3767,-32550,-3767, - -32588,-3426,-32588,-3426,-32588,-3426,-32588,-3426, - -32622,-3084,-32622,-3084,-32622,-3084,-32622,-3084, - -32653,-2742,-32653,-2742,-32653,-2742,-32653,-2742, - -32680,-2400,-32680,-2400,-32680,-2400,-32680,-2400, - -32703,-2058,-32703,-2058,-32703,-2058,-32703,-2058, - -32723,-1715,-32723,-1715,-32723,-1715,-32723,-1715, - -32739,-1373,-32739,-1373,-32739,-1373,-32739,-1373, - -32751,-1030,-32751,-1030,-32751,-1030,-32751,-1030, - -32760,-687,-32760,-687,-32760,-687,-32760,-687, - -32766,-344,-32766,-344,-32766,-344,-32766,-344 - }; + +static int16_t twa600[299*2*4]; void dft600(int16_t *x,int16_t *y,unsigned char scale_flag) // 300 x 2 { @@ -11879,464 +7946,8 @@ void dft600(int16_t *x,int16_t *y,unsigned char scale_flag) // 300 x 2 }; -/* -Twiddles generated with - -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:215)/648)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:215)/648)); -twa2 = zeros(1,2*215); -twb2 = zeros(1,2*215); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa648[215*2*4] = {"); -for i=1:2:(2*214) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"static int16_t twb648[215*2*4] = {"); -for i=1:2:(2*214) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fclose(fd); -*/ -static int16_t twa648[215*2*4] = {32765,-318,32765,-318,32765,-318,32765,-318, - 32760,-636,32760,-636,32760,-636,32760,-636, - 32753,-954,32753,-954,32753,-954,32753,-954, - 32742,-1271,32742,-1271,32742,-1271,32742,-1271, - 32728,-1588,32728,-1588,32728,-1588,32728,-1588, - 32711,-1906,32711,-1906,32711,-1906,32711,-1906, - 32691,-2223,32691,-2223,32691,-2223,32691,-2223, - 32668,-2540,32668,-2540,32668,-2540,32668,-2540, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32613,-3173,32613,-3173,32613,-3173,32613,-3173, - 32580,-3489,32580,-3489,32580,-3489,32580,-3489, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32507,-4120,32507,-4120,32507,-4120,32507,-4120, - 32465,-4435,32465,-4435,32465,-4435,32465,-4435, - 32421,-4749,32421,-4749,32421,-4749,32421,-4749, - 32373,-5064,32373,-5064,32373,-5064,32373,-5064, - 32322,-5377,32322,-5377,32322,-5377,32322,-5377, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32212,-6003,32212,-6003,32212,-6003,32212,-6003, - 32152,-6315,32152,-6315,32152,-6315,32152,-6315, - 32090,-6627,32090,-6627,32090,-6627,32090,-6627, - 32024,-6937,32024,-6937,32024,-6937,32024,-6937, - 31955,-7248,31955,-7248,31955,-7248,31955,-7248, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31808,-7866,31808,-7866,31808,-7866,31808,-7866, - 31731,-8174,31731,-8174,31731,-8174,31731,-8174, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31566,-8788,31566,-8788,31566,-8788,31566,-8788, - 31480,-9093,31480,-9093,31480,-9093,31480,-9093, - 31390,-9398,31390,-9398,31390,-9398,31390,-9398, - 31297,-9702,31297,-9702,31297,-9702,31297,-9702, - 31202,-10005,31202,-10005,31202,-10005,31202,-10005, - 31103,-10307,31103,-10307,31103,-10307,31103,-10307, - 31002,-10608,31002,-10608,31002,-10608,31002,-10608, - 30898,-10908,30898,-10908,30898,-10908,30898,-10908, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30680,-11505,30680,-11505,30680,-11505,30680,-11505, - 30567,-11802,30567,-11802,30567,-11802,30567,-11802, - 30451,-12098,30451,-12098,30451,-12098,30451,-12098, - 30333,-12393,30333,-12393,30333,-12393,30333,-12393, - 30211,-12687,30211,-12687,30211,-12687,30211,-12687, - 30087,-12979,30087,-12979,30087,-12979,30087,-12979, - 29959,-13270,29959,-13270,29959,-13270,29959,-13270, - 29829,-13560,29829,-13560,29829,-13560,29829,-13560, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29561,-14136,29561,-14136,29561,-14136,29561,-14136, - 29422,-14422,29422,-14422,29422,-14422,29422,-14422, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 29137,-14990,29137,-14990,29137,-14990,29137,-14990, - 28990,-15271,28990,-15271,28990,-15271,28990,-15271, - 28841,-15552,28841,-15552,28841,-15552,28841,-15552, - 28689,-15831,28689,-15831,28689,-15831,28689,-15831, - 28534,-16108,28534,-16108,28534,-16108,28534,-16108, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28216,-16658,28216,-16658,28216,-16658,28216,-16658, - 28054,-16931,28054,-16931,28054,-16931,28054,-16931, - 27888,-17202,27888,-17202,27888,-17202,27888,-17202, - 27720,-17472,27720,-17472,27720,-17472,27720,-17472, - 27549,-17740,27549,-17740,27549,-17740,27549,-17740, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 27200,-18271,27200,-18271,27200,-18271,27200,-18271, - 27022,-18534,27022,-18534,27022,-18534,27022,-18534, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26657,-19054,26657,-19054,26657,-19054,26657,-19054, - 26471,-19312,26471,-19312,26471,-19312,26471,-19312, - 26283,-19568,26283,-19568,26283,-19568,26283,-19568, - 26092,-19822,26092,-19822,26092,-19822,26092,-19822, - 25898,-20074,25898,-20074,25898,-20074,25898,-20074, - 25702,-20324,25702,-20324,25702,-20324,25702,-20324, - 25504,-20572,25504,-20572,25504,-20572,25504,-20572, - 25304,-20818,25304,-20818,25304,-20818,25304,-20818, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24895,-21305,24895,-21305,24895,-21305,24895,-21305, - 24687,-21546,24687,-21546,24687,-21546,24687,-21546, - 24477,-21784,24477,-21784,24477,-21784,24477,-21784, - 24265,-22020,24265,-22020,24265,-22020,24265,-22020, - 24050,-22254,24050,-22254,24050,-22254,24050,-22254, - 23833,-22487,23833,-22487,23833,-22487,23833,-22487, - 23614,-22717,23614,-22717,23614,-22717,23614,-22717, - 23393,-22945,23393,-22945,23393,-22945,23393,-22945, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22944,-23394,22944,-23394,22944,-23394,22944,-23394, - 22716,-23615,22716,-23615,22716,-23615,22716,-23615, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 22253,-24051,22253,-24051,22253,-24051,22253,-24051, - 22019,-24266,22019,-24266,22019,-24266,22019,-24266, - 21783,-24478,21783,-24478,21783,-24478,21783,-24478, - 21545,-24688,21545,-24688,21545,-24688,21545,-24688, - 21304,-24896,21304,-24896,21304,-24896,21304,-24896, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20817,-25305,20817,-25305,20817,-25305,20817,-25305, - 20571,-25505,20571,-25505,20571,-25505,20571,-25505, - 20323,-25703,20323,-25703,20323,-25703,20323,-25703, - 20073,-25899,20073,-25899,20073,-25899,20073,-25899, - 19821,-26093,19821,-26093,19821,-26093,19821,-26093, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 19311,-26472,19311,-26472,19311,-26472,19311,-26472, - 19053,-26658,19053,-26658,19053,-26658,19053,-26658, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18533,-27023,18533,-27023,18533,-27023,18533,-27023, - 18270,-27201,18270,-27201,18270,-27201,18270,-27201, - 18005,-27377,18005,-27377,18005,-27377,18005,-27377, - 17739,-27550,17739,-27550,17739,-27550,17739,-27550, - 17471,-27721,17471,-27721,17471,-27721,17471,-27721, - 17201,-27889,17201,-27889,17201,-27889,17201,-27889, - 16930,-28055,16930,-28055,16930,-28055,16930,-28055, - 16657,-28217,16657,-28217,16657,-28217,16657,-28217, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16107,-28535,16107,-28535,16107,-28535,16107,-28535, - 15830,-28690,15830,-28690,15830,-28690,15830,-28690, - 15551,-28842,15551,-28842,15551,-28842,15551,-28842, - 15270,-28991,15270,-28991,15270,-28991,15270,-28991, - 14989,-29138,14989,-29138,14989,-29138,14989,-29138, - 14705,-29282,14705,-29282,14705,-29282,14705,-29282, - 14421,-29423,14421,-29423,14421,-29423,14421,-29423, - 14135,-29562,14135,-29562,14135,-29562,14135,-29562, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 13559,-29830,13559,-29830,13559,-29830,13559,-29830, - 13269,-29960,13269,-29960,13269,-29960,13269,-29960, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12686,-30212,12686,-30212,12686,-30212,12686,-30212, - 12392,-30334,12392,-30334,12392,-30334,12392,-30334, - 12097,-30452,12097,-30452,12097,-30452,12097,-30452, - 11801,-30568,11801,-30568,11801,-30568,11801,-30568, - 11504,-30681,11504,-30681,11504,-30681,11504,-30681, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10907,-30899,10907,-30899,10907,-30899,10907,-30899, - 10607,-31003,10607,-31003,10607,-31003,10607,-31003, - 10306,-31104,10306,-31104,10306,-31104,10306,-31104, - 10004,-31203,10004,-31203,10004,-31203,10004,-31203, - 9701,-31298,9701,-31298,9701,-31298,9701,-31298, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 9092,-31481,9092,-31481,9092,-31481,9092,-31481, - 8787,-31567,8787,-31567,8787,-31567,8787,-31567, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8173,-31732,8173,-31732,8173,-31732,8173,-31732, - 7865,-31809,7865,-31809,7865,-31809,7865,-31809, - 7556,-31884,7556,-31884,7556,-31884,7556,-31884, - 7247,-31956,7247,-31956,7247,-31956,7247,-31956, - 6936,-32025,6936,-32025,6936,-32025,6936,-32025, - 6626,-32091,6626,-32091,6626,-32091,6626,-32091, - 6314,-32153,6314,-32153,6314,-32153,6314,-32153, - 6002,-32213,6002,-32213,6002,-32213,6002,-32213, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5376,-32323,5376,-32323,5376,-32323,5376,-32323, - 5063,-32374,5063,-32374,5063,-32374,5063,-32374, - 4748,-32422,4748,-32422,4748,-32422,4748,-32422, - 4434,-32466,4434,-32466,4434,-32466,4434,-32466, - 4119,-32508,4119,-32508,4119,-32508,4119,-32508, - 3804,-32546,3804,-32546,3804,-32546,3804,-32546, - 3488,-32581,3488,-32581,3488,-32581,3488,-32581, - 3172,-32614,3172,-32614,3172,-32614,3172,-32614, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 2539,-32669,2539,-32669,2539,-32669,2539,-32669, - 2222,-32692,2222,-32692,2222,-32692,2222,-32692, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 1587,-32729,1587,-32729,1587,-32729,1587,-32729, - 1270,-32743,1270,-32743,1270,-32743,1270,-32743, - 953,-32754,953,-32754,953,-32754,953,-32754, - 635,-32761,635,-32761,635,-32761,635,-32761, - 317,-32766,317,-32766,317,-32766,317,-32766, - 0,-32767,0,-32767,0,-32767,0,-32767, - -318,-32766,-318,-32766,-318,-32766,-318,-32766, - -636,-32761,-636,-32761,-636,-32761,-636,-32761, - -954,-32754,-954,-32754,-954,-32754,-954,-32754, - -1271,-32743,-1271,-32743,-1271,-32743,-1271,-32743, - -1588,-32729,-1588,-32729,-1588,-32729,-1588,-32729, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -2223,-32692,-2223,-32692,-2223,-32692,-2223,-32692, - -2540,-32669,-2540,-32669,-2540,-32669,-2540,-32669, - -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643, - -3173,-32614,-3173,-32614,-3173,-32614,-3173,-32614, - -3489,-32581,-3489,-32581,-3489,-32581,-3489,-32581, - -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546, - -4120,-32508,-4120,-32508,-4120,-32508,-4120,-32508, - -4435,-32466,-4435,-32466,-4435,-32466,-4435,-32466, - -4749,-32422,-4749,-32422,-4749,-32422,-4749,-32422, - -5064,-32374,-5064,-32374,-5064,-32374,-5064,-32374, - -5377,-32323,-5377,-32323,-5377,-32323,-5377,-32323, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6003,-32213,-6003,-32213,-6003,-32213,-6003,-32213, - -6315,-32153,-6315,-32153,-6315,-32153,-6315,-32153, - -6627,-32091,-6627,-32091,-6627,-32091,-6627,-32091, - -6937,-32025,-6937,-32025,-6937,-32025,-6937,-32025, - -7248,-31956,-7248,-31956,-7248,-31956,-7248,-31956, - -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884, - -7866,-31809,-7866,-31809,-7866,-31809,-7866,-31809, - -8174,-31732,-8174,-31732,-8174,-31732,-8174,-31732, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -8788,-31567,-8788,-31567,-8788,-31567,-8788,-31567, - -9093,-31481,-9093,-31481,-9093,-31481,-9093,-31481, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -9702,-31298,-9702,-31298,-9702,-31298,-9702,-31298, - -10005,-31203,-10005,-31203,-10005,-31203,-10005,-31203, - -10307,-31104,-10307,-31104,-10307,-31104,-10307,-31104, - -10608,-31003,-10608,-31003,-10608,-31003,-10608,-31003, - -10908,-30899,-10908,-30899,-10908,-30899,-10908,-30899, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11505,-30681,-11505,-30681,-11505,-30681,-11505,-30681, - -11802,-30568,-11802,-30568,-11802,-30568,-11802,-30568, - -12098,-30452,-12098,-30452,-12098,-30452,-12098,-30452, - -12393,-30334,-12393,-30334,-12393,-30334,-12393,-30334, - -12687,-30212,-12687,-30212,-12687,-30212,-12687,-30212, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -13270,-29960,-13270,-29960,-13270,-29960,-13270,-29960, - -13560,-29830,-13560,-29830,-13560,-29830,-13560,-29830, - -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697, - -14136,-29562,-14136,-29562,-14136,-29562,-14136,-29562, - -14422,-29423,-14422,-29423,-14422,-29423,-14422,-29423, - -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282, - -14990,-29138,-14990,-29138,-14990,-29138,-14990,-29138, - -15271,-28991,-15271,-28991,-15271,-28991,-15271,-28991, - -15552,-28842,-15552,-28842,-15552,-28842,-15552,-28842, - -15831,-28690,-15831,-28690,-15831,-28690,-15831,-28690, - -16108,-28535,-16108,-28535,-16108,-28535,-16108,-28535 - }; -static int16_t twb648[215*2*4] = {32760,-636,32760,-636,32760,-636,32760,-636, - 32742,-1271,32742,-1271,32742,-1271,32742,-1271, - 32711,-1906,32711,-1906,32711,-1906,32711,-1906, - 32668,-2540,32668,-2540,32668,-2540,32668,-2540, - 32613,-3173,32613,-3173,32613,-3173,32613,-3173, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32465,-4435,32465,-4435,32465,-4435,32465,-4435, - 32373,-5064,32373,-5064,32373,-5064,32373,-5064, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32152,-6315,32152,-6315,32152,-6315,32152,-6315, - 32024,-6937,32024,-6937,32024,-6937,32024,-6937, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31731,-8174,31731,-8174,31731,-8174,31731,-8174, - 31566,-8788,31566,-8788,31566,-8788,31566,-8788, - 31390,-9398,31390,-9398,31390,-9398,31390,-9398, - 31202,-10005,31202,-10005,31202,-10005,31202,-10005, - 31002,-10608,31002,-10608,31002,-10608,31002,-10608, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30567,-11802,30567,-11802,30567,-11802,30567,-11802, - 30333,-12393,30333,-12393,30333,-12393,30333,-12393, - 30087,-12979,30087,-12979,30087,-12979,30087,-12979, - 29829,-13560,29829,-13560,29829,-13560,29829,-13560, - 29561,-14136,29561,-14136,29561,-14136,29561,-14136, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 28990,-15271,28990,-15271,28990,-15271,28990,-15271, - 28689,-15831,28689,-15831,28689,-15831,28689,-15831, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28054,-16931,28054,-16931,28054,-16931,28054,-16931, - 27720,-17472,27720,-17472,27720,-17472,27720,-17472, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 27022,-18534,27022,-18534,27022,-18534,27022,-18534, - 26657,-19054,26657,-19054,26657,-19054,26657,-19054, - 26283,-19568,26283,-19568,26283,-19568,26283,-19568, - 25898,-20074,25898,-20074,25898,-20074,25898,-20074, - 25504,-20572,25504,-20572,25504,-20572,25504,-20572, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24687,-21546,24687,-21546,24687,-21546,24687,-21546, - 24265,-22020,24265,-22020,24265,-22020,24265,-22020, - 23833,-22487,23833,-22487,23833,-22487,23833,-22487, - 23393,-22945,23393,-22945,23393,-22945,23393,-22945, - 22944,-23394,22944,-23394,22944,-23394,22944,-23394, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 22019,-24266,22019,-24266,22019,-24266,22019,-24266, - 21545,-24688,21545,-24688,21545,-24688,21545,-24688, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20571,-25505,20571,-25505,20571,-25505,20571,-25505, - 20073,-25899,20073,-25899,20073,-25899,20073,-25899, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 19053,-26658,19053,-26658,19053,-26658,19053,-26658, - 18533,-27023,18533,-27023,18533,-27023,18533,-27023, - 18005,-27377,18005,-27377,18005,-27377,18005,-27377, - 17471,-27721,17471,-27721,17471,-27721,17471,-27721, - 16930,-28055,16930,-28055,16930,-28055,16930,-28055, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15830,-28690,15830,-28690,15830,-28690,15830,-28690, - 15270,-28991,15270,-28991,15270,-28991,15270,-28991, - 14705,-29282,14705,-29282,14705,-29282,14705,-29282, - 14135,-29562,14135,-29562,14135,-29562,14135,-29562, - 13559,-29830,13559,-29830,13559,-29830,13559,-29830, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12392,-30334,12392,-30334,12392,-30334,12392,-30334, - 11801,-30568,11801,-30568,11801,-30568,11801,-30568, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10607,-31003,10607,-31003,10607,-31003,10607,-31003, - 10004,-31203,10004,-31203,10004,-31203,10004,-31203, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 8787,-31567,8787,-31567,8787,-31567,8787,-31567, - 8173,-31732,8173,-31732,8173,-31732,8173,-31732, - 7556,-31884,7556,-31884,7556,-31884,7556,-31884, - 6936,-32025,6936,-32025,6936,-32025,6936,-32025, - 6314,-32153,6314,-32153,6314,-32153,6314,-32153, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5063,-32374,5063,-32374,5063,-32374,5063,-32374, - 4434,-32466,4434,-32466,4434,-32466,4434,-32466, - 3804,-32546,3804,-32546,3804,-32546,3804,-32546, - 3172,-32614,3172,-32614,3172,-32614,3172,-32614, - 2539,-32669,2539,-32669,2539,-32669,2539,-32669, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 1270,-32743,1270,-32743,1270,-32743,1270,-32743, - 635,-32761,635,-32761,635,-32761,635,-32761, - 0,-32767,0,-32767,0,-32767,0,-32767, - -636,-32761,-636,-32761,-636,-32761,-636,-32761, - -1271,-32743,-1271,-32743,-1271,-32743,-1271,-32743, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -2540,-32669,-2540,-32669,-2540,-32669,-2540,-32669, - -3173,-32614,-3173,-32614,-3173,-32614,-3173,-32614, - -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546, - -4435,-32466,-4435,-32466,-4435,-32466,-4435,-32466, - -5064,-32374,-5064,-32374,-5064,-32374,-5064,-32374, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6315,-32153,-6315,-32153,-6315,-32153,-6315,-32153, - -6937,-32025,-6937,-32025,-6937,-32025,-6937,-32025, - -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884, - -8174,-31732,-8174,-31732,-8174,-31732,-8174,-31732, - -8788,-31567,-8788,-31567,-8788,-31567,-8788,-31567, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -10005,-31203,-10005,-31203,-10005,-31203,-10005,-31203, - -10608,-31003,-10608,-31003,-10608,-31003,-10608,-31003, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11802,-30568,-11802,-30568,-11802,-30568,-11802,-30568, - -12393,-30334,-12393,-30334,-12393,-30334,-12393,-30334, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -13560,-29830,-13560,-29830,-13560,-29830,-13560,-29830, - -14136,-29562,-14136,-29562,-14136,-29562,-14136,-29562, - -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282, - -15271,-28991,-15271,-28991,-15271,-28991,-15271,-28991, - -15831,-28690,-15831,-28690,-15831,-28690,-15831,-28690, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -16931,-28055,-16931,-28055,-16931,-28055,-16931,-28055, - -17472,-27721,-17472,-27721,-17472,-27721,-17472,-27721, - -18006,-27377,-18006,-27377,-18006,-27377,-18006,-27377, - -18534,-27023,-18534,-27023,-18534,-27023,-18534,-27023, - -19054,-26658,-19054,-26658,-19054,-26658,-19054,-26658, - -19568,-26284,-19568,-26284,-19568,-26284,-19568,-26284, - -20074,-25899,-20074,-25899,-20074,-25899,-20074,-25899, - -20572,-25505,-20572,-25505,-20572,-25505,-20572,-25505, - -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101, - -21546,-24688,-21546,-24688,-21546,-24688,-21546,-24688, - -22020,-24266,-22020,-24266,-22020,-24266,-22020,-24266, - -22487,-23834,-22487,-23834,-22487,-23834,-22487,-23834, - -22945,-23394,-22945,-23394,-22945,-23394,-22945,-23394, - -23394,-22945,-23394,-22945,-23394,-22945,-23394,-22945, - -23834,-22487,-23834,-22487,-23834,-22487,-23834,-22487, - -24266,-22020,-24266,-22020,-24266,-22020,-24266,-22020, - -24688,-21546,-24688,-21546,-24688,-21546,-24688,-21546, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25505,-20572,-25505,-20572,-25505,-20572,-25505,-20572, - -25899,-20074,-25899,-20074,-25899,-20074,-25899,-20074, - -26284,-19568,-26284,-19568,-26284,-19568,-26284,-19568, - -26658,-19054,-26658,-19054,-26658,-19054,-26658,-19054, - -27023,-18534,-27023,-18534,-27023,-18534,-27023,-18534, - -27377,-18006,-27377,-18006,-27377,-18006,-27377,-18006, - -27721,-17472,-27721,-17472,-27721,-17472,-27721,-17472, - -28055,-16931,-28055,-16931,-28055,-16931,-28055,-16931, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28690,-15831,-28690,-15831,-28690,-15831,-28690,-15831, - -28991,-15271,-28991,-15271,-28991,-15271,-28991,-15271, - -29282,-14706,-29282,-14706,-29282,-14706,-29282,-14706, - -29562,-14136,-29562,-14136,-29562,-14136,-29562,-14136, - -29830,-13560,-29830,-13560,-29830,-13560,-29830,-13560, - -30088,-12979,-30088,-12979,-30088,-12979,-30088,-12979, - -30334,-12393,-30334,-12393,-30334,-12393,-30334,-12393, - -30568,-11802,-30568,-11802,-30568,-11802,-30568,-11802, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -31003,-10608,-31003,-10608,-31003,-10608,-31003,-10608, - -31203,-10005,-31203,-10005,-31203,-10005,-31203,-10005, - -31391,-9398,-31391,-9398,-31391,-9398,-31391,-9398, - -31567,-8788,-31567,-8788,-31567,-8788,-31567,-8788, - -31732,-8174,-31732,-8174,-31732,-8174,-31732,-8174, - -31884,-7557,-31884,-7557,-31884,-7557,-31884,-7557, - -32025,-6937,-32025,-6937,-32025,-6937,-32025,-6937, - -32153,-6315,-32153,-6315,-32153,-6315,-32153,-6315, - -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690, - -32374,-5064,-32374,-5064,-32374,-5064,-32374,-5064, - -32466,-4435,-32466,-4435,-32466,-4435,-32466,-4435, - -32546,-3805,-32546,-3805,-32546,-3805,-32546,-3805, - -32614,-3173,-32614,-3173,-32614,-3173,-32614,-3173, - -32669,-2540,-32669,-2540,-32669,-2540,-32669,-2540, - -32712,-1906,-32712,-1906,-32712,-1906,-32712,-1906, - -32743,-1271,-32743,-1271,-32743,-1271,-32743,-1271, - -32761,-636,-32761,-636,-32761,-636,-32761,-636, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32761,635,-32761,635,-32761,635,-32761,635, - -32743,1270,-32743,1270,-32743,1270,-32743,1270, - -32712,1905,-32712,1905,-32712,1905,-32712,1905, - -32669,2539,-32669,2539,-32669,2539,-32669,2539, - -32614,3172,-32614,3172,-32614,3172,-32614,3172, - -32546,3804,-32546,3804,-32546,3804,-32546,3804, - -32466,4434,-32466,4434,-32466,4434,-32466,4434, - -32374,5063,-32374,5063,-32374,5063,-32374,5063, - -32270,5689,-32270,5689,-32270,5689,-32270,5689, - -32153,6314,-32153,6314,-32153,6314,-32153,6314, - -32025,6936,-32025,6936,-32025,6936,-32025,6936, - -31884,7556,-31884,7556,-31884,7556,-31884,7556, - -31732,8173,-31732,8173,-31732,8173,-31732,8173, - -31567,8787,-31567,8787,-31567,8787,-31567,8787, - -31391,9397,-31391,9397,-31391,9397,-31391,9397, - -31203,10004,-31203,10004,-31203,10004,-31203,10004, - -31003,10607,-31003,10607,-31003,10607,-31003,10607, - -30791,11206,-30791,11206,-30791,11206,-30791,11206, - -30568,11801,-30568,11801,-30568,11801,-30568,11801, - -30334,12392,-30334,12392,-30334,12392,-30334,12392, - -30088,12978,-30088,12978,-30088,12978,-30088,12978, - -29830,13559,-29830,13559,-29830,13559,-29830,13559, - -29562,14135,-29562,14135,-29562,14135,-29562,14135, - -29282,14705,-29282,14705,-29282,14705,-29282,14705, - -28991,15270,-28991,15270,-28991,15270,-28991,15270, - -28690,15830,-28690,15830,-28690,15830,-28690,15830, - -28378,16383,-28378,16383,-28378,16383,-28378,16383, - -28055,16930,-28055,16930,-28055,16930,-28055,16930, - -27721,17471,-27721,17471,-27721,17471,-27721,17471, - -27377,18005,-27377,18005,-27377,18005,-27377,18005, - -27023,18533,-27023,18533,-27023,18533,-27023,18533, - -26658,19053,-26658,19053,-26658,19053,-26658,19053, - -26284,19567,-26284,19567,-26284,19567,-26284,19567, - -25899,20073,-25899,20073,-25899,20073,-25899,20073, - -25505,20571,-25505,20571,-25505,20571,-25505,20571, - -25101,21062,-25101,21062,-25101,21062,-25101,21062, - -24688,21545,-24688,21545,-24688,21545,-24688,21545, - -24266,22019,-24266,22019,-24266,22019,-24266,22019, - -23834,22486,-23834,22486,-23834,22486,-23834,22486, - -23394,22944,-23394,22944,-23394,22944,-23394,22944, - -22945,23393,-22945,23393,-22945,23393,-22945,23393, - -22487,23833,-22487,23833,-22487,23833,-22487,23833, - -22020,24265,-22020,24265,-22020,24265,-22020,24265, - -21546,24687,-21546,24687,-21546,24687,-21546,24687, - -21063,25100,-21063,25100,-21063,25100,-21063,25100, - -20572,25504,-20572,25504,-20572,25504,-20572,25504, - -20074,25898,-20074,25898,-20074,25898,-20074,25898, - -19568,26283,-19568,26283,-19568,26283,-19568,26283, - -19054,26657,-19054,26657,-19054,26657,-19054,26657, - -18534,27022,-18534,27022,-18534,27022,-18534,27022, - -18006,27376,-18006,27376,-18006,27376,-18006,27376, - -17472,27720,-17472,27720,-17472,27720,-17472,27720, - -16931,28054,-16931,28054,-16931,28054,-16931,28054 - }; +static int16_t twa648[215*2*4]; +static int16_t twb648[215*2*4]; void dft648(int16_t *x,int16_t *y,unsigned char scale_flag) // 216 x 3 { @@ -12387,583 +7998,10 @@ void dft648(int16_t *x,int16_t *y,unsigned char scale_flag) // 216 x 3 }; -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:179)/720)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:179)/720)); -twc = floor(32767*exp(-sqrt(-1)*2*pi*3*(1:179)/720)); -twa2 = zeros(1,2*179); -twb2 = zeros(1,2*179); -twc2 = zeros(1,2*179); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -twc2(1:2:end) = real(twc); -twc2(2:2:end) = imag(twc); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa720[179*2*4] = {"); -for i=1:2:(2*178) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"\nstatic int16_t twb720[179*2*4] = {"); -for i=1:2:(2*178) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fprintf(fd,"\nstatic int16_t twc720[179*2*4] = {"); -for i=1:2:(2*178) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1)); -fclose(fd); - */ +static int16_t twa720[179*2*4]; +static int16_t twb720[179*2*4]; +static int16_t twc720[179*2*4]; -static int16_t twa720[179*2*4] = {32765,-286,32765,-286,32765,-286,32765,-286, - 32762,-572,32762,-572,32762,-572,32762,-572, - 32755,-858,32755,-858,32755,-858,32755,-858, - 32747,-1144,32747,-1144,32747,-1144,32747,-1144, - 32735,-1430,32735,-1430,32735,-1430,32735,-1430, - 32722,-1715,32722,-1715,32722,-1715,32722,-1715, - 32705,-2001,32705,-2001,32705,-2001,32705,-2001, - 32687,-2286,32687,-2286,32687,-2286,32687,-2286, - 32665,-2571,32665,-2571,32665,-2571,32665,-2571, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32616,-3141,32616,-3141,32616,-3141,32616,-3141, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32556,-3710,32556,-3710,32556,-3710,32556,-3710, - 32522,-3994,32522,-3994,32522,-3994,32522,-3994, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32448,-4561,32448,-4561,32448,-4561,32448,-4561, - 32407,-4844,32407,-4844,32407,-4844,32407,-4844, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32317,-5409,32317,-5409,32317,-5409,32317,-5409, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32218,-5972,32218,-5972,32218,-5972,32218,-5972, - 32164,-6253,32164,-6253,32164,-6253,32164,-6253, - 32109,-6533,32109,-6533,32109,-6533,32109,-6533, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31990,-7093,31990,-7093,31990,-7093,31990,-7093, - 31927,-7371,31927,-7371,31927,-7371,31927,-7371, - 31861,-7650,31861,-7650,31861,-7650,31861,-7650, - 31793,-7928,31793,-7928,31793,-7928,31793,-7928, - 31723,-8205,31723,-8205,31723,-8205,31723,-8205, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31575,-8757,31575,-8757,31575,-8757,31575,-8757, - 31497,-9032,31497,-9032,31497,-9032,31497,-9032, - 31417,-9307,31417,-9307,31417,-9307,31417,-9307, - 31335,-9581,31335,-9581,31335,-9581,31335,-9581, - 31250,-9854,31250,-9854,31250,-9854,31250,-9854, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 31073,-10398,31073,-10398,31073,-10398,31073,-10398, - 30981,-10668,30981,-10668,30981,-10668,30981,-10668, - 30887,-10938,30887,-10938,30887,-10938,30887,-10938, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30691,-11476,30691,-11476,30691,-11476,30691,-11476, - 30590,-11743,30590,-11743,30590,-11743,30590,-11743, - 30486,-12010,30486,-12010,30486,-12010,30486,-12010, - 30381,-12275,30381,-12275,30381,-12275,30381,-12275, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30162,-12804,30162,-12804,30162,-12804,30162,-12804, - 30049,-13066,30049,-13066,30049,-13066,30049,-13066, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29816,-13589,29816,-13589,29816,-13589,29816,-13589, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29575,-14107,29575,-14107,29575,-14107,29575,-14107, - 29450,-14365,29450,-14365,29450,-14365,29450,-14365, - 29324,-14621,29324,-14621,29324,-14621,29324,-14621, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 29064,-15131,29064,-15131,29064,-15131,29064,-15131, - 28931,-15384,28931,-15384,28931,-15384,28931,-15384, - 28796,-15636,28796,-15636,28796,-15636,28796,-15636, - 28658,-15886,28658,-15886,28658,-15886,28658,-15886, - 28518,-16136,28518,-16136,28518,-16136,28518,-16136, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28233,-16631,28233,-16631,28233,-16631,28233,-16631, - 28086,-16877,28086,-16877,28086,-16877,28086,-16877, - 27938,-17121,27938,-17121,27938,-17121,27938,-17121, - 27787,-17364,27787,-17364,27787,-17364,27787,-17364, - 27635,-17606,27635,-17606,27635,-17606,27635,-17606, - 27480,-17847,27480,-17847,27480,-17847,27480,-17847, - 27323,-18086,27323,-18086,27323,-18086,27323,-18086, - 27165,-18324,27165,-18324,27165,-18324,27165,-18324, - 27004,-18560,27004,-18560,27004,-18560,27004,-18560, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26676,-19028,26676,-19028,26676,-19028,26676,-19028, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26339,-19491,26339,-19491,26339,-19491,26339,-19491, - 26168,-19720,26168,-19720,26168,-19720,26168,-19720, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25820,-20174,25820,-20174,25820,-20174,25820,-20174, - 25643,-20398,25643,-20398,25643,-20398,25643,-20398, - 25464,-20621,25464,-20621,25464,-20621,25464,-20621, - 25283,-20843,25283,-20843,25283,-20843,25283,-20843, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24916,-21281,24916,-21281,24916,-21281,24916,-21281, - 24729,-21498,24729,-21498,24729,-21498,24729,-21498, - 24541,-21713,24541,-21713,24541,-21713,24541,-21713, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 24158,-22138,24158,-22138,24158,-22138,24158,-22138, - 23964,-22348,23964,-22348,23964,-22348,23964,-22348, - 23768,-22556,23768,-22556,23768,-22556,23768,-22556, - 23570,-22762,23570,-22762,23570,-22762,23570,-22762, - 23371,-22967,23371,-22967,23371,-22967,23371,-22967, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22966,-23372,22966,-23372,22966,-23372,22966,-23372, - 22761,-23571,22761,-23571,22761,-23571,22761,-23571, - 22555,-23769,22555,-23769,22555,-23769,22555,-23769, - 22347,-23965,22347,-23965,22347,-23965,22347,-23965, - 22137,-24159,22137,-24159,22137,-24159,22137,-24159, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21712,-24542,21712,-24542,21712,-24542,21712,-24542, - 21497,-24730,21497,-24730,21497,-24730,21497,-24730, - 21280,-24917,21280,-24917,21280,-24917,21280,-24917, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20842,-25284,20842,-25284,20842,-25284,20842,-25284, - 20620,-25465,20620,-25465,20620,-25465,20620,-25465, - 20397,-25644,20397,-25644,20397,-25644,20397,-25644, - 20173,-25821,20173,-25821,20173,-25821,20173,-25821, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19719,-26169,19719,-26169,19719,-26169,19719,-26169, - 19490,-26340,19490,-26340,19490,-26340,19490,-26340, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 19027,-26677,19027,-26677,19027,-26677,19027,-26677, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18559,-27005,18559,-27005,18559,-27005,18559,-27005, - 18323,-27166,18323,-27166,18323,-27166,18323,-27166, - 18085,-27324,18085,-27324,18085,-27324,18085,-27324, - 17846,-27481,17846,-27481,17846,-27481,17846,-27481, - 17605,-27636,17605,-27636,17605,-27636,17605,-27636, - 17363,-27788,17363,-27788,17363,-27788,17363,-27788, - 17120,-27939,17120,-27939,17120,-27939,17120,-27939, - 16876,-28087,16876,-28087,16876,-28087,16876,-28087, - 16630,-28234,16630,-28234,16630,-28234,16630,-28234, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16135,-28519,16135,-28519,16135,-28519,16135,-28519, - 15885,-28659,15885,-28659,15885,-28659,15885,-28659, - 15635,-28797,15635,-28797,15635,-28797,15635,-28797, - 15383,-28932,15383,-28932,15383,-28932,15383,-28932, - 15130,-29065,15130,-29065,15130,-29065,15130,-29065, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14620,-29325,14620,-29325,14620,-29325,14620,-29325, - 14364,-29451,14364,-29451,14364,-29451,14364,-29451, - 14106,-29576,14106,-29576,14106,-29576,14106,-29576, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 13588,-29817,13588,-29817,13588,-29817,13588,-29817, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 13065,-30050,13065,-30050,13065,-30050,13065,-30050, - 12803,-30163,12803,-30163,12803,-30163,12803,-30163, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12274,-30382,12274,-30382,12274,-30382,12274,-30382, - 12009,-30487,12009,-30487,12009,-30487,12009,-30487, - 11742,-30591,11742,-30591,11742,-30591,11742,-30591, - 11475,-30692,11475,-30692,11475,-30692,11475,-30692, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10937,-30888,10937,-30888,10937,-30888,10937,-30888, - 10667,-30982,10667,-30982,10667,-30982,10667,-30982, - 10397,-31074,10397,-31074,10397,-31074,10397,-31074, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9853,-31251,9853,-31251,9853,-31251,9853,-31251, - 9580,-31336,9580,-31336,9580,-31336,9580,-31336, - 9306,-31418,9306,-31418,9306,-31418,9306,-31418, - 9031,-31498,9031,-31498,9031,-31498,9031,-31498, - 8756,-31576,8756,-31576,8756,-31576,8756,-31576, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8204,-31724,8204,-31724,8204,-31724,8204,-31724, - 7927,-31794,7927,-31794,7927,-31794,7927,-31794, - 7649,-31862,7649,-31862,7649,-31862,7649,-31862, - 7370,-31928,7370,-31928,7370,-31928,7370,-31928, - 7092,-31991,7092,-31991,7092,-31991,7092,-31991, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6532,-32110,6532,-32110,6532,-32110,6532,-32110, - 6252,-32165,6252,-32165,6252,-32165,6252,-32165, - 5971,-32219,5971,-32219,5971,-32219,5971,-32219, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5408,-32318,5408,-32318,5408,-32318,5408,-32318, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4843,-32408,4843,-32408,4843,-32408,4843,-32408, - 4560,-32449,4560,-32449,4560,-32449,4560,-32449, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3993,-32523,3993,-32523,3993,-32523,3993,-32523, - 3709,-32557,3709,-32557,3709,-32557,3709,-32557, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 3140,-32617,3140,-32617,3140,-32617,3140,-32617, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 2570,-32666,2570,-32666,2570,-32666,2570,-32666, - 2285,-32688,2285,-32688,2285,-32688,2285,-32688, - 2000,-32706,2000,-32706,2000,-32706,2000,-32706, - 1714,-32723,1714,-32723,1714,-32723,1714,-32723, - 1429,-32736,1429,-32736,1429,-32736,1429,-32736, - 1143,-32748,1143,-32748,1143,-32748,1143,-32748, - 857,-32756,857,-32756,857,-32756,857,-32756, - 571,-32763,571,-32763,571,-32763,571,-32763, - 285,-32766,285,-32766,285,-32766,285,-32766 - }; - -static int16_t twb720[179*2*4] = {32762,-572,32762,-572,32762,-572,32762,-572, - 32747,-1144,32747,-1144,32747,-1144,32747,-1144, - 32722,-1715,32722,-1715,32722,-1715,32722,-1715, - 32687,-2286,32687,-2286,32687,-2286,32687,-2286, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32522,-3994,32522,-3994,32522,-3994,32522,-3994, - 32448,-4561,32448,-4561,32448,-4561,32448,-4561, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32164,-6253,32164,-6253,32164,-6253,32164,-6253, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31927,-7371,31927,-7371,31927,-7371,31927,-7371, - 31793,-7928,31793,-7928,31793,-7928,31793,-7928, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31497,-9032,31497,-9032,31497,-9032,31497,-9032, - 31335,-9581,31335,-9581,31335,-9581,31335,-9581, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 30981,-10668,30981,-10668,30981,-10668,30981,-10668, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30590,-11743,30590,-11743,30590,-11743,30590,-11743, - 30381,-12275,30381,-12275,30381,-12275,30381,-12275, - 30162,-12804,30162,-12804,30162,-12804,30162,-12804, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29450,-14365,29450,-14365,29450,-14365,29450,-14365, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 28931,-15384,28931,-15384,28931,-15384,28931,-15384, - 28658,-15886,28658,-15886,28658,-15886,28658,-15886, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28086,-16877,28086,-16877,28086,-16877,28086,-16877, - 27787,-17364,27787,-17364,27787,-17364,27787,-17364, - 27480,-17847,27480,-17847,27480,-17847,27480,-17847, - 27165,-18324,27165,-18324,27165,-18324,27165,-18324, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26168,-19720,26168,-19720,26168,-19720,26168,-19720, - 25820,-20174,25820,-20174,25820,-20174,25820,-20174, - 25464,-20621,25464,-20621,25464,-20621,25464,-20621, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24729,-21498,24729,-21498,24729,-21498,24729,-21498, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 23964,-22348,23964,-22348,23964,-22348,23964,-22348, - 23570,-22762,23570,-22762,23570,-22762,23570,-22762, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22761,-23571,22761,-23571,22761,-23571,22761,-23571, - 22347,-23965,22347,-23965,22347,-23965,22347,-23965, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21497,-24730,21497,-24730,21497,-24730,21497,-24730, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20620,-25465,20620,-25465,20620,-25465,20620,-25465, - 20173,-25821,20173,-25821,20173,-25821,20173,-25821, - 19719,-26169,19719,-26169,19719,-26169,19719,-26169, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18323,-27166,18323,-27166,18323,-27166,18323,-27166, - 17846,-27481,17846,-27481,17846,-27481,17846,-27481, - 17363,-27788,17363,-27788,17363,-27788,17363,-27788, - 16876,-28087,16876,-28087,16876,-28087,16876,-28087, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15885,-28659,15885,-28659,15885,-28659,15885,-28659, - 15383,-28932,15383,-28932,15383,-28932,15383,-28932, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14364,-29451,14364,-29451,14364,-29451,14364,-29451, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 12803,-30163,12803,-30163,12803,-30163,12803,-30163, - 12274,-30382,12274,-30382,12274,-30382,12274,-30382, - 11742,-30591,11742,-30591,11742,-30591,11742,-30591, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10667,-30982,10667,-30982,10667,-30982,10667,-30982, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9580,-31336,9580,-31336,9580,-31336,9580,-31336, - 9031,-31498,9031,-31498,9031,-31498,9031,-31498, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 7927,-31794,7927,-31794,7927,-31794,7927,-31794, - 7370,-31928,7370,-31928,7370,-31928,7370,-31928, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6252,-32165,6252,-32165,6252,-32165,6252,-32165, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4560,-32449,4560,-32449,4560,-32449,4560,-32449, - 3993,-32523,3993,-32523,3993,-32523,3993,-32523, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 2285,-32688,2285,-32688,2285,-32688,2285,-32688, - 1714,-32723,1714,-32723,1714,-32723,1714,-32723, - 1143,-32748,1143,-32748,1143,-32748,1143,-32748, - 571,-32763,571,-32763,571,-32763,571,-32763, - 0,-32767,0,-32767,0,-32767,0,-32767, - -572,-32763,-572,-32763,-572,-32763,-572,-32763, - -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748, - -1715,-32723,-1715,-32723,-1715,-32723,-1715,-32723, - -2286,-32688,-2286,-32688,-2286,-32688,-2286,-32688, - -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -3994,-32523,-3994,-32523,-3994,-32523,-3994,-32523, - -4561,-32449,-4561,-32449,-4561,-32449,-4561,-32449, - -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6253,-32165,-6253,-32165,-6253,-32165,-6253,-32165, - -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051, - -7371,-31928,-7371,-31928,-7371,-31928,-7371,-31928, - -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -9032,-31498,-9032,-31498,-9032,-31498,-9032,-31498, - -9581,-31336,-9581,-31336,-9581,-31336,-9581,-31336, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10668,-30982,-10668,-30982,-10668,-30982,-10668,-30982, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11743,-30591,-11743,-30591,-11743,-30591,-11743,-30591, - -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382, - -12804,-30163,-12804,-30163,-12804,-30163,-12804,-30163, - -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935, - -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697, - -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451, - -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196, - -15384,-28932,-15384,-28932,-15384,-28932,-15384,-28932, - -15886,-28659,-15886,-28659,-15886,-28659,-15886,-28659, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -16877,-28087,-16877,-28087,-16877,-28087,-16877,-28087, - -17364,-27788,-17364,-27788,-17364,-27788,-17364,-27788, - -17847,-27481,-17847,-27481,-17847,-27481,-17847,-27481, - -18324,-27166,-18324,-27166,-18324,-27166,-18324,-27166, - -18795,-26842,-18795,-26842,-18795,-26842,-18795,-26842, - -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510, - -19720,-26169,-19720,-26169,-19720,-26169,-19720,-26169, - -20174,-25821,-20174,-25821,-20174,-25821,-20174,-25821, - -20621,-25465,-20621,-25465,-20621,-25465,-20621,-25465, - -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101, - -21498,-24730,-21498,-24730,-21498,-24730,-21498,-24730, - -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351, - -22348,-23965,-22348,-23965,-22348,-23965,-22348,-23965, - -22762,-23571,-22762,-23571,-22762,-23571,-22762,-23571, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23571,-22762,-23571,-22762,-23571,-22762,-23571,-22762, - -23965,-22348,-23965,-22348,-23965,-22348,-23965,-22348, - -24351,-21926,-24351,-21926,-24351,-21926,-24351,-21926, - -24730,-21498,-24730,-21498,-24730,-21498,-24730,-21498, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25465,-20621,-25465,-20621,-25465,-20621,-25465,-20621, - -25821,-20174,-25821,-20174,-25821,-20174,-25821,-20174, - -26169,-19720,-26169,-19720,-26169,-19720,-26169,-19720, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -26842,-18795,-26842,-18795,-26842,-18795,-26842,-18795, - -27166,-18324,-27166,-18324,-27166,-18324,-27166,-18324, - -27481,-17847,-27481,-17847,-27481,-17847,-27481,-17847, - -27788,-17364,-27788,-17364,-27788,-17364,-27788,-17364, - -28087,-16877,-28087,-16877,-28087,-16877,-28087,-16877, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28659,-15886,-28659,-15886,-28659,-15886,-28659,-15886, - -28932,-15384,-28932,-15384,-28932,-15384,-28932,-15384, - -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876, - -29451,-14365,-29451,-14365,-29451,-14365,-29451,-14365, - -29697,-13848,-29697,-13848,-29697,-13848,-29697,-13848, - -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328, - -30163,-12804,-30163,-12804,-30163,-12804,-30163,-12804, - -30382,-12275,-30382,-12275,-30382,-12275,-30382,-12275, - -30591,-11743,-30591,-11743,-30591,-11743,-30591,-11743, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -30982,-10668,-30982,-10668,-30982,-10668,-30982,-10668, - -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126, - -31336,-9581,-31336,-9581,-31336,-9581,-31336,-9581, - -31498,-9032,-31498,-9032,-31498,-9032,-31498,-9032, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31794,-7928,-31794,-7928,-31794,-7928,-31794,-7928, - -31928,-7371,-31928,-7371,-31928,-7371,-31928,-7371, - -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813, - -32165,-6253,-32165,-6253,-32165,-6253,-32165,-6253, - -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690, - -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126, - -32449,-4561,-32449,-4561,-32449,-4561,-32449,-4561, - -32523,-3994,-32523,-3994,-32523,-3994,-32523,-3994, - -32588,-3426,-32588,-3426,-32588,-3426,-32588,-3426, - -32643,-2856,-32643,-2856,-32643,-2856,-32643,-2856, - -32688,-2286,-32688,-2286,-32688,-2286,-32688,-2286, - -32723,-1715,-32723,-1715,-32723,-1715,-32723,-1715, - -32748,-1144,-32748,-1144,-32748,-1144,-32748,-1144, - -32763,-572,-32763,-572,-32763,-572,-32763,-572 - }; - -static int16_t twc720[179*2*4] = {32755,-858,32755,-858,32755,-858,32755,-858, - 32722,-1715,32722,-1715,32722,-1715,32722,-1715, - 32665,-2571,32665,-2571,32665,-2571,32665,-2571, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32218,-5972,32218,-5972,32218,-5972,32218,-5972, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31861,-7650,31861,-7650,31861,-7650,31861,-7650, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31417,-9307,31417,-9307,31417,-9307,31417,-9307, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 30887,-10938,30887,-10938,30887,-10938,30887,-10938, - 30590,-11743,30590,-11743,30590,-11743,30590,-11743, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29575,-14107,29575,-14107,29575,-14107,29575,-14107, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 28796,-15636,28796,-15636,28796,-15636,28796,-15636, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 27938,-17121,27938,-17121,27938,-17121,27938,-17121, - 27480,-17847,27480,-17847,27480,-17847,27480,-17847, - 27004,-18560,27004,-18560,27004,-18560,27004,-18560, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25464,-20621,25464,-20621,25464,-20621,25464,-20621, - 24916,-21281,24916,-21281,24916,-21281,24916,-21281, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 23768,-22556,23768,-22556,23768,-22556,23768,-22556, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22555,-23769,22555,-23769,22555,-23769,22555,-23769, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21280,-24917,21280,-24917,21280,-24917,21280,-24917, - 20620,-25465,20620,-25465,20620,-25465,20620,-25465, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18559,-27005,18559,-27005,18559,-27005,18559,-27005, - 17846,-27481,17846,-27481,17846,-27481,17846,-27481, - 17120,-27939,17120,-27939,17120,-27939,17120,-27939, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15635,-28797,15635,-28797,15635,-28797,15635,-28797, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14106,-29576,14106,-29576,14106,-29576,14106,-29576, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 11742,-30591,11742,-30591,11742,-30591,11742,-30591, - 10937,-30888,10937,-30888,10937,-30888,10937,-30888, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9306,-31418,9306,-31418,9306,-31418,9306,-31418, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 7649,-31862,7649,-31862,7649,-31862,7649,-31862, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 5971,-32219,5971,-32219,5971,-32219,5971,-32219, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 2570,-32666,2570,-32666,2570,-32666,2570,-32666, - 1714,-32723,1714,-32723,1714,-32723,1714,-32723, - 857,-32756,857,-32756,857,-32756,857,-32756, - 0,-32767,0,-32767,0,-32767,0,-32767, - -858,-32756,-858,-32756,-858,-32756,-858,-32756, - -1715,-32723,-1715,-32723,-1715,-32723,-1715,-32723, - -2571,-32666,-2571,-32666,-2571,-32666,-2571,-32666, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487, - -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364, - -5972,-32219,-5972,-32219,-5972,-32219,-5972,-32219, - -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051, - -7650,-31862,-7650,-31862,-7650,-31862,-7650,-31862, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -9307,-31418,-9307,-31418,-9307,-31418,-9307,-31418, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10938,-30888,-10938,-30888,-10938,-30888,-10938,-30888, - -11743,-30591,-11743,-30591,-11743,-30591,-11743,-30591, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935, - -14107,-29576,-14107,-29576,-14107,-29576,-14107,-29576, - -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196, - -15636,-28797,-15636,-28797,-15636,-28797,-15636,-28797, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -17121,-27939,-17121,-27939,-17121,-27939,-17121,-27939, - -17847,-27481,-17847,-27481,-17847,-27481,-17847,-27481, - -18560,-27005,-18560,-27005,-18560,-27005,-18560,-27005, - -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510, - -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996, - -20621,-25465,-20621,-25465,-20621,-25465,-20621,-25465, - -21281,-24917,-21281,-24917,-21281,-24917,-21281,-24917, - -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351, - -22556,-23769,-22556,-23769,-22556,-23769,-22556,-23769, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23769,-22556,-23769,-22556,-23769,-22556,-23769,-22556, - -24351,-21926,-24351,-21926,-24351,-21926,-24351,-21926, - -24917,-21281,-24917,-21281,-24917,-21281,-24917,-21281, - -25465,-20621,-25465,-20621,-25465,-20621,-25465,-20621, - -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -27005,-18560,-27005,-18560,-27005,-18560,-27005,-18560, - -27481,-17847,-27481,-17847,-27481,-17847,-27481,-17847, - -27939,-17121,-27939,-17121,-27939,-17121,-27939,-17121, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28797,-15636,-28797,-15636,-28797,-15636,-28797,-15636, - -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876, - -29576,-14107,-29576,-14107,-29576,-14107,-29576,-14107, - -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30591,-11743,-30591,-11743,-30591,-11743,-30591,-11743, - -30888,-10938,-30888,-10938,-30888,-10938,-30888,-10938, - -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126, - -31418,-9307,-31418,-9307,-31418,-9307,-31418,-9307, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31862,-7650,-31862,-7650,-31862,-7650,-31862,-7650, - -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813, - -32219,-5972,-32219,-5972,-32219,-5972,-32219,-5972, - -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126, - -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277, - -32588,-3426,-32588,-3426,-32588,-3426,-32588,-3426, - -32666,-2571,-32666,-2571,-32666,-2571,-32666,-2571, - -32723,-1715,-32723,-1715,-32723,-1715,-32723,-1715, - -32756,-858,-32756,-858,-32756,-858,-32756,-858, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32756,857,-32756,857,-32756,857,-32756,857, - -32723,1714,-32723,1714,-32723,1714,-32723,1714, - -32666,2570,-32666,2570,-32666,2570,-32666,2570, - -32588,3425,-32588,3425,-32588,3425,-32588,3425, - -32487,4276,-32487,4276,-32487,4276,-32487,4276, - -32364,5125,-32364,5125,-32364,5125,-32364,5125, - -32219,5971,-32219,5971,-32219,5971,-32219,5971, - -32051,6812,-32051,6812,-32051,6812,-32051,6812, - -31862,7649,-31862,7649,-31862,7649,-31862,7649, - -31651,8480,-31651,8480,-31651,8480,-31651,8480, - -31418,9306,-31418,9306,-31418,9306,-31418,9306, - -31164,10125,-31164,10125,-31164,10125,-31164,10125, - -30888,10937,-30888,10937,-30888,10937,-30888,10937, - -30591,11742,-30591,11742,-30591,11742,-30591,11742, - -30273,12539,-30273,12539,-30273,12539,-30273,12539, - -29935,13327,-29935,13327,-29935,13327,-29935,13327, - -29576,14106,-29576,14106,-29576,14106,-29576,14106, - -29196,14875,-29196,14875,-29196,14875,-29196,14875, - -28797,15635,-28797,15635,-28797,15635,-28797,15635, - -28378,16383,-28378,16383,-28378,16383,-28378,16383, - -27939,17120,-27939,17120,-27939,17120,-27939,17120, - -27481,17846,-27481,17846,-27481,17846,-27481,17846, - -27005,18559,-27005,18559,-27005,18559,-27005,18559, - -26510,19259,-26510,19259,-26510,19259,-26510,19259, - -25996,19947,-25996,19947,-25996,19947,-25996,19947, - -25465,20620,-25465,20620,-25465,20620,-25465,20620, - -24917,21280,-24917,21280,-24917,21280,-24917,21280, - -24351,21925,-24351,21925,-24351,21925,-24351,21925, - -23769,22555,-23769,22555,-23769,22555,-23769,22555, - -23170,23169,-23170,23169,-23170,23169,-23170,23169, - -22556,23768,-22556,23768,-22556,23768,-22556,23768, - -21926,24350,-21926,24350,-21926,24350,-21926,24350, - -21281,24916,-21281,24916,-21281,24916,-21281,24916, - -20621,25464,-20621,25464,-20621,25464,-20621,25464, - -19948,25995,-19948,25995,-19948,25995,-19948,25995, - -19260,26509,-19260,26509,-19260,26509,-19260,26509, - -18560,27004,-18560,27004,-18560,27004,-18560,27004, - -17847,27480,-17847,27480,-17847,27480,-17847,27480, - -17121,27938,-17121,27938,-17121,27938,-17121,27938, - -16384,28377,-16384,28377,-16384,28377,-16384,28377, - -15636,28796,-15636,28796,-15636,28796,-15636,28796, - -14876,29195,-14876,29195,-14876,29195,-14876,29195, - -14107,29575,-14107,29575,-14107,29575,-14107,29575, - -13328,29934,-13328,29934,-13328,29934,-13328,29934, - -12540,30272,-12540,30272,-12540,30272,-12540,30272, - -11743,30590,-11743,30590,-11743,30590,-11743,30590, - -10938,30887,-10938,30887,-10938,30887,-10938,30887, - -10126,31163,-10126,31163,-10126,31163,-10126,31163, - -9307,31417,-9307,31417,-9307,31417,-9307,31417, - -8481,31650,-8481,31650,-8481,31650,-8481,31650, - -7650,31861,-7650,31861,-7650,31861,-7650,31861, - -6813,32050,-6813,32050,-6813,32050,-6813,32050, - -5972,32218,-5972,32218,-5972,32218,-5972,32218, - -5126,32363,-5126,32363,-5126,32363,-5126,32363, - -4277,32486,-4277,32486,-4277,32486,-4277,32486, - -3426,32587,-3426,32587,-3426,32587,-3426,32587, - -2571,32665,-2571,32665,-2571,32665,-2571,32665, - -1715,32722,-1715,32722,-1715,32722,-1715,32722, - -858,32755,-858,32755,-858,32755,-858,32755 - }; void dft720(int16_t *x,int16_t *y,unsigned char scale_flag) // 180 x 4 { @@ -13019,606 +8057,68 @@ void dft720(int16_t *x,int16_t *y,unsigned char scale_flag) // 180 x 4 }; -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:287)/864)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:287)/864)); -twa2 = zeros(1,2*287); -twb2 = zeros(1,2*287); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa864[287*2*4] = {"); -for i=1:2:(2*286) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"static int16_t twb864[287*2*4] = {"); -for i=1:2:(2*286) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fclose(fd); -*/ -static int16_t twa864[287*2*4] = {32766,-239,32766,-239,32766,-239,32766,-239, - 32763,-477,32763,-477,32763,-477,32763,-477, - 32759,-715,32759,-715,32759,-715,32759,-715, - 32753,-954,32753,-954,32753,-954,32753,-954, - 32745,-1192,32745,-1192,32745,-1192,32745,-1192, - 32735,-1430,32735,-1430,32735,-1430,32735,-1430, - 32724,-1668,32724,-1668,32724,-1668,32724,-1668, - 32711,-1906,32711,-1906,32711,-1906,32711,-1906, - 32696,-2144,32696,-2144,32696,-2144,32696,-2144, - 32680,-2381,32680,-2381,32680,-2381,32680,-2381, - 32662,-2619,32662,-2619,32662,-2619,32662,-2619, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32620,-3094,32620,-3094,32620,-3094,32620,-3094, - 32597,-3331,32597,-3331,32597,-3331,32597,-3331, - 32572,-3568,32572,-3568,32572,-3568,32572,-3568, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32516,-4041,32516,-4041,32516,-4041,32516,-4041, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32454,-4514,32454,-4514,32454,-4514,32454,-4514, - 32421,-4749,32421,-4749,32421,-4749,32421,-4749, - 32385,-4985,32385,-4985,32385,-4985,32385,-4985, - 32348,-5221,32348,-5221,32348,-5221,32348,-5221, - 32309,-5456,32309,-5456,32309,-5456,32309,-5456, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32226,-5925,32226,-5925,32226,-5925,32226,-5925, - 32183,-6159,32183,-6159,32183,-6159,32183,-6159, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 32090,-6627,32090,-6627,32090,-6627,32090,-6627, - 32041,-6860,32041,-6860,32041,-6860,32041,-6860, - 31990,-7093,31990,-7093,31990,-7093,31990,-7093, - 31937,-7325,31937,-7325,31937,-7325,31937,-7325, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31827,-7789,31827,-7789,31827,-7789,31827,-7789, - 31770,-8020,31770,-8020,31770,-8020,31770,-8020, - 31711,-8251,31711,-8251,31711,-8251,31711,-8251, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31587,-8711,31587,-8711,31587,-8711,31587,-8711, - 31523,-8941,31523,-8941,31523,-8941,31523,-8941, - 31457,-9170,31457,-9170,31457,-9170,31457,-9170, - 31390,-9398,31390,-9398,31390,-9398,31390,-9398, - 31321,-9626,31321,-9626,31321,-9626,31321,-9626, - 31250,-9854,31250,-9854,31250,-9854,31250,-9854, - 31177,-10081,31177,-10081,31177,-10081,31177,-10081, - 31103,-10307,31103,-10307,31103,-10307,31103,-10307, - 31028,-10533,31028,-10533,31028,-10533,31028,-10533, - 30950,-10758,30950,-10758,30950,-10758,30950,-10758, - 30871,-10983,30871,-10983,30871,-10983,30871,-10983, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30708,-11431,30708,-11431,30708,-11431,30708,-11431, - 30624,-11654,30624,-11654,30624,-11654,30624,-11654, - 30539,-11877,30539,-11877,30539,-11877,30539,-11877, - 30451,-12098,30451,-12098,30451,-12098,30451,-12098, - 30363,-12319,30363,-12319,30363,-12319,30363,-12319, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30180,-12760,30180,-12760,30180,-12760,30180,-12760, - 30087,-12979,30087,-12979,30087,-12979,30087,-12979, - 29992,-13197,29992,-13197,29992,-13197,29992,-13197, - 29895,-13415,29895,-13415,29895,-13415,29895,-13415, - 29796,-13632,29796,-13632,29796,-13632,29796,-13632, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29595,-14064,29595,-14064,29595,-14064,29595,-14064, - 29492,-14279,29492,-14279,29492,-14279,29492,-14279, - 29387,-14493,29387,-14493,29387,-14493,29387,-14493, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 29173,-14919,29173,-14919,29173,-14919,29173,-14919, - 29064,-15131,29064,-15131,29064,-15131,29064,-15131, - 28953,-15342,28953,-15342,28953,-15342,28953,-15342, - 28841,-15552,28841,-15552,28841,-15552,28841,-15552, - 28727,-15761,28727,-15761,28727,-15761,28727,-15761, - 28612,-15970,28612,-15970,28612,-15970,28612,-15970, - 28495,-16177,28495,-16177,28495,-16177,28495,-16177, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28257,-16590,28257,-16590,28257,-16590,28257,-16590, - 28135,-16795,28135,-16795,28135,-16795,28135,-16795, - 28012,-16999,28012,-16999,28012,-16999,28012,-16999, - 27888,-17202,27888,-17202,27888,-17202,27888,-17202, - 27762,-17405,27762,-17405,27762,-17405,27762,-17405, - 27635,-17606,27635,-17606,27635,-17606,27635,-17606, - 27506,-17807,27506,-17807,27506,-17807,27506,-17807, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 27111,-18403,27111,-18403,27111,-18403,27111,-18403, - 26977,-18599,26977,-18599,26977,-18599,26977,-18599, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26703,-18990,26703,-18990,26703,-18990,26703,-18990, - 26564,-19183,26564,-19183,26564,-19183,26564,-19183, - 26424,-19376,26424,-19376,26424,-19376,26424,-19376, - 26283,-19568,26283,-19568,26283,-19568,26283,-19568, - 26140,-19758,26140,-19758,26140,-19758,26140,-19758, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25850,-20136,25850,-20136,25850,-20136,25850,-20136, - 25702,-20324,25702,-20324,25702,-20324,25702,-20324, - 25554,-20510,25554,-20510,25554,-20510,25554,-20510, - 25404,-20695,25404,-20695,25404,-20695,25404,-20695, - 25253,-20880,25253,-20880,25253,-20880,25253,-20880, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24947,-21245,24947,-21245,24947,-21245,24947,-21245, - 24791,-21426,24791,-21426,24791,-21426,24791,-21426, - 24635,-21605,24635,-21605,24635,-21605,24635,-21605, - 24477,-21784,24477,-21784,24477,-21784,24477,-21784, - 24318,-21961,24318,-21961,24318,-21961,24318,-21961, - 24158,-22138,24158,-22138,24158,-22138,24158,-22138, - 23996,-22313,23996,-22313,23996,-22313,23996,-22313, - 23833,-22487,23833,-22487,23833,-22487,23833,-22487, - 23669,-22659,23669,-22659,23669,-22659,23669,-22659, - 23504,-22831,23504,-22831,23504,-22831,23504,-22831, - 23337,-23001,23337,-23001,23337,-23001,23337,-23001, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 23000,-23338,23000,-23338,23000,-23338,23000,-23338, - 22830,-23505,22830,-23505,22830,-23505,22830,-23505, - 22658,-23670,22658,-23670,22658,-23670,22658,-23670, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 22312,-23997,22312,-23997,22312,-23997,22312,-23997, - 22137,-24159,22137,-24159,22137,-24159,22137,-24159, - 21960,-24319,21960,-24319,21960,-24319,21960,-24319, - 21783,-24478,21783,-24478,21783,-24478,21783,-24478, - 21604,-24636,21604,-24636,21604,-24636,21604,-24636, - 21425,-24792,21425,-24792,21425,-24792,21425,-24792, - 21244,-24948,21244,-24948,21244,-24948,21244,-24948, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20879,-25254,20879,-25254,20879,-25254,20879,-25254, - 20694,-25405,20694,-25405,20694,-25405,20694,-25405, - 20509,-25555,20509,-25555,20509,-25555,20509,-25555, - 20323,-25703,20323,-25703,20323,-25703,20323,-25703, - 20135,-25851,20135,-25851,20135,-25851,20135,-25851, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19757,-26141,19757,-26141,19757,-26141,19757,-26141, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 19375,-26425,19375,-26425,19375,-26425,19375,-26425, - 19182,-26565,19182,-26565,19182,-26565,19182,-26565, - 18989,-26704,18989,-26704,18989,-26704,18989,-26704, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18598,-26978,18598,-26978,18598,-26978,18598,-26978, - 18402,-27112,18402,-27112,18402,-27112,18402,-27112, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 18005,-27377,18005,-27377,18005,-27377,18005,-27377, - 17806,-27507,17806,-27507,17806,-27507,17806,-27507, - 17605,-27636,17605,-27636,17605,-27636,17605,-27636, - 17404,-27763,17404,-27763,17404,-27763,17404,-27763, - 17201,-27889,17201,-27889,17201,-27889,17201,-27889, - 16998,-28013,16998,-28013,16998,-28013,16998,-28013, - 16794,-28136,16794,-28136,16794,-28136,16794,-28136, - 16589,-28258,16589,-28258,16589,-28258,16589,-28258, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16176,-28496,16176,-28496,16176,-28496,16176,-28496, - 15969,-28613,15969,-28613,15969,-28613,15969,-28613, - 15760,-28728,15760,-28728,15760,-28728,15760,-28728, - 15551,-28842,15551,-28842,15551,-28842,15551,-28842, - 15341,-28954,15341,-28954,15341,-28954,15341,-28954, - 15130,-29065,15130,-29065,15130,-29065,15130,-29065, - 14918,-29174,14918,-29174,14918,-29174,14918,-29174, - 14705,-29282,14705,-29282,14705,-29282,14705,-29282, - 14492,-29388,14492,-29388,14492,-29388,14492,-29388, - 14278,-29493,14278,-29493,14278,-29493,14278,-29493, - 14063,-29596,14063,-29596,14063,-29596,14063,-29596, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 13631,-29797,13631,-29797,13631,-29797,13631,-29797, - 13414,-29896,13414,-29896,13414,-29896,13414,-29896, - 13196,-29993,13196,-29993,13196,-29993,13196,-29993, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12759,-30181,12759,-30181,12759,-30181,12759,-30181, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12318,-30364,12318,-30364,12318,-30364,12318,-30364, - 12097,-30452,12097,-30452,12097,-30452,12097,-30452, - 11876,-30540,11876,-30540,11876,-30540,11876,-30540, - 11653,-30625,11653,-30625,11653,-30625,11653,-30625, - 11430,-30709,11430,-30709,11430,-30709,11430,-30709, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10982,-30872,10982,-30872,10982,-30872,10982,-30872, - 10757,-30951,10757,-30951,10757,-30951,10757,-30951, - 10532,-31029,10532,-31029,10532,-31029,10532,-31029, - 10306,-31104,10306,-31104,10306,-31104,10306,-31104, - 10080,-31178,10080,-31178,10080,-31178,10080,-31178, - 9853,-31251,9853,-31251,9853,-31251,9853,-31251, - 9625,-31322,9625,-31322,9625,-31322,9625,-31322, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 9169,-31458,9169,-31458,9169,-31458,9169,-31458, - 8940,-31524,8940,-31524,8940,-31524,8940,-31524, - 8710,-31588,8710,-31588,8710,-31588,8710,-31588, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8250,-31712,8250,-31712,8250,-31712,8250,-31712, - 8019,-31771,8019,-31771,8019,-31771,8019,-31771, - 7788,-31828,7788,-31828,7788,-31828,7788,-31828, - 7556,-31884,7556,-31884,7556,-31884,7556,-31884, - 7324,-31938,7324,-31938,7324,-31938,7324,-31938, - 7092,-31991,7092,-31991,7092,-31991,7092,-31991, - 6859,-32042,6859,-32042,6859,-32042,6859,-32042, - 6626,-32091,6626,-32091,6626,-32091,6626,-32091, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 6158,-32184,6158,-32184,6158,-32184,6158,-32184, - 5924,-32227,5924,-32227,5924,-32227,5924,-32227, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5455,-32310,5455,-32310,5455,-32310,5455,-32310, - 5220,-32349,5220,-32349,5220,-32349,5220,-32349, - 4984,-32386,4984,-32386,4984,-32386,4984,-32386, - 4748,-32422,4748,-32422,4748,-32422,4748,-32422, - 4513,-32455,4513,-32455,4513,-32455,4513,-32455, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 4040,-32517,4040,-32517,4040,-32517,4040,-32517, - 3804,-32546,3804,-32546,3804,-32546,3804,-32546, - 3567,-32573,3567,-32573,3567,-32573,3567,-32573, - 3330,-32598,3330,-32598,3330,-32598,3330,-32598, - 3093,-32621,3093,-32621,3093,-32621,3093,-32621, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 2618,-32663,2618,-32663,2618,-32663,2618,-32663, - 2380,-32681,2380,-32681,2380,-32681,2380,-32681, - 2143,-32697,2143,-32697,2143,-32697,2143,-32697, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 1667,-32725,1667,-32725,1667,-32725,1667,-32725, - 1429,-32736,1429,-32736,1429,-32736,1429,-32736, - 1191,-32746,1191,-32746,1191,-32746,1191,-32746, - 953,-32754,953,-32754,953,-32754,953,-32754, - 714,-32760,714,-32760,714,-32760,714,-32760, - 476,-32764,476,-32764,476,-32764,476,-32764, - 238,-32767,238,-32767,238,-32767,238,-32767, - 0,-32767,0,-32767,0,-32767,0,-32767, - -239,-32767,-239,-32767,-239,-32767,-239,-32767, - -477,-32764,-477,-32764,-477,-32764,-477,-32764, - -715,-32760,-715,-32760,-715,-32760,-715,-32760, - -954,-32754,-954,-32754,-954,-32754,-954,-32754, - -1192,-32746,-1192,-32746,-1192,-32746,-1192,-32746, - -1430,-32736,-1430,-32736,-1430,-32736,-1430,-32736, - -1668,-32725,-1668,-32725,-1668,-32725,-1668,-32725, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -2144,-32697,-2144,-32697,-2144,-32697,-2144,-32697, - -2381,-32681,-2381,-32681,-2381,-32681,-2381,-32681, - -2619,-32663,-2619,-32663,-2619,-32663,-2619,-32663, - -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643, - -3094,-32621,-3094,-32621,-3094,-32621,-3094,-32621, - -3331,-32598,-3331,-32598,-3331,-32598,-3331,-32598, - -3568,-32573,-3568,-32573,-3568,-32573,-3568,-32573, - -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546, - -4041,-32517,-4041,-32517,-4041,-32517,-4041,-32517, - -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487, - -4514,-32455,-4514,-32455,-4514,-32455,-4514,-32455, - -4749,-32422,-4749,-32422,-4749,-32422,-4749,-32422, - -4985,-32386,-4985,-32386,-4985,-32386,-4985,-32386, - -5221,-32349,-5221,-32349,-5221,-32349,-5221,-32349, - -5456,-32310,-5456,-32310,-5456,-32310,-5456,-32310, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -5925,-32227,-5925,-32227,-5925,-32227,-5925,-32227, - -6159,-32184,-6159,-32184,-6159,-32184,-6159,-32184, - -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138, - -6627,-32091,-6627,-32091,-6627,-32091,-6627,-32091, - -6860,-32042,-6860,-32042,-6860,-32042,-6860,-32042, - -7093,-31991,-7093,-31991,-7093,-31991,-7093,-31991, - -7325,-31938,-7325,-31938,-7325,-31938,-7325,-31938, - -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884, - -7789,-31828,-7789,-31828,-7789,-31828,-7789,-31828, - -8020,-31771,-8020,-31771,-8020,-31771,-8020,-31771, - -8251,-31712,-8251,-31712,-8251,-31712,-8251,-31712, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -8711,-31588,-8711,-31588,-8711,-31588,-8711,-31588, - -8941,-31524,-8941,-31524,-8941,-31524,-8941,-31524, - -9170,-31458,-9170,-31458,-9170,-31458,-9170,-31458, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -9626,-31322,-9626,-31322,-9626,-31322,-9626,-31322, - -9854,-31251,-9854,-31251,-9854,-31251,-9854,-31251, - -10081,-31178,-10081,-31178,-10081,-31178,-10081,-31178, - -10307,-31104,-10307,-31104,-10307,-31104,-10307,-31104, - -10533,-31029,-10533,-31029,-10533,-31029,-10533,-31029, - -10758,-30951,-10758,-30951,-10758,-30951,-10758,-30951, - -10983,-30872,-10983,-30872,-10983,-30872,-10983,-30872, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11431,-30709,-11431,-30709,-11431,-30709,-11431,-30709, - -11654,-30625,-11654,-30625,-11654,-30625,-11654,-30625, - -11877,-30540,-11877,-30540,-11877,-30540,-11877,-30540, - -12098,-30452,-12098,-30452,-12098,-30452,-12098,-30452, - -12319,-30364,-12319,-30364,-12319,-30364,-12319,-30364, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -12760,-30181,-12760,-30181,-12760,-30181,-12760,-30181, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -13197,-29993,-13197,-29993,-13197,-29993,-13197,-29993, - -13415,-29896,-13415,-29896,-13415,-29896,-13415,-29896, - -13632,-29797,-13632,-29797,-13632,-29797,-13632,-29797, - -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697, - -14064,-29596,-14064,-29596,-14064,-29596,-14064,-29596, - -14279,-29493,-14279,-29493,-14279,-29493,-14279,-29493, - -14493,-29388,-14493,-29388,-14493,-29388,-14493,-29388, - -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282, - -14919,-29174,-14919,-29174,-14919,-29174,-14919,-29174, - -15131,-29065,-15131,-29065,-15131,-29065,-15131,-29065, - -15342,-28954,-15342,-28954,-15342,-28954,-15342,-28954, - -15552,-28842,-15552,-28842,-15552,-28842,-15552,-28842, - -15761,-28728,-15761,-28728,-15761,-28728,-15761,-28728, - -15970,-28613,-15970,-28613,-15970,-28613,-15970,-28613, - -16177,-28496,-16177,-28496,-16177,-28496,-16177,-28496 - }; -static int16_t twb864[287*2*4] = {32763,-477,32763,-477,32763,-477,32763,-477, - 32753,-954,32753,-954,32753,-954,32753,-954, - 32735,-1430,32735,-1430,32735,-1430,32735,-1430, - 32711,-1906,32711,-1906,32711,-1906,32711,-1906, - 32680,-2381,32680,-2381,32680,-2381,32680,-2381, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32597,-3331,32597,-3331,32597,-3331,32597,-3331, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32421,-4749,32421,-4749,32421,-4749,32421,-4749, - 32348,-5221,32348,-5221,32348,-5221,32348,-5221, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32183,-6159,32183,-6159,32183,-6159,32183,-6159, - 32090,-6627,32090,-6627,32090,-6627,32090,-6627, - 31990,-7093,31990,-7093,31990,-7093,31990,-7093, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31770,-8020,31770,-8020,31770,-8020,31770,-8020, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31523,-8941,31523,-8941,31523,-8941,31523,-8941, - 31390,-9398,31390,-9398,31390,-9398,31390,-9398, - 31250,-9854,31250,-9854,31250,-9854,31250,-9854, - 31103,-10307,31103,-10307,31103,-10307,31103,-10307, - 30950,-10758,30950,-10758,30950,-10758,30950,-10758, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30624,-11654,30624,-11654,30624,-11654,30624,-11654, - 30451,-12098,30451,-12098,30451,-12098,30451,-12098, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30087,-12979,30087,-12979,30087,-12979,30087,-12979, - 29895,-13415,29895,-13415,29895,-13415,29895,-13415, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29492,-14279,29492,-14279,29492,-14279,29492,-14279, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 29064,-15131,29064,-15131,29064,-15131,29064,-15131, - 28841,-15552,28841,-15552,28841,-15552,28841,-15552, - 28612,-15970,28612,-15970,28612,-15970,28612,-15970, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28135,-16795,28135,-16795,28135,-16795,28135,-16795, - 27888,-17202,27888,-17202,27888,-17202,27888,-17202, - 27635,-17606,27635,-17606,27635,-17606,27635,-17606, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 27111,-18403,27111,-18403,27111,-18403,27111,-18403, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26564,-19183,26564,-19183,26564,-19183,26564,-19183, - 26283,-19568,26283,-19568,26283,-19568,26283,-19568, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25702,-20324,25702,-20324,25702,-20324,25702,-20324, - 25404,-20695,25404,-20695,25404,-20695,25404,-20695, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24791,-21426,24791,-21426,24791,-21426,24791,-21426, - 24477,-21784,24477,-21784,24477,-21784,24477,-21784, - 24158,-22138,24158,-22138,24158,-22138,24158,-22138, - 23833,-22487,23833,-22487,23833,-22487,23833,-22487, - 23504,-22831,23504,-22831,23504,-22831,23504,-22831, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22830,-23505,22830,-23505,22830,-23505,22830,-23505, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 22137,-24159,22137,-24159,22137,-24159,22137,-24159, - 21783,-24478,21783,-24478,21783,-24478,21783,-24478, - 21425,-24792,21425,-24792,21425,-24792,21425,-24792, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20694,-25405,20694,-25405,20694,-25405,20694,-25405, - 20323,-25703,20323,-25703,20323,-25703,20323,-25703, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 19182,-26565,19182,-26565,19182,-26565,19182,-26565, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18402,-27112,18402,-27112,18402,-27112,18402,-27112, - 18005,-27377,18005,-27377,18005,-27377,18005,-27377, - 17605,-27636,17605,-27636,17605,-27636,17605,-27636, - 17201,-27889,17201,-27889,17201,-27889,17201,-27889, - 16794,-28136,16794,-28136,16794,-28136,16794,-28136, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15969,-28613,15969,-28613,15969,-28613,15969,-28613, - 15551,-28842,15551,-28842,15551,-28842,15551,-28842, - 15130,-29065,15130,-29065,15130,-29065,15130,-29065, - 14705,-29282,14705,-29282,14705,-29282,14705,-29282, - 14278,-29493,14278,-29493,14278,-29493,14278,-29493, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 13414,-29896,13414,-29896,13414,-29896,13414,-29896, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12097,-30452,12097,-30452,12097,-30452,12097,-30452, - 11653,-30625,11653,-30625,11653,-30625,11653,-30625, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10757,-30951,10757,-30951,10757,-30951,10757,-30951, - 10306,-31104,10306,-31104,10306,-31104,10306,-31104, - 9853,-31251,9853,-31251,9853,-31251,9853,-31251, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 8940,-31524,8940,-31524,8940,-31524,8940,-31524, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8019,-31771,8019,-31771,8019,-31771,8019,-31771, - 7556,-31884,7556,-31884,7556,-31884,7556,-31884, - 7092,-31991,7092,-31991,7092,-31991,7092,-31991, - 6626,-32091,6626,-32091,6626,-32091,6626,-32091, - 6158,-32184,6158,-32184,6158,-32184,6158,-32184, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5220,-32349,5220,-32349,5220,-32349,5220,-32349, - 4748,-32422,4748,-32422,4748,-32422,4748,-32422, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3804,-32546,3804,-32546,3804,-32546,3804,-32546, - 3330,-32598,3330,-32598,3330,-32598,3330,-32598, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 2380,-32681,2380,-32681,2380,-32681,2380,-32681, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 1429,-32736,1429,-32736,1429,-32736,1429,-32736, - 953,-32754,953,-32754,953,-32754,953,-32754, - 476,-32764,476,-32764,476,-32764,476,-32764, - 0,-32767,0,-32767,0,-32767,0,-32767, - -477,-32764,-477,-32764,-477,-32764,-477,-32764, - -954,-32754,-954,-32754,-954,-32754,-954,-32754, - -1430,-32736,-1430,-32736,-1430,-32736,-1430,-32736, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -2381,-32681,-2381,-32681,-2381,-32681,-2381,-32681, - -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643, - -3331,-32598,-3331,-32598,-3331,-32598,-3331,-32598, - -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546, - -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487, - -4749,-32422,-4749,-32422,-4749,-32422,-4749,-32422, - -5221,-32349,-5221,-32349,-5221,-32349,-5221,-32349, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6159,-32184,-6159,-32184,-6159,-32184,-6159,-32184, - -6627,-32091,-6627,-32091,-6627,-32091,-6627,-32091, - -7093,-31991,-7093,-31991,-7093,-31991,-7093,-31991, - -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884, - -8020,-31771,-8020,-31771,-8020,-31771,-8020,-31771, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -8941,-31524,-8941,-31524,-8941,-31524,-8941,-31524, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -9854,-31251,-9854,-31251,-9854,-31251,-9854,-31251, - -10307,-31104,-10307,-31104,-10307,-31104,-10307,-31104, - -10758,-30951,-10758,-30951,-10758,-30951,-10758,-30951, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11654,-30625,-11654,-30625,-11654,-30625,-11654,-30625, - -12098,-30452,-12098,-30452,-12098,-30452,-12098,-30452, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -13415,-29896,-13415,-29896,-13415,-29896,-13415,-29896, - -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697, - -14279,-29493,-14279,-29493,-14279,-29493,-14279,-29493, - -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282, - -15131,-29065,-15131,-29065,-15131,-29065,-15131,-29065, - -15552,-28842,-15552,-28842,-15552,-28842,-15552,-28842, - -15970,-28613,-15970,-28613,-15970,-28613,-15970,-28613, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -16795,-28136,-16795,-28136,-16795,-28136,-16795,-28136, - -17202,-27889,-17202,-27889,-17202,-27889,-17202,-27889, - -17606,-27636,-17606,-27636,-17606,-27636,-17606,-27636, - -18006,-27377,-18006,-27377,-18006,-27377,-18006,-27377, - -18403,-27112,-18403,-27112,-18403,-27112,-18403,-27112, - -18795,-26842,-18795,-26842,-18795,-26842,-18795,-26842, - -19183,-26565,-19183,-26565,-19183,-26565,-19183,-26565, - -19568,-26284,-19568,-26284,-19568,-26284,-19568,-26284, - -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996, - -20324,-25703,-20324,-25703,-20324,-25703,-20324,-25703, - -20695,-25405,-20695,-25405,-20695,-25405,-20695,-25405, - -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101, - -21426,-24792,-21426,-24792,-21426,-24792,-21426,-24792, - -21784,-24478,-21784,-24478,-21784,-24478,-21784,-24478, - -22138,-24159,-22138,-24159,-22138,-24159,-22138,-24159, - -22487,-23834,-22487,-23834,-22487,-23834,-22487,-23834, - -22831,-23505,-22831,-23505,-22831,-23505,-22831,-23505, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23505,-22831,-23505,-22831,-23505,-22831,-23505,-22831, - -23834,-22487,-23834,-22487,-23834,-22487,-23834,-22487, - -24159,-22138,-24159,-22138,-24159,-22138,-24159,-22138, - -24478,-21784,-24478,-21784,-24478,-21784,-24478,-21784, - -24792,-21426,-24792,-21426,-24792,-21426,-24792,-21426, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25405,-20695,-25405,-20695,-25405,-20695,-25405,-20695, - -25703,-20324,-25703,-20324,-25703,-20324,-25703,-20324, - -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948, - -26284,-19568,-26284,-19568,-26284,-19568,-26284,-19568, - -26565,-19183,-26565,-19183,-26565,-19183,-26565,-19183, - -26842,-18795,-26842,-18795,-26842,-18795,-26842,-18795, - -27112,-18403,-27112,-18403,-27112,-18403,-27112,-18403, - -27377,-18006,-27377,-18006,-27377,-18006,-27377,-18006, - -27636,-17606,-27636,-17606,-27636,-17606,-27636,-17606, - -27889,-17202,-27889,-17202,-27889,-17202,-27889,-17202, - -28136,-16795,-28136,-16795,-28136,-16795,-28136,-16795, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28613,-15970,-28613,-15970,-28613,-15970,-28613,-15970, - -28842,-15552,-28842,-15552,-28842,-15552,-28842,-15552, - -29065,-15131,-29065,-15131,-29065,-15131,-29065,-15131, - -29282,-14706,-29282,-14706,-29282,-14706,-29282,-14706, - -29493,-14279,-29493,-14279,-29493,-14279,-29493,-14279, - -29697,-13848,-29697,-13848,-29697,-13848,-29697,-13848, - -29896,-13415,-29896,-13415,-29896,-13415,-29896,-13415, - -30088,-12979,-30088,-12979,-30088,-12979,-30088,-12979, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30452,-12098,-30452,-12098,-30452,-12098,-30452,-12098, - -30625,-11654,-30625,-11654,-30625,-11654,-30625,-11654, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -30951,-10758,-30951,-10758,-30951,-10758,-30951,-10758, - -31104,-10307,-31104,-10307,-31104,-10307,-31104,-10307, - -31251,-9854,-31251,-9854,-31251,-9854,-31251,-9854, - -31391,-9398,-31391,-9398,-31391,-9398,-31391,-9398, - -31524,-8941,-31524,-8941,-31524,-8941,-31524,-8941, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31771,-8020,-31771,-8020,-31771,-8020,-31771,-8020, - -31884,-7557,-31884,-7557,-31884,-7557,-31884,-7557, - -31991,-7093,-31991,-7093,-31991,-7093,-31991,-7093, - -32091,-6627,-32091,-6627,-32091,-6627,-32091,-6627, - -32184,-6159,-32184,-6159,-32184,-6159,-32184,-6159, - -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690, - -32349,-5221,-32349,-5221,-32349,-5221,-32349,-5221, - -32422,-4749,-32422,-4749,-32422,-4749,-32422,-4749, - -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277, - -32546,-3805,-32546,-3805,-32546,-3805,-32546,-3805, - -32598,-3331,-32598,-3331,-32598,-3331,-32598,-3331, - -32643,-2856,-32643,-2856,-32643,-2856,-32643,-2856, - -32681,-2381,-32681,-2381,-32681,-2381,-32681,-2381, - -32712,-1906,-32712,-1906,-32712,-1906,-32712,-1906, - -32736,-1430,-32736,-1430,-32736,-1430,-32736,-1430, - -32754,-954,-32754,-954,-32754,-954,-32754,-954, - -32764,-477,-32764,-477,-32764,-477,-32764,-477, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32764,476,-32764,476,-32764,476,-32764,476, - -32754,953,-32754,953,-32754,953,-32754,953, - -32736,1429,-32736,1429,-32736,1429,-32736,1429, - -32712,1905,-32712,1905,-32712,1905,-32712,1905, - -32681,2380,-32681,2380,-32681,2380,-32681,2380, - -32643,2855,-32643,2855,-32643,2855,-32643,2855, - -32598,3330,-32598,3330,-32598,3330,-32598,3330, - -32546,3804,-32546,3804,-32546,3804,-32546,3804, - -32487,4276,-32487,4276,-32487,4276,-32487,4276, - -32422,4748,-32422,4748,-32422,4748,-32422,4748, - -32349,5220,-32349,5220,-32349,5220,-32349,5220, - -32270,5689,-32270,5689,-32270,5689,-32270,5689, - -32184,6158,-32184,6158,-32184,6158,-32184,6158, - -32091,6626,-32091,6626,-32091,6626,-32091,6626, - -31991,7092,-31991,7092,-31991,7092,-31991,7092, - -31884,7556,-31884,7556,-31884,7556,-31884,7556, - -31771,8019,-31771,8019,-31771,8019,-31771,8019, - -31651,8480,-31651,8480,-31651,8480,-31651,8480, - -31524,8940,-31524,8940,-31524,8940,-31524,8940, - -31391,9397,-31391,9397,-31391,9397,-31391,9397, - -31251,9853,-31251,9853,-31251,9853,-31251,9853, - -31104,10306,-31104,10306,-31104,10306,-31104,10306, - -30951,10757,-30951,10757,-30951,10757,-30951,10757, - -30791,11206,-30791,11206,-30791,11206,-30791,11206, - -30625,11653,-30625,11653,-30625,11653,-30625,11653, - -30452,12097,-30452,12097,-30452,12097,-30452,12097, - -30273,12539,-30273,12539,-30273,12539,-30273,12539, - -30088,12978,-30088,12978,-30088,12978,-30088,12978, - -29896,13414,-29896,13414,-29896,13414,-29896,13414, - -29697,13847,-29697,13847,-29697,13847,-29697,13847, - -29493,14278,-29493,14278,-29493,14278,-29493,14278, - -29282,14705,-29282,14705,-29282,14705,-29282,14705, - -29065,15130,-29065,15130,-29065,15130,-29065,15130, - -28842,15551,-28842,15551,-28842,15551,-28842,15551, - -28613,15969,-28613,15969,-28613,15969,-28613,15969, - -28378,16383,-28378,16383,-28378,16383,-28378,16383, - -28136,16794,-28136,16794,-28136,16794,-28136,16794, - -27889,17201,-27889,17201,-27889,17201,-27889,17201, - -27636,17605,-27636,17605,-27636,17605,-27636,17605, - -27377,18005,-27377,18005,-27377,18005,-27377,18005, - -27112,18402,-27112,18402,-27112,18402,-27112,18402, - -26842,18794,-26842,18794,-26842,18794,-26842,18794, - -26565,19182,-26565,19182,-26565,19182,-26565,19182, - -26284,19567,-26284,19567,-26284,19567,-26284,19567, - -25996,19947,-25996,19947,-25996,19947,-25996,19947, - -25703,20323,-25703,20323,-25703,20323,-25703,20323, - -25405,20694,-25405,20694,-25405,20694,-25405,20694, - -25101,21062,-25101,21062,-25101,21062,-25101,21062, - -24792,21425,-24792,21425,-24792,21425,-24792,21425, - -24478,21783,-24478,21783,-24478,21783,-24478,21783, - -24159,22137,-24159,22137,-24159,22137,-24159,22137, - -23834,22486,-23834,22486,-23834,22486,-23834,22486, - -23505,22830,-23505,22830,-23505,22830,-23505,22830, - -23170,23169,-23170,23169,-23170,23169,-23170,23169, - -22831,23504,-22831,23504,-22831,23504,-22831,23504, - -22487,23833,-22487,23833,-22487,23833,-22487,23833, - -22138,24158,-22138,24158,-22138,24158,-22138,24158, - -21784,24477,-21784,24477,-21784,24477,-21784,24477, - -21426,24791,-21426,24791,-21426,24791,-21426,24791, - -21063,25100,-21063,25100,-21063,25100,-21063,25100, - -20695,25404,-20695,25404,-20695,25404,-20695,25404, - -20324,25702,-20324,25702,-20324,25702,-20324,25702, - -19948,25995,-19948,25995,-19948,25995,-19948,25995, - -19568,26283,-19568,26283,-19568,26283,-19568,26283, - -19183,26564,-19183,26564,-19183,26564,-19183,26564, - -18795,26841,-18795,26841,-18795,26841,-18795,26841, - -18403,27111,-18403,27111,-18403,27111,-18403,27111, - -18006,27376,-18006,27376,-18006,27376,-18006,27376, - -17606,27635,-17606,27635,-17606,27635,-17606,27635, - -17202,27888,-17202,27888,-17202,27888,-17202,27888, - -16795,28135,-16795,28135,-16795,28135,-16795,28135 - }; +static int16_t twa768[191*2*4]; +static int16_t twb768[191*2*4]; +static int16_t twc768[191*2*4]; + +void dft768(int16_t *x,int16_t *y,unsigned char scale_flag) { // 192x 4; + + int i,j; + simd_q15_t *x128=(simd_q15_t *)x; + simd_q15_t *y128=(simd_q15_t *)y; + simd_q15_t *twa128=(simd_q15_t *)&twa768[0]; + simd_q15_t *twb128=(simd_q15_t *)&twb768[0]; + simd_q15_t *twc128=(simd_q15_t *)&twc768[0]; + simd_q15_t x2128[768];// = (simd_q15_t *)&x2128array[0]; + simd_q15_t ytmp128[768];//=&ytmp128array2[0]; + + + + for (i=0,j=0; i<192; i++,j+=4) { + x2128[i] = x128[j]; + x2128[i+192] = x128[j+1]; + x2128[i+384] = x128[j+2]; + x2128[i+576] = x128[j+3]; + } + + dft192((int16_t *)x2128,(int16_t *)ytmp128,1); + dft192((int16_t *)(x2128+192),(int16_t *)(ytmp128+192),1); + dft192((int16_t *)(x2128+384),(int16_t *)(ytmp128+384),1); + dft192((int16_t *)(x2128+576),(int16_t *)(ytmp128+576),1); + + bfly4_tw1(ytmp128,ytmp128+192,ytmp128+384,ytmp128+576,y128,y128+192,y128+384,y128+576); + + for (i=1,j=0; i<192; i++,j++) { + bfly4(ytmp128+i, + ytmp128+192+i, + ytmp128+384+i, + ytmp128+576+i, + y128+i, + y128+192+i, + y128+384+i, + y128+576+i, + twa128+j, + twb128+j, + twc128+j); + } + + if (scale_flag==1) { + norm128 = set1_int16(16384);//dft_norm_table[13]); + + for (i=0; i<768; i++) { + y128[i] = mulhi_int16(y128[i],norm128); + } + } + + _mm_empty(); + _m_empty(); + + +} + + +static int16_t twa864[287*2*4]; +static int16_t twb864[287*2*4]; void dft864(int16_t *x,int16_t *y,unsigned char scale_flag) // 288 x 3 { @@ -13668,630 +8168,8 @@ void dft864(int16_t *x,int16_t *y,unsigned char scale_flag) // 288 x 3 }; -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:299)/900)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:299)/900)); -twa2 = zeros(1,2*299); -twb2 = zeros(1,2*299); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa900[299*2*4] = {"); -for i=1:2:(2*298) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"static int16_t twb900[299*2*4] = {"); -for i=1:2:(2*298) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fclose(fd); -*/ -static int16_t twa900[299*2*4] = {32766,-229,32766,-229,32766,-229,32766,-229, - 32763,-458,32763,-458,32763,-458,32763,-458, - 32759,-687,32759,-687,32759,-687,32759,-687, - 32754,-915,32754,-915,32754,-915,32754,-915, - 32747,-1144,32747,-1144,32747,-1144,32747,-1144, - 32738,-1373,32738,-1373,32738,-1373,32738,-1373, - 32727,-1601,32727,-1601,32727,-1601,32727,-1601, - 32715,-1830,32715,-1830,32715,-1830,32715,-1830, - 32702,-2058,32702,-2058,32702,-2058,32702,-2058, - 32687,-2286,32687,-2286,32687,-2286,32687,-2286, - 32670,-2514,32670,-2514,32670,-2514,32670,-2514, - 32652,-2742,32652,-2742,32652,-2742,32652,-2742, - 32632,-2970,32632,-2970,32632,-2970,32632,-2970, - 32610,-3198,32610,-3198,32610,-3198,32610,-3198, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32562,-3653,32562,-3653,32562,-3653,32562,-3653, - 32536,-3880,32536,-3880,32536,-3880,32536,-3880, - 32508,-4107,32508,-4107,32508,-4107,32508,-4107, - 32479,-4334,32479,-4334,32479,-4334,32479,-4334, - 32448,-4561,32448,-4561,32448,-4561,32448,-4561, - 32415,-4787,32415,-4787,32415,-4787,32415,-4787, - 32381,-5013,32381,-5013,32381,-5013,32381,-5013, - 32345,-5239,32345,-5239,32345,-5239,32345,-5239, - 32308,-5465,32308,-5465,32308,-5465,32308,-5465, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32228,-5916,32228,-5916,32228,-5916,32228,-5916, - 32186,-6140,32186,-6140,32186,-6140,32186,-6140, - 32142,-6365,32142,-6365,32142,-6365,32142,-6365, - 32097,-6589,32097,-6589,32097,-6589,32097,-6589, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 32002,-7037,32002,-7037,32002,-7037,32002,-7037, - 31952,-7260,31952,-7260,31952,-7260,31952,-7260, - 31901,-7483,31901,-7483,31901,-7483,31901,-7483, - 31848,-7705,31848,-7705,31848,-7705,31848,-7705, - 31793,-7928,31793,-7928,31793,-7928,31793,-7928, - 31737,-8149,31737,-8149,31737,-8149,31737,-8149, - 31679,-8371,31679,-8371,31679,-8371,31679,-8371, - 31620,-8592,31620,-8592,31620,-8592,31620,-8592, - 31559,-8812,31559,-8812,31559,-8812,31559,-8812, - 31497,-9032,31497,-9032,31497,-9032,31497,-9032, - 31433,-9252,31433,-9252,31433,-9252,31433,-9252, - 31368,-9471,31368,-9471,31368,-9471,31368,-9471, - 31301,-9690,31301,-9690,31301,-9690,31301,-9690, - 31233,-9908,31233,-9908,31233,-9908,31233,-9908, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 31091,-10343,31091,-10343,31091,-10343,31091,-10343, - 31018,-10560,31018,-10560,31018,-10560,31018,-10560, - 30944,-10776,30944,-10776,30944,-10776,30944,-10776, - 30868,-10992,30868,-10992,30868,-10992,30868,-10992, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30711,-11422,30711,-11422,30711,-11422,30711,-11422, - 30631,-11636,30631,-11636,30631,-11636,30631,-11636, - 30549,-11850,30549,-11850,30549,-11850,30549,-11850, - 30465,-12063,30465,-12063,30465,-12063,30465,-12063, - 30381,-12275,30381,-12275,30381,-12275,30381,-12275, - 30294,-12487,30294,-12487,30294,-12487,30294,-12487, - 30206,-12698,30206,-12698,30206,-12698,30206,-12698, - 30117,-12909,30117,-12909,30117,-12909,30117,-12909, - 30026,-13119,30026,-13119,30026,-13119,30026,-13119, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29840,-13537,29840,-13537,29840,-13537,29840,-13537, - 29745,-13745,29745,-13745,29745,-13745,29745,-13745, - 29648,-13952,29648,-13952,29648,-13952,29648,-13952, - 29550,-14159,29550,-14159,29550,-14159,29550,-14159, - 29450,-14365,29450,-14365,29450,-14365,29450,-14365, - 29349,-14570,29349,-14570,29349,-14570,29349,-14570, - 29247,-14774,29247,-14774,29247,-14774,29247,-14774, - 29143,-14978,29143,-14978,29143,-14978,29143,-14978, - 29038,-15181,29038,-15181,29038,-15181,29038,-15181, - 28931,-15384,28931,-15384,28931,-15384,28931,-15384, - 28823,-15585,28823,-15585,28823,-15585,28823,-15585, - 28713,-15786,28713,-15786,28713,-15786,28713,-15786, - 28603,-15986,28603,-15986,28603,-15986,28603,-15986, - 28490,-16185,28490,-16185,28490,-16185,28490,-16185, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28261,-16582,28261,-16582,28261,-16582,28261,-16582, - 28145,-16779,28145,-16779,28145,-16779,28145,-16779, - 28027,-16975,28027,-16975,28027,-16975,28027,-16975, - 27908,-17170,27908,-17170,27908,-17170,27908,-17170, - 27787,-17364,27787,-17364,27787,-17364,27787,-17364, - 27666,-17558,27666,-17558,27666,-17558,27666,-17558, - 27542,-17751,27542,-17751,27542,-17751,27542,-17751, - 27418,-17943,27418,-17943,27418,-17943,27418,-17943, - 27292,-18133,27292,-18133,27292,-18133,27292,-18133, - 27165,-18324,27165,-18324,27165,-18324,27165,-18324, - 27036,-18513,27036,-18513,27036,-18513,27036,-18513, - 26906,-18701,26906,-18701,26906,-18701,26906,-18701, - 26775,-18888,26775,-18888,26775,-18888,26775,-18888, - 26642,-19075,26642,-19075,26642,-19075,26642,-19075, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26373,-19445,26373,-19445,26373,-19445,26373,-19445, - 26237,-19629,26237,-19629,26237,-19629,26237,-19629, - 26099,-19811,26099,-19811,26099,-19811,26099,-19811, - 25960,-19993,25960,-19993,25960,-19993,25960,-19993, - 25820,-20174,25820,-20174,25820,-20174,25820,-20174, - 25679,-20354,25679,-20354,25679,-20354,25679,-20354, - 25536,-20532,25536,-20532,25536,-20532,25536,-20532, - 25392,-20710,25392,-20710,25392,-20710,25392,-20710, - 25247,-20887,25247,-20887,25247,-20887,25247,-20887, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24953,-21237,24953,-21237,24953,-21237,24953,-21237, - 24804,-21411,24804,-21411,24804,-21411,24804,-21411, - 24654,-21584,24654,-21584,24654,-21584,24654,-21584, - 24503,-21755,24503,-21755,24503,-21755,24503,-21755, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 24196,-22095,24196,-22095,24196,-22095,24196,-22095, - 24042,-22264,24042,-22264,24042,-22264,24042,-22264, - 23886,-22431,23886,-22431,23886,-22431,23886,-22431, - 23728,-22597,23728,-22597,23728,-22597,23728,-22597, - 23570,-22762,23570,-22762,23570,-22762,23570,-22762, - 23411,-22926,23411,-22926,23411,-22926,23411,-22926, - 23250,-23089,23250,-23089,23250,-23089,23250,-23089, - 23088,-23251,23088,-23251,23088,-23251,23088,-23251, - 22925,-23412,22925,-23412,22925,-23412,22925,-23412, - 22761,-23571,22761,-23571,22761,-23571,22761,-23571, - 22596,-23729,22596,-23729,22596,-23729,22596,-23729, - 22430,-23887,22430,-23887,22430,-23887,22430,-23887, - 22263,-24043,22263,-24043,22263,-24043,22263,-24043, - 22094,-24197,22094,-24197,22094,-24197,22094,-24197, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21754,-24504,21754,-24504,21754,-24504,21754,-24504, - 21583,-24655,21583,-24655,21583,-24655,21583,-24655, - 21410,-24805,21410,-24805,21410,-24805,21410,-24805, - 21236,-24954,21236,-24954,21236,-24954,21236,-24954, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20886,-25248,20886,-25248,20886,-25248,20886,-25248, - 20709,-25393,20709,-25393,20709,-25393,20709,-25393, - 20531,-25537,20531,-25537,20531,-25537,20531,-25537, - 20353,-25680,20353,-25680,20353,-25680,20353,-25680, - 20173,-25821,20173,-25821,20173,-25821,20173,-25821, - 19992,-25961,19992,-25961,19992,-25961,19992,-25961, - 19810,-26100,19810,-26100,19810,-26100,19810,-26100, - 19628,-26238,19628,-26238,19628,-26238,19628,-26238, - 19444,-26374,19444,-26374,19444,-26374,19444,-26374, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 19074,-26643,19074,-26643,19074,-26643,19074,-26643, - 18887,-26776,18887,-26776,18887,-26776,18887,-26776, - 18700,-26907,18700,-26907,18700,-26907,18700,-26907, - 18512,-27037,18512,-27037,18512,-27037,18512,-27037, - 18323,-27166,18323,-27166,18323,-27166,18323,-27166, - 18132,-27293,18132,-27293,18132,-27293,18132,-27293, - 17942,-27419,17942,-27419,17942,-27419,17942,-27419, - 17750,-27543,17750,-27543,17750,-27543,17750,-27543, - 17557,-27667,17557,-27667,17557,-27667,17557,-27667, - 17363,-27788,17363,-27788,17363,-27788,17363,-27788, - 17169,-27909,17169,-27909,17169,-27909,17169,-27909, - 16974,-28028,16974,-28028,16974,-28028,16974,-28028, - 16778,-28146,16778,-28146,16778,-28146,16778,-28146, - 16581,-28262,16581,-28262,16581,-28262,16581,-28262, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16184,-28491,16184,-28491,16184,-28491,16184,-28491, - 15985,-28604,15985,-28604,15985,-28604,15985,-28604, - 15785,-28714,15785,-28714,15785,-28714,15785,-28714, - 15584,-28824,15584,-28824,15584,-28824,15584,-28824, - 15383,-28932,15383,-28932,15383,-28932,15383,-28932, - 15180,-29039,15180,-29039,15180,-29039,15180,-29039, - 14977,-29144,14977,-29144,14977,-29144,14977,-29144, - 14773,-29248,14773,-29248,14773,-29248,14773,-29248, - 14569,-29350,14569,-29350,14569,-29350,14569,-29350, - 14364,-29451,14364,-29451,14364,-29451,14364,-29451, - 14158,-29551,14158,-29551,14158,-29551,14158,-29551, - 13951,-29649,13951,-29649,13951,-29649,13951,-29649, - 13744,-29746,13744,-29746,13744,-29746,13744,-29746, - 13536,-29841,13536,-29841,13536,-29841,13536,-29841, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 13118,-30027,13118,-30027,13118,-30027,13118,-30027, - 12908,-30118,12908,-30118,12908,-30118,12908,-30118, - 12697,-30207,12697,-30207,12697,-30207,12697,-30207, - 12486,-30295,12486,-30295,12486,-30295,12486,-30295, - 12274,-30382,12274,-30382,12274,-30382,12274,-30382, - 12062,-30466,12062,-30466,12062,-30466,12062,-30466, - 11849,-30550,11849,-30550,11849,-30550,11849,-30550, - 11635,-30632,11635,-30632,11635,-30632,11635,-30632, - 11421,-30712,11421,-30712,11421,-30712,11421,-30712, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10991,-30869,10991,-30869,10991,-30869,10991,-30869, - 10775,-30945,10775,-30945,10775,-30945,10775,-30945, - 10559,-31019,10559,-31019,10559,-31019,10559,-31019, - 10342,-31092,10342,-31092,10342,-31092,10342,-31092, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9907,-31234,9907,-31234,9907,-31234,9907,-31234, - 9689,-31302,9689,-31302,9689,-31302,9689,-31302, - 9470,-31369,9470,-31369,9470,-31369,9470,-31369, - 9251,-31434,9251,-31434,9251,-31434,9251,-31434, - 9031,-31498,9031,-31498,9031,-31498,9031,-31498, - 8811,-31560,8811,-31560,8811,-31560,8811,-31560, - 8591,-31621,8591,-31621,8591,-31621,8591,-31621, - 8370,-31680,8370,-31680,8370,-31680,8370,-31680, - 8148,-31738,8148,-31738,8148,-31738,8148,-31738, - 7927,-31794,7927,-31794,7927,-31794,7927,-31794, - 7704,-31849,7704,-31849,7704,-31849,7704,-31849, - 7482,-31902,7482,-31902,7482,-31902,7482,-31902, - 7259,-31953,7259,-31953,7259,-31953,7259,-31953, - 7036,-32003,7036,-32003,7036,-32003,7036,-32003, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6588,-32098,6588,-32098,6588,-32098,6588,-32098, - 6364,-32143,6364,-32143,6364,-32143,6364,-32143, - 6139,-32187,6139,-32187,6139,-32187,6139,-32187, - 5915,-32229,5915,-32229,5915,-32229,5915,-32229, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5464,-32309,5464,-32309,5464,-32309,5464,-32309, - 5238,-32346,5238,-32346,5238,-32346,5238,-32346, - 5012,-32382,5012,-32382,5012,-32382,5012,-32382, - 4786,-32416,4786,-32416,4786,-32416,4786,-32416, - 4560,-32449,4560,-32449,4560,-32449,4560,-32449, - 4333,-32480,4333,-32480,4333,-32480,4333,-32480, - 4106,-32509,4106,-32509,4106,-32509,4106,-32509, - 3879,-32537,3879,-32537,3879,-32537,3879,-32537, - 3652,-32563,3652,-32563,3652,-32563,3652,-32563, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 3197,-32611,3197,-32611,3197,-32611,3197,-32611, - 2969,-32633,2969,-32633,2969,-32633,2969,-32633, - 2741,-32653,2741,-32653,2741,-32653,2741,-32653, - 2513,-32671,2513,-32671,2513,-32671,2513,-32671, - 2285,-32688,2285,-32688,2285,-32688,2285,-32688, - 2057,-32703,2057,-32703,2057,-32703,2057,-32703, - 1829,-32716,1829,-32716,1829,-32716,1829,-32716, - 1600,-32728,1600,-32728,1600,-32728,1600,-32728, - 1372,-32739,1372,-32739,1372,-32739,1372,-32739, - 1143,-32748,1143,-32748,1143,-32748,1143,-32748, - 914,-32755,914,-32755,914,-32755,914,-32755, - 686,-32760,686,-32760,686,-32760,686,-32760, - 457,-32764,457,-32764,457,-32764,457,-32764, - 228,-32767,228,-32767,228,-32767,228,-32767, - 0,-32767,0,-32767,0,-32767,0,-32767, - -229,-32767,-229,-32767,-229,-32767,-229,-32767, - -458,-32764,-458,-32764,-458,-32764,-458,-32764, - -687,-32760,-687,-32760,-687,-32760,-687,-32760, - -915,-32755,-915,-32755,-915,-32755,-915,-32755, - -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748, - -1373,-32739,-1373,-32739,-1373,-32739,-1373,-32739, - -1601,-32728,-1601,-32728,-1601,-32728,-1601,-32728, - -1830,-32716,-1830,-32716,-1830,-32716,-1830,-32716, - -2058,-32703,-2058,-32703,-2058,-32703,-2058,-32703, - -2286,-32688,-2286,-32688,-2286,-32688,-2286,-32688, - -2514,-32671,-2514,-32671,-2514,-32671,-2514,-32671, - -2742,-32653,-2742,-32653,-2742,-32653,-2742,-32653, - -2970,-32633,-2970,-32633,-2970,-32633,-2970,-32633, - -3198,-32611,-3198,-32611,-3198,-32611,-3198,-32611, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -3653,-32563,-3653,-32563,-3653,-32563,-3653,-32563, - -3880,-32537,-3880,-32537,-3880,-32537,-3880,-32537, - -4107,-32509,-4107,-32509,-4107,-32509,-4107,-32509, - -4334,-32480,-4334,-32480,-4334,-32480,-4334,-32480, - -4561,-32449,-4561,-32449,-4561,-32449,-4561,-32449, - -4787,-32416,-4787,-32416,-4787,-32416,-4787,-32416, - -5013,-32382,-5013,-32382,-5013,-32382,-5013,-32382, - -5239,-32346,-5239,-32346,-5239,-32346,-5239,-32346, - -5465,-32309,-5465,-32309,-5465,-32309,-5465,-32309, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -5916,-32229,-5916,-32229,-5916,-32229,-5916,-32229, - -6140,-32187,-6140,-32187,-6140,-32187,-6140,-32187, - -6365,-32143,-6365,-32143,-6365,-32143,-6365,-32143, - -6589,-32098,-6589,-32098,-6589,-32098,-6589,-32098, - -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051, - -7037,-32003,-7037,-32003,-7037,-32003,-7037,-32003, - -7260,-31953,-7260,-31953,-7260,-31953,-7260,-31953, - -7483,-31902,-7483,-31902,-7483,-31902,-7483,-31902, - -7705,-31849,-7705,-31849,-7705,-31849,-7705,-31849, - -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794, - -8149,-31738,-8149,-31738,-8149,-31738,-8149,-31738, - -8371,-31680,-8371,-31680,-8371,-31680,-8371,-31680, - -8592,-31621,-8592,-31621,-8592,-31621,-8592,-31621, - -8812,-31560,-8812,-31560,-8812,-31560,-8812,-31560, - -9032,-31498,-9032,-31498,-9032,-31498,-9032,-31498, - -9252,-31434,-9252,-31434,-9252,-31434,-9252,-31434, - -9471,-31369,-9471,-31369,-9471,-31369,-9471,-31369, - -9690,-31302,-9690,-31302,-9690,-31302,-9690,-31302, - -9908,-31234,-9908,-31234,-9908,-31234,-9908,-31234, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10343,-31092,-10343,-31092,-10343,-31092,-10343,-31092, - -10560,-31019,-10560,-31019,-10560,-31019,-10560,-31019, - -10776,-30945,-10776,-30945,-10776,-30945,-10776,-30945, - -10992,-30869,-10992,-30869,-10992,-30869,-10992,-30869, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11422,-30712,-11422,-30712,-11422,-30712,-11422,-30712, - -11636,-30632,-11636,-30632,-11636,-30632,-11636,-30632, - -11850,-30550,-11850,-30550,-11850,-30550,-11850,-30550, - -12063,-30466,-12063,-30466,-12063,-30466,-12063,-30466, - -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382, - -12487,-30295,-12487,-30295,-12487,-30295,-12487,-30295, - -12698,-30207,-12698,-30207,-12698,-30207,-12698,-30207, - -12909,-30118,-12909,-30118,-12909,-30118,-12909,-30118, - -13119,-30027,-13119,-30027,-13119,-30027,-13119,-30027, - -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935, - -13537,-29841,-13537,-29841,-13537,-29841,-13537,-29841, - -13745,-29746,-13745,-29746,-13745,-29746,-13745,-29746, - -13952,-29649,-13952,-29649,-13952,-29649,-13952,-29649, - -14159,-29551,-14159,-29551,-14159,-29551,-14159,-29551, - -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451, - -14570,-29350,-14570,-29350,-14570,-29350,-14570,-29350, - -14774,-29248,-14774,-29248,-14774,-29248,-14774,-29248, - -14978,-29144,-14978,-29144,-14978,-29144,-14978,-29144, - -15181,-29039,-15181,-29039,-15181,-29039,-15181,-29039, - -15384,-28932,-15384,-28932,-15384,-28932,-15384,-28932, - -15585,-28824,-15585,-28824,-15585,-28824,-15585,-28824, - -15786,-28714,-15786,-28714,-15786,-28714,-15786,-28714, - -15986,-28604,-15986,-28604,-15986,-28604,-15986,-28604, - -16185,-28491,-16185,-28491,-16185,-28491,-16185,-28491 - }; -static int16_t twb900[299*2*4] = {32763,-458,32763,-458,32763,-458,32763,-458, - 32754,-915,32754,-915,32754,-915,32754,-915, - 32738,-1373,32738,-1373,32738,-1373,32738,-1373, - 32715,-1830,32715,-1830,32715,-1830,32715,-1830, - 32687,-2286,32687,-2286,32687,-2286,32687,-2286, - 32652,-2742,32652,-2742,32652,-2742,32652,-2742, - 32610,-3198,32610,-3198,32610,-3198,32610,-3198, - 32562,-3653,32562,-3653,32562,-3653,32562,-3653, - 32508,-4107,32508,-4107,32508,-4107,32508,-4107, - 32448,-4561,32448,-4561,32448,-4561,32448,-4561, - 32381,-5013,32381,-5013,32381,-5013,32381,-5013, - 32308,-5465,32308,-5465,32308,-5465,32308,-5465, - 32228,-5916,32228,-5916,32228,-5916,32228,-5916, - 32142,-6365,32142,-6365,32142,-6365,32142,-6365, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31952,-7260,31952,-7260,31952,-7260,31952,-7260, - 31848,-7705,31848,-7705,31848,-7705,31848,-7705, - 31737,-8149,31737,-8149,31737,-8149,31737,-8149, - 31620,-8592,31620,-8592,31620,-8592,31620,-8592, - 31497,-9032,31497,-9032,31497,-9032,31497,-9032, - 31368,-9471,31368,-9471,31368,-9471,31368,-9471, - 31233,-9908,31233,-9908,31233,-9908,31233,-9908, - 31091,-10343,31091,-10343,31091,-10343,31091,-10343, - 30944,-10776,30944,-10776,30944,-10776,30944,-10776, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30631,-11636,30631,-11636,30631,-11636,30631,-11636, - 30465,-12063,30465,-12063,30465,-12063,30465,-12063, - 30294,-12487,30294,-12487,30294,-12487,30294,-12487, - 30117,-12909,30117,-12909,30117,-12909,30117,-12909, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29745,-13745,29745,-13745,29745,-13745,29745,-13745, - 29550,-14159,29550,-14159,29550,-14159,29550,-14159, - 29349,-14570,29349,-14570,29349,-14570,29349,-14570, - 29143,-14978,29143,-14978,29143,-14978,29143,-14978, - 28931,-15384,28931,-15384,28931,-15384,28931,-15384, - 28713,-15786,28713,-15786,28713,-15786,28713,-15786, - 28490,-16185,28490,-16185,28490,-16185,28490,-16185, - 28261,-16582,28261,-16582,28261,-16582,28261,-16582, - 28027,-16975,28027,-16975,28027,-16975,28027,-16975, - 27787,-17364,27787,-17364,27787,-17364,27787,-17364, - 27542,-17751,27542,-17751,27542,-17751,27542,-17751, - 27292,-18133,27292,-18133,27292,-18133,27292,-18133, - 27036,-18513,27036,-18513,27036,-18513,27036,-18513, - 26775,-18888,26775,-18888,26775,-18888,26775,-18888, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26237,-19629,26237,-19629,26237,-19629,26237,-19629, - 25960,-19993,25960,-19993,25960,-19993,25960,-19993, - 25679,-20354,25679,-20354,25679,-20354,25679,-20354, - 25392,-20710,25392,-20710,25392,-20710,25392,-20710, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24804,-21411,24804,-21411,24804,-21411,24804,-21411, - 24503,-21755,24503,-21755,24503,-21755,24503,-21755, - 24196,-22095,24196,-22095,24196,-22095,24196,-22095, - 23886,-22431,23886,-22431,23886,-22431,23886,-22431, - 23570,-22762,23570,-22762,23570,-22762,23570,-22762, - 23250,-23089,23250,-23089,23250,-23089,23250,-23089, - 22925,-23412,22925,-23412,22925,-23412,22925,-23412, - 22596,-23729,22596,-23729,22596,-23729,22596,-23729, - 22263,-24043,22263,-24043,22263,-24043,22263,-24043, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21583,-24655,21583,-24655,21583,-24655,21583,-24655, - 21236,-24954,21236,-24954,21236,-24954,21236,-24954, - 20886,-25248,20886,-25248,20886,-25248,20886,-25248, - 20531,-25537,20531,-25537,20531,-25537,20531,-25537, - 20173,-25821,20173,-25821,20173,-25821,20173,-25821, - 19810,-26100,19810,-26100,19810,-26100,19810,-26100, - 19444,-26374,19444,-26374,19444,-26374,19444,-26374, - 19074,-26643,19074,-26643,19074,-26643,19074,-26643, - 18700,-26907,18700,-26907,18700,-26907,18700,-26907, - 18323,-27166,18323,-27166,18323,-27166,18323,-27166, - 17942,-27419,17942,-27419,17942,-27419,17942,-27419, - 17557,-27667,17557,-27667,17557,-27667,17557,-27667, - 17169,-27909,17169,-27909,17169,-27909,17169,-27909, - 16778,-28146,16778,-28146,16778,-28146,16778,-28146, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15985,-28604,15985,-28604,15985,-28604,15985,-28604, - 15584,-28824,15584,-28824,15584,-28824,15584,-28824, - 15180,-29039,15180,-29039,15180,-29039,15180,-29039, - 14773,-29248,14773,-29248,14773,-29248,14773,-29248, - 14364,-29451,14364,-29451,14364,-29451,14364,-29451, - 13951,-29649,13951,-29649,13951,-29649,13951,-29649, - 13536,-29841,13536,-29841,13536,-29841,13536,-29841, - 13118,-30027,13118,-30027,13118,-30027,13118,-30027, - 12697,-30207,12697,-30207,12697,-30207,12697,-30207, - 12274,-30382,12274,-30382,12274,-30382,12274,-30382, - 11849,-30550,11849,-30550,11849,-30550,11849,-30550, - 11421,-30712,11421,-30712,11421,-30712,11421,-30712, - 10991,-30869,10991,-30869,10991,-30869,10991,-30869, - 10559,-31019,10559,-31019,10559,-31019,10559,-31019, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9689,-31302,9689,-31302,9689,-31302,9689,-31302, - 9251,-31434,9251,-31434,9251,-31434,9251,-31434, - 8811,-31560,8811,-31560,8811,-31560,8811,-31560, - 8370,-31680,8370,-31680,8370,-31680,8370,-31680, - 7927,-31794,7927,-31794,7927,-31794,7927,-31794, - 7482,-31902,7482,-31902,7482,-31902,7482,-31902, - 7036,-32003,7036,-32003,7036,-32003,7036,-32003, - 6588,-32098,6588,-32098,6588,-32098,6588,-32098, - 6139,-32187,6139,-32187,6139,-32187,6139,-32187, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5238,-32346,5238,-32346,5238,-32346,5238,-32346, - 4786,-32416,4786,-32416,4786,-32416,4786,-32416, - 4333,-32480,4333,-32480,4333,-32480,4333,-32480, - 3879,-32537,3879,-32537,3879,-32537,3879,-32537, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 2969,-32633,2969,-32633,2969,-32633,2969,-32633, - 2513,-32671,2513,-32671,2513,-32671,2513,-32671, - 2057,-32703,2057,-32703,2057,-32703,2057,-32703, - 1600,-32728,1600,-32728,1600,-32728,1600,-32728, - 1143,-32748,1143,-32748,1143,-32748,1143,-32748, - 686,-32760,686,-32760,686,-32760,686,-32760, - 228,-32767,228,-32767,228,-32767,228,-32767, - -229,-32767,-229,-32767,-229,-32767,-229,-32767, - -687,-32760,-687,-32760,-687,-32760,-687,-32760, - -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748, - -1601,-32728,-1601,-32728,-1601,-32728,-1601,-32728, - -2058,-32703,-2058,-32703,-2058,-32703,-2058,-32703, - -2514,-32671,-2514,-32671,-2514,-32671,-2514,-32671, - -2970,-32633,-2970,-32633,-2970,-32633,-2970,-32633, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -3880,-32537,-3880,-32537,-3880,-32537,-3880,-32537, - -4334,-32480,-4334,-32480,-4334,-32480,-4334,-32480, - -4787,-32416,-4787,-32416,-4787,-32416,-4787,-32416, - -5239,-32346,-5239,-32346,-5239,-32346,-5239,-32346, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6140,-32187,-6140,-32187,-6140,-32187,-6140,-32187, - -6589,-32098,-6589,-32098,-6589,-32098,-6589,-32098, - -7037,-32003,-7037,-32003,-7037,-32003,-7037,-32003, - -7483,-31902,-7483,-31902,-7483,-31902,-7483,-31902, - -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794, - -8371,-31680,-8371,-31680,-8371,-31680,-8371,-31680, - -8812,-31560,-8812,-31560,-8812,-31560,-8812,-31560, - -9252,-31434,-9252,-31434,-9252,-31434,-9252,-31434, - -9690,-31302,-9690,-31302,-9690,-31302,-9690,-31302, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10560,-31019,-10560,-31019,-10560,-31019,-10560,-31019, - -10992,-30869,-10992,-30869,-10992,-30869,-10992,-30869, - -11422,-30712,-11422,-30712,-11422,-30712,-11422,-30712, - -11850,-30550,-11850,-30550,-11850,-30550,-11850,-30550, - -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382, - -12698,-30207,-12698,-30207,-12698,-30207,-12698,-30207, - -13119,-30027,-13119,-30027,-13119,-30027,-13119,-30027, - -13537,-29841,-13537,-29841,-13537,-29841,-13537,-29841, - -13952,-29649,-13952,-29649,-13952,-29649,-13952,-29649, - -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451, - -14774,-29248,-14774,-29248,-14774,-29248,-14774,-29248, - -15181,-29039,-15181,-29039,-15181,-29039,-15181,-29039, - -15585,-28824,-15585,-28824,-15585,-28824,-15585,-28824, - -15986,-28604,-15986,-28604,-15986,-28604,-15986,-28604, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -16779,-28146,-16779,-28146,-16779,-28146,-16779,-28146, - -17170,-27909,-17170,-27909,-17170,-27909,-17170,-27909, - -17558,-27667,-17558,-27667,-17558,-27667,-17558,-27667, - -17943,-27419,-17943,-27419,-17943,-27419,-17943,-27419, - -18324,-27166,-18324,-27166,-18324,-27166,-18324,-27166, - -18701,-26907,-18701,-26907,-18701,-26907,-18701,-26907, - -19075,-26643,-19075,-26643,-19075,-26643,-19075,-26643, - -19445,-26374,-19445,-26374,-19445,-26374,-19445,-26374, - -19811,-26100,-19811,-26100,-19811,-26100,-19811,-26100, - -20174,-25821,-20174,-25821,-20174,-25821,-20174,-25821, - -20532,-25537,-20532,-25537,-20532,-25537,-20532,-25537, - -20887,-25248,-20887,-25248,-20887,-25248,-20887,-25248, - -21237,-24954,-21237,-24954,-21237,-24954,-21237,-24954, - -21584,-24655,-21584,-24655,-21584,-24655,-21584,-24655, - -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351, - -22264,-24043,-22264,-24043,-22264,-24043,-22264,-24043, - -22597,-23729,-22597,-23729,-22597,-23729,-22597,-23729, - -22926,-23412,-22926,-23412,-22926,-23412,-22926,-23412, - -23251,-23089,-23251,-23089,-23251,-23089,-23251,-23089, - -23571,-22762,-23571,-22762,-23571,-22762,-23571,-22762, - -23887,-22431,-23887,-22431,-23887,-22431,-23887,-22431, - -24197,-22095,-24197,-22095,-24197,-22095,-24197,-22095, - -24504,-21755,-24504,-21755,-24504,-21755,-24504,-21755, - -24805,-21411,-24805,-21411,-24805,-21411,-24805,-21411, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25393,-20710,-25393,-20710,-25393,-20710,-25393,-20710, - -25680,-20354,-25680,-20354,-25680,-20354,-25680,-20354, - -25961,-19993,-25961,-19993,-25961,-19993,-25961,-19993, - -26238,-19629,-26238,-19629,-26238,-19629,-26238,-19629, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -26776,-18888,-26776,-18888,-26776,-18888,-26776,-18888, - -27037,-18513,-27037,-18513,-27037,-18513,-27037,-18513, - -27293,-18133,-27293,-18133,-27293,-18133,-27293,-18133, - -27543,-17751,-27543,-17751,-27543,-17751,-27543,-17751, - -27788,-17364,-27788,-17364,-27788,-17364,-27788,-17364, - -28028,-16975,-28028,-16975,-28028,-16975,-28028,-16975, - -28262,-16582,-28262,-16582,-28262,-16582,-28262,-16582, - -28491,-16185,-28491,-16185,-28491,-16185,-28491,-16185, - -28714,-15786,-28714,-15786,-28714,-15786,-28714,-15786, - -28932,-15384,-28932,-15384,-28932,-15384,-28932,-15384, - -29144,-14978,-29144,-14978,-29144,-14978,-29144,-14978, - -29350,-14570,-29350,-14570,-29350,-14570,-29350,-14570, - -29551,-14159,-29551,-14159,-29551,-14159,-29551,-14159, - -29746,-13745,-29746,-13745,-29746,-13745,-29746,-13745, - -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328, - -30118,-12909,-30118,-12909,-30118,-12909,-30118,-12909, - -30295,-12487,-30295,-12487,-30295,-12487,-30295,-12487, - -30466,-12063,-30466,-12063,-30466,-12063,-30466,-12063, - -30632,-11636,-30632,-11636,-30632,-11636,-30632,-11636, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -30945,-10776,-30945,-10776,-30945,-10776,-30945,-10776, - -31092,-10343,-31092,-10343,-31092,-10343,-31092,-10343, - -31234,-9908,-31234,-9908,-31234,-9908,-31234,-9908, - -31369,-9471,-31369,-9471,-31369,-9471,-31369,-9471, - -31498,-9032,-31498,-9032,-31498,-9032,-31498,-9032, - -31621,-8592,-31621,-8592,-31621,-8592,-31621,-8592, - -31738,-8149,-31738,-8149,-31738,-8149,-31738,-8149, - -31849,-7705,-31849,-7705,-31849,-7705,-31849,-7705, - -31953,-7260,-31953,-7260,-31953,-7260,-31953,-7260, - -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813, - -32143,-6365,-32143,-6365,-32143,-6365,-32143,-6365, - -32229,-5916,-32229,-5916,-32229,-5916,-32229,-5916, - -32309,-5465,-32309,-5465,-32309,-5465,-32309,-5465, - -32382,-5013,-32382,-5013,-32382,-5013,-32382,-5013, - -32449,-4561,-32449,-4561,-32449,-4561,-32449,-4561, - -32509,-4107,-32509,-4107,-32509,-4107,-32509,-4107, - -32563,-3653,-32563,-3653,-32563,-3653,-32563,-3653, - -32611,-3198,-32611,-3198,-32611,-3198,-32611,-3198, - -32653,-2742,-32653,-2742,-32653,-2742,-32653,-2742, - -32688,-2286,-32688,-2286,-32688,-2286,-32688,-2286, - -32716,-1830,-32716,-1830,-32716,-1830,-32716,-1830, - -32739,-1373,-32739,-1373,-32739,-1373,-32739,-1373, - -32755,-915,-32755,-915,-32755,-915,-32755,-915, - -32764,-458,-32764,-458,-32764,-458,-32764,-458, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32764,457,-32764,457,-32764,457,-32764,457, - -32755,914,-32755,914,-32755,914,-32755,914, - -32739,1372,-32739,1372,-32739,1372,-32739,1372, - -32716,1829,-32716,1829,-32716,1829,-32716,1829, - -32688,2285,-32688,2285,-32688,2285,-32688,2285, - -32653,2741,-32653,2741,-32653,2741,-32653,2741, - -32611,3197,-32611,3197,-32611,3197,-32611,3197, - -32563,3652,-32563,3652,-32563,3652,-32563,3652, - -32509,4106,-32509,4106,-32509,4106,-32509,4106, - -32449,4560,-32449,4560,-32449,4560,-32449,4560, - -32382,5012,-32382,5012,-32382,5012,-32382,5012, - -32309,5464,-32309,5464,-32309,5464,-32309,5464, - -32229,5915,-32229,5915,-32229,5915,-32229,5915, - -32143,6364,-32143,6364,-32143,6364,-32143,6364, - -32051,6812,-32051,6812,-32051,6812,-32051,6812, - -31953,7259,-31953,7259,-31953,7259,-31953,7259, - -31849,7704,-31849,7704,-31849,7704,-31849,7704, - -31738,8148,-31738,8148,-31738,8148,-31738,8148, - -31621,8591,-31621,8591,-31621,8591,-31621,8591, - -31498,9031,-31498,9031,-31498,9031,-31498,9031, - -31369,9470,-31369,9470,-31369,9470,-31369,9470, - -31234,9907,-31234,9907,-31234,9907,-31234,9907, - -31092,10342,-31092,10342,-31092,10342,-31092,10342, - -30945,10775,-30945,10775,-30945,10775,-30945,10775, - -30791,11206,-30791,11206,-30791,11206,-30791,11206, - -30632,11635,-30632,11635,-30632,11635,-30632,11635, - -30466,12062,-30466,12062,-30466,12062,-30466,12062, - -30295,12486,-30295,12486,-30295,12486,-30295,12486, - -30118,12908,-30118,12908,-30118,12908,-30118,12908, - -29935,13327,-29935,13327,-29935,13327,-29935,13327, - -29746,13744,-29746,13744,-29746,13744,-29746,13744, - -29551,14158,-29551,14158,-29551,14158,-29551,14158, - -29350,14569,-29350,14569,-29350,14569,-29350,14569, - -29144,14977,-29144,14977,-29144,14977,-29144,14977, - -28932,15383,-28932,15383,-28932,15383,-28932,15383, - -28714,15785,-28714,15785,-28714,15785,-28714,15785, - -28491,16184,-28491,16184,-28491,16184,-28491,16184, - -28262,16581,-28262,16581,-28262,16581,-28262,16581, - -28028,16974,-28028,16974,-28028,16974,-28028,16974, - -27788,17363,-27788,17363,-27788,17363,-27788,17363, - -27543,17750,-27543,17750,-27543,17750,-27543,17750, - -27293,18132,-27293,18132,-27293,18132,-27293,18132, - -27037,18512,-27037,18512,-27037,18512,-27037,18512, - -26776,18887,-26776,18887,-26776,18887,-26776,18887, - -26510,19259,-26510,19259,-26510,19259,-26510,19259, - -26238,19628,-26238,19628,-26238,19628,-26238,19628, - -25961,19992,-25961,19992,-25961,19992,-25961,19992, - -25680,20353,-25680,20353,-25680,20353,-25680,20353, - -25393,20709,-25393,20709,-25393,20709,-25393,20709, - -25101,21062,-25101,21062,-25101,21062,-25101,21062, - -24805,21410,-24805,21410,-24805,21410,-24805,21410, - -24504,21754,-24504,21754,-24504,21754,-24504,21754, - -24197,22094,-24197,22094,-24197,22094,-24197,22094, - -23887,22430,-23887,22430,-23887,22430,-23887,22430, - -23571,22761,-23571,22761,-23571,22761,-23571,22761, - -23251,23088,-23251,23088,-23251,23088,-23251,23088, - -22926,23411,-22926,23411,-22926,23411,-22926,23411, - -22597,23728,-22597,23728,-22597,23728,-22597,23728, - -22264,24042,-22264,24042,-22264,24042,-22264,24042, - -21926,24350,-21926,24350,-21926,24350,-21926,24350, - -21584,24654,-21584,24654,-21584,24654,-21584,24654, - -21237,24953,-21237,24953,-21237,24953,-21237,24953, - -20887,25247,-20887,25247,-20887,25247,-20887,25247, - -20532,25536,-20532,25536,-20532,25536,-20532,25536, - -20174,25820,-20174,25820,-20174,25820,-20174,25820, - -19811,26099,-19811,26099,-19811,26099,-19811,26099, - -19445,26373,-19445,26373,-19445,26373,-19445,26373, - -19075,26642,-19075,26642,-19075,26642,-19075,26642, - -18701,26906,-18701,26906,-18701,26906,-18701,26906, - -18324,27165,-18324,27165,-18324,27165,-18324,27165, - -17943,27418,-17943,27418,-17943,27418,-17943,27418, - -17558,27666,-17558,27666,-17558,27666,-17558,27666, - -17170,27908,-17170,27908,-17170,27908,-17170,27908, - -16779,28145,-16779,28145,-16779,28145,-16779,28145 - }; +static int16_t twa900[299*2*4]; +static int16_t twb900[299*2*4]; void dft900(int16_t *x,int16_t *y,unsigned char scale_flag) // 300 x 3 { @@ -14342,762 +8220,10 @@ void dft900(int16_t *x,int16_t *y,unsigned char scale_flag) // 300 x 3 }; -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:239)/960)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:239)/960)); -twc = floor(32767*exp(-sqrt(-1)*2*pi*3*(1:239)/960)); -twa2 = zeros(1,2*239); -twb2 = zeros(1,2*239); -twc2 = zeros(1,2*239); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -twc2(1:2:end) = real(twc); -twc2(2:2:end) = imag(twc); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa960[239*2*4] = {"); -for i=1:2:(2*238) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"\nstatic int16_t twb960[239*2*4] = {"); -for i=1:2:(2*238) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fprintf(fd,"\nstatic int16_t twc960[239*2*4] = {"); -for i=1:2:(2*238) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1)); -fclose(fd); -*/ -static int16_t twa960[239*2*4] = {32766,-215,32766,-215,32766,-215,32766,-215, - 32764,-429,32764,-429,32764,-429,32764,-429, - 32760,-644,32760,-644,32760,-644,32760,-644, - 32755,-858,32755,-858,32755,-858,32755,-858, - 32749,-1073,32749,-1073,32749,-1073,32749,-1073, - 32741,-1287,32741,-1287,32741,-1287,32741,-1287, - 32732,-1501,32732,-1501,32732,-1501,32732,-1501, - 32722,-1715,32722,-1715,32722,-1715,32722,-1715, - 32710,-1930,32710,-1930,32710,-1930,32710,-1930, - 32696,-2144,32696,-2144,32696,-2144,32696,-2144, - 32682,-2358,32682,-2358,32682,-2358,32682,-2358, - 32665,-2571,32665,-2571,32665,-2571,32665,-2571, - 32648,-2785,32648,-2785,32648,-2785,32648,-2785, - 32629,-2999,32629,-2999,32629,-2999,32629,-2999, - 32609,-3212,32609,-3212,32609,-3212,32609,-3212, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32564,-3639,32564,-3639,32564,-3639,32564,-3639, - 32539,-3852,32539,-3852,32539,-3852,32539,-3852, - 32513,-4065,32513,-4065,32513,-4065,32513,-4065, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32457,-4490,32457,-4490,32457,-4490,32457,-4490, - 32427,-4702,32427,-4702,32427,-4702,32427,-4702, - 32396,-4914,32396,-4914,32396,-4914,32396,-4914, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32329,-5338,32329,-5338,32329,-5338,32329,-5338, - 32293,-5550,32293,-5550,32293,-5550,32293,-5550, - 32256,-5761,32256,-5761,32256,-5761,32256,-5761, - 32218,-5972,32218,-5972,32218,-5972,32218,-5972, - 32178,-6183,32178,-6183,32178,-6183,32178,-6183, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 32094,-6603,32094,-6603,32094,-6603,32094,-6603, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 32005,-7023,32005,-7023,32005,-7023,32005,-7023, - 31959,-7232,31959,-7232,31959,-7232,31959,-7232, - 31911,-7441,31911,-7441,31911,-7441,31911,-7441, - 31861,-7650,31861,-7650,31861,-7650,31861,-7650, - 31810,-7858,31810,-7858,31810,-7858,31810,-7858, - 31758,-8066,31758,-8066,31758,-8066,31758,-8066, - 31705,-8274,31705,-8274,31705,-8274,31705,-8274, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31594,-8688,31594,-8688,31594,-8688,31594,-8688, - 31536,-8895,31536,-8895,31536,-8895,31536,-8895, - 31477,-9101,31477,-9101,31477,-9101,31477,-9101, - 31417,-9307,31417,-9307,31417,-9307,31417,-9307, - 31356,-9512,31356,-9512,31356,-9512,31356,-9512, - 31293,-9717,31293,-9717,31293,-9717,31293,-9717, - 31228,-9922,31228,-9922,31228,-9922,31228,-9922, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 31096,-10330,31096,-10330,31096,-10330,31096,-10330, - 31028,-10533,31028,-10533,31028,-10533,31028,-10533, - 30958,-10736,30958,-10736,30958,-10736,30958,-10736, - 30887,-10938,30887,-10938,30887,-10938,30887,-10938, - 30815,-11140,30815,-11140,30815,-11140,30815,-11140, - 30741,-11342,30741,-11342,30741,-11342,30741,-11342, - 30666,-11543,30666,-11543,30666,-11543,30666,-11543, - 30590,-11743,30590,-11743,30590,-11743,30590,-11743, - 30513,-11943,30513,-11943,30513,-11943,30513,-11943, - 30434,-12143,30434,-12143,30434,-12143,30434,-12143, - 30354,-12341,30354,-12341,30354,-12341,30354,-12341, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30190,-12738,30190,-12738,30190,-12738,30190,-12738, - 30106,-12935,30106,-12935,30106,-12935,30106,-12935, - 30020,-13132,30020,-13132,30020,-13132,30020,-13132, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29846,-13524,29846,-13524,29846,-13524,29846,-13524, - 29757,-13719,29757,-13719,29757,-13719,29757,-13719, - 29666,-13913,29666,-13913,29666,-13913,29666,-13913, - 29575,-14107,29575,-14107,29575,-14107,29575,-14107, - 29482,-14300,29482,-14300,29482,-14300,29482,-14300, - 29387,-14493,29387,-14493,29387,-14493,29387,-14493, - 29292,-14685,29292,-14685,29292,-14685,29292,-14685, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 29097,-15067,29097,-15067,29097,-15067,29097,-15067, - 28998,-15257,28998,-15257,28998,-15257,28998,-15257, - 28897,-15447,28897,-15447,28897,-15447,28897,-15447, - 28796,-15636,28796,-15636,28796,-15636,28796,-15636, - 28693,-15824,28693,-15824,28693,-15824,28693,-15824, - 28589,-16011,28589,-16011,28589,-16011,28589,-16011, - 28483,-16198,28483,-16198,28483,-16198,28483,-16198, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28269,-16569,28269,-16569,28269,-16569,28269,-16569, - 28160,-16754,28160,-16754,28160,-16754,28160,-16754, - 28049,-16938,28049,-16938,28049,-16938,28049,-16938, - 27938,-17121,27938,-17121,27938,-17121,27938,-17121, - 27825,-17304,27825,-17304,27825,-17304,27825,-17304, - 27711,-17485,27711,-17485,27711,-17485,27711,-17485, - 27596,-17666,27596,-17666,27596,-17666,27596,-17666, - 27480,-17847,27480,-17847,27480,-17847,27480,-17847, - 27363,-18026,27363,-18026,27363,-18026,27363,-18026, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 27125,-18383,27125,-18383,27125,-18383,27125,-18383, - 27004,-18560,27004,-18560,27004,-18560,27004,-18560, - 26882,-18736,26882,-18736,26882,-18736,26882,-18736, - 26758,-18912,26758,-18912,26758,-18912,26758,-18912, - 26634,-19087,26634,-19087,26634,-19087,26634,-19087, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26382,-19434,26382,-19434,26382,-19434,26382,-19434, - 26254,-19606,26254,-19606,26254,-19606,26254,-19606, - 26125,-19777,26125,-19777,26125,-19777,26125,-19777, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25864,-20117,25864,-20117,25864,-20117,25864,-20117, - 25732,-20286,25732,-20286,25732,-20286,25732,-20286, - 25599,-20454,25599,-20454,25599,-20454,25599,-20454, - 25464,-20621,25464,-20621,25464,-20621,25464,-20621, - 25329,-20788,25329,-20788,25329,-20788,25329,-20788, - 25192,-20953,25192,-20953,25192,-20953,25192,-20953, - 25054,-21117,25054,-21117,25054,-21117,25054,-21117, - 24916,-21281,24916,-21281,24916,-21281,24916,-21281, - 24776,-21444,24776,-21444,24776,-21444,24776,-21444, - 24635,-21605,24635,-21605,24635,-21605,24635,-21605, - 24493,-21766,24493,-21766,24493,-21766,24493,-21766, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 24206,-22085,24206,-22085,24206,-22085,24206,-22085, - 24061,-22243,24061,-22243,24061,-22243,24061,-22243, - 23915,-22400,23915,-22400,23915,-22400,23915,-22400, - 23768,-22556,23768,-22556,23768,-22556,23768,-22556, - 23620,-22711,23620,-22711,23620,-22711,23620,-22711, - 23471,-22865,23471,-22865,23471,-22865,23471,-22865, - 23320,-23018,23320,-23018,23320,-23018,23320,-23018, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 23017,-23321,23017,-23321,23017,-23321,23017,-23321, - 22864,-23472,22864,-23472,22864,-23472,22864,-23472, - 22710,-23621,22710,-23621,22710,-23621,22710,-23621, - 22555,-23769,22555,-23769,22555,-23769,22555,-23769, - 22399,-23916,22399,-23916,22399,-23916,22399,-23916, - 22242,-24062,22242,-24062,22242,-24062,22242,-24062, - 22084,-24207,22084,-24207,22084,-24207,22084,-24207, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21765,-24494,21765,-24494,21765,-24494,21765,-24494, - 21604,-24636,21604,-24636,21604,-24636,21604,-24636, - 21443,-24777,21443,-24777,21443,-24777,21443,-24777, - 21280,-24917,21280,-24917,21280,-24917,21280,-24917, - 21116,-25055,21116,-25055,21116,-25055,21116,-25055, - 20952,-25193,20952,-25193,20952,-25193,20952,-25193, - 20787,-25330,20787,-25330,20787,-25330,20787,-25330, - 20620,-25465,20620,-25465,20620,-25465,20620,-25465, - 20453,-25600,20453,-25600,20453,-25600,20453,-25600, - 20285,-25733,20285,-25733,20285,-25733,20285,-25733, - 20116,-25865,20116,-25865,20116,-25865,20116,-25865, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19776,-26126,19776,-26126,19776,-26126,19776,-26126, - 19605,-26255,19605,-26255,19605,-26255,19605,-26255, - 19433,-26383,19433,-26383,19433,-26383,19433,-26383, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 19086,-26635,19086,-26635,19086,-26635,19086,-26635, - 18911,-26759,18911,-26759,18911,-26759,18911,-26759, - 18735,-26883,18735,-26883,18735,-26883,18735,-26883, - 18559,-27005,18559,-27005,18559,-27005,18559,-27005, - 18382,-27126,18382,-27126,18382,-27126,18382,-27126, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 18025,-27364,18025,-27364,18025,-27364,18025,-27364, - 17846,-27481,17846,-27481,17846,-27481,17846,-27481, - 17665,-27597,17665,-27597,17665,-27597,17665,-27597, - 17484,-27712,17484,-27712,17484,-27712,17484,-27712, - 17303,-27826,17303,-27826,17303,-27826,17303,-27826, - 17120,-27939,17120,-27939,17120,-27939,17120,-27939, - 16937,-28050,16937,-28050,16937,-28050,16937,-28050, - 16753,-28161,16753,-28161,16753,-28161,16753,-28161, - 16568,-28270,16568,-28270,16568,-28270,16568,-28270, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16197,-28484,16197,-28484,16197,-28484,16197,-28484, - 16010,-28590,16010,-28590,16010,-28590,16010,-28590, - 15823,-28694,15823,-28694,15823,-28694,15823,-28694, - 15635,-28797,15635,-28797,15635,-28797,15635,-28797, - 15446,-28898,15446,-28898,15446,-28898,15446,-28898, - 15256,-28999,15256,-28999,15256,-28999,15256,-28999, - 15066,-29098,15066,-29098,15066,-29098,15066,-29098, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14684,-29293,14684,-29293,14684,-29293,14684,-29293, - 14492,-29388,14492,-29388,14492,-29388,14492,-29388, - 14299,-29483,14299,-29483,14299,-29483,14299,-29483, - 14106,-29576,14106,-29576,14106,-29576,14106,-29576, - 13912,-29667,13912,-29667,13912,-29667,13912,-29667, - 13718,-29758,13718,-29758,13718,-29758,13718,-29758, - 13523,-29847,13523,-29847,13523,-29847,13523,-29847, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 13131,-30021,13131,-30021,13131,-30021,13131,-30021, - 12934,-30107,12934,-30107,12934,-30107,12934,-30107, - 12737,-30191,12737,-30191,12737,-30191,12737,-30191, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12340,-30355,12340,-30355,12340,-30355,12340,-30355, - 12142,-30435,12142,-30435,12142,-30435,12142,-30435, - 11942,-30514,11942,-30514,11942,-30514,11942,-30514, - 11742,-30591,11742,-30591,11742,-30591,11742,-30591, - 11542,-30667,11542,-30667,11542,-30667,11542,-30667, - 11341,-30742,11341,-30742,11341,-30742,11341,-30742, - 11139,-30816,11139,-30816,11139,-30816,11139,-30816, - 10937,-30888,10937,-30888,10937,-30888,10937,-30888, - 10735,-30959,10735,-30959,10735,-30959,10735,-30959, - 10532,-31029,10532,-31029,10532,-31029,10532,-31029, - 10329,-31097,10329,-31097,10329,-31097,10329,-31097, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9921,-31229,9921,-31229,9921,-31229,9921,-31229, - 9716,-31294,9716,-31294,9716,-31294,9716,-31294, - 9511,-31357,9511,-31357,9511,-31357,9511,-31357, - 9306,-31418,9306,-31418,9306,-31418,9306,-31418, - 9100,-31478,9100,-31478,9100,-31478,9100,-31478, - 8894,-31537,8894,-31537,8894,-31537,8894,-31537, - 8687,-31595,8687,-31595,8687,-31595,8687,-31595, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8273,-31706,8273,-31706,8273,-31706,8273,-31706, - 8065,-31759,8065,-31759,8065,-31759,8065,-31759, - 7857,-31811,7857,-31811,7857,-31811,7857,-31811, - 7649,-31862,7649,-31862,7649,-31862,7649,-31862, - 7440,-31912,7440,-31912,7440,-31912,7440,-31912, - 7231,-31960,7231,-31960,7231,-31960,7231,-31960, - 7022,-32006,7022,-32006,7022,-32006,7022,-32006, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6602,-32095,6602,-32095,6602,-32095,6602,-32095, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 6182,-32179,6182,-32179,6182,-32179,6182,-32179, - 5971,-32219,5971,-32219,5971,-32219,5971,-32219, - 5760,-32257,5760,-32257,5760,-32257,5760,-32257, - 5549,-32294,5549,-32294,5549,-32294,5549,-32294, - 5337,-32330,5337,-32330,5337,-32330,5337,-32330, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4913,-32397,4913,-32397,4913,-32397,4913,-32397, - 4701,-32428,4701,-32428,4701,-32428,4701,-32428, - 4489,-32458,4489,-32458,4489,-32458,4489,-32458, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 4064,-32514,4064,-32514,4064,-32514,4064,-32514, - 3851,-32540,3851,-32540,3851,-32540,3851,-32540, - 3638,-32565,3638,-32565,3638,-32565,3638,-32565, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 3211,-32610,3211,-32610,3211,-32610,3211,-32610, - 2998,-32630,2998,-32630,2998,-32630,2998,-32630, - 2784,-32649,2784,-32649,2784,-32649,2784,-32649, - 2570,-32666,2570,-32666,2570,-32666,2570,-32666, - 2357,-32683,2357,-32683,2357,-32683,2357,-32683, - 2143,-32697,2143,-32697,2143,-32697,2143,-32697, - 1929,-32711,1929,-32711,1929,-32711,1929,-32711, - 1714,-32723,1714,-32723,1714,-32723,1714,-32723, - 1500,-32733,1500,-32733,1500,-32733,1500,-32733, - 1286,-32742,1286,-32742,1286,-32742,1286,-32742, - 1072,-32750,1072,-32750,1072,-32750,1072,-32750, - 857,-32756,857,-32756,857,-32756,857,-32756, - 643,-32761,643,-32761,643,-32761,643,-32761, - 428,-32765,428,-32765,428,-32765,428,-32765, - 214,-32767,214,-32767,214,-32767,214,-32767 - }; +static int16_t twa960[239*2*4]; +static int16_t twb960[239*2*4]; +static int16_t twc960[239*2*4]; -static int16_t twb960[239*2*4] = {32764,-429,32764,-429,32764,-429,32764,-429, - 32755,-858,32755,-858,32755,-858,32755,-858, - 32741,-1287,32741,-1287,32741,-1287,32741,-1287, - 32722,-1715,32722,-1715,32722,-1715,32722,-1715, - 32696,-2144,32696,-2144,32696,-2144,32696,-2144, - 32665,-2571,32665,-2571,32665,-2571,32665,-2571, - 32629,-2999,32629,-2999,32629,-2999,32629,-2999, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32539,-3852,32539,-3852,32539,-3852,32539,-3852, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32427,-4702,32427,-4702,32427,-4702,32427,-4702, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32293,-5550,32293,-5550,32293,-5550,32293,-5550, - 32218,-5972,32218,-5972,32218,-5972,32218,-5972, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31959,-7232,31959,-7232,31959,-7232,31959,-7232, - 31861,-7650,31861,-7650,31861,-7650,31861,-7650, - 31758,-8066,31758,-8066,31758,-8066,31758,-8066, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31536,-8895,31536,-8895,31536,-8895,31536,-8895, - 31417,-9307,31417,-9307,31417,-9307,31417,-9307, - 31293,-9717,31293,-9717,31293,-9717,31293,-9717, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 31028,-10533,31028,-10533,31028,-10533,31028,-10533, - 30887,-10938,30887,-10938,30887,-10938,30887,-10938, - 30741,-11342,30741,-11342,30741,-11342,30741,-11342, - 30590,-11743,30590,-11743,30590,-11743,30590,-11743, - 30434,-12143,30434,-12143,30434,-12143,30434,-12143, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30106,-12935,30106,-12935,30106,-12935,30106,-12935, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29757,-13719,29757,-13719,29757,-13719,29757,-13719, - 29575,-14107,29575,-14107,29575,-14107,29575,-14107, - 29387,-14493,29387,-14493,29387,-14493,29387,-14493, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 28998,-15257,28998,-15257,28998,-15257,28998,-15257, - 28796,-15636,28796,-15636,28796,-15636,28796,-15636, - 28589,-16011,28589,-16011,28589,-16011,28589,-16011, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28160,-16754,28160,-16754,28160,-16754,28160,-16754, - 27938,-17121,27938,-17121,27938,-17121,27938,-17121, - 27711,-17485,27711,-17485,27711,-17485,27711,-17485, - 27480,-17847,27480,-17847,27480,-17847,27480,-17847, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 27004,-18560,27004,-18560,27004,-18560,27004,-18560, - 26758,-18912,26758,-18912,26758,-18912,26758,-18912, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26254,-19606,26254,-19606,26254,-19606,26254,-19606, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25732,-20286,25732,-20286,25732,-20286,25732,-20286, - 25464,-20621,25464,-20621,25464,-20621,25464,-20621, - 25192,-20953,25192,-20953,25192,-20953,25192,-20953, - 24916,-21281,24916,-21281,24916,-21281,24916,-21281, - 24635,-21605,24635,-21605,24635,-21605,24635,-21605, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 24061,-22243,24061,-22243,24061,-22243,24061,-22243, - 23768,-22556,23768,-22556,23768,-22556,23768,-22556, - 23471,-22865,23471,-22865,23471,-22865,23471,-22865, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22864,-23472,22864,-23472,22864,-23472,22864,-23472, - 22555,-23769,22555,-23769,22555,-23769,22555,-23769, - 22242,-24062,22242,-24062,22242,-24062,22242,-24062, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21604,-24636,21604,-24636,21604,-24636,21604,-24636, - 21280,-24917,21280,-24917,21280,-24917,21280,-24917, - 20952,-25193,20952,-25193,20952,-25193,20952,-25193, - 20620,-25465,20620,-25465,20620,-25465,20620,-25465, - 20285,-25733,20285,-25733,20285,-25733,20285,-25733, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19605,-26255,19605,-26255,19605,-26255,19605,-26255, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18911,-26759,18911,-26759,18911,-26759,18911,-26759, - 18559,-27005,18559,-27005,18559,-27005,18559,-27005, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 17846,-27481,17846,-27481,17846,-27481,17846,-27481, - 17484,-27712,17484,-27712,17484,-27712,17484,-27712, - 17120,-27939,17120,-27939,17120,-27939,17120,-27939, - 16753,-28161,16753,-28161,16753,-28161,16753,-28161, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16010,-28590,16010,-28590,16010,-28590,16010,-28590, - 15635,-28797,15635,-28797,15635,-28797,15635,-28797, - 15256,-28999,15256,-28999,15256,-28999,15256,-28999, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14492,-29388,14492,-29388,14492,-29388,14492,-29388, - 14106,-29576,14106,-29576,14106,-29576,14106,-29576, - 13718,-29758,13718,-29758,13718,-29758,13718,-29758, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 12934,-30107,12934,-30107,12934,-30107,12934,-30107, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12142,-30435,12142,-30435,12142,-30435,12142,-30435, - 11742,-30591,11742,-30591,11742,-30591,11742,-30591, - 11341,-30742,11341,-30742,11341,-30742,11341,-30742, - 10937,-30888,10937,-30888,10937,-30888,10937,-30888, - 10532,-31029,10532,-31029,10532,-31029,10532,-31029, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9716,-31294,9716,-31294,9716,-31294,9716,-31294, - 9306,-31418,9306,-31418,9306,-31418,9306,-31418, - 8894,-31537,8894,-31537,8894,-31537,8894,-31537, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8065,-31759,8065,-31759,8065,-31759,8065,-31759, - 7649,-31862,7649,-31862,7649,-31862,7649,-31862, - 7231,-31960,7231,-31960,7231,-31960,7231,-31960, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 5971,-32219,5971,-32219,5971,-32219,5971,-32219, - 5549,-32294,5549,-32294,5549,-32294,5549,-32294, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4701,-32428,4701,-32428,4701,-32428,4701,-32428, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3851,-32540,3851,-32540,3851,-32540,3851,-32540, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 2998,-32630,2998,-32630,2998,-32630,2998,-32630, - 2570,-32666,2570,-32666,2570,-32666,2570,-32666, - 2143,-32697,2143,-32697,2143,-32697,2143,-32697, - 1714,-32723,1714,-32723,1714,-32723,1714,-32723, - 1286,-32742,1286,-32742,1286,-32742,1286,-32742, - 857,-32756,857,-32756,857,-32756,857,-32756, - 428,-32765,428,-32765,428,-32765,428,-32765, - 0,-32767,0,-32767,0,-32767,0,-32767, - -429,-32765,-429,-32765,-429,-32765,-429,-32765, - -858,-32756,-858,-32756,-858,-32756,-858,-32756, - -1287,-32742,-1287,-32742,-1287,-32742,-1287,-32742, - -1715,-32723,-1715,-32723,-1715,-32723,-1715,-32723, - -2144,-32697,-2144,-32697,-2144,-32697,-2144,-32697, - -2571,-32666,-2571,-32666,-2571,-32666,-2571,-32666, - -2999,-32630,-2999,-32630,-2999,-32630,-2999,-32630, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -3852,-32540,-3852,-32540,-3852,-32540,-3852,-32540, - -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487, - -4702,-32428,-4702,-32428,-4702,-32428,-4702,-32428, - -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364, - -5550,-32294,-5550,-32294,-5550,-32294,-5550,-32294, - -5972,-32219,-5972,-32219,-5972,-32219,-5972,-32219, - -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138, - -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051, - -7232,-31960,-7232,-31960,-7232,-31960,-7232,-31960, - -7650,-31862,-7650,-31862,-7650,-31862,-7650,-31862, - -8066,-31759,-8066,-31759,-8066,-31759,-8066,-31759, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -8895,-31537,-8895,-31537,-8895,-31537,-8895,-31537, - -9307,-31418,-9307,-31418,-9307,-31418,-9307,-31418, - -9717,-31294,-9717,-31294,-9717,-31294,-9717,-31294, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10533,-31029,-10533,-31029,-10533,-31029,-10533,-31029, - -10938,-30888,-10938,-30888,-10938,-30888,-10938,-30888, - -11342,-30742,-11342,-30742,-11342,-30742,-11342,-30742, - -11743,-30591,-11743,-30591,-11743,-30591,-11743,-30591, - -12143,-30435,-12143,-30435,-12143,-30435,-12143,-30435, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -12935,-30107,-12935,-30107,-12935,-30107,-12935,-30107, - -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935, - -13719,-29758,-13719,-29758,-13719,-29758,-13719,-29758, - -14107,-29576,-14107,-29576,-14107,-29576,-14107,-29576, - -14493,-29388,-14493,-29388,-14493,-29388,-14493,-29388, - -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196, - -15257,-28999,-15257,-28999,-15257,-28999,-15257,-28999, - -15636,-28797,-15636,-28797,-15636,-28797,-15636,-28797, - -16011,-28590,-16011,-28590,-16011,-28590,-16011,-28590, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -16754,-28161,-16754,-28161,-16754,-28161,-16754,-28161, - -17121,-27939,-17121,-27939,-17121,-27939,-17121,-27939, - -17485,-27712,-17485,-27712,-17485,-27712,-17485,-27712, - -17847,-27481,-17847,-27481,-17847,-27481,-17847,-27481, - -18205,-27245,-18205,-27245,-18205,-27245,-18205,-27245, - -18560,-27005,-18560,-27005,-18560,-27005,-18560,-27005, - -18912,-26759,-18912,-26759,-18912,-26759,-18912,-26759, - -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510, - -19606,-26255,-19606,-26255,-19606,-26255,-19606,-26255, - -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996, - -20286,-25733,-20286,-25733,-20286,-25733,-20286,-25733, - -20621,-25465,-20621,-25465,-20621,-25465,-20621,-25465, - -20953,-25193,-20953,-25193,-20953,-25193,-20953,-25193, - -21281,-24917,-21281,-24917,-21281,-24917,-21281,-24917, - -21605,-24636,-21605,-24636,-21605,-24636,-21605,-24636, - -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351, - -22243,-24062,-22243,-24062,-22243,-24062,-22243,-24062, - -22556,-23769,-22556,-23769,-22556,-23769,-22556,-23769, - -22865,-23472,-22865,-23472,-22865,-23472,-22865,-23472, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23472,-22865,-23472,-22865,-23472,-22865,-23472,-22865, - -23769,-22556,-23769,-22556,-23769,-22556,-23769,-22556, - -24062,-22243,-24062,-22243,-24062,-22243,-24062,-22243, - -24351,-21926,-24351,-21926,-24351,-21926,-24351,-21926, - -24636,-21605,-24636,-21605,-24636,-21605,-24636,-21605, - -24917,-21281,-24917,-21281,-24917,-21281,-24917,-21281, - -25193,-20953,-25193,-20953,-25193,-20953,-25193,-20953, - -25465,-20621,-25465,-20621,-25465,-20621,-25465,-20621, - -25733,-20286,-25733,-20286,-25733,-20286,-25733,-20286, - -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948, - -26255,-19606,-26255,-19606,-26255,-19606,-26255,-19606, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -26759,-18912,-26759,-18912,-26759,-18912,-26759,-18912, - -27005,-18560,-27005,-18560,-27005,-18560,-27005,-18560, - -27245,-18205,-27245,-18205,-27245,-18205,-27245,-18205, - -27481,-17847,-27481,-17847,-27481,-17847,-27481,-17847, - -27712,-17485,-27712,-17485,-27712,-17485,-27712,-17485, - -27939,-17121,-27939,-17121,-27939,-17121,-27939,-17121, - -28161,-16754,-28161,-16754,-28161,-16754,-28161,-16754, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28590,-16011,-28590,-16011,-28590,-16011,-28590,-16011, - -28797,-15636,-28797,-15636,-28797,-15636,-28797,-15636, - -28999,-15257,-28999,-15257,-28999,-15257,-28999,-15257, - -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876, - -29388,-14493,-29388,-14493,-29388,-14493,-29388,-14493, - -29576,-14107,-29576,-14107,-29576,-14107,-29576,-14107, - -29758,-13719,-29758,-13719,-29758,-13719,-29758,-13719, - -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328, - -30107,-12935,-30107,-12935,-30107,-12935,-30107,-12935, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30435,-12143,-30435,-12143,-30435,-12143,-30435,-12143, - -30591,-11743,-30591,-11743,-30591,-11743,-30591,-11743, - -30742,-11342,-30742,-11342,-30742,-11342,-30742,-11342, - -30888,-10938,-30888,-10938,-30888,-10938,-30888,-10938, - -31029,-10533,-31029,-10533,-31029,-10533,-31029,-10533, - -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126, - -31294,-9717,-31294,-9717,-31294,-9717,-31294,-9717, - -31418,-9307,-31418,-9307,-31418,-9307,-31418,-9307, - -31537,-8895,-31537,-8895,-31537,-8895,-31537,-8895, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31759,-8066,-31759,-8066,-31759,-8066,-31759,-8066, - -31862,-7650,-31862,-7650,-31862,-7650,-31862,-7650, - -31960,-7232,-31960,-7232,-31960,-7232,-31960,-7232, - -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813, - -32138,-6393,-32138,-6393,-32138,-6393,-32138,-6393, - -32219,-5972,-32219,-5972,-32219,-5972,-32219,-5972, - -32294,-5550,-32294,-5550,-32294,-5550,-32294,-5550, - -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126, - -32428,-4702,-32428,-4702,-32428,-4702,-32428,-4702, - -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277, - -32540,-3852,-32540,-3852,-32540,-3852,-32540,-3852, - -32588,-3426,-32588,-3426,-32588,-3426,-32588,-3426, - -32630,-2999,-32630,-2999,-32630,-2999,-32630,-2999, - -32666,-2571,-32666,-2571,-32666,-2571,-32666,-2571, - -32697,-2144,-32697,-2144,-32697,-2144,-32697,-2144, - -32723,-1715,-32723,-1715,-32723,-1715,-32723,-1715, - -32742,-1287,-32742,-1287,-32742,-1287,-32742,-1287, - -32756,-858,-32756,-858,-32756,-858,-32756,-858, - -32765,-429,-32765,-429,-32765,-429,-32765,-429 - }; - -static int16_t twc960[239*2*4] = {32760,-644,32760,-644,32760,-644,32760,-644, - 32741,-1287,32741,-1287,32741,-1287,32741,-1287, - 32710,-1930,32710,-1930,32710,-1930,32710,-1930, - 32665,-2571,32665,-2571,32665,-2571,32665,-2571, - 32609,-3212,32609,-3212,32609,-3212,32609,-3212, - 32539,-3852,32539,-3852,32539,-3852,32539,-3852, - 32457,-4490,32457,-4490,32457,-4490,32457,-4490, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32256,-5761,32256,-5761,32256,-5761,32256,-5761, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 32005,-7023,32005,-7023,32005,-7023,32005,-7023, - 31861,-7650,31861,-7650,31861,-7650,31861,-7650, - 31705,-8274,31705,-8274,31705,-8274,31705,-8274, - 31536,-8895,31536,-8895,31536,-8895,31536,-8895, - 31356,-9512,31356,-9512,31356,-9512,31356,-9512, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 30958,-10736,30958,-10736,30958,-10736,30958,-10736, - 30741,-11342,30741,-11342,30741,-11342,30741,-11342, - 30513,-11943,30513,-11943,30513,-11943,30513,-11943, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30020,-13132,30020,-13132,30020,-13132,30020,-13132, - 29757,-13719,29757,-13719,29757,-13719,29757,-13719, - 29482,-14300,29482,-14300,29482,-14300,29482,-14300, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 28897,-15447,28897,-15447,28897,-15447,28897,-15447, - 28589,-16011,28589,-16011,28589,-16011,28589,-16011, - 28269,-16569,28269,-16569,28269,-16569,28269,-16569, - 27938,-17121,27938,-17121,27938,-17121,27938,-17121, - 27596,-17666,27596,-17666,27596,-17666,27596,-17666, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 26882,-18736,26882,-18736,26882,-18736,26882,-18736, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26125,-19777,26125,-19777,26125,-19777,26125,-19777, - 25732,-20286,25732,-20286,25732,-20286,25732,-20286, - 25329,-20788,25329,-20788,25329,-20788,25329,-20788, - 24916,-21281,24916,-21281,24916,-21281,24916,-21281, - 24493,-21766,24493,-21766,24493,-21766,24493,-21766, - 24061,-22243,24061,-22243,24061,-22243,24061,-22243, - 23620,-22711,23620,-22711,23620,-22711,23620,-22711, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22710,-23621,22710,-23621,22710,-23621,22710,-23621, - 22242,-24062,22242,-24062,22242,-24062,22242,-24062, - 21765,-24494,21765,-24494,21765,-24494,21765,-24494, - 21280,-24917,21280,-24917,21280,-24917,21280,-24917, - 20787,-25330,20787,-25330,20787,-25330,20787,-25330, - 20285,-25733,20285,-25733,20285,-25733,20285,-25733, - 19776,-26126,19776,-26126,19776,-26126,19776,-26126, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18735,-26883,18735,-26883,18735,-26883,18735,-26883, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 17665,-27597,17665,-27597,17665,-27597,17665,-27597, - 17120,-27939,17120,-27939,17120,-27939,17120,-27939, - 16568,-28270,16568,-28270,16568,-28270,16568,-28270, - 16010,-28590,16010,-28590,16010,-28590,16010,-28590, - 15446,-28898,15446,-28898,15446,-28898,15446,-28898, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14299,-29483,14299,-29483,14299,-29483,14299,-29483, - 13718,-29758,13718,-29758,13718,-29758,13718,-29758, - 13131,-30021,13131,-30021,13131,-30021,13131,-30021, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 11942,-30514,11942,-30514,11942,-30514,11942,-30514, - 11341,-30742,11341,-30742,11341,-30742,11341,-30742, - 10735,-30959,10735,-30959,10735,-30959,10735,-30959, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9511,-31357,9511,-31357,9511,-31357,9511,-31357, - 8894,-31537,8894,-31537,8894,-31537,8894,-31537, - 8273,-31706,8273,-31706,8273,-31706,8273,-31706, - 7649,-31862,7649,-31862,7649,-31862,7649,-31862, - 7022,-32006,7022,-32006,7022,-32006,7022,-32006, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 5760,-32257,5760,-32257,5760,-32257,5760,-32257, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4489,-32458,4489,-32458,4489,-32458,4489,-32458, - 3851,-32540,3851,-32540,3851,-32540,3851,-32540, - 3211,-32610,3211,-32610,3211,-32610,3211,-32610, - 2570,-32666,2570,-32666,2570,-32666,2570,-32666, - 1929,-32711,1929,-32711,1929,-32711,1929,-32711, - 1286,-32742,1286,-32742,1286,-32742,1286,-32742, - 643,-32761,643,-32761,643,-32761,643,-32761, - 0,-32767,0,-32767,0,-32767,0,-32767, - -644,-32761,-644,-32761,-644,-32761,-644,-32761, - -1287,-32742,-1287,-32742,-1287,-32742,-1287,-32742, - -1930,-32711,-1930,-32711,-1930,-32711,-1930,-32711, - -2571,-32666,-2571,-32666,-2571,-32666,-2571,-32666, - -3212,-32610,-3212,-32610,-3212,-32610,-3212,-32610, - -3852,-32540,-3852,-32540,-3852,-32540,-3852,-32540, - -4490,-32458,-4490,-32458,-4490,-32458,-4490,-32458, - -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364, - -5761,-32257,-5761,-32257,-5761,-32257,-5761,-32257, - -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138, - -7023,-32006,-7023,-32006,-7023,-32006,-7023,-32006, - -7650,-31862,-7650,-31862,-7650,-31862,-7650,-31862, - -8274,-31706,-8274,-31706,-8274,-31706,-8274,-31706, - -8895,-31537,-8895,-31537,-8895,-31537,-8895,-31537, - -9512,-31357,-9512,-31357,-9512,-31357,-9512,-31357, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10736,-30959,-10736,-30959,-10736,-30959,-10736,-30959, - -11342,-30742,-11342,-30742,-11342,-30742,-11342,-30742, - -11943,-30514,-11943,-30514,-11943,-30514,-11943,-30514, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -13132,-30021,-13132,-30021,-13132,-30021,-13132,-30021, - -13719,-29758,-13719,-29758,-13719,-29758,-13719,-29758, - -14300,-29483,-14300,-29483,-14300,-29483,-14300,-29483, - -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196, - -15447,-28898,-15447,-28898,-15447,-28898,-15447,-28898, - -16011,-28590,-16011,-28590,-16011,-28590,-16011,-28590, - -16569,-28270,-16569,-28270,-16569,-28270,-16569,-28270, - -17121,-27939,-17121,-27939,-17121,-27939,-17121,-27939, - -17666,-27597,-17666,-27597,-17666,-27597,-17666,-27597, - -18205,-27245,-18205,-27245,-18205,-27245,-18205,-27245, - -18736,-26883,-18736,-26883,-18736,-26883,-18736,-26883, - -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510, - -19777,-26126,-19777,-26126,-19777,-26126,-19777,-26126, - -20286,-25733,-20286,-25733,-20286,-25733,-20286,-25733, - -20788,-25330,-20788,-25330,-20788,-25330,-20788,-25330, - -21281,-24917,-21281,-24917,-21281,-24917,-21281,-24917, - -21766,-24494,-21766,-24494,-21766,-24494,-21766,-24494, - -22243,-24062,-22243,-24062,-22243,-24062,-22243,-24062, - -22711,-23621,-22711,-23621,-22711,-23621,-22711,-23621, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23621,-22711,-23621,-22711,-23621,-22711,-23621,-22711, - -24062,-22243,-24062,-22243,-24062,-22243,-24062,-22243, - -24494,-21766,-24494,-21766,-24494,-21766,-24494,-21766, - -24917,-21281,-24917,-21281,-24917,-21281,-24917,-21281, - -25330,-20788,-25330,-20788,-25330,-20788,-25330,-20788, - -25733,-20286,-25733,-20286,-25733,-20286,-25733,-20286, - -26126,-19777,-26126,-19777,-26126,-19777,-26126,-19777, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -26883,-18736,-26883,-18736,-26883,-18736,-26883,-18736, - -27245,-18205,-27245,-18205,-27245,-18205,-27245,-18205, - -27597,-17666,-27597,-17666,-27597,-17666,-27597,-17666, - -27939,-17121,-27939,-17121,-27939,-17121,-27939,-17121, - -28270,-16569,-28270,-16569,-28270,-16569,-28270,-16569, - -28590,-16011,-28590,-16011,-28590,-16011,-28590,-16011, - -28898,-15447,-28898,-15447,-28898,-15447,-28898,-15447, - -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876, - -29483,-14300,-29483,-14300,-29483,-14300,-29483,-14300, - -29758,-13719,-29758,-13719,-29758,-13719,-29758,-13719, - -30021,-13132,-30021,-13132,-30021,-13132,-30021,-13132, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30514,-11943,-30514,-11943,-30514,-11943,-30514,-11943, - -30742,-11342,-30742,-11342,-30742,-11342,-30742,-11342, - -30959,-10736,-30959,-10736,-30959,-10736,-30959,-10736, - -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126, - -31357,-9512,-31357,-9512,-31357,-9512,-31357,-9512, - -31537,-8895,-31537,-8895,-31537,-8895,-31537,-8895, - -31706,-8274,-31706,-8274,-31706,-8274,-31706,-8274, - -31862,-7650,-31862,-7650,-31862,-7650,-31862,-7650, - -32006,-7023,-32006,-7023,-32006,-7023,-32006,-7023, - -32138,-6393,-32138,-6393,-32138,-6393,-32138,-6393, - -32257,-5761,-32257,-5761,-32257,-5761,-32257,-5761, - -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126, - -32458,-4490,-32458,-4490,-32458,-4490,-32458,-4490, - -32540,-3852,-32540,-3852,-32540,-3852,-32540,-3852, - -32610,-3212,-32610,-3212,-32610,-3212,-32610,-3212, - -32666,-2571,-32666,-2571,-32666,-2571,-32666,-2571, - -32711,-1930,-32711,-1930,-32711,-1930,-32711,-1930, - -32742,-1287,-32742,-1287,-32742,-1287,-32742,-1287, - -32761,-644,-32761,-644,-32761,-644,-32761,-644, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32761,643,-32761,643,-32761,643,-32761,643, - -32742,1286,-32742,1286,-32742,1286,-32742,1286, - -32711,1929,-32711,1929,-32711,1929,-32711,1929, - -32666,2570,-32666,2570,-32666,2570,-32666,2570, - -32610,3211,-32610,3211,-32610,3211,-32610,3211, - -32540,3851,-32540,3851,-32540,3851,-32540,3851, - -32458,4489,-32458,4489,-32458,4489,-32458,4489, - -32364,5125,-32364,5125,-32364,5125,-32364,5125, - -32257,5760,-32257,5760,-32257,5760,-32257,5760, - -32138,6392,-32138,6392,-32138,6392,-32138,6392, - -32006,7022,-32006,7022,-32006,7022,-32006,7022, - -31862,7649,-31862,7649,-31862,7649,-31862,7649, - -31706,8273,-31706,8273,-31706,8273,-31706,8273, - -31537,8894,-31537,8894,-31537,8894,-31537,8894, - -31357,9511,-31357,9511,-31357,9511,-31357,9511, - -31164,10125,-31164,10125,-31164,10125,-31164,10125, - -30959,10735,-30959,10735,-30959,10735,-30959,10735, - -30742,11341,-30742,11341,-30742,11341,-30742,11341, - -30514,11942,-30514,11942,-30514,11942,-30514,11942, - -30273,12539,-30273,12539,-30273,12539,-30273,12539, - -30021,13131,-30021,13131,-30021,13131,-30021,13131, - -29758,13718,-29758,13718,-29758,13718,-29758,13718, - -29483,14299,-29483,14299,-29483,14299,-29483,14299, - -29196,14875,-29196,14875,-29196,14875,-29196,14875, - -28898,15446,-28898,15446,-28898,15446,-28898,15446, - -28590,16010,-28590,16010,-28590,16010,-28590,16010, - -28270,16568,-28270,16568,-28270,16568,-28270,16568, - -27939,17120,-27939,17120,-27939,17120,-27939,17120, - -27597,17665,-27597,17665,-27597,17665,-27597,17665, - -27245,18204,-27245,18204,-27245,18204,-27245,18204, - -26883,18735,-26883,18735,-26883,18735,-26883,18735, - -26510,19259,-26510,19259,-26510,19259,-26510,19259, - -26126,19776,-26126,19776,-26126,19776,-26126,19776, - -25733,20285,-25733,20285,-25733,20285,-25733,20285, - -25330,20787,-25330,20787,-25330,20787,-25330,20787, - -24917,21280,-24917,21280,-24917,21280,-24917,21280, - -24494,21765,-24494,21765,-24494,21765,-24494,21765, - -24062,22242,-24062,22242,-24062,22242,-24062,22242, - -23621,22710,-23621,22710,-23621,22710,-23621,22710, - -23170,23169,-23170,23169,-23170,23169,-23170,23169, - -22711,23620,-22711,23620,-22711,23620,-22711,23620, - -22243,24061,-22243,24061,-22243,24061,-22243,24061, - -21766,24493,-21766,24493,-21766,24493,-21766,24493, - -21281,24916,-21281,24916,-21281,24916,-21281,24916, - -20788,25329,-20788,25329,-20788,25329,-20788,25329, - -20286,25732,-20286,25732,-20286,25732,-20286,25732, - -19777,26125,-19777,26125,-19777,26125,-19777,26125, - -19260,26509,-19260,26509,-19260,26509,-19260,26509, - -18736,26882,-18736,26882,-18736,26882,-18736,26882, - -18205,27244,-18205,27244,-18205,27244,-18205,27244, - -17666,27596,-17666,27596,-17666,27596,-17666,27596, - -17121,27938,-17121,27938,-17121,27938,-17121,27938, - -16569,28269,-16569,28269,-16569,28269,-16569,28269, - -16011,28589,-16011,28589,-16011,28589,-16011,28589, - -15447,28897,-15447,28897,-15447,28897,-15447,28897, - -14876,29195,-14876,29195,-14876,29195,-14876,29195, - -14300,29482,-14300,29482,-14300,29482,-14300,29482, - -13719,29757,-13719,29757,-13719,29757,-13719,29757, - -13132,30020,-13132,30020,-13132,30020,-13132,30020, - -12540,30272,-12540,30272,-12540,30272,-12540,30272, - -11943,30513,-11943,30513,-11943,30513,-11943,30513, - -11342,30741,-11342,30741,-11342,30741,-11342,30741, - -10736,30958,-10736,30958,-10736,30958,-10736,30958, - -10126,31163,-10126,31163,-10126,31163,-10126,31163, - -9512,31356,-9512,31356,-9512,31356,-9512,31356, - -8895,31536,-8895,31536,-8895,31536,-8895,31536, - -8274,31705,-8274,31705,-8274,31705,-8274,31705, - -7650,31861,-7650,31861,-7650,31861,-7650,31861, - -7023,32005,-7023,32005,-7023,32005,-7023,32005, - -6393,32137,-6393,32137,-6393,32137,-6393,32137, - -5761,32256,-5761,32256,-5761,32256,-5761,32256, - -5126,32363,-5126,32363,-5126,32363,-5126,32363, - -4490,32457,-4490,32457,-4490,32457,-4490,32457, - -3852,32539,-3852,32539,-3852,32539,-3852,32539, - -3212,32609,-3212,32609,-3212,32609,-3212,32609, - -2571,32665,-2571,32665,-2571,32665,-2571,32665, - -1930,32710,-1930,32710,-1930,32710,-1930,32710, - -1287,32741,-1287,32741,-1287,32741,-1287,32741, - -644,32760,-644,32760,-644,32760,-644,32760 - }; void dft960(int16_t *x,int16_t *y,unsigned char scale_flag) // 240 x 4 { @@ -15153,678 +8279,9 @@ void dft960(int16_t *x,int16_t *y,unsigned char scale_flag) // 240 x 4 }; -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:323)/972)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:323)/972)); -twa2 = zeros(1,2*323); -twb2 = zeros(1,2*323); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa972[323*2*4] = {"); -for i=1:2:(2*322) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"static int16_t twb972[323*2*4] = {"); -for i=1:2:(2*322) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fclose(fd); -*/ -static int16_t twa972[323*2*4] = {32766,-212,32766,-212,32766,-212,32766,-212, - 32764,-424,32764,-424,32764,-424,32764,-424, - 32760,-636,32760,-636,32760,-636,32760,-636, - 32756,-848,32756,-848,32756,-848,32756,-848, - 32749,-1059,32749,-1059,32749,-1059,32749,-1059, - 32742,-1271,32742,-1271,32742,-1271,32742,-1271, - 32733,-1483,32733,-1483,32733,-1483,32733,-1483, - 32723,-1694,32723,-1694,32723,-1694,32723,-1694, - 32711,-1906,32711,-1906,32711,-1906,32711,-1906, - 32698,-2117,32698,-2117,32698,-2117,32698,-2117, - 32684,-2328,32684,-2328,32684,-2328,32684,-2328, - 32668,-2540,32668,-2540,32668,-2540,32668,-2540, - 32651,-2751,32651,-2751,32651,-2751,32651,-2751, - 32632,-2962,32632,-2962,32632,-2962,32632,-2962, - 32613,-3173,32613,-3173,32613,-3173,32613,-3173, - 32591,-3383,32591,-3383,32591,-3383,32591,-3383, - 32569,-3594,32569,-3594,32569,-3594,32569,-3594, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32520,-4015,32520,-4015,32520,-4015,32520,-4015, - 32493,-4225,32493,-4225,32493,-4225,32493,-4225, - 32465,-4435,32465,-4435,32465,-4435,32465,-4435, - 32436,-4645,32436,-4645,32436,-4645,32436,-4645, - 32405,-4854,32405,-4854,32405,-4854,32405,-4854, - 32373,-5064,32373,-5064,32373,-5064,32373,-5064, - 32340,-5273,32340,-5273,32340,-5273,32340,-5273, - 32305,-5482,32305,-5482,32305,-5482,32305,-5482, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32231,-5899,32231,-5899,32231,-5899,32231,-5899, - 32192,-6107,32192,-6107,32192,-6107,32192,-6107, - 32152,-6315,32152,-6315,32152,-6315,32152,-6315, - 32111,-6523,32111,-6523,32111,-6523,32111,-6523, - 32068,-6730,32068,-6730,32068,-6730,32068,-6730, - 32024,-6937,32024,-6937,32024,-6937,32024,-6937, - 31978,-7144,31978,-7144,31978,-7144,31978,-7144, - 31931,-7351,31931,-7351,31931,-7351,31931,-7351, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31834,-7763,31834,-7763,31834,-7763,31834,-7763, - 31783,-7969,31783,-7969,31783,-7969,31783,-7969, - 31731,-8174,31731,-8174,31731,-8174,31731,-8174, - 31677,-8379,31677,-8379,31677,-8379,31677,-8379, - 31622,-8583,31622,-8583,31622,-8583,31622,-8583, - 31566,-8788,31566,-8788,31566,-8788,31566,-8788, - 31509,-8992,31509,-8992,31509,-8992,31509,-8992, - 31450,-9195,31450,-9195,31450,-9195,31450,-9195, - 31390,-9398,31390,-9398,31390,-9398,31390,-9398, - 31329,-9601,31329,-9601,31329,-9601,31329,-9601, - 31266,-9803,31266,-9803,31266,-9803,31266,-9803, - 31202,-10005,31202,-10005,31202,-10005,31202,-10005, - 31136,-10207,31136,-10207,31136,-10207,31136,-10207, - 31070,-10408,31070,-10408,31070,-10408,31070,-10408, - 31002,-10608,31002,-10608,31002,-10608,31002,-10608, - 30933,-10808,30933,-10808,30933,-10808,30933,-10808, - 30862,-11008,30862,-11008,30862,-11008,30862,-11008, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30717,-11406,30717,-11406,30717,-11406,30717,-11406, - 30643,-11605,30643,-11605,30643,-11605,30643,-11605, - 30567,-11802,30567,-11802,30567,-11802,30567,-11802, - 30490,-12000,30490,-12000,30490,-12000,30490,-12000, - 30412,-12197,30412,-12197,30412,-12197,30412,-12197, - 30333,-12393,30333,-12393,30333,-12393,30333,-12393, - 30252,-12589,30252,-12589,30252,-12589,30252,-12589, - 30170,-12784,30170,-12784,30170,-12784,30170,-12784, - 30087,-12979,30087,-12979,30087,-12979,30087,-12979, - 30002,-13173,30002,-13173,30002,-13173,30002,-13173, - 29916,-13367,29916,-13367,29916,-13367,29916,-13367, - 29829,-13560,29829,-13560,29829,-13560,29829,-13560, - 29741,-13752,29741,-13752,29741,-13752,29741,-13752, - 29652,-13944,29652,-13944,29652,-13944,29652,-13944, - 29561,-14136,29561,-14136,29561,-14136,29561,-14136, - 29469,-14327,29469,-14327,29469,-14327,29469,-14327, - 29376,-14517,29376,-14517,29376,-14517,29376,-14517, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 29185,-14895,29185,-14895,29185,-14895,29185,-14895, - 29089,-15084,29089,-15084,29089,-15084,29089,-15084, - 28990,-15271,28990,-15271,28990,-15271,28990,-15271, - 28891,-15458,28891,-15458,28891,-15458,28891,-15458, - 28791,-15645,28791,-15645,28791,-15645,28791,-15645, - 28689,-15831,28689,-15831,28689,-15831,28689,-15831, - 28586,-16016,28586,-16016,28586,-16016,28586,-16016, - 28482,-16200,28482,-16200,28482,-16200,28482,-16200, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28270,-16567,28270,-16567,28270,-16567,28270,-16567, - 28162,-16749,28162,-16749,28162,-16749,28162,-16749, - 28054,-16931,28054,-16931,28054,-16931,28054,-16931, - 27943,-17112,27943,-17112,27943,-17112,27943,-17112, - 27832,-17292,27832,-17292,27832,-17292,27832,-17292, - 27720,-17472,27720,-17472,27720,-17472,27720,-17472, - 27606,-17651,27606,-17651,27606,-17651,27606,-17651, - 27492,-17829,27492,-17829,27492,-17829,27492,-17829, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 27259,-18183,27259,-18183,27259,-18183,27259,-18183, - 27141,-18359,27141,-18359,27141,-18359,27141,-18359, - 27022,-18534,27022,-18534,27022,-18534,27022,-18534, - 26901,-18708,26901,-18708,26901,-18708,26901,-18708, - 26780,-18882,26780,-18882,26780,-18882,26780,-18882, - 26657,-19054,26657,-19054,26657,-19054,26657,-19054, - 26533,-19226,26533,-19226,26533,-19226,26533,-19226, - 26409,-19397,26409,-19397,26409,-19397,26409,-19397, - 26283,-19568,26283,-19568,26283,-19568,26283,-19568, - 26156,-19737,26156,-19737,26156,-19737,26156,-19737, - 26028,-19906,26028,-19906,26028,-19906,26028,-19906, - 25898,-20074,25898,-20074,25898,-20074,25898,-20074, - 25768,-20241,25768,-20241,25768,-20241,25768,-20241, - 25637,-20407,25637,-20407,25637,-20407,25637,-20407, - 25504,-20572,25504,-20572,25504,-20572,25504,-20572, - 25371,-20736,25371,-20736,25371,-20736,25371,-20736, - 25236,-20900,25236,-20900,25236,-20900,25236,-20900, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24964,-21225,24964,-21225,24964,-21225,24964,-21225, - 24826,-21385,24826,-21385,24826,-21385,24826,-21385, - 24687,-21546,24687,-21546,24687,-21546,24687,-21546, - 24548,-21705,24548,-21705,24548,-21705,24548,-21705, - 24407,-21863,24407,-21863,24407,-21863,24407,-21863, - 24265,-22020,24265,-22020,24265,-22020,24265,-22020, - 24122,-22177,24122,-22177,24122,-22177,24122,-22177, - 23978,-22332,23978,-22332,23978,-22332,23978,-22332, - 23833,-22487,23833,-22487,23833,-22487,23833,-22487, - 23688,-22640,23688,-22640,23688,-22640,23688,-22640, - 23541,-22793,23541,-22793,23541,-22793,23541,-22793, - 23393,-22945,23393,-22945,23393,-22945,23393,-22945, - 23244,-23095,23244,-23095,23244,-23095,23244,-23095, - 23094,-23245,23094,-23245,23094,-23245,23094,-23245, - 22944,-23394,22944,-23394,22944,-23394,22944,-23394, - 22792,-23542,22792,-23542,22792,-23542,22792,-23542, - 22639,-23689,22639,-23689,22639,-23689,22639,-23689, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 22331,-23979,22331,-23979,22331,-23979,22331,-23979, - 22176,-24123,22176,-24123,22176,-24123,22176,-24123, - 22019,-24266,22019,-24266,22019,-24266,22019,-24266, - 21862,-24408,21862,-24408,21862,-24408,21862,-24408, - 21704,-24549,21704,-24549,21704,-24549,21704,-24549, - 21545,-24688,21545,-24688,21545,-24688,21545,-24688, - 21384,-24827,21384,-24827,21384,-24827,21384,-24827, - 21224,-24965,21224,-24965,21224,-24965,21224,-24965, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20899,-25237,20899,-25237,20899,-25237,20899,-25237, - 20735,-25372,20735,-25372,20735,-25372,20735,-25372, - 20571,-25505,20571,-25505,20571,-25505,20571,-25505, - 20406,-25638,20406,-25638,20406,-25638,20406,-25638, - 20240,-25769,20240,-25769,20240,-25769,20240,-25769, - 20073,-25899,20073,-25899,20073,-25899,20073,-25899, - 19905,-26029,19905,-26029,19905,-26029,19905,-26029, - 19736,-26157,19736,-26157,19736,-26157,19736,-26157, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 19396,-26410,19396,-26410,19396,-26410,19396,-26410, - 19225,-26534,19225,-26534,19225,-26534,19225,-26534, - 19053,-26658,19053,-26658,19053,-26658,19053,-26658, - 18881,-26781,18881,-26781,18881,-26781,18881,-26781, - 18707,-26902,18707,-26902,18707,-26902,18707,-26902, - 18533,-27023,18533,-27023,18533,-27023,18533,-27023, - 18358,-27142,18358,-27142,18358,-27142,18358,-27142, - 18182,-27260,18182,-27260,18182,-27260,18182,-27260, - 18005,-27377,18005,-27377,18005,-27377,18005,-27377, - 17828,-27493,17828,-27493,17828,-27493,17828,-27493, - 17650,-27607,17650,-27607,17650,-27607,17650,-27607, - 17471,-27721,17471,-27721,17471,-27721,17471,-27721, - 17291,-27833,17291,-27833,17291,-27833,17291,-27833, - 17111,-27944,17111,-27944,17111,-27944,17111,-27944, - 16930,-28055,16930,-28055,16930,-28055,16930,-28055, - 16748,-28163,16748,-28163,16748,-28163,16748,-28163, - 16566,-28271,16566,-28271,16566,-28271,16566,-28271, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16199,-28483,16199,-28483,16199,-28483,16199,-28483, - 16015,-28587,16015,-28587,16015,-28587,16015,-28587, - 15830,-28690,15830,-28690,15830,-28690,15830,-28690, - 15644,-28792,15644,-28792,15644,-28792,15644,-28792, - 15457,-28892,15457,-28892,15457,-28892,15457,-28892, - 15270,-28991,15270,-28991,15270,-28991,15270,-28991, - 15083,-29090,15083,-29090,15083,-29090,15083,-29090, - 14894,-29186,14894,-29186,14894,-29186,14894,-29186, - 14705,-29282,14705,-29282,14705,-29282,14705,-29282, - 14516,-29377,14516,-29377,14516,-29377,14516,-29377, - 14326,-29470,14326,-29470,14326,-29470,14326,-29470, - 14135,-29562,14135,-29562,14135,-29562,14135,-29562, - 13943,-29653,13943,-29653,13943,-29653,13943,-29653, - 13751,-29742,13751,-29742,13751,-29742,13751,-29742, - 13559,-29830,13559,-29830,13559,-29830,13559,-29830, - 13366,-29917,13366,-29917,13366,-29917,13366,-29917, - 13172,-30003,13172,-30003,13172,-30003,13172,-30003, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12783,-30171,12783,-30171,12783,-30171,12783,-30171, - 12588,-30253,12588,-30253,12588,-30253,12588,-30253, - 12392,-30334,12392,-30334,12392,-30334,12392,-30334, - 12196,-30413,12196,-30413,12196,-30413,12196,-30413, - 11999,-30491,11999,-30491,11999,-30491,11999,-30491, - 11801,-30568,11801,-30568,11801,-30568,11801,-30568, - 11604,-30644,11604,-30644,11604,-30644,11604,-30644, - 11405,-30718,11405,-30718,11405,-30718,11405,-30718, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 11007,-30863,11007,-30863,11007,-30863,11007,-30863, - 10807,-30934,10807,-30934,10807,-30934,10807,-30934, - 10607,-31003,10607,-31003,10607,-31003,10607,-31003, - 10407,-31071,10407,-31071,10407,-31071,10407,-31071, - 10206,-31137,10206,-31137,10206,-31137,10206,-31137, - 10004,-31203,10004,-31203,10004,-31203,10004,-31203, - 9802,-31267,9802,-31267,9802,-31267,9802,-31267, - 9600,-31330,9600,-31330,9600,-31330,9600,-31330, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 9194,-31451,9194,-31451,9194,-31451,9194,-31451, - 8991,-31510,8991,-31510,8991,-31510,8991,-31510, - 8787,-31567,8787,-31567,8787,-31567,8787,-31567, - 8582,-31623,8582,-31623,8582,-31623,8582,-31623, - 8378,-31678,8378,-31678,8378,-31678,8378,-31678, - 8173,-31732,8173,-31732,8173,-31732,8173,-31732, - 7968,-31784,7968,-31784,7968,-31784,7968,-31784, - 7762,-31835,7762,-31835,7762,-31835,7762,-31835, - 7556,-31884,7556,-31884,7556,-31884,7556,-31884, - 7350,-31932,7350,-31932,7350,-31932,7350,-31932, - 7143,-31979,7143,-31979,7143,-31979,7143,-31979, - 6936,-32025,6936,-32025,6936,-32025,6936,-32025, - 6729,-32069,6729,-32069,6729,-32069,6729,-32069, - 6522,-32112,6522,-32112,6522,-32112,6522,-32112, - 6314,-32153,6314,-32153,6314,-32153,6314,-32153, - 6106,-32193,6106,-32193,6106,-32193,6106,-32193, - 5898,-32232,5898,-32232,5898,-32232,5898,-32232, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5481,-32306,5481,-32306,5481,-32306,5481,-32306, - 5272,-32341,5272,-32341,5272,-32341,5272,-32341, - 5063,-32374,5063,-32374,5063,-32374,5063,-32374, - 4853,-32406,4853,-32406,4853,-32406,4853,-32406, - 4644,-32437,4644,-32437,4644,-32437,4644,-32437, - 4434,-32466,4434,-32466,4434,-32466,4434,-32466, - 4224,-32494,4224,-32494,4224,-32494,4224,-32494, - 4014,-32521,4014,-32521,4014,-32521,4014,-32521, - 3804,-32546,3804,-32546,3804,-32546,3804,-32546, - 3593,-32570,3593,-32570,3593,-32570,3593,-32570, - 3382,-32592,3382,-32592,3382,-32592,3382,-32592, - 3172,-32614,3172,-32614,3172,-32614,3172,-32614, - 2961,-32633,2961,-32633,2961,-32633,2961,-32633, - 2750,-32652,2750,-32652,2750,-32652,2750,-32652, - 2539,-32669,2539,-32669,2539,-32669,2539,-32669, - 2327,-32685,2327,-32685,2327,-32685,2327,-32685, - 2116,-32699,2116,-32699,2116,-32699,2116,-32699, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 1693,-32724,1693,-32724,1693,-32724,1693,-32724, - 1482,-32734,1482,-32734,1482,-32734,1482,-32734, - 1270,-32743,1270,-32743,1270,-32743,1270,-32743, - 1058,-32750,1058,-32750,1058,-32750,1058,-32750, - 847,-32757,847,-32757,847,-32757,847,-32757, - 635,-32761,635,-32761,635,-32761,635,-32761, - 423,-32765,423,-32765,423,-32765,423,-32765, - 211,-32767,211,-32767,211,-32767,211,-32767, - 0,-32767,0,-32767,0,-32767,0,-32767, - -212,-32767,-212,-32767,-212,-32767,-212,-32767, - -424,-32765,-424,-32765,-424,-32765,-424,-32765, - -636,-32761,-636,-32761,-636,-32761,-636,-32761, - -848,-32757,-848,-32757,-848,-32757,-848,-32757, - -1059,-32750,-1059,-32750,-1059,-32750,-1059,-32750, - -1271,-32743,-1271,-32743,-1271,-32743,-1271,-32743, - -1483,-32734,-1483,-32734,-1483,-32734,-1483,-32734, - -1694,-32724,-1694,-32724,-1694,-32724,-1694,-32724, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -2117,-32699,-2117,-32699,-2117,-32699,-2117,-32699, - -2328,-32685,-2328,-32685,-2328,-32685,-2328,-32685, - -2540,-32669,-2540,-32669,-2540,-32669,-2540,-32669, - -2751,-32652,-2751,-32652,-2751,-32652,-2751,-32652, - -2962,-32633,-2962,-32633,-2962,-32633,-2962,-32633, - -3173,-32614,-3173,-32614,-3173,-32614,-3173,-32614, - -3383,-32592,-3383,-32592,-3383,-32592,-3383,-32592, - -3594,-32570,-3594,-32570,-3594,-32570,-3594,-32570, - -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546, - -4015,-32521,-4015,-32521,-4015,-32521,-4015,-32521, - -4225,-32494,-4225,-32494,-4225,-32494,-4225,-32494, - -4435,-32466,-4435,-32466,-4435,-32466,-4435,-32466, - -4645,-32437,-4645,-32437,-4645,-32437,-4645,-32437, - -4854,-32406,-4854,-32406,-4854,-32406,-4854,-32406, - -5064,-32374,-5064,-32374,-5064,-32374,-5064,-32374, - -5273,-32341,-5273,-32341,-5273,-32341,-5273,-32341, - -5482,-32306,-5482,-32306,-5482,-32306,-5482,-32306, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -5899,-32232,-5899,-32232,-5899,-32232,-5899,-32232, - -6107,-32193,-6107,-32193,-6107,-32193,-6107,-32193, - -6315,-32153,-6315,-32153,-6315,-32153,-6315,-32153, - -6523,-32112,-6523,-32112,-6523,-32112,-6523,-32112, - -6730,-32069,-6730,-32069,-6730,-32069,-6730,-32069, - -6937,-32025,-6937,-32025,-6937,-32025,-6937,-32025, - -7144,-31979,-7144,-31979,-7144,-31979,-7144,-31979, - -7351,-31932,-7351,-31932,-7351,-31932,-7351,-31932, - -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884, - -7763,-31835,-7763,-31835,-7763,-31835,-7763,-31835, - -7969,-31784,-7969,-31784,-7969,-31784,-7969,-31784, - -8174,-31732,-8174,-31732,-8174,-31732,-8174,-31732, - -8379,-31678,-8379,-31678,-8379,-31678,-8379,-31678, - -8583,-31623,-8583,-31623,-8583,-31623,-8583,-31623, - -8788,-31567,-8788,-31567,-8788,-31567,-8788,-31567, - -8992,-31510,-8992,-31510,-8992,-31510,-8992,-31510, - -9195,-31451,-9195,-31451,-9195,-31451,-9195,-31451, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -9601,-31330,-9601,-31330,-9601,-31330,-9601,-31330, - -9803,-31267,-9803,-31267,-9803,-31267,-9803,-31267, - -10005,-31203,-10005,-31203,-10005,-31203,-10005,-31203, - -10207,-31137,-10207,-31137,-10207,-31137,-10207,-31137, - -10408,-31071,-10408,-31071,-10408,-31071,-10408,-31071, - -10608,-31003,-10608,-31003,-10608,-31003,-10608,-31003, - -10808,-30934,-10808,-30934,-10808,-30934,-10808,-30934, - -11008,-30863,-11008,-30863,-11008,-30863,-11008,-30863, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11406,-30718,-11406,-30718,-11406,-30718,-11406,-30718, - -11605,-30644,-11605,-30644,-11605,-30644,-11605,-30644, - -11802,-30568,-11802,-30568,-11802,-30568,-11802,-30568, - -12000,-30491,-12000,-30491,-12000,-30491,-12000,-30491, - -12197,-30413,-12197,-30413,-12197,-30413,-12197,-30413, - -12393,-30334,-12393,-30334,-12393,-30334,-12393,-30334, - -12589,-30253,-12589,-30253,-12589,-30253,-12589,-30253, - -12784,-30171,-12784,-30171,-12784,-30171,-12784,-30171, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -13173,-30003,-13173,-30003,-13173,-30003,-13173,-30003, - -13367,-29917,-13367,-29917,-13367,-29917,-13367,-29917, - -13560,-29830,-13560,-29830,-13560,-29830,-13560,-29830, - -13752,-29742,-13752,-29742,-13752,-29742,-13752,-29742, - -13944,-29653,-13944,-29653,-13944,-29653,-13944,-29653, - -14136,-29562,-14136,-29562,-14136,-29562,-14136,-29562, - -14327,-29470,-14327,-29470,-14327,-29470,-14327,-29470, - -14517,-29377,-14517,-29377,-14517,-29377,-14517,-29377, - -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282, - -14895,-29186,-14895,-29186,-14895,-29186,-14895,-29186, - -15084,-29090,-15084,-29090,-15084,-29090,-15084,-29090, - -15271,-28991,-15271,-28991,-15271,-28991,-15271,-28991, - -15458,-28892,-15458,-28892,-15458,-28892,-15458,-28892, - -15645,-28792,-15645,-28792,-15645,-28792,-15645,-28792, - -15831,-28690,-15831,-28690,-15831,-28690,-15831,-28690, - -16016,-28587,-16016,-28587,-16016,-28587,-16016,-28587, - -16200,-28483,-16200,-28483,-16200,-28483,-16200,-28483 - }; -static int16_t twb972[323*2*4] = {32764,-424,32764,-424,32764,-424,32764,-424, - 32756,-848,32756,-848,32756,-848,32756,-848, - 32742,-1271,32742,-1271,32742,-1271,32742,-1271, - 32723,-1694,32723,-1694,32723,-1694,32723,-1694, - 32698,-2117,32698,-2117,32698,-2117,32698,-2117, - 32668,-2540,32668,-2540,32668,-2540,32668,-2540, - 32632,-2962,32632,-2962,32632,-2962,32632,-2962, - 32591,-3383,32591,-3383,32591,-3383,32591,-3383, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32493,-4225,32493,-4225,32493,-4225,32493,-4225, - 32436,-4645,32436,-4645,32436,-4645,32436,-4645, - 32373,-5064,32373,-5064,32373,-5064,32373,-5064, - 32305,-5482,32305,-5482,32305,-5482,32305,-5482, - 32231,-5899,32231,-5899,32231,-5899,32231,-5899, - 32152,-6315,32152,-6315,32152,-6315,32152,-6315, - 32068,-6730,32068,-6730,32068,-6730,32068,-6730, - 31978,-7144,31978,-7144,31978,-7144,31978,-7144, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31783,-7969,31783,-7969,31783,-7969,31783,-7969, - 31677,-8379,31677,-8379,31677,-8379,31677,-8379, - 31566,-8788,31566,-8788,31566,-8788,31566,-8788, - 31450,-9195,31450,-9195,31450,-9195,31450,-9195, - 31329,-9601,31329,-9601,31329,-9601,31329,-9601, - 31202,-10005,31202,-10005,31202,-10005,31202,-10005, - 31070,-10408,31070,-10408,31070,-10408,31070,-10408, - 30933,-10808,30933,-10808,30933,-10808,30933,-10808, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30643,-11605,30643,-11605,30643,-11605,30643,-11605, - 30490,-12000,30490,-12000,30490,-12000,30490,-12000, - 30333,-12393,30333,-12393,30333,-12393,30333,-12393, - 30170,-12784,30170,-12784,30170,-12784,30170,-12784, - 30002,-13173,30002,-13173,30002,-13173,30002,-13173, - 29829,-13560,29829,-13560,29829,-13560,29829,-13560, - 29652,-13944,29652,-13944,29652,-13944,29652,-13944, - 29469,-14327,29469,-14327,29469,-14327,29469,-14327, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 29089,-15084,29089,-15084,29089,-15084,29089,-15084, - 28891,-15458,28891,-15458,28891,-15458,28891,-15458, - 28689,-15831,28689,-15831,28689,-15831,28689,-15831, - 28482,-16200,28482,-16200,28482,-16200,28482,-16200, - 28270,-16567,28270,-16567,28270,-16567,28270,-16567, - 28054,-16931,28054,-16931,28054,-16931,28054,-16931, - 27832,-17292,27832,-17292,27832,-17292,27832,-17292, - 27606,-17651,27606,-17651,27606,-17651,27606,-17651, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 27141,-18359,27141,-18359,27141,-18359,27141,-18359, - 26901,-18708,26901,-18708,26901,-18708,26901,-18708, - 26657,-19054,26657,-19054,26657,-19054,26657,-19054, - 26409,-19397,26409,-19397,26409,-19397,26409,-19397, - 26156,-19737,26156,-19737,26156,-19737,26156,-19737, - 25898,-20074,25898,-20074,25898,-20074,25898,-20074, - 25637,-20407,25637,-20407,25637,-20407,25637,-20407, - 25371,-20736,25371,-20736,25371,-20736,25371,-20736, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24826,-21385,24826,-21385,24826,-21385,24826,-21385, - 24548,-21705,24548,-21705,24548,-21705,24548,-21705, - 24265,-22020,24265,-22020,24265,-22020,24265,-22020, - 23978,-22332,23978,-22332,23978,-22332,23978,-22332, - 23688,-22640,23688,-22640,23688,-22640,23688,-22640, - 23393,-22945,23393,-22945,23393,-22945,23393,-22945, - 23094,-23245,23094,-23245,23094,-23245,23094,-23245, - 22792,-23542,22792,-23542,22792,-23542,22792,-23542, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 22176,-24123,22176,-24123,22176,-24123,22176,-24123, - 21862,-24408,21862,-24408,21862,-24408,21862,-24408, - 21545,-24688,21545,-24688,21545,-24688,21545,-24688, - 21224,-24965,21224,-24965,21224,-24965,21224,-24965, - 20899,-25237,20899,-25237,20899,-25237,20899,-25237, - 20571,-25505,20571,-25505,20571,-25505,20571,-25505, - 20240,-25769,20240,-25769,20240,-25769,20240,-25769, - 19905,-26029,19905,-26029,19905,-26029,19905,-26029, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 19225,-26534,19225,-26534,19225,-26534,19225,-26534, - 18881,-26781,18881,-26781,18881,-26781,18881,-26781, - 18533,-27023,18533,-27023,18533,-27023,18533,-27023, - 18182,-27260,18182,-27260,18182,-27260,18182,-27260, - 17828,-27493,17828,-27493,17828,-27493,17828,-27493, - 17471,-27721,17471,-27721,17471,-27721,17471,-27721, - 17111,-27944,17111,-27944,17111,-27944,17111,-27944, - 16748,-28163,16748,-28163,16748,-28163,16748,-28163, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16015,-28587,16015,-28587,16015,-28587,16015,-28587, - 15644,-28792,15644,-28792,15644,-28792,15644,-28792, - 15270,-28991,15270,-28991,15270,-28991,15270,-28991, - 14894,-29186,14894,-29186,14894,-29186,14894,-29186, - 14516,-29377,14516,-29377,14516,-29377,14516,-29377, - 14135,-29562,14135,-29562,14135,-29562,14135,-29562, - 13751,-29742,13751,-29742,13751,-29742,13751,-29742, - 13366,-29917,13366,-29917,13366,-29917,13366,-29917, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12588,-30253,12588,-30253,12588,-30253,12588,-30253, - 12196,-30413,12196,-30413,12196,-30413,12196,-30413, - 11801,-30568,11801,-30568,11801,-30568,11801,-30568, - 11405,-30718,11405,-30718,11405,-30718,11405,-30718, - 11007,-30863,11007,-30863,11007,-30863,11007,-30863, - 10607,-31003,10607,-31003,10607,-31003,10607,-31003, - 10206,-31137,10206,-31137,10206,-31137,10206,-31137, - 9802,-31267,9802,-31267,9802,-31267,9802,-31267, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 8991,-31510,8991,-31510,8991,-31510,8991,-31510, - 8582,-31623,8582,-31623,8582,-31623,8582,-31623, - 8173,-31732,8173,-31732,8173,-31732,8173,-31732, - 7762,-31835,7762,-31835,7762,-31835,7762,-31835, - 7350,-31932,7350,-31932,7350,-31932,7350,-31932, - 6936,-32025,6936,-32025,6936,-32025,6936,-32025, - 6522,-32112,6522,-32112,6522,-32112,6522,-32112, - 6106,-32193,6106,-32193,6106,-32193,6106,-32193, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5272,-32341,5272,-32341,5272,-32341,5272,-32341, - 4853,-32406,4853,-32406,4853,-32406,4853,-32406, - 4434,-32466,4434,-32466,4434,-32466,4434,-32466, - 4014,-32521,4014,-32521,4014,-32521,4014,-32521, - 3593,-32570,3593,-32570,3593,-32570,3593,-32570, - 3172,-32614,3172,-32614,3172,-32614,3172,-32614, - 2750,-32652,2750,-32652,2750,-32652,2750,-32652, - 2327,-32685,2327,-32685,2327,-32685,2327,-32685, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 1482,-32734,1482,-32734,1482,-32734,1482,-32734, - 1058,-32750,1058,-32750,1058,-32750,1058,-32750, - 635,-32761,635,-32761,635,-32761,635,-32761, - 211,-32767,211,-32767,211,-32767,211,-32767, - -212,-32767,-212,-32767,-212,-32767,-212,-32767, - -636,-32761,-636,-32761,-636,-32761,-636,-32761, - -1059,-32750,-1059,-32750,-1059,-32750,-1059,-32750, - -1483,-32734,-1483,-32734,-1483,-32734,-1483,-32734, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -2328,-32685,-2328,-32685,-2328,-32685,-2328,-32685, - -2751,-32652,-2751,-32652,-2751,-32652,-2751,-32652, - -3173,-32614,-3173,-32614,-3173,-32614,-3173,-32614, - -3594,-32570,-3594,-32570,-3594,-32570,-3594,-32570, - -4015,-32521,-4015,-32521,-4015,-32521,-4015,-32521, - -4435,-32466,-4435,-32466,-4435,-32466,-4435,-32466, - -4854,-32406,-4854,-32406,-4854,-32406,-4854,-32406, - -5273,-32341,-5273,-32341,-5273,-32341,-5273,-32341, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6107,-32193,-6107,-32193,-6107,-32193,-6107,-32193, - -6523,-32112,-6523,-32112,-6523,-32112,-6523,-32112, - -6937,-32025,-6937,-32025,-6937,-32025,-6937,-32025, - -7351,-31932,-7351,-31932,-7351,-31932,-7351,-31932, - -7763,-31835,-7763,-31835,-7763,-31835,-7763,-31835, - -8174,-31732,-8174,-31732,-8174,-31732,-8174,-31732, - -8583,-31623,-8583,-31623,-8583,-31623,-8583,-31623, - -8992,-31510,-8992,-31510,-8992,-31510,-8992,-31510, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -9803,-31267,-9803,-31267,-9803,-31267,-9803,-31267, - -10207,-31137,-10207,-31137,-10207,-31137,-10207,-31137, - -10608,-31003,-10608,-31003,-10608,-31003,-10608,-31003, - -11008,-30863,-11008,-30863,-11008,-30863,-11008,-30863, - -11406,-30718,-11406,-30718,-11406,-30718,-11406,-30718, - -11802,-30568,-11802,-30568,-11802,-30568,-11802,-30568, - -12197,-30413,-12197,-30413,-12197,-30413,-12197,-30413, - -12589,-30253,-12589,-30253,-12589,-30253,-12589,-30253, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -13367,-29917,-13367,-29917,-13367,-29917,-13367,-29917, - -13752,-29742,-13752,-29742,-13752,-29742,-13752,-29742, - -14136,-29562,-14136,-29562,-14136,-29562,-14136,-29562, - -14517,-29377,-14517,-29377,-14517,-29377,-14517,-29377, - -14895,-29186,-14895,-29186,-14895,-29186,-14895,-29186, - -15271,-28991,-15271,-28991,-15271,-28991,-15271,-28991, - -15645,-28792,-15645,-28792,-15645,-28792,-15645,-28792, - -16016,-28587,-16016,-28587,-16016,-28587,-16016,-28587, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -16749,-28163,-16749,-28163,-16749,-28163,-16749,-28163, - -17112,-27944,-17112,-27944,-17112,-27944,-17112,-27944, - -17472,-27721,-17472,-27721,-17472,-27721,-17472,-27721, - -17829,-27493,-17829,-27493,-17829,-27493,-17829,-27493, - -18183,-27260,-18183,-27260,-18183,-27260,-18183,-27260, - -18534,-27023,-18534,-27023,-18534,-27023,-18534,-27023, - -18882,-26781,-18882,-26781,-18882,-26781,-18882,-26781, - -19226,-26534,-19226,-26534,-19226,-26534,-19226,-26534, - -19568,-26284,-19568,-26284,-19568,-26284,-19568,-26284, - -19906,-26029,-19906,-26029,-19906,-26029,-19906,-26029, - -20241,-25769,-20241,-25769,-20241,-25769,-20241,-25769, - -20572,-25505,-20572,-25505,-20572,-25505,-20572,-25505, - -20900,-25237,-20900,-25237,-20900,-25237,-20900,-25237, - -21225,-24965,-21225,-24965,-21225,-24965,-21225,-24965, - -21546,-24688,-21546,-24688,-21546,-24688,-21546,-24688, - -21863,-24408,-21863,-24408,-21863,-24408,-21863,-24408, - -22177,-24123,-22177,-24123,-22177,-24123,-22177,-24123, - -22487,-23834,-22487,-23834,-22487,-23834,-22487,-23834, - -22793,-23542,-22793,-23542,-22793,-23542,-22793,-23542, - -23095,-23245,-23095,-23245,-23095,-23245,-23095,-23245, - -23394,-22945,-23394,-22945,-23394,-22945,-23394,-22945, - -23689,-22640,-23689,-22640,-23689,-22640,-23689,-22640, - -23979,-22332,-23979,-22332,-23979,-22332,-23979,-22332, - -24266,-22020,-24266,-22020,-24266,-22020,-24266,-22020, - -24549,-21705,-24549,-21705,-24549,-21705,-24549,-21705, - -24827,-21385,-24827,-21385,-24827,-21385,-24827,-21385, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25372,-20736,-25372,-20736,-25372,-20736,-25372,-20736, - -25638,-20407,-25638,-20407,-25638,-20407,-25638,-20407, - -25899,-20074,-25899,-20074,-25899,-20074,-25899,-20074, - -26157,-19737,-26157,-19737,-26157,-19737,-26157,-19737, - -26410,-19397,-26410,-19397,-26410,-19397,-26410,-19397, - -26658,-19054,-26658,-19054,-26658,-19054,-26658,-19054, - -26902,-18708,-26902,-18708,-26902,-18708,-26902,-18708, - -27142,-18359,-27142,-18359,-27142,-18359,-27142,-18359, - -27377,-18006,-27377,-18006,-27377,-18006,-27377,-18006, - -27607,-17651,-27607,-17651,-27607,-17651,-27607,-17651, - -27833,-17292,-27833,-17292,-27833,-17292,-27833,-17292, - -28055,-16931,-28055,-16931,-28055,-16931,-28055,-16931, - -28271,-16567,-28271,-16567,-28271,-16567,-28271,-16567, - -28483,-16200,-28483,-16200,-28483,-16200,-28483,-16200, - -28690,-15831,-28690,-15831,-28690,-15831,-28690,-15831, - -28892,-15458,-28892,-15458,-28892,-15458,-28892,-15458, - -29090,-15084,-29090,-15084,-29090,-15084,-29090,-15084, - -29282,-14706,-29282,-14706,-29282,-14706,-29282,-14706, - -29470,-14327,-29470,-14327,-29470,-14327,-29470,-14327, - -29653,-13944,-29653,-13944,-29653,-13944,-29653,-13944, - -29830,-13560,-29830,-13560,-29830,-13560,-29830,-13560, - -30003,-13173,-30003,-13173,-30003,-13173,-30003,-13173, - -30171,-12784,-30171,-12784,-30171,-12784,-30171,-12784, - -30334,-12393,-30334,-12393,-30334,-12393,-30334,-12393, - -30491,-12000,-30491,-12000,-30491,-12000,-30491,-12000, - -30644,-11605,-30644,-11605,-30644,-11605,-30644,-11605, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -30934,-10808,-30934,-10808,-30934,-10808,-30934,-10808, - -31071,-10408,-31071,-10408,-31071,-10408,-31071,-10408, - -31203,-10005,-31203,-10005,-31203,-10005,-31203,-10005, - -31330,-9601,-31330,-9601,-31330,-9601,-31330,-9601, - -31451,-9195,-31451,-9195,-31451,-9195,-31451,-9195, - -31567,-8788,-31567,-8788,-31567,-8788,-31567,-8788, - -31678,-8379,-31678,-8379,-31678,-8379,-31678,-8379, - -31784,-7969,-31784,-7969,-31784,-7969,-31784,-7969, - -31884,-7557,-31884,-7557,-31884,-7557,-31884,-7557, - -31979,-7144,-31979,-7144,-31979,-7144,-31979,-7144, - -32069,-6730,-32069,-6730,-32069,-6730,-32069,-6730, - -32153,-6315,-32153,-6315,-32153,-6315,-32153,-6315, - -32232,-5899,-32232,-5899,-32232,-5899,-32232,-5899, - -32306,-5482,-32306,-5482,-32306,-5482,-32306,-5482, - -32374,-5064,-32374,-5064,-32374,-5064,-32374,-5064, - -32437,-4645,-32437,-4645,-32437,-4645,-32437,-4645, - -32494,-4225,-32494,-4225,-32494,-4225,-32494,-4225, - -32546,-3805,-32546,-3805,-32546,-3805,-32546,-3805, - -32592,-3383,-32592,-3383,-32592,-3383,-32592,-3383, - -32633,-2962,-32633,-2962,-32633,-2962,-32633,-2962, - -32669,-2540,-32669,-2540,-32669,-2540,-32669,-2540, - -32699,-2117,-32699,-2117,-32699,-2117,-32699,-2117, - -32724,-1694,-32724,-1694,-32724,-1694,-32724,-1694, - -32743,-1271,-32743,-1271,-32743,-1271,-32743,-1271, - -32757,-848,-32757,-848,-32757,-848,-32757,-848, - -32765,-424,-32765,-424,-32765,-424,-32765,-424, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32765,423,-32765,423,-32765,423,-32765,423, - -32757,847,-32757,847,-32757,847,-32757,847, - -32743,1270,-32743,1270,-32743,1270,-32743,1270, - -32724,1693,-32724,1693,-32724,1693,-32724,1693, - -32699,2116,-32699,2116,-32699,2116,-32699,2116, - -32669,2539,-32669,2539,-32669,2539,-32669,2539, - -32633,2961,-32633,2961,-32633,2961,-32633,2961, - -32592,3382,-32592,3382,-32592,3382,-32592,3382, - -32546,3804,-32546,3804,-32546,3804,-32546,3804, - -32494,4224,-32494,4224,-32494,4224,-32494,4224, - -32437,4644,-32437,4644,-32437,4644,-32437,4644, - -32374,5063,-32374,5063,-32374,5063,-32374,5063, - -32306,5481,-32306,5481,-32306,5481,-32306,5481, - -32232,5898,-32232,5898,-32232,5898,-32232,5898, - -32153,6314,-32153,6314,-32153,6314,-32153,6314, - -32069,6729,-32069,6729,-32069,6729,-32069,6729, - -31979,7143,-31979,7143,-31979,7143,-31979,7143, - -31884,7556,-31884,7556,-31884,7556,-31884,7556, - -31784,7968,-31784,7968,-31784,7968,-31784,7968, - -31678,8378,-31678,8378,-31678,8378,-31678,8378, - -31567,8787,-31567,8787,-31567,8787,-31567,8787, - -31451,9194,-31451,9194,-31451,9194,-31451,9194, - -31330,9600,-31330,9600,-31330,9600,-31330,9600, - -31203,10004,-31203,10004,-31203,10004,-31203,10004, - -31071,10407,-31071,10407,-31071,10407,-31071,10407, - -30934,10807,-30934,10807,-30934,10807,-30934,10807, - -30791,11206,-30791,11206,-30791,11206,-30791,11206, - -30644,11604,-30644,11604,-30644,11604,-30644,11604, - -30491,11999,-30491,11999,-30491,11999,-30491,11999, - -30334,12392,-30334,12392,-30334,12392,-30334,12392, - -30171,12783,-30171,12783,-30171,12783,-30171,12783, - -30003,13172,-30003,13172,-30003,13172,-30003,13172, - -29830,13559,-29830,13559,-29830,13559,-29830,13559, - -29653,13943,-29653,13943,-29653,13943,-29653,13943, - -29470,14326,-29470,14326,-29470,14326,-29470,14326, - -29282,14705,-29282,14705,-29282,14705,-29282,14705, - -29090,15083,-29090,15083,-29090,15083,-29090,15083, - -28892,15457,-28892,15457,-28892,15457,-28892,15457, - -28690,15830,-28690,15830,-28690,15830,-28690,15830, - -28483,16199,-28483,16199,-28483,16199,-28483,16199, - -28271,16566,-28271,16566,-28271,16566,-28271,16566, - -28055,16930,-28055,16930,-28055,16930,-28055,16930, - -27833,17291,-27833,17291,-27833,17291,-27833,17291, - -27607,17650,-27607,17650,-27607,17650,-27607,17650, - -27377,18005,-27377,18005,-27377,18005,-27377,18005, - -27142,18358,-27142,18358,-27142,18358,-27142,18358, - -26902,18707,-26902,18707,-26902,18707,-26902,18707, - -26658,19053,-26658,19053,-26658,19053,-26658,19053, - -26410,19396,-26410,19396,-26410,19396,-26410,19396, - -26157,19736,-26157,19736,-26157,19736,-26157,19736, - -25899,20073,-25899,20073,-25899,20073,-25899,20073, - -25638,20406,-25638,20406,-25638,20406,-25638,20406, - -25372,20735,-25372,20735,-25372,20735,-25372,20735, - -25101,21062,-25101,21062,-25101,21062,-25101,21062, - -24827,21384,-24827,21384,-24827,21384,-24827,21384, - -24549,21704,-24549,21704,-24549,21704,-24549,21704, - -24266,22019,-24266,22019,-24266,22019,-24266,22019, - -23979,22331,-23979,22331,-23979,22331,-23979,22331, - -23689,22639,-23689,22639,-23689,22639,-23689,22639, - -23394,22944,-23394,22944,-23394,22944,-23394,22944, - -23095,23244,-23095,23244,-23095,23244,-23095,23244, - -22793,23541,-22793,23541,-22793,23541,-22793,23541, - -22487,23833,-22487,23833,-22487,23833,-22487,23833, - -22177,24122,-22177,24122,-22177,24122,-22177,24122, - -21863,24407,-21863,24407,-21863,24407,-21863,24407, - -21546,24687,-21546,24687,-21546,24687,-21546,24687, - -21225,24964,-21225,24964,-21225,24964,-21225,24964, - -20900,25236,-20900,25236,-20900,25236,-20900,25236, - -20572,25504,-20572,25504,-20572,25504,-20572,25504, - -20241,25768,-20241,25768,-20241,25768,-20241,25768, - -19906,26028,-19906,26028,-19906,26028,-19906,26028, - -19568,26283,-19568,26283,-19568,26283,-19568,26283, - -19226,26533,-19226,26533,-19226,26533,-19226,26533, - -18882,26780,-18882,26780,-18882,26780,-18882,26780, - -18534,27022,-18534,27022,-18534,27022,-18534,27022, - -18183,27259,-18183,27259,-18183,27259,-18183,27259, - -17829,27492,-17829,27492,-17829,27492,-17829,27492, - -17472,27720,-17472,27720,-17472,27720,-17472,27720, - -17112,27943,-17112,27943,-17112,27943,-17112,27943, - -16749,28162,-16749,28162,-16749,28162,-16749,28162 - }; + +static int16_t twa972[323*2*4]; +static int16_t twb972[323*2*4]; void dft972(int16_t *x,int16_t *y,unsigned char scale_flag) // 324 x 3 { @@ -15874,750 +8331,8 @@ void dft972(int16_t *x,int16_t *y,unsigned char scale_flag) // 324 x 3 }; -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:359)/1080)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:359)/1080)); -twa2 = zeros(1,2*359); -twb2 = zeros(1,2*359); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa1080[359*2*4] = {"); -for i=1:2:(2*358) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"static int16_t twb1080[359*2*4] = {"); -for i=1:2:(2*358) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fclose(fd); -*/ -static int16_t twa1080[359*2*4] = {32766,-191,32766,-191,32766,-191,32766,-191, - 32764,-382,32764,-382,32764,-382,32764,-382, - 32762,-572,32762,-572,32762,-572,32762,-572, - 32758,-763,32758,-763,32758,-763,32758,-763, - 32753,-954,32753,-954,32753,-954,32753,-954, - 32747,-1144,32747,-1144,32747,-1144,32747,-1144, - 32739,-1335,32739,-1335,32739,-1335,32739,-1335, - 32731,-1525,32731,-1525,32731,-1525,32731,-1525, - 32722,-1715,32722,-1715,32722,-1715,32722,-1715, - 32711,-1906,32711,-1906,32711,-1906,32711,-1906, - 32699,-2096,32699,-2096,32699,-2096,32699,-2096, - 32687,-2286,32687,-2286,32687,-2286,32687,-2286, - 32673,-2476,32673,-2476,32673,-2476,32673,-2476, - 32658,-2666,32658,-2666,32658,-2666,32658,-2666, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32625,-3046,32625,-3046,32625,-3046,32625,-3046, - 32606,-3236,32606,-3236,32606,-3236,32606,-3236, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32567,-3615,32567,-3615,32567,-3615,32567,-3615, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32522,-3994,32522,-3994,32522,-3994,32522,-3994, - 32498,-4183,32498,-4183,32498,-4183,32498,-4183, - 32474,-4372,32474,-4372,32474,-4372,32474,-4372, - 32448,-4561,32448,-4561,32448,-4561,32448,-4561, - 32421,-4749,32421,-4749,32421,-4749,32421,-4749, - 32392,-4938,32392,-4938,32392,-4938,32392,-4938, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32333,-5315,32333,-5315,32333,-5315,32333,-5315, - 32301,-5503,32301,-5503,32301,-5503,32301,-5503, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32235,-5878,32235,-5878,32235,-5878,32235,-5878, - 32200,-6066,32200,-6066,32200,-6066,32200,-6066, - 32164,-6253,32164,-6253,32164,-6253,32164,-6253, - 32128,-6440,32128,-6440,32128,-6440,32128,-6440, - 32090,-6627,32090,-6627,32090,-6627,32090,-6627, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 32010,-6999,32010,-6999,32010,-6999,32010,-6999, - 31969,-7186,31969,-7186,31969,-7186,31969,-7186, - 31927,-7371,31927,-7371,31927,-7371,31927,-7371, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31839,-7742,31839,-7742,31839,-7742,31839,-7742, - 31793,-7928,31793,-7928,31793,-7928,31793,-7928, - 31747,-8112,31747,-8112,31747,-8112,31747,-8112, - 31699,-8297,31699,-8297,31699,-8297,31699,-8297, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31600,-8665,31600,-8665,31600,-8665,31600,-8665, - 31549,-8849,31549,-8849,31549,-8849,31549,-8849, - 31497,-9032,31497,-9032,31497,-9032,31497,-9032, - 31444,-9215,31444,-9215,31444,-9215,31444,-9215, - 31390,-9398,31390,-9398,31390,-9398,31390,-9398, - 31335,-9581,31335,-9581,31335,-9581,31335,-9581, - 31278,-9763,31278,-9763,31278,-9763,31278,-9763, - 31221,-9945,31221,-9945,31221,-9945,31221,-9945, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 31103,-10307,31103,-10307,31103,-10307,31103,-10307, - 31043,-10488,31043,-10488,31043,-10488,31043,-10488, - 30981,-10668,30981,-10668,30981,-10668,30981,-10668, - 30919,-10848,30919,-10848,30919,-10848,30919,-10848, - 30855,-11028,30855,-11028,30855,-11028,30855,-11028, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30725,-11386,30725,-11386,30725,-11386,30725,-11386, - 30658,-11565,30658,-11565,30658,-11565,30658,-11565, - 30590,-11743,30590,-11743,30590,-11743,30590,-11743, - 30521,-11921,30521,-11921,30521,-11921,30521,-11921, - 30451,-12098,30451,-12098,30451,-12098,30451,-12098, - 30381,-12275,30381,-12275,30381,-12275,30381,-12275, - 30309,-12452,30309,-12452,30309,-12452,30309,-12452, - 30236,-12628,30236,-12628,30236,-12628,30236,-12628, - 30162,-12804,30162,-12804,30162,-12804,30162,-12804, - 30087,-12979,30087,-12979,30087,-12979,30087,-12979, - 30011,-13154,30011,-13154,30011,-13154,30011,-13154, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29856,-13502,29856,-13502,29856,-13502,29856,-13502, - 29777,-13675,29777,-13675,29777,-13675,29777,-13675, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29615,-14021,29615,-14021,29615,-14021,29615,-14021, - 29533,-14193,29533,-14193,29533,-14193,29533,-14193, - 29450,-14365,29450,-14365,29450,-14365,29450,-14365, - 29366,-14536,29366,-14536,29366,-14536,29366,-14536, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 29108,-15046,29108,-15046,29108,-15046,29108,-15046, - 29020,-15215,29020,-15215,29020,-15215,29020,-15215, - 28931,-15384,28931,-15384,28931,-15384,28931,-15384, - 28841,-15552,28841,-15552,28841,-15552,28841,-15552, - 28750,-15719,28750,-15719,28750,-15719,28750,-15719, - 28658,-15886,28658,-15886,28658,-15886,28658,-15886, - 28565,-16053,28565,-16053,28565,-16053,28565,-16053, - 28471,-16219,28471,-16219,28471,-16219,28471,-16219, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28281,-16549,28281,-16549,28281,-16549,28281,-16549, - 28184,-16713,28184,-16713,28184,-16713,28184,-16713, - 28086,-16877,28086,-16877,28086,-16877,28086,-16877, - 27988,-17040,27988,-17040,27988,-17040,27988,-17040, - 27888,-17202,27888,-17202,27888,-17202,27888,-17202, - 27787,-17364,27787,-17364,27787,-17364,27787,-17364, - 27686,-17526,27686,-17526,27686,-17526,27686,-17526, - 27584,-17687,27584,-17687,27584,-17687,27584,-17687, - 27480,-17847,27480,-17847,27480,-17847,27480,-17847, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 27271,-18165,27271,-18165,27271,-18165,27271,-18165, - 27165,-18324,27165,-18324,27165,-18324,27165,-18324, - 27058,-18481,27058,-18481,27058,-18481,27058,-18481, - 26950,-18638,26950,-18638,26950,-18638,26950,-18638, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26731,-18951,26731,-18951,26731,-18951,26731,-18951, - 26620,-19106,26620,-19106,26620,-19106,26620,-19106, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26396,-19414,26396,-19414,26396,-19414,26396,-19414, - 26283,-19568,26283,-19568,26283,-19568,26283,-19568, - 26168,-19720,26168,-19720,26168,-19720,26168,-19720, - 26053,-19872,26053,-19872,26053,-19872,26053,-19872, - 25937,-20023,25937,-20023,25937,-20023,25937,-20023, - 25820,-20174,25820,-20174,25820,-20174,25820,-20174, - 25702,-20324,25702,-20324,25702,-20324,25702,-20324, - 25584,-20473,25584,-20473,25584,-20473,25584,-20473, - 25464,-20621,25464,-20621,25464,-20621,25464,-20621, - 25344,-20769,25344,-20769,25344,-20769,25344,-20769, - 25223,-20916,25223,-20916,25223,-20916,25223,-20916, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24978,-21208,24978,-21208,24978,-21208,24978,-21208, - 24854,-21353,24854,-21353,24854,-21353,24854,-21353, - 24729,-21498,24729,-21498,24729,-21498,24729,-21498, - 24604,-21641,24604,-21641,24604,-21641,24604,-21641, - 24477,-21784,24477,-21784,24477,-21784,24477,-21784, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 24222,-22067,24222,-22067,24222,-22067,24222,-22067, - 24093,-22208,24093,-22208,24093,-22208,24093,-22208, - 23964,-22348,23964,-22348,23964,-22348,23964,-22348, - 23833,-22487,23833,-22487,23833,-22487,23833,-22487, - 23702,-22625,23702,-22625,23702,-22625,23702,-22625, - 23570,-22762,23570,-22762,23570,-22762,23570,-22762, - 23437,-22899,23437,-22899,23437,-22899,23437,-22899, - 23304,-23035,23304,-23035,23304,-23035,23304,-23035, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 23034,-23305,23034,-23305,23034,-23305,23034,-23305, - 22898,-23438,22898,-23438,22898,-23438,22898,-23438, - 22761,-23571,22761,-23571,22761,-23571,22761,-23571, - 22624,-23703,22624,-23703,22624,-23703,22624,-23703, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 22347,-23965,22347,-23965,22347,-23965,22347,-23965, - 22207,-24094,22207,-24094,22207,-24094,22207,-24094, - 22066,-24223,22066,-24223,22066,-24223,22066,-24223, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21783,-24478,21783,-24478,21783,-24478,21783,-24478, - 21640,-24605,21640,-24605,21640,-24605,21640,-24605, - 21497,-24730,21497,-24730,21497,-24730,21497,-24730, - 21352,-24855,21352,-24855,21352,-24855,21352,-24855, - 21207,-24979,21207,-24979,21207,-24979,21207,-24979, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20915,-25224,20915,-25224,20915,-25224,20915,-25224, - 20768,-25345,20768,-25345,20768,-25345,20768,-25345, - 20620,-25465,20620,-25465,20620,-25465,20620,-25465, - 20472,-25585,20472,-25585,20472,-25585,20472,-25585, - 20323,-25703,20323,-25703,20323,-25703,20323,-25703, - 20173,-25821,20173,-25821,20173,-25821,20173,-25821, - 20022,-25938,20022,-25938,20022,-25938,20022,-25938, - 19871,-26054,19871,-26054,19871,-26054,19871,-26054, - 19719,-26169,19719,-26169,19719,-26169,19719,-26169, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 19413,-26397,19413,-26397,19413,-26397,19413,-26397, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 19105,-26621,19105,-26621,19105,-26621,19105,-26621, - 18950,-26732,18950,-26732,18950,-26732,18950,-26732, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18637,-26951,18637,-26951,18637,-26951,18637,-26951, - 18480,-27059,18480,-27059,18480,-27059,18480,-27059, - 18323,-27166,18323,-27166,18323,-27166,18323,-27166, - 18164,-27272,18164,-27272,18164,-27272,18164,-27272, - 18005,-27377,18005,-27377,18005,-27377,18005,-27377, - 17846,-27481,17846,-27481,17846,-27481,17846,-27481, - 17686,-27585,17686,-27585,17686,-27585,17686,-27585, - 17525,-27687,17525,-27687,17525,-27687,17525,-27687, - 17363,-27788,17363,-27788,17363,-27788,17363,-27788, - 17201,-27889,17201,-27889,17201,-27889,17201,-27889, - 17039,-27989,17039,-27989,17039,-27989,17039,-27989, - 16876,-28087,16876,-28087,16876,-28087,16876,-28087, - 16712,-28185,16712,-28185,16712,-28185,16712,-28185, - 16548,-28282,16548,-28282,16548,-28282,16548,-28282, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16218,-28472,16218,-28472,16218,-28472,16218,-28472, - 16052,-28566,16052,-28566,16052,-28566,16052,-28566, - 15885,-28659,15885,-28659,15885,-28659,15885,-28659, - 15718,-28751,15718,-28751,15718,-28751,15718,-28751, - 15551,-28842,15551,-28842,15551,-28842,15551,-28842, - 15383,-28932,15383,-28932,15383,-28932,15383,-28932, - 15214,-29021,15214,-29021,15214,-29021,15214,-29021, - 15045,-29109,15045,-29109,15045,-29109,15045,-29109, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14705,-29282,14705,-29282,14705,-29282,14705,-29282, - 14535,-29367,14535,-29367,14535,-29367,14535,-29367, - 14364,-29451,14364,-29451,14364,-29451,14364,-29451, - 14192,-29534,14192,-29534,14192,-29534,14192,-29534, - 14020,-29616,14020,-29616,14020,-29616,14020,-29616, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 13674,-29778,13674,-29778,13674,-29778,13674,-29778, - 13501,-29857,13501,-29857,13501,-29857,13501,-29857, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 13153,-30012,13153,-30012,13153,-30012,13153,-30012, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12803,-30163,12803,-30163,12803,-30163,12803,-30163, - 12627,-30237,12627,-30237,12627,-30237,12627,-30237, - 12451,-30310,12451,-30310,12451,-30310,12451,-30310, - 12274,-30382,12274,-30382,12274,-30382,12274,-30382, - 12097,-30452,12097,-30452,12097,-30452,12097,-30452, - 11920,-30522,11920,-30522,11920,-30522,11920,-30522, - 11742,-30591,11742,-30591,11742,-30591,11742,-30591, - 11564,-30659,11564,-30659,11564,-30659,11564,-30659, - 11385,-30726,11385,-30726,11385,-30726,11385,-30726, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 11027,-30856,11027,-30856,11027,-30856,11027,-30856, - 10847,-30920,10847,-30920,10847,-30920,10847,-30920, - 10667,-30982,10667,-30982,10667,-30982,10667,-30982, - 10487,-31044,10487,-31044,10487,-31044,10487,-31044, - 10306,-31104,10306,-31104,10306,-31104,10306,-31104, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9944,-31222,9944,-31222,9944,-31222,9944,-31222, - 9762,-31279,9762,-31279,9762,-31279,9762,-31279, - 9580,-31336,9580,-31336,9580,-31336,9580,-31336, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 9214,-31445,9214,-31445,9214,-31445,9214,-31445, - 9031,-31498,9031,-31498,9031,-31498,9031,-31498, - 8848,-31550,8848,-31550,8848,-31550,8848,-31550, - 8664,-31601,8664,-31601,8664,-31601,8664,-31601, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8296,-31700,8296,-31700,8296,-31700,8296,-31700, - 8111,-31748,8111,-31748,8111,-31748,8111,-31748, - 7927,-31794,7927,-31794,7927,-31794,7927,-31794, - 7741,-31840,7741,-31840,7741,-31840,7741,-31840, - 7556,-31884,7556,-31884,7556,-31884,7556,-31884, - 7370,-31928,7370,-31928,7370,-31928,7370,-31928, - 7185,-31970,7185,-31970,7185,-31970,7185,-31970, - 6998,-32011,6998,-32011,6998,-32011,6998,-32011, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6626,-32091,6626,-32091,6626,-32091,6626,-32091, - 6439,-32129,6439,-32129,6439,-32129,6439,-32129, - 6252,-32165,6252,-32165,6252,-32165,6252,-32165, - 6065,-32201,6065,-32201,6065,-32201,6065,-32201, - 5877,-32236,5877,-32236,5877,-32236,5877,-32236, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5502,-32302,5502,-32302,5502,-32302,5502,-32302, - 5314,-32334,5314,-32334,5314,-32334,5314,-32334, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4937,-32393,4937,-32393,4937,-32393,4937,-32393, - 4748,-32422,4748,-32422,4748,-32422,4748,-32422, - 4560,-32449,4560,-32449,4560,-32449,4560,-32449, - 4371,-32475,4371,-32475,4371,-32475,4371,-32475, - 4182,-32499,4182,-32499,4182,-32499,4182,-32499, - 3993,-32523,3993,-32523,3993,-32523,3993,-32523, - 3804,-32546,3804,-32546,3804,-32546,3804,-32546, - 3614,-32568,3614,-32568,3614,-32568,3614,-32568, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 3235,-32607,3235,-32607,3235,-32607,3235,-32607, - 3045,-32626,3045,-32626,3045,-32626,3045,-32626, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 2665,-32659,2665,-32659,2665,-32659,2665,-32659, - 2475,-32674,2475,-32674,2475,-32674,2475,-32674, - 2285,-32688,2285,-32688,2285,-32688,2285,-32688, - 2095,-32700,2095,-32700,2095,-32700,2095,-32700, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 1714,-32723,1714,-32723,1714,-32723,1714,-32723, - 1524,-32732,1524,-32732,1524,-32732,1524,-32732, - 1334,-32740,1334,-32740,1334,-32740,1334,-32740, - 1143,-32748,1143,-32748,1143,-32748,1143,-32748, - 953,-32754,953,-32754,953,-32754,953,-32754, - 762,-32759,762,-32759,762,-32759,762,-32759, - 571,-32763,571,-32763,571,-32763,571,-32763, - 381,-32765,381,-32765,381,-32765,381,-32765, - 190,-32767,190,-32767,190,-32767,190,-32767, - 0,-32767,0,-32767,0,-32767,0,-32767, - -191,-32767,-191,-32767,-191,-32767,-191,-32767, - -382,-32765,-382,-32765,-382,-32765,-382,-32765, - -572,-32763,-572,-32763,-572,-32763,-572,-32763, - -763,-32759,-763,-32759,-763,-32759,-763,-32759, - -954,-32754,-954,-32754,-954,-32754,-954,-32754, - -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748, - -1335,-32740,-1335,-32740,-1335,-32740,-1335,-32740, - -1525,-32732,-1525,-32732,-1525,-32732,-1525,-32732, - -1715,-32723,-1715,-32723,-1715,-32723,-1715,-32723, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -2096,-32700,-2096,-32700,-2096,-32700,-2096,-32700, - -2286,-32688,-2286,-32688,-2286,-32688,-2286,-32688, - -2476,-32674,-2476,-32674,-2476,-32674,-2476,-32674, - -2666,-32659,-2666,-32659,-2666,-32659,-2666,-32659, - -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643, - -3046,-32626,-3046,-32626,-3046,-32626,-3046,-32626, - -3236,-32607,-3236,-32607,-3236,-32607,-3236,-32607, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -3615,-32568,-3615,-32568,-3615,-32568,-3615,-32568, - -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546, - -3994,-32523,-3994,-32523,-3994,-32523,-3994,-32523, - -4183,-32499,-4183,-32499,-4183,-32499,-4183,-32499, - -4372,-32475,-4372,-32475,-4372,-32475,-4372,-32475, - -4561,-32449,-4561,-32449,-4561,-32449,-4561,-32449, - -4749,-32422,-4749,-32422,-4749,-32422,-4749,-32422, - -4938,-32393,-4938,-32393,-4938,-32393,-4938,-32393, - -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364, - -5315,-32334,-5315,-32334,-5315,-32334,-5315,-32334, - -5503,-32302,-5503,-32302,-5503,-32302,-5503,-32302, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -5878,-32236,-5878,-32236,-5878,-32236,-5878,-32236, - -6066,-32201,-6066,-32201,-6066,-32201,-6066,-32201, - -6253,-32165,-6253,-32165,-6253,-32165,-6253,-32165, - -6440,-32129,-6440,-32129,-6440,-32129,-6440,-32129, - -6627,-32091,-6627,-32091,-6627,-32091,-6627,-32091, - -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051, - -6999,-32011,-6999,-32011,-6999,-32011,-6999,-32011, - -7186,-31970,-7186,-31970,-7186,-31970,-7186,-31970, - -7371,-31928,-7371,-31928,-7371,-31928,-7371,-31928, - -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884, - -7742,-31840,-7742,-31840,-7742,-31840,-7742,-31840, - -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794, - -8112,-31748,-8112,-31748,-8112,-31748,-8112,-31748, - -8297,-31700,-8297,-31700,-8297,-31700,-8297,-31700, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -8665,-31601,-8665,-31601,-8665,-31601,-8665,-31601, - -8849,-31550,-8849,-31550,-8849,-31550,-8849,-31550, - -9032,-31498,-9032,-31498,-9032,-31498,-9032,-31498, - -9215,-31445,-9215,-31445,-9215,-31445,-9215,-31445, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -9581,-31336,-9581,-31336,-9581,-31336,-9581,-31336, - -9763,-31279,-9763,-31279,-9763,-31279,-9763,-31279, - -9945,-31222,-9945,-31222,-9945,-31222,-9945,-31222, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10307,-31104,-10307,-31104,-10307,-31104,-10307,-31104, - -10488,-31044,-10488,-31044,-10488,-31044,-10488,-31044, - -10668,-30982,-10668,-30982,-10668,-30982,-10668,-30982, - -10848,-30920,-10848,-30920,-10848,-30920,-10848,-30920, - -11028,-30856,-11028,-30856,-11028,-30856,-11028,-30856, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11386,-30726,-11386,-30726,-11386,-30726,-11386,-30726, - -11565,-30659,-11565,-30659,-11565,-30659,-11565,-30659, - -11743,-30591,-11743,-30591,-11743,-30591,-11743,-30591, - -11921,-30522,-11921,-30522,-11921,-30522,-11921,-30522, - -12098,-30452,-12098,-30452,-12098,-30452,-12098,-30452, - -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382, - -12452,-30310,-12452,-30310,-12452,-30310,-12452,-30310, - -12628,-30237,-12628,-30237,-12628,-30237,-12628,-30237, - -12804,-30163,-12804,-30163,-12804,-30163,-12804,-30163, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -13154,-30012,-13154,-30012,-13154,-30012,-13154,-30012, - -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935, - -13502,-29857,-13502,-29857,-13502,-29857,-13502,-29857, - -13675,-29778,-13675,-29778,-13675,-29778,-13675,-29778, - -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697, - -14021,-29616,-14021,-29616,-14021,-29616,-14021,-29616, - -14193,-29534,-14193,-29534,-14193,-29534,-14193,-29534, - -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451, - -14536,-29367,-14536,-29367,-14536,-29367,-14536,-29367, - -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282, - -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196, - -15046,-29109,-15046,-29109,-15046,-29109,-15046,-29109, - -15215,-29021,-15215,-29021,-15215,-29021,-15215,-29021, - -15384,-28932,-15384,-28932,-15384,-28932,-15384,-28932, - -15552,-28842,-15552,-28842,-15552,-28842,-15552,-28842, - -15719,-28751,-15719,-28751,-15719,-28751,-15719,-28751, - -15886,-28659,-15886,-28659,-15886,-28659,-15886,-28659, - -16053,-28566,-16053,-28566,-16053,-28566,-16053,-28566, - -16219,-28472,-16219,-28472,-16219,-28472,-16219,-28472 - }; -static int16_t twb1080[359*2*4] = {32764,-382,32764,-382,32764,-382,32764,-382, - 32758,-763,32758,-763,32758,-763,32758,-763, - 32747,-1144,32747,-1144,32747,-1144,32747,-1144, - 32731,-1525,32731,-1525,32731,-1525,32731,-1525, - 32711,-1906,32711,-1906,32711,-1906,32711,-1906, - 32687,-2286,32687,-2286,32687,-2286,32687,-2286, - 32658,-2666,32658,-2666,32658,-2666,32658,-2666, - 32625,-3046,32625,-3046,32625,-3046,32625,-3046, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32498,-4183,32498,-4183,32498,-4183,32498,-4183, - 32448,-4561,32448,-4561,32448,-4561,32448,-4561, - 32392,-4938,32392,-4938,32392,-4938,32392,-4938, - 32333,-5315,32333,-5315,32333,-5315,32333,-5315, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32200,-6066,32200,-6066,32200,-6066,32200,-6066, - 32128,-6440,32128,-6440,32128,-6440,32128,-6440, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31969,-7186,31969,-7186,31969,-7186,31969,-7186, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31793,-7928,31793,-7928,31793,-7928,31793,-7928, - 31699,-8297,31699,-8297,31699,-8297,31699,-8297, - 31600,-8665,31600,-8665,31600,-8665,31600,-8665, - 31497,-9032,31497,-9032,31497,-9032,31497,-9032, - 31390,-9398,31390,-9398,31390,-9398,31390,-9398, - 31278,-9763,31278,-9763,31278,-9763,31278,-9763, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 31043,-10488,31043,-10488,31043,-10488,31043,-10488, - 30919,-10848,30919,-10848,30919,-10848,30919,-10848, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30658,-11565,30658,-11565,30658,-11565,30658,-11565, - 30521,-11921,30521,-11921,30521,-11921,30521,-11921, - 30381,-12275,30381,-12275,30381,-12275,30381,-12275, - 30236,-12628,30236,-12628,30236,-12628,30236,-12628, - 30087,-12979,30087,-12979,30087,-12979,30087,-12979, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29777,-13675,29777,-13675,29777,-13675,29777,-13675, - 29615,-14021,29615,-14021,29615,-14021,29615,-14021, - 29450,-14365,29450,-14365,29450,-14365,29450,-14365, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 29108,-15046,29108,-15046,29108,-15046,29108,-15046, - 28931,-15384,28931,-15384,28931,-15384,28931,-15384, - 28750,-15719,28750,-15719,28750,-15719,28750,-15719, - 28565,-16053,28565,-16053,28565,-16053,28565,-16053, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28184,-16713,28184,-16713,28184,-16713,28184,-16713, - 27988,-17040,27988,-17040,27988,-17040,27988,-17040, - 27787,-17364,27787,-17364,27787,-17364,27787,-17364, - 27584,-17687,27584,-17687,27584,-17687,27584,-17687, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 27165,-18324,27165,-18324,27165,-18324,27165,-18324, - 26950,-18638,26950,-18638,26950,-18638,26950,-18638, - 26731,-18951,26731,-18951,26731,-18951,26731,-18951, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26283,-19568,26283,-19568,26283,-19568,26283,-19568, - 26053,-19872,26053,-19872,26053,-19872,26053,-19872, - 25820,-20174,25820,-20174,25820,-20174,25820,-20174, - 25584,-20473,25584,-20473,25584,-20473,25584,-20473, - 25344,-20769,25344,-20769,25344,-20769,25344,-20769, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24854,-21353,24854,-21353,24854,-21353,24854,-21353, - 24604,-21641,24604,-21641,24604,-21641,24604,-21641, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 24093,-22208,24093,-22208,24093,-22208,24093,-22208, - 23833,-22487,23833,-22487,23833,-22487,23833,-22487, - 23570,-22762,23570,-22762,23570,-22762,23570,-22762, - 23304,-23035,23304,-23035,23304,-23035,23304,-23035, - 23034,-23305,23034,-23305,23034,-23305,23034,-23305, - 22761,-23571,22761,-23571,22761,-23571,22761,-23571, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 22207,-24094,22207,-24094,22207,-24094,22207,-24094, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21640,-24605,21640,-24605,21640,-24605,21640,-24605, - 21352,-24855,21352,-24855,21352,-24855,21352,-24855, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20768,-25345,20768,-25345,20768,-25345,20768,-25345, - 20472,-25585,20472,-25585,20472,-25585,20472,-25585, - 20173,-25821,20173,-25821,20173,-25821,20173,-25821, - 19871,-26054,19871,-26054,19871,-26054,19871,-26054, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18950,-26732,18950,-26732,18950,-26732,18950,-26732, - 18637,-26951,18637,-26951,18637,-26951,18637,-26951, - 18323,-27166,18323,-27166,18323,-27166,18323,-27166, - 18005,-27377,18005,-27377,18005,-27377,18005,-27377, - 17686,-27585,17686,-27585,17686,-27585,17686,-27585, - 17363,-27788,17363,-27788,17363,-27788,17363,-27788, - 17039,-27989,17039,-27989,17039,-27989,17039,-27989, - 16712,-28185,16712,-28185,16712,-28185,16712,-28185, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16052,-28566,16052,-28566,16052,-28566,16052,-28566, - 15718,-28751,15718,-28751,15718,-28751,15718,-28751, - 15383,-28932,15383,-28932,15383,-28932,15383,-28932, - 15045,-29109,15045,-29109,15045,-29109,15045,-29109, - 14705,-29282,14705,-29282,14705,-29282,14705,-29282, - 14364,-29451,14364,-29451,14364,-29451,14364,-29451, - 14020,-29616,14020,-29616,14020,-29616,14020,-29616, - 13674,-29778,13674,-29778,13674,-29778,13674,-29778, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12627,-30237,12627,-30237,12627,-30237,12627,-30237, - 12274,-30382,12274,-30382,12274,-30382,12274,-30382, - 11920,-30522,11920,-30522,11920,-30522,11920,-30522, - 11564,-30659,11564,-30659,11564,-30659,11564,-30659, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10847,-30920,10847,-30920,10847,-30920,10847,-30920, - 10487,-31044,10487,-31044,10487,-31044,10487,-31044, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9762,-31279,9762,-31279,9762,-31279,9762,-31279, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 9031,-31498,9031,-31498,9031,-31498,9031,-31498, - 8664,-31601,8664,-31601,8664,-31601,8664,-31601, - 8296,-31700,8296,-31700,8296,-31700,8296,-31700, - 7927,-31794,7927,-31794,7927,-31794,7927,-31794, - 7556,-31884,7556,-31884,7556,-31884,7556,-31884, - 7185,-31970,7185,-31970,7185,-31970,7185,-31970, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6439,-32129,6439,-32129,6439,-32129,6439,-32129, - 6065,-32201,6065,-32201,6065,-32201,6065,-32201, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5314,-32334,5314,-32334,5314,-32334,5314,-32334, - 4937,-32393,4937,-32393,4937,-32393,4937,-32393, - 4560,-32449,4560,-32449,4560,-32449,4560,-32449, - 4182,-32499,4182,-32499,4182,-32499,4182,-32499, - 3804,-32546,3804,-32546,3804,-32546,3804,-32546, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 3045,-32626,3045,-32626,3045,-32626,3045,-32626, - 2665,-32659,2665,-32659,2665,-32659,2665,-32659, - 2285,-32688,2285,-32688,2285,-32688,2285,-32688, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 1524,-32732,1524,-32732,1524,-32732,1524,-32732, - 1143,-32748,1143,-32748,1143,-32748,1143,-32748, - 762,-32759,762,-32759,762,-32759,762,-32759, - 381,-32765,381,-32765,381,-32765,381,-32765, - 0,-32767,0,-32767,0,-32767,0,-32767, - -382,-32765,-382,-32765,-382,-32765,-382,-32765, - -763,-32759,-763,-32759,-763,-32759,-763,-32759, - -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748, - -1525,-32732,-1525,-32732,-1525,-32732,-1525,-32732, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -2286,-32688,-2286,-32688,-2286,-32688,-2286,-32688, - -2666,-32659,-2666,-32659,-2666,-32659,-2666,-32659, - -3046,-32626,-3046,-32626,-3046,-32626,-3046,-32626, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546, - -4183,-32499,-4183,-32499,-4183,-32499,-4183,-32499, - -4561,-32449,-4561,-32449,-4561,-32449,-4561,-32449, - -4938,-32393,-4938,-32393,-4938,-32393,-4938,-32393, - -5315,-32334,-5315,-32334,-5315,-32334,-5315,-32334, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6066,-32201,-6066,-32201,-6066,-32201,-6066,-32201, - -6440,-32129,-6440,-32129,-6440,-32129,-6440,-32129, - -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051, - -7186,-31970,-7186,-31970,-7186,-31970,-7186,-31970, - -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884, - -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794, - -8297,-31700,-8297,-31700,-8297,-31700,-8297,-31700, - -8665,-31601,-8665,-31601,-8665,-31601,-8665,-31601, - -9032,-31498,-9032,-31498,-9032,-31498,-9032,-31498, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -9763,-31279,-9763,-31279,-9763,-31279,-9763,-31279, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10488,-31044,-10488,-31044,-10488,-31044,-10488,-31044, - -10848,-30920,-10848,-30920,-10848,-30920,-10848,-30920, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11565,-30659,-11565,-30659,-11565,-30659,-11565,-30659, - -11921,-30522,-11921,-30522,-11921,-30522,-11921,-30522, - -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382, - -12628,-30237,-12628,-30237,-12628,-30237,-12628,-30237, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935, - -13675,-29778,-13675,-29778,-13675,-29778,-13675,-29778, - -14021,-29616,-14021,-29616,-14021,-29616,-14021,-29616, - -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451, - -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282, - -15046,-29109,-15046,-29109,-15046,-29109,-15046,-29109, - -15384,-28932,-15384,-28932,-15384,-28932,-15384,-28932, - -15719,-28751,-15719,-28751,-15719,-28751,-15719,-28751, - -16053,-28566,-16053,-28566,-16053,-28566,-16053,-28566, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -16713,-28185,-16713,-28185,-16713,-28185,-16713,-28185, - -17040,-27989,-17040,-27989,-17040,-27989,-17040,-27989, - -17364,-27788,-17364,-27788,-17364,-27788,-17364,-27788, - -17687,-27585,-17687,-27585,-17687,-27585,-17687,-27585, - -18006,-27377,-18006,-27377,-18006,-27377,-18006,-27377, - -18324,-27166,-18324,-27166,-18324,-27166,-18324,-27166, - -18638,-26951,-18638,-26951,-18638,-26951,-18638,-26951, - -18951,-26732,-18951,-26732,-18951,-26732,-18951,-26732, - -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510, - -19568,-26284,-19568,-26284,-19568,-26284,-19568,-26284, - -19872,-26054,-19872,-26054,-19872,-26054,-19872,-26054, - -20174,-25821,-20174,-25821,-20174,-25821,-20174,-25821, - -20473,-25585,-20473,-25585,-20473,-25585,-20473,-25585, - -20769,-25345,-20769,-25345,-20769,-25345,-20769,-25345, - -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101, - -21353,-24855,-21353,-24855,-21353,-24855,-21353,-24855, - -21641,-24605,-21641,-24605,-21641,-24605,-21641,-24605, - -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351, - -22208,-24094,-22208,-24094,-22208,-24094,-22208,-24094, - -22487,-23834,-22487,-23834,-22487,-23834,-22487,-23834, - -22762,-23571,-22762,-23571,-22762,-23571,-22762,-23571, - -23035,-23305,-23035,-23305,-23035,-23305,-23035,-23305, - -23305,-23035,-23305,-23035,-23305,-23035,-23305,-23035, - -23571,-22762,-23571,-22762,-23571,-22762,-23571,-22762, - -23834,-22487,-23834,-22487,-23834,-22487,-23834,-22487, - -24094,-22208,-24094,-22208,-24094,-22208,-24094,-22208, - -24351,-21926,-24351,-21926,-24351,-21926,-24351,-21926, - -24605,-21641,-24605,-21641,-24605,-21641,-24605,-21641, - -24855,-21353,-24855,-21353,-24855,-21353,-24855,-21353, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25345,-20769,-25345,-20769,-25345,-20769,-25345,-20769, - -25585,-20473,-25585,-20473,-25585,-20473,-25585,-20473, - -25821,-20174,-25821,-20174,-25821,-20174,-25821,-20174, - -26054,-19872,-26054,-19872,-26054,-19872,-26054,-19872, - -26284,-19568,-26284,-19568,-26284,-19568,-26284,-19568, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -26732,-18951,-26732,-18951,-26732,-18951,-26732,-18951, - -26951,-18638,-26951,-18638,-26951,-18638,-26951,-18638, - -27166,-18324,-27166,-18324,-27166,-18324,-27166,-18324, - -27377,-18006,-27377,-18006,-27377,-18006,-27377,-18006, - -27585,-17687,-27585,-17687,-27585,-17687,-27585,-17687, - -27788,-17364,-27788,-17364,-27788,-17364,-27788,-17364, - -27989,-17040,-27989,-17040,-27989,-17040,-27989,-17040, - -28185,-16713,-28185,-16713,-28185,-16713,-28185,-16713, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28566,-16053,-28566,-16053,-28566,-16053,-28566,-16053, - -28751,-15719,-28751,-15719,-28751,-15719,-28751,-15719, - -28932,-15384,-28932,-15384,-28932,-15384,-28932,-15384, - -29109,-15046,-29109,-15046,-29109,-15046,-29109,-15046, - -29282,-14706,-29282,-14706,-29282,-14706,-29282,-14706, - -29451,-14365,-29451,-14365,-29451,-14365,-29451,-14365, - -29616,-14021,-29616,-14021,-29616,-14021,-29616,-14021, - -29778,-13675,-29778,-13675,-29778,-13675,-29778,-13675, - -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328, - -30088,-12979,-30088,-12979,-30088,-12979,-30088,-12979, - -30237,-12628,-30237,-12628,-30237,-12628,-30237,-12628, - -30382,-12275,-30382,-12275,-30382,-12275,-30382,-12275, - -30522,-11921,-30522,-11921,-30522,-11921,-30522,-11921, - -30659,-11565,-30659,-11565,-30659,-11565,-30659,-11565, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -30920,-10848,-30920,-10848,-30920,-10848,-30920,-10848, - -31044,-10488,-31044,-10488,-31044,-10488,-31044,-10488, - -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126, - -31279,-9763,-31279,-9763,-31279,-9763,-31279,-9763, - -31391,-9398,-31391,-9398,-31391,-9398,-31391,-9398, - -31498,-9032,-31498,-9032,-31498,-9032,-31498,-9032, - -31601,-8665,-31601,-8665,-31601,-8665,-31601,-8665, - -31700,-8297,-31700,-8297,-31700,-8297,-31700,-8297, - -31794,-7928,-31794,-7928,-31794,-7928,-31794,-7928, - -31884,-7557,-31884,-7557,-31884,-7557,-31884,-7557, - -31970,-7186,-31970,-7186,-31970,-7186,-31970,-7186, - -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813, - -32129,-6440,-32129,-6440,-32129,-6440,-32129,-6440, - -32201,-6066,-32201,-6066,-32201,-6066,-32201,-6066, - -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690, - -32334,-5315,-32334,-5315,-32334,-5315,-32334,-5315, - -32393,-4938,-32393,-4938,-32393,-4938,-32393,-4938, - -32449,-4561,-32449,-4561,-32449,-4561,-32449,-4561, - -32499,-4183,-32499,-4183,-32499,-4183,-32499,-4183, - -32546,-3805,-32546,-3805,-32546,-3805,-32546,-3805, - -32588,-3426,-32588,-3426,-32588,-3426,-32588,-3426, - -32626,-3046,-32626,-3046,-32626,-3046,-32626,-3046, - -32659,-2666,-32659,-2666,-32659,-2666,-32659,-2666, - -32688,-2286,-32688,-2286,-32688,-2286,-32688,-2286, - -32712,-1906,-32712,-1906,-32712,-1906,-32712,-1906, - -32732,-1525,-32732,-1525,-32732,-1525,-32732,-1525, - -32748,-1144,-32748,-1144,-32748,-1144,-32748,-1144, - -32759,-763,-32759,-763,-32759,-763,-32759,-763, - -32765,-382,-32765,-382,-32765,-382,-32765,-382, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32765,381,-32765,381,-32765,381,-32765,381, - -32759,762,-32759,762,-32759,762,-32759,762, - -32748,1143,-32748,1143,-32748,1143,-32748,1143, - -32732,1524,-32732,1524,-32732,1524,-32732,1524, - -32712,1905,-32712,1905,-32712,1905,-32712,1905, - -32688,2285,-32688,2285,-32688,2285,-32688,2285, - -32659,2665,-32659,2665,-32659,2665,-32659,2665, - -32626,3045,-32626,3045,-32626,3045,-32626,3045, - -32588,3425,-32588,3425,-32588,3425,-32588,3425, - -32546,3804,-32546,3804,-32546,3804,-32546,3804, - -32499,4182,-32499,4182,-32499,4182,-32499,4182, - -32449,4560,-32449,4560,-32449,4560,-32449,4560, - -32393,4937,-32393,4937,-32393,4937,-32393,4937, - -32334,5314,-32334,5314,-32334,5314,-32334,5314, - -32270,5689,-32270,5689,-32270,5689,-32270,5689, - -32201,6065,-32201,6065,-32201,6065,-32201,6065, - -32129,6439,-32129,6439,-32129,6439,-32129,6439, - -32051,6812,-32051,6812,-32051,6812,-32051,6812, - -31970,7185,-31970,7185,-31970,7185,-31970,7185, - -31884,7556,-31884,7556,-31884,7556,-31884,7556, - -31794,7927,-31794,7927,-31794,7927,-31794,7927, - -31700,8296,-31700,8296,-31700,8296,-31700,8296, - -31601,8664,-31601,8664,-31601,8664,-31601,8664, - -31498,9031,-31498,9031,-31498,9031,-31498,9031, - -31391,9397,-31391,9397,-31391,9397,-31391,9397, - -31279,9762,-31279,9762,-31279,9762,-31279,9762, - -31164,10125,-31164,10125,-31164,10125,-31164,10125, - -31044,10487,-31044,10487,-31044,10487,-31044,10487, - -30920,10847,-30920,10847,-30920,10847,-30920,10847, - -30791,11206,-30791,11206,-30791,11206,-30791,11206, - -30659,11564,-30659,11564,-30659,11564,-30659,11564, - -30522,11920,-30522,11920,-30522,11920,-30522,11920, - -30382,12274,-30382,12274,-30382,12274,-30382,12274, - -30237,12627,-30237,12627,-30237,12627,-30237,12627, - -30088,12978,-30088,12978,-30088,12978,-30088,12978, - -29935,13327,-29935,13327,-29935,13327,-29935,13327, - -29778,13674,-29778,13674,-29778,13674,-29778,13674, - -29616,14020,-29616,14020,-29616,14020,-29616,14020, - -29451,14364,-29451,14364,-29451,14364,-29451,14364, - -29282,14705,-29282,14705,-29282,14705,-29282,14705, - -29109,15045,-29109,15045,-29109,15045,-29109,15045, - -28932,15383,-28932,15383,-28932,15383,-28932,15383, - -28751,15718,-28751,15718,-28751,15718,-28751,15718, - -28566,16052,-28566,16052,-28566,16052,-28566,16052, - -28378,16383,-28378,16383,-28378,16383,-28378,16383, - -28185,16712,-28185,16712,-28185,16712,-28185,16712, - -27989,17039,-27989,17039,-27989,17039,-27989,17039, - -27788,17363,-27788,17363,-27788,17363,-27788,17363, - -27585,17686,-27585,17686,-27585,17686,-27585,17686, - -27377,18005,-27377,18005,-27377,18005,-27377,18005, - -27166,18323,-27166,18323,-27166,18323,-27166,18323, - -26951,18637,-26951,18637,-26951,18637,-26951,18637, - -26732,18950,-26732,18950,-26732,18950,-26732,18950, - -26510,19259,-26510,19259,-26510,19259,-26510,19259, - -26284,19567,-26284,19567,-26284,19567,-26284,19567, - -26054,19871,-26054,19871,-26054,19871,-26054,19871, - -25821,20173,-25821,20173,-25821,20173,-25821,20173, - -25585,20472,-25585,20472,-25585,20472,-25585,20472, - -25345,20768,-25345,20768,-25345,20768,-25345,20768, - -25101,21062,-25101,21062,-25101,21062,-25101,21062, - -24855,21352,-24855,21352,-24855,21352,-24855,21352, - -24605,21640,-24605,21640,-24605,21640,-24605,21640, - -24351,21925,-24351,21925,-24351,21925,-24351,21925, - -24094,22207,-24094,22207,-24094,22207,-24094,22207, - -23834,22486,-23834,22486,-23834,22486,-23834,22486, - -23571,22761,-23571,22761,-23571,22761,-23571,22761, - -23305,23034,-23305,23034,-23305,23034,-23305,23034, - -23035,23304,-23035,23304,-23035,23304,-23035,23304, - -22762,23570,-22762,23570,-22762,23570,-22762,23570, - -22487,23833,-22487,23833,-22487,23833,-22487,23833, - -22208,24093,-22208,24093,-22208,24093,-22208,24093, - -21926,24350,-21926,24350,-21926,24350,-21926,24350, - -21641,24604,-21641,24604,-21641,24604,-21641,24604, - -21353,24854,-21353,24854,-21353,24854,-21353,24854, - -21063,25100,-21063,25100,-21063,25100,-21063,25100, - -20769,25344,-20769,25344,-20769,25344,-20769,25344, - -20473,25584,-20473,25584,-20473,25584,-20473,25584, - -20174,25820,-20174,25820,-20174,25820,-20174,25820, - -19872,26053,-19872,26053,-19872,26053,-19872,26053, - -19568,26283,-19568,26283,-19568,26283,-19568,26283, - -19260,26509,-19260,26509,-19260,26509,-19260,26509, - -18951,26731,-18951,26731,-18951,26731,-18951,26731, - -18638,26950,-18638,26950,-18638,26950,-18638,26950, - -18324,27165,-18324,27165,-18324,27165,-18324,27165, - -18006,27376,-18006,27376,-18006,27376,-18006,27376, - -17687,27584,-17687,27584,-17687,27584,-17687,27584, - -17364,27787,-17364,27787,-17364,27787,-17364,27787, - -17040,27988,-17040,27988,-17040,27988,-17040,27988, - -16713,28184,-16713,28184,-16713,28184,-16713,28184 - }; +static int16_t twa1080[359*2*4]; +static int16_t twb1080[359*2*4]; void dft1080(int16_t *x,int16_t *y,unsigned char scale_flag) // 360 x 3 { @@ -16667,906 +8382,9 @@ void dft1080(int16_t *x,int16_t *y,unsigned char scale_flag) // 360 x 3 }; -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:287)/1152)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:287)/1152)); -twc = floor(32767*exp(-sqrt(-1)*2*pi*3*(1:287)/1152)); -twa2 = zeros(1,2*287); -twb2 = zeros(1,2*287); -twc2 = zeros(1,2*287); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -twc2(1:2:end) = real(twc); -twc2(2:2:end) = imag(twc); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa1152[287*2*4] = {"); -for i=1:2:(2*286) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"\nstatic int16_t twb1152[287*2*4] = {"); -for i=1:2:(2*286) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fprintf(fd,"\nstatic int16_t twc1152[287*2*4] = {"); -for i=1:2:(2*286) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1)); -fclose(fd); -*/ -static int16_t twa1152[287*2*4] = {32766,-179,32766,-179,32766,-179,32766,-179, - 32765,-358,32765,-358,32765,-358,32765,-358, - 32762,-537,32762,-537,32762,-537,32762,-537, - 32759,-715,32759,-715,32759,-715,32759,-715, - 32754,-894,32754,-894,32754,-894,32754,-894, - 32749,-1073,32749,-1073,32749,-1073,32749,-1073, - 32743,-1251,32743,-1251,32743,-1251,32743,-1251, - 32735,-1430,32735,-1430,32735,-1430,32735,-1430, - 32727,-1608,32727,-1608,32727,-1608,32727,-1608, - 32718,-1787,32718,-1787,32718,-1787,32718,-1787, - 32708,-1965,32708,-1965,32708,-1965,32708,-1965, - 32696,-2144,32696,-2144,32696,-2144,32696,-2144, - 32684,-2322,32684,-2322,32684,-2322,32684,-2322, - 32671,-2500,32671,-2500,32671,-2500,32671,-2500, - 32657,-2678,32657,-2678,32657,-2678,32657,-2678, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32626,-3034,32626,-3034,32626,-3034,32626,-3034, - 32609,-3212,32609,-3212,32609,-3212,32609,-3212, - 32591,-3390,32591,-3390,32591,-3390,32591,-3390, - 32572,-3568,32572,-3568,32572,-3568,32572,-3568, - 32552,-3745,32552,-3745,32552,-3745,32552,-3745, - 32531,-3923,32531,-3923,32531,-3923,32531,-3923, - 32509,-4100,32509,-4100,32509,-4100,32509,-4100, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32462,-4455,32462,-4455,32462,-4455,32462,-4455, - 32438,-4632,32438,-4632,32438,-4632,32438,-4632, - 32412,-4808,32412,-4808,32412,-4808,32412,-4808, - 32385,-4985,32385,-4985,32385,-4985,32385,-4985, - 32357,-5162,32357,-5162,32357,-5162,32357,-5162, - 32329,-5338,32329,-5338,32329,-5338,32329,-5338, - 32299,-5514,32299,-5514,32299,-5514,32299,-5514, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32237,-5866,32237,-5866,32237,-5866,32237,-5866, - 32205,-6042,32205,-6042,32205,-6042,32205,-6042, - 32171,-6218,32171,-6218,32171,-6218,32171,-6218, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 32102,-6568,32102,-6568,32102,-6568,32102,-6568, - 32065,-6743,32065,-6743,32065,-6743,32065,-6743, - 32028,-6918,32028,-6918,32028,-6918,32028,-6918, - 31990,-7093,31990,-7093,31990,-7093,31990,-7093, - 31951,-7267,31951,-7267,31951,-7267,31951,-7267, - 31911,-7441,31911,-7441,31911,-7441,31911,-7441, - 31869,-7615,31869,-7615,31869,-7615,31869,-7615, - 31827,-7789,31827,-7789,31827,-7789,31827,-7789, - 31785,-7962,31785,-7962,31785,-7962,31785,-7962, - 31741,-8135,31741,-8135,31741,-8135,31741,-8135, - 31696,-8308,31696,-8308,31696,-8308,31696,-8308, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31603,-8654,31603,-8654,31603,-8654,31603,-8654, - 31556,-8826,31556,-8826,31556,-8826,31556,-8826, - 31507,-8998,31507,-8998,31507,-8998,31507,-8998, - 31457,-9170,31457,-9170,31457,-9170,31457,-9170, - 31407,-9341,31407,-9341,31407,-9341,31407,-9341, - 31356,-9512,31356,-9512,31356,-9512,31356,-9512, - 31303,-9683,31303,-9683,31303,-9683,31303,-9683, - 31250,-9854,31250,-9854,31250,-9854,31250,-9854, - 31196,-10024,31196,-10024,31196,-10024,31196,-10024, - 31141,-10194,31141,-10194,31141,-10194,31141,-10194, - 31085,-10364,31085,-10364,31085,-10364,31085,-10364, - 31028,-10533,31028,-10533,31028,-10533,31028,-10533, - 30970,-10702,30970,-10702,30970,-10702,30970,-10702, - 30911,-10871,30911,-10871,30911,-10871,30911,-10871, - 30851,-11039,30851,-11039,30851,-11039,30851,-11039, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30729,-11375,30729,-11375,30729,-11375,30729,-11375, - 30666,-11543,30666,-11543,30666,-11543,30666,-11543, - 30603,-11710,30603,-11710,30603,-11710,30603,-11710, - 30539,-11877,30539,-11877,30539,-11877,30539,-11877, - 30473,-12043,30473,-12043,30473,-12043,30473,-12043, - 30407,-12209,30407,-12209,30407,-12209,30407,-12209, - 30340,-12375,30340,-12375,30340,-12375,30340,-12375, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30203,-12705,30203,-12705,30203,-12705,30203,-12705, - 30134,-12869,30134,-12869,30134,-12869,30134,-12869, - 30063,-13034,30063,-13034,30063,-13034,30063,-13034, - 29992,-13197,29992,-13197,29992,-13197,29992,-13197, - 29919,-13361,29919,-13361,29919,-13361,29919,-13361, - 29846,-13524,29846,-13524,29846,-13524,29846,-13524, - 29772,-13686,29772,-13686,29772,-13686,29772,-13686, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29621,-14010,29621,-14010,29621,-14010,29621,-14010, - 29544,-14172,29544,-14172,29544,-14172,29544,-14172, - 29466,-14332,29466,-14332,29466,-14332,29466,-14332, - 29387,-14493,29387,-14493,29387,-14493,29387,-14493, - 29308,-14653,29308,-14653,29308,-14653,29308,-14653, - 29227,-14813,29227,-14813,29227,-14813,29227,-14813, - 29146,-14972,29146,-14972,29146,-14972,29146,-14972, - 29064,-15131,29064,-15131,29064,-15131,29064,-15131, - 28981,-15289,28981,-15289,28981,-15289,28981,-15289, - 28897,-15447,28897,-15447,28897,-15447,28897,-15447, - 28813,-15604,28813,-15604,28813,-15604,28813,-15604, - 28727,-15761,28727,-15761,28727,-15761,28727,-15761, - 28641,-15918,28641,-15918,28641,-15918,28641,-15918, - 28554,-16073,28554,-16073,28554,-16073,28554,-16073, - 28465,-16229,28465,-16229,28465,-16229,28465,-16229, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28287,-16539,28287,-16539,28287,-16539,28287,-16539, - 28196,-16693,28196,-16693,28196,-16693,28196,-16693, - 28105,-16846,28105,-16846,28105,-16846,28105,-16846, - 28012,-16999,28012,-16999,28012,-16999,28012,-16999, - 27919,-17152,27919,-17152,27919,-17152,27919,-17152, - 27825,-17304,27825,-17304,27825,-17304,27825,-17304, - 27731,-17455,27731,-17455,27731,-17455,27731,-17455, - 27635,-17606,27635,-17606,27635,-17606,27635,-17606, - 27538,-17757,27538,-17757,27538,-17757,27538,-17757, - 27441,-17907,27441,-17907,27441,-17907,27441,-17907, - 27343,-18056,27343,-18056,27343,-18056,27343,-18056, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 27145,-18353,27145,-18353,27145,-18353,27145,-18353, - 27044,-18501,27044,-18501,27044,-18501,27044,-18501, - 26943,-18648,26943,-18648,26943,-18648,26943,-18648, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26738,-18941,26738,-18941,26738,-18941,26738,-18941, - 26634,-19087,26634,-19087,26634,-19087,26634,-19087, - 26530,-19232,26530,-19232,26530,-19232,26530,-19232, - 26424,-19376,26424,-19376,26424,-19376,26424,-19376, - 26318,-19520,26318,-19520,26318,-19520,26318,-19520, - 26211,-19663,26211,-19663,26211,-19663,26211,-19663, - 26104,-19806,26104,-19806,26104,-19806,26104,-19806, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25886,-20089,25886,-20089,25886,-20089,25886,-20089, - 25776,-20230,25776,-20230,25776,-20230,25776,-20230, - 25665,-20370,25665,-20370,25665,-20370,25665,-20370, - 25554,-20510,25554,-20510,25554,-20510,25554,-20510, - 25442,-20649,25442,-20649,25442,-20649,25442,-20649, - 25329,-20788,25329,-20788,25329,-20788,25329,-20788, - 25215,-20926,25215,-20926,25215,-20926,25215,-20926, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24985,-21199,24985,-21199,24985,-21199,24985,-21199, - 24869,-21335,24869,-21335,24869,-21335,24869,-21335, - 24753,-21471,24753,-21471,24753,-21471,24753,-21471, - 24635,-21605,24635,-21605,24635,-21605,24635,-21605, - 24517,-21739,24517,-21739,24517,-21739,24517,-21739, - 24398,-21873,24398,-21873,24398,-21873,24398,-21873, - 24278,-22005,24278,-22005,24278,-22005,24278,-22005, - 24158,-22138,24158,-22138,24158,-22138,24158,-22138, - 24037,-22269,24037,-22269,24037,-22269,24037,-22269, - 23915,-22400,23915,-22400,23915,-22400,23915,-22400, - 23792,-22530,23792,-22530,23792,-22530,23792,-22530, - 23669,-22659,23669,-22659,23669,-22659,23669,-22659, - 23545,-22788,23545,-22788,23545,-22788,23545,-22788, - 23421,-22916,23421,-22916,23421,-22916,23421,-22916, - 23295,-23044,23295,-23044,23295,-23044,23295,-23044, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 23043,-23296,23043,-23296,23043,-23296,23043,-23296, - 22915,-23422,22915,-23422,22915,-23422,22915,-23422, - 22787,-23546,22787,-23546,22787,-23546,22787,-23546, - 22658,-23670,22658,-23670,22658,-23670,22658,-23670, - 22529,-23793,22529,-23793,22529,-23793,22529,-23793, - 22399,-23916,22399,-23916,22399,-23916,22399,-23916, - 22268,-24038,22268,-24038,22268,-24038,22268,-24038, - 22137,-24159,22137,-24159,22137,-24159,22137,-24159, - 22004,-24279,22004,-24279,22004,-24279,22004,-24279, - 21872,-24399,21872,-24399,21872,-24399,21872,-24399, - 21738,-24518,21738,-24518,21738,-24518,21738,-24518, - 21604,-24636,21604,-24636,21604,-24636,21604,-24636, - 21470,-24754,21470,-24754,21470,-24754,21470,-24754, - 21334,-24870,21334,-24870,21334,-24870,21334,-24870, - 21198,-24986,21198,-24986,21198,-24986,21198,-24986, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20925,-25216,20925,-25216,20925,-25216,20925,-25216, - 20787,-25330,20787,-25330,20787,-25330,20787,-25330, - 20648,-25443,20648,-25443,20648,-25443,20648,-25443, - 20509,-25555,20509,-25555,20509,-25555,20509,-25555, - 20369,-25666,20369,-25666,20369,-25666,20369,-25666, - 20229,-25777,20229,-25777,20229,-25777,20229,-25777, - 20088,-25887,20088,-25887,20088,-25887,20088,-25887, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19805,-26105,19805,-26105,19805,-26105,19805,-26105, - 19662,-26212,19662,-26212,19662,-26212,19662,-26212, - 19519,-26319,19519,-26319,19519,-26319,19519,-26319, - 19375,-26425,19375,-26425,19375,-26425,19375,-26425, - 19231,-26531,19231,-26531,19231,-26531,19231,-26531, - 19086,-26635,19086,-26635,19086,-26635,19086,-26635, - 18940,-26739,18940,-26739,18940,-26739,18940,-26739, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18647,-26944,18647,-26944,18647,-26944,18647,-26944, - 18500,-27045,18500,-27045,18500,-27045,18500,-27045, - 18352,-27146,18352,-27146,18352,-27146,18352,-27146, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 18055,-27344,18055,-27344,18055,-27344,18055,-27344, - 17906,-27442,17906,-27442,17906,-27442,17906,-27442, - 17756,-27539,17756,-27539,17756,-27539,17756,-27539, - 17605,-27636,17605,-27636,17605,-27636,17605,-27636, - 17454,-27732,17454,-27732,17454,-27732,17454,-27732, - 17303,-27826,17303,-27826,17303,-27826,17303,-27826, - 17151,-27920,17151,-27920,17151,-27920,17151,-27920, - 16998,-28013,16998,-28013,16998,-28013,16998,-28013, - 16845,-28106,16845,-28106,16845,-28106,16845,-28106, - 16692,-28197,16692,-28197,16692,-28197,16692,-28197, - 16538,-28288,16538,-28288,16538,-28288,16538,-28288, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16228,-28466,16228,-28466,16228,-28466,16228,-28466, - 16072,-28555,16072,-28555,16072,-28555,16072,-28555, - 15917,-28642,15917,-28642,15917,-28642,15917,-28642, - 15760,-28728,15760,-28728,15760,-28728,15760,-28728, - 15603,-28814,15603,-28814,15603,-28814,15603,-28814, - 15446,-28898,15446,-28898,15446,-28898,15446,-28898, - 15288,-28982,15288,-28982,15288,-28982,15288,-28982, - 15130,-29065,15130,-29065,15130,-29065,15130,-29065, - 14971,-29147,14971,-29147,14971,-29147,14971,-29147, - 14812,-29228,14812,-29228,14812,-29228,14812,-29228, - 14652,-29309,14652,-29309,14652,-29309,14652,-29309, - 14492,-29388,14492,-29388,14492,-29388,14492,-29388, - 14331,-29467,14331,-29467,14331,-29467,14331,-29467, - 14171,-29545,14171,-29545,14171,-29545,14171,-29545, - 14009,-29622,14009,-29622,14009,-29622,14009,-29622, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 13685,-29773,13685,-29773,13685,-29773,13685,-29773, - 13523,-29847,13523,-29847,13523,-29847,13523,-29847, - 13360,-29920,13360,-29920,13360,-29920,13360,-29920, - 13196,-29993,13196,-29993,13196,-29993,13196,-29993, - 13033,-30064,13033,-30064,13033,-30064,13033,-30064, - 12868,-30135,12868,-30135,12868,-30135,12868,-30135, - 12704,-30204,12704,-30204,12704,-30204,12704,-30204, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12374,-30341,12374,-30341,12374,-30341,12374,-30341, - 12208,-30408,12208,-30408,12208,-30408,12208,-30408, - 12042,-30474,12042,-30474,12042,-30474,12042,-30474, - 11876,-30540,11876,-30540,11876,-30540,11876,-30540, - 11709,-30604,11709,-30604,11709,-30604,11709,-30604, - 11542,-30667,11542,-30667,11542,-30667,11542,-30667, - 11374,-30730,11374,-30730,11374,-30730,11374,-30730, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 11038,-30852,11038,-30852,11038,-30852,11038,-30852, - 10870,-30912,10870,-30912,10870,-30912,10870,-30912, - 10701,-30971,10701,-30971,10701,-30971,10701,-30971, - 10532,-31029,10532,-31029,10532,-31029,10532,-31029, - 10363,-31086,10363,-31086,10363,-31086,10363,-31086, - 10193,-31142,10193,-31142,10193,-31142,10193,-31142, - 10023,-31197,10023,-31197,10023,-31197,10023,-31197, - 9853,-31251,9853,-31251,9853,-31251,9853,-31251, - 9682,-31304,9682,-31304,9682,-31304,9682,-31304, - 9511,-31357,9511,-31357,9511,-31357,9511,-31357, - 9340,-31408,9340,-31408,9340,-31408,9340,-31408, - 9169,-31458,9169,-31458,9169,-31458,9169,-31458, - 8997,-31508,8997,-31508,8997,-31508,8997,-31508, - 8825,-31557,8825,-31557,8825,-31557,8825,-31557, - 8653,-31604,8653,-31604,8653,-31604,8653,-31604, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8307,-31697,8307,-31697,8307,-31697,8307,-31697, - 8134,-31742,8134,-31742,8134,-31742,8134,-31742, - 7961,-31786,7961,-31786,7961,-31786,7961,-31786, - 7788,-31828,7788,-31828,7788,-31828,7788,-31828, - 7614,-31870,7614,-31870,7614,-31870,7614,-31870, - 7440,-31912,7440,-31912,7440,-31912,7440,-31912, - 7266,-31952,7266,-31952,7266,-31952,7266,-31952, - 7092,-31991,7092,-31991,7092,-31991,7092,-31991, - 6917,-32029,6917,-32029,6917,-32029,6917,-32029, - 6742,-32066,6742,-32066,6742,-32066,6742,-32066, - 6567,-32103,6567,-32103,6567,-32103,6567,-32103, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 6217,-32172,6217,-32172,6217,-32172,6217,-32172, - 6041,-32206,6041,-32206,6041,-32206,6041,-32206, - 5865,-32238,5865,-32238,5865,-32238,5865,-32238, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5513,-32300,5513,-32300,5513,-32300,5513,-32300, - 5337,-32330,5337,-32330,5337,-32330,5337,-32330, - 5161,-32358,5161,-32358,5161,-32358,5161,-32358, - 4984,-32386,4984,-32386,4984,-32386,4984,-32386, - 4807,-32413,4807,-32413,4807,-32413,4807,-32413, - 4631,-32439,4631,-32439,4631,-32439,4631,-32439, - 4454,-32463,4454,-32463,4454,-32463,4454,-32463, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 4099,-32510,4099,-32510,4099,-32510,4099,-32510, - 3922,-32532,3922,-32532,3922,-32532,3922,-32532, - 3744,-32553,3744,-32553,3744,-32553,3744,-32553, - 3567,-32573,3567,-32573,3567,-32573,3567,-32573, - 3389,-32592,3389,-32592,3389,-32592,3389,-32592, - 3211,-32610,3211,-32610,3211,-32610,3211,-32610, - 3033,-32627,3033,-32627,3033,-32627,3033,-32627, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 2677,-32658,2677,-32658,2677,-32658,2677,-32658, - 2499,-32672,2499,-32672,2499,-32672,2499,-32672, - 2321,-32685,2321,-32685,2321,-32685,2321,-32685, - 2143,-32697,2143,-32697,2143,-32697,2143,-32697, - 1964,-32709,1964,-32709,1964,-32709,1964,-32709, - 1786,-32719,1786,-32719,1786,-32719,1786,-32719, - 1607,-32728,1607,-32728,1607,-32728,1607,-32728, - 1429,-32736,1429,-32736,1429,-32736,1429,-32736, - 1250,-32744,1250,-32744,1250,-32744,1250,-32744, - 1072,-32750,1072,-32750,1072,-32750,1072,-32750, - 893,-32755,893,-32755,893,-32755,893,-32755, - 714,-32760,714,-32760,714,-32760,714,-32760, - 536,-32763,536,-32763,536,-32763,536,-32763, - 357,-32766,357,-32766,357,-32766,357,-32766, - 178,-32767,178,-32767,178,-32767,178,-32767 - }; - -static int16_t twb1152[287*2*4] = {32765,-358,32765,-358,32765,-358,32765,-358, - 32759,-715,32759,-715,32759,-715,32759,-715, - 32749,-1073,32749,-1073,32749,-1073,32749,-1073, - 32735,-1430,32735,-1430,32735,-1430,32735,-1430, - 32718,-1787,32718,-1787,32718,-1787,32718,-1787, - 32696,-2144,32696,-2144,32696,-2144,32696,-2144, - 32671,-2500,32671,-2500,32671,-2500,32671,-2500, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32609,-3212,32609,-3212,32609,-3212,32609,-3212, - 32572,-3568,32572,-3568,32572,-3568,32572,-3568, - 32531,-3923,32531,-3923,32531,-3923,32531,-3923, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32438,-4632,32438,-4632,32438,-4632,32438,-4632, - 32385,-4985,32385,-4985,32385,-4985,32385,-4985, - 32329,-5338,32329,-5338,32329,-5338,32329,-5338, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32205,-6042,32205,-6042,32205,-6042,32205,-6042, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 32065,-6743,32065,-6743,32065,-6743,32065,-6743, - 31990,-7093,31990,-7093,31990,-7093,31990,-7093, - 31911,-7441,31911,-7441,31911,-7441,31911,-7441, - 31827,-7789,31827,-7789,31827,-7789,31827,-7789, - 31741,-8135,31741,-8135,31741,-8135,31741,-8135, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31556,-8826,31556,-8826,31556,-8826,31556,-8826, - 31457,-9170,31457,-9170,31457,-9170,31457,-9170, - 31356,-9512,31356,-9512,31356,-9512,31356,-9512, - 31250,-9854,31250,-9854,31250,-9854,31250,-9854, - 31141,-10194,31141,-10194,31141,-10194,31141,-10194, - 31028,-10533,31028,-10533,31028,-10533,31028,-10533, - 30911,-10871,30911,-10871,30911,-10871,30911,-10871, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30666,-11543,30666,-11543,30666,-11543,30666,-11543, - 30539,-11877,30539,-11877,30539,-11877,30539,-11877, - 30407,-12209,30407,-12209,30407,-12209,30407,-12209, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30134,-12869,30134,-12869,30134,-12869,30134,-12869, - 29992,-13197,29992,-13197,29992,-13197,29992,-13197, - 29846,-13524,29846,-13524,29846,-13524,29846,-13524, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29544,-14172,29544,-14172,29544,-14172,29544,-14172, - 29387,-14493,29387,-14493,29387,-14493,29387,-14493, - 29227,-14813,29227,-14813,29227,-14813,29227,-14813, - 29064,-15131,29064,-15131,29064,-15131,29064,-15131, - 28897,-15447,28897,-15447,28897,-15447,28897,-15447, - 28727,-15761,28727,-15761,28727,-15761,28727,-15761, - 28554,-16073,28554,-16073,28554,-16073,28554,-16073, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28196,-16693,28196,-16693,28196,-16693,28196,-16693, - 28012,-16999,28012,-16999,28012,-16999,28012,-16999, - 27825,-17304,27825,-17304,27825,-17304,27825,-17304, - 27635,-17606,27635,-17606,27635,-17606,27635,-17606, - 27441,-17907,27441,-17907,27441,-17907,27441,-17907, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 27044,-18501,27044,-18501,27044,-18501,27044,-18501, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26634,-19087,26634,-19087,26634,-19087,26634,-19087, - 26424,-19376,26424,-19376,26424,-19376,26424,-19376, - 26211,-19663,26211,-19663,26211,-19663,26211,-19663, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25776,-20230,25776,-20230,25776,-20230,25776,-20230, - 25554,-20510,25554,-20510,25554,-20510,25554,-20510, - 25329,-20788,25329,-20788,25329,-20788,25329,-20788, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24869,-21335,24869,-21335,24869,-21335,24869,-21335, - 24635,-21605,24635,-21605,24635,-21605,24635,-21605, - 24398,-21873,24398,-21873,24398,-21873,24398,-21873, - 24158,-22138,24158,-22138,24158,-22138,24158,-22138, - 23915,-22400,23915,-22400,23915,-22400,23915,-22400, - 23669,-22659,23669,-22659,23669,-22659,23669,-22659, - 23421,-22916,23421,-22916,23421,-22916,23421,-22916, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22915,-23422,22915,-23422,22915,-23422,22915,-23422, - 22658,-23670,22658,-23670,22658,-23670,22658,-23670, - 22399,-23916,22399,-23916,22399,-23916,22399,-23916, - 22137,-24159,22137,-24159,22137,-24159,22137,-24159, - 21872,-24399,21872,-24399,21872,-24399,21872,-24399, - 21604,-24636,21604,-24636,21604,-24636,21604,-24636, - 21334,-24870,21334,-24870,21334,-24870,21334,-24870, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20787,-25330,20787,-25330,20787,-25330,20787,-25330, - 20509,-25555,20509,-25555,20509,-25555,20509,-25555, - 20229,-25777,20229,-25777,20229,-25777,20229,-25777, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19662,-26212,19662,-26212,19662,-26212,19662,-26212, - 19375,-26425,19375,-26425,19375,-26425,19375,-26425, - 19086,-26635,19086,-26635,19086,-26635,19086,-26635, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18500,-27045,18500,-27045,18500,-27045,18500,-27045, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 17906,-27442,17906,-27442,17906,-27442,17906,-27442, - 17605,-27636,17605,-27636,17605,-27636,17605,-27636, - 17303,-27826,17303,-27826,17303,-27826,17303,-27826, - 16998,-28013,16998,-28013,16998,-28013,16998,-28013, - 16692,-28197,16692,-28197,16692,-28197,16692,-28197, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16072,-28555,16072,-28555,16072,-28555,16072,-28555, - 15760,-28728,15760,-28728,15760,-28728,15760,-28728, - 15446,-28898,15446,-28898,15446,-28898,15446,-28898, - 15130,-29065,15130,-29065,15130,-29065,15130,-29065, - 14812,-29228,14812,-29228,14812,-29228,14812,-29228, - 14492,-29388,14492,-29388,14492,-29388,14492,-29388, - 14171,-29545,14171,-29545,14171,-29545,14171,-29545, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 13523,-29847,13523,-29847,13523,-29847,13523,-29847, - 13196,-29993,13196,-29993,13196,-29993,13196,-29993, - 12868,-30135,12868,-30135,12868,-30135,12868,-30135, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12208,-30408,12208,-30408,12208,-30408,12208,-30408, - 11876,-30540,11876,-30540,11876,-30540,11876,-30540, - 11542,-30667,11542,-30667,11542,-30667,11542,-30667, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10870,-30912,10870,-30912,10870,-30912,10870,-30912, - 10532,-31029,10532,-31029,10532,-31029,10532,-31029, - 10193,-31142,10193,-31142,10193,-31142,10193,-31142, - 9853,-31251,9853,-31251,9853,-31251,9853,-31251, - 9511,-31357,9511,-31357,9511,-31357,9511,-31357, - 9169,-31458,9169,-31458,9169,-31458,9169,-31458, - 8825,-31557,8825,-31557,8825,-31557,8825,-31557, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8134,-31742,8134,-31742,8134,-31742,8134,-31742, - 7788,-31828,7788,-31828,7788,-31828,7788,-31828, - 7440,-31912,7440,-31912,7440,-31912,7440,-31912, - 7092,-31991,7092,-31991,7092,-31991,7092,-31991, - 6742,-32066,6742,-32066,6742,-32066,6742,-32066, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 6041,-32206,6041,-32206,6041,-32206,6041,-32206, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5337,-32330,5337,-32330,5337,-32330,5337,-32330, - 4984,-32386,4984,-32386,4984,-32386,4984,-32386, - 4631,-32439,4631,-32439,4631,-32439,4631,-32439, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3922,-32532,3922,-32532,3922,-32532,3922,-32532, - 3567,-32573,3567,-32573,3567,-32573,3567,-32573, - 3211,-32610,3211,-32610,3211,-32610,3211,-32610, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 2499,-32672,2499,-32672,2499,-32672,2499,-32672, - 2143,-32697,2143,-32697,2143,-32697,2143,-32697, - 1786,-32719,1786,-32719,1786,-32719,1786,-32719, - 1429,-32736,1429,-32736,1429,-32736,1429,-32736, - 1072,-32750,1072,-32750,1072,-32750,1072,-32750, - 714,-32760,714,-32760,714,-32760,714,-32760, - 357,-32766,357,-32766,357,-32766,357,-32766, - 0,-32767,0,-32767,0,-32767,0,-32767, - -358,-32766,-358,-32766,-358,-32766,-358,-32766, - -715,-32760,-715,-32760,-715,-32760,-715,-32760, - -1073,-32750,-1073,-32750,-1073,-32750,-1073,-32750, - -1430,-32736,-1430,-32736,-1430,-32736,-1430,-32736, - -1787,-32719,-1787,-32719,-1787,-32719,-1787,-32719, - -2144,-32697,-2144,-32697,-2144,-32697,-2144,-32697, - -2500,-32672,-2500,-32672,-2500,-32672,-2500,-32672, - -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643, - -3212,-32610,-3212,-32610,-3212,-32610,-3212,-32610, - -3568,-32573,-3568,-32573,-3568,-32573,-3568,-32573, - -3923,-32532,-3923,-32532,-3923,-32532,-3923,-32532, - -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487, - -4632,-32439,-4632,-32439,-4632,-32439,-4632,-32439, - -4985,-32386,-4985,-32386,-4985,-32386,-4985,-32386, - -5338,-32330,-5338,-32330,-5338,-32330,-5338,-32330, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6042,-32206,-6042,-32206,-6042,-32206,-6042,-32206, - -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138, - -6743,-32066,-6743,-32066,-6743,-32066,-6743,-32066, - -7093,-31991,-7093,-31991,-7093,-31991,-7093,-31991, - -7441,-31912,-7441,-31912,-7441,-31912,-7441,-31912, - -7789,-31828,-7789,-31828,-7789,-31828,-7789,-31828, - -8135,-31742,-8135,-31742,-8135,-31742,-8135,-31742, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -8826,-31557,-8826,-31557,-8826,-31557,-8826,-31557, - -9170,-31458,-9170,-31458,-9170,-31458,-9170,-31458, - -9512,-31357,-9512,-31357,-9512,-31357,-9512,-31357, - -9854,-31251,-9854,-31251,-9854,-31251,-9854,-31251, - -10194,-31142,-10194,-31142,-10194,-31142,-10194,-31142, - -10533,-31029,-10533,-31029,-10533,-31029,-10533,-31029, - -10871,-30912,-10871,-30912,-10871,-30912,-10871,-30912, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11543,-30667,-11543,-30667,-11543,-30667,-11543,-30667, - -11877,-30540,-11877,-30540,-11877,-30540,-11877,-30540, - -12209,-30408,-12209,-30408,-12209,-30408,-12209,-30408, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -12869,-30135,-12869,-30135,-12869,-30135,-12869,-30135, - -13197,-29993,-13197,-29993,-13197,-29993,-13197,-29993, - -13524,-29847,-13524,-29847,-13524,-29847,-13524,-29847, - -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697, - -14172,-29545,-14172,-29545,-14172,-29545,-14172,-29545, - -14493,-29388,-14493,-29388,-14493,-29388,-14493,-29388, - -14813,-29228,-14813,-29228,-14813,-29228,-14813,-29228, - -15131,-29065,-15131,-29065,-15131,-29065,-15131,-29065, - -15447,-28898,-15447,-28898,-15447,-28898,-15447,-28898, - -15761,-28728,-15761,-28728,-15761,-28728,-15761,-28728, - -16073,-28555,-16073,-28555,-16073,-28555,-16073,-28555, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -16693,-28197,-16693,-28197,-16693,-28197,-16693,-28197, - -16999,-28013,-16999,-28013,-16999,-28013,-16999,-28013, - -17304,-27826,-17304,-27826,-17304,-27826,-17304,-27826, - -17606,-27636,-17606,-27636,-17606,-27636,-17606,-27636, - -17907,-27442,-17907,-27442,-17907,-27442,-17907,-27442, - -18205,-27245,-18205,-27245,-18205,-27245,-18205,-27245, - -18501,-27045,-18501,-27045,-18501,-27045,-18501,-27045, - -18795,-26842,-18795,-26842,-18795,-26842,-18795,-26842, - -19087,-26635,-19087,-26635,-19087,-26635,-19087,-26635, - -19376,-26425,-19376,-26425,-19376,-26425,-19376,-26425, - -19663,-26212,-19663,-26212,-19663,-26212,-19663,-26212, - -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996, - -20230,-25777,-20230,-25777,-20230,-25777,-20230,-25777, - -20510,-25555,-20510,-25555,-20510,-25555,-20510,-25555, - -20788,-25330,-20788,-25330,-20788,-25330,-20788,-25330, - -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101, - -21335,-24870,-21335,-24870,-21335,-24870,-21335,-24870, - -21605,-24636,-21605,-24636,-21605,-24636,-21605,-24636, - -21873,-24399,-21873,-24399,-21873,-24399,-21873,-24399, - -22138,-24159,-22138,-24159,-22138,-24159,-22138,-24159, - -22400,-23916,-22400,-23916,-22400,-23916,-22400,-23916, - -22659,-23670,-22659,-23670,-22659,-23670,-22659,-23670, - -22916,-23422,-22916,-23422,-22916,-23422,-22916,-23422, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23422,-22916,-23422,-22916,-23422,-22916,-23422,-22916, - -23670,-22659,-23670,-22659,-23670,-22659,-23670,-22659, - -23916,-22400,-23916,-22400,-23916,-22400,-23916,-22400, - -24159,-22138,-24159,-22138,-24159,-22138,-24159,-22138, - -24399,-21873,-24399,-21873,-24399,-21873,-24399,-21873, - -24636,-21605,-24636,-21605,-24636,-21605,-24636,-21605, - -24870,-21335,-24870,-21335,-24870,-21335,-24870,-21335, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25330,-20788,-25330,-20788,-25330,-20788,-25330,-20788, - -25555,-20510,-25555,-20510,-25555,-20510,-25555,-20510, - -25777,-20230,-25777,-20230,-25777,-20230,-25777,-20230, - -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948, - -26212,-19663,-26212,-19663,-26212,-19663,-26212,-19663, - -26425,-19376,-26425,-19376,-26425,-19376,-26425,-19376, - -26635,-19087,-26635,-19087,-26635,-19087,-26635,-19087, - -26842,-18795,-26842,-18795,-26842,-18795,-26842,-18795, - -27045,-18501,-27045,-18501,-27045,-18501,-27045,-18501, - -27245,-18205,-27245,-18205,-27245,-18205,-27245,-18205, - -27442,-17907,-27442,-17907,-27442,-17907,-27442,-17907, - -27636,-17606,-27636,-17606,-27636,-17606,-27636,-17606, - -27826,-17304,-27826,-17304,-27826,-17304,-27826,-17304, - -28013,-16999,-28013,-16999,-28013,-16999,-28013,-16999, - -28197,-16693,-28197,-16693,-28197,-16693,-28197,-16693, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28555,-16073,-28555,-16073,-28555,-16073,-28555,-16073, - -28728,-15761,-28728,-15761,-28728,-15761,-28728,-15761, - -28898,-15447,-28898,-15447,-28898,-15447,-28898,-15447, - -29065,-15131,-29065,-15131,-29065,-15131,-29065,-15131, - -29228,-14813,-29228,-14813,-29228,-14813,-29228,-14813, - -29388,-14493,-29388,-14493,-29388,-14493,-29388,-14493, - -29545,-14172,-29545,-14172,-29545,-14172,-29545,-14172, - -29697,-13848,-29697,-13848,-29697,-13848,-29697,-13848, - -29847,-13524,-29847,-13524,-29847,-13524,-29847,-13524, - -29993,-13197,-29993,-13197,-29993,-13197,-29993,-13197, - -30135,-12869,-30135,-12869,-30135,-12869,-30135,-12869, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30408,-12209,-30408,-12209,-30408,-12209,-30408,-12209, - -30540,-11877,-30540,-11877,-30540,-11877,-30540,-11877, - -30667,-11543,-30667,-11543,-30667,-11543,-30667,-11543, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -30912,-10871,-30912,-10871,-30912,-10871,-30912,-10871, - -31029,-10533,-31029,-10533,-31029,-10533,-31029,-10533, - -31142,-10194,-31142,-10194,-31142,-10194,-31142,-10194, - -31251,-9854,-31251,-9854,-31251,-9854,-31251,-9854, - -31357,-9512,-31357,-9512,-31357,-9512,-31357,-9512, - -31458,-9170,-31458,-9170,-31458,-9170,-31458,-9170, - -31557,-8826,-31557,-8826,-31557,-8826,-31557,-8826, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31742,-8135,-31742,-8135,-31742,-8135,-31742,-8135, - -31828,-7789,-31828,-7789,-31828,-7789,-31828,-7789, - -31912,-7441,-31912,-7441,-31912,-7441,-31912,-7441, - -31991,-7093,-31991,-7093,-31991,-7093,-31991,-7093, - -32066,-6743,-32066,-6743,-32066,-6743,-32066,-6743, - -32138,-6393,-32138,-6393,-32138,-6393,-32138,-6393, - -32206,-6042,-32206,-6042,-32206,-6042,-32206,-6042, - -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690, - -32330,-5338,-32330,-5338,-32330,-5338,-32330,-5338, - -32386,-4985,-32386,-4985,-32386,-4985,-32386,-4985, - -32439,-4632,-32439,-4632,-32439,-4632,-32439,-4632, - -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277, - -32532,-3923,-32532,-3923,-32532,-3923,-32532,-3923, - -32573,-3568,-32573,-3568,-32573,-3568,-32573,-3568, - -32610,-3212,-32610,-3212,-32610,-3212,-32610,-3212, - -32643,-2856,-32643,-2856,-32643,-2856,-32643,-2856, - -32672,-2500,-32672,-2500,-32672,-2500,-32672,-2500, - -32697,-2144,-32697,-2144,-32697,-2144,-32697,-2144, - -32719,-1787,-32719,-1787,-32719,-1787,-32719,-1787, - -32736,-1430,-32736,-1430,-32736,-1430,-32736,-1430, - -32750,-1073,-32750,-1073,-32750,-1073,-32750,-1073, - -32760,-715,-32760,-715,-32760,-715,-32760,-715, - -32766,-358,-32766,-358,-32766,-358,-32766,-358 - }; - -static int16_t twc1152[287*2*4] = {32762,-537,32762,-537,32762,-537,32762,-537, - 32749,-1073,32749,-1073,32749,-1073,32749,-1073, - 32727,-1608,32727,-1608,32727,-1608,32727,-1608, - 32696,-2144,32696,-2144,32696,-2144,32696,-2144, - 32657,-2678,32657,-2678,32657,-2678,32657,-2678, - 32609,-3212,32609,-3212,32609,-3212,32609,-3212, - 32552,-3745,32552,-3745,32552,-3745,32552,-3745, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32412,-4808,32412,-4808,32412,-4808,32412,-4808, - 32329,-5338,32329,-5338,32329,-5338,32329,-5338, - 32237,-5866,32237,-5866,32237,-5866,32237,-5866, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 32028,-6918,32028,-6918,32028,-6918,32028,-6918, - 31911,-7441,31911,-7441,31911,-7441,31911,-7441, - 31785,-7962,31785,-7962,31785,-7962,31785,-7962, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31507,-8998,31507,-8998,31507,-8998,31507,-8998, - 31356,-9512,31356,-9512,31356,-9512,31356,-9512, - 31196,-10024,31196,-10024,31196,-10024,31196,-10024, - 31028,-10533,31028,-10533,31028,-10533,31028,-10533, - 30851,-11039,30851,-11039,30851,-11039,30851,-11039, - 30666,-11543,30666,-11543,30666,-11543,30666,-11543, - 30473,-12043,30473,-12043,30473,-12043,30473,-12043, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30063,-13034,30063,-13034,30063,-13034,30063,-13034, - 29846,-13524,29846,-13524,29846,-13524,29846,-13524, - 29621,-14010,29621,-14010,29621,-14010,29621,-14010, - 29387,-14493,29387,-14493,29387,-14493,29387,-14493, - 29146,-14972,29146,-14972,29146,-14972,29146,-14972, - 28897,-15447,28897,-15447,28897,-15447,28897,-15447, - 28641,-15918,28641,-15918,28641,-15918,28641,-15918, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28105,-16846,28105,-16846,28105,-16846,28105,-16846, - 27825,-17304,27825,-17304,27825,-17304,27825,-17304, - 27538,-17757,27538,-17757,27538,-17757,27538,-17757, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 26943,-18648,26943,-18648,26943,-18648,26943,-18648, - 26634,-19087,26634,-19087,26634,-19087,26634,-19087, - 26318,-19520,26318,-19520,26318,-19520,26318,-19520, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25665,-20370,25665,-20370,25665,-20370,25665,-20370, - 25329,-20788,25329,-20788,25329,-20788,25329,-20788, - 24985,-21199,24985,-21199,24985,-21199,24985,-21199, - 24635,-21605,24635,-21605,24635,-21605,24635,-21605, - 24278,-22005,24278,-22005,24278,-22005,24278,-22005, - 23915,-22400,23915,-22400,23915,-22400,23915,-22400, - 23545,-22788,23545,-22788,23545,-22788,23545,-22788, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22787,-23546,22787,-23546,22787,-23546,22787,-23546, - 22399,-23916,22399,-23916,22399,-23916,22399,-23916, - 22004,-24279,22004,-24279,22004,-24279,22004,-24279, - 21604,-24636,21604,-24636,21604,-24636,21604,-24636, - 21198,-24986,21198,-24986,21198,-24986,21198,-24986, - 20787,-25330,20787,-25330,20787,-25330,20787,-25330, - 20369,-25666,20369,-25666,20369,-25666,20369,-25666, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19519,-26319,19519,-26319,19519,-26319,19519,-26319, - 19086,-26635,19086,-26635,19086,-26635,19086,-26635, - 18647,-26944,18647,-26944,18647,-26944,18647,-26944, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 17756,-27539,17756,-27539,17756,-27539,17756,-27539, - 17303,-27826,17303,-27826,17303,-27826,17303,-27826, - 16845,-28106,16845,-28106,16845,-28106,16845,-28106, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15917,-28642,15917,-28642,15917,-28642,15917,-28642, - 15446,-28898,15446,-28898,15446,-28898,15446,-28898, - 14971,-29147,14971,-29147,14971,-29147,14971,-29147, - 14492,-29388,14492,-29388,14492,-29388,14492,-29388, - 14009,-29622,14009,-29622,14009,-29622,14009,-29622, - 13523,-29847,13523,-29847,13523,-29847,13523,-29847, - 13033,-30064,13033,-30064,13033,-30064,13033,-30064, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12042,-30474,12042,-30474,12042,-30474,12042,-30474, - 11542,-30667,11542,-30667,11542,-30667,11542,-30667, - 11038,-30852,11038,-30852,11038,-30852,11038,-30852, - 10532,-31029,10532,-31029,10532,-31029,10532,-31029, - 10023,-31197,10023,-31197,10023,-31197,10023,-31197, - 9511,-31357,9511,-31357,9511,-31357,9511,-31357, - 8997,-31508,8997,-31508,8997,-31508,8997,-31508, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 7961,-31786,7961,-31786,7961,-31786,7961,-31786, - 7440,-31912,7440,-31912,7440,-31912,7440,-31912, - 6917,-32029,6917,-32029,6917,-32029,6917,-32029, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 5865,-32238,5865,-32238,5865,-32238,5865,-32238, - 5337,-32330,5337,-32330,5337,-32330,5337,-32330, - 4807,-32413,4807,-32413,4807,-32413,4807,-32413, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3744,-32553,3744,-32553,3744,-32553,3744,-32553, - 3211,-32610,3211,-32610,3211,-32610,3211,-32610, - 2677,-32658,2677,-32658,2677,-32658,2677,-32658, - 2143,-32697,2143,-32697,2143,-32697,2143,-32697, - 1607,-32728,1607,-32728,1607,-32728,1607,-32728, - 1072,-32750,1072,-32750,1072,-32750,1072,-32750, - 536,-32763,536,-32763,536,-32763,536,-32763, - 0,-32767,0,-32767,0,-32767,0,-32767, - -537,-32763,-537,-32763,-537,-32763,-537,-32763, - -1073,-32750,-1073,-32750,-1073,-32750,-1073,-32750, - -1608,-32728,-1608,-32728,-1608,-32728,-1608,-32728, - -2144,-32697,-2144,-32697,-2144,-32697,-2144,-32697, - -2678,-32658,-2678,-32658,-2678,-32658,-2678,-32658, - -3212,-32610,-3212,-32610,-3212,-32610,-3212,-32610, - -3745,-32553,-3745,-32553,-3745,-32553,-3745,-32553, - -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487, - -4808,-32413,-4808,-32413,-4808,-32413,-4808,-32413, - -5338,-32330,-5338,-32330,-5338,-32330,-5338,-32330, - -5866,-32238,-5866,-32238,-5866,-32238,-5866,-32238, - -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138, - -6918,-32029,-6918,-32029,-6918,-32029,-6918,-32029, - -7441,-31912,-7441,-31912,-7441,-31912,-7441,-31912, - -7962,-31786,-7962,-31786,-7962,-31786,-7962,-31786, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -8998,-31508,-8998,-31508,-8998,-31508,-8998,-31508, - -9512,-31357,-9512,-31357,-9512,-31357,-9512,-31357, - -10024,-31197,-10024,-31197,-10024,-31197,-10024,-31197, - -10533,-31029,-10533,-31029,-10533,-31029,-10533,-31029, - -11039,-30852,-11039,-30852,-11039,-30852,-11039,-30852, - -11543,-30667,-11543,-30667,-11543,-30667,-11543,-30667, - -12043,-30474,-12043,-30474,-12043,-30474,-12043,-30474, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -13034,-30064,-13034,-30064,-13034,-30064,-13034,-30064, - -13524,-29847,-13524,-29847,-13524,-29847,-13524,-29847, - -14010,-29622,-14010,-29622,-14010,-29622,-14010,-29622, - -14493,-29388,-14493,-29388,-14493,-29388,-14493,-29388, - -14972,-29147,-14972,-29147,-14972,-29147,-14972,-29147, - -15447,-28898,-15447,-28898,-15447,-28898,-15447,-28898, - -15918,-28642,-15918,-28642,-15918,-28642,-15918,-28642, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -16846,-28106,-16846,-28106,-16846,-28106,-16846,-28106, - -17304,-27826,-17304,-27826,-17304,-27826,-17304,-27826, - -17757,-27539,-17757,-27539,-17757,-27539,-17757,-27539, - -18205,-27245,-18205,-27245,-18205,-27245,-18205,-27245, - -18648,-26944,-18648,-26944,-18648,-26944,-18648,-26944, - -19087,-26635,-19087,-26635,-19087,-26635,-19087,-26635, - -19520,-26319,-19520,-26319,-19520,-26319,-19520,-26319, - -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996, - -20370,-25666,-20370,-25666,-20370,-25666,-20370,-25666, - -20788,-25330,-20788,-25330,-20788,-25330,-20788,-25330, - -21199,-24986,-21199,-24986,-21199,-24986,-21199,-24986, - -21605,-24636,-21605,-24636,-21605,-24636,-21605,-24636, - -22005,-24279,-22005,-24279,-22005,-24279,-22005,-24279, - -22400,-23916,-22400,-23916,-22400,-23916,-22400,-23916, - -22788,-23546,-22788,-23546,-22788,-23546,-22788,-23546, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23546,-22788,-23546,-22788,-23546,-22788,-23546,-22788, - -23916,-22400,-23916,-22400,-23916,-22400,-23916,-22400, - -24279,-22005,-24279,-22005,-24279,-22005,-24279,-22005, - -24636,-21605,-24636,-21605,-24636,-21605,-24636,-21605, - -24986,-21199,-24986,-21199,-24986,-21199,-24986,-21199, - -25330,-20788,-25330,-20788,-25330,-20788,-25330,-20788, - -25666,-20370,-25666,-20370,-25666,-20370,-25666,-20370, - -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948, - -26319,-19520,-26319,-19520,-26319,-19520,-26319,-19520, - -26635,-19087,-26635,-19087,-26635,-19087,-26635,-19087, - -26944,-18648,-26944,-18648,-26944,-18648,-26944,-18648, - -27245,-18205,-27245,-18205,-27245,-18205,-27245,-18205, - -27539,-17757,-27539,-17757,-27539,-17757,-27539,-17757, - -27826,-17304,-27826,-17304,-27826,-17304,-27826,-17304, - -28106,-16846,-28106,-16846,-28106,-16846,-28106,-16846, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28642,-15918,-28642,-15918,-28642,-15918,-28642,-15918, - -28898,-15447,-28898,-15447,-28898,-15447,-28898,-15447, - -29147,-14972,-29147,-14972,-29147,-14972,-29147,-14972, - -29388,-14493,-29388,-14493,-29388,-14493,-29388,-14493, - -29622,-14010,-29622,-14010,-29622,-14010,-29622,-14010, - -29847,-13524,-29847,-13524,-29847,-13524,-29847,-13524, - -30064,-13034,-30064,-13034,-30064,-13034,-30064,-13034, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30474,-12043,-30474,-12043,-30474,-12043,-30474,-12043, - -30667,-11543,-30667,-11543,-30667,-11543,-30667,-11543, - -30852,-11039,-30852,-11039,-30852,-11039,-30852,-11039, - -31029,-10533,-31029,-10533,-31029,-10533,-31029,-10533, - -31197,-10024,-31197,-10024,-31197,-10024,-31197,-10024, - -31357,-9512,-31357,-9512,-31357,-9512,-31357,-9512, - -31508,-8998,-31508,-8998,-31508,-8998,-31508,-8998, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31786,-7962,-31786,-7962,-31786,-7962,-31786,-7962, - -31912,-7441,-31912,-7441,-31912,-7441,-31912,-7441, - -32029,-6918,-32029,-6918,-32029,-6918,-32029,-6918, - -32138,-6393,-32138,-6393,-32138,-6393,-32138,-6393, - -32238,-5866,-32238,-5866,-32238,-5866,-32238,-5866, - -32330,-5338,-32330,-5338,-32330,-5338,-32330,-5338, - -32413,-4808,-32413,-4808,-32413,-4808,-32413,-4808, - -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277, - -32553,-3745,-32553,-3745,-32553,-3745,-32553,-3745, - -32610,-3212,-32610,-3212,-32610,-3212,-32610,-3212, - -32658,-2678,-32658,-2678,-32658,-2678,-32658,-2678, - -32697,-2144,-32697,-2144,-32697,-2144,-32697,-2144, - -32728,-1608,-32728,-1608,-32728,-1608,-32728,-1608, - -32750,-1073,-32750,-1073,-32750,-1073,-32750,-1073, - -32763,-537,-32763,-537,-32763,-537,-32763,-537, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32763,536,-32763,536,-32763,536,-32763,536, - -32750,1072,-32750,1072,-32750,1072,-32750,1072, - -32728,1607,-32728,1607,-32728,1607,-32728,1607, - -32697,2143,-32697,2143,-32697,2143,-32697,2143, - -32658,2677,-32658,2677,-32658,2677,-32658,2677, - -32610,3211,-32610,3211,-32610,3211,-32610,3211, - -32553,3744,-32553,3744,-32553,3744,-32553,3744, - -32487,4276,-32487,4276,-32487,4276,-32487,4276, - -32413,4807,-32413,4807,-32413,4807,-32413,4807, - -32330,5337,-32330,5337,-32330,5337,-32330,5337, - -32238,5865,-32238,5865,-32238,5865,-32238,5865, - -32138,6392,-32138,6392,-32138,6392,-32138,6392, - -32029,6917,-32029,6917,-32029,6917,-32029,6917, - -31912,7440,-31912,7440,-31912,7440,-31912,7440, - -31786,7961,-31786,7961,-31786,7961,-31786,7961, - -31651,8480,-31651,8480,-31651,8480,-31651,8480, - -31508,8997,-31508,8997,-31508,8997,-31508,8997, - -31357,9511,-31357,9511,-31357,9511,-31357,9511, - -31197,10023,-31197,10023,-31197,10023,-31197,10023, - -31029,10532,-31029,10532,-31029,10532,-31029,10532, - -30852,11038,-30852,11038,-30852,11038,-30852,11038, - -30667,11542,-30667,11542,-30667,11542,-30667,11542, - -30474,12042,-30474,12042,-30474,12042,-30474,12042, - -30273,12539,-30273,12539,-30273,12539,-30273,12539, - -30064,13033,-30064,13033,-30064,13033,-30064,13033, - -29847,13523,-29847,13523,-29847,13523,-29847,13523, - -29622,14009,-29622,14009,-29622,14009,-29622,14009, - -29388,14492,-29388,14492,-29388,14492,-29388,14492, - -29147,14971,-29147,14971,-29147,14971,-29147,14971, - -28898,15446,-28898,15446,-28898,15446,-28898,15446, - -28642,15917,-28642,15917,-28642,15917,-28642,15917, - -28378,16383,-28378,16383,-28378,16383,-28378,16383, - -28106,16845,-28106,16845,-28106,16845,-28106,16845, - -27826,17303,-27826,17303,-27826,17303,-27826,17303, - -27539,17756,-27539,17756,-27539,17756,-27539,17756, - -27245,18204,-27245,18204,-27245,18204,-27245,18204, - -26944,18647,-26944,18647,-26944,18647,-26944,18647, - -26635,19086,-26635,19086,-26635,19086,-26635,19086, - -26319,19519,-26319,19519,-26319,19519,-26319,19519, - -25996,19947,-25996,19947,-25996,19947,-25996,19947, - -25666,20369,-25666,20369,-25666,20369,-25666,20369, - -25330,20787,-25330,20787,-25330,20787,-25330,20787, - -24986,21198,-24986,21198,-24986,21198,-24986,21198, - -24636,21604,-24636,21604,-24636,21604,-24636,21604, - -24279,22004,-24279,22004,-24279,22004,-24279,22004, - -23916,22399,-23916,22399,-23916,22399,-23916,22399, - -23546,22787,-23546,22787,-23546,22787,-23546,22787, - -23170,23169,-23170,23169,-23170,23169,-23170,23169, - -22788,23545,-22788,23545,-22788,23545,-22788,23545, - -22400,23915,-22400,23915,-22400,23915,-22400,23915, - -22005,24278,-22005,24278,-22005,24278,-22005,24278, - -21605,24635,-21605,24635,-21605,24635,-21605,24635, - -21199,24985,-21199,24985,-21199,24985,-21199,24985, - -20788,25329,-20788,25329,-20788,25329,-20788,25329, - -20370,25665,-20370,25665,-20370,25665,-20370,25665, - -19948,25995,-19948,25995,-19948,25995,-19948,25995, - -19520,26318,-19520,26318,-19520,26318,-19520,26318, - -19087,26634,-19087,26634,-19087,26634,-19087,26634, - -18648,26943,-18648,26943,-18648,26943,-18648,26943, - -18205,27244,-18205,27244,-18205,27244,-18205,27244, - -17757,27538,-17757,27538,-17757,27538,-17757,27538, - -17304,27825,-17304,27825,-17304,27825,-17304,27825, - -16846,28105,-16846,28105,-16846,28105,-16846,28105, - -16384,28377,-16384,28377,-16384,28377,-16384,28377, - -15918,28641,-15918,28641,-15918,28641,-15918,28641, - -15447,28897,-15447,28897,-15447,28897,-15447,28897, - -14972,29146,-14972,29146,-14972,29146,-14972,29146, - -14493,29387,-14493,29387,-14493,29387,-14493,29387, - -14010,29621,-14010,29621,-14010,29621,-14010,29621, - -13524,29846,-13524,29846,-13524,29846,-13524,29846, - -13034,30063,-13034,30063,-13034,30063,-13034,30063, - -12540,30272,-12540,30272,-12540,30272,-12540,30272, - -12043,30473,-12043,30473,-12043,30473,-12043,30473, - -11543,30666,-11543,30666,-11543,30666,-11543,30666, - -11039,30851,-11039,30851,-11039,30851,-11039,30851, - -10533,31028,-10533,31028,-10533,31028,-10533,31028, - -10024,31196,-10024,31196,-10024,31196,-10024,31196, - -9512,31356,-9512,31356,-9512,31356,-9512,31356, - -8998,31507,-8998,31507,-8998,31507,-8998,31507, - -8481,31650,-8481,31650,-8481,31650,-8481,31650, - -7962,31785,-7962,31785,-7962,31785,-7962,31785, - -7441,31911,-7441,31911,-7441,31911,-7441,31911, - -6918,32028,-6918,32028,-6918,32028,-6918,32028, - -6393,32137,-6393,32137,-6393,32137,-6393,32137, - -5866,32237,-5866,32237,-5866,32237,-5866,32237, - -5338,32329,-5338,32329,-5338,32329,-5338,32329, - -4808,32412,-4808,32412,-4808,32412,-4808,32412, - -4277,32486,-4277,32486,-4277,32486,-4277,32486, - -3745,32552,-3745,32552,-3745,32552,-3745,32552, - -3212,32609,-3212,32609,-3212,32609,-3212,32609, - -2678,32657,-2678,32657,-2678,32657,-2678,32657, - -2144,32696,-2144,32696,-2144,32696,-2144,32696, - -1608,32727,-1608,32727,-1608,32727,-1608,32727, - -1073,32749,-1073,32749,-1073,32749,-1073,32749, - -537,32762,-537,32762,-537,32762,-537,32762 - }; +static int16_t twa1152[287*2*4]; +static int16_t twb1152[287*2*4]; +static int16_t twc1152[287*2*4]; void dft1152(int16_t *x,int16_t *y,unsigned char scale_flag) // 288 x 4 { @@ -17622,909 +8440,9 @@ void dft1152(int16_t *x,int16_t *y,unsigned char scale_flag) // 288 x 4 _m_empty(); }; -int16_t twa1200[4784] = { 32766,-172,32766,-172,32766,-172,32766,-172, - 32765,-344,32765,-344,32765,-344,32765,-344, - 32762,-515,32762,-515,32762,-515,32762,-515, - 32759,-687,32759,-687,32759,-687,32759,-687, - 32755,-858,32755,-858,32755,-858,32755,-858, - 32750,-1030,32750,-1030,32750,-1030,32750,-1030, - 32744,-1201,32744,-1201,32744,-1201,32744,-1201, - 32738,-1373,32738,-1373,32738,-1373,32738,-1373, - 32730,-1544,32730,-1544,32730,-1544,32730,-1544, - 32722,-1715,32722,-1715,32722,-1715,32722,-1715, - 32712,-1887,32712,-1887,32712,-1887,32712,-1887, - 32702,-2058,32702,-2058,32702,-2058,32702,-2058, - 32691,-2229,32691,-2229,32691,-2229,32691,-2229, - 32679,-2400,32679,-2400,32679,-2400,32679,-2400, - 32665,-2571,32665,-2571,32665,-2571,32665,-2571, - 32652,-2742,32652,-2742,32652,-2742,32652,-2742, - 32637,-2913,32637,-2913,32637,-2913,32637,-2913, - 32621,-3084,32621,-3084,32621,-3084,32621,-3084, - 32604,-3255,32604,-3255,32604,-3255,32604,-3255, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32569,-3596,32569,-3596,32569,-3596,32569,-3596, - 32549,-3767,32549,-3767,32549,-3767,32549,-3767, - 32529,-3937,32529,-3937,32529,-3937,32529,-3937, - 32508,-4107,32508,-4107,32508,-4107,32508,-4107, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32463,-4447,32463,-4447,32463,-4447,32463,-4447, - 32440,-4617,32440,-4617,32440,-4617,32440,-4617, - 32415,-4787,32415,-4787,32415,-4787,32415,-4787, - 32389,-4957,32389,-4957,32389,-4957,32389,-4957, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32336,-5296,32336,-5296,32336,-5296,32336,-5296, - 32308,-5465,32308,-5465,32308,-5465,32308,-5465, - 32279,-5634,32279,-5634,32279,-5634,32279,-5634, - 32249,-5803,32249,-5803,32249,-5803,32249,-5803, - 32218,-5972,32218,-5972,32218,-5972,32218,-5972, - 32186,-6140,32186,-6140,32186,-6140,32186,-6140, - 32154,-6309,32154,-6309,32154,-6309,32154,-6309, - 32120,-6477,32120,-6477,32120,-6477,32120,-6477, - 32086,-6645,32086,-6645,32086,-6645,32086,-6645, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 32014,-6981,32014,-6981,32014,-6981,32014,-6981, - 31977,-7148,31977,-7148,31977,-7148,31977,-7148, - 31940,-7316,31940,-7316,31940,-7316,31940,-7316, - 31901,-7483,31901,-7483,31901,-7483,31901,-7483, - 31861,-7650,31861,-7650,31861,-7650,31861,-7650, - 31821,-7817,31821,-7817,31821,-7817,31821,-7817, - 31779,-7983,31779,-7983,31779,-7983,31779,-7983, - 31737,-8149,31737,-8149,31737,-8149,31737,-8149, - 31694,-8315,31694,-8315,31694,-8315,31694,-8315, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31605,-8647,31605,-8647,31605,-8647,31605,-8647, - 31559,-8812,31559,-8812,31559,-8812,31559,-8812, - 31513,-8977,31513,-8977,31513,-8977,31513,-8977, - 31465,-9142,31465,-9142,31465,-9142,31465,-9142, - 31417,-9307,31417,-9307,31417,-9307,31417,-9307, - 31368,-9471,31368,-9471,31368,-9471,31368,-9471, - 31318,-9635,31318,-9635,31318,-9635,31318,-9635, - 31267,-9799,31267,-9799,31267,-9799,31267,-9799, - 31215,-9963,31215,-9963,31215,-9963,31215,-9963, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 31109,-10289,31109,-10289,31109,-10289,31109,-10289, - 31055,-10452,31055,-10452,31055,-10452,31055,-10452, - 31000,-10614,31000,-10614,31000,-10614,31000,-10614, - 30944,-10776,30944,-10776,30944,-10776,30944,-10776, - 30887,-10938,30887,-10938,30887,-10938,30887,-10938, - 30829,-11100,30829,-11100,30829,-11100,30829,-11100, - 30771,-11261,30771,-11261,30771,-11261,30771,-11261, - 30711,-11422,30711,-11422,30711,-11422,30711,-11422, - 30651,-11583,30651,-11583,30651,-11583,30651,-11583, - 30590,-11743,30590,-11743,30590,-11743,30590,-11743, - 30528,-11903,30528,-11903,30528,-11903,30528,-11903, - 30465,-12063,30465,-12063,30465,-12063,30465,-12063, - 30402,-12222,30402,-12222,30402,-12222,30402,-12222, - 30338,-12381,30338,-12381,30338,-12381,30338,-12381, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30206,-12698,30206,-12698,30206,-12698,30206,-12698, - 30139,-12856,30139,-12856,30139,-12856,30139,-12856, - 30072,-13014,30072,-13014,30072,-13014,30072,-13014, - 30003,-13171,30003,-13171,30003,-13171,30003,-13171, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29863,-13485,29863,-13485,29863,-13485,29863,-13485, - 29792,-13641,29792,-13641,29792,-13641,29792,-13641, - 29721,-13797,29721,-13797,29721,-13797,29721,-13797, - 29648,-13952,29648,-13952,29648,-13952,29648,-13952, - 29575,-14107,29575,-14107,29575,-14107,29575,-14107, - 29500,-14262,29500,-14262,29500,-14262,29500,-14262, - 29425,-14416,29425,-14416,29425,-14416,29425,-14416, - 29349,-14570,29349,-14570,29349,-14570,29349,-14570, - 29273,-14723,29273,-14723,29273,-14723,29273,-14723, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 29117,-15029,29117,-15029,29117,-15029,29117,-15029, - 29038,-15181,29038,-15181,29038,-15181,29038,-15181, - 28958,-15333,28958,-15333,28958,-15333,28958,-15333, - 28877,-15485,28877,-15485,28877,-15485,28877,-15485, - 28796,-15636,28796,-15636,28796,-15636,28796,-15636, - 28713,-15786,28713,-15786,28713,-15786,28713,-15786, - 28630,-15936,28630,-15936,28630,-15936,28630,-15936, - 28547,-16086,28547,-16086,28547,-16086,28547,-16086, - 28462,-16235,28462,-16235,28462,-16235,28462,-16235, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28290,-16532,28290,-16532,28290,-16532,28290,-16532, - 28203,-16680,28203,-16680,28203,-16680,28203,-16680, - 28116,-16828,28116,-16828,28116,-16828,28116,-16828, - 28027,-16975,28027,-16975,28027,-16975,28027,-16975, - 27938,-17121,27938,-17121,27938,-17121,27938,-17121, - 27848,-17267,27848,-17267,27848,-17267,27848,-17267, - 27757,-17413,27757,-17413,27757,-17413,27757,-17413, - 27666,-17558,27666,-17558,27666,-17558,27666,-17558, - 27573,-17703,27573,-17703,27573,-17703,27573,-17703, - 27480,-17847,27480,-17847,27480,-17847,27480,-17847, - 27386,-17990,27386,-17990,27386,-17990,27386,-17990, - 27292,-18133,27292,-18133,27292,-18133,27292,-18133, - 27197,-18276,27197,-18276,27197,-18276,27197,-18276, - 27100,-18418,27100,-18418,27100,-18418,27100,-18418, - 27004,-18560,27004,-18560,27004,-18560,27004,-18560, - 26906,-18701,26906,-18701,26906,-18701,26906,-18701, - 26808,-18842,26808,-18842,26808,-18842,26808,-18842, - 26709,-18982,26709,-18982,26709,-18982,26709,-18982, - 26609,-19121,26609,-19121,26609,-19121,26609,-19121, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26407,-19399,26407,-19399,26407,-19399,26407,-19399, - 26305,-19537,26305,-19537,26305,-19537,26305,-19537, - 26203,-19674,26203,-19674,26203,-19674,26203,-19674, - 26099,-19811,26099,-19811,26099,-19811,26099,-19811, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25891,-20084,25891,-20084,25891,-20084,25891,-20084, - 25785,-20219,25785,-20219,25785,-20219,25785,-20219, - 25679,-20354,25679,-20354,25679,-20354,25679,-20354, - 25572,-20488,25572,-20488,25572,-20488,25572,-20488, - 25464,-20621,25464,-20621,25464,-20621,25464,-20621, - 25356,-20754,25356,-20754,25356,-20754,25356,-20754, - 25247,-20887,25247,-20887,25247,-20887,25247,-20887, - 25137,-21019,25137,-21019,25137,-21019,25137,-21019, - 25027,-21150,25027,-21150,25027,-21150,25027,-21150, - 24916,-21281,24916,-21281,24916,-21281,24916,-21281, - 24804,-21411,24804,-21411,24804,-21411,24804,-21411, - 24692,-21541,24692,-21541,24692,-21541,24692,-21541, - 24578,-21670,24578,-21670,24578,-21670,24578,-21670, - 24465,-21798,24465,-21798,24465,-21798,24465,-21798, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 24235,-22053,24235,-22053,24235,-22053,24235,-22053, - 24119,-22180,24119,-22180,24119,-22180,24119,-22180, - 24003,-22306,24003,-22306,24003,-22306,24003,-22306, - 23886,-22431,23886,-22431,23886,-22431,23886,-22431, - 23768,-22556,23768,-22556,23768,-22556,23768,-22556, - 23649,-22680,23649,-22680,23649,-22680,23649,-22680, - 23530,-22803,23530,-22803,23530,-22803,23530,-22803, - 23411,-22926,23411,-22926,23411,-22926,23411,-22926, - 23290,-23049,23290,-23049,23290,-23049,23290,-23049, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 23048,-23291,23048,-23291,23048,-23291,23048,-23291, - 22925,-23412,22925,-23412,22925,-23412,22925,-23412, - 22802,-23531,22802,-23531,22802,-23531,22802,-23531, - 22679,-23650,22679,-23650,22679,-23650,22679,-23650, - 22555,-23769,22555,-23769,22555,-23769,22555,-23769, - 22430,-23887,22430,-23887,22430,-23887,22430,-23887, - 22305,-24004,22305,-24004,22305,-24004,22305,-24004, - 22179,-24120,22179,-24120,22179,-24120,22179,-24120, - 22052,-24236,22052,-24236,22052,-24236,22052,-24236, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21797,-24466,21797,-24466,21797,-24466,21797,-24466, - 21669,-24579,21669,-24579,21669,-24579,21669,-24579, - 21540,-24693,21540,-24693,21540,-24693,21540,-24693, - 21410,-24805,21410,-24805,21410,-24805,21410,-24805, - 21280,-24917,21280,-24917,21280,-24917,21280,-24917, - 21149,-25028,21149,-25028,21149,-25028,21149,-25028, - 21018,-25138,21018,-25138,21018,-25138,21018,-25138, - 20886,-25248,20886,-25248,20886,-25248,20886,-25248, - 20753,-25357,20753,-25357,20753,-25357,20753,-25357, - 20620,-25465,20620,-25465,20620,-25465,20620,-25465, - 20487,-25573,20487,-25573,20487,-25573,20487,-25573, - 20353,-25680,20353,-25680,20353,-25680,20353,-25680, - 20218,-25786,20218,-25786,20218,-25786,20218,-25786, - 20083,-25892,20083,-25892,20083,-25892,20083,-25892, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19810,-26100,19810,-26100,19810,-26100,19810,-26100, - 19673,-26204,19673,-26204,19673,-26204,19673,-26204, - 19536,-26306,19536,-26306,19536,-26306,19536,-26306, - 19398,-26408,19398,-26408,19398,-26408,19398,-26408, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 19120,-26610,19120,-26610,19120,-26610,19120,-26610, - 18981,-26710,18981,-26710,18981,-26710,18981,-26710, - 18841,-26809,18841,-26809,18841,-26809,18841,-26809, - 18700,-26907,18700,-26907,18700,-26907,18700,-26907, - 18559,-27005,18559,-27005,18559,-27005,18559,-27005, - 18417,-27101,18417,-27101,18417,-27101,18417,-27101, - 18275,-27198,18275,-27198,18275,-27198,18275,-27198, - 18132,-27293,18132,-27293,18132,-27293,18132,-27293, - 17989,-27387,17989,-27387,17989,-27387,17989,-27387, - 17846,-27481,17846,-27481,17846,-27481,17846,-27481, - 17702,-27574,17702,-27574,17702,-27574,17702,-27574, - 17557,-27667,17557,-27667,17557,-27667,17557,-27667, - 17412,-27758,17412,-27758,17412,-27758,17412,-27758, - 17266,-27849,17266,-27849,17266,-27849,17266,-27849, - 17120,-27939,17120,-27939,17120,-27939,17120,-27939, - 16974,-28028,16974,-28028,16974,-28028,16974,-28028, - 16827,-28117,16827,-28117,16827,-28117,16827,-28117, - 16679,-28204,16679,-28204,16679,-28204,16679,-28204, - 16531,-28291,16531,-28291,16531,-28291,16531,-28291, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16234,-28463,16234,-28463,16234,-28463,16234,-28463, - 16085,-28548,16085,-28548,16085,-28548,16085,-28548, - 15935,-28631,15935,-28631,15935,-28631,15935,-28631, - 15785,-28714,15785,-28714,15785,-28714,15785,-28714, - 15635,-28797,15635,-28797,15635,-28797,15635,-28797, - 15484,-28878,15484,-28878,15484,-28878,15484,-28878, - 15332,-28959,15332,-28959,15332,-28959,15332,-28959, - 15180,-29039,15180,-29039,15180,-29039,15180,-29039, - 15028,-29118,15028,-29118,15028,-29118,15028,-29118, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14722,-29274,14722,-29274,14722,-29274,14722,-29274, - 14569,-29350,14569,-29350,14569,-29350,14569,-29350, - 14415,-29426,14415,-29426,14415,-29426,14415,-29426, - 14261,-29501,14261,-29501,14261,-29501,14261,-29501, - 14106,-29576,14106,-29576,14106,-29576,14106,-29576, - 13951,-29649,13951,-29649,13951,-29649,13951,-29649, - 13796,-29722,13796,-29722,13796,-29722,13796,-29722, - 13640,-29793,13640,-29793,13640,-29793,13640,-29793, - 13484,-29864,13484,-29864,13484,-29864,13484,-29864, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 13170,-30004,13170,-30004,13170,-30004,13170,-30004, - 13013,-30073,13013,-30073,13013,-30073,13013,-30073, - 12855,-30140,12855,-30140,12855,-30140,12855,-30140, - 12697,-30207,12697,-30207,12697,-30207,12697,-30207, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12380,-30339,12380,-30339,12380,-30339,12380,-30339, - 12221,-30403,12221,-30403,12221,-30403,12221,-30403, - 12062,-30466,12062,-30466,12062,-30466,12062,-30466, - 11902,-30529,11902,-30529,11902,-30529,11902,-30529, - 11742,-30591,11742,-30591,11742,-30591,11742,-30591, - 11582,-30652,11582,-30652,11582,-30652,11582,-30652, - 11421,-30712,11421,-30712,11421,-30712,11421,-30712, - 11260,-30772,11260,-30772,11260,-30772,11260,-30772, - 11099,-30830,11099,-30830,11099,-30830,11099,-30830, - 10937,-30888,10937,-30888,10937,-30888,10937,-30888, - 10775,-30945,10775,-30945,10775,-30945,10775,-30945, - 10613,-31001,10613,-31001,10613,-31001,10613,-31001, - 10451,-31056,10451,-31056,10451,-31056,10451,-31056, - 10288,-31110,10288,-31110,10288,-31110,10288,-31110, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9962,-31216,9962,-31216,9962,-31216,9962,-31216, - 9798,-31268,9798,-31268,9798,-31268,9798,-31268, - 9634,-31319,9634,-31319,9634,-31319,9634,-31319, - 9470,-31369,9470,-31369,9470,-31369,9470,-31369, - 9306,-31418,9306,-31418,9306,-31418,9306,-31418, - 9141,-31466,9141,-31466,9141,-31466,9141,-31466, - 8976,-31514,8976,-31514,8976,-31514,8976,-31514, - 8811,-31560,8811,-31560,8811,-31560,8811,-31560, - 8646,-31606,8646,-31606,8646,-31606,8646,-31606, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8314,-31695,8314,-31695,8314,-31695,8314,-31695, - 8148,-31738,8148,-31738,8148,-31738,8148,-31738, - 7982,-31780,7982,-31780,7982,-31780,7982,-31780, - 7816,-31822,7816,-31822,7816,-31822,7816,-31822, - 7649,-31862,7649,-31862,7649,-31862,7649,-31862, - 7482,-31902,7482,-31902,7482,-31902,7482,-31902, - 7315,-31941,7315,-31941,7315,-31941,7315,-31941, - 7147,-31978,7147,-31978,7147,-31978,7147,-31978, - 6980,-32015,6980,-32015,6980,-32015,6980,-32015, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6644,-32087,6644,-32087,6644,-32087,6644,-32087, - 6476,-32121,6476,-32121,6476,-32121,6476,-32121, - 6308,-32155,6308,-32155,6308,-32155,6308,-32155, - 6139,-32187,6139,-32187,6139,-32187,6139,-32187, - 5971,-32219,5971,-32219,5971,-32219,5971,-32219, - 5802,-32250,5802,-32250,5802,-32250,5802,-32250, - 5633,-32280,5633,-32280,5633,-32280,5633,-32280, - 5464,-32309,5464,-32309,5464,-32309,5464,-32309, - 5295,-32337,5295,-32337,5295,-32337,5295,-32337, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4956,-32390,4956,-32390,4956,-32390,4956,-32390, - 4786,-32416,4786,-32416,4786,-32416,4786,-32416, - 4616,-32441,4616,-32441,4616,-32441,4616,-32441, - 4446,-32464,4446,-32464,4446,-32464,4446,-32464, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 4106,-32509,4106,-32509,4106,-32509,4106,-32509, - 3936,-32530,3936,-32530,3936,-32530,3936,-32530, - 3766,-32550,3766,-32550,3766,-32550,3766,-32550, - 3595,-32570,3595,-32570,3595,-32570,3595,-32570, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 3254,-32605,3254,-32605,3254,-32605,3254,-32605, - 3083,-32622,3083,-32622,3083,-32622,3083,-32622, - 2912,-32638,2912,-32638,2912,-32638,2912,-32638, - 2741,-32653,2741,-32653,2741,-32653,2741,-32653, - 2570,-32666,2570,-32666,2570,-32666,2570,-32666, - 2399,-32680,2399,-32680,2399,-32680,2399,-32680, - 2228,-32692,2228,-32692,2228,-32692,2228,-32692, - 2057,-32703,2057,-32703,2057,-32703,2057,-32703, - 1886,-32713,1886,-32713,1886,-32713,1886,-32713, - 1714,-32723,1714,-32723,1714,-32723,1714,-32723, - 1543,-32731,1543,-32731,1543,-32731,1543,-32731, - 1372,-32739,1372,-32739,1372,-32739,1372,-32739, - 1200,-32745,1200,-32745,1200,-32745,1200,-32745, - 1029,-32751,1029,-32751,1029,-32751,1029,-32751, - 857,-32756,857,-32756,857,-32756,857,-32756, - 686,-32760,686,-32760,686,-32760,686,-32760, - 514,-32763,514,-32763,514,-32763,514,-32763, - 343,-32766,343,-32766,343,-32766,343,-32766, - 171,-32767,171,-32767,171,-32767,171,-32767 - }; - -int16_t twb1200[4784] = {32765,-344,32765,-344,32765,-344,32765,-344, - 32759,-687,32759,-687,32759,-687,32759,-687, - 32750,-1030,32750,-1030,32750,-1030,32750,-1030, - 32738,-1373,32738,-1373,32738,-1373,32738,-1373, - 32722,-1715,32722,-1715,32722,-1715,32722,-1715, - 32702,-2058,32702,-2058,32702,-2058,32702,-2058, - 32679,-2400,32679,-2400,32679,-2400,32679,-2400, - 32652,-2742,32652,-2742,32652,-2742,32652,-2742, - 32621,-3084,32621,-3084,32621,-3084,32621,-3084, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32549,-3767,32549,-3767,32549,-3767,32549,-3767, - 32508,-4107,32508,-4107,32508,-4107,32508,-4107, - 32463,-4447,32463,-4447,32463,-4447,32463,-4447, - 32415,-4787,32415,-4787,32415,-4787,32415,-4787, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32308,-5465,32308,-5465,32308,-5465,32308,-5465, - 32249,-5803,32249,-5803,32249,-5803,32249,-5803, - 32186,-6140,32186,-6140,32186,-6140,32186,-6140, - 32120,-6477,32120,-6477,32120,-6477,32120,-6477, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31977,-7148,31977,-7148,31977,-7148,31977,-7148, - 31901,-7483,31901,-7483,31901,-7483,31901,-7483, - 31821,-7817,31821,-7817,31821,-7817,31821,-7817, - 31737,-8149,31737,-8149,31737,-8149,31737,-8149, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31559,-8812,31559,-8812,31559,-8812,31559,-8812, - 31465,-9142,31465,-9142,31465,-9142,31465,-9142, - 31368,-9471,31368,-9471,31368,-9471,31368,-9471, - 31267,-9799,31267,-9799,31267,-9799,31267,-9799, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 31055,-10452,31055,-10452,31055,-10452,31055,-10452, - 30944,-10776,30944,-10776,30944,-10776,30944,-10776, - 30829,-11100,30829,-11100,30829,-11100,30829,-11100, - 30711,-11422,30711,-11422,30711,-11422,30711,-11422, - 30590,-11743,30590,-11743,30590,-11743,30590,-11743, - 30465,-12063,30465,-12063,30465,-12063,30465,-12063, - 30338,-12381,30338,-12381,30338,-12381,30338,-12381, - 30206,-12698,30206,-12698,30206,-12698,30206,-12698, - 30072,-13014,30072,-13014,30072,-13014,30072,-13014, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29792,-13641,29792,-13641,29792,-13641,29792,-13641, - 29648,-13952,29648,-13952,29648,-13952,29648,-13952, - 29500,-14262,29500,-14262,29500,-14262,29500,-14262, - 29349,-14570,29349,-14570,29349,-14570,29349,-14570, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 29038,-15181,29038,-15181,29038,-15181,29038,-15181, - 28877,-15485,28877,-15485,28877,-15485,28877,-15485, - 28713,-15786,28713,-15786,28713,-15786,28713,-15786, - 28547,-16086,28547,-16086,28547,-16086,28547,-16086, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28203,-16680,28203,-16680,28203,-16680,28203,-16680, - 28027,-16975,28027,-16975,28027,-16975,28027,-16975, - 27848,-17267,27848,-17267,27848,-17267,27848,-17267, - 27666,-17558,27666,-17558,27666,-17558,27666,-17558, - 27480,-17847,27480,-17847,27480,-17847,27480,-17847, - 27292,-18133,27292,-18133,27292,-18133,27292,-18133, - 27100,-18418,27100,-18418,27100,-18418,27100,-18418, - 26906,-18701,26906,-18701,26906,-18701,26906,-18701, - 26709,-18982,26709,-18982,26709,-18982,26709,-18982, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26305,-19537,26305,-19537,26305,-19537,26305,-19537, - 26099,-19811,26099,-19811,26099,-19811,26099,-19811, - 25891,-20084,25891,-20084,25891,-20084,25891,-20084, - 25679,-20354,25679,-20354,25679,-20354,25679,-20354, - 25464,-20621,25464,-20621,25464,-20621,25464,-20621, - 25247,-20887,25247,-20887,25247,-20887,25247,-20887, - 25027,-21150,25027,-21150,25027,-21150,25027,-21150, - 24804,-21411,24804,-21411,24804,-21411,24804,-21411, - 24578,-21670,24578,-21670,24578,-21670,24578,-21670, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 24119,-22180,24119,-22180,24119,-22180,24119,-22180, - 23886,-22431,23886,-22431,23886,-22431,23886,-22431, - 23649,-22680,23649,-22680,23649,-22680,23649,-22680, - 23411,-22926,23411,-22926,23411,-22926,23411,-22926, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22925,-23412,22925,-23412,22925,-23412,22925,-23412, - 22679,-23650,22679,-23650,22679,-23650,22679,-23650, - 22430,-23887,22430,-23887,22430,-23887,22430,-23887, - 22179,-24120,22179,-24120,22179,-24120,22179,-24120, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21669,-24579,21669,-24579,21669,-24579,21669,-24579, - 21410,-24805,21410,-24805,21410,-24805,21410,-24805, - 21149,-25028,21149,-25028,21149,-25028,21149,-25028, - 20886,-25248,20886,-25248,20886,-25248,20886,-25248, - 20620,-25465,20620,-25465,20620,-25465,20620,-25465, - 20353,-25680,20353,-25680,20353,-25680,20353,-25680, - 20083,-25892,20083,-25892,20083,-25892,20083,-25892, - 19810,-26100,19810,-26100,19810,-26100,19810,-26100, - 19536,-26306,19536,-26306,19536,-26306,19536,-26306, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18981,-26710,18981,-26710,18981,-26710,18981,-26710, - 18700,-26907,18700,-26907,18700,-26907,18700,-26907, - 18417,-27101,18417,-27101,18417,-27101,18417,-27101, - 18132,-27293,18132,-27293,18132,-27293,18132,-27293, - 17846,-27481,17846,-27481,17846,-27481,17846,-27481, - 17557,-27667,17557,-27667,17557,-27667,17557,-27667, - 17266,-27849,17266,-27849,17266,-27849,17266,-27849, - 16974,-28028,16974,-28028,16974,-28028,16974,-28028, - 16679,-28204,16679,-28204,16679,-28204,16679,-28204, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16085,-28548,16085,-28548,16085,-28548,16085,-28548, - 15785,-28714,15785,-28714,15785,-28714,15785,-28714, - 15484,-28878,15484,-28878,15484,-28878,15484,-28878, - 15180,-29039,15180,-29039,15180,-29039,15180,-29039, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14569,-29350,14569,-29350,14569,-29350,14569,-29350, - 14261,-29501,14261,-29501,14261,-29501,14261,-29501, - 13951,-29649,13951,-29649,13951,-29649,13951,-29649, - 13640,-29793,13640,-29793,13640,-29793,13640,-29793, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 13013,-30073,13013,-30073,13013,-30073,13013,-30073, - 12697,-30207,12697,-30207,12697,-30207,12697,-30207, - 12380,-30339,12380,-30339,12380,-30339,12380,-30339, - 12062,-30466,12062,-30466,12062,-30466,12062,-30466, - 11742,-30591,11742,-30591,11742,-30591,11742,-30591, - 11421,-30712,11421,-30712,11421,-30712,11421,-30712, - 11099,-30830,11099,-30830,11099,-30830,11099,-30830, - 10775,-30945,10775,-30945,10775,-30945,10775,-30945, - 10451,-31056,10451,-31056,10451,-31056,10451,-31056, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9798,-31268,9798,-31268,9798,-31268,9798,-31268, - 9470,-31369,9470,-31369,9470,-31369,9470,-31369, - 9141,-31466,9141,-31466,9141,-31466,9141,-31466, - 8811,-31560,8811,-31560,8811,-31560,8811,-31560, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8148,-31738,8148,-31738,8148,-31738,8148,-31738, - 7816,-31822,7816,-31822,7816,-31822,7816,-31822, - 7482,-31902,7482,-31902,7482,-31902,7482,-31902, - 7147,-31978,7147,-31978,7147,-31978,7147,-31978, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6476,-32121,6476,-32121,6476,-32121,6476,-32121, - 6139,-32187,6139,-32187,6139,-32187,6139,-32187, - 5802,-32250,5802,-32250,5802,-32250,5802,-32250, - 5464,-32309,5464,-32309,5464,-32309,5464,-32309, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4786,-32416,4786,-32416,4786,-32416,4786,-32416, - 4446,-32464,4446,-32464,4446,-32464,4446,-32464, - 4106,-32509,4106,-32509,4106,-32509,4106,-32509, - 3766,-32550,3766,-32550,3766,-32550,3766,-32550, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 3083,-32622,3083,-32622,3083,-32622,3083,-32622, - 2741,-32653,2741,-32653,2741,-32653,2741,-32653, - 2399,-32680,2399,-32680,2399,-32680,2399,-32680, - 2057,-32703,2057,-32703,2057,-32703,2057,-32703, - 1714,-32723,1714,-32723,1714,-32723,1714,-32723, - 1372,-32739,1372,-32739,1372,-32739,1372,-32739, - 1029,-32751,1029,-32751,1029,-32751,1029,-32751, - 686,-32760,686,-32760,686,-32760,686,-32760, - 343,-32766,343,-32766,343,-32766,343,-32766, - 0,-32767,0,-32767,0,-32767,0,-32767, - -344,-32766,-344,-32766,-344,-32766,-344,-32766, - -687,-32760,-687,-32760,-687,-32760,-687,-32760, - -1030,-32751,-1030,-32751,-1030,-32751,-1030,-32751, - -1373,-32739,-1373,-32739,-1373,-32739,-1373,-32739, - -1715,-32723,-1715,-32723,-1715,-32723,-1715,-32723, - -2058,-32703,-2058,-32703,-2058,-32703,-2058,-32703, - -2400,-32680,-2400,-32680,-2400,-32680,-2400,-32680, - -2742,-32653,-2742,-32653,-2742,-32653,-2742,-32653, - -3084,-32622,-3084,-32622,-3084,-32622,-3084,-32622, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -3767,-32550,-3767,-32550,-3767,-32550,-3767,-32550, - -4107,-32509,-4107,-32509,-4107,-32509,-4107,-32509, - -4447,-32464,-4447,-32464,-4447,-32464,-4447,-32464, - -4787,-32416,-4787,-32416,-4787,-32416,-4787,-32416, - -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364, - -5465,-32309,-5465,-32309,-5465,-32309,-5465,-32309, - -5803,-32250,-5803,-32250,-5803,-32250,-5803,-32250, - -6140,-32187,-6140,-32187,-6140,-32187,-6140,-32187, - -6477,-32121,-6477,-32121,-6477,-32121,-6477,-32121, - -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051, - -7148,-31978,-7148,-31978,-7148,-31978,-7148,-31978, - -7483,-31902,-7483,-31902,-7483,-31902,-7483,-31902, - -7817,-31822,-7817,-31822,-7817,-31822,-7817,-31822, - -8149,-31738,-8149,-31738,-8149,-31738,-8149,-31738, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -8812,-31560,-8812,-31560,-8812,-31560,-8812,-31560, - -9142,-31466,-9142,-31466,-9142,-31466,-9142,-31466, - -9471,-31369,-9471,-31369,-9471,-31369,-9471,-31369, - -9799,-31268,-9799,-31268,-9799,-31268,-9799,-31268, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10452,-31056,-10452,-31056,-10452,-31056,-10452,-31056, - -10776,-30945,-10776,-30945,-10776,-30945,-10776,-30945, - -11100,-30830,-11100,-30830,-11100,-30830,-11100,-30830, - -11422,-30712,-11422,-30712,-11422,-30712,-11422,-30712, - -11743,-30591,-11743,-30591,-11743,-30591,-11743,-30591, - -12063,-30466,-12063,-30466,-12063,-30466,-12063,-30466, - -12381,-30339,-12381,-30339,-12381,-30339,-12381,-30339, - -12698,-30207,-12698,-30207,-12698,-30207,-12698,-30207, - -13014,-30073,-13014,-30073,-13014,-30073,-13014,-30073, - -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935, - -13641,-29793,-13641,-29793,-13641,-29793,-13641,-29793, - -13952,-29649,-13952,-29649,-13952,-29649,-13952,-29649, - -14262,-29501,-14262,-29501,-14262,-29501,-14262,-29501, - -14570,-29350,-14570,-29350,-14570,-29350,-14570,-29350, - -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196, - -15181,-29039,-15181,-29039,-15181,-29039,-15181,-29039, - -15485,-28878,-15485,-28878,-15485,-28878,-15485,-28878, - -15786,-28714,-15786,-28714,-15786,-28714,-15786,-28714, - -16086,-28548,-16086,-28548,-16086,-28548,-16086,-28548, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -16680,-28204,-16680,-28204,-16680,-28204,-16680,-28204, - -16975,-28028,-16975,-28028,-16975,-28028,-16975,-28028, - -17267,-27849,-17267,-27849,-17267,-27849,-17267,-27849, - -17558,-27667,-17558,-27667,-17558,-27667,-17558,-27667, - -17847,-27481,-17847,-27481,-17847,-27481,-17847,-27481, - -18133,-27293,-18133,-27293,-18133,-27293,-18133,-27293, - -18418,-27101,-18418,-27101,-18418,-27101,-18418,-27101, - -18701,-26907,-18701,-26907,-18701,-26907,-18701,-26907, - -18982,-26710,-18982,-26710,-18982,-26710,-18982,-26710, - -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510, - -19537,-26306,-19537,-26306,-19537,-26306,-19537,-26306, - -19811,-26100,-19811,-26100,-19811,-26100,-19811,-26100, - -20084,-25892,-20084,-25892,-20084,-25892,-20084,-25892, - -20354,-25680,-20354,-25680,-20354,-25680,-20354,-25680, - -20621,-25465,-20621,-25465,-20621,-25465,-20621,-25465, - -20887,-25248,-20887,-25248,-20887,-25248,-20887,-25248, - -21150,-25028,-21150,-25028,-21150,-25028,-21150,-25028, - -21411,-24805,-21411,-24805,-21411,-24805,-21411,-24805, - -21670,-24579,-21670,-24579,-21670,-24579,-21670,-24579, - -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351, - -22180,-24120,-22180,-24120,-22180,-24120,-22180,-24120, - -22431,-23887,-22431,-23887,-22431,-23887,-22431,-23887, - -22680,-23650,-22680,-23650,-22680,-23650,-22680,-23650, - -22926,-23412,-22926,-23412,-22926,-23412,-22926,-23412, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23412,-22926,-23412,-22926,-23412,-22926,-23412,-22926, - -23650,-22680,-23650,-22680,-23650,-22680,-23650,-22680, - -23887,-22431,-23887,-22431,-23887,-22431,-23887,-22431, - -24120,-22180,-24120,-22180,-24120,-22180,-24120,-22180, - -24351,-21926,-24351,-21926,-24351,-21926,-24351,-21926, - -24579,-21670,-24579,-21670,-24579,-21670,-24579,-21670, - -24805,-21411,-24805,-21411,-24805,-21411,-24805,-21411, - -25028,-21150,-25028,-21150,-25028,-21150,-25028,-21150, - -25248,-20887,-25248,-20887,-25248,-20887,-25248,-20887, - -25465,-20621,-25465,-20621,-25465,-20621,-25465,-20621, - -25680,-20354,-25680,-20354,-25680,-20354,-25680,-20354, - -25892,-20084,-25892,-20084,-25892,-20084,-25892,-20084, - -26100,-19811,-26100,-19811,-26100,-19811,-26100,-19811, - -26306,-19537,-26306,-19537,-26306,-19537,-26306,-19537, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -26710,-18982,-26710,-18982,-26710,-18982,-26710,-18982, - -26907,-18701,-26907,-18701,-26907,-18701,-26907,-18701, - -27101,-18418,-27101,-18418,-27101,-18418,-27101,-18418, - -27293,-18133,-27293,-18133,-27293,-18133,-27293,-18133, - -27481,-17847,-27481,-17847,-27481,-17847,-27481,-17847, - -27667,-17558,-27667,-17558,-27667,-17558,-27667,-17558, - -27849,-17267,-27849,-17267,-27849,-17267,-27849,-17267, - -28028,-16975,-28028,-16975,-28028,-16975,-28028,-16975, - -28204,-16680,-28204,-16680,-28204,-16680,-28204,-16680, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28548,-16086,-28548,-16086,-28548,-16086,-28548,-16086, - -28714,-15786,-28714,-15786,-28714,-15786,-28714,-15786, - -28878,-15485,-28878,-15485,-28878,-15485,-28878,-15485, - -29039,-15181,-29039,-15181,-29039,-15181,-29039,-15181, - -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876, - -29350,-14570,-29350,-14570,-29350,-14570,-29350,-14570, - -29501,-14262,-29501,-14262,-29501,-14262,-29501,-14262, - -29649,-13952,-29649,-13952,-29649,-13952,-29649,-13952, - -29793,-13641,-29793,-13641,-29793,-13641,-29793,-13641, - -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328, - -30073,-13014,-30073,-13014,-30073,-13014,-30073,-13014, - -30207,-12698,-30207,-12698,-30207,-12698,-30207,-12698, - -30339,-12381,-30339,-12381,-30339,-12381,-30339,-12381, - -30466,-12063,-30466,-12063,-30466,-12063,-30466,-12063, - -30591,-11743,-30591,-11743,-30591,-11743,-30591,-11743, - -30712,-11422,-30712,-11422,-30712,-11422,-30712,-11422, - -30830,-11100,-30830,-11100,-30830,-11100,-30830,-11100, - -30945,-10776,-30945,-10776,-30945,-10776,-30945,-10776, - -31056,-10452,-31056,-10452,-31056,-10452,-31056,-10452, - -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126, - -31268,-9799,-31268,-9799,-31268,-9799,-31268,-9799, - -31369,-9471,-31369,-9471,-31369,-9471,-31369,-9471, - -31466,-9142,-31466,-9142,-31466,-9142,-31466,-9142, - -31560,-8812,-31560,-8812,-31560,-8812,-31560,-8812, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31738,-8149,-31738,-8149,-31738,-8149,-31738,-8149, - -31822,-7817,-31822,-7817,-31822,-7817,-31822,-7817, - -31902,-7483,-31902,-7483,-31902,-7483,-31902,-7483, - -31978,-7148,-31978,-7148,-31978,-7148,-31978,-7148, - -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813, - -32121,-6477,-32121,-6477,-32121,-6477,-32121,-6477, - -32187,-6140,-32187,-6140,-32187,-6140,-32187,-6140, - -32250,-5803,-32250,-5803,-32250,-5803,-32250,-5803, - -32309,-5465,-32309,-5465,-32309,-5465,-32309,-5465, - -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126, - -32416,-4787,-32416,-4787,-32416,-4787,-32416,-4787, - -32464,-4447,-32464,-4447,-32464,-4447,-32464,-4447, - -32509,-4107,-32509,-4107,-32509,-4107,-32509,-4107, - -32550,-3767,-32550,-3767,-32550,-3767,-32550,-3767, - -32588,-3426,-32588,-3426,-32588,-3426,-32588,-3426, - -32622,-3084,-32622,-3084,-32622,-3084,-32622,-3084, - -32653,-2742,-32653,-2742,-32653,-2742,-32653,-2742, - -32680,-2400,-32680,-2400,-32680,-2400,-32680,-2400, - -32703,-2058,-32703,-2058,-32703,-2058,-32703,-2058, - -32723,-1715,-32723,-1715,-32723,-1715,-32723,-1715, - -32739,-1373,-32739,-1373,-32739,-1373,-32739,-1373, - -32751,-1030,-32751,-1030,-32751,-1030,-32751,-1030, - -32760,-687,-32760,-687,-32760,-687,-32760,-687, - -32766,-344,-32766,-344,-32766,-344,-32766,-344 - }; - -int16_t twc1200[4784] = { 32762,-515,32762,-515,32762,-515,32762,-515, - 32750,-1030,32750,-1030,32750,-1030,32750,-1030, - 32730,-1544,32730,-1544,32730,-1544,32730,-1544, - 32702,-2058,32702,-2058,32702,-2058,32702,-2058, - 32665,-2571,32665,-2571,32665,-2571,32665,-2571, - 32621,-3084,32621,-3084,32621,-3084,32621,-3084, - 32569,-3596,32569,-3596,32569,-3596,32569,-3596, - 32508,-4107,32508,-4107,32508,-4107,32508,-4107, - 32440,-4617,32440,-4617,32440,-4617,32440,-4617, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32279,-5634,32279,-5634,32279,-5634,32279,-5634, - 32186,-6140,32186,-6140,32186,-6140,32186,-6140, - 32086,-6645,32086,-6645,32086,-6645,32086,-6645, - 31977,-7148,31977,-7148,31977,-7148,31977,-7148, - 31861,-7650,31861,-7650,31861,-7650,31861,-7650, - 31737,-8149,31737,-8149,31737,-8149,31737,-8149, - 31605,-8647,31605,-8647,31605,-8647,31605,-8647, - 31465,-9142,31465,-9142,31465,-9142,31465,-9142, - 31318,-9635,31318,-9635,31318,-9635,31318,-9635, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 31000,-10614,31000,-10614,31000,-10614,31000,-10614, - 30829,-11100,30829,-11100,30829,-11100,30829,-11100, - 30651,-11583,30651,-11583,30651,-11583,30651,-11583, - 30465,-12063,30465,-12063,30465,-12063,30465,-12063, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30072,-13014,30072,-13014,30072,-13014,30072,-13014, - 29863,-13485,29863,-13485,29863,-13485,29863,-13485, - 29648,-13952,29648,-13952,29648,-13952,29648,-13952, - 29425,-14416,29425,-14416,29425,-14416,29425,-14416, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 28958,-15333,28958,-15333,28958,-15333,28958,-15333, - 28713,-15786,28713,-15786,28713,-15786,28713,-15786, - 28462,-16235,28462,-16235,28462,-16235,28462,-16235, - 28203,-16680,28203,-16680,28203,-16680,28203,-16680, - 27938,-17121,27938,-17121,27938,-17121,27938,-17121, - 27666,-17558,27666,-17558,27666,-17558,27666,-17558, - 27386,-17990,27386,-17990,27386,-17990,27386,-17990, - 27100,-18418,27100,-18418,27100,-18418,27100,-18418, - 26808,-18842,26808,-18842,26808,-18842,26808,-18842, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26203,-19674,26203,-19674,26203,-19674,26203,-19674, - 25891,-20084,25891,-20084,25891,-20084,25891,-20084, - 25572,-20488,25572,-20488,25572,-20488,25572,-20488, - 25247,-20887,25247,-20887,25247,-20887,25247,-20887, - 24916,-21281,24916,-21281,24916,-21281,24916,-21281, - 24578,-21670,24578,-21670,24578,-21670,24578,-21670, - 24235,-22053,24235,-22053,24235,-22053,24235,-22053, - 23886,-22431,23886,-22431,23886,-22431,23886,-22431, - 23530,-22803,23530,-22803,23530,-22803,23530,-22803, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22802,-23531,22802,-23531,22802,-23531,22802,-23531, - 22430,-23887,22430,-23887,22430,-23887,22430,-23887, - 22052,-24236,22052,-24236,22052,-24236,22052,-24236, - 21669,-24579,21669,-24579,21669,-24579,21669,-24579, - 21280,-24917,21280,-24917,21280,-24917,21280,-24917, - 20886,-25248,20886,-25248,20886,-25248,20886,-25248, - 20487,-25573,20487,-25573,20487,-25573,20487,-25573, - 20083,-25892,20083,-25892,20083,-25892,20083,-25892, - 19673,-26204,19673,-26204,19673,-26204,19673,-26204, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18841,-26809,18841,-26809,18841,-26809,18841,-26809, - 18417,-27101,18417,-27101,18417,-27101,18417,-27101, - 17989,-27387,17989,-27387,17989,-27387,17989,-27387, - 17557,-27667,17557,-27667,17557,-27667,17557,-27667, - 17120,-27939,17120,-27939,17120,-27939,17120,-27939, - 16679,-28204,16679,-28204,16679,-28204,16679,-28204, - 16234,-28463,16234,-28463,16234,-28463,16234,-28463, - 15785,-28714,15785,-28714,15785,-28714,15785,-28714, - 15332,-28959,15332,-28959,15332,-28959,15332,-28959, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14415,-29426,14415,-29426,14415,-29426,14415,-29426, - 13951,-29649,13951,-29649,13951,-29649,13951,-29649, - 13484,-29864,13484,-29864,13484,-29864,13484,-29864, - 13013,-30073,13013,-30073,13013,-30073,13013,-30073, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12062,-30466,12062,-30466,12062,-30466,12062,-30466, - 11582,-30652,11582,-30652,11582,-30652,11582,-30652, - 11099,-30830,11099,-30830,11099,-30830,11099,-30830, - 10613,-31001,10613,-31001,10613,-31001,10613,-31001, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9634,-31319,9634,-31319,9634,-31319,9634,-31319, - 9141,-31466,9141,-31466,9141,-31466,9141,-31466, - 8646,-31606,8646,-31606,8646,-31606,8646,-31606, - 8148,-31738,8148,-31738,8148,-31738,8148,-31738, - 7649,-31862,7649,-31862,7649,-31862,7649,-31862, - 7147,-31978,7147,-31978,7147,-31978,7147,-31978, - 6644,-32087,6644,-32087,6644,-32087,6644,-32087, - 6139,-32187,6139,-32187,6139,-32187,6139,-32187, - 5633,-32280,5633,-32280,5633,-32280,5633,-32280, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4616,-32441,4616,-32441,4616,-32441,4616,-32441, - 4106,-32509,4106,-32509,4106,-32509,4106,-32509, - 3595,-32570,3595,-32570,3595,-32570,3595,-32570, - 3083,-32622,3083,-32622,3083,-32622,3083,-32622, - 2570,-32666,2570,-32666,2570,-32666,2570,-32666, - 2057,-32703,2057,-32703,2057,-32703,2057,-32703, - 1543,-32731,1543,-32731,1543,-32731,1543,-32731, - 1029,-32751,1029,-32751,1029,-32751,1029,-32751, - 514,-32763,514,-32763,514,-32763,514,-32763, - 0,-32767,0,-32767,0,-32767,0,-32767, - -515,-32763,-515,-32763,-515,-32763,-515,-32763, - -1030,-32751,-1030,-32751,-1030,-32751,-1030,-32751, - -1544,-32731,-1544,-32731,-1544,-32731,-1544,-32731, - -2058,-32703,-2058,-32703,-2058,-32703,-2058,-32703, - -2571,-32666,-2571,-32666,-2571,-32666,-2571,-32666, - -3084,-32622,-3084,-32622,-3084,-32622,-3084,-32622, - -3596,-32570,-3596,-32570,-3596,-32570,-3596,-32570, - -4107,-32509,-4107,-32509,-4107,-32509,-4107,-32509, - -4617,-32441,-4617,-32441,-4617,-32441,-4617,-32441, - -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364, - -5634,-32280,-5634,-32280,-5634,-32280,-5634,-32280, - -6140,-32187,-6140,-32187,-6140,-32187,-6140,-32187, - -6645,-32087,-6645,-32087,-6645,-32087,-6645,-32087, - -7148,-31978,-7148,-31978,-7148,-31978,-7148,-31978, - -7650,-31862,-7650,-31862,-7650,-31862,-7650,-31862, - -8149,-31738,-8149,-31738,-8149,-31738,-8149,-31738, - -8647,-31606,-8647,-31606,-8647,-31606,-8647,-31606, - -9142,-31466,-9142,-31466,-9142,-31466,-9142,-31466, - -9635,-31319,-9635,-31319,-9635,-31319,-9635,-31319, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10614,-31001,-10614,-31001,-10614,-31001,-10614,-31001, - -11100,-30830,-11100,-30830,-11100,-30830,-11100,-30830, - -11583,-30652,-11583,-30652,-11583,-30652,-11583,-30652, - -12063,-30466,-12063,-30466,-12063,-30466,-12063,-30466, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -13014,-30073,-13014,-30073,-13014,-30073,-13014,-30073, - -13485,-29864,-13485,-29864,-13485,-29864,-13485,-29864, - -13952,-29649,-13952,-29649,-13952,-29649,-13952,-29649, - -14416,-29426,-14416,-29426,-14416,-29426,-14416,-29426, - -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196, - -15333,-28959,-15333,-28959,-15333,-28959,-15333,-28959, - -15786,-28714,-15786,-28714,-15786,-28714,-15786,-28714, - -16235,-28463,-16235,-28463,-16235,-28463,-16235,-28463, - -16680,-28204,-16680,-28204,-16680,-28204,-16680,-28204, - -17121,-27939,-17121,-27939,-17121,-27939,-17121,-27939, - -17558,-27667,-17558,-27667,-17558,-27667,-17558,-27667, - -17990,-27387,-17990,-27387,-17990,-27387,-17990,-27387, - -18418,-27101,-18418,-27101,-18418,-27101,-18418,-27101, - -18842,-26809,-18842,-26809,-18842,-26809,-18842,-26809, - -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510, - -19674,-26204,-19674,-26204,-19674,-26204,-19674,-26204, - -20084,-25892,-20084,-25892,-20084,-25892,-20084,-25892, - -20488,-25573,-20488,-25573,-20488,-25573,-20488,-25573, - -20887,-25248,-20887,-25248,-20887,-25248,-20887,-25248, - -21281,-24917,-21281,-24917,-21281,-24917,-21281,-24917, - -21670,-24579,-21670,-24579,-21670,-24579,-21670,-24579, - -22053,-24236,-22053,-24236,-22053,-24236,-22053,-24236, - -22431,-23887,-22431,-23887,-22431,-23887,-22431,-23887, - -22803,-23531,-22803,-23531,-22803,-23531,-22803,-23531, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23531,-22803,-23531,-22803,-23531,-22803,-23531,-22803, - -23887,-22431,-23887,-22431,-23887,-22431,-23887,-22431, - -24236,-22053,-24236,-22053,-24236,-22053,-24236,-22053, - -24579,-21670,-24579,-21670,-24579,-21670,-24579,-21670, - -24917,-21281,-24917,-21281,-24917,-21281,-24917,-21281, - -25248,-20887,-25248,-20887,-25248,-20887,-25248,-20887, - -25573,-20488,-25573,-20488,-25573,-20488,-25573,-20488, - -25892,-20084,-25892,-20084,-25892,-20084,-25892,-20084, - -26204,-19674,-26204,-19674,-26204,-19674,-26204,-19674, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -26809,-18842,-26809,-18842,-26809,-18842,-26809,-18842, - -27101,-18418,-27101,-18418,-27101,-18418,-27101,-18418, - -27387,-17990,-27387,-17990,-27387,-17990,-27387,-17990, - -27667,-17558,-27667,-17558,-27667,-17558,-27667,-17558, - -27939,-17121,-27939,-17121,-27939,-17121,-27939,-17121, - -28204,-16680,-28204,-16680,-28204,-16680,-28204,-16680, - -28463,-16235,-28463,-16235,-28463,-16235,-28463,-16235, - -28714,-15786,-28714,-15786,-28714,-15786,-28714,-15786, - -28959,-15333,-28959,-15333,-28959,-15333,-28959,-15333, - -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876, - -29426,-14416,-29426,-14416,-29426,-14416,-29426,-14416, - -29649,-13952,-29649,-13952,-29649,-13952,-29649,-13952, - -29864,-13485,-29864,-13485,-29864,-13485,-29864,-13485, - -30073,-13014,-30073,-13014,-30073,-13014,-30073,-13014, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30466,-12063,-30466,-12063,-30466,-12063,-30466,-12063, - -30652,-11583,-30652,-11583,-30652,-11583,-30652,-11583, - -30830,-11100,-30830,-11100,-30830,-11100,-30830,-11100, - -31001,-10614,-31001,-10614,-31001,-10614,-31001,-10614, - -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126, - -31319,-9635,-31319,-9635,-31319,-9635,-31319,-9635, - -31466,-9142,-31466,-9142,-31466,-9142,-31466,-9142, - -31606,-8647,-31606,-8647,-31606,-8647,-31606,-8647, - -31738,-8149,-31738,-8149,-31738,-8149,-31738,-8149, - -31862,-7650,-31862,-7650,-31862,-7650,-31862,-7650, - -31978,-7148,-31978,-7148,-31978,-7148,-31978,-7148, - -32087,-6645,-32087,-6645,-32087,-6645,-32087,-6645, - -32187,-6140,-32187,-6140,-32187,-6140,-32187,-6140, - -32280,-5634,-32280,-5634,-32280,-5634,-32280,-5634, - -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126, - -32441,-4617,-32441,-4617,-32441,-4617,-32441,-4617, - -32509,-4107,-32509,-4107,-32509,-4107,-32509,-4107, - -32570,-3596,-32570,-3596,-32570,-3596,-32570,-3596, - -32622,-3084,-32622,-3084,-32622,-3084,-32622,-3084, - -32666,-2571,-32666,-2571,-32666,-2571,-32666,-2571, - -32703,-2058,-32703,-2058,-32703,-2058,-32703,-2058, - -32731,-1544,-32731,-1544,-32731,-1544,-32731,-1544, - -32751,-1030,-32751,-1030,-32751,-1030,-32751,-1030, - -32763,-515,-32763,-515,-32763,-515,-32763,-515, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32763,514,-32763,514,-32763,514,-32763,514, - -32751,1029,-32751,1029,-32751,1029,-32751,1029, - -32731,1543,-32731,1543,-32731,1543,-32731,1543, - -32703,2057,-32703,2057,-32703,2057,-32703,2057, - -32666,2570,-32666,2570,-32666,2570,-32666,2570, - -32622,3083,-32622,3083,-32622,3083,-32622,3083, - -32570,3595,-32570,3595,-32570,3595,-32570,3595, - -32509,4106,-32509,4106,-32509,4106,-32509,4106, - -32441,4616,-32441,4616,-32441,4616,-32441,4616, - -32364,5125,-32364,5125,-32364,5125,-32364,5125, - -32280,5633,-32280,5633,-32280,5633,-32280,5633, - -32187,6139,-32187,6139,-32187,6139,-32187,6139, - -32087,6644,-32087,6644,-32087,6644,-32087,6644, - -31978,7147,-31978,7147,-31978,7147,-31978,7147, - -31862,7649,-31862,7649,-31862,7649,-31862,7649, - -31738,8148,-31738,8148,-31738,8148,-31738,8148, - -31606,8646,-31606,8646,-31606,8646,-31606,8646, - -31466,9141,-31466,9141,-31466,9141,-31466,9141, - -31319,9634,-31319,9634,-31319,9634,-31319,9634, - -31164,10125,-31164,10125,-31164,10125,-31164,10125, - -31001,10613,-31001,10613,-31001,10613,-31001,10613, - -30830,11099,-30830,11099,-30830,11099,-30830,11099, - -30652,11582,-30652,11582,-30652,11582,-30652,11582, - -30466,12062,-30466,12062,-30466,12062,-30466,12062, - -30273,12539,-30273,12539,-30273,12539,-30273,12539, - -30073,13013,-30073,13013,-30073,13013,-30073,13013, - -29864,13484,-29864,13484,-29864,13484,-29864,13484, - -29649,13951,-29649,13951,-29649,13951,-29649,13951, - -29426,14415,-29426,14415,-29426,14415,-29426,14415, - -29196,14875,-29196,14875,-29196,14875,-29196,14875, - -28959,15332,-28959,15332,-28959,15332,-28959,15332, - -28714,15785,-28714,15785,-28714,15785,-28714,15785, - -28463,16234,-28463,16234,-28463,16234,-28463,16234, - -28204,16679,-28204,16679,-28204,16679,-28204,16679, - -27939,17120,-27939,17120,-27939,17120,-27939,17120, - -27667,17557,-27667,17557,-27667,17557,-27667,17557, - -27387,17989,-27387,17989,-27387,17989,-27387,17989, - -27101,18417,-27101,18417,-27101,18417,-27101,18417, - -26809,18841,-26809,18841,-26809,18841,-26809,18841, - -26510,19259,-26510,19259,-26510,19259,-26510,19259, - -26204,19673,-26204,19673,-26204,19673,-26204,19673, - -25892,20083,-25892,20083,-25892,20083,-25892,20083, - -25573,20487,-25573,20487,-25573,20487,-25573,20487, - -25248,20886,-25248,20886,-25248,20886,-25248,20886, - -24917,21280,-24917,21280,-24917,21280,-24917,21280, - -24579,21669,-24579,21669,-24579,21669,-24579,21669, - -24236,22052,-24236,22052,-24236,22052,-24236,22052, - -23887,22430,-23887,22430,-23887,22430,-23887,22430, - -23531,22802,-23531,22802,-23531,22802,-23531,22802, - -23170,23169,-23170,23169,-23170,23169,-23170,23169, - -22803,23530,-22803,23530,-22803,23530,-22803,23530, - -22431,23886,-22431,23886,-22431,23886,-22431,23886, - -22053,24235,-22053,24235,-22053,24235,-22053,24235, - -21670,24578,-21670,24578,-21670,24578,-21670,24578, - -21281,24916,-21281,24916,-21281,24916,-21281,24916, - -20887,25247,-20887,25247,-20887,25247,-20887,25247, - -20488,25572,-20488,25572,-20488,25572,-20488,25572, - -20084,25891,-20084,25891,-20084,25891,-20084,25891, - -19674,26203,-19674,26203,-19674,26203,-19674,26203, - -19260,26509,-19260,26509,-19260,26509,-19260,26509, - -18842,26808,-18842,26808,-18842,26808,-18842,26808, - -18418,27100,-18418,27100,-18418,27100,-18418,27100, - -17990,27386,-17990,27386,-17990,27386,-17990,27386, - -17558,27666,-17558,27666,-17558,27666,-17558,27666, - -17121,27938,-17121,27938,-17121,27938,-17121,27938, - -16680,28203,-16680,28203,-16680,28203,-16680,28203, - -16235,28462,-16235,28462,-16235,28462,-16235,28462, - -15786,28713,-15786,28713,-15786,28713,-15786,28713, - -15333,28958,-15333,28958,-15333,28958,-15333,28958, - -14876,29195,-14876,29195,-14876,29195,-14876,29195, - -14416,29425,-14416,29425,-14416,29425,-14416,29425, - -13952,29648,-13952,29648,-13952,29648,-13952,29648, - -13485,29863,-13485,29863,-13485,29863,-13485,29863, - -13014,30072,-13014,30072,-13014,30072,-13014,30072, - -12540,30272,-12540,30272,-12540,30272,-12540,30272, - -12063,30465,-12063,30465,-12063,30465,-12063,30465, - -11583,30651,-11583,30651,-11583,30651,-11583,30651, - -11100,30829,-11100,30829,-11100,30829,-11100,30829, - -10614,31000,-10614,31000,-10614,31000,-10614,31000, - -10126,31163,-10126,31163,-10126,31163,-10126,31163, - -9635,31318,-9635,31318,-9635,31318,-9635,31318, - -9142,31465,-9142,31465,-9142,31465,-9142,31465, - -8647,31605,-8647,31605,-8647,31605,-8647,31605, - -8149,31737,-8149,31737,-8149,31737,-8149,31737, - -7650,31861,-7650,31861,-7650,31861,-7650,31861, - -7148,31977,-7148,31977,-7148,31977,-7148,31977, - -6645,32086,-6645,32086,-6645,32086,-6645,32086, - -6140,32186,-6140,32186,-6140,32186,-6140,32186, - -5634,32279,-5634,32279,-5634,32279,-5634,32279, - -5126,32363,-5126,32363,-5126,32363,-5126,32363, - -4617,32440,-4617,32440,-4617,32440,-4617,32440, - -4107,32508,-4107,32508,-4107,32508,-4107,32508, - -3596,32569,-3596,32569,-3596,32569,-3596,32569, - -3084,32621,-3084,32621,-3084,32621,-3084,32621, - -2571,32665,-2571,32665,-2571,32665,-2571,32665, - -2058,32702,-2058,32702,-2058,32702,-2058,32702, - -1544,32730,-1544,32730,-1544,32730,-1544,32730, - -1030,32750,-1030,32750,-1030,32750,-1030,32750, - -515,32762,-515,32762,-515,32762,-515,32762 - }; - +int16_t twa1200[4784]; +int16_t twb1200[4784]; +int16_t twc1200[4784]; void dft1200(int16_t *x,int16_t *y,unsigned char scale_flag) { @@ -18580,11 +8498,335 @@ void dft1200(int16_t *x,int16_t *y,unsigned char scale_flag) } +void init_rad4(int N,int16_t *tw) { + + int16_t *twa = tw; + int16_t *twb = twa+(N/2); + int16_t *twc = twb+(N/2); + int i; + + for (i=0;i<(N/4);i++) { + *twa = (int16_t)round(32767.0*cos(2*M_PI*i/N)); twa++; + *twa = -(int16_t)round(32767.0*sin(2*M_PI*i/N)); twa++; + *twb = (int16_t)round(32767.0*cos(2*M_PI*2*i/N)); twb++; + *twb = -(int16_t)round(32767.0*sin(2*M_PI*2*i/N)); twb++; + *twc = (int16_t)round(32767.0*cos(2*M_PI*3*i/N)); twc++; + *twc = -(int16_t)round(32767.0*sin(2*M_PI*3*i/N)); twc++; + } +} +void init_rad4_rep(int N,int16_t *twa,int16_t *twb,int16_t *twc) { + + int i,j; + + for (i=1;i<(N/4);i++) { + twa[0] = (int16_t)round(32767.0*cos(2*M_PI*i/N)); + twa[1] = -(int16_t)round(32767.0*sin(2*M_PI*i/N)); + twb[0] = (int16_t)round(32767.0*cos(2*M_PI*2*i/N)); + twb[1] = -(int16_t)round(32767.0*sin(2*M_PI*2*i/N)); + twc[0] = (int16_t)round(32767.0*cos(2*M_PI*3*i/N)); + twc[1] = -(int16_t)round(32767.0*sin(2*M_PI*3*i/N)); + for (j=1;j<4;j++) { + ((int32_t*)twa)[j]=((int32_t*)twa)[0]; + ((int32_t*)twb)[j]=((int32_t*)twb)[0]; + ((int32_t*)twc)[j]=((int32_t*)twc)[0]; + } + twa+=8; + twb+=8; + twc+=8; + } +} + +void init_rad2(int N,int16_t *tw) { + + int16_t *twa = tw; + int i; + + for (i=0;i<(N>>1);i++) { + *twa = (int16_t)round(32767.0*cos(2*M_PI*i/N)); twa++; + *twa = -(int16_t)round(32767.0*sin(2*M_PI*i/N)); twa++; + } +} + +void init_rad2_rep(int N,int16_t *twa) { + + int i,j; + + for (i=1;i<(N/2);i++) { + twa[0] = (int16_t)round(32767.0*cos(2*M_PI*i/N)); + twa[1] = -(int16_t)round(32767.0*sin(2*M_PI*i/N)); + for (j=1;j<4;j++) { + ((int32_t*)twa)[j]=((int32_t*)twa)[0]; + } + twa+=8; + } +} + +void init_rad3(int N,int16_t *twa,int16_t *twb) { + + int i; + + for (i=0;i<(N/3);i++) { + *twa = (int16_t)round(32767.0*cos(2*M_PI*i/N)); twa++; + *twa = -(int16_t)round(32767.0*sin(2*M_PI*i/N)); twa++; + *twb = (int16_t)round(32767.0*cos(2*M_PI*2*i/N)); twb++; + *twb = -(int16_t)round(32767.0*sin(2*M_PI*2*i/N)); twb++; + } +} + +void init_rad3_rep(int N,int16_t *twa,int16_t *twb) { + + int i,j; + + for (i=1;i<(N/3);i++) { + twa[0] = (int16_t)round(32767.0*cos(2*M_PI*i/N)); + twa[1] = -(int16_t)round(32767.0*sin(2*M_PI*i/N)); + twb[0] = (int16_t)round(32767.0*cos(2*M_PI*2*i/N)); + twb[1] = -(int16_t)round(32767.0*sin(2*M_PI*2*i/N)); + for (j=1;j<4;j++) { + ((int32_t*)twa)[j]=((int32_t*)twa)[0]; + ((int32_t*)twb)[j]=((int32_t*)twb)[0]; + } + twa+=8; + twb+=8; + } +} + +void init_rad5_rep(int N,int16_t *twa,int16_t *twb,int16_t *twc,int16_t *twd) { + + int i,j; + + for (i=1;i<(N/5);i++) { + twa[0] = (int16_t)round(32767.0*cos(2*M_PI*i/N)); + twa[1] = -(int16_t)round(32767.0*sin(2*M_PI*i/N)); + twb[0] = (int16_t)round(32767.0*cos(2*M_PI*2*i/N)); + twb[1] = -(int16_t)round(32767.0*sin(2*M_PI*2*i/N)); + twc[0] = (int16_t)round(32767.0*cos(2*M_PI*3*i/N)); + twc[1] = -(int16_t)round(32767.0*sin(2*M_PI*3*i/N)); + twd[0] = (int16_t)round(32767.0*cos(2*M_PI*4*i/N)); + twd[1] = -(int16_t)round(32767.0*sin(2*M_PI*4*i/N)); + for (j=1;j<4;j++) { + ((int32_t*)twa)[j]=((int32_t*)twa)[0]; + ((int32_t*)twb)[j]=((int32_t*)twb)[0]; + ((int32_t*)twc)[j]=((int32_t*)twc)[0]; + ((int32_t*)twd)[j]=((int32_t*)twd)[0]; + } + twa+=8; + twb+=8; + twc+=8; + twd+=8; + } +} + + +void init_dfts(void) +{ + init_rad4(1024,tw1024); + init_rad2(2048,tw2048); + init_rad4(4096,tw4096); + init_rad2(8192,tw8192); + + init_rad3(1536,twa1536,twb1536); + init_rad3(3072,twa3072,twb3072); + init_rad3(6144,twa6144,twb6144); + init_rad3(12288,twa12288,twb12288); + init_rad3(18432,twa18432,twb18432); + init_rad3(24576,twa24576,twb24576); + + init_rad2_rep(24,tw24); + init_rad3_rep(36,twa36,twb36); + init_rad4_rep(48,twa48,twb48,twc48); + init_rad5_rep(60,twa60,twb60,twc60,twd60); + init_rad2_rep(72,tw72); + init_rad2_rep(96,tw96); + init_rad3_rep(108,twa108,twb108); + init_rad2_rep(120,tw120); + init_rad3_rep(144,twa144,twb144); + init_rad3_rep(180,twa180,twb180); + init_rad4_rep(192,twa192,twb192,twc192); + init_rad3_rep(216,twa216,twb216); + init_rad4_rep(240,twa240,twb240,twc240); + init_rad3_rep(288,twa288,twb288); + init_rad5_rep(300,twa300,twb300,twc300,twd300); + init_rad3_rep(324,twa324,twb324); + init_rad3_rep(360,twa360,twb360); + init_rad4_rep(384,twa384,twb384,twc384); + init_rad4_rep(432,twa432,twb432,twc432); + init_rad4_rep(480,twa480,twb480,twc480); + init_rad3_rep(540,twa540,twb540); + init_rad3_rep(576,twa576,twb576); + init_rad2_rep(600,twa600); + init_rad3_rep(648,twa648,twb648); + init_rad4_rep(720,twa720,twb720,twc720); + init_rad4_rep(768,twa768,twb768,twc768); + init_rad3_rep(864,twa864,twb864); + init_rad3_rep(900,twa900,twb900); + init_rad4_rep(960,twa960,twb960,twc960); + init_rad3_rep(972,twa972,twb972); + init_rad3_rep(1080,twa1080,twb1080); + init_rad4_rep(1152,twa1152,twb1152,twc1152); + init_rad4_rep(1200,twa1200,twb1200,twc1200); +} #ifdef MR_MAIN #include #include +#define LOG_M write_output +int write_output(const char *fname,const char *vname,void *data,int length,int dec,char format) +{ + + FILE *fp=NULL; + int i; + + + printf("Writing %d elements of type %d to %s\n",length,format,fname); + + + if (format == 10 || format ==11 || format == 12 || format == 13 || format == 14) { + fp = fopen(fname,"a+"); + } else if (format != 10 && format !=11 && format != 12 && format != 13 && format != 14) { + fp = fopen(fname,"w+"); + } + + + + if (fp== NULL) { + printf("[OPENAIR][FILE OUTPUT] Cannot open file %s\n",fname); + return(-1); + } + + if (format != 10 && format !=11 && format != 12 && format != 13 && format != 14) + fprintf(fp,"%s = [",vname); + + + switch (format) { + case 0: // real 16-bit + + for (i=0; i 0)) + fprintf(fp,"%d + j*(%d),",((short *)data)[i],((short *)data)[i+1]); + else if (i == 2*(length-1)) + fprintf(fp,"%d + j*(%d);",((short *)data)[i],((short *)data)[i+1]); + else if (i == 0) + fprintf(fp,"\n%d + j*(%d),",((short *)data)[i],((short *)data)[i+1]); + + + + } + + break; + + case 11 : //case eren 16 bit real for channel magnitudes: + for (i=0; i 0)) + fprintf(fp,"%d,",((short *)data)[i]); + else if (i == (length-1)) + fprintf(fp,"%d;",((short *)data)[i]); + else if (i == 0) + fprintf(fp,"\n%d,",((short *)data)[i]); + } + + printf("\n erennnnnnnnnnnnnnn: length :%d",length); + break; + + case 12 : // case eren for log2_maxh real unsigned 8 bit + fprintf(fp,"%d \n",((unsigned char *)&data)[0]); + break; + + } + + if (format != 10 && format !=11 && format !=12 && format != 13 && format != 15) { + fprintf(fp,"];\n"); + fclose(fp); + return(0); + } else if (format == 10 || format ==11 || format == 12 || format == 13 || format == 15) { + fclose(fp); + return(0); + } + + return 0; +} + int main(int argc, char**argv) { @@ -18592,12 +8834,14 @@ int main(int argc, char**argv) time_stats_t ts; #ifdef __AVX2__ - simd256_q15_t x[2048],y[2048],tw0,tw1,tw2,tw3; + simd256_q15_t x[4096],y[4096],tw0,tw1,tw2,tw3; #else - simd_q15_t x[4096],y[4096],tw0,tw1,tw2,tw3; + simd_q15_t x[8192],y[8192],tw0,tw1,tw2,tw3; #endif int i; - simd_q15_t *x128=x,*y128=y; + simd_q15_t *x128=(simd_q15_t*)x,*y128=(simd_q15_t*)y; + + init_dfts(); set_taus_seed(0); opp_enabled = 1; @@ -18764,155 +9008,7 @@ int main(int argc, char**argv) printf("%d,%d,",((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); printf("\n"); - dft24((int16_t *)x,(int16_t *)y,1); - printf("\n\n24-point\n"); - printf("X: "); - for (i=0;i<24;i++) - printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]); - printf("\nY:"); - for (i=0;i<24;i++) - printf("%d,%d,",((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); - printf("\n"); - - dft36((int16_t *)x,(int16_t *)y,1); - printf("\n\n36-point\n"); - printf("X: "); - for (i=0;i<36;i++) - printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]); - printf("\nY:"); - for (i=0;i<36;i++) - printf("%d,%d,",((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); - printf("\n"); - - dft48((int16_t *)x,(int16_t *)y,1); - printf("\n\n48-point\n"); - printf("X: "); - for (i=0;i<48;i++) - printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]); - printf("\nY:"); - for (i=0;i<48;i++) - printf("%d,%d,",((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); - printf("\n"); */ - dft60((int16_t *)x,(int16_t *)y,1); - printf("\n\n60-point\n"); - printf("X: "); - for (i=0;i<60;i++) - printf("%d,%d,",((int16_t*)(&x128[i]))[0],((int16_t *)(&x128[i]))[1]); - printf("\nY:"); - for (i=0;i<60;i++) - printf("%d,%d,",((int16_t*)(&y128[i]))[0],((int16_t *)(&y128[i]))[1]); - printf("\n"); - - dft72((int16_t *)x,(int16_t *)y,1); - printf("\n\n72-point\n"); - printf("X: "); - for (i=0;i<72;i++) - printf("%d,%d,",((int16_t*)(&x128[i]))[0],((int16_t *)(&x128[i]))[1]); - printf("\nY:"); - for (i=0;i<72;i++) - printf("%d: %d,%d\n",i,((int16_t*)(&y128[i]))[0],((int16_t *)(&y128[i]))[1]); - printf("\n"); - /* - dft96((int16_t *)x,(int16_t *)y,1); - printf("\n\n96-point\n"); - printf("X: "); - for (i=0;i<96;i++) - printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]); - printf("\nY:"); - for (i=0;i<96;i++) - printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); - printf("\n"); - - dft108((int16_t *)x,(int16_t *)y,1); - printf("\n\n108-point\n"); - printf("X: "); - for (i=0;i<108;i++) - printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]); - printf("\nY:"); - for (i=0;i<108;i++) - printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); - printf("\n"); - */ - dft120((int16_t *)x,(int16_t *)y,1); - printf("\n\n120-point\n"); - printf("X: "); - for (i=0;i<120;i++) - printf("%d,%d,",((int16_t*)(&x128[i]))[0],((int16_t *)(&x128[i]))[1]); - printf("\nY:"); - for (i=0;i<120;i++) - printf("%d: %d,%d\n",i,((int16_t*)(&y128[i]))[0],((int16_t *)(&y128[i]))[1]); - printf("\n"); - /* - dft144((int16_t *)x,(int16_t *)y,1); - printf("\n\n144-point\n"); - printf("X: "); - for (i=0;i<144;i++) - printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]); - printf("\nY:"); - for (i=0;i<144;i++) - printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); - printf("\n"); - - dft180((int16_t *)x,(int16_t *)y,1); - printf("\n\n180-point\n"); - printf("X: "); - for (i=0;i<180;i++) - printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]); - printf("\nY:"); - for (i=0;i<180;i++) - printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); - printf("\n"); - - dft192((int16_t *)x,(int16_t *)y,1); - printf("\n\n192-point\n"); - printf("X: "); - for (i=0;i<192;i++) - printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]); - printf("\nY:"); - for (i=0;i<192;i++) - printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); - printf("\n"); - - dft216((int16_t *)x,(int16_t *)y,1); - printf("\n\n216-point\n"); - printf("X: "); - for (i=0;i<216;i++) - printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]); - printf("\nY:"); - for (i=0;i<216;i++) - printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); - printf("\n"); - - dft240((int16_t *)x,(int16_t *)y,1); - printf("\n\n240-point\n"); - printf("X: "); - for (i=0;i<240;i++) - printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]); - printf("\nY:"); - for (i=0;i<240;i++) - printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); - printf("\n"); - - dft288((int16_t *)x,(int16_t *)y,1); - printf("\n\n288-point\n"); - printf("X: "); - for (i=0;i<288;i++) - printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]); - printf("\nY:"); - for (i=0;i<288;i++) - printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); - printf("\n"); - - dft300((int16_t *)x,(int16_t *)y,1); - printf("\n\n300-point\n"); - printf("X: "); - for (i=0;i<300;i++) - printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]); - printf("\nY:"); - for (i=0;i<300;i++) - printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); - printf("\n"); for (i=0;i<32;i++) { ((int16_t*)x)[i] = (int16_t)((taus()&0xffff))>>5; @@ -18928,7 +9024,7 @@ int main(int argc, char**argv) for (i=0;i<4;i++) printf("%d,%d,%d,%d,%d,%d,%d,%d,",((int16_t*)&y[i])[0],((int16_t *)&y[i])[1],((int16_t*)&y[i])[2],((int16_t *)&y[i])[3],((int16_t*)&y[i])[4],((int16_t *)&y[i])[5],((int16_t*)&y[i])[6],((int16_t *)&y[i])[7]); printf("\n"); - */ + memset((void*)&x[0],0,2048*4); for (i=0; i<2048; i+=4) { @@ -18994,12 +9090,12 @@ int main(int argc, char**argv) stop_meas(&ts); } - + /* printf("\n\n64-point (%f cycles, #trials %d)\n",(double)ts.diff/(double)ts.trials,ts.trials); - // write_output("x64.m","x64",x,64,1,1); - write_output("y64.m","y64",y,64,1,1); - write_output("x64.m","x64",x,64,1,1); - + // LOG_M("x64.m","x64",x,64,1,1); + LOG_M("y64.m","y64",y,64,1,1); + LOG_M("x64.m","x64",x,64,1,1); + */ /* printf("X: "); for (i=0;i<16;i++) @@ -19042,8 +9138,8 @@ int main(int argc, char**argv) } printf("\n\n128-point(%f cycles)\n",(double)ts.diff/(double)ts.trials); - write_output("y128.m","y128",y,128,1,1); - write_output("x128.m","x128",x,128,1,1); + LOG_M("y128.m","y128",y,128,1,1); + LOG_M("x128.m","x128",x,128,1,1); /* printf("X: "); for (i=0;i<32;i++) @@ -19084,8 +9180,8 @@ int main(int argc, char**argv) } printf("\n\n256-point(%f cycles)\n",(double)ts.diff/(double)ts.trials); - write_output("y256.m","y256",y,256,1,1); - write_output("x256.m","x256",x,256,1,1); + LOG_M("y256.m","y256",y,256,1,1); + LOG_M("x256.m","x256",x,256,1,1); memset((void*)&x[0],0,512*sizeof(int32_t)); for (i=2;i<302;i++) { @@ -19109,8 +9205,8 @@ int main(int argc, char**argv) } printf("\n\n512-point(%f cycles)\n",(double)ts.diff/(double)ts.trials); - write_output("y512.m","y512",y,512,1,1); - write_output("x512.m","x512",x,512,1,1); + LOG_M("y512.m","y512",y,512,1,1); + LOG_M("x512.m","x512",x,512,1,1); /* printf("X: "); for (i=0;i<64;i++) @@ -19144,8 +9240,8 @@ int main(int argc, char**argv) } printf("\n\n1024-point(%f cycles)\n",(double)ts.diff/(double)ts.trials); - write_output("y1024.m","y1024",y,1024,1,1); - write_output("x1024.m","x1024",x,1024,1,1); + LOG_M("y1024.m","y1024",y,1024,1,1); + LOG_M("x1024.m","x1024",x,1024,1,1); memset((void*)x,0,2048*sizeof(int32_t)); for (i=2;i<1202;i++) { @@ -19169,8 +9265,8 @@ int main(int argc, char**argv) } printf("\n\n2048-point(%f cycles)\n",(double)ts.diff/(double)ts.trials); - write_output("y2048.m","y2048",y,2048,1,1); - write_output("x2048.m","x2048",x,2048,1,1); + LOG_M("y2048.m","y2048",y,2048,1,1); + LOG_M("x2048.m","x2048",x,2048,1,1); memset((void*)x,0,2048*sizeof(int32_t)); for (i=2;i<2402;i++) { @@ -19194,8 +9290,8 @@ int main(int argc, char**argv) } printf("\n\n4096-point(%f cycles)\n",(double)ts.diff/(double)ts.trials); - write_output("y4096.m","y4096",y,4096,1,1); - write_output("x4096.m","x4096",x,4096,1,1); + LOG_M("y4096.m","y4096",y,4096,1,1); + LOG_M("x4096.m","x4096",x,4096,1,1); memset((void*)x,0,8192*sizeof(int32_t)); for (i=2;i<4802;i++) { @@ -19204,7 +9300,7 @@ int main(int argc, char**argv) else ((int16_t*)x)[i] = -364; } - for (i=2*(4096-1200);i<8192;i++) { + for (i=2*(8192-2400);i<16384;i++) { if ((taus() & 1)==0) ((int16_t*)x)[i] = 364; else @@ -19217,9 +9313,191 @@ int main(int argc, char**argv) stop_meas(&ts); } - printf("\n\n8192-point(%f cycles)\n",(double)ts.diff/(double)ts.trials); - write_output("y8192.m","y8192",y,8192,1,1); - write_output("x8192.m","x8192",x,8192,1,1); + printf("\n\n1536-point(%f cycles)\n",(double)ts.diff/(double)ts.trials); + LOG_M("y8192.m","y8192",y,8192,1,1); + LOG_M("x8192.m","x8192",x,8192,1,1); + + memset((void*)x,0,1536*sizeof(int32_t)); + for (i=2;i<1202;i++) { + if ((taus() & 1)==0) + ((int16_t*)x)[i] = 364; + else + ((int16_t*)x)[i] = -364; + } + for (i=2*(1536-600);i<3072;i++) { + if ((taus() & 1)==0) + ((int16_t*)x)[i] = 364; + else + ((int16_t*)x)[i] = -364; + } + reset_meas(&ts); + for (i=0; i<10000; i++) { + start_meas(&ts); + idft1536((int16_t *)x,(int16_t *)y,1); + stop_meas(&ts); + } + + printf("\n\n1536-point(%f cycles)\n",(double)ts.diff/(double)ts.trials); + LOG_M("y1536.m","y1536",y,1536,1,1); + LOG_M("x1536.m","x1536",x,1536,1,1); + + printf("\n\n1536-point(%f cycles)\n",(double)ts.diff/(double)ts.trials); + LOG_M("y8192.m","y8192",y,8192,1,1); + LOG_M("x8192.m","x8192",x,8192,1,1); + + memset((void*)x,0,3072*sizeof(int32_t)); + for (i=2;i<1202;i++) { + if ((taus() & 1)==0) + ((int16_t*)x)[i] = 364; + else + ((int16_t*)x)[i] = -364; + } + for (i=2*(3072-600);i<3072;i++) { + if ((taus() & 1)==0) + ((int16_t*)x)[i] = 364; + else + ((int16_t*)x)[i] = -364; + } + reset_meas(&ts); + for (i=0; i<10000; i++) { + start_meas(&ts); + idft3072((int16_t *)x,(int16_t *)y,1); + stop_meas(&ts); + } + + printf("\n\n3072-point(%f cycles)\n",(double)ts.diff/(double)ts.trials); + LOG_M("y3072.m","y3072",y,3072,1,1); + LOG_M("x3072.m","x3072",x,3072,1,1); + + memset((void*)x,0,6144*sizeof(int32_t)); + for (i=2;i<4802;i++) { + if ((taus() & 1)==0) + ((int16_t*)x)[i] = 364; + else + ((int16_t*)x)[i] = -364; + } + for (i=2*(6144-2400);i<12288;i++) { + if ((taus() & 1)==0) + ((int16_t*)x)[i] = 364; + else + ((int16_t*)x)[i] = -364; + } + reset_meas(&ts); + for (i=0; i<10000; i++) { + start_meas(&ts); + idft6144((int16_t *)x,(int16_t *)y,1); + stop_meas(&ts); + } + + printf("\n\n6144-point(%f cycles)\n",(double)ts.diff/(double)ts.trials); + LOG_M("y6144.m","y6144",y,6144,1,1); + LOG_M("x6144.m","x6144",x,6144,1,1); + + memset((void*)x,0,12288*sizeof(int32_t)); + for (i=2;i<9602;i++) { + if ((taus() & 1)==0) + ((int16_t*)x)[i] = 364; + else + ((int16_t*)x)[i] = -364; + } + for (i=2*(12288-4800);i<24576;i++) { + if ((taus() & 1)==0) + ((int16_t*)x)[i] = 364; + else + ((int16_t*)x)[i] = -364; + } + reset_meas(&ts); + for (i=0; i<10000; i++) { + start_meas(&ts); + idft12288((int16_t *)x,(int16_t *)y,1); + stop_meas(&ts); + } + + printf("\n\n12288-point(%f cycles)\n",(double)ts.diff/(double)ts.trials); + LOG_M("y12288.m","y12288",y,12288,1,1); + LOG_M("x12288.m","x12288",x,12288,1,1); + + memset((void*)x,0,18432*sizeof(int32_t)); + for (i=2;i<14402;i++) { + if ((taus() & 1)==0) + ((int16_t*)x)[i] = 364; + else + ((int16_t*)x)[i] = -364; + } + for (i=2*(18432-7200);i<36864;i++) { + if ((taus() & 1)==0) + ((int16_t*)x)[i] = 364; + else + ((int16_t*)x)[i] = -364; + } + reset_meas(&ts); + for (i=0; i<10000; i++) { + start_meas(&ts); + idft18432((int16_t *)x,(int16_t *)y,1); + stop_meas(&ts); + } + + printf("\n\n18432-point(%f cycles)\n",(double)ts.diff/(double)ts.trials); + LOG_M("y18432.m","y18432",y,18432,1,1); + LOG_M("x18432.m","x18432",x,18432,1,1); + + memset((void*)x,0,24576*sizeof(int32_t)); + for (i=2;i<19202;i++) { + if ((taus() & 1)==0) + ((int16_t*)x)[i] = 364; + else + ((int16_t*)x)[i] = -364; + } + for (i=2*(24576-19200);i<49152;i++) { + if ((taus() & 1)==0) + ((int16_t*)x)[i] = 364; + else + ((int16_t*)x)[i] = -364; + } + reset_meas(&ts); + for (i=0; i<10000; i++) { + start_meas(&ts); + idft24576((int16_t *)x,(int16_t *)y,1); + stop_meas(&ts); + } + + printf("\n\n24576-point(%f cycles)\n",(double)ts.diff/(double)ts.trials); + LOG_M("y24576.m","y24576",y,24576,1,1); + LOG_M("x24576.m","x24576",x,24576,1,1); + + int dftsizes[33]={24,36,48,60,72,96,108,120,144,180,192,216,240,288,300,324,360,384,432,480,540,576,600,648,720,768,864,900,960,972,1080,1152,1200}; + void (*dft[33])(int16_t *x,int16_t *y,uint8_t scale) = {dft24,dft36,dft48,dft60,dft72,dft96,dft108,dft120,dft144,dft180,dft192,dft216,dft240,dft288,dft300,dft324,dft360,dft384,dft432,dft480,dft540,dft576,dft600,dft648,dft720,dft768,dft864,dft900,dft960,dft972,dft1080,dft1152,dft1200}; + for (int n=0;n<33;n++) { + // 4xN-point DFT + memset((void*)x,0,dftsizes[n]*8*sizeof(int16_t)); + for (i=0;i - -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(0:511)/1536)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*(0:2:1022)/1536)); -twa2 = zeros(1,1024); -twb2 = zeros(1,1024); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); - - - */ - -int16_t twa1536[1024] __attribute__((aligned(16))) = {32767,0,32766,-135,32765,-269,32764,-403,32762,-537,32760,-671,32757,-805,32753,-939,32749,-1073,32744,-1207,32739,-1340,32733,-1474,32727,-1608,32720,-1742,32713,-1876,32705,-2010,32696,-2144,32687,-2277,32678,-2411,32668,-2545,32657,-2678,32646,-2812,32634,-2945,32622,-3079,32609,-3212,32595,-3346,32581,-3479,32567,-3612,32552,-3745,32536,-3878,32520,-4012,32503,-4145,32486,-4277,32468,-4410,32450,-4543,32431,-4676,32412,-4808,32392,-4941,32371,-5073,32350,-5206,32329,-5338,32307,-5470,32284,-5602,32261,-5734,32237,-5866,32213,-5998,32188,-6130,32163,-6262,32137,-6393,32110,-6524,32084,-6656,32056,-6787,32028,-6918,31999,-7049,31970,-7180,31941,-7311,31911,-7441,31880,-7572,31849,-7702,31817,-7832,31785,-7962,31752,-8092,31718,-8222,31684,-8352,31650,-8481,31615,-8611,31580,-8740,31544,-8869,31507,-8998,31470,-9127,31432,-9255,31394,-9384,31356,-9512,31316,-9640,31277,-9768,31236,-9896,31196,-10024,31154,-10152,31113,-10279,31070,-10406,31028,-10533,30984,-10660,30940,-10787,30896,-10913,30851,-11039,30806,-11165,30760,-11291,30713,-11417,30666,-11543,30619,-11668,30571,-11793,30522,-11918,30473,-12043,30424,-12167,30374,-12292,30323,-12416,30272,-12540,30221,-12664,30169,-12787,30116,-12910,30063,-13034,30009,-13156,29955,-13279,29901,-13401,29846,-13524,29790,-13646,29734,-13767,29678,-13889,29621,-14010,29563,-14131,29505,-14252,29446,-14373,29387,-14493,29328,-14613,29268,-14733,29207,-14853,29146,-14972,29085,-15091,29023,-15210,28960,-15328,28897,-15447,28834,-15565,28770,-15683,28706,-15800,28641,-15918,28575,-16035,28510,-16151,28443,-16268,28377,-16384,28309,-16500,28242,-16616,28173,-16731,28105,-16846,28036,-16961,27966,-17075,27896,-17190,27825,-17304,27754,-17417,27683,-17531,27611,-17644,27538,-17757,27466,-17869,27392,-17981,27319,-18093,27244,-18205,27170,-18316,27094,-18427,27019,-18538,26943,-18648,26866,-18758,26789,-18868,26712,-18977,26634,-19087,26556,-19195,26477,-19304,26398,-19412,26318,-19520,26238,-19627,26158,-19734,26077,-19841,25995,-19948,25913,-20054,25831,-20160,25749,-20265,25665,-20370,25582,-20475,25498,-20580,25414,-20684,25329,-20788,25243,-20891,25158,-20994,25072,-21097,24985,-21199,24898,-21301,24811,-21403,24723,-21504,24635,-21605,24546,-21706,24457,-21806,24368,-21906,24278,-22005,24188,-22105,24097,-22203,24006,-22302,23915,-22400,23823,-22497,23731,-22595,23638,-22692,23545,-22788,23452,-22884,23358,-22980,23264,-23075,23169,-23170,23074,-23265,22979,-23359,22883,-23453,22787,-23546,22691,-23639,22594,-23732,22496,-23824,22399,-23916,22301,-24007,22202,-24098,22104,-24189,22004,-24279,21905,-24369,21805,-24458,21705,-24547,21604,-24636,21503,-24724,21402,-24812,21300,-24899,21198,-24986,21096,-25073,20993,-25159,20890,-25244,20787,-25330,20683,-25415,20579,-25499,20474,-25583,20369,-25666,20264,-25750,20159,-25832,20053,-25914,19947,-25996,19840,-26078,19733,-26159,19626,-26239,19519,-26319,19411,-26399,19303,-26478,19194,-26557,19086,-26635,18976,-26713,18867,-26790,18757,-26867,18647,-26944,18537,-27020,18426,-27095,18315,-27171,18204,-27245,18092,-27320,17980,-27393,17868,-27467,17756,-27539,17643,-27612,17530,-27684,17416,-27755,17303,-27826,17189,-27897,17074,-27967,16960,-28037,16845,-28106,16730,-28174,16615,-28243,16499,-28310,16383,-28378,16267,-28444,16150,-28511,16034,-28576,15917,-28642,15799,-28707,15682,-28771,15564,-28835,15446,-28898,15327,-28961,15209,-29024,15090,-29086,14971,-29147,14852,-29208,14732,-29269,14612,-29329,14492,-29388,14372,-29447,14251,-29506,14130,-29564,14009,-29622,13888,-29679,13766,-29735,13645,-29791,13523,-29847,13400,-29902,13278,-29956,13155,-30010,13033,-30064,12909,-30117,12786,-30170,12663,-30222,12539,-30273,12415,-30324,12291,-30375,12166,-30425,12042,-30474,11917,-30523,11792,-30572,11667,-30620,11542,-30667,11416,-30714,11290,-30761,11164,-30807,11038,-30852,10912,-30897,10786,-30941,10659,-30985,10532,-31029,10405,-31071,10278,-31114,10151,-31155,10023,-31197,9895,-31237,9767,-31278,9639,-31317,9511,-31357,9383,-31395,9254,-31433,9126,-31471,8997,-31508,8868,-31545,8739,-31581,8610,-31616,8480,-31651,8351,-31685,8221,-31719,8091,-31753,7961,-31786,7831,-31818,7701,-31850,7571,-31881,7440,-31912,7310,-31942,7179,-31971,7048,-32000,6917,-32029,6786,-32057,6655,-32085,6523,-32111,6392,-32138,6261,-32164,6129,-32189,5997,-32214,5865,-32238,5733,-32262,5601,-32285,5469,-32308,5337,-32330,5205,-32351,5072,-32372,4940,-32393,4807,-32413,4675,-32432,4542,-32451,4409,-32469,4276,-32487,4144,-32504,4011,-32521,3877,-32537,3744,-32553,3611,-32568,3478,-32582,3345,-32596,3211,-32610,3078,-32623,2944,-32635,2811,-32647,2677,-32658,2544,-32669,2410,-32679,2276,-32688,2143,-32697,2009,-32706,1875,-32714,1741,-32721,1607,-32728,1473,-32734,1339,-32740,1206,-32745,1072,-32750,938,-32754,804,-32758,670,-32761,536,-32763,402,-32765,268,-32766,134,-32767,0,-32767,-135,-32767,-269,-32766,-403,-32765,-537,-32763,-671,-32761,-805,-32758,-939,-32754,-1073,-32750,-1207,-32745,-1340,-32740,-1474,-32734,-1608,-32728,-1742,-32721,-1876,-32714,-2010,-32706,-2144,-32697,-2277,-32688,-2411,-32679,-2545,-32669,-2678,-32658,-2812,-32647,-2945,-32635,-3079,-32623,-3212,-32610,-3346,-32596,-3479,-32582,-3612,-32568,-3745,-32553,-3878,-32537,-4012,-32521,-4145,-32504,-4277,-32487,-4410,-32469,-4543,-32451,-4676,-32432,-4808,-32413,-4941,-32393,-5073,-32372,-5206,-32351,-5338,-32330,-5470,-32308,-5602,-32285,-5734,-32262,-5866,-32238,-5998,-32214,-6130,-32189,-6262,-32164,-6393,-32138,-6524,-32111,-6656,-32085,-6787,-32057,-6918,-32029,-7049,-32000,-7180,-31971,-7311,-31942,-7441,-31912,-7572,-31881,-7702,-31850,-7832,-31818,-7962,-31786,-8092,-31753,-8222,-31719,-8352,-31685,-8481,-31651,-8611,-31616,-8740,-31581,-8869,-31545,-8998,-31508,-9127,-31471,-9255,-31433,-9384,-31395,-9512,-31357,-9640,-31317,-9768,-31278,-9896,-31237,-10024,-31197,-10152,-31155,-10279,-31114,-10406,-31071,-10533,-31029,-10660,-30985,-10787,-30941,-10913,-30897,-11039,-30852,-11165,-30807,-11291,-30761,-11417,-30714,-11543,-30667,-11668,-30620,-11793,-30572,-11918,-30523,-12043,-30474,-12167,-30425,-12292,-30375,-12416,-30324,-12540,-30273,-12664,-30222,-12787,-30170,-12910,-30117,-13034,-30064,-13156,-30010,-13279,-29956,-13401,-29902,-13524,-29847,-13646,-29791,-13767,-29735,-13889,-29679,-14010,-29622,-14131,-29564,-14252,-29506,-14373,-29447,-14493,-29388,-14613,-29329,-14733,-29269,-14853,-29208,-14972,-29147,-15091,-29086,-15210,-29024,-15328,-28961,-15447,-28898,-15565,-28835,-15683,-28771,-15800,-28707,-15918,-28642,-16035,-28576,-16151,-28511,-16268,-28444}; - -int16_t twb1536[1024] __attribute__((aligned(16))) = {32767,0,32765,-269,32762,-537,32757,-805,32749,-1073,32739,-1340,32727,-1608,32713,-1876,32696,-2144,32678,-2411,32657,-2678,32634,-2945,32609,-3212,32581,-3479,32552,-3745,32520,-4012,32486,-4277,32450,-4543,32412,-4808,32371,-5073,32329,-5338,32284,-5602,32237,-5866,32188,-6130,32137,-6393,32084,-6656,32028,-6918,31970,-7180,31911,-7441,31849,-7702,31785,-7962,31718,-8222,31650,-8481,31580,-8740,31507,-8998,31432,-9255,31356,-9512,31277,-9768,31196,-10024,31113,-10279,31028,-10533,30940,-10787,30851,-11039,30760,-11291,30666,-11543,30571,-11793,30473,-12043,30374,-12292,30272,-12540,30169,-12787,30063,-13034,29955,-13279,29846,-13524,29734,-13767,29621,-14010,29505,-14252,29387,-14493,29268,-14733,29146,-14972,29023,-15210,28897,-15447,28770,-15683,28641,-15918,28510,-16151,28377,-16384,28242,-16616,28105,-16846,27966,-17075,27825,-17304,27683,-17531,27538,-17757,27392,-17981,27244,-18205,27094,-18427,26943,-18648,26789,-18868,26634,-19087,26477,-19304,26318,-19520,26158,-19734,25995,-19948,25831,-20160,25665,-20370,25498,-20580,25329,-20788,25158,-20994,24985,-21199,24811,-21403,24635,-21605,24457,-21806,24278,-22005,24097,-22203,23915,-22400,23731,-22595,23545,-22788,23358,-22980,23169,-23170,22979,-23359,22787,-23546,22594,-23732,22399,-23916,22202,-24098,22004,-24279,21805,-24458,21604,-24636,21402,-24812,21198,-24986,20993,-25159,20787,-25330,20579,-25499,20369,-25666,20159,-25832,19947,-25996,19733,-26159,19519,-26319,19303,-26478,19086,-26635,18867,-26790,18647,-26944,18426,-27095,18204,-27245,17980,-27393,17756,-27539,17530,-27684,17303,-27826,17074,-27967,16845,-28106,16615,-28243,16383,-28378,16150,-28511,15917,-28642,15682,-28771,15446,-28898,15209,-29024,14971,-29147,14732,-29269,14492,-29388,14251,-29506,14009,-29622,13766,-29735,13523,-29847,13278,-29956,13033,-30064,12786,-30170,12539,-30273,12291,-30375,12042,-30474,11792,-30572,11542,-30667,11290,-30761,11038,-30852,10786,-30941,10532,-31029,10278,-31114,10023,-31197,9767,-31278,9511,-31357,9254,-31433,8997,-31508,8739,-31581,8480,-31651,8221,-31719,7961,-31786,7701,-31850,7440,-31912,7179,-31971,6917,-32029,6655,-32085,6392,-32138,6129,-32189,5865,-32238,5601,-32285,5337,-32330,5072,-32372,4807,-32413,4542,-32451,4276,-32487,4011,-32521,3744,-32553,3478,-32582,3211,-32610,2944,-32635,2677,-32658,2410,-32679,2143,-32697,1875,-32714,1607,-32728,1339,-32740,1072,-32750,804,-32758,536,-32763,268,-32766,0,-32767,-269,-32766,-537,-32763,-805,-32758,-1073,-32750,-1340,-32740,-1608,-32728,-1876,-32714,-2144,-32697,-2411,-32679,-2678,-32658,-2945,-32635,-3212,-32610,-3479,-32582,-3745,-32553,-4012,-32521,-4277,-32487,-4543,-32451,-4808,-32413,-5073,-32372,-5338,-32330,-5602,-32285,-5866,-32238,-6130,-32189,-6393,-32138,-6656,-32085,-6918,-32029,-7180,-31971,-7441,-31912,-7702,-31850,-7962,-31786,-8222,-31719,-8481,-31651,-8740,-31581,-8998,-31508,-9255,-31433,-9512,-31357,-9768,-31278,-10024,-31197,-10279,-31114,-10533,-31029,-10787,-30941,-11039,-30852,-11291,-30761,-11543,-30667,-11793,-30572,-12043,-30474,-12292,-30375,-12540,-30273,-12787,-30170,-13034,-30064,-13279,-29956,-13524,-29847,-13767,-29735,-14010,-29622,-14252,-29506,-14493,-29388,-14733,-29269,-14972,-29147,-15210,-29024,-15447,-28898,-15683,-28771,-15918,-28642,-16151,-28511,-16384,-28378,-16616,-28243,-16846,-28106,-17075,-27967,-17304,-27826,-17531,-27684,-17757,-27539,-17981,-27393,-18205,-27245,-18427,-27095,-18648,-26944,-18868,-26790,-19087,-26635,-19304,-26478,-19520,-26319,-19734,-26159,-19948,-25996,-20160,-25832,-20370,-25666,-20580,-25499,-20788,-25330,-20994,-25159,-21199,-24986,-21403,-24812,-21605,-24636,-21806,-24458,-22005,-24279,-22203,-24098,-22400,-23916,-22595,-23732,-22788,-23546,-22980,-23359,-23170,-23170,-23359,-22980,-23546,-22788,-23732,-22595,-23916,-22400,-24098,-22203,-24279,-22005,-24458,-21806,-24636,-21605,-24812,-21403,-24986,-21199,-25159,-20994,-25330,-20788,-25499,-20580,-25666,-20370,-25832,-20160,-25996,-19948,-26159,-19734,-26319,-19520,-26478,-19304,-26635,-19087,-26790,-18868,-26944,-18648,-27095,-18427,-27245,-18205,-27393,-17981,-27539,-17757,-27684,-17531,-27826,-17304,-27967,-17075,-28106,-16846,-28243,-16616,-28378,-16384,-28511,-16151,-28642,-15918,-28771,-15683,-28898,-15447,-29024,-15210,-29147,-14972,-29269,-14733,-29388,-14493,-29506,-14252,-29622,-14010,-29735,-13767,-29847,-13524,-29956,-13279,-30064,-13034,-30170,-12787,-30273,-12540,-30375,-12292,-30474,-12043,-30572,-11793,-30667,-11543,-30761,-11291,-30852,-11039,-30941,-10787,-31029,-10533,-31114,-10279,-31197,-10024,-31278,-9768,-31357,-9512,-31433,-9255,-31508,-8998,-31581,-8740,-31651,-8481,-31719,-8222,-31786,-7962,-31850,-7702,-31912,-7441,-31971,-7180,-32029,-6918,-32085,-6656,-32138,-6393,-32189,-6130,-32238,-5866,-32285,-5602,-32330,-5338,-32372,-5073,-32413,-4808,-32451,-4543,-32487,-4277,-32521,-4012,-32553,-3745,-32582,-3479,-32610,-3212,-32635,-2945,-32658,-2678,-32679,-2411,-32697,-2144,-32714,-1876,-32728,-1608,-32740,-1340,-32750,-1073,-32758,-805,-32763,-537,-32766,-269,-32767,-1,-32766,268,-32763,536,-32758,804,-32750,1072,-32740,1339,-32728,1607,-32714,1875,-32697,2143,-32679,2410,-32658,2677,-32635,2944,-32610,3211,-32582,3478,-32553,3744,-32521,4011,-32487,4276,-32451,4542,-32413,4807,-32372,5072,-32330,5337,-32285,5601,-32238,5865,-32189,6129,-32138,6392,-32085,6655,-32029,6917,-31971,7179,-31912,7440,-31850,7701,-31786,7961,-31719,8221,-31651,8480,-31581,8739,-31508,8997,-31433,9254,-31357,9511,-31278,9767,-31197,10023,-31114,10278,-31029,10532,-30941,10786,-30852,11038,-30761,11290,-30667,11542,-30572,11792,-30474,12042,-30375,12291,-30273,12539,-30170,12786,-30064,13033,-29956,13278,-29847,13523,-29735,13766,-29622,14009,-29506,14251,-29388,14492,-29269,14732,-29147,14971,-29024,15209,-28898,15446,-28771,15682,-28642,15917,-28511,16150,-28378,16383,-28243,16615,-28106,16845,-27967,17074,-27826,17303,-27684,17530,-27539,17756,-27393,17980,-27245,18204,-27095,18426,-26944,18647,-26790,18867,-26635,19086,-26478,19303,-26319,19519,-26159,19733,-25996,19947,-25832,20159,-25666,20369,-25499,20579,-25330,20787,-25159,20993,-24986,21198,-24812,21402,-24636,21604,-24458,21805,-24279,22004,-24098,22202,-23916,22399,-23732,22594,-23546,22787,-23359,22979,-23170,23169,-22980,23358,-22788,23545,-22595,23731,-22400,23915,-22203,24097,-22005,24278,-21806,24457,-21605,24635,-21403,24811,-21199,24985,-20994,25158,-20788,25329,-20580,25498,-20370,25665,-20160,25831,-19948,25995,-19734,26158,-19520,26318,-19304,26477,-19087,26634,-18868,26789,-18648,26943,-18427,27094,-18205,27244,-17981,27392,-17757,27538,-17531,27683,-17304,27825,-17075,27966,-16846,28105,-16616,28242}; diff --git a/openair1/PHY/TOOLS/twiddle18432.h b/openair1/PHY/TOOLS/twiddle18432.h deleted file mode 100644 index 696c7f37ae..0000000000 --- a/openair1/PHY/TOOLS/twiddle18432.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(0:6143)/18432)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*(0:2:12286)/18432)); -twa2 = zeros(1,12288); -twb2 = zeros(1,12288); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -*/ - -int16_t twa18432[12288] = {32767,0,32766,-12,32766,-23,32766,-34,32766,-45,32766,-56,32766,-68,32766,-79,32766,-90,32766,-101,32766,-112,32766,-123,32766,-135,32766,-146,32766,-157,32766,-168,32766,-179,32766,-190,32766,-202,32766,-213,32766,-224,32766,-235,32766,-246,32765,-257,32765,-269,32765,-280,32765,-291,32765,-302,32765,-313,32765,-324,32765,-336,32765,-347,32765,-358,32764,-369,32764,-380,32764,-391,32764,-403,32764,-414,32764,-425,32764,-436,32763,-447,32763,-458,32763,-470,32763,-481,32763,-492,32763,-503,32762,-514,32762,-525,32762,-537,32762,-548,32762,-559,32762,-570,32761,-581,32761,-592,32761,-604,32761,-615,32761,-626,32760,-637,32760,-648,32760,-659,32760,-671,32759,-682,32759,-693,32759,-704,32759,-715,32758,-726,32758,-738,32758,-749,32758,-760,32757,-771,32757,-782,32757,-793,32757,-805,32756,-816,32756,-827,32756,-838,32756,-849,32755,-860,32755,-872,32755,-883,32754,-894,32754,-905,32754,-916,32753,-927,32753,-939,32753,-950,32752,-961,32752,-972,32752,-983,32751,-994,32751,-1006,32751,-1017,32750,-1028,32750,-1039,32750,-1050,32749,-1061,32749,-1073,32749,-1084,32748,-1095,32748,-1106,32747,-1117,32747,-1128,32747,-1140,32746,-1151,32746,-1162,32746,-1173,32745,-1184,32745,-1195,32744,-1207,32744,-1218,32743,-1229,32743,-1240,32743,-1251,32742,-1262,32742,-1274,32741,-1285,32741,-1296,32740,-1307,32740,-1318,32740,-1329,32739,-1340,32739,-1352,32738,-1363,32738,-1374,32737,-1385,32737,-1396,32736,-1407,32736,-1419,32735,-1430,32735,-1441,32734,-1452,32734,-1463,32733,-1474,32733,-1486,32732,-1497,32732,-1508,32731,-1519,32731,-1530,32730,-1541,32730,-1553,32729,-1564,32729,-1575,32728,-1586,32728,-1597,32727,-1608,32726,-1619,32726,-1631,32725,-1642,32725,-1653,32724,-1664,32724,-1675,32723,-1686,32723,-1698,32722,-1709,32721,-1720,32721,-1731,32720,-1742,32720,-1753,32719,-1764,32718,-1776,32718,-1787,32717,-1798,32717,-1809,32716,-1820,32715,-1831,32715,-1843,32714,-1854,32713,-1865,32713,-1876,32712,-1887,32711,-1898,32711,-1909,32710,-1921,32710,-1932,32709,-1943,32708,-1954,32708,-1965,32707,-1976,32706,-1987,32706,-1999,32705,-2010,32704,-2021,32703,-2032,32703,-2043,32702,-2054,32701,-2066,32701,-2077,32700,-2088,32699,-2099,32699,-2110,32698,-2121,32697,-2132,32696,-2144,32696,-2155,32695,-2166,32694,-2177,32693,-2188,32693,-2199,32692,-2210,32691,-2222,32690,-2233,32690,-2244,32689,-2255,32688,-2266,32687,-2277,32687,-2288,32686,-2300,32685,-2311,32684,-2322,32683,-2333,32683,-2344,32682,-2355,32681,-2366,32680,-2378,32679,-2389,32679,-2400,32678,-2411,32677,-2422,32676,-2433,32675,-2444,32674,-2456,32674,-2467,32673,-2478,32672,-2489,32671,-2500,32670,-2511,32669,-2522,32668,-2534,32668,-2545,32667,-2556,32666,-2567,32665,-2578,32664,-2589,32663,-2600,32662,-2611,32661,-2623,32661,-2634,32660,-2645,32659,-2656,32658,-2667,32657,-2678,32656,-2689,32655,-2701,32654,-2712,32653,-2723,32652,-2734,32651,-2745,32650,-2756,32649,-2767,32649,-2778,32648,-2790,32647,-2801,32646,-2812,32645,-2823,32644,-2834,32643,-2845,32642,-2856,32641,-2867,32640,-2879,32639,-2890,32638,-2901,32637,-2912,32636,-2923,32635,-2934,32634,-2945,32633,-2956,32632,-2968,32631,-2979,32630,-2990,32629,-3001,32628,-3012,32627,-3023,32626,-3034,32625,-3045,32624,-3057,32623,-3068,32622,-3079,32621,-3090,32619,-3101,32618,-3112,32617,-3123,32616,-3134,32615,-3146,32614,-3157,32613,-3168,32612,-3179,32611,-3190,32610,-3201,32609,-3212,32608,-3223,32607,-3234,32605,-3246,32604,-3257,32603,-3268,32602,-3279,32601,-3290,32600,-3301,32599,-3312,32598,-3323,32596,-3334,32595,-3346,32594,-3357,32593,-3368,32592,-3379,32591,-3390,32590,-3401,32588,-3412,32587,-3423,32586,-3434,32585,-3446,32584,-3457,32583,-3468,32581,-3479,32580,-3490,32579,-3501,32578,-3512,32577,-3523,32575,-3534,32574,-3546,32573,-3557,32572,-3568,32571,-3579,32569,-3590,32568,-3601,32567,-3612,32566,-3623,32564,-3634,32563,-3645,32562,-3657,32561,-3668,32559,-3679,32558,-3690,32557,-3701,32556,-3712,32554,-3723,32553,-3734,32552,-3745,32551,-3756,32549,-3768,32548,-3779,32547,-3790,32545,-3801,32544,-3812,32543,-3823,32541,-3834,32540,-3845,32539,-3856,32538,-3867,32536,-3878,32535,-3890,32534,-3901,32532,-3912,32531,-3923,32530,-3934,32528,-3945,32527,-3956,32526,-3967,32524,-3978,32523,-3989,32521,-4000,32520,-4012,32519,-4023,32517,-4034,32516,-4045,32515,-4056,32513,-4067,32512,-4078,32510,-4089,32509,-4100,32508,-4111,32506,-4122,32505,-4133,32503,-4145,32502,-4156,32501,-4167,32499,-4178,32498,-4189,32496,-4200,32495,-4211,32493,-4222,32492,-4233,32491,-4244,32489,-4255,32488,-4266,32486,-4277,32485,-4289,32483,-4300,32482,-4311,32480,-4322,32479,-4333,32477,-4344,32476,-4355,32474,-4366,32473,-4377,32471,-4388,32470,-4399,32468,-4410,32467,-4421,32465,-4432,32464,-4444,32462,-4455,32461,-4466,32459,-4477,32458,-4488,32456,-4499,32455,-4510,32453,-4521,32452,-4532,32450,-4543,32449,-4554,32447,-4565,32445,-4576,32444,-4587,32442,-4598,32441,-4609,32439,-4621,32438,-4632,32436,-4643,32434,-4654,32433,-4665,32431,-4676,32430,-4687,32428,-4698,32426,-4709,32425,-4720,32423,-4731,32422,-4742,32420,-4753,32418,-4764,32417,-4775,32415,-4786,32413,-4797,32412,-4808,32410,-4819,32409,-4831,32407,-4842,32405,-4853,32404,-4864,32402,-4875,32400,-4886,32399,-4897,32397,-4908,32395,-4919,32394,-4930,32392,-4941,32390,-4952,32389,-4963,32387,-4974,32385,-4985,32383,-4996,32382,-5007,32380,-5018,32378,-5029,32377,-5040,32375,-5051,32373,-5062,32371,-5073,32370,-5084,32368,-5095,32366,-5107,32364,-5118,32363,-5129,32361,-5140,32359,-5151,32357,-5162,32356,-5173,32354,-5184,32352,-5195,32350,-5206,32349,-5217,32347,-5228,32345,-5239,32343,-5250,32341,-5261,32340,-5272,32338,-5283,32336,-5294,32334,-5305,32332,-5316,32331,-5327,32329,-5338,32327,-5349,32325,-5360,32323,-5371,32322,-5382,32320,-5393,32318,-5404,32316,-5415,32314,-5426,32312,-5437,32310,-5448,32309,-5459,32307,-5470,32305,-5481,32303,-5492,32301,-5503,32299,-5514,32297,-5525,32295,-5536,32294,-5547,32292,-5558,32290,-5569,32288,-5580,32286,-5591,32284,-5602,32282,-5613,32280,-5624,32278,-5635,32276,-5646,32274,-5657,32273,-5668,32271,-5679,32269,-5690,32267,-5701,32265,-5712,32263,-5723,32261,-5734,32259,-5745,32257,-5756,32255,-5767,32253,-5778,32251,-5789,32249,-5800,32247,-5811,32245,-5822,32243,-5833,32241,-5844,32239,-5855,32237,-5866,32235,-5877,32233,-5888,32231,-5899,32229,-5910,32227,-5921,32225,-5932,32223,-5943,32221,-5954,32219,-5965,32217,-5976,32215,-5987,32213,-5998,32211,-6009,32209,-6020,32207,-6031,32205,-6042,32203,-6053,32201,-6064,32199,-6075,32196,-6086,32194,-6097,32192,-6108,32190,-6119,32188,-6130,32186,-6141,32184,-6152,32182,-6163,32180,-6174,32178,-6185,32176,-6196,32173,-6207,32171,-6218,32169,-6229,32167,-6240,32165,-6251,32163,-6262,32161,-6272,32158,-6283,32156,-6294,32154,-6305,32152,-6316,32150,-6327,32148,-6338,32146,-6349,32143,-6360,32141,-6371,32139,-6382,32137,-6393,32135,-6404,32133,-6415,32130,-6426,32128,-6437,32126,-6448,32124,-6459,32122,-6470,32119,-6481,32117,-6492,32115,-6503,32113,-6513,32110,-6524,32108,-6535,32106,-6546,32104,-6557,32102,-6568,32099,-6579,32097,-6590,32095,-6601,32093,-6612,32090,-6623,32088,-6634,32086,-6645,32084,-6656,32081,-6667,32079,-6678,32077,-6689,32074,-6699,32072,-6710,32070,-6721,32068,-6732,32065,-6743,32063,-6754,32061,-6765,32058,-6776,32056,-6787,32054,-6798,32051,-6809,32049,-6820,32047,-6831,32044,-6842,32042,-6852,32040,-6863,32037,-6874,32035,-6885,32033,-6896,32030,-6907,32028,-6918,32026,-6929,32023,-6940,32021,-6951,32019,-6962,32016,-6973,32014,-6983,32011,-6994,32009,-7005,32007,-7016,32004,-7027,32002,-7038,31999,-7049,31997,-7060,31995,-7071,31992,-7082,31990,-7093,31987,-7103,31985,-7114,31983,-7125,31980,-7136,31978,-7147,31975,-7158,31973,-7169,31970,-7180,31968,-7191,31965,-7202,31963,-7212,31961,-7223,31958,-7234,31956,-7245,31953,-7256,31951,-7267,31948,-7278,31946,-7289,31943,-7300,31941,-7311,31938,-7321,31936,-7332,31933,-7343,31931,-7354,31928,-7365,31926,-7376,31923,-7387,31921,-7398,31918,-7408,31916,-7419,31913,-7430,31911,-7441,31908,-7452,31905,-7463,31903,-7474,31900,-7485,31898,-7495,31895,-7506,31893,-7517,31890,-7528,31888,-7539,31885,-7550,31882,-7561,31880,-7572,31877,-7582,31875,-7593,31872,-7604,31869,-7615,31867,-7626,31864,-7637,31862,-7648,31859,-7658,31856,-7669,31854,-7680,31851,-7691,31849,-7702,31846,-7713,31843,-7724,31841,-7734,31838,-7745,31835,-7756,31833,-7767,31830,-7778,31827,-7789,31825,-7800,31822,-7810,31819,-7821,31817,-7832,31814,-7843,31811,-7854,31809,-7865,31806,-7876,31803,-7886,31801,-7897,31798,-7908,31795,-7919,31793,-7930,31790,-7941,31787,-7951,31785,-7962,31782,-7973,31779,-7984,31776,-7995,31774,-8006,31771,-8016,31768,-8027,31765,-8038,31763,-8049,31760,-8060,31757,-8071,31754,-8081,31752,-8092,31749,-8103,31746,-8114,31743,-8125,31741,-8135,31738,-8146,31735,-8157,31732,-8168,31729,-8179,31727,-8190,31724,-8200,31721,-8211,31718,-8222,31716,-8233,31713,-8244,31710,-8254,31707,-8265,31704,-8276,31701,-8287,31699,-8298,31696,-8308,31693,-8319,31690,-8330,31687,-8341,31684,-8352,31682,-8362,31679,-8373,31676,-8384,31673,-8395,31670,-8406,31667,-8416,31664,-8427,31662,-8438,31659,-8449,31656,-8460,31653,-8470,31650,-8481,31647,-8492,31644,-8503,31641,-8514,31638,-8524,31635,-8535,31633,-8546,31630,-8557,31627,-8568,31624,-8578,31621,-8589,31618,-8600,31615,-8611,31612,-8621,31609,-8632,31606,-8643,31603,-8654,31600,-8664,31597,-8675,31594,-8686,31591,-8697,31588,-8708,31586,-8718,31583,-8729,31580,-8740,31577,-8751,31574,-8761,31571,-8772,31568,-8783,31565,-8794,31562,-8804,31559,-8815,31556,-8826,31553,-8837,31550,-8847,31547,-8858,31544,-8869,31541,-8880,31537,-8890,31534,-8901,31531,-8912,31528,-8923,31525,-8933,31522,-8944,31519,-8955,31516,-8966,31513,-8976,31510,-8987,31507,-8998,31504,-9009,31501,-9019,31498,-9030,31495,-9041,31492,-9052,31489,-9062,31485,-9073,31482,-9084,31479,-9095,31476,-9105,31473,-9116,31470,-9127,31467,-9137,31464,-9148,31461,-9159,31457,-9170,31454,-9180,31451,-9191,31448,-9202,31445,-9213,31442,-9223,31439,-9234,31435,-9245,31432,-9255,31429,-9266,31426,-9277,31423,-9288,31420,-9298,31417,-9309,31413,-9320,31410,-9330,31407,-9341,31404,-9352,31401,-9363,31397,-9373,31394,-9384,31391,-9395,31388,-9405,31385,-9416,31381,-9427,31378,-9437,31375,-9448,31372,-9459,31369,-9469,31365,-9480,31362,-9491,31359,-9502,31356,-9512,31352,-9523,31349,-9534,31346,-9544,31343,-9555,31339,-9566,31336,-9576,31333,-9587,31330,-9598,31326,-9608,31323,-9619,31320,-9630,31316,-9640,31313,-9651,31310,-9662,31307,-9672,31303,-9683,31300,-9694,31297,-9704,31293,-9715,31290,-9726,31287,-9736,31283,-9747,31280,-9758,31277,-9768,31273,-9779,31270,-9790,31267,-9800,31263,-9811,31260,-9822,31257,-9832,31253,-9843,31250,-9854,31247,-9864,31243,-9875,31240,-9886,31236,-9896,31233,-9907,31230,-9918,31226,-9928,31223,-9939,31220,-9950,31216,-9960,31213,-9971,31209,-9981,31206,-9992,31203,-10003,31199,-10013,31196,-10024,31192,-10035,31189,-10045,31185,-10056,31182,-10067,31179,-10077,31175,-10088,31172,-10098,31168,-10109,31165,-10120,31161,-10130,31158,-10141,31154,-10152,31151,-10162,31148,-10173,31144,-10183,31141,-10194,31137,-10205,31134,-10215,31130,-10226,31127,-10236,31123,-10247,31120,-10258,31116,-10268,31113,-10279,31109,-10290,31106,-10300,31102,-10311,31099,-10321,31095,-10332,31092,-10343,31088,-10353,31085,-10364,31081,-10374,31077,-10385,31074,-10396,31070,-10406,31067,-10417,31063,-10427,31060,-10438,31056,-10448,31053,-10459,31049,-10470,31045,-10480,31042,-10491,31038,-10501,31035,-10512,31031,-10523,31028,-10533,31024,-10544,31020,-10554,31017,-10565,31013,-10575,31010,-10586,31006,-10597,31002,-10607,30999,-10618,30995,-10628,30991,-10639,30988,-10649,30984,-10660,30981,-10671,30977,-10681,30973,-10692,30970,-10702,30966,-10713,30962,-10723,30959,-10734,30955,-10744,30951,-10755,30948,-10766,30944,-10776,30940,-10787,30937,-10797,30933,-10808,30929,-10818,30926,-10829,30922,-10839,30918,-10850,30915,-10860,30911,-10871,30907,-10881,30903,-10892,30900,-10903,30896,-10913,30892,-10924,30889,-10934,30885,-10945,30881,-10955,30877,-10966,30874,-10976,30870,-10987,30866,-10997,30862,-11008,30859,-11018,30855,-11029,30851,-11039,30847,-11050,30844,-11060,30840,-11071,30836,-11081,30832,-11092,30828,-11102,30825,-11113,30821,-11123,30817,-11134,30813,-11144,30809,-11155,30806,-11165,30802,-11176,30798,-11186,30794,-11197,30790,-11207,30787,-11218,30783,-11228,30779,-11239,30775,-11249,30771,-11260,30767,-11270,30764,-11281,30760,-11291,30756,-11302,30752,-11312,30748,-11323,30744,-11333,30740,-11344,30737,-11354,30733,-11365,30729,-11375,30725,-11386,30721,-11396,30717,-11407,30713,-11417,30709,-11428,30705,-11438,30702,-11449,30698,-11459,30694,-11469,30690,-11480,30686,-11490,30682,-11501,30678,-11511,30674,-11522,30670,-11532,30666,-11543,30662,-11553,30658,-11564,30655,-11574,30651,-11584,30647,-11595,30643,-11605,30639,-11616,30635,-11626,30631,-11637,30627,-11647,30623,-11658,30619,-11668,30615,-11678,30611,-11689,30607,-11699,30603,-11710,30599,-11720,30595,-11731,30591,-11741,30587,-11751,30583,-11762,30579,-11772,30575,-11783,30571,-11793,30567,-11804,30563,-11814,30559,-11824,30555,-11835,30551,-11845,30547,-11856,30543,-11866,30539,-11877,30535,-11887,30530,-11897,30526,-11908,30522,-11918,30518,-11929,30514,-11939,30510,-11949,30506,-11960,30502,-11970,30498,-11981,30494,-11991,30490,-12001,30486,-12012,30482,-12022,30477,-12033,30473,-12043,30469,-12053,30465,-12064,30461,-12074,30457,-12084,30453,-12095,30449,-12105,30445,-12116,30440,-12126,30436,-12136,30432,-12147,30428,-12157,30424,-12167,30420,-12178,30416,-12188,30411,-12199,30407,-12209,30403,-12219,30399,-12230,30395,-12240,30391,-12250,30386,-12261,30382,-12271,30378,-12281,30374,-12292,30370,-12302,30365,-12313,30361,-12323,30357,-12333,30353,-12344,30349,-12354,30344,-12364,30340,-12375,30336,-12385,30332,-12395,30328,-12406,30323,-12416,30319,-12426,30315,-12437,30311,-12447,30306,-12457,30302,-12468,30298,-12478,30294,-12488,30289,-12499,30285,-12509,30281,-12519,30277,-12530,30272,-12540,30268,-12550,30264,-12561,30259,-12571,30255,-12581,30251,-12591,30247,-12602,30242,-12612,30238,-12622,30234,-12633,30229,-12643,30225,-12653,30221,-12664,30216,-12674,30212,-12684,30208,-12695,30203,-12705,30199,-12715,30195,-12725,30190,-12736,30186,-12746,30182,-12756,30177,-12767,30173,-12777,30169,-12787,30164,-12797,30160,-12808,30156,-12818,30151,-12828,30147,-12839,30142,-12849,30138,-12859,30134,-12869,30129,-12880,30125,-12890,30121,-12900,30116,-12910,30112,-12921,30107,-12931,30103,-12941,30098,-12951,30094,-12962,30090,-12972,30085,-12982,30081,-12993,30076,-13003,30072,-13013,30067,-13023,30063,-13034,30059,-13044,30054,-13054,30050,-13064,30045,-13075,30041,-13085,30036,-13095,30032,-13105,30027,-13115,30023,-13126,30018,-13136,30014,-13146,30009,-13156,30005,-13167,30001,-13177,29996,-13187,29992,-13197,29987,-13208,29983,-13218,29978,-13228,29973,-13238,29969,-13248,29964,-13259,29960,-13269,29955,-13279,29951,-13289,29946,-13299,29942,-13310,29937,-13320,29933,-13330,29928,-13340,29924,-13350,29919,-13361,29915,-13371,29910,-13381,29905,-13391,29901,-13401,29896,-13412,29892,-13422,29887,-13432,29883,-13442,29878,-13452,29873,-13463,29869,-13473,29864,-13483,29860,-13493,29855,-13503,29850,-13513,29846,-13524,29841,-13534,29837,-13544,29832,-13554,29827,-13564,29823,-13575,29818,-13585,29813,-13595,29809,-13605,29804,-13615,29800,-13625,29795,-13635,29790,-13646,29786,-13656,29781,-13666,29776,-13676,29772,-13686,29767,-13696,29762,-13707,29758,-13717,29753,-13727,29748,-13737,29744,-13747,29739,-13757,29734,-13767,29729,-13778,29725,-13788,29720,-13798,29715,-13808,29711,-13818,29706,-13828,29701,-13838,29696,-13848,29692,-13859,29687,-13869,29682,-13879,29678,-13889,29673,-13899,29668,-13909,29663,-13919,29659,-13929,29654,-13939,29649,-13950,29644,-13960,29640,-13970,29635,-13980,29630,-13990,29625,-14000,29621,-14010,29616,-14020,29611,-14030,29606,-14040,29601,-14051,29597,-14061,29592,-14071,29587,-14081,29582,-14091,29577,-14101,29573,-14111,29568,-14121,29563,-14131,29558,-14141,29553,-14151,29548,-14161,29544,-14172,29539,-14182,29534,-14192,29529,-14202,29524,-14212,29519,-14222,29515,-14232,29510,-14242,29505,-14252,29500,-14262,29495,-14272,29490,-14282,29485,-14292,29481,-14302,29476,-14312,29471,-14322,29466,-14332,29461,-14343,29456,-14353,29451,-14363,29446,-14373,29441,-14383,29437,-14393,29432,-14403,29427,-14413,29422,-14423,29417,-14433,29412,-14443,29407,-14453,29402,-14463,29397,-14473,29392,-14483,29387,-14493,29382,-14503,29377,-14513,29372,-14523,29368,-14533,29363,-14543,29358,-14553,29353,-14563,29348,-14573,29343,-14583,29338,-14593,29333,-14603,29328,-14613,29323,-14623,29318,-14633,29313,-14643,29308,-14653,29303,-14663,29298,-14673,29293,-14683,29288,-14693,29283,-14703,29278,-14713,29273,-14723,29268,-14733,29263,-14743,29258,-14753,29253,-14763,29248,-14773,29243,-14783,29238,-14793,29233,-14803,29227,-14813,29222,-14823,29217,-14833,29212,-14843,29207,-14853,29202,-14862,29197,-14872,29192,-14882,29187,-14892,29182,-14902,29177,-14912,29172,-14922,29167,-14932,29162,-14942,29156,-14952,29151,-14962,29146,-14972,29141,-14982,29136,-14992,29131,-15002,29126,-15012,29121,-15022,29116,-15031,29110,-15041,29105,-15051,29100,-15061,29095,-15071,29090,-15081,29085,-15091,29080,-15101,29074,-15111,29069,-15121,29064,-15131,29059,-15141,29054,-15150,29049,-15160,29044,-15170,29038,-15180,29033,-15190,29028,-15200,29023,-15210,29018,-15220,29012,-15230,29007,-15239,29002,-15249,28997,-15259,28992,-15269,28986,-15279,28981,-15289,28976,-15299,28971,-15309,28966,-15319,28960,-15328,28955,-15338,28950,-15348,28945,-15358,28939,-15368,28934,-15378,28929,-15388,28924,-15397,28918,-15407,28913,-15417,28908,-15427,28903,-15437,28897,-15447,28892,-15457,28887,-15466,28882,-15476,28876,-15486,28871,-15496,28866,-15506,28860,-15516,28855,-15526,28850,-15535,28845,-15545,28839,-15555,28834,-15565,28829,-15575,28823,-15584,28818,-15594,28813,-15604,28807,-15614,28802,-15624,28797,-15634,28791,-15643,28786,-15653,28781,-15663,28775,-15673,28770,-15683,28765,-15692,28759,-15702,28754,-15712,28749,-15722,28743,-15732,28738,-15741,28733,-15751,28727,-15761,28722,-15771,28716,-15781,28711,-15790,28706,-15800,28700,-15810,28695,-15820,28690,-15830,28684,-15839,28679,-15849,28673,-15859,28668,-15869,28662,-15878,28657,-15888,28652,-15898,28646,-15908,28641,-15918,28635,-15927,28630,-15937,28625,-15947,28619,-15957,28614,-15966,28608,-15976,28603,-15986,28597,-15996,28592,-16005,28586,-16015,28581,-16025,28575,-16035,28570,-16044,28565,-16054,28559,-16064,28554,-16073,28548,-16083,28543,-16093,28537,-16103,28532,-16112,28526,-16122,28521,-16132,28515,-16142,28510,-16151,28504,-16161,28499,-16171,28493,-16180,28488,-16190,28482,-16200,28477,-16210,28471,-16219,28465,-16229,28460,-16239,28454,-16248,28449,-16258,28443,-16268,28438,-16277,28432,-16287,28427,-16297,28421,-16307,28416,-16316,28410,-16326,28404,-16336,28399,-16345,28393,-16355,28388,-16365,28382,-16374,28377,-16384,28371,-16394,28365,-16403,28360,-16413,28354,-16423,28349,-16432,28343,-16442,28337,-16452,28332,-16461,28326,-16471,28321,-16481,28315,-16490,28309,-16500,28304,-16510,28298,-16519,28292,-16529,28287,-16539,28281,-16548,28275,-16558,28270,-16567,28264,-16577,28259,-16587,28253,-16596,28247,-16606,28242,-16616,28236,-16625,28230,-16635,28225,-16644,28219,-16654,28213,-16664,28208,-16673,28202,-16683,28196,-16693,28190,-16702,28185,-16712,28179,-16721,28173,-16731,28168,-16741,28162,-16750,28156,-16760,28151,-16769,28145,-16779,28139,-16789,28133,-16798,28128,-16808,28122,-16817,28116,-16827,28110,-16837,28105,-16846,28099,-16856,28093,-16865,28087,-16875,28082,-16884,28076,-16894,28070,-16904,28064,-16913,28059,-16923,28053,-16932,28047,-16942,28041,-16951,28036,-16961,28030,-16970,28024,-16980,28018,-16990,28012,-16999,28007,-17009,28001,-17018,27995,-17028,27989,-17037,27983,-17047,27978,-17056,27972,-17066,27966,-17075,27960,-17085,27954,-17095,27948,-17104,27943,-17114,27937,-17123,27931,-17133,27925,-17142,27919,-17152,27913,-17161,27908,-17171,27902,-17180,27896,-17190,27890,-17199,27884,-17209,27878,-17218,27872,-17228,27867,-17237,27861,-17247,27855,-17256,27849,-17266,27843,-17275,27837,-17285,27831,-17294,27825,-17304,27819,-17313,27814,-17323,27808,-17332,27802,-17342,27796,-17351,27790,-17361,27784,-17370,27778,-17380,27772,-17389,27766,-17398,27760,-17408,27754,-17417,27748,-17427,27742,-17436,27736,-17446,27731,-17455,27725,-17465,27719,-17474,27713,-17484,27707,-17493,27701,-17502,27695,-17512,27689,-17521,27683,-17531,27677,-17540,27671,-17550,27665,-17559,27659,-17568,27653,-17578,27647,-17587,27641,-17597,27635,-17606,27629,-17616,27623,-17625,27617,-17634,27611,-17644,27605,-17653,27599,-17663,27593,-17672,27587,-17681,27581,-17691,27575,-17700,27569,-17710,27563,-17719,27557,-17728,27551,-17738,27545,-17747,27538,-17757,27532,-17766,27526,-17775,27520,-17785,27514,-17794,27508,-17804,27502,-17813,27496,-17822,27490,-17832,27484,-17841,27478,-17850,27472,-17860,27466,-17869,27460,-17879,27453,-17888,27447,-17897,27441,-17907,27435,-17916,27429,-17925,27423,-17935,27417,-17944,27411,-17953,27405,-17963,27398,-17972,27392,-17981,27386,-17991,27380,-18000,27374,-18009,27368,-18019,27362,-18028,27355,-18037,27349,-18047,27343,-18056,27337,-18065,27331,-18075,27325,-18084,27319,-18093,27312,-18103,27306,-18112,27300,-18121,27294,-18131,27288,-18140,27281,-18149,27275,-18158,27269,-18168,27263,-18177,27257,-18186,27250,-18196,27244,-18205,27238,-18214,27232,-18223,27226,-18233,27219,-18242,27213,-18251,27207,-18261,27201,-18270,27195,-18279,27188,-18288,27182,-18298,27176,-18307,27170,-18316,27163,-18325,27157,-18335,27151,-18344,27145,-18353,27138,-18362,27132,-18372,27126,-18381,27120,-18390,27113,-18399,27107,-18409,27101,-18418,27094,-18427,27088,-18436,27082,-18446,27076,-18455,27069,-18464,27063,-18473,27057,-18483,27050,-18492,27044,-18501,27038,-18510,27031,-18519,27025,-18529,27019,-18538,27012,-18547,27006,-18556,27000,-18565,26994,-18575,26987,-18584,26981,-18593,26975,-18602,26968,-18611,26962,-18621,26955,-18630,26949,-18639,26943,-18648,26936,-18657,26930,-18667,26924,-18676,26917,-18685,26911,-18694,26905,-18703,26898,-18712,26892,-18722,26885,-18731,26879,-18740,26873,-18749,26866,-18758,26860,-18767,26853,-18777,26847,-18786,26841,-18795,26834,-18804,26828,-18813,26821,-18822,26815,-18831,26809,-18841,26802,-18850,26796,-18859,26789,-18868,26783,-18877,26776,-18886,26770,-18895,26764,-18905,26757,-18914,26751,-18923,26744,-18932,26738,-18941,26731,-18950,26725,-18959,26718,-18968,26712,-18977,26705,-18987,26699,-18996,26692,-19005,26686,-19014,26680,-19023,26673,-19032,26667,-19041,26660,-19050,26654,-19059,26647,-19068,26641,-19077,26634,-19087,26628,-19096,26621,-19105,26615,-19114,26608,-19123,26601,-19132,26595,-19141,26588,-19150,26582,-19159,26575,-19168,26569,-19177,26562,-19186,26556,-19195,26549,-19204,26543,-19213,26536,-19222,26530,-19232,26523,-19241,26516,-19250,26510,-19259,26503,-19268,26497,-19277,26490,-19286,26484,-19295,26477,-19304,26470,-19313,26464,-19322,26457,-19331,26451,-19340,26444,-19349,26437,-19358,26431,-19367,26424,-19376,26418,-19385,26411,-19394,26404,-19403,26398,-19412,26391,-19421,26385,-19430,26378,-19439,26371,-19448,26365,-19457,26358,-19466,26351,-19475,26345,-19484,26338,-19493,26332,-19502,26325,-19511,26318,-19520,26312,-19529,26305,-19538,26298,-19547,26292,-19556,26285,-19565,26278,-19574,26272,-19583,26265,-19591,26258,-19600,26252,-19609,26245,-19618,26238,-19627,26231,-19636,26225,-19645,26218,-19654,26211,-19663,26205,-19672,26198,-19681,26191,-19690,26185,-19699,26178,-19708,26171,-19717,26164,-19726,26158,-19734,26151,-19743,26144,-19752,26137,-19761,26131,-19770,26124,-19779,26117,-19788,26110,-19797,26104,-19806,26097,-19815,26090,-19823,26083,-19832,26077,-19841,26070,-19850,26063,-19859,26056,-19868,26050,-19877,26043,-19886,26036,-19895,26029,-19903,26022,-19912,26016,-19921,26009,-19930,26002,-19939,25995,-19948,25989,-19957,25982,-19966,25975,-19974,25968,-19983,25961,-19992,25954,-20001,25948,-20010,25941,-20019,25934,-20027,25927,-20036,25920,-20045,25913,-20054,25907,-20063,25900,-20072,25893,-20080,25886,-20089,25879,-20098,25872,-20107,25866,-20116,25859,-20125,25852,-20133,25845,-20142,25838,-20151,25831,-20160,25824,-20169,25817,-20177,25811,-20186,25804,-20195,25797,-20204,25790,-20213,25783,-20221,25776,-20230,25769,-20239,25762,-20248,25755,-20257,25749,-20265,25742,-20274,25735,-20283,25728,-20292,25721,-20300,25714,-20309,25707,-20318,25700,-20327,25693,-20335,25686,-20344,25679,-20353,25672,-20362,25665,-20370,25659,-20379,25652,-20388,25645,-20397,25638,-20405,25631,-20414,25624,-20423,25617,-20432,25610,-20440,25603,-20449,25596,-20458,25589,-20467,25582,-20475,25575,-20484,25568,-20493,25561,-20501,25554,-20510,25547,-20519,25540,-20528,25533,-20536,25526,-20545,25519,-20554,25512,-20562,25505,-20571,25498,-20580,25491,-20588,25484,-20597,25477,-20606,25470,-20614,25463,-20623,25456,-20632,25449,-20641,25442,-20649,25435,-20658,25428,-20667,25421,-20675,25414,-20684,25407,-20693,25399,-20701,25392,-20710,25385,-20719,25378,-20727,25371,-20736,25364,-20744,25357,-20753,25350,-20762,25343,-20770,25336,-20779,25329,-20788,25322,-20796,25315,-20805,25307,-20814,25300,-20822,25293,-20831,25286,-20839,25279,-20848,25272,-20857,25265,-20865,25258,-20874,25251,-20882,25243,-20891,25236,-20900,25229,-20908,25222,-20917,25215,-20926,25208,-20934,25201,-20943,25194,-20951,25186,-20960,25179,-20968,25172,-20977,25165,-20986,25158,-20994,25151,-21003,25144,-21011,25136,-21020,25129,-21028,25122,-21037,25115,-21046,25108,-21054,25100,-21063,25093,-21071,25086,-21080,25079,-21088,25072,-21097,25065,-21105,25057,-21114,25050,-21123,25043,-21131,25036,-21140,25029,-21148,25021,-21157,25014,-21165,25007,-21174,25000,-21182,24992,-21191,24985,-21199,24978,-21208,24971,-21216,24964,-21225,24956,-21233,24949,-21242,24942,-21250,24935,-21259,24927,-21267,24920,-21276,24913,-21284,24906,-21293,24898,-21301,24891,-21310,24884,-21318,24877,-21327,24869,-21335,24862,-21344,24855,-21352,24847,-21361,24840,-21369,24833,-21378,24826,-21386,24818,-21395,24811,-21403,24804,-21411,24796,-21420,24789,-21428,24782,-21437,24774,-21445,24767,-21454,24760,-21462,24753,-21471,24745,-21479,24738,-21487,24731,-21496,24723,-21504,24716,-21513,24709,-21521,24701,-21530,24694,-21538,24687,-21546,24679,-21555,24672,-21563,24664,-21572,24657,-21580,24650,-21588,24642,-21597,24635,-21605,24628,-21614,24620,-21622,24613,-21630,24606,-21639,24598,-21647,24591,-21656,24583,-21664,24576,-21672,24569,-21681,24561,-21689,24554,-21698,24546,-21706,24539,-21714,24532,-21723,24524,-21731,24517,-21739,24509,-21748,24502,-21756,24495,-21764,24487,-21773,24480,-21781,24472,-21789,24465,-21798,24457,-21806,24450,-21814,24443,-21823,24435,-21831,24428,-21839,24420,-21848,24413,-21856,24405,-21864,24398,-21873,24390,-21881,24383,-21889,24376,-21898,24368,-21906,24361,-21914,24353,-21923,24346,-21931,24338,-21939,24331,-21947,24323,-21956,24316,-21964,24308,-21972,24301,-21981,24293,-21989,24286,-21997,24278,-22005,24271,-22014,24263,-22022,24256,-22030,24248,-22039,24241,-22047,24233,-22055,24226,-22063,24218,-22072,24211,-22080,24203,-22088,24196,-22096,24188,-22105,24180,-22113,24173,-22121,24165,-22129,24158,-22138,24150,-22146,24143,-22154,24135,-22162,24128,-22170,24120,-22179,24113,-22187,24105,-22195,24097,-22203,24090,-22212,24082,-22220,24075,-22228,24067,-22236,24060,-22244,24052,-22253,24044,-22261,24037,-22269,24029,-22277,24022,-22285,24014,-22294,24006,-22302,23999,-22310,23991,-22318,23984,-22326,23976,-22334,23968,-22343,23961,-22351,23953,-22359,23945,-22367,23938,-22375,23930,-22383,23923,-22392,23915,-22400,23907,-22408,23900,-22416,23892,-22424,23884,-22432,23877,-22440,23869,-22449,23861,-22457,23854,-22465,23846,-22473,23838,-22481,23831,-22489,23823,-22497,23815,-22506,23808,-22514,23800,-22522,23792,-22530,23785,-22538,23777,-22546,23769,-22554,23762,-22562,23754,-22570,23746,-22578,23739,-22587,23731,-22595,23723,-22603,23715,-22611,23708,-22619,23700,-22627,23692,-22635,23685,-22643,23677,-22651,23669,-22659,23661,-22667,23654,-22675,23646,-22684,23638,-22692,23631,-22700,23623,-22708,23615,-22716,23607,-22724,23600,-22732,23592,-22740,23584,-22748,23576,-22756,23569,-22764,23561,-22772,23553,-22780,23545,-22788,23537,-22796,23530,-22804,23522,-22812,23514,-22820,23506,-22828,23499,-22836,23491,-22844,23483,-22852,23475,-22860,23467,-22868,23460,-22876,23452,-22884,23444,-22892,23436,-22900,23428,-22908,23421,-22916,23413,-22924,23405,-22932,23397,-22940,23389,-22948,23382,-22956,23374,-22964,23366,-22972,23358,-22980,23350,-22988,23342,-22996,23335,-23004,23327,-23012,23319,-23020,23311,-23028,23303,-23036,23295,-23044,23287,-23051,23280,-23059,23272,-23067,23264,-23075,23256,-23083,23248,-23091,23240,-23099,23232,-23107,23224,-23115,23217,-23123,23209,-23131,23201,-23139,23193,-23147,23185,-23154,23177,-23162,23169,-23170,23161,-23178,23153,-23186,23146,-23194,23138,-23202,23130,-23210,23122,-23218,23114,-23225,23106,-23233,23098,-23241,23090,-23249,23082,-23257,23074,-23265,23066,-23273,23058,-23281,23050,-23288,23043,-23296,23035,-23304,23027,-23312,23019,-23320,23011,-23328,23003,-23336,22995,-23343,22987,-23351,22979,-23359,22971,-23367,22963,-23375,22955,-23383,22947,-23390,22939,-23398,22931,-23406,22923,-23414,22915,-23422,22907,-23429,22899,-23437,22891,-23445,22883,-23453,22875,-23461,22867,-23468,22859,-23476,22851,-23484,22843,-23492,22835,-23500,22827,-23507,22819,-23515,22811,-23523,22803,-23531,22795,-23538,22787,-23546,22779,-23554,22771,-23562,22763,-23570,22755,-23577,22747,-23585,22739,-23593,22731,-23601,22723,-23608,22715,-23616,22707,-23624,22699,-23632,22691,-23639,22683,-23647,22674,-23655,22666,-23662,22658,-23670,22650,-23678,22642,-23686,22634,-23693,22626,-23701,22618,-23709,22610,-23716,22602,-23724,22594,-23732,22586,-23740,22577,-23747,22569,-23755,22561,-23763,22553,-23770,22545,-23778,22537,-23786,22529,-23793,22521,-23801,22513,-23809,22505,-23816,22496,-23824,22488,-23832,22480,-23839,22472,-23847,22464,-23855,22456,-23862,22448,-23870,22439,-23878,22431,-23885,22423,-23893,22415,-23901,22407,-23908,22399,-23916,22391,-23924,22382,-23931,22374,-23939,22366,-23946,22358,-23954,22350,-23962,22342,-23969,22333,-23977,22325,-23985,22317,-23992,22309,-24000,22301,-24007,22293,-24015,22284,-24023,22276,-24030,22268,-24038,22260,-24045,22252,-24053,22243,-24061,22235,-24068,22227,-24076,22219,-24083,22211,-24091,22202,-24098,22194,-24106,22186,-24114,22178,-24121,22169,-24129,22161,-24136,22153,-24144,22145,-24151,22137,-24159,22128,-24166,22120,-24174,22112,-24181,22104,-24189,22095,-24197,22087,-24204,22079,-24212,22071,-24219,22062,-24227,22054,-24234,22046,-24242,22038,-24249,22029,-24257,22021,-24264,22013,-24272,22004,-24279,21996,-24287,21988,-24294,21980,-24302,21971,-24309,21963,-24317,21955,-24324,21946,-24332,21938,-24339,21930,-24347,21922,-24354,21913,-24362,21905,-24369,21897,-24377,21888,-24384,21880,-24391,21872,-24399,21863,-24406,21855,-24414,21847,-24421,21838,-24429,21830,-24436,21822,-24444,21813,-24451,21805,-24458,21797,-24466,21788,-24473,21780,-24481,21772,-24488,21763,-24496,21755,-24503,21747,-24510,21738,-24518,21730,-24525,21722,-24533,21713,-24540,21705,-24547,21697,-24555,21688,-24562,21680,-24570,21671,-24577,21663,-24584,21655,-24592,21646,-24599,21638,-24607,21629,-24614,21621,-24621,21613,-24629,21604,-24636,21596,-24643,21587,-24651,21579,-24658,21571,-24665,21562,-24673,21554,-24680,21545,-24688,21537,-24695,21529,-24702,21520,-24710,21512,-24717,21503,-24724,21495,-24732,21486,-24739,21478,-24746,21470,-24754,21461,-24761,21453,-24768,21444,-24775,21436,-24783,21427,-24790,21419,-24797,21410,-24805,21402,-24812,21394,-24819,21385,-24827,21377,-24834,21368,-24841,21360,-24848,21351,-24856,21343,-24863,21334,-24870,21326,-24878,21317,-24885,21309,-24892,21300,-24899,21292,-24907,21283,-24914,21275,-24921,21266,-24928,21258,-24936,21249,-24943,21241,-24950,21232,-24957,21224,-24965,21215,-24972,21207,-24979,21198,-24986,21190,-24993,21181,-25001,21173,-25008,21164,-25015,21156,-25022,21147,-25030,21139,-25037,21130,-25044,21122,-25051,21113,-25058,21104,-25066,21096,-25073,21087,-25080,21079,-25087,21070,-25094,21062,-25101,21053,-25109,21045,-25116,21036,-25123,21027,-25130,21019,-25137,21010,-25145,21002,-25152,20993,-25159,20985,-25166,20976,-25173,20967,-25180,20959,-25187,20950,-25195,20942,-25202,20933,-25209,20925,-25216,20916,-25223,20907,-25230,20899,-25237,20890,-25244,20881,-25252,20873,-25259,20864,-25266,20856,-25273,20847,-25280,20838,-25287,20830,-25294,20821,-25301,20813,-25308,20804,-25316,20795,-25323,20787,-25330,20778,-25337,20769,-25344,20761,-25351,20752,-25358,20743,-25365,20735,-25372,20726,-25379,20718,-25386,20709,-25393,20700,-25400,20692,-25408,20683,-25415,20674,-25422,20666,-25429,20657,-25436,20648,-25443,20640,-25450,20631,-25457,20622,-25464,20613,-25471,20605,-25478,20596,-25485,20587,-25492,20579,-25499,20570,-25506,20561,-25513,20553,-25520,20544,-25527,20535,-25534,20527,-25541,20518,-25548,20509,-25555,20500,-25562,20492,-25569,20483,-25576,20474,-25583,20466,-25590,20457,-25597,20448,-25604,20439,-25611,20431,-25618,20422,-25625,20413,-25632,20404,-25639,20396,-25646,20387,-25653,20378,-25660,20369,-25666,20361,-25673,20352,-25680,20343,-25687,20334,-25694,20326,-25701,20317,-25708,20308,-25715,20299,-25722,20291,-25729,20282,-25736,20273,-25743,20264,-25750,20256,-25756,20247,-25763,20238,-25770,20229,-25777,20220,-25784,20212,-25791,20203,-25798,20194,-25805,20185,-25812,20176,-25818,20168,-25825,20159,-25832,20150,-25839,20141,-25846,20132,-25853,20124,-25860,20115,-25867,20106,-25873,20097,-25880,20088,-25887,20079,-25894,20071,-25901,20062,-25908,20053,-25914,20044,-25921,20035,-25928,20026,-25935,20018,-25942,20009,-25949,20000,-25955,19991,-25962,19982,-25969,19973,-25976,19965,-25983,19956,-25990,19947,-25996,19938,-26003,19929,-26010,19920,-26017,19911,-26023,19902,-26030,19894,-26037,19885,-26044,19876,-26051,19867,-26057,19858,-26064,19849,-26071,19840,-26078,19831,-26084,19822,-26091,19814,-26098,19805,-26105,19796,-26111,19787,-26118,19778,-26125,19769,-26132,19760,-26138,19751,-26145,19742,-26152,19733,-26159,19725,-26165,19716,-26172,19707,-26179,19698,-26186,19689,-26192,19680,-26199,19671,-26206,19662,-26212,19653,-26219,19644,-26226,19635,-26232,19626,-26239,19617,-26246,19608,-26253,19599,-26259,19590,-26266,19582,-26273,19573,-26279,19564,-26286,19555,-26293,19546,-26299,19537,-26306,19528,-26313,19519,-26319,19510,-26326,19501,-26333,19492,-26339,19483,-26346,19474,-26352,19465,-26359,19456,-26366,19447,-26372,19438,-26379,19429,-26386,19420,-26392,19411,-26399,19402,-26405,19393,-26412,19384,-26419,19375,-26425,19366,-26432,19357,-26438,19348,-26445,19339,-26452,19330,-26458,19321,-26465,19312,-26471,19303,-26478,19294,-26485,19285,-26491,19276,-26498,19267,-26504,19258,-26511,19249,-26517,19240,-26524,19231,-26531,19221,-26537,19212,-26544,19203,-26550,19194,-26557,19185,-26563,19176,-26570,19167,-26576,19158,-26583,19149,-26589,19140,-26596,19131,-26602,19122,-26609,19113,-26616,19104,-26622,19095,-26629,19086,-26635,19076,-26642,19067,-26648,19058,-26655,19049,-26661,19040,-26668,19031,-26674,19022,-26681,19013,-26687,19004,-26693,18995,-26700,18986,-26706,18976,-26713,18967,-26719,18958,-26726,18949,-26732,18940,-26739,18931,-26745,18922,-26752,18913,-26758,18904,-26765,18894,-26771,18885,-26777,18876,-26784,18867,-26790,18858,-26797,18849,-26803,18840,-26810,18830,-26816,18821,-26822,18812,-26829,18803,-26835,18794,-26842,18785,-26848,18776,-26854,18766,-26861,18757,-26867,18748,-26874,18739,-26880,18730,-26886,18721,-26893,18711,-26899,18702,-26906,18693,-26912,18684,-26918,18675,-26925,18666,-26931,18656,-26937,18647,-26944,18638,-26950,18629,-26956,18620,-26963,18610,-26969,18601,-26976,18592,-26982,18583,-26988,18574,-26995,18564,-27001,18555,-27007,18546,-27013,18537,-27020,18528,-27026,18518,-27032,18509,-27039,18500,-27045,18491,-27051,18482,-27058,18472,-27064,18463,-27070,18454,-27077,18445,-27083,18435,-27089,18426,-27095,18417,-27102,18408,-27108,18398,-27114,18389,-27121,18380,-27127,18371,-27133,18361,-27139,18352,-27146,18343,-27152,18334,-27158,18324,-27164,18315,-27171,18306,-27177,18297,-27183,18287,-27189,18278,-27196,18269,-27202,18260,-27208,18250,-27214,18241,-27220,18232,-27227,18222,-27233,18213,-27239,18204,-27245,18195,-27251,18185,-27258,18176,-27264,18167,-27270,18157,-27276,18148,-27282,18139,-27289,18130,-27295,18120,-27301,18111,-27307,18102,-27313,18092,-27320,18083,-27326,18074,-27332,18064,-27338,18055,-27344,18046,-27350,18036,-27356,18027,-27363,18018,-27369,18008,-27375,17999,-27381,17990,-27387,17980,-27393,17971,-27399,17962,-27406,17952,-27412,17943,-27418,17934,-27424,17924,-27430,17915,-27436,17906,-27442,17896,-27448,17887,-27454,17878,-27461,17868,-27467,17859,-27473,17849,-27479,17840,-27485,17831,-27491,17821,-27497,17812,-27503,17803,-27509,17793,-27515,17784,-27521,17774,-27527,17765,-27533,17756,-27539,17746,-27546,17737,-27552,17727,-27558,17718,-27564,17709,-27570,17699,-27576,17690,-27582,17680,-27588,17671,-27594,17662,-27600,17652,-27606,17643,-27612,17633,-27618,17624,-27624,17615,-27630,17605,-27636,17596,-27642,17586,-27648,17577,-27654,17567,-27660,17558,-27666,17549,-27672,17539,-27678,17530,-27684,17520,-27690,17511,-27696,17501,-27702,17492,-27708,17483,-27714,17473,-27720,17464,-27726,17454,-27732,17445,-27737,17435,-27743,17426,-27749,17416,-27755,17407,-27761,17397,-27767,17388,-27773,17379,-27779,17369,-27785,17360,-27791,17350,-27797,17341,-27803,17331,-27809,17322,-27815,17312,-27820,17303,-27826,17293,-27832,17284,-27838,17274,-27844,17265,-27850,17255,-27856,17246,-27862,17236,-27868,17227,-27873,17217,-27879,17208,-27885,17198,-27891,17189,-27897,17179,-27903,17170,-27909,17160,-27914,17151,-27920,17141,-27926,17132,-27932,17122,-27938,17113,-27944,17103,-27949,17094,-27955,17084,-27961,17074,-27967,17065,-27973,17055,-27979,17046,-27984,17036,-27990,17027,-27996,17017,-28002,17008,-28008,16998,-28013,16989,-28019,16979,-28025,16969,-28031,16960,-28037,16950,-28042,16941,-28048,16931,-28054,16922,-28060,16912,-28065,16903,-28071,16893,-28077,16883,-28083,16874,-28088,16864,-28094,16855,-28100,16845,-28106,16836,-28111,16826,-28117,16816,-28123,16807,-28129,16797,-28134,16788,-28140,16778,-28146,16768,-28152,16759,-28157,16749,-28163,16740,-28169,16730,-28174,16720,-28180,16711,-28186,16701,-28191,16692,-28197,16682,-28203,16672,-28209,16663,-28214,16653,-28220,16643,-28226,16634,-28231,16624,-28237,16615,-28243,16605,-28248,16595,-28254,16586,-28260,16576,-28265,16566,-28271,16557,-28276,16547,-28282,16538,-28288,16528,-28293,16518,-28299,16509,-28305,16499,-28310,16489,-28316,16480,-28322,16470,-28327,16460,-28333,16451,-28338,16441,-28344,16431,-28350,16422,-28355,16412,-28361,16402,-28366,16393,-28372,16383,-28378,16373,-28383,16364,-28389,16354,-28394,16344,-28400,16335,-28405,16325,-28411,16315,-28417,16306,-28422,16296,-28428,16286,-28433,16276,-28439,16267,-28444,16257,-28450,16247,-28455,16238,-28461,16228,-28466,16218,-28472,16209,-28478,16199,-28483,16189,-28489,16179,-28494,16170,-28500,16160,-28505,16150,-28511,16141,-28516,16131,-28522,16121,-28527,16111,-28533,16102,-28538,16092,-28544,16082,-28549,16072,-28555,16063,-28560,16053,-28566,16043,-28571,16034,-28576,16024,-28582,16014,-28587,16004,-28593,15995,-28598,15985,-28604,15975,-28609,15965,-28615,15956,-28620,15946,-28626,15936,-28631,15926,-28636,15917,-28642,15907,-28647,15897,-28653,15887,-28658,15877,-28663,15868,-28669,15858,-28674,15848,-28680,15838,-28685,15829,-28691,15819,-28696,15809,-28701,15799,-28707,15789,-28712,15780,-28717,15770,-28723,15760,-28728,15750,-28734,15740,-28739,15731,-28744,15721,-28750,15711,-28755,15701,-28760,15691,-28766,15682,-28771,15672,-28776,15662,-28782,15652,-28787,15642,-28792,15633,-28798,15623,-28803,15613,-28808,15603,-28814,15593,-28819,15583,-28824,15574,-28830,15564,-28835,15554,-28840,15544,-28846,15534,-28851,15525,-28856,15515,-28861,15505,-28867,15495,-28872,15485,-28877,15475,-28883,15465,-28888,15456,-28893,15446,-28898,15436,-28904,15426,-28909,15416,-28914,15406,-28919,15396,-28925,15387,-28930,15377,-28935,15367,-28940,15357,-28946,15347,-28951,15337,-28956,15327,-28961,15318,-28967,15308,-28972,15298,-28977,15288,-28982,15278,-28987,15268,-28993,15258,-28998,15248,-29003,15238,-29008,15229,-29013,15219,-29019,15209,-29024,15199,-29029,15189,-29034,15179,-29039,15169,-29045,15159,-29050,15149,-29055,15140,-29060,15130,-29065,15120,-29070,15110,-29075,15100,-29081,15090,-29086,15080,-29091,15070,-29096,15060,-29101,15050,-29106,15040,-29111,15030,-29117,15021,-29122,15011,-29127,15001,-29132,14991,-29137,14981,-29142,14971,-29147,14961,-29152,14951,-29157,14941,-29163,14931,-29168,14921,-29173,14911,-29178,14901,-29183,14891,-29188,14881,-29193,14871,-29198,14861,-29203,14852,-29208,14842,-29213,14832,-29218,14822,-29223,14812,-29228,14802,-29234,14792,-29239,14782,-29244,14772,-29249,14762,-29254,14752,-29259,14742,-29264,14732,-29269,14722,-29274,14712,-29279,14702,-29284,14692,-29289,14682,-29294,14672,-29299,14662,-29304,14652,-29309,14642,-29314,14632,-29319,14622,-29324,14612,-29329,14602,-29334,14592,-29339,14582,-29344,14572,-29349,14562,-29354,14552,-29359,14542,-29364,14532,-29369,14522,-29373,14512,-29378,14502,-29383,14492,-29388,14482,-29393,14472,-29398,14462,-29403,14452,-29408,14442,-29413,14432,-29418,14422,-29423,14412,-29428,14402,-29433,14392,-29438,14382,-29442,14372,-29447,14362,-29452,14352,-29457,14342,-29462,14331,-29467,14321,-29472,14311,-29477,14301,-29482,14291,-29486,14281,-29491,14271,-29496,14261,-29501,14251,-29506,14241,-29511,14231,-29516,14221,-29520,14211,-29525,14201,-29530,14191,-29535,14181,-29540,14171,-29545,14160,-29549,14150,-29554,14140,-29559,14130,-29564,14120,-29569,14110,-29574,14100,-29578,14090,-29583,14080,-29588,14070,-29593,14060,-29598,14050,-29602,14039,-29607,14029,-29612,14019,-29617,14009,-29622,13999,-29626,13989,-29631,13979,-29636,13969,-29641,13959,-29645,13949,-29650,13938,-29655,13928,-29660,13918,-29664,13908,-29669,13898,-29674,13888,-29679,13878,-29683,13868,-29688,13858,-29693,13847,-29697,13837,-29702,13827,-29707,13817,-29712,13807,-29716,13797,-29721,13787,-29726,13777,-29730,13766,-29735,13756,-29740,13746,-29745,13736,-29749,13726,-29754,13716,-29759,13706,-29763,13695,-29768,13685,-29773,13675,-29777,13665,-29782,13655,-29787,13645,-29791,13634,-29796,13624,-29801,13614,-29805,13604,-29810,13594,-29814,13584,-29819,13574,-29824,13563,-29828,13553,-29833,13543,-29838,13533,-29842,13523,-29847,13512,-29851,13502,-29856,13492,-29861,13482,-29865,13472,-29870,13462,-29874,13451,-29879,13441,-29884,13431,-29888,13421,-29893,13411,-29897,13400,-29902,13390,-29906,13380,-29911,13370,-29916,13360,-29920,13349,-29925,13339,-29929,13329,-29934,13319,-29938,13309,-29943,13298,-29947,13288,-29952,13278,-29956,13268,-29961,13258,-29965,13247,-29970,13237,-29974,13227,-29979,13217,-29984,13207,-29988,13196,-29993,13186,-29997,13176,-30002,13166,-30006,13155,-30010,13145,-30015,13135,-30019,13125,-30024,13114,-30028,13104,-30033,13094,-30037,13084,-30042,13074,-30046,13063,-30051,13053,-30055,13043,-30060,13033,-30064,13022,-30068,13012,-30073,13002,-30077,12992,-30082,12981,-30086,12971,-30091,12961,-30095,12950,-30099,12940,-30104,12930,-30108,12920,-30113,12909,-30117,12899,-30122,12889,-30126,12879,-30130,12868,-30135,12858,-30139,12848,-30143,12838,-30148,12827,-30152,12817,-30157,12807,-30161,12796,-30165,12786,-30170,12776,-30174,12766,-30178,12755,-30183,12745,-30187,12735,-30191,12724,-30196,12714,-30200,12704,-30204,12694,-30209,12683,-30213,12673,-30217,12663,-30222,12652,-30226,12642,-30230,12632,-30235,12621,-30239,12611,-30243,12601,-30248,12590,-30252,12580,-30256,12570,-30260,12560,-30265,12549,-30269,12539,-30273,12529,-30278,12518,-30282,12508,-30286,12498,-30290,12487,-30295,12477,-30299,12467,-30303,12456,-30307,12446,-30312,12436,-30316,12425,-30320,12415,-30324,12405,-30329,12394,-30333,12384,-30337,12374,-30341,12363,-30345,12353,-30350,12343,-30354,12332,-30358,12322,-30362,12312,-30366,12301,-30371,12291,-30375,12280,-30379,12270,-30383,12260,-30387,12249,-30392,12239,-30396,12229,-30400,12218,-30404,12208,-30408,12198,-30412,12187,-30417,12177,-30421,12166,-30425,12156,-30429,12146,-30433,12135,-30437,12125,-30441,12115,-30446,12104,-30450,12094,-30454,12083,-30458,12073,-30462,12063,-30466,12052,-30470,12042,-30474,12032,-30478,12021,-30483,12011,-30487,12000,-30491,11990,-30495,11980,-30499,11969,-30503,11959,-30507,11948,-30511,11938,-30515,11928,-30519,11917,-30523,11907,-30527,11896,-30531,11886,-30536,11876,-30540,11865,-30544,11855,-30548,11844,-30552,11834,-30556,11823,-30560,11813,-30564,11803,-30568,11792,-30572,11782,-30576,11771,-30580,11761,-30584,11750,-30588,11740,-30592,11730,-30596,11719,-30600,11709,-30604,11698,-30608,11688,-30612,11677,-30616,11667,-30620,11657,-30624,11646,-30628,11636,-30632,11625,-30636,11615,-30640,11604,-30644,11594,-30648,11583,-30652,11573,-30656,11563,-30659,11552,-30663,11542,-30667,11531,-30671,11521,-30675,11510,-30679,11500,-30683,11489,-30687,11479,-30691,11468,-30695,11458,-30699,11448,-30703,11437,-30706,11427,-30710,11416,-30714,11406,-30718,11395,-30722,11385,-30726,11374,-30730,11364,-30734,11353,-30738,11343,-30741,11332,-30745,11322,-30749,11311,-30753,11301,-30757,11290,-30761,11280,-30765,11269,-30768,11259,-30772,11248,-30776,11238,-30780,11227,-30784,11217,-30788,11206,-30791,11196,-30795,11185,-30799,11175,-30803,11164,-30807,11154,-30810,11143,-30814,11133,-30818,11122,-30822,11112,-30826,11101,-30829,11091,-30833,11080,-30837,11070,-30841,11059,-30845,11049,-30848,11038,-30852,11028,-30856,11017,-30860,11007,-30863,10996,-30867,10986,-30871,10975,-30875,10965,-30878,10954,-30882,10944,-30886,10933,-30890,10923,-30893,10912,-30897,10902,-30901,10891,-30904,10880,-30908,10870,-30912,10859,-30916,10849,-30919,10838,-30923,10828,-30927,10817,-30930,10807,-30934,10796,-30938,10786,-30941,10775,-30945,10765,-30949,10754,-30952,10743,-30956,10733,-30960,10722,-30963,10712,-30967,10701,-30971,10691,-30974,10680,-30978,10670,-30982,10659,-30985,10648,-30989,10638,-30992,10627,-30996,10617,-31000,10606,-31003,10596,-31007,10585,-31011,10574,-31014,10564,-31018,10553,-31021,10543,-31025,10532,-31029,10522,-31032,10511,-31036,10500,-31039,10490,-31043,10479,-31046,10469,-31050,10458,-31054,10447,-31057,10437,-31061,10426,-31064,10416,-31068,10405,-31071,10395,-31075,10384,-31078,10373,-31082,10363,-31086,10352,-31089,10342,-31093,10331,-31096,10320,-31100,10310,-31103,10299,-31107,10289,-31110,10278,-31114,10267,-31117,10257,-31121,10246,-31124,10235,-31128,10225,-31131,10214,-31135,10204,-31138,10193,-31142,10182,-31145,10172,-31149,10161,-31152,10151,-31155,10140,-31159,10129,-31162,10119,-31166,10108,-31169,10097,-31173,10087,-31176,10076,-31180,10066,-31183,10055,-31186,10044,-31190,10034,-31193,10023,-31197,10012,-31200,10002,-31204,9991,-31207,9980,-31210,9970,-31214,9959,-31217,9949,-31221,9938,-31224,9927,-31227,9917,-31231,9906,-31234,9895,-31237,9885,-31241,9874,-31244,9863,-31248,9853,-31251,9842,-31254,9831,-31258,9821,-31261,9810,-31264,9799,-31268,9789,-31271,9778,-31274,9767,-31278,9757,-31281,9746,-31284,9735,-31288,9725,-31291,9714,-31294,9703,-31298,9693,-31301,9682,-31304,9671,-31308,9661,-31311,9650,-31314,9639,-31317,9629,-31321,9618,-31324,9607,-31327,9597,-31331,9586,-31334,9575,-31337,9565,-31340,9554,-31344,9543,-31347,9533,-31350,9522,-31353,9511,-31357,9501,-31360,9490,-31363,9479,-31366,9468,-31370,9458,-31373,9447,-31376,9436,-31379,9426,-31382,9415,-31386,9404,-31389,9394,-31392,9383,-31395,9372,-31398,9362,-31402,9351,-31405,9340,-31408,9329,-31411,9319,-31414,9308,-31418,9297,-31421,9287,-31424,9276,-31427,9265,-31430,9254,-31433,9244,-31436,9233,-31440,9222,-31443,9212,-31446,9201,-31449,9190,-31452,9179,-31455,9169,-31458,9158,-31462,9147,-31465,9136,-31468,9126,-31471,9115,-31474,9104,-31477,9094,-31480,9083,-31483,9072,-31486,9061,-31490,9051,-31493,9040,-31496,9029,-31499,9018,-31502,9008,-31505,8997,-31508,8986,-31511,8975,-31514,8965,-31517,8954,-31520,8943,-31523,8932,-31526,8922,-31529,8911,-31532,8900,-31535,8889,-31538,8879,-31542,8868,-31545,8857,-31548,8846,-31551,8836,-31554,8825,-31557,8814,-31560,8803,-31563,8793,-31566,8782,-31569,8771,-31572,8760,-31575,8750,-31578,8739,-31581,8728,-31584,8717,-31587,8707,-31589,8696,-31592,8685,-31595,8674,-31598,8663,-31601,8653,-31604,8642,-31607,8631,-31610,8620,-31613,8610,-31616,8599,-31619,8588,-31622,8577,-31625,8567,-31628,8556,-31631,8545,-31634,8534,-31636,8523,-31639,8513,-31642,8502,-31645,8491,-31648,8480,-31651,8469,-31654,8459,-31657,8448,-31660,8437,-31663,8426,-31665,8415,-31668,8405,-31671,8394,-31674,8383,-31677,8372,-31680,8361,-31683,8351,-31685,8340,-31688,8329,-31691,8318,-31694,8307,-31697,8297,-31700,8286,-31702,8275,-31705,8264,-31708,8253,-31711,8243,-31714,8232,-31717,8221,-31719,8210,-31722,8199,-31725,8189,-31728,8178,-31730,8167,-31733,8156,-31736,8145,-31739,8134,-31742,8124,-31744,8113,-31747,8102,-31750,8091,-31753,8080,-31755,8070,-31758,8059,-31761,8048,-31764,8037,-31766,8026,-31769,8015,-31772,8005,-31775,7994,-31777,7983,-31780,7972,-31783,7961,-31786,7950,-31788,7940,-31791,7929,-31794,7918,-31796,7907,-31799,7896,-31802,7885,-31804,7875,-31807,7864,-31810,7853,-31812,7842,-31815,7831,-31818,7820,-31820,7809,-31823,7799,-31826,7788,-31828,7777,-31831,7766,-31834,7755,-31836,7744,-31839,7733,-31842,7723,-31844,7712,-31847,7701,-31850,7690,-31852,7679,-31855,7668,-31857,7657,-31860,7647,-31863,7636,-31865,7625,-31868,7614,-31870,7603,-31873,7592,-31876,7581,-31878,7571,-31881,7560,-31883,7549,-31886,7538,-31889,7527,-31891,7516,-31894,7505,-31896,7494,-31899,7484,-31901,7473,-31904,7462,-31906,7451,-31909,7440,-31912,7429,-31914,7418,-31917,7407,-31919,7397,-31922,7386,-31924,7375,-31927,7364,-31929,7353,-31932,7342,-31934,7331,-31937,7320,-31939,7310,-31942,7299,-31944,7288,-31947,7277,-31949,7266,-31952,7255,-31954,7244,-31957,7233,-31959,7222,-31962,7211,-31964,7201,-31966,7190,-31969,7179,-31971,7168,-31974,7157,-31976,7146,-31979,7135,-31981,7124,-31984,7113,-31986,7102,-31988,7092,-31991,7081,-31993,7070,-31996,7059,-31998,7048,-32000,7037,-32003,7026,-32005,7015,-32008,7004,-32010,6993,-32012,6982,-32015,6972,-32017,6961,-32020,6950,-32022,6939,-32024,6928,-32027,6917,-32029,6906,-32031,6895,-32034,6884,-32036,6873,-32038,6862,-32041,6851,-32043,6841,-32045,6830,-32048,6819,-32050,6808,-32052,6797,-32055,6786,-32057,6775,-32059,6764,-32062,6753,-32064,6742,-32066,6731,-32069,6720,-32071,6709,-32073,6698,-32075,6688,-32078,6677,-32080,6666,-32082,6655,-32085,6644,-32087,6633,-32089,6622,-32091,6611,-32094,6600,-32096,6589,-32098,6578,-32100,6567,-32103,6556,-32105,6545,-32107,6534,-32109,6523,-32111,6512,-32114,6502,-32116,6491,-32118,6480,-32120,6469,-32123,6458,-32125,6447,-32127,6436,-32129,6425,-32131,6414,-32134,6403,-32136,6392,-32138,6381,-32140,6370,-32142,6359,-32144,6348,-32147,6337,-32149,6326,-32151,6315,-32153,6304,-32155,6293,-32157,6282,-32159,6271,-32162,6261,-32164,6250,-32166,6239,-32168,6228,-32170,6217,-32172,6206,-32174,6195,-32177,6184,-32179,6173,-32181,6162,-32183,6151,-32185,6140,-32187,6129,-32189,6118,-32191,6107,-32193,6096,-32195,6085,-32197,6074,-32200,6063,-32202,6052,-32204,6041,-32206,6030,-32208,6019,-32210,6008,-32212,5997,-32214,5986,-32216,5975,-32218,5964,-32220,5953,-32222,5942,-32224,5931,-32226,5920,-32228,5909,-32230,5898,-32232,5887,-32234,5876,-32236,5865,-32238,5854,-32240,5843,-32242,5832,-32244,5821,-32246,5810,-32248,5799,-32250,5788,-32252,5777,-32254,5766,-32256,5755,-32258,5744,-32260,5733,-32262,5722,-32264,5711,-32266,5700,-32268,5689,-32270,5678,-32272,5667,-32274,5656,-32275,5645,-32277,5634,-32279,5623,-32281,5612,-32283,5601,-32285,5590,-32287,5579,-32289,5568,-32291,5557,-32293,5546,-32295,5535,-32296,5524,-32298,5513,-32300,5502,-32302,5491,-32304,5480,-32306,5469,-32308,5458,-32310,5447,-32311,5436,-32313,5425,-32315,5414,-32317,5403,-32319,5392,-32321,5381,-32323,5370,-32324,5359,-32326,5348,-32328,5337,-32330,5326,-32332,5315,-32333,5304,-32335,5293,-32337,5282,-32339,5271,-32341,5260,-32342,5249,-32344,5238,-32346,5227,-32348,5216,-32350,5205,-32351,5194,-32353,5183,-32355,5172,-32357,5161,-32358,5150,-32360,5139,-32362,5128,-32364,5117,-32365,5106,-32367,5094,-32369,5083,-32371,5072,-32372,5061,-32374,5050,-32376,5039,-32378,5028,-32379,5017,-32381,5006,-32383,4995,-32384,4984,-32386,4973,-32388,4962,-32390,4951,-32391,4940,-32393,4929,-32395,4918,-32396,4907,-32398,4896,-32400,4885,-32401,4874,-32403,4863,-32405,4852,-32406,4841,-32408,4830,-32410,4818,-32411,4807,-32413,4796,-32414,4785,-32416,4774,-32418,4763,-32419,4752,-32421,4741,-32423,4730,-32424,4719,-32426,4708,-32427,4697,-32429,4686,-32431,4675,-32432,4664,-32434,4653,-32435,4642,-32437,4631,-32439,4620,-32440,4608,-32442,4597,-32443,4586,-32445,4575,-32446,4564,-32448,4553,-32450,4542,-32451,4531,-32453,4520,-32454,4509,-32456,4498,-32457,4487,-32459,4476,-32460,4465,-32462,4454,-32463,4443,-32465,4431,-32466,4420,-32468,4409,-32469,4398,-32471,4387,-32472,4376,-32474,4365,-32475,4354,-32477,4343,-32478,4332,-32480,4321,-32481,4310,-32483,4299,-32484,4288,-32486,4276,-32487,4265,-32489,4254,-32490,4243,-32492,4232,-32493,4221,-32494,4210,-32496,4199,-32497,4188,-32499,4177,-32500,4166,-32502,4155,-32503,4144,-32504,4132,-32506,4121,-32507,4110,-32509,4099,-32510,4088,-32511,4077,-32513,4066,-32514,4055,-32516,4044,-32517,4033,-32518,4022,-32520,4011,-32521,3999,-32522,3988,-32524,3977,-32525,3966,-32527,3955,-32528,3944,-32529,3933,-32531,3922,-32532,3911,-32533,3900,-32535,3889,-32536,3877,-32537,3866,-32539,3855,-32540,3844,-32541,3833,-32542,3822,-32544,3811,-32545,3800,-32546,3789,-32548,3778,-32549,3767,-32550,3755,-32552,3744,-32553,3733,-32554,3722,-32555,3711,-32557,3700,-32558,3689,-32559,3678,-32560,3667,-32562,3656,-32563,3644,-32564,3633,-32565,3622,-32567,3611,-32568,3600,-32569,3589,-32570,3578,-32572,3567,-32573,3556,-32574,3545,-32575,3533,-32576,3522,-32578,3511,-32579,3500,-32580,3489,-32581,3478,-32582,3467,-32584,3456,-32585,3445,-32586,3433,-32587,3422,-32588,3411,-32589,3400,-32591,3389,-32592,3378,-32593,3367,-32594,3356,-32595,3345,-32596,3333,-32597,3322,-32599,3311,-32600,3300,-32601,3289,-32602,3278,-32603,3267,-32604,3256,-32605,3245,-32606,3233,-32608,3222,-32609,3211,-32610,3200,-32611,3189,-32612,3178,-32613,3167,-32614,3156,-32615,3145,-32616,3133,-32617,3122,-32618,3111,-32619,3100,-32620,3089,-32622,3078,-32623,3067,-32624,3056,-32625,3044,-32626,3033,-32627,3022,-32628,3011,-32629,3000,-32630,2989,-32631,2978,-32632,2967,-32633,2955,-32634,2944,-32635,2933,-32636,2922,-32637,2911,-32638,2900,-32639,2889,-32640,2878,-32641,2866,-32642,2855,-32643,2844,-32644,2833,-32645,2822,-32646,2811,-32647,2800,-32648,2789,-32649,2777,-32650,2766,-32650,2755,-32651,2744,-32652,2733,-32653,2722,-32654,2711,-32655,2700,-32656,2688,-32657,2677,-32658,2666,-32659,2655,-32660,2644,-32661,2633,-32662,2622,-32662,2610,-32663,2599,-32664,2588,-32665,2577,-32666,2566,-32667,2555,-32668,2544,-32669,2533,-32669,2521,-32670,2510,-32671,2499,-32672,2488,-32673,2477,-32674,2466,-32675,2455,-32675,2443,-32676,2432,-32677,2421,-32678,2410,-32679,2399,-32680,2388,-32680,2377,-32681,2365,-32682,2354,-32683,2343,-32684,2332,-32684,2321,-32685,2310,-32686,2299,-32687,2287,-32688,2276,-32688,2265,-32689,2254,-32690,2243,-32691,2232,-32691,2221,-32692,2209,-32693,2198,-32694,2187,-32694,2176,-32695,2165,-32696,2154,-32697,2143,-32697,2131,-32698,2120,-32699,2109,-32700,2098,-32700,2087,-32701,2076,-32702,2065,-32702,2053,-32703,2042,-32704,2031,-32704,2020,-32705,2009,-32706,1998,-32707,1986,-32707,1975,-32708,1964,-32709,1953,-32709,1942,-32710,1931,-32711,1920,-32711,1908,-32712,1897,-32712,1886,-32713,1875,-32714,1864,-32714,1853,-32715,1842,-32716,1830,-32716,1819,-32717,1808,-32718,1797,-32718,1786,-32719,1775,-32719,1763,-32720,1752,-32721,1741,-32721,1730,-32722,1719,-32722,1708,-32723,1697,-32724,1685,-32724,1674,-32725,1663,-32725,1652,-32726,1641,-32726,1630,-32727,1618,-32727,1607,-32728,1596,-32729,1585,-32729,1574,-32730,1563,-32730,1552,-32731,1540,-32731,1529,-32732,1518,-32732,1507,-32733,1496,-32733,1485,-32734,1473,-32734,1462,-32735,1451,-32735,1440,-32736,1429,-32736,1418,-32737,1406,-32737,1395,-32738,1384,-32738,1373,-32739,1362,-32739,1351,-32740,1339,-32740,1328,-32741,1317,-32741,1306,-32741,1295,-32742,1284,-32742,1273,-32743,1261,-32743,1250,-32744,1239,-32744,1228,-32744,1217,-32745,1206,-32745,1194,-32746,1183,-32746,1172,-32747,1161,-32747,1150,-32747,1139,-32748,1127,-32748,1116,-32748,1105,-32749,1094,-32749,1083,-32750,1072,-32750,1060,-32750,1049,-32751,1038,-32751,1027,-32751,1016,-32752,1005,-32752,993,-32752,982,-32753,971,-32753,960,-32753,949,-32754,938,-32754,926,-32754,915,-32755,904,-32755,893,-32755,882,-32756,871,-32756,859,-32756,848,-32757,837,-32757,826,-32757,815,-32757,804,-32758,792,-32758,781,-32758,770,-32758,759,-32759,748,-32759,737,-32759,725,-32759,714,-32760,703,-32760,692,-32760,681,-32760,670,-32761,658,-32761,647,-32761,636,-32761,625,-32762,614,-32762,603,-32762,591,-32762,580,-32762,569,-32763,558,-32763,547,-32763,536,-32763,524,-32763,513,-32763,502,-32764,491,-32764,480,-32764,469,-32764,457,-32764,446,-32764,435,-32765,424,-32765,413,-32765,402,-32765,390,-32765,379,-32765,368,-32765,357,-32766,346,-32766,335,-32766,323,-32766,312,-32766,301,-32766,290,-32766,279,-32766,268,-32766,256,-32766,245,-32767,234,-32767,223,-32767,212,-32767,201,-32767,189,-32767,178,-32767,167,-32767,156,-32767,145,-32767,134,-32767,122,-32767,111,-32767,100,-32767,89,-32767,78,-32767,67,-32767,55,-32767,44,-32767,33,-32767,22,-32767,11,-32767,0,-32767,-12,-32767,-23,-32767,-34,-32767,-45,-32767,-56,-32767,-68,-32767,-79,-32767,-90,-32767,-101,-32767,-112,-32767,-123,-32767,-135,-32767,-146,-32767,-157,-32767,-168,-32767,-179,-32767,-190,-32767,-202,-32767,-213,-32767,-224,-32767,-235,-32767,-246,-32767,-257,-32766,-269,-32766,-280,-32766,-291,-32766,-302,-32766,-313,-32766,-324,-32766,-336,-32766,-347,-32766,-358,-32766,-369,-32765,-380,-32765,-391,-32765,-403,-32765,-414,-32765,-425,-32765,-436,-32765,-447,-32764,-458,-32764,-470,-32764,-481,-32764,-492,-32764,-503,-32764,-514,-32763,-525,-32763,-537,-32763,-548,-32763,-559,-32763,-570,-32763,-581,-32762,-592,-32762,-604,-32762,-615,-32762,-626,-32762,-637,-32761,-648,-32761,-659,-32761,-671,-32761,-682,-32760,-693,-32760,-704,-32760,-715,-32760,-726,-32759,-738,-32759,-749,-32759,-760,-32759,-771,-32758,-782,-32758,-793,-32758,-805,-32758,-816,-32757,-827,-32757,-838,-32757,-849,-32757,-860,-32756,-872,-32756,-883,-32756,-894,-32755,-905,-32755,-916,-32755,-927,-32754,-939,-32754,-950,-32754,-961,-32753,-972,-32753,-983,-32753,-994,-32752,-1006,-32752,-1017,-32752,-1028,-32751,-1039,-32751,-1050,-32751,-1061,-32750,-1073,-32750,-1084,-32750,-1095,-32749,-1106,-32749,-1117,-32748,-1128,-32748,-1140,-32748,-1151,-32747,-1162,-32747,-1173,-32747,-1184,-32746,-1195,-32746,-1207,-32745,-1218,-32745,-1229,-32744,-1240,-32744,-1251,-32744,-1262,-32743,-1274,-32743,-1285,-32742,-1296,-32742,-1307,-32741,-1318,-32741,-1329,-32741,-1340,-32740,-1352,-32740,-1363,-32739,-1374,-32739,-1385,-32738,-1396,-32738,-1407,-32737,-1419,-32737,-1430,-32736,-1441,-32736,-1452,-32735,-1463,-32735,-1474,-32734,-1486,-32734,-1497,-32733,-1508,-32733,-1519,-32732,-1530,-32732,-1541,-32731,-1553,-32731,-1564,-32730,-1575,-32730,-1586,-32729,-1597,-32729,-1608,-32728,-1619,-32727,-1631,-32727,-1642,-32726,-1653,-32726,-1664,-32725,-1675,-32725,-1686,-32724,-1698,-32724,-1709,-32723,-1720,-32722,-1731,-32722,-1742,-32721,-1753,-32721,-1764,-32720,-1776,-32719,-1787,-32719,-1798,-32718,-1809,-32718,-1820,-32717,-1831,-32716,-1843,-32716,-1854,-32715,-1865,-32714,-1876,-32714,-1887,-32713,-1898,-32712,-1909,-32712,-1921,-32711,-1932,-32711,-1943,-32710,-1954,-32709,-1965,-32709,-1976,-32708,-1987,-32707,-1999,-32707,-2010,-32706,-2021,-32705,-2032,-32704,-2043,-32704,-2054,-32703,-2066,-32702,-2077,-32702,-2088,-32701,-2099,-32700,-2110,-32700,-2121,-32699,-2132,-32698,-2144,-32697,-2155,-32697,-2166,-32696,-2177,-32695,-2188,-32694,-2199,-32694,-2210,-32693,-2222,-32692,-2233,-32691,-2244,-32691,-2255,-32690,-2266,-32689,-2277,-32688,-2288,-32688,-2300,-32687,-2311,-32686,-2322,-32685,-2333,-32684,-2344,-32684,-2355,-32683,-2366,-32682,-2378,-32681,-2389,-32680,-2400,-32680,-2411,-32679,-2422,-32678,-2433,-32677,-2444,-32676,-2456,-32675,-2467,-32675,-2478,-32674,-2489,-32673,-2500,-32672,-2511,-32671,-2522,-32670,-2534,-32669,-2545,-32669,-2556,-32668,-2567,-32667,-2578,-32666,-2589,-32665,-2600,-32664,-2611,-32663,-2623,-32662,-2634,-32662,-2645,-32661,-2656,-32660,-2667,-32659,-2678,-32658,-2689,-32657,-2701,-32656,-2712,-32655,-2723,-32654,-2734,-32653,-2745,-32652,-2756,-32651,-2767,-32650,-2778,-32650,-2790,-32649,-2801,-32648,-2812,-32647,-2823,-32646,-2834,-32645,-2845,-32644,-2856,-32643,-2867,-32642,-2879,-32641,-2890,-32640,-2901,-32639,-2912,-32638,-2923,-32637,-2934,-32636,-2945,-32635,-2956,-32634,-2968,-32633,-2979,-32632,-2990,-32631,-3001,-32630,-3012,-32629,-3023,-32628,-3034,-32627,-3045,-32626,-3057,-32625,-3068,-32624,-3079,-32623,-3090,-32622,-3101,-32620,-3112,-32619,-3123,-32618,-3134,-32617,-3146,-32616,-3157,-32615,-3168,-32614,-3179,-32613,-3190,-32612,-3201,-32611,-3212,-32610,-3223,-32609,-3234,-32608,-3246,-32606,-3257,-32605,-3268,-32604,-3279,-32603,-3290,-32602,-3301,-32601,-3312,-32600,-3323,-32599,-3334,-32597,-3346,-32596,-3357,-32595,-3368,-32594,-3379,-32593,-3390,-32592,-3401,-32591,-3412,-32589,-3423,-32588,-3434,-32587,-3446,-32586,-3457,-32585,-3468,-32584,-3479,-32582,-3490,-32581,-3501,-32580,-3512,-32579,-3523,-32578,-3534,-32576,-3546,-32575,-3557,-32574,-3568,-32573,-3579,-32572,-3590,-32570,-3601,-32569,-3612,-32568,-3623,-32567,-3634,-32565,-3645,-32564,-3657,-32563,-3668,-32562,-3679,-32560,-3690,-32559,-3701,-32558,-3712,-32557,-3723,-32555,-3734,-32554,-3745,-32553,-3756,-32552,-3768,-32550,-3779,-32549,-3790,-32548,-3801,-32546,-3812,-32545,-3823,-32544,-3834,-32542,-3845,-32541,-3856,-32540,-3867,-32539,-3878,-32537,-3890,-32536,-3901,-32535,-3912,-32533,-3923,-32532,-3934,-32531,-3945,-32529,-3956,-32528,-3967,-32527,-3978,-32525,-3989,-32524,-4000,-32522,-4012,-32521,-4023,-32520,-4034,-32518,-4045,-32517,-4056,-32516,-4067,-32514,-4078,-32513,-4089,-32511,-4100,-32510,-4111,-32509,-4122,-32507,-4133,-32506,-4145,-32504,-4156,-32503,-4167,-32502,-4178,-32500,-4189,-32499,-4200,-32497,-4211,-32496,-4222,-32494,-4233,-32493,-4244,-32492,-4255,-32490,-4266,-32489,-4277,-32487,-4289,-32486,-4300,-32484,-4311,-32483,-4322,-32481,-4333,-32480,-4344,-32478,-4355,-32477,-4366,-32475,-4377,-32474,-4388,-32472,-4399,-32471,-4410,-32469,-4421,-32468,-4432,-32466,-4444,-32465,-4455,-32463,-4466,-32462,-4477,-32460,-4488,-32459,-4499,-32457,-4510,-32456,-4521,-32454,-4532,-32453,-4543,-32451,-4554,-32450,-4565,-32448,-4576,-32446,-4587,-32445,-4598,-32443,-4609,-32442,-4621,-32440,-4632,-32439,-4643,-32437,-4654,-32435,-4665,-32434,-4676,-32432,-4687,-32431,-4698,-32429,-4709,-32427,-4720,-32426,-4731,-32424,-4742,-32423,-4753,-32421,-4764,-32419,-4775,-32418,-4786,-32416,-4797,-32414,-4808,-32413,-4819,-32411,-4831,-32410,-4842,-32408,-4853,-32406,-4864,-32405,-4875,-32403,-4886,-32401,-4897,-32400,-4908,-32398,-4919,-32396,-4930,-32395,-4941,-32393,-4952,-32391,-4963,-32390,-4974,-32388,-4985,-32386,-4996,-32384,-5007,-32383,-5018,-32381,-5029,-32379,-5040,-32378,-5051,-32376,-5062,-32374,-5073,-32372,-5084,-32371,-5095,-32369,-5107,-32367,-5118,-32365,-5129,-32364,-5140,-32362,-5151,-32360,-5162,-32358,-5173,-32357,-5184,-32355,-5195,-32353,-5206,-32351,-5217,-32350,-5228,-32348,-5239,-32346,-5250,-32344,-5261,-32342,-5272,-32341,-5283,-32339,-5294,-32337,-5305,-32335,-5316,-32333,-5327,-32332,-5338,-32330,-5349,-32328,-5360,-32326,-5371,-32324,-5382,-32323,-5393,-32321,-5404,-32319,-5415,-32317,-5426,-32315,-5437,-32313,-5448,-32311,-5459,-32310,-5470,-32308,-5481,-32306,-5492,-32304,-5503,-32302,-5514,-32300,-5525,-32298,-5536,-32296,-5547,-32295,-5558,-32293,-5569,-32291,-5580,-32289,-5591,-32287,-5602,-32285,-5613,-32283,-5624,-32281,-5635,-32279,-5646,-32277,-5657,-32275,-5668,-32274,-5679,-32272,-5690,-32270,-5701,-32268,-5712,-32266,-5723,-32264,-5734,-32262,-5745,-32260,-5756,-32258,-5767,-32256,-5778,-32254,-5789,-32252,-5800,-32250,-5811,-32248,-5822,-32246,-5833,-32244,-5844,-32242,-5855,-32240,-5866,-32238,-5877,-32236,-5888,-32234,-5899,-32232,-5910,-32230,-5921,-32228,-5932,-32226,-5943,-32224,-5954,-32222,-5965,-32220,-5976,-32218,-5987,-32216,-5998,-32214,-6009,-32212,-6020,-32210,-6031,-32208,-6042,-32206,-6053,-32204,-6064,-32202,-6075,-32200,-6086,-32197,-6097,-32195,-6108,-32193,-6119,-32191,-6130,-32189,-6141,-32187,-6152,-32185,-6163,-32183,-6174,-32181,-6185,-32179,-6196,-32177,-6207,-32174,-6218,-32172,-6229,-32170,-6240,-32168,-6251,-32166,-6262,-32164,-6272,-32162,-6283,-32159,-6294,-32157,-6305,-32155,-6316,-32153,-6327,-32151,-6338,-32149,-6349,-32147,-6360,-32144,-6371,-32142,-6382,-32140,-6393,-32138,-6404,-32136,-6415,-32134,-6426,-32131,-6437,-32129,-6448,-32127,-6459,-32125,-6470,-32123,-6481,-32120,-6492,-32118,-6503,-32116,-6513,-32114,-6524,-32111,-6535,-32109,-6546,-32107,-6557,-32105,-6568,-32103,-6579,-32100,-6590,-32098,-6601,-32096,-6612,-32094,-6623,-32091,-6634,-32089,-6645,-32087,-6656,-32085,-6667,-32082,-6678,-32080,-6689,-32078,-6699,-32075,-6710,-32073,-6721,-32071,-6732,-32069,-6743,-32066,-6754,-32064,-6765,-32062,-6776,-32059,-6787,-32057,-6798,-32055,-6809,-32052,-6820,-32050,-6831,-32048,-6842,-32045,-6852,-32043,-6863,-32041,-6874,-32038,-6885,-32036,-6896,-32034,-6907,-32031,-6918,-32029,-6929,-32027,-6940,-32024,-6951,-32022,-6962,-32020,-6973,-32017,-6983,-32015,-6994,-32012,-7005,-32010,-7016,-32008,-7027,-32005,-7038,-32003,-7049,-32000,-7060,-31998,-7071,-31996,-7082,-31993,-7093,-31991,-7103,-31988,-7114,-31986,-7125,-31984,-7136,-31981,-7147,-31979,-7158,-31976,-7169,-31974,-7180,-31971,-7191,-31969,-7202,-31966,-7212,-31964,-7223,-31962,-7234,-31959,-7245,-31957,-7256,-31954,-7267,-31952,-7278,-31949,-7289,-31947,-7300,-31944,-7311,-31942,-7321,-31939,-7332,-31937,-7343,-31934,-7354,-31932,-7365,-31929,-7376,-31927,-7387,-31924,-7398,-31922,-7408,-31919,-7419,-31917,-7430,-31914,-7441,-31912,-7452,-31909,-7463,-31906,-7474,-31904,-7485,-31901,-7495,-31899,-7506,-31896,-7517,-31894,-7528,-31891,-7539,-31889,-7550,-31886,-7561,-31883,-7572,-31881,-7582,-31878,-7593,-31876,-7604,-31873,-7615,-31870,-7626,-31868,-7637,-31865,-7648,-31863,-7658,-31860,-7669,-31857,-7680,-31855,-7691,-31852,-7702,-31850,-7713,-31847,-7724,-31844,-7734,-31842,-7745,-31839,-7756,-31836,-7767,-31834,-7778,-31831,-7789,-31828,-7800,-31826,-7810,-31823,-7821,-31820,-7832,-31818,-7843,-31815,-7854,-31812,-7865,-31810,-7876,-31807,-7886,-31804,-7897,-31802,-7908,-31799,-7919,-31796,-7930,-31794,-7941,-31791,-7951,-31788,-7962,-31786,-7973,-31783,-7984,-31780,-7995,-31777,-8006,-31775,-8016,-31772,-8027,-31769,-8038,-31766,-8049,-31764,-8060,-31761,-8071,-31758,-8081,-31755,-8092,-31753,-8103,-31750,-8114,-31747,-8125,-31744,-8135,-31742,-8146,-31739,-8157,-31736,-8168,-31733,-8179,-31730,-8190,-31728,-8200,-31725,-8211,-31722,-8222,-31719,-8233,-31717,-8244,-31714,-8254,-31711,-8265,-31708,-8276,-31705,-8287,-31702,-8298,-31700,-8308,-31697,-8319,-31694,-8330,-31691,-8341,-31688,-8352,-31685,-8362,-31683,-8373,-31680,-8384,-31677,-8395,-31674,-8406,-31671,-8416,-31668,-8427,-31665,-8438,-31663,-8449,-31660,-8460,-31657,-8470,-31654,-8481,-31651,-8492,-31648,-8503,-31645,-8514,-31642,-8524,-31639,-8535,-31636,-8546,-31634,-8557,-31631,-8568,-31628,-8578,-31625,-8589,-31622,-8600,-31619,-8611,-31616,-8621,-31613,-8632,-31610,-8643,-31607,-8654,-31604,-8664,-31601,-8675,-31598,-8686,-31595,-8697,-31592,-8708,-31589,-8718,-31587,-8729,-31584,-8740,-31581,-8751,-31578,-8761,-31575,-8772,-31572,-8783,-31569,-8794,-31566,-8804,-31563,-8815,-31560,-8826,-31557,-8837,-31554,-8847,-31551,-8858,-31548,-8869,-31545,-8880,-31542,-8890,-31538,-8901,-31535,-8912,-31532,-8923,-31529,-8933,-31526,-8944,-31523,-8955,-31520,-8966,-31517,-8976,-31514,-8987,-31511,-8998,-31508,-9009,-31505,-9019,-31502,-9030,-31499,-9041,-31496,-9052,-31493,-9062,-31490,-9073,-31486,-9084,-31483,-9095,-31480,-9105,-31477,-9116,-31474,-9127,-31471,-9137,-31468,-9148,-31465,-9159,-31462,-9170,-31458,-9180,-31455,-9191,-31452,-9202,-31449,-9213,-31446,-9223,-31443,-9234,-31440,-9245,-31436,-9255,-31433,-9266,-31430,-9277,-31427,-9288,-31424,-9298,-31421,-9309,-31418,-9320,-31414,-9330,-31411,-9341,-31408,-9352,-31405,-9363,-31402,-9373,-31398,-9384,-31395,-9395,-31392,-9405,-31389,-9416,-31386,-9427,-31382,-9437,-31379,-9448,-31376,-9459,-31373,-9469,-31370,-9480,-31366,-9491,-31363,-9502,-31360,-9512,-31357,-9523,-31353,-9534,-31350,-9544,-31347,-9555,-31344,-9566,-31340,-9576,-31337,-9587,-31334,-9598,-31331,-9608,-31327,-9619,-31324,-9630,-31321,-9640,-31317,-9651,-31314,-9662,-31311,-9672,-31308,-9683,-31304,-9694,-31301,-9704,-31298,-9715,-31294,-9726,-31291,-9736,-31288,-9747,-31284,-9758,-31281,-9768,-31278,-9779,-31274,-9790,-31271,-9800,-31268,-9811,-31264,-9822,-31261,-9832,-31258,-9843,-31254,-9854,-31251,-9864,-31248,-9875,-31244,-9886,-31241,-9896,-31237,-9907,-31234,-9918,-31231,-9928,-31227,-9939,-31224,-9950,-31221,-9960,-31217,-9971,-31214,-9981,-31210,-9992,-31207,-10003,-31204,-10013,-31200,-10024,-31197,-10035,-31193,-10045,-31190,-10056,-31186,-10067,-31183,-10077,-31180,-10088,-31176,-10098,-31173,-10109,-31169,-10120,-31166,-10130,-31162,-10141,-31159,-10152,-31155,-10162,-31152,-10173,-31149,-10183,-31145,-10194,-31142,-10205,-31138,-10215,-31135,-10226,-31131,-10236,-31128,-10247,-31124,-10258,-31121,-10268,-31117,-10279,-31114,-10290,-31110,-10300,-31107,-10311,-31103,-10321,-31100,-10332,-31096,-10343,-31093,-10353,-31089,-10364,-31086,-10374,-31082,-10385,-31078,-10396,-31075,-10406,-31071,-10417,-31068,-10427,-31064,-10438,-31061,-10448,-31057,-10459,-31054,-10470,-31050,-10480,-31046,-10491,-31043,-10501,-31039,-10512,-31036,-10523,-31032,-10533,-31029,-10544,-31025,-10554,-31021,-10565,-31018,-10575,-31014,-10586,-31011,-10597,-31007,-10607,-31003,-10618,-31000,-10628,-30996,-10639,-30992,-10649,-30989,-10660,-30985,-10671,-30982,-10681,-30978,-10692,-30974,-10702,-30971,-10713,-30967,-10723,-30963,-10734,-30960,-10744,-30956,-10755,-30952,-10766,-30949,-10776,-30945,-10787,-30941,-10797,-30938,-10808,-30934,-10818,-30930,-10829,-30927,-10839,-30923,-10850,-30919,-10860,-30916,-10871,-30912,-10881,-30908,-10892,-30904,-10903,-30901,-10913,-30897,-10924,-30893,-10934,-30890,-10945,-30886,-10955,-30882,-10966,-30878,-10976,-30875,-10987,-30871,-10997,-30867,-11008,-30863,-11018,-30860,-11029,-30856,-11039,-30852,-11050,-30848,-11060,-30845,-11071,-30841,-11081,-30837,-11092,-30833,-11102,-30829,-11113,-30826,-11123,-30822,-11134,-30818,-11144,-30814,-11155,-30810,-11165,-30807,-11176,-30803,-11186,-30799,-11197,-30795,-11207,-30791,-11218,-30788,-11228,-30784,-11239,-30780,-11249,-30776,-11260,-30772,-11270,-30768,-11281,-30765,-11291,-30761,-11302,-30757,-11312,-30753,-11323,-30749,-11333,-30745,-11344,-30741,-11354,-30738,-11365,-30734,-11375,-30730,-11386,-30726,-11396,-30722,-11407,-30718,-11417,-30714,-11428,-30710,-11438,-30706,-11449,-30703,-11459,-30699,-11469,-30695,-11480,-30691,-11490,-30687,-11501,-30683,-11511,-30679,-11522,-30675,-11532,-30671,-11543,-30667,-11553,-30663,-11564,-30659,-11574,-30656,-11584,-30652,-11595,-30648,-11605,-30644,-11616,-30640,-11626,-30636,-11637,-30632,-11647,-30628,-11658,-30624,-11668,-30620,-11678,-30616,-11689,-30612,-11699,-30608,-11710,-30604,-11720,-30600,-11731,-30596,-11741,-30592,-11751,-30588,-11762,-30584,-11772,-30580,-11783,-30576,-11793,-30572,-11804,-30568,-11814,-30564,-11824,-30560,-11835,-30556,-11845,-30552,-11856,-30548,-11866,-30544,-11877,-30540,-11887,-30536,-11897,-30531,-11908,-30527,-11918,-30523,-11929,-30519,-11939,-30515,-11949,-30511,-11960,-30507,-11970,-30503,-11981,-30499,-11991,-30495,-12001,-30491,-12012,-30487,-12022,-30483,-12033,-30478,-12043,-30474,-12053,-30470,-12064,-30466,-12074,-30462,-12084,-30458,-12095,-30454,-12105,-30450,-12116,-30446,-12126,-30441,-12136,-30437,-12147,-30433,-12157,-30429,-12167,-30425,-12178,-30421,-12188,-30417,-12199,-30412,-12209,-30408,-12219,-30404,-12230,-30400,-12240,-30396,-12250,-30392,-12261,-30387,-12271,-30383,-12281,-30379,-12292,-30375,-12302,-30371,-12313,-30366,-12323,-30362,-12333,-30358,-12344,-30354,-12354,-30350,-12364,-30345,-12375,-30341,-12385,-30337,-12395,-30333,-12406,-30329,-12416,-30324,-12426,-30320,-12437,-30316,-12447,-30312,-12457,-30307,-12468,-30303,-12478,-30299,-12488,-30295,-12499,-30290,-12509,-30286,-12519,-30282,-12530,-30278,-12540,-30273,-12550,-30269,-12561,-30265,-12571,-30260,-12581,-30256,-12591,-30252,-12602,-30248,-12612,-30243,-12622,-30239,-12633,-30235,-12643,-30230,-12653,-30226,-12664,-30222,-12674,-30217,-12684,-30213,-12695,-30209,-12705,-30204,-12715,-30200,-12725,-30196,-12736,-30191,-12746,-30187,-12756,-30183,-12767,-30178,-12777,-30174,-12787,-30170,-12797,-30165,-12808,-30161,-12818,-30157,-12828,-30152,-12839,-30148,-12849,-30143,-12859,-30139,-12869,-30135,-12880,-30130,-12890,-30126,-12900,-30122,-12910,-30117,-12921,-30113,-12931,-30108,-12941,-30104,-12951,-30099,-12962,-30095,-12972,-30091,-12982,-30086,-12993,-30082,-13003,-30077,-13013,-30073,-13023,-30068,-13034,-30064,-13044,-30060,-13054,-30055,-13064,-30051,-13075,-30046,-13085,-30042,-13095,-30037,-13105,-30033,-13115,-30028,-13126,-30024,-13136,-30019,-13146,-30015,-13156,-30010,-13167,-30006,-13177,-30002,-13187,-29997,-13197,-29993,-13208,-29988,-13218,-29984,-13228,-29979,-13238,-29974,-13248,-29970,-13259,-29965,-13269,-29961,-13279,-29956,-13289,-29952,-13299,-29947,-13310,-29943,-13320,-29938,-13330,-29934,-13340,-29929,-13350,-29925,-13361,-29920,-13371,-29916,-13381,-29911,-13391,-29906,-13401,-29902,-13412,-29897,-13422,-29893,-13432,-29888,-13442,-29884,-13452,-29879,-13463,-29874,-13473,-29870,-13483,-29865,-13493,-29861,-13503,-29856,-13513,-29851,-13524,-29847,-13534,-29842,-13544,-29838,-13554,-29833,-13564,-29828,-13575,-29824,-13585,-29819,-13595,-29814,-13605,-29810,-13615,-29805,-13625,-29801,-13635,-29796,-13646,-29791,-13656,-29787,-13666,-29782,-13676,-29777,-13686,-29773,-13696,-29768,-13707,-29763,-13717,-29759,-13727,-29754,-13737,-29749,-13747,-29745,-13757,-29740,-13767,-29735,-13778,-29730,-13788,-29726,-13798,-29721,-13808,-29716,-13818,-29712,-13828,-29707,-13838,-29702,-13848,-29697,-13859,-29693,-13869,-29688,-13879,-29683,-13889,-29679,-13899,-29674,-13909,-29669,-13919,-29664,-13929,-29660,-13939,-29655,-13950,-29650,-13960,-29645,-13970,-29641,-13980,-29636,-13990,-29631,-14000,-29626,-14010,-29622,-14020,-29617,-14030,-29612,-14040,-29607,-14051,-29602,-14061,-29598,-14071,-29593,-14081,-29588,-14091,-29583,-14101,-29578,-14111,-29574,-14121,-29569,-14131,-29564,-14141,-29559,-14151,-29554,-14161,-29549,-14172,-29545,-14182,-29540,-14192,-29535,-14202,-29530,-14212,-29525,-14222,-29520,-14232,-29516,-14242,-29511,-14252,-29506,-14262,-29501,-14272,-29496,-14282,-29491,-14292,-29486,-14302,-29482,-14312,-29477,-14322,-29472,-14332,-29467,-14343,-29462,-14353,-29457,-14363,-29452,-14373,-29447,-14383,-29442,-14393,-29438,-14403,-29433,-14413,-29428,-14423,-29423,-14433,-29418,-14443,-29413,-14453,-29408,-14463,-29403,-14473,-29398,-14483,-29393,-14493,-29388,-14503,-29383,-14513,-29378,-14523,-29373,-14533,-29369,-14543,-29364,-14553,-29359,-14563,-29354,-14573,-29349,-14583,-29344,-14593,-29339,-14603,-29334,-14613,-29329,-14623,-29324,-14633,-29319,-14643,-29314,-14653,-29309,-14663,-29304,-14673,-29299,-14683,-29294,-14693,-29289,-14703,-29284,-14713,-29279,-14723,-29274,-14733,-29269,-14743,-29264,-14753,-29259,-14763,-29254,-14773,-29249,-14783,-29244,-14793,-29239,-14803,-29234,-14813,-29228,-14823,-29223,-14833,-29218,-14843,-29213,-14853,-29208,-14862,-29203,-14872,-29198,-14882,-29193,-14892,-29188,-14902,-29183,-14912,-29178,-14922,-29173,-14932,-29168,-14942,-29163,-14952,-29157,-14962,-29152,-14972,-29147,-14982,-29142,-14992,-29137,-15002,-29132,-15012,-29127,-15022,-29122,-15031,-29117,-15041,-29111,-15051,-29106,-15061,-29101,-15071,-29096,-15081,-29091,-15091,-29086,-15101,-29081,-15111,-29075,-15121,-29070,-15131,-29065,-15141,-29060,-15150,-29055,-15160,-29050,-15170,-29045,-15180,-29039,-15190,-29034,-15200,-29029,-15210,-29024,-15220,-29019,-15230,-29013,-15239,-29008,-15249,-29003,-15259,-28998,-15269,-28993,-15279,-28987,-15289,-28982,-15299,-28977,-15309,-28972,-15319,-28967,-15328,-28961,-15338,-28956,-15348,-28951,-15358,-28946,-15368,-28940,-15378,-28935,-15388,-28930,-15397,-28925,-15407,-28919,-15417,-28914,-15427,-28909,-15437,-28904,-15447,-28898,-15457,-28893,-15466,-28888,-15476,-28883,-15486,-28877,-15496,-28872,-15506,-28867,-15516,-28861,-15526,-28856,-15535,-28851,-15545,-28846,-15555,-28840,-15565,-28835,-15575,-28830,-15584,-28824,-15594,-28819,-15604,-28814,-15614,-28808,-15624,-28803,-15634,-28798,-15643,-28792,-15653,-28787,-15663,-28782,-15673,-28776,-15683,-28771,-15692,-28766,-15702,-28760,-15712,-28755,-15722,-28750,-15732,-28744,-15741,-28739,-15751,-28734,-15761,-28728,-15771,-28723,-15781,-28717,-15790,-28712,-15800,-28707,-15810,-28701,-15820,-28696,-15830,-28691,-15839,-28685,-15849,-28680,-15859,-28674,-15869,-28669,-15878,-28663,-15888,-28658,-15898,-28653,-15908,-28647,-15918,-28642,-15927,-28636,-15937,-28631,-15947,-28626,-15957,-28620,-15966,-28615,-15976,-28609,-15986,-28604,-15996,-28598,-16005,-28593,-16015,-28587,-16025,-28582,-16035,-28576,-16044,-28571,-16054,-28566,-16064,-28560,-16073,-28555,-16083,-28549,-16093,-28544,-16103,-28538,-16112,-28533,-16122,-28527,-16132,-28522,-16142,-28516,-16151,-28511,-16161,-28505,-16171,-28500,-16180,-28494,-16190,-28489,-16200,-28483,-16210,-28478,-16219,-28472,-16229,-28466,-16239,-28461,-16248,-28455,-16258,-28450,-16268,-28444,-16277,-28439,-16287,-28433,-16297,-28428,-16307,-28422,-16316,-28417,-16326,-28411,-16336,-28405,-16345,-28400,-16355,-28394,-16365,-28389,-16374,-28383}; - -int16_t twb18432[12288] = { 32767,0,32766,-23,32766,-45,32766,-68,32766,-90,32766,-112,32766,-135,32766,-157,32766,-179,32766,-202,32766,-224,32766,-246,32765,-269,32765,-291,32765,-313,32765,-336,32765,-358,32764,-380,32764,-403,32764,-425,32763,-447,32763,-470,32763,-492,32762,-514,32762,-537,32762,-559,32761,-581,32761,-604,32761,-626,32760,-648,32760,-671,32759,-693,32759,-715,32758,-738,32758,-760,32757,-782,32757,-805,32756,-827,32756,-849,32755,-872,32754,-894,32754,-916,32753,-939,32752,-961,32752,-983,32751,-1006,32750,-1028,32750,-1050,32749,-1073,32748,-1095,32747,-1117,32747,-1140,32746,-1162,32745,-1184,32744,-1207,32743,-1229,32743,-1251,32742,-1274,32741,-1296,32740,-1318,32739,-1340,32738,-1363,32737,-1385,32736,-1407,32735,-1430,32734,-1452,32733,-1474,32732,-1497,32731,-1519,32730,-1541,32729,-1564,32728,-1586,32727,-1608,32726,-1631,32725,-1653,32724,-1675,32723,-1698,32721,-1720,32720,-1742,32719,-1764,32718,-1787,32717,-1809,32715,-1831,32714,-1854,32713,-1876,32711,-1898,32710,-1921,32709,-1943,32708,-1965,32706,-1987,32705,-2010,32703,-2032,32702,-2054,32701,-2077,32699,-2099,32698,-2121,32696,-2144,32695,-2166,32693,-2188,32692,-2210,32690,-2233,32689,-2255,32687,-2277,32686,-2300,32684,-2322,32683,-2344,32681,-2366,32679,-2389,32678,-2411,32676,-2433,32674,-2456,32673,-2478,32671,-2500,32669,-2522,32668,-2545,32666,-2567,32664,-2589,32662,-2611,32661,-2634,32659,-2656,32657,-2678,32655,-2701,32653,-2723,32651,-2745,32649,-2767,32648,-2790,32646,-2812,32644,-2834,32642,-2856,32640,-2879,32638,-2901,32636,-2923,32634,-2945,32632,-2968,32630,-2990,32628,-3012,32626,-3034,32624,-3057,32622,-3079,32619,-3101,32617,-3123,32615,-3146,32613,-3168,32611,-3190,32609,-3212,32607,-3234,32604,-3257,32602,-3279,32600,-3301,32598,-3323,32595,-3346,32593,-3368,32591,-3390,32588,-3412,32586,-3434,32584,-3457,32581,-3479,32579,-3501,32577,-3523,32574,-3546,32572,-3568,32569,-3590,32567,-3612,32564,-3634,32562,-3657,32559,-3679,32557,-3701,32554,-3723,32552,-3745,32549,-3768,32547,-3790,32544,-3812,32541,-3834,32539,-3856,32536,-3878,32534,-3901,32531,-3923,32528,-3945,32526,-3967,32523,-3989,32520,-4012,32517,-4034,32515,-4056,32512,-4078,32509,-4100,32506,-4122,32503,-4145,32501,-4167,32498,-4189,32495,-4211,32492,-4233,32489,-4255,32486,-4277,32483,-4300,32480,-4322,32477,-4344,32474,-4366,32471,-4388,32468,-4410,32465,-4432,32462,-4455,32459,-4477,32456,-4499,32453,-4521,32450,-4543,32447,-4565,32444,-4587,32441,-4609,32438,-4632,32434,-4654,32431,-4676,32428,-4698,32425,-4720,32422,-4742,32418,-4764,32415,-4786,32412,-4808,32409,-4831,32405,-4853,32402,-4875,32399,-4897,32395,-4919,32392,-4941,32389,-4963,32385,-4985,32382,-5007,32378,-5029,32375,-5051,32371,-5073,32368,-5095,32364,-5118,32361,-5140,32357,-5162,32354,-5184,32350,-5206,32347,-5228,32343,-5250,32340,-5272,32336,-5294,32332,-5316,32329,-5338,32325,-5360,32322,-5382,32318,-5404,32314,-5426,32310,-5448,32307,-5470,32303,-5492,32299,-5514,32295,-5536,32292,-5558,32288,-5580,32284,-5602,32280,-5624,32276,-5646,32273,-5668,32269,-5690,32265,-5712,32261,-5734,32257,-5756,32253,-5778,32249,-5800,32245,-5822,32241,-5844,32237,-5866,32233,-5888,32229,-5910,32225,-5932,32221,-5954,32217,-5976,32213,-5998,32209,-6020,32205,-6042,32201,-6064,32196,-6086,32192,-6108,32188,-6130,32184,-6152,32180,-6174,32176,-6196,32171,-6218,32167,-6240,32163,-6262,32158,-6283,32154,-6305,32150,-6327,32146,-6349,32141,-6371,32137,-6393,32133,-6415,32128,-6437,32124,-6459,32119,-6481,32115,-6503,32110,-6524,32106,-6546,32102,-6568,32097,-6590,32093,-6612,32088,-6634,32084,-6656,32079,-6678,32074,-6699,32070,-6721,32065,-6743,32061,-6765,32056,-6787,32051,-6809,32047,-6831,32042,-6852,32037,-6874,32033,-6896,32028,-6918,32023,-6940,32019,-6962,32014,-6983,32009,-7005,32004,-7027,31999,-7049,31995,-7071,31990,-7093,31985,-7114,31980,-7136,31975,-7158,31970,-7180,31965,-7202,31961,-7223,31956,-7245,31951,-7267,31946,-7289,31941,-7311,31936,-7332,31931,-7354,31926,-7376,31921,-7398,31916,-7419,31911,-7441,31905,-7463,31900,-7485,31895,-7506,31890,-7528,31885,-7550,31880,-7572,31875,-7593,31869,-7615,31864,-7637,31859,-7658,31854,-7680,31849,-7702,31843,-7724,31838,-7745,31833,-7767,31827,-7789,31822,-7810,31817,-7832,31811,-7854,31806,-7876,31801,-7897,31795,-7919,31790,-7941,31785,-7962,31779,-7984,31774,-8006,31768,-8027,31763,-8049,31757,-8071,31752,-8092,31746,-8114,31741,-8135,31735,-8157,31729,-8179,31724,-8200,31718,-8222,31713,-8244,31707,-8265,31701,-8287,31696,-8308,31690,-8330,31684,-8352,31679,-8373,31673,-8395,31667,-8416,31662,-8438,31656,-8460,31650,-8481,31644,-8503,31638,-8524,31633,-8546,31627,-8568,31621,-8589,31615,-8611,31609,-8632,31603,-8654,31597,-8675,31591,-8697,31586,-8718,31580,-8740,31574,-8761,31568,-8783,31562,-8804,31556,-8826,31550,-8847,31544,-8869,31537,-8890,31531,-8912,31525,-8933,31519,-8955,31513,-8976,31507,-8998,31501,-9019,31495,-9041,31489,-9062,31482,-9084,31476,-9105,31470,-9127,31464,-9148,31457,-9170,31451,-9191,31445,-9213,31439,-9234,31432,-9255,31426,-9277,31420,-9298,31413,-9320,31407,-9341,31401,-9363,31394,-9384,31388,-9405,31381,-9427,31375,-9448,31369,-9469,31362,-9491,31356,-9512,31349,-9534,31343,-9555,31336,-9576,31330,-9598,31323,-9619,31316,-9640,31310,-9662,31303,-9683,31297,-9704,31290,-9726,31283,-9747,31277,-9768,31270,-9790,31263,-9811,31257,-9832,31250,-9854,31243,-9875,31236,-9896,31230,-9918,31223,-9939,31216,-9960,31209,-9981,31203,-10003,31196,-10024,31189,-10045,31182,-10067,31175,-10088,31168,-10109,31161,-10130,31154,-10152,31148,-10173,31141,-10194,31134,-10215,31127,-10236,31120,-10258,31113,-10279,31106,-10300,31099,-10321,31092,-10343,31085,-10364,31077,-10385,31070,-10406,31063,-10427,31056,-10448,31049,-10470,31042,-10491,31035,-10512,31028,-10533,31020,-10554,31013,-10575,31006,-10597,30999,-10618,30991,-10639,30984,-10660,30977,-10681,30970,-10702,30962,-10723,30955,-10744,30948,-10766,30940,-10787,30933,-10808,30926,-10829,30918,-10850,30911,-10871,30903,-10892,30896,-10913,30889,-10934,30881,-10955,30874,-10976,30866,-10997,30859,-11018,30851,-11039,30844,-11060,30836,-11081,30828,-11102,30821,-11123,30813,-11144,30806,-11165,30798,-11186,30790,-11207,30783,-11228,30775,-11249,30767,-11270,30760,-11291,30752,-11312,30744,-11333,30737,-11354,30729,-11375,30721,-11396,30713,-11417,30705,-11438,30698,-11459,30690,-11480,30682,-11501,30674,-11522,30666,-11543,30658,-11564,30651,-11584,30643,-11605,30635,-11626,30627,-11647,30619,-11668,30611,-11689,30603,-11710,30595,-11731,30587,-11751,30579,-11772,30571,-11793,30563,-11814,30555,-11835,30547,-11856,30539,-11877,30530,-11897,30522,-11918,30514,-11939,30506,-11960,30498,-11981,30490,-12001,30482,-12022,30473,-12043,30465,-12064,30457,-12084,30449,-12105,30440,-12126,30432,-12147,30424,-12167,30416,-12188,30407,-12209,30399,-12230,30391,-12250,30382,-12271,30374,-12292,30365,-12313,30357,-12333,30349,-12354,30340,-12375,30332,-12395,30323,-12416,30315,-12437,30306,-12457,30298,-12478,30289,-12499,30281,-12519,30272,-12540,30264,-12561,30255,-12581,30247,-12602,30238,-12622,30229,-12643,30221,-12664,30212,-12684,30203,-12705,30195,-12725,30186,-12746,30177,-12767,30169,-12787,30160,-12808,30151,-12828,30142,-12849,30134,-12869,30125,-12890,30116,-12910,30107,-12931,30098,-12951,30090,-12972,30081,-12993,30072,-13013,30063,-13034,30054,-13054,30045,-13075,30036,-13095,30027,-13115,30018,-13136,30009,-13156,30001,-13177,29992,-13197,29983,-13218,29973,-13238,29964,-13259,29955,-13279,29946,-13299,29937,-13320,29928,-13340,29919,-13361,29910,-13381,29901,-13401,29892,-13422,29883,-13442,29873,-13463,29864,-13483,29855,-13503,29846,-13524,29837,-13544,29827,-13564,29818,-13585,29809,-13605,29800,-13625,29790,-13646,29781,-13666,29772,-13686,29762,-13707,29753,-13727,29744,-13747,29734,-13767,29725,-13788,29715,-13808,29706,-13828,29696,-13848,29687,-13869,29678,-13889,29668,-13909,29659,-13929,29649,-13950,29640,-13970,29630,-13990,29621,-14010,29611,-14030,29601,-14051,29592,-14071,29582,-14091,29573,-14111,29563,-14131,29553,-14151,29544,-14172,29534,-14192,29524,-14212,29515,-14232,29505,-14252,29495,-14272,29485,-14292,29476,-14312,29466,-14332,29456,-14353,29446,-14373,29437,-14393,29427,-14413,29417,-14433,29407,-14453,29397,-14473,29387,-14493,29377,-14513,29368,-14533,29358,-14553,29348,-14573,29338,-14593,29328,-14613,29318,-14633,29308,-14653,29298,-14673,29288,-14693,29278,-14713,29268,-14733,29258,-14753,29248,-14773,29238,-14793,29227,-14813,29217,-14833,29207,-14853,29197,-14872,29187,-14892,29177,-14912,29167,-14932,29156,-14952,29146,-14972,29136,-14992,29126,-15012,29116,-15031,29105,-15051,29095,-15071,29085,-15091,29074,-15111,29064,-15131,29054,-15150,29044,-15170,29033,-15190,29023,-15210,29012,-15230,29002,-15249,28992,-15269,28981,-15289,28971,-15309,28960,-15328,28950,-15348,28939,-15368,28929,-15388,28918,-15407,28908,-15427,28897,-15447,28887,-15466,28876,-15486,28866,-15506,28855,-15526,28845,-15545,28834,-15565,28823,-15584,28813,-15604,28802,-15624,28791,-15643,28781,-15663,28770,-15683,28759,-15702,28749,-15722,28738,-15741,28727,-15761,28716,-15781,28706,-15800,28695,-15820,28684,-15839,28673,-15859,28662,-15878,28652,-15898,28641,-15918,28630,-15937,28619,-15957,28608,-15976,28597,-15996,28586,-16015,28575,-16035,28565,-16054,28554,-16073,28543,-16093,28532,-16112,28521,-16132,28510,-16151,28499,-16171,28488,-16190,28477,-16210,28465,-16229,28454,-16248,28443,-16268,28432,-16287,28421,-16307,28410,-16326,28399,-16345,28388,-16365,28377,-16384,28365,-16403,28354,-16423,28343,-16442,28332,-16461,28321,-16481,28309,-16500,28298,-16519,28287,-16539,28275,-16558,28264,-16577,28253,-16596,28242,-16616,28230,-16635,28219,-16654,28208,-16673,28196,-16693,28185,-16712,28173,-16731,28162,-16750,28151,-16769,28139,-16789,28128,-16808,28116,-16827,28105,-16846,28093,-16865,28082,-16884,28070,-16904,28059,-16923,28047,-16942,28036,-16961,28024,-16980,28012,-16999,28001,-17018,27989,-17037,27978,-17056,27966,-17075,27954,-17095,27943,-17114,27931,-17133,27919,-17152,27908,-17171,27896,-17190,27884,-17209,27872,-17228,27861,-17247,27849,-17266,27837,-17285,27825,-17304,27814,-17323,27802,-17342,27790,-17361,27778,-17380,27766,-17398,27754,-17417,27742,-17436,27731,-17455,27719,-17474,27707,-17493,27695,-17512,27683,-17531,27671,-17550,27659,-17568,27647,-17587,27635,-17606,27623,-17625,27611,-17644,27599,-17663,27587,-17681,27575,-17700,27563,-17719,27551,-17738,27538,-17757,27526,-17775,27514,-17794,27502,-17813,27490,-17832,27478,-17850,27466,-17869,27453,-17888,27441,-17907,27429,-17925,27417,-17944,27405,-17963,27392,-17981,27380,-18000,27368,-18019,27355,-18037,27343,-18056,27331,-18075,27319,-18093,27306,-18112,27294,-18131,27281,-18149,27269,-18168,27257,-18186,27244,-18205,27232,-18223,27219,-18242,27207,-18261,27195,-18279,27182,-18298,27170,-18316,27157,-18335,27145,-18353,27132,-18372,27120,-18390,27107,-18409,27094,-18427,27082,-18446,27069,-18464,27057,-18483,27044,-18501,27031,-18519,27019,-18538,27006,-18556,26994,-18575,26981,-18593,26968,-18611,26955,-18630,26943,-18648,26930,-18667,26917,-18685,26905,-18703,26892,-18722,26879,-18740,26866,-18758,26853,-18777,26841,-18795,26828,-18813,26815,-18831,26802,-18850,26789,-18868,26776,-18886,26764,-18905,26751,-18923,26738,-18941,26725,-18959,26712,-18977,26699,-18996,26686,-19014,26673,-19032,26660,-19050,26647,-19068,26634,-19087,26621,-19105,26608,-19123,26595,-19141,26582,-19159,26569,-19177,26556,-19195,26543,-19213,26530,-19232,26516,-19250,26503,-19268,26490,-19286,26477,-19304,26464,-19322,26451,-19340,26437,-19358,26424,-19376,26411,-19394,26398,-19412,26385,-19430,26371,-19448,26358,-19466,26345,-19484,26332,-19502,26318,-19520,26305,-19538,26292,-19556,26278,-19574,26265,-19591,26252,-19609,26238,-19627,26225,-19645,26211,-19663,26198,-19681,26185,-19699,26171,-19717,26158,-19734,26144,-19752,26131,-19770,26117,-19788,26104,-19806,26090,-19823,26077,-19841,26063,-19859,26050,-19877,26036,-19895,26022,-19912,26009,-19930,25995,-19948,25982,-19966,25968,-19983,25954,-20001,25941,-20019,25927,-20036,25913,-20054,25900,-20072,25886,-20089,25872,-20107,25859,-20125,25845,-20142,25831,-20160,25817,-20177,25804,-20195,25790,-20213,25776,-20230,25762,-20248,25749,-20265,25735,-20283,25721,-20300,25707,-20318,25693,-20335,25679,-20353,25665,-20370,25652,-20388,25638,-20405,25624,-20423,25610,-20440,25596,-20458,25582,-20475,25568,-20493,25554,-20510,25540,-20528,25526,-20545,25512,-20562,25498,-20580,25484,-20597,25470,-20614,25456,-20632,25442,-20649,25428,-20667,25414,-20684,25399,-20701,25385,-20719,25371,-20736,25357,-20753,25343,-20770,25329,-20788,25315,-20805,25300,-20822,25286,-20839,25272,-20857,25258,-20874,25243,-20891,25229,-20908,25215,-20926,25201,-20943,25186,-20960,25172,-20977,25158,-20994,25144,-21011,25129,-21028,25115,-21046,25100,-21063,25086,-21080,25072,-21097,25057,-21114,25043,-21131,25029,-21148,25014,-21165,25000,-21182,24985,-21199,24971,-21216,24956,-21233,24942,-21250,24927,-21267,24913,-21284,24898,-21301,24884,-21318,24869,-21335,24855,-21352,24840,-21369,24826,-21386,24811,-21403,24796,-21420,24782,-21437,24767,-21454,24753,-21471,24738,-21487,24723,-21504,24709,-21521,24694,-21538,24679,-21555,24664,-21572,24650,-21588,24635,-21605,24620,-21622,24606,-21639,24591,-21656,24576,-21672,24561,-21689,24546,-21706,24532,-21723,24517,-21739,24502,-21756,24487,-21773,24472,-21789,24457,-21806,24443,-21823,24428,-21839,24413,-21856,24398,-21873,24383,-21889,24368,-21906,24353,-21923,24338,-21939,24323,-21956,24308,-21972,24293,-21989,24278,-22005,24263,-22022,24248,-22039,24233,-22055,24218,-22072,24203,-22088,24188,-22105,24173,-22121,24158,-22138,24143,-22154,24128,-22170,24113,-22187,24097,-22203,24082,-22220,24067,-22236,24052,-22253,24037,-22269,24022,-22285,24006,-22302,23991,-22318,23976,-22334,23961,-22351,23945,-22367,23930,-22383,23915,-22400,23900,-22416,23884,-22432,23869,-22449,23854,-22465,23838,-22481,23823,-22497,23808,-22514,23792,-22530,23777,-22546,23762,-22562,23746,-22578,23731,-22595,23715,-22611,23700,-22627,23685,-22643,23669,-22659,23654,-22675,23638,-22692,23623,-22708,23607,-22724,23592,-22740,23576,-22756,23561,-22772,23545,-22788,23530,-22804,23514,-22820,23499,-22836,23483,-22852,23467,-22868,23452,-22884,23436,-22900,23421,-22916,23405,-22932,23389,-22948,23374,-22964,23358,-22980,23342,-22996,23327,-23012,23311,-23028,23295,-23044,23280,-23059,23264,-23075,23248,-23091,23232,-23107,23217,-23123,23201,-23139,23185,-23154,23169,-23170,23153,-23186,23138,-23202,23122,-23218,23106,-23233,23090,-23249,23074,-23265,23058,-23281,23043,-23296,23027,-23312,23011,-23328,22995,-23343,22979,-23359,22963,-23375,22947,-23390,22931,-23406,22915,-23422,22899,-23437,22883,-23453,22867,-23468,22851,-23484,22835,-23500,22819,-23515,22803,-23531,22787,-23546,22771,-23562,22755,-23577,22739,-23593,22723,-23608,22707,-23624,22691,-23639,22674,-23655,22658,-23670,22642,-23686,22626,-23701,22610,-23716,22594,-23732,22577,-23747,22561,-23763,22545,-23778,22529,-23793,22513,-23809,22496,-23824,22480,-23839,22464,-23855,22448,-23870,22431,-23885,22415,-23901,22399,-23916,22382,-23931,22366,-23946,22350,-23962,22333,-23977,22317,-23992,22301,-24007,22284,-24023,22268,-24038,22252,-24053,22235,-24068,22219,-24083,22202,-24098,22186,-24114,22169,-24129,22153,-24144,22137,-24159,22120,-24174,22104,-24189,22087,-24204,22071,-24219,22054,-24234,22038,-24249,22021,-24264,22004,-24279,21988,-24294,21971,-24309,21955,-24324,21938,-24339,21922,-24354,21905,-24369,21888,-24384,21872,-24399,21855,-24414,21838,-24429,21822,-24444,21805,-24458,21788,-24473,21772,-24488,21755,-24503,21738,-24518,21722,-24533,21705,-24547,21688,-24562,21671,-24577,21655,-24592,21638,-24607,21621,-24621,21604,-24636,21587,-24651,21571,-24665,21554,-24680,21537,-24695,21520,-24710,21503,-24724,21486,-24739,21470,-24754,21453,-24768,21436,-24783,21419,-24797,21402,-24812,21385,-24827,21368,-24841,21351,-24856,21334,-24870,21317,-24885,21300,-24899,21283,-24914,21266,-24928,21249,-24943,21232,-24957,21215,-24972,21198,-24986,21181,-25001,21164,-25015,21147,-25030,21130,-25044,21113,-25058,21096,-25073,21079,-25087,21062,-25101,21045,-25116,21027,-25130,21010,-25145,20993,-25159,20976,-25173,20959,-25187,20942,-25202,20925,-25216,20907,-25230,20890,-25244,20873,-25259,20856,-25273,20838,-25287,20821,-25301,20804,-25316,20787,-25330,20769,-25344,20752,-25358,20735,-25372,20718,-25386,20700,-25400,20683,-25415,20666,-25429,20648,-25443,20631,-25457,20613,-25471,20596,-25485,20579,-25499,20561,-25513,20544,-25527,20527,-25541,20509,-25555,20492,-25569,20474,-25583,20457,-25597,20439,-25611,20422,-25625,20404,-25639,20387,-25653,20369,-25666,20352,-25680,20334,-25694,20317,-25708,20299,-25722,20282,-25736,20264,-25750,20247,-25763,20229,-25777,20212,-25791,20194,-25805,20176,-25818,20159,-25832,20141,-25846,20124,-25860,20106,-25873,20088,-25887,20071,-25901,20053,-25914,20035,-25928,20018,-25942,20000,-25955,19982,-25969,19965,-25983,19947,-25996,19929,-26010,19911,-26023,19894,-26037,19876,-26051,19858,-26064,19840,-26078,19822,-26091,19805,-26105,19787,-26118,19769,-26132,19751,-26145,19733,-26159,19716,-26172,19698,-26186,19680,-26199,19662,-26212,19644,-26226,19626,-26239,19608,-26253,19590,-26266,19573,-26279,19555,-26293,19537,-26306,19519,-26319,19501,-26333,19483,-26346,19465,-26359,19447,-26372,19429,-26386,19411,-26399,19393,-26412,19375,-26425,19357,-26438,19339,-26452,19321,-26465,19303,-26478,19285,-26491,19267,-26504,19249,-26517,19231,-26531,19212,-26544,19194,-26557,19176,-26570,19158,-26583,19140,-26596,19122,-26609,19104,-26622,19086,-26635,19067,-26648,19049,-26661,19031,-26674,19013,-26687,18995,-26700,18976,-26713,18958,-26726,18940,-26739,18922,-26752,18904,-26765,18885,-26777,18867,-26790,18849,-26803,18830,-26816,18812,-26829,18794,-26842,18776,-26854,18757,-26867,18739,-26880,18721,-26893,18702,-26906,18684,-26918,18666,-26931,18647,-26944,18629,-26956,18610,-26969,18592,-26982,18574,-26995,18555,-27007,18537,-27020,18518,-27032,18500,-27045,18482,-27058,18463,-27070,18445,-27083,18426,-27095,18408,-27108,18389,-27121,18371,-27133,18352,-27146,18334,-27158,18315,-27171,18297,-27183,18278,-27196,18260,-27208,18241,-27220,18222,-27233,18204,-27245,18185,-27258,18167,-27270,18148,-27282,18130,-27295,18111,-27307,18092,-27320,18074,-27332,18055,-27344,18036,-27356,18018,-27369,17999,-27381,17980,-27393,17962,-27406,17943,-27418,17924,-27430,17906,-27442,17887,-27454,17868,-27467,17849,-27479,17831,-27491,17812,-27503,17793,-27515,17774,-27527,17756,-27539,17737,-27552,17718,-27564,17699,-27576,17680,-27588,17662,-27600,17643,-27612,17624,-27624,17605,-27636,17586,-27648,17567,-27660,17549,-27672,17530,-27684,17511,-27696,17492,-27708,17473,-27720,17454,-27732,17435,-27743,17416,-27755,17397,-27767,17379,-27779,17360,-27791,17341,-27803,17322,-27815,17303,-27826,17284,-27838,17265,-27850,17246,-27862,17227,-27873,17208,-27885,17189,-27897,17170,-27909,17151,-27920,17132,-27932,17113,-27944,17094,-27955,17074,-27967,17055,-27979,17036,-27990,17017,-28002,16998,-28013,16979,-28025,16960,-28037,16941,-28048,16922,-28060,16903,-28071,16883,-28083,16864,-28094,16845,-28106,16826,-28117,16807,-28129,16788,-28140,16768,-28152,16749,-28163,16730,-28174,16711,-28186,16692,-28197,16672,-28209,16653,-28220,16634,-28231,16615,-28243,16595,-28254,16576,-28265,16557,-28276,16538,-28288,16518,-28299,16499,-28310,16480,-28322,16460,-28333,16441,-28344,16422,-28355,16402,-28366,16383,-28378,16364,-28389,16344,-28400,16325,-28411,16306,-28422,16286,-28433,16267,-28444,16247,-28455,16228,-28466,16209,-28478,16189,-28489,16170,-28500,16150,-28511,16131,-28522,16111,-28533,16092,-28544,16072,-28555,16053,-28566,16034,-28576,16014,-28587,15995,-28598,15975,-28609,15956,-28620,15936,-28631,15917,-28642,15897,-28653,15877,-28663,15858,-28674,15838,-28685,15819,-28696,15799,-28707,15780,-28717,15760,-28728,15740,-28739,15721,-28750,15701,-28760,15682,-28771,15662,-28782,15642,-28792,15623,-28803,15603,-28814,15583,-28824,15564,-28835,15544,-28846,15525,-28856,15505,-28867,15485,-28877,15465,-28888,15446,-28898,15426,-28909,15406,-28919,15387,-28930,15367,-28940,15347,-28951,15327,-28961,15308,-28972,15288,-28982,15268,-28993,15248,-29003,15229,-29013,15209,-29024,15189,-29034,15169,-29045,15149,-29055,15130,-29065,15110,-29075,15090,-29086,15070,-29096,15050,-29106,15030,-29117,15011,-29127,14991,-29137,14971,-29147,14951,-29157,14931,-29168,14911,-29178,14891,-29188,14871,-29198,14852,-29208,14832,-29218,14812,-29228,14792,-29239,14772,-29249,14752,-29259,14732,-29269,14712,-29279,14692,-29289,14672,-29299,14652,-29309,14632,-29319,14612,-29329,14592,-29339,14572,-29349,14552,-29359,14532,-29369,14512,-29378,14492,-29388,14472,-29398,14452,-29408,14432,-29418,14412,-29428,14392,-29438,14372,-29447,14352,-29457,14331,-29467,14311,-29477,14291,-29486,14271,-29496,14251,-29506,14231,-29516,14211,-29525,14191,-29535,14171,-29545,14150,-29554,14130,-29564,14110,-29574,14090,-29583,14070,-29593,14050,-29602,14029,-29612,14009,-29622,13989,-29631,13969,-29641,13949,-29650,13928,-29660,13908,-29669,13888,-29679,13868,-29688,13847,-29697,13827,-29707,13807,-29716,13787,-29726,13766,-29735,13746,-29745,13726,-29754,13706,-29763,13685,-29773,13665,-29782,13645,-29791,13624,-29801,13604,-29810,13584,-29819,13563,-29828,13543,-29838,13523,-29847,13502,-29856,13482,-29865,13462,-29874,13441,-29884,13421,-29893,13400,-29902,13380,-29911,13360,-29920,13339,-29929,13319,-29938,13298,-29947,13278,-29956,13258,-29965,13237,-29974,13217,-29984,13196,-29993,13176,-30002,13155,-30010,13135,-30019,13114,-30028,13094,-30037,13074,-30046,13053,-30055,13033,-30064,13012,-30073,12992,-30082,12971,-30091,12950,-30099,12930,-30108,12909,-30117,12889,-30126,12868,-30135,12848,-30143,12827,-30152,12807,-30161,12786,-30170,12766,-30178,12745,-30187,12724,-30196,12704,-30204,12683,-30213,12663,-30222,12642,-30230,12621,-30239,12601,-30248,12580,-30256,12560,-30265,12539,-30273,12518,-30282,12498,-30290,12477,-30299,12456,-30307,12436,-30316,12415,-30324,12394,-30333,12374,-30341,12353,-30350,12332,-30358,12312,-30366,12291,-30375,12270,-30383,12249,-30392,12229,-30400,12208,-30408,12187,-30417,12166,-30425,12146,-30433,12125,-30441,12104,-30450,12083,-30458,12063,-30466,12042,-30474,12021,-30483,12000,-30491,11980,-30499,11959,-30507,11938,-30515,11917,-30523,11896,-30531,11876,-30540,11855,-30548,11834,-30556,11813,-30564,11792,-30572,11771,-30580,11750,-30588,11730,-30596,11709,-30604,11688,-30612,11667,-30620,11646,-30628,11625,-30636,11604,-30644,11583,-30652,11563,-30659,11542,-30667,11521,-30675,11500,-30683,11479,-30691,11458,-30699,11437,-30706,11416,-30714,11395,-30722,11374,-30730,11353,-30738,11332,-30745,11311,-30753,11290,-30761,11269,-30768,11248,-30776,11227,-30784,11206,-30791,11185,-30799,11164,-30807,11143,-30814,11122,-30822,11101,-30829,11080,-30837,11059,-30845,11038,-30852,11017,-30860,10996,-30867,10975,-30875,10954,-30882,10933,-30890,10912,-30897,10891,-30904,10870,-30912,10849,-30919,10828,-30927,10807,-30934,10786,-30941,10765,-30949,10743,-30956,10722,-30963,10701,-30971,10680,-30978,10659,-30985,10638,-30992,10617,-31000,10596,-31007,10574,-31014,10553,-31021,10532,-31029,10511,-31036,10490,-31043,10469,-31050,10447,-31057,10426,-31064,10405,-31071,10384,-31078,10363,-31086,10342,-31093,10320,-31100,10299,-31107,10278,-31114,10257,-31121,10235,-31128,10214,-31135,10193,-31142,10172,-31149,10151,-31155,10129,-31162,10108,-31169,10087,-31176,10066,-31183,10044,-31190,10023,-31197,10002,-31204,9980,-31210,9959,-31217,9938,-31224,9917,-31231,9895,-31237,9874,-31244,9853,-31251,9831,-31258,9810,-31264,9789,-31271,9767,-31278,9746,-31284,9725,-31291,9703,-31298,9682,-31304,9661,-31311,9639,-31317,9618,-31324,9597,-31331,9575,-31337,9554,-31344,9533,-31350,9511,-31357,9490,-31363,9468,-31370,9447,-31376,9426,-31382,9404,-31389,9383,-31395,9362,-31402,9340,-31408,9319,-31414,9297,-31421,9276,-31427,9254,-31433,9233,-31440,9212,-31446,9190,-31452,9169,-31458,9147,-31465,9126,-31471,9104,-31477,9083,-31483,9061,-31490,9040,-31496,9018,-31502,8997,-31508,8975,-31514,8954,-31520,8932,-31526,8911,-31532,8889,-31538,8868,-31545,8846,-31551,8825,-31557,8803,-31563,8782,-31569,8760,-31575,8739,-31581,8717,-31587,8696,-31592,8674,-31598,8653,-31604,8631,-31610,8610,-31616,8588,-31622,8567,-31628,8545,-31634,8523,-31639,8502,-31645,8480,-31651,8459,-31657,8437,-31663,8415,-31668,8394,-31674,8372,-31680,8351,-31685,8329,-31691,8307,-31697,8286,-31702,8264,-31708,8243,-31714,8221,-31719,8199,-31725,8178,-31730,8156,-31736,8134,-31742,8113,-31747,8091,-31753,8070,-31758,8048,-31764,8026,-31769,8005,-31775,7983,-31780,7961,-31786,7940,-31791,7918,-31796,7896,-31802,7875,-31807,7853,-31812,7831,-31818,7809,-31823,7788,-31828,7766,-31834,7744,-31839,7723,-31844,7701,-31850,7679,-31855,7657,-31860,7636,-31865,7614,-31870,7592,-31876,7571,-31881,7549,-31886,7527,-31891,7505,-31896,7484,-31901,7462,-31906,7440,-31912,7418,-31917,7397,-31922,7375,-31927,7353,-31932,7331,-31937,7310,-31942,7288,-31947,7266,-31952,7244,-31957,7222,-31962,7201,-31966,7179,-31971,7157,-31976,7135,-31981,7113,-31986,7092,-31991,7070,-31996,7048,-32000,7026,-32005,7004,-32010,6982,-32015,6961,-32020,6939,-32024,6917,-32029,6895,-32034,6873,-32038,6851,-32043,6830,-32048,6808,-32052,6786,-32057,6764,-32062,6742,-32066,6720,-32071,6698,-32075,6677,-32080,6655,-32085,6633,-32089,6611,-32094,6589,-32098,6567,-32103,6545,-32107,6523,-32111,6502,-32116,6480,-32120,6458,-32125,6436,-32129,6414,-32134,6392,-32138,6370,-32142,6348,-32147,6326,-32151,6304,-32155,6282,-32159,6261,-32164,6239,-32168,6217,-32172,6195,-32177,6173,-32181,6151,-32185,6129,-32189,6107,-32193,6085,-32197,6063,-32202,6041,-32206,6019,-32210,5997,-32214,5975,-32218,5953,-32222,5931,-32226,5909,-32230,5887,-32234,5865,-32238,5843,-32242,5821,-32246,5799,-32250,5777,-32254,5755,-32258,5733,-32262,5711,-32266,5689,-32270,5667,-32274,5645,-32277,5623,-32281,5601,-32285,5579,-32289,5557,-32293,5535,-32296,5513,-32300,5491,-32304,5469,-32308,5447,-32311,5425,-32315,5403,-32319,5381,-32323,5359,-32326,5337,-32330,5315,-32333,5293,-32337,5271,-32341,5249,-32344,5227,-32348,5205,-32351,5183,-32355,5161,-32358,5139,-32362,5117,-32365,5094,-32369,5072,-32372,5050,-32376,5028,-32379,5006,-32383,4984,-32386,4962,-32390,4940,-32393,4918,-32396,4896,-32400,4874,-32403,4852,-32406,4830,-32410,4807,-32413,4785,-32416,4763,-32419,4741,-32423,4719,-32426,4697,-32429,4675,-32432,4653,-32435,4631,-32439,4608,-32442,4586,-32445,4564,-32448,4542,-32451,4520,-32454,4498,-32457,4476,-32460,4454,-32463,4431,-32466,4409,-32469,4387,-32472,4365,-32475,4343,-32478,4321,-32481,4299,-32484,4276,-32487,4254,-32490,4232,-32493,4210,-32496,4188,-32499,4166,-32502,4144,-32504,4121,-32507,4099,-32510,4077,-32513,4055,-32516,4033,-32518,4011,-32521,3988,-32524,3966,-32527,3944,-32529,3922,-32532,3900,-32535,3877,-32537,3855,-32540,3833,-32542,3811,-32545,3789,-32548,3767,-32550,3744,-32553,3722,-32555,3700,-32558,3678,-32560,3656,-32563,3633,-32565,3611,-32568,3589,-32570,3567,-32573,3545,-32575,3522,-32578,3500,-32580,3478,-32582,3456,-32585,3433,-32587,3411,-32589,3389,-32592,3367,-32594,3345,-32596,3322,-32599,3300,-32601,3278,-32603,3256,-32605,3233,-32608,3211,-32610,3189,-32612,3167,-32614,3145,-32616,3122,-32618,3100,-32620,3078,-32623,3056,-32625,3033,-32627,3011,-32629,2989,-32631,2967,-32633,2944,-32635,2922,-32637,2900,-32639,2878,-32641,2855,-32643,2833,-32645,2811,-32647,2789,-32649,2766,-32650,2744,-32652,2722,-32654,2700,-32656,2677,-32658,2655,-32660,2633,-32662,2610,-32663,2588,-32665,2566,-32667,2544,-32669,2521,-32670,2499,-32672,2477,-32674,2455,-32675,2432,-32677,2410,-32679,2388,-32680,2365,-32682,2343,-32684,2321,-32685,2299,-32687,2276,-32688,2254,-32690,2232,-32691,2209,-32693,2187,-32694,2165,-32696,2143,-32697,2120,-32699,2098,-32700,2076,-32702,2053,-32703,2031,-32704,2009,-32706,1986,-32707,1964,-32709,1942,-32710,1920,-32711,1897,-32712,1875,-32714,1853,-32715,1830,-32716,1808,-32718,1786,-32719,1763,-32720,1741,-32721,1719,-32722,1697,-32724,1674,-32725,1652,-32726,1630,-32727,1607,-32728,1585,-32729,1563,-32730,1540,-32731,1518,-32732,1496,-32733,1473,-32734,1451,-32735,1429,-32736,1406,-32737,1384,-32738,1362,-32739,1339,-32740,1317,-32741,1295,-32742,1273,-32743,1250,-32744,1228,-32744,1206,-32745,1183,-32746,1161,-32747,1139,-32748,1116,-32748,1094,-32749,1072,-32750,1049,-32751,1027,-32751,1005,-32752,982,-32753,960,-32753,938,-32754,915,-32755,893,-32755,871,-32756,848,-32757,826,-32757,804,-32758,781,-32758,759,-32759,737,-32759,714,-32760,692,-32760,670,-32761,647,-32761,625,-32762,603,-32762,580,-32762,558,-32763,536,-32763,513,-32763,491,-32764,469,-32764,446,-32764,424,-32765,402,-32765,379,-32765,357,-32766,335,-32766,312,-32766,290,-32766,268,-32766,245,-32767,223,-32767,201,-32767,178,-32767,156,-32767,134,-32767,111,-32767,89,-32767,67,-32767,44,-32767,22,-32767,0,-32767,-23,-32767,-45,-32767,-68,-32767,-90,-32767,-112,-32767,-135,-32767,-157,-32767,-179,-32767,-202,-32767,-224,-32767,-246,-32767,-269,-32766,-291,-32766,-313,-32766,-336,-32766,-358,-32766,-380,-32765,-403,-32765,-425,-32765,-447,-32764,-470,-32764,-492,-32764,-514,-32763,-537,-32763,-559,-32763,-581,-32762,-604,-32762,-626,-32762,-648,-32761,-671,-32761,-693,-32760,-715,-32760,-738,-32759,-760,-32759,-782,-32758,-805,-32758,-827,-32757,-849,-32757,-872,-32756,-894,-32755,-916,-32755,-939,-32754,-961,-32753,-983,-32753,-1006,-32752,-1028,-32751,-1050,-32751,-1073,-32750,-1095,-32749,-1117,-32748,-1140,-32748,-1162,-32747,-1184,-32746,-1207,-32745,-1229,-32744,-1251,-32744,-1274,-32743,-1296,-32742,-1318,-32741,-1340,-32740,-1363,-32739,-1385,-32738,-1407,-32737,-1430,-32736,-1452,-32735,-1474,-32734,-1497,-32733,-1519,-32732,-1541,-32731,-1564,-32730,-1586,-32729,-1608,-32728,-1631,-32727,-1653,-32726,-1675,-32725,-1698,-32724,-1720,-32722,-1742,-32721,-1764,-32720,-1787,-32719,-1809,-32718,-1831,-32716,-1854,-32715,-1876,-32714,-1898,-32712,-1921,-32711,-1943,-32710,-1965,-32709,-1987,-32707,-2010,-32706,-2032,-32704,-2054,-32703,-2077,-32702,-2099,-32700,-2121,-32699,-2144,-32697,-2166,-32696,-2188,-32694,-2210,-32693,-2233,-32691,-2255,-32690,-2277,-32688,-2300,-32687,-2322,-32685,-2344,-32684,-2366,-32682,-2389,-32680,-2411,-32679,-2433,-32677,-2456,-32675,-2478,-32674,-2500,-32672,-2522,-32670,-2545,-32669,-2567,-32667,-2589,-32665,-2611,-32663,-2634,-32662,-2656,-32660,-2678,-32658,-2701,-32656,-2723,-32654,-2745,-32652,-2767,-32650,-2790,-32649,-2812,-32647,-2834,-32645,-2856,-32643,-2879,-32641,-2901,-32639,-2923,-32637,-2945,-32635,-2968,-32633,-2990,-32631,-3012,-32629,-3034,-32627,-3057,-32625,-3079,-32623,-3101,-32620,-3123,-32618,-3146,-32616,-3168,-32614,-3190,-32612,-3212,-32610,-3234,-32608,-3257,-32605,-3279,-32603,-3301,-32601,-3323,-32599,-3346,-32596,-3368,-32594,-3390,-32592,-3412,-32589,-3434,-32587,-3457,-32585,-3479,-32582,-3501,-32580,-3523,-32578,-3546,-32575,-3568,-32573,-3590,-32570,-3612,-32568,-3634,-32565,-3657,-32563,-3679,-32560,-3701,-32558,-3723,-32555,-3745,-32553,-3768,-32550,-3790,-32548,-3812,-32545,-3834,-32542,-3856,-32540,-3878,-32537,-3901,-32535,-3923,-32532,-3945,-32529,-3967,-32527,-3989,-32524,-4012,-32521,-4034,-32518,-4056,-32516,-4078,-32513,-4100,-32510,-4122,-32507,-4145,-32504,-4167,-32502,-4189,-32499,-4211,-32496,-4233,-32493,-4255,-32490,-4277,-32487,-4300,-32484,-4322,-32481,-4344,-32478,-4366,-32475,-4388,-32472,-4410,-32469,-4432,-32466,-4455,-32463,-4477,-32460,-4499,-32457,-4521,-32454,-4543,-32451,-4565,-32448,-4587,-32445,-4609,-32442,-4632,-32439,-4654,-32435,-4676,-32432,-4698,-32429,-4720,-32426,-4742,-32423,-4764,-32419,-4786,-32416,-4808,-32413,-4831,-32410,-4853,-32406,-4875,-32403,-4897,-32400,-4919,-32396,-4941,-32393,-4963,-32390,-4985,-32386,-5007,-32383,-5029,-32379,-5051,-32376,-5073,-32372,-5095,-32369,-5118,-32365,-5140,-32362,-5162,-32358,-5184,-32355,-5206,-32351,-5228,-32348,-5250,-32344,-5272,-32341,-5294,-32337,-5316,-32333,-5338,-32330,-5360,-32326,-5382,-32323,-5404,-32319,-5426,-32315,-5448,-32311,-5470,-32308,-5492,-32304,-5514,-32300,-5536,-32296,-5558,-32293,-5580,-32289,-5602,-32285,-5624,-32281,-5646,-32277,-5668,-32274,-5690,-32270,-5712,-32266,-5734,-32262,-5756,-32258,-5778,-32254,-5800,-32250,-5822,-32246,-5844,-32242,-5866,-32238,-5888,-32234,-5910,-32230,-5932,-32226,-5954,-32222,-5976,-32218,-5998,-32214,-6020,-32210,-6042,-32206,-6064,-32202,-6086,-32197,-6108,-32193,-6130,-32189,-6152,-32185,-6174,-32181,-6196,-32177,-6218,-32172,-6240,-32168,-6262,-32164,-6283,-32159,-6305,-32155,-6327,-32151,-6349,-32147,-6371,-32142,-6393,-32138,-6415,-32134,-6437,-32129,-6459,-32125,-6481,-32120,-6503,-32116,-6524,-32111,-6546,-32107,-6568,-32103,-6590,-32098,-6612,-32094,-6634,-32089,-6656,-32085,-6678,-32080,-6699,-32075,-6721,-32071,-6743,-32066,-6765,-32062,-6787,-32057,-6809,-32052,-6831,-32048,-6852,-32043,-6874,-32038,-6896,-32034,-6918,-32029,-6940,-32024,-6962,-32020,-6983,-32015,-7005,-32010,-7027,-32005,-7049,-32000,-7071,-31996,-7093,-31991,-7114,-31986,-7136,-31981,-7158,-31976,-7180,-31971,-7202,-31966,-7223,-31962,-7245,-31957,-7267,-31952,-7289,-31947,-7311,-31942,-7332,-31937,-7354,-31932,-7376,-31927,-7398,-31922,-7419,-31917,-7441,-31912,-7463,-31906,-7485,-31901,-7506,-31896,-7528,-31891,-7550,-31886,-7572,-31881,-7593,-31876,-7615,-31870,-7637,-31865,-7658,-31860,-7680,-31855,-7702,-31850,-7724,-31844,-7745,-31839,-7767,-31834,-7789,-31828,-7810,-31823,-7832,-31818,-7854,-31812,-7876,-31807,-7897,-31802,-7919,-31796,-7941,-31791,-7962,-31786,-7984,-31780,-8006,-31775,-8027,-31769,-8049,-31764,-8071,-31758,-8092,-31753,-8114,-31747,-8135,-31742,-8157,-31736,-8179,-31730,-8200,-31725,-8222,-31719,-8244,-31714,-8265,-31708,-8287,-31702,-8308,-31697,-8330,-31691,-8352,-31685,-8373,-31680,-8395,-31674,-8416,-31668,-8438,-31663,-8460,-31657,-8481,-31651,-8503,-31645,-8524,-31639,-8546,-31634,-8568,-31628,-8589,-31622,-8611,-31616,-8632,-31610,-8654,-31604,-8675,-31598,-8697,-31592,-8718,-31587,-8740,-31581,-8761,-31575,-8783,-31569,-8804,-31563,-8826,-31557,-8847,-31551,-8869,-31545,-8890,-31538,-8912,-31532,-8933,-31526,-8955,-31520,-8976,-31514,-8998,-31508,-9019,-31502,-9041,-31496,-9062,-31490,-9084,-31483,-9105,-31477,-9127,-31471,-9148,-31465,-9170,-31458,-9191,-31452,-9213,-31446,-9234,-31440,-9255,-31433,-9277,-31427,-9298,-31421,-9320,-31414,-9341,-31408,-9363,-31402,-9384,-31395,-9405,-31389,-9427,-31382,-9448,-31376,-9469,-31370,-9491,-31363,-9512,-31357,-9534,-31350,-9555,-31344,-9576,-31337,-9598,-31331,-9619,-31324,-9640,-31317,-9662,-31311,-9683,-31304,-9704,-31298,-9726,-31291,-9747,-31284,-9768,-31278,-9790,-31271,-9811,-31264,-9832,-31258,-9854,-31251,-9875,-31244,-9896,-31237,-9918,-31231,-9939,-31224,-9960,-31217,-9981,-31210,-10003,-31204,-10024,-31197,-10045,-31190,-10067,-31183,-10088,-31176,-10109,-31169,-10130,-31162,-10152,-31155,-10173,-31149,-10194,-31142,-10215,-31135,-10236,-31128,-10258,-31121,-10279,-31114,-10300,-31107,-10321,-31100,-10343,-31093,-10364,-31086,-10385,-31078,-10406,-31071,-10427,-31064,-10448,-31057,-10470,-31050,-10491,-31043,-10512,-31036,-10533,-31029,-10554,-31021,-10575,-31014,-10597,-31007,-10618,-31000,-10639,-30992,-10660,-30985,-10681,-30978,-10702,-30971,-10723,-30963,-10744,-30956,-10766,-30949,-10787,-30941,-10808,-30934,-10829,-30927,-10850,-30919,-10871,-30912,-10892,-30904,-10913,-30897,-10934,-30890,-10955,-30882,-10976,-30875,-10997,-30867,-11018,-30860,-11039,-30852,-11060,-30845,-11081,-30837,-11102,-30829,-11123,-30822,-11144,-30814,-11165,-30807,-11186,-30799,-11207,-30791,-11228,-30784,-11249,-30776,-11270,-30768,-11291,-30761,-11312,-30753,-11333,-30745,-11354,-30738,-11375,-30730,-11396,-30722,-11417,-30714,-11438,-30706,-11459,-30699,-11480,-30691,-11501,-30683,-11522,-30675,-11543,-30667,-11564,-30659,-11584,-30652,-11605,-30644,-11626,-30636,-11647,-30628,-11668,-30620,-11689,-30612,-11710,-30604,-11731,-30596,-11751,-30588,-11772,-30580,-11793,-30572,-11814,-30564,-11835,-30556,-11856,-30548,-11877,-30540,-11897,-30531,-11918,-30523,-11939,-30515,-11960,-30507,-11981,-30499,-12001,-30491,-12022,-30483,-12043,-30474,-12064,-30466,-12084,-30458,-12105,-30450,-12126,-30441,-12147,-30433,-12167,-30425,-12188,-30417,-12209,-30408,-12230,-30400,-12250,-30392,-12271,-30383,-12292,-30375,-12313,-30366,-12333,-30358,-12354,-30350,-12375,-30341,-12395,-30333,-12416,-30324,-12437,-30316,-12457,-30307,-12478,-30299,-12499,-30290,-12519,-30282,-12540,-30273,-12561,-30265,-12581,-30256,-12602,-30248,-12622,-30239,-12643,-30230,-12664,-30222,-12684,-30213,-12705,-30204,-12725,-30196,-12746,-30187,-12767,-30178,-12787,-30170,-12808,-30161,-12828,-30152,-12849,-30143,-12869,-30135,-12890,-30126,-12910,-30117,-12931,-30108,-12951,-30099,-12972,-30091,-12993,-30082,-13013,-30073,-13034,-30064,-13054,-30055,-13075,-30046,-13095,-30037,-13115,-30028,-13136,-30019,-13156,-30010,-13177,-30002,-13197,-29993,-13218,-29984,-13238,-29974,-13259,-29965,-13279,-29956,-13299,-29947,-13320,-29938,-13340,-29929,-13361,-29920,-13381,-29911,-13401,-29902,-13422,-29893,-13442,-29884,-13463,-29874,-13483,-29865,-13503,-29856,-13524,-29847,-13544,-29838,-13564,-29828,-13585,-29819,-13605,-29810,-13625,-29801,-13646,-29791,-13666,-29782,-13686,-29773,-13707,-29763,-13727,-29754,-13747,-29745,-13767,-29735,-13788,-29726,-13808,-29716,-13828,-29707,-13848,-29697,-13869,-29688,-13889,-29679,-13909,-29669,-13929,-29660,-13950,-29650,-13970,-29641,-13990,-29631,-14010,-29622,-14030,-29612,-14051,-29602,-14071,-29593,-14091,-29583,-14111,-29574,-14131,-29564,-14151,-29554,-14172,-29545,-14192,-29535,-14212,-29525,-14232,-29516,-14252,-29506,-14272,-29496,-14292,-29486,-14312,-29477,-14332,-29467,-14353,-29457,-14373,-29447,-14393,-29438,-14413,-29428,-14433,-29418,-14453,-29408,-14473,-29398,-14493,-29388,-14513,-29378,-14533,-29369,-14553,-29359,-14573,-29349,-14593,-29339,-14613,-29329,-14633,-29319,-14653,-29309,-14673,-29299,-14693,-29289,-14713,-29279,-14733,-29269,-14753,-29259,-14773,-29249,-14793,-29239,-14813,-29228,-14833,-29218,-14853,-29208,-14872,-29198,-14892,-29188,-14912,-29178,-14932,-29168,-14952,-29157,-14972,-29147,-14992,-29137,-15012,-29127,-15031,-29117,-15051,-29106,-15071,-29096,-15091,-29086,-15111,-29075,-15131,-29065,-15150,-29055,-15170,-29045,-15190,-29034,-15210,-29024,-15230,-29013,-15249,-29003,-15269,-28993,-15289,-28982,-15309,-28972,-15328,-28961,-15348,-28951,-15368,-28940,-15388,-28930,-15407,-28919,-15427,-28909,-15447,-28898,-15466,-28888,-15486,-28877,-15506,-28867,-15526,-28856,-15545,-28846,-15565,-28835,-15584,-28824,-15604,-28814,-15624,-28803,-15643,-28792,-15663,-28782,-15683,-28771,-15702,-28760,-15722,-28750,-15741,-28739,-15761,-28728,-15781,-28717,-15800,-28707,-15820,-28696,-15839,-28685,-15859,-28674,-15878,-28663,-15898,-28653,-15918,-28642,-15937,-28631,-15957,-28620,-15976,-28609,-15996,-28598,-16015,-28587,-16035,-28576,-16054,-28566,-16073,-28555,-16093,-28544,-16112,-28533,-16132,-28522,-16151,-28511,-16171,-28500,-16190,-28489,-16210,-28478,-16229,-28466,-16248,-28455,-16268,-28444,-16287,-28433,-16307,-28422,-16326,-28411,-16345,-28400,-16365,-28389,-16384,-28378,-16403,-28366,-16423,-28355,-16442,-28344,-16461,-28333,-16481,-28322,-16500,-28310,-16519,-28299,-16539,-28288,-16558,-28276,-16577,-28265,-16596,-28254,-16616,-28243,-16635,-28231,-16654,-28220,-16673,-28209,-16693,-28197,-16712,-28186,-16731,-28174,-16750,-28163,-16769,-28152,-16789,-28140,-16808,-28129,-16827,-28117,-16846,-28106,-16865,-28094,-16884,-28083,-16904,-28071,-16923,-28060,-16942,-28048,-16961,-28037,-16980,-28025,-16999,-28013,-17018,-28002,-17037,-27990,-17056,-27979,-17075,-27967,-17095,-27955,-17114,-27944,-17133,-27932,-17152,-27920,-17171,-27909,-17190,-27897,-17209,-27885,-17228,-27873,-17247,-27862,-17266,-27850,-17285,-27838,-17304,-27826,-17323,-27815,-17342,-27803,-17361,-27791,-17380,-27779,-17398,-27767,-17417,-27755,-17436,-27743,-17455,-27732,-17474,-27720,-17493,-27708,-17512,-27696,-17531,-27684,-17550,-27672,-17568,-27660,-17587,-27648,-17606,-27636,-17625,-27624,-17644,-27612,-17663,-27600,-17681,-27588,-17700,-27576,-17719,-27564,-17738,-27552,-17757,-27539,-17775,-27527,-17794,-27515,-17813,-27503,-17832,-27491,-17850,-27479,-17869,-27467,-17888,-27454,-17907,-27442,-17925,-27430,-17944,-27418,-17963,-27406,-17981,-27393,-18000,-27381,-18019,-27369,-18037,-27356,-18056,-27344,-18075,-27332,-18093,-27320,-18112,-27307,-18131,-27295,-18149,-27282,-18168,-27270,-18186,-27258,-18205,-27245,-18223,-27233,-18242,-27220,-18261,-27208,-18279,-27196,-18298,-27183,-18316,-27171,-18335,-27158,-18353,-27146,-18372,-27133,-18390,-27121,-18409,-27108,-18427,-27095,-18446,-27083,-18464,-27070,-18483,-27058,-18501,-27045,-18519,-27032,-18538,-27020,-18556,-27007,-18575,-26995,-18593,-26982,-18611,-26969,-18630,-26956,-18648,-26944,-18667,-26931,-18685,-26918,-18703,-26906,-18722,-26893,-18740,-26880,-18758,-26867,-18777,-26854,-18795,-26842,-18813,-26829,-18831,-26816,-18850,-26803,-18868,-26790,-18886,-26777,-18905,-26765,-18923,-26752,-18941,-26739,-18959,-26726,-18977,-26713,-18996,-26700,-19014,-26687,-19032,-26674,-19050,-26661,-19068,-26648,-19087,-26635,-19105,-26622,-19123,-26609,-19141,-26596,-19159,-26583,-19177,-26570,-19195,-26557,-19213,-26544,-19232,-26531,-19250,-26517,-19268,-26504,-19286,-26491,-19304,-26478,-19322,-26465,-19340,-26452,-19358,-26438,-19376,-26425,-19394,-26412,-19412,-26399,-19430,-26386,-19448,-26372,-19466,-26359,-19484,-26346,-19502,-26333,-19520,-26319,-19538,-26306,-19556,-26293,-19574,-26279,-19591,-26266,-19609,-26253,-19627,-26239,-19645,-26226,-19663,-26212,-19681,-26199,-19699,-26186,-19717,-26172,-19734,-26159,-19752,-26145,-19770,-26132,-19788,-26118,-19806,-26105,-19823,-26091,-19841,-26078,-19859,-26064,-19877,-26051,-19895,-26037,-19912,-26023,-19930,-26010,-19948,-25996,-19966,-25983,-19983,-25969,-20001,-25955,-20019,-25942,-20036,-25928,-20054,-25914,-20072,-25901,-20089,-25887,-20107,-25873,-20125,-25860,-20142,-25846,-20160,-25832,-20177,-25818,-20195,-25805,-20213,-25791,-20230,-25777,-20248,-25763,-20265,-25750,-20283,-25736,-20300,-25722,-20318,-25708,-20335,-25694,-20353,-25680,-20370,-25666,-20388,-25653,-20405,-25639,-20423,-25625,-20440,-25611,-20458,-25597,-20475,-25583,-20493,-25569,-20510,-25555,-20528,-25541,-20545,-25527,-20562,-25513,-20580,-25499,-20597,-25485,-20614,-25471,-20632,-25457,-20649,-25443,-20667,-25429,-20684,-25415,-20701,-25400,-20719,-25386,-20736,-25372,-20753,-25358,-20770,-25344,-20788,-25330,-20805,-25316,-20822,-25301,-20839,-25287,-20857,-25273,-20874,-25259,-20891,-25244,-20908,-25230,-20926,-25216,-20943,-25202,-20960,-25187,-20977,-25173,-20994,-25159,-21011,-25145,-21028,-25130,-21046,-25116,-21063,-25101,-21080,-25087,-21097,-25073,-21114,-25058,-21131,-25044,-21148,-25030,-21165,-25015,-21182,-25001,-21199,-24986,-21216,-24972,-21233,-24957,-21250,-24943,-21267,-24928,-21284,-24914,-21301,-24899,-21318,-24885,-21335,-24870,-21352,-24856,-21369,-24841,-21386,-24827,-21403,-24812,-21420,-24797,-21437,-24783,-21454,-24768,-21471,-24754,-21487,-24739,-21504,-24724,-21521,-24710,-21538,-24695,-21555,-24680,-21572,-24665,-21588,-24651,-21605,-24636,-21622,-24621,-21639,-24607,-21656,-24592,-21672,-24577,-21689,-24562,-21706,-24547,-21723,-24533,-21739,-24518,-21756,-24503,-21773,-24488,-21789,-24473,-21806,-24458,-21823,-24444,-21839,-24429,-21856,-24414,-21873,-24399,-21889,-24384,-21906,-24369,-21923,-24354,-21939,-24339,-21956,-24324,-21972,-24309,-21989,-24294,-22005,-24279,-22022,-24264,-22039,-24249,-22055,-24234,-22072,-24219,-22088,-24204,-22105,-24189,-22121,-24174,-22138,-24159,-22154,-24144,-22170,-24129,-22187,-24114,-22203,-24098,-22220,-24083,-22236,-24068,-22253,-24053,-22269,-24038,-22285,-24023,-22302,-24007,-22318,-23992,-22334,-23977,-22351,-23962,-22367,-23946,-22383,-23931,-22400,-23916,-22416,-23901,-22432,-23885,-22449,-23870,-22465,-23855,-22481,-23839,-22497,-23824,-22514,-23809,-22530,-23793,-22546,-23778,-22562,-23763,-22578,-23747,-22595,-23732,-22611,-23716,-22627,-23701,-22643,-23686,-22659,-23670,-22675,-23655,-22692,-23639,-22708,-23624,-22724,-23608,-22740,-23593,-22756,-23577,-22772,-23562,-22788,-23546,-22804,-23531,-22820,-23515,-22836,-23500,-22852,-23484,-22868,-23468,-22884,-23453,-22900,-23437,-22916,-23422,-22932,-23406,-22948,-23390,-22964,-23375,-22980,-23359,-22996,-23343,-23012,-23328,-23028,-23312,-23044,-23296,-23059,-23281,-23075,-23265,-23091,-23249,-23107,-23233,-23123,-23218,-23139,-23202,-23154,-23186,-23170,-23170,-23186,-23154,-23202,-23139,-23218,-23123,-23233,-23107,-23249,-23091,-23265,-23075,-23281,-23059,-23296,-23044,-23312,-23028,-23328,-23012,-23343,-22996,-23359,-22980,-23375,-22964,-23390,-22948,-23406,-22932,-23422,-22916,-23437,-22900,-23453,-22884,-23468,-22868,-23484,-22852,-23500,-22836,-23515,-22820,-23531,-22804,-23546,-22788,-23562,-22772,-23577,-22756,-23593,-22740,-23608,-22724,-23624,-22708,-23639,-22692,-23655,-22675,-23670,-22659,-23686,-22643,-23701,-22627,-23716,-22611,-23732,-22595,-23747,-22578,-23763,-22562,-23778,-22546,-23793,-22530,-23809,-22514,-23824,-22497,-23839,-22481,-23855,-22465,-23870,-22449,-23885,-22432,-23901,-22416,-23916,-22400,-23931,-22383,-23946,-22367,-23962,-22351,-23977,-22334,-23992,-22318,-24007,-22302,-24023,-22285,-24038,-22269,-24053,-22253,-24068,-22236,-24083,-22220,-24098,-22203,-24114,-22187,-24129,-22170,-24144,-22154,-24159,-22138,-24174,-22121,-24189,-22105,-24204,-22088,-24219,-22072,-24234,-22055,-24249,-22039,-24264,-22022,-24279,-22005,-24294,-21989,-24309,-21972,-24324,-21956,-24339,-21939,-24354,-21923,-24369,-21906,-24384,-21889,-24399,-21873,-24414,-21856,-24429,-21839,-24444,-21823,-24458,-21806,-24473,-21789,-24488,-21773,-24503,-21756,-24518,-21739,-24533,-21723,-24547,-21706,-24562,-21689,-24577,-21672,-24592,-21656,-24607,-21639,-24621,-21622,-24636,-21605,-24651,-21588,-24665,-21572,-24680,-21555,-24695,-21538,-24710,-21521,-24724,-21504,-24739,-21487,-24754,-21471,-24768,-21454,-24783,-21437,-24797,-21420,-24812,-21403,-24827,-21386,-24841,-21369,-24856,-21352,-24870,-21335,-24885,-21318,-24899,-21301,-24914,-21284,-24928,-21267,-24943,-21250,-24957,-21233,-24972,-21216,-24986,-21199,-25001,-21182,-25015,-21165,-25030,-21148,-25044,-21131,-25058,-21114,-25073,-21097,-25087,-21080,-25101,-21063,-25116,-21046,-25130,-21028,-25145,-21011,-25159,-20994,-25173,-20977,-25187,-20960,-25202,-20943,-25216,-20926,-25230,-20908,-25244,-20891,-25259,-20874,-25273,-20857,-25287,-20839,-25301,-20822,-25316,-20805,-25330,-20788,-25344,-20770,-25358,-20753,-25372,-20736,-25386,-20719,-25400,-20701,-25415,-20684,-25429,-20667,-25443,-20649,-25457,-20632,-25471,-20614,-25485,-20597,-25499,-20580,-25513,-20562,-25527,-20545,-25541,-20528,-25555,-20510,-25569,-20493,-25583,-20475,-25597,-20458,-25611,-20440,-25625,-20423,-25639,-20405,-25653,-20388,-25666,-20370,-25680,-20353,-25694,-20335,-25708,-20318,-25722,-20300,-25736,-20283,-25750,-20265,-25763,-20248,-25777,-20230,-25791,-20213,-25805,-20195,-25818,-20177,-25832,-20160,-25846,-20142,-25860,-20125,-25873,-20107,-25887,-20089,-25901,-20072,-25914,-20054,-25928,-20036,-25942,-20019,-25955,-20001,-25969,-19983,-25983,-19966,-25996,-19948,-26010,-19930,-26023,-19912,-26037,-19895,-26051,-19877,-26064,-19859,-26078,-19841,-26091,-19823,-26105,-19806,-26118,-19788,-26132,-19770,-26145,-19752,-26159,-19734,-26172,-19717,-26186,-19699,-26199,-19681,-26212,-19663,-26226,-19645,-26239,-19627,-26253,-19609,-26266,-19591,-26279,-19574,-26293,-19556,-26306,-19538,-26319,-19520,-26333,-19502,-26346,-19484,-26359,-19466,-26372,-19448,-26386,-19430,-26399,-19412,-26412,-19394,-26425,-19376,-26438,-19358,-26452,-19340,-26465,-19322,-26478,-19304,-26491,-19286,-26504,-19268,-26517,-19250,-26531,-19232,-26544,-19213,-26557,-19195,-26570,-19177,-26583,-19159,-26596,-19141,-26609,-19123,-26622,-19105,-26635,-19087,-26648,-19068,-26661,-19050,-26674,-19032,-26687,-19014,-26700,-18996,-26713,-18977,-26726,-18959,-26739,-18941,-26752,-18923,-26765,-18905,-26777,-18886,-26790,-18868,-26803,-18850,-26816,-18831,-26829,-18813,-26842,-18795,-26854,-18777,-26867,-18758,-26880,-18740,-26893,-18722,-26906,-18703,-26918,-18685,-26931,-18667,-26944,-18648,-26956,-18630,-26969,-18611,-26982,-18593,-26995,-18575,-27007,-18556,-27020,-18538,-27032,-18519,-27045,-18501,-27058,-18483,-27070,-18464,-27083,-18446,-27095,-18427,-27108,-18409,-27121,-18390,-27133,-18372,-27146,-18353,-27158,-18335,-27171,-18316,-27183,-18298,-27196,-18279,-27208,-18261,-27220,-18242,-27233,-18223,-27245,-18205,-27258,-18186,-27270,-18168,-27282,-18149,-27295,-18131,-27307,-18112,-27320,-18093,-27332,-18075,-27344,-18056,-27356,-18037,-27369,-18019,-27381,-18000,-27393,-17981,-27406,-17963,-27418,-17944,-27430,-17925,-27442,-17907,-27454,-17888,-27467,-17869,-27479,-17850,-27491,-17832,-27503,-17813,-27515,-17794,-27527,-17775,-27539,-17757,-27552,-17738,-27564,-17719,-27576,-17700,-27588,-17681,-27600,-17663,-27612,-17644,-27624,-17625,-27636,-17606,-27648,-17587,-27660,-17568,-27672,-17550,-27684,-17531,-27696,-17512,-27708,-17493,-27720,-17474,-27732,-17455,-27743,-17436,-27755,-17417,-27767,-17398,-27779,-17380,-27791,-17361,-27803,-17342,-27815,-17323,-27826,-17304,-27838,-17285,-27850,-17266,-27862,-17247,-27873,-17228,-27885,-17209,-27897,-17190,-27909,-17171,-27920,-17152,-27932,-17133,-27944,-17114,-27955,-17095,-27967,-17075,-27979,-17056,-27990,-17037,-28002,-17018,-28013,-16999,-28025,-16980,-28037,-16961,-28048,-16942,-28060,-16923,-28071,-16904,-28083,-16884,-28094,-16865,-28106,-16846,-28117,-16827,-28129,-16808,-28140,-16789,-28152,-16769,-28163,-16750,-28174,-16731,-28186,-16712,-28197,-16693,-28209,-16673,-28220,-16654,-28231,-16635,-28243,-16616,-28254,-16596,-28265,-16577,-28276,-16558,-28288,-16539,-28299,-16519,-28310,-16500,-28322,-16481,-28333,-16461,-28344,-16442,-28355,-16423,-28366,-16403,-28378,-16384,-28389,-16365,-28400,-16345,-28411,-16326,-28422,-16307,-28433,-16287,-28444,-16268,-28455,-16248,-28466,-16229,-28478,-16210,-28489,-16190,-28500,-16171,-28511,-16151,-28522,-16132,-28533,-16112,-28544,-16093,-28555,-16073,-28566,-16054,-28576,-16035,-28587,-16015,-28598,-15996,-28609,-15976,-28620,-15957,-28631,-15937,-28642,-15918,-28653,-15898,-28663,-15878,-28674,-15859,-28685,-15839,-28696,-15820,-28707,-15800,-28717,-15781,-28728,-15761,-28739,-15741,-28750,-15722,-28760,-15702,-28771,-15683,-28782,-15663,-28792,-15643,-28803,-15624,-28814,-15604,-28824,-15584,-28835,-15565,-28846,-15545,-28856,-15526,-28867,-15506,-28877,-15486,-28888,-15466,-28898,-15447,-28909,-15427,-28919,-15407,-28930,-15388,-28940,-15368,-28951,-15348,-28961,-15328,-28972,-15309,-28982,-15289,-28993,-15269,-29003,-15249,-29013,-15230,-29024,-15210,-29034,-15190,-29045,-15170,-29055,-15150,-29065,-15131,-29075,-15111,-29086,-15091,-29096,-15071,-29106,-15051,-29117,-15031,-29127,-15012,-29137,-14992,-29147,-14972,-29157,-14952,-29168,-14932,-29178,-14912,-29188,-14892,-29198,-14872,-29208,-14853,-29218,-14833,-29228,-14813,-29239,-14793,-29249,-14773,-29259,-14753,-29269,-14733,-29279,-14713,-29289,-14693,-29299,-14673,-29309,-14653,-29319,-14633,-29329,-14613,-29339,-14593,-29349,-14573,-29359,-14553,-29369,-14533,-29378,-14513,-29388,-14493,-29398,-14473,-29408,-14453,-29418,-14433,-29428,-14413,-29438,-14393,-29447,-14373,-29457,-14353,-29467,-14332,-29477,-14312,-29486,-14292,-29496,-14272,-29506,-14252,-29516,-14232,-29525,-14212,-29535,-14192,-29545,-14172,-29554,-14151,-29564,-14131,-29574,-14111,-29583,-14091,-29593,-14071,-29602,-14051,-29612,-14030,-29622,-14010,-29631,-13990,-29641,-13970,-29650,-13950,-29660,-13929,-29669,-13909,-29679,-13889,-29688,-13869,-29697,-13848,-29707,-13828,-29716,-13808,-29726,-13788,-29735,-13767,-29745,-13747,-29754,-13727,-29763,-13707,-29773,-13686,-29782,-13666,-29791,-13646,-29801,-13625,-29810,-13605,-29819,-13585,-29828,-13564,-29838,-13544,-29847,-13524,-29856,-13503,-29865,-13483,-29874,-13463,-29884,-13442,-29893,-13422,-29902,-13401,-29911,-13381,-29920,-13361,-29929,-13340,-29938,-13320,-29947,-13299,-29956,-13279,-29965,-13259,-29974,-13238,-29984,-13218,-29993,-13197,-30002,-13177,-30010,-13156,-30019,-13136,-30028,-13115,-30037,-13095,-30046,-13075,-30055,-13054,-30064,-13034,-30073,-13013,-30082,-12993,-30091,-12972,-30099,-12951,-30108,-12931,-30117,-12910,-30126,-12890,-30135,-12869,-30143,-12849,-30152,-12828,-30161,-12808,-30170,-12787,-30178,-12767,-30187,-12746,-30196,-12725,-30204,-12705,-30213,-12684,-30222,-12664,-30230,-12643,-30239,-12622,-30248,-12602,-30256,-12581,-30265,-12561,-30273,-12540,-30282,-12519,-30290,-12499,-30299,-12478,-30307,-12457,-30316,-12437,-30324,-12416,-30333,-12395,-30341,-12375,-30350,-12354,-30358,-12333,-30366,-12313,-30375,-12292,-30383,-12271,-30392,-12250,-30400,-12230,-30408,-12209,-30417,-12188,-30425,-12167,-30433,-12147,-30441,-12126,-30450,-12105,-30458,-12084,-30466,-12064,-30474,-12043,-30483,-12022,-30491,-12001,-30499,-11981,-30507,-11960,-30515,-11939,-30523,-11918,-30531,-11897,-30540,-11877,-30548,-11856,-30556,-11835,-30564,-11814,-30572,-11793,-30580,-11772,-30588,-11751,-30596,-11731,-30604,-11710,-30612,-11689,-30620,-11668,-30628,-11647,-30636,-11626,-30644,-11605,-30652,-11584,-30659,-11564,-30667,-11543,-30675,-11522,-30683,-11501,-30691,-11480,-30699,-11459,-30706,-11438,-30714,-11417,-30722,-11396,-30730,-11375,-30738,-11354,-30745,-11333,-30753,-11312,-30761,-11291,-30768,-11270,-30776,-11249,-30784,-11228,-30791,-11207,-30799,-11186,-30807,-11165,-30814,-11144,-30822,-11123,-30829,-11102,-30837,-11081,-30845,-11060,-30852,-11039,-30860,-11018,-30867,-10997,-30875,-10976,-30882,-10955,-30890,-10934,-30897,-10913,-30904,-10892,-30912,-10871,-30919,-10850,-30927,-10829,-30934,-10808,-30941,-10787,-30949,-10766,-30956,-10744,-30963,-10723,-30971,-10702,-30978,-10681,-30985,-10660,-30992,-10639,-31000,-10618,-31007,-10597,-31014,-10575,-31021,-10554,-31029,-10533,-31036,-10512,-31043,-10491,-31050,-10470,-31057,-10448,-31064,-10427,-31071,-10406,-31078,-10385,-31086,-10364,-31093,-10343,-31100,-10321,-31107,-10300,-31114,-10279,-31121,-10258,-31128,-10236,-31135,-10215,-31142,-10194,-31149,-10173,-31155,-10152,-31162,-10130,-31169,-10109,-31176,-10088,-31183,-10067,-31190,-10045,-31197,-10024,-31204,-10003,-31210,-9981,-31217,-9960,-31224,-9939,-31231,-9918,-31237,-9896,-31244,-9875,-31251,-9854,-31258,-9832,-31264,-9811,-31271,-9790,-31278,-9768,-31284,-9747,-31291,-9726,-31298,-9704,-31304,-9683,-31311,-9662,-31317,-9640,-31324,-9619,-31331,-9598,-31337,-9576,-31344,-9555,-31350,-9534,-31357,-9512,-31363,-9491,-31370,-9469,-31376,-9448,-31382,-9427,-31389,-9405,-31395,-9384,-31402,-9363,-31408,-9341,-31414,-9320,-31421,-9298,-31427,-9277,-31433,-9255,-31440,-9234,-31446,-9213,-31452,-9191,-31458,-9170,-31465,-9148,-31471,-9127,-31477,-9105,-31483,-9084,-31490,-9062,-31496,-9041,-31502,-9019,-31508,-8998,-31514,-8976,-31520,-8955,-31526,-8933,-31532,-8912,-31538,-8890,-31545,-8869,-31551,-8847,-31557,-8826,-31563,-8804,-31569,-8783,-31575,-8761,-31581,-8740,-31587,-8718,-31592,-8697,-31598,-8675,-31604,-8654,-31610,-8632,-31616,-8611,-31622,-8589,-31628,-8568,-31634,-8546,-31639,-8524,-31645,-8503,-31651,-8481,-31657,-8460,-31663,-8438,-31668,-8416,-31674,-8395,-31680,-8373,-31685,-8352,-31691,-8330,-31697,-8308,-31702,-8287,-31708,-8265,-31714,-8244,-31719,-8222,-31725,-8200,-31730,-8179,-31736,-8157,-31742,-8135,-31747,-8114,-31753,-8092,-31758,-8071,-31764,-8049,-31769,-8027,-31775,-8006,-31780,-7984,-31786,-7962,-31791,-7941,-31796,-7919,-31802,-7897,-31807,-7876,-31812,-7854,-31818,-7832,-31823,-7810,-31828,-7789,-31834,-7767,-31839,-7745,-31844,-7724,-31850,-7702,-31855,-7680,-31860,-7658,-31865,-7637,-31870,-7615,-31876,-7593,-31881,-7572,-31886,-7550,-31891,-7528,-31896,-7506,-31901,-7485,-31906,-7463,-31912,-7441,-31917,-7419,-31922,-7398,-31927,-7376,-31932,-7354,-31937,-7332,-31942,-7311,-31947,-7289,-31952,-7267,-31957,-7245,-31962,-7223,-31966,-7202,-31971,-7180,-31976,-7158,-31981,-7136,-31986,-7114,-31991,-7093,-31996,-7071,-32000,-7049,-32005,-7027,-32010,-7005,-32015,-6983,-32020,-6962,-32024,-6940,-32029,-6918,-32034,-6896,-32038,-6874,-32043,-6852,-32048,-6831,-32052,-6809,-32057,-6787,-32062,-6765,-32066,-6743,-32071,-6721,-32075,-6699,-32080,-6678,-32085,-6656,-32089,-6634,-32094,-6612,-32098,-6590,-32103,-6568,-32107,-6546,-32111,-6524,-32116,-6503,-32120,-6481,-32125,-6459,-32129,-6437,-32134,-6415,-32138,-6393,-32142,-6371,-32147,-6349,-32151,-6327,-32155,-6305,-32159,-6283,-32164,-6262,-32168,-6240,-32172,-6218,-32177,-6196,-32181,-6174,-32185,-6152,-32189,-6130,-32193,-6108,-32197,-6086,-32202,-6064,-32206,-6042,-32210,-6020,-32214,-5998,-32218,-5976,-32222,-5954,-32226,-5932,-32230,-5910,-32234,-5888,-32238,-5866,-32242,-5844,-32246,-5822,-32250,-5800,-32254,-5778,-32258,-5756,-32262,-5734,-32266,-5712,-32270,-5690,-32274,-5668,-32277,-5646,-32281,-5624,-32285,-5602,-32289,-5580,-32293,-5558,-32296,-5536,-32300,-5514,-32304,-5492,-32308,-5470,-32311,-5448,-32315,-5426,-32319,-5404,-32323,-5382,-32326,-5360,-32330,-5338,-32333,-5316,-32337,-5294,-32341,-5272,-32344,-5250,-32348,-5228,-32351,-5206,-32355,-5184,-32358,-5162,-32362,-5140,-32365,-5118,-32369,-5095,-32372,-5073,-32376,-5051,-32379,-5029,-32383,-5007,-32386,-4985,-32390,-4963,-32393,-4941,-32396,-4919,-32400,-4897,-32403,-4875,-32406,-4853,-32410,-4831,-32413,-4808,-32416,-4786,-32419,-4764,-32423,-4742,-32426,-4720,-32429,-4698,-32432,-4676,-32435,-4654,-32439,-4632,-32442,-4609,-32445,-4587,-32448,-4565,-32451,-4543,-32454,-4521,-32457,-4499,-32460,-4477,-32463,-4455,-32466,-4432,-32469,-4410,-32472,-4388,-32475,-4366,-32478,-4344,-32481,-4322,-32484,-4300,-32487,-4277,-32490,-4255,-32493,-4233,-32496,-4211,-32499,-4189,-32502,-4167,-32504,-4145,-32507,-4122,-32510,-4100,-32513,-4078,-32516,-4056,-32518,-4034,-32521,-4012,-32524,-3989,-32527,-3967,-32529,-3945,-32532,-3923,-32535,-3901,-32537,-3878,-32540,-3856,-32542,-3834,-32545,-3812,-32548,-3790,-32550,-3768,-32553,-3745,-32555,-3723,-32558,-3701,-32560,-3679,-32563,-3657,-32565,-3634,-32568,-3612,-32570,-3590,-32573,-3568,-32575,-3546,-32578,-3523,-32580,-3501,-32582,-3479,-32585,-3457,-32587,-3434,-32589,-3412,-32592,-3390,-32594,-3368,-32596,-3346,-32599,-3323,-32601,-3301,-32603,-3279,-32605,-3257,-32608,-3234,-32610,-3212,-32612,-3190,-32614,-3168,-32616,-3146,-32618,-3123,-32620,-3101,-32623,-3079,-32625,-3057,-32627,-3034,-32629,-3012,-32631,-2990,-32633,-2968,-32635,-2945,-32637,-2923,-32639,-2901,-32641,-2879,-32643,-2856,-32645,-2834,-32647,-2812,-32649,-2790,-32650,-2767,-32652,-2745,-32654,-2723,-32656,-2701,-32658,-2678,-32660,-2656,-32662,-2634,-32663,-2611,-32665,-2589,-32667,-2567,-32669,-2545,-32670,-2522,-32672,-2500,-32674,-2478,-32675,-2456,-32677,-2433,-32679,-2411,-32680,-2389,-32682,-2366,-32684,-2344,-32685,-2322,-32687,-2300,-32688,-2277,-32690,-2255,-32691,-2233,-32693,-2210,-32694,-2188,-32696,-2166,-32697,-2144,-32699,-2121,-32700,-2099,-32702,-2077,-32703,-2054,-32704,-2032,-32706,-2010,-32707,-1987,-32709,-1965,-32710,-1943,-32711,-1921,-32712,-1898,-32714,-1876,-32715,-1854,-32716,-1831,-32718,-1809,-32719,-1787,-32720,-1764,-32721,-1742,-32722,-1720,-32724,-1698,-32725,-1675,-32726,-1653,-32727,-1631,-32728,-1608,-32729,-1586,-32730,-1564,-32731,-1541,-32732,-1519,-32733,-1497,-32734,-1474,-32735,-1452,-32736,-1430,-32737,-1407,-32738,-1385,-32739,-1363,-32740,-1340,-32741,-1318,-32742,-1296,-32743,-1274,-32744,-1251,-32744,-1229,-32745,-1207,-32746,-1184,-32747,-1162,-32748,-1140,-32748,-1117,-32749,-1095,-32750,-1073,-32751,-1050,-32751,-1028,-32752,-1006,-32753,-983,-32753,-961,-32754,-939,-32755,-916,-32755,-894,-32756,-872,-32757,-849,-32757,-827,-32758,-805,-32758,-782,-32759,-760,-32759,-738,-32760,-715,-32760,-693,-32761,-671,-32761,-648,-32762,-626,-32762,-604,-32762,-581,-32763,-559,-32763,-537,-32763,-514,-32764,-492,-32764,-470,-32764,-447,-32765,-425,-32765,-403,-32765,-380,-32766,-358,-32766,-336,-32766,-313,-32766,-291,-32766,-269,-32767,-246,-32767,-224,-32767,-202,-32767,-179,-32767,-157,-32767,-135,-32767,-112,-32767,-90,-32767,-68,-32767,-45,-32767,-23,-32767,-1,-32767,22,-32767,44,-32767,67,-32767,89,-32767,111,-32767,134,-32767,156,-32767,178,-32767,201,-32767,223,-32767,245,-32766,268,-32766,290,-32766,312,-32766,335,-32766,357,-32765,379,-32765,402,-32765,424,-32764,446,-32764,469,-32764,491,-32763,513,-32763,536,-32763,558,-32762,580,-32762,603,-32762,625,-32761,647,-32761,670,-32760,692,-32760,714,-32759,737,-32759,759,-32758,781,-32758,804,-32757,826,-32757,848,-32756,871,-32755,893,-32755,915,-32754,938,-32753,960,-32753,982,-32752,1005,-32751,1027,-32751,1049,-32750,1072,-32749,1094,-32748,1116,-32748,1139,-32747,1161,-32746,1183,-32745,1206,-32744,1228,-32744,1250,-32743,1273,-32742,1295,-32741,1317,-32740,1339,-32739,1362,-32738,1384,-32737,1406,-32736,1429,-32735,1451,-32734,1473,-32733,1496,-32732,1518,-32731,1540,-32730,1563,-32729,1585,-32728,1607,-32727,1630,-32726,1652,-32725,1674,-32724,1697,-32722,1719,-32721,1741,-32720,1763,-32719,1786,-32718,1808,-32716,1830,-32715,1853,-32714,1875,-32712,1897,-32711,1920,-32710,1942,-32709,1964,-32707,1986,-32706,2009,-32704,2031,-32703,2053,-32702,2076,-32700,2098,-32699,2120,-32697,2143,-32696,2165,-32694,2187,-32693,2209,-32691,2232,-32690,2254,-32688,2276,-32687,2299,-32685,2321,-32684,2343,-32682,2365,-32680,2388,-32679,2410,-32677,2432,-32675,2455,-32674,2477,-32672,2499,-32670,2521,-32669,2544,-32667,2566,-32665,2588,-32663,2610,-32662,2633,-32660,2655,-32658,2677,-32656,2700,-32654,2722,-32652,2744,-32650,2766,-32649,2789,-32647,2811,-32645,2833,-32643,2855,-32641,2878,-32639,2900,-32637,2922,-32635,2944,-32633,2967,-32631,2989,-32629,3011,-32627,3033,-32625,3056,-32623,3078,-32620,3100,-32618,3122,-32616,3145,-32614,3167,-32612,3189,-32610,3211,-32608,3233,-32605,3256,-32603,3278,-32601,3300,-32599,3322,-32596,3345,-32594,3367,-32592,3389,-32589,3411,-32587,3433,-32585,3456,-32582,3478,-32580,3500,-32578,3522,-32575,3545,-32573,3567,-32570,3589,-32568,3611,-32565,3633,-32563,3656,-32560,3678,-32558,3700,-32555,3722,-32553,3744,-32550,3767,-32548,3789,-32545,3811,-32542,3833,-32540,3855,-32537,3877,-32535,3900,-32532,3922,-32529,3944,-32527,3966,-32524,3988,-32521,4011,-32518,4033,-32516,4055,-32513,4077,-32510,4099,-32507,4121,-32504,4144,-32502,4166,-32499,4188,-32496,4210,-32493,4232,-32490,4254,-32487,4276,-32484,4299,-32481,4321,-32478,4343,-32475,4365,-32472,4387,-32469,4409,-32466,4431,-32463,4454,-32460,4476,-32457,4498,-32454,4520,-32451,4542,-32448,4564,-32445,4586,-32442,4608,-32439,4631,-32435,4653,-32432,4675,-32429,4697,-32426,4719,-32423,4741,-32419,4763,-32416,4785,-32413,4807,-32410,4830,-32406,4852,-32403,4874,-32400,4896,-32396,4918,-32393,4940,-32390,4962,-32386,4984,-32383,5006,-32379,5028,-32376,5050,-32372,5072,-32369,5094,-32365,5117,-32362,5139,-32358,5161,-32355,5183,-32351,5205,-32348,5227,-32344,5249,-32341,5271,-32337,5293,-32333,5315,-32330,5337,-32326,5359,-32323,5381,-32319,5403,-32315,5425,-32311,5447,-32308,5469,-32304,5491,-32300,5513,-32296,5535,-32293,5557,-32289,5579,-32285,5601,-32281,5623,-32277,5645,-32274,5667,-32270,5689,-32266,5711,-32262,5733,-32258,5755,-32254,5777,-32250,5799,-32246,5821,-32242,5843,-32238,5865,-32234,5887,-32230,5909,-32226,5931,-32222,5953,-32218,5975,-32214,5997,-32210,6019,-32206,6041,-32202,6063,-32197,6085,-32193,6107,-32189,6129,-32185,6151,-32181,6173,-32177,6195,-32172,6217,-32168,6239,-32164,6261,-32159,6282,-32155,6304,-32151,6326,-32147,6348,-32142,6370,-32138,6392,-32134,6414,-32129,6436,-32125,6458,-32120,6480,-32116,6502,-32111,6523,-32107,6545,-32103,6567,-32098,6589,-32094,6611,-32089,6633,-32085,6655,-32080,6677,-32075,6698,-32071,6720,-32066,6742,-32062,6764,-32057,6786,-32052,6808,-32048,6830,-32043,6851,-32038,6873,-32034,6895,-32029,6917,-32024,6939,-32020,6961,-32015,6982,-32010,7004,-32005,7026,-32000,7048,-31996,7070,-31991,7092,-31986,7113,-31981,7135,-31976,7157,-31971,7179,-31966,7201,-31962,7222,-31957,7244,-31952,7266,-31947,7288,-31942,7310,-31937,7331,-31932,7353,-31927,7375,-31922,7397,-31917,7418,-31912,7440,-31906,7462,-31901,7484,-31896,7505,-31891,7527,-31886,7549,-31881,7571,-31876,7592,-31870,7614,-31865,7636,-31860,7657,-31855,7679,-31850,7701,-31844,7723,-31839,7744,-31834,7766,-31828,7788,-31823,7809,-31818,7831,-31812,7853,-31807,7875,-31802,7896,-31796,7918,-31791,7940,-31786,7961,-31780,7983,-31775,8005,-31769,8026,-31764,8048,-31758,8070,-31753,8091,-31747,8113,-31742,8134,-31736,8156,-31730,8178,-31725,8199,-31719,8221,-31714,8243,-31708,8264,-31702,8286,-31697,8307,-31691,8329,-31685,8351,-31680,8372,-31674,8394,-31668,8415,-31663,8437,-31657,8459,-31651,8480,-31645,8502,-31639,8523,-31634,8545,-31628,8567,-31622,8588,-31616,8610,-31610,8631,-31604,8653,-31598,8674,-31592,8696,-31587,8717,-31581,8739,-31575,8760,-31569,8782,-31563,8803,-31557,8825,-31551,8846,-31545,8868,-31538,8889,-31532,8911,-31526,8932,-31520,8954,-31514,8975,-31508,8997,-31502,9018,-31496,9040,-31490,9061,-31483,9083,-31477,9104,-31471,9126,-31465,9147,-31458,9169,-31452,9190,-31446,9212,-31440,9233,-31433,9254,-31427,9276,-31421,9297,-31414,9319,-31408,9340,-31402,9362,-31395,9383,-31389,9404,-31382,9426,-31376,9447,-31370,9468,-31363,9490,-31357,9511,-31350,9533,-31344,9554,-31337,9575,-31331,9597,-31324,9618,-31317,9639,-31311,9661,-31304,9682,-31298,9703,-31291,9725,-31284,9746,-31278,9767,-31271,9789,-31264,9810,-31258,9831,-31251,9853,-31244,9874,-31237,9895,-31231,9917,-31224,9938,-31217,9959,-31210,9980,-31204,10002,-31197,10023,-31190,10044,-31183,10066,-31176,10087,-31169,10108,-31162,10129,-31155,10151,-31149,10172,-31142,10193,-31135,10214,-31128,10235,-31121,10257,-31114,10278,-31107,10299,-31100,10320,-31093,10342,-31086,10363,-31078,10384,-31071,10405,-31064,10426,-31057,10447,-31050,10469,-31043,10490,-31036,10511,-31029,10532,-31021,10553,-31014,10574,-31007,10596,-31000,10617,-30992,10638,-30985,10659,-30978,10680,-30971,10701,-30963,10722,-30956,10743,-30949,10765,-30941,10786,-30934,10807,-30927,10828,-30919,10849,-30912,10870,-30904,10891,-30897,10912,-30890,10933,-30882,10954,-30875,10975,-30867,10996,-30860,11017,-30852,11038,-30845,11059,-30837,11080,-30829,11101,-30822,11122,-30814,11143,-30807,11164,-30799,11185,-30791,11206,-30784,11227,-30776,11248,-30768,11269,-30761,11290,-30753,11311,-30745,11332,-30738,11353,-30730,11374,-30722,11395,-30714,11416,-30706,11437,-30699,11458,-30691,11479,-30683,11500,-30675,11521,-30667,11542,-30659,11563,-30652,11583,-30644,11604,-30636,11625,-30628,11646,-30620,11667,-30612,11688,-30604,11709,-30596,11730,-30588,11750,-30580,11771,-30572,11792,-30564,11813,-30556,11834,-30548,11855,-30540,11876,-30531,11896,-30523,11917,-30515,11938,-30507,11959,-30499,11980,-30491,12000,-30483,12021,-30474,12042,-30466,12063,-30458,12083,-30450,12104,-30441,12125,-30433,12146,-30425,12166,-30417,12187,-30408,12208,-30400,12229,-30392,12249,-30383,12270,-30375,12291,-30366,12312,-30358,12332,-30350,12353,-30341,12374,-30333,12394,-30324,12415,-30316,12436,-30307,12456,-30299,12477,-30290,12498,-30282,12518,-30273,12539,-30265,12560,-30256,12580,-30248,12601,-30239,12621,-30230,12642,-30222,12663,-30213,12683,-30204,12704,-30196,12724,-30187,12745,-30178,12766,-30170,12786,-30161,12807,-30152,12827,-30143,12848,-30135,12868,-30126,12889,-30117,12909,-30108,12930,-30099,12950,-30091,12971,-30082,12992,-30073,13012,-30064,13033,-30055,13053,-30046,13074,-30037,13094,-30028,13114,-30019,13135,-30010,13155,-30002,13176,-29993,13196,-29984,13217,-29974,13237,-29965,13258,-29956,13278,-29947,13298,-29938,13319,-29929,13339,-29920,13360,-29911,13380,-29902,13400,-29893,13421,-29884,13441,-29874,13462,-29865,13482,-29856,13502,-29847,13523,-29838,13543,-29828,13563,-29819,13584,-29810,13604,-29801,13624,-29791,13645,-29782,13665,-29773,13685,-29763,13706,-29754,13726,-29745,13746,-29735,13766,-29726,13787,-29716,13807,-29707,13827,-29697,13847,-29688,13868,-29679,13888,-29669,13908,-29660,13928,-29650,13949,-29641,13969,-29631,13989,-29622,14009,-29612,14029,-29602,14050,-29593,14070,-29583,14090,-29574,14110,-29564,14130,-29554,14150,-29545,14171,-29535,14191,-29525,14211,-29516,14231,-29506,14251,-29496,14271,-29486,14291,-29477,14311,-29467,14331,-29457,14352,-29447,14372,-29438,14392,-29428,14412,-29418,14432,-29408,14452,-29398,14472,-29388,14492,-29378,14512,-29369,14532,-29359,14552,-29349,14572,-29339,14592,-29329,14612,-29319,14632,-29309,14652,-29299,14672,-29289,14692,-29279,14712,-29269,14732,-29259,14752,-29249,14772,-29239,14792,-29228,14812,-29218,14832,-29208,14852,-29198,14871,-29188,14891,-29178,14911,-29168,14931,-29157,14951,-29147,14971,-29137,14991,-29127,15011,-29117,15030,-29106,15050,-29096,15070,-29086,15090,-29075,15110,-29065,15130,-29055,15149,-29045,15169,-29034,15189,-29024,15209,-29013,15229,-29003,15248,-28993,15268,-28982,15288,-28972,15308,-28961,15327,-28951,15347,-28940,15367,-28930,15387,-28919,15406,-28909,15426,-28898,15446,-28888,15465,-28877,15485,-28867,15505,-28856,15525,-28846,15544,-28835,15564,-28824,15583,-28814,15603,-28803,15623,-28792,15642,-28782,15662,-28771,15682,-28760,15701,-28750,15721,-28739,15740,-28728,15760,-28717,15780,-28707,15799,-28696,15819,-28685,15838,-28674,15858,-28663,15877,-28653,15897,-28642,15917,-28631,15936,-28620,15956,-28609,15975,-28598,15995,-28587,16014,-28576,16034,-28566,16053,-28555,16072,-28544,16092,-28533,16111,-28522,16131,-28511,16150,-28500,16170,-28489,16189,-28478,16209,-28466,16228,-28455,16247,-28444,16267,-28433,16286,-28422,16306,-28411,16325,-28400,16344,-28389,16364,-28378,16383,-28366,16402,-28355,16422,-28344,16441,-28333,16460,-28322,16480,-28310,16499,-28299,16518,-28288,16538,-28276,16557,-28265,16576,-28254,16595,-28243,16615,-28231,16634,-28220,16653,-28209,16672,-28197,16692,-28186,16711,-28174,16730,-28163,16749,-28152,16768,-28140,16788,-28129,16807,-28117,16826,-28106,16845,-28094,16864,-28083,16883,-28071,16903,-28060,16922,-28048,16941,-28037,16960,-28025,16979,-28013,16998,-28002,17017,-27990,17036,-27979,17055,-27967,17074,-27955,17094,-27944,17113,-27932,17132,-27920,17151,-27909,17170,-27897,17189,-27885,17208,-27873,17227,-27862,17246,-27850,17265,-27838,17284,-27826,17303,-27815,17322,-27803,17341,-27791,17360,-27779,17379,-27767,17397,-27755,17416,-27743,17435,-27732,17454,-27720,17473,-27708,17492,-27696,17511,-27684,17530,-27672,17549,-27660,17567,-27648,17586,-27636,17605,-27624,17624,-27612,17643,-27600,17662,-27588,17680,-27576,17699,-27564,17718,-27552,17737,-27539,17756,-27527,17774,-27515,17793,-27503,17812,-27491,17831,-27479,17849,-27467,17868,-27454,17887,-27442,17906,-27430,17924,-27418,17943,-27406,17962,-27393,17980,-27381,17999,-27369,18018,-27356,18036,-27344,18055,-27332,18074,-27320,18092,-27307,18111,-27295,18130,-27282,18148,-27270,18167,-27258,18185,-27245,18204,-27233,18222,-27220,18241,-27208,18260,-27196,18278,-27183,18297,-27171,18315,-27158,18334,-27146,18352,-27133,18371,-27121,18389,-27108,18408,-27095,18426,-27083,18445,-27070,18463,-27058,18482,-27045,18500,-27032,18518,-27020,18537,-27007,18555,-26995,18574,-26982,18592,-26969,18610,-26956,18629,-26944,18647,-26931,18666,-26918,18684,-26906,18702,-26893,18721,-26880,18739,-26867,18757,-26854,18776,-26842,18794,-26829,18812,-26816,18830,-26803,18849,-26790,18867,-26777,18885,-26765,18904,-26752,18922,-26739,18940,-26726,18958,-26713,18976,-26700,18995,-26687,19013,-26674,19031,-26661,19049,-26648,19067,-26635,19086,-26622,19104,-26609,19122,-26596,19140,-26583,19158,-26570,19176,-26557,19194,-26544,19212,-26531,19231,-26517,19249,-26504,19267,-26491,19285,-26478,19303,-26465,19321,-26452,19339,-26438,19357,-26425,19375,-26412,19393,-26399,19411,-26386,19429,-26372,19447,-26359,19465,-26346,19483,-26333,19501,-26319,19519,-26306,19537,-26293,19555,-26279,19573,-26266,19590,-26253,19608,-26239,19626,-26226,19644,-26212,19662,-26199,19680,-26186,19698,-26172,19716,-26159,19733,-26145,19751,-26132,19769,-26118,19787,-26105,19805,-26091,19822,-26078,19840,-26064,19858,-26051,19876,-26037,19894,-26023,19911,-26010,19929,-25996,19947,-25983,19965,-25969,19982,-25955,20000,-25942,20018,-25928,20035,-25914,20053,-25901,20071,-25887,20088,-25873,20106,-25860,20124,-25846,20141,-25832,20159,-25818,20176,-25805,20194,-25791,20212,-25777,20229,-25763,20247,-25750,20264,-25736,20282,-25722,20299,-25708,20317,-25694,20334,-25680,20352,-25666,20369,-25653,20387,-25639,20404,-25625,20422,-25611,20439,-25597,20457,-25583,20474,-25569,20492,-25555,20509,-25541,20527,-25527,20544,-25513,20561,-25499,20579,-25485,20596,-25471,20613,-25457,20631,-25443,20648,-25429,20666,-25415,20683,-25400,20700,-25386,20718,-25372,20735,-25358,20752,-25344,20769,-25330,20787,-25316,20804,-25301,20821,-25287,20838,-25273,20856,-25259,20873,-25244,20890,-25230,20907,-25216,20925,-25202,20942,-25187,20959,-25173,20976,-25159,20993,-25145,21010,-25130,21027,-25116,21045,-25101,21062,-25087,21079,-25073,21096,-25058,21113,-25044,21130,-25030,21147,-25015,21164,-25001,21181,-24986,21198,-24972,21215,-24957,21232,-24943,21249,-24928,21266,-24914,21283,-24899,21300,-24885,21317,-24870,21334,-24856,21351,-24841,21368,-24827,21385,-24812,21402,-24797,21419,-24783,21436,-24768,21453,-24754,21470,-24739,21486,-24724,21503,-24710,21520,-24695,21537,-24680,21554,-24665,21571,-24651,21587,-24636,21604,-24621,21621,-24607,21638,-24592,21655,-24577,21671,-24562,21688,-24547,21705,-24533,21722,-24518,21738,-24503,21755,-24488,21772,-24473,21788,-24458,21805,-24444,21822,-24429,21838,-24414,21855,-24399,21872,-24384,21888,-24369,21905,-24354,21922,-24339,21938,-24324,21955,-24309,21971,-24294,21988,-24279,22004,-24264,22021,-24249,22038,-24234,22054,-24219,22071,-24204,22087,-24189,22104,-24174,22120,-24159,22137,-24144,22153,-24129,22169,-24114,22186,-24098,22202,-24083,22219,-24068,22235,-24053,22252,-24038,22268,-24023,22284,-24007,22301,-23992,22317,-23977,22333,-23962,22350,-23946,22366,-23931,22382,-23916,22399,-23901,22415,-23885,22431,-23870,22448,-23855,22464,-23839,22480,-23824,22496,-23809,22513,-23793,22529,-23778,22545,-23763,22561,-23747,22577,-23732,22594,-23716,22610,-23701,22626,-23686,22642,-23670,22658,-23655,22674,-23639,22691,-23624,22707,-23608,22723,-23593,22739,-23577,22755,-23562,22771,-23546,22787,-23531,22803,-23515,22819,-23500,22835,-23484,22851,-23468,22867,-23453,22883,-23437,22899,-23422,22915,-23406,22931,-23390,22947,-23375,22963,-23359,22979,-23343,22995,-23328,23011,-23312,23027,-23296,23043,-23281,23058,-23265,23074,-23249,23090,-23233,23106,-23218,23122,-23202,23138,-23186,23153,-23170,23169,-23154,23185,-23139,23201,-23123,23217,-23107,23232,-23091,23248,-23075,23264,-23059,23280,-23044,23295,-23028,23311,-23012,23327,-22996,23342,-22980,23358,-22964,23374,-22948,23389,-22932,23405,-22916,23421,-22900,23436,-22884,23452,-22868,23467,-22852,23483,-22836,23499,-22820,23514,-22804,23530,-22788,23545,-22772,23561,-22756,23576,-22740,23592,-22724,23607,-22708,23623,-22692,23638,-22675,23654,-22659,23669,-22643,23685,-22627,23700,-22611,23715,-22595,23731,-22578,23746,-22562,23762,-22546,23777,-22530,23792,-22514,23808,-22497,23823,-22481,23838,-22465,23854,-22449,23869,-22432,23884,-22416,23900,-22400,23915,-22383,23930,-22367,23945,-22351,23961,-22334,23976,-22318,23991,-22302,24006,-22285,24022,-22269,24037,-22253,24052,-22236,24067,-22220,24082,-22203,24097,-22187,24113,-22170,24128,-22154,24143,-22138,24158,-22121,24173,-22105,24188,-22088,24203,-22072,24218,-22055,24233,-22039,24248,-22022,24263,-22005,24278,-21989,24293,-21972,24308,-21956,24323,-21939,24338,-21923,24353,-21906,24368,-21889,24383,-21873,24398,-21856,24413,-21839,24428,-21823,24443,-21806,24457,-21789,24472,-21773,24487,-21756,24502,-21739,24517,-21723,24532,-21706,24546,-21689,24561,-21672,24576,-21656,24591,-21639,24606,-21622,24620,-21605,24635,-21588,24650,-21572,24664,-21555,24679,-21538,24694,-21521,24709,-21504,24723,-21487,24738,-21471,24753,-21454,24767,-21437,24782,-21420,24796,-21403,24811,-21386,24826,-21369,24840,-21352,24855,-21335,24869,-21318,24884,-21301,24898,-21284,24913,-21267,24927,-21250,24942,-21233,24956,-21216,24971,-21199,24985,-21182,25000,-21165,25014,-21148,25029,-21131,25043,-21114,25057,-21097,25072,-21080,25086,-21063,25100,-21046,25115,-21028,25129,-21011,25144,-20994,25158,-20977,25172,-20960,25186,-20943,25201,-20926,25215,-20908,25229,-20891,25243,-20874,25258,-20857,25272,-20839,25286,-20822,25300,-20805,25315,-20788,25329,-20770,25343,-20753,25357,-20736,25371,-20719,25385,-20701,25399,-20684,25414,-20667,25428,-20649,25442,-20632,25456,-20614,25470,-20597,25484,-20580,25498,-20562,25512,-20545,25526,-20528,25540,-20510,25554,-20493,25568,-20475,25582,-20458,25596,-20440,25610,-20423,25624,-20405,25638,-20388,25652,-20370,25665,-20353,25679,-20335,25693,-20318,25707,-20300,25721,-20283,25735,-20265,25749,-20248,25762,-20230,25776,-20213,25790,-20195,25804,-20177,25817,-20160,25831,-20142,25845,-20125,25859,-20107,25872,-20089,25886,-20072,25900,-20054,25913,-20036,25927,-20019,25941,-20001,25954,-19983,25968,-19966,25982,-19948,25995,-19930,26009,-19912,26022,-19895,26036,-19877,26050,-19859,26063,-19841,26077,-19823,26090,-19806,26104,-19788,26117,-19770,26131,-19752,26144,-19734,26158,-19717,26171,-19699,26185,-19681,26198,-19663,26211,-19645,26225,-19627,26238,-19609,26252,-19591,26265,-19574,26278,-19556,26292,-19538,26305,-19520,26318,-19502,26332,-19484,26345,-19466,26358,-19448,26371,-19430,26385,-19412,26398,-19394,26411,-19376,26424,-19358,26437,-19340,26451,-19322,26464,-19304,26477,-19286,26490,-19268,26503,-19250,26516,-19232,26530,-19213,26543,-19195,26556,-19177,26569,-19159,26582,-19141,26595,-19123,26608,-19105,26621,-19087,26634,-19068,26647,-19050,26660,-19032,26673,-19014,26686,-18996,26699,-18977,26712,-18959,26725,-18941,26738,-18923,26751,-18905,26764,-18886,26776,-18868,26789,-18850,26802,-18831,26815,-18813,26828,-18795,26841,-18777,26853,-18758,26866,-18740,26879,-18722,26892,-18703,26905,-18685,26917,-18667,26930,-18648,26943,-18630,26955,-18611,26968,-18593,26981,-18575,26994,-18556,27006,-18538,27019,-18519,27031,-18501,27044,-18483,27057,-18464,27069,-18446,27082,-18427,27094,-18409,27107,-18390,27120,-18372,27132,-18353,27145,-18335,27157,-18316,27170,-18298,27182,-18279,27195,-18261,27207,-18242,27219,-18223,27232,-18205,27244,-18186,27257,-18168,27269,-18149,27281,-18131,27294,-18112,27306,-18093,27319,-18075,27331,-18056,27343,-18037,27355,-18019,27368,-18000,27380,-17981,27392,-17963,27405,-17944,27417,-17925,27429,-17907,27441,-17888,27453,-17869,27466,-17850,27478,-17832,27490,-17813,27502,-17794,27514,-17775,27526,-17757,27538,-17738,27551,-17719,27563,-17700,27575,-17681,27587,-17663,27599,-17644,27611,-17625,27623,-17606,27635,-17587,27647,-17568,27659,-17550,27671,-17531,27683,-17512,27695,-17493,27707,-17474,27719,-17455,27731,-17436,27742,-17417,27754,-17398,27766,-17380,27778,-17361,27790,-17342,27802,-17323,27814,-17304,27825,-17285,27837,-17266,27849,-17247,27861,-17228,27872,-17209,27884,-17190,27896,-17171,27908,-17152,27919,-17133,27931,-17114,27943,-17095,27954,-17075,27966,-17056,27978,-17037,27989,-17018,28001,-16999,28012,-16980,28024,-16961,28036,-16942,28047,-16923,28059,-16904,28070,-16884,28082,-16865,28093,-16846,28105,-16827,28116,-16808,28128,-16789,28139,-16769,28151,-16750,28162,-16731,28173,-16712,28185,-16693,28196,-16673,28208,-16654,28219,-16635,28230,-16616,28242,-16596,28253,-16577,28264,-16558,28275,-16539,28287,-16519,28298,-16500,28309,-16481,28321,-16461,28332,-16442,28343,-16423,28354,-16403,28365}; diff --git a/openair1/PHY/TOOLS/twiddle24576.h b/openair1/PHY/TOOLS/twiddle24576.h deleted file mode 100644 index 34fc59d779..0000000000 --- a/openair1/PHY/TOOLS/twiddle24576.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(0:8191)/24576)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*(0:2:16382)/24576)); -twa2 = zeros(1,16384); -twb2 = zeros(1,16384); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); - - -*/ - -int16_t twa24576[16384] __attribute__((aligned(32))) = {32767,0,32766,-9,32766,-17,32766,-26,32766,-34,32766,-42,32766,-51,32766,-59,32766,-68,32766,-76,32766,-84,32766,-93,32766,-101,32766,-109,32766,-118,32766,-126,32766,-135,32766,-143,32766,-151,32766,-160,32766,-168,32766,-176,32766,-185,32766,-193,32766,-202,32766,-210,32766,-218,32766,-227,32766,-235,32766,-243,32766,-252,32765,-260,32765,-269,32765,-277,32765,-285,32765,-294,32765,-302,32765,-310,32765,-319,32765,-327,32765,-336,32765,-344,32765,-352,32765,-361,32764,-369,32764,-377,32764,-386,32764,-394,32764,-403,32764,-411,32764,-419,32764,-428,32764,-436,32763,-444,32763,-453,32763,-461,32763,-470,32763,-478,32763,-486,32763,-495,32763,-503,32763,-511,32762,-520,32762,-528,32762,-537,32762,-545,32762,-553,32762,-562,32762,-570,32761,-579,32761,-587,32761,-595,32761,-604,32761,-612,32761,-620,32760,-629,32760,-637,32760,-646,32760,-654,32760,-662,32760,-671,32759,-679,32759,-687,32759,-696,32759,-704,32759,-713,32759,-721,32758,-729,32758,-738,32758,-746,32758,-754,32758,-763,32757,-771,32757,-780,32757,-788,32757,-796,32757,-805,32756,-813,32756,-821,32756,-830,32756,-838,32756,-847,32755,-855,32755,-863,32755,-872,32755,-880,32754,-888,32754,-897,32754,-905,32754,-914,32754,-922,32753,-930,32753,-939,32753,-947,32753,-955,32752,-964,32752,-972,32752,-981,32752,-989,32751,-997,32751,-1006,32751,-1014,32751,-1022,32750,-1031,32750,-1039,32750,-1047,32750,-1056,32749,-1064,32749,-1073,32749,-1081,32748,-1089,32748,-1098,32748,-1106,32748,-1114,32747,-1123,32747,-1131,32747,-1140,32746,-1148,32746,-1156,32746,-1165,32746,-1173,32745,-1181,32745,-1190,32745,-1198,32744,-1207,32744,-1215,32744,-1223,32743,-1232,32743,-1240,32743,-1248,32742,-1257,32742,-1265,32742,-1274,32741,-1282,32741,-1290,32741,-1299,32740,-1307,32740,-1315,32740,-1324,32739,-1332,32739,-1340,32739,-1349,32738,-1357,32738,-1366,32738,-1374,32737,-1382,32737,-1391,32737,-1399,32736,-1407,32736,-1416,32736,-1424,32735,-1433,32735,-1441,32734,-1449,32734,-1458,32734,-1466,32733,-1474,32733,-1483,32733,-1491,32732,-1500,32732,-1508,32731,-1516,32731,-1525,32731,-1533,32730,-1541,32730,-1550,32729,-1558,32729,-1566,32729,-1575,32728,-1583,32728,-1592,32727,-1600,32727,-1608,32727,-1617,32726,-1625,32726,-1633,32725,-1642,32725,-1650,32725,-1659,32724,-1667,32724,-1675,32723,-1684,32723,-1692,32722,-1700,32722,-1709,32722,-1717,32721,-1725,32721,-1734,32720,-1742,32720,-1751,32719,-1759,32719,-1767,32718,-1776,32718,-1784,32717,-1792,32717,-1801,32717,-1809,32716,-1817,32716,-1826,32715,-1834,32715,-1843,32714,-1851,32714,-1859,32713,-1868,32713,-1876,32712,-1884,32712,-1893,32711,-1901,32711,-1909,32710,-1918,32710,-1926,32709,-1935,32709,-1943,32708,-1951,32708,-1960,32707,-1968,32707,-1976,32706,-1985,32706,-1993,32705,-2001,32705,-2010,32704,-2018,32704,-2027,32703,-2035,32703,-2043,32702,-2052,32702,-2060,32701,-2068,32701,-2077,32700,-2085,32700,-2093,32699,-2102,32699,-2110,32698,-2118,32697,-2127,32697,-2135,32696,-2144,32696,-2152,32695,-2160,32695,-2169,32694,-2177,32694,-2185,32693,-2194,32692,-2202,32692,-2210,32691,-2219,32691,-2227,32690,-2236,32690,-2244,32689,-2252,32688,-2261,32688,-2269,32687,-2277,32687,-2286,32686,-2294,32686,-2302,32685,-2311,32684,-2319,32684,-2327,32683,-2336,32683,-2344,32682,-2353,32681,-2361,32681,-2369,32680,-2378,32680,-2386,32679,-2394,32678,-2403,32678,-2411,32677,-2419,32676,-2428,32676,-2436,32675,-2444,32675,-2453,32674,-2461,32673,-2469,32673,-2478,32672,-2486,32671,-2495,32671,-2503,32670,-2511,32670,-2520,32669,-2528,32668,-2536,32668,-2545,32667,-2553,32666,-2561,32666,-2570,32665,-2578,32664,-2586,32664,-2595,32663,-2603,32662,-2611,32662,-2620,32661,-2628,32660,-2637,32660,-2645,32659,-2653,32658,-2662,32658,-2670,32657,-2678,32656,-2687,32656,-2695,32655,-2703,32654,-2712,32653,-2720,32653,-2728,32652,-2737,32651,-2745,32651,-2753,32650,-2762,32649,-2770,32649,-2778,32648,-2787,32647,-2795,32646,-2803,32646,-2812,32645,-2820,32644,-2829,32644,-2837,32643,-2845,32642,-2854,32641,-2862,32641,-2870,32640,-2879,32639,-2887,32638,-2895,32638,-2904,32637,-2912,32636,-2920,32635,-2929,32635,-2937,32634,-2945,32633,-2954,32632,-2962,32632,-2970,32631,-2979,32630,-2987,32629,-2995,32629,-3004,32628,-3012,32627,-3020,32626,-3029,32625,-3037,32625,-3045,32624,-3054,32623,-3062,32622,-3070,32622,-3079,32621,-3087,32620,-3095,32619,-3104,32618,-3112,32618,-3121,32617,-3129,32616,-3137,32615,-3146,32614,-3154,32614,-3162,32613,-3171,32612,-3179,32611,-3187,32610,-3196,32610,-3204,32609,-3212,32608,-3221,32607,-3229,32606,-3237,32605,-3246,32605,-3254,32604,-3262,32603,-3271,32602,-3279,32601,-3287,32600,-3296,32600,-3304,32599,-3312,32598,-3321,32597,-3329,32596,-3337,32595,-3346,32594,-3354,32594,-3362,32593,-3371,32592,-3379,32591,-3387,32590,-3396,32589,-3404,32588,-3412,32588,-3421,32587,-3429,32586,-3437,32585,-3446,32584,-3454,32583,-3462,32582,-3471,32581,-3479,32580,-3487,32580,-3496,32579,-3504,32578,-3512,32577,-3521,32576,-3529,32575,-3537,32574,-3546,32573,-3554,32572,-3562,32571,-3571,32571,-3579,32570,-3587,32569,-3595,32568,-3604,32567,-3612,32566,-3620,32565,-3629,32564,-3637,32563,-3645,32562,-3654,32561,-3662,32560,-3670,32559,-3679,32558,-3687,32558,-3695,32557,-3704,32556,-3712,32555,-3720,32554,-3729,32553,-3737,32552,-3745,32551,-3754,32550,-3762,32549,-3770,32548,-3779,32547,-3787,32546,-3795,32545,-3804,32544,-3812,32543,-3820,32542,-3829,32541,-3837,32540,-3845,32539,-3854,32538,-3862,32537,-3870,32536,-3878,32535,-3887,32534,-3895,32533,-3903,32532,-3912,32531,-3920,32530,-3928,32529,-3937,32528,-3945,32527,-3953,32526,-3962,32525,-3970,32524,-3978,32523,-3987,32522,-3995,32521,-4003,32520,-4012,32519,-4020,32518,-4028,32517,-4036,32516,-4045,32515,-4053,32514,-4061,32513,-4070,32512,-4078,32511,-4086,32510,-4095,32509,-4103,32508,-4111,32507,-4120,32506,-4128,32504,-4136,32503,-4145,32502,-4153,32501,-4161,32500,-4169,32499,-4178,32498,-4186,32497,-4194,32496,-4203,32495,-4211,32494,-4219,32493,-4228,32492,-4236,32491,-4244,32489,-4253,32488,-4261,32487,-4269,32486,-4277,32485,-4286,32484,-4294,32483,-4302,32482,-4311,32481,-4319,32480,-4327,32478,-4336,32477,-4344,32476,-4352,32475,-4360,32474,-4369,32473,-4377,32472,-4385,32471,-4394,32470,-4402,32468,-4410,32467,-4419,32466,-4427,32465,-4435,32464,-4444,32463,-4452,32462,-4460,32460,-4468,32459,-4477,32458,-4485,32457,-4493,32456,-4502,32455,-4510,32454,-4518,32452,-4526,32451,-4535,32450,-4543,32449,-4551,32448,-4560,32447,-4568,32445,-4576,32444,-4585,32443,-4593,32442,-4601,32441,-4609,32440,-4618,32438,-4626,32437,-4634,32436,-4643,32435,-4651,32434,-4659,32432,-4667,32431,-4676,32430,-4684,32429,-4692,32428,-4701,32426,-4709,32425,-4717,32424,-4726,32423,-4734,32422,-4742,32420,-4750,32419,-4759,32418,-4767,32417,-4775,32416,-4784,32414,-4792,32413,-4800,32412,-4808,32411,-4817,32409,-4825,32408,-4833,32407,-4842,32406,-4850,32404,-4858,32403,-4866,32402,-4875,32401,-4883,32399,-4891,32398,-4900,32397,-4908,32396,-4916,32394,-4924,32393,-4933,32392,-4941,32391,-4949,32389,-4958,32388,-4966,32387,-4974,32386,-4982,32384,-4991,32383,-4999,32382,-5007,32380,-5015,32379,-5024,32378,-5032,32377,-5040,32375,-5049,32374,-5057,32373,-5065,32371,-5073,32370,-5082,32369,-5090,32368,-5098,32366,-5107,32365,-5115,32364,-5123,32362,-5131,32361,-5140,32360,-5148,32358,-5156,32357,-5164,32356,-5173,32354,-5181,32353,-5189,32352,-5198,32350,-5206,32349,-5214,32348,-5222,32346,-5231,32345,-5239,32344,-5247,32342,-5255,32341,-5264,32340,-5272,32338,-5280,32337,-5288,32336,-5297,32334,-5305,32333,-5313,32332,-5322,32330,-5330,32329,-5338,32327,-5346,32326,-5355,32325,-5363,32323,-5371,32322,-5379,32321,-5388,32319,-5396,32318,-5404,32316,-5412,32315,-5421,32314,-5429,32312,-5437,32311,-5446,32310,-5454,32308,-5462,32307,-5470,32305,-5479,32304,-5487,32303,-5495,32301,-5503,32300,-5512,32298,-5520,32297,-5528,32295,-5536,32294,-5545,32293,-5553,32291,-5561,32290,-5569,32288,-5578,32287,-5586,32286,-5594,32284,-5602,32283,-5611,32281,-5619,32280,-5627,32278,-5635,32277,-5644,32275,-5652,32274,-5660,32273,-5668,32271,-5677,32270,-5685,32268,-5693,32267,-5701,32265,-5710,32264,-5718,32262,-5726,32261,-5734,32259,-5743,32258,-5751,32256,-5759,32255,-5767,32254,-5776,32252,-5784,32251,-5792,32249,-5800,32248,-5809,32246,-5817,32245,-5825,32243,-5833,32242,-5842,32240,-5850,32239,-5858,32237,-5866,32236,-5875,32234,-5883,32233,-5891,32231,-5899,32230,-5908,32228,-5916,32227,-5924,32225,-5932,32224,-5941,32222,-5949,32221,-5957,32219,-5965,32218,-5973,32216,-5982,32214,-5990,32213,-5998,32211,-6006,32210,-6015,32208,-6023,32207,-6031,32205,-6039,32204,-6048,32202,-6056,32201,-6064,32199,-6072,32197,-6081,32196,-6089,32194,-6097,32193,-6105,32191,-6113,32190,-6122,32188,-6130,32187,-6138,32185,-6146,32183,-6155,32182,-6163,32180,-6171,32179,-6179,32177,-6187,32176,-6196,32174,-6204,32172,-6212,32171,-6220,32169,-6229,32168,-6237,32166,-6245,32164,-6253,32163,-6262,32161,-6270,32160,-6278,32158,-6286,32156,-6294,32155,-6303,32153,-6311,32152,-6319,32150,-6327,32148,-6335,32147,-6344,32145,-6352,32143,-6360,32142,-6368,32140,-6377,32139,-6385,32137,-6393,32135,-6401,32134,-6409,32132,-6418,32130,-6426,32129,-6434,32127,-6442,32125,-6451,32124,-6459,32122,-6467,32120,-6475,32119,-6483,32117,-6492,32115,-6500,32114,-6508,32112,-6516,32110,-6524,32109,-6533,32107,-6541,32105,-6549,32104,-6557,32102,-6565,32100,-6574,32099,-6582,32097,-6590,32095,-6598,32094,-6607,32092,-6615,32090,-6623,32089,-6631,32087,-6639,32085,-6648,32084,-6656,32082,-6664,32080,-6672,32078,-6680,32077,-6689,32075,-6697,32073,-6705,32072,-6713,32070,-6721,32068,-6730,32066,-6738,32065,-6746,32063,-6754,32061,-6762,32059,-6771,32058,-6779,32056,-6787,32054,-6795,32053,-6803,32051,-6812,32049,-6820,32047,-6828,32046,-6836,32044,-6844,32042,-6852,32040,-6861,32039,-6869,32037,-6877,32035,-6885,32033,-6893,32032,-6902,32030,-6910,32028,-6918,32026,-6926,32024,-6934,32023,-6943,32021,-6951,32019,-6959,32017,-6967,32016,-6975,32014,-6983,32012,-6992,32010,-7000,32008,-7008,32007,-7016,32005,-7024,32003,-7033,32001,-7041,31999,-7049,31998,-7057,31996,-7065,31994,-7073,31992,-7082,31990,-7090,31989,-7098,31987,-7106,31985,-7114,31983,-7123,31981,-7131,31979,-7139,31978,-7147,31976,-7155,31974,-7163,31972,-7172,31970,-7180,31968,-7188,31967,-7196,31965,-7204,31963,-7212,31961,-7221,31959,-7229,31957,-7237,31956,-7245,31954,-7253,31952,-7262,31950,-7270,31948,-7278,31946,-7286,31944,-7294,31943,-7302,31941,-7311,31939,-7319,31937,-7327,31935,-7335,31933,-7343,31931,-7351,31929,-7359,31928,-7368,31926,-7376,31924,-7384,31922,-7392,31920,-7400,31918,-7408,31916,-7417,31914,-7425,31912,-7433,31911,-7441,31909,-7449,31907,-7457,31905,-7466,31903,-7474,31901,-7482,31899,-7490,31897,-7498,31895,-7506,31893,-7515,31891,-7523,31889,-7531,31888,-7539,31886,-7547,31884,-7555,31882,-7563,31880,-7572,31878,-7580,31876,-7588,31874,-7596,31872,-7604,31870,-7612,31868,-7620,31866,-7629,31864,-7637,31862,-7645,31860,-7653,31858,-7661,31856,-7669,31854,-7677,31853,-7686,31851,-7694,31849,-7702,31847,-7710,31845,-7718,31843,-7726,31841,-7734,31839,-7743,31837,-7751,31835,-7759,31833,-7767,31831,-7775,31829,-7783,31827,-7791,31825,-7800,31823,-7808,31821,-7816,31819,-7824,31817,-7832,31815,-7840,31813,-7848,31811,-7857,31809,-7865,31807,-7873,31805,-7881,31803,-7889,31801,-7897,31799,-7905,31797,-7913,31795,-7922,31793,-7930,31791,-7938,31789,-7946,31787,-7954,31785,-7962,31782,-7970,31780,-7978,31778,-7987,31776,-7995,31774,-8003,31772,-8011,31770,-8019,31768,-8027,31766,-8035,31764,-8043,31762,-8052,31760,-8060,31758,-8068,31756,-8076,31754,-8084,31752,-8092,31750,-8100,31748,-8108,31745,-8117,31743,-8125,31741,-8133,31739,-8141,31737,-8149,31735,-8157,31733,-8165,31731,-8173,31729,-8181,31727,-8190,31725,-8198,31723,-8206,31720,-8214,31718,-8222,31716,-8230,31714,-8238,31712,-8246,31710,-8254,31708,-8263,31706,-8271,31704,-8279,31701,-8287,31699,-8295,31697,-8303,31695,-8311,31693,-8319,31691,-8327,31689,-8335,31687,-8344,31684,-8352,31682,-8360,31680,-8368,31678,-8376,31676,-8384,31674,-8392,31672,-8400,31669,-8408,31667,-8416,31665,-8425,31663,-8433,31661,-8441,31659,-8449,31656,-8457,31654,-8465,31652,-8473,31650,-8481,31648,-8489,31646,-8497,31643,-8505,31641,-8514,31639,-8522,31637,-8530,31635,-8538,31633,-8546,31630,-8554,31628,-8562,31626,-8570,31624,-8578,31622,-8586,31619,-8594,31617,-8603,31615,-8611,31613,-8619,31611,-8627,31608,-8635,31606,-8643,31604,-8651,31602,-8659,31600,-8667,31597,-8675,31595,-8683,31593,-8691,31591,-8700,31588,-8708,31586,-8716,31584,-8724,31582,-8732,31580,-8740,31577,-8748,31575,-8756,31573,-8764,31571,-8772,31568,-8780,31566,-8788,31564,-8796,31562,-8804,31559,-8813,31557,-8821,31555,-8829,31553,-8837,31550,-8845,31548,-8853,31546,-8861,31544,-8869,31541,-8877,31539,-8885,31537,-8893,31534,-8901,31532,-8909,31530,-8917,31528,-8925,31525,-8933,31523,-8942,31521,-8950,31518,-8958,31516,-8966,31514,-8974,31512,-8982,31509,-8990,31507,-8998,31505,-9006,31502,-9014,31500,-9022,31498,-9030,31495,-9038,31493,-9046,31491,-9054,31489,-9062,31486,-9070,31484,-9078,31482,-9087,31479,-9095,31477,-9103,31475,-9111,31472,-9119,31470,-9127,31468,-9135,31465,-9143,31463,-9151,31461,-9159,31458,-9167,31456,-9175,31454,-9183,31451,-9191,31449,-9199,31446,-9207,31444,-9215,31442,-9223,31439,-9231,31437,-9239,31435,-9247,31432,-9255,31430,-9263,31428,-9271,31425,-9280,31423,-9288,31420,-9296,31418,-9304,31416,-9312,31413,-9320,31411,-9328,31409,-9336,31406,-9344,31404,-9352,31401,-9360,31399,-9368,31397,-9376,31394,-9384,31392,-9392,31389,-9400,31387,-9408,31385,-9416,31382,-9424,31380,-9432,31377,-9440,31375,-9448,31373,-9456,31370,-9464,31368,-9472,31365,-9480,31363,-9488,31360,-9496,31358,-9504,31356,-9512,31353,-9520,31351,-9528,31348,-9536,31346,-9544,31343,-9552,31341,-9560,31338,-9568,31336,-9576,31334,-9584,31331,-9592,31329,-9600,31326,-9608,31324,-9616,31321,-9624,31319,-9632,31316,-9640,31314,-9648,31311,-9656,31309,-9664,31307,-9672,31304,-9680,31302,-9688,31299,-9696,31297,-9704,31294,-9712,31292,-9720,31289,-9728,31287,-9736,31284,-9744,31282,-9752,31279,-9760,31277,-9768,31274,-9776,31272,-9784,31269,-9792,31267,-9800,31264,-9808,31262,-9816,31259,-9824,31257,-9832,31254,-9840,31252,-9848,31249,-9856,31247,-9864,31244,-9872,31242,-9880,31239,-9888,31236,-9896,31234,-9904,31231,-9912,31229,-9920,31226,-9928,31224,-9936,31221,-9944,31219,-9952,31216,-9960,31214,-9968,31211,-9976,31209,-9984,31206,-9992,31203,-10000,31201,-10008,31198,-10016,31196,-10024,31193,-10032,31191,-10040,31188,-10048,31185,-10056,31183,-10064,31180,-10072,31178,-10080,31175,-10088,31173,-10096,31170,-10104,31167,-10112,31165,-10120,31162,-10128,31160,-10136,31157,-10144,31154,-10152,31152,-10160,31149,-10167,31147,-10175,31144,-10183,31141,-10191,31139,-10199,31136,-10207,31134,-10215,31131,-10223,31128,-10231,31126,-10239,31123,-10247,31121,-10255,31118,-10263,31115,-10271,31113,-10279,31110,-10287,31107,-10295,31105,-10303,31102,-10311,31100,-10319,31097,-10327,31094,-10335,31092,-10343,31089,-10350,31086,-10358,31084,-10366,31081,-10374,31078,-10382,31076,-10390,31073,-10398,31070,-10406,31068,-10414,31065,-10422,31062,-10430,31060,-10438,31057,-10446,31054,-10454,31052,-10462,31049,-10470,31046,-10478,31044,-10485,31041,-10493,31038,-10501,31036,-10509,31033,-10517,31030,-10525,31028,-10533,31025,-10541,31022,-10549,31019,-10557,31017,-10565,31014,-10573,31011,-10581,31009,-10589,31006,-10597,31003,-10604,31001,-10612,30998,-10620,30995,-10628,30992,-10636,30990,-10644,30987,-10652,30984,-10660,30981,-10668,30979,-10676,30976,-10684,30973,-10692,30971,-10700,30968,-10707,30965,-10715,30962,-10723,30960,-10731,30957,-10739,30954,-10747,30951,-10755,30949,-10763,30946,-10771,30943,-10779,30940,-10787,30938,-10795,30935,-10802,30932,-10810,30929,-10818,30927,-10826,30924,-10834,30921,-10842,30918,-10850,30915,-10858,30913,-10866,30910,-10874,30907,-10881,30904,-10889,30902,-10897,30899,-10905,30896,-10913,30893,-10921,30890,-10929,30888,-10937,30885,-10945,30882,-10953,30879,-10960,30876,-10968,30874,-10976,30871,-10984,30868,-10992,30865,-11000,30862,-11008,30860,-11016,30857,-11024,30854,-11031,30851,-11039,30848,-11047,30845,-11055,30843,-11063,30840,-11071,30837,-11079,30834,-11087,30831,-11095,30828,-11102,30826,-11110,30823,-11118,30820,-11126,30817,-11134,30814,-11142,30811,-11150,30809,-11158,30806,-11165,30803,-11173,30800,-11181,30797,-11189,30794,-11197,30791,-11205,30788,-11213,30786,-11221,30783,-11228,30780,-11236,30777,-11244,30774,-11252,30771,-11260,30768,-11268,30766,-11276,30763,-11284,30760,-11291,30757,-11299,30754,-11307,30751,-11315,30748,-11323,30745,-11331,30742,-11339,30739,-11346,30737,-11354,30734,-11362,30731,-11370,30728,-11378,30725,-11386,30722,-11394,30719,-11401,30716,-11409,30713,-11417,30710,-11425,30707,-11433,30705,-11441,30702,-11449,30699,-11456,30696,-11464,30693,-11472,30690,-11480,30687,-11488,30684,-11496,30681,-11503,30678,-11511,30675,-11519,30672,-11527,30669,-11535,30666,-11543,30663,-11551,30660,-11558,30657,-11566,30655,-11574,30652,-11582,30649,-11590,30646,-11598,30643,-11605,30640,-11613,30637,-11621,30634,-11629,30631,-11637,30628,-11645,30625,-11652,30622,-11660,30619,-11668,30616,-11676,30613,-11684,30610,-11692,30607,-11699,30604,-11707,30601,-11715,30598,-11723,30595,-11731,30592,-11738,30589,-11746,30586,-11754,30583,-11762,30580,-11770,30577,-11778,30574,-11785,30571,-11793,30568,-11801,30565,-11809,30562,-11817,30559,-11824,30556,-11832,30553,-11840,30550,-11848,30547,-11856,30544,-11863,30541,-11871,30538,-11879,30535,-11887,30532,-11895,30528,-11903,30525,-11910,30522,-11918,30519,-11926,30516,-11934,30513,-11942,30510,-11949,30507,-11957,30504,-11965,30501,-11973,30498,-11981,30495,-11988,30492,-11996,30489,-12004,30486,-12012,30483,-12020,30480,-12027,30476,-12035,30473,-12043,30470,-12051,30467,-12058,30464,-12066,30461,-12074,30458,-12082,30455,-12090,30452,-12097,30449,-12105,30446,-12113,30442,-12121,30439,-12129,30436,-12136,30433,-12144,30430,-12152,30427,-12160,30424,-12167,30421,-12175,30418,-12183,30415,-12191,30411,-12199,30408,-12206,30405,-12214,30402,-12222,30399,-12230,30396,-12237,30393,-12245,30390,-12253,30386,-12261,30383,-12269,30380,-12276,30377,-12284,30374,-12292,30371,-12300,30368,-12307,30364,-12315,30361,-12323,30358,-12331,30355,-12338,30352,-12346,30349,-12354,30345,-12362,30342,-12369,30339,-12377,30336,-12385,30333,-12393,30330,-12400,30326,-12408,30323,-12416,30320,-12424,30317,-12431,30314,-12439,30311,-12447,30307,-12455,30304,-12462,30301,-12470,30298,-12478,30295,-12486,30291,-12493,30288,-12501,30285,-12509,30282,-12517,30279,-12524,30275,-12532,30272,-12540,30269,-12548,30266,-12555,30263,-12563,30259,-12571,30256,-12579,30253,-12586,30250,-12594,30247,-12602,30243,-12610,30240,-12617,30237,-12625,30234,-12633,30230,-12640,30227,-12648,30224,-12656,30221,-12664,30217,-12671,30214,-12679,30211,-12687,30208,-12695,30205,-12702,30201,-12710,30198,-12718,30195,-12725,30191,-12733,30188,-12741,30185,-12749,30182,-12756,30178,-12764,30175,-12772,30172,-12779,30169,-12787,30165,-12795,30162,-12803,30159,-12810,30156,-12818,30152,-12826,30149,-12833,30146,-12841,30142,-12849,30139,-12857,30136,-12864,30133,-12872,30129,-12880,30126,-12887,30123,-12895,30119,-12903,30116,-12910,30113,-12918,30109,-12926,30106,-12934,30103,-12941,30100,-12949,30096,-12957,30093,-12964,30090,-12972,30086,-12980,30083,-12987,30080,-12995,30076,-13003,30073,-13010,30070,-13018,30066,-13026,30063,-13034,30060,-13041,30056,-13049,30053,-13057,30050,-13064,30046,-13072,30043,-13080,30040,-13087,30036,-13095,30033,-13103,30030,-13110,30026,-13118,30023,-13126,30020,-13133,30016,-13141,30013,-13149,30009,-13156,30006,-13164,30003,-13172,29999,-13179,29996,-13187,29993,-13195,29989,-13202,29986,-13210,29983,-13218,29979,-13225,29976,-13233,29972,-13241,29969,-13248,29966,-13256,29962,-13264,29959,-13271,29955,-13279,29952,-13287,29949,-13294,29945,-13302,29942,-13310,29938,-13317,29935,-13325,29932,-13333,29928,-13340,29925,-13348,29921,-13356,29918,-13363,29915,-13371,29911,-13379,29908,-13386,29904,-13394,29901,-13401,29897,-13409,29894,-13417,29891,-13424,29887,-13432,29884,-13440,29880,-13447,29877,-13455,29873,-13463,29870,-13470,29866,-13478,29863,-13486,29860,-13493,29856,-13501,29853,-13508,29849,-13516,29846,-13524,29842,-13531,29839,-13539,29835,-13547,29832,-13554,29828,-13562,29825,-13569,29822,-13577,29818,-13585,29815,-13592,29811,-13600,29808,-13608,29804,-13615,29801,-13623,29797,-13630,29794,-13638,29790,-13646,29787,-13653,29783,-13661,29780,-13668,29776,-13676,29773,-13684,29769,-13691,29766,-13699,29762,-13707,29759,-13714,29755,-13722,29752,-13729,29748,-13737,29745,-13745,29741,-13752,29738,-13760,29734,-13767,29731,-13775,29727,-13783,29724,-13790,29720,-13798,29717,-13805,29713,-13813,29709,-13821,29706,-13828,29702,-13836,29699,-13843,29695,-13851,29692,-13859,29688,-13866,29685,-13874,29681,-13881,29678,-13889,29674,-13896,29670,-13904,29667,-13912,29663,-13919,29660,-13927,29656,-13934,29653,-13942,29649,-13950,29646,-13957,29642,-13965,29638,-13972,29635,-13980,29631,-13987,29628,-13995,29624,-14003,29621,-14010,29617,-14018,29613,-14025,29610,-14033,29606,-14040,29603,-14048,29599,-14056,29595,-14063,29592,-14071,29588,-14078,29585,-14086,29581,-14093,29577,-14101,29574,-14109,29570,-14116,29567,-14124,29563,-14131,29559,-14139,29556,-14146,29552,-14154,29548,-14161,29545,-14169,29541,-14177,29538,-14184,29534,-14192,29530,-14199,29527,-14207,29523,-14214,29519,-14222,29516,-14229,29512,-14237,29509,-14245,29505,-14252,29501,-14260,29498,-14267,29494,-14275,29490,-14282,29487,-14290,29483,-14297,29479,-14305,29476,-14312,29472,-14320,29468,-14327,29465,-14335,29461,-14343,29457,-14350,29454,-14358,29450,-14365,29446,-14373,29443,-14380,29439,-14388,29435,-14395,29432,-14403,29428,-14410,29424,-14418,29421,-14425,29417,-14433,29413,-14440,29410,-14448,29406,-14455,29402,-14463,29398,-14470,29395,-14478,29391,-14485,29387,-14493,29384,-14500,29380,-14508,29376,-14516,29372,-14523,29369,-14531,29365,-14538,29361,-14546,29358,-14553,29354,-14561,29350,-14568,29346,-14576,29343,-14583,29339,-14591,29335,-14598,29332,-14606,29328,-14613,29324,-14621,29320,-14628,29317,-14636,29313,-14643,29309,-14651,29305,-14658,29302,-14666,29298,-14673,29294,-14681,29290,-14688,29287,-14695,29283,-14703,29279,-14710,29275,-14718,29272,-14725,29268,-14733,29264,-14740,29260,-14748,29256,-14755,29253,-14763,29249,-14770,29245,-14778,29241,-14785,29238,-14793,29234,-14800,29230,-14808,29226,-14815,29222,-14823,29219,-14830,29215,-14838,29211,-14845,29207,-14853,29203,-14860,29200,-14867,29196,-14875,29192,-14882,29188,-14890,29184,-14897,29181,-14905,29177,-14912,29173,-14920,29169,-14927,29165,-14935,29162,-14942,29158,-14950,29154,-14957,29150,-14964,29146,-14972,29142,-14979,29139,-14987,29135,-14994,29131,-15002,29127,-15009,29123,-15017,29119,-15024,29116,-15031,29112,-15039,29108,-15046,29104,-15054,29100,-15061,29096,-15069,29092,-15076,29089,-15084,29085,-15091,29081,-15098,29077,-15106,29073,-15113,29069,-15121,29065,-15128,29062,-15136,29058,-15143,29054,-15150,29050,-15158,29046,-15165,29042,-15173,29038,-15180,29034,-15188,29031,-15195,29027,-15202,29023,-15210,29019,-15217,29015,-15225,29011,-15232,29007,-15239,29003,-15247,28999,-15254,28996,-15262,28992,-15269,28988,-15277,28984,-15284,28980,-15291,28976,-15299,28972,-15306,28968,-15314,28964,-15321,28960,-15328,28956,-15336,28953,-15343,28949,-15351,28945,-15358,28941,-15365,28937,-15373,28933,-15380,28929,-15388,28925,-15395,28921,-15402,28917,-15410,28913,-15417,28909,-15425,28905,-15432,28901,-15439,28897,-15447,28893,-15454,28890,-15462,28886,-15469,28882,-15476,28878,-15484,28874,-15491,28870,-15498,28866,-15506,28862,-15513,28858,-15521,28854,-15528,28850,-15535,28846,-15543,28842,-15550,28838,-15557,28834,-15565,28830,-15572,28826,-15580,28822,-15587,28818,-15594,28814,-15602,28810,-15609,28806,-15616,28802,-15624,28798,-15631,28794,-15639,28790,-15646,28786,-15653,28782,-15661,28778,-15668,28774,-15675,28770,-15683,28766,-15690,28762,-15697,28758,-15705,28754,-15712,28750,-15719,28746,-15727,28742,-15734,28738,-15741,28734,-15749,28730,-15756,28726,-15764,28722,-15771,28718,-15778,28714,-15786,28710,-15793,28706,-15800,28702,-15808,28698,-15815,28694,-15822,28690,-15830,28685,-15837,28681,-15844,28677,-15852,28673,-15859,28669,-15866,28665,-15874,28661,-15881,28657,-15888,28653,-15896,28649,-15903,28645,-15910,28641,-15918,28637,-15925,28633,-15932,28629,-15939,28625,-15947,28620,-15954,28616,-15961,28612,-15969,28608,-15976,28604,-15983,28600,-15991,28596,-15998,28592,-16005,28588,-16013,28584,-16020,28580,-16027,28575,-16035,28571,-16042,28567,-16049,28563,-16056,28559,-16064,28555,-16071,28551,-16078,28547,-16086,28543,-16093,28538,-16100,28534,-16108,28530,-16115,28526,-16122,28522,-16129,28518,-16137,28514,-16144,28510,-16151,28506,-16159,28501,-16166,28497,-16173,28493,-16180,28489,-16188,28485,-16195,28481,-16202,28477,-16210,28472,-16217,28468,-16224,28464,-16231,28460,-16239,28456,-16246,28452,-16253,28447,-16261,28443,-16268,28439,-16275,28435,-16282,28431,-16290,28427,-16297,28423,-16304,28418,-16311,28414,-16319,28410,-16326,28406,-16333,28402,-16340,28397,-16348,28393,-16355,28389,-16362,28385,-16369,28381,-16377,28377,-16384,28372,-16391,28368,-16399,28364,-16406,28360,-16413,28356,-16420,28351,-16428,28347,-16435,28343,-16442,28339,-16449,28335,-16456,28330,-16464,28326,-16471,28322,-16478,28318,-16485,28314,-16493,28309,-16500,28305,-16507,28301,-16514,28297,-16522,28292,-16529,28288,-16536,28284,-16543,28280,-16551,28275,-16558,28271,-16565,28267,-16572,28263,-16579,28259,-16587,28254,-16594,28250,-16601,28246,-16608,28242,-16616,28237,-16623,28233,-16630,28229,-16637,28225,-16644,28220,-16652,28216,-16659,28212,-16666,28208,-16673,28203,-16681,28199,-16688,28195,-16695,28190,-16702,28186,-16709,28182,-16717,28178,-16724,28173,-16731,28169,-16738,28165,-16745,28161,-16753,28156,-16760,28152,-16767,28148,-16774,28143,-16781,28139,-16789,28135,-16796,28131,-16803,28126,-16810,28122,-16817,28118,-16825,28113,-16832,28109,-16839,28105,-16846,28100,-16853,28096,-16860,28092,-16868,28087,-16875,28083,-16882,28079,-16889,28075,-16896,28070,-16904,28066,-16911,28062,-16918,28057,-16925,28053,-16932,28049,-16939,28044,-16947,28040,-16954,28036,-16961,28031,-16968,28027,-16975,28023,-16982,28018,-16990,28014,-16997,28009,-17004,28005,-17011,28001,-17018,27996,-17025,27992,-17033,27988,-17040,27983,-17047,27979,-17054,27975,-17061,27970,-17068,27966,-17075,27962,-17083,27957,-17090,27953,-17097,27948,-17104,27944,-17111,27940,-17118,27935,-17125,27931,-17133,27927,-17140,27922,-17147,27918,-17154,27913,-17161,27909,-17168,27905,-17175,27900,-17183,27896,-17190,27891,-17197,27887,-17204,27883,-17211,27878,-17218,27874,-17225,27869,-17233,27865,-17240,27861,-17247,27856,-17254,27852,-17261,27847,-17268,27843,-17275,27839,-17282,27834,-17289,27830,-17297,27825,-17304,27821,-17311,27816,-17318,27812,-17325,27808,-17332,27803,-17339,27799,-17346,27794,-17353,27790,-17361,27785,-17368,27781,-17375,27777,-17382,27772,-17389,27768,-17396,27763,-17403,27759,-17410,27754,-17417,27750,-17424,27745,-17432,27741,-17439,27736,-17446,27732,-17453,27728,-17460,27723,-17467,27719,-17474,27714,-17481,27710,-17488,27705,-17495,27701,-17502,27696,-17510,27692,-17517,27687,-17524,27683,-17531,27678,-17538,27674,-17545,27669,-17552,27665,-17559,27660,-17566,27656,-17573,27651,-17580,27647,-17587,27642,-17594,27638,-17601,27633,-17609,27629,-17616,27624,-17623,27620,-17630,27615,-17637,27611,-17644,27606,-17651,27602,-17658,27597,-17665,27593,-17672,27588,-17679,27584,-17686,27579,-17693,27575,-17700,27570,-17707,27566,-17714,27561,-17721,27557,-17728,27552,-17736,27548,-17743,27543,-17750,27538,-17757,27534,-17764,27529,-17771,27525,-17778,27520,-17785,27516,-17792,27511,-17799,27507,-17806,27502,-17813,27498,-17820,27493,-17827,27488,-17834,27484,-17841,27479,-17848,27475,-17855,27470,-17862,27466,-17869,27461,-17876,27456,-17883,27452,-17890,27447,-17897,27443,-17904,27438,-17911,27434,-17918,27429,-17925,27424,-17932,27420,-17939,27415,-17946,27411,-17953,27406,-17960,27401,-17967,27397,-17974,27392,-17981,27388,-17988,27383,-17995,27378,-18002,27374,-18009,27369,-18016,27365,-18023,27360,-18030,27355,-18037,27351,-18044,27346,-18051,27342,-18058,27337,-18065,27332,-18072,27328,-18079,27323,-18086,27319,-18093,27314,-18100,27309,-18107,27305,-18114,27300,-18121,27295,-18128,27291,-18135,27286,-18142,27281,-18149,27277,-18156,27272,-18163,27268,-18170,27263,-18177,27258,-18184,27254,-18191,27249,-18198,27244,-18205,27240,-18212,27235,-18219,27230,-18226,27226,-18233,27221,-18240,27216,-18247,27212,-18254,27207,-18261,27202,-18268,27198,-18274,27193,-18281,27188,-18288,27184,-18295,27179,-18302,27174,-18309,27170,-18316,27165,-18323,27160,-18330,27156,-18337,27151,-18344,27146,-18351,27141,-18358,27137,-18365,27132,-18372,27127,-18379,27123,-18386,27118,-18393,27113,-18399,27109,-18406,27104,-18413,27099,-18420,27094,-18427,27090,-18434,27085,-18441,27080,-18448,27076,-18455,27071,-18462,27066,-18469,27061,-18476,27057,-18483,27052,-18489,27047,-18496,27042,-18503,27038,-18510,27033,-18517,27028,-18524,27024,-18531,27019,-18538,27014,-18545,27009,-18552,27005,-18559,27000,-18565,26995,-18572,26990,-18579,26986,-18586,26981,-18593,26976,-18600,26971,-18607,26967,-18614,26962,-18621,26957,-18628,26952,-18634,26948,-18641,26943,-18648,26938,-18655,26933,-18662,26928,-18669,26924,-18676,26919,-18683,26914,-18690,26909,-18696,26905,-18703,26900,-18710,26895,-18717,26890,-18724,26885,-18731,26881,-18738,26876,-18745,26871,-18751,26866,-18758,26861,-18765,26857,-18772,26852,-18779,26847,-18786,26842,-18793,26837,-18799,26833,-18806,26828,-18813,26823,-18820,26818,-18827,26813,-18834,26809,-18841,26804,-18847,26799,-18854,26794,-18861,26789,-18868,26784,-18875,26780,-18882,26775,-18889,26770,-18895,26765,-18902,26760,-18909,26755,-18916,26751,-18923,26746,-18930,26741,-18936,26736,-18943,26731,-18950,26726,-18957,26722,-18964,26717,-18971,26712,-18977,26707,-18984,26702,-18991,26697,-18998,26692,-19005,26688,-19012,26683,-19018,26678,-19025,26673,-19032,26668,-19039,26663,-19046,26658,-19052,26654,-19059,26649,-19066,26644,-19073,26639,-19080,26634,-19087,26629,-19093,26624,-19100,26619,-19107,26615,-19114,26610,-19121,26605,-19127,26600,-19134,26595,-19141,26590,-19148,26585,-19155,26580,-19161,26575,-19168,26570,-19175,26566,-19182,26561,-19189,26556,-19195,26551,-19202,26546,-19209,26541,-19216,26536,-19222,26531,-19229,26526,-19236,26521,-19243,26516,-19250,26512,-19256,26507,-19263,26502,-19270,26497,-19277,26492,-19283,26487,-19290,26482,-19297,26477,-19304,26472,-19311,26467,-19317,26462,-19324,26457,-19331,26452,-19338,26447,-19344,26442,-19351,26437,-19358,26433,-19365,26428,-19371,26423,-19378,26418,-19385,26413,-19392,26408,-19398,26403,-19405,26398,-19412,26393,-19419,26388,-19425,26383,-19432,26378,-19439,26373,-19446,26368,-19452,26363,-19459,26358,-19466,26353,-19473,26348,-19479,26343,-19486,26338,-19493,26333,-19500,26328,-19506,26323,-19513,26318,-19520,26313,-19527,26308,-19533,26303,-19540,26298,-19547,26293,-19553,26288,-19560,26283,-19567,26278,-19574,26273,-19580,26268,-19587,26263,-19594,26258,-19600,26253,-19607,26248,-19614,26243,-19621,26238,-19627,26233,-19634,26228,-19641,26223,-19647,26218,-19654,26213,-19661,26208,-19668,26203,-19674,26198,-19681,26193,-19688,26188,-19694,26183,-19701,26178,-19708,26173,-19714,26168,-19721,26163,-19728,26158,-19734,26153,-19741,26148,-19748,26142,-19755,26137,-19761,26132,-19768,26127,-19775,26122,-19781,26117,-19788,26112,-19795,26107,-19801,26102,-19808,26097,-19815,26092,-19821,26087,-19828,26082,-19835,26077,-19841,26072,-19848,26067,-19855,26061,-19861,26056,-19868,26051,-19875,26046,-19881,26041,-19888,26036,-19895,26031,-19901,26026,-19908,26021,-19915,26016,-19921,26011,-19928,26006,-19934,26000,-19941,25995,-19948,25990,-19954,25985,-19961,25980,-19968,25975,-19974,25970,-19981,25965,-19988,25960,-19994,25954,-20001,25949,-20008,25944,-20014,25939,-20021,25934,-20027,25929,-20034,25924,-20041,25919,-20047,25913,-20054,25908,-20061,25903,-20067,25898,-20074,25893,-20080,25888,-20087,25883,-20094,25878,-20100,25872,-20107,25867,-20114,25862,-20120,25857,-20127,25852,-20133,25847,-20140,25842,-20147,25836,-20153,25831,-20160,25826,-20166,25821,-20173,25816,-20180,25811,-20186,25805,-20193,25800,-20199,25795,-20206,25790,-20213,25785,-20219,25780,-20226,25774,-20232,25769,-20239,25764,-20246,25759,-20252,25754,-20259,25749,-20265,25743,-20272,25738,-20278,25733,-20285,25728,-20292,25723,-20298,25717,-20305,25712,-20311,25707,-20318,25702,-20324,25697,-20331,25691,-20338,25686,-20344,25681,-20351,25676,-20357,25671,-20364,25665,-20370,25660,-20377,25655,-20384,25650,-20390,25645,-20397,25639,-20403,25634,-20410,25629,-20416,25624,-20423,25619,-20429,25613,-20436,25608,-20443,25603,-20449,25598,-20456,25592,-20462,25587,-20469,25582,-20475,25577,-20482,25571,-20488,25566,-20495,25561,-20501,25556,-20508,25550,-20514,25545,-20521,25540,-20528,25535,-20534,25529,-20541,25524,-20547,25519,-20554,25514,-20560,25508,-20567,25503,-20573,25498,-20580,25493,-20586,25487,-20593,25482,-20599,25477,-20606,25472,-20612,25466,-20619,25461,-20625,25456,-20632,25451,-20638,25445,-20645,25440,-20651,25435,-20658,25429,-20664,25424,-20671,25419,-20677,25414,-20684,25408,-20690,25403,-20697,25398,-20703,25392,-20710,25387,-20716,25382,-20723,25376,-20729,25371,-20736,25366,-20742,25361,-20749,25355,-20755,25350,-20762,25345,-20768,25339,-20775,25334,-20781,25329,-20788,25323,-20794,25318,-20801,25313,-20807,25307,-20814,25302,-20820,25297,-20826,25291,-20833,25286,-20839,25281,-20846,25276,-20852,25270,-20859,25265,-20865,25260,-20872,25254,-20878,25249,-20885,25243,-20891,25238,-20898,25233,-20904,25227,-20910,25222,-20917,25217,-20923,25211,-20930,25206,-20936,25201,-20943,25195,-20949,25190,-20956,25185,-20962,25179,-20968,25174,-20975,25169,-20981,25163,-20988,25158,-20994,25152,-21001,25147,-21007,25142,-21013,25136,-21020,25131,-21026,25126,-21033,25120,-21039,25115,-21046,25109,-21052,25104,-21058,25099,-21065,25093,-21071,25088,-21078,25083,-21084,25077,-21091,25072,-21097,25066,-21103,25061,-21110,25056,-21116,25050,-21123,25045,-21129,25039,-21135,25034,-21142,25029,-21148,25023,-21155,25018,-21161,25012,-21167,25007,-21174,25001,-21180,24996,-21187,24991,-21193,24985,-21199,24980,-21206,24974,-21212,24969,-21218,24964,-21225,24958,-21231,24953,-21238,24947,-21244,24942,-21250,24936,-21257,24931,-21263,24926,-21269,24920,-21276,24915,-21282,24909,-21289,24904,-21295,24898,-21301,24893,-21308,24887,-21314,24882,-21320,24877,-21327,24871,-21333,24866,-21340,24860,-21346,24855,-21352,24849,-21359,24844,-21365,24838,-21371,24833,-21378,24827,-21384,24822,-21390,24816,-21397,24811,-21403,24805,-21409,24800,-21416,24795,-21422,24789,-21428,24784,-21435,24778,-21441,24773,-21447,24767,-21454,24762,-21460,24756,-21466,24751,-21473,24745,-21479,24740,-21485,24734,-21492,24729,-21498,24723,-21504,24718,-21511,24712,-21517,24707,-21523,24701,-21530,24696,-21536,24690,-21542,24685,-21549,24679,-21555,24674,-21561,24668,-21567,24663,-21574,24657,-21580,24652,-21586,24646,-21593,24641,-21599,24635,-21605,24630,-21612,24624,-21618,24618,-21624,24613,-21630,24607,-21637,24602,-21643,24596,-21649,24591,-21656,24585,-21662,24580,-21668,24574,-21674,24569,-21681,24563,-21687,24558,-21693,24552,-21700,24546,-21706,24541,-21712,24535,-21718,24530,-21725,24524,-21731,24519,-21737,24513,-21744,24508,-21750,24502,-21756,24496,-21762,24491,-21769,24485,-21775,24480,-21781,24474,-21787,24469,-21794,24463,-21800,24457,-21806,24452,-21812,24446,-21819,24441,-21825,24435,-21831,24430,-21837,24424,-21844,24418,-21850,24413,-21856,24407,-21862,24402,-21869,24396,-21875,24390,-21881,24385,-21887,24379,-21894,24374,-21900,24368,-21906,24362,-21912,24357,-21918,24351,-21925,24346,-21931,24340,-21937,24334,-21943,24329,-21950,24323,-21956,24318,-21962,24312,-21968,24306,-21974,24301,-21981,24295,-21987,24289,-21993,24284,-21999,24278,-22005,24273,-22012,24267,-22018,24261,-22024,24256,-22030,24250,-22036,24244,-22043,24239,-22049,24233,-22055,24228,-22061,24222,-22067,24216,-22074,24211,-22080,24205,-22086,24199,-22092,24194,-22098,24188,-22105,24182,-22111,24177,-22117,24171,-22123,24165,-22129,24160,-22136,24154,-22142,24148,-22148,24143,-22154,24137,-22160,24131,-22166,24126,-22173,24120,-22179,24114,-22185,24109,-22191,24103,-22197,24097,-22203,24092,-22210,24086,-22216,24080,-22222,24075,-22228,24069,-22234,24063,-22240,24058,-22246,24052,-22253,24046,-22259,24041,-22265,24035,-22271,24029,-22277,24023,-22283,24018,-22289,24012,-22296,24006,-22302,24001,-22308,23995,-22314,23989,-22320,23984,-22326,23978,-22332,23972,-22339,23966,-22345,23961,-22351,23955,-22357,23949,-22363,23944,-22369,23938,-22375,23932,-22381,23926,-22388,23921,-22394,23915,-22400,23909,-22406,23903,-22412,23898,-22418,23892,-22424,23886,-22430,23881,-22436,23875,-22443,23869,-22449,23863,-22455,23858,-22461,23852,-22467,23846,-22473,23840,-22479,23835,-22485,23829,-22491,23823,-22497,23817,-22504,23812,-22510,23806,-22516,23800,-22522,23794,-22528,23789,-22534,23783,-22540,23777,-22546,23771,-22552,23766,-22558,23760,-22564,23754,-22570,23748,-22576,23742,-22583,23737,-22589,23731,-22595,23725,-22601,23719,-22607,23714,-22613,23708,-22619,23702,-22625,23696,-22631,23690,-22637,23685,-22643,23679,-22649,23673,-22655,23667,-22661,23661,-22667,23656,-22673,23650,-22679,23644,-22686,23638,-22692,23632,-22698,23627,-22704,23621,-22710,23615,-22716,23609,-22722,23603,-22728,23598,-22734,23592,-22740,23586,-22746,23580,-22752,23574,-22758,23569,-22764,23563,-22770,23557,-22776,23551,-22782,23545,-22788,23539,-22794,23534,-22800,23528,-22806,23522,-22812,23516,-22818,23510,-22824,23504,-22830,23499,-22836,23493,-22842,23487,-22848,23481,-22854,23475,-22860,23469,-22866,23464,-22872,23458,-22878,23452,-22884,23446,-22890,23440,-22896,23434,-22902,23428,-22908,23423,-22914,23417,-22920,23411,-22926,23405,-22932,23399,-22938,23393,-22944,23387,-22950,23382,-22956,23376,-22962,23370,-22968,23364,-22974,23358,-22980,23352,-22986,23346,-22992,23340,-22998,23335,-23004,23329,-23010,23323,-23016,23317,-23022,23311,-23028,23305,-23034,23299,-23040,23293,-23046,23287,-23051,23282,-23057,23276,-23063,23270,-23069,23264,-23075,23258,-23081,23252,-23087,23246,-23093,23240,-23099,23234,-23105,23228,-23111,23223,-23117,23217,-23123,23211,-23129,23205,-23135,23199,-23141,23193,-23147,23187,-23152,23181,-23158,23175,-23164,23169,-23170,23163,-23176,23157,-23182,23151,-23188,23146,-23194,23140,-23200,23134,-23206,23128,-23212,23122,-23218,23116,-23224,23110,-23229,23104,-23235,23098,-23241,23092,-23247,23086,-23253,23080,-23259,23074,-23265,23068,-23271,23062,-23277,23056,-23283,23050,-23288,23045,-23294,23039,-23300,23033,-23306,23027,-23312,23021,-23318,23015,-23324,23009,-23330,23003,-23336,22997,-23341,22991,-23347,22985,-23353,22979,-23359,22973,-23365,22967,-23371,22961,-23377,22955,-23383,22949,-23388,22943,-23394,22937,-23400,22931,-23406,22925,-23412,22919,-23418,22913,-23424,22907,-23429,22901,-23435,22895,-23441,22889,-23447,22883,-23453,22877,-23459,22871,-23465,22865,-23470,22859,-23476,22853,-23482,22847,-23488,22841,-23494,22835,-23500,22829,-23505,22823,-23511,22817,-23517,22811,-23523,22805,-23529,22799,-23535,22793,-23540,22787,-23546,22781,-23552,22775,-23558,22769,-23564,22763,-23570,22757,-23575,22751,-23581,22745,-23587,22739,-23593,22733,-23599,22727,-23604,22721,-23610,22715,-23616,22709,-23622,22703,-23628,22697,-23633,22691,-23639,22685,-23645,22678,-23651,22672,-23657,22666,-23662,22660,-23668,22654,-23674,22648,-23680,22642,-23686,22636,-23691,22630,-23697,22624,-23703,22618,-23709,22612,-23715,22606,-23720,22600,-23726,22594,-23732,22588,-23738,22582,-23743,22575,-23749,22569,-23755,22563,-23761,22557,-23767,22551,-23772,22545,-23778,22539,-23784,22533,-23790,22527,-23795,22521,-23801,22515,-23807,22509,-23813,22503,-23818,22496,-23824,22490,-23830,22484,-23836,22478,-23841,22472,-23847,22466,-23853,22460,-23859,22454,-23864,22448,-23870,22442,-23876,22435,-23882,22429,-23887,22423,-23893,22417,-23899,22411,-23904,22405,-23910,22399,-23916,22393,-23922,22387,-23927,22380,-23933,22374,-23939,22368,-23945,22362,-23950,22356,-23956,22350,-23962,22344,-23967,22338,-23973,22331,-23979,22325,-23985,22319,-23990,22313,-23996,22307,-24002,22301,-24007,22295,-24013,22288,-24019,22282,-24024,22276,-24030,22270,-24036,22264,-24042,22258,-24047,22252,-24053,22245,-24059,22239,-24064,22233,-24070,22227,-24076,22221,-24081,22215,-24087,22209,-24093,22202,-24098,22196,-24104,22190,-24110,22184,-24115,22178,-24121,22172,-24127,22165,-24132,22159,-24138,22153,-24144,22147,-24149,22141,-24155,22135,-24161,22128,-24166,22122,-24172,22116,-24178,22110,-24183,22104,-24189,22097,-24195,22091,-24200,22085,-24206,22079,-24212,22073,-24217,22066,-24223,22060,-24229,22054,-24234,22048,-24240,22042,-24245,22035,-24251,22029,-24257,22023,-24262,22017,-24268,22011,-24274,22004,-24279,21998,-24285,21992,-24290,21986,-24296,21980,-24302,21973,-24307,21967,-24313,21961,-24319,21955,-24324,21949,-24330,21942,-24335,21936,-24341,21930,-24347,21924,-24352,21917,-24358,21911,-24363,21905,-24369,21899,-24375,21893,-24380,21886,-24386,21880,-24391,21874,-24397,21868,-24403,21861,-24408,21855,-24414,21849,-24419,21843,-24425,21836,-24431,21830,-24436,21824,-24442,21818,-24447,21811,-24453,21805,-24458,21799,-24464,21793,-24470,21786,-24475,21780,-24481,21774,-24486,21768,-24492,21761,-24497,21755,-24503,21749,-24509,21743,-24514,21736,-24520,21730,-24525,21724,-24531,21717,-24536,21711,-24542,21705,-24547,21699,-24553,21692,-24559,21686,-24564,21680,-24570,21673,-24575,21667,-24581,21661,-24586,21655,-24592,21648,-24597,21642,-24603,21636,-24608,21629,-24614,21623,-24619,21617,-24625,21611,-24631,21604,-24636,21598,-24642,21592,-24647,21585,-24653,21579,-24658,21573,-24664,21566,-24669,21560,-24675,21554,-24680,21548,-24686,21541,-24691,21535,-24697,21529,-24702,21522,-24708,21516,-24713,21510,-24719,21503,-24724,21497,-24730,21491,-24735,21484,-24741,21478,-24746,21472,-24752,21465,-24757,21459,-24763,21453,-24768,21446,-24774,21440,-24779,21434,-24785,21427,-24790,21421,-24796,21415,-24801,21408,-24806,21402,-24812,21396,-24817,21389,-24823,21383,-24828,21377,-24834,21370,-24839,21364,-24845,21358,-24850,21351,-24856,21345,-24861,21339,-24867,21332,-24872,21326,-24878,21319,-24883,21313,-24888,21307,-24894,21300,-24899,21294,-24905,21288,-24910,21281,-24916,21275,-24921,21268,-24927,21262,-24932,21256,-24937,21249,-24943,21243,-24948,21237,-24954,21230,-24959,21224,-24965,21217,-24970,21211,-24975,21205,-24981,21198,-24986,21192,-24992,21186,-24997,21179,-25002,21173,-25008,21166,-25013,21160,-25019,21154,-25024,21147,-25030,21141,-25035,21134,-25040,21128,-25046,21122,-25051,21115,-25057,21109,-25062,21102,-25067,21096,-25073,21090,-25078,21083,-25084,21077,-25089,21070,-25094,21064,-25100,21057,-25105,21051,-25110,21045,-25116,21038,-25121,21032,-25127,21025,-25132,21019,-25137,21012,-25143,21006,-25148,21000,-25153,20993,-25159,20987,-25164,20980,-25170,20974,-25175,20967,-25180,20961,-25186,20955,-25191,20948,-25196,20942,-25202,20935,-25207,20929,-25212,20922,-25218,20916,-25223,20909,-25228,20903,-25234,20897,-25239,20890,-25244,20884,-25250,20877,-25255,20871,-25261,20864,-25266,20858,-25271,20851,-25277,20845,-25282,20838,-25287,20832,-25292,20825,-25298,20819,-25303,20813,-25308,20806,-25314,20800,-25319,20793,-25324,20787,-25330,20780,-25335,20774,-25340,20767,-25346,20761,-25351,20754,-25356,20748,-25362,20741,-25367,20735,-25372,20728,-25377,20722,-25383,20715,-25388,20709,-25393,20702,-25399,20696,-25404,20689,-25409,20683,-25415,20676,-25420,20670,-25425,20663,-25430,20657,-25436,20650,-25441,20644,-25446,20637,-25452,20631,-25457,20624,-25462,20618,-25467,20611,-25473,20605,-25478,20598,-25483,20592,-25488,20585,-25494,20579,-25499,20572,-25504,20566,-25509,20559,-25515,20553,-25520,20546,-25525,20540,-25530,20533,-25536,20527,-25541,20520,-25546,20513,-25551,20507,-25557,20500,-25562,20494,-25567,20487,-25572,20481,-25578,20474,-25583,20468,-25588,20461,-25593,20455,-25599,20448,-25604,20442,-25609,20435,-25614,20428,-25620,20422,-25625,20415,-25630,20409,-25635,20402,-25640,20396,-25646,20389,-25651,20383,-25656,20376,-25661,20369,-25666,20363,-25672,20356,-25677,20350,-25682,20343,-25687,20337,-25692,20330,-25698,20323,-25703,20317,-25708,20310,-25713,20304,-25718,20297,-25724,20291,-25729,20284,-25734,20277,-25739,20271,-25744,20264,-25750,20258,-25755,20251,-25760,20245,-25765,20238,-25770,20231,-25775,20225,-25781,20218,-25786,20212,-25791,20205,-25796,20198,-25801,20192,-25806,20185,-25812,20179,-25817,20172,-25822,20165,-25827,20159,-25832,20152,-25837,20146,-25843,20139,-25848,20132,-25853,20126,-25858,20119,-25863,20113,-25868,20106,-25873,20099,-25879,20093,-25884,20086,-25889,20079,-25894,20073,-25899,20066,-25904,20060,-25909,20053,-25914,20046,-25920,20040,-25925,20033,-25930,20026,-25935,20020,-25940,20013,-25945,20007,-25950,20000,-25955,19993,-25961,19987,-25966,19980,-25971,19973,-25976,19967,-25981,19960,-25986,19953,-25991,19947,-25996,19940,-26001,19933,-26007,19927,-26012,19920,-26017,19914,-26022,19907,-26027,19900,-26032,19894,-26037,19887,-26042,19880,-26047,19874,-26052,19867,-26057,19860,-26062,19854,-26068,19847,-26073,19840,-26078,19834,-26083,19827,-26088,19820,-26093,19814,-26098,19807,-26103,19800,-26108,19794,-26113,19787,-26118,19780,-26123,19774,-26128,19767,-26133,19760,-26138,19754,-26143,19747,-26149,19740,-26154,19733,-26159,19727,-26164,19720,-26169,19713,-26174,19707,-26179,19700,-26184,19693,-26189,19687,-26194,19680,-26199,19673,-26204,19667,-26209,19660,-26214,19653,-26219,19646,-26224,19640,-26229,19633,-26234,19626,-26239,19620,-26244,19613,-26249,19606,-26254,19599,-26259,19593,-26264,19586,-26269,19579,-26274,19573,-26279,19566,-26284,19559,-26289,19552,-26294,19546,-26299,19539,-26304,19532,-26309,19526,-26314,19519,-26319,19512,-26324,19505,-26329,19499,-26334,19492,-26339,19485,-26344,19478,-26349,19472,-26354,19465,-26359,19458,-26364,19451,-26369,19445,-26374,19438,-26379,19431,-26384,19424,-26389,19418,-26394,19411,-26399,19404,-26404,19397,-26409,19391,-26414,19384,-26419,19377,-26424,19370,-26429,19364,-26434,19357,-26438,19350,-26443,19343,-26448,19337,-26453,19330,-26458,19323,-26463,19316,-26468,19310,-26473,19303,-26478,19296,-26483,19289,-26488,19282,-26493,19276,-26498,19269,-26503,19262,-26508,19255,-26513,19249,-26517,19242,-26522,19235,-26527,19228,-26532,19221,-26537,19215,-26542,19208,-26547,19201,-26552,19194,-26557,19188,-26562,19181,-26567,19174,-26571,19167,-26576,19160,-26581,19154,-26586,19147,-26591,19140,-26596,19133,-26601,19126,-26606,19120,-26611,19113,-26616,19106,-26620,19099,-26625,19092,-26630,19086,-26635,19079,-26640,19072,-26645,19065,-26650,19058,-26655,19051,-26659,19045,-26664,19038,-26669,19031,-26674,19024,-26679,19017,-26684,19011,-26689,19004,-26693,18997,-26698,18990,-26703,18983,-26708,18976,-26713,18970,-26718,18963,-26723,18956,-26727,18949,-26732,18942,-26737,18935,-26742,18929,-26747,18922,-26752,18915,-26756,18908,-26761,18901,-26766,18894,-26771,18888,-26776,18881,-26781,18874,-26785,18867,-26790,18860,-26795,18853,-26800,18846,-26805,18840,-26810,18833,-26814,18826,-26819,18819,-26824,18812,-26829,18805,-26834,18798,-26838,18792,-26843,18785,-26848,18778,-26853,18771,-26858,18764,-26862,18757,-26867,18750,-26872,18744,-26877,18737,-26882,18730,-26886,18723,-26891,18716,-26896,18709,-26901,18702,-26906,18695,-26910,18689,-26915,18682,-26920,18675,-26925,18668,-26929,18661,-26934,18654,-26939,18647,-26944,18640,-26949,18633,-26953,18627,-26958,18620,-26963,18613,-26968,18606,-26972,18599,-26977,18592,-26982,18585,-26987,18578,-26991,18571,-26996,18564,-27001,18558,-27006,18551,-27010,18544,-27015,18537,-27020,18530,-27025,18523,-27029,18516,-27034,18509,-27039,18502,-27043,18495,-27048,18488,-27053,18482,-27058,18475,-27062,18468,-27067,18461,-27072,18454,-27077,18447,-27081,18440,-27086,18433,-27091,18426,-27095,18419,-27100,18412,-27105,18405,-27110,18398,-27114,18392,-27119,18385,-27124,18378,-27128,18371,-27133,18364,-27138,18357,-27142,18350,-27147,18343,-27152,18336,-27157,18329,-27161,18322,-27166,18315,-27171,18308,-27175,18301,-27180,18294,-27185,18287,-27189,18280,-27194,18273,-27199,18267,-27203,18260,-27208,18253,-27213,18246,-27217,18239,-27222,18232,-27227,18225,-27231,18218,-27236,18211,-27241,18204,-27245,18197,-27250,18190,-27255,18183,-27259,18176,-27264,18169,-27269,18162,-27273,18155,-27278,18148,-27282,18141,-27287,18134,-27292,18127,-27296,18120,-27301,18113,-27306,18106,-27310,18099,-27315,18092,-27320,18085,-27324,18078,-27329,18071,-27333,18064,-27338,18057,-27343,18050,-27347,18043,-27352,18036,-27356,18029,-27361,18022,-27366,18015,-27370,18008,-27375,18001,-27379,17994,-27384,17987,-27389,17980,-27393,17973,-27398,17966,-27402,17959,-27407,17952,-27412,17945,-27416,17938,-27421,17931,-27425,17924,-27430,17917,-27435,17910,-27439,17903,-27444,17896,-27448,17889,-27453,17882,-27457,17875,-27462,17868,-27467,17861,-27471,17854,-27476,17847,-27480,17840,-27485,17833,-27489,17826,-27494,17819,-27499,17812,-27503,17805,-27508,17798,-27512,17791,-27517,17784,-27521,17777,-27526,17770,-27530,17763,-27535,17756,-27539,17749,-27544,17742,-27549,17735,-27553,17727,-27558,17720,-27562,17713,-27567,17706,-27571,17699,-27576,17692,-27580,17685,-27585,17678,-27589,17671,-27594,17664,-27598,17657,-27603,17650,-27607,17643,-27612,17636,-27616,17629,-27621,17622,-27625,17615,-27630,17608,-27634,17600,-27639,17593,-27643,17586,-27648,17579,-27652,17572,-27657,17565,-27661,17558,-27666,17551,-27670,17544,-27675,17537,-27679,17530,-27684,17523,-27688,17516,-27693,17509,-27697,17501,-27702,17494,-27706,17487,-27711,17480,-27715,17473,-27720,17466,-27724,17459,-27729,17452,-27733,17445,-27737,17438,-27742,17431,-27746,17423,-27751,17416,-27755,17409,-27760,17402,-27764,17395,-27769,17388,-27773,17381,-27778,17374,-27782,17367,-27786,17360,-27791,17352,-27795,17345,-27800,17338,-27804,17331,-27809,17324,-27813,17317,-27817,17310,-27822,17303,-27826,17296,-27831,17288,-27835,17281,-27840,17274,-27844,17267,-27848,17260,-27853,17253,-27857,17246,-27862,17239,-27866,17232,-27870,17224,-27875,17217,-27879,17210,-27884,17203,-27888,17196,-27892,17189,-27897,17182,-27901,17174,-27906,17167,-27910,17160,-27914,17153,-27919,17146,-27923,17139,-27928,17132,-27932,17124,-27936,17117,-27941,17110,-27945,17103,-27949,17096,-27954,17089,-27958,17082,-27963,17074,-27967,17067,-27971,17060,-27976,17053,-27980,17046,-27984,17039,-27989,17032,-27993,17024,-27997,17017,-28002,17010,-28006,17003,-28010,16996,-28015,16989,-28019,16981,-28024,16974,-28028,16967,-28032,16960,-28037,16953,-28041,16946,-28045,16938,-28050,16931,-28054,16924,-28058,16917,-28063,16910,-28067,16903,-28071,16895,-28076,16888,-28080,16881,-28084,16874,-28088,16867,-28093,16859,-28097,16852,-28101,16845,-28106,16838,-28110,16831,-28114,16824,-28119,16816,-28123,16809,-28127,16802,-28132,16795,-28136,16788,-28140,16780,-28144,16773,-28149,16766,-28153,16759,-28157,16752,-28162,16744,-28166,16737,-28170,16730,-28174,16723,-28179,16716,-28183,16708,-28187,16701,-28191,16694,-28196,16687,-28200,16680,-28204,16672,-28209,16665,-28213,16658,-28217,16651,-28221,16643,-28226,16636,-28230,16629,-28234,16622,-28238,16615,-28243,16607,-28247,16600,-28251,16593,-28255,16586,-28260,16578,-28264,16571,-28268,16564,-28272,16557,-28276,16550,-28281,16542,-28285,16535,-28289,16528,-28293,16521,-28298,16513,-28302,16506,-28306,16499,-28310,16492,-28315,16484,-28319,16477,-28323,16470,-28327,16463,-28331,16455,-28336,16448,-28340,16441,-28344,16434,-28348,16427,-28352,16419,-28357,16412,-28361,16405,-28365,16398,-28369,16390,-28373,16383,-28378,16376,-28382,16368,-28386,16361,-28390,16354,-28394,16347,-28398,16339,-28403,16332,-28407,16325,-28411,16318,-28415,16310,-28419,16303,-28424,16296,-28428,16289,-28432,16281,-28436,16274,-28440,16267,-28444,16260,-28448,16252,-28453,16245,-28457,16238,-28461,16230,-28465,16223,-28469,16216,-28473,16209,-28478,16201,-28482,16194,-28486,16187,-28490,16179,-28494,16172,-28498,16165,-28502,16158,-28507,16150,-28511,16143,-28515,16136,-28519,16128,-28523,16121,-28527,16114,-28531,16107,-28535,16099,-28539,16092,-28544,16085,-28548,16077,-28552,16070,-28556,16063,-28560,16055,-28564,16048,-28568,16041,-28572,16034,-28576,16026,-28581,16019,-28585,16012,-28589,16004,-28593,15997,-28597,15990,-28601,15982,-28605,15975,-28609,15968,-28613,15960,-28617,15953,-28621,15946,-28626,15938,-28630,15931,-28634,15924,-28638,15917,-28642,15909,-28646,15902,-28650,15895,-28654,15887,-28658,15880,-28662,15873,-28666,15865,-28670,15858,-28674,15851,-28678,15843,-28682,15836,-28686,15829,-28691,15821,-28695,15814,-28699,15807,-28703,15799,-28707,15792,-28711,15785,-28715,15777,-28719,15770,-28723,15763,-28727,15755,-28731,15748,-28735,15740,-28739,15733,-28743,15726,-28747,15718,-28751,15711,-28755,15704,-28759,15696,-28763,15689,-28767,15682,-28771,15674,-28775,15667,-28779,15660,-28783,15652,-28787,15645,-28791,15638,-28795,15630,-28799,15623,-28803,15615,-28807,15608,-28811,15601,-28815,15593,-28819,15586,-28823,15579,-28827,15571,-28831,15564,-28835,15556,-28839,15549,-28843,15542,-28847,15534,-28851,15527,-28855,15520,-28859,15512,-28863,15505,-28867,15497,-28871,15490,-28875,15483,-28879,15475,-28883,15468,-28887,15461,-28891,15453,-28894,15446,-28898,15438,-28902,15431,-28906,15424,-28910,15416,-28914,15409,-28918,15401,-28922,15394,-28926,15387,-28930,15379,-28934,15372,-28938,15364,-28942,15357,-28946,15350,-28950,15342,-28954,15335,-28957,15327,-28961,15320,-28965,15313,-28969,15305,-28973,15298,-28977,15290,-28981,15283,-28985,15276,-28989,15268,-28993,15261,-28997,15253,-29000,15246,-29004,15238,-29008,15231,-29012,15224,-29016,15216,-29020,15209,-29024,15201,-29028,15194,-29032,15187,-29035,15179,-29039,15172,-29043,15164,-29047,15157,-29051,15149,-29055,15142,-29059,15135,-29063,15127,-29066,15120,-29070,15112,-29074,15105,-29078,15097,-29082,15090,-29086,15083,-29090,15075,-29093,15068,-29097,15060,-29101,15053,-29105,15045,-29109,15038,-29113,15030,-29117,15023,-29120,15016,-29124,15008,-29128,15001,-29132,14993,-29136,14986,-29140,14978,-29143,14971,-29147,14963,-29151,14956,-29155,14949,-29159,14941,-29163,14934,-29166,14926,-29170,14919,-29174,14911,-29178,14904,-29182,14896,-29185,14889,-29189,14881,-29193,14874,-29197,14866,-29201,14859,-29204,14852,-29208,14844,-29212,14837,-29216,14829,-29220,14822,-29223,14814,-29227,14807,-29231,14799,-29235,14792,-29239,14784,-29242,14777,-29246,14769,-29250,14762,-29254,14754,-29257,14747,-29261,14739,-29265,14732,-29269,14724,-29273,14717,-29276,14709,-29280,14702,-29284,14694,-29288,14687,-29291,14680,-29295,14672,-29299,14665,-29303,14657,-29306,14650,-29310,14642,-29314,14635,-29318,14627,-29321,14620,-29325,14612,-29329,14605,-29333,14597,-29336,14590,-29340,14582,-29344,14575,-29347,14567,-29351,14560,-29355,14552,-29359,14545,-29362,14537,-29366,14530,-29370,14522,-29373,14515,-29377,14507,-29381,14499,-29385,14492,-29388,14484,-29392,14477,-29396,14469,-29399,14462,-29403,14454,-29407,14447,-29411,14439,-29414,14432,-29418,14424,-29422,14417,-29425,14409,-29429,14402,-29433,14394,-29436,14387,-29440,14379,-29444,14372,-29447,14364,-29451,14357,-29455,14349,-29458,14342,-29462,14334,-29466,14326,-29469,14319,-29473,14311,-29477,14304,-29480,14296,-29484,14289,-29488,14281,-29491,14274,-29495,14266,-29499,14259,-29502,14251,-29506,14244,-29510,14236,-29513,14228,-29517,14221,-29520,14213,-29524,14206,-29528,14198,-29531,14191,-29535,14183,-29539,14176,-29542,14168,-29546,14160,-29549,14153,-29553,14145,-29557,14138,-29560,14130,-29564,14123,-29568,14115,-29571,14108,-29575,14100,-29578,14092,-29582,14085,-29586,14077,-29589,14070,-29593,14062,-29596,14055,-29600,14047,-29604,14039,-29607,14032,-29611,14024,-29614,14017,-29618,14009,-29622,14002,-29625,13994,-29629,13986,-29632,13979,-29636,13971,-29639,13964,-29643,13956,-29647,13949,-29650,13941,-29654,13933,-29657,13926,-29661,13918,-29664,13911,-29668,13903,-29671,13895,-29675,13888,-29679,13880,-29682,13873,-29686,13865,-29689,13858,-29693,13850,-29696,13842,-29700,13835,-29703,13827,-29707,13820,-29710,13812,-29714,13804,-29718,13797,-29721,13789,-29725,13782,-29728,13774,-29732,13766,-29735,13759,-29739,13751,-29742,13744,-29746,13736,-29749,13728,-29753,13721,-29756,13713,-29760,13706,-29763,13698,-29767,13690,-29770,13683,-29774,13675,-29777,13667,-29781,13660,-29784,13652,-29788,13645,-29791,13637,-29795,13629,-29798,13622,-29802,13614,-29805,13607,-29809,13599,-29812,13591,-29816,13584,-29819,13576,-29823,13568,-29826,13561,-29829,13553,-29833,13546,-29836,13538,-29840,13530,-29843,13523,-29847,13515,-29850,13507,-29854,13500,-29857,13492,-29861,13485,-29864,13477,-29867,13469,-29871,13462,-29874,13454,-29878,13446,-29881,13439,-29885,13431,-29888,13423,-29892,13416,-29895,13408,-29898,13400,-29902,13393,-29905,13385,-29909,13378,-29912,13370,-29916,13362,-29919,13355,-29922,13347,-29926,13339,-29929,13332,-29933,13324,-29936,13316,-29939,13309,-29943,13301,-29946,13293,-29950,13286,-29953,13278,-29956,13270,-29960,13263,-29963,13255,-29967,13247,-29970,13240,-29973,13232,-29977,13224,-29980,13217,-29984,13209,-29987,13201,-29990,13194,-29994,13186,-29997,13178,-30000,13171,-30004,13163,-30007,13155,-30010,13148,-30014,13140,-30017,13132,-30021,13125,-30024,13117,-30027,13109,-30031,13102,-30034,13094,-30037,13086,-30041,13079,-30044,13071,-30047,13063,-30051,13056,-30054,13048,-30057,13040,-30061,13033,-30064,13025,-30067,13017,-30071,13009,-30074,13002,-30077,12994,-30081,12986,-30084,12979,-30087,12971,-30091,12963,-30094,12956,-30097,12948,-30101,12940,-30104,12933,-30107,12925,-30110,12917,-30114,12909,-30117,12902,-30120,12894,-30124,12886,-30127,12879,-30130,12871,-30134,12863,-30137,12856,-30140,12848,-30143,12840,-30147,12832,-30150,12825,-30153,12817,-30157,12809,-30160,12802,-30163,12794,-30166,12786,-30170,12778,-30173,12771,-30176,12763,-30179,12755,-30183,12748,-30186,12740,-30189,12732,-30192,12724,-30196,12717,-30199,12709,-30202,12701,-30206,12694,-30209,12686,-30212,12678,-30215,12670,-30218,12663,-30222,12655,-30225,12647,-30228,12639,-30231,12632,-30235,12624,-30238,12616,-30241,12609,-30244,12601,-30248,12593,-30251,12585,-30254,12578,-30257,12570,-30260,12562,-30264,12554,-30267,12547,-30270,12539,-30273,12531,-30276,12523,-30280,12516,-30283,12508,-30286,12500,-30289,12492,-30292,12485,-30296,12477,-30299,12469,-30302,12461,-30305,12454,-30308,12446,-30312,12438,-30315,12430,-30318,12423,-30321,12415,-30324,12407,-30327,12399,-30331,12392,-30334,12384,-30337,12376,-30340,12368,-30343,12361,-30346,12353,-30350,12345,-30353,12337,-30356,12330,-30359,12322,-30362,12314,-30365,12306,-30369,12299,-30372,12291,-30375,12283,-30378,12275,-30381,12268,-30384,12260,-30387,12252,-30391,12244,-30394,12236,-30397,12229,-30400,12221,-30403,12213,-30406,12205,-30409,12198,-30412,12190,-30416,12182,-30419,12174,-30422,12166,-30425,12159,-30428,12151,-30431,12143,-30434,12135,-30437,12128,-30440,12120,-30443,12112,-30447,12104,-30450,12096,-30453,12089,-30456,12081,-30459,12073,-30462,12065,-30465,12057,-30468,12050,-30471,12042,-30474,12034,-30477,12026,-30481,12019,-30484,12011,-30487,12003,-30490,11995,-30493,11987,-30496,11980,-30499,11972,-30502,11964,-30505,11956,-30508,11948,-30511,11941,-30514,11933,-30517,11925,-30520,11917,-30523,11909,-30526,11902,-30529,11894,-30533,11886,-30536,11878,-30539,11870,-30542,11862,-30545,11855,-30548,11847,-30551,11839,-30554,11831,-30557,11823,-30560,11816,-30563,11808,-30566,11800,-30569,11792,-30572,11784,-30575,11777,-30578,11769,-30581,11761,-30584,11753,-30587,11745,-30590,11737,-30593,11730,-30596,11722,-30599,11714,-30602,11706,-30605,11698,-30608,11691,-30611,11683,-30614,11675,-30617,11667,-30620,11659,-30623,11651,-30626,11644,-30629,11636,-30632,11628,-30635,11620,-30638,11612,-30641,11604,-30644,11597,-30647,11589,-30650,11581,-30653,11573,-30656,11565,-30658,11557,-30661,11550,-30664,11542,-30667,11534,-30670,11526,-30673,11518,-30676,11510,-30679,11502,-30682,11495,-30685,11487,-30688,11479,-30691,11471,-30694,11463,-30697,11455,-30700,11448,-30703,11440,-30706,11432,-30708,11424,-30711,11416,-30714,11408,-30717,11400,-30720,11393,-30723,11385,-30726,11377,-30729,11369,-30732,11361,-30735,11353,-30738,11345,-30740,11338,-30743,11330,-30746,11322,-30749,11314,-30752,11306,-30755,11298,-30758,11290,-30761,11283,-30764,11275,-30767,11267,-30769,11259,-30772,11251,-30775,11243,-30778,11235,-30781,11227,-30784,11220,-30787,11212,-30789,11204,-30792,11196,-30795,11188,-30798,11180,-30801,11172,-30804,11164,-30807,11157,-30810,11149,-30812,11141,-30815,11133,-30818,11125,-30821,11117,-30824,11109,-30827,11101,-30829,11094,-30832,11086,-30835,11078,-30838,11070,-30841,11062,-30844,11054,-30846,11046,-30849,11038,-30852,11030,-30855,11023,-30858,11015,-30861,11007,-30863,10999,-30866,10991,-30869,10983,-30872,10975,-30875,10967,-30877,10959,-30880,10952,-30883,10944,-30886,10936,-30889,10928,-30891,10920,-30894,10912,-30897,10904,-30900,10896,-30903,10888,-30905,10880,-30908,10873,-30911,10865,-30914,10857,-30916,10849,-30919,10841,-30922,10833,-30925,10825,-30928,10817,-30930,10809,-30933,10801,-30936,10794,-30939,10786,-30941,10778,-30944,10770,-30947,10762,-30950,10754,-30952,10746,-30955,10738,-30958,10730,-30961,10722,-30963,10714,-30966,10706,-30969,10699,-30972,10691,-30974,10683,-30977,10675,-30980,10667,-30982,10659,-30985,10651,-30988,10643,-30991,10635,-30993,10627,-30996,10619,-30999,10611,-31002,10603,-31004,10596,-31007,10588,-31010,10580,-31012,10572,-31015,10564,-31018,10556,-31020,10548,-31023,10540,-31026,10532,-31029,10524,-31031,10516,-31034,10508,-31037,10500,-31039,10492,-31042,10484,-31045,10477,-31047,10469,-31050,10461,-31053,10453,-31055,10445,-31058,10437,-31061,10429,-31063,10421,-31066,10413,-31069,10405,-31071,10397,-31074,10389,-31077,10381,-31079,10373,-31082,10365,-31085,10357,-31087,10349,-31090,10342,-31093,10334,-31095,10326,-31098,10318,-31101,10310,-31103,10302,-31106,10294,-31108,10286,-31111,10278,-31114,10270,-31116,10262,-31119,10254,-31122,10246,-31124,10238,-31127,10230,-31129,10222,-31132,10214,-31135,10206,-31137,10198,-31140,10190,-31142,10182,-31145,10174,-31148,10166,-31150,10159,-31153,10151,-31155,10143,-31158,10135,-31161,10127,-31163,10119,-31166,10111,-31168,10103,-31171,10095,-31174,10087,-31176,10079,-31179,10071,-31181,10063,-31184,10055,-31186,10047,-31189,10039,-31192,10031,-31194,10023,-31197,10015,-31199,10007,-31202,9999,-31204,9991,-31207,9983,-31210,9975,-31212,9967,-31215,9959,-31217,9951,-31220,9943,-31222,9935,-31225,9927,-31227,9919,-31230,9911,-31232,9903,-31235,9895,-31237,9887,-31240,9879,-31243,9871,-31245,9863,-31248,9855,-31250,9847,-31253,9839,-31255,9831,-31258,9823,-31260,9815,-31263,9807,-31265,9799,-31268,9791,-31270,9783,-31273,9775,-31275,9767,-31278,9759,-31280,9751,-31283,9743,-31285,9735,-31288,9727,-31290,9719,-31293,9711,-31295,9703,-31298,9695,-31300,9687,-31303,9679,-31305,9671,-31308,9663,-31310,9655,-31312,9647,-31315,9639,-31317,9631,-31320,9623,-31322,9615,-31325,9607,-31327,9599,-31330,9591,-31332,9583,-31335,9575,-31337,9567,-31339,9559,-31342,9551,-31344,9543,-31347,9535,-31349,9527,-31352,9519,-31354,9511,-31357,9503,-31359,9495,-31361,9487,-31364,9479,-31366,9471,-31369,9463,-31371,9455,-31374,9447,-31376,9439,-31378,9431,-31381,9423,-31383,9415,-31386,9407,-31388,9399,-31390,9391,-31393,9383,-31395,9375,-31398,9367,-31400,9359,-31402,9351,-31405,9343,-31407,9335,-31410,9327,-31412,9319,-31414,9311,-31417,9303,-31419,9295,-31421,9287,-31424,9279,-31426,9270,-31429,9262,-31431,9254,-31433,9246,-31436,9238,-31438,9230,-31440,9222,-31443,9214,-31445,9206,-31447,9198,-31450,9190,-31452,9182,-31455,9174,-31457,9166,-31459,9158,-31462,9150,-31464,9142,-31466,9134,-31469,9126,-31471,9118,-31473,9110,-31476,9102,-31478,9094,-31480,9086,-31483,9077,-31485,9069,-31487,9061,-31490,9053,-31492,9045,-31494,9037,-31496,9029,-31499,9021,-31501,9013,-31503,9005,-31506,8997,-31508,8989,-31510,8981,-31513,8973,-31515,8965,-31517,8957,-31519,8949,-31522,8941,-31524,8932,-31526,8924,-31529,8916,-31531,8908,-31533,8900,-31535,8892,-31538,8884,-31540,8876,-31542,8868,-31545,8860,-31547,8852,-31549,8844,-31551,8836,-31554,8828,-31556,8820,-31558,8812,-31560,8803,-31563,8795,-31565,8787,-31567,8779,-31569,8771,-31572,8763,-31574,8755,-31576,8747,-31578,8739,-31581,8731,-31583,8723,-31585,8715,-31587,8707,-31589,8699,-31592,8690,-31594,8682,-31596,8674,-31598,8666,-31601,8658,-31603,8650,-31605,8642,-31607,8634,-31609,8626,-31612,8618,-31614,8610,-31616,8602,-31618,8593,-31620,8585,-31623,8577,-31625,8569,-31627,8561,-31629,8553,-31631,8545,-31634,8537,-31636,8529,-31638,8521,-31640,8513,-31642,8504,-31644,8496,-31647,8488,-31649,8480,-31651,8472,-31653,8464,-31655,8456,-31657,8448,-31660,8440,-31662,8432,-31664,8424,-31666,8415,-31668,8407,-31670,8399,-31673,8391,-31675,8383,-31677,8375,-31679,8367,-31681,8359,-31683,8351,-31685,8343,-31688,8334,-31690,8326,-31692,8318,-31694,8310,-31696,8302,-31698,8294,-31700,8286,-31702,8278,-31705,8270,-31707,8262,-31709,8253,-31711,8245,-31713,8237,-31715,8229,-31717,8221,-31719,8213,-31721,8205,-31724,8197,-31726,8189,-31728,8180,-31730,8172,-31732,8164,-31734,8156,-31736,8148,-31738,8140,-31740,8132,-31742,8124,-31744,8116,-31746,8107,-31749,8099,-31751,8091,-31753,8083,-31755,8075,-31757,8067,-31759,8059,-31761,8051,-31763,8042,-31765,8034,-31767,8026,-31769,8018,-31771,8010,-31773,8002,-31775,7994,-31777,7986,-31779,7977,-31781,7969,-31783,7961,-31786,7953,-31788,7945,-31790,7937,-31792,7929,-31794,7921,-31796,7912,-31798,7904,-31800,7896,-31802,7888,-31804,7880,-31806,7872,-31808,7864,-31810,7856,-31812,7847,-31814,7839,-31816,7831,-31818,7823,-31820,7815,-31822,7807,-31824,7799,-31826,7790,-31828,7782,-31830,7774,-31832,7766,-31834,7758,-31836,7750,-31838,7742,-31840,7733,-31842,7725,-31844,7717,-31846,7709,-31848,7701,-31850,7693,-31852,7685,-31854,7676,-31855,7668,-31857,7660,-31859,7652,-31861,7644,-31863,7636,-31865,7628,-31867,7619,-31869,7611,-31871,7603,-31873,7595,-31875,7587,-31877,7579,-31879,7571,-31881,7562,-31883,7554,-31885,7546,-31887,7538,-31889,7530,-31890,7522,-31892,7514,-31894,7505,-31896,7497,-31898,7489,-31900,7481,-31902,7473,-31904,7465,-31906,7456,-31908,7448,-31910,7440,-31912,7432,-31913,7424,-31915,7416,-31917,7407,-31919,7399,-31921,7391,-31923,7383,-31925,7375,-31927,7367,-31929,7358,-31930,7350,-31932,7342,-31934,7334,-31936,7326,-31938,7318,-31940,7310,-31942,7301,-31944,7293,-31945,7285,-31947,7277,-31949,7269,-31951,7261,-31953,7252,-31955,7244,-31957,7236,-31958,7228,-31960,7220,-31962,7211,-31964,7203,-31966,7195,-31968,7187,-31969,7179,-31971,7171,-31973,7162,-31975,7154,-31977,7146,-31979,7138,-31980,7130,-31982,7122,-31984,7113,-31986,7105,-31988,7097,-31990,7089,-31991,7081,-31993,7072,-31995,7064,-31997,7056,-31999,7048,-32000,7040,-32002,7032,-32004,7023,-32006,7015,-32008,7007,-32009,6999,-32011,6991,-32013,6982,-32015,6974,-32017,6966,-32018,6958,-32020,6950,-32022,6942,-32024,6933,-32025,6925,-32027,6917,-32029,6909,-32031,6901,-32033,6892,-32034,6884,-32036,6876,-32038,6868,-32040,6860,-32041,6851,-32043,6843,-32045,6835,-32047,6827,-32048,6819,-32050,6811,-32052,6802,-32054,6794,-32055,6786,-32057,6778,-32059,6770,-32060,6761,-32062,6753,-32064,6745,-32066,6737,-32067,6729,-32069,6720,-32071,6712,-32073,6704,-32074,6696,-32076,6688,-32078,6679,-32079,6671,-32081,6663,-32083,6655,-32085,6647,-32086,6638,-32088,6630,-32090,6622,-32091,6614,-32093,6606,-32095,6597,-32096,6589,-32098,6581,-32100,6573,-32101,6564,-32103,6556,-32105,6548,-32106,6540,-32108,6532,-32110,6523,-32111,6515,-32113,6507,-32115,6499,-32116,6491,-32118,6482,-32120,6474,-32121,6466,-32123,6458,-32125,6450,-32126,6441,-32128,6433,-32130,6425,-32131,6417,-32133,6408,-32135,6400,-32136,6392,-32138,6384,-32140,6376,-32141,6367,-32143,6359,-32144,6351,-32146,6343,-32148,6334,-32149,6326,-32151,6318,-32153,6310,-32154,6302,-32156,6293,-32157,6285,-32159,6277,-32161,6269,-32162,6261,-32164,6252,-32165,6244,-32167,6236,-32169,6228,-32170,6219,-32172,6211,-32173,6203,-32175,6195,-32177,6186,-32178,6178,-32180,6170,-32181,6162,-32183,6154,-32184,6145,-32186,6137,-32188,6129,-32189,6121,-32191,6112,-32192,6104,-32194,6096,-32195,6088,-32197,6080,-32198,6071,-32200,6063,-32202,6055,-32203,6047,-32205,6038,-32206,6030,-32208,6022,-32209,6014,-32211,6005,-32212,5997,-32214,5989,-32215,5981,-32217,5972,-32219,5964,-32220,5956,-32222,5948,-32223,5940,-32225,5931,-32226,5923,-32228,5915,-32229,5907,-32231,5898,-32232,5890,-32234,5882,-32235,5874,-32237,5865,-32238,5857,-32240,5849,-32241,5841,-32243,5832,-32244,5824,-32246,5816,-32247,5808,-32249,5799,-32250,5791,-32252,5783,-32253,5775,-32255,5766,-32256,5758,-32257,5750,-32259,5742,-32260,5733,-32262,5725,-32263,5717,-32265,5709,-32266,5700,-32268,5692,-32269,5684,-32271,5676,-32272,5667,-32274,5659,-32275,5651,-32276,5643,-32278,5634,-32279,5626,-32281,5618,-32282,5610,-32284,5601,-32285,5593,-32287,5585,-32288,5577,-32289,5568,-32291,5560,-32292,5552,-32294,5544,-32295,5535,-32296,5527,-32298,5519,-32299,5511,-32301,5502,-32302,5494,-32304,5486,-32305,5478,-32306,5469,-32308,5461,-32309,5453,-32311,5445,-32312,5436,-32313,5428,-32315,5420,-32316,5411,-32317,5403,-32319,5395,-32320,5387,-32322,5378,-32323,5370,-32324,5362,-32326,5354,-32327,5345,-32328,5337,-32330,5329,-32331,5321,-32333,5312,-32334,5304,-32335,5296,-32337,5287,-32338,5279,-32339,5271,-32341,5263,-32342,5254,-32343,5246,-32345,5238,-32346,5230,-32347,5221,-32349,5213,-32350,5205,-32351,5197,-32353,5188,-32354,5180,-32355,5172,-32357,5163,-32358,5155,-32359,5147,-32361,5139,-32362,5130,-32363,5122,-32365,5114,-32366,5106,-32367,5097,-32369,5089,-32370,5081,-32371,5072,-32372,5064,-32374,5056,-32375,5048,-32376,5039,-32378,5031,-32379,5023,-32380,5014,-32381,5006,-32383,4998,-32384,4990,-32385,4981,-32387,4973,-32388,4965,-32389,4957,-32390,4948,-32392,4940,-32393,4932,-32394,4923,-32395,4915,-32397,4907,-32398,4899,-32399,4890,-32400,4882,-32402,4874,-32403,4865,-32404,4857,-32405,4849,-32407,4841,-32408,4832,-32409,4824,-32410,4816,-32412,4807,-32413,4799,-32414,4791,-32415,4783,-32417,4774,-32418,4766,-32419,4758,-32420,4749,-32421,4741,-32423,4733,-32424,4725,-32425,4716,-32426,4708,-32427,4700,-32429,4691,-32430,4683,-32431,4675,-32432,4666,-32433,4658,-32435,4650,-32436,4642,-32437,4633,-32438,4625,-32439,4617,-32441,4608,-32442,4600,-32443,4592,-32444,4584,-32445,4575,-32446,4567,-32448,4559,-32449,4550,-32450,4542,-32451,4534,-32452,4525,-32453,4517,-32455,4509,-32456,4501,-32457,4492,-32458,4484,-32459,4476,-32460,4467,-32461,4459,-32463,4451,-32464,4443,-32465,4434,-32466,4426,-32467,4418,-32468,4409,-32469,4401,-32471,4393,-32472,4384,-32473,4376,-32474,4368,-32475,4359,-32476,4351,-32477,4343,-32478,4335,-32479,4326,-32481,4318,-32482,4310,-32483,4301,-32484,4293,-32485,4285,-32486,4276,-32487,4268,-32488,4260,-32489,4252,-32490,4243,-32492,4235,-32493,4227,-32494,4218,-32495,4210,-32496,4202,-32497,4193,-32498,4185,-32499,4177,-32500,4168,-32501,4160,-32502,4152,-32503,4144,-32504,4135,-32505,4127,-32507,4119,-32508,4110,-32509,4102,-32510,4094,-32511,4085,-32512,4077,-32513,4069,-32514,4060,-32515,4052,-32516,4044,-32517,4035,-32518,4027,-32519,4019,-32520,4011,-32521,4002,-32522,3994,-32523,3986,-32524,3977,-32525,3969,-32526,3961,-32527,3952,-32528,3944,-32529,3936,-32530,3927,-32531,3919,-32532,3911,-32533,3902,-32534,3894,-32535,3886,-32536,3877,-32537,3869,-32538,3861,-32539,3853,-32540,3844,-32541,3836,-32542,3828,-32543,3819,-32544,3811,-32545,3803,-32546,3794,-32547,3786,-32548,3778,-32549,3769,-32550,3761,-32551,3753,-32552,3744,-32553,3736,-32554,3728,-32555,3719,-32556,3711,-32557,3703,-32558,3694,-32559,3686,-32559,3678,-32560,3669,-32561,3661,-32562,3653,-32563,3644,-32564,3636,-32565,3628,-32566,3619,-32567,3611,-32568,3603,-32569,3594,-32570,3586,-32571,3578,-32572,3570,-32572,3561,-32573,3553,-32574,3545,-32575,3536,-32576,3528,-32577,3520,-32578,3511,-32579,3503,-32580,3495,-32581,3486,-32581,3478,-32582,3470,-32583,3461,-32584,3453,-32585,3445,-32586,3436,-32587,3428,-32588,3420,-32589,3411,-32589,3403,-32590,3395,-32591,3386,-32592,3378,-32593,3370,-32594,3361,-32595,3353,-32595,3345,-32596,3336,-32597,3328,-32598,3320,-32599,3311,-32600,3303,-32601,3295,-32601,3286,-32602,3278,-32603,3270,-32604,3261,-32605,3253,-32606,3245,-32606,3236,-32607,3228,-32608,3220,-32609,3211,-32610,3203,-32611,3195,-32611,3186,-32612,3178,-32613,3170,-32614,3161,-32615,3153,-32615,3145,-32616,3136,-32617,3128,-32618,3120,-32619,3111,-32619,3103,-32620,3094,-32621,3086,-32622,3078,-32623,3069,-32623,3061,-32624,3053,-32625,3044,-32626,3036,-32626,3028,-32627,3019,-32628,3011,-32629,3003,-32630,2994,-32630,2986,-32631,2978,-32632,2969,-32633,2961,-32633,2953,-32634,2944,-32635,2936,-32636,2928,-32636,2919,-32637,2911,-32638,2903,-32639,2894,-32639,2886,-32640,2878,-32641,2869,-32642,2861,-32642,2853,-32643,2844,-32644,2836,-32645,2828,-32645,2819,-32646,2811,-32647,2802,-32647,2794,-32648,2786,-32649,2777,-32650,2769,-32650,2761,-32651,2752,-32652,2744,-32652,2736,-32653,2727,-32654,2719,-32654,2711,-32655,2702,-32656,2694,-32657,2686,-32657,2677,-32658,2669,-32659,2661,-32659,2652,-32660,2644,-32661,2636,-32661,2627,-32662,2619,-32663,2610,-32663,2602,-32664,2594,-32665,2585,-32665,2577,-32666,2569,-32667,2560,-32667,2552,-32668,2544,-32669,2535,-32669,2527,-32670,2519,-32671,2510,-32671,2502,-32672,2494,-32672,2485,-32673,2477,-32674,2468,-32674,2460,-32675,2452,-32676,2443,-32676,2435,-32677,2427,-32677,2418,-32678,2410,-32679,2402,-32679,2393,-32680,2385,-32681,2377,-32681,2368,-32682,2360,-32682,2352,-32683,2343,-32684,2335,-32684,2326,-32685,2318,-32685,2310,-32686,2301,-32687,2293,-32687,2285,-32688,2276,-32688,2268,-32689,2260,-32689,2251,-32690,2243,-32691,2235,-32691,2226,-32692,2218,-32692,2209,-32693,2201,-32693,2193,-32694,2184,-32695,2176,-32695,2168,-32696,2159,-32696,2151,-32697,2143,-32697,2134,-32698,2126,-32698,2117,-32699,2109,-32700,2101,-32700,2092,-32701,2084,-32701,2076,-32702,2067,-32702,2059,-32703,2051,-32703,2042,-32704,2034,-32704,2026,-32705,2017,-32705,2009,-32706,2000,-32706,1992,-32707,1984,-32707,1975,-32708,1967,-32708,1959,-32709,1950,-32709,1942,-32710,1934,-32710,1925,-32711,1917,-32711,1908,-32712,1900,-32712,1892,-32713,1883,-32713,1875,-32714,1867,-32714,1858,-32715,1850,-32715,1842,-32716,1833,-32716,1825,-32717,1816,-32717,1808,-32718,1800,-32718,1791,-32718,1783,-32719,1775,-32719,1766,-32720,1758,-32720,1750,-32721,1741,-32721,1733,-32722,1724,-32722,1716,-32723,1708,-32723,1699,-32723,1691,-32724,1683,-32724,1674,-32725,1666,-32725,1658,-32726,1649,-32726,1641,-32726,1632,-32727,1624,-32727,1616,-32728,1607,-32728,1599,-32728,1591,-32729,1582,-32729,1574,-32730,1565,-32730,1557,-32730,1549,-32731,1540,-32731,1532,-32732,1524,-32732,1515,-32732,1507,-32733,1499,-32733,1490,-32734,1482,-32734,1473,-32734,1465,-32735,1457,-32735,1448,-32735,1440,-32736,1432,-32736,1423,-32737,1415,-32737,1406,-32737,1398,-32738,1390,-32738,1381,-32738,1373,-32739,1365,-32739,1356,-32739,1348,-32740,1339,-32740,1331,-32740,1323,-32741,1314,-32741,1306,-32741,1298,-32742,1289,-32742,1281,-32742,1273,-32743,1264,-32743,1256,-32743,1247,-32744,1239,-32744,1231,-32744,1222,-32745,1214,-32745,1206,-32745,1197,-32746,1189,-32746,1180,-32746,1172,-32747,1164,-32747,1155,-32747,1147,-32747,1139,-32748,1130,-32748,1122,-32748,1113,-32749,1105,-32749,1097,-32749,1088,-32749,1080,-32750,1072,-32750,1063,-32750,1055,-32751,1046,-32751,1038,-32751,1030,-32751,1021,-32752,1013,-32752,1005,-32752,996,-32752,988,-32753,980,-32753,971,-32753,963,-32753,954,-32754,946,-32754,938,-32754,929,-32754,921,-32755,913,-32755,904,-32755,896,-32755,887,-32755,879,-32756,871,-32756,862,-32756,854,-32756,846,-32757,837,-32757,829,-32757,820,-32757,812,-32757,804,-32758,795,-32758,787,-32758,779,-32758,770,-32758,762,-32759,753,-32759,745,-32759,737,-32759,728,-32759,720,-32760,712,-32760,703,-32760,695,-32760,686,-32760,678,-32760,670,-32761,661,-32761,653,-32761,645,-32761,636,-32761,628,-32761,619,-32762,611,-32762,603,-32762,594,-32762,586,-32762,578,-32762,569,-32763,561,-32763,552,-32763,544,-32763,536,-32763,527,-32763,519,-32763,510,-32764,502,-32764,494,-32764,485,-32764,477,-32764,469,-32764,460,-32764,452,-32764,443,-32764,435,-32765,427,-32765,418,-32765,410,-32765,402,-32765,393,-32765,385,-32765,376,-32765,368,-32765,360,-32766,351,-32766,343,-32766,335,-32766,326,-32766,318,-32766,309,-32766,301,-32766,293,-32766,284,-32766,276,-32766,268,-32766,259,-32766,251,-32767,242,-32767,234,-32767,226,-32767,217,-32767,209,-32767,201,-32767,192,-32767,184,-32767,175,-32767,167,-32767,159,-32767,150,-32767,142,-32767,134,-32767,125,-32767,117,-32767,108,-32767,100,-32767,92,-32767,83,-32767,75,-32767,67,-32767,58,-32767,50,-32767,41,-32767,33,-32767,25,-32767,16,-32767,8,-32767,0,-32767,-9,-32767,-17,-32767,-26,-32767,-34,-32767,-42,-32767,-51,-32767,-59,-32767,-68,-32767,-76,-32767,-84,-32767,-93,-32767,-101,-32767,-109,-32767,-118,-32767,-126,-32767,-135,-32767,-143,-32767,-151,-32767,-160,-32767,-168,-32767,-176,-32767,-185,-32767,-193,-32767,-202,-32767,-210,-32767,-218,-32767,-227,-32767,-235,-32767,-243,-32767,-252,-32767,-260,-32766,-269,-32766,-277,-32766,-285,-32766,-294,-32766,-302,-32766,-310,-32766,-319,-32766,-327,-32766,-336,-32766,-344,-32766,-352,-32766,-361,-32766,-369,-32765,-377,-32765,-386,-32765,-394,-32765,-403,-32765,-411,-32765,-419,-32765,-428,-32765,-436,-32765,-444,-32764,-453,-32764,-461,-32764,-470,-32764,-478,-32764,-486,-32764,-495,-32764,-503,-32764,-511,-32764,-520,-32763,-528,-32763,-537,-32763,-545,-32763,-553,-32763,-562,-32763,-570,-32763,-579,-32762,-587,-32762,-595,-32762,-604,-32762,-612,-32762,-620,-32762,-629,-32761,-637,-32761,-646,-32761,-654,-32761,-662,-32761,-671,-32761,-679,-32760,-687,-32760,-696,-32760,-704,-32760,-713,-32760,-721,-32760,-729,-32759,-738,-32759,-746,-32759,-754,-32759,-763,-32759,-771,-32758,-780,-32758,-788,-32758,-796,-32758,-805,-32758,-813,-32757,-821,-32757,-830,-32757,-838,-32757,-847,-32757,-855,-32756,-863,-32756,-872,-32756,-880,-32756,-888,-32755,-897,-32755,-905,-32755,-914,-32755,-922,-32755,-930,-32754,-939,-32754,-947,-32754,-955,-32754,-964,-32753,-972,-32753,-981,-32753,-989,-32753,-997,-32752,-1006,-32752,-1014,-32752,-1022,-32752,-1031,-32751,-1039,-32751,-1047,-32751,-1056,-32751,-1064,-32750,-1073,-32750,-1081,-32750,-1089,-32749,-1098,-32749,-1106,-32749,-1114,-32749,-1123,-32748,-1131,-32748,-1140,-32748,-1148,-32747,-1156,-32747,-1165,-32747,-1173,-32747,-1181,-32746,-1190,-32746,-1198,-32746,-1207,-32745,-1215,-32745,-1223,-32745,-1232,-32744,-1240,-32744,-1248,-32744,-1257,-32743,-1265,-32743,-1274,-32743,-1282,-32742,-1290,-32742,-1299,-32742,-1307,-32741,-1315,-32741,-1324,-32741,-1332,-32740,-1340,-32740,-1349,-32740,-1357,-32739,-1366,-32739,-1374,-32739,-1382,-32738,-1391,-32738,-1399,-32738,-1407,-32737,-1416,-32737,-1424,-32737,-1433,-32736,-1441,-32736,-1449,-32735,-1458,-32735,-1466,-32735,-1474,-32734,-1483,-32734,-1491,-32734,-1500,-32733,-1508,-32733,-1516,-32732,-1525,-32732,-1533,-32732,-1541,-32731,-1550,-32731,-1558,-32730,-1566,-32730,-1575,-32730,-1583,-32729,-1592,-32729,-1600,-32728,-1608,-32728,-1617,-32728,-1625,-32727,-1633,-32727,-1642,-32726,-1650,-32726,-1659,-32726,-1667,-32725,-1675,-32725,-1684,-32724,-1692,-32724,-1700,-32723,-1709,-32723,-1717,-32723,-1725,-32722,-1734,-32722,-1742,-32721,-1751,-32721,-1759,-32720,-1767,-32720,-1776,-32719,-1784,-32719,-1792,-32718,-1801,-32718,-1809,-32718,-1817,-32717,-1826,-32717,-1834,-32716,-1843,-32716,-1851,-32715,-1859,-32715,-1868,-32714,-1876,-32714,-1884,-32713,-1893,-32713,-1901,-32712,-1909,-32712,-1918,-32711,-1926,-32711,-1935,-32710,-1943,-32710,-1951,-32709,-1960,-32709,-1968,-32708,-1976,-32708,-1985,-32707,-1993,-32707,-2001,-32706,-2010,-32706,-2018,-32705,-2027,-32705,-2035,-32704,-2043,-32704,-2052,-32703,-2060,-32703,-2068,-32702,-2077,-32702,-2085,-32701,-2093,-32701,-2102,-32700,-2110,-32700,-2118,-32699,-2127,-32698,-2135,-32698,-2144,-32697,-2152,-32697,-2160,-32696,-2169,-32696,-2177,-32695,-2185,-32695,-2194,-32694,-2202,-32693,-2210,-32693,-2219,-32692,-2227,-32692,-2236,-32691,-2244,-32691,-2252,-32690,-2261,-32689,-2269,-32689,-2277,-32688,-2286,-32688,-2294,-32687,-2302,-32687,-2311,-32686,-2319,-32685,-2327,-32685,-2336,-32684,-2344,-32684,-2353,-32683,-2361,-32682,-2369,-32682,-2378,-32681,-2386,-32681,-2394,-32680,-2403,-32679,-2411,-32679,-2419,-32678,-2428,-32677,-2436,-32677,-2444,-32676,-2453,-32676,-2461,-32675,-2469,-32674,-2478,-32674,-2486,-32673,-2495,-32672,-2503,-32672,-2511,-32671,-2520,-32671,-2528,-32670,-2536,-32669,-2545,-32669,-2553,-32668,-2561,-32667,-2570,-32667,-2578,-32666,-2586,-32665,-2595,-32665,-2603,-32664,-2611,-32663,-2620,-32663,-2628,-32662,-2637,-32661,-2645,-32661,-2653,-32660,-2662,-32659,-2670,-32659,-2678,-32658,-2687,-32657,-2695,-32657,-2703,-32656,-2712,-32655,-2720,-32654,-2728,-32654,-2737,-32653,-2745,-32652,-2753,-32652,-2762,-32651,-2770,-32650,-2778,-32650,-2787,-32649,-2795,-32648,-2803,-32647,-2812,-32647,-2820,-32646,-2829,-32645,-2837,-32645,-2845,-32644,-2854,-32643,-2862,-32642,-2870,-32642,-2879,-32641,-2887,-32640,-2895,-32639,-2904,-32639,-2912,-32638,-2920,-32637,-2929,-32636,-2937,-32636,-2945,-32635,-2954,-32634,-2962,-32633,-2970,-32633,-2979,-32632,-2987,-32631,-2995,-32630,-3004,-32630,-3012,-32629,-3020,-32628,-3029,-32627,-3037,-32626,-3045,-32626,-3054,-32625,-3062,-32624,-3070,-32623,-3079,-32623,-3087,-32622,-3095,-32621,-3104,-32620,-3112,-32619,-3121,-32619,-3129,-32618,-3137,-32617,-3146,-32616,-3154,-32615,-3162,-32615,-3171,-32614,-3179,-32613,-3187,-32612,-3196,-32611,-3204,-32611,-3212,-32610,-3221,-32609,-3229,-32608,-3237,-32607,-3246,-32606,-3254,-32606,-3262,-32605,-3271,-32604,-3279,-32603,-3287,-32602,-3296,-32601,-3304,-32601,-3312,-32600,-3321,-32599,-3329,-32598,-3337,-32597,-3346,-32596,-3354,-32595,-3362,-32595,-3371,-32594,-3379,-32593,-3387,-32592,-3396,-32591,-3404,-32590,-3412,-32589,-3421,-32589,-3429,-32588,-3437,-32587,-3446,-32586,-3454,-32585,-3462,-32584,-3471,-32583,-3479,-32582,-3487,-32581,-3496,-32581,-3504,-32580,-3512,-32579,-3521,-32578,-3529,-32577,-3537,-32576,-3546,-32575,-3554,-32574,-3562,-32573,-3571,-32572,-3579,-32572,-3587,-32571,-3595,-32570,-3604,-32569,-3612,-32568,-3620,-32567,-3629,-32566,-3637,-32565,-3645,-32564,-3654,-32563,-3662,-32562,-3670,-32561,-3679,-32560,-3687,-32559,-3695,-32559,-3704,-32558,-3712,-32557,-3720,-32556,-3729,-32555,-3737,-32554,-3745,-32553,-3754,-32552,-3762,-32551,-3770,-32550,-3779,-32549,-3787,-32548,-3795,-32547,-3804,-32546,-3812,-32545,-3820,-32544,-3829,-32543,-3837,-32542,-3845,-32541,-3854,-32540,-3862,-32539,-3870,-32538,-3878,-32537,-3887,-32536,-3895,-32535,-3903,-32534,-3912,-32533,-3920,-32532,-3928,-32531,-3937,-32530,-3945,-32529,-3953,-32528,-3962,-32527,-3970,-32526,-3978,-32525,-3987,-32524,-3995,-32523,-4003,-32522,-4012,-32521,-4020,-32520,-4028,-32519,-4036,-32518,-4045,-32517,-4053,-32516,-4061,-32515,-4070,-32514,-4078,-32513,-4086,-32512,-4095,-32511,-4103,-32510,-4111,-32509,-4120,-32508,-4128,-32507,-4136,-32505,-4145,-32504,-4153,-32503,-4161,-32502,-4169,-32501,-4178,-32500,-4186,-32499,-4194,-32498,-4203,-32497,-4211,-32496,-4219,-32495,-4228,-32494,-4236,-32493,-4244,-32492,-4253,-32490,-4261,-32489,-4269,-32488,-4277,-32487,-4286,-32486,-4294,-32485,-4302,-32484,-4311,-32483,-4319,-32482,-4327,-32481,-4336,-32479,-4344,-32478,-4352,-32477,-4360,-32476,-4369,-32475,-4377,-32474,-4385,-32473,-4394,-32472,-4402,-32471,-4410,-32469,-4419,-32468,-4427,-32467,-4435,-32466,-4444,-32465,-4452,-32464,-4460,-32463,-4468,-32461,-4477,-32460,-4485,-32459,-4493,-32458,-4502,-32457,-4510,-32456,-4518,-32455,-4526,-32453,-4535,-32452,-4543,-32451,-4551,-32450,-4560,-32449,-4568,-32448,-4576,-32446,-4585,-32445,-4593,-32444,-4601,-32443,-4609,-32442,-4618,-32441,-4626,-32439,-4634,-32438,-4643,-32437,-4651,-32436,-4659,-32435,-4667,-32433,-4676,-32432,-4684,-32431,-4692,-32430,-4701,-32429,-4709,-32427,-4717,-32426,-4726,-32425,-4734,-32424,-4742,-32423,-4750,-32421,-4759,-32420,-4767,-32419,-4775,-32418,-4784,-32417,-4792,-32415,-4800,-32414,-4808,-32413,-4817,-32412,-4825,-32410,-4833,-32409,-4842,-32408,-4850,-32407,-4858,-32405,-4866,-32404,-4875,-32403,-4883,-32402,-4891,-32400,-4900,-32399,-4908,-32398,-4916,-32397,-4924,-32395,-4933,-32394,-4941,-32393,-4949,-32392,-4958,-32390,-4966,-32389,-4974,-32388,-4982,-32387,-4991,-32385,-4999,-32384,-5007,-32383,-5015,-32381,-5024,-32380,-5032,-32379,-5040,-32378,-5049,-32376,-5057,-32375,-5065,-32374,-5073,-32372,-5082,-32371,-5090,-32370,-5098,-32369,-5107,-32367,-5115,-32366,-5123,-32365,-5131,-32363,-5140,-32362,-5148,-32361,-5156,-32359,-5164,-32358,-5173,-32357,-5181,-32355,-5189,-32354,-5198,-32353,-5206,-32351,-5214,-32350,-5222,-32349,-5231,-32347,-5239,-32346,-5247,-32345,-5255,-32343,-5264,-32342,-5272,-32341,-5280,-32339,-5288,-32338,-5297,-32337,-5305,-32335,-5313,-32334,-5322,-32333,-5330,-32331,-5338,-32330,-5346,-32328,-5355,-32327,-5363,-32326,-5371,-32324,-5379,-32323,-5388,-32322,-5396,-32320,-5404,-32319,-5412,-32317,-5421,-32316,-5429,-32315,-5437,-32313,-5446,-32312,-5454,-32311,-5462,-32309,-5470,-32308,-5479,-32306,-5487,-32305,-5495,-32304,-5503,-32302,-5512,-32301,-5520,-32299,-5528,-32298,-5536,-32296,-5545,-32295,-5553,-32294,-5561,-32292,-5569,-32291,-5578,-32289,-5586,-32288,-5594,-32287,-5602,-32285,-5611,-32284,-5619,-32282,-5627,-32281,-5635,-32279,-5644,-32278,-5652,-32276,-5660,-32275,-5668,-32274,-5677,-32272,-5685,-32271,-5693,-32269,-5701,-32268,-5710,-32266,-5718,-32265,-5726,-32263,-5734,-32262,-5743,-32260,-5751,-32259,-5759,-32257,-5767,-32256,-5776,-32255,-5784,-32253,-5792,-32252,-5800,-32250,-5809,-32249,-5817,-32247,-5825,-32246,-5833,-32244,-5842,-32243,-5850,-32241,-5858,-32240,-5866,-32238,-5875,-32237,-5883,-32235,-5891,-32234,-5899,-32232,-5908,-32231,-5916,-32229,-5924,-32228,-5932,-32226,-5941,-32225,-5949,-32223,-5957,-32222,-5965,-32220,-5973,-32219,-5982,-32217,-5990,-32215,-5998,-32214,-6006,-32212,-6015,-32211,-6023,-32209,-6031,-32208,-6039,-32206,-6048,-32205,-6056,-32203,-6064,-32202,-6072,-32200,-6081,-32198,-6089,-32197,-6097,-32195,-6105,-32194,-6113,-32192,-6122,-32191,-6130,-32189,-6138,-32188,-6146,-32186,-6155,-32184,-6163,-32183,-6171,-32181,-6179,-32180,-6187,-32178,-6196,-32177,-6204,-32175,-6212,-32173,-6220,-32172,-6229,-32170,-6237,-32169,-6245,-32167,-6253,-32165,-6262,-32164,-6270,-32162,-6278,-32161,-6286,-32159,-6294,-32157,-6303,-32156,-6311,-32154,-6319,-32153,-6327,-32151,-6335,-32149,-6344,-32148,-6352,-32146,-6360,-32144,-6368,-32143,-6377,-32141,-6385,-32140,-6393,-32138,-6401,-32136,-6409,-32135,-6418,-32133,-6426,-32131,-6434,-32130,-6442,-32128,-6451,-32126,-6459,-32125,-6467,-32123,-6475,-32121,-6483,-32120,-6492,-32118,-6500,-32116,-6508,-32115,-6516,-32113,-6524,-32111,-6533,-32110,-6541,-32108,-6549,-32106,-6557,-32105,-6565,-32103,-6574,-32101,-6582,-32100,-6590,-32098,-6598,-32096,-6607,-32095,-6615,-32093,-6623,-32091,-6631,-32090,-6639,-32088,-6648,-32086,-6656,-32085,-6664,-32083,-6672,-32081,-6680,-32079,-6689,-32078,-6697,-32076,-6705,-32074,-6713,-32073,-6721,-32071,-6730,-32069,-6738,-32067,-6746,-32066,-6754,-32064,-6762,-32062,-6771,-32060,-6779,-32059,-6787,-32057,-6795,-32055,-6803,-32054,-6812,-32052,-6820,-32050,-6828,-32048,-6836,-32047,-6844,-32045,-6852,-32043,-6861,-32041,-6869,-32040,-6877,-32038,-6885,-32036,-6893,-32034,-6902,-32033,-6910,-32031,-6918,-32029,-6926,-32027,-6934,-32025,-6943,-32024,-6951,-32022,-6959,-32020,-6967,-32018,-6975,-32017,-6983,-32015,-6992,-32013,-7000,-32011,-7008,-32009,-7016,-32008,-7024,-32006,-7033,-32004,-7041,-32002,-7049,-32000,-7057,-31999,-7065,-31997,-7073,-31995,-7082,-31993,-7090,-31991,-7098,-31990,-7106,-31988,-7114,-31986,-7123,-31984,-7131,-31982,-7139,-31980,-7147,-31979,-7155,-31977,-7163,-31975,-7172,-31973,-7180,-31971,-7188,-31969,-7196,-31968,-7204,-31966,-7212,-31964,-7221,-31962,-7229,-31960,-7237,-31958,-7245,-31957,-7253,-31955,-7262,-31953,-7270,-31951,-7278,-31949,-7286,-31947,-7294,-31945,-7302,-31944,-7311,-31942,-7319,-31940,-7327,-31938,-7335,-31936,-7343,-31934,-7351,-31932,-7359,-31930,-7368,-31929,-7376,-31927,-7384,-31925,-7392,-31923,-7400,-31921,-7408,-31919,-7417,-31917,-7425,-31915,-7433,-31913,-7441,-31912,-7449,-31910,-7457,-31908,-7466,-31906,-7474,-31904,-7482,-31902,-7490,-31900,-7498,-31898,-7506,-31896,-7515,-31894,-7523,-31892,-7531,-31890,-7539,-31889,-7547,-31887,-7555,-31885,-7563,-31883,-7572,-31881,-7580,-31879,-7588,-31877,-7596,-31875,-7604,-31873,-7612,-31871,-7620,-31869,-7629,-31867,-7637,-31865,-7645,-31863,-7653,-31861,-7661,-31859,-7669,-31857,-7677,-31855,-7686,-31854,-7694,-31852,-7702,-31850,-7710,-31848,-7718,-31846,-7726,-31844,-7734,-31842,-7743,-31840,-7751,-31838,-7759,-31836,-7767,-31834,-7775,-31832,-7783,-31830,-7791,-31828,-7800,-31826,-7808,-31824,-7816,-31822,-7824,-31820,-7832,-31818,-7840,-31816,-7848,-31814,-7857,-31812,-7865,-31810,-7873,-31808,-7881,-31806,-7889,-31804,-7897,-31802,-7905,-31800,-7913,-31798,-7922,-31796,-7930,-31794,-7938,-31792,-7946,-31790,-7954,-31788,-7962,-31786,-7970,-31783,-7978,-31781,-7987,-31779,-7995,-31777,-8003,-31775,-8011,-31773,-8019,-31771,-8027,-31769,-8035,-31767,-8043,-31765,-8052,-31763,-8060,-31761,-8068,-31759,-8076,-31757,-8084,-31755,-8092,-31753,-8100,-31751,-8108,-31749,-8117,-31746,-8125,-31744,-8133,-31742,-8141,-31740,-8149,-31738,-8157,-31736,-8165,-31734,-8173,-31732,-8181,-31730,-8190,-31728,-8198,-31726,-8206,-31724,-8214,-31721,-8222,-31719,-8230,-31717,-8238,-31715,-8246,-31713,-8254,-31711,-8263,-31709,-8271,-31707,-8279,-31705,-8287,-31702,-8295,-31700,-8303,-31698,-8311,-31696,-8319,-31694,-8327,-31692,-8335,-31690,-8344,-31688,-8352,-31685,-8360,-31683,-8368,-31681,-8376,-31679,-8384,-31677,-8392,-31675,-8400,-31673,-8408,-31670,-8416,-31668,-8425,-31666,-8433,-31664,-8441,-31662,-8449,-31660,-8457,-31657,-8465,-31655,-8473,-31653,-8481,-31651,-8489,-31649,-8497,-31647,-8505,-31644,-8514,-31642,-8522,-31640,-8530,-31638,-8538,-31636,-8546,-31634,-8554,-31631,-8562,-31629,-8570,-31627,-8578,-31625,-8586,-31623,-8594,-31620,-8603,-31618,-8611,-31616,-8619,-31614,-8627,-31612,-8635,-31609,-8643,-31607,-8651,-31605,-8659,-31603,-8667,-31601,-8675,-31598,-8683,-31596,-8691,-31594,-8700,-31592,-8708,-31589,-8716,-31587,-8724,-31585,-8732,-31583,-8740,-31581,-8748,-31578,-8756,-31576,-8764,-31574,-8772,-31572,-8780,-31569,-8788,-31567,-8796,-31565,-8804,-31563,-8813,-31560,-8821,-31558,-8829,-31556,-8837,-31554,-8845,-31551,-8853,-31549,-8861,-31547,-8869,-31545,-8877,-31542,-8885,-31540,-8893,-31538,-8901,-31535,-8909,-31533,-8917,-31531,-8925,-31529,-8933,-31526,-8942,-31524,-8950,-31522,-8958,-31519,-8966,-31517,-8974,-31515,-8982,-31513,-8990,-31510,-8998,-31508,-9006,-31506,-9014,-31503,-9022,-31501,-9030,-31499,-9038,-31496,-9046,-31494,-9054,-31492,-9062,-31490,-9070,-31487,-9078,-31485,-9087,-31483,-9095,-31480,-9103,-31478,-9111,-31476,-9119,-31473,-9127,-31471,-9135,-31469,-9143,-31466,-9151,-31464,-9159,-31462,-9167,-31459,-9175,-31457,-9183,-31455,-9191,-31452,-9199,-31450,-9207,-31447,-9215,-31445,-9223,-31443,-9231,-31440,-9239,-31438,-9247,-31436,-9255,-31433,-9263,-31431,-9271,-31429,-9280,-31426,-9288,-31424,-9296,-31421,-9304,-31419,-9312,-31417,-9320,-31414,-9328,-31412,-9336,-31410,-9344,-31407,-9352,-31405,-9360,-31402,-9368,-31400,-9376,-31398,-9384,-31395,-9392,-31393,-9400,-31390,-9408,-31388,-9416,-31386,-9424,-31383,-9432,-31381,-9440,-31378,-9448,-31376,-9456,-31374,-9464,-31371,-9472,-31369,-9480,-31366,-9488,-31364,-9496,-31361,-9504,-31359,-9512,-31357,-9520,-31354,-9528,-31352,-9536,-31349,-9544,-31347,-9552,-31344,-9560,-31342,-9568,-31339,-9576,-31337,-9584,-31335,-9592,-31332,-9600,-31330,-9608,-31327,-9616,-31325,-9624,-31322,-9632,-31320,-9640,-31317,-9648,-31315,-9656,-31312,-9664,-31310,-9672,-31308,-9680,-31305,-9688,-31303,-9696,-31300,-9704,-31298,-9712,-31295,-9720,-31293,-9728,-31290,-9736,-31288,-9744,-31285,-9752,-31283,-9760,-31280,-9768,-31278,-9776,-31275,-9784,-31273,-9792,-31270,-9800,-31268,-9808,-31265,-9816,-31263,-9824,-31260,-9832,-31258,-9840,-31255,-9848,-31253,-9856,-31250,-9864,-31248,-9872,-31245,-9880,-31243,-9888,-31240,-9896,-31237,-9904,-31235,-9912,-31232,-9920,-31230,-9928,-31227,-9936,-31225,-9944,-31222,-9952,-31220,-9960,-31217,-9968,-31215,-9976,-31212,-9984,-31210,-9992,-31207,-10000,-31204,-10008,-31202,-10016,-31199,-10024,-31197,-10032,-31194,-10040,-31192,-10048,-31189,-10056,-31186,-10064,-31184,-10072,-31181,-10080,-31179,-10088,-31176,-10096,-31174,-10104,-31171,-10112,-31168,-10120,-31166,-10128,-31163,-10136,-31161,-10144,-31158,-10152,-31155,-10160,-31153,-10167,-31150,-10175,-31148,-10183,-31145,-10191,-31142,-10199,-31140,-10207,-31137,-10215,-31135,-10223,-31132,-10231,-31129,-10239,-31127,-10247,-31124,-10255,-31122,-10263,-31119,-10271,-31116,-10279,-31114,-10287,-31111,-10295,-31108,-10303,-31106,-10311,-31103,-10319,-31101,-10327,-31098,-10335,-31095,-10343,-31093,-10350,-31090,-10358,-31087,-10366,-31085,-10374,-31082,-10382,-31079,-10390,-31077,-10398,-31074,-10406,-31071,-10414,-31069,-10422,-31066,-10430,-31063,-10438,-31061,-10446,-31058,-10454,-31055,-10462,-31053,-10470,-31050,-10478,-31047,-10485,-31045,-10493,-31042,-10501,-31039,-10509,-31037,-10517,-31034,-10525,-31031,-10533,-31029,-10541,-31026,-10549,-31023,-10557,-31020,-10565,-31018,-10573,-31015,-10581,-31012,-10589,-31010,-10597,-31007,-10604,-31004,-10612,-31002,-10620,-30999,-10628,-30996,-10636,-30993,-10644,-30991,-10652,-30988,-10660,-30985,-10668,-30982,-10676,-30980,-10684,-30977,-10692,-30974,-10700,-30972,-10707,-30969,-10715,-30966,-10723,-30963,-10731,-30961,-10739,-30958,-10747,-30955,-10755,-30952,-10763,-30950,-10771,-30947,-10779,-30944,-10787,-30941,-10795,-30939,-10802,-30936,-10810,-30933,-10818,-30930,-10826,-30928,-10834,-30925,-10842,-30922,-10850,-30919,-10858,-30916,-10866,-30914,-10874,-30911,-10881,-30908,-10889,-30905,-10897,-30903,-10905,-30900,-10913,-30897,-10921,-30894,-10929,-30891,-10937,-30889,-10945,-30886,-10953,-30883,-10960,-30880,-10968,-30877,-10976,-30875,-10984,-30872,-10992,-30869,-11000,-30866,-11008,-30863,-11016,-30861,-11024,-30858,-11031,-30855,-11039,-30852,-11047,-30849,-11055,-30846,-11063,-30844,-11071,-30841,-11079,-30838,-11087,-30835,-11095,-30832,-11102,-30829,-11110,-30827,-11118,-30824,-11126,-30821,-11134,-30818,-11142,-30815,-11150,-30812,-11158,-30810,-11165,-30807,-11173,-30804,-11181,-30801,-11189,-30798,-11197,-30795,-11205,-30792,-11213,-30789,-11221,-30787,-11228,-30784,-11236,-30781,-11244,-30778,-11252,-30775,-11260,-30772,-11268,-30769,-11276,-30767,-11284,-30764,-11291,-30761,-11299,-30758,-11307,-30755,-11315,-30752,-11323,-30749,-11331,-30746,-11339,-30743,-11346,-30740,-11354,-30738,-11362,-30735,-11370,-30732,-11378,-30729,-11386,-30726,-11394,-30723,-11401,-30720,-11409,-30717,-11417,-30714,-11425,-30711,-11433,-30708,-11441,-30706,-11449,-30703,-11456,-30700,-11464,-30697,-11472,-30694,-11480,-30691,-11488,-30688,-11496,-30685,-11503,-30682,-11511,-30679,-11519,-30676,-11527,-30673,-11535,-30670,-11543,-30667,-11551,-30664,-11558,-30661,-11566,-30658,-11574,-30656,-11582,-30653,-11590,-30650,-11598,-30647,-11605,-30644,-11613,-30641,-11621,-30638,-11629,-30635,-11637,-30632,-11645,-30629,-11652,-30626,-11660,-30623,-11668,-30620,-11676,-30617,-11684,-30614,-11692,-30611,-11699,-30608,-11707,-30605,-11715,-30602,-11723,-30599,-11731,-30596,-11738,-30593,-11746,-30590,-11754,-30587,-11762,-30584,-11770,-30581,-11778,-30578,-11785,-30575,-11793,-30572,-11801,-30569,-11809,-30566,-11817,-30563,-11824,-30560,-11832,-30557,-11840,-30554,-11848,-30551,-11856,-30548,-11863,-30545,-11871,-30542,-11879,-30539,-11887,-30536,-11895,-30533,-11903,-30529,-11910,-30526,-11918,-30523,-11926,-30520,-11934,-30517,-11942,-30514,-11949,-30511,-11957,-30508,-11965,-30505,-11973,-30502,-11981,-30499,-11988,-30496,-11996,-30493,-12004,-30490,-12012,-30487,-12020,-30484,-12027,-30481,-12035,-30477,-12043,-30474,-12051,-30471,-12058,-30468,-12066,-30465,-12074,-30462,-12082,-30459,-12090,-30456,-12097,-30453,-12105,-30450,-12113,-30447,-12121,-30443,-12129,-30440,-12136,-30437,-12144,-30434,-12152,-30431,-12160,-30428,-12167,-30425,-12175,-30422,-12183,-30419,-12191,-30416,-12199,-30412,-12206,-30409,-12214,-30406,-12222,-30403,-12230,-30400,-12237,-30397,-12245,-30394,-12253,-30391,-12261,-30387,-12269,-30384,-12276,-30381,-12284,-30378,-12292,-30375,-12300,-30372,-12307,-30369,-12315,-30365,-12323,-30362,-12331,-30359,-12338,-30356,-12346,-30353,-12354,-30350,-12362,-30346,-12369,-30343,-12377,-30340,-12385,-30337,-12393,-30334,-12400,-30331,-12408,-30327,-12416,-30324,-12424,-30321,-12431,-30318,-12439,-30315,-12447,-30312,-12455,-30308,-12462,-30305,-12470,-30302,-12478,-30299,-12486,-30296,-12493,-30292,-12501,-30289,-12509,-30286,-12517,-30283,-12524,-30280,-12532,-30276,-12540,-30273,-12548,-30270,-12555,-30267,-12563,-30264,-12571,-30260,-12579,-30257,-12586,-30254,-12594,-30251,-12602,-30248,-12610,-30244,-12617,-30241,-12625,-30238,-12633,-30235,-12640,-30231,-12648,-30228,-12656,-30225,-12664,-30222,-12671,-30218,-12679,-30215,-12687,-30212,-12695,-30209,-12702,-30206,-12710,-30202,-12718,-30199,-12725,-30196,-12733,-30192,-12741,-30189,-12749,-30186,-12756,-30183,-12764,-30179,-12772,-30176,-12779,-30173,-12787,-30170,-12795,-30166,-12803,-30163,-12810,-30160,-12818,-30157,-12826,-30153,-12833,-30150,-12841,-30147,-12849,-30143,-12857,-30140,-12864,-30137,-12872,-30134,-12880,-30130,-12887,-30127,-12895,-30124,-12903,-30120,-12910,-30117,-12918,-30114,-12926,-30110,-12934,-30107,-12941,-30104,-12949,-30101,-12957,-30097,-12964,-30094,-12972,-30091,-12980,-30087,-12987,-30084,-12995,-30081,-13003,-30077,-13010,-30074,-13018,-30071,-13026,-30067,-13034,-30064,-13041,-30061,-13049,-30057,-13057,-30054,-13064,-30051,-13072,-30047,-13080,-30044,-13087,-30041,-13095,-30037,-13103,-30034,-13110,-30031,-13118,-30027,-13126,-30024,-13133,-30021,-13141,-30017,-13149,-30014,-13156,-30010,-13164,-30007,-13172,-30004,-13179,-30000,-13187,-29997,-13195,-29994,-13202,-29990,-13210,-29987,-13218,-29984,-13225,-29980,-13233,-29977,-13241,-29973,-13248,-29970,-13256,-29967,-13264,-29963,-13271,-29960,-13279,-29956,-13287,-29953,-13294,-29950,-13302,-29946,-13310,-29943,-13317,-29939,-13325,-29936,-13333,-29933,-13340,-29929,-13348,-29926,-13356,-29922,-13363,-29919,-13371,-29916,-13379,-29912,-13386,-29909,-13394,-29905,-13401,-29902,-13409,-29898,-13417,-29895,-13424,-29892,-13432,-29888,-13440,-29885,-13447,-29881,-13455,-29878,-13463,-29874,-13470,-29871,-13478,-29867,-13486,-29864,-13493,-29861,-13501,-29857,-13508,-29854,-13516,-29850,-13524,-29847,-13531,-29843,-13539,-29840,-13547,-29836,-13554,-29833,-13562,-29829,-13569,-29826,-13577,-29823,-13585,-29819,-13592,-29816,-13600,-29812,-13608,-29809,-13615,-29805,-13623,-29802,-13630,-29798,-13638,-29795,-13646,-29791,-13653,-29788,-13661,-29784,-13668,-29781,-13676,-29777,-13684,-29774,-13691,-29770,-13699,-29767,-13707,-29763,-13714,-29760,-13722,-29756,-13729,-29753,-13737,-29749,-13745,-29746,-13752,-29742,-13760,-29739,-13767,-29735,-13775,-29732,-13783,-29728,-13790,-29725,-13798,-29721,-13805,-29718,-13813,-29714,-13821,-29710,-13828,-29707,-13836,-29703,-13843,-29700,-13851,-29696,-13859,-29693,-13866,-29689,-13874,-29686,-13881,-29682,-13889,-29679,-13896,-29675,-13904,-29671,-13912,-29668,-13919,-29664,-13927,-29661,-13934,-29657,-13942,-29654,-13950,-29650,-13957,-29647,-13965,-29643,-13972,-29639,-13980,-29636,-13987,-29632,-13995,-29629,-14003,-29625,-14010,-29622,-14018,-29618,-14025,-29614,-14033,-29611,-14040,-29607,-14048,-29604,-14056,-29600,-14063,-29596,-14071,-29593,-14078,-29589,-14086,-29586,-14093,-29582,-14101,-29578,-14109,-29575,-14116,-29571,-14124,-29568,-14131,-29564,-14139,-29560,-14146,-29557,-14154,-29553,-14161,-29549,-14169,-29546,-14177,-29542,-14184,-29539,-14192,-29535,-14199,-29531,-14207,-29528,-14214,-29524,-14222,-29520,-14229,-29517,-14237,-29513,-14245,-29510,-14252,-29506,-14260,-29502,-14267,-29499,-14275,-29495,-14282,-29491,-14290,-29488,-14297,-29484,-14305,-29480,-14312,-29477,-14320,-29473,-14327,-29469,-14335,-29466,-14343,-29462,-14350,-29458,-14358,-29455,-14365,-29451,-14373,-29447,-14380,-29444,-14388,-29440,-14395,-29436,-14403,-29433,-14410,-29429,-14418,-29425,-14425,-29422,-14433,-29418,-14440,-29414,-14448,-29411,-14455,-29407,-14463,-29403,-14470,-29399,-14478,-29396,-14485,-29392,-14493,-29388,-14500,-29385,-14508,-29381,-14516,-29377,-14523,-29373,-14531,-29370,-14538,-29366,-14546,-29362,-14553,-29359,-14561,-29355,-14568,-29351,-14576,-29347,-14583,-29344,-14591,-29340,-14598,-29336,-14606,-29333,-14613,-29329,-14621,-29325,-14628,-29321,-14636,-29318,-14643,-29314,-14651,-29310,-14658,-29306,-14666,-29303,-14673,-29299,-14681,-29295,-14688,-29291,-14695,-29288,-14703,-29284,-14710,-29280,-14718,-29276,-14725,-29273,-14733,-29269,-14740,-29265,-14748,-29261,-14755,-29257,-14763,-29254,-14770,-29250,-14778,-29246,-14785,-29242,-14793,-29239,-14800,-29235,-14808,-29231,-14815,-29227,-14823,-29223,-14830,-29220,-14838,-29216,-14845,-29212,-14853,-29208,-14860,-29204,-14867,-29201,-14875,-29197,-14882,-29193,-14890,-29189,-14897,-29185,-14905,-29182,-14912,-29178,-14920,-29174,-14927,-29170,-14935,-29166,-14942,-29163,-14950,-29159,-14957,-29155,-14964,-29151,-14972,-29147,-14979,-29143,-14987,-29140,-14994,-29136,-15002,-29132,-15009,-29128,-15017,-29124,-15024,-29120,-15031,-29117,-15039,-29113,-15046,-29109,-15054,-29105,-15061,-29101,-15069,-29097,-15076,-29093,-15084,-29090,-15091,-29086,-15098,-29082,-15106,-29078,-15113,-29074,-15121,-29070,-15128,-29066,-15136,-29063,-15143,-29059,-15150,-29055,-15158,-29051,-15165,-29047,-15173,-29043,-15180,-29039,-15188,-29035,-15195,-29032,-15202,-29028,-15210,-29024,-15217,-29020,-15225,-29016,-15232,-29012,-15239,-29008,-15247,-29004,-15254,-29000,-15262,-28997,-15269,-28993,-15277,-28989,-15284,-28985,-15291,-28981,-15299,-28977,-15306,-28973,-15314,-28969,-15321,-28965,-15328,-28961,-15336,-28957,-15343,-28954,-15351,-28950,-15358,-28946,-15365,-28942,-15373,-28938,-15380,-28934,-15388,-28930,-15395,-28926,-15402,-28922,-15410,-28918,-15417,-28914,-15425,-28910,-15432,-28906,-15439,-28902,-15447,-28898,-15454,-28894,-15462,-28891,-15469,-28887,-15476,-28883,-15484,-28879,-15491,-28875,-15498,-28871,-15506,-28867,-15513,-28863,-15521,-28859,-15528,-28855,-15535,-28851,-15543,-28847,-15550,-28843,-15557,-28839,-15565,-28835,-15572,-28831,-15580,-28827,-15587,-28823,-15594,-28819,-15602,-28815,-15609,-28811,-15616,-28807,-15624,-28803,-15631,-28799,-15639,-28795,-15646,-28791,-15653,-28787,-15661,-28783,-15668,-28779,-15675,-28775,-15683,-28771,-15690,-28767,-15697,-28763,-15705,-28759,-15712,-28755,-15719,-28751,-15727,-28747,-15734,-28743,-15741,-28739,-15749,-28735,-15756,-28731,-15764,-28727,-15771,-28723,-15778,-28719,-15786,-28715,-15793,-28711,-15800,-28707,-15808,-28703,-15815,-28699,-15822,-28695,-15830,-28691,-15837,-28686,-15844,-28682,-15852,-28678,-15859,-28674,-15866,-28670,-15874,-28666,-15881,-28662,-15888,-28658,-15896,-28654,-15903,-28650,-15910,-28646,-15918,-28642,-15925,-28638,-15932,-28634,-15939,-28630,-15947,-28626,-15954,-28621,-15961,-28617,-15969,-28613,-15976,-28609,-15983,-28605,-15991,-28601,-15998,-28597,-16005,-28593,-16013,-28589,-16020,-28585,-16027,-28581,-16035,-28576,-16042,-28572,-16049,-28568,-16056,-28564,-16064,-28560,-16071,-28556,-16078,-28552,-16086,-28548,-16093,-28544,-16100,-28539,-16108,-28535,-16115,-28531,-16122,-28527,-16129,-28523,-16137,-28519,-16144,-28515,-16151,-28511,-16159,-28507,-16166,-28502,-16173,-28498,-16180,-28494,-16188,-28490,-16195,-28486,-16202,-28482,-16210,-28478,-16217,-28473,-16224,-28469,-16231,-28465,-16239,-28461,-16246,-28457,-16253,-28453,-16261,-28448,-16268,-28444,-16275,-28440,-16282,-28436,-16290,-28432,-16297,-28428,-16304,-28424,-16311,-28419,-16319,-28415,-16326,-28411,-16333,-28407,-16340,-28403,-16348,-28398,-16355,-28394,-16362,-28390,-16369,-28386,-16377,-28382}; - -int16_t twb24576[16384] __attribute__((aligned(32))) = {32767,0,32766,-17,32766,-34,32766,-51,32766,-68,32766,-84,32766,-101,32766,-118,32766,-135,32766,-151,32766,-168,32766,-185,32766,-202,32766,-218,32766,-235,32766,-252,32765,-269,32765,-285,32765,-302,32765,-319,32765,-336,32765,-352,32764,-369,32764,-386,32764,-403,32764,-419,32764,-436,32763,-453,32763,-470,32763,-486,32763,-503,32762,-520,32762,-537,32762,-553,32762,-570,32761,-587,32761,-604,32761,-620,32760,-637,32760,-654,32760,-671,32759,-687,32759,-704,32759,-721,32758,-738,32758,-754,32757,-771,32757,-788,32757,-805,32756,-821,32756,-838,32755,-855,32755,-872,32754,-888,32754,-905,32754,-922,32753,-939,32753,-955,32752,-972,32752,-989,32751,-1006,32751,-1022,32750,-1039,32750,-1056,32749,-1073,32748,-1089,32748,-1106,32747,-1123,32747,-1140,32746,-1156,32746,-1173,32745,-1190,32744,-1207,32744,-1223,32743,-1240,32742,-1257,32742,-1274,32741,-1290,32740,-1307,32740,-1324,32739,-1340,32738,-1357,32738,-1374,32737,-1391,32736,-1407,32736,-1424,32735,-1441,32734,-1458,32733,-1474,32733,-1491,32732,-1508,32731,-1525,32730,-1541,32729,-1558,32729,-1575,32728,-1592,32727,-1608,32726,-1625,32725,-1642,32725,-1659,32724,-1675,32723,-1692,32722,-1709,32721,-1725,32720,-1742,32719,-1759,32718,-1776,32717,-1792,32717,-1809,32716,-1826,32715,-1843,32714,-1859,32713,-1876,32712,-1893,32711,-1909,32710,-1926,32709,-1943,32708,-1960,32707,-1976,32706,-1993,32705,-2010,32704,-2027,32703,-2043,32702,-2060,32701,-2077,32700,-2093,32699,-2110,32697,-2127,32696,-2144,32695,-2160,32694,-2177,32693,-2194,32692,-2210,32691,-2227,32690,-2244,32688,-2261,32687,-2277,32686,-2294,32685,-2311,32684,-2327,32683,-2344,32681,-2361,32680,-2378,32679,-2394,32678,-2411,32676,-2428,32675,-2444,32674,-2461,32673,-2478,32671,-2495,32670,-2511,32669,-2528,32668,-2545,32666,-2561,32665,-2578,32664,-2595,32662,-2611,32661,-2628,32660,-2645,32658,-2662,32657,-2678,32656,-2695,32654,-2712,32653,-2728,32651,-2745,32650,-2762,32649,-2778,32647,-2795,32646,-2812,32644,-2829,32643,-2845,32641,-2862,32640,-2879,32638,-2895,32637,-2912,32635,-2929,32634,-2945,32632,-2962,32631,-2979,32629,-2995,32628,-3012,32626,-3029,32625,-3045,32623,-3062,32622,-3079,32620,-3095,32618,-3112,32617,-3129,32615,-3146,32614,-3162,32612,-3179,32610,-3196,32609,-3212,32607,-3229,32605,-3246,32604,-3262,32602,-3279,32600,-3296,32599,-3312,32597,-3329,32595,-3346,32594,-3362,32592,-3379,32590,-3396,32588,-3412,32587,-3429,32585,-3446,32583,-3462,32581,-3479,32580,-3496,32578,-3512,32576,-3529,32574,-3546,32572,-3562,32571,-3579,32569,-3595,32567,-3612,32565,-3629,32563,-3645,32561,-3662,32559,-3679,32558,-3695,32556,-3712,32554,-3729,32552,-3745,32550,-3762,32548,-3779,32546,-3795,32544,-3812,32542,-3829,32540,-3845,32538,-3862,32536,-3878,32534,-3895,32532,-3912,32530,-3928,32528,-3945,32526,-3962,32524,-3978,32522,-3995,32520,-4012,32518,-4028,32516,-4045,32514,-4061,32512,-4078,32510,-4095,32508,-4111,32506,-4128,32503,-4145,32501,-4161,32499,-4178,32497,-4194,32495,-4211,32493,-4228,32491,-4244,32488,-4261,32486,-4277,32484,-4294,32482,-4311,32480,-4327,32477,-4344,32475,-4360,32473,-4377,32471,-4394,32468,-4410,32466,-4427,32464,-4444,32462,-4460,32459,-4477,32457,-4493,32455,-4510,32452,-4526,32450,-4543,32448,-4560,32445,-4576,32443,-4593,32441,-4609,32438,-4626,32436,-4643,32434,-4659,32431,-4676,32429,-4692,32426,-4709,32424,-4726,32422,-4742,32419,-4759,32417,-4775,32414,-4792,32412,-4808,32409,-4825,32407,-4842,32404,-4858,32402,-4875,32399,-4891,32397,-4908,32394,-4924,32392,-4941,32389,-4958,32387,-4974,32384,-4991,32382,-5007,32379,-5024,32377,-5040,32374,-5057,32371,-5073,32369,-5090,32366,-5107,32364,-5123,32361,-5140,32358,-5156,32356,-5173,32353,-5189,32350,-5206,32348,-5222,32345,-5239,32342,-5255,32340,-5272,32337,-5288,32334,-5305,32332,-5322,32329,-5338,32326,-5355,32323,-5371,32321,-5388,32318,-5404,32315,-5421,32312,-5437,32310,-5454,32307,-5470,32304,-5487,32301,-5503,32298,-5520,32295,-5536,32293,-5553,32290,-5569,32287,-5586,32284,-5602,32281,-5619,32278,-5635,32275,-5652,32273,-5668,32270,-5685,32267,-5701,32264,-5718,32261,-5734,32258,-5751,32255,-5767,32252,-5784,32249,-5800,32246,-5817,32243,-5833,32240,-5850,32237,-5866,32234,-5883,32231,-5899,32228,-5916,32225,-5932,32222,-5949,32219,-5965,32216,-5982,32213,-5998,32210,-6015,32207,-6031,32204,-6048,32201,-6064,32197,-6081,32194,-6097,32191,-6113,32188,-6130,32185,-6146,32182,-6163,32179,-6179,32176,-6196,32172,-6212,32169,-6229,32166,-6245,32163,-6262,32160,-6278,32156,-6294,32153,-6311,32150,-6327,32147,-6344,32143,-6360,32140,-6377,32137,-6393,32134,-6409,32130,-6426,32127,-6442,32124,-6459,32120,-6475,32117,-6492,32114,-6508,32110,-6524,32107,-6541,32104,-6557,32100,-6574,32097,-6590,32094,-6607,32090,-6623,32087,-6639,32084,-6656,32080,-6672,32077,-6689,32073,-6705,32070,-6721,32066,-6738,32063,-6754,32059,-6771,32056,-6787,32053,-6803,32049,-6820,32046,-6836,32042,-6852,32039,-6869,32035,-6885,32032,-6902,32028,-6918,32024,-6934,32021,-6951,32017,-6967,32014,-6983,32010,-7000,32007,-7016,32003,-7033,31999,-7049,31996,-7065,31992,-7082,31989,-7098,31985,-7114,31981,-7131,31978,-7147,31974,-7163,31970,-7180,31967,-7196,31963,-7212,31959,-7229,31956,-7245,31952,-7262,31948,-7278,31944,-7294,31941,-7311,31937,-7327,31933,-7343,31929,-7359,31926,-7376,31922,-7392,31918,-7408,31914,-7425,31911,-7441,31907,-7457,31903,-7474,31899,-7490,31895,-7506,31891,-7523,31888,-7539,31884,-7555,31880,-7572,31876,-7588,31872,-7604,31868,-7620,31864,-7637,31860,-7653,31856,-7669,31853,-7686,31849,-7702,31845,-7718,31841,-7734,31837,-7751,31833,-7767,31829,-7783,31825,-7800,31821,-7816,31817,-7832,31813,-7848,31809,-7865,31805,-7881,31801,-7897,31797,-7913,31793,-7930,31789,-7946,31785,-7962,31780,-7978,31776,-7995,31772,-8011,31768,-8027,31764,-8043,31760,-8060,31756,-8076,31752,-8092,31748,-8108,31743,-8125,31739,-8141,31735,-8157,31731,-8173,31727,-8190,31723,-8206,31718,-8222,31714,-8238,31710,-8254,31706,-8271,31701,-8287,31697,-8303,31693,-8319,31689,-8335,31684,-8352,31680,-8368,31676,-8384,31672,-8400,31667,-8416,31663,-8433,31659,-8449,31654,-8465,31650,-8481,31646,-8497,31641,-8514,31637,-8530,31633,-8546,31628,-8562,31624,-8578,31619,-8594,31615,-8611,31611,-8627,31606,-8643,31602,-8659,31597,-8675,31593,-8691,31588,-8708,31584,-8724,31580,-8740,31575,-8756,31571,-8772,31566,-8788,31562,-8804,31557,-8821,31553,-8837,31548,-8853,31544,-8869,31539,-8885,31534,-8901,31530,-8917,31525,-8933,31521,-8950,31516,-8966,31512,-8982,31507,-8998,31502,-9014,31498,-9030,31493,-9046,31489,-9062,31484,-9078,31479,-9095,31475,-9111,31470,-9127,31465,-9143,31461,-9159,31456,-9175,31451,-9191,31446,-9207,31442,-9223,31437,-9239,31432,-9255,31428,-9271,31423,-9288,31418,-9304,31413,-9320,31409,-9336,31404,-9352,31399,-9368,31394,-9384,31389,-9400,31385,-9416,31380,-9432,31375,-9448,31370,-9464,31365,-9480,31360,-9496,31356,-9512,31351,-9528,31346,-9544,31341,-9560,31336,-9576,31331,-9592,31326,-9608,31321,-9624,31316,-9640,31311,-9656,31307,-9672,31302,-9688,31297,-9704,31292,-9720,31287,-9736,31282,-9752,31277,-9768,31272,-9784,31267,-9800,31262,-9816,31257,-9832,31252,-9848,31247,-9864,31242,-9880,31236,-9896,31231,-9912,31226,-9928,31221,-9944,31216,-9960,31211,-9976,31206,-9992,31201,-10008,31196,-10024,31191,-10040,31185,-10056,31180,-10072,31175,-10088,31170,-10104,31165,-10120,31160,-10136,31154,-10152,31149,-10167,31144,-10183,31139,-10199,31134,-10215,31128,-10231,31123,-10247,31118,-10263,31113,-10279,31107,-10295,31102,-10311,31097,-10327,31092,-10343,31086,-10358,31081,-10374,31076,-10390,31070,-10406,31065,-10422,31060,-10438,31054,-10454,31049,-10470,31044,-10485,31038,-10501,31033,-10517,31028,-10533,31022,-10549,31017,-10565,31011,-10581,31006,-10597,31001,-10612,30995,-10628,30990,-10644,30984,-10660,30979,-10676,30973,-10692,30968,-10707,30962,-10723,30957,-10739,30951,-10755,30946,-10771,30940,-10787,30935,-10802,30929,-10818,30924,-10834,30918,-10850,30913,-10866,30907,-10881,30902,-10897,30896,-10913,30890,-10929,30885,-10945,30879,-10960,30874,-10976,30868,-10992,30862,-11008,30857,-11024,30851,-11039,30845,-11055,30840,-11071,30834,-11087,30828,-11102,30823,-11118,30817,-11134,30811,-11150,30806,-11165,30800,-11181,30794,-11197,30788,-11213,30783,-11228,30777,-11244,30771,-11260,30766,-11276,30760,-11291,30754,-11307,30748,-11323,30742,-11339,30737,-11354,30731,-11370,30725,-11386,30719,-11401,30713,-11417,30707,-11433,30702,-11449,30696,-11464,30690,-11480,30684,-11496,30678,-11511,30672,-11527,30666,-11543,30660,-11558,30655,-11574,30649,-11590,30643,-11605,30637,-11621,30631,-11637,30625,-11652,30619,-11668,30613,-11684,30607,-11699,30601,-11715,30595,-11731,30589,-11746,30583,-11762,30577,-11778,30571,-11793,30565,-11809,30559,-11824,30553,-11840,30547,-11856,30541,-11871,30535,-11887,30528,-11903,30522,-11918,30516,-11934,30510,-11949,30504,-11965,30498,-11981,30492,-11996,30486,-12012,30480,-12027,30473,-12043,30467,-12058,30461,-12074,30455,-12090,30449,-12105,30442,-12121,30436,-12136,30430,-12152,30424,-12167,30418,-12183,30411,-12199,30405,-12214,30399,-12230,30393,-12245,30386,-12261,30380,-12276,30374,-12292,30368,-12307,30361,-12323,30355,-12338,30349,-12354,30342,-12369,30336,-12385,30330,-12400,30323,-12416,30317,-12431,30311,-12447,30304,-12462,30298,-12478,30291,-12493,30285,-12509,30279,-12524,30272,-12540,30266,-12555,30259,-12571,30253,-12586,30247,-12602,30240,-12617,30234,-12633,30227,-12648,30221,-12664,30214,-12679,30208,-12695,30201,-12710,30195,-12725,30188,-12741,30182,-12756,30175,-12772,30169,-12787,30162,-12803,30156,-12818,30149,-12833,30142,-12849,30136,-12864,30129,-12880,30123,-12895,30116,-12910,30109,-12926,30103,-12941,30096,-12957,30090,-12972,30083,-12987,30076,-13003,30070,-13018,30063,-13034,30056,-13049,30050,-13064,30043,-13080,30036,-13095,30030,-13110,30023,-13126,30016,-13141,30009,-13156,30003,-13172,29996,-13187,29989,-13202,29983,-13218,29976,-13233,29969,-13248,29962,-13264,29955,-13279,29949,-13294,29942,-13310,29935,-13325,29928,-13340,29921,-13356,29915,-13371,29908,-13386,29901,-13401,29894,-13417,29887,-13432,29880,-13447,29873,-13463,29866,-13478,29860,-13493,29853,-13508,29846,-13524,29839,-13539,29832,-13554,29825,-13569,29818,-13585,29811,-13600,29804,-13615,29797,-13630,29790,-13646,29783,-13661,29776,-13676,29769,-13691,29762,-13707,29755,-13722,29748,-13737,29741,-13752,29734,-13767,29727,-13783,29720,-13798,29713,-13813,29706,-13828,29699,-13843,29692,-13859,29685,-13874,29678,-13889,29670,-13904,29663,-13919,29656,-13934,29649,-13950,29642,-13965,29635,-13980,29628,-13995,29621,-14010,29613,-14025,29606,-14040,29599,-14056,29592,-14071,29585,-14086,29577,-14101,29570,-14116,29563,-14131,29556,-14146,29548,-14161,29541,-14177,29534,-14192,29527,-14207,29519,-14222,29512,-14237,29505,-14252,29498,-14267,29490,-14282,29483,-14297,29476,-14312,29468,-14327,29461,-14343,29454,-14358,29446,-14373,29439,-14388,29432,-14403,29424,-14418,29417,-14433,29410,-14448,29402,-14463,29395,-14478,29387,-14493,29380,-14508,29372,-14523,29365,-14538,29358,-14553,29350,-14568,29343,-14583,29335,-14598,29328,-14613,29320,-14628,29313,-14643,29305,-14658,29298,-14673,29290,-14688,29283,-14703,29275,-14718,29268,-14733,29260,-14748,29253,-14763,29245,-14778,29238,-14793,29230,-14808,29222,-14823,29215,-14838,29207,-14853,29200,-14867,29192,-14882,29184,-14897,29177,-14912,29169,-14927,29162,-14942,29154,-14957,29146,-14972,29139,-14987,29131,-15002,29123,-15017,29116,-15031,29108,-15046,29100,-15061,29092,-15076,29085,-15091,29077,-15106,29069,-15121,29062,-15136,29054,-15150,29046,-15165,29038,-15180,29031,-15195,29023,-15210,29015,-15225,29007,-15239,28999,-15254,28992,-15269,28984,-15284,28976,-15299,28968,-15314,28960,-15328,28953,-15343,28945,-15358,28937,-15373,28929,-15388,28921,-15402,28913,-15417,28905,-15432,28897,-15447,28890,-15462,28882,-15476,28874,-15491,28866,-15506,28858,-15521,28850,-15535,28842,-15550,28834,-15565,28826,-15580,28818,-15594,28810,-15609,28802,-15624,28794,-15639,28786,-15653,28778,-15668,28770,-15683,28762,-15697,28754,-15712,28746,-15727,28738,-15741,28730,-15756,28722,-15771,28714,-15786,28706,-15800,28698,-15815,28690,-15830,28681,-15844,28673,-15859,28665,-15874,28657,-15888,28649,-15903,28641,-15918,28633,-15932,28625,-15947,28616,-15961,28608,-15976,28600,-15991,28592,-16005,28584,-16020,28575,-16035,28567,-16049,28559,-16064,28551,-16078,28543,-16093,28534,-16108,28526,-16122,28518,-16137,28510,-16151,28501,-16166,28493,-16180,28485,-16195,28477,-16210,28468,-16224,28460,-16239,28452,-16253,28443,-16268,28435,-16282,28427,-16297,28418,-16311,28410,-16326,28402,-16340,28393,-16355,28385,-16369,28377,-16384,28368,-16399,28360,-16413,28351,-16428,28343,-16442,28335,-16456,28326,-16471,28318,-16485,28309,-16500,28301,-16514,28292,-16529,28284,-16543,28275,-16558,28267,-16572,28259,-16587,28250,-16601,28242,-16616,28233,-16630,28225,-16644,28216,-16659,28208,-16673,28199,-16688,28190,-16702,28182,-16717,28173,-16731,28165,-16745,28156,-16760,28148,-16774,28139,-16789,28131,-16803,28122,-16817,28113,-16832,28105,-16846,28096,-16860,28087,-16875,28079,-16889,28070,-16904,28062,-16918,28053,-16932,28044,-16947,28036,-16961,28027,-16975,28018,-16990,28009,-17004,28001,-17018,27992,-17033,27983,-17047,27975,-17061,27966,-17075,27957,-17090,27948,-17104,27940,-17118,27931,-17133,27922,-17147,27913,-17161,27905,-17175,27896,-17190,27887,-17204,27878,-17218,27869,-17233,27861,-17247,27852,-17261,27843,-17275,27834,-17289,27825,-17304,27816,-17318,27808,-17332,27799,-17346,27790,-17361,27781,-17375,27772,-17389,27763,-17403,27754,-17417,27745,-17432,27736,-17446,27728,-17460,27719,-17474,27710,-17488,27701,-17502,27692,-17517,27683,-17531,27674,-17545,27665,-17559,27656,-17573,27647,-17587,27638,-17601,27629,-17616,27620,-17630,27611,-17644,27602,-17658,27593,-17672,27584,-17686,27575,-17700,27566,-17714,27557,-17728,27548,-17743,27538,-17757,27529,-17771,27520,-17785,27511,-17799,27502,-17813,27493,-17827,27484,-17841,27475,-17855,27466,-17869,27456,-17883,27447,-17897,27438,-17911,27429,-17925,27420,-17939,27411,-17953,27401,-17967,27392,-17981,27383,-17995,27374,-18009,27365,-18023,27355,-18037,27346,-18051,27337,-18065,27328,-18079,27319,-18093,27309,-18107,27300,-18121,27291,-18135,27281,-18149,27272,-18163,27263,-18177,27254,-18191,27244,-18205,27235,-18219,27226,-18233,27216,-18247,27207,-18261,27198,-18274,27188,-18288,27179,-18302,27170,-18316,27160,-18330,27151,-18344,27141,-18358,27132,-18372,27123,-18386,27113,-18399,27104,-18413,27094,-18427,27085,-18441,27076,-18455,27066,-18469,27057,-18483,27047,-18496,27038,-18510,27028,-18524,27019,-18538,27009,-18552,27000,-18565,26990,-18579,26981,-18593,26971,-18607,26962,-18621,26952,-18634,26943,-18648,26933,-18662,26924,-18676,26914,-18690,26905,-18703,26895,-18717,26885,-18731,26876,-18745,26866,-18758,26857,-18772,26847,-18786,26837,-18799,26828,-18813,26818,-18827,26809,-18841,26799,-18854,26789,-18868,26780,-18882,26770,-18895,26760,-18909,26751,-18923,26741,-18936,26731,-18950,26722,-18964,26712,-18977,26702,-18991,26692,-19005,26683,-19018,26673,-19032,26663,-19046,26654,-19059,26644,-19073,26634,-19087,26624,-19100,26615,-19114,26605,-19127,26595,-19141,26585,-19155,26575,-19168,26566,-19182,26556,-19195,26546,-19209,26536,-19222,26526,-19236,26516,-19250,26507,-19263,26497,-19277,26487,-19290,26477,-19304,26467,-19317,26457,-19331,26447,-19344,26437,-19358,26428,-19371,26418,-19385,26408,-19398,26398,-19412,26388,-19425,26378,-19439,26368,-19452,26358,-19466,26348,-19479,26338,-19493,26328,-19506,26318,-19520,26308,-19533,26298,-19547,26288,-19560,26278,-19574,26268,-19587,26258,-19600,26248,-19614,26238,-19627,26228,-19641,26218,-19654,26208,-19668,26198,-19681,26188,-19694,26178,-19708,26168,-19721,26158,-19734,26148,-19748,26137,-19761,26127,-19775,26117,-19788,26107,-19801,26097,-19815,26087,-19828,26077,-19841,26067,-19855,26056,-19868,26046,-19881,26036,-19895,26026,-19908,26016,-19921,26006,-19934,25995,-19948,25985,-19961,25975,-19974,25965,-19988,25954,-20001,25944,-20014,25934,-20027,25924,-20041,25913,-20054,25903,-20067,25893,-20080,25883,-20094,25872,-20107,25862,-20120,25852,-20133,25842,-20147,25831,-20160,25821,-20173,25811,-20186,25800,-20199,25790,-20213,25780,-20226,25769,-20239,25759,-20252,25749,-20265,25738,-20278,25728,-20292,25717,-20305,25707,-20318,25697,-20331,25686,-20344,25676,-20357,25665,-20370,25655,-20384,25645,-20397,25634,-20410,25624,-20423,25613,-20436,25603,-20449,25592,-20462,25582,-20475,25571,-20488,25561,-20501,25550,-20514,25540,-20528,25529,-20541,25519,-20554,25508,-20567,25498,-20580,25487,-20593,25477,-20606,25466,-20619,25456,-20632,25445,-20645,25435,-20658,25424,-20671,25414,-20684,25403,-20697,25392,-20710,25382,-20723,25371,-20736,25361,-20749,25350,-20762,25339,-20775,25329,-20788,25318,-20801,25307,-20814,25297,-20826,25286,-20839,25276,-20852,25265,-20865,25254,-20878,25243,-20891,25233,-20904,25222,-20917,25211,-20930,25201,-20943,25190,-20956,25179,-20968,25169,-20981,25158,-20994,25147,-21007,25136,-21020,25126,-21033,25115,-21046,25104,-21058,25093,-21071,25083,-21084,25072,-21097,25061,-21110,25050,-21123,25039,-21135,25029,-21148,25018,-21161,25007,-21174,24996,-21187,24985,-21199,24974,-21212,24964,-21225,24953,-21238,24942,-21250,24931,-21263,24920,-21276,24909,-21289,24898,-21301,24887,-21314,24877,-21327,24866,-21340,24855,-21352,24844,-21365,24833,-21378,24822,-21390,24811,-21403,24800,-21416,24789,-21428,24778,-21441,24767,-21454,24756,-21466,24745,-21479,24734,-21492,24723,-21504,24712,-21517,24701,-21530,24690,-21542,24679,-21555,24668,-21567,24657,-21580,24646,-21593,24635,-21605,24624,-21618,24613,-21630,24602,-21643,24591,-21656,24580,-21668,24569,-21681,24558,-21693,24546,-21706,24535,-21718,24524,-21731,24513,-21744,24502,-21756,24491,-21769,24480,-21781,24469,-21794,24457,-21806,24446,-21819,24435,-21831,24424,-21844,24413,-21856,24402,-21869,24390,-21881,24379,-21894,24368,-21906,24357,-21918,24346,-21931,24334,-21943,24323,-21956,24312,-21968,24301,-21981,24289,-21993,24278,-22005,24267,-22018,24256,-22030,24244,-22043,24233,-22055,24222,-22067,24211,-22080,24199,-22092,24188,-22105,24177,-22117,24165,-22129,24154,-22142,24143,-22154,24131,-22166,24120,-22179,24109,-22191,24097,-22203,24086,-22216,24075,-22228,24063,-22240,24052,-22253,24041,-22265,24029,-22277,24018,-22289,24006,-22302,23995,-22314,23984,-22326,23972,-22339,23961,-22351,23949,-22363,23938,-22375,23926,-22388,23915,-22400,23903,-22412,23892,-22424,23881,-22436,23869,-22449,23858,-22461,23846,-22473,23835,-22485,23823,-22497,23812,-22510,23800,-22522,23789,-22534,23777,-22546,23766,-22558,23754,-22570,23742,-22583,23731,-22595,23719,-22607,23708,-22619,23696,-22631,23685,-22643,23673,-22655,23661,-22667,23650,-22679,23638,-22692,23627,-22704,23615,-22716,23603,-22728,23592,-22740,23580,-22752,23569,-22764,23557,-22776,23545,-22788,23534,-22800,23522,-22812,23510,-22824,23499,-22836,23487,-22848,23475,-22860,23464,-22872,23452,-22884,23440,-22896,23428,-22908,23417,-22920,23405,-22932,23393,-22944,23382,-22956,23370,-22968,23358,-22980,23346,-22992,23335,-23004,23323,-23016,23311,-23028,23299,-23040,23287,-23051,23276,-23063,23264,-23075,23252,-23087,23240,-23099,23228,-23111,23217,-23123,23205,-23135,23193,-23147,23181,-23158,23169,-23170,23157,-23182,23146,-23194,23134,-23206,23122,-23218,23110,-23229,23098,-23241,23086,-23253,23074,-23265,23062,-23277,23050,-23288,23039,-23300,23027,-23312,23015,-23324,23003,-23336,22991,-23347,22979,-23359,22967,-23371,22955,-23383,22943,-23394,22931,-23406,22919,-23418,22907,-23429,22895,-23441,22883,-23453,22871,-23465,22859,-23476,22847,-23488,22835,-23500,22823,-23511,22811,-23523,22799,-23535,22787,-23546,22775,-23558,22763,-23570,22751,-23581,22739,-23593,22727,-23604,22715,-23616,22703,-23628,22691,-23639,22678,-23651,22666,-23662,22654,-23674,22642,-23686,22630,-23697,22618,-23709,22606,-23720,22594,-23732,22582,-23743,22569,-23755,22557,-23767,22545,-23778,22533,-23790,22521,-23801,22509,-23813,22496,-23824,22484,-23836,22472,-23847,22460,-23859,22448,-23870,22435,-23882,22423,-23893,22411,-23904,22399,-23916,22387,-23927,22374,-23939,22362,-23950,22350,-23962,22338,-23973,22325,-23985,22313,-23996,22301,-24007,22288,-24019,22276,-24030,22264,-24042,22252,-24053,22239,-24064,22227,-24076,22215,-24087,22202,-24098,22190,-24110,22178,-24121,22165,-24132,22153,-24144,22141,-24155,22128,-24166,22116,-24178,22104,-24189,22091,-24200,22079,-24212,22066,-24223,22054,-24234,22042,-24245,22029,-24257,22017,-24268,22004,-24279,21992,-24290,21980,-24302,21967,-24313,21955,-24324,21942,-24335,21930,-24347,21917,-24358,21905,-24369,21893,-24380,21880,-24391,21868,-24403,21855,-24414,21843,-24425,21830,-24436,21818,-24447,21805,-24458,21793,-24470,21780,-24481,21768,-24492,21755,-24503,21743,-24514,21730,-24525,21717,-24536,21705,-24547,21692,-24559,21680,-24570,21667,-24581,21655,-24592,21642,-24603,21629,-24614,21617,-24625,21604,-24636,21592,-24647,21579,-24658,21566,-24669,21554,-24680,21541,-24691,21529,-24702,21516,-24713,21503,-24724,21491,-24735,21478,-24746,21465,-24757,21453,-24768,21440,-24779,21427,-24790,21415,-24801,21402,-24812,21389,-24823,21377,-24834,21364,-24845,21351,-24856,21339,-24867,21326,-24878,21313,-24888,21300,-24899,21288,-24910,21275,-24921,21262,-24932,21249,-24943,21237,-24954,21224,-24965,21211,-24975,21198,-24986,21186,-24997,21173,-25008,21160,-25019,21147,-25030,21134,-25040,21122,-25051,21109,-25062,21096,-25073,21083,-25084,21070,-25094,21057,-25105,21045,-25116,21032,-25127,21019,-25137,21006,-25148,20993,-25159,20980,-25170,20967,-25180,20955,-25191,20942,-25202,20929,-25212,20916,-25223,20903,-25234,20890,-25244,20877,-25255,20864,-25266,20851,-25277,20838,-25287,20825,-25298,20813,-25308,20800,-25319,20787,-25330,20774,-25340,20761,-25351,20748,-25362,20735,-25372,20722,-25383,20709,-25393,20696,-25404,20683,-25415,20670,-25425,20657,-25436,20644,-25446,20631,-25457,20618,-25467,20605,-25478,20592,-25488,20579,-25499,20566,-25509,20553,-25520,20540,-25530,20527,-25541,20513,-25551,20500,-25562,20487,-25572,20474,-25583,20461,-25593,20448,-25604,20435,-25614,20422,-25625,20409,-25635,20396,-25646,20383,-25656,20369,-25666,20356,-25677,20343,-25687,20330,-25698,20317,-25708,20304,-25718,20291,-25729,20277,-25739,20264,-25750,20251,-25760,20238,-25770,20225,-25781,20212,-25791,20198,-25801,20185,-25812,20172,-25822,20159,-25832,20146,-25843,20132,-25853,20119,-25863,20106,-25873,20093,-25884,20079,-25894,20066,-25904,20053,-25914,20040,-25925,20026,-25935,20013,-25945,20000,-25955,19987,-25966,19973,-25976,19960,-25986,19947,-25996,19933,-26007,19920,-26017,19907,-26027,19894,-26037,19880,-26047,19867,-26057,19854,-26068,19840,-26078,19827,-26088,19814,-26098,19800,-26108,19787,-26118,19774,-26128,19760,-26138,19747,-26149,19733,-26159,19720,-26169,19707,-26179,19693,-26189,19680,-26199,19667,-26209,19653,-26219,19640,-26229,19626,-26239,19613,-26249,19599,-26259,19586,-26269,19573,-26279,19559,-26289,19546,-26299,19532,-26309,19519,-26319,19505,-26329,19492,-26339,19478,-26349,19465,-26359,19451,-26369,19438,-26379,19424,-26389,19411,-26399,19397,-26409,19384,-26419,19370,-26429,19357,-26438,19343,-26448,19330,-26458,19316,-26468,19303,-26478,19289,-26488,19276,-26498,19262,-26508,19249,-26517,19235,-26527,19221,-26537,19208,-26547,19194,-26557,19181,-26567,19167,-26576,19154,-26586,19140,-26596,19126,-26606,19113,-26616,19099,-26625,19086,-26635,19072,-26645,19058,-26655,19045,-26664,19031,-26674,19017,-26684,19004,-26693,18990,-26703,18976,-26713,18963,-26723,18949,-26732,18935,-26742,18922,-26752,18908,-26761,18894,-26771,18881,-26781,18867,-26790,18853,-26800,18840,-26810,18826,-26819,18812,-26829,18798,-26838,18785,-26848,18771,-26858,18757,-26867,18744,-26877,18730,-26886,18716,-26896,18702,-26906,18689,-26915,18675,-26925,18661,-26934,18647,-26944,18633,-26953,18620,-26963,18606,-26972,18592,-26982,18578,-26991,18564,-27001,18551,-27010,18537,-27020,18523,-27029,18509,-27039,18495,-27048,18482,-27058,18468,-27067,18454,-27077,18440,-27086,18426,-27095,18412,-27105,18398,-27114,18385,-27124,18371,-27133,18357,-27142,18343,-27152,18329,-27161,18315,-27171,18301,-27180,18287,-27189,18273,-27199,18260,-27208,18246,-27217,18232,-27227,18218,-27236,18204,-27245,18190,-27255,18176,-27264,18162,-27273,18148,-27282,18134,-27292,18120,-27301,18106,-27310,18092,-27320,18078,-27329,18064,-27338,18050,-27347,18036,-27356,18022,-27366,18008,-27375,17994,-27384,17980,-27393,17966,-27402,17952,-27412,17938,-27421,17924,-27430,17910,-27439,17896,-27448,17882,-27457,17868,-27467,17854,-27476,17840,-27485,17826,-27494,17812,-27503,17798,-27512,17784,-27521,17770,-27530,17756,-27539,17742,-27549,17727,-27558,17713,-27567,17699,-27576,17685,-27585,17671,-27594,17657,-27603,17643,-27612,17629,-27621,17615,-27630,17600,-27639,17586,-27648,17572,-27657,17558,-27666,17544,-27675,17530,-27684,17516,-27693,17501,-27702,17487,-27711,17473,-27720,17459,-27729,17445,-27737,17431,-27746,17416,-27755,17402,-27764,17388,-27773,17374,-27782,17360,-27791,17345,-27800,17331,-27809,17317,-27817,17303,-27826,17288,-27835,17274,-27844,17260,-27853,17246,-27862,17232,-27870,17217,-27879,17203,-27888,17189,-27897,17174,-27906,17160,-27914,17146,-27923,17132,-27932,17117,-27941,17103,-27949,17089,-27958,17074,-27967,17060,-27976,17046,-27984,17032,-27993,17017,-28002,17003,-28010,16989,-28019,16974,-28028,16960,-28037,16946,-28045,16931,-28054,16917,-28063,16903,-28071,16888,-28080,16874,-28088,16859,-28097,16845,-28106,16831,-28114,16816,-28123,16802,-28132,16788,-28140,16773,-28149,16759,-28157,16744,-28166,16730,-28174,16716,-28183,16701,-28191,16687,-28200,16672,-28209,16658,-28217,16643,-28226,16629,-28234,16615,-28243,16600,-28251,16586,-28260,16571,-28268,16557,-28276,16542,-28285,16528,-28293,16513,-28302,16499,-28310,16484,-28319,16470,-28327,16455,-28336,16441,-28344,16427,-28352,16412,-28361,16398,-28369,16383,-28378,16368,-28386,16354,-28394,16339,-28403,16325,-28411,16310,-28419,16296,-28428,16281,-28436,16267,-28444,16252,-28453,16238,-28461,16223,-28469,16209,-28478,16194,-28486,16179,-28494,16165,-28502,16150,-28511,16136,-28519,16121,-28527,16107,-28535,16092,-28544,16077,-28552,16063,-28560,16048,-28568,16034,-28576,16019,-28585,16004,-28593,15990,-28601,15975,-28609,15960,-28617,15946,-28626,15931,-28634,15917,-28642,15902,-28650,15887,-28658,15873,-28666,15858,-28674,15843,-28682,15829,-28691,15814,-28699,15799,-28707,15785,-28715,15770,-28723,15755,-28731,15740,-28739,15726,-28747,15711,-28755,15696,-28763,15682,-28771,15667,-28779,15652,-28787,15638,-28795,15623,-28803,15608,-28811,15593,-28819,15579,-28827,15564,-28835,15549,-28843,15534,-28851,15520,-28859,15505,-28867,15490,-28875,15475,-28883,15461,-28891,15446,-28898,15431,-28906,15416,-28914,15401,-28922,15387,-28930,15372,-28938,15357,-28946,15342,-28954,15327,-28961,15313,-28969,15298,-28977,15283,-28985,15268,-28993,15253,-29000,15238,-29008,15224,-29016,15209,-29024,15194,-29032,15179,-29039,15164,-29047,15149,-29055,15135,-29063,15120,-29070,15105,-29078,15090,-29086,15075,-29093,15060,-29101,15045,-29109,15030,-29117,15016,-29124,15001,-29132,14986,-29140,14971,-29147,14956,-29155,14941,-29163,14926,-29170,14911,-29178,14896,-29185,14881,-29193,14866,-29201,14852,-29208,14837,-29216,14822,-29223,14807,-29231,14792,-29239,14777,-29246,14762,-29254,14747,-29261,14732,-29269,14717,-29276,14702,-29284,14687,-29291,14672,-29299,14657,-29306,14642,-29314,14627,-29321,14612,-29329,14597,-29336,14582,-29344,14567,-29351,14552,-29359,14537,-29366,14522,-29373,14507,-29381,14492,-29388,14477,-29396,14462,-29403,14447,-29411,14432,-29418,14417,-29425,14402,-29433,14387,-29440,14372,-29447,14357,-29455,14342,-29462,14326,-29469,14311,-29477,14296,-29484,14281,-29491,14266,-29499,14251,-29506,14236,-29513,14221,-29520,14206,-29528,14191,-29535,14176,-29542,14160,-29549,14145,-29557,14130,-29564,14115,-29571,14100,-29578,14085,-29586,14070,-29593,14055,-29600,14039,-29607,14024,-29614,14009,-29622,13994,-29629,13979,-29636,13964,-29643,13949,-29650,13933,-29657,13918,-29664,13903,-29671,13888,-29679,13873,-29686,13858,-29693,13842,-29700,13827,-29707,13812,-29714,13797,-29721,13782,-29728,13766,-29735,13751,-29742,13736,-29749,13721,-29756,13706,-29763,13690,-29770,13675,-29777,13660,-29784,13645,-29791,13629,-29798,13614,-29805,13599,-29812,13584,-29819,13568,-29826,13553,-29833,13538,-29840,13523,-29847,13507,-29854,13492,-29861,13477,-29867,13462,-29874,13446,-29881,13431,-29888,13416,-29895,13400,-29902,13385,-29909,13370,-29916,13355,-29922,13339,-29929,13324,-29936,13309,-29943,13293,-29950,13278,-29956,13263,-29963,13247,-29970,13232,-29977,13217,-29984,13201,-29990,13186,-29997,13171,-30004,13155,-30010,13140,-30017,13125,-30024,13109,-30031,13094,-30037,13079,-30044,13063,-30051,13048,-30057,13033,-30064,13017,-30071,13002,-30077,12986,-30084,12971,-30091,12956,-30097,12940,-30104,12925,-30110,12909,-30117,12894,-30124,12879,-30130,12863,-30137,12848,-30143,12832,-30150,12817,-30157,12802,-30163,12786,-30170,12771,-30176,12755,-30183,12740,-30189,12724,-30196,12709,-30202,12694,-30209,12678,-30215,12663,-30222,12647,-30228,12632,-30235,12616,-30241,12601,-30248,12585,-30254,12570,-30260,12554,-30267,12539,-30273,12523,-30280,12508,-30286,12492,-30292,12477,-30299,12461,-30305,12446,-30312,12430,-30318,12415,-30324,12399,-30331,12384,-30337,12368,-30343,12353,-30350,12337,-30356,12322,-30362,12306,-30369,12291,-30375,12275,-30381,12260,-30387,12244,-30394,12229,-30400,12213,-30406,12198,-30412,12182,-30419,12166,-30425,12151,-30431,12135,-30437,12120,-30443,12104,-30450,12089,-30456,12073,-30462,12057,-30468,12042,-30474,12026,-30481,12011,-30487,11995,-30493,11980,-30499,11964,-30505,11948,-30511,11933,-30517,11917,-30523,11902,-30529,11886,-30536,11870,-30542,11855,-30548,11839,-30554,11823,-30560,11808,-30566,11792,-30572,11777,-30578,11761,-30584,11745,-30590,11730,-30596,11714,-30602,11698,-30608,11683,-30614,11667,-30620,11651,-30626,11636,-30632,11620,-30638,11604,-30644,11589,-30650,11573,-30656,11557,-30661,11542,-30667,11526,-30673,11510,-30679,11495,-30685,11479,-30691,11463,-30697,11448,-30703,11432,-30708,11416,-30714,11400,-30720,11385,-30726,11369,-30732,11353,-30738,11338,-30743,11322,-30749,11306,-30755,11290,-30761,11275,-30767,11259,-30772,11243,-30778,11227,-30784,11212,-30789,11196,-30795,11180,-30801,11164,-30807,11149,-30812,11133,-30818,11117,-30824,11101,-30829,11086,-30835,11070,-30841,11054,-30846,11038,-30852,11023,-30858,11007,-30863,10991,-30869,10975,-30875,10959,-30880,10944,-30886,10928,-30891,10912,-30897,10896,-30903,10880,-30908,10865,-30914,10849,-30919,10833,-30925,10817,-30930,10801,-30936,10786,-30941,10770,-30947,10754,-30952,10738,-30958,10722,-30963,10706,-30969,10691,-30974,10675,-30980,10659,-30985,10643,-30991,10627,-30996,10611,-31002,10596,-31007,10580,-31012,10564,-31018,10548,-31023,10532,-31029,10516,-31034,10500,-31039,10484,-31045,10469,-31050,10453,-31055,10437,-31061,10421,-31066,10405,-31071,10389,-31077,10373,-31082,10357,-31087,10342,-31093,10326,-31098,10310,-31103,10294,-31108,10278,-31114,10262,-31119,10246,-31124,10230,-31129,10214,-31135,10198,-31140,10182,-31145,10166,-31150,10151,-31155,10135,-31161,10119,-31166,10103,-31171,10087,-31176,10071,-31181,10055,-31186,10039,-31192,10023,-31197,10007,-31202,9991,-31207,9975,-31212,9959,-31217,9943,-31222,9927,-31227,9911,-31232,9895,-31237,9879,-31243,9863,-31248,9847,-31253,9831,-31258,9815,-31263,9799,-31268,9783,-31273,9767,-31278,9751,-31283,9735,-31288,9719,-31293,9703,-31298,9687,-31303,9671,-31308,9655,-31312,9639,-31317,9623,-31322,9607,-31327,9591,-31332,9575,-31337,9559,-31342,9543,-31347,9527,-31352,9511,-31357,9495,-31361,9479,-31366,9463,-31371,9447,-31376,9431,-31381,9415,-31386,9399,-31390,9383,-31395,9367,-31400,9351,-31405,9335,-31410,9319,-31414,9303,-31419,9287,-31424,9270,-31429,9254,-31433,9238,-31438,9222,-31443,9206,-31447,9190,-31452,9174,-31457,9158,-31462,9142,-31466,9126,-31471,9110,-31476,9094,-31480,9077,-31485,9061,-31490,9045,-31494,9029,-31499,9013,-31503,8997,-31508,8981,-31513,8965,-31517,8949,-31522,8932,-31526,8916,-31531,8900,-31535,8884,-31540,8868,-31545,8852,-31549,8836,-31554,8820,-31558,8803,-31563,8787,-31567,8771,-31572,8755,-31576,8739,-31581,8723,-31585,8707,-31589,8690,-31594,8674,-31598,8658,-31603,8642,-31607,8626,-31612,8610,-31616,8593,-31620,8577,-31625,8561,-31629,8545,-31634,8529,-31638,8513,-31642,8496,-31647,8480,-31651,8464,-31655,8448,-31660,8432,-31664,8415,-31668,8399,-31673,8383,-31677,8367,-31681,8351,-31685,8334,-31690,8318,-31694,8302,-31698,8286,-31702,8270,-31707,8253,-31711,8237,-31715,8221,-31719,8205,-31724,8189,-31728,8172,-31732,8156,-31736,8140,-31740,8124,-31744,8107,-31749,8091,-31753,8075,-31757,8059,-31761,8042,-31765,8026,-31769,8010,-31773,7994,-31777,7977,-31781,7961,-31786,7945,-31790,7929,-31794,7912,-31798,7896,-31802,7880,-31806,7864,-31810,7847,-31814,7831,-31818,7815,-31822,7799,-31826,7782,-31830,7766,-31834,7750,-31838,7733,-31842,7717,-31846,7701,-31850,7685,-31854,7668,-31857,7652,-31861,7636,-31865,7619,-31869,7603,-31873,7587,-31877,7571,-31881,7554,-31885,7538,-31889,7522,-31892,7505,-31896,7489,-31900,7473,-31904,7456,-31908,7440,-31912,7424,-31915,7407,-31919,7391,-31923,7375,-31927,7358,-31930,7342,-31934,7326,-31938,7310,-31942,7293,-31945,7277,-31949,7261,-31953,7244,-31957,7228,-31960,7211,-31964,7195,-31968,7179,-31971,7162,-31975,7146,-31979,7130,-31982,7113,-31986,7097,-31990,7081,-31993,7064,-31997,7048,-32000,7032,-32004,7015,-32008,6999,-32011,6982,-32015,6966,-32018,6950,-32022,6933,-32025,6917,-32029,6901,-32033,6884,-32036,6868,-32040,6851,-32043,6835,-32047,6819,-32050,6802,-32054,6786,-32057,6770,-32060,6753,-32064,6737,-32067,6720,-32071,6704,-32074,6688,-32078,6671,-32081,6655,-32085,6638,-32088,6622,-32091,6606,-32095,6589,-32098,6573,-32101,6556,-32105,6540,-32108,6523,-32111,6507,-32115,6491,-32118,6474,-32121,6458,-32125,6441,-32128,6425,-32131,6408,-32135,6392,-32138,6376,-32141,6359,-32144,6343,-32148,6326,-32151,6310,-32154,6293,-32157,6277,-32161,6261,-32164,6244,-32167,6228,-32170,6211,-32173,6195,-32177,6178,-32180,6162,-32183,6145,-32186,6129,-32189,6112,-32192,6096,-32195,6080,-32198,6063,-32202,6047,-32205,6030,-32208,6014,-32211,5997,-32214,5981,-32217,5964,-32220,5948,-32223,5931,-32226,5915,-32229,5898,-32232,5882,-32235,5865,-32238,5849,-32241,5832,-32244,5816,-32247,5799,-32250,5783,-32253,5766,-32256,5750,-32259,5733,-32262,5717,-32265,5700,-32268,5684,-32271,5667,-32274,5651,-32276,5634,-32279,5618,-32282,5601,-32285,5585,-32288,5568,-32291,5552,-32294,5535,-32296,5519,-32299,5502,-32302,5486,-32305,5469,-32308,5453,-32311,5436,-32313,5420,-32316,5403,-32319,5387,-32322,5370,-32324,5354,-32327,5337,-32330,5321,-32333,5304,-32335,5287,-32338,5271,-32341,5254,-32343,5238,-32346,5221,-32349,5205,-32351,5188,-32354,5172,-32357,5155,-32359,5139,-32362,5122,-32365,5106,-32367,5089,-32370,5072,-32372,5056,-32375,5039,-32378,5023,-32380,5006,-32383,4990,-32385,4973,-32388,4957,-32390,4940,-32393,4923,-32395,4907,-32398,4890,-32400,4874,-32403,4857,-32405,4841,-32408,4824,-32410,4807,-32413,4791,-32415,4774,-32418,4758,-32420,4741,-32423,4725,-32425,4708,-32427,4691,-32430,4675,-32432,4658,-32435,4642,-32437,4625,-32439,4608,-32442,4592,-32444,4575,-32446,4559,-32449,4542,-32451,4525,-32453,4509,-32456,4492,-32458,4476,-32460,4459,-32463,4443,-32465,4426,-32467,4409,-32469,4393,-32472,4376,-32474,4359,-32476,4343,-32478,4326,-32481,4310,-32483,4293,-32485,4276,-32487,4260,-32489,4243,-32492,4227,-32494,4210,-32496,4193,-32498,4177,-32500,4160,-32502,4144,-32504,4127,-32507,4110,-32509,4094,-32511,4077,-32513,4060,-32515,4044,-32517,4027,-32519,4011,-32521,3994,-32523,3977,-32525,3961,-32527,3944,-32529,3927,-32531,3911,-32533,3894,-32535,3877,-32537,3861,-32539,3844,-32541,3828,-32543,3811,-32545,3794,-32547,3778,-32549,3761,-32551,3744,-32553,3728,-32555,3711,-32557,3694,-32559,3678,-32560,3661,-32562,3644,-32564,3628,-32566,3611,-32568,3594,-32570,3578,-32572,3561,-32573,3545,-32575,3528,-32577,3511,-32579,3495,-32581,3478,-32582,3461,-32584,3445,-32586,3428,-32588,3411,-32589,3395,-32591,3378,-32593,3361,-32595,3345,-32596,3328,-32598,3311,-32600,3295,-32601,3278,-32603,3261,-32605,3245,-32606,3228,-32608,3211,-32610,3195,-32611,3178,-32613,3161,-32615,3145,-32616,3128,-32618,3111,-32619,3094,-32621,3078,-32623,3061,-32624,3044,-32626,3028,-32627,3011,-32629,2994,-32630,2978,-32632,2961,-32633,2944,-32635,2928,-32636,2911,-32638,2894,-32639,2878,-32641,2861,-32642,2844,-32644,2828,-32645,2811,-32647,2794,-32648,2777,-32650,2761,-32651,2744,-32652,2727,-32654,2711,-32655,2694,-32657,2677,-32658,2661,-32659,2644,-32661,2627,-32662,2610,-32663,2594,-32665,2577,-32666,2560,-32667,2544,-32669,2527,-32670,2510,-32671,2494,-32672,2477,-32674,2460,-32675,2443,-32676,2427,-32677,2410,-32679,2393,-32680,2377,-32681,2360,-32682,2343,-32684,2326,-32685,2310,-32686,2293,-32687,2276,-32688,2260,-32689,2243,-32691,2226,-32692,2209,-32693,2193,-32694,2176,-32695,2159,-32696,2143,-32697,2126,-32698,2109,-32700,2092,-32701,2076,-32702,2059,-32703,2042,-32704,2026,-32705,2009,-32706,1992,-32707,1975,-32708,1959,-32709,1942,-32710,1925,-32711,1908,-32712,1892,-32713,1875,-32714,1858,-32715,1842,-32716,1825,-32717,1808,-32718,1791,-32718,1775,-32719,1758,-32720,1741,-32721,1724,-32722,1708,-32723,1691,-32724,1674,-32725,1658,-32726,1641,-32726,1624,-32727,1607,-32728,1591,-32729,1574,-32730,1557,-32730,1540,-32731,1524,-32732,1507,-32733,1490,-32734,1473,-32734,1457,-32735,1440,-32736,1423,-32737,1406,-32737,1390,-32738,1373,-32739,1356,-32739,1339,-32740,1323,-32741,1306,-32741,1289,-32742,1273,-32743,1256,-32743,1239,-32744,1222,-32745,1206,-32745,1189,-32746,1172,-32747,1155,-32747,1139,-32748,1122,-32748,1105,-32749,1088,-32749,1072,-32750,1055,-32751,1038,-32751,1021,-32752,1005,-32752,988,-32753,971,-32753,954,-32754,938,-32754,921,-32755,904,-32755,887,-32755,871,-32756,854,-32756,837,-32757,820,-32757,804,-32758,787,-32758,770,-32758,753,-32759,737,-32759,720,-32760,703,-32760,686,-32760,670,-32761,653,-32761,636,-32761,619,-32762,603,-32762,586,-32762,569,-32763,552,-32763,536,-32763,519,-32763,502,-32764,485,-32764,469,-32764,452,-32764,435,-32765,418,-32765,402,-32765,385,-32765,368,-32765,351,-32766,335,-32766,318,-32766,301,-32766,284,-32766,268,-32766,251,-32767,234,-32767,217,-32767,201,-32767,184,-32767,167,-32767,150,-32767,134,-32767,117,-32767,100,-32767,83,-32767,67,-32767,50,-32767,33,-32767,16,-32767,0,-32767,-17,-32767,-34,-32767,-51,-32767,-68,-32767,-84,-32767,-101,-32767,-118,-32767,-135,-32767,-151,-32767,-168,-32767,-185,-32767,-202,-32767,-218,-32767,-235,-32767,-252,-32767,-269,-32766,-285,-32766,-302,-32766,-319,-32766,-336,-32766,-352,-32766,-369,-32765,-386,-32765,-403,-32765,-419,-32765,-436,-32765,-453,-32764,-470,-32764,-486,-32764,-503,-32764,-520,-32763,-537,-32763,-553,-32763,-570,-32763,-587,-32762,-604,-32762,-620,-32762,-637,-32761,-654,-32761,-671,-32761,-687,-32760,-704,-32760,-721,-32760,-738,-32759,-754,-32759,-771,-32758,-788,-32758,-805,-32758,-821,-32757,-838,-32757,-855,-32756,-872,-32756,-888,-32755,-905,-32755,-922,-32755,-939,-32754,-955,-32754,-972,-32753,-989,-32753,-1006,-32752,-1022,-32752,-1039,-32751,-1056,-32751,-1073,-32750,-1089,-32749,-1106,-32749,-1123,-32748,-1140,-32748,-1156,-32747,-1173,-32747,-1190,-32746,-1207,-32745,-1223,-32745,-1240,-32744,-1257,-32743,-1274,-32743,-1290,-32742,-1307,-32741,-1324,-32741,-1340,-32740,-1357,-32739,-1374,-32739,-1391,-32738,-1407,-32737,-1424,-32737,-1441,-32736,-1458,-32735,-1474,-32734,-1491,-32734,-1508,-32733,-1525,-32732,-1541,-32731,-1558,-32730,-1575,-32730,-1592,-32729,-1608,-32728,-1625,-32727,-1642,-32726,-1659,-32726,-1675,-32725,-1692,-32724,-1709,-32723,-1725,-32722,-1742,-32721,-1759,-32720,-1776,-32719,-1792,-32718,-1809,-32718,-1826,-32717,-1843,-32716,-1859,-32715,-1876,-32714,-1893,-32713,-1909,-32712,-1926,-32711,-1943,-32710,-1960,-32709,-1976,-32708,-1993,-32707,-2010,-32706,-2027,-32705,-2043,-32704,-2060,-32703,-2077,-32702,-2093,-32701,-2110,-32700,-2127,-32698,-2144,-32697,-2160,-32696,-2177,-32695,-2194,-32694,-2210,-32693,-2227,-32692,-2244,-32691,-2261,-32689,-2277,-32688,-2294,-32687,-2311,-32686,-2327,-32685,-2344,-32684,-2361,-32682,-2378,-32681,-2394,-32680,-2411,-32679,-2428,-32677,-2444,-32676,-2461,-32675,-2478,-32674,-2495,-32672,-2511,-32671,-2528,-32670,-2545,-32669,-2561,-32667,-2578,-32666,-2595,-32665,-2611,-32663,-2628,-32662,-2645,-32661,-2662,-32659,-2678,-32658,-2695,-32657,-2712,-32655,-2728,-32654,-2745,-32652,-2762,-32651,-2778,-32650,-2795,-32648,-2812,-32647,-2829,-32645,-2845,-32644,-2862,-32642,-2879,-32641,-2895,-32639,-2912,-32638,-2929,-32636,-2945,-32635,-2962,-32633,-2979,-32632,-2995,-32630,-3012,-32629,-3029,-32627,-3045,-32626,-3062,-32624,-3079,-32623,-3095,-32621,-3112,-32619,-3129,-32618,-3146,-32616,-3162,-32615,-3179,-32613,-3196,-32611,-3212,-32610,-3229,-32608,-3246,-32606,-3262,-32605,-3279,-32603,-3296,-32601,-3312,-32600,-3329,-32598,-3346,-32596,-3362,-32595,-3379,-32593,-3396,-32591,-3412,-32589,-3429,-32588,-3446,-32586,-3462,-32584,-3479,-32582,-3496,-32581,-3512,-32579,-3529,-32577,-3546,-32575,-3562,-32573,-3579,-32572,-3595,-32570,-3612,-32568,-3629,-32566,-3645,-32564,-3662,-32562,-3679,-32560,-3695,-32559,-3712,-32557,-3729,-32555,-3745,-32553,-3762,-32551,-3779,-32549,-3795,-32547,-3812,-32545,-3829,-32543,-3845,-32541,-3862,-32539,-3878,-32537,-3895,-32535,-3912,-32533,-3928,-32531,-3945,-32529,-3962,-32527,-3978,-32525,-3995,-32523,-4012,-32521,-4028,-32519,-4045,-32517,-4061,-32515,-4078,-32513,-4095,-32511,-4111,-32509,-4128,-32507,-4145,-32504,-4161,-32502,-4178,-32500,-4194,-32498,-4211,-32496,-4228,-32494,-4244,-32492,-4261,-32489,-4277,-32487,-4294,-32485,-4311,-32483,-4327,-32481,-4344,-32478,-4360,-32476,-4377,-32474,-4394,-32472,-4410,-32469,-4427,-32467,-4444,-32465,-4460,-32463,-4477,-32460,-4493,-32458,-4510,-32456,-4526,-32453,-4543,-32451,-4560,-32449,-4576,-32446,-4593,-32444,-4609,-32442,-4626,-32439,-4643,-32437,-4659,-32435,-4676,-32432,-4692,-32430,-4709,-32427,-4726,-32425,-4742,-32423,-4759,-32420,-4775,-32418,-4792,-32415,-4808,-32413,-4825,-32410,-4842,-32408,-4858,-32405,-4875,-32403,-4891,-32400,-4908,-32398,-4924,-32395,-4941,-32393,-4958,-32390,-4974,-32388,-4991,-32385,-5007,-32383,-5024,-32380,-5040,-32378,-5057,-32375,-5073,-32372,-5090,-32370,-5107,-32367,-5123,-32365,-5140,-32362,-5156,-32359,-5173,-32357,-5189,-32354,-5206,-32351,-5222,-32349,-5239,-32346,-5255,-32343,-5272,-32341,-5288,-32338,-5305,-32335,-5322,-32333,-5338,-32330,-5355,-32327,-5371,-32324,-5388,-32322,-5404,-32319,-5421,-32316,-5437,-32313,-5454,-32311,-5470,-32308,-5487,-32305,-5503,-32302,-5520,-32299,-5536,-32296,-5553,-32294,-5569,-32291,-5586,-32288,-5602,-32285,-5619,-32282,-5635,-32279,-5652,-32276,-5668,-32274,-5685,-32271,-5701,-32268,-5718,-32265,-5734,-32262,-5751,-32259,-5767,-32256,-5784,-32253,-5800,-32250,-5817,-32247,-5833,-32244,-5850,-32241,-5866,-32238,-5883,-32235,-5899,-32232,-5916,-32229,-5932,-32226,-5949,-32223,-5965,-32220,-5982,-32217,-5998,-32214,-6015,-32211,-6031,-32208,-6048,-32205,-6064,-32202,-6081,-32198,-6097,-32195,-6113,-32192,-6130,-32189,-6146,-32186,-6163,-32183,-6179,-32180,-6196,-32177,-6212,-32173,-6229,-32170,-6245,-32167,-6262,-32164,-6278,-32161,-6294,-32157,-6311,-32154,-6327,-32151,-6344,-32148,-6360,-32144,-6377,-32141,-6393,-32138,-6409,-32135,-6426,-32131,-6442,-32128,-6459,-32125,-6475,-32121,-6492,-32118,-6508,-32115,-6524,-32111,-6541,-32108,-6557,-32105,-6574,-32101,-6590,-32098,-6607,-32095,-6623,-32091,-6639,-32088,-6656,-32085,-6672,-32081,-6689,-32078,-6705,-32074,-6721,-32071,-6738,-32067,-6754,-32064,-6771,-32060,-6787,-32057,-6803,-32054,-6820,-32050,-6836,-32047,-6852,-32043,-6869,-32040,-6885,-32036,-6902,-32033,-6918,-32029,-6934,-32025,-6951,-32022,-6967,-32018,-6983,-32015,-7000,-32011,-7016,-32008,-7033,-32004,-7049,-32000,-7065,-31997,-7082,-31993,-7098,-31990,-7114,-31986,-7131,-31982,-7147,-31979,-7163,-31975,-7180,-31971,-7196,-31968,-7212,-31964,-7229,-31960,-7245,-31957,-7262,-31953,-7278,-31949,-7294,-31945,-7311,-31942,-7327,-31938,-7343,-31934,-7359,-31930,-7376,-31927,-7392,-31923,-7408,-31919,-7425,-31915,-7441,-31912,-7457,-31908,-7474,-31904,-7490,-31900,-7506,-31896,-7523,-31892,-7539,-31889,-7555,-31885,-7572,-31881,-7588,-31877,-7604,-31873,-7620,-31869,-7637,-31865,-7653,-31861,-7669,-31857,-7686,-31854,-7702,-31850,-7718,-31846,-7734,-31842,-7751,-31838,-7767,-31834,-7783,-31830,-7800,-31826,-7816,-31822,-7832,-31818,-7848,-31814,-7865,-31810,-7881,-31806,-7897,-31802,-7913,-31798,-7930,-31794,-7946,-31790,-7962,-31786,-7978,-31781,-7995,-31777,-8011,-31773,-8027,-31769,-8043,-31765,-8060,-31761,-8076,-31757,-8092,-31753,-8108,-31749,-8125,-31744,-8141,-31740,-8157,-31736,-8173,-31732,-8190,-31728,-8206,-31724,-8222,-31719,-8238,-31715,-8254,-31711,-8271,-31707,-8287,-31702,-8303,-31698,-8319,-31694,-8335,-31690,-8352,-31685,-8368,-31681,-8384,-31677,-8400,-31673,-8416,-31668,-8433,-31664,-8449,-31660,-8465,-31655,-8481,-31651,-8497,-31647,-8514,-31642,-8530,-31638,-8546,-31634,-8562,-31629,-8578,-31625,-8594,-31620,-8611,-31616,-8627,-31612,-8643,-31607,-8659,-31603,-8675,-31598,-8691,-31594,-8708,-31589,-8724,-31585,-8740,-31581,-8756,-31576,-8772,-31572,-8788,-31567,-8804,-31563,-8821,-31558,-8837,-31554,-8853,-31549,-8869,-31545,-8885,-31540,-8901,-31535,-8917,-31531,-8933,-31526,-8950,-31522,-8966,-31517,-8982,-31513,-8998,-31508,-9014,-31503,-9030,-31499,-9046,-31494,-9062,-31490,-9078,-31485,-9095,-31480,-9111,-31476,-9127,-31471,-9143,-31466,-9159,-31462,-9175,-31457,-9191,-31452,-9207,-31447,-9223,-31443,-9239,-31438,-9255,-31433,-9271,-31429,-9288,-31424,-9304,-31419,-9320,-31414,-9336,-31410,-9352,-31405,-9368,-31400,-9384,-31395,-9400,-31390,-9416,-31386,-9432,-31381,-9448,-31376,-9464,-31371,-9480,-31366,-9496,-31361,-9512,-31357,-9528,-31352,-9544,-31347,-9560,-31342,-9576,-31337,-9592,-31332,-9608,-31327,-9624,-31322,-9640,-31317,-9656,-31312,-9672,-31308,-9688,-31303,-9704,-31298,-9720,-31293,-9736,-31288,-9752,-31283,-9768,-31278,-9784,-31273,-9800,-31268,-9816,-31263,-9832,-31258,-9848,-31253,-9864,-31248,-9880,-31243,-9896,-31237,-9912,-31232,-9928,-31227,-9944,-31222,-9960,-31217,-9976,-31212,-9992,-31207,-10008,-31202,-10024,-31197,-10040,-31192,-10056,-31186,-10072,-31181,-10088,-31176,-10104,-31171,-10120,-31166,-10136,-31161,-10152,-31155,-10167,-31150,-10183,-31145,-10199,-31140,-10215,-31135,-10231,-31129,-10247,-31124,-10263,-31119,-10279,-31114,-10295,-31108,-10311,-31103,-10327,-31098,-10343,-31093,-10358,-31087,-10374,-31082,-10390,-31077,-10406,-31071,-10422,-31066,-10438,-31061,-10454,-31055,-10470,-31050,-10485,-31045,-10501,-31039,-10517,-31034,-10533,-31029,-10549,-31023,-10565,-31018,-10581,-31012,-10597,-31007,-10612,-31002,-10628,-30996,-10644,-30991,-10660,-30985,-10676,-30980,-10692,-30974,-10707,-30969,-10723,-30963,-10739,-30958,-10755,-30952,-10771,-30947,-10787,-30941,-10802,-30936,-10818,-30930,-10834,-30925,-10850,-30919,-10866,-30914,-10881,-30908,-10897,-30903,-10913,-30897,-10929,-30891,-10945,-30886,-10960,-30880,-10976,-30875,-10992,-30869,-11008,-30863,-11024,-30858,-11039,-30852,-11055,-30846,-11071,-30841,-11087,-30835,-11102,-30829,-11118,-30824,-11134,-30818,-11150,-30812,-11165,-30807,-11181,-30801,-11197,-30795,-11213,-30789,-11228,-30784,-11244,-30778,-11260,-30772,-11276,-30767,-11291,-30761,-11307,-30755,-11323,-30749,-11339,-30743,-11354,-30738,-11370,-30732,-11386,-30726,-11401,-30720,-11417,-30714,-11433,-30708,-11449,-30703,-11464,-30697,-11480,-30691,-11496,-30685,-11511,-30679,-11527,-30673,-11543,-30667,-11558,-30661,-11574,-30656,-11590,-30650,-11605,-30644,-11621,-30638,-11637,-30632,-11652,-30626,-11668,-30620,-11684,-30614,-11699,-30608,-11715,-30602,-11731,-30596,-11746,-30590,-11762,-30584,-11778,-30578,-11793,-30572,-11809,-30566,-11824,-30560,-11840,-30554,-11856,-30548,-11871,-30542,-11887,-30536,-11903,-30529,-11918,-30523,-11934,-30517,-11949,-30511,-11965,-30505,-11981,-30499,-11996,-30493,-12012,-30487,-12027,-30481,-12043,-30474,-12058,-30468,-12074,-30462,-12090,-30456,-12105,-30450,-12121,-30443,-12136,-30437,-12152,-30431,-12167,-30425,-12183,-30419,-12199,-30412,-12214,-30406,-12230,-30400,-12245,-30394,-12261,-30387,-12276,-30381,-12292,-30375,-12307,-30369,-12323,-30362,-12338,-30356,-12354,-30350,-12369,-30343,-12385,-30337,-12400,-30331,-12416,-30324,-12431,-30318,-12447,-30312,-12462,-30305,-12478,-30299,-12493,-30292,-12509,-30286,-12524,-30280,-12540,-30273,-12555,-30267,-12571,-30260,-12586,-30254,-12602,-30248,-12617,-30241,-12633,-30235,-12648,-30228,-12664,-30222,-12679,-30215,-12695,-30209,-12710,-30202,-12725,-30196,-12741,-30189,-12756,-30183,-12772,-30176,-12787,-30170,-12803,-30163,-12818,-30157,-12833,-30150,-12849,-30143,-12864,-30137,-12880,-30130,-12895,-30124,-12910,-30117,-12926,-30110,-12941,-30104,-12957,-30097,-12972,-30091,-12987,-30084,-13003,-30077,-13018,-30071,-13034,-30064,-13049,-30057,-13064,-30051,-13080,-30044,-13095,-30037,-13110,-30031,-13126,-30024,-13141,-30017,-13156,-30010,-13172,-30004,-13187,-29997,-13202,-29990,-13218,-29984,-13233,-29977,-13248,-29970,-13264,-29963,-13279,-29956,-13294,-29950,-13310,-29943,-13325,-29936,-13340,-29929,-13356,-29922,-13371,-29916,-13386,-29909,-13401,-29902,-13417,-29895,-13432,-29888,-13447,-29881,-13463,-29874,-13478,-29867,-13493,-29861,-13508,-29854,-13524,-29847,-13539,-29840,-13554,-29833,-13569,-29826,-13585,-29819,-13600,-29812,-13615,-29805,-13630,-29798,-13646,-29791,-13661,-29784,-13676,-29777,-13691,-29770,-13707,-29763,-13722,-29756,-13737,-29749,-13752,-29742,-13767,-29735,-13783,-29728,-13798,-29721,-13813,-29714,-13828,-29707,-13843,-29700,-13859,-29693,-13874,-29686,-13889,-29679,-13904,-29671,-13919,-29664,-13934,-29657,-13950,-29650,-13965,-29643,-13980,-29636,-13995,-29629,-14010,-29622,-14025,-29614,-14040,-29607,-14056,-29600,-14071,-29593,-14086,-29586,-14101,-29578,-14116,-29571,-14131,-29564,-14146,-29557,-14161,-29549,-14177,-29542,-14192,-29535,-14207,-29528,-14222,-29520,-14237,-29513,-14252,-29506,-14267,-29499,-14282,-29491,-14297,-29484,-14312,-29477,-14327,-29469,-14343,-29462,-14358,-29455,-14373,-29447,-14388,-29440,-14403,-29433,-14418,-29425,-14433,-29418,-14448,-29411,-14463,-29403,-14478,-29396,-14493,-29388,-14508,-29381,-14523,-29373,-14538,-29366,-14553,-29359,-14568,-29351,-14583,-29344,-14598,-29336,-14613,-29329,-14628,-29321,-14643,-29314,-14658,-29306,-14673,-29299,-14688,-29291,-14703,-29284,-14718,-29276,-14733,-29269,-14748,-29261,-14763,-29254,-14778,-29246,-14793,-29239,-14808,-29231,-14823,-29223,-14838,-29216,-14853,-29208,-14867,-29201,-14882,-29193,-14897,-29185,-14912,-29178,-14927,-29170,-14942,-29163,-14957,-29155,-14972,-29147,-14987,-29140,-15002,-29132,-15017,-29124,-15031,-29117,-15046,-29109,-15061,-29101,-15076,-29093,-15091,-29086,-15106,-29078,-15121,-29070,-15136,-29063,-15150,-29055,-15165,-29047,-15180,-29039,-15195,-29032,-15210,-29024,-15225,-29016,-15239,-29008,-15254,-29000,-15269,-28993,-15284,-28985,-15299,-28977,-15314,-28969,-15328,-28961,-15343,-28954,-15358,-28946,-15373,-28938,-15388,-28930,-15402,-28922,-15417,-28914,-15432,-28906,-15447,-28898,-15462,-28891,-15476,-28883,-15491,-28875,-15506,-28867,-15521,-28859,-15535,-28851,-15550,-28843,-15565,-28835,-15580,-28827,-15594,-28819,-15609,-28811,-15624,-28803,-15639,-28795,-15653,-28787,-15668,-28779,-15683,-28771,-15697,-28763,-15712,-28755,-15727,-28747,-15741,-28739,-15756,-28731,-15771,-28723,-15786,-28715,-15800,-28707,-15815,-28699,-15830,-28691,-15844,-28682,-15859,-28674,-15874,-28666,-15888,-28658,-15903,-28650,-15918,-28642,-15932,-28634,-15947,-28626,-15961,-28617,-15976,-28609,-15991,-28601,-16005,-28593,-16020,-28585,-16035,-28576,-16049,-28568,-16064,-28560,-16078,-28552,-16093,-28544,-16108,-28535,-16122,-28527,-16137,-28519,-16151,-28511,-16166,-28502,-16180,-28494,-16195,-28486,-16210,-28478,-16224,-28469,-16239,-28461,-16253,-28453,-16268,-28444,-16282,-28436,-16297,-28428,-16311,-28419,-16326,-28411,-16340,-28403,-16355,-28394,-16369,-28386,-16384,-28378,-16399,-28369,-16413,-28361,-16428,-28352,-16442,-28344,-16456,-28336,-16471,-28327,-16485,-28319,-16500,-28310,-16514,-28302,-16529,-28293,-16543,-28285,-16558,-28276,-16572,-28268,-16587,-28260,-16601,-28251,-16616,-28243,-16630,-28234,-16644,-28226,-16659,-28217,-16673,-28209,-16688,-28200,-16702,-28191,-16717,-28183,-16731,-28174,-16745,-28166,-16760,-28157,-16774,-28149,-16789,-28140,-16803,-28132,-16817,-28123,-16832,-28114,-16846,-28106,-16860,-28097,-16875,-28088,-16889,-28080,-16904,-28071,-16918,-28063,-16932,-28054,-16947,-28045,-16961,-28037,-16975,-28028,-16990,-28019,-17004,-28010,-17018,-28002,-17033,-27993,-17047,-27984,-17061,-27976,-17075,-27967,-17090,-27958,-17104,-27949,-17118,-27941,-17133,-27932,-17147,-27923,-17161,-27914,-17175,-27906,-17190,-27897,-17204,-27888,-17218,-27879,-17233,-27870,-17247,-27862,-17261,-27853,-17275,-27844,-17289,-27835,-17304,-27826,-17318,-27817,-17332,-27809,-17346,-27800,-17361,-27791,-17375,-27782,-17389,-27773,-17403,-27764,-17417,-27755,-17432,-27746,-17446,-27737,-17460,-27729,-17474,-27720,-17488,-27711,-17502,-27702,-17517,-27693,-17531,-27684,-17545,-27675,-17559,-27666,-17573,-27657,-17587,-27648,-17601,-27639,-17616,-27630,-17630,-27621,-17644,-27612,-17658,-27603,-17672,-27594,-17686,-27585,-17700,-27576,-17714,-27567,-17728,-27558,-17743,-27549,-17757,-27539,-17771,-27530,-17785,-27521,-17799,-27512,-17813,-27503,-17827,-27494,-17841,-27485,-17855,-27476,-17869,-27467,-17883,-27457,-17897,-27448,-17911,-27439,-17925,-27430,-17939,-27421,-17953,-27412,-17967,-27402,-17981,-27393,-17995,-27384,-18009,-27375,-18023,-27366,-18037,-27356,-18051,-27347,-18065,-27338,-18079,-27329,-18093,-27320,-18107,-27310,-18121,-27301,-18135,-27292,-18149,-27282,-18163,-27273,-18177,-27264,-18191,-27255,-18205,-27245,-18219,-27236,-18233,-27227,-18247,-27217,-18261,-27208,-18274,-27199,-18288,-27189,-18302,-27180,-18316,-27171,-18330,-27161,-18344,-27152,-18358,-27142,-18372,-27133,-18386,-27124,-18399,-27114,-18413,-27105,-18427,-27095,-18441,-27086,-18455,-27077,-18469,-27067,-18483,-27058,-18496,-27048,-18510,-27039,-18524,-27029,-18538,-27020,-18552,-27010,-18565,-27001,-18579,-26991,-18593,-26982,-18607,-26972,-18621,-26963,-18634,-26953,-18648,-26944,-18662,-26934,-18676,-26925,-18690,-26915,-18703,-26906,-18717,-26896,-18731,-26886,-18745,-26877,-18758,-26867,-18772,-26858,-18786,-26848,-18799,-26838,-18813,-26829,-18827,-26819,-18841,-26810,-18854,-26800,-18868,-26790,-18882,-26781,-18895,-26771,-18909,-26761,-18923,-26752,-18936,-26742,-18950,-26732,-18964,-26723,-18977,-26713,-18991,-26703,-19005,-26693,-19018,-26684,-19032,-26674,-19046,-26664,-19059,-26655,-19073,-26645,-19087,-26635,-19100,-26625,-19114,-26616,-19127,-26606,-19141,-26596,-19155,-26586,-19168,-26576,-19182,-26567,-19195,-26557,-19209,-26547,-19222,-26537,-19236,-26527,-19250,-26517,-19263,-26508,-19277,-26498,-19290,-26488,-19304,-26478,-19317,-26468,-19331,-26458,-19344,-26448,-19358,-26438,-19371,-26429,-19385,-26419,-19398,-26409,-19412,-26399,-19425,-26389,-19439,-26379,-19452,-26369,-19466,-26359,-19479,-26349,-19493,-26339,-19506,-26329,-19520,-26319,-19533,-26309,-19547,-26299,-19560,-26289,-19574,-26279,-19587,-26269,-19600,-26259,-19614,-26249,-19627,-26239,-19641,-26229,-19654,-26219,-19668,-26209,-19681,-26199,-19694,-26189,-19708,-26179,-19721,-26169,-19734,-26159,-19748,-26149,-19761,-26138,-19775,-26128,-19788,-26118,-19801,-26108,-19815,-26098,-19828,-26088,-19841,-26078,-19855,-26068,-19868,-26057,-19881,-26047,-19895,-26037,-19908,-26027,-19921,-26017,-19934,-26007,-19948,-25996,-19961,-25986,-19974,-25976,-19988,-25966,-20001,-25955,-20014,-25945,-20027,-25935,-20041,-25925,-20054,-25914,-20067,-25904,-20080,-25894,-20094,-25884,-20107,-25873,-20120,-25863,-20133,-25853,-20147,-25843,-20160,-25832,-20173,-25822,-20186,-25812,-20199,-25801,-20213,-25791,-20226,-25781,-20239,-25770,-20252,-25760,-20265,-25750,-20278,-25739,-20292,-25729,-20305,-25718,-20318,-25708,-20331,-25698,-20344,-25687,-20357,-25677,-20370,-25666,-20384,-25656,-20397,-25646,-20410,-25635,-20423,-25625,-20436,-25614,-20449,-25604,-20462,-25593,-20475,-25583,-20488,-25572,-20501,-25562,-20514,-25551,-20528,-25541,-20541,-25530,-20554,-25520,-20567,-25509,-20580,-25499,-20593,-25488,-20606,-25478,-20619,-25467,-20632,-25457,-20645,-25446,-20658,-25436,-20671,-25425,-20684,-25415,-20697,-25404,-20710,-25393,-20723,-25383,-20736,-25372,-20749,-25362,-20762,-25351,-20775,-25340,-20788,-25330,-20801,-25319,-20814,-25308,-20826,-25298,-20839,-25287,-20852,-25277,-20865,-25266,-20878,-25255,-20891,-25244,-20904,-25234,-20917,-25223,-20930,-25212,-20943,-25202,-20956,-25191,-20968,-25180,-20981,-25170,-20994,-25159,-21007,-25148,-21020,-25137,-21033,-25127,-21046,-25116,-21058,-25105,-21071,-25094,-21084,-25084,-21097,-25073,-21110,-25062,-21123,-25051,-21135,-25040,-21148,-25030,-21161,-25019,-21174,-25008,-21187,-24997,-21199,-24986,-21212,-24975,-21225,-24965,-21238,-24954,-21250,-24943,-21263,-24932,-21276,-24921,-21289,-24910,-21301,-24899,-21314,-24888,-21327,-24878,-21340,-24867,-21352,-24856,-21365,-24845,-21378,-24834,-21390,-24823,-21403,-24812,-21416,-24801,-21428,-24790,-21441,-24779,-21454,-24768,-21466,-24757,-21479,-24746,-21492,-24735,-21504,-24724,-21517,-24713,-21530,-24702,-21542,-24691,-21555,-24680,-21567,-24669,-21580,-24658,-21593,-24647,-21605,-24636,-21618,-24625,-21630,-24614,-21643,-24603,-21656,-24592,-21668,-24581,-21681,-24570,-21693,-24559,-21706,-24547,-21718,-24536,-21731,-24525,-21744,-24514,-21756,-24503,-21769,-24492,-21781,-24481,-21794,-24470,-21806,-24458,-21819,-24447,-21831,-24436,-21844,-24425,-21856,-24414,-21869,-24403,-21881,-24391,-21894,-24380,-21906,-24369,-21918,-24358,-21931,-24347,-21943,-24335,-21956,-24324,-21968,-24313,-21981,-24302,-21993,-24290,-22005,-24279,-22018,-24268,-22030,-24257,-22043,-24245,-22055,-24234,-22067,-24223,-22080,-24212,-22092,-24200,-22105,-24189,-22117,-24178,-22129,-24166,-22142,-24155,-22154,-24144,-22166,-24132,-22179,-24121,-22191,-24110,-22203,-24098,-22216,-24087,-22228,-24076,-22240,-24064,-22253,-24053,-22265,-24042,-22277,-24030,-22289,-24019,-22302,-24007,-22314,-23996,-22326,-23985,-22339,-23973,-22351,-23962,-22363,-23950,-22375,-23939,-22388,-23927,-22400,-23916,-22412,-23904,-22424,-23893,-22436,-23882,-22449,-23870,-22461,-23859,-22473,-23847,-22485,-23836,-22497,-23824,-22510,-23813,-22522,-23801,-22534,-23790,-22546,-23778,-22558,-23767,-22570,-23755,-22583,-23743,-22595,-23732,-22607,-23720,-22619,-23709,-22631,-23697,-22643,-23686,-22655,-23674,-22667,-23662,-22679,-23651,-22692,-23639,-22704,-23628,-22716,-23616,-22728,-23604,-22740,-23593,-22752,-23581,-22764,-23570,-22776,-23558,-22788,-23546,-22800,-23535,-22812,-23523,-22824,-23511,-22836,-23500,-22848,-23488,-22860,-23476,-22872,-23465,-22884,-23453,-22896,-23441,-22908,-23429,-22920,-23418,-22932,-23406,-22944,-23394,-22956,-23383,-22968,-23371,-22980,-23359,-22992,-23347,-23004,-23336,-23016,-23324,-23028,-23312,-23040,-23300,-23051,-23288,-23063,-23277,-23075,-23265,-23087,-23253,-23099,-23241,-23111,-23229,-23123,-23218,-23135,-23206,-23147,-23194,-23158,-23182,-23170,-23170,-23182,-23158,-23194,-23147,-23206,-23135,-23218,-23123,-23229,-23111,-23241,-23099,-23253,-23087,-23265,-23075,-23277,-23063,-23288,-23051,-23300,-23040,-23312,-23028,-23324,-23016,-23336,-23004,-23347,-22992,-23359,-22980,-23371,-22968,-23383,-22956,-23394,-22944,-23406,-22932,-23418,-22920,-23429,-22908,-23441,-22896,-23453,-22884,-23465,-22872,-23476,-22860,-23488,-22848,-23500,-22836,-23511,-22824,-23523,-22812,-23535,-22800,-23546,-22788,-23558,-22776,-23570,-22764,-23581,-22752,-23593,-22740,-23604,-22728,-23616,-22716,-23628,-22704,-23639,-22692,-23651,-22679,-23662,-22667,-23674,-22655,-23686,-22643,-23697,-22631,-23709,-22619,-23720,-22607,-23732,-22595,-23743,-22583,-23755,-22570,-23767,-22558,-23778,-22546,-23790,-22534,-23801,-22522,-23813,-22510,-23824,-22497,-23836,-22485,-23847,-22473,-23859,-22461,-23870,-22449,-23882,-22436,-23893,-22424,-23904,-22412,-23916,-22400,-23927,-22388,-23939,-22375,-23950,-22363,-23962,-22351,-23973,-22339,-23985,-22326,-23996,-22314,-24007,-22302,-24019,-22289,-24030,-22277,-24042,-22265,-24053,-22253,-24064,-22240,-24076,-22228,-24087,-22216,-24098,-22203,-24110,-22191,-24121,-22179,-24132,-22166,-24144,-22154,-24155,-22142,-24166,-22129,-24178,-22117,-24189,-22105,-24200,-22092,-24212,-22080,-24223,-22067,-24234,-22055,-24245,-22043,-24257,-22030,-24268,-22018,-24279,-22005,-24290,-21993,-24302,-21981,-24313,-21968,-24324,-21956,-24335,-21943,-24347,-21931,-24358,-21918,-24369,-21906,-24380,-21894,-24391,-21881,-24403,-21869,-24414,-21856,-24425,-21844,-24436,-21831,-24447,-21819,-24458,-21806,-24470,-21794,-24481,-21781,-24492,-21769,-24503,-21756,-24514,-21744,-24525,-21731,-24536,-21718,-24547,-21706,-24559,-21693,-24570,-21681,-24581,-21668,-24592,-21656,-24603,-21643,-24614,-21630,-24625,-21618,-24636,-21605,-24647,-21593,-24658,-21580,-24669,-21567,-24680,-21555,-24691,-21542,-24702,-21530,-24713,-21517,-24724,-21504,-24735,-21492,-24746,-21479,-24757,-21466,-24768,-21454,-24779,-21441,-24790,-21428,-24801,-21416,-24812,-21403,-24823,-21390,-24834,-21378,-24845,-21365,-24856,-21352,-24867,-21340,-24878,-21327,-24888,-21314,-24899,-21301,-24910,-21289,-24921,-21276,-24932,-21263,-24943,-21250,-24954,-21238,-24965,-21225,-24975,-21212,-24986,-21199,-24997,-21187,-25008,-21174,-25019,-21161,-25030,-21148,-25040,-21135,-25051,-21123,-25062,-21110,-25073,-21097,-25084,-21084,-25094,-21071,-25105,-21058,-25116,-21046,-25127,-21033,-25137,-21020,-25148,-21007,-25159,-20994,-25170,-20981,-25180,-20968,-25191,-20956,-25202,-20943,-25212,-20930,-25223,-20917,-25234,-20904,-25244,-20891,-25255,-20878,-25266,-20865,-25277,-20852,-25287,-20839,-25298,-20826,-25308,-20814,-25319,-20801,-25330,-20788,-25340,-20775,-25351,-20762,-25362,-20749,-25372,-20736,-25383,-20723,-25393,-20710,-25404,-20697,-25415,-20684,-25425,-20671,-25436,-20658,-25446,-20645,-25457,-20632,-25467,-20619,-25478,-20606,-25488,-20593,-25499,-20580,-25509,-20567,-25520,-20554,-25530,-20541,-25541,-20528,-25551,-20514,-25562,-20501,-25572,-20488,-25583,-20475,-25593,-20462,-25604,-20449,-25614,-20436,-25625,-20423,-25635,-20410,-25646,-20397,-25656,-20384,-25666,-20370,-25677,-20357,-25687,-20344,-25698,-20331,-25708,-20318,-25718,-20305,-25729,-20292,-25739,-20278,-25750,-20265,-25760,-20252,-25770,-20239,-25781,-20226,-25791,-20213,-25801,-20199,-25812,-20186,-25822,-20173,-25832,-20160,-25843,-20147,-25853,-20133,-25863,-20120,-25873,-20107,-25884,-20094,-25894,-20080,-25904,-20067,-25914,-20054,-25925,-20041,-25935,-20027,-25945,-20014,-25955,-20001,-25966,-19988,-25976,-19974,-25986,-19961,-25996,-19948,-26007,-19934,-26017,-19921,-26027,-19908,-26037,-19895,-26047,-19881,-26057,-19868,-26068,-19855,-26078,-19841,-26088,-19828,-26098,-19815,-26108,-19801,-26118,-19788,-26128,-19775,-26138,-19761,-26149,-19748,-26159,-19734,-26169,-19721,-26179,-19708,-26189,-19694,-26199,-19681,-26209,-19668,-26219,-19654,-26229,-19641,-26239,-19627,-26249,-19614,-26259,-19600,-26269,-19587,-26279,-19574,-26289,-19560,-26299,-19547,-26309,-19533,-26319,-19520,-26329,-19506,-26339,-19493,-26349,-19479,-26359,-19466,-26369,-19452,-26379,-19439,-26389,-19425,-26399,-19412,-26409,-19398,-26419,-19385,-26429,-19371,-26438,-19358,-26448,-19344,-26458,-19331,-26468,-19317,-26478,-19304,-26488,-19290,-26498,-19277,-26508,-19263,-26517,-19250,-26527,-19236,-26537,-19222,-26547,-19209,-26557,-19195,-26567,-19182,-26576,-19168,-26586,-19155,-26596,-19141,-26606,-19127,-26616,-19114,-26625,-19100,-26635,-19087,-26645,-19073,-26655,-19059,-26664,-19046,-26674,-19032,-26684,-19018,-26693,-19005,-26703,-18991,-26713,-18977,-26723,-18964,-26732,-18950,-26742,-18936,-26752,-18923,-26761,-18909,-26771,-18895,-26781,-18882,-26790,-18868,-26800,-18854,-26810,-18841,-26819,-18827,-26829,-18813,-26838,-18799,-26848,-18786,-26858,-18772,-26867,-18758,-26877,-18745,-26886,-18731,-26896,-18717,-26906,-18703,-26915,-18690,-26925,-18676,-26934,-18662,-26944,-18648,-26953,-18634,-26963,-18621,-26972,-18607,-26982,-18593,-26991,-18579,-27001,-18565,-27010,-18552,-27020,-18538,-27029,-18524,-27039,-18510,-27048,-18496,-27058,-18483,-27067,-18469,-27077,-18455,-27086,-18441,-27095,-18427,-27105,-18413,-27114,-18399,-27124,-18386,-27133,-18372,-27142,-18358,-27152,-18344,-27161,-18330,-27171,-18316,-27180,-18302,-27189,-18288,-27199,-18274,-27208,-18261,-27217,-18247,-27227,-18233,-27236,-18219,-27245,-18205,-27255,-18191,-27264,-18177,-27273,-18163,-27282,-18149,-27292,-18135,-27301,-18121,-27310,-18107,-27320,-18093,-27329,-18079,-27338,-18065,-27347,-18051,-27356,-18037,-27366,-18023,-27375,-18009,-27384,-17995,-27393,-17981,-27402,-17967,-27412,-17953,-27421,-17939,-27430,-17925,-27439,-17911,-27448,-17897,-27457,-17883,-27467,-17869,-27476,-17855,-27485,-17841,-27494,-17827,-27503,-17813,-27512,-17799,-27521,-17785,-27530,-17771,-27539,-17757,-27549,-17743,-27558,-17728,-27567,-17714,-27576,-17700,-27585,-17686,-27594,-17672,-27603,-17658,-27612,-17644,-27621,-17630,-27630,-17616,-27639,-17601,-27648,-17587,-27657,-17573,-27666,-17559,-27675,-17545,-27684,-17531,-27693,-17517,-27702,-17502,-27711,-17488,-27720,-17474,-27729,-17460,-27737,-17446,-27746,-17432,-27755,-17417,-27764,-17403,-27773,-17389,-27782,-17375,-27791,-17361,-27800,-17346,-27809,-17332,-27817,-17318,-27826,-17304,-27835,-17289,-27844,-17275,-27853,-17261,-27862,-17247,-27870,-17233,-27879,-17218,-27888,-17204,-27897,-17190,-27906,-17175,-27914,-17161,-27923,-17147,-27932,-17133,-27941,-17118,-27949,-17104,-27958,-17090,-27967,-17075,-27976,-17061,-27984,-17047,-27993,-17033,-28002,-17018,-28010,-17004,-28019,-16990,-28028,-16975,-28037,-16961,-28045,-16947,-28054,-16932,-28063,-16918,-28071,-16904,-28080,-16889,-28088,-16875,-28097,-16860,-28106,-16846,-28114,-16832,-28123,-16817,-28132,-16803,-28140,-16789,-28149,-16774,-28157,-16760,-28166,-16745,-28174,-16731,-28183,-16717,-28191,-16702,-28200,-16688,-28209,-16673,-28217,-16659,-28226,-16644,-28234,-16630,-28243,-16616,-28251,-16601,-28260,-16587,-28268,-16572,-28276,-16558,-28285,-16543,-28293,-16529,-28302,-16514,-28310,-16500,-28319,-16485,-28327,-16471,-28336,-16456,-28344,-16442,-28352,-16428,-28361,-16413,-28369,-16399,-28378,-16384,-28386,-16369,-28394,-16355,-28403,-16340,-28411,-16326,-28419,-16311,-28428,-16297,-28436,-16282,-28444,-16268,-28453,-16253,-28461,-16239,-28469,-16224,-28478,-16210,-28486,-16195,-28494,-16180,-28502,-16166,-28511,-16151,-28519,-16137,-28527,-16122,-28535,-16108,-28544,-16093,-28552,-16078,-28560,-16064,-28568,-16049,-28576,-16035,-28585,-16020,-28593,-16005,-28601,-15991,-28609,-15976,-28617,-15961,-28626,-15947,-28634,-15932,-28642,-15918,-28650,-15903,-28658,-15888,-28666,-15874,-28674,-15859,-28682,-15844,-28691,-15830,-28699,-15815,-28707,-15800,-28715,-15786,-28723,-15771,-28731,-15756,-28739,-15741,-28747,-15727,-28755,-15712,-28763,-15697,-28771,-15683,-28779,-15668,-28787,-15653,-28795,-15639,-28803,-15624,-28811,-15609,-28819,-15594,-28827,-15580,-28835,-15565,-28843,-15550,-28851,-15535,-28859,-15521,-28867,-15506,-28875,-15491,-28883,-15476,-28891,-15462,-28898,-15447,-28906,-15432,-28914,-15417,-28922,-15402,-28930,-15388,-28938,-15373,-28946,-15358,-28954,-15343,-28961,-15328,-28969,-15314,-28977,-15299,-28985,-15284,-28993,-15269,-29000,-15254,-29008,-15239,-29016,-15225,-29024,-15210,-29032,-15195,-29039,-15180,-29047,-15165,-29055,-15150,-29063,-15136,-29070,-15121,-29078,-15106,-29086,-15091,-29093,-15076,-29101,-15061,-29109,-15046,-29117,-15031,-29124,-15017,-29132,-15002,-29140,-14987,-29147,-14972,-29155,-14957,-29163,-14942,-29170,-14927,-29178,-14912,-29185,-14897,-29193,-14882,-29201,-14867,-29208,-14853,-29216,-14838,-29223,-14823,-29231,-14808,-29239,-14793,-29246,-14778,-29254,-14763,-29261,-14748,-29269,-14733,-29276,-14718,-29284,-14703,-29291,-14688,-29299,-14673,-29306,-14658,-29314,-14643,-29321,-14628,-29329,-14613,-29336,-14598,-29344,-14583,-29351,-14568,-29359,-14553,-29366,-14538,-29373,-14523,-29381,-14508,-29388,-14493,-29396,-14478,-29403,-14463,-29411,-14448,-29418,-14433,-29425,-14418,-29433,-14403,-29440,-14388,-29447,-14373,-29455,-14358,-29462,-14343,-29469,-14327,-29477,-14312,-29484,-14297,-29491,-14282,-29499,-14267,-29506,-14252,-29513,-14237,-29520,-14222,-29528,-14207,-29535,-14192,-29542,-14177,-29549,-14161,-29557,-14146,-29564,-14131,-29571,-14116,-29578,-14101,-29586,-14086,-29593,-14071,-29600,-14056,-29607,-14040,-29614,-14025,-29622,-14010,-29629,-13995,-29636,-13980,-29643,-13965,-29650,-13950,-29657,-13934,-29664,-13919,-29671,-13904,-29679,-13889,-29686,-13874,-29693,-13859,-29700,-13843,-29707,-13828,-29714,-13813,-29721,-13798,-29728,-13783,-29735,-13767,-29742,-13752,-29749,-13737,-29756,-13722,-29763,-13707,-29770,-13691,-29777,-13676,-29784,-13661,-29791,-13646,-29798,-13630,-29805,-13615,-29812,-13600,-29819,-13585,-29826,-13569,-29833,-13554,-29840,-13539,-29847,-13524,-29854,-13508,-29861,-13493,-29867,-13478,-29874,-13463,-29881,-13447,-29888,-13432,-29895,-13417,-29902,-13401,-29909,-13386,-29916,-13371,-29922,-13356,-29929,-13340,-29936,-13325,-29943,-13310,-29950,-13294,-29956,-13279,-29963,-13264,-29970,-13248,-29977,-13233,-29984,-13218,-29990,-13202,-29997,-13187,-30004,-13172,-30010,-13156,-30017,-13141,-30024,-13126,-30031,-13110,-30037,-13095,-30044,-13080,-30051,-13064,-30057,-13049,-30064,-13034,-30071,-13018,-30077,-13003,-30084,-12987,-30091,-12972,-30097,-12957,-30104,-12941,-30110,-12926,-30117,-12910,-30124,-12895,-30130,-12880,-30137,-12864,-30143,-12849,-30150,-12833,-30157,-12818,-30163,-12803,-30170,-12787,-30176,-12772,-30183,-12756,-30189,-12741,-30196,-12725,-30202,-12710,-30209,-12695,-30215,-12679,-30222,-12664,-30228,-12648,-30235,-12633,-30241,-12617,-30248,-12602,-30254,-12586,-30260,-12571,-30267,-12555,-30273,-12540,-30280,-12524,-30286,-12509,-30292,-12493,-30299,-12478,-30305,-12462,-30312,-12447,-30318,-12431,-30324,-12416,-30331,-12400,-30337,-12385,-30343,-12369,-30350,-12354,-30356,-12338,-30362,-12323,-30369,-12307,-30375,-12292,-30381,-12276,-30387,-12261,-30394,-12245,-30400,-12230,-30406,-12214,-30412,-12199,-30419,-12183,-30425,-12167,-30431,-12152,-30437,-12136,-30443,-12121,-30450,-12105,-30456,-12090,-30462,-12074,-30468,-12058,-30474,-12043,-30481,-12027,-30487,-12012,-30493,-11996,-30499,-11981,-30505,-11965,-30511,-11949,-30517,-11934,-30523,-11918,-30529,-11903,-30536,-11887,-30542,-11871,-30548,-11856,-30554,-11840,-30560,-11824,-30566,-11809,-30572,-11793,-30578,-11778,-30584,-11762,-30590,-11746,-30596,-11731,-30602,-11715,-30608,-11699,-30614,-11684,-30620,-11668,-30626,-11652,-30632,-11637,-30638,-11621,-30644,-11605,-30650,-11590,-30656,-11574,-30661,-11558,-30667,-11543,-30673,-11527,-30679,-11511,-30685,-11496,-30691,-11480,-30697,-11464,-30703,-11449,-30708,-11433,-30714,-11417,-30720,-11401,-30726,-11386,-30732,-11370,-30738,-11354,-30743,-11339,-30749,-11323,-30755,-11307,-30761,-11291,-30767,-11276,-30772,-11260,-30778,-11244,-30784,-11228,-30789,-11213,-30795,-11197,-30801,-11181,-30807,-11165,-30812,-11150,-30818,-11134,-30824,-11118,-30829,-11102,-30835,-11087,-30841,-11071,-30846,-11055,-30852,-11039,-30858,-11024,-30863,-11008,-30869,-10992,-30875,-10976,-30880,-10960,-30886,-10945,-30891,-10929,-30897,-10913,-30903,-10897,-30908,-10881,-30914,-10866,-30919,-10850,-30925,-10834,-30930,-10818,-30936,-10802,-30941,-10787,-30947,-10771,-30952,-10755,-30958,-10739,-30963,-10723,-30969,-10707,-30974,-10692,-30980,-10676,-30985,-10660,-30991,-10644,-30996,-10628,-31002,-10612,-31007,-10597,-31012,-10581,-31018,-10565,-31023,-10549,-31029,-10533,-31034,-10517,-31039,-10501,-31045,-10485,-31050,-10470,-31055,-10454,-31061,-10438,-31066,-10422,-31071,-10406,-31077,-10390,-31082,-10374,-31087,-10358,-31093,-10343,-31098,-10327,-31103,-10311,-31108,-10295,-31114,-10279,-31119,-10263,-31124,-10247,-31129,-10231,-31135,-10215,-31140,-10199,-31145,-10183,-31150,-10167,-31155,-10152,-31161,-10136,-31166,-10120,-31171,-10104,-31176,-10088,-31181,-10072,-31186,-10056,-31192,-10040,-31197,-10024,-31202,-10008,-31207,-9992,-31212,-9976,-31217,-9960,-31222,-9944,-31227,-9928,-31232,-9912,-31237,-9896,-31243,-9880,-31248,-9864,-31253,-9848,-31258,-9832,-31263,-9816,-31268,-9800,-31273,-9784,-31278,-9768,-31283,-9752,-31288,-9736,-31293,-9720,-31298,-9704,-31303,-9688,-31308,-9672,-31312,-9656,-31317,-9640,-31322,-9624,-31327,-9608,-31332,-9592,-31337,-9576,-31342,-9560,-31347,-9544,-31352,-9528,-31357,-9512,-31361,-9496,-31366,-9480,-31371,-9464,-31376,-9448,-31381,-9432,-31386,-9416,-31390,-9400,-31395,-9384,-31400,-9368,-31405,-9352,-31410,-9336,-31414,-9320,-31419,-9304,-31424,-9288,-31429,-9271,-31433,-9255,-31438,-9239,-31443,-9223,-31447,-9207,-31452,-9191,-31457,-9175,-31462,-9159,-31466,-9143,-31471,-9127,-31476,-9111,-31480,-9095,-31485,-9078,-31490,-9062,-31494,-9046,-31499,-9030,-31503,-9014,-31508,-8998,-31513,-8982,-31517,-8966,-31522,-8950,-31526,-8933,-31531,-8917,-31535,-8901,-31540,-8885,-31545,-8869,-31549,-8853,-31554,-8837,-31558,-8821,-31563,-8804,-31567,-8788,-31572,-8772,-31576,-8756,-31581,-8740,-31585,-8724,-31589,-8708,-31594,-8691,-31598,-8675,-31603,-8659,-31607,-8643,-31612,-8627,-31616,-8611,-31620,-8594,-31625,-8578,-31629,-8562,-31634,-8546,-31638,-8530,-31642,-8514,-31647,-8497,-31651,-8481,-31655,-8465,-31660,-8449,-31664,-8433,-31668,-8416,-31673,-8400,-31677,-8384,-31681,-8368,-31685,-8352,-31690,-8335,-31694,-8319,-31698,-8303,-31702,-8287,-31707,-8271,-31711,-8254,-31715,-8238,-31719,-8222,-31724,-8206,-31728,-8190,-31732,-8173,-31736,-8157,-31740,-8141,-31744,-8125,-31749,-8108,-31753,-8092,-31757,-8076,-31761,-8060,-31765,-8043,-31769,-8027,-31773,-8011,-31777,-7995,-31781,-7978,-31786,-7962,-31790,-7946,-31794,-7930,-31798,-7913,-31802,-7897,-31806,-7881,-31810,-7865,-31814,-7848,-31818,-7832,-31822,-7816,-31826,-7800,-31830,-7783,-31834,-7767,-31838,-7751,-31842,-7734,-31846,-7718,-31850,-7702,-31854,-7686,-31857,-7669,-31861,-7653,-31865,-7637,-31869,-7620,-31873,-7604,-31877,-7588,-31881,-7572,-31885,-7555,-31889,-7539,-31892,-7523,-31896,-7506,-31900,-7490,-31904,-7474,-31908,-7457,-31912,-7441,-31915,-7425,-31919,-7408,-31923,-7392,-31927,-7376,-31930,-7359,-31934,-7343,-31938,-7327,-31942,-7311,-31945,-7294,-31949,-7278,-31953,-7262,-31957,-7245,-31960,-7229,-31964,-7212,-31968,-7196,-31971,-7180,-31975,-7163,-31979,-7147,-31982,-7131,-31986,-7114,-31990,-7098,-31993,-7082,-31997,-7065,-32000,-7049,-32004,-7033,-32008,-7016,-32011,-7000,-32015,-6983,-32018,-6967,-32022,-6951,-32025,-6934,-32029,-6918,-32033,-6902,-32036,-6885,-32040,-6869,-32043,-6852,-32047,-6836,-32050,-6820,-32054,-6803,-32057,-6787,-32060,-6771,-32064,-6754,-32067,-6738,-32071,-6721,-32074,-6705,-32078,-6689,-32081,-6672,-32085,-6656,-32088,-6639,-32091,-6623,-32095,-6607,-32098,-6590,-32101,-6574,-32105,-6557,-32108,-6541,-32111,-6524,-32115,-6508,-32118,-6492,-32121,-6475,-32125,-6459,-32128,-6442,-32131,-6426,-32135,-6409,-32138,-6393,-32141,-6377,-32144,-6360,-32148,-6344,-32151,-6327,-32154,-6311,-32157,-6294,-32161,-6278,-32164,-6262,-32167,-6245,-32170,-6229,-32173,-6212,-32177,-6196,-32180,-6179,-32183,-6163,-32186,-6146,-32189,-6130,-32192,-6113,-32195,-6097,-32198,-6081,-32202,-6064,-32205,-6048,-32208,-6031,-32211,-6015,-32214,-5998,-32217,-5982,-32220,-5965,-32223,-5949,-32226,-5932,-32229,-5916,-32232,-5899,-32235,-5883,-32238,-5866,-32241,-5850,-32244,-5833,-32247,-5817,-32250,-5800,-32253,-5784,-32256,-5767,-32259,-5751,-32262,-5734,-32265,-5718,-32268,-5701,-32271,-5685,-32274,-5668,-32276,-5652,-32279,-5635,-32282,-5619,-32285,-5602,-32288,-5586,-32291,-5569,-32294,-5553,-32296,-5536,-32299,-5520,-32302,-5503,-32305,-5487,-32308,-5470,-32311,-5454,-32313,-5437,-32316,-5421,-32319,-5404,-32322,-5388,-32324,-5371,-32327,-5355,-32330,-5338,-32333,-5322,-32335,-5305,-32338,-5288,-32341,-5272,-32343,-5255,-32346,-5239,-32349,-5222,-32351,-5206,-32354,-5189,-32357,-5173,-32359,-5156,-32362,-5140,-32365,-5123,-32367,-5107,-32370,-5090,-32372,-5073,-32375,-5057,-32378,-5040,-32380,-5024,-32383,-5007,-32385,-4991,-32388,-4974,-32390,-4958,-32393,-4941,-32395,-4924,-32398,-4908,-32400,-4891,-32403,-4875,-32405,-4858,-32408,-4842,-32410,-4825,-32413,-4808,-32415,-4792,-32418,-4775,-32420,-4759,-32423,-4742,-32425,-4726,-32427,-4709,-32430,-4692,-32432,-4676,-32435,-4659,-32437,-4643,-32439,-4626,-32442,-4609,-32444,-4593,-32446,-4576,-32449,-4560,-32451,-4543,-32453,-4526,-32456,-4510,-32458,-4493,-32460,-4477,-32463,-4460,-32465,-4444,-32467,-4427,-32469,-4410,-32472,-4394,-32474,-4377,-32476,-4360,-32478,-4344,-32481,-4327,-32483,-4311,-32485,-4294,-32487,-4277,-32489,-4261,-32492,-4244,-32494,-4228,-32496,-4211,-32498,-4194,-32500,-4178,-32502,-4161,-32504,-4145,-32507,-4128,-32509,-4111,-32511,-4095,-32513,-4078,-32515,-4061,-32517,-4045,-32519,-4028,-32521,-4012,-32523,-3995,-32525,-3978,-32527,-3962,-32529,-3945,-32531,-3928,-32533,-3912,-32535,-3895,-32537,-3878,-32539,-3862,-32541,-3845,-32543,-3829,-32545,-3812,-32547,-3795,-32549,-3779,-32551,-3762,-32553,-3745,-32555,-3729,-32557,-3712,-32559,-3695,-32560,-3679,-32562,-3662,-32564,-3645,-32566,-3629,-32568,-3612,-32570,-3595,-32572,-3579,-32573,-3562,-32575,-3546,-32577,-3529,-32579,-3512,-32581,-3496,-32582,-3479,-32584,-3462,-32586,-3446,-32588,-3429,-32589,-3412,-32591,-3396,-32593,-3379,-32595,-3362,-32596,-3346,-32598,-3329,-32600,-3312,-32601,-3296,-32603,-3279,-32605,-3262,-32606,-3246,-32608,-3229,-32610,-3212,-32611,-3196,-32613,-3179,-32615,-3162,-32616,-3146,-32618,-3129,-32619,-3112,-32621,-3095,-32623,-3079,-32624,-3062,-32626,-3045,-32627,-3029,-32629,-3012,-32630,-2995,-32632,-2979,-32633,-2962,-32635,-2945,-32636,-2929,-32638,-2912,-32639,-2895,-32641,-2879,-32642,-2862,-32644,-2845,-32645,-2829,-32647,-2812,-32648,-2795,-32650,-2778,-32651,-2762,-32652,-2745,-32654,-2728,-32655,-2712,-32657,-2695,-32658,-2678,-32659,-2662,-32661,-2645,-32662,-2628,-32663,-2611,-32665,-2595,-32666,-2578,-32667,-2561,-32669,-2545,-32670,-2528,-32671,-2511,-32672,-2495,-32674,-2478,-32675,-2461,-32676,-2444,-32677,-2428,-32679,-2411,-32680,-2394,-32681,-2378,-32682,-2361,-32684,-2344,-32685,-2327,-32686,-2311,-32687,-2294,-32688,-2277,-32689,-2261,-32691,-2244,-32692,-2227,-32693,-2210,-32694,-2194,-32695,-2177,-32696,-2160,-32697,-2144,-32698,-2127,-32700,-2110,-32701,-2093,-32702,-2077,-32703,-2060,-32704,-2043,-32705,-2027,-32706,-2010,-32707,-1993,-32708,-1976,-32709,-1960,-32710,-1943,-32711,-1926,-32712,-1909,-32713,-1893,-32714,-1876,-32715,-1859,-32716,-1843,-32717,-1826,-32718,-1809,-32718,-1792,-32719,-1776,-32720,-1759,-32721,-1742,-32722,-1725,-32723,-1709,-32724,-1692,-32725,-1675,-32726,-1659,-32726,-1642,-32727,-1625,-32728,-1608,-32729,-1592,-32730,-1575,-32730,-1558,-32731,-1541,-32732,-1525,-32733,-1508,-32734,-1491,-32734,-1474,-32735,-1458,-32736,-1441,-32737,-1424,-32737,-1407,-32738,-1391,-32739,-1374,-32739,-1357,-32740,-1340,-32741,-1324,-32741,-1307,-32742,-1290,-32743,-1274,-32743,-1257,-32744,-1240,-32745,-1223,-32745,-1207,-32746,-1190,-32747,-1173,-32747,-1156,-32748,-1140,-32748,-1123,-32749,-1106,-32749,-1089,-32750,-1073,-32751,-1056,-32751,-1039,-32752,-1022,-32752,-1006,-32753,-989,-32753,-972,-32754,-955,-32754,-939,-32755,-922,-32755,-905,-32755,-888,-32756,-872,-32756,-855,-32757,-838,-32757,-821,-32758,-805,-32758,-788,-32758,-771,-32759,-754,-32759,-738,-32760,-721,-32760,-704,-32760,-687,-32761,-671,-32761,-654,-32761,-637,-32762,-620,-32762,-604,-32762,-587,-32763,-570,-32763,-553,-32763,-537,-32763,-520,-32764,-503,-32764,-486,-32764,-470,-32764,-453,-32765,-436,-32765,-419,-32765,-403,-32765,-386,-32765,-369,-32766,-352,-32766,-336,-32766,-319,-32766,-302,-32766,-285,-32766,-269,-32767,-252,-32767,-235,-32767,-218,-32767,-202,-32767,-185,-32767,-168,-32767,-151,-32767,-135,-32767,-118,-32767,-101,-32767,-84,-32767,-68,-32767,-51,-32767,-34,-32767,-17,-32767,-1,-32767,16,-32767,33,-32767,50,-32767,67,-32767,83,-32767,100,-32767,117,-32767,134,-32767,150,-32767,167,-32767,184,-32767,201,-32767,217,-32767,234,-32767,251,-32766,268,-32766,284,-32766,301,-32766,318,-32766,335,-32766,351,-32765,368,-32765,385,-32765,402,-32765,418,-32765,435,-32764,452,-32764,469,-32764,485,-32764,502,-32763,519,-32763,536,-32763,552,-32763,569,-32762,586,-32762,603,-32762,619,-32761,636,-32761,653,-32761,670,-32760,686,-32760,703,-32760,720,-32759,737,-32759,753,-32758,770,-32758,787,-32758,804,-32757,820,-32757,837,-32756,854,-32756,871,-32755,887,-32755,904,-32755,921,-32754,938,-32754,954,-32753,971,-32753,988,-32752,1005,-32752,1021,-32751,1038,-32751,1055,-32750,1072,-32749,1088,-32749,1105,-32748,1122,-32748,1139,-32747,1155,-32747,1172,-32746,1189,-32745,1206,-32745,1222,-32744,1239,-32743,1256,-32743,1273,-32742,1289,-32741,1306,-32741,1323,-32740,1339,-32739,1356,-32739,1373,-32738,1390,-32737,1406,-32737,1423,-32736,1440,-32735,1457,-32734,1473,-32734,1490,-32733,1507,-32732,1524,-32731,1540,-32730,1557,-32730,1574,-32729,1591,-32728,1607,-32727,1624,-32726,1641,-32726,1658,-32725,1674,-32724,1691,-32723,1708,-32722,1724,-32721,1741,-32720,1758,-32719,1775,-32718,1791,-32718,1808,-32717,1825,-32716,1842,-32715,1858,-32714,1875,-32713,1892,-32712,1908,-32711,1925,-32710,1942,-32709,1959,-32708,1975,-32707,1992,-32706,2009,-32705,2026,-32704,2042,-32703,2059,-32702,2076,-32701,2092,-32700,2109,-32698,2126,-32697,2143,-32696,2159,-32695,2176,-32694,2193,-32693,2209,-32692,2226,-32691,2243,-32689,2260,-32688,2276,-32687,2293,-32686,2310,-32685,2326,-32684,2343,-32682,2360,-32681,2377,-32680,2393,-32679,2410,-32677,2427,-32676,2443,-32675,2460,-32674,2477,-32672,2494,-32671,2510,-32670,2527,-32669,2544,-32667,2560,-32666,2577,-32665,2594,-32663,2610,-32662,2627,-32661,2644,-32659,2661,-32658,2677,-32657,2694,-32655,2711,-32654,2727,-32652,2744,-32651,2761,-32650,2777,-32648,2794,-32647,2811,-32645,2828,-32644,2844,-32642,2861,-32641,2878,-32639,2894,-32638,2911,-32636,2928,-32635,2944,-32633,2961,-32632,2978,-32630,2994,-32629,3011,-32627,3028,-32626,3044,-32624,3061,-32623,3078,-32621,3094,-32619,3111,-32618,3128,-32616,3145,-32615,3161,-32613,3178,-32611,3195,-32610,3211,-32608,3228,-32606,3245,-32605,3261,-32603,3278,-32601,3295,-32600,3311,-32598,3328,-32596,3345,-32595,3361,-32593,3378,-32591,3395,-32589,3411,-32588,3428,-32586,3445,-32584,3461,-32582,3478,-32581,3495,-32579,3511,-32577,3528,-32575,3545,-32573,3561,-32572,3578,-32570,3594,-32568,3611,-32566,3628,-32564,3644,-32562,3661,-32560,3678,-32559,3694,-32557,3711,-32555,3728,-32553,3744,-32551,3761,-32549,3778,-32547,3794,-32545,3811,-32543,3828,-32541,3844,-32539,3861,-32537,3877,-32535,3894,-32533,3911,-32531,3927,-32529,3944,-32527,3961,-32525,3977,-32523,3994,-32521,4011,-32519,4027,-32517,4044,-32515,4060,-32513,4077,-32511,4094,-32509,4110,-32507,4127,-32504,4144,-32502,4160,-32500,4177,-32498,4193,-32496,4210,-32494,4227,-32492,4243,-32489,4260,-32487,4276,-32485,4293,-32483,4310,-32481,4326,-32478,4343,-32476,4359,-32474,4376,-32472,4393,-32469,4409,-32467,4426,-32465,4443,-32463,4459,-32460,4476,-32458,4492,-32456,4509,-32453,4525,-32451,4542,-32449,4559,-32446,4575,-32444,4592,-32442,4608,-32439,4625,-32437,4642,-32435,4658,-32432,4675,-32430,4691,-32427,4708,-32425,4725,-32423,4741,-32420,4758,-32418,4774,-32415,4791,-32413,4807,-32410,4824,-32408,4841,-32405,4857,-32403,4874,-32400,4890,-32398,4907,-32395,4923,-32393,4940,-32390,4957,-32388,4973,-32385,4990,-32383,5006,-32380,5023,-32378,5039,-32375,5056,-32372,5072,-32370,5089,-32367,5106,-32365,5122,-32362,5139,-32359,5155,-32357,5172,-32354,5188,-32351,5205,-32349,5221,-32346,5238,-32343,5254,-32341,5271,-32338,5287,-32335,5304,-32333,5321,-32330,5337,-32327,5354,-32324,5370,-32322,5387,-32319,5403,-32316,5420,-32313,5436,-32311,5453,-32308,5469,-32305,5486,-32302,5502,-32299,5519,-32296,5535,-32294,5552,-32291,5568,-32288,5585,-32285,5601,-32282,5618,-32279,5634,-32276,5651,-32274,5667,-32271,5684,-32268,5700,-32265,5717,-32262,5733,-32259,5750,-32256,5766,-32253,5783,-32250,5799,-32247,5816,-32244,5832,-32241,5849,-32238,5865,-32235,5882,-32232,5898,-32229,5915,-32226,5931,-32223,5948,-32220,5964,-32217,5981,-32214,5997,-32211,6014,-32208,6030,-32205,6047,-32202,6063,-32198,6080,-32195,6096,-32192,6112,-32189,6129,-32186,6145,-32183,6162,-32180,6178,-32177,6195,-32173,6211,-32170,6228,-32167,6244,-32164,6261,-32161,6277,-32157,6293,-32154,6310,-32151,6326,-32148,6343,-32144,6359,-32141,6376,-32138,6392,-32135,6408,-32131,6425,-32128,6441,-32125,6458,-32121,6474,-32118,6491,-32115,6507,-32111,6523,-32108,6540,-32105,6556,-32101,6573,-32098,6589,-32095,6606,-32091,6622,-32088,6638,-32085,6655,-32081,6671,-32078,6688,-32074,6704,-32071,6720,-32067,6737,-32064,6753,-32060,6770,-32057,6786,-32054,6802,-32050,6819,-32047,6835,-32043,6851,-32040,6868,-32036,6884,-32033,6901,-32029,6917,-32025,6933,-32022,6950,-32018,6966,-32015,6982,-32011,6999,-32008,7015,-32004,7032,-32000,7048,-31997,7064,-31993,7081,-31990,7097,-31986,7113,-31982,7130,-31979,7146,-31975,7162,-31971,7179,-31968,7195,-31964,7211,-31960,7228,-31957,7244,-31953,7261,-31949,7277,-31945,7293,-31942,7310,-31938,7326,-31934,7342,-31930,7358,-31927,7375,-31923,7391,-31919,7407,-31915,7424,-31912,7440,-31908,7456,-31904,7473,-31900,7489,-31896,7505,-31892,7522,-31889,7538,-31885,7554,-31881,7571,-31877,7587,-31873,7603,-31869,7619,-31865,7636,-31861,7652,-31857,7668,-31854,7685,-31850,7701,-31846,7717,-31842,7733,-31838,7750,-31834,7766,-31830,7782,-31826,7799,-31822,7815,-31818,7831,-31814,7847,-31810,7864,-31806,7880,-31802,7896,-31798,7912,-31794,7929,-31790,7945,-31786,7961,-31781,7977,-31777,7994,-31773,8010,-31769,8026,-31765,8042,-31761,8059,-31757,8075,-31753,8091,-31749,8107,-31744,8124,-31740,8140,-31736,8156,-31732,8172,-31728,8189,-31724,8205,-31719,8221,-31715,8237,-31711,8253,-31707,8270,-31702,8286,-31698,8302,-31694,8318,-31690,8334,-31685,8351,-31681,8367,-31677,8383,-31673,8399,-31668,8415,-31664,8432,-31660,8448,-31655,8464,-31651,8480,-31647,8496,-31642,8513,-31638,8529,-31634,8545,-31629,8561,-31625,8577,-31620,8593,-31616,8610,-31612,8626,-31607,8642,-31603,8658,-31598,8674,-31594,8690,-31589,8707,-31585,8723,-31581,8739,-31576,8755,-31572,8771,-31567,8787,-31563,8803,-31558,8820,-31554,8836,-31549,8852,-31545,8868,-31540,8884,-31535,8900,-31531,8916,-31526,8932,-31522,8949,-31517,8965,-31513,8981,-31508,8997,-31503,9013,-31499,9029,-31494,9045,-31490,9061,-31485,9077,-31480,9094,-31476,9110,-31471,9126,-31466,9142,-31462,9158,-31457,9174,-31452,9190,-31447,9206,-31443,9222,-31438,9238,-31433,9254,-31429,9270,-31424,9287,-31419,9303,-31414,9319,-31410,9335,-31405,9351,-31400,9367,-31395,9383,-31390,9399,-31386,9415,-31381,9431,-31376,9447,-31371,9463,-31366,9479,-31361,9495,-31357,9511,-31352,9527,-31347,9543,-31342,9559,-31337,9575,-31332,9591,-31327,9607,-31322,9623,-31317,9639,-31312,9655,-31308,9671,-31303,9687,-31298,9703,-31293,9719,-31288,9735,-31283,9751,-31278,9767,-31273,9783,-31268,9799,-31263,9815,-31258,9831,-31253,9847,-31248,9863,-31243,9879,-31237,9895,-31232,9911,-31227,9927,-31222,9943,-31217,9959,-31212,9975,-31207,9991,-31202,10007,-31197,10023,-31192,10039,-31186,10055,-31181,10071,-31176,10087,-31171,10103,-31166,10119,-31161,10135,-31155,10151,-31150,10166,-31145,10182,-31140,10198,-31135,10214,-31129,10230,-31124,10246,-31119,10262,-31114,10278,-31108,10294,-31103,10310,-31098,10326,-31093,10342,-31087,10357,-31082,10373,-31077,10389,-31071,10405,-31066,10421,-31061,10437,-31055,10453,-31050,10469,-31045,10484,-31039,10500,-31034,10516,-31029,10532,-31023,10548,-31018,10564,-31012,10580,-31007,10596,-31002,10611,-30996,10627,-30991,10643,-30985,10659,-30980,10675,-30974,10691,-30969,10706,-30963,10722,-30958,10738,-30952,10754,-30947,10770,-30941,10786,-30936,10801,-30930,10817,-30925,10833,-30919,10849,-30914,10865,-30908,10880,-30903,10896,-30897,10912,-30891,10928,-30886,10944,-30880,10959,-30875,10975,-30869,10991,-30863,11007,-30858,11023,-30852,11038,-30846,11054,-30841,11070,-30835,11086,-30829,11101,-30824,11117,-30818,11133,-30812,11149,-30807,11164,-30801,11180,-30795,11196,-30789,11212,-30784,11227,-30778,11243,-30772,11259,-30767,11275,-30761,11290,-30755,11306,-30749,11322,-30743,11338,-30738,11353,-30732,11369,-30726,11385,-30720,11400,-30714,11416,-30708,11432,-30703,11448,-30697,11463,-30691,11479,-30685,11495,-30679,11510,-30673,11526,-30667,11542,-30661,11557,-30656,11573,-30650,11589,-30644,11604,-30638,11620,-30632,11636,-30626,11651,-30620,11667,-30614,11683,-30608,11698,-30602,11714,-30596,11730,-30590,11745,-30584,11761,-30578,11777,-30572,11792,-30566,11808,-30560,11823,-30554,11839,-30548,11855,-30542,11870,-30536,11886,-30529,11902,-30523,11917,-30517,11933,-30511,11948,-30505,11964,-30499,11980,-30493,11995,-30487,12011,-30481,12026,-30474,12042,-30468,12057,-30462,12073,-30456,12089,-30450,12104,-30443,12120,-30437,12135,-30431,12151,-30425,12166,-30419,12182,-30412,12198,-30406,12213,-30400,12229,-30394,12244,-30387,12260,-30381,12275,-30375,12291,-30369,12306,-30362,12322,-30356,12337,-30350,12353,-30343,12368,-30337,12384,-30331,12399,-30324,12415,-30318,12430,-30312,12446,-30305,12461,-30299,12477,-30292,12492,-30286,12508,-30280,12523,-30273,12539,-30267,12554,-30260,12570,-30254,12585,-30248,12601,-30241,12616,-30235,12632,-30228,12647,-30222,12663,-30215,12678,-30209,12694,-30202,12709,-30196,12724,-30189,12740,-30183,12755,-30176,12771,-30170,12786,-30163,12802,-30157,12817,-30150,12832,-30143,12848,-30137,12863,-30130,12879,-30124,12894,-30117,12909,-30110,12925,-30104,12940,-30097,12956,-30091,12971,-30084,12986,-30077,13002,-30071,13017,-30064,13033,-30057,13048,-30051,13063,-30044,13079,-30037,13094,-30031,13109,-30024,13125,-30017,13140,-30010,13155,-30004,13171,-29997,13186,-29990,13201,-29984,13217,-29977,13232,-29970,13247,-29963,13263,-29956,13278,-29950,13293,-29943,13309,-29936,13324,-29929,13339,-29922,13355,-29916,13370,-29909,13385,-29902,13400,-29895,13416,-29888,13431,-29881,13446,-29874,13462,-29867,13477,-29861,13492,-29854,13507,-29847,13523,-29840,13538,-29833,13553,-29826,13568,-29819,13584,-29812,13599,-29805,13614,-29798,13629,-29791,13645,-29784,13660,-29777,13675,-29770,13690,-29763,13706,-29756,13721,-29749,13736,-29742,13751,-29735,13766,-29728,13782,-29721,13797,-29714,13812,-29707,13827,-29700,13842,-29693,13858,-29686,13873,-29679,13888,-29671,13903,-29664,13918,-29657,13933,-29650,13949,-29643,13964,-29636,13979,-29629,13994,-29622,14009,-29614,14024,-29607,14039,-29600,14055,-29593,14070,-29586,14085,-29578,14100,-29571,14115,-29564,14130,-29557,14145,-29549,14160,-29542,14176,-29535,14191,-29528,14206,-29520,14221,-29513,14236,-29506,14251,-29499,14266,-29491,14281,-29484,14296,-29477,14311,-29469,14326,-29462,14342,-29455,14357,-29447,14372,-29440,14387,-29433,14402,-29425,14417,-29418,14432,-29411,14447,-29403,14462,-29396,14477,-29388,14492,-29381,14507,-29373,14522,-29366,14537,-29359,14552,-29351,14567,-29344,14582,-29336,14597,-29329,14612,-29321,14627,-29314,14642,-29306,14657,-29299,14672,-29291,14687,-29284,14702,-29276,14717,-29269,14732,-29261,14747,-29254,14762,-29246,14777,-29239,14792,-29231,14807,-29223,14822,-29216,14837,-29208,14852,-29201,14866,-29193,14881,-29185,14896,-29178,14911,-29170,14926,-29163,14941,-29155,14956,-29147,14971,-29140,14986,-29132,15001,-29124,15016,-29117,15030,-29109,15045,-29101,15060,-29093,15075,-29086,15090,-29078,15105,-29070,15120,-29063,15135,-29055,15149,-29047,15164,-29039,15179,-29032,15194,-29024,15209,-29016,15224,-29008,15238,-29000,15253,-28993,15268,-28985,15283,-28977,15298,-28969,15313,-28961,15327,-28954,15342,-28946,15357,-28938,15372,-28930,15387,-28922,15401,-28914,15416,-28906,15431,-28898,15446,-28891,15461,-28883,15475,-28875,15490,-28867,15505,-28859,15520,-28851,15534,-28843,15549,-28835,15564,-28827,15579,-28819,15593,-28811,15608,-28803,15623,-28795,15638,-28787,15652,-28779,15667,-28771,15682,-28763,15696,-28755,15711,-28747,15726,-28739,15740,-28731,15755,-28723,15770,-28715,15785,-28707,15799,-28699,15814,-28691,15829,-28682,15843,-28674,15858,-28666,15873,-28658,15887,-28650,15902,-28642,15917,-28634,15931,-28626,15946,-28617,15960,-28609,15975,-28601,15990,-28593,16004,-28585,16019,-28576,16034,-28568,16048,-28560,16063,-28552,16077,-28544,16092,-28535,16107,-28527,16121,-28519,16136,-28511,16150,-28502,16165,-28494,16179,-28486,16194,-28478,16209,-28469,16223,-28461,16238,-28453,16252,-28444,16267,-28436,16281,-28428,16296,-28419,16310,-28411,16325,-28403,16339,-28394,16354,-28386,16368,-28378,16383,-28369,16398,-28361,16412,-28352,16427,-28344,16441,-28336,16455,-28327,16470,-28319,16484,-28310,16499,-28302,16513,-28293,16528,-28285,16542,-28276,16557,-28268,16571,-28260,16586,-28251,16600,-28243,16615,-28234,16629,-28226,16643,-28217,16658,-28209,16672,-28200,16687,-28191,16701,-28183,16716,-28174,16730,-28166,16744,-28157,16759,-28149,16773,-28140,16788,-28132,16802,-28123,16816,-28114,16831,-28106,16845,-28097,16859,-28088,16874,-28080,16888,-28071,16903,-28063,16917,-28054,16931,-28045,16946,-28037,16960,-28028,16974,-28019,16989,-28010,17003,-28002,17017,-27993,17032,-27984,17046,-27976,17060,-27967,17074,-27958,17089,-27949,17103,-27941,17117,-27932,17132,-27923,17146,-27914,17160,-27906,17174,-27897,17189,-27888,17203,-27879,17217,-27870,17232,-27862,17246,-27853,17260,-27844,17274,-27835,17288,-27826,17303,-27817,17317,-27809,17331,-27800,17345,-27791,17360,-27782,17374,-27773,17388,-27764,17402,-27755,17416,-27746,17431,-27737,17445,-27729,17459,-27720,17473,-27711,17487,-27702,17501,-27693,17516,-27684,17530,-27675,17544,-27666,17558,-27657,17572,-27648,17586,-27639,17600,-27630,17615,-27621,17629,-27612,17643,-27603,17657,-27594,17671,-27585,17685,-27576,17699,-27567,17713,-27558,17727,-27549,17742,-27539,17756,-27530,17770,-27521,17784,-27512,17798,-27503,17812,-27494,17826,-27485,17840,-27476,17854,-27467,17868,-27457,17882,-27448,17896,-27439,17910,-27430,17924,-27421,17938,-27412,17952,-27402,17966,-27393,17980,-27384,17994,-27375,18008,-27366,18022,-27356,18036,-27347,18050,-27338,18064,-27329,18078,-27320,18092,-27310,18106,-27301,18120,-27292,18134,-27282,18148,-27273,18162,-27264,18176,-27255,18190,-27245,18204,-27236,18218,-27227,18232,-27217,18246,-27208,18260,-27199,18273,-27189,18287,-27180,18301,-27171,18315,-27161,18329,-27152,18343,-27142,18357,-27133,18371,-27124,18385,-27114,18398,-27105,18412,-27095,18426,-27086,18440,-27077,18454,-27067,18468,-27058,18482,-27048,18495,-27039,18509,-27029,18523,-27020,18537,-27010,18551,-27001,18564,-26991,18578,-26982,18592,-26972,18606,-26963,18620,-26953,18633,-26944,18647,-26934,18661,-26925,18675,-26915,18689,-26906,18702,-26896,18716,-26886,18730,-26877,18744,-26867,18757,-26858,18771,-26848,18785,-26838,18798,-26829,18812,-26819,18826,-26810,18840,-26800,18853,-26790,18867,-26781,18881,-26771,18894,-26761,18908,-26752,18922,-26742,18935,-26732,18949,-26723,18963,-26713,18976,-26703,18990,-26693,19004,-26684,19017,-26674,19031,-26664,19045,-26655,19058,-26645,19072,-26635,19086,-26625,19099,-26616,19113,-26606,19126,-26596,19140,-26586,19154,-26576,19167,-26567,19181,-26557,19194,-26547,19208,-26537,19221,-26527,19235,-26517,19249,-26508,19262,-26498,19276,-26488,19289,-26478,19303,-26468,19316,-26458,19330,-26448,19343,-26438,19357,-26429,19370,-26419,19384,-26409,19397,-26399,19411,-26389,19424,-26379,19438,-26369,19451,-26359,19465,-26349,19478,-26339,19492,-26329,19505,-26319,19519,-26309,19532,-26299,19546,-26289,19559,-26279,19573,-26269,19586,-26259,19599,-26249,19613,-26239,19626,-26229,19640,-26219,19653,-26209,19667,-26199,19680,-26189,19693,-26179,19707,-26169,19720,-26159,19733,-26149,19747,-26138,19760,-26128,19774,-26118,19787,-26108,19800,-26098,19814,-26088,19827,-26078,19840,-26068,19854,-26057,19867,-26047,19880,-26037,19894,-26027,19907,-26017,19920,-26007,19933,-25996,19947,-25986,19960,-25976,19973,-25966,19987,-25955,20000,-25945,20013,-25935,20026,-25925,20040,-25914,20053,-25904,20066,-25894,20079,-25884,20093,-25873,20106,-25863,20119,-25853,20132,-25843,20146,-25832,20159,-25822,20172,-25812,20185,-25801,20198,-25791,20212,-25781,20225,-25770,20238,-25760,20251,-25750,20264,-25739,20277,-25729,20291,-25718,20304,-25708,20317,-25698,20330,-25687,20343,-25677,20356,-25666,20369,-25656,20383,-25646,20396,-25635,20409,-25625,20422,-25614,20435,-25604,20448,-25593,20461,-25583,20474,-25572,20487,-25562,20500,-25551,20513,-25541,20527,-25530,20540,-25520,20553,-25509,20566,-25499,20579,-25488,20592,-25478,20605,-25467,20618,-25457,20631,-25446,20644,-25436,20657,-25425,20670,-25415,20683,-25404,20696,-25393,20709,-25383,20722,-25372,20735,-25362,20748,-25351,20761,-25340,20774,-25330,20787,-25319,20800,-25308,20813,-25298,20825,-25287,20838,-25277,20851,-25266,20864,-25255,20877,-25244,20890,-25234,20903,-25223,20916,-25212,20929,-25202,20942,-25191,20955,-25180,20967,-25170,20980,-25159,20993,-25148,21006,-25137,21019,-25127,21032,-25116,21045,-25105,21057,-25094,21070,-25084,21083,-25073,21096,-25062,21109,-25051,21122,-25040,21134,-25030,21147,-25019,21160,-25008,21173,-24997,21186,-24986,21198,-24975,21211,-24965,21224,-24954,21237,-24943,21249,-24932,21262,-24921,21275,-24910,21288,-24899,21300,-24888,21313,-24878,21326,-24867,21339,-24856,21351,-24845,21364,-24834,21377,-24823,21389,-24812,21402,-24801,21415,-24790,21427,-24779,21440,-24768,21453,-24757,21465,-24746,21478,-24735,21491,-24724,21503,-24713,21516,-24702,21529,-24691,21541,-24680,21554,-24669,21566,-24658,21579,-24647,21592,-24636,21604,-24625,21617,-24614,21629,-24603,21642,-24592,21655,-24581,21667,-24570,21680,-24559,21692,-24547,21705,-24536,21717,-24525,21730,-24514,21743,-24503,21755,-24492,21768,-24481,21780,-24470,21793,-24458,21805,-24447,21818,-24436,21830,-24425,21843,-24414,21855,-24403,21868,-24391,21880,-24380,21893,-24369,21905,-24358,21917,-24347,21930,-24335,21942,-24324,21955,-24313,21967,-24302,21980,-24290,21992,-24279,22004,-24268,22017,-24257,22029,-24245,22042,-24234,22054,-24223,22066,-24212,22079,-24200,22091,-24189,22104,-24178,22116,-24166,22128,-24155,22141,-24144,22153,-24132,22165,-24121,22178,-24110,22190,-24098,22202,-24087,22215,-24076,22227,-24064,22239,-24053,22252,-24042,22264,-24030,22276,-24019,22288,-24007,22301,-23996,22313,-23985,22325,-23973,22338,-23962,22350,-23950,22362,-23939,22374,-23927,22387,-23916,22399,-23904,22411,-23893,22423,-23882,22435,-23870,22448,-23859,22460,-23847,22472,-23836,22484,-23824,22496,-23813,22509,-23801,22521,-23790,22533,-23778,22545,-23767,22557,-23755,22569,-23743,22582,-23732,22594,-23720,22606,-23709,22618,-23697,22630,-23686,22642,-23674,22654,-23662,22666,-23651,22678,-23639,22691,-23628,22703,-23616,22715,-23604,22727,-23593,22739,-23581,22751,-23570,22763,-23558,22775,-23546,22787,-23535,22799,-23523,22811,-23511,22823,-23500,22835,-23488,22847,-23476,22859,-23465,22871,-23453,22883,-23441,22895,-23429,22907,-23418,22919,-23406,22931,-23394,22943,-23383,22955,-23371,22967,-23359,22979,-23347,22991,-23336,23003,-23324,23015,-23312,23027,-23300,23039,-23288,23050,-23277,23062,-23265,23074,-23253,23086,-23241,23098,-23229,23110,-23218,23122,-23206,23134,-23194,23146,-23182,23157,-23170,23169,-23158,23181,-23147,23193,-23135,23205,-23123,23217,-23111,23228,-23099,23240,-23087,23252,-23075,23264,-23063,23276,-23051,23287,-23040,23299,-23028,23311,-23016,23323,-23004,23335,-22992,23346,-22980,23358,-22968,23370,-22956,23382,-22944,23393,-22932,23405,-22920,23417,-22908,23428,-22896,23440,-22884,23452,-22872,23464,-22860,23475,-22848,23487,-22836,23499,-22824,23510,-22812,23522,-22800,23534,-22788,23545,-22776,23557,-22764,23569,-22752,23580,-22740,23592,-22728,23603,-22716,23615,-22704,23627,-22692,23638,-22679,23650,-22667,23661,-22655,23673,-22643,23685,-22631,23696,-22619,23708,-22607,23719,-22595,23731,-22583,23742,-22570,23754,-22558,23766,-22546,23777,-22534,23789,-22522,23800,-22510,23812,-22497,23823,-22485,23835,-22473,23846,-22461,23858,-22449,23869,-22436,23881,-22424,23892,-22412,23903,-22400,23915,-22388,23926,-22375,23938,-22363,23949,-22351,23961,-22339,23972,-22326,23984,-22314,23995,-22302,24006,-22289,24018,-22277,24029,-22265,24041,-22253,24052,-22240,24063,-22228,24075,-22216,24086,-22203,24097,-22191,24109,-22179,24120,-22166,24131,-22154,24143,-22142,24154,-22129,24165,-22117,24177,-22105,24188,-22092,24199,-22080,24211,-22067,24222,-22055,24233,-22043,24244,-22030,24256,-22018,24267,-22005,24278,-21993,24289,-21981,24301,-21968,24312,-21956,24323,-21943,24334,-21931,24346,-21918,24357,-21906,24368,-21894,24379,-21881,24390,-21869,24402,-21856,24413,-21844,24424,-21831,24435,-21819,24446,-21806,24457,-21794,24469,-21781,24480,-21769,24491,-21756,24502,-21744,24513,-21731,24524,-21718,24535,-21706,24546,-21693,24558,-21681,24569,-21668,24580,-21656,24591,-21643,24602,-21630,24613,-21618,24624,-21605,24635,-21593,24646,-21580,24657,-21567,24668,-21555,24679,-21542,24690,-21530,24701,-21517,24712,-21504,24723,-21492,24734,-21479,24745,-21466,24756,-21454,24767,-21441,24778,-21428,24789,-21416,24800,-21403,24811,-21390,24822,-21378,24833,-21365,24844,-21352,24855,-21340,24866,-21327,24877,-21314,24887,-21301,24898,-21289,24909,-21276,24920,-21263,24931,-21250,24942,-21238,24953,-21225,24964,-21212,24974,-21199,24985,-21187,24996,-21174,25007,-21161,25018,-21148,25029,-21135,25039,-21123,25050,-21110,25061,-21097,25072,-21084,25083,-21071,25093,-21058,25104,-21046,25115,-21033,25126,-21020,25136,-21007,25147,-20994,25158,-20981,25169,-20968,25179,-20956,25190,-20943,25201,-20930,25211,-20917,25222,-20904,25233,-20891,25243,-20878,25254,-20865,25265,-20852,25276,-20839,25286,-20826,25297,-20814,25307,-20801,25318,-20788,25329,-20775,25339,-20762,25350,-20749,25361,-20736,25371,-20723,25382,-20710,25392,-20697,25403,-20684,25414,-20671,25424,-20658,25435,-20645,25445,-20632,25456,-20619,25466,-20606,25477,-20593,25487,-20580,25498,-20567,25508,-20554,25519,-20541,25529,-20528,25540,-20514,25550,-20501,25561,-20488,25571,-20475,25582,-20462,25592,-20449,25603,-20436,25613,-20423,25624,-20410,25634,-20397,25645,-20384,25655,-20370,25665,-20357,25676,-20344,25686,-20331,25697,-20318,25707,-20305,25717,-20292,25728,-20278,25738,-20265,25749,-20252,25759,-20239,25769,-20226,25780,-20213,25790,-20199,25800,-20186,25811,-20173,25821,-20160,25831,-20147,25842,-20133,25852,-20120,25862,-20107,25872,-20094,25883,-20080,25893,-20067,25903,-20054,25913,-20041,25924,-20027,25934,-20014,25944,-20001,25954,-19988,25965,-19974,25975,-19961,25985,-19948,25995,-19934,26006,-19921,26016,-19908,26026,-19895,26036,-19881,26046,-19868,26056,-19855,26067,-19841,26077,-19828,26087,-19815,26097,-19801,26107,-19788,26117,-19775,26127,-19761,26137,-19748,26148,-19734,26158,-19721,26168,-19708,26178,-19694,26188,-19681,26198,-19668,26208,-19654,26218,-19641,26228,-19627,26238,-19614,26248,-19600,26258,-19587,26268,-19574,26278,-19560,26288,-19547,26298,-19533,26308,-19520,26318,-19506,26328,-19493,26338,-19479,26348,-19466,26358,-19452,26368,-19439,26378,-19425,26388,-19412,26398,-19398,26408,-19385,26418,-19371,26428,-19358,26437,-19344,26447,-19331,26457,-19317,26467,-19304,26477,-19290,26487,-19277,26497,-19263,26507,-19250,26516,-19236,26526,-19222,26536,-19209,26546,-19195,26556,-19182,26566,-19168,26575,-19155,26585,-19141,26595,-19127,26605,-19114,26615,-19100,26624,-19087,26634,-19073,26644,-19059,26654,-19046,26663,-19032,26673,-19018,26683,-19005,26692,-18991,26702,-18977,26712,-18964,26722,-18950,26731,-18936,26741,-18923,26751,-18909,26760,-18895,26770,-18882,26780,-18868,26789,-18854,26799,-18841,26809,-18827,26818,-18813,26828,-18799,26837,-18786,26847,-18772,26857,-18758,26866,-18745,26876,-18731,26885,-18717,26895,-18703,26905,-18690,26914,-18676,26924,-18662,26933,-18648,26943,-18634,26952,-18621,26962,-18607,26971,-18593,26981,-18579,26990,-18565,27000,-18552,27009,-18538,27019,-18524,27028,-18510,27038,-18496,27047,-18483,27057,-18469,27066,-18455,27076,-18441,27085,-18427,27094,-18413,27104,-18399,27113,-18386,27123,-18372,27132,-18358,27141,-18344,27151,-18330,27160,-18316,27170,-18302,27179,-18288,27188,-18274,27198,-18261,27207,-18247,27216,-18233,27226,-18219,27235,-18205,27244,-18191,27254,-18177,27263,-18163,27272,-18149,27281,-18135,27291,-18121,27300,-18107,27309,-18093,27319,-18079,27328,-18065,27337,-18051,27346,-18037,27355,-18023,27365,-18009,27374,-17995,27383,-17981,27392,-17967,27401,-17953,27411,-17939,27420,-17925,27429,-17911,27438,-17897,27447,-17883,27456,-17869,27466,-17855,27475,-17841,27484,-17827,27493,-17813,27502,-17799,27511,-17785,27520,-17771,27529,-17757,27538,-17743,27548,-17728,27557,-17714,27566,-17700,27575,-17686,27584,-17672,27593,-17658,27602,-17644,27611,-17630,27620,-17616,27629,-17601,27638,-17587,27647,-17573,27656,-17559,27665,-17545,27674,-17531,27683,-17517,27692,-17502,27701,-17488,27710,-17474,27719,-17460,27728,-17446,27736,-17432,27745,-17417,27754,-17403,27763,-17389,27772,-17375,27781,-17361,27790,-17346,27799,-17332,27808,-17318,27816,-17304,27825,-17289,27834,-17275,27843,-17261,27852,-17247,27861,-17233,27869,-17218,27878,-17204,27887,-17190,27896,-17175,27905,-17161,27913,-17147,27922,-17133,27931,-17118,27940,-17104,27948,-17090,27957,-17075,27966,-17061,27975,-17047,27983,-17033,27992,-17018,28001,-17004,28009,-16990,28018,-16975,28027,-16961,28036,-16947,28044,-16932,28053,-16918,28062,-16904,28070,-16889,28079,-16875,28087,-16860,28096,-16846,28105,-16832,28113,-16817,28122,-16803,28131,-16789,28139,-16774,28148,-16760,28156,-16745,28165,-16731,28173,-16717,28182,-16702,28190,-16688,28199,-16673,28208,-16659,28216,-16644,28225,-16630,28233,-16616,28242,-16601,28250,-16587,28259,-16572,28267,-16558,28275,-16543,28284,-16529,28292,-16514,28301,-16500,28309,-16485,28318,-16471,28326,-16456,28335,-16442,28343,-16428,28351,-16413,28360,-16399,28368}; diff --git a/openair1/PHY/TOOLS/twiddle6144.h b/openair1/PHY/TOOLS/twiddle6144.h deleted file mode 100644 index 6fc18ebfbe..0000000000 --- a/openair1/PHY/TOOLS/twiddle6144.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(0:2047)/6144)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*(0:2:4094)/6144)); -twa2 = zeros(1,4096); -twb2 = zeros(1,4096); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); - - - */ -int16_t twa6144[4096] __attribute__((aligned(32))) = {32767,0,32766,-34,32766,-68,32766,-101,32766,-135,32766,-168,32766,-202,32766,-235,32765,-269,32765,-302,32765,-336,32764,-369,32764,-403,32764,-436,32763,-470,32763,-503,32762,-537,32762,-570,32761,-604,32760,-637,32760,-671,32759,-704,32758,-738,32757,-771,32757,-805,32756,-838,32755,-872,32754,-905,32753,-939,32752,-972,32751,-1006,32750,-1039,32749,-1073,32748,-1106,32747,-1140,32746,-1173,32744,-1207,32743,-1240,32742,-1274,32740,-1307,32739,-1340,32738,-1374,32736,-1407,32735,-1441,32733,-1474,32732,-1508,32730,-1541,32729,-1575,32727,-1608,32725,-1642,32724,-1675,32722,-1709,32720,-1742,32718,-1776,32717,-1809,32715,-1843,32713,-1876,32711,-1909,32709,-1943,32707,-1976,32705,-2010,32703,-2043,32701,-2077,32699,-2110,32696,-2144,32694,-2177,32692,-2210,32690,-2244,32687,-2277,32685,-2311,32683,-2344,32680,-2378,32678,-2411,32675,-2444,32673,-2478,32670,-2511,32668,-2545,32665,-2578,32662,-2611,32660,-2645,32657,-2678,32654,-2712,32651,-2745,32649,-2778,32646,-2812,32643,-2845,32640,-2879,32637,-2912,32634,-2945,32631,-2979,32628,-3012,32625,-3045,32622,-3079,32618,-3112,32615,-3146,32612,-3179,32609,-3212,32605,-3246,32602,-3279,32599,-3312,32595,-3346,32592,-3379,32588,-3412,32585,-3446,32581,-3479,32578,-3512,32574,-3546,32571,-3579,32567,-3612,32563,-3645,32559,-3679,32556,-3712,32552,-3745,32548,-3779,32544,-3812,32540,-3845,32536,-3878,32532,-3912,32528,-3945,32524,-3978,32520,-4012,32516,-4045,32512,-4078,32508,-4111,32503,-4145,32499,-4178,32495,-4211,32491,-4244,32486,-4277,32482,-4311,32477,-4344,32473,-4377,32468,-4410,32464,-4444,32459,-4477,32455,-4510,32450,-4543,32445,-4576,32441,-4609,32436,-4643,32431,-4676,32426,-4709,32422,-4742,32417,-4775,32412,-4808,32407,-4842,32402,-4875,32397,-4908,32392,-4941,32387,-4974,32382,-5007,32377,-5040,32371,-5073,32366,-5107,32361,-5140,32356,-5173,32350,-5206,32345,-5239,32340,-5272,32334,-5305,32329,-5338,32323,-5371,32318,-5404,32312,-5437,32307,-5470,32301,-5503,32295,-5536,32290,-5569,32284,-5602,32278,-5635,32273,-5668,32267,-5701,32261,-5734,32255,-5767,32249,-5800,32243,-5833,32237,-5866,32231,-5899,32225,-5932,32219,-5965,32213,-5998,32207,-6031,32201,-6064,32194,-6097,32188,-6130,32182,-6163,32176,-6196,32169,-6229,32163,-6262,32156,-6294,32150,-6327,32143,-6360,32137,-6393,32130,-6426,32124,-6459,32117,-6492,32110,-6524,32104,-6557,32097,-6590,32090,-6623,32084,-6656,32077,-6689,32070,-6721,32063,-6754,32056,-6787,32049,-6820,32042,-6852,32035,-6885,32028,-6918,32021,-6951,32014,-6983,32007,-7016,31999,-7049,31992,-7082,31985,-7114,31978,-7147,31970,-7180,31963,-7212,31956,-7245,31948,-7278,31941,-7311,31933,-7343,31926,-7376,31918,-7408,31911,-7441,31903,-7474,31895,-7506,31888,-7539,31880,-7572,31872,-7604,31864,-7637,31856,-7669,31849,-7702,31841,-7734,31833,-7767,31825,-7800,31817,-7832,31809,-7865,31801,-7897,31793,-7930,31785,-7962,31776,-7995,31768,-8027,31760,-8060,31752,-8092,31743,-8125,31735,-8157,31727,-8190,31718,-8222,31710,-8254,31701,-8287,31693,-8319,31684,-8352,31676,-8384,31667,-8416,31659,-8449,31650,-8481,31641,-8514,31633,-8546,31624,-8578,31615,-8611,31606,-8643,31597,-8675,31588,-8708,31580,-8740,31571,-8772,31562,-8804,31553,-8837,31544,-8869,31534,-8901,31525,-8933,31516,-8966,31507,-8998,31498,-9030,31489,-9062,31479,-9095,31470,-9127,31461,-9159,31451,-9191,31442,-9223,31432,-9255,31423,-9288,31413,-9320,31404,-9352,31394,-9384,31385,-9416,31375,-9448,31365,-9480,31356,-9512,31346,-9544,31336,-9576,31326,-9608,31316,-9640,31307,-9672,31297,-9704,31287,-9736,31277,-9768,31267,-9800,31257,-9832,31247,-9864,31236,-9896,31226,-9928,31216,-9960,31206,-9992,31196,-10024,31185,-10056,31175,-10088,31165,-10120,31154,-10152,31144,-10183,31134,-10215,31123,-10247,31113,-10279,31102,-10311,31092,-10343,31081,-10374,31070,-10406,31060,-10438,31049,-10470,31038,-10501,31028,-10533,31017,-10565,31006,-10597,30995,-10628,30984,-10660,30973,-10692,30962,-10723,30951,-10755,30940,-10787,30929,-10818,30918,-10850,30907,-10881,30896,-10913,30885,-10945,30874,-10976,30862,-11008,30851,-11039,30840,-11071,30828,-11102,30817,-11134,30806,-11165,30794,-11197,30783,-11228,30771,-11260,30760,-11291,30748,-11323,30737,-11354,30725,-11386,30713,-11417,30702,-11449,30690,-11480,30678,-11511,30666,-11543,30655,-11574,30643,-11605,30631,-11637,30619,-11668,30607,-11699,30595,-11731,30583,-11762,30571,-11793,30559,-11824,30547,-11856,30535,-11887,30522,-11918,30510,-11949,30498,-11981,30486,-12012,30473,-12043,30461,-12074,30449,-12105,30436,-12136,30424,-12167,30411,-12199,30399,-12230,30386,-12261,30374,-12292,30361,-12323,30349,-12354,30336,-12385,30323,-12416,30311,-12447,30298,-12478,30285,-12509,30272,-12540,30259,-12571,30247,-12602,30234,-12633,30221,-12664,30208,-12695,30195,-12725,30182,-12756,30169,-12787,30156,-12818,30142,-12849,30129,-12880,30116,-12910,30103,-12941,30090,-12972,30076,-13003,30063,-13034,30050,-13064,30036,-13095,30023,-13126,30009,-13156,29996,-13187,29983,-13218,29969,-13248,29955,-13279,29942,-13310,29928,-13340,29915,-13371,29901,-13401,29887,-13432,29873,-13463,29860,-13493,29846,-13524,29832,-13554,29818,-13585,29804,-13615,29790,-13646,29776,-13676,29762,-13707,29748,-13737,29734,-13767,29720,-13798,29706,-13828,29692,-13859,29678,-13889,29663,-13919,29649,-13950,29635,-13980,29621,-14010,29606,-14040,29592,-14071,29577,-14101,29563,-14131,29548,-14161,29534,-14192,29519,-14222,29505,-14252,29490,-14282,29476,-14312,29461,-14343,29446,-14373,29432,-14403,29417,-14433,29402,-14463,29387,-14493,29372,-14523,29358,-14553,29343,-14583,29328,-14613,29313,-14643,29298,-14673,29283,-14703,29268,-14733,29253,-14763,29238,-14793,29222,-14823,29207,-14853,29192,-14882,29177,-14912,29162,-14942,29146,-14972,29131,-15002,29116,-15031,29100,-15061,29085,-15091,29069,-15121,29054,-15150,29038,-15180,29023,-15210,29007,-15239,28992,-15269,28976,-15299,28960,-15328,28945,-15358,28929,-15388,28913,-15417,28897,-15447,28882,-15476,28866,-15506,28850,-15535,28834,-15565,28818,-15594,28802,-15624,28786,-15653,28770,-15683,28754,-15712,28738,-15741,28722,-15771,28706,-15800,28690,-15830,28673,-15859,28657,-15888,28641,-15918,28625,-15947,28608,-15976,28592,-16005,28575,-16035,28559,-16064,28543,-16093,28526,-16122,28510,-16151,28493,-16180,28477,-16210,28460,-16239,28443,-16268,28427,-16297,28410,-16326,28393,-16355,28377,-16384,28360,-16413,28343,-16442,28326,-16471,28309,-16500,28292,-16529,28275,-16558,28259,-16587,28242,-16616,28225,-16644,28208,-16673,28190,-16702,28173,-16731,28156,-16760,28139,-16789,28122,-16817,28105,-16846,28087,-16875,28070,-16904,28053,-16932,28036,-16961,28018,-16990,28001,-17018,27983,-17047,27966,-17075,27948,-17104,27931,-17133,27913,-17161,27896,-17190,27878,-17218,27861,-17247,27843,-17275,27825,-17304,27808,-17332,27790,-17361,27772,-17389,27754,-17417,27736,-17446,27719,-17474,27701,-17502,27683,-17531,27665,-17559,27647,-17587,27629,-17616,27611,-17644,27593,-17672,27575,-17700,27557,-17728,27538,-17757,27520,-17785,27502,-17813,27484,-17841,27466,-17869,27447,-17897,27429,-17925,27411,-17953,27392,-17981,27374,-18009,27355,-18037,27337,-18065,27319,-18093,27300,-18121,27281,-18149,27263,-18177,27244,-18205,27226,-18233,27207,-18261,27188,-18288,27170,-18316,27151,-18344,27132,-18372,27113,-18399,27094,-18427,27076,-18455,27057,-18483,27038,-18510,27019,-18538,27000,-18565,26981,-18593,26962,-18621,26943,-18648,26924,-18676,26905,-18703,26885,-18731,26866,-18758,26847,-18786,26828,-18813,26809,-18841,26789,-18868,26770,-18895,26751,-18923,26731,-18950,26712,-18977,26692,-19005,26673,-19032,26654,-19059,26634,-19087,26615,-19114,26595,-19141,26575,-19168,26556,-19195,26536,-19222,26516,-19250,26497,-19277,26477,-19304,26457,-19331,26437,-19358,26418,-19385,26398,-19412,26378,-19439,26358,-19466,26338,-19493,26318,-19520,26298,-19547,26278,-19574,26258,-19600,26238,-19627,26218,-19654,26198,-19681,26178,-19708,26158,-19734,26137,-19761,26117,-19788,26097,-19815,26077,-19841,26056,-19868,26036,-19895,26016,-19921,25995,-19948,25975,-19974,25954,-20001,25934,-20027,25913,-20054,25893,-20080,25872,-20107,25852,-20133,25831,-20160,25811,-20186,25790,-20213,25769,-20239,25749,-20265,25728,-20292,25707,-20318,25686,-20344,25665,-20370,25645,-20397,25624,-20423,25603,-20449,25582,-20475,25561,-20501,25540,-20528,25519,-20554,25498,-20580,25477,-20606,25456,-20632,25435,-20658,25414,-20684,25392,-20710,25371,-20736,25350,-20762,25329,-20788,25307,-20814,25286,-20839,25265,-20865,25243,-20891,25222,-20917,25201,-20943,25179,-20968,25158,-20994,25136,-21020,25115,-21046,25093,-21071,25072,-21097,25050,-21123,25029,-21148,25007,-21174,24985,-21199,24964,-21225,24942,-21250,24920,-21276,24898,-21301,24877,-21327,24855,-21352,24833,-21378,24811,-21403,24789,-21428,24767,-21454,24745,-21479,24723,-21504,24701,-21530,24679,-21555,24657,-21580,24635,-21605,24613,-21630,24591,-21656,24569,-21681,24546,-21706,24524,-21731,24502,-21756,24480,-21781,24457,-21806,24435,-21831,24413,-21856,24390,-21881,24368,-21906,24346,-21931,24323,-21956,24301,-21981,24278,-22005,24256,-22030,24233,-22055,24211,-22080,24188,-22105,24165,-22129,24143,-22154,24120,-22179,24097,-22203,24075,-22228,24052,-22253,24029,-22277,24006,-22302,23984,-22326,23961,-22351,23938,-22375,23915,-22400,23892,-22424,23869,-22449,23846,-22473,23823,-22497,23800,-22522,23777,-22546,23754,-22570,23731,-22595,23708,-22619,23685,-22643,23661,-22667,23638,-22692,23615,-22716,23592,-22740,23569,-22764,23545,-22788,23522,-22812,23499,-22836,23475,-22860,23452,-22884,23428,-22908,23405,-22932,23382,-22956,23358,-22980,23335,-23004,23311,-23028,23287,-23051,23264,-23075,23240,-23099,23217,-23123,23193,-23147,23169,-23170,23146,-23194,23122,-23218,23098,-23241,23074,-23265,23050,-23288,23027,-23312,23003,-23336,22979,-23359,22955,-23383,22931,-23406,22907,-23429,22883,-23453,22859,-23476,22835,-23500,22811,-23523,22787,-23546,22763,-23570,22739,-23593,22715,-23616,22691,-23639,22666,-23662,22642,-23686,22618,-23709,22594,-23732,22569,-23755,22545,-23778,22521,-23801,22496,-23824,22472,-23847,22448,-23870,22423,-23893,22399,-23916,22374,-23939,22350,-23962,22325,-23985,22301,-24007,22276,-24030,22252,-24053,22227,-24076,22202,-24098,22178,-24121,22153,-24144,22128,-24166,22104,-24189,22079,-24212,22054,-24234,22029,-24257,22004,-24279,21980,-24302,21955,-24324,21930,-24347,21905,-24369,21880,-24391,21855,-24414,21830,-24436,21805,-24458,21780,-24481,21755,-24503,21730,-24525,21705,-24547,21680,-24570,21655,-24592,21629,-24614,21604,-24636,21579,-24658,21554,-24680,21529,-24702,21503,-24724,21478,-24746,21453,-24768,21427,-24790,21402,-24812,21377,-24834,21351,-24856,21326,-24878,21300,-24899,21275,-24921,21249,-24943,21224,-24965,21198,-24986,21173,-25008,21147,-25030,21122,-25051,21096,-25073,21070,-25094,21045,-25116,21019,-25137,20993,-25159,20967,-25180,20942,-25202,20916,-25223,20890,-25244,20864,-25266,20838,-25287,20813,-25308,20787,-25330,20761,-25351,20735,-25372,20709,-25393,20683,-25415,20657,-25436,20631,-25457,20605,-25478,20579,-25499,20553,-25520,20527,-25541,20500,-25562,20474,-25583,20448,-25604,20422,-25625,20396,-25646,20369,-25666,20343,-25687,20317,-25708,20291,-25729,20264,-25750,20238,-25770,20212,-25791,20185,-25812,20159,-25832,20132,-25853,20106,-25873,20079,-25894,20053,-25914,20026,-25935,20000,-25955,19973,-25976,19947,-25996,19920,-26017,19894,-26037,19867,-26057,19840,-26078,19814,-26098,19787,-26118,19760,-26138,19733,-26159,19707,-26179,19680,-26199,19653,-26219,19626,-26239,19599,-26259,19573,-26279,19546,-26299,19519,-26319,19492,-26339,19465,-26359,19438,-26379,19411,-26399,19384,-26419,19357,-26438,19330,-26458,19303,-26478,19276,-26498,19249,-26517,19221,-26537,19194,-26557,19167,-26576,19140,-26596,19113,-26616,19086,-26635,19058,-26655,19031,-26674,19004,-26693,18976,-26713,18949,-26732,18922,-26752,18894,-26771,18867,-26790,18840,-26810,18812,-26829,18785,-26848,18757,-26867,18730,-26886,18702,-26906,18675,-26925,18647,-26944,18620,-26963,18592,-26982,18564,-27001,18537,-27020,18509,-27039,18482,-27058,18454,-27077,18426,-27095,18398,-27114,18371,-27133,18343,-27152,18315,-27171,18287,-27189,18260,-27208,18232,-27227,18204,-27245,18176,-27264,18148,-27282,18120,-27301,18092,-27320,18064,-27338,18036,-27356,18008,-27375,17980,-27393,17952,-27412,17924,-27430,17896,-27448,17868,-27467,17840,-27485,17812,-27503,17784,-27521,17756,-27539,17727,-27558,17699,-27576,17671,-27594,17643,-27612,17615,-27630,17586,-27648,17558,-27666,17530,-27684,17501,-27702,17473,-27720,17445,-27737,17416,-27755,17388,-27773,17360,-27791,17331,-27809,17303,-27826,17274,-27844,17246,-27862,17217,-27879,17189,-27897,17160,-27914,17132,-27932,17103,-27949,17074,-27967,17046,-27984,17017,-28002,16989,-28019,16960,-28037,16931,-28054,16903,-28071,16874,-28088,16845,-28106,16816,-28123,16788,-28140,16759,-28157,16730,-28174,16701,-28191,16672,-28209,16643,-28226,16615,-28243,16586,-28260,16557,-28276,16528,-28293,16499,-28310,16470,-28327,16441,-28344,16412,-28361,16383,-28378,16354,-28394,16325,-28411,16296,-28428,16267,-28444,16238,-28461,16209,-28478,16179,-28494,16150,-28511,16121,-28527,16092,-28544,16063,-28560,16034,-28576,16004,-28593,15975,-28609,15946,-28626,15917,-28642,15887,-28658,15858,-28674,15829,-28691,15799,-28707,15770,-28723,15740,-28739,15711,-28755,15682,-28771,15652,-28787,15623,-28803,15593,-28819,15564,-28835,15534,-28851,15505,-28867,15475,-28883,15446,-28898,15416,-28914,15387,-28930,15357,-28946,15327,-28961,15298,-28977,15268,-28993,15238,-29008,15209,-29024,15179,-29039,15149,-29055,15120,-29070,15090,-29086,15060,-29101,15030,-29117,15001,-29132,14971,-29147,14941,-29163,14911,-29178,14881,-29193,14852,-29208,14822,-29223,14792,-29239,14762,-29254,14732,-29269,14702,-29284,14672,-29299,14642,-29314,14612,-29329,14582,-29344,14552,-29359,14522,-29373,14492,-29388,14462,-29403,14432,-29418,14402,-29433,14372,-29447,14342,-29462,14311,-29477,14281,-29491,14251,-29506,14221,-29520,14191,-29535,14160,-29549,14130,-29564,14100,-29578,14070,-29593,14039,-29607,14009,-29622,13979,-29636,13949,-29650,13918,-29664,13888,-29679,13858,-29693,13827,-29707,13797,-29721,13766,-29735,13736,-29749,13706,-29763,13675,-29777,13645,-29791,13614,-29805,13584,-29819,13553,-29833,13523,-29847,13492,-29861,13462,-29874,13431,-29888,13400,-29902,13370,-29916,13339,-29929,13309,-29943,13278,-29956,13247,-29970,13217,-29984,13186,-29997,13155,-30010,13125,-30024,13094,-30037,13063,-30051,13033,-30064,13002,-30077,12971,-30091,12940,-30104,12909,-30117,12879,-30130,12848,-30143,12817,-30157,12786,-30170,12755,-30183,12724,-30196,12694,-30209,12663,-30222,12632,-30235,12601,-30248,12570,-30260,12539,-30273,12508,-30286,12477,-30299,12446,-30312,12415,-30324,12384,-30337,12353,-30350,12322,-30362,12291,-30375,12260,-30387,12229,-30400,12198,-30412,12166,-30425,12135,-30437,12104,-30450,12073,-30462,12042,-30474,12011,-30487,11980,-30499,11948,-30511,11917,-30523,11886,-30536,11855,-30548,11823,-30560,11792,-30572,11761,-30584,11730,-30596,11698,-30608,11667,-30620,11636,-30632,11604,-30644,11573,-30656,11542,-30667,11510,-30679,11479,-30691,11448,-30703,11416,-30714,11385,-30726,11353,-30738,11322,-30749,11290,-30761,11259,-30772,11227,-30784,11196,-30795,11164,-30807,11133,-30818,11101,-30829,11070,-30841,11038,-30852,11007,-30863,10975,-30875,10944,-30886,10912,-30897,10880,-30908,10849,-30919,10817,-30930,10786,-30941,10754,-30952,10722,-30963,10691,-30974,10659,-30985,10627,-30996,10596,-31007,10564,-31018,10532,-31029,10500,-31039,10469,-31050,10437,-31061,10405,-31071,10373,-31082,10342,-31093,10310,-31103,10278,-31114,10246,-31124,10214,-31135,10182,-31145,10151,-31155,10119,-31166,10087,-31176,10055,-31186,10023,-31197,9991,-31207,9959,-31217,9927,-31227,9895,-31237,9863,-31248,9831,-31258,9799,-31268,9767,-31278,9735,-31288,9703,-31298,9671,-31308,9639,-31317,9607,-31327,9575,-31337,9543,-31347,9511,-31357,9479,-31366,9447,-31376,9415,-31386,9383,-31395,9351,-31405,9319,-31414,9287,-31424,9254,-31433,9222,-31443,9190,-31452,9158,-31462,9126,-31471,9094,-31480,9061,-31490,9029,-31499,8997,-31508,8965,-31517,8932,-31526,8900,-31535,8868,-31545,8836,-31554,8803,-31563,8771,-31572,8739,-31581,8707,-31589,8674,-31598,8642,-31607,8610,-31616,8577,-31625,8545,-31634,8513,-31642,8480,-31651,8448,-31660,8415,-31668,8383,-31677,8351,-31685,8318,-31694,8286,-31702,8253,-31711,8221,-31719,8189,-31728,8156,-31736,8124,-31744,8091,-31753,8059,-31761,8026,-31769,7994,-31777,7961,-31786,7929,-31794,7896,-31802,7864,-31810,7831,-31818,7799,-31826,7766,-31834,7733,-31842,7701,-31850,7668,-31857,7636,-31865,7603,-31873,7571,-31881,7538,-31889,7505,-31896,7473,-31904,7440,-31912,7407,-31919,7375,-31927,7342,-31934,7310,-31942,7277,-31949,7244,-31957,7211,-31964,7179,-31971,7146,-31979,7113,-31986,7081,-31993,7048,-32000,7015,-32008,6982,-32015,6950,-32022,6917,-32029,6884,-32036,6851,-32043,6819,-32050,6786,-32057,6753,-32064,6720,-32071,6688,-32078,6655,-32085,6622,-32091,6589,-32098,6556,-32105,6523,-32111,6491,-32118,6458,-32125,6425,-32131,6392,-32138,6359,-32144,6326,-32151,6293,-32157,6261,-32164,6228,-32170,6195,-32177,6162,-32183,6129,-32189,6096,-32195,6063,-32202,6030,-32208,5997,-32214,5964,-32220,5931,-32226,5898,-32232,5865,-32238,5832,-32244,5799,-32250,5766,-32256,5733,-32262,5700,-32268,5667,-32274,5634,-32279,5601,-32285,5568,-32291,5535,-32296,5502,-32302,5469,-32308,5436,-32313,5403,-32319,5370,-32324,5337,-32330,5304,-32335,5271,-32341,5238,-32346,5205,-32351,5172,-32357,5139,-32362,5106,-32367,5072,-32372,5039,-32378,5006,-32383,4973,-32388,4940,-32393,4907,-32398,4874,-32403,4841,-32408,4807,-32413,4774,-32418,4741,-32423,4708,-32427,4675,-32432,4642,-32437,4608,-32442,4575,-32446,4542,-32451,4509,-32456,4476,-32460,4443,-32465,4409,-32469,4376,-32474,4343,-32478,4310,-32483,4276,-32487,4243,-32492,4210,-32496,4177,-32500,4144,-32504,4110,-32509,4077,-32513,4044,-32517,4011,-32521,3977,-32525,3944,-32529,3911,-32533,3877,-32537,3844,-32541,3811,-32545,3778,-32549,3744,-32553,3711,-32557,3678,-32560,3644,-32564,3611,-32568,3578,-32572,3545,-32575,3511,-32579,3478,-32582,3445,-32586,3411,-32589,3378,-32593,3345,-32596,3311,-32600,3278,-32603,3245,-32606,3211,-32610,3178,-32613,3145,-32616,3111,-32619,3078,-32623,3044,-32626,3011,-32629,2978,-32632,2944,-32635,2911,-32638,2878,-32641,2844,-32644,2811,-32647,2777,-32650,2744,-32652,2711,-32655,2677,-32658,2644,-32661,2610,-32663,2577,-32666,2544,-32669,2510,-32671,2477,-32674,2443,-32676,2410,-32679,2377,-32681,2343,-32684,2310,-32686,2276,-32688,2243,-32691,2209,-32693,2176,-32695,2143,-32697,2109,-32700,2076,-32702,2042,-32704,2009,-32706,1975,-32708,1942,-32710,1908,-32712,1875,-32714,1842,-32716,1808,-32718,1775,-32719,1741,-32721,1708,-32723,1674,-32725,1641,-32726,1607,-32728,1574,-32730,1540,-32731,1507,-32733,1473,-32734,1440,-32736,1406,-32737,1373,-32739,1339,-32740,1306,-32741,1273,-32743,1239,-32744,1206,-32745,1172,-32747,1139,-32748,1105,-32749,1072,-32750,1038,-32751,1005,-32752,971,-32753,938,-32754,904,-32755,871,-32756,837,-32757,804,-32758,770,-32758,737,-32759,703,-32760,670,-32761,636,-32761,603,-32762,569,-32763,536,-32763,502,-32764,469,-32764,435,-32765,402,-32765,368,-32765,335,-32766,301,-32766,268,-32766,234,-32767,201,-32767,167,-32767,134,-32767,100,-32767,67,-32767,33,-32767,0,-32767,-34,-32767,-68,-32767,-101,-32767,-135,-32767,-168,-32767,-202,-32767,-235,-32767,-269,-32766,-302,-32766,-336,-32766,-369,-32765,-403,-32765,-436,-32765,-470,-32764,-503,-32764,-537,-32763,-570,-32763,-604,-32762,-637,-32761,-671,-32761,-704,-32760,-738,-32759,-771,-32758,-805,-32758,-838,-32757,-872,-32756,-905,-32755,-939,-32754,-972,-32753,-1006,-32752,-1039,-32751,-1073,-32750,-1106,-32749,-1140,-32748,-1173,-32747,-1207,-32745,-1240,-32744,-1274,-32743,-1307,-32741,-1340,-32740,-1374,-32739,-1407,-32737,-1441,-32736,-1474,-32734,-1508,-32733,-1541,-32731,-1575,-32730,-1608,-32728,-1642,-32726,-1675,-32725,-1709,-32723,-1742,-32721,-1776,-32719,-1809,-32718,-1843,-32716,-1876,-32714,-1909,-32712,-1943,-32710,-1976,-32708,-2010,-32706,-2043,-32704,-2077,-32702,-2110,-32700,-2144,-32697,-2177,-32695,-2210,-32693,-2244,-32691,-2277,-32688,-2311,-32686,-2344,-32684,-2378,-32681,-2411,-32679,-2444,-32676,-2478,-32674,-2511,-32671,-2545,-32669,-2578,-32666,-2611,-32663,-2645,-32661,-2678,-32658,-2712,-32655,-2745,-32652,-2778,-32650,-2812,-32647,-2845,-32644,-2879,-32641,-2912,-32638,-2945,-32635,-2979,-32632,-3012,-32629,-3045,-32626,-3079,-32623,-3112,-32619,-3146,-32616,-3179,-32613,-3212,-32610,-3246,-32606,-3279,-32603,-3312,-32600,-3346,-32596,-3379,-32593,-3412,-32589,-3446,-32586,-3479,-32582,-3512,-32579,-3546,-32575,-3579,-32572,-3612,-32568,-3645,-32564,-3679,-32560,-3712,-32557,-3745,-32553,-3779,-32549,-3812,-32545,-3845,-32541,-3878,-32537,-3912,-32533,-3945,-32529,-3978,-32525,-4012,-32521,-4045,-32517,-4078,-32513,-4111,-32509,-4145,-32504,-4178,-32500,-4211,-32496,-4244,-32492,-4277,-32487,-4311,-32483,-4344,-32478,-4377,-32474,-4410,-32469,-4444,-32465,-4477,-32460,-4510,-32456,-4543,-32451,-4576,-32446,-4609,-32442,-4643,-32437,-4676,-32432,-4709,-32427,-4742,-32423,-4775,-32418,-4808,-32413,-4842,-32408,-4875,-32403,-4908,-32398,-4941,-32393,-4974,-32388,-5007,-32383,-5040,-32378,-5073,-32372,-5107,-32367,-5140,-32362,-5173,-32357,-5206,-32351,-5239,-32346,-5272,-32341,-5305,-32335,-5338,-32330,-5371,-32324,-5404,-32319,-5437,-32313,-5470,-32308,-5503,-32302,-5536,-32296,-5569,-32291,-5602,-32285,-5635,-32279,-5668,-32274,-5701,-32268,-5734,-32262,-5767,-32256,-5800,-32250,-5833,-32244,-5866,-32238,-5899,-32232,-5932,-32226,-5965,-32220,-5998,-32214,-6031,-32208,-6064,-32202,-6097,-32195,-6130,-32189,-6163,-32183,-6196,-32177,-6229,-32170,-6262,-32164,-6294,-32157,-6327,-32151,-6360,-32144,-6393,-32138,-6426,-32131,-6459,-32125,-6492,-32118,-6524,-32111,-6557,-32105,-6590,-32098,-6623,-32091,-6656,-32085,-6689,-32078,-6721,-32071,-6754,-32064,-6787,-32057,-6820,-32050,-6852,-32043,-6885,-32036,-6918,-32029,-6951,-32022,-6983,-32015,-7016,-32008,-7049,-32000,-7082,-31993,-7114,-31986,-7147,-31979,-7180,-31971,-7212,-31964,-7245,-31957,-7278,-31949,-7311,-31942,-7343,-31934,-7376,-31927,-7408,-31919,-7441,-31912,-7474,-31904,-7506,-31896,-7539,-31889,-7572,-31881,-7604,-31873,-7637,-31865,-7669,-31857,-7702,-31850,-7734,-31842,-7767,-31834,-7800,-31826,-7832,-31818,-7865,-31810,-7897,-31802,-7930,-31794,-7962,-31786,-7995,-31777,-8027,-31769,-8060,-31761,-8092,-31753,-8125,-31744,-8157,-31736,-8190,-31728,-8222,-31719,-8254,-31711,-8287,-31702,-8319,-31694,-8352,-31685,-8384,-31677,-8416,-31668,-8449,-31660,-8481,-31651,-8514,-31642,-8546,-31634,-8578,-31625,-8611,-31616,-8643,-31607,-8675,-31598,-8708,-31589,-8740,-31581,-8772,-31572,-8804,-31563,-8837,-31554,-8869,-31545,-8901,-31535,-8933,-31526,-8966,-31517,-8998,-31508,-9030,-31499,-9062,-31490,-9095,-31480,-9127,-31471,-9159,-31462,-9191,-31452,-9223,-31443,-9255,-31433,-9288,-31424,-9320,-31414,-9352,-31405,-9384,-31395,-9416,-31386,-9448,-31376,-9480,-31366,-9512,-31357,-9544,-31347,-9576,-31337,-9608,-31327,-9640,-31317,-9672,-31308,-9704,-31298,-9736,-31288,-9768,-31278,-9800,-31268,-9832,-31258,-9864,-31248,-9896,-31237,-9928,-31227,-9960,-31217,-9992,-31207,-10024,-31197,-10056,-31186,-10088,-31176,-10120,-31166,-10152,-31155,-10183,-31145,-10215,-31135,-10247,-31124,-10279,-31114,-10311,-31103,-10343,-31093,-10374,-31082,-10406,-31071,-10438,-31061,-10470,-31050,-10501,-31039,-10533,-31029,-10565,-31018,-10597,-31007,-10628,-30996,-10660,-30985,-10692,-30974,-10723,-30963,-10755,-30952,-10787,-30941,-10818,-30930,-10850,-30919,-10881,-30908,-10913,-30897,-10945,-30886,-10976,-30875,-11008,-30863,-11039,-30852,-11071,-30841,-11102,-30829,-11134,-30818,-11165,-30807,-11197,-30795,-11228,-30784,-11260,-30772,-11291,-30761,-11323,-30749,-11354,-30738,-11386,-30726,-11417,-30714,-11449,-30703,-11480,-30691,-11511,-30679,-11543,-30667,-11574,-30656,-11605,-30644,-11637,-30632,-11668,-30620,-11699,-30608,-11731,-30596,-11762,-30584,-11793,-30572,-11824,-30560,-11856,-30548,-11887,-30536,-11918,-30523,-11949,-30511,-11981,-30499,-12012,-30487,-12043,-30474,-12074,-30462,-12105,-30450,-12136,-30437,-12167,-30425,-12199,-30412,-12230,-30400,-12261,-30387,-12292,-30375,-12323,-30362,-12354,-30350,-12385,-30337,-12416,-30324,-12447,-30312,-12478,-30299,-12509,-30286,-12540,-30273,-12571,-30260,-12602,-30248,-12633,-30235,-12664,-30222,-12695,-30209,-12725,-30196,-12756,-30183,-12787,-30170,-12818,-30157,-12849,-30143,-12880,-30130,-12910,-30117,-12941,-30104,-12972,-30091,-13003,-30077,-13034,-30064,-13064,-30051,-13095,-30037,-13126,-30024,-13156,-30010,-13187,-29997,-13218,-29984,-13248,-29970,-13279,-29956,-13310,-29943,-13340,-29929,-13371,-29916,-13401,-29902,-13432,-29888,-13463,-29874,-13493,-29861,-13524,-29847,-13554,-29833,-13585,-29819,-13615,-29805,-13646,-29791,-13676,-29777,-13707,-29763,-13737,-29749,-13767,-29735,-13798,-29721,-13828,-29707,-13859,-29693,-13889,-29679,-13919,-29664,-13950,-29650,-13980,-29636,-14010,-29622,-14040,-29607,-14071,-29593,-14101,-29578,-14131,-29564,-14161,-29549,-14192,-29535,-14222,-29520,-14252,-29506,-14282,-29491,-14312,-29477,-14343,-29462,-14373,-29447,-14403,-29433,-14433,-29418,-14463,-29403,-14493,-29388,-14523,-29373,-14553,-29359,-14583,-29344,-14613,-29329,-14643,-29314,-14673,-29299,-14703,-29284,-14733,-29269,-14763,-29254,-14793,-29239,-14823,-29223,-14853,-29208,-14882,-29193,-14912,-29178,-14942,-29163,-14972,-29147,-15002,-29132,-15031,-29117,-15061,-29101,-15091,-29086,-15121,-29070,-15150,-29055,-15180,-29039,-15210,-29024,-15239,-29008,-15269,-28993,-15299,-28977,-15328,-28961,-15358,-28946,-15388,-28930,-15417,-28914,-15447,-28898,-15476,-28883,-15506,-28867,-15535,-28851,-15565,-28835,-15594,-28819,-15624,-28803,-15653,-28787,-15683,-28771,-15712,-28755,-15741,-28739,-15771,-28723,-15800,-28707,-15830,-28691,-15859,-28674,-15888,-28658,-15918,-28642,-15947,-28626,-15976,-28609,-16005,-28593,-16035,-28576,-16064,-28560,-16093,-28544,-16122,-28527,-16151,-28511,-16180,-28494,-16210,-28478,-16239,-28461,-16268,-28444,-16297,-28428,-16326,-28411,-16355,-28394}; - - - -int16_t twb6144[4096] __attribute__((aligned(32))) = {32767,0,32766,-68,32766,-135,32766,-202,32765,-269,32765,-336,32764,-403,32763,-470,32762,-537,32761,-604,32760,-671,32758,-738,32757,-805,32755,-872,32753,-939,32751,-1006,32749,-1073,32747,-1140,32744,-1207,32742,-1274,32739,-1340,32736,-1407,32733,-1474,32730,-1541,32727,-1608,32724,-1675,32720,-1742,32717,-1809,32713,-1876,32709,-1943,32705,-2010,32701,-2077,32696,-2144,32692,-2210,32687,-2277,32683,-2344,32678,-2411,32673,-2478,32668,-2545,32662,-2611,32657,-2678,32651,-2745,32646,-2812,32640,-2879,32634,-2945,32628,-3012,32622,-3079,32615,-3146,32609,-3212,32602,-3279,32595,-3346,32588,-3412,32581,-3479,32574,-3546,32567,-3612,32559,-3679,32552,-3745,32544,-3812,32536,-3878,32528,-3945,32520,-4012,32512,-4078,32503,-4145,32495,-4211,32486,-4277,32477,-4344,32468,-4410,32459,-4477,32450,-4543,32441,-4609,32431,-4676,32422,-4742,32412,-4808,32402,-4875,32392,-4941,32382,-5007,32371,-5073,32361,-5140,32350,-5206,32340,-5272,32329,-5338,32318,-5404,32307,-5470,32295,-5536,32284,-5602,32273,-5668,32261,-5734,32249,-5800,32237,-5866,32225,-5932,32213,-5998,32201,-6064,32188,-6130,32176,-6196,32163,-6262,32150,-6327,32137,-6393,32124,-6459,32110,-6524,32097,-6590,32084,-6656,32070,-6721,32056,-6787,32042,-6852,32028,-6918,32014,-6983,31999,-7049,31985,-7114,31970,-7180,31956,-7245,31941,-7311,31926,-7376,31911,-7441,31895,-7506,31880,-7572,31864,-7637,31849,-7702,31833,-7767,31817,-7832,31801,-7897,31785,-7962,31768,-8027,31752,-8092,31735,-8157,31718,-8222,31701,-8287,31684,-8352,31667,-8416,31650,-8481,31633,-8546,31615,-8611,31597,-8675,31580,-8740,31562,-8804,31544,-8869,31525,-8933,31507,-8998,31489,-9062,31470,-9127,31451,-9191,31432,-9255,31413,-9320,31394,-9384,31375,-9448,31356,-9512,31336,-9576,31316,-9640,31297,-9704,31277,-9768,31257,-9832,31236,-9896,31216,-9960,31196,-10024,31175,-10088,31154,-10152,31134,-10215,31113,-10279,31092,-10343,31070,-10406,31049,-10470,31028,-10533,31006,-10597,30984,-10660,30962,-10723,30940,-10787,30918,-10850,30896,-10913,30874,-10976,30851,-11039,30828,-11102,30806,-11165,30783,-11228,30760,-11291,30737,-11354,30713,-11417,30690,-11480,30666,-11543,30643,-11605,30619,-11668,30595,-11731,30571,-11793,30547,-11856,30522,-11918,30498,-11981,30473,-12043,30449,-12105,30424,-12167,30399,-12230,30374,-12292,30349,-12354,30323,-12416,30298,-12478,30272,-12540,30247,-12602,30221,-12664,30195,-12725,30169,-12787,30142,-12849,30116,-12910,30090,-12972,30063,-13034,30036,-13095,30009,-13156,29983,-13218,29955,-13279,29928,-13340,29901,-13401,29873,-13463,29846,-13524,29818,-13585,29790,-13646,29762,-13707,29734,-13767,29706,-13828,29678,-13889,29649,-13950,29621,-14010,29592,-14071,29563,-14131,29534,-14192,29505,-14252,29476,-14312,29446,-14373,29417,-14433,29387,-14493,29358,-14553,29328,-14613,29298,-14673,29268,-14733,29238,-14793,29207,-14853,29177,-14912,29146,-14972,29116,-15031,29085,-15091,29054,-15150,29023,-15210,28992,-15269,28960,-15328,28929,-15388,28897,-15447,28866,-15506,28834,-15565,28802,-15624,28770,-15683,28738,-15741,28706,-15800,28673,-15859,28641,-15918,28608,-15976,28575,-16035,28543,-16093,28510,-16151,28477,-16210,28443,-16268,28410,-16326,28377,-16384,28343,-16442,28309,-16500,28275,-16558,28242,-16616,28208,-16673,28173,-16731,28139,-16789,28105,-16846,28070,-16904,28036,-16961,28001,-17018,27966,-17075,27931,-17133,27896,-17190,27861,-17247,27825,-17304,27790,-17361,27754,-17417,27719,-17474,27683,-17531,27647,-17587,27611,-17644,27575,-17700,27538,-17757,27502,-17813,27466,-17869,27429,-17925,27392,-17981,27355,-18037,27319,-18093,27281,-18149,27244,-18205,27207,-18261,27170,-18316,27132,-18372,27094,-18427,27057,-18483,27019,-18538,26981,-18593,26943,-18648,26905,-18703,26866,-18758,26828,-18813,26789,-18868,26751,-18923,26712,-18977,26673,-19032,26634,-19087,26595,-19141,26556,-19195,26516,-19250,26477,-19304,26437,-19358,26398,-19412,26358,-19466,26318,-19520,26278,-19574,26238,-19627,26198,-19681,26158,-19734,26117,-19788,26077,-19841,26036,-19895,25995,-19948,25954,-20001,25913,-20054,25872,-20107,25831,-20160,25790,-20213,25749,-20265,25707,-20318,25665,-20370,25624,-20423,25582,-20475,25540,-20528,25498,-20580,25456,-20632,25414,-20684,25371,-20736,25329,-20788,25286,-20839,25243,-20891,25201,-20943,25158,-20994,25115,-21046,25072,-21097,25029,-21148,24985,-21199,24942,-21250,24898,-21301,24855,-21352,24811,-21403,24767,-21454,24723,-21504,24679,-21555,24635,-21605,24591,-21656,24546,-21706,24502,-21756,24457,-21806,24413,-21856,24368,-21906,24323,-21956,24278,-22005,24233,-22055,24188,-22105,24143,-22154,24097,-22203,24052,-22253,24006,-22302,23961,-22351,23915,-22400,23869,-22449,23823,-22497,23777,-22546,23731,-22595,23685,-22643,23638,-22692,23592,-22740,23545,-22788,23499,-22836,23452,-22884,23405,-22932,23358,-22980,23311,-23028,23264,-23075,23217,-23123,23169,-23170,23122,-23218,23074,-23265,23027,-23312,22979,-23359,22931,-23406,22883,-23453,22835,-23500,22787,-23546,22739,-23593,22691,-23639,22642,-23686,22594,-23732,22545,-23778,22496,-23824,22448,-23870,22399,-23916,22350,-23962,22301,-24007,22252,-24053,22202,-24098,22153,-24144,22104,-24189,22054,-24234,22004,-24279,21955,-24324,21905,-24369,21855,-24414,21805,-24458,21755,-24503,21705,-24547,21655,-24592,21604,-24636,21554,-24680,21503,-24724,21453,-24768,21402,-24812,21351,-24856,21300,-24899,21249,-24943,21198,-24986,21147,-25030,21096,-25073,21045,-25116,20993,-25159,20942,-25202,20890,-25244,20838,-25287,20787,-25330,20735,-25372,20683,-25415,20631,-25457,20579,-25499,20527,-25541,20474,-25583,20422,-25625,20369,-25666,20317,-25708,20264,-25750,20212,-25791,20159,-25832,20106,-25873,20053,-25914,20000,-25955,19947,-25996,19894,-26037,19840,-26078,19787,-26118,19733,-26159,19680,-26199,19626,-26239,19573,-26279,19519,-26319,19465,-26359,19411,-26399,19357,-26438,19303,-26478,19249,-26517,19194,-26557,19140,-26596,19086,-26635,19031,-26674,18976,-26713,18922,-26752,18867,-26790,18812,-26829,18757,-26867,18702,-26906,18647,-26944,18592,-26982,18537,-27020,18482,-27058,18426,-27095,18371,-27133,18315,-27171,18260,-27208,18204,-27245,18148,-27282,18092,-27320,18036,-27356,17980,-27393,17924,-27430,17868,-27467,17812,-27503,17756,-27539,17699,-27576,17643,-27612,17586,-27648,17530,-27684,17473,-27720,17416,-27755,17360,-27791,17303,-27826,17246,-27862,17189,-27897,17132,-27932,17074,-27967,17017,-28002,16960,-28037,16903,-28071,16845,-28106,16788,-28140,16730,-28174,16672,-28209,16615,-28243,16557,-28276,16499,-28310,16441,-28344,16383,-28378,16325,-28411,16267,-28444,16209,-28478,16150,-28511,16092,-28544,16034,-28576,15975,-28609,15917,-28642,15858,-28674,15799,-28707,15740,-28739,15682,-28771,15623,-28803,15564,-28835,15505,-28867,15446,-28898,15387,-28930,15327,-28961,15268,-28993,15209,-29024,15149,-29055,15090,-29086,15030,-29117,14971,-29147,14911,-29178,14852,-29208,14792,-29239,14732,-29269,14672,-29299,14612,-29329,14552,-29359,14492,-29388,14432,-29418,14372,-29447,14311,-29477,14251,-29506,14191,-29535,14130,-29564,14070,-29593,14009,-29622,13949,-29650,13888,-29679,13827,-29707,13766,-29735,13706,-29763,13645,-29791,13584,-29819,13523,-29847,13462,-29874,13400,-29902,13339,-29929,13278,-29956,13217,-29984,13155,-30010,13094,-30037,13033,-30064,12971,-30091,12909,-30117,12848,-30143,12786,-30170,12724,-30196,12663,-30222,12601,-30248,12539,-30273,12477,-30299,12415,-30324,12353,-30350,12291,-30375,12229,-30400,12166,-30425,12104,-30450,12042,-30474,11980,-30499,11917,-30523,11855,-30548,11792,-30572,11730,-30596,11667,-30620,11604,-30644,11542,-30667,11479,-30691,11416,-30714,11353,-30738,11290,-30761,11227,-30784,11164,-30807,11101,-30829,11038,-30852,10975,-30875,10912,-30897,10849,-30919,10786,-30941,10722,-30963,10659,-30985,10596,-31007,10532,-31029,10469,-31050,10405,-31071,10342,-31093,10278,-31114,10214,-31135,10151,-31155,10087,-31176,10023,-31197,9959,-31217,9895,-31237,9831,-31258,9767,-31278,9703,-31298,9639,-31317,9575,-31337,9511,-31357,9447,-31376,9383,-31395,9319,-31414,9254,-31433,9190,-31452,9126,-31471,9061,-31490,8997,-31508,8932,-31526,8868,-31545,8803,-31563,8739,-31581,8674,-31598,8610,-31616,8545,-31634,8480,-31651,8415,-31668,8351,-31685,8286,-31702,8221,-31719,8156,-31736,8091,-31753,8026,-31769,7961,-31786,7896,-31802,7831,-31818,7766,-31834,7701,-31850,7636,-31865,7571,-31881,7505,-31896,7440,-31912,7375,-31927,7310,-31942,7244,-31957,7179,-31971,7113,-31986,7048,-32000,6982,-32015,6917,-32029,6851,-32043,6786,-32057,6720,-32071,6655,-32085,6589,-32098,6523,-32111,6458,-32125,6392,-32138,6326,-32151,6261,-32164,6195,-32177,6129,-32189,6063,-32202,5997,-32214,5931,-32226,5865,-32238,5799,-32250,5733,-32262,5667,-32274,5601,-32285,5535,-32296,5469,-32308,5403,-32319,5337,-32330,5271,-32341,5205,-32351,5139,-32362,5072,-32372,5006,-32383,4940,-32393,4874,-32403,4807,-32413,4741,-32423,4675,-32432,4608,-32442,4542,-32451,4476,-32460,4409,-32469,4343,-32478,4276,-32487,4210,-32496,4144,-32504,4077,-32513,4011,-32521,3944,-32529,3877,-32537,3811,-32545,3744,-32553,3678,-32560,3611,-32568,3545,-32575,3478,-32582,3411,-32589,3345,-32596,3278,-32603,3211,-32610,3145,-32616,3078,-32623,3011,-32629,2944,-32635,2878,-32641,2811,-32647,2744,-32652,2677,-32658,2610,-32663,2544,-32669,2477,-32674,2410,-32679,2343,-32684,2276,-32688,2209,-32693,2143,-32697,2076,-32702,2009,-32706,1942,-32710,1875,-32714,1808,-32718,1741,-32721,1674,-32725,1607,-32728,1540,-32731,1473,-32734,1406,-32737,1339,-32740,1273,-32743,1206,-32745,1139,-32748,1072,-32750,1005,-32752,938,-32754,871,-32756,804,-32758,737,-32759,670,-32761,603,-32762,536,-32763,469,-32764,402,-32765,335,-32766,268,-32766,201,-32767,134,-32767,67,-32767,0,-32767,-68,-32767,-135,-32767,-202,-32767,-269,-32766,-336,-32766,-403,-32765,-470,-32764,-537,-32763,-604,-32762,-671,-32761,-738,-32759,-805,-32758,-872,-32756,-939,-32754,-1006,-32752,-1073,-32750,-1140,-32748,-1207,-32745,-1274,-32743,-1340,-32740,-1407,-32737,-1474,-32734,-1541,-32731,-1608,-32728,-1675,-32725,-1742,-32721,-1809,-32718,-1876,-32714,-1943,-32710,-2010,-32706,-2077,-32702,-2144,-32697,-2210,-32693,-2277,-32688,-2344,-32684,-2411,-32679,-2478,-32674,-2545,-32669,-2611,-32663,-2678,-32658,-2745,-32652,-2812,-32647,-2879,-32641,-2945,-32635,-3012,-32629,-3079,-32623,-3146,-32616,-3212,-32610,-3279,-32603,-3346,-32596,-3412,-32589,-3479,-32582,-3546,-32575,-3612,-32568,-3679,-32560,-3745,-32553,-3812,-32545,-3878,-32537,-3945,-32529,-4012,-32521,-4078,-32513,-4145,-32504,-4211,-32496,-4277,-32487,-4344,-32478,-4410,-32469,-4477,-32460,-4543,-32451,-4609,-32442,-4676,-32432,-4742,-32423,-4808,-32413,-4875,-32403,-4941,-32393,-5007,-32383,-5073,-32372,-5140,-32362,-5206,-32351,-5272,-32341,-5338,-32330,-5404,-32319,-5470,-32308,-5536,-32296,-5602,-32285,-5668,-32274,-5734,-32262,-5800,-32250,-5866,-32238,-5932,-32226,-5998,-32214,-6064,-32202,-6130,-32189,-6196,-32177,-6262,-32164,-6327,-32151,-6393,-32138,-6459,-32125,-6524,-32111,-6590,-32098,-6656,-32085,-6721,-32071,-6787,-32057,-6852,-32043,-6918,-32029,-6983,-32015,-7049,-32000,-7114,-31986,-7180,-31971,-7245,-31957,-7311,-31942,-7376,-31927,-7441,-31912,-7506,-31896,-7572,-31881,-7637,-31865,-7702,-31850,-7767,-31834,-7832,-31818,-7897,-31802,-7962,-31786,-8027,-31769,-8092,-31753,-8157,-31736,-8222,-31719,-8287,-31702,-8352,-31685,-8416,-31668,-8481,-31651,-8546,-31634,-8611,-31616,-8675,-31598,-8740,-31581,-8804,-31563,-8869,-31545,-8933,-31526,-8998,-31508,-9062,-31490,-9127,-31471,-9191,-31452,-9255,-31433,-9320,-31414,-9384,-31395,-9448,-31376,-9512,-31357,-9576,-31337,-9640,-31317,-9704,-31298,-9768,-31278,-9832,-31258,-9896,-31237,-9960,-31217,-10024,-31197,-10088,-31176,-10152,-31155,-10215,-31135,-10279,-31114,-10343,-31093,-10406,-31071,-10470,-31050,-10533,-31029,-10597,-31007,-10660,-30985,-10723,-30963,-10787,-30941,-10850,-30919,-10913,-30897,-10976,-30875,-11039,-30852,-11102,-30829,-11165,-30807,-11228,-30784,-11291,-30761,-11354,-30738,-11417,-30714,-11480,-30691,-11543,-30667,-11605,-30644,-11668,-30620,-11731,-30596,-11793,-30572,-11856,-30548,-11918,-30523,-11981,-30499,-12043,-30474,-12105,-30450,-12167,-30425,-12230,-30400,-12292,-30375,-12354,-30350,-12416,-30324,-12478,-30299,-12540,-30273,-12602,-30248,-12664,-30222,-12725,-30196,-12787,-30170,-12849,-30143,-12910,-30117,-12972,-30091,-13034,-30064,-13095,-30037,-13156,-30010,-13218,-29984,-13279,-29956,-13340,-29929,-13401,-29902,-13463,-29874,-13524,-29847,-13585,-29819,-13646,-29791,-13707,-29763,-13767,-29735,-13828,-29707,-13889,-29679,-13950,-29650,-14010,-29622,-14071,-29593,-14131,-29564,-14192,-29535,-14252,-29506,-14312,-29477,-14373,-29447,-14433,-29418,-14493,-29388,-14553,-29359,-14613,-29329,-14673,-29299,-14733,-29269,-14793,-29239,-14853,-29208,-14912,-29178,-14972,-29147,-15031,-29117,-15091,-29086,-15150,-29055,-15210,-29024,-15269,-28993,-15328,-28961,-15388,-28930,-15447,-28898,-15506,-28867,-15565,-28835,-15624,-28803,-15683,-28771,-15741,-28739,-15800,-28707,-15859,-28674,-15918,-28642,-15976,-28609,-16035,-28576,-16093,-28544,-16151,-28511,-16210,-28478,-16268,-28444,-16326,-28411,-16384,-28378,-16442,-28344,-16500,-28310,-16558,-28276,-16616,-28243,-16673,-28209,-16731,-28174,-16789,-28140,-16846,-28106,-16904,-28071,-16961,-28037,-17018,-28002,-17075,-27967,-17133,-27932,-17190,-27897,-17247,-27862,-17304,-27826,-17361,-27791,-17417,-27755,-17474,-27720,-17531,-27684,-17587,-27648,-17644,-27612,-17700,-27576,-17757,-27539,-17813,-27503,-17869,-27467,-17925,-27430,-17981,-27393,-18037,-27356,-18093,-27320,-18149,-27282,-18205,-27245,-18261,-27208,-18316,-27171,-18372,-27133,-18427,-27095,-18483,-27058,-18538,-27020,-18593,-26982,-18648,-26944,-18703,-26906,-18758,-26867,-18813,-26829,-18868,-26790,-18923,-26752,-18977,-26713,-19032,-26674,-19087,-26635,-19141,-26596,-19195,-26557,-19250,-26517,-19304,-26478,-19358,-26438,-19412,-26399,-19466,-26359,-19520,-26319,-19574,-26279,-19627,-26239,-19681,-26199,-19734,-26159,-19788,-26118,-19841,-26078,-19895,-26037,-19948,-25996,-20001,-25955,-20054,-25914,-20107,-25873,-20160,-25832,-20213,-25791,-20265,-25750,-20318,-25708,-20370,-25666,-20423,-25625,-20475,-25583,-20528,-25541,-20580,-25499,-20632,-25457,-20684,-25415,-20736,-25372,-20788,-25330,-20839,-25287,-20891,-25244,-20943,-25202,-20994,-25159,-21046,-25116,-21097,-25073,-21148,-25030,-21199,-24986,-21250,-24943,-21301,-24899,-21352,-24856,-21403,-24812,-21454,-24768,-21504,-24724,-21555,-24680,-21605,-24636,-21656,-24592,-21706,-24547,-21756,-24503,-21806,-24458,-21856,-24414,-21906,-24369,-21956,-24324,-22005,-24279,-22055,-24234,-22105,-24189,-22154,-24144,-22203,-24098,-22253,-24053,-22302,-24007,-22351,-23962,-22400,-23916,-22449,-23870,-22497,-23824,-22546,-23778,-22595,-23732,-22643,-23686,-22692,-23639,-22740,-23593,-22788,-23546,-22836,-23500,-22884,-23453,-22932,-23406,-22980,-23359,-23028,-23312,-23075,-23265,-23123,-23218,-23170,-23170,-23218,-23123,-23265,-23075,-23312,-23028,-23359,-22980,-23406,-22932,-23453,-22884,-23500,-22836,-23546,-22788,-23593,-22740,-23639,-22692,-23686,-22643,-23732,-22595,-23778,-22546,-23824,-22497,-23870,-22449,-23916,-22400,-23962,-22351,-24007,-22302,-24053,-22253,-24098,-22203,-24144,-22154,-24189,-22105,-24234,-22055,-24279,-22005,-24324,-21956,-24369,-21906,-24414,-21856,-24458,-21806,-24503,-21756,-24547,-21706,-24592,-21656,-24636,-21605,-24680,-21555,-24724,-21504,-24768,-21454,-24812,-21403,-24856,-21352,-24899,-21301,-24943,-21250,-24986,-21199,-25030,-21148,-25073,-21097,-25116,-21046,-25159,-20994,-25202,-20943,-25244,-20891,-25287,-20839,-25330,-20788,-25372,-20736,-25415,-20684,-25457,-20632,-25499,-20580,-25541,-20528,-25583,-20475,-25625,-20423,-25666,-20370,-25708,-20318,-25750,-20265,-25791,-20213,-25832,-20160,-25873,-20107,-25914,-20054,-25955,-20001,-25996,-19948,-26037,-19895,-26078,-19841,-26118,-19788,-26159,-19734,-26199,-19681,-26239,-19627,-26279,-19574,-26319,-19520,-26359,-19466,-26399,-19412,-26438,-19358,-26478,-19304,-26517,-19250,-26557,-19195,-26596,-19141,-26635,-19087,-26674,-19032,-26713,-18977,-26752,-18923,-26790,-18868,-26829,-18813,-26867,-18758,-26906,-18703,-26944,-18648,-26982,-18593,-27020,-18538,-27058,-18483,-27095,-18427,-27133,-18372,-27171,-18316,-27208,-18261,-27245,-18205,-27282,-18149,-27320,-18093,-27356,-18037,-27393,-17981,-27430,-17925,-27467,-17869,-27503,-17813,-27539,-17757,-27576,-17700,-27612,-17644,-27648,-17587,-27684,-17531,-27720,-17474,-27755,-17417,-27791,-17361,-27826,-17304,-27862,-17247,-27897,-17190,-27932,-17133,-27967,-17075,-28002,-17018,-28037,-16961,-28071,-16904,-28106,-16846,-28140,-16789,-28174,-16731,-28209,-16673,-28243,-16616,-28276,-16558,-28310,-16500,-28344,-16442,-28378,-16384,-28411,-16326,-28444,-16268,-28478,-16210,-28511,-16151,-28544,-16093,-28576,-16035,-28609,-15976,-28642,-15918,-28674,-15859,-28707,-15800,-28739,-15741,-28771,-15683,-28803,-15624,-28835,-15565,-28867,-15506,-28898,-15447,-28930,-15388,-28961,-15328,-28993,-15269,-29024,-15210,-29055,-15150,-29086,-15091,-29117,-15031,-29147,-14972,-29178,-14912,-29208,-14853,-29239,-14793,-29269,-14733,-29299,-14673,-29329,-14613,-29359,-14553,-29388,-14493,-29418,-14433,-29447,-14373,-29477,-14312,-29506,-14252,-29535,-14192,-29564,-14131,-29593,-14071,-29622,-14010,-29650,-13950,-29679,-13889,-29707,-13828,-29735,-13767,-29763,-13707,-29791,-13646,-29819,-13585,-29847,-13524,-29874,-13463,-29902,-13401,-29929,-13340,-29956,-13279,-29984,-13218,-30010,-13156,-30037,-13095,-30064,-13034,-30091,-12972,-30117,-12910,-30143,-12849,-30170,-12787,-30196,-12725,-30222,-12664,-30248,-12602,-30273,-12540,-30299,-12478,-30324,-12416,-30350,-12354,-30375,-12292,-30400,-12230,-30425,-12167,-30450,-12105,-30474,-12043,-30499,-11981,-30523,-11918,-30548,-11856,-30572,-11793,-30596,-11731,-30620,-11668,-30644,-11605,-30667,-11543,-30691,-11480,-30714,-11417,-30738,-11354,-30761,-11291,-30784,-11228,-30807,-11165,-30829,-11102,-30852,-11039,-30875,-10976,-30897,-10913,-30919,-10850,-30941,-10787,-30963,-10723,-30985,-10660,-31007,-10597,-31029,-10533,-31050,-10470,-31071,-10406,-31093,-10343,-31114,-10279,-31135,-10215,-31155,-10152,-31176,-10088,-31197,-10024,-31217,-9960,-31237,-9896,-31258,-9832,-31278,-9768,-31298,-9704,-31317,-9640,-31337,-9576,-31357,-9512,-31376,-9448,-31395,-9384,-31414,-9320,-31433,-9255,-31452,-9191,-31471,-9127,-31490,-9062,-31508,-8998,-31526,-8933,-31545,-8869,-31563,-8804,-31581,-8740,-31598,-8675,-31616,-8611,-31634,-8546,-31651,-8481,-31668,-8416,-31685,-8352,-31702,-8287,-31719,-8222,-31736,-8157,-31753,-8092,-31769,-8027,-31786,-7962,-31802,-7897,-31818,-7832,-31834,-7767,-31850,-7702,-31865,-7637,-31881,-7572,-31896,-7506,-31912,-7441,-31927,-7376,-31942,-7311,-31957,-7245,-31971,-7180,-31986,-7114,-32000,-7049,-32015,-6983,-32029,-6918,-32043,-6852,-32057,-6787,-32071,-6721,-32085,-6656,-32098,-6590,-32111,-6524,-32125,-6459,-32138,-6393,-32151,-6327,-32164,-6262,-32177,-6196,-32189,-6130,-32202,-6064,-32214,-5998,-32226,-5932,-32238,-5866,-32250,-5800,-32262,-5734,-32274,-5668,-32285,-5602,-32296,-5536,-32308,-5470,-32319,-5404,-32330,-5338,-32341,-5272,-32351,-5206,-32362,-5140,-32372,-5073,-32383,-5007,-32393,-4941,-32403,-4875,-32413,-4808,-32423,-4742,-32432,-4676,-32442,-4609,-32451,-4543,-32460,-4477,-32469,-4410,-32478,-4344,-32487,-4277,-32496,-4211,-32504,-4145,-32513,-4078,-32521,-4012,-32529,-3945,-32537,-3878,-32545,-3812,-32553,-3745,-32560,-3679,-32568,-3612,-32575,-3546,-32582,-3479,-32589,-3412,-32596,-3346,-32603,-3279,-32610,-3212,-32616,-3146,-32623,-3079,-32629,-3012,-32635,-2945,-32641,-2879,-32647,-2812,-32652,-2745,-32658,-2678,-32663,-2611,-32669,-2545,-32674,-2478,-32679,-2411,-32684,-2344,-32688,-2277,-32693,-2210,-32697,-2144,-32702,-2077,-32706,-2010,-32710,-1943,-32714,-1876,-32718,-1809,-32721,-1742,-32725,-1675,-32728,-1608,-32731,-1541,-32734,-1474,-32737,-1407,-32740,-1340,-32743,-1274,-32745,-1207,-32748,-1140,-32750,-1073,-32752,-1006,-32754,-939,-32756,-872,-32758,-805,-32759,-738,-32761,-671,-32762,-604,-32763,-537,-32764,-470,-32765,-403,-32766,-336,-32766,-269,-32767,-202,-32767,-135,-32767,-68,-32767,-1,-32767,67,-32767,134,-32767,201,-32766,268,-32766,335,-32765,402,-32764,469,-32763,536,-32762,603,-32761,670,-32759,737,-32758,804,-32756,871,-32754,938,-32752,1005,-32750,1072,-32748,1139,-32745,1206,-32743,1273,-32740,1339,-32737,1406,-32734,1473,-32731,1540,-32728,1607,-32725,1674,-32721,1741,-32718,1808,-32714,1875,-32710,1942,-32706,2009,-32702,2076,-32697,2143,-32693,2209,-32688,2276,-32684,2343,-32679,2410,-32674,2477,-32669,2544,-32663,2610,-32658,2677,-32652,2744,-32647,2811,-32641,2878,-32635,2944,-32629,3011,-32623,3078,-32616,3145,-32610,3211,-32603,3278,-32596,3345,-32589,3411,-32582,3478,-32575,3545,-32568,3611,-32560,3678,-32553,3744,-32545,3811,-32537,3877,-32529,3944,-32521,4011,-32513,4077,-32504,4144,-32496,4210,-32487,4276,-32478,4343,-32469,4409,-32460,4476,-32451,4542,-32442,4608,-32432,4675,-32423,4741,-32413,4807,-32403,4874,-32393,4940,-32383,5006,-32372,5072,-32362,5139,-32351,5205,-32341,5271,-32330,5337,-32319,5403,-32308,5469,-32296,5535,-32285,5601,-32274,5667,-32262,5733,-32250,5799,-32238,5865,-32226,5931,-32214,5997,-32202,6063,-32189,6129,-32177,6195,-32164,6261,-32151,6326,-32138,6392,-32125,6458,-32111,6523,-32098,6589,-32085,6655,-32071,6720,-32057,6786,-32043,6851,-32029,6917,-32015,6982,-32000,7048,-31986,7113,-31971,7179,-31957,7244,-31942,7310,-31927,7375,-31912,7440,-31896,7505,-31881,7571,-31865,7636,-31850,7701,-31834,7766,-31818,7831,-31802,7896,-31786,7961,-31769,8026,-31753,8091,-31736,8156,-31719,8221,-31702,8286,-31685,8351,-31668,8415,-31651,8480,-31634,8545,-31616,8610,-31598,8674,-31581,8739,-31563,8803,-31545,8868,-31526,8932,-31508,8997,-31490,9061,-31471,9126,-31452,9190,-31433,9254,-31414,9319,-31395,9383,-31376,9447,-31357,9511,-31337,9575,-31317,9639,-31298,9703,-31278,9767,-31258,9831,-31237,9895,-31217,9959,-31197,10023,-31176,10087,-31155,10151,-31135,10214,-31114,10278,-31093,10342,-31071,10405,-31050,10469,-31029,10532,-31007,10596,-30985,10659,-30963,10722,-30941,10786,-30919,10849,-30897,10912,-30875,10975,-30852,11038,-30829,11101,-30807,11164,-30784,11227,-30761,11290,-30738,11353,-30714,11416,-30691,11479,-30667,11542,-30644,11604,-30620,11667,-30596,11730,-30572,11792,-30548,11855,-30523,11917,-30499,11980,-30474,12042,-30450,12104,-30425,12166,-30400,12229,-30375,12291,-30350,12353,-30324,12415,-30299,12477,-30273,12539,-30248,12601,-30222,12663,-30196,12724,-30170,12786,-30143,12848,-30117,12909,-30091,12971,-30064,13033,-30037,13094,-30010,13155,-29984,13217,-29956,13278,-29929,13339,-29902,13400,-29874,13462,-29847,13523,-29819,13584,-29791,13645,-29763,13706,-29735,13766,-29707,13827,-29679,13888,-29650,13949,-29622,14009,-29593,14070,-29564,14130,-29535,14191,-29506,14251,-29477,14311,-29447,14372,-29418,14432,-29388,14492,-29359,14552,-29329,14612,-29299,14672,-29269,14732,-29239,14792,-29208,14852,-29178,14911,-29147,14971,-29117,15030,-29086,15090,-29055,15149,-29024,15209,-28993,15268,-28961,15327,-28930,15387,-28898,15446,-28867,15505,-28835,15564,-28803,15623,-28771,15682,-28739,15740,-28707,15799,-28674,15858,-28642,15917,-28609,15975,-28576,16034,-28544,16092,-28511,16150,-28478,16209,-28444,16267,-28411,16325,-28378,16383,-28344,16441,-28310,16499,-28276,16557,-28243,16615,-28209,16672,-28174,16730,-28140,16788,-28106,16845,-28071,16903,-28037,16960,-28002,17017,-27967,17074,-27932,17132,-27897,17189,-27862,17246,-27826,17303,-27791,17360,-27755,17416,-27720,17473,-27684,17530,-27648,17586,-27612,17643,-27576,17699,-27539,17756,-27503,17812,-27467,17868,-27430,17924,-27393,17980,-27356,18036,-27320,18092,-27282,18148,-27245,18204,-27208,18260,-27171,18315,-27133,18371,-27095,18426,-27058,18482,-27020,18537,-26982,18592,-26944,18647,-26906,18702,-26867,18757,-26829,18812,-26790,18867,-26752,18922,-26713,18976,-26674,19031,-26635,19086,-26596,19140,-26557,19194,-26517,19249,-26478,19303,-26438,19357,-26399,19411,-26359,19465,-26319,19519,-26279,19573,-26239,19626,-26199,19680,-26159,19733,-26118,19787,-26078,19840,-26037,19894,-25996,19947,-25955,20000,-25914,20053,-25873,20106,-25832,20159,-25791,20212,-25750,20264,-25708,20317,-25666,20369,-25625,20422,-25583,20474,-25541,20527,-25499,20579,-25457,20631,-25415,20683,-25372,20735,-25330,20787,-25287,20838,-25244,20890,-25202,20942,-25159,20993,-25116,21045,-25073,21096,-25030,21147,-24986,21198,-24943,21249,-24899,21300,-24856,21351,-24812,21402,-24768,21453,-24724,21503,-24680,21554,-24636,21604,-24592,21655,-24547,21705,-24503,21755,-24458,21805,-24414,21855,-24369,21905,-24324,21955,-24279,22004,-24234,22054,-24189,22104,-24144,22153,-24098,22202,-24053,22252,-24007,22301,-23962,22350,-23916,22399,-23870,22448,-23824,22496,-23778,22545,-23732,22594,-23686,22642,-23639,22691,-23593,22739,-23546,22787,-23500,22835,-23453,22883,-23406,22931,-23359,22979,-23312,23027,-23265,23074,-23218,23122,-23170,23169,-23123,23217,-23075,23264,-23028,23311,-22980,23358,-22932,23405,-22884,23452,-22836,23499,-22788,23545,-22740,23592,-22692,23638,-22643,23685,-22595,23731,-22546,23777,-22497,23823,-22449,23869,-22400,23915,-22351,23961,-22302,24006,-22253,24052,-22203,24097,-22154,24143,-22105,24188,-22055,24233,-22005,24278,-21956,24323,-21906,24368,-21856,24413,-21806,24457,-21756,24502,-21706,24546,-21656,24591,-21605,24635,-21555,24679,-21504,24723,-21454,24767,-21403,24811,-21352,24855,-21301,24898,-21250,24942,-21199,24985,-21148,25029,-21097,25072,-21046,25115,-20994,25158,-20943,25201,-20891,25243,-20839,25286,-20788,25329,-20736,25371,-20684,25414,-20632,25456,-20580,25498,-20528,25540,-20475,25582,-20423,25624,-20370,25665,-20318,25707,-20265,25749,-20213,25790,-20160,25831,-20107,25872,-20054,25913,-20001,25954,-19948,25995,-19895,26036,-19841,26077,-19788,26117,-19734,26158,-19681,26198,-19627,26238,-19574,26278,-19520,26318,-19466,26358,-19412,26398,-19358,26437,-19304,26477,-19250,26516,-19195,26556,-19141,26595,-19087,26634,-19032,26673,-18977,26712,-18923,26751,-18868,26789,-18813,26828,-18758,26866,-18703,26905,-18648,26943,-18593,26981,-18538,27019,-18483,27057,-18427,27094,-18372,27132,-18316,27170,-18261,27207,-18205,27244,-18149,27281,-18093,27319,-18037,27355,-17981,27392,-17925,27429,-17869,27466,-17813,27502,-17757,27538,-17700,27575,-17644,27611,-17587,27647,-17531,27683,-17474,27719,-17417,27754,-17361,27790,-17304,27825,-17247,27861,-17190,27896,-17133,27931,-17075,27966,-17018,28001,-16961,28036,-16904,28070,-16846,28105,-16789,28139,-16731,28173,-16673,28208,-16616,28242,-16558,28275,-16500,28309,-16442,28343}; diff --git a/openair1/PHY/TOOLS/twiddles4096.h b/openair1/PHY/TOOLS/twiddles4096.h deleted file mode 100644 index af2b6a8887..0000000000 --- a/openair1/PHY/TOOLS/twiddles4096.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(0:1023)/4096)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(0:1023)/4096)); -twc = floor(32767*exp(-sqrt(-1)*2*pi*3*(0:1023)/4096)); -twa2 = zeros(1,2*1024); -twb2 = zeros(1,2*1024); -twc2 = zeros(1,2*1024); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -twc2(1:2:end) = real(twc); -twc2(2:2:end) = imag(twc); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t tw4096[3*1024*2] = {"); -fprintf(fd,"%d,",twa2); -fprintf(fd,"%d,",twb2); -fprintf(fd,"%d,",twc2(1:(1024*2)-1)); -fprintf(fd,"%d};\n",twc2(end)); -fclose(fd); -*/ -static int16_t tw4096[3*1024*2] = {32767,0,32766,-51,32766,-101,32766,-151,32766,-202,32766,-252,32765,-302,32765,-352,32764,-403,32763,-453,32763,-503,32762,-553,32761,-604,32760,-654,32759,-704,32758,-754,32757,-805,32755,-855,32754,-905,32753,-955,32751,-1006,32750,-1056,32748,-1106,32746,-1156,32744,-1207,32742,-1257,32740,-1307,32738,-1357,32736,-1407,32734,-1458,32732,-1508,32729,-1558,32727,-1608,32725,-1659,32722,-1709,32719,-1759,32717,-1809,32714,-1859,32711,-1909,32708,-1960,32705,-2010,32702,-2060,32699,-2110,32695,-2160,32692,-2210,32688,-2261,32685,-2311,32681,-2361,32678,-2411,32674,-2461,32670,-2511,32666,-2561,32662,-2611,32658,-2662,32654,-2712,32650,-2762,32646,-2812,32641,-2862,32637,-2912,32632,-2962,32628,-3012,32623,-3062,32618,-3112,32614,-3162,32609,-3212,32604,-3262,32599,-3312,32594,-3362,32588,-3412,32583,-3462,32578,-3512,32572,-3562,32567,-3612,32561,-3662,32556,-3712,32550,-3762,32544,-3812,32538,-3862,32532,-3912,32526,-3962,32520,-4012,32514,-4061,32508,-4111,32501,-4161,32495,-4211,32488,-4261,32482,-4311,32475,-4360,32468,-4410,32462,-4460,32455,-4510,32448,-4560,32441,-4609,32434,-4659,32426,-4709,32419,-4759,32412,-4808,32404,-4858,32397,-4908,32389,-4958,32382,-5007,32374,-5057,32366,-5107,32358,-5156,32350,-5206,32342,-5255,32334,-5305,32326,-5355,32318,-5404,32310,-5454,32301,-5503,32293,-5553,32284,-5602,32275,-5652,32267,-5701,32258,-5751,32249,-5800,32240,-5850,32231,-5899,32222,-5949,32213,-5998,32204,-6048,32194,-6097,32185,-6146,32176,-6196,32166,-6245,32156,-6294,32147,-6344,32137,-6393,32127,-6442,32117,-6492,32107,-6541,32097,-6590,32087,-6639,32077,-6689,32066,-6738,32056,-6787,32046,-6836,32035,-6885,32024,-6934,32014,-6983,32003,-7033,31992,-7082,31981,-7131,31970,-7180,31959,-7229,31948,-7278,31937,-7327,31926,-7376,31914,-7425,31903,-7474,31891,-7523,31880,-7572,31868,-7620,31856,-7669,31845,-7718,31833,-7767,31821,-7816,31809,-7865,31797,-7913,31785,-7962,31772,-8011,31760,-8060,31748,-8108,31735,-8157,31723,-8206,31710,-8254,31697,-8303,31684,-8352,31672,-8400,31659,-8449,31646,-8497,31633,-8546,31619,-8594,31606,-8643,31593,-8691,31580,-8740,31566,-8788,31553,-8837,31539,-8885,31525,-8933,31512,-8982,31498,-9030,31484,-9078,31470,-9127,31456,-9175,31442,-9223,31428,-9271,31413,-9320,31399,-9368,31385,-9416,31370,-9464,31356,-9512,31341,-9560,31326,-9608,31311,-9656,31297,-9704,31282,-9752,31267,-9800,31252,-9848,31236,-9896,31221,-9944,31206,-9992,31191,-10040,31175,-10088,31160,-10136,31144,-10183,31128,-10231,31113,-10279,31097,-10327,31081,-10374,31065,-10422,31049,-10470,31033,-10517,31017,-10565,31001,-10612,30984,-10660,30968,-10707,30951,-10755,30935,-10802,30918,-10850,30902,-10897,30885,-10945,30868,-10992,30851,-11039,30834,-11087,30817,-11134,30800,-11181,30783,-11228,30766,-11276,30748,-11323,30731,-11370,30713,-11417,30696,-11464,30678,-11511,30660,-11558,30643,-11605,30625,-11652,30607,-11699,30589,-11746,30571,-11793,30553,-11840,30535,-11887,30516,-11934,30498,-11981,30480,-12027,30461,-12074,30442,-12121,30424,-12167,30405,-12214,30386,-12261,30368,-12307,30349,-12354,30330,-12400,30311,-12447,30291,-12493,30272,-12540,30253,-12586,30234,-12633,30214,-12679,30195,-12725,30175,-12772,30156,-12818,30136,-12864,30116,-12910,30096,-12957,30076,-13003,30056,-13049,30036,-13095,30016,-13141,29996,-13187,29976,-13233,29955,-13279,29935,-13325,29915,-13371,29894,-13417,29873,-13463,29853,-13508,29832,-13554,29811,-13600,29790,-13646,29769,-13691,29748,-13737,29727,-13783,29706,-13828,29685,-13874,29663,-13919,29642,-13965,29621,-14010,29599,-14056,29577,-14101,29556,-14146,29534,-14192,29512,-14237,29490,-14282,29468,-14327,29446,-14373,29424,-14418,29402,-14463,29380,-14508,29358,-14553,29335,-14598,29313,-14643,29290,-14688,29268,-14733,29245,-14778,29222,-14823,29200,-14867,29177,-14912,29154,-14957,29131,-15002,29108,-15046,29085,-15091,29062,-15136,29038,-15180,29015,-15225,28992,-15269,28968,-15314,28945,-15358,28921,-15402,28897,-15447,28874,-15491,28850,-15535,28826,-15580,28802,-15624,28778,-15668,28754,-15712,28730,-15756,28706,-15800,28681,-15844,28657,-15888,28633,-15932,28608,-15976,28584,-16020,28559,-16064,28534,-16108,28510,-16151,28485,-16195,28460,-16239,28435,-16282,28410,-16326,28385,-16369,28360,-16413,28335,-16456,28309,-16500,28284,-16543,28259,-16587,28233,-16630,28208,-16673,28182,-16717,28156,-16760,28131,-16803,28105,-16846,28079,-16889,28053,-16932,28027,-16975,28001,-17018,27975,-17061,27948,-17104,27922,-17147,27896,-17190,27869,-17233,27843,-17275,27816,-17318,27790,-17361,27763,-17403,27736,-17446,27710,-17488,27683,-17531,27656,-17573,27629,-17616,27602,-17658,27575,-17700,27548,-17743,27520,-17785,27493,-17827,27466,-17869,27438,-17911,27411,-17953,27383,-17995,27355,-18037,27328,-18079,27300,-18121,27272,-18163,27244,-18205,27216,-18247,27188,-18288,27160,-18330,27132,-18372,27104,-18413,27076,-18455,27047,-18496,27019,-18538,26990,-18579,26962,-18621,26933,-18662,26905,-18703,26876,-18745,26847,-18786,26818,-18827,26789,-18868,26760,-18909,26731,-18950,26702,-18991,26673,-19032,26644,-19073,26615,-19114,26585,-19155,26556,-19195,26526,-19236,26497,-19277,26467,-19317,26437,-19358,26408,-19398,26378,-19439,26348,-19479,26318,-19520,26288,-19560,26258,-19600,26228,-19641,26198,-19681,26168,-19721,26137,-19761,26107,-19801,26077,-19841,26046,-19881,26016,-19921,25985,-19961,25954,-20001,25924,-20041,25893,-20080,25862,-20120,25831,-20160,25800,-20199,25769,-20239,25738,-20278,25707,-20318,25676,-20357,25645,-20397,25613,-20436,25582,-20475,25550,-20514,25519,-20554,25487,-20593,25456,-20632,25424,-20671,25392,-20710,25361,-20749,25329,-20788,25297,-20826,25265,-20865,25233,-20904,25201,-20943,25169,-20981,25136,-21020,25104,-21058,25072,-21097,25039,-21135,25007,-21174,24974,-21212,24942,-21250,24909,-21289,24877,-21327,24844,-21365,24811,-21403,24778,-21441,24745,-21479,24712,-21517,24679,-21555,24646,-21593,24613,-21630,24580,-21668,24546,-21706,24513,-21744,24480,-21781,24446,-21819,24413,-21856,24379,-21894,24346,-21931,24312,-21968,24278,-22005,24244,-22043,24211,-22080,24177,-22117,24143,-22154,24109,-22191,24075,-22228,24041,-22265,24006,-22302,23972,-22339,23938,-22375,23903,-22412,23869,-22449,23835,-22485,23800,-22522,23766,-22558,23731,-22595,23696,-22631,23661,-22667,23627,-22704,23592,-22740,23557,-22776,23522,-22812,23487,-22848,23452,-22884,23417,-22920,23382,-22956,23346,-22992,23311,-23028,23276,-23063,23240,-23099,23205,-23135,23169,-23170,23134,-23206,23098,-23241,23062,-23277,23027,-23312,22991,-23347,22955,-23383,22919,-23418,22883,-23453,22847,-23488,22811,-23523,22775,-23558,22739,-23593,22703,-23628,22666,-23662,22630,-23697,22594,-23732,22557,-23767,22521,-23801,22484,-23836,22448,-23870,22411,-23904,22374,-23939,22338,-23973,22301,-24007,22264,-24042,22227,-24076,22190,-24110,22153,-24144,22116,-24178,22079,-24212,22042,-24245,22004,-24279,21967,-24313,21930,-24347,21893,-24380,21855,-24414,21818,-24447,21780,-24481,21743,-24514,21705,-24547,21667,-24581,21629,-24614,21592,-24647,21554,-24680,21516,-24713,21478,-24746,21440,-24779,21402,-24812,21364,-24845,21326,-24878,21288,-24910,21249,-24943,21211,-24975,21173,-25008,21134,-25040,21096,-25073,21057,-25105,21019,-25137,20980,-25170,20942,-25202,20903,-25234,20864,-25266,20825,-25298,20787,-25330,20748,-25362,20709,-25393,20670,-25425,20631,-25457,20592,-25488,20553,-25520,20513,-25551,20474,-25583,20435,-25614,20396,-25646,20356,-25677,20317,-25708,20277,-25739,20238,-25770,20198,-25801,20159,-25832,20119,-25863,20079,-25894,20040,-25925,20000,-25955,19960,-25986,19920,-26017,19880,-26047,19840,-26078,19800,-26108,19760,-26138,19720,-26169,19680,-26199,19640,-26229,19599,-26259,19559,-26289,19519,-26319,19478,-26349,19438,-26379,19397,-26409,19357,-26438,19316,-26468,19276,-26498,19235,-26527,19194,-26557,19154,-26586,19113,-26616,19072,-26645,19031,-26674,18990,-26703,18949,-26732,18908,-26761,18867,-26790,18826,-26819,18785,-26848,18744,-26877,18702,-26906,18661,-26934,18620,-26963,18578,-26991,18537,-27020,18495,-27048,18454,-27077,18412,-27105,18371,-27133,18329,-27161,18287,-27189,18246,-27217,18204,-27245,18162,-27273,18120,-27301,18078,-27329,18036,-27356,17994,-27384,17952,-27412,17910,-27439,17868,-27467,17826,-27494,17784,-27521,17742,-27549,17699,-27576,17657,-27603,17615,-27630,17572,-27657,17530,-27684,17487,-27711,17445,-27737,17402,-27764,17360,-27791,17317,-27817,17274,-27844,17232,-27870,17189,-27897,17146,-27923,17103,-27949,17060,-27976,17017,-28002,16974,-28028,16931,-28054,16888,-28080,16845,-28106,16802,-28132,16759,-28157,16716,-28183,16672,-28209,16629,-28234,16586,-28260,16542,-28285,16499,-28310,16455,-28336,16412,-28361,16368,-28386,16325,-28411,16281,-28436,16238,-28461,16194,-28486,16150,-28511,16107,-28535,16063,-28560,16019,-28585,15975,-28609,15931,-28634,15887,-28658,15843,-28682,15799,-28707,15755,-28731,15711,-28755,15667,-28779,15623,-28803,15579,-28827,15534,-28851,15490,-28875,15446,-28898,15401,-28922,15357,-28946,15313,-28969,15268,-28993,15224,-29016,15179,-29039,15135,-29063,15090,-29086,15045,-29109,15001,-29132,14956,-29155,14911,-29178,14866,-29201,14822,-29223,14777,-29246,14732,-29269,14687,-29291,14642,-29314,14597,-29336,14552,-29359,14507,-29381,14462,-29403,14417,-29425,14372,-29447,14326,-29469,14281,-29491,14236,-29513,14191,-29535,14145,-29557,14100,-29578,14055,-29600,14009,-29622,13964,-29643,13918,-29664,13873,-29686,13827,-29707,13782,-29728,13736,-29749,13690,-29770,13645,-29791,13599,-29812,13553,-29833,13507,-29854,13462,-29874,13416,-29895,13370,-29916,13324,-29936,13278,-29956,13232,-29977,13186,-29997,13140,-30017,13094,-30037,13048,-30057,13002,-30077,12956,-30097,12909,-30117,12863,-30137,12817,-30157,12771,-30176,12724,-30196,12678,-30215,12632,-30235,12585,-30254,12539,-30273,12492,-30292,12446,-30312,12399,-30331,12353,-30350,12306,-30369,12260,-30387,12213,-30406,12166,-30425,12120,-30443,12073,-30462,12026,-30481,11980,-30499,11933,-30517,11886,-30536,11839,-30554,11792,-30572,11745,-30590,11698,-30608,11651,-30626,11604,-30644,11557,-30661,11510,-30679,11463,-30697,11416,-30714,11369,-30732,11322,-30749,11275,-30767,11227,-30784,11180,-30801,11133,-30818,11086,-30835,11038,-30852,10991,-30869,10944,-30886,10896,-30903,10849,-30919,10801,-30936,10754,-30952,10706,-30969,10659,-30985,10611,-31002,10564,-31018,10516,-31034,10469,-31050,10421,-31066,10373,-31082,10326,-31098,10278,-31114,10230,-31129,10182,-31145,10135,-31161,10087,-31176,10039,-31192,9991,-31207,9943,-31222,9895,-31237,9847,-31253,9799,-31268,9751,-31283,9703,-31298,9655,-31312,9607,-31327,9559,-31342,9511,-31357,9463,-31371,9415,-31386,9367,-31400,9319,-31414,9270,-31429,9222,-31443,9174,-31457,9126,-31471,9077,-31485,9029,-31499,8981,-31513,8932,-31526,8884,-31540,8836,-31554,8787,-31567,8739,-31581,8690,-31594,8642,-31607,8593,-31620,8545,-31634,8496,-31647,8448,-31660,8399,-31673,8351,-31685,8302,-31698,8253,-31711,8205,-31724,8156,-31736,8107,-31749,8059,-31761,8010,-31773,7961,-31786,7912,-31798,7864,-31810,7815,-31822,7766,-31834,7717,-31846,7668,-31857,7619,-31869,7571,-31881,7522,-31892,7473,-31904,7424,-31915,7375,-31927,7326,-31938,7277,-31949,7228,-31960,7179,-31971,7130,-31982,7081,-31993,7032,-32004,6982,-32015,6933,-32025,6884,-32036,6835,-32047,6786,-32057,6737,-32067,6688,-32078,6638,-32088,6589,-32098,6540,-32108,6491,-32118,6441,-32128,6392,-32138,6343,-32148,6293,-32157,6244,-32167,6195,-32177,6145,-32186,6096,-32195,6047,-32205,5997,-32214,5948,-32223,5898,-32232,5849,-32241,5799,-32250,5750,-32259,5700,-32268,5651,-32276,5601,-32285,5552,-32294,5502,-32302,5453,-32311,5403,-32319,5354,-32327,5304,-32335,5254,-32343,5205,-32351,5155,-32359,5106,-32367,5056,-32375,5006,-32383,4957,-32390,4907,-32398,4857,-32405,4807,-32413,4758,-32420,4708,-32427,4658,-32435,4608,-32442,4559,-32449,4509,-32456,4459,-32463,4409,-32469,4359,-32476,4310,-32483,4260,-32489,4210,-32496,4160,-32502,4110,-32509,4060,-32515,4011,-32521,3961,-32527,3911,-32533,3861,-32539,3811,-32545,3761,-32551,3711,-32557,3661,-32562,3611,-32568,3561,-32573,3511,-32579,3461,-32584,3411,-32589,3361,-32595,3311,-32600,3261,-32605,3211,-32610,3161,-32615,3111,-32619,3061,-32624,3011,-32629,2961,-32633,2911,-32638,2861,-32642,2811,-32647,2761,-32651,2711,-32655,2661,-32659,2610,-32663,2560,-32667,2510,-32671,2460,-32675,2410,-32679,2360,-32682,2310,-32686,2260,-32689,2209,-32693,2159,-32696,2109,-32700,2059,-32703,2009,-32706,1959,-32709,1908,-32712,1858,-32715,1808,-32718,1758,-32720,1708,-32723,1658,-32726,1607,-32728,1557,-32730,1507,-32733,1457,-32735,1406,-32737,1356,-32739,1306,-32741,1256,-32743,1206,-32745,1155,-32747,1105,-32749,1055,-32751,1005,-32752,954,-32754,904,-32755,854,-32756,804,-32758,753,-32759,703,-32760,653,-32761,603,-32762,552,-32763,502,-32764,452,-32764,402,-32765,351,-32766,301,-32766,251,-32767,201,-32767,150,-32767,100,-32767,50,-32767,32767,0,32766,-101,32766,-202,32765,-302,32764,-403,32763,-503,32761,-604,32759,-704,32757,-805,32754,-905,32751,-1006,32748,-1106,32744,-1207,32740,-1307,32736,-1407,32732,-1508,32727,-1608,32722,-1709,32717,-1809,32711,-1909,32705,-2010,32699,-2110,32692,-2210,32685,-2311,32678,-2411,32670,-2511,32662,-2611,32654,-2712,32646,-2812,32637,-2912,32628,-3012,32618,-3112,32609,-3212,32599,-3312,32588,-3412,32578,-3512,32567,-3612,32556,-3712,32544,-3812,32532,-3912,32520,-4012,32508,-4111,32495,-4211,32482,-4311,32468,-4410,32455,-4510,32441,-4609,32426,-4709,32412,-4808,32397,-4908,32382,-5007,32366,-5107,32350,-5206,32334,-5305,32318,-5404,32301,-5503,32284,-5602,32267,-5701,32249,-5800,32231,-5899,32213,-5998,32194,-6097,32176,-6196,32156,-6294,32137,-6393,32117,-6492,32097,-6590,32077,-6689,32056,-6787,32035,-6885,32014,-6983,31992,-7082,31970,-7180,31948,-7278,31926,-7376,31903,-7474,31880,-7572,31856,-7669,31833,-7767,31809,-7865,31785,-7962,31760,-8060,31735,-8157,31710,-8254,31684,-8352,31659,-8449,31633,-8546,31606,-8643,31580,-8740,31553,-8837,31525,-8933,31498,-9030,31470,-9127,31442,-9223,31413,-9320,31385,-9416,31356,-9512,31326,-9608,31297,-9704,31267,-9800,31236,-9896,31206,-9992,31175,-10088,31144,-10183,31113,-10279,31081,-10374,31049,-10470,31017,-10565,30984,-10660,30951,-10755,30918,-10850,30885,-10945,30851,-11039,30817,-11134,30783,-11228,30748,-11323,30713,-11417,30678,-11511,30643,-11605,30607,-11699,30571,-11793,30535,-11887,30498,-11981,30461,-12074,30424,-12167,30386,-12261,30349,-12354,30311,-12447,30272,-12540,30234,-12633,30195,-12725,30156,-12818,30116,-12910,30076,-13003,30036,-13095,29996,-13187,29955,-13279,29915,-13371,29873,-13463,29832,-13554,29790,-13646,29748,-13737,29706,-13828,29663,-13919,29621,-14010,29577,-14101,29534,-14192,29490,-14282,29446,-14373,29402,-14463,29358,-14553,29313,-14643,29268,-14733,29222,-14823,29177,-14912,29131,-15002,29085,-15091,29038,-15180,28992,-15269,28945,-15358,28897,-15447,28850,-15535,28802,-15624,28754,-15712,28706,-15800,28657,-15888,28608,-15976,28559,-16064,28510,-16151,28460,-16239,28410,-16326,28360,-16413,28309,-16500,28259,-16587,28208,-16673,28156,-16760,28105,-16846,28053,-16932,28001,-17018,27948,-17104,27896,-17190,27843,-17275,27790,-17361,27736,-17446,27683,-17531,27629,-17616,27575,-17700,27520,-17785,27466,-17869,27411,-17953,27355,-18037,27300,-18121,27244,-18205,27188,-18288,27132,-18372,27076,-18455,27019,-18538,26962,-18621,26905,-18703,26847,-18786,26789,-18868,26731,-18950,26673,-19032,26615,-19114,26556,-19195,26497,-19277,26437,-19358,26378,-19439,26318,-19520,26258,-19600,26198,-19681,26137,-19761,26077,-19841,26016,-19921,25954,-20001,25893,-20080,25831,-20160,25769,-20239,25707,-20318,25645,-20397,25582,-20475,25519,-20554,25456,-20632,25392,-20710,25329,-20788,25265,-20865,25201,-20943,25136,-21020,25072,-21097,25007,-21174,24942,-21250,24877,-21327,24811,-21403,24745,-21479,24679,-21555,24613,-21630,24546,-21706,24480,-21781,24413,-21856,24346,-21931,24278,-22005,24211,-22080,24143,-22154,24075,-22228,24006,-22302,23938,-22375,23869,-22449,23800,-22522,23731,-22595,23661,-22667,23592,-22740,23522,-22812,23452,-22884,23382,-22956,23311,-23028,23240,-23099,23169,-23170,23098,-23241,23027,-23312,22955,-23383,22883,-23453,22811,-23523,22739,-23593,22666,-23662,22594,-23732,22521,-23801,22448,-23870,22374,-23939,22301,-24007,22227,-24076,22153,-24144,22079,-24212,22004,-24279,21930,-24347,21855,-24414,21780,-24481,21705,-24547,21629,-24614,21554,-24680,21478,-24746,21402,-24812,21326,-24878,21249,-24943,21173,-25008,21096,-25073,21019,-25137,20942,-25202,20864,-25266,20787,-25330,20709,-25393,20631,-25457,20553,-25520,20474,-25583,20396,-25646,20317,-25708,20238,-25770,20159,-25832,20079,-25894,20000,-25955,19920,-26017,19840,-26078,19760,-26138,19680,-26199,19599,-26259,19519,-26319,19438,-26379,19357,-26438,19276,-26498,19194,-26557,19113,-26616,19031,-26674,18949,-26732,18867,-26790,18785,-26848,18702,-26906,18620,-26963,18537,-27020,18454,-27077,18371,-27133,18287,-27189,18204,-27245,18120,-27301,18036,-27356,17952,-27412,17868,-27467,17784,-27521,17699,-27576,17615,-27630,17530,-27684,17445,-27737,17360,-27791,17274,-27844,17189,-27897,17103,-27949,17017,-28002,16931,-28054,16845,-28106,16759,-28157,16672,-28209,16586,-28260,16499,-28310,16412,-28361,16325,-28411,16238,-28461,16150,-28511,16063,-28560,15975,-28609,15887,-28658,15799,-28707,15711,-28755,15623,-28803,15534,-28851,15446,-28898,15357,-28946,15268,-28993,15179,-29039,15090,-29086,15001,-29132,14911,-29178,14822,-29223,14732,-29269,14642,-29314,14552,-29359,14462,-29403,14372,-29447,14281,-29491,14191,-29535,14100,-29578,14009,-29622,13918,-29664,13827,-29707,13736,-29749,13645,-29791,13553,-29833,13462,-29874,13370,-29916,13278,-29956,13186,-29997,13094,-30037,13002,-30077,12909,-30117,12817,-30157,12724,-30196,12632,-30235,12539,-30273,12446,-30312,12353,-30350,12260,-30387,12166,-30425,12073,-30462,11980,-30499,11886,-30536,11792,-30572,11698,-30608,11604,-30644,11510,-30679,11416,-30714,11322,-30749,11227,-30784,11133,-30818,11038,-30852,10944,-30886,10849,-30919,10754,-30952,10659,-30985,10564,-31018,10469,-31050,10373,-31082,10278,-31114,10182,-31145,10087,-31176,9991,-31207,9895,-31237,9799,-31268,9703,-31298,9607,-31327,9511,-31357,9415,-31386,9319,-31414,9222,-31443,9126,-31471,9029,-31499,8932,-31526,8836,-31554,8739,-31581,8642,-31607,8545,-31634,8448,-31660,8351,-31685,8253,-31711,8156,-31736,8059,-31761,7961,-31786,7864,-31810,7766,-31834,7668,-31857,7571,-31881,7473,-31904,7375,-31927,7277,-31949,7179,-31971,7081,-31993,6982,-32015,6884,-32036,6786,-32057,6688,-32078,6589,-32098,6491,-32118,6392,-32138,6293,-32157,6195,-32177,6096,-32195,5997,-32214,5898,-32232,5799,-32250,5700,-32268,5601,-32285,5502,-32302,5403,-32319,5304,-32335,5205,-32351,5106,-32367,5006,-32383,4907,-32398,4807,-32413,4708,-32427,4608,-32442,4509,-32456,4409,-32469,4310,-32483,4210,-32496,4110,-32509,4011,-32521,3911,-32533,3811,-32545,3711,-32557,3611,-32568,3511,-32579,3411,-32589,3311,-32600,3211,-32610,3111,-32619,3011,-32629,2911,-32638,2811,-32647,2711,-32655,2610,-32663,2510,-32671,2410,-32679,2310,-32686,2209,-32693,2109,-32700,2009,-32706,1908,-32712,1808,-32718,1708,-32723,1607,-32728,1507,-32733,1406,-32737,1306,-32741,1206,-32745,1105,-32749,1005,-32752,904,-32755,804,-32758,703,-32760,603,-32762,502,-32764,402,-32765,301,-32766,201,-32767,100,-32767,0,-32767,-101,-32767,-202,-32767,-302,-32766,-403,-32765,-503,-32764,-604,-32762,-704,-32760,-805,-32758,-905,-32755,-1006,-32752,-1106,-32749,-1207,-32745,-1307,-32741,-1407,-32737,-1508,-32733,-1608,-32728,-1709,-32723,-1809,-32718,-1909,-32712,-2010,-32706,-2110,-32700,-2210,-32693,-2311,-32686,-2411,-32679,-2511,-32671,-2611,-32663,-2712,-32655,-2812,-32647,-2912,-32638,-3012,-32629,-3112,-32619,-3212,-32610,-3312,-32600,-3412,-32589,-3512,-32579,-3612,-32568,-3712,-32557,-3812,-32545,-3912,-32533,-4012,-32521,-4111,-32509,-4211,-32496,-4311,-32483,-4410,-32469,-4510,-32456,-4609,-32442,-4709,-32427,-4808,-32413,-4908,-32398,-5007,-32383,-5107,-32367,-5206,-32351,-5305,-32335,-5404,-32319,-5503,-32302,-5602,-32285,-5701,-32268,-5800,-32250,-5899,-32232,-5998,-32214,-6097,-32195,-6196,-32177,-6294,-32157,-6393,-32138,-6492,-32118,-6590,-32098,-6689,-32078,-6787,-32057,-6885,-32036,-6983,-32015,-7082,-31993,-7180,-31971,-7278,-31949,-7376,-31927,-7474,-31904,-7572,-31881,-7669,-31857,-7767,-31834,-7865,-31810,-7962,-31786,-8060,-31761,-8157,-31736,-8254,-31711,-8352,-31685,-8449,-31660,-8546,-31634,-8643,-31607,-8740,-31581,-8837,-31554,-8933,-31526,-9030,-31499,-9127,-31471,-9223,-31443,-9320,-31414,-9416,-31386,-9512,-31357,-9608,-31327,-9704,-31298,-9800,-31268,-9896,-31237,-9992,-31207,-10088,-31176,-10183,-31145,-10279,-31114,-10374,-31082,-10470,-31050,-10565,-31018,-10660,-30985,-10755,-30952,-10850,-30919,-10945,-30886,-11039,-30852,-11134,-30818,-11228,-30784,-11323,-30749,-11417,-30714,-11511,-30679,-11605,-30644,-11699,-30608,-11793,-30572,-11887,-30536,-11981,-30499,-12074,-30462,-12167,-30425,-12261,-30387,-12354,-30350,-12447,-30312,-12540,-30273,-12633,-30235,-12725,-30196,-12818,-30157,-12910,-30117,-13003,-30077,-13095,-30037,-13187,-29997,-13279,-29956,-13371,-29916,-13463,-29874,-13554,-29833,-13646,-29791,-13737,-29749,-13828,-29707,-13919,-29664,-14010,-29622,-14101,-29578,-14192,-29535,-14282,-29491,-14373,-29447,-14463,-29403,-14553,-29359,-14643,-29314,-14733,-29269,-14823,-29223,-14912,-29178,-15002,-29132,-15091,-29086,-15180,-29039,-15269,-28993,-15358,-28946,-15447,-28898,-15535,-28851,-15624,-28803,-15712,-28755,-15800,-28707,-15888,-28658,-15976,-28609,-16064,-28560,-16151,-28511,-16239,-28461,-16326,-28411,-16413,-28361,-16500,-28310,-16587,-28260,-16673,-28209,-16760,-28157,-16846,-28106,-16932,-28054,-17018,-28002,-17104,-27949,-17190,-27897,-17275,-27844,-17361,-27791,-17446,-27737,-17531,-27684,-17616,-27630,-17700,-27576,-17785,-27521,-17869,-27467,-17953,-27412,-18037,-27356,-18121,-27301,-18205,-27245,-18288,-27189,-18372,-27133,-18455,-27077,-18538,-27020,-18621,-26963,-18703,-26906,-18786,-26848,-18868,-26790,-18950,-26732,-19032,-26674,-19114,-26616,-19195,-26557,-19277,-26498,-19358,-26438,-19439,-26379,-19520,-26319,-19600,-26259,-19681,-26199,-19761,-26138,-19841,-26078,-19921,-26017,-20001,-25955,-20080,-25894,-20160,-25832,-20239,-25770,-20318,-25708,-20397,-25646,-20475,-25583,-20554,-25520,-20632,-25457,-20710,-25393,-20788,-25330,-20865,-25266,-20943,-25202,-21020,-25137,-21097,-25073,-21174,-25008,-21250,-24943,-21327,-24878,-21403,-24812,-21479,-24746,-21555,-24680,-21630,-24614,-21706,-24547,-21781,-24481,-21856,-24414,-21931,-24347,-22005,-24279,-22080,-24212,-22154,-24144,-22228,-24076,-22302,-24007,-22375,-23939,-22449,-23870,-22522,-23801,-22595,-23732,-22667,-23662,-22740,-23593,-22812,-23523,-22884,-23453,-22956,-23383,-23028,-23312,-23099,-23241,-23170,-23170,-23241,-23099,-23312,-23028,-23383,-22956,-23453,-22884,-23523,-22812,-23593,-22740,-23662,-22667,-23732,-22595,-23801,-22522,-23870,-22449,-23939,-22375,-24007,-22302,-24076,-22228,-24144,-22154,-24212,-22080,-24279,-22005,-24347,-21931,-24414,-21856,-24481,-21781,-24547,-21706,-24614,-21630,-24680,-21555,-24746,-21479,-24812,-21403,-24878,-21327,-24943,-21250,-25008,-21174,-25073,-21097,-25137,-21020,-25202,-20943,-25266,-20865,-25330,-20788,-25393,-20710,-25457,-20632,-25520,-20554,-25583,-20475,-25646,-20397,-25708,-20318,-25770,-20239,-25832,-20160,-25894,-20080,-25955,-20001,-26017,-19921,-26078,-19841,-26138,-19761,-26199,-19681,-26259,-19600,-26319,-19520,-26379,-19439,-26438,-19358,-26498,-19277,-26557,-19195,-26616,-19114,-26674,-19032,-26732,-18950,-26790,-18868,-26848,-18786,-26906,-18703,-26963,-18621,-27020,-18538,-27077,-18455,-27133,-18372,-27189,-18288,-27245,-18205,-27301,-18121,-27356,-18037,-27412,-17953,-27467,-17869,-27521,-17785,-27576,-17700,-27630,-17616,-27684,-17531,-27737,-17446,-27791,-17361,-27844,-17275,-27897,-17190,-27949,-17104,-28002,-17018,-28054,-16932,-28106,-16846,-28157,-16760,-28209,-16673,-28260,-16587,-28310,-16500,-28361,-16413,-28411,-16326,-28461,-16239,-28511,-16151,-28560,-16064,-28609,-15976,-28658,-15888,-28707,-15800,-28755,-15712,-28803,-15624,-28851,-15535,-28898,-15447,-28946,-15358,-28993,-15269,-29039,-15180,-29086,-15091,-29132,-15002,-29178,-14912,-29223,-14823,-29269,-14733,-29314,-14643,-29359,-14553,-29403,-14463,-29447,-14373,-29491,-14282,-29535,-14192,-29578,-14101,-29622,-14010,-29664,-13919,-29707,-13828,-29749,-13737,-29791,-13646,-29833,-13554,-29874,-13463,-29916,-13371,-29956,-13279,-29997,-13187,-30037,-13095,-30077,-13003,-30117,-12910,-30157,-12818,-30196,-12725,-30235,-12633,-30273,-12540,-30312,-12447,-30350,-12354,-30387,-12261,-30425,-12167,-30462,-12074,-30499,-11981,-30536,-11887,-30572,-11793,-30608,-11699,-30644,-11605,-30679,-11511,-30714,-11417,-30749,-11323,-30784,-11228,-30818,-11134,-30852,-11039,-30886,-10945,-30919,-10850,-30952,-10755,-30985,-10660,-31018,-10565,-31050,-10470,-31082,-10374,-31114,-10279,-31145,-10183,-31176,-10088,-31207,-9992,-31237,-9896,-31268,-9800,-31298,-9704,-31327,-9608,-31357,-9512,-31386,-9416,-31414,-9320,-31443,-9223,-31471,-9127,-31499,-9030,-31526,-8933,-31554,-8837,-31581,-8740,-31607,-8643,-31634,-8546,-31660,-8449,-31685,-8352,-31711,-8254,-31736,-8157,-31761,-8060,-31786,-7962,-31810,-7865,-31834,-7767,-31857,-7669,-31881,-7572,-31904,-7474,-31927,-7376,-31949,-7278,-31971,-7180,-31993,-7082,-32015,-6983,-32036,-6885,-32057,-6787,-32078,-6689,-32098,-6590,-32118,-6492,-32138,-6393,-32157,-6294,-32177,-6196,-32195,-6097,-32214,-5998,-32232,-5899,-32250,-5800,-32268,-5701,-32285,-5602,-32302,-5503,-32319,-5404,-32335,-5305,-32351,-5206,-32367,-5107,-32383,-5007,-32398,-4908,-32413,-4808,-32427,-4709,-32442,-4609,-32456,-4510,-32469,-4410,-32483,-4311,-32496,-4211,-32509,-4111,-32521,-4012,-32533,-3912,-32545,-3812,-32557,-3712,-32568,-3612,-32579,-3512,-32589,-3412,-32600,-3312,-32610,-3212,-32619,-3112,-32629,-3012,-32638,-2912,-32647,-2812,-32655,-2712,-32663,-2611,-32671,-2511,-32679,-2411,-32686,-2311,-32693,-2210,-32700,-2110,-32706,-2010,-32712,-1909,-32718,-1809,-32723,-1709,-32728,-1608,-32733,-1508,-32737,-1407,-32741,-1307,-32745,-1207,-32749,-1106,-32752,-1006,-32755,-905,-32758,-805,-32760,-704,-32762,-604,-32764,-503,-32765,-403,-32766,-302,-32767,-202,-32767,-101,32767,0,32766,-151,32765,-302,32763,-453,32761,-604,32758,-754,32754,-905,32750,-1056,32744,-1207,32738,-1357,32732,-1508,32725,-1659,32717,-1809,32708,-1960,32699,-2110,32688,-2261,32678,-2411,32666,-2561,32654,-2712,32641,-2862,32628,-3012,32614,-3162,32599,-3312,32583,-3462,32567,-3612,32550,-3762,32532,-3912,32514,-4061,32495,-4211,32475,-4360,32455,-4510,32434,-4659,32412,-4808,32389,-4958,32366,-5107,32342,-5255,32318,-5404,32293,-5553,32267,-5701,32240,-5850,32213,-5998,32185,-6146,32156,-6294,32127,-6442,32097,-6590,32066,-6738,32035,-6885,32003,-7033,31970,-7180,31937,-7327,31903,-7474,31868,-7620,31833,-7767,31797,-7913,31760,-8060,31723,-8206,31684,-8352,31646,-8497,31606,-8643,31566,-8788,31525,-8933,31484,-9078,31442,-9223,31399,-9368,31356,-9512,31311,-9656,31267,-9800,31221,-9944,31175,-10088,31128,-10231,31081,-10374,31033,-10517,30984,-10660,30935,-10802,30885,-10945,30834,-11087,30783,-11228,30731,-11370,30678,-11511,30625,-11652,30571,-11793,30516,-11934,30461,-12074,30405,-12214,30349,-12354,30291,-12493,30234,-12633,30175,-12772,30116,-12910,30056,-13049,29996,-13187,29935,-13325,29873,-13463,29811,-13600,29748,-13737,29685,-13874,29621,-14010,29556,-14146,29490,-14282,29424,-14418,29358,-14553,29290,-14688,29222,-14823,29154,-14957,29085,-15091,29015,-15225,28945,-15358,28874,-15491,28802,-15624,28730,-15756,28657,-15888,28584,-16020,28510,-16151,28435,-16282,28360,-16413,28284,-16543,28208,-16673,28131,-16803,28053,-16932,27975,-17061,27896,-17190,27816,-17318,27736,-17446,27656,-17573,27575,-17700,27493,-17827,27411,-17953,27328,-18079,27244,-18205,27160,-18330,27076,-18455,26990,-18579,26905,-18703,26818,-18827,26731,-18950,26644,-19073,26556,-19195,26467,-19317,26378,-19439,26288,-19560,26198,-19681,26107,-19801,26016,-19921,25924,-20041,25831,-20160,25738,-20278,25645,-20397,25550,-20514,25456,-20632,25361,-20749,25265,-20865,25169,-20981,25072,-21097,24974,-21212,24877,-21327,24778,-21441,24679,-21555,24580,-21668,24480,-21781,24379,-21894,24278,-22005,24177,-22117,24075,-22228,23972,-22339,23869,-22449,23766,-22558,23661,-22667,23557,-22776,23452,-22884,23346,-22992,23240,-23099,23134,-23206,23027,-23312,22919,-23418,22811,-23523,22703,-23628,22594,-23732,22484,-23836,22374,-23939,22264,-24042,22153,-24144,22042,-24245,21930,-24347,21818,-24447,21705,-24547,21592,-24647,21478,-24746,21364,-24845,21249,-24943,21134,-25040,21019,-25137,20903,-25234,20787,-25330,20670,-25425,20553,-25520,20435,-25614,20317,-25708,20198,-25801,20079,-25894,19960,-25986,19840,-26078,19720,-26169,19599,-26259,19478,-26349,19357,-26438,19235,-26527,19113,-26616,18990,-26703,18867,-26790,18744,-26877,18620,-26963,18495,-27048,18371,-27133,18246,-27217,18120,-27301,17994,-27384,17868,-27467,17742,-27549,17615,-27630,17487,-27711,17360,-27791,17232,-27870,17103,-27949,16974,-28028,16845,-28106,16716,-28183,16586,-28260,16455,-28336,16325,-28411,16194,-28486,16063,-28560,15931,-28634,15799,-28707,15667,-28779,15534,-28851,15401,-28922,15268,-28993,15135,-29063,15001,-29132,14866,-29201,14732,-29269,14597,-29336,14462,-29403,14326,-29469,14191,-29535,14055,-29600,13918,-29664,13782,-29728,13645,-29791,13507,-29854,13370,-29916,13232,-29977,13094,-30037,12956,-30097,12817,-30157,12678,-30215,12539,-30273,12399,-30331,12260,-30387,12120,-30443,11980,-30499,11839,-30554,11698,-30608,11557,-30661,11416,-30714,11275,-30767,11133,-30818,10991,-30869,10849,-30919,10706,-30969,10564,-31018,10421,-31066,10278,-31114,10135,-31161,9991,-31207,9847,-31253,9703,-31298,9559,-31342,9415,-31386,9270,-31429,9126,-31471,8981,-31513,8836,-31554,8690,-31594,8545,-31634,8399,-31673,8253,-31711,8107,-31749,7961,-31786,7815,-31822,7668,-31857,7522,-31892,7375,-31927,7228,-31960,7081,-31993,6933,-32025,6786,-32057,6638,-32088,6491,-32118,6343,-32148,6195,-32177,6047,-32205,5898,-32232,5750,-32259,5601,-32285,5453,-32311,5304,-32335,5155,-32359,5006,-32383,4857,-32405,4708,-32427,4559,-32449,4409,-32469,4260,-32489,4110,-32509,3961,-32527,3811,-32545,3661,-32562,3511,-32579,3361,-32595,3211,-32610,3061,-32624,2911,-32638,2761,-32651,2610,-32663,2460,-32675,2310,-32686,2159,-32696,2009,-32706,1858,-32715,1708,-32723,1557,-32730,1406,-32737,1256,-32743,1105,-32749,954,-32754,804,-32758,653,-32761,502,-32764,351,-32766,201,-32767,50,-32767,-101,-32767,-252,-32767,-403,-32765,-553,-32763,-704,-32760,-855,-32756,-1006,-32752,-1156,-32747,-1307,-32741,-1458,-32735,-1608,-32728,-1759,-32720,-1909,-32712,-2060,-32703,-2210,-32693,-2361,-32682,-2511,-32671,-2662,-32659,-2812,-32647,-2962,-32633,-3112,-32619,-3262,-32605,-3412,-32589,-3562,-32573,-3712,-32557,-3862,-32539,-4012,-32521,-4161,-32502,-4311,-32483,-4460,-32463,-4609,-32442,-4759,-32420,-4908,-32398,-5057,-32375,-5206,-32351,-5355,-32327,-5503,-32302,-5652,-32276,-5800,-32250,-5949,-32223,-6097,-32195,-6245,-32167,-6393,-32138,-6541,-32108,-6689,-32078,-6836,-32047,-6983,-32015,-7131,-31982,-7278,-31949,-7425,-31915,-7572,-31881,-7718,-31846,-7865,-31810,-8011,-31773,-8157,-31736,-8303,-31698,-8449,-31660,-8594,-31620,-8740,-31581,-8885,-31540,-9030,-31499,-9175,-31457,-9320,-31414,-9464,-31371,-9608,-31327,-9752,-31283,-9896,-31237,-10040,-31192,-10183,-31145,-10327,-31098,-10470,-31050,-10612,-31002,-10755,-30952,-10897,-30903,-11039,-30852,-11181,-30801,-11323,-30749,-11464,-30697,-11605,-30644,-11746,-30590,-11887,-30536,-12027,-30481,-12167,-30425,-12307,-30369,-12447,-30312,-12586,-30254,-12725,-30196,-12864,-30137,-13003,-30077,-13141,-30017,-13279,-29956,-13417,-29895,-13554,-29833,-13691,-29770,-13828,-29707,-13965,-29643,-14101,-29578,-14237,-29513,-14373,-29447,-14508,-29381,-14643,-29314,-14778,-29246,-14912,-29178,-15046,-29109,-15180,-29039,-15314,-28969,-15447,-28898,-15580,-28827,-15712,-28755,-15844,-28682,-15976,-28609,-16108,-28535,-16239,-28461,-16369,-28386,-16500,-28310,-16630,-28234,-16760,-28157,-16889,-28080,-17018,-28002,-17147,-27923,-17275,-27844,-17403,-27764,-17531,-27684,-17658,-27603,-17785,-27521,-17911,-27439,-18037,-27356,-18163,-27273,-18288,-27189,-18413,-27105,-18538,-27020,-18662,-26934,-18786,-26848,-18909,-26761,-19032,-26674,-19155,-26586,-19277,-26498,-19398,-26409,-19520,-26319,-19641,-26229,-19761,-26138,-19881,-26047,-20001,-25955,-20120,-25863,-20239,-25770,-20357,-25677,-20475,-25583,-20593,-25488,-20710,-25393,-20826,-25298,-20943,-25202,-21058,-25105,-21174,-25008,-21289,-24910,-21403,-24812,-21517,-24713,-21630,-24614,-21744,-24514,-21856,-24414,-21968,-24313,-22080,-24212,-22191,-24110,-22302,-24007,-22412,-23904,-22522,-23801,-22631,-23697,-22740,-23593,-22848,-23488,-22956,-23383,-23063,-23277,-23170,-23170,-23277,-23063,-23383,-22956,-23488,-22848,-23593,-22740,-23697,-22631,-23801,-22522,-23904,-22412,-24007,-22302,-24110,-22191,-24212,-22080,-24313,-21968,-24414,-21856,-24514,-21744,-24614,-21630,-24713,-21517,-24812,-21403,-24910,-21289,-25008,-21174,-25105,-21058,-25202,-20943,-25298,-20826,-25393,-20710,-25488,-20593,-25583,-20475,-25677,-20357,-25770,-20239,-25863,-20120,-25955,-20001,-26047,-19881,-26138,-19761,-26229,-19641,-26319,-19520,-26409,-19398,-26498,-19277,-26586,-19155,-26674,-19032,-26761,-18909,-26848,-18786,-26934,-18662,-27020,-18538,-27105,-18413,-27189,-18288,-27273,-18163,-27356,-18037,-27439,-17911,-27521,-17785,-27603,-17658,-27684,-17531,-27764,-17403,-27844,-17275,-27923,-17147,-28002,-17018,-28080,-16889,-28157,-16760,-28234,-16630,-28310,-16500,-28386,-16369,-28461,-16239,-28535,-16108,-28609,-15976,-28682,-15844,-28755,-15712,-28827,-15580,-28898,-15447,-28969,-15314,-29039,-15180,-29109,-15046,-29178,-14912,-29246,-14778,-29314,-14643,-29381,-14508,-29447,-14373,-29513,-14237,-29578,-14101,-29643,-13965,-29707,-13828,-29770,-13691,-29833,-13554,-29895,-13417,-29956,-13279,-30017,-13141,-30077,-13003,-30137,-12864,-30196,-12725,-30254,-12586,-30312,-12447,-30369,-12307,-30425,-12167,-30481,-12027,-30536,-11887,-30590,-11746,-30644,-11605,-30697,-11464,-30749,-11323,-30801,-11181,-30852,-11039,-30903,-10897,-30952,-10755,-31002,-10612,-31050,-10470,-31098,-10327,-31145,-10183,-31192,-10040,-31237,-9896,-31283,-9752,-31327,-9608,-31371,-9464,-31414,-9320,-31457,-9175,-31499,-9030,-31540,-8885,-31581,-8740,-31620,-8594,-31660,-8449,-31698,-8303,-31736,-8157,-31773,-8011,-31810,-7865,-31846,-7718,-31881,-7572,-31915,-7425,-31949,-7278,-31982,-7131,-32015,-6983,-32047,-6836,-32078,-6689,-32108,-6541,-32138,-6393,-32167,-6245,-32195,-6097,-32223,-5949,-32250,-5800,-32276,-5652,-32302,-5503,-32327,-5355,-32351,-5206,-32375,-5057,-32398,-4908,-32420,-4759,-32442,-4609,-32463,-4460,-32483,-4311,-32502,-4161,-32521,-4012,-32539,-3862,-32557,-3712,-32573,-3562,-32589,-3412,-32605,-3262,-32619,-3112,-32633,-2962,-32647,-2812,-32659,-2662,-32671,-2511,-32682,-2361,-32693,-2210,-32703,-2060,-32712,-1909,-32720,-1759,-32728,-1608,-32735,-1458,-32741,-1307,-32747,-1156,-32752,-1006,-32756,-855,-32760,-704,-32763,-553,-32765,-403,-32767,-252,-32767,-101,-32767,50,-32767,201,-32766,351,-32764,502,-32761,653,-32758,804,-32754,954,-32749,1105,-32743,1256,-32737,1406,-32730,1557,-32723,1708,-32715,1858,-32706,2009,-32696,2159,-32686,2310,-32675,2460,-32663,2610,-32651,2761,-32638,2911,-32624,3061,-32610,3211,-32595,3361,-32579,3511,-32562,3661,-32545,3811,-32527,3961,-32509,4110,-32489,4260,-32469,4409,-32449,4559,-32427,4708,-32405,4857,-32383,5006,-32359,5155,-32335,5304,-32311,5453,-32285,5601,-32259,5750,-32232,5898,-32205,6047,-32177,6195,-32148,6343,-32118,6491,-32088,6638,-32057,6786,-32025,6933,-31993,7081,-31960,7228,-31927,7375,-31892,7522,-31857,7668,-31822,7815,-31786,7961,-31749,8107,-31711,8253,-31673,8399,-31634,8545,-31594,8690,-31554,8836,-31513,8981,-31471,9126,-31429,9270,-31386,9415,-31342,9559,-31298,9703,-31253,9847,-31207,9991,-31161,10135,-31114,10278,-31066,10421,-31018,10564,-30969,10706,-30919,10849,-30869,10991,-30818,11133,-30767,11275,-30714,11416,-30661,11557,-30608,11698,-30554,11839,-30499,11980,-30443,12120,-30387,12260,-30331,12399,-30273,12539,-30215,12678,-30157,12817,-30097,12956,-30037,13094,-29977,13232,-29916,13370,-29854,13507,-29791,13645,-29728,13782,-29664,13918,-29600,14055,-29535,14191,-29469,14326,-29403,14462,-29336,14597,-29269,14732,-29201,14866,-29132,15001,-29063,15135,-28993,15268,-28922,15401,-28851,15534,-28779,15667,-28707,15799,-28634,15931,-28560,16063,-28486,16194,-28411,16325,-28336,16455,-28260,16586,-28183,16716,-28106,16845,-28028,16974,-27949,17103,-27870,17232,-27791,17360,-27711,17487,-27630,17615,-27549,17742,-27467,17868,-27384,17994,-27301,18120,-27217,18246,-27133,18371,-27048,18495,-26963,18620,-26877,18744,-26790,18867,-26703,18990,-26616,19113,-26527,19235,-26438,19357,-26349,19478,-26259,19599,-26169,19720,-26078,19840,-25986,19960,-25894,20079,-25801,20198,-25708,20317,-25614,20435,-25520,20553,-25425,20670,-25330,20787,-25234,20903,-25137,21019,-25040,21134,-24943,21249,-24845,21364,-24746,21478,-24647,21592,-24547,21705,-24447,21818,-24347,21930,-24245,22042,-24144,22153,-24042,22264,-23939,22374,-23836,22484,-23732,22594,-23628,22703,-23523,22811,-23418,22919,-23312,23027,-23206,23134,-23099,23240,-22992,23346,-22884,23452,-22776,23557,-22667,23661,-22558,23766,-22449,23869,-22339,23972,-22228,24075,-22117,24177,-22005,24278,-21894,24379,-21781,24480,-21668,24580,-21555,24679,-21441,24778,-21327,24877,-21212,24974,-21097,25072,-20981,25169,-20865,25265,-20749,25361,-20632,25456,-20514,25550,-20397,25645,-20278,25738,-20160,25831,-20041,25924,-19921,26016,-19801,26107,-19681,26198,-19560,26288,-19439,26378,-19317,26467,-19195,26556,-19073,26644,-18950,26731,-18827,26818,-18703,26905,-18579,26990,-18455,27076,-18330,27160,-18205,27244,-18079,27328,-17953,27411,-17827,27493,-17700,27575,-17573,27656,-17446,27736,-17318,27816,-17190,27896,-17061,27975,-16932,28053,-16803,28131,-16673,28208,-16543,28284,-16413,28360,-16282,28435,-16151,28510,-16020,28584,-15888,28657,-15756,28730,-15624,28802,-15491,28874,-15358,28945,-15225,29015,-15091,29085,-14957,29154,-14823,29222,-14688,29290,-14553,29358,-14418,29424,-14282,29490,-14146,29556,-14010,29621,-13874,29685,-13737,29748,-13600,29811,-13463,29873,-13325,29935,-13187,29996,-13049,30056,-12910,30116,-12772,30175,-12633,30234,-12493,30291,-12354,30349,-12214,30405,-12074,30461,-11934,30516,-11793,30571,-11652,30625,-11511,30678,-11370,30731,-11228,30783,-11087,30834,-10945,30885,-10802,30935,-10660,30984,-10517,31033,-10374,31081,-10231,31128,-10088,31175,-9944,31221,-9800,31267,-9656,31311,-9512,31356,-9368,31399,-9223,31442,-9078,31484,-8933,31525,-8788,31566,-8643,31606,-8497,31646,-8352,31684,-8206,31723,-8060,31760,-7913,31797,-7767,31833,-7620,31868,-7474,31903,-7327,31937,-7180,31970,-7033,32003,-6885,32035,-6738,32066,-6590,32097,-6442,32127,-6294,32156,-6146,32185,-5998,32213,-5850,32240,-5701,32267,-5553,32293,-5404,32318,-5255,32342,-5107,32366,-4958,32389,-4808,32412,-4659,32434,-4510,32455,-4360,32475,-4211,32495,-4061,32514,-3912,32532,-3762,32550,-3612,32567,-3462,32583,-3312,32599,-3162,32614,-3012,32628,-2862,32641,-2712,32654,-2561,32666,-2411,32678,-2261,32688,-2110,32699,-1960,32708,-1809,32717,-1659,32725,-1508,32732,-1357,32738,-1207,32744,-1056,32750,-905,32754,-754,32758,-604,32761,-453,32763,-302,32765,-151,32766}; diff --git a/openair1/PHY/TOOLS/twiddles8192.h b/openair1/PHY/TOOLS/twiddles8192.h deleted file mode 100644 index 6b76619013..0000000000 --- a/openair1/PHY/TOOLS/twiddles8192.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(0:4095)/8192)); -twa2 = zeros(1,2*4096); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t tw8192[4096*2] = {"); -fprintf(fd,"%d,",twa2(1:(4096*2)-1)); -fprintf(fd,"%d};\n",twa2(end)); -fclose(fd); -*/ -static int16_t tw8192[4096*2] = {32767,0,32766,-26,32766,-51,32766,-76,32766,-101,32766,-126,32766,-151,32766,-176,32766,-202,32766,-227,32766,-252,32765,-277,32765,-302,32765,-327,32765,-352,32764,-377,32764,-403,32764,-428,32763,-453,32763,-478,32763,-503,32762,-528,32762,-553,32761,-579,32761,-604,32760,-629,32760,-654,32759,-679,32759,-704,32758,-729,32758,-754,32757,-780,32757,-805,32756,-830,32755,-855,32755,-880,32754,-905,32753,-930,32753,-955,32752,-981,32751,-1006,32750,-1031,32750,-1056,32749,-1081,32748,-1106,32747,-1131,32746,-1156,32745,-1181,32744,-1207,32743,-1232,32742,-1257,32741,-1282,32740,-1307,32739,-1332,32738,-1357,32737,-1382,32736,-1407,32735,-1433,32734,-1458,32733,-1483,32732,-1508,32731,-1533,32729,-1558,32728,-1583,32727,-1608,32726,-1633,32725,-1659,32723,-1684,32722,-1709,32721,-1734,32719,-1759,32718,-1784,32717,-1809,32715,-1834,32714,-1859,32712,-1884,32711,-1909,32709,-1935,32708,-1960,32706,-1985,32705,-2010,32703,-2035,32702,-2060,32700,-2085,32699,-2110,32697,-2135,32695,-2160,32694,-2185,32692,-2210,32690,-2236,32688,-2261,32687,-2286,32685,-2311,32683,-2336,32681,-2361,32680,-2386,32678,-2411,32676,-2436,32674,-2461,32672,-2486,32670,-2511,32668,-2536,32666,-2561,32664,-2586,32662,-2611,32660,-2637,32658,-2662,32656,-2687,32654,-2712,32652,-2737,32650,-2762,32648,-2787,32646,-2812,32644,-2837,32641,-2862,32639,-2887,32637,-2912,32635,-2937,32632,-2962,32630,-2987,32628,-3012,32625,-3037,32623,-3062,32621,-3087,32618,-3112,32616,-3137,32614,-3162,32611,-3187,32609,-3212,32606,-3237,32604,-3262,32601,-3287,32599,-3312,32596,-3337,32594,-3362,32591,-3387,32588,-3412,32586,-3437,32583,-3462,32580,-3487,32578,-3512,32575,-3537,32572,-3562,32570,-3587,32567,-3612,32564,-3637,32561,-3662,32558,-3687,32556,-3712,32553,-3737,32550,-3762,32547,-3787,32544,-3812,32541,-3837,32538,-3862,32535,-3887,32532,-3912,32529,-3937,32526,-3962,32523,-3987,32520,-4012,32517,-4036,32514,-4061,32511,-4086,32508,-4111,32504,-4136,32501,-4161,32498,-4186,32495,-4211,32492,-4236,32488,-4261,32485,-4286,32482,-4311,32478,-4336,32475,-4360,32472,-4385,32468,-4410,32465,-4435,32462,-4460,32458,-4485,32455,-4510,32451,-4535,32448,-4560,32444,-4585,32441,-4609,32437,-4634,32434,-4659,32430,-4684,32426,-4709,32423,-4734,32419,-4759,32416,-4784,32412,-4808,32408,-4833,32404,-4858,32401,-4883,32397,-4908,32393,-4933,32389,-4958,32386,-4982,32382,-5007,32378,-5032,32374,-5057,32370,-5082,32366,-5107,32362,-5131,32358,-5156,32354,-5181,32350,-5206,32346,-5231,32342,-5255,32338,-5280,32334,-5305,32330,-5330,32326,-5355,32322,-5379,32318,-5404,32314,-5429,32310,-5454,32305,-5479,32301,-5503,32297,-5528,32293,-5553,32288,-5578,32284,-5602,32280,-5627,32275,-5652,32271,-5677,32267,-5701,32262,-5726,32258,-5751,32254,-5776,32249,-5800,32245,-5825,32240,-5850,32236,-5875,32231,-5899,32227,-5924,32222,-5949,32218,-5973,32213,-5998,32208,-6023,32204,-6048,32199,-6072,32194,-6097,32190,-6122,32185,-6146,32180,-6171,32176,-6196,32171,-6220,32166,-6245,32161,-6270,32156,-6294,32152,-6319,32147,-6344,32142,-6368,32137,-6393,32132,-6418,32127,-6442,32122,-6467,32117,-6492,32112,-6516,32107,-6541,32102,-6565,32097,-6590,32092,-6615,32087,-6639,32082,-6664,32077,-6689,32072,-6713,32066,-6738,32061,-6762,32056,-6787,32051,-6812,32046,-6836,32040,-6861,32035,-6885,32030,-6910,32024,-6934,32019,-6959,32014,-6983,32008,-7008,32003,-7033,31998,-7057,31992,-7082,31987,-7106,31981,-7131,31976,-7155,31970,-7180,31965,-7204,31959,-7229,31954,-7253,31948,-7278,31943,-7302,31937,-7327,31931,-7351,31926,-7376,31920,-7400,31914,-7425,31909,-7449,31903,-7474,31897,-7498,31891,-7523,31886,-7547,31880,-7572,31874,-7596,31868,-7620,31862,-7645,31856,-7669,31851,-7694,31845,-7718,31839,-7743,31833,-7767,31827,-7791,31821,-7816,31815,-7840,31809,-7865,31803,-7889,31797,-7913,31791,-7938,31785,-7962,31778,-7987,31772,-8011,31766,-8035,31760,-8060,31754,-8084,31748,-8108,31741,-8133,31735,-8157,31729,-8181,31723,-8206,31716,-8230,31710,-8254,31704,-8279,31697,-8303,31691,-8327,31684,-8352,31678,-8376,31672,-8400,31665,-8425,31659,-8449,31652,-8473,31646,-8497,31639,-8522,31633,-8546,31626,-8570,31619,-8594,31613,-8619,31606,-8643,31600,-8667,31593,-8691,31586,-8716,31580,-8740,31573,-8764,31566,-8788,31559,-8813,31553,-8837,31546,-8861,31539,-8885,31532,-8909,31525,-8933,31518,-8958,31512,-8982,31505,-9006,31498,-9030,31491,-9054,31484,-9078,31477,-9103,31470,-9127,31463,-9151,31456,-9175,31449,-9199,31442,-9223,31435,-9247,31428,-9271,31420,-9296,31413,-9320,31406,-9344,31399,-9368,31392,-9392,31385,-9416,31377,-9440,31370,-9464,31363,-9488,31356,-9512,31348,-9536,31341,-9560,31334,-9584,31326,-9608,31319,-9632,31311,-9656,31304,-9680,31297,-9704,31289,-9728,31282,-9752,31274,-9776,31267,-9800,31259,-9824,31252,-9848,31244,-9872,31236,-9896,31229,-9920,31221,-9944,31214,-9968,31206,-9992,31198,-10016,31191,-10040,31183,-10064,31175,-10088,31167,-10112,31160,-10136,31152,-10160,31144,-10183,31136,-10207,31128,-10231,31121,-10255,31113,-10279,31105,-10303,31097,-10327,31089,-10350,31081,-10374,31073,-10398,31065,-10422,31057,-10446,31049,-10470,31041,-10493,31033,-10517,31025,-10541,31017,-10565,31009,-10589,31001,-10612,30992,-10636,30984,-10660,30976,-10684,30968,-10707,30960,-10731,30951,-10755,30943,-10779,30935,-10802,30927,-10826,30918,-10850,30910,-10874,30902,-10897,30893,-10921,30885,-10945,30876,-10968,30868,-10992,30860,-11016,30851,-11039,30843,-11063,30834,-11087,30826,-11110,30817,-11134,30809,-11158,30800,-11181,30791,-11205,30783,-11228,30774,-11252,30766,-11276,30757,-11299,30748,-11323,30739,-11346,30731,-11370,30722,-11394,30713,-11417,30705,-11441,30696,-11464,30687,-11488,30678,-11511,30669,-11535,30660,-11558,30652,-11582,30643,-11605,30634,-11629,30625,-11652,30616,-11676,30607,-11699,30598,-11723,30589,-11746,30580,-11770,30571,-11793,30562,-11817,30553,-11840,30544,-11863,30535,-11887,30525,-11910,30516,-11934,30507,-11957,30498,-11981,30489,-12004,30480,-12027,30470,-12051,30461,-12074,30452,-12097,30442,-12121,30433,-12144,30424,-12167,30415,-12191,30405,-12214,30396,-12237,30386,-12261,30377,-12284,30368,-12307,30358,-12331,30349,-12354,30339,-12377,30330,-12400,30320,-12424,30311,-12447,30301,-12470,30291,-12493,30282,-12517,30272,-12540,30263,-12563,30253,-12586,30243,-12610,30234,-12633,30224,-12656,30214,-12679,30205,-12702,30195,-12725,30185,-12749,30175,-12772,30165,-12795,30156,-12818,30146,-12841,30136,-12864,30126,-12887,30116,-12910,30106,-12934,30096,-12957,30086,-12980,30076,-13003,30066,-13026,30056,-13049,30046,-13072,30036,-13095,30026,-13118,30016,-13141,30006,-13164,29996,-13187,29986,-13210,29976,-13233,29966,-13256,29955,-13279,29945,-13302,29935,-13325,29925,-13348,29915,-13371,29904,-13394,29894,-13417,29884,-13440,29873,-13463,29863,-13486,29853,-13508,29842,-13531,29832,-13554,29822,-13577,29811,-13600,29801,-13623,29790,-13646,29780,-13668,29769,-13691,29759,-13714,29748,-13737,29738,-13760,29727,-13783,29717,-13805,29706,-13828,29695,-13851,29685,-13874,29674,-13896,29663,-13919,29653,-13942,29642,-13965,29631,-13987,29621,-14010,29610,-14033,29599,-14056,29588,-14078,29577,-14101,29567,-14124,29556,-14146,29545,-14169,29534,-14192,29523,-14214,29512,-14237,29501,-14260,29490,-14282,29479,-14305,29468,-14327,29457,-14350,29446,-14373,29435,-14395,29424,-14418,29413,-14440,29402,-14463,29391,-14485,29380,-14508,29369,-14531,29358,-14553,29346,-14576,29335,-14598,29324,-14621,29313,-14643,29302,-14666,29290,-14688,29279,-14710,29268,-14733,29256,-14755,29245,-14778,29234,-14800,29222,-14823,29211,-14845,29200,-14867,29188,-14890,29177,-14912,29165,-14935,29154,-14957,29142,-14979,29131,-15002,29119,-15024,29108,-15046,29096,-15069,29085,-15091,29073,-15113,29062,-15136,29050,-15158,29038,-15180,29027,-15202,29015,-15225,29003,-15247,28992,-15269,28980,-15291,28968,-15314,28956,-15336,28945,-15358,28933,-15380,28921,-15402,28909,-15425,28897,-15447,28886,-15469,28874,-15491,28862,-15513,28850,-15535,28838,-15557,28826,-15580,28814,-15602,28802,-15624,28790,-15646,28778,-15668,28766,-15690,28754,-15712,28742,-15734,28730,-15756,28718,-15778,28706,-15800,28694,-15822,28681,-15844,28669,-15866,28657,-15888,28645,-15910,28633,-15932,28620,-15954,28608,-15976,28596,-15998,28584,-16020,28571,-16042,28559,-16064,28547,-16086,28534,-16108,28522,-16129,28510,-16151,28497,-16173,28485,-16195,28472,-16217,28460,-16239,28447,-16261,28435,-16282,28423,-16304,28410,-16326,28397,-16348,28385,-16369,28372,-16391,28360,-16413,28347,-16435,28335,-16456,28322,-16478,28309,-16500,28297,-16522,28284,-16543,28271,-16565,28259,-16587,28246,-16608,28233,-16630,28220,-16652,28208,-16673,28195,-16695,28182,-16717,28169,-16738,28156,-16760,28143,-16781,28131,-16803,28118,-16825,28105,-16846,28092,-16868,28079,-16889,28066,-16911,28053,-16932,28040,-16954,28027,-16975,28014,-16997,28001,-17018,27988,-17040,27975,-17061,27962,-17083,27948,-17104,27935,-17125,27922,-17147,27909,-17168,27896,-17190,27883,-17211,27869,-17233,27856,-17254,27843,-17275,27830,-17297,27816,-17318,27803,-17339,27790,-17361,27777,-17382,27763,-17403,27750,-17424,27736,-17446,27723,-17467,27710,-17488,27696,-17510,27683,-17531,27669,-17552,27656,-17573,27642,-17594,27629,-17616,27615,-17637,27602,-17658,27588,-17679,27575,-17700,27561,-17721,27548,-17743,27534,-17764,27520,-17785,27507,-17806,27493,-17827,27479,-17848,27466,-17869,27452,-17890,27438,-17911,27424,-17932,27411,-17953,27397,-17974,27383,-17995,27369,-18016,27355,-18037,27342,-18058,27328,-18079,27314,-18100,27300,-18121,27286,-18142,27272,-18163,27258,-18184,27244,-18205,27230,-18226,27216,-18247,27202,-18268,27188,-18288,27174,-18309,27160,-18330,27146,-18351,27132,-18372,27118,-18393,27104,-18413,27090,-18434,27076,-18455,27061,-18476,27047,-18496,27033,-18517,27019,-18538,27005,-18559,26990,-18579,26976,-18600,26962,-18621,26948,-18641,26933,-18662,26919,-18683,26905,-18703,26890,-18724,26876,-18745,26861,-18765,26847,-18786,26833,-18806,26818,-18827,26804,-18847,26789,-18868,26775,-18889,26760,-18909,26746,-18930,26731,-18950,26717,-18971,26702,-18991,26688,-19012,26673,-19032,26658,-19052,26644,-19073,26629,-19093,26615,-19114,26600,-19134,26585,-19155,26570,-19175,26556,-19195,26541,-19216,26526,-19236,26512,-19256,26497,-19277,26482,-19297,26467,-19317,26452,-19338,26437,-19358,26423,-19378,26408,-19398,26393,-19419,26378,-19439,26363,-19459,26348,-19479,26333,-19500,26318,-19520,26303,-19540,26288,-19560,26273,-19580,26258,-19600,26243,-19621,26228,-19641,26213,-19661,26198,-19681,26183,-19701,26168,-19721,26153,-19741,26137,-19761,26122,-19781,26107,-19801,26092,-19821,26077,-19841,26061,-19861,26046,-19881,26031,-19901,26016,-19921,26000,-19941,25985,-19961,25970,-19981,25954,-20001,25939,-20021,25924,-20041,25908,-20061,25893,-20080,25878,-20100,25862,-20120,25847,-20140,25831,-20160,25816,-20180,25800,-20199,25785,-20219,25769,-20239,25754,-20259,25738,-20278,25723,-20298,25707,-20318,25691,-20338,25676,-20357,25660,-20377,25645,-20397,25629,-20416,25613,-20436,25598,-20456,25582,-20475,25566,-20495,25550,-20514,25535,-20534,25519,-20554,25503,-20573,25487,-20593,25472,-20612,25456,-20632,25440,-20651,25424,-20671,25408,-20690,25392,-20710,25376,-20729,25361,-20749,25345,-20768,25329,-20788,25313,-20807,25297,-20826,25281,-20846,25265,-20865,25249,-20885,25233,-20904,25217,-20923,25201,-20943,25185,-20962,25169,-20981,25152,-21001,25136,-21020,25120,-21039,25104,-21058,25088,-21078,25072,-21097,25056,-21116,25039,-21135,25023,-21155,25007,-21174,24991,-21193,24974,-21212,24958,-21231,24942,-21250,24926,-21269,24909,-21289,24893,-21308,24877,-21327,24860,-21346,24844,-21365,24827,-21384,24811,-21403,24795,-21422,24778,-21441,24762,-21460,24745,-21479,24729,-21498,24712,-21517,24696,-21536,24679,-21555,24663,-21574,24646,-21593,24630,-21612,24613,-21630,24596,-21649,24580,-21668,24563,-21687,24546,-21706,24530,-21725,24513,-21744,24496,-21762,24480,-21781,24463,-21800,24446,-21819,24430,-21837,24413,-21856,24396,-21875,24379,-21894,24362,-21912,24346,-21931,24329,-21950,24312,-21968,24295,-21987,24278,-22005,24261,-22024,24244,-22043,24228,-22061,24211,-22080,24194,-22098,24177,-22117,24160,-22136,24143,-22154,24126,-22173,24109,-22191,24092,-22210,24075,-22228,24058,-22246,24041,-22265,24023,-22283,24006,-22302,23989,-22320,23972,-22339,23955,-22357,23938,-22375,23921,-22394,23903,-22412,23886,-22430,23869,-22449,23852,-22467,23835,-22485,23817,-22504,23800,-22522,23783,-22540,23766,-22558,23748,-22576,23731,-22595,23714,-22613,23696,-22631,23679,-22649,23661,-22667,23644,-22686,23627,-22704,23609,-22722,23592,-22740,23574,-22758,23557,-22776,23539,-22794,23522,-22812,23504,-22830,23487,-22848,23469,-22866,23452,-22884,23434,-22902,23417,-22920,23399,-22938,23382,-22956,23364,-22974,23346,-22992,23329,-23010,23311,-23028,23293,-23046,23276,-23063,23258,-23081,23240,-23099,23223,-23117,23205,-23135,23187,-23152,23169,-23170,23151,-23188,23134,-23206,23116,-23224,23098,-23241,23080,-23259,23062,-23277,23045,-23294,23027,-23312,23009,-23330,22991,-23347,22973,-23365,22955,-23383,22937,-23400,22919,-23418,22901,-23435,22883,-23453,22865,-23470,22847,-23488,22829,-23505,22811,-23523,22793,-23540,22775,-23558,22757,-23575,22739,-23593,22721,-23610,22703,-23628,22685,-23645,22666,-23662,22648,-23680,22630,-23697,22612,-23715,22594,-23732,22575,-23749,22557,-23767,22539,-23784,22521,-23801,22503,-23818,22484,-23836,22466,-23853,22448,-23870,22429,-23887,22411,-23904,22393,-23922,22374,-23939,22356,-23956,22338,-23973,22319,-23990,22301,-24007,22282,-24024,22264,-24042,22245,-24059,22227,-24076,22209,-24093,22190,-24110,22172,-24127,22153,-24144,22135,-24161,22116,-24178,22097,-24195,22079,-24212,22060,-24229,22042,-24245,22023,-24262,22004,-24279,21986,-24296,21967,-24313,21949,-24330,21930,-24347,21911,-24363,21893,-24380,21874,-24397,21855,-24414,21836,-24431,21818,-24447,21799,-24464,21780,-24481,21761,-24497,21743,-24514,21724,-24531,21705,-24547,21686,-24564,21667,-24581,21648,-24597,21629,-24614,21611,-24631,21592,-24647,21573,-24664,21554,-24680,21535,-24697,21516,-24713,21497,-24730,21478,-24746,21459,-24763,21440,-24779,21421,-24796,21402,-24812,21383,-24828,21364,-24845,21345,-24861,21326,-24878,21307,-24894,21288,-24910,21268,-24927,21249,-24943,21230,-24959,21211,-24975,21192,-24992,21173,-25008,21154,-25024,21134,-25040,21115,-25057,21096,-25073,21077,-25089,21057,-25105,21038,-25121,21019,-25137,21000,-25153,20980,-25170,20961,-25186,20942,-25202,20922,-25218,20903,-25234,20884,-25250,20864,-25266,20845,-25282,20825,-25298,20806,-25314,20787,-25330,20767,-25346,20748,-25362,20728,-25377,20709,-25393,20689,-25409,20670,-25425,20650,-25441,20631,-25457,20611,-25473,20592,-25488,20572,-25504,20553,-25520,20533,-25536,20513,-25551,20494,-25567,20474,-25583,20455,-25599,20435,-25614,20415,-25630,20396,-25646,20376,-25661,20356,-25677,20337,-25692,20317,-25708,20297,-25724,20277,-25739,20258,-25755,20238,-25770,20218,-25786,20198,-25801,20179,-25817,20159,-25832,20139,-25848,20119,-25863,20099,-25879,20079,-25894,20060,-25909,20040,-25925,20020,-25940,20000,-25955,19980,-25971,19960,-25986,19940,-26001,19920,-26017,19900,-26032,19880,-26047,19860,-26062,19840,-26078,19820,-26093,19800,-26108,19780,-26123,19760,-26138,19740,-26154,19720,-26169,19700,-26184,19680,-26199,19660,-26214,19640,-26229,19620,-26244,19599,-26259,19579,-26274,19559,-26289,19539,-26304,19519,-26319,19499,-26334,19478,-26349,19458,-26364,19438,-26379,19418,-26394,19397,-26409,19377,-26424,19357,-26438,19337,-26453,19316,-26468,19296,-26483,19276,-26498,19255,-26513,19235,-26527,19215,-26542,19194,-26557,19174,-26571,19154,-26586,19133,-26601,19113,-26616,19092,-26630,19072,-26645,19051,-26659,19031,-26674,19011,-26689,18990,-26703,18970,-26718,18949,-26732,18929,-26747,18908,-26761,18888,-26776,18867,-26790,18846,-26805,18826,-26819,18805,-26834,18785,-26848,18764,-26862,18744,-26877,18723,-26891,18702,-26906,18682,-26920,18661,-26934,18640,-26949,18620,-26963,18599,-26977,18578,-26991,18558,-27006,18537,-27020,18516,-27034,18495,-27048,18475,-27062,18454,-27077,18433,-27091,18412,-27105,18392,-27119,18371,-27133,18350,-27147,18329,-27161,18308,-27175,18287,-27189,18267,-27203,18246,-27217,18225,-27231,18204,-27245,18183,-27259,18162,-27273,18141,-27287,18120,-27301,18099,-27315,18078,-27329,18057,-27343,18036,-27356,18015,-27370,17994,-27384,17973,-27398,17952,-27412,17931,-27425,17910,-27439,17889,-27453,17868,-27467,17847,-27480,17826,-27494,17805,-27508,17784,-27521,17763,-27535,17742,-27549,17720,-27562,17699,-27576,17678,-27589,17657,-27603,17636,-27616,17615,-27630,17593,-27643,17572,-27657,17551,-27670,17530,-27684,17509,-27697,17487,-27711,17466,-27724,17445,-27737,17423,-27751,17402,-27764,17381,-27778,17360,-27791,17338,-27804,17317,-27817,17296,-27831,17274,-27844,17253,-27857,17232,-27870,17210,-27884,17189,-27897,17167,-27910,17146,-27923,17124,-27936,17103,-27949,17082,-27963,17060,-27976,17039,-27989,17017,-28002,16996,-28015,16974,-28028,16953,-28041,16931,-28054,16910,-28067,16888,-28080,16867,-28093,16845,-28106,16824,-28119,16802,-28132,16780,-28144,16759,-28157,16737,-28170,16716,-28183,16694,-28196,16672,-28209,16651,-28221,16629,-28234,16607,-28247,16586,-28260,16564,-28272,16542,-28285,16521,-28298,16499,-28310,16477,-28323,16455,-28336,16434,-28348,16412,-28361,16390,-28373,16368,-28386,16347,-28398,16325,-28411,16303,-28424,16281,-28436,16260,-28448,16238,-28461,16216,-28473,16194,-28486,16172,-28498,16150,-28511,16128,-28523,16107,-28535,16085,-28548,16063,-28560,16041,-28572,16019,-28585,15997,-28597,15975,-28609,15953,-28621,15931,-28634,15909,-28646,15887,-28658,15865,-28670,15843,-28682,15821,-28695,15799,-28707,15777,-28719,15755,-28731,15733,-28743,15711,-28755,15689,-28767,15667,-28779,15645,-28791,15623,-28803,15601,-28815,15579,-28827,15556,-28839,15534,-28851,15512,-28863,15490,-28875,15468,-28887,15446,-28898,15424,-28910,15401,-28922,15379,-28934,15357,-28946,15335,-28957,15313,-28969,15290,-28981,15268,-28993,15246,-29004,15224,-29016,15201,-29028,15179,-29039,15157,-29051,15135,-29063,15112,-29074,15090,-29086,15068,-29097,15045,-29109,15023,-29120,15001,-29132,14978,-29143,14956,-29155,14934,-29166,14911,-29178,14889,-29189,14866,-29201,14844,-29212,14822,-29223,14799,-29235,14777,-29246,14754,-29257,14732,-29269,14709,-29280,14687,-29291,14665,-29303,14642,-29314,14620,-29325,14597,-29336,14575,-29347,14552,-29359,14530,-29370,14507,-29381,14484,-29392,14462,-29403,14439,-29414,14417,-29425,14394,-29436,14372,-29447,14349,-29458,14326,-29469,14304,-29480,14281,-29491,14259,-29502,14236,-29513,14213,-29524,14191,-29535,14168,-29546,14145,-29557,14123,-29568,14100,-29578,14077,-29589,14055,-29600,14032,-29611,14009,-29622,13986,-29632,13964,-29643,13941,-29654,13918,-29664,13895,-29675,13873,-29686,13850,-29696,13827,-29707,13804,-29718,13782,-29728,13759,-29739,13736,-29749,13713,-29760,13690,-29770,13667,-29781,13645,-29791,13622,-29802,13599,-29812,13576,-29823,13553,-29833,13530,-29843,13507,-29854,13485,-29864,13462,-29874,13439,-29885,13416,-29895,13393,-29905,13370,-29916,13347,-29926,13324,-29936,13301,-29946,13278,-29956,13255,-29967,13232,-29977,13209,-29987,13186,-29997,13163,-30007,13140,-30017,13117,-30027,13094,-30037,13071,-30047,13048,-30057,13025,-30067,13002,-30077,12979,-30087,12956,-30097,12933,-30107,12909,-30117,12886,-30127,12863,-30137,12840,-30147,12817,-30157,12794,-30166,12771,-30176,12748,-30186,12724,-30196,12701,-30206,12678,-30215,12655,-30225,12632,-30235,12609,-30244,12585,-30254,12562,-30264,12539,-30273,12516,-30283,12492,-30292,12469,-30302,12446,-30312,12423,-30321,12399,-30331,12376,-30340,12353,-30350,12330,-30359,12306,-30369,12283,-30378,12260,-30387,12236,-30397,12213,-30406,12190,-30416,12166,-30425,12143,-30434,12120,-30443,12096,-30453,12073,-30462,12050,-30471,12026,-30481,12003,-30490,11980,-30499,11956,-30508,11933,-30517,11909,-30526,11886,-30536,11862,-30545,11839,-30554,11816,-30563,11792,-30572,11769,-30581,11745,-30590,11722,-30599,11698,-30608,11675,-30617,11651,-30626,11628,-30635,11604,-30644,11581,-30653,11557,-30661,11534,-30670,11510,-30679,11487,-30688,11463,-30697,11440,-30706,11416,-30714,11393,-30723,11369,-30732,11345,-30740,11322,-30749,11298,-30758,11275,-30767,11251,-30775,11227,-30784,11204,-30792,11180,-30801,11157,-30810,11133,-30818,11109,-30827,11086,-30835,11062,-30844,11038,-30852,11015,-30861,10991,-30869,10967,-30877,10944,-30886,10920,-30894,10896,-30903,10873,-30911,10849,-30919,10825,-30928,10801,-30936,10778,-30944,10754,-30952,10730,-30961,10706,-30969,10683,-30977,10659,-30985,10635,-30993,10611,-31002,10588,-31010,10564,-31018,10540,-31026,10516,-31034,10492,-31042,10469,-31050,10445,-31058,10421,-31066,10397,-31074,10373,-31082,10349,-31090,10326,-31098,10302,-31106,10278,-31114,10254,-31122,10230,-31129,10206,-31137,10182,-31145,10159,-31153,10135,-31161,10111,-31168,10087,-31176,10063,-31184,10039,-31192,10015,-31199,9991,-31207,9967,-31215,9943,-31222,9919,-31230,9895,-31237,9871,-31245,9847,-31253,9823,-31260,9799,-31268,9775,-31275,9751,-31283,9727,-31290,9703,-31298,9679,-31305,9655,-31312,9631,-31320,9607,-31327,9583,-31335,9559,-31342,9535,-31349,9511,-31357,9487,-31364,9463,-31371,9439,-31378,9415,-31386,9391,-31393,9367,-31400,9343,-31407,9319,-31414,9295,-31421,9270,-31429,9246,-31436,9222,-31443,9198,-31450,9174,-31457,9150,-31464,9126,-31471,9102,-31478,9077,-31485,9053,-31492,9029,-31499,9005,-31506,8981,-31513,8957,-31519,8932,-31526,8908,-31533,8884,-31540,8860,-31547,8836,-31554,8812,-31560,8787,-31567,8763,-31574,8739,-31581,8715,-31587,8690,-31594,8666,-31601,8642,-31607,8618,-31614,8593,-31620,8569,-31627,8545,-31634,8521,-31640,8496,-31647,8472,-31653,8448,-31660,8424,-31666,8399,-31673,8375,-31679,8351,-31685,8326,-31692,8302,-31698,8278,-31705,8253,-31711,8229,-31717,8205,-31724,8180,-31730,8156,-31736,8132,-31742,8107,-31749,8083,-31755,8059,-31761,8034,-31767,8010,-31773,7986,-31779,7961,-31786,7937,-31792,7912,-31798,7888,-31804,7864,-31810,7839,-31816,7815,-31822,7790,-31828,7766,-31834,7742,-31840,7717,-31846,7693,-31852,7668,-31857,7644,-31863,7619,-31869,7595,-31875,7571,-31881,7546,-31887,7522,-31892,7497,-31898,7473,-31904,7448,-31910,7424,-31915,7399,-31921,7375,-31927,7350,-31932,7326,-31938,7301,-31944,7277,-31949,7252,-31955,7228,-31960,7203,-31966,7179,-31971,7154,-31977,7130,-31982,7105,-31988,7081,-31993,7056,-31999,7032,-32004,7007,-32009,6982,-32015,6958,-32020,6933,-32025,6909,-32031,6884,-32036,6860,-32041,6835,-32047,6811,-32052,6786,-32057,6761,-32062,6737,-32067,6712,-32073,6688,-32078,6663,-32083,6638,-32088,6614,-32093,6589,-32098,6564,-32103,6540,-32108,6515,-32113,6491,-32118,6466,-32123,6441,-32128,6417,-32133,6392,-32138,6367,-32143,6343,-32148,6318,-32153,6293,-32157,6269,-32162,6244,-32167,6219,-32172,6195,-32177,6170,-32181,6145,-32186,6121,-32191,6096,-32195,6071,-32200,6047,-32205,6022,-32209,5997,-32214,5972,-32219,5948,-32223,5923,-32228,5898,-32232,5874,-32237,5849,-32241,5824,-32246,5799,-32250,5775,-32255,5750,-32259,5725,-32263,5700,-32268,5676,-32272,5651,-32276,5626,-32281,5601,-32285,5577,-32289,5552,-32294,5527,-32298,5502,-32302,5478,-32306,5453,-32311,5428,-32315,5403,-32319,5378,-32323,5354,-32327,5329,-32331,5304,-32335,5279,-32339,5254,-32343,5230,-32347,5205,-32351,5180,-32355,5155,-32359,5130,-32363,5106,-32367,5081,-32371,5056,-32375,5031,-32379,5006,-32383,4981,-32387,4957,-32390,4932,-32394,4907,-32398,4882,-32402,4857,-32405,4832,-32409,4807,-32413,4783,-32417,4758,-32420,4733,-32424,4708,-32427,4683,-32431,4658,-32435,4633,-32438,4608,-32442,4584,-32445,4559,-32449,4534,-32452,4509,-32456,4484,-32459,4459,-32463,4434,-32466,4409,-32469,4384,-32473,4359,-32476,4335,-32479,4310,-32483,4285,-32486,4260,-32489,4235,-32493,4210,-32496,4185,-32499,4160,-32502,4135,-32505,4110,-32509,4085,-32512,4060,-32515,4035,-32518,4011,-32521,3986,-32524,3961,-32527,3936,-32530,3911,-32533,3886,-32536,3861,-32539,3836,-32542,3811,-32545,3786,-32548,3761,-32551,3736,-32554,3711,-32557,3686,-32559,3661,-32562,3636,-32565,3611,-32568,3586,-32571,3561,-32573,3536,-32576,3511,-32579,3486,-32581,3461,-32584,3436,-32587,3411,-32589,3386,-32592,3361,-32595,3336,-32597,3311,-32600,3286,-32602,3261,-32605,3236,-32607,3211,-32610,3186,-32612,3161,-32615,3136,-32617,3111,-32619,3086,-32622,3061,-32624,3036,-32626,3011,-32629,2986,-32631,2961,-32633,2936,-32636,2911,-32638,2886,-32640,2861,-32642,2836,-32645,2811,-32647,2786,-32649,2761,-32651,2736,-32653,2711,-32655,2686,-32657,2661,-32659,2636,-32661,2610,-32663,2585,-32665,2560,-32667,2535,-32669,2510,-32671,2485,-32673,2460,-32675,2435,-32677,2410,-32679,2385,-32681,2360,-32682,2335,-32684,2310,-32686,2285,-32688,2260,-32689,2235,-32691,2209,-32693,2184,-32695,2159,-32696,2134,-32698,2109,-32700,2084,-32701,2059,-32703,2034,-32704,2009,-32706,1984,-32707,1959,-32709,1934,-32710,1908,-32712,1883,-32713,1858,-32715,1833,-32716,1808,-32718,1783,-32719,1758,-32720,1733,-32722,1708,-32723,1683,-32724,1658,-32726,1632,-32727,1607,-32728,1582,-32729,1557,-32730,1532,-32732,1507,-32733,1482,-32734,1457,-32735,1432,-32736,1406,-32737,1381,-32738,1356,-32739,1331,-32740,1306,-32741,1281,-32742,1256,-32743,1231,-32744,1206,-32745,1180,-32746,1155,-32747,1130,-32748,1105,-32749,1080,-32750,1055,-32751,1030,-32751,1005,-32752,980,-32753,954,-32754,929,-32754,904,-32755,879,-32756,854,-32756,829,-32757,804,-32758,779,-32758,753,-32759,728,-32759,703,-32760,678,-32760,653,-32761,628,-32761,603,-32762,578,-32762,552,-32763,527,-32763,502,-32764,477,-32764,452,-32764,427,-32765,402,-32765,376,-32765,351,-32766,326,-32766,301,-32766,276,-32766,251,-32767,226,-32767,201,-32767,175,-32767,150,-32767,125,-32767,100,-32767,75,-32767,50,-32767,25,-32767,0,-32767,-26,-32767,-51,-32767,-76,-32767,-101,-32767,-126,-32767,-151,-32767,-176,-32767,-202,-32767,-227,-32767,-252,-32767,-277,-32766,-302,-32766,-327,-32766,-352,-32766,-377,-32765,-403,-32765,-428,-32765,-453,-32764,-478,-32764,-503,-32764,-528,-32763,-553,-32763,-579,-32762,-604,-32762,-629,-32761,-654,-32761,-679,-32760,-704,-32760,-729,-32759,-754,-32759,-780,-32758,-805,-32758,-830,-32757,-855,-32756,-880,-32756,-905,-32755,-930,-32754,-955,-32754,-981,-32753,-1006,-32752,-1031,-32751,-1056,-32751,-1081,-32750,-1106,-32749,-1131,-32748,-1156,-32747,-1181,-32746,-1207,-32745,-1232,-32744,-1257,-32743,-1282,-32742,-1307,-32741,-1332,-32740,-1357,-32739,-1382,-32738,-1407,-32737,-1433,-32736,-1458,-32735,-1483,-32734,-1508,-32733,-1533,-32732,-1558,-32730,-1583,-32729,-1608,-32728,-1633,-32727,-1659,-32726,-1684,-32724,-1709,-32723,-1734,-32722,-1759,-32720,-1784,-32719,-1809,-32718,-1834,-32716,-1859,-32715,-1884,-32713,-1909,-32712,-1935,-32710,-1960,-32709,-1985,-32707,-2010,-32706,-2035,-32704,-2060,-32703,-2085,-32701,-2110,-32700,-2135,-32698,-2160,-32696,-2185,-32695,-2210,-32693,-2236,-32691,-2261,-32689,-2286,-32688,-2311,-32686,-2336,-32684,-2361,-32682,-2386,-32681,-2411,-32679,-2436,-32677,-2461,-32675,-2486,-32673,-2511,-32671,-2536,-32669,-2561,-32667,-2586,-32665,-2611,-32663,-2637,-32661,-2662,-32659,-2687,-32657,-2712,-32655,-2737,-32653,-2762,-32651,-2787,-32649,-2812,-32647,-2837,-32645,-2862,-32642,-2887,-32640,-2912,-32638,-2937,-32636,-2962,-32633,-2987,-32631,-3012,-32629,-3037,-32626,-3062,-32624,-3087,-32622,-3112,-32619,-3137,-32617,-3162,-32615,-3187,-32612,-3212,-32610,-3237,-32607,-3262,-32605,-3287,-32602,-3312,-32600,-3337,-32597,-3362,-32595,-3387,-32592,-3412,-32589,-3437,-32587,-3462,-32584,-3487,-32581,-3512,-32579,-3537,-32576,-3562,-32573,-3587,-32571,-3612,-32568,-3637,-32565,-3662,-32562,-3687,-32559,-3712,-32557,-3737,-32554,-3762,-32551,-3787,-32548,-3812,-32545,-3837,-32542,-3862,-32539,-3887,-32536,-3912,-32533,-3937,-32530,-3962,-32527,-3987,-32524,-4012,-32521,-4036,-32518,-4061,-32515,-4086,-32512,-4111,-32509,-4136,-32505,-4161,-32502,-4186,-32499,-4211,-32496,-4236,-32493,-4261,-32489,-4286,-32486,-4311,-32483,-4336,-32479,-4360,-32476,-4385,-32473,-4410,-32469,-4435,-32466,-4460,-32463,-4485,-32459,-4510,-32456,-4535,-32452,-4560,-32449,-4585,-32445,-4609,-32442,-4634,-32438,-4659,-32435,-4684,-32431,-4709,-32427,-4734,-32424,-4759,-32420,-4784,-32417,-4808,-32413,-4833,-32409,-4858,-32405,-4883,-32402,-4908,-32398,-4933,-32394,-4958,-32390,-4982,-32387,-5007,-32383,-5032,-32379,-5057,-32375,-5082,-32371,-5107,-32367,-5131,-32363,-5156,-32359,-5181,-32355,-5206,-32351,-5231,-32347,-5255,-32343,-5280,-32339,-5305,-32335,-5330,-32331,-5355,-32327,-5379,-32323,-5404,-32319,-5429,-32315,-5454,-32311,-5479,-32306,-5503,-32302,-5528,-32298,-5553,-32294,-5578,-32289,-5602,-32285,-5627,-32281,-5652,-32276,-5677,-32272,-5701,-32268,-5726,-32263,-5751,-32259,-5776,-32255,-5800,-32250,-5825,-32246,-5850,-32241,-5875,-32237,-5899,-32232,-5924,-32228,-5949,-32223,-5973,-32219,-5998,-32214,-6023,-32209,-6048,-32205,-6072,-32200,-6097,-32195,-6122,-32191,-6146,-32186,-6171,-32181,-6196,-32177,-6220,-32172,-6245,-32167,-6270,-32162,-6294,-32157,-6319,-32153,-6344,-32148,-6368,-32143,-6393,-32138,-6418,-32133,-6442,-32128,-6467,-32123,-6492,-32118,-6516,-32113,-6541,-32108,-6565,-32103,-6590,-32098,-6615,-32093,-6639,-32088,-6664,-32083,-6689,-32078,-6713,-32073,-6738,-32067,-6762,-32062,-6787,-32057,-6812,-32052,-6836,-32047,-6861,-32041,-6885,-32036,-6910,-32031,-6934,-32025,-6959,-32020,-6983,-32015,-7008,-32009,-7033,-32004,-7057,-31999,-7082,-31993,-7106,-31988,-7131,-31982,-7155,-31977,-7180,-31971,-7204,-31966,-7229,-31960,-7253,-31955,-7278,-31949,-7302,-31944,-7327,-31938,-7351,-31932,-7376,-31927,-7400,-31921,-7425,-31915,-7449,-31910,-7474,-31904,-7498,-31898,-7523,-31892,-7547,-31887,-7572,-31881,-7596,-31875,-7620,-31869,-7645,-31863,-7669,-31857,-7694,-31852,-7718,-31846,-7743,-31840,-7767,-31834,-7791,-31828,-7816,-31822,-7840,-31816,-7865,-31810,-7889,-31804,-7913,-31798,-7938,-31792,-7962,-31786,-7987,-31779,-8011,-31773,-8035,-31767,-8060,-31761,-8084,-31755,-8108,-31749,-8133,-31742,-8157,-31736,-8181,-31730,-8206,-31724,-8230,-31717,-8254,-31711,-8279,-31705,-8303,-31698,-8327,-31692,-8352,-31685,-8376,-31679,-8400,-31673,-8425,-31666,-8449,-31660,-8473,-31653,-8497,-31647,-8522,-31640,-8546,-31634,-8570,-31627,-8594,-31620,-8619,-31614,-8643,-31607,-8667,-31601,-8691,-31594,-8716,-31587,-8740,-31581,-8764,-31574,-8788,-31567,-8813,-31560,-8837,-31554,-8861,-31547,-8885,-31540,-8909,-31533,-8933,-31526,-8958,-31519,-8982,-31513,-9006,-31506,-9030,-31499,-9054,-31492,-9078,-31485,-9103,-31478,-9127,-31471,-9151,-31464,-9175,-31457,-9199,-31450,-9223,-31443,-9247,-31436,-9271,-31429,-9296,-31421,-9320,-31414,-9344,-31407,-9368,-31400,-9392,-31393,-9416,-31386,-9440,-31378,-9464,-31371,-9488,-31364,-9512,-31357,-9536,-31349,-9560,-31342,-9584,-31335,-9608,-31327,-9632,-31320,-9656,-31312,-9680,-31305,-9704,-31298,-9728,-31290,-9752,-31283,-9776,-31275,-9800,-31268,-9824,-31260,-9848,-31253,-9872,-31245,-9896,-31237,-9920,-31230,-9944,-31222,-9968,-31215,-9992,-31207,-10016,-31199,-10040,-31192,-10064,-31184,-10088,-31176,-10112,-31168,-10136,-31161,-10160,-31153,-10183,-31145,-10207,-31137,-10231,-31129,-10255,-31122,-10279,-31114,-10303,-31106,-10327,-31098,-10350,-31090,-10374,-31082,-10398,-31074,-10422,-31066,-10446,-31058,-10470,-31050,-10493,-31042,-10517,-31034,-10541,-31026,-10565,-31018,-10589,-31010,-10612,-31002,-10636,-30993,-10660,-30985,-10684,-30977,-10707,-30969,-10731,-30961,-10755,-30952,-10779,-30944,-10802,-30936,-10826,-30928,-10850,-30919,-10874,-30911,-10897,-30903,-10921,-30894,-10945,-30886,-10968,-30877,-10992,-30869,-11016,-30861,-11039,-30852,-11063,-30844,-11087,-30835,-11110,-30827,-11134,-30818,-11158,-30810,-11181,-30801,-11205,-30792,-11228,-30784,-11252,-30775,-11276,-30767,-11299,-30758,-11323,-30749,-11346,-30740,-11370,-30732,-11394,-30723,-11417,-30714,-11441,-30706,-11464,-30697,-11488,-30688,-11511,-30679,-11535,-30670,-11558,-30661,-11582,-30653,-11605,-30644,-11629,-30635,-11652,-30626,-11676,-30617,-11699,-30608,-11723,-30599,-11746,-30590,-11770,-30581,-11793,-30572,-11817,-30563,-11840,-30554,-11863,-30545,-11887,-30536,-11910,-30526,-11934,-30517,-11957,-30508,-11981,-30499,-12004,-30490,-12027,-30481,-12051,-30471,-12074,-30462,-12097,-30453,-12121,-30443,-12144,-30434,-12167,-30425,-12191,-30416,-12214,-30406,-12237,-30397,-12261,-30387,-12284,-30378,-12307,-30369,-12331,-30359,-12354,-30350,-12377,-30340,-12400,-30331,-12424,-30321,-12447,-30312,-12470,-30302,-12493,-30292,-12517,-30283,-12540,-30273,-12563,-30264,-12586,-30254,-12610,-30244,-12633,-30235,-12656,-30225,-12679,-30215,-12702,-30206,-12725,-30196,-12749,-30186,-12772,-30176,-12795,-30166,-12818,-30157,-12841,-30147,-12864,-30137,-12887,-30127,-12910,-30117,-12934,-30107,-12957,-30097,-12980,-30087,-13003,-30077,-13026,-30067,-13049,-30057,-13072,-30047,-13095,-30037,-13118,-30027,-13141,-30017,-13164,-30007,-13187,-29997,-13210,-29987,-13233,-29977,-13256,-29967,-13279,-29956,-13302,-29946,-13325,-29936,-13348,-29926,-13371,-29916,-13394,-29905,-13417,-29895,-13440,-29885,-13463,-29874,-13486,-29864,-13508,-29854,-13531,-29843,-13554,-29833,-13577,-29823,-13600,-29812,-13623,-29802,-13646,-29791,-13668,-29781,-13691,-29770,-13714,-29760,-13737,-29749,-13760,-29739,-13783,-29728,-13805,-29718,-13828,-29707,-13851,-29696,-13874,-29686,-13896,-29675,-13919,-29664,-13942,-29654,-13965,-29643,-13987,-29632,-14010,-29622,-14033,-29611,-14056,-29600,-14078,-29589,-14101,-29578,-14124,-29568,-14146,-29557,-14169,-29546,-14192,-29535,-14214,-29524,-14237,-29513,-14260,-29502,-14282,-29491,-14305,-29480,-14327,-29469,-14350,-29458,-14373,-29447,-14395,-29436,-14418,-29425,-14440,-29414,-14463,-29403,-14485,-29392,-14508,-29381,-14531,-29370,-14553,-29359,-14576,-29347,-14598,-29336,-14621,-29325,-14643,-29314,-14666,-29303,-14688,-29291,-14710,-29280,-14733,-29269,-14755,-29257,-14778,-29246,-14800,-29235,-14823,-29223,-14845,-29212,-14867,-29201,-14890,-29189,-14912,-29178,-14935,-29166,-14957,-29155,-14979,-29143,-15002,-29132,-15024,-29120,-15046,-29109,-15069,-29097,-15091,-29086,-15113,-29074,-15136,-29063,-15158,-29051,-15180,-29039,-15202,-29028,-15225,-29016,-15247,-29004,-15269,-28993,-15291,-28981,-15314,-28969,-15336,-28957,-15358,-28946,-15380,-28934,-15402,-28922,-15425,-28910,-15447,-28898,-15469,-28887,-15491,-28875,-15513,-28863,-15535,-28851,-15557,-28839,-15580,-28827,-15602,-28815,-15624,-28803,-15646,-28791,-15668,-28779,-15690,-28767,-15712,-28755,-15734,-28743,-15756,-28731,-15778,-28719,-15800,-28707,-15822,-28695,-15844,-28682,-15866,-28670,-15888,-28658,-15910,-28646,-15932,-28634,-15954,-28621,-15976,-28609,-15998,-28597,-16020,-28585,-16042,-28572,-16064,-28560,-16086,-28548,-16108,-28535,-16129,-28523,-16151,-28511,-16173,-28498,-16195,-28486,-16217,-28473,-16239,-28461,-16261,-28448,-16282,-28436,-16304,-28424,-16326,-28411,-16348,-28398,-16369,-28386,-16391,-28373,-16413,-28361,-16435,-28348,-16456,-28336,-16478,-28323,-16500,-28310,-16522,-28298,-16543,-28285,-16565,-28272,-16587,-28260,-16608,-28247,-16630,-28234,-16652,-28221,-16673,-28209,-16695,-28196,-16717,-28183,-16738,-28170,-16760,-28157,-16781,-28144,-16803,-28132,-16825,-28119,-16846,-28106,-16868,-28093,-16889,-28080,-16911,-28067,-16932,-28054,-16954,-28041,-16975,-28028,-16997,-28015,-17018,-28002,-17040,-27989,-17061,-27976,-17083,-27963,-17104,-27949,-17125,-27936,-17147,-27923,-17168,-27910,-17190,-27897,-17211,-27884,-17233,-27870,-17254,-27857,-17275,-27844,-17297,-27831,-17318,-27817,-17339,-27804,-17361,-27791,-17382,-27778,-17403,-27764,-17424,-27751,-17446,-27737,-17467,-27724,-17488,-27711,-17510,-27697,-17531,-27684,-17552,-27670,-17573,-27657,-17594,-27643,-17616,-27630,-17637,-27616,-17658,-27603,-17679,-27589,-17700,-27576,-17721,-27562,-17743,-27549,-17764,-27535,-17785,-27521,-17806,-27508,-17827,-27494,-17848,-27480,-17869,-27467,-17890,-27453,-17911,-27439,-17932,-27425,-17953,-27412,-17974,-27398,-17995,-27384,-18016,-27370,-18037,-27356,-18058,-27343,-18079,-27329,-18100,-27315,-18121,-27301,-18142,-27287,-18163,-27273,-18184,-27259,-18205,-27245,-18226,-27231,-18247,-27217,-18268,-27203,-18288,-27189,-18309,-27175,-18330,-27161,-18351,-27147,-18372,-27133,-18393,-27119,-18413,-27105,-18434,-27091,-18455,-27077,-18476,-27062,-18496,-27048,-18517,-27034,-18538,-27020,-18559,-27006,-18579,-26991,-18600,-26977,-18621,-26963,-18641,-26949,-18662,-26934,-18683,-26920,-18703,-26906,-18724,-26891,-18745,-26877,-18765,-26862,-18786,-26848,-18806,-26834,-18827,-26819,-18847,-26805,-18868,-26790,-18889,-26776,-18909,-26761,-18930,-26747,-18950,-26732,-18971,-26718,-18991,-26703,-19012,-26689,-19032,-26674,-19052,-26659,-19073,-26645,-19093,-26630,-19114,-26616,-19134,-26601,-19155,-26586,-19175,-26571,-19195,-26557,-19216,-26542,-19236,-26527,-19256,-26513,-19277,-26498,-19297,-26483,-19317,-26468,-19338,-26453,-19358,-26438,-19378,-26424,-19398,-26409,-19419,-26394,-19439,-26379,-19459,-26364,-19479,-26349,-19500,-26334,-19520,-26319,-19540,-26304,-19560,-26289,-19580,-26274,-19600,-26259,-19621,-26244,-19641,-26229,-19661,-26214,-19681,-26199,-19701,-26184,-19721,-26169,-19741,-26154,-19761,-26138,-19781,-26123,-19801,-26108,-19821,-26093,-19841,-26078,-19861,-26062,-19881,-26047,-19901,-26032,-19921,-26017,-19941,-26001,-19961,-25986,-19981,-25971,-20001,-25955,-20021,-25940,-20041,-25925,-20061,-25909,-20080,-25894,-20100,-25879,-20120,-25863,-20140,-25848,-20160,-25832,-20180,-25817,-20199,-25801,-20219,-25786,-20239,-25770,-20259,-25755,-20278,-25739,-20298,-25724,-20318,-25708,-20338,-25692,-20357,-25677,-20377,-25661,-20397,-25646,-20416,-25630,-20436,-25614,-20456,-25599,-20475,-25583,-20495,-25567,-20514,-25551,-20534,-25536,-20554,-25520,-20573,-25504,-20593,-25488,-20612,-25473,-20632,-25457,-20651,-25441,-20671,-25425,-20690,-25409,-20710,-25393,-20729,-25377,-20749,-25362,-20768,-25346,-20788,-25330,-20807,-25314,-20826,-25298,-20846,-25282,-20865,-25266,-20885,-25250,-20904,-25234,-20923,-25218,-20943,-25202,-20962,-25186,-20981,-25170,-21001,-25153,-21020,-25137,-21039,-25121,-21058,-25105,-21078,-25089,-21097,-25073,-21116,-25057,-21135,-25040,-21155,-25024,-21174,-25008,-21193,-24992,-21212,-24975,-21231,-24959,-21250,-24943,-21269,-24927,-21289,-24910,-21308,-24894,-21327,-24878,-21346,-24861,-21365,-24845,-21384,-24828,-21403,-24812,-21422,-24796,-21441,-24779,-21460,-24763,-21479,-24746,-21498,-24730,-21517,-24713,-21536,-24697,-21555,-24680,-21574,-24664,-21593,-24647,-21612,-24631,-21630,-24614,-21649,-24597,-21668,-24581,-21687,-24564,-21706,-24547,-21725,-24531,-21744,-24514,-21762,-24497,-21781,-24481,-21800,-24464,-21819,-24447,-21837,-24431,-21856,-24414,-21875,-24397,-21894,-24380,-21912,-24363,-21931,-24347,-21950,-24330,-21968,-24313,-21987,-24296,-22005,-24279,-22024,-24262,-22043,-24245,-22061,-24229,-22080,-24212,-22098,-24195,-22117,-24178,-22136,-24161,-22154,-24144,-22173,-24127,-22191,-24110,-22210,-24093,-22228,-24076,-22246,-24059,-22265,-24042,-22283,-24024,-22302,-24007,-22320,-23990,-22339,-23973,-22357,-23956,-22375,-23939,-22394,-23922,-22412,-23904,-22430,-23887,-22449,-23870,-22467,-23853,-22485,-23836,-22504,-23818,-22522,-23801,-22540,-23784,-22558,-23767,-22576,-23749,-22595,-23732,-22613,-23715,-22631,-23697,-22649,-23680,-22667,-23662,-22686,-23645,-22704,-23628,-22722,-23610,-22740,-23593,-22758,-23575,-22776,-23558,-22794,-23540,-22812,-23523,-22830,-23505,-22848,-23488,-22866,-23470,-22884,-23453,-22902,-23435,-22920,-23418,-22938,-23400,-22956,-23383,-22974,-23365,-22992,-23347,-23010,-23330,-23028,-23312,-23046,-23294,-23063,-23277,-23081,-23259,-23099,-23241,-23117,-23224,-23135,-23206,-23152,-23188,-23170,-23170,-23188,-23152,-23206,-23135,-23224,-23117,-23241,-23099,-23259,-23081,-23277,-23063,-23294,-23046,-23312,-23028,-23330,-23010,-23347,-22992,-23365,-22974,-23383,-22956,-23400,-22938,-23418,-22920,-23435,-22902,-23453,-22884,-23470,-22866,-23488,-22848,-23505,-22830,-23523,-22812,-23540,-22794,-23558,-22776,-23575,-22758,-23593,-22740,-23610,-22722,-23628,-22704,-23645,-22686,-23662,-22667,-23680,-22649,-23697,-22631,-23715,-22613,-23732,-22595,-23749,-22576,-23767,-22558,-23784,-22540,-23801,-22522,-23818,-22504,-23836,-22485,-23853,-22467,-23870,-22449,-23887,-22430,-23904,-22412,-23922,-22394,-23939,-22375,-23956,-22357,-23973,-22339,-23990,-22320,-24007,-22302,-24024,-22283,-24042,-22265,-24059,-22246,-24076,-22228,-24093,-22210,-24110,-22191,-24127,-22173,-24144,-22154,-24161,-22136,-24178,-22117,-24195,-22098,-24212,-22080,-24229,-22061,-24245,-22043,-24262,-22024,-24279,-22005,-24296,-21987,-24313,-21968,-24330,-21950,-24347,-21931,-24363,-21912,-24380,-21894,-24397,-21875,-24414,-21856,-24431,-21837,-24447,-21819,-24464,-21800,-24481,-21781,-24497,-21762,-24514,-21744,-24531,-21725,-24547,-21706,-24564,-21687,-24581,-21668,-24597,-21649,-24614,-21630,-24631,-21612,-24647,-21593,-24664,-21574,-24680,-21555,-24697,-21536,-24713,-21517,-24730,-21498,-24746,-21479,-24763,-21460,-24779,-21441,-24796,-21422,-24812,-21403,-24828,-21384,-24845,-21365,-24861,-21346,-24878,-21327,-24894,-21308,-24910,-21289,-24927,-21269,-24943,-21250,-24959,-21231,-24975,-21212,-24992,-21193,-25008,-21174,-25024,-21155,-25040,-21135,-25057,-21116,-25073,-21097,-25089,-21078,-25105,-21058,-25121,-21039,-25137,-21020,-25153,-21001,-25170,-20981,-25186,-20962,-25202,-20943,-25218,-20923,-25234,-20904,-25250,-20885,-25266,-20865,-25282,-20846,-25298,-20826,-25314,-20807,-25330,-20788,-25346,-20768,-25362,-20749,-25377,-20729,-25393,-20710,-25409,-20690,-25425,-20671,-25441,-20651,-25457,-20632,-25473,-20612,-25488,-20593,-25504,-20573,-25520,-20554,-25536,-20534,-25551,-20514,-25567,-20495,-25583,-20475,-25599,-20456,-25614,-20436,-25630,-20416,-25646,-20397,-25661,-20377,-25677,-20357,-25692,-20338,-25708,-20318,-25724,-20298,-25739,-20278,-25755,-20259,-25770,-20239,-25786,-20219,-25801,-20199,-25817,-20180,-25832,-20160,-25848,-20140,-25863,-20120,-25879,-20100,-25894,-20080,-25909,-20061,-25925,-20041,-25940,-20021,-25955,-20001,-25971,-19981,-25986,-19961,-26001,-19941,-26017,-19921,-26032,-19901,-26047,-19881,-26062,-19861,-26078,-19841,-26093,-19821,-26108,-19801,-26123,-19781,-26138,-19761,-26154,-19741,-26169,-19721,-26184,-19701,-26199,-19681,-26214,-19661,-26229,-19641,-26244,-19621,-26259,-19600,-26274,-19580,-26289,-19560,-26304,-19540,-26319,-19520,-26334,-19500,-26349,-19479,-26364,-19459,-26379,-19439,-26394,-19419,-26409,-19398,-26424,-19378,-26438,-19358,-26453,-19338,-26468,-19317,-26483,-19297,-26498,-19277,-26513,-19256,-26527,-19236,-26542,-19216,-26557,-19195,-26571,-19175,-26586,-19155,-26601,-19134,-26616,-19114,-26630,-19093,-26645,-19073,-26659,-19052,-26674,-19032,-26689,-19012,-26703,-18991,-26718,-18971,-26732,-18950,-26747,-18930,-26761,-18909,-26776,-18889,-26790,-18868,-26805,-18847,-26819,-18827,-26834,-18806,-26848,-18786,-26862,-18765,-26877,-18745,-26891,-18724,-26906,-18703,-26920,-18683,-26934,-18662,-26949,-18641,-26963,-18621,-26977,-18600,-26991,-18579,-27006,-18559,-27020,-18538,-27034,-18517,-27048,-18496,-27062,-18476,-27077,-18455,-27091,-18434,-27105,-18413,-27119,-18393,-27133,-18372,-27147,-18351,-27161,-18330,-27175,-18309,-27189,-18288,-27203,-18268,-27217,-18247,-27231,-18226,-27245,-18205,-27259,-18184,-27273,-18163,-27287,-18142,-27301,-18121,-27315,-18100,-27329,-18079,-27343,-18058,-27356,-18037,-27370,-18016,-27384,-17995,-27398,-17974,-27412,-17953,-27425,-17932,-27439,-17911,-27453,-17890,-27467,-17869,-27480,-17848,-27494,-17827,-27508,-17806,-27521,-17785,-27535,-17764,-27549,-17743,-27562,-17721,-27576,-17700,-27589,-17679,-27603,-17658,-27616,-17637,-27630,-17616,-27643,-17594,-27657,-17573,-27670,-17552,-27684,-17531,-27697,-17510,-27711,-17488,-27724,-17467,-27737,-17446,-27751,-17424,-27764,-17403,-27778,-17382,-27791,-17361,-27804,-17339,-27817,-17318,-27831,-17297,-27844,-17275,-27857,-17254,-27870,-17233,-27884,-17211,-27897,-17190,-27910,-17168,-27923,-17147,-27936,-17125,-27949,-17104,-27963,-17083,-27976,-17061,-27989,-17040,-28002,-17018,-28015,-16997,-28028,-16975,-28041,-16954,-28054,-16932,-28067,-16911,-28080,-16889,-28093,-16868,-28106,-16846,-28119,-16825,-28132,-16803,-28144,-16781,-28157,-16760,-28170,-16738,-28183,-16717,-28196,-16695,-28209,-16673,-28221,-16652,-28234,-16630,-28247,-16608,-28260,-16587,-28272,-16565,-28285,-16543,-28298,-16522,-28310,-16500,-28323,-16478,-28336,-16456,-28348,-16435,-28361,-16413,-28373,-16391,-28386,-16369,-28398,-16348,-28411,-16326,-28424,-16304,-28436,-16282,-28448,-16261,-28461,-16239,-28473,-16217,-28486,-16195,-28498,-16173,-28511,-16151,-28523,-16129,-28535,-16108,-28548,-16086,-28560,-16064,-28572,-16042,-28585,-16020,-28597,-15998,-28609,-15976,-28621,-15954,-28634,-15932,-28646,-15910,-28658,-15888,-28670,-15866,-28682,-15844,-28695,-15822,-28707,-15800,-28719,-15778,-28731,-15756,-28743,-15734,-28755,-15712,-28767,-15690,-28779,-15668,-28791,-15646,-28803,-15624,-28815,-15602,-28827,-15580,-28839,-15557,-28851,-15535,-28863,-15513,-28875,-15491,-28887,-15469,-28898,-15447,-28910,-15425,-28922,-15402,-28934,-15380,-28946,-15358,-28957,-15336,-28969,-15314,-28981,-15291,-28993,-15269,-29004,-15247,-29016,-15225,-29028,-15202,-29039,-15180,-29051,-15158,-29063,-15136,-29074,-15113,-29086,-15091,-29097,-15069,-29109,-15046,-29120,-15024,-29132,-15002,-29143,-14979,-29155,-14957,-29166,-14935,-29178,-14912,-29189,-14890,-29201,-14867,-29212,-14845,-29223,-14823,-29235,-14800,-29246,-14778,-29257,-14755,-29269,-14733,-29280,-14710,-29291,-14688,-29303,-14666,-29314,-14643,-29325,-14621,-29336,-14598,-29347,-14576,-29359,-14553,-29370,-14531,-29381,-14508,-29392,-14485,-29403,-14463,-29414,-14440,-29425,-14418,-29436,-14395,-29447,-14373,-29458,-14350,-29469,-14327,-29480,-14305,-29491,-14282,-29502,-14260,-29513,-14237,-29524,-14214,-29535,-14192,-29546,-14169,-29557,-14146,-29568,-14124,-29578,-14101,-29589,-14078,-29600,-14056,-29611,-14033,-29622,-14010,-29632,-13987,-29643,-13965,-29654,-13942,-29664,-13919,-29675,-13896,-29686,-13874,-29696,-13851,-29707,-13828,-29718,-13805,-29728,-13783,-29739,-13760,-29749,-13737,-29760,-13714,-29770,-13691,-29781,-13668,-29791,-13646,-29802,-13623,-29812,-13600,-29823,-13577,-29833,-13554,-29843,-13531,-29854,-13508,-29864,-13486,-29874,-13463,-29885,-13440,-29895,-13417,-29905,-13394,-29916,-13371,-29926,-13348,-29936,-13325,-29946,-13302,-29956,-13279,-29967,-13256,-29977,-13233,-29987,-13210,-29997,-13187,-30007,-13164,-30017,-13141,-30027,-13118,-30037,-13095,-30047,-13072,-30057,-13049,-30067,-13026,-30077,-13003,-30087,-12980,-30097,-12957,-30107,-12934,-30117,-12910,-30127,-12887,-30137,-12864,-30147,-12841,-30157,-12818,-30166,-12795,-30176,-12772,-30186,-12749,-30196,-12725,-30206,-12702,-30215,-12679,-30225,-12656,-30235,-12633,-30244,-12610,-30254,-12586,-30264,-12563,-30273,-12540,-30283,-12517,-30292,-12493,-30302,-12470,-30312,-12447,-30321,-12424,-30331,-12400,-30340,-12377,-30350,-12354,-30359,-12331,-30369,-12307,-30378,-12284,-30387,-12261,-30397,-12237,-30406,-12214,-30416,-12191,-30425,-12167,-30434,-12144,-30443,-12121,-30453,-12097,-30462,-12074,-30471,-12051,-30481,-12027,-30490,-12004,-30499,-11981,-30508,-11957,-30517,-11934,-30526,-11910,-30536,-11887,-30545,-11863,-30554,-11840,-30563,-11817,-30572,-11793,-30581,-11770,-30590,-11746,-30599,-11723,-30608,-11699,-30617,-11676,-30626,-11652,-30635,-11629,-30644,-11605,-30653,-11582,-30661,-11558,-30670,-11535,-30679,-11511,-30688,-11488,-30697,-11464,-30706,-11441,-30714,-11417,-30723,-11394,-30732,-11370,-30740,-11346,-30749,-11323,-30758,-11299,-30767,-11276,-30775,-11252,-30784,-11228,-30792,-11205,-30801,-11181,-30810,-11158,-30818,-11134,-30827,-11110,-30835,-11087,-30844,-11063,-30852,-11039,-30861,-11016,-30869,-10992,-30877,-10968,-30886,-10945,-30894,-10921,-30903,-10897,-30911,-10874,-30919,-10850,-30928,-10826,-30936,-10802,-30944,-10779,-30952,-10755,-30961,-10731,-30969,-10707,-30977,-10684,-30985,-10660,-30993,-10636,-31002,-10612,-31010,-10589,-31018,-10565,-31026,-10541,-31034,-10517,-31042,-10493,-31050,-10470,-31058,-10446,-31066,-10422,-31074,-10398,-31082,-10374,-31090,-10350,-31098,-10327,-31106,-10303,-31114,-10279,-31122,-10255,-31129,-10231,-31137,-10207,-31145,-10183,-31153,-10160,-31161,-10136,-31168,-10112,-31176,-10088,-31184,-10064,-31192,-10040,-31199,-10016,-31207,-9992,-31215,-9968,-31222,-9944,-31230,-9920,-31237,-9896,-31245,-9872,-31253,-9848,-31260,-9824,-31268,-9800,-31275,-9776,-31283,-9752,-31290,-9728,-31298,-9704,-31305,-9680,-31312,-9656,-31320,-9632,-31327,-9608,-31335,-9584,-31342,-9560,-31349,-9536,-31357,-9512,-31364,-9488,-31371,-9464,-31378,-9440,-31386,-9416,-31393,-9392,-31400,-9368,-31407,-9344,-31414,-9320,-31421,-9296,-31429,-9271,-31436,-9247,-31443,-9223,-31450,-9199,-31457,-9175,-31464,-9151,-31471,-9127,-31478,-9103,-31485,-9078,-31492,-9054,-31499,-9030,-31506,-9006,-31513,-8982,-31519,-8958,-31526,-8933,-31533,-8909,-31540,-8885,-31547,-8861,-31554,-8837,-31560,-8813,-31567,-8788,-31574,-8764,-31581,-8740,-31587,-8716,-31594,-8691,-31601,-8667,-31607,-8643,-31614,-8619,-31620,-8594,-31627,-8570,-31634,-8546,-31640,-8522,-31647,-8497,-31653,-8473,-31660,-8449,-31666,-8425,-31673,-8400,-31679,-8376,-31685,-8352,-31692,-8327,-31698,-8303,-31705,-8279,-31711,-8254,-31717,-8230,-31724,-8206,-31730,-8181,-31736,-8157,-31742,-8133,-31749,-8108,-31755,-8084,-31761,-8060,-31767,-8035,-31773,-8011,-31779,-7987,-31786,-7962,-31792,-7938,-31798,-7913,-31804,-7889,-31810,-7865,-31816,-7840,-31822,-7816,-31828,-7791,-31834,-7767,-31840,-7743,-31846,-7718,-31852,-7694,-31857,-7669,-31863,-7645,-31869,-7620,-31875,-7596,-31881,-7572,-31887,-7547,-31892,-7523,-31898,-7498,-31904,-7474,-31910,-7449,-31915,-7425,-31921,-7400,-31927,-7376,-31932,-7351,-31938,-7327,-31944,-7302,-31949,-7278,-31955,-7253,-31960,-7229,-31966,-7204,-31971,-7180,-31977,-7155,-31982,-7131,-31988,-7106,-31993,-7082,-31999,-7057,-32004,-7033,-32009,-7008,-32015,-6983,-32020,-6959,-32025,-6934,-32031,-6910,-32036,-6885,-32041,-6861,-32047,-6836,-32052,-6812,-32057,-6787,-32062,-6762,-32067,-6738,-32073,-6713,-32078,-6689,-32083,-6664,-32088,-6639,-32093,-6615,-32098,-6590,-32103,-6565,-32108,-6541,-32113,-6516,-32118,-6492,-32123,-6467,-32128,-6442,-32133,-6418,-32138,-6393,-32143,-6368,-32148,-6344,-32153,-6319,-32157,-6294,-32162,-6270,-32167,-6245,-32172,-6220,-32177,-6196,-32181,-6171,-32186,-6146,-32191,-6122,-32195,-6097,-32200,-6072,-32205,-6048,-32209,-6023,-32214,-5998,-32219,-5973,-32223,-5949,-32228,-5924,-32232,-5899,-32237,-5875,-32241,-5850,-32246,-5825,-32250,-5800,-32255,-5776,-32259,-5751,-32263,-5726,-32268,-5701,-32272,-5677,-32276,-5652,-32281,-5627,-32285,-5602,-32289,-5578,-32294,-5553,-32298,-5528,-32302,-5503,-32306,-5479,-32311,-5454,-32315,-5429,-32319,-5404,-32323,-5379,-32327,-5355,-32331,-5330,-32335,-5305,-32339,-5280,-32343,-5255,-32347,-5231,-32351,-5206,-32355,-5181,-32359,-5156,-32363,-5131,-32367,-5107,-32371,-5082,-32375,-5057,-32379,-5032,-32383,-5007,-32387,-4982,-32390,-4958,-32394,-4933,-32398,-4908,-32402,-4883,-32405,-4858,-32409,-4833,-32413,-4808,-32417,-4784,-32420,-4759,-32424,-4734,-32427,-4709,-32431,-4684,-32435,-4659,-32438,-4634,-32442,-4609,-32445,-4585,-32449,-4560,-32452,-4535,-32456,-4510,-32459,-4485,-32463,-4460,-32466,-4435,-32469,-4410,-32473,-4385,-32476,-4360,-32479,-4336,-32483,-4311,-32486,-4286,-32489,-4261,-32493,-4236,-32496,-4211,-32499,-4186,-32502,-4161,-32505,-4136,-32509,-4111,-32512,-4086,-32515,-4061,-32518,-4036,-32521,-4012,-32524,-3987,-32527,-3962,-32530,-3937,-32533,-3912,-32536,-3887,-32539,-3862,-32542,-3837,-32545,-3812,-32548,-3787,-32551,-3762,-32554,-3737,-32557,-3712,-32559,-3687,-32562,-3662,-32565,-3637,-32568,-3612,-32571,-3587,-32573,-3562,-32576,-3537,-32579,-3512,-32581,-3487,-32584,-3462,-32587,-3437,-32589,-3412,-32592,-3387,-32595,-3362,-32597,-3337,-32600,-3312,-32602,-3287,-32605,-3262,-32607,-3237,-32610,-3212,-32612,-3187,-32615,-3162,-32617,-3137,-32619,-3112,-32622,-3087,-32624,-3062,-32626,-3037,-32629,-3012,-32631,-2987,-32633,-2962,-32636,-2937,-32638,-2912,-32640,-2887,-32642,-2862,-32645,-2837,-32647,-2812,-32649,-2787,-32651,-2762,-32653,-2737,-32655,-2712,-32657,-2687,-32659,-2662,-32661,-2637,-32663,-2611,-32665,-2586,-32667,-2561,-32669,-2536,-32671,-2511,-32673,-2486,-32675,-2461,-32677,-2436,-32679,-2411,-32681,-2386,-32682,-2361,-32684,-2336,-32686,-2311,-32688,-2286,-32689,-2261,-32691,-2236,-32693,-2210,-32695,-2185,-32696,-2160,-32698,-2135,-32700,-2110,-32701,-2085,-32703,-2060,-32704,-2035,-32706,-2010,-32707,-1985,-32709,-1960,-32710,-1935,-32712,-1909,-32713,-1884,-32715,-1859,-32716,-1834,-32718,-1809,-32719,-1784,-32720,-1759,-32722,-1734,-32723,-1709,-32724,-1684,-32726,-1659,-32727,-1633,-32728,-1608,-32729,-1583,-32730,-1558,-32732,-1533,-32733,-1508,-32734,-1483,-32735,-1458,-32736,-1433,-32737,-1407,-32738,-1382,-32739,-1357,-32740,-1332,-32741,-1307,-32742,-1282,-32743,-1257,-32744,-1232,-32745,-1207,-32746,-1181,-32747,-1156,-32748,-1131,-32749,-1106,-32750,-1081,-32751,-1056,-32751,-1031,-32752,-1006,-32753,-981,-32754,-955,-32754,-930,-32755,-905,-32756,-880,-32756,-855,-32757,-830,-32758,-805,-32758,-780,-32759,-754,-32759,-729,-32760,-704,-32760,-679,-32761,-654,-32761,-629,-32762,-604,-32762,-579,-32763,-553,-32763,-528,-32764,-503,-32764,-478,-32764,-453,-32765,-428,-32765,-403,-32765,-377,-32766,-352,-32766,-327,-32766,-302,-32766,-277,-32767,-252,-32767,-227,-32767,-202,-32767,-176,-32767,-151,-32767,-126,-32767,-101,-32767,-76,-32767,-51,-32767,-26}; diff --git a/openair1/PHY/defs_UE.h b/openair1/PHY/defs_UE.h index e36b88c036..f079794a34 100644 --- a/openair1/PHY/defs_UE.h +++ b/openair1/PHY/defs_UE.h @@ -69,6 +69,38 @@ #include #include "assertions.h" +#ifdef MEX +#include "mex.h" +# define msg mexPrintf +# undef LOG_D +# undef LOG_E +# undef LOG_I +# undef LOG_N +# undef LOG_T +# undef LOG_W +# undef LOG_M +# define LOG_D(x, ...) mexPrintf(__VA_ARGS__) +# define LOG_E(x, ...) mexPrintf(__VA_ARGS__) +# define LOG_I(x, ...) mexPrintf(__VA_ARGS__) +# define LOG_N(x, ...) mexPrintf(__VA_ARGS__) +# define LOG_T(x, ...) mexPrintf(__VA_ARGS__) +# define LOG_W(x, ...) mexPrintf(__VA_ARGS__) +# define LOG_M(x, ...) mexPrintf(__VA_ARGS__) +#else +# ifdef OPENAIR2 +# if ENABLE_RAL +# include "collection/hashtable/hashtable.h" +# include "COMMON/ral_messages_types.h" +# include "UTIL/queue.h" +# endif +# include "log.h" +# define msg(aRGS...) LOG_D(PHY, ##aRGS) +# else +# define msg printf +# endif +#endif + + /// Context data structure for RX/TX portion of subframe processing typedef struct { @@ -161,12 +193,12 @@ typedef struct { UE_rxtx_proc_t proc_rxtx[RX_NB_TH]; } UE_proc_t; -/// Panos: Structure holding timer_thread related elements (phy_stub_UE mode) +/// Structure holding timer_thread related elements (phy_stub_UE mode) typedef struct { pthread_t pthread_timer; - /// Panos: mutex for waiting SF ticking + /// mutex for waiting SF ticking pthread_mutex_t mutex_ticking; - /// Panos: \brief ticking var for ticking thread. + /// \brief ticking var for ticking thread. /// \internal This variable is protected by \ref mutex_ticking. int ticking_var; /// condition variable for timer_thread; @@ -273,13 +305,13 @@ typedef struct { /// - first index: rx antenna [0..nb_antennas_rx[ /// - second index: symbol [0..28*ofdm_symbol_size[ int32_t **rxdataF; - + /// \brief Hold the channel estimates in frequency domain. /// - first index: eNB id [0..6] (hard coded) /// - second index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx /// - third index: samples? [0..symbols_per_tti*(ofdm_symbol_size+LTE_CE_FILTER_LENGTH)[ int32_t **dl_ch_estimates[7]; - + /// \brief Hold the channel estimates in time domain (used for tracking). /// - first index: eNB id [0..6] (hard coded) /// - second index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx @@ -848,7 +880,7 @@ typedef struct { /// RF and Interface devices per CC - openair0_device rfdevice; + openair0_device rfdevice; } PHY_VARS_UE; /* this structure is used to pass both UE phy vars and diff --git a/openair1/PHY/defs_common.h b/openair1/PHY/defs_common.h index 2a41fd887e..fce7f1b885 100644 --- a/openair1/PHY/defs_common.h +++ b/openair1/PHY/defs_common.h @@ -72,13 +72,11 @@ #include -#include "targets/ARCH/COMMON/common_lib.h" #include "targets/COMMON/openairinterface5g_limits.h" #include "types.h" #include "nfapi_interface.h" //#include "defs.h" -#include "openair2/COMMON/platform_types.h" #define RX_NB_TH_MAX 2 #define RX_NB_TH 2 @@ -159,7 +157,7 @@ typedef struct { PRACH_CONFIG_INFO prach_ConfigInfo; } PRACH_CONFIG_COMMON; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// PRACH-eMTC-Config from 36.331 RRC spec typedef struct { @@ -192,7 +190,7 @@ typedef struct { /// prach_Config_enabled=1 means enabled. \vr{[0..1]} uint8_t prach_Config_enabled; /// PRACH Configuration Information -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) PRACH_eMTC_CONFIG_INFO prach_ConfigInfo; #endif } PRACH_eMTC_CONFIG_COMMON; @@ -644,7 +642,7 @@ typedef struct { uint8_t nb_antenna_ports_eNB; /// PRACH_CONFIG PRACH_CONFIG_COMMON prach_config_common; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// PRACH_eMTC_CONFIG PRACH_eMTC_CONFIG_COMMON prach_emtc_config_common; #endif @@ -678,7 +676,8 @@ typedef struct { uint16_t phich_reg[MAX_NUM_PHICH_GROUPS][3]; struct MBSFN_SubframeConfig *mbsfn_SubframeConfig[MAX_MBSFN_AREA]; - + /// for fair RR scheduler + uint32_t ue_multiple_max; } LTE_DL_FRAME_PARMS; typedef enum { @@ -931,7 +930,7 @@ typedef enum { void exit_fun(const char* s); -#include "UTIL/LOG/log_extern.h" +#include "common/utils/LOG/log_extern.h" extern pthread_cond_t sync_cond; extern pthread_mutex_t sync_mutex; extern int sync_var; @@ -958,13 +957,11 @@ extern int sync_var; #define DECODE_NUM_FPTR 13 -typedef uint8_t(*decoder_if_t)(int16_t *y, +typedef uint8_t(decoder_if_t)(int16_t *y, int16_t *y2, uint8_t *decoded_bytes, uint8_t *decoded_bytes2, uint16_t n, - uint16_t f1, - uint16_t f2, uint8_t max_iterations, uint8_t crc_type, uint8_t F, @@ -976,17 +973,15 @@ typedef uint8_t(*decoder_if_t)(int16_t *y, time_stats_t *intl1_stats, time_stats_t *intl2_stats); -typedef uint8_t(*encoder_if_t)(uint8_t *input, +typedef uint8_t(encoder_if_t)(uint8_t *input, uint16_t input_length_bytes, uint8_t *output, - uint8_t F, - uint16_t interleaver_f1, - uint16_t interleaver_f2); + uint8_t F); static inline void wait_sync(char *thread_name) { - printf( "waiting for sync (%s,%p,%p,%p)\n",thread_name,&sync_var,&sync_cond,&sync_mutex); + printf( "waiting for sync (%s,%d/%p,%p,%p)\n",thread_name,sync_var,&sync_var,&sync_cond,&sync_mutex); pthread_mutex_lock( &sync_mutex ); while (sync_var<0) diff --git a/openair1/PHY/defs_eNB.h b/openair1/PHY/defs_eNB.h index 8ae86c8500..5756781f36 100644 --- a/openair1/PHY/defs_eNB.h +++ b/openair1/PHY/defs_eNB.h @@ -208,11 +208,11 @@ typedef struct RU_proc_t_s { pthread_cond_t cond_synch; /// condition variable for asynch RX/TX thread pthread_cond_t cond_asynch_rxtx; - /// condition varible for RU RX FEP thread + /// condition variable for RU RX FEP thread pthread_cond_t cond_fep; - /// condition varible for RU TX FEP thread + /// condition variable for RU TX FEP thread pthread_cond_t cond_feptx; - /// condition varible for emulated RF + /// condition variable for emulated RF pthread_cond_t cond_emulateRF; /// condition variable for eNB signal pthread_cond_t cond_eNBs; @@ -252,9 +252,38 @@ typedef struct RU_proc_t_s { int num_slaves; /// array of pointers to slaves struct RU_proc_t_s **slave_proc; +#ifdef PHY_TX_THREAD + /// pthread structure for PRACH thread + pthread_t pthread_phy_tx; + pthread_mutex_t mutex_phy_tx; + pthread_cond_t cond_phy_tx; + /// \internal This variable is protected by \ref mutex_phy_tx. + int instance_cnt_phy_tx; + /// frame to act upon for transmission + int frame_phy_tx; + /// subframe to act upon for transmission + int subframe_phy_tx; + /// timestamp to send to "slave rru" + openair0_timestamp timestamp_phy_tx; + /// pthread structure for RF TX thread + pthread_t pthread_rf_tx; + pthread_mutex_t mutex_rf_tx; + pthread_cond_t cond_rf_tx; + /// \internal This variable is protected by \ref mutex_rf_tx. + int instance_cnt_rf_tx; +#endif +#if defined(PRE_SCD_THREAD) + pthread_t pthread_pre_scd; + /// condition variable for time processing thread + pthread_cond_t cond_pre_scd; + /// mutex for time thread + pthread_mutex_t mutex_pre_scd; + int instance_pre_scd; +#endif /// pipeline ready state int ru_rx_ready; int ru_tx_ready; + int emulate_rf_busy; } RU_proc_t; typedef enum { diff --git a/openair1/PHY/impl_defs_lte.h b/openair1/PHY/impl_defs_lte.h index 8ffe1fabf4..d649dce100 100644 --- a/openair1/PHY/impl_defs_lte.h +++ b/openair1/PHY/impl_defs_lte.h @@ -33,11 +33,6 @@ #ifndef __PHY_IMPLEMENTATION_DEFS_LTE_H__ #define __PHY_IMPLEMENTATION_DEFS_LTE_H__ - - - - - typedef struct { /// \brief Holds the transmit data in the frequency domain. /// - first index: rx antenna [0..nb_antennas_rx[ @@ -73,9 +68,4 @@ typedef struct { int32_t **tdd_calib_coeffs; } RU_COMMON; - - - - - #endif diff --git a/openair1/PHY/impl_defs_top.h b/openair1/PHY/impl_defs_top.h index 8b31b60162..df1f6f4693 100644 --- a/openair1/PHY/impl_defs_top.h +++ b/openair1/PHY/impl_defs_top.h @@ -287,9 +287,9 @@ typedef struct { #ifndef malloc16 # ifdef __AVX2__ -# define malloc16(x) memalign(32,x) +# define malloc16(x) memalign(32,x+32) # else -# define malloc16(x) memalign(16,x) +# define malloc16(x) memalign(16,x+16) # endif #endif #define free16(y,x) free(y) @@ -306,9 +306,9 @@ typedef struct { static inline void* malloc16_clear( size_t size ) { #ifdef __AVX2__ - void* ptr = memalign(32, size); + void* ptr = memalign(32, size+32); #else - void* ptr = memalign(16, size); + void* ptr = memalign(16, size+16); #endif DevAssert(ptr); memset( ptr, 0, size ); diff --git a/openair1/PHY/phy_vars.h b/openair1/PHY/phy_vars.h index c556453e77..ea7d2e5033 100644 --- a/openair1/PHY/phy_vars.h +++ b/openair1/PHY/phy_vars.h @@ -38,7 +38,6 @@ int16_t *primary_synch1_time; int16_t *primary_synch2_time; -#include "PHY/CODING/coding_vars.h" #include "PHY/LTE_TRANSPORT/transport_vars.h" #include "PHY/MODULATION/modulation_vars.h" diff --git a/openair1/PHY/phy_vars_ue.h b/openair1/PHY/phy_vars_ue.h index c6937c8af3..0d29b03f63 100644 --- a/openair1/PHY/phy_vars_ue.h +++ b/openair1/PHY/phy_vars_ue.h @@ -39,7 +39,6 @@ int16_t *primary_synch1_time; int16_t *primary_synch2_time; -#include "PHY/CODING/coding_vars.h" //PHY_VARS *PHY_vars; #ifndef OCP_FRAMEWORK diff --git a/openair1/SCHED/fapi_l1.c b/openair1/SCHED/fapi_l1.c index 23213c44df..d61ec6c632 100644 --- a/openair1/SCHED/fapi_l1.c +++ b/openair1/SCHED/fapi_l1.c @@ -154,31 +154,35 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_pr int harq_pid; UE_id = find_dlsch(rel8->rnti,eNB,SEARCH_EXIST_OR_FREE); - AssertFatal(UE_id!=-1,"no free or exiting dlsch_context\n"); - AssertFatal(UE_id= %d(NUMBER_OF_UE_MAX)\n",UE_id,NUMBER_OF_UE_MAX); + if( (UE_id<0) || (UE_id>=NUMBER_OF_UE_MAX) ){ + LOG_E(PHY,"illegal UE_id found!!! rnti %04x UE_id %d\n",rel8->rnti,UE_id); + return; + } + //AssertFatal(UE_id!=-1,"no free or exiting dlsch_context\n"); + //AssertFatal(UE_id= %d(NUMBER_OF_UE_MAX)\n",UE_id,NUMBER_OF_UE_MAX); dlsch0 = eNB->dlsch[UE_id][0]; dlsch1 = eNB->dlsch[UE_id][1]; #if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) - if ((rel13->pdsch_payload_type < 2) && (rel13->ue_type>0)) dlsch0->harq_ids[subframe] = 0; + if ((rel13->pdsch_payload_type < 2) && (rel13->ue_type>0)) dlsch0->harq_ids[frame%2][subframe] = 0; #endif - harq_pid = dlsch0->harq_ids[subframe]; + harq_pid = dlsch0->harq_ids[frame%2][subframe]; AssertFatal((harq_pid>=0) && (harq_pid<8),"harq_pid %d not in 0...7 frame:%d subframe:%d subframe(TX):%d rnti:%x UE_id:%d dlsch0[harq_ids:%d:%d:%d:%d:%d:%d:%d:%d:%d:%d]\n", harq_pid, frame,subframe, proc->subframe_tx,rel8->rnti,UE_id, - dlsch0->harq_ids[0], - dlsch0->harq_ids[1], - dlsch0->harq_ids[2], - dlsch0->harq_ids[3], - dlsch0->harq_ids[4], - dlsch0->harq_ids[5], - dlsch0->harq_ids[6], - dlsch0->harq_ids[7], - dlsch0->harq_ids[8], - dlsch0->harq_ids[9] + dlsch0->harq_ids[frame%2][0], + dlsch0->harq_ids[frame%2][1], + dlsch0->harq_ids[frame%2][2], + dlsch0->harq_ids[frame%2][3], + dlsch0->harq_ids[frame%2][4], + dlsch0->harq_ids[frame%2][5], + dlsch0->harq_ids[frame%2][6], + dlsch0->harq_ids[frame%2][7], + dlsch0->harq_ids[frame%2][8], + dlsch0->harq_ids[frame%2][9] ); dlsch0_harq = dlsch0->harq_processes[harq_pid]; dlsch1_harq = dlsch1->harq_processes[harq_pid]; @@ -187,11 +191,19 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_pr // compute DL power control parameters eNB->pdsch_config_dedicated[UE_id].p_a = rel8->pa; +#ifdef PHY_TX_THREAD + if (dlsch0->active[proc->subframe_tx]){ +# else if (dlsch0->active){ +#endif computeRhoA_eNB(rel8->pa, dlsch0,dlsch0_harq->dl_power_off, eNB->frame_parms.nb_antenna_ports_eNB); computeRhoB_eNB(rel8->pa,eNB->frame_parms.pdsch_config_common.p_b,eNB->frame_parms.nb_antenna_ports_eNB,dlsch0,dlsch0_harq->dl_power_off); } +#ifdef PHY_TX_THREAD + if (dlsch1->active[proc->subframe_tx]){ +#else if (dlsch1->active){ +#endif computeRhoA_eNB(rel8->pa, dlsch1,dlsch1_harq->dl_power_off, eNB->frame_parms.nb_antenna_ports_eNB); computeRhoB_eNB(rel8->pa,eNB->frame_parms.pdsch_config_common.p_b,eNB->frame_parms.nb_antenna_ports_eNB,dlsch1,dlsch1_harq->dl_power_off); } @@ -199,10 +211,17 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_pr dlsch0_harq->pdsch_start = eNB->pdcch_vars[subframe & 1].num_pdcch_symbols; if (dlsch0_harq->round==0) { //get pointer to SDU if this a new SDU - AssertFatal(sdu!=NULL,"NFAPI: SFN/SF:%04d%d proc:TX:[frame %d subframe %d]: programming dlsch for round 0, rnti %x, UE_id %d, harq_pid %d : sdu is null for pdu_index %d dlsch0_harq[round:%d SFN/SF:%d%d pdu:%p mcs:%d ndi:%d pdschstart:%d]\n", - frame,subframe, - proc->frame_tx,proc->subframe_tx,rel8->rnti,UE_id,harq_pid, - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index,dlsch0_harq->round,dlsch0_harq->frame,dlsch0_harq->subframe,dlsch0_harq->pdu,dlsch0_harq->mcs,dlsch0_harq->ndi,dlsch0_harq->pdsch_start); + if(sdu == NULL) { + LOG_E(PHY,"NFAPI: SFN/SF:%04d%d proc:TX:[frame %d subframe %d]: programming dlsch for round 0, rnti %x, UE_id %d, harq_pid %d : sdu is null for pdu_index %d dlsch0_harq[round:%d SFN/SF:%d%d pdu:%p mcs:%d ndi:%d pdschstart:%d]\n", + frame,subframe, + proc->frame_tx,proc->subframe_tx,rel8->rnti,UE_id,harq_pid, + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index,dlsch0_harq->round,dlsch0_harq->frame,dlsch0_harq->subframe,dlsch0_harq->pdu,dlsch0_harq->mcs,dlsch0_harq->ndi,dlsch0_harq->pdsch_start); + return; + } + //AssertFatal(sdu!=NULL,"NFAPI: SFN/SF:%04d%d proc:TX:[frame %d subframe %d]: programming dlsch for round 0, rnti %x, UE_id %d, harq_pid %d : sdu is null for pdu_index %d dlsch0_harq[round:%d SFN/SF:%d%d pdu:%p mcs:%d ndi:%d pdschstart:%d]\n", + // frame,subframe, + // proc->frame_tx,proc->subframe_tx,rel8->rnti,UE_id,harq_pid, + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index,dlsch0_harq->round,dlsch0_harq->frame,dlsch0_harq->subframe,dlsch0_harq->pdu,dlsch0_harq->mcs,dlsch0_harq->ndi,dlsch0_harq->pdsch_start); if (rel8->rnti != 0xFFFF) LOG_D(PHY,"NFAPI: SFN/SF:%04d%d proc:TX:[frame %d, subframe %d]: programming dlsch for round 0, rnti %x, UE_id %d, harq_pid %d\n", frame,subframe,proc->frame_tx,proc->subframe_tx,rel8->rnti,UE_id,harq_pid); if (codeword_index == 0) dlsch0_harq->pdu = sdu; @@ -215,7 +234,11 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_pr } #if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) +#ifdef PHY_TX_THREAD + dlsch0_harq->sib1_br_flag=0; +#else dlsch0->sib1_br_flag=0; +#endif if ((rel13->pdsch_payload_type <2) && (rel13->ue_type>0)) { // this is a BR/CE UE and SIB1-BR/SI-BR dlsch0->rnti = 0xFFFF; @@ -223,7 +246,11 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_pr dlsch0->Mdlharq = 4; dlsch0->Nsoft = 25344; +#ifdef PHY_TX_THREAD + if (rel13->pdsch_payload_type == 0) dlsch0_harq->sib1_br_flag=1; +#else if (rel13->pdsch_payload_type == 0) dlsch0->sib1_br_flag=1; +#endif // configure PDSCH switch (eNB->frame_parms.N_RB_DL) { @@ -250,7 +277,11 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_pr dlsch0_harq->rb_alloc[3] = localRIV2alloc_LUT100_3[rel8->resource_block_coding]; } +#ifdef PHY_TX_THREAD + dlsch0->active[proc->subframe_tx]= 1; +#else dlsch0->active = 1; +#endif dlsch0_harq->nb_rb = 6; dlsch0_harq->vrb_type = LOCALIZED; @@ -265,12 +296,21 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_pr dlsch0_harq->codeword = 0; dlsch0_harq->pdsch_start = rel10->pdsch_start; } +#ifdef PHY_TX_THREAD + dlsch0_harq->i0 = rel13->initial_transmission_sf_io; +#else dlsch0->i0 = rel13->initial_transmission_sf_io; #endif +#endif + #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) LOG_D(PHY,"dlsch->i0:%04x dlsch0_harq[pdsch_start:%d nb_rb:%d vrb_type:%d rvidx:%d Nl:%d mimo_mode:%d dl_power_off:%d round:%d status:%d TBS:%d Qm:%d codeword:%d rb_alloc:%d] rel8[length:%d]\n", +#ifdef PHY_TX_THREAD + dlsch0_harq->i0, +#else dlsch0->i0, +#endif dlsch0_harq->pdsch_start, dlsch0_harq->nb_rb, dlsch0_harq->vrb_type, dlsch0_harq->rvidx, dlsch0_harq->Nl, dlsch0_harq->mimo_mode, dlsch0_harq->dl_power_off, dlsch0_harq->round, dlsch0_harq->status, dlsch0_harq->TBS, dlsch0_harq->Qm, dlsch0_harq->codeword, dlsch0_harq->rb_alloc[0], rel8->length ); @@ -303,6 +343,10 @@ void handle_ulsch_harq_pdu( ulsch_harq->subframe = subframe; ulsch_harq->O_ACK = harq_information->harq_information_rel10.harq_size; ulsch->beta_offset_harqack_times8 = to_beta_offset_harqack[harq_information->harq_information_rel10.delta_offset_harq]; + if (eNB->frame_parms.frame_type == TDD) { + if (harq_information->harq_information_rel10.ack_nack_mode==0) //bundling + ulsch->bundling = 1; + } } uint16_t to_beta_offset_ri[16]={9,13,16,20,25,32,40,50,64,80,101,127,160,0,0,0}; @@ -527,8 +571,7 @@ void handle_nfapi_ul_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, uint16_t frame,uint8_t subframe,uint8_t srs_present) { nfapi_ul_config_ulsch_pdu_rel8_t *rel8 = &ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8; - - int8_t UE_id; + int16_t UE_id; // check if we have received a dci for this ue and ulsch descriptor is configured @@ -537,14 +580,14 @@ void handle_nfapi_ul_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, "No existing UE ULSCH for rnti %x\n",rel8->rnti); LOG_D(PHY,"Applying UL config for UE %d, rnti %x in frame %d, subframe %d, modulation %d, rvidx %d\n", UE_id,rel8->rnti,frame,subframe,rel8->modulation_type,rel8->redundancy_version); - fill_ulsch(eNB,&ul_config_pdu->ulsch_pdu,frame,subframe); + fill_ulsch(eNB,UE_id,&ul_config_pdu->ulsch_pdu,frame,subframe); } else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_ULSCH_HARQ_PDU_TYPE) { AssertFatal((UE_id = find_ulsch(ul_config_pdu->ulsch_harq_pdu.ulsch_pdu.ulsch_pdu_rel8.rnti,eNB,SEARCH_EXIST_OR_FREE))>=0, "No available UE ULSCH for rnti %x\n",ul_config_pdu->ulsch_harq_pdu.ulsch_pdu.ulsch_pdu_rel8.rnti); - fill_ulsch(eNB,&ul_config_pdu->ulsch_harq_pdu.ulsch_pdu,frame,subframe); + fill_ulsch(eNB,UE_id,&ul_config_pdu->ulsch_harq_pdu.ulsch_pdu,frame,subframe); handle_ulsch_harq_pdu(eNB, UE_id, ul_config_pdu, &ul_config_pdu->ulsch_harq_pdu.harq_information, frame, subframe); @@ -553,7 +596,7 @@ void handle_nfapi_ul_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, AssertFatal((UE_id = find_ulsch(ul_config_pdu->ulsch_cqi_ri_pdu.ulsch_pdu.ulsch_pdu_rel8.rnti, eNB,SEARCH_EXIST_OR_FREE))>=0, "No available UE ULSCH for rnti %x\n",ul_config_pdu->ulsch_cqi_ri_pdu.ulsch_pdu.ulsch_pdu_rel8.rnti); - fill_ulsch(eNB,&ul_config_pdu->ulsch_cqi_ri_pdu.ulsch_pdu,frame,subframe); + fill_ulsch(eNB,UE_id,&ul_config_pdu->ulsch_cqi_ri_pdu.ulsch_pdu,frame,subframe); handle_ulsch_cqi_ri_pdu(eNB,UE_id,ul_config_pdu,frame,subframe); } @@ -561,7 +604,7 @@ void handle_nfapi_ul_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, AssertFatal((UE_id = find_ulsch(ul_config_pdu->ulsch_cqi_harq_ri_pdu.ulsch_pdu.ulsch_pdu_rel8.rnti, eNB,SEARCH_EXIST_OR_FREE))>=0, "No available UE ULSCH for rnti %x\n",ul_config_pdu->ulsch_cqi_harq_ri_pdu.ulsch_pdu.ulsch_pdu_rel8.rnti); - fill_ulsch(eNB,&ul_config_pdu->ulsch_cqi_harq_ri_pdu.ulsch_pdu,frame,subframe); + fill_ulsch(eNB,UE_id,&ul_config_pdu->ulsch_cqi_harq_ri_pdu.ulsch_pdu,frame,subframe); handle_ulsch_cqi_harq_ri_pdu(eNB,UE_id,ul_config_pdu,frame,subframe); handle_ulsch_harq_pdu(eNB, UE_id, ul_config_pdu, &ul_config_pdu->ulsch_cqi_harq_ri_pdu.harq_information, frame, subframe); @@ -622,7 +665,6 @@ void schedule_response(Sched_Rsp_t *Sched_INFO) AssertFatal(RC.eNB[Mod_id][CC_id]!=NULL,"RC.eNB[%d][%d] is null\n",Mod_id,CC_id); - eNB = RC.eNB[Mod_id][CC_id]; fp = &eNB->frame_parms; proc = &eNB->proc.proc_rxtx[0]; @@ -652,14 +694,18 @@ void schedule_response(Sched_Rsp_t *Sched_INFO) eNB->pdcch_vars[subframe&1].num_pdcch_symbols = number_pdcch_ofdm_symbols; eNB->pdcch_vars[subframe&1].num_dci = 0; - LOG_D(PHY,"NFAPI: Sched_INFO:SFN/SF:%04d%d DL_req:SFN/SF:%04d%d:dl_pdu:%d tx_req:SFN/SF:%04d%d:pdus:%d hi_dci0:SFN/SF:%04d%d:pdus:%d ul_cfg:SFN/SF:%04d%d:pdus:%d num_pdcch_symbols:%d\n", - frame,subframe, - NFAPI_SFNSF2SFN(DL_req->sfn_sf),NFAPI_SFNSF2SF(DL_req->sfn_sf),number_dl_pdu, - NFAPI_SFNSF2SFN(TX_req->sfn_sf),NFAPI_SFNSF2SF(TX_req->sfn_sf),TX_req->tx_request_body.number_of_pdus, - NFAPI_SFNSF2SFN(HI_DCI0_req->sfn_sf),NFAPI_SFNSF2SF(HI_DCI0_req->sfn_sf),number_hi_dci0_pdu, - UL_req!=NULL ? NFAPI_SFNSF2SFN(UL_req->sfn_sf) : 0, - UL_req!=NULL ? NFAPI_SFNSF2SF(UL_req->sfn_sf) : 0,number_ul_pdu, - eNB->pdcch_vars[subframe&1].num_pdcch_symbols); + LOG_D(PHY,"NFAPI: Sched_INFO:SFN/SF:%04d%d DL_req:SFN/SF:%04d%d:dl_pdu:%d tx_req:SFN/SF:%04d%d:pdus:%d\n", + frame,subframe, + NFAPI_SFNSF2SFN(DL_req->sfn_sf),NFAPI_SFNSF2SF(DL_req->sfn_sf),number_dl_pdu, + NFAPI_SFNSF2SFN(TX_req->sfn_sf),NFAPI_SFNSF2SF(TX_req->sfn_sf),TX_req->tx_request_body.number_of_pdus + ); + LOG_D(PHY,"NFAPI: hi_dci0:SFN/SF:%04d%d:pdus:%d\n", + NFAPI_SFNSF2SFN(HI_DCI0_req->sfn_sf),NFAPI_SFNSF2SF(HI_DCI0_req->sfn_sf),number_hi_dci0_pdu + ); + if(UL_req!=NULL) + LOG_D(PHY,"NFAPI: ul_cfg:SFN/SF:%04d%d:pdus:%d num_pdcch_symbols:%d\n", + NFAPI_SFNSF2SFN(UL_req->sfn_sf),NFAPI_SFNSF2SF(UL_req->sfn_sf),number_ul_pdu, + eNB->pdcch_vars[subframe&1].num_pdcch_symbols); int do_oai =0; int dont_send =0; diff --git a/openair1/SCHED/phy_procedures_lte_common.c b/openair1/SCHED/phy_procedures_lte_common.c index de374110c0..56639c86d3 100644 --- a/openair1/SCHED/phy_procedures_lte_common.c +++ b/openair1/SCHED/phy_procedures_lte_common.c @@ -336,6 +336,29 @@ unsigned char ul_ACK_subframe2_dl_subframe(LTE_DL_FRAME_PARMS *frame_parms,unsig return(0); } +int ul_ACK_subframe2_dl_frame(LTE_DL_FRAME_PARMS *frame_parms,int frame, unsigned char subframe,unsigned char subframe_tx) +{ + + if (frame_parms->frame_type == FDD) { + return (((subframe_tx > subframe ) ? frame-1 : frame)+1024)%1024; + } else { + switch (frame_parms->tdd_config) { + case 1: + return(((subframe_tx > subframe ) ? frame-1 : frame)+1024)%1024; + break; + case 3: + //TODO + break; + case 4: + //TODO + break; + } + } + + return(0); +} + + unsigned char ul_ACK_subframe2_M(LTE_DL_FRAME_PARMS *frame_parms,unsigned char subframe) { @@ -343,6 +366,23 @@ unsigned char ul_ACK_subframe2_M(LTE_DL_FRAME_PARMS *frame_parms,unsigned char s return(1); } else { switch (frame_parms->tdd_config) { + case 1: + return 1; // don't ACK special subframe for now + if (subframe == 2) { // ACK subframes 5 and 6 + return(2); + } else if (subframe == 3) { // ACK subframe 9 + return(1); // To be updated + } else if (subframe == 7) { // ACK subframes 0 and 1 + return(2); // To be updated + } else if (subframe == 8) { // ACK subframe 4 + return(1); // To be updated + } else { + LOG_E(PHY,"phy_procedures_lte_common.c/subframe2_dl_harq_pid: illegal subframe %d for tdd_config %d\n", + subframe,frame_parms->tdd_config); + return(0); + } + + break; case 3: if (subframe == 2) { // ACK subframes 5 and 6 return(2); // should be 3 @@ -381,23 +421,6 @@ unsigned char ul_ACK_subframe2_M(LTE_DL_FRAME_PARMS *frame_parms,unsigned char s } break; - - case 1: - if (subframe == 2) { // ACK subframes 5 and 6 - return(2); - } else if (subframe == 3) { // ACK subframe 9 - return(1); // To be updated - } else if (subframe == 7) { // ACK subframes 0 and 1 - return(2); // To be updated - } else if (subframe == 8) { // ACK subframe 4 - return(1); // To be updated - } else { - LOG_E(PHY,"phy_procedures_lte_common.c/subframe2_dl_harq_pid: illegal subframe %d for tdd_config %d\n", - subframe,frame_parms->tdd_config); - return(0); - } - - break; } } @@ -428,7 +451,7 @@ uint8_t get_reset_ack(LTE_DL_FRAME_PARMS *frame_parms, o_ACK[cw_idx] = harq_ack[subframe_dl0].ack; status = harq_ack[subframe_dl0].send_harq_status; - //LOG_I(PHY,"dl subframe %d send_harq_status %d cw_idx %d, reset %d\n",subframe_dl0, status, cw_idx, do_reset); + LOG_D(PHY,"dl subframe %d send_harq_status %d cw_idx %d, reset %d\n",subframe_dl0, status, cw_idx, do_reset); if(do_reset) harq_ack[subframe_dl0].send_harq_status = 0; //printf("get_ack: Getting ACK/NAK for PDSCH (subframe %d) => %d\n",subframe_dl,o_ACK[0]); @@ -608,7 +631,7 @@ uint8_t get_reset_ack(LTE_DL_FRAME_PARMS *frame_parms, pN_bundled[0] = harq_ack[subframe_rx].vDAI_UL; status = harq_ack[subframe_dl0].send_harq_status + harq_ack[subframe_dl1].send_harq_status + harq_ack[subframe_dl2].send_harq_status + harq_ack[subframe_dl3].send_harq_status; - LOG_I(PHY,"TDD Config3 UL Sfn %d, dl Sfn0 %d status %d o_Ack %d, dl Sfn1 %d status %d o_Ack %d dl Sfn2 %d status %d o_Ack %d dl Sfn3 %d status %d o_Ack %d subframe_rx %d N_bundled %d status %d\n", + LOG_D(PHY,"TDD Config3 UL Sfn %d, dl Sfn0 %d status %d o_Ack %d, dl Sfn1 %d status %d o_Ack %d dl Sfn2 %d status %d o_Ack %d dl Sfn3 %d status %d o_Ack %d subframe_rx %d N_bundled %d status %d\n", subframe_tx, subframe_dl0, harq_ack[subframe_dl0].send_harq_status,harq_ack[subframe_dl0].ack, subframe_dl1, harq_ack[subframe_dl1].send_harq_status,harq_ack[subframe_dl1].ack, subframe_dl2, harq_ack[subframe_dl2].send_harq_status,harq_ack[subframe_dl2].ack, diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index c8d8684e93..3cf32423e0 100644 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -37,10 +37,8 @@ #include "PHY/LTE_ESTIMATION/lte_estimation.h" #include "nfapi_interface.h" #include "fapi_l1.h" -#include "UTIL/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" - -#include "T.h" +#include "common/utils/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "assertions.h" #include "msc.h" @@ -55,7 +53,7 @@ extern uint8_t nfapi_mode; -int16_t get_hundred_times_delta_IF_eNB(PHY_VARS_eNB *eNB,uint8_t UE_id,uint8_t harq_pid, uint8_t bw_factor) +int16_t get_hundred_times_delta_IF_eNB(PHY_VARS_eNB *eNB,uint16_t UE_id,uint8_t harq_pid, uint8_t bw_factor) { uint32_t Nre,sumKr,MPR_x100,Kr,r; @@ -195,10 +193,20 @@ void common_signal_procedures (PHY_VARS_eNB *eNB,int frame, int subframe) { // generate Cell-Specific Reference Signals for both slots VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_RS_TX,1); + + if(subframe_select(fp,subframe) == SF_S) + generate_pilots_slot(eNB, + txdataF, + AMP, + subframe<<1,1); + else generate_pilots_slot(eNB, txdataF, AMP, subframe<<1,0); + + // check that 2nd slot is for DL + // check that 2nd slot is for DL if (subframe_select(fp,subframe) == SF_DL) generate_pilots_slot(eNB, @@ -314,7 +322,6 @@ void pdsch_procedures(PHY_VARS_eNB *eNB, int frame=proc->frame_tx; int subframe=proc->subframe_tx; LTE_DL_eNB_HARQ_t *dlsch_harq=dlsch->harq_processes[harq_pid]; - int input_buffer_length = dlsch_harq->TBS/8; LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms; if (dlsch->rnti == 0x02) {//frame < 200) { @@ -322,7 +329,7 @@ void pdsch_procedures(PHY_VARS_eNB *eNB, LOG_D(PHY, "[eNB %"PRIu8"][PDSCH %"PRIx16"/%"PRIu8"] Frame %d, subframe %d: Generating PDSCH/DLSCH with input size = %"PRIu16", pdsch_start %d, G %d, nb_rb %"PRIu16", rb0 %x, rb1 %x, TBS %"PRIu16", pmi_alloc %"PRIx64", rv %"PRIu8" (round %"PRIu8")\n", eNB->Mod_id, dlsch->rnti,harq_pid, - frame, subframe, input_buffer_length, dlsch_harq->pdsch_start, + frame, subframe, dlsch_harq->TBS/8, dlsch_harq->pdsch_start, get_G(fp, dlsch_harq->nb_rb, dlsch_harq->rb_alloc, @@ -346,7 +353,7 @@ void pdsch_procedures(PHY_VARS_eNB *eNB, NULL,0, "%05u:%02u PDSCH/DLSCH input size = %"PRIu16", G %d, nb_rb %"PRIu16", TBS %"PRIu16", pmi_alloc %"PRIx16", rv %"PRIu8" (round %"PRIu8")", frame, subframe, - input_buffer_length, + dlsch_harq->TBS/8, get_G(fp, dlsch_harq->nb_rb, dlsch_harq->rb_alloc, @@ -405,7 +412,6 @@ void pdsch_procedures(PHY_VARS_eNB *eNB, &eNB->dlsch_turbo_encoding_wakeup_stats1, &eNB->dlsch_interleaving_stats); stop_meas(&eNB->dlsch_encoding_stats); - //////////////////////////////////////////////////******************************************* if(eNB->dlsch_encoding_stats.diff_now>500*3000 && opp_enabled == 1) { print_meas_now(&eNB->dlsch_encoding_stats,"total coding",stderr); @@ -435,15 +441,19 @@ void pdsch_procedures(PHY_VARS_eNB *eNB, dlsch_modulation(eNB, eNB->common_vars.txdataF, AMP, + frame, subframe, dlsch_harq->pdsch_start, dlsch, dlsch1); - stop_meas(&eNB->dlsch_modulation_stats); + stop_meas(&eNB->dlsch_modulation_stats); } - +#ifdef PHY_TX_THREAD + dlsch->active[subframe] = 0; +#else dlsch->active = 0; +#endif dlsch_harq->round++; LOG_D(PHY,"Generating DLSCH/PDSCH dlsch_harq[round:%d]\n",dlsch_harq->round); @@ -460,7 +470,7 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB, int subframe=proc->subframe_tx; uint32_t i,aa; uint8_t harq_pid; - int8_t UE_id=0; + int16_t UE_id=0; uint8_t num_pdcch_symbols=0; uint8_t num_dci=0; uint8_t ul_subframe; @@ -468,12 +478,11 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB, LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms; LTE_UL_eNB_HARQ_t *ulsch_harq; - int offset = eNB->CC_id;//proc == &eNB->proc.proc_rxtx[0] ? 0 : 1; if ((fp->frame_type == TDD) && (subframe_select(fp,subframe)==SF_UL)) return; - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_TX+offset,1); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_TX+(eNB->CC_id),1); if (do_meas==1) start_meas(&eNB->phy_proc_tx); // clear the transmit data array for the current subframe @@ -582,10 +591,14 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB, if ((dlsch0)&& (dlsch0->rnti>0)&& +#ifdef PHY_TX_THREAD + (dlsch0->active[subframe] == 1)) { +#else (dlsch0->active == 1)) { +#endif // get harq_pid - harq_pid = dlsch0->harq_ids[subframe]; + harq_pid = dlsch0->harq_ids[frame%2][subframe]; AssertFatal(harq_pid>=0,"harq_pid is negative\n"); if (harq_pid>=8) @@ -610,8 +623,12 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB, else if ((dlsch0)&& - (dlsch0->rnti>0)&& - (dlsch0->active == 0)) { + (dlsch0->rnti>0)&& +#ifdef PHY_TX_THREAD + (dlsch0->active[subframe] == 0)) { +#else + (dlsch0->active == 0)) { +#endif // clear subframe TX flag since UE is not scheduled for PDSCH in this subframe (so that we don't look for PUCCH later) dlsch0->subframe_tx[subframe]=0; @@ -627,7 +644,7 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB, AMP); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_GENERATE_PHICH,0); - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_TX+offset,0); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_TX+(eNB->CC_id),0); if (do_meas==1) stop_meas(&eNB->phy_proc_tx); } @@ -682,7 +699,7 @@ void fill_sr_indication(PHY_VARS_eNB *eNB,uint16_t rnti,int frame,int subframe,u pdu->rx_ue_information.tl.tag = NFAPI_RX_UE_INFORMATION_TAG; pdu->rx_ue_information.rnti = rnti; - int SNRtimes10 = dB_fixed_times10(stat) - 200;//(10*eNB->measurements.n0_power_dB[0]); + int SNRtimes10 = dB_fixed_times10(stat) - 300;//(10*eNB->measurements.n0_power_dB[0]); pdu->ul_cqi_information.tl.tag = NFAPI_UL_CQI_INFORMATION_TAG; @@ -707,7 +724,6 @@ void uci_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) LTE_eNB_UCI *uci; uint16_t tdd_multiplexing_mask=0; - for (i=0;iuci_vars[i]; @@ -745,35 +761,36 @@ void uci_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) LOG_E(PHY,"Unknown number for N_RB_UL %d\n",fp->N_RB_UL); break; } - + SR_payload = 0; switch (uci->type) { case SR: case HARQ_SR: metric_SR = rx_pucch(eNB, - uci->pucch_fmt, - i, - uci->n_pucch_1_0_sr[0], - 0, // n2_pucch - uci->srs_active, // shortened format - &SR_payload, - frame, - subframe, - PUCCH1_THRES); - LOG_D(PHY,"[eNB %d][SR %x] Frame %d subframe %d Checking SR is %d (SR n1pucch is %d)\n", + uci->pucch_fmt, + i, + uci->n_pucch_1_0_sr[0], + 0, // n2_pucch + uci->srs_active, // shortened format + &SR_payload, + frame, + subframe, + PUCCH1_THRES); + LOG_D(PHY,"[eNB %d][SR %x] Frame %d subframe %d Checking SR is %d (uci.type %d SR n1pucch is %d)\n", eNB->Mod_id, uci->rnti, frame, subframe, SR_payload, + uci->type, uci->n_pucch_1_0_sr[0]); if (uci->type == SR) { if (SR_payload == 1) { fill_sr_indication(eNB,uci->rnti,frame,subframe,metric_SR); - continue; + break; } else { - continue; + break; } } case HARQ: @@ -822,14 +839,44 @@ void uci_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) uci->rnti, frame,subframe, pucch_b0b1[0][0],metric[0]); - uci->stat = metric[0]; fill_uci_harq_indication(eNB,uci,frame,subframe,pucch_b0b1[0],0,0xffff); } else { // frame_type == TDD + LOG_D(PHY,"Frame %d Subframe %d Demodulating PUCCH (UCI %d) for ACK/NAK (uci->pucch_fmt %d,uci->type %d.uci->frame %d, uci->subframe %d): n1_pucch0 %d SR_payload %d\n", + frame,subframe,i, + uci->pucch_fmt,uci->type, + uci->frame,uci->subframe,uci->n_pucch_1[0][0], + SR_payload); +#if 1 + metric[0] = rx_pucch(eNB, + uci->pucch_fmt, + i, + uci->n_pucch_1[0][0], + 0, //n2_pucch + uci->srs_active, // shortened format + pucch_b0b1[0], + frame, + subframe, + PUCCH1a_THRES); + if (uci->type==HARQ_SR && metric[0] > metric_SR) SR_payload = 0; + else if (SR_payload == 1) fill_sr_indication(eNB,uci->rnti,frame,subframe,metric_SR); - + if (uci->type==HARQ_SR && metric[0] <= metric_SR) { + SR_payload = 1; + metric[0] = rx_pucch(eNB, + pucch_format1b, + i, + uci->n_pucch_1_0_sr[0], + 0, //n2_pucch + uci->srs_active, // shortened format + pucch_b0b1[0], + frame, + subframe, + PUCCH1a_THRES); + } +#else // if SR was detected, use the n1_pucch from SR if (SR_payload==1) { @@ -876,22 +923,25 @@ void uci_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) } - - +#ifdef DEBUG_PHY_PROC + LOG_D(PHY,"RNTI %x type %d SR_payload %d Frame %d Subframe %d pucch_b0b1[0][0] %d pucch_b0b1[0][1] %d pucch_b0b1[1][0] %d pucch_b0b1[1][1] %d \n", + uci->rnti,uci->type,SR_payload,frame,subframe,pucch_b0b1[0][0],pucch_b0b1[0][1],pucch_b0b1[1][0],pucch_b0b1[1][1]); +#endif +#endif if (SR_payload == 1) { // this implements Table 7.3.1 from 36.213 if (pucch_b0b1[0][0] == 4) { // there isn't a likely transmission harq_ack[0] = 4; // DTX } - else if (pucch_b0b1[1][0] == 1 && pucch_b0b1[1][1] == 1) { // 1/4/7 ACKs + else if (pucch_b0b1[0][0] == 1 && pucch_b0b1[0][1] == 1) { // 1/4/7 ACKs harq_ack[0] = 1; } - else if (pucch_b0b1[1][0] == 1 && pucch_b0b1[1][1] != 1) { // 2/5/8 ACKs + else if (pucch_b0b1[0][0] == 1 && pucch_b0b1[0][1] != 1) { // 2/5/8 ACKs harq_ack[0] = 2; } - else if (pucch_b0b1[1][0] != 1 && pucch_b0b1[1][1] == 1) { // 3/6/9 ACKs + else if (pucch_b0b1[0][0] != 1 && pucch_b0b1[0][1] == 1) { // 3/6/9 ACKs harq_ack[0] = 3; } - else if (pucch_b0b1[1][0] != 1 && pucch_b0b1[1][1] != 1) { // 0 ACKs, or at least one DL assignment missed + else if (pucch_b0b1[0][0] != 1 && pucch_b0b1[0][1] != 1) { // 0 ACKs, or at least one DL assignment missed harq_ack[0] = 0; } uci->stat = metric[0]; @@ -1162,6 +1212,7 @@ void uci_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) harq_ack[0] = pucch_b0b1[0][0]; harq_ack[1] = pucch_b0b1[0][1]; uci->stat = metric[0]; + LOG_D(PHY,"bundling: (%d,%d), metric %d\n",harq_ack[0],harq_ack[1],uci->stat); fill_uci_harq_indication(eNB,uci,frame,subframe,harq_ack,0,0xffff); // special_bundling mode } @@ -1207,7 +1258,7 @@ void pusch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) const int subframe = proc->subframe_rx; const int frame = proc->frame_rx; - harq_pid = ((10*frame) + subframe)&7; + harq_pid = subframe2harq_pid(&eNB->frame_parms,frame,subframe); LOG_D(PHY,"Running eNB pusch procedures in %d.%d, harq_pid %d\n",frame,subframe,harq_pid); for (i=0; ifirst_rb; eNB->rb_mask_ul[rb2>>5] |= (1<<(rb2&31)); } - + LOG_D(PHY,"[eNB %d] frame %d, subframe %d: Scheduling ULSCH Reception for UE %d \n", eNB->Mod_id, frame, subframe, i); - + nPRS = fp->pusch_config_common.ul_ReferenceSignalsPUSCH.nPRS[subframe<<1]; - + ulsch->cyclicShift = (ulsch_harq->n_DMRS2 + - fp->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift + - nPRS)%12; - + fp->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift + + nPRS)%12; + AssertFatal(ulsch_harq->TBS>0,"illegal TBS %d\n",ulsch_harq->TBS); LOG_D(PHY, - "[eNB %d][PUSCH %d] Frame %d Subframe %d Demodulating PUSCH: dci_alloc %d, rar_alloc %d, round %d, first_rb %d, nb_rb %d, Qm %d, TBS %d, rv %d, cyclic_shift %d (n_DMRS2 %d, cyclicShift_common %d, ), O_ACK %d, beta_cqi %d \n", - eNB->Mod_id,harq_pid,frame,subframe, - ulsch_harq->dci_alloc, - ulsch_harq->rar_alloc, - ulsch_harq->round, - ulsch_harq->first_rb, - ulsch_harq->nb_rb, - ulsch_harq->Qm, - ulsch_harq->TBS, - ulsch_harq->rvidx, - ulsch->cyclicShift, - ulsch_harq->n_DMRS2, - fp->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift, - ulsch_harq->O_ACK, - ulsch->beta_offset_cqi_times8); - - start_meas(&eNB->ulsch_demodulation_stats); - - rx_ulsch(eNB,proc, i); - - stop_meas(&eNB->ulsch_demodulation_stats); - - start_meas(&eNB->ulsch_decoding_stats); - - ret = ulsch_decoding(eNB,proc, - i, - 0, // control_only_flag - ulsch_harq->V_UL_DAI, - ulsch_harq->nb_rb>20 ? 1 : 0); - - stop_meas(&eNB->ulsch_decoding_stats); - - LOG_D(PHY,"[eNB %d][PUSCH %d] frame %d subframe %d RNTI %x RX power (%d,%d) N0 (%d,%d) dB ACK (%d,%d), decoding iter %d ulsch_harq->cqi_crc_status:%d ackBits:%d ulsch_decoding_stats[t:%lld max:%lld]\n", + "[eNB %d][PUSCH %d] Frame %d Subframe %d Demodulating PUSCH: dci_alloc %d, rar_alloc %d, round %d, first_rb %d, nb_rb %d, Qm %d, TBS %d, rv %d, cyclic_shift %d (n_DMRS2 %d, cyclicShift_common %d, ), O_ACK %d, beta_cqi %d \n", + eNB->Mod_id,harq_pid,frame,subframe, + ulsch_harq->dci_alloc, + ulsch_harq->rar_alloc, + ulsch_harq->round, + ulsch_harq->first_rb, + ulsch_harq->nb_rb, + ulsch_harq->Qm, + ulsch_harq->TBS, + ulsch_harq->rvidx, + ulsch->cyclicShift, + ulsch_harq->n_DMRS2, + fp->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift, + ulsch_harq->O_ACK, + ulsch->beta_offset_cqi_times8); + + start_meas(&eNB->ulsch_demodulation_stats); + + rx_ulsch(eNB,proc, i); + + stop_meas(&eNB->ulsch_demodulation_stats); + + start_meas(&eNB->ulsch_decoding_stats); + + ret = ulsch_decoding(eNB,proc, + i, + 0, // control_only_flag + ulsch_harq->V_UL_DAI, + ulsch_harq->nb_rb>20 ? 1 : 0); + + stop_meas(&eNB->ulsch_decoding_stats); + + LOG_D(PHY,"[eNB %d][PUSCH %d] frame %d subframe %d RNTI %x RX power (%d,%d) N0 (%d,%d) dB ACK (%d,%d), decoding iter %d ulsch_harq->cqi_crc_status:%d ackBits:%d ulsch_decoding_stats[t:%lld max:%lld]\n", eNB->Mod_id,harq_pid, frame,subframe, ulsch->rnti, dB_fixed(eNB->pusch_vars[i]->ulsch_power[0]), dB_fixed(eNB->pusch_vars[i]->ulsch_power[1]), - 20,//eNB->measurements.n0_power_dB[0], - 20,//eNB->measurements.n0_power_dB[1], + 30,//eNB->measurements.n0_power_dB[0], + 30,//eNB->measurements.n0_power_dB[1], ulsch_harq->o_ACK[0], ulsch_harq->o_ACK[1], ret, ulsch_harq->cqi_crc_status, ulsch_harq->O_ACK, eNB->ulsch_decoding_stats.diff_now, eNB->ulsch_decoding_stats.max); - - //compute the expected ULSCH RX power (for the stats) - ulsch_harq->delta_TF = get_hundred_times_delta_IF_eNB(eNB,i,harq_pid, 0); // 0 means bw_factor is not considered - - if (ulsch_harq->cqi_crc_status == 1) { + + //compute the expected ULSCH RX power (for the stats) + ulsch_harq->delta_TF = get_hundred_times_delta_IF_eNB(eNB,i,harq_pid, 0); // 0 means bw_factor is not considered + + if (ulsch_harq->cqi_crc_status == 1) { #ifdef DEBUG_PHY_PROC - //if (((frame%10) == 0) || (frame < 50)) - print_CQI(ulsch_harq->o,ulsch_harq->uci_format,0,fp->N_RB_DL); + //if (((frame%10) == 0) || (frame < 50)) + print_CQI(ulsch_harq->o,ulsch_harq->uci_format,0,fp->N_RB_DL); #endif - + fill_ulsch_cqi_indication(eNB,frame,subframe, ulsch_harq, ulsch->rnti); + } - + if (ret == (1+MAX_TURBO_ITERATIONS)) { - T(T_ENB_PHY_ULSCH_UE_NACK, T_INT(eNB->Mod_id), T_INT(frame), T_INT(subframe), T_INT(ulsch->rnti), - T_INT(harq_pid)); - + T(T_ENB_PHY_ULSCH_UE_NACK, T_INT(eNB->Mod_id), T_INT(frame), T_INT(subframe), T_INT(ulsch->rnti), + T_INT(harq_pid)); + fill_crc_indication(eNB,i,frame,subframe,1); // indicate NAK to MAC fill_rx_indication(eNB,i,frame,subframe); // indicate SDU to MAC - + LOG_D(PHY,"[eNB %d][PUSCH %d] frame %d subframe %d UE %d Error receiving ULSCH, round %d/%d (ACK %d,%d)\n", eNB->Mod_id,harq_pid, frame,subframe, i, @@ -1316,24 +1368,24 @@ void pusch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) ulsch->Mlimit, ulsch_harq->o_ACK[0], ulsch_harq->o_ACK[1]); - + if (ulsch_harq->round >= 3) { - ulsch_harq->status = SCH_IDLE; - ulsch_harq->handled = 0; - ulsch->harq_mask &= ~(1 << harq_pid); - ulsch_harq->round = 0; - } + ulsch_harq->status = SCH_IDLE; + ulsch_harq->handled = 0; + ulsch->harq_mask &= ~(1 << harq_pid); + ulsch_harq->round = 0; + } #if defined(MESSAGE_CHART_GENERATOR_PHY) MSC_LOG_RX_DISCARDED_MESSAGE( - MSC_PHY_ENB,MSC_PHY_UE, - NULL,0, - "%05u:%02u ULSCH received rnti %x harq id %u round %d", - frame,subframe, - ulsch->rnti,harq_pid, - ulsch_harq->round-1 - ); + MSC_PHY_ENB,MSC_PHY_UE, + NULL,0, + "%05u:%02u ULSCH received rnti %x harq id %u round %d", + frame,subframe, + ulsch->rnti,harq_pid, + ulsch_harq->round-1 + ); #endif - + /* Mark the HARQ process to release it later if max transmission reached * (see below). * MAC does not send the max transmission count, we have to deal with it @@ -1372,10 +1424,10 @@ void pusch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) LOG_T(PHY,"\n"); #endif #endif - } // ulsch not in error + } // ulsch not in error if (ulsch_harq->O_ACK>0) fill_ulsch_harq_indication(eNB,ulsch_harq,ulsch->rnti,frame,subframe,ulsch->bundling); - + LOG_D(PHY,"[eNB %d] Frame %d subframe %d: received ULSCH harq_pid %d for UE %d, ret = %d, CQI CRC Status %d, ACK %d,%d, ulsch_errors %d/%d\n", eNB->Mod_id,frame,subframe, harq_pid, @@ -1448,7 +1500,7 @@ void init_te_thread(PHY_VARS_eNB *eNB) { pthread_cond_init( &proc->tep[i].cond_te, NULL); pthread_attr_init( &proc->tep[i].attr_te); - printf("Creating te_thread 0\n"); + LOG_I(PHY,"Creating te_thread %d\n",i); pthread_create(&proc->tep[i].pthread_te, &proc->tep[i].attr_te, te_thread, (void*)&proc->tep[i]); } } @@ -1512,7 +1564,7 @@ void fill_rx_indication(PHY_VARS_eNB *eNB,int UE_id,int frame,int subframe) pdu->rx_indication_rel8.timing_advance = timing_advance_update; // estimate UL_CQI for MAC (from antenna port 0 only) - int SNRtimes10 = dB_fixed_times10(eNB->pusch_vars[UE_id]->ulsch_power[0]) - 200;//(10*eNB->measurements.n0_power_dB[0]); + int SNRtimes10 = dB_fixed_times10(eNB->pusch_vars[UE_id]->ulsch_power[0]) - 300;//(10*eNB->measurements.n0_power_dB[0]); if (SNRtimes10 < -640) pdu->rx_indication_rel8.ul_cqi=0; else if (SNRtimes10 > 635) pdu->rx_indication_rel8.ul_cqi=255; @@ -1534,7 +1586,7 @@ static void do_release_harq(PHY_VARS_eNB *eNB,int UE_id,int tb,uint16_t frame,ui LTE_eNB_DLSCH_t *dlsch0=NULL,*dlsch1=NULL; LTE_DL_eNB_HARQ_t *dlsch0_harq=NULL,*dlsch1_harq=NULL; int harq_pid; - int subframe_tx; + int subframe_tx,frame_tx; int M,m; AssertFatal(UE_id!=-1,"no existing dlsch context\n"); @@ -1544,7 +1596,9 @@ static void do_release_harq(PHY_VARS_eNB *eNB,int UE_id,int tb,uint16_t frame,ui if (eNB->frame_parms.frame_type == FDD) { subframe_tx = (subframe+6)%10; - harq_pid = dlsch0->harq_ids[subframe_tx]; + frame_tx = ul_ACK_subframe2_dl_frame(&eNB->frame_parms,frame,subframe,subframe_tx); + harq_pid = dlsch0->harq_ids[frame_tx%2][subframe_tx]; // or just use 0 for fdd? + AssertFatal((harq_pid>=0) && (harq_pid<10),"harq_pid %d not in 0...9\n",harq_pid); dlsch0_harq = dlsch0->harq_processes[harq_pid]; dlsch1_harq = dlsch1->harq_processes[harq_pid]; @@ -1569,9 +1623,10 @@ static void do_release_harq(PHY_VARS_eNB *eNB,int UE_id,int tb,uint16_t frame,ui subframe_tx = ul_ACK_subframe2_dl_subframe(&eNB->frame_parms, subframe, m); + frame_tx = ul_ACK_subframe2_dl_frame(&eNB->frame_parms,frame,subframe,subframe_tx); if (((1< 0) { - harq_pid = dlsch0->harq_ids[subframe_tx]; - if ((harq_pid>=0) && (harq_pid<10)) { + harq_pid = dlsch0->harq_ids[frame_tx%2][subframe_tx]; + if ((harq_pid>=0) && (harq_pidMdlharq)) { dlsch0_harq = dlsch0->harq_processes[harq_pid]; dlsch1_harq = dlsch1->harq_processes[harq_pid]; AssertFatal(dlsch0_harq!=NULL,"dlsch0_harq is null\n"); @@ -1604,7 +1659,7 @@ int getM(PHY_VARS_eNB *eNB,int frame,int subframe) { LTE_eNB_DLSCH_t *dlsch0=NULL,*dlsch1=NULL; LTE_DL_eNB_HARQ_t *dlsch0_harq=NULL,*dlsch1_harq=NULL; int harq_pid; - int subframe_tx; + int subframe_tx,frame_tx; int m; M=ul_ACK_subframe2_M(&eNB->frame_parms, @@ -1614,7 +1669,10 @@ int getM(PHY_VARS_eNB *eNB,int frame,int subframe) { subframe_tx = ul_ACK_subframe2_dl_subframe(&eNB->frame_parms, subframe, m); - harq_pid = dlsch0->harq_ids[subframe_tx]; + frame_tx = ul_ACK_subframe2_dl_frame(&eNB->frame_parms,frame, + subframe,subframe_tx); + harq_pid = dlsch0->harq_ids[frame_tx%2][subframe_tx]; + if (harq_pid>=0 && harq_pid<10) { dlsch0_harq = dlsch0->harq_processes[harq_pid]; dlsch1_harq = dlsch1->harq_processes[harq_pid]; @@ -1663,15 +1721,11 @@ void fill_ulsch_cqi_indication(PHY_VARS_eNB *eNB,uint16_t frame,uint8_t subframe void fill_ulsch_harq_indication(PHY_VARS_eNB *eNB,LTE_UL_eNB_HARQ_t *ulsch_harq,uint16_t rnti, int frame,int subframe,int bundling) { int UE_id = find_dlsch(rnti,eNB,SEARCH_EXIST); - //AssertFatal(UE_id>=0,"UE_id doesn't exist\n"); - - if (UE_id < 0) - { - LOG_E(PHY,"%s(eNB, ulsch_harq, rnti:%04x, frame:%d, subframe:%d, bundling:%d) harq_pdus:%d - Could not find rnti - abort fill of ulsch harq ind\n", __FUNCTION__, rnti, frame, subframe, bundling,eNB->UL_INFO.harq_ind.harq_indication_body.number_of_harqs); + if( (UE_id<0) || (UE_id>=NUMBER_OF_UE_MAX) ){ + LOG_E(PHY,"illegal UE_id found!!! rnti %04x UE_id %d\n",rnti,UE_id); return; } - - LOG_D(PHY,"%s(eNB, ulsch_harq, rnti:%04x, frame:%d, subframe:%d, bundling:%d) harq_pdus:%d O_ACK:%d\n", __FUNCTION__, rnti, frame, subframe, bundling,eNB->UL_INFO.harq_ind.harq_indication_body.number_of_harqs,ulsch_harq->O_ACK); + //AssertFatal(UE_id>=0,"UE_id doesn't exist\n"); pthread_mutex_lock(&eNB->UL_INFO_mutex); nfapi_harq_indication_pdu_t *pdu = &eNB->UL_INFO.harq_ind.harq_indication_body.harq_pdu_list[eNB->UL_INFO.harq_ind.harq_indication_body.number_of_harqs]; @@ -1703,12 +1757,17 @@ void fill_ulsch_harq_indication(PHY_VARS_eNB *eNB,LTE_UL_eNB_HARQ_t *ulsch_harq, #if T_TRACER /* TODO: get correct harq pid */ - if (ulsch_harq->o_ACK[i] != 1) - T(T_ENB_PHY_DLSCH_UE_NACK, T_INT(0), T_INT(frame), T_INT(subframe), - T_INT(rnti), T_INT(eNB->dlsch[UE_id][0]->harq_ids[(subframe+6)%10])); - else - T(T_ENB_PHY_DLSCH_UE_ACK, T_INT(0), T_INT(frame), T_INT(subframe), - T_INT(rnti), T_INT(eNB->dlsch[UE_id][0]->harq_ids[(subframe+6)%10])); + { + int subframe_tx = (subframe+6)%10; + int frame_tx = subframe_tx >= 6 ? (frame+1023)%1024 : frame; + if (ulsch_harq->o_ACK[i] != 1) { + T(T_ENB_PHY_DLSCH_UE_NACK, T_INT(0), T_INT(frame), T_INT(subframe), + T_INT(rnti), T_INT(eNB->dlsch[UE_id][0]->harq_ids[frame_tx%2][subframe_tx])); + } else { + T(T_ENB_PHY_DLSCH_UE_ACK, T_INT(0), T_INT(frame), T_INT(subframe), + T_INT(rnti), T_INT(eNB->dlsch[UE_id][0]->harq_ids[frame_tx%2][subframe_tx])); + } + } #endif } } @@ -1723,7 +1782,7 @@ void fill_ulsch_harq_indication(PHY_VARS_eNB *eNB,LTE_UL_eNB_HARQ_t *ulsch_harq, for (i=0;iO_ACK;i++) { AssertFatal(ulsch_harq->o_ACK[i] == 0 || ulsch_harq->o_ACK[i] == 1, "harq_ack[%d] is %d, should be 1,2 or 4\n",i,ulsch_harq->o_ACK[i]); - pdu->harq_indication_tdd_rel13.harq_data[0].multiplex.value_0 = 2-ulsch_harq->o_ACK[i]; + pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = 2-ulsch_harq->o_ACK[i]; // release DLSCH if needed /* TODO: review this code, it's most certainly wrong. * We have to release the proper HARQ in case of ACK or NACK if max retransmission reached. @@ -1779,7 +1838,7 @@ void fill_uci_harq_indication(PHY_VARS_eNB *eNB, // estimate UL_CQI for MAC (from antenna port 0 only) pdu->ul_cqi_information.tl.tag = NFAPI_UL_CQI_INFORMATION_TAG; - int SNRtimes10 = dB_fixed_times10(uci->stat) - 200;//(10*eNB->measurements.n0_power_dB[0]); + int SNRtimes10 = dB_fixed_times10(uci->stat) - 300;//(10*eNB->measurements.n0_power_dB[0]); if (SNRtimes10 < -100) LOG_I(PHY,"uci->stat %d \n",uci->stat); @@ -1801,12 +1860,17 @@ void fill_uci_harq_indication(PHY_VARS_eNB *eNB, #if T_TRACER - if (harq_ack[0] != 1) - T(T_ENB_PHY_DLSCH_UE_NACK, T_INT(0), T_INT(frame), T_INT(subframe), - T_INT(uci->rnti), T_INT(eNB->dlsch[UE_id][0]->harq_ids[(subframe+6)%10])); - else - T(T_ENB_PHY_DLSCH_UE_ACK, T_INT(0), T_INT(frame), T_INT(subframe), - T_INT(uci->rnti), T_INT(eNB->dlsch[UE_id][0]->harq_ids[(subframe+6)%10])); + { + int subframe_tx = (subframe+6)%10; + int frame_tx = subframe_tx >= 6 ? (frame+1023)%1024 : frame; + if (harq_ack[0] != 1) { + T(T_ENB_PHY_DLSCH_UE_NACK, T_INT(0), T_INT(frame), T_INT(subframe), + T_INT(uci->rnti), T_INT(eNB->dlsch[UE_id][0]->harq_ids[frame_tx%2][subframe_tx])); + } else { + T(T_ENB_PHY_DLSCH_UE_ACK, T_INT(0), T_INT(frame), T_INT(subframe), + T_INT(uci->rnti), T_INT(eNB->dlsch[UE_id][0]->harq_ids[frame_tx%2][subframe_tx])); + } + } #endif } else if (uci->pucch_fmt == pucch_format1b) { @@ -1830,13 +1894,14 @@ void fill_uci_harq_indication(PHY_VARS_eNB *eNB, pdu->harq_indication_tdd_rel13.tl.tag = NFAPI_HARQ_INDICATION_TDD_REL13_TAG; pdu->harq_indication_tdd_rel13.mode = tdd_mapping_mode; - + LOG_D(PHY,"%s(eNB, uci_harq format %d, rnti:%04x, frame:%d, subframe:%d, tdd_mapping_mode:%d) harq_ack[0]:%d harq_ack[1]:%d\n", __FUNCTION__, uci->pucch_fmt,uci->rnti, frame, subframe, tdd_mapping_mode,harq_ack[0],harq_ack[1]); switch (tdd_mapping_mode) { case 0: // bundling if (uci->pucch_fmt == pucch_format1a) { pdu->harq_indication_tdd_rel13.tl.tag = NFAPI_HARQ_INDICATION_TDD_REL13_TAG; pdu->harq_indication_tdd_rel13.number_of_ack_nack = 1; + LOG_D(PHY,"bundling, pucch1a, number of ack nack %d\n",pdu->harq_indication_tdd_rel13.number_of_ack_nack); AssertFatal(harq_ack[0] == 1 || harq_ack[0] == 2 || harq_ack[0] == 4, "harq_ack[0] is %d, should be 1,2 or 4\n",harq_ack[0]); pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = harq_ack[0]; // release all bundled DLSCH if needed @@ -1892,32 +1957,44 @@ void fill_uci_harq_indication(PHY_VARS_eNB *eNB, case 2: // special bundling (SR collision) pdu->harq_indication_tdd_rel13.tl.tag = NFAPI_HARQ_INDICATION_TDD_REL13_TAG; pdu->harq_indication_tdd_rel13.number_of_ack_nack = 1; + pdu->harq_indication_tdd_rel13.mode = 0; int tdd_config5_sf2scheds=0; if (eNB->frame_parms.tdd_config==5) tdd_config5_sf2scheds = getM(eNB,frame,subframe); switch (harq_ack[0]) { case 0: + case 4: + pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = 0; /* TODO: release_harq here? this whole code looks suspicious */ break; case 1: // check if M=1,4,7 if (uci->num_pucch_resources == 1 || uci->num_pucch_resources == 4 || tdd_config5_sf2scheds == 1 || tdd_config5_sf2scheds == 4 || tdd_config5_sf2scheds == 7) { + pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = 1; release_harq(eNB,UE_id,0,frame,subframe,0xffff, 1); release_harq(eNB,UE_id,1,frame,subframe,0xffff, 1); + }else{ + pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = 0; } break; case 2: // check if M=2,5,8 if (uci->num_pucch_resources == 2 || tdd_config5_sf2scheds == 2 || tdd_config5_sf2scheds == 5 || tdd_config5_sf2scheds == 8) { + pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = 1; release_harq(eNB,UE_id,0,frame,subframe,0xffff, 1); release_harq(eNB,UE_id,1,frame,subframe,0xffff, 1); + }else{ + pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = 0; } break; case 3: // check if M=3,6,9 if (uci->num_pucch_resources == 3 || tdd_config5_sf2scheds == 3 || tdd_config5_sf2scheds == 6 || tdd_config5_sf2scheds == 9) { + pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = 1; release_harq(eNB,UE_id,0,frame,subframe,0xffff, 1); release_harq(eNB,UE_id,1,frame,subframe,0xffff, 1); + }else{ + pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = 0; } break; } diff --git a/openair1/SCHED/prach_procedures.c b/openair1/SCHED/prach_procedures.c index f3556a5e49..46002b01d3 100644 --- a/openair1/SCHED/prach_procedures.c +++ b/openair1/SCHED/prach_procedures.c @@ -36,10 +36,9 @@ #include "nfapi_interface.h" #include "fapi_l1.h" #include "nfapi_pnf.h" -#include "UTIL/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" -#include "T.h" #include "assertions.h" #include "msc.h" @@ -125,14 +124,11 @@ void prach_procedures(PHY_VARS_eNB *eNB #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) if (br_flag==1) { - int prach_mask; - - prach_mask = is_prach_subframe(&eNB->frame_parms,eNB->proc.frame_prach_br,eNB->proc.subframe_prach_br); - eNB->UL_INFO.rach_ind_br.rach_indication_body.preamble_list = eNB->preamble_list_br; int ind=0; int ce_level=0; - /* Save for later, it doesn't work + /* Save for later, it doesn't work + int prach_mask = is_prach_subframe(&eNB->frame_parms,eNB->proc.frame_prach_br,eNB->proc.subframe_prach_br); for (int ind=0,ce_level=0;ce_level<4;ce_level++) { if ((eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[ce_level]==1)&& @@ -154,7 +150,7 @@ void prach_procedures(PHY_VARS_eNB *eNB LOG_D(PHY,"Filling NFAPI indication for RACH %d CELevel %d (mask %x) : TA %d, Preamble %d, rnti %x, rach_resource_type %d\n", ind, ce_level, - prach_mask, + is_prach_subframe(&eNB->frame_parms,eNB->proc.frame_prach_br,eNB->proc.subframe_prach_br), eNB->preamble_list_br[ind].preamble_rel8.timing_advance, eNB->preamble_list_br[ind].preamble_rel8.preamble, eNB->preamble_list_br[ind].preamble_rel8.rnti, diff --git a/openair1/SCHED/ru_procedures.c b/openair1/SCHED/ru_procedures.c index 155bf7cfe9..9135ef651f 100644 --- a/openair1/SCHED/ru_procedures.c +++ b/openair1/SCHED/ru_procedures.c @@ -39,10 +39,9 @@ #include "PHY/LTE_TRANSPORT/transport_common_proto.h" #include "LAYER2/MAC/mac.h" -#include "UTIL/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" -#include "T.h" #include "assertions.h" #include "msc.h" @@ -67,7 +66,6 @@ void feptx0(RU_t *ru,int slot) { //int dummy_tx_b[7680*2] __attribute__((aligned(32))); unsigned int aa,slot_offset; - int i, tx_offset; int slot_sizeF = (fp->ofdm_symbol_size)* ((fp->Ncp==1) ? 6 : 7); int subframe = ru->proc.subframe_tx; @@ -131,7 +129,7 @@ void feptx0(RU_t *ru,int slot) { } */ // TDD: turn on tx switch N_TA_offset before by setting buffer in these samples to 0 - if ((slot == 0) && +/* if ((slot == 0) && (fp->frame_type == TDD) && ((fp->tdd_config==0) || (fp->tdd_config==1) || @@ -148,7 +146,7 @@ void feptx0(RU_t *ru,int slot) { ru->common.txdata[aa][tx_offset] = 0x00000000; } - } + }*/ } VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM+slot , 0); } @@ -172,6 +170,7 @@ static void *feptx_thread(void *param) { while (!oai_exit) { if (wait_on_condition(&proc->mutex_feptx,&proc->cond_feptx,&proc->instance_cnt_feptx,"feptx thread")<0) break; + if (oai_exit) break; //stop_meas(&ru->ofdm_mod_wakeup_stats); feptx0(ru,1); if (release_thread(&proc->mutex_feptx,&proc->instance_cnt_feptx,"feptx thread")<0) break; @@ -269,7 +268,6 @@ void feptx_ofdm(RU_t *ru) { // int CC_id = ru->proc.CC_id; VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM , 1 ); - slot_offset_F = 0; slot_offset = subframe*fp->samples_per_tti; @@ -364,25 +362,27 @@ void feptx_ofdm(RU_t *ru) { } } */ - if ((fp->frame_type == TDD) && - ((fp->tdd_config==0) || - (fp->tdd_config==1) || - (fp->tdd_config==2) || - (fp->tdd_config==6)) && - ((subframe==0) || (subframe==5))) { - // turn on tx switch N_TA_offset before - //LOG_D(HW,"subframe %d, time to switch to tx (N_TA_offset %d, slot_offset %d) \n",subframe,ru->N_TA_offset,slot_offset); - for (i=0; iN_TA_offset; i++) { - tx_offset = (int)slot_offset+i-ru->N_TA_offset/2; - if (tx_offset<0) - tx_offset += LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*fp->samples_per_tti; - - if (tx_offset>=(LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*fp->samples_per_tti)) - tx_offset -= LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*fp->samples_per_tti; - - ru->common.txdata[aa][tx_offset] = 0x00000000; - } - } + +// if ((fp->frame_type == TDD) && +// ((fp->tdd_config==0) || +// (fp->tdd_config==1) || +// (fp->tdd_config==2) || +// (fp->tdd_config==6)) && +// ((subframe==0) || (subframe==5))) { +// // turn on tx switch N_TA_offset before +// //LOG_D(HW,"subframe %d, time to switch to tx (N_TA_offset %d, slot_offset %d) \n",subframe,ru->N_TA_offset,slot_offset); +// for (i=0; iN_TA_offset; i++) { +// tx_offset = (int)slot_offset+i-ru->N_TA_offset/2; +// if (tx_offset<0) +// tx_offset += LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*fp->samples_per_tti; +// +// if (tx_offset>=(LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*fp->samples_per_tti)) +// tx_offset -= LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*fp->samples_per_tti; +// +// ru->common.txdata[aa][tx_offset] = 0x00000000; +// } +// } + stop_meas(&ru->ofdm_mod_stats); LOG_D(PHY,"feptx_ofdm (TXPATH): frame %d, subframe %d: txp (time %p) %d dB, txp (freq) %d dB\n", ru->proc.frame_tx,subframe,txdata,dB_fixed(signal_energy((int32_t*)txdata,fp->samples_per_tti)), @@ -433,11 +433,6 @@ void feptx_prec(RU_t *ru) { aa); } } -#if 0 - LOG_D(PHY,"feptx_prec: frame %d, subframe %d: txp (freq) %d dB\n", - ru->proc.frame_tx,subframe, - dB_fixed(signal_energy_nodc(ru->common.txdataF_BF[0],2*fp->symbols_per_tti*fp->ofdm_symbol_size))); -#endif } } } @@ -483,6 +478,7 @@ static void *fep_thread(void *param) { while (!oai_exit) { if (wait_on_condition(&proc->mutex_fep,&proc->cond_fep,&proc->instance_cnt_fep,"fep thread")<0) break; + if (oai_exit) break; //stop_meas(&ru->ofdm_demod_wakeup_stats); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPRX1, 1 ); fep0(ru,0); @@ -532,6 +528,33 @@ void init_fep_thread(RU_t *ru,pthread_attr_t *attr_fep) { } + +extern void kill_fep_thread(RU_t *ru) +{ + RU_proc_t *proc = &ru->proc; + pthread_mutex_lock( &proc->mutex_fep ); + proc->instance_cnt_fep = 0; + pthread_cond_signal(&proc->cond_fep); + pthread_mutex_unlock( &proc->mutex_fep ); + LOG_D(PHY, "Joining pthread_fep\n"); + pthread_join(proc->pthread_fep, NULL); + pthread_mutex_destroy( &proc->mutex_fep ); + pthread_cond_destroy( &proc->cond_fep ); +} + +extern void kill_feptx_thread(RU_t *ru) +{ + RU_proc_t *proc = &ru->proc; + pthread_mutex_lock( &proc->mutex_feptx ); + proc->instance_cnt_feptx = 0; + pthread_cond_signal(&proc->cond_feptx); + pthread_mutex_unlock( &proc->mutex_feptx ); + LOG_D(PHY, "Joining pthread_feptx\n"); + pthread_join(proc->pthread_feptx, NULL); + pthread_mutex_destroy( &proc->mutex_feptx ); + pthread_cond_destroy( &proc->cond_feptx ); +} + void ru_fep_full_2thread(RU_t *ru) { RU_proc_t *proc = &ru->proc; diff --git a/openair1/SCHED/sched_common.h b/openair1/SCHED/sched_common.h index 30de6dbb4a..e579110a78 100644 --- a/openair1/SCHED/sched_common.h +++ b/openair1/SCHED/sched_common.h @@ -30,7 +30,7 @@ #include "PHY/defs_eNB.h" #include "PHY/defs_UE.h" - +#include "TDD-Config.h" /*! \brief Function to compute subframe Number(DL and S) as a function of Frame type and TDD Configuration @param frame_parms Pointer to DL frame parameter descriptor @returns Subframe Number (DL,S) @@ -322,9 +322,7 @@ LTE_DL_FRAME_PARMS *get_lte_frame_parms(module_id_t Mod_id, uint8_t CC_id); MU_MIMO_mode* get_mu_mimo_mode (module_id_t Mod_id, uint8_t CC_id, rnti_t rnti); int16_t get_hundred_times_delta_IF(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t harq_pid); - -int16_t get_hundred_times_delta_IF_eNB(PHY_VARS_eNB *phy_vars_eNB,uint8_t UE_id,uint8_t harq_pid, uint8_t bw_factor); - +int16_t get_hundred_times_delta_IF_eNB(PHY_VARS_eNB *phy_vars_eNB,uint16_t UE_id,uint8_t harq_pid, uint8_t bw_factor); int16_t get_hundred_times_delta_IF_mac(module_id_t module_idP, uint8_t CC_id, rnti_t rnti, uint8_t harq_pid); int16_t get_target_pusch_rx_power(module_id_t module_idP, uint8_t CC_id); @@ -343,6 +341,12 @@ int is_srs_occasion_common(LTE_DL_FRAME_PARMS *frame_parms,int frame_tx,int subf void compute_srs_pos(lte_frame_type_t frameType,uint16_t isrs,uint16_t *psrsPeriodicity,uint16_t *psrsOffset); + +/* from here: prototype added to remove compilation warnings, doc to be written by the author of the function */ + +int ul_ACK_subframe2_dl_frame(LTE_DL_FRAME_PARMS *frame_parms,int frame, unsigned char subframe,unsigned char subframe_tx); + +void get_retransmission_timing(TDD_Config_t *tdd_Config, frame_t *frameP, sub_frame_t *subframeP); /*@}*/ diff --git a/openair1/SCHED/sched_eNB.h b/openair1/SCHED/sched_eNB.h index e03b7f6b62..cf6c5815f2 100644 --- a/openair1/SCHED/sched_eNB.h +++ b/openair1/SCHED/sched_eNB.h @@ -127,7 +127,7 @@ void phy_procedures_eNB_S_RX(PHY_VARS_eNB *phy_vars_eNB,eNB_rxtx_proc_t *proc); @param phy_vars_eNB Pointer to eNB variables on which to act @param br_flag indicator for eMTC PRACH */ -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) void prach_procedures(PHY_VARS_eNB *eNB, int br_flag); #else @@ -208,7 +208,7 @@ LTE_eNB_UE_stats* get_UE_stats(uint8_t Mod_id, uint8_t CC_id,uint16_t rnti); lte_subframe_t get_subframe_direction(uint8_t Mod_id,uint8_t CC_id,uint8_t subframe); -int16_t get_hundred_times_delta_IF_eNB(PHY_VARS_eNB *phy_vars_eNB,uint8_t UE_id,uint8_t harq_pid, uint8_t bw_factor); +int16_t get_hundred_times_delta_IF_eNB(PHY_VARS_eNB *phy_vars_eNB,uint16_t UE_id,uint8_t harq_pid, uint8_t bw_factor); int16_t get_hundred_times_delta_IF_mac(module_id_t module_idP, uint8_t CC_id, rnti_t rnti, uint8_t harq_pid); diff --git a/openair1/SCHED_UE/phy_procedures_lte_ue.c b/openair1/SCHED_UE/phy_procedures_lte_ue.c index 039fa41a7f..de8ea26eac 100644 --- a/openair1/SCHED_UE/phy_procedures_lte_ue.c +++ b/openair1/SCHED_UE/phy_procedures_lte_ue.c @@ -43,16 +43,15 @@ #include "PHY/MODULATION/modulation_UE.h" #include "PHY/LTE_ESTIMATION/lte_estimation.h" -//#define DEBUG_PHY_PROC #ifndef PUCCH #define PUCCH #endif #include "LAYER2/MAC/mac.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "UTIL/OPT/opt.h" #if defined(ENABLE_ITTI) @@ -81,82 +80,96 @@ void Msg3_transmitted(module_id_t module_idP,uint8_t CC_id,frame_t frameP, uint8 extern uint32_t downlink_frequency[MAX_NUM_CCs][4]; #endif +void get_dumpparam(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id, uint8_t nb_rb, + uint32_t *alloc_even, uint8_t subframe,uint32_t Qm, uint32_t Nl, uint32_t tm, + uint8_t *nsymb, uint32_t *coded_bits_per_codeword) { -//#define UE_DEBUG_TRACE 1 + *nsymb = (ue->frame_parms.Ncp == 0) ? 14 : 12; + + *coded_bits_per_codeword = get_G(&ue->frame_parms, + nb_rb, + alloc_even, + Qm, + Nl, + ue->pdcch_vars[0%RX_NB_TH][eNB_id]->num_pdcch_symbols, + proc->frame_rx, + subframe, + tm); +} void dump_dlsch(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uint8_t subframe,uint8_t harq_pid) { +LOG_M_BEGIN(DEBUG_UE_PHYPROC) unsigned int coded_bits_per_codeword; - uint8_t nsymb = (ue->frame_parms.Ncp == 0) ? 14 : 12; + uint8_t nsymb ; - coded_bits_per_codeword = get_G(&ue->frame_parms, - ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_processes[harq_pid]->nb_rb, - ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_processes[harq_pid]->rb_alloc_even, - ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_processes[harq_pid]->Qm, - ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_processes[harq_pid]->Nl, - ue->pdcch_vars[0%RX_NB_TH][eNB_id]->num_pdcch_symbols, - proc->frame_rx, - subframe, - ue->transmission_mode[eNB_id]<7?0:ue->transmission_mode[eNB_id]); + get_dumpparam(ue, proc, eNB_id, + ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_processes[harq_pid]->nb_rb , + ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_processes[harq_pid]->rb_alloc_even, + subframe, + ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_processes[harq_pid]->Qm, + ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_processes[harq_pid]->Nl, + ue->transmission_mode[eNB_id]<7?0:ue->transmission_mode[eNB_id], + &nsymb, &coded_bits_per_codeword); - write_output("rxsigF0.m","rxsF0", ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF[0],2*nsymb*ue->frame_parms.ofdm_symbol_size,2,1); - write_output("rxsigF0_ext.m","rxsF0_ext", ue->pdsch_vars[ue->current_thread_id[subframe]][0]->rxdataF_ext[0],2*nsymb*ue->frame_parms.ofdm_symbol_size,1,1); - write_output("dlsch00_ch0_ext.m","dl00_ch0_ext", ue->pdsch_vars[ue->current_thread_id[subframe]][0]->dl_ch_estimates_ext[0],300*nsymb,1,1); + LOG_M("rxsigF0.m","rxsF0", ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF[0],2*nsymb*ue->frame_parms.ofdm_symbol_size,2,1); + LOG_M("rxsigF0_ext.m","rxsF0_ext", ue->pdsch_vars[ue->current_thread_id[subframe]][0]->rxdataF_ext[0],2*nsymb*ue->frame_parms.ofdm_symbol_size,1,1); + LOG_M("dlsch00_ch0_ext.m","dl00_ch0_ext", ue->pdsch_vars[ue->current_thread_id[subframe]][0]->dl_ch_estimates_ext[0],300*nsymb,1,1); /* - write_output("dlsch01_ch0_ext.m","dl01_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[1],300*12,1,1); - write_output("dlsch10_ch0_ext.m","dl10_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[2],300*12,1,1); - write_output("dlsch11_ch0_ext.m","dl11_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[3],300*12,1,1); - write_output("dlsch_rho.m","dl_rho",pdsch_vars[0]->rho[0],300*12,1,1); + LOG_M("dlsch01_ch0_ext.m","dl01_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[1],300*12,1,1); + LOG_M("dlsch10_ch0_ext.m","dl10_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[2],300*12,1,1); + LOG_M("dlsch11_ch0_ext.m","dl11_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[3],300*12,1,1); + LOG_M("dlsch_rho.m","dl_rho",pdsch_vars[0]->rho[0],300*12,1,1); */ - write_output("dlsch_rxF_comp0.m","dlsch0_rxF_comp0", ue->pdsch_vars[ue->current_thread_id[subframe]][0]->rxdataF_comp0[0],300*12,1,1); - write_output("dlsch_rxF_llr.m","dlsch_llr", ue->pdsch_vars[ue->current_thread_id[subframe]][0]->llr[0],coded_bits_per_codeword,1,0); + LOG_M("dlsch_rxF_comp0.m","dlsch0_rxF_comp0", ue->pdsch_vars[ue->current_thread_id[subframe]][0]->rxdataF_comp0[0],300*12,1,1); + LOG_M("dlsch_rxF_llr.m","dlsch_llr", ue->pdsch_vars[ue->current_thread_id[subframe]][0]->llr[0],coded_bits_per_codeword,1,0); - write_output("dlsch_mag1.m","dlschmag1",ue->pdsch_vars[ue->current_thread_id[subframe]][0]->dl_ch_mag0,300*12,1,1); - write_output("dlsch_mag2.m","dlschmag2",ue->pdsch_vars[ue->current_thread_id[subframe]][0]->dl_ch_magb0,300*12,1,1); + LOG_M("dlsch_mag1.m","dlschmag1",ue->pdsch_vars[ue->current_thread_id[subframe]][0]->dl_ch_mag0,300*12,1,1); + LOG_M("dlsch_mag2.m","dlschmag2",ue->pdsch_vars[ue->current_thread_id[subframe]][0]->dl_ch_magb0,300*12,1,1); +LOG_M_END } void dump_dlsch_SI(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uint8_t subframe) { +LOG_M_BEGIN(DEBUG_UE_PHYPROC) unsigned int coded_bits_per_codeword; - uint8_t nsymb = ((ue->frame_parms.Ncp == 0) ? 14 : 12); + uint8_t nsymb; + + get_dumpparam(ue, proc, eNB_id, + ue->dlsch_SI[eNB_id]->harq_processes[0]->nb_rb, + ue->dlsch_SI[eNB_id]->harq_processes[0]->rb_alloc_even, + subframe,2,1,0, + &nsymb, &coded_bits_per_codeword); - coded_bits_per_codeword = get_G(&ue->frame_parms, - ue->dlsch_SI[eNB_id]->harq_processes[0]->nb_rb, - ue->dlsch_SI[eNB_id]->harq_processes[0]->rb_alloc_even, - 2, - 1, - ue->pdcch_vars[0%RX_NB_TH][eNB_id]->num_pdcch_symbols, - proc->frame_rx, - subframe, - 0); LOG_D(PHY,"[UE %d] Dumping dlsch_SI : ofdm_symbol_size %d, nsymb %d, nb_rb %d, mcs %d, nb_rb %d, num_pdcch_symbols %d,G %d\n", ue->Mod_id, - ue->frame_parms.ofdm_symbol_size, - nsymb, + ue->frame_parms.ofdm_symbol_size, + nsymb, ue->dlsch_SI[eNB_id]->harq_processes[0]->nb_rb, ue->dlsch_SI[eNB_id]->harq_processes[0]->mcs, ue->dlsch_SI[eNB_id]->harq_processes[0]->nb_rb, ue->pdcch_vars[0%RX_NB_TH][eNB_id]->num_pdcch_symbols, coded_bits_per_codeword); - write_output("rxsig0.m","rxs0", &ue->common_vars.rxdata[0][subframe*ue->frame_parms.samples_per_tti],ue->frame_parms.samples_per_tti,1,1); + LOG_M("rxsig0.m","rxs0", &ue->common_vars.rxdata[0][subframe*ue->frame_parms.samples_per_tti],ue->frame_parms.samples_per_tti,1,1); - write_output("rxsigF0.m","rxsF0", ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF[0],nsymb*ue->frame_parms.ofdm_symbol_size,1,1); - write_output("rxsigF0_ext.m","rxsF0_ext", ue->pdsch_vars_SI[0]->rxdataF_ext[0],2*nsymb*ue->frame_parms.ofdm_symbol_size,1,1); - write_output("dlsch00_ch0_ext.m","dl00_ch0_ext", ue->pdsch_vars_SI[0]->dl_ch_estimates_ext[0],ue->frame_parms.N_RB_DL*12*nsymb,1,1); + LOG_M("rxsigF0.m","rxsF0", ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF[0],nsymb*ue->frame_parms.ofdm_symbol_size,1,1); + LOG_M("rxsigF0_ext.m","rxsF0_ext", ue->pdsch_vars_SI[0]->rxdataF_ext[0],2*nsymb*ue->frame_parms.ofdm_symbol_size,1,1); + LOG_M("dlsch00_ch0_ext.m","dl00_ch0_ext", ue->pdsch_vars_SI[0]->dl_ch_estimates_ext[0],ue->frame_parms.N_RB_DL*12*nsymb,1,1); /* - write_output("dlsch01_ch0_ext.m","dl01_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[1],300*12,1,1); - write_output("dlsch10_ch0_ext.m","dl10_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[2],300*12,1,1); - write_output("dlsch11_ch0_ext.m","dl11_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[3],300*12,1,1); - write_output("dlsch_rho.m","dl_rho",pdsch_vars[0]->rho[0],300*12,1,1); + LOG_M("dlsch01_ch0_ext.m","dl01_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[1],300*12,1,1); + LOG_M("dlsch10_ch0_ext.m","dl10_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[2],300*12,1,1); + LOG_M("dlsch11_ch0_ext.m","dl11_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[3],300*12,1,1); + LOG_M("dlsch_rho.m","dl_rho",pdsch_vars[0]->rho[0],300*12,1,1); */ - write_output("dlsch_rxF_comp0.m","dlsch0_rxF_comp0", ue->pdsch_vars_SI[0]->rxdataF_comp0[0],ue->frame_parms.N_RB_DL*12*nsymb,1,1); - write_output("dlsch_rxF_llr.m","dlsch_llr", ue->pdsch_vars_SI[0]->llr[0],coded_bits_per_codeword,1,0); + LOG_M("dlsch_rxF_comp0.m","dlsch0_rxF_comp0", ue->pdsch_vars_SI[0]->rxdataF_comp0[0],ue->frame_parms.N_RB_DL*12*nsymb,1,1); + LOG_M("dlsch_rxF_llr.m","dlsch_llr", ue->pdsch_vars_SI[0]->llr[0],coded_bits_per_codeword,1,0); - write_output("dlsch_mag1.m","dlschmag1",ue->pdsch_vars_SI[0]->dl_ch_mag0,300*nsymb,1,1); - write_output("dlsch_mag2.m","dlschmag2",ue->pdsch_vars_SI[0]->dl_ch_magb0,300*nsymb,1,1); + LOG_M("dlsch_mag1.m","dlschmag1",ue->pdsch_vars_SI[0]->dl_ch_mag0,300*nsymb,1,1); + LOG_M("dlsch_mag2.m","dlschmag2",ue->pdsch_vars_SI[0]->dl_ch_magb0,300*nsymb,1,1); sleep(1); exit(-1); +LOG_M_END } #if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR) @@ -204,9 +217,14 @@ void dump_dlsch_SI(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uint8_t s unsigned int get_tx_amp(int power_dBm, int power_max_dBm, int N_RB_UL, int nb_rb) { - int gain_dB = power_dBm - power_max_dBm; + int gain_dB; double gain_lin; + if (power_dBm<=power_max_dBm) + gain_dB = power_dBm - power_max_dBm; + else + gain_dB = 0; + gain_lin = pow(10,.1*gain_dB); AssertFatal((nb_rb >0) && (nb_rb <= N_RB_UL),"Illegal nb_rb/N_RB_UL combination (%d/%d)\n",nb_rb,N_RB_UL); return((int)(AMP*sqrt(gain_lin*N_RB_UL/(double)nb_rb))); @@ -216,18 +234,17 @@ unsigned int get_tx_amp(int power_dBm, int power_max_dBm, int N_RB_UL, int nb_rb void dump_dlsch_ra(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uint8_t subframe) { +LOG_M_BEGIN(DEBUG_UE_PHYPROC) unsigned int coded_bits_per_codeword; - uint8_t nsymb = ((ue->frame_parms.Ncp == 0) ? 14 : 12); + uint8_t nsymb ; + + + get_dumpparam(ue, proc, eNB_id, + ue->dlsch_SI[eNB_id]->harq_processes[0]->nb_rb, + ue->dlsch_SI[eNB_id]->harq_processes[0]->rb_alloc_even, + subframe,2,1,0, + &nsymb, &coded_bits_per_codeword); - coded_bits_per_codeword = get_G(&ue->frame_parms, - ue->dlsch_ra[eNB_id]->harq_processes[0]->nb_rb, - ue->dlsch_ra[eNB_id]->harq_processes[0]->rb_alloc_even, - 2, - 1, - ue->pdcch_vars[0%RX_NB_TH][eNB_id]->num_pdcch_symbols, - proc->frame_rx, - subframe, - 0); LOG_D(PHY,"[UE %d] Dumping dlsch_ra : nb_rb %d, mcs %d, nb_rb %d, num_pdcch_symbols %d,G %d\n", ue->Mod_id, ue->dlsch_ra[eNB_id]->harq_processes[0]->nb_rb, @@ -236,23 +253,24 @@ void dump_dlsch_ra(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uint8_t s ue->pdcch_vars[0%RX_NB_TH][eNB_id]->num_pdcch_symbols, coded_bits_per_codeword); - write_output("rxsigF0.m","rxsF0", ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF[0],2*12*ue->frame_parms.ofdm_symbol_size,2,1); - write_output("rxsigF0_ext.m","rxsF0_ext", ue->pdsch_vars_ra[0]->rxdataF_ext[0],2*12*ue->frame_parms.ofdm_symbol_size,1,1); - write_output("dlsch00_ch0_ext.m","dl00_ch0_ext", ue->pdsch_vars_ra[0]->dl_ch_estimates_ext[0],300*nsymb,1,1); + LOG_M("rxsigF0.m","rxsF0", ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF[0],2*12*ue->frame_parms.ofdm_symbol_size,2,1); + LOG_M("rxsigF0_ext.m","rxsF0_ext", ue->pdsch_vars_ra[0]->rxdataF_ext[0],2*12*ue->frame_parms.ofdm_symbol_size,1,1); + LOG_M("dlsch00_ch0_ext.m","dl00_ch0_ext", ue->pdsch_vars_ra[0]->dl_ch_estimates_ext[0],300*nsymb,1,1); /* - write_output("dlsch01_ch0_ext.m","dl01_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[1],300*12,1,1); - write_output("dlsch10_ch0_ext.m","dl10_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[2],300*12,1,1); - write_output("dlsch11_ch0_ext.m","dl11_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[3],300*12,1,1); - write_output("dlsch_rho.m","dl_rho",pdsch_vars[0]->rho[0],300*12,1,1); + LOG_M("dlsch01_ch0_ext.m","dl01_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[1],300*12,1,1); + LOG_M("dlsch10_ch0_ext.m","dl10_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[2],300*12,1,1); + LOG_M("dlsch11_ch0_ext.m","dl11_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[3],300*12,1,1); + LOG_M("dlsch_rho.m","dl_rho",pdsch_vars[0]->rho[0],300*12,1,1); */ - write_output("dlsch_rxF_comp0.m","dlsch0_rxF_comp0", ue->pdsch_vars_ra[0]->rxdataF_comp0[0],300*nsymb,1,1); - write_output("dlsch_rxF_llr.m","dlsch_llr", ue->pdsch_vars_ra[0]->llr[0],coded_bits_per_codeword,1,0); + LOG_M("dlsch_rxF_comp0.m","dlsch0_rxF_comp0", ue->pdsch_vars_ra[0]->rxdataF_comp0[0],300*nsymb,1,1); + LOG_M("dlsch_rxF_llr.m","dlsch_llr", ue->pdsch_vars_ra[0]->llr[0],coded_bits_per_codeword,1,0); - write_output("dlsch_mag1.m","dlschmag1",ue->pdsch_vars_ra[0]->dl_ch_mag0,300*nsymb,1,1); - write_output("dlsch_mag2.m","dlschmag2",ue->pdsch_vars_ra[0]->dl_ch_magb0,300*nsymb,1,1); + LOG_M("dlsch_mag1.m","dlschmag1",ue->pdsch_vars_ra[0]->dl_ch_mag0,300*nsymb,1,1); + LOG_M("dlsch_mag2.m","dlschmag2",ue->pdsch_vars_ra[0]->dl_ch_magb0,300*nsymb,1,1); +LOG_M_END } -void phy_reset_ue(uint8_t Mod_id,uint8_t CC_id,uint8_t eNB_index) +void phy_reset_ue(module_id_t Mod_id,uint8_t CC_id,uint8_t eNB_index) { // This flushes ALL DLSCH and ULSCH harq buffers of ALL connected eNBs...add the eNB_index later @@ -344,15 +362,15 @@ void process_timing_advance_rar(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint16_t ti ue->timing_advance = timing_advance*4; -#ifdef DEBUG_PHY_PROC +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) /* TODO: fix this log, what is 'HW timing advance'? */ /*LOG_I(PHY,"[UE %d] AbsoluteSubFrame %d.%d, received (rar) timing_advance %d, HW timing advance %d\n",ue->Mod_id,proc->frame_rx, proc->subframe_rx, ue->timing_advance);*/ LOG_I(PHY,"[UE %d] AbsoluteSubFrame %d.%d, received (rar) timing_advance %d\n",ue->Mod_id,proc->frame_rx, proc->subframe_rx, ue->timing_advance); -#endif +LOG_DEBUG_END } -void process_timing_advance(uint8_t Mod_id,uint8_t CC_id,int16_t timing_advance) +void process_timing_advance(module_id_t Mod_id,uint8_t CC_id,int16_t timing_advance) { // uint32_t frame = PHY_vars_UE_g[Mod_id]->frame; @@ -507,7 +525,6 @@ void ue_compute_srs_occasion(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id { int Mod_id = ue->Mod_id; int CC_id = ue->CC_id; - // Panos: Substitute call to ue_get_SR() with the filled ue_SR_config->SR_payload (0, or 1). SR_payload = ue_get_SR(Mod_id, CC_id, frame_tx, @@ -723,7 +740,7 @@ uint16_t get_n1_pucch(PHY_VARS_UE *ue, } else { bundling_flag = ue->pucch_config_dedicated[eNB_id].tdd_AckNackFeedbackMode; -#ifdef DEBUG_PHY_PROC +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) if (bundling_flag==bundling) { LOG_D(PHY,"[UE%d] Frame %d subframe %d : get_n1_pucch, bundling, SR %d/%d\n",ue->Mod_id,proc->frame_tx,subframe,SR, @@ -733,7 +750,7 @@ uint16_t get_n1_pucch(PHY_VARS_UE *ue, ue->scheduling_request_config[eNB_id].sr_PUCCH_ResourceIndex); } -#endif +LOG_DEBUG_END switch (frame_parms->tdd_config) { case 1: // DL:S:UL:UL:DL:DL:S:UL:UL:DL @@ -1201,7 +1218,6 @@ void ulsch_common_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, uint8_t empt int nsymb; int subframe_tx = proc->subframe_tx; - int frame_tx = proc->frame_tx; int ulsch_start; int overflow=0; #if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR) @@ -1210,9 +1226,9 @@ void ulsch_common_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, uint8_t empt #endif VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX_ULSCH_COMMON,VCD_FUNCTION_IN); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->ofdm_mod_stats); -#endif +LOG_DEBUG_END nsymb = (frame_parms->Ncp == 0) ? 14 : 12; #if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR)//this is the EXPRESS MIMO case @@ -1233,50 +1249,23 @@ void ulsch_common_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, uint8_t empt ulsch_start = (frame_parms->samples_per_tti*subframe_tx)-ue->N_TA_offset; //-ue->timing_advance; #endif //else EXMIMO -//#if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR) if (empty_subframe) { -//#if 1 - overflow = ulsch_start - 9*frame_parms->samples_per_tti; - for (aa=0; aanb_antennas_tx; aa++) { - - if (overflow > 0) - { - memset(&ue->common_vars.txdata[aa][ulsch_start],0,4*(frame_parms->samples_per_tti-overflow)); - memset(&ue->common_vars.txdata[aa][0],0,4*overflow); - } - else - { - memset(&ue->common_vars.txdata[aa][ulsch_start],0,4*frame_parms->samples_per_tti); - } - } -/*#else - overflow = ulsch_start - 9*frame_parms->samples_per_tti; - for (aa=0; aanb_antennas_tx; aa++) { - for (k=ulsch_start; ksamples_per_tti*LTE_NUMBER_OF_SUBFRAMES_PER_FRAME,ulsch_start+frame_parms->samples_per_tti); k++) { - ((short*)ue->common_vars.txdata[aa])[2*k] = 0; - ((short*)ue->common_vars.txdata[aa])[2*k+1] = 0; - } - - for (k=0; kcommon_vars.txdata[aa])[2*k] = 0; - ((short*)ue->common_vars.txdata[aa])[2*k+1] = 0; - } - } -#endif*/ - return; + overflow = ulsch_start - 9*frame_parms->samples_per_tti; + for (aa=0; aanb_antennas_tx; aa++) { + + if (overflow > 0) + { + memset(&ue->common_vars.txdata[aa][ulsch_start],0,4*(frame_parms->samples_per_tti-overflow)); + memset(&ue->common_vars.txdata[aa][0],0,4*overflow); + } + else + { + memset(&ue->common_vars.txdata[aa][ulsch_start],0,4*frame_parms->samples_per_tti); + } + } + return; } -//#endif - -// if ((frame_tx%100) == 0) - LOG_D(PHY,"[UE %d] Frame %d, subframe %d: ulsch_start = %d (rxoff %d, HW TA %d, timing advance %d, TA_offset %d\n", - ue->Mod_id,frame_tx,subframe_tx, - ulsch_start, - ue->rx_offset, - ue->hw_timing_advance, - ue->timing_advance, - ue->N_TA_offset); - for (aa=0; aanb_antennas_tx; aa++) { if (frame_parms->Ncp == 1) @@ -1299,7 +1288,7 @@ void ulsch_common_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, uint8_t empt #endif nsymb>>1, &ue->frame_parms); - + normal_prefix_mod(&ue->common_vars.txdataF[aa][((subframe_tx*nsymb)+(nsymb>>1))*frame_parms->ofdm_symbol_size], #if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR) dummy_tx_buffer+(frame_parms->samples_per_tti>>1), @@ -1308,7 +1297,7 @@ void ulsch_common_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, uint8_t empt #endif nsymb>>1, &ue->frame_parms); - } + } #if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR) apply_7_5_kHz(ue,dummy_tx_buffer,0); @@ -1336,11 +1325,11 @@ void ulsch_common_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, uint8_t empt // handle switch before 1st TX subframe, guarantee that the slot prior to transmission is switch on for (k=ulsch_start - (frame_parms->samples_per_tti>>1) ; kcommon_vars.txdata[aa][k+frame_parms->samples_per_tti*LTE_NUMBER_OF_SUBFRAMES_PER_FRAME] &= 0xFFFEFFFE; + ue->common_vars.txdata[aa][k+frame_parms->samples_per_tti*LTE_NUMBER_OF_SUBFRAMES_PER_FRAME] &= 0xFFFEFFFE; else if (k>(frame_parms->samples_per_tti*LTE_NUMBER_OF_SUBFRAMES_PER_FRAME)) - ue->common_vars.txdata[aa][k-frame_parms->samples_per_tti*LTE_NUMBER_OF_SUBFRAMES_PER_FRAME] &= 0xFFFEFFFE; + ue->common_vars.txdata[aa][k-frame_parms->samples_per_tti*LTE_NUMBER_OF_SUBFRAMES_PER_FRAME] &= 0xFFFEFFFE; else - ue->common_vars.txdata[aa][k] &= 0xFFFEFFFE; + ue->common_vars.txdata[aa][k] &= 0xFFFEFFFE; } #endif #endif @@ -1350,15 +1339,15 @@ void ulsch_common_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, uint8_t empt if( (crash == 1) && (subframe_tx == 0) ) { LOG_E(PHY,"***** DUMP TX Signal [ulsch_start %d] *****\n",ulsch_start); - write_output("txBuff.m","txSignal",&ue->common_vars.txdata[aa][ulsch_start],frame_parms->samples_per_tti,1,1); + LOG_M("txBuff.m","txSignal",&ue->common_vars.txdata[aa][ulsch_start],frame_parms->samples_per_tti,1,1); } */ } //nb_antennas_tx -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->ofdm_mod_stats); -#endif +LOG_DEBUG_END VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX_ULSCH_COMMON,VCD_FUNCTION_OUT); @@ -1368,7 +1357,7 @@ void ue_prach_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin int frame_tx = proc->frame_tx; int subframe_tx = proc->subframe_tx; - int prach_power; + LOG_USEDINLOG_VAR(int, prach_power); PRACH_RESOURCES_t prach_resources_local; VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX_PRACH, VCD_FUNCTION_IN); @@ -1645,7 +1634,7 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB } -#if T_TRACER +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) if(ue->ulsch[eNB_id]->o_ACK[0]) { LOG_I(PHY,"PUSCH ACK\n"); @@ -1658,19 +1647,17 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB T(T_UE_PHY_DLSCH_UE_NACK, T_INT(eNB_id), T_INT(frame_tx%1024), T_INT(subframe_tx), T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->rnti), T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->current_harq_pid)); } -#endif -#ifdef UE_DEBUG_TRACE LOG_I(PHY,"[UE %d][PDSCH %x] AbsSubFrame %d.%d Generating ACK (%d,%d) for %d bits on PUSCH\n", Mod_id, ue->ulsch[eNB_id]->rnti, frame_tx%1024,subframe_tx, ue->ulsch[eNB_id]->o_ACK[0],ue->ulsch[eNB_id]->o_ACK[1], ue->ulsch[eNB_id]->harq_processes[harq_pid]->O_ACK); -#endif +LOG_DEBUG_END } -#ifdef UE_DEBUG_TRACE +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) LOG_D(PHY, "[UE %d][PUSCH %d] AbsSubframe %d.%d Generating PUSCH : first_rb %d, nb_rb %d, round %d, mcs %d, rv %d, " "cyclic_shift %d (cyclic_shift_common %d,n_DMRS2 %d,n_PRS %d), ACK (%d,%d), O_ACK %d, ack_status_cw0 %d ack_status_cw1 %d bundling %d, Nbundled %d, CQI %d, RI %d\n", @@ -1692,7 +1679,7 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB ue->ulsch[eNB_id]->bundling, Nbundled, cqi_status, ri_status); -#endif +LOG_DEBUG_END @@ -1714,9 +1701,9 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB ue->prach_resources[eNB_id]->Msg3[6], ue->prach_resources[eNB_id]->Msg3[7], ue->prach_resources[eNB_id]->Msg3[8]); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->ulsch_encoding_stats); -#endif +LOG_DEBUG_END AssertFatal(ulsch_encoding(ue->prach_resources[eNB_id]->Msg3, ue, @@ -1726,14 +1713,12 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB ue->transmission_mode[eNB_id],0,0)==0, "ulsch_coding.c: FATAL ERROR: returning\n"); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->phy_proc_tx); - printf("------FULL TX PROC : %5.2f ------\n",ue->phy_proc_tx.p_time/(cpuf*1000.0)); -#endif - -#if UE_TIMING_TRACE + LOG_UI(PHY,"------FULL TX PROC : %5.2f ------\n",ue->phy_proc_tx.p_time/(cpuf*1000.0)); stop_meas(&ue->ulsch_encoding_stats); -#endif +LOG_DEBUG_END + if (ue->mac_enabled == 1) { // signal MAC that Msg3 was sent @@ -1767,16 +1752,14 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB -#ifdef DEBUG_PHY_PROC -#ifdef DEBUG_ULSCH +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) LOG_D(PHY,"[UE] Frame %d, subframe %d : ULSCH SDU (TX harq_pid %d) (%d bytes) : \n",frame_tx,subframe_tx,harq_pid, ue->ulsch[eNB_id]->harq_processes[harq_pid]->TBS>>3); for (i=0; iulsch[eNB_id]->harq_processes[harq_pid]->TBS>>3; i++) LOG_T(PHY,"%x.",ulsch_input_buffer[i]); LOG_T(PHY,"\n"); -#endif -#endif +LOG_DEBUG_END } else { unsigned int taus(void); @@ -1786,9 +1769,9 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB } -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->ulsch_encoding_stats); -#endif +LOG_DEBUG_END if (abstraction_flag==0) { if (ulsch_encoding(ulsch_input_buffer, @@ -1800,16 +1783,16 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB Nbundled)!=0) { LOG_E(PHY,"ulsch_coding.c: FATAL ERROR: returning\n"); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX, VCD_FUNCTION_OUT); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->phy_proc_tx); -#endif +LOG_DEBUG_END return; } } -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->ulsch_encoding_stats); -#endif +LOG_DEBUG_END } if (abstraction_flag == 0) { @@ -1834,14 +1817,13 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB T(T_UE_PHY_PUSCH_TX_POWER, T_INT(eNB_id), T_INT(frame_tx%1024), T_INT(subframe_tx),T_INT(ue->tx_power_dBm[subframe_tx]), T_INT(tx_amp),T_INT(ue->ulsch[eNB_id]->f_pusch),T_INT(get_PL(Mod_id,0,eNB_id)),T_INT(nb_rb)); -#ifdef UE_DEBUG_TRACE +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) LOG_D(PHY,"[UE %d][PUSCH %d] AbsSubFrame %d.%d, generating PUSCH, Po_PUSCH: %d dBm (max %d dBm), amp %d\n", Mod_id,harq_pid,frame_tx%1024,subframe_tx,ue->tx_power_dBm[subframe_tx],ue->tx_power_max_dBm, tx_amp); -#endif -#if UE_TIMING_TRACE - +LOG_DEBUG_END +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->ulsch_modulation_stats); -#endif +LOG_DEBUG_END ulsch_modulation(ue->common_vars.txdataF, tx_amp, frame_tx, @@ -1859,9 +1841,10 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB first_rb, nb_rb, aa); -#if UE_TIMING_TRACE + +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->ulsch_modulation_stats); -#endif +LOG_DEBUG_END } @@ -2175,29 +2158,27 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin case pucch_format1a: case pucch_format1b: { - if (ue->mac_enabled == 1) { - Po_PUCCH = pucch_power_cntl(ue,proc,subframe_tx,eNB_id,format); - } - else { - Po_PUCCH = ue->tx_power_max_dBm; - } - ue->tx_power_dBm[subframe_tx] = Po_PUCCH; - ue->tx_total_RE[subframe_tx] = 12; - + if (ue->mac_enabled == 1) { + Po_PUCCH = pucch_power_cntl(ue,proc,subframe_tx,eNB_id,format); + } + else { + Po_PUCCH = ue->tx_power_max_dBm; + } + ue->tx_power_dBm[subframe_tx] = Po_PUCCH; + ue->tx_total_RE[subframe_tx] = 12; + #if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR) - tx_amp = get_tx_amp(Po_PUCCH, - ue->tx_power_max_dBm, - ue->frame_parms.N_RB_UL, - 1); + tx_amp = get_tx_amp(Po_PUCCH, + ue->tx_power_max_dBm, + ue->frame_parms.N_RB_UL, + 1); #else - tx_amp = AMP; -#endif -#if T_TRACER - T(T_UE_PHY_PUCCH_TX_POWER, T_INT(eNB_id), T_INT(frame_tx%1024), T_INT(subframe_tx),T_INT(ue->tx_power_dBm[subframe_tx]), - T_INT(tx_amp),T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->g_pucch),T_INT(get_PL(ue->Mod_id,ue->CC_id,eNB_id))); + tx_amp = AMP; #endif -#ifdef UE_DEBUG_TRACE + T(T_UE_PHY_PUCCH_TX_POWER, T_INT(eNB_id), T_INT(frame_tx%1024), T_INT(subframe_tx),T_INT(ue->tx_power_dBm[subframe_tx]), + T_INT(tx_amp),T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->g_pucch),T_INT(get_PL(ue->Mod_id,ue->CC_id,eNB_id))); + if(format == pucch_format1) { LOG_D(PHY,"[UE %d][SR %x] AbsSubframe %d.%d Generating PUCCH 1 (SR for PUSCH), an_srs_simultanous %d, shorten_pucch %d, n1_pucch %d, Po_PUCCH %d\n", @@ -2238,9 +2219,9 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin tx_amp); } } -#endif -#if T_TRACER + +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) if(pucch_payload[0]) { T(T_UE_PHY_DLSCH_UE_ACK, T_INT(eNB_id), T_INT(frame_tx%1024), T_INT(subframe_tx), T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->rnti), @@ -2251,7 +2232,7 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin T(T_UE_PHY_DLSCH_UE_NACK, T_INT(eNB_id), T_INT(frame_tx%1024), T_INT(subframe_tx), T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->rnti), T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->current_harq_pid)); } -#endif +LOG_DEBUG_END generate_pucch1x(ue->common_vars.txdataF, &ue->frame_parms, @@ -2287,11 +2268,9 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin #else tx_amp = AMP; #endif -#if T_TRACER T(T_UE_PHY_PUCCH_TX_POWER, T_INT(eNB_id), T_INT(frame_tx%1024), T_INT(subframe_tx),T_INT(ue->tx_power_dBm[subframe_tx]), T_INT(tx_amp),T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->g_pucch),T_INT(get_PL(ue->Mod_id,ue->CC_id,eNB_id))); -#endif -#ifdef UE_DEBUG_TRACE +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) LOG_D(PHY,"[UE %d][RNTI %x] AbsSubFrame %d.%d Generating PUCCH 2 (RI or CQI), Po_PUCCH %d, isShortenPucch %d, amp %d\n", Mod_id, ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->rnti, @@ -2299,7 +2278,7 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin Po_PUCCH, isShortenPucch, tx_amp); -#endif +LOG_DEBUG_END generate_pucch2x(ue->common_vars.txdataF, &ue->frame_parms, ue->ncs_cell, @@ -2372,14 +2351,14 @@ void phy_procedures_UE_TX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,ui VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX,VCD_FUNCTION_IN); LOG_D(PHY,"****** start TX-Chain for AbsSubframe %d.%d ******\n", frame_tx, subframe_tx); -#if T_TRACER + T(T_UE_PHY_UL_TICK, T_INT(ue->Mod_id), T_INT(frame_tx%1024), T_INT(subframe_tx)); -#endif + ue->generate_ul_signal[eNB_id] = 0; -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->phy_proc_tx); -#endif +LOG_DEBUG_END ue->tx_power_dBm[subframe_tx]=-127; @@ -2390,30 +2369,32 @@ void phy_procedures_UE_TX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,ui frame_parms->ofdm_symbol_size*frame_parms->symbols_per_tti*sizeof(int32_t)); } + if (subframe_select(&ue->frame_parms,proc->subframe_tx) == SF_UL || + ue->frame_parms.frame_type == FDD) { + if (ue->UE_mode[eNB_id] != PRACH ) { + // check cell srs subframe and ue srs subframe. This has an impact on pusch encoding + isSubframeSRS = is_srs_occasion_common(&ue->frame_parms,proc->frame_tx,proc->subframe_tx); - if (ue->UE_mode[eNB_id] != PRACH) { - // check cell srs subframe and ue srs subframe. This has an impact on pusch encoding - isSubframeSRS = is_srs_occasion_common(&ue->frame_parms,proc->frame_tx,proc->subframe_tx); - - ue_compute_srs_occasion(ue,proc,eNB_id,isSubframeSRS); - - ue_ulsch_uespec_procedures(ue,proc,eNB_id,abstraction_flag); - - LOG_D(PHY,"ULPOWERS After ulsch_uespec_procedures : ue->tx_power_dBm[%d]=%d, NPRB %d\n", - subframe_tx,ue->tx_power_dBm[subframe_tx],ue->tx_total_RE[subframe_tx]); - } - - if (ue->UE_mode[eNB_id] == PUSCH) { + ue_compute_srs_occasion(ue,proc,eNB_id,isSubframeSRS); + + ue_ulsch_uespec_procedures(ue,proc,eNB_id,abstraction_flag); + + LOG_D(PHY,"ULPOWERS After ulsch_uespec_procedures : ue->tx_power_dBm[%d]=%d, NPRB %d\n", + subframe_tx,ue->tx_power_dBm[subframe_tx],ue->tx_total_RE[subframe_tx]); + } + + if (ue->UE_mode[eNB_id] == PUSCH) { // check if we need to use PUCCH 1a/1b ue_pucch_procedures(ue,proc,eNB_id,abstraction_flag); // check if we need to use SRS ue_srs_procedures(ue,proc,eNB_id,abstraction_flag); - } // UE_mode==PUSCH + } // UE_mode==PUSCH - + } - + LOG_D(PHY,"doing ulsch_common_procedures (%d.%d): generate_ul_signal %d\n",frame_tx,subframe_tx, + ue->generate_ul_signal[eNB_id]); ulsch_common_procedures(ue,proc, (ue->generate_ul_signal[eNB_id] == 0)); if ((ue->UE_mode[eNB_id] == PRACH) && @@ -2470,9 +2451,9 @@ void phy_procedures_UE_TX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,ui LOG_D(PHY,"****** end TX-Chain for AbsSubframe %d.%d ******\n", frame_tx, subframe_tx); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX, VCD_FUNCTION_OUT); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->phy_proc_tx); -#endif +LOG_DEBUG_END } void phy_procedures_UE_S_TX(PHY_VARS_UE *ue,uint8_t eNB_id,uint8_t abstraction_flag) @@ -2489,8 +2470,8 @@ void phy_procedures_UE_S_TX(PHY_VARS_UE *ue,uint8_t eNB_id,uint8_t abstraction_f ue->common_vars.txdata[aa][i] = 0x00010001; #else //this is the normal case - memset(&ue->common_vars.txdata[aa][0],0, - (LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*frame_parms->samples_per_tti)*sizeof(int32_t)); + // memset(&ue->common_vars.txdata[aa][0],0, + // (LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*frame_parms->samples_per_tti)*sizeof(int32_t)); #endif //else EXMIMO } @@ -2525,7 +2506,7 @@ void ue_measurement_procedures( 0, subframe_rx); -#if T_TRACER + if(slot == 0) T(T_UE_PHY_MEAS, T_INT(eNB_id), T_INT(proc->frame_rx%1024), T_INT(proc->subframe_rx), T_INT((int)(10*log10(ue->measurements.rsrp[0])-ue->rx_total_gain_dB)), @@ -2535,7 +2516,6 @@ void ue_measurement_procedures( T_INT((int)ue->measurements.n0_power_avg_dB), T_INT((int)ue->measurements.wideband_cqi_avg[0]), T_INT((int)ue->common_vars.freq_offset)); -#endif } if (l==(6-ue->frame_parms.Ncp)) { @@ -2715,9 +2695,9 @@ void ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, uin } -#ifdef DEBUG_PHY_PROC +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) - LOG_D(PHY,"[UE %d] frame %d, subframe %d, Received PBCH (MIB): nb_antenna_ports_eNB %d, tx_ant %d, frame_tx %d. N_RB_DL %d, phich_duration %d, phich_resource %d/6!\n", + LOG_UI(PHY,"[UE %d] frame %d, subframe %d, Received PBCH (MIB): nb_antenna_ports_eNB %d, tx_ant %d, frame_tx %d. N_RB_DL %d, phich_duration %d, phich_resource %d/6!\n", ue->Mod_id, frame_rx, subframe_rx, @@ -2727,7 +2707,7 @@ void ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, uin ue->frame_parms.N_RB_DL, ue->frame_parms.phich_config_common.phich_duration, ue->frame_parms.phich_config_common.phich_resource); -#endif +LOG_DEBUG_END } else { @@ -2738,22 +2718,21 @@ void ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, uin LOG_I(PHY,"[UE %d] rx_offset %d\n",ue->Mod_id,ue->rx_offset); - write_output("rxsig0.m","rxs0", ue->common_vars.rxdata[0],ue->frame_parms.samples_per_tti,1,1); + LOG_M("rxsig0.m","rxs0", ue->common_vars.rxdata[0],ue->frame_parms.samples_per_tti,1,1); - write_output("H00.m","h00",&(ue->common_vars.dl_ch_estimates[0][0][0]),((ue->frame_parms.Ncp==0)?7:6)*(ue->frame_parms.ofdm_symbol_size),1,1); - write_output("H10.m","h10",&(ue->common_vars.dl_ch_estimates[0][2][0]),((ue->frame_parms.Ncp==0)?7:6)*(ue->frame_parms.ofdm_symbol_size),1,1); + LOG_M("H00.m","h00",&(ue->common_vars.dl_ch_estimates[0][0][0]),((ue->frame_parms.Ncp==0)?7:6)*(ue->frame_parms.ofdm_symbol_size),1,1); + LOG_M("H10.m","h10",&(ue->common_vars.dl_ch_estimates[0][2][0]),((ue->frame_parms.Ncp==0)?7:6)*(ue->frame_parms.ofdm_symbol_size),1,1); - write_output("rxsigF0.m","rxsF0", ue->common_vars.rxdataF[0],8*ue->frame_parms.ofdm_symbol_size,1,1); - write_output("PBCH_rxF0_ext.m","pbch0_ext",ue->pbch_vars[0]->rxdataF_ext[0],12*4*6,1,1); - write_output("PBCH_rxF0_comp.m","pbch0_comp",ue->pbch_vars[0]->rxdataF_comp[0],12*4*6,1,1); - write_output("PBCH_rxF_llr.m","pbch_llr",ue->pbch_vars[0]->llr,(ue->frame_parms.Ncp==0) ? 1920 : 1728,1,4); + LOG_M("rxsigF0.m","rxsF0", ue->common_vars.rxdataF[0],8*ue->frame_parms.ofdm_symbol_size,1,1); + LOG_M("PBCH_rxF0_ext.m","pbch0_ext",ue->pbch_vars[0]->rxdataF_ext[0],12*4*6,1,1); + LOG_M("PBCH_rxF0_comp.m","pbch0_comp",ue->pbch_vars[0]->rxdataF_comp[0],12*4*6,1,1); + LOG_M("PBCH_rxF_llr.m","pbch_llr",ue->pbch_vars[0]->llr,(ue->frame_parms.Ncp==0) ? 1920 : 1728,1,4); exit(-1); */ ue->pbch_vars[eNB_id]->pdu_errors_conseq++; ue->pbch_vars[eNB_id]->pdu_errors++; - // Panos: Substitute call to rrc_out_of_sync_ind() with fill_bch_incication(sync=0). if (ue->mac_enabled == 1) rrc_out_of_sync_ind(ue->Mod_id,frame_rx,eNB_id); else AssertFatal(ue->pbch_vars[eNB_id]->pdu_errors_conseq<100, "More that 100 consecutive PBCH errors! Exiting!\n"); @@ -2765,12 +2744,12 @@ void ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, uin ue->pbch_vars[eNB_id]->pdu_errors_last = ue->pbch_vars[eNB_id]->pdu_errors; } -#ifdef DEBUG_PHY_PROC - LOG_D(PHY,"[UE %d] frame %d, slot %d, PBCH errors = %d, consecutive errors = %d!\n", +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) + LOG_UI(PHY,"[UE %d] frame %d, slot %d, PBCH errors = %d, consecutive errors = %d!\n", ue->Mod_id,frame_rx, subframe_rx, ue->pbch_vars[eNB_id]->pdu_errors, ue->pbch_vars[eNB_id]->pdu_errors_conseq); -#endif +LOG_DEBUG_END VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_PBCH_PROCEDURES, VCD_FUNCTION_OUT); } @@ -2790,9 +2769,9 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint LOG_D(PHY,"DCI Decoding procedure in %d.%d\n",frame_rx,subframe_rx); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_PDCCH_PROCEDURES, VCD_FUNCTION_IN); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->dlsch_rx_pdcch_stats); -#endif +LOG_DEBUG_END VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RX_PDCCH, VCD_FUNCTION_IN); rx_pdcch(ue, @@ -2919,17 +2898,17 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint ue->dlsch_received[eNB_id]++; -#ifdef DEBUG_PHY_PROC +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) LOG_D(PHY,"[UE %d] Generated UE DLSCH C_RNTI format %d\n",ue->Mod_id,dci_alloc_rx[i].format); dump_dci(&ue->frame_parms, &dci_alloc_rx[i]); LOG_D(PHY,"[UE %d] *********** dlsch->active in subframe %d=> %d\n",ue->Mod_id,subframe_rx,ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->active); -#endif +LOG_DEBUG_END // we received a CRNTI, so we're in PUSCH if (ue->UE_mode[eNB_id] != PUSCH) { -#ifdef DEBUG_PHY_PROC +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) LOG_D(PHY,"[UE %d] Frame %d, subframe %d: Received DCI with CRNTI %x => Mode PUSCH\n",ue->Mod_id,frame_rx,subframe_rx,ue->pdcch_vars[subframe_rx&1][eNB_id]->crnti); -#endif +LOG_DEBUG_END //dump_dci(&ue->frame_parms, &dci_alloc_rx[i]); ue->UE_mode[eNB_id] = PUSCH; @@ -2944,9 +2923,9 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint ((dci_alloc_rx[i].format == format1A) || (dci_alloc_rx[i].format == format1C))) { -#ifdef DEBUG_PHY_PROC +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) LOG_D(PHY,"[UE %d] subframe %d: Found rnti %x, format 1%s, dci_cnt %d\n",ue->Mod_id,subframe_rx,dci_alloc_rx[i].rnti,dci_alloc_rx[i].format==format1A?"A":"C",i); -#endif +LOG_DEBUG_END if (generate_ue_dlsch_params_from_dci(frame_rx, subframe_rx, @@ -2975,9 +2954,9 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint else if ((dci_alloc_rx[i].rnti == P_RNTI) && ((dci_alloc_rx[i].format == format1A) || (dci_alloc_rx[i].format == format1C))) { -#ifdef DEBUG_PHY_PROC +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) LOG_D(PHY,"[UE %d] subframe %d: Found rnti %x, format 1%s, dci_cnt %d\n",ue->Mod_id,subframe_rx,dci_alloc_rx[i].rnti,dci_alloc_rx[i].format==format1A?"A":"C",i); -#endif +LOG_DEBUG_END if (generate_ue_dlsch_params_from_dci(frame_rx, @@ -3007,9 +2986,9 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint (dci_alloc_rx[i].rnti == ue->prach_resources[eNB_id]->ra_RNTI) && (dci_alloc_rx[i].format == format1A)) { -#ifdef DEBUG_PHY_PROC +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) LOG_D(PHY,"[UE %d][RAPROC] subframe %d: Found RA rnti %x, format 1A, dci_cnt %d\n",ue->Mod_id,subframe_rx,dci_alloc_rx[i].rnti,i); -#endif +LOG_DEBUG_END if (generate_ue_dlsch_params_from_dci(frame_rx, @@ -3030,18 +3009,18 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint ue->dlsch_ra_received[eNB_id]++; -#ifdef DEBUG_PHY_PROC +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) LOG_D(PHY,"[UE %d] Generate UE DLSCH RA_RNTI format 1A, rb_alloc %x, dlsch_ra[eNB_id] %p\n", ue->Mod_id,ue->dlsch_ra[eNB_id]->harq_processes[0]->rb_alloc_even[0],ue->dlsch_ra[eNB_id]); -#endif +LOG_DEBUG_END } } else if( (dci_alloc_rx[i].rnti == ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->crnti) && (dci_alloc_rx[i].format == format0)) { -#ifdef DEBUG_PHY_PROC +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) LOG_D(PHY,"[UE %d][PUSCH] Frame %d subframe %d: Found rnti %x, format 0, dci_cnt %d\n", ue->Mod_id,frame_rx,subframe_rx,dci_alloc_rx[i].rnti,i); -#endif +LOG_DEBUG_END ue->ulsch_no_allocation_counter[eNB_id] = 0; //dump_dci(&ue->frame_parms,&dci_alloc_rx[i]); @@ -3059,37 +3038,36 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint CBA_RNTI, eNB_id, 0)==0)) { -#if T_TRACER - LTE_DL_FRAME_PARMS *frame_parms = &ue->frame_parms; - uint8_t harq_pid = subframe2harq_pid(frame_parms, - pdcch_alloc2ul_frame(frame_parms,proc->frame_rx,proc->subframe_rx), - pdcch_alloc2ul_subframe(frame_parms,proc->subframe_rx)); - +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) + + LOG_USEDINLOG_VAR(int8_t,harq_pid) = subframe2harq_pid(&ue->frame_parms, + pdcch_alloc2ul_frame(&ue->frame_parms,proc->frame_rx,proc->subframe_rx), + pdcch_alloc2ul_subframe(&ue->frame_parms,proc->subframe_rx)); T(T_UE_PHY_ULSCH_UE_DCI, T_INT(eNB_id), T_INT(proc->frame_rx%1024), T_INT(proc->subframe_rx), - T_INT(dci_alloc_rx[i].rnti), T_INT(harq_pid), + T_INT(dci_alloc_rx[i].rnti), + T_INT(harq_pid), T_INT(ue->ulsch[eNB_id]->harq_processes[harq_pid]->mcs), T_INT(ue->ulsch[eNB_id]->harq_processes[harq_pid]->round), T_INT(ue->ulsch[eNB_id]->harq_processes[harq_pid]->first_rb), T_INT(ue->ulsch[eNB_id]->harq_processes[harq_pid]->nb_rb), T_INT(ue->ulsch[eNB_id]->harq_processes[harq_pid]->TBS)); -#endif -#ifdef DEBUG_PHY_PROC + LOG_D(PHY,"[UE %d] Generate UE ULSCH C_RNTI format 0 (subframe %d)\n",ue->Mod_id,subframe_rx); -#endif +LOG_DEBUG_END } } else if( (dci_alloc_rx[i].rnti == ue->ulsch[eNB_id]->cba_rnti[0]) && (dci_alloc_rx[i].format == format0)) { // UE could belong to more than one CBA group // ue->Mod_id%ue->ulsch[eNB_id]->num_active_cba_groups] -#ifdef DEBUG_PHY_PROC +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) LOG_D(PHY,"[UE %d][PUSCH] Frame %d subframe %d: Found cba rnti %x, format 0, dci_cnt %d\n", ue->Mod_id,frame_rx,subframe_rx,dci_alloc_rx[i].rnti,i); /* if (((frame_rx%100) == 0) || (frame_rx < 20)) dump_dci(&ue->frame_parms, &dci_alloc_rx[i]); */ -#endif +LOG_DEBUG_END ue->ulsch_no_allocation_counter[eNB_id] = 0; //dump_dci(&ue->frame_parms,&dci_alloc_rx[i]); @@ -3108,28 +3086,28 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint eNB_id, 0)==0)) { -#ifdef DEBUG_PHY_PROC +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) LOG_D(PHY,"[UE %d] Generate UE ULSCH CBA_RNTI format 0 (subframe %d)\n",ue->Mod_id,subframe_rx); -#endif +LOG_DEBUG_END ue->ulsch[eNB_id]->num_cba_dci[(subframe_rx+4)%10]++; } } else { -#ifdef DEBUG_PHY_PROC +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) LOG_D(PHY,"[UE %d] frame %d, subframe %d: received DCI %d with RNTI=%x (C-RNTI:%x, CBA_RNTI %x) and format %d!\n",ue->Mod_id,frame_rx,subframe_rx,i,dci_alloc_rx[i].rnti, ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->crnti, ue->ulsch[eNB_id]->cba_rnti[0], dci_alloc_rx[i].format); // dump_dci(&ue->frame_parms, &dci_alloc_rx[i]); -#endif +LOG_DEBUG_END } } -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->dlsch_rx_pdcch_stats); -#endif +LOG_DEBUG_END VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_PDCCH_PROCEDURES, VCD_FUNCTION_OUT); return(0); } @@ -3231,14 +3209,14 @@ void ue_pmch_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc,int eNB_id,int abs ue->dlsch_MCH[0]->max_turbo_iterations, ue->dlsch_MCH[0]->harq_processes[0]->G); dump_mch(ue,0,ue->dlsch_MCH[0]->harq_processes[0]->G,subframe_rx); -#ifdef DEBUG_DLSCH +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) for (int i=0; idlsch_MCH[0]->harq_processes[0]->TBS>>3; i++) { LOG_T(PHY,"%02x.",ue->dlsch_MCH[0]->harq_processes[0]->c[0][i]); } LOG_T(PHY,"\n"); -#endif +LOG_DEBUG_END // if (subframe_rx==9) @@ -3368,12 +3346,13 @@ void ue_pdsch_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, int eNB_id, PDSC first_symbol_flag = 1; else first_symbol_flag = 0; -#if UE_TIMING_TRACE + +LOG_DEBUG_BEGIN(UE_TIMING) uint8_t slot = 0; if(m >= ue->frame_parms.symbols_per_tti>>1) slot = 1; start_meas(&ue->dlsch_llr_stats_parallelization[ue->current_thread_id[subframe_rx]][slot]); -#endif +LOG_DEBUG_END // process DLSCH received in first slot rx_pdsch(ue, pdsch, @@ -3386,14 +3365,14 @@ void ue_pdsch_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, int eNB_id, PDSC dual_stream_UE, i_mod, dlsch0->current_harq_pid); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) + uint8_t slot = 0; + if(m >= ue->frame_parms.symbols_per_tti>>1) + slot = 1; stop_meas(&ue->dlsch_llr_stats_parallelization[ue->current_thread_id[subframe_rx]][slot]); -#if DISABLE_LOG_X - printf("[AbsSFN %d.%d] LLR Computation Symbol %d %5.2f \n",proc->frame_rx,subframe_rx,m,ue->dlsch_llr_stats_parallelization[ue->current_thread_id[subframe_rx]][slot].p_time/(cpuf*1000.0)); -#else - LOG_D(PHY, "[AbsSFN %d.%d] LLR Computation Symbol %d %5.2f \n",proc->frame_rx,subframe_rx,m,ue->dlsch_llr_stats_parallelization[ue->current_thread_id[subframe_rx]][slot].p_time/(cpuf*1000.0)); -#endif -#endif + LOG_UI(PHY, "[AbsSFN %d.%d] LLR Computation Symbol %d %5.2f \n",proc->frame_rx,subframe_rx,m,ue->dlsch_llr_stats_parallelization[ue->current_thread_id[subframe_rx]][slot].p_time/(cpuf*1000.0)); +LOG_DEBUG_END + if(first_symbol_flag) @@ -3429,7 +3408,6 @@ void process_rar(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, int eNB_id, runmode_t mo subframe_rx, ue->prach_resources[eNB_id]->ra_PreambleIndex); - // Panos: Substitute call to ue_process_rar() with call to fill_dlsch_rar_indication() timing_advance = ue_process_rar(ue->Mod_id, ue->CC_id, frame_rx, @@ -3588,9 +3566,9 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue, frame_rx, subframe_rx, ue->transmission_mode[eNB_id]<7?0:ue->transmission_mode[eNB_id]); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->dlsch_unscrambling_stats); -#endif +LOG_DEBUG_END dlsch_unscrambling(&ue->frame_parms, 0, dlsch0, @@ -3598,24 +3576,22 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue, pdsch_vars->llr[0], 0, subframe_rx<<1); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->dlsch_unscrambling_stats); -#endif +LOG_DEBUG_END -#if 0 - LOG_I(PHY," ------ start turbo decoder for AbsSubframe %d.%d / %d ------ \n", frame_rx, subframe_rx, harq_pid); - LOG_I(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> nb_rb %d \n", frame_rx, subframe_rx, harq_pid, dlsch0->harq_processes[harq_pid]->nb_rb); - LOG_I(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> rb_alloc_even %x \n", frame_rx, subframe_rx, harq_pid, dlsch0->harq_processes[harq_pid]->rb_alloc_even); - LOG_I(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> Qm %d \n", frame_rx, subframe_rx, harq_pid, dlsch0->harq_processes[harq_pid]->Qm); - LOG_I(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> Nl %d \n", frame_rx, subframe_rx, harq_pid, dlsch0->harq_processes[harq_pid]->Nl); - LOG_I(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> G %d \n", frame_rx, subframe_rx, harq_pid, dlsch0->harq_processes[harq_pid]->G); - LOG_I(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> Kmimo %d \n", frame_rx, subframe_rx, harq_pid, dlsch0->Kmimo); - LOG_I(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> Pdcch Sym %d \n", frame_rx, subframe_rx, harq_pid, ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->num_pdcch_symbols); -#endif + LOG_D(PHY," ------ start turbo decoder for AbsSubframe %d.%d / %d ------ \n", frame_rx, subframe_rx, harq_pid); + LOG_D(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> nb_rb %d \n", frame_rx, subframe_rx, harq_pid, dlsch0->harq_processes[harq_pid]->nb_rb); + LOG_D(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> rb_alloc_even %x \n", frame_rx, subframe_rx, harq_pid, (unsigned int)((intptr_t)dlsch0->harq_processes[harq_pid]->rb_alloc_even)); + LOG_D(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> Qm %d \n", frame_rx, subframe_rx, harq_pid, dlsch0->harq_processes[harq_pid]->Qm); + LOG_D(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> Nl %d \n", frame_rx, subframe_rx, harq_pid, dlsch0->harq_processes[harq_pid]->Nl); + LOG_D(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> G %d \n", frame_rx, subframe_rx, harq_pid, dlsch0->harq_processes[harq_pid]->G); + LOG_D(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> Kmimo %d \n", frame_rx, subframe_rx, harq_pid, dlsch0->Kmimo); + LOG_D(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> Pdcch Sym %d \n", frame_rx, subframe_rx, harq_pid, ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->num_pdcch_symbols); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]]); -#endif +LOG_DEBUG_END ret = dlsch_decoding(ue, pdsch_vars->llr[0], &ue->frame_parms, @@ -3627,21 +3603,14 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue, pdsch==PDSCH?1:0, dlsch0->harq_processes[harq_pid]->TBS>256?1:0); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]]); -#if DISABLE_LOG_X - printf(" --> Unscrambling for CW0 %5.3f\n", - (ue->dlsch_unscrambling_stats.p_time)/(cpuf*1000.0)); - printf("AbsSubframe %d.%d --> Turbo Decoding for CW0 %5.3f\n", - frame_rx%1024, subframe_rx,(ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]].p_time)/(cpuf*1000.0)); -#else - LOG_D(PHY, " --> Unscrambling for CW0 %5.3f\n", + LOG_UI(PHY, " --> Unscrambling for CW0 %5.3f\n", (ue->dlsch_unscrambling_stats.p_time)/(cpuf*1000.0)); - LOG_D(PHY, "AbsSubframe %d.%d --> Turbo Decoding for CW0 %5.3f\n", + LOG_UI(PHY, "AbsSubframe %d.%d --> Turbo Decoding for CW0 %5.3f\n", frame_rx%1024, subframe_rx,(ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]].p_time)/(cpuf*1000.0)); -#endif -#endif +LOG_DEBUG_END if(is_cw1_active) { // start turbo decode for CW 1 @@ -3654,9 +3623,9 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue, frame_rx, subframe_rx, ue->transmission_mode[eNB_id]<7?0:ue->transmission_mode[eNB_id]); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->dlsch_unscrambling_stats); -#endif +LOG_DEBUG_END dlsch_unscrambling(&ue->frame_parms, 0, dlsch1, @@ -3664,23 +3633,21 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue, pdsch_vars->llr[1], 1, subframe_rx<<1); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->dlsch_unscrambling_stats); -#endif +LOG_DEBUG_END -#if 0 - LOG_I(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> nb_rb %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->harq_processes[harq_pid]->nb_rb); - LOG_I(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> rb_alloc_even %x \n", frame_rx, subframe_rx, harq_pid, dlsch1->harq_processes[harq_pid]->rb_alloc_even); - LOG_I(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> Qm %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->harq_processes[harq_pid]->Qm); - LOG_I(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> Nl %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->harq_processes[harq_pid]->Nl); - LOG_I(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> G %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->harq_processes[harq_pid]->G); - LOG_I(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> Kmimo %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->Kmimo); - LOG_I(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> Pdcch Sym %d \n", frame_rx, subframe_rx, harq_pid, ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->num_pdcch_symbols); -#endif + LOG_D(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> nb_rb %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->harq_processes[harq_pid]->nb_rb); + LOG_D(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> rb_alloc_even %x \n", frame_rx, subframe_rx, harq_pid, (uint16_t)((intptr_t)dlsch1->harq_processes[harq_pid]->rb_alloc_even)); + LOG_D(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> Qm %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->harq_processes[harq_pid]->Qm); + LOG_D(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> Nl %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->harq_processes[harq_pid]->Nl); + LOG_D(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> G %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->harq_processes[harq_pid]->G); + LOG_D(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> Kmimo %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->Kmimo); + LOG_D(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> Pdcch Sym %d \n", frame_rx, subframe_rx, harq_pid, ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->num_pdcch_symbols); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]]); -#endif +LOG_DEBUG_END ret1 = dlsch_decoding(ue, pdsch_vars->llr[1], @@ -3693,21 +3660,14 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue, pdsch==PDSCH?1:0, dlsch1->harq_processes[harq_pid]->TBS>256?1:0); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]]); -#if DISABLE_LOG_X - printf(" --> Unscrambling for CW1 %5.3f\n", - (ue->dlsch_unscrambling_stats.p_time)/(cpuf*1000.0)); - printf("AbsSubframe %d.%d --> Turbo Decoding for CW1 %5.3f\n", - frame_rx%1024, subframe_rx,(ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]].p_time)/(cpuf*1000.0)); -#else - LOG_D(PHY, " --> Unscrambling for CW1 %5.3f\n", + LOG_UI(PHY, " --> Unscrambling for CW1 %5.3f\n", (ue->dlsch_unscrambling_stats.p_time)/(cpuf*1000.0)); - LOG_D(PHY, "AbsSubframe %d.%d --> Turbo Decoding for CW1 %5.3f\n", + LOG_UI(PHY, "AbsSubframe %d.%d --> Turbo Decoding for CW1 %5.3f\n", frame_rx%1024, subframe_rx,(ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]].p_time)/(cpuf*1000.0)); -#endif - -#endif +LOG_DEBUG_END + LOG_D(PHY,"AbsSubframe %d.%d --> Turbo Decoding for CW1 %5.3f\n", frame_rx%1024, subframe_rx,(ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]].p_time)/(cpuf*1000.0)); } @@ -3745,7 +3705,7 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue, dlsch0->harq_processes[harq_pid]->TBS); } -#ifdef DEBUG_DLSCH +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) int j; LOG_D(PHY,"dlsch harq_pid %d (rx): \n",dlsch0->current_harq_pid); @@ -3753,14 +3713,13 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue, LOG_T(PHY,"%x.",dlsch0->harq_processes[dlsch0->current_harq_pid]->b[j]); LOG_T(PHY,"\n"); -#endif +LOG_DEBUG_END if (ue->mac_enabled == 1) { switch (pdsch) { case PDSCH: - // Panos: Substitute call to ue_send_sdu() with call to fill_dlsch_indication() ue_send_sdu(ue->Mod_id, CC_id, frame_rx, @@ -3770,8 +3729,6 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue, eNB_id); break; case SI_PDSCH: - // Panos: Substitute call with call to fill_dlsch_indication() - LOG_D(PHY,"%d.%d: Decoding SI message\n",frame_rx,subframe_rx); ue_decode_si(ue->Mod_id, CC_id, frame_rx, @@ -3780,7 +3737,6 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue, ue->dlsch_SI[eNB_id]->harq_processes[0]->TBS>>3); break; case P_PDSCH: - // Panos: Substitute call with call to fill_dlsch_indication() ue_decode_p(ue->Mod_id, CC_id, frame_rx, @@ -3789,7 +3745,6 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue, ue->dlsch_SI[eNB_id]->harq_processes[0]->TBS>>3); break; case RA_PDSCH: - // Panos: Substitute with call to fill_dlsch_rar_indication() process_rar(ue,proc,eNB_id,mode,abstraction_flag); break; case PDSCH1: @@ -3851,7 +3806,7 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue, } } -#ifdef DEBUG_PHY_PROC +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) LOG_D(PHY,"[UE %d][PDSCH %x/%d] Frame %d subframe %d: PDSCH/DLSCH decoding iter %d (mcs %d, rv %d, TBS %d)\n", ue->Mod_id, dlsch0->rnti,harq_pid, @@ -3870,7 +3825,7 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue, ue->measurements.wideband_cqi_tot[eNB_id]); } -#endif +LOG_DEBUG_END } @@ -3956,9 +3911,9 @@ void *UE_thread_slot1_dl_processing(void *arg) { } /**** Slot1 FE Processing ****/ -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][1]); -#endif +LOG_DEBUG_END // I- start dl slot1 processing // do first symbol of next downlink subframe for channel estimation /* @@ -3983,9 +3938,9 @@ void *UE_thread_slot1_dl_processing(void *arg) { { //if( (l != pilot0) && (l != pilot1)) { -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->ofdm_demod_stats); -#endif +LOG_DEBUG_END VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_IN); //printf("AbsSubframe %d.%d FFT slot %d, symbol %d\n", frame_rx,subframe_rx,slot1,l); front_end_fft(ue, @@ -3994,9 +3949,9 @@ void *UE_thread_slot1_dl_processing(void *arg) { 0, 0); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_OUT); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->ofdm_demod_stats); -#endif +LOG_DEBUG_END } } // for l=1..l2 @@ -4049,15 +4004,11 @@ void *UE_thread_slot1_dl_processing(void *arg) { //printf(" [slot1 dl processing] ==> Start LLR Comuptation slot1 for AbsSubframe %d.%d \n", proc->frame_rx, proc->subframe_rx); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][1]); -#if DISABLE_LOG_X - printf("[AbsSFN %d.%d] Slot1: FFT + Channel Estimate + Pdsch Proc Slot0 %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][1].p_time/(cpuf*1000.0)); -#else - LOG_D(PHY, "[AbsSFN %d.%d] Slot1: FFT + Channel Estimate + Pdsch Proc Slot0 %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][1].p_time/(cpuf*1000.0)); -#endif + LOG_UI(PHY, "[AbsSFN %d.%d] Slot1: FFT + Channel Estimate + Pdsch Proc Slot0 %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][1].p_time/(cpuf*1000.0)); -#endif +LOG_DEBUG_END //wait until pdcch is decoded @@ -4076,9 +4027,9 @@ void *UE_thread_slot1_dl_processing(void *arg) { //printf("AbsSubframe %d.%d Pdsch Procedure (slot1)\n",frame_rx,subframe_rx); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][1]); -#endif +LOG_DEBUG_END // start slave thread for Pdsch Procedure (slot1) // do procedures for C-RNTI uint8_t eNB_id = 0; @@ -4148,14 +4099,10 @@ void *UE_thread_slot1_dl_processing(void *arg) { proc->llr_slot1_available=1; //printf("Set available LLR slot1 to 1 AbsSubframe %d.%d \n",frame_rx,subframe_rx); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][1]); -#if DISABLE_LOG_X - printf("[AbsSFN %d.%d] Slot1: LLR Computation %5.2f \n",frame_rx,subframe_rx,ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][1].p_time/(cpuf*1000.0)); -#else - LOG_D(PHY, "[AbsSFN %d.%d] Slot1: LLR Computation %5.2f \n",frame_rx,subframe_rx,ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][1].p_time/(cpuf*1000.0)); -#endif -#endif + LOG_UI(PHY, "[AbsSFN %d.%d] Slot1: LLR Computation %5.2f \n",frame_rx,subframe_rx,ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][1].p_time/(cpuf*1000.0)); +LOG_DEBUG_END if (pthread_mutex_lock(&proc->mutex_slot1_dl_processing) != 0) { @@ -4190,23 +4137,23 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_RX, VCD_FUNCTION_IN); -#if T_TRACER + T(T_UE_PHY_DL_TICK, T_INT(ue->Mod_id), T_INT(frame_rx%1024), T_INT(subframe_rx)); T(T_UE_PHY_INPUT_SIGNAL, T_INT(ue->Mod_id), T_INT(frame_rx%1024), T_INT(subframe_rx), T_INT(0), T_BUFFER(&ue->common_vars.rxdata[0][subframe_rx*ue->frame_parms.samples_per_tti], ue->frame_parms.samples_per_tti * 4)); -#endif + // start timers -#ifdef UE_DEBUG_TRACE +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) LOG_D(PHY," ****** start RX-Chain for AbsSubframe %d.%d ****** \n", frame_rx%1024, subframe_rx); -#endif +LOG_DEBUG_END -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->phy_proc_rx[ue->current_thread_id[subframe_rx]]); start_meas(&ue->ue_front_end_stat[ue->current_thread_id[subframe_rx]]); -#endif +LOG_DEBUG_END pmch_flag = is_pmch_subframe(frame_rx,subframe_rx,&ue->frame_parms) ? 1 : 0; @@ -4225,10 +4172,10 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr ue->dlsch_ra[eNB_id]->active = 0; } -#ifdef DEBUG_PHY_PROC +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) LOG_D(PHY,"[UE %d] Frame %d subframe %d: Doing phy_procedures_UE_RX\n", ue->Mod_id,frame_rx, subframe_rx); -#endif +LOG_DEBUG_END @@ -4302,9 +4249,9 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr /**** Slot0 FE Processing ****/ // I- start main thread for FFT/ChanEst symbol: 0/1 --> 7 -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0]); -#endif +LOG_DEBUG_END // 1- perform FFT for pilot ofdm symbols first (ofdmSym7 ofdmSym4 or (ofdmSym6 ofdmSym3)) //printf("AbsSubframe %d.%d FFT slot %d, symbol %d\n", frame_rx,subframe_rx,slot1,pilot0); front_end_fft(ue, @@ -4337,9 +4284,9 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr if( (l != pilot0) && (l != pilot1)) { //printf("AbsSubframe %d.%d FFT slot %d, symbol %d\n", frame_rx,subframe_rx,slot0,l); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->ofdm_demod_stats); -#endif +LOG_DEBUG_END VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_IN); front_end_fft(ue, l, @@ -4347,9 +4294,9 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr 0, 0); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_OUT); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->ofdm_demod_stats); -#endif +LOG_DEBUG_END } } // for l=1..l2 @@ -4368,44 +4315,32 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr } if (do_pdcch_flag) { -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->pdcch_procedures_stat[ue->current_thread_id[subframe_rx]]); -#endif +LOG_DEBUG_END if (ue_pdcch_procedures(eNB_id,ue,proc,abstraction_flag) == -1) { LOG_E(PHY,"[UE %d] Frame %d, subframe %d: Error in pdcch procedures\n",ue->Mod_id,frame_rx,subframe_rx); -#if UE_TIMING_TRACE - stop_meas(&ue->pdcch_procedures_stat[ue->current_thread_id[subframe_rx]]); -#if DISABLE_LOG_X - printf("[AbsSFN %d.%d] Slot0: PDCCH %5.2f \n",frame_rx,subframe_rx,ue->pdcch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0)); -#else - LOG_D(PHY, "[AbsSFN %d.%d] Slot0: PDCCH %5.2f \n",frame_rx,subframe_rx,ue->pdcch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0)); -#endif -#endif +LOG_DEBUG_BEGIN(UE_TIMING) + LOG_UI(PHY, "[AbsSFN %d.%d] Slot0: PDCCH %5.2f \n",frame_rx,subframe_rx,ue->pdcch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0)); +LOG_DEBUG_END + //proc->dci_slot0_available = 1; return(-1); } //proc->dci_slot0_available=1; -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->pdcch_procedures_stat[ue->current_thread_id[subframe_rx]]); -#if DISABLE_LOG_X - printf("[AbsSFN %d.%d] Slot0: PDCCH %5.2f \n",frame_rx,subframe_rx,ue->pdcch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0)); -#else - LOG_D(PHY, "[AbsSFN %d.%d] Slot0: PDCCH %5.2f \n",frame_rx,subframe_rx,ue->pdcch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0)); -#endif -#endif + LOG_UI(PHY, "[AbsSFN %d.%d] Slot0: PDCCH %5.2f \n",frame_rx,subframe_rx,ue->pdcch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0)); +LOG_DEBUG_END } //printf("num_pdcch_symbols %d\n",ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->num_pdcch_symbols); // first slot has been processed (FFTs + Channel Estimation, PCFICH/PHICH/PDCCH) -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0]); -#if DISABLE_LOG_X - printf("[AbsSFN %d.%d] Slot0: FFT + Channel Estimate + PCFICH/PHICH/PDCCH %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0)); -#else - LOG_D(PHY, "[AbsSFN %d.%d] Slot0: FFT + Channel Estimate + PCFICH/PHICH/PDCCH %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0)); -#endif -#endif + LOG_UI(PHY, "[AbsSFN %d.%d] Slot0: FFT + Channel Estimate + PCFICH/PHICH/PDCCH %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0)); +LOG_DEBUG_END //wait until slot1 FE is done uint32_t wait = 0; @@ -4415,22 +4350,16 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr wait++; } -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->ue_front_end_stat[ue->current_thread_id[subframe_rx]]); -#if DISABLE_LOG_X - printf("[AbsSFN %d.%d] FULL FE Processing %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0)); -#else - LOG_D(PHY, "[AbsSFN %d.%d] FULL FE Processing %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0)); -#endif -#endif + LOG_UI(PHY, "[AbsSFN %d.%d] FULL FE Processing %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0)); +LOG_DEBUG_END /**** End Subframe FE Processing ****/ -#if 0 //Trigger LLR parallelized for Slot 1 - proc->dci_slot0_available=1; - printf("Set available dci slot0 to 1 AbsSubframe %d.%d \n",frame_rx%1024,subframe_rx); -#endif + //proc->dci_slot0_available=1; + //printf("Set available dci slot0 to 1 AbsSubframe %d.%d \n",frame_rx%1024,subframe_rx); /**** Pdsch Procedure Slot0 ****/ // start main thread for Pdsch Procedure (slot0) @@ -4438,13 +4367,13 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr //printf("AbsSubframe %d.%d Pdsch Procedure (slot0)\n",frame_rx%1024,subframe_rx); //printf("AbsSubframe %d.%d Pdsch Procedure PDSCH Active %d \n",frame_rx%1024,subframe_rx, ue->dlsch[ue->current_thread_id[subframe_rx]][0][0]->active); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]]); -#endif +LOG_DEBUG_END -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][0]); -#endif +LOG_DEBUG_END if (ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->active == 1) { VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC, VCD_FUNCTION_IN); ue_pdsch_procedures(ue, @@ -4505,20 +4434,15 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_RA, VCD_FUNCTION_OUT); } -#if 1 // LLR linear proc->dci_slot0_available=1; //printf("Set available dci slot0 to 1 AbsSubframe %d.%d \n",frame_rx%1024,subframe_rx); -#endif -#if UE_TIMING_TRACE + +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][0]); -#if DISABLE_LOG_X - printf("[AbsSFN %d.%d] Slot0: LLR Computation %5.2f \n",frame_rx,subframe_rx,ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0)); -#else - LOG_D(PHY, "[AbsSFN %d.%d] Slot0: LLR Computation %5.2f \n",frame_rx,subframe_rx,ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0)); -#endif -#endif + LOG_UI(PHY, "[AbsSFN %d.%d] Slot0: LLR Computation %5.2f \n",frame_rx,subframe_rx,ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0)); +LOG_DEBUG_END //wait until LLR Slot1 is done @@ -4531,21 +4455,16 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]]); -#if DISABLE_LOG_X - printf("[AbsSFN %d.%d] Full LLR Computation %5.2f \n",frame_rx,subframe_rx,ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0)); -#else - LOG_D(PHY, "[AbsSFN %d.%d] Full LLR Computation %5.2f \n",frame_rx,subframe_rx,ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0)); -#endif -#endif - //printf("[slot0 dl processing] AbsSubframe %d.%d Channel Decoder Start wait %d\n",frame_rx,subframe_rx,wait); + LOG_UI(PHY, "[AbsSFN %d.%d] Full LLR Computation %5.2f \n",frame_rx,subframe_rx,ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0)); +LOG_DEBUG_END //=====================================================================// -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]]); -#endif +LOG_DEBUG_END LOG_D(PHY,"==> Start Turbo Decoder active dlsch %d SI %d RA %d \n",ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->active, ue->dlsch_SI[eNB_id]->active, @@ -4607,15 +4526,10 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr ue->dlsch_ra[eNB_id]->active = 0; } -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]]); -#if DISABLE_LOG_X - printf("[AbsSFN %d.%d] Channel Decoder: %5.2f \n",frame_rx,subframe_rx,ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0)); -#else - LOG_D(PHY, "[AbsSFN %d.%d] Channel Decoder: %5.2f \n",frame_rx,subframe_rx,ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0)); -#endif - -#endif + LOG_UI(PHY, "[AbsSFN %d.%d] Channel Decoder: %5.2f \n",frame_rx,subframe_rx,ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0)); +LOG_DEBUG_END // duplicate harq structure uint8_t current_harq_pid = ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->current_harq_pid; @@ -4675,19 +4589,15 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_RX, VCD_FUNCTION_OUT); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->phy_proc_rx[ue->current_thread_id[subframe_rx]]); -#if DISABLE_LOG_X - printf("------FULL RX PROC [AbsSFN %d.%d]: %5.2f ------\n",frame_rx,subframe_rx,ue->phy_proc_rx[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0)); -#else - LOG_D(PHY, "------FULL RX PROC [AbsSFN %d.%d]: %5.2f ------\n",frame_rx,subframe_rx,ue->phy_proc_rx[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0)); -#endif -#endif + LOG_UI(PHY, "------FULL RX PROC [AbsSFN %d.%d]: %5.2f ------\n",frame_rx,subframe_rx,ue->phy_proc_rx[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0)); +LOG_DEBUG_END LOG_D(PHY," ****** end RX-Chain for AbsSubframe %d.%d ****** \n", frame_rx%1024, subframe_rx); return (0); } -#endif +#endif /*UE_SLOT_PARALLELISATION */ void phy_procedures_UE_SL_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc) { @@ -4709,23 +4619,23 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id, VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_RX, VCD_FUNCTION_IN); -#if T_TRACER + T(T_UE_PHY_DL_TICK, T_INT(ue->Mod_id), T_INT(frame_rx%1024), T_INT(subframe_rx)); T(T_UE_PHY_INPUT_SIGNAL, T_INT(ue->Mod_id), T_INT(frame_rx%1024), T_INT(subframe_rx), T_INT(0), T_BUFFER(&ue->common_vars.rxdata[0][subframe_rx*ue->frame_parms.samples_per_tti], ue->frame_parms.samples_per_tti * 4)); -#endif + // start timers -#ifdef UE_DEBUG_TRACE +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) LOG_I(PHY," ****** start RX-Chain for AbsSubframe %d.%d ****** \n", frame_rx%1024, subframe_rx); -#endif +LOG_DEBUG_END -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->phy_proc_rx[ue->current_thread_id[subframe_rx]]); start_meas(&ue->generic_stat); -#endif +LOG_DEBUG_END pmch_flag = is_pmch_subframe(frame_rx,subframe_rx,&ue->frame_parms) ? 1 : 0; @@ -4744,10 +4654,10 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id, ue->dlsch_ra[eNB_id]->active = 0; } -#ifdef DEBUG_PHY_PROC +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) LOG_D(PHY,"[UE %d] Frame %d subframe %d: Doing phy_procedures_UE_RX\n", ue->Mod_id,frame_rx, subframe_rx); -#endif +LOG_DEBUG_END if (ue->frame_parms.Ncp == 0) { // normal prefix pilot1 = 4; @@ -4781,9 +4691,9 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id, LOG_D(PHY," ------ --> FFT/ChannelEst/PDCCH slot 0: AbsSubframe %d.%d ------ \n", frame_rx%1024, subframe_rx); for (; l<=l2; l++) { if (abstraction_flag == 0) { -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->ofdm_demod_stats); -#endif +LOG_DEBUG_END VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_IN); slot_fep(ue, l, @@ -4792,9 +4702,9 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id, 0, 0); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_OUT); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->ofdm_demod_stats); -#endif +LOG_DEBUG_END } ue_measurement_procedures(l-1,ue,proc,eNB_id,(subframe_rx<<1),abstraction_flag,mode); @@ -4835,20 +4745,16 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id, 0); // first slot has been processed (FFTs + Channel Estimation, PCFICH/PHICH/PDCCH) -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->generic_stat); -#if DISABLE_LOG_X - printf("[SFN %d] Slot0: FFT + Channel Estimate + PCFICH/PHICH/PDCCH %5.2f \n",subframe_rx,ue->generic_stat.p_time/(cpuf*1000.0)); -#else - LOG_D(PHY, "[SFN %d] Slot0: FFT + Channel Estimate + PCFICH/PHICH/PDCCH %5.2f \n",subframe_rx,ue->generic_stat.p_time/(cpuf*1000.0)); -#endif + LOG_UI(PHY, "[SFN %d] Slot0: FFT + Channel Estimate + PCFICH/PHICH/PDCCH %5.2f \n",subframe_rx,ue->generic_stat.p_time/(cpuf*1000.0)); +LOG_DEBUG_END -#endif LOG_D(PHY," ------ --> PDSCH ChannelComp/LLR slot 0: AbsSubframe %d.%d ------ \n", frame_rx%1024, subframe_rx); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->generic_stat); -#endif +LOG_DEBUG_END // do procedures for C-RNTI if (ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->active == 1) { VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC, VCD_FUNCTION_IN); @@ -4918,9 +4824,9 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id, if (subframe_select(&ue->frame_parms,subframe_rx) != SF_S) { // do front-end processing for second slot, and first symbol of next subframe for (l=1; lframe_parms.symbols_per_tti>>1; l++) { if (abstraction_flag == 0) { -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->ofdm_demod_stats); -#endif +LOG_DEBUG_END VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_IN); slot_fep(ue, l, @@ -4929,9 +4835,9 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id, 0, 0); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_OUT); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->ofdm_demod_stats); -#endif +LOG_DEBUG_END } ue_measurement_procedures(l-1,ue,proc,eNB_id,1+(subframe_rx<<1),abstraction_flag,mode); @@ -4950,15 +4856,10 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id, 0); } } // not an S-subframe -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->generic_stat); -#if DISABLE_LOG_X - printf("[SFN %d] Slot1: FFT + Channel Estimate + Pdsch Proc Slot0 %5.2f \n",subframe_rx,ue->generic_stat.p_time/(cpuf*1000.0)); -#else - LOG_D(PHY, "[SFN %d] Slot1: FFT + Channel Estimate + Pdsch Proc Slot0 %5.2f \n",subframe_rx,ue->generic_stat.p_time/(cpuf*1000.0)); -#endif - -#endif + LOG_UI(PHY, "[SFN %d] Slot1: FFT + Channel Estimate + Pdsch Proc Slot0 %5.2f \n",subframe_rx,ue->generic_stat.p_time/(cpuf*1000.0)); +LOG_DEBUG_END LOG_D(PHY," ------ end FFT/ChannelEst/PDCCH slot 1: AbsSubframe %d.%d ------ \n", frame_rx%1024, subframe_rx); @@ -4973,9 +4874,9 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id, LOG_D(PHY," ------ --> PDSCH ChannelComp/LLR slot 0: AbsSubframe %d.%d ------ \n", frame_rx%1024, subframe_rx); if (ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->active == 1) { VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC, VCD_FUNCTION_IN); -#if UE_TIMING_TRACE - start_meas(&ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]); -#endif +LOG_DEBUG_BEGIN(UE_TIMING) + start_meas(&ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]]); +LOG_DEBUG_END ue_pdsch_procedures(ue, proc, eNB_id, @@ -4987,10 +4888,10 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id, abstraction_flag); LOG_D(PHY," ------ end PDSCH ChannelComp/LLR slot 0: AbsSubframe %d.%d ------ \n", frame_rx%1024, subframe_rx); LOG_D(PHY," ------ --> PDSCH Turbo Decoder slot 0/1: AbsSubframe %d.%d ------ \n", frame_rx%1024, subframe_rx); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]]); start_meas(&ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]]); -#endif +LOG_DEBUG_END ue_dlsch_procedures(ue, proc, eNB_id, @@ -5000,44 +4901,38 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id, &ue->dlsch_errors[eNB_id], mode, abstraction_flag); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]]); -#if DISABLE_LOG_X - printf("[SFN %d] Slot1: Pdsch Proc %5.2f\n",subframe_rx,ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0)); - printf("[SFN %d] Slot0 Slot1: Dlsch Proc %5.2f\n",subframe_rx,ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0)); -#else - LOG_D(PHY, "[SFN %d] Slot1: Pdsch Proc %5.2f\n",subframe_rx,ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0)); - LOG_D(PHY, "[SFN %d] Slot0 Slot1: Dlsch Proc %5.2f\n",subframe_rx,ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0)); -#endif - -#endif + LOG_UI(PHY, "[SFN %d] Slot1: Pdsch Proc %5.2f\n",subframe_rx,ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0)); + LOG_UI(PHY, "[SFN %d] Slot0 Slot1: Dlsch Proc %5.2f\n",subframe_rx,ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0)); +LOG_DEBUG_END VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC, VCD_FUNCTION_OUT); } -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->generic_stat); -#endif +LOG_DEBUG_END -#if 0 +LOG_M_BEGIN(DEBUG_UE_PHYPROC) if(subframe_rx==5 && ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->harq_processes[ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->current_harq_pid]->nb_rb > 20){ - //write_output("decoder_llr.m","decllr",dlsch_llr,G,1,0); - //write_output("llr.m","llr", &ue->pdsch_vars[eNB_id]->llr[0][0],(14*nb_rb*12*dlsch1_harq->Qm) - 4*(nb_rb*4*dlsch1_harq->Qm),1,0); + //LOG_M("decoder_llr.m","decllr",dlsch_llr,G,1,0); + //LOG_M("llr.m","llr", &ue->pdsch_vars[eNB_id]->llr[0][0],(14*nb_rb*12*dlsch1_harq->Qm) - 4*(nb_rb*4*dlsch1_harq->Qm),1,0); - write_output("rxdataF0_current.m" , "rxdataF0", &ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe_rx]].rxdataF[0][0],14*ue->frame_parms.ofdm_symbol_size,1,1); - //write_output("rxdataF0_previous.m" , "rxdataF0_prev_sss", &ue->common_vars.common_vars_rx_data_per_thread[next_thread_id].rxdataF[0][0],14*ue->frame_parms.ofdm_symbol_size,1,1); + LOG_M("rxdataF0_current.m" , "rxdataF0", &ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe_rx]].rxdataF[0][0],14*ue->frame_parms.ofdm_symbol_size,1,1); + //LOG_M("rxdataF0_previous.m" , "rxdataF0_prev_sss", &ue->common_vars.common_vars_rx_data_per_thread[next_thread_id].rxdataF[0][0],14*ue->frame_parms.ofdm_symbol_size,1,1); - //write_output("rxdataF0_previous.m" , "rxdataF0_prev", &ue->common_vars.common_vars_rx_data_per_thread[next_thread_id].rxdataF[0][0],14*ue->frame_parms.ofdm_symbol_size,1,1); + //LOG_M("rxdataF0_previous.m" , "rxdataF0_prev", &ue->common_vars.common_vars_rx_data_per_thread[next_thread_id].rxdataF[0][0],14*ue->frame_parms.ofdm_symbol_size,1,1); - write_output("dl_ch_estimates.m", "dl_ch_estimates_sfn5", &ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe_rx]].dl_ch_estimates[0][0][0],14*ue->frame_parms.ofdm_symbol_size,1,1); - write_output("dl_ch_estimates_ext.m", "dl_ch_estimatesExt_sfn5", &ue->pdsch_vars[ue->current_thread_id[subframe_rx]][0]->dl_ch_estimates_ext[0][0],14*ue->frame_parms.N_RB_DL*12,1,1); - write_output("rxdataF_comp00.m","rxdataF_comp00", &ue->pdsch_vars[ue->current_thread_id[subframe_rx]][0]->rxdataF_comp0[0][0],14*ue->frame_parms.N_RB_DL*12,1,1); - //write_output("magDLFirst.m", "magDLFirst", &phy_vars_ue->pdsch_vars[ue->current_thread_id[subframe_rx]][0]->dl_ch_mag0[0][0],14*frame_parms->N_RB_DL*12,1,1); - //write_output("magDLSecond.m", "magDLSecond", &phy_vars_ue->pdsch_vars[ue->current_thread_id[subframe_rx]][0]->dl_ch_magb0[0][0],14*frame_parms->N_RB_DL*12,1,1); + LOG_M("dl_ch_estimates.m", "dl_ch_estimates_sfn5", &ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe_rx]].dl_ch_estimates[0][0][0],14*ue->frame_parms.ofdm_symbol_size,1,1); + LOG_M("dl_ch_estimates_ext.m", "dl_ch_estimatesExt_sfn5", &ue->pdsch_vars[ue->current_thread_id[subframe_rx]][0]->dl_ch_estimates_ext[0][0],14*ue->frame_parms.N_RB_DL*12,1,1); + LOG_M("rxdataF_comp00.m","rxdataF_comp00", &ue->pdsch_vars[ue->current_thread_id[subframe_rx]][0]->rxdataF_comp0[0][0],14*ue->frame_parms.N_RB_DL*12,1,1); + //LOG_M("magDLFirst.m", "magDLFirst", &phy_vars_ue->pdsch_vars[ue->current_thread_id[subframe_rx]][0]->dl_ch_mag0[0][0],14*frame_parms->N_RB_DL*12,1,1); + //LOG_M("magDLSecond.m", "magDLSecond", &phy_vars_ue->pdsch_vars[ue->current_thread_id[subframe_rx]][0]->dl_ch_magb0[0][0],14*frame_parms->N_RB_DL*12,1,1); AssertFatal (0,""); } -#endif +LOG_M_END // do procedures for SI-RNTI if ((ue->dlsch_SI[eNB_id]) && (ue->dlsch_SI[eNB_id]->active == 1)) { @@ -5142,29 +5037,25 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id, ue->Mod_id,frame_rx,ue->total_TBS[eNB_id], ue->total_TBS_last[eNB_id],(float) ue->bitrate[eNB_id]/1000.0); - #if UE_AUTOTEST_TRACE +LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC) if ((frame_rx % 100 == 0)) { LOG_I(PHY,"[UE %d] AUTOTEST Metric : UE_DLSCH_BITRATE = %5.2f kbps (frame = %d) \n", ue->Mod_id, (float) ue->bitrate[eNB_id]/1000.0, frame_rx); } - #endif +LOG_DEBUG_END } -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->generic_stat); printf("after tubo until end of Rx %5.2f \n",ue->generic_stat.p_time/(cpuf*1000.0)); -#endif +LOG_DEBUG_END VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_RX, VCD_FUNCTION_OUT); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->phy_proc_rx[ue->current_thread_id[subframe_rx]]); -#if DISABLE_LOG_X - printf("------FULL RX PROC [SFN %d]: %5.2f ------\n",subframe_rx,ue->phy_proc_rx[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0)); -#else - LOG_D(PHY, "------FULL RX PROC [SFN %d]: %5.2f ------\n",subframe_rx,ue->phy_proc_rx[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0)); -#endif -#endif + LOG_UI(PHY, "------FULL RX PROC [SFN %d]: %5.2f ------\n",subframe_rx,ue->phy_proc_rx[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0)); +LOG_DEBUG_END LOG_D(PHY," ****** end RX-Chain for AbsSubframe %d.%d ****** \n", frame_rx%1024, subframe_rx); return (0); @@ -5176,9 +5067,6 @@ void phy_procedures_UE_lte(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,u { #if defined(ENABLE_ITTI) MessageDef *msg_p; - const char *msg_name; - instance_t instance; - unsigned int Mod_id; int result; #endif @@ -5186,7 +5074,7 @@ void phy_procedures_UE_lte(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,u int frame_tx = proc->frame_tx; int subframe_rx = proc->subframe_rx; int subframe_tx = proc->subframe_tx; -#undef DEBUG_PHY_PROC + UE_L2_STATE_t ret; int slot; @@ -5197,9 +5085,10 @@ void phy_procedures_UE_lte(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,u VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_LTE,1); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) start_meas(&ue->phy_proc[ue->current_thread_id[subframe_rx]]); -#endif +LOG_DEBUG_END + #if defined(ENABLE_ITTI) do { @@ -5207,19 +5096,15 @@ void phy_procedures_UE_lte(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,u itti_poll_msg (TASK_PHY_UE, &msg_p); if (msg_p != NULL) { - msg_name = ITTI_MSG_NAME (msg_p); - instance = ITTI_MSG_INSTANCE (msg_p); - Mod_id = instance - NB_eNB_INST; - switch (ITTI_MSG_ID(msg_p)) { case PHY_FIND_CELL_REQ: - LOG_I(PHY, "[UE %d] Received %s\n", Mod_id, msg_name); + LOG_I(PHY, "[UE %d] Received %s\n", ITTI_MSG_INSTANCE (msg_p) - NB_eNB_INST, ITTI_MSG_NAME (msg_p)); /* TODO process the message */ break; default: - LOG_E(PHY, "[UE %d] Received unexpected message %s\n", Mod_id, msg_name); + LOG_E(PHY, "[UE %d] Received unexpected message %s\n", ITTI_MSG_INSTANCE (msg_p) - NB_eNB_INST, ITTI_MSG_NAME (msg_p)); break; } @@ -5243,7 +5128,7 @@ void phy_procedures_UE_lte(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,u } if ((subframe_select(&ue->frame_parms,subframe_tx)==SF_S) && - (slot==1)) { + (slot==1)) { phy_procedures_UE_S_TX(ue,eNB_id,abstraction_flag); } @@ -5285,9 +5170,9 @@ void phy_procedures_UE_lte(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,u } VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_LTE,0); -#if UE_TIMING_TRACE +LOG_DEBUG_BEGIN(UE_TIMING) stop_meas(&ue->phy_proc[ue->current_thread_id[subframe_rx]]); -#endif +LOG_DEBUG_END } // slot } diff --git a/openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c b/openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c index 83b2d9765e..5ffea3d36e 100644 --- a/openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c +++ b/openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c @@ -54,7 +54,7 @@ #include "socket.h" #include "multicast_link.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" extern unsigned short Master_id; @@ -99,7 +99,7 @@ multicast_link_init(void) SOCK_DGRAM, &group_list[group].port, &sin); - LOG_D(SIM, "multicast_link_init(): Created socket %d for group %d, port %d\n", + LOG_D(PHY, "multicast_link_init(): Created socket %d for group %d, port %d\n", group_list[group].socket,group,group_list[group].port); /* Used so we can re-bind to our port while a previous connection is still @@ -107,17 +107,17 @@ multicast_link_init(void) */ if (setsockopt(group_list[group].socket, SOL_SOCKET, SO_REUSEADDR, &reuse_addr, sizeof (reuse_addr)) < 0) { - LOG_E(SIM, "[MULTICAST] ERROR : setsockopt:SO_REUSEADDR, exiting ..."); + LOG_E(PHY, "[MULTICAST] ERROR : setsockopt:SO_REUSEADDR, exiting ..."); exit (EXIT_FAILURE); } if (multicast_if != NULL) { if (setsockopt(group_list[group].socket, SOL_SOCKET,SO_BINDTODEVICE, multicast_if, strlen(multicast_if)) < 0) { - LOG_E(SIM, + LOG_E(PHY, "[MULTICAST] ERROR : setsockopt:SO_BINDTODEVICE on interface %s, exiting ...\n", multicast_if); - LOG_E(SIM, + LOG_E(PHY, "[MULTICAST] make sure that you have a root privilage or run with sudo -E \n"); exit (EXIT_FAILURE); } @@ -132,7 +132,7 @@ multicast_link_init(void) if (setsockopt (group_list[group].socket, IPPROTO_IP, IP_MULTICAST_LOOP, &multicast_loop, sizeof (multicast_loop)) < 0) { - LOG_E(SIM, + LOG_E(PHY, "[MULTICAST] ERROR: %s line %d multicast_link_main_loop() IP_MULTICAST_LOOP %m", __FILE__, __LINE__); exit (EXIT_FAILURE); @@ -143,13 +143,13 @@ multicast_link_init(void) command.imr_interface.s_addr = htonl (INADDR_ANY); if (command.imr_multiaddr.s_addr == -1) { - LOG_E(SIM, "[MULTICAST] ERROR: %s line %d NO MULTICAST", __FILE__, __LINE__); + LOG_E(PHY, "[MULTICAST] ERROR: %s line %d NO MULTICAST", __FILE__, __LINE__); exit (EXIT_FAILURE); } if (setsockopt (group_list[group].socket, IPPROTO_IP, IP_ADD_MEMBERSHIP, &command, sizeof (command)) < 0) { - LOG_E(SIM, "[MULTICAST] ERROR: %s line %d IP_ADD_MEMBERSHIP %m", __FILE__, + LOG_E(PHY, "[MULTICAST] ERROR: %s line %d IP_ADD_MEMBERSHIP %m", __FILE__, __LINE__); exit (EXIT_FAILURE); } @@ -202,13 +202,13 @@ multicast_link_read_data (int groupP) if ((groupP < MULTICAST_LINK_NUM_GROUPS) && (groupP >= 0)) { if ((num_bytes = recvfrom (group_list[groupP].socket, group_list[groupP].rx_buffer, 40000, 0, 0, 0)) < 0) { - LOG_E(SIM, "[MULTICAST] recvfrom has failed (%d:%s)\n (%s:%d)\n", + LOG_E(PHY, "[MULTICAST] recvfrom has failed (%d:%s)\n (%s:%d)\n", errno, strerror(errno), __FILE__, __LINE__); } else { rx_handler(num_bytes,group_list[groupP].rx_buffer); } } else { - LOG_E(SIM, "[MULTICAST] ERROR: groupP out of bounds %d\n", groupP); + LOG_E(PHY, "[MULTICAST] ERROR: groupP out of bounds %d\n", groupP); } } @@ -242,7 +242,7 @@ multicast_link_write_sock(int groupP, char *dataP, uint32_t sizeP) if ((num = sendto (group_list[groupP].socket, dataP, sizeP, 0, (struct sockaddr *) &group_list[groupP].sock_remote_addr, sizeof (group_list[groupP].sock_remote_addr))) < 0) { - LOG_E(SIM, "[MULTICAST] sendto has failed (%d:%s)\n (%s:%d)\n", + LOG_E(PHY, "[MULTICAST] sendto has failed (%d:%s)\n (%s:%d)\n", errno, strerror(errno), __FILE__, __LINE__); } @@ -274,22 +274,19 @@ int multicast_link_read_data_from_sock(uint8_t is_master) multicast_link_build_select_list (); - LOG_D(SIM, "Stuck on select with timeout %s\n", + LOG_D(PHY, "Stuck on select with timeout %s\n", timeout_p == NULL ? "infinite" : "15000 usecs"); readsocks = select(highsock + 1, &socks, (fd_set *) 0, (fd_set *) 0, timeout_p); if (readsocks < 0) { - LOG_E(SIM, "Multicast select failed (%d:%s)\n", errno, strerror(errno)); + LOG_E(PHY, "Multicast select failed (%d:%s)\n", errno, strerror(errno)); exit(EXIT_FAILURE); } else if (readsocks > 0) { -#ifdef DEBUG_SIM - LOG_D(SIM, "Multicast Normal read\n"); -#endif multicast_link_read(); } else { /* Timeout */ - LOG_I(SIM, "Multicast select time-out\n"); + LOG_I(PHY, "Multicast select time-out\n"); return 1; } @@ -311,21 +308,21 @@ void multicast_link_start(void (*rx_handlerP) (unsigned int, char *), rx_handler = rx_handlerP; multicast_group = _multicast_group; multicast_if = multicast_ifname; - LOG_I(SIM, "[MULTICAST] LINK START on interface=%s for group=%d: handler=%p\n", + LOG_I(PHY, "[MULTICAST] LINK START on interface=%s for group=%d: handler=%p\n", (multicast_if == NULL) ? "not specified" : multicast_if, multicast_group, rx_handler); multicast_link_init (); #if ! defined(ENABLE_NEW_MULTICAST) - LOG_D(SIM, "[MULTICAST] multicast link start thread\n"); + LOG_D(PHY, "[MULTICAST] multicast link start thread\n"); if (pthread_create (&main_loop_thread, NULL, multicast_link_main_loop, NULL) != 0) { - LOG_E(SIM, "[MULTICAST LINK] Error in pthread_create (%d:%s)\n", + LOG_E(PHY, "[MULTICAST LINK] Error in pthread_create (%d:%s)\n", errno, strerror(errno)); exit(EXIT_FAILURE); } else { pthread_detach(main_loop_thread); // disassociate from parent - LOG_I(SIM, "[MULTICAST LINK] Thread detached\n"); + LOG_I(PHY, "[MULTICAST LINK] Thread detached\n"); } #endif diff --git a/openair1/SIMULATION/LTE_PHY/dlsim.c b/openair1/SIMULATION/LTE_PHY/dlsim.c index 77b8c0e674..7e2f1ad2e0 100644 --- a/openair1/SIMULATION/LTE_PHY/dlsim.c +++ b/openair1/SIMULATION/LTE_PHY/dlsim.c @@ -47,7 +47,7 @@ #include "LAYER2/MAC/mac_vars.h" #include "OCG_vars.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "UTIL/LISTS/list.h" #include "unitary_defs.h" @@ -67,6 +67,7 @@ #include "common/config/config_load_configmodule.h" #include "PHY/INIT/phy_init.h" + void feptx_ofdm(RU_t *ru); void feptx_prec(RU_t *ru); @@ -83,6 +84,8 @@ int n_rx_dropped = 0; /*!< \brief initial max process time for rx */ int codingw = 0; +int emulate_rf = 0; + void handler(int sig) { void *array[10]; @@ -185,8 +188,8 @@ void DL_channel(RU_t *ru,PHY_VARS_UE *UE,uint subframe,int awgn_flag,double SNR, // fill in perfect channel estimates freq_channel(eNB2UE[round],UE->frame_parms.N_RB_DL,12*UE->frame_parms.N_RB_DL + 1); /* - write_output("channel.m","ch",eNB2UE[round]->ch[0],eNB2UE[round]->channel_length,1,8); - write_output("channelF.m","chF",eNB2UE[round]->chF[0],12*UE->frame_parms.N_RB_DL + 1,1,8); + LOG_M("channel.m","ch",eNB2UE[round]->ch[0],eNB2UE[round]->channel_length,1,8); + LOG_M("channelF.m","chF",eNB2UE[round]->chF[0],12*UE->frame_parms.N_RB_DL + 1,1,8); */ } } @@ -521,6 +524,7 @@ int main(int argc, char **argv) int k,i,j,aa; int re; + int s,Kr,Kr_bytes; double SNR,snr0=-2.0,snr1,rate = 0; @@ -646,7 +650,6 @@ int main(int argc, char **argv) int two_thread_flag=0; int DLSCH_RB_ALLOC = 0; - int log_level = LOG_ERR; int dci_received; PHY_VARS_eNB *eNB; RU_t *ru; @@ -998,7 +1001,7 @@ int main(int argc, char **argv) break; case 'L': - log_level=atoi(optarg); + set_glog(atoi(optarg)); break; case 'h': @@ -1046,8 +1049,7 @@ int main(int argc, char **argv) "cannot load configuration module, exiting\n"); logInit(); // enable these lines if you need debug info - set_comp_log(PHY,LOG_INFO,LOG_HIGH,1); - set_glog(log_level,LOG_HIGH); + set_glog(LOG_DEBUG); // moreover you need to init itti with the following line // however itti will catch all signals, so ctrl-c won't work anymore // alternatively you can disable ITTI completely in CMakeLists.txt @@ -1137,10 +1139,10 @@ int main(int argc, char **argv) } else { eNB->te = dlsch_encoding_2threads; - extern void init_td_thread(PHY_VARS_eNB *, pthread_attr_t *); - extern void init_te_thread(PHY_VARS_eNB *, pthread_attr_t *); - init_td_thread(eNB,NULL); - init_te_thread(eNB,NULL); + extern void init_td_thread(PHY_VARS_eNB *); + extern void init_te_thread(PHY_VARS_eNB *); + init_td_thread(eNB); + init_te_thread(eNB); } // callback functions required for phy_procedures_tx @@ -1306,7 +1308,9 @@ int main(int argc, char **argv) } */ + UE->pdcch_vars[UE->current_thread_id[subframe]][0]->crnti = n_rnti; + UE->n_connected_eNB = 1; printf("Allocating %dx%d eNB->UE channel descriptor\n",eNB->frame_parms.nb_antennas_tx,UE->frame_parms.nb_antennas_rx); eNB2UE[0] = new_channel_desc_scm(eNB->frame_parms.nb_antennas_tx, @@ -1318,8 +1322,10 @@ int main(int argc, char **argv) rx_sample_offset, 0); + reset_meas(&eNB2UE[0]->random_channel); + reset_meas(&eNB2UE[0]->interp_time); if(num_rounds>1) { - for(n=1; n<4; n++) + for(n=1; n<4; n++) { eNB2UE[n] = new_channel_desc_scm(eNB->frame_parms.nb_antennas_tx, UE->frame_parms.nb_antennas_rx, channel_model, @@ -1328,8 +1334,11 @@ int main(int argc, char **argv) forgetting_factor, rx_sample_offset, 0); + reset_meas(&eNB2UE[n]->random_channel); + reset_meas(&eNB2UE[n]->interp_time); + } } - + if (eNB2UE[0]==NULL) { printf("Problem generating channel model. Exiting.\n"); exit(-1); @@ -1662,13 +1671,13 @@ int main(int argc, char **argv) if (n_frames==1) { printf("tx_lev = %d (%d dB)\n",tx_lev,tx_lev_dB); - write_output("txsig0.m","txs0", &ru->common.txdata[0][subframe* eNB->frame_parms.samples_per_tti], eNB->frame_parms.samples_per_tti,1,1); + LOG_M("txsig0.m","txs0", &ru->common.txdata[0][subframe* eNB->frame_parms.samples_per_tti], eNB->frame_parms.samples_per_tti,1,1); if (transmission_mode<7) { - write_output("txsigF0.m","txsF0x", &ru->common.txdataF_BF[0][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size],nsymb*eNB->frame_parms.ofdm_symbol_size,1,1); + LOG_M("txsigF0.m","txsF0x", &ru->common.txdataF_BF[0][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size],nsymb*eNB->frame_parms.ofdm_symbol_size,1,1); } else if (transmission_mode == 7) { - write_output("txsigF0.m","txsF0", &ru->common.txdataF_BF[5][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size],nsymb*eNB->frame_parms.ofdm_symbol_size,1,1); - write_output("txsigF0_BF.m","txsF0_BF", &ru->common.txdataF_BF[0][0],eNB->frame_parms.ofdm_symbol_size,1,1); + LOG_M("txsigF0.m","txsF0", &ru->common.txdataF_BF[5][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size],nsymb*eNB->frame_parms.ofdm_symbol_size,1,1); + LOG_M("txsigF0_BF.m","txsF0_BF", &ru->common.txdataF_BF[0][0],eNB->frame_parms.ofdm_symbol_size,1,1); } } } @@ -1734,14 +1743,14 @@ int main(int argc, char **argv) printf("DCI not received\n"); dci_errors[round]++; - write_output("pdcchF0_ext.m","pdcchF_ext", UE->pdcch_vars[0][eNB_id]->rxdataF_ext[0],2*3*UE->frame_parms.ofdm_symbol_size,1,1); - write_output("pdcch00_ch0_ext.m","pdcch00_ch0_ext",UE->pdcch_vars[0][eNB_id]->dl_ch_estimates_ext[0],300*3,1,1); + LOG_M("pdcchF0_ext.m","pdcchF_ext", UE->pdcch_vars[0][eNB_id]->rxdataF_ext[0],2*3*UE->frame_parms.ofdm_symbol_size,1,1); + LOG_M("pdcch00_ch0_ext.m","pdcch00_ch0_ext",UE->pdcch_vars[0][eNB_id]->dl_ch_estimates_ext[0],300*3,1,1); - write_output("pdcch_rxF_comp0.m","pdcch0_rxF_comp0",UE->pdcch_vars[0][eNB_id]->rxdataF_comp[0],4*300,1,1); - write_output("pdcch_rxF_llr.m","pdcch_llr",UE->pdcch_vars[0][eNB_id]->llr,2400,1,4); + LOG_M("pdcch_rxF_comp0.m","pdcch0_rxF_comp0",UE->pdcch_vars[0][eNB_id]->rxdataF_comp[0],4*300,1,1); + LOG_M("pdcch_rxF_llr.m","pdcch_llr",UE->pdcch_vars[0][eNB_id]->llr,2400,1,4); - write_output("rxsig0.m","rxs0", &UE->common_vars.rxdata[0][0],10*UE->frame_parms.samples_per_tti,1,1); - write_output("rxsigF0.m","rxsF0", &UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].rxdataF[0][0],UE->frame_parms.ofdm_symbol_size*nsymb,1,1); + LOG_M("rxsig0.m","rxs0", &UE->common_vars.rxdata[0][0],10*UE->frame_parms.samples_per_tti,1,1); + LOG_M("rxsigF0.m","rxsF0", &UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].rxdataF[0][0],UE->frame_parms.ofdm_symbol_size*nsymb,1,1); exit(-1); @@ -1774,38 +1783,38 @@ int main(int argc, char **argv) */ } - write_output("dlsch_ber_bit.m","ber_bit",uncoded_ber_bit,coded_bits_per_codeword,1,0); - write_output("ch0.m","ch0",eNB2UE[0]->ch[0],eNB2UE[0]->channel_length,1,8); + LOG_M("dlsch_ber_bit.m","ber_bit",uncoded_ber_bit,coded_bits_per_codeword,1,0); + LOG_M("ch0.m","ch0",eNB2UE[0]->ch[0],eNB2UE[0]->channel_length,1,8); if (eNB->frame_parms.nb_antennas_tx>1) - write_output("ch1.m","ch1",eNB2UE[0]->ch[eNB->frame_parms.nb_antennas_rx],eNB2UE[0]->channel_length,1,8); + LOG_M("ch1.m","ch1",eNB2UE[0]->ch[eNB->frame_parms.nb_antennas_rx],eNB2UE[0]->channel_length,1,8); //common vars - write_output("rxsig0.m","rxs0", &UE->common_vars.rxdata[0][0],10*UE->frame_parms.samples_per_tti,1,1); + LOG_M("rxsig0.m","rxs0", &UE->common_vars.rxdata[0][0],10*UE->frame_parms.samples_per_tti,1,1); - write_output("rxsigF0.m","rxsF0", &UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].rxdataF[0][0],UE->frame_parms.ofdm_symbol_size*nsymb,1,1); + LOG_M("rxsigF0.m","rxsF0", &UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].rxdataF[0][0],UE->frame_parms.ofdm_symbol_size*nsymb,1,1); if (UE->frame_parms.nb_antennas_rx>1) { - write_output("rxsig1.m","rxs1", UE->common_vars.rxdata[1],UE->frame_parms.samples_per_tti,1,1); - write_output("rxsigF1.m","rxsF1", UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].rxdataF[1],UE->frame_parms.ofdm_symbol_size*nsymb,1,1); + LOG_M("rxsig1.m","rxs1", UE->common_vars.rxdata[1],UE->frame_parms.samples_per_tti,1,1); + LOG_M("rxsigF1.m","rxsF1", UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].rxdataF[1],UE->frame_parms.ofdm_symbol_size*nsymb,1,1); } - write_output("dlsch00_r0.m","dl00_r0", + LOG_M("dlsch00_r0.m","dl00_r0", &(UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].dl_ch_estimates[eNB_id][0][0]), UE->frame_parms.ofdm_symbol_size*nsymb,1,1); if (UE->frame_parms.nb_antennas_rx>1) - write_output("dlsch01_r0.m","dl01_r0", + LOG_M("dlsch01_r0.m","dl01_r0", &(UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].dl_ch_estimates[eNB_id][1][0]), UE->frame_parms.ofdm_symbol_size*nsymb,1,1); if (eNB->frame_parms.nb_antennas_tx>1) - write_output("dlsch10_r0.m","dl10_r0", + LOG_M("dlsch10_r0.m","dl10_r0", &(UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].dl_ch_estimates[eNB_id][2][0]), UE->frame_parms.ofdm_symbol_size*nsymb,1,1); if ((UE->frame_parms.nb_antennas_rx>1) && (eNB->frame_parms.nb_antennas_tx>1)) - write_output("dlsch11_r0.m","dl11_r0", + LOG_M("dlsch11_r0.m","dl11_r0", &(UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].dl_ch_estimates[eNB_id][3][0]), UE->frame_parms.ofdm_symbol_size*nsymb/2,1,1); @@ -1814,14 +1823,14 @@ int main(int argc, char **argv) dump_dlsch2(UE,eNB_id,subframe,&coded_bits_per_codeword,round, UE->dlsch[UE->current_thread_id[subframe]][0][0]->current_harq_pid); - write_output("dlsch_e.m","e",eNB->dlsch[0][0]->harq_processes[0]->e,coded_bits_per_codeword,1,4); + LOG_M("dlsch_e.m","e",eNB->dlsch[0][0]->harq_processes[0]->e,coded_bits_per_codeword,1,4); //pdcch_vars - write_output("pdcchF0_ext.m","pdcchF_ext", UE->pdcch_vars[0][eNB_id]->rxdataF_ext[0],2*3*UE->frame_parms.ofdm_symbol_size,1,1); - write_output("pdcch00_ch0_ext.m","pdcch00_ch0_ext",UE->pdcch_vars[0][eNB_id]->dl_ch_estimates_ext[0],300*3,1,1); + LOG_M("pdcchF0_ext.m","pdcchF_ext", UE->pdcch_vars[0][eNB_id]->rxdataF_ext[0],2*3*UE->frame_parms.ofdm_symbol_size,1,1); + LOG_M("pdcch00_ch0_ext.m","pdcch00_ch0_ext",UE->pdcch_vars[0][eNB_id]->dl_ch_estimates_ext[0],300*3,1,1); - write_output("pdcch_rxF_comp0.m","pdcch0_rxF_comp0",UE->pdcch_vars[0][eNB_id]->rxdataF_comp[0],4*300,1,1); - write_output("pdcch_rxF_llr.m","pdcch_llr",UE->pdcch_vars[0][eNB_id]->llr,2400,1,4); + LOG_M("pdcch_rxF_comp0.m","pdcch0_rxF_comp0",UE->pdcch_vars[0][eNB_id]->rxdataF_comp[0],4*300,1,1); + LOG_M("pdcch_rxF_llr.m","pdcch_llr",UE->pdcch_vars[0][eNB_id]->llr,2400,1,4); } @@ -1869,31 +1878,31 @@ int main(int argc, char **argv) sprintf(fname,"rxsig0_r%d.m",round); sprintf(vname,"rxs0_r%d",round); - write_output(fname,vname, &UE->common_vars.rxdata[0][0],10*UE->frame_parms.samples_per_tti,1,1); + LOG_M(fname,vname, &UE->common_vars.rxdata[0][0],10*UE->frame_parms.samples_per_tti,1,1); sprintf(fname,"rxsigF0_r%d.m",round); sprintf(vname,"rxs0F_r%d",round); - write_output(fname,vname, &UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].rxdataF[0][0],UE->frame_parms.ofdm_symbol_size*nsymb,1,1); + LOG_M(fname,vname, &UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].rxdataF[0][0],UE->frame_parms.ofdm_symbol_size*nsymb,1,1); if (UE->frame_parms.nb_antennas_rx>1) { sprintf(fname,"rxsig1_r%d.m",round); sprintf(vname,"rxs1_r%d.m",round); - write_output(fname,vname, UE->common_vars.rxdata[1],UE->frame_parms.samples_per_tti,1,1); + LOG_M(fname,vname, UE->common_vars.rxdata[1],UE->frame_parms.samples_per_tti,1,1); sprintf(fname,"rxsigF1_r%d.m",round); sprintf(vname,"rxs1F_r%d.m",round); - write_output(fname,vname, UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].rxdataF[1],UE->frame_parms.ofdm_symbol_size*nsymb,1,1); + LOG_M(fname,vname, UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].rxdataF[1],UE->frame_parms.ofdm_symbol_size*nsymb,1,1); } sprintf(fname,"dlsch00_r%d.m",round); sprintf(vname,"dl00_r%d",round); - write_output(fname,vname, + LOG_M(fname,vname, &(UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].dl_ch_estimates[eNB_id][0][0]), UE->frame_parms.ofdm_symbol_size*nsymb,1,1); if (UE->frame_parms.nb_antennas_rx>1) { sprintf(fname,"dlsch01_r%d.m",round); sprintf(vname,"dl01_r%d",round); - write_output(fname,vname, + LOG_M(fname,vname, &(UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].dl_ch_estimates[eNB_id][1][0]), UE->frame_parms.ofdm_symbol_size*nsymb/2,1,1); } @@ -1901,7 +1910,7 @@ int main(int argc, char **argv) if (eNB->frame_parms.nb_antennas_tx>1) { sprintf(fname,"dlsch10_r%d.m",round); sprintf(vname,"dl10_r%d",round); - write_output(fname,vname, + LOG_M(fname,vname, &(UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].dl_ch_estimates[eNB_id][2][0]), UE->frame_parms.ofdm_symbol_size*nsymb/2,1,1); } @@ -1909,7 +1918,7 @@ int main(int argc, char **argv) if ((UE->frame_parms.nb_antennas_rx>1) && (eNB->frame_parms.nb_antennas_tx>1)) { sprintf(fname,"dlsch11_r%d.m",round); sprintf(vname,"dl11_r%d",round); - write_output(fname,vname, + LOG_M(fname,vname, &(UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].dl_ch_estimates[eNB_id][3][0]), UE->frame_parms.ofdm_symbol_size*nsymb/2,1,1); } @@ -1918,16 +1927,16 @@ int main(int argc, char **argv) dump_dlsch2(UE,eNB_id,subframe,&coded_bits_per_codeword,round, UE->dlsch[UE->current_thread_id[subframe]][0][0]->current_harq_pid); - //write_output("dlsch_e.m","e",eNB->dlsch[0][0]->harq_processes[0]->e,coded_bits_per_codeword,1,4); - //write_output("dlsch_ber_bit.m","ber_bit",uncoded_ber_bit,coded_bits_per_codeword,1,0); - //write_output("dlsch_w.m","w",eNB->dlsch[0][0]->harq_processes[0]->w[0],3*(tbs+64),1,4); - //write_output("dlsch_w.m","w",UE->dlsch[UE->current_thread_id[subframe]][0][0]->harq_processes[0]->w[0],3*(tbs+64),1,0); + //LOG_M("dlsch_e.m","e",eNB->dlsch[0][0]->harq_processes[0]->e,coded_bits_per_codeword,1,4); + //LOG_M("dlsch_ber_bit.m","ber_bit",uncoded_ber_bit,coded_bits_per_codeword,1,0); + //LOG_M("dlsch_w.m","w",eNB->dlsch[0][0]->harq_processes[0]->w[0],3*(tbs+64),1,4); + //LOG_M("dlsch_w.m","w",UE->dlsch[UE->current_thread_id[subframe]][0][0]->harq_processes[0]->w[0],3*(tbs+64),1,0); //pdcch_vars - write_output("pdcchF0_ext.m","pdcchF_ext", UE->pdcch_vars[0][eNB_id]->rxdataF_ext[0],2*3*UE->frame_parms.ofdm_symbol_size,1,1); - write_output("pdcch00_ch0_ext.m","pdcch00_ch0_ext",UE->pdcch_vars[0][eNB_id]->dl_ch_estimates_ext[0],300*3,1,1); + LOG_M("pdcchF0_ext.m","pdcchF_ext", UE->pdcch_vars[0][eNB_id]->rxdataF_ext[0],2*3*UE->frame_parms.ofdm_symbol_size,1,1); + LOG_M("pdcch00_ch0_ext.m","pdcch00_ch0_ext",UE->pdcch_vars[0][eNB_id]->dl_ch_estimates_ext[0],300*3,1,1); - write_output("pdcch_rxF_comp0.m","pdcch0_rxF_comp0",UE->pdcch_vars[0][eNB_id]->rxdataF_comp[0],4*300,1,1); - write_output("pdcch_rxF_llr.m","pdcch_llr",UE->pdcch_vars[0][eNB_id]->llr,2400,1,4); + LOG_M("pdcch_rxF_comp0.m","pdcch0_rxF_comp0",UE->pdcch_vars[0][eNB_id]->rxdataF_comp[0],4*300,1,1); + LOG_M("pdcch_rxF_llr.m","pdcch_llr",UE->pdcch_vars[0][eNB_id]->llr,2400,1,4); if (round == 3) exit(-1); } diff --git a/openair1/SIMULATION/LTE_PHY/dlsim_tm4.c b/openair1/SIMULATION/LTE_PHY/dlsim_tm4.c index 90ba1ec804..0c942df275 100644 --- a/openair1/SIMULATION/LTE_PHY/dlsim_tm4.c +++ b/openair1/SIMULATION/LTE_PHY/dlsim_tm4.c @@ -3426,6 +3426,7 @@ int main(int argc, char **argv) re_allocated = dlsch_modulation(eNB, eNB->common_vars.txdataF[eNB_id], AMP, + frame, subframe, num_pdcch_symbols, ((TB0_active == 1)? eNB->dlsch[k][0]: NULL), @@ -3471,9 +3472,9 @@ int main(int argc, char **argv) &eNB->frame_parms); if (n_frames==2) { - write_output("txsigF0.m","txsF0", &eNB->common_vars.txdataF[eNB_id][0][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size],nsymb*eNB->frame_parms.ofdm_symbol_size,1,1); + LOG_M("txsigF0.m","txsF0", &eNB->common_vars.txdataF[eNB_id][0][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size],nsymb*eNB->frame_parms.ofdm_symbol_size,1,1); if (eNB->frame_parms.nb_antennas_tx>1) - write_output("txsigF1.m","txsF1", &eNB->common_vars.txdataF[eNB_id][1][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size],nsymb*eNB->frame_parms.ofdm_symbol_size,1,1); + LOG_M("txsigF1.m","txsF1", &eNB->common_vars.txdataF[eNB_id][1][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size],nsymb*eNB->frame_parms.ofdm_symbol_size,1,1); } tx_lev = 0; @@ -3485,9 +3486,9 @@ int main(int argc, char **argv) tx_lev_dB = (unsigned int) dB_fixed(tx_lev); if (n_frames==2) { - write_output("txsigF0.m","txsF0", &eNB->common_vars.txdataF[eNB_id][0][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size],nsymb*eNB->frame_parms.ofdm_symbol_size,1,1); + LOG_M("txsigF0.m","txsF0", &eNB->common_vars.txdataF[eNB_id][0][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size],nsymb*eNB->frame_parms.ofdm_symbol_size,1,1); if (eNB->frame_parms.nb_antennas_tx>1) - write_output("txsigF1.m","txsF1", &eNB->common_vars.txdataF[eNB_id][1][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size],nsymb*eNB->frame_parms.ofdm_symbol_size,1,1); + LOG_M("txsigF1.m","txsF1", &eNB->common_vars.txdataF[eNB_id][1][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size],nsymb*eNB->frame_parms.ofdm_symbol_size,1,1); } tx_lev = 0; @@ -3500,7 +3501,7 @@ int main(int argc, char **argv) if (n_frames==2) { printf("tx_lev = %d (%d dB)\n",tx_lev,tx_lev_dB); - write_output("txsig0.m","txs0", &eNB->common_vars.txdata[eNB_id][0][subframe*eNB->frame_parms.samples_per_tti], eNB->frame_parms.samples_per_tti,1,1); + LOG_M("txsig0.m","txs0", &eNB->common_vars.txdata[eNB_id][0][subframe*eNB->frame_parms.samples_per_tti], eNB->frame_parms.samples_per_tti,1,1); } } // printf("Copying tx ..., nsymb %d (n_tx %d), awgn %d\n",nsymb,eNB->frame_parms.nb_antennas_tx,awgn_flag); @@ -3552,8 +3553,8 @@ int main(int argc, char **argv) } if (UE->perfect_ce==1){ freq_channel(eNB2UE[round],UE->frame_parms.N_RB_DL,12*UE->frame_parms.N_RB_DL + 1); - // write_output("channel.m","ch",eNB2UE[round]->ch[0],eNB2UE[round]->channel_length,1,8); - // write_output("channelF.m","chF",eNB2UE[round]->chF[0],12*UE->frame_parms.N_RB_DL +1,1,8); + // LOG_M("channel.m","ch",eNB2UE[round]->ch[0],eNB2UE[round]->channel_length,1,8); + // LOG_M("channelF.m","chF",eNB2UE[round]->chF[0],12*UE->frame_parms.N_RB_DL +1,1,8); } } @@ -4155,10 +4156,10 @@ int main(int argc, char **argv) sprintf(fname,"dlsch%d_rxF_r%d_cw%d_llr.m",eNB_id,round, TB); sprintf(vname,"dl%d_r%d_cw%d_llr",eNB_id,round, TB); - write_output(fname,vname, UE->pdsch_vars[UE->current_thread_id[subframe]][0]->llr[UE->dlsch[UE->current_thread_id[subframe]][0][TB]->harq_processes[UE->dlsch[UE->current_thread_id[subframe]][0][TB]->current_harq_pid]->codeword],coded_bits_per_codeword[TB],1,0); + LOG_M(fname,vname, UE->pdsch_vars[UE->current_thread_id[subframe]][0]->llr[UE->dlsch[UE->current_thread_id[subframe]][0][TB]->harq_processes[UE->dlsch[UE->current_thread_id[subframe]][0][TB]->current_harq_pid]->codeword],coded_bits_per_codeword[TB],1,0); sprintf(fname,"dlsch_cw%d_e.m", TB); sprintf(vname,"dlschcw%d_e", TB); - write_output(fname, vname,eNB->dlsch[0][TB]->harq_processes[0]->e,coded_bits_per_codeword[TB],1,4); + LOG_M(fname, vname,eNB->dlsch[0][TB]->harq_processes[0]->e,coded_bits_per_codeword[TB],1,4); uncoded_ber=0; printf("trials=%d\n", trials); @@ -4174,7 +4175,7 @@ int main(int argc, char **argv) avg_ber += uncoded_ber; sprintf(fname,"cw%d_uncoded_ber_bit.m", TB); sprintf(vname,"uncoded_ber_bit_cw%d", TB); - write_output(fname, vname,uncoded_ber_bit,coded_bits_per_codeword[TB],1,0); + LOG_M(fname, vname,uncoded_ber_bit,coded_bits_per_codeword[TB],1,0); printf("cw %d, uncoded ber %f\n",TB,uncoded_ber); free(uncoded_ber_bit); @@ -4425,9 +4426,9 @@ int main(int argc, char **argv) &UE->dlsch_eNB[0][0], coded_bits_per_codeword[0]); - // write_output("sic_buffer.m","sic", *sic_buffer,re_allocated,1,1); - // write_output("rxdataF_comp1.m","rxF_comp1", *UE->pdsch_vars[eNB_id]->rxdataF_comp1[UE->dlsch[UE->current_thread_id[subframe]][0][0]->current_harq_pid][round],14*12*25,1,1); - // write_output("rxdataF_rho.m","rho", *UE->pdsch_vars[eNB_id]->dl_ch_rho_ext[UE->dlsch[UE->current_thread_id[subframe]][0][0]->current_harq_pid][round],14*12*25,1,1); + // LOG_M("sic_buffer.m","sic", *sic_buffer,re_allocated,1,1); + // LOG_M("rxdataF_comp1.m","rxF_comp1", *UE->pdsch_vars[eNB_id]->rxdataF_comp1[UE->dlsch[UE->current_thread_id[subframe]][0][0]->current_harq_pid][round],14*12*25,1,1); + // LOG_M("rxdataF_rho.m","rho", *UE->pdsch_vars[eNB_id]->dl_ch_rho_ext[UE->dlsch[UE->current_thread_id[subframe]][0][0]->current_harq_pid][round],14*12*25,1,1); switch (get_Qm(eNB->dlsch[0][1]->harq_processes[0]->mcs)){ @@ -4482,7 +4483,7 @@ int main(int argc, char **argv) printf("[DLSIM] TB1 is mapped into CW%d\n", UE->dlsch[UE->current_thread_id[subframe]][0][1]->harq_processes[UE->dlsch[UE->current_thread_id[subframe]][0][1]->current_harq_pid]->codeword); #endif - // write_output("rxdata_llr1.m","llr1", UE->pdsch_vars[eNB_id]->llr[1],re_allocated*2,1,0); + // LOG_M("rxdata_llr1.m","llr1", UE->pdsch_vars[eNB_id]->llr[1],re_allocated*2,1,0); // replace cw_sic with TB+1 UE->dlsch[UE->current_thread_id[subframe]][0][1]->rnti = (common_flag==0) ? n_rnti: SI_RNTI; @@ -4508,10 +4509,10 @@ int main(int argc, char **argv) AssertFatal(uncoded_ber_bit, "uncoded_ber_bit==NULL"); sprintf(fname,"dlsch%d_rxF_r%d_cw%d_llr.m",eNB_id,round,1); sprintf(vname,"dl%d_r%d_cw%d_llr",eNB_id,round, 1); - write_output(fname,vname, UE->pdsch_vars[UE->current_thread_id[subframe]][0]->llr[1],coded_bits_per_codeword[1],1,0); + LOG_M(fname,vname, UE->pdsch_vars[UE->current_thread_id[subframe]][0]->llr[1],coded_bits_per_codeword[1],1,0); sprintf(fname,"dlsch_cw%d_e.m", 1); sprintf(vname,"dlschcw%d_e", 1); - write_output(fname, vname,eNB->dlsch[0][1]->harq_processes[0]->e,coded_bits_per_codeword[1],1,4); + LOG_M(fname, vname,eNB->dlsch[0][1]->harq_processes[0]->e,coded_bits_per_codeword[1],1,4); uncoded_ber=0; printf("trials=%d\n", trials); for (i=0;icommon_vars.rxdata[0][0],10*UE->frame_parms.samples_per_tti,1,1); + LOG_M(fname,vname, &UE->common_vars.rxdata[0][0],10*UE->frame_parms.samples_per_tti,1,1); sprintf(fname,"rxsigF0_r%d.m",round); sprintf(vname,"rxs0F_r%d",round); - write_output(fname,vname, &UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].rxdataF[0][0],2*UE->frame_parms.ofdm_symbol_size*nsymb,2,1); + LOG_M(fname,vname, &UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].rxdataF[0][0],2*UE->frame_parms.ofdm_symbol_size*nsymb,2,1); if (UE->frame_parms.nb_antennas_rx>1) { sprintf(fname,"rxsig1_r%d.m",round); sprintf(vname,"rxs1_r%d",round); - write_output(fname,vname, UE->common_vars.rxdata[1],UE->frame_parms.samples_per_tti,1,1); + LOG_M(fname,vname, UE->common_vars.rxdata[1],UE->frame_parms.samples_per_tti,1,1); sprintf(fname,"rxsig1F_r%d.m",round); sprintf(vname,"rxs1F_r%d",round); - write_output(fname,vname, UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].rxdataF[1],2*UE->frame_parms.ofdm_symbol_size*nsymb,2,1); + LOG_M(fname,vname, UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].rxdataF[1],2*UE->frame_parms.ofdm_symbol_size*nsymb,2,1); } //channel - write_output("chanF11.m","chF11",eNB2UE[0]->chF[0],12*NB_RB,1,8); - write_output("chan11.m","ch11",eNB2UE[0]->ch[0],eNB2UE[0]->channel_length,1,8); + LOG_M("chanF11.m","chF11",eNB2UE[0]->chF[0],12*NB_RB,1,8); + LOG_M("chan11.m","ch11",eNB2UE[0]->ch[0],eNB2UE[0]->channel_length,1,8); if (eNB->frame_parms.nb_antennas_rx==2 && eNB->frame_parms.nb_antennas_tx==1 ){ - write_output("chan21.m","ch21",eNB2UE[0]->ch[1],eNB2UE[0]->channel_length,1,8); + LOG_M("chan21.m","ch21",eNB2UE[0]->ch[1],eNB2UE[0]->channel_length,1,8); } if (eNB->frame_parms.nb_antennas_tx>1){ - write_output("chan12.m","ch12",eNB2UE[0]->ch[1],eNB2UE[0]->channel_length,1,8); + LOG_M("chan12.m","ch12",eNB2UE[0]->ch[1],eNB2UE[0]->channel_length,1,8); if ( eNB->frame_parms.nb_antennas_rx>1){ - write_output("chan21.m","ch21",eNB2UE[0]->ch[2],eNB2UE[0]->channel_length,1,8); - write_output("chan22.m","ch22",eNB2UE[0]->ch[3],eNB2UE[0]->channel_length,1,8); + LOG_M("chan21.m","ch21",eNB2UE[0]->ch[2],eNB2UE[0]->channel_length,1,8); + LOG_M("chan22.m","ch22",eNB2UE[0]->ch[3],eNB2UE[0]->channel_length,1,8); } } //channel estimates sprintf(fname,"dlsch00_r%d.m",round); sprintf(vname,"dl00_r%d",round); - write_output(fname,vname, + LOG_M(fname,vname, &(UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].dl_ch_estimates[eNB_id][0][0]), UE->frame_parms.ofdm_symbol_size*nsymb,1,1); if (UE->frame_parms.nb_antennas_rx>1) { sprintf(fname,"dlsch01_r%d.m",round); sprintf(vname,"dl01_r%d",round); - write_output(fname,vname, + LOG_M(fname,vname, &(UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].dl_ch_estimates[eNB_id][1][0]), UE->frame_parms.ofdm_symbol_size*nsymb,1,1); } if (eNB->frame_parms.nb_antennas_tx>1) { sprintf(fname,"dlsch10_r%d.m",round); sprintf(vname,"dl10_r%d",round); - write_output(fname,vname, + LOG_M(fname,vname, &(UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].dl_ch_estimates[eNB_id][2][0]), UE->frame_parms.ofdm_symbol_size*nsymb,1,1); } if ((UE->frame_parms.nb_antennas_rx>1) && (eNB->frame_parms.nb_antennas_tx>1)) { sprintf(fname,"dlsch11_r%d.m",round); sprintf(vname,"dl11_r%d",round); - write_output(fname,vname, + LOG_M(fname,vname, &(UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].dl_ch_estimates[eNB_id][3][0]), UE->frame_parms.ofdm_symbol_size*nsymb,1,1); } //pdsch_vars dump_dlsch2(UE,eNB_id,subframe,coded_bits_per_codeword,round, UE->dlsch[UE->current_thread_id[subframe]][0][0]->current_harq_pid); /* - write_output("dlsch_e.m","e",eNB->dlsch[0][0]->harq_processes[0]->e,coded_bits_per_codeword,1,4); - write_output("dlsch_ber_bit.m","ber_bit",uncoded_ber_bit,coded_bits_per_codeword,1,0); - write_output("dlsch_eNB_w.m","w",eNB->dlsch[0][0]->harq_processes[0]->w[0],3*(tbs+64),1,4); - write_output("dlsch_UE_w.m","w",UE->dlsch[UE->current_thread_id[subframe]][0][0]->harq_processes[0]->w[0],3*(tbs+64),1,0); + LOG_M("dlsch_e.m","e",eNB->dlsch[0][0]->harq_processes[0]->e,coded_bits_per_codeword,1,4); + LOG_M("dlsch_ber_bit.m","ber_bit",uncoded_ber_bit,coded_bits_per_codeword,1,0); + LOG_M("dlsch_eNB_w.m","w",eNB->dlsch[0][0]->harq_processes[0]->w[0],3*(tbs+64),1,4); + LOG_M("dlsch_UE_w.m","w",UE->dlsch[UE->current_thread_id[subframe]][0][0]->harq_processes[0]->w[0],3*(tbs+64),1,0); */ //pdcch_vars - write_output("pdcchF0_ext.m","pdcchF_ext", UE->pdcch_vars[UE->current_thread_id[subframe]][eNB_id]->rxdataF_ext[0],2*3*UE->frame_parms.ofdm_symbol_size,1,1); - write_output("pdcch00_ch0_ext.m","pdcch00_ch0_ext",UE->pdcch_vars[UE->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[0],300*3,1,1); + LOG_M("pdcchF0_ext.m","pdcchF_ext", UE->pdcch_vars[UE->current_thread_id[subframe]][eNB_id]->rxdataF_ext[0],2*3*UE->frame_parms.ofdm_symbol_size,1,1); + LOG_M("pdcch00_ch0_ext.m","pdcch00_ch0_ext",UE->pdcch_vars[UE->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[0],300*3,1,1); - write_output("pdcch_rxF_comp0.m","pdcch0_rxF_comp0",UE->pdcch_vars[UE->current_thread_id[subframe]][eNB_id]->rxdataF_comp[0],4*300,1,1); - write_output("pdcch_rxF_llr.m","pdcch_llr",UE->pdcch_vars[UE->current_thread_id[subframe]][eNB_id]->llr,2400,1,4); + LOG_M("pdcch_rxF_comp0.m","pdcch0_rxF_comp0",UE->pdcch_vars[UE->current_thread_id[subframe]][eNB_id]->rxdataF_comp[0],4*300,1,1); + LOG_M("pdcch_rxF_llr.m","pdcch_llr",UE->pdcch_vars[UE->current_thread_id[subframe]][eNB_id]->llr,2400,1,4); if (round == 3) exit(-1); } @@ -5181,11 +5182,6 @@ int main(int argc, char **argv) #endif } -#if 0 - thr_cw0_tm4_nonconst = rate[0]*get_Qm(PHY_vars_eNB->dlsch[0][0]->harq_processes[0]->mcs)* \ - ((double)(round_trials[0][0]-dci_errors)/((double)round_trials[0][0] + round_trials[0][1] + round_trials[0][2] + round_trials[0][3])); - printf("Throughput cw0 noncnstr = %f \n", thr_cw0_tm4_nonconst); -#endif //FOR CW1 /*thr_cw1[0] = rate[1]*get_Qm(PHY_vars_eNB->dlsch[0][1]->harq_processes[0]->mcs)*(1-((double)errs[0][0]/(double)round_trials[0][0])) \ *(1-((double)errs[1][0]/(double)round_trials[1][0])); diff --git a/openair1/SIMULATION/LTE_PHY/dlsim_tm7.c b/openair1/SIMULATION/LTE_PHY/dlsim_tm7.c index 3c4b3d0cd3..b41dd5536c 100644 --- a/openair1/SIMULATION/LTE_PHY/dlsim_tm7.c +++ b/openair1/SIMULATION/LTE_PHY/dlsim_tm7.c @@ -2679,6 +2679,7 @@ PMI_FEEDBACK: re_allocated = dlsch_modulation(eNB, eNB->common_vars.txdataF[eNB_id], AMP, + frame, subframe, num_pdcch_symbols, eNB->dlsch[k][0], @@ -2849,16 +2850,16 @@ PMI_FEEDBACK: if (n_frames==1) { if (transmission_mode<7) - write_output("txsigF0.m","txsF0", &eNB->common_vars.txdataF[eNB_id][0][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size], + LOG_M("txsigF0.m","txsF0", &eNB->common_vars.txdataF[eNB_id][0][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size], nsymb*eNB->frame_parms.ofdm_symbol_size,1,1); else if (transmission_mode==7) - write_output("txsigF0.m","txsF0", &eNB->common_vars.txdataF[eNB_id][5][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size], + LOG_M("txsigF0.m","txsF0", &eNB->common_vars.txdataF[eNB_id][5][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size], nsymb*eNB->frame_parms.ofdm_symbol_size,1,1); - write_output("txsigF0_BF.m","txsF0_BF", &eNB->common_vars.txdataF_BF[eNB_id][0][0], + LOG_M("txsigF0_BF.m","txsF0_BF", &eNB->common_vars.txdataF_BF[eNB_id][0][0], eNB->frame_parms.ofdm_symbol_size,1,1); if (eNB->frame_parms.nb_antennas_tx>1)// to be updated - write_output("txsigF1.m","txsF1", &eNB->common_vars.txdataF[eNB_id][1][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size], + LOG_M("txsigF1.m","txsF1", &eNB->common_vars.txdataF[eNB_id][1][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size], nsymb*eNB->frame_parms.ofdm_symbol_size,1,1); } tx_lev = 0; @@ -2873,8 +2874,8 @@ PMI_FEEDBACK: if (n_frames==1) { printf("tx_lev = %d (%d dB)\n",tx_lev,tx_lev_dB); - write_output("txsig0.m","txs0", &eNB->common_vars.txdata[eNB_id][0][subframe*eNB->frame_parms.samples_per_tti],eNB->frame_parms.samples_per_tti,1,1); - // write_output("txsig0.m","txs0",&eNB->common_vars.txdata[eNB_id][0][0*eNB->frame_parms.samples_per_tti],eNB->frame_parms.samples_per_tti*10,1,1); + LOG_M("txsig0.m","txs0", &eNB->common_vars.txdata[eNB_id][0][subframe*eNB->frame_parms.samples_per_tti],eNB->frame_parms.samples_per_tti,1,1); + // LOG_M("txsig0.m","txs0",&eNB->common_vars.txdata[eNB_id][0][0*eNB->frame_parms.samples_per_tti],eNB->frame_parms.samples_per_tti*10,1,1); } } @@ -2895,8 +2896,8 @@ PMI_FEEDBACK: break; } printf("Read in %d samples\n",i/4); - write_output("txsig0.m","txs0", txdata[0],2*frame_parms->samples_per_tti,1,1); - // write_output("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + LOG_M("txsig0.m","txs0", txdata[0],2*frame_parms->samples_per_tti,1,1); + // LOG_M("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); tx_lev = signal_energy(&txdata[0][0], OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES); tx_lev_dB = (unsigned int) dB_fixed(tx_lev); @@ -2942,8 +2943,8 @@ PMI_FEEDBACK: // fill in perfect channel estimates freq_channel(eNB2UE[round],UE->frame_parms.N_RB_DL,12*UE->frame_parms.N_RB_DL + 1); /* - write_output("channel.m","ch",eNB2UE[round]->ch[0],eNB2UE[round]->channel_length,1,8); - write_output("channelF.m","chF",eNB2UE[round]->chF[0],12*UE->frame_parms.N_RB_DL + 1,1,8); + LOG_M("channel.m","ch",eNB2UE[round]->ch[0],eNB2UE[round]->channel_length,1,8); + LOG_M("channelF.m","chF",eNB2UE[round]->chF[0],12*UE->frame_parms.N_RB_DL + 1,1,8); */ } } @@ -3482,52 +3483,52 @@ PMI_FEEDBACK: if (test_perf ==0 ) { if ((n_frames==1) && (Ns==(2+(2*subframe))) && (l==0)) { - write_output("ch0.m","ch0",eNB2UE[0]->ch[0],eNB2UE[0]->channel_length,1,8); + LOG_M("ch0.m","ch0",eNB2UE[0]->ch[0],eNB2UE[0]->channel_length,1,8); if (eNB->frame_parms.nb_antennas_tx>1) - write_output("ch1.m","ch1",eNB2UE[0]->ch[eNB->frame_parms.nb_antennas_rx],eNB2UE[0]->channel_length,1,8); + LOG_M("ch1.m","ch1",eNB2UE[0]->ch[eNB->frame_parms.nb_antennas_rx],eNB2UE[0]->channel_length,1,8); //common vars - //write_output("rxsig0.m","rxs0", &UE->common_vars.rxdata[0][0],10*UE->frame_parms.samples_per_tti,1,1); - write_output("rxsig0.m","rxs0", &UE->common_vars.rxdata[0][subframe*UE->frame_parms.samples_per_tti],UE->frame_parms.samples_per_tti,1,1); - //write_output("rxsigF0.m","rxsF0", &UE->common_vars.rxdataF[0][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size],UE->frame_parms.ofdm_symbol_size*nsymb,1,1); - write_output("rxsigF0.m","rxsF0", &UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].rxdataF[0][0],UE->frame_parms.ofdm_symbol_size*nsymb,1,1); + //LOG_M("rxsig0.m","rxs0", &UE->common_vars.rxdata[0][0],10*UE->frame_parms.samples_per_tti,1,1); + LOG_M("rxsig0.m","rxs0", &UE->common_vars.rxdata[0][subframe*UE->frame_parms.samples_per_tti],UE->frame_parms.samples_per_tti,1,1); + //LOG_M("rxsigF0.m","rxsF0", &UE->common_vars.rxdataF[0][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size],UE->frame_parms.ofdm_symbol_size*nsymb,1,1); + LOG_M("rxsigF0.m","rxsF0", &UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].rxdataF[0][0],UE->frame_parms.ofdm_symbol_size*nsymb,1,1); if (UE->frame_parms.nb_antennas_rx>1) { - write_output("rxsig1.m","rxs1", UE->common_vars.rxdata[1],UE->frame_parms.samples_per_tti,1,1); - write_output("rxsigF1.m","rxsF1", UE->common_vars..common_vars_rx_data_per_thread[UE->current_thread_id[subframe]]rxdataF[1],UE->frame_parms.ofdm_symbol_size*nsymb,1,1); + LOG_M("rxsig1.m","rxs1", UE->common_vars.rxdata[1],UE->frame_parms.samples_per_tti,1,1); + LOG_M("rxsigF1.m","rxsF1", UE->common_vars..common_vars_rx_data_per_thread[UE->current_thread_id[subframe]]rxdataF[1],UE->frame_parms.ofdm_symbol_size*nsymb,1,1); } - write_output("dlsch00_r0.m","dl00_r0", + LOG_M("dlsch00_r0.m","dl00_r0", &(UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].dl_ch_estimates[eNB_id][0][0]), UE->frame_parms.ofdm_symbol_size*nsymb,1,1); if (UE->frame_parms.nb_antennas_rx>1) - write_output("dlsch01_r0.m","dl01_r0", + LOG_M("dlsch01_r0.m","dl01_r0", &(UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].dl_ch_estimates[eNB_id][1][0]), UE->frame_parms.ofdm_symbol_size*nsymb,1,1); if (eNB->frame_parms.nb_antennas_tx>1) - write_output("dlsch10_r0.m","dl10_r0", + LOG_M("dlsch10_r0.m","dl10_r0", &(UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].dl_ch_estimates[eNB_id][2][0]), UE->frame_parms.ofdm_symbol_size*nsymb,1,1); if ((UE->frame_parms.nb_antennas_rx>1) && (eNB->frame_parms.nb_antennas_tx>1)) - write_output("dlsch11_r0.m","dl11_r0", + LOG_M("dlsch11_r0.m","dl11_r0", &(UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].dl_ch_estimates[eNB_id][3][0]), UE->frame_parms.ofdm_symbol_size*nsymb/2,1,1); //pdsch_vars dump_dlsch2(UE,eNB_id,subframe,&coded_bits_per_codeword,round); //dump_dlsch2(UE,eNB_id_i,coded_bits_per_codeword); - write_output("dlsch_e.m","e",eNB->dlsch[0][0]->harq_processes[0]->e,coded_bits_per_codeword,1,4); + LOG_M("dlsch_e.m","e",eNB->dlsch[0][0]->harq_processes[0]->e,coded_bits_per_codeword,1,4); //pdcch_vars - write_output("pdcchF0_ext.m","pdcchF_ext", UE->pdcch_vars[eNB_id]->rxdataF_ext[0],2*3*UE->frame_parms.ofdm_symbol_size,1,1); - write_output("pdcch00_ch0_ext.m","pdcch00_ch0_ext",UE->pdcch_vars[eNB_id]->dl_ch_estimates_ext[0],300*3,1,1); + LOG_M("pdcchF0_ext.m","pdcchF_ext", UE->pdcch_vars[eNB_id]->rxdataF_ext[0],2*3*UE->frame_parms.ofdm_symbol_size,1,1); + LOG_M("pdcch00_ch0_ext.m","pdcch00_ch0_ext",UE->pdcch_vars[eNB_id]->dl_ch_estimates_ext[0],300*3,1,1); - write_output("pdcch_rxF_comp0.m","pdcch0_rxF_comp0",UE->pdcch_vars[eNB_id]->rxdataF_comp[0],4*300,1,1); - write_output("pdcch_rxF_llr.m","pdcch_llr",UE->pdcch_vars[eNB_id]->llr,2400,1,4); + LOG_M("pdcch_rxF_comp0.m","pdcch0_rxF_comp0",UE->pdcch_vars[eNB_id]->rxdataF_comp[0],4*300,1,1); + LOG_M("pdcch_rxF_llr.m","pdcch_llr",UE->pdcch_vars[eNB_id]->llr,2400,1,4); } } @@ -3577,7 +3578,7 @@ PMI_FEEDBACK: avg_ber += uncoded_ber; if (n_frames==1) - write_output("uncoded_ber_bit.m","uncoded_ber_bit",uncoded_ber_bit,coded_bits_per_codeword,1,0); + LOG_M("uncoded_ber_bit.m","uncoded_ber_bit",uncoded_ber_bit,coded_bits_per_codeword,1,0); start_meas(&UE->dlsch_unscrambling_stats); @@ -3690,30 +3691,30 @@ PMI_FEEDBACK: sprintf(fname,"rxsig0_r%d.m",round); sprintf(vname,"rxs0_r%d",round); - write_output(fname,vname, &UE->common_vars.rxdata[0][0],10*UE->frame_parms.samples_per_tti,1,1); + LOG_M(fname,vname, &UE->common_vars.rxdata[0][0],10*UE->frame_parms.samples_per_tti,1,1); sprintf(fname,"rxsigF0_r%d.m",round); sprintf(vname,"rxs0F_r%d",round); - write_output(fname,vname, &UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].rxdataF[0][0],2*UE->frame_parms.ofdm_symbol_size*nsymb,2,1); + LOG_M(fname,vname, &UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].rxdataF[0][0],2*UE->frame_parms.ofdm_symbol_size*nsymb,2,1); if (UE->frame_parms.nb_antennas_rx>1) { sprintf(fname,"rxsig1_r%d.m",round); sprintf(vname,"rxs1_r%d.m",round); - write_output(fname,vname, UE->common_vars.rxdata[1],UE->frame_parms.samples_per_tti,1,1); + LOG_M(fname,vname, UE->common_vars.rxdata[1],UE->frame_parms.samples_per_tti,1,1); sprintf(fname,"rxsig1F_r%d.m",round); sprintf(vname,"rxs1F_r%d.m",round); - write_output(fname,vname, UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].rxdataF[1],2*UE->frame_parms.ofdm_symbol_size*nsymb,2,1); + LOG_M(fname,vname, UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].rxdataF[1],2*UE->frame_parms.ofdm_symbol_size*nsymb,2,1); } sprintf(fname,"dlsch00_r%d.m",round); sprintf(vname,"dl00_r%d",round); - write_output(fname,vname, + LOG_M(fname,vname, &(UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].dl_ch_estimates[eNB_id][0][0]), UE->frame_parms.ofdm_symbol_size*nsymb,1,1); if (UE->frame_parms.nb_antennas_rx>1) { sprintf(fname,"dlsch01_r%d.m",round); sprintf(vname,"dl01_r%d",round); - write_output(fname,vname, + LOG_M(fname,vname, &(UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].dl_ch_estimates[eNB_id][1][0]), UE->frame_parms.ofdm_symbol_size*nsymb/2,1,1); } @@ -3721,7 +3722,7 @@ PMI_FEEDBACK: if (eNB->frame_parms.nb_antennas_tx>1) { sprintf(fname,"dlsch10_r%d.m",round); sprintf(vname,"dl10_r%d",round); - write_output(fname,vname, + LOG_M(fname,vname, &(UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].dl_ch_estimates[eNB_id][2][0]), UE->frame_parms.ofdm_symbol_size*nsymb/2,1,1); } @@ -3729,7 +3730,7 @@ PMI_FEEDBACK: if ((UE->frame_parms.nb_antennas_rx>1) && (eNB->frame_parms.nb_antennas_tx>1)) { sprintf(fname,"dlsch11_r%d.m",round); sprintf(vname,"dl11_r%d",round); - write_output(fname,vname, + LOG_M(fname,vname, &(UE->common_vars.common_vars_rx_data_per_thread[UE->current_thread_id[subframe]].dl_ch_estimates[eNB_id][3][0]), UE->frame_parms.ofdm_symbol_size*nsymb/2,1,1); } @@ -3737,10 +3738,10 @@ PMI_FEEDBACK: //pdsch_vars dump_dlsch2(UE,eNB_id,subframe,&coded_bits_per_codeword,round); /* - write_output("dlsch_e.m","e",eNB->dlsch[0][0]->harq_processes[0]->e,coded_bits_per_codeword,1,4); - write_output("dlsch_ber_bit.m","ber_bit",uncoded_ber_bit,coded_bits_per_codeword,1,0); - write_output("dlsch_w.m","w",eNB->dlsch[0][0]->harq_processes[0]->w[0],3*(tbs+64),1,4); - write_output("dlsch_w.m","w",UE->dlsch[UE->current_thread_id[subframe]][0][0]->harq_processes[0]->w[0],3*(tbs+64),1,0); + LOG_M("dlsch_e.m","e",eNB->dlsch[0][0]->harq_processes[0]->e,coded_bits_per_codeword,1,4); + LOG_M("dlsch_ber_bit.m","ber_bit",uncoded_ber_bit,coded_bits_per_codeword,1,0); + LOG_M("dlsch_w.m","w",eNB->dlsch[0][0]->harq_processes[0]->w[0],3*(tbs+64),1,4); + LOG_M("dlsch_w.m","w",UE->dlsch[UE->current_thread_id[subframe]][0][0]->harq_processes[0]->w[0],3*(tbs+64),1,0); */ if (round == 3) exit(-1); diff --git a/openair1/SIMULATION/LTE_PHY/dummy_functions.c b/openair1/SIMULATION/LTE_PHY/dummy_functions.c index ac96d53b0f..586193484d 100644 --- a/openair1/SIMULATION/LTE_PHY/dummy_functions.c +++ b/openair1/SIMULATION/LTE_PHY/dummy_functions.c @@ -60,7 +60,7 @@ void ue_send_mch_sdu(module_id_t module_idP, uint8_t CC_id, frame_t frameP, uint8_t * sdu, uint16_t sdu_len, uint8_t eNB_index, uint8_t sync_area){} -int ue_query_mch(uint8_t Mod_id, uint8_t CC_id, uint32_t frame, +int ue_query_mch(module_id_t Mod_id, uint8_t CC_id, uint32_t frame, sub_frame_t subframe, uint8_t eNB_index, uint8_t * sync_area, uint8_t * mcch_active){ return(0);} diff --git a/openair1/SIMULATION/LTE_PHY/framegen.c b/openair1/SIMULATION/LTE_PHY/framegen.c index 0adc07ff97..f5b1e6d45e 100644 --- a/openair1/SIMULATION/LTE_PHY/framegen.c +++ b/openair1/SIMULATION/LTE_PHY/framegen.c @@ -625,9 +625,9 @@ int main(int argc, char **argv) char fname[64], vname[64]; sprintf(fname, "txsig%d.m", frame); sprintf(vname, "txs%d", frame); - write_output(fname, vname, PHY_vars_eNB_g[0]->lte_eNB_common_vars.txdata[0][0], FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + LOG_M(fname, vname, PHY_vars_eNB_g[0]->lte_eNB_common_vars.txdata[0][0], FRAME_LENGTH_COMPLEX_SAMPLES,1,1); if (frame == 0) - write_output("txsigF0.m", "txsF0", PHY_vars_eNB_g[0]->lte_eNB_common_vars.txdataF[0][0], frame_parms->ofdm_symbol_size*14*10, 1, 1); + LOG_M("txsigF0.m", "txsF0", PHY_vars_eNB_g[0]->lte_eNB_common_vars.txdataF[0][0], frame_parms->ofdm_symbol_size*14*10, 1, 1); }//frame } diff --git a/openair1/SIMULATION/LTE_PHY/mbmssim.c b/openair1/SIMULATION/LTE_PHY/mbmssim.c index fbe75fed16..9910c97af8 100644 --- a/openair1/SIMULATION/LTE_PHY/mbmssim.c +++ b/openair1/SIMULATION/LTE_PHY/mbmssim.c @@ -381,10 +381,10 @@ int main(int argc, char **argv) CYCLIC_PREFIX); if (n_frames==1) { - write_output("txsigF0.m","txsF0", &eNB->common_vars.txdataF[0][0][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size], + LOG_M("txsigF0.m","txsF0", &eNB->common_vars.txdataF[0][0][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size], nsymb*eNB->frame_parms.ofdm_symbol_size,1,1); //if (eNB->frame_parms.nb_antennas_tx>1) - //write_output("txsigF1.m","txsF1", &eNB->lte_eNB_common_vars.txdataF[eNB_id][1][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size],nsymb*eNB->frame_parms.ofdm_symbol_size,1,1); + //LOG_M("txsigF1.m","txsF1", &eNB->lte_eNB_common_vars.txdataF[eNB_id][1][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size],nsymb*eNB->frame_parms.ofdm_symbol_size,1,1); } tx_lev = 0; @@ -399,7 +399,7 @@ int main(int argc, char **argv) if (n_frames==1) { printf("tx_lev = %d (%d dB)\n",tx_lev,tx_lev_dB); - // write_output("txsig0.m","txs0", &eNB->common_vars.txdata[0][0][subframe* eNB->frame_parms.samples_per_tti], + // LOG_M("txsig0.m","txs0", &eNB->common_vars.txdata[0][0][subframe* eNB->frame_parms.samples_per_tti], // eNB->frame_parms.samples_per_tti,1,1); } diff --git a/openair1/SIMULATION/LTE_PHY/pbchsim.c b/openair1/SIMULATION/LTE_PHY/pbchsim.c index d1e25da5c3..f44ed7b3a2 100644 --- a/openair1/SIMULATION/LTE_PHY/pbchsim.c +++ b/openair1/SIMULATION/LTE_PHY/pbchsim.c @@ -657,12 +657,12 @@ int main(int argc, char **argv) } - // write_output("pilotsF.m","rsF",txdataF[0],frame_parms->ofdm_symbol_size,1,1); + // LOG_M("pilotsF.m","rsF",txdataF[0],frame_parms->ofdm_symbol_size,1,1); - write_output("txsigF0.m","txsF0", eNB->common_vars.txdataF[0][0],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); + LOG_M("txsigF0.m","txsF0", eNB->common_vars.txdataF[0][0],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); if (eNB->frame_parms.nb_antennas_tx>1) - write_output("txsigF1.m","txsF1", eNB->common_vars.txdataF[0][1],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); + LOG_M("txsigF1.m","txsF1", eNB->common_vars.txdataF[0][1],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); tx_lev = 0; tx_lev1 = 0; @@ -710,10 +710,10 @@ int main(int argc, char **argv) OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES); } - write_output("txsigF0_1.m","txsF0_1", eNB1->common_vars.txdataF[0][0],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); + LOG_M("txsigF0_1.m","txsF0_1", eNB1->common_vars.txdataF[0][0],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); if (eNB1->frame_parms.nb_antennas_tx>1) - write_output("txsigF1_1.m","txsF1_1", eNB1->common_vars.txdataF[0][1],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); + LOG_M("txsigF1_1.m","txsF1_1", eNB1->common_vars.txdataF[0][1],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); } if (interf2>-20) { @@ -736,28 +736,28 @@ int main(int argc, char **argv) OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES); } - write_output("txsigF0_2.m","txsF0_2", eNB2->common_vars.txdataF[0][0],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); + LOG_M("txsigF0_2.m","txsF0_2", eNB2->common_vars.txdataF[0][0],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); if (eNB2->frame_parms.nb_antennas_tx>1) - write_output("txsigF1_2.m","txsF1_2", eNB2->common_vars.txdataF[0][1],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); + LOG_M("txsigF1_2.m","txsF1_2", eNB2->common_vars.txdataF[0][1],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); } // tx_lev_dB = (unsigned int) dB_fixed(tx_lev); - write_output("txsig0.m","txs0", txdata[0],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + LOG_M("txsig0.m","txs0", txdata[0],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); if (frame_parms->nb_antennas_tx>1) - write_output("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + LOG_M("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); - write_output("txsig0_1.m","txs0_1", eNB1->common_vars.txdata[0][0],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + LOG_M("txsig0_1.m","txs0_1", eNB1->common_vars.txdata[0][0],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); if (frame_parms->nb_antennas_tx>1) - write_output("txsig1_1.m","txs1_1", eNB1->common_vars.txdata[0][1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + LOG_M("txsig1_1.m","txs1_1", eNB1->common_vars.txdata[0][1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); - write_output("txsig0_2.m","txs0_2", eNB2->common_vars.txdata[0][0],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + LOG_M("txsig0_2.m","txs0_2", eNB2->common_vars.txdata[0][0],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); if (frame_parms->nb_antennas_tx>1) - write_output("txsig1_2.m","txs1_2", eNB2->common_vars.txdata[0][1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + LOG_M("txsig1_2.m","txs1_2", eNB2->common_vars.txdata[0][1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); } else { //read in from file i=0; @@ -782,8 +782,8 @@ int main(int argc, char **argv) } printf("Read in %d samples\n",i/4); - write_output("txsig0.m","txs0", txdata[0],2*frame_parms->samples_per_tti,1,1); - // write_output("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + LOG_M("txsig0.m","txs0", txdata[0],2*frame_parms->samples_per_tti,1,1); + // LOG_M("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); tx_lev = signal_energy(&txdata[0][0], OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES); // tx_lev_dB = (unsigned int) dB_fixed(tx_lev); @@ -960,7 +960,7 @@ int main(int argc, char **argv) if (l==((eNB->frame_parms.Ncp==0)?4:3)) { //sprintf(fname,"dl_ch00_%d.m",l); //sprintf(vname,"dl_ch00_%d",l); - //write_output(fname,vname,&(common_vars->dl_ch_estimates[0][frame_parms->ofdm_symbol_size*(l%6)]),frame_parms->ofdm_symbol_size,1,1); + //LOG_M(fname,vname,&(common_vars->dl_ch_estimates[0][frame_parms->ofdm_symbol_size*(l%6)]),frame_parms->ofdm_symbol_size,1,1); lte_est_freq_offset(UE->common_vars.common_vars_rx_data_per_thread[/*subframe*/0&0x1].dl_ch_estimates[0], &UE->frame_parms, @@ -1050,16 +1050,16 @@ int main(int argc, char **argv) if (n_frames==1) { - write_output("H00.m","h00",&(UE->common_vars.common_vars_rx_data_per_thread[/*subframe*/0&0x1].dl_ch_estimates[0][0][0]),((frame_parms->Ncp==0)?7:6)*(eNB->frame_parms.ofdm_symbol_size),1,1); + LOG_M("H00.m","h00",&(UE->common_vars.common_vars_rx_data_per_thread[/*subframe*/0&0x1].dl_ch_estimates[0][0][0]),((frame_parms->Ncp==0)?7:6)*(eNB->frame_parms.ofdm_symbol_size),1,1); if (n_tx==2) - write_output("H10.m","h10",&(UE->common_vars.common_vars_rx_data_per_thread[/*subframe*/0&0x1].dl_ch_estimates[0][2][0]),((frame_parms->Ncp==0)?7:6)*(eNB->frame_parms.ofdm_symbol_size),1,1); + LOG_M("H10.m","h10",&(UE->common_vars.common_vars_rx_data_per_thread[/*subframe*/0&0x1].dl_ch_estimates[0][2][0]),((frame_parms->Ncp==0)?7:6)*(eNB->frame_parms.ofdm_symbol_size),1,1); - write_output("rxsig0.m","rxs0", UE->common_vars.rxdata[0],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); - write_output("rxsigF0.m","rxsF0", UE->common_vars.common_vars_rx_data_per_thread[/*subframe*/0&0x1].rxdataF[0],NUMBER_OF_OFDM_CARRIERS*2*((frame_parms->Ncp==0)?14:12),2,1); - write_output("PBCH_rxF0_ext.m","pbch0_ext",UE->pbch_vars[0]->rxdataF_ext[0],12*4*6,1,1); - write_output("PBCH_rxF0_comp.m","pbch0_comp",UE->pbch_vars[0]->rxdataF_comp[0],12*4*6,1,1); - write_output("PBCH_rxF_llr.m","pbch_llr",UE->pbch_vars[0]->llr,(frame_parms->Ncp==0) ? 1920 : 1728,1,4); + LOG_M("rxsig0.m","rxs0", UE->common_vars.rxdata[0],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + LOG_M("rxsigF0.m","rxsF0", UE->common_vars.common_vars_rx_data_per_thread[/*subframe*/0&0x1].rxdataF[0],NUMBER_OF_OFDM_CARRIERS*2*((frame_parms->Ncp==0)?14:12),2,1); + LOG_M("PBCH_rxF0_ext.m","pbch0_ext",UE->pbch_vars[0]->rxdataF_ext[0],12*4*6,1,1); + LOG_M("PBCH_rxF0_comp.m","pbch0_comp",UE->pbch_vars[0]->rxdataF_comp[0],12*4*6,1,1); + LOG_M("PBCH_rxF_llr.m","pbch_llr",UE->pbch_vars[0]->llr,(frame_parms->Ncp==0) ? 1920 : 1728,1,4); } diff --git a/openair1/SIMULATION/LTE_PHY/pdcchsim.c b/openair1/SIMULATION/LTE_PHY/pdcchsim.c index ef0e221491..ac442ae5e9 100644 --- a/openair1/SIMULATION/LTE_PHY/pdcchsim.c +++ b/openair1/SIMULATION/LTE_PHY/pdcchsim.c @@ -787,8 +787,8 @@ int main(int argc, char **argv) } printf("Read in %d samples\n",i/4); - write_output("txsig0.m","txs0", txdata[0],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); - // write_output("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + LOG_M("txsig0.m","txs0", txdata[0],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + // LOG_M("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); tx_lev = signal_energy(&txdata[0][0], OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES); tx_lev_dB = (unsigned int) dB_fixed(tx_lev); @@ -949,13 +949,13 @@ int main(int argc, char **argv) } - // write_output("pilotsF.m","rsF",txdataF[0],lte_eNB->frame_parms.ofdm_symbol_size,1,1); + // LOG_M("pilotsF.m","rsF",txdataF[0],lte_eNB->frame_parms.ofdm_symbol_size,1,1); if (n_frames==1) { - write_output("txsigF0.m","txsF0", eNB->common_vars.txdataF[eNb_id][0],4*nsymb*OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES_NO_PREFIX,1,1); + LOG_M("txsigF0.m","txsF0", eNB->common_vars.txdataF[eNb_id][0],4*nsymb*OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES_NO_PREFIX,1,1); if (eNB->frame_parms.nb_antenna_ports_eNB > 1) - write_output("txsigF1.m","txsF1", eNB->common_vars.txdataF[eNb_id][1],4*nsymb*OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES_NO_PREFIX,1,1); + LOG_M("txsigF1.m","txsF1", eNB->common_vars.txdataF[eNb_id][1],4*nsymb*OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES_NO_PREFIX,1,1); } tx_lev = 0; @@ -1009,7 +1009,7 @@ int main(int argc, char **argv) 2*nsymb*OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES,0); } - //write_output("channel0.m","chan0",ch[0],channel_length,1,8); + //LOG_M("channel0.m","chan0",ch[0],channel_length,1,8); // scale by path_loss = NOW - P_noise //sigma2 = pow(10,sigma2_dB/10); @@ -1056,8 +1056,8 @@ int main(int argc, char **argv) // fill in perfect channel estimates freq_channel(eNB2UE,UE->frame_parms.N_RB_DL,12*UE->frame_parms.N_RB_DL + 1); - //write_output("channel.m","ch",desc1->ch[0],desc1->channel_length,1,8); - //write_output("channelF.m","chF",desc1->chF[0],nb_samples,1,8); + //LOG_M("channel.m","ch",desc1->ch[0],desc1->channel_length,1,8); + //LOG_M("channelF.m","chF",desc1->chF[0],nb_samples,1,8); for(k=0; knb_antennas_tx; aa++) { for (aarx=0; aarxnb_antennas_rx; aarx++) { @@ -1084,7 +1084,7 @@ int main(int argc, char **argv) if (l==((eNB->frame_parms.Ncp==0)?4:3)) { - // write_output("H00.m","h00",&(UE->common_vars.dl_ch_estimates[0][0][0]),((frame_parms->Ncp==0)?7:6)*(eNB->frame_parms.ofdm_symbol_size),1,1); + // LOG_M("H00.m","h00",&(UE->common_vars.dl_ch_estimates[0][0][0]),((frame_parms->Ncp==0)?7:6)*(eNB->frame_parms.ofdm_symbol_size),1,1); // do PDCCH procedures here UE->pdcch_vars[0][0]->crnti = n_rnti; @@ -1206,27 +1206,27 @@ int main(int argc, char **argv) if (n_frames==1) { - write_output("txsig0.m","txs0", txdata[0],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + LOG_M("txsig0.m","txs0", txdata[0],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); if (n_tx>1) - write_output("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + LOG_M("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); - write_output("rxsig0.m","rxs0", UE->common_vars.rxdata[0],10*frame_parms->samples_per_tti,1,1); - write_output("rxsigF0.m","rxsF0", UE->common_vars.common_vars_rx_data_per_thread[subframe&0x1].rxdataF[0],NUMBER_OF_OFDM_CARRIERS*2*((frame_parms->Ncp==0)?14:12),2,1); + LOG_M("rxsig0.m","rxs0", UE->common_vars.rxdata[0],10*frame_parms->samples_per_tti,1,1); + LOG_M("rxsigF0.m","rxsF0", UE->common_vars.common_vars_rx_data_per_thread[subframe&0x1].rxdataF[0],NUMBER_OF_OFDM_CARRIERS*2*((frame_parms->Ncp==0)?14:12),2,1); if (n_rx>1) { - write_output("rxsig1.m","rxs1", UE->common_vars.rxdata[1],10*frame_parms->samples_per_tti,1,1); - write_output("rxsigF1.m","rxsF1", UE->common_vars.common_vars_rx_data_per_thread[subframe&0x1].rxdataF[1],NUMBER_OF_OFDM_CARRIERS*2*((frame_parms->Ncp==0)?14:12),2,1); + LOG_M("rxsig1.m","rxs1", UE->common_vars.rxdata[1],10*frame_parms->samples_per_tti,1,1); + LOG_M("rxsigF1.m","rxsF1", UE->common_vars.common_vars_rx_data_per_thread[subframe&0x1].rxdataF[1],NUMBER_OF_OFDM_CARRIERS*2*((frame_parms->Ncp==0)?14:12),2,1); } - write_output("H00.m","h00",&(UE->common_vars.common_vars_rx_data_per_thread[subframe&0x1].dl_ch_estimates[0][0][0]),((frame_parms->Ncp==0)?7:6)*(eNB->frame_parms.ofdm_symbol_size),1,1); + LOG_M("H00.m","h00",&(UE->common_vars.common_vars_rx_data_per_thread[subframe&0x1].dl_ch_estimates[0][0][0]),((frame_parms->Ncp==0)?7:6)*(eNB->frame_parms.ofdm_symbol_size),1,1); if (n_tx==2) - write_output("H10.m","h10",&(UE->common_vars.common_vars_rx_data_per_thread[subframe&0x1].dl_ch_estimates[0][2][0]),((frame_parms->Ncp==0)?7:6)*(eNB->frame_parms.ofdm_symbol_size),1,1); + LOG_M("H10.m","h10",&(UE->common_vars.common_vars_rx_data_per_thread[subframe&0x1].dl_ch_estimates[0][2][0]),((frame_parms->Ncp==0)?7:6)*(eNB->frame_parms.ofdm_symbol_size),1,1); - write_output("pdcch_rxF_ext0.m","pdcch_rxF_ext0",UE->pdcch_vars[0][eNb_id]->rxdataF_ext[0],3*12*UE->frame_parms.N_RB_DL,1,1); - write_output("pdcch_rxF_comp0.m","pdcch0_rxF_comp0",UE->pdcch_vars[0][eNb_id]->rxdataF_comp[0],4*12*UE->frame_parms.N_RB_DL,1,1); - write_output("pdcch_rxF_llr.m","pdcch_llr",UE->pdcch_vars[0][eNb_id]->llr,2400,1,4); + LOG_M("pdcch_rxF_ext0.m","pdcch_rxF_ext0",UE->pdcch_vars[0][eNb_id]->rxdataF_ext[0],3*12*UE->frame_parms.N_RB_DL,1,1); + LOG_M("pdcch_rxF_comp0.m","pdcch0_rxF_comp0",UE->pdcch_vars[0][eNb_id]->rxdataF_comp[0],4*12*UE->frame_parms.N_RB_DL,1,1); + LOG_M("pdcch_rxF_llr.m","pdcch_llr",UE->pdcch_vars[0][eNb_id]->llr,2400,1,4); } lte_sync_time_free(); diff --git a/openair1/SIMULATION/LTE_PHY/prachsim.c b/openair1/SIMULATION/LTE_PHY/prachsim.c index 58f89bd65b..7475017d85 100644 --- a/openair1/SIMULATION/LTE_PHY/prachsim.c +++ b/openair1/SIMULATION/LTE_PHY/prachsim.c @@ -425,8 +425,8 @@ int main(int argc, char **argv) /* tx_lev_dB not used later, no need to set */ //tx_lev_dB = (unsigned int) dB_fixed(tx_lev); - write_output("txsig0_new.m","txs0", &txdata[0][subframe*frame_parms->samples_per_tti],frame_parms->samples_per_tti,1,1); - //write_output("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + LOG_M("txsig0_new.m","txs0", &txdata[0][subframe*frame_parms->samples_per_tti],frame_parms->samples_per_tti,1,1); + //LOG_M("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); // multipath channel dump_prach_config(&eNB->frame_parms,subframe); @@ -521,13 +521,13 @@ int main(int argc, char **argv) else printf("preamble %d : energy %d, delay %d\n",i,preamble_energy_list[i],preamble_delay_list[i]); - write_output("prach0.m","prach0", &txdata[0][subframe*frame_parms->samples_per_tti],frame_parms->samples_per_tti,1,1); - write_output("prachF0.m","prachF0", &eNB->prach_vars.prachF[0],24576,1,1); - write_output("rxsig0.m","rxs0", + LOG_M("prach0.m","prach0", &txdata[0][subframe*frame_parms->samples_per_tti],frame_parms->samples_per_tti,1,1); + LOG_M("prachF0.m","prachF0", &eNB->prach_vars.prachF[0],24576,1,1); + LOG_M("rxsig0.m","rxs0", &eNB->common_vars.rxdata[0][0][subframe*frame_parms->samples_per_tti], frame_parms->samples_per_tti,1,1); - write_output("rxsigF0.m","rxsF0", eNB->prach_vars.rxsigF[0],6144,1,1); - write_output("prach_preamble.m","prachp",&eNB->X_u[0],839,1,1); + LOG_M("rxsigF0.m","rxsF0", eNB->prach_vars.rxsigF[0],6144,1,1); + LOG_M("prach_preamble.m","prachp",&eNB->X_u[0],839,1,1); } } diff --git a/openair1/SIMULATION/LTE_PHY/pucchsim.c b/openair1/SIMULATION/LTE_PHY/pucchsim.c index d49367c4db..b9e059529b 100644 --- a/openair1/SIMULATION/LTE_PHY/pucchsim.c +++ b/openair1/SIMULATION/LTE_PHY/pucchsim.c @@ -391,7 +391,7 @@ int main(int argc, char **argv) subframe, //subframe n_rnti); //rnti } - write_output("txsigF0.m","txsF0", &UE->common_vars.txdataF[0][2*subframe*nsymb*OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES_NO_PREFIX],OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES_NO_PREFIX*nsymb,1,1); + LOG_M("txsigF0.m","txsF0", &UE->common_vars.txdataF[0][2*subframe*nsymb*OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES_NO_PREFIX],OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES_NO_PREFIX*nsymb,1,1); tx_lev = 0; @@ -424,8 +424,8 @@ int main(int argc, char **argv) - write_output("txsig0.m","txs0", txdata[0], FRAME_LENGTH_COMPLEX_SAMPLES,1,1); - //write_output("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + LOG_M("txsig0.m","txs0", txdata[0], FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + //LOG_M("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); // multipath channel @@ -606,10 +606,10 @@ int main(int argc, char **argv) } if (n_frames==1) { - //write_output("txsig0.m","txs0", &txdata[0][subframe*frame_parms->samples_per_tti],frame_parms->samples_per_tti,1,1); - write_output("txsig0pucch.m", "txs0", &txdata[0][0], FRAME_LENGTH_COMPLEX_SAMPLES,1,1); - write_output("rxsig0.m","rxs0", &eNB->common_vars.rxdata[0][0][subframe*frame_parms->samples_per_tti],frame_parms->samples_per_tti,1,1); - write_output("rxsigF0.m","rxsF0", &eNB->common_vars.rxdataF[0][0][0],512*nsymb*2,2,1); + //LOG_M("txsig0.m","txs0", &txdata[0][subframe*frame_parms->samples_per_tti],frame_parms->samples_per_tti,1,1); + LOG_M("txsig0pucch.m", "txs0", &txdata[0][0], FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + LOG_M("rxsig0.m","rxs0", &eNB->common_vars.rxdata[0][0][subframe*frame_parms->samples_per_tti],frame_parms->samples_per_tti,1,1); + LOG_M("rxsigF0.m","rxsF0", &eNB->common_vars.rxdataF[0][0][0],512*nsymb*2,2,1); } diff --git a/openair1/SIMULATION/LTE_PHY/scansim.c b/openair1/SIMULATION/LTE_PHY/scansim.c index 69aee01b32..cb419f57c2 100644 --- a/openair1/SIMULATION/LTE_PHY/scansim.c +++ b/openair1/SIMULATION/LTE_PHY/scansim.c @@ -521,10 +521,10 @@ int main(int argc, char **argv) pbch_pdu, pbch_phase); */ - write_output("txsigF0.m","txsF0", PHY_vars_eNB->lte_eNB_common_vars.txdataF[0][0],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); + LOG_M("txsigF0.m","txsF0", PHY_vars_eNB->lte_eNB_common_vars.txdataF[0][0],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); if (PHY_vars_eNB->lte_frame_parms.nb_antennas_tx>1) - write_output("txsigF1.m","txsF1", PHY_vars_eNB->lte_eNB_common_vars.txdataF[0][1],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); + LOG_M("txsigF1.m","txsF1", PHY_vars_eNB->lte_eNB_common_vars.txdataF[0][1],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); tx_lev = 0; tx_lev1 = 0; @@ -553,10 +553,10 @@ int main(int argc, char **argv) } - write_output("txsig0.m","txs0", txdata[0],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + LOG_M("txsig0.m","txs0", txdata[0],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); if (frame_parms->nb_antennas_tx>1) - write_output("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + LOG_M("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); // multipath channel diff --git a/openair1/SIMULATION/LTE_PHY/syncsim.c b/openair1/SIMULATION/LTE_PHY/syncsim.c index e491944ccf..59116bc5e1 100644 --- a/openair1/SIMULATION/LTE_PHY/syncsim.c +++ b/openair1/SIMULATION/LTE_PHY/syncsim.c @@ -1108,12 +1108,12 @@ int main(int argc, char **argv) 5); */ - // write_output("pilotsF.m","rsF",txdataF[0],lte_frame_parms->ofdm_symbol_size,1,1); + // LOG_M("pilotsF.m","rsF",txdataF[0],lte_frame_parms->ofdm_symbol_size,1,1); #ifdef IFFT_FPGA - write_output("txsigF0.m","txsF0", PHY_vars_eNB->lte_eNB_common_vars.txdataF[eNb_id][0],300*120,1,4); + LOG_M("txsigF0.m","txsF0", PHY_vars_eNB->lte_eNB_common_vars.txdataF[eNb_id][0],300*120,1,4); if (PHY_vars_eNB->lte_frame_parms.nb_antennas_tx>1) - write_output("txsigF1.m","txsF1", PHY_vars_eNB->lte_eNB_common_vars.txdataF[eNb_id][1],300*120,1,4); + LOG_M("txsigF1.m","txsF1", PHY_vars_eNB->lte_eNB_common_vars.txdataF[eNb_id][1],300*120,1,4); for (i=0; i<10; i++) debug_msg("%08x\n",((unsigned int*)&PHY_vars_eNB->lte_eNB_common_vars.txdataF[0][0][1*(PHY_vars_eNB->lte_frame_parms.N_RB_DL*12)*(PHY_vars_eNB->lte_frame_parms.symbols_per_tti>>1)])[i]); @@ -1134,10 +1134,10 @@ int main(int argc, char **argv) //printf("l=%d\n",l); } - write_output("txsigF20.m","txsF20", txdataF2[0],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); + LOG_M("txsigF20.m","txsF20", txdataF2[0],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); if (PHY_vars_eNB->lte_frame_parms.nb_antennas_tx>1) - write_output("txsigF21.m","txsF21", txdataF2[1],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); + LOG_M("txsigF21.m","txsF21", txdataF2[1],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); tx_lev=0; @@ -1162,10 +1162,10 @@ int main(int argc, char **argv) } #else - write_output("txsigF0.m","txsF0", PHY_vars_eNB->lte_eNB_common_vars.txdataF[eNb_id][0],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); + LOG_M("txsigF0.m","txsF0", PHY_vars_eNB->lte_eNB_common_vars.txdataF[eNb_id][0],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); if (PHY_vars_eNB->lte_frame_parms.nb_antennas_tx>1) - write_output("txsigF1.m","txsF1", PHY_vars_eNB->lte_eNB_common_vars.txdataF[eNb_id][1],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); + LOG_M("txsigF1.m","txsF1", PHY_vars_eNB->lte_eNB_common_vars.txdataF[eNb_id][1],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); tx_lev = 0; @@ -1237,10 +1237,10 @@ int main(int argc, char **argv) - write_output("txsig0.m","txs0", txdata[0],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + LOG_M("txsig0.m","txs0", txdata[0],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); if (frame_parms->nb_antennas_tx>1) - write_output("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + LOG_M("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); } else if ((oai_hw_input==0)&&(oai_hw_output==0)) { //read in from file i=0; @@ -1264,8 +1264,8 @@ int main(int argc, char **argv) } printf("Read in %d samples (%d)\n",i,FRAME_LENGTH_COMPLEX_SAMPLES); - write_output("txsig0.m","txs0", txdata[0],10*frame_parms->samples_per_tti,1,1); - // write_output("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + LOG_M("txsig0.m","txs0", txdata[0],10*frame_parms->samples_per_tti,1,1); + // LOG_M("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); tx_lev = signal_energy(&txdata[0][0], OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES); } else { // get from OAI HW @@ -1678,19 +1678,19 @@ int main(int argc, char **argv) if (n_frames==1) { - write_output("H00.m","h00",&(PHY_vars_UE[0]->lte_ue_common_vars.common_vars_rx_data_per_thread[subframe&0x1].dl_ch_estimates[0][0][0]),((frame_parms->Ncp==0)?7:6)*(PHY_vars_eNB->lte_frame_parms.ofdm_symbol_size),1,1); + LOG_M("H00.m","h00",&(PHY_vars_UE[0]->lte_ue_common_vars.common_vars_rx_data_per_thread[subframe&0x1].dl_ch_estimates[0][0][0]),((frame_parms->Ncp==0)?7:6)*(PHY_vars_eNB->lte_frame_parms.ofdm_symbol_size),1,1); if (n_tx==2) - write_output("H10.m","h10",&(PHY_vars_UE[0]->lte_ue_common_vars.common_vars_rx_data_per_thread[subframe&0x1].dl_ch_estimates[0][2][0]),((frame_parms->Ncp==0)?7:6)*(PHY_vars_eNB->lte_frame_parms.ofdm_symbol_size),1,1); + LOG_M("H10.m","h10",&(PHY_vars_UE[0]->lte_ue_common_vars.common_vars_rx_data_per_thread[subframe&0x1].dl_ch_estimates[0][2][0]),((frame_parms->Ncp==0)?7:6)*(PHY_vars_eNB->lte_frame_parms.ofdm_symbol_size),1,1); - write_output("rxsig0.m","rxs0", PHY_vars_UE[0]->lte_ue_common_vars.rxdata[0],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); - write_output("rxsigF0.m","rxsF0", PHY_vars_UE[0]->lte_ue_common_vars.rxdataF[0],NUMBER_OF_OFDM_CARRIERS*LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*nsymb,2,1); - write_output("PBCH_rxF0_ext.m","pbch0_ext",PHY_vars_UE[0]->lte_ue_pbch_vars[0]->rxdataF_ext[0],12*4*6,1,1); - write_output("PBCH_rxF0_comp.m","pbch0_comp",PHY_vars_UE[0]->lte_ue_pbch_vars[0]->rxdataF_comp[0],12*4*6,1,1); - write_output("PBCH_rxF_llr.m","pbch_llr",PHY_vars_UE[0]->lte_ue_pbch_vars[0]->llr,(frame_parms->Ncp==0) ? 1920 : 1728,1,4); - write_output("pdcch_rxF_ext0.m","pdcch_rxF_ext0",PHY_vars_UE[0]->lte_ue_pdcch_vars[eNb_id]->rxdataF_ext[0],3*300,1,1); - write_output("pdcch_rxF_comp0.m","pdcch0_rxF_comp0",PHY_vars_UE[0]->lte_ue_pdcch_vars[eNb_id]->rxdataF_comp[0],4*300,1,1); - write_output("pdcch_rxF_llr.m","pdcch_llr",PHY_vars_UE[0]->lte_ue_pdcch_vars[eNb_id]->llr,2400,1,4); + LOG_M("rxsig0.m","rxs0", PHY_vars_UE[0]->lte_ue_common_vars.rxdata[0],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + LOG_M("rxsigF0.m","rxsF0", PHY_vars_UE[0]->lte_ue_common_vars.rxdataF[0],NUMBER_OF_OFDM_CARRIERS*LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*nsymb,2,1); + LOG_M("PBCH_rxF0_ext.m","pbch0_ext",PHY_vars_UE[0]->lte_ue_pbch_vars[0]->rxdataF_ext[0],12*4*6,1,1); + LOG_M("PBCH_rxF0_comp.m","pbch0_comp",PHY_vars_UE[0]->lte_ue_pbch_vars[0]->rxdataF_comp[0],12*4*6,1,1); + LOG_M("PBCH_rxF_llr.m","pbch_llr",PHY_vars_UE[0]->lte_ue_pbch_vars[0]->llr,(frame_parms->Ncp==0) ? 1920 : 1728,1,4); + LOG_M("pdcch_rxF_ext0.m","pdcch_rxF_ext0",PHY_vars_UE[0]->lte_ue_pdcch_vars[eNb_id]->rxdataF_ext[0],3*300,1,1); + LOG_M("pdcch_rxF_comp0.m","pdcch0_rxF_comp0",PHY_vars_UE[0]->lte_ue_pdcch_vars[eNb_id]->rxdataF_comp[0],4*300,1,1); + LOG_M("pdcch_rxF_llr.m","pdcch_llr",PHY_vars_UE[0]->lte_ue_pdcch_vars[eNb_id]->llr,2400,1,4); coded_bits_per_codeword = get_G(&PHY_vars_UE[0]->lte_frame_parms, PHY_vars_UE[0]->dlsch_ue[0][0]->nb_rb, diff --git a/openair1/SIMULATION/LTE_PHY/test.c b/openair1/SIMULATION/LTE_PHY/test.c index b7781ce690..06785f7cdc 100644 --- a/openair1/SIMULATION/LTE_PHY/test.c +++ b/openair1/SIMULATION/LTE_PHY/test.c @@ -281,8 +281,8 @@ int main(int argc, char **argv) #endif - write_output("rxsig0.m","rxs0",rxdata[0],lte_frame_parms->samples_per_tti>>1,1,1); - write_output("rxsig1.m","rxs1",rxdata[1],lte_frame_parms->samples_per_tti>>1,1,1); + LOG_M("rxsig0.m","rxs0",rxdata[0],lte_frame_parms->samples_per_tti>>1,1,1); + LOG_M("rxsig1.m","rxs1",rxdata[1],lte_frame_parms->samples_per_tti>>1,1,1); #ifdef IFFT_FPGA diff --git a/openair1/SIMULATION/LTE_PHY/ulsim.c b/openair1/SIMULATION/LTE_PHY/ulsim.c index 22cac37193..ab7a29b096 100644 --- a/openair1/SIMULATION/LTE_PHY/ulsim.c +++ b/openair1/SIMULATION/LTE_PHY/ulsim.c @@ -126,7 +126,6 @@ fill_nfapi_ulsch_config_request(nfapi_ul_config_request_pdu_t *ul_config_pdu, { memset((void *) ul_config_pdu, 0, sizeof(nfapi_ul_config_request_pdu_t)); - // printf("filling ul_config_pdu: modulation type %d, rvidx %d\n",modulation_type,redundancy_version); ul_config_pdu->pdu_type = NFAPI_UL_CONFIG_ULSCH_PDU_TYPE; ul_config_pdu->pdu_size = (uint8_t) (2 + sizeof(nfapi_ul_config_ulsch_pdu)); @@ -147,6 +146,8 @@ fill_nfapi_ulsch_config_request(nfapi_ul_config_request_pdu_t *ul_config_pdu, ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.n_srs = n_srs; ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.size = size; + //printf("Filling ul_config_pdu : Q %d, TBS %d, rv %d, ndi %d\n", modulation_type,size,redundancy_version,new_data_indication); + if (cqi_req == 1) { // Add CQI portion ul_config_pdu->pdu_type = NFAPI_UL_CONFIG_ULSCH_CQI_RI_PDU_TYPE; @@ -183,6 +184,7 @@ void fill_ulsch_dci(PHY_VARS_eNB *eNB, int mcs, int modulation_type, int ndi, + int TBS, int cqi_flag, uint8_t beta_CQI, uint8_t beta_RI, @@ -191,7 +193,7 @@ void fill_ulsch_dci(PHY_VARS_eNB *eNB, nfapi_ul_config_request_body_t *ul_req=&sched_resp->UL_req->ul_config_request_body; int harq_pid = ((frame*10)+subframe)&7; - // printf("ulsch in frame %d, subframe %d => harq_pid %d, mcs %d, ndi %d\n",frame,subframe,harq_pid,mcs,ndi); + //printf("ulsch in frame %d, subframe %d => harq_pid %d, mcs %d, ndi %d\n",frame,subframe,harq_pid,mcs,ndi); switch (eNB->frame_parms.N_RB_UL) { case 6: @@ -297,7 +299,7 @@ void fill_ulsch_dci(PHY_VARS_eNB *eNB, 0, // ul_tx_mode 0, // current_tx_nb 0, // n_srs - get_TBS_UL(mcs,nb_rb)); + TBS); sched_resp->UL_req->header.message_id = NFAPI_UL_CONFIG_REQUEST; ul_req->number_of_pdus=1; @@ -446,14 +448,14 @@ int main(int argc, char **argv) "cannot load configuration module, exiting\n"); logInit(); - /* + // enable these lines if you need debug info // however itti will catch all signals, so ctrl-c won't work anymore // alternatively you can disable ITTI completely in CMakeLists.txt - itti_init(TASK_MAX, THREAD_MAX, MESSAGES_ID_MAX, tasks_info, messages_info, messages_definition_xml, NULL); - set_comp_log(PHY,LOG_DEBUG,LOG_MED,1); - set_glog(LOG_DEBUG,LOG_MED); - */ + //itti_init(TASK_MAX, THREAD_MAX, MESSAGES_ID_MAX, tasks_info, messages_info, messages_definition_xml, NULL); + //set_comp_log(PHY,LOG_DEBUG,LOG_MED,1); + //set_glog(LOG_DEBUG,LOG_MED); + while ((c = getopt (argc, argv, "hapZEbm:n:Y:X:x:s:w:e:q:d:D:O:c:r:i:f:y:c:oA:C:R:g:N:l:S:T:QB:PI:LF")) != -1) { switch (c) { @@ -887,9 +889,9 @@ int main(int argc, char **argv) if (parallel_flag == 1) { extern void init_fep_thread(PHY_VARS_eNB *, pthread_attr_t *); - extern void init_td_thread(PHY_VARS_eNB *, pthread_attr_t *); + extern void init_td_thread(PHY_VARS_eNB *); init_fep_thread(eNB,NULL); - init_td_thread(eNB,NULL); + init_td_thread(eNB); } // Create transport channel structures for 2 transport blocks (MIMO) for (i=0; i<2; i++) { @@ -1048,8 +1050,8 @@ int main(int argc, char **argv) } printf("Read in %d samples\n",i/4); - // write_output("txsig0UL.m","txs0", txdata[0],2*frame_parms->samples_per_tti,1,1); - // write_output("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + // LOG_M("txsig0UL.m","txs0", txdata[0],2*frame_parms->samples_per_tti,1,1); + // LOG_M("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); tx_lev = signal_energy(&txdata[0][0], OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES); tx_lev_dB = (unsigned int) dB_fixed(tx_lev); @@ -1141,8 +1143,12 @@ int main(int argc, char **argv) if (mcs < 11) modulation_type = 2; else if (mcs < 21) modulation_type = 4; else if (mcs < 29) modulation_type = 6; + else { + LOG_E(SIM,"mcs %i is not valid\n",mcs); + exit(-1); + } - fill_ulsch_dci(eNB,proc_rxtx->frame_rx,subframe,&sched_resp,14,(void*)&UL_alloc_pdu,first_rb,nb_rb,(round==0)?mcs:(28+rvidx[round]),modulation_type,ndi,cqi_flag,beta_CQI,beta_RI,cqi_size); + fill_ulsch_dci(eNB,proc_rxtx->frame_rx,subframe,&sched_resp,14,(void*)&UL_alloc_pdu,first_rb,nb_rb,(round==0)?mcs:(28+rvidx[round]),modulation_type,ndi,get_TBS_UL(mcs,nb_rb),cqi_flag,beta_CQI,beta_RI,cqi_size); UE->ulsch_Msg3_active[eNB_id] = 0; UE->ul_power_control_dedicated[eNB_id].accumulationEnabled=1; @@ -1202,9 +1208,9 @@ int main(int argc, char **argv) if (n_frames==1) { - write_output("txsigF0UL.m","txsF0", &UE->common_vars.txdataF[0][eNB->frame_parms.ofdm_symbol_size*nsymb*subframe],eNB->frame_parms.ofdm_symbol_size*nsymb,1, + LOG_M("txsigF0UL.m","txsF0", &UE->common_vars.txdataF[0][eNB->frame_parms.ofdm_symbol_size*nsymb*subframe],eNB->frame_parms.ofdm_symbol_size*nsymb,1, 1); - //write_output("txsigF1.m","txsF1", UE->common_vars.txdataF[0],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); + //LOG_M("txsigF1.m","txsF1", UE->common_vars.txdataF[0],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); } } // input_fd == NULL @@ -1212,8 +1218,8 @@ int main(int argc, char **argv) tx_lev_dB = (unsigned int) dB_fixed_times10(tx_lev); if (n_frames==1) { - write_output("txsig0UL.m","txs0", &txdata[0][eNB->frame_parms.samples_per_tti*subframe],2*frame_parms->samples_per_tti,1,1); - // write_output("txsig1UL.m","txs1", &txdata[1][eNB->frame_parms.samples_per_tti*subframe],2*frame_parms->samples_per_tti,1,1); + LOG_M("txsig0UL.m","txs0", &txdata[0][eNB->frame_parms.samples_per_tti*subframe],2*frame_parms->samples_per_tti,1,1); + // LOG_M("txsig1UL.m","txs1", &txdata[1][eNB->frame_parms.samples_per_tti*subframe],2*frame_parms->samples_per_tti,1,1); } //AWGN @@ -1312,8 +1318,8 @@ int main(int argc, char **argv) if (n_frames<=10) { printf("SNRmeas %f\n",SNRmeas); - write_output("rxsig0UL.m","rxs0", &ru->common.rxdata[0][eNB->frame_parms.samples_per_tti*subframe],eNB->frame_parms.samples_per_tti,1,1); - if (eNB->frame_parms.nb_antennas_rx>1) write_output("rxsig1UL.m","rxs1", &ru->common.rxdata[1][eNB->frame_parms.samples_per_tti*subframe],eNB->frame_parms.samples_per_tti,1,1); + LOG_M("rxsig0UL.m","rxs0", &ru->common.rxdata[0][eNB->frame_parms.samples_per_tti*subframe],eNB->frame_parms.samples_per_tti,1,1); + if (eNB->frame_parms.nb_antennas_rx>1) LOG_M("rxsig1UL.m","rxs1", &ru->common.rxdata[1][eNB->frame_parms.samples_per_tti*subframe],eNB->frame_parms.samples_per_tti,1,1); } @@ -1324,7 +1330,6 @@ int main(int argc, char **argv) ru->feprx(ru); phy_procedures_eNB_uespec_RX(eNB,proc_rxtx); - if (cqi_flag > 0) { cqi_error = 0; @@ -1487,23 +1492,23 @@ int main(int argc, char **argv) if (dump_table == 1 ) { int n; - set_component_filelog(USIM); // file located in /tmp/usim.txt - LOG_F(USIM,"The transmitter raw data: \n"); + set_component_filelog(SIM); // file located in /tmp/usim.txt + LOG_F(SIM,"The transmitter raw data: \n"); for (n=0; n< time_vector_tx.size; n++) { // printf("%f ", table_tx[n]); - LOG_F(USIM,"%f ", table_tx[n]); + LOG_F(SIM,"%f ", table_tx[n]); } - LOG_F(USIM,"\n"); - LOG_F(USIM,"The receiver raw data: \n"); + LOG_F(SIM,"\n"); + LOG_F(SIM,"The receiver raw data: \n"); for (n=0; n< time_vector_rx.size; n++) { // printf("%f ", table_rx[n]); - LOG_F(USIM,"%f ", table_rx[n]); + LOG_F(SIM,"%f ", table_rx[n]); } - LOG_F(USIM,"\n"); + LOG_F(SIM,"\n"); } double tx_median = table_tx[time_vector_tx.size/2]; @@ -1830,8 +1835,8 @@ int main(int argc, char **argv) // - //write_output("chestim_f.m","chestf",eNB->pusch_vars[0]->drs_ch_estimates[0][0],300*12,2,1); - // write_output("chestim_t.m","chestt",eNB->pusch_vars[0]->drs_ch_estimates_time[0][0], (frame_parms->ofdm_symbol_size)*2,2,1); + //LOG_M("chestim_f.m","chestf",eNB->pusch_vars[0]->drs_ch_estimates[0][0],300*12,2,1); + // LOG_M("chestim_t.m","chestt",eNB->pusch_vars[0]->drs_ch_estimates_time[0][0], (frame_parms->ofdm_symbol_size)*2,2,1); }//ch realization diff --git a/openair1/SIMULATION/LTE_PHY/ulsim2.c b/openair1/SIMULATION/LTE_PHY/ulsim2.c index 6a474332e8..69d4dc2e3f 100644 --- a/openair1/SIMULATION/LTE_PHY/ulsim2.c +++ b/openair1/SIMULATION/LTE_PHY/ulsim2.c @@ -179,8 +179,8 @@ int main(int argc, char **argv) generate_drs_puch(lte_frame_parms,lte_ue_common_vars->txdataF[0],AMP,0,first_rb,nb_rb); #ifdef IFFT_FPGA - write_output("txsigF0.m","txsF0", lte_ue_common_vars->txdataF[0],300*120,1,4); - //write_output("txsigF1.m","txsF1", lte_ue_common_vars->txdataF[1],300*120,1,4); + LOG_M("txsigF0.m","txsF0", lte_ue_common_vars->txdataF[0],300*120,1,4); + //LOG_M("txsigF1.m","txsF1", lte_ue_common_vars->txdataF[1],300*120,1,4); // do talbe lookup and write results to txdataF2 for (aa=0; aanb_antennas_tx; aa++) { @@ -197,8 +197,8 @@ int main(int argc, char **argv) printf("l=%d\n",l); } - write_output("txsigF20.m","txsF20", txdataF2[0],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); - //write_output("txsigF21.m","txsF21", txdataF2[1],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); + LOG_M("txsigF20.m","txsF20", txdataF2[0],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); + //LOG_M("txsigF21.m","txsF21", txdataF2[1],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); for (aa=0; aanb_antennas_tx; aa++) PHY_ofdm_mod(txdataF2[aa], // input @@ -211,8 +211,8 @@ int main(int argc, char **argv) CYCLIC_PREFIX); #else - write_output("txsigF0.m","txsF0", lte_ue_common_vars->txdataF[0],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); - //write_output("txsigF1.m","txsF1", lte_ue_common_vars->txdataF[1],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); + LOG_M("txsigF0.m","txsF0", lte_ue_common_vars->txdataF[0],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); + //LOG_M("txsigF1.m","txsF1", lte_ue_common_vars->txdataF[1],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); for (aa=0; aanb_antennas_tx; aa++) { PHY_ofdm_mod(lte_ue_common_vars->txdataF[aa], // input @@ -228,8 +228,8 @@ int main(int argc, char **argv) #endif - write_output("txsig0.m","txs0", txdata[0],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); - //write_output("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + LOG_M("txsig0.m","txs0", txdata[0],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + //LOG_M("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); // multipath channel randominit(0); @@ -253,7 +253,7 @@ int main(int argc, char **argv) channel_length, 0); - //write_output("channel0.m","chan0",ch[0],channel_length,1,8); + //LOG_M("channel0.m","chan0",ch[0],channel_length,1,8); // scale by path_loss = NOW - P_noise //sigma2 = pow(10,sigma2_dB/10); @@ -304,8 +304,8 @@ int main(int argc, char **argv) } } - write_output("rxsig0.m","rxs0", lte_eNB_common_vars->rxdata[eNb_id][0],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); - write_output("rxsig1.m","rxs1", lte_eNB_common_vars->rxdata[eNb_id][1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + LOG_M("rxsig0.m","rxs0", lte_eNB_common_vars->rxdata[eNb_id][0],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); + LOG_M("rxsig1.m","rxs1", lte_eNB_common_vars->rxdata[eNb_id][1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); /* // optional: read rx_frame from file @@ -351,15 +351,15 @@ int main(int argc, char **argv) } - write_output("rxsigF0.m","rxsF0", lte_eNB_common_vars->rxdataF[0][0],512*12*2,2,1); - write_output("rxsigF1.m","rxsF1", lte_eNB_common_vars->rxdataF[0][1],512*12*2,2,1); - write_output("srs_seq.m","srs",lte_eNB_common_vars->srs,2*lte_frame_parms->ofdm_symbol_size,2,1); - write_output("srs_est0.m","srsest0",lte_eNB_common_vars->srs_ch_estimates[0][0],512,1,1); - write_output("srs_est1.m","srsest1",lte_eNB_common_vars->srs_ch_estimates[0][1],512,1,1); - write_output("rxsigF0_ext.m","rxsF0_ext", lte_eNB_ulsch_vars[0]->rxdataF_ext[0][0],300*12*2,2,1); - write_output("rxsigF1_ext.m","rxsF1_ext", lte_eNB_ulsch_vars[0]->rxdataF_ext[0][1],300*12*2,2,1); - write_output("drs_est0.m","drsest0",lte_eNB_ulsch_vars[0]->drs_ch_estimates[0][0],300*12,1,1); - write_output("drs_est1.m","drsest1",lte_eNB_ulsch_vars[0]->drs_ch_estimates[0][1],300*12,1,1); + LOG_M("rxsigF0.m","rxsF0", lte_eNB_common_vars->rxdataF[0][0],512*12*2,2,1); + LOG_M("rxsigF1.m","rxsF1", lte_eNB_common_vars->rxdataF[0][1],512*12*2,2,1); + LOG_M("srs_seq.m","srs",lte_eNB_common_vars->srs,2*lte_frame_parms->ofdm_symbol_size,2,1); + LOG_M("srs_est0.m","srsest0",lte_eNB_common_vars->srs_ch_estimates[0][0],512,1,1); + LOG_M("srs_est1.m","srsest1",lte_eNB_common_vars->srs_ch_estimates[0][1],512,1,1); + LOG_M("rxsigF0_ext.m","rxsF0_ext", lte_eNB_ulsch_vars[0]->rxdataF_ext[0][0],300*12*2,2,1); + LOG_M("rxsigF1_ext.m","rxsF1_ext", lte_eNB_ulsch_vars[0]->rxdataF_ext[0][1],300*12*2,2,1); + LOG_M("drs_est0.m","drsest0",lte_eNB_ulsch_vars[0]->drs_ch_estimates[0][0],300*12,1,1); + LOG_M("drs_est1.m","drsest1",lte_eNB_ulsch_vars[0]->drs_ch_estimates[0][1],300*12,1,1); #ifdef IFFT_FPGA diff --git a/openair1/SIMULATION/LTE_PHY/unitary_defs.h b/openair1/SIMULATION/LTE_PHY/unitary_defs.h index c33b72f649..133656a562 100644 --- a/openair1/SIMULATION/LTE_PHY/unitary_defs.h +++ b/openair1/SIMULATION/LTE_PHY/unitary_defs.h @@ -20,7 +20,7 @@ */ openair0_device openair0; -int oai_exit=0; +volatile int oai_exit=0; void exit_fun(const char *s) { exit(-1); } diff --git a/openair1/SIMULATION/RF/rf.c b/openair1/SIMULATION/RF/rf.c index 51b7e7524d..e317fbd154 100644 --- a/openair1/SIMULATION/RF/rf.c +++ b/openair1/SIMULATION/RF/rf.c @@ -31,9 +31,9 @@ extern void randominit(void); extern double gaussdouble(double,double); //free(input_data); -//extern int write_output(const char *,const char *,void *,int,int,char); +//extern int LOG_M(const char *,const char *,void *,int,int,char); //flag change -extern int write_output(const char *,const char *,void *,int,int,char); +extern int LOG_M(const char *,const char *,void *,int,int,char); */ //double pn[1024]; @@ -337,11 +337,11 @@ int main(int argc, char* argv[]) length, 12); - write_output("s_im.m","s_im",s_im[0],length,1,7); - write_output("s_re.m","s_re",s_re[0],length,1,7); - write_output("r_im.m","r_im",r_im[0],length,1,7); - write_output("r_re.m","r_re",r_re[0],length,1,7); - write_output("input.m","rfin",input[0],length,1,1); - write_output("output.m","rfout",output[0],length,1,1); + LOG_M("s_im.m","s_im",s_im[0],length,1,7); + LOG_M("s_re.m","s_re",s_re[0],length,1,7); + LOG_M("r_im.m","r_im",r_im[0],length,1,7); + LOG_M("r_re.m","r_re",r_re[0],length,1,7); + LOG_M("input.m","rfin",input[0],length,1,1); + LOG_M("output.m","rfout",output[0],length,1,1); } #endif diff --git a/openair1/SIMULATION/TOOLS/channel_sim.c b/openair1/SIMULATION/TOOLS/channel_sim.c index ed3fbb0357..d6d63bfc6c 100644 --- a/openair1/SIMULATION/TOOLS/channel_sim.c +++ b/openair1/SIMULATION/TOOLS/channel_sim.c @@ -35,8 +35,7 @@ #include "LAYER2/MAC/mac.h" #include "LAYER2/MAC/mac_extern.h" -#include "UTIL/LOG/log_if.h" -#include "UTIL/LOG/log_extern.h" +#include "common/utils/LOG/log.h" #include "RRC/LTE/rrc_extern.h" #include "PHY_INTERFACE/phy_interface_extern.h" #include "UTIL/OCG/OCG.h" @@ -45,11 +44,7 @@ #include "UTIL/FIFO/types.h" #define RF -//#define DEBUG_SIM -/* -#undef LOG_D -#define LOG_D(A,B,C...) printf(B,C) -*/ + @@ -319,7 +314,7 @@ void do_UL_sig(sim_t *sim, double tx_pwr, rx_pwr; int32_t rx_pwr2; uint32_t i,aa; - uint32_t sf_offset; + uint32_t sf_offset,sf_offset_tdd; uint8_t hold_channel=0; @@ -361,35 +356,41 @@ void do_UL_sig(sim_t *sim, txdata = PHY_vars_UE_g[UE_id][CC_id]->common_vars.txdata; AssertFatal(txdata != NULL,"txdata is null\n"); + sf_offset = subframe*frame_parms->samples_per_tti; + if (subframe>0) sf_offset_tdd = sf_offset - PHY_vars_UE_g[UE_id][CC_id]->N_TA_offset; + else sf_offset_tdd = sf_offset; + + LOG_D(OCM,"txdata for subframe %d (%d), power %d\n",subframe,sf_offset_tdd,dB_fixed(signal_energy(&txdata[0][sf_offset_tdd],frame_parms->samples_per_tti))); + if (((double)PHY_vars_UE_g[UE_id][CC_id]->tx_power_dBm[subframe] + sim->UE2RU[UE_id][ru_id][CC_id]->path_loss_dB) <= -125.0) { // don't simulate a UE that is too weak - LOG_D(OCM,"[SIM][UL] ULPOWERS UE %d tx_pwr %d dBm (num_RE %d) for subframe %d (sf_offset %d)\n", + LOG_D(OCM,"[SIM][UL] ULPOWERS UE %d tx_pwr %d dBm (num_RE %d) for subframe %d (sf_offset %d,sf_offset_tdd %d)\n", UE_id, PHY_vars_UE_g[UE_id][CC_id]->tx_power_dBm[subframe], PHY_vars_UE_g[UE_id][CC_id]->tx_total_RE[subframe], - subframe,sf_offset); + subframe,sf_offset,sf_offset_tdd); } else { tx_pwr = dac_fixed_gain((double**)s_re, (double**)s_im, txdata, - sf_offset, + sf_offset_tdd, nb_antennas_tx, frame_parms->samples_per_tti, - sf_offset, + sf_offset_tdd, frame_parms->ofdm_symbol_size, 14, (double)PHY_vars_UE_g[UE_id][CC_id]->tx_power_dBm[subframe]-10*log10((double)PHY_vars_UE_g[UE_id][CC_id]->tx_total_RE[subframe]), 1, NULL, PHY_vars_UE_g[UE_id][CC_id]->tx_total_RE[subframe]); // This make the previous argument the total power - LOG_D(OCM,"[SIM][UL] ULPOWERS UE %d tx_pwr %f dBm (target %d dBm, num_RE %d) for subframe %d (sf_offset %d)\n", + LOG_D(OCM,"[SIM][UL] ULPOWERS UE %d tx_pwr %f dBm (target %d dBm, num_RE %d) for subframe %d (sf_offset %d,sf_offset_tdd %d)\n", UE_id, 10*log10(tx_pwr*PHY_vars_UE_g[UE_id][CC_id]->tx_total_RE[subframe]), PHY_vars_UE_g[UE_id][CC_id]->tx_power_dBm[subframe], PHY_vars_UE_g[UE_id][CC_id]->tx_total_RE[subframe], - subframe,sf_offset); + subframe,sf_offset,sf_offset_tdd); multipath_channel(sim->UE2RU[UE_id][ru_id][CC_id],s_re,s_im,r_re0,r_im0, @@ -452,20 +453,22 @@ void do_UL_sig(sim_t *sim, rxdata = RC.ru[ru_id]->common.rxdata; sf_offset = subframe*frame_parms->samples_per_tti; + if (subframe>0) sf_offset_tdd = sf_offset - RC.ru[ru_id]->N_TA_offset; + else sf_offset_tdd = sf_offset; adc(r_re_p, r_im_p, 0, - sf_offset, + sf_offset_tdd, rxdata, nb_antennas_rx, frame_parms->samples_per_tti, 12); #ifdef DEBUG_SIM - rx_pwr2 = signal_energy(rxdata[0]+sf_offset,frame_parms->samples_per_tti)*(double)frame_parms->ofdm_symbol_size/(12.0*frame_parms->N_RB_DL); - LOG_D(OCM,"[SIM][UL] RU %d rx_pwr (ADC out) %f dB (%d) for subframe %d (offset %d) = %p\n",ru_id,10*log10((double)rx_pwr2),rx_pwr2,subframe,sf_offset,rxdata[0]+sf_offset); + rx_pwr2 = signal_energy(rxdata[0]+sf_offset_tdd,frame_parms->samples_per_tti)*(double)frame_parms->ofdm_symbol_size/(12.0*frame_parms->N_RB_DL); + LOG_D(OCM,"[SIM][UL] RU %d rx_pwr (ADC out) %f dB (%d) for subframe %d (offset %d) = %p\n",ru_id,10*log10((double)rx_pwr2),rx_pwr2,subframe,sf_offset,rxdata[0]+sf_offset_tdd); #else UNUSED_VARIABLE(tx_pwr); UNUSED_VARIABLE(rx_pwr); diff --git a/openair1/SIMULATION/TOOLS/random_channel.c b/openair1/SIMULATION/TOOLS/random_channel.c index dc8df15315..8341c574da 100644 --- a/openair1/SIMULATION/TOOLS/random_channel.c +++ b/openair1/SIMULATION/TOOLS/random_channel.c @@ -29,7 +29,7 @@ #include "PHY/TOOLS/tools_defs.h" #include "sim.h" #include "scm_corrmat.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" //#define DEBUG_CH #include "assertions.h" diff --git a/openair1/SIMULATION/TOOLS/rangen_double.c b/openair1/SIMULATION/TOOLS/rangen_double.c index 6dcdd9418e..82b1557a5b 100644 --- a/openair1/SIMULATION/TOOLS/rangen_double.c +++ b/openair1/SIMULATION/TOOLS/rangen_double.c @@ -63,33 +63,6 @@ void randominit(unsigned seed_init) } #endif -#if 0 -void randominit(unsigned seed_init) -{ - int i; - // this need to be integrated with the existing rng, like taus: navid - LOG_D(PHY,"Initializing random number generator, seed %x\n",seed_init); - - seed_init = 62110; - - if (seed_init == 0) { - srand((unsigned)time(NULL)); - - seed = (unsigned int) rand(); - } else { - seed = seed_init; - } - - if (seed % 2 == 0) seed += 1; /* seed and mod are relative prime */ - - for (i=1; i<=97; i++) { - seed = a*seed; /* mod 2**32 */ - ir[i]= seed; /* initialize the shuffle table */ - } - - iy=1; -} -#endif /*!\brief Uniform linear congruential random number generator on \f$[0,1)\f$. Returns a double-precision floating-point number.*/ double uniformrandom(void) diff --git a/openair1/SIMULATION/TOOLS/taus.c b/openair1/SIMULATION/TOOLS/taus.c index 0be7952da7..e2409df533 100644 --- a/openair1/SIMULATION/TOOLS/taus.c +++ b/openair1/SIMULATION/TOOLS/taus.c @@ -65,35 +65,6 @@ void set_taus_seed(unsigned int seed_init) } #endif -#if 0 - void set_taus_seed(unsigned int seed_init) -{ - - struct drand48_data buffer; - unsigned long result = 0; - s0 = (unsigned int)0x1e23d852; - s1 = (unsigned int)0x81f38a1c; - s2 = (unsigned int)0xfe1a133e; - - return; - - if (seed_init == 0) { - s0 = (unsigned int)time(NULL); - s1 = (unsigned int)time(NULL); - s2 = (unsigned int)time(NULL); - } else { - // Use reentrant version of rand48 to ensure that no conflicts with other generators occur */ - srand48_r((long int)seed_init, &buffer); - mrand48_r(&buffer, (long int *)&result); - s0 = result; - mrand48_r(&buffer, (long int *)&result); - s1 = result; - mrand48_r(&buffer, (long int *)&result); - s2 = result; - } -} -#endif - #ifdef MAIN main() diff --git a/openair2/COMMON/gtpv1_u_messages_types.h b/openair2/COMMON/gtpv1_u_messages_types.h index c3c9c6b7c7..4d09062beb 100644 --- a/openair2/COMMON/gtpv1_u_messages_types.h +++ b/openair2/COMMON/gtpv1_u_messages_types.h @@ -22,7 +22,7 @@ #ifndef GTPV1_U_MESSAGES_TYPES_H_ #define GTPV1_U_MESSAGES_TYPES_H_ -#include "asn1_constants.h" +#include "asn_constant.h" #define GTPV1U_MAX_BEARERS_PER_UE max_val_DRB_Identity diff --git a/openair2/COMMON/mac_rrc_primitives.h b/openair2/COMMON/mac_rrc_primitives.h index fb229bf951..d902de15d9 100644 --- a/openair2/COMMON/mac_rrc_primitives.h +++ b/openair2/COMMON/mac_rrc_primitives.h @@ -365,7 +365,7 @@ typedef struct { #endif ); unsigned int (*mac_rlc_data_req)(module_id_t, unsigned int, const unsigned int,char* -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,uint32_t ,uint32_t #endif @@ -373,7 +373,7 @@ typedef struct { void (*mac_rlc_data_ind)(module_id_t, logical_chan_id_t, char*, tb_size_t, num_tb_t, crc_t* ); mac_rlc_status_resp_t (*mac_rlc_status_ind) (module_id_t enb_mod_idP, module_id_t ue_mod_idP, frame_t frameP, sub_frame_t subframeP, eNB_flag_t eNB_flagP, MBMS_flag_t MBMS_flagP, logical_chan_id_t channel_idP, tb_size_t tb_sizeP -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,uint32_t sourceL2Id ,uint32_t destinationL2Id #endif diff --git a/openair2/COMMON/platform_constants.h b/openair2/COMMON/platform_constants.h index 917c149833..9aa912a01e 100644 --- a/openair2/COMMON/platform_constants.h +++ b/openair2/COMMON/platform_constants.h @@ -29,9 +29,9 @@ ***************************************************************************/ #ifdef CMAKER -#include "asn1_constants.h" +#include "asn_constant.h" #else -#include "RRC/LITE/MESSAGES/asn1_constants.h" +#include "RRC/LTE/MESSAGES/asn1_constants.h" #endif #ifndef __PLATFORM_CONSTANTS_H__ @@ -67,16 +67,23 @@ # define MAX_MODULES NB_MODULES_MAX -#ifdef LARGE_SCALE +#ifndef UE_EXPANSION +# ifdef LARGE_SCALE # define MAX_MOBILES_PER_ENB 128 # define MAX_MOBILES_PER_ENB_NB_IoT 128 # define MAX_eNB 2 -#else +# else # define MAX_MOBILES_PER_ENB 16 # define MAX_MOBILES_PER_ENB_NB_IoT 16 # define MAX_eNB 2 +# endif +#else +# define MAX_MOBILES_PER_ENB 256 +# define MAX_MOBILES_PER_ENB_NB_IoT 256 +# define MAX_eNB 2 #endif + #define MAX_MANAGED_ENB_PER_MOBILE 2 ///NB-IOT diff --git a/openair2/COMMON/platform_types.h b/openair2/COMMON/platform_types.h index bb8fa7bb1c..3f736e5b3c 100644 --- a/openair2/COMMON/platform_types.h +++ b/openair2/COMMON/platform_types.h @@ -68,7 +68,7 @@ typedef int32_t sdu_size_t; typedef uint32_t frame_t; typedef int32_t sframe_t; typedef uint32_t sub_frame_t; -typedef uint8_t module_id_t; +typedef uint16_t module_id_t; typedef uint8_t slice_id_t; typedef uint8_t eNB_index_t; typedef uint16_t ue_id_t; diff --git a/openair2/COMMON/ral_messages_types.h b/openair2/COMMON/ral_messages_types.h index 22e3b5143f..fa90c4a3b2 100644 --- a/openair2/COMMON/ral_messages_types.h +++ b/openair2/COMMON/ral_messages_types.h @@ -21,7 +21,7 @@ #ifndef RAL_MESSAGES_TYPES_H_ #define RAL_MESSAGES_TYPES_H_ -#include "asn1_constants.h" +#include "asn_constant.h" #include "platform_types.h" #include "commonDef.h" /* 802.21 mappings with the RRC protocol : diff --git a/openair2/COMMON/rrc_messages_types.h b/openair2/COMMON/rrc_messages_types.h index 5625c9fab5..4a0137d4b6 100644 --- a/openair2/COMMON/rrc_messages_types.h +++ b/openair2/COMMON/rrc_messages_types.h @@ -35,7 +35,7 @@ #ifdef CMAKER #include "SystemInformationBlockType2.h" #else -#include "RRC/LITE/MESSAGES/SystemInformationBlockType2.h" +#include "RRC/LTE/MESSAGES/SystemInformationBlockType2.h" #endif #include "SL-OffsetIndicator-r12.h" #include "SubframeBitmapSL-r12.h" @@ -123,9 +123,9 @@ typedef struct RrcConfigurationReq_s { long pucch_delta_shift[MAX_NUM_CCs]; long pucch_nRB_CQI[MAX_NUM_CCs]; long pucch_nCS_AN[MAX_NUM_CCs]; -#if (RRC_VERSION < MAKE_VERSION(10, 0, 0)) +//#if (RRC_VERSION < MAKE_VERSION(10, 0, 0)) long pucch_n1_AN[MAX_NUM_CCs]; -#endif +//#endif long pdsch_referenceSignalPower[MAX_NUM_CCs]; long pdsch_p_b[MAX_NUM_CCs]; long pusch_n_SB[MAX_NUM_CCs]; @@ -174,6 +174,7 @@ typedef struct RrcConfigurationReq_s { long ue_TimersAndConstants_n310[MAX_NUM_CCs]; long ue_TimersAndConstants_n311[MAX_NUM_CCs]; long ue_TransmissionMode[MAX_NUM_CCs]; + long ue_multiple_max[MAX_NUM_CCs]; //TTN - for D2D //SIB18 @@ -219,13 +220,10 @@ typedef struct RrcConfigurationReq_s { char* discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[MAX_NUM_CCs]; long discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[MAX_NUM_CCs]; long discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[MAX_NUM_CCs]; - - - - - } RrcConfigurationReq; + #define MAX_NUM_NBIOT_CELEVELS 3 + typedef struct NbIoTRrcConfigurationReq_s { uint32_t cell_identity; diff --git a/openair2/COMMON/s1ap_messages_def.h b/openair2/COMMON/s1ap_messages_def.h index d81bd87ed5..f98782f19e 100644 --- a/openair2/COMMON/s1ap_messages_def.h +++ b/openair2/COMMON/s1ap_messages_def.h @@ -38,7 +38,7 @@ MESSAGE_DEF(S1AP_E_RAB_MODIFY_RESPONSE_LOG , MESSAGE_PRIORITY_MED, IttiMsgTex MESSAGE_DEF(S1AP_PAGING_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_paging_log) MESSAGE_DEF(S1AP_E_RAB_RELEASE_REQUEST_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_e_rab_release_request_log) MESSAGE_DEF(S1AP_E_RAB_RELEASE_RESPONSE_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_e_rab_release_response_log) -MESSAGE_DEF(S1AP_E_RAB_ERROR_INDICATION_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_error_indication_log) +MESSAGE_DEF(S1AP_ERROR_INDICATION_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_error_indication_log) /* eNB application layer -> S1AP messages */ MESSAGE_DEF(S1AP_REGISTER_ENB_REQ , MESSAGE_PRIORITY_MED, s1ap_register_enb_req_t , s1ap_register_enb_req) diff --git a/openair2/ENB_APP/CONTROL_MODULES/RRC/flexran_agent_rrc.c b/openair2/ENB_APP/CONTROL_MODULES/RRC/flexran_agent_rrc.c index 43951ee95a..e5e242232c 100644 --- a/openair2/ENB_APP/CONTROL_MODULES/RRC/flexran_agent_rrc.c +++ b/openair2/ENB_APP/CONTROL_MODULES/RRC/flexran_agent_rrc.c @@ -49,7 +49,7 @@ void flexran_agent_ue_state_change(mid_t mod_id, uint32_t rnti, uint8_t state_ch Protocol__FlexHeader *header = NULL; void *data; int priority = 0; - err_code_t err_code; + err_code_t err_code=0; int xid = 0; @@ -241,7 +241,8 @@ void flexran_agent_ue_state_change(mid_t mod_id, uint32_t rnti, uint8_t state_ch LOG_D(FLEXRAN_AGENT,"sent message with size %d\n", size); return; error: - LOG_E(FLEXRAN_AGENT, "Could not send UE state message becasue of %d \n",err_code); + if (err_code != 0) + LOG_E(FLEXRAN_AGENT, "Could not send UE state message becasue of %d \n",err_code); } diff --git a/openair2/ENB_APP/MACRLC_paramdef.h b/openair2/ENB_APP/MACRLC_paramdef.h index 4e732fe942..ef7d598785 100644 --- a/openair2/ENB_APP/MACRLC_paramdef.h +++ b/openair2/ENB_APP/MACRLC_paramdef.h @@ -53,7 +53,10 @@ #define CONFIG_STRING_MACRLC_REMOTE_S_PORTC "remote_s_portc" #define CONFIG_STRING_MACRLC_LOCAL_S_PORTD "local_s_portd" #define CONFIG_STRING_MACRLC_REMOTE_S_PORTD "remote_s_portd" - +#define CONFIG_STRING_MACRLC_SCHED_MODE "scheduler_mode" +#define CONFIG_STRING_MACRLC_PHY_TEST_MODE "phy_test_mode" +#define CONFIG_MACRLC_PUSCH10xSNR "puSch10xSnr" +#define CONFIG_MACRLC_PUCCH10xSNR "puCch10xSnr" /*-------------------------------------------------------------------------------------------------------------------------------------------------------*/ /* MacRLC configuration parameters */ @@ -77,6 +80,10 @@ {CONFIG_STRING_MACRLC_REMOTE_S_PORTC, NULL, 0, uptr:NULL, defintval:50020, TYPE_UINT, 0}, \ {CONFIG_STRING_MACRLC_LOCAL_S_PORTD, NULL, 0, uptr:NULL, defintval:50021, TYPE_UINT, 0}, \ {CONFIG_STRING_MACRLC_REMOTE_S_PORTD, NULL, 0, uptr:NULL, defintval:50021, TYPE_UINT, 0}, \ +{CONFIG_STRING_MACRLC_SCHED_MODE, NULL, 0, strptr:NULL, defstrval:"default", TYPE_STRING, 0}, \ +{CONFIG_STRING_MACRLC_PHY_TEST_MODE, NULL, 0, uptr:NULL, defintval:1, TYPE_UINT, 0}, \ +{CONFIG_MACRLC_PUSCH10xSNR, NULL, 0, iptr:NULL, defintval:200, TYPE_INT, 0}, \ +{CONFIG_MACRLC_PUCCH10xSNR, NULL, 0, iptr:NULL, defintval:200, TYPE_INT, 0}, \ } #define MACRLC_CC_IDX 0 #define MACRLC_TRANSPORT_N_PREFERENCE_IDX 1 @@ -95,4 +102,8 @@ #define MACRLC_REMOTE_S_PORTC_IDX 14 #define MACRLC_LOCAL_S_PORTD_IDX 15 #define MACRLC_REMOTE_S_PORTD_IDX 16 +#define MACRLC_SCHED_MODE_IDX 17 +#define MACRLC_PHY_TEST_IDX 18 +#define MACRLC_PUSCH10xSNR_IDX 19 +#define MACRLC_PUCCH10xSNR_IDX 20 /*---------------------------------------------------------------------------------------------------------------------------------------------------------*/ diff --git a/openair2/ENB_APP/NB_IoT_config.c b/openair2/ENB_APP/NB_IoT_config.c index 09e22ef845..08c3d30fa3 100644 --- a/openair2/ENB_APP/NB_IoT_config.c +++ b/openair2/ENB_APP/NB_IoT_config.c @@ -42,7 +42,7 @@ #endif #include "SystemInformationBlockType2.h" -#include "PHY/extern.h" +#include "PHY/phy_extern.h" #include "targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h" #include "common/config/config_userapi.h" #include "RRC_config_tools.h" diff --git a/openair2/ENB_APP/RRC_config_tools.c b/openair2/ENB_APP/RRC_config_tools.c index 17fbad1e18..c7c75c13d4 100644 --- a/openair2/ENB_APP/RRC_config_tools.c +++ b/openair2/ENB_APP/RRC_config_tools.c @@ -31,8 +31,7 @@ #include #include -#include "log.h" -#include "log_extern.h" +#include "common/utils/LOG/log.h" #include "assertions.h" #if defined(ENABLE_ITTI) # include "intertask_interface.h" diff --git a/openair2/ENB_APP/enb_app.c b/openair2/ENB_APP/enb_app.c index b3471d2637..40c6aeac44 100644 --- a/openair2/ENB_APP/enb_app.c +++ b/openair2/ENB_APP/enb_app.c @@ -113,8 +113,6 @@ static uint32_t eNB_app_register(uint32_t enb_id_start, uint32_t enb_id_end)//, for (enb_id = enb_id_start; (enb_id < enb_id_end) ; enb_id++) { { - s1ap_register_enb_req_t *s1ap_register_eNB; - /* note: there is an implicit relationship between the data structure and the message name */ msg_p = itti_alloc_new_message (TASK_ENB_APP, S1AP_REGISTER_ENB_REQ); @@ -122,8 +120,7 @@ static uint32_t eNB_app_register(uint32_t enb_id_start, uint32_t enb_id_end)//, if (enb_id == 0) RCconfig_gtpu(); - s1ap_register_eNB = &S1AP_REGISTER_ENB_REQ(msg_p); - LOG_I(ENB_APP,"default drx %d\n",s1ap_register_eNB->default_drx); + LOG_I(ENB_APP,"default drx %d\n",((S1AP_REGISTER_ENB_REQ(msg_p)).default_drx)); LOG_I(ENB_APP,"[eNB %d] eNB_app_register for instance %d\n", enb_id, ENB_MODULE_ID_TO_INSTANCE(enb_id)); @@ -152,7 +149,6 @@ void *eNB_app_task(void *args_p) # endif uint32_t enb_id; MessageDef *msg_p = NULL; - const char *msg_name = NULL; instance_t instance; int result; /* for no gcc warnings */ @@ -200,7 +196,6 @@ void *eNB_app_task(void *args_p) // Wait for a message itti_receive_msg (TASK_ENB_APP, &msg_p); - msg_name = ITTI_MSG_NAME (msg_p); instance = ITTI_MSG_INSTANCE (msg_p); switch (ITTI_MSG_ID(msg_p)) { @@ -216,7 +211,7 @@ void *eNB_app_task(void *args_p) # if defined(ENABLE_USE_MME) case S1AP_REGISTER_ENB_CNF: - LOG_I(ENB_APP, "[eNB %d] Received %s: associated MME %d\n", instance, msg_name, + LOG_I(ENB_APP, "[eNB %d] Received %s: associated MME %d\n", instance, ITTI_MSG_NAME (msg_p), S1AP_REGISTER_ENB_CNF(msg_p).nb_mme); DevAssert(register_enb_pending > 0); @@ -237,10 +232,8 @@ void *eNB_app_task(void *args_p) itti_send_msg_to_task (TASK_L2L1, INSTANCE_DEFAULT, msg_init_p); } else { - uint32_t not_associated = enb_nb - registered_enb; - - LOG_W(ENB_APP, " %d eNB %s not associated with a MME, retrying registration in %d seconds ...\n", - not_associated, not_associated > 1 ? "are" : "is", ENB_REGISTER_RETRY_DELAY); + LOG_W(ENB_APP, " %d eNB not associated with a MME, retrying registration in %d seconds ...\n", + enb_nb - registered_enb, ENB_REGISTER_RETRY_DELAY); /* Restart the eNB registration process in ENB_REGISTER_RETRY_DELAY seconds */ if (timer_setup (ENB_REGISTER_RETRY_DELAY, 0, TASK_ENB_APP, INSTANCE_DEFAULT, TIMER_ONE_SHOT, @@ -258,14 +251,14 @@ void *eNB_app_task(void *args_p) break; case S1AP_DEREGISTERED_ENB_IND: - LOG_W(ENB_APP, "[eNB %d] Received %s: associated MME %d\n", instance, msg_name, + LOG_W(ENB_APP, "[eNB %d] Received %s: associated MME %d\n", instance, ITTI_MSG_NAME (msg_p), S1AP_DEREGISTERED_ENB_IND(msg_p).nb_mme); /* TODO handle recovering of registration */ break; case TIMER_HAS_EXPIRED: - LOG_I(ENB_APP, " Received %s: timer_id %ld\n", msg_name, TIMER_HAS_EXPIRED(msg_p).timer_id); + LOG_I(ENB_APP, " Received %s: timer_id %ld\n", ITTI_MSG_NAME (msg_p), TIMER_HAS_EXPIRED(msg_p).timer_id); if (TIMER_HAS_EXPIRED (msg_p).timer_id == enb_register_retry_timer_id) { /* Restart the registration process */ @@ -277,7 +270,7 @@ void *eNB_app_task(void *args_p) # endif default: - LOG_E(ENB_APP, "Received unexpected message %s\n", msg_name); + LOG_E(ENB_APP, "Received unexpected message %s\n", ITTI_MSG_NAME (msg_p)); break; } diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index 756874cb39..af4a6de2eb 100644 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -30,8 +30,7 @@ #include #include -#include "log.h" -#include "log_extern.h" +#include "common/utils/LOG/log.h" #include "assertions.h" #include "enb_config.h" #include "UTIL/OTG/otg.h" @@ -106,6 +105,7 @@ void RCconfig_flexran() ue_TimersAndConstants_n310, ue_TimersAndConstants_n311, ue_TransmissionMode; + int32_t ue_multiple_max = 0; e_SL_CP_Len_r12 rxPool_sc_CP_Len; e_SL_PeriodComm_r12 rxPool_sc_Period; @@ -233,47 +233,6 @@ void RCconfig_flexran() } -/*void UE_config_stub_pnf(void) { - int j; - paramdef_t L1_Params[] = L1PARAMS_DESC; - paramlist_def_t L1_ParamList = {CONFIG_STRING_L1_LIST,NULL,0}; - - config_getlist( &L1_ParamList,L1_Params,sizeof(L1_Params)/sizeof(paramdef_t), NULL); - if (L1_ParamList.numelt > 0) { - for (j=0; jpuSch10xSnr = *(MacRLC_ParamList.paramarray[j][MACRLC_PUSCH10xSNR_IDX ].iptr); + RC.mac[j]->puCch10xSnr = *(MacRLC_ParamList.paramarray[j][MACRLC_PUCCH10xSNR_IDX ].iptr); RC.nb_mac_CC[j] = *(MacRLC_ParamList.paramarray[j][MACRLC_CC_IDX].iptr); //RC.mac[j]->phy_test = *(MacRLC_ParamList.paramarray[j][MACRLC_PHY_TEST_IDX].iptr); //printf("PHY_TEST = %d,%d\n", RC.mac[j]->phy_test, j); @@ -435,7 +395,17 @@ void RCconfig_macrlc() { printf("**************** RETURNED FROM configure_nfapi_vnf() vnf_port:%d\n", RC.mac[j]->eth_params_s.my_portc); } else { // other midhaul AssertFatal(1==0,"MACRLC %d: %s unknown southbound midhaul\n",j,*(MacRLC_ParamList.paramarray[j][MACRLC_TRANSPORT_S_PREFERENCE_IDX].strptr)); - } + } + if (strcmp(*(MacRLC_ParamList.paramarray[j][MACRLC_SCHED_MODE_IDX].strptr), "default") == 0){ + global_scheduler_mode=SCHED_MODE_DEFAULT; + printf("sched mode = default %d [%s]\n",global_scheduler_mode,*(MacRLC_ParamList.paramarray[j][MACRLC_SCHED_MODE_IDX].strptr)); + }else if (strcmp(*(MacRLC_ParamList.paramarray[j][MACRLC_SCHED_MODE_IDX].strptr), "fairRR") == 0){ + global_scheduler_mode=SCHED_MODE_FAIR_RR; + printf("sched mode = fairRR %d [%s]\n",global_scheduler_mode,*(MacRLC_ParamList.paramarray[j][MACRLC_SCHED_MODE_IDX].strptr)); + }else{ + global_scheduler_mode=SCHED_MODE_DEFAULT; + printf("sched mode = default %d [%s]\n",global_scheduler_mode,*(MacRLC_ParamList.paramarray[j][MACRLC_SCHED_MODE_IDX].strptr)); + } }// j=0..num_inst } else {// MacRLC_ParamList.numelt > 0 AssertFatal (0, @@ -447,7 +417,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { int num_enbs = 0; - int num_component_carriers = 0; int j,k = 0; int32_t enb_id = 0; int nb_cc = 0; @@ -529,6 +498,8 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { int32_t ue_TimersAndConstants_n311 = 0; int32_t ue_TransmissionMode = 0; + int32_t ue_multiple_max = 0; + //TTN - for D2D //SIB18 const char* rxPool_sc_CP_Len = NULL; @@ -575,7 +546,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { libconfig_int discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size = 0; libconfig_int discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0; - int32_t srb1_timer_poll_retransmit = 0; int32_t srb1_timer_reordering = 0; int32_t srb1_timer_status_prohibit = 0; @@ -744,17 +714,10 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { sprintf(enbpath,"%s.[%i]",ENB_CONFIG_STRING_ENB_LIST,k), config_getlist( &CCsParamList,NULL,0,enbpath); - LOG_I(RRC,"num component carriers %d \n", num_component_carriers); + LOG_I(RRC,"num component carriers %d \n",CCsParamList.numelt); if ( CCsParamList.numelt> 0) { char ccspath[MAX_OPTNAME_SIZE*2 + 16]; - - - - - //enb_properties_loc.properties[enb_properties_loc_index]->nb_cc = num_component_carriers; - - for (j = 0; j < CCsParamList.numelt ;j++) { sprintf(ccspath,"%s.%s.[%i]",enbpath,ENB_CONFIG_STRING_COMPONENT_CARRIERS,j); @@ -930,13 +893,11 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RC.config_file_name, i, prach_zero_correlation); RRC_CONFIGURATION_REQ (msg_p).prach_freq_offset[j] = prach_freq_offset; - if ((prach_freq_offset <0) || (prach_freq_offset > 94)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", RC.config_file_name, i, prach_freq_offset); - RRC_CONFIGURATION_REQ (msg_p).pucch_delta_shift[j] = pucch_delta_shift-1; if ((pucch_delta_shift <1) || (pucch_delta_shift > 3)) @@ -958,7 +919,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", RC.config_file_name, i, pucch_nCS_AN); -#if (RRC_VERSION < MAKE_VERSION(10, 0, 0)) +//#if (RRC_VERSION < MAKE_VERSION(10, 0, 0)) RRC_CONFIGURATION_REQ (msg_p).pucch_n1_AN[j] = pucch_n1_AN; if ((pucch_n1_AN <0) || (pucch_n1_AN > 2047)) @@ -966,7 +927,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_n1_AN choice: 0..2047!\n", RC.config_file_name, i, pucch_n1_AN); -#endif +//#endif RRC_CONFIGURATION_REQ (msg_p).pdsch_referenceSignalPower[j] = pdsch_referenceSignalPower; if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50)) @@ -1592,6 +1553,34 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { break; } + RRC_CONFIGURATION_REQ (msg_p).ue_multiple_max[j] = ue_multiple_max; + + switch (N_RB_DL) { + case 25: + if ((ue_multiple_max < 1) || (ue_multiple_max > 4)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_multiple_max choice: 1..4!\n", + RC.config_file_name, i, ue_multiple_max); + break; + case 50: + if ((ue_multiple_max < 1) || (ue_multiple_max > 8)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_multiple_max choice: 1..8!\n", + RC.config_file_name, i, ue_multiple_max); + break; + case 100: + if ((ue_multiple_max < 1) || (ue_multiple_max > 16)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_multiple_max choice: 1..16!\n", + RC.config_file_name, i, ue_multiple_max); + break; + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for N_RB_DL choice: 25,50,100 !\n", + RC.config_file_name, i, N_RB_DL); + break; + } + //TTN - for D2D //SIB18 if (strcmp(rxPool_sc_CP_Len,"normal")==0) { diff --git a/openair2/ENB_APP/enb_config.h b/openair2/ENB_APP/enb_config.h index aeac43ee1c..96156a4bc4 100644 --- a/openair2/ENB_APP/enb_config.h +++ b/openair2/ENB_APP/enb_config.h @@ -44,7 +44,7 @@ #include "SystemInformationBlockType2.h" #include "rrc_messages_types.h" #else -#include "RRC/LITE/MESSAGES/SystemInformationBlockType2.h" +#include "RRC/LTE/MESSAGES/SystemInformationBlockType2.h" #endif #include "intertask_interface_types.h" #include "RRC/LTE/rrc_defs.h" diff --git a/openair2/ENB_APP/enb_paramdef.h b/openair2/ENB_APP/enb_paramdef.h index fb21fa57a6..f090c686a6 100755 --- a/openair2/ENB_APP/enb_paramdef.h +++ b/openair2/ENB_APP/enb_paramdef.h @@ -307,6 +307,7 @@ typedef enum { #define ENB_CONFIG_STRING_UETIMERS_N310 "ue_TimersAndConstants_n310" #define ENB_CONFIG_STRING_UETIMERS_N311 "ue_TimersAndConstants_n311" #define ENB_CONFIG_STRING_UE_TRANSMISSION_MODE "ue_TransmissionMode" +#define ENB_CONFIG_STRING_UE_MULTIPLE_MAX "ue_multiple_max" //TTN - for D2D //SIB18 @@ -493,7 +494,7 @@ typedef enum { {ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, NULL, 0, iptr:&pucch_delta_shift, defintval:1, TYPE_UINT, 0}, \ {ENB_CONFIG_STRING_PUCCH_NRB_CQI, NULL, 0, iptr:&pucch_nRB_CQI, defintval:1, TYPE_UINT, 0}, \ {ENB_CONFIG_STRING_PUCCH_NCS_AN, NULL, 0, iptr:&pucch_nCS_AN, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_N1_AN, NULL, 0, iptr:&pucch_n1_AN, defintval:32, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_N1_AN, NULL, 0, iptr:&pucch_n1_AN, defintval:0, TYPE_UINT, 0}, \ {ENB_CONFIG_STRING_PDSCH_RS_EPRE, NULL, 0, iptr:&pdsch_referenceSignalPower, defintval:-29, TYPE_INT, 0}, \ {ENB_CONFIG_STRING_PDSCH_PB, NULL, 0, iptr:&pdsch_p_b, defintval:0, TYPE_INT, 0}, \ {ENB_CONFIG_STRING_PUSCH_N_SB, NULL, 0, iptr:&pusch_n_SB, defintval:1, TYPE_INT, 0}, \ @@ -541,6 +542,7 @@ typedef enum { {ENB_CONFIG_STRING_UETIMERS_N310, NULL, 0, iptr:&ue_TimersAndConstants_n310, defintval:20, TYPE_UINT, 0}, \ {ENB_CONFIG_STRING_UETIMERS_N311, NULL, 0, iptr:&ue_TimersAndConstants_n311, defintval:1, TYPE_UINT, 0}, \ {ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, NULL, 0, iptr:&ue_TransmissionMode, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UE_MULTIPLE_MAX, NULL, 0, iptr:&ue_multiple_max, defintval:4, TYPE_UINT, 0}, \ {ENB_CONFIG_STRING_RXPOOL_SC_CP_LEN, NULL, 0, strptr:(char **)&rxPool_sc_CP_Len, defstrval:"normal", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_RXPOOL_SC_PRIOD, NULL, 0, strptr:(char **)&rxPool_sc_Period, defstrval:"sf40", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_RXPOOL_DATA_CP_LEN, NULL, 0, strptr:(char **)&rxPool_data_CP_Len, defstrval:"normal", TYPE_STRING, 0}, \ @@ -829,9 +831,9 @@ typedef enum { #define CONFIG_STRING_MACRLC_REMOTE_S_PORTC "remote_s_portc" #define CONFIG_STRING_MACRLC_LOCAL_S_PORTD "local_s_portd" #define CONFIG_STRING_MACRLC_REMOTE_S_PORTD "remote_s_portd" +#define CONFIG_STRING_MACRLC_SCHED_MODE "scheduler_mode" #define CONFIG_STRING_MACRLC_PHY_TEST_MODE "phy_test_mode" - #define MACRLC_CC_IDX 0 #define MACRLC_TRANSPORT_N_PREFERENCE_IDX 1 #define MACRLC_LOCAL_N_IF_NAME_IDX 2 @@ -849,5 +851,6 @@ typedef enum { #define MACRLC_REMOTE_S_PORTC_IDX 14 #define MACRLC_LOCAL_S_PORTD_IDX 15 #define MACRLC_REMOTE_S_PORTD_IDX 16 -#define MACRLC_PHY_TEST_IDX 17 +#define MACRLC_SCHED_MODE_IDX 17 +#define MACRLC_PHY_TEST_IDX 18 /*---------------------------------------------------------------------------------------------------------------------------------------------------------*/ diff --git a/openair2/ENB_APP/flexran_agent.c b/openair2/ENB_APP/flexran_agent.c index 8d5cdbc06b..9c0af82e90 100644 --- a/openair2/ENB_APP/flexran_agent.c +++ b/openair2/ENB_APP/flexran_agent.c @@ -47,11 +47,10 @@ void *flexran_agent_task(void *args){ Protocol__FlexranMessage *msg; void *data; int size; - err_code_t err_code; + err_code_t err_code=0; int priority = 0; MessageDef *msg_p = NULL; - const char *msg_name = NULL; int result; struct flexran_agent_timer_element_s * elem = NULL; @@ -61,7 +60,6 @@ void *flexran_agent_task(void *args){ // Wait for a message itti_receive_msg (TASK_FLEXRAN_AGENT, &msg_p); DevAssert(msg_p != NULL); - msg_name = ITTI_MSG_NAME (msg_p); switch (ITTI_MSG_ID(msg_p)) { case TERMINATE_MESSAGE: @@ -88,7 +86,7 @@ void *flexran_agent_task(void *args){ break; default: - LOG_E(FLEXRAN_AGENT, "Received unexpected message %s\n", msg_name); + LOG_E(FLEXRAN_AGENT, "Received unexpected message %s\n", ITTI_MSG_NAME (msg_p)); break; } @@ -96,7 +94,8 @@ void *flexran_agent_task(void *args){ AssertFatal (result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result); continue; error: - LOG_E(FLEXRAN_AGENT,"flexran_agent_task: error %d occured\n",err_code); + if (err_code != 0) + LOG_E(FLEXRAN_AGENT,"flexran_agent_task: error %d occured\n",err_code); } while (1); return NULL; @@ -108,7 +107,7 @@ void *receive_thread(void *args) { void *data; int size; int priority; - err_code_t err_code; + err_code_t err_code=0; Protocol__FlexranMessage *msg; @@ -140,7 +139,8 @@ void *receive_thread(void *args) { return NULL; error: - LOG_E(FLEXRAN_AGENT,"receive_thread: error %d occured\n",err_code); + if (err_code != 0) + LOG_E(FLEXRAN_AGENT,"receive_thread: error %d occured\n",err_code); return NULL; } @@ -299,7 +299,7 @@ Protocol__FlexranMessage *flexran_agent_timeout(void* args){ //memcpy (timer_args, args, sizeof(*timer_args)); flexran_agent_timer_args_t *timer_args = (flexran_agent_timer_args_t *) args; - LOG_I(FLEXRAN_AGENT, "flexran_agent %d timeout\n", timer_args->mod_id); + LOG_UI(FLEXRAN_AGENT, "flexran_agent %d timeout\n", timer_args->mod_id); //LOG_I(FLEXRAN_AGENT, "eNB action %d ENB flags %d \n", timer_args->cc_actions,timer_args->cc_report_flags); //LOG_I(FLEXRAN_AGENT, "UE action %d UE flags %d \n", timer_args->ue_actions,timer_args->ue_report_flags); diff --git a/openair2/ENB_APP/flexran_agent_async.c b/openair2/ENB_APP/flexran_agent_async.c index 9e099fc21c..88be77d5bb 100644 --- a/openair2/ENB_APP/flexran_agent_async.c +++ b/openair2/ENB_APP/flexran_agent_async.c @@ -29,7 +29,7 @@ #include "flexran_agent_async.h" #include "flexran_agent_defs.h" -#include "log.h" +#include "common/utils/LOG/log.h" flexran_agent_async_channel_t * flexran_agent_async_channel_info(mid_t mod_id, char *dst_ip, uint16_t dst_port) { diff --git a/openair2/ENB_APP/flexran_agent_defs.h b/openair2/ENB_APP/flexran_agent_defs.h index aa71dd33fa..57265b38b7 100644 --- a/openair2/ENB_APP/flexran_agent_defs.h +++ b/openair2/ENB_APP/flexran_agent_defs.h @@ -102,7 +102,7 @@ typedef enum { } ran_name_t; typedef uint8_t xid_t; -typedef uint8_t mid_t; // module or enb id +typedef uint16_t mid_t; // module or enb id typedef uint8_t lcid_t; typedef int32_t err_code_t; diff --git a/openair2/ENB_APP/flexran_agent_handler.c b/openair2/ENB_APP/flexran_agent_handler.c index 6c20c635a1..d4c82e4dff 100644 --- a/openair2/ENB_APP/flexran_agent_handler.c +++ b/openair2/ENB_APP/flexran_agent_handler.c @@ -130,16 +130,15 @@ void * flexran_agent_pack_message(Protocol__FlexranMessage *msg, int * size){ void * buffer; - err_code_t err_code = PROTOCOL__FLEXRAN_ERR__NO_ERR; if (flexran_agent_serialize_message(msg, &buffer, size) < 0 ) { - err_code = PROTOCOL__FLEXRAN_ERR__MSG_ENCODING; + LOG_E(FLEXRAN_AGENT,"errno %d occured\n",PROTOCOL__FLEXRAN_ERR__MSG_ENCODING); goto error; } // free the msg --> later keep this in the data struct and just update the values //TODO call proper destroy function - err_code = ((*message_destruction_callback[msg->msg_case-1])(msg)); + ((*message_destruction_callback[msg->msg_case-1])(msg)); DevAssert(buffer !=NULL); @@ -148,8 +147,6 @@ void * flexran_agent_pack_message(Protocol__FlexranMessage *msg, return buffer; error : - LOG_E(FLEXRAN_AGENT,"errno %d occured\n",err_code); - return NULL; } diff --git a/openair2/ENB_APP/flexran_agent_net_comm.c b/openair2/ENB_APP/flexran_agent_net_comm.c index 6971c29750..d5142e5456 100644 --- a/openair2/ENB_APP/flexran_agent_net_comm.c +++ b/openair2/ENB_APP/flexran_agent_net_comm.c @@ -27,7 +27,7 @@ */ #include "flexran_agent_net_comm.h" -#include "log.h" +#include "common/utils/LOG/log.h" flexran_agent_channel_t *agent_channel[NUM_MAX_ENB][FLEXRAN_AGENT_MAX]; flexran_agent_channel_instance_t channel_instance; diff --git a/openair2/ENB_APP/flexran_agent_ran_api.c b/openair2/ENB_APP/flexran_agent_ran_api.c index 2e5bccd935..e39d676061 100644 --- a/openair2/ENB_APP/flexran_agent_ran_api.c +++ b/openair2/ENB_APP/flexran_agent_ran_api.c @@ -141,7 +141,7 @@ rlc_buffer_occupancy_t flexran_get_tx_queue_size(mid_t mod_id, mid_t ue_id, logi frame_t frame = flexran_get_current_frame(mod_id); sub_frame_t subframe = flexran_get_current_subframe(mod_id); mac_rlc_status_resp_t rlc_status = mac_rlc_status_ind(mod_id,rnti, mod_id, frame, subframe, ENB_FLAG_YES,MBMS_FLAG_NO, channel_id, 0 -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif ); @@ -154,7 +154,7 @@ rlc_buffer_occupancy_t flexran_get_num_pdus_buffer(mid_t mod_id, mid_t ue_id, lo frame_t frame = flexran_get_current_frame(mod_id); sub_frame_t subframe = flexran_get_current_subframe(mod_id); mac_rlc_status_resp_t rlc_status = mac_rlc_status_ind(mod_id,rnti, mod_id, frame, subframe, ENB_FLAG_YES,MBMS_FLAG_NO, channel_id, 0 -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif ); @@ -167,7 +167,7 @@ frame_t flexran_get_hol_delay(mid_t mod_id, mid_t ue_id, logical_chan_id_t chann frame_t frame = flexran_get_current_frame(mod_id); sub_frame_t subframe = flexran_get_current_subframe(mod_id); mac_rlc_status_resp_t rlc_status = mac_rlc_status_ind(mod_id, rnti, mod_id, frame, subframe, ENB_FLAG_YES, MBMS_FLAG_NO, channel_id, 0 -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif ); diff --git a/openair2/LAYER2/MAC/config.c b/openair2/LAYER2/MAC/config.c index 78e4ca04ab..8fd85e7811 100644 --- a/openair2/LAYER2/MAC/config.c +++ b/openair2/LAYER2/MAC/config.c @@ -45,8 +45,8 @@ #include "mac.h" #include "mac_proto.h" #include "mac_extern.h" -#include "UTIL/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "common/ran_context.h" #if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) @@ -218,7 +218,7 @@ void config_mib(int Mod_idP, cfg->rf_config.dl_channel_bandwidth.value = to_prb(dl_BandwidthP); cfg->rf_config.dl_channel_bandwidth.tl.tag = NFAPI_RF_CONFIG_DL_CHANNEL_BANDWIDTH_TAG; cfg->num_tlv++; - LOG_E(PHY,"%s() dl_BandwidthP:%d\n", __FUNCTION__, dl_BandwidthP); + LOG_D(PHY,"%s() dl_BandwidthP:%d\n", __FUNCTION__, dl_BandwidthP); cfg->rf_config.ul_channel_bandwidth.value = to_prb(dl_BandwidthP); cfg->rf_config.ul_channel_bandwidth.tl.tag = NFAPI_RF_CONFIG_UL_CHANNEL_BANDWIDTH_TAG; @@ -727,7 +727,7 @@ rrc_mac_config_req_eNB(module_id_t Mod_idP, VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_MAC_CONFIG, VCD_FUNCTION_IN); - LOG_E(MAC, "RC.mac:%p mib:%p\n", RC.mac, mib); + LOG_D(MAC, "RC.mac:%p mib:%p\n", RC.mac, mib); if (mib != NULL) { if (RC.mac == NULL) @@ -962,8 +962,8 @@ rrc_mac_config_req_eNB(module_id_t Mod_idP, } #endif - - LOG_E(MAC, "%s() %s:%d RC.mac[Mod_idP]->if_inst->PHY_config_req:%p\n", __FUNCTION__, __FILE__, __LINE__, RC.mac[Mod_idP]->if_inst->PHY_config_req); + + LOG_D(MAC, "%s() %s:%d RC.mac[Mod_idP]->if_inst->PHY_config_req:%p\n", __FUNCTION__, __FILE__, __LINE__, RC.mac[Mod_idP]->if_inst->PHY_config_req); // if in nFAPI mode if ( @@ -987,6 +987,7 @@ rrc_mac_config_req_eNB(module_id_t Mod_idP, VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_MAC_CONFIG, VCD_FUNCTION_OUT); } - + RC.mac[Mod_idP]->scheduler_mode = global_scheduler_mode; + return(0); } diff --git a/openair2/LAYER2/MAC/config_NB_IoT.h b/openair2/LAYER2/MAC/config_NB_IoT.h index 0e497e3b0f..fb8c85ebed 100644 --- a/openair2/LAYER2/MAC/config_NB_IoT.h +++ b/openair2/LAYER2/MAC/config_NB_IoT.h @@ -21,7 +21,7 @@ typedef enum operationModeInf{ iNB_IoTand_DifferentPCI_r13 = 2, guardband_r13 = 3, standalone_r13 = 4 -}operationModeInf_t; +} operationModeInf_t; ///SIB1_SchedulingInfo_NB_IoT_r13 typedef enum si_Periodicity{ @@ -32,14 +32,14 @@ typedef enum si_Periodicity{ si_Periodicity_rf1024=10240, si_Periodicity_rf2048=20480, si_Periodicity_rf4096=40960 -}si_Periodicity_NB_IoT; +} si_Periodicity_NB_IoT; typedef enum si_RepetitionPattern{ si_RepetitionPattern_every2ndRF=0, si_RepetitionPattern_every4thRF, si_RepetitionPattern_every8thRF, si_RepetitionPattern_every16thRF -}si_RepetitionPattern_NB_IoT; +} si_RepetitionPattern_NB_IoT; typedef enum sib_MappingInfo{ sib2_v=0x1, @@ -48,7 +48,7 @@ typedef enum sib_MappingInfo{ sib5_v=0x8, sib14_v=0x10, sib16_v=0x20 -}sib_MappingInfo_NB_IoT; +} sib_MappingInfo_NB_IoT; typedef enum si_TB{ si_TB_56=2, @@ -59,7 +59,7 @@ typedef enum si_TB{ si_TB_440=8, si_TB_552=8, si_TB_680=8 -}si_TB_NB_IoT; +} si_TB_NB_IoT; ///RACH_ConfigCommon configuration @@ -72,7 +72,7 @@ typedef enum ra_ResponseWindowSize{ ra_ResponseWindowSize_pp7=7, ra_ResponseWindowSize_pp8=8, ra_ResponseWindowSize_pp10=10 -}ra_ResponseWindowSize_NB_IoT; +} ra_ResponseWindowSize_NB_IoT; typedef enum mac_ContentionResolutionTimer{ mac_ContentionResolutionTimer_pp1=1, @@ -83,7 +83,7 @@ typedef enum mac_ContentionResolutionTimer{ mac_ContentionResolutionTimer_pp16=16, mac_ContentionResolutionTimer_pp32=32, mac_ContentionResolutionTimer_pp64=64 -}mac_ContentionResolutionTimer_NB_IoT; +} mac_ContentionResolutionTimer_NB_IoT; ///NPRACH_ConfigSIB configuration @@ -96,7 +96,7 @@ typedef enum nprach_Periodicity{ nprach_Periodicity_ms640=640, nprach_Periodicity_ms1280=1280, nprach_Periodicity_ms2560=2560 -}nprach_Periodicity_NB_IoT; +} nprach_Periodicity_NB_IoT; typedef enum nprach_StartTime{ nprach_StartTime_ms8=8, @@ -107,7 +107,7 @@ typedef enum nprach_StartTime{ nprach_StartTime_ms256=256, nprach_StartTime_ms512=512, nprach_StartTime_ms1024=1024 -}nprach_StartTime_NB_IoT; +} nprach_StartTime_NB_IoT; typedef enum nprach_SubcarrierOffset{ nprach_SubcarrierOffset_n0=0, @@ -117,21 +117,21 @@ typedef enum nprach_SubcarrierOffset{ nprach_SubcarrierOffset_n2=2, nprach_SubcarrierOffset_n18=18, nprach_SubcarrierOffset_n34=34 -}nprach_SubcarrierOffset_NB_IoT; +} nprach_SubcarrierOffset_NB_IoT; typedef enum nprach_NumSubcarriers{ nprach_NumSubcarriers_n12=12, nprach_NumSubcarriers_n24=24, nprach_NumSubcarriers_n36=36, nprach_NumSubcarriers_n48=48 -}nprach_NumSubcarriers_NB_IoT; +} nprach_NumSubcarriers_NB_IoT; typedef enum nprach_SubcarrierMSG3_RangeStart{ nprach_SubcarrierMSG3_RangeStart_zero=0, nprach_SubcarrierMSG3_RangeStart_oneThird=1/3, nprach_SubcarrierMSG3_RangeStart_twoThird=2/3, nprach_SubcarrierMSG3_RangeStart_one=1 -}nprach_SubcarrierMSG3_RangeStart_NB_IoT; +} nprach_SubcarrierMSG3_RangeStart_NB_IoT; typedef enum maxNumPreambleAttemptCE{ maxNumPreambleAttemptCE_n3=3, @@ -141,7 +141,7 @@ typedef enum maxNumPreambleAttemptCE{ maxNumPreambleAttemptCE_n7=7, maxNumPreambleAttemptCE_n8=8, maxNumPreambleAttemptCE_n10=10 -}maxNumPreambleAttemptCE_NB_IoT; +} maxNumPreambleAttemptCE_NB_IoT; typedef enum numRepetitionsPerPreambleAttempt{ numRepetitionsPerPreambleAttempt_n1=1, @@ -152,7 +152,7 @@ typedef enum numRepetitionsPerPreambleAttempt{ numRepetitionsPerPreambleAttempt_n32=32, numRepetitionsPerPreambleAttempt_n64=64, numRepetitionsPerPreambleAttempt_n128=128 -}numRepetitionsPerPreambleAttempt_NB_IoT; +} numRepetitionsPerPreambleAttempt_NB_IoT; typedef enum npdcch_NumRepetitions_RA{ npdcch_NumRepetitions_RA_r1=1, @@ -167,7 +167,7 @@ typedef enum npdcch_NumRepetitions_RA{ npdcch_NumRepetitions_RA_r512=512, npdcch_NumRepetitions_RA_r1024=1024, npdcch_NumRepetitions_RA_r2048=2048 -}npdcch_NumRepetitions_RA_NB_IoT; +} npdcch_NumRepetitions_RA_NB_IoT; typedef enum npdcch_StartSF_CSS_RA{ npdcch_StartSF_CSS_RA_v1dot5=3/2, @@ -178,14 +178,14 @@ typedef enum npdcch_StartSF_CSS_RA{ npdcch_StartSF_CSS_RA_v32=32, npdcch_StartSF_CSS_RA_v48=48, npdcch_StartSF_CSS_RA_v64=64 -}npdcch_StartSF_CSS_RA_NB_IoT; +} npdcch_StartSF_CSS_RA_NB_IoT; typedef enum npdcch_Offset_RA{ zero=0, oneEighth=1/8, oneFourth=1/4, threeEighth=3/8 -}npdcch_Offset_RA_NB_IoT; +} npdcch_Offset_RA_NB_IoT; typedef enum si_window_length_e{ ms160=160, @@ -195,7 +195,7 @@ typedef enum si_window_length_e{ ms960=960, ms1280=1280, ms1600=1600 -}si_window_length_t; +} si_window_length_t; typedef enum si_periodicity_e{ rf64=640, @@ -205,14 +205,14 @@ typedef enum si_periodicity_e{ rf1024=10240, rf2048=20480, rf4096=40960 -}si_periodicity_t; +} si_periodicity_t; typedef enum si_repetition_pattern_e{ every2ndRF=20, every4thRF=40, every8thRF=80, every16thRF=160 -}si_repetition_pattern_t; +} si_repetition_pattern_t; typedef enum si_tb_e{ b56=2, @@ -223,7 +223,7 @@ typedef enum si_tb_e{ b440=8, b552=8, b680=8 -}si_tb_t; +} si_tb_t; typedef struct sibs_NB_IoT_sched_s{ @@ -232,21 +232,21 @@ typedef struct sibs_NB_IoT_sched_s{ sib_MappingInfo_NB_IoT sib_mapping_info; //bit vector si_tb_t si_tb; -}sibs_NB_IoT_sched_t; +} sibs_NB_IoT_sched_t; ///-------------------------------------------------------MAC--------------------------------------------------------------------/// typedef struct sib1_NB_IoT_sched_s{ int repetitions; // 4, 8, 16 int starting_rf; -}sib1_NB_IoT_sched_t; +} sib1_NB_IoT_sched_t; typedef struct { uint32_t mac_ra_ResponseWindowSize_NB_IoT; uint32_t mac_ContentionResolutionTimer_NB_IoT; -}mac_RACH_ConfigCommon_NB_IoT; +} mac_RACH_ConfigCommon_NB_IoT; typedef struct { @@ -262,7 +262,7 @@ typedef struct { uint32_t mac_npdcch_StartSF_CSS_RA_NB_IoT; // G uint32_t mac_npdcch_Offset_RA_NB_IoT; // alpha offset -}mac_NPRACH_ConfigSIB_NB_IoT; +} mac_NPRACH_ConfigSIB_NB_IoT; typedef struct{ //npdcch-NumRepetitions-r13 @@ -271,7 +271,7 @@ typedef struct{ double G; //npdcch-Offset-USS-r13 double a_offset; -}npdcch_ConfigDedicated_NB_IoT; +} npdcch_ConfigDedicated_NB_IoT; typedef struct rrc_config_NB_IoT_s{ @@ -296,6 +296,6 @@ typedef struct rrc_config_NB_IoT_s{ ///NPDCCH Dedicated config npdcch_ConfigDedicated_NB_IoT npdcch_ConfigDedicated[3]; -}rrc_config_NB_IoT_t; +} rrc_config_NB_IoT_t; #endif diff --git a/openair2/LAYER2/MAC/config_ue.c b/openair2/LAYER2/MAC/config_ue.c index 0b27955dad..c38c32a4de 100644 --- a/openair2/LAYER2/MAC/config_ue.c +++ b/openair2/LAYER2/MAC/config_ue.c @@ -46,8 +46,8 @@ #include "mac.h" #include "mac_proto.h" #include "mac_extern.h" -#include "UTIL/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "PHY/INIT/phy_init.h" #include "common/ran_context.h" @@ -138,7 +138,7 @@ rrc_mac_config_req_ue(module_id_t Mod_idP, #ifdef CBA , uint8_t num_active_cba_groups, uint16_t cba_rnti #endif -#if defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,config_action_t config_action ,const uint32_t * const sourceL2Id ,const uint32_t * const destinationL2Id @@ -590,7 +590,7 @@ rrc_mac_config_req_ue(module_id_t Mod_idP, VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME (VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_MAC_CONFIG, VCD_FUNCTION_OUT); //for D2D - #if defined(Rel10) || defined(Rel14) + #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) switch (config_action) { case CONFIG_ACTION_ADD: if (sourceL2Id){ diff --git a/openair2/LAYER2/MAC/eNB_scheduler.c b/openair2/LAYER2/MAC/eNB_scheduler.c index f1f4777d3e..20c42b512a 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler.c +++ b/openair2/LAYER2/MAC/eNB_scheduler.c @@ -35,8 +35,8 @@ #include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_proto.h" -#include "UTIL/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "UTIL/OPT/opt.h" #include "OCG.h" #include "OCG_extern.h" @@ -51,6 +51,9 @@ #include "flexran_agent_extern.h" #include "flexran_agent_mac.h" +/* for fair round robin SCHED */ +#include "eNB_scheduler_fairRR.h" + #if defined(ENABLE_ITTI) #include "intertask_interface.h" #endif @@ -360,9 +363,9 @@ check_ul_failure(module_id_t module_idP, int CC_id, int UE_id, // check uplink failure if ((UE_list->UE_sched_ctrl[UE_id].ul_failure_timer > 0) && (UE_list->UE_sched_ctrl[UE_id].ul_out_of_sync == 0)) { - if ((UE_list->UE_sched_ctrl[UE_id].ul_failure_timer&1023) == 0) + if (UE_list->UE_sched_ctrl[UE_id].ul_failure_timer == 1) LOG_I(MAC, "UE %d rnti %x: UL Failure timer %d \n", UE_id, rnti, - UE_list->UE_sched_ctrl[UE_id].ul_failure_timer); + UE_list->UE_sched_ctrl[UE_id].ul_failure_timer); if (UE_list->UE_sched_ctrl[UE_id].ra_pdcch_order_sent == 0) { UE_list->UE_sched_ctrl[UE_id].ra_pdcch_order_sent = 1; @@ -387,24 +390,24 @@ check_ul_failure(module_id_t module_idP, int CC_id, int UE_id, DL_req[CC_id].dl_config_request_body.number_dci++; DL_req[CC_id].dl_config_request_body.number_pdu++; DL_req[CC_id].dl_config_request_body.tl.tag = NFAPI_DL_CONFIG_REQUEST_BODY_TAG; - LOG_I(MAC, + LOG_D(MAC, "UE %d rnti %x: sending PDCCH order for RAPROC (failure timer %d), resource_block_coding %d \n", UE_id, rnti, UE_list->UE_sched_ctrl[UE_id].ul_failure_timer, dl_config_pdu->dci_dl_pdu. dci_dl_pdu_rel8.resource_block_coding); } else { // ra_pdcch_sent==1 - if ((UE_list->UE_sched_ctrl[UE_id].ul_failure_timer&1023) == 0) - LOG_I(MAC, - "UE %d rnti %x: sent PDCCH order for RAPROC waiting (failure timer %d) \n", - UE_id, rnti, - UE_list->UE_sched_ctrl[UE_id].ul_failure_timer); - if ((UE_list->UE_sched_ctrl[UE_id].ul_failure_timer % 40) == 0) UE_list->UE_sched_ctrl[UE_id].ra_pdcch_order_sent = 0; // resend every 4 frames + LOG_D(MAC, + "UE %d rnti %x: sent PDCCH order for RAPROC waiting (failure timer %d) \n", + UE_id, rnti, + UE_list->UE_sched_ctrl[UE_id].ul_failure_timer); + if ((UE_list->UE_sched_ctrl[UE_id].ul_failure_timer % 80) == 0) UE_list->UE_sched_ctrl[UE_id].ra_pdcch_order_sent = 0; // resend every 8 frames } UE_list->UE_sched_ctrl[UE_id].ul_failure_timer++; // check threshold - if (UE_list->UE_sched_ctrl[UE_id].ul_failure_timer > 20000) { + if (UE_list->UE_sched_ctrl[UE_id].ul_failure_timer > 4000) { + // note: probably ul_failure_timer should be less than UE radio link failure time(see T310/N310/N311) // inform RRC of failure and clear timer LOG_I(MAC, "UE %d rnti %x: UL Failure after repeated PDCCH orders: Triggering RRC \n", @@ -421,16 +424,6 @@ check_ul_failure(module_id_t module_idP, int CC_id, int UE_id, } } } // ul_failure_timer>0 - -#if 0 - /* U-plane inactivity timer is disabled. Uncomment to re-enable. */ - UE_list->UE_sched_ctrl[UE_id].uplane_inactivity_timer++; - if(UE_list->UE_sched_ctrl[UE_id].uplane_inactivity_timer > (U_PLANE_INACTIVITY_VALUE*subframe_num(&RC.eNB[module_idP][CC_id]->frame_parms))){ - LOG_D(MAC,"UE %d rnti %x: U-Plane Failure after repeated PDCCH orders: Triggering RRC \n",UE_id,rnti); - mac_eNB_rrc_uplane_failure(module_idP,CC_id,frameP,subframeP,rnti); - UE_list->UE_sched_ctrl[UE_id].uplane_inactivity_timer = 0; - }// time > 60s -#endif } void @@ -439,7 +432,7 @@ clear_nfapi_information(eNB_MAC_INST * eNB, int CC_idP, { nfapi_dl_config_request_t *DL_req = &eNB->DL_req[0]; nfapi_ul_config_request_t *UL_req = &eNB->UL_req[0]; - nfapi_hi_dci0_request_t *HI_DCI0_req = &eNB->HI_DCI0_req[0]; + nfapi_hi_dci0_request_t *HI_DCI0_req = &eNB->HI_DCI0_req[CC_idP][subframeP]; nfapi_tx_request_t *TX_req = &eNB->TX_req[0]; eNB->pdu_index[CC_idP] = 0; @@ -452,8 +445,8 @@ clear_nfapi_information(eNB_MAC_INST * eNB, int CC_idP, DL_req[CC_idP].dl_config_request_body.number_pdsch_rnti = 0; DL_req[CC_idP].dl_config_request_body.transmission_power_pcfich = 6000; - HI_DCI0_req[CC_idP].hi_dci0_request_body.sfnsf = subframeP + (frameP<<4); - HI_DCI0_req[CC_idP].hi_dci0_request_body.number_of_dci = 0; + HI_DCI0_req->hi_dci0_request_body.sfnsf = subframeP + (frameP<<4); + HI_DCI0_req->hi_dci0_request_body.number_of_dci = 0; UL_req[CC_idP].ul_config_request_body.number_of_pdus = 0; @@ -536,7 +529,6 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP, frame_t frameP, // refresh UE list based on UEs dropped by PHY in previous subframe for (i = 0; i < MAX_MOBILES_PER_ENB; i++) { if (UE_list->active[i]) { - rnti = UE_RNTI(module_idP, i); CC_id = UE_PCCID(module_idP, i); @@ -574,14 +566,21 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP, frame_t frameP, if(RC.mac[module_idP]->UE_list.UE_sched_ctrl[i].ue_reestablishment_reject_timer >= RC.mac[module_idP]->UE_list.UE_sched_ctrl[i].ue_reestablishment_reject_timer_thres) { RC.mac[module_idP]->UE_list.UE_sched_ctrl[i].ue_reestablishment_reject_timer = 0; - for (int ue_id_l = 0; ue_id_l < MAX_MOBILES_PER_ENB; ue_id_l++) { - if (reestablish_rnti_map[ue_id_l][0] == rnti) { - // clear currentC-RNTI from map - reestablish_rnti_map[ue_id_l][0] = 0; - reestablish_rnti_map[ue_id_l][1] = 0; - break; + //clear reestablish_rnti_map + if(RC.mac[module_idP]->UE_list.UE_sched_ctrl[i].ue_reestablishment_reject_timer_thres >20){ + for (int ue_id_l = 0; ue_id_l < MAX_MOBILES_PER_ENB; ue_id_l++) { + if (reestablish_rnti_map[ue_id_l][0] == rnti) { + // clear currentC-RNTI from map + reestablish_rnti_map[ue_id_l][0] = 0; + reestablish_rnti_map[ue_id_l][1] = 0; + break; + } } - } + + PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, module_idP, ENB_FLAG_YES, rnti, 0, 0,module_idP); + rrc_rlc_remove_ue(&ctxt); + pdcp_remove_UE(&ctxt); + } // Note: This should not be done in the MAC! for (int ii=0; iiulsch[ii]; @@ -621,13 +620,15 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP, frame_t frameP, } } } + +#if (!defined(PRE_SCD_THREAD)) PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, module_idP, ENB_FLAG_YES, NOT_A_RNTI, frameP, subframeP, module_idP); pdcp_run(&ctxt); - rrc_rx_tx(&ctxt, CC_id); +#endif #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) @@ -641,6 +642,22 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP, frame_t frameP, #endif + static int debug_flag=0; + void (*schedule_ulsch_p)(module_id_t module_idP, frame_t frameP, sub_frame_t subframe)=NULL; + void (*schedule_ue_spec_p)(module_id_t module_idP, frame_t frameP, sub_frame_t subframe, int *mbsfn_flag)=NULL; + if(RC.mac[module_idP]->scheduler_mode == SCHED_MODE_DEFAULT){ + schedule_ulsch_p = schedule_ulsch; + schedule_ue_spec_p = schedule_dlsch; + }else if(RC.mac[module_idP]->scheduler_mode == SCHED_MODE_FAIR_RR){ + memset(dlsch_ue_select, 0, sizeof(dlsch_ue_select)); + schedule_ulsch_p = schedule_ulsch_fairRR; + schedule_ue_spec_p = schedule_ue_spec_fairRR; + } + if(debug_flag==0){ + LOG_E(MAC,"SCHED_MODE=%d\n",RC.mac[module_idP]->scheduler_mode); + debug_flag=1; + } + // This schedules MIB if ((subframeP == 0) && (frameP & 3) == 0) @@ -657,13 +674,22 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP, frame_t frameP, // This schedules SRS in subframeP schedule_SRS(module_idP, frameP, subframeP); // This schedules ULSCH in subframeP (dci0) - schedule_ulsch(module_idP, frameP, subframeP); + if (schedule_ulsch_p != NULL) { + schedule_ulsch_p(module_idP, frameP, subframeP); + } else { + LOG_E(MAC," %s %d: schedule_ulsch_p is NULL, function not called\n",__FILE__,__LINE__); + } // This schedules UCI_SR in subframeP schedule_SR(module_idP, frameP, subframeP); // This schedules UCI_CSI in subframeP schedule_CSI(module_idP, frameP, subframeP); // This schedules DLSCH in subframeP - schedule_dlsch(module_idP, frameP, subframeP, mbsfn_status); + if (schedule_ue_spec_p != NULL) { + schedule_ue_spec_p(module_idP, frameP, subframeP, mbsfn_status); + } else { + LOG_E(MAC," %s %d: schedule_ue_spec_p is NULL, function not called\n",__FILE__,__LINE__); + } + } else{ schedule_ulsch_phy_test(module_idP,frameP,subframeP); @@ -674,8 +700,10 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP, frame_t frameP, flexran_agent_send_update_stats(module_idP); // Allocate CCEs for good after scheduling is done - for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) - allocate_CCEs(module_idP, CC_id, subframeP, 0); + for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { + if(cc[CC_id].tdd_Config == NULL || !(is_UL_sf(&cc[CC_id],subframeP))) + allocate_CCEs(module_idP, CC_id, frameP, subframeP, 2); + } stop_meas(&RC.mac[module_idP]->eNB_scheduler); diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c index 89d059f3a8..15478dc4ac 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c @@ -40,8 +40,8 @@ #include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_proto.h" -#include "UTIL/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "UTIL/OPT/opt.h" #include "OCG.h" #include "OCG_extern.h" @@ -50,6 +50,7 @@ #include "RRC/LTE/rrc_extern.h" #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h" +#include "SCHED/sched_common.h" //#include "LAYER2/MAC/pre_processor.c" #include "pdcp.h" @@ -62,6 +63,7 @@ #include "T.h" #include "common/ran_context.h" +#include "LAYER2/MAC/eNB_scheduler_fairRR.h" extern RAN_CONTEXT_t RC; @@ -106,10 +108,10 @@ add_msg3(module_id_t module_idP, int CC_id, RA_t * ra, frame_t frameP, nfapi_ul_config_request_t *ul_req; nfapi_ul_config_request_body_t *ul_req_body; nfapi_ul_config_request_pdu_t *ul_config_pdu; - nfapi_hi_dci0_request_t *hi_dci0_req = &mac->HI_DCI0_req[CC_id]; - nfapi_hi_dci0_request_body_t *hi_dci0_req_body = &hi_dci0_req->hi_dci0_request_body; + nfapi_hi_dci0_request_t *hi_dci0_req; + nfapi_hi_dci0_request_body_t *hi_dci0_req_body; nfapi_hi_dci0_request_pdu_t *hi_dci0_pdu; - + uint8_t sf_ahead_dl; uint8_t rvseq[4] = { 0, 2, 3, 1 }; @@ -211,6 +213,9 @@ add_msg3(module_id_t module_idP, int CC_id, RA_t * ra, frame_t frameP, LOG_D(MAC, "MSG3: UL_CONFIG SFN/SF:%d number_of_pdus:%d ra->msg3_round:%d\n", NFAPI_SFNSF2DEC(ul_req->sfn_sf), ul_req_body->number_of_pdus, ra->msg3_round); if (ra->msg3_round != 0) { // program HI too + sf_ahead_dl = ul_subframe2_k_phich(cc, subframeP); + hi_dci0_req = &mac->HI_DCI0_req[CC_id][(subframeP+sf_ahead_dl)%10]; + hi_dci0_req_body = &hi_dci0_req->hi_dci0_request_body; hi_dci0_pdu = &hi_dci0_req_body->hi_dci0_pdu_list[hi_dci0_req_body->number_of_dci + hi_dci0_req_body->number_of_hi]; memset((void *) hi_dci0_pdu, 0, sizeof(nfapi_hi_dci0_request_pdu_t)); @@ -225,7 +230,7 @@ add_msg3(module_id_t module_idP, int CC_id, RA_t * ra, frame_t frameP, hi_dci0_req_body->sfnsf = sfnsf_add_subframe(ra->Msg3_frame, ra->Msg3_subframe, 0); hi_dci0_req_body->tl.tag = NFAPI_HI_DCI0_REQUEST_BODY_TAG; - hi_dci0_req->sfn_sf = sfnsf_add_subframe(ra->Msg3_frame, ra->Msg3_subframe, 4); + hi_dci0_req->sfn_sf = sfnsf_add_subframe(frameP, subframeP, sf_ahead_dl); hi_dci0_req->header.message_id = NFAPI_HI_DCI0_REQUEST; if (nfapi_mode) { @@ -283,7 +288,7 @@ generate_Msg2(module_id_t module_idP, int CC_idP, frame_t frameP, LOG_D(MAC,"absSF:%d absSF_Msg2:%d ra->rach_resource_type:%d\n",absSF,absSF_Msg2,ra->rach_resource_type); - if (absSF > absSF_Msg2) + if (absSF < absSF_Msg2) return; // we're not ready yet, need to be to start == if (cc[CC_idP].radioResourceConfigCommon_BR) { @@ -486,6 +491,9 @@ generate_Msg2(module_id_t module_idP, int CC_idP, frame_t frameP, TX_req->segments[0].segment_length = 7; TX_req->segments[0].segment_data = cc[CC_idP].RAR_pdu.payload; mac->TX_req[CC_idP].tx_request_body.number_of_pdus++; + if(RC.mac[module_idP]->scheduler_mode == SCHED_MODE_FAIR_RR){ + set_dl_ue_select_msg2(CC_idP, 4, -1, ra->rnti); + } } } @@ -587,6 +595,9 @@ generate_Msg2(module_id_t module_idP, int CC_idP, frame_t frameP, TX_req->segments[0].segment_data = cc[CC_idP].RAR_pdu.payload; mac->TX_req[CC_idP].tx_request_body.number_of_pdus++; + if(RC.mac[module_idP]->scheduler_mode == SCHED_MODE_FAIR_RR){ + set_dl_ue_select_msg2(CC_idP, 4, -1, ra->rnti); + } } // PDCCH CCE allocation is feasible } // Msg2 frame/subframe condition } // else BL/CE @@ -693,17 +704,17 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP, // set HARQ process round to 0 for this UE - if (cc->tdd_Config) - ra->harq_pid = ((frameP * 10) + subframeP) % 10; - else - ra->harq_pid = ((frameP * 10) + subframeP) & 7; + ra->harq_pid = frame_subframe2_dl_harq_pid(cc->tdd_Config,frameP ,subframeP); /* // Get RRCConnectionSetup for Piggyback rrc_sdu_length = mac_rrc_data_req(module_idP, CC_idP, frameP, CCCH, 1, // 1 transport block &cc[CC_idP].CCCH_pdu.payload[0], 0); // not used in this case - - AssertFatal(rrc_sdu_length > 0, - "[MAC][eNB Scheduler] CCCH not allocated\n"); + if(rrc_sdu_length <= 0) { + LOG_D(MAC,"[MAC][eNB Scheduler] CCCH not allocated (%d)\n",rrc_sdu_length); + return; + } + //AssertFatal(rrc_sdu_length > 0, + //"[MAC][eNB Scheduler] CCCH not allocated\n"); LOG_D(MAC, @@ -987,6 +998,9 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP, module_idP, CC_idP, frameP, UE_RNTI(module_idP,UE_id), rrc_sdu_length); } + if(RC.mac[module_idP]->scheduler_mode == SCHED_MODE_FAIR_RR){ + set_dl_ue_select_msg4(CC_idP, 4, UE_id, ra->rnti); + } } // Msg4 frame/subframe } // msg4_mpdcch_repetition_count } // rach_resource_type > 0 @@ -994,7 +1008,7 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP, #endif { // This is normal LTE case - LOG_D(MAC, "Panos-D: generate_Msg4 1 ra->Msg4_frame SFN/SF: %d.%d, frameP SFN/SF: %d.%d FOR eNB_Mod: %d \n", ra->Msg4_frame, ra->Msg4_subframe, frameP, subframeP, module_idP); + LOG_D(MAC, "generate_Msg4 1 ra->Msg4_frame SFN/SF: %d.%d, frameP SFN/SF: %d.%d FOR eNB_Mod: %d \n", ra->Msg4_frame, ra->Msg4_subframe, frameP, subframeP, module_idP); if ((ra->Msg4_frame == frameP) && (ra->Msg4_subframe == subframeP)) { // Get RRCConnectionSetup for Piggyback @@ -1086,26 +1100,16 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP, "Frame %d, Subframe %d: Preparing for Msg4 retransmission currently %d.%d\n", frameP, subframeP, ra->Msg4_frame, ra->Msg4_subframe); - if (cc[CC_idP].tdd_Config == NULL) { - if (ra->Msg4_subframe > 1) - ra->Msg4_frame++; - ra->Msg4_frame &= 1023; - ra->Msg4_subframe = (ra->Msg4_subframe + 8) % 10; - } - else { - ra->Msg4_frame++; - ra->Msg4_frame &= 1023; - } - LOG_I(MAC, + get_retransmission_timing(mac->common_channels[CC_idP].tdd_Config,&ra->Msg4_frame,&ra->Msg4_subframe); + + LOG_D(MAC, "Frame %d, Subframe %d: Msg4 retransmission in %d.%d\n", frameP, subframeP, ra->Msg4_frame, ra->Msg4_subframe); lcid = 0; // put HARQ process round to 0 - if (cc->tdd_Config) ra->harq_pid = ((frameP * 10) + subframeP) % 10; - else - ra->harq_pid = ((frameP * 10) + subframeP) & 7; + ra->harq_pid = frame_subframe2_dl_harq_pid(cc->tdd_Config,frameP ,subframeP); UE_list->UE_sched_ctrl[UE_id].round[CC_idP][ra->harq_pid] = 0; if ((ra->msg4_TBsize - rrc_sdu_length - msg4_header) <= 2) { @@ -1200,7 +1204,9 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP, UE_id), rrc_sdu_length); } - + if(RC.mac[module_idP]->scheduler_mode == SCHED_MODE_FAIR_RR){ + set_dl_ue_select_msg4(CC_idP, 4, UE_id, ra->rnti); + } } // CCE Allocation feasible } // msg4 frame/subframe } // else rach_resource_type @@ -1322,7 +1328,7 @@ check_Msg4_retransmission(module_id_t module_idP, int CC_idP, ra->rnti, round, frameP, subframeP); // DLSCH Config //DJP - fix this pdu_index = -1 - LOG_D(MAC, "Panos:D: check_Msg4_retransmission() before fill_nfapi_dlsch_config() with pdu_index = -1 \n"); + LOG_D(MAC, "check_Msg4_retransmission() before fill_nfapi_dlsch_config() with pdu_index = -1 \n"); fill_nfapi_dlsch_config(mac, dl_req_body, ra->msg4_TBsize, -1 /* retransmission, no pdu_index */ @@ -1345,6 +1351,9 @@ check_Msg4_retransmission(module_id_t module_idP, int CC_idP, (cc->p_eNB == 1) ? 1 : 2, // transmission mode 1, // num_bf_prb_per_subband 1); // num_bf_vector + if(RC.mac[module_idP]->scheduler_mode == SCHED_MODE_FAIR_RR){ + set_dl_ue_select_msg4(CC_idP, 4, UE_id, ra->rnti); + } } else LOG_D(MAC, "msg4 retransmission for rnti %x (round %d) fsf %d/%d CCE allocation failed!\n", @@ -1361,14 +1370,8 @@ check_Msg4_retransmission(module_id_t module_idP, int CC_idP, dci_dl_pdu_rel8.cce_idx); // prepare frame for retransmission - if (cc->tdd_Config==NULL) { - if (ra->Msg4_subframe > 1) - ra->Msg4_frame++; - ra->Msg4_frame &= 1023; - ra->Msg4_subframe = (ra->Msg4_subframe + 8) % 10; - } - else ra->Msg4_frame++; - + get_retransmission_timing(mac->common_channels[CC_idP].tdd_Config,&ra->Msg4_frame,&ra->Msg4_subframe); + LOG_W(MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Msg4 not acknowledged, adding ue specific dci (rnti %x) for RA (Msg4 Retransmission round %d in %d.%d)\n", module_idP, CC_idP, frameP, subframeP, ra->rnti, @@ -1386,6 +1389,7 @@ check_Msg4_retransmission(module_id_t module_idP, int CC_idP, UE_id = find_UE_id(module_idP, ra->rnti); DevAssert(UE_id != -1); mac->UE_list.UE_template[UE_PCCID(module_idP, UE_id)][UE_id].configured = TRUE; + cancel_ra_proc(module_idP, CC_idP, frameP, ra->rnti); } } @@ -1418,7 +1422,7 @@ schedule_RA(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP) if (ra->state == MSG2) generate_Msg2(module_idP, CC_id, frameP, subframeP, ra); - else if (ra->state == MSG4) + else if (ra->state == MSG4 && ra->Msg4_frame == frameP && ra->Msg4_subframe == subframeP ) generate_Msg4(module_idP, CC_id, frameP, subframeP, ra); else if (ra->state == WAITMSG4ACK) check_Msg4_retransmission(module_idP, CC_id, frameP, @@ -1461,6 +1465,8 @@ initiate_ra_proc(module_id_t module_idP, struct PRACH_ConfigSIB_v1310 *ext4_prach = NULL; PRACH_ParametersListCE_r13_t *prach_ParametersListCE_r13 = NULL; + + static uint8_t failure_cnt = 0; if (cc->radioResourceConfigCommon_BR && cc->radioResourceConfigCommon_BR->ext4) { @@ -1513,11 +1519,22 @@ initiate_ra_proc(module_id_t module_idP, ra[i].msg4_mpdcch_repetition_cnt = 0; #endif - // DJP - this is because VNF is 2 subframes ahead of PNF and TX needs 4 subframes - if (nfapi_mode) - offset = 7; - else - offset = 5; + + //TODO Fill in other TDD config. What about nfapi_mode? + if(cc->tdd_Config!=NULL){ + switch(cc->tdd_Config->subframeAssignment){ + default: printf("%s:%d: TODO\n", __FILE__, __LINE__); abort(); + case 1 : + offset = 6; + break; + } + }else{//FDD + // DJP - this is because VNF is 2 subframes ahead of PNF and TX needs 4 subframes + if (nfapi_mode) + offset = 7; + else + offset = 5; + } add_subframe(&msg2_frame, &msg2_subframe, offset); @@ -1564,6 +1581,7 @@ initiate_ra_proc(module_id_t module_idP, } ra[i].RA_rnti = ra_rnti; ra[i].preamble_index = preamble_index; + failure_cnt = 0; LOG_D(MAC, "[eNB %d][RAPROC] CC_id %d Frame %d Activating RAR generation in Frame %d, subframe %d for process %d, rnti %x, state %d\n", module_idP, CC_id, frameP, ra[i].Msg2_frame, @@ -1576,6 +1594,13 @@ initiate_ra_proc(module_id_t module_idP, LOG_E(MAC, "[eNB %d][RAPROC] FAILURE: CC_id %d Frame %d Initiating RA procedure for preamble index %d\n", module_idP, CC_id, frameP, preamble_index); + + failure_cnt++; + if(failure_cnt > 20) { + LOG_E(MAC,"[eNB %d][RAPROC] CC_id %d Frame %d Clear Random access information\n", module_idP, CC_id, frameP); + clear_ra_proc(module_idP, CC_id, frameP); + } + } void @@ -1598,6 +1623,22 @@ cancel_ra_proc(module_id_t module_idP, int CC_id, frame_t frameP, ra[i].RRC_timer = 20; ra[i].rnti = 0; ra[i].msg3_round = 0; + LOG_I(MAC,"[eNB %d][RAPROC] CC_id %d Frame %d Canceled RA procedure for UE rnti %x\n", module_idP, CC_id, frameP, rnti); } } } + +void clear_ra_proc(module_id_t module_idP, int CC_id, frame_t frameP) +{ + unsigned char i; + RA_t *ra = (RA_t *) & RC.mac[module_idP]->common_channels[CC_id].ra[0]; + + for (i = 0; i < NB_RA_PROC_MAX; i++) { + LOG_D(MAC,"[eNB %d][RAPROC] CC_id %d Frame %d Clear Random access information rnti %x\n", module_idP, CC_id, frameP, ra[i].rnti); + ra[i].state = IDLE; + ra[i].timing_offset = 0; + ra[i].RRC_timer = 20; + ra[i].rnti = 0; + ra[i].msg3_round = 0; + } +} diff --git a/openair2/LAYER2/MAC/eNB_scheduler_bch.c b/openair2/LAYER2/MAC/eNB_scheduler_bch.c index 7aabc30b81..d965bc811b 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_bch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_bch.c @@ -33,8 +33,8 @@ #include "LAYER2/MAC/mac.h" #include "LAYER2/MAC/mac_proto.h" #include "LAYER2/MAC/mac_extern.h" -#include "UTIL/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "UTIL/OPT/opt.h" #include "OCG.h" #include "OCG_extern.h" diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c index e59c9ccba0..05498e4377 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c @@ -33,8 +33,8 @@ #include "LAYER2/MAC/mac.h" #include "LAYER2/MAC/mac_proto.h" #include "LAYER2/MAC/mac_extern.h" -#include "UTIL/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "UTIL/OPT/opt.h" #include "OCG.h" #include "OCG_extern.h" @@ -368,21 +368,23 @@ set_ul_DAI(int module_idP, int UE_idP, int CC_idP, int frameP, case 1: switch (subframeP) { + case 0: case 1: UE_list->UE_template[CC_idP][UE_idP].DAI_ul[7] = DAI; break; case 4: - UE_list->UE_template[CC_idP][UE_idP].DAI_ul[8] = DAI; - break; + UE_list->UE_template[CC_idP][UE_idP].DAI_ul[8] = DAI; + break; + case 5: case 6: - UE_list->UE_template[CC_idP][UE_idP].DAI_ul[2] = DAI; - break; + UE_list->UE_template[CC_idP][UE_idP].DAI_ul[2] = DAI; + break; case 9: - UE_list->UE_template[CC_idP][UE_idP].DAI_ul[3] = DAI; - break; + UE_list->UE_template[CC_idP][UE_idP].DAI_ul[3] = DAI; + break; } case 2: @@ -472,7 +474,7 @@ schedule_dlsch(module_id_t module_idP, slice_sched_dl[i] = dlsym(NULL, dl_scheduler_type[i]); update_dl_scheduler[i] = 0 ; update_dl_scheduler_current[i] = 0; - LOG_N(MAC,"update dl scheduler slice %d\n", i); + LOG_I(MAC,"update dl scheduler slice %d\n", i); } if (total_slice_percentage <= 1.0){ // the new total RB share is within the range @@ -480,7 +482,7 @@ schedule_dlsch(module_id_t module_idP, // check if the number of slices has changed, and log if (n_active_slices_current != n_active_slices ){ if ((n_active_slices > 0) && (n_active_slices <= MAX_NUM_SLICES)) { - LOG_N(MAC,"[eNB %d]frame %d subframe %d: number of active DL slices has changed: %d-->%d\n", + LOG_I(MAC,"[eNB %d]frame %d subframe %d: number of active DL slices has changed: %d-->%d\n", module_idP, frameP, subframeP, n_active_slices_current, n_active_slices); n_active_slices_current = n_active_slices; @@ -493,7 +495,7 @@ schedule_dlsch(module_id_t module_idP, // check if the slice rb share has changed, and log the console if (slice_percentage_current[i] != slice_percentage[i]){ // new slice percentage - LOG_N(MAC,"[eNB %d][SLICE %d][DL] frame %d subframe %d: total percentage %f-->%f, slice RB percentage has changed: %f-->%f\n", + LOG_I(MAC,"[eNB %d][SLICE %d][DL] frame %d subframe %d: total percentage %f-->%f, slice RB percentage has changed: %f-->%f\n", module_idP, i, frameP, subframeP, total_slice_percentage_current, total_slice_percentage, slice_percentage_current[i], slice_percentage[i]); total_slice_percentage_current= total_slice_percentage; slice_percentage_current[i] = slice_percentage[i]; @@ -503,7 +505,7 @@ schedule_dlsch(module_id_t module_idP, // check if the slice max MCS, and log the console if (slice_maxmcs_current[i] != slice_maxmcs[i]){ if ((slice_maxmcs[i] >= 0) && (slice_maxmcs[i] < 29)){ - LOG_N(MAC,"[eNB %d][SLICE %d][DL] frame %d subframe %d: slice MAX MCS has changed: %d-->%d\n", + LOG_I(MAC,"[eNB %d][SLICE %d][DL] frame %d subframe %d: slice MAX MCS has changed: %d-->%d\n", module_idP, i, frameP, subframeP, slice_maxmcs_current[i], slice_maxmcs[i]); slice_maxmcs_current[i] = slice_maxmcs[i]; } else { @@ -514,7 +516,7 @@ schedule_dlsch(module_id_t module_idP, // check if a new scheduler, and log the console if (update_dl_scheduler_current[i] != update_dl_scheduler[i]){ - LOG_N(MAC,"[eNB %d][SLICE %d][DL] frame %d subframe %d: DL scheduler for this slice is updated: %s \n", + LOG_I(MAC,"[eNB %d][SLICE %d][DL] frame %d subframe %d: DL scheduler for this slice is updated: %s \n", module_idP, i, frameP, subframeP, dl_scheduler_type[i]); update_dl_scheduler_current[i] = update_dl_scheduler[i]; } @@ -540,7 +542,7 @@ schedule_dlsch(module_id_t module_idP, // Check for new sorting policy if (sorting_policy_current[i] != sorting_policy[i]) { - LOG_N(MAC,"[eNB %d][SLICE %d][DL] frame %d subframe %d: UE sorting policy has changed (%x-->%x)\n", + LOG_I(MAC,"[eNB %d][SLICE %d][DL] frame %d subframe %d: UE sorting policy has changed (%x-->%x)\n", module_idP, i, frameP, subframeP, sorting_policy_current[i], sorting_policy[i]); sorting_policy_current[i] = sorting_policy[i]; } @@ -595,12 +597,6 @@ schedule_ue_spec(module_id_t module_idP,slice_id_t slice_idP, int header_length_last; int header_length_total; -#if 0 - if (UE_list->head == -1) { - return; - } -#endif - start_meas(&eNB->schedule_dlsch); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME (VCD_SIGNAL_DUMPER_FUNCTIONS_SCHEDULE_DLSCH, VCD_FUNCTION_IN); @@ -632,8 +628,7 @@ schedule_ue_spec(module_id_t module_idP,slice_id_t slice_idP, break; case 6: case 7: - if ((tdd_sfa != 1) && (tdd_sfa != 2) && (tdd_sfa != 4) - && (tdd_sfa != 5)) + if ((tdd_sfa != 3) && (tdd_sfa != 4) && (tdd_sfa != 5)) return; break; case 8: @@ -642,8 +637,7 @@ schedule_ue_spec(module_id_t module_idP,slice_id_t slice_idP, return; break; case 9: - if ((tdd_sfa != 1) && (tdd_sfa != 3) && (tdd_sfa != 4) - && (tdd_sfa != 6)) + if (tdd_sfa == 0) return; break; @@ -761,18 +755,10 @@ schedule_ue_spec(module_id_t module_idP,slice_id_t slice_idP, CC_id, UE_id, subframeP, S_DL_NONE); continue; } -#if 0 - /* add "fake" DCI to have CCE_allocation_infeasible work properly for next allocations */ - /* if we don't add it, next allocations may succeed but overall allocations may fail */ - /* will be removed at the end of this function */ - add_ue_spec_dci(&eNB->common_channels[CC_id].DCI_pdu, &(char[]) { - 0}, rnti, 1, aggregation, 1, format1, 0); -#endif nb_available_rb = ue_sched_ctl->pre_nb_available_rbs[CC_id]; - if (cc->tdd_Config) harq_pid = ((frameP * 10) + subframeP) % 10; - else harq_pid = ((frameP * 10) + subframeP) & 7; + harq_pid = frame_subframe2_dl_harq_pid(cc->tdd_Config,frameP ,subframeP); round = ue_sched_ctl->round[CC_id][harq_pid]; @@ -831,7 +817,7 @@ schedule_ue_spec(module_id_t module_idP,slice_id_t slice_idP, if (cc[CC_id].tdd_Config != NULL) { UE_list->UE_template[CC_id][UE_id].DAI++; update_ul_dci(module_idP, CC_id, rnti, - UE_list->UE_template[CC_id][UE_id].DAI); + UE_list->UE_template[CC_id][UE_id].DAI, subframeP); LOG_D(MAC, "DAI update: CC_id %d subframeP %d: UE %d, DAI %d\n", CC_id, subframeP, UE_id, @@ -1004,7 +990,7 @@ schedule_ue_spec(module_id_t module_idP,slice_id_t slice_idP, if (TBS - ta_len - header_length_total - sdu_length_total - 3 > 0) { rlc_status = mac_rlc_status_ind(module_idP, rnti, module_idP, frameP, subframeP, ENB_FLAG_YES, MBMS_FLAG_NO, DCCH, TBS - ta_len - header_length_total - sdu_length_total - 3 -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif ); @@ -1019,11 +1005,62 @@ schedule_ue_spec(module_id_t module_idP,slice_id_t slice_idP, sdu_lengths[0] = mac_rlc_data_req(module_idP, rnti, module_idP, frameP, ENB_FLAG_YES, MBMS_FLAG_NO, DCCH, TBS, //not used (char *)&dlsch_buffer[0] -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif ); + pthread_mutex_lock(&rrc_release_freelist); + if((rrc_release_info.num_UEs > 0) && (rlc_am_mui.rrc_mui_num > 0)){ + uint16_t release_total = 0; + for(uint16_t release_num = 0;release_num < NUMBER_OF_UE_MAX;release_num++){ + if(rrc_release_info.RRC_release_ctrl[release_num].flag > 0){ + release_total++; + }else{ + continue; + } + + if(rrc_release_info.RRC_release_ctrl[release_num].flag == 1){ + if(rrc_release_info.RRC_release_ctrl[release_num].rnti == rnti){ + for(uint16_t mui_num = 0;mui_num < rlc_am_mui.rrc_mui_num;mui_num++){ + if(rrc_release_info.RRC_release_ctrl[release_num].rrc_eNB_mui == rlc_am_mui.rrc_mui[mui_num]){ + rrc_release_info.RRC_release_ctrl[release_num].flag = 3; + LOG_D(MAC,"DLSCH Release send:index %d rnti %x mui %d mui_num %d flag 1->3\n",release_num,rnti,rlc_am_mui.rrc_mui[mui_num],mui_num); + break; + } + } + } + } + if(rrc_release_info.RRC_release_ctrl[release_num].flag == 2){ + if(rrc_release_info.RRC_release_ctrl[release_num].rnti == rnti){ + for(uint16_t mui_num = 0;mui_num < rlc_am_mui.rrc_mui_num;mui_num++){ + if(rrc_release_info.RRC_release_ctrl[release_num].rrc_eNB_mui == rlc_am_mui.rrc_mui[mui_num]){ + rrc_release_info.RRC_release_ctrl[release_num].flag = 4; + LOG_D(MAC,"DLSCH Release send:index %d rnti %x mui %d mui_num %d flag 2->4\n",release_num,rnti,rlc_am_mui.rrc_mui[mui_num],mui_num); + break; + } + } + } + } + if(release_total >= rrc_release_info.num_UEs) + break; + } + } + pthread_mutex_unlock(&rrc_release_freelist); + + RA_t *ra = &eNB->common_channels[CC_id].ra[0]; + for (uint8_t ra_ii = 0; ra_ii < NB_RA_PROC_MAX; ra_ii++) { + if((ra[ra_ii].rnti == rnti) && (ra[ra_ii].state == MSGCRNTI)){ + for(uint16_t mui_num = 0;mui_num < rlc_am_mui.rrc_mui_num;mui_num++){ + if(ra[ra_ii].crnti_rrc_mui == rlc_am_mui.rrc_mui[mui_num]){ + ra[ra_ii].crnti_harq_pid = harq_pid; + ra[ra_ii].state = MSGCRNTI_ACK; + break; + } + } + } + } + T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), T_INT(harq_pid), T_INT(DCCH), @@ -1062,7 +1099,7 @@ schedule_ue_spec(module_id_t module_idP,slice_id_t slice_idP, if (TBS - ta_len - header_length_total - sdu_length_total - 3 > 0) { rlc_status = mac_rlc_status_ind(module_idP, rnti, module_idP, frameP, subframeP, ENB_FLAG_YES, MBMS_FLAG_NO, DCCH + 1, TBS - ta_len - header_length_total - sdu_length_total - 3 -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif ); @@ -1078,7 +1115,7 @@ schedule_ue_spec(module_id_t module_idP,slice_id_t slice_idP, sdu_lengths[num_sdus] += mac_rlc_data_req(module_idP, rnti, module_idP, frameP, ENB_FLAG_YES, MBMS_FLAG_NO, DCCH + 1, TBS, //not used (char *)&dlsch_buffer[sdu_length_total] -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif ); @@ -1133,7 +1170,7 @@ schedule_ue_spec(module_id_t module_idP,slice_id_t slice_idP, MBMS_FLAG_NO, lcid, TBS - ta_len - header_length_total - sdu_length_total - 3 -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif ); @@ -1151,7 +1188,7 @@ schedule_ue_spec(module_id_t module_idP,slice_id_t slice_idP, sdu_lengths[num_sdus] = mac_rlc_data_req(module_idP, rnti, module_idP, frameP, ENB_FLAG_YES, MBMS_FLAG_NO, lcid, TBS, //not used (char *)&dlsch_buffer[sdu_length_total] -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif ); @@ -1315,12 +1352,6 @@ schedule_ue_spec(module_id_t module_idP,slice_id_t slice_idP, dlsch_buffer, sdu_length_total); // memcpy(RC.mac[0].DLSCH_pdu[0][0].payload[0][offset],dcch_buffer,sdu_lengths[0]); -#if 0 - // fill remainder of DLSCH with random data - for (j = 0; j < (TBS - sdu_length_total - offset); j++) { - UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0][offset + sdu_length_total + j] = (char) (taus() & 0xff); - } -#endif // fill remainder of DLSCH with 0 for (j = 0; j < (TBS - sdu_length_total - offset); j++) { UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0][offset + sdu_length_total + j] = 0; @@ -1367,18 +1398,18 @@ schedule_ue_spec(module_id_t module_idP,slice_id_t slice_idP, if (cc[CC_id].tdd_Config != NULL) { // TDD UE_list->UE_template[CC_id][UE_id].DAI++; update_ul_dci(module_idP, CC_id, rnti, - UE_list->UE_template[CC_id][UE_id]. - DAI); + UE_list->UE_template[CC_id][UE_id].DAI, + subframeP); } // do PUCCH power control // this is the normalized RX power eNB_UE_stats = &UE_list->eNB_UE_stats[CC_id][UE_id]; - /* TODO: fix how we deal with power, unit is not dBm, it's special from nfapi */ - normalized_rx_power = ue_sched_ctl->pucch1_snr[CC_id]; - target_rx_power = 208; - + /* unit is not dBm, it's special from nfapi */ + // converting to dBm: ToDo: Noise power hard coded to 30 + normalized_rx_power = (5*ue_sched_ctl->pucch1_snr[CC_id]-640)/10+30; + target_rx_power= eNB->puCch10xSnr/10 + 30; // this assumes accumulated tpc // make sure that we are only sending a tpc update once a frame, otherwise the control loop will freak out int32_t framex10psubframe = UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_frame * 10 + UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_subframe; @@ -1582,8 +1613,7 @@ fill_DLSCH_dci(module_id_t module_idP, // clear scheduling flag eNB_dlsch_info[module_idP][CC_id][UE_id].status = S_DL_WAITING; rnti = UE_RNTI(module_idP, UE_id); - if (cc->tdd_Config) harq_pid = ((frameP * 10) + subframeP) % 10; - else harq_pid = ((frameP * 10) + subframeP) & 7; + harq_pid = frame_subframe2_dl_harq_pid(cc->tdd_Config,frameP ,subframeP); nb_rb = UE_list->UE_template[CC_id][UE_id].nb_rb[harq_pid]; /// Synchronizing rballoc with rballoc_sub @@ -1662,12 +1692,12 @@ unsigned char *get_dlsch_sdu(module_id_t module_idP, //------------------------------------------------------------------------------ void update_ul_dci(module_id_t module_idP, - uint8_t CC_idP, rnti_t rntiP, uint8_t daiP) + uint8_t CC_idP, rnti_t rntiP, uint8_t daiP, sub_frame_t subframe) //------------------------------------------------------------------------------ { nfapi_hi_dci0_request_t *HI_DCI0_req = - &RC.mac[module_idP]->HI_DCI0_req[CC_idP]; + &RC.mac[module_idP]->HI_DCI0_req[CC_idP][subframe]; nfapi_hi_dci0_request_pdu_t *hi_dci0_pdu = &HI_DCI0_req->hi_dci0_request_body.hi_dci0_pdu_list[0]; COMMON_channels_t *cc = &RC.mac[module_idP]->common_channels[CC_idP]; @@ -1676,7 +1706,7 @@ update_ul_dci(module_id_t module_idP, if (cc->tdd_Config != NULL) { // TDD for (i = 0; - i hi_dci0_request_body.number_of_dci + HI_DCI0_req->hi_dci0_request_body.number_of_dci; + i hi_dci0_request_body.number_of_dci + HI_DCI0_req->hi_dci0_request_body.number_of_hi; i++) { if ((hi_dci0_pdu[i].pdu_type == NFAPI_HI_DCI0_DCI_PDU_TYPE) && @@ -1750,7 +1780,7 @@ set_ue_dai(sub_frame_t subframeP, default: UE_list->UE_template[CC_id][UE_id].DAI = 0; - LOG_N(MAC, "unknow TDD config %d\n", tdd_config); + LOG_I(MAC, "unknow TDD config %d\n", tdd_config); break; } } @@ -1815,21 +1845,9 @@ void schedule_PCH(module_id_t module_idP,frame_t frameP,sub_frame_t subframeP) LOG_D(MAC,"[eNB %d] Frame %d subframe %d: PCCH->PCH CC_id %d UE_id %d, Received %d bytes \n", module_idP, frameP, subframeP, CC_id,i, pcch_sdu_length); #ifdef FORMAT1C //NO SIB - if ((subframeP == 1 || subframeP == 2 || subframeP == 4 || subframeP == 6 || subframeP == 9) || + if ((subframeP == 0 || subframeP == 1 || subframeP == 2 || subframeP == 4 || subframeP == 6 || subframeP == 9) || (subframeP == 5 && ((frameP % 2) != 0 && (frameP % 8) != 1))) { switch (n_rb_dl) { -#if 0 - case 6: - n_gap = n_rb_dl/2; /* expect: 3 */ - n_vrb_dl = 2*((n_gap < (n_rb_dl - n_gap)) ? n_gap : (n_rb_dl - n_gap));; /* expect: 6 */ - first_rb = 0; - break; - case 15: - n_gap = GAP_MAP[2][0]; /* expect: 8 */ - n_vrb_dl = 2*((n_gap < (n_rb_dl - n_gap)) ? n_gap : (n_rb_dl - n_gap)); /* expect: 14 */ - first_rb = 6; - break; -#endif case 25: n_gap = GAP_MAP[3][0]; /* expect: 12 */ n_vrb_dl = 2*((n_gap < (n_rb_dl - n_gap)) ? n_gap : (n_rb_dl - n_gap)); /* expect: 24 */ @@ -1856,18 +1874,6 @@ void schedule_PCH(module_id_t module_idP,frame_t frameP,sub_frame_t subframeP) } } else if (subframeP == 5 && ((frameP % 2) == 0 || (frameP % 8) == 1)) { // SIB + paging switch (n_rb_dl) { -#if 0 - case 6: - n_gap = n_rb_dl/2; /* expect: 3 */ - n_vrb_dl = 2*((n_gap < (n_rb_dl - n_gap)) ? n_gap : (n_rb_dl - n_gap));; /* expect: 6 */ - first_rb = 0; - break; - case 15: - n_gap = GAP_MAP[2][0]; /* expect: 8 */ - n_vrb_dl = 2*((n_gap < (n_rb_dl - n_gap)) ? n_gap : (n_rb_dl - n_gap)); /* expect: 14 */ - first_rb = 10; - break; -#endif case 25: n_gap = GAP_MAP[3][0]; /* expect: 12 */ n_vrb_dl = 2*((n_gap < (n_rb_dl - n_gap)) ? n_gap : (n_rb_dl - n_gap)); /* expect: 24 */ @@ -1934,7 +1940,7 @@ void schedule_PCH(module_id_t module_idP,frame_t frameP,sub_frame_t subframeP) } #else //NO SIB - if ((subframeP == 1 || subframeP == 2 || subframeP == 4 || subframeP == 6 || subframeP == 9) || + if ((subframeP == 0 || subframeP == 1 || subframeP == 2 || subframeP == 4 || subframeP == 6 || subframeP == 9) || (subframeP == 5 && ((frameP % 2) != 0 && (frameP % 8) != 1))) { switch (n_rb_dl) { case 25: @@ -2026,6 +2032,10 @@ void schedule_PCH(module_id_t module_idP,frame_t frameP,sub_frame_t subframeP) LOG_D(MAC,"Frame %d: Subframe %d : Adding common DCI for P_RNTI\n", frameP,subframeP); dl_req->number_dci++; dl_req->number_pdu++; + dl_req->tl.tag = NFAPI_DL_CONFIG_REQUEST_BODY_TAG; + eNB->DL_req[CC_id].sfn_sf = frameP<<4 | subframeP; + eNB->DL_req[CC_id].header.message_id = NFAPI_DL_CONFIG_REQUEST; + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; memset((void*)dl_config_pdu,0,sizeof(nfapi_dl_config_request_pdu_t)); dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; @@ -2066,6 +2076,7 @@ void schedule_PCH(module_id_t module_idP,frame_t frameP,sub_frame_t subframeP) TX_req->num_segments = 1; TX_req->segments[0].segment_length = pcch_sdu_length; TX_req->segments[0].segment_data = cc[CC_id].PCCH_pdu.payload; + eNB->TX_req[CC_id].tx_request_body.tl.tag = NFAPI_TX_REQUEST_BODY_TAG; eNB->TX_req[CC_id].tx_request_body.number_of_pdus++; } else { LOG_E(MAC,"[eNB %d] CCid %d Frame %d, subframe %d : Cannot add DCI 1A/1C for Paging\n",module_idP, CC_id, frameP, subframeP); diff --git a/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c b/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c new file mode 100644 index 0000000000..1acf657220 --- /dev/null +++ b/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c @@ -0,0 +1,3038 @@ +/* + * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The OpenAirInterface Software Alliance licenses this file to You under + * the OAI Public License, Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.openairinterface.org/?page_id=698 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *------------------------------------------------------------------------------- + * For more information about the OpenAirInterface (OAI) Software Alliance: + * contact@openairinterface.org + */ + +/*! \file eNB_scheduler_fairRR.h + * \brief eNB scheduler fair round robin + * \author Masayuki Harada + * \date 2018 + * \email masayuki.harada@jp.fujitsu.com + * \version 1.0 + * @ingroup _mac + */ + +#define _GNU_SOURCE +#include + +#include "assertions.h" + +#include "PHY/phy_extern.h" +#include "PHY/LTE_TRANSPORT/transport_common_proto.h" +#include "SIMULATION/TOOLS/sim.h" +#include "LAYER2/MAC/mac_proto.h" +#include "LAYER2/MAC/mac_extern.h" +#include "LAYER2/MAC/eNB_scheduler_fairRR.h" +#include "common/utils/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" +#include "UTIL/OPT/opt.h" +#include "OCG.h" +#include "OCG_extern.h" +#include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h" +#include "rlc.h" + +#include "T.h" + +extern uint8_t nfapi_mode; +#ifdef PHY_TX_THREAD +extern volatile int16_t phy_tx_txdataF_end; +extern int oai_exit; +#endif +extern uint16_t sfnsf_add_subframe(uint16_t frameP, uint16_t subframeP, int offset); +extern void add_subframe(uint16_t *frameP, uint16_t *subframeP, int offset); + +/* internal vars */ +DLSCH_UE_SELECT dlsch_ue_select[MAX_NUM_CCs]; +int last_dlsch_ue_id[MAX_NUM_CCs] = {-1}; +int last_ulsch_ue_id[MAX_NUM_CCs] = {-1}; + +#if defined(PRE_SCD_THREAD) +uint16_t pre_nb_rbs_required[2][MAX_NUM_CCs][NUMBER_OF_UE_MAX]; +uint8_t dlsch_ue_select_tbl_in_use; +uint8_t new_dlsch_ue_select_tbl_in_use; +boolean_t pre_scd_activeUE[NUMBER_OF_UE_MAX]; +eNB_UE_STATS pre_scd_eNB_UE_stats[MAX_NUM_CCs][NUMBER_OF_UE_MAX]; +#endif + +#define DEBUG_eNB_SCHEDULER 1 +#define DEBUG_HEADER_PARSING 1 +//#define DEBUG_PACKET_TRACE 1 + +void set_dl_ue_select_msg2(int CC_idP, uint16_t nb_rb, int UE_id, rnti_t rnti) { + dlsch_ue_select[CC_idP].list[dlsch_ue_select[CC_idP].ue_num].ue_priority = SCH_DL_MSG2; + dlsch_ue_select[CC_idP].list[dlsch_ue_select[CC_idP].ue_num].nb_rb = nb_rb; + dlsch_ue_select[CC_idP].list[dlsch_ue_select[CC_idP].ue_num].UE_id = UE_id; + dlsch_ue_select[CC_idP].list[dlsch_ue_select[CC_idP].ue_num].rnti = rnti; + dlsch_ue_select[CC_idP].ue_num++; +} +void set_dl_ue_select_msg4(int CC_idP, uint16_t nb_rb, int UE_id, rnti_t rnti) { + dlsch_ue_select[CC_idP].list[dlsch_ue_select[CC_idP].ue_num].ue_priority = SCH_DL_MSG4; + dlsch_ue_select[CC_idP].list[dlsch_ue_select[CC_idP].ue_num].nb_rb = nb_rb; + dlsch_ue_select[CC_idP].list[dlsch_ue_select[CC_idP].ue_num].UE_id = UE_id; + dlsch_ue_select[CC_idP].list[dlsch_ue_select[CC_idP].ue_num].rnti = rnti; + dlsch_ue_select[CC_idP].ue_num++; +} +#if defined(PRE_SCD_THREAD) +inline uint16_t search_rbs_required(uint16_t mcs, uint16_t TBS,uint16_t NB_RB, uint16_t step_size){ + uint16_t nb_rb,i_TBS,tmp_TBS; + i_TBS=get_I_TBS(mcs); + for(nb_rb=step_size;nb_rb>3; + if(TBScommon_channels[CC_id].mib->message.dl_Bandwidth); + if(N_RB_DL==50) step_size=3; + if(N_RB_DL==100) step_size=4; + memset(nb_rbs_required, 0, sizeof(uint16_t)*MAX_NUM_CCs*NUMBER_OF_UE_MAX); + UE_list_t *UE_list = &RC.mac[module_idP]->UE_list; + + for (UE_id = 0; UE_id dlsch_mcs1 = cqi_to_mcs[UE_list->UE_sched_ctrl[UE_id].dl_cqi[CC_id]]; + + + if (UE_template.dl_buffer_total > 0) { + nb_rbs_required[CC_id][UE_id] = search_rbs_required(eNB_UE_stats->dlsch_mcs1, UE_template.dl_buffer_total, N_RB_DL, step_size); + } + } +} +#endif + +int cc_id_end(uint8_t *cc_id_flag ) +{ + int end_flag = 1; + for (int CC_id=0;CC_idcommon_channels; + UE_list_t *UE_list = &eNB->UE_list; + UE_sched_ctrl *ue_sched_ctl; + uint8_t CC_id; + int UE_id; + unsigned char round = 0; + unsigned char harq_pid = 0; + rnti_t rnti; + uint16_t i; + unsigned char aggregation; + int format_flag; + nfapi_dl_config_request_body_t *DL_req; + nfapi_dl_config_request_pdu_t *dl_config_pdu; + uint16_t dlsch_ue_max_num[MAX_NUM_CCs] = {0}; + uint16_t saved_dlsch_dci[MAX_NUM_CCs] = {0}; + uint8_t end_flag[MAX_NUM_CCs] = {0}; + + // Initialization + for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { + dlsch_ue_max_num[CC_id] = (uint16_t)RC.rrc[module_idP]->configuration.ue_multiple_max[CC_id]; + + // save origin DL PDU number + DL_req = &eNB->DL_req[CC_id].dl_config_request_body; + saved_dlsch_dci[CC_id] = DL_req->number_pdu; + } + + // Insert DLSCH(retransmission) UE into selected UE list + for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { + if (mbsfn_flag[CC_id]>0) { + continue; + } + + DL_req = &eNB->DL_req[CC_id].dl_config_request_body; + for (UE_id = 0; UE_id < NUMBER_OF_UE_MAX; UE_id++) { + if (UE_list->active[UE_id] == FALSE) { + continue; + } + + rnti = UE_RNTI(module_idP, UE_id); + if (rnti == NOT_A_RNTI) { + continue; + } + + if(mac_eNB_get_rrc_status(module_idP,rnti) < RRC_CONNECTED){ + continue; + } + + ue_sched_ctl = &UE_list->UE_sched_ctrl[UE_id]; + harq_pid = frame_subframe2_dl_harq_pid(cc[CC_id].tdd_Config,frameP ,subframeP); + + round = ue_sched_ctl->round[CC_id][harq_pid]; + if (round != 8) { // retransmission + if(UE_list->UE_template[CC_id][UE_id].nb_rb[harq_pid] == 0){ + continue; + } + switch (get_tmode(module_idP, CC_id, UE_id)) { + case 1: + case 2: + case 7: + aggregation = get_aggregation(get_bw_index(module_idP, CC_id), + ue_sched_ctl->dl_cqi[CC_id], + format1); + break; + case 3: + aggregation = get_aggregation(get_bw_index(module_idP,CC_id), + ue_sched_ctl->dl_cqi[CC_id], + format2A); + break; + default: + LOG_W(MAC,"Unsupported transmission mode %d\n", get_tmode(module_idP,CC_id,UE_id)); + aggregation = 2; + break; + } + format_flag = 1; + if (!CCE_allocation_infeasible(module_idP, + CC_id, + format_flag, + subframeP, + aggregation, + rnti)) { + dl_config_pdu = &DL_req->dl_config_pdu_list[DL_req->number_pdu]; + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti = rnti; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type = (format_flag == 0)?2:1; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level = aggregation; + DL_req->number_pdu++; + + nb_rbs_required[CC_id][UE_id] = UE_list->UE_template[CC_id][UE_id].nb_rb[harq_pid]; + // Insert DLSCH(retransmission) UE into selected UE list + dlsch_ue_select[CC_id].list[dlsch_ue_select[CC_id].ue_num].UE_id = UE_id; + dlsch_ue_select[CC_id].list[dlsch_ue_select[CC_id].ue_num].ue_priority = SCH_DL_RETRANS; + dlsch_ue_select[CC_id].list[dlsch_ue_select[CC_id].ue_num].rnti = rnti; + dlsch_ue_select[CC_id].list[dlsch_ue_select[CC_id].ue_num].nb_rb = nb_rbs_required[CC_id][UE_id]; + dlsch_ue_select[CC_id].ue_num++; + if (dlsch_ue_select[CC_id].ue_num == dlsch_ue_max_num[CC_id]) { + end_flag[CC_id] = 1; + break; + } + } else { + if (cc[CC_id].tdd_Config != NULL) { //TDD + set_ue_dai (subframeP, + UE_id, + CC_id, + cc[CC_id].tdd_Config->subframeAssignment, + UE_list); + // update UL DAI after DLSCH scheduling + set_ul_DAI(module_idP,UE_id,CC_id,frameP,subframeP); + } + + add_ue_dlsch_info(module_idP, + CC_id, + UE_id, + subframeP, + S_DL_NONE); + end_flag[CC_id] = 1; + break; + } + } + } + } + if(cc_id_end(end_flag) == 1){ + for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { + DL_req = &eNB->DL_req[CC_id].dl_config_request_body; + DL_req->number_pdu = saved_dlsch_dci[CC_id]; + } + return; + } + + // Insert DLSCH(first transmission) UE into selected UE list (UE_id > last_dlsch_ue_id[CC_id]) + for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { + if (mbsfn_flag[CC_id]>0) { + continue; + } + + DL_req = &eNB->DL_req[CC_id].dl_config_request_body; + for (UE_id = (last_dlsch_ue_id[CC_id]+1); UE_id active[UE_id] == FALSE) { + continue; + } + + rnti = UE_RNTI(module_idP,UE_id); + if (rnti == NOT_A_RNTI) + continue; + + if(mac_eNB_get_rrc_status(module_idP,rnti) < RRC_CONNECTED){ + continue; + } + + ue_sched_ctl = &UE_list->UE_sched_ctrl[UE_id]; + for(i = 0;iround[CC_id][harq_pid]; + if (round == 8) { + if (nb_rbs_required[CC_id][UE_id] == 0) { + continue; + } + switch (get_tmode(module_idP, CC_id, UE_id)) { + case 1: + case 2: + case 7: + aggregation = get_aggregation(get_bw_index(module_idP, CC_id), + ue_sched_ctl->dl_cqi[CC_id], + format1); + break; + case 3: + aggregation = get_aggregation(get_bw_index(module_idP,CC_id), + ue_sched_ctl->dl_cqi[CC_id], + format2A); + break; + default: + LOG_W(MAC,"Unsupported transmission mode %d\n", get_tmode(module_idP,CC_id,UE_id)); + aggregation = 2; + break; + } + format_flag = 1; + if (!CCE_allocation_infeasible(module_idP, + CC_id, + format_flag, + subframeP, + aggregation, + rnti)) { + dl_config_pdu = &DL_req->dl_config_pdu_list[DL_req->number_pdu]; + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti = rnti; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type = (format_flag == 0)?2:1; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level = aggregation; + DL_req->number_pdu++; + + // Insert DLSCH(first transmission) UE into selected selected UE list + dlsch_ue_select[CC_id].list[dlsch_ue_select[CC_id].ue_num].ue_priority = SCH_DL_FIRST; + dlsch_ue_select[CC_id].list[dlsch_ue_select[CC_id].ue_num].nb_rb = nb_rbs_required[CC_id][UE_id]; + dlsch_ue_select[CC_id].list[dlsch_ue_select[CC_id].ue_num].UE_id = UE_id; + dlsch_ue_select[CC_id].list[dlsch_ue_select[CC_id].ue_num].rnti = rnti; + dlsch_ue_select[CC_id].ue_num++; + + if (dlsch_ue_select[CC_id].ue_num == dlsch_ue_max_num[CC_id]) { + end_flag[CC_id] = 1; + break; + } + }else { + if (cc[CC_id].tdd_Config != NULL) { //TDD + set_ue_dai (subframeP, + UE_id, + CC_id, + cc[CC_id].tdd_Config->subframeAssignment, + UE_list); + // update UL DAI after DLSCH scheduling + set_ul_DAI(module_idP,UE_id,CC_id,frameP,subframeP); + } + add_ue_dlsch_info(module_idP, + CC_id, + UE_id, + subframeP, + S_DL_NONE); + end_flag[CC_id] = 1; + break; + } + } + } + } + if(cc_id_end(end_flag) == 1){ + for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { + DL_req = &eNB->DL_req[CC_id].dl_config_request_body; + DL_req->number_pdu = saved_dlsch_dci[CC_id]; + } + return; + } + + // Insert DLSCH(first transmission) UE into selected UE list (UE_id <= last_dlsch_ue_id[CC_id]) + for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { + if (mbsfn_flag[CC_id]>0) { + continue; + } + + DL_req = &eNB->DL_req[CC_id].dl_config_request_body; + for (UE_id = 0; UE_id <= last_dlsch_ue_id[CC_id]; UE_id++) { + if(end_flag[CC_id] == 1){ + break; + } + + if (UE_list->active[UE_id] == FALSE) { + continue; + } + + rnti = UE_RNTI(module_idP,UE_id); + if (rnti == NOT_A_RNTI) + continue; + + if(mac_eNB_get_rrc_status(module_idP,rnti) < RRC_CONNECTED){ + continue; + } + + ue_sched_ctl = &UE_list->UE_sched_ctrl[UE_id]; + for(i = 0;iround[CC_id][harq_pid]; + if (round == 8) { + if (nb_rbs_required[CC_id][UE_id] == 0) { + continue; + } + switch (get_tmode(module_idP, CC_id, UE_id)) { + case 1: + case 2: + case 7: + aggregation = get_aggregation(get_bw_index(module_idP, CC_id), + ue_sched_ctl->dl_cqi[CC_id], + format1); + break; + case 3: + aggregation = get_aggregation(get_bw_index(module_idP,CC_id), + ue_sched_ctl->dl_cqi[CC_id], + format2A); + break; + default: + LOG_W(MAC,"Unsupported transmission mode %d\n", get_tmode(module_idP,CC_id,UE_id)); + aggregation = 2; + break; + } + format_flag = 1; + if (!CCE_allocation_infeasible(module_idP, + CC_id, + format_flag, + subframeP, + aggregation, + rnti)) { + dl_config_pdu = &DL_req->dl_config_pdu_list[DL_req->number_pdu]; + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti = rnti; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type = (format_flag == 0)?2:1; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level = aggregation; + DL_req->number_pdu++; + + // Insert DLSCH(first transmission) UE into selected selected UE list + dlsch_ue_select[CC_id].list[dlsch_ue_select[CC_id].ue_num].ue_priority = SCH_DL_FIRST; + dlsch_ue_select[CC_id].list[dlsch_ue_select[CC_id].ue_num].nb_rb = nb_rbs_required[CC_id][UE_id]; + dlsch_ue_select[CC_id].list[dlsch_ue_select[CC_id].ue_num].UE_id = UE_id; + dlsch_ue_select[CC_id].list[dlsch_ue_select[CC_id].ue_num].rnti = rnti; + dlsch_ue_select[CC_id].ue_num++; + + if (dlsch_ue_select[CC_id].ue_num == dlsch_ue_max_num[CC_id]) { + end_flag[CC_id] = 1; + break; + } + } else { + if (cc[CC_id].tdd_Config != NULL) { //TDD + set_ue_dai (subframeP, + UE_id, + CC_id, + cc[CC_id].tdd_Config->subframeAssignment, + UE_list); + // update UL DAI after DLSCH scheduling + set_ul_DAI(module_idP,UE_id,CC_id,frameP,subframeP); + } + add_ue_dlsch_info(module_idP, + CC_id, + UE_id, + subframeP, + S_DL_NONE); + end_flag[CC_id] = 1; + break; + } + } + } + } + + for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { + DL_req = &eNB->DL_req[CC_id].dl_config_request_body; + DL_req->number_pdu = saved_dlsch_dci[CC_id]; + } + return; +} + + + +// This function assigns pre-available RBS to each UE in specified sub-bands before scheduling is done +void dlsch_scheduler_pre_processor_fairRR (module_id_t Mod_id, + frame_t frameP, + sub_frame_t subframeP, + int N_RBG[MAX_NUM_CCs], + int *mbsfn_flag) +{ + + unsigned char rballoc_sub[MAX_NUM_CCs][N_RBG_MAX],harq_pid=0,Round=0; + uint16_t temp_total_rbs_count; + unsigned char temp_total_ue_count; + unsigned char MIMO_mode_indicator[MAX_NUM_CCs][N_RBG_MAX]; + int UE_id, i; + uint16_t j; + uint16_t nb_rbs_required[MAX_NUM_CCs][NUMBER_OF_UE_MAX]; + uint16_t nb_rbs_required_remaining[MAX_NUM_CCs][NUMBER_OF_UE_MAX]; +// uint16_t nb_rbs_required_remaining_1[MAX_NUM_CCs][NUMBER_OF_UE_MAX]; + uint16_t average_rbs_per_user[MAX_NUM_CCs] = {0}; + rnti_t rnti; + int min_rb_unit[MAX_NUM_CCs]; +// uint16_t r1=0; + uint8_t CC_id; + UE_list_t *UE_list = &RC.mac[Mod_id]->UE_list; + + int N_RB_DL; + int transmission_mode = 0; + UE_sched_ctrl *ue_sched_ctl; + // int rrc_status = RRC_IDLE; + COMMON_channels_t *cc; + +#ifdef TM5 + int harq_pid1 = 0; + int round1 = 0, round2 = 0; + int UE_id2; + uint16_t i1, i2, i3; + rnti_t rnti1, rnti2; + LTE_eNB_UE_stats *eNB_UE_stats1 = NULL; + LTE_eNB_UE_stats *eNB_UE_stats2 = NULL; + UE_sched_ctrl *ue_sched_ctl1, *ue_sched_ctl2; +#endif + memset(min_rb_unit,0,sizeof(min_rb_unit)); + for (CC_id=0; CC_id 0) // If this CC is allocated for MBSFN skip it here + continue; + + + + min_rb_unit[CC_id] = get_min_rb_unit(Mod_id, CC_id); + + for (i = 0; i < NUMBER_OF_UE_MAX; i++) { + if (UE_list->active[i] != TRUE) + continue; + + UE_id = i; + // Initialize scheduling information for all active UEs + + + + dlsch_scheduler_pre_processor_reset(Mod_id, + UE_id, + CC_id, + frameP, + subframeP, + N_RBG[CC_id], + (uint16_t (*)[NUMBER_OF_UE_MAX])nb_rbs_required, + rballoc_sub, + MIMO_mode_indicator); + + } + } + +#if (!defined(PRE_SCD_THREAD)) + // Store the DLSCH buffer for each logical channel + store_dlsch_buffer(Mod_id,0, frameP, subframeP); + + + + // Calculate the number of RBs required by each UE on the basis of logical channel's buffer + assign_rbs_required(Mod_id, 0, frameP, subframeP, nb_rbs_required, + min_rb_unit); +#else + memcpy(nb_rbs_required, pre_nb_rbs_required[dlsch_ue_select_tbl_in_use] , sizeof(uint16_t)*MAX_NUM_CCs*NUMBER_OF_UE_MAX); +#endif + + dlsch_scheduler_pre_ue_select_fairRR(Mod_id,frameP,subframeP, mbsfn_flag,nb_rbs_required,dlsch_ue_select); + + for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { + average_rbs_per_user[CC_id] = 0; + cc = &RC.mac[Mod_id]->common_channels[CC_id]; + // Get total available RBS count and total UE count + N_RB_DL = to_prb(cc->mib->message.dl_Bandwidth); + temp_total_rbs_count = RC.mac[Mod_id]->eNB_stats[CC_id].available_prbs; + temp_total_ue_count = dlsch_ue_select[CC_id].ue_num; + + for (i = 0; i < dlsch_ue_select[CC_id].ue_num; i++) { + if(dlsch_ue_select[CC_id].list[i].ue_priority == SCH_DL_MSG2){ + temp_total_ue_count--; + continue; + } + if(dlsch_ue_select[CC_id].list[i].ue_priority == SCH_DL_MSG4){ + temp_total_ue_count--; + continue; + } + UE_id = dlsch_ue_select[CC_id].list[i].UE_id; + nb_rbs_required[CC_id][UE_id] = dlsch_ue_select[CC_id].list[i].nb_rb; + + average_rbs_per_user[CC_id] = (uint16_t)round((double)temp_total_rbs_count/(double)temp_total_ue_count); + if( average_rbs_per_user[CC_id] < min_rb_unit[CC_id] ){ + temp_total_ue_count--; + dlsch_ue_select[CC_id].ue_num--; + i--; + continue; + } + + rnti = dlsch_ue_select[CC_id].list[i].rnti; + + ue_sched_ctl = &UE_list->UE_sched_ctrl[UE_id]; + harq_pid = frame_subframe2_dl_harq_pid(cc->tdd_Config,frameP ,subframeP); + Round = ue_sched_ctl->round[CC_id][harq_pid]; + + //if (mac_eNB_get_rrc_status(Mod_id, rnti) < RRC_RECONFIGURED || round > 0) { + if (mac_eNB_get_rrc_status(Mod_id, rnti) < RRC_RECONFIGURED || Round != 8) { // FIXME + nb_rbs_required_remaining[CC_id][UE_id] = dlsch_ue_select[CC_id].list[i].nb_rb; + } else { + nb_rbs_required_remaining[CC_id][UE_id] = cmin(average_rbs_per_user[CC_id], dlsch_ue_select[CC_id].list[i].nb_rb); + } + + transmission_mode = get_tmode(Mod_id,CC_id,UE_id); + + LOG_T(MAC,"calling dlsch_scheduler_pre_processor_allocate .. \n "); + dlsch_scheduler_pre_processor_allocate (Mod_id, + UE_id, + CC_id, + N_RBG[CC_id], + transmission_mode, + min_rb_unit[CC_id], + N_RB_DL, + (uint16_t (*)[NUMBER_OF_UE_MAX])nb_rbs_required, + (uint16_t (*)[NUMBER_OF_UE_MAX])nb_rbs_required_remaining, + rballoc_sub, + MIMO_mode_indicator); + temp_total_rbs_count -= ue_sched_ctl->pre_nb_available_rbs[CC_id]; + temp_total_ue_count--; + + if (ue_sched_ctl->pre_nb_available_rbs[CC_id] == 0) { + dlsch_ue_select[CC_id].ue_num = i; + break; + } + + if (temp_total_rbs_count == 0) { + dlsch_ue_select[CC_id].ue_num = i+1; + break; + } + LOG_D(MAC,"DLSCH UE Select: frame %d subframe %d pre_nb_available_rbs %d(i %d UE_id %d nb_rbs_required %d nb_rbs_required_remaining %d average_rbs_per_user %d (temp_total rbs_count %d ue_num %d) available_prbs %d)\n", + frameP,subframeP,ue_sched_ctl->pre_nb_available_rbs[CC_id],i,UE_id,nb_rbs_required[CC_id][UE_id],nb_rbs_required_remaining[CC_id][UE_id], + average_rbs_per_user[CC_id],temp_total_rbs_count,temp_total_ue_count,RC.mac[Mod_id]->eNB_stats[CC_id].available_prbs); +#ifdef TM5 + // TODO: data channel TM5: to be re-visited +#endif + } + } + +#ifdef TM5 + + // This has to be revisited!!!! + for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { + i1 = 0; + i2 = 0; + i3 = 0; + + for (j = 0; j < N_RBG[CC_id]; j++) { + if (MIMO_mode_indicator[CC_id][j] == 2) { + i1 = i1 + 1; + } else if (MIMO_mode_indicator[CC_id][j] == 1) { + i2 = i2 + 1; + } else if (MIMO_mode_indicator[CC_id][j] == 0) { + i3 = i3 + 1; + } + } + + if ((i1 < N_RBG[CC_id]) && (i2 > 0) && (i3 == 0)) { + PHY_vars_eNB_g[Mod_id][CC_id]->check_for_SUMIMO_transmissions = + PHY_vars_eNB_g[Mod_id][CC_id]-> + check_for_SUMIMO_transmissions + 1; + } + + if (i3 == N_RBG[CC_id] && i1 == 0 && i2 == 0) { + PHY_vars_eNB_g[Mod_id][CC_id]->FULL_MUMIMO_transmissions = + PHY_vars_eNB_g[Mod_id][CC_id]->FULL_MUMIMO_transmissions + + 1; + } + + if((i1 < N_RBG[CC_id]) && (i3 > 0)) { + PHY_vars_eNB_g[Mod_id][CC_id]-> + check_for_MUMIMO_transmissions + 1; + } + + PHY_vars_eNB_g[Mod_id][CC_id]->check_for_total_transmissions = + PHY_vars_eNB_g[Mod_id][CC_id]->check_for_total_transmissions + + 1; + + } + +#endif + + for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { + for (i = 0; i < dlsch_ue_select[CC_id].ue_num; i++) { + if(dlsch_ue_select[CC_id].list[i].ue_priority == SCH_DL_MSG2){ + continue; + } + if(dlsch_ue_select[CC_id].list[i].ue_priority == SCH_DL_MSG4){ + continue; + } + UE_id = dlsch_ue_select[CC_id].list[i].UE_id; + ue_sched_ctl = &RC.mac[Mod_id]->UE_list.UE_sched_ctrl[UE_id]; + //PHY_vars_eNB_g[Mod_id]->mu_mimo_mode[UE_id].dl_pow_off = dl_pow_off[UE_id]; + + if (ue_sched_ctl->pre_nb_available_rbs[CC_id] > 0) { + LOG_D(MAC, + "******************DL Scheduling Information for UE%d ************************\n", + UE_id); + LOG_D(MAC, "dl power offset UE%d = %d \n", UE_id, + ue_sched_ctl->dl_pow_off[CC_id]); + LOG_D(MAC, + "***********RB Alloc for every subband for UE%d ***********\n", + UE_id); + + for (j = 0; j < N_RBG[CC_id]; j++) { + //PHY_vars_eNB_g[Mod_id]->mu_mimo_mode[UE_id].rballoc_sub[i] = rballoc_sub_UE[CC_id][UE_id][i]; + LOG_D(MAC, "RB Alloc for UE%d and Subband%d = %d\n", + UE_id, j, + ue_sched_ctl->rballoc_sub_UE[CC_id][j]); + } + + //PHY_vars_eNB_g[Mod_id]->mu_mimo_mode[UE_id].pre_nb_available_rbs = pre_nb_available_rbs[CC_id][UE_id]; + LOG_D(MAC, "Total RBs allocated for UE%d = %d\n", UE_id, + ue_sched_ctl->pre_nb_available_rbs[CC_id]); + } + } + } +} + + +//------------------------------------------------------------------------------ +void +schedule_ue_spec_fairRR(module_id_t module_idP, + frame_t frameP, sub_frame_t subframeP, int *mbsfn_flag) +//------------------------------------------------------------------------------ +{ + + + uint8_t CC_id; + int UE_id; +// unsigned char aggregation; + mac_rlc_status_resp_t rlc_status; + unsigned char header_len_dcch = 0, header_len_dcch_tmp = 0; + unsigned char header_len_dtch = 0, header_len_dtch_tmp = + 0, header_len_dtch_last = 0; + unsigned char ta_len = 0; + unsigned char sdu_lcids[NB_RB_MAX], lcid, offset, num_sdus = 0; + uint16_t nb_rb, nb_rb_temp, nb_available_rb; + uint16_t TBS, j, sdu_lengths[NB_RB_MAX], rnti, padding = + 0, post_padding = 0; + unsigned char dlsch_buffer[MAX_DLSCH_PAYLOAD_BYTES]; + unsigned char round = 0; + unsigned char harq_pid = 0; + eNB_UE_STATS *eNB_UE_stats = NULL; + uint16_t sdu_length_total = 0; + + eNB_MAC_INST *eNB = RC.mac[module_idP]; + COMMON_channels_t *cc = eNB->common_channels; + UE_list_t *UE_list = &eNB->UE_list; + // int continue_flag = 0; + int32_t normalized_rx_power, target_rx_power; + int32_t tpc = 1; + static int32_t tpc_accumulated = 0; + UE_sched_ctrl *ue_sched_ctl; + int mcs; + int i; + int min_rb_unit[MAX_NUM_CCs]; + int N_RB_DL[MAX_NUM_CCs]; + int total_nb_available_rb[MAX_NUM_CCs]; + int N_RBG[MAX_NUM_CCs]; + nfapi_dl_config_request_body_t *dl_req; + nfapi_dl_config_request_pdu_t *dl_config_pdu; + int tdd_sfa; + int ta_update; + + start_meas(&eNB->schedule_dlsch); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME + (VCD_SIGNAL_DUMPER_FUNCTIONS_SCHEDULE_DLSCH, VCD_FUNCTION_IN); + + + // for TDD: check that we have to act here, otherwise return + if (cc[0].tdd_Config) { + tdd_sfa = cc[0].tdd_Config->subframeAssignment; + switch (subframeP) { + case 0: + // always continue + break; + case 1: + return; + break; + case 2: + return; + break; + case 3: + if ((tdd_sfa != 2) && (tdd_sfa != 5)) + return; + break; + case 4: + if ((tdd_sfa != 1) && (tdd_sfa != 2) && (tdd_sfa != 4) + && (tdd_sfa != 5)) + return; + break; + case 5: + break; + case 6: + case 7: + if ((tdd_sfa != 3)&& (tdd_sfa != 4) && (tdd_sfa != 5)) + return; + break; + case 8: + if ((tdd_sfa != 2) && (tdd_sfa != 3) && (tdd_sfa != 4) + && (tdd_sfa != 5)) + return; + break; + case 9: + if (tdd_sfa == 0) + return; + break; + + } + } + + //weight = get_ue_weight(module_idP,UE_id); +// aggregation = 2; + for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { + N_RB_DL[CC_id] = to_prb(cc[CC_id].mib->message.dl_Bandwidth); + min_rb_unit[CC_id] = get_min_rb_unit(module_idP, CC_id); + // get number of PRBs less those used by common channels + total_nb_available_rb[CC_id] = N_RB_DL[CC_id]; + for (i = 0; i < N_RB_DL[CC_id]; i++) + if (cc[CC_id].vrb_map[i] != 0) + total_nb_available_rb[CC_id]--; + + N_RBG[CC_id] = to_rbg(cc[CC_id].mib->message.dl_Bandwidth); + + // store the global enb stats: + eNB->eNB_stats[CC_id].num_dlactive_UEs = UE_list->num_UEs; + eNB->eNB_stats[CC_id].available_prbs = + total_nb_available_rb[CC_id]; + eNB->eNB_stats[CC_id].total_available_prbs += + total_nb_available_rb[CC_id]; + eNB->eNB_stats[CC_id].dlsch_bytes_tx = 0; + eNB->eNB_stats[CC_id].dlsch_pdus_tx = 0; + } + + /// CALLING Pre_Processor for downlink scheduling (Returns estimation of RBs required by each UE and the allocation on sub-band) + + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_PREPROCESSOR,VCD_FUNCTION_IN); + start_meas(&eNB->schedule_dlsch_preprocessor); + dlsch_scheduler_pre_processor_fairRR(module_idP, + frameP, + subframeP, + N_RBG, + mbsfn_flag); + stop_meas(&eNB->schedule_dlsch_preprocessor); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_PREPROCESSOR,VCD_FUNCTION_OUT); + + + for (CC_id=0; CC_idDL_req[CC_id].dl_config_request_body; + + if (mbsfn_flag[CC_id]>0) + continue; + + for (i = 0; i < dlsch_ue_select[CC_id].ue_num; i++) { + if(dlsch_ue_select[CC_id].list[i].ue_priority == SCH_DL_MSG2){ + continue; + } + if(dlsch_ue_select[CC_id].list[i].ue_priority == SCH_DL_MSG4){ + continue; + } + UE_id = dlsch_ue_select[CC_id].list[i].UE_id; + rnti = UE_RNTI(module_idP,UE_id); + if (rnti==NOT_A_RNTI) { + LOG_E(MAC,"Cannot find rnti for UE_id %d (num_UEs %d)\n",UE_id,UE_list->num_UEs); + continue; + } + + eNB_UE_stats = &UE_list->eNB_UE_stats[CC_id][UE_id]; + ue_sched_ctl = &UE_list->UE_sched_ctrl[UE_id]; +/* + switch(get_tmode(module_idP,CC_id,UE_id)){ + case 1: + case 2: + case 7: + aggregation = get_aggregation(get_bw_index(module_idP,CC_id), + ue_sched_ctl->dl_cqi[CC_id], + format1); + break; + case 3: + aggregation = get_aggregation(get_bw_index(module_idP,CC_id), + ue_sched_ctl->dl_cqi[CC_id], + format2A); + break; + default: + LOG_W(MAC,"Unsupported transmission mode %d\n", get_tmode(module_idP,CC_id,UE_id)); + aggregation = 2; + break; + } +*/ + if (cc[CC_id].tdd_Config != NULL) { //TDD + set_ue_dai (subframeP, + UE_id, + CC_id, + cc[CC_id].tdd_Config->subframeAssignment, + UE_list); + // update UL DAI after DLSCH scheduling + set_ul_DAI(module_idP,UE_id,CC_id,frameP,subframeP); + } + + nb_available_rb = ue_sched_ctl->pre_nb_available_rbs[CC_id]; + + harq_pid = frame_subframe2_dl_harq_pid(cc->tdd_Config,frameP ,subframeP); + + round = ue_sched_ctl->round[CC_id][harq_pid]; + + UE_list->eNB_UE_stats[CC_id][UE_id].crnti = rnti; + UE_list->eNB_UE_stats[CC_id][UE_id].rrc_status = + mac_eNB_get_rrc_status(module_idP, rnti); + UE_list->eNB_UE_stats[CC_id][UE_id].harq_pid = harq_pid; + UE_list->eNB_UE_stats[CC_id][UE_id].harq_round = round; + + + if (UE_list->eNB_UE_stats[CC_id][UE_id].rrc_status < + RRC_CONNECTED) + continue; + + sdu_length_total = 0; + num_sdus = 0; + + /* + DevCheck(((eNB_UE_stats->dl_cqi < MIN_CQI_VALUE) || (eNB_UE_stats->dl_cqi > MAX_CQI_VALUE)), + eNB_UE_stats->dl_cqi, MIN_CQI_VALUE, MAX_CQI_VALUE); + */ + if (nfapi_mode) { + eNB_UE_stats->dlsch_mcs1 = 10;//cqi_to_mcs[ue_sched_ctl->dl_cqi[CC_id]]; + } + else { + eNB_UE_stats->dlsch_mcs1 = cqi_to_mcs[ue_sched_ctl->dl_cqi[CC_id]]; + } + eNB_UE_stats->dlsch_mcs1 = eNB_UE_stats->dlsch_mcs1; //cmin(eNB_UE_stats->dlsch_mcs1, openair_daq_vars.target_ue_dl_mcs); + + + // store stats + //UE_list->eNB_UE_stats[CC_id][UE_id].dl_cqi= eNB_UE_stats->dl_cqi; + + // initializing the rb allocation indicator for each UE + for (j = 0; j < N_RBG[CC_id]; j++) { + UE_list-> + UE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] + = 0; + } + + LOG_D(MAC, + "[eNB %d] Frame %d: Scheduling UE %d on CC_id %d (rnti %x, harq_pid %d, round %d, rb %d, cqi %d, mcs %d, rrc %d)\n", + module_idP, frameP, UE_id, CC_id, rnti, harq_pid, round, + nb_available_rb, ue_sched_ctl->dl_cqi[CC_id], + eNB_UE_stats->dlsch_mcs1, + UE_list->eNB_UE_stats[CC_id][UE_id].rrc_status); + + + + /* process retransmission */ + + if (round != 8) { + + // get freq_allocation + nb_rb = UE_list->UE_template[CC_id][UE_id].nb_rb[harq_pid]; + TBS = + get_TBS_DL(UE_list-> + UE_template[CC_id][UE_id].oldmcs1[harq_pid], + nb_rb); + + if (nb_rb <= nb_available_rb) { + if (cc[CC_id].tdd_Config != NULL) { + UE_list->UE_template[CC_id][UE_id].DAI++; + update_ul_dci(module_idP, CC_id, rnti, + UE_list->UE_template[CC_id][UE_id]. + DAI,subframeP); + LOG_D(MAC, + "DAI update: CC_id %d subframeP %d: UE %d, DAI %d\n", + CC_id, subframeP, UE_id, + UE_list->UE_template[CC_id][UE_id].DAI); + } + + if (nb_rb == ue_sched_ctl->pre_nb_available_rbs[CC_id]) { + for (j = 0; j < N_RBG[CC_id]; j++) { // for indicating the rballoc for each sub-band + UE_list->UE_template[CC_id][UE_id]. + rballoc_subband[harq_pid][j] = + ue_sched_ctl->rballoc_sub_UE[CC_id][j]; + } + } else { + nb_rb_temp = nb_rb; + j = 0; + + while ((nb_rb_temp > 0) && (j < N_RBG[CC_id])) { + if (ue_sched_ctl->rballoc_sub_UE[CC_id][j] == + 1) { + if (UE_list-> + UE_template[CC_id] + [UE_id].rballoc_subband[harq_pid][j]) + printf + ("WARN: rballoc_subband not free for retrans?\n"); + UE_list-> + UE_template[CC_id] + [UE_id].rballoc_subband[harq_pid][j] = + ue_sched_ctl->rballoc_sub_UE[CC_id][j]; + + if ((j == N_RBG[CC_id] - 1) && + ((N_RB_DL[CC_id] == 25) || + (N_RB_DL[CC_id] == 50))) { + nb_rb_temp = + nb_rb_temp - min_rb_unit[CC_id] + + 1; + } else { + nb_rb_temp = + nb_rb_temp - min_rb_unit[CC_id]; + } + } + + j = j + 1; + } + } + + nb_available_rb -= nb_rb; + /* + eNB->mu_mimo_mode[UE_id].pre_nb_available_rbs = nb_rb; + eNB->mu_mimo_mode[UE_id].dl_pow_off = ue_sched_ctl->dl_pow_off[CC_id]; + + for(j=0; jmu_mimo_mode[UE_id].rballoc_sub[j] = UE_list->UE_template[CC_id][UE_id].rballoc_subband[harq_pid][j]; + } + */ + + switch (get_tmode(module_idP, CC_id, UE_id)) { + case 1: + case 2: + case 7: + default: + LOG_D(MAC,"retransmission DL_REQ: rnti:%x\n",rnti); + + dl_config_pdu = + &dl_req->dl_config_pdu_list[dl_req-> + number_pdu]; + memset((void *) dl_config_pdu, 0, + sizeof(nfapi_dl_config_request_pdu_t)); + dl_config_pdu->pdu_type = + NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE; + dl_config_pdu->pdu_size = + (uint8_t) (2 + + sizeof(nfapi_dl_config_dci_dl_pdu)); + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.tl.tag = NFAPI_DL_CONFIG_REQUEST_DCI_DL_PDU_REL8_TAG; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8. + dci_format = NFAPI_DL_DCI_FORMAT_1; + dl_config_pdu->dci_dl_pdu. + dci_dl_pdu_rel8.aggregation_level = + get_aggregation(get_bw_index + (module_idP, CC_id), + ue_sched_ctl->dl_cqi[CC_id], + format1); + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti = + rnti; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type = 1; // CRNTI : see Table 4-10 from SCF082 - nFAPI specifications + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.transmission_power = 6000; // equal to RS power + + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8. + harq_process = harq_pid; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.tpc = 1; // dont adjust power when retransmitting + dl_config_pdu->dci_dl_pdu. + dci_dl_pdu_rel8.new_data_indicator_1 = + UE_list->UE_template[CC_id][UE_id]. + oldNDI[harq_pid]; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_1 = + UE_list->UE_template[CC_id][UE_id]. + oldmcs1[harq_pid]; + dl_config_pdu->dci_dl_pdu. + dci_dl_pdu_rel8.redundancy_version_1 = + round & 3; + + if (cc[CC_id].tdd_Config != NULL) { //TDD + dl_config_pdu->dci_dl_pdu. + dci_dl_pdu_rel8.downlink_assignment_index = + (UE_list->UE_template[CC_id][UE_id].DAI - + 1) & 3; + LOG_D(MAC, + "[eNB %d] Retransmission CC_id %d : harq_pid %d, round %d, dai %d, mcs %d\n", + module_idP, CC_id, harq_pid, round, + (UE_list->UE_template[CC_id][UE_id].DAI - + 1), + UE_list-> + UE_template[CC_id][UE_id].oldmcs1 + [harq_pid]); + } else { + LOG_D(MAC, + "[eNB %d] Retransmission CC_id %d : harq_pid %d, round %d, mcs %d\n", + module_idP, CC_id, harq_pid, round, + UE_list-> + UE_template[CC_id][UE_id].oldmcs1 + [harq_pid]); + + } + if (!CCE_allocation_infeasible + (module_idP, CC_id, 1, subframeP, + dl_config_pdu->dci_dl_pdu. + dci_dl_pdu_rel8.aggregation_level, rnti)) { + dl_req->number_dci++; + dl_req->number_pdu++; + dl_req->tl.tag = NFAPI_DL_CONFIG_REQUEST_BODY_TAG; + + eNB->DL_req[CC_id].sfn_sf = frameP<<4 | subframeP; + eNB->DL_req[CC_id].header.message_id = NFAPI_DL_CONFIG_REQUEST; + + fill_nfapi_dlsch_config(eNB, dl_req, TBS, -1 + /* retransmission, no pdu_index */ + , rnti, 0, // type 0 allocation from 7.1.6 in 36.213 + 0, // virtual_resource_block_assignment_flag, unused here + 0, // resource_block_coding, to be filled in later + getQm(UE_list->UE_template[CC_id][UE_id].oldmcs1[harq_pid]), round & 3, // redundancy version + 1, // transport blocks + 0, // transport block to codeword swap flag + cc[CC_id].p_eNB == 1 ? 0 : 1, // transmission_scheme + 1, // number of layers + 1, // number of subbands + // uint8_t codebook_index, + 4, // UE category capacity + UE_list->UE_template[CC_id][UE_id].physicalConfigDedicated->pdsch_ConfigDedicated->p_a, 0, // delta_power_offset for TM5 + 0, // ngap + 0, // nprb + cc[CC_id].p_eNB == 1 ? 1 : 2, // transmission mode + 0, //number of PRBs treated as one subband, not used here + 0 // number of beamforming vectors, not used here + ); + + LOG_D(MAC, + "Filled NFAPI configuration for DCI/DLSCH %d, retransmission round %d\n", + eNB->pdu_index[CC_id], round); + + program_dlsch_acknak(module_idP, CC_id, UE_id, + frameP, subframeP, + dl_config_pdu-> + dci_dl_pdu.dci_dl_pdu_rel8. + cce_idx); + // No TX request for retransmission (check if null request for FAPI) + } else { + LOG_W(MAC, + "Frame %d, Subframe %d: Dropping DLSCH allocation for UE %d\%x, infeasible CCE allocation\n", + frameP, subframeP, UE_id, rnti); + } + } + + + add_ue_dlsch_info(module_idP, + CC_id, UE_id, subframeP, + S_DL_SCHEDULED); + + //eNB_UE_stats->dlsch_trials[round]++; + UE_list->eNB_UE_stats[CC_id][UE_id]. + num_retransmission += 1; + UE_list->eNB_UE_stats[CC_id][UE_id].rbs_used_retx = + nb_rb; + UE_list->eNB_UE_stats[CC_id][UE_id]. + total_rbs_used_retx += nb_rb; + UE_list->eNB_UE_stats[CC_id][UE_id].dlsch_mcs1 = + eNB_UE_stats->dlsch_mcs1; + UE_list->eNB_UE_stats[CC_id][UE_id].dlsch_mcs2 = + eNB_UE_stats->dlsch_mcs1; + } else { + LOG_D(MAC, + "[eNB %d] Frame %d CC_id %d : don't schedule UE %d, its retransmission takes more resources than we have\n", + module_idP, frameP, CC_id, UE_id); + } + } else { /* This is a potentially new SDU opportunity */ + + rlc_status.bytes_in_buffer = 0; + // Now check RLC information to compute number of required RBs + // get maximum TBS size for RLC request + TBS = + get_TBS_DL(eNB_UE_stats->dlsch_mcs1, nb_available_rb); + // check first for RLC data on DCCH + // add the length for all the control elements (timing adv, drx, etc) : header + payload + + if (ue_sched_ctl->ta_timer == 0) { + ta_update = ue_sched_ctl->ta_update; + /* if we send TA then set timer to not send it for a while */ + if (ta_update != 31) + ue_sched_ctl->ta_timer = 20; + /* reset ta_update */ + ue_sched_ctl->ta_update = 31; + } else { + ta_update = 31; + } + + ta_len = (ta_update != 31) ? 2 : 0; + + header_len_dcch = 2; // 2 bytes DCCH SDU subheader + + if (TBS - ta_len - header_len_dcch > 0) { + rlc_status = mac_rlc_status_ind(module_idP, rnti, module_idP, frameP, subframeP, ENB_FLAG_YES, MBMS_FLAG_NO, DCCH, (TBS - ta_len - header_len_dcch) +#ifdef Rel14 + ,0, 0 +#endif + ); // transport block set size + + sdu_lengths[0] = 0; + + if (rlc_status.bytes_in_buffer > 0) { // There is DCCH to transmit + LOG_D(MAC, + "[eNB %d] SFN/SF %d.%d, DL-DCCH->DLSCH CC_id %d, Requesting %d bytes from RLC (RRC message)\n", + module_idP, frameP, subframeP, CC_id, + TBS - header_len_dcch); + sdu_lengths[0] = mac_rlc_data_req(module_idP, rnti, module_idP, frameP, ENB_FLAG_YES, MBMS_FLAG_NO, DCCH, TBS, //not used + (char *) + &dlsch_buffer + [0] +#ifdef Rel14 + ,0, 0 +#endif + ); + pthread_mutex_lock(&rrc_release_freelist); + if((rrc_release_info.num_UEs > 0) && (rlc_am_mui.rrc_mui_num > 0)){ + uint16_t release_total = 0; + for(uint16_t release_num = 0;release_num < NUMBER_OF_UE_MAX;release_num++){ + if(rrc_release_info.RRC_release_ctrl[release_num].flag > 0){ + release_total++; + }else{ + continue; + } + + if(rrc_release_info.RRC_release_ctrl[release_num].flag == 1){ + if(rrc_release_info.RRC_release_ctrl[release_num].rnti == rnti){ + for(uint16_t mui_num = 0;mui_num < rlc_am_mui.rrc_mui_num;mui_num++){ + if(rrc_release_info.RRC_release_ctrl[release_num].rrc_eNB_mui == rlc_am_mui.rrc_mui[mui_num]){ + rrc_release_info.RRC_release_ctrl[release_num].flag = 3; + LOG_D(MAC,"DLSCH Release send:index %d rnti %x mui %d mui_num %d flag 1->3\n",release_num,rnti,rlc_am_mui.rrc_mui[mui_num],mui_num); + break; + } + } + } + } + if(rrc_release_info.RRC_release_ctrl[release_num].flag == 2){ + if(rrc_release_info.RRC_release_ctrl[release_num].rnti == rnti){ + for(uint16_t mui_num = 0;mui_num < rlc_am_mui.rrc_mui_num;mui_num++){ + if(rrc_release_info.RRC_release_ctrl[release_num].rrc_eNB_mui == rlc_am_mui.rrc_mui[mui_num]){ + rrc_release_info.RRC_release_ctrl[release_num].flag = 4; + LOG_D(MAC,"DLSCH Release send:index %d rnti %x mui %d mui_num %d flag 2->4\n",release_num,rnti,rlc_am_mui.rrc_mui[mui_num],mui_num); + break; + } + } + } + } + if(release_total >= rrc_release_info.num_UEs) + break; + } + } + pthread_mutex_unlock(&rrc_release_freelist); + + RA_t *ra = &eNB->common_channels[CC_id].ra[0]; + for (uint8_t ra_ii = 0; ra_ii < NB_RA_PROC_MAX; ra_ii++) { + if((ra[ra_ii].rnti == rnti) && (ra[ra_ii].state == MSGCRNTI)){ + for(uint16_t mui_num = 0;mui_num < rlc_am_mui.rrc_mui_num;mui_num++){ + if(ra[ra_ii].crnti_rrc_mui == rlc_am_mui.rrc_mui[mui_num]){ + ra[ra_ii].crnti_harq_pid = harq_pid; + ra[ra_ii].state = MSGCRNTI_ACK; + break; + } + } + } + } + T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), + T_INT(CC_id), T_INT(rnti), T_INT(frameP), + T_INT(subframeP), T_INT(harq_pid), T_INT(DCCH), + T_INT(sdu_lengths[0])); + LOG_D(MAC, + "[eNB %d][DCCH] CC_id %d frame %d subframe %d UE_id %d/%x Got %d bytes bytes_in_buffer %d from release_num %d\n", + module_idP, CC_id, frameP, subframeP, UE_id, rnti, sdu_lengths[0],rlc_status.bytes_in_buffer,rrc_release_info.num_UEs); + + sdu_length_total = sdu_lengths[0]; + sdu_lcids[0] = DCCH; + UE_list->eNB_UE_stats[CC_id][UE_id]. + num_pdu_tx[DCCH] += 1; + UE_list-> + eNB_UE_stats[CC_id][UE_id].num_bytes_tx[DCCH] + += sdu_lengths[0]; + num_sdus = 1; +#ifdef DEBUG_eNB_SCHEDULER + LOG_T(MAC, + "[eNB %d][DCCH] CC_id %d Got %d bytes :", + module_idP, CC_id, sdu_lengths[0]); + + for (j = 0; j < sdu_lengths[0]; j++) { + LOG_T(MAC, "%x ", dlsch_buffer[j]); + } + + LOG_T(MAC, "\n"); +#endif + } else { + header_len_dcch = 0; + sdu_length_total = 0; + } + } + // check for DCCH1 and update header information (assume 2 byte sub-header) + if (TBS - ta_len - header_len_dcch - sdu_length_total > 0) { + rlc_status = mac_rlc_status_ind(module_idP, rnti, module_idP, frameP, subframeP, ENB_FLAG_YES, MBMS_FLAG_NO, DCCH + 1, (TBS - ta_len - header_len_dcch - sdu_length_total) +#ifdef Rel14 + ,0, 0 +#endif + ); // transport block set size less allocations for timing advance and + // DCCH SDU + sdu_lengths[num_sdus] = 0; + + if (rlc_status.bytes_in_buffer > 0) { + LOG_D(MAC, + "[eNB %d], Frame %d, DCCH1->DLSCH, CC_id %d, Requesting %d bytes from RLC (RRC message)\n", + module_idP, frameP, CC_id, + TBS - header_len_dcch - sdu_length_total); + sdu_lengths[num_sdus] += mac_rlc_data_req(module_idP, rnti, module_idP, frameP, ENB_FLAG_YES, MBMS_FLAG_NO, DCCH + 1, TBS, //not used + (char *) + &dlsch_buffer + [sdu_length_total] +#ifdef Rel14 + ,0, 0 +#endif + ); + + T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), + T_INT(CC_id), T_INT(rnti), T_INT(frameP), + T_INT(subframeP), T_INT(harq_pid), + T_INT(DCCH + 1), T_INT(sdu_lengths[num_sdus])); + + sdu_lcids[num_sdus] = DCCH1; + sdu_length_total += sdu_lengths[num_sdus]; + header_len_dcch += 2; + UE_list->eNB_UE_stats[CC_id][UE_id]. + num_pdu_tx[DCCH1] += 1; + UE_list-> + eNB_UE_stats[CC_id][UE_id].num_bytes_tx[DCCH1] + += sdu_lengths[num_sdus]; + num_sdus++; +#ifdef DEBUG_eNB_SCHEDULER + LOG_T(MAC, + "[eNB %d][DCCH1] CC_id %d Got %d bytes :", + module_idP, CC_id, sdu_lengths[num_sdus]); + + for (j = 0; j < sdu_lengths[num_sdus]; j++) { + LOG_T(MAC, "%x ", dlsch_buffer[j]); + } + + LOG_T(MAC, "\n"); +#endif + + } + } + // assume the max dtch header size, and adjust it later + header_len_dtch = 0; + header_len_dtch_last = 0; // the header length of the last mac sdu + // lcid has to be sorted before the actual allocation (similar struct as ue_list). + /* TODO limited lcid for performance */ + for (lcid = DTCH; lcid >= DTCH; lcid--) { + // TBD: check if the lcid is active + + header_len_dtch += 3; + header_len_dtch_last = 3; + LOG_D(MAC, + "[eNB %d], Frame %d, DTCH%d->DLSCH, Checking RLC status (tbs %d, len %d)\n", + module_idP, frameP, lcid, TBS, + TBS - ta_len - header_len_dcch - + sdu_length_total - header_len_dtch); + + if (TBS - ta_len - header_len_dcch - sdu_length_total - header_len_dtch > 0) { // NN: > 2 ? + rlc_status = mac_rlc_status_ind(module_idP, + rnti, + module_idP, + frameP, + subframeP, + ENB_FLAG_YES, + MBMS_FLAG_NO, + lcid, + TBS - ta_len - + header_len_dcch - + sdu_length_total - + header_len_dtch +#ifdef Rel14 + ,0, 0 +#endif + ); + + + if (rlc_status.bytes_in_buffer > 0) { + + LOG_D(MAC, + "[eNB %d][USER-PLANE DEFAULT DRB] Frame %d : DTCH->DLSCH, Requesting %d bytes from RLC (lcid %d total hdr len %d)\n", + module_idP, frameP, + TBS - header_len_dcch - + sdu_length_total - header_len_dtch, lcid, + header_len_dtch); + sdu_lengths[num_sdus] = mac_rlc_data_req(module_idP, rnti, module_idP, frameP, ENB_FLAG_YES, MBMS_FLAG_NO, lcid, TBS, //not used + (char + *) + &dlsch_buffer + [sdu_length_total] +#ifdef Rel14 + ,0, 0 +#endif + ); + T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), + T_INT(CC_id), T_INT(rnti), T_INT(frameP), + T_INT(subframeP), T_INT(harq_pid), + T_INT(lcid), T_INT(sdu_lengths[num_sdus])); + + LOG_D(MAC, + "[eNB %d][USER-PLANE DEFAULT DRB] Got %d bytes for DTCH %d \n", + module_idP, sdu_lengths[num_sdus], lcid); + sdu_lcids[num_sdus] = lcid; + sdu_length_total += sdu_lengths[num_sdus]; + UE_list-> + eNB_UE_stats[CC_id][UE_id].num_pdu_tx[lcid] + += 1; + UE_list-> + eNB_UE_stats[CC_id][UE_id].num_bytes_tx + [lcid] += sdu_lengths[num_sdus]; + if (sdu_lengths[num_sdus] < 128) { + header_len_dtch--; + header_len_dtch_last--; + } + num_sdus++; + UE_list->UE_sched_ctrl[UE_id].uplane_inactivity_timer = 0; + } // no data for this LCID + else { + header_len_dtch -= 3; + } + } // no TBS left + else { + header_len_dtch -= 3; + break; + } + } + if (header_len_dtch == 0) + header_len_dtch_last = 0; + // there is at least one SDU + // if (num_sdus > 0 ){ + if ((sdu_length_total + header_len_dcch + + header_len_dtch) > 0) { + + // Now compute number of required RBs for total sdu length + // Assume RAH format 2 + // adjust header lengths + header_len_dcch_tmp = header_len_dcch; + header_len_dtch_tmp = header_len_dtch; + if (header_len_dtch == 0) { + header_len_dcch = (header_len_dcch > 0) ? 1 : 0; //header_len_dcch; // remove length field + } else { + header_len_dtch_last -= 1; // now use it to find how many bytes has to be removed for the last MAC SDU + header_len_dtch = (header_len_dtch > 0) ? header_len_dtch - header_len_dtch_last : header_len_dtch; // remove length field for the last SDU + } + + mcs = eNB_UE_stats->dlsch_mcs1; + nb_rb = min_rb_unit[CC_id]; + TBS = get_TBS_DL(mcs, nb_rb); + + while (TBS < + (sdu_length_total + header_len_dcch + + header_len_dtch + ta_len)) { + nb_rb += min_rb_unit[CC_id]; // + + if (nb_rb > nb_available_rb) { // if we've gone beyond the maximum number of RBs + // (can happen if N_RB_DL is odd) + TBS = + get_TBS_DL(eNB_UE_stats->dlsch_mcs1, + nb_available_rb); + nb_rb = nb_available_rb; + break; + } + + TBS = get_TBS_DL(eNB_UE_stats->dlsch_mcs1, nb_rb); + } + + if (nb_rb == ue_sched_ctl->pre_nb_available_rbs[CC_id]) { + for (j = 0; j < N_RBG[CC_id]; j++) { // for indicating the rballoc for each sub-band + UE_list->UE_template[CC_id][UE_id]. + rballoc_subband[harq_pid][j] = + ue_sched_ctl->rballoc_sub_UE[CC_id][j]; + } + } else { + nb_rb_temp = nb_rb; + j = 0; + + while ((nb_rb_temp > 0) && (j < N_RBG[CC_id])) { + if (ue_sched_ctl->rballoc_sub_UE[CC_id][j] == + 1) { + UE_list-> + UE_template[CC_id] + [UE_id].rballoc_subband[harq_pid][j] = + ue_sched_ctl->rballoc_sub_UE[CC_id][j]; + + if ((j == N_RBG[CC_id] - 1) && + ((N_RB_DL[CC_id] == 25) || + (N_RB_DL[CC_id] == 50))) { + nb_rb_temp = + nb_rb_temp - min_rb_unit[CC_id] + + 1; + } else { + nb_rb_temp = + nb_rb_temp - min_rb_unit[CC_id]; + } + } + + j = j + 1; + } + } + + // decrease mcs until TBS falls below required length + while ((TBS > + (sdu_length_total + header_len_dcch + + header_len_dtch + ta_len)) && (mcs > 0)) { + mcs--; + TBS = get_TBS_DL(mcs, nb_rb); + } + + // if we have decreased too much or we don't have enough RBs, increase MCS + while ((TBS < + (sdu_length_total + header_len_dcch + + header_len_dtch + ta_len)) + && (((ue_sched_ctl->dl_pow_off[CC_id] > 0) + && (mcs < 28)) + || ((ue_sched_ctl->dl_pow_off[CC_id] == 0) + && (mcs <= 15)))) { + mcs++; + TBS = get_TBS_DL(mcs, nb_rb); + } + + LOG_D(MAC, + "dlsch_mcs before and after the rate matching = (%d, %d)\n", + eNB_UE_stats->dlsch_mcs1, mcs); + +#ifdef DEBUG_eNB_SCHEDULER + LOG_D(MAC, + "[eNB %d] CC_id %d Generated DLSCH header (mcs %d, TBS %d, nb_rb %d)\n", + module_idP, CC_id, mcs, TBS, nb_rb); + // msg("[MAC][eNB ] Reminder of DLSCH with random data %d %d %d %d \n", + // TBS, sdu_length_total, offset, TBS-sdu_length_total-offset); +#endif + + if ((TBS - header_len_dcch - header_len_dtch - + sdu_length_total - ta_len) <= 2) { + padding = + (TBS - header_len_dcch - header_len_dtch - + sdu_length_total - ta_len); + post_padding = 0; + } else { + padding = 0; + + // adjust the header len + if (header_len_dtch == 0) { + header_len_dcch = header_len_dcch_tmp; + } else { //if (( header_len_dcch==0)&&((header_len_dtch==1)||(header_len_dtch==2))) + header_len_dtch = header_len_dtch_tmp; + } + + post_padding = TBS - sdu_length_total - header_len_dcch - header_len_dtch - ta_len; // 1 is for the postpadding header + } + +#ifdef PHY_TX_THREAD + struct timespec time_req, time_rem; + time_req.tv_sec = 0; + time_req.tv_nsec = 10000; + while((!oai_exit)&&(phy_tx_txdataF_end == 0)){ + nanosleep(&time_req,&time_rem); + continue; + } +#endif + + offset = generate_dlsch_header((unsigned char *) UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0], num_sdus, //num_sdus + sdu_lengths, // + sdu_lcids, 255, // no drx + ta_update, // timing advance + NULL, // contention res id + padding, post_padding); + + //#ifdef DEBUG_eNB_SCHEDULER + if (ta_update != 31) { + LOG_D(MAC, + "[eNB %d][DLSCH] Frame %d Generate header for UE_id %d on CC_id %d: sdu_length_total %d, num_sdus %d, sdu_lengths[0] %d, sdu_lcids[0] %d => payload offset %d,timing advance value : %d, padding %d,post_padding %d,(mcs %d, TBS %d, nb_rb %d),header_dcch %d, header_dtch %d\n", + module_idP, frameP, UE_id, CC_id, + sdu_length_total, num_sdus, sdu_lengths[0], + sdu_lcids[0], offset, ta_update, padding, + post_padding, mcs, TBS, nb_rb, + header_len_dcch, header_len_dtch); + } + //#endif +#ifdef DEBUG_eNB_SCHEDULER + LOG_T(MAC, "[eNB %d] First 16 bytes of DLSCH : \n",module_idP ); + + for (i = 0; i < 16; i++) { + LOG_T(MAC, "%x.", dlsch_buffer[i]); + } + + LOG_T(MAC, "\n"); +#endif + + // cycle through SDUs and place in dlsch_buffer + memcpy(&UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0][offset],dlsch_buffer,sdu_length_total); + // memcpy(RC.mac[0].DLSCH_pdu[0][0].payload[0][offset],dcch_buffer,sdu_lengths[0]); + + // fill remainder of DLSCH with random data + for (j=0; j<(TBS-sdu_length_total-offset); j++) { + UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0][offset+sdu_length_total+j] = (char)(taus()&0xff); + } + + if (opt_enabled == 1) { + trace_pdu(1, (uint8_t *)UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0], + TBS, module_idP, 3, UE_RNTI(module_idP,UE_id), + eNB->frame, eNB->subframe,0,0); + LOG_D(OPT,"[eNB %d][DLSCH] CC_id %d Frame %d rnti %x with size %d\n", + module_idP, CC_id, frameP, UE_RNTI(module_idP,UE_id), TBS); + } + + T(T_ENB_MAC_UE_DL_PDU_WITH_DATA, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), + T_INT(harq_pid), T_BUFFER(UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0], TBS)); + + UE_list->UE_template[CC_id][UE_id].nb_rb[harq_pid] = nb_rb; + + add_ue_dlsch_info(module_idP, + CC_id, + UE_id, + subframeP, + S_DL_SCHEDULED); + // store stats + eNB->eNB_stats[CC_id].dlsch_bytes_tx+=sdu_length_total; + eNB->eNB_stats[CC_id].dlsch_pdus_tx+=1; + + UE_list->eNB_UE_stats[CC_id][UE_id].rbs_used = nb_rb; + UE_list->eNB_UE_stats[CC_id][UE_id].total_rbs_used += nb_rb; + UE_list->eNB_UE_stats[CC_id][UE_id].dlsch_mcs1=eNB_UE_stats->dlsch_mcs1; + UE_list->eNB_UE_stats[CC_id][UE_id].dlsch_mcs2=mcs; + UE_list->eNB_UE_stats[CC_id][UE_id].TBS = TBS; + + UE_list->eNB_UE_stats[CC_id][UE_id].overhead_bytes= TBS- sdu_length_total; + UE_list->eNB_UE_stats[CC_id][UE_id].total_sdu_bytes+= sdu_length_total; + UE_list->eNB_UE_stats[CC_id][UE_id].total_pdu_bytes+= TBS; + UE_list->eNB_UE_stats[CC_id][UE_id].total_num_pdus+=1; + + if (cc[CC_id].tdd_Config != NULL) { // TDD + UE_list->UE_template[CC_id][UE_id].DAI++; + update_ul_dci(module_idP,CC_id,rnti,UE_list->UE_template[CC_id][UE_id].DAI,subframeP); + } + + // do PUCCH power control + // this is the normalized RX power + eNB_UE_stats = &UE_list->eNB_UE_stats[CC_id][UE_id]; + + /* TODO: fix how we deal with power, unit is not dBm, it's special from nfapi */ + normalized_rx_power = ue_sched_ctl->pucch1_snr[CC_id]; + target_rx_power = 208; + + // this assumes accumulated tpc + // make sure that we are only sending a tpc update once a frame, otherwise the control loop will freak out + int32_t framex10psubframe = UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_frame*10+UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_subframe; + if (((framex10psubframe+10)<=(frameP*10+subframeP)) || //normal case + ((framex10psubframe>(frameP*10+subframeP)) && (((10240-framex10psubframe+frameP*10+subframeP)>=10)))) //frame wrap-around + if (ue_sched_ctl->pucch1_cqi_update[CC_id] == 1) { + ue_sched_ctl->pucch1_cqi_update[CC_id] = 0; + + UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_frame=frameP; + UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_subframe=subframeP; + + if (normalized_rx_power>(target_rx_power+4)) { + tpc = 0; //-1 + tpc_accumulated--; + } else if (normalized_rx_power<(target_rx_power-4)) { + tpc = 2; //+1 + tpc_accumulated++; + } else { + tpc = 1; //0 + } + + LOG_D(MAC,"[eNB %d] DLSCH scheduler: frame %d, subframe %d, harq_pid %d, tpc %d, accumulated %d, normalized/target rx power %d/%d\n", + module_idP,frameP, subframeP,harq_pid,tpc, + tpc_accumulated,normalized_rx_power,target_rx_power); + + } // Po_PUCCH has been updated + else { + tpc = 1; //0 + } // time to do TPC update + else { + tpc = 1; //0 + } + + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + memset((void*)dl_config_pdu,0,sizeof(nfapi_dl_config_request_pdu_t)); + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t)(2+sizeof(nfapi_dl_config_dci_dl_pdu)); + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.dci_format = NFAPI_DL_DCI_FORMAT_1; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level = get_aggregation(get_bw_index(module_idP,CC_id),ue_sched_ctl->dl_cqi[CC_id],format1); + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti = rnti; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type = 1; // CRNTI : see Table 4-10 from SCF082 - nFAPI specifications + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.transmission_power = 6000; // equal to RS power + + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.harq_process = harq_pid; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.tpc = tpc; // dont adjust power when retransmitting + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.new_data_indicator_1 = 1-UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_1 = mcs; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.redundancy_version_1 = 0; + //deactivate second codeword + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_2 = 0; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.redundancy_version_2 = 1; + if (cc[CC_id].tdd_Config != NULL) { //TDD + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.downlink_assignment_index = (UE_list->UE_template[CC_id][UE_id].DAI-1)&3; + LOG_D(MAC,"[eNB %d] Initial transmission CC_id %d : harq_pid %d, dai %d, mcs %d\n", + module_idP,CC_id,harq_pid, + (UE_list->UE_template[CC_id][UE_id].DAI-1), + mcs); + } else { + LOG_D(MAC,"[eNB %d] Initial transmission CC_id %d : harq_pid %d, mcs %d\n", + module_idP,CC_id,harq_pid,mcs); + + } + LOG_D(MAC,"Checking feasibility pdu %d (new sdu)\n",dl_req->number_pdu); + if (!CCE_allocation_infeasible(module_idP,CC_id,1,subframeP,dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level,rnti)) { + + + ue_sched_ctl->round[CC_id][harq_pid] = 0; + dl_req->number_dci++; + dl_req->number_pdu++; + dl_req->tl.tag = NFAPI_DL_CONFIG_REQUEST_BODY_TAG; + + eNB->DL_req[CC_id].sfn_sf = frameP<<4 | subframeP; + eNB->DL_req[CC_id].header.message_id = NFAPI_DL_CONFIG_REQUEST; + // Toggle NDI for next time + LOG_D(MAC,"CC_id %d Frame %d, subframeP %d: Toggling Format1 NDI for UE %d (rnti %x/%d) oldNDI %d\n", + CC_id, frameP,subframeP,UE_id, + rnti,harq_pid,UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]); + + UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]=1-UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]; + UE_list->UE_template[CC_id][UE_id].oldmcs1[harq_pid] = mcs; + UE_list->UE_template[CC_id][UE_id].oldmcs2[harq_pid] = 0; + AssertFatal(UE_list->UE_template[CC_id][UE_id].physicalConfigDedicated!=NULL,"physicalConfigDedicated is NULL\n"); + AssertFatal(UE_list->UE_template[CC_id][UE_id].physicalConfigDedicated->pdsch_ConfigDedicated!=NULL,"physicalConfigDedicated->pdsch_ConfigDedicated is NULL\n"); + + fill_nfapi_dlsch_config(eNB,dl_req, + TBS, + eNB->pdu_index[CC_id], + rnti, + 0, // type 0 allocation from 7.1.6 in 36.213 + 0, // virtual_resource_block_assignment_flag, unused here + 0, // resource_block_coding, to be filled in later + getQm(mcs), + 0, // redundancy version + 1, // transport blocks + 0, // transport block to codeword swap flag + cc[CC_id].p_eNB == 1 ? 0 : 1, // transmission_scheme + 1, // number of layers + 1, // number of subbands + // uint8_t codebook_index, + 4, // UE category capacity + UE_list->UE_template[CC_id][UE_id].physicalConfigDedicated->pdsch_ConfigDedicated->p_a, + 0, // delta_power_offset for TM5 + 0, // ngap + 0, // nprb + cc[CC_id].p_eNB == 1 ? 1 : 2, // transmission mode + 0, //number of PRBs treated as one subband, not used here + 0 // number of beamforming vectors, not used here + ); + eNB->TX_req[CC_id].sfn_sf = fill_nfapi_tx_req(&eNB->TX_req[CC_id].tx_request_body, + (frameP*10)+subframeP, + TBS, + eNB->pdu_index[CC_id], + eNB->UE_list.DLSCH_pdu[CC_id][0][(unsigned char)UE_id].payload[0]); + + LOG_D(MAC,"Filled NFAPI configuration for DCI/DLSCH/TXREQ %d, new SDU\n",eNB->pdu_index[CC_id]); + + eNB->pdu_index[CC_id]++; + program_dlsch_acknak(module_idP,CC_id,UE_id,frameP,subframeP,dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.cce_idx); + last_dlsch_ue_id[CC_id] = UE_id; + } + else { + LOG_W(MAC,"Frame %d, Subframe %d: Dropping DLSCH allocation for UE %d/%x, infeasible CCE allocations\n", + frameP,subframeP,UE_id,rnti); + } + } else { // There is no data from RLC or MAC header, so don't schedule + + } + } + + if (cc[CC_id].tdd_Config != NULL){ // TDD + set_ul_DAI(module_idP,UE_id,CC_id,frameP,subframeP); + } + + } // UE_id loop + } // CC_id loop + + + fill_DLSCH_dci_fairRR(module_idP,frameP,subframeP,mbsfn_flag); + stop_meas(&eNB->schedule_dlsch); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SCHEDULE_DLSCH,VCD_FUNCTION_OUT); + + +} + +//------------------------------------------------------------------------------ +void +fill_DLSCH_dci_fairRR( + module_id_t module_idP, + frame_t frameP, + sub_frame_t subframeP, + int* mbsfn_flagP) +//------------------------------------------------------------------------------ +{ + + // loop over all allocated UEs and compute frequency allocations for PDSCH + int UE_id = -1; + uint8_t /* first_rb, */ nb_rb=3; + rnti_t rnti; + //unsigned char *vrb_map; + uint8_t rballoc_sub[25]; + //uint8_t number_of_subbands=13; + + //unsigned char round; + unsigned char harq_pid; + int i; + int CC_id; + eNB_MAC_INST *eNB =RC.mac[module_idP]; + UE_list_t *UE_list = &eNB->UE_list; + int N_RBG; + int N_RB_DL; + COMMON_channels_t *cc; + int j; + start_meas(&eNB->fill_DLSCH_dci); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_FILL_DLSCH_DCI,VCD_FUNCTION_IN); + + for (CC_id=0; CC_id0) + continue; + + cc = &eNB->common_channels[CC_id]; + N_RBG = to_rbg(cc->mib->message.dl_Bandwidth); + N_RB_DL = to_prb(cc->mib->message.dl_Bandwidth); + + // UE specific DCIs + for (j = 0; j < dlsch_ue_select[CC_id].ue_num; j++) { + if(dlsch_ue_select[CC_id].list[j].ue_priority == SCH_DL_MSG2){ + continue; + } + if(dlsch_ue_select[CC_id].list[j].ue_priority == SCH_DL_MSG4){ + continue; + } + UE_id = dlsch_ue_select[CC_id].list[j].UE_id; + LOG_T(MAC,"CC_id %d, UE_id: %d => status %d\n",CC_id,UE_id,eNB_dlsch_info[module_idP][CC_id][UE_id].status); + + if (eNB_dlsch_info[module_idP][CC_id][UE_id].status == S_DL_SCHEDULED) { + + // clear scheduling flag + eNB_dlsch_info[module_idP][CC_id][UE_id].status = S_DL_WAITING; + rnti = UE_RNTI(module_idP,UE_id); + harq_pid = frame_subframe2_dl_harq_pid(cc->tdd_Config,frameP ,subframeP); + nb_rb = UE_list->UE_template[CC_id][UE_id].nb_rb[harq_pid]; + + + + /// Synchronizing rballoc with rballoc_sub + for(i=0; iUE_template[CC_id][UE_id].rballoc_subband[harq_pid][i]; + } + + nfapi_dl_config_request_t *DL_req = &RC.mac[module_idP]->DL_req[0]; + nfapi_dl_config_request_pdu_t* dl_config_pdu; + + for (i=0;ipdu_type == NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE)&& + (dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti == rnti) && + (dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.dci_format != 1)) { + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.resource_block_coding = allocate_prbs_sub(nb_rb,N_RB_DL,N_RBG,rballoc_sub); + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.resource_allocation_type = 0; + } + else if ((dl_config_pdu->pdu_type == NFAPI_DL_CONFIG_DLSCH_PDU_TYPE)&& + (dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti == rnti) && + (dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type==0)) { + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_block_coding = allocate_prbs_sub(nb_rb,N_RB_DL,N_RBG,rballoc_sub); + } + } + } + } + } + + stop_meas(&eNB->fill_DLSCH_dci); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME + (VCD_SIGNAL_DUMPER_FUNCTIONS_FILL_DLSCH_DCI, VCD_FUNCTION_OUT); +} + + + +void ulsch_scheduler_pre_ue_select_fairRR( + module_id_t module_idP, + frame_t frameP, + sub_frame_t subframeP, + sub_frame_t sched_subframeP, + ULSCH_UE_SELECT ulsch_ue_select[MAX_NUM_CCs]) +{ + eNB_MAC_INST *eNB=RC.mac[module_idP]; + COMMON_channels_t *cc; + int CC_id,UE_id; + int ret; + uint16_t i; + uint8_t ue_first_num[MAX_NUM_CCs]; + uint8_t first_ue_total[MAX_NUM_CCs][20]; + uint8_t first_ue_id[MAX_NUM_CCs][20]; + uint8_t ul_inactivity_num[MAX_NUM_CCs]; + uint8_t ul_inactivity_id[MAX_NUM_CCs][20]; +// LTE_DL_FRAME_PARMS *frame_parms; + uint8_t ulsch_ue_max_num[MAX_NUM_CCs]; + uint16_t saved_ulsch_dci[MAX_NUM_CCs]; + rnti_t rnti; + UE_sched_ctrl *UE_sched_ctl = NULL; + uint8_t cc_id_flag[MAX_NUM_CCs]; + uint8_t harq_pid = 0,round = 0; + UE_list_t *UE_list= &eNB->UE_list; + + + uint8_t aggregation = 2; + int format_flag; + nfapi_hi_dci0_request_body_t *HI_DCI0_req; + nfapi_hi_dci0_request_pdu_t *hi_dci0_pdu; + + + for ( CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++ ) { + //save ulsch dci number + saved_ulsch_dci[CC_id] = eNB->HI_DCI0_req[CC_id][subframeP].hi_dci0_request_body.number_of_dci; + // maximum multiplicity number + ulsch_ue_max_num[CC_id] =RC.rrc[module_idP]->configuration.ue_multiple_max[CC_id]; + + cc_id_flag[CC_id] = 0; + ue_first_num[CC_id] = 0; + ul_inactivity_num[CC_id] = 0; + + } + // UE round >0 + for ( UE_id = 0; UE_id < NUMBER_OF_UE_MAX; UE_id++ ) { + if (UE_list->active[UE_id] == FALSE) + continue; + + rnti = UE_RNTI(module_idP,UE_id); + if (rnti ==NOT_A_RNTI) + continue; + + CC_id = UE_PCCID(module_idP,UE_id); + if (UE_list->UE_template[CC_id][UE_id].configured == FALSE) + continue; + + if (UE_list->UE_sched_ctrl[UE_id].ul_out_of_sync == 1) + continue; + + // UL DCI + HI_DCI0_req = &eNB->HI_DCI0_req[CC_id][subframeP].hi_dci0_request_body; + if ( (ulsch_ue_select[CC_id].ue_num >= ulsch_ue_max_num[CC_id]) || (cc_id_flag[CC_id] == 1) ) { + cc_id_flag[CC_id] = 1; + HI_DCI0_req->number_of_dci = saved_ulsch_dci[CC_id]; + ret = cc_id_end(cc_id_flag); + if ( ret == 0 ) { + continue; + } + if ( ret == 1 ) { + return; + } + } + + cc = &eNB->common_channels[CC_id]; + //harq_pid + harq_pid = subframe2harqpid(cc,(frameP+(sched_subframePUE_sched_ctrl[UE_id].round_UL[CC_id][harq_pid]; + + if ( round > 0 ) { + hi_dci0_pdu = &HI_DCI0_req->hi_dci0_pdu_list[HI_DCI0_req->number_of_dci+HI_DCI0_req->number_of_hi]; + format_flag = 2; + if (CCE_allocation_infeasible(module_idP,CC_id,format_flag,subframeP,aggregation,rnti) == 1) { + cc_id_flag[CC_id] = 1; + continue; + } else { + hi_dci0_pdu->pdu_type = NFAPI_HI_DCI0_DCI_PDU_TYPE; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.rnti = rnti; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.aggregation_level = aggregation; + HI_DCI0_req->number_of_dci++; + + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].ue_priority = SCH_UL_RETRANS; + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].start_rb = eNB->UE_list.UE_template[CC_id][UE_id].first_rb_ul[harq_pid]; + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].nb_rb = eNB->UE_list.UE_template[CC_id][UE_id].nb_rb_ul[harq_pid]; + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].UE_id = UE_id; + ulsch_ue_select[CC_id].ue_num++; + continue; + } + } + // + int bytes_to_schedule = UE_list->UE_template[CC_id][UE_id].estimated_ul_buffer - UE_list->UE_template[CC_id][UE_id].scheduled_ul_bytes; + if (bytes_to_schedule < 0) bytes_to_schedule = 0; + + if ( UE_id > last_ulsch_ue_id[CC_id] && ((ulsch_ue_select[CC_id].ue_num+ue_first_num[CC_id]) < ulsch_ue_max_num[CC_id]) ) { + if ( bytes_to_schedule > 0 ) { + first_ue_id[CC_id][ue_first_num[CC_id]]= UE_id; + first_ue_total[CC_id][ue_first_num[CC_id]] = bytes_to_schedule; + ue_first_num[CC_id]++; + continue; + } + if ( UE_list->UE_template[CC_id][UE_id].ul_SR > 0 ) { + first_ue_id[CC_id][ue_first_num[CC_id]]= UE_id; + first_ue_total[CC_id] [ue_first_num[CC_id]] = 0; + ue_first_num[CC_id]++; + continue; + } + UE_sched_ctl = &UE_list->UE_sched_ctrl[UE_id]; + if ( ((UE_sched_ctl->ul_inactivity_timer>20)&&(UE_sched_ctl->ul_scheduled==0)) || + ((UE_sched_ctl->ul_inactivity_timer>10)&&(UE_sched_ctl->ul_scheduled==0)&&(mac_eNB_get_rrc_status(module_idP,UE_RNTI(module_idP,UE_id)) < RRC_CONNECTED))) { + first_ue_id[CC_id][ue_first_num[CC_id]]= UE_id; + first_ue_total[CC_id] [ue_first_num[CC_id]] = 0; + ue_first_num[CC_id]++; + continue; + } + /*if ( (ulsch_ue_select[CC_id].ue_num+ul_inactivity_num[CC_id] ) < ulsch_ue_max_num[CC_id] ) { + UE_sched_ctl = &UE_list->UE_sched_ctrl[UE_id]; + uint8_t ul_period = 0; + if (cc->tdd_Config) { + ul_period = 50; + } else { + ul_period = 20; + } + if ( ((UE_sched_ctl->ul_inactivity_timer>ul_period)&&(UE_sched_ctl->ul_scheduled==0)) || + ((UE_sched_ctl->ul_inactivity_timer>10)&&(UE_sched_ctl->ul_scheduled==0)&&(mac_eNB_get_rrc_status(module_idP,UE_RNTI(module_idP,UE_id)) < RRC_CONNECTED))) { + ul_inactivity_id[CC_id][ul_inactivity_num[CC_id]]= UE_id; + ul_inactivity_num[CC_id] ++; + continue; + } + }*/ + } + + } + + for ( CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++ ) { + HI_DCI0_req = &eNB->HI_DCI0_req[CC_id][subframeP].hi_dci0_request_body; + for ( int temp = 0; temp < ue_first_num[CC_id]; temp++ ) { + if ( (ulsch_ue_select[CC_id].ue_num >= ulsch_ue_max_num[CC_id]) || (cc_id_flag[CC_id] == 1) ) { + cc_id_flag[CC_id] = 1; + HI_DCI0_req->number_of_dci = saved_ulsch_dci[CC_id]; + break; + } + + hi_dci0_pdu = &HI_DCI0_req->hi_dci0_pdu_list[HI_DCI0_req->number_of_dci+HI_DCI0_req->number_of_hi]; + format_flag = 2; + rnti = UE_RNTI(module_idP,first_ue_id[CC_id][temp]); + if (CCE_allocation_infeasible(module_idP,CC_id,format_flag,subframeP,aggregation,rnti) == 1) { + cc_id_flag[CC_id] = 1; + break; + } else { + hi_dci0_pdu->pdu_type = NFAPI_HI_DCI0_DCI_PDU_TYPE; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.rnti = rnti; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.aggregation_level = aggregation; + HI_DCI0_req->number_of_dci++; + + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].ue_priority = SCH_UL_FIRST; + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].ul_total_buffer = first_ue_total[CC_id][temp]; + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].UE_id = first_ue_id[CC_id][temp]; + ulsch_ue_select[CC_id].ue_num++; + } + } + } + + for ( UE_id = 0; UE_id < NUMBER_OF_UE_MAX; UE_id++ ) { + if (UE_list->active[UE_id] == FALSE) + continue; + + rnti = UE_RNTI(module_idP,UE_id); + if (rnti ==NOT_A_RNTI) + continue; + + CC_id = UE_PCCID(module_idP,UE_id); + + if (UE_id > last_ulsch_ue_id[CC_id]) + continue; + + if (UE_list->UE_template[CC_id][UE_id].configured == FALSE) + continue; + + if (UE_list->UE_sched_ctrl[UE_id].ul_out_of_sync == 1) + continue; + + if ( (ulsch_ue_select[CC_id].ue_num >= ulsch_ue_max_num[CC_id]) || (cc_id_flag[CC_id] == 1) ) { + cc_id_flag[CC_id] = 1; + HI_DCI0_req->number_of_dci = saved_ulsch_dci[CC_id]; + ret = cc_id_end(cc_id_flag); + if ( ret == 0 ) { + continue; + } + if ( ret == 1 ) { + return; + } + } + + for(i = 0;iHI_DCI0_req[CC_id][subframeP].hi_dci0_request_body; + //SR BSR + UE_sched_ctl = &UE_list->UE_sched_ctrl[UE_id]; + + int bytes_to_schedule = UE_list->UE_template[CC_id][UE_id].estimated_ul_buffer - UE_list->UE_template[CC_id][UE_id].scheduled_ul_bytes; + if (bytes_to_schedule < 0) bytes_to_schedule = 0; + + if ( (bytes_to_schedule > 0) || (UE_list->UE_template[CC_id][UE_id].ul_SR > 0) || + ((UE_sched_ctl->ul_inactivity_timer>20)&&(UE_sched_ctl->ul_scheduled==0)) || + ((UE_sched_ctl->ul_inactivity_timer>10)&&(UE_sched_ctl->ul_scheduled==0)&&(mac_eNB_get_rrc_status(module_idP,UE_RNTI(module_idP,UE_id)) < RRC_CONNECTED)) ){ + hi_dci0_pdu = &HI_DCI0_req->hi_dci0_pdu_list[HI_DCI0_req->number_of_dci+HI_DCI0_req->number_of_hi]; + format_flag = 2; + if (CCE_allocation_infeasible(module_idP,CC_id,format_flag,subframeP,aggregation,rnti) == 1) { + cc_id_flag[CC_id] = 1; + continue; + } else { + hi_dci0_pdu->pdu_type = NFAPI_HI_DCI0_DCI_PDU_TYPE; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.rnti = rnti; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.aggregation_level = aggregation; + HI_DCI0_req->number_of_dci++; + + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].ue_priority = SCH_UL_FIRST; + if(bytes_to_schedule > 0) + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].ul_total_buffer = bytes_to_schedule; + else if(UE_list->UE_template[CC_id][UE_id].ul_SR > 0) + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].ul_total_buffer = 0; + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].UE_id = UE_id; + ulsch_ue_select[CC_id].ue_num++; + continue; + } + } + //inactivity UE +/* if ( (ulsch_ue_select[CC_id].ue_num+ul_inactivity_num[CC_id]) < ulsch_ue_max_num[CC_id] ) { + UE_sched_ctl = &UE_list->UE_sched_ctrl[UE_id]; + uint8_t ul_period = 0; + if (cc->tdd_Config) { + ul_period = 50; + } else { + ul_period = 20; + } + if ( ((UE_sched_ctl->ul_inactivity_timer>ul_period)&&(UE_sched_ctl->ul_scheduled==0)) || + ((UE_sched_ctl->ul_inactivity_timer>10)&&(UE_sched_ctl->ul_scheduled==0)&&(mac_eNB_get_rrc_status(module_idP,UE_RNTI(module_idP,UE_id)) < RRC_CONNECTED))) { + ul_inactivity_id[CC_id][ul_inactivity_num[CC_id]]= UE_id; + ul_inactivity_num[CC_id]++; + continue; + } + }*/ + } + + for ( CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++ ) { + HI_DCI0_req = &eNB->HI_DCI0_req[CC_id][subframeP].hi_dci0_request_body; + for ( int temp = 0; temp < ul_inactivity_num[CC_id]; temp++ ) { + if ( (ulsch_ue_select[CC_id].ue_num >= ulsch_ue_max_num[CC_id]) || (cc_id_flag[CC_id] == 1) ) { + HI_DCI0_req = &eNB->HI_DCI0_req[CC_id][subframeP].hi_dci0_request_body; + cc_id_flag[CC_id] = 1; + break; + } + + hi_dci0_pdu = &HI_DCI0_req->hi_dci0_pdu_list[HI_DCI0_req->number_of_dci+HI_DCI0_req->number_of_hi]; + format_flag = 2; + rnti = UE_RNTI(module_idP,ul_inactivity_id[CC_id][temp]); + if (CCE_allocation_infeasible(module_idP,CC_id,format_flag,subframeP,aggregation,rnti) == 1) { + cc_id_flag[CC_id] = 1; + continue; + } else { + hi_dci0_pdu->pdu_type = NFAPI_HI_DCI0_DCI_PDU_TYPE; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.rnti = rnti; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.aggregation_level = aggregation; + HI_DCI0_req->number_of_dci++; + + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].ue_priority = SCH_UL_INACTIVE; + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].ul_total_buffer = 0; + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].UE_id = ul_inactivity_id[CC_id][temp]; + ulsch_ue_select[CC_id].ue_num++; + } + } + HI_DCI0_req->number_of_dci = saved_ulsch_dci[CC_id]; + } + return; +} + +uint8_t find_rb_table_index(uint8_t average_rbs) +{ + int i; + for ( i = 0; i < 34; i++ ) { + if ( rb_table[i] > average_rbs ) { + return (i-1); + } + } + return i; +} + +void ulsch_scheduler_pre_processor_fairRR(module_id_t module_idP, + frame_t frameP, + sub_frame_t subframeP, + sub_frame_t sched_subframeP, + ULSCH_UE_SELECT ulsch_ue_select[MAX_NUM_CCs]) +{ + int CC_id,ulsch_ue_num; + eNB_MAC_INST *eNB = RC.mac[module_idP]; + UE_list_t *UE_list= &eNB->UE_list; + UE_TEMPLATE *UE_template = NULL; + LTE_DL_FRAME_PARMS *frame_parms = NULL; + uint8_t ue_num_temp; + uint8_t total_rbs=0; + uint8_t average_rbs; + uint16_t first_rb[MAX_NUM_CCs]; + uint8_t mcs; + uint8_t rb_table_index; + uint8_t num_pucch_rb; + uint32_t tbs; + int16_t tx_power; + int UE_id; + COMMON_channels_t *cc; + LOG_D(MAC,"In ulsch_preprocessor: ulsch ue select\n"); + //ue select + ulsch_scheduler_pre_ue_select_fairRR(module_idP,frameP,subframeP,sched_subframeP,ulsch_ue_select); + + // MCS and RB assgin + for ( CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++ ) { + cc = &RC.mac[module_idP]->common_channels[CC_id]; + frame_parms = &(RC.eNB[module_idP][CC_id]->frame_parms); + if (cc->tdd_Config) { //TDD + if (frame_parms->N_RB_UL == 25) { + num_pucch_rb = 1; + } else if (frame_parms->N_RB_UL == 50) { + num_pucch_rb = 2; + } else { + num_pucch_rb = 3; + } + } else {//FDD + if (frame_parms->N_RB_UL == 25) { + num_pucch_rb = 1; + } else { + num_pucch_rb = 2; + } + } + + first_rb[CC_id] = num_pucch_rb; + ue_num_temp = ulsch_ue_select[CC_id].ue_num; + for ( ulsch_ue_num = 0; ulsch_ue_num < ulsch_ue_select[CC_id].ue_num; ulsch_ue_num++ ) { + + UE_id = ulsch_ue_select[CC_id].list[ulsch_ue_num].UE_id; + + if (ulsch_ue_select[CC_id].list[ulsch_ue_num].ue_priority == SCH_UL_MSG3) { + first_rb[CC_id] ++; + ue_num_temp--; + continue; + } + + if (ulsch_ue_select[CC_id].list[ulsch_ue_num].ue_priority == SCH_UL_PRACH) { + first_rb[CC_id] = ulsch_ue_select[CC_id].list[ulsch_ue_num].start_rb+ulsch_ue_select[CC_id].list[ulsch_ue_num].nb_rb; + ue_num_temp--; + continue; + } + + + if (first_rb[CC_id] >= frame_parms->N_RB_UL-num_pucch_rb ) { + LOG_W(MAC,"[eNB %d] frame %d subframe %d, UE %d/%x CC %d: dropping, not enough RBs\n", + module_idP,frameP,subframeP,UE_id,UE_RNTI(CC_id,UE_id),CC_id); + break; + } + total_rbs = frame_parms->N_RB_UL-num_pucch_rb-first_rb[CC_id]; + + average_rbs = (int)round((double)total_rbs/(double)ue_num_temp); + if ( average_rbs < 3 ) { + ue_num_temp--; + ulsch_ue_num--; + ulsch_ue_select[CC_id].ue_num--; + continue; + } + if ( ulsch_ue_select[CC_id].list[ulsch_ue_num].ue_priority == SCH_UL_RETRANS ) { + if ( ulsch_ue_select[CC_id].list[ulsch_ue_num].nb_rb <= average_rbs ) { + // assigne RBS(nb_rb) + ulsch_ue_select[CC_id].list[ulsch_ue_num].start_rb = first_rb[CC_id]; + first_rb[CC_id] = first_rb[CC_id] + ulsch_ue_select[CC_id].list[ulsch_ue_num].nb_rb; + } + if ( ulsch_ue_select[CC_id].list[ulsch_ue_num].nb_rb > average_rbs ) { + if ( ulsch_ue_select[CC_id].list[ulsch_ue_num].nb_rb <= total_rbs ) { + // assigne RBS(average_rbs) + ulsch_ue_select[CC_id].list[ulsch_ue_num].start_rb = first_rb[CC_id]; + first_rb[CC_id] = first_rb[CC_id] + ulsch_ue_select[CC_id].list[ulsch_ue_num].nb_rb; + } else { + // assigne RBS(remain rbs) + ulsch_ue_select[CC_id].list[ulsch_ue_num].start_rb = first_rb[CC_id]; + rb_table_index = 2; + while(rb_table[rb_table_index] <= total_rbs){ + rb_table_index++; + } + ulsch_ue_select[CC_id].list[ulsch_ue_num].nb_rb = rb_table[rb_table_index-1]; + first_rb[CC_id] = first_rb[CC_id] + rb_table[rb_table_index-1]; + } + } + }else{ + UE_template = &UE_list->UE_template[CC_id][UE_id]; + if ( UE_list->UE_sched_ctrl[UE_id].phr_received == 1 ) { + mcs = 20; + } else { + mcs = 10; + } + if ( ulsch_ue_select[CC_id].list[ulsch_ue_num].ue_priority == SCH_UL_FIRST ) { + int bytes_to_schedule = UE_template->estimated_ul_buffer - UE_template->scheduled_ul_bytes; + if (bytes_to_schedule < 0) bytes_to_schedule = 0; + + if ( ulsch_ue_select[CC_id].list[ulsch_ue_num].ul_total_buffer > 0 ) { + rb_table_index = 2; + tbs = get_TBS_UL(mcs,rb_table[rb_table_index]); + tx_power= estimate_ue_tx_power(tbs*8,rb_table[rb_table_index],0,frame_parms->Ncp,0); + + while ( (((UE_template->phr_info - tx_power) < 0 ) || (tbs > bytes_to_schedule)) && (mcs > 3) ) { + mcs--; + tbs = get_TBS_UL(mcs,rb_table[rb_table_index]); + tx_power= estimate_ue_tx_power(tbs*8,rb_table[rb_table_index],0,frame_parms->Ncp,0); + } + + while ( (tbs < bytes_to_schedule) && (rb_table[rb_table_index]<(frame_parms->N_RB_UL-num_pucch_rb-first_rb[CC_id])) && + ((UE_template->phr_info - tx_power) > 0) && (rb_table_index < 32 )) { + rb_table_index++; + tbs = get_TBS_UL(mcs,rb_table[rb_table_index])<<3; + tx_power= estimate_ue_tx_power(tbs,rb_table[rb_table_index],0,frame_parms->Ncp,0); + } + + if ( rb_table[rb_table_index]<3 ) { + rb_table_index=2; + } + if ( rb_table[rb_table_index] <= average_rbs ) { + // assigne RBS( nb_rb) + first_rb[CC_id] = first_rb[CC_id] + rb_table[rb_table_index]; + UE_list->UE_template[CC_id][UE_id].pre_allocated_nb_rb_ul[0] = rb_table[rb_table_index]; + UE_list->UE_template[CC_id][UE_id].pre_allocated_rb_table_index_ul = rb_table_index; + UE_list->UE_template[CC_id][UE_id].pre_assigned_mcs_ul = mcs; + } + if ( rb_table[rb_table_index] > average_rbs ) { + // assigne RBS(average_rbs) + rb_table_index = find_rb_table_index(average_rbs); + if (rb_table_index>=34){ + LOG_W(MAC,"[eNB %d] frame %d subframe %d, UE %d/%x CC %d: average RBs %d > 100\n", + module_idP,frameP,subframeP,UE_id,UE_RNTI(CC_id,UE_id),CC_id,average_rbs); + break; + } + first_rb[CC_id] = first_rb[CC_id] + rb_table[rb_table_index]; + UE_list->UE_template[CC_id][UE_id].pre_allocated_nb_rb_ul[0] = rb_table[rb_table_index]; + UE_list->UE_template[CC_id][UE_id].pre_allocated_rb_table_index_ul = rb_table_index; + UE_list->UE_template[CC_id][UE_id].pre_assigned_mcs_ul = mcs; + } + }else { + // assigne RBS( 3 RBs) + first_rb[CC_id] = first_rb[CC_id] + 3; + UE_list->UE_template[CC_id][UE_id].pre_allocated_nb_rb_ul[0] = 3; + UE_list->UE_template[CC_id][UE_id].pre_allocated_rb_table_index_ul = 2; + UE_list->UE_template[CC_id][UE_id].pre_assigned_mcs_ul = 10; + } + }else if ( ulsch_ue_select[CC_id].list[ulsch_ue_num].ue_priority == SCH_UL_INACTIVE ) { + // assigne RBS( 3 RBs) + first_rb[CC_id] = first_rb[CC_id] + 3; + UE_list->UE_template[CC_id][UE_id].pre_allocated_nb_rb_ul[0] = 3; + UE_list->UE_template[CC_id][UE_id].pre_allocated_rb_table_index_ul = 2; + UE_list->UE_template[CC_id][UE_id].pre_assigned_mcs_ul = 10; + } + } + ue_num_temp--; + } + } +} + + +void +schedule_ulsch_fairRR(module_id_t module_idP, frame_t frameP, + sub_frame_t subframeP) +{ + uint16_t i; + int CC_id; + eNB_MAC_INST *mac = RC.mac[module_idP]; + COMMON_channels_t *cc; + int sched_frame=frameP; + + start_meas(&mac->schedule_ulsch); + + int sched_subframe = (subframeP+4)%10; + + cc = &mac->common_channels[0]; + int tdd_sfa; + // for TDD: check subframes where we have to act and return if nothing should be done now + if (cc->tdd_Config) { + tdd_sfa = cc->tdd_Config->subframeAssignment; + switch (subframeP) { + case 0: + if ((tdd_sfa == 0)|| + (tdd_sfa == 3)) sched_subframe = 4; + else if (tdd_sfa==6) sched_subframe = 7; + else return; + break; + case 1: + if ((tdd_sfa==0)|| + (tdd_sfa==1)) sched_subframe = 7; + else if (tdd_sfa==6) sched_subframe = 8; + else return; + break; + case 2: // Don't schedule UL in subframe 2 for TDD + return; + case 3: + if (tdd_sfa==2) sched_subframe = 7; + else return; + break; + case 4: + if (tdd_sfa==1) sched_subframe = 8; + else return; + break; + case 5: + if (tdd_sfa==0) sched_subframe = 9; + else if (tdd_sfa==6) sched_subframe = 2; + else return; + break; + case 6: + if (tdd_sfa==0 || tdd_sfa==1) sched_subframe = 2; + else if (tdd_sfa==6) sched_subframe = 3; + else return; + break; + case 7: + return; + case 8: + if ((tdd_sfa>=2) && (tdd_sfa<=5)) sched_subframe=2; + else return; + break; + case 9: + if ((tdd_sfa==1) || (tdd_sfa==3) || (tdd_sfa==4)) sched_subframe=3; + else if (tdd_sfa==6) sched_subframe=4; + else return; + break; + } + } + if (sched_subframe < subframeP) sched_frame++; + ULSCH_UE_SELECT ulsch_ue_select[MAX_NUM_CCs]; + memset(ulsch_ue_select, 0, sizeof(ulsch_ue_select)); + + LTE_DL_FRAME_PARMS *frame_parms ; + + for (CC_id=0; CC_idcommon_channels[CC_id]; + frame_parms= &RC.eNB[module_idP][CC_id]->frame_parms; + // output of scheduling, the UE numbers in RBs, where it is in the code??? + // check if RA (Msg3) is active in this subframeP, if so skip the PRBs used for Msg3 + // Msg3 is using 1 PRB so we need to increase first_rb accordingly + // not sure about the break (can there be more than 1 active RA procedure?) + for (i=0; ira[i].state == WAITMSG3) &&(cc->ra[i].Msg3_subframe == sched_subframe)) { + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].ue_priority = SCH_UL_MSG3; + if (cc->tdd_Config == NULL) { + if(frame_parms->N_RB_UL == 25){ + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].start_rb = 1; + }else{ + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].start_rb = 2; + } + } else { + switch(frame_parms->N_RB_UL){ + case 25: + default: + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].start_rb = 1; + break; + case 50: + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].start_rb = 2; + break; + case 100: + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].start_rb = 3; + break; + } + } + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].nb_rb = 1; + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].UE_id = -1; + ulsch_ue_select[CC_id].ue_num++; + break; + } + } + + //PRACH + if (is_prach_subframe(frame_parms,sched_frame,sched_subframe)==1) { + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].ue_priority = SCH_UL_PRACH; + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].start_rb = get_prach_prb_offset( + frame_parms, + frame_parms->prach_config_common.prach_ConfigInfo.prach_ConfigIndex, + frame_parms->prach_config_common.prach_ConfigInfo.prach_FreqOffset, + 0,//tdd_mapindex + frameP); //Nf + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].nb_rb = 6; + ulsch_ue_select[CC_id].list[ulsch_ue_select[CC_id].ue_num].UE_id = -1; + ulsch_ue_select[CC_id].ue_num++; + } + } + + schedule_ulsch_rnti_fairRR(module_idP, frameP, subframeP, sched_subframe,ulsch_ue_select); + stop_meas(&mac->schedule_ulsch); +} + +void schedule_ulsch_rnti_fairRR(module_id_t module_idP, + frame_t frameP, + sub_frame_t subframeP, + unsigned char sched_subframeP, + ULSCH_UE_SELECT ulsch_ue_select[MAX_NUM_CCs]) +{ + int16_t UE_id; + uint8_t aggregation = 2; + uint16_t first_rb[MAX_NUM_CCs]; + uint8_t ULSCH_first_end; + rnti_t rnti = -1; + uint8_t round = 0; + uint8_t harq_pid = 0; + uint8_t status = 0; + uint8_t rb_table_index = -1; + uint32_t cqi_req,cshift,ndi,tpc; + int32_t normalized_rx_power; + int32_t target_rx_power=-90; + static int32_t tpc_accumulated=0; + int CC_id,ulsch_ue_num; + int N_RB_UL; + eNB_MAC_INST *eNB = RC.mac[module_idP]; + COMMON_channels_t *cc; + UE_list_t *UE_list=&eNB->UE_list; + UE_TEMPLATE *UE_template; + UE_sched_ctrl *UE_sched_ctrl; + int sched_frame=frameP; + int rvidx_tab[4] = {0,2,3,1}; + uint16_t ul_req_index; + uint8_t dlsch_flag; + if (sched_subframeP < subframeP) sched_frame++; + + nfapi_hi_dci0_request_body_t *hi_dci0_req; + nfapi_hi_dci0_request_pdu_t *hi_dci0_pdu; + + nfapi_ul_config_request_body_t *ul_req_tmp; + nfapi_ul_config_ulsch_harq_information *ulsch_harq_information; + LOG_D(MAC,"entering ulsch preprocesor\n"); + ulsch_scheduler_pre_processor_fairRR(module_idP, + frameP, + subframeP, + sched_subframeP, + ulsch_ue_select); + + LOG_D(MAC,"exiting ulsch preprocesor\n"); + + + + // loop over all active UEs + for (CC_id=0; CC_idHI_DCI0_req[CC_id][subframeP].hi_dci0_request_body; + eNB->HI_DCI0_req[CC_id][subframeP].sfn_sf = (frameP<<4)+subframeP; + ul_req_tmp = &eNB->UL_req_tmp[CC_id][sched_subframeP].ul_config_request_body; + nfapi_ul_config_request_t *ul_req = &eNB->UL_req_tmp[CC_id][sched_subframeP]; + + ULSCH_first_end = 0; + cc = &eNB->common_channels[CC_id]; + // This is the actual CC_id in the list + N_RB_UL = to_prb(cc->mib->message.dl_Bandwidth); + //leave out first RB for PUCCH + if (cc->tdd_Config == NULL) { + if(N_RB_UL == 25){ + first_rb[CC_id] = 1; + }else{ + first_rb[CC_id] = 2; + } + }else { + switch(N_RB_UL){ + case 25: + default: + first_rb[CC_id] = 1; + break; + case 50: + first_rb[CC_id] = 2; + break; + case 100: + first_rb[CC_id] = 3; + break; + } + } + for ( ulsch_ue_num = 0; ulsch_ue_num < ulsch_ue_select[CC_id].ue_num; ulsch_ue_num++ ) { + UE_id = ulsch_ue_select[CC_id].list[ulsch_ue_num].UE_id; + /* be sure that there are some free RBs */ + if (cc->tdd_Config == NULL){ + if(N_RB_UL == 25){ + if (first_rb[CC_id] >= N_RB_UL-1) { + LOG_W(MAC,"[eNB %d] frame %d subframe %d, UE %d/%x CC %d: dropping, not enough RBs\n", + module_idP,frameP,subframeP,UE_id,rnti,CC_id); + break; + } + }else{ + if (first_rb[CC_id] >= N_RB_UL-2) { + LOG_W(MAC,"[eNB %d] frame %d subframe %d, UE %d/%x CC %d: dropping, not enough RBs\n", + module_idP,frameP,subframeP,UE_id,rnti,CC_id); + break; + } + } + } else { + if(N_RB_UL == 25){ + if (first_rb[CC_id] >= N_RB_UL-1) { + LOG_W(MAC,"[eNB %d] frame %d subframe %d, UE %d/%x CC %d N_RB_UL %d first_rb %d: dropping, not enough RBs\n", + module_idP,frameP,subframeP,UE_id,rnti,CC_id, N_RB_UL, first_rb[CC_id]); + break; + } + }else if(N_RB_UL == 50){ + if (first_rb[CC_id] >= N_RB_UL-2) { + LOG_W(MAC,"[eNB %d] frame %d subframe %d, UE %d/%x CC %d N_RB_UL %d first_rb %d: dropping, not enough RBs\n", + module_idP,frameP,subframeP,UE_id,rnti,CC_id, N_RB_UL, first_rb[CC_id]); + break; + } + }else if(N_RB_UL == 100){ + if (first_rb[CC_id] >= N_RB_UL-3) { + LOG_W(MAC,"[eNB %d] frame %d subframe %d, UE %d/%x CC %d N_RB_UL %d first_rb %d: dropping, not enough RBs\n", + module_idP,frameP,subframeP,UE_id,rnti,CC_id, N_RB_UL, first_rb[CC_id]); + break; + } + } + } + //MSG3 + if (ulsch_ue_select[CC_id].list[ulsch_ue_num].ue_priority == SCH_UL_MSG3) { + first_rb[CC_id] ++; + continue; + } + //PRACH + if (ulsch_ue_select[CC_id].list[ulsch_ue_num].ue_priority == SCH_UL_PRACH) { + first_rb[CC_id] = ulsch_ue_select[CC_id].list[ulsch_ue_num].start_rb+ulsch_ue_select[CC_id].list[ulsch_ue_num].nb_rb; + continue; + } + + UE_template = &UE_list->UE_template[CC_id][UE_id]; + UE_sched_ctrl = &UE_list->UE_sched_ctrl[UE_id]; + harq_pid = subframe2harqpid(cc,sched_frame,sched_subframeP); + rnti = UE_RNTI(CC_id,UE_id); + LOG_D(MAC,"[eNB %d] frame %d subframe %d,Checking PUSCH %d for UE %d/%x CC %d : aggregation level %d, N_RB_UL %d\n", + module_idP,frameP,subframeP,harq_pid,UE_id,rnti,CC_id, aggregation,N_RB_UL); + + int bytes_to_schedule = UE_template->estimated_ul_buffer - UE_template->scheduled_ul_bytes; + if (bytes_to_schedule < 0) bytes_to_schedule = 0; + + RC.eNB[module_idP][CC_id]->pusch_stats_BO[UE_id][(frameP*10)+subframeP] = bytes_to_schedule; + VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_UE0_BO,RC.eNB[module_idP][CC_id]->pusch_stats_BO[UE_id][(frameP*10)+subframeP]); + + status = mac_eNB_get_rrc_status(module_idP,rnti); + if (status < RRC_CONNECTED) + cqi_req = 0; + else if (UE_sched_ctrl->cqi_req_timer>30) { + cqi_req = 1; + UE_sched_ctrl->cqi_req_timer=0; + UE_sched_ctrl->cqi_req_flag |= 1 << sched_subframeP; + } + else + cqi_req = 0; + + //power control + //compute the expected ULSCH RX power (for the stats) + + // this is the normalized RX power and this should be constant (regardless of mcs + normalized_rx_power = UE_sched_ctrl->pusch_snr[CC_id]; + target_rx_power = 178; + + // this assumes accumulated tpc + // make sure that we are only sending a tpc update once a frame, otherwise the control loop will freak out + int32_t framex10psubframe = UE_template->pusch_tpc_tx_frame*10+UE_template->pusch_tpc_tx_subframe; + if (((framex10psubframe+10)<=(frameP*10+subframeP)) || //normal case + ((framex10psubframe>(frameP*10+subframeP)) && (((10240-framex10psubframe+frameP*10+subframeP)>=10)))) //frame wrap-around + { + UE_template->pusch_tpc_tx_frame=frameP; + UE_template->pusch_tpc_tx_subframe=subframeP; + if (normalized_rx_power>(target_rx_power+4)) { + tpc = 0; //-1 + tpc_accumulated--; + } else if (normalized_rx_power<(target_rx_power-4)) { + tpc = 2; //+1 + tpc_accumulated++; + } else { + tpc = 1; //0 + } + } else { + tpc = 1; //0 + } + if (tpc!=1) { + LOG_D(MAC,"[eNB %d] ULSCH scheduler: frame %d, subframe %d, harq_pid %d, tpc %d, accumulated %d, normalized/target rx power %d/%d\n", + module_idP,frameP,subframeP,harq_pid,tpc, + tpc_accumulated,normalized_rx_power,target_rx_power); + } + // new transmission + if ((ulsch_ue_select[CC_id].list[ulsch_ue_num].ue_priority == SCH_UL_FIRST) || + (ulsch_ue_select[CC_id].list[ulsch_ue_num].ue_priority == SCH_UL_INACTIVE)) { + LOG_D(MAC,"[eNB %d][PUSCH %d] Frame %d subframe %d Scheduling UE %d/%x (SR %d,UL_inactivity timer %d,UL_failure timer %d,cqi_req_timer %d)\n", + module_idP,harq_pid,frameP,subframeP,UE_id,rnti,UE_template->ul_SR, + UE_sched_ctrl->ul_inactivity_timer, + UE_sched_ctrl->ul_failure_timer, + UE_sched_ctrl->cqi_req_timer); + + ndi = 1-UE_template->oldNDI_UL[harq_pid]; + UE_template->oldNDI_UL[harq_pid]=ndi; + UE_list->eNB_UE_stats[CC_id][UE_id].normalized_rx_power=normalized_rx_power; + UE_list->eNB_UE_stats[CC_id][UE_id].target_rx_power=target_rx_power; + UE_list->eNB_UE_stats[CC_id][UE_id].ulsch_mcs1=UE_template->pre_assigned_mcs_ul; + UE_template->mcs_UL[harq_pid] = UE_template->pre_assigned_mcs_ul;//cmin (UE_template->pre_assigned_mcs_ul, openair_daq_vars.target_ue_ul_mcs); // adjust, based on user-defined MCS + if (UE_template->pre_allocated_rb_table_index_ul >=0) { + rb_table_index=UE_template->pre_allocated_rb_table_index_ul; + } else { + UE_template->mcs_UL[harq_pid]=10;//cmin (10, openair_daq_vars.target_ue_ul_mcs); + rb_table_index=5; // for PHR + } + UE_list->eNB_UE_stats[CC_id][UE_id].ulsch_mcs2=UE_template->mcs_UL[harq_pid]; + + UE_template->TBS_UL[harq_pid] = get_TBS_UL(UE_template->mcs_UL[harq_pid],rb_table[rb_table_index]); + UE_list->eNB_UE_stats[CC_id][UE_id].total_rbs_used_rx+=rb_table[rb_table_index]; + UE_list->eNB_UE_stats[CC_id][UE_id].ulsch_TBS=UE_template->TBS_UL[harq_pid]; + + T(T_ENB_MAC_UE_UL_SCHEDULE, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), + T_INT(subframeP), T_INT(harq_pid), T_INT(UE_template->mcs_UL[harq_pid]), T_INT(first_rb[CC_id]), T_INT(rb_table[rb_table_index]), + T_INT(UE_template->TBS_UL[harq_pid]), T_INT(ndi)); + + if (mac_eNB_get_rrc_status(module_idP,rnti) < RRC_CONNECTED) + LOG_D(MAC,"[eNB %d][PUSCH %d/%x] CC_id %d Frame %d subframeP %d Scheduled UE %d (mcs %d, first rb %d, nb_rb %d, rb_table_index %d, TBS %d, harq_pid %d)\n", + module_idP,harq_pid,rnti,CC_id,frameP,subframeP,UE_id,UE_template->mcs_UL[harq_pid], + first_rb[CC_id],rb_table[rb_table_index], + rb_table_index,UE_template->TBS_UL[harq_pid],harq_pid); + + // bad indices : 20 (40 PRB), 21 (45 PRB), 22 (48 PRB) + //store for possible retransmission + UE_template->nb_rb_ul[harq_pid] = rb_table[rb_table_index]; + UE_template->first_rb_ul[harq_pid] = first_rb[CC_id]; + + UE_sched_ctrl->ul_scheduled |= (1<head) + VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_UE0_SCHEDULED,UE_sched_ctrl->ul_scheduled); + + // adjust total UL buffer status by TBS, wait for UL sdus to do final update + /*LOG_D(MAC,"[eNB %d] CC_id %d UE %d/%x : adjusting ul_total_buffer, old %d, TBS %d\n", module_idP,CC_id,UE_id,rnti,UE_template->ul_total_buffer,UE_template->TBS_UL[harq_pid]); + if (UE_template->ul_total_buffer > UE_template->TBS_UL[harq_pid]) + UE_template->ul_total_buffer -= UE_template->TBS_UL[harq_pid]; + else + UE_template->ul_total_buffer = 0; + LOG_D(MAC,"ul_total_buffer, new %d\n", UE_template->ul_total_buffer);*/ + // Cyclic shift for DM RS + cshift = 0;// values from 0 to 7 can be used for mapping the cyclic shift (36.211 , Table 5.5.2.1.1-1) + // save it for a potential retransmission + UE_template->cshift[harq_pid] = cshift; + + hi_dci0_pdu = &hi_dci0_req->hi_dci0_pdu_list[hi_dci0_req->number_of_dci+hi_dci0_req->number_of_hi]; + memset((void*)hi_dci0_pdu,0,sizeof(nfapi_hi_dci0_request_pdu_t)); + hi_dci0_pdu->pdu_type = NFAPI_HI_DCI0_DCI_PDU_TYPE; + hi_dci0_pdu->pdu_size = 2+sizeof(nfapi_hi_dci0_dci_pdu); + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.dci_format = NFAPI_UL_DCI_FORMAT_0; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.aggregation_level = aggregation; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.rnti = rnti; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.transmission_power = 6000; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.resource_block_start = first_rb[CC_id]; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.number_of_resource_block = rb_table[rb_table_index]; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.mcs_1 = UE_template->mcs_UL[harq_pid]; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.cyclic_shift_2_for_drms = cshift; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.frequency_hopping_enabled_flag = 0; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.new_data_indication_1 = ndi; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.tpc = tpc; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.cqi_csi_request = cqi_req; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.dl_assignment_index = UE_template->DAI_ul[sched_subframeP]; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.harq_pid = harq_pid; + + hi_dci0_req->number_of_dci++; + hi_dci0_req->sfnsf = sfnsf_add_subframe(sched_frame, sched_subframeP, 0); //(frameP, subframeP, 4) + hi_dci0_req->tl.tag = NFAPI_HI_DCI0_REQUEST_BODY_TAG; + nfapi_hi_dci0_request_t *nfapi_hi_dci0_req = &eNB->HI_DCI0_req[CC_id][subframeP]; + nfapi_hi_dci0_req->sfn_sf = frameP<<4|subframeP; // sfnsf_add_subframe(sched_frame, sched_subframeP, 0); // sunday! + nfapi_hi_dci0_req->header.message_id = NFAPI_HI_DCI0_REQUEST; + + LOG_D(MAC,"[PUSCH %d] Frame %d, Subframe %d: Adding UL CONFIG.Request for UE %d/%x, ulsch_frame %d, ulsch_subframe %d\n", + harq_pid,frameP,subframeP,UE_id,rnti,sched_frame,sched_subframeP); + + ul_req_index = 0; + dlsch_flag = 0; + for(ul_req_index = 0;ul_req_index < ul_req_tmp->number_of_pdus;ul_req_index++){ + if((ul_req_tmp->ul_config_pdu_list[ul_req_index].pdu_type == NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE) && + (ul_req_tmp->ul_config_pdu_list[ul_req_index].uci_harq_pdu.ue_information.ue_information_rel8.rnti == rnti)){ + dlsch_flag = 1; + LOG_D(MAC,"Frame %d, Subframe %d:rnti %x ul_req_index %d Switched UCI HARQ to ULSCH HARQ(first)\n",frameP,subframeP,rnti,ul_req_index); + break; + } + } + // Add UL_config PDUs + fill_nfapi_ulsch_config_request_rel8(&ul_req_tmp->ul_config_pdu_list[ul_req_index], + cqi_req, + cc, + UE_template->physicalConfigDedicated, + get_tmode(module_idP,CC_id,UE_id), + eNB->ul_handle, + rnti, + first_rb[CC_id], // resource_block_start + rb_table[rb_table_index], // number_of_resource_blocks + UE_template->mcs_UL[harq_pid], + cshift, // cyclic_shift_2_for_drms + 0, // frequency_hopping_enabled_flag + 0, // frequency_hopping_bits + ndi, // new_data_indication + 0, // redundancy_version + harq_pid, // harq_process_number + 0, // ul_tx_mode + 0, // current_tx_nb + 0, // n_srs + get_TBS_UL(UE_template->mcs_UL[harq_pid], + rb_table[rb_table_index]) + ); +#ifdef Rel14 + if (UE_template->rach_resource_type>0) { // This is a BL/CE UE allocation + fill_nfapi_ulsch_config_request_emtc(&ul_req_tmp->ul_config_pdu_list[ul_req_index], + UE_template->rach_resource_type>2 ? 2 : 1, + 1, //total_number_of_repetitions + 1, //repetition_number + (frameP*10)+subframeP); + } +#endif + if(dlsch_flag == 1){ + if(cqi_req == 1){ + ul_req_tmp->ul_config_pdu_list[ul_req_index].pdu_type = NFAPI_UL_CONFIG_ULSCH_CQI_HARQ_RI_PDU_TYPE; + ulsch_harq_information = &ul_req_tmp->ul_config_pdu_list[ul_req_index].ulsch_cqi_harq_ri_pdu.harq_information; + ul_req_tmp->ul_config_pdu_list[ul_req_index].ulsch_cqi_harq_ri_pdu.initial_transmission_parameters.initial_transmission_parameters_rel8.tl.tag=NFAPI_UL_CONFIG_REQUEST_INITIAL_TRANSMISSION_PARAMETERS_REL8_TAG; + ul_req_tmp->ul_config_pdu_list[ul_req_index].ulsch_cqi_harq_ri_pdu.initial_transmission_parameters.initial_transmission_parameters_rel8.n_srs_initial = 0; // last symbol not punctured + ul_req_tmp->ul_config_pdu_list[ul_req_index].ulsch_cqi_harq_ri_pdu.initial_transmission_parameters.initial_transmission_parameters_rel8.initial_number_of_resource_blocks = rb_table[rb_table_index]; + + }else{ + ul_req_tmp->ul_config_pdu_list[ul_req_index].pdu_type = NFAPI_UL_CONFIG_ULSCH_HARQ_PDU_TYPE; + ulsch_harq_information = &ul_req_tmp->ul_config_pdu_list[ul_req_index].ulsch_harq_pdu.harq_information; + ul_req_tmp->ul_config_pdu_list[ul_req_index].ulsch_harq_pdu.initial_transmission_parameters.initial_transmission_parameters_rel8.tl.tag = NFAPI_UL_CONFIG_REQUEST_INITIAL_TRANSMISSION_PARAMETERS_REL8_TAG; + ul_req_tmp->ul_config_pdu_list[ul_req_index].ulsch_harq_pdu.initial_transmission_parameters.initial_transmission_parameters_rel8.n_srs_initial = 0; // last symbol not punctured + ul_req_tmp->ul_config_pdu_list[ul_req_index].ulsch_harq_pdu.initial_transmission_parameters.initial_transmission_parameters_rel8.initial_number_of_resource_blocks = rb_table[rb_table_index]; + } + fill_nfapi_ulsch_harq_information(module_idP, CC_id,rnti, ulsch_harq_information,subframeP); + }else{ + ul_req_tmp->number_of_pdus++; + } + eNB->ul_handle++; + ul_req->header.message_id = NFAPI_UL_CONFIG_REQUEST; + ul_req_tmp->tl.tag = NFAPI_UL_CONFIG_REQUEST_BODY_TAG; + uint16_t ul_sched_frame = sched_frame; + uint16_t ul_sched_subframeP = sched_subframeP; + add_subframe(&ul_sched_frame, &ul_sched_subframeP, 2); + ul_req->sfn_sf = ul_sched_frame<<4|ul_sched_subframeP; + + add_ue_ulsch_info(module_idP, + CC_id, + UE_id, + subframeP, + S_UL_SCHEDULED); + + LOG_D(MAC,"[eNB %d] CC_id %d Frame %d, subframeP %d: Generated ULSCH DCI for next UE_id %d, format 0\n", module_idP,CC_id,frameP,subframeP,UE_id); + + // increment first rb for next UE allocation + first_rb[CC_id]+=rb_table[rb_table_index]; + if(ulsch_ue_select[CC_id].list[ulsch_ue_num].ue_priority == SCH_UL_FIRST) { + UE_template->scheduled_ul_bytes += get_TBS_UL(UE_template->mcs_UL[harq_pid],rb_table[rb_table_index]); + UE_template->ul_SR = 0; + } + if((ulsch_ue_select[CC_id].list[ulsch_ue_num].ue_priority == SCH_UL_INACTIVE) && (ULSCH_first_end == 0)) { + ULSCH_first_end = 1; + last_ulsch_ue_id[CC_id] = ulsch_ue_select[CC_id].list[ulsch_ue_num-1].UE_id; + } + if((ulsch_ue_num == ulsch_ue_select[CC_id].ue_num-1) && (ULSCH_first_end == 0)) { + ULSCH_first_end = 1; + last_ulsch_ue_id[CC_id] = ulsch_ue_select[CC_id].list[ulsch_ue_num].UE_id; + } + } + else if (ulsch_ue_select[CC_id].list[ulsch_ue_num].ue_priority == SCH_UL_RETRANS) { // round > 0 => retransmission + T(T_ENB_MAC_UE_UL_SCHEDULE_RETRANSMISSION, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), + T_INT(subframeP), T_INT(harq_pid), T_INT(UE_template->mcs_UL[harq_pid]), T_INT(first_rb[CC_id]), T_INT(rb_table[rb_table_index]), + T_INT(round)); + + round = UE_sched_ctrl->round_UL[CC_id][harq_pid]; + UE_list->eNB_UE_stats[CC_id][UE_id].normalized_rx_power=normalized_rx_power; + UE_list->eNB_UE_stats[CC_id][UE_id].target_rx_power=target_rx_power; + uint8_t mcs_rv = 0; + if(rvidx_tab[round&3]==1){ + mcs_rv = 29; + }else if(rvidx_tab[round&3]==2){ + mcs_rv = 30; + }else if(rvidx_tab[round&3]==3){ + mcs_rv = 31; + } + UE_template->TBS_UL[harq_pid] = get_TBS_UL(UE_template->mcs_UL[harq_pid],ulsch_ue_select[CC_id].list[ulsch_ue_num].nb_rb); + UE_list->eNB_UE_stats[CC_id][UE_id].ulsch_TBS=UE_template->TBS_UL[harq_pid]; + + + if (mac_eNB_get_rrc_status(module_idP,rnti) < RRC_CONNECTED) + LOG_D(MAC,"[eNB %d][PUSCH %d/%x] CC_id %d Frame %d subframeP %d Scheduled UE %d (mcs %d, first rb %d, nb_rb %d, rb_table_index %d, TBS %d, harq_pid %d)\n", + module_idP,harq_pid,rnti,CC_id,frameP,subframeP,UE_id,mcs_rv,first_rb[CC_id],rb_table[rb_table_index],rb_table_index,UE_template->TBS_UL[harq_pid],harq_pid); + + // bad indices : 20 (40 PRB), 21 (45 PRB), 22 (48 PRB) + //store for possible retransmission + UE_template->nb_rb_ul[harq_pid] = ulsch_ue_select[CC_id].list[ulsch_ue_num].nb_rb; + UE_template->first_rb_ul[harq_pid] = ulsch_ue_select[CC_id].list[ulsch_ue_num].start_rb; + + UE_sched_ctrl->ul_scheduled |= (1<hi_dci0_pdu_list[hi_dci0_req->number_of_dci+hi_dci0_req->number_of_hi]; + memset((void*)hi_dci0_pdu,0,sizeof(nfapi_hi_dci0_request_pdu_t)); + hi_dci0_pdu->pdu_type = NFAPI_HI_DCI0_DCI_PDU_TYPE; + hi_dci0_pdu->pdu_size = 2+sizeof(nfapi_hi_dci0_dci_pdu); + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.dci_format = NFAPI_UL_DCI_FORMAT_0; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.aggregation_level = aggregation; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.rnti = rnti; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.transmission_power = 6000; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.resource_block_start = ulsch_ue_select[CC_id].list[ulsch_ue_num].start_rb; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.number_of_resource_block = ulsch_ue_select[CC_id].list[ulsch_ue_num].nb_rb; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.mcs_1 = mcs_rv; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.cyclic_shift_2_for_drms = cshift; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.frequency_hopping_enabled_flag = 0; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.new_data_indication_1 = UE_template->oldNDI_UL[harq_pid]; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.tpc = tpc; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.cqi_csi_request = cqi_req; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.dl_assignment_index = UE_template->DAI_ul[sched_subframeP]; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.harq_pid = harq_pid; + + hi_dci0_req->number_of_dci++; + // Add UL_config PDUs + LOG_D(MAC,"[PUSCH %d] Frame %d, Subframe %d: Adding UL CONFIG.Request for UE %d/%x, ulsch_frame %d, ulsch_subframe %d\n", + harq_pid,frameP,subframeP,UE_id,rnti,sched_frame,sched_subframeP); + ul_req_index = 0; + dlsch_flag = 0; + for(ul_req_index = 0;ul_req_index < ul_req_tmp->number_of_pdus;ul_req_index++){ + if((ul_req_tmp->ul_config_pdu_list[ul_req_index].pdu_type == NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE) && + (ul_req_tmp->ul_config_pdu_list[ul_req_index].uci_harq_pdu.ue_information.ue_information_rel8.rnti == rnti)){ + dlsch_flag = 1; + LOG_D(MAC,"Frame %d, Subframe %d:rnti %x ul_req_index %d Switched UCI HARQ to ULSCH HARQ(phich)\n",frameP,subframeP,rnti,ul_req_index); + break; + } + } + fill_nfapi_ulsch_config_request_rel8(&ul_req_tmp->ul_config_pdu_list[ul_req_index], + cqi_req, + cc, + UE_template->physicalConfigDedicated, + get_tmode(module_idP,CC_id,UE_id), + eNB->ul_handle, + rnti, + ulsch_ue_select[CC_id].list[ulsch_ue_num].start_rb, // resource_block_start + ulsch_ue_select[CC_id].list[ulsch_ue_num].nb_rb, // number_of_resource_blocks + UE_template->mcs_UL[harq_pid], + cshift, // cyclic_shift_2_for_drms + 0, // frequency_hopping_enabled_flag + 0, // frequency_hopping_bits + UE_template->oldNDI_UL[harq_pid], // new_data_indication + rvidx_tab[round&3], // redundancy_version + harq_pid, // harq_process_number + 0, // ul_tx_mode + 0, // current_tx_nb + 0, // n_srs + UE_template->TBS_UL[harq_pid] + ); +#ifdef Rel14 + if (UE_template->rach_resource_type>0) { // This is a BL/CE UE allocation + fill_nfapi_ulsch_config_request_emtc(&ul_req_tmp->ul_config_pdu_list[ul_req_index], + UE_template->rach_resource_type>2 ? 2 : 1, + 1, //total_number_of_repetitions + 1, //repetition_number + (frameP*10)+subframeP); + } +#endif + if(dlsch_flag == 1){ + if(cqi_req == 1){ + ul_req_tmp->ul_config_pdu_list[ul_req_index].pdu_type = NFAPI_UL_CONFIG_ULSCH_CQI_HARQ_RI_PDU_TYPE; + ulsch_harq_information = &ul_req_tmp->ul_config_pdu_list[ul_req_index].ulsch_cqi_harq_ri_pdu.harq_information; + ul_req_tmp->ul_config_pdu_list[ul_req_index].ulsch_cqi_harq_ri_pdu.initial_transmission_parameters.initial_transmission_parameters_rel8.tl.tag=NFAPI_UL_CONFIG_REQUEST_INITIAL_TRANSMISSION_PARAMETERS_REL8_TAG; + ul_req_tmp->ul_config_pdu_list[ul_req_index].ulsch_cqi_harq_ri_pdu.initial_transmission_parameters.initial_transmission_parameters_rel8.n_srs_initial = 0; // last symbol not punctured + ul_req_tmp->ul_config_pdu_list[ul_req_index].ulsch_cqi_harq_ri_pdu.initial_transmission_parameters.initial_transmission_parameters_rel8.initial_number_of_resource_blocks = ulsch_ue_select[CC_id].list[ulsch_ue_num].nb_rb; + + }else{ + ul_req_tmp->ul_config_pdu_list[ul_req_index].pdu_type = NFAPI_UL_CONFIG_ULSCH_HARQ_PDU_TYPE; + ulsch_harq_information = &ul_req_tmp->ul_config_pdu_list[ul_req_index].ulsch_harq_pdu.harq_information; + ul_req_tmp->ul_config_pdu_list[ul_req_index].ulsch_harq_pdu.initial_transmission_parameters.initial_transmission_parameters_rel8.tl.tag = NFAPI_UL_CONFIG_REQUEST_INITIAL_TRANSMISSION_PARAMETERS_REL8_TAG; + ul_req_tmp->ul_config_pdu_list[ul_req_index].ulsch_harq_pdu.initial_transmission_parameters.initial_transmission_parameters_rel8.n_srs_initial = 0; // last symbol not punctured + ul_req_tmp->ul_config_pdu_list[ul_req_index].ulsch_harq_pdu.initial_transmission_parameters.initial_transmission_parameters_rel8.initial_number_of_resource_blocks = ulsch_ue_select[CC_id].list[ulsch_ue_num].nb_rb; + } + fill_nfapi_ulsch_harq_information(module_idP, CC_id,rnti, ulsch_harq_information,subframeP); + }else{ + ul_req_tmp->number_of_pdus++; + } + eNB->ul_handle++; + ul_req->header.message_id = NFAPI_UL_CONFIG_REQUEST; + ul_req_tmp->tl.tag = NFAPI_UL_CONFIG_REQUEST_BODY_TAG; + ul_req->sfn_sf = sched_frame<<4|sched_subframeP; + + LOG_D(MAC,"[eNB %d] CC_id %d Frame %d, subframeP %d: Generated ULSCH DCI for next UE_id %d, format 0(round >0)\n", module_idP,CC_id,frameP,subframeP,UE_id); + + // increment first rb for next UE allocation + first_rb[CC_id]+=ulsch_ue_select[CC_id].list[ulsch_ue_num].nb_rb; + } + } // loop over UE_id + } // loop of CC_id +} diff --git a/openair2/LAYER2/MAC/eNB_scheduler_fairRR.h b/openair2/LAYER2/MAC/eNB_scheduler_fairRR.h new file mode 100644 index 0000000000..8c90118609 --- /dev/null +++ b/openair2/LAYER2/MAC/eNB_scheduler_fairRR.h @@ -0,0 +1,131 @@ +/* + * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The OpenAirInterface Software Alliance licenses this file to You under + * the OAI Public License, Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.openairinterface.org/?page_id=698 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *------------------------------------------------------------------------------- + * For more information about the OpenAirInterface (OAI) Software Alliance: + * contact@openairinterface.org + */ + +/*! \file eNB_scheduler_fairRR.h + * \brief eNB scheduler fair round robin header + * \author Masayuki Harada + * \date 2018 + * \email masayuki.harada@jp.fujitsu.com + * \version 1.0 + * @ingroup _mac + */ + + +#ifndef __LAYER2_MAC_ENB_SCHEDULER_FAIRRR_H__ +#define __LAYER2_MAC_ENB_SCHEDULER_FAIRRR_H__ + +/* define */ +enum SCH_UE_PRIORITY { + SCH_PRIORITY_NONE, + SCH_DL_SI, + SCH_DL_PAGING, + SCH_DL_MSG2, + SCH_DL_MSG4, + SCH_UL_PRACH, + SCH_UL_MSG3, + SCH_DL_RETRANS, + SCH_UL_RETRANS, + SCH_DL_FIRST, + SCH_UL_FIRST, + SCH_UL_INACTIVE +}; + +typedef struct { + int UE_id; + enum SCH_UE_PRIORITY ue_priority; + rnti_t rnti; + uint16_t nb_rb; +} DLSCH_UE_INFO; + +typedef struct { + uint16_t ue_num; + DLSCH_UE_INFO list[20]; +} DLSCH_UE_SELECT; + +typedef struct { + int UE_id; + enum SCH_UE_PRIORITY ue_priority; + uint8_t start_rb; + uint8_t nb_rb; + uint16_t ul_total_buffer; +} ULSCH_UE_INFO; + +typedef struct { + uint8_t ue_num; + ULSCH_UE_INFO list[20]; +} ULSCH_UE_SELECT; + +/* proto */ +void set_dl_ue_select_msg2(int CC_idP, uint16_t nb_rb, int UE_id, rnti_t rnti); +void set_dl_ue_select_msg4(int CC_idP, uint16_t nb_rb, int UE_id, rnti_t rnti); + +void dlsch_scheduler_pre_ue_select_fairRR( + module_id_t module_idP, + frame_t frameP, + sub_frame_t subframeP, + int* mbsfn_flag, + uint16_t nb_rbs_required[MAX_NUM_CCs][NUMBER_OF_UE_MAX], + DLSCH_UE_SELECT dlsch_ue_select[MAX_NUM_CCs]); + +void dlsch_scheduler_pre_processor_fairRR (module_id_t Mod_id, + frame_t frameP, + sub_frame_t subframeP, + int N_RBG[MAX_NUM_CCs], + int *mbsfn_flag); + +void fill_DLSCH_dci_fairRR( + module_id_t module_idP, + frame_t frameP, + sub_frame_t subframeP, + int* mbsfn_flagP); + +void schedule_ue_spec_fairRR(module_id_t module_idP, + frame_t frameP, sub_frame_t subframeP, int *mbsfn_flag); + +void ulsch_scheduler_pre_ue_select_fairRR( + module_id_t module_idP, + frame_t frameP, + sub_frame_t subframeP, + sub_frame_t sched_subframeP, + ULSCH_UE_SELECT ulsch_ue_select[MAX_NUM_CCs]); + +void ulsch_scheduler_pre_processor_fairRR(module_id_t module_idP, + frame_t frameP, + sub_frame_t subframeP, + sub_frame_t sched_subframeP, + ULSCH_UE_SELECT ulsch_ue_select[MAX_NUM_CCs]); + +void schedule_ulsch_fairRR(module_id_t module_idP, frame_t frameP, + sub_frame_t subframeP); + +void schedule_ulsch_rnti_fairRR(module_id_t module_idP, + frame_t frameP, + sub_frame_t subframeP, + unsigned char sched_subframeP, + ULSCH_UE_SELECT ulsch_ue_select[MAX_NUM_CCs]); + + +/* extern */ +extern DLSCH_UE_SELECT dlsch_ue_select[MAX_NUM_CCs]; +extern int last_dlsch_ue_id[MAX_NUM_CCs]; +extern int last_ulsch_ue_id[MAX_NUM_CCs]; + +#endif diff --git a/openair2/LAYER2/MAC/eNB_scheduler_mch.c b/openair2/LAYER2/MAC/eNB_scheduler_mch.c index bcaa30e3c1..63a4711778 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_mch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_mch.c @@ -33,8 +33,8 @@ #include "LAYER2/MAC/mac.h" #include "LAYER2/MAC/mac_proto.h" #include "LAYER2/MAC/mac_extern.h" -#include "UTIL/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "UTIL/OPT/opt.h" #include "OCG.h" #include "OCG_extern.h" @@ -633,7 +633,7 @@ schedule_MBMS(module_id_t module_idP, uint8_t CC_id, frame_t frameP, MTCH, TBS - header_len_mcch - header_len_msi - sdu_length_total - header_len_mtch -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif ); @@ -652,7 +652,7 @@ schedule_MBMS(module_id_t module_idP, uint8_t CC_id, frame_t frameP, sdu_lengths[num_sdus] = mac_rlc_data_req(module_idP, 0, module_idP, frameP, ENB_FLAG_YES, MBMS_FLAG_YES, MTCH, 0, //not used (char *) &mch_buffer[sdu_length_total] -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif diff --git a/openair2/LAYER2/MAC/eNB_scheduler_phytest.c b/openair2/LAYER2/MAC/eNB_scheduler_phytest.c index b1bb4a4130..49cc68b06a 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_phytest.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_phytest.c @@ -39,8 +39,8 @@ #include "LAYER2/MAC/mac.h" #include "LAYER2/MAC/mac_proto.h" #include "LAYER2/MAC/mac_extern.h" -#include "UTIL/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "UTIL/OPT/opt.h" #include "OCG.h" #include "OCG_extern.h" @@ -67,13 +67,13 @@ schedule_ue_spec_phy_test( uint16_t TBS; uint16_t nb_rb; - unsigned char harq_pid = subframeP%5; + unsigned char harq_pid = (frameP*10+subframeP)%8; uint16_t rnti = 0x1235; - uint32_t rb_alloc = 0x1FFFFFFF; + uint32_t rb_alloc = 0x1FFFFF; int32_t tpc = 1; int32_t mcs = 28; int32_t cqi = 15; - int32_t ndi = subframeP/5; + int32_t ndi = (frameP*10+subframeP)/8; int32_t dai = 0; eNB_MAC_INST *eNB = RC.mac[module_idP]; @@ -92,10 +92,9 @@ schedule_ue_spec_phy_test( continue; nb_rb = conv_nprb(0,rb_alloc,N_RB_DL); - //printf("////////////////////////////////////*************************nb_rb = %d\n",nb_rb); TBS = get_TBS_DL(mcs,nb_rb); - LOG_D(PHY,"schedule_ue_spec_phy_test: subframe %d/%d: nb_rb=%d, TBS=%d, mcs=%d (rb_alloc=%x, N_RB_DL=%d)\n",frameP,subframeP,nb_rb,TBS,mcs,rb_alloc,N_RB_DL); + LOG_D(MAC,"schedule_ue_spec_phy_test: subframe %d/%d: nb_rb=%d, TBS=%d, mcs=%d harq_pid=%d (rb_alloc=%x, N_RB_DL=%d) pdu_number = %d \n", frameP, subframeP, nb_rb, TBS, mcs, harq_pid, rb_alloc, N_RB_DL, dl_req->number_pdu); dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; memset((void*)dl_config_pdu,0,sizeof(nfapi_dl_config_request_pdu_t)); @@ -136,6 +135,8 @@ schedule_ue_spec_phy_test( //ue_sched_ctl->round[CC_id][harq_pid] = 0; dl_req->number_dci++; dl_req->number_pdu++; + eNB->DL_req[CC_id].sfn_sf = frameP<<4 | subframeP; + //eNB->DL_req[CC_id].header.message_id = NFAPI_DL_CONFIG_REQUEST; // Toggle NDI for next time /* @@ -150,7 +151,6 @@ schedule_ue_spec_phy_test( AssertFatal(UE_list->UE_template[CC_id][UE_id].physicalConfigDedicated->pdsch_ConfigDedicated!=NULL,"physicalConfigDedicated->pdsch_ConfigDedicated is NULL\n"); */ - fill_nfapi_dlsch_config(eNB, dl_req, @@ -196,32 +196,35 @@ void schedule_ulsch_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t s int UE_id = 0; uint8_t aggregation = 2; rnti_t rnti = 0x1235; - uint8_t mcs = 0; + uint8_t mcs = 20; uint8_t harq_pid = 0; uint32_t cqi_req = 0,cshift,ndi,tpc = 1; int32_t normalized_rx_power; int32_t target_rx_power= 178; int CC_id = 0; int nb_rb = 96; - eNB_MAC_INST *eNB = RC.mac[module_idP]; - COMMON_channels_t *cc = eNB->common_channels; - UE_list_t *UE_list=&eNB->UE_list; + eNB_MAC_INST *mac = RC.mac[module_idP]; + COMMON_channels_t *cc = &mac->common_channels[0]; + UE_list_t *UE_list=&mac->UE_list; UE_TEMPLATE *UE_template; UE_sched_ctrl *UE_sched_ctrl; int sched_frame=frameP; int sched_subframe = (subframeP+4)%10; + uint16_t ul_req_index; + uint8_t dlsch_flag; if (sched_subframeHI_DCI0_req[CC_id].hi_dci0_request_body; + nfapi_hi_dci0_request_t *hi_dci0_req = &mac->HI_DCI0_req[CC_id][subframeP]; + nfapi_hi_dci0_request_body_t *hi_dci0_req_body = &hi_dci0_req->hi_dci0_request_body; nfapi_hi_dci0_request_pdu_t *hi_dci0_pdu; //nfapi_ul_config_request_pdu_t *ul_config_pdu = &ul_req->ul_config_pdu_list[0];; - nfapi_ul_config_request_body_t *ul_req = &eNB->UL_req[CC_id].ul_config_request_body; + nfapi_ul_config_request_body_t *ul_req = &mac->UL_req[CC_id].ul_config_request_body; - eNB->UL_req[CC_id].sfn_sf = (sched_frame<<4) + sched_subframe; - eNB->HI_DCI0_req[CC_id].sfn_sf = (frameP<<4)+subframeP; + mac->UL_req[CC_id].sfn_sf = (sched_frame<<4) + sched_subframe; + hi_dci0_req->sfn_sf = (frameP << 4) + subframeP; for (CC_id=0; CC_idUE_sched_ctrl[UE_id]; harq_pid = subframe2harqpid(&cc[CC_id],sched_frame,sched_subframe); - LOG_D(MAC,"Scheduling for frame %d, subframe %d => harq_pid %d\n",sched_frame,sched_subframe,harq_pid); RC.eNB[module_idP][CC_id]->pusch_stats_BO[UE_id][(frameP*10)+subframeP] = UE_template->TBS_UL[harq_pid]; @@ -245,7 +247,7 @@ void schedule_ulsch_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t s //compute the expected ULSCH RX power (for the stats) // this is the normalized RX power and this should be constant (regardless of mcs - normalized_rx_power = UE_sched_ctrl->pusch_snr[CC_id]; + normalized_rx_power = (5*UE_sched_ctrl->pusch_snr[CC_id]-640)/10+30; // new transmission @@ -281,7 +283,7 @@ void schedule_ulsch_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t s // save it for a potential retransmission UE_template->cshift[harq_pid] = cshift; - hi_dci0_pdu = &hi_dci0_req->hi_dci0_pdu_list[eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_dci+eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_hi]; + hi_dci0_pdu = &hi_dci0_req_body->hi_dci0_pdu_list[hi_dci0_req_body->number_of_dci + hi_dci0_req_body->number_of_hi]; memset((void*)hi_dci0_pdu,0,sizeof(nfapi_hi_dci0_request_pdu_t)); hi_dci0_pdu->pdu_type = NFAPI_HI_DCI0_DCI_PDU_TYPE; hi_dci0_pdu->pdu_size = 2+sizeof(nfapi_hi_dci0_dci_pdu); @@ -298,18 +300,28 @@ void schedule_ulsch_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t s hi_dci0_pdu->dci_pdu.dci_pdu_rel8.tpc = tpc; hi_dci0_pdu->dci_pdu.dci_pdu_rel8.cqi_csi_request = cqi_req; hi_dci0_pdu->dci_pdu.dci_pdu_rel8.dl_assignment_index = UE_template->DAI_ul[sched_subframe]; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.harq_pid = harq_pid; + + hi_dci0_req_body->number_of_dci++; - eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_dci++; - - + ul_req_index = 0; + dlsch_flag = 0; + for(ul_req_index = 0;ul_req_index < ul_req->number_of_pdus;ul_req_index++){ + if(ul_req->ul_config_pdu_list[ul_req_index].pdu_type == NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE){ + dlsch_flag = 1; + LOG_D(MAC,"Frame %d, Subframe %d:rnti %x ul_req_index %d Switched UCI HARQ to ULSCH HARQ(first)\n",frameP,subframeP,rnti,ul_req_index); + break; + } + } + // Add UL_config PDUs - fill_nfapi_ulsch_config_request_rel8(&ul_req->ul_config_pdu_list[ul_req->number_of_pdus], + fill_nfapi_ulsch_config_request_rel8(& ul_req->ul_config_pdu_list[ul_req_index], cqi_req, cc, 0,//UE_template->physicalConfigDedicated, get_tmode(module_idP,CC_id,UE_id), - eNB->ul_handle, + mac->ul_handle,//eNB->ul_handle, rnti, first_rb[CC_id], // resource_block_start nb_rb, // number_of_resource_blocks @@ -325,9 +337,9 @@ void schedule_ulsch_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t s 0, // n_srs get_TBS_UL(mcs,nb_rb) ); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) if (UE_template->rach_resource_type>0) { // This is a BL/CE UE allocation - fill_nfapi_ulsch_config_request_emtc(&ul_req->ul_config_pdu_list[ul_req->number_of_pdus], + fill_nfapi_ulsch_config_request_emtc(&ul_req->ul_config_pdu_list[ul_req_index], UE_template->rach_resource_type>2 ? 2 : 1, 1, //total_number_of_repetitions 1, //repetition_number @@ -335,7 +347,7 @@ void schedule_ulsch_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t s } #endif ul_req->number_of_pdus = 1; - eNB->ul_handle++; + mac->ul_handle++; diff --git a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c index c3c23857a1..7594970884 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c @@ -35,8 +35,8 @@ #include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_proto.h" -#include "UTIL/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "UTIL/OPT/opt.h" #include "OCG.h" #include "OCG_extern.h" @@ -55,8 +55,10 @@ #define ENABLE_MAC_PAYLOAD_DEBUG #define DEBUG_eNB_SCHEDULER 1 +extern uint16_t frame_cnt; #include "common/ran_context.h" +#include "SCHED/sched_common.h" extern RAN_CONTEXT_t RC; @@ -584,11 +586,61 @@ int is_UL_sf(COMMON_channels_t * ccP, sub_frame_t subframeP) } } +int is_S_sf(COMMON_channels_t * ccP, sub_frame_t subframeP) +{ + // if FDD return dummy value + if (ccP->tdd_Config == NULL) + return (0); + + switch (subframeP) { + case 1: + return (1); + break; + + case 6: + if(ccP->tdd_Config->subframeAssignment == 0 || ccP->tdd_Config->subframeAssignment == 1 + || ccP->tdd_Config->subframeAssignment == 2 || ccP->tdd_Config->subframeAssignment == 6) + return (1); + break; + + default: + return (0); + break; + } + return 0; +} + +uint8_t ul_subframe2_k_phich(COMMON_channels_t * cc, sub_frame_t ul_subframe){ + + if(cc->tdd_Config){//TODO fill other tdd config + switch(cc->tdd_Config->subframeAssignment){ + case 0: + break; + case 1: + if(ul_subframe == 2 || ul_subframe == 7) + return 4; + else if(ul_subframe == 3 || ul_subframe == 8) + return 6; + else return 255; + break; + case 2: + break; + case 3: + break; + case 4: + break; + case 5: + break; + } + } + return 4; //idk sf_ahead? +} + uint16_t get_pucch1_absSF(COMMON_channels_t * cc, uint16_t dlsch_absSF) { uint16_t sf, f, nextf; - if (cc->tdd_Config == NULL) { //FDD n+4 + if (cc->tdd_Config == NULL) { //FDD n+4 return ((dlsch_absSF + 4) % 10240); } else { sf = dlsch_absSF % 10; @@ -597,72 +649,93 @@ uint16_t get_pucch1_absSF(COMMON_channels_t * cc, uint16_t dlsch_absSF) switch (cc->tdd_Config->subframeAssignment) { case 0: - AssertFatal(1 == 0, "SFA 0 to be filled in now, :-)\n"); + if ((sf == 0) || (sf == 5)) + return ((10 * f) + sf + 4)% 10240; // ACK/NAK in SF 4,9 same frame + else if (sf == 6) + return ((10 * nextf) + 2)% 10240; // ACK/NAK in SF 2 next frame + else if (sf == 1) + return ((10 * f) + 7)% 10240; // ACK/NAK in SF 7 same frame + else + AssertFatal(1 == 0, + "Impossible dlsch subframe %d for TDD configuration 0\n", + sf); + break; case 1: if ((sf == 5) || (sf == 6)) - return ((10 * nextf) + 2); // ACK/NAK in SF 2 next frame + return ((10 * nextf) + 2)% 10240; // ACK/NAK in SF 2 next frame else if (sf == 9) - return ((10 * nextf) + 3); // ACK/NAK in SF 3 next frame + return ((10 * nextf) + 3)% 10240; // ACK/NAK in SF 3 next frame else if ((sf == 0) || (sf == 1)) - return ((10 * f) + 2); // ACK/NAK in SF 7 same frame + return ((10 * f) + 7)% 10240; // ACK/NAK in SF 7 same frame + else if (sf == 4) + return ((10 * f) + 8)% 10240; // ACK/NAK in SF 8 same frame else - AssertFatal(1 == 0, - "Impossible dlsch subframe %d for TDD configuration 3\n", - sf); + AssertFatal(1 == 0, + "Impossible dlsch subframe %d for TDD configuration 1\n", + sf); break; case 2: if ((sf == 4) || (sf == 5) || (sf == 6) || (sf == 8)) - return ((10 * nextf) + 2); // ACK/NAK in SF 2 next frame + return ((10 * nextf) + 2)% 10240; // ACK/NAK in SF 2 next frame else if (sf == 9) - return ((10 * nextf) + 7); // ACK/NAK in SF 7 next frame + return ((10 * nextf) + 7)% 10240; // ACK/NAK in SF 7 next frame else if ((sf == 0) || (sf == 1) || (sf == 3)) - return ((10 * f) + 7); // ACK/NAK in SF 7 same frame + return ((10 * f) + 7)% 10240; // ACK/NAK in SF 7 same frame else - AssertFatal(1 == 0, - "Impossible dlsch subframe %d for TDD configuration 3\n", - sf); + AssertFatal(1 == 0, + "Impossible dlsch subframe %d for TDD configuration 2\n", + sf); break; case 3: if ((sf == 5) || (sf == 6) || (sf == 7) || (sf == 8) - || (sf == 9)) - return ((10 * nextf) + ((sf-1) >> 1)); // ACK/NAK in 2,3,4 resp. next frame + || (sf == 9)) + return ((10 * nextf) + ((sf-1) >> 1))% 10240; // ACK/NAK in 2,3,4 resp. next frame else if (sf == 1) - return ((10 * nextf) + 2); // ACK/NAK in 2 next frame + return ((10 * nextf) + 2)% 10240; // ACK/NAK in 2 next frame else if (sf == 0) - return ((10 * f) + 4); // ACK/NAK in 4 same frame + return ((10 * f) + 4)% 10240; // ACK/NAK in 4 same frame else - AssertFatal(1 == 0, - "Impossible dlsch subframe %d for TDD configuration 3\n", - sf); + AssertFatal(1 == 0, + "Impossible dlsch subframe %d for TDD configuration 3\n", + sf); break; case 4: if ((sf == 6) || (sf == 7) || (sf == 8) || (sf == 9)) - return (((10 * nextf) + 3) % 10240); // ACK/NAK in SF 3 next frame + return (((10 * nextf) + 3) % 10240); // ACK/NAK in SF 3 next frame else if ((sf == 0) || (sf == 1) || (sf == 4) || (sf == 5)) - return (((10 * nextf) + 2) % 10240); // ACK/NAK in SF 2 next frame + return (((10 * nextf) + 2) % 10240); // ACK/NAK in SF 2 next frame else - AssertFatal(1 == 0, - "Impossible dlsch subframe %d for TDD configuration 4\n", - sf); + AssertFatal(1 == 0, + "Impossible dlsch subframe %d for TDD configuration 4\n", + sf); break; case 5: if ((sf == 0) || (sf == 1) || (sf == 3) || (sf == 4) - || (sf == 5) || (sf == 6) || (sf == 7) || (sf == 8)) - return (((10 * nextf) + 2) % 10240); // ACK/NAK in SF 3 next frame + || (sf == 5) || (sf == 6) || (sf == 7) || (sf == 8)) + return (((10 * nextf) + 2) % 10240); // ACK/NAK in SF 3 next frame else if (sf == 9) - return (((10 * (1 + nextf)) + 2) % 10240); // ACK/NAK in SF 2 next frame + return (((10 * (1 + nextf)) + 2) % 10240); // ACK/NAK in SF 2 next frame else - AssertFatal(1 == 0, - "Impossible dlsch subframe %d for TDD configuration 5\n", - sf); + AssertFatal(1 == 0, + "Impossible dlsch subframe %d for TDD configuration 5\n", + sf); break; case 6: - AssertFatal(1 == 0, "SFA 6 To be filled in now, :-)\n"); + if ((sf == 5) || (sf == 6)) + return ((10 * f) + sf + 7)% 10240; // ACK/NAK in SF 2,3 next frame + else if (sf == 9) + return ((10 * nextf) + 4)% 10240; // ACK/NAK in SF 4 next frame + else if ((sf == 1) || (sf == 0)) + return ((10 * f) + sf + 7)% 10240; // ACK/NAK in SF 7 same frame + else + AssertFatal(1 == 0, + "Impossible dlsch subframe %d for TDD configuration 6\n", + sf); break; default: AssertFatal(1 == 0, "Illegal TDD subframe Assigment %d\n", - (int) cc->tdd_Config->subframeAssignment); + (int) cc->tdd_Config->subframeAssignment); break; } } @@ -1185,7 +1258,7 @@ program_dlsch_acknak(module_id_t module_idP, int CC_idP, int UE_idP, } } - if (ulsch_harq_information) fill_nfapi_ulsch_harq_information(module_idP, CC_idP, rnti, ulsch_harq_information); + if (ulsch_harq_information) fill_nfapi_ulsch_harq_information(module_idP, CC_idP, rnti, ulsch_harq_information, subframeP); if (harq_information) fill_nfapi_harq_information(module_idP, CC_idP, rnti, @@ -1193,9 +1266,9 @@ program_dlsch_acknak(module_id_t module_idP, int CC_idP, int UE_idP, harq_information, cce_idx); } -uint8_t get_V_UL_DAI(module_id_t module_idP, int CC_idP, uint16_t rntiP) +uint8_t get_V_UL_DAI(module_id_t module_idP, int CC_idP, uint16_t rntiP,sub_frame_t subframeP) { - nfapi_hi_dci0_request_body_t *HI_DCI0_req = &RC.mac[module_idP]->HI_DCI0_req[CC_idP].hi_dci0_request_body; + nfapi_hi_dci0_request_body_t *HI_DCI0_req = &RC.mac[module_idP]->HI_DCI0_req[CC_idP][subframeP].hi_dci0_request_body; nfapi_hi_dci0_request_pdu_t *hi_dci0_pdu = &HI_DCI0_req->hi_dci0_pdu_list[0]; for (int i = 0; i < HI_DCI0_req->number_of_dci; i++) { @@ -1210,7 +1283,8 @@ void fill_nfapi_ulsch_harq_information(module_id_t module_idP, int CC_idP, uint16_t rntiP, - nfapi_ul_config_ulsch_harq_information *harq_information) + nfapi_ul_config_ulsch_harq_information *harq_information, + sub_frame_t subframeP) { eNB_MAC_INST *eNB = RC.mac[module_idP]; COMMON_channels_t *cc = &eNB->common_channels[CC_idP]; @@ -1261,7 +1335,7 @@ fill_nfapi_ulsch_harq_information(module_id_t module_ harq_information->harq_information_rel10.harq_size = 1; else { if (harq_information->harq_information_rel10.ack_nack_mode == 1) - harq_information->harq_information_rel10.harq_size = get_V_UL_DAI(module_idP, CC_idP, rntiP); + harq_information->harq_information_rel10.harq_size = get_V_UL_DAI(module_idP, CC_idP, rntiP, subframeP); else harq_information->harq_information_rel10.harq_size = 1; } @@ -1271,7 +1345,7 @@ fill_nfapi_ulsch_harq_information(module_id_t module_ harq_information->harq_information_rel10.harq_size = 2; } else { if (harq_information->harq_information_rel10.ack_nack_mode == 1) - harq_information->harq_information_rel10.harq_size = get_V_UL_DAI(module_idP, CC_idP, rntiP); + harq_information->harq_information_rel10.harq_size = get_V_UL_DAI(module_idP, CC_idP, rntiP, subframeP); else harq_information->harq_information_rel10.harq_size = 2; } @@ -1279,6 +1353,26 @@ fill_nfapi_ulsch_harq_information(module_id_t module_ } // get Tmode } +uint8_t Np[6][4]= {{0,1,3,5}, + {0,3,8,13}, + {0,5,13,22}, + {0,11,27,44}, + {0,16,41,66}, + {0,22,55,88}}; + +// This is part of the PUCCH allocation procedure (see Section 10.1 36.213) +uint16_t getNp(int dl_Bandwidth,uint8_t nCCE,uint8_t plus1) +{ + AssertFatal(dl_Bandwidth<6,"dl_Bandwidth %d>5\n",dl_Bandwidth); + + if (nCCE>=Np[dl_Bandwidth][2]) + return(Np[dl_Bandwidth][2+plus1]); + else if (nCCE>=Np[dl_Bandwidth][1]) + return(Np[dl_Bandwidth][1+plus1]); + else + return(Np[dl_Bandwidth][0+plus1]); +} + void fill_nfapi_harq_information(module_id_t module_idP, int CC_idP, @@ -1295,13 +1389,6 @@ fill_nfapi_harq_information(module_id_t module_idP, AssertFatal(UE_id >= 0, "UE_id cannot be found, impossible\n"); AssertFatal(UE_list != NULL, "UE_list is null\n"); -#if 0 - /* TODO: revisit, don't use Assert, it's perfectly possible to - * have physicalConfigDedicated NULL here - */ - AssertFatal(UE_list->UE_template[CC_idP][UE_id].physicalConfigDedicated != NULL, - "physicalConfigDedicated for rnti %x is null\n", rntiP); -#endif harq_information->harq_information_rel11.tl.tag = NFAPI_UL_CONFIG_REQUEST_HARQ_INFORMATION_REL11_TAG; harq_information->harq_information_rel11.num_ant_ports = 1; @@ -1313,19 +1400,22 @@ fill_nfapi_harq_information(module_id_t module_idP, case 6: case 7: if (cc->tdd_Config != NULL) { - AssertFatal(UE_list->UE_template[CC_idP][UE_id].physicalConfigDedicated->pucch_ConfigDedicated != NULL, - "pucch_ConfigDedicated is null for TDD!\n"); - if ((UE_list->UE_template[CC_idP][UE_id].physicalConfigDedicated->pucch_ConfigDedicated->tdd_AckNackFeedbackMode != NULL) +// AssertFatal(UE_list->UE_template[CC_idP][UE_id].physicalConfigDedicated->pucch_ConfigDedicated != NULL, +// "pucch_ConfigDedicated is null for TDD!\n"); + if (UE_list->UE_template[CC_idP][UE_id].physicalConfigDedicated != NULL + && UE_list->UE_template[CC_idP][UE_id].physicalConfigDedicated->pucch_ConfigDedicated != NULL + && (UE_list->UE_template[CC_idP][UE_id].physicalConfigDedicated->pucch_ConfigDedicated->tdd_AckNackFeedbackMode != NULL) && (*UE_list->UE_template[CC_idP][UE_id].physicalConfigDedicated->pucch_ConfigDedicated->tdd_AckNackFeedbackMode == PUCCH_ConfigDedicated__tdd_AckNackFeedbackMode_multiplexing)) - { - harq_information->harq_information_rel10_tdd.harq_size = 2; // 2-bit ACK/NAK - harq_information->harq_information_rel10_tdd.ack_nack_mode = 1; // multiplexing - } else { - harq_information->harq_information_rel10_tdd.harq_size = 1; // 1-bit ACK/NAK - harq_information->harq_information_rel10_tdd.ack_nack_mode = 0; // bundling + { + harq_information->harq_information_rel10_tdd.harq_size = 2; // 2-bit ACK/NAK + harq_information->harq_information_rel10_tdd.ack_nack_mode = 1; // multiplexing + } else { + harq_information->harq_information_rel10_tdd.harq_size = 1; // 1-bit ACK/NAK + harq_information->harq_information_rel10_tdd.ack_nack_mode = 0; // bundling } harq_information->harq_information_rel10_tdd.tl.tag = NFAPI_UL_CONFIG_REQUEST_HARQ_INFORMATION_REL10_TDD_TAG; - harq_information->harq_information_rel10_tdd.n_pucch_1_0 = cc->radioResourceConfigCommon->pucch_ConfigCommon.n1PUCCH_AN + cce_idxP; + harq_information->harq_information_rel10_tdd.n_pucch_1_0 = getNp(cc->mib->message.dl_Bandwidth,cce_idxP,0) + + cc->radioResourceConfigCommon->pucch_ConfigCommon.n1PUCCH_AN + cce_idxP; harq_information->harq_information_rel10_tdd.number_of_pucch_resources = 1; } else { harq_information->harq_information_rel9_fdd.tl.tag = NFAPI_UL_CONFIG_REQUEST_HARQ_INFORMATION_REL9_FDD_TAG; @@ -1403,7 +1493,7 @@ void fill_nfapi_dlsch_config(eNB_MAC_INST * eNB, nfapi_dl_config_request_body_t * dl_req, uint16_t length, - uint16_t pdu_index, + int16_t pdu_index, uint16_t rnti, uint8_t resource_allocation_type, uint8_t @@ -1463,7 +1553,7 @@ uint16_t fill_nfapi_tx_req(nfapi_tx_request_body_t *tx_req_body, uint16_t absSF, uint16_t pdu_length, - uint16_t pdu_index, + int16_t pdu_index, uint8_t *pdu) { nfapi_tx_request_pdu_t *TX_req = &tx_req_body->tx_pdu_list[tx_req_body->number_of_pdus]; @@ -1514,7 +1604,8 @@ fill_nfapi_ulsch_config_request_rel8(nfapi_ul_config_request_pdu_t *ul_config_pd ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.number_of_resource_blocks = number_of_resource_blocks; if (mcs < 11) ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.modulation_type = 2; else if (mcs < 21) ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.modulation_type = 4; - else ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.modulation_type = 6; + else if(mcs < 29) ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.modulation_type = 6; + else ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.modulation_type = 0; ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.cyclic_shift_2_for_drms = cyclic_shift_2_for_drms; ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.frequency_hopping_enabled_flag = frequency_hopping_enabled_flag; ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.frequency_hopping_bits = frequency_hopping_bits; @@ -1931,7 +2022,6 @@ int rrc_mac_remove_ue(module_id_t mod_idP, rnti_t rntiP) //------------------------------------------------------------------------------ { - int i; int j; UE_list_t *UE_list = &RC.mac[mod_idP]->UE_list; int UE_id = find_UE_id(mod_idP,rntiP); @@ -1996,17 +2086,30 @@ int rrc_mac_remove_ue(module_id_t mod_idP, rnti_t rntiP) eNB_dlsch_info[mod_idP][pCC_id][UE_id].serving_num = 0; // check if this has an RA process active - RA_t *ra; - for (i = 0; i < NB_RA_PROC_MAX; i++) { - ra = (RA_t *) & RC.mac[mod_idP]->common_channels[pCC_id].ra[i]; - if (ra->rnti == rntiP) { - ra->state = IDLE; - ra->timing_offset = 0; - ra->RRC_timer = 20; - ra->rnti = 0; - //break; + if(find_RA_id(mod_idP, pCC_id, rntiP) != -1) { + cancel_ra_proc(mod_idP, pCC_id, 0, rntiP); + } + + pthread_mutex_lock(&rrc_release_freelist); + if(rrc_release_info.num_UEs > 0){ + uint16_t release_total = 0; + for(uint16_t release_num = 0;release_num < NUMBER_OF_UE_MAX;release_num++){ + if(rrc_release_info.RRC_release_ctrl[release_num].flag > 0){ + release_total++; + }else{ + continue; + } + if(rrc_release_info.RRC_release_ctrl[release_num].rnti == rntiP){ + rrc_release_info.RRC_release_ctrl[release_num].flag = 0; + rrc_release_info.num_UEs--; + release_total--; + } + if(release_total >= rrc_release_info.num_UEs){ + break; + } } } + pthread_mutex_unlock(&rrc_release_freelist); return 0; } @@ -2795,13 +2898,13 @@ get_nCCE_max(COMMON_channels_t * cc, int num_pdcch_symbols, int subframe) // Allocate the CCEs int -allocate_CCEs(int module_idP, int CC_idP, int subframeP, int test_onlyP) +allocate_CCEs(int module_idP, int CC_idP, frame_t frameP, sub_frame_t subframeP, int test_onlyP) { int *CCE_table = RC.mac[module_idP]->CCE_table[CC_idP]; nfapi_dl_config_request_body_t *DL_req = &RC.mac[module_idP]->DL_req[CC_idP].dl_config_request_body; nfapi_hi_dci0_request_body_t *HI_DCI0_req = - &RC.mac[module_idP]->HI_DCI0_req[CC_idP].hi_dci0_request_body; + &RC.mac[module_idP]->HI_DCI0_req[CC_idP][subframeP].hi_dci0_request_body; nfapi_dl_config_request_pdu_t *dl_config_pdu = &DL_req->dl_config_pdu_list[0]; nfapi_hi_dci0_request_pdu_t *hi_dci0_pdu = @@ -2812,6 +2915,17 @@ allocate_CCEs(int module_idP, int CC_idP, int subframeP, int test_onlyP) int fCCE; int i, j, idci; int nCCE = 0; + int max_symbol; + + eNB_MAC_INST *eNB = RC.mac[module_idP]; + COMMON_channels_t *cc = &eNB->common_channels[CC_idP]; + int ackNAK_absSF = get_pucch1_absSF(cc, (frameP*10+subframeP)); + if (cc->tdd_Config!=NULL && is_S_sf(cc,subframeP) > 0) + max_symbol = 2; + else + max_symbol = 3; + + nfapi_ul_config_request_body_t *ul_req = &eNB->UL_req_tmp[CC_idP][ackNAK_absSF % 10].ul_config_request_body; LOG_D(MAC, "Allocate CCEs subframe %d, test %d : (DL PDU %d, DL DCI %d, UL %d)\n", @@ -2840,7 +2954,7 @@ allocate_CCEs(int module_idP, int CC_idP, int subframeP, int test_onlyP) if (nCCE + (dl_config_pdu[i].dci_dl_pdu. dci_dl_pdu_rel8.aggregation_level) > nCCE_max) { - if (DL_req->number_pdcch_ofdm_symbols == 3) + if (DL_req->number_pdcch_ofdm_symbols == max_symbol) goto failed; LOG_D(MAC, "Can't fit DCI allocations with %d PDCCH symbols, increasing by 1\n", @@ -2862,7 +2976,7 @@ allocate_CCEs(int module_idP, int CC_idP, int subframeP, int test_onlyP) dci_dl_pdu.dci_dl_pdu_rel8.rnti, subframeP); if (fCCE == -1) { - if (DL_req->number_pdcch_ofdm_symbols == 3) { + if (DL_req->number_pdcch_ofdm_symbols == max_symbol) { LOG_D(MAC, "subframe %d: Dropping Allocation for RNTI %x\n", subframeP, @@ -2905,7 +3019,7 @@ allocate_CCEs(int module_idP, int CC_idP, int subframeP, int test_onlyP) // the allocation is feasible, rnti rule passes nCCE += dl_config_pdu[i].dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level; LOG_D(MAC, "Allocating at nCCE %d\n", fCCE); - if (test_onlyP == 0) { + if ((test_onlyP%2) == 0) { dl_config_pdu[i].dci_dl_pdu.dci_dl_pdu_rel8.cce_idx = fCCE; LOG_D(MAC, "Allocate COMMON DCI CCEs subframe %d, test %d => L %d fCCE %d\n", @@ -2933,7 +3047,7 @@ allocate_CCEs(int module_idP, int CC_idP, int subframeP, int test_onlyP) nCCE, nCCE_max, DL_req->number_pdcch_ofdm_symbols); if (nCCE + (hi_dci0_pdu[i].dci_pdu.dci_pdu_rel8.aggregation_level) > nCCE_max) { - if (DL_req->number_pdcch_ofdm_symbols == 3) + if (DL_req->number_pdcch_ofdm_symbols == max_symbol) goto failed; LOG_D(MAC, "Can't fit DCI allocations with %d PDCCH symbols, increasing by 1\n", @@ -2954,7 +3068,7 @@ allocate_CCEs(int module_idP, int CC_idP, int subframeP, int test_onlyP) hi_dci0_pdu[i].dci_pdu.dci_pdu_rel8. rnti, subframeP); if (fCCE == -1) { - if (DL_req->number_pdcch_ofdm_symbols == 3) { + if (DL_req->number_pdcch_ofdm_symbols == max_symbol) { LOG_D(MAC, "subframe %d: Dropping Allocation for RNTI %x\n", subframeP, @@ -2994,7 +3108,7 @@ allocate_CCEs(int module_idP, int CC_idP, int subframeP, int test_onlyP) // the allocation is feasible, rnti rule passes nCCE += hi_dci0_pdu[i].dci_pdu.dci_pdu_rel8.aggregation_level; LOG_D(MAC, "Allocating at nCCE %d\n", fCCE); - if (test_onlyP == 0) { + if ((test_onlyP%2) == 0) { hi_dci0_pdu[i].dci_pdu.dci_pdu_rel8.cce_index = fCCE; LOG_D(MAC, "Allocate CCEs subframe %d, test %d\n", subframeP, test_onlyP); @@ -3018,7 +3132,7 @@ allocate_CCEs(int module_idP, int CC_idP, int subframeP, int test_onlyP) DL_req->number_pdcch_ofdm_symbols); if (nCCE + (dl_config_pdu[i].dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level) > nCCE_max) { - if (DL_req->number_pdcch_ofdm_symbols == 3) + if (DL_req->number_pdcch_ofdm_symbols == max_symbol) goto failed; LOG_D(MAC, "Can't fit DCI allocations with %d PDCCH symbols, increasing by 1\n", @@ -3036,7 +3150,7 @@ allocate_CCEs(int module_idP, int CC_idP, int subframeP, int test_onlyP) dl_config_pdu[i].dci_dl_pdu.dci_dl_pdu_rel8.rnti, subframeP); if (fCCE == -1) { - if (DL_req->number_pdcch_ofdm_symbols == 3) { + if (DL_req->number_pdcch_ofdm_symbols == max_symbol) { LOG_I(MAC, "subframe %d: Dropping Allocation for RNTI %x\n", subframeP, @@ -3044,7 +3158,7 @@ allocate_CCEs(int module_idP, int CC_idP, int subframeP, int test_onlyP) rnti); for (j = 0; j <= i; j++) { if (dl_config_pdu[j].pdu_type == NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE) - LOG_I(MAC, + LOG_D(MAC, "DCI %d/%d (%d,%d) : rnti %x dci format %d, aggreg %d nCCE %d / %d (num_pdcch_symbols %d)\n", j, DL_req->number_dci + HI_DCI0_req->number_of_dci, @@ -3076,11 +3190,25 @@ allocate_CCEs(int module_idP, int CC_idP, int subframeP, int test_onlyP) // the allocation is feasible, rnti rule passes nCCE += dl_config_pdu[i].dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level; LOG_D(MAC, "Allocating at nCCE %d\n", fCCE); - if (test_onlyP == 0) { + if ((test_onlyP%2) == 0) { dl_config_pdu[i].dci_dl_pdu.dci_dl_pdu_rel8.cce_idx = fCCE; LOG_D(MAC, "Allocate CCEs subframe %d, test %d\n", subframeP, test_onlyP); } + if ((test_onlyP/2) == 1) { + for(int ack_int = 0;ack_int < ul_req->number_of_pdus; ack_int++){ + if(((ul_req->ul_config_pdu_list[ack_int].pdu_type == NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE) || + (ul_req->ul_config_pdu_list[ack_int].pdu_type == NFAPI_UL_CONFIG_UCI_SR_HARQ_PDU_TYPE)) && + (ul_req->ul_config_pdu_list[ack_int].uci_harq_pdu.ue_information.ue_information_rel8.rnti == dl_config_pdu[i].dci_dl_pdu.dci_dl_pdu_rel8.rnti)){ + if (cc->tdd_Config==NULL) + ul_req->ul_config_pdu_list[ack_int].uci_harq_pdu.harq_information.harq_information_rel9_fdd.n_pucch_1_0 = + cc->radioResourceConfigCommon->pucch_ConfigCommon.n1PUCCH_AN + fCCE; + else + ul_req->ul_config_pdu_list[ack_int].uci_harq_pdu.harq_information.harq_information_rel10_tdd.n_pucch_1_0 = + cc->radioResourceConfigCommon->pucch_ConfigCommon.n1PUCCH_AN + fCCE + getNp(cc->mib->message.dl_Bandwidth,fCCE,0) ; + } + } + } idci++; } } // for i = 0 ... num_DL_DCIs @@ -3163,7 +3291,7 @@ CCE_allocation_infeasible(int module_idP, { nfapi_dl_config_request_body_t *DL_req = &RC.mac[module_idP]->DL_req[CC_idP].dl_config_request_body; nfapi_dl_config_request_pdu_t *dl_config_pdu = &DL_req->dl_config_pdu_list[DL_req->number_pdu]; - nfapi_hi_dci0_request_body_t *HI_DCI0_req = &RC.mac[module_idP]->HI_DCI0_req[CC_idP].hi_dci0_request_body; + nfapi_hi_dci0_request_body_t *HI_DCI0_req = &RC.mac[module_idP]->HI_DCI0_req[CC_idP][subframe].hi_dci0_request_body; nfapi_hi_dci0_request_pdu_t *hi_dci0_pdu = &HI_DCI0_req->hi_dci0_pdu_list[HI_DCI0_req->number_of_dci + HI_DCI0_req->number_of_hi]; int ret; boolean_t res = FALSE; @@ -3187,7 +3315,7 @@ CCE_allocation_infeasible(int module_idP, dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8. aggregation_level, dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type); - ret = allocate_CCEs(module_idP, CC_idP, subframe, 0); + ret = allocate_CCEs(module_idP, CC_idP, 0, subframe, 0); if (ret == -1) res = TRUE; DL_req->number_pdu--; } @@ -3202,7 +3330,7 @@ CCE_allocation_infeasible(int module_idP, hi_dci0_pdu->dci_pdu.dci_pdu_rel8.rnti = rnti; hi_dci0_pdu->dci_pdu.dci_pdu_rel8.aggregation_level = aggregation; HI_DCI0_req->number_of_dci++; - ret = allocate_CCEs(module_idP, CC_idP, subframe, 0); + ret = allocate_CCEs(module_idP, CC_idP, 0, subframe, 0); if (ret == -1) res = TRUE; HI_DCI0_req->number_of_dci--; } @@ -3210,6 +3338,204 @@ CCE_allocation_infeasible(int module_idP, return res; } +void get_retransmission_timing(TDD_Config_t *tdd_Config, frame_t *frameP, + sub_frame_t *subframeP) +{ + + if (tdd_Config == NULL) + { + if (*subframeP > 1) + *frameP = (*frameP + 1) % 1024; + *subframeP = (*subframeP + 8) % 10; + } + else + { + switch (tdd_Config->subframeAssignment)//TODO fill in other TDD configs + { + default: printf("%s:%d: TODO\n", __FILE__, __LINE__); abort(); + case 1: + if (*subframeP == 0 || *subframeP == 5) + { + *subframeP += 19; + *frameP = (*frameP + *subframeP/10) % 1024; + *subframeP %= 10; + } + else if (*subframeP == 4 || *subframeP == 9) + { + *subframeP += 16; + *frameP = (*frameP + *subframeP/10) % 1024; + *subframeP %= 10; + } + else + { + AssertFatal(2 == 1, + "Illegal dl subframe %d for tdd config %ld\n", *subframeP, + tdd_Config->subframeAssignment); + } + break; + } + } +} + +uint8_t get_dl_subframe_count(int tdd_config_sfa, sub_frame_t subframeP){ + + uint8_t tdd1[10] = {1,-1,-1,-1,2,3,-1,-1,-1,4}; // special subframes 1,6 are excluded + + switch(tdd_config_sfa){// TODO fill in other tdd configs + case 1 : + return tdd1[subframeP]; + break; + } + return -1; +} + +uint8_t frame_subframe2_dl_harq_pid(TDD_Config_t *tdd_Config, int abs_frameP, sub_frame_t subframeP){ + int harq_pid; + if(tdd_Config){ + + switch(tdd_Config->subframeAssignment){ //TODO fill in other tdd config + case 1: + harq_pid = (((frame_cnt*1024 + abs_frameP) * 4) - 1 + get_dl_subframe_count(tdd_Config->subframeAssignment,subframeP))%7;//4 dl subframe in a frame + if(harq_pid < 0) + harq_pid += 7; + LOG_D(MAC,"[frame_subframe2_dl_harq_pid] (%d,%d) calculate harq_pid ((( %d * 1024 + %d) *4) - 1 + %d) = %d \n", + (abs_frameP+1024)%1024,subframeP,frame_cnt,abs_frameP, + get_dl_subframe_count(tdd_Config->subframeAssignment,subframeP),harq_pid); + return harq_pid; + break; + } + }else{ + return ((abs_frameP*10)+subframeP)&7; + } + return -1; +} + +unsigned char ul_ACK_subframe2M(TDD_Config_t *tdd_Config,unsigned char subframe) +{ + + if (tdd_Config == NULL) { + return(1); + } else { + switch (tdd_Config->subframeAssignment) { + case 1: + return 1; // don't ACK special subframe for now + if (subframe == 2) { // ACK subframes 5 and 6 + return(2); + } else if (subframe == 3) { // ACK subframe 9 + return(1); // To be updated + } else if (subframe == 7) { // ACK subframes 0 and 1 + return(2); // To be updated + } else if (subframe == 8) { // ACK subframe 4 + return(1); // To be updated + } else { + AssertFatal(1==0,"illegal subframe %d for tdd_config %ld\n", + subframe,tdd_Config->subframeAssignment); + + } + + break; + case 3: + if (subframe == 2) { // ACK subframes 5 and 6 + return(2); // should be 3 + } else if (subframe == 3) { // ACK subframes 7 and 8 + return(2); // To be updated + } else if (subframe == 4) { // ACK subframes 9 and 0 + return(2); + } else { + AssertFatal(1==0,"illegal subframe %d for tdd_config %ld\n", + subframe,tdd_Config->subframeAssignment); + } + + break; + + case 4: + if (subframe == 2) { // ACK subframes 0,4 and 5 + return(3); // should be 4 + } else if (subframe == 3) { // ACK subframes 6,7,8 and 9 + return(4); + } else { + AssertFatal(1==0,"illegal subframe %d for tdd_config %ld\n", + subframe,tdd_Config->subframeAssignment); + } + + break; + + case 5: + if (subframe == 2) { // ACK subframes 0,3,4,5,6,7,8 and 9 + return(8); // should be 3 + } else { + AssertFatal(1==0,"illegal subframe %d for tdd_config %ld\n", + subframe,tdd_Config->subframeAssignment); + } + + break; + } + } + + return(0); +} + +unsigned char ul_ACK_subframe2dl_subframe(TDD_Config_t *tdd_Config,unsigned char subframe,unsigned char ACK_index) +{ + + if (tdd_Config == NULL) { + return((subframe<4) ? subframe+6 : subframe-4); + } else { + switch (tdd_Config->subframeAssignment) { + case 3: + if (subframe == 2) { // ACK subframes 5 and 6 + if (ACK_index==2) + return(1); + + return(5+ACK_index); + } else if (subframe == 3) { // ACK subframes 7 and 8 + return(7+ACK_index); // To be updated + } else if (subframe == 4) { // ACK subframes 9 and 0 + return((9+ACK_index)%10); + } else { + AssertFatal(1==0,"illegal subframe %d for tdd_config->subframeAssignment %ld\n", + subframe,tdd_Config->subframeAssignment); + } + + break; + + case 4: + if (subframe == 2) { // ACK subframes 0, 4 and 5 + //if (ACK_index==2) + // return(1); TBC + if (ACK_index==2) + return(0); + + return(4+ACK_index); + } else if (subframe == 3) { // ACK subframes 6, 7 8 and 9 + return(6+ACK_index); // To be updated + } else { + AssertFatal(1==0,"illegal subframe %d for tdd_config %ld\n", + subframe,tdd_Config->subframeAssignment); + } + + break; + + case 1: + if (subframe == 2) { // ACK subframes 5 and 6 + return(5+ACK_index); + } else if (subframe == 3) { // ACK subframe 9 + return(9); // To be updated + } else if (subframe == 7) { // ACK subframes 0 and 1 + return(ACK_index); // To be updated + } else if (subframe == 8) { // ACK subframe 4 + return(4); // To be updated + } else { + AssertFatal(1==0,"illegal subframe %d for tdd_config %ld\n", + subframe,tdd_Config->subframeAssignment); + } + + break; + } + } + + return(0); +} void extract_harq(module_id_t mod_idP, int CC_idP, int UE_id, @@ -3227,9 +3553,12 @@ extract_harq(module_id_t mod_idP, int CC_idP, int UE_id, int pCCid = UE_list->pCC_id[UE_id]; int spatial_bundling = 0; int tmode[5]; - int i, j; + int i, j, m; uint8_t *pdu; - + sub_frame_t subframe_tx; + int frame_tx; + uint8_t harq_pid; + #if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) if (UE_list->UE_template[pCCid][UE_id].physicalConfigDedicated != NULL && UE_list->UE_template[pCCid][UE_id].physicalConfigDedicated->pucch_ConfigDedicated != NULL && @@ -3240,95 +3569,66 @@ extract_harq(module_id_t mod_idP, int CC_idP, int UE_id, && (format == 1)))) spatial_bundling = 1; #endif - for (i = 0; i < numCC; i++) tmode[i] = get_tmode(mod_idP, i, UE_id); - + if (cc->tdd_Config) { harq_indication_tdd = (nfapi_harq_indication_tdd_rel13_t *) harq_indication; // pdu = &harq_indication_tdd->harq_tb_n[0]; - + num_ack_nak = harq_indication_tdd->number_of_ack_nack; - + switch (harq_indication_tdd->mode) { - case 0: // Format 1a/b - AssertFatal(numCC == 1, - "numCC %d > 1, should not be using Format1a/b\n", - numCC); + case 0: // Format 1a/b bundling + AssertFatal(numCC == 1, "numCC %d > 1, should not be using Format1a/b\n", numCC); + int M = ul_ACK_subframe2M(cc->tdd_Config,subframeP); + for(m=0;mtdd_Config,subframeP,m); + if(frameP==1023&&subframeP>5) + frame_tx=-1; + else + frame_tx = subframeP < 4 ? frameP -1 : frameP; + harq_pid = frame_subframe2_dl_harq_pid(cc->tdd_Config,frame_tx,subframe_tx); + RA_t *ra = &RC.mac[mod_idP]->common_channels[CC_idP].ra[0]; - uint8_t harq_pid = ((10 * frameP) + subframeP + 10236) & 7; - - LOG_I(MAC,"frame %d subframe %d harq_pid %d mode %d tmode[0] %d num_ack_nak %d round %d\n",frameP,subframeP,harq_pid,harq_indication_fdd->mode,tmode[0],num_ack_nak,sched_ctl->round[CC_idP][harq_pid]); - - AssertFatal(numCC == 1, - "numCC %d > 1, should not be using Format1a/b\n", - numCC); - - - if (tmode[0] == 1 || tmode[0] == 2 || tmode[0] == 5 || tmode[0] == 6 || tmode[0] == 7) { // NOTE: have to handle the case of TM9-10 with 1 antenna port - // single ACK/NAK bit - AssertFatal(num_ack_nak == 1, - "num_ack_nak %d > 1 for 1 CC and single-layer transmission frame:%d subframe:%d\n", - num_ack_nak,frameP,subframeP); - AssertFatal(sched_ctl->round[CC_idP][harq_pid] < 8, - "Got ACK/NAK for inactive harq_pid %d for UE %d/%x\n", - harq_pid, UE_id, rnti); - AssertFatal(pdu[0] == 1 || pdu[0] == 2 - || pdu[0] == 4, - "Received ACK/NAK %d which is not 1 or 2 for harq_pid %d from UE %d/%x\n", - pdu[0], harq_pid, UE_id, rnti); - LOG_D(MAC, "Received %d for harq_pid %d\n", pdu[0], - harq_pid); - - pdu = &harq_indication_tdd->harq_data[0].bundling.value_0; - if (pdu[0] == 1) { // ACK - sched_ctl->round[CC_idP][harq_pid] = 8; // release HARQ process - sched_ctl->tbcnt[CC_idP][harq_pid] = 0; - } else if (pdu[0] == 2 || pdu[0] == 4) // NAK (treat DTX as NAK) - sched_ctl->round[CC_idP][harq_pid]++; // increment round - } else { - // one or two ACK/NAK bits - AssertFatal(num_ack_nak <= 2, - "num_ack_nak %d > 2 for 1 CC and TM3/4/8/9/10\n", - num_ack_nak); - if ((num_ack_nak == 2) - && (sched_ctl->round[CC_idP][harq_pid] < 8) - && (sched_ctl->tbcnt[CC_idP][harq_pid] == 1) - && (pdu[0] == 1) && (pdu[1] == 1)) { - sched_ctl->round[CC_idP][harq_pid] = 8; - sched_ctl->tbcnt[CC_idP][harq_pid] = 0; + if(num_ack_nak==1){ + if(harq_indication_tdd->harq_data[0].bundling.value_0==1){ //ack + sched_ctl->round[CC_idP][harq_pid] = 8; // release HARQ process + sched_ctl->tbcnt[CC_idP][harq_pid] = 0; + LOG_D(MAC,"frame %d subframe %d Acking (%d,%d) harq_pid %d round %d\n",frameP,subframeP,frame_tx,subframe_tx,harq_pid,sched_ctl->round[CC_idP][harq_pid]); + }else{ //nack + if( sched_ctl->round[CC_idP][harq_pid]<8) sched_ctl->round[CC_idP][harq_pid]++; + if (sched_ctl->round[CC_idP][harq_pid] == 4) { + sched_ctl->round[CC_idP][harq_pid] = 8; // release HARQ process + sched_ctl->tbcnt[CC_idP][harq_pid] = 0; + } + LOG_D(MAC,"frame %d subframe %d Nacking (%d,%d) harq_pid %d round %d\n",frameP,subframeP,frame_tx,subframe_tx,harq_pid,sched_ctl->round[CC_idP][harq_pid]); + if(sched_ctl->round[CC_idP][harq_pid] == 8){ + for (uint8_t ra_i = 0; ra_i < NB_RA_PROC_MAX; ra_i++) { + if((ra[ra_i].rnti == rnti) && (ra[ra_i].state == WAITMSG4ACK)){ + //Msg NACK num to MAC ,remove UE + // add UE info to freeList + LOG_I(RRC, "put UE %x into freeList\n", rnti); + put_UE_in_freelist(mod_idP, rnti, 1); + } + } + } + } + } + for (uint8_t ra_i = 0; ra_i < NB_RA_PROC_MAX; ra_i++) { + if ((ra[ra_i].rnti == rnti) && (ra[ra_i].state == MSGCRNTI_ACK) && (ra[ra_i].crnti_harq_pid == harq_pid)) { + LOG_D(MAC,"CRNTI Reconfiguration: ACK %d rnti %x round %d frame %d subframe %d \n",harq_indication_tdd->harq_data[0].bundling.value_0,rnti,sched_ctl->round[CC_idP][harq_pid],frameP,subframeP); + if(num_ack_nak == 1 && harq_indication_tdd->harq_data[0].bundling.value_0 == 1) { + cancel_ra_proc(mod_idP, CC_idP, frameP, ra[ra_i].rnti); + }else{ + if(sched_ctl->round[CC_idP][harq_pid] == 7){ + cancel_ra_proc(mod_idP, CC_idP, frameP, ra[ra_i].rnti); + } + } + break; + } + } } - if ((num_ack_nak == 2) - && (sched_ctl->round[CC_idP][harq_pid] < 8) - && (sched_ctl->tbcnt[CC_idP][harq_pid] == 1) - && (pdu[0] == 2) && (pdu[1] == 2)) - sched_ctl->round[CC_idP][harq_pid]++; - else if (((num_ack_nak == 2) - && (sched_ctl->round[CC_idP][harq_pid] < 8) - && (sched_ctl->tbcnt[0][harq_pid] == 2) - && (pdu[0] == 1) && (pdu[1] == 2)) - || ((num_ack_nak == 2) - && (sched_ctl->round[CC_idP][harq_pid] < 8) - && (sched_ctl->tbcnt[CC_idP][harq_pid] == 2) - && (pdu[0] == 2) && (pdu[1] == 1))) { - sched_ctl->round[CC_idP][harq_pid]++; - sched_ctl->tbcnt[CC_idP][harq_pid] = 1; - } else if ((num_ack_nak == 2) - && (sched_ctl->round[CC_idP][harq_pid] < 8) - && (sched_ctl->tbcnt[CC_idP][harq_pid] == 2) - && (pdu[0] == 2) && (pdu[1] == 2)) - sched_ctl->round[CC_idP][harq_pid]++; - else - AssertFatal(1 == 0, - "Illegal ACK/NAK/round combination (%d,%d,%d,%d,%d) for harq_pid %d, UE %d/%x\n", - num_ack_nak, - sched_ctl->round[CC_idP][harq_pid], - sched_ctl->round[CC_idP][harq_pid], pdu[0], - pdu[1], harq_pid, UE_id, rnti); - } - break; - case 1: // Channel Selection - AssertFatal(1==0,"Can't do channel selection yet in TDD\n"); break; case 2: // Format 2 AssertFatal(1==0,"Can't do Format 2 yet in TDD\n"); @@ -3345,7 +3645,7 @@ extract_harq(module_id_t mod_idP, int CC_idP, int UE_id, num_ack_nak = harq_indication_fdd->number_of_ack_nack; pdu = &harq_indication_fdd->harq_tb_n[0]; - uint8_t harq_pid = ((10 * frameP) + subframeP + 10236) & 7; + harq_pid = ((10 * frameP) + subframeP + 10236) & 7; LOG_I(MAC,"frame %d subframe %d harq_pid %d mode %d tmode[0] %d num_ack_nak %d round %d\n",frameP,subframeP,harq_pid,harq_indication_fdd->mode,tmode[0],num_ack_nak,sched_ctl->round[CC_idP][harq_pid]); @@ -3369,6 +3669,22 @@ extract_harq(module_id_t mod_idP, int CC_idP, int UE_id, LOG_D(MAC, "Received %d for harq_pid %d\n", pdu[0], harq_pid); + RA_t *ra = &RC.mac[mod_idP]->common_channels[CC_idP].ra[0]; + for (uint8_t ra_i = 0; ra_i < NB_RA_PROC_MAX; ra_i++) { + if ((ra[ra_i].rnti == rnti) && (ra[ra_i].state == MSGCRNTI_ACK) && + (ra[ra_i].crnti_harq_pid == harq_pid)) { + LOG_D(MAC,"CRNTI Reconfiguration: ACK %d rnti %x round %d frame %d subframe %d \n",pdu[0],rnti,sched_ctl->round[CC_idP][harq_pid],frameP,subframeP); + if(pdu[0] == 1){ + cancel_ra_proc(mod_idP, CC_idP, frameP, ra[ra_i].rnti); + }else{ + if(sched_ctl->round[CC_idP][harq_pid] == 7){ + cancel_ra_proc(mod_idP, CC_idP, frameP, ra[ra_i].rnti); + } + } + break; + } + } + if (pdu[0] == 1) { // ACK sched_ctl->round[CC_idP][harq_pid] = 8; // release HARQ process sched_ctl->tbcnt[CC_idP][harq_pid] = 0; @@ -3378,6 +3694,16 @@ extract_harq(module_id_t mod_idP, int CC_idP, int UE_id, sched_ctl->round[CC_idP][harq_pid] = 8; // release HARQ process sched_ctl->tbcnt[CC_idP][harq_pid] = 0; } + if (sched_ctl->round[CC_idP][harq_pid] == 8){ + for (uint8_t ra_i = 0; ra_i < NB_RA_PROC_MAX; ra_i++) { + if((ra[ra_i].rnti == rnti) && (ra[ra_i].state == WAITMSG4ACK)){ + //Msg NACK num to MAC ,remove UE + // add UE info to freeList + LOG_I(RRC, "put UE %x into freeList\n", rnti); + put_UE_in_freelist(mod_idP, rnti, 1); + } + } + } } } else { // one or two ACK/NAK bits @@ -4115,6 +4441,10 @@ cqi_indication(module_id_t mod_idP, int CC_idP, frame_t frameP, extract_pusch_csi(mod_idP, CC_idP, UE_id, frameP, subframeP, pdu, rel9->length); + LOG_D(MAC,"Frame %d Subframe %d update CQI:%d\n",frameP,subframeP,sched_ctl->dl_cqi[CC_idP]); + + sched_ctl->cqi_req_flag &= (~(1 << subframeP)); + sched_ctl->cqi_received = 1; } // timing advance @@ -4140,14 +4470,6 @@ SR_indication(module_id_t mod_idP, int cc_idP, frame_t frameP, "[eNB %d][SR %x] Frame %d subframeP %d Signaling SR for UE %d on CC_id %d\n", mod_idP, rntiP, frameP, subframeP, UE_id, cc_idP); -#if 0 - UE_sched_ctrl *sched_ctl = &UE_list->UE_sched_ctrl[UE_id]; - - /* for the moment don't use ul_cqi from SR, value is too different from harq */ - sched_ctl->pucch1_snr[cc_idP] = ul_cqi; - sched_ctl->pucch1_cqi_update[cc_idP] = 1; -#endif - UE_list->UE_template[cc_idP][UE_id].ul_SR = 1; UE_list->UE_template[cc_idP][UE_id].ul_active = TRUE; VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME @@ -4193,10 +4515,9 @@ static int nack_or_dtx_reported( int i; if (cc->tdd_Config) { - LOG_W(MAC,"FAPI structures (see nfapi_harq_indication_tdd_rel13_t) are not clean. To be cleaned as well?\n"); nfapi_harq_indication_tdd_rel13_t *hi = &harq_pdu->harq_indication_tdd_rel13; for (i = 0; i < hi->number_of_ack_nack; hi++) - if (hi->harq_data[i].bundling.value_0 != 1) + if (hi->harq_data[0].bundling.value_0 != 1) //only bundling is used for tdd for now return 1; return 0; } else { diff --git a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c index 87833402be..b6d73081e0 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c @@ -36,8 +36,8 @@ #include "LAYER2/MAC/mac.h" #include "LAYER2/MAC/mac_proto.h" #include "LAYER2/MAC/mac_extern.h" -#include "UTIL/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "UTIL/OPT/opt.h" #include "OCG.h" #include "OCG_extern.h" @@ -107,6 +107,7 @@ char *ul_scheduler_type[MAX_NUM_SLICES] = {"schedule_ulsch_rnti", "schedule_ulsch_rnti", "schedule_ulsch_rnti" }; +extern mui_t rrc_eNB_mui; /* Slice Function Pointer */ slice_scheduler_ul slice_sched_ul[MAX_NUM_SLICES] = {0}; @@ -196,6 +197,10 @@ rx_sdu(const module_id_t enb_mod_idP, UE_list->UE_sched_ctrl[UE_id].round_UL[CC_idP][harq_pid], ul_cqi); + if(ul_cqi>200){ // too high energy pattern + UE_list->UE_sched_ctrl[UE_id].pusch_snr[CC_idP] = ul_cqi; + } + // AssertFatal(1==0,"ulsch in error\n"); if (UE_list->UE_sched_ctrl[UE_id].round_UL[CC_idP][harq_pid] == 3) { UE_list->UE_sched_ctrl[UE_id].ul_scheduled &= (~(1 << harq_pid)); @@ -207,6 +212,9 @@ rx_sdu(const module_id_t enb_mod_idP, UE_list->UE_template[CC_idP][UE_id].scheduled_ul_bytes -= UE_list->UE_template[CC_idP][UE_id].TBS_UL[harq_pid]; if (UE_list->UE_template[CC_idP][UE_id].scheduled_ul_bytes < 0) UE_list->UE_template[CC_idP][UE_id].scheduled_ul_bytes = 0; + + if (find_RA_id(enb_mod_idP, CC_idP, current_rnti) != -1) + cancel_ra_proc(enb_mod_idP, CC_idP, frameP, current_rnti); } else UE_list->UE_sched_ctrl[UE_id].round_UL[CC_idP][harq_pid]++; @@ -216,7 +224,9 @@ rx_sdu(const module_id_t enb_mod_idP, LOG_D(MAC, "Programming PHICH NACK for rnti %x harq_pid %d (first_rb %d)\n", current_rnti, harq_pid, first_rb); - nfapi_hi_dci0_request_t *hi_dci0_req = &mac->HI_DCI0_req[CC_idP]; + nfapi_hi_dci0_request_t *hi_dci0_req; + uint8_t sf_ahead_dl = ul_subframe2_k_phich(&mac->common_channels[CC_idP] , subframeP); + hi_dci0_req = &mac->HI_DCI0_req[CC_idP][(subframeP+sf_ahead_dl)%10]; nfapi_hi_dci0_request_body_t *hi_dci0_req_body = &hi_dci0_req->hi_dci0_request_body; nfapi_hi_dci0_request_pdu_t *hi_dci0_pdu = &hi_dci0_req_body->hi_dci0_pdu_list[hi_dci0_req_body->number_of_dci + hi_dci0_req_body->number_of_hi]; @@ -230,7 +240,7 @@ rx_sdu(const module_id_t enb_mod_idP, hi_dci0_req_body->number_of_hi++; hi_dci0_req_body->sfnsf = sfnsf_add_subframe(frameP,subframeP, 0); hi_dci0_req_body->tl.tag = NFAPI_HI_DCI0_REQUEST_BODY_TAG; - hi_dci0_req->sfn_sf = sfnsf_add_subframe(frameP,subframeP, 4); + hi_dci0_req->sfn_sf = sfnsf_add_subframe(frameP,subframeP, sf_ahead_dl); hi_dci0_req->header.message_id = NFAPI_HI_DCI0_REQUEST; return; @@ -260,7 +270,7 @@ rx_sdu(const module_id_t enb_mod_idP, (int) mac->common_channels[CC_idP]. radioResourceConfigCommon->rach_ConfigCommon. maxHARQ_Msg3Tx); - if (ra[RA_id].msg3_round == mac->common_channels[CC_idP].radioResourceConfigCommon->rach_ConfigCommon.maxHARQ_Msg3Tx - 1) { + if (ra[RA_id].msg3_round >= mac->common_channels[CC_idP].radioResourceConfigCommon->rach_ConfigCommon.maxHARQ_Msg3Tx - 1) { cancel_ra_proc(enb_mod_idP, CC_idP, frameP, current_rnti); } @@ -268,15 +278,10 @@ rx_sdu(const module_id_t enb_mod_idP, first_rb = UE_list->UE_template[CC_idP][UE_id].first_rb_ul[harq_pid]; ra[RA_id].msg3_round++; // prepare handling of retransmission - if (RC.mac[enb_mod_idP]->common_channels[CC_idP].tdd_Config == NULL) { - ra[RA_id].Msg3_frame = (ra[RA_id].Msg3_frame + ((ra[RA_id].Msg3_subframe > 1) ? 1 : 0)) % 1024; - ra[RA_id].Msg3_subframe = (ra[RA_id].Msg3_subframe + 8) % 10; - } - else { - ra[RA_id].Msg3_frame++; - ra[RA_id].Msg3_frame&=1023; - } - // add_msg3(enb_mod_idP, CC_idP, &ra[RA_id], frameP, subframeP); + get_Msg3allocret(&mac->common_channels[CC_idP], + ra[RA_id].Msg3_subframe, ra[RA_id].Msg3_frame, + &ra[RA_id].Msg3_frame, &ra[RA_id].Msg3_subframe); + add_msg3(enb_mod_idP, CC_idP, &ra[RA_id], frameP, subframeP); } /* TODO: program NACK for PHICH? */ @@ -291,6 +296,12 @@ rx_sdu(const module_id_t enb_mod_idP, } payload_ptr = parse_ulsch_header(sduP, &num_ce, &num_sdu, rx_ces, rx_lcids, rx_lengths, sdu_lenP); + if(payload_ptr == NULL){ + LOG_E(MAC,"[eNB %d][PUSCH %d] CC_id %d ulsch header unknown lcid(rnti %x, UE_id %d)\n", + enb_mod_idP, harq_pid, CC_idP,current_rnti, UE_id); + return; + } + T(T_ENB_MAC_UE_UL_PDU, T_INT(enb_mod_idP), T_INT(CC_idP), T_INT(current_rnti), T_INT(frameP), T_INT(subframeP), T_INT(harq_pid), T_INT(sdu_lenP), T_INT(num_ce), T_INT(num_sdu)); @@ -338,8 +349,8 @@ rx_sdu(const module_id_t enb_mod_idP, enb_mod_idP, frameP, subframeP, CC_idP, rx_ces[i], i, num_ce, old_rnti, old_UE_id); /* receiving CRNTI means that the current rnti has to go away */ - cancel_ra_proc(enb_mod_idP, CC_idP, frameP, - current_rnti); + //cancel_ra_proc(enb_mod_idP, CC_idP, frameP, + // current_rnti); if (old_UE_id != -1) { /* TODO: if the UE did random access (followed by a MAC uplink with * CRNTI) because none of its scheduling request was granted, then @@ -352,16 +363,45 @@ rx_sdu(const module_id_t enb_mod_idP, * We have to take care of this. As the code is, nothing is done and * the UE state in the eNB is wrong. */ - UE_id = old_UE_id; - UE_list->UE_sched_ctrl[UE_id].ul_inactivity_timer = 0; - UE_list->UE_sched_ctrl[UE_id].ul_failure_timer = 0; - if (UE_list->UE_sched_ctrl[UE_id].ul_out_of_sync > 0) { - UE_list->UE_sched_ctrl[UE_id].ul_out_of_sync = 0; - mac_eNB_rrc_ul_in_sync(enb_mod_idP, CC_idP, frameP, - subframeP, old_rnti); - } - current_rnti = old_rnti; - } + for (ii = 0; ii < NB_RA_PROC_MAX; ii++) { + ra = &mac->common_channels[CC_idP].ra[ii]; + if ((ra->rnti == current_rnti) && (ra->state != IDLE)) { + mac_rrc_data_ind(enb_mod_idP, + CC_idP, + frameP, subframeP, + old_rnti, + DCCH, + (uint8_t *) payload_ptr, + rx_lengths[i], + 0); + // prepare transmission of Msg4(RRCConnectionReconfiguration) + ra->state = MSGCRNTI; + LOG_I(MAC, + "[eNB %d] Frame %d, Subframe %d CC_id %d : (rnti %x UE_id %d) RRCConnectionReconfiguration(Msg4)\n", + enb_mod_idP, frameP, subframeP, CC_idP, old_rnti, old_UE_id); + + UE_id = old_UE_id; + current_rnti = old_rnti; + ra->rnti = old_rnti; + ra->crnti_rrc_mui = rrc_eNB_mui-1; + ra->crnti_harq_pid = -1; + //clear timer + UE_list->UE_sched_ctrl[UE_id].uplane_inactivity_timer = 0; + UE_list->UE_sched_ctrl[UE_id].ul_inactivity_timer = 0; + UE_list->UE_sched_ctrl[UE_id].ul_failure_timer = 0; + if (UE_list->UE_sched_ctrl[UE_id].ul_out_of_sync > 0) { + UE_list->UE_sched_ctrl[UE_id].ul_out_of_sync = 0; + mac_eNB_rrc_ul_in_sync(enb_mod_idP, CC_idP, frameP, + subframeP, old_rnti); + } + UE_list->UE_template[CC_idP][UE_id].ul_SR = 1; + UE_list->UE_sched_ctrl[UE_id].crnti_reconfigurationcomplete_flag = 1; + break; + } + } + } else { + cancel_ra_proc(enb_mod_idP, CC_idP, frameP,current_rnti); + } crnti_rx = 1; payload_ptr += 2; break; @@ -556,8 +596,9 @@ rx_sdu(const module_id_t enb_mod_idP, ra[ii].rach_resource_type #endif )) == -1) { - AssertFatal(1 == 0, - "[MAC][eNB] Max user count reached\n"); + LOG_E(MAC,"[MAC][eNB] Max user count reached\n"); + cancel_ra_proc(enb_mod_idP, CC_idP, frameP,current_rnti); + break; // kill RA procedure } else LOG_D(MAC, @@ -590,11 +631,22 @@ rx_sdu(const module_id_t enb_mod_idP, - // Program Msg4 PDCCH+DLSCH/MPDCCH transmission 4 subframes from now, // Check if this is ok for BL/CE, or if the rule is different - // make sure this works for all TDD configurations! - ra->Msg4_frame = frameP + ((subframeP > 5) ? 1 : 0); - ra->Msg4_subframe = (subframeP + 4) % 10; - + if(mac->common_channels[CC_idP].tdd_Config!=NULL){ + switch(mac->common_channels[CC_idP].tdd_Config->subframeAssignment){ + case 1: + ra->Msg4_frame = frameP + ((subframeP > 2) ? 1 : 0); + ra->Msg4_subframe = (subframeP + 7) % 10; + break; + default: printf("%s:%d: TODO\n", __FILE__, __LINE__); abort(); + // TODO need to be complete for other tdd configs. + } + }else{ + // Program Msg4 PDCCH+DLSCH/MPDCCH transmission 4 subframes from now, // Check if this is ok for BL/CE, or if the rule is different + ra->Msg4_frame = frameP + ((subframeP > 5) ? 1 : 0); + ra->Msg4_subframe = (subframeP + 4) % 10; + } + + UE_list->UE_sched_ctrl[UE_id].crnti_reconfigurationcomplete_flag = 0; } // if process is active } // loop on RA processes @@ -721,8 +773,12 @@ rx_sdu(const module_id_t enb_mod_idP, LOG_D(MAC, "Programming PHICH ACK for rnti %x harq_pid %d (first_rb %d)\n", current_rnti, harq_pid, first_rb); - nfapi_hi_dci0_request_t *hi_dci0_req = &mac->HI_DCI0_req[CC_idP]; - nfapi_hi_dci0_request_body_t *hi_dci0_req_body = &hi_dci0_req->hi_dci0_request_body; + nfapi_hi_dci0_request_t *hi_dci0_req; + uint8_t sf_ahead_dl = ul_subframe2_k_phich(&mac->common_channels[CC_idP] , subframeP); + hi_dci0_req = &mac->HI_DCI0_req[CC_idP][(subframeP+sf_ahead_dl)%10]; + + +nfapi_hi_dci0_request_body_t *hi_dci0_req_body = &hi_dci0_req->hi_dci0_request_body; nfapi_hi_dci0_request_pdu_t *hi_dci0_pdu = &hi_dci0_req_body->hi_dci0_pdu_list[hi_dci0_req_body->number_of_dci + hi_dci0_req_body->number_of_hi]; memset((void *) hi_dci0_pdu, 0, sizeof(nfapi_hi_dci0_request_pdu_t)); @@ -735,7 +791,7 @@ rx_sdu(const module_id_t enb_mod_idP, hi_dci0_req_body->number_of_hi++; hi_dci0_req_body->sfnsf = sfnsf_add_subframe(frameP,subframeP, 0); hi_dci0_req_body->tl.tag = NFAPI_HI_DCI0_REQUEST_BODY_TAG; - hi_dci0_req->sfn_sf = sfnsf_add_subframe(frameP,subframeP, pusch_sf_to_phich_sfoffset(& RC.mac[enb_mod_idP]->common_channels[CC_idP],subframeP)); + hi_dci0_req->sfn_sf = sfnsf_add_subframe(frameP,subframeP, sf_ahead_dl); hi_dci0_req->header.message_id = NFAPI_HI_DCI0_REQUEST; /* NN--> FK: we could either check the payload, or use a phy helper to detect a false msg3 */ @@ -745,7 +801,7 @@ rx_sdu(const module_id_t enb_mod_idP, /* if (msg3_flagP != NULL) { if( *msg3_flagP == 1 ) { - LOG_N(MAC,"[eNB %d] CC_id %d frame %d : false msg3 detection: signal phy to canceling RA and remove the UE\n", enb_mod_idP, CC_idP, frameP); + LOG_I(MAC,"[eNB %d] CC_id %d frame %d : false msg3 detection: signal phy to canceling RA and remove the UE\n", enb_mod_idP, CC_idP, frameP); *msg3_flagP=0; } } */ @@ -855,7 +911,8 @@ unsigned char *parse_ulsch_header(unsigned char *mac_header, ce_len++; } else { LOG_E(MAC, "unknown CE %d \n", lcid); - AssertFatal(1 == 0, "unknown CE"); + //AssertFatal(1 == 0, "unknown CE"); + return NULL; } } } @@ -902,6 +959,7 @@ schedule_ulsch(module_id_t module_idP, frame_t frameP, start_meas(&mac->schedule_ulsch); + int sched_frame=frameP; int sched_subframe = (subframeP + 4) % 10; cc = &mac->common_channels[0]; @@ -911,8 +969,10 @@ schedule_ulsch(module_id_t module_idP, frame_t frameP, tdd_sfa = cc->tdd_Config->subframeAssignment; switch (subframeP) { case 0: - if ((tdd_sfa == 0) || (tdd_sfa == 3) || (tdd_sfa == 6)) + if ((tdd_sfa == 0) || (tdd_sfa == 3)) sched_subframe = 4; + else if (tdd_sfa == 6) + sched_subframe = 7; else return; break; @@ -921,6 +981,8 @@ schedule_ulsch(module_id_t module_idP, frame_t frameP, sched_subframe = 7; else if (tdd_sfa == 6) sched_subframe = 8; + else + return; break; default: return; @@ -943,12 +1005,12 @@ schedule_ulsch(module_id_t module_idP, frame_t frameP, if (tdd_sfa == 0) sched_subframe = 9; else if (tdd_sfa == 6) - sched_subframe = 3; + sched_subframe = 2; else return; break; case 6: - if (tdd_sfa == 1) + if (tdd_sfa == 0 || tdd_sfa == 1) sched_subframe = 2; else if (tdd_sfa == 6) sched_subframe = 3; @@ -958,21 +1020,23 @@ schedule_ulsch(module_id_t module_idP, frame_t frameP, case 7: return; case 8: - if ((tdd_sfa >= 2) || (tdd_sfa <= 5)) - sched_subframe = 2; + if ((tdd_sfa >= 2) && (tdd_sfa <= 5)) + sched_subframe = 2; else - return; + return; break; case 9: if ((tdd_sfa == 1) || (tdd_sfa == 3) || (tdd_sfa == 4)) - sched_subframe = 3; + sched_subframe = 3; else if (tdd_sfa == 6) - sched_subframe = 4; + sched_subframe = 4; else - return; + return; break; } } + if (sched_subframe < subframeP) sched_frame++; + for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { @@ -1032,7 +1096,7 @@ schedule_ulsch(module_id_t module_idP, frame_t frameP, //total_slice_percentage_current_uplink+=slice_percentage_uplink[i]; //if (total_slice_percentage_current_uplink> 1) //total_slice_percentage_current_uplink=1; - LOG_N(MAC,"update ul scheduler slice %d\n", i); + LOG_I(MAC,"update ul scheduler slice %d\n", i); } // the new total RB share is within the range if (total_slice_percentage_uplink <= 1.0){ @@ -1040,7 +1104,7 @@ schedule_ulsch(module_id_t module_idP, frame_t frameP, // check if the number of slices has changed, and log if (n_active_slices_current_uplink != n_active_slices_uplink ){ if ((n_active_slices_uplink > 0) && (n_active_slices_uplink <= MAX_NUM_SLICES)) { - LOG_N(MAC,"[eNB %d]frame %d subframe %d: number of active UL slices has changed: %d-->%d\n", + LOG_I(MAC,"[eNB %d]frame %d subframe %d: number of active UL slices has changed: %d-->%d\n", module_idP, frameP, subframeP, n_active_slices_current_uplink, n_active_slices_uplink); n_active_slices_current_uplink = n_active_slices_uplink; } else { @@ -1052,7 +1116,7 @@ schedule_ulsch(module_id_t module_idP, frame_t frameP, // check if the slice rb share has changed, and log the console if (slice_percentage_current_uplink[i] != slice_percentage_uplink[i]){ - LOG_N(MAC,"[eNB %d][SLICE %d][UL] frame %d subframe %d: total percentage %f-->%f, slice RB percentage has changed: %f-->%f\n", + LOG_I(MAC,"[eNB %d][SLICE %d][UL] frame %d subframe %d: total percentage %f-->%f, slice RB percentage has changed: %f-->%f\n", module_idP, i, frameP, subframeP, total_slice_percentage_current_uplink, total_slice_percentage_uplink, slice_percentage_current_uplink[i], slice_percentage_uplink[i]); total_slice_percentage_current_uplink = total_slice_percentage_uplink; @@ -1062,7 +1126,7 @@ schedule_ulsch(module_id_t module_idP, frame_t frameP, // check if the slice max MCS, and log the console if (slice_maxmcs_current_uplink[i] != slice_maxmcs_uplink[i]){ if ((slice_maxmcs_uplink[i] >= 0) && (slice_maxmcs_uplink[i] <= 16)){ - LOG_N(MAC,"[eNB %d][SLICE %d][UL] frame %d subframe %d: slice MAX MCS has changed: %d-->%d\n", + LOG_I(MAC,"[eNB %d][SLICE %d][UL] frame %d subframe %d: slice MAX MCS has changed: %d-->%d\n", module_idP, i, frameP, subframeP, slice_maxmcs_current_uplink[i], slice_maxmcs_uplink[i]); slice_maxmcs_current_uplink[i] = slice_maxmcs_uplink[i]; } else { @@ -1074,7 +1138,7 @@ schedule_ulsch(module_id_t module_idP, frame_t frameP, // check if a new scheduler, and log the console if (update_ul_scheduler_current[i] != update_ul_scheduler[i]){ - LOG_N(MAC,"[eNB %d][SLICE %d][UL] frame %d subframe %d: UL scheduler for this slice is updated: %s \n", + LOG_I(MAC,"[eNB %d][SLICE %d][UL] frame %d subframe %d: UL scheduler for this slice is updated: %s \n", module_idP, i, frameP, subframeP, ul_scheduler_type[i]); update_ul_scheduler_current[i] = update_ul_scheduler[i]; } @@ -1119,8 +1183,7 @@ schedule_ulsch_rnti(module_id_t module_idP, uint8_t status = 0; uint8_t rb_table_index = -1; uint32_t cqi_req, cshift, ndi, tpc; - int32_t normalized_rx_power; - int32_t target_rx_power = -90; + int32_t normalized_rx_power, target_rx_power; static int32_t tpc_accumulated = 0; int n; int CC_id = 0; @@ -1133,19 +1196,21 @@ schedule_ulsch_rnti(module_id_t module_idP, UE_sched_ctrl *UE_sched_ctrl; int sched_frame = frameP; int rvidx_tab[4] = { 0, 2, 3, 1 }; + uint16_t ul_req_index; + uint8_t dlsch_flag; if (sched_subframeP < subframeP) sched_frame++; - nfapi_hi_dci0_request_t *hi_dci0_req = &mac->HI_DCI0_req[CC_id]; + nfapi_hi_dci0_request_t *hi_dci0_req = &mac->HI_DCI0_req[CC_id][subframeP]; nfapi_hi_dci0_request_body_t *hi_dci0_req_body = &hi_dci0_req->hi_dci0_request_body; nfapi_hi_dci0_request_pdu_t *hi_dci0_pdu; nfapi_ul_config_request_t *ul_req_tmp = &mac->UL_req_tmp[CC_id][sched_subframeP]; nfapi_ul_config_request_body_t *ul_req_tmp_body = &ul_req_tmp->ul_config_request_body; - + nfapi_ul_config_ulsch_harq_information *ulsch_harq_information; //LOG_D(MAC, "entering ulsch preprocesor\n"); - ulsch_scheduler_pre_processor(module_idP, slice_id, frameP, subframeP, first_rb); + ulsch_scheduler_pre_processor(module_idP, slice_id, frameP, subframeP, sched_subframeP, first_rb); //LOG_D(MAC, "exiting ulsch preprocesor\n"); @@ -1268,25 +1333,32 @@ schedule_ulsch_rnti(module_id_t module_idP, // reset the scheduling request UE_template->ul_SR = 0; status = mac_eNB_get_rrc_status(module_idP, rnti); - if (status < RRC_CONNECTED) - cqi_req = 0; - else if (UE_sched_ctrl->cqi_req_timer > 30) { - if (nfapi_mode) { - cqi_req = 0; - } else { - cqi_req = 1; + cqi_req = 0; + + if (status >= RRC_CONNECTED && UE_sched_ctrl->cqi_req_timer > 30) { + if (UE_sched_ctrl->cqi_received == 0) { + if (nfapi_mode) { + cqi_req = 0; + } else { + cqi_req = 1; + UE_sched_ctrl->cqi_req_flag |= 1 << sched_subframeP; + } } - UE_sched_ctrl->cqi_req_timer = 0; - } else - cqi_req = 0; + else if (UE_sched_ctrl->cqi_received == 1) { + UE_sched_ctrl->cqi_req_flag = 0; + UE_sched_ctrl->cqi_received = 0; + UE_sched_ctrl->cqi_req_timer = 0; + } + } //power control //compute the expected ULSCH RX power (for the stats) // this is the normalized RX power and this should be constant (regardless of mcs - normalized_rx_power = UE_sched_ctrl->pusch_snr[CC_id]; - target_rx_power = 158; - + //is not in dBm, unit from nfapi, converting to dBm: ToDo: Noise power hard coded to 30 + normalized_rx_power = (5*UE_sched_ctrl->pusch_snr[CC_id]-640)/10+30; + target_rx_power= mac->puSch10xSnr/10 + 30; + //printf("\n mac->puSch10xSnr = %d, normalized_rx_power = %d, target_rx_power = %d \n",mac->puSch10xSnr,normalized_rx_power,target_rx_power); // this assumes accumulated tpc // make sure that we are only sending a tpc update once a frame, otherwise the control loop will freak out int32_t framex10psubframe = UE_template->pusch_tpc_tx_frame * 10 + UE_template->pusch_tpc_tx_subframe; @@ -1411,9 +1483,10 @@ schedule_ulsch_rnti(module_id_t module_idP, hi_dci0_pdu->dci_pdu.dci_pdu_rel8.tpc = tpc; hi_dci0_pdu->dci_pdu.dci_pdu_rel8.cqi_csi_request = cqi_req; hi_dci0_pdu->dci_pdu.dci_pdu_rel8.dl_assignment_index = UE_template->DAI_ul[sched_subframeP]; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.harq_pid = harq_pid; hi_dci0_req_body->number_of_dci++; - hi_dci0_req_body->sfnsf = sfnsf_add_subframe(frameP, subframeP, 4); + hi_dci0_req_body->sfnsf = sfnsf_add_subframe(sched_frame, sched_subframeP, 0); //(frameP, subframeP, 4); hi_dci0_req_body->tl.tag = NFAPI_HI_DCI0_REQUEST_BODY_TAG; hi_dci0_req->sfn_sf = frameP<<4|subframeP; // sfnsf_add_subframe(sched_frame, sched_subframeP, 0); // sunday! @@ -1425,8 +1498,18 @@ schedule_ulsch_rnti(module_id_t module_idP, harq_pid, frameP, subframeP, UE_id, rnti, sched_frame, sched_subframeP); + ul_req_index = 0; + dlsch_flag = 0; + for(ul_req_index = 0;ul_req_index < ul_req_tmp_body->number_of_pdus;ul_req_index++){ + if(ul_req_tmp_body->ul_config_pdu_list[ul_req_index].pdu_type == NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE){ + dlsch_flag = 1; + LOG_D(MAC,"Frame %d, Subframe %d:rnti %x ul_req_index %d Switched UCI HARQ to ULSCH HARQ(first)\n",frameP,subframeP,rnti,ul_req_index); + break; + } + } + // Add UL_config PDUs - fill_nfapi_ulsch_config_request_rel8(&ul_req_tmp_body->ul_config_pdu_list[ul_req_tmp_body->number_of_pdus], cqi_req, cc, UE_template->physicalConfigDedicated, get_tmode(module_idP, CC_id, UE_id), mac->ul_handle, rnti, first_rb[CC_id], // resource_block_start + fill_nfapi_ulsch_config_request_rel8(&ul_req_tmp_body->ul_config_pdu_list[ul_req_index], cqi_req, cc, UE_template->physicalConfigDedicated, get_tmode(module_idP, CC_id, UE_id), mac->ul_handle, rnti, first_rb[CC_id], // resource_block_start rb_table[rb_table_index], // number_of_resource_blocks UE_template->mcs_UL[harq_pid], cshift, // cyclic_shift_2_for_drms 0, // frequency_hopping_enabled_flag @@ -1444,22 +1527,41 @@ schedule_ulsch_rnti(module_id_t module_idP, [rb_table_index])); #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) if (UE_template->rach_resource_type > 0) { // This is a BL/CE UE allocation - fill_nfapi_ulsch_config_request_emtc(&ul_req_tmp_body->ul_config_pdu_list[ul_req_tmp_body->number_of_pdus], UE_template->rach_resource_type > 2 ? 2 : 1, 1, //total_number_of_repetitions + fill_nfapi_ulsch_config_request_emtc(&ul_req_tmp_body->ul_config_pdu_list[ul_req_index], UE_template->rach_resource_type > 2 ? 2 : 1, 1, //total_number_of_repetitions 1, //repetition_number (frameP * 10) + subframeP); } #endif + if(dlsch_flag == 1){ + if(cqi_req == 1){ + ul_req_tmp_body->ul_config_pdu_list[ul_req_index].pdu_type = NFAPI_UL_CONFIG_ULSCH_CQI_HARQ_RI_PDU_TYPE; + ulsch_harq_information = &ul_req_tmp_body->ul_config_pdu_list[ul_req_index].ulsch_cqi_harq_ri_pdu.harq_information; + ul_req_tmp_body->ul_config_pdu_list[ul_req_index].ulsch_cqi_harq_ri_pdu.initial_transmission_parameters.initial_transmission_parameters_rel8.tl.tag=NFAPI_UL_CONFIG_REQUEST_INITIAL_TRANSMISSION_PARAMETERS_REL8_TAG; + ul_req_tmp_body->ul_config_pdu_list[ul_req_index].ulsch_cqi_harq_ri_pdu.initial_transmission_parameters.initial_transmission_parameters_rel8.n_srs_initial = 0; // last symbol not punctured + ul_req_tmp_body->ul_config_pdu_list[ul_req_index].ulsch_cqi_harq_ri_pdu.initial_transmission_parameters.initial_transmission_parameters_rel8.initial_number_of_resource_blocks = rb_table[rb_table_index]; + + }else{ + ul_req_tmp_body->ul_config_pdu_list[ul_req_index].pdu_type = NFAPI_UL_CONFIG_ULSCH_HARQ_PDU_TYPE; + ulsch_harq_information = &ul_req_tmp_body->ul_config_pdu_list[ul_req_index].ulsch_harq_pdu.harq_information; + ul_req_tmp_body->ul_config_pdu_list[ul_req_index].ulsch_harq_pdu.initial_transmission_parameters.initial_transmission_parameters_rel8.tl.tag = NFAPI_UL_CONFIG_REQUEST_INITIAL_TRANSMISSION_PARAMETERS_REL8_TAG; + ul_req_tmp_body->ul_config_pdu_list[ul_req_index].ulsch_harq_pdu.initial_transmission_parameters.initial_transmission_parameters_rel8.n_srs_initial = 0; // last symbol not punctured + ul_req_tmp_body->ul_config_pdu_list[ul_req_index].ulsch_harq_pdu.initial_transmission_parameters.initial_transmission_parameters_rel8.initial_number_of_resource_blocks = rb_table[rb_table_index]; + } + fill_nfapi_ulsch_harq_information(module_idP, CC_id,rnti, ulsch_harq_information,subframeP); + }else{ + ul_req_tmp_body->number_of_pdus++; + } + ul_req_tmp->header.message_id = NFAPI_UL_CONFIG_REQUEST; - ul_req_tmp_body->number_of_pdus++; ul_req_tmp_body->tl.tag = NFAPI_UL_CONFIG_REQUEST_BODY_TAG; mac->ul_handle++; uint16_t ul_sched_frame = sched_frame; uint16_t ul_sched_subframeP = sched_subframeP; - add_subframe(&ul_sched_frame, &ul_sched_subframeP, 2); + //add_subframe(&ul_sched_frame, &ul_sched_subframeP, 2); ul_req_tmp->sfn_sf = ul_sched_frame<<4|ul_sched_subframeP; add_ue_ulsch_info(module_idP, @@ -1479,40 +1581,21 @@ schedule_ulsch_rnti(module_id_t module_idP, T_INT(first_rb[CC_id]), T_INT(rb_table[rb_table_index]), T_INT(round)); -#if 0 - /* This is done in rx_sdu, as it has to. - * Since the code is a bit different, let's keep this version here for review, in case of problem. - */ - // fill in NAK information - - hi_dci0_pdu = &hi_dci0_req_body->hi_dci0_pdu_list[hi_dci0_req_body->number_of_dci + hi_dci0_req_body->number_of_hi]; - memset((void *) hi_dci0_pdu, 0, - sizeof(nfapi_hi_dci0_request_pdu_t)); - hi_dci0_pdu->pdu_type = NFAPI_HI_DCI0_HI_PDU_TYPE; - hi_dci0_pdu->pdu_size = 2 + sizeof(nfapi_hi_dci0_hi_pdu); - hi_dci0_pdu->hi_pdu.hi_pdu_rel8.tl.tag = NFAPI_HI_DCI0_REQUEST_HI_PDU_REL8_TAG; - hi_dci0_pdu->hi_pdu.hi_pdu_rel8.resource_block_start = UE_template->first_rb_ul[harq_pid]; - hi_dci0_pdu->hi_pdu.hi_pdu_rel8.cyclic_shift_2_for_drms = UE_template->cshift[harq_pid]; - hi_dci0_pdu->hi_pdu.hi_pdu_rel8.hi_value = 0; - hi_dci0_req_body->number_of_hi++; - hi_dci0_req_body->sfnsf = sfnsf_add_subframe(sched_frame, sched_subframeP, 0); - hi_dci0_req->sfn_sf = frameP<<4|subframeP; - hi_dci0_req->header.message_id = NFAPI_HI_DCI0_REQUEST; - - LOG_D(MAC, - "[eNB %d][PUSCH %d/%x] CC_id %d Frame %d subframeP %d Scheduled (PHICH) UE %d (mcs %d, first rb %d, nb_rb %d, TBS %d, round %d)\n", - module_idP, harq_pid, rnti, CC_id, frameP, - subframeP, UE_id, UE_template->mcs_UL[harq_pid], - UE_template->first_rb_ul[harq_pid], - UE_template->nb_rb_ul[harq_pid], - UE_template->TBS_UL[harq_pid], round); -#endif // Add UL_config PDUs LOG_D(MAC, "[PUSCH %d] Frame %d, Subframe %d: Adding UL CONFIG.Request for UE %d/%x, ulsch_frame %d, ulsch_subframe %d\n", harq_pid, frameP, subframeP, UE_id, rnti, sched_frame, sched_subframeP); - fill_nfapi_ulsch_config_request_rel8(&ul_req_tmp_body->ul_config_pdu_list[ul_req_tmp_body->number_of_pdus], cqi_req, cc, UE_template->physicalConfigDedicated, get_tmode(module_idP, CC_id, UE_id), mac->ul_handle, rnti, UE_template->first_rb_ul[harq_pid], // resource_block_start + ul_req_index = 0; + dlsch_flag = 0; + for(ul_req_index = 0;ul_req_index < ul_req_tmp_body->number_of_pdus;ul_req_index++){ + if(ul_req_tmp_body->ul_config_pdu_list[ul_req_index].pdu_type == NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE){ + dlsch_flag = 1; + LOG_D(MAC,"Frame %d, Subframe %d:rnti %x ul_req_index %d Switched UCI HARQ to ULSCH HARQ(first)\n",frameP,subframeP,rnti,ul_req_index); + break; + } + } + fill_nfapi_ulsch_config_request_rel8(&ul_req_tmp_body->ul_config_pdu_list[ul_req_index], cqi_req, cc, UE_template->physicalConfigDedicated, get_tmode(module_idP, CC_id, UE_id), mac->ul_handle, rnti, UE_template->first_rb_ul[harq_pid], // resource_block_start UE_template->nb_rb_ul[harq_pid], // number_of_resource_blocks UE_template->mcs_UL[harq_pid], cshift, // cyclic_shift_2_for_drms 0, // frequency_hopping_enabled_flag @@ -1527,14 +1610,33 @@ schedule_ulsch_rnti(module_id_t module_idP, TBS_UL[harq_pid]); #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) if (UE_template->rach_resource_type > 0) { // This is a BL/CE UE allocation - fill_nfapi_ulsch_config_request_emtc(&ul_req_tmp_body->ul_config_pdu_list[ul_req_tmp_body->number_of_pdus], UE_template->rach_resource_type > 2 ? 2 : 1, 1, //total_number_of_repetitions + fill_nfapi_ulsch_config_request_emtc(&ul_req_tmp_body->ul_config_pdu_list[ul_req_index], UE_template->rach_resource_type > 2 ? 2 : 1, 1, //total_number_of_repetitions 1, //repetition_number (frameP * 10) + subframeP); } #endif - ul_req_tmp_body->number_of_pdus++; + if(dlsch_flag == 1){ + if(cqi_req == 1){ + ul_req_tmp_body->ul_config_pdu_list[ul_req_index].pdu_type = NFAPI_UL_CONFIG_ULSCH_CQI_HARQ_RI_PDU_TYPE; + ulsch_harq_information = &ul_req_tmp_body->ul_config_pdu_list[ul_req_index].ulsch_cqi_harq_ri_pdu.harq_information; + ul_req_tmp_body->ul_config_pdu_list[ul_req_index].ulsch_cqi_harq_ri_pdu.initial_transmission_parameters.initial_transmission_parameters_rel8.tl.tag=NFAPI_UL_CONFIG_REQUEST_INITIAL_TRANSMISSION_PARAMETERS_REL8_TAG; + ul_req_tmp_body->ul_config_pdu_list[ul_req_index].ulsch_cqi_harq_ri_pdu.initial_transmission_parameters.initial_transmission_parameters_rel8.n_srs_initial = 0; // last symbol not punctured + ul_req_tmp_body->ul_config_pdu_list[ul_req_index].ulsch_cqi_harq_ri_pdu.initial_transmission_parameters.initial_transmission_parameters_rel8.initial_number_of_resource_blocks = UE_template->nb_rb_ul[harq_pid]; + + }else{ + ul_req_tmp_body->ul_config_pdu_list[ul_req_index].pdu_type = NFAPI_UL_CONFIG_ULSCH_HARQ_PDU_TYPE; + ulsch_harq_information = &ul_req_tmp_body->ul_config_pdu_list[ul_req_index].ulsch_harq_pdu.harq_information; + ul_req_tmp_body->ul_config_pdu_list[ul_req_index].ulsch_harq_pdu.initial_transmission_parameters.initial_transmission_parameters_rel8.tl.tag = NFAPI_UL_CONFIG_REQUEST_INITIAL_TRANSMISSION_PARAMETERS_REL8_TAG; + ul_req_tmp_body->ul_config_pdu_list[ul_req_index].ulsch_harq_pdu.initial_transmission_parameters.initial_transmission_parameters_rel8.n_srs_initial = 0; // last symbol not punctured + ul_req_tmp_body->ul_config_pdu_list[ul_req_index].ulsch_harq_pdu.initial_transmission_parameters.initial_transmission_parameters_rel8.initial_number_of_resource_blocks = UE_template->nb_rb_ul[harq_pid]; + } + fill_nfapi_ulsch_harq_information(module_idP, CC_id,rnti, ulsch_harq_information,subframeP); + }else{ + ul_req_tmp_body->number_of_pdus++; + } + mac->ul_handle++; ul_req_tmp_body->tl.tag = NFAPI_UL_CONFIG_REQUEST_BODY_TAG; diff --git a/openair2/LAYER2/MAC/l1_helpers.c b/openair2/LAYER2/MAC/l1_helpers.c index 0cb5c17f0f..bd640a6c88 100644 --- a/openair2/LAYER2/MAC/l1_helpers.c +++ b/openair2/LAYER2/MAC/l1_helpers.c @@ -31,7 +31,7 @@ #include "mac.h" #include "mac_extern.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "mac_proto.h" int8_t get_Po_NOMINAL_PUSCH(module_id_t module_idP, uint8_t CC_id) diff --git a/openair2/LAYER2/MAC/mac.h b/openair2/LAYER2/MAC/mac.h index fac596f406..d9e914f087 100644 --- a/openair2/LAYER2/MAC/mac.h +++ b/openair2/LAYER2/MAC/mac.h @@ -87,7 +87,7 @@ #define PCCH_PAYLOAD_SIZE_MAX 128 #define RAR_PAYLOAD_SIZE_MAX 128 -#define SCH_PAYLOAD_SIZE_MAX 4096 +#define SCH_PAYLOAD_SIZE_MAX 8192 #define DCH_PAYLOAD_SIZE_MAX 4096 /// Logical channel ids from 36-311 (Note BCCH is not specified in 36-311, uses the same as first DRB) @@ -130,11 +130,7 @@ /*!\brief Maximum number od control elemenets */ #define MAX_NUM_CE 5 /*!\brief Maximum number of random access process */ -#if defined(USRP_REC_PLAY) -#define NB_RA_PROC_MAX 1 -#else #define NB_RA_PROC_MAX 4 -#endif /*!\brief size of buffer status report table */ #define BSR_TABLE_SIZE 64 /*!\brief The power headroom reporting range is from -23 ...+40 dB and beyond, with step 1 */ @@ -328,7 +324,6 @@ typedef struct { uint8_t Buffer_size0:6; } __attribute__ ((__packed__)) BSR_LONG; -// Panos: /*!\brief mac control element: sidelink buffer status report */ typedef struct { uint8_t DST_1:4; @@ -511,7 +506,9 @@ typedef enum { MSG2, WAITMSG3, MSG4, - WAITMSG4ACK + WAITMSG4ACK, + MSGCRNTI, + MSGCRNTI_ACK } RA_state; /*!\brief UE ULSCH scheduling states*/ @@ -541,6 +538,12 @@ typedef enum { CBA_RS /// random allocation } CBA_POLICY; +/*!\brief scheduler mode */ +typedef enum { + SCHED_MODE_DEFAULT = 0, /// default cheduler + SCHED_MODE_FAIR_RR /// fair raund robin +} SCHEDULER_MODES; + /*! \brief temporary struct for ULSCH sched */ typedef struct { @@ -948,7 +951,10 @@ typedef struct { int16_t ta_update; uint16_t ul_consecutive_errors; int32_t context_active_timer; + /// timer for regular CQI request on PUSCH int32_t cqi_req_timer; + /// indicator that CQI was received on PUSCH when requested + int32_t cqi_received; int32_t ul_inactivity_timer; int32_t ul_failure_timer; uint32_t ue_reestablishment_reject_timer; @@ -984,7 +990,9 @@ typedef struct { uint8_t aperiodic_wideband_cqi1[NFAPI_CC_MAX]; uint8_t aperiodic_wideband_pmi1[NFAPI_CC_MAX]; uint8_t dl_cqi[NFAPI_CC_MAX]; - int32_t uplane_inactivity_timer; + int32_t uplane_inactivity_timer; + uint8_t crnti_reconfigurationcomplete_flag; + uint8_t cqi_req_flag; } UE_sched_ctrl; /*! \brief eNB template for the Random access information */ typedef struct { @@ -1043,6 +1051,8 @@ typedef struct { uint8_t msg2_narrowband; uint8_t msg34_narrowband; #endif + int32_t crnti_rrc_mui; + int8_t crnti_harq_pid; } RA_t; @@ -1092,6 +1102,22 @@ typedef struct { } UE_list_t; +/*! \brief deleting control information*/ +typedef struct { + ///rnti of UE + rnti_t rnti; + ///remove UE context flag + boolean_t removeContextFlg; +} UE_free_ctrl; +/*! \brief REMOVE UE list used by eNB to order UEs/CC for deleting*/ +typedef struct { + /// deleting control info + UE_free_ctrl UE_free_ctrl[NUMBER_OF_UE_MAX+1]; + int num_UEs; + int head_freelist; ///the head position of the delete list + int tail_freelist; ///the tail position of the delete list +} UE_free_list_t; + /*! \brief eNB common channels */ typedef struct { int physCellId; @@ -1180,7 +1206,7 @@ typedef struct eNB_MAC_INST_s { /// Common cell resources COMMON_channels_t common_channels[NFAPI_CC_MAX]; /// current PDU index (BCH,MCH,DLSCH) - uint16_t pdu_index[NFAPI_CC_MAX]; + int16_t pdu_index[NFAPI_CC_MAX]; /// NFAPI Config Request Structure nfapi_config_request_t config[NFAPI_CC_MAX]; @@ -1201,9 +1227,9 @@ typedef struct eNB_MAC_INST_s { nfapi_ul_config_request_t UL_req_tmp[NFAPI_CC_MAX][10]; /// Preallocated HI_DCI0 pdu list nfapi_hi_dci0_request_pdu_t - hi_dci0_pdu_list[NFAPI_CC_MAX][MAX_NUM_HI_DCI0_PDU]; + hi_dci0_pdu_list[NFAPI_CC_MAX][10][MAX_NUM_HI_DCI0_PDU]; /// NFAPI HI/DCI0 Config Request Structure - nfapi_hi_dci0_request_t HI_DCI0_req[NFAPI_CC_MAX]; + nfapi_hi_dci0_request_t HI_DCI0_req[NFAPI_CC_MAX][10]; /// Prealocated TX pdu list nfapi_tx_request_pdu_t tx_request_pdu[NFAPI_CC_MAX][MAX_NUM_TX_REQUEST_PDU]; @@ -1242,6 +1268,13 @@ typedef struct eNB_MAC_INST_s { time_stats_t rx_ulsch_sdu; // include rlc_data_ind /// processing time of eNB PCH scheduler time_stats_t schedule_pch; + + UE_free_list_t UE_free_list; + /// for scheduling selection + SCHEDULER_MODES scheduler_mode; + + int32_t puSch10xSnr; + int32_t puCch10xSnr; } eNB_MAC_INST; /* @@ -1400,12 +1433,12 @@ typedef struct { RAR_PDU RAR_pdu; /// Incoming DLSCH pdu for PHY DLSCH_PDU DLSCH_pdu[MAX_MOBILES_PER_ENB][2]; -#ifdef Rel14 - int sltx_active; - SLSCH_t slsch; - SLDCH_t sldch; - ULSCH_PDU slsch_pdu; - int slsch_lcid; +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + int sltx_active; + SLSCH_t slsch; + SLDCH_t sldch; + ULSCH_PDU slsch_pdu; + int slsch_lcid; #endif /// number of attempt for rach uint8_t RA_attempt_number; @@ -1491,13 +1524,13 @@ typedef struct { time_stats_t rx_si; /// UE PCCH rx processing time including RLC interface (mac_rrc_data_ind) time_stats_t rx_p; - /// Panos: Mutex for nfapi UL_INFO + /// Mutex for nfapi UL_INFO pthread_mutex_t UL_INFO_mutex; - /// Panos: UE_Mode variable should be used in the case of Phy_stub operation since we won't have access to PHY_VARS_UE + /// UE_Mode variable should be used in the case of Phy_stub operation since we won't have access to PHY_VARS_UE /// where the UE_mode originally is for the full stack operation mode. The transitions between the states of the UE_Mode /// will be triggered within phy_stub_ue.c in this case UE_MODE_t UE_mode[NUMBER_OF_CONNECTED_eNB_MAX]; - /// Panos: Phy_stub mode: Boolean variable to distinguish whether a Msg3 or a regular ULSCH data pdu should be generated + /// Phy_stub mode: Boolean variable to distinguish whether a Msg3 or a regular ULSCH data pdu should be generated /// after the reception of NFAPI_UL_CONFIG_ULSCH_PDU_TYPE. uint8_t first_ULSCH_Tx; uint8_t SI_Decoded; @@ -1513,6 +1546,23 @@ typedef struct { uint8_t n_adj_cells; } neigh_cell_id_t; +typedef struct { + volatile uint8_t flag; + rnti_t rnti; + mui_t rrc_eNB_mui; +}RRC_release_ctrl; + +typedef struct { + uint16_t num_UEs; + RRC_release_ctrl RRC_release_ctrl[NUMBER_OF_UE_MAX]; +} RRC_release_list_t; + +typedef struct { + uint8_t rrc_mui_num; + mui_t rrc_mui[128]; +}mac_rlc_am_muilist_t; + #include "mac_proto.h" + /*@}*/ #endif /*__LAYER2_MAC_DEFS_H__ */ diff --git a/openair2/LAYER2/MAC/mac_extern.h b/openair2/LAYER2/MAC/mac_extern.h index 4ac7cf4d58..ca72882471 100644 --- a/openair2/LAYER2/MAC/mac_extern.h +++ b/openair2/LAYER2/MAC/mac_extern.h @@ -76,4 +76,14 @@ extern uint32_t RRC_CONNECTION_FLAG; extern uint8_t rb_table[34]; +#if defined(PRE_SCD_THREAD) +extern uint16_t pre_nb_rbs_required[2][MAX_NUM_CCs][NUMBER_OF_UE_MAX]; +extern uint8_t dlsch_ue_select_tbl_in_use; +extern uint8_t new_dlsch_ue_select_tbl_in_use; +extern boolean_t pre_scd_activeUE[NUMBER_OF_UE_MAX]; +extern eNB_UE_STATS pre_scd_eNB_UE_stats[MAX_NUM_CCs][NUMBER_OF_UE_MAX]; +#endif + +extern mac_rlc_am_muilist_t rlc_am_mui; +extern SCHEDULER_MODES global_scheduler_mode; #endif //DEF_H diff --git a/openair2/LAYER2/MAC/mac_proto.h b/openair2/LAYER2/MAC/mac_proto.h index 421d908cc6..6fa79821e8 100644 --- a/openair2/LAYER2/MAC/mac_proto.h +++ b/openair2/LAYER2/MAC/mac_proto.h @@ -135,8 +135,7 @@ void schedule_ulsch_rnti(module_id_t module_idP, slice_id_t slice_idP, frame_t f @param subframe Index of subframe @param mbsfn_flag Indicates that this subframe is for MCH/MCCH */ -void fill_DLSCH_dci(module_id_t module_idP, frame_t frameP, - sub_frame_t subframe, int *mbsfn_flag); +void fill_DLSCH_dci(module_id_t module_idP,frame_t frameP,sub_frame_t subframe,int *mbsfn_flag); /** \brief UE specific DLSCH scheduling. Retrieves next ue to be schduled from round-robin scheduler and gets the appropriate harq_pid for the subframe from PHY. If the process is active and requires a retransmission, it schedules the retransmission with the same PRB count and MCS as the first transmission. Otherwise it consults RLC for DCCH/DTCH SDUs (status with maximum number of available PRBS), builds the MAC header (timing advance sent by default) and copies @param Mod_id Instance ID of eNB @@ -314,6 +313,9 @@ void cancel_ra_proc(module_id_t module_idP, int CC_id, frame_t frameP, @param Msg3_frame frame where scheduling takes place @param Msg3_subframe subframe where scheduling takes place */ + +void clear_ra_proc(module_id_t module_idP, int CC_id, frame_t frameP); + void set_msg3_subframe(module_id_t Mod_id, int CC_id, int frame, @@ -427,7 +429,7 @@ int get_nCCE_offset(int *CCE_table, const unsigned short rnti, const unsigned char subframe); -int allocate_CCEs(int module_idP, int CC_idP, int subframe, int test_only); +int allocate_CCEs(int module_idP, int CC_idP, frame_t frameP, sub_frame_t subframeP, int test_only); boolean_t CCE_allocation_infeasible(int module_idP, int CC_idP, @@ -439,6 +441,7 @@ void set_ue_dai(sub_frame_t subframeP, int UE_id, uint8_t CC_id, uint8_t tdd_config, UE_list_t * UE_list); +uint8_t frame_subframe2_dl_harq_pid(TDD_Config_t *tdd_Config, int abs_frameP, sub_frame_t subframeP); /** \brief First stage of PCH Scheduling. Gets a PCH SDU from RRC if available and computes the MCS required to transport it as a function of the SDU length. It assumes a length less than or equal to 64 bytes (MCS 6, 3 PRBs). @param Mod_id Instance ID of eNB @param frame Frame index @@ -543,7 +546,7 @@ void ue_send_mch_sdu(module_id_t module_idP, uint8_t CC_id, frame_t frameP, @param[out] sync_area return the sync area @param[out] mcch_active flag indicating whether this MCCH is active in this SF */ -int ue_query_mch(uint8_t Mod_id, uint8_t CC_id, uint32_t frame, +int ue_query_mch(module_id_t Mod_id, uint8_t CC_id, uint32_t frame, sub_frame_t subframe, uint8_t eNB_index, uint8_t * sync_area, uint8_t * mcch_active); @@ -673,6 +676,8 @@ int add_new_ue(module_id_t Mod_id, int CC_id, rnti_t rnti, int harq_pid ); int rrc_mac_remove_ue(module_id_t Mod_id, rnti_t rntiP); +void store_dlsch_buffer(module_id_t Mod_id, slice_id_t slice_id, frame_t frameP, sub_frame_t subframeP); +void assign_rbs_required(module_id_t Mod_id, slice_id_t slice_id, frame_t frameP, sub_frame_t subframe, uint16_t nb_rbs_required[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB], int min_rb_unit[NFAPI_CC_MAX]); int maxround(module_id_t Mod_id, uint16_t rnti, int frame, sub_frame_t subframe, uint8_t ul_flag); @@ -683,9 +688,17 @@ int UE_num_active_CC(UE_list_t * listP, int ue_idP); int UE_PCCID(module_id_t mod_idP, int ue_idP); rnti_t UE_RNTI(module_id_t mod_idP, int ue_idP); +uint8_t find_rb_table_index(uint8_t average_rbs); + +void set_ul_DAI(int module_idP, + int UE_idP, + int CC_idP, + int frameP, + int subframeP); void ulsch_scheduler_pre_processor(module_id_t module_idP, slice_id_t slice_id, int frameP, sub_frame_t subframeP, + unsigned char sched_subframeP, uint16_t * first_rb); void store_ulsch_buffer(module_id_t module_idP, int frameP, sub_frame_t subframeP); @@ -694,6 +707,7 @@ void assign_max_mcs_min_rb(module_id_t module_idP, int slice_id, int frameP, sub_frame_t subframeP, uint16_t * first_rb); void adjust_bsr_info(int buffer_occupancy, uint16_t TBS, UE_TEMPLATE * UE_template); + int phy_stats_exist(module_id_t Mod_id, int rnti); void sort_UEs(module_id_t Mod_idP, slice_id_t slice_id, int frameP, sub_frame_t subframeP); @@ -860,7 +874,7 @@ uint32_t allocate_prbs_sub(int nb_rb, int N_RB_DL, int N_RBG, uint8_t * rballoc); void update_ul_dci(module_id_t module_idP, uint8_t CC_id, rnti_t rnti, - uint8_t dai); + uint8_t dai, sub_frame_t subframe); int get_bw_index(module_id_t module_id, uint8_t CC_id); @@ -1018,10 +1032,10 @@ int rrc_mac_config_req_ue(module_id_t module_idP, , uint8_t num_active_cba_groups, uint16_t cba_rnti #endif -#if defined(Rel14) - ,config_action_t config_action - ,const uint32_t * const sourceL2Id - ,const uint32_t * const destinationL2Id +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,config_action_t config_action + ,const uint32_t * const sourceL2Id + ,const uint32_t * const destinationL2Id #endif ); @@ -1046,6 +1060,12 @@ uint16_t mac_computeRIV(uint16_t N_RB_DL, uint16_t RBstart, int get_phich_resource_times6(COMMON_channels_t * cc); +uint8_t frame_subframe2_dl_harq_pid(TDD_Config_t *tdd_Config, int abs_frameP, sub_frame_t subframeP); + +uint8_t ul_subframe2_k_phich(COMMON_channels_t * cc, sub_frame_t ul_subframe); + +unsigned char ul_ACK_subframe2M(TDD_Config_t *tdd_Config,unsigned char subframe); + int to_rbg(int dl_Bandwidth); int to_prb(int dl_Bandwidth); @@ -1093,7 +1113,7 @@ void extract_pusch_csi(module_id_t mod_idP, int CC_idP, int UE_id, uint16_t fill_nfapi_tx_req(nfapi_tx_request_body_t * tx_req_body, uint16_t absSF, uint16_t pdu_length, - uint16_t pdu_index, uint8_t * pdu); + int16_t pdu_index, uint8_t * pdu); void fill_nfapi_ulsch_config_request_rel8(nfapi_ul_config_request_pdu_t * ul_config_pdu, uint8_t cqi_req, @@ -1133,7 +1153,7 @@ void program_dlsch_acknak(module_id_t module_idP, int CC_idP, int UE_idP, void fill_nfapi_dlsch_config(eNB_MAC_INST * eNB, nfapi_dl_config_request_body_t * dl_req, - uint16_t length, uint16_t pdu_index, + uint16_t length, int16_t pdu_index, uint16_t rnti, uint8_t resource_allocation_type, uint8_t @@ -1167,7 +1187,8 @@ void fill_nfapi_ulsch_harq_information(module_id_t module_idP, int CC_idP, uint16_t rntiP, nfapi_ul_config_ulsch_harq_information - * harq_information); + * harq_information, + sub_frame_t subframeP); uint16_t fill_nfapi_uci_acknak(module_id_t module_idP, int CC_idP, @@ -1216,11 +1237,20 @@ uint32_t from_earfcn(int eutra_bandP, uint32_t dl_earfcn); int32_t get_uldl_offset(int eutra_bandP); int l2_init_ue(int eMBMS_active, char *uecap_xer, uint8_t cba_group_active, uint8_t HO_active); +#if defined(PRE_SCD_THREAD) +void pre_scd_nb_rbs_required( module_id_t module_idP, + frame_t frameP, + sub_frame_t subframeP, + int min_rb_unit[MAX_NUM_CCs], + uint16_t nb_rbs_required[MAX_NUM_CCs][NUMBER_OF_UE_MAX]); +#endif /*Slice related functions */ uint16_t flexran_nb_rbs_allowed_slice(float rb_percentage, int total_rbs); int ue_slice_membership(int UE_id, int slice_id); +/* from here: prototypes to get rid of compilation warnings: doc to be written by function author */ +uint8_t ul_subframe2_k_phich(COMMON_channels_t * cc, sub_frame_t ul_subframe); #endif /** @}*/ diff --git a/openair2/LAYER2/MAC/mac_vars.h b/openair2/LAYER2/MAC/mac_vars.h index 5b00387de6..76842afd38 100644 --- a/openair2/LAYER2/MAC/mac_vars.h +++ b/openair2/LAYER2/MAC/mac_vars.h @@ -142,4 +142,6 @@ DCI2_5MHz_2A_TDD_t DLSCH_alloc_pdu2; DCI1E_5MHz_2A_M10PRB_TDD_t DLSCH_alloc_pdu1E; +mac_rlc_am_muilist_t rlc_am_mui; +SCHEDULER_MODES global_scheduler_mode; #endif diff --git a/openair2/LAYER2/MAC/main.c b/openair2/LAYER2/MAC/main.c index 062ead2a20..da2d977875 100644 --- a/openair2/LAYER2/MAC/main.c +++ b/openair2/LAYER2/MAC/main.c @@ -38,7 +38,7 @@ //#include "SCHED/sched_eNB.h" #include "LAYER2/PDCP_v10.1.0/pdcp.h" #include "RRC/LTE/rrc_defs.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h" #include "common/ran_context.h" @@ -58,23 +58,28 @@ void mac_top_init_eNB(void) RC.nb_macrlc_inst); if (RC.nb_macrlc_inst > 0) { - RC.mac = - (eNB_MAC_INST **) malloc16(RC.nb_macrlc_inst * - sizeof(eNB_MAC_INST *)); + if (RC.mac == NULL){ + RC.mac = + (eNB_MAC_INST **) malloc16(RC.nb_macrlc_inst * + sizeof(eNB_MAC_INST *)); + bzero(RC.mac, RC.nb_macrlc_inst * sizeof(eNB_MAC_INST *)); + } AssertFatal(RC.mac != NULL, "can't ALLOCATE %zu Bytes for %d eNB_MAC_INST with size %zu \n", RC.nb_macrlc_inst * sizeof(eNB_MAC_INST *), RC.nb_macrlc_inst, sizeof(eNB_MAC_INST)); for (i = 0; i < RC.nb_macrlc_inst; i++) { - RC.mac[i] = (eNB_MAC_INST *) malloc16(sizeof(eNB_MAC_INST)); - AssertFatal(RC.mac != NULL, - "can't ALLOCATE %zu Bytes for %d eNB_MAC_INST with size %zu \n", - RC.nb_macrlc_inst * sizeof(eNB_MAC_INST *), - RC.nb_macrlc_inst, sizeof(eNB_MAC_INST)); - LOG_D(MAC, - "[MAIN] ALLOCATE %zu Bytes for %d eNB_MAC_INST @ %p\n", - sizeof(eNB_MAC_INST), RC.nb_macrlc_inst, RC.mac); - bzero(RC.mac[i], sizeof(eNB_MAC_INST)); + if (RC.mac[i] == NULL) { + RC.mac[i] = (eNB_MAC_INST *) malloc16(sizeof(eNB_MAC_INST)); + AssertFatal(RC.mac[i] != NULL, + "can't ALLOCATE %zu Bytes for %d eNB_MAC_INST with size %zu \n", + RC.nb_macrlc_inst * sizeof(eNB_MAC_INST *), + RC.nb_macrlc_inst, sizeof(eNB_MAC_INST)); + LOG_D(MAC, + "[MAIN] ALLOCATE %zu Bytes for %d eNB_MAC_INST @ %p\n", + sizeof(eNB_MAC_INST), RC.nb_macrlc_inst, RC.mac); + bzero(RC.mac[i], sizeof(eNB_MAC_INST)); + } RC.mac[i]->Mod_id = i; for (j = 0; j < MAX_NUM_CCs; j++) { RC.mac[i]->DL_req[j].dl_config_request_body. @@ -85,9 +90,10 @@ void mac_top_init_eNB(void) RC.mac[i]->UL_req_tmp[j][k]. ul_config_request_body.ul_config_pdu_list = RC.mac[i]->ul_config_pdu_list_tmp[j][k]; - RC.mac[i]->HI_DCI0_req[j]. - hi_dci0_request_body.hi_dci0_pdu_list = - RC.mac[i]->hi_dci0_pdu_list[j]; + for(int sf=0;sf<10;sf++){ + RC.mac[i]->HI_DCI0_req[j][sf].hi_dci0_request_body.hi_dci0_pdu_list =RC.mac[i]->hi_dci0_pdu_list[j][sf]; + } + RC.mac[i]->TX_req[j].tx_request_body.tx_pdu_list = RC.mac[i]->tx_request_pdu[j]; RC.mac[i]->ul_handle = 0; diff --git a/openair2/LAYER2/MAC/main_ue.c b/openair2/LAYER2/MAC/main_ue.c index 272ca5cddd..95f25c7ff5 100644 --- a/openair2/LAYER2/MAC/main_ue.c +++ b/openair2/LAYER2/MAC/main_ue.c @@ -38,7 +38,7 @@ #include "SCHED_UE/sched_UE.h" #include "LAYER2/PDCP_v10.1.0/pdcp.h" #include "RRC/LTE/rrc_defs.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h" diff --git a/openair2/LAYER2/MAC/pre_processor.c b/openair2/LAYER2/MAC/pre_processor.c index e9b3befc1c..16cbd3fc19 100644 --- a/openair2/LAYER2/MAC/pre_processor.c +++ b/openair2/LAYER2/MAC/pre_processor.c @@ -36,8 +36,8 @@ #include "LAYER2/MAC/mac.h" #include "LAYER2/MAC/mac_proto.h" #include "LAYER2/MAC/mac_extern.h" -#include "UTIL/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "UTIL/OPT/opt.h" #include "OCG.h" #include "OCG_extern.h" @@ -129,12 +129,12 @@ store_dlsch_buffer(module_id_t Mod_id, slice_id_t slice_id, frame_t frameP, rnti = UE_RNTI(Mod_id, UE_id); - for (i = 0; i < MAX_NUM_LCID; i++) { // loop over all the logical channels + for (i = 0; i < MAX_NUM_LCID; i++) { // loop over all the logical channels rlc_status = mac_rlc_status_ind(Mod_id, rnti, Mod_id, frameP, subframeP, ENB_FLAG_YES, MBMS_FLAG_NO, i, 0 -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif ); @@ -318,10 +318,8 @@ maxround(module_id_t Mod_id, uint16_t rnti, int frame, cc = &RC.mac[Mod_id]->common_channels[CC_id]; UE_id = find_UE_id(Mod_id, rnti); - if (cc->tdd_Config) - harq_pid = ((frame * 10) + subframe) % 10; - else - harq_pid = ((frame * 10) + subframe) & 7; + + harq_pid = frame_subframe2_dl_harq_pid(cc->tdd_Config,frame ,subframe); round = UE_list->UE_sched_ctrl[UE_id].round[CC_id][harq_pid]; if (round > round_max) { @@ -432,36 +430,6 @@ static int ue_dl_compare(const void *_a, const void *_b, void *_params) } return 0; -#if 0 - /* The above order derives from the following. */ - if (round2 > round1) { // Check first if one of the UEs has an active HARQ process which needs service and swap order - swap_UEs(UE_list, UE_id1, UE_id2, 0); - } else if (round2 == round1) { - // RK->NN : I guess this is for fairness in the scheduling. This doesn't make sense unless all UEs have the same configuration of logical channels. This should be done on the sum of all information that has to be sent. And still it wouldn't ensure fairness. It should be based on throughput seen by each UE or maybe using the head_sdu_creation_time, i.e. swap UEs if one is waiting longer for service. - // for(j=0;jUE_template[pCC_id1][UE_id1].dl_buffer_info[1] + - UE_list->UE_template[pCC_id1][UE_id1].dl_buffer_info[2]) < - (UE_list->UE_template[pCC_id2][UE_id2].dl_buffer_info[1] + - UE_list->UE_template[pCC_id2][UE_id2].dl_buffer_info[2])) { - swap_UEs(UE_list, UE_id1, UE_id2, 0); - } else if (UE_list->UE_template[pCC_id1] - [UE_id1].dl_buffer_head_sdu_creation_time_max < - UE_list->UE_template[pCC_id2] - [UE_id2].dl_buffer_head_sdu_creation_time_max) { - swap_UEs(UE_list, UE_id1, UE_id2, 0); - } else if (UE_list->UE_template[pCC_id1][UE_id1].dl_buffer_total < - UE_list->UE_template[pCC_id2][UE_id2].dl_buffer_total) { - swap_UEs(UE_list, UE_id1, UE_id2, 0); - } else if (cqi1 < cqi2) { - swap_UEs(UE_list, UE_id1, UE_id2, 0); - } - } -#endif } void decode_sorting_policy(module_id_t Mod_idP, slice_id_t slice_id) { @@ -501,8 +469,6 @@ void sort_UEs(module_id_t Mod_idP, slice_id_t slice_id, int frameP, sub_frame_t continue; if ((rnti = UE_RNTI(Mod_idP, i)) == NOT_A_RNTI) continue; - if (UE_list->UE_sched_ctrl[i].ul_out_of_sync == 1) - continue; if (!ue_slice_membership(i, slice_id)) continue; @@ -522,78 +488,6 @@ void sort_UEs(module_id_t Mod_idP, slice_id_t slice_id, int frameP, sub_frame_t } else { UE_list->head = -1; } - -#if 0 - - - int UE_id1, UE_id2; - int pCC_id1, pCC_id2; - int cqi1, cqi2, round1, round2; - int i = 0, ii = 0; //,j=0; - rnti_t rnti1, rnti2; - - UE_list_t *UE_list = &RC.mac[Mod_idP]->UE_list; - - for (i = UE_list->head; i >= 0; i = UE_list->next[i]) { - - for (ii = UE_list->next[i]; ii >= 0; ii = UE_list->next[ii]) { - - UE_id1 = i; - rnti1 = UE_RNTI(Mod_idP, UE_id1); - if (rnti1 == NOT_A_RNTI) - continue; - if (UE_list->UE_sched_ctrl[UE_id1].ul_out_of_sync == 1) - continue; - pCC_id1 = UE_PCCID(Mod_idP, UE_id1); - cqi1 = maxcqi(Mod_idP, UE_id1); // - round1 = maxround(Mod_idP, rnti1, frameP, subframeP, 0); - - UE_id2 = ii; - rnti2 = UE_RNTI(Mod_idP, UE_id2); - if (rnti2 == NOT_A_RNTI) - continue; - if (UE_list->UE_sched_ctrl[UE_id2].ul_out_of_sync == 1) - continue; - cqi2 = maxcqi(Mod_idP, UE_id2); - round2 = maxround(Mod_idP, rnti2, frameP, subframeP, 0); //mac_xface->get_ue_active_harq_pid(Mod_id,rnti2,subframe,&harq_pid2,&round2,0); - pCC_id2 = UE_PCCID(Mod_idP, UE_id2); - - if (round2 > round1) { // Check first if one of the UEs has an active HARQ process which needs service and swap order - swap_UEs(UE_list, UE_id1, UE_id2, 0); - } else if (round2 == round1) { - // RK->NN : I guess this is for fairness in the scheduling. This doesn't make sense unless all UEs have the same configuration of logical channels. This should be done on the sum of all information that has to be sent. And still it wouldn't ensure fairness. It should be based on throughput seen by each UE or maybe using the head_sdu_creation_time, i.e. swap UEs if one is waiting longer for service. - // for(j=0;jUE_template[pCC_id1][UE_id1]. - dl_buffer_info[1] + - UE_list->UE_template[pCC_id1][UE_id1]. - dl_buffer_info[2]) < - (UE_list->UE_template[pCC_id2][UE_id2]. - dl_buffer_info[1] + - UE_list->UE_template[pCC_id2][UE_id2]. - dl_buffer_info[2])) { - swap_UEs(UE_list, UE_id1, UE_id2, 0); - } else if (UE_list->UE_template[pCC_id1] - [UE_id1].dl_buffer_head_sdu_creation_time_max < - UE_list->UE_template[pCC_id2] - [UE_id2].dl_buffer_head_sdu_creation_time_max) { - swap_UEs(UE_list, UE_id1, UE_id2, 0); - } else if (UE_list->UE_template[pCC_id1][UE_id1]. - dl_buffer_total < - UE_list->UE_template[pCC_id2][UE_id2]. - dl_buffer_total) { - swap_UEs(UE_list, UE_id1, UE_id2, 0); - } else if (cqi1 < cqi2) { - swap_UEs(UE_list, UE_id1, UE_id2, 0); - } - } - } - } -#endif } void dlsch_scheduler_pre_processor_accounting(module_id_t Mod_id, @@ -638,8 +532,6 @@ void dlsch_scheduler_pre_processor_accounting(module_id_t Mod_id, if (rnti == NOT_A_RNTI) continue; - if (UE_list->UE_sched_ctrl[UE_id].ul_out_of_sync == 1) - continue; if (!ue_slice_membership(UE_id, slice_id)) continue; @@ -719,8 +611,6 @@ void dlsch_scheduler_pre_processor_accounting(module_id_t Mod_id, if (rnti == NOT_A_RNTI) continue; - if (UE_list->UE_sched_ctrl[UE_id].ul_out_of_sync == 1) - continue; if (!ue_slice_membership(UE_id, slice_id)) continue; @@ -728,11 +618,7 @@ void dlsch_scheduler_pre_processor_accounting(module_id_t Mod_id, CC_id = UE_list->ordered_CCids[ii][UE_id]; ue_sched_ctl = &UE_list->UE_sched_ctrl[UE_id]; cc = &RC.mac[Mod_id]->common_channels[CC_id]; - // TODO Can we use subframe2harqpid() here? - if (cc->tdd_Config) - harq_pid = ((frameP * 10) + subframeP) % 10; - else - harq_pid = ((frameP * 10) + subframeP) & 7; + harq_pid = frame_subframe2_dl_harq_pid(cc->tdd_Config,frameP ,subframeP); round = ue_sched_ctl->round[CC_id][harq_pid]; // control channel or retransmission @@ -797,8 +683,6 @@ void dlsch_scheduler_pre_processor_accounting(module_id_t Mod_id, // LOG_D(MAC,"UE %d rnti 0x\n", UE_id, rnti ); if (rnti == NOT_A_RNTI) continue; - if (UE_list->UE_sched_ctrl[UE_id].ul_out_of_sync == 1) - continue; if (!ue_slice_membership(UE_id, slice_id)) continue; @@ -1163,7 +1047,6 @@ dlsch_scheduler_pre_processor_reset(int module_idP, int i, j; UE_list_t *UE_list = &RC.mac[module_idP]->UE_list; UE_sched_ctrl *ue_sched_ctl = &UE_list->UE_sched_ctrl[UE_id]; - rnti_t rnti = UE_RNTI(module_idP, UE_id); uint8_t *vrb_map = RC.mac[module_idP]->common_channels[CC_id].vrb_map; int N_RB_DL = @@ -1174,7 +1057,7 @@ dlsch_scheduler_pre_processor_reset(int module_idP, #endif - LOG_D(MAC, "Running preprocessor for UE %d (%x)\n", UE_id, rnti); + LOG_D(MAC, "Running preprocessor for UE %d (%x)\n", UE_id,(int)(UE_RNTI(module_idP, UE_id))); // initialize harq_pid and round if (ue_sched_ctl->ta_timer) @@ -1401,11 +1284,12 @@ dlsch_scheduler_pre_processor_allocate(module_id_t Mod_id, /// ULSCH PRE_PROCESSOR - -void -ulsch_scheduler_pre_processor(module_id_t module_idP, - slice_id_t slice_id, int frameP, - sub_frame_t subframeP, uint16_t * first_rb) +void ulsch_scheduler_pre_processor(module_id_t module_idP, + slice_id_t slice_id, + int frameP, + sub_frame_t subframeP, + unsigned char sched_subframeP, + uint16_t *first_rb) { int16_t i; @@ -1530,7 +1414,7 @@ ulsch_scheduler_pre_processor(module_id_t module_idP, CC_id = UE_list->ordered_ULCCids[n][UE_id]; UE_template = &UE_list->UE_template[CC_id][UE_id]; harq_pid = subframe2harqpid(&RC.mac[module_idP]->common_channels[CC_id], - frameP, subframeP); + frameP, sched_subframeP); // mac_xface->get_ue_active_harq_pid(module_idP,CC_id,rnti,frameP,subframeP,&harq_pid,&round,openair_harq_UL); @@ -1601,23 +1485,8 @@ ulsch_scheduler_pre_processor(module_id_t module_idP, } } } - -#if 0 - /* this logging is wrong, ue_sched_ctl may not be valid here - * TODO: fix - */ - for (CC_id = 0; CC_id < RC.nb_mac_CC[module_idP]; CC_id++) { - - if (total_allocated_rbs[CC_id] > 0) { - LOG_D(MAC, "[eNB %d] total RB allocated for all UEs = %d/%d\n", - module_idP, total_allocated_rbs[CC_id], - ue_sched_ctl->max_rbs_allowed_slice_uplink[CC_id][slice_id] - first_rb[CC_id]); - } - } -#endif } - void assign_max_mcs_min_rb(module_id_t module_idP, int slice_id, int frameP, sub_frame_t subframeP, uint16_t * first_rb) @@ -1801,31 +1670,6 @@ static int ue_ul_compare(const void *_a, const void *_b, void *_params) return 1; return 0; - -#if 0 - /* The above order derives from the following. - * The last case is not handled: "if (UE_list->UE_template[pCCid2][UE_id2].ul_total_buffer > 0 )" - * I don't think it makes a big difference. - */ - if (round2 > round1) { - swap_UEs(UE_list, UE_id1, UE_id2, 1); - } else if (round2 == round1) { - if (UE_list->UE_template[pCCid1][UE_id1].ul_buffer_info[LCGID0] < - UE_list->UE_template[pCCid2][UE_id2].ul_buffer_info[LCGID0]) { - swap_UEs(UE_list, UE_id1, UE_id2, 1); - } else if (UE_list->UE_template[pCCid1][UE_id1].ul_total_buffer < - UE_list->UE_template[pCCid2][UE_id2].ul_total_buffer) { - swap_UEs(UE_list, UE_id1, UE_id2, 1); - } else if (UE_list->UE_template[pCCid1][UE_id1]. - pre_assigned_mcs_ul < - UE_list->UE_template[pCCid2][UE_id2]. - pre_assigned_mcs_ul) { - if (UE_list->UE_template[pCCid2][UE_id2].ul_total_buffer > 0) { - swap_UEs(UE_list, UE_id1, UE_id2, 1); - } - } - } -#endif } void sort_ue_ul(module_id_t module_idP, int frameP, sub_frame_t subframeP) @@ -1860,71 +1704,4 @@ void sort_ue_ul(module_id_t module_idP, int frameP, sub_frame_t subframeP) } else { UE_list->head_ul = -1; } - -#if 0 - int UE_id1, UE_id2; - int pCCid1, pCCid2; - int round1, round2; - int i = 0, ii = 0; - rnti_t rnti1, rnti2; - - UE_list_t *UE_list = &RC.mac[module_idP]->UE_list; - - for (i = UE_list->head_ul; i >= 0; i = UE_list->next_ul[i]) { - - //LOG_I(MAC,"sort ue ul i %d\n",i); - for (ii = UE_list->next_ul[i]; ii >= 0; ii = UE_list->next_ul[ii]) { - //LOG_I(MAC,"sort ul ue 2 ii %d\n",ii); - - UE_id1 = i; - rnti1 = UE_RNTI(module_idP, UE_id1); - - if (rnti1 == NOT_A_RNTI) - continue; - if (UE_list->UE_sched_ctrl[i].ul_out_of_sync == 1) - continue; - - - pCCid1 = UE_PCCID(module_idP, UE_id1); - round1 = maxround(module_idP, rnti1, frameP, subframeP, 1); - - UE_id2 = ii; - rnti2 = UE_RNTI(module_idP, UE_id2); - - if (rnti2 == NOT_A_RNTI) - continue; - if (UE_list->UE_sched_ctrl[UE_id2].ul_out_of_sync == 1) - continue; - - pCCid2 = UE_PCCID(module_idP, UE_id2); - round2 = maxround(module_idP, rnti2, frameP, subframeP, 1); - - if (round2 > round1) { - swap_UEs(UE_list, UE_id1, UE_id2, 1); - } else if (round2 == round1) { - if (UE_list-> - UE_template[pCCid1][UE_id1].ul_buffer_info[LCGID0] < - UE_list->UE_template[pCCid2][UE_id2]. - ul_buffer_info[LCGID0]) { - swap_UEs(UE_list, UE_id1, UE_id2, 1); - } else if (UE_list->UE_template[pCCid1][UE_id1]. - ul_total_buffer < - UE_list->UE_template[pCCid2][UE_id2]. - ul_total_buffer) { - swap_UEs(UE_list, UE_id1, UE_id2, 1); - } else if (UE_list-> - UE_template[pCCid1][UE_id1].pre_assigned_mcs_ul - < - UE_list-> - UE_template[pCCid2][UE_id2].pre_assigned_mcs_ul) - { - if (UE_list->UE_template[pCCid2][UE_id2]. - ul_total_buffer > 0) { - swap_UEs(UE_list, UE_id1, UE_id2, 1); - } - } - } - } - } -#endif } diff --git a/openair2/LAYER2/MAC/proto_NB_IoT.h b/openair2/LAYER2/MAC/proto_NB_IoT.h index 6e6d98eba1..913e3ebcce 100644 --- a/openair2/LAYER2/MAC/proto_NB_IoT.h +++ b/openair2/LAYER2/MAC/proto_NB_IoT.h @@ -33,7 +33,7 @@ #include "openair1/PHY/LTE_TRANSPORT/defs_NB_IoT.h" #include "LAYER2/MAC/defs_NB_IoT.h" #include "COMMON/platform_types.h" -#include "openair2/RRC/LITE/defs_NB_IoT.h" +#include "openair2/RRC/LTE/defs_NB_IoT.h" /** \addtogroup _mac * @{ */ diff --git a/openair2/LAYER2/MAC/ra_procedures.c b/openair2/LAYER2/MAC/ra_procedures.c index 5a66645e3d..f5df67ab64 100644 --- a/openair2/LAYER2/MAC/ra_procedures.c +++ b/openair2/LAYER2/MAC/ra_procedures.c @@ -33,13 +33,13 @@ #include "mac_extern.h" #include "mac.h" #include "mac_proto.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "PHY_INTERFACE/phy_interface_extern.h" #include "SCHED_UE/sched_UE.h" #include "COMMON/mac_rrc_primitives.h" #include "RRC/LTE/rrc_extern.h" #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "UTIL/OPT/opt.h" #include "OCG.h" #include "OCG_extern.h" @@ -299,8 +299,8 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP, int CC_id, uint8_t Size = 0; UE_MODE_t UE_mode; - // Panos: Modification for phy_stub_ue operation - if(nfapi_mode == 3) { // Panos: phy_stub_ue mode + // Modification for phy_stub_ue operation + if(nfapi_mode == 3) { // phy_stub_ue mode UE_mode = UE_mac_inst[module_idP].UE_mode[0]; LOG_D(MAC, "ue_get_rach , UE_mode: %d", UE_mode); } @@ -314,9 +314,8 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP, int CC_id, struct RACH_ConfigCommon *rach_ConfigCommon = (struct RACH_ConfigCommon *) NULL; int32_t frame_diff = 0; - mac_rlc_status_resp_t rlc_status; uint8_t dcch_header_len = 0; - uint16_t sdu_lengths[8]; + uint16_t sdu_lengths; uint8_t ulsch_buff[MAX_ULSCH_PAYLOAD_BYTES]; AssertFatal(CC_id == 0, @@ -405,17 +404,15 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP, int CC_id, [DCCH]] > 0) { // This is for triggering a transmission on DCCH using PRACH (during handover, or sending SR for example) dcch_header_len = 2 + 2; /// SHORT Subheader + C-RNTI control element - rlc_status = - mac_rlc_status_ind(module_idP, + LOG_USEDINLOG_VAR(mac_rlc_status_resp_t,rlc_status)=mac_rlc_status_ind(module_idP, UE_mac_inst[module_idP].crnti, eNB_indexP, frameP, subframeP, ENB_FLAG_NO, MBMS_FLAG_NO, DCCH, 6 -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif ); - if (UE_mac_inst[module_idP].crnti_before_ho) LOG_D(MAC, "[UE %d] Frame %d : UL-DCCH -> ULSCH, HO RRCConnectionReconfigurationComplete (%x, %x), RRC message has %d bytes to send throug PRACH (mac header len %d)\n", @@ -429,17 +426,21 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP, int CC_id, module_idP, frameP, rlc_status.bytes_in_buffer, dcch_header_len); - sdu_lengths[0] = mac_rlc_data_req(module_idP, UE_mac_inst[module_idP].crnti, eNB_indexP, frameP, ENB_FLAG_NO, MBMS_FLAG_NO, DCCH, 6, //not used + sdu_lengths = mac_rlc_data_req(module_idP, UE_mac_inst[module_idP].crnti, eNB_indexP, frameP, ENB_FLAG_NO, MBMS_FLAG_NO, DCCH, 6, //not used (char *) &ulsch_buff[0] -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif ); + if(sdu_lengths > 0) + LOG_D(MAC, "[UE %d] TX Got %d bytes for DCCH\n", + module_idP, sdu_lengths); + else + LOG_E(MAC, "[UE %d] TX DCCH error\n", + module_idP ); - LOG_D(MAC, "[UE %d] TX Got %d bytes for DCCH\n", - module_idP, sdu_lengths[0]); update_bsr(module_idP, frameP, subframeP, eNB_indexP); UE_mac_inst[module_idP]. scheduling_info.BSR[UE_mac_inst[module_idP]. diff --git a/openair2/LAYER2/MAC/rar_tools.c b/openair2/LAYER2/MAC/rar_tools.c index d97ab6580e..b70b382494 100644 --- a/openair2/LAYER2/MAC/rar_tools.c +++ b/openair2/LAYER2/MAC/rar_tools.c @@ -32,7 +32,7 @@ #include "mac_proto.h" #include "mac_extern.h" #include "SIMULATION/TOOLS/sim.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "OCG.h" #include "OCG_extern.h" #include "UTIL/OPT/opt.h" @@ -71,7 +71,16 @@ fill_rar(const module_id_t module_idP, ra->timing_offset /= 16; //T_A = N_TA/16, where N_TA should be on a 30.72Msps rar[0] = (uint8_t) (ra->timing_offset >> (2 + 4)); // 7 MSBs of timing advance + divide by 4 rar[1] = (uint8_t) (ra->timing_offset << (4 - 2)) & 0xf0; // 4 LSBs of timing advance + divide by 4 - ra->msg3_first_rb = 6; + COMMON_channels_t *cc = &RC.mac[module_idP]->common_channels[CC_id]; + if(N_RB_UL == 25){ + ra->msg3_first_rb = 1; + }else{ + if (cc->tdd_Config && N_RB_UL == 100) { + ra->msg3_first_rb = 3; + } else { + ra->msg3_first_rb = 2; + } + } ra->msg3_nb_rb = 1; uint16_t rballoc = mac_computeRIV(N_RB_UL, ra->msg3_first_rb, ra->msg3_nb_rb); // first PRB only for UL Grant rar[1] |= (rballoc >> 7) & 7; // Hopping = 0 (bit 3), 3 MSBs of rballoc @@ -80,6 +89,7 @@ fill_rar(const module_id_t module_idP, ra->msg3_TPC = 3; ra->msg3_ULdelay = 0; ra->msg3_cqireq = 0; + ra->msg3_round = 0; rar[2] |= ((ra->msg3_mcs & 0x8) >> 3); // mcs 10 rar[3] = (((ra->msg3_mcs & 0x7) << 5)) | ((ra->msg3_TPC & 7) << 2) | diff --git a/openair2/LAYER2/MAC/rar_tools_ue.c b/openair2/LAYER2/MAC/rar_tools_ue.c index 44f0f51582..991eaae052 100644 --- a/openair2/LAYER2/MAC/rar_tools_ue.c +++ b/openair2/LAYER2/MAC/rar_tools_ue.c @@ -32,7 +32,7 @@ #include "mac_proto.h" #include "mac_extern.h" #include "SIMULATION/TOOLS/sim.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "OCG.h" #include "OCG_extern.h" #include "UTIL/OPT/opt.h" diff --git a/openair2/LAYER2/MAC/ue_procedures.c b/openair2/LAYER2/MAC/ue_procedures.c index 948f6c08d0..dd78da7275 100644 --- a/openair2/LAYER2/MAC/ue_procedures.c +++ b/openair2/LAYER2/MAC/ue_procedures.c @@ -45,8 +45,8 @@ #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h" #include "RRC/LTE/rrc_extern.h" -#include "UTIL/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "UTIL/OPT/opt.h" #include "OCG.h" #include "OCG_extern.h" @@ -475,8 +475,8 @@ ue_send_sdu(module_id_t module_idP, LOG_E(MAC, "[UE %d][RAPROC] Contention detected, RA failed\n", module_idP); - if(nfapi_mode == 3) { // Panos: phy_stub mode - // Panos: Modification for phy_stub mode operation here. We only need to make sure that the ue_mode is back to + if(nfapi_mode == 3) { // phy_stub mode + // Modification for phy_stub mode operation here. We only need to make sure that the ue_mode is back to // PRACH state. LOG_I(MAC, "nfapi_mode3: Setting UE_mode BACK to PRACH 1\n"); UE_mac_inst[module_idP].UE_mode[eNB_index] = PRACH; @@ -502,7 +502,7 @@ ue_send_sdu(module_id_t module_idP, RA_contention_resolution_timer_active = 0; if(nfapi_mode == 3) // phy_stub mode { - //Panos: Modification for phy_stub mode operation here. We only need to change the ue_mode to PUSCH + // Modification for phy_stub mode operation here. We only need to change the ue_mode to PUSCH UE_mac_inst[module_idP].UE_mode[eNB_index] = PUSCH; } else { // Full stack mode @@ -519,7 +519,7 @@ ue_send_sdu(module_id_t module_idP, payload_ptr[0]); #endif - // Panos: Eliminate call to process_timing_advance for the phy_stub UE operation mode. Is this correct? + // Eliminate call to process_timing_advance for the phy_stub UE operation mode. Is this correct? if (nfapi_mode!=3) { process_timing_advance(module_idP,CC_id,payload_ptr[0]); @@ -881,17 +881,6 @@ void ue_send_sl_sdu(module_id_t module_idP, } else { //SL_DISCOVERY uint16_t len = sdu_len; LOG_I( MAC, "SL DISCOVERY \n"); - // Panos: Ask TTN if we should be calling mac_rrc_data_ind_ue() instead of mac_rrc_data_ind() now! - /*mac_rrc_data_ind(module_idP, - CC_id, - frameP,subframeP, - UE_mac_inst[module_idP].crnti, - SL_DISCOVERY, - sdu, //(uint8_t*)&UE_mac_inst[Mod_id].SL_Discovery[0].Rx_buffer.Payload[0], - len, - ENB_FLAG_NO, - eNB_index, - 0);*/ mac_rrc_data_ind_ue(module_idP, CC_id, frameP,subframeP, @@ -1623,7 +1612,6 @@ ue_get_sdu(module_id_t module_idP, int CC_id, frame_t frameP, uint8_t * ulsch_buffer, uint16_t buflen, uint8_t * access_mode) { - //LOG_I(MAC, "Panos-D: UE[%d] In ue_get_sdu() 1 \n", module_idP); uint8_t total_rlc_pdu_header_len = 0, rlc_pdu_header_len_last = 0; uint16_t buflen_remain = 0; uint8_t bsr_len = 0, bsr_ce_len = 0, bsr_header_len = 0; @@ -1853,7 +1841,7 @@ ue_get_sdu(module_id_t module_idP, int CC_id, frame_t frameP, lcid, buflen_remain, (char *)&ulsch_buff[sdu_length_total] -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif @@ -1997,7 +1985,7 @@ ue_get_sdu(module_id_t module_idP, int CC_id, frame_t frameP, // build PHR and update the timers if (phr_ce_len == sizeof(POWER_HEADROOM_CMD)) { if(nfapi_mode ==3){ - //Panos: Substitute with a static value for the MAC layer abstraction (phy_stub mode) + //Substitute with a static value for the MAC layer abstraction (phy_stub mode) phr_p->PH = 40; } else{ @@ -2212,7 +2200,6 @@ ue_get_sdu(module_id_t module_idP, int CC_id, frame_t frameP, buflen - sdu_length_total - payload_offset); // cycle through SDUs and place in ulsch_buffer if (sdu_length_total) { - //LOG_I(MAC, "Panos-D: [UE %d] ue_get_sdu() 2 before copying to ulsch_buffer, SFN/SF: %d/%d \n \n \n", module_idP, frameP, subframe); memcpy(&ulsch_buffer[payload_offset], ulsch_buff, sdu_length_total); } @@ -2311,8 +2298,6 @@ ue_scheduler(const module_id_t module_idP, #if defined(ENABLE_ITTI) MessageDef *msg_p; - const char *msg_name; - instance_t instance; int result; #endif #if UE_TIMING_TRACE @@ -2331,14 +2316,12 @@ ue_scheduler(const module_id_t module_idP, itti_poll_msg(TASK_MAC_UE, &msg_p); if (msg_p != NULL) { - msg_name = ITTI_MSG_NAME(msg_p); - instance = ITTI_MSG_INSTANCE(msg_p); switch (ITTI_MSG_ID(msg_p)) { case RRC_MAC_CCCH_DATA_REQ: LOG_I(MAC, "Received %s from %s: instance %d, frameP %d, eNB_index %d\n", - msg_name, ITTI_MSG_ORIGIN_NAME(msg_p), instance, + ITTI_MSG_NAME(msg_p), ITTI_MSG_ORIGIN_NAME(msg_p), ITTI_MSG_INSTANCE(msg_p), RRC_MAC_CCCH_DATA_REQ(msg_p).frame, RRC_MAC_CCCH_DATA_REQ(msg_p).enb_index); @@ -2347,7 +2330,7 @@ ue_scheduler(const module_id_t module_idP, default: - LOG_E(MAC, "Received unexpected message %s\n", msg_name); + LOG_E(MAC, "Received unexpected message %s\n", ITTI_MSG_NAME(msg_p)); break; } @@ -2399,7 +2382,7 @@ ue_scheduler(const module_id_t module_idP, return (PHY_RESYNCH); case RRC_Handover_failed: - LOG_N(MAC, "Handover failure for UE %d eNB_index %d\n", module_idP, + LOG_I(MAC, "Handover failure for UE %d eNB_index %d\n", module_idP, eNB_indexP); //Invalid...need to add another MAC UE state for re-connection procedure phy_config_afterHO_ue(module_idP, 0, eNB_indexP, @@ -2466,8 +2449,8 @@ ue_scheduler(const module_id_t module_idP, LOG_E(MAC, "Module id %u Contention resolution timer expired, RA failed\n", module_idP); - if(nfapi_mode == 3) { // Panos: phy_stub mode - // Panos: Modification for phy_stub mode operation here. We only need to make sure that the ue_mode is back to + if(nfapi_mode == 3) { // phy_stub mode + // Modification for phy_stub mode operation here. We only need to make sure that the ue_mode is back to // PRACH state. LOG_I(MAC, "nfapi_mode3: Setting UE_mode to PRACH 2 \n"); UE_mac_inst[module_idP].UE_mode[eNB_indexP] = PRACH; @@ -2840,7 +2823,7 @@ update_bsr(module_id_t module_idP, frame_t frameP, rlc_status = mac_rlc_status_ind(module_idP, UE_mac_inst[module_idP].crnti,eNB_index,frameP,subframeP,ENB_FLAG_NO,MBMS_FLAG_NO, lcid, 0xFFFF //TBS is not used in RLC at this step, set a special value for debug -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif ); @@ -3201,16 +3184,6 @@ SLDCH_t *ue_get_sldch(module_id_t Mod_id,int CC_id,frame_t frame_tx,sub_frame_t //UE_MAC_INST *ue = &UE_mac_inst[Mod_id]; SLDCH_t *sldch = &UE_mac_inst[Mod_id].sldch; - // Panos: Ask TTN if we should be calling mac_rrc_data_req_ue() instead of mac_rrc_data_req() now! - /*sldch->payload_length = mac_rrc_data_req(Mod_id, - CC_id, - frame_tx, - SL_DISCOVERY, - 1, - (char*)(sldch->payload), //&UE_mac_inst[Mod_id].SL_Discovery[0].Tx_buffer.Payload[0], - 0, - 0, //eNB_indexP - 0);*/ sldch->payload_length = mac_rrc_data_req_ue(Mod_id, CC_id, @@ -3291,7 +3264,7 @@ SLSCH_t *ue_get_slsch(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_ ue->slsch_lcid, req, (char*)(ue->slsch_pdu.payload + sizeof(SLSCH_SUBHEADER_24_Bit_DST_LONG)) -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,ue->sourceL2Id, ue->destinationL2Id #endif diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp.c index c77f33e308..e12fb80e1b 100644 --- a/openair2/LAYER2/PDCP_v10.1.0/pdcp.c +++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp.c @@ -42,10 +42,10 @@ #include "OCG.h" #include "OCG_extern.h" #include "otg_rx.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include #include "platform_constants.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "msc.h" #if defined(ENABLE_SECURITY) @@ -83,7 +83,7 @@ boolean_t pdcp_data_req( const sdu_size_t sdu_buffer_sizeP, unsigned char *const sdu_buffer_pP, const pdcp_transmission_mode_t modeP -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,const uint32_t * const sourceL2Id ,const uint32_t * const destinationL2Id #endif @@ -170,7 +170,7 @@ boolean_t pdcp_data_req( sdu_buffer_sizeP); #endif rlc_status = rlc_data_req(ctxt_pP, srb_flagP, MBMS_FLAG_YES, rb_idP, muiP, confirmP, sdu_buffer_sizeP, pdcp_pdu_p -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,NULL, NULL #endif ); @@ -360,7 +360,7 @@ boolean_t pdcp_data_req( LOG_F(PDCP,"\n"); #endif rlc_status = rlc_data_req(ctxt_pP, srb_flagP, MBMS_FLAG_NO, rb_idP, muiP, confirmP, pdcp_pdu_size, pdcp_pdu_p -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,sourceL2Id ,destinationL2Id #endif @@ -595,9 +595,7 @@ pdcp_data_ind( } if (pdcp_is_rx_seq_number_valid(sequence_number, pdcp_p, srb_flagP) == TRUE) { -#if 0 LOG_T(PDCP, "Incoming PDU has a sequence number (%d) in accordance with RX window\n", sequence_number); -#endif /* if (dc == PDCP_DATA_PDU ) LOG_D(PDCP, "Passing piggybacked SDU to NAS driver...\n"); else @@ -612,13 +610,9 @@ pdcp_data_ind( * XXX Till we implement in-sequence delivery and duplicate discarding * mechanism all out-of-order packets will be delivered to RRC/IP */ -#if 0 - LOG_D(PDCP, "Ignoring PDU...\n"); - free_mem_block(sdu_buffer, __func__); + LOG_W(PDCP, "Ignoring PDU...\n"); + free_mem_block(sdu_buffer_pP, __func__); return FALSE; -#else - //LOG_W(PDCP, "Delivering out-of-order SDU to upper layer...\n"); -#endif } // SRB1/2: control-plane data @@ -866,7 +860,7 @@ pdcp_data_ind( void pdcp_update_stats(const protocol_ctxt_t* const ctxt_pP){ - uint8_t pdcp_uid = 0; + uint16_t pdcp_uid = 0; uint8_t rb_id = 0; // these stats are measured for both eNB and UE on per seond basis @@ -921,16 +915,6 @@ pdcp_run ( //----------------------------------------------------------------------------- { -#if defined(ENABLE_ITTI) - MessageDef *msg_p; - const char *msg_name; - instance_t instance; - int result; - protocol_ctxt_t ctxt; -#endif - - - if (ctxt_pP->enb_flag) { start_meas(&eNB_pdcp_stats[ctxt_pP->module_id].pdcp_run); } else { @@ -945,14 +929,15 @@ pdcp_run ( VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_RUN, VCD_FUNCTION_IN); #if defined(ENABLE_ITTI) + MessageDef *msg_p; + int result; + protocol_ctxt_t ctxt; do { // Checks if a message has been sent to PDCP sub-task itti_poll_msg (ctxt_pP->enb_flag ? TASK_PDCP_ENB : TASK_PDCP_UE, &msg_p); if (msg_p != NULL) { - msg_name = ITTI_MSG_NAME (msg_p); - instance = ITTI_MSG_INSTANCE (msg_p); switch (ITTI_MSG_ID(msg_p)) { case RRC_DCCH_DATA_REQ: @@ -966,9 +951,9 @@ pdcp_run ( RRC_DCCH_DATA_REQ (msg_p).eNB_index); LOG_I(PDCP, PROTOCOL_CTXT_FMT"Received %s from %s: instance %d, rb_id %d, muiP %d, confirmP %d, mode %d\n", PROTOCOL_CTXT_ARGS(&ctxt), - msg_name, + ITTI_MSG_NAME (msg_p), ITTI_MSG_ORIGIN_NAME(msg_p), - instance, + ITTI_MSG_INSTANCE (msg_p), RRC_DCCH_DATA_REQ (msg_p).rb_id, RRC_DCCH_DATA_REQ (msg_p).muip, RRC_DCCH_DATA_REQ (msg_p).confirmp, @@ -982,7 +967,7 @@ pdcp_run ( RRC_DCCH_DATA_REQ (msg_p).sdu_size, RRC_DCCH_DATA_REQ (msg_p).sdu_p, RRC_DCCH_DATA_REQ (msg_p).mode -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) , NULL, NULL #endif ); @@ -1010,7 +995,7 @@ pdcp_run ( break; default: - LOG_E(PDCP, "Received unexpected message %s\n", msg_name); + LOG_E(PDCP, "Received unexpected message %s\n", ITTI_MSG_NAME (msg_p)); break; } @@ -1019,29 +1004,6 @@ pdcp_run ( } } while(msg_p != NULL); -# if 0 - { - MessageDef *msg_resp_p; - - msg_resp_p = itti_alloc_new_message(TASK_PDCP_ENB, MESSAGE_TEST); - - itti_send_msg_to_task(TASK_RRC_ENB, 1, msg_resp_p); - } - { - MessageDef *msg_resp_p; - - msg_resp_p = itti_alloc_new_message(TASK_PDCP_ENB, MESSAGE_TEST); - - itti_send_msg_to_task(TASK_ENB_APP, 2, msg_resp_p); - } - { - MessageDef *msg_resp_p; - - msg_resp_p = itti_alloc_new_message(TASK_PDCP_ENB, MESSAGE_TEST); - - itti_send_msg_to_task(TASK_MAC_ENB, 3, msg_resp_p); - } -# endif #endif // IP/NAS -> PDCP traffic : TX, read the pkt from the upper layer buffer @@ -1612,7 +1574,7 @@ pdcp_config_req_asn1 ( pdcp_pP->first_missing_pdu = -1; pdcp_pP->rx_hfn_offset = 0; - LOG_N(PDCP, PROTOCOL_PDCP_CTXT_FMT" Action ADD LCID %d (%s id %d) " + LOG_I(PDCP, PROTOCOL_PDCP_CTXT_FMT" Action ADD LCID %d (%s id %d) " "configured with SN size %d bits and RLC %s\n", PROTOCOL_PDCP_CTXT_ARGS(ctxt_pP,pdcp_pP), lc_idP, @@ -1661,7 +1623,7 @@ pdcp_config_req_asn1 ( pdcp_pP->seq_num_size=5; } - LOG_N(PDCP,PROTOCOL_PDCP_CTXT_FMT" Action MODIFY LCID %d " + LOG_I(PDCP,PROTOCOL_PDCP_CTXT_FMT" Action MODIFY LCID %d " "RB id %d reconfigured with SN size %d and RLC %s \n", PROTOCOL_PDCP_CTXT_ARGS(ctxt_pP,pdcp_pP), lc_idP, diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp.h b/openair2/LAYER2/PDCP_v10.1.0/pdcp.h index 6fd0621644..054bb5fac4 100644 --- a/openair2/LAYER2/PDCP_v10.1.0/pdcp.h +++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp.h @@ -34,34 +34,6 @@ #ifndef __PDCP_H__ # define __PDCP_H__ //----------------------------------------------------------------------------- -# ifdef PDCP_C -# define private_pdcp(x) x -# define protected_pdcp(x) x -# define public_pdcp(x) x -# else -# define private_pdcp(x) -# define public_pdcp(x) extern x -# ifdef PDCP_FIFO_C -# define protected_pdcp(x) extern x -# else -# define protected_pdcp(x) -# endif -# endif - -# ifdef PDCP_FIFO_C -# define private_pdcp_fifo(x) x -# define protected_pdcp_fifo(x) x -# define public_pdcp_fifo(x) x -# else -# define private_pdcp_fifo(x) -# define public_pdcp_fifo(x) extern x -# ifdef PDCP_C -# define protected_pdcp_fifo(x) extern x -# else -# define protected_pdcp_fifo(x) -# endif -# endif -//----------------------------------------------------------------------------- #ifndef NON_ACCESS_STRATUM #include "UTIL/MEM/mem_block.h" #include "UTIL/LISTS/list.h" @@ -94,41 +66,41 @@ extern int pdcp_instance_cnt; int init_pdcp_thread(void); void cleanup_pdcp_thread(void); -public_pdcp(uint32_t Pdcp_stats_tx_window_ms[MAX_NUM_CCs][MAX_MOBILES_PER_ENB]); -public_pdcp(uint32_t Pdcp_stats_tx_bytes[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]); -public_pdcp(uint32_t Pdcp_stats_tx_bytes_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]); -public_pdcp(uint32_t Pdcp_stats_tx_bytes_tmp_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]); -public_pdcp(uint32_t Pdcp_stats_tx[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]); -public_pdcp(uint32_t Pdcp_stats_tx_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]); -public_pdcp(uint32_t Pdcp_stats_tx_tmp_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]); -public_pdcp(uint32_t Pdcp_stats_tx_sn[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]); -public_pdcp(uint32_t Pdcp_stats_tx_throughput_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]); -public_pdcp(uint32_t Pdcp_stats_tx_aiat[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]); -public_pdcp(uint32_t Pdcp_stats_tx_aiat_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]); -public_pdcp(uint32_t Pdcp_stats_tx_aiat_tmp_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]); -public_pdcp(uint32_t Pdcp_stats_tx_iat[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]); +uint32_t Pdcp_stats_tx_window_ms[MAX_NUM_CCs][MAX_MOBILES_PER_ENB]; +uint32_t Pdcp_stats_tx_bytes[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]; +uint32_t Pdcp_stats_tx_bytes_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]; +uint32_t Pdcp_stats_tx_bytes_tmp_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]; +uint32_t Pdcp_stats_tx[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]; +uint32_t Pdcp_stats_tx_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]; +uint32_t Pdcp_stats_tx_tmp_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]; +uint32_t Pdcp_stats_tx_sn[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]; +uint32_t Pdcp_stats_tx_throughput_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]; +uint32_t Pdcp_stats_tx_aiat[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]; +uint32_t Pdcp_stats_tx_aiat_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]; +uint32_t Pdcp_stats_tx_aiat_tmp_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]; +uint32_t Pdcp_stats_tx_iat[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]; -public_pdcp(uint32_t Pdcp_stats_rx_window_ms[MAX_NUM_CCs][MAX_MOBILES_PER_ENB]); -public_pdcp(uint32_t Pdcp_stats_rx[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]); -public_pdcp(uint32_t Pdcp_stats_rx_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]); -public_pdcp(uint32_t Pdcp_stats_rx_tmp_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]); -public_pdcp(uint32_t Pdcp_stats_rx_bytes[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]); -public_pdcp(uint32_t Pdcp_stats_rx_bytes_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]); -public_pdcp(uint32_t Pdcp_stats_rx_bytes_tmp_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]); -public_pdcp(uint32_t Pdcp_stats_rx_sn[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]); -public_pdcp(uint32_t Pdcp_stats_rx_goodput_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]); -public_pdcp(uint32_t Pdcp_stats_rx_aiat[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]); -public_pdcp(uint32_t Pdcp_stats_rx_aiat_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]); -public_pdcp(uint32_t Pdcp_stats_rx_aiat_tmp_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]); -public_pdcp(uint32_t Pdcp_stats_rx_iat[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]); -public_pdcp(uint32_t Pdcp_stats_rx_outoforder[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]); +uint32_t Pdcp_stats_rx_window_ms[MAX_NUM_CCs][MAX_MOBILES_PER_ENB]; +uint32_t Pdcp_stats_rx[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]; +uint32_t Pdcp_stats_rx_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]; +uint32_t Pdcp_stats_rx_tmp_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]; +uint32_t Pdcp_stats_rx_bytes[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]; +uint32_t Pdcp_stats_rx_bytes_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]; +uint32_t Pdcp_stats_rx_bytes_tmp_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]; +uint32_t Pdcp_stats_rx_sn[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]; +uint32_t Pdcp_stats_rx_goodput_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]; +uint32_t Pdcp_stats_rx_aiat[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]; +uint32_t Pdcp_stats_rx_aiat_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]; +uint32_t Pdcp_stats_rx_aiat_tmp_w[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]; +uint32_t Pdcp_stats_rx_iat[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]; +uint32_t Pdcp_stats_rx_outoforder[MAX_NUM_CCs][MAX_MOBILES_PER_ENB][NB_RB_MAX]; -public_pdcp(void pdcp_update_perioidical_stats(const protocol_ctxt_t* const ctxt_pP)); +void pdcp_update_perioidical_stats(const protocol_ctxt_t* const ctxt_pP); /*Packet Probing for agent PDCP*/ -//public_pdcp(uint64_t *pdcp_packet_counter); -//public_pdcp(uint64_t *pdcp_size_packet); +//uint64_t *pdcp_packet_counter; +//uint64_t *pdcp_size_packet; typedef struct pdcp_enb_s { // used for eNB stats generation uint16_t uid[MAX_MOBILES_PER_ENB]; @@ -141,7 +113,7 @@ typedef struct pdcp_enb_s { } pdcp_enb_t; -public_pdcp(pdcp_enb_t pdcp_enb[MAX_NUM_CCs]); +pdcp_enb_t pdcp_enb[MAX_NUM_CCs]; typedef struct pdcp_stats_s { time_stats_t pdcp_run; @@ -251,7 +223,7 @@ typedef struct pdcp_mbms_s { * \note None * @ingroup _pdcp */ -public_pdcp(boolean_t pdcp_data_req( +boolean_t pdcp_data_req( protocol_ctxt_t* ctxt_pP, const srb_flag_t srb_flagP, const rb_id_t rb_id, @@ -260,11 +232,11 @@ public_pdcp(boolean_t pdcp_data_req( const sdu_size_t sdu_buffer_size, unsigned char* const sdu_buffer, const pdcp_transmission_mode_t mode -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,const uint32_t * const sourceL2Id ,const uint32_t * const destinationL2Id #endif - )); + ); /*! \fn boolean_t pdcp_data_ind(const protocol_ctxt_t* const, srb_flag_t, MBMS_flag_t, rb_id_t, sdu_size_t, mem_block_t*, boolean_t) * \brief This functions handles data transfer indications coming from RLC @@ -279,13 +251,13 @@ public_pdcp(boolean_t pdcp_data_req( * \note None * @ingroup _pdcp */ -public_pdcp(boolean_t pdcp_data_ind( +boolean_t pdcp_data_ind( const protocol_ctxt_t* const ctxt_pP, const srb_flag_t srb_flagP, const MBMS_flag_t MBMS_flagP, const rb_id_t rb_id, const sdu_size_t sdu_buffer_size, - mem_block_t* const sdu_buffer)); + mem_block_t* const sdu_buffer); /*! \fn void rrc_pdcp_config_req(const protocol_ctxt_t* const ,uint32_t,rb_id_t,uint8_t) * \brief This functions initializes relevant PDCP entity @@ -297,12 +269,12 @@ public_pdcp(boolean_t pdcp_data_ind( * \note None * @ingroup _pdcp */ -public_pdcp(void rrc_pdcp_config_req ( +void rrc_pdcp_config_req ( const protocol_ctxt_t* const ctxt_pP, const srb_flag_t srb_flagP, const uint32_t actionP, const rb_id_t rb_idP, - const uint8_t security_modeP);) + const uint8_t security_modeP); /*! \fn bool rrc_pdcp_config_asn1_req (const protocol_ctxt_t* const , SRB_ToAddModList_t* srb2add_list, DRB_ToAddModList_t* drb2add_list, DRB_ToReleaseList_t* drb2release_list) * \brief Function for RRC to configure a Radio Bearer. @@ -318,8 +290,7 @@ public_pdcp(void rrc_pdcp_config_req ( * \param[in] defaultDRB Default DRB ID * \return A status about the processing, OK or error code. */ -public_pdcp( - boolean_t rrc_pdcp_config_asn1_req ( +boolean_t rrc_pdcp_config_asn1_req ( const protocol_ctxt_t* const ctxt_pP, SRB_ToAddModList_t *const srb2add_list, DRB_ToAddModList_t *const drb2add_list, @@ -332,7 +303,7 @@ public_pdcp( ,PMCH_InfoList_r9_t *pmch_InfoList_r9 #endif ,rb_id_t *const defaultDRB - )); + ); /*! \fn boolean_t pdcp_config_req_asn1 (const protocol_ctxt_t* const ctxt_pP, srb_flag_t srb_flagP, uint32_t action, rb_id_t rb_id, uint8_t rb_sn, uint8_t rb_report, uint16_t header_compression_profile, uint8_t security_mode) * \brief Function for RRC to configure a Radio Bearer. @@ -354,7 +325,7 @@ public_pdcp( * \param[in] kUPenc User-Plane encryption key * \return A status about the processing, OK or error code. */ -public_pdcp(boolean_t pdcp_config_req_asn1 ( +boolean_t pdcp_config_req_asn1 ( const protocol_ctxt_t* const ctxt_pP, pdcp_t *const pdcp_pP, const srb_flag_t srb_flagP, @@ -369,22 +340,22 @@ public_pdcp(boolean_t pdcp_config_req_asn1 ( const uint8_t security_mode, uint8_t *const kRRCenc, uint8_t *const kRRCint, - uint8_t *const kUPenc)); + uint8_t *const kUPenc); /*! \fn void pdcp_add_UE(const protocol_ctxt_t* const ctxt_pP) * \brief Function (for RRC) to add a new UE in PDCP module * \param[in] ctxt_pP Running context. * \return A status about the processing, OK or error code. */ -public_pdcp(void pdcp_add_UE(const protocol_ctxt_t* const ctxt_pP)); +void pdcp_add_UE(const protocol_ctxt_t* const ctxt_pP); /*! \fn boolean_t pdcp_remove_UE(const protocol_ctxt_t* const ctxt_pP) * \brief Function for RRC to remove UE from PDCP module hashtable * \param[in] ctxt_pP Running context. * \return A status about the processing, OK or error code. */ -public_pdcp(boolean_t pdcp_remove_UE( - const protocol_ctxt_t* const ctxt_pP)); +boolean_t pdcp_remove_UE( + const protocol_ctxt_t* const ctxt_pP); /*! \fn void rrc_pdcp_config_release( const protocol_ctxt_t* const, rb_id_t) * \brief This functions is unused @@ -394,7 +365,7 @@ public_pdcp(boolean_t pdcp_remove_UE( * \note None * @ingroup _pdcp */ -//public_pdcp(void rrc_pdcp_config_release ( const protocol_ctxt_t* const ctxt_pP, rb_id_t);) +//void rrc_pdcp_config_release ( const protocol_ctxt_t* const ctxt_pP, rb_id_t); /*! \fn void pdcp_run(const protocol_ctxt_t* const ctxt_pP) * \brief Runs PDCP entity to let it handle incoming/outgoing SDUs @@ -403,27 +374,23 @@ public_pdcp(boolean_t pdcp_remove_UE( * \note None * @ingroup _pdcp */ -public_pdcp(void pdcp_run ( - const protocol_ctxt_t* const ctxt_pP);) -public_pdcp(int pdcp_module_init (void);) -public_pdcp(void pdcp_module_cleanup (void);) -public_pdcp(void pdcp_layer_init (void);) -public_pdcp(void pdcp_layer_cleanup (void);) +void pdcp_run ( + const protocol_ctxt_t* const ctxt_pP); +int pdcp_module_init (void); +void pdcp_module_cleanup (void); +void pdcp_layer_init (void); +void pdcp_layer_cleanup (void); #if defined(PDCP_USE_NETLINK_QUEUES) -public_pdcp(int pdcp_netlink_init (void);) +int pdcp_netlink_init (void); #endif #define PDCP2NW_DRIVER_FIFO 21 #define NW_DRIVER2PDCP_FIFO 22 -protected_pdcp_fifo(int pdcp_fifo_flush_sdus ( - const protocol_ctxt_t* const ctxt_pP);) -protected_pdcp_fifo(int pdcp_fifo_read_input_sdus_remaining_bytes ( - const protocol_ctxt_t* const ctxt_pP);) -protected_pdcp_fifo(int pdcp_fifo_read_input_sdus ( - const protocol_ctxt_t* const ctxt_pP);) -protected_pdcp_fifo(void pdcp_fifo_read_input_sdus_from_otg ( - const protocol_ctxt_t* const ctxt_pP);) +int pdcp_fifo_flush_sdus ( const protocol_ctxt_t* const ctxt_pP); +int pdcp_fifo_read_input_sdus_remaining_bytes ( const protocol_ctxt_t* const ctxt_pP); +int pdcp_fifo_read_input_sdus ( const protocol_ctxt_t* const ctxt_pP); +void pdcp_fifo_read_input_sdus_from_otg ( const protocol_ctxt_t* const ctxt_pP); //----------------------------------------------------------------------------- @@ -437,7 +404,7 @@ typedef struct pdcp_data_req_header_s { sdu_size_t data_size; signed int inst; ip_traffic_type_t traffic_type; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) uint32_t sourceL2Id; uint32_t destinationL2Id; #endif @@ -448,7 +415,7 @@ typedef struct pdcp_data_ind_header_s { sdu_size_t data_size; signed int inst; ip_traffic_type_t dummy_traffic_type; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) uint32_t sourceL2Id; uint32_t destinationL2Id; #endif @@ -462,7 +429,7 @@ struct pdcp_netlink_element_s { }; //TTN for D2D (PC5S) -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #define PDCP_SOCKET_PORT_NO 9999 //temporary value #define PC5_SIGNALLING_PAYLOAD_SIZE 100 //should be updated with a correct value int pdcp_pc5_sockfd; @@ -497,17 +464,6 @@ typedef struct { #endif - -#if 0 -/* - * Missing PDU information struct, a copy of this will be enqueued - * into pdcp.missing_pdus for every missing PDU - */ -typedef struct pdcp_missing_pdu_info_t { - pdcp_sn_t sequence_number; -} pdcp_missing_pdu_info_t; -#endif - /* * PDCP limit values */ @@ -531,31 +487,31 @@ typedef struct pdcp_missing_pdu_info_t { #define PDCP_SN_12BIT 12 -protected_pdcp(signed int pdcp_2_nas_irq;) -public_pdcp(pdcp_stats_t UE_pdcp_stats[MAX_MOBILES_PER_ENB];) -public_pdcp(pdcp_stats_t eNB_pdcp_stats[NUMBER_OF_eNB_MAX];) -//protected_pdcp(pdcp_t pdcp_array_srb_ue[MAX_MOBILES_PER_ENB][2];) -//protected_pdcp(pdcp_t pdcp_array_drb_ue[MAX_MOBILES_PER_ENB][maxDRB];) -//public_pdcp(pdcp_t pdcp_array_srb_eNB[NUMBER_OF_eNB_MAX][MAX_MOBILES_PER_ENB][2];) -//protected_pdcp(pdcp_t pdcp_array_drb_eNB[NUMBER_OF_eNB_MAX][MAX_MOBILES_PER_ENB][maxDRB];) +signed int pdcp_2_nas_irq; +pdcp_stats_t UE_pdcp_stats[MAX_MOBILES_PER_ENB]; +pdcp_stats_t eNB_pdcp_stats[NUMBER_OF_eNB_MAX]; +//pdcp_t pdcp_array_srb_ue[MAX_MOBILES_PER_ENB][2]; +//pdcp_t pdcp_array_drb_ue[MAX_MOBILES_PER_ENB][maxDRB]; +//pdcp_t pdcp_array_srb_eNB[NUMBER_OF_eNB_MAX][MAX_MOBILES_PER_ENB][2]; +//pdcp_t pdcp_array_drb_eNB[NUMBER_OF_eNB_MAX][MAX_MOBILES_PER_ENB][maxDRB]; // for UE code conly -protected_pdcp(rnti_t pdcp_UE_UE_module_id_to_rnti[MAX_MOBILES_PER_ENB];) -protected_pdcp(rnti_t pdcp_eNB_UE_instance_to_rnti[MAX_MOBILES_PER_ENB];) // for noS1 mode -protected_pdcp(unsigned int pdcp_eNB_UE_instance_to_rnti_index;) +rnti_t pdcp_UE_UE_module_id_to_rnti[MAX_MOBILES_PER_ENB]; +rnti_t pdcp_eNB_UE_instance_to_rnti[MAX_MOBILES_PER_ENB]; // for noS1 mode +unsigned int pdcp_eNB_UE_instance_to_rnti_index; #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) -public_pdcp(pdcp_mbms_t pdcp_mbms_array_ue[MAX_MOBILES_PER_ENB][maxServiceCount][maxSessionPerPMCH];) // some constants from openair2/RRC/LITE/MESSAGES/asn1_constants.h -public_pdcp(pdcp_mbms_t pdcp_mbms_array_eNB[NUMBER_OF_eNB_MAX][maxServiceCount][maxSessionPerPMCH];) // some constants from openair2/RRC/LITE/MESSAGES/asn1_constants.h +pdcp_mbms_t pdcp_mbms_array_ue[MAX_MOBILES_PER_ENB][maxServiceCount][maxSessionPerPMCH]; // some constants from openair2/RRC/LTE/MESSAGES/asn1_constants.h +pdcp_mbms_t pdcp_mbms_array_eNB[NUMBER_OF_eNB_MAX][maxServiceCount][maxSessionPerPMCH]; // some constants from openair2/RRC/LTE/MESSAGES/asn1_constants.h #endif -protected_pdcp(sdu_size_t pdcp_output_sdu_bytes_to_write;) -protected_pdcp(sdu_size_t pdcp_output_header_bytes_to_write;) -protected_pdcp(list_t pdcp_sdu_list;) -protected_pdcp(int pdcp_sent_a_sdu;) -protected_pdcp(pdcp_data_req_header_t pdcp_input_header;) -protected_pdcp(unsigned char pdcp_input_sdu_buffer[MAX_IP_PACKET_SIZE];) -protected_pdcp(sdu_size_t pdcp_input_index_header;) -protected_pdcp(sdu_size_t pdcp_input_sdu_size_read;) -protected_pdcp(sdu_size_t pdcp_input_sdu_remaining_size_to_read;) +sdu_size_t pdcp_output_sdu_bytes_to_write; +sdu_size_t pdcp_output_header_bytes_to_write; +list_t pdcp_sdu_list; +int pdcp_sent_a_sdu; +pdcp_data_req_header_t pdcp_input_header; +unsigned char pdcp_input_sdu_buffer[MAX_IP_PACKET_SIZE]; +sdu_size_t pdcp_input_index_header; +sdu_size_t pdcp_input_sdu_size_read; +sdu_size_t pdcp_input_sdu_remaining_size_to_read; #define PDCP_COLL_KEY_VALUE(mODULE_iD, rNTI, iS_eNB, rB_iD, iS_sRB) \ ((hash_key_t)mODULE_iD | \ @@ -586,7 +542,7 @@ protected_pdcp(sdu_size_t pdcp_input_sdu_remaining_size_to_read;) (((hash_key_t)(sESSION_ID)) << 37) | \ (((hash_key_t)(0x0000000000000001)) << 63)) -public_pdcp(hash_table_t *pdcp_coll_p;) +hash_table_t *pdcp_coll_p; #endif /*@}*/ diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitive.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitive.c index abec97ddfd..0ef6893d08 100644 --- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitive.c +++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitive.c @@ -45,6 +45,7 @@ configure_pdcp_req (struct pdcp_entity *pdcpP, void *rlcP, uint8_t rlc_sap_typeP mem_block *mb; mb = get_free_mem_block (sizeof (struct cpdcp_primitive), __func__); + if(mb==NULL) return; ((struct cpdcp_primitive *) mb->data)->type = CPDCP_CONFIG_REQ; ((struct cpdcp_primitive *) mb->data)->primitive.config_req.rlc_sap = rlcP; ((struct cpdcp_primitive *) mb->data)->primitive.config_req.rlc_type_sap = rlc_sap_typeP; diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c index be3d4fd434..b9e605ca24 100644 --- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c +++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c @@ -52,10 +52,10 @@ extern int otg_enabled; //#include "SIMULATION/ETH_TRANSPORT/extern.h" #include "UTIL/OCG/OCG.h" #include "UTIL/OCG/OCG_extern.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "UTIL/OTG/otg_tx.h" #include "UTIL/FIFO/pad_list.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "platform_constants.h" #include "msc.h" #include "pdcp.h" @@ -202,7 +202,7 @@ int pdcp_fifo_flush_sdus(const protocol_ctxt_t* const ctxt_pP) cont = 0; //TTN - for D2D (PC5S) -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) sidelink_pc5s_element *sl_pc5s_msg_recv = NULL; char send_buf[BUFSIZE]; int rb_id = ((pdcp_data_ind_header_t *)(sdu_p->data))->rb_id; @@ -452,7 +452,7 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP) pdcp_data_req(&ctxt, SRB_FLAG_NO, rab_id, RLC_MUI_UNDEFINED, RLC_SDU_CONFIRM_NO, len, (unsigned char *)nl_rx_buf, PDCP_TRANSMISSION_MODE_DATA -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) , NULL, NULL #endif ); @@ -488,10 +488,9 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP) pdcp_t* pdcp_p = NULL; //TTN for D2D (PC5S) -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) int prose_addr_len; char send_buf[BUFSIZE], receive_buf[BUFSIZE]; - // Panos: Remove the following definitions due to warnings of unused variables. //int optval; int bytes_received; sidelink_pc5s_element *sl_pc5s_msg_recv = NULL; @@ -568,7 +567,7 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP) data_p->pdcp_read_header.data_size, data_p->data, pdcp_mode -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,NULL, NULL #endif ); @@ -596,7 +595,7 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP) data_p->pdcp_read_header.data_size, data_p->data, PDCP_TRANSMISSION_MODE_DATA -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,NULL, NULL #endif ); @@ -613,7 +612,7 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP) data_p->pdcp_read_header.data_size, data_p->data, PDCP_TRANSMISSION_MODE_DATA -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,NULL, NULL #endif ); @@ -633,7 +632,7 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP) //TTN for D2D (PC5S) -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) prose_addr_len = sizeof(prose_pdcp_addr); // receive a message from ProSe App memset(receive_buf, 0, BUFSIZE); @@ -775,7 +774,7 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP) pc5s_header->data_size, (unsigned char *)receive_buf, PDCP_TRANSMISSION_MODE_DATA -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,&pc5s_header->sourceL2Id ,&pc5s_header->destinationL2Id #endif @@ -833,7 +832,7 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP) pc5s_header->data_size, (unsigned char *)receive_buf, PDCP_TRANSMISSION_MODE_DATA -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,&pc5s_header->sourceL2Id ,&pc5s_header->destinationL2Id #endif @@ -980,7 +979,7 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP) pdcp_read_header_g.data_size, (unsigned char *)NLMSG_DATA(nas_nlh_rx), PDCP_TRANSMISSION_MODE_DATA -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,NULL, NULL #endif ); @@ -1017,7 +1016,7 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP) pdcp_read_header_g.data_size, (unsigned char *)NLMSG_DATA(nas_nlh_rx), PDCP_TRANSMISSION_MODE_DATA -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,NULL, NULL #endif ); @@ -1083,7 +1082,7 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP) pdcp_read_header_g.data_size, (unsigned char *)NLMSG_DATA(nas_nlh_rx), PDCP_TRANSMISSION_MODE_DATA -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,&pdcp_read_header_g.sourceL2Id ,&pdcp_read_header_g.destinationL2Id #endif @@ -1141,7 +1140,7 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP) pdcp_read_header_g.data_size, (unsigned char *)NLMSG_DATA(nas_nlh_rx), PDCP_TRANSMISSION_MODE_DATA -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,&pdcp_read_header_g.sourceL2Id ,&pdcp_read_header_g.destinationL2Id #endif @@ -1189,7 +1188,7 @@ void pdcp_fifo_read_input_sdus_from_otg (const protocol_ctxt_t* const ctxt_pP) } //TTN for D2D (PC5S) -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) void pdcp_pc5_socket_init() { diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c index f0b15d9888..472c46c94a 100644 --- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c +++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c @@ -52,7 +52,7 @@ #include "queue.h" #include "liblfds611.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "UTIL/OCG/OCG.h" #include "UTIL/OCG/OCG_extern.h" #include "LAYER2/MAC/mac_extern.h" diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c index 7117a760b9..ef674132c4 100644 --- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c +++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c @@ -26,7 +26,7 @@ * \version 0.1 */ -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "platform_types.h" #include "platform_constants.h" #include "pdcp.h" diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_proto_extern.h b/openair2/LAYER2/PDCP_v10.1.0/pdcp_proto_extern.h index a939543432..291ec5e2a7 100644 --- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_proto_extern.h +++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_proto_extern.h @@ -53,7 +53,7 @@ extern int reception_from_rohc_bs(void); extern BOOL pdcp_data_ind (module_id_t module_idP, rb_id_t rab_idP, sdu_size_t data_sizeP, mem_block_t * sduP, uint8_t is_data_plane); extern BOOL pdcp_data_req (module_id_t module_id, uint32_t frame, uint8_t eNB_flag, rb_id_t rab_id, uint32_t muiP, uint32_t confirmP, sdu_size_t sdu_buffer_size, unsigned char* sdu_buffer, uint8_t is_data_pdu -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,const uint32_t * const sourceL2Id ,const uint32_t * const destinationL2Id #endif diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_security.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_security.c index 2c29053297..95a6c28ae6 100644 --- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_security.c +++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_security.c @@ -29,10 +29,10 @@ #include "assertions.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "UTIL/OSA/osa_defs.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "LAYER2/MAC/mac_extern.h" diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c index 949858c1e5..c6deb49441 100644 --- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c +++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c @@ -27,7 +27,7 @@ */ #include "pdcp_sequence_manager.h" -#include "UTIL/LOG/log_if.h" +#include "common/utils//LOG/log_if.h" #include "pdcp_util.h" /* @@ -128,9 +128,7 @@ boolean_t pdcp_advance_rx_window(pdcp_t* pdcp_entity) * Update sequence numbering state and Hyper Frame Number if SN has already reached * its max value (see 5.1 PDCP Data Transfer Procedures) */ -#if 0 LOG_D(PDCP, "Advancing RX window...\n"); -#endif if (pdcp_entity->next_pdcp_rx_sn == pdcp_calculate_max_seq_num_for_given_size(pdcp_entity->seq_num_size)) { pdcp_entity->next_pdcp_rx_sn = 0; @@ -152,9 +150,7 @@ boolean_t pdcp_is_rx_seq_number_valid(uint16_t seq_num, pdcp_t* pdcp_entity,srb_ uint16_t reordering_window = 0; -#if 0 LOG_D(PDCP, "Incoming RX Sequence number is %04d\n", seq_num); -#endif if (pdcp_is_seq_num_size_valid(pdcp_entity) == FALSE || pdcp_is_seq_num_valid(seq_num, pdcp_entity->seq_num_size) == FALSE) { return FALSE; @@ -165,9 +161,7 @@ boolean_t pdcp_is_rx_seq_number_valid(uint16_t seq_num, pdcp_t* pdcp_entity,srb_ * (and to build PDCP Control PDU for PDCP status report) */ if (pdcp_mark_current_pdu_as_received(seq_num, pdcp_entity) == TRUE) { -#if 0 - LOG_I(PDCP, "Received sequence number successfuly marked\n"); -#endif + LOG_D(PDCP, "Received sequence number successfuly marked\n"); } else { LOG_W(PDCP, "Cannot mark received sequence number on the bitmap!\n"); } @@ -192,13 +186,11 @@ boolean_t pdcp_is_rx_seq_number_valid(uint16_t seq_num, pdcp_t* pdcp_entity,srb_ // same the old next_pdcp_rx_sn to revert otherwise pdcp_entity->next_pdcp_rx_sn_before_integrity = pdcp_entity->next_pdcp_rx_sn; -#if 0 if (seq_num != pdcp_entity->next_pdcp_rx_sn) { LOG_D(PDCP,"Re-adjusting the sequence number to %d\n", seq_num); } -#endif //set Next_PDCP_RX_SN to the received PDCP SN +1 ; pdcp_entity->next_pdcp_rx_sn = seq_num; pdcp_advance_rx_window(pdcp_entity); // + 1, and check if it is larger than Maximum_PDCP_SN: @@ -247,9 +239,7 @@ boolean_t pdcp_is_rx_seq_number_valid(uint16_t seq_num, pdcp_t* pdcp_entity,srb_ //set Next_PDCP_RX_SN to the received PDCP SN +1 ; pdcp_entity->next_pdcp_rx_sn = seq_num; pdcp_advance_rx_window(pdcp_entity); // + 1, anc check if it is larger than Maximum_PDCP_SN: -#if 0 LOG_D(PDCP,"Re-adjusting the sequence number to %d\n", seq_num); -#endif } else if (seq_num < pdcp_entity->next_pdcp_rx_sn) { // use COUNT based on RX_HFN and the received PDCP SN for deciphering the PDCP PDU; pdcp_entity->rx_hfn_offset = 0; @@ -311,12 +301,8 @@ boolean_t pdcp_mark_current_pdu_as_received(uint16_t seq_num, pdcp_t* pdcp_entit /* * Set relevant bit */ -#if 0 LOG_D(PDCP, "Marking %d. bit of %d. octet of status bitmap\n", (seq_num % 8) + 1, octet_index); -#endif util_mark_nth_bit_of_octet(&pdcp_entity->missing_pdu_bitmap[octet_index], seq_num % 8); -#if 0 util_print_binary_representation((uint8_t*)"Current state of relevant octet: ", pdcp_entity->missing_pdu_bitmap[octet_index]); -#endif return TRUE; } diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c index ad2cbae847..cf8218829f 100644 --- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c +++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c @@ -27,7 +27,7 @@ #include -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "pdcp_util.h" /* diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h b/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h index 7944049c3b..49846c7a9f 100644 --- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h +++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h @@ -28,7 +28,7 @@ #ifndef PDCP_UTIL_H #define PDCP_UTIL_H -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "../../COMMON/platform_types.h" #include "pdcp.h" diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c index 0e9452cf21..d4e43fda47 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c @@ -38,7 +38,7 @@ #include "rlc_primitives.h" #include "list.h" #include "LAYER2/MAC/mac_extern.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "UL-AM-RLC.h" #include "DL-AM-RLC.h" @@ -200,7 +200,7 @@ void config_req_rlc_am ( const protocol_ctxt_t* const ctxt_pP, const srb_flag_t srb_flagP, - rlc_am_info_t * const config_am_pP, + const rlc_am_info_t * config_am_pP, const rb_id_t rb_idP, const logical_chan_id_t chan_idP ) @@ -499,7 +499,7 @@ rlc_am_rx ( switch (rlc->protocol_state) { case RLC_NULL_STATE: - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT" ERROR MAC_DATA_IND IN RLC_NULL_STATE\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP, rlc)); + LOG_I(RLC, PROTOCOL_RLC_AM_CTXT_FMT" ERROR MAC_DATA_IND IN RLC_NULL_STATE\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP, rlc)); list_free (&data_indP.data); break; @@ -509,6 +509,7 @@ rlc_am_rx ( default: LOG_E(RLC, PROTOCOL_RLC_AM_CTXT_FMT" TX UNKNOWN PROTOCOL STATE 0x%02X\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP, rlc), rlc->protocol_state); + list_free (&data_indP.data); } } @@ -551,7 +552,9 @@ rlc_am_mac_status_indication ( rlc->last_absolute_subframe_status_indication = PROTOCOL_CTXT_TIME_MILLI_SECONDS(ctxt_pP); - rlc->nb_bytes_requested_by_mac = tb_sizeP; + if (tb_sizeP > 0) { + rlc->nb_bytes_requested_by_mac = tb_sizeP; + } status_resp.buffer_occupancy_in_bytes = rlc_am_get_buffer_occupancy_in_bytes(ctxt_pP, rlc); @@ -585,7 +588,6 @@ rlc_am_mac_status_indication ( sdu_size = ((rlc_am_tx_sdu_management_t *) (rlc->input_sdus[rlc->current_sdu_index].mem_block->data))->sdu_size; sdu_remaining_size = ((rlc_am_tx_sdu_management_t *) (rlc->input_sdus[rlc->current_sdu_index].mem_block->data))->sdu_remaining_size; - status_resp.head_sdu_remaining_size_to_send = sdu_remaining_size; if (sdu_size == sdu_remaining_size) { @@ -1139,7 +1141,6 @@ rlc_am_data_req ( uint32_t mui; uint16_t data_offset; uint16_t data_size; - uint8_t conf; #if TRACE_RLC_AM_PDU char message_string[7000]; size_t message_string_size = 0; @@ -1162,7 +1163,6 @@ rlc_am_data_req ( mui = ((struct rlc_am_data_req *) (sdu_pP->data))->mui; data_offset = ((struct rlc_am_data_req *) (sdu_pP->data))->data_offset; data_size = ((struct rlc_am_data_req *) (sdu_pP->data))->data_size; - conf = ((struct rlc_am_data_req *) (sdu_pP->data))->conf; MSC_LOG_RX_MESSAGE( (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, @@ -1180,7 +1180,7 @@ rlc_am_data_req ( message_string_size += sprintf(&message_string[message_string_size], "Bearer : %u\n", l_rlc_p->rb_id); message_string_size += sprintf(&message_string[message_string_size], "SDU size : %u\n", data_size); message_string_size += sprintf(&message_string[message_string_size], "MUI : %u\n", mui); - message_string_size += sprintf(&message_string[message_string_size], "CONF : %u\n", conf); + message_string_size += sprintf(&message_string[message_string_size], "CONF : %u\n", ((struct rlc_am_data_req *) (sdu_pP->data))->conf); message_string_size += sprintf(&message_string[message_string_size], "\nPayload : \n"); message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); @@ -1231,7 +1231,6 @@ rlc_am_data_req ( l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].mui = mui; l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].sdu_size = data_size; - //l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].confirm = conf; l_rlc_p->sdu_buffer_occupancy += data_size; l_rlc_p->nb_sdu += 1; @@ -1259,7 +1258,7 @@ rlc_am_data_req ( l_rlc_p->nb_sdu, l_rlc_p->current_sdu_index, l_rlc_p->next_sdu_index, - conf, + ((struct rlc_am_data_req *) (sdu_pP->data))->conf, mui, l_rlc_p->vt_a, l_rlc_p->vt_s); diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.h index 040145f7f0..952082187e 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.h +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.h @@ -35,21 +35,6 @@ # ifndef __RLC_AM_H__ # define __RLC_AM_H__ -# ifdef RLC_AM_C -# define private_rlc_am(x) -# define protected_rlc_am(x) -# define public_rlc_am(x) -# else -# ifdef RLC_AM_MODULE -# define private_rlc_am(x) -# define protected_rlc_am(x) extern x -# define public_rlc_am(x) extern x -# else -# define private_rlc_am(x) -# define protected_rlc_am(x) -# define public_rlc_am(x) extern x -# endif -# endif # include "platform_types.h" # include "rlc_def.h" # include "rlc_def_lte.h" @@ -117,9 +102,9 @@ * \param[in] ctxt_pP Running context. * \param[in] rlc_pP RLC AM protocol instance pointer. */ -public_rlc_am(void rlc_am_release ( +void rlc_am_release ( const protocol_ctxt_t* const ctxtP, - rlc_am_entity_t * const rlc_pP);) + rlc_am_entity_t * const rlc_pP); /** @addtogroup _rlc_am_init_impl_ * @{ @@ -133,12 +118,14 @@ public_rlc_am(void rlc_am_release ( * \param[in] rb_idP Radio bearer identifier. * \param[in] chan_idP Transport channel identifier. */ -public_rlc_am(void config_req_rlc_am ( - const protocol_ctxt_t* const ctxtP, - const srb_flag_t srb_flagP, - const rlc_am_info_t * const config_amP, - const rb_id_t rb_idP, - const logical_chan_id_t chan_idP);) +void +config_req_rlc_am ( + const protocol_ctxt_t* const ctxt_pP, + const srb_flag_t srb_flagP, + const rlc_am_info_t * config_am_pP, + const rb_id_t rb_idP, + const logical_chan_id_t chan_idP +); /*! \fn void config_req_rlc_am_asn1 (const protocol_ctxt_t* const ctxtP, const srb_flag_t srb_flagP, struct RLC_Config__am * config_amP, rb_id_t rb_idP, logical_chan_id_t chan_idP) * \brief Configure the UL and DL parameters of the RLC AM with the asn1c autogenerated pameters structs @@ -148,12 +135,12 @@ public_rlc_am(void config_req_rlc_am ( * \param[in] rb_idP Radio bearer identifier. * \param[in] chan_idP Transport channel identifier. */ -public_rlc_am(void config_req_rlc_am_asn1 ( +void config_req_rlc_am_asn1 ( const protocol_ctxt_t* const ctxtP, const srb_flag_t srb_flagP, const struct RLC_Config__am * const config_amP, const rb_id_t rb_idP, - const logical_chan_id_t chan_idP);) + const logical_chan_id_t chan_idP); /** @} */ @@ -218,7 +205,7 @@ public_rlc_am(void config_req_rlc_am_asn1 ( * \param[out] stat_timer_poll_retransmit_timed_out Number of times the timer "poll_retransmit" has timed-out. * \param[out] stat_timer_status_prohibit_timed_out Number of times the timer "status_prohibit" has timed-out. */ -public_rlc_am(void rlc_am_stat_req ( +void rlc_am_stat_req ( const protocol_ctxt_t* const ctxtP, rlc_am_entity_t * const rlc_pP, unsigned int* stat_tx_pdcp_sdu, @@ -247,14 +234,18 @@ public_rlc_am(void rlc_am_stat_req ( unsigned int* stat_rx_control_bytes, unsigned int* stat_timer_reordering_timed_out, unsigned int* stat_timer_poll_retransmit_timed_out, - unsigned int* stat_timer_status_prohibit_timed_out);) + unsigned int* stat_timer_status_prohibit_timed_out); /*! \fn void rlc_am_get_pdus (const protocol_ctxt_t* const ctxtP, void * const rlc_pP) * \brief Request the segmentation of SDUs based on status previously sent by MAC. * \param[in] ctxt_pP Running context. * \param[in] rlc_pP RLC AM protocol instance pointer. */ -private_rlc_am( void rlc_am_get_pdus (const protocol_ctxt_t* const ctxtP,void * const rlc_pP);) +void +rlc_am_get_pdus ( + const protocol_ctxt_t* const ctxt_pP, + rlc_am_entity_t * const rlc_pP +); /*! \fn void rlc_am_rx (const protocol_ctxt_t* const ctxtP,void * const rlc_pP, struct mac_data_ind data_indication) * \brief Process the received PDUs from lower layer. @@ -262,7 +253,7 @@ private_rlc_am( void rlc_am_get_pdus (const protocol_ctxt_t* const ctxtP,v * \param[in] rlc_pP RLC AM protocol instance pointer. * \param[in] data_indication PDUs from MAC. */ -protected_rlc_am( void rlc_am_rx (const protocol_ctxt_t* const ctxtP,void * const rlc_pP, struct mac_data_ind);) +void rlc_am_rx (const protocol_ctxt_t* const ctxtP,void * const rlc_pP, struct mac_data_ind); /*! \fn struct mac_status_resp rlc_am_mac_status_indication (const protocol_ctxt_t* const ctxtP,void * const rlc_pP, uint16_t tbs_sizeP, struct mac_status_ind tx_statusP,const eNB_flag_t enb_flagP) * \brief Request the maximum number of bytes that can be served by RLC instance to MAC and fix the amount of bytes requested by MAC for next RLC transmission. @@ -273,14 +264,14 @@ protected_rlc_am( void rlc_am_rx (const protocol_ctxt_t* const ctxtP,void * * \param[in] enb_flagP eNB or UE flag indication. * \return The maximum number of bytes that can be served by RLC instance to MAC. */ -public_rlc_am( struct mac_status_resp rlc_am_mac_status_indication (const protocol_ctxt_t* const ctxtP, void * const rlc_pP, uint16_t tbs_sizeP, struct mac_status_ind tx_statusP,const eNB_flag_t enb_flagP);) +struct mac_status_resp rlc_am_mac_status_indication (const protocol_ctxt_t* const ctxtP, void * const rlc_pP, uint16_t tbs_sizeP, struct mac_status_ind tx_statusP,const eNB_flag_t enb_flagP); /*! \fn void rlc_am_set_nb_bytes_requested_by_mac (void * const rlc_pP,const tb_size_t tb_sizeP) * \brief Set available TBS for RLC Tx just before am_mac_data_request. Used for UE only. * \param[in] rlc_pP RLC AM protocol instance pointer. * \param[in] tb_sizeP Available Tx Transport Block size in bytes. */ -public_rlc_am( void rlc_am_set_nb_bytes_requested_by_mac (void * const rlc_pP,const tb_size_t tb_sizeP);) +void rlc_am_set_nb_bytes_requested_by_mac (void * const rlc_pP,const tb_size_t tb_sizeP); /*! \fn struct mac_data_req rlc_am_mac_data_request (const protocol_ctxt_t* const ctxtP,void * const rlc_pP,const eNB_flag_t enb_flagP) * \brief Gives PDUs to lower layer MAC. @@ -289,7 +280,7 @@ public_rlc_am( void rlc_am_set_nb_bytes_requested_by_mac (void * const * \param[in] enb_flagP eNB or UE flag * \return A PDU of the previously requested number of bytes, and the updated maximum number of bytes that can be served by RLC instance to MAC for next RLC transmission. */ -public_rlc_am( struct mac_data_req rlc_am_mac_data_request (const protocol_ctxt_t* const ctxtP,void * const rlc_pP,const eNB_flag_t enb_flagP);) +struct mac_data_req rlc_am_mac_data_request (const protocol_ctxt_t* const ctxtP,void * const rlc_pP,const eNB_flag_t enb_flagP); /*! \fn void rlc_am_mac_data_indication (const protocol_ctxt_t* const ctxtP,void * const rlc_pP, struct mac_data_ind data_indP) * \brief Receive PDUs from lower layer MAC. @@ -297,14 +288,14 @@ public_rlc_am( struct mac_data_req rlc_am_mac_data_request (const protocol_ct * \param[in] rlc_pP RLC AM protocol instance pointer. * \param[in] data_indP PDUs from MAC. */ -public_rlc_am( void rlc_am_mac_data_indication (const protocol_ctxt_t* const ctxtP,void * const rlc_pP, struct mac_data_ind data_indP);) +void rlc_am_mac_data_indication (const protocol_ctxt_t* const ctxtP,void * const rlc_pP, struct mac_data_ind data_indP); /*! \fn uint32_t rlc_am_get_buffer_occupancy_in_bytes (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t * const rlc_pP) * \brief Get Tx Buffer Occupancy. * \param[in] ctxt_pP Running context. * \param[in] rlc_pP RLC AM protocol instance pointer. */ -public_rlc_am( uint32_t rlc_am_get_buffer_occupancy_in_bytes (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t * const rlc_pP);) +uint32_t rlc_am_get_buffer_occupancy_in_bytes (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t * const rlc_pP); /*! \fn void rlc_am_data_req (const protocol_ctxt_t* const ctxtP,void * const rlc_pP, mem_block_t *sduP) * \brief Interface with higher layers, buffer higher layer SDUS for transmission. @@ -312,6 +303,6 @@ public_rlc_am( uint32_t rlc_am_get_buffer_occupancy_in_bytes (const protocol_ * \param[in] rlc_pP RLC AM protocol instance pointer. * \param[in] sduP SDU. (A struct rlc_am_data_req is mapped on sduP->data.) */ -public_rlc_am( void rlc_am_data_req (const protocol_ctxt_t* const ctxtP,void * const rlc_pP, mem_block_t *sduP);) +void rlc_am_data_req (const protocol_ctxt_t* const ctxtP,void * const rlc_pP, mem_block_t *sduP); /** @} */ # endif diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.c index 996dd96f35..af2cbb97bd 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.c +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.c @@ -31,7 +31,7 @@ //----------------------------------------------------------------------------- #include "rlc_am.h" #include "LAYER2/MAC/mac_extern.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #define TRACE_RLC_AM_FREE_SDU 0 //----------------------------------------------------------------------------- @@ -42,8 +42,17 @@ void rlc_am_free_in_sdu( { if (index_in_bufferP <= RLC_AM_SDU_CONTROL_BUFFER_SIZE) { /* BugFix: SDU shall have been already freed during initial PDU segmentation or concatenation !! */ +//Assertion(eNB)_PRAN_DesignDocument_annex No.761 + if(rlcP->input_sdus[index_in_bufferP].mem_block != NULL) + { + LOG_E(RLC, "RLC AM Tx SDU Conf: Data Part is not empty index=%d LcId=%d\n", + index_in_bufferP,rlcP->channel_id); + return; + } +/* AssertFatal(rlcP->input_sdus[index_in_bufferP].mem_block == NULL, "RLC AM Tx SDU Conf: Data Part is not empty index=%d LcId=%d\n", index_in_bufferP,rlcP->channel_id); +*/ /* if (rlcP->input_sdus[index_in_bufferP].mem_block != NULL) { free_mem_block(rlcP->input_sdus[index_in_bufferP].mem_block, __func__); @@ -121,8 +130,13 @@ rlc_am_pdu_sdu_data_cnf( for (pdu_sdu_index = 0; pdu_sdu_index < rlc_pP->tx_data_pdu_buffer[snP % RLC_AM_WINDOW_SIZE].nb_sdus; pdu_sdu_index++) { sdu_index = rlc_pP->tx_data_pdu_buffer[snP % RLC_AM_WINDOW_SIZE].sdus_index[pdu_sdu_index]; - assert(sdu_index >= 0); - assert(sdu_index < RLC_AM_SDU_CONTROL_BUFFER_SIZE); + //assert(sdu_index >= 0); + //assert(sdu_index < RLC_AM_SDU_CONTROL_BUFFER_SIZE); + if(sdu_index < 0 || sdu_index >= RLC_AM_SDU_CONTROL_BUFFER_SIZE) { + LOG_E(RLC, "sdu_index error. sdu_index %d, pdu_sdu_index %d\n", sdu_index, pdu_sdu_index); + continue; + } + rlc_pP->input_sdus[sdu_index].nb_pdus_ack += 1; if ((rlc_pP->input_sdus[sdu_index].nb_pdus_ack == rlc_pP->input_sdus[sdu_index].nb_pdus) && diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.h index 43503a1b3a..bc97490c90 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.h +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.h @@ -34,22 +34,6 @@ */ # ifndef __RLC_AM_IN_SDU_H__ # define __RLC_AM_IN_SDU_H__ -//----------------------------------------------------------------------------- -# ifdef RLC_AM_IN_SDU_C -# define private_rlc_am_in_sdu(x) x -# define protected_rlc_am_in_sdu(x) x -# define public_rlc_am_in_sdu(x) x -# else -# ifdef RLC_AM_MODULE -# define private_rlc_am_in_sdu(x) -# define protected_rlc_am_in_sdu(x) extern x -# define public_rlc_am_in_sdu(x) extern x -# else -# define private_rlc_am_in_sdu(x) -# define protected_rlc_am_in_sdu(x) -# define public_rlc_am_in_sdu(x) extern x -# endif -# endif /*! \fn void rlc_am_free_in_sdu (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t *rlcP, unsigned int index_in_bufferP) * \brief Free a higher layer SDU stored in input_sdus[] buffer. * \param[in] ctxtP Running context. @@ -57,7 +41,7 @@ * \param[in] index_in_bufferP Position index of the SDU. * \note Update also the RLC AM instance variables nb_sdu, current_sdu_index, nb_sdu_no_segmented. */ -protected_rlc_am_in_sdu(void rlc_am_free_in_sdu (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t *rlcP, unsigned int index_in_bufferP);) +void rlc_am_free_in_sdu (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t *rlcP, unsigned int index_in_bufferP); /*! \fn void rlc_am_free_in_sdu_data (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t *rlcP, unsigned int index_in_bufferP) @@ -67,7 +51,7 @@ protected_rlc_am_in_sdu(void rlc_am_free_in_sdu (const protocol_ctxt_t* con * \param[in] index_in_bufferP Position index of the SDU. * \note This procedure is called when the SDU segmentation is done for this SDU. Update also the RLC AM instance variable nb_sdu_no_segmented. */ -protected_rlc_am_in_sdu(void rlc_am_free_in_sdu_data (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t *rlcP, unsigned int index_in_bufferP);) +void rlc_am_free_in_sdu_data (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t *rlcP, unsigned int index_in_bufferP); /*! \fn signed int rlc_am_in_sdu_is_empty(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t *rlcP) @@ -76,7 +60,7 @@ protected_rlc_am_in_sdu(void rlc_am_free_in_sdu_data (const protocol_ctxt_t* con * \param[in] rlcP RLC AM protocol instance pointer. * \return 1 if the buffer is empty, else 0. */ -protected_rlc_am_in_sdu(signed int rlc_am_in_sdu_is_empty(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t *rlcP);) +signed int rlc_am_in_sdu_is_empty(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t *rlcP); /*! \fn void rlc_am_pdu_sdu_data_cnf(const protocol_ctxt_t* const ctxt_pP,rlc_am_entity_t* const rlc_pP,const rlc_sn_t snP) * \brief Process SDU cnf of a ACKED PDU for all SDUs concatenated in this PDU. @@ -84,6 +68,6 @@ protected_rlc_am_in_sdu(signed int rlc_am_in_sdu_is_empty(const protocol_ctxt_t* * \param[in] rlcP RLC AM protocol instance pointer. * \param[in] snP Sequence number of the PDU. */ -protected_rlc_am_in_sdu(void rlc_am_pdu_sdu_data_cnf(const protocol_ctxt_t* const ctxt_pP,rlc_am_entity_t* const rlc_pP,const rlc_sn_t snP);) +void rlc_am_pdu_sdu_data_cnf(const protocol_ctxt_t* const ctxt_pP,rlc_am_entity_t* const rlc_pP,const rlc_sn_t snP); /** @} */ # endif diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c index 0b0a55bd2b..cb09f24855 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c @@ -25,7 +25,7 @@ //----------------------------------------------------------------------------- #include "rlc_am.h" #include "LAYER2/MAC/mac_extern.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" //----------------------------------------------------------------------------- void rlc_am_init( diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.h index c69fd3766e..9de54cd3d5 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.h +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.h @@ -37,21 +37,6 @@ # include "UTIL/MEM/mem_block.h" //----------------------------------------------------------------------------- -# ifdef RLC_AM_INIT_C -# define private_rlc_am_init(x) x -# define protected_rlc_am_init(x) x -# define public_rlc_am_init(x) x -# else -# ifdef RLC_AM_MODULE -# define private_rlc_am_init(x) -# define protected_rlc_am_init(x) extern x -# define public_rlc_am_init(x) extern x -# else -# define private_rlc_am_init(x) -# define protected_rlc_am_init(x) -# define public_rlc_am_init(x) extern x -# endif -# endif //----------------------------------------------------------------------------- #include "platform_types.h" #include "platform_constants.h" @@ -76,13 +61,13 @@ typedef volatile struct { * \param[in] ctxtP Running context. * \param[in] rlc_pP RLC AM protocol instance pointer. */ -public_rlc_am_init( void rlc_am_init (const protocol_ctxt_t* const ctxtP, rlc_am_entity_t* rlc_pP);) +void rlc_am_init (const protocol_ctxt_t* const ctxtP, rlc_am_entity_t* rlc_pP); /*! \fn void rlc_am_cleanup(rlc_am_entity_t *const rlc_pP) * \brief Free all memory resources allocated and kept by this RLC AM instance. * \param[in] rlc_pP RLC AM protocol instance pointer. */ -public_rlc_am_init( void rlc_am_cleanup(rlc_am_entity_t* rlc_pP);) +void rlc_am_cleanup(rlc_am_entity_t* rlc_pP); /*! \fn void rlc_am_configure(const protocol_ctxt_t* const ctxtP, rlc_am_entity_t * const rlc_pP, uint16_t max_retx_thresholdP, uint16_t poll_pduP, uint16_t poll_byteP, uint32_t t_poll_retransmitP, uint32_t t_reorderingP, uint32_t t_status_prohibitP) * \brief Set RLC AM protocol parameters. @@ -96,14 +81,14 @@ AMD PDU. * \param[in] t_reorderingP This timer is used by the receiving side of an AM RLC entity in order to detect loss of RLC PDUs at lower layer, value in frames. * \param[in] t_status_prohibitP This timer is used by the receiving side of an AM RLC entity in order to prohibit transmission of a STATUS PDU, value in frames. */ -public_rlc_am_init( void rlc_am_configure(const protocol_ctxt_t* const ctxtP, +void rlc_am_configure(const protocol_ctxt_t* const ctxtP, rlc_am_entity_t * const rlc_pP, const uint16_t max_retx_thresholdP, const uint16_t poll_pduP, const uint16_t poll_byteP, const uint32_t t_poll_retransmitP, const uint32_t t_reorderingP, - const uint32_t t_status_prohibitP);) + const uint32_t t_status_prohibitP); /*! \fn void rlc_am_set_debug_infos(const protocol_ctxt_t* const ctxtP, rlc_am_entity_t * const rlc_pP, const srb_flag_t srb_flagP, const rb_id_t rb_idP) @@ -114,6 +99,6 @@ public_rlc_am_init( void rlc_am_configure(const protocol_ctxt_t* const ctxtP, * \param[in] rb_idP Radio bearer identifier. * \param[in] chan_idP Transport channel identifier. */ -public_rlc_am_init( void rlc_am_set_debug_infos(const protocol_ctxt_t* const ctxtP, rlc_am_entity_t * const rlc_pP, const srb_flag_t srb_flagP, const rb_id_t rb_idP, const logical_chan_id_t chan_idP);) +void rlc_am_set_debug_infos(const protocol_ctxt_t* const ctxtP, rlc_am_entity_t * const rlc_pP, const srb_flag_t srb_flagP, const rb_id_t rb_idP, const logical_chan_id_t chan_idP); /** @} */ #endif diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c index 83b0dfd46b..d2fe1d1bfd 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c @@ -31,7 +31,7 @@ #include "rlc_am.h" #include "list.h" //#include "LAYER2/MAC/extern.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "msc.h" //----------------------------------------------------------------------------- @@ -57,7 +57,12 @@ rlc_am_reassembly ( if (rlc_pP->output_sdu_in_construction == NULL) { rlc_pP->output_sdu_in_construction = get_free_mem_block (RLC_SDU_MAX_SIZE, __func__); rlc_pP->output_sdu_size_to_write = 0; - assert(rlc_pP->output_sdu_in_construction != NULL); + //assert(rlc_pP->output_sdu_in_construction != NULL); + if(rlc_pP->output_sdu_in_construction == NULL) { + LOG_E(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[REASSEMBLY PAYLOAD] output_sdu_in_construction is NULL\n", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); + return; + } } if (rlc_pP->output_sdu_in_construction != NULL) { @@ -198,10 +203,16 @@ rlc_am_send_sdu ( PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); //msg("[RLC_AM][MOD %d] Freeing mem_block ...\n", rlc_pP->module_id); //free_mem_block (rlc_pP->output_sdu_in_construction, __func__); +//Assertion(eNB)_PRAN_DesignDocument_annex No.764 + LOG_E(RLC, PROTOCOL_RLC_AM_CTXT_FMT" SEND SDU REQUESTED %d bytes\n", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), + rlc_pP->output_sdu_size_to_write); +/* AssertFatal(3==4, PROTOCOL_RLC_AM_CTXT_FMT" SEND SDU REQUESTED %d bytes", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), rlc_pP->output_sdu_size_to_write); +*/ } rlc_pP->output_sdu_size_to_write = 0; @@ -270,7 +281,9 @@ rlc_am_reassemble_pdu( break; default: - assert(0 != 0); +//Assertion(eNB)_PRAN_DesignDocument_annex No.1428 + LOG_E(RLC, "RLC_E_FIXED_PART_DATA_FIELD_FOLLOW error pdu_info->fi[%d]\n", pdu_info->fi); +// assert(0 != 0); } } else { switch (pdu_info->fi) { @@ -386,7 +399,9 @@ rlc_am_reassemble_pdu( break; default: - assert(1 != 1); +//Assertion(eNB)_PRAN_DesignDocument_annex No.1429 + LOG_E(RLC, "not RLC_E_FIXED_PART_DATA_FIELD_FOLLOW error pdu_info->fi[%d]\n", pdu_info->fi); +// assert(1 != 1); } } diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h index 82148a4a37..bf9bd58fb5 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h @@ -34,27 +34,12 @@ */ #ifndef __RLC_AM_REASSEMBLY_H__ # define __RLC_AM_REASSEMBLY_H__ -# ifdef RLC_AM_REASSEMBLY_C -# define private_rlc_am_reassembly(x) x -# define protected_rlc_am_reassembly(x) x -# define public_rlc_am_reassembly(x) x -# else -# ifdef RLC_AM_MODULE -# define private_rlc_am_reassembly(x) -# define protected_rlc_am_reassembly(x) extern x -# define public_rlc_am_reassembly(x) extern x -# else -# define private_rlc_am_reassembly(x) -# define protected_rlc_am_reassembly(x) -# define public_rlc_am_reassembly(x) extern x -# endif -# endif /*! \fn void rlc_am_clear_rx_sdu (const protocol_ctxt_t* const ctxtP, rlc_am_entity_t * const rlc_pP) * \brief Reset the data cursor index in the output SDU buffer to zero. * \param[in] ctxtP Running context. * \param[in] rlc_pP RLC AM protocol instance pointer. */ -private_rlc_am_reassembly( void rlc_am_clear_rx_sdu (const protocol_ctxt_t* const ctxtP, rlc_am_entity_t * const rlc_pP);) +void rlc_am_clear_rx_sdu (const protocol_ctxt_t* const ctxtP, rlc_am_entity_t * const rlc_pP); /*! \fn void rlc_am_reassembly (const protocol_ctxt_t* const ctxtP, rlc_am_entity_t * const rlc_pPuint8_t * srcP, int32_t lengthP) * \brief Concatenate datas at the tail of the output SDU in construction. This SDU in construction will be sent to higher layer. @@ -63,14 +48,14 @@ private_rlc_am_reassembly( void rlc_am_clear_rx_sdu (const protocol_ctxt_t* co * \param[in] srcP Pointer on data to be reassemblied. * \param[in] lengthP Length of data to be reassemblied. */ -private_rlc_am_reassembly( void rlc_am_reassembly (const protocol_ctxt_t* const ctxtP, rlc_am_entity_t * const rlc_pP, uint8_t * srcP, int32_t lengthP);) +void rlc_am_reassembly (const protocol_ctxt_t* const ctxtP, rlc_am_entity_t * const rlc_pP, uint8_t * srcP, int32_t lengthP); /*! \fn void rlc_am_send_sdu (rlc_am_entity_t *rlc_pP,frame_t frameP) * \brief Send the output SDU in construction to higher layer. * \param[in] ctxtP Running context. * \param[in] rlc_pP RLC AM protocol instance pointer. */ -private_rlc_am_reassembly( void rlc_am_send_sdu (const protocol_ctxt_t* const ctxtP, rlc_am_entity_t * const rlc_pP);) +void rlc_am_send_sdu (const protocol_ctxt_t* const ctxtP, rlc_am_entity_t * const rlc_pP); /*! \fn void rlc_am_reassemble_pdu(const protocol_ctxt_t* const ctxtP, rlc_am_entity_t * const rlc_pP, const mem_block_t* const tb_pP,boolean_t free_rlc_pdu) * \brief Reassembly a RLC AM PDU, depending of the content of this PDU, data will be reassemblied to the current output SDU, the current will be sent to higher layers or not, after or before the reassembly, or no send of SDU will be triggered, depending on FI field in PDU header. @@ -79,7 +64,7 @@ private_rlc_am_reassembly( void rlc_am_send_sdu (const protocol_ctxt_t* co * \param[in] tb_pP RLC AM PDU embedded in a mem_block_t. * \param[in] free_rlc_pdu Flag for freeing RLC AM PDU after reassembly. */ -protected_rlc_am_reassembly( void rlc_am_reassemble_pdu(const protocol_ctxt_t* const ctxtP, rlc_am_entity_t * const rlc_pP, mem_block_t* const tb_pP,boolean_t free_rlc_pdu);) +void rlc_am_reassemble_pdu(const protocol_ctxt_t* const ctxtP, rlc_am_entity_t * const rlc_pP, mem_block_t* const tb_pP,boolean_t free_rlc_pdu); /** @} */ #endif diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c index be4b43d1a0..f9a4affb6b 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c @@ -29,7 +29,7 @@ #include "rlc_am.h" #include "list.h" #include "LAYER2/MAC/mac_extern.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" //----------------------------------------------------------------------------- @@ -47,9 +47,15 @@ rlc_am_get_data_pdu_infos( pdu_info_pP->d_c = header_pP->b1 >> 7; pdu_info_pP->num_li = 0; - +//Assertion(eNB)_PRAN_DesignDocument_annex No.766 + if(pdu_info_pP->d_c == 0) + { + LOG_E(RLC, "RLC AM Rx PDU Data D/C Header Error LcId=%d\n", rlc_pP->channel_id); + return -2; + } +/* AssertFatal (pdu_info_pP->d_c != 0, "RLC AM Rx PDU Data D/C Header Error LcId=%d\n", rlc_pP->channel_id); - +*/ pdu_info_pP->rf = (header_pP->b1 >> 6) & 0x01; pdu_info_pP->p = (header_pP->b1 >> 5) & 0x01; pdu_info_pP->fi = (header_pP->b1 >> 3) & 0x03; @@ -264,9 +270,17 @@ rlc_am_receive_routing ( rlc_pP->stat_rx_control_pdu += 1; rlc_am_receive_process_control_pdu (ctxt_pP, rlc_pP, tb_p, &first_byte_p, &tb_size_in_bytes); // Test if remaining bytes not processed (up to know, highest probability is bug in MAC) +//Assertion(eNB)_PRAN_DesignDocument_annex No.767 + if(tb_size_in_bytes != 0) + { + LOG_E(RLC, "Remaining %d bytes following a control PDU\n", + tb_size_in_bytes); + } +/* AssertFatal( tb_size_in_bytes == 0, "Remaining %d bytes following a control PDU", tb_size_in_bytes); +*/ } LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RX ROUTING] VR(R)=%03d VR(MR)=%03d\n", @@ -396,14 +410,20 @@ rlc_am_receive_process_data_pdu ( } if (pdu_info_p->sn == rlc_pP->vr_r) { +mem_block_t* cursor_p = rlc_pP->receiver_buffer.head; +rlc_am_rx_pdu_management_t * pdu_cursor_mgnt_p = (rlc_am_rx_pdu_management_t *) (cursor_p->data); +if( (((rlc_am_rx_pdu_management_t*)(tb_pP->data))->all_segments_received) == (pdu_cursor_mgnt_p->all_segments_received)){ if (((rlc_am_rx_pdu_management_t*)(tb_pP->data))->all_segments_received) { rlc_am_rx_update_vr_r(ctxt_pP, rlc_pP, tb_pP); rlc_pP->vr_mr = (rlc_pP->vr_r + RLC_AM_WINDOW_SIZE) & RLC_AM_SN_MASK; } - reassemble = rlc_am_rx_check_vr_reassemble(ctxt_pP, rlc_pP); //TODO : optimization : check whether a reassembly is needed by looking at LI, FI, SO, etc... - +}else{ + LOG_E(RLC, "BAD all_segments_received!!! discard buffer!!!\n"); + /* Discard received block if out of window, duplicate or header error */ + free_mem_block (tb_pP, __func__); +} } //FNA: fix check VrX out of receiving window diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.h index 9d2978b0f8..fdbd95873d 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.h +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.h @@ -34,21 +34,6 @@ */ # ifndef __RLC_AM_RECEIVER_H__ # define __RLC_AM_RECEIVER_H__ -# ifdef RLC_AM_RECEIVER_C -# define private_rlc_am_receiver(x) x -# define protected_rlc_am_receiver(x) x -# define public_rlc_am_receiver(x) x -# else -# ifdef RLC_AM_MODULE -# define private_rlc_am_receiver(x) -# define protected_rlc_am_receiver(x) extern x -# define public_rlc_am_receiver(x) extern x -# else -# define private_rlc_am_receiver(x) -# define protected_rlc_am_receiver(x) -# define public_rlc_am_receiver(x) extern x -# endif -# endif /*! \fn signed int rlc_am_get_data_pdu_infos( const protocol_ctxt_t* const ctxt_pP, const rlc_am_entity_t * const rlc_pP,rlc_am_pdu_sn_10_t* headerP, int16_t sizeP, rlc_am_pdu_info_t* pdu_infoP) * \brief Extract PDU informations (header fields, data size, etc) from the serialized PDU. * \param[in] ctxt_pP Running context. @@ -58,12 +43,12 @@ * \param[in] pdu_infoP Structure containing extracted informations from PDU. * \return 0 if no error was encountered during the parsing of the PDU, else -1; */ -protected_rlc_am_receiver( signed int rlc_am_get_data_pdu_infos( +signed int rlc_am_get_data_pdu_infos( const protocol_ctxt_t* const ctxt_pP, const rlc_am_entity_t * const rlc_pP, rlc_am_pdu_sn_10_t* headerP, int16_t sizeP, - rlc_am_pdu_info_t* pdu_infoP)); + rlc_am_pdu_info_t* pdu_infoP); /*! \fn void rlc_am_display_data_pdu_infos(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t * const rlc_pP, rlc_am_pdu_info_t* pdu_infoP) * \brief Display RLC AM PDU informations. @@ -71,7 +56,7 @@ protected_rlc_am_receiver( signed int rlc_am_get_data_pdu_infos( * \param[in] rlc_pP RLC AM protocol instance pointer. * \param[in] pdu_infoP Structure containing extracted informations of a PDU. */ -protected_rlc_am_receiver( void rlc_am_display_data_pdu_infos(const protocol_ctxt_t* const ctxt_pP,rlc_am_entity_t * const rlc_pP, rlc_am_pdu_info_t* pdu_infoP);) +void rlc_am_display_data_pdu_infos(const protocol_ctxt_t* const ctxt_pP,rlc_am_entity_t * const rlc_pP, rlc_am_pdu_info_t* pdu_infoP); /*! \fn void rlc_am_rx_update_vr_ms(const protocol_ctxt_t* const ctxt_pP,rlc_am_entity_t * const rlc_pP,mem_block_t* tb_pP) * \brief Update RLC AM protocol variable VR(MS). @@ -80,7 +65,7 @@ protected_rlc_am_receiver( void rlc_am_display_data_pdu_infos(const protocol_ctx * \param[in] tb_pP PDU embedded in a mem_block_t struct. * \note It is assumed that the sequence number of the transport block is equal to VR(MS) */ -protected_rlc_am_receiver( void rlc_am_rx_update_vr_ms(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t * const rlc_pP, mem_block_t* tb_pP);) +void rlc_am_rx_update_vr_ms(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t * const rlc_pP, mem_block_t* tb_pP); /*! \fn void rlc_am_rx_update_vr_r (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t * const rlc_pP,mem_block_t* tb_pP) * \brief Update RLC AM protocol variable VR(R). @@ -89,7 +74,7 @@ protected_rlc_am_receiver( void rlc_am_rx_update_vr_ms(const protocol_ctxt_t* co * \param[in] tb_pP PDU embedded in a mem_block_t struct. * \note It is assumed that the sequence number of the transport block is equal to VR(R) */ -protected_rlc_am_receiver( void rlc_am_rx_update_vr_r (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t * const rlc_pP, mem_block_t* tb_pP);) +void rlc_am_rx_update_vr_r (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t * const rlc_pP, mem_block_t* tb_pP); /*! \fn void rlc_am_receive_routing (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t * const rlc_pP, struct mac_data_ind data_indP) * \brief Convert transport blocks received from MAC layer into RLC AM PDUs, and dispatch to the right processing block these PDUS upon their type (CONTROL/DATA). @@ -97,7 +82,7 @@ protected_rlc_am_receiver( void rlc_am_rx_update_vr_r (const protocol_ctxt_t* co * \param[in] rlc_pP RLC AM protocol instance pointer. * \param[in] data_indP Transport blocks received from MAC layer. */ -protected_rlc_am_receiver( void rlc_am_receive_routing (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t * const rlc_pP, struct mac_data_ind data_indP)); +void rlc_am_receive_routing (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t * const rlc_pP, struct mac_data_ind data_indP); /*! \fn void rlc_am_receive_process_data_pdu (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t * const rlc_pP, mem_block_t* tb_pP, uint8_t* first_byteP, uint16_t tb_size_in_bytesP) * \brief Process an incoming data PDU received from MAC layer. @@ -107,7 +92,7 @@ protected_rlc_am_receiver( void rlc_am_receive_routing (const protocol_ctxt_t* c * \param[in] first_byteP Pointer on first byte of the PDU. * \param[in] tb_size_in_bytesP Transport block size in bytes (same as PDU size in bytes). */ -private_rlc_am_receiver( void rlc_am_receive_process_data_pdu (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t * const rlc_pP, mem_block_t* tb_pP, uint8_t* first_byteP, - uint16_t tb_size_in_bytesP)); +void rlc_am_receive_process_data_pdu (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t * const rlc_pP, mem_block_t* tb_pP, uint8_t* first_byteP, + uint16_t tb_size_in_bytesP); /** @} */ # endif diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c index 42e8498623..2f001bdcfd 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c @@ -27,7 +27,7 @@ #include "rlc_am.h" #include "rlc.h" #include "LAYER2/MAC/mac_extern.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "msc.h" //----------------------------------------------------------------------------- boolean_t rlc_am_nack_pdu ( @@ -60,10 +60,14 @@ boolean_t rlc_am_nack_pdu ( sdu_size_t pdu_data_to_retx = 0; if (mb_p != NULL) { - assert(so_startP <= so_endP); - + //assert(so_startP <= so_endP); + if(so_startP > so_endP) { + LOG_E(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[NACK-PDU] ERROR NACK MISSING PDU, so_startP %d, so_endP %d\n", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP),so_startP, so_endP); + status = FALSE; + } // Handle full PDU NACK first - if ((so_startP == 0) && (so_endP == 0x7FFF)) { + else if ((so_startP == 0) && (so_endP == 0x7FFF)) { if ((prev_nack_snP != snP) && (tx_data_pdu_buffer_p->flags.ack == 0) && (tx_data_pdu_buffer_p->flags.max_retransmit == 0)) { pdu_data_to_retx = tx_data_pdu_buffer_p->payload_size; /* Increment VtReTxNext if this is the first NACK or if some segments have already been transmitted */ @@ -82,12 +86,17 @@ boolean_t rlc_am_nack_pdu ( snP, so_stopP); #endif - assert(tx_data_pdu_buffer_p->nack_so_start < tx_data_pdu_buffer_p->payload_size); + //assert(tx_data_pdu_buffer_p->nack_so_start < tx_data_pdu_buffer_p->payload_size); + if(tx_data_pdu_buffer_p->nack_so_start >= tx_data_pdu_buffer_p->payload_size){ + LOG_E(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[NACK-PDU] ERROR NACK MISSING PDU, nack_so_start %d, payload_size %d\n", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP),tx_data_pdu_buffer_p->nack_so_start, tx_data_pdu_buffer_p->payload_size); + status = FALSE; + } } else { status = FALSE; } - } + } else if (tx_data_pdu_buffer_p->flags.max_retransmit == 0) { // Handle Segment offset if (so_endP == 0x7FFF) { @@ -163,36 +172,6 @@ boolean_t rlc_am_nack_pdu ( rlc_pP->retrans_num_pdus ++; } } - - /* TODO: Move this part in UL SCH processing */ -#if 0 - if (rlc_pP->tx_data_pdu_buffer[snP].retx_count >= rlc_pP->max_retx_threshold) { - for (pdu_sdu_index = 0; pdu_sdu_index < rlc_pP->tx_data_pdu_buffer[snP].nb_sdus; pdu_sdu_index++) { - sdu_index = rlc_pP->tx_data_pdu_buffer[snP].sdus_index[pdu_sdu_index]; - assert(pdu_sdu_index < RLC_AM_MAX_SDU_IN_PDU); - assert(sdu_index < RLC_AM_SDU_CONTROL_BUFFER_SIZE); - rlc_pP->input_sdus[sdu_index].nb_pdus_ack += 1; - - if (rlc_pP->input_sdus[sdu_index].nb_pdus_ack == rlc_pP->input_sdus[sdu_index].nb_pdus) { -#if TEST_RLC_AM - rlc_am_v9_3_0_test_data_conf (rlc_pP->module_id, rlc_pP->rb_id, rlc_pP->input_sdus[sdu_index].mui, RLC_SDU_CONFIRM_NO); -#else - rlc_data_conf(ctxt_pP, rlc_pP->rb_id, rlc_pP->input_sdus[sdu_index].mui, RLC_SDU_CONFIRM_NO, rlc_pP->is_data_plane); -#endif - rlc_pP->stat_tx_pdcp_sdu_discarded += 1; - rlc_pP->stat_tx_pdcp_bytes_discarded += rlc_pP->input_sdus[sdu_index].sdu_size; - MSC_LOG_EVENT((ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE,\ - "0 "PROTOCOL_RLC_AM_MSC_FMT" Dropped SDU mui %u cause max_retx %u reached",\ - PROTOCOL_RLC_AM_MSC_ARGS(ctxt_pP,rlc_pP), - rlc_pP->input_sdus[sdu_index].mui, - rlc_pP->max_retx_threshold); - - rlc_am_free_in_sdu(ctxt_pP, rlc_pP, sdu_index); - - } - } - } -#endif } else { LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[NACK-PDU] ERROR NACK MISSING PDU SN %05d\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), @@ -225,9 +204,18 @@ void rlc_am_ack_pdu ( } if (tx_data_pdu_buffer->retx_payload_size) { +//Assertion(eNB)_PRAN_DesignDocument_annex No.768 + if(tx_data_pdu_buffer->flags.ack != 0) + { + LOG_E(RLC, "RLC AM Rx Status Report sn=%d acked twice but is pending for Retx vtA=%d vtS=%d LcId=%d\n", + snP, rlc_pP->vt_a,rlc_pP->vt_s,rlc_pP->channel_id); + return; + } +/* AssertFatal (tx_data_pdu_buffer->flags.ack == 0, "RLC AM Rx Status Report sn=%d acked twice but is pending for Retx vtA=%d vtS=%d LcId=%d\n", snP, rlc_pP->vt_a,rlc_pP->vt_s,rlc_pP->channel_id); +*/ rlc_pP->retrans_num_bytes_to_retransmit -= tx_data_pdu_buffer->retx_payload_size; tx_data_pdu_buffer->retx_payload_size = 0; tx_data_pdu_buffer->num_holes = 0; @@ -256,15 +244,23 @@ mem_block_t* rlc_am_retransmit_get_copy ( const rlc_sn_t snP) { mem_block_t* mb_original_p = rlc_pP->tx_data_pdu_buffer[snP % RLC_AM_WINDOW_SIZE].mem_block; - +//Assertion(eNB)_PRAN_DesignDocument_annex No.784 + if(mb_original_p == NULL) + { + LOG_E(RLC,"RLC AM PDU Copy Error: Empty block sn=%d vtA=%d vtS=%d LcId=%d !\n", + snP,rlc_pP->vt_a,rlc_pP->vt_s,rlc_pP->channel_id); + return NULL; + } +/* AssertFatal (mb_original_p != NULL, "RLC AM PDU Copy Error: Empty block sn=%d vtA=%d vtS=%d LcId=%d !\n", snP,rlc_pP->vt_a,rlc_pP->vt_s,rlc_pP->channel_id); - +*/ rlc_am_tx_data_pdu_management_t *pdu_mngt = &rlc_pP->tx_data_pdu_buffer[snP % RLC_AM_WINDOW_SIZE]; /* We need to allocate a new buffer and copy to it because header content may change for Polling bit */ int size = pdu_mngt->header_and_payload_size + sizeof(struct mac_tb_req); mem_block_t* mb_copy = get_free_mem_block(size, __func__); + if(mb_copy == NULL) return NULL; memcpy(mb_copy->data, mb_original_p->data, size); rlc_am_pdu_sn_10_t *pdu_p = (rlc_am_pdu_sn_10_t*) (&mb_copy->data[sizeof(struct mac_tb_req)]); @@ -295,20 +291,43 @@ mem_block_t* rlc_am_retransmit_get_am_segment( uint8_t li_bit_offset = 4; /* toggle between 0 and 4 */ uint8_t li_jump_offset = 1; /* toggle between 1 and 2 */ - +//Assertion(eNB)_PRAN_DesignDocument_annex No.774 + if(mb_original_p == NULL) + { + LOG_E(RLC,"RLC AM PDU Segment Error: Empty block sn=%d vtA=%d vtS=%d LcId=%d !\n", + sn,rlc_pP->vt_a,rlc_pP->vt_s,rlc_pP->channel_id); + return NULL; + } +/* AssertFatal (mb_original_p != NULL, "RLC AM PDU Segment Error: Empty block sn=%d vtA=%d vtS=%d LcId=%d !\n", sn,rlc_pP->vt_a,rlc_pP->vt_s,rlc_pP->channel_id); - - +*/ +//Assertion(eNB)_PRAN_DesignDocument_annex No.775 + if(pdu_mngt->payload != mb_original_p->data + sizeof(struct mac_tb_req) + pdu_mngt->header_and_payload_size - pdu_mngt->payload_size) + { + LOG_E(RLC,"RLC AM PDU Segment Error: Inconsistent data pointers p1=%p p2=%p sn = %d total size = %d data size = %d LcId=%d !\n", + pdu_mngt->payload,mb_original_p->data + sizeof(struct mac_tb_req),pdu_mngt->header_and_payload_size,pdu_mngt->payload_size,sn,rlc_pP->channel_id); + return NULL; + } +/* AssertFatal (pdu_mngt->payload == mb_original_p->data + sizeof(struct mac_tb_req) + pdu_mngt->header_and_payload_size - pdu_mngt->payload_size, "RLC AM PDU Segment Error: Inconsistent data pointers p1=%p p2=%p sn = %d total size = %d data size = %d LcId=%d !\n", pdu_mngt->payload,mb_original_p->data + sizeof(struct mac_tb_req),pdu_mngt->header_and_payload_size,pdu_mngt->payload_size,sn,rlc_pP->channel_id); - +*/ /* Init ReTx Hole list if not configured, ie the whole PDU has to be retransmitted */ if (pdu_mngt->num_holes == 0) { +//Assertion(eNB)_PRAN_DesignDocument_annex No.776 + if(pdu_mngt->retx_payload_size != pdu_mngt->payload_size) + { + LOG_E(RLC,"RLC AM PDU ReTx Segment: Expecting full PDU size ReTxSize=%d DataSize=%d sn=%d vtA=%d vtS=%d LcId=%d !\n", + pdu_mngt->retx_payload_size,pdu_mngt->payload_size,sn,rlc_pP->vt_a,rlc_pP->vt_s,rlc_pP->channel_id); + return NULL; + } +/* AssertFatal (pdu_mngt->retx_payload_size == pdu_mngt->payload_size,"RLC AM PDU ReTx Segment: Expecting full PDU size ReTxSize=%d DataSize=%d sn=%d vtA=%d vtS=%d LcId=%d !\n", pdu_mngt->retx_payload_size,pdu_mngt->payload_size,sn,rlc_pP->vt_a,rlc_pP->vt_s,rlc_pP->channel_id); +*/ pdu_mngt->retx_hole_index = 0; pdu_mngt->hole_so_start[0] = 0; pdu_mngt->hole_so_stop[0] = pdu_mngt->payload_size - 1; @@ -318,11 +337,18 @@ mem_block_t* rlc_am_retransmit_get_am_segment( /* Init SO Start and SO Stop */ retx_so_start = pdu_mngt->hole_so_start[pdu_mngt->retx_hole_index]; retx_so_stop = pdu_mngt->hole_so_stop[pdu_mngt->retx_hole_index]; - +//Assertion(eNB)_PRAN_DesignDocument_annex No.777 + if((retx_so_start > retx_so_stop) || (retx_so_stop - retx_so_start + 1 > pdu_mngt->payload_size)) + { + LOG_E(RLC,"RLC AM Tx PDU Segment Data SO Error: retx_so_start=%d retx_so_stop=%d OriginalPDUDataLength=%d sn=%d LcId=%d!\n", + retx_so_start,retx_so_stop,pdu_mngt->payload_size,sn,rlc_pP->channel_id); + return NULL; + } +/* AssertFatal ((retx_so_start <= retx_so_stop) && (retx_so_stop - retx_so_start + 1 <= pdu_mngt->payload_size), "RLC AM Tx PDU Segment Data SO Error: retx_so_start=%d retx_so_stop=%d OriginalPDUDataLength=%d sn=%d LcId=%d!\n", retx_so_start,retx_so_stop,pdu_mngt->payload_size,sn,rlc_pP->channel_id); - +*/ /* Init FI to the same value as original PDU */ fi_start = (!(RLC_AM_PDU_GET_FI_START(*(pdu_mngt->first_byte)))); fi_end = (!(RLC_AM_PDU_GET_FI_END(*(pdu_mngt->first_byte)))); @@ -339,6 +365,7 @@ mem_block_t* rlc_am_retransmit_get_am_segment( *payload_sizeP = retx_so_stop - retx_so_start + 1; mem_pdu_segment_p = get_free_mem_block((*payload_sizeP + RLC_AM_PDU_SEGMENT_HEADER_MIN_SIZE + sizeof(struct mac_tb_req)), __func__); + if(mem_pdu_segment_p == NULL) return NULL; pdu_segment_header_p = (uint8_t *)&mem_pdu_segment_p->data[sizeof(struct mac_tb_req)]; ((struct mac_tb_req*)(mem_pdu_segment_p->data))->data_ptr = pdu_segment_header_p; ((struct mac_tb_req*)(mem_pdu_segment_p->data))->tb_size = RLC_AM_PDU_SEGMENT_HEADER_MIN_SIZE + *payload_sizeP; @@ -408,8 +435,17 @@ mem_block_t* rlc_am_retransmit_get_am_segment( /* Set FI Start if retx_so_start = cumulated data size */ fi_start = TRUE; /* there must be at least one SDU more */ +//Assertion(eNB)_PRAN_DesignDocument_annex No.778 + if(sdu_index >= pdu_mngt->nb_sdus) + { + LOG_E(RLC,"RLC AM Tx PDU Segment Error: sdu_index=%d nb_sdus=%d sn=%d LcId=%d !\n", + sdu_index,pdu_mngt->nb_sdus,sn,rlc_pP->channel_id); + return NULL; + } +/* AssertFatal (sdu_index < pdu_mngt->nb_sdus, "RLC AM Tx PDU Segment Error: sdu_index=%d nb_sdus=%d sn=%d LcId=%d !\n", sdu_index,pdu_mngt->nb_sdus,sn,rlc_pP->channel_id); +*/ if (sdu_index < pdu_mngt->nb_sdus - 1) { temp_read = ((*pdu_original_header_p) << 8) | (*(pdu_original_header_p + 1)); @@ -487,17 +523,33 @@ mem_block_t* rlc_am_retransmit_get_am_segment( /* Set number of LIs in the segment */ num_LIs_pdu_segment = sdu_segment_index - 1; - +//Assertion(eNB)_PRAN_DesignDocument_annex No.779 + if(num_LIs_pdu_segment > pdu_mngt->nb_sdus - 1) + { + LOG_E(RLC, "RLC AM Tx PDU Segment Data Error: nbLISegment=%d nbLIPDU=%d sn=%d LcId=%d !\n", + num_LIs_pdu_segment,pdu_mngt->nb_sdus - 1,sn,rlc_pP->channel_id); + return NULL; + } +/* AssertFatal (num_LIs_pdu_segment <= pdu_mngt->nb_sdus - 1, "RLC AM Tx PDU Segment Data Error: nbLISegment=%d nbLIPDU=%d sn=%d LcId=%d !\n", num_LIs_pdu_segment,pdu_mngt->nb_sdus - 1,sn,rlc_pP->channel_id); - +*/ /* Bound to available TBS taking into account min PDU segment header*/ sdu_segment_index = 0; while ((sdu_segment_index < num_LIs_pdu_segment + 1) && (rlc_pP->nb_bytes_requested_by_mac > *payload_sizeP + RLC_AM_PDU_SEGMENT_HEADER_SIZE(sdu_segment_index))) { +//Assertion(eNB)_PRAN_DesignDocument_annex No.780 + if(sdus_segment_size[sdu_segment_index] <= 0) + { + LOG_E(RLC, "RLC AM Tx PDU Segment Data Error: EMpty LI index=%d numLISegment=%d numLIPDU=%d PDULength=%d SOStart=%d SOStop=%d sn=%d LcId=%d !\n", + sdu_segment_index,num_LIs_pdu_segment,pdu_mngt->nb_sdus - 1,pdu_mngt->payload_size,retx_so_start,retx_so_stop,sn,rlc_pP->channel_id); + sdu_segment_index++; + continue; + } +/* AssertFatal (sdus_segment_size[sdu_segment_index] > 0, "RLC AM Tx PDU Segment Data Error: EMpty LI index=%d numLISegment=%d numLIPDU=%d PDULength=%d SOStart=%d SOStop=%d sn=%d LcId=%d !\n", sdu_segment_index,num_LIs_pdu_segment,pdu_mngt->nb_sdus - 1,pdu_mngt->payload_size,retx_so_start,retx_so_stop,sn,rlc_pP->channel_id); - +*/ /* Add next sdu_segment_index to data part */ if (RLC_AM_PDU_SEGMENT_HEADER_SIZE(sdu_segment_index) + (*payload_sizeP) + sdus_segment_size[sdu_segment_index] <= rlc_pP->nb_bytes_requested_by_mac) { @@ -519,11 +571,18 @@ mem_block_t* rlc_am_retransmit_get_am_segment( /* update retx_so_stop */ retx_so_stop = retx_so_start + (*payload_sizeP) - 1; - +//Assertion(eNB)_PRAN_DesignDocument_annex No.781 + if((retx_so_stop > pdu_mngt->payload_size - 1) || (retx_so_stop - retx_so_start + 1 >= pdu_mngt->payload_size)) + { + LOG_E(RLC,"RLC AM Tx PDU Segment Data Error: retx_so_stop=%d OriginalPDUDataLength=%d SOStart=%d SegmentLength=%d numLISegment=%d numLIPDU=%d sn=%d LcId=%d !\n", + retx_so_stop,pdu_mngt->payload_size,retx_so_start,*payload_sizeP,num_LIs_pdu_segment,pdu_mngt->nb_sdus - 1,sn,rlc_pP->channel_id); + return NULL; + } +/* AssertFatal ((retx_so_stop <= pdu_mngt->payload_size - 1) && (retx_so_stop - retx_so_start + 1 < pdu_mngt->payload_size), "RLC AM Tx PDU Segment Data Error: retx_so_stop=%d OriginalPDUDataLength=%d SOStart=%d SegmentLength=%d numLISegment=%d numLIPDU=%d sn=%d LcId=%d !\n", retx_so_stop,pdu_mngt->payload_size,retx_so_start,*payload_sizeP,num_LIs_pdu_segment,pdu_mngt->nb_sdus - 1,sn,rlc_pP->channel_id); - +*/ /* init FI End to FALSE if retx_so_stop is not end of PDU */ if (retx_so_stop != pdu_mngt->payload_size - 1) { @@ -541,16 +600,33 @@ mem_block_t* rlc_am_retransmit_get_am_segment( fi_end = TRUE; } } - +//Assertion(eNB)_PRAN_DesignDocument_annex No.782 + if(data_size != *payload_sizeP) + { + LOG_E(RLC,"RLC AM Tx PDU Segment Data Error: SduSum=%d Data=%d sn=%d LcId=%d !\n", + data_size,*payload_sizeP,sn,rlc_pP->channel_id); + return NULL; + } +/* AssertFatal (data_size == *payload_sizeP, "RLC AM Tx PDU Segment Data Error: SduSum=%d Data=%d sn=%d LcId=%d !\n", data_size,*payload_sizeP,sn,rlc_pP->channel_id); - +*/ /* Allocation */ +//Assertion(eNB)_PRAN_DesignDocument_annex No.783 + if(header_segment_length + *payload_sizeP > pdu_mngt->header_and_payload_size + 2) + { + LOG_E(RLC, "RLC AM PDU Segment Error: Hdr=%d Data=%d Original Hdr+Data =%d sn=%d LcId=%d !\n", + header_segment_length,*payload_sizeP,pdu_mngt->header_and_payload_size,sn,rlc_pP->channel_id); + return NULL; + } +/* AssertFatal (header_segment_length + *payload_sizeP <= pdu_mngt->header_and_payload_size + 2, "RLC AM PDU Segment Error: Hdr=%d Data=%d Original Hdr+Data =%d sn=%d LcId=%d !\n", header_segment_length,*payload_sizeP,pdu_mngt->header_and_payload_size,sn,rlc_pP->channel_id); +*/ mem_pdu_segment_p = get_free_mem_block((*payload_sizeP + header_segment_length + sizeof(struct mac_tb_req)), __func__); + if(mem_pdu_segment_p == NULL) return NULL; pdu_segment_header_p = (uint8_t *)&mem_pdu_segment_p->data[sizeof(struct mac_tb_req)]; ((struct mac_tb_req*)(mem_pdu_segment_p->data))->data_ptr = pdu_segment_header_p; ((struct mac_tb_req*)(mem_pdu_segment_p->data))->tb_size = header_segment_length + *payload_sizeP; @@ -662,472 +738,6 @@ mem_block_t* rlc_am_retransmit_get_am_segment( return mem_pdu_segment_p; } -#if 0 -//----------------------------------------------------------------------------- -mem_block_t* rlc_am_retransmit_get_subsegment( - const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t *const rlc_pP, - const rlc_sn_t snP, - sdu_size_t * const sizeP /* in-out*/) -{ - - // 5.2 ARQ procedures - // ARQ procedures are only performed by an AM RLC entity. - // 5.2.1 Retransmission - // The transmitting side of an AM RLC entity can receive a negative acknowledgement (notification of reception failure - // by its peer AM RLC entity) for an AMD PDU or a portion of an AMD PDU by the following: - // - STATUS PDU from its peer AM RLC entity. - // - // When receiving a negative acknowledgement for an AMD PDU or a portion of an AMD PDU by a STATUS PDU from - // its peer AM RLC entity, the transmitting side of the AM RLC entity shall: - // - if the SN of the corresponding AMD PDU falls within the range VT(A) <= SN < VT(S): - // - consider the AMD PDU or the portion of the AMD PDU for which a negative acknowledgement was - // received for retransmission. - // - // When an AMD PDU or a portion of an AMD PDU is considered for retransmission, the transmitting side of the AM - // RLC entity shall: - // - if the AMD PDU is considered for retransmission for the first time: - // - set the RETX_COUNT associated with the AMD PDU to zero; - // - else, if it (the AMD PDU or the portion of the AMD PDU that is considered for retransmission) is not pending - // for retransmission already, or a portion of it is not pending for retransmission already: - // - increment the RETX_COUNT; - // - if RETX_COUNT = maxRetxThreshold: - // - indicate to upper layers that max retransmission has been reached. - // - // When retransmitting an AMD PDU, the transmitting side of an AM RLC entity shall: - // - if the AMD PDU can entirely fit within the total size of RLC PDU(s) indicated by lower layer at the particular - // transmission opportunity: - // - deliver the AMD PDU as it is except for the P field (the P field should be set according to sub clause 5.2.2) to - // lower layer; - // - otherwise: - // - segment the AMD PDU, form a new AMD PDU segment which will fit within the total size of RLC PDU(s) - // indicated by lower layer at the particular transmission opportunity and deliver the new AMD PDU segment - // to lower layer. - // - // When retransmitting a portion of an AMD PDU, the transmitting side of an AM RLC entity shall: - // - segment the portion of the AMD PDU as necessary, form a new AMD PDU segment which will fit within the - // total size of RLC PDU(s) indicated by lower layer at the particular transmission opportunity and deliver the new - // AMD PDU segment to lower layer. - // - // When forming a new AMD PDU segment, the transmitting side of an AM RLC entity shall: - // - only map the Data field of the original AMD PDU to the Data field of the new AMD PDU segment; - // - set the header of the new AMD PDU segment in accordance with the description in sub clause 6.; - // - set the P field according to sub clause 5.2.2. - - mem_block_t* mb_original_p = rlc_pP->tx_data_pdu_buffer[snP].mem_block; - - if (mb_original_p != NULL) { - mem_block_t* mb_sub_segment_p = get_free_mem_block(*sizeP + sizeof(struct mac_tb_req), __func__); - rlc_am_pdu_sn_10_t* pdu_original_p = (rlc_am_pdu_sn_10_t*) (&mb_original_p->data[sizeof(struct mac_tb_req)]); - rlc_am_pdu_sn_10_t* pdu_sub_segment_p = (rlc_am_pdu_sn_10_t*) (&mb_sub_segment_p->data[sizeof(struct mac_tb_req)]); - rlc_am_pdu_info_t pdu_info; - int max_copy_payload_size; - //LG avoid WARNING int test_max_copy_payload_size; - int test_pdu_copy_size = 0; - - ((struct mac_tb_req*)(mb_sub_segment_p->data))->data_ptr = (uint8_t*)&(mb_sub_segment_p->data[sizeof(struct mac_tb_req)]); - - if (rlc_am_get_data_pdu_infos(ctxt_pP, rlc_pP, pdu_original_p, rlc_pP->tx_data_pdu_buffer[snP].header_and_payload_size, &pdu_info) >= 0) { - int li_index = 0; - int start_offset = rlc_pP->tx_data_pdu_buffer[snP].nack_so_start; - int stop_offset = rlc_pP->tx_data_pdu_buffer[snP].nack_so_stop; - - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] ORIGINAL PDU SN %04d:\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - snP); - rlc_am_display_data_pdu_infos(ctxt_pP, rlc_pP, &pdu_info); - - // all 15 bits set to 1 (indicate that the missing portion of the AMD PDU includes all bytes - // to the last byte of the AMD PDU) - if (stop_offset == 0x7FFF) { - rlc_pP->tx_data_pdu_buffer[snP].nack_so_stop = rlc_pP->tx_data_pdu_buffer[snP].payload_size - 1; - stop_offset = rlc_pP->tx_data_pdu_buffer[snP].nack_so_stop; - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] UPDATED RETRANS PDU SN %04d nack_so_stop FROM 0x7FFF to %05d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - snP, - stop_offset); - } - - // FIXED PART AMD PDU SEGMENT HEADER - // 6.2.1.5 AMD PDU segment - // AMD PDU segment consists of a Data field and an AMD PDU segment header. - // - // AMD PDU segment header consists of a fixed part (fields that are present for every AMD PDU segment) and an - // extension part (fields that are present for an AMD PDU segment when necessary). The fixed part of the AMD PDU - // segment header itself is byte aligned and consists of a D/C, a RF, a P, a FI, an E, a SN, a LSF and a SO. The extension - // part of the AMD PDU segment header itself is byte aligned and consists of E(s) and LI(s). - // - // An AMD PDU segment header consists of an extension part only when more than one Data field elements are present - // in the AMD PDU segment, in which case an E and a LI are present for every Data field element except the last. - // Furthermore, when an AMD PDU segment header consists of an odd number of LI(s), four padding bits follow after the - // last LI. - - pdu_sub_segment_p->b1 = (pdu_original_p->b1 & 0x83) | 0x40; - pdu_sub_segment_p->b2 = pdu_original_p->b2; - pdu_sub_segment_p->data[0] = ((uint8_t)(start_offset >> 8)); - pdu_sub_segment_p->data[1] = ((uint8_t)(start_offset & 0xFF)); - - *sizeP = *sizeP - 4; - - - int continue_fill_pdu_with_pdu = 1; - int test_pdu_remaining_size = *sizeP; - int test_num_li = 0; - int fill_num_li ; - int test_li_sum = 0; - int not_test_fi = 0; // by default not 1st byte and not last byte af a SDU - int test_start_offset; - unsigned int test_li_length_in_bytes = 1; - int16_t test_li_list[RLC_AM_MAX_SDU_IN_PDU]; - uint8_t* fill_payload_p; - //int test_fi_last_byte_pdu_is_last_byte_sdu = 0; - //int test_fi_first_byte_pdu_is_first_byte_sdu = 0; - - rlc_am_e_li_t* e_li_sub_segment = (rlc_am_e_li_t*)(&pdu_sub_segment_p->data[2]); - //int first_enter_in_start_offset_lt_li_sum = 1; - int not_fi_original = ((pdu_original_p->b1 & 0x18) >> 3) ^ 3; - - //------------------------------------------------------- - // set MAX payload size that can be copied - // first constraint : the size of the hole to retransmit - rlc_am_get_next_hole(ctxt_pP, rlc_pP, snP, &start_offset, &stop_offset); - max_copy_payload_size = stop_offset - start_offset + 1; - assert(max_copy_payload_size > 0); - assert(test_pdu_remaining_size > 0); - LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] HOLE FOUND SO %d -> %d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - start_offset, - stop_offset); - LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] ORIGINAL FI %d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - (pdu_original_p->b1 & 0x18) >> 3); - - // second constraint the size of the pdu_p requested by MAC layer - if (max_copy_payload_size > test_pdu_remaining_size) { - LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] CUT max_copy_payload_size with test_pdu_remaining_size %d -> %d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - max_copy_payload_size, - test_pdu_remaining_size); - max_copy_payload_size = test_pdu_remaining_size; - } - - - if (start_offset == 0) { - not_test_fi = (not_fi_original & 0x02); - } - - test_start_offset = start_offset; - - //.find the li corresponding to the nack_so_start (start_offset) - if (pdu_info.num_li > 0) { - LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] ORIGINAL NUM LI %d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - pdu_info.num_li); - - while ((li_index < pdu_info.num_li) && (continue_fill_pdu_with_pdu)) { - LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] FIND LI %d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - pdu_info.li_list[li_index]); - - if (max_copy_payload_size > test_pdu_remaining_size) { - LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] CUT max_copy_payload_size with test_pdu_remaining_size %d -> %d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - max_copy_payload_size, - test_pdu_remaining_size); - max_copy_payload_size = test_pdu_remaining_size; - } - - assert(max_copy_payload_size >= 0); - assert(test_pdu_remaining_size >= 0); - - test_li_sum += pdu_info.li_list[li_index]; - - //--------------------------------------------------------------- - if (test_start_offset < test_li_sum) { - - LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] test_start_offset < test_li_sum %d < %d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - test_start_offset, - test_li_sum); - /*if (test_max_copy_payload_size > (test_li_sum - test_start_offset)) { - #if TRACE_RLC_AM_RESEGMENT - LOG_D(RLC, "[FRAME %5u][%s][RLC_AM][MOD %u/%u][RB %u][RE-SEGMENT] CUT test_max_copy_payload_size with test_li_sum - test_start_offset %d -> %d\n",ctxt_pP->frame, rlc_pP->module_id, rlc_pP->rb_id, test_max_copy_payload_size, test_li_sum - test_start_offset); - #endif - test_max_copy_payload_size = test_li_sum - test_start_offset; - }*/ - - if ((max_copy_payload_size + test_start_offset) < test_li_sum) { - LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] (max_copy_payload_size %d + test_start_offset %d) < test_li_sum %d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - max_copy_payload_size, - test_start_offset, - test_li_sum); - LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] COPY SO %d -> %d %d BYTES\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - test_start_offset , - test_start_offset + max_copy_payload_size - 1, - max_copy_payload_size ); - assert(max_copy_payload_size > 0); - continue_fill_pdu_with_pdu = 0; - test_pdu_copy_size = test_pdu_copy_size + max_copy_payload_size; - test_start_offset = test_start_offset + max_copy_payload_size; - not_test_fi = not_test_fi & 0x02; // clear b0, last byte does not correspond to last byte of a SDU - max_copy_payload_size = 0; - - } else if ((max_copy_payload_size + test_start_offset) == test_li_sum) { - LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] (max_copy_payload_size + test_start_offset) == test_li_sum %d == %d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - (max_copy_payload_size + test_start_offset) , - test_li_sum); - LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] COPY SO %d -> %d %d BYTES\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - test_start_offset , - test_start_offset + max_copy_payload_size - 1, - max_copy_payload_size ); - assert(max_copy_payload_size > 0); - continue_fill_pdu_with_pdu = 0; - test_pdu_copy_size = test_pdu_copy_size + max_copy_payload_size; - test_start_offset = test_start_offset + max_copy_payload_size; - not_test_fi = not_test_fi | 0x01;// set b0, last byte does correspond to last byte of a SDU - max_copy_payload_size = 0; - - } else if ((max_copy_payload_size + test_start_offset - (test_li_length_in_bytes ^ 3)) > test_li_sum) { - LOG_T(RLC, - PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] (max_copy_payload_size + test_start_offset - (test_li_length_in_bytes ^ 3)) > test_li_sum %d > %d\n SET LI %d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - (max_copy_payload_size + test_start_offset) + (test_li_length_in_bytes ^ 3), - test_li_sum, - test_li_sum - test_start_offset); - LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] COPY SO %d -> %d %d BYTES\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - test_start_offset , - test_li_sum - 1, - test_li_sum - test_start_offset ); - assert((test_li_sum - test_start_offset) > 0); - test_li_list[test_num_li++] = test_li_sum - test_start_offset; - test_pdu_copy_size = test_pdu_copy_size + test_li_sum - test_start_offset; - test_li_length_in_bytes = test_li_length_in_bytes ^ 3; - - test_pdu_remaining_size = test_pdu_remaining_size - test_li_sum + test_start_offset - - test_li_length_in_bytes; - - max_copy_payload_size = max_copy_payload_size - test_li_sum + test_start_offset - test_li_length_in_bytes; - LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] NOW max_copy_payload_size %d BYTES test_start_offset %d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - max_copy_payload_size, - test_li_sum); - // normally the next while itereation will add bytes to PDU - //not_test_fi = not_test_fi | 0x01; // set b0, last byte does correspond to last byte of a SDU - test_start_offset = test_li_sum; - - } else { - LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] (test_max_copy_payload_size + test_start_offset ) > test_li_sum %d > %d\n NO REMAINING SIZE FOR LI", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - (max_copy_payload_size + test_start_offset), - test_li_sum); - LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] COPY SO %d -> %d %d BYTES\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - test_start_offset , - test_li_sum - 1, - test_li_sum - test_start_offset ); - assert((test_li_sum - test_start_offset) > 0); - continue_fill_pdu_with_pdu = 0; - test_pdu_copy_size = test_pdu_copy_size + test_li_sum - test_start_offset; - - test_pdu_remaining_size = test_pdu_remaining_size - test_li_sum + test_start_offset; - - max_copy_payload_size = max_copy_payload_size - test_li_sum + test_start_offset; - test_start_offset = test_li_sum; - not_test_fi = not_test_fi | 0x01; // set b0, last byte does correspond to last byte of a SDU - } - - //--------------------------------------------------------------- - // start offset start at the begining of a SDU - // and it cant be the first data field of the original PDU - } else if (test_start_offset == test_li_sum) { - LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] (test_start_offset == test_li_sum) %d == %d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - test_start_offset , - test_li_sum); - - if ((test_num_li == 0) && (test_pdu_copy_size == 0)) { - not_test_fi = not_test_fi | 0x02; // set b1, first byte does correspond to first byte of a SDU - } - } - - li_index = li_index + 1; - } - - if ((continue_fill_pdu_with_pdu > 0) && - (li_index == pdu_info.num_li) && - (pdu_info.hidden_size > 0) && - (test_pdu_remaining_size > 0) && - (max_copy_payload_size > 0) ) { - - if (max_copy_payload_size > test_pdu_remaining_size) { - LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] TRYING HIDDEN SIZE...CUT max_copy_payload_size with test_pdu_remaining_size %d -> %d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - max_copy_payload_size, - test_pdu_remaining_size); - max_copy_payload_size = test_pdu_remaining_size; - } - - // remaining bytes to fill, redundant check, but ... - if ((max_copy_payload_size + test_start_offset) >= (pdu_info.hidden_size + test_li_sum)) { - test_pdu_copy_size += (pdu_info.hidden_size + test_li_sum - test_start_offset); - LOG_T(RLC, - PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] COPYING WHOLE REMAINING SIZE %d (max_copy_payload_size %d, test_start_offset %d, pdu_info.hidden_size %d test_li_sum %d test_pdu_copy_size %d)\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - pdu_info.hidden_size + test_li_sum - test_start_offset, - max_copy_payload_size, - test_start_offset, - pdu_info.hidden_size, - test_li_sum, - test_pdu_copy_size); - test_start_offset = pdu_info.hidden_size + test_li_sum; - not_test_fi = (not_test_fi & 0x2) | (not_fi_original & 0x1); // set b0 idendical to the b0 of the non segmented PDU - } else { - LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] COPYING REMAINING SIZE %d (/%d)\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - max_copy_payload_size, - pdu_info.hidden_size); - test_pdu_copy_size += max_copy_payload_size; - test_start_offset = test_start_offset + max_copy_payload_size; - not_test_fi = not_test_fi & 0x2; // clear b0 because no SDU ending in this PDU - } - } - } else { // num_li == 0 - LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] (num_li == 0)\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); - test_pdu_copy_size = max_copy_payload_size; - - if ((stop_offset == (start_offset + max_copy_payload_size - 1)) && (stop_offset == rlc_pP->tx_data_pdu_buffer[snP].payload_size - 1)) { - not_test_fi = (not_test_fi & 0x2) | (not_fi_original & 0x1); // set b0 idendical to the b0 of the non segmented PDU - } else { - not_test_fi = not_test_fi & 0x2; // clear b0 because no SDU ending in this PDU - } - } - - //--------------------------------------------------------------- - /*if (stop_offset == (rlc_pP->tx_data_pdu_buffer[snP].payload_size - 1)) { - test_fi = (test_fi & 0x02) | (fi_original & 0x01); - }*/ - //--------------------------------------------------------------- - // write FI field in header - //--------------------------------------------------------------- - pdu_sub_segment_p->b1 = pdu_sub_segment_p->b1 | (((not_test_fi << 3) ^ 0x18) & 0x18); - //--------------------------------------------------------------- - // fill the segment pdu_p with Lis and data - //--------------------------------------------------------------- - LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] fill the segment pdu_p with Lis and data, test_num_li %d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), test_num_li); - - if (test_num_li > 0) { - pdu_sub_segment_p->b1 = pdu_sub_segment_p->b1 | 0x04; // set E bit - test_li_length_in_bytes = 1; - - for (fill_num_li=0; fill_num_li < test_num_li; fill_num_li++) { - test_li_length_in_bytes = test_li_length_in_bytes ^ 3; - - if (test_li_length_in_bytes == 2) { - if (fill_num_li == (test_num_li - 1)) { - e_li_sub_segment->b1 = 0; - } else { - e_li_sub_segment->b1 = 0x80; - } - - e_li_sub_segment->b1 = e_li_sub_segment->b1 | (test_li_list[fill_num_li] >> 4); - e_li_sub_segment->b2 = test_li_list[fill_num_li] << 4; - fill_payload_p = (uint8_t*)(&e_li_sub_segment->b3); - *sizeP = *sizeP - 2; - } else { - if (fill_num_li != (test_num_li - 1)) { - e_li_sub_segment->b2 = e_li_sub_segment->b2 | 0x08; - } - - e_li_sub_segment->b2 = e_li_sub_segment->b2 | (test_li_list[fill_num_li] >> 8); - e_li_sub_segment->b3 = test_li_list[fill_num_li] & 0xFF; - e_li_sub_segment++; - fill_payload_p = (uint8_t*)e_li_sub_segment; - *sizeP = *sizeP - 1; - } - - LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] ADD LI %d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - test_li_list[fill_num_li]); - } - } else { - LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] ADD NO LI\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); - fill_payload_p = (uint8_t*)e_li_sub_segment; - } - - //--------------------------------------------------------------- - // copy payload to retransmit - //--------------------------------------------------------------- - memcpy(fill_payload_p, - &rlc_pP->tx_data_pdu_buffer[snP].payload[start_offset], - test_pdu_copy_size); - - ((struct mac_tb_req*)(mb_sub_segment_p->data))->tb_size = (tb_size_t)(((uint64_t)fill_payload_p)+ test_pdu_copy_size) - ((uint64_t)(&pdu_sub_segment_p->b1)); - - // set LSF - if ((test_pdu_copy_size + start_offset) == rlc_pP->tx_data_pdu_buffer[snP].payload_size) { - pdu_sub_segment_p->data[0] = pdu_sub_segment_p->data[0] | 0x80; - - rlc_pP->tx_data_pdu_buffer[snP].flags.retransmit = 0; - - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] RE-SEND DATA PDU SN %04d SO %d %d BYTES PAYLOAD %d BYTES LSF!\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - snP, - start_offset, - ((struct mac_tb_req*)(mb_sub_segment_p->data))->tb_size, - test_pdu_copy_size); - } else { - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] RE-SEND DATA PDU SN %04d SO %d %d BYTES PAYLOAD %d BYTES\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - snP, - start_offset, - ((struct mac_tb_req*)(mb_sub_segment_p->data))->tb_size, - test_pdu_copy_size); - } - - LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] *sizeP %d = *sizeP %d - test_pdu_copy_size %d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - *sizeP - test_pdu_copy_size, *sizeP, - test_pdu_copy_size); - - *sizeP = *sizeP - test_pdu_copy_size; - //--------------------------------------------------------------- - // update nack_so_start - //--------------------------------------------------------------- - rlc_am_remove_hole(ctxt_pP, rlc_pP, snP, start_offset, test_pdu_copy_size+start_offset - 1); - //rlc_pP->tx_data_pdu_buffer[snP].nack_so_start = rlc_pP->tx_data_pdu_buffer[snP].nack_so_start + test_pdu_copy_size; - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] RE-SEND DATA PDU SN %04d NOW nack_so_start %d nack_so_stop %d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - snP, - rlc_pP->tx_data_pdu_buffer[snP].nack_so_start, - rlc_pP->tx_data_pdu_buffer[snP].nack_so_stop); - /*if (rlc_pP->tx_data_pdu_buffer[snP].nack_so_start == rlc_pP->tx_data_pdu_buffer[snP].nack_so_stop) { - rlc_pP->tx_data_pdu_buffer[snP].nack_so_start = 0; - rlc_pP->tx_data_pdu_buffer[snP].nack_so_stop = 0x7FFF; - }*/ - } else { - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] COULD NOT GET INFO FOR DATA PDU SN %04d -> RETURN NULL\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - snP); - return NULL; - } - return mb_sub_segment_p; - } else { - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RE-SEGMENT] RE-SEND DATA PDU SN %04d BUT NO PDU AVAILABLE -> RETURN NULL\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - snP); - assert(3==4); - return NULL; - } -} -#endif //----------------------------------------------------------------------------- void rlc_am_tx_buffer_display ( const protocol_ctxt_t* const ctxt_pP, @@ -1170,7 +780,11 @@ void rlc_am_tx_buffer_display ( LOG_D(RLC, "SO:%04d->%04d)\t", tx_data_pdu_buffer_p->nack_so_start, tx_data_pdu_buffer_p->nack_so_stop); } else { for (i=0; inum_holes; i++) { - assert(i < RLC_AM_MAX_HOLES_REPORT_PER_PDU); + //assert(i < RLC_AM_MAX_HOLES_REPORT_PER_PDU); + if(i >= RLC_AM_MAX_HOLES_REPORT_PER_PDU) { + LOG_E(RLC, "num_holes error. %d %d %d\n", tx_data_pdu_buffer_p->num_holes, i, RLC_AM_MAX_HOLES_REPORT_PER_PDU); + break; + } LOG_D(RLC, "SO:%04d->%04d)\t", tx_data_pdu_buffer_p->hole_so_start[i], tx_data_pdu_buffer_p->hole_so_stop[i]); } } @@ -1193,22 +807,50 @@ mem_block_t * rlc_am_get_pdu_to_retransmit( rlc_sn_t sn_end = rlc_pP->vt_s; mem_block_t* pdu_p = NULL; rlc_am_tx_data_pdu_management_t* tx_data_pdu_management; - +//Assertion(eNB)_PRAN_DesignDocument_annex No.769 + if((rlc_pP->retrans_num_pdus <= 0) || (rlc_pP->vt_a == rlc_pP->vt_s)) + { + LOG_E(RLC, "RLC AM ReTx start process Error: NbPDUtoRetx=%d vtA=%d vtS=%d LcId=%d !\n", + rlc_pP->retrans_num_pdus,rlc_pP->vt_a,rlc_pP->vt_s,rlc_pP->channel_id); + return NULL; + } +/* AssertFatal ((rlc_pP->retrans_num_pdus > 0) && (rlc_pP->vt_a != rlc_pP->vt_s), "RLC AM ReTx start process Error: NbPDUtoRetx=%d vtA=%d vtS=%d LcId=%d !\n", rlc_pP->retrans_num_pdus,rlc_pP->vt_a,rlc_pP->vt_s,rlc_pP->channel_id); - +*/ do { tx_data_pdu_management = &rlc_pP->tx_data_pdu_buffer[sn % RLC_AM_WINDOW_SIZE]; if ((tx_data_pdu_management->flags.retransmit) && (tx_data_pdu_management->flags.max_retransmit == 0)) { +//Assertion(eNB)_PRAN_DesignDocument_annex No.770 + if(tx_data_pdu_management->sn != sn) + { + LOG_E(RLC, "RLC AM ReTx PDU Error: SN Error pdu_sn=%d sn=%d vtA=%d vtS=%d LcId=%d !\n", + tx_data_pdu_management->sn,sn,rlc_pP->vt_a,rlc_pP->vt_s,rlc_pP->channel_id); + } +//Assertion(eNB)_PRAN_DesignDocument_annex No.771 + else if(tx_data_pdu_management->flags.transmitted != 1) + { + LOG_E(RLC, "RLC AM ReTx PDU Error: State Error sn=%d vtA=%d vtS=%d LcId=%d !\n", + sn,rlc_pP->vt_a,rlc_pP->vt_s,rlc_pP->channel_id); + } +//Assertion(eNB)_PRAN_DesignDocument_annex No.772 + else if(tx_data_pdu_management->retx_payload_size <= 0) + { + LOG_E(RLC, "RLC AM ReTx PDU Error: No Data to Retx sn=%d vtA=%d vtS=%d LcId=%d !\n", + sn,rlc_pP->vt_a,rlc_pP->vt_s,rlc_pP->channel_id); + } + else + { +/* AssertFatal (tx_data_pdu_management->sn == sn, "RLC AM ReTx PDU Error: SN Error pdu_sn=%d sn=%d vtA=%d vtS=%d LcId=%d !\n", tx_data_pdu_management->sn,sn,rlc_pP->vt_a,rlc_pP->vt_s,rlc_pP->channel_id); AssertFatal (tx_data_pdu_management->flags.transmitted == 1, "RLC AM ReTx PDU Error: State Error sn=%d vtA=%d vtS=%d LcId=%d !\n", sn,rlc_pP->vt_a,rlc_pP->vt_s,rlc_pP->channel_id); AssertFatal (tx_data_pdu_management->retx_payload_size > 0, "RLC AM ReTx PDU Error: No Data to Retx sn=%d vtA=%d vtS=%d LcId=%d !\n", sn,rlc_pP->vt_a,rlc_pP->vt_s,rlc_pP->channel_id); - +*/ /* Either the whole RLC PDU is to be transmitted and there is enough MAC TBS or there is minimum TBS size for transmitting 1 AM PDU segment */ if ((tx_data_pdu_management->retx_payload_size == tx_data_pdu_management->payload_size) && (rlc_pP->nb_bytes_requested_by_mac >= tx_data_pdu_management->header_and_payload_size)) { @@ -1256,9 +898,18 @@ mem_block_t * rlc_am_get_pdu_to_retransmit( if (pdu_p != NULL) { +//Assertion(eNB)_PRAN_DesignDocument_annex No.773 + if((tx_data_pdu_management->retx_payload_size < pdu_data_size)|| (rlc_pP->retrans_num_bytes_to_retransmit < pdu_data_size)) + { + LOG_E(RLC, "RLC AM ReTx PDU Segment Error: DataSize=%d PDUReTxsize=%d TotalReTxsize=%d sn=%d LcId=%d !\n", + pdu_data_size,tx_data_pdu_management->retx_payload_size,rlc_pP->retrans_num_bytes_to_retransmit,sn,rlc_pP->channel_id); + } + else + { +/* AssertFatal ((tx_data_pdu_management->retx_payload_size >= pdu_data_size) && (rlc_pP->retrans_num_bytes_to_retransmit >= pdu_data_size), "RLC AM ReTx PDU Segment Error: DataSize=%d PDUReTxsize=%d TotalReTxsize=%d sn=%d LcId=%d !\n", pdu_data_size,tx_data_pdu_management->retx_payload_size,rlc_pP->retrans_num_bytes_to_retransmit,sn,rlc_pP->channel_id); - +*/ tx_data_pdu_management->retx_payload_size -= pdu_data_size; rlc_pP->retrans_num_bytes_to_retransmit -= pdu_data_size; if (tx_data_pdu_management->retx_payload_size == 0) @@ -1276,6 +927,7 @@ mem_block_t * rlc_am_get_pdu_to_retransmit( rlc_pP->stat_tx_retransmit_bytes += pdu_data_size; rlc_pP->stat_tx_retransmit_bytes_by_status += pdu_data_size; + }//Assertion(eNB)_PRAN_DesignDocument_annex No.773 } } else @@ -1300,101 +952,10 @@ mem_block_t * rlc_am_get_pdu_to_retransmit( break; } + }//Assertion(eNB)_PRAN_DesignDocument_annex No.770 No.771 No.772 } - sn = RLC_AM_NEXT_SN(sn); } while((sn != sn_end) && (rlc_pP->retrans_num_pdus > 0)); return pdu_p; } - -#if 0 -//----------------------------------------------------------------------------- -void rlc_am_retransmit_any_pdu( - const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t* const rlc_pP) -{ - rlc_sn_t sn = (rlc_pP->vt_s - 1) & RLC_AM_SN_MASK; - rlc_sn_t sn_end = (rlc_pP->vt_a - 1) & RLC_AM_SN_MASK; - int found_pdu = 0; - rlc_sn_t found_pdu_sn = 0; // avoid warning - mem_block_t* pdu_p = NULL; - rlc_am_pdu_sn_10_t* pdu_sn_10_p = NULL; - - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[FORCE-TRAFFIC] rlc_am_retransmit_any_pdu()\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); - - while (sn != sn_end) { - if (rlc_pP->tx_data_pdu_buffer[sn].mem_block != NULL) { - if (!found_pdu) { - found_pdu = 1; - found_pdu_sn = sn; - } - - if (rlc_pP->tx_data_pdu_buffer[sn].header_and_payload_size <= rlc_pP->nb_bytes_requested_by_mac) { - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[FORCE-TRAFFIC] RE-SEND DATA PDU SN %04d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - sn); -#if MESSAGE_CHART_GENERATOR_RLC_MAC - MSC_LOG_EVENT((ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE,\ - "0 "PROTOCOL_RLC_AM_MSC_FMT" RTX any pdu found SN %u",\ - PROTOCOL_RLC_AM_MSC_ARGS(ctxt_pP,rlc_pP), sn); -#endif - rlc_am_nack_pdu (ctxt_pP, rlc_pP, sn, 0, 0x7FFF); - // no need for update rlc_pP->nb_bytes_requested_by_mac - pdu_p = rlc_am_retransmit_get_copy(ctxt_pP, rlc_pP, sn); - pdu_sn_10_p = (rlc_am_pdu_sn_10_t*) (&pdu_p->data[sizeof(struct mac_tb_req)]); - rlc_am_pdu_polling(ctxt_pP, rlc_pP, pdu_sn_10_p, rlc_pP->tx_data_pdu_buffer[sn].header_and_payload_size,false); - //BugFix: polling is checked and done in function above ! - //pdu_sn_10_p->b1 = pdu_sn_10_p->b1 | 0x20; - //BugFix : pdu_without_poll and byte_without_poll are reset only if a Poll is transmitted - //rlc_pP->c_pdu_without_poll = 0; - //rlc_pP->c_byte_without_poll = 0; - //rlc_pP->poll_sn = (rlc_pP->vt_s -1) & RLC_AM_SN_MASK; - rlc_pP->stat_tx_data_pdu += 1; - rlc_pP->stat_tx_retransmit_pdu += 1; - rlc_pP->stat_tx_data_bytes += ((struct mac_tb_req*)(pdu_p->data))->tb_size; - rlc_pP->stat_tx_retransmit_bytes += ((struct mac_tb_req*)(pdu_p->data))->tb_size; - list_add_tail_eurecom (pdu_p, &rlc_pP->pdus_to_mac_layer); - return; - } - } - - sn = (sn - 1) & RLC_AM_SN_MASK; - } - - // no pdu_p with correct size has been found - // so re-segment a pdu_p if possible - if (found_pdu) { - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[FORCE-TRAFFIC] SEND SEGMENT OF DATA PDU SN %04d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - found_pdu_sn); - - if (rlc_pP->nb_bytes_requested_by_mac > 4) { -#if MESSAGE_CHART_GENERATOR_RLC_MAC - MSC_LOG_EVENT((ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE,\ - "0 "PROTOCOL_RLC_AM_MSC_FMT" RTX any pdu found SN %u (subseg)",\ - PROTOCOL_RLC_AM_MSC_ARGS(ctxt_pP,rlc_pP), found_pdu_sn); -#endif - rlc_am_nack_pdu (ctxt_pP, rlc_pP, found_pdu_sn, 0, 0x7FFF); - pdu_p = rlc_am_retransmit_get_subsegment(ctxt_pP, rlc_pP, found_pdu_sn, &rlc_pP->nb_bytes_requested_by_mac); - pdu_sn_10_p = (rlc_am_pdu_sn_10_t*) (&pdu_p->data[sizeof(struct mac_tb_req)]); - rlc_am_pdu_polling(ctxt_pP, rlc_pP, pdu_sn_10_p, rlc_pP->tx_data_pdu_buffer[found_pdu_sn].header_and_payload_size,false); - pdu_sn_10_p->b1 = pdu_sn_10_p->b1 | 0x20; - rlc_pP->c_pdu_without_poll = 0; - rlc_pP->c_byte_without_poll = 0; - //rlc_pP->poll_sn = (rlc_pP->vt_s -1) & RLC_AM_SN_MASK; - rlc_pP->stat_tx_data_pdu += 1; - rlc_pP->stat_tx_retransmit_pdu += 1; - rlc_pP->stat_tx_data_bytes += ((struct mac_tb_req*)(pdu_p->data))->tb_size; - rlc_pP->stat_tx_retransmit_bytes += ((struct mac_tb_req*)(pdu_p->data))->tb_size; - list_add_tail_eurecom (pdu_p, &rlc_pP->pdus_to_mac_layer); - return; - } else { - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[FORCE-TRAFFIC] ... BUT NOT ENOUGH BYTES ALLOWED BY MAC %0d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - rlc_pP->nb_bytes_requested_by_mac); - } - } -} -#endif diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h index 60fefab84b..fc52689314 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h @@ -35,21 +35,6 @@ # ifndef __RLC_AM_RETRANSMIT_H__ # define __RLC_AM_RETRANSMIT_H__ //----------------------------------------------------------------------------- -# ifdef RLC_AM_RETRANSMIT_C -# define private_rlc_am_retransmit(x) x -# define protected_rlc_am_retransmit(x) x -# define public_rlc_am_retransmit(x) x -# else -# ifdef RLC_AM_MODULE -# define private_rlc_am_retransmit(x) -# define protected_rlc_am_retransmit(x) extern x -# define public_rlc_am_retransmit(x) extern x -# else -# define private_rlc_am_retransmit(x) -# define protected_rlc_am_retransmit(x) -# define public_rlc_am_retransmit(x) extern x -# endif -# endif /*! \fn boolean_t rlc_am_nack_pdu (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t *rlcP, int16_t snP, int16_t prev_nack_snP,sdu_size_t so_startP, sdu_size_t so_endP) * \brief The RLC AM PDU which have the sequence number snP is marked NACKed with segment offset fields. * \param[in] ctxtP Running context. @@ -61,13 +46,13 @@ * \return OK/KO * \note It may appear a new hole in the retransmission buffer depending on the segment offset informations. Depending on the state of the retransmission buffer, negative confirmation can be sent to higher layers about the drop by the RLC AM instance of a particular SDU. */ -protected_rlc_am_retransmit(boolean_t rlc_am_nack_pdu ( +boolean_t rlc_am_nack_pdu ( const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t *const rlcP, const rlc_sn_t snP, const rlc_sn_t prev_nack_snP, sdu_size_t so_startP, - sdu_size_t so_endP);) + sdu_size_t so_endP); /*! \fn void rlc_am_ack_pdu (const protocol_ctxt_t* const ctxt_pP,rlc_am_entity_t *rlcP, rlc_sn_t snP) * \brief The RLC AM PDU which have the sequence number snP is marked ACKed. @@ -77,11 +62,11 @@ protected_rlc_am_retransmit(boolean_t rlc_am_nack_pdu ( * \param[in] free_pdu Boolean indicating that the PDU can be freed because smaller than new vtA. * \note Depending on the state of the retransmission buffer, positive confirmation can be sent to higher layers about the receiving by the peer RLC AM instance of a particular SDU. */ -protected_rlc_am_retransmit(void rlc_am_ack_pdu ( +void rlc_am_ack_pdu ( const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t *const rlcP, const rlc_sn_t snP, - boolean_t free_pdu);) + boolean_t free_pdu); /*! \fn mem_block_t* rlc_am_retransmit_get_copy (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t *rlcP, rlc_sn_t snP) * \brief The RLC AM PDU which have the sequence number snP is marked ACKed. @@ -90,12 +75,10 @@ protected_rlc_am_retransmit(void rlc_am_ack_pdu ( * \param[in] snP Sequence number of the PDU to be copied. * \return A copy of the PDU having sequence number equal to parameter snP. */ -protected_rlc_am_retransmit(mem_block_t* rlc_am_retransmit_get_copy ( +mem_block_t* rlc_am_retransmit_get_copy ( const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t *const rlcP, - const rlc_sn_t snP)); - -#if 0 + const rlc_sn_t snP); /*! \fn mem_block_t* rlc_am_retransmit_get_subsegment (const protocol_ctxt_t* const ctxt_pP,rlc_am_entity_t *rlcP,rlc_sn_t snP, sdu_size_t *sizeP) * \brief The RLC AM PDU which have the sequence number snP is marked ACKed. * \param[in] ctxtP Running context. @@ -104,32 +87,29 @@ protected_rlc_am_retransmit(mem_block_t* rlc_am_retransmit_get_copy ( * \param[in,out] sizeP Maximum size allowed for the subsegment, it is updated with the amount of bytes not used (sizeP[out] = sizeP[in] - size of segment). * \return A copy of a segment of the PDU having sequence number equal to parameter snP. */ -protected_rlc_am_retransmit(mem_block_t* rlc_am_retransmit_get_subsegment ( +mem_block_t* rlc_am_retransmit_get_subsegment ( const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t *const rlcP, const rlc_sn_t snP, - sdu_size_t *const sizeP)); -#endif - + sdu_size_t *const sizeP); /*! \fn mem_block_t* rlc_am_get_pdu_to_retransmit(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* rlcP) * \brief Find a PDU or PDU segment to retransmit. * \param[in] ctxtP Running context. * \param[in] rlcP RLC AM protocol instance pointer. * \return A copy of the retransmitted PDU or PDU segment or NULL if TBS was not big enough */ -protected_rlc_am_retransmit(mem_block_t* rlc_am_get_pdu_to_retransmit( +mem_block_t* rlc_am_get_pdu_to_retransmit( const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t* const rlcP);) -#if 0 + + rlc_am_entity_t* const rlcP); /*! \fn void rlc_am_retransmit_any_pdu(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* rlcP) * \brief Retransmit any PDU in order to unblock peer entity, if no suitable PDU is found (depending on requested MAC size) to be retransmitted, then try to retransmit a subsegment of any PDU. * \param[in] ctxtP Running context. * \param[in] rlcP RLC AM protocol instance pointer. */ -protected_rlc_am_retransmit(void rlc_am_retransmit_any_pdu( +void rlc_am_retransmit_any_pdu( const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t* const rlcP);) -#endif + rlc_am_entity_t* const rlcP); /*! \fn void rlc_am_tx_buffer_display (const protocol_ctxt_t* const ctxt_pP,rlc_am_entity_t* rlcP, char* message_pP) * \brief Display the dump of the retransmission buffer. @@ -137,9 +117,9 @@ protected_rlc_am_retransmit(void rlc_am_retransmit_any_pdu( * \param[in] rlcP RLC AM protocol instance pointer. * \param[in] message_pP Message to be displayed along with the display of the dump of the retransmission buffer. */ -protected_rlc_am_retransmit(void rlc_am_tx_buffer_display ( +void rlc_am_tx_buffer_display ( const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlcP, - char* const message_pP);) + char* const message_pP); /** @} */ # endif diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c index c0ce57708b..9d69882923 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c @@ -28,7 +28,7 @@ #include "list.h" #include "rlc_am.h" #include "LAYER2/MAC/mac_extern.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" boolean_t rlc_am_rx_check_vr_reassemble( @@ -53,8 +53,17 @@ boolean_t rlc_am_rx_check_vr_reassemble( if (pdu_info_p->rf) { pdu_cursor_mgnt_p = (rlc_am_rx_pdu_management_t *) (cursor_p->data); next_waited_so = 0; +//Assertion(eNB)_PRAN_DesignDocument_annex No.785 + if(pdu_cursor_mgnt_p->all_segments_received <= 0) + { + LOG_E(RLC, "AM Rx Check Reassembly head SN=%d with PDU segments != vrR=%d should be fully received LCID=%d\n", + sn_ref,rlc_pP->vr_r,rlc_pP->channel_id); + return FALSE; + } +/* AssertFatal(pdu_cursor_mgnt_p->all_segments_received > 0,"AM Rx Check Reassembly head SN=%d with PDU segments != vrR=%d should be fully received LCID=%d\n", sn_ref,rlc_pP->vr_r,rlc_pP->channel_id); +*/ while ((cursor_p != NULL) && (pdu_info_p->sn == sn_ref) && (pdu_info_p->so == next_waited_so)) { if (pdu_cursor_mgnt_p->segment_reassembled == RLC_AM_RX_PDU_SEGMENT_REASSEMBLE_NO) { pdu_cursor_mgnt_p->segment_reassembled = RLC_AM_RX_PDU_SEGMENT_REASSEMBLE_PENDING; @@ -80,8 +89,17 @@ boolean_t rlc_am_rx_check_vr_reassemble( if ((cursor_p != NULL) && (pdu_info_p->sn == rlc_pP->vr_r)) { pdu_cursor_mgnt_p = (rlc_am_rx_pdu_management_t *) (cursor_p->data); next_waited_so = 0; +//Assertion(eNB)_PRAN_DesignDocument_annex No.786 + if(pdu_cursor_mgnt_p->all_segments_received != 0) + { + LOG_E(RLC, "AM Rx Check Reassembly vr=%d should be partly received SNHead=%d LCID=%d\n", + rlc_pP->vr_r,sn_ref,rlc_pP->channel_id); + return FALSE; + } +/* AssertFatal(pdu_cursor_mgnt_p->all_segments_received == 0,"AM Rx Check Reassembly vr=%d should be partly received SNHead=%d LCID=%d\n", rlc_pP->vr_r,sn_ref,rlc_pP->channel_id); +*/ while ((cursor_p != NULL) && (pdu_info_p->sn == rlc_pP->vr_r) && (pdu_info_p->so == next_waited_so)) { if (pdu_cursor_mgnt_p->segment_reassembled == RLC_AM_RX_PDU_SEGMENT_REASSEMBLE_NO) { pdu_cursor_mgnt_p->segment_reassembled = RLC_AM_RX_PDU_SEGMENT_REASSEMBLE_PENDING; @@ -100,8 +118,17 @@ boolean_t rlc_am_rx_check_vr_reassemble( pdu_cursor_mgnt_p = (rlc_am_rx_pdu_management_t *) (cursor_p->data); next_waited_so = 0; +//Assertion(eNB)_PRAN_DesignDocument_annex No.787 + if(pdu_cursor_mgnt_p->all_segments_received != 0) + { + LOG_E(RLC, "AM Rx Check Reassembly SNHead=vr=%d should be partly received LCID=%d\n", + rlc_pP->vr_r,rlc_pP->channel_id); + return FALSE; + } +/* AssertFatal(pdu_cursor_mgnt_p->all_segments_received == 0,"AM Rx Check Reassembly SNHead=vr=%d should be partly received LCID=%d\n", rlc_pP->vr_r,rlc_pP->channel_id); +*/ while ((cursor_p != NULL) && (pdu_info_p->sn == rlc_pP->vr_r) && (pdu_info_p->so == next_waited_so)) { if (pdu_cursor_mgnt_p->segment_reassembled == RLC_AM_RX_PDU_SEGMENT_REASSEMBLE_NO) { pdu_cursor_mgnt_p->segment_reassembled = RLC_AM_RX_PDU_SEGMENT_REASSEMBLE_PENDING; @@ -333,8 +360,15 @@ rlc_am_rx_pdu_status_t rlc_am_rx_list_handle_pdu_segment( /*****************************************************/ // 1) Find previous cursor to the PDU to insert /*****************************************************/ +//Assertion(eNB)_PRAN_DesignDocument_annex No.791 + if(cursor_p == NULL) + { + LOG_E(RLC, "AM Rx PDU Error, received buffer empty LcID=%d\n",rlc_pP->channel_id); + return RLC_AM_DATA_PDU_STATUS_HEADER_ERROR; + } +/* AssertFatal(cursor_p != NULL,"AM Rx PDU Error, received buffer empty LcID=%d\n",rlc_pP->channel_id); - +*/ do { pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t*)(cursor_p->data))->pdu_info; @@ -483,11 +517,20 @@ rlc_am_rx_pdu_status_t rlc_am_rx_list_handle_pdu_segment( } } +//Assertion(eNB)_PRAN_DesignDocument_annex No.792 + if((so_start_segment > so_end_segment) || (pdu_rx_info_p->so > so_start_segment) || + (so_end_segment > pdu_rx_info_p->so + pdu_rx_info_p->payload_size - 1)) + { + LOG_E(RLC, " AM RX PDU Segment Duplicate elimination error FirstSO=0 OldSOStart=%d OldSOEnd=%d newSOStart=%d newSOEnd =%d SN=%d\n", + pdu_rx_info_p->so,pdu_rx_info_p->so + pdu_rx_info_p->payload_size - 1,so_start_segment,so_end_segment,pdu_rx_info_p->sn); + return RLC_AM_DATA_PDU_STATUS_AM_SEGMENT_DUPLICATE; + } +/* AssertFatal((so_start_segment <= so_end_segment) && (pdu_rx_info_p->so <= so_start_segment) && (so_end_segment <= pdu_rx_info_p->so + pdu_rx_info_p->payload_size - 1), " AM RX PDU Segment Duplicate elimination error FirstSO=0 OldSOStart=%d OldSOEnd=%d newSOStart=%d newSOEnd =%d SN=%d\n", pdu_rx_info_p->so,pdu_rx_info_p->so + pdu_rx_info_p->payload_size - 1,so_start_segment,so_end_segment,pdu_rx_info_p->sn); - +*/ } // end pdu_info_cursor_p->so == 0 else { // Handle most likely case : PDU Segment without duplicate is inserted before first stored PDU segment @@ -527,12 +570,20 @@ rlc_am_rx_pdu_status_t rlc_am_rx_list_handle_pdu_segment( so_end_segment = pdu_info_cursor_p->so - 1; } } - +//Assertion(eNB)_PRAN_DesignDocument_annex No.793 + if((so_start_segment > so_end_segment) || + (so_end_segment > pdu_rx_info_p->so + pdu_rx_info_p->payload_size - 1)) + { + LOG_E(RLC, " AM RX PDU Segment Duplicate elimination at the end error FirstSO!=0 SOStart=%d OldSOEnd=%d newSOEnd =%d SN=%d\n", + pdu_rx_info_p->so,pdu_rx_info_p->so + pdu_rx_info_p->payload_size - 1,so_end_segment,pdu_rx_info_p->sn); + return RLC_AM_DATA_PDU_STATUS_AM_SEGMENT_DUPLICATE; + } +/* AssertFatal((so_start_segment <= so_end_segment) && (so_end_segment <= pdu_rx_info_p->so + pdu_rx_info_p->payload_size - 1), " AM RX PDU Segment Duplicate elimination at the end error FirstSO!=0 SOStart=%d OldSOEnd=%d newSOEnd =%d SN=%d\n", pdu_rx_info_p->so,pdu_rx_info_p->so + pdu_rx_info_p->payload_size - 1,so_end_segment,pdu_rx_info_p->sn); - +*/ } else { // Second Case: Duplicate at the begining and potentially at the end @@ -618,21 +669,38 @@ rlc_am_rx_pdu_status_t rlc_am_rx_list_handle_pdu_segment( so_end_segment = pdu_info_cursor_p->so - 1; } } - +//Assertion(eNB)_PRAN_DesignDocument_annex No.794 + if((so_start_segment > so_end_segment) || (pdu_rx_info_p->so > so_start_segment) || + (so_end_segment > pdu_rx_info_p->so + pdu_rx_info_p->payload_size - 1)) + { + LOG_E(RLC, " AM RX PDU Segment Duplicate elimination error FirstSO!=0 OldSOStart=%d OldSOEnd=%d newSOStart=%d newSOEnd =%d SN=%d\n", + pdu_rx_info_p->so,pdu_rx_info_p->so + pdu_rx_info_p->payload_size - 1,so_start_segment,so_end_segment,pdu_rx_info_p->sn); + return RLC_AM_DATA_PDU_STATUS_AM_SEGMENT_DUPLICATE; + } +/* AssertFatal((so_start_segment <= so_end_segment) && (pdu_rx_info_p->so <= so_start_segment) && (so_end_segment <= pdu_rx_info_p->so + pdu_rx_info_p->payload_size - 1), " AM RX PDU Segment Duplicate elimination error FirstSO!=0 OldSOStart=%d OldSOEnd=%d newSOStart=%d newSOEnd =%d SN=%d\n", pdu_rx_info_p->so,pdu_rx_info_p->so + pdu_rx_info_p->payload_size - 1,so_start_segment,so_end_segment,pdu_rx_info_p->sn); +*/ } } // end pdu_info_cursor_p->so != 0 /* Last step : duplicate bytes had been removed, build a new PDU segment */ +//Assertion(eNB)_PRAN_DesignDocument_annex No.795 + if((pdu_rx_info_p->so == so_start_segment) && (so_end_segment == pdu_rx_info_p->so + pdu_rx_info_p->payload_size - 1)) + { + LOG_E(RLC, " AM RX PDU Segment Duplicate elimination error FirstSO!=0 OldSOStart=%d OldSOEnd=%d newSOStart=%d newSOEnd =%d SN=%d\n", + pdu_rx_info_p->so,pdu_rx_info_p->so + pdu_rx_info_p->payload_size - 1,so_start_segment,so_end_segment,pdu_rx_info_p->sn); + return RLC_AM_DATA_PDU_STATUS_AM_SEGMENT_DUPLICATE; + } +/* AssertFatal((pdu_rx_info_p->so != so_start_segment) || (so_end_segment != pdu_rx_info_p->so + pdu_rx_info_p->payload_size - 1), " AM RX PDU Segment Duplicate elimination error FirstSO!=0 OldSOStart=%d OldSOEnd=%d newSOStart=%d newSOEnd =%d SN=%d\n", pdu_rx_info_p->so,pdu_rx_info_p->so + pdu_rx_info_p->payload_size - 1,so_start_segment,so_end_segment,pdu_rx_info_p->sn); - +*/ mem_block_t* trunc_segment = create_new_segment_from_pdu(tb_pP,so_start_segment - pdu_rx_info_p->so,so_end_segment - so_start_segment + 1); if (trunc_segment != NULL) { LOG_I(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[PROCESS RX PDU SEGMENT] CREATE SEGMENT FROM SEGMENT OFFSET=%d DATA LENGTH=%d SN=%d\n", @@ -672,8 +740,15 @@ rlc_am_rx_pdu_status_t rlc_am_rx_list_handle_pdu( /*****************************************************/ // 1) Find previous cursor to the PDU to insert /*****************************************************/ +//Assertion(eNB)_PRAN_DesignDocument_annex No.788 + if(cursor_p == NULL) + { + LOG_E(RLC, "AM Rx PDU Error, received buffer empty LcID=%d\n",rlc_pP->channel_id); + return RLC_AM_DATA_PDU_STATUS_HEADER_ERROR; + } +/* AssertFatal(cursor_p != NULL,"AM Rx PDU Error, received buffer empty LcID=%d\n",rlc_pP->channel_id); - +*/ do { pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t*)(cursor_p->data))->pdu_info; @@ -749,9 +824,25 @@ rlc_am_rx_pdu_status_t rlc_am_rx_list_handle_pdu( else { /* First update cursor until discontinuity */ previous_cursor_p = cursor_p; +//Assertion(eNB)_PRAN_DesignDocument_annex No.789 + if(pdu_info_cursor_p->rf == 0) + { + LOG_E(RLC, "AM Rx PDU Error, stored SN=%d should be a PDU segment\n",pdu_info_cursor_p->sn); + return RLC_AM_DATA_PDU_STATUS_HEADER_ERROR; + } +/* AssertFatal(pdu_info_cursor_p->rf != 0,"AM Rx PDU Error, stored SN=%d should be a PDU segment\n",pdu_info_cursor_p->sn); +*/ +//Assertion(eNB)_PRAN_DesignDocument_annex No.790 + if(((rlc_am_rx_pdu_management_t *) (cursor_p->data))->all_segments_received != 0) + { + LOG_E(RLC, "AM Rx PDU Error, stored SN=%d already fully received\n",pdu_info_cursor_p->sn); + return RLC_AM_DATA_PDU_STATUS_SN_DUPLICATE; + } +/* AssertFatal(((rlc_am_rx_pdu_management_t *) (cursor_p->data))->all_segments_received == 0, "AM Rx PDU Error, stored SN=%d already fully received\n",pdu_info_cursor_p->sn); +*/ sdu_size_t next_waited_so = 0; while ((cursor_p != NULL) && (pdu_info_cursor_p->sn == pdu_rx_info_p->sn) && (pdu_info_cursor_p->so == next_waited_so)) { next_waited_so += pdu_info_cursor_p->payload_size; @@ -836,459 +927,6 @@ rlc_am_rx_list_check_duplicate_insert_pdu( return pdu_status; } -#if 0 -// returns 0 if success -// returns neg value if failure -//----------------------------------------------------------------------------- -signed int -rlc_am_rx_list_insert_pdu( - const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t* const rlc_pP, - mem_block_t* const tb_pP) -{ - rlc_am_pdu_info_t* pdu_info_p = &((rlc_am_rx_pdu_management_t*)(tb_pP->data))->pdu_info; - rlc_am_pdu_info_t* pdu_info_cursor_p = NULL; - rlc_am_pdu_info_t* pdu_info_previous_cursor_p = NULL; - mem_block_t* cursor_p = NULL; - mem_block_t* previous_cursor_p = NULL; - cursor_p = rlc_pP->receiver_buffer.head; - // it is assumed this pdu is in rx window - - //TODO : check for duplicate - // should be rewrite - /* look for previous SN */ - - if (cursor_p) { - if (rlc_pP->vr_mr < rlc_pP->vr_r) { - if (pdu_info_p->sn >= rlc_pP->vr_r) { - pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t*)(cursor_p->data))->pdu_info; - - while ((cursor_p != NULL) && (pdu_info_cursor_p->sn >= rlc_pP->vr_r)) { // LG added = - if (pdu_info_p->sn < pdu_info_cursor_p->sn) { - if (previous_cursor_p != NULL) { - pdu_info_previous_cursor_p = &((rlc_am_rx_pdu_management_t*)(previous_cursor_p->data))->pdu_info; - - if (pdu_info_previous_cursor_p->sn == pdu_info_p->sn) { - if (pdu_info_p->rf != pdu_info_previous_cursor_p->rf) { - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d WRONG RF -> DROPPED (vr(mr) < vr(r) and sn >= vr(r))\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - return -2; - } else if (pdu_info_p->rf == 1) { - if ((pdu_info_previous_cursor_p->so + pdu_info_previous_cursor_p->payload_size - 1) >= pdu_info_p->so) { - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d SO OVERLAP -> DROPPED (vr(mr) < vr(r) and sn >= vr(r))\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - return -2; - } - } - } - } - - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d (vr(mr) > vr(r))\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - list2_insert_before_element(tb_pP, cursor_p, &rlc_pP->receiver_buffer); - return 0; - - } else if (pdu_info_p->sn == pdu_info_cursor_p->sn) { - if (pdu_info_cursor_p->rf == 0) { - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d DUPLICATE -> DROPPED\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - return -2; - } else if (pdu_info_p->rf == 1) { - if ((pdu_info_p->so + pdu_info_p->payload_size - 1) < pdu_info_cursor_p->so) { - - if (previous_cursor_p != NULL) { - pdu_info_previous_cursor_p = &((rlc_am_rx_pdu_management_t*)(previous_cursor_p->data))->pdu_info; - - if (pdu_info_previous_cursor_p->sn == pdu_info_cursor_p->sn) { - if ((pdu_info_previous_cursor_p->so + pdu_info_previous_cursor_p->payload_size - 1) < pdu_info_p->so) { - - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d SEGMENT OFFSET %05d (vr(mr) < vr(r) and sn >= vr(r))\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn, - pdu_info_p->so); - list2_insert_before_element(tb_pP, cursor_p, &rlc_pP->receiver_buffer); - return 0; - } else { - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d OVERLAP PREVIOUS SO DUPLICATE -> DROPPED\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - return -2; - } - } - } - - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d SEGMENT OFFSET %05d (vr(mr) < vr(r) and sn >= vr(r))\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn, - pdu_info_p->so); - list2_insert_before_element(tb_pP, cursor_p, &rlc_pP->receiver_buffer); - return 0; - - } else if (pdu_info_p->so <= pdu_info_cursor_p->so) { - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d OVERLAP SO DUPLICATE -> DROPPED\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - return -2; - } - } else { - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d DROPPED\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - return -2; - } - } - - previous_cursor_p = cursor_p; - cursor_p = cursor_p->next; - - if (cursor_p != NULL) { - pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t*)(cursor_p->data))->pdu_info; - } - } - - if (cursor_p != NULL) { - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d (vr(mr) < vr(r) and sn >= vr(r))\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - list2_insert_before_element(tb_pP, cursor_p, &rlc_pP->receiver_buffer); - return 0; - } else { - if (pdu_info_cursor_p->rf == 0) { - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d (vr(mr) < vr(r) and vr(h) > vr(r) and sn >= vr(r))\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - list2_add_tail(tb_pP, &rlc_pP->receiver_buffer); - return 0; - } else if ((pdu_info_p->rf == 1) && (pdu_info_cursor_p->rf == 1) && (pdu_info_p->sn == pdu_info_cursor_p->sn)) { - if ((pdu_info_cursor_p->so + pdu_info_cursor_p->payload_size - 1) < pdu_info_p->so) { - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d (vr(mr) < vr(r) and vr(h) > vr(r) and sn >= vr(r))\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - list2_add_tail(tb_pP, &rlc_pP->receiver_buffer); - return 0; - } else { - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d DROPPED\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - return -2; - } - } else if (pdu_info_p->sn != pdu_info_cursor_p->sn) { - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d (vr(mr) < vr(r) and vr(h) > vr(r) and sn >= vr(r))\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - list2_add_tail(tb_pP, &rlc_pP->receiver_buffer); - return 0; - } - } - - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d DROPPED\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - return -2; - } else { // (pdu_info_p->sn < rlc_pP->vr_r) - cursor_p = rlc_pP->receiver_buffer.tail; - pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t*)(cursor_p->data))->pdu_info; - - while ((cursor_p != NULL) && (pdu_info_cursor_p->sn < rlc_pP->vr_r)) { - //pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t*)(cursor_p->data))->pdu_info; - if (pdu_info_p->sn > pdu_info_cursor_p->sn) { - if (previous_cursor_p != NULL) { - pdu_info_previous_cursor_p = &((rlc_am_rx_pdu_management_t*)(previous_cursor_p->data))->pdu_info; - - if (pdu_info_previous_cursor_p->sn == pdu_info_cursor_p->sn) { - if (pdu_info_p->rf != pdu_info_previous_cursor_p->rf) { - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d WRONG RF -> DROPPED (vr(mr) < vr(r) and sn >= vr(r))\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, pdu_info_p->sn); - return -2; - } else if (pdu_info_p->rf == 1) { - if ((pdu_info_p->so + pdu_info_p->payload_size - 1) >= pdu_info_previous_cursor_p->so) { - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d SO OVERLAP -> DROPPED (vr(mr) < vr(r) and sn >= vr(r))\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - return -2; - } - } - } - } - - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d (vr(mr) < vr(r))\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - list2_insert_after_element(tb_pP, cursor_p, &rlc_pP->receiver_buffer); - return 0; - } else if (pdu_info_p->sn == pdu_info_cursor_p->sn) { - if (pdu_info_cursor_p->rf == 0) { - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d DUPLICATE -> DROPPED\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - return -2; - } else if (pdu_info_p->rf == 1) { - if ((pdu_info_cursor_p->so + pdu_info_cursor_p->payload_size - 1) < pdu_info_p->so) { - - if (previous_cursor_p != NULL) { - pdu_info_previous_cursor_p = &((rlc_am_rx_pdu_management_t*)(previous_cursor_p->data))->pdu_info; - - if (pdu_info_previous_cursor_p->sn == pdu_info_cursor_p->sn) { - if ((pdu_info_p->so + pdu_info_p->payload_size - 1) < pdu_info_previous_cursor_p->so) { - - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d SEGMENT OFFSET %05d (vr(mr) < vr(r) and sn < vr(r))\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn, - pdu_info_p->so); - list2_insert_after_element(tb_pP, cursor_p, &rlc_pP->receiver_buffer); - return 0; - } else { - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d OVERLAP PREVIOUS SO DUPLICATE -> DROPPED\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - return -2; - } - } - } - - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d SEGMENT OFFSET %05d (vr(mr) < vr(r) and sn < vr(r))\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn, - pdu_info_p->so); - list2_insert_after_element(tb_pP, cursor_p, &rlc_pP->receiver_buffer); - return 0; - - } else if (pdu_info_cursor_p->so <= pdu_info_p->so) { - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d OVERLAP SO DUPLICATE -> DROPPED\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - return -2; - } - } else { - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d DROPPED\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - return -2; - } - } - - previous_cursor_p = cursor_p; - cursor_p = cursor_p->previous; - - if (cursor_p != NULL) { - pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t*)(cursor_p->data))->pdu_info; - } - } - - if (cursor_p != NULL) { - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d (vr(mr) < vr(r) and sn < vr(r))\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - list2_insert_after_element(tb_pP, cursor_p, &rlc_pP->receiver_buffer); - return 0; - } else { - if (pdu_info_cursor_p->rf == 0) { - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d (vr(mr) < vr(r) and vr(h) > vr(r) and sn >= vr(r))\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - list2_add_tail(tb_pP, &rlc_pP->receiver_buffer); - return 0; - } else if ((pdu_info_p->rf == 1) && (pdu_info_cursor_p->rf == 1) && (pdu_info_p->sn == pdu_info_cursor_p->sn)) { - if ((pdu_info_cursor_p->so + pdu_info_cursor_p->payload_size - 1) < pdu_info_p->so) { - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d (vr(mr) < vr(r) and vr(h) > vr(r) and sn >= vr(r))\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - list2_add_tail(tb_pP, &rlc_pP->receiver_buffer); - return 0; - } else { - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d DROPPED\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - return -2; - } - } else if (pdu_info_p->sn != pdu_info_cursor_p->sn) { - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d (vr(mr) < vr(r) and vr(h) > vr(r) and sn >= vr(r))\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - list2_add_tail(tb_pP, &rlc_pP->receiver_buffer); - return 0; - } - } - - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d DROPPED\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - return -2; - } - } else { // (pdu_info_p->vr_mr > rlc_pP->vr_r), > and not >= - // FAR MORE SIMPLE CASE - while (cursor_p != NULL) { - //msg ("[FRAME %05u][%s][RLC_AM][MOD %u/%u][RB %u][INSERT PDU] LINE %d cursor_p %p\n", ctxt_pP->frame, rlc_pP->module_id, rlc_pP->rb_id, __LINE__, cursor_p); - pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t*)(cursor_p->data))->pdu_info; - - if (pdu_info_p->sn < pdu_info_cursor_p->sn) { - - if (previous_cursor_p != NULL) { - pdu_info_previous_cursor_p = &((rlc_am_rx_pdu_management_t*)(previous_cursor_p->data))->pdu_info; - - if (pdu_info_previous_cursor_p->sn == pdu_info_p->sn) { - if (pdu_info_p->rf != pdu_info_previous_cursor_p->rf) { - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d WRONG RF -> DROPPED (vr(mr) > vr(r))\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - return -2; - } else if (pdu_info_p->rf == 1) { - if ((pdu_info_previous_cursor_p->so + pdu_info_previous_cursor_p->payload_size - 1) >= pdu_info_p->so) { - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d SO OVERLAP -> DROPPED (vr(mr) > vr(r))\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - return -2; - } - } - } - } - - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d (vr(mr) > vr(r))\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - list2_insert_before_element(tb_pP, cursor_p, &rlc_pP->receiver_buffer); - return 0; - - } else if (pdu_info_p->sn == pdu_info_cursor_p->sn) { - if (pdu_info_cursor_p->rf == 0) { - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d WRONG RF -> DROPPED (vr(mr) > vr(r))\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - return -2; - } else if (pdu_info_p->rf == 1) { - - if ((pdu_info_p->so + pdu_info_p->payload_size - 1) < pdu_info_cursor_p->so) { - - if (previous_cursor_p != NULL) { - pdu_info_previous_cursor_p = &((rlc_am_rx_pdu_management_t*)(previous_cursor_p->data))->pdu_info; - - if (pdu_info_previous_cursor_p->sn == pdu_info_cursor_p->sn) { - if ((pdu_info_previous_cursor_p->so + pdu_info_previous_cursor_p->payload_size - 1) < pdu_info_p->so) { - - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d SEGMENT OFFSET %05d (vr(mr) > vr(r) and sn >= vr(r))\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn, - pdu_info_p->so); - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] PREVIOUS SO %d PAYLOAD SIZE %d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - pdu_info_previous_cursor_p->so, - pdu_info_previous_cursor_p->payload_size); - list2_insert_before_element(tb_pP, cursor_p, &rlc_pP->receiver_buffer); - return 0; - } else { - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d OVERLAP PREVIOUS SO DUPLICATE -> DROPPED\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - return -2; - } - } - } - - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d SEGMENT OFFSET %05d (vr(mr) > vr(r) and sn >= vr(r))\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn, - pdu_info_p->so); - list2_insert_before_element(tb_pP, cursor_p, &rlc_pP->receiver_buffer); - return 0; - } else if (pdu_info_p->so <= pdu_info_cursor_p->so) { - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d OVERLAP SO DUPLICATE -> DROPPED\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - return -2; - } - } else { - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d DROPPED\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - return -2; - } - } - - previous_cursor_p = cursor_p; - cursor_p = cursor_p->next; - } - - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d (vr(mr) > vr(r))(last inserted)\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - - // pdu_info_cursor_p can not be NULL here - if (pdu_info_p->sn == pdu_info_cursor_p->sn) { - if ((pdu_info_cursor_p->so + pdu_info_cursor_p->payload_size - 1) < pdu_info_p->so) { - list2_add_tail(tb_pP, &rlc_pP->receiver_buffer); - return 0; - } else { - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d OVERLAP SO DUPLICATE -> DROPPED\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - return -2; - } - } else { - list2_add_tail(tb_pP, &rlc_pP->receiver_buffer); - return 0; - } - } - } else { - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d (only inserted)\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - list2_add_head(tb_pP, &rlc_pP->receiver_buffer); - return 0; - } - - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[INSERT PDU] LINE %d RX PDU SN %04d DROPPED @4\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_info_p->sn); - return -1; -} -#endif //----------------------------------------------------------------------------- void @@ -1558,7 +1196,8 @@ list2_insert_before_element ( return element_to_insert_pP; } else { - assert(2==1); + //assert(2==1); + LOG_E(RLC, "list2_insert_before_element error. element_to_insert_pP %p, element_pP %p\n", element_to_insert_pP,element_pP); return NULL; } } @@ -1585,7 +1224,8 @@ list2_insert_after_element ( return element_to_insert_pP; } else { - assert(2==1); + //assert(2==1); + LOG_E(RLC, "list2_insert_after_element error. element_to_insert_pP %p, element_pP %p\n", element_to_insert_pP,element_pP); return NULL; } } @@ -1635,7 +1275,12 @@ rlc_am_rx_list_display ( //if (cursor_p == cursor_p->next) { // rlc_am_v9_3_0_test_print_trace(); //} - assert(cursor_p != cursor_p->next); + //assert(cursor_p != cursor_p->next); + if(cursor_p == cursor_p->next) + { + LOG_E(RLC, "rlc_am_rx_list_display error. cursor_p %p, cursor_p->next %p\n", cursor_p, cursor_p->next); + break; + } cursor_p = cursor_p->next; loop++; } diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h index 9dcc75223d..fd8704964d 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h @@ -38,22 +38,6 @@ # include "UTIL/MEM/mem_block.h" //----------------------------------------------------------------------------- -# ifdef RLC_AM_RX_LIST_C -# define private_rlc_am_rx_list(x) x -# define protected_rlc_am_rx_list(x) x -# define public_rlc_am_rx_list(x) x -# else -# ifdef RLC_AM_MODULE -# define private_rlc_am_rx_list(x) -# define protected_rlc_am_rx_list(x) extern x -# define public_rlc_am_rx_list(x) extern x -# else -# define private_rlc_am_rx_list(x) -# define protected_rlc_am_rx_list(x) -# define public_rlc_am_rx_list(x) extern x -# endif -# endif -//----------------------------------------------------------------------------- #include "platform_types.h" #include "platform_constants.h" //#include "PHY/defs.h" @@ -66,9 +50,8 @@ * \param[in] tbP A PDU embedded in a mem_block_t. * \return Zero if the PDU could be inserted in the RX buffer, a negative value if the PDU could not be inserted. */ -protected_rlc_am_rx_list( rlc_am_rx_pdu_status_t rlc_am_rx_list_check_duplicate_insert_pdu(const protocol_ctxt_t* const ctxt_pP,rlc_am_entity_t* const rlc_pP,mem_block_t* const tb_pP);) +rlc_am_rx_pdu_status_t rlc_am_rx_list_check_duplicate_insert_pdu(const protocol_ctxt_t* const ctxt_pP,rlc_am_entity_t* const rlc_pP,mem_block_t* const tb_pP); -#if 0 /*! \fn signed int rlc_am_rx_list_insert_pdu(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlcP , mem_block_t* const tbP) * \brief Insert a PDU in the RX buffer (implemented with a list). * \param[in] ctxt_pP Running context. @@ -76,8 +59,7 @@ protected_rlc_am_rx_list( rlc_am_rx_pdu_status_t rlc_am_rx_list_check_duplicate_ * \param[in] tbP A PDU embedded in a mem_block_t. * \return Zero if the PDU could be inserted in the RX buffer, a negative value if the PDU could not be inserted. */ -protected_rlc_am_rx_list( signed int rlc_am_rx_list_insert_pdu(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlcP, mem_block_t* const tbP);) -#endif +signed int rlc_am_rx_list_insert_pdu(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlcP, mem_block_t* const tbP); /*! \fn boolean_t rlc_am_rx_check_vr_reassemble(const protocol_ctxt_t* const ctxt_pP,const rlc_am_entity_t* const rlc_pP) * \brief Check if reassembly taking into account potential new vrR value @@ -85,7 +67,7 @@ protected_rlc_am_rx_list( signed int rlc_am_rx_list_insert_pdu(const protocol_ct * \param[in] rlcP RLC AM protocol instance pointer. * \return TRUE if reassembly must be done, FALSE else */ -protected_rlc_am_rx_list( boolean_t rlc_am_rx_check_vr_reassemble(const protocol_ctxt_t* const ctxt_pP,const rlc_am_entity_t* const rlc_pP);) +boolean_t rlc_am_rx_check_vr_reassemble(const protocol_ctxt_t* const ctxt_pP,const rlc_am_entity_t* const rlc_pP); /*! \fn void rlc_am_rx_check_all_byte_segments(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlcP, mem_block_t* const tbP) * \brief Check if all sub-segments of a PDU are received, if yes then call rlc_am_rx_mark_all_segments_received() procedure. @@ -93,7 +75,7 @@ protected_rlc_am_rx_list( boolean_t rlc_am_rx_check_vr_reassemble(const protocol * \param[in] rlcP RLC AM protocol instance pointer. * \param[in] tbP A PDU embedded in a mem_block_t. */ -protected_rlc_am_rx_list( void rlc_am_rx_check_all_byte_segments(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlcP, mem_block_t* const tbP);) +void rlc_am_rx_check_all_byte_segments(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlcP, mem_block_t* const tbP); /*! \fn void rlc_am_rx_mark_all_segments_received (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlcP, mem_block_t* const first_segment_tbP) * \brief Mark all PDUs having the same sequence number as first_segment_tbP with the information that all segments have been received. @@ -101,14 +83,14 @@ protected_rlc_am_rx_list( void rlc_am_rx_check_all_byte_segments(const protocol_ * \param[in] rlcP RLC AM protocol instance pointer. * \param[in] first_segment_tbP A PDU embedded in a mem_block_t, it is the first PDU in the RX buffer (list) that have its sequence number. */ -protected_rlc_am_rx_list( void rlc_am_rx_mark_all_segments_received(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlcP, mem_block_t* const first_segment_tbP);) +void rlc_am_rx_mark_all_segments_received(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlcP, mem_block_t* const first_segment_tbP); /*! \fn void rlc_am_rx_list_reassemble_rlc_sdus(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlcP) * \brief Reassembly all SDUS that it is possible to reassembly by parsing the RX buffer and looking for PDUs having the flag 'all segments received'. * \param[in] ctxt_pP Running context. * \param[in] rlcP RLC AM protocol instance pointer. */ -protected_rlc_am_rx_list( void rlc_am_rx_list_reassemble_rlc_sdus(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlcP);) +void rlc_am_rx_list_reassemble_rlc_sdus(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlcP); /*! \fn mem_block_t* list2_insert_before_element (mem_block_t * element_to_insertP, mem_block_t * elementP, list2_t * listP) * \brief Insert a PDU embedded in a mem_block_t in a list at a position before a designated element of the list. @@ -116,7 +98,7 @@ protected_rlc_am_rx_list( void rlc_am_rx_list_reassemble_rlc_sdus(const protocol * \param[in] elementP Element in the list. * \param[in] listP List where elements are linked. */ -public_rlc_am_rx_list( mem_block_t* list2_insert_before_element (mem_block_t * element_to_insertP, mem_block_t * elementP, list2_t * listP);) +mem_block_t* list2_insert_before_element (mem_block_t * element_to_insertP, mem_block_t * elementP, list2_t * listP); /*! \fn mem_block_t* list2_insert_after_element (mem_block_t * element_to_insertP, mem_block_t * elementP, list2_t * listP) * \brief Insert a PDU embedded in a mem_block_t in a list at a position after a designated element of the list. @@ -124,13 +106,13 @@ public_rlc_am_rx_list( mem_block_t* list2_insert_before_element (mem_block_t * e * \param[in] elementP Element in the list. * \param[in] listP List where elements are linked. */ -public_rlc_am_rx_list( mem_block_t* list2_insert_after_element (mem_block_t * element_to_insertP, mem_block_t * elementP, list2_t * listP);) +mem_block_t* list2_insert_after_element (mem_block_t * element_to_insertP, mem_block_t * elementP, list2_t * listP); /*! \fn void rlc_am_rx_list_display (const rlc_am_entity_t* const rlcP, char* messageP) * \brief Display the dump of the RX buffer. * \param[in] rlcP RLC AM protocol instance pointer. * \param[in] messageP Message to be displayed along with the display of the dump of the RX buffer. */ -protected_rlc_am_rx_list( void rlc_am_rx_list_display (const rlc_am_entity_t* const rlcP, char* messageP);) +void rlc_am_rx_list_display (const rlc_am_entity_t* const rlcP, char* messageP); /** @} */ #endif diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c index fe99e137a4..40bab6ff0b 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c @@ -30,7 +30,7 @@ #include "list.h" #include "rlc_am.h" #include "LAYER2/MAC/mac_extern.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" //----------------------------------------------------------------------------- void rlc_am_pdu_polling ( @@ -209,7 +209,7 @@ void rlc_am_segment_10 ( } if (!(pdu_mem_p = get_free_mem_block (data_pdu_size + sizeof(struct mac_tb_req), __func__))) { - LOG_C(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEGMENT] ERROR COULD NOT GET NEW PDU, EXIT\n", + LOG_E(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEGMENT] ERROR COULD NOT GET NEW PDU, EXIT\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); RLC_AM_MUTEX_UNLOCK(&rlc_pP->lock_input_sdus); return; @@ -299,7 +299,12 @@ void rlc_am_segment_10 ( pdu_mngt_p->sdus_index[pdu_mngt_p->nb_sdus++] = sdu_buffer_index; sdu_mngt_p->pdus_index[sdu_mngt_p->nb_pdus++] = rlc_pP->vt_s % RLC_AM_PDU_RETRANSMISSION_BUFFER_SIZE; - assert(sdu_mngt_p->nb_pdus < RLC_AM_MAX_SDU_FRAGMENTS); + //assert(sdu_mngt_p->nb_pdus < RLC_AM_MAX_SDU_FRAGMENTS); + if(sdu_mngt_p->nb_pdus >= RLC_AM_MAX_SDU_FRAGMENTS) { + LOG_E(RLC,PROTOCOL_RLC_AM_CTXT_FMT"[SEGMENT] loop error. %d %d\n", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), sdu_mngt_p->nb_pdus, RLC_AM_MAX_SDU_FRAGMENTS); + break; + } sdu_buffer_index = (sdu_buffer_index + 1) % RLC_AM_SDU_CONTROL_BUFFER_SIZE; } @@ -353,6 +358,8 @@ void rlc_am_segment_10 ( PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), pdu_remaining_size); //msg ("[FRAME %05d][%s][RLC_AM][MOD %u/%u][RB %u][SEGMENT] pdu_mem_p %p pdu_p %p pdu_p->data %p data %p data_sdu_p %p pdu_remaining_size %d\n", rlc_pP->module_id, rlc_pP->rb_id, ctxt_pP->frame, pdu_mem_p, pdu_p, pdu_p->data, data, data_sdu_p,pdu_remaining_size); + rlc_am_mui.rrc_mui[rlc_am_mui.rrc_mui_num] = sdu_mngt_p->mui; + rlc_am_mui.rrc_mui_num++; memcpy(data, data_sdu_p, pdu_remaining_size); pdu_mngt_p->payload_size += pdu_remaining_size; @@ -371,6 +378,9 @@ void rlc_am_segment_10 ( LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEGMENT] Exactly Filling remaining PDU with %d remaining bytes of SDU\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), pdu_remaining_size); + rlc_am_mui.rrc_mui[rlc_am_mui.rrc_mui_num] = sdu_mngt_p->mui; + rlc_am_mui.rrc_mui_num++; + memcpy(data, data_sdu_p, pdu_remaining_size); pdu_mngt_p->payload_size += pdu_remaining_size; @@ -387,6 +397,8 @@ void rlc_am_segment_10 ( continue_fill_pdu_with_sdu = 0; pdu_remaining_size = 0; } else if ((sdu_mngt_p->sdu_remaining_size + (li_length_in_bytes ^ 3)) < pdu_remaining_size ) { + rlc_am_mui.rrc_mui[rlc_am_mui.rrc_mui_num] = sdu_mngt_p->mui; + rlc_am_mui.rrc_mui_num++; if (fill_num_li == (RLC_AM_MAX_SDU_IN_PDU - 1)) { LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEGMENT] [SIZE %d] REACHING RLC_AM_MAX_SDU_IN_PDU LIs -> STOP SEGMENTATION FOR THIS PDU SDU\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), @@ -462,11 +474,14 @@ void rlc_am_segment_10 ( rlc_pP->current_sdu_index = (rlc_pP->current_sdu_index + 1) % RLC_AM_SDU_CONTROL_BUFFER_SIZE; } } else { - LOG_T(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEGMENT] Filling PDU with %d all remaining bytes of SDU and reduce TB size by %d bytes\n", + LOG_E(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEGMENT] Filling PDU with %d all remaining bytes of SDU and reduce TB size by %d bytes\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), sdu_mngt_p->sdu_remaining_size, pdu_remaining_size - sdu_mngt_p->sdu_remaining_size); - assert(1!=1); + //assert(1!=1); + rlc_am_mui.rrc_mui[rlc_am_mui.rrc_mui_num] = sdu_mngt_p->mui; + rlc_am_mui.rrc_mui_num++; + memcpy(data, data_sdu_p, sdu_mngt_p->sdu_remaining_size); pdu_mngt_p->payload_size += sdu_mngt_p->sdu_remaining_size; pdu_remaining_size = pdu_remaining_size - sdu_mngt_p->sdu_remaining_size; @@ -520,7 +535,11 @@ void rlc_am_segment_10 ( pdu_tb_req_p->data_ptr = (unsigned char*)pdu_p; pdu_tb_req_p->tb_size = data_pdu_size - pdu_remaining_size; //#warning "why 3000: changed to RLC_SDU_MAX_SIZE " - assert(pdu_tb_req_p->tb_size < RLC_SDU_MAX_SIZE ); + //assert(pdu_tb_req_p->tb_size < RLC_SDU_MAX_SIZE ); + if(pdu_tb_req_p->tb_size >= RLC_SDU_MAX_SIZE) { + LOG_E(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEGMENT] tb_size error. %d, %d\n", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP),pdu_tb_req_p->tb_size, RLC_SDU_MAX_SIZE); + } rlc_am_pdu_polling(ctxt_pP, rlc_pP, pdu_p, pdu_mngt_p->payload_size,true); //list_add_tail_eurecom (pdu_mem_p, &rlc_pP->segmentation_pdu_list); diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h index aa5cb6dceb..dc754d08e4 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h @@ -35,21 +35,6 @@ # ifndef __RLC_AM_SEGMENT_H__ # define __RLC_AM_SEGMENT_H__ //----------------------------------------------------------------------------- -# ifdef RLC_AM_SEGMENT_C -# define private_rlc_am_segment(x) x -# define protected_rlc_am_segment(x) x -# define public_rlc_am_segment(x) x -# else -# ifdef RLC_AM_MODULE -# define private_rlc_am_segment(x) -# define protected_rlc_am_segment(x) extern x -# define public_rlc_am_segment(x) extern x -# else -# define private_rlc_am_segment(x) -# define protected_rlc_am_segment(x) -# define public_rlc_am_segment(x) extern x -# endif -# endif /*! \fn void rlc_am_pdu_polling (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t *const rlcP, rlc_am_pdu_sn_10_t *pduP, int16_t payload_sizeP,boolean_t is_new_pdu) * \brief Set or not the poll bit in the PDU header depending on RLC AM protocol variables. @@ -58,13 +43,13 @@ * \param[in] pduP Pointer on the header of the PDU in order to be able to set the poll bit if necessary. * \param[in] payload_sizeP Size of the payload of the PDU. */ -protected_rlc_am_segment(void rlc_am_pdu_polling (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t *const rlcP, rlc_am_pdu_sn_10_t *pduP, int16_t payload_sizeP,boolean_t is_new_pdu);) +void rlc_am_pdu_polling (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t *const rlcP, rlc_am_pdu_sn_10_t *pduP, int16_t payload_sizeP,boolean_t is_new_pdu); /*! \fn void rlc_am_segment_10 (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t * const rlcP) * \brief Segment a PDU with 10 bits sequence number, based on segmentation information given by MAC (size to transmit). * \param[in] ctxt_pP Running context. * \param[in] rlcP RLC AM protocol instance pointer. */ -protected_rlc_am_segment(void rlc_am_segment_10 (const protocol_ctxt_t* const ctxt_pP,rlc_am_entity_t *const rlcP);) +void rlc_am_segment_10 (const protocol_ctxt_t* const ctxt_pP,rlc_am_entity_t *const rlcP); /** @} */ # endif diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.c index 1da5bbc441..a696f9a9f1 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.c +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.c @@ -19,301 +19,4 @@ * contact@openairinterface.org */ -#if 0 -#define RLC_AM_MODULE 1 -#define RLC_AM_SEGMENT_HOLES_C 1 -//----------------------------------------------------------------------------- -#include "rlc_am.h" -#include "LAYER2/MAC/extern.h" -#include "UTIL/LOG/log.h" - -//----------------------------------------------------------------------------- -void rlc_am_clear_holes ( - const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t *const rlc_pP, - const rlc_sn_t snP) -{ - rlc_pP->tx_data_pdu_buffer[snP].num_holes = 0; -} -//----------------------------------------------------------------------------- -void rlc_am_shift_down_holes ( - const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t *const rlc_pP, - const rlc_sn_t snP, - const int indexP) -{ - int i; - - for (i=indexP; i < rlc_pP->tx_data_pdu_buffer[snP].num_holes - 1; i++) { - rlc_pP->tx_data_pdu_buffer[snP].hole_so_start[i] = rlc_pP->tx_data_pdu_buffer[snP].hole_so_start[i+1]; - rlc_pP->tx_data_pdu_buffer[snP].hole_so_stop[i] = rlc_pP->tx_data_pdu_buffer[snP].hole_so_stop[i+1]; - } - - rlc_pP->tx_data_pdu_buffer[snP].num_holes = rlc_pP->tx_data_pdu_buffer[snP].num_holes - 1; -} -//----------------------------------------------------------------------------- -void rlc_am_shift_up_holes ( - const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t *const rlc_pP, - const rlc_sn_t snP, - const int indexP) -{ - // shift include indexP - int i; - - for (i=rlc_pP->tx_data_pdu_buffer[snP].num_holes; i > indexP; i--) { - rlc_pP->tx_data_pdu_buffer[snP].hole_so_start[i] = rlc_pP->tx_data_pdu_buffer[snP].hole_so_start[i-1]; - rlc_pP->tx_data_pdu_buffer[snP].hole_so_stop[i] = rlc_pP->tx_data_pdu_buffer[snP].hole_so_stop[i-1]; - } - - rlc_pP->tx_data_pdu_buffer[snP].num_holes = rlc_pP->tx_data_pdu_buffer[snP].num_holes + 1; - assert(rlc_pP->tx_data_pdu_buffer[snP].num_holes < RLC_AM_MAX_HOLES_REPORT_PER_PDU); -} -//----------------------------------------------------------------------------- -void rlc_am_remove_hole ( - const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t *const rlc_pP, - const rlc_sn_t snP, - const sdu_size_t so_startP, - const sdu_size_t so_stopP) -{ - int i; -#if TRACE_RLC_AM_HOLE - LOG_D(RLC, - PROTOCOL_RLC_AM_CTXT_FMT"[HOLE] REMOVE HOLE SN %04d so_startP %05d so_stopP %05d rlc_pP->tx_data_pdu_buffer[snP].nack_so_start %05d rlc_pP->tx_data_pdu_buffer[snP].nack_so_stop %05d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - snP, - so_startP, - so_stopP, - rlc_pP->tx_data_pdu_buffer[snP].nack_so_start, - rlc_pP->tx_data_pdu_buffer[snP].nack_so_stop); -#endif - assert(so_startP <= so_stopP); - - if (rlc_pP->tx_data_pdu_buffer[snP].num_holes == 0) { - assert(so_startP == rlc_pP->tx_data_pdu_buffer[snP].nack_so_start); - assert(so_stopP <= rlc_pP->tx_data_pdu_buffer[snP].nack_so_stop); -#if TRACE_RLC_AM_HOLE - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[HOLE] REMOVE HOLE SN %04d MODIFIED nack_so_start %05d->%05d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - snP, - rlc_pP->tx_data_pdu_buffer[snP].nack_so_start, - so_stopP+1); -#endif - rlc_pP->tx_data_pdu_buffer[snP].nack_so_start = so_stopP+1; - - if (rlc_pP->tx_data_pdu_buffer[snP].nack_so_start >= rlc_pP->tx_data_pdu_buffer[snP].nack_so_stop) { - rlc_pP->tx_data_pdu_buffer[snP].nack_so_start = 0; - rlc_pP->tx_data_pdu_buffer[snP].nack_so_stop = 0x7FFF; - } - } else { - // normally should be removed in increasing order... - for (i = 0; i < rlc_pP->tx_data_pdu_buffer[snP].num_holes; i++) { - if (so_startP <= rlc_pP->tx_data_pdu_buffer[snP].hole_so_start[i]) { - if (so_stopP >= rlc_pP->tx_data_pdu_buffer[snP].hole_so_stop[i]) { - rlc_am_shift_down_holes(ctxt_pP, rlc_pP, snP, i); - i = i - 1; - } else { - rlc_pP->tx_data_pdu_buffer[snP].hole_so_start[i] = so_stopP; - - if (rlc_pP->tx_data_pdu_buffer[snP].num_holes == 0) { - rlc_pP->tx_data_pdu_buffer[snP].nack_so_start = 0; - rlc_pP->tx_data_pdu_buffer[snP].nack_so_stop = 0x7FFF; - } else { - rlc_pP->tx_data_pdu_buffer[snP].nack_so_start = rlc_pP->tx_data_pdu_buffer[snP].hole_so_start[0]; - rlc_pP->tx_data_pdu_buffer[snP].nack_so_stop = rlc_pP->tx_data_pdu_buffer[snP].hole_so_stop[rlc_pP->tx_data_pdu_buffer[snP].num_holes - 1]; - } - -#if TRACE_RLC_AM_HOLE - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[HOLE] REMOVE HOLE SN %04d NOW nack_so_start %05d nack_so_stop %05d num holes %d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - snP, - rlc_pP->tx_data_pdu_buffer[snP].nack_so_start, - rlc_pP->tx_data_pdu_buffer[snP].nack_so_stop, - rlc_pP->tx_data_pdu_buffer[snP].num_holes); -#endif - return; - } - } else if (so_startP > rlc_pP->tx_data_pdu_buffer[snP].hole_so_start[i]) { - if (so_startP <= rlc_pP->tx_data_pdu_buffer[snP].hole_so_stop[i]) { - if (so_stopP < rlc_pP->tx_data_pdu_buffer[snP].hole_so_stop[i]) { - // BAD CASE: 1 HOLE IS SPLITTED IN 2 HOLES - rlc_am_shift_up_holes(ctxt_pP, rlc_pP, snP, i+1); - rlc_pP->tx_data_pdu_buffer[snP].hole_so_start[i+1] = so_startP+1; - rlc_pP->tx_data_pdu_buffer[snP].hole_so_stop[i+1] = rlc_pP->tx_data_pdu_buffer[snP].hole_so_stop[i]; - rlc_pP->tx_data_pdu_buffer[snP].hole_so_stop[i] = so_startP - 1; - } else { - rlc_pP->tx_data_pdu_buffer[snP].hole_so_stop[i] = so_startP; - } - } - } - } - - if (rlc_pP->tx_data_pdu_buffer[snP].num_holes == 0) { - rlc_pP->tx_data_pdu_buffer[snP].nack_so_start = 0; - rlc_pP->tx_data_pdu_buffer[snP].nack_so_stop = 0x7FFF; - } else { - rlc_pP->tx_data_pdu_buffer[snP].nack_so_start = rlc_pP->tx_data_pdu_buffer[snP].hole_so_start[0]; - rlc_pP->tx_data_pdu_buffer[snP].nack_so_stop = rlc_pP->tx_data_pdu_buffer[snP].hole_so_stop[rlc_pP->tx_data_pdu_buffer[snP].num_holes - 1]; - } - } - -#if TRACE_RLC_AM_HOLE - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[HOLE] REMOVE HOLE SN %04d NOW nack_so_start %05d nack_so_stop %05d num holes %d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - snP, - rlc_pP->tx_data_pdu_buffer[snP].nack_so_start, - rlc_pP->tx_data_pdu_buffer[snP].nack_so_stop, - rlc_pP->tx_data_pdu_buffer[snP].num_holes); -#endif - assert(rlc_pP->tx_data_pdu_buffer[snP].nack_so_start < rlc_pP->tx_data_pdu_buffer[snP].payload_size); -} -//----------------------------------------------------------------------------- -void rlc_am_get_next_hole ( - const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t *const rlc_pP, - const rlc_sn_t snP, - sdu_size_t* const so_startP, - sdu_size_t* const so_stopP) -{ - if (rlc_pP->tx_data_pdu_buffer[snP].num_holes == 0) { - *so_startP = rlc_pP->tx_data_pdu_buffer[snP].nack_so_start; - *so_stopP = rlc_pP->tx_data_pdu_buffer[snP].nack_so_stop; -#if TRACE_RLC_AM_HOLE - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[HOLE] rlc_am_get_next_hole(SN %04d) %05d->%05d (NUM HOLES == 0)\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - snP, - *so_startP, - *so_stopP); -#endif - } else { - *so_startP = rlc_pP->tx_data_pdu_buffer[snP].hole_so_start[0]; - *so_stopP = rlc_pP->tx_data_pdu_buffer[snP].hole_so_stop[0]; -#if TRACE_RLC_AM_HOLE - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[HOLE] rlc_am_get_next_hole(SN %04d) %05d->%05d (NUM HOLES == %d)\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - snP, - *so_startP, - *so_stopP, - rlc_pP->tx_data_pdu_buffer[snP].num_holes); -#endif - } -} -//----------------------------------------------------------------------------- -void rlc_am_add_hole ( - const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t *const rlc_pP, - const rlc_sn_t snP, - const sdu_size_t so_startP, - sdu_size_t so_stopP) -{ - int i, hole_index; - - assert(so_startP <= so_stopP); - assert(so_startP < 0x7FFF); - assert(so_stopP <= 0x7FFF); - - - // if global NACK - if ((so_startP == 0) && ((so_stopP == 0x7FFF) || (so_stopP == rlc_pP->tx_data_pdu_buffer[snP].payload_size - 1))) { - rlc_pP->tx_data_pdu_buffer[snP].num_holes = 0; - rlc_pP->tx_data_pdu_buffer[snP].nack_so_start = so_startP; - rlc_pP->tx_data_pdu_buffer[snP].nack_so_stop = so_stopP; -#if TRACE_RLC_AM_HOLE - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[HOLE] SN %04d GLOBAL NACK 0->%05d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - snP, - so_stopP); -#endif - assert(rlc_pP->tx_data_pdu_buffer[snP].nack_so_start < rlc_pP->tx_data_pdu_buffer[snP].payload_size); - return; - } - - if (so_stopP == 0x7FFF) { - so_stopP = rlc_pP->tx_data_pdu_buffer[snP].payload_size - 1; - } - - // first hole - if (rlc_pP->tx_data_pdu_buffer[snP].num_holes == 0) { - rlc_pP->tx_data_pdu_buffer[snP].hole_so_start[0] = so_startP; - rlc_pP->tx_data_pdu_buffer[snP].hole_so_stop [0] = so_stopP; - - rlc_pP->tx_data_pdu_buffer[snP].num_holes = 1; - - rlc_pP->tx_data_pdu_buffer[snP].nack_so_start = so_startP; - rlc_pP->tx_data_pdu_buffer[snP].nack_so_stop = so_stopP; -#if TRACE_RLC_AM_HOLE - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[HOLE] FIRST HOLE SN %04d GLOBAL NACK %05d->%05d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - snP, - so_startP, - so_stopP); -#endif - assert(rlc_pP->tx_data_pdu_buffer[snP].nack_so_start < rlc_pP->tx_data_pdu_buffer[snP].payload_size); - return; - } - - hole_index = 0; - - while (hole_index < rlc_pP->tx_data_pdu_buffer[snP].num_holes) { - if (so_stopP < rlc_pP->tx_data_pdu_buffer[snP].hole_so_start[hole_index]) { - assert(rlc_pP->tx_data_pdu_buffer[snP].num_holes < RLC_AM_MAX_HOLES_REPORT_PER_PDU); - - if (hole_index > 0) { - assert(so_startP > rlc_pP->tx_data_pdu_buffer[snP].hole_so_stop[hole_index-1]); - } - - for (i=rlc_pP->tx_data_pdu_buffer[snP].num_holes; i >= hole_index; i--) { - rlc_pP->tx_data_pdu_buffer[snP].hole_so_start[i] = rlc_pP->tx_data_pdu_buffer[snP].hole_so_start[i-1]; - rlc_pP->tx_data_pdu_buffer[snP].hole_so_stop[i] = rlc_pP->tx_data_pdu_buffer[snP].hole_so_stop[i-1]; - } - - rlc_pP->tx_data_pdu_buffer[snP].hole_so_start[hole_index] = so_startP; - rlc_pP->tx_data_pdu_buffer[snP].hole_so_stop[hole_index] = so_stopP; - - // update nack "window" vars nack_so_start, nack_so_stop - if (hole_index == 0) { - rlc_pP->tx_data_pdu_buffer[snP].nack_so_start = so_startP; - } - - rlc_pP->tx_data_pdu_buffer[snP].num_holes += 1; -#if TRACE_RLC_AM_HOLE - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[HOLE] INSERT %d th HOLE SN %04d GLOBAL NACK %05d->%05d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - rlc_pP->tx_data_pdu_buffer[snP].num_holes, - snP, - so_startP, - so_stopP); -#endif - assert(rlc_pP->tx_data_pdu_buffer[snP].nack_so_start < rlc_pP->tx_data_pdu_buffer[snP].payload_size); - assert(rlc_pP->tx_data_pdu_buffer[snP].num_holes < RLC_AM_MAX_HOLES_REPORT_PER_PDU); - return; - } - - hole_index = hole_index + 1; - } - - // if here insert to the "tail" - if (so_startP > rlc_pP->tx_data_pdu_buffer[snP].hole_so_stop[hole_index - 1]) { - assert(rlc_pP->tx_data_pdu_buffer[snP].num_holes < RLC_AM_MAX_HOLES_REPORT_PER_PDU); - rlc_pP->tx_data_pdu_buffer[snP].hole_so_start[hole_index] = so_startP; - rlc_pP->tx_data_pdu_buffer[snP].hole_so_stop[hole_index] = so_stopP; - rlc_pP->tx_data_pdu_buffer[snP].num_holes += 1; - // update nack "window" vars nack_so_start, nack_so_stop - rlc_pP->tx_data_pdu_buffer[snP].nack_so_stop = so_stopP; -#if TRACE_RLC_AM_HOLE - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[HOLE] INSERT THE %d th LAST HOLE SN %04d GLOBAL NACK %05d->%05d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - rlc_pP->tx_data_pdu_buffer[snP].num_holes, - snP, - so_startP, - so_stopP); -#endif - } else { - assert(1==2); - } - - assert(rlc_pP->tx_data_pdu_buffer[snP].num_holes < RLC_AM_MAX_HOLES_REPORT_PER_PDU); - assert(rlc_pP->tx_data_pdu_buffer[snP].nack_so_start < rlc_pP->tx_data_pdu_buffer[snP].payload_size); -} -#endif +/* This file is empty. Might be deleted ? */ diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.h index 7c22697ac4..0b237b07f4 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.h +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.h @@ -32,35 +32,19 @@ * @ingroup _rlc_am_internal_segment_impl_ * @{ */ -#if 0 #ifndef __RLC_AM_SEGMENT_HOLES_H__ # define __RLC_AM_SEGMENT_HOLES_H__ //----------------------------------------------------------------------------- -# ifdef RLC_AM_SEGMENT_HOLES_C -# define private_rlc_am_segments_holes(x) x -# define protected_rlc_am_segments_holes(x) x -# define public_rlc_am_segments_holes(x) x -# else -# ifdef RLC_AM_MODULE -# define private_rlc_am_segments_holes(x) -# define protected_rlc_am_segments_holes(x) extern x -# define public_rlc_am_segments_holes(x) extern x -# else -# define private_rlc_am_segments_holes(x) -# define protected_rlc_am_segments_holes(x) -# define public_rlc_am_segments_holes(x) extern x -# endif -# endif /*! \fn void rlc_am_clear_holes (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t * const rlcP, rlc_sn_t snP) * \brief Remove all marked holes for PDU with sequence number "snP". * \param[in] ctxt_pP Running context. * \param[in] rlcP RLC AM protocol instance pointer. * \param[in] snP Sequence number. */ -protected_rlc_am_segments_holes(void rlc_am_clear_holes ( +void rlc_am_clear_holes ( const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t *const rlcP, - const rlc_sn_t snP);) + const rlc_sn_t snP); /*! \fn void rlc_am_remove_hole (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t * const rlcP, rlc_sn_t snP, sdu_size_t so_startP, sdu_size_t so_stopP) * \brief Remove for PDU with sequence number "snP" a NACK for byte segment offset [so_startP, so_stopP]. @@ -70,12 +54,12 @@ protected_rlc_am_segments_holes(void rlc_am_clear_holes ( * \param[in] so_startP Start of segment offset. * \param[in] so_stopP End of segment offset. */ -protected_rlc_am_segments_holes(void rlc_am_remove_hole ( +void rlc_am_remove_hole ( const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t *const rlcP, const rlc_sn_t snP, const sdu_size_t so_startP, - const sdu_size_t so_stopP);) + const sdu_size_t so_stopP); /*! \fn void rlc_am_get_next_hole (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t * const rlcP, rlc_sn_t snP, sdu_size_t* so_startP, sdu_size_t* so_stopP) * \brief Get for PDU with sequence number "snP" the first hole start and stop parameters. @@ -85,12 +69,12 @@ protected_rlc_am_segments_holes(void rlc_am_remove_hole ( * \param[in,out] so_startP Start of segment offset. * \param[in,out] so_stopP End of segment offset. */ -protected_rlc_am_segments_holes(void rlc_am_get_next_hole ( +void rlc_am_get_next_hole ( const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t *const rlcP, const rlc_sn_t snP, sdu_size_t* const so_startP, - sdu_size_t* const so_stopP);) + sdu_size_t* const so_stopP); /*! \fn void rlc_am_add_hole (const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t * const rlcP, rlc_sn_t snP, sdu_size_t so_startP, sdu_size_t so_stopP) * \brief Mark for PDU with sequence number "snP" a NACK for byte segment offset [so_startP, so_stopP]. @@ -100,12 +84,11 @@ protected_rlc_am_segments_holes(void rlc_am_get_next_hole ( * \param[in,out] so_startP Start of segment offset. * \param[in,out] so_stopP End of segment offset. */ -protected_rlc_am_segments_holes(void rlc_am_add_hole ( +void rlc_am_add_hole ( const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t *const rlcP, const rlc_sn_t snP, const sdu_size_t so_startP, - sdu_size_t so_stopP);) + sdu_size_t so_stopP); /** @} */ #endif -#endif diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c index 3ace3cc51f..917f1a1791 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c @@ -32,7 +32,7 @@ #include "assertions.h" #include "list.h" #include "rlc_am.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" # if ENABLE_ITTI //----------------------------------------------------------------------------- @@ -153,7 +153,10 @@ rlc_am_write16_bit_field( signed int bits_to_writeP, const uint16_t valueP) { - assert(bits_to_writeP <= 16); + //assert(bits_to_writeP <= 16); + if(bits_to_writeP > 16) { + LOG_E(RLC, "bits_to_writeP error. %d\n", bits_to_writeP); + } if (bits_to_writeP > 8) { rlc_am_write8_bit_field(data_ppP,bit_pos_pP, bits_to_writeP - 8, (uint8_t)(valueP >> 8)); @@ -211,6 +214,9 @@ rlc_am_get_control_pdu_infos( if (!pdu_info_pP->nack_list[pdu_info_pP->num_nack - 1].e1) { nack_to_read = 0; *total_size_pP = *total_size_pP - (sdu_size_t)((uint64_t)byte_pos_p + (uint64_t)((bit_pos + 7)/8) - (uint64_t)header_pP); + if (*total_size_pP != 0) { + LOG_E(RLC, "[RLC_AM_GET_CONTROL_PDU_INFOS][FIRST]header_pP->b1=%d,header_pP->b2=%d\n",header_pP->b1,header_pP->b2); + } return 0; } @@ -224,7 +230,9 @@ rlc_am_get_control_pdu_infos( } else { *total_size_pP = *total_size_pP - 2; } - + if (*total_size_pP != 0) { + LOG_E(RLC, "[RLC_AM_GET_CONTROL_PDU_INFOS][SECOND]header_pP->b1=%d,header_pP->b2=%d\n",header_pP->b1,header_pP->b2); + } return 0; } else { return -1; @@ -308,8 +316,13 @@ rlc_am_receive_process_control_pdu( // POLL_SN: // - if t-PollRetransmit is running: // - stop and reset t-PollRetransmit. - assert(ack_sn < RLC_AM_SN_MODULO); - assert(rlc_pP->control_pdu_info.num_nack < RLC_AM_MAX_NACK_IN_STATUS_PDU); + //assert(ack_sn < RLC_AM_SN_MODULO); + //assert(rlc_pP->control_pdu_info.num_nack < RLC_AM_MAX_NACK_IN_STATUS_PDU); + if(ack_sn >= RLC_AM_SN_MODULO || rlc_pP->control_pdu_info.num_nack >= RLC_AM_MAX_NACK_IN_STATUS_PDU) { + LOG_E(RLC, PROTOCOL_RLC_AM_CTXT_FMT" illegal ack_sn %d, num_nack %d\n", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), ack_sn, rlc_pP->control_pdu_info.num_nack); + return; + } /* Note : ackSn can be equal to current vtA only in case the status pdu contains a list of nack_sn with same value = vtA with SOStart/SOEnd */ /* and meaning the report is not complete due to not enough ressources to fill all SOStart/SOEnd of this NACK_SN */ @@ -387,13 +400,15 @@ rlc_am_receive_process_control_pdu( } else { - LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT" WARNING CONTROL PDU ACK SN %d OUT OF WINDOW vtA=%d vtS=%d\n", + LOG_E(RLC, PROTOCOL_RLC_AM_CTXT_FMT" WARNING CONTROL PDU ACK SN %d OUT OF WINDOW vtA=%d vtS=%d\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP),ack_sn,rlc_pP->vt_a,rlc_pP->vt_s); + *tb_size_in_bytes_pP = 0; status = FALSE; } } else { - LOG_W(RLC, PROTOCOL_RLC_AM_CTXT_FMT" ERROR IN DECODING CONTROL PDU\n", + LOG_E(RLC, PROTOCOL_RLC_AM_CTXT_FMT" ERROR IN DECODING CONTROL PDU\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); + *tb_size_in_bytes_pP = 0; status = FALSE; } @@ -610,10 +625,13 @@ rlc_am_send_status_pdu( /* Now process all Segments of sn_cursor if PDU not fully received */ if ((!status_report_completed) && (all_segments_received == 0) && (sn_cursor != rlc_pP->vr_ms)) { - AssertFatal (sn_nack == sn_cursor, "RLC AM Tx Status PDU Data sn_nack=%d and sn_cursor=%d should be equal LcId=%d\n",sn_nack,sn_cursor, rlc_pP->channel_id); + //AssertFatal (sn_nack == sn_cursor, "RLC AM Tx Status PDU Data sn_nack=%d and sn_cursor=%d should be equal LcId=%d\n",sn_nack,sn_cursor, rlc_pP->channel_id); + if(sn_nack != sn_cursor){ + LOG_E(RLC, "RLC AM Tx Status PDU Data sn_nack=%d and sn_cursor=%d should be equal LcId=%d\n",sn_nack,sn_cursor, rlc_pP->channel_id); + } /* First ensure there is enough TBS for at least 1 SOStart/SOEnd, else break */ - if ((nb_bits_transmitted + RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1) + (RLC_AM_STATUS_PDU_SO_LENGTH << 1)) <= nb_bits_to_transmit) { + else if ((nb_bits_transmitted + RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1) + (RLC_AM_STATUS_PDU_SO_LENGTH << 1)) <= nb_bits_to_transmit) { /* Init loop flags */ /* Check lsf */ segment_loop_end = (pdu_info_cursor_p->lsf == 1); @@ -756,8 +774,14 @@ rlc_am_send_status_pdu( } // End main while NACK_SN /* Clear E1 of last nack_sn entry */ - AssertFatal ((control_pdu_info.num_nack) || (all_segments_received == 0), "RLC AM Tx Status PDU Data Error no NACK_SN vrR=%d vrMS=%d lastSN_NACK=%d Completed=%d NbBytesAvailable=%d LcId=%d\n", - rlc_pP->vr_r,rlc_pP->vr_ms,sn_nack,status_report_completed,(nb_bits_to_transmit >> 3),rlc_pP->channel_id); +// AssertFatal ((control_pdu_info.num_nack) || (all_segments_received == 0), "RLC AM Tx Status PDU Data Error no NACK_SN vrR=%d vrMS=%d lastSN_NACK=%d Completed=%d NbBytesAvailable=%d LcId=%d\n", +// rlc_pP->vr_r,rlc_pP->vr_ms,sn_nack,status_report_completed,(nb_bits_to_transmit >> 3),rlc_pP->channel_id); + if (!((control_pdu_info.num_nack) || (all_segments_received == 0))){ + LOG_E(RLC, "RLC AM Tx Status PDU Data Error no NACK_SN vrR=%d vrMS=%d lastSN_NACK=%d Completed=%d NbBytesAvailable=%d LcId=%d\n", + rlc_pP->vr_r,rlc_pP->vr_ms,sn_nack,status_report_completed,(nb_bits_to_transmit >> 3),rlc_pP->channel_id); + return; + } + if (control_pdu_info.num_nack) { control_pdu_info.nack_list[control_pdu_info.num_nack - 1].e1 = 0; } @@ -795,8 +819,13 @@ rlc_am_send_status_pdu( /* encode the control pdu */ pdu_size = (nb_bits_transmitted + 7) >> 3; - AssertFatal (pdu_size <= rlc_pP->nb_bytes_requested_by_mac, "RLC AM Tx Status PDU Data size=%d bigger than remaining TBS=%d nb_bits_transmitted=%d LcId=%d\n", +// AssertFatal (pdu_size <= rlc_pP->nb_bytes_requested_by_mac, "RLC AM Tx Status PDU Data size=%d bigger than remaining TBS=%d nb_bits_transmitted=%d LcId=%d\n", +// pdu_size,rlc_pP->nb_bytes_requested_by_mac,nb_bits_transmitted, rlc_pP->channel_id); + if(pdu_size > rlc_pP->nb_bytes_requested_by_mac){ + LOG_E(RLC, "RLC AM Tx Status PDU Data size=%d bigger than remaining TBS=%d nb_bits_transmitted=%d LcId=%d\n", pdu_size,rlc_pP->nb_bytes_requested_by_mac,nb_bits_transmitted, rlc_pP->channel_id); + return; + } #if TRACE_RLC_AM_STATUS_CREATION @@ -806,6 +835,7 @@ rlc_am_send_status_pdu( pdu_size); #endif tb_p = get_free_mem_block(sizeof(struct mac_tb_req) + pdu_size, __func__); + if(tb_p == NULL) return; memset(tb_p->data, 0, sizeof(struct mac_tb_req) + pdu_size); //estimation only ((struct mac_tb_req*)(tb_p->data))->tb_size = pdu_size; ((struct mac_tb_req*)(tb_p->data))->data_ptr = (uint8_t*)&(tb_p->data[sizeof(struct mac_tb_req)]); @@ -824,8 +854,14 @@ rlc_am_send_status_pdu( nb_bits_to_transmit >> 3); #endif - AssertFatal (pdu_size == ((nb_bits_transmitted + 7) >> 3), "RLC AM Tx Status PDU Data encoding size=%d different than expected=%d LcId=%d\n", +// AssertFatal (pdu_size == ((nb_bits_transmitted + 7) >> 3), "RLC AM Tx Status PDU Data encoding size=%d different than expected=%d LcId=%d\n", +// pdu_size,((nb_bits_transmitted + 7) >> 3), rlc_pP->channel_id); + if(pdu_size != ((nb_bits_transmitted + 7) >> 3)){ + LOG_E(RLC, "RLC AM Tx Status PDU Data encoding size=%d different than expected=%d LcId=%d\n", pdu_size,((nb_bits_transmitted + 7) >> 3), rlc_pP->channel_id); + pdu_size = 0; + return; + } // remaining bytes to transmit for RLC (retrans pdus and new data pdus) rlc_pP->nb_bytes_requested_by_mac = rlc_pP->nb_bytes_requested_by_mac - pdu_size; @@ -837,344 +873,3 @@ rlc_am_send_status_pdu( } -#if 0 -//----------------------------------------------------------------------------- -void -rlc_am_send_status_pdu_backup( - const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t *const rlc_pP -) -{ - // When STATUS reporting has been triggered, the receiving side of an AM RLC entity shall: - // - if t-StatusProhibit is not running: - // - at the first transmission opportunity indicated by lower layer, construct a STATUS PDU and deliver it to lower layer; - // - else: - // - at the first transmission opportunity indicated by lower layer after t-StatusProhibit expires, construct a single - // STATUS PDU even if status reporting was triggered several times while t-StatusProhibit was running and - // deliver it to lower layer; - // - // When a STATUS PDU has been delivered to lower layer, the receiving side of an AM RLC entity shall: - // - start t-StatusProhibit. - // - // When constructing a STATUS PDU, the AM RLC entity shall: - // - for the AMD PDUs with SN such that VR(R) <= SN < VR(MR) that has not been completely received yet, in - // increasing SN of PDUs and increasing byte segment order within PDUs, starting with SN = VR(R) up to - // the point where the resulting STATUS PDU still fits to the total size of RLC PDU(s) indicated by lower layer: - // - for an AMD PDU for which no byte segments have been received yet:: - // - include in the STATUS PDU a NACK_SN which is set to the SN of the AMD PDU; - // - for a continuous sequence of byte segments of a partly received AMD PDU that have not been received yet: - // - include in the STATUS PDU a set of NACK_SN, SOstart and SOend - // - set the ACK_SN to the SN of the next not received RLC Data PDU which is not indicated as missing in the - // resulting STATUS PDU. - - signed int nb_bits_to_transmit = rlc_pP->nb_bytes_requested_by_mac << 3; - rlc_am_control_pdu_info_t control_pdu_info; - rlc_am_pdu_info_t *pdu_info_cursor_p = NULL; - rlc_sn_t previous_sn_cursor = (rlc_pP->vr_r - 1) & RLC_AM_SN_MASK; - rlc_sn_t sn_cursor = 0; - mem_block_t *cursor_p = rlc_pP->receiver_buffer.head; - int all_segments_received = 0; - int waited_so = 0; - mem_block_t *tb_p = NULL; - sdu_size_t pdu_size = 0; - - memset(&control_pdu_info, 0, sizeof(rlc_am_control_pdu_info_t)); - // header size - nb_bits_to_transmit = nb_bits_to_transmit - 15; -#if TRACE_RLC_AM_STATUS_CREATION - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] nb_bits_to_transmit %d (15 already allocated for header)\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - nb_bits_to_transmit); - rlc_am_rx_list_display(rlc_pP, " DISPLAY BEFORE CONSTRUCTION OF STATUS REPORT"); -#endif - - - if (cursor_p != NULL) { - pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t*)(cursor_p->data))->pdu_info; - sn_cursor = pdu_info_cursor_p->sn; - - while (!(RLC_AM_SN_IN_WINDOW(sn_cursor, rlc_pP->vr_r))) { - cursor_p = cursor_p->next; - previous_sn_cursor = sn_cursor; - - pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t*)(cursor_p->data))->pdu_info; - sn_cursor = pdu_info_cursor_p->sn; -#if TRACE_RLC_AM_STATUS_CREATION - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d FIND VR(R) <= SN sn_cursor %04d -> %04d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - previous_sn_cursor, - sn_cursor); -#endif - } - - // 12 bits = size of NACK_SN field + E1, E2 bits - // 42 bits = size of NACK_SN field + SO_START, SO_END fields, E1, E2 bits - while ((cursor_p != NULL) && (nb_bits_to_transmit >= 12)) { - pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t*)(cursor_p->data))->pdu_info; - all_segments_received = ((rlc_am_rx_pdu_management_t*)(cursor_p->data))->all_segments_received; - sn_cursor = pdu_info_cursor_p->sn; -#if TRACE_RLC_AM_STATUS_CREATION - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d LOOPING sn_cursor %04d previous sn_cursor %04d \n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - sn_cursor, - previous_sn_cursor); -#endif - - // ------------------------------------------------------------------------------- - // case resegmentation : several PDUs related to the same SN queued in list - // ------------------------------------------------------------------------------- - if (sn_cursor == previous_sn_cursor) { - do { - cursor_p = cursor_p->next; - - if (cursor_p != NULL) { - pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t*)(cursor_p->data))->pdu_info; - all_segments_received = ((rlc_am_rx_pdu_management_t*)(cursor_p->data))->all_segments_received; - sn_cursor = pdu_info_cursor_p->sn; -#if TRACE_RLC_AM_STATUS_CREATION - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d NOW sn_cursor %04d \n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - sn_cursor); -#endif - } else { - if (all_segments_received) { - control_pdu_info.ack_sn = (sn_cursor + 1) & RLC_AM_SN_MASK; -#if TRACE_RLC_AM_STATUS_CREATION - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d PREPARE SENDING ACK SN %04d \n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - control_pdu_info.ack_sn); -#endif - } else { - control_pdu_info.ack_sn = (previous_sn_cursor + 1) & RLC_AM_SN_MASK; -#if TRACE_RLC_AM_STATUS_CREATION - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d PREPARE SENDING ACK SN %04d (CASE PREVIOUS SN)\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - control_pdu_info.ack_sn); -#endif - } - - goto end_push_nack; - } - } while ((cursor_p != NULL) && (sn_cursor == previous_sn_cursor)); - } - - // ------------------------------------------------------------------------------- - // simple case, PDU(s) is/are missing - // ------------------------------------------------------------------------------- - while (((previous_sn_cursor + 1) & RLC_AM_SN_MASK) != sn_cursor) { - if (nb_bits_to_transmit > 12) { - previous_sn_cursor = (previous_sn_cursor + 1) & RLC_AM_SN_MASK; - control_pdu_info.nack_list[control_pdu_info.num_nack].nack_sn = previous_sn_cursor; - control_pdu_info.nack_list[control_pdu_info.num_nack].so_start = 0; - control_pdu_info.nack_list[control_pdu_info.num_nack].so_end = 0x7ff; - control_pdu_info.nack_list[control_pdu_info.num_nack].e1 = 1; - control_pdu_info.nack_list[control_pdu_info.num_nack].e2 = 0; - control_pdu_info.num_nack += 1; - nb_bits_to_transmit = nb_bits_to_transmit - 12; -#if TRACE_RLC_AM_STATUS_CREATION - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d PREPARE SENDING NACK %04d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - previous_sn_cursor); -#endif - } else { - control_pdu_info.ack_sn = (previous_sn_cursor + 1) & RLC_AM_SN_MASK; -#if TRACE_RLC_AM_STATUS_CREATION - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d NO MORE BITS FOR SENDING NACK %04d -> ABORT AND SET FINAL ACK %04d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - previous_sn_cursor, - control_pdu_info.ack_sn); -#endif - goto end_push_nack; - } - } - - // ------------------------------------------------------------------------------- - // not so simple case, a resegmented PDU(s) is missing - // ------------------------------------------------------------------------------- - if (all_segments_received == 0) { - waited_so = 0; -#if TRACE_RLC_AM_STATUS_CREATION - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] if (all_segments_received == 0) \n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); -#endif - - do { - if (pdu_info_cursor_p->so > waited_so) { - if (nb_bits_to_transmit >= 42) { - control_pdu_info.nack_list[control_pdu_info.num_nack].nack_sn = sn_cursor; - control_pdu_info.nack_list[control_pdu_info.num_nack].so_start = waited_so; - control_pdu_info.nack_list[control_pdu_info.num_nack].so_end = pdu_info_cursor_p->so - 1; - control_pdu_info.nack_list[control_pdu_info.num_nack].e1 = 1; - control_pdu_info.nack_list[control_pdu_info.num_nack].e2 = 1; - control_pdu_info.num_nack += 1; - nb_bits_to_transmit = nb_bits_to_transmit - 42; -#if TRACE_RLC_AM_STATUS_CREATION - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d PREPARE SENDING NACK %04d SO START %05d SO END %05d (CASE SO %d > WAITED SO %d)\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - sn_cursor, - waited_so, - pdu_info_cursor_p->so - 1, - pdu_info_cursor_p->so, - waited_so); -#endif - - if (pdu_info_cursor_p->lsf == 1) { // last segment flag - //waited_so = 0x7FF; - waited_so = 0x7FFF; -#if TRACE_RLC_AM_STATUS_CREATION - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d SN %04d SET WAITED SO 0x7FFF)\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, sn_cursor); -#endif - //break; - } else { - waited_so = pdu_info_cursor_p->so + pdu_info_cursor_p->payload_size; -#if TRACE_RLC_AM_STATUS_CREATION - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d SN %04d SET WAITED SO %d @1\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - sn_cursor, - waited_so); -#endif - } - } else { - control_pdu_info.ack_sn = sn_cursor; - goto end_push_nack; - } - } else { //else { // pdu_info_cursor_p->so <= waited_so - waited_so = pdu_info_cursor_p->so + pdu_info_cursor_p->payload_size; - - if (pdu_info_cursor_p->lsf == 1) { // last segment flag - //waited_so = 0x7FF; - waited_so = 0x7FFF; - } - -#if TRACE_RLC_AM_STATUS_CREATION - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d SN %04d SET WAITED SO %d @2\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - sn_cursor, waited_so); -#endif - } - - cursor_p = cursor_p->next; - - if (cursor_p != NULL) { - pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t*)(cursor_p->data))->pdu_info; - all_segments_received = ((rlc_am_rx_pdu_management_t*)(cursor_p->data))->all_segments_received; - previous_sn_cursor = sn_cursor; - sn_cursor = pdu_info_cursor_p->sn; - } else { - // LG control_pdu_info.ack_sn = (previous_sn_cursor + 1) & RLC_AM_SN_MASK; - control_pdu_info.ack_sn = previous_sn_cursor; - goto end_push_nack; - } - } while ((cursor_p != NULL) && (sn_cursor == previous_sn_cursor)); - - // may be last segment of PDU not received - //if ((sn_cursor != previous_sn_cursor) && (waited_so != 0x7FF)) { - if ((sn_cursor != previous_sn_cursor) && (waited_so != 0x7FFF)) { - if (nb_bits_to_transmit >= 42) { - control_pdu_info.nack_list[control_pdu_info.num_nack].nack_sn = previous_sn_cursor; - control_pdu_info.nack_list[control_pdu_info.num_nack].so_start = waited_so; - //control_pdu_info.nack_list[control_pdu_info.num_nack].so_end = 0x7FF; - control_pdu_info.nack_list[control_pdu_info.num_nack].so_end = 0x7FFF; - control_pdu_info.nack_list[control_pdu_info.num_nack].e1 = 1; - control_pdu_info.nack_list[control_pdu_info.num_nack].e2 = 1; - control_pdu_info.num_nack += 1; - nb_bits_to_transmit = nb_bits_to_transmit - 42; -#if TRACE_RLC_AM_STATUS_CREATION - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d PREPARE SENDING NACK %04d SO START %05d SO END %05d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - previous_sn_cursor, - waited_so, - 0x7FFF); -#endif - } else { - control_pdu_info.ack_sn = previous_sn_cursor; - goto end_push_nack; - } - } - - waited_so = 0; - } else { - waited_so = 0; - cursor_p = cursor_p->next; - previous_sn_cursor = sn_cursor; - } - } - - control_pdu_info.ack_sn = (previous_sn_cursor + 1) & RLC_AM_SN_MASK; - } else { - control_pdu_info.ack_sn = rlc_pP->vr_r; -#if TRACE_RLC_AM_STATUS_CREATION - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d PREPARE SENDING ACK %04d = VR(R)\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - control_pdu_info.ack_sn); -#endif - } - -end_push_nack: - - if (control_pdu_info.num_nack > 0) { - control_pdu_info.nack_list[control_pdu_info.num_nack - 1].e1 = 0; - } - - //msg ("[FRAME %5u][%s][RLC_AM][MOD %u/%u][RB %u] nb_bits_to_transmit %d\n", - // rlc_pP->module_id, rlc_pP->rb_id, ctxt_pP->frame,nb_bits_to_transmit); - -#if TRACE_RLC_AM_STATUS_CREATION - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d PREPARE SENDING ACK %04d NUM NACK %d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - control_pdu_info.ack_sn, - control_pdu_info.num_nack); -#endif - // encode the control pdu - pdu_size = rlc_pP->nb_bytes_requested_by_mac - ((nb_bits_to_transmit - 7 )>> 3); - -#if TRACE_RLC_AM_STATUS_CREATION - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d forecast pdu_size %d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - pdu_size); -#endif - tb_p = get_free_mem_block(sizeof(struct mac_tb_req) + pdu_size, __func__); - memset(tb_p->data, 0, sizeof(struct mac_tb_req) + pdu_size); - //estimation only ((struct mac_tb_req*)(tb_p->data))->tb_size = pdu_size; - ((struct mac_tb_req*)(tb_p->data))->data_ptr = (uint8_t*)&(tb_p->data[sizeof(struct mac_tb_req)]); - - // warning reuse of pdu_size - pdu_size = rlc_am_write_status_pdu(ctxt_pP, rlc_pP,(rlc_am_pdu_sn_10_t*)(((struct mac_tb_req*)(tb_p->data))->data_ptr), &control_pdu_info); - ((struct mac_tb_req*)(tb_p->data))->tb_size = pdu_size; - //assert((((struct mac_tb_req*)(tb_p->data))->tb_size) < 3000); - -#if TRACE_RLC_AM_STATUS_CREATION - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] SEND STATUS PDU SIZE %d, rlc_pP->nb_bytes_requested_by_mac %d, nb_bits_to_transmit>>3 %d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - pdu_size, - rlc_pP->nb_bytes_requested_by_mac, - nb_bits_to_transmit >> 3); -#endif - assert(pdu_size == (rlc_pP->nb_bytes_requested_by_mac - (nb_bits_to_transmit >> 3))); - - // remaining bytes to transmit for RLC (retrans pdus and new data pdus) - rlc_pP->nb_bytes_requested_by_mac = rlc_pP->nb_bytes_requested_by_mac - pdu_size; - // put pdu in trans - list_add_head(tb_p, &rlc_pP->control_pdu_list); - rlc_pP->stat_tx_control_pdu += 1; - rlc_pP->stat_tx_control_bytes += pdu_size; - -} -#endif - diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.h index 41f214d7c6..a84b25c8e5 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.h +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.h @@ -37,21 +37,6 @@ # include "UTIL/MEM/mem_block.h" //----------------------------------------------------------------------------- -# ifdef RLC_AM_STATUS_REPORT_C -# define private_rlc_am_status_report(x) x -# define protected_rlc_am_status_report(x) x -# define public_rlc_am_status_report(x) x -# else -# ifdef RLC_AM_MODULE -# define private_rlc_am_status_report(x) -# define protected_rlc_am_status_report(x) extern x -# define public_rlc_am_status_report(x) extern x -# else -# define private_rlc_am_status_report(x) -# define protected_rlc_am_status_report(x) -# define public_rlc_am_status_report(x) extern x -# endif -# endif //----------------------------------------------------------------------------- #include "platform_types.h" #include "platform_constants.h" @@ -65,7 +50,7 @@ * \param[in] bits_to_readP Number of bits to read (max 16). * \return Value read on 16 bits, bits read are shifted to least significant bits of returned short value. */ -protected_rlc_am_status_report( uint16_t rlc_am_read_bit_field (uint8_t** dataP, unsigned int* bit_posP, const signed int bits_to_readP);) +uint16_t rlc_am_read_bit_field (uint8_t** dataP, unsigned int* bit_posP, const signed int bits_to_readP); /*! \fn void rlc_am_write8_bit_field(uint8_t** dataP, unsigned int* bit_posP, signed int bits_to_writeP, const uint8_t valueP) * \brief Write N bits (max 8) in a byte area seen as a bit-field with the help of a byte index and a modulo 8 bit index. @@ -74,7 +59,7 @@ protected_rlc_am_status_report( uint16_t rlc_am_read_bit_field * \param[in] bits_to_writeP Number of bits to write (max 8). * \param[in] valueP Value to write. */ -protected_rlc_am_status_report(void rlc_am_write8_bit_field(uint8_t** dataP, unsigned int* bit_posP, signed int bits_to_writeP, const uint8_t valueP);) +void rlc_am_write8_bit_field(uint8_t** dataP, unsigned int* bit_posP, signed int bits_to_writeP, const uint8_t valueP); /*! \fn void rlc_am_write16_bit_field(uint8_t** dataP, unsigned int* bit_posP, signed int bits_to_writeP, const uint16_t valueP) * \brief Write N bits (max 16) in a byte area seen as a bit-field with the help of a byte index and a modulo 8 bit index. @@ -83,11 +68,11 @@ protected_rlc_am_status_report(void rlc_am_write8_bit_field(uint8_t** dat * \param[in] bits_to_writeP Number of bits to write (max 16). * \param[in] valueP Value to write. */ -protected_rlc_am_status_report(void rlc_am_write16_bit_field( +void rlc_am_write16_bit_field( uint8_t** dataP, unsigned int* bit_posP, signed int bits_to_writeP, - const uint16_t valueP);) + const uint16_t valueP); /*! \fn signed int rlc_am_get_control_pdu_infos (rlc_am_pdu_sn_10_t* const headerP, sdu_size_t * const total_sizeP, rlc_am_control_pdu_info_t* const pdu_infoP) * \brief Retrieve control PDU informations from a serialized control PDU. @@ -95,16 +80,16 @@ protected_rlc_am_status_report(void rlc_am_write16_bit_field( * \param[in] total_size_pP Pointer on PDU size in bytes. * \param[in,out] pdu_infoP Struct containing interpreted PDU control informations. */ -protected_rlc_am_status_report( signed int rlc_am_get_control_pdu_infos ( +signed int rlc_am_get_control_pdu_infos ( rlc_am_pdu_sn_10_t* const headerP, sdu_size_t * const total_size_pP, - rlc_am_control_pdu_info_t* const pdu_infoP);) + rlc_am_control_pdu_info_t* const pdu_infoP); /*! \fn void rlc_am_display_control_pdu_infos(const rlc_am_control_pdu_info_t* const pdu_infoP) * \brief Dump on LOG output the informations contained in the pdu_infoP structure. * \param[in] pdu_infoP Struct containing interpreted PDU control informations. */ -protected_rlc_am_status_report( void rlc_am_display_control_pdu_infos(const rlc_am_control_pdu_info_t* const pdu_infoP);) +void rlc_am_display_control_pdu_infos(const rlc_am_control_pdu_info_t* const pdu_infoP); /*! \fn void rlc_am_receive_process_control_pdu(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP, mem_block_t* const tbP, uint8_t* first_byte, const uint16_t tb_size_in_bytes) * \brief Process the informations contained in the control PDU. @@ -114,12 +99,12 @@ protected_rlc_am_status_report( void rlc_am_display_control_pdu_infos(const rlc_ * \param[in] first_byte Pointer on first byte of control PDU. * \param[in] tb_size_in_bytes Pointer on size of serialized control PDU in bytes. */ -protected_rlc_am_status_report( void rlc_am_receive_process_control_pdu( +void rlc_am_receive_process_control_pdu( const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP, mem_block_t* const tbP, uint8_t** first_byte, - sdu_size_t * const tb_size_in_bytes);) + sdu_size_t * const tb_size_in_bytes); /*! \fn int rlc_am_write_status_pdu(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP, rlc_am_pdu_sn_10_t* const rlc_am_pdu_sn_10P, rlc_am_control_pdu_info_t* const pdu_infoP) * \brief Remove all marked holes for PDU with sequence number "snP". @@ -129,19 +114,19 @@ protected_rlc_am_status_report( void rlc_am_receive_process_control_pdu( * \param[in] pdu_infoP Struct containing PDU control informations elements. * \return The number of bytes that have been written. */ -protected_rlc_am_status_report(int rlc_am_write_status_pdu( +int rlc_am_write_status_pdu( const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t *const rlc_pP, rlc_am_pdu_sn_10_t* const rlc_am_pdu_sn_10P, - rlc_am_control_pdu_info_t* const pdu_infoP);) + rlc_am_control_pdu_info_t* const pdu_infoP); /*! \fn void rlc_am_send_status_pdu(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP) * \brief Send a status PDU based on the receiver buffer content. * \param[in] ctxt_pP Running context. * \param[in] rlc_pP RLC AM protocol instance pointer. */ -protected_rlc_am_status_report(void rlc_am_send_status_pdu( +void rlc_am_send_status_pdu( const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t *const rlc_pP);) + rlc_am_entity_t *const rlc_pP); /** @} */ #endif diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c index ff969c0b6e..d9eb6de7cc 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c @@ -534,7 +534,7 @@ void rlc_am_v9_3_0_test_send_sdu(rlc_am_entity_t *am_txP, int sdu_indexP) assert(g_send_id_write_index[am_txP->rb_id] < TEST_MAX_SEND_SDU); } else { printf("Out of memory error\n"); - exit(-1); +// exit(-1); } } //----------------------------------------------------------------------------- @@ -577,7 +577,7 @@ void rlc_am_v9_3_0_test_mac_rlc_loop (struct mac_data_ind *data_indP, struct ma data_indP->no_tb += 1; } else { printf("Out of memory error\n"); - exit(-1); +// exit(-1); } } else { printf("[RLC-LOOP] DROPPING 1 TB\n"); diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.h index b42800e15f..6be3867b10 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.h +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.h @@ -32,34 +32,19 @@ */ # ifndef __RLC_AM_TEST_H__ # define __RLC_AM_TEST_H__ -# ifdef RLC_AM_TEST_C -# define private_rlc_am_test(x) x -# define protected_rlc_am_test(x) x -# define public_rlc_am_test(x) x -# else -# ifdef RLC_AM_MODULE -# define private_rlc_am_test(x) -# define protected_rlc_am_test(x) extern x -# define public_rlc_am_test(x) extern x -# else -# define private_rlc_am_test(x) -# define protected_rlc_am_test(x) -# define public_rlc_am_test(x) extern x -# endif -# endif -public_rlc_am_test(rlc_am_entity_t g_am_tx;) -public_rlc_am_test(rlc_am_entity_t g_am_rx;) +rlc_am_entity_t g_am_tx; +rlc_am_entity_t g_am_rx; -protected_rlc_am_test(void rlc_am_v9_3_0_test_windows();) -protected_rlc_am_test(void rlc_am_v9_3_0_test_read_write_bit_field();) -protected_rlc_am_test(void rlc_am_v9_3_0_test_data_conf(module_id_t module_idP, rb_id_t rb_idP, mui_t muiP, rlc_tx_status_t statusP);) -protected_rlc_am_test(void rlc_am_v9_3_0_test_send_sdu(rlc_am_entity_t *am_txP, int sdu_indexP);) -protected_rlc_am_test(void rlc_am_v9_3_0_test_exchange_pdus(rlc_am_entity_t *am_txP,rlc_am_entity_t *am_RxP, - uint16_t bytes_txP,uint16_t bytes_rxP);) -protected_rlc_am_test(void rlc_am_v9_3_0_test_mac_rlc_loop (struct mac_data_ind *data_indP, struct mac_data_req *data_requestP, int* drop_countP, int *tx_packetsP, int* dropped_tx_packetsP);) -protected_rlc_am_test(void rlc_am_v9_3_0_test_data_ind (module_id_t module_idP, rb_id_t rb_idP, sdu_size_t sizeP, - mem_block_t *sduP);) -protected_rlc_am_test(void rlc_am_v9_3_0_test_tx_rx();) -public_rlc_am_test( void rlc_am_v9_3_0_test_print_trace (void);) -public_rlc_am_test( void rlc_am_v9_3_0_test()); +void rlc_am_v9_3_0_test_windows(); +void rlc_am_v9_3_0_test_read_write_bit_field(); +void rlc_am_v9_3_0_test_data_conf(module_id_t module_idP, rb_id_t rb_idP, mui_t muiP, rlc_tx_status_t statusP); +void rlc_am_v9_3_0_test_send_sdu(rlc_am_entity_t *am_txP, int sdu_indexP); +void rlc_am_v9_3_0_test_exchange_pdus(rlc_am_entity_t *am_txP,rlc_am_entity_t *am_RxP, + uint16_t bytes_txP,uint16_t bytes_rxP); +void rlc_am_v9_3_0_test_mac_rlc_loop (struct mac_data_ind *data_indP, struct mac_data_req *data_requestP, int* drop_countP, int *tx_packetsP, int* dropped_tx_packetsP); +void rlc_am_v9_3_0_test_data_ind (module_id_t module_idP, rb_id_t rb_idP, sdu_size_t sizeP, + mem_block_t *sduP); +void rlc_am_v9_3_0_test_tx_rx(); +void rlc_am_v9_3_0_test_print_trace (void); +void rlc_am_v9_3_0_test(); # endif diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c index 1e3b8b916d..e421a36619 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c @@ -28,7 +28,7 @@ //----------------------------------------------------------------------------- #include "rlc_am.h" #include "LAYER2/MAC/mac_extern.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "msc.h" //----------------------------------------------------------------------------- void @@ -87,9 +87,16 @@ rlc_am_check_timer_poll_retransmit( /* Look for the first retransmittable PDU starting from vtS - 1 */ while (sn != sn_end) { - tx_data_pdu_buffer_p = &rlc_pP->tx_data_pdu_buffer[sn % RLC_AM_WINDOW_SIZE]; - AssertFatal (tx_data_pdu_buffer_p->mem_block != NULL, "RLC AM Tpoll Retx expiry sn=%d ack=%d is empty vtA=%d vtS=%d LcId=%d\n", - sn, tx_data_pdu_buffer_p->flags.ack,rlc_pP->vt_a,rlc_pP->vt_s,rlc_pP->channel_id); + tx_data_pdu_buffer_p = &rlc_pP->tx_data_pdu_buffer[sn % RLC_AM_WINDOW_SIZE]; + //AssertFatal (tx_data_pdu_buffer_p->mem_block != NULL, "RLC AM Tpoll Retx expiry sn=%d ack=%d is empty vtA=%d vtS=%d LcId=%d\n", + // sn, tx_data_pdu_buffer_p->flags.ack,rlc_pP->vt_a,rlc_pP->vt_s,rlc_pP->channel_id); + if(tx_data_pdu_buffer_p->mem_block == NULL){ + LOG_E(RLC, "RLC AM Tpoll Retx expiry sn=%d ack=%d is empty vtA=%d vtS=%d LcId=%d\n", + sn, tx_data_pdu_buffer_p->flags.ack,rlc_pP->vt_a,rlc_pP->vt_s,rlc_pP->channel_id); + sn = RLC_AM_PREV_SN(sn); + continue; + } + if ((tx_data_pdu_buffer_p->flags.ack == 0) && (tx_data_pdu_buffer_p->flags.max_retransmit == 0)) { tx_data_pdu_buffer_p->flags.retransmit = 1; tx_data_pdu_buffer_p->retx_payload_size = tx_data_pdu_buffer_p->payload_size; diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.h index c5d49268c4..5f8fd5bedc 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.h +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.h @@ -35,21 +35,6 @@ #ifndef __RLC_AM_TIMER_POLL_RETRANSMIT_H__ # define __RLC_AM_TIMER_POLL_RETRANSMIT_H__ -# ifdef RLC_AM_TIMER_POLL_RETRANSMIT_C -# define private_rlc_am_timer_poll_retransmit(x) x -# define protected_rlc_am_timer_poll_retransmit(x) x -# define public_rlc_am_timer_poll_retransmit(x) x -# else -# ifdef RLC_AM_MODULE -# define private_rlc_am_timer_poll_retransmit(x) -# define protected_rlc_am_timer_poll_retransmit(x) extern x -# define public_rlc_am_timer_poll_retransmit(x) extern x -# else -# define private_rlc_am_timer_poll_retransmit(x) -# define protected_rlc_am_timer_poll_retransmit(x) -# define public_rlc_am_timer_poll_retransmit(x) extern x -# endif -# endif /*! \fn void rlc_am_check_timer_poll_retransmit(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP) * \brief Check if timer Poll-retransmit has timed-out, if so it is stopped and has the status "timed-out". @@ -57,9 +42,9 @@ * \param[in] rlc_pP RLC AM protocol instance pointer. */ -protected_rlc_am_timer_poll_retransmit(void rlc_am_check_timer_poll_retransmit( +void rlc_am_check_timer_poll_retransmit( const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t* const rlc_pP)); + rlc_am_entity_t* const rlc_pP); /*! \fn int rlc_am_is_timer_poll_retransmit_timed_out(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP) * \brief Boolean function, check if timer Poll-retransmit has timed-out. @@ -67,9 +52,9 @@ protected_rlc_am_timer_poll_retransmit(void rlc_am_check_timer_poll_retransmit( * \param[in] rlc_pP RLC AM protocol instance pointer. * \return 1 if timer Poll-retransmit has timed-out, else 0. */ -protected_rlc_am_timer_poll_retransmit(int rlc_am_is_timer_poll_retransmit_timed_out( +int rlc_am_is_timer_poll_retransmit_timed_out( const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t* const rlc_pP);) + rlc_am_entity_t* const rlc_pP); /*! \fn void rlc_am_stop_and_reset_timer_poll_retransmit(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP) * \brief Stop and reset the timer Poll-retransmit. @@ -77,9 +62,9 @@ protected_rlc_am_timer_poll_retransmit(int rlc_am_is_timer_poll_retransmit_time * \param[in] rlc_pP RLC AM protocol instance pointer. */ -protected_rlc_am_timer_poll_retransmit(void rlc_am_stop_and_reset_timer_poll_retransmit( +void rlc_am_stop_and_reset_timer_poll_retransmit( const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t* const rlc_pP);) + rlc_am_entity_t* const rlc_pP); /*! \fn void rlc_am_start_timer_poll_retransmit(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP) * \brief Re-arm (based on RLC AM config parameter) and start timer Poll-retransmit. @@ -87,9 +72,9 @@ protected_rlc_am_timer_poll_retransmit(void rlc_am_stop_and_reset_timer_poll_ret * \param[in] rlc_pP RLC AM protocol instance pointer. * \param[in] frame Frame index */ -protected_rlc_am_timer_poll_retransmit(void rlc_am_start_timer_poll_retransmit( +void rlc_am_start_timer_poll_retransmit( const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t* const rlc_pP);) + rlc_am_entity_t* const rlc_pP); /*! \fn void rlc_am_init_timer_poll_retransmit(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP, const uint32_t time_outP) * \brief Initialize the timer Poll-retransmit with RLC AM time-out config parameter. @@ -97,9 +82,9 @@ protected_rlc_am_timer_poll_retransmit(void rlc_am_start_timer_poll_retransmit( * \param[in] rlc_pP RLC AM protocol instance pointer. * \param[in] time_outP Time-out in frame units. */ -protected_rlc_am_timer_poll_retransmit(void rlc_am_init_timer_poll_retransmit( +void rlc_am_init_timer_poll_retransmit( const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP, - const uint32_t time_outP);) + const uint32_t time_outP); /** @} */ #endif diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c index fd0feceeb0..262b8a8391 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c @@ -27,7 +27,7 @@ //----------------------------------------------------------------------------- #include "rlc_am.h" # include "LAYER2/MAC/mac_extern.h" -#include "UTIL/LOG/log.h" +#include "common/utils//LOG/log.h" #include "msc.h" //----------------------------------------------------------------------------- void @@ -70,7 +70,12 @@ rlc_am_check_timer_reordering( PROTOCOL_RLC_AM_MSC_ARGS(ctxt_pP,rlc_pP)); #endif - AssertFatal (rlc_pP->vr_x != RLC_SN_UNDEFINED, "RLC AM TReordering Expiry vrX not defined LcId=%d\n", rlc_pP->channel_id); + //AssertFatal (rlc_pP->vr_x != RLC_SN_UNDEFINED, "RLC AM TReordering Expiry vrX not defined LcId=%d\n", rlc_pP->channel_id); + if(rlc_pP->vr_x == RLC_SN_UNDEFINED){ + LOG_E(RLC, "RLC AM TReordering Expiry vrX not defined LcId=%d\n", rlc_pP->channel_id); + return; + } + rlc_pP->t_reordering.running = 0; rlc_pP->t_reordering.timed_out = 1; @@ -81,8 +86,12 @@ rlc_am_check_timer_reordering( cursor = rlc_pP->receiver_buffer.head; rlc_usn_t vr_ms_new = rlc_pP->vr_x; - AssertFatal (cursor != NULL, "RLC AM TReordering Expiry Rx PDU list empty LcId=%d\n", rlc_pP->channel_id); - + //AssertFatal (cursor != NULL, "RLC AM TReordering Expiry Rx PDU list empty LcId=%d\n", rlc_pP->channel_id); + if(cursor == NULL){ + LOG_E(RLC, "RLC AM TReordering Expiry Rx PDU list empty LcId=%d\n", rlc_pP->channel_id); + return; + } + /* go to memblock up to vrX*/ pdu_info = &((rlc_am_rx_pdu_management_t*)(cursor->data))->pdu_info; while ((cursor != NULL) && (RLC_AM_DIFF_SN(pdu_info->sn,rlc_pP->vr_r) < RLC_AM_DIFF_SN(vr_ms_new,rlc_pP->vr_r))) { diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.h index a2876d9169..bca3e83763 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.h +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.h @@ -34,48 +34,33 @@ */ #ifndef __RLC_AM_TIMER_REORDERING_H__ # define __RLC_AM_TIMER_REORDERING_H__ -# ifdef RLC_AM_TIMER_POLL_REORDERING_C -# define private_rlc_am_timer_reordering(x) x -# define protected_rlc_am_timer_reordering(x) x -# define public_rlc_am_timer_reordering(x) x -# else -# ifdef RLC_AM_MODULE -# define private_rlc_am_timer_reordering(x) -# define protected_rlc_am_timer_reordering(x) extern x -# define public_rlc_am_timer_reordering(x) extern x -# else -# define private_rlc_am_timer_reordering(x) -# define protected_rlc_am_timer_reordering(x) -# define public_rlc_am_timer_reordering(x) extern x -# endif -# endif /*! \fn void rlc_am_check_timer_reordering(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP) * \brief Check if timer reordering has timed-out, if so it is stopped and has the status "timed-out". * \param[in] ctxt_pP Running context. * \param[in] rlc_pP RLC AM protocol instance pointer. */ -protected_rlc_am_timer_reordering(void rlc_am_check_timer_reordering( +void rlc_am_check_timer_reordering( const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t* const rlc_pP)); + rlc_am_entity_t* const rlc_pP); /*! \fn void rlc_am_stop_and_reset_timer_reordering(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP) * \brief Stop and reset the timer reordering. * \param[in] ctxt_pP Running context. * \param[in] rlc_pP RLC AM protocol instance pointer. */ -protected_rlc_am_timer_reordering(void rlc_am_stop_and_reset_timer_reordering( +void rlc_am_stop_and_reset_timer_reordering( const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t* const rlc_pP);) + rlc_am_entity_t* const rlc_pP); /*! \fn void rlc_am_start_timer_reordering(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP) * \brief Re-arm (based on RLC AM config parameter) and start timer reordering. * \param[in] ctxt_pP Running context. * \param[in] rlc_pP RLC AM protocol instance pointer. */ -protected_rlc_am_timer_reordering(void rlc_am_start_timer_reordering( +void rlc_am_start_timer_reordering( const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t* const rlc_pP);) + rlc_am_entity_t* const rlc_pP); /*! \fn void rlc_am_init_timer_reordering(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP, const uint32_t time_outP) * \brief Initialize the timer reordering with RLC AM time-out config parameter. @@ -83,9 +68,9 @@ protected_rlc_am_timer_reordering(void rlc_am_start_timer_reordering( * \param[in] rlc_pP RLC AM protocol instance pointer. * \param[in] time_outP Time-out in frameP units. */ -protected_rlc_am_timer_reordering(void rlc_am_init_timer_reordering( +void rlc_am_init_timer_reordering( const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP, - const uint32_t time_outP);) + const uint32_t time_outP); /** @} */ #endif diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.c index 84c0edbefd..5b0b0a70fa 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.c +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.c @@ -27,7 +27,7 @@ //----------------------------------------------------------------------------- #include "rlc_am.h" #include "LAYER2/MAC/mac_extern.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "msc.h" //----------------------------------------------------------------------------- void diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.h index 31ff985e41..0480741859 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.h +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.h @@ -34,42 +34,28 @@ */ #ifndef __RLC_AM_TIMER_STATUS_PROHIBIT_H__ # define __RLC_AM_TIMER_STATUS_PROHIBIT_H__ -# ifdef RLC_AM_TIMER_STATUS_PROHIBIT_C -# define private_rlc_am_timer_status_prohibit(x) x -# define protected_rlc_am_timer_status_prohibit(x) x -# define public_rlc_am_timer_status_prohibit(x) x -# else -# ifdef RLC_AM_MODULE -# define private_rlc_am_timer_status_prohibit(x) -# define protected_rlc_am_timer_status_prohibit(x) extern x -# define public_rlc_am_timer_status_prohibit(x) extern x -# else -# define private_rlc_am_timer_status_prohibit(x) -# define protected_rlc_am_timer_status_prohibit(x) -# define public_rlc_am_timer_status_prohibit(x) extern x -# endif -# endif + /*! \fn void rlc_am_check_timer_status_prohibit(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP) * \brief Check if timer status-prohibit has timed-out, if so it is stopped and has the status "timed-out". * \param[in] ctxt_pP Running context. * \param[in] rlc_pP RLC AM protocol instance pointer. */ -protected_rlc_am_timer_status_prohibit(void rlc_am_check_timer_status_prohibit(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP)); +void rlc_am_check_timer_status_prohibit(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP); /*! \fn void rlc_am_stop_and_reset_timer_status_prohibit(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP) * \brief Stop and reset the timer status-prohibit. * \param[in] ctxt_pP Running context. * \param[in] rlc_pP RLC AM protocol instance pointer. */ -protected_rlc_am_timer_status_prohibit(void rlc_am_stop_and_reset_timer_status_prohibit(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP);) +void rlc_am_stop_and_reset_timer_status_prohibit(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP); /*! \fn void rlc_am_start_timer_status_prohibit(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP) * \brief Re-arm (based on RLC AM config parameter) and start timer status-prohibit. * \param[in] ctxt_pP Running context. * \param[in] rlc_pP RLC AM protocol instance pointer. */ -protected_rlc_am_timer_status_prohibit(void rlc_am_start_timer_status_prohibit(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP);) +void rlc_am_start_timer_status_prohibit(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP); /*! \fn void rlc_am_init_timer_status_prohibit(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP, const uint32_t time_outP) * \brief Initialize the timer status-prohibit with RLC AM time-out config parameter. @@ -77,6 +63,6 @@ protected_rlc_am_timer_status_prohibit(void rlc_am_start_timer_status_prohibit(c * \param[in] rlc_pP RLC AM protocol instance pointer. * \param[in] time_outP Time-out in frameP units. */ -protected_rlc_am_timer_status_prohibit(void rlc_am_init_timer_status_prohibit(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP, const uint32_t time_outP);) +void rlc_am_init_timer_status_prohibit(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlc_pP, const uint32_t time_outP); /** @} */ #endif diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.c index 7a3005334e..24f0b12214 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.c +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.c @@ -27,7 +27,7 @@ #include "platform_types.h" //----------------------------------------------------------------------------- #include "rlc_am.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" //----------------------------------------------------------------------------- signed int rlc_am_in_tx_window( const protocol_ctxt_t* const ctxt_pP, diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.h index aff78a15c6..be49e94120 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.h +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.h @@ -35,21 +35,6 @@ # ifndef __RLC_AM_WINDOWS_H__ # define __RLC_AM_WINDOWS_H__ //----------------------------------------------------------------------------- -# ifdef RLC_AM_WINDOWS_C -# define private_rlc_am_windows(x) x -# define protected_rlc_am_windows(x) x -# define public_rlc_am_windows(x) x -# else -# ifdef RLC_AM_MODULE -# define private_rlc_am_windows(x) -# define protected_rlc_am_windows(x) extern x -# define public_rlc_am_windows(x) extern x -# else -# define private_rlc_am_windows(x) -# define protected_rlc_am_windows(x) -# define public_rlc_am_windows(x) extern x -# endif -# endif /*! \fn signed int rlc_am_in_tx_window(const protocol_ctxt_t* const ctxt_pP,const rlc_am_entity_t* const rlc_pP, const rlc_sn_t snP) * \brief Boolean function, check if sequence number is VT(A) <= snP < VT(MS). @@ -58,10 +43,10 @@ * \param[in] snP Sequence number. * \return 1 if snP in tx window, else 0. */ -protected_rlc_am_windows(signed int rlc_am_in_tx_window( +signed int rlc_am_in_tx_window( const protocol_ctxt_t* const ctxt_pP, const rlc_am_entity_t* const rlc_pP, - const rlc_sn_t snP);) + const rlc_sn_t snP); /*! \fn signed int rlc_am_in_rx_window(const protocol_ctxt_t* const ctxt_pP,const rlc_am_entity_t* const rlc_pP, const rlc_sn_t snP) * \brief Boolean function, check if sequence number is VR(R) <= snP < VR(MR). @@ -70,10 +55,10 @@ protected_rlc_am_windows(signed int rlc_am_in_tx_window( * \param[in] snP Sequence number. * \return 1 if snP in rx window, else 0. */ -protected_rlc_am_windows(signed int rlc_am_in_rx_window( +signed int rlc_am_in_rx_window( const protocol_ctxt_t* const ctxt_pP, const rlc_am_entity_t* const rlc_pP, - const rlc_sn_t snP);) + const rlc_sn_t snP); /*! \fn signed int rlc_am_sn_gte_vr_h (const protocol_ctxt_t* const ctxt_pP,const rlc_am_entity_t* const rlc_pP, const rlc_sn_t snP) * \brief Boolean function, check if sequence number is greater than or equal VR(R). @@ -82,10 +67,10 @@ protected_rlc_am_windows(signed int rlc_am_in_rx_window( * \param[in] snP Sequence number. * \return 1 if sequence number is greater than or equal VR(R), else 0. */ -protected_rlc_am_windows(signed int rlc_am_sn_gte_vr_h ( +signed int rlc_am_sn_gte_vr_h ( const protocol_ctxt_t* const ctxt_pP, const rlc_am_entity_t* const rlc_pP, - const rlc_sn_t snP);) + const rlc_sn_t snP); /*! \fn signed int rlc_am_sn_gte_vr_x (const protocol_ctxt_t* const ctxt_pP,const rlc_am_entity_t* const rlc_pP, const rlc_sn_t snP) * \brief Boolean function, check if sequence number is greater than or equal VR(X). @@ -94,10 +79,10 @@ protected_rlc_am_windows(signed int rlc_am_sn_gte_vr_h ( * \param[in] snP Sequence number. * \return 1 if sequence number is greater than or equal VR(X), else 0. */ -protected_rlc_am_windows(signed int rlc_am_sn_gte_vr_x ( +signed int rlc_am_sn_gte_vr_x ( const protocol_ctxt_t* const ctxt_pP, const rlc_am_entity_t* const rlc_pP, - const rlc_sn_t snP);) + const rlc_sn_t snP); /*! \fn signed int rlc_am_sn_gt_vr_ms (const protocol_ctxt_t* const ctxt_pP,const rlc_am_entity_t* const rlc_pP, const rlc_sn_t snP) * \brief Boolean function, check if sequence number is greater than VR(MS). @@ -106,10 +91,10 @@ protected_rlc_am_windows(signed int rlc_am_sn_gte_vr_x ( * \param[in] snP Sequence number. * \return 1 if sequence number is greater than VR(MS), else 0. */ -protected_rlc_am_windows(signed int rlc_am_sn_gt_vr_ms( +signed int rlc_am_sn_gt_vr_ms( const protocol_ctxt_t* const ctxt_pP, const rlc_am_entity_t* const rlc_pP, - const rlc_sn_t snP);) + const rlc_sn_t snP); /*! \fn signed int rlc_am_tx_sn1_gt_sn2 (const protocol_ctxt_t* const ctxt_pP,const rlc_am_entity_t* const rlc_pP, const rlc_sn_t sn1P, const rlc_sn_t sn2P) * \brief Boolean function, in the context of the tx window, check if sn1P is greater than sn2P. @@ -119,11 +104,11 @@ protected_rlc_am_windows(signed int rlc_am_sn_gt_vr_ms( * \param[in] sn2P Sequence number. * \return 1 if sn1P is greater than sn2P, else 0. */ -protected_rlc_am_windows(signed int rlc_am_tx_sn1_gt_sn2( +signed int rlc_am_tx_sn1_gt_sn2( const protocol_ctxt_t* const ctxt_pP, const rlc_am_entity_t* const rlc_pP, const rlc_sn_t sn1P, - const rlc_sn_t sn2P);) + const rlc_sn_t sn2P); /*! \fn signed int rlc_am_rx_sn1_gt_sn2(const protocol_ctxt_t* const ctxt_pP,const rlc_am_entity_t* const rlc_pP, const rlc_sn_t sn1P, const rlc_sn_t sn2P) * \brief Boolean function, in the context of the rx window, check if sn1P is greater than sn2P. @@ -133,10 +118,10 @@ protected_rlc_am_windows(signed int rlc_am_tx_sn1_gt_sn2( * \param[in] sn2P Sequence number. * \return 1 if sn1P is greater than sn2P, else 0. */ -protected_rlc_am_windows(signed int rlc_am_rx_sn1_gt_sn2( +signed int rlc_am_rx_sn1_gt_sn2( const protocol_ctxt_t* const ctxt_pP, const rlc_am_entity_t* const rlc_pP, const rlc_sn_t sn1P, - const rlc_sn_t sn2P);) + const rlc_sn_t sn2P); /** @} */ # endif diff --git a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c index 23a4d0eb04..dbd1469590 100644 --- a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c +++ b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c @@ -196,11 +196,10 @@ rlc_tm_mac_data_indication ( void * const rlc_pP, struct mac_data_ind data_indP) { - rlc_tm_entity_t* rlc_p = (rlc_tm_entity_t*) rlc_pP; if (data_indP.data.nb_elements > 0) { LOG_D(RLC, PROTOCOL_RLC_TM_CTXT_FMT" MAC_DATA_IND %d TBs\n", - PROTOCOL_RLC_TM_CTXT_ARGS(ctxt_pP, rlc_p), + PROTOCOL_RLC_TM_CTXT_ARGS(ctxt_pP, ((rlc_tm_entity_t*) rlc_pP)), data_indP.data.nb_elements); } diff --git a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h index a0049e4c2a..a5bd0b9ef5 100644 --- a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h +++ b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h @@ -34,21 +34,6 @@ */ # ifndef __RLC_TM_H__ # define __RLC_TM_H__ -# ifdef RLC_TM_C -# define private_rlc_tm(x) -# define protected_rlc_tm(x) -# define public_rlc_tm(x) -# else -# ifdef RLC_TM_MODULE -# define private_rlc_tm(x) -# define protected_rlc_tm(x) extern x -# define public_rlc_tm(x) extern x -# else -# define private_rlc_tm(x) -# define protected_rlc_tm(x) -# define public_rlc_tm(x) extern x -# endif -# endif # include "platform_types.h" # include "rlc_def.h" # include "rlc_def_lte.h" @@ -75,21 +60,21 @@ * \param[in] srcP SDU data pointer. * \param[in] length_in_bitsP Length of SDU in bits. */ -private_rlc_tm(void rlc_tm_send_sdu ( +void rlc_tm_send_sdu ( const protocol_ctxt_t* const ctxt_pP, rlc_tm_entity_t * const rlc_pP, const boolean_t error_indicationP, uint8_t * const srcP, - const sdu_size_t length_in_bitsP);) + const sdu_size_t length_in_bitsP); /*! \fn void rlc_tm_no_segment (const protocol_ctxt_t* const ctxt_pP, rlc_tm_entity_t * const rlcP) * \brief Schedule a SDU to be transmited by lower layers. * \param[in] ctxtP Running context. * \param[in] rlcP RLC TM protocol instance pointer. */ -private_rlc_tm(void rlc_tm_no_segment ( +void rlc_tm_no_segment ( const protocol_ctxt_t* const ctxt_pP, - rlc_tm_entity_t *const rlcP);) + rlc_tm_entity_t *const rlcP); /*! \fn void rlc_tm_rx (const protocol_ctxt_t* const ctxt_pP,void *const rlcP, struct mac_data_ind data_indP) * \brief Process the received PDUs from lower layer. @@ -97,10 +82,10 @@ private_rlc_tm(void rlc_tm_no_segment ( * \param[in] rlcP RLC TM protocol instance pointer. * \param[in] data_indP PDUs from MAC. */ -private_rlc_tm( void rlc_tm_rx ( +void rlc_tm_rx ( const protocol_ctxt_t* const ctxt_pP, void *const rlcP, - struct mac_data_ind data_indP);) + struct mac_data_ind data_indP); /*! \fn struct mac_status_resp rlc_tm_mac_status_indication (const protocol_ctxt_t* const ctxt_pP, void * const rlcP, const uint16_t tbs_sizeP, struct mac_status_ind tx_statusP) @@ -111,11 +96,12 @@ private_rlc_tm( void rlc_tm_rx ( * \param[in] tx_statusP Transmission status given by MAC on previous MAC transmission of the PDU. * \return The maximum number of bytes that can be served by RLC instance to MAC. */ -public_rlc_tm( struct mac_status_resp rlc_tm_mac_status_indication ( - const protocol_ctxt_t* const ctxt_pP, - void * const rlcP, - const uint16_t tb_sizeP, - struct mac_status_ind tx_statusP);) +struct mac_status_resp +rlc_tm_mac_status_indication ( + const protocol_ctxt_t* const ctxt_pP, + void * const rlc_pP, + const tb_size_t tb_sizeP, + struct mac_status_ind tx_statusP); /*! \fn struct mac_data_req rlc_tm_mac_data_request (const protocol_ctxt_t* const ctxt_pP, void * const rlcP) @@ -124,9 +110,9 @@ public_rlc_tm( struct mac_status_resp rlc_tm_mac_status_indication ( * \param[in] rlcP RLC TM protocol instance pointer. * \return A PDU of the previously requested number of bytes, and the updated maximum number of bytes that can be served by RLC instance to MAC for next RLC transmission. */ -public_rlc_tm( struct mac_data_req rlc_tm_mac_data_request ( +struct mac_data_req rlc_tm_mac_data_request ( const protocol_ctxt_t* const ctxt_pP, - void * const rlcP);) + void * const rlcP); /*! \fn void rlc_tm_mac_data_indication (const protocol_ctxt_t* const ctxt_pP,void * const rlcP, struct mac_data_ind data_indP) @@ -135,10 +121,10 @@ public_rlc_tm( struct mac_data_req rlc_tm_mac_data_request ( * \param[in] rlcP RLC TM protocol instance pointer. * \param[in] data_indP PDUs from MAC. */ -public_rlc_tm( void rlc_tm_mac_data_indication ( +void rlc_tm_mac_data_indication ( const protocol_ctxt_t* const ctxt_pP, void * const rlcP, - struct mac_data_ind data_indP);) + struct mac_data_ind data_indP); /*! \fn void rlc_tm_data_req (const protocol_ctxt_t* const ctxt_pP,void * const rlcP, mem_block_t * const sduP) @@ -147,10 +133,10 @@ public_rlc_tm( void rlc_tm_mac_data_indication ( * \param[in] rlcP RLC TM protocol instance pointer. * \param[in] sduP SDU. (A struct rlc_tm_data_req is mapped on sduP->data.) */ -public_rlc_tm( void rlc_tm_data_req ( +void rlc_tm_data_req ( const protocol_ctxt_t* const ctxt_pP, void * const rlcP, - mem_block_t * const sduP);) + mem_block_t * const sduP); /** @} */ # endif diff --git a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c index 70c1f37221..78d7cc515f 100644 --- a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c +++ b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c @@ -83,6 +83,7 @@ void rlc_tm_init ( if ((rlcP->input_sdus_alloc == NULL) && (rlcP->size_input_sdus_buffer > 0)) { rlcP->input_sdus_alloc = get_free_mem_block (rlcP->size_input_sdus_buffer * sizeof (void *), __func__); + if(rlcP->input_sdus_alloc == NULL) return; rlcP->input_sdus = (mem_block_t **) (rlcP->input_sdus_alloc->data); memset (rlcP->input_sdus, 0, rlcP->size_input_sdus_buffer * sizeof (void *)); } diff --git a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h index 35e6c792ae..c6ab681819 100644 --- a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h +++ b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h @@ -42,21 +42,6 @@ //# include "rlc.h" # include "platform_types.h" //----------------------------------------------------------------------------- -# ifdef RLC_TM_INIT_C -# define private_rlc_tm_init(x) x -# define protected_rlc_tm_init(x) x -# define public_rlc_tm_init(x) x -# else -# ifdef RLC_TM_MODULE -# define private_rlc_tm_init(x) -# define protected_rlc_tm_init(x) extern x -# define public_rlc_tm_init(x) extern x -# else -# define private_rlc_tm_init(x) -# define protected_rlc_tm_init(x) -# define public_rlc_tm_init(x) extern x -# endif -# endif typedef volatile struct rlc_tm_info_s { uint8_t is_uplink_downlink; @@ -75,35 +60,35 @@ typedef volatile struct rlc_tm_info_s { * \param[in] rb_idP Radio bearer identifier. * \param[in] chan_idP Transport channel identifier. */ -public_rlc_tm_init( void config_req_rlc_tm ( +void config_req_rlc_tm ( const protocol_ctxt_t* const ctxt_pP, const srb_flag_t srb_flagP, const rlc_tm_info_t * const config_tmP, const rb_id_t rb_idP, - const logical_chan_id_t chan_idP);) + const logical_chan_id_t chan_idP); /*! \fn void rlc_tm_init (const protocol_ctxt_t* const ctxt_pP, rlc_tm_entity_t * const rlcP) * \brief Initialize a RLC TM protocol instance, initialize all variables, lists, allocate buffers for making this instance ready to be configured with protocol configuration parameters. After this initialization the RLC TM protocol instance will be in RLC_NULL_STATE state. * \param[in] rlcP RLC TM protocol instance pointer. */ -protected_rlc_tm_init(void rlc_tm_init ( +void rlc_tm_init ( const protocol_ctxt_t* const ctxt_pP, - rlc_tm_entity_t * const rlcP);) + rlc_tm_entity_t * const rlcP); /*! \fn void rlc_tm_reset_state_variables (const protocol_ctxt_t* const ctxt_pP, rlc_tm_entity_t * const rlcP) * \brief Reset protocol variables and state variables to initial values. * \param[in] rlcP RLC TM protocol instance pointer. */ -protected_rlc_tm_init(void rlc_tm_reset_state_variables ( +void rlc_tm_reset_state_variables ( const protocol_ctxt_t* const ctxt_pP, - rlc_tm_entity_t * const rlcP);) + rlc_tm_entity_t * const rlcP); /*! \fn void rlc_tm_cleanup(rlc_tm_entity_t * const rlcP) * \brief Free all allocated memory (lists and buffers) previously allocated by this RLC TM instance. * \param[in] rlcP RLC TM protocol instance pointer. */ -public_rlc_tm_init( void rlc_tm_cleanup( - rlc_tm_entity_t * const rlcP);) +void rlc_tm_cleanup( + rlc_tm_entity_t * const rlcP); /*! \fn void rlc_tm_configure(const protocol_ctxt_t* const ctxt_pP,rlc_tm_entity_t * const rlcP, const boolean_t is_uplink_downlinkP) * \brief Configure RLC TM protocol parameters. @@ -111,10 +96,10 @@ public_rlc_tm_init( void rlc_tm_cleanup( * \param[in] is_uplink_downlinkP Is this instance is TRANSMITTER_ONLY, RECEIVER_ONLY, or TRANSMITTER_AND_RECEIVER. */ -protected_rlc_tm_init(void rlc_tm_configure( +void rlc_tm_configure( const protocol_ctxt_t* const ctxt_pP, rlc_tm_entity_t * const rlcP, - const boolean_t is_uplink_downlinkP);) + const boolean_t is_uplink_downlinkP); /*! \fn void rlc_tm_set_debug_infos(const protocol_ctxt_t* const ctxt_pP, rlc_tm_entity_t * const rlcP, const rb_id_t rb_idP, const srb_flag_t srb_flagP) * \brief Set debug informations for a RLC TM protocol instance, these informations are only for trace purpose. @@ -123,12 +108,12 @@ protected_rlc_tm_init(void rlc_tm_configure( * \param[in] rb_idP Radio bearer identifier. * \param[in] chan_idP Transport channel identifier */ -protected_rlc_tm_init(void rlc_tm_set_debug_infos( +void rlc_tm_set_debug_infos( const protocol_ctxt_t* const ctxt_pP, rlc_tm_entity_t * const rlcP, const srb_flag_t srb_flagP, const rb_id_t rb_idP, - const logical_chan_id_t chan_idP);) + const logical_chan_id_t chan_idP); /** @} */ # endif diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c index 0be2ef1686..f04fd66819 100644 --- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c +++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c @@ -36,7 +36,7 @@ #include "rlc_primitives.h" #include "mac_primitives.h" #include "LAYER2/MAC/mac_extern.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "rlc_um_very_simple_test.h" @@ -194,7 +194,7 @@ rlc_um_rx (const protocol_ctxt_t* const ctxt_pP, void *argP, struct mac_data_ind // establishment, the RLC entity: // - is created; and // - enters the DATA_TRANSFER_READY state. - LOG_N(RLC, PROTOCOL_RLC_UM_CTXT_FMT" ERROR MAC_DATA_IND IN RLC_NULL_STATE\n", + LOG_I(RLC, PROTOCOL_RLC_UM_CTXT_FMT" ERROR MAC_DATA_IND IN RLC_NULL_STATE\n", PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP,l_rlc_p)); #if MESSAGE_CHART_GENERATOR @@ -387,7 +387,7 @@ rlc_um_rx (const protocol_ctxt_t* const ctxt_pP, void *argP, struct mac_data_ind // - stays in the LOCAL_SUSPEND state; // - modifies only the protocol parameters and timers as indicated by // upper layers. - LOG_N(RLC, PROTOCOL_RLC_UM_CTXT_FMT" RLC_LOCAL_SUSPEND_STATE\n", + LOG_I(RLC, PROTOCOL_RLC_UM_CTXT_FMT" RLC_LOCAL_SUSPEND_STATE\n", PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP,l_rlc_p)); /*if (data_indP.data.nb_elements > 0) { LOG_D(RLC, "[FRAME %05d][%s][RLC_UM][MOD %02u/%02u][RB %02d] MAC_DATA_IND %d TBs\n", l_rlc_p->module_id, l_rlc_p->rb_id, ctxt_pP->frame, data_indP.data.nb_elements); @@ -421,6 +421,7 @@ rlc_um_rx (const protocol_ctxt_t* const ctxt_pP, void *argP, struct mac_data_ind LOG_E(RLC, PROTOCOL_RLC_UM_CTXT_FMT" TX UNKNOWN PROTOCOL STATE %02X hex\n", PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP,l_rlc_p), l_rlc_p->protocol_state); + list_free (&data_indP.data); } } @@ -567,7 +568,13 @@ rlc_um_mac_data_request (const protocol_ctxt_t* const ctxt_pP, void *rlc_pP,cons l_rlc_p->stat_tx_data_pdu += 1; l_rlc_p->stat_tx_data_bytes += tb_size_in_bytes; - AssertFatal( tb_size_in_bytes > 0 , "RLC UM PDU LENGTH %d", tb_size_in_bytes); + //AssertFatal( tb_size_in_bytes > 0 , "RLC UM PDU LENGTH %d", tb_size_in_bytes); + if(tb_size_in_bytes <= 0) { + LOG_E(RLC, "RLC UM PDU LENGTH %d\n", tb_size_in_bytes); + tb_p = tb_p->next; + continue; + } + #if TRACE_RLC_UM_PDU || MESSAGE_CHART_GENERATOR rlc_um_get_pdu_infos(ctxt_pP, l_rlc_p,(rlc_um_pdu_sn_10_t*) ((struct mac_tb_req*) (tb_p->data))->data_ptr, tb_size_in_bytes, &pdu_info, l_rlc_p->rx_sn_length); #endif diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.h index abf4f8ad6e..f2f91ff68e 100644 --- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.h +++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.h @@ -34,21 +34,6 @@ */ # ifndef __RLC_UM_H__ # define __RLC_UM_H__ -# ifdef RLC_UM_C -# define private_rlc_um(x) -# define protected_rlc_um(x) -# define public_rlc_um(x) -# else -# ifdef RLC_UM_MODULE -# define private_rlc_um(x) -# define protected_rlc_um(x) extern x -# define public_rlc_um(x) extern x -# else -# define private_rlc_um(x) -# define protected_rlc_um(x) -# define public_rlc_um(x) extern x -# endif -# endif # include # include "platform_types.h" # include "rlc_def.h" @@ -141,40 +126,40 @@ * \param[out] stat_rx_data_bytes_out_of_window Number of data bytes received out of the receive window. * \param[out] stat_timer_reordering_timed_out Number of times the timer "reordering" has timed-out. */ -public_rlc_um(void rlc_um_stat_req (const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, - unsigned int* stat_tx_pdcp_sdu, - unsigned int* stat_tx_pdcp_bytes, - unsigned int* stat_tx_pdcp_sdu_discarded, - unsigned int* stat_tx_pdcp_bytes_discarded, - unsigned int* stat_tx_data_pdu, - unsigned int* stat_tx_data_bytes, - unsigned int* stat_rx_pdcp_sdu, - unsigned int* stat_rx_pdcp_bytes, - unsigned int* stat_rx_data_pdus_duplicate, - unsigned int* stat_rx_data_bytes_duplicate, - unsigned int* stat_rx_data_pdu, - unsigned int* stat_rx_data_bytes, - unsigned int* stat_rx_data_pdu_dropped, - unsigned int* stat_rx_data_bytes_dropped, - unsigned int* stat_rx_data_pdu_out_of_window, - unsigned int* stat_rx_data_bytes_out_of_window, - unsigned int* stat_timer_reordering_timed_out);) +void rlc_um_stat_req (rlc_um_entity_t *rlc_pP, + unsigned int* stat_tx_pdcp_sdu, + unsigned int* stat_tx_pdcp_bytes, + unsigned int* stat_tx_pdcp_sdu_discarded, + unsigned int* stat_tx_pdcp_bytes_discarded, + unsigned int* stat_tx_data_pdu, + unsigned int* stat_tx_data_bytes, + unsigned int* stat_rx_pdcp_sdu, + unsigned int* stat_rx_pdcp_bytes, + unsigned int* stat_rx_data_pdus_duplicate, + unsigned int* stat_rx_data_bytes_duplicate, + unsigned int* stat_rx_data_pdu, + unsigned int* stat_rx_data_bytes, + unsigned int* stat_rx_data_pdu_dropped, + unsigned int* stat_rx_data_bytes_dropped, + unsigned int* stat_rx_data_pdu_out_of_window, + unsigned int* stat_rx_data_bytes_out_of_window, + unsigned int* stat_timer_reordering_timed_out); /*! \fn void rlc_um_get_pdus (const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP) * \brief Request the segmentation of SDUs based on status previously sent by MAC. * \param[in] ctxt_pP Running context. * \param[in] rlc_pP RLC UM protocol instance pointer. */ -private_rlc_um( void rlc_um_get_pdus (const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP);) - +void +rlc_um_get_pdus (const protocol_ctxt_t* const ctxt_pP, void *argP); /*! \fn void rlc_um_rx (const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, struct mac_data_ind data_indication) * \brief Process the received PDUs from lower layer. * \param[in] ctxt_pP Running context. * \param[in] rlc_pP RLC UM protocol instance pointer. * \param[in] data_indication PDUs from MAC. */ -protected_rlc_um( void rlc_um_rx (const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, struct mac_data_ind data_indication);) - +void +rlc_um_rx (const protocol_ctxt_t* const ctxt_pP, void *argP, struct mac_data_ind data_indP); /*! \fn struct mac_status_resp rlc_um_mac_status_indication (const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, uint16_t tbs_sizeP, struct mac_status_ind tx_statusP) * \brief Request the maximum number of bytes that can be served by RLC instance to MAC and fix the amount of bytes requested by MAC for next RLC transmission. * \param[in] ctxt_pP Running context. @@ -183,14 +168,19 @@ protected_rlc_um( void rlc_um_rx (const protocol_ctxt_t* const ctxt_pP, rlc_ * \param[in] tx_statusP Transmission status given by MAC on previous MAC transmission of the PDU. * \return The maximum number of bytes that can be served by RLC instance to MAC. */ -public_rlc_um( struct mac_status_resp rlc_um_mac_status_indication (const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, uint16_t tbs_sizeP, struct mac_status_ind tx_statusP, const eNB_flag_t enb_flagP);) +struct mac_status_resp +rlc_um_mac_status_indication (const protocol_ctxt_t* const ctxt_pP, void *rlc_pP, uint16_t tbs_sizeP, struct mac_status_ind tx_statusP,const eNB_flag_t enb_flagP); /*! \fn void rlc_um_set_nb_bytes_requested_by_mac (rlc_um_entity_t * const rlc_pP, const tb_size_t tb_sizeP) * \brief Set available TBS size for MAC Tx. * \param[in] rlc_pP RLC UM protocol instance pointer. * \param[in] tb_sizeP remaining TBS in bytes. */ -public_rlc_um( void rlc_um_set_nb_bytes_requested_by_mac (rlc_um_entity_t * const rlc_pP, const tb_size_t tb_sizeP);) +void +rlc_um_set_nb_bytes_requested_by_mac ( + void * rlc_pP, + const tb_size_t tb_sizeP +); /*! \fn struct mac_data_req rlc_um_mac_data_request (const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP,const eNB_flag_t enb_flagP) * \brief Gives PDUs to lower layer MAC. @@ -199,8 +189,8 @@ public_rlc_um( void rlc_um_set_nb_bytes_requested_by_mac (rlc_um_entity_t * \param[in] enb_flagP eNB or UE flag. * \return A PDU of the previously requested number of bytes, and the updated maximum number of bytes that can be served by RLC instance to MAC for next RLC transmission. */ -public_rlc_um( struct mac_data_req rlc_um_mac_data_request (const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP,const eNB_flag_t enb_flagP);) - +struct mac_data_req +rlc_um_mac_data_request (const protocol_ctxt_t* const ctxt_pP, void *rlc_pP,const eNB_flag_t enb_flagP); /*! \fn void rlc_um_mac_data_indication (const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP,struct mac_data_ind data_indP) * \brief Receive PDUs from lower layer MAC. @@ -208,13 +198,12 @@ public_rlc_um( struct mac_data_req rlc_um_mac_data_request (const protocol_ct * \param[in] rlc_pP RLC UM protocol instance pointer. * \param[in] data_indP PDUs from MAC. */ -public_rlc_um( void rlc_um_mac_data_indication (const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, struct mac_data_ind data_indP);) /*! \fn uint32_t rlc_um_get_buffer_occupancy (rlc_um_entity_t *rlc_pP) * \brief Gets Tx Buffer Occupancy. * \param[in] rlc_pP RLC UM protocol instance pointer.) */ -public_rlc_um( uint32_t rlc_um_get_buffer_occupancy (rlc_um_entity_t *rlc_pP);) +uint32_t rlc_um_get_buffer_occupancy (rlc_um_entity_t *rlc_pP); /*! \fn void rlc_um_data_req (const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, mem_block_t *sduP) * \brief Interface with higher layers, buffer higher layer SDUS for transmission. @@ -222,6 +211,9 @@ public_rlc_um( uint32_t rlc_um_get_buffer_occupancy (rlc_um_entity_t *rlc_pP) * \param[in] rlc_pP RLC UM protocol instance pointer. * \param[in] sduP SDU. (A struct rlc_um_data_req is mapped on sduP->data.) */ -public_rlc_um( void rlc_um_data_req (const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, mem_block_t *sduP);) +void +rlc_um_mac_data_indication (const protocol_ctxt_t* const ctxt_pP, void *rlc_pP, struct mac_data_ind data_indP); +void +rlc_um_data_req (const protocol_ctxt_t *const ctxt_pP, void *rlc_pP, mem_block_t *sdu_pP) ; /** @} */ # endif diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c index fcd88acbb7..b422748292 100644 --- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c +++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c @@ -29,7 +29,7 @@ #include "list.h" #include "rrm_config_structs.h" #include "LAYER2/MAC/mac_extern.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "rlc_um_control_primitives.h" #include "T-Reordering.h" @@ -94,7 +94,7 @@ void config_req_rlc_um_asn1 ( const DL_UM_RLC_t * const dl_rlc_pP, const rb_id_t rb_idP, const logical_chan_id_t chan_idP -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,const uint32_t sourceL2Id ,const uint32_t destinationL2Id #endif @@ -111,16 +111,31 @@ void config_req_rlc_um_asn1 ( #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) if (mbms_flagP) { - AssertFatal(dl_rlc_pP, "No RLC UM DL config"); - AssertFatal(ul_rlc_pP == NULL, "RLC UM UL config present"); + //AssertFatal(dl_rlc_pP, "No RLC UM DL config"); + if(dl_rlc_pP == NULL) { + LOG_E(RLC, "No RLC UM DL config\n"); + return; + } + //AssertFatal(ul_rlc_pP == NULL, "RLC UM UL config present"); + if(ul_rlc_pP != NULL) { + LOG_E(RLC, "RLC UM UL config present\n"); + return; + } + key = RLC_COLL_KEY_MBMS_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, mbms_service_idP, mbms_session_idP); h_rc = hashtable_get(rlc_coll_p, key, (void**)&rlc_union_p); - AssertFatal (h_rc == HASH_TABLE_OK, "RLC NOT FOUND enb id %u rnti %i enb flag %u service id %u, session id %u", - ctxt_pP->module_id, - ctxt_pP->rnti, - ctxt_pP->enb_flag, - mbms_service_idP, - mbms_session_idP); + //AssertFatal (h_rc == HASH_TABLE_OK, "RLC NOT FOUND enb id %u rnti %i enb flag %u service id %u, session id %u", + // ctxt_pP->module_id, + // ctxt_pP->rnti, + // ctxt_pP->enb_flag, + // mbms_service_idP, + // mbms_session_idP); + if(h_rc != HASH_TABLE_OK) { + LOG_E(RLC, "RLC NOT FOUND enb id %u rnti %i enb flag %u service id %u, session id %u\n", + ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, mbms_service_idP, mbms_session_idP); + return; + } + rlc_p = &rlc_union_p->rlc.um; } if ((sourceL2Id >0 ) && (destinationL2Id >0)){ @@ -131,12 +146,17 @@ void config_req_rlc_um_asn1 ( key = RLC_COLL_KEY_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, srb_flagP); } h_rc = hashtable_get(rlc_coll_p, key, (void**)&rlc_union_p); - AssertFatal (h_rc == HASH_TABLE_OK, "RLC NOT FOUND enb id %u ue id %i enb flag %u rb id %u, srb flag %u", - ctxt_pP->module_id, - ctxt_pP->rnti, - ctxt_pP->enb_flag, - rb_idP, - srb_flagP); + //AssertFatal (h_rc == HASH_TABLE_OK, "RLC NOT FOUND enb id %u ue id %i enb flag %u rb id %u, srb flag %u", + // ctxt_pP->module_id, + // ctxt_pP->rnti, + // ctxt_pP->enb_flag, + // rb_idP, + // srb_flagP); + if(h_rc != HASH_TABLE_OK) { + LOG_E(RLC, "RLC NOT FOUND enb id %u ue id %i enb flag %u rb id %u, srb flag %u\n", + ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, srb_flagP); + return; + } rlc_p = &rlc_union_p->rlc.um; //----------------------------------------------------------------------------- @@ -277,7 +297,11 @@ rlc_um_init ( ) { - AssertFatal(rlc_pP, "Bad RLC UM pointer (NULL)"); + //AssertFatal(rlc_pP, "Bad RLC UM pointer (NULL)"); + if(rlc_pP == NULL) { + LOG_E(RLC, "Bad RLC UM pointer (NULL)\n"); + return; + } if (rlc_pP->initialized) { LOG_D(RLC,PROTOCOL_RLC_UM_CTXT_FMT" [INIT] ALREADY DONE, DOING NOTHING\n", diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.h index fc64e95d99..524b75fe16 100644 --- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.h +++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.h @@ -43,21 +43,6 @@ # include "DL-UM-RLC.h" # include "UL-UM-RLC.h" //----------------------------------------------------------------------------- -# ifdef RLC_UM_CONTROL_PRIMITIVES_C -# define private_rlc_um_control_primitives(x) x -# define protected_rlc_um_control_primitives(x) x -# define public_rlc_um_control_primitives(x) x -# else -# ifdef RLC_UM_MODULE -# define private_rlc_um_control_primitives(x) -# define protected_rlc_um_control_primitives(x) extern x -# define public_rlc_um_control_primitives(x) extern x -# else -# define private_rlc_um_control_primitives(x) -# define protected_rlc_um_control_primitives(x) -# define public_rlc_um_control_primitives(x) extern x -# endif -# endif typedef volatile struct { uint32_t is_uplink_downlink; @@ -79,12 +64,12 @@ typedef volatile struct { * \param[in] rb_idP Radio bearer identifier. * \param[in] chan_idP Transport channel identifier. */ -public_rlc_um_control_primitives( void config_req_rlc_um ( +void config_req_rlc_um ( const protocol_ctxt_t* const ctxt_pP, const srb_flag_t srb_flagP, const rlc_um_info_t * const config_umP, const rb_id_t rb_idP, - const logical_chan_id_t chan_idP);) + const logical_chan_id_t chan_idP); /*! \fn void config_req_rlc_um_asn1 ( * const protocol_ctxt_t* const ctxt_pP, @@ -106,7 +91,7 @@ public_rlc_um_control_primitives( void config_req_rlc_um ( * \param[in] rb_idP Radio bearer identifier. * \param[in] chan_idP Transport channel identifier. */ -public_rlc_um_control_primitives( void config_req_rlc_um_asn1 ( +void config_req_rlc_um_asn1 ( const protocol_ctxt_t* const ctxt_pP, const srb_flag_t srb_flagP, const MBMS_flag_t mbms_flagP, @@ -116,36 +101,36 @@ public_rlc_um_control_primitives( void config_req_rlc_um_asn1 ( const DL_UM_RLC_t * const dl_rlc_pP, const rb_id_t rb_idP, const logical_chan_id_t chan_idP -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,const uint32_t sourceL2Id ,const uint32_t destinationL2Id #endif - );) + ); /*! \fn void rlc_um_init (const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP) * \brief Initialize a RLC UM protocol instance, initialize all variables, lists, allocate buffers for making this instance ready to be configured with protocol configuration parameters. After this initialization the RLC UM protocol instance will be in RLC_NULL_STATE state. * \param[in] ctxtP Running context. * \param[in] rlc_pP RLC UM protocol instance pointer. */ -protected_rlc_um_control_primitives(void rlc_um_init ( +void rlc_um_init ( const protocol_ctxt_t* const ctxt_pP, - rlc_um_entity_t * const rlc_pP);) + rlc_um_entity_t * const rlc_pP); /*! \fn void rlc_um_reset_state_variables (const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP) * \brief Reset protocol variables and state variables to initial values. * \param[in] ctxtP Running context. * \param[in] rlc_pP RLC UM protocol instance pointer. */ -protected_rlc_um_control_primitives(void rlc_um_reset_state_variables ( +void rlc_um_reset_state_variables ( const protocol_ctxt_t* const ctxt_pP, - rlc_um_entity_t * const rlc_pP);) + rlc_um_entity_t * const rlc_pP); /*! \fn void rlc_um_cleanup(rlc_um_entity_t * const rlc_pP) * \brief Free all allocated memory (lists and buffers) previously allocated by this RLC UM instance. * \param[in] rlc_pP RLC UM protocol instance pointer. */ -public_rlc_um_control_primitives( void rlc_um_cleanup( - rlc_um_entity_t * const rlc_pP);) +void rlc_um_cleanup( + rlc_um_entity_t * const rlc_pP); /*! \fn void rlc_um_configure( * const protocol_ctxt_t* const ctxt_pP, @@ -162,13 +147,13 @@ public_rlc_um_control_primitives( void rlc_um_cleanup( * \param[in] tx_sn_field_lengthP Length of the sequence number, 5 or 10 bits in transmission. * \param[in] is_mXchP Is the radio bearer for MCCH, MTCH. */ -protected_rlc_um_control_primitives(void rlc_um_configure( +void rlc_um_configure( const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t *const rlc_pP, const uint32_t timer_reorderingP, const uint32_t rx_sn_field_lengthP, const uint32_t tx_sn_field_lengthP, - const uint32_t is_mXchP);) + const uint32_t is_mXchP); /*! \fn void rlc_um_set_debug_infos( * const protocol_ctxt_t* const ctxt_pP, @@ -182,11 +167,11 @@ protected_rlc_um_control_primitives(void rlc_um_configure( * \param[in] rb_idP Radio bearer identifier. * \param[in] chan_idP Transport channel identifier. */ -protected_rlc_um_control_primitives(void rlc_um_set_debug_infos( +void rlc_um_set_debug_infos( const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, const srb_flag_t srb_flagP, const rb_id_t rb_idP, - const logical_chan_id_t chan_idP);) + const logical_chan_id_t chan_idP); /** @} */ # endif diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c index fe71839231..18db23eb55 100644 --- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c +++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c @@ -30,9 +30,8 @@ #include "rlc_primitives.h" #include "mac_primitives.h" #include "list.h" -#include "UTIL/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" - +#include "common/utils/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" //----------------------------------------------------------------------------- signed int rlc_um_get_pdu_infos( const protocol_ctxt_t* const ctxt_pP, @@ -47,7 +46,11 @@ signed int rlc_um_get_pdu_infos( pdu_info_pP->num_li = 0; - AssertFatal( total_sizeP > 0 , "RLC UM PDU LENGTH %d", total_sizeP); + //AssertFatal( total_sizeP > 0 , "RLC UM PDU LENGTH %d", total_sizeP); + if(total_sizeP <= 0) { + LOG_E(RLC, "RLC UM PDU LENGTH %d\n", total_sizeP); + return -1; + } if (sn_lengthP == 10) { pdu_info_pP->fi = (header_pP->b1 >> 3) & 0x03; @@ -62,7 +65,11 @@ signed int rlc_um_get_pdu_infos( pdu_info_pP->header_size = 1; pdu_info_pP->payload = &header_pP->b2; } else { - AssertFatal( sn_lengthP == 5 || sn_lengthP == 10, "RLC UM SN LENGTH %d", sn_lengthP); + //AssertFatal( sn_lengthP == 5 || sn_lengthP == 10, "RLC UM SN LENGTH %d", sn_lengthP); + if(!(sn_lengthP == 5 || sn_lengthP == 10)) { + LOG_E(RLC, "RLC UM SN LENGTH %d\n", sn_lengthP); + return -1; + } } @@ -77,15 +84,23 @@ signed int rlc_um_get_pdu_infos( li_length_in_bytes = li_length_in_bytes ^ 3; if (li_length_in_bytes == 2) { - AssertFatal( total_sizeP >= ((uint64_t)(&e_li_p->b2) - (uint64_t)header_pP), - "DECODING PDU TOO FAR PDU size %d", total_sizeP); + //AssertFatal( total_sizeP >= ((uint64_t)(&e_li_p->b2) - (uint64_t)header_pP), + // "DECODING PDU TOO FAR PDU size %d", total_sizeP); + if(total_sizeP < ((uint64_t)(&e_li_p->b2) - (uint64_t)header_pP)) { + LOG_E(RLC, "DECODING PDU TOO FAR PDU size %d\n", total_sizeP); + return -1; + } pdu_info_pP->li_list[pdu_info_pP->num_li] = ((uint16_t)(e_li_p->b1 << 4)) & 0x07F0; pdu_info_pP->li_list[pdu_info_pP->num_li] |= (((uint8_t)(e_li_p->b2 >> 4)) & 0x000F); li_to_read = e_li_p->b1 & 0x80; pdu_info_pP->header_size += 2; } else { - AssertFatal( total_sizeP >= ((uint64_t)(&e_li_p->b3) - (uint64_t)header_pP), - "DECODING PDU TOO FAR PDU size %d", total_sizeP); + //AssertFatal( total_sizeP >= ((uint64_t)(&e_li_p->b3) - (uint64_t)header_pP), + // "DECODING PDU TOO FAR PDU size %d", total_sizeP); + if(total_sizeP < ((uint64_t)(&e_li_p->b3) - (uint64_t)header_pP)) { + LOG_E(RLC, "DECODING PDU TOO FAR PDU size %d\n", total_sizeP); + return -1; + } pdu_info_pP->li_list[pdu_info_pP->num_li] = ((uint16_t)(e_li_p->b2 << 8)) & 0x0700; pdu_info_pP->li_list[pdu_info_pP->num_li] |= e_li_p->b3; li_to_read = e_li_p->b2 & 0x08; @@ -93,10 +108,16 @@ signed int rlc_um_get_pdu_infos( pdu_info_pP->header_size += 1; } - AssertFatal( pdu_info_pP->num_li <= RLC_UM_SEGMENT_NB_MAX_LI_PER_PDU, - PROTOCOL_RLC_UM_CTXT_FMT"[GET PDU INFO] SN %04d TOO MANY LIs ", + //AssertFatal( pdu_info_pP->num_li <= RLC_UM_SEGMENT_NB_MAX_LI_PER_PDU, + // PROTOCOL_RLC_UM_CTXT_FMT"[GET PDU INFO] SN %04d TOO MANY LIs ", + // PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP, rlc_pP), + // pdu_info_pP->sn); + if(pdu_info_pP->num_li > RLC_UM_SEGMENT_NB_MAX_LI_PER_PDU) { + LOG_E(RLC, PROTOCOL_RLC_UM_CTXT_FMT"[GET PDU INFO] SN %04d TOO MANY LIs \n", PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP, rlc_pP), pdu_info_pP->sn); + return -1; + } sum_li += pdu_info_pP->li_list[pdu_info_pP->num_li]; pdu_info_pP->num_li = pdu_info_pP->num_li + 1; @@ -130,7 +151,6 @@ int rlc_um_read_length_indicators(unsigned char**data_ppP, rlc_um_e_li_t* e_liP, unsigned int e2 = 0; unsigned int li2 = 0; *num_li_pP = 0; - int pdu_size = *data_size_pP; while ((continue_loop)) { //msg("[RLC_UM] e_liP->b1 = %02X\n", e_liP->b1); @@ -149,7 +169,7 @@ int rlc_um_read_length_indicators(unsigned char**data_ppP, rlc_um_e_li_t* e_liP, *num_li_pP = *num_li_pP +1; if (!(*data_size_pP >= 0)) LOG_E(RLC, "Invalid data_size=%d! (pdu_size=%d loop=%d e1=%d e2=%d li2=%d e_liP=%02x.%02x.%02x.%02x.%02x.%02x.%02x.%02x.%02x)\n", - *data_size_pP, pdu_size, continue_loop, e1, e2, li2, + *data_size_pP, *data_size_pP, continue_loop, e1, e2, li2, (e_liP-(continue_loop-1)+0)->b1, (e_liP-(continue_loop-1)+0)->b2, (e_liP-(continue_loop-1)+0)->b3, @@ -169,7 +189,7 @@ int rlc_um_read_length_indicators(unsigned char**data_ppP, rlc_um_e_li_t* e_liP, } } else { if (!(*data_size_pP >= 0)) LOG_E(RLC, "Invalid data_size=%d! (pdu_size=%d loop=%d e1=%d li1=%d e_liP=%02x.%02x.%02x.%02x.%02x.%02x.%02x.%02x.%02x)\n", - *data_size_pP, pdu_size, continue_loop, e1, li1, + *data_size_pP, *data_size_pP, continue_loop, e1, li1, (e_liP-(continue_loop-1)+0)->b1, (e_liP-(continue_loop-1)+0)->b2, (e_liP-(continue_loop-1)+0)->b3, @@ -308,9 +328,17 @@ rlc_um_try_reassembly( __LINE__); #endif } - AssertFatal(size >= 0, "invalid size!"); - AssertFatal((e==0) || (e==1), "invalid e!"); - AssertFatal((fi >= 0) && (fi <= 3), "invalid fi!"); + //AssertFatal(size >= 0, "invalid size!"); + //AssertFatal((e==0) || (e==1), "invalid e!"); + //AssertFatal((fi >= 0) && (fi <= 3), "invalid fi!"); + if((size < 0) || ((e!=0) && (e!=1)) || ((fi < 0) || (fi > 3))){ + LOG_E(RLC, "invalid size %d, e %d, fi %d\n", size, e, fi); + sn = (sn + 1) % rlc_pP->rx_sn_modulo; + if ((sn == rlc_pP->vr_uh) || (sn == end_snP)) { + continue_reassembly = 0; + } + continue; + } if (e == RLC_E_FIXED_PART_DATA_FIELD_FOLLOW) { switch (fi) { @@ -400,11 +428,14 @@ rlc_um_try_reassembly( break; default: - AssertFatal( 0 , PROTOCOL_RLC_UM_CTXT_FMT" fi=%d! TRY REASSEMBLY SHOULD NOT GO HERE (%s:%u)\n", - PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP, rlc_pP), - fi, - __FILE__, - __LINE__); + //AssertFatal( 0 , PROTOCOL_RLC_UM_CTXT_FMT" fi=%d! TRY REASSEMBLY SHOULD NOT GO HERE (%s:%u)\n", + // PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP, rlc_pP), + // fi, + // __FILE__, + // __LINE__); + LOG_E(RLC, PROTOCOL_RLC_UM_CTXT_FMT" fi=%d! TRY REASSEMBLY SHOULD NOT GO HERE (%s:%u)\n", + PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP, rlc_pP), fi, __FILE__, __LINE__); + } } else { if (rlc_um_read_length_indicators(&data_p, e_li_p, li_array, &num_li, &size ) >= 0) { @@ -543,11 +574,14 @@ rlc_um_try_reassembly( // data_p is already ok, done by last loop above rlc_um_reassembly (ctxt_pP, rlc_pP, data_p, size); } else { - AssertFatal( 0 !=0, PROTOCOL_RLC_UM_CTXT_FMT" size=%d! SHOULD NOT GO HERE (%s:%u)\n", - PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP, rlc_pP), - size, - __FILE__, - __LINE__); + //AssertFatal( 0 !=0, PROTOCOL_RLC_UM_CTXT_FMT" size=%d! SHOULD NOT GO HERE (%s:%u)\n", + // PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP, rlc_pP), + // size, + // __FILE__, + // __LINE__); + LOG_E(RLC, PROTOCOL_RLC_UM_CTXT_FMT" size=%d! SHOULD NOT GO HERE (%s:%u)\n", + PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP, rlc_pP), size, __FILE__, __LINE__); + //rlc_pP->stat_rx_data_pdu_dropped += 1; rlc_pP->stat_rx_data_bytes_dropped += size; } diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.h index f62cddfbca..e0dccf2eee 100644 --- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.h +++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.h @@ -40,21 +40,6 @@ # include "rlc_um_constants.h" # include "list.h" //----------------------------------------------------------------------------- -# ifdef RLC_UM_DAR_C -# define private_rlc_um_dar(x) x -# define protected_rlc_um_dar(x) x -# define public_rlc_um_dar(x) x -# else -# ifdef RLC_UM_MODULE -# define private_rlc_um_dar(x) -# define protected_rlc_um_dar(x) extern x -# define public_rlc_um_dar(x) extern x -# else -# define private_rlc_um_dar(x) -# define protected_rlc_um_dar(x) -# define public_rlc_um_dar(x) extern x -# endif -# endif /*! \fn signed int rlc_um_get_pdu_infos(const protocol_ctxt_t* const ctxt_pP,const rlc_um_entity_t * const rlc_pP,rlc_um_pdu_sn_10_t* header_pP, int16_t total_sizeP, rlc_um_pdu_info_t* pdu_info_pP, uint8_t sn_lengthP) * \brief Extract PDU informations (header fields, data size, etc) from the serialized PDU. * \param[in] ctxt_pP Running context. @@ -65,13 +50,13 @@ * \param[in] sn_lengthP Sequence number length in bits in PDU header (5 or 10). * \return 0 if no error was encountered during the parsing of the PDU, else -1; */ -protected_rlc_um_dar( signed int rlc_um_get_pdu_infos( +signed int rlc_um_get_pdu_infos( const protocol_ctxt_t* const ctxt_pP, const rlc_um_entity_t * const rlc_pP, rlc_um_pdu_sn_10_t * const header_pP, const sdu_size_t total_sizeP, rlc_um_pdu_info_t * const pdu_info_pP, - const uint8_t sn_lengthP)); + const uint8_t sn_lengthP); /*! \fn int rlc_um_read_length_indicators(unsigned char**data_ppP, rlc_um_e_li_t* e_li_pP, unsigned int* li_array_pP, unsigned int *num_li_pP, sdu_size_t *data_size_pP) * \brief Reset protocol variables and state variables to initial values. @@ -82,7 +67,7 @@ protected_rlc_um_dar( signed int rlc_um_get_pdu_infos( * \param[in,out] data_size_pP Pointer on data size. * \return 0 if no error was encountered during the parsing of the PDU, else -1; */ -private_rlc_um_dar( int rlc_um_read_length_indicators(unsigned char**data_ppP, rlc_um_e_li_t* e_li_pP, unsigned int* li_array_pP, unsigned int *num_li_pP, sdu_size_t *data_size_pP)); +int rlc_um_read_length_indicators(unsigned char**data_ppP, rlc_um_e_li_t* e_li_pP, unsigned int* li_array_pP, unsigned int *num_li_pP, sdu_size_t *data_size_pP); /*! \fn void rlc_um_try_reassembly (const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, rlc_sn_t start_snP, rlc_sn_t end_snP) * \brief Try reassembly PDUs from DAR buffer, starting at sequence number snP. @@ -92,7 +77,7 @@ private_rlc_um_dar( int rlc_um_read_length_indicators(unsigned char**data_ppP, * \param[in] start_snP First PDU to be reassemblied if possible. * \param[in] end_snP Last excluded highest sequence number of PDU to be reassemblied. */ -private_rlc_um_dar( void rlc_um_try_reassembly (const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, const rlc_sn_t start_snP, const rlc_sn_t end_snP)); +void rlc_um_try_reassembly (const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, const rlc_sn_t start_snP, const rlc_sn_t end_snP); /*! \fn void rlc_um_check_timer_reordering(rlc_um_entity_t * const rlc_pP,frame_t frameP) * \brief Check if timer reordering has timed-out, if so it is stopped and has the status "timed-out". @@ -100,7 +85,7 @@ private_rlc_um_dar( void rlc_um_try_reassembly (const protocol_ctxt_t* con * \param[in] rlc_pP RLC UM protocol instance pointer. * \param[in] frameP Frame index */ -protected_rlc_um_dar(void rlc_um_check_timer_reordering(const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t *const rlc_pP)); +void rlc_um_check_timer_reordering(const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t *const rlc_pP); /*! \fn void rlc_um_stop_and_reset_timer_reordering(const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP) * \brief Stop and reset the timer reordering. @@ -108,7 +93,7 @@ protected_rlc_um_dar(void rlc_um_check_timer_reordering(const protocol_ctxt_t* c * \param[in] rlc_pP RLC UM protocol instance pointer. * \param[in] frameP Frame index. */ -protected_rlc_um_dar(void rlc_um_stop_and_reset_timer_reordering(const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t *const rlc_pP);) +void rlc_um_stop_and_reset_timer_reordering(const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t *const rlc_pP); /*! \fn void rlc_um_start_timer_reordering(const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP) * \brief Re-arm (based on RLC UM config parameter) and start timer reordering. @@ -116,7 +101,7 @@ protected_rlc_um_dar(void rlc_um_stop_and_reset_timer_reordering(const protocol_ * \param[in] rlc_pP RLC UM protocol instance pointer. * \param[in] frameP Frame index. */ -protected_rlc_um_dar(void rlc_um_start_timer_reordering(const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP);) +void rlc_um_start_timer_reordering(const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP); /*! \fn void rlc_um_init_timer_reordering(rlc_um_entity_t * const rlc_pP, const uint32_t ms_durationP) * \brief Initialize the timer reordering with RLC UM time-out config parameter. @@ -124,14 +109,14 @@ protected_rlc_um_dar(void rlc_um_start_timer_reordering(const protocol_ctxt_t* c * \param[in] rlc_pP RLC UM protocol instance pointer. * \param[in] ms_durationP Duration in milliseconds units. */ -protected_rlc_um_dar(void rlc_um_init_timer_reordering(const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, const uint32_t ms_durationP);) +void rlc_um_init_timer_reordering(const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, const uint32_t ms_durationP); /*! \fn void rlc_um_check_timer_dar_time_out(const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP,) * \brief Check if t-Reordering expires and take the appropriate actions as described in 3GPP specifications. * \param[in] ctxt_pP Running context. * \param[in] rlc_pP RLC UM protocol instance pointer. */ -protected_rlc_um_dar( void rlc_um_check_timer_dar_time_out(const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP)); +void rlc_um_check_timer_dar_time_out(const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP); /*! \fn mem_block_t *rlc_um_remove_pdu_from_dar_buffer(rlc_um_entity_t * const rlc_pP, uint16_t snP) * \brief Remove the PDU with sequence number snP from the DAR buffer and return it. @@ -140,7 +125,7 @@ protected_rlc_um_dar( void rlc_um_check_timer_dar_time_out(const protocol_ctxt_ * \param[in] snP Sequence number. * \return The PDU stored in the DAR buffer having sequence number snP, else return NULL. */ -private_rlc_um_dar( mem_block_t *rlc_um_remove_pdu_from_dar_buffer(const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, const uint16_t snP)); +mem_block_t *rlc_um_remove_pdu_from_dar_buffer(const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, const uint16_t snP); /*! \fn mem_block_t *rlc_um_remove_pdu_from_dar_buffer(const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, const uint16_t snP) * \brief Get the PDU with sequence number snP from the DAR buffer. @@ -149,7 +134,7 @@ private_rlc_um_dar( mem_block_t *rlc_um_remove_pdu_from_dar_buffer(const protoc * \param[in] snP Sequence number. * \return The PDU stored in the DAR buffer having sequence number snP, else return NULL. */ -protected_rlc_um_dar(mem_block_t* rlc_um_get_pdu_from_dar_buffer(const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, const uint16_t snP)); +mem_block_t* rlc_um_get_pdu_from_dar_buffer(const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, const uint16_t snP); /*! \fn signed int rlc_um_in_window(const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP,rlc_sn_t lower_boundP, rlc_sn_t snP, rlc_sn_t higher_boundP) * \brief Compute if the sequence number of a PDU is in a window . @@ -160,7 +145,7 @@ protected_rlc_um_dar(mem_block_t* rlc_um_get_pdu_from_dar_buffer(const protocol_ * \param[in] higher_boundP Higher bound of a window. * \return -2 if lower_boundP > sn, -1 if higher_boundP < sn, 0 if lower_boundP < sn < higher_boundP, 1 if lower_boundP == sn, 2 if higher_boundP == sn, 3 if higher_boundP == sn == lower_boundP. */ -protected_rlc_um_dar(signed int rlc_um_in_window(const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, const rlc_sn_t lower_boundP, const rlc_sn_t snP, const rlc_sn_t higher_boundP)); +signed int rlc_um_in_window(const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, const rlc_sn_t lower_boundP, const rlc_sn_t snP, const rlc_sn_t higher_boundP); /*! \fn signed int rlc_um_in_reordering_window(const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, const rlc_sn_t snP) * \brief Compute if the sequence number of a PDU is in a window . @@ -169,7 +154,7 @@ protected_rlc_um_dar(signed int rlc_um_in_window(const protocol_ctxt_t* const ct * \param[in] snP Sequence number of a theorical PDU. * \return 0 if snP is in reordering window, else -1. */ -protected_rlc_um_dar(signed int rlc_um_in_reordering_window(const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, const rlc_sn_t snP)); +signed int rlc_um_in_reordering_window(const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, const rlc_sn_t snP); /*! \fn void rlc_um_receive_process_dar (const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, mem_block_t *pdu_mem_pP,rlc_um_pdu_sn_10_t * const pdu_pP, const sdu_size_t tb_sizeP) * \brief Apply the DAR process for a PDU: put it in DAR buffer and try to reassembly or discard it. @@ -179,7 +164,7 @@ protected_rlc_um_dar(signed int rlc_um_in_reordering_window(const protocol_ctxt_ * \param[in] pdu_pP Pointer on the header of the UM PDU. * \param[in] tb_sizeP Size of the UM PDU. */ -protected_rlc_um_dar(void rlc_um_receive_process_dar (const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, mem_block_t * pdu_mem_pP,rlc_um_pdu_sn_10_t * const pdu_pP, - const sdu_size_t tb_sizeP)); +void rlc_um_receive_process_dar (const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t * const rlc_pP, mem_block_t * pdu_mem_pP,rlc_um_pdu_sn_10_t * const pdu_pP, + const sdu_size_t tb_sizeP); /** @} */ # endif diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.c index bc61ed302e..b8ac29fca4 100644 --- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.c +++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.c @@ -25,7 +25,7 @@ //----------------------------------------------------------------------------- #include "rlc_um.h" #include "LAYER2/MAC/mac_extern.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" //----------------------------------------------------------------------------- @@ -52,7 +52,7 @@ rlc_um_fsm_notify_event ( LOG_E(RLC, PROTOCOL_RLC_UM_CTXT_FMT" FSM WARNING PROTOCOL ERROR - EVENT %02X hex NOT EXPECTED FROM NULL_STATE\n", PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP, rlc_pP), eventP); - AssertFatal(1==0,"RLC-UM FSM WARNING PROTOCOL ERROR - EVENT NOT EXPECTED FROM NULL_STATE"); + //AssertFatal(1==0,"RLC-UM FSM WARNING PROTOCOL ERROR - EVENT NOT EXPECTED FROM NULL_STATE"); return 0; } @@ -72,7 +72,7 @@ rlc_um_fsm_notify_event ( case RLC_UM_RECEIVE_CRLC_SUSPEND_REQ_EVENT: case RLC_UM_TRANSMIT_CRLC_SUSPEND_CNF_EVENT: - LOG_N(RLC, PROTOCOL_RLC_UM_CTXT_FMT" FSM RLC_DATA_TRANSFER_READY_STATE -> RLC_LOCAL_SUSPEND_STATE\n", + LOG_I(RLC, PROTOCOL_RLC_UM_CTXT_FMT" FSM RLC_DATA_TRANSFER_READY_STATE -> RLC_LOCAL_SUSPEND_STATE\n", PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP, rlc_pP)); rlc_pP->protocol_state = RLC_LOCAL_SUSPEND_STATE; return 1; @@ -93,14 +93,14 @@ rlc_um_fsm_notify_event ( case RLC_LOCAL_SUSPEND_STATE: switch (eventP) { case RLC_UM_RECEIVE_CRLC_CONFIG_REQ_ENTER_NULL_STATE_EVENT: - LOG_N(RLC, PROTOCOL_RLC_UM_CTXT_FMT" FSM RLC_LOCAL_SUSPEND_STATE -> RLC_NULL_STATE\n", + LOG_I(RLC, PROTOCOL_RLC_UM_CTXT_FMT" FSM RLC_LOCAL_SUSPEND_STATE -> RLC_NULL_STATE\n", PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP, rlc_pP)); rlc_pP->protocol_state = RLC_NULL_STATE; return 1; break; case RLC_UM_RECEIVE_CRLC_RESUME_REQ_EVENT: - LOG_N(RLC, PROTOCOL_RLC_UM_CTXT_FMT" FSM RLC_LOCAL_SUSPEND_STATE -> RLC_DATA_TRANSFER_READY_STATE\n", + LOG_I(RLC, PROTOCOL_RLC_UM_CTXT_FMT" FSM RLC_LOCAL_SUSPEND_STATE -> RLC_DATA_TRANSFER_READY_STATE\n", PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP, rlc_pP)); rlc_pP->protocol_state = RLC_DATA_TRANSFER_READY_STATE; return 1; diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.h index 1f7310803b..14ad253dcc 100644 --- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.h +++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.h @@ -35,21 +35,6 @@ # ifndef __RLC_UM_FSM_PROTO_EXTERN_H__ # define __RLC_UM_FSM_PROTO_EXTERN_H__ //----------------------------------------------------------------------------- -# ifdef RLC_UM_FSM_C -# define private_rlc_um_fsm(x) x -# define protected_rlc_um_fsm(x) x -# define public_rlc_um_fsm(x) x -# else -# ifdef RLC_UM_MODULE -# define private_rlc_um_fsm(x) -# define protected_rlc_um_fsm(x) extern x -# define public_rlc_um_fsm(x) extern x -# else -# define private_rlc_um_fsm(x) -# define protected_rlc_um_fsm(x) -# define public_rlc_um_fsm(x) extern x -# endif -# endif # include "platform_types.h" # include "rlc_um_entity.h" //----------------------------------------------------------------------------- @@ -65,6 +50,6 @@ * \return 1 if no error was encountered, 0 if the event was not processed. * \Note This FSM is not LTE 9.3.0 compliant, it has to be modified or removed. */ -protected_rlc_um_fsm(int rlc_um_fsm_notify_event (const protocol_ctxt_t* const ctxtP, rlc_um_entity_t *rlcP, uint8_t eventP)); +int rlc_um_fsm_notify_event (const protocol_ctxt_t* const ctxtP, rlc_um_entity_t *rlcP, uint8_t eventP); /** @} */ # endif diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.c index 65aaadb9fa..2eba223803 100644 --- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.c +++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.c @@ -34,7 +34,7 @@ #include "rlc_primitives.h" #include "list.h" #include "LAYER2/MAC/mac_extern.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "msc.h" //----------------------------------------------------------------------------- diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.h index 95aac89623..defdd1364e 100644 --- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.h +++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.h @@ -35,21 +35,6 @@ # ifndef __RLC_UM_REASSEMBLY_PROTO_EXTERN_H__ # define __RLC_UM_REASSEMBLY_PROTO_EXTERN_H__ //----------------------------------------------------------------------------- -# ifdef RLC_UM_REASSEMBLY_C -# define private_rlc_um_reassembly(x) x -# define protected_rlc_um_reassembly(x) x -# define public_rlc_um_reassembly(x) x -# else -# ifdef RLC_UM_MODULE -# define private_rlc_um_reassembly(x) -# define protected_rlc_um_reassembly(x) extern x -# define public_rlc_um_reassembly(x) extern x -# else -# define private_rlc_um_reassembly(x) -# define protected_rlc_um_reassembly(x) -# define public_rlc_um_reassembly(x) extern x -# endif -# endif # include "rlc_um_entity.h" //----------------------------------------------------------------------------- /*! \fn void rlc_um_clear_rx_sdu (const protocol_ctxt_t* const ctxtP, rlc_um_entity_t *rlcP) @@ -57,7 +42,7 @@ * \param[in] ctxtP Running context. * \param[in] rlcP RLC UM protocol instance pointer. */ -protected_rlc_um_reassembly(void rlc_um_clear_rx_sdu (const protocol_ctxt_t* const ctxtP, rlc_um_entity_t *rlcP)); +void rlc_um_clear_rx_sdu (const protocol_ctxt_t* const ctxtP, rlc_um_entity_t *rlcP); /*! \fn void rlc_um_reassembly (uint8_t * srcP, int32_t lengthP, rlc_um_entity_t *rlcP, frame_t frame) * \brief Reassembly lengthP bytes to the end of the SDU in construction. @@ -66,13 +51,13 @@ protected_rlc_um_reassembly(void rlc_um_clear_rx_sdu (const protocol_ctxt_t* con * \param[in] srcP Pointer on data to be reassemblied. * \param[in] lengthP Length to reassembly. */ -protected_rlc_um_reassembly(void rlc_um_reassembly (const protocol_ctxt_t* const ctxtP, rlc_um_entity_t *rlcP, uint8_t * srcP, int32_t lengthP)); +void rlc_um_reassembly (const protocol_ctxt_t* const ctxtP, rlc_um_entity_t *rlcP, uint8_t * srcP, int32_t lengthP); /*! \fn void rlc_um_send_sdu (const protocol_ctxt_t* const ctxtP, rlc_um_entity_t *rlcP) * \brief Send SDU if any reassemblied to upper layer. * \param[in] ctxtP Running context. * \param[in] rlcP RLC UM protocol instance pointer. */ -protected_rlc_um_reassembly(void rlc_um_send_sdu (const protocol_ctxt_t* const ctxtP, rlc_um_entity_t *rlcP)); +void rlc_um_send_sdu (const protocol_ctxt_t* const ctxtP, rlc_um_entity_t *rlcP); /** @} */ # endif diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.c index 37608d4330..b6ab367bc1 100644 --- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.c +++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.c @@ -29,7 +29,7 @@ #include "rlc_primitives.h" #include "mac_primitives.h" #include "list.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" //----------------------------------------------------------------------------- void @@ -40,7 +40,7 @@ rlc_um_display_rx_window( { unsigned long sn = 0; unsigned long end_sn = 0; - char str[4]; + LOG_USEDINLOG_VAR(char,str[4]); char time_out_str[11]; int str_index; char color[32]; diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.h index 5e93f272fd..84df8ac77c 100644 --- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.h +++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.h @@ -33,22 +33,6 @@ */ # ifndef __RLC_UM_RECEIVER_PROTO_EXTERN_H__ # define __RLC_UM_RECEIVER_PROTO_EXTERN_H__ -# ifdef RLC_UM_RECEIVER_C -# define private_rlc_um_receiver(x) x -# define protected_rlc_um_receiver(x) x -# define public_rlc_um_receiver(x) x -# else -# ifdef RLC_UM_MODULE -# define private_rlc_um_receiver(x) -# define protected_rlc_um_receiver(x) extern x -# define public_rlc_um_receiver(x) extern x -# else -# define private_rlc_um_receiver(x) -# define protected_rlc_um_receiver(x) -# define public_rlc_um_receiver(x) extern x -# endif -# endif - # include "rlc_um_entity.h" # include "mac_primitives.h" @@ -57,7 +41,7 @@ * \param[in] ctxtP Running context. * \param[in] rlc_pP RLC UM protocol instance pointer. */ -protected_rlc_um_receiver( void rlc_um_display_rx_window(const protocol_ctxt_t* const ctxtP, rlc_um_entity_t * const rlc_pP);) +void rlc_um_display_rx_window(const protocol_ctxt_t* const ctxtP, rlc_um_entity_t * const rlc_pP); /*! \fn void rlc_um_receive (const protocol_ctxt_t* const ctxtP, rlc_um_entity_t * const rlc_pP, struct mac_data_ind data_indP) * \brief Handle the MAC data indication, retreive the transport blocks and send them one by one to the DAR process. @@ -65,6 +49,6 @@ protected_rlc_um_receiver( void rlc_um_display_rx_window(const protocol_ctxt_t* * \param[in] rlc_pP RLC UM protocol instance pointer. * \param[in] data_indP Data indication structure containing transport block received from MAC layer. */ -protected_rlc_um_receiver( void rlc_um_receive (const protocol_ctxt_t* const ctxtP, rlc_um_entity_t * const rlc_pP, struct mac_data_ind data_indP)); +void rlc_um_receive (const protocol_ctxt_t* const ctxtP, rlc_um_entity_t * const rlc_pP, struct mac_data_ind data_indP); /** @} */ # endif diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.c index 98a44ceeeb..932bb1376e 100644 --- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.c +++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.c @@ -31,7 +31,7 @@ #include "list.h" #include "rlc_um.h" #include "rlc_primitives.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" //----------------------------------------------------------------------------- void @@ -411,7 +411,11 @@ rlc_um_segment_10 (const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t *rlc_pP #if TRACE_RLC_PAYLOAD rlc_util_print_hex_octets(RLC, pdu_mem_p->data, data_pdu_size); #endif - AssertFatal( pdu_tb_req_p->tb_size > 0 , "SEGMENT10: FINAL RLC UM PDU LENGTH %d", pdu_tb_req_p->tb_size); + //AssertFatal( pdu_tb_req_p->tb_size > 0 , "SEGMENT10: FINAL RLC UM PDU LENGTH %d", pdu_tb_req_p->tb_size); + if(pdu_tb_req_p->tb_size <= 0) { + LOG_E(RLC, "SEGMENT10: FINAL RLC UM PDU LENGTH %d\n", pdu_tb_req_p->tb_size); + break; + } pdu_p = NULL; pdu_mem_p = NULL; @@ -744,13 +748,11 @@ rlc_um_segment_5 (const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t *rlc_pP) sdu_mngt_p = NULL; } else { -#if TRACE_RLC_UM_SEGMENT - LOG_D(RLC, PROTOCOL_RLC_UM_CTXT_FMT" Filling PDU with %d all remaining bytes of SDU and reduce TB size by %d bytes\n", + LOG_E(RLC, PROTOCOL_RLC_UM_CTXT_FMT" Filling PDU with %d all remaining bytes of SDU and reduce TB size by %d bytes\n", PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP,rlc_pP), sdu_mngt_p->sdu_remaining_size, pdu_remaining_size - sdu_mngt_p->sdu_remaining_size); -#endif - assert(1!=1); + //assert(1!=1); memcpy(data, data_sdu_p, sdu_mngt_p->sdu_remaining_size); // reduce the size of the PDU continue_fill_pdu_with_sdu = 0; @@ -792,7 +794,11 @@ rlc_um_segment_5 (const protocol_ctxt_t* const ctxt_pP, rlc_um_entity_t *rlc_pP) #if TRACE_RLC_PAYLOAD rlc_util_print_hex_octets(RLC, (unsigned char*)pdu_mem_p->data, data_pdu_size); #endif - AssertFatal( pdu_tb_req_p->tb_size > 0 , "SEGMENT5: FINAL RLC UM PDU LENGTH %d", pdu_tb_req_p->tb_size); + //AssertFatal( pdu_tb_req_p->tb_size > 0 , "SEGMENT5: FINAL RLC UM PDU LENGTH %d", pdu_tb_req_p->tb_size); + if(pdu_tb_req_p->tb_size <= 0) { + LOG_E(RLC, "SEGMENT5: FINAL RLC UM PDU LENGTH %d\n", pdu_tb_req_p->tb_size); + break; + } pdu_p = NULL; pdu_mem_p = NULL; diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.h index 9794f9a502..0d52f1a896 100644 --- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.h +++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.h @@ -40,27 +40,12 @@ # include "rlc_um_constants.h" # include "list.h" //----------------------------------------------------------------------------- -# ifdef RLC_UM_SEGMENT_C -# define private_rlc_um_segment(x) x -# define protected_rlc_um_segment(x) x -# define public_rlc_um_segment(x) x -# else -# ifdef RLC_UM_MODULE -# define private_rlc_um_segment(x) -# define protected_rlc_um_segment(x) extern x -# define public_rlc_um_segment(x) extern x -# else -# define private_rlc_um_segment(x) -# define protected_rlc_um_segment(x) -# define public_rlc_um_segment(x) extern x -# endif -# endif /*! \fn void rlc_um_segment_10 (const protocol_ctxt_t* const ctxtP, rlc_um_entity_t *rlcP) * \brief Segmentation procedure with 10 bits sequence number, segment the first SDU in buffer and create a PDU of the size (nb_bytes_to_transmit) requested by MAC if possible and put it in the list "pdus_to_mac_layer". * \param[in] ctxtP Running context. * \param[in] rlcP RLC UM protocol instance pointer. */ -protected_rlc_um_segment(void rlc_um_segment_10 (const protocol_ctxt_t* const ctxtP, rlc_um_entity_t *rlcP)); +void rlc_um_segment_10 (const protocol_ctxt_t* const ctxtP, rlc_um_entity_t *rlcP); /*! \fn void rlc_um_segment_5 (const protocol_ctxt_t* const ctxtP, rlc_um_entity_t *rlcP) @@ -68,6 +53,6 @@ protected_rlc_um_segment(void rlc_um_segment_10 (const protocol_ctxt_t* const ct * \param[in] ctxtP Running context. * \param[in] rlcP RLC UM protocol instance pointer. */ -protected_rlc_um_segment(void rlc_um_segment_5 (const protocol_ctxt_t* const ctxtP, rlc_um_entity_t *rlcP)); +void rlc_um_segment_5 (const protocol_ctxt_t* const ctxtP, rlc_um_entity_t *rlcP); /** @} */ # endif diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.c index 2c1fa9333f..4d238ea841 100644 --- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.c +++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.c @@ -317,7 +317,7 @@ void rlc_um_v9_3_0_test_send_sdu(rlc_um_entity_t *um_txP, int sdu_indexP) assert(g_send_id_write_index[um_txP->rb_id] < TEST_MAX_SEND_SDU); } else { printf("Out of memory error\n"); - exit(-1); +// exit(-1); } } @@ -406,9 +406,8 @@ void rlc_um_v9_3_0_test_mac_rlc_loop (struct mac_data_ind* data_indP, struct ma if (*drop_countP == 0) { tb_dst = get_free_mem_block(sizeof (mac_rlc_max_rx_header_size_t) + tb_size, __func__); - memset(tb_dst->data, 0, sizeof (mac_rlc_max_rx_header_size_t) + tb_size); - if (tb_dst != NULL) { + memset(tb_dst->data, 0, sizeof (mac_rlc_max_rx_header_size_t) + tb_size); //printf("[RLC-LOOP] Testing tb_dst (1)\n"); check_free_mem_block(tb_dst, __func__); tb_dst->next = NULL; @@ -427,7 +426,7 @@ void rlc_um_v9_3_0_test_mac_rlc_loop (struct mac_data_ind* data_indP, struct ma check_free_mem_block(tb_dst, __func__); } else { printf("Out of memory error\n"); - exit(-1); +// exit(-1); } } else { printf("[RLC-LOOP] DROPPING 1 TB\n"); diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.h index 2c874b8d24..6da464aa28 100644 --- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.h +++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.h @@ -21,37 +21,22 @@ # ifndef __RLC_UM_TEST_H__ # define __RLC_UM_TEST_H__ -# ifdef RLC_UM_TEST_C -# define private_rlc_um_test(x) x -# define protected_rlc_um_test(x) x -# define public_rlc_um_test(x) x -# else -# ifdef RLC_UM_MODULE -# define private_rlc_um_test(x) -# define protected_rlc_um_test(x) extern x -# define public_rlc_um_test(x) extern x -# else -# define private_rlc_um_test(x) -# define protected_rlc_um_test(x) -# define public_rlc_um_test(x) extern x -# endif -# endif -public_rlc_um_test(rlc_um_entity_t um_tx;) -public_rlc_um_test(rlc_um_entity_t um_rx;) +rlc_um_entity_t um_tx; +rlc_um_entity_t um_rx; -protected_rlc_um_test(void rlc_um_v9_3_0_test_windows_5(void);) -protected_rlc_um_test(void rlc_um_v9_3_0_test_windows_10(void);) -protected_rlc_um_test(void rlc_um_v9_3_0_test_data_conf(module_id_t module_idP, rb_id_t rb_idP, mui_t muiP, rlc_tx_status_t statusP);) -protected_rlc_um_test(void rlc_um_v9_3_0_test_send_sdu(rlc_um_entity_t *um_txP, int sdu_indexP);) -protected_rlc_um_test(void rlc_um_v9_3_0_test_exchange_pdus(rlc_um_entity_t *um_txP,rlc_um_entity_t *um_RxP, uint16_t bytes_txP,uint16_t bytes_rxP);) -protected_rlc_um_test(void rlc_um_v9_3_0_test_exchange_delayed_pdus(rlc_um_entity_t *um_txP, rlc_um_entity_t *um_rxP, uint16_t bytes_txP, uint16_t bytes_rxP, signed int time_tx_delayedP, - signed int time_rx_delayedP, int is_frame_incrementedP);) -protected_rlc_um_test(void rlc_um_v9_3_0_buffer_delayed_rx_mac_data_ind(struct mac_data_ind* data_ind_rxP, signed int time_tx_delayedP);) -protected_rlc_um_test(void rlc_um_v9_3_0_test_mac_rlc_loop (struct mac_data_ind *data_indP, struct mac_data_req *data_requestP, int* drop_countP, int *tx_packetsP, int* dropped_tx_packetsP);) -protected_rlc_um_test(void rlc_um_v9_3_0_test_data_ind (module_id_t module_idP, rb_id_t rb_idP, sdu_size_t sizeP, - mem_block_t *sduP);) -protected_rlc_um_test(void rlc_um_v9_3_0_test_tx_rx_10(void);) -protected_rlc_um_test(void rlc_um_v9_3_0_test_tx_rx_5(void);) -public_rlc_um_test( void rlc_um_v9_3_0_test_print_trace (void);) -public_rlc_um_test( void rlc_um_v9_3_0_test(void)); +void rlc_um_v9_3_0_test_windows_5(void); +void rlc_um_v9_3_0_test_windows_10(void); +void rlc_um_v9_3_0_test_data_conf(module_id_t module_idP, rb_id_t rb_idP, mui_t muiP, rlc_tx_status_t statusP); +void rlc_um_v9_3_0_test_send_sdu(rlc_um_entity_t *um_txP, int sdu_indexP); +void rlc_um_v9_3_0_test_exchange_pdus(rlc_um_entity_t *um_txP,rlc_um_entity_t *um_RxP, uint16_t bytes_txP,uint16_t bytes_rxP); +void rlc_um_v9_3_0_test_exchange_delayed_pdus(rlc_um_entity_t *um_txP, rlc_um_entity_t *um_rxP, uint16_t bytes_txP, uint16_t bytes_rxP, signed int time_tx_delayedP, + signed int time_rx_delayedP, int is_frame_incrementedP); +void rlc_um_v9_3_0_buffer_delayed_rx_mac_data_ind(struct mac_data_ind* data_ind_rxP, signed int time_tx_delayedP); +void rlc_um_v9_3_0_test_mac_rlc_loop (struct mac_data_ind *data_indP, struct mac_data_req *data_requestP, int* drop_countP, int *tx_packetsP, int* dropped_tx_packetsP); +void rlc_um_v9_3_0_test_data_ind (module_id_t module_idP, rb_id_t rb_idP, sdu_size_t sizeP, + mem_block_t *sduP); +void rlc_um_v9_3_0_test_tx_rx_10(void); +void rlc_um_v9_3_0_test_tx_rx_5(void); +void rlc_um_v9_3_0_test_print_trace (void); +void rlc_um_v9_3_0_test(void); # endif diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.h index 261183ad1d..598518f1c8 100644 --- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.h +++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.h @@ -37,21 +37,6 @@ # include "rlc_um_structs.h" # include "rlc_um_constants.h" //----------------------------------------------------------------------------- -# ifdef RLC_UM_VERY_SIMPLE_TEST_C -# define private_rlc_um_very_simple_test(x) x -# define protected_rlc_um_very_simple_test(x) x -# define public_rlc_um_very_simple_test(x) x -# else -# ifdef RLC_UM_MODULE -# define private_rlc_um_very_simple_test(x) -# define protected_rlc_um_very_simple_test(x) extern x -# define public_rlc_um_very_simple_test(x) extern x -# else -# define private_rlc_um_very_simple_test(x) -# define protected_rlc_um_very_simple_test(x) -# define public_rlc_um_very_simple_test(x) extern x -# endif -# endif #define RLC_UM_TEST_SDU_TYPE_TCPIP 0 #define RLC_UM_TEST_SDU_TYPE_VOIP 1 #define RLC_UM_TEST_SDU_TYPE_SMALL 2 @@ -61,5 +46,5 @@ #define voip_sdu "Nos tests montrent que le nouveau Toshiba MK7559GSXP, un disque dur de 750 Go" #define very_small_sdu "NoS tEsTs MoNtReNt" -public_rlc_um_very_simple_test(void rlc_um_test_send_sdu (rlc_um_entity_t* rlcP, uint32_t frame, unsigned int sdu_typeP)); +void rlc_um_test_send_sdu (rlc_um_entity_t* rlcP, uint32_t frame, unsigned int sdu_typeP); # endif diff --git a/openair2/LAYER2/RLC/rlc.c b/openair2/LAYER2/RLC/rlc.c index 99a0b494ac..846d406319 100644 --- a/openair2/LAYER2/RLC/rlc.c +++ b/openair2/LAYER2/RLC/rlc.c @@ -30,9 +30,10 @@ #include "rlc.h" #include "mem_block.h" #include "../MAC/mac_extern.h" -#include "UTIL/LOG/log.h" +#include "LAYER2/RLC/UM_v9.3.0/rlc_um.h" +#include "common/utils/LOG/log.h" #include "UTIL/OCG/OCG_vars.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "assertions.h" @@ -135,7 +136,12 @@ rlc_op_status_t rlc_stat_req ( hash_key_t key = HASHTABLE_NOT_A_KEY_VALUE; hashtable_rc_t h_rc; - AssertFatal (rb_idP < NB_RB_MAX, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MAX); + //AssertFatal (rb_idP < NB_RB_MAX, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MAX); + if(rb_idP >= NB_RB_MAX){ + LOG_E(RLC, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MAX); + return RLC_OP_STATUS_BAD_PARAMETER; + } + key = RLC_COLL_KEY_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, srb_flagP); h_rc = hashtable_get(rlc_coll_p, key, (void**)&rlc_union_p); @@ -221,8 +227,7 @@ rlc_op_status_t rlc_stat_req ( *stat_rx_data_bytes_out_of_window = 0; *stat_timer_poll_retransmit_timed_out = 0; *stat_timer_status_prohibit_timed_out = 0; - rlc_um_stat_req (ctxt_pP, - &rlc_union_p->rlc.um, + rlc_um_stat_req (&rlc_union_p->rlc.um, stat_tx_pdcp_sdu, stat_tx_pdcp_bytes, stat_tx_pdcp_sdu_discarded, @@ -315,7 +320,7 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t* const ctxt_pP, confirm_t confirmP, sdu_size_t sdu_sizeP, mem_block_t *sdu_pP -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,const uint32_t * const sourceL2Id ,const uint32_t * const destinationL2Id #endif @@ -353,13 +358,30 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t* const ctxt_pP, #endif if (MBMS_flagP) { - AssertFatal (rb_idP < NB_RB_MBMS_MAX, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MBMS_MAX); + //AssertFatal (rb_idP < NB_RB_MBMS_MAX, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MBMS_MAX); + if(rb_idP >= NB_RB_MBMS_MAX){ + LOG_E(RLC, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MBMS_MAX); + return RLC_OP_STATUS_BAD_PARAMETER; + } } else { - AssertFatal (rb_idP < NB_RB_MAX, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MAX); + //AssertFatal (rb_idP < NB_RB_MAX, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MAX); + if(rb_idP >= NB_RB_MAX){ + LOG_E(RLC, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MAX); + return RLC_OP_STATUS_BAD_PARAMETER; + } } - DevAssert(sdu_pP != NULL); - DevCheck(sdu_sizeP > 0, sdu_sizeP, 0, 0); + //DevAssert(sdu_pP != NULL); + if(sdu_pP == NULL){ + LOG_E(RLC, "sdu_pP == NULL\n"); + return RLC_OP_STATUS_BAD_PARAMETER; + } + + //DevCheck(sdu_sizeP > 0, sdu_sizeP, 0, 0); + if(sdu_sizeP <= 0) { + LOG_E(RLC, "sdu_sizeP %d, file %s, line %d\n", sdu_sizeP, __FILE__ ,__LINE__); + return RLC_OP_STATUS_BAD_PARAMETER; + } #if (RRC_VERSION < MAKE_VERSION(10, 0, 0)) DevCheck(MBMS_flagP == 0, MBMS_flagP, 0, 0); @@ -396,6 +418,8 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t* const ctxt_pP, } else { rlc_mode = RLC_MODE_NONE; //AssertFatal (0 , "RLC not configured key %ju\n", key); + LOG_E(RLC, "not configured key %lu\n", key); + return RLC_OP_STATUS_OUT_OF_RESSOURCES; } if (MBMS_flagP == 0) { @@ -440,6 +464,7 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t* const ctxt_pP, return RLC_OP_STATUS_OK; } else { VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_REQ,VCD_FUNCTION_OUT); + free_mem_block(sdu_pP, __func__); return RLC_OP_STATUS_INTERNAL_ERROR; } @@ -473,6 +498,7 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t* const ctxt_pP, return RLC_OP_STATUS_OK; } else { VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_REQ,VCD_FUNCTION_OUT); + free_mem_block(sdu_pP, __func__); return RLC_OP_STATUS_INTERNAL_ERROR; } @@ -495,6 +521,7 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t* const ctxt_pP, } else { //handle_event(ERROR,"FILE %s FONCTION rlc_data_req() LINE %s : out of memory\n", __FILE__, __LINE__); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_REQ,VCD_FUNCTION_OUT); + free_mem_block(sdu_pP, __func__); return RLC_OP_STATUS_INTERNAL_ERROR; } @@ -529,6 +556,7 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t* const ctxt_pP, return RLC_OP_STATUS_OK; } else { VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_REQ,VCD_FUNCTION_OUT); + free_mem_block(sdu_pP, __func__); return RLC_OP_STATUS_BAD_PARAMETER; } } else { @@ -622,7 +650,11 @@ rlc_module_init (void) rlc_rrc_data_conf = NULL; rlc_coll_p = hashtable_create ((maxDRB + 2) * 16, NULL, rb_free_rlc_union); - AssertFatal(rlc_coll_p != NULL, "UNRECOVERABLE error, RLC hashtable_create failed"); + //AssertFatal(rlc_coll_p != NULL, "UNRECOVERABLE error, RLC hashtable_create failed"); + if(rlc_coll_p == NULL) { + LOG_E(RLC, "UNRECOVERABLE error, RLC hashtable_create failed\n"); + return -1; + } for (module_id1=0; module_id1 < MAX_MOBILES_PER_ENB; module_id1++) { #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) diff --git a/openair2/LAYER2/RLC/rlc.h b/openair2/LAYER2/RLC/rlc.h index e3787d8417..ff49b2d056 100644 --- a/openair2/LAYER2/RLC/rlc.h +++ b/openair2/LAYER2/RLC/rlc.h @@ -44,8 +44,8 @@ # include "rlc_am_structs.h" # include "rlc_tm_structs.h" # include "rlc_um_structs.h" -# include "asn1_constants.h" -# include "UTIL/LOG/log.h" +# include "asn_constant.h" +# include "common/utils/LOG/log.h" # include "mem_block.h" //# include "PHY/defs.h" # include "RLC-Config.h" @@ -59,49 +59,8 @@ #include "PMCH-InfoList-r9.h" #endif -#ifdef CMAKER typedef uint64_t hash_key_t; #define HASHTABLE_NOT_A_KEY_VALUE ((uint64_t)-1) -#endif -//----------------------------------------------------------------------------- -# ifdef RLC_MAC_C -# define private_rlc_mac(x) x -# define public_rlc_mac(x) x -# else -# define private_rlc_mac(x) -# define public_rlc_mac(x) extern x -# endif - -# ifdef RLC_MPLS_C -# define private_rlc_mpls(x) x -# define public_rlc_mpls(x) x -# else -# define private_rlc_mpls(x) -# define public_rlc_mpls(x) extern x -# endif - -# ifdef RLC_RRC_C -# define private_rlc_rrc(x) x -# define public_rlc_rrc(x) x -# else -# define private_rlc_rrc(x) -# define public_rlc_rrc(x) extern x -# endif - -# ifdef RLC_C -# define private_rlc(x) x -# define protected_rlc(x) x -# define public_rlc(x) x -# else -# define private_rlc(x) -# if defined(RLC_MAC_C) || defined(RLC_MPLS_C) || defined(RLC_RRC_C) || defined(RLC_AM_C) || defined(RLC_TM_C) || defined(RLC_UM_C) || defined (PDCP_C) -# define protected_rlc(x) extern x -# else -# define protected_rlc(x) -# endif -# define public_rlc(x) extern x -# endif - //----------------------------------------------------------------------------- #define RLC_OP_STATUS_OK 1 @@ -176,17 +135,17 @@ typedef struct { #define RLC_MAX_MBMS_LC (maxSessionPerPMCH * maxServiceCount) #define RLC_MAX_LC ((max_val_DRB_Identity+1)* MAX_MOBILES_PER_ENB) -protected_rlc(void (*rlc_rrc_data_ind)( +void (*rlc_rrc_data_ind)( const protocol_ctxt_t* const ctxtP, const rb_id_t rb_idP, const sdu_size_t sdu_sizeP, - const uint8_t * const sduP);) + const uint8_t * const sduP); -protected_rlc(void (*rlc_rrc_data_conf)( +void (*rlc_rrc_data_conf)( const protocol_ctxt_t* const ctxtP, const rb_id_t rb_idP, const mui_t muiP, - const rlc_tx_status_t statusP);) + const rlc_tx_status_t statusP); typedef void (rrc_data_ind_cb_t)( const protocol_ctxt_t* const ctxtP, @@ -234,10 +193,10 @@ typedef struct rlc_mbms_id_s { # define maxSessionPerPMCH 1 # endif #endif -//public_rlc(rlc_mbms_t rlc_mbms_array_ue[MAX_MOBILES_PER_ENB][maxServiceCount][maxSessionPerPMCH];) // some constants from openair2/RRC/LITE/MESSAGES/asn1_constants.h -//public_rlc(rlc_mbms_t rlc_mbms_array_eNB[NUMBER_OF_eNB_MAX][maxServiceCount][maxSessionPerPMCH];) // some constants from openair2/RRC/LITE/MESSAGES/asn1_constants.h -public_rlc(rlc_mbms_id_t rlc_mbms_lcid2service_session_id_ue[MAX_MOBILES_PER_ENB][RLC_MAX_MBMS_LC];) // some constants from openair2/RRC/LITE/MESSAGES/asn1_constants.h -public_rlc(rlc_mbms_id_t rlc_mbms_lcid2service_session_id_eNB[MAX_eNB][RLC_MAX_MBMS_LC];) // some constants from openair2/RRC/LITE/MESSAGES/asn1_constants.h +//rlc_mbms_t rlc_mbms_array_ue[MAX_MOBILES_PER_ENB][maxServiceCount][maxSessionPerPMCH]; // some constants from openair2/RRC/LTE/MESSAGES/asn1_constants.h +//rlc_mbms_t rlc_mbms_array_eNB[NUMBER_OF_eNB_MAX][maxServiceCount][maxSessionPerPMCH]; // some constants from openair2/RRC/LTE/MESSAGES/asn1_constants.h +rlc_mbms_id_t rlc_mbms_lcid2service_session_id_ue[MAX_MOBILES_PER_ENB][RLC_MAX_MBMS_LC]; // some constants from openair2/RRC/LTE/MESSAGES/asn1_constants.h +rlc_mbms_id_t rlc_mbms_lcid2service_session_id_eNB[MAX_eNB][RLC_MAX_MBMS_LC]; // some constants from openair2/RRC/LTE/MESSAGES/asn1_constants.h #define rlc_mbms_enb_get_lcid_by_rb_id(Enb_mOD,rB_iD) rlc_mbms_rbid2lcid_eNB[Enb_mOD][rB_iD] ; @@ -253,8 +212,8 @@ public_rlc(rlc_mbms_id_t rlc_mbms_lcid2service_session_id_eNB[MAX_eNB][RL rlc_mbms_rbid2lcid_ue[uE_mOD][rB_iD] = lOG_cH_iD; \ } while (0); -public_rlc(logical_chan_id_t rlc_mbms_rbid2lcid_ue [MAX_MOBILES_PER_ENB][NB_RB_MBMS_MAX];) /*!< \brief Pairing logical channel identifier with radio bearer identifer. */ -public_rlc(logical_chan_id_t rlc_mbms_rbid2lcid_eNB[MAX_eNB][NB_RB_MBMS_MAX];) /*!< \brief Pairing logical channel identifier with radio bearer identifer. */ +logical_chan_id_t rlc_mbms_rbid2lcid_ue [MAX_MOBILES_PER_ENB][NB_RB_MBMS_MAX]; /*!< \brief Pairing logical channel identifier with radio bearer identifer. */ +logical_chan_id_t rlc_mbms_rbid2lcid_eNB[MAX_eNB][NB_RB_MBMS_MAX]; /*!< \brief Pairing logical channel identifier with radio bearer identifer. */ #define RLC_COLL_KEY_VALUE(eNB_iD, rNTI, iS_eNB, rB_iD, iS_sRB) \ @@ -302,7 +261,7 @@ public_rlc(logical_chan_id_t rlc_mbms_rbid2lcid_eNB[MAX_eNB][NB_RB_MBMS_MAX]; (((hash_key_t)(sESSION_ID)) << 37) | \ (((hash_key_t)(0x0000000000000001)) << 63)) -public_rlc(hash_table_t *rlc_coll_p;) +hash_table_t *rlc_coll_p; /*! \fn tbs_size_t mac_rlc_serialize_tb (char* bufferP, list_t transport_blocksP) * \brief Serialize a list of transport blocks coming from RLC in order to be processed by MAC. @@ -310,7 +269,7 @@ public_rlc(hash_table_t *rlc_coll_p;) * \param[in] transport_blocksP List of transport blocks. * \return The amount of bytes that have been written due to serialization. */ -private_rlc_mac(tbs_size_t mac_rlc_serialize_tb (char*, list_t);) +tbs_size_t mac_rlc_serialize_tb (char*, list_t); /*! \fn struct mac_data_ind mac_rlc_deserialize_tb (char* bufferP, tb_size_t tb_sizeP, num_tb_t num_tbP, crc_t *crcsP) * \brief Serialize a list of transport blocks coming from RLC in order to be processed by MAC. @@ -320,7 +279,7 @@ private_rlc_mac(tbs_size_t mac_rlc_serialize_tb (char*, list_t);) * \param[in] crcsP Array of CRC for each transport block. * \return A mac_data_ind structure containing a list of transport blocks. */ -private_rlc_mac(struct mac_data_ind mac_rlc_deserialize_tb (char*, tb_size_t, num_tb_t, crc_t *);) +struct mac_data_ind mac_rlc_deserialize_tb (char*, tb_size_t, num_tb_t, crc_t *); //----------------------------------------------------------------------------- @@ -336,14 +295,14 @@ private_rlc_mac(struct mac_data_ind mac_rlc_deserialize_tb (char*, tb_size_t, * \param[in] pmch_info_listP eMBMS pmch info list to be created. * \return A status about the processing, OK or error code. */ -public_rlc_rrc( rlc_op_status_t rrc_rlc_config_asn1_req ( +rlc_op_status_t rrc_rlc_config_asn1_req ( const protocol_ctxt_t* const, const SRB_ToAddModList_t* const , const DRB_ToAddModList_t* const , const DRB_ToReleaseList_t* const , const PMCH_InfoList_r9_t * const pmch_info_listP , const uint32_t , - const uint32_t );) + const uint32_t ); #else /*! \fn rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t* const ctxtP, const SRB_ToAddModList_t* const srb2add_listP, const DRB_ToAddModList_t* const drb2add_listP, const DRB_ToReleaseList_t* const drb2release_listP) * \brief Function for RRC to configure a Radio Bearer. @@ -353,11 +312,11 @@ public_rlc_rrc( rlc_op_status_t rrc_rlc_config_asn1_req ( * \param[in] drb2release_listP DRB configuration list to be released. * \return A status about the processing, OK or error code. */ -public_rlc_rrc( rlc_op_status_t rrc_rlc_config_asn1_req ( +rlc_op_status_t rrc_rlc_config_asn1_req ( const protocol_ctxt_t* const, const SRB_ToAddModList_t* const , const DRB_ToAddModList_t* const , - const DRB_ToReleaseList_t* const );) + const DRB_ToReleaseList_t* const ); #endif @@ -366,8 +325,8 @@ public_rlc_rrc( rlc_op_status_t rrc_rlc_config_asn1_req ( * struct pointed by of the rlcu_pP parameter. Free the rlc_union_t struct also. * \param[in] rlcu_pP Pointer on the rlc_union_t struct. */ -public_rlc_rrc(void - rb_free_rlc_union (void *rlcu_pP);) +void + rb_free_rlc_union (void *rlcu_pP); /*! \fn rlc_op_status_t rrc_rlc_remove_ue (const protocol_ctxt_t* const ctxtP) @@ -375,7 +334,7 @@ public_rlc_rrc(void * \param[in] ctxtP Running context. * \return A status about the processing, OK or error code. */ -public_rlc_rrc(rlc_op_status_t rrc_rlc_remove_ue (const protocol_ctxt_t* const);) +rlc_op_status_t rrc_rlc_remove_ue (const protocol_ctxt_t* const); /*! \fn rlc_op_status_t rrc_rlc_remove_rlc (const protocol_ctxt_t* const ctxtP, const srb_flag_t srb_flagP, const MBMS_flag_t MBMS_flagP, const rb_id_t rb_idP) @@ -386,7 +345,7 @@ public_rlc_rrc(rlc_op_status_t rrc_rlc_remove_ue (const protocol_ctxt_t* const); * \param[in] rb_idP Radio bearer identifier. * \return A status about the processing, OK or error code. */ -public_rlc_rrc(rlc_op_status_t rrc_rlc_remove_rlc (const protocol_ctxt_t* const, const srb_flag_t, const MBMS_flag_t, const rb_id_t );) +rlc_op_status_t rrc_rlc_remove_rlc (const protocol_ctxt_t* const, const srb_flag_t, const MBMS_flag_t, const rb_id_t ); /*! \fn rlc_union_t* rrc_rlc_add_rlc (const protocol_ctxt_t* const ctxtP, const srb_flag_t srb_flagP, const MBMS_flag_t MBMS_flagP, const rb_id_t rb_idP, logical_chan_id_t chan_idP, rlc_mode_t rlc_modeP) * \brief Add a RLC protocol instance to a radio bearer. @@ -398,12 +357,12 @@ public_rlc_rrc(rlc_op_status_t rrc_rlc_remove_rlc (const protocol_ctxt_t* cons * \param[in] rlc_modeP Mode of RLC (AM, UM, TM). * \return A status about the processing, OK or error code. */ -private_rlc_rrc(rlc_union_t* rrc_rlc_add_rlc (const protocol_ctxt_t* const, const srb_flag_t, const MBMS_flag_t MBMS_flagP, const rb_id_t, logical_chan_id_t, rlc_mode_t -#ifdef Rel14 +rlc_union_t* rrc_rlc_add_rlc (const protocol_ctxt_t* const, const srb_flag_t, const MBMS_flag_t MBMS_flagP, const rb_id_t, logical_chan_id_t, rlc_mode_t +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,const uint32_t sourceL2Id, const uint32_t destinationL2Id #endif -);) +); /*! \fn rlc_op_status_t rrc_rlc_config_req ( const protocol_ctxt_t* const ctxtP, @@ -421,13 +380,13 @@ private_rlc_rrc(rlc_union_t* rrc_rlc_add_rlc (const protocol_ctxt_t* const * \param[in] rlc_infoP RLC configuration parameters issued from Radio Resource Manager. * \return A status about the processing, OK or error code. */ -public_rlc_rrc( rlc_op_status_t rrc_rlc_config_req ( +rlc_op_status_t rrc_rlc_config_req ( const protocol_ctxt_t* const, const srb_flag_t, const MBMS_flag_t, config_action_t, const rb_id_t, - rlc_info_t );) + rlc_info_t ); /*! \fn rlc_op_status_t rrc_rlc_data_req (const protocol_ctxt_t* const ctxtP, const MBMS_flag_t MBMS_flagP, const rb_id_t rb_idP, mui_t muiP, confirm_t confirmP, sdu_size_t sdu_sizeP, char* sduP) * \brief Function for RRC to send a SDU through a Signalling Radio Bearer. @@ -440,14 +399,14 @@ public_rlc_rrc( rlc_op_status_t rrc_rlc_config_req ( * \param[in] sduP SDU. * \return A status about the processing, OK or error code. */ -public_rlc_rrc( rlc_op_status_t rrc_rlc_data_req (const protocol_ctxt_t* const , const MBMS_flag_t, const rb_id_t, mui_t, confirm_t, sdu_size_t, char *);) +rlc_op_status_t rrc_rlc_data_req (const protocol_ctxt_t* const , const MBMS_flag_t, const rb_id_t, mui_t, confirm_t, sdu_size_t, char *); /*! \fn void rrc_rlc_register_rrc ( void (*rrc_data_indP) (const protocol_ctxt_t* const ctxtP, const rb_id_t rb_idP, sdu_size_t sdu_sizeP, char* sduP), void (*rrc_data_confP) (const protocol_ctxt_t* const ctxtP, const rb_id_t rb_idP, mui_t muiP, rlc_tx_status_t statusP) * \brief This function is called by RRC to register its DATA-INDICATE and DATA-CONFIRM handlers to RLC layer. * \param[in] rrc_data_indP Pointer on RRC data indicate function. * \param[in] rrc_data_confP Pointer on RRC data confirm callback function. */ -public_rlc_rrc(void rrc_rlc_register_rrc (rrc_data_ind_cb_t rrc_data_indP, rrc_data_conf_cb_t rrc_data_confP);) +void rrc_rlc_register_rrc (rrc_data_ind_cb_t rrc_data_indP, rrc_data_conf_cb_t rrc_data_confP); //----------------------------------------------------------------------------- // PUBLIC INTERFACE WITH MAC @@ -464,12 +423,12 @@ public_rlc_rrc(void rrc_rlc_register_rrc (rrc_data_ind_cb_t rrc_data_indP, rrc_d * \param [in,out] bufferP Memory area to fill with the bytes requested by MAC. * \return A status about the processing, OK or error code. */ -public_rlc_mac(tbs_size_t mac_rlc_data_req (const module_id_t, const rnti_t, const eNB_index_t, const frame_t, const eNB_flag_t, const MBMS_flag_t, logical_chan_id_t, const tb_size_t,char* -#ifdef Rel14 +tbs_size_t mac_rlc_data_req (const module_id_t, const rnti_t, const eNB_index_t, const frame_t, const eNB_flag_t, const MBMS_flag_t, logical_chan_id_t, const tb_size_t,char* +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,const uint32_t sourceL2Id ,const uint32_t destinationL2Id #endif -);) +); /*! \fn void mac_rlc_data_ind (const module_id_t mod_idP, const rnti_t rntiP, const frame_t frameP, const eNB_flag_t eNB_flagP, const MBMS_flag_t MBMS_flagP, logical_chan_id_t rb_idP, uint32_t frameP, char* bufferP, tb_size_t tb_sizeP, num_tb_t num_tbP, crc_t *crcs) * \brief Interface with MAC layer, deserialize the transport blocks sent by MAC, then map data indication to the RLC instance corresponding to the radio bearer identifier. @@ -484,8 +443,8 @@ public_rlc_mac(tbs_size_t mac_rlc_data_req (const module_id_t, co * \param[in] num_tbP Number of transport blocks. * \param[in] crcs Array of CRC decoding. */ -public_rlc_mac(void mac_rlc_data_ind (const module_id_t, const rnti_t, const eNB_index_t,const frame_t, const eNB_flag_t, const MBMS_flag_t, logical_chan_id_t, char*, tb_size_t, num_tb_t, - crc_t* );) +void mac_rlc_data_ind (const module_id_t, const rnti_t, const eNB_index_t,const frame_t, const eNB_flag_t, const MBMS_flag_t, logical_chan_id_t, char*, tb_size_t, num_tb_t, + crc_t* ); /*! \fn mac_rlc_status_resp_t mac_rlc_status_ind (const module_id_t mod_idP, const rnti_t rntiP, const frame_t frameP, const sub_frame_t subframeP, const eNB_flag_t eNB_flagP, const MBMS_flag_t MBMS_flagP, logical_chan_id_t rb_idP, tb_size_t tb_sizeP) * \brief Interface with MAC layer, request and set the number of bytes scheduled for transmission by the RLC instance corresponding to the radio bearer identifier. @@ -499,12 +458,12 @@ public_rlc_mac(void mac_rlc_data_ind (const module_id_t, co * \param[in] tb_sizeP Size of a transport block set in bytes. * \return The maximum number of bytes that the RLC instance can send in the next transmission sequence. */ -public_rlc_mac(mac_rlc_status_resp_t mac_rlc_status_ind (const module_id_t, const rnti_t, const eNB_index_t, const frame_t, const sub_frame_t, const eNB_flag_t, const MBMS_flag_t, logical_chan_id_t, tb_size_t -#ifdef Rel14 +mac_rlc_status_resp_t mac_rlc_status_ind (const module_id_t, const rnti_t, const eNB_index_t, const frame_t, const sub_frame_t, const eNB_flag_t, const MBMS_flag_t, logical_chan_id_t, tb_size_t +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,const uint32_t sourceL2Id ,const uint32_t destinationL2Id #endif - );) + ); /*! \fn rlc_buffer_occupancy_t mac_rlc_get_buffer_occupancy_ind(const module_id_t module_idP, const rnti_t rntiP, const eNB_index_t eNB_index, const frame_t frameP, const sub_frame_t subframeP,const eNB_flag_t enb_flagP, const logical_chan_id_t channel_idP) * \brief Interface with MAC layer, UE only: request and get the number of bytes scheduled for transmission by the RLC instance corresponding to the radio bearer identifier. @@ -516,7 +475,7 @@ public_rlc_mac(mac_rlc_status_resp_t mac_rlc_status_ind (const module_id_t, co * \param[in] channel_idP Logical Channel identifier. * \return The maximum number of bytes that the RLC instance can send in the next transmission sequence. */ -public_rlc_mac(rlc_buffer_occupancy_t mac_rlc_get_buffer_occupancy_ind(const module_id_t, const rnti_t, const eNB_index_t, const frame_t, const sub_frame_t, const eNB_flag_t, const logical_chan_id_t );) +rlc_buffer_occupancy_t mac_rlc_get_buffer_occupancy_ind(const module_id_t, const rnti_t, const eNB_index_t, const frame_t, const sub_frame_t, const eNB_flag_t, const logical_chan_id_t ); //----------------------------------------------------------------------------- // RLC methods //----------------------------------------------------------------------------- @@ -527,10 +486,10 @@ public_rlc_mac(rlc_buffer_occupancy_t mac_rlc_get_buffer_occupancy_ind(const mod * @param dataP Pointer to data buffer to be displayed * @param sizeP Number of octets in data buffer */ -public_rlc(void rlc_util_print_hex_octets( +void rlc_util_print_hex_octets( const comp_name_t componentP, unsigned char* const dataP, - const signed long sizeP);) + const signed long sizeP); @@ -546,7 +505,7 @@ public_rlc(void rlc_util_print_hex_octets( * \param[in] sduP SDU. * \return A status about the processing, OK or error code. */ -public_rlc(rlc_op_status_t rlc_data_req ( +rlc_op_status_t rlc_data_req ( const protocol_ctxt_t* const, const srb_flag_t, const MBMS_flag_t , @@ -555,11 +514,11 @@ public_rlc(rlc_op_status_t rlc_data_req ( const confirm_t , const sdu_size_t , mem_block_t * const -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,const uint32_t * const ,const uint32_t * const #endif - );) + ); /*! \fn void rlc_data_ind (const protocol_ctxt_t* const ctxtP, const srb_flag_t srb_flagP, const MBMS_flag_t MBMS_flagP, const rb_id_t rb_idP, const sdu_size_t sdu_sizeP, mem_block_t* sduP) { * \brief Interface with higher layers, route SDUs coming from RLC protocol instances to upper layer instance. @@ -570,13 +529,13 @@ public_rlc(rlc_op_status_t rlc_data_req ( * \param[in] sdu_sizeP Size of SDU in bytes. * \param[in] sduP SDU. */ -public_rlc(void rlc_data_ind( +void rlc_data_ind( const protocol_ctxt_t* const, const srb_flag_t, const MBMS_flag_t , const rb_id_t, const sdu_size_t, - mem_block_t* const);) + mem_block_t* const); /*! \fn void rlc_data_conf (const protocol_ctxt_t* const ctxtP, const srb_flag_t srb_flagP, const rb_id_t rb_idP, const mui_t muiP, const rlc_tx_status_t statusP) @@ -587,12 +546,12 @@ public_rlc(void rlc_data_ind( * \param[in] muiP Message Unit identifier. * \param[in] statusP Status of the transmission (RLC_SDU_CONFIRM_YES, RLC_SDU_CONFIRM_NO). */ -public_rlc(void rlc_data_conf( +void rlc_data_conf( const protocol_ctxt_t* const, const srb_flag_t, const rb_id_t, const mui_t, - const rlc_tx_status_t );) + const rlc_tx_status_t ); /*! \fn rlc_op_status_t rlc_stat_req ( @@ -662,7 +621,7 @@ public_rlc(void rlc_data_conf( * \param[out] stat_timer_status_prohibit_timed_out Number of times the timer "status_prohibit" has timed-out. */ -public_rlc(rlc_op_status_t rlc_stat_req ( +rlc_op_status_t rlc_stat_req ( const protocol_ctxt_t* const ctxtP, const srb_flag_t srb_flagP, const rb_id_t rb_idP, @@ -693,12 +652,12 @@ public_rlc(rlc_op_status_t rlc_stat_req ( unsigned int* const stat_rx_control_bytes, unsigned int* const stat_timer_reordering_timed_out, unsigned int* const stat_timer_poll_retransmit_timed_out, - unsigned int* const stat_timer_status_prohibit_timed_out);) + unsigned int* const stat_timer_status_prohibit_timed_out); /*! \fn int rlc_module_init(void) * \brief RAZ the memory of the RLC layer, initialize the memory pool manager (mem_block_t structures mainly used in RLC module). */ -public_rlc(int rlc_module_init(void);) +int rlc_module_init(void); /** @} */ diff --git a/openair2/LAYER2/RLC/rlc_mac.c b/openair2/LAYER2/RLC/rlc_mac.c index c4fc2872c6..dbc2d1d342 100644 --- a/openair2/LAYER2/RLC/rlc_mac.c +++ b/openair2/LAYER2/RLC/rlc_mac.c @@ -30,12 +30,13 @@ //----------------------------------------------------------------------------- #define RLC_MAC_C #include "rlc.h" +#include "LAYER2/RLC/UM_v9.3.0/rlc_um.h" #include "LAYER2/MAC/mac_extern.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "UTIL/OCG/OCG_vars.h" #include "hashtable.h" #include "assertions.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" //#define DEBUG_MAC_INTERFACE 1 @@ -127,7 +128,7 @@ tbs_size_t mac_rlc_data_req( const logical_chan_id_t channel_idP, const tb_size_t tb_sizeP, char *buffer_pP -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,const uint32_t sourceL2Id ,const uint32_t destinationL2Id #endif @@ -157,9 +158,17 @@ tbs_size_t mac_rlc_data_req( #endif // DEBUG_MAC_INTERFACE if (MBMS_flagP) { - AssertFatal (channel_idP < RLC_MAX_MBMS_LC, "channel id is too high (%u/%d)!\n", channel_idP, RLC_MAX_MBMS_LC); + //AssertFatal (channel_idP < RLC_MAX_MBMS_LC, "channel id is too high (%u/%d)!\n", channel_idP, RLC_MAX_MBMS_LC); + if(channel_idP >= RLC_MAX_MBMS_LC){ + LOG_E(RLC, "channel id is too high (%u/%d)!\n", channel_idP, RLC_MAX_MBMS_LC); + return 0; + } } else { - AssertFatal (channel_idP < NB_RB_MAX, "channel id is too high (%u/%d)!\n", channel_idP, NB_RB_MAX); + //AssertFatal (channel_idP < NB_RB_MAX, "channel id is too high (%u/%d)!\n", channel_idP, NB_RB_MAX); + if(channel_idP >= NB_RB_MAX){ + LOG_E(RLC, "channel id is too high (%u/%d)!\n", channel_idP, NB_RB_MAX); + return 0; + } } if (MBMS_flagP) { @@ -171,7 +180,7 @@ tbs_size_t mac_rlc_data_req( } } else { key = RLC_COLL_KEY_LCID_VALUE(module_idP, rntiP, enb_flagP, channel_idP, srb_flag); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) if ((sourceL2Id > 0) && (destinationL2Id > 0)) key = RLC_COLL_KEY_LCID_SOURCE_DEST_VALUE(module_idP, rntiP, enb_flagP, channel_idP, sourceL2Id, destinationL2Id, srb_flag); #endif @@ -183,7 +192,8 @@ tbs_size_t mac_rlc_data_req( rlc_mode = rlc_union_p->mode; } else { rlc_mode = RLC_MODE_NONE; - AssertFatal (0 , "RLC not configured lcid %u RNTI %x!\n", channel_idP, rntiP); + //AssertFatal (0 , "RLC not configured lcid %u RNTI %x!\n", channel_idP, rntiP); + LOG_E(RLC, "RLC not configured lcid %u RNTI %x!\n", channel_idP, rntiP); } switch (rlc_mode) { @@ -192,6 +202,7 @@ tbs_size_t mac_rlc_data_req( break; case RLC_MODE_AM: + rlc_am_mui.rrc_mui_num = 0; if (!enb_flagP) rlc_am_set_nb_bytes_requested_by_mac(&rlc_union_p->rlc.am,tb_sizeP); data_request = rlc_am_mac_data_request(&ctxt, &rlc_union_p->rlc.am,enb_flagP); ret_tb_size =mac_rlc_serialize_tb(buffer_pP, data_request.data); @@ -224,7 +235,7 @@ tbs_size_t mac_rlc_data_req( void mac_rlc_data_ind ( const module_id_t module_idP, const rnti_t rntiP, - const module_id_t eNB_index, + const eNB_index_t eNB_index, const frame_t frameP, const eNB_flag_t enb_flagP, const MBMS_flag_t MBMS_flagP, @@ -289,6 +300,7 @@ void mac_rlc_data_ind ( switch (rlc_mode) { case RLC_MODE_NONE: //handle_event(WARNING,"FILE %s FONCTION mac_rlc_data_ind() LINE %s : no radio bearer configured :%d\n", __FILE__, __LINE__, channel_idP); + list_free (&data_ind.data); break; case RLC_MODE_AM: @@ -318,7 +330,7 @@ mac_rlc_status_resp_t mac_rlc_status_ind( const MBMS_flag_t MBMS_flagP, const logical_chan_id_t channel_idP, const tb_size_t tb_sizeP -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,const uint32_t sourceL2Id ,const uint32_t destinationL2Id #endif @@ -351,25 +363,22 @@ mac_rlc_status_resp_t mac_rlc_status_ind( key = RLC_COLL_KEY_MBMS_VALUE(module_idP, rntiP, enb_flagP, mbms_id_p->service_id, mbms_id_p->session_id); } else { -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) if ((sourceL2Id > 0) && (destinationL2Id > 0)) { key = RLC_COLL_KEY_SOURCE_DEST_VALUE(module_idP, rntiP, enb_flagP, channel_idP, sourceL2Id, destinationL2Id, srb_flag); } else #endif { - //LOG_I(RLC, "Panos-D mac_rlc_status_ind 1 enb_flagP: %d, channel_idP: %d, srb_flag: %d \n", enb_flagP, channel_idP, srb_flag); key = RLC_COLL_KEY_LCID_VALUE(module_idP, rntiP, enb_flagP, channel_idP, srb_flag); } } - //LOG_I(RLC, "Panos-D mac_rlc_status_ind 2 enb_flagP: %d, channel_idP: %d, srb_flag: %d \n", enb_flagP, channel_idP, srb_flag); h_rc = hashtable_get(rlc_coll_p, key, (void**)&rlc_union_p); if (h_rc == HASH_TABLE_OK) { rlc_mode = rlc_union_p->mode; } else { rlc_mode = RLC_MODE_NONE; - //LOG_D(RLC , "Panos-D: mac_rlc_status_ind() In RLC_MODE_NONE \n"); //LOG_W(RLC , "[%s] RLC not configured lcid %u module %u!\n", __FUNCTION__, channel_idP, module_idP); //LOG_D(RLC , "[%s] RLC not configured rb id %u lcid %u module %u!\n", __FUNCTION__, rb_id, channel_idP, ue_module_idP); } @@ -441,8 +450,12 @@ rlc_buffer_occupancy_t mac_rlc_get_buffer_occupancy_ind( /* Assumptions : for UE only */ /* At each TTI, Buffer Occupancy is first computed in mac_rlc_status_ind called by MAC ue_scheduler() function */ /* Then this function is called during MAC multiplexing ue_get_sdu(), and it may be call several times for the same bearer if it is in AM mode and there are several PDU types to transmit */ - AssertFatal(enb_flagP == FALSE,"RLC Tx mac_rlc_get_buffer_occupancy_ind function is not implemented for eNB LcId=%d\n", channel_idP); - + //AssertFatal(enb_flagP == FALSE,"RLC Tx mac_rlc_get_buffer_occupancy_ind function is not implemented for eNB LcId=%d\n", channel_idP); + if(enb_flagP != FALSE){ + LOG_E(RLC, "Tx mac_rlc_get_buffer_occupancy_ind function is not implemented for eNB LcId=%u\n", channel_idP); + return 0; + } + key = RLC_COLL_KEY_LCID_VALUE(module_idP, rntiP, enb_flagP, channel_idP, srb_flag); diff --git a/openair2/LAYER2/RLC/rlc_mpls.c b/openair2/LAYER2/RLC/rlc_mpls.c index 900741fe26..8c6cea379b 100644 --- a/openair2/LAYER2/RLC/rlc_mpls.c +++ b/openair2/LAYER2/RLC/rlc_mpls.c @@ -41,7 +41,7 @@ rlc_op_status_t mpls_rlc_data_req ( //----------------------------------------------------------------------------- // third arg should be set to 1 or 0 return rlc_data_req(ctxtP, SRB_FLAG_NO, MBMS_FLAG_NO, rb_idP, RLC_MUI_UNDEFINED, RLC_SDU_CONFIRM_NO, sdu_sizeP, sduP -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,NULL, NULL #endif ); diff --git a/openair2/LAYER2/RLC/rlc_rrc.c b/openair2/LAYER2/RLC/rlc_rrc.c index 34e4dee37a..aa00ffb773 100644 --- a/openair2/LAYER2/RLC/rlc_rrc.c +++ b/openair2/LAYER2/RLC/rlc_rrc.c @@ -32,7 +32,7 @@ #include "rlc_am.h" #include "rlc_um.h" #include "rlc_tm.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "RLC-Config.h" #include "DRB-ToAddMod.h" #include "DRB-ToAddModList.h" @@ -107,7 +107,7 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP case RLC_Config_PR_am: if (rrc_rlc_add_rlc (ctxt_pP, SRB_FLAG_YES, MBMS_FLAG_NO, rb_id, lc_id, RLC_MODE_AM -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif @@ -127,7 +127,7 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP case RLC_Config_PR_um_Bi_Directional: if (rrc_rlc_add_rlc (ctxt_pP, SRB_FLAG_YES, MBMS_FLAG_NO, rb_id, lc_id, RLC_MODE_UM -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif @@ -141,7 +141,7 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP &srb_toaddmod_p->rlc_Config->choice.explicitValue.choice.um_Bi_Directional.ul_UM_RLC, &srb_toaddmod_p->rlc_Config->choice.explicitValue.choice.um_Bi_Directional.dl_UM_RLC, rb_id, lc_id -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif ); @@ -155,7 +155,7 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP case RLC_Config_PR_um_Uni_Directional_UL: if (rrc_rlc_add_rlc (ctxt_pP, SRB_FLAG_YES, MBMS_FLAG_NO, rb_id, lc_id, RLC_MODE_UM -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif @@ -169,7 +169,7 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP &srb_toaddmod_p->rlc_Config->choice.explicitValue.choice.um_Uni_Directional_UL.ul_UM_RLC, NULL, rb_id, lc_id -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif ); @@ -183,7 +183,7 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP case RLC_Config_PR_um_Uni_Directional_DL: if (rrc_rlc_add_rlc (ctxt_pP, SRB_FLAG_YES, MBMS_FLAG_NO, rb_id, lc_id, RLC_MODE_UM -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif @@ -197,7 +197,7 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP NULL, &srb_toaddmod_p->rlc_Config->choice.explicitValue.choice.um_Uni_Directional_DL.dl_UM_RLC, rb_id, lc_id -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif ); @@ -230,7 +230,7 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP config_am_pP->ul_AM_RLC.maxRetxThreshold = UL_AM_RLC__maxRetxThreshold_t4; if (rrc_rlc_add_rlc (ctxt_pP, SRB_FLAG_YES, MBMS_FLAG_NO, rb_id, lc_id, RLC_MODE_AM -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif @@ -299,7 +299,7 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP case RLC_Config_PR_am: if (rrc_rlc_add_rlc (ctxt_pP, SRB_FLAG_NO, MBMS_FLAG_NO, drb_id, lc_id, RLC_MODE_AM -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif @@ -315,7 +315,7 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP case RLC_Config_PR_um_Bi_Directional: if (rrc_rlc_add_rlc (ctxt_pP, SRB_FLAG_NO, MBMS_FLAG_NO, drb_id, lc_id, RLC_MODE_UM -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,sourceL2Id, destinationL2Id #endif @@ -329,7 +329,7 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP &drb_toaddmod_p->rlc_Config->choice.um_Bi_Directional.ul_UM_RLC, &drb_toaddmod_p->rlc_Config->choice.um_Bi_Directional.dl_UM_RLC, drb_id, lc_id -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,sourceL2Id, destinationL2Id #endif @@ -340,7 +340,7 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP case RLC_Config_PR_um_Uni_Directional_UL: if (rrc_rlc_add_rlc (ctxt_pP, SRB_FLAG_NO, MBMS_FLAG_NO, drb_id, lc_id, RLC_MODE_UM -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif @@ -354,7 +354,7 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP &drb_toaddmod_p->rlc_Config->choice.um_Uni_Directional_UL.ul_UM_RLC, NULL, drb_id, lc_id -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif ); @@ -364,7 +364,7 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP case RLC_Config_PR_um_Uni_Directional_DL: if (rrc_rlc_add_rlc (ctxt_pP, SRB_FLAG_NO, MBMS_FLAG_NO, drb_id, lc_id, RLC_MODE_UM -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif @@ -378,7 +378,7 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP NULL, &drb_toaddmod_p->rlc_Config->choice.um_Uni_Directional_DL.dl_UM_RLC, drb_id, lc_id -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif ); @@ -444,7 +444,10 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP rb_id, lc_id, RLC_MODE_UM, 0, 0); - AssertFatal(rlc_union_p != NULL, "ADD MBMS RLC UM FAILED"); + //AssertFatal(rlc_union_p != NULL, "ADD MBMS RLC UM FAILED"); + if(rlc_union_p == NULL){ + LOG_E(RLC, "ADD MBMS RLC UM FAILED\n"); + } } LOG_D(RLC, PROTOCOL_CTXT_FMT" CONFIG REQ MBMS ASN1 LC ID %u RB ID %u SESSION ID %u SERVICE ID %u\n", @@ -466,7 +469,7 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP NULL, &dl_um_rlc, rb_id, lc_id -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif ); @@ -586,7 +589,11 @@ rlc_op_status_t rrc_rlc_remove_rlc ( } - AssertFatal (rb_idP < NB_RB_MAX, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MAX); + //AssertFatal (rb_idP < NB_RB_MAX, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MAX); + if(rb_idP >= NB_RB_MAX){ + LOG_E(RLC, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MAX); + return RLC_OP_STATUS_BAD_PARAMETER; + } h_rc = hashtable_get(rlc_coll_p, key, (void**)&rlc_union_p); @@ -647,7 +654,7 @@ rlc_union_t* rrc_rlc_add_rlc ( const rb_id_t rb_idP, const logical_chan_id_t chan_idP, const rlc_mode_t rlc_modeP -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,const uint32_t sourceL2Id, const uint32_t destinationL2Id #endif @@ -667,8 +674,17 @@ rlc_union_t* rrc_rlc_add_rlc ( if (MBMS_flagP == FALSE) { - AssertFatal (rb_idP < NB_RB_MAX, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MAX); - AssertFatal (chan_idP < RLC_MAX_LC, "LC id is too high (%u/%d)!\n", chan_idP, RLC_MAX_LC); + //AssertFatal (rb_idP < NB_RB_MAX, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MAX); + //AssertFatal (chan_idP < RLC_MAX_LC, "LC id is too high (%u/%d)!\n", chan_idP, RLC_MAX_LC); + if(rb_idP >= NB_RB_MAX){ + LOG_E(RLC, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MAX); + return NULL; + } + if(chan_idP >= RLC_MAX_LC){ + LOG_E(RLC, "LC id is too high (%u/%d)!\n", chan_idP, RLC_MAX_LC); + return NULL; + } + } #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) @@ -709,8 +725,12 @@ rlc_union_t* rrc_rlc_add_rlc ( (srb_flagP) ? "SRB" : "DRB", rb_idP, (srb_flagP) ? "SRB" : "DRB"); - AssertFatal(rlc_union_p->mode == rlc_modeP, "Error rrc_rlc_add_rlc , already exist but RLC mode differ"); - return rlc_union_p; + //AssertFatal(rlc_union_p->mode == rlc_modeP, "Error rrc_rlc_add_rlc , already exist but RLC mode differ"); + if(rlc_union_p->mode != rlc_modeP){ + LOG_E(RLC, "Error rrc_rlc_add_rlc , already exist but RLC mode differ\n"); + return NULL; + } + return rlc_union_p; } else if (h_rc == HASH_TABLE_KEY_NOT_EXISTS) { rlc_union_p = calloc(1, sizeof(rlc_union_t)); h_rc = hashtable_insert(rlc_coll_p, key, rlc_union_p); @@ -772,13 +792,17 @@ rlc_op_status_t rrc_rlc_config_req ( PROTOCOL_CTXT_ARGS(ctxt_pP), rb_idP); - AssertFatal (rb_idP < NB_RB_MAX, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MAX); + //AssertFatal (rb_idP < NB_RB_MAX, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MAX); + if(rb_idP >= NB_RB_MAX){ + LOG_E(RLC, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MAX); + return RLC_OP_STATUS_BAD_PARAMETER; + } switch (actionP) { case CONFIG_ACTION_ADD: if (rrc_rlc_add_rlc(ctxt_pP, srb_flagP, MBMS_FLAG_NO, rb_idP, rb_idP, rlc_infoP.rlc_mode -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif @@ -857,7 +881,7 @@ rlc_op_status_t rrc_rlc_data_req ( if (sdu != NULL) { memcpy (sdu->data, sduP, sdu_sizeP); return rlc_data_req(ctxt_pP, SRB_FLAG_YES, MBMS_flagP, rb_idP, muiP, confirmP, sdu_sizeP, sdu -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,NULL, NULL #endif ); diff --git a/openair2/LAYER2/openair2_proc.c b/openair2/LAYER2/openair2_proc.c index 0c884a806c..78a893cfae 100644 --- a/openair2/LAYER2/openair2_proc.c +++ b/openair2/LAYER2/openair2_proc.c @@ -35,7 +35,7 @@ #include "LAYER2/MAC/mac.h" #include "LAYER2/MAC/mac_extern.h" #include "LAYER2/PDCP_v10.1.0/pdcp.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "common/ran_context.h" static mapping rrc_status_names[] = { diff --git a/openair2/NETWORK_DRIVER/UE_IP/common.c b/openair2/NETWORK_DRIVER/UE_IP/common.c index e8ff5fc7ac..84f425ef3c 100644 --- a/openair2/NETWORK_DRIVER/UE_IP/common.c +++ b/openair2/NETWORK_DRIVER/UE_IP/common.c @@ -248,7 +248,7 @@ ue_ip_common_ip2wireless( //--------------------------------------------------------------------------- struct pdcp_data_req_header_s pdcph; ue_ip_priv_t *priv_p=netdev_priv(ue_ip_dev[instP]); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ipversion_t *ipv_p = NULL; unsigned int hard_header_len = 0; unsigned char *src_addr = 0; diff --git a/openair2/NETWORK_DRIVER/UE_IP/device.c b/openair2/NETWORK_DRIVER/UE_IP/device.c index 36c6afe914..d9a9149685 100644 --- a/openair2/NETWORK_DRIVER/UE_IP/device.c +++ b/openair2/NETWORK_DRIVER/UE_IP/device.c @@ -99,15 +99,29 @@ void *ue_ip_interrupt(void) } #endif //NETLINK //--------------------------------------------------------------------------- +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)) +void ue_ip_timer(struct timer_list *t) +#else void ue_ip_timer(unsigned long dataP) +#endif { //--------------------------------------------------------------------------- - ue_ip_priv_t *priv_p=(ue_ip_priv_t *)dataP; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)) + ue_ip_priv_t *priv_p = from_timer(priv_p, t, timer); +#else + ue_ip_priv_t *priv_p = (ue_ip_priv_t *)dataP; +#endif + spin_lock(&priv_p->lock); - (priv_p->timer).function=ue_ip_timer; - (priv_p->timer).expires=jiffies+UE_IP_TIMER_TICK; - (priv_p->timer).data=dataP; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)) + mod_timer(&priv_p->timer, jiffies + UE_IP_TIMER_TICK); +#else + (priv_p->timer).function = ue_ip_timer; + (priv_p->timer).expires = jiffies + UE_IP_TIMER_TICK; + (priv_p->timer).data = dataP; add_timer(&priv_p->timer); +#endif + spin_unlock(&priv_p->lock); return; // add_timer(&gpriv->timer); @@ -137,10 +151,15 @@ int ue_ip_open(struct net_device *dev_pP) netif_wake_queue(dev_pP); } +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)) + timer_setup(&(priv_p->timer), ue_ip_timer, 0); + (priv_p->timer).expires = jiffies+UE_IP_TIMER_TICK; +#else init_timer(&priv_p->timer); (priv_p->timer).expires = jiffies+UE_IP_TIMER_TICK; (priv_p->timer).data = (unsigned long)priv_p; (priv_p->timer).function = ue_ip_timer; +#endif //add_timer(&priv_p->timer); printk("[UE_IP_DRV][%s] name = %s\n", __FUNCTION__, dev_pP->name); @@ -236,7 +255,7 @@ int ue_ip_hard_start_xmit(struct sk_buff *skb_pP, struct net_device *dev_pP) // End debug information netif_stop_queue(dev_pP); -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) || RHEL_RELEASE_CODE >= 1796 +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) || (defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= 1796) netif_trans_update(dev_pP); #else dev_pP->trans_start = jiffies; @@ -312,7 +331,7 @@ void ue_ip_tx_timeout(struct net_device *dev_pP) printk("[UE_IP_DRV][%s] begin\n", __FUNCTION__); // (ue_ip_priv_t *)(dev_pP->priv_p)->stats.tx_errors++; (priv_p->stats).tx_errors++; -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) || RHEL_RELEASE_CODE >= 1796 +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) || (defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= 1796) netif_trans_update(dev_pP); #else dev_pP->trans_start = jiffies; diff --git a/openair2/NETWORK_DRIVER/UE_IP/local.h b/openair2/NETWORK_DRIVER/UE_IP/local.h index 976222967d..e590109b13 100644 --- a/openair2/NETWORK_DRIVER/UE_IP/local.h +++ b/openair2/NETWORK_DRIVER/UE_IP/local.h @@ -57,6 +57,7 @@ #include "platform_types.h" #include "sap.h" +#define MAKE_VERSION(a,b,c) ((a)*256+(b)*16+(c)) typedef struct ue_ip_priv_s { int irq; @@ -89,7 +90,7 @@ typedef struct pdcp_data_req_header_s { sdu_size_t data_size; signed int inst; ip_traffic_type_t traffic_type; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) uint32_t sourceL2Id; uint32_t destinationL2Id; #endif @@ -100,7 +101,7 @@ typedef struct pdcp_data_ind_header_s { sdu_size_t data_size; signed int inst; ip_traffic_type_t dummy_traffic_type; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) uint32_t sourceL2Id; uint32_t destinationL2Id; #endif diff --git a/openair2/PHY_INTERFACE/IF_Module.c b/openair2/PHY_INTERFACE/IF_Module.c index bb87827747..bd9f4bb8b2 100644 --- a/openair2/PHY_INTERFACE/IF_Module.c +++ b/openair2/PHY_INTERFACE/IF_Module.c @@ -17,7 +17,7 @@ extern int oai_nfapi_sr_indication(nfapi_sr_indication_t *ind); extern int oai_nfapi_rx_ind(nfapi_rx_indication_t *ind); extern uint8_t nfapi_mode; extern uint16_t sf_ahead; - +uint16_t frame_cnt=0; void handle_rach(UL_IND_t *UL_info) { int i; @@ -237,24 +237,6 @@ void handle_ulsch(UL_IND_t *UL_info) { #define C do { size = 0; put(0); } while (0) #define A(...) do { char t[4096]; sprintf(t, __VA_ARGS__); append_string(t); } while (0) -#if 0 - -/* eats lots of ms at startup, disrupts realtime */ -static char *s; -static int size; -static int maxsize; - -static void put(char x) -{ - if (size == maxsize) { - maxsize += 32768; - s = realloc(s, maxsize); if (s == NULL) abort(); - } - s[size++] = x; -} - -#else - /* eats nothing at startup, but fixed size */ #define SMAX 65536 static char s[SMAX]; @@ -267,8 +249,6 @@ static void put(char x) s[size++] = x; } -#endif - static void append_string(char *t) { size--; @@ -546,6 +526,10 @@ void UL_indication(UL_IND_t *UL_info) UL_info->frame,UL_info->subframe, module_id,CC_id, UL_info->rx_ind.rx_indication_body.number_of_pdus, UL_info->harq_ind.harq_indication_body.number_of_harqs, UL_info->crc_ind.crc_indication_body.number_of_crcs, UL_info->cqi_ind.number_of_cqis, UL_info->rach_ind.rach_indication_body.number_of_preambles, UL_info->sr_ind.sr_indication_body.number_of_srs); + if(UL_info->frame==1023&&UL_info->subframe==6){ // dl scheduling (0,0) + frame_cnt= (frame_cnt + 1)%7; // to prevent frame_cnt get too big + LOG_D(MAC,"current (%d,%d) frame count dl is %d\n",UL_info->frame,UL_info->subframe,frame_cnt); + } if (nfapi_mode != 1) { @@ -574,7 +558,11 @@ void UL_indication(UL_IND_t *UL_info) handle_harq(UL_info); // clear HI prior to handling ULSCH - mac->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_hi = 0; + uint8_t sf_ahead_dl = ul_subframe2_k_phich(&mac->common_channels[CC_id] , UL_info->subframe); + if(sf_ahead_dl!=255){ + mac->HI_DCI0_req[CC_id][(UL_info->subframe+sf_ahead_dl)%10].hi_dci0_request_body.number_of_hi = 0; + LOG_D(MAC,"current (%d,%d) clear HI_DCI0_req[0][%d]\n",UL_info->frame,UL_info->subframe,(UL_info->subframe+sf_ahead_dl)%10); + } handle_ulsch(UL_info); @@ -593,7 +581,7 @@ void UL_indication(UL_IND_t *UL_info) sched_info->frame = (UL_info->frame + ((UL_info->subframe>(9-sf_ahead)) ? 1 : 0)) % 1024; sched_info->subframe = (UL_info->subframe+sf_ahead)%10; sched_info->DL_req = &mac->DL_req[CC_id]; - sched_info->HI_DCI0_req = &mac->HI_DCI0_req[CC_id]; + sched_info->HI_DCI0_req = &mac->HI_DCI0_req[CC_id][sched_info->subframe]; if ((mac->common_channels[CC_id].tdd_Config==NULL) || (is_UL_sf(&mac->common_channels[CC_id],sched_info->subframe)>0)) sched_info->UL_req = &mac->UL_req[CC_id]; diff --git a/openair2/PHY_INTERFACE/UE_MAC_interface.h b/openair2/PHY_INTERFACE/UE_MAC_interface.h index 0e4777d0b0..d010109f99 100644 --- a/openair2/PHY_INTERFACE/UE_MAC_interface.h +++ b/openair2/PHY_INTERFACE/UE_MAC_interface.h @@ -192,14 +192,14 @@ typedef struct{ }UE_MAC_BCH_indication_body_t; -// Panos: Corresponding to inputs of MAC functions: ue_send_sdu(), ue_decode_si(), ue_decode_p(). +// Corresponding to inputs of MAC functions: ue_send_sdu(), ue_decode_si(), ue_decode_p(). typedef struct{ uint8_t* data; uint16_t data_len; }UE_MAC_dlsch_pdu; -// Panos: Corresponding to inputs of MAC function: process_rar(). +// Corresponding to inputs of MAC function: process_rar(). typedef struct{ rnti_t ra_rnti; uint8_t* rar_input_buffer; // Originating from PHY diff --git a/openair2/PHY_INTERFACE/phy_stub_UE.c b/openair2/PHY_INTERFACE/phy_stub_UE.c index 588cde5231..166616c368 100644 --- a/openair2/PHY_INTERFACE/phy_stub_UE.c +++ b/openair2/PHY_INTERFACE/phy_stub_UE.c @@ -68,7 +68,7 @@ void fill_rx_indication_UE_MAC(module_id_t Mod_id,int frame,int subframe, UL_IND pdu->data = ulsch_buffer; // estimate timing advance for MAC //sync_pos = lte_est_timing_advance_pusch(eNB,UE_id); - timing_advance_update = 0; //Panos: Don't know what to put here + timing_advance_update = 0; // Don't know what to put here pdu->rx_indication_rel8.timing_advance = timing_advance_update; int SNRtimes10 = 640; @@ -105,10 +105,10 @@ void fill_sr_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL_I pdu->instance_length = 0; // don't know what to do with this // pdu->rx_ue_information.handle = handle; pdu->rx_ue_information.tl.tag = NFAPI_RX_UE_INFORMATION_TAG; - pdu->rx_ue_information.rnti = rnti; //UE_mac_inst[Mod_id].crnti;; //Panos: Is this the right RNTI? + pdu->rx_ue_information.rnti = rnti; //UE_mac_inst[Mod_id].crnti - // Panos dependency from PHY not sure how to substitute this. Should we hardcode it? + // dependency from PHY not sure how to substitute this. Should we hardcode it? //int SNRtimes10 = dB_fixed_times10(stat) - 200;//(10*eNB->measurements.n0_power_dB[0]); int SNRtimes10 = 640; @@ -130,7 +130,7 @@ void fill_crc_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL_ pthread_mutex_lock(&UE_mac_inst[Mod_id].UL_INFO_mutex); - //Panos: REMEMBER HAVE EXCHANGED THE FOLLOWING TWO LINES HERE! + // REMEMBER HAVE EXCHANGED THE FOLLOWING TWO LINES HERE! nfapi_crc_indication_pdu_t *pdu = &UL_INFO->crc_ind.crc_indication_body.crc_pdu_list[UL_INFO->crc_ind.crc_indication_body.number_of_crcs]; UL_INFO->crc_ind.sfn_sf = frame<<4| subframe; @@ -172,9 +172,9 @@ void fill_rach_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL UL_INFO->rach_ind.rach_indication_body.preamble_list = (nfapi_preamble_pdu_t*)malloc(UL_INFO->rach_ind.rach_indication_body.number_of_preambles*sizeof(nfapi_preamble_pdu_t)); UL_INFO->rach_ind.rach_indication_body.preamble_list[0].preamble_rel8.tl.tag = NFAPI_PREAMBLE_REL8_TAG; - UL_INFO->rach_ind.rach_indication_body.preamble_list[0].preamble_rel8.timing_advance = 0; //Panos: Not sure about that + UL_INFO->rach_ind.rach_indication_body.preamble_list[0].preamble_rel8.timing_advance = 0; // Not sure about that - //Panos: The two following should get extracted from the call to get_prach_resources(). + //The two following should get extracted from the call to get_prach_resources(). UL_INFO->rach_ind.rach_indication_body.preamble_list[0].preamble_rel8.preamble = ra_PreambleIndex; UL_INFO->rach_ind.rach_indication_body.preamble_list[0].preamble_rel8.rnti = ra_RNTI; //UL_INFO->rach_ind.rach_indication_body.number_of_preambles++; @@ -191,7 +191,7 @@ void fill_rach_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL UL_INFO->rach_ind.rach_indication_body.preamble_list[0].preamble_rel8.rnti, UL_INFO->rach_ind.rach_indication_body.preamble_list[0].preamble_rel13.rach_resource_type); - //Panos: This function is currently defined only in the nfapi-RU-RAU-split so we should call it when we merge + // This function is currently defined only in the nfapi-RU-RAU-split so we should call it when we merge // with that branch. oai_nfapi_rach_ind(&UL_INFO->rach_ind); free(UL_INFO->rach_ind.rach_indication_body.preamble_list); @@ -210,12 +210,12 @@ void fill_ulsch_cqi_indication_UE_MAC(int Mod_id, uint16_t frame,uint8_t subfram pdu->rx_ue_information.tl.tag = NFAPI_RX_UE_INFORMATION_TAG; pdu->rx_ue_information.rnti = rnti; - //Panos: Since we assume that CRC flag is always 0 (ACK) I guess that data_offset should always be 0. + // Since we assume that CRC flag is always 0 (ACK) I guess that data_offset should always be 0. pdu->cqi_indication_rel9.data_offset = 0; // by default set O to rank 1 value //pdu->cqi_indication_rel9.length = (ulsch_harq->Or1>>3) + ((ulsch_harq->Or1&7) > 0 ? 1 : 0); - // Panos: Not useful field for our case + // Not useful field for our case pdu->cqi_indication_rel9.tl.tag = NFAPI_CQI_INDICATION_REL9_TAG; pdu->cqi_indication_rel9.length = 0; pdu->cqi_indication_rel9.ri[0] = 0; @@ -225,7 +225,7 @@ void fill_ulsch_cqi_indication_UE_MAC(int Mod_id, uint16_t frame,uint8_t subfram pdu->cqi_indication_rel9.number_of_cc_reported = 1; pdu->ul_cqi_information.channel = 1; // PUSCH - //Panos: Not sure how to substitute this. This should be the actual CQI value? So can + // Not sure how to substitute this. This should be the actual CQI value? So can // we hardcode it to a specific value? //memcpy((void*)raw_pdu->pdu,ulsch_harq->o,pdu->cqi_indication_rel9.length); raw_pdu->pdu[0] = 7; @@ -255,18 +255,18 @@ void fill_ulsch_harq_indication_UE_MAC(int Mod_id, int frame,int subframe, UL_IN pdu->rx_ue_information.tl.tag = NFAPI_RX_UE_INFORMATION_TAG; pdu->rx_ue_information.rnti = rnti; - //Panos: For now we consider only FDD + // For now we consider only FDD //if (eNB->frame_parms.frame_type == FDD) { pdu->harq_indication_fdd_rel13.tl.tag = NFAPI_HARQ_INDICATION_FDD_REL13_TAG; pdu->harq_indication_fdd_rel13.mode = 0; pdu->harq_indication_fdd_rel13.number_of_ack_nack = harq_information->harq_information_rel10.harq_size; - //Panos: Could this be wrong? Is the number_of_ack_nack field equivalent to O_ACK? + // Could this be wrong? Is the number_of_ack_nack field equivalent to O_ACK? //pdu->harq_indication_fdd_rel13.number_of_ack_nack = ulsch_harq->O_ACK; for (i=0;iharq_information_rel10.harq_size;i++) { - pdu->harq_indication_fdd_rel13.harq_tb_n[i] = 1; //Panos: Assuming always an ACK (No NACK or DTX) + pdu->harq_indication_fdd_rel13.harq_tb_n[i] = 1; // Assuming always an ACK (No NACK or DTX) } @@ -319,7 +319,7 @@ void fill_uci_harq_indication_UE_MAC(int Mod_id, pdu->harq_indication_fdd_rel13.number_of_ack_nack = 1; //AssertFatal(harq_ack[0] == 1 || harq_ack[0] == 2 || harq_ack[0] == 4, "harq_ack[0] is %d, should be 1,2 or 4\n",harq_ack[0]); - pdu->harq_indication_fdd_rel13.harq_tb_n[0] = 1; //Panos: Assuming always an ACK (No NACK or DTX) + pdu->harq_indication_fdd_rel13.harq_tb_n[0] = 1; // Assuming always an ACK (No NACK or DTX) } @@ -328,8 +328,8 @@ void fill_uci_harq_indication_UE_MAC(int Mod_id, pdu->harq_indication_fdd_rel13.tl.tag = NFAPI_HARQ_INDICATION_FDD_REL13_TAG; pdu->harq_indication_fdd_rel13.mode = 0; pdu->harq_indication_fdd_rel13.number_of_ack_nack = 2; - pdu->harq_indication_fdd_rel13.harq_tb_n[0] = 1; //Panos: Assuming always an ACK (No NACK or DTX) - pdu->harq_indication_fdd_rel13.harq_tb_n[1] = 1; //Panos: Assuming always an ACK (No NACK or DTX) + pdu->harq_indication_fdd_rel13.harq_tb_n[0] = 1; // Assuming always an ACK (No NACK or DTX) + pdu->harq_indication_fdd_rel13.harq_tb_n[1] = 1; // Assuming always an ACK (No NACK or DTX) } else AssertFatal(1==0,"only format 1a/b for now, received \n"); @@ -346,11 +346,10 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, nfapi_ul_config_request_pdu_t *ul_config_pdu, uint16_t frame,uint8_t subframe,uint8_t srs_present, int index) { - nfapi_ul_config_ulsch_pdu_rel8_t *rel8 = &ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8; if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_ULSCH_PDU_TYPE) { LOG_D(PHY,"Applying UL config for UE, rnti %x for frame %d, subframe %d\n", - rel8->rnti,frame,subframe); + (ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8).rnti,frame,subframe); uint8_t ulsch_buffer[5477] __attribute__ ((aligned(32))); uint16_t buflen = ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.size; @@ -362,15 +361,14 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, fill_crc_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, 0, index, rnti); fill_rx_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, UE_mac_inst[Mod_id].RA_prach_resources.Msg3,buflen, rnti, index); Msg3_transmitted(Mod_id, 0, frame, 0); - // Panos: Modification + // Modification UE_mac_inst[Mod_id].UE_mode[0] = PUSCH; UE_mac_inst[Mod_id].first_ULSCH_Tx = 0; - // Panos: This should be done after the reception of the respective hi_dci0 + // This should be done after the reception of the respective hi_dci0 //UE_mac_inst[Mod_id].first_ULSCH_Tx = 0; } else { - //LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 2.3 \n"); ue_get_sdu( Mod_id, 0, frame, subframe, 0, ulsch_buffer, buflen, &access_mode); fill_crc_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, 0, index, rnti); fill_rx_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, ulsch_buffer,buflen, rnti, index); @@ -393,12 +391,11 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, fill_rx_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, UE_mac_inst[Mod_id].RA_prach_resources.Msg3,buflen, rnti, index); Msg3_transmitted(Mod_id, 0, frame, 0); //UE_mac_inst[Mod_id].first_ULSCH_Tx = 0; - // Panos: Modification + // Modification UE_mac_inst[Mod_id].UE_mode[0] = PUSCH; UE_mac_inst[Mod_id].first_ULSCH_Tx = 0; } else { - //LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 3.1 \n"); ue_get_sdu( Mod_id, 0, frame, subframe, 0, ulsch_buffer, buflen, &access_mode); fill_crc_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, 0, index, rnti); fill_rx_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, ulsch_buffer,buflen, rnti, index); @@ -421,7 +418,7 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, fill_rx_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, UE_mac_inst[Mod_id].RA_prach_resources.Msg3,buflen, rnti, index); Msg3_transmitted(Mod_id, 0, frame, 0); //UE_mac_inst[Mod_id].first_ULSCH_Tx = 0; - // Panos: Modification + // Modification UE_mac_inst[Mod_id].UE_mode[0] = PUSCH; UE_mac_inst[Mod_id].first_ULSCH_Tx = 0; } @@ -448,7 +445,7 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, fill_rx_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, UE_mac_inst[Mod_id].RA_prach_resources.Msg3,buflen, rnti, index); Msg3_transmitted(Mod_id, 0, frame, 0); //UE_mac_inst[Mod_id].first_ULSCH_Tx = 0; - // Panos: Modification + // Modification UE_mac_inst[Mod_id].UE_mode[0] = PUSCH; UE_mac_inst[Mod_id].first_ULSCH_Tx = 0; } @@ -563,17 +560,15 @@ int ul_config_req_UE_MAC(nfapi_ul_config_request_t* req, int timer_frame, int ti int tx_req_UE_MAC(nfapi_tx_request_t* req) { - uint16_t sfn = NFAPI_SFNSF2SFN(req->sfn_sf); - uint16_t sf = NFAPI_SFNSF2SF(req->sfn_sf); - LOG_D(PHY,"%s() SFN/SF:%d/%d PDUs:%d\n", __FUNCTION__, sfn, sf, req->tx_request_body.number_of_pdus); + LOG_D(PHY,"%s() SFN/SF:%d/%d PDUs:%d\n", __FUNCTION__, NFAPI_SFNSF2SFN(req->sfn_sf), NFAPI_SFNSF2SF(req->sfn_sf), req->tx_request_body.number_of_pdus); for (int i=0; itx_request_body.number_of_pdus; i++) { LOG_D(PHY,"%s() SFN/SF:%d/%d number_of_pdus:%d [PDU:%d] pdu_length:%d pdu_index:%d num_segments:%d\n", __FUNCTION__, - sfn, sf, + NFAPI_SFNSF2SFN(req->sfn_sf), NFAPI_SFNSF2SF(req->sfn_sf), req->tx_request_body.number_of_pdus, i, req->tx_request_body.tx_pdu_list[i].pdu_length, @@ -788,13 +783,9 @@ int hi_dci0_req_UE_MAC(nfapi_hi_dci0_request_t* req, module_id_t Mod_id) int memcpy_dl_config_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_dl_config_request_t* req) { - //module_id_t Mod_id = 0; //Panos: Currently static (only for one UE) but this should change. - //for (Mod_id=0; Mod_idheader = req->header; dl_config_req->sfn_sf = req->sfn_sf; @@ -822,10 +813,6 @@ int memcpy_dl_config_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_dl_config_request int memcpy_ul_config_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_ul_config_request_t* req) { - //LOG_D(MAC, "Panos-D: memcpy_ul_config_req 1 \n"); - - //module_id_t Mod_id = 0; //Panos: Currently static (only for one UE) but this should change. - //for (Mod_id=0; Mod_idtx_request_body.number_of_pdus; tx_request_pdu_list = (nfapi_tx_request_pdu_t*) calloc(tx_req_num_elems, sizeof(nfapi_tx_request_pdu_t)); @@ -884,7 +869,6 @@ int memcpy_hi_dci0_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_hi_dci0_request_t* { //if(req!=0){ - //module_id_t Mod_id = 0; //Panos: Currently static (only for one UE) but this should change. //for (Mod_id=0; Mod_idcarrier[CC_id].SIB1, RC.rrc[Mod_idP]->carrier[CC_id].sizeof_SIB1); -#if 0 //defined(ENABLE_ITTI) - { - MessageDef *message_p; - int sib1_size = RC.rrc[Mod_idP]->carrier[CC_id].sizeof_SIB1; - int sdu_size = sizeof(RRC_MAC_BCCH_DATA_REQ (message_p).sdu); - - if (sib1_size > sdu_size) { - LOG_E(RRC, "SIB1 SDU larger than BCCH SDU buffer size (%d, %d)", sib1_size, sdu_size); - sib1_size = sdu_size; - } - - message_p = itti_alloc_new_message (TASK_RRC_ENB, RRC_MAC_BCCH_DATA_REQ); - RRC_MAC_BCCH_DATA_REQ (message_p).frame = frameP; - RRC_MAC_BCCH_DATA_REQ (message_p).sdu_size = sib1_size; - memset (RRC_MAC_BCCH_DATA_REQ (message_p).sdu, 0, BCCH_SDU_SIZE); - memcpy (RRC_MAC_BCCH_DATA_REQ (message_p).sdu, - RC.rrc[Mod_idP]->carrier[CC_id].SIB1, - sib1_size); - RRC_MAC_BCCH_DATA_REQ (message_p).enb_index = eNB_index; - - itti_send_msg_to_task (TASK_MAC_ENB, ENB_MODULE_ID_TO_INSTANCE(Mod_idP), message_p); - } -#endif - #ifdef DEBUG_RRC LOG_T(RRC,"[eNB %d] Frame %d : BCCH request => SIB 1\n",Mod_idP,frameP); @@ -137,30 +113,6 @@ mac_rrc_data_req( RC.rrc[Mod_idP]->carrier[CC_id].SIB23, RC.rrc[Mod_idP]->carrier[CC_id].sizeof_SIB23); -#if 0 //defined(ENABLE_ITTI) - { - MessageDef *message_p; - int sib23_size = RC.rrc[Mod_idP]->carrier[CC_id].sizeof_SIB23; - int sdu_size = sizeof(RRC_MAC_BCCH_DATA_REQ (message_p).sdu); - - if (sib23_size > sdu_size) { - LOG_E(RRC, "SIB23 SDU larger than BCCH SDU buffer size (%d, %d)", sib23_size, sdu_size); - sib23_size = sdu_size; - } - - message_p = itti_alloc_new_message (TASK_RRC_ENB, RRC_MAC_BCCH_DATA_REQ); - RRC_MAC_BCCH_DATA_REQ (message_p).frame = frameP; - RRC_MAC_BCCH_DATA_REQ (message_p).sdu_size = sib23_size; - memset (RRC_MAC_BCCH_DATA_REQ (message_p).sdu, 0, BCCH_SDU_SIZE); - memcpy (RRC_MAC_BCCH_DATA_REQ (message_p).sdu, - RC.rrc[Mod_idP]->carrier[CC_id].SIB23, - sib23_size); - RRC_MAC_BCCH_DATA_REQ (message_p).enb_index = eNB_index; - - itti_send_msg_to_task (TASK_MAC_ENB, ENB_MODULE_ID_TO_INSTANCE(Mod_idP), message_p); - } -#endif - #ifdef DEBUG_RRC LOG_T(RRC,"[eNB %d] Frame %d BCCH request => SIB 2-3\n",Mod_idP,frameP); @@ -179,6 +131,7 @@ mac_rrc_data_req( mib->message.systemFrameNumber.buf = &sfn; enc_rval = uper_encode_to_buffer(&asn_DEF_BCCH_BCH_Message, + NULL, (void*)mib, carrier->MIB, 24); @@ -205,28 +158,6 @@ mac_rrc_data_req( if(Srb_info->Tx_buffer.payload_size>0) { //Fill buffer LOG_D(RRC,"[eNB %d] CCCH (%p) has %d bytes (dest: %p, src %p)\n",Mod_idP,Srb_info,Srb_info->Tx_buffer.payload_size,buffer_pP,Srb_info->Tx_buffer.Payload); -#if 0 // defined(ENABLE_ITTI) - { - MessageDef *message_p; - int ccch_size = Srb_info->Tx_buffer.payload_size; - int sdu_size = sizeof(RRC_MAC_CCCH_DATA_REQ (message_p).sdu); - - if (ccch_size > sdu_size) { - LOG_E(RRC, "SDU larger than CCCH SDU buffer size (%d, %d)", ccch_size, sdu_size); - ccch_size = sdu_size; - } - - message_p = itti_alloc_new_message (TASK_RRC_ENB, RRC_MAC_CCCH_DATA_REQ); - RRC_MAC_CCCH_DATA_REQ (message_p).frame = frameP; - RRC_MAC_CCCH_DATA_REQ (message_p).sdu_size = ccch_size; - memset (RRC_MAC_CCCH_DATA_REQ (message_p).sdu, 0, CCCH_SDU_SIZE); - memcpy (RRC_MAC_CCCH_DATA_REQ (message_p).sdu, Srb_info->Tx_buffer.Payload, ccch_size); - RRC_MAC_CCCH_DATA_REQ (message_p).enb_index = eNB_index; - - itti_send_msg_to_task (TASK_MAC_ENB, ENB_MODULE_ID_TO_INSTANCE(Mod_idP), message_p); - } -#endif - memcpy(buffer_pP,Srb_info->Tx_buffer.Payload,Srb_info->Tx_buffer.payload_size); Sdu_size = Srb_info->Tx_buffer.payload_size; Srb_info->Tx_buffer.payload_size=0; @@ -243,28 +174,6 @@ mac_rrc_data_req( LOG_D(RRC,"[eNB %d] PCCH (%p) has %d bytes\n",Mod_idP,&RC.rrc[Mod_idP]->carrier[CC_id].paging[mbsfn_sync_area], RC.rrc[Mod_idP]->carrier[CC_id].sizeof_paging[mbsfn_sync_area]); -#if 0 //defined(ENABLE_ITTI) - { - MessageDef *message_p; - int pcch_size = RC.rrc[Mod_idP]->arrier[CC_id].sizeof_paging[mbsfn_sync_area]; - int sdu_size = sizeof(RRC_MAC_PCCH_DATA_REQ (message_p).sdu); - - if (pcch_size > sdu_size) { - LOG_E(RRC, "SDU larger than PCCH SDU buffer size (%d, %d)", pcch_size, sdu_size); - pcch_size = sdu_size; - } - - message_p = itti_alloc_new_message (TASK_RRC_ENB, RRC_MAC_PCCH_DATA_REQ); - RRC_MAC_PCCH_DATA_REQ (message_p).frame = frameP; - RRC_MAC_PCCH_DATA_REQ (message_p).sdu_size = pcch_size; - memset (RRC_MAC_PCCH_DATA_REQ (message_p).sdu, 0, PCCH_SDU_SIZE); - memcpy (RRC_MAC_PCCH_DATA_REQ (message_p).sdu, RC.rrc[Mod_idP]->carrier[CC_id].paging[mbsfn_sync_area], pcch_size); - RRC_MAC_PCCH_DATA_REQ (message_p).enb_index = eNB_index; - - itti_send_msg_to_task (TASK_MAC_ENB, ENB_MODULE_ID_TO_INSTANCE(Mod_idP), message_p); - } -#endif - memcpy(buffer_pP, RC.rrc[Mod_idP]->carrier[CC_id].paging[mbsfn_sync_area], RC.rrc[Mod_idP]->carrier[CC_id].sizeof_paging[mbsfn_sync_area]); Sdu_size = RC.rrc[Mod_idP]->carrier[CC_id].sizeof_paging[mbsfn_sync_area]; RC.rrc[Mod_idP]->carrier[CC_id].sizeof_paging[mbsfn_sync_area] = 0; @@ -280,32 +189,6 @@ mac_rrc_data_req( return 0; // this parameter is set in function init_mcch in rrc_eNB.c } - -#if 0 // defined(ENABLE_ITTI) - { - MessageDef *message_p; - int mcch_size = RC.rrc[Mod_idP]->carrier[CC_id].sizeof_MCCH_MESSAGE[mbsfn_sync_area]; - int sdu_size = sizeof(RRC_MAC_MCCH_DATA_REQ (message_p).sdu); - - if (mcch_size > sdu_size) { - LOG_E(RRC, "SDU larger than MCCH SDU buffer size (%d, %d)", mcch_size, sdu_size); - mcch_size = sdu_size; - } - - message_p = itti_alloc_new_message (TASK_RRC_ENB, RRC_MAC_MCCH_DATA_REQ); - RRC_MAC_MCCH_DATA_REQ (message_p).frame = frameP; - RRC_MAC_MCCH_DATA_REQ (message_p).sdu_size = mcch_size; - memset (RRC_MAC_MCCH_DATA_REQ (message_p).sdu, 0, MCCH_SDU_SIZE); - memcpy (RRC_MAC_MCCH_DATA_REQ (message_p).sdu, - RC.rrc[Mod_idP]->carrier[CC_id].MCCH_MESSAGE[mbsfn_sync_area], - mcch_size); - RRC_MAC_MCCH_DATA_REQ (message_p).enb_index = eNB_index; - RRC_MAC_MCCH_DATA_REQ (message_p).mbsfn_sync_area = mbsfn_sync_area; - - itti_send_msg_to_task (TASK_MAC_ENB, ENB_MODULE_ID_TO_INSTANCE(Mod_idP), message_p); - } -#endif - memcpy(&buffer_pP[0], RC.rrc[Mod_idP]->carrier[CC_id].MCCH_MESSAGE[mbsfn_sync_area], RC.rrc[Mod_idP]->carrier[CC_id].sizeof_MCCH_MESSAGE[mbsfn_sync_area]); @@ -376,42 +259,27 @@ mac_rrc_data_ind( */ PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, module_idP, ENB_FLAG_YES, rntiP, frameP, sub_frameP,0); + if((srb_idP & RAB_OFFSET) == CCCH) { Srb_info = &RC.rrc[module_idP]->carrier[CC_id].Srb0; LOG_D(RRC,"[eNB %d] Received SDU for CCCH on SRB %d\n",module_idP,Srb_info->Srb_id); -#if 0 //defined(ENABLE_ITTI) - { - MessageDef *message_p; - int msg_sdu_size = sizeof(RRC_MAC_CCCH_DATA_IND (message_p).sdu); - - if (sdu_lenP > msg_sdu_size) { - LOG_E(RRC, "SDU larger than CCCH SDU buffer size (%d, %d)", sdu_lenP, msg_sdu_size); - sdu_size = msg_sdu_size; - } else { - sdu_size = sdu_lenP; - } - - message_p = itti_alloc_new_message (TASK_MAC_ENB, RRC_MAC_CCCH_DATA_IND); - RRC_MAC_CCCH_DATA_IND (message_p).frame = frameP; - RRC_MAC_CCCH_DATA_IND (message_p).sub_frame = sub_frameP; - RRC_MAC_CCCH_DATA_IND (message_p).rnti = rntiP; - RRC_MAC_CCCH_DATA_IND (message_p).sdu_size = sdu_size; - RRC_MAC_CCCH_DATA_IND (message_p).CC_id = CC_id; - memset (RRC_MAC_CCCH_DATA_IND (message_p).sdu, 0, CCCH_SDU_SIZE); - memcpy (RRC_MAC_CCCH_DATA_IND (message_p).sdu, sduP, sdu_size); - LOG_D(RRC,"[eNB %d] Sending message to RRC task\n",module_idP); - itti_send_msg_to_task (TASK_RRC_ENB, ctxt.instance, message_p); - } -#else - // msg("\n******INST %d Srb_info %p, Srb_id=%d****\n\n",Mod_id,Srb_info,Srb_info->Srb_id); if (sdu_lenP > 0) { memcpy(Srb_info->Rx_buffer.Payload,sduP,sdu_lenP); Srb_info->Rx_buffer.payload_size = sdu_lenP; rrc_eNB_decode_ccch(&ctxt, Srb_info, CC_id); } - -#endif + } + if((srb_idP & RAB_OFFSET) == DCCH) { + struct rrc_eNB_ue_context_s* ue_context_p = NULL; + ue_context_p = rrc_eNB_get_ue_context(RC.rrc[ctxt.module_id],rntiP); + if(ue_context_p){ + rrc_eNB_generate_defaultRRCConnectionReconfiguration(&ctxt, + ue_context_p, + 0); + ue_context_p->ue_context.Status = RRC_RECONFIGURED; + } + } return(0); diff --git a/openair2/RRC/LTE/L2_interface_common.c b/openair2/RRC/LTE/L2_interface_common.c index d72cc2f5be..b03b36a557 100644 --- a/openair2/RRC/LTE/L2_interface_common.c +++ b/openair2/RRC/LTE/L2_interface_common.c @@ -31,7 +31,7 @@ #include "platform_types.h" #include "rrc_defs.h" #include "rrc_extern.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "rrc_eNB_UE_context.h" #include "pdcp.h" #include "msc.h" @@ -57,6 +57,11 @@ rrc_data_req( ) //------------------------------------------------------------------------------ { + if(sdu_sizeP == 255) + { + LOG_I(RRC,"sdu_sizeP == 255"); + return FALSE; + } MSC_LOG_TX_MESSAGE( ctxt_pP->enb_flag ? MSC_RRC_ENB : MSC_RRC_UE, ctxt_pP->enb_flag ? MSC_PDCP_ENB : MSC_PDCP_UE, @@ -127,10 +132,10 @@ rrc_data_ind( rb_id_t DCCH_index = Srb_id; if (ctxt_pP->enb_flag == ENB_FLAG_NO) { - LOG_N(RRC, "[UE %x] Frame %d: received a DCCH %d message on SRB %d with Size %d from eNB %d\n", + LOG_I(RRC, "[UE %x] Frame %d: received a DCCH %d message on SRB %d with Size %d from eNB %d\n", ctxt_pP->module_id, ctxt_pP->frame, DCCH_index,Srb_id,sdu_sizeP, ctxt_pP->eNB_index); } else { - LOG_N(RRC, "[eNB %d] Frame %d: received a DCCH %d message on SRB %d with Size %d from UE %x\n", + LOG_I(RRC, "[eNB %d] Frame %d: received a DCCH %d message on SRB %d with Size %d from UE %x\n", ctxt_pP->module_id, ctxt_pP->frame, DCCH_index, diff --git a/openair2/RRC/LTE/L2_interface_ue.c b/openair2/RRC/LTE/L2_interface_ue.c index 569e2f008b..d3527b8a17 100644 --- a/openair2/RRC/LTE/L2_interface_ue.c +++ b/openair2/RRC/LTE/L2_interface_ue.c @@ -31,7 +31,7 @@ #include "platform_types.h" #include "rrc_defs.h" #include "rrc_extern.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "rrc_eNB_UE_context.h" #include "pdcp.h" #include "msc.h" @@ -67,7 +67,7 @@ mac_rrc_data_req_ue( #endif -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) LOG_D(RRC,"[UE %d] Frame %d Filling SL DISCOVERY SRB_ID %d\n",Mod_idP,frameP,Srb_id); LOG_D(RRC,"[UE %d] Frame %d buffer_pP status %d,\n",Mod_idP,frameP, UE_rrc_inst[Mod_idP].SL_Discovery[eNB_index].Tx_buffer.payload_size); @@ -331,7 +331,7 @@ rrc_data_req_ue( sdu_sizeP, buffer_pP, modeP -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,NULL, NULL #endif ); @@ -350,7 +350,7 @@ rrc_data_ind_ue( { rb_id_t DCCH_index = Srb_id; - LOG_N(RRC, "[UE %x] Frame %d: received a DCCH %d message on SRB %d with Size %d from eNB %d\n", + LOG_I(RRC, "[UE %x] Frame %d: received a DCCH %d message on SRB %d with Size %d from eNB %d\n", ctxt_pP->module_id, ctxt_pP->frame, DCCH_index,Srb_id,sdu_sizeP, ctxt_pP->eNB_index); #if defined(ENABLE_ITTI) @@ -403,7 +403,6 @@ void rrc_in_sync_ind(module_id_t Mod_idP, frame_t frameP, uint16_t eNB_index) UE_rrc_inst[Mod_idP].Info[eNB_index].N310_cnt=0; if (UE_rrc_inst[Mod_idP].Info[eNB_index].T310_active==1) { - LOG_D(RRC, "Panos-D: rrc_in_sync_ind 1 \n"); UE_rrc_inst[Mod_idP].Info[eNB_index].N311_cnt++; } diff --git a/openair2/RRC/LTE/MESSAGES/asn1_msg.c b/openair2/RRC/LTE/MESSAGES/asn1_msg.c index 81282059a1..66aae4237a 100644 --- a/openair2/RRC/LTE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LTE/MESSAGES/asn1_msg.c @@ -35,7 +35,7 @@ #include /* for strerror(3) */ #include /* for EX_* exit codes */ #include /* for errno */ -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include #include /* for _ASN_DEFAULT_STACK_MAX */ #include @@ -241,6 +241,7 @@ uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich #endif enc_rval = uper_encode_to_buffer(&asn_DEF_BCCH_BCH_Message, + NULL, (void*)mib, carrier->MIB, 24); @@ -320,6 +321,7 @@ uint8_t do_MIB_SL(const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, enc_rval = uper_encode_to_buffer(&asn_DEF_SBCCH_SL_BCH_Message, + NULL, (void*)mib_sl, UE_rrc_inst[ctxt_pP->module_id].MIB, 24); @@ -477,22 +479,6 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, ASN_SEQUENCE_ADD(&schedulingInfo.sib_MappingInfo.list,&sib_type); ASN_SEQUENCE_ADD(&(*sib1)->schedulingInfoList.list,&schedulingInfo); -#if 0 - /* TODO: this is disabled for the moment because OAI UE does - * not connect to OAI eNB with the current software. - * See also TODO comment in do_SIB23. - */ - //TTN - This is for SIB18 - sib_type=SIB_Type_sibType18_v1250; - ASN_SEQUENCE_ADD(&schedulingInfo.sib_MappingInfo.list,&sib_type); - ASN_SEQUENCE_ADD(&(*sib1)->schedulingInfoList.list,&schedulingInfo); - - //TTN - This is for SIB19 - sib_type=SIB_Type_sibType19_v1250; - ASN_SEQUENCE_ADD(&schedulingInfo.sib_MappingInfo.list,&sib_type); - ASN_SEQUENCE_ADD(&(*sib1)->schedulingInfoList.list,&schedulingInfo); -#endif - // ASN_SEQUENCE_ADD(&schedulingInfo.sib_MappingInfo.list,NULL); #if defined(ENABLE_ITTI) @@ -525,6 +511,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, xer_fprint(stdout, &asn_DEF_BCCH_DL_SCH_Message, (void*)bcch_message); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_BCCH_DL_SCH_Message, + NULL, (void*)bcch_message, buffer, 100); @@ -598,7 +585,7 @@ uint8_t do_SIB23(uint8_t Mod_id, uint8_t MBMS_flag = RC.rrc[Mod_id]->carrier[CC_id].MBMS_flag; #endif -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) //TTN - for D2D SystemInformationBlockType18_r12_t **sib18 = &RC.rrc[Mod_id]->carrier[CC_id].sib18; SystemInformationBlockType19_r12_t **sib19 = &RC.rrc[Mod_id]->carrier[CC_id].sib19; @@ -649,7 +636,7 @@ uint8_t do_SIB23(uint8_t Mod_id, #endif -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) //TTN - for D2D sib18_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); sib19_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); @@ -673,11 +660,6 @@ uint8_t do_SIB23(uint8_t Mod_id, (*sib2)->ac_BarringInfo = NULL; #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) -#if 0 - (*sib2)->ssac_BarringForMMTEL_Voice_r9 = NULL; - (*sib2)->ssac_BarringForMMTEL_Video_r9 = NULL; - (*sib2)->ac_BarringForCSFB_r10 = NULL; -#endif (*sib2)->ext1 = NULL; (*sib2)->ext2 = NULL; #endif @@ -761,10 +743,10 @@ uint8_t do_SIB23(uint8_t Mod_id, = configuration->pucch_nRB_CQI[CC_id]; (*sib2)->radioResourceConfigCommon.pucch_ConfigCommon.nCS_AN = configuration->pucch_nCS_AN[CC_id]; -#if (RRC_VERSION < MAKE_VERSION(10, 0, 0)) +//#if (RRC_VERSION < MAKE_VERSION(10, 0, 0)) (*sib2)->radioResourceConfigCommon.pucch_ConfigCommon.n1PUCCH_AN = configuration->pucch_n1_AN[CC_id]; -#endif +//#endif // SRS Config if (configuration->srs_enable[CC_id]==1) { @@ -970,12 +952,6 @@ uint8_t do_SIB23(uint8_t Mod_id, /// (*SIB3) #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) (*sib3)->ext1 = NULL; -#if 0 - (*sib3)->s_IntraSearch_v920=NULL; - (*sib3)->s_NonIntraSearch_v920=NULL; - (*sib3)->q_QualMin_r9=NULL; - (*sib3)->threshServingLowQ_r9=NULL; -#endif #endif (*sib3)->cellReselectionInfoCommon.q_Hyst=SystemInformationBlockType3__cellReselectionInfoCommon__q_Hyst_dB4; @@ -1003,7 +979,7 @@ uint8_t do_SIB23(uint8_t Mod_id, // SIB13 // fill in all elements of SIB13 if present -#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) if (MBMS_flag > 0 ) { // Notification for mcch change @@ -1063,7 +1039,7 @@ uint8_t do_SIB23(uint8_t Mod_id, #endif -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) //TTN - for D2D // SIB18 //commRxPool_r12 @@ -1375,26 +1351,13 @@ uint8_t do_SIB23(uint8_t Mod_id, if (MBMS_flag > 0) { ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list,sib13_part); } - -#if 0 - /* TODO: this is disabled for the moment. - * Maybe we shouldn't put this together with SIBs 2/3. - * The problem is that the MAC message is now 92 bytes, which - * is too much in the SIB scheduler (the scheduler allocates - * 4 RBs with max MCS 8). - */ - //for D2D - ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list, sib18_part); - ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list, sib19_part); - ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list, sib21_part); -#endif - #endif #ifdef XER_PRINT xer_fprint(stdout, &asn_DEF_BCCH_DL_SCH_Message, (void*)bcch_message); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_BCCH_DL_SCH_Message, + NULL, (void*)bcch_message, buffer, 900); @@ -1436,7 +1399,6 @@ uint8_t do_RRCConnectionRequest(uint8_t Mod_id, uint8_t *buffer,uint8_t *rv) asn_enc_rval_t enc_rval; uint8_t buf[5],buf2=0; - uint8_t ecause=0; UL_CCCH_Message_t ul_ccch_msg; @@ -1483,6 +1445,7 @@ uint8_t do_RRCConnectionRequest(uint8_t Mod_id, uint8_t *buffer,uint8_t *rv) enc_rval = uper_encode_to_buffer(&asn_DEF_UL_CCCH_Message, + NULL, (void*)&ul_ccch_msg, buffer, 100); @@ -1508,7 +1471,7 @@ uint8_t do_RRCConnectionRequest(uint8_t Mod_id, uint8_t *buffer,uint8_t *rv) # endif #endif - LOG_D(RRC,"[UE] RRCConnectionRequest Encoded %zd bits (%zd bytes), ecause %d\n",enc_rval.encoded,(enc_rval.encoded+7)/8,ecause); + LOG_D(RRC,"[UE] RRCConnectionRequest Encoded %zd bits (%zd bytes) \n",enc_rval.encoded,(enc_rval.encoded+7)/8); return((enc_rval.encoded+7)/8); @@ -1650,6 +1613,7 @@ uint8_t do_SidelinkUEInformation(uint8_t Mod_id, uint8_t *buffer, SL_Destinatio enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message, + NULL, (void*)&ul_dcch_msg, buffer, 100); @@ -1734,6 +1698,7 @@ uint8_t do_RRCConnectionSetupComplete(uint8_t Mod_id, uint8_t *buffer, const uin */ enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message, + NULL, (void*)&ul_dcch_msg, buffer, 100); @@ -1794,6 +1759,7 @@ do_RRCConnectionReconfigurationComplete( rrcConnectionReconfigurationComplete->criticalExtensions.choice.rrcConnectionReconfigurationComplete_r8.nonCriticalExtension=NULL; enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message, + NULL, (void*)&ul_dcch_msg, buffer, 100); @@ -1839,7 +1805,6 @@ do_RRCConnectionSetup( { asn_enc_rval_t enc_rval; - uint8_t ecause=0; eNB_RRC_INST *rrc = RC.rrc[ctxt_pP->module_id]; rrc_eNB_carrier_data_t *carrier = &rrc->carrier[CC_id]; @@ -1860,6 +1825,8 @@ do_RRCConnectionSetup( RRCConnectionSetup_t* rrcConnectionSetup = NULL; + LTE_DL_FRAME_PARMS *frame_parms = &RC.eNB[ctxt_pP->module_id][CC_id]->frame_parms; + memset((void *)&dl_ccch_msg,0,sizeof(DL_CCCH_Message_t)); dl_ccch_msg.message.present = DL_CCCH_MessageType_PR_c1; dl_ccch_msg.message.choice.c1.present = DL_CCCH_MessageType__c1_PR_rrcConnectionSetup; @@ -2125,7 +2092,28 @@ do_RRCConnectionSetup( // SchedulingRequestConfig physicalConfigDedicated2->schedulingRequestConfig->present = SchedulingRequestConfig_PR_setup; - physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_PUCCH_ResourceIndex = 71 - ue_context_pP->local_uid/10;//ue_context_pP->local_uid; + if (carrier->sib1->tdd_Config == NULL) { + physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_PUCCH_ResourceIndex = 71 - ue_context_pP->local_uid/10;//ue_context_pP->local_uid; + } else { + switch (carrier->sib1->tdd_Config->subframeAssignment) { + case 1: + switch(frame_parms->N_RB_UL){ + case 25: + physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_PUCCH_ResourceIndex = 15 - ue_context_pP->local_uid/4; + break; + case 50: + physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_PUCCH_ResourceIndex = 31 - ue_context_pP->local_uid/4; + break; + case 100: + physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_PUCCH_ResourceIndex = 63 - ue_context_pP->local_uid/4; + break; + } + break; + default: + physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_PUCCH_ResourceIndex = 71 - ue_context_pP->local_uid/10;//ue_context_pP->local_uid; + break; + } + } if (carrier->sib1->tdd_Config == NULL) { // FDD physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_ConfigIndex = 5+(ue_context_pP->local_uid%10); // Isr = 5 (every 10 subframes, offset=2+UE_id mod3) @@ -2181,12 +2169,16 @@ do_RRCConnectionSetup( xer_fprint(stdout, &asn_DEF_DL_CCCH_Message, (void*)&dl_ccch_msg); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message, + NULL, (void*)&dl_ccch_msg, buffer, 100); - AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); - + if(enc_rval.encoded == -1) + { + LOG_I(RRC, "[eNB AssertFatal]ASN1 message encoding failed (%s, %lu)!\n", + enc_rval.failed_type->name, enc_rval.encoded); + return -1; + } #if defined(ENABLE_ITTI) # if !defined(DISABLE_XER_SPRINT) { @@ -2206,8 +2198,8 @@ do_RRCConnectionSetup( # endif #endif - LOG_D(RRC,"RRCConnectionSetup Encoded %zd bits (%zd bytes), ecause %d\n", - enc_rval.encoded,(enc_rval.encoded+7)/8,ecause); + LOG_D(RRC,"RRCConnectionSetup Encoded %zd bits (%zd bytes) \n", + enc_rval.encoded,(enc_rval.encoded+7)/8); // FREEMEM(SRB_list); // free(SRB1_config); @@ -2252,12 +2244,16 @@ do_SecurityModeCommand( xer_fprint(stdout, &asn_DEF_DL_DCCH_Message, (void*)&dl_dcch_msg); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message, + NULL, (void*)&dl_dcch_msg, buffer, 100); - AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); - + if(enc_rval.encoded == -1) + { + LOG_I(RRC, "[eNB AssertFatal]ASN1 message encoding failed (%s, %lu)!\n", + enc_rval.failed_type->name, enc_rval.encoded); + return -1; + } #if defined(ENABLE_ITTI) # if !defined(DISABLE_XER_SPRINT) { @@ -2328,12 +2324,16 @@ do_UECapabilityEnquiry( xer_fprint(stdout, &asn_DEF_DL_DCCH_Message, (void*)&dl_dcch_msg); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message, + NULL, (void*)&dl_dcch_msg, buffer, 100); - AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); - + if(enc_rval.encoded == -1) + { + LOG_I(RRC, "[eNB AssertFatal]ASN1 message encoding failed (%s, %lu)!\n", + enc_rval.failed_type->name, enc_rval.encoded); + return -1; + } #if defined(ENABLE_ITTI) # if !defined(DISABLE_XER_SPRINT) { @@ -2529,12 +2529,16 @@ do_RRCConnectionReconfiguration( } enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message, + NULL, (void*)&dl_dcch_msg, buffer, RRC_BUF_SIZE); - AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %zd)!\n", - enc_rval.failed_type->name, enc_rval.encoded); - + if(enc_rval.encoded == -1) + { + LOG_I(RRC, "[eNB AssertFatal]ASN1 message encoding failed (%s, %lu)!\n", + enc_rval.failed_type->name, enc_rval.encoded); + return -1; + } #ifdef XER_PRINT xer_fprint(stdout,&asn_DEF_DL_DCCH_Message,(void*)&dl_dcch_msg); #endif @@ -2742,12 +2746,16 @@ do_RRCConnectionReestablishment( xer_fprint(stdout, &asn_DEF_DL_CCCH_Message, (void*)&dl_ccch_msg); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message, + NULL, (void*)&dl_ccch_msg, buffer, 100); - AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); - + if(enc_rval.encoded == -1) + { + LOG_I(RRC, "[eNB AssertFatal]ASN1 message encoding failed (%s, %lu)!\n", + enc_rval.failed_type->name, enc_rval.encoded); + return -1; + } #if defined(ENABLE_ITTI) # if !defined(DISABLE_XER_SPRINT) { @@ -2800,12 +2808,16 @@ do_RRCConnectionReestablishmentReject( xer_fprint(stdout, &asn_DEF_DL_CCCH_Message, (void*)&dl_ccch_msg); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message, + NULL, (void*)&dl_ccch_msg, buffer, 100); - AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); - + if(enc_rval.encoded == -1) + { + LOG_I(RRC, "[eNB AssertFatal]ASN1 message encoding failed (%s, %lu)!\n", + enc_rval.failed_type->name, enc_rval.encoded); + return -1; + } #if defined(ENABLE_ITTI) # if !defined(DISABLE_XER_SPRINT) { @@ -2859,12 +2871,16 @@ do_RRCConnectionReject( xer_fprint(stdout, &asn_DEF_DL_CCCH_Message, (void*)&dl_ccch_msg); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message, + NULL, (void*)&dl_ccch_msg, buffer, 100); - AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %ld)!\n", - enc_rval.failed_type->name, enc_rval.encoded); - + if(enc_rval.encoded == -1) + { + LOG_I(RRC, "[eNB AssertFatal]ASN1 message encoding failed (%s, %lu)!\n", + enc_rval.failed_type->name, enc_rval.encoded); + return -1; + } #if defined(ENABLE_ITTI) # if !defined(DISABLE_XER_SPRINT) { @@ -2921,6 +2937,7 @@ uint8_t do_RRCConnectionRelease( sizeof(*rrcConnectionRelease->criticalExtensions.choice.c1.choice.rrcConnectionRelease_r8.nonCriticalExtension)); enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message, + NULL, (void*)&dl_dcch_msg, buffer, RRC_BUF_SIZE); @@ -3048,12 +3065,16 @@ uint8_t do_MBSFNAreaConfig(uint8_t Mod_id, xer_fprint(stdout,&asn_DEF_MCCH_Message,(void*)mcch_message); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_MCCH_Message, + NULL, (void*)mcch_message, buffer, 100); - AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); - + if(enc_rval.encoded == -1) + { + LOG_I(RRC, "[eNB AssertFatal]ASN1 message encoding failed (%s, %lu)!\n", + enc_rval.failed_type->name, enc_rval.encoded); + return -1; + } #if defined(ENABLE_ITTI) # if !defined(DISABLE_XER_SPRINT) { @@ -3177,15 +3198,16 @@ uint8_t do_MeasurementReport(uint8_t Mod_id, uint8_t *buffer,int measid,int phy_ measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.measResults.measResultNeighCells->choice.measResultListEUTRA=*(measResultListEUTRA2); enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message, + NULL, (void*)&ul_dcch_msg, buffer, 100); - - - - AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); - + if(enc_rval.encoded == -1) + { + LOG_I(RRC, "[eNB AssertFatal]ASN1 message encoding failed (%s, %lu)!\n", + enc_rval.failed_type->name, enc_rval.encoded); + return -1; + } #if defined(ENABLE_ITTI) # if !defined(DISABLE_XER_SPRINT) { @@ -3310,10 +3332,13 @@ uint8_t do_Paging(uint8_t Mod_id, uint8_t *buffer, ue_paging_identity_t ue_pagin LOG_D(RRC, "[eNB %d] do_Paging paging_record: cn_Domain %ld, ue_paging_identity.presenceMask %d, PagingRecordList.count %d\n", Mod_id, paging_record_p->cn_Domain, ue_paging_identity.presenceMask, pcch_msg.message.choice.c1.choice.paging.pagingRecordList->list.count); - enc_rval = uper_encode_to_buffer(&asn_DEF_PCCH_Message, (void*)&pcch_msg, buffer, RRC_BUF_SIZE); - - AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); + enc_rval = uper_encode_to_buffer(&asn_DEF_PCCH_Message, NULL, (void*)&pcch_msg, buffer, RRC_BUF_SIZE); + if(enc_rval.encoded == -1) + { + LOG_I(RRC, "[eNB AssertFatal]ASN1 message encoding failed (%s, %lu)!\n", + enc_rval.failed_type->name, enc_rval.encoded); + return -1; + } #ifdef XER_PRINT xer_fprint(stdout, &asn_DEF_PCCH_Message, (void*)&pcch_msg); #endif @@ -3483,6 +3508,7 @@ OAI_UECapability_t *fill_ue_capability(char *UE_EUTRA_Capability_xer_fname) xer_fprint(stdout,&asn_DEF_UE_EUTRA_Capability,(void *)UE_EUTRA_Capability); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_UE_EUTRA_Capability, + NULL, (void*)UE_EUTRA_Capability, &UECapability.sdu[0], MAX_UE_CAPABILITY_SIZE); diff --git a/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c b/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c index 2d91828861..cdfc1ac0f3 100644 --- a/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c +++ b/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c @@ -34,7 +34,7 @@ #include /* for strerror(3) */ #include /* for EX_* exit codes */ #include /* for errno */ -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include #include /* for _ASN_DEFAULT_STACK_MAX */ #include @@ -131,6 +131,7 @@ uint8_t do_MIB_NB_IoT( (uint32_t)hsfn_LSB); enc_rval = uper_encode_to_buffer(&asn_DEF_BCCH_BCH_Message_NB, + NULL, (void*)mib_NB_IoT, carrier->MIB_NB_IoT, 100); @@ -387,6 +388,7 @@ uint8_t do_SIB1_NB_IoT(uint8_t Mod_id, int CC_id, enc_rval = uper_encode_to_buffer(&asn_DEF_BCCH_DL_SCH_Message_NB, + NULL, (void*)bcch_message, carrier->SIB1_NB_IoT, 100); @@ -669,6 +671,7 @@ uint8_t do_SIB23_NB_IoT(uint8_t Mod_id, xer_fprint(stdout, &asn_DEF_BCCH_DL_SCH_Message_NB, (void*)bcch_message); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_BCCH_DL_SCH_Message_NB, + NULL, (void*)bcch_message, carrier->SIB23_NB_IoT, 900); @@ -888,6 +891,7 @@ uint8_t do_RRCConnectionSetup_NB_IoT( xer_fprint(stdout, &asn_DEF_DL_CCCH_Message, (void*)&dl_ccch_msg); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message_NB, + NULL, (void*)&dl_ccch_msg_NB_IoT, buffer, 100); @@ -939,6 +943,7 @@ uint8_t do_SecurityModeCommand_NB_IoT( xer_fprint(stdout, &asn_DEF_DL_DCCH_Message_NB, (void*)&dl_dcch_msg_NB_IoT); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message_NB, + NULL, (void*)&dl_dcch_msg_NB_IoT, buffer, 100); @@ -1000,6 +1005,7 @@ uint8_t do_UECapabilityEnquiry_NB_IoT( xer_fprint(stdout, &asn_DEF_DL_DCCH_Message_NB, (void*)&dl_dcch_msg_NB_IoT); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message_NB, + NULL, (void*)&dl_dcch_msg_NB_IoT, buffer, 100); @@ -1094,6 +1100,7 @@ uint16_t do_RRCConnectionReconfiguration_NB_IoT( rrcConnectionReconfiguration_NB->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r13.fullConfig_r13 = NULL; enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message_NB, + NULL, (void*)&dl_dcch_msg_NB_IoT, buffer, RRC_BUF_SIZE); @@ -1140,6 +1147,7 @@ uint8_t do_RRCConnectionReestablishmentReject_NB_IoT( xer_fprint(stdout, &asn_DEF_DL_CCCH_Message_NB, (void*)&dl_ccch_msg_NB_IoT); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message_NB, + NULL, (void*)&dl_ccch_msg_NB_IoT, buffer, 100); @@ -1210,6 +1218,7 @@ uint8_t do_RRCConnectionReject_NB_IoT( xer_fprint(stdout, &asn_DEF_DL_CCCH_Message_NB, (void*)&dl_ccch_msg); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message_NB, + NULL, (void*)&dl_ccch_msg_NB_IoT, buffer, 100); @@ -1336,6 +1345,7 @@ uint8_t do_RRCConnectionReestablishment_NB_IoT( rrcConnectionReestablishment_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionReestablishment_r13.nextHopChainingCount_r13=0; enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message_NB, + NULL, (void*)&dl_ccch_msg_NB_IoT, buffer, RRC_BUF_SIZE); @@ -1405,6 +1415,7 @@ uint8_t do_RRCConnectionRelease_NB_IoT( sizeof(*rrcConnectionRelease_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionRelease_r13.nonCriticalExtension)); enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message_NB, + NULL, (void*)&dl_dcch_msg_NB_IoT, buffer, RRC_BUF_SIZE);//check diff --git a/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.h b/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.h index 6fb073f80d..6b56be1022 100644 --- a/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.h +++ b/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.h @@ -44,7 +44,7 @@ #include /* for _ASN_DEFAULT_STACK_MAX */ -#include "RRC/LITE/defs_NB_IoT.h" +#include "RRC/LTE/defs_NB_IoT.h" /* * The variant of the above function which dumps the BASIC-XER (XER_F_BASIC) diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-10.21.0.asn1 b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-10.21.0.asn1 new file mode 100755 index 0000000000..685d4cfcb0 --- /dev/null +++ b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-10.21.0.asn1 @@ -0,0 +1,4978 @@ + +EUTRA-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + + +BCCH-BCH-Message ::= SEQUENCE { + message BCCH-BCH-MessageType +} + +BCCH-BCH-MessageType ::= MasterInformationBlock + + +BCCH-DL-SCH-Message ::= SEQUENCE { + message BCCH-DL-SCH-MessageType +} + +BCCH-DL-SCH-MessageType ::= CHOICE { + c1 CHOICE { + systemInformation SystemInformation, + systemInformationBlockType1 SystemInformationBlockType1 + }, + messageClassExtension SEQUENCE {} +} + + +MCCH-Message ::= SEQUENCE { + message MCCH-MessageType +} + +MCCH-MessageType ::= CHOICE { + c1 CHOICE { + mbsfnAreaConfiguration-r9 MBSFNAreaConfiguration-r9 + }, + later CHOICE { + c2 CHOICE{ + mbmsCountingRequest-r10 MBMSCountingRequest-r10 + }, + messageClassExtension SEQUENCE {} + } +} + + +PCCH-Message ::= SEQUENCE { + message PCCH-MessageType +} + +PCCH-MessageType ::= CHOICE { + c1 CHOICE { + paging Paging + }, + messageClassExtension SEQUENCE {} +} + + +DL-CCCH-Message ::= SEQUENCE { + message DL-CCCH-MessageType +} + +DL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishment RRCConnectionReestablishment, + rrcConnectionReestablishmentReject RRCConnectionReestablishmentReject, + rrcConnectionReject RRCConnectionReject, + rrcConnectionSetup RRCConnectionSetup + }, + messageClassExtension SEQUENCE {} +} + + +DL-DCCH-Message ::= SEQUENCE { + message DL-DCCH-MessageType +} + +DL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + csfbParametersResponseCDMA2000 CSFBParametersResponseCDMA2000, + dlInformationTransfer DLInformationTransfer, + handoverFromEUTRAPreparationRequest HandoverFromEUTRAPreparationRequest, + mobilityFromEUTRACommand MobilityFromEUTRACommand, + rrcConnectionReconfiguration RRCConnectionReconfiguration, + rrcConnectionRelease RRCConnectionRelease, + securityModeCommand SecurityModeCommand, + ueCapabilityEnquiry UECapabilityEnquiry, + counterCheck CounterCheck, + ueInformationRequest-r9 UEInformationRequest-r9, + loggedMeasurementConfiguration-r10 LoggedMeasurementConfiguration-r10, + rnReconfiguration-r10 RNReconfiguration-r10, + spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +UL-CCCH-Message ::= SEQUENCE { + message UL-CCCH-MessageType +} + +UL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishmentRequest RRCConnectionReestablishmentRequest, + rrcConnectionRequest RRCConnectionRequest + }, + messageClassExtension SEQUENCE {} +} + + +UL-DCCH-Message ::= SEQUENCE { + message UL-DCCH-MessageType +} + +UL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + csfbParametersRequestCDMA2000 CSFBParametersRequestCDMA2000, + measurementReport MeasurementReport, + rrcConnectionReconfigurationComplete RRCConnectionReconfigurationComplete, + rrcConnectionReestablishmentComplete RRCConnectionReestablishmentComplete, + rrcConnectionSetupComplete RRCConnectionSetupComplete, + securityModeComplete SecurityModeComplete, + securityModeFailure SecurityModeFailure, + ueCapabilityInformation UECapabilityInformation, + ulHandoverPreparationTransfer ULHandoverPreparationTransfer, + ulInformationTransfer ULInformationTransfer, + counterCheckResponse CounterCheckResponse, + ueInformationResponse-r9 UEInformationResponse-r9, + proximityIndication-r9 ProximityIndication-r9, + rnReconfigurationComplete-r10 RNReconfigurationComplete-r10, + mbmsCountingResponse-r10 MBMSCountingResponse-r10, + interFreqRSTDMeasurementIndication-r10 InterFreqRSTDMeasurementIndication-r10 + }, + messageClassExtension SEQUENCE {} +} + + +CounterCheck ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + counterCheck-r8 CounterCheck-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheck-r8-IEs ::= SEQUENCE { + drb-CountMSB-InfoList DRB-CountMSB-InfoList, + nonCriticalExtension CounterCheck-v8a0-IEs OPTIONAL +} + +CounterCheck-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +DRB-CountMSB-InfoList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-CountMSB-Info + +DRB-CountMSB-Info ::= SEQUENCE { + drb-Identity DRB-Identity, + countMSB-Uplink INTEGER(0..33554431), + countMSB-Downlink INTEGER(0..33554431) +} + + +CounterCheckResponse ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + counterCheckResponse-r8 CounterCheckResponse-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheckResponse-r8-IEs ::= SEQUENCE { + drb-CountInfoList DRB-CountInfoList, + nonCriticalExtension CounterCheckResponse-v8a0-IEs OPTIONAL +} + +CounterCheckResponse-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-CountInfoList ::= SEQUENCE (SIZE (0..maxDRB)) OF DRB-CountInfo + +DRB-CountInfo ::= SEQUENCE { + drb-Identity DRB-Identity, + count-Uplink INTEGER(0..4294967295), + count-Downlink INTEGER(0..4294967295) +} + + +CSFBParametersRequestCDMA2000 ::= SEQUENCE { + criticalExtensions CHOICE { + csfbParametersRequestCDMA2000-r8 CSFBParametersRequestCDMA2000-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CSFBParametersRequestCDMA2000-r8-IEs ::= SEQUENCE { + nonCriticalExtension CSFBParametersRequestCDMA2000-v8a0-IEs OPTIONAL +} + +CSFBParametersRequestCDMA2000-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +CSFBParametersResponseCDMA2000 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + csfbParametersResponseCDMA2000-r8 CSFBParametersResponseCDMA2000-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CSFBParametersResponseCDMA2000-r8-IEs ::= SEQUENCE { + rand RAND-CDMA2000, + mobilityParameters MobilityParametersCDMA2000, + nonCriticalExtension CSFBParametersResponseCDMA2000-v8a0-IEs OPTIONAL +} + +CSFBParametersResponseCDMA2000-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + + +DLInformationTransfer ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + dlInformationTransfer-r8 DLInformationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +DLInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType CHOICE { + dedicatedInfoNAS DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000 + }, + nonCriticalExtension DLInformationTransfer-v8a0-IEs OPTIONAL +} + +DLInformationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + + +HandoverFromEUTRAPreparationRequest ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + handoverFromEUTRAPreparationRequest-r8 + HandoverFromEUTRAPreparationRequest-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverFromEUTRAPreparationRequest-r8-IEs ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + rand RAND-CDMA2000 OPTIONAL, -- Cond cdma2000-Type + mobilityParameters MobilityParametersCDMA2000 OPTIONAL, -- Cond cdma2000-Type + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v890-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v920-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v920-IEs ::= SEQUENCE { + concurrPrepCDMA2000-HRPD-r9 BOOLEAN OPTIONAL, -- Cond cdma2000-Type + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v1020-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v1020-IEs ::= SEQUENCE { + dualRxTxRedirectIndicator-r10 ENUMERATED {true} OPTIONAL, -- Cond cdma2000-1XRTT + redirectCarrierCDMA2000-1XRTT-r10 CarrierFreqCDMA2000 OPTIONAL, -- Cond dualRxTxRedirect + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + + +InterFreqRSTDMeasurementIndication-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + interFreqRSTDMeasurementIndication-r10 InterFreqRSTDMeasurementIndication-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +InterFreqRSTDMeasurementIndication-r10-IEs ::= SEQUENCE { + rstd-InterFreqIndication-r10 CHOICE { + start SEQUENCE { + rstd-InterFreqInfoList-r10 RSTD-InterFreqInfoList-r10 + }, + stop NULL + }, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RSTD-InterFreqInfoList-r10 ::= SEQUENCE (SIZE(1..maxRSTD-Freq-r10)) OF RSTD-InterFreqInfo-r10 + +RSTD-InterFreqInfo-r10 ::= SEQUENCE { + carrierFreq-r10 ARFCN-ValueEUTRA, + measPRS-Offset-r10 INTEGER (0..39), + ..., + [[ carrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL + ]] +} + + +LoggedMeasurementConfiguration-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + loggedMeasurementConfiguration-r10 LoggedMeasurementConfiguration-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + + +LoggedMeasurementConfiguration-r10-IEs ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, -- Need OR + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10, + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP + +} + + +MasterInformationBlock ::= SEQUENCE { + dl-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100}, + phich-Config PHICH-Config, + systemFrameNumber BIT STRING (SIZE (8)), + spare BIT STRING (SIZE (10)) +} + + + +MBMSCountingRequest-r10 ::= SEQUENCE { + countingRequestList-r10 CountingRequestList-r10, + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +CountingRequestList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingRequestInfo-r10 + +CountingRequestInfo-r10 ::= SEQUENCE { + tmgi-r10 TMGI-r9, + ... +} + + +MBMSCountingResponse-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + countingResponse-r10 MBMSCountingResponse-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MBMSCountingResponse-r10-IEs ::= SEQUENCE { + mbsfn-AreaIndex-r10 INTEGER (0..maxMBSFN-Area-1) OPTIONAL, + countingResponseList-r10 CountingResponseList-r10 OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CountingResponseList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingResponseInfo-r10 + +CountingResponseInfo-r10 ::= SEQUENCE { + countingResponseService-r10 INTEGER (0..maxServiceCount-1), + ... +} + + +MBSFNAreaConfiguration-r9 ::= SEQUENCE { + commonSF-Alloc-r9 CommonSF-AllocPatternList-r9, + commonSF-AllocPeriod-r9 ENUMERATED { + rf4, rf8, rf16, rf32, rf64, rf128, rf256}, + pmch-InfoList-r9 PMCH-InfoList-r9, + nonCriticalExtension MBSFNAreaConfiguration-v930-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +CommonSF-AllocPatternList-r9 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig + + +MeasurementReport ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + measurementReport-r8 MeasurementReport-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MeasurementReport-r8-IEs ::= SEQUENCE { + measResults MeasResults, + nonCriticalExtension MeasurementReport-v8a0-IEs OPTIONAL +} + +MeasurementReport-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MobilityFromEUTRACommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + mobilityFromEUTRACommand-r8 MobilityFromEUTRACommand-r8-IEs, + mobilityFromEUTRACommand-r9 MobilityFromEUTRACommand-r9-IEs, + spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MobilityFromEUTRACommand-r8-IEs ::= SEQUENCE { + cs-FallbackIndicator BOOLEAN, + purpose CHOICE{ + handover Handover, + cellChangeOrder CellChangeOrder + }, + nonCriticalExtension MobilityFromEUTRACommand-v8a0-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension MobilityFromEUTRACommand-v8d0-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v8d0-IEs ::= SEQUENCE { + bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +MobilityFromEUTRACommand-r9-IEs ::= SEQUENCE { + cs-FallbackIndicator BOOLEAN, + purpose CHOICE{ + handover Handover, + cellChangeOrder CellChangeOrder, + e-CSFB-r9 E-CSFB-r9, + ... + }, + nonCriticalExtension MobilityFromEUTRACommand-v930-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension MobilityFromEUTRACommand-v960-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v960-IEs ::= SEQUENCE { + bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +Handover ::= SEQUENCE { + targetRAT-Type ENUMERATED { + utra, geran, cdma2000-1XRTT, cdma2000-HRPD, + spare4, spare3, spare2, spare1, ...}, + targetRAT-MessageContainer OCTET STRING, + nas-SecurityParamFromEUTRA OCTET STRING (SIZE (1)) OPTIONAL, -- Cond UTRAGERAN + systemInformation SI-OrPSI-GERAN OPTIONAL -- Cond PSHO +} + +CellChangeOrder ::= SEQUENCE { + t304 ENUMERATED { + ms100, ms200, ms500, ms1000, + ms2000, ms4000, ms8000, spare1}, + targetRAT-Type CHOICE { + geran SEQUENCE { + physCellId PhysCellIdGERAN, + carrierFreq CarrierFreqGERAN, + networkControlOrder BIT STRING (SIZE (2)) OPTIONAL, -- Need OP + systemInformation SI-OrPSI-GERAN OPTIONAL -- Need OP + }, + ... + } +} + +SI-OrPSI-GERAN ::= CHOICE { + si SystemInfoListGERAN, + psi SystemInfoListGERAN +} + +E-CSFB-r9 ::= SEQUENCE { + messageContCDMA2000-1XRTT-r9 OCTET STRING OPTIONAL, -- Need ON + mobilityCDMA2000-HRPD-r9 ENUMERATED { + handover, redirection + } OPTIONAL, -- Need OP + messageContCDMA2000-HRPD-r9 OCTET STRING OPTIONAL, -- Cond concHO + redirectCarrierCDMA2000-HRPD-r9 CarrierFreqCDMA2000 OPTIONAL -- Cond concRedir +} + + +Paging ::= SEQUENCE { + pagingRecordList PagingRecordList OPTIONAL, -- Need ON + systemInfoModification ENUMERATED {true} OPTIONAL, -- Need ON + etws-Indication ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v890-IEs OPTIONAL +} + +Paging-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension Paging-v920-IEs OPTIONAL +} + +Paging-v920-IEs ::= SEQUENCE { + cmas-Indication-r9 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +PagingRecordList ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord + +PagingRecord ::= SEQUENCE { + ue-Identity PagingUE-Identity, + cn-Domain ENUMERATED {ps, cs}, + ... +} + +PagingUE-Identity ::= CHOICE { + s-TMSI S-TMSI, + imsi IMSI, + ... +} + +IMSI ::= SEQUENCE (SIZE (6..21)) OF IMSI-Digit + +IMSI-Digit ::= INTEGER (0..9) + + +ProximityIndication-r9 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + proximityIndication-r9 ProximityIndication-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ProximityIndication-r9-IEs ::= SEQUENCE { + type-r9 ENUMERATED {entering, leaving}, + carrierFreq-r9 CHOICE { + eutra-r9 ARFCN-ValueEUTRA, + utra-r9 ARFCN-ValueUTRA, + ..., + eutra2-v9e0 ARFCN-ValueEUTRA-v9e0 + }, + nonCriticalExtension ProximityIndication-v930-IEs OPTIONAL +} + +ProximityIndication-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RNReconfiguration-r10 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rnReconfiguration-r10 RNReconfiguration-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RNReconfiguration-r10-IEs ::= SEQUENCE { + rn-SystemInfo-r10 RN-SystemInfo-r10 OPTIONAL, -- Need ON + rn-SubframeConfig-r10 RN-SubframeConfig-r10 OPTIONAL, -- Need ON + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +RN-SystemInfo-r10 ::= SEQUENCE { + systemInformationBlockType1-r10 OCTET STRING (CONTAINING SystemInformationBlockType1) OPTIONAL, -- Need ON + systemInformationBlockType2-r10 SystemInformationBlockType2 OPTIONAL, -- Need ON + ... +} + + +RNReconfigurationComplete-r10 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rnReconfigurationComplete-r10 RNReconfigurationComplete-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RNReconfigurationComplete-r10-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReconfiguration ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReconfiguration-r8 RRCConnectionReconfiguration-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfiguration-r8-IEs ::= SEQUENCE { + measConfig MeasConfig OPTIONAL, -- Need ON + mobilityControlInfo MobilityControlInfo OPTIONAL, -- Cond HO + dedicatedInfoNASList SEQUENCE (SIZE(1..maxDRB)) OF + DedicatedInfoNAS OPTIONAL, -- Cond nonHO + radioResourceConfigDedicated RadioResourceConfigDedicated OPTIONAL, -- Cond HO-toEUTRA + securityConfigHO SecurityConfigHO OPTIONAL, -- Cond HO + nonCriticalExtension RRCConnectionReconfiguration-v890-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING RRCConnectionReconfiguration-v8m0-IEs) OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v920-IEs OPTIONAL +} + +-- Late non-critical extensions: +RRCConnectionReconfiguration-v8m0-IEs ::= SEQUENCE { + -- Following field is only for pre REL-10 late non-critical extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v10i0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v10i0-IEs ::= SEQUENCE { + antennaInfoDedicatedPCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL, -- Need ON + -- Following field is only for late non-critical extensions for REL-10 + nonCriticalExtension RRCConnectionReconfiguration-v10l0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v10l0-IEs ::= SEQUENCE { + mobilityControlInfo-v10l0 MobilityControlInfo-v10l0 OPTIONAL, + sCellToAddModList-v10l0 SCellToAddModList-v10l0 OPTIONAL, -- Need ON + -- Following field is only for late non-critical extensions from REL-10 to REL-11 + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +RRCConnectionReconfiguration-v920-IEs ::= SEQUENCE { + otherConfig-r9 OtherConfig-r9 OPTIONAL, -- Need ON + fullConfig-r9 ENUMERATED {true} OPTIONAL, -- Cond HO-Reestab + nonCriticalExtension RRCConnectionReconfiguration-v1020-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1020-IEs ::= SEQUENCE { + sCellToReleaseList-r10 SCellToReleaseList-r10 OPTIONAL, -- Need ON + sCellToAddModList-r10 SCellToAddModList-r10 OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +SCellToAddModList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-r10 + +SCellToAddModList-v10l0 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-v10l0 + +SCellToAddMod-r10 ::= SEQUENCE { + sCellIndex-r10 SCellIndex-r10, + cellIdentification-r10 SEQUENCE { + physCellId-r10 PhysCellId, + dl-CarrierFreq-r10 ARFCN-ValueEUTRA + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonSCell-r10 RadioResourceConfigCommonSCell-r10 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedSCell-r10 RadioResourceConfigDedicatedSCell-r10 OPTIONAL, -- Cond SCellAdd2 + ..., + [[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max + ]], + [[ antennaInfoDedicatedSCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON + ]] +} + +SCellToAddMod-v10l0 ::= SEQUENCE { + radioResourceConfigCommonSCell-v10l0 RadioResourceConfigCommonSCell-v10l0 OPTIONAL +} + +SCellToReleaseList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellIndex-r10 + +SecurityConfigHO ::= SEQUENCE { + handoverType CHOICE { + intraLTE SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig OPTIONAL, -- Cond fullConfig + keyChangeIndicator BOOLEAN, + nextHopChainingCount NextHopChainingCount + }, + interRAT SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig, + nas-SecurityParamToEUTRA OCTET STRING (SIZE(6)) + } + }, + ... +} + + + +RRCConnectionReconfigurationComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReconfigurationComplete-r8 + RRCConnectionReconfigurationComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfigurationComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReconfigurationComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1020-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1020-IEs ::= SEQUENCE { + rlf-InfoAvailable-r10 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishment ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReestablishment-r8 RRCConnectionReestablishment-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishment-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated RadioResourceConfigDedicated, + nextHopChainingCount NextHopChainingCount, + nonCriticalExtension RRCConnectionReestablishment-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishment-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + + +RRCConnectionReestablishmentComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReestablishmentComplete-r8 + RRCConnectionReestablishmentComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReestablishmentComplete-v920-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v920-IEs ::= SEQUENCE { + rlf-InfoAvailable-r9 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1020-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1020-IEs ::= SEQUENCE { + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentReject ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentReject-r8 + RRCConnectionReestablishmentReject-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentReject-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReestablishmentReject-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishmentReject-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + + +RRCConnectionReestablishmentRequest ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentRequest-r8 + RRCConnectionReestablishmentRequest-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentRequest-r8-IEs ::= SEQUENCE { + ue-Identity ReestabUE-Identity, + reestablishmentCause ReestablishmentCause, + spare BIT STRING (SIZE (2)) +} + +ReestabUE-Identity ::= SEQUENCE { + c-RNTI C-RNTI, + physCellId PhysCellId, + shortMAC-I ShortMAC-I +} + +ReestablishmentCause ::= ENUMERATED { + reconfigurationFailure, handoverFailure, + otherFailure, spare1} + + +RRCConnectionReject ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionReject-r8 RRCConnectionReject-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReject-r8-IEs ::= SEQUENCE { + waitTime INTEGER (1..16), + nonCriticalExtension RRCConnectionReject-v8a0-IEs OPTIONAL +} + +RRCConnectionReject-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension RRCConnectionReject-v1020-IEs OPTIONAL +} + +RRCConnectionReject-v1020-IEs ::= SEQUENCE { + extendedWaitTime-r10 INTEGER (1..1800) OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + + +RRCConnectionRelease ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionRelease-r8 RRCConnectionRelease-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRelease-r8-IEs ::= SEQUENCE { + releaseCause ReleaseCause, + redirectedCarrierInfo RedirectedCarrierInfo OPTIONAL, -- Need ON + idleModeMobilityControlInfo IdleModeMobilityControlInfo OPTIONAL, -- Need OP + nonCriticalExtension RRCConnectionRelease-v890-IEs OPTIONAL +} + +RRCConnectionRelease-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING RRCConnectionRelease-v9e0-IEs) OPTIONAL, -- Need OP + nonCriticalExtension RRCConnectionRelease-v920-IEs OPTIONAL +} + +RRCConnectionRelease-v9e0-IEs ::= SEQUENCE { + redirectedCarrierInfo-v9e0 RedirectedCarrierInfo-v9e0 OPTIONAL, -- Cond NoRedirect-r8 + idleModeMobilityControlInfo-v9e0 IdleModeMobilityControlInfo-v9e0 OPTIONAL, -- Cond IdleInfoEUTRA + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +RRCConnectionRelease-v920-IEs ::= SEQUENCE { + cellInfoList-r9 CHOICE { + geran-r9 CellInfoListGERAN-r9, + utra-FDD-r9 CellInfoListUTRA-FDD-r9, + utra-TDD-r9 CellInfoListUTRA-TDD-r9, + ..., + utra-TDD-r10 CellInfoListUTRA-TDD-r10 + } OPTIONAL, -- Cond Redirection + nonCriticalExtension RRCConnectionRelease-v1020-IEs OPTIONAL +} + +RRCConnectionRelease-v1020-IEs ::= SEQUENCE { + extendedWaitTime-r10 INTEGER (1..1800) OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +ReleaseCause ::= ENUMERATED {loadBalancingTAUrequired, + other, cs-FallbackHighPriority-v1020, spare1} + +RedirectedCarrierInfo ::= CHOICE { + eutra ARFCN-ValueEUTRA, + geran CarrierFreqsGERAN, + utra-FDD ARFCN-ValueUTRA, + utra-TDD ARFCN-ValueUTRA, + cdma2000-HRPD CarrierFreqCDMA2000, + cdma2000-1xRTT CarrierFreqCDMA2000, + ..., + utra-TDD-r10 CarrierFreqListUTRA-TDD-r10 +} + +RedirectedCarrierInfo-v9e0 ::= SEQUENCE { + eutra-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +CarrierFreqListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxFreqUTRA-TDD-r10)) OF ARFCN-ValueUTRA + +IdleModeMobilityControlInfo ::= SEQUENCE { + freqPriorityListEUTRA FreqPriorityListEUTRA OPTIONAL, -- Need ON + freqPriorityListGERAN FreqsPriorityListGERAN OPTIONAL, -- Need ON + freqPriorityListUTRA-FDD FreqPriorityListUTRA-FDD OPTIONAL, -- Need ON + freqPriorityListUTRA-TDD FreqPriorityListUTRA-TDD OPTIONAL, -- Need ON + bandClassPriorityListHRPD BandClassPriorityListHRPD OPTIONAL, -- Need ON + bandClassPriorityList1XRTT BandClassPriorityList1XRTT OPTIONAL, -- Need ON + t320 ENUMERATED { + min5, min10, min20, min30, min60, min120, min180, + spare1} OPTIONAL, -- Need OR + ... +} + +IdleModeMobilityControlInfo-v9e0 ::= SEQUENCE { + freqPriorityListEUTRA-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v9e0 +} + +FreqPriorityListEUTRA ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA + +FreqPriorityEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityEUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max +} + +FreqsPriorityListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF FreqsPriorityGERAN + +FreqsPriorityGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF FreqPriorityUTRA-FDD + +FreqPriorityUTRA-FDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF FreqPriorityUTRA-TDD + +FreqPriorityUTRA-TDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority +} + +BandClassPriorityListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriorityHRPD + +BandClassPriorityHRPD ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority +} + +BandClassPriorityList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriority1XRTT + +BandClassPriority1XRTT ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority +} + +CellInfoListGERAN-r9 ::= SEQUENCE (SIZE (1..maxCellInfoGERAN-r9)) OF CellInfoGERAN-r9 + +CellInfoGERAN-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdGERAN, + carrierFreq-r9 CarrierFreqGERAN, + systemInformation-r9 SystemInfoListGERAN +} + +CellInfoListUTRA-FDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-FDD-r9 + +CellInfoUTRA-FDD-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdUTRA-FDD, + utra-BCCH-Container-r9 OCTET STRING +} + +CellInfoListUTRA-TDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r9 + +CellInfoUTRA-TDD-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdUTRA-TDD, + utra-BCCH-Container-r9 OCTET STRING +} + +CellInfoListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r10 + +CellInfoUTRA-TDD-r10 ::= SEQUENCE { + physCellId-r10 PhysCellIdUTRA-TDD, + carrierFreq-r10 ARFCN-ValueUTRA, + utra-BCCH-Container-r10 OCTET STRING +} + + +RRCConnectionRequest ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionRequest-r8 RRCConnectionRequest-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRequest-r8-IEs ::= SEQUENCE { + ue-Identity InitialUE-Identity, + establishmentCause EstablishmentCause, + spare BIT STRING (SIZE (1)) +} + +InitialUE-Identity ::= CHOICE { + s-TMSI S-TMSI, + randomValue BIT STRING (SIZE (40)) +} + +EstablishmentCause ::= ENUMERATED { + emergency, highPriorityAccess, mt-Access, mo-Signalling, + mo-Data, delayTolerantAccess-v1020, spare2, spare1} + + +RRCConnectionSetup ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionSetup-r8 RRCConnectionSetup-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetup-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated RadioResourceConfigDedicated, + nonCriticalExtension RRCConnectionSetup-v8a0-IEs OPTIONAL +} + +RRCConnectionSetup-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + + +RRCConnectionSetupComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionSetupComplete-r8 RRCConnectionSetupComplete-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetupComplete-r8-IEs ::= SEQUENCE { + selectedPLMN-Identity INTEGER (1..6), + registeredMME RegisteredMME OPTIONAL, + dedicatedInfoNAS DedicatedInfoNAS, + nonCriticalExtension RRCConnectionSetupComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1020-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1020-IEs ::= SEQUENCE { + gummei-Type-r10 ENUMERATED {native, mapped} OPTIONAL, + rlf-InfoAvailable-r10 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + rn-SubframeConfigReq-r10 ENUMERATED {required, notRequired} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RegisteredMME ::= SEQUENCE { + plmn-Identity PLMN-Identity OPTIONAL, + mmegi BIT STRING (SIZE (16)), + mmec MMEC +} + + +SecurityModeCommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + securityModeCommand-r8 SecurityModeCommand-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeCommand-r8-IEs ::= SEQUENCE { + securityConfigSMC SecurityConfigSMC, + nonCriticalExtension SecurityModeCommand-v8a0-IEs OPTIONAL +} + +SecurityModeCommand-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +SecurityConfigSMC ::= SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig, + ... +} + + +SecurityModeComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeComplete-r8 SecurityModeComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension SecurityModeComplete-v8a0-IEs OPTIONAL +} + +SecurityModeComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SecurityModeFailure ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeFailure-r8 SecurityModeFailure-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeFailure-r8-IEs ::= SEQUENCE { + nonCriticalExtension SecurityModeFailure-v8a0-IEs OPTIONAL +} + +SecurityModeFailure-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformation ::= SEQUENCE { + criticalExtensions CHOICE { + systemInformation-r8 SystemInformation-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} +SystemInformation-r8-IEs ::= SEQUENCE { + sib-TypeAndInfo SEQUENCE (SIZE (1..maxSIB)) OF CHOICE { + sib2 SystemInformationBlockType2, + sib3 SystemInformationBlockType3, + sib4 SystemInformationBlockType4, + sib5 SystemInformationBlockType5, + sib6 SystemInformationBlockType6, + sib7 SystemInformationBlockType7, + sib8 SystemInformationBlockType8, + sib9 SystemInformationBlockType9, + sib10 SystemInformationBlockType10, + sib11 SystemInformationBlockType11, + ..., + sib12-v920 SystemInformationBlockType12-r9, + sib13-v920 SystemInformationBlockType13-r9 + }, + nonCriticalExtension SystemInformation-v8a0-IEs OPTIONAL +} + +SystemInformation-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + + +SystemInformationBlockType1 ::= SEQUENCE { + cellAccessRelatedInfo SEQUENCE { + plmn-IdentityList PLMN-IdentityList, + trackingAreaCode TrackingAreaCode, + cellIdentity CellIdentity, + cellBarred ENUMERATED {barred, notBarred}, + intraFreqReselection ENUMERATED {allowed, notAllowed}, + csg-Indication BOOLEAN, + csg-Identity CSG-Identity OPTIONAL -- Need OR + }, + cellSelectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + q-RxLevMinOffset INTEGER (1..8) OPTIONAL -- Need OP + }, + p-Max P-Max OPTIONAL, -- Need OP + freqBandIndicator FreqBandIndicator, + schedulingInfoList SchedulingInfoList, + tdd-Config TDD-Config OPTIONAL, -- Cond TDD + si-WindowLength ENUMERATED { + ms1, ms2, ms5, ms10, ms15, ms20, + ms40}, + systemInfoValueTag INTEGER (0..31), + nonCriticalExtension SystemInformationBlockType1-v890-IEs OPTIONAL +} + +SystemInformationBlockType1-v890-IEs::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType1-v8h0-IEs) OPTIONAL, -- Need OP + nonCriticalExtension SystemInformationBlockType1-v920-IEs OPTIONAL +} + +-- Late non critical extensions +SystemInformationBlockType1-v8h0-IEs ::= SEQUENCE { + multiBandInfoList MultiBandInfoList OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v9e0-IEs OPTIONAL -- Need OP +} + +SystemInformationBlockType1-v9e0-IEs ::= SEQUENCE { + freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL, -- Cond FBI-max + multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL, -- Cond mFBI-max + nonCriticalExtension SystemInformationBlockType1-v10j0-IEs OPTIONAL -- Need OP +} + +SystemInformationBlockType1-v10j0-IEs ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType1-v10l0-IEs ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +SystemInformationBlockType1-v920-IEs ::= SEQUENCE { + ims-EmergencySupport-r9 ENUMERATED {true} OPTIONAL, -- Need OR + cellSelectionInfo-v920 CellSelectionInfo-v920 OPTIONAL, -- Cond RSRQ + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +PLMN-IdentityList ::= SEQUENCE (SIZE (1..6)) OF PLMN-IdentityInfo + +PLMN-IdentityInfo ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellReservedForOperatorUse ENUMERATED {reserved, notReserved} +} + +SchedulingInfoList ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo + +SchedulingInfo ::= SEQUENCE { + si-Periodicity ENUMERATED { + rf8, rf16, rf32, rf64, rf128, rf256, rf512}, + sib-MappingInfo SIB-MappingInfo +} + +SIB-MappingInfo ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type + +SIB-Type ::= ENUMERATED { + sibType3, sibType4, sibType5, sibType6, + sibType7, sibType8, sibType9, sibType10, + sibType11, sibType12-v920, sibType13-v920, spare5, + spare4, spare3, spare2, spare1, ...} + +CellSelectionInfo-v920 ::= SEQUENCE { + q-QualMin-r9 Q-QualMin-r9, + q-QualMinOffset-r9 INTEGER (1..8) OPTIONAL -- Need OP +} + + +UECapabilityEnquiry ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueCapabilityEnquiry-r8 UECapabilityEnquiry-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityEnquiry-r8-IEs ::= SEQUENCE { + ue-CapabilityRequest UE-CapabilityRequest, + nonCriticalExtension UECapabilityEnquiry-v8a0-IEs OPTIONAL +} + +UECapabilityEnquiry-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +UE-CapabilityRequest ::= SEQUENCE (SIZE (1..maxRAT-Capabilities)) OF RAT-Type + + +UECapabilityInformation ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + ueCapabilityInformation-r8 UECapabilityInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityInformation-r8-IEs ::= SEQUENCE { + ue-CapabilityRAT-ContainerList UE-CapabilityRAT-ContainerList, + nonCriticalExtension UECapabilityInformation-v8a0-IEs OPTIONAL +} + +UECapabilityInformation-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEInformationRequest-r9 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueInformationRequest-r9 UEInformationRequest-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEInformationRequest-r9-IEs ::= SEQUENCE { + rach-ReportReq-r9 BOOLEAN, + rlf-ReportReq-r9 BOOLEAN, + nonCriticalExtension UEInformationRequest-v930-IEs OPTIONAL +} + +UEInformationRequest-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension UEInformationRequest-v1020-IEs OPTIONAL +} + +UEInformationRequest-v1020-IEs ::= SEQUENCE { + logMeasReportReq-r10 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + + +UEInformationResponse-r9 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueInformationResponse-r9 UEInformationResponse-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEInformationResponse-r9-IEs ::= SEQUENCE { + rach-Report-r9 SEQUENCE { + numberOfPreamblesSent-r9 INTEGER (1..200), + contentionDetected-r9 BOOLEAN + } OPTIONAL, + rlf-Report-r9 RLF-Report-r9 OPTIONAL, + nonCriticalExtension UEInformationResponse-v930-IEs OPTIONAL +} + +UEInformationResponse-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING UEInformationResponse-v9e0-IEs) OPTIONAL, + nonCriticalExtension UEInformationResponse-v1020-IEs OPTIONAL +} + +UEInformationResponse-v9e0-IEs ::= SEQUENCE { + rlf-Report-v9e0 RLF-Report-v9e0 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UEInformationResponse-v1020-IEs ::= SEQUENCE { + logMeasReport-r10 LogMeasReport-r10 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RLF-Report-r9 ::= SEQUENCE { + measResultLastServCell-r9 SEQUENCE { + rsrpResult-r9 RSRP-Range, + rsrqResult-r9 RSRQ-Range OPTIONAL + }, + measResultNeighCells-r9 SEQUENCE { + measResultListEUTRA-r9 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r9 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r9 MeasResultListGERAN OPTIONAL, + measResultsCDMA2000-r9 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + ..., + [[ locationInfo-r10 LocationInfo-r10 OPTIONAL, + failedPCellId-r10 CHOICE { + cellGlobalId-r10 CellGlobalIdEUTRA, + pci-arfcn-r10 SEQUENCE { + physCellId-r10 PhysCellId, + carrierFreq-r10 ARFCN-ValueEUTRA + } + } OPTIONAL, + reestablishmentCellId-r10 CellGlobalIdEUTRA OPTIONAL, + timeConnFailure-r10 INTEGER (0..1023) OPTIONAL, + connectionFailureType-r10 ENUMERATED {rlf, hof} OPTIONAL, + previousPCellId-r10 CellGlobalIdEUTRA OPTIONAL + ]], + [[ failedPCellId-v1090 SEQUENCE { + carrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 + } OPTIONAL + ]] +} + +RLF-Report-v9e0 ::= SEQUENCE { + measResultListEUTRA-v9e0 MeasResultList2EUTRA-v9e0 +} + +MeasResultList2EUTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-r9 + +MeasResultList2EUTRA-v9e0 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v9e0 + +MeasResult2EUTRA-r9 ::= SEQUENCE { + carrierFreq-r9 ARFCN-ValueEUTRA, + measResultList-r9 MeasResultListEUTRA +} + +MeasResult2EUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL +} + +MeasResultList2UTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2UTRA-r9 + +MeasResult2UTRA-r9 ::= SEQUENCE { + carrierFreq-r9 ARFCN-ValueUTRA, + measResultList-r9 MeasResultListUTRA +} + +MeasResultList2CDMA2000-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2CDMA2000-r9 + +MeasResult2CDMA2000-r9 ::= SEQUENCE { + carrierFreq-r9 CarrierFreqCDMA2000, + measResultList-r9 MeasResultsCDMA2000 +} + +LogMeasReport-r10 ::= SEQUENCE { + absoluteTimeStamp-r10 AbsoluteTimeInfo-r10, + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + logMeasInfoList-r10 LogMeasInfoList-r10, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + ... +} + +LogMeasInfoList-r10 ::= SEQUENCE (SIZE (1..maxLogMeasReport-r10)) OF LogMeasInfo-r10 + +LogMeasInfo-r10 ::= SEQUENCE { + locationInfo-r10 LocationInfo-r10 OPTIONAL, + relativeTimeStamp-r10 INTEGER (0..7200), + servCellIdentity-r10 CellGlobalIdEUTRA, + measResultServCell-r10 SEQUENCE { + rsrpResult-r10 RSRP-Range, + rsrqResult-r10 RSRQ-Range + }, + measResultNeighCells-r10 SEQUENCE { + measResultListEUTRA-r10 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r10 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r10 MeasResultList2GERAN-r10 OPTIONAL, + measResultListCDMA2000-r10 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + ... +} + +MeasResultList2GERAN-r10 ::= SEQUENCE (SIZE (1..maxCellListGERAN)) OF MeasResultListGERAN + + +ULHandoverPreparationTransfer ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulHandoverPreparationTransfer-r8 ULHandoverPreparationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULHandoverPreparationTransfer-r8-IEs ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + meid BIT STRING (SIZE (56)) OPTIONAL, + dedicatedInfo DedicatedInfoCDMA2000, + nonCriticalExtension ULHandoverPreparationTransfer-v8a0-IEs OPTIONAL +} + +ULHandoverPreparationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +ULInformationTransfer ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulInformationTransfer-r8 ULInformationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType CHOICE { + dedicatedInfoNAS DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000 + }, + nonCriticalExtension ULInformationTransfer-v8a0-IEs OPTIONAL +} + +ULInformationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType2 ::= SEQUENCE { + ac-BarringInfo SEQUENCE { + ac-BarringForEmergency BOOLEAN, + ac-BarringForMO-Signalling AC-BarringConfig OPTIONAL, -- Need OP + ac-BarringForMO-Data AC-BarringConfig OPTIONAL -- Need OP + } OPTIONAL, -- Need OP + radioResourceConfigCommon RadioResourceConfigCommonSIB, + ue-TimersAndConstants UE-TimersAndConstants, + freqInfo SEQUENCE { + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission + }, + mbsfn-SubframeConfigList MBSFN-SubframeConfigList OPTIONAL, -- Need OR + timeAlignmentTimerCommon TimeAlignmentTimer, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType2-v8h0-IEs) OPTIONAL, -- Need OP + [[ ssac-BarringForMMTEL-Voice-r9 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Video-r9 AC-BarringConfig OPTIONAL -- Need OP + ]], + [[ ac-BarringForCSFB-r10 AC-BarringConfig OPTIONAL -- Need OP + ]] +} + +SystemInformationBlockType2-v8h0-IEs ::= SEQUENCE { + multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType2-v9e0-IEs OPTIONAL -- Need OP +} + +SystemInformationBlockType2-v9e0-IEs ::= SEQUENCE { + ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond ul-FreqMax + nonCriticalExtension SystemInformationBlockType2-v9i0-IEs OPTIONAL -- Need OP +} +SystemInformationBlockType2-v9i0-IEs ::= SEQUENCE { +-- Following field is only for late non-critical extensions for REL-9 + lateNonCriticalExtension OCTET STRING OPTIONAL, +-- Following field is only for late non-critical extensions from REL-10 + nonCriticalExtension SystemInformationBlockType2-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType2-v10l0-IEs ::= SEQUENCE { +freqInfo-v10l0 SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 + }, + multiBandInfoList-v10l0 SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission-v10l0, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AC-BarringConfig ::= SEQUENCE { + ac-BarringFactor ENUMERATED { + p00, p05, p10, p15, p20, p25, p30, p40, + p50, p60, p70, p75, p80, p85, p90, p95}, + ac-BarringTime ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512}, + ac-BarringForSpecialAC BIT STRING (SIZE(5)) +} + +MBSFN-SubframeConfigList ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig + + +SystemInformationBlockType3 ::= SEQUENCE { + cellReselectionInfoCommon SEQUENCE { + q-Hyst ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + speedStateReselectionPars SEQUENCE { + mobilityStateParameters MobilityStateParameters, + q-HystSF SEQUENCE { + sf-Medium ENUMERATED { + dB-6, dB-4, dB-2, dB0}, + sf-High ENUMERATED { + dB-6, dB-4, dB-2, dB0} + } + } OPTIONAL -- Need OP + }, + cellReselectionServingFreqInfo SEQUENCE { + s-NonIntraSearch ReselectionThreshold OPTIONAL, -- Need OP + threshServingLow ReselectionThreshold, + cellReselectionPriority CellReselectionPriority + }, + intraFreqCellReselectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + p-Max P-Max OPTIONAL, -- Need OP + s-IntraSearch ReselectionThreshold OPTIONAL, -- Need OP + allowedMeasBandwidth AllowedMeasBandwidth OPTIONAL, -- Need OP + presenceAntennaPort1 PresenceAntennaPort1, + neighCellConfig NeighCellConfig, + t-ReselectionEUTRA T-Reselection, + t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL -- Need OP + }, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType3-v10j0-IEs) OPTIONAL, -- Need OP + [[ s-IntraSearch-v920 SEQUENCE { + s-IntraSearchP-r9 ReselectionThreshold, + s-IntraSearchQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL, -- Need OP + s-NonIntraSearch-v920 SEQUENCE { + s-NonIntraSearchP-r9 ReselectionThreshold, + s-NonIntraSearchQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL, -- Need OP + q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP + threshServingLowQ-r9 ReselectionThresholdQ-r9 OPTIONAL -- Need OP + ]] +} + +-- Late non critical extensions +SystemInformationBlockType3-v10j0-IEs ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType3-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType3-v10l0-IEs ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType4 ::= SEQUENCE { + intraFreqNeighCellList IntraFreqNeighCellList OPTIONAL, -- Need OR + intraFreqBlackCellList IntraFreqBlackCellList OPTIONAL, -- Need OR + csg-PhysCellIdRange PhysCellIdRange OPTIONAL, -- Cond CSG + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL -- Need OP +} + +IntraFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellIntra)) OF IntraFreqNeighCellInfo + +IntraFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange, + ... +} + +IntraFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange + + +SystemInformationBlockType5 ::= SEQUENCE { + interFreqCarrierFreqList InterFreqCarrierFreqList, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType5-v8h0-IEs) OPTIONAL -- Need OP +} + +SystemInformationBlockType5-v8h0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v8h0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v8h0 OPTIONAL, -- Need OP + nonCriticalExtension SystemInformationBlockType5-v9e0-IEs OPTIONAL -- Need OP +} + +SystemInformationBlockType5-v9e0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v9e0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType5-v10j0-IEs OPTIONAL -- Need OP +} + +SystemInformationBlockType5-v10j0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v10j0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType5-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType5-v10l0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v10l0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +InterFreqCarrierFreqList ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo + +InterFreqCarrierFreqInfo ::= SEQUENCE { + dl-CarrierFreq ARFCN-ValueEUTRA, + q-RxLevMin Q-RxLevMin, + p-Max P-Max OPTIONAL, -- Need OP + t-ReselectionEUTRA T-Reselection, + t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + allowedMeasBandwidth AllowedMeasBandwidth, + presenceAntennaPort1 PresenceAntennaPort1, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + neighCellConfig NeighCellConfig, + q-OffsetFreq Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList InterFreqNeighCellList OPTIONAL, -- Need OR + interFreqBlackCellList InterFreqBlackCellList OPTIONAL, -- Need OR + ..., + [[ q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP + threshX-Q-r9 SEQUENCE { + threshX-HighQ-r9 ReselectionThresholdQ-r9, + threshX-LowQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL -- Cond RSRQ + ]] +} + +InterFreqCarrierFreqInfo-v8h0 ::= SEQUENCE { + multiBandInfoList MultiBandInfoList OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v9e0 ::= SEQUENCE { + dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond dl-FreqMax + multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v10j0 ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v10l0 ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL -- Need OR +} + +InterFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo + +InterFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange +} + +InterFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange + + +SystemInformationBlockType6 ::= SEQUENCE { + carrierFreqListUTRA-FDD CarrierFreqListUTRA-FDD OPTIONAL, -- Need OR + carrierFreqListUTRA-TDD CarrierFreqListUTRA-TDD OPTIONAL, -- Need OR + t-ReselectionUTRA T-Reselection, + t-ReselectionUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType6-v8h0-IEs) OPTIONAL -- Need OP +} + +SystemInformationBlockType6-v8h0-IEs ::= SEQUENCE { + carrierFreqListUTRA-FDD-v8h0 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqInfoUTRA-FDD-v8h0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +CarrierFreqListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqUTRA-FDD + +CarrierFreqUTRA-FDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + q-RxLevMin INTEGER (-60..-13), + p-MaxUTRA INTEGER (-50..33), + q-QualMin INTEGER (-24..0), + ..., + [[ threshX-Q-r9 SEQUENCE { + threshX-HighQ-r9 ReselectionThresholdQ-r9, + threshX-LowQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL -- Cond RSRQ + ]] +} + +CarrierFreqInfoUTRA-FDD-v8h0 ::= SEQUENCE { + multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL -- Need OR +} + +CarrierFreqListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF CarrierFreqUTRA-TDD + +CarrierFreqUTRA-TDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + q-RxLevMin INTEGER (-60..-13), + p-MaxUTRA INTEGER (-50..33), + ... +} + +FreqBandIndicator-UTRA-FDD ::= INTEGER (1..86) + + +SystemInformationBlockType7 ::= SEQUENCE { + t-ReselectionGERAN T-Reselection, + t-ReselectionGERAN-SF SpeedStateScaleFactors OPTIONAL, -- Need OR + carrierFreqsInfoList CarrierFreqsInfoListGERAN OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL -- Need OP +} + +CarrierFreqsInfoListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF CarrierFreqsInfoGERAN + +CarrierFreqsInfoGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + commonInfo SEQUENCE { + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + ncc-Permitted BIT STRING (SIZE (8)), + q-RxLevMin INTEGER (0..45), + p-MaxGERAN INTEGER (0..39) OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold + }, + ... +} + + +SystemInformationBlockType8 ::= SEQUENCE { + systemTimeInfo SystemTimeInfoCDMA2000 OPTIONAL, -- Need OR + searchWindowSize INTEGER (0..15) OPTIONAL, -- Need OR + parametersHRPD SEQUENCE { + preRegistrationInfoHRPD PreRegistrationInfoHRPD, + cellReselectionParametersHRPD CellReselectionParametersCDMA2000 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + parameters1XRTT SEQUENCE { + csfb-RegistrationParam1XRTT CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP + longCodeState1XRTT BIT STRING (SIZE (42)) OPTIONAL, -- Need OR + cellReselectionParameters1XRTT CellReselectionParametersCDMA2000 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + [[ csfb-SupportForDualRxUEs-r9 BOOLEAN OPTIONAL, -- Need OR + cellReselectionParametersHRPD-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-HRPD + cellReselectionParameters1XRTT-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-1XRTT + csfb-RegistrationParam1XRTT-v920 CSFB-RegistrationParam1XRTT-v920 OPTIONAL, -- Cond REG-1XRTT + ac-BarringConfig1XRTT-r9 AC-BarringConfig1XRTT-r9 OPTIONAL -- Cond REG-1XRTT + ]], + [[ csfb-DualRxTxSupport-r10 ENUMERATED {true} OPTIONAL -- Cond REG-1XRTT + ]] +} + +CellReselectionParametersCDMA2000 ::= SEQUENCE { + bandClassList BandClassListCDMA2000, + neighCellList NeighCellListCDMA2000, + t-ReselectionCDMA2000 T-Reselection, + t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP +} + +CellReselectionParametersCDMA2000-v920 ::= SEQUENCE { + neighCellList-v920 NeighCellListCDMA2000-v920 +} + +NeighCellListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000 + +NeighCellCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + neighCellsPerFreqList NeighCellsPerBandclassListCDMA2000 +} + +NeighCellsPerBandclassListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000 + +NeighCellsPerBandclassCDMA2000 ::= SEQUENCE { + arfcn ARFCN-ValueCDMA2000, + physCellIdList PhysCellIdListCDMA2000 +} + +NeighCellListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-v920 + +NeighCellCDMA2000-v920 ::= SEQUENCE { + neighCellsPerFreqList-v920 NeighCellsPerBandclassListCDMA2000-v920 +} + +NeighCellsPerBandclassListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-v920 + +NeighCellsPerBandclassCDMA2000-v920 ::= SEQUENCE { + physCellIdList-v920 PhysCellIdListCDMA2000-v920 +} + +PhysCellIdListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdCDMA2000 + +PhysCellIdListCDMA2000-v920 ::= SEQUENCE (SIZE (0..24)) OF PhysCellIdCDMA2000 + +BandClassListCDMA2000 ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassInfoCDMA2000 + +BandClassInfoCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High INTEGER (0..63), + threshX-Low INTEGER (0..63), + ... +} + +AC-BarringConfig1XRTT-r9 ::= SEQUENCE { + ac-Barring0to9-r9 INTEGER (0..63), + ac-Barring10-r9 INTEGER (0..7), + ac-Barring11-r9 INTEGER (0..7), + ac-Barring12-r9 INTEGER (0..7), + ac-Barring13-r9 INTEGER (0..7), + ac-Barring14-r9 INTEGER (0..7), + ac-Barring15-r9 INTEGER (0..7), + ac-BarringMsg-r9 INTEGER (0..7), + ac-BarringReg-r9 INTEGER (0..7), + ac-BarringEmg-r9 INTEGER (0..7) +} + + +SystemInformationBlockType9 ::= SEQUENCE { + hnb-Name OCTET STRING (SIZE(1..48)) OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL -- Need OP +} + + +SystemInformationBlockType10 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningType OCTET STRING (SIZE (2)), + dummy OCTET STRING (SIZE (50)) OPTIONAL, -- Need OP + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL -- Need OP +} + + +SystemInformationBlockType11 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningMessageSegmentType ENUMERATED {notLastSegment, lastSegment}, + warningMessageSegmentNumber INTEGER (0..63), + warningMessageSegment OCTET STRING, + dataCodingScheme OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL -- Need OP +} + + +SystemInformationBlockType12-r9 ::= SEQUENCE { + messageIdentifier-r9 BIT STRING (SIZE (16)), + serialNumber-r9 BIT STRING (SIZE (16)), + warningMessageSegmentType-r9 ENUMERATED {notLastSegment, lastSegment}, + warningMessageSegmentNumber-r9 INTEGER (0..63), + warningMessageSegment-r9 OCTET STRING, + dataCodingScheme-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + ... +} + + +SystemInformationBlockType13-r9 ::= SEQUENCE { + mbsfn-AreaInfoList-r9 MBSFN-AreaInfoList-r9, + notificationConfig-r9 MBMS-NotificationConfig-r9, + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + ... +} + + +AntennaInfoCommon ::= SEQUENCE { + antennaPortsCount ENUMERATED {an1, an2, an4, spare1} +} + +AntennaInfoDedicated ::= SEQUENCE { + transmissionMode ENUMERATED { + tm1, tm2, tm3, tm4, tm5, tm6, + tm7, tm8-v920}, + codebookSubsetRestriction CHOICE { + n2TxAntenna-tm3 BIT STRING (SIZE (2)), + n4TxAntenna-tm3 BIT STRING (SIZE (4)), + n2TxAntenna-tm4 BIT STRING (SIZE (6)), + n4TxAntenna-tm4 BIT STRING (SIZE (64)), + n2TxAntenna-tm5 BIT STRING (SIZE (4)), + n4TxAntenna-tm5 BIT STRING (SIZE (16)), + n2TxAntenna-tm6 BIT STRING (SIZE (4)), + n4TxAntenna-tm6 BIT STRING (SIZE (16)) + } OPTIONAL, -- Cond TM + ue-TransmitAntennaSelection CHOICE{ + release NULL, + setup ENUMERATED {closedLoop, openLoop} + } +} + +AntennaInfoDedicated-v920 ::= SEQUENCE { + codebookSubsetRestriction-v920 CHOICE { + n2TxAntenna-tm8-r9 BIT STRING (SIZE (6)), + n4TxAntenna-tm8-r9 BIT STRING (SIZE (32)) + } OPTIONAL -- Cond TM8 +} + +AntennaInfoDedicated-r10 ::= SEQUENCE { + transmissionMode-r10 ENUMERATED { + tm1, tm2, tm3, tm4, tm5, tm6, tm7, tm8-v920, + tm9-v1020, spare7, spare6, spare5, spare4, + spare3, spare2, spare1}, + codebookSubsetRestriction-r10 BIT STRING OPTIONAL, -- Cond TMX + ue-TransmitAntennaSelection CHOICE{ + release NULL, + setup ENUMERATED {closedLoop, openLoop} + } +} + +AntennaInfoDedicated-v10i0::= SEQUENCE { + maxLayersMIMO-r10 ENUMERATED {twoLayers, fourLayers, eightLayers} OPTIONAL -- Need OR +} + + +AntennaInfoUL-r10 ::= SEQUENCE { + transmissionModeUL-r10 ENUMERATED {tm1, tm2, spare6, spare5, + spare4, spare3, spare2, spare1} OPTIONAL, -- Need OR + fourAntennaPortActivated-r10 ENUMERATED {setup} OPTIONAL -- Need OR +} + + +CQI-ReportConfig ::= SEQUENCE { + cqi-ReportModeAperiodic CQI-ReportModeAperiodic OPTIONAL, -- Need OR + nomPDSCH-RS-EPRE-Offset INTEGER (-1..6), + cqi-ReportPeriodic CQI-ReportPeriodic OPTIONAL -- Need ON +} + +CQI-ReportConfig-v920 ::= SEQUENCE { + cqi-Mask-r9 ENUMERATED {setup} OPTIONAL, -- Cond cqi-Setup + pmi-RI-Report-r9 ENUMERATED {setup} OPTIONAL -- Cond PMIRI +} + +CQI-ReportConfig-r10 ::= SEQUENCE { + cqi-ReportAperiodic-r10 CQI-ReportAperiodic-r10 OPTIONAL, -- Need ON + nomPDSCH-RS-EPRE-Offset INTEGER (-1..6), + cqi-ReportPeriodic-r10 CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON + pmi-RI-Report-r9 ENUMERATED {setup} OPTIONAL, -- Cond PMIRIPCell + csi-SubframePatternConfig-r10 CHOICE { + release NULL, + setup SEQUENCE { + csi-MeasSubframeSet1-r10 MeasSubframePattern-r10, + csi-MeasSubframeSet2-r10 MeasSubframePattern-r10 + } + } OPTIONAL -- Need ON +} + +CQI-ReportConfigSCell-r10 ::= SEQUENCE { + cqi-ReportModeAperiodic-r10 CQI-ReportModeAperiodic OPTIONAL, -- Need OR + nomPDSCH-RS-EPRE-Offset-r10 INTEGER (-1..6), + + cqi-ReportPeriodicSCell-r10 CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON + pmi-RI-Report-r10 ENUMERATED {setup} OPTIONAL -- Cond PMIRISCell +} + +CQI-ReportPeriodic ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-PUCCH-ResourceIndex INTEGER (0..1185), + cqi-pmi-ConfigIndex INTEGER (0..1023), + cqi-FormatIndicatorPeriodic CHOICE { + widebandCQI NULL, + subbandCQI SEQUENCE { + k INTEGER (1..4) + } + }, + ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR + simultaneousAckNackAndCQI BOOLEAN + } +} + +CQI-ReportPeriodic-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-PUCCH-ResourceIndex-r10 INTEGER (0..1184), + cqi-PUCCH-ResourceIndexP1-r10 INTEGER (0..1184) OPTIONAL, -- Need OR + cqi-pmi-ConfigIndex INTEGER (0..1023), + cqi-FormatIndicatorPeriodic-r10 CHOICE { + widebandCQI-r10 SEQUENCE { + csi-ReportMode-r10 ENUMERATED {submode1, submode2} OPTIONAL -- Need OR + }, + subbandCQI-r10 SEQUENCE { + k INTEGER (1..4), + periodicityFactor-r10 ENUMERATED {n2, n4} + } + }, + ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR + simultaneousAckNackAndCQI BOOLEAN, + cqi-Mask-r9 ENUMERATED {setup} OPTIONAL, -- Need OR + csi-ConfigIndex-r10 CHOICE { + release NULL, + setup SEQUENCE { + cqi-pmi-ConfigIndex2-r10 INTEGER (0..1023), + ri-ConfigIndex2-r10 INTEGER (0..1023) OPTIONAL -- Need OR + } + } OPTIONAL -- Need ON + } +} + +CQI-ReportAperiodic-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-ReportModeAperiodic-r10 CQI-ReportModeAperiodic, + aperiodicCSI-Trigger-r10 SEQUENCE { + trigger1-r10 BIT STRING (SIZE (8)), + trigger2-r10 BIT STRING (SIZE (8)) + } OPTIONAL -- Need OR + } +} + +CQI-ReportModeAperiodic ::= ENUMERATED { + rm12, rm20, rm22, rm30, rm31, + spare3, spare2, spare1 +} + + +CrossCarrierSchedulingConfig-r10 ::= SEQUENCE { + schedulingCellInfo-r10 CHOICE { + own-r10 SEQUENCE { -- No cross carrier scheduling + cif-Presence-r10 BOOLEAN + }, + other-r10 SEQUENCE { -- Cross carrier scheduling + schedulingCellId-r10 ServCellIndex-r10, + pdsch-Start-r10 INTEGER (1..4) + } + } +} + + +CSI-RS-Config-r10 ::= SEQUENCE { + csi-RS-r10 CHOICE { + release NULL, + setup SEQUENCE { + antennaPortsCount-r10 ENUMERATED {an1, an2, an4, an8}, + resourceConfig-r10 INTEGER (0..31), + subframeConfig-r10 INTEGER (0..154), + p-C-r10 INTEGER (-8..15) + } + } OPTIONAL, -- Need ON + zeroTxPowerCSI-RS-r10 CHOICE { + release NULL, + setup SEQUENCE { + zeroTxPowerResourceConfigList-r10 BIT STRING (SIZE (16)), + zeroTxPowerSubframeConfig-r10 INTEGER (0..154) + } + } OPTIONAL -- Need ON +} + + +DRB-Identity ::= INTEGER (1..32) + + +LogicalChannelConfig ::= SEQUENCE { + ul-SpecificParameters SEQUENCE { + priority INTEGER (1..16), + prioritisedBitRate ENUMERATED { + kBps0, kBps8, kBps16, kBps32, kBps64, kBps128, + kBps256, infinity, kBps512-v1020, kBps1024-v1020, + kBps2048-v1020, spare5, spare4, spare3, spare2, + spare1}, + bucketSizeDuration ENUMERATED { + ms50, ms100, ms150, ms300, ms500, ms1000, spare2, + spare1}, + logicalChannelGroup INTEGER (0..3) OPTIONAL -- Need OR + } OPTIONAL, -- Cond UL + ..., + [[ logicalChannelSR-Mask-r9 ENUMERATED {setup} OPTIONAL -- Cond SRmask + ]] +} + + +MAC-MainConfig ::= SEQUENCE { + ul-SCH-Config SEQUENCE { + maxHARQ-Tx ENUMERATED { + n1, n2, n3, n4, n5, n6, n7, n8, + n10, n12, n16, n20, n24, n28, + spare2, spare1} OPTIONAL, -- Need ON + periodicBSR-Timer ENUMERATED { + sf5, sf10, sf16, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, sf1280, sf2560, + infinity, spare1} OPTIONAL, -- Need ON + retxBSR-Timer ENUMERATED { + sf320, sf640, sf1280, sf2560, sf5120, + sf10240, spare2, spare1}, + ttiBundling BOOLEAN + } OPTIONAL, -- Need ON + drx-Config DRX-Config OPTIONAL, -- Need ON + timeAlignmentTimerDedicated TimeAlignmentTimer, + phr-Config CHOICE { + release NULL, + setup SEQUENCE { + periodicPHR-Timer ENUMERATED {sf10, sf20, sf50, sf100, sf200, + sf500, sf1000, infinity}, + prohibitPHR-Timer ENUMERATED {sf0, sf10, sf20, sf50, sf100, + sf200, sf500, sf1000}, + dl-PathlossChange ENUMERATED {dB1, dB3, dB6, infinity} + } + } OPTIONAL, -- Need ON + ..., + [[ sr-ProhibitTimer-r9 INTEGER (0..7) OPTIONAL -- Need ON + ]], + [[ mac-MainConfig-v1020 SEQUENCE { + sCellDeactivationTimer-r10 ENUMERATED { + rf2, rf4, rf8, rf16, rf32, rf64, rf128, + spare} OPTIONAL, -- Need OP + extendedBSR-Sizes-r10 ENUMERATED {setup} OPTIONAL, -- Need OR + extendedPHR-r10 ENUMERATED {setup} OPTIONAL -- Need OR + } OPTIONAL -- Need ON + ]] +} + +DRX-Config ::= CHOICE { + release NULL, + setup SEQUENCE { + onDurationTimer ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200}, + drx-InactivityTimer ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200, psf300, psf500, psf750, + psf1280, psf1920, psf2560, psf0-v1020, + spare9, spare8, spare7, spare6, + spare5, spare4, spare3, spare2, + spare1}, + drx-RetransmissionTimer ENUMERATED { + psf1, psf2, psf4, psf6, psf8, psf16, + psf24, psf33}, + longDRX-CycleStartOffset CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf1280 INTEGER(0..1279), + sf2048 INTEGER(0..2047), + sf2560 INTEGER(0..2559) + }, + shortDRX SEQUENCE { + shortDRX-Cycle ENUMERATED { + sf2, sf5, sf8, sf10, sf16, sf20, + sf32, sf40, sf64, sf80, sf128, sf160, + sf256, sf320, sf512, sf640}, + drxShortCycleTimer INTEGER (1..16) + } OPTIONAL -- Need OR + } +} + + +PDCP-Config ::= SEQUENCE { + discardTimer ENUMERATED { + ms50, ms100, ms150, ms300, ms500, + ms750, ms1500, infinity + } OPTIONAL, -- Cond Setup + rlc-AM SEQUENCE { + statusReportRequired BOOLEAN + } OPTIONAL, -- Cond Rlc-AM + rlc-UM SEQUENCE { + pdcp-SN-Size ENUMERATED {len7bits, len12bits} + } OPTIONAL, -- Cond Rlc-UM + headerCompression CHOICE { + notUsed NULL, + rohc SEQUENCE { + maxCID INTEGER (1..16383) DEFAULT 15, + profiles SEQUENCE { + profile0x0001 BOOLEAN, + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0101 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + ... + } + }, + ..., + [[ rn-IntegrityProtection-r10 ENUMERATED {enabled} OPTIONAL -- Cond RN + ]] +} + + +PDSCH-ConfigCommon ::= SEQUENCE { + referenceSignalPower INTEGER (-60..50), + p-b INTEGER (0..3) +} + +PDSCH-ConfigDedicated::= SEQUENCE { + p-a ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} +} + + +PHICH-Config ::= SEQUENCE { + phich-Duration ENUMERATED {normal, extended}, + phich-Resource ENUMERATED {oneSixth, half, one, two} +} + + +PhysicalConfigDedicated ::= SEQUENCE { + pdsch-ConfigDedicated PDSCH-ConfigDedicated OPTIONAL, -- Need ON + pucch-ConfigDedicated PUCCH-ConfigDedicated OPTIONAL, -- Need ON + pusch-ConfigDedicated PUSCH-ConfigDedicated OPTIONAL, -- Need ON + uplinkPowerControlDedicated UplinkPowerControlDedicated OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUCCH TPC-PDCCH-Config OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUSCH TPC-PDCCH-Config OPTIONAL, -- Need ON + cqi-ReportConfig CQI-ReportConfig OPTIONAL, -- Cond CQI-r8 + soundingRS-UL-ConfigDedicated SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON + antennaInfo CHOICE { + explicitValue AntennaInfoDedicated, + defaultValue NULL + } OPTIONAL, -- Cond AI-r8 + schedulingRequestConfig SchedulingRequestConfig OPTIONAL, -- Need ON + ..., + [[ cqi-ReportConfig-v920 CQI-ReportConfig-v920 OPTIONAL, -- Cond CQI-r8 + antennaInfo-v920 AntennaInfoDedicated-v920 OPTIONAL -- Cond AI-r8 + ]], + [[ antennaInfo-r10 CHOICE { + explicitValue-r10 AntennaInfoDedicated-r10, + defaultValue NULL + } OPTIONAL, -- Cond AI-r10 + antennaInfoUL-r10 AntennaInfoUL-r10 OPTIONAL, -- Need ON + cif-Presence-r10 BOOLEAN OPTIONAL, -- Need ON + cqi-ReportConfig-r10 CQI-ReportConfig-r10 OPTIONAL, -- Cond CQI-r10 + csi-RS-Config-r10 CSI-RS-Config-r10 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1020 PUCCH-ConfigDedicated-v1020 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1020 PUSCH-ConfigDedicated-v1020 OPTIONAL, -- Need ON + schedulingRequestConfig-v1020 SchedulingRequestConfig-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1020 + SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-r10 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1020 UplinkPowerControlDedicated-v1020 OPTIONAL -- Need ON + ]], + [[ additionalSpectrumEmissionCA-r10 CHOICE { + release NULL, + setup SEQUENCE { + additionalSpectrumEmissionPCell-r10 AdditionalSpectrumEmission + } + } OPTIONAL -- Need ON + ]] +} + +PhysicalConfigDedicatedSCell-r10 ::= SEQUENCE { + -- DL configuration as well as configuration applicable for DL and UL + nonUL-Configuration-r10 SEQUENCE { + antennaInfo-r10 AntennaInfoDedicated-r10 OPTIONAL, -- Need ON + crossCarrierSchedulingConfig-r10 CrossCarrierSchedulingConfig-r10 OPTIONAL, -- Need ON + csi-RS-Config-r10 CSI-RS-Config-r10 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-r10 PDSCH-ConfigDedicated OPTIONAL -- Need ON + } OPTIONAL, -- Cond SCellAdd + -- UL configuration + ul-Configuration-r10 SEQUENCE { + antennaInfoUL-r10 AntennaInfoUL-r10 OPTIONAL, -- Need ON + pusch-ConfigDedicatedSCell-r10 PUSCH-ConfigDedicatedSCell-r10 OPTIONAL, -- Need ON + uplinkPowerControlDedicatedSCell-r10 UplinkPowerControlDedicatedSCell-r10 OPTIONAL, -- Need ON + cqi-ReportConfigSCell-r10 CQI-ReportConfigSCell-r10 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-r10 SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1020 + SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-r10 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL -- Need ON + } OPTIONAL, -- Cond CommonUL + ... +} + + +P-Max ::= INTEGER (-30..33) + + +PRACH-ConfigSIB ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + prach-ConfigInfo PRACH-ConfigInfo +} + +PRACH-Config ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + prach-ConfigInfo PRACH-ConfigInfo OPTIONAL -- Need ON +} + +PRACH-ConfigSCell-r10 ::= SEQUENCE { + prach-ConfigIndex-r10 INTEGER (0..63) +} + +PRACH-ConfigInfo ::= SEQUENCE { + prach-ConfigIndex INTEGER (0..63), + highSpeedFlag BOOLEAN, + zeroCorrelationZoneConfig INTEGER (0..15), + prach-FreqOffset INTEGER (0..94) +} + + +PresenceAntennaPort1 ::= BOOLEAN + + +PUCCH-ConfigCommon ::= SEQUENCE { + deltaPUCCH-Shift ENUMERATED {ds1, ds2, ds3}, + nRB-CQI INTEGER (0..98), + nCS-AN INTEGER (0..7), + n1PUCCH-AN INTEGER (0..2047) +} + +PUCCH-ConfigDedicated ::= SEQUENCE { + ackNackRepetition CHOICE{ + release NULL, + setup SEQUENCE { + repetitionFactor ENUMERATED {n2, n4, n6, spare1}, + n1PUCCH-AN-Rep INTEGER (0..2047) + } + }, + tdd-AckNackFeedbackMode ENUMERATED {bundling, multiplexing} OPTIONAL -- Cond TDD +} + +PUCCH-ConfigDedicated-v1020 ::= SEQUENCE { + pucch-Format-r10 CHOICE { + format3-r10 SEQUENCE { + n3PUCCH-AN-List-r10 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) OPTIONAL, -- Need ON + twoAntennaPortActivatedPUCCH-Format3-r10 CHOICE { + release NULL, + setup SEQUENCE { + n3PUCCH-AN-ListP1-r10 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) + } + } OPTIONAL -- Need ON + }, + channelSelection-r10 SEQUENCE { + n1PUCCH-AN-CS-r10 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-List-r10 SEQUENCE (SIZE (1..2)) OF N1PUCCH-AN-CS-r10 + } + } OPTIONAL -- Need ON + } + } OPTIONAL, -- Need OR + twoAntennaPortActivatedPUCCH-Format1a1b-r10 ENUMERATED {true} OPTIONAL, -- Need OR + simultaneousPUCCH-PUSCH-r10 ENUMERATED {true} OPTIONAL, -- Need OR + n1PUCCH-AN-RepP1-r10 INTEGER (0..2047) OPTIONAL -- Need OR +} + +N1PUCCH-AN-CS-r10 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + + +PUSCH-ConfigCommon ::= SEQUENCE { + pusch-ConfigBasic SEQUENCE { + n-SB INTEGER (1..4), + hoppingMode ENUMERATED {interSubFrame, intraAndInterSubFrame}, + pusch-HoppingOffset INTEGER (0..98), + enable64QAM BOOLEAN + }, + ul-ReferenceSignalsPUSCH UL-ReferenceSignalsPUSCH +} + +PUSCH-ConfigDedicated ::= SEQUENCE { + betaOffset-ACK-Index INTEGER (0..15), + betaOffset-RI-Index INTEGER (0..15), + betaOffset-CQI-Index INTEGER (0..15) +} + +PUSCH-ConfigDedicated-v1020 ::= SEQUENCE { + betaOffsetMC-r10 SEQUENCE { + betaOffset-ACK-Index-MC-r10 INTEGER (0..15), + betaOffset-RI-Index-MC-r10 INTEGER (0..15), + betaOffset-CQI-Index-MC-r10 INTEGER (0..15) + } OPTIONAL, -- Need OR + groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicatedSCell-r10 ::= SEQUENCE { + groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR +} + +UL-ReferenceSignalsPUSCH ::= SEQUENCE { + groupHoppingEnabled BOOLEAN, + groupAssignmentPUSCH INTEGER (0..29), + sequenceHoppingEnabled BOOLEAN, + cyclicShift INTEGER (0..7) +} + + +RACH-ConfigCommon ::= SEQUENCE { + preambleInfo SEQUENCE { + numberOfRA-Preambles ENUMERATED { + n4, n8, n12, n16 ,n20, n24, n28, + n32, n36, n40, n44, n48, n52, n56, + n60, n64}, + preamblesGroupAConfig SEQUENCE { + sizeOfRA-PreamblesGroupA ENUMERATED { + n4, n8, n12, n16 ,n20, n24, n28, + n32, n36, n40, n44, n48, n52, n56, + n60}, + messageSizeGroupA ENUMERATED {b56, b144, b208, b256}, + messagePowerOffsetGroupB ENUMERATED { + minusinfinity, dB0, dB5, dB8, dB10, dB12, + dB15, dB18}, + ... + } OPTIONAL -- Need OP + }, + powerRampingParameters SEQUENCE { + powerRampingStep ENUMERATED {dB0, dB2,dB4, dB6}, + preambleInitialReceivedTargetPower ENUMERATED { + dBm-120, dBm-118, dBm-116, dBm-114, dBm-112, + dBm-110, dBm-108, dBm-106, dBm-104, dBm-102, + dBm-100, dBm-98, dBm-96, dBm-94, + dBm-92, dBm-90} + }, + ra-SupervisionInfo SEQUENCE { + preambleTransMax ENUMERATED { + n3, n4, n5, n6, n7, n8, n10, n20, n50, + n100, n200}, + ra-ResponseWindowSize ENUMERATED { + sf2, sf3, sf4, sf5, sf6, sf7, + sf8, sf10}, + mac-ContentionResolutionTimer ENUMERATED { + sf8, sf16, sf24, sf32, sf40, sf48, + sf56, sf64} + }, + maxHARQ-Msg3Tx INTEGER (1..8), + ... +} + + +RACH-ConfigDedicated ::= SEQUENCE { + ra-PreambleIndex INTEGER (0..63), + ra-PRACH-MaskIndex INTEGER (0..15) +} + + +RadioResourceConfigCommonSIB ::= SEQUENCE { + rach-ConfigCommon RACH-ConfigCommon, + bcch-Config BCCH-Config, + pcch-Config PCCH-Config, + prach-Config PRACH-ConfigSIB, + pdsch-ConfigCommon PDSCH-ConfigCommon, + pusch-ConfigCommon PUSCH-ConfigCommon, + pucch-ConfigCommon PUCCH-ConfigCommon, + soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon, + uplinkPowerControlCommon UplinkPowerControlCommon, + ul-CyclicPrefixLength UL-CyclicPrefixLength, + ..., + [[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need OR + ]] +} + +RadioResourceConfigCommon ::= SEQUENCE { + rach-ConfigCommon RACH-ConfigCommon OPTIONAL, -- Need ON + prach-Config PRACH-Config, + pdsch-ConfigCommon PDSCH-ConfigCommon OPTIONAL, -- Need ON + pusch-ConfigCommon PUSCH-ConfigCommon, + phich-Config PHICH-Config OPTIONAL, -- Need ON + pucch-ConfigCommon PUCCH-ConfigCommon OPTIONAL, -- Need ON + soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon OPTIONAL, -- Need ON + uplinkPowerControlCommon UplinkPowerControlCommon OPTIONAL, -- Need ON + antennaInfoCommon AntennaInfoCommon OPTIONAL, -- Need ON + p-Max P-Max OPTIONAL, -- Need OP + tdd-Config TDD-Config OPTIONAL, -- Cond TDD + ul-CyclicPrefixLength UL-CyclicPrefixLength, + ..., + [[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need ON + ]] +} + +RadioResourceConfigCommonSCell-r10 ::= SEQUENCE { + -- DL configuration as well as configuration applicable for DL and UL + nonUL-Configuration-r10 SEQUENCE { + -- 1: Cell characteristics + dl-Bandwidth-r10 ENUMERATED {n6, n15, n25, n50, n75, n100}, + -- 2: Physical configuration, general + antennaInfoCommon-r10 AntennaInfoCommon, + mbsfn-SubframeConfigList-r10 MBSFN-SubframeConfigList OPTIONAL, -- Need OR + -- 3: Physical configuration, control + phich-Config-r10 PHICH-Config, + -- 4: Physical configuration, physical channels + pdsch-ConfigCommon-r10 PDSCH-ConfigCommon, + tdd-Config-r10 TDD-Config OPTIONAL -- Cond TDDSCell + }, + -- UL configuration + ul-Configuration-r10 SEQUENCE { + ul-FreqInfo-r10 SEQUENCE { + ul-CarrierFreq-r10 ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth-r10 ENUMERATED {n6, n15, + n25, n50, n75, n100} OPTIONAL, -- Need OP + additionalSpectrumEmissionSCell-r10 AdditionalSpectrumEmission + }, + p-Max-r10 P-Max OPTIONAL, -- Need OP + uplinkPowerControlCommonSCell-r10 UplinkPowerControlCommonSCell-r10, + -- A special version of IE UplinkPowerControlCommon may be introduced + -- 3: Physical configuration, control + soundingRS-UL-ConfigCommon-r10 SoundingRS-UL-ConfigCommon, + ul-CyclicPrefixLength-r10 UL-CyclicPrefixLength, + -- 4: Physical configuration, physical channels + prach-ConfigSCell-r10 PRACH-ConfigSCell-r10 OPTIONAL, -- Cond TDD-OR + pusch-ConfigCommon-r10 PUSCH-ConfigCommon + } OPTIONAL, -- Need OR + ..., + [[ ul-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Need OP + ]] +} + +RadioResourceConfigCommonSCell-v10l0 ::= SEQUENCE { + -- UL configuration + ul-Configuration-v10l0 SEQUENCE { + additionalSpectrumEmissionSCell-v10l0 AdditionalSpectrumEmission-v10l0 + } +} + +BCCH-Config ::= SEQUENCE { + modificationPeriodCoeff ENUMERATED {n2, n4, n8, n16} +} + +PCCH-Config ::= SEQUENCE { + defaultPagingCycle ENUMERATED { + rf32, rf64, rf128, rf256}, + nB ENUMERATED { + fourT, twoT, oneT, halfT, quarterT, oneEighthT, + oneSixteenthT, oneThirtySecondT} +} + +UL-CyclicPrefixLength ::= ENUMERATED {len1, len2} + + +RadioResourceConfigDedicated ::= SEQUENCE { + srb-ToAddModList SRB-ToAddModList OPTIONAL, -- Cond HO-Conn + drb-ToAddModList DRB-ToAddModList OPTIONAL, -- Cond HO-toEUTRA + drb-ToReleaseList DRB-ToReleaseList OPTIONAL, -- Need ON + mac-MainConfig CHOICE { + explicitValue MAC-MainConfig, + defaultValue NULL + } OPTIONAL, -- Cond HO-toEUTRA2 + sps-Config SPS-Config OPTIONAL, -- Need ON + physicalConfigDedicated PhysicalConfigDedicated OPTIONAL, -- Need ON + ..., + [[ rlf-TimersAndConstants-r9 RLF-TimersAndConstants-r9 OPTIONAL -- Need ON + ]], + [[ measSubframePatternPCell-r10 MeasSubframePatternPCell-r10 OPTIONAL -- Need ON + ]] +} + +RadioResourceConfigDedicatedSCell-r10 ::= SEQUENCE { + -- UE specific configuration extensions applicable for an SCell + physicalConfigDedicatedSCell-r10 PhysicalConfigDedicatedSCell-r10 OPTIONAL, -- Need ON + ... +} + +SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod + +SRB-ToAddMod ::= SEQUENCE { + srb-Identity INTEGER (1..2), + rlc-Config CHOICE { + explicitValue RLC-Config, + defaultValue NULL + } OPTIONAL, -- Cond Setup + logicalChannelConfig CHOICE { + explicitValue LogicalChannelConfig, + defaultValue NULL + } OPTIONAL, -- Cond Setup + ... +} + +DRB-ToAddModList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod + +DRB-ToAddMod ::= SEQUENCE { + eps-BearerIdentity INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity DRB-Identity, + pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP + rlc-Config RLC-Config OPTIONAL, -- Cond Setup + logicalChannelIdentity INTEGER (3..10) OPTIONAL, -- Cond DRB-Setup + logicalChannelConfig LogicalChannelConfig OPTIONAL, -- Cond Setup + ... +} + +DRB-ToReleaseList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity + +MeasSubframePatternPCell-r10 ::= CHOICE { + release NULL, + setup MeasSubframePattern-r10 +} + + +RLC-Config ::= CHOICE { + am SEQUENCE { + ul-AM-RLC UL-AM-RLC, + dl-AM-RLC DL-AM-RLC + }, + um-Bi-Directional SEQUENCE { + ul-UM-RLC UL-UM-RLC, + dl-UM-RLC DL-UM-RLC + }, + um-Uni-Directional-UL SEQUENCE { + ul-UM-RLC UL-UM-RLC + }, + um-Uni-Directional-DL SEQUENCE { + dl-UM-RLC DL-UM-RLC + }, + ... +} + +UL-AM-RLC ::= SEQUENCE { + t-PollRetransmit T-PollRetransmit, + pollPDU PollPDU, + pollByte PollByte, + maxRetxThreshold ENUMERATED { + t1, t2, t3, t4, t6, t8, t16, t32} +} + +DL-AM-RLC ::= SEQUENCE { + t-Reordering T-Reordering, + t-StatusProhibit T-StatusProhibit +} + +UL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength +} + +DL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength, + t-Reordering T-Reordering +} + +SN-FieldLength ::= ENUMERATED {size5, size10} + +T-PollRetransmit ::= ENUMERATED { + ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, spare9, spare8, + spare7, spare6, spare5, spare4, spare3, + spare2, spare1} + +PollPDU ::= ENUMERATED { + p4, p8, p16, p32, p64, p128, p256, pInfinity} + +PollByte ::= ENUMERATED { + kB25, kB50, kB75, kB100, kB125, kB250, kB375, + kB500, kB750, kB1000, kB1250, kB1500, kB2000, + kB3000, kBinfinity, spare1} + +T-Reordering ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms110, + ms120, ms130, ms140, ms150, ms160, ms170, + ms180, ms190, ms200, spare1} + +T-StatusProhibit ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, spare8, spare7, + spare6, spare5, spare4, spare3, spare2, + spare1} + + +RLF-TimersAndConstants-r9 ::= CHOICE { + release NULL, + setup SEQUENCE { + t301-r9 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t310-r9 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n310-r9 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311-r9 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311-r9 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ... + } +} + + +RN-SubframeConfig-r10 ::= SEQUENCE { + subframeConfigPattern-r10 CHOICE { + subframeConfigPatternFDD-r10 BIT STRING (SIZE(8)), + subframeConfigPatternTDD-r10 INTEGER (0..31) + } OPTIONAL, -- Need ON + rpdcch-Config-r10 SEQUENCE { + resourceAllocationType-r10 ENUMERATED {type0, type1, type2Localized, type2Distributed, + spare4, spare3, spare2, spare1}, + resourceBlockAssignment-r10 CHOICE { + type01-r10 CHOICE { + nrb6-r10 BIT STRING (SIZE(6)), + nrb15-r10 BIT STRING (SIZE(8)), + nrb25-r10 BIT STRING (SIZE(13)), + nrb50-r10 BIT STRING (SIZE(17)), + nrb75-r10 BIT STRING (SIZE(19)), + nrb100-r10 BIT STRING (SIZE(25)) + }, + type2-r10 CHOICE { + nrb6-r10 BIT STRING (SIZE(5)), + nrb15-r10 BIT STRING (SIZE(7)), + nrb25-r10 BIT STRING (SIZE(9)), + nrb50-r10 BIT STRING (SIZE(11)), + nrb75-r10 BIT STRING (SIZE(12)), + nrb100-r10 BIT STRING (SIZE(13)) + }, + ... + }, + demodulationRS-r10 CHOICE { + interleaving-r10 ENUMERATED {crs}, + noInterleaving-r10 ENUMERATED {crs, dmrs} + }, + pdsch-Start-r10 INTEGER (1..3), + pucch-Config-r10 CHOICE { + tdd CHOICE { + channelSelectionMultiplexingBundling SEQUENCE { + n1PUCCH-AN-List-r10 SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + }, + fallbackForFormat3 SEQUENCE { + n1PUCCH-AN-P0-r10 INTEGER (0..2047), + n1PUCCH-AN-P1-r10 INTEGER (0..2047) OPTIONAL -- Need OR + } + }, + fdd SEQUENCE { + n1PUCCH-AN-P0-r10 INTEGER (0..2047), + n1PUCCH-AN-P1-r10 INTEGER (0..2047) OPTIONAL -- Need OR + } + }, + ... + } OPTIONAL, -- Need ON + ... +} + + +SchedulingRequestConfig ::= CHOICE { + release NULL, + setup SEQUENCE { + sr-PUCCH-ResourceIndex INTEGER (0..2047), + sr-ConfigIndex INTEGER (0..157), + dsr-TransMax ENUMERATED { + n4, n8, n16, n32, n64, spare3, spare2, spare1} + } +} + +SchedulingRequestConfig-v1020 ::= SEQUENCE { + sr-PUCCH-ResourceIndexP1-r10 INTEGER (0..2047) OPTIONAL -- Need OR +} + + +SoundingRS-UL-ConfigCommon ::= CHOICE { + release NULL, + setup SEQUENCE { + srs-BandwidthConfig ENUMERATED {bw0, bw1, bw2, bw3, bw4, bw5, bw6, bw7}, + srs-SubframeConfig ENUMERATED { + sc0, sc1, sc2, sc3, sc4, sc5, sc6, sc7, + sc8, sc9, sc10, sc11, sc12, sc13, sc14, sc15}, + ackNackSRS-SimultaneousTransmission BOOLEAN, + srs-MaxUpPts ENUMERATED {true} OPTIONAL -- Cond TDD + } +} + +SoundingRS-UL-ConfigDedicated ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-Bandwidth ENUMERATED {bw0, bw1, bw2, bw3}, + srs-HoppingBandwidth ENUMERATED {hbw0, hbw1, hbw2, hbw3}, + freqDomainPosition INTEGER (0..23), + duration BOOLEAN, + srs-ConfigIndex INTEGER (0..1023), + transmissionComb INTEGER (0..1), + cyclicShift ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7} + } +} + +SoundingRS-UL-ConfigDedicated-v1020 ::= SEQUENCE { + srs-AntennaPort-r10 SRS-AntennaPort +} + +SoundingRS-UL-ConfigDedicatedAperiodic-r10 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-ConfigIndexAp-r10 INTEGER (0..31), + srs-ConfigApDCI-Format4-r10 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-r10 OPTIONAL,--Need ON + srs-ActivateAp-r10 CHOICE { + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format0-r10 SRS-ConfigAp-r10, + srs-ConfigApDCI-Format1a2b2c-r10 SRS-ConfigAp-r10, + ... + } + } OPTIONAL -- Need ON + } +} + +SRS-ConfigAp-r10 ::= SEQUENCE { + srs-AntennaPortAp-r10 SRS-AntennaPort, + srs-BandwidthAp-r10 ENUMERATED {bw0, bw1, bw2, bw3}, + freqDomainPositionAp-r10 INTEGER (0..23), + transmissionCombAp-r10 INTEGER (0..1), + cyclicShiftAp-r10 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7} +} + +SRS-AntennaPort ::= ENUMERATED {an1, an2, an4, spare1} + + +SPS-Config ::= SEQUENCE { + semiPersistSchedC-RNTI C-RNTI OPTIONAL, -- Need OR + sps-ConfigDL SPS-ConfigDL OPTIONAL, -- Need ON + sps-ConfigUL SPS-ConfigUL OPTIONAL -- Need ON +} + +SPS-ConfigDL ::= CHOICE{ + release NULL, + setup SEQUENCE { + semiPersistSchedIntervalDL ENUMERATED { + sf10, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, spare6, + spare5, spare4, spare3, spare2, + spare1}, + numberOfConfSPS-Processes INTEGER (1..8), + n1PUCCH-AN-PersistentList N1PUCCH-AN-PersistentList, + ..., + [[ twoAntennaPortActivated-r10 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-PersistentListP1-r10 N1PUCCH-AN-PersistentList + } + } OPTIONAL -- Need ON + ]] + } +} + +SPS-ConfigUL ::= CHOICE { + release NULL, + setup SEQUENCE { + semiPersistSchedIntervalUL ENUMERATED { + sf10, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, spare6, + spare5, spare4, spare3, spare2, + spare1}, + implicitReleaseAfter ENUMERATED {e2, e3, e4, e8}, + p0-Persistent SEQUENCE { + p0-NominalPUSCH-Persistent INTEGER (-126..24), + p0-UE-PUSCH-Persistent INTEGER (-8..7) + } OPTIONAL, -- Need OP + twoIntervalsConfig ENUMERATED {true} OPTIONAL, -- Cond TDD + ... + } +} + +N1PUCCH-AN-PersistentList ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + + +TDD-Config ::= SEQUENCE { + subframeAssignment ENUMERATED { + sa0, sa1, sa2, sa3, sa4, sa5, sa6}, + specialSubframePatterns ENUMERATED { + ssp0, ssp1, ssp2, ssp3, ssp4,ssp5, ssp6, ssp7, + ssp8} +} + + +TimeAlignmentTimer ::= ENUMERATED { + sf500, sf750, sf1280, sf1920, sf2560, sf5120, + sf10240, infinity} + +TPC-PDCCH-Config ::= CHOICE { + release NULL, + setup SEQUENCE { + tpc-RNTI BIT STRING (SIZE (16)), + tpc-Index TPC-Index + } +} + +TPC-Index ::= CHOICE { + indexOfFormat3 INTEGER (1..15), + indexOfFormat3A INTEGER (1..31) +} + + +UplinkPowerControlCommon ::= SEQUENCE { + p0-NominalPUSCH INTEGER (-126..24), + alpha ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1}, + p0-NominalPUCCH INTEGER (-127..-96), + deltaFList-PUCCH DeltaFList-PUCCH, + deltaPreambleMsg3 INTEGER (-1..6) +} + +UplinkPowerControlCommon-v1020 ::= SEQUENCE { + deltaF-PUCCH-Format3-r10 ENUMERATED {deltaF-1, deltaF0, deltaF1, deltaF2, + deltaF3, deltaF4, deltaF5, deltaF6}, + deltaF-PUCCH-Format1bCS-r10 ENUMERATED {deltaF1, deltaF2, spare2, spare1} +} + +UplinkPowerControlCommonSCell-r10 ::= SEQUENCE { + p0-NominalPUSCH-r10 INTEGER (-126..24), + alpha-r10 ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1} +} + +UplinkPowerControlDedicated ::= SEQUENCE { + p0-UE-PUSCH INTEGER (-8..7), + deltaMCS-Enabled ENUMERATED {en0, en1}, + accumulationEnabled BOOLEAN, + p0-UE-PUCCH INTEGER (-8..7), + pSRS-Offset INTEGER (0..15), + filterCoefficient FilterCoefficient DEFAULT fc4 +} + +UplinkPowerControlDedicated-v1020 ::= SEQUENCE { + deltaTxD-OffsetListPUCCH-r10 DeltaTxD-OffsetListPUCCH-r10 OPTIONAL, -- Need OR + pSRS-OffsetAp-r10 INTEGER (0..15) OPTIONAL -- Need OR +} + +UplinkPowerControlDedicatedSCell-r10 ::= SEQUENCE { + p0-UE-PUSCH-r10 INTEGER (-8..7), + deltaMCS-Enabled-r10 ENUMERATED {en0, en1}, + accumulationEnabled-r10 BOOLEAN, + pSRS-Offset-r10 INTEGER (0..15), + pSRS-OffsetAp-r10 INTEGER (0..15) OPTIONAL, -- Need OR + filterCoefficient-r10 FilterCoefficient DEFAULT fc4, + pathlossReferenceLinking-r10 ENUMERATED {pCell, sCell} +} + +DeltaFList-PUCCH ::= SEQUENCE { + deltaF-PUCCH-Format1 ENUMERATED {deltaF-2, deltaF0, deltaF2}, + deltaF-PUCCH-Format1b ENUMERATED {deltaF1, deltaF3, deltaF5}, + deltaF-PUCCH-Format2 ENUMERATED {deltaF-2, deltaF0, deltaF1, deltaF2}, + deltaF-PUCCH-Format2a ENUMERATED {deltaF-2, deltaF0, deltaF2}, + deltaF-PUCCH-Format2b ENUMERATED {deltaF-2, deltaF0, deltaF2} +} + +DeltaTxD-OffsetListPUCCH-r10 ::= SEQUENCE { + deltaTxD-OffsetPUCCH-Format1-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format1a1b-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format22a2b-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format3-r10 ENUMERATED {dB0, dB-2}, + ... +} + + +NextHopChainingCount ::= INTEGER (0..7) + + +SecurityAlgorithmConfig ::= SEQUENCE { + cipheringAlgorithm ENUMERATED { + eea0, eea1, eea2, spare5, spare4, spare3, + spare2, spare1, ...}, + integrityProtAlgorithm ENUMERATED { + eia0-v920, eia1, eia2, spare5, spare4, spare3, + spare2, spare1, ...} +} + + +ShortMAC-I ::= BIT STRING (SIZE (16)) + + +AdditionalSpectrumEmission ::= INTEGER (1..32) + +AdditionalSpectrumEmission-v10l0 ::= INTEGER (33..288) + + +ARFCN-ValueCDMA2000 ::= INTEGER (0..2047) + + +ARFCN-ValueEUTRA ::= INTEGER (0..maxEARFCN) + +ARFCN-ValueEUTRA-v9e0 ::= INTEGER (maxEARFCN-Plus1..maxEARFCN2) + +ARFCN-ValueEUTRA-r9 ::= INTEGER (0..maxEARFCN2) + + +ARFCN-ValueGERAN ::= INTEGER (0..1023) + + +ARFCN-ValueUTRA ::= INTEGER (0..16383) + + +BandclassCDMA2000 ::= ENUMERATED { + bc0, bc1, bc2, bc3, bc4, bc5, bc6, bc7, bc8, + bc9, bc10, bc11, bc12, bc13, bc14, bc15, bc16, + bc17, bc18-v9a0, bc19-v9a0, bc20-v9a0, bc21-v9a0, + spare10, spare9, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1, ...} + + +BandIndicatorGERAN ::= ENUMERATED {dcs1800, pcs1900} + + +CarrierFreqCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + arfcn ARFCN-ValueCDMA2000 +} + + +CarrierFreqGERAN ::= SEQUENCE { + arfcn ARFCN-ValueGERAN, + bandIndicator BandIndicatorGERAN +} + + +CarrierFreqsGERAN ::= SEQUENCE { + startingARFCN ARFCN-ValueGERAN, + bandIndicator BandIndicatorGERAN, + followingARFCNs CHOICE { + explicitListOfARFCNs ExplicitListOfARFCNs, + equallySpacedARFCNs SEQUENCE { + arfcn-Spacing INTEGER (1..8), + numberOfFollowingARFCNs INTEGER (0..31) + }, + variableBitMapOfARFCNs OCTET STRING (SIZE (1..16)) + } +} + +ExplicitListOfARFCNs ::= SEQUENCE (SIZE (0..31)) OF ARFCN-ValueGERAN + + +CDMA2000-Type ::= ENUMERATED {type1XRTT, typeHRPD} + + +CellIdentity ::= BIT STRING (SIZE (28)) + + +CellIndexList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellIndex + +CellIndex ::= INTEGER (1..maxCellMeas) + + +CellReselectionPriority ::= INTEGER (0..7) + + +CSFB-RegistrationParam1XRTT ::= SEQUENCE { + sid BIT STRING (SIZE (15)), + nid BIT STRING (SIZE (16)), + multipleSID BOOLEAN, + multipleNID BOOLEAN, + homeReg BOOLEAN, + foreignSIDReg BOOLEAN, + foreignNIDReg BOOLEAN, + parameterReg BOOLEAN, + powerUpReg BOOLEAN, + registrationPeriod BIT STRING (SIZE (7)), + registrationZone BIT STRING (SIZE (12)), + totalZone BIT STRING (SIZE (3)), + zoneTimer BIT STRING (SIZE (3)) +} + +CSFB-RegistrationParam1XRTT-v920 ::= SEQUENCE { + powerDownReg-r9 ENUMERATED {true} +} + + +CellGlobalIdEUTRA ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellIdentity CellIdentity +} + + +CellGlobalIdUTRA ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellIdentity BIT STRING (SIZE (28)) +} + + +CellGlobalIdGERAN ::= SEQUENCE { + plmn-Identity PLMN-Identity, + locationAreaCode BIT STRING (SIZE (16)), + cellIdentity BIT STRING (SIZE (16)) +} + + +CellGlobalIdCDMA2000 ::= CHOICE { + cellGlobalId1XRTT BIT STRING (SIZE (47)), + cellGlobalIdHRPD BIT STRING (SIZE (128)) +} + + +CSG-Identity ::= BIT STRING (SIZE (27)) + + +FreqBandIndicator ::= INTEGER (1..maxFBI) + +FreqBandIndicator-v9e0 ::= INTEGER (maxFBI-Plus1..maxFBI2) + + +MobilityControlInfo ::= SEQUENCE { + targetPhysCellId PhysCellId, + carrierFreq CarrierFreqEUTRA OPTIONAL, -- Cond HO-toEUTRA2 + carrierBandwidth CarrierBandwidthEUTRA OPTIONAL, -- Cond HO-toEUTRA + additionalSpectrumEmission AdditionalSpectrumEmission OPTIONAL, -- Cond HO-toEUTRA + t304 ENUMERATED { + ms50, ms100, ms150, ms200, ms500, ms1000, + ms2000, spare1}, + newUE-Identity C-RNTI, + radioResourceConfigCommon RadioResourceConfigCommon, + rach-ConfigDedicated RACH-ConfigDedicated OPTIONAL, -- Need OP + ..., + [[ carrierFreq-v9e0 CarrierFreqEUTRA-v9e0 OPTIONAL -- Need ON + ]] +} + +MobilityControlInfo-v10l0 ::= SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 OPTIONAL -- Need ON +} + +CarrierBandwidthEUTRA ::= SEQUENCE { + dl-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100, spare10, + spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1}, + ul-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100, spare10, + spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1} OPTIONAL -- Need OP +} + +CarrierFreqEUTRA ::= SEQUENCE { + dl-CarrierFreq ARFCN-ValueEUTRA, + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL -- Cond FDD +} + +CarrierFreqEUTRA-v9e0 ::= SEQUENCE { + dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9, + ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9 OPTIONAL -- Cond FDD +} + + +MobilityParametersCDMA2000 ::= OCTET STRING + + +MobilityStateParameters ::= SEQUENCE { + t-Evaluation ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + t-HystNormal ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + n-CellChangeMedium INTEGER (1..16), + n-CellChangeHigh INTEGER (1..16) +} + + +MultiBandInfoList ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator + +MultiBandInfoList-v9e0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF MultiBandInfo-v9e0 + +MultiBandInfoList-v10j0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF NS-PmaxList-r10 + +MultiBandInfoList-v10l0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF NS-PmaxList-v10l0 +MultiBandInfo-v9e0 ::= SEQUENCE { + freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL -- Need OP +} + + +NS-PmaxList-r10 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-r10 + +NS-PmaxList-v10l0 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-v10l0 + +NS-PmaxValue-r10 ::= SEQUENCE { + additionalPmax-r10 P-Max OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission +} + +NS-PmaxValue-v10l0 ::= SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 OPTIONAL -- Need OP +} + + +PhysCellId ::= INTEGER (0..503) + + +PhysCellIdRange ::= SEQUENCE { + start PhysCellId, + range ENUMERATED { + n4, n8, n12, n16, n24, n32, n48, n64, n84, + n96, n128, n168, n252, n504, spare2, + spare1} OPTIONAL -- Need OP +} + + +PhysCellIdRangeUTRA-FDDList-r9::= SEQUENCE (SIZE (1.. maxPhysCellIdRange-r9)) OF PhysCellIdRangeUTRA-FDD-r9 + +PhysCellIdRangeUTRA-FDD-r9 ::= SEQUENCE { + start-r9 PhysCellIdUTRA-FDD, + range-r9 INTEGER (2..512) OPTIONAL -- Need OP +} + + +PhysCellIdCDMA2000 ::= INTEGER (0..maxPNOffset) + + +PhysCellIdGERAN ::= SEQUENCE { + networkColourCode BIT STRING (SIZE (3)), + baseStationColourCode BIT STRING (SIZE (3)) +} + + +PhysCellIdUTRA-FDD ::= INTEGER (0..511) + + +PhysCellIdUTRA-TDD ::= INTEGER (0..127) + + +PLMN-Identity ::= SEQUENCE { + mcc MCC OPTIONAL, -- Cond MCC + mnc MNC +} + +MCC ::= SEQUENCE (SIZE (3)) OF + MCC-MNC-Digit + +MNC ::= SEQUENCE (SIZE (2..3)) OF + MCC-MNC-Digit + +MCC-MNC-Digit ::= INTEGER (0..9) + + + +PreRegistrationInfoHRPD ::= SEQUENCE { + preRegistrationAllowed BOOLEAN, + preRegistrationZoneId PreRegistrationZoneIdHRPD OPTIONAL, -- cond PreRegAllowed + secondaryPreRegistrationZoneIdList SecondaryPreRegistrationZoneIdListHRPD OPTIONAL -- Need OR +} + +SecondaryPreRegistrationZoneIdListHRPD ::= SEQUENCE (SIZE (1..2)) OF PreRegistrationZoneIdHRPD + +PreRegistrationZoneIdHRPD ::= INTEGER (0..255) + + +Q-QualMin-r9 ::= INTEGER (-34..-3) + + +Q-RxLevMin ::= INTEGER (-70..-22) + + +Q-OffsetRange ::= ENUMERATED { + dB-24, dB-22, dB-20, dB-18, dB-16, dB-14, + dB-12, dB-10, dB-8, dB-6, dB-5, dB-4, dB-3, + dB-2, dB-1, dB0, dB1, dB2, dB3, dB4, dB5, + dB6, dB8, dB10, dB12, dB14, dB16, dB18, + dB20, dB22, dB24} + + +Q-OffsetRangeInterRAT ::= INTEGER (-15..15) + + +ReselectionThreshold ::= INTEGER (0..31) + + +ReselectionThresholdQ-r9 ::= INTEGER (0..31) + + +SCellIndex-r10 ::= INTEGER (1..7) + + +ServCellIndex-r10 ::= INTEGER (0..7) + + +SpeedStateScaleFactors ::= SEQUENCE { + sf-Medium ENUMERATED {oDot25, oDot5, oDot75, lDot0}, + sf-High ENUMERATED {oDot25, oDot5, oDot75, lDot0} +} + +SystemInfoListGERAN ::= SEQUENCE (SIZE (1..maxGERAN-SI)) OF + OCTET STRING (SIZE (1..23)) + + +SystemTimeInfoCDMA2000 ::= SEQUENCE { + cdma-EUTRA-Synchronisation BOOLEAN, + cdma-SystemTime CHOICE { + synchronousSystemTime BIT STRING (SIZE (39)), + asynchronousSystemTime BIT STRING (SIZE (49)) + } +} + + +TrackingAreaCode ::= BIT STRING (SIZE (16)) + + +T-Reselection ::= INTEGER (0..7) + + +AllowedMeasBandwidth ::= ENUMERATED {mbw6, mbw15, mbw25, mbw50, mbw75, mbw100} + + +Hysteresis ::= INTEGER (0..30) + + +LocationInfo-r10 ::= SEQUENCE { + locationCoordinates-r10 CHOICE { + ellipsoid-Point-r10 OCTET STRING, + ellipsoidPointWithAltitude-r10 OCTET STRING, + ... + }, + horizontalVelocity-r10 OCTET STRING OPTIONAL, + gnss-TOD-msec-r10 OCTET STRING OPTIONAL, + ... +} + + +MeasConfig ::= SEQUENCE { + -- Measurement objects + measObjectToRemoveList MeasObjectToRemoveList OPTIONAL, -- Need ON + measObjectToAddModList MeasObjectToAddModList OPTIONAL, -- Need ON + -- Reporting configurations + reportConfigToRemoveList ReportConfigToRemoveList OPTIONAL, -- Need ON + reportConfigToAddModList ReportConfigToAddModList OPTIONAL, -- Need ON + -- Measurement identities + measIdToRemoveList MeasIdToRemoveList OPTIONAL, -- Need ON + measIdToAddModList MeasIdToAddModList OPTIONAL, -- Need ON + -- Other parameters + quantityConfig QuantityConfig OPTIONAL, -- Need ON + measGapConfig MeasGapConfig OPTIONAL, -- Need ON + s-Measure RSRP-Range OPTIONAL, -- Need ON + preRegistrationInfoHRPD PreRegistrationInfoHRPD OPTIONAL, -- Need OP + speedStatePars CHOICE { + release NULL, + setup SEQUENCE { + mobilityStateParameters MobilityStateParameters, + timeToTrigger-SF SpeedStateScaleFactors + } + } OPTIONAL, -- Need ON + ..., + [[ measObjectToAddModList-v9e0 MeasObjectToAddModList-v9e0 OPTIONAL -- Need ON + ]] +} + +MeasIdToRemoveList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId + +MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId + +ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigId + + +MeasGapConfig ::= CHOICE { + release NULL, + setup SEQUENCE { + gapOffset CHOICE { + gp0 INTEGER (0..39), + gp1 INTEGER (0..79), + ... + } + } +} + + +MeasId ::= INTEGER (1..maxMeasId) + + +MeasIdToAddModList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod + +MeasIdToAddMod ::= SEQUENCE { + measId MeasId, + measObjectId MeasObjectId, + reportConfigId ReportConfigId +} + + +MeasObjectCDMA2000 ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + carrierFreq CarrierFreqCDMA2000, + searchWindowSize INTEGER (0..15) OPTIONAL, -- Need ON + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CellsToAddModListCDMA2000 OPTIONAL, -- Need ON + cellForWhichToReportCGI PhysCellIdCDMA2000 OPTIONAL, -- Need ON + ... +} + +CellsToAddModListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModCDMA2000 + +CellsToAddModCDMA2000 ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdCDMA2000 +} + + +MeasObjectEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + allowedMeasBandwidth AllowedMeasBandwidth, + presenceAntennaPort1 PresenceAntennaPort1, + neighCellConfig NeighCellConfig, + offsetFreq Q-OffsetRange DEFAULT dB0, + -- Cell list + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CellsToAddModList OPTIONAL, -- Need ON + -- Black list + blackCellsToRemoveList CellIndexList OPTIONAL, -- Need ON + blackCellsToAddModList BlackCellsToAddModList OPTIONAL, -- Need ON + cellForWhichToReportCGI PhysCellId OPTIONAL, -- Need ON + ..., + [[measCycleSCell-r10 MeasCycleSCell-r10 OPTIONAL, -- Need ON + measSubframePatternConfigNeigh-r10 MeasSubframePatternConfigNeigh-r10 OPTIONAL -- Need ON + ]] +} + +MeasObjectEUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +CellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddMod + +CellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellId, + cellIndividualOffset Q-OffsetRange +} + +BlackCellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF BlackCellsToAddMod + +BlackCellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellIdRange PhysCellIdRange +} + +MeasCycleSCell-r10 ::= ENUMERATED {sf160, sf256, sf320, sf512, + sf640, sf1024, sf1280, spare1} + +MeasSubframePatternConfigNeigh-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + measSubframePatternNeigh-r10 MeasSubframePattern-r10, + measSubframeCellList-r10 MeasSubframeCellList-r10 OPTIONAL -- Cond measSubframe + } +} + +MeasSubframeCellList-r10 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF PhysCellIdRange + + +MeasObjectGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + ncc-Permitted BIT STRING(SIZE (8)) DEFAULT '11111111'B, + cellForWhichToReportCGI PhysCellIdGERAN OPTIONAL, -- Need ON + ... +} + + +MeasObjectId ::= INTEGER (1..maxObjectId) + + +MeasObjectToAddModList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod + +MeasObjectToAddModList-v9e0 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod-v9e0 + +MeasObjectToAddMod ::= SEQUENCE { + measObjectId MeasObjectId, + measObject CHOICE { + measObjectEUTRA MeasObjectEUTRA, + measObjectUTRA MeasObjectUTRA, + measObjectGERAN MeasObjectGERAN, + measObjectCDMA2000 MeasObjectCDMA2000, + ... + } +} + +MeasObjectToAddMod-v9e0 ::= SEQUENCE { + measObjectEUTRA-v9e0 MeasObjectEUTRA-v9e0 OPTIONAL -- Cond eutra +} + + +MeasObjectUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CHOICE { + cellsToAddModListUTRA-FDD CellsToAddModListUTRA-FDD, + cellsToAddModListUTRA-TDD CellsToAddModListUTRA-TDD + } OPTIONAL, -- Need ON + cellForWhichToReportCGI CHOICE { + utra-FDD PhysCellIdUTRA-FDD, + utra-TDD PhysCellIdUTRA-TDD + } OPTIONAL, -- Need ON + ..., + [[ csg-allowedReportingCells-v930 CSG-AllowedReportingCells-r9 OPTIONAL -- Need ON + ]] +} + +CellsToAddModListUTRA-FDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-FDD + +CellsToAddModUTRA-FDD ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdUTRA-FDD +} + +CellsToAddModListUTRA-TDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-TDD + +CellsToAddModUTRA-TDD ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdUTRA-TDD +} + +CSG-AllowedReportingCells-r9 ::= SEQUENCE { + physCellIdRangeUTRA-FDDList-r9 PhysCellIdRangeUTRA-FDDList-r9 OPTIONAL -- Need OR +} + +MeasResults ::= SEQUENCE { + measId MeasId, + measResultPCell SEQUENCE { + rsrpResult RSRP-Range, + rsrqResult RSRQ-Range + }, + measResultNeighCells CHOICE { + measResultListEUTRA MeasResultListEUTRA, + measResultListUTRA MeasResultListUTRA, + measResultListGERAN MeasResultListGERAN, + measResultsCDMA2000 MeasResultsCDMA2000, + ... + } OPTIONAL, + ..., + [[ measResultForECID-r9 MeasResultForECID-r9 OPTIONAL + ]], + [[ locationInfo-r10 LocationInfo-r10 OPTIONAL, + measResultServFreqList-r10 MeasResultServFreqList-r10 OPTIONAL + ]] +} + +MeasResultListEUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultEUTRA + +MeasResultEUTRA ::= SEQUENCE { + physCellId PhysCellId, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdEUTRA, + trackingAreaCode TrackingAreaCode, + plmn-IdentityList PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + rsrpResult RSRP-Range OPTIONAL, + rsrqResult RSRQ-Range OPTIONAL, + ..., + [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL + ]] + } +} + +MeasResultServFreqList-r10 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF MeasResultServFreq-r10 + +MeasResultServFreq-r10 ::= SEQUENCE { + servFreqId-r10 ServCellIndex-r10, + measResultSCell-r10 SEQUENCE { + rsrpResultSCell-r10 RSRP-Range, + rsrqResultSCell-r10 RSRQ-Range + } OPTIONAL, + measResultBestNeighCell-r10 SEQUENCE { + physCellId-r10 PhysCellId, + rsrpResultNCell-r10 RSRP-Range, + rsrqResultNCell-r10 RSRQ-Range + } OPTIONAL, + ... +} + +MeasResultListUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultUTRA + +MeasResultUTRA ::= SEQUENCE { + physCellId CHOICE { + fdd PhysCellIdUTRA-FDD, + tdd PhysCellIdUTRA-TDD + }, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdUTRA, + locationAreaCode BIT STRING (SIZE (16)) OPTIONAL, + routingAreaCode BIT STRING (SIZE (8)) OPTIONAL, + plmn-IdentityList PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + utra-RSCP INTEGER (-5..91) OPTIONAL, + utra-EcN0 INTEGER (0..49) OPTIONAL, + ..., + [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL + ]] + } +} + +MeasResultListGERAN ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultGERAN + +MeasResultGERAN ::= SEQUENCE { + carrierFreq CarrierFreqGERAN, + physCellId PhysCellIdGERAN, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdGERAN, + routingAreaCode BIT STRING (SIZE (8)) OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + rssi INTEGER (0..63), + ... + } +} + +MeasResultsCDMA2000 ::= SEQUENCE { + preRegistrationStatusHRPD BOOLEAN, + measResultListCDMA2000 MeasResultListCDMA2000 +} + +MeasResultListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCDMA2000 + +MeasResultCDMA2000 ::= SEQUENCE { + physCellId PhysCellIdCDMA2000, + cgi-Info CellGlobalIdCDMA2000 OPTIONAL, + measResult SEQUENCE { + pilotPnPhase INTEGER (0..32767) OPTIONAL, + pilotStrength INTEGER (0..63), + ... + } +} + +MeasResultForECID-r9 ::= SEQUENCE { + ue-RxTxTimeDiffResult-r9 INTEGER (0..4095), + currentSFN-r9 BIT STRING (SIZE (10)) +} + +PLMN-IdentityList2 ::= SEQUENCE (SIZE (1..5)) OF PLMN-Identity + +AdditionalSI-Info-r9 ::= SEQUENCE { + csg-MemberStatus-r9 ENUMERATED {member} OPTIONAL, + csg-Identity-r9 CSG-Identity OPTIONAL +} + + +QuantityConfig ::= SEQUENCE { + quantityConfigEUTRA QuantityConfigEUTRA OPTIONAL, -- Need ON + quantityConfigUTRA QuantityConfigUTRA OPTIONAL, -- Need ON + quantityConfigGERAN QuantityConfigGERAN OPTIONAL, -- Need ON + quantityConfigCDMA2000 QuantityConfigCDMA2000 OPTIONAL, -- Need ON + ..., + [[ quantityConfigUTRA-v1020 QuantityConfigUTRA-v1020 OPTIONAL -- Need ON + ]] +} + +QuantityConfigEUTRA ::= SEQUENCE { + filterCoefficientRSRP FilterCoefficient DEFAULT fc4, + filterCoefficientRSRQ FilterCoefficient DEFAULT fc4 +} + +QuantityConfigUTRA ::= SEQUENCE { + measQuantityUTRA-FDD ENUMERATED {cpich-RSCP, cpich-EcN0}, + measQuantityUTRA-TDD ENUMERATED {pccpch-RSCP}, + filterCoefficient FilterCoefficient DEFAULT fc4 +} + +QuantityConfigUTRA-v1020 ::= SEQUENCE { + filterCoefficient2-FDD-r10 FilterCoefficient DEFAULT fc4 +} + +QuantityConfigGERAN ::= SEQUENCE { + measQuantityGERAN ENUMERATED {rssi}, + filterCoefficient FilterCoefficient DEFAULT fc2 +} + +QuantityConfigCDMA2000 ::= SEQUENCE { + measQuantityCDMA2000 ENUMERATED {pilotStrength, pilotPnPhaseAndPilotStrength} +} + + +ReportConfigEUTRA ::= SEQUENCE { + triggerType CHOICE { + event SEQUENCE { + eventId CHOICE { + eventA1 SEQUENCE { + a1-Threshold ThresholdEUTRA + }, + eventA2 SEQUENCE { + a2-Threshold ThresholdEUTRA + }, + eventA3 SEQUENCE { + a3-Offset INTEGER (-30..30), + reportOnLeave BOOLEAN + }, + eventA4 SEQUENCE { + a4-Threshold ThresholdEUTRA + }, + eventA5 SEQUENCE { + a5-Threshold1 ThresholdEUTRA, + a5-Threshold2 ThresholdEUTRA + }, + ..., + eventA6-r10 SEQUENCE { + a6-Offset-r10 INTEGER (-30..30), + a6-ReportOnLeave-r10 BOOLEAN + } + }, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + periodical SEQUENCE { + purpose ENUMERATED { + reportStrongestCells, reportCGI} + } + }, + triggerQuantity ENUMERATED {rsrp, rsrq}, + reportQuantity ENUMERATED {sameAsTriggerQuantity, both}, + maxReportCells INTEGER (1..maxCellReport), + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + ..., + [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL, -- Cond reportCGI + ue-RxTxTimeDiffPeriodical-r9 ENUMERATED {setup} OPTIONAL -- Need OR + ]], + [[ includeLocationInfo-r10 ENUMERATED {true} OPTIONAL, -- Cond reportMDT + reportAddNeighMeas-r10 ENUMERATED {setup} OPTIONAL -- Need OR + ]] +} + +ThresholdEUTRA ::= CHOICE{ + threshold-RSRP RSRP-Range, + threshold-RSRQ RSRQ-Range +} + + +ReportConfigId ::= INTEGER (1..maxReportConfigId) + + +ReportConfigInterRAT ::= SEQUENCE { + triggerType CHOICE { + event SEQUENCE { + eventId CHOICE { + eventB1 SEQUENCE { + b1-Threshold CHOICE { + b1-ThresholdUTRA ThresholdUTRA, + b1-ThresholdGERAN ThresholdGERAN, + b1-ThresholdCDMA2000 ThresholdCDMA2000 + } + }, + eventB2 SEQUENCE { + b2-Threshold1 ThresholdEUTRA, + b2-Threshold2 CHOICE { + b2-Threshold2UTRA ThresholdUTRA, + b2-Threshold2GERAN ThresholdGERAN, + b2-Threshold2CDMA2000 ThresholdCDMA2000 + } + }, + ... + }, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + periodical SEQUENCE { + purpose ENUMERATED { + reportStrongestCells, + reportStrongestCellsForSON, + reportCGI} + } + }, + maxReportCells INTEGER (1..maxCellReport), + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + ..., + [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL -- Cond reportCGI + ]], + [[ reportQuantityUTRA-FDD-r10 ENUMERATED {both} OPTIONAL -- Need OR + ]] +} + +ThresholdUTRA ::= CHOICE{ + utra-RSCP INTEGER (-5..91), + utra-EcN0 INTEGER (0..49) +} + +ThresholdGERAN ::= INTEGER (0..63) + +ThresholdCDMA2000 ::= INTEGER (0..63) + + +ReportConfigToAddModList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigToAddMod + +ReportConfigToAddMod ::= SEQUENCE { + reportConfigId ReportConfigId, + reportConfig CHOICE { + reportConfigEUTRA ReportConfigEUTRA, + reportConfigInterRAT ReportConfigInterRAT + } +} + + + +ReportInterval ::= ENUMERATED { + ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, + min1, min6, min12, min30, min60, spare3, spare2, spare1} + + +RSRP-Range ::= INTEGER(0..97) + + +RSRQ-Range ::= INTEGER(0..34) + + +TimeToTrigger ::= ENUMERATED { + ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256, + ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560, + ms5120} + + +AbsoluteTimeInfo-r10 ::= BIT STRING (SIZE (48)) + + +AreaConfiguration-r10 ::= CHOICE { + cellGlobalIdList-r10 CellGlobalIdList-r10, + trackingAreaCodeList-r10 TrackingAreaCodeList-r10 +} + +CellGlobalIdList-r10 ::= SEQUENCE (SIZE (1..32)) OF CellGlobalIdEUTRA + +TrackingAreaCodeList-r10 ::= SEQUENCE (SIZE (1..8)) OF TrackingAreaCode + + +C-RNTI ::= BIT STRING (SIZE (16)) + + +DedicatedInfoCDMA2000 ::= OCTET STRING + + +DedicatedInfoNAS ::= OCTET STRING + + +FilterCoefficient ::= ENUMERATED { + fc0, fc1, fc2, fc3, fc4, fc5, + fc6, fc7, fc8, fc9, fc11, fc13, + fc15, fc17, fc19, spare1, ...} + + +LoggingDuration-r10 ::= ENUMERATED { + min10, min20, min40, min60, min90, min120, spare2, spare1} + + +LoggingInterval-r10 ::= ENUMERATED { + ms1280, ms2560, ms5120, ms10240, ms20480, + ms30720, ms40960, ms61440} + + +MeasSubframePattern-r10 ::= CHOICE { + subframePatternFDD-r10 BIT STRING (SIZE (40)), + subframePatternTDD-r10 CHOICE { + subframeConfig1-5-r10 BIT STRING (SIZE (20)), + subframeConfig0-r10 BIT STRING (SIZE (70)), + subframeConfig6-r10 BIT STRING (SIZE (60)), + ... + }, + ... +} + + +MMEC ::= BIT STRING (SIZE (8)) + + +NeighCellConfig ::= BIT STRING (SIZE (2)) + + +OtherConfig-r9 ::= SEQUENCE { + reportProximityConfig-r9 ReportProximityConfig-r9 OPTIONAL, -- Need ON + ... +} + +ReportProximityConfig-r9 ::= SEQUENCE { + proximityIndicationEUTRA-r9 ENUMERATED {enabled} OPTIONAL, -- Need OR + proximityIndicationUTRA-r9 ENUMERATED {enabled} OPTIONAL -- Need OR +} + + +RAND-CDMA2000 ::= BIT STRING (SIZE (32)) + + +RAT-Type ::= ENUMERATED { + eutra, utra, geran-cs, geran-ps, cdma2000-1XRTT, + spare3, spare2, spare1, ...} + + +RRC-TransactionIdentifier ::= INTEGER (0..3) + + +S-TMSI ::= SEQUENCE { + mmec MMEC, + m-TMSI BIT STRING (SIZE (32)) +} + + +TraceReference-r10 ::= SEQUENCE { + plmn-Identity-r10 PLMN-Identity, + traceId-r10 OCTET STRING (SIZE (3)) +} + + +UE-CapabilityRAT-ContainerList ::=SEQUENCE (SIZE (0..maxRAT-Capabilities)) OF UE-CapabilityRAT-Container + +UE-CapabilityRAT-Container ::= SEQUENCE { + rat-Type RAT-Type, + ueCapabilityRAT-Container OCTET STRING +} + + +UE-EUTRA-Capability ::= SEQUENCE { + accessStratumRelease AccessStratumRelease, + ue-Category INTEGER (1..5), + pdcp-Parameters PDCP-Parameters, + phyLayerParameters PhyLayerParameters, + rf-Parameters RF-Parameters, + measParameters MeasParameters, + featureGroupIndicators BIT STRING (SIZE (32)) OPTIONAL, + interRAT-Parameters SEQUENCE { + utraFDD IRAT-ParametersUTRA-FDD OPTIONAL, + utraTDD128 IRAT-ParametersUTRA-TDD128 OPTIONAL, + utraTDD384 IRAT-ParametersUTRA-TDD384 OPTIONAL, + utraTDD768 IRAT-ParametersUTRA-TDD768 OPTIONAL, + geran IRAT-ParametersGERAN OPTIONAL, + cdma2000-HRPD IRAT-ParametersCDMA2000-HRPD OPTIONAL, + cdma2000-1xRTT IRAT-ParametersCDMA2000-1XRTT OPTIONAL + }, + nonCriticalExtension UE-EUTRA-Capability-v920-IEs OPTIONAL +} + +-- Late non critical extensions +UE-EUTRA-Capability-v9a0-IEs ::= SEQUENCE { + featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9c0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9c0-IEs ::= SEQUENCE { + interRAT-ParametersUTRA-v9c0 IRAT-ParametersUTRA-v9c0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9d0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9d0-IEs ::= SEQUENCE { + phyLayerParameters-v9d0 PhyLayerParameters-v9d0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9e0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9e0-IEs ::= SEQUENCE { + rf-Parameters-v9e0 RF-Parameters-v9e0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9h0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9h0-IEs ::= SEQUENCE { + interRAT-ParametersUTRA-v9h0 IRAT-ParametersUTRA-v9h0 OPTIONAL, + -- Following field is only to be used for late REL-9 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10c0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10c0-IEs ::= SEQUENCE { + otdoa-PositioningCapabilities-r10 OTDOA-PositioningCapabilities-r10 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10f0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10f0-IEs ::= SEQUENCE { + rf-Parameters-v10f0 RF-Parameters-v10f0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10i0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10i0-IEs ::= SEQUENCE { + rf-Parameters-v10i0 RF-Parameters-v10i0 OPTIONAL, + -- Following field is only to be used for late REL-10 extensions + lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v10j0-IEs) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-EUTRA-Capability-v10j0-IEs ::= SEQUENCE { + rf-Parameters-v10j0 RF-Parameters-v10j0 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +UE-EUTRA-Capability-v920-IEs ::= SEQUENCE { + phyLayerParameters-v920 PhyLayerParameters-v920, + interRAT-ParametersGERAN-v920 IRAT-ParametersGERAN-v920, + interRAT-ParametersUTRA-v920 IRAT-ParametersUTRA-v920 OPTIONAL, + interRAT-ParametersCDMA2000-v920 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL, + deviceType-r9 ENUMERATED {noBenFromBatConsumpOpt} OPTIONAL, + csg-ProximityIndicationParameters-r9 CSG-ProximityIndicationParameters-r9, + neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9, + son-Parameters-r9 SON-Parameters-r9, + nonCriticalExtension UE-EUTRA-Capability-v940-IEs OPTIONAL +} + +UE-EUTRA-Capability-v940-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v9a0-IEs) + OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1020-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1020-IEs ::= SEQUENCE { + ue-Category-v1020 INTEGER (6..8) OPTIONAL, + phyLayerParameters-v1020 PhyLayerParameters-v1020 OPTIONAL, + rf-Parameters-v1020 RF-Parameters-v1020 OPTIONAL, + measParameters-v1020 MeasParameters-v1020 OPTIONAL, + featureGroupIndRel10-r10 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersCDMA2000-v1020 IRAT-ParametersCDMA2000-1XRTT-v1020 OPTIONAL, + ue-BasedNetwPerfMeasParameters-r10 UE-BasedNetwPerfMeasParameters-r10 OPTIONAL, + interRAT-ParametersUTRA-TDD-v1020 IRAT-ParametersUTRA-TDD-v1020 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1060-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1060-IEs ::= SEQUENCE { + fdd-Add-UE-EUTRA-Capabilities-v1060 UE-EUTRA-CapabilityAddXDD-Mode-v1060 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1060 UE-EUTRA-CapabilityAddXDD-Mode-v1060 OPTIONAL, + rf-Parameters-v1060 RF-Parameters-v1060 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1090-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1090-IEs ::= SEQUENCE { + rf-Parameters-v1090 RF-Parameters-v1090 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-r9 ::= SEQUENCE { + phyLayerParameters-r9 PhyLayerParameters OPTIONAL, + featureGroupIndicators-r9 BIT STRING (SIZE (32)) OPTIONAL, + featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersGERAN-r9 IRAT-ParametersGERAN OPTIONAL, + interRAT-ParametersUTRA-r9 IRAT-ParametersUTRA-v920 OPTIONAL, + interRAT-ParametersCDMA2000-r9 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL, + neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9 OPTIONAL, + ... +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1060 ::= SEQUENCE { + phyLayerParameters-v1060 PhyLayerParameters-v1020 OPTIONAL, + featureGroupIndRel10-v1060 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersCDMA2000-v1060 IRAT-ParametersCDMA2000-1XRTT-v1020 OPTIONAL, + interRAT-ParametersUTRA-TDD-v1060 IRAT-ParametersUTRA-TDD-v1020 OPTIONAL, + ..., + [[ otdoa-PositioningCapabilities-r10 OTDOA-PositioningCapabilities-r10 OPTIONAL + ]] +} + +AccessStratumRelease ::= ENUMERATED { + rel8, rel9, rel10, spare5, spare4, spare3, + spare2, spare1, ...} + +PDCP-Parameters ::= SEQUENCE { + supportedROHC-Profiles SEQUENCE { + profile0x0001 BOOLEAN, + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0101 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + maxNumberROHC-ContextSessions ENUMERATED { + cs2, cs4, cs8, cs12, cs16, cs24, cs32, + cs48, cs64, cs128, cs256, cs512, cs1024, + cs16384, spare2, spare1} DEFAULT cs16, + ... +} + +PhyLayerParameters ::= SEQUENCE { + ue-TxAntennaSelectionSupported BOOLEAN, + ue-SpecificRefSigsSupported BOOLEAN +} + +PhyLayerParameters-v920 ::= SEQUENCE { + enhancedDualLayerFDD-r9 ENUMERATED {supported} OPTIONAL, + enhancedDualLayerTDD-r9 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v9d0 ::= SEQUENCE { + tm5-FDD-r9 ENUMERATED {supported} OPTIONAL, + tm5-TDD-r9 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1020 ::= SEQUENCE { + twoAntennaPortsForPUCCH-r10 ENUMERATED {supported} OPTIONAL, + tm9-With-8Tx-FDD-r10 ENUMERATED {supported} OPTIONAL, + pmi-Disabling-r10 ENUMERATED {supported} OPTIONAL, + crossCarrierScheduling-r10 ENUMERATED {supported} OPTIONAL, + simultaneousPUCCH-PUSCH-r10 ENUMERATED {supported} OPTIONAL, + multiClusterPUSCH-WithinCC-r10 ENUMERATED {supported} OPTIONAL, + nonContiguousUL-RA-WithinCC-List-r10 NonContiguousUL-RA-WithinCC-List-r10 OPTIONAL +} + +NonContiguousUL-RA-WithinCC-List-r10 ::= SEQUENCE (SIZE (1..maxBands)) OF NonContiguousUL-RA-WithinCC-r10 + +NonContiguousUL-RA-WithinCC-r10 ::= SEQUENCE { + nonContiguousUL-RA-WithinCC-Info-r10 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters ::= SEQUENCE { + supportedBandListEUTRA SupportedBandListEUTRA +} + +RF-Parameters-v9e0 ::= SEQUENCE { + supportedBandListEUTRA-v9e0 SupportedBandListEUTRA-v9e0 OPTIONAL +} + +RF-Parameters-v1020 ::= SEQUENCE { + supportedBandCombination-r10 SupportedBandCombination-r10 +} + +RF-Parameters-v1060 ::= SEQUENCE { + supportedBandCombinationExt-r10 SupportedBandCombinationExt-r10 +} + +RF-Parameters-v1090 ::= SEQUENCE { + supportedBandCombination-v1090 SupportedBandCombination-v1090 OPTIONAL +} + +RF-Parameters-v10f0 ::= SEQUENCE { + modifiedMPR-Behavior-r10 BIT STRING (SIZE (32)) OPTIONAL +} + +RF-Parameters-v10i0 ::= SEQUENCE { + supportedBandCombination-v10i0 SupportedBandCombination-v10i0 OPTIONAL +} + +RF-Parameters-v10j0 ::= SEQUENCE { + multiNS-Pmax-r10 ENUMERATED {supported} OPTIONAL +} + +SupportedBandCombination-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-r10 + +SupportedBandCombinationExt-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParametersExt-r10 + +SupportedBandCombination-v1090 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1090 + +SupportedBandCombination-v10i0 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v10i0 + +BandCombinationParameters-r10 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r10 + +BandCombinationParametersExt-r10 ::= SEQUENCE { + supportedBandwidthCombinationSet-r10 SupportedBandwidthCombinationSet-r10 OPTIONAL +} + +BandCombinationParameters-v1090 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1090 + +BandCombinationParameters-v10i0::= SEQUENCE { +bandParameterList-v10i0 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v10i0 OPTIONAL +} + +SupportedBandwidthCombinationSet-r10 ::= BIT STRING (SIZE (1..maxBandwidthCombSet-r10)) + +BandParameters-r10 ::= SEQUENCE { + bandEUTRA-r10 INTEGER (1..64), + bandParametersUL-r10 BandParametersUL-r10 OPTIONAL, + bandParametersDL-r10 BandParametersDL-r10 OPTIONAL +} + +BandParameters-v1090 ::= SEQUENCE { + bandEUTRA-v1090 FreqBandIndicator-v9e0 OPTIONAL, + ... +} + +BandParameters-v10i0::= SEQUENCE { + bandParametersDL-v10i0 SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-v10i0 +} + +BandParametersUL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersUL-r10 + +CA-MIMO-ParametersUL-r10 ::= SEQUENCE { + ca-BandwidthClassUL-r10 CA-BandwidthClass-r10, + supportedMIMO-CapabilityUL-r10 MIMO-CapabilityUL-r10 OPTIONAL +} + +BandParametersDL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-r10 + +CA-MIMO-ParametersDL-r10 ::= SEQUENCE { + ca-BandwidthClassDL-r10 CA-BandwidthClass-r10, + supportedMIMO-CapabilityDL-r10 MIMO-CapabilityDL-r10 OPTIONAL +} + +CA-MIMO-ParametersDL-v10i0 ::= SEQUENCE { + fourLayerTM3-TM4-r10 ENUMERATED {supported} OPTIONAL +} + +CA-BandwidthClass-r10 ::= ENUMERATED {a, b, c, d, e, f, ...} + +MIMO-CapabilityUL-r10 ::= ENUMERATED {twoLayers, fourLayers} + +MIMO-CapabilityDL-r10 ::= ENUMERATED {twoLayers, fourLayers, eightLayers} + +SupportedBandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA + +SupportedBandListEUTRA-v9e0::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v9e0 + +SupportedBandEUTRA ::= SEQUENCE { + bandEUTRA INTEGER (1..64), + halfDuplex BOOLEAN +} + +SupportedBandEUTRA-v9e0 ::= SEQUENCE { + bandEUTRA-v9e0 FreqBandIndicator-v9e0 OPTIONAL +} + +MeasParameters ::= SEQUENCE { + bandListEUTRA BandListEUTRA +} + +MeasParameters-v1020 ::= SEQUENCE { + bandCombinationListEUTRA-r10 BandCombinationListEUTRA-r10 +} + +BandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF BandInfoEUTRA + +BandCombinationListEUTRA-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandInfoEUTRA + +BandInfoEUTRA ::= SEQUENCE { + interFreqBandList InterFreqBandList, + interRAT-BandList InterRAT-BandList OPTIONAL +} + +InterFreqBandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterFreqBandInfo + +InterFreqBandInfo ::= SEQUENCE { + interFreqNeedForGaps BOOLEAN +} + +InterRAT-BandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterRAT-BandInfo + +InterRAT-BandInfo ::= SEQUENCE { + interRAT-NeedForGaps BOOLEAN +} + +IRAT-ParametersUTRA-FDD ::= SEQUENCE { + supportedBandListUTRA-FDD SupportedBandListUTRA-FDD +} + +IRAT-ParametersUTRA-v920 ::= SEQUENCE { + e-RedirectionUTRA-r9 ENUMERATED {supported} +} + +IRAT-ParametersUTRA-v9c0 ::= SEQUENCE { + voiceOverPS-HS-UTRA-FDD-r9 ENUMERATED {supported} OPTIONAL, + voiceOverPS-HS-UTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-FDD-ToUTRA-FDD-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-FDD-ToGERAN-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-TDD128-ToUTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-TDD128-ToGERAN-r9 ENUMERATED {supported} OPTIONAL +} + +IRAT-ParametersUTRA-v9h0 ::= SEQUENCE { + mfbi-UTRA-r9 ENUMERATED {supported} +} + +SupportedBandListUTRA-FDD ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-FDD + +SupportedBandUTRA-FDD ::= ENUMERATED { + bandI, bandII, bandIII, bandIV, bandV, bandVI, + bandVII, bandVIII, bandIX, bandX, bandXI, + bandXII, bandXIII, bandXIV, bandXV, bandXVI, ..., + bandXVII-8a0, bandXVIII-8a0, bandXIX-8a0, bandXX-8a0, + bandXXI-8a0, bandXXII-8a0, bandXXIII-8a0, bandXXIV-8a0, + bandXXV-8a0, bandXXVI-8a0, bandXXVII-8a0, bandXXVIII-8a0, + bandXXIX-8a0, bandXXX-8a0, bandXXXI-8a0, bandXXXII-8a0} + +IRAT-ParametersUTRA-TDD128 ::= SEQUENCE { + supportedBandListUTRA-TDD128 SupportedBandListUTRA-TDD128 +} + +SupportedBandListUTRA-TDD128 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD128 + +SupportedBandUTRA-TDD128 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD384 ::= SEQUENCE { + supportedBandListUTRA-TDD384 SupportedBandListUTRA-TDD384 +} + +SupportedBandListUTRA-TDD384 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD384 + +SupportedBandUTRA-TDD384 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD768 ::= SEQUENCE { + supportedBandListUTRA-TDD768 SupportedBandListUTRA-TDD768 +} + +SupportedBandListUTRA-TDD768 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD768 + +SupportedBandUTRA-TDD768 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD-v1020 ::= SEQUENCE { + e-RedirectionUTRA-TDD-r10 ENUMERATED {supported} +} + +IRAT-ParametersGERAN ::= SEQUENCE { + supportedBandListGERAN SupportedBandListGERAN, + interRAT-PS-HO-ToGERAN BOOLEAN +} + +IRAT-ParametersGERAN-v920 ::= SEQUENCE { + dtm-r9 ENUMERATED {supported} OPTIONAL, + e-RedirectionGERAN-r9 ENUMERATED {supported} OPTIONAL +} + +SupportedBandListGERAN ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandGERAN + +SupportedBandGERAN ::= ENUMERATED { + gsm450, gsm480, gsm710, gsm750, gsm810, gsm850, + gsm900P, gsm900E, gsm900R, gsm1800, gsm1900, + spare5, spare4, spare3, spare2, spare1, ...} + +IRAT-ParametersCDMA2000-HRPD ::= SEQUENCE { + supportedBandListHRPD SupportedBandListHRPD, + tx-ConfigHRPD ENUMERATED {single, dual}, + rx-ConfigHRPD ENUMERATED {single, dual} +} + +SupportedBandListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + +IRAT-ParametersCDMA2000-1XRTT ::= SEQUENCE { + supportedBandList1XRTT SupportedBandList1XRTT, + tx-Config1XRTT ENUMERATED {single, dual}, + rx-Config1XRTT ENUMERATED {single, dual} +} + +IRAT-ParametersCDMA2000-1XRTT-v920 ::= SEQUENCE { + e-CSFB-1XRTT-r9 ENUMERATED {supported}, + e-CSFB-ConcPS-Mob1XRTT-r9 ENUMERATED {supported} OPTIONAL +} + +IRAT-ParametersCDMA2000-1XRTT-v1020 ::= SEQUENCE { + e-CSFB-dual-1XRTT-r10 ENUMERATED {supported} +} + +SupportedBandList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + +CSG-ProximityIndicationParameters-r9 ::= SEQUENCE { + intraFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL, + interFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL, + utran-ProximityIndication-r9 ENUMERATED {supported} OPTIONAL +} + +NeighCellSI-AcquisitionParameters-r9 ::= SEQUENCE { + intraFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL, + interFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL, + utran-SI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL +} + +SON-Parameters-r9 ::= SEQUENCE { + rach-Report-r9 ENUMERATED {supported} OPTIONAL +} + +UE-BasedNetwPerfMeasParameters-r10 ::= SEQUENCE { + loggedMeasurementsIdle-r10 ENUMERATED {supported} OPTIONAL, + standaloneGNSS-Location-r10 ENUMERATED {supported} OPTIONAL +} + +OTDOA-PositioningCapabilities-r10 ::= SEQUENCE { + otdoa-UE-Assisted-r10 ENUMERATED {supported}, + interFreqRSTD-Measurement-r10 ENUMERATED {supported} OPTIONAL +} + + +UE-TimersAndConstants ::= SEQUENCE { + t300 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t301 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t310 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n310 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ... +} + + +MBMS-NotificationConfig-r9 ::= SEQUENCE { + notificationRepetitionCoeff-r9 ENUMERATED {n2, n4}, + notificationOffset-r9 INTEGER (0..10), + notificationSF-Index-r9 INTEGER (1..6) +} + + +MBSFN-AreaInfoList-r9 ::= SEQUENCE (SIZE(1..maxMBSFN-Area)) OF MBSFN-AreaInfo-r9 + +MBSFN-AreaInfo-r9 ::= SEQUENCE { + mbsfn-AreaId-r9 INTEGER (0..255), + non-MBSFNregionLength ENUMERATED {s1, s2}, + notificationIndicator-r9 INTEGER (0..7), + mcch-Config-r9 SEQUENCE { + mcch-RepetitionPeriod-r9 ENUMERATED {rf32, rf64, rf128, rf256}, + mcch-Offset-r9 INTEGER (0..10), + mcch-ModificationPeriod-r9 ENUMERATED {rf512, rf1024}, + sf-AllocInfo-r9 BIT STRING (SIZE(6)), + signallingMCS-r9 ENUMERATED {n2, n7, n13, n19} + }, + ... +} + + +MBSFN-SubframeConfig ::= SEQUENCE { + radioframeAllocationPeriod ENUMERATED {n1, n2, n4, n8, n16, n32}, + radioframeAllocationOffset INTEGER (0..7), + subframeAllocation CHOICE { + oneFrame BIT STRING (SIZE(6)), + fourFrames BIT STRING (SIZE(24)) + } +} + +PMCH-InfoList-r9 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-Info-r9 + +PMCH-Info-r9 ::= SEQUENCE { + pmch-Config-r9 PMCH-Config-r9, + mbms-SessionInfoList-r9 MBMS-SessionInfoList-r9, + ... +} + +MBMS-SessionInfoList-r9 ::= SEQUENCE (SIZE (0..maxSessionPerPMCH)) OF MBMS-SessionInfo-r9 + +MBMS-SessionInfo-r9 ::= SEQUENCE { + tmgi-r9 TMGI-r9, + sessionId-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Need OR + logicalChannelIdentity-r9 INTEGER (0..maxSessionPerPMCH-1), + ... +} + +PMCH-Config-r9 ::= SEQUENCE { + sf-AllocEnd-r9 INTEGER (0..1535), + dataMCS-r9 INTEGER (0..28), + mch-SchedulingPeriod-r9 ENUMERATED { + rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024}, + ... +} + +TMGI-r9 ::= SEQUENCE { + plmn-Id-r9 CHOICE { + plmn-Index-r9 INTEGER (1..6), + explicitValue-r9 PLMN-Identity + }, + serviceId-r9 OCTET STRING (SIZE (3)) +} + + +maxBandComb-r10 INTEGER ::= 128 -- Maximum number of band combinations. +maxBands INTEGER ::= 64 -- Maximum number of bands listed in EUTRA UE caps +maxBandwidthClass-r10 INTEGER ::= 16 -- Maximum number of supported CA BW classes per band +maxBandwidthCombSet-r10 INTEGER ::= 32 -- Maximum number of bandwidth combination sets per + -- supported band combination +maxCDMA-BandClass INTEGER ::= 32 -- Maximum value of the CDMA band classes +maxCellBlack INTEGER ::= 16 -- Maximum number of blacklisted physical cell identity + -- ranges listed in SIB type 4 and 5 +maxCellInfoGERAN-r9 INTEGER ::= 32 -- Maximum number of GERAN cells for which system in- + -- formation can be provided as redirection assistance +maxCellInfoUTRA-r9 INTEGER ::= 16 -- Maximum number of UTRA cells for which system + -- information can be provided as redirection + -- assistance +maxFreqUTRA-TDD-r10 INTEGER ::= 6 -- Maximum number of UTRA TDD carrier frequencies for + -- which system information can be provided as + -- redirection assistance +maxCellInter INTEGER ::= 16 -- Maximum number of neighbouring inter-frequency + -- cells listed in SIB type 5 +maxCellIntra INTEGER ::= 16 -- Maximum number of neighbouring intra-frequency + -- cells listed in SIB type 4 +maxCellListGERAN INTEGER ::= 3 -- Maximum number of lists of GERAN cells +maxCellMeas INTEGER ::= 32 -- Maximum number of entries in each of the + -- cell lists in a measurement object +maxCellReport INTEGER ::= 8 -- Maximum number of reported cells +maxDRB INTEGER ::= 11 -- Maximum number of Data Radio Bearers +maxEARFCN INTEGER ::= 65535 -- Maximum value of EUTRA carrier frequency +maxEARFCN-Plus1 INTEGER ::= 65536 -- Lowest value extended EARFCN range +maxEARFCN2 INTEGER ::= 262143 -- Highest value extended EARFCN range +maxFBI INTEGER ::= 64 -- Maximum value of fequency band indicator +maxFBI-Plus1 INTEGER ::= 65 -- Lowest value extended FBI range +maxFBI2 INTEGER ::= 256 -- Highest value extended FBI range +maxFreq INTEGER ::= 8 -- Maximum number of carrier frequencies +maxGERAN-SI INTEGER ::= 10 -- Maximum number of GERAN SI blocks that can be + -- provided as part of NACC information +maxGNFG INTEGER ::= 16 -- Maximum number of GERAN neighbour freq groups +maxLogMeasReport-r10 INTEGER ::= 520 -- Maximum number of logged measurement entries + -- that can be reported by the UE in one message +maxMBSFN-Allocations INTEGER ::= 8 -- Maximum number of MBSFN frame allocations with + -- different offset +maxMBSFN-Area INTEGER ::= 8 +maxMBSFN-Area-1 INTEGER ::= 7 +maxMeasId INTEGER ::= 32 +maxMultiBands INTEGER ::= 8 -- Maximum number of additional frequency bands + -- that a cell belongs to +maxNS-Pmax-r10 INTEGER ::= 8 -- Maximum number of NS and P-Max values per band +maxObjectId INTEGER ::= 32 +maxPageRec INTEGER ::= 16 -- +maxPhysCellIdRange-r9 INTEGER ::= 4 -- Maximum number of physical cell identity ranges +maxPNOffset INTEGER ::= 511 -- Maximum number of CDMA2000 PNOffsets +maxPMCH-PerMBSFN INTEGER ::= 15 +maxRAT-Capabilities INTEGER ::= 8 -- Maximum number of interworking RATs (incl EUTRA) +maxReportConfigId INTEGER ::= 32 +maxRSTD-Freq-r10 INTEGER ::= 3 -- Maximum number of frequency layers for RSTD + -- measurement +maxSCell-r10 INTEGER ::= 4 -- Maximum number of SCells +maxServCell-r10 INTEGER ::= 5 -- Maximum number of Serving cells +maxServiceCount INTEGER ::= 16 -- Maximum number of MBMS services that can be included + -- in an MBMS counting request and response +maxServiceCount-1 INTEGER ::= 15 +maxSessionPerPMCH INTEGER ::= 29 +maxSessionPerPMCH-1 INTEGER ::= 28 +maxSIB INTEGER ::= 32 -- Maximum number of SIBs +maxSIB-1 INTEGER ::= 31 +maxSI-Message INTEGER ::= 32 -- Maximum number of SI messages +maxSimultaneousBands-r10 INTEGER ::= 64 -- Maximum number of simultaneously aggregated bands +maxUTRA-FDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA FDD carrier frequencies +maxUTRA-TDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA TDD carrier frequencies + + +END + + +EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AbsoluteTimeInfo-r10, + AreaConfiguration-r10, + CarrierFreqGERAN, + CellIdentity, + SpeedStateScaleFactors, + C-RNTI, + LoggingDuration-r10, + LoggingInterval-r10, + LogMeasInfo-r10, + MeasId, + MeasIdToAddModList, + MeasObjectToAddModList, + MeasObjectToAddModList-v9e0, + MobilityStateParameters, + NeighCellConfig, + PhysCellId, + PhysCellIdCDMA2000, + PhysCellIdGERAN, + PhysCellIdUTRA-FDD, + PhysCellIdUTRA-TDD, + PLMN-Identity, + QuantityConfig, + ReportConfigToAddModList, + RLF-Report-r9, + RSRP-Range, + TraceReference-r10, + maxCellMeas, + maxMeasId +FROM EUTRA-RRC-Definitions; + + +VarLogMeasConfig-r10 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10 +} + + +VarLogMeasReport-r10 ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + plmn-Identity-r10 PLMN-Identity, + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + logMeasInfoList-r10 LogMeasInfoList2-r10 +} + +LogMeasInfoList2-r10 ::= SEQUENCE (SIZE (1..maxLogMeas-r10)) OF LogMeasInfo-r10 + + +VarMeasConfig ::= SEQUENCE { + -- Measurement identities + measIdList MeasIdToAddModList OPTIONAL, + -- Measurement objects + measObjectList MeasObjectToAddModList OPTIONAL, + measObjectList-v9i0 MeasObjectToAddModList-v9e0 OPTIONAL, + -- Reporting configurations + reportConfigList ReportConfigToAddModList OPTIONAL, + -- Other parameters + quantityConfig QuantityConfig OPTIONAL, + s-Measure INTEGER (-140..-44) OPTIONAL, + speedStatePars CHOICE { + release NULL, + setup SEQUENCE { + mobilityStateParameters MobilityStateParameters, + timeToTrigger-SF SpeedStateScaleFactors + } + } OPTIONAL +} + + +VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport + +VarMeasReport ::= SEQUENCE { + -- List of measurement that have been triggered + measId MeasId, + cellsTriggeredList CellsTriggeredList OPTIONAL, + numberOfReportsSent INTEGER +} + +CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CHOICE { + physCellIdEUTRA PhysCellId, + physCellIdUTRA CHOICE { + fdd PhysCellIdUTRA-FDD, + tdd PhysCellIdUTRA-TDD + }, + physCellIdGERAN SEQUENCE { + carrierFreq CarrierFreqGERAN, + physCellId PhysCellIdGERAN + }, + physCellIdCDMA2000 PhysCellIdCDMA2000 +} + +VarRLF-Report-r10 ::= SEQUENCE { + rlf-Report-r10 RLF-Report-r9, + plmn-Identity-r10 PLMN-Identity +} + + +VarShortMAC-Input ::= SEQUENCE { + cellIdentity CellIdentity, + physCellId PhysCellId, + c-RNTI C-RNTI +} + +maxLogMeas-r10 INTEGER ::= 4060-- Maximum number of logged measurement entries + -- that can be stored by the UE + + +END + + +EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AntennaInfoCommon, + AntennaInfoDedicated-v10i0, + CellIdentity, + C-RNTI, + DL-DCCH-Message, + ARFCN-ValueEUTRA, + ARFCN-ValueEUTRA-v9e0, + MasterInformationBlock, + maxFreq, + MeasConfig, + OtherConfig-r9, + PhysCellId, + RadioResourceConfigDedicated, + RSRP-Range, + RSRQ-Range, + SCellToAddModList-r10, + SecurityAlgorithmConfig, + ShortMAC-I, + SystemInformationBlockType1, + SystemInformationBlockType1-v890-IEs, + SystemInformationBlockType2, + UECapabilityInformation, + UE-CapabilityRAT-ContainerList +FROM EUTRA-RRC-Definitions; + + +HandoverCommand ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverCommand-r8 HandoverCommand-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverCommand-r8-IEs ::= SEQUENCE { + handoverCommandMessage OCTET STRING (CONTAINING DL-DCCH-Message), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +HandoverPreparationInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverPreparationInformation-r8 HandoverPreparationInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverPreparationInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo UE-CapabilityRAT-ContainerList, + as-Config AS-Config OPTIONAL, -- Cond HO + rrm-Config RRM-Config OPTIONAL, + as-Context AS-Context OPTIONAL, -- Cond HO + nonCriticalExtension HandoverPreparationInformation-v920-IEs OPTIONAL +} + +HandoverPreparationInformation-v920-IEs ::= SEQUENCE { + ue-ConfigRelease-r9 ENUMERATED { + rel9, rel10, spare6, spare5, v10j0, spare3, + spare2, spare1, ...} OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v9d0-IEs OPTIONAL +} + +HandoverPreparationInformation-v9d0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING(CONTAINING HandoverPreparationInformation-v9j0-IEs) OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-v9e0-IEs OPTIONAL +} + +-- Late non-critical extensions: +HandoverPreparationInformation-v9j0-IEs ::= SEQUENCE { + -- Following field is only for pre REL-10 late non-critical extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-v10j0-IEs OPTIONAL +} + +HandoverPreparationInformation-v10j0-IEs ::= SEQUENCE { + as-Config-v10j0 AS-Config-v10j0 OPTIONAL, -- Need ON + -- Following field is only for late non-critical extensions from REL-10 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +HandoverPreparationInformation-v9e0-IEs ::= SEQUENCE { + as-Config-v9e0 AS-Config-v9e0 OPTIONAL, -- Cond HO2 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioAccessCapabilityInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioAccessCapabilityInformation-r8 + UERadioAccessCapabilityInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +AS-Config ::= SEQUENCE { + sourceMeasConfig MeasConfig, + sourceRadioResourceConfig RadioResourceConfigDedicated, + sourceSecurityAlgorithmConfig SecurityAlgorithmConfig, + sourceUE-Identity C-RNTI, + sourceMasterInformationBlock MasterInformationBlock, + sourceSystemInformationBlockType1 SystemInformationBlockType1(WITH COMPONENTS + {..., nonCriticalExtension ABSENT}), + sourceSystemInformationBlockType2 SystemInformationBlockType2, + antennaInfoCommon AntennaInfoCommon, + sourceDl-CarrierFreq ARFCN-ValueEUTRA, + ..., + [[ sourceSystemInformationBlockType1Ext OCTET STRING (CONTAINING + SystemInformationBlockType1-v890-IEs) OPTIONAL, + sourceOtherConfig-r9 OtherConfig-r9 + ]], + [[ sourceSCellConfigList-r10 SCellToAddModList-r10 OPTIONAL + ]] +} + +AS-Config-v9e0 ::= SEQUENCE { + sourceDl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +AS-Config-v10j0 ::= SEQUENCE { + antennaInfoDedicatedPCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL +} + + + +AS-Context ::= SEQUENCE { + reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO +} + + +ReestablishmentInfo ::= SEQUENCE { + sourcePhysCellId PhysCellId, + targetCellShortMAC-I ShortMAC-I, + additionalReestabInfoList AdditionalReestabInfoList OPTIONAL, + ... +} + +AdditionalReestabInfoList ::= SEQUENCE ( SIZE (1..maxReestabInfo) ) OF AdditionalReestabInfo + +AdditionalReestabInfo ::= SEQUENCE{ + cellIdentity CellIdentity, + key-eNodeB-Star Key-eNodeB-Star, + shortMAC-I ShortMAC-I +} + +Key-eNodeB-Star ::= BIT STRING (SIZE (256)) + + +RRM-Config ::= SEQUENCE { + ue-InactiveTime ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, + s25, s30, s40, s50, min1, min1s20c, min1s40, + min2, min2s30, min3, min3s30, min4, min5, min6, + min7, min8, min9, min10, min12, min14, min17, min20, + min24, min28, min33, min38, min44, min50, hr1, + hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6, + hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2, + day2hr12, day3, day4, day5, day7, day10, day14, day19, + day24, day30, dayMoreThan30} OPTIONAL, + ..., + [[ candidateCellInfoList-r10 CandidateCellInfoList-r10 OPTIONAL + ]] +} + +CandidateCellInfoList-r10 ::= SEQUENCE (SIZE (1..maxFreq)) OF CandidateCellInfo-r10 + +CandidateCellInfo-r10 ::= SEQUENCE { + -- cellIdentification + physCellId-r10 PhysCellId, + dl-CarrierFreq-r10 ARFCN-ValueEUTRA, + -- available measurement results + rsrpResult-r10 RSRP-Range OPTIONAL, + rsrqResult-r10 RSRQ-Range OPTIONAL, + ..., + [[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL + ]] +} + + +maxReestabInfo INTEGER ::= 32 -- Maximum number of KeNB* and shortMAC-I forwarded + -- at handover for re-establishment preparation + + +END + + diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-11.18.0.asn1 b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-11.18.0.asn1 new file mode 100755 index 0000000000..6875ba66c2 --- /dev/null +++ b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-11.18.0.asn1 @@ -0,0 +1,5979 @@ + +EUTRA-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + + +BCCH-BCH-Message ::= SEQUENCE { + message BCCH-BCH-MessageType +} + +BCCH-BCH-MessageType ::= MasterInformationBlock + + +BCCH-DL-SCH-Message ::= SEQUENCE { + message BCCH-DL-SCH-MessageType +} + +BCCH-DL-SCH-MessageType ::= CHOICE { + c1 CHOICE { + systemInformation SystemInformation, + systemInformationBlockType1 SystemInformationBlockType1 + }, + messageClassExtension SEQUENCE {} +} + + +MCCH-Message ::= SEQUENCE { + message MCCH-MessageType +} + +MCCH-MessageType ::= CHOICE { + c1 CHOICE { + mbsfnAreaConfiguration-r9 MBSFNAreaConfiguration-r9 + }, + later CHOICE { + c2 CHOICE{ + mbmsCountingRequest-r10 MBMSCountingRequest-r10 + }, + messageClassExtension SEQUENCE {} + } +} + + +PCCH-Message ::= SEQUENCE { + message PCCH-MessageType +} + +PCCH-MessageType ::= CHOICE { + c1 CHOICE { + paging Paging + }, + messageClassExtension SEQUENCE {} +} + + +DL-CCCH-Message ::= SEQUENCE { + message DL-CCCH-MessageType +} + +DL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishment RRCConnectionReestablishment, + rrcConnectionReestablishmentReject RRCConnectionReestablishmentReject, + rrcConnectionReject RRCConnectionReject, + rrcConnectionSetup RRCConnectionSetup + }, + messageClassExtension SEQUENCE {} +} + + +DL-DCCH-Message ::= SEQUENCE { + message DL-DCCH-MessageType +} + +DL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + csfbParametersResponseCDMA2000 CSFBParametersResponseCDMA2000, + dlInformationTransfer DLInformationTransfer, + handoverFromEUTRAPreparationRequest HandoverFromEUTRAPreparationRequest, + mobilityFromEUTRACommand MobilityFromEUTRACommand, + rrcConnectionReconfiguration RRCConnectionReconfiguration, + rrcConnectionRelease RRCConnectionRelease, + securityModeCommand SecurityModeCommand, + ueCapabilityEnquiry UECapabilityEnquiry, + counterCheck CounterCheck, + ueInformationRequest-r9 UEInformationRequest-r9, + loggedMeasurementConfiguration-r10 LoggedMeasurementConfiguration-r10, + rnReconfiguration-r10 RNReconfiguration-r10, + spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +UL-CCCH-Message ::= SEQUENCE { + message UL-CCCH-MessageType +} + +UL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishmentRequest RRCConnectionReestablishmentRequest, + rrcConnectionRequest RRCConnectionRequest + }, + messageClassExtension SEQUENCE {} +} + + +UL-DCCH-Message ::= SEQUENCE { + message UL-DCCH-MessageType +} + +UL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + csfbParametersRequestCDMA2000 CSFBParametersRequestCDMA2000, + measurementReport MeasurementReport, + rrcConnectionReconfigurationComplete RRCConnectionReconfigurationComplete, + rrcConnectionReestablishmentComplete RRCConnectionReestablishmentComplete, + rrcConnectionSetupComplete RRCConnectionSetupComplete, + securityModeComplete SecurityModeComplete, + securityModeFailure SecurityModeFailure, + ueCapabilityInformation UECapabilityInformation, + ulHandoverPreparationTransfer ULHandoverPreparationTransfer, + ulInformationTransfer ULInformationTransfer, + counterCheckResponse CounterCheckResponse, + ueInformationResponse-r9 UEInformationResponse-r9, + proximityIndication-r9 ProximityIndication-r9, + rnReconfigurationComplete-r10 RNReconfigurationComplete-r10, + mbmsCountingResponse-r10 MBMSCountingResponse-r10, + interFreqRSTDMeasurementIndication-r10 InterFreqRSTDMeasurementIndication-r10 + }, + messageClassExtension CHOICE { + c2 CHOICE { + ueAssistanceInformation-r11 UEAssistanceInformation-r11, + inDeviceCoexIndication-r11 InDeviceCoexIndication-r11, + mbmsInterestIndication-r11 MBMSInterestIndication-r11, + spare13 NULL, + spare12 NULL, spare11 NULL, spare10 NULL, + spare9 NULL, spare8 NULL, spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtensionFuture-r11 SEQUENCE {} + } +} + + +CounterCheck ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + counterCheck-r8 CounterCheck-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheck-r8-IEs ::= SEQUENCE { + drb-CountMSB-InfoList DRB-CountMSB-InfoList, + nonCriticalExtension CounterCheck-v8a0-IEs OPTIONAL +} + +CounterCheck-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-CountMSB-InfoList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-CountMSB-Info + +DRB-CountMSB-Info ::= SEQUENCE { + drb-Identity DRB-Identity, + countMSB-Uplink INTEGER(0..33554431), + countMSB-Downlink INTEGER(0..33554431) +} + + +CounterCheckResponse ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + counterCheckResponse-r8 CounterCheckResponse-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheckResponse-r8-IEs ::= SEQUENCE { + drb-CountInfoList DRB-CountInfoList, + nonCriticalExtension CounterCheckResponse-v8a0-IEs OPTIONAL +} + +CounterCheckResponse-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-CountInfoList ::= SEQUENCE (SIZE (0..maxDRB)) OF DRB-CountInfo + +DRB-CountInfo ::= SEQUENCE { + drb-Identity DRB-Identity, + count-Uplink INTEGER(0..4294967295), + count-Downlink INTEGER(0..4294967295) +} + + +CSFBParametersRequestCDMA2000 ::= SEQUENCE { + criticalExtensions CHOICE { + csfbParametersRequestCDMA2000-r8 CSFBParametersRequestCDMA2000-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CSFBParametersRequestCDMA2000-r8-IEs ::= SEQUENCE { + nonCriticalExtension CSFBParametersRequestCDMA2000-v8a0-IEs OPTIONAL +} + +CSFBParametersRequestCDMA2000-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +CSFBParametersResponseCDMA2000 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + csfbParametersResponseCDMA2000-r8 CSFBParametersResponseCDMA2000-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CSFBParametersResponseCDMA2000-r8-IEs ::= SEQUENCE { + rand RAND-CDMA2000, + mobilityParameters MobilityParametersCDMA2000, + nonCriticalExtension CSFBParametersResponseCDMA2000-v8a0-IEs OPTIONAL +} + +CSFBParametersResponseCDMA2000-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +DLInformationTransfer ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + dlInformationTransfer-r8 DLInformationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +DLInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType CHOICE { + dedicatedInfoNAS DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000 + }, + nonCriticalExtension DLInformationTransfer-v8a0-IEs OPTIONAL +} + +DLInformationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +HandoverFromEUTRAPreparationRequest ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + handoverFromEUTRAPreparationRequest-r8 + HandoverFromEUTRAPreparationRequest-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverFromEUTRAPreparationRequest-r8-IEs ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + rand RAND-CDMA2000 OPTIONAL, -- Cond cdma2000-Type + mobilityParameters MobilityParametersCDMA2000 OPTIONAL, -- Cond cdma2000-Type + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v890-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v920-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v920-IEs ::= SEQUENCE { + concurrPrepCDMA2000-HRPD-r9 BOOLEAN OPTIONAL, -- Cond cdma2000-Type + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v1020-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v1020-IEs ::= SEQUENCE { + dualRxTxRedirectIndicator-r10 ENUMERATED {true} OPTIONAL, -- Cond cdma2000-1XRTT + redirectCarrierCDMA2000-1XRTT-r10 CarrierFreqCDMA2000 OPTIONAL, -- Cond dualRxTxRedirect + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +InDeviceCoexIndication-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + inDeviceCoexIndication-r11 InDeviceCoexIndication-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +InDeviceCoexIndication-r11-IEs ::= SEQUENCE { + affectedCarrierFreqList-r11 AffectedCarrierFreqList-r11 OPTIONAL, + tdm-AssistanceInfo-r11 TDM-AssistanceInfo-r11 OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension InDeviceCoexIndication-v11d0-IEs OPTIONAL +} + +InDeviceCoexIndication-v11d0-IEs ::= SEQUENCE { + ul-CA-AssistanceInfo-r11 SEQUENCE { + affectedCarrierFreqCombList-r11 AffectedCarrierFreqCombList-r11 OPTIONAL, + victimSystemType-r11 VictimSystemType-r11 + } OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} +AffectedCarrierFreqList-r11 ::= SEQUENCE (SIZE (1..maxFreqIDC-r11)) OF AffectedCarrierFreq-r11 + +AffectedCarrierFreq-r11 ::= SEQUENCE { + carrierFreq-r11 MeasObjectId, + interferenceDirection-r11 ENUMERATED {eutra, other, both, spare} +} + +AffectedCarrierFreqCombList-r11 ::= SEQUENCE (SIZE (1..maxCombIDC-r11)) OF AffectedCarrierFreqComb-r11 + +AffectedCarrierFreqComb-r11 ::= SEQUENCE (SIZE (2..maxServCell-r10)) OF MeasObjectId + +TDM-AssistanceInfo-r11 ::= CHOICE { + drx-AssistanceInfo-r11 SEQUENCE { + drx-CycleLength-r11 ENUMERATED {sf40, sf64, sf80, sf128, sf160, + sf256, spare2, spare1}, + drx-Offset-r11 INTEGER (0..255) OPTIONAL, + drx-ActiveTime-r11 ENUMERATED {sf20, sf30, sf40, sf60, sf80, + sf100, spare2, spare1} + }, + idc-SubframePatternList-r11 IDC-SubframePatternList-r11, + ... +} + +IDC-SubframePatternList-r11 ::= SEQUENCE (SIZE (1..maxSubframePatternIDC-r11)) OF IDC-SubframePattern-r11 + +IDC-SubframePattern-r11 ::= CHOICE { + subframePatternFDD-r11 BIT STRING (SIZE (4)), + subframePatternTDD-r11 CHOICE { + subframeConfig0-r11 BIT STRING (SIZE (70)), + subframeConfig1-5-r11 BIT STRING (SIZE (10)), + subframeConfig6-r11 BIT STRING (SIZE (60)) + }, + ... +} + +VictimSystemType-r11 ::= SEQUENCE { + gps-r11 ENUMERATED {true} OPTIONAL, + glonass-r11 ENUMERATED {true} OPTIONAL, + bds-r11 ENUMERATED {true} OPTIONAL, + galileo-r11 ENUMERATED {true} OPTIONAL, + wlan-r11 ENUMERATED {true} OPTIONAL, + bluetooth-r11 ENUMERATED {true} OPTIONAL +} + + +InterFreqRSTDMeasurementIndication-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + interFreqRSTDMeasurementIndication-r10 InterFreqRSTDMeasurementIndication-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +InterFreqRSTDMeasurementIndication-r10-IEs ::= SEQUENCE { + rstd-InterFreqIndication-r10 CHOICE { + start SEQUENCE { + rstd-InterFreqInfoList-r10 RSTD-InterFreqInfoList-r10 + }, + stop NULL + }, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RSTD-InterFreqInfoList-r10 ::= SEQUENCE (SIZE(1..maxRSTD-Freq-r10)) OF RSTD-InterFreqInfo-r10 + +RSTD-InterFreqInfo-r10 ::= SEQUENCE { + carrierFreq-r10 ARFCN-ValueEUTRA, + measPRS-Offset-r10 INTEGER (0..39), + ..., + [[ carrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL + ]] +} + + +LoggedMeasurementConfiguration-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + loggedMeasurementConfiguration-r10 LoggedMeasurementConfiguration-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + + +LoggedMeasurementConfiguration-r10-IEs ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, -- Need OR + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10, + nonCriticalExtension LoggedMeasurementConfiguration-v1080-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1080-IEs ::= SEQUENCE { + lateNonCriticalExtension-r10 OCTET STRING OPTIONAL, + nonCriticalExtension LoggedMeasurementConfiguration-v1130-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1130-IEs ::= SEQUENCE { + plmn-IdentityList-r11 PLMN-IdentityList3-r11 OPTIONAL, -- Need OR + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MasterInformationBlock ::= SEQUENCE { + dl-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100}, + phich-Config PHICH-Config, + systemFrameNumber BIT STRING (SIZE (8)), + spare BIT STRING (SIZE (10)) +} + + + +MBMSCountingRequest-r10 ::= SEQUENCE { + countingRequestList-r10 CountingRequestList-r10, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CountingRequestList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingRequestInfo-r10 + +CountingRequestInfo-r10 ::= SEQUENCE { + tmgi-r10 TMGI-r9, + ... +} + + +MBMSCountingResponse-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + countingResponse-r10 MBMSCountingResponse-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MBMSCountingResponse-r10-IEs ::= SEQUENCE { + mbsfn-AreaIndex-r10 INTEGER (0..maxMBSFN-Area-1) OPTIONAL, + countingResponseList-r10 CountingResponseList-r10 OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CountingResponseList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingResponseInfo-r10 + +CountingResponseInfo-r10 ::= SEQUENCE { + countingResponseService-r10 INTEGER (0..maxServiceCount-1), + ... +} + + +MBMSInterestIndication-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + interestIndication-r11 MBMSInterestIndication-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MBMSInterestIndication-r11-IEs ::= SEQUENCE { + mbms-FreqList-r11 CarrierFreqListMBMS-r11 OPTIONAL, + mbms-Priority-r11 ENUMERATED {true} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MBSFNAreaConfiguration-r9 ::= SEQUENCE { + commonSF-Alloc-r9 CommonSF-AllocPatternList-r9, + commonSF-AllocPeriod-r9 ENUMERATED { + rf4, rf8, rf16, rf32, rf64, rf128, rf256}, + pmch-InfoList-r9 PMCH-InfoList-r9, + nonCriticalExtension MBSFNAreaConfiguration-v930-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CommonSF-AllocPatternList-r9 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig + + +MeasurementReport ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + measurementReport-r8 MeasurementReport-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MeasurementReport-r8-IEs ::= SEQUENCE { + measResults MeasResults, + nonCriticalExtension MeasurementReport-v8a0-IEs OPTIONAL +} + +MeasurementReport-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MobilityFromEUTRACommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + mobilityFromEUTRACommand-r8 MobilityFromEUTRACommand-r8-IEs, + mobilityFromEUTRACommand-r9 MobilityFromEUTRACommand-r9-IEs, + spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MobilityFromEUTRACommand-r8-IEs ::= SEQUENCE { + cs-FallbackIndicator BOOLEAN, + purpose CHOICE{ + handover Handover, + cellChangeOrder CellChangeOrder + }, + nonCriticalExtension MobilityFromEUTRACommand-v8a0-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MobilityFromEUTRACommand-v8d0-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v8d0-IEs ::= SEQUENCE { + bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +MobilityFromEUTRACommand-r9-IEs ::= SEQUENCE { + cs-FallbackIndicator BOOLEAN, + purpose CHOICE{ + handover Handover, + cellChangeOrder CellChangeOrder, + e-CSFB-r9 E-CSFB-r9, + ... + }, + nonCriticalExtension MobilityFromEUTRACommand-v930-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MobilityFromEUTRACommand-v960-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v960-IEs ::= SEQUENCE { + bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +Handover ::= SEQUENCE { + targetRAT-Type ENUMERATED { + utra, geran, cdma2000-1XRTT, cdma2000-HRPD, + spare4, spare3, spare2, spare1, ...}, + targetRAT-MessageContainer OCTET STRING, + nas-SecurityParamFromEUTRA OCTET STRING (SIZE (1)) OPTIONAL, -- Cond UTRAGERAN + systemInformation SI-OrPSI-GERAN OPTIONAL -- Cond PSHO +} + +CellChangeOrder ::= SEQUENCE { + t304 ENUMERATED { + ms100, ms200, ms500, ms1000, + ms2000, ms4000, ms8000, spare1}, + targetRAT-Type CHOICE { + geran SEQUENCE { + physCellId PhysCellIdGERAN, + carrierFreq CarrierFreqGERAN, + networkControlOrder BIT STRING (SIZE (2)) OPTIONAL, -- Need OP + systemInformation SI-OrPSI-GERAN OPTIONAL -- Need OP + }, + ... + } +} + +SI-OrPSI-GERAN ::= CHOICE { + si SystemInfoListGERAN, + psi SystemInfoListGERAN +} + +E-CSFB-r9 ::= SEQUENCE { + messageContCDMA2000-1XRTT-r9 OCTET STRING OPTIONAL, -- Need ON + mobilityCDMA2000-HRPD-r9 ENUMERATED { + handover, redirection + } OPTIONAL, -- Need OP + messageContCDMA2000-HRPD-r9 OCTET STRING OPTIONAL, -- Cond concHO + redirectCarrierCDMA2000-HRPD-r9 CarrierFreqCDMA2000 OPTIONAL -- Cond concRedir +} + + +Paging ::= SEQUENCE { + pagingRecordList PagingRecordList OPTIONAL, -- Need ON + systemInfoModification ENUMERATED {true} OPTIONAL, -- Need ON + etws-Indication ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v890-IEs OPTIONAL +} + +Paging-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension Paging-v920-IEs OPTIONAL +} + +Paging-v920-IEs ::= SEQUENCE { + cmas-Indication-r9 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v1130-IEs OPTIONAL +} + +Paging-v1130-IEs ::= SEQUENCE { + eab-ParamModification-r11 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PagingRecordList ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord + +PagingRecord ::= SEQUENCE { + ue-Identity PagingUE-Identity, + cn-Domain ENUMERATED {ps, cs}, + ... +} + +PagingUE-Identity ::= CHOICE { + s-TMSI S-TMSI, + imsi IMSI, + ... +} + +IMSI ::= SEQUENCE (SIZE (6..21)) OF IMSI-Digit + +IMSI-Digit ::= INTEGER (0..9) + + +ProximityIndication-r9 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + proximityIndication-r9 ProximityIndication-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ProximityIndication-r9-IEs ::= SEQUENCE { + type-r9 ENUMERATED {entering, leaving}, + carrierFreq-r9 CHOICE { + eutra-r9 ARFCN-ValueEUTRA, + utra-r9 ARFCN-ValueUTRA, + ..., + eutra2-v9e0 ARFCN-ValueEUTRA-v9e0 + }, + nonCriticalExtension ProximityIndication-v930-IEs OPTIONAL +} + +ProximityIndication-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RNReconfiguration-r10 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rnReconfiguration-r10 RNReconfiguration-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RNReconfiguration-r10-IEs ::= SEQUENCE { + rn-SystemInfo-r10 RN-SystemInfo-r10 OPTIONAL, -- Need ON + rn-SubframeConfig-r10 RN-SubframeConfig-r10 OPTIONAL, -- Need ON + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RN-SystemInfo-r10 ::= SEQUENCE { + systemInformationBlockType1-r10 OCTET STRING (CONTAINING SystemInformationBlockType1) OPTIONAL, -- Need ON + systemInformationBlockType2-r10 SystemInformationBlockType2 OPTIONAL, -- Need ON + ... +} + + +RNReconfigurationComplete-r10 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rnReconfigurationComplete-r10 RNReconfigurationComplete-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RNReconfigurationComplete-r10-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReconfiguration ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReconfiguration-r8 RRCConnectionReconfiguration-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfiguration-r8-IEs ::= SEQUENCE { + measConfig MeasConfig OPTIONAL, -- Need ON + mobilityControlInfo MobilityControlInfo OPTIONAL, -- Cond HO + dedicatedInfoNASList SEQUENCE (SIZE(1..maxDRB)) OF + DedicatedInfoNAS OPTIONAL, -- Cond nonHO + radioResourceConfigDedicated RadioResourceConfigDedicated OPTIONAL, -- Cond HO-toEUTRA + securityConfigHO SecurityConfigHO OPTIONAL, -- Cond HO + nonCriticalExtension RRCConnectionReconfiguration-v890-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING RRCConnectionReconfiguration-v8m0-IEs) OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v920-IEs OPTIONAL +} + +-- Late non-critical extensions: +RRCConnectionReconfiguration-v8m0-IEs ::= SEQUENCE { + -- Following field is only for pre REL-10 late non-critical extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v10i0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v10i0-IEs ::= SEQUENCE { + antennaInfoDedicatedPCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL, -- Need ON + -- Following field is only for late non-critical extensions for REL-10 + nonCriticalExtension RRCConnectionReconfiguration-v10l0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v10l0-IEs ::= SEQUENCE { + mobilityControlInfo-v10l0 MobilityControlInfo-v10l0 OPTIONAL, + sCellToAddModList-v10l0 SCellToAddModList-v10l0 OPTIONAL, -- Need ON + -- Following field is only for late non-critical extensions from REL-10 to REL-11 + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +RRCConnectionReconfiguration-v920-IEs ::= SEQUENCE { + otherConfig-r9 OtherConfig-r9 OPTIONAL, -- Need ON + fullConfig-r9 ENUMERATED {true} OPTIONAL, -- Cond HO-Reestab + nonCriticalExtension RRCConnectionReconfiguration-v1020-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1020-IEs ::= SEQUENCE { + sCellToReleaseList-r10 SCellToReleaseList-r10 OPTIONAL, -- Need ON + sCellToAddModList-r10 SCellToAddModList-r10 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1130-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1130-IEs ::= SEQUENCE { + systemInfomationBlockType1Dedicated-r11 OCTET STRING (CONTAINING SystemInformationBlockType1) OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SCellToAddModList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-r10 + +SCellToAddModList-v10l0 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-v10l0 + +SCellToAddMod-r10 ::= SEQUENCE { + sCellIndex-r10 SCellIndex-r10, + cellIdentification-r10 SEQUENCE { + physCellId-r10 PhysCellId, + dl-CarrierFreq-r10 ARFCN-ValueEUTRA + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonSCell-r10 RadioResourceConfigCommonSCell-r10 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedSCell-r10 RadioResourceConfigDedicatedSCell-r10 OPTIONAL, -- Cond SCellAdd2 + ..., + [[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max + ]], + [[ antennaInfoDedicatedSCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON + ]] +} + +SCellToAddMod-v10l0 ::= SEQUENCE { + radioResourceConfigCommonSCell-v10l0 RadioResourceConfigCommonSCell-v10l0 OPTIONAL +} + +SCellToReleaseList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellIndex-r10 + +SecurityConfigHO ::= SEQUENCE { + handoverType CHOICE { + intraLTE SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig OPTIONAL, -- Cond fullConfig + keyChangeIndicator BOOLEAN, + nextHopChainingCount NextHopChainingCount + }, + interRAT SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig, + nas-SecurityParamToEUTRA OCTET STRING (SIZE(6)) + } + }, + ... +} + + + +RRCConnectionReconfigurationComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReconfigurationComplete-r8 + RRCConnectionReconfigurationComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfigurationComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReconfigurationComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1020-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1020-IEs ::= SEQUENCE { + rlf-InfoAvailable-r10 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1130-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishment ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReestablishment-r8 RRCConnectionReestablishment-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishment-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated RadioResourceConfigDedicated, + nextHopChainingCount NextHopChainingCount, + nonCriticalExtension RRCConnectionReestablishment-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishment-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReestablishmentComplete-r8 + RRCConnectionReestablishmentComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReestablishmentComplete-v920-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v920-IEs ::= SEQUENCE { + rlf-InfoAvailable-r9 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1020-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1020-IEs ::= SEQUENCE { + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1130-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentReject ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentReject-r8 + RRCConnectionReestablishmentReject-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentReject-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReestablishmentReject-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishmentReject-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentRequest ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentRequest-r8 + RRCConnectionReestablishmentRequest-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentRequest-r8-IEs ::= SEQUENCE { + ue-Identity ReestabUE-Identity, + reestablishmentCause ReestablishmentCause, + spare BIT STRING (SIZE (2)) +} + +ReestabUE-Identity ::= SEQUENCE { + c-RNTI C-RNTI, + physCellId PhysCellId, + shortMAC-I ShortMAC-I +} + +ReestablishmentCause ::= ENUMERATED { + reconfigurationFailure, handoverFailure, + otherFailure, spare1} + + +RRCConnectionReject ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionReject-r8 RRCConnectionReject-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReject-r8-IEs ::= SEQUENCE { + waitTime INTEGER (1..16), + nonCriticalExtension RRCConnectionReject-v8a0-IEs OPTIONAL +} + +RRCConnectionReject-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReject-v1020-IEs OPTIONAL +} + +RRCConnectionReject-v1020-IEs ::= SEQUENCE { + extendedWaitTime-r10 INTEGER (1..1800) OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReject-v1130-IEs OPTIONAL +} + +RRCConnectionReject-v1130-IEs ::= SEQUENCE { + deprioritisationReq-r11 SEQUENCE { + deprioritisationType-r11 ENUMERATED {frequency, e-utra}, + deprioritisationTimer-r11 ENUMERATED {min5, min10, min15, min30} + } OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionRelease ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionRelease-r8 RRCConnectionRelease-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRelease-r8-IEs ::= SEQUENCE { + releaseCause ReleaseCause, + redirectedCarrierInfo RedirectedCarrierInfo OPTIONAL, -- Need ON + idleModeMobilityControlInfo IdleModeMobilityControlInfo OPTIONAL, -- Need OP + nonCriticalExtension RRCConnectionRelease-v890-IEs OPTIONAL +} + +RRCConnectionRelease-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING RRCConnectionRelease-v9e0-IEs) OPTIONAL, + nonCriticalExtension RRCConnectionRelease-v920-IEs OPTIONAL +} + +-- Late non critical extensions +RRCConnectionRelease-v9e0-IEs ::= SEQUENCE { + redirectedCarrierInfo-v9e0 RedirectedCarrierInfo-v9e0 OPTIONAL, -- Cond NoRedirect-r8 + idleModeMobilityControlInfo-v9e0 IdleModeMobilityControlInfo-v9e0 OPTIONAL, -- Cond IdleInfoEUTRA + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +RRCConnectionRelease-v920-IEs ::= SEQUENCE { + cellInfoList-r9 CHOICE { + geran-r9 CellInfoListGERAN-r9, + utra-FDD-r9 CellInfoListUTRA-FDD-r9, + utra-TDD-r9 CellInfoListUTRA-TDD-r9, + ..., + utra-TDD-r10 CellInfoListUTRA-TDD-r10 + } OPTIONAL, -- Cond Redirection + nonCriticalExtension RRCConnectionRelease-v1020-IEs OPTIONAL +} + +RRCConnectionRelease-v1020-IEs ::= SEQUENCE { + extendedWaitTime-r10 INTEGER (1..1800) OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +ReleaseCause ::= ENUMERATED {loadBalancingTAUrequired, + other, cs-FallbackHighPriority-v1020, spare1} + +RedirectedCarrierInfo ::= CHOICE { + eutra ARFCN-ValueEUTRA, + geran CarrierFreqsGERAN, + utra-FDD ARFCN-ValueUTRA, + utra-TDD ARFCN-ValueUTRA, + cdma2000-HRPD CarrierFreqCDMA2000, + cdma2000-1xRTT CarrierFreqCDMA2000, + ..., + utra-TDD-r10 CarrierFreqListUTRA-TDD-r10 +} + +RedirectedCarrierInfo-v9e0 ::= SEQUENCE { + eutra-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +CarrierFreqListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxFreqUTRA-TDD-r10)) OF ARFCN-ValueUTRA + +IdleModeMobilityControlInfo ::= SEQUENCE { + freqPriorityListEUTRA FreqPriorityListEUTRA OPTIONAL, -- Need ON + freqPriorityListGERAN FreqsPriorityListGERAN OPTIONAL, -- Need ON + freqPriorityListUTRA-FDD FreqPriorityListUTRA-FDD OPTIONAL, -- Need ON + freqPriorityListUTRA-TDD FreqPriorityListUTRA-TDD OPTIONAL, -- Need ON + bandClassPriorityListHRPD BandClassPriorityListHRPD OPTIONAL, -- Need ON + bandClassPriorityList1XRTT BandClassPriorityList1XRTT OPTIONAL, -- Need ON + t320 ENUMERATED { + min5, min10, min20, min30, min60, min120, min180, + spare1} OPTIONAL, -- Need OR + ... +} + +IdleModeMobilityControlInfo-v9e0 ::= SEQUENCE { + freqPriorityListEUTRA-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v9e0 +} + +FreqPriorityListEUTRA ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA + +FreqPriorityEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityEUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max +} + +FreqsPriorityListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF FreqsPriorityGERAN + +FreqsPriorityGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF FreqPriorityUTRA-FDD + +FreqPriorityUTRA-FDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF FreqPriorityUTRA-TDD + +FreqPriorityUTRA-TDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority +} + +BandClassPriorityListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriorityHRPD + +BandClassPriorityHRPD ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority +} + +BandClassPriorityList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriority1XRTT + +BandClassPriority1XRTT ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority +} + +CellInfoListGERAN-r9 ::= SEQUENCE (SIZE (1..maxCellInfoGERAN-r9)) OF CellInfoGERAN-r9 + +CellInfoGERAN-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdGERAN, + carrierFreq-r9 CarrierFreqGERAN, + systemInformation-r9 SystemInfoListGERAN +} + +CellInfoListUTRA-FDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-FDD-r9 + +CellInfoUTRA-FDD-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdUTRA-FDD, + utra-BCCH-Container-r9 OCTET STRING +} + +CellInfoListUTRA-TDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r9 + +CellInfoUTRA-TDD-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdUTRA-TDD, + utra-BCCH-Container-r9 OCTET STRING +} + +CellInfoListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r10 + +CellInfoUTRA-TDD-r10 ::= SEQUENCE { + physCellId-r10 PhysCellIdUTRA-TDD, + carrierFreq-r10 ARFCN-ValueUTRA, + utra-BCCH-Container-r10 OCTET STRING +} + + +RRCConnectionRequest ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionRequest-r8 RRCConnectionRequest-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRequest-r8-IEs ::= SEQUENCE { + ue-Identity InitialUE-Identity, + establishmentCause EstablishmentCause, + spare BIT STRING (SIZE (1)) +} + +InitialUE-Identity ::= CHOICE { + s-TMSI S-TMSI, + randomValue BIT STRING (SIZE (40)) +} + +EstablishmentCause ::= ENUMERATED { + emergency, highPriorityAccess, mt-Access, mo-Signalling, + mo-Data, delayTolerantAccess-v1020, spare2, spare1} + + +RRCConnectionSetup ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionSetup-r8 RRCConnectionSetup-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetup-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated RadioResourceConfigDedicated, + nonCriticalExtension RRCConnectionSetup-v8a0-IEs OPTIONAL +} + +RRCConnectionSetup-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionSetupComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionSetupComplete-r8 RRCConnectionSetupComplete-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetupComplete-r8-IEs ::= SEQUENCE { + selectedPLMN-Identity INTEGER (1..maxPLMN-r11), + registeredMME RegisteredMME OPTIONAL, + dedicatedInfoNAS DedicatedInfoNAS, + nonCriticalExtension RRCConnectionSetupComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1020-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1020-IEs ::= SEQUENCE { + gummei-Type-r10 ENUMERATED {native, mapped} OPTIONAL, + rlf-InfoAvailable-r10 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + rn-SubframeConfigReq-r10 ENUMERATED {required, notRequired} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1130-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RegisteredMME ::= SEQUENCE { + plmn-Identity PLMN-Identity OPTIONAL, + mmegi BIT STRING (SIZE (16)), + mmec MMEC +} + + +SecurityModeCommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + securityModeCommand-r8 SecurityModeCommand-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeCommand-r8-IEs ::= SEQUENCE { + securityConfigSMC SecurityConfigSMC, + nonCriticalExtension SecurityModeCommand-v8a0-IEs OPTIONAL +} + +SecurityModeCommand-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SecurityConfigSMC ::= SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig, + ... +} + + +SecurityModeComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeComplete-r8 SecurityModeComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension SecurityModeComplete-v8a0-IEs OPTIONAL +} + +SecurityModeComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SecurityModeFailure ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeFailure-r8 SecurityModeFailure-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeFailure-r8-IEs ::= SEQUENCE { + nonCriticalExtension SecurityModeFailure-v8a0-IEs OPTIONAL +} + +SecurityModeFailure-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformation ::= SEQUENCE { + criticalExtensions CHOICE { + systemInformation-r8 SystemInformation-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} +SystemInformation-r8-IEs ::= SEQUENCE { + sib-TypeAndInfo SEQUENCE (SIZE (1..maxSIB)) OF CHOICE { + sib2 SystemInformationBlockType2, + sib3 SystemInformationBlockType3, + sib4 SystemInformationBlockType4, + sib5 SystemInformationBlockType5, + sib6 SystemInformationBlockType6, + sib7 SystemInformationBlockType7, + sib8 SystemInformationBlockType8, + sib9 SystemInformationBlockType9, + sib10 SystemInformationBlockType10, + sib11 SystemInformationBlockType11, + ..., + sib12-v920 SystemInformationBlockType12-r9, + sib13-v920 SystemInformationBlockType13-r9, + sib14-v1130 SystemInformationBlockType14-r11, + sib15-v1130 SystemInformationBlockType15-r11, + sib16-v1130 SystemInformationBlockType16-r11 + }, + nonCriticalExtension SystemInformation-v8a0-IEs OPTIONAL +} + +SystemInformation-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType1 ::= SEQUENCE { + cellAccessRelatedInfo SEQUENCE { + plmn-IdentityList PLMN-IdentityList, + trackingAreaCode TrackingAreaCode, + cellIdentity CellIdentity, + cellBarred ENUMERATED {barred, notBarred}, + intraFreqReselection ENUMERATED {allowed, notAllowed}, + csg-Indication BOOLEAN, + csg-Identity CSG-Identity OPTIONAL -- Need OR + }, + cellSelectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + q-RxLevMinOffset INTEGER (1..8) OPTIONAL -- Need OP + }, + p-Max P-Max OPTIONAL, -- Need OP + freqBandIndicator FreqBandIndicator, + schedulingInfoList SchedulingInfoList, + tdd-Config TDD-Config OPTIONAL, -- Cond TDD + si-WindowLength ENUMERATED { + ms1, ms2, ms5, ms10, ms15, ms20, + ms40}, + systemInfoValueTag INTEGER (0..31), + nonCriticalExtension SystemInformationBlockType1-v890-IEs OPTIONAL +} + +SystemInformationBlockType1-v890-IEs::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType1-v8h0-IEs) OPTIONAL, + nonCriticalExtension SystemInformationBlockType1-v920-IEs OPTIONAL +} + +-- Late non critical extensions +SystemInformationBlockType1-v8h0-IEs ::= SEQUENCE { + multiBandInfoList MultiBandInfoList OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType1-v9e0-IEs ::= SEQUENCE { + freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL, -- Cond FBI-max + multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL, -- Cond mFBI-max + nonCriticalExtension SystemInformationBlockType1-v10j0-IEs OPTIONAL +} + +SystemInformationBlockType1-v10j0-IEs ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType1-v10l0-IEs ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +SystemInformationBlockType1-v920-IEs ::= SEQUENCE { + ims-EmergencySupport-r9 ENUMERATED {true} OPTIONAL, -- Need OR + cellSelectionInfo-v920 CellSelectionInfo-v920 OPTIONAL, -- Cond RSRQ + nonCriticalExtension SystemInformationBlockType1-v1130-IEs OPTIONAL +} + +SystemInformationBlockType1-v1130-IEs ::= SEQUENCE { + tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD-OR + cellSelectionInfo-v1130 CellSelectionInfo-v1130 OPTIONAL, -- Cond WB-RSRQ + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PLMN-IdentityList ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo + +PLMN-IdentityInfo ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellReservedForOperatorUse ENUMERATED {reserved, notReserved} +} + +SchedulingInfoList ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo + +SchedulingInfo ::= SEQUENCE { + si-Periodicity ENUMERATED { + rf8, rf16, rf32, rf64, rf128, rf256, rf512}, + sib-MappingInfo SIB-MappingInfo +} + +SIB-MappingInfo ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type + +SIB-Type ::= ENUMERATED { + sibType3, sibType4, sibType5, sibType6, + sibType7, sibType8, sibType9, sibType10, + sibType11, sibType12-v920, sibType13-v920, + sibType14-v1130, sibType15-v1130, + sibType16-v1130, spare2, spare1, ...} + +CellSelectionInfo-v920 ::= SEQUENCE { + q-QualMin-r9 Q-QualMin-r9, + q-QualMinOffset-r9 INTEGER (1..8) OPTIONAL -- Need OP +} + +CellSelectionInfo-v1130 ::= SEQUENCE { + q-QualMinWB-r11 Q-QualMin-r9 +} + + +UEAssistanceInformation-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ueAssistanceInformation-r11 UEAssistanceInformation-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEAssistanceInformation-r11-IEs ::= SEQUENCE { + powerPrefIndication-r11 ENUMERATED {normal, lowPowerConsumption} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UECapabilityEnquiry ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueCapabilityEnquiry-r8 UECapabilityEnquiry-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityEnquiry-r8-IEs ::= SEQUENCE { + ue-CapabilityRequest UE-CapabilityRequest, + nonCriticalExtension UECapabilityEnquiry-v8a0-IEs OPTIONAL +} + +UECapabilityEnquiry-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UECapabilityEnquiry-v1180-IEs OPTIONAL +} + +UECapabilityEnquiry-v1180-IEs ::= SEQUENCE { + requestedFrequencyBands-r11 SEQUENCE (SIZE (1..16)) OF FreqBandIndicator-r11 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-CapabilityRequest ::= SEQUENCE (SIZE (1..maxRAT-Capabilities)) OF RAT-Type + + +UECapabilityInformation ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + ueCapabilityInformation-r8 UECapabilityInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityInformation-r8-IEs ::= SEQUENCE { + ue-CapabilityRAT-ContainerList UE-CapabilityRAT-ContainerList, + nonCriticalExtension UECapabilityInformation-v8a0-IEs OPTIONAL +} + +UECapabilityInformation-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEInformationRequest-r9 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueInformationRequest-r9 UEInformationRequest-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEInformationRequest-r9-IEs ::= SEQUENCE { + rach-ReportReq-r9 BOOLEAN, + rlf-ReportReq-r9 BOOLEAN, + nonCriticalExtension UEInformationRequest-v930-IEs OPTIONAL +} + +UEInformationRequest-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UEInformationRequest-v1020-IEs OPTIONAL +} + +UEInformationRequest-v1020-IEs ::= SEQUENCE { + logMeasReportReq-r10 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension UEInformationRequest-v1130-IEs OPTIONAL +} + +UEInformationRequest-v1130-IEs ::= SEQUENCE { + connEstFailReportReq-r11 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEInformationResponse-r9 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueInformationResponse-r9 UEInformationResponse-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEInformationResponse-r9-IEs ::= SEQUENCE { + rach-Report-r9 SEQUENCE { + numberOfPreamblesSent-r9 NumberOfPreamblesSent-r11, + contentionDetected-r9 BOOLEAN + } OPTIONAL, + rlf-Report-r9 RLF-Report-r9 OPTIONAL, + nonCriticalExtension UEInformationResponse-v930-IEs OPTIONAL +} + +-- Late non critical extensions +UEInformationResponse-v9e0-IEs ::= SEQUENCE { + rlf-Report-v9e0 RLF-Report-v9e0 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +UEInformationResponse-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING UEInformationResponse-v9e0-IEs) OPTIONAL, + nonCriticalExtension UEInformationResponse-v1020-IEs OPTIONAL +} + +UEInformationResponse-v1020-IEs ::= SEQUENCE { + logMeasReport-r10 LogMeasReport-r10 OPTIONAL, + nonCriticalExtension UEInformationResponse-v1130-IEs OPTIONAL +} + +UEInformationResponse-v1130-IEs ::= SEQUENCE { + connEstFailReport-r11 ConnEstFailReport-r11 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RLF-Report-r9 ::= SEQUENCE { + measResultLastServCell-r9 SEQUENCE { + rsrpResult-r9 RSRP-Range, + rsrqResult-r9 RSRQ-Range OPTIONAL + }, + measResultNeighCells-r9 SEQUENCE { + measResultListEUTRA-r9 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r9 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r9 MeasResultListGERAN OPTIONAL, + measResultsCDMA2000-r9 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + ..., + [[ locationInfo-r10 LocationInfo-r10 OPTIONAL, + failedPCellId-r10 CHOICE { + cellGlobalId-r10 CellGlobalIdEUTRA, + pci-arfcn-r10 SEQUENCE { + physCellId-r10 PhysCellId, + carrierFreq-r10 ARFCN-ValueEUTRA + } + } OPTIONAL, + reestablishmentCellId-r10 CellGlobalIdEUTRA OPTIONAL, + timeConnFailure-r10 INTEGER (0..1023) OPTIONAL, + connectionFailureType-r10 ENUMERATED {rlf, hof} OPTIONAL, + previousPCellId-r10 CellGlobalIdEUTRA OPTIONAL + ]], + [[ failedPCellId-v1090 SEQUENCE { + carrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 + } OPTIONAL + ]], + [[ basicFields-r11 SEQUENCE { + c-RNTI-r11 C-RNTI, + rlf-Cause-r11 ENUMERATED { + t310-Expiry, randomAccessProblem, + rlc-MaxNumRetx, spare1}, + timeSinceFailure-r11 TimeSinceFailure-r11 + } OPTIONAL, + previousUTRA-CellId-r11 SEQUENCE { + carrierFreq-r11 ARFCN-ValueUTRA, + physCellId-r11 CHOICE { + fdd-r11 PhysCellIdUTRA-FDD, + tdd-r11 PhysCellIdUTRA-TDD + }, + cellGlobalId-r11 CellGlobalIdUTRA OPTIONAL + } OPTIONAL, + selectedUTRA-CellId-r11 SEQUENCE { + carrierFreq-r11 ARFCN-ValueUTRA, + physCellId-r11 CHOICE { + fdd-r11 PhysCellIdUTRA-FDD, + tdd-r11 PhysCellIdUTRA-TDD + } + } OPTIONAL + ]] +} + +RLF-Report-v9e0 ::= SEQUENCE { + measResultListEUTRA-v9e0 MeasResultList2EUTRA-v9e0 +} + +MeasResultList2EUTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-r9 + +MeasResultList2EUTRA-v9e0 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v9e0 + +MeasResult2EUTRA-r9 ::= SEQUENCE { + carrierFreq-r9 ARFCN-ValueEUTRA, + measResultList-r9 MeasResultListEUTRA +} + +MeasResult2EUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL +} + +MeasResultList2UTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2UTRA-r9 + +MeasResult2UTRA-r9 ::= SEQUENCE { + carrierFreq-r9 ARFCN-ValueUTRA, + measResultList-r9 MeasResultListUTRA +} + +MeasResultList2CDMA2000-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2CDMA2000-r9 + +MeasResult2CDMA2000-r9 ::= SEQUENCE { + carrierFreq-r9 CarrierFreqCDMA2000, + measResultList-r9 MeasResultsCDMA2000 +} + +LogMeasReport-r10 ::= SEQUENCE { + absoluteTimeStamp-r10 AbsoluteTimeInfo-r10, + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + logMeasInfoList-r10 LogMeasInfoList-r10, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + ... +} + +LogMeasInfoList-r10 ::= SEQUENCE (SIZE (1..maxLogMeasReport-r10)) OF LogMeasInfo-r10 + +LogMeasInfo-r10 ::= SEQUENCE { + locationInfo-r10 LocationInfo-r10 OPTIONAL, + relativeTimeStamp-r10 INTEGER (0..7200), + servCellIdentity-r10 CellGlobalIdEUTRA, + measResultServCell-r10 SEQUENCE { + rsrpResult-r10 RSRP-Range, + rsrqResult-r10 RSRQ-Range + }, + measResultNeighCells-r10 SEQUENCE { + measResultListEUTRA-r10 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r10 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r10 MeasResultList2GERAN-r10 OPTIONAL, + measResultListCDMA2000-r10 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + ..., + [[ measResultListEUTRA-v1090 MeasResultList2EUTRA-v9e0 OPTIONAL + ]] +} + +MeasResultList2GERAN-r10 ::= SEQUENCE (SIZE (1..maxCellListGERAN)) OF MeasResultListGERAN + +ConnEstFailReport-r11 ::= SEQUENCE { + failedCellId-r11 CellGlobalIdEUTRA, + locationInfo-r11 LocationInfo-r10 OPTIONAL, + measResultFailedCell-r11 SEQUENCE { + rsrpResult-r11 RSRP-Range, + rsrqResult-r11 RSRQ-Range OPTIONAL + }, + measResultNeighCells-r11 SEQUENCE { + measResultListEUTRA-r11 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r11 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r11 MeasResultListGERAN OPTIONAL, + measResultsCDMA2000-r11 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + numberOfPreamblesSent-r11 NumberOfPreamblesSent-r11, + contentionDetected-r11 BOOLEAN, + maxTxPowerReached-r11 BOOLEAN, + timeSinceFailure-r11 TimeSinceFailure-r11, + measResultListEUTRA-v1130 MeasResultList2EUTRA-v9e0 OPTIONAL, + ... +} + +NumberOfPreamblesSent-r11::= INTEGER (1..200) + +TimeSinceFailure-r11 ::= INTEGER (0..172800) + + +ULHandoverPreparationTransfer ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulHandoverPreparationTransfer-r8 ULHandoverPreparationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULHandoverPreparationTransfer-r8-IEs ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + meid BIT STRING (SIZE (56)) OPTIONAL, + dedicatedInfo DedicatedInfoCDMA2000, + nonCriticalExtension ULHandoverPreparationTransfer-v8a0-IEs OPTIONAL +} + +ULHandoverPreparationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +ULInformationTransfer ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulInformationTransfer-r8 ULInformationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType CHOICE { + dedicatedInfoNAS DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000 + }, + nonCriticalExtension ULInformationTransfer-v8a0-IEs OPTIONAL +} + +ULInformationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType2 ::= SEQUENCE { + ac-BarringInfo SEQUENCE { + ac-BarringForEmergency BOOLEAN, + ac-BarringForMO-Signalling AC-BarringConfig OPTIONAL, -- Need OP + ac-BarringForMO-Data AC-BarringConfig OPTIONAL -- Need OP + } OPTIONAL, -- Need OP + radioResourceConfigCommon RadioResourceConfigCommonSIB, + ue-TimersAndConstants UE-TimersAndConstants, + freqInfo SEQUENCE { + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission + }, + mbsfn-SubframeConfigList MBSFN-SubframeConfigList OPTIONAL, -- Need OR + timeAlignmentTimerCommon TimeAlignmentTimer, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType2-v8h0-IEs) OPTIONAL, + [[ ssac-BarringForMMTEL-Voice-r9 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Video-r9 AC-BarringConfig OPTIONAL -- Need OP + ]], + [[ ac-BarringForCSFB-r10 AC-BarringConfig OPTIONAL -- Need OP + ]] +} + +SystemInformationBlockType2-v8h0-IEs ::= SEQUENCE { + multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType2-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType2-v9e0-IEs ::= SEQUENCE { + ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond ul-FreqMax + nonCriticalExtension SystemInformationBlockType2-v9i0-IEs OPTIONAL +} + +SystemInformationBlockType2-v9i0-IEs ::= SEQUENCE { +-- Following field is only for late non-critical extensions for REL-9 + lateNonCriticalExtension OCTET STRING OPTIONAL, +-- Following field is only for late non-critical extensions from REL-10 + nonCriticalExtension SystemInformationBlockType2-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType2-v10l0-IEs ::= SEQUENCE { +freqInfo-v10l0 SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 + }, + multiBandInfoList-v10l0 SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission-v10l0, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AC-BarringConfig ::= SEQUENCE { + ac-BarringFactor ENUMERATED { + p00, p05, p10, p15, p20, p25, p30, p40, + p50, p60, p70, p75, p80, p85, p90, p95}, + ac-BarringTime ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512}, + ac-BarringForSpecialAC BIT STRING (SIZE(5)) +} + +MBSFN-SubframeConfigList ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig + + +SystemInformationBlockType3 ::= SEQUENCE { + cellReselectionInfoCommon SEQUENCE { + q-Hyst ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + speedStateReselectionPars SEQUENCE { + mobilityStateParameters MobilityStateParameters, + q-HystSF SEQUENCE { + sf-Medium ENUMERATED { + dB-6, dB-4, dB-2, dB0}, + sf-High ENUMERATED { + dB-6, dB-4, dB-2, dB0} + } + } OPTIONAL -- Need OP + }, + cellReselectionServingFreqInfo SEQUENCE { + s-NonIntraSearch ReselectionThreshold OPTIONAL, -- Need OP + threshServingLow ReselectionThreshold, + cellReselectionPriority CellReselectionPriority + }, + intraFreqCellReselectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + p-Max P-Max OPTIONAL, -- Need OP + s-IntraSearch ReselectionThreshold OPTIONAL, -- Need OP + allowedMeasBandwidth AllowedMeasBandwidth OPTIONAL, -- Need OP + presenceAntennaPort1 PresenceAntennaPort1, + neighCellConfig NeighCellConfig, + t-ReselectionEUTRA T-Reselection, + t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL -- Need OP + }, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType3-v10j0-IEs) OPTIONAL, + [[ s-IntraSearch-v920 SEQUENCE { + s-IntraSearchP-r9 ReselectionThreshold, + s-IntraSearchQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL, -- Need OP + s-NonIntraSearch-v920 SEQUENCE { + s-NonIntraSearchP-r9 ReselectionThreshold, + s-NonIntraSearchQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL, -- Need OP + q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP + threshServingLowQ-r9 ReselectionThresholdQ-r9 OPTIONAL -- Need OP + ]], + [[ q-QualMinWB-r11 Q-QualMin-r9 OPTIONAL -- Cond WB-RSRQ + ]] +} + +-- Late non critical extensions +SystemInformationBlockType3-v10j0-IEs ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType3-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType3-v10l0-IEs ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType4 ::= SEQUENCE { + intraFreqNeighCellList IntraFreqNeighCellList OPTIONAL, -- Need OR + intraFreqBlackCellList IntraFreqBlackCellList OPTIONAL, -- Need OR + csg-PhysCellIdRange PhysCellIdRange OPTIONAL, -- Cond CSG + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + +IntraFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellIntra)) OF IntraFreqNeighCellInfo + +IntraFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange, + ... +} + +IntraFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange + + +SystemInformationBlockType5 ::= SEQUENCE { + interFreqCarrierFreqList InterFreqCarrierFreqList, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType5-v8h0-IEs) OPTIONAL +} + +SystemInformationBlockType5-v8h0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v8h0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v8h0 OPTIONAL, -- Need OP + nonCriticalExtension SystemInformationBlockType5-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType5-v9e0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v9e0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType5-v10j0-IEs OPTIONAL +} + +SystemInformationBlockType5-v10j0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v10j0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType5-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType5-v10l0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v10l0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +InterFreqCarrierFreqList ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo + +InterFreqCarrierFreqInfo ::= SEQUENCE { + dl-CarrierFreq ARFCN-ValueEUTRA, + q-RxLevMin Q-RxLevMin, + p-Max P-Max OPTIONAL, -- Need OP + t-ReselectionEUTRA T-Reselection, + t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + allowedMeasBandwidth AllowedMeasBandwidth, + presenceAntennaPort1 PresenceAntennaPort1, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + neighCellConfig NeighCellConfig, + q-OffsetFreq Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList InterFreqNeighCellList OPTIONAL, -- Need OR + interFreqBlackCellList InterFreqBlackCellList OPTIONAL, -- Need OR + ..., + [[ q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP + threshX-Q-r9 SEQUENCE { + threshX-HighQ-r9 ReselectionThresholdQ-r9, + threshX-LowQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL -- Cond RSRQ + ]], + [[ q-QualMinWB-r11 Q-QualMin-r9 OPTIONAL -- Cond WB-RSRQ + ]] +} + +InterFreqCarrierFreqInfo-v8h0 ::= SEQUENCE { + multiBandInfoList MultiBandInfoList OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v9e0 ::= SEQUENCE { + dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond dl-FreqMax + multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v10j0 ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v10l0 ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL -- Need OR +} + +InterFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo + +InterFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange +} + +InterFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange + + +SystemInformationBlockType6 ::= SEQUENCE { + carrierFreqListUTRA-FDD CarrierFreqListUTRA-FDD OPTIONAL, -- Need OR + carrierFreqListUTRA-TDD CarrierFreqListUTRA-TDD OPTIONAL, -- Need OR + t-ReselectionUTRA T-Reselection, + t-ReselectionUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType6-v8h0-IEs) OPTIONAL +} + +SystemInformationBlockType6-v8h0-IEs ::= SEQUENCE { + carrierFreqListUTRA-FDD-v8h0 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqInfoUTRA-FDD-v8h0 OPTIONAL, -- Cond UTRA-FDD + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CarrierFreqListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqUTRA-FDD + +CarrierFreqUTRA-FDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + q-RxLevMin INTEGER (-60..-13), + p-MaxUTRA INTEGER (-50..33), + q-QualMin INTEGER (-24..0), + ..., + [[ threshX-Q-r9 SEQUENCE { + threshX-HighQ-r9 ReselectionThresholdQ-r9, + threshX-LowQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL -- Cond RSRQ + ]] +} + +CarrierFreqInfoUTRA-FDD-v8h0 ::= SEQUENCE { + multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL -- Need OR +} + +CarrierFreqListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF CarrierFreqUTRA-TDD + +CarrierFreqUTRA-TDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + q-RxLevMin INTEGER (-60..-13), + p-MaxUTRA INTEGER (-50..33), + ... +} + +FreqBandIndicator-UTRA-FDD ::= INTEGER (1..86) + + +SystemInformationBlockType7 ::= SEQUENCE { + t-ReselectionGERAN T-Reselection, + t-ReselectionGERAN-SF SpeedStateScaleFactors OPTIONAL, -- Need OR + carrierFreqsInfoList CarrierFreqsInfoListGERAN OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + +CarrierFreqsInfoListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF CarrierFreqsInfoGERAN + +CarrierFreqsInfoGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + commonInfo SEQUENCE { + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + ncc-Permitted BIT STRING (SIZE (8)), + q-RxLevMin INTEGER (0..45), + p-MaxGERAN INTEGER (0..39) OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold + }, + ... +} + + +SystemInformationBlockType8 ::= SEQUENCE { + systemTimeInfo SystemTimeInfoCDMA2000 OPTIONAL, -- Need OR + searchWindowSize INTEGER (0..15) OPTIONAL, -- Need OR + parametersHRPD SEQUENCE { + preRegistrationInfoHRPD PreRegistrationInfoHRPD, + cellReselectionParametersHRPD CellReselectionParametersCDMA2000 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + parameters1XRTT SEQUENCE { + csfb-RegistrationParam1XRTT CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP + longCodeState1XRTT BIT STRING (SIZE (42)) OPTIONAL, -- Need OR + cellReselectionParameters1XRTT CellReselectionParametersCDMA2000 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL, + [[ csfb-SupportForDualRxUEs-r9 BOOLEAN OPTIONAL, -- Need OR + cellReselectionParametersHRPD-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-HRPD + cellReselectionParameters1XRTT-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-1XRTT + csfb-RegistrationParam1XRTT-v920 CSFB-RegistrationParam1XRTT-v920 OPTIONAL, -- Cond REG-1XRTT + ac-BarringConfig1XRTT-r9 AC-BarringConfig1XRTT-r9 OPTIONAL -- Cond REG-1XRTT + ]], + [[ csfb-DualRxTxSupport-r10 ENUMERATED {true} OPTIONAL -- Cond REG-1XRTT + ]], + [[ sib8-PerPLMN-List-r11 SIB8-PerPLMN-List-r11 OPTIONAL -- Need OR + ]] +} + +CellReselectionParametersCDMA2000 ::= SEQUENCE { + bandClassList BandClassListCDMA2000, + neighCellList NeighCellListCDMA2000, + t-ReselectionCDMA2000 T-Reselection, + t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP +} + +CellReselectionParametersCDMA2000-r11 ::= SEQUENCE { + bandClassList BandClassListCDMA2000, + neighCellList-r11 SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-r11, + t-ReselectionCDMA2000 T-Reselection, + t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP +} + +CellReselectionParametersCDMA2000-v920 ::= SEQUENCE { + neighCellList-v920 NeighCellListCDMA2000-v920 +} + +NeighCellListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000 + +NeighCellCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + neighCellsPerFreqList NeighCellsPerBandclassListCDMA2000 +} + +NeighCellCDMA2000-r11 ::= SEQUENCE { + bandClass BandclassCDMA2000, + neighFreqInfoList-r11 SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-r11 +} + +NeighCellsPerBandclassListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000 + +NeighCellsPerBandclassCDMA2000 ::= SEQUENCE { + arfcn ARFCN-ValueCDMA2000, + physCellIdList PhysCellIdListCDMA2000 +} + +NeighCellsPerBandclassCDMA2000-r11 ::= SEQUENCE { + arfcn ARFCN-ValueCDMA2000, + physCellIdList-r11 SEQUENCE (SIZE (1..40)) OF PhysCellIdCDMA2000 +} + +NeighCellListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-v920 + +NeighCellCDMA2000-v920 ::= SEQUENCE { + neighCellsPerFreqList-v920 NeighCellsPerBandclassListCDMA2000-v920 +} + +NeighCellsPerBandclassListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-v920 + +NeighCellsPerBandclassCDMA2000-v920 ::= SEQUENCE { + physCellIdList-v920 PhysCellIdListCDMA2000-v920 +} + +PhysCellIdListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdCDMA2000 + +PhysCellIdListCDMA2000-v920 ::= SEQUENCE (SIZE (0..24)) OF PhysCellIdCDMA2000 + +BandClassListCDMA2000 ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassInfoCDMA2000 + +BandClassInfoCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High INTEGER (0..63), + threshX-Low INTEGER (0..63), + ... +} + +AC-BarringConfig1XRTT-r9 ::= SEQUENCE { + ac-Barring0to9-r9 INTEGER (0..63), + ac-Barring10-r9 INTEGER (0..7), + ac-Barring11-r9 INTEGER (0..7), + ac-Barring12-r9 INTEGER (0..7), + ac-Barring13-r9 INTEGER (0..7), + ac-Barring14-r9 INTEGER (0..7), + ac-Barring15-r9 INTEGER (0..7), + ac-BarringMsg-r9 INTEGER (0..7), + ac-BarringReg-r9 INTEGER (0..7), + ac-BarringEmg-r9 INTEGER (0..7) +} + +SIB8-PerPLMN-List-r11 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF SIB8-PerPLMN-r11 + +SIB8-PerPLMN-r11 ::= SEQUENCE { + plmn-Identity-r11 INTEGER (1..maxPLMN-r11), + parametersCDMA2000-r11 CHOICE { + explicitValue ParametersCDMA2000-r11, + defaultValue NULL + } +} + +ParametersCDMA2000-r11 ::= SEQUENCE { + systemTimeInfo-r11 CHOICE { + explicitValue SystemTimeInfoCDMA2000, + defaultValue NULL + } OPTIONAL, -- Need OR + searchWindowSize-r11 INTEGER (0..15), + parametersHRPD-r11 SEQUENCE { + preRegistrationInfoHRPD-r11 PreRegistrationInfoHRPD, + cellReselectionParametersHRPD-r11 CellReselectionParametersCDMA2000-r11 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + parameters1XRTT-r11 SEQUENCE { + csfb-RegistrationParam1XRTT-r11 CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP + csfb-RegistrationParam1XRTT-Ext-r11 CSFB-RegistrationParam1XRTT-v920 OPTIONAL, -- Cond REG-1XRTT-PerPLMN + longCodeState1XRTT-r11 BIT STRING (SIZE (42)) OPTIONAL, -- Cond PerPLMN-LC + cellReselectionParameters1XRTT-r11 CellReselectionParametersCDMA2000-r11 OPTIONAL, -- Need OR + ac-BarringConfig1XRTT-r11 AC-BarringConfig1XRTT-r9 OPTIONAL, -- Cond REG-1XRTT-PerPLMN + csfb-SupportForDualRxUEs-r11 BOOLEAN OPTIONAL, -- Need OR + csfb-DualRxTxSupport-r11 ENUMERATED {true} OPTIONAL -- Cond REG-1XRTT-PerPLMN + } OPTIONAL, -- Need OR + ... +} + + +SystemInformationBlockType9 ::= SEQUENCE { + hnb-Name OCTET STRING (SIZE(1..48)) OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType10 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningType OCTET STRING (SIZE (2)), + dummy OCTET STRING (SIZE (50)) OPTIONAL, -- Need OP + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType11 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningMessageSegmentType ENUMERATED {notLastSegment, lastSegment}, + warningMessageSegmentNumber INTEGER (0..63), + warningMessageSegment OCTET STRING, + dataCodingScheme OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType12-r9 ::= SEQUENCE { + messageIdentifier-r9 BIT STRING (SIZE (16)), + serialNumber-r9 BIT STRING (SIZE (16)), + warningMessageSegmentType-r9 ENUMERATED {notLastSegment, lastSegment}, + warningMessageSegmentNumber-r9 INTEGER (0..63), + warningMessageSegment-r9 OCTET STRING, + dataCodingScheme-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +SystemInformationBlockType13-r9 ::= SEQUENCE { + mbsfn-AreaInfoList-r9 MBSFN-AreaInfoList-r9, + notificationConfig-r9 MBMS-NotificationConfig-r9, + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +SystemInformationBlockType14-r11 ::= SEQUENCE { + eab-Param-r11 CHOICE { + eab-Common-r11 EAB-Config-r11, + eab-PerPLMN-List-r11 SEQUENCE (SIZE (1..maxPLMN-r11)) OF EAB-ConfigPLMN-r11 + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +EAB-ConfigPLMN-r11 ::= SEQUENCE { + eab-Config-r11 EAB-Config-r11 OPTIONAL -- Need OR +} + +EAB-Config-r11 ::= SEQUENCE { + eab-Category-r11 ENUMERATED {a, b, c}, + eab-BarringBitmap-r11 BIT STRING (SIZE (10)) +} + + +SystemInformationBlockType15-r11 ::= SEQUENCE { + mbms-SAI-IntraFreq-r11 MBMS-SAI-List-r11 OPTIONAL, -- Need OR + mbms-SAI-InterFreqList-r11 MBMS-SAI-InterFreqList-r11 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ mbms-SAI-InterFreqList-v1140 MBMS-SAI-InterFreqList-v1140 OPTIONAL -- Cond InterFreq + ]] +} + +MBMS-SAI-List-r11 ::= SEQUENCE (SIZE (1..maxSAI-MBMS-r11)) OF MBMS-SAI-r11 + +MBMS-SAI-r11 ::= INTEGER (0..65535) + +MBMS-SAI-InterFreqList-r11 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-r11 + +MBMS-SAI-InterFreqList-v1140 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-v1140 + +MBMS-SAI-InterFreq-r11 ::= SEQUENCE { + dl-CarrierFreq-r11 ARFCN-ValueEUTRA-r9, + mbms-SAI-List-r11 MBMS-SAI-List-r11 +} + +MBMS-SAI-InterFreq-v1140 ::= SEQUENCE { + multiBandInfoList-r11 MultiBandInfoList-r11 OPTIONAL -- Need OR +} + + + +SystemInformationBlockType16-r11 ::= SEQUENCE { + timeInfo-r11 SEQUENCE { + timeInfoUTC-r11 INTEGER (0..549755813887), + dayLightSavingTime-r11 BIT STRING (SIZE (2)) OPTIONAL, -- Need OR + leapSeconds-r11 INTEGER (-127..128) OPTIONAL, -- Need OR + localTimeOffset-r11 INTEGER (-63..64) OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +AntennaInfoCommon ::= SEQUENCE { + antennaPortsCount ENUMERATED {an1, an2, an4, spare1} +} + +AntennaInfoDedicated ::= SEQUENCE { + transmissionMode ENUMERATED { + tm1, tm2, tm3, tm4, tm5, tm6, + tm7, tm8-v920}, + codebookSubsetRestriction CHOICE { + n2TxAntenna-tm3 BIT STRING (SIZE (2)), + n4TxAntenna-tm3 BIT STRING (SIZE (4)), + n2TxAntenna-tm4 BIT STRING (SIZE (6)), + n4TxAntenna-tm4 BIT STRING (SIZE (64)), + n2TxAntenna-tm5 BIT STRING (SIZE (4)), + n4TxAntenna-tm5 BIT STRING (SIZE (16)), + n2TxAntenna-tm6 BIT STRING (SIZE (4)), + n4TxAntenna-tm6 BIT STRING (SIZE (16)) + } OPTIONAL, -- Cond TM + ue-TransmitAntennaSelection CHOICE{ + release NULL, + setup ENUMERATED {closedLoop, openLoop} + } +} + +AntennaInfoDedicated-v920 ::= SEQUENCE { + codebookSubsetRestriction-v920 CHOICE { + n2TxAntenna-tm8-r9 BIT STRING (SIZE (6)), + n4TxAntenna-tm8-r9 BIT STRING (SIZE (32)) + } OPTIONAL -- Cond TM8 +} + +AntennaInfoDedicated-r10 ::= SEQUENCE { + transmissionMode-r10 ENUMERATED { + tm1, tm2, tm3, tm4, tm5, tm6, tm7, tm8-v920, + tm9-v1020, tm10-v1130, spare6, spare5, spare4, + spare3, spare2, spare1}, + codebookSubsetRestriction-r10 BIT STRING OPTIONAL, -- Cond TMX + ue-TransmitAntennaSelection CHOICE{ + release NULL, + setup ENUMERATED {closedLoop, openLoop} + } +} + +AntennaInfoDedicated-v10i0::= SEQUENCE { + maxLayersMIMO-r10 ENUMERATED {twoLayers, fourLayers, eightLayers} OPTIONAL -- Need OR +} + + +AntennaInfoUL-r10 ::= SEQUENCE { + transmissionModeUL-r10 ENUMERATED {tm1, tm2, spare6, spare5, + spare4, spare3, spare2, spare1} OPTIONAL, -- Need OR + fourAntennaPortActivated-r10 ENUMERATED {setup} OPTIONAL -- Need OR +} + + +CQI-ReportConfig ::= SEQUENCE { + cqi-ReportModeAperiodic CQI-ReportModeAperiodic OPTIONAL, -- Need OR + nomPDSCH-RS-EPRE-Offset INTEGER (-1..6), + cqi-ReportPeriodic CQI-ReportPeriodic OPTIONAL -- Need ON +} + +CQI-ReportConfig-v920 ::= SEQUENCE { + cqi-Mask-r9 ENUMERATED {setup} OPTIONAL, -- Cond cqi-Setup + pmi-RI-Report-r9 ENUMERATED {setup} OPTIONAL -- Cond PMIRI +} + +CQI-ReportConfig-r10 ::= SEQUENCE { + cqi-ReportAperiodic-r10 CQI-ReportAperiodic-r10 OPTIONAL, -- Need ON + nomPDSCH-RS-EPRE-Offset INTEGER (-1..6), + cqi-ReportPeriodic-r10 CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON + pmi-RI-Report-r9 ENUMERATED {setup} OPTIONAL, -- Cond PMIRIPCell + csi-SubframePatternConfig-r10 CHOICE { + release NULL, + setup SEQUENCE { + csi-MeasSubframeSet1-r10 MeasSubframePattern-r10, + csi-MeasSubframeSet2-r10 MeasSubframePattern-r10 + } + } OPTIONAL -- Need ON +} + +CQI-ReportConfig-v1130 ::= SEQUENCE { + cqi-ReportPeriodic-v1130 CQI-ReportPeriodic-v1130, + cqi-ReportBoth-r11 CQI-ReportBoth-r11 +} + +CQI-ReportConfigSCell-r10 ::= SEQUENCE { + cqi-ReportModeAperiodic-r10 CQI-ReportModeAperiodic OPTIONAL, -- Need OR + nomPDSCH-RS-EPRE-Offset-r10 INTEGER (-1..6), + cqi-ReportPeriodicSCell-r10 CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON + pmi-RI-Report-r10 ENUMERATED {setup} OPTIONAL -- Cond PMIRISCell +} + +CQI-ReportPeriodic ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-PUCCH-ResourceIndex INTEGER (0..1185), + cqi-pmi-ConfigIndex INTEGER (0..1023), + cqi-FormatIndicatorPeriodic CHOICE { + widebandCQI NULL, + subbandCQI SEQUENCE { + k INTEGER (1..4) + } + }, + ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR + simultaneousAckNackAndCQI BOOLEAN + } +} + +CQI-ReportPeriodic-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-PUCCH-ResourceIndex-r10 INTEGER (0..1184), + cqi-PUCCH-ResourceIndexP1-r10 INTEGER (0..1184) OPTIONAL, -- Need OR + cqi-pmi-ConfigIndex INTEGER (0..1023), + cqi-FormatIndicatorPeriodic-r10 CHOICE { + widebandCQI-r10 SEQUENCE { + csi-ReportMode-r10 ENUMERATED {submode1, submode2} OPTIONAL -- Need OR + }, + subbandCQI-r10 SEQUENCE { + k INTEGER (1..4), + periodicityFactor-r10 ENUMERATED {n2, n4} + } + }, + ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR + simultaneousAckNackAndCQI BOOLEAN, + cqi-Mask-r9 ENUMERATED {setup} OPTIONAL, -- Need OR + csi-ConfigIndex-r10 CHOICE { + release NULL, + setup SEQUENCE { + cqi-pmi-ConfigIndex2-r10 INTEGER (0..1023), + ri-ConfigIndex2-r10 INTEGER (0..1023) OPTIONAL -- Need OR + } + } OPTIONAL -- Need ON + } +} + +CQI-ReportPeriodic-v1130 ::= SEQUENCE { + simultaneousAckNackAndCQI-Format3-r11 ENUMERATED {setup} OPTIONAL, -- Need OR + cqi-ReportPeriodicProcExtToReleaseList-r11 CQI-ReportPeriodicProcExtToReleaseList-r11 OPTIONAL, -- Need ON + cqi-ReportPeriodicProcExtToAddModList-r11 CQI-ReportPeriodicProcExtToAddModList-r11 OPTIONAL -- Need ON +} + +CQI-ReportPeriodicProcExtToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCQI-ProcExt-r11)) OF CQI-ReportPeriodicProcExt-r11 + +CQI-ReportPeriodicProcExtToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCQI-ProcExt-r11)) OF CQI-ReportPeriodicProcExtId-r11 + +CQI-ReportPeriodicProcExt-r11 ::= SEQUENCE { + cqi-ReportPeriodicProcExtId-r11 CQI-ReportPeriodicProcExtId-r11, + cqi-pmi-ConfigIndex-r11 INTEGER (0..1023), + cqi-FormatIndicatorPeriodic-r11 CHOICE { + widebandCQI-r11 SEQUENCE { + csi-ReportMode-r11 ENUMERATED {submode1, submode2} OPTIONAL -- Need OR + }, + subbandCQI-r11 SEQUENCE { + k INTEGER (1..4), + periodicityFactor-r11 ENUMERATED {n2, n4} + } + }, + ri-ConfigIndex-r11 INTEGER (0..1023) OPTIONAL, -- Need OR + csi-ConfigIndex-r11 CHOICE { + release NULL, + setup SEQUENCE { + cqi-pmi-ConfigIndex2-r11 INTEGER (0..1023), + ri-ConfigIndex2-r11 INTEGER (0..1023) OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + ... +} + +CQI-ReportAperiodic-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-ReportModeAperiodic-r10 CQI-ReportModeAperiodic, + aperiodicCSI-Trigger-r10 SEQUENCE { + trigger1-r10 BIT STRING (SIZE (8)), + trigger2-r10 BIT STRING (SIZE (8)) + } OPTIONAL -- Need OR + } +} + +CQI-ReportAperiodicProc-r11 ::= SEQUENCE { + cqi-ReportModeAperiodic-r11 CQI-ReportModeAperiodic, + trigger01-r11 BOOLEAN, + trigger10-r11 BOOLEAN, + trigger11-r11 BOOLEAN +} + +CQI-ReportModeAperiodic ::= ENUMERATED { + rm12, rm20, rm22, rm30, rm31, + spare3, spare2, spare1 +} + +CQI-ReportBoth-r11 ::= SEQUENCE { + csi-IM-ConfigToReleaseList-r11 CSI-IM-ConfigToReleaseList-r11 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModList-r11 CSI-IM-ConfigToAddModList-r11 OPTIONAL, -- Need ON + csi-ProcessToReleaseList-r11 CSI-ProcessToReleaseList-r11 OPTIONAL, -- Need ON + csi-ProcessToAddModList-r11 CSI-ProcessToAddModList-r11 OPTIONAL -- Need ON +} + +CSI-IM-ConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-Config-r11 + +CSI-IM-ConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-ConfigId-r11 + +CSI-ProcessToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF CSI-Process-r11 + +CSI-ProcessToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF CSI-ProcessId-r11 + +CQI-ReportBothProc-r11 ::= SEQUENCE { + ri-Ref-CSI-ProcessId-r11 CSI-ProcessId-r11 OPTIONAL, -- Need OR + pmi-RI-Report-r11 ENUMERATED {setup} OPTIONAL -- Need OR +} + + +CQI-ReportPeriodicProcExtId-r11 ::= INTEGER (1..maxCQI-ProcExt-r11) + + +CrossCarrierSchedulingConfig-r10 ::= SEQUENCE { + schedulingCellInfo-r10 CHOICE { + own-r10 SEQUENCE { -- No cross carrier scheduling + cif-Presence-r10 BOOLEAN + }, + other-r10 SEQUENCE { -- Cross carrier scheduling + schedulingCellId-r10 ServCellIndex-r10, + pdsch-Start-r10 INTEGER (1..4) + } + } +} + + +CSI-IM-Config-r11 ::= SEQUENCE { + csi-IM-ConfigId-r11 CSI-IM-ConfigId-r11, + resourceConfig-r11 INTEGER (0..31), + subframeConfig-r11 INTEGER (0..154), + ... +} + + +CSI-IM-ConfigId-r11 ::= INTEGER (1..maxCSI-IM-r11) + + +CSI-Process-r11 ::= SEQUENCE { + csi-ProcessId-r11 CSI-ProcessId-r11, + csi-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11, + csi-IM-ConfigId-r11 CSI-IM-ConfigId-r11, + p-C-AndCBSRList-r11 SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r11, + cqi-ReportBothProc-r11 CQI-ReportBothProc-r11 OPTIONAL, -- Need OR + cqi-ReportPeriodicProcId-r11 INTEGER (0..maxCQI-ProcExt-r11) OPTIONAL, -- Need OR + cqi-ReportAperiodicProc-r11 CQI-ReportAperiodicProc-r11 OPTIONAL, -- Need OR + ... +} + +P-C-AndCBSR-r11 ::= SEQUENCE { + p-C-r11 INTEGER (-8..15), + codebookSubsetRestriction-r11 BIT STRING +} + + +CSI-ProcessId-r11 ::= INTEGER (1..maxCSI-Proc-r11) + + +CSI-RS-Config-r10 ::= SEQUENCE { + csi-RS-r10 CHOICE { + release NULL, + setup SEQUENCE { + antennaPortsCount-r10 ENUMERATED {an1, an2, an4, an8}, + resourceConfig-r10 INTEGER (0..31), + subframeConfig-r10 INTEGER (0..154), + p-C-r10 INTEGER (-8..15) + } + } OPTIONAL, -- Need ON + zeroTxPowerCSI-RS-r10 CHOICE { + release NULL, + setup SEQUENCE { + zeroTxPowerResourceConfigList-r10 BIT STRING (SIZE (16)), + zeroTxPowerSubframeConfig-r10 INTEGER (0..154) + } + } OPTIONAL -- Need ON +} + + +CSI-RS-ConfigNZP-r11 ::= SEQUENCE { + csi-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11, + antennaPortsCount-r11 ENUMERATED {an1, an2, an4, an8}, + resourceConfig-r11 INTEGER (0..31), + subframeConfig-r11 INTEGER (0..154), + scramblingIdentity-r11 INTEGER (0..503), + qcl-CRS-Info-r11 SEQUENCE { + qcl-ScramblingIdentity-r11 INTEGER (0..503), + crs-PortsCount-r11 ENUMERATED {n1, n2, n4, spare1}, + mbsfn-SubframeConfigList-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList MBSFN-SubframeConfigList + } + } OPTIONAL -- Need ON + } OPTIONAL, -- Need OR + ... +} + + +CSI-RS-ConfigNZPId-r11 ::= INTEGER (1..maxCSI-RS-NZP-r11) + + +CSI-RS-ConfigZP-r11 ::= SEQUENCE { + csi-RS-ConfigZPId-r11 CSI-RS-ConfigZPId-r11, + resourceConfigList-r11 BIT STRING (SIZE (16)), + subframeConfig-r11 INTEGER (0..154), + ... +} + + +CSI-RS-ConfigZPId-r11 ::= INTEGER (1..maxCSI-RS-ZP-r11) + + +DMRS-Config-r11 ::= CHOICE { + release NULL, + setup SEQUENCE { + scramblingIdentity-r11 INTEGER (0..503), + scramblingIdentity2-r11 INTEGER (0..503) + } +} + + +DRB-Identity ::= INTEGER (1..32) + + +EPDCCH-Config-r11 ::= SEQUENCE{ + config-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframePatternConfig-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframePattern-r11 MeasSubframePattern-r10 + } + } OPTIONAL, -- Need ON + startSymbol-r11 INTEGER (1..4) OPTIONAL, -- Need OP + setConfigToReleaseList-r11 EPDCCH-SetConfigToReleaseList-r11 OPTIONAL, -- Need ON + setConfigToAddModList-r11 EPDCCH-SetConfigToAddModList-r11 OPTIONAL -- Need ON + } + } +} + +EPDCCH-SetConfigToAddModList-r11 ::= SEQUENCE (SIZE(1..maxEPDCCH-Set-r11)) OF EPDCCH-SetConfig-r11 + +EPDCCH-SetConfigToReleaseList-r11 ::= SEQUENCE (SIZE(1..maxEPDCCH-Set-r11)) OF EPDCCH-SetConfigId-r11 + +EPDCCH-SetConfig-r11 ::= SEQUENCE { + setConfigId-r11 EPDCCH-SetConfigId-r11, + transmissionType-r11 ENUMERATED {localised, distributed}, + resourceBlockAssignment-r11 SEQUENCE{ + numberPRB-Pairs-r11 ENUMERATED {n2, n4, n8}, + resourceBlockAssignment-r11 BIT STRING (SIZE(4..38)) + }, + dmrs-ScramblingSequenceInt-r11 INTEGER (0..503), + pucch-ResourceStartOffset-r11 INTEGER (0..2047), + re-MappingQCL-ConfigId-r11 PDSCH-RE-MappingQCL-ConfigId-r11 OPTIONAL, -- Need OR + ... +} + +EPDCCH-SetConfigId-r11 ::= INTEGER (0..1) + + +LogicalChannelConfig ::= SEQUENCE { + ul-SpecificParameters SEQUENCE { + priority INTEGER (1..16), + prioritisedBitRate ENUMERATED { + kBps0, kBps8, kBps16, kBps32, kBps64, kBps128, + kBps256, infinity, kBps512-v1020, kBps1024-v1020, + kBps2048-v1020, spare5, spare4, spare3, spare2, + spare1}, + bucketSizeDuration ENUMERATED { + ms50, ms100, ms150, ms300, ms500, ms1000, spare2, + spare1}, + logicalChannelGroup INTEGER (0..3) OPTIONAL -- Need OR + } OPTIONAL, -- Cond UL + ..., + [[ logicalChannelSR-Mask-r9 ENUMERATED {setup} OPTIONAL -- Cond SRmask + ]] +} + + +MAC-MainConfig ::= SEQUENCE { + ul-SCH-Config SEQUENCE { + maxHARQ-Tx ENUMERATED { + n1, n2, n3, n4, n5, n6, n7, n8, + n10, n12, n16, n20, n24, n28, + spare2, spare1} OPTIONAL, -- Need ON + periodicBSR-Timer ENUMERATED { + sf5, sf10, sf16, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, sf1280, sf2560, + infinity, spare1} OPTIONAL, -- Need ON + retxBSR-Timer ENUMERATED { + sf320, sf640, sf1280, sf2560, sf5120, + sf10240, spare2, spare1}, + ttiBundling BOOLEAN + } OPTIONAL, -- Need ON + drx-Config DRX-Config OPTIONAL, -- Need ON + timeAlignmentTimerDedicated TimeAlignmentTimer, + phr-Config CHOICE { + release NULL, + setup SEQUENCE { + periodicPHR-Timer ENUMERATED {sf10, sf20, sf50, sf100, sf200, + sf500, sf1000, infinity}, + prohibitPHR-Timer ENUMERATED {sf0, sf10, sf20, sf50, sf100, + sf200, sf500, sf1000}, + dl-PathlossChange ENUMERATED {dB1, dB3, dB6, infinity} + } + } OPTIONAL, -- Need ON + ..., + [[ sr-ProhibitTimer-r9 INTEGER (0..7) OPTIONAL -- Need ON + ]], + [[ mac-MainConfig-v1020 SEQUENCE { + sCellDeactivationTimer-r10 ENUMERATED { + rf2, rf4, rf8, rf16, rf32, rf64, rf128, + spare} OPTIONAL, -- Need OP + extendedBSR-Sizes-r10 ENUMERATED {setup} OPTIONAL, -- Need OR + extendedPHR-r10 ENUMERATED {setup} OPTIONAL -- Need OR + } OPTIONAL -- Need ON + ]], + [[ stag-ToReleaseList-r11 STAG-ToReleaseList-r11 OPTIONAL, -- Need ON + stag-ToAddModList-r11 STAG-ToAddModList-r11 OPTIONAL, -- Need ON + drx-Config-v1130 DRX-Config-v1130 OPTIONAL -- Need ON + ]] +} + +MAC-MainConfigSCell-r11 ::= SEQUENCE { + stag-Id-r11 STAG-Id-r11 OPTIONAL, -- Need OP + ... +} + +DRX-Config ::= CHOICE { + release NULL, + setup SEQUENCE { + onDurationTimer ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200}, + drx-InactivityTimer ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200, psf300, psf500, psf750, + psf1280, psf1920, psf2560, psf0-v1020, + spare9, spare8, spare7, spare6, + spare5, spare4, spare3, spare2, + spare1}, + drx-RetransmissionTimer ENUMERATED { + psf1, psf2, psf4, psf6, psf8, psf16, + psf24, psf33}, + longDRX-CycleStartOffset CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf1280 INTEGER(0..1279), + sf2048 INTEGER(0..2047), + sf2560 INTEGER(0..2559) + }, + shortDRX SEQUENCE { + shortDRX-Cycle ENUMERATED { + sf2, sf5, sf8, sf10, sf16, sf20, + sf32, sf40, sf64, sf80, sf128, sf160, + sf256, sf320, sf512, sf640}, + drxShortCycleTimer INTEGER (1..16) + } OPTIONAL -- Need OR + } +} + +DRX-Config-v1130 ::= SEQUENCE { + drx-RetransmissionTimer-v1130 ENUMERATED {psf0-v1130} OPTIONAL, --Need OR + longDRX-CycleStartOffset-v1130 CHOICE { + sf60-v1130 INTEGER(0..59), + sf70-v1130 INTEGER(0..69) + } OPTIONAL, --Need OR + shortDRX-Cycle-v1130 ENUMERATED {sf4-v1130} OPTIONAL --Need OR +} + +STAG-ToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-Id-r11 + +STAG-ToAddModList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-ToAddMod-r11 + +STAG-ToAddMod-r11 ::= SEQUENCE { + stag-Id-r11 STAG-Id-r11, + timeAlignmentTimerSTAG-r11 TimeAlignmentTimer, + ... +} + +STAG-Id-r11::= INTEGER (1..maxSTAG-r11) + + +PDCP-Config ::= SEQUENCE { + discardTimer ENUMERATED { + ms50, ms100, ms150, ms300, ms500, + ms750, ms1500, infinity + } OPTIONAL, -- Cond Setup + rlc-AM SEQUENCE { + statusReportRequired BOOLEAN + } OPTIONAL, -- Cond Rlc-AM + rlc-UM SEQUENCE { + pdcp-SN-Size ENUMERATED {len7bits, len12bits} + } OPTIONAL, -- Cond Rlc-UM + headerCompression CHOICE { + notUsed NULL, + rohc SEQUENCE { + maxCID INTEGER (1..16383) DEFAULT 15, + profiles SEQUENCE { + profile0x0001 BOOLEAN, + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0101 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + ... + } + }, + ..., + [[ rn-IntegrityProtection-r10 ENUMERATED {enabled} OPTIONAL -- Cond RN + ]], + [[ pdcp-SN-Size-v1130 ENUMERATED {len15bits} OPTIONAL -- Cond Rlc-AM2 + ]] +} + + +PDSCH-ConfigCommon ::= SEQUENCE { + referenceSignalPower INTEGER (-60..50), + p-b INTEGER (0..3) +} + +PDSCH-ConfigDedicated::= SEQUENCE { + p-a ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} +} + +PDSCH-ConfigDedicated-v1130 ::= SEQUENCE { + dmrs-ConfigPDSCH-r11 DMRS-Config-r11 OPTIONAL, -- Need ON + qcl-Operation ENUMERATED {typeA, typeB} OPTIONAL, -- Need OR + re-MappingQCLConfigToReleaseList-r11 RE-MappingQCLConfigToReleaseList-r11 OPTIONAL, -- Need ON + re-MappingQCLConfigToAddModList-r11 RE-MappingQCLConfigToAddModList-r11 OPTIONAL -- Need ON +} + +RE-MappingQCLConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxRE-MapQCL-r11)) OF PDSCH-RE-MappingQCL-Config-r11 + +RE-MappingQCLConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxRE-MapQCL-r11)) OF PDSCH-RE-MappingQCL-ConfigId-r11 + +PDSCH-RE-MappingQCL-Config-r11 ::= SEQUENCE { + pdsch-RE-MappingQCL-ConfigId-r11 PDSCH-RE-MappingQCL-ConfigId-r11, + optionalSetOfFields-r11 SEQUENCE { + crs-PortsCount-r11 ENUMERATED {n1, n2, n4, spare1}, + crs-FreqShift-r11 INTEGER (0..5), + mbsfn-SubframeConfigList-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList MBSFN-SubframeConfigList + } + } OPTIONAL, -- Need ON + pdsch-Start-r11 ENUMERATED {reserved, n1, n2, n3, n4, assigned} + } OPTIONAL, -- Need OP + csi-RS-ConfigZPId-r11 CSI-RS-ConfigZPId-r11, + qcl-CSI-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11 OPTIONAL, -- Need OR + ... +} + + +PDSCH-RE-MappingQCL-ConfigId-r11 ::= INTEGER (1..maxRE-MapQCL-r11) + + +PHICH-Config ::= SEQUENCE { + phich-Duration ENUMERATED {normal, extended}, + phich-Resource ENUMERATED {oneSixth, half, one, two} +} + + +PhysicalConfigDedicated ::= SEQUENCE { + pdsch-ConfigDedicated PDSCH-ConfigDedicated OPTIONAL, -- Need ON + pucch-ConfigDedicated PUCCH-ConfigDedicated OPTIONAL, -- Need ON + pusch-ConfigDedicated PUSCH-ConfigDedicated OPTIONAL, -- Need ON + uplinkPowerControlDedicated UplinkPowerControlDedicated OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUCCH TPC-PDCCH-Config OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUSCH TPC-PDCCH-Config OPTIONAL, -- Need ON + cqi-ReportConfig CQI-ReportConfig OPTIONAL, -- Cond CQI-r8 + soundingRS-UL-ConfigDedicated SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON + antennaInfo CHOICE { + explicitValue AntennaInfoDedicated, + defaultValue NULL + } OPTIONAL, -- Cond AI-r8 + schedulingRequestConfig SchedulingRequestConfig OPTIONAL, -- Need ON + ..., + [[ cqi-ReportConfig-v920 CQI-ReportConfig-v920 OPTIONAL, -- Cond CQI-r8 + antennaInfo-v920 AntennaInfoDedicated-v920 OPTIONAL -- Cond AI-r8 + ]], + [[ antennaInfo-r10 CHOICE { + explicitValue-r10 AntennaInfoDedicated-r10, + defaultValue NULL + } OPTIONAL, -- Cond AI-r10 + antennaInfoUL-r10 AntennaInfoUL-r10 OPTIONAL, -- Need ON + cif-Presence-r10 BOOLEAN OPTIONAL, -- Need ON + cqi-ReportConfig-r10 CQI-ReportConfig-r10 OPTIONAL, -- Cond CQI-r10 + csi-RS-Config-r10 CSI-RS-Config-r10 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1020 PUCCH-ConfigDedicated-v1020 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1020 PUSCH-ConfigDedicated-v1020 OPTIONAL, -- Need ON + schedulingRequestConfig-v1020 SchedulingRequestConfig-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1020 + SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-r10 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1020 UplinkPowerControlDedicated-v1020 OPTIONAL -- Need ON + ]], + [[ additionalSpectrumEmissionCA-r10 CHOICE { + release NULL, + setup SEQUENCE { + additionalSpectrumEmissionPCell-r10 AdditionalSpectrumEmission + } + } OPTIONAL -- Need ON + ]], + [[ -- DL configuration as well as configuration applicable for DL and UL + csi-RS-ConfigNZPToReleaseList-r11 CSI-RS-ConfigNZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModList-r11 CSI-RS-ConfigNZPToAddModList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToReleaseList-r11 CSI-RS-ConfigZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToAddModList-r11 CSI-RS-ConfigZPToAddModList-r11 OPTIONAL, -- Need ON + epdcch-Config-r11 EPDCCH-Config-r11 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1130 PDSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + -- UL configuration + cqi-ReportConfig-v1130 CQI-ReportConfig-v1130 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1130 PUCCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1130 PUSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1130 UplinkPowerControlDedicated-v1130 OPTIONAL -- Need ON + ]] +} + +PhysicalConfigDedicatedSCell-r10 ::= SEQUENCE { + -- DL configuration as well as configuration applicable for DL and UL + nonUL-Configuration-r10 SEQUENCE { + antennaInfo-r10 AntennaInfoDedicated-r10 OPTIONAL, -- Need ON + crossCarrierSchedulingConfig-r10 CrossCarrierSchedulingConfig-r10 OPTIONAL, -- Need ON + csi-RS-Config-r10 CSI-RS-Config-r10 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-r10 PDSCH-ConfigDedicated OPTIONAL -- Need ON + } OPTIONAL, -- Cond SCellAdd + -- UL configuration + ul-Configuration-r10 SEQUENCE { + antennaInfoUL-r10 AntennaInfoUL-r10 OPTIONAL, -- Need ON + pusch-ConfigDedicatedSCell-r10 PUSCH-ConfigDedicatedSCell-r10 OPTIONAL, -- Need ON + uplinkPowerControlDedicatedSCell-r10 UplinkPowerControlDedicatedSCell-r10 OPTIONAL, -- Need ON + cqi-ReportConfigSCell-r10 CQI-ReportConfigSCell-r10 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-r10 SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1020 + SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-r10 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL -- Need ON + } OPTIONAL, -- Cond CommonUL + ..., + [[ -- DL configuration as well as configuration applicable for DL and UL + csi-RS-ConfigNZPToReleaseList-r11 CSI-RS-ConfigNZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModList-r11 CSI-RS-ConfigNZPToAddModList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToReleaseList-r11 CSI-RS-ConfigZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToAddModList-r11 CSI-RS-ConfigZPToAddModList-r11 OPTIONAL, -- Need ON + epdcch-Config-r11 EPDCCH-Config-r11 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1130 PDSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + -- UL configuration + cqi-ReportConfig-v1130 CQI-ReportConfig-v1130 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1130 PUSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + uplinkPowerControlDedicatedSCell-v1130 UplinkPowerControlDedicated-v1130 OPTIONAL -- Need ON + ]] +} + +CSI-RS-ConfigNZPToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r11)) OF CSI-RS-ConfigNZP-r11 + +CSI-RS-ConfigNZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r11)) OF CSI-RS-ConfigNZPId-r11 + +CSI-RS-ConfigZPToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZP-r11 + +CSI-RS-ConfigZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZPId-r11 + + +P-Max ::= INTEGER (-30..33) + + +PRACH-ConfigSIB ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + prach-ConfigInfo PRACH-ConfigInfo +} + +PRACH-Config ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + prach-ConfigInfo PRACH-ConfigInfo OPTIONAL -- Need ON +} + +PRACH-ConfigSCell-r10 ::= SEQUENCE { + prach-ConfigIndex-r10 INTEGER (0..63) +} + +PRACH-ConfigInfo ::= SEQUENCE { + prach-ConfigIndex INTEGER (0..63), + highSpeedFlag BOOLEAN, + zeroCorrelationZoneConfig INTEGER (0..15), + prach-FreqOffset INTEGER (0..94) +} + + +PresenceAntennaPort1 ::= BOOLEAN + + +PUCCH-ConfigCommon ::= SEQUENCE { + deltaPUCCH-Shift ENUMERATED {ds1, ds2, ds3}, + nRB-CQI INTEGER (0..98), + nCS-AN INTEGER (0..7), + n1PUCCH-AN INTEGER (0..2047) +} + +PUCCH-ConfigDedicated ::= SEQUENCE { + ackNackRepetition CHOICE{ + release NULL, + setup SEQUENCE { + repetitionFactor ENUMERATED {n2, n4, n6, spare1}, + n1PUCCH-AN-Rep INTEGER (0..2047) + } + }, + tdd-AckNackFeedbackMode ENUMERATED {bundling, multiplexing} OPTIONAL -- Cond TDD +} + +PUCCH-ConfigDedicated-v1020 ::= SEQUENCE { + pucch-Format-r10 CHOICE { + format3-r10 SEQUENCE { + n3PUCCH-AN-List-r10 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) OPTIONAL, -- Need ON + twoAntennaPortActivatedPUCCH-Format3-r10 CHOICE { + release NULL, + setup SEQUENCE { + n3PUCCH-AN-ListP1-r10 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) + } + } OPTIONAL -- Need ON + }, + channelSelection-r10 SEQUENCE { + n1PUCCH-AN-CS-r10 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-List-r10 SEQUENCE (SIZE (1..2)) OF N1PUCCH-AN-CS-r10 + } + } OPTIONAL -- Need ON + } + } OPTIONAL, -- Need OR + twoAntennaPortActivatedPUCCH-Format1a1b-r10 ENUMERATED {true} OPTIONAL, -- Need OR + simultaneousPUCCH-PUSCH-r10 ENUMERATED {true} OPTIONAL, -- Need OR + n1PUCCH-AN-RepP1-r10 INTEGER (0..2047) OPTIONAL -- Need OR +} + +PUCCH-ConfigDedicated-v1130 ::= SEQUENCE { + n1PUCCH-AN-CS-v1130 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-ListP1-r11 SEQUENCE (SIZE (2..4)) OF INTEGER (0..2047) + } + } OPTIONAL, -- Need ON + nPUCCH-Param-r11 CHOICE { + release NULL, + setup SEQUENCE { + nPUCCH-Identity-r11 INTEGER (0..503), + n1PUCCH-AN-r11 INTEGER (0..2047) + } + } OPTIONAL -- Need ON +} + +N1PUCCH-AN-CS-r10 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + + +PUSCH-ConfigCommon ::= SEQUENCE { + pusch-ConfigBasic SEQUENCE { + n-SB INTEGER (1..4), + hoppingMode ENUMERATED {interSubFrame, intraAndInterSubFrame}, + pusch-HoppingOffset INTEGER (0..98), + enable64QAM BOOLEAN + }, + ul-ReferenceSignalsPUSCH UL-ReferenceSignalsPUSCH +} + +PUSCH-ConfigDedicated ::= SEQUENCE { + betaOffset-ACK-Index INTEGER (0..15), + betaOffset-RI-Index INTEGER (0..15), + betaOffset-CQI-Index INTEGER (0..15) +} + +PUSCH-ConfigDedicated-v1020 ::= SEQUENCE { + betaOffsetMC-r10 SEQUENCE { + betaOffset-ACK-Index-MC-r10 INTEGER (0..15), + betaOffset-RI-Index-MC-r10 INTEGER (0..15), + betaOffset-CQI-Index-MC-r10 INTEGER (0..15) + } OPTIONAL, -- Need OR + groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicated-v1130 ::= SEQUENCE { + pusch-DMRS-r11 CHOICE { + release NULL, + setup SEQUENCE { + nPUSCH-Identity-r11 INTEGER (0..509), + nDMRS-CSH-Identity-r11 INTEGER (0..509) + } + } +} + +PUSCH-ConfigDedicatedSCell-r10 ::= SEQUENCE { + groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR +} + +UL-ReferenceSignalsPUSCH ::= SEQUENCE { + groupHoppingEnabled BOOLEAN, + groupAssignmentPUSCH INTEGER (0..29), + sequenceHoppingEnabled BOOLEAN, + cyclicShift INTEGER (0..7) +} + + +RACH-ConfigCommon ::= SEQUENCE { + preambleInfo SEQUENCE { + numberOfRA-Preambles ENUMERATED { + n4, n8, n12, n16 ,n20, n24, n28, + n32, n36, n40, n44, n48, n52, n56, + n60, n64}, + preamblesGroupAConfig SEQUENCE { + sizeOfRA-PreamblesGroupA ENUMERATED { + n4, n8, n12, n16 ,n20, n24, n28, + n32, n36, n40, n44, n48, n52, n56, + n60}, + messageSizeGroupA ENUMERATED {b56, b144, b208, b256}, + messagePowerOffsetGroupB ENUMERATED { + minusinfinity, dB0, dB5, dB8, dB10, dB12, + dB15, dB18}, + ... + } OPTIONAL -- Need OP + }, + powerRampingParameters PowerRampingParameters, + ra-SupervisionInfo SEQUENCE { + preambleTransMax PreambleTransMax, + ra-ResponseWindowSize ENUMERATED { + sf2, sf3, sf4, sf5, sf6, sf7, + sf8, sf10}, + mac-ContentionResolutionTimer ENUMERATED { + sf8, sf16, sf24, sf32, sf40, sf48, + sf56, sf64} + }, + maxHARQ-Msg3Tx INTEGER (1..8), + ... +} + +RACH-ConfigCommonSCell-r11 ::= SEQUENCE { + powerRampingParameters-r11 PowerRampingParameters, + ra-SupervisionInfo-r11 SEQUENCE { + preambleTransMax-r11 PreambleTransMax + }, + ... +} + +PowerRampingParameters ::= SEQUENCE { + powerRampingStep ENUMERATED {dB0, dB2,dB4, dB6}, + preambleInitialReceivedTargetPower ENUMERATED { + dBm-120, dBm-118, dBm-116, dBm-114, dBm-112, + dBm-110, dBm-108, dBm-106, dBm-104, dBm-102, + dBm-100, dBm-98, dBm-96, dBm-94, + dBm-92, dBm-90} +} + +PreambleTransMax ::= ENUMERATED { + n3, n4, n5, n6, n7, n8, n10, n20, n50, + n100, n200} + + +RACH-ConfigDedicated ::= SEQUENCE { + ra-PreambleIndex INTEGER (0..63), + ra-PRACH-MaskIndex INTEGER (0..15) +} + + +RadioResourceConfigCommonSIB ::= SEQUENCE { + rach-ConfigCommon RACH-ConfigCommon, + bcch-Config BCCH-Config, + pcch-Config PCCH-Config, + prach-Config PRACH-ConfigSIB, + pdsch-ConfigCommon PDSCH-ConfigCommon, + pusch-ConfigCommon PUSCH-ConfigCommon, + pucch-ConfigCommon PUCCH-ConfigCommon, + soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon, + uplinkPowerControlCommon UplinkPowerControlCommon, + ul-CyclicPrefixLength UL-CyclicPrefixLength, + ..., + [[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need OR + ]] +} + +RadioResourceConfigCommon ::= SEQUENCE { + rach-ConfigCommon RACH-ConfigCommon OPTIONAL, -- Need ON + prach-Config PRACH-Config, + pdsch-ConfigCommon PDSCH-ConfigCommon OPTIONAL, -- Need ON + pusch-ConfigCommon PUSCH-ConfigCommon, + phich-Config PHICH-Config OPTIONAL, -- Need ON + pucch-ConfigCommon PUCCH-ConfigCommon OPTIONAL, -- Need ON + soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon OPTIONAL, -- Need ON + uplinkPowerControlCommon UplinkPowerControlCommon OPTIONAL, -- Need ON + antennaInfoCommon AntennaInfoCommon OPTIONAL, -- Need ON + p-Max P-Max OPTIONAL, -- Need OP + tdd-Config TDD-Config OPTIONAL, -- Cond TDD + ul-CyclicPrefixLength UL-CyclicPrefixLength, + ..., + [[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need ON + ]], + [[ tdd-Config-v1130 TDD-Config-v1130 OPTIONAL -- Cond TDD3 + ]] +} + +RadioResourceConfigCommonSCell-r10 ::= SEQUENCE { + -- DL configuration as well as configuration applicable for DL and UL + nonUL-Configuration-r10 SEQUENCE { + -- 1: Cell characteristics + dl-Bandwidth-r10 ENUMERATED {n6, n15, n25, n50, n75, n100}, + -- 2: Physical configuration, general + antennaInfoCommon-r10 AntennaInfoCommon, + mbsfn-SubframeConfigList-r10 MBSFN-SubframeConfigList OPTIONAL, -- Need OR + -- 3: Physical configuration, control + phich-Config-r10 PHICH-Config, + -- 4: Physical configuration, physical channels + pdsch-ConfigCommon-r10 PDSCH-ConfigCommon, + tdd-Config-r10 TDD-Config OPTIONAL -- Cond TDDSCell + }, + -- UL configuration + ul-Configuration-r10 SEQUENCE { + ul-FreqInfo-r10 SEQUENCE { + ul-CarrierFreq-r10 ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth-r10 ENUMERATED {n6, n15, + n25, n50, n75, n100} OPTIONAL, -- Need OP + additionalSpectrumEmissionSCell-r10 AdditionalSpectrumEmission + }, + p-Max-r10 P-Max OPTIONAL, -- Need OP + uplinkPowerControlCommonSCell-r10 UplinkPowerControlCommonSCell-r10, + -- A special version of IE UplinkPowerControlCommon may be introduced + -- 3: Physical configuration, control + soundingRS-UL-ConfigCommon-r10 SoundingRS-UL-ConfigCommon, + ul-CyclicPrefixLength-r10 UL-CyclicPrefixLength, + -- 4: Physical configuration, physical channels + prach-ConfigSCell-r10 PRACH-ConfigSCell-r10 OPTIONAL, -- Cond TDD-OR-NoR11 + pusch-ConfigCommon-r10 PUSCH-ConfigCommon + } OPTIONAL, -- Need OR + ..., + [[ ul-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Need OP + ]], + [[ rach-ConfigCommonSCell-r11 RACH-ConfigCommonSCell-r11 OPTIONAL, -- Cond UL + prach-ConfigSCell-r11 PRACH-Config OPTIONAL, -- Cond UL + tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD2 + uplinkPowerControlCommonSCell-v1130 + UplinkPowerControlCommonSCell-v1130 OPTIONAL -- Cond UL + ]] +} + +RadioResourceConfigCommonSCell-v10l0 ::= SEQUENCE { + -- UL configuration + ul-Configuration-v10l0 SEQUENCE { + additionalSpectrumEmissionSCell-v10l0 AdditionalSpectrumEmission-v10l0 + } +} + +BCCH-Config ::= SEQUENCE { + modificationPeriodCoeff ENUMERATED {n2, n4, n8, n16} +} + +PCCH-Config ::= SEQUENCE { + defaultPagingCycle ENUMERATED { + rf32, rf64, rf128, rf256}, + nB ENUMERATED { + fourT, twoT, oneT, halfT, quarterT, oneEighthT, + oneSixteenthT, oneThirtySecondT} +} + +UL-CyclicPrefixLength ::= ENUMERATED {len1, len2} + + +RadioResourceConfigDedicated ::= SEQUENCE { + srb-ToAddModList SRB-ToAddModList OPTIONAL, -- Cond HO-Conn + drb-ToAddModList DRB-ToAddModList OPTIONAL, -- Cond HO-toEUTRA + drb-ToReleaseList DRB-ToReleaseList OPTIONAL, -- Need ON + mac-MainConfig CHOICE { + explicitValue MAC-MainConfig, + defaultValue NULL + } OPTIONAL, -- Cond HO-toEUTRA2 + sps-Config SPS-Config OPTIONAL, -- Need ON + physicalConfigDedicated PhysicalConfigDedicated OPTIONAL, -- Need ON + ..., + [[ rlf-TimersAndConstants-r9 RLF-TimersAndConstants-r9 OPTIONAL -- Need ON + ]], + [[ measSubframePatternPCell-r10 MeasSubframePatternPCell-r10 OPTIONAL -- Need ON + ]], + [[ neighCellsCRS-Info-r11 NeighCellsCRS-Info-r11 OPTIONAL -- Need ON + ]] +} + +RadioResourceConfigDedicatedSCell-r10 ::= SEQUENCE { + -- UE specific configuration extensions applicable for an SCell + physicalConfigDedicatedSCell-r10 PhysicalConfigDedicatedSCell-r10 OPTIONAL, -- Need ON + ..., + [[ mac-MainConfigSCell-r11 MAC-MainConfigSCell-r11 OPTIONAL -- Cond SCellAdd + ]] +} + +SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod + +SRB-ToAddMod ::= SEQUENCE { + srb-Identity INTEGER (1..2), + rlc-Config CHOICE { + explicitValue RLC-Config, + defaultValue NULL + } OPTIONAL, -- Cond Setup + logicalChannelConfig CHOICE { + explicitValue LogicalChannelConfig, + defaultValue NULL + } OPTIONAL, -- Cond Setup + ... +} + +DRB-ToAddModList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod + +DRB-ToAddMod ::= SEQUENCE { + eps-BearerIdentity INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity DRB-Identity, + pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP + rlc-Config RLC-Config OPTIONAL, -- Cond Setup + logicalChannelIdentity INTEGER (3..10) OPTIONAL, -- Cond DRB-Setup + logicalChannelConfig LogicalChannelConfig OPTIONAL, -- Cond Setup + ... +} + +DRB-ToReleaseList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity + +MeasSubframePatternPCell-r10 ::= CHOICE { + release NULL, + setup MeasSubframePattern-r10 +} + +NeighCellsCRS-Info-r11 ::= CHOICE { + release NULL, + setup CRS-AssistanceInfoList-r11 +} + +CRS-AssistanceInfoList-r11 ::= SEQUENCE (SIZE (1..maxCellReport)) OF CRS-AssistanceInfo-r11 + +CRS-AssistanceInfo-r11 ::= SEQUENCE { + physCellId-r11 PhysCellId, + antennaPortsCount-r11 ENUMERATED {an1, an2, an4, spare1}, + mbsfn-SubframeConfigList-r11 MBSFN-SubframeConfigList, + ... +} + + +RLC-Config ::= CHOICE { + am SEQUENCE { + ul-AM-RLC UL-AM-RLC, + dl-AM-RLC DL-AM-RLC + }, + um-Bi-Directional SEQUENCE { + ul-UM-RLC UL-UM-RLC, + dl-UM-RLC DL-UM-RLC + }, + um-Uni-Directional-UL SEQUENCE { + ul-UM-RLC UL-UM-RLC + }, + um-Uni-Directional-DL SEQUENCE { + dl-UM-RLC DL-UM-RLC + }, + ... +} + +UL-AM-RLC ::= SEQUENCE { + t-PollRetransmit T-PollRetransmit, + pollPDU PollPDU, + pollByte PollByte, + maxRetxThreshold ENUMERATED { + t1, t2, t3, t4, t6, t8, t16, t32} +} + +DL-AM-RLC ::= SEQUENCE { + t-Reordering T-Reordering, + t-StatusProhibit T-StatusProhibit +} + +UL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength +} + +DL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength, + t-Reordering T-Reordering +} + +SN-FieldLength ::= ENUMERATED {size5, size10} + +T-PollRetransmit ::= ENUMERATED { + ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, spare9, spare8, + spare7, spare6, spare5, spare4, spare3, + spare2, spare1} + +PollPDU ::= ENUMERATED { + p4, p8, p16, p32, p64, p128, p256, pInfinity} + +PollByte ::= ENUMERATED { + kB25, kB50, kB75, kB100, kB125, kB250, kB375, + kB500, kB750, kB1000, kB1250, kB1500, kB2000, + kB3000, kBinfinity, spare1} + +T-Reordering ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms110, + ms120, ms130, ms140, ms150, ms160, ms170, + ms180, ms190, ms200, spare1} + +T-StatusProhibit ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, spare8, spare7, + spare6, spare5, spare4, spare3, spare2, + spare1} + + +RLF-TimersAndConstants-r9 ::= CHOICE { + release NULL, + setup SEQUENCE { + t301-r9 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t310-r9 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n310-r9 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311-r9 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311-r9 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ... + } +} + + +RN-SubframeConfig-r10 ::= SEQUENCE { + subframeConfigPattern-r10 CHOICE { + subframeConfigPatternFDD-r10 BIT STRING (SIZE(8)), + subframeConfigPatternTDD-r10 INTEGER (0..31) + } OPTIONAL, -- Need ON + rpdcch-Config-r10 SEQUENCE { + resourceAllocationType-r10 ENUMERATED {type0, type1, type2Localized, type2Distributed, + spare4, spare3, spare2, spare1}, + resourceBlockAssignment-r10 CHOICE { + type01-r10 CHOICE { + nrb6-r10 BIT STRING (SIZE(6)), + nrb15-r10 BIT STRING (SIZE(8)), + nrb25-r10 BIT STRING (SIZE(13)), + nrb50-r10 BIT STRING (SIZE(17)), + nrb75-r10 BIT STRING (SIZE(19)), + nrb100-r10 BIT STRING (SIZE(25)) + }, + type2-r10 CHOICE { + nrb6-r10 BIT STRING (SIZE(5)), + nrb15-r10 BIT STRING (SIZE(7)), + nrb25-r10 BIT STRING (SIZE(9)), + nrb50-r10 BIT STRING (SIZE(11)), + nrb75-r10 BIT STRING (SIZE(12)), + nrb100-r10 BIT STRING (SIZE(13)) + }, + ... + }, + demodulationRS-r10 CHOICE { + interleaving-r10 ENUMERATED {crs}, + noInterleaving-r10 ENUMERATED {crs, dmrs} + }, + pdsch-Start-r10 INTEGER (1..3), + pucch-Config-r10 CHOICE { + tdd CHOICE { + channelSelectionMultiplexingBundling SEQUENCE { + n1PUCCH-AN-List-r10 SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + }, + fallbackForFormat3 SEQUENCE { + n1PUCCH-AN-P0-r10 INTEGER (0..2047), + n1PUCCH-AN-P1-r10 INTEGER (0..2047) OPTIONAL -- Need OR + } + }, + fdd SEQUENCE { + n1PUCCH-AN-P0-r10 INTEGER (0..2047), + n1PUCCH-AN-P1-r10 INTEGER (0..2047) OPTIONAL -- Need OR + } + }, + ... + } OPTIONAL, -- Need ON + ... +} + + +SchedulingRequestConfig ::= CHOICE { + release NULL, + setup SEQUENCE { + sr-PUCCH-ResourceIndex INTEGER (0..2047), + sr-ConfigIndex INTEGER (0..157), + dsr-TransMax ENUMERATED { + n4, n8, n16, n32, n64, spare3, spare2, spare1} + } +} + +SchedulingRequestConfig-v1020 ::= SEQUENCE { + sr-PUCCH-ResourceIndexP1-r10 INTEGER (0..2047) OPTIONAL -- Need OR +} + + +SoundingRS-UL-ConfigCommon ::= CHOICE { + release NULL, + setup SEQUENCE { + srs-BandwidthConfig ENUMERATED {bw0, bw1, bw2, bw3, bw4, bw5, bw6, bw7}, + srs-SubframeConfig ENUMERATED { + sc0, sc1, sc2, sc3, sc4, sc5, sc6, sc7, + sc8, sc9, sc10, sc11, sc12, sc13, sc14, sc15}, + ackNackSRS-SimultaneousTransmission BOOLEAN, + srs-MaxUpPts ENUMERATED {true} OPTIONAL -- Cond TDD + } +} + +SoundingRS-UL-ConfigDedicated ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-Bandwidth ENUMERATED {bw0, bw1, bw2, bw3}, + srs-HoppingBandwidth ENUMERATED {hbw0, hbw1, hbw2, hbw3}, + freqDomainPosition INTEGER (0..23), + duration BOOLEAN, + srs-ConfigIndex INTEGER (0..1023), + transmissionComb INTEGER (0..1), + cyclicShift ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7} + } +} + +SoundingRS-UL-ConfigDedicated-v1020 ::= SEQUENCE { + srs-AntennaPort-r10 SRS-AntennaPort +} + +SoundingRS-UL-ConfigDedicatedAperiodic-r10 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-ConfigIndexAp-r10 INTEGER (0..31), + srs-ConfigApDCI-Format4-r10 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-r10 OPTIONAL,--Need ON + srs-ActivateAp-r10 CHOICE { + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format0-r10 SRS-ConfigAp-r10, + srs-ConfigApDCI-Format1a2b2c-r10 SRS-ConfigAp-r10, + ... + } + } OPTIONAL -- Need ON + } +} + +SRS-ConfigAp-r10 ::= SEQUENCE { + srs-AntennaPortAp-r10 SRS-AntennaPort, + srs-BandwidthAp-r10 ENUMERATED {bw0, bw1, bw2, bw3}, + freqDomainPositionAp-r10 INTEGER (0..23), + transmissionCombAp-r10 INTEGER (0..1), + cyclicShiftAp-r10 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7} +} + +SRS-AntennaPort ::= ENUMERATED {an1, an2, an4, spare1} + + +SPS-Config ::= SEQUENCE { + semiPersistSchedC-RNTI C-RNTI OPTIONAL, -- Need OR + sps-ConfigDL SPS-ConfigDL OPTIONAL, -- Need ON + sps-ConfigUL SPS-ConfigUL OPTIONAL -- Need ON +} + +SPS-ConfigDL ::= CHOICE{ + release NULL, + setup SEQUENCE { + semiPersistSchedIntervalDL ENUMERATED { + sf10, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, spare6, + spare5, spare4, spare3, spare2, + spare1}, + numberOfConfSPS-Processes INTEGER (1..8), + n1PUCCH-AN-PersistentList N1PUCCH-AN-PersistentList, + ..., + [[ twoAntennaPortActivated-r10 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-PersistentListP1-r10 N1PUCCH-AN-PersistentList + } + } OPTIONAL -- Need ON + ]] + } +} + +SPS-ConfigUL ::= CHOICE { + release NULL, + setup SEQUENCE { + semiPersistSchedIntervalUL ENUMERATED { + sf10, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, spare6, + spare5, spare4, spare3, spare2, + spare1}, + implicitReleaseAfter ENUMERATED {e2, e3, e4, e8}, + p0-Persistent SEQUENCE { + p0-NominalPUSCH-Persistent INTEGER (-126..24), + p0-UE-PUSCH-Persistent INTEGER (-8..7) + } OPTIONAL, -- Need OP + twoIntervalsConfig ENUMERATED {true} OPTIONAL, -- Cond TDD + ... + } +} + +N1PUCCH-AN-PersistentList ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + + +TDD-Config ::= SEQUENCE { + subframeAssignment ENUMERATED { + sa0, sa1, sa2, sa3, sa4, sa5, sa6}, + specialSubframePatterns ENUMERATED { + ssp0, ssp1, ssp2, ssp3, ssp4,ssp5, ssp6, ssp7, + ssp8} +} + +TDD-Config-v1130 ::= SEQUENCE { + specialSubframePatterns-v1130 ENUMERATED {ssp7,ssp9} +} + + +TimeAlignmentTimer ::= ENUMERATED { + sf500, sf750, sf1280, sf1920, sf2560, sf5120, + sf10240, infinity} + +TPC-PDCCH-Config ::= CHOICE { + release NULL, + setup SEQUENCE { + tpc-RNTI BIT STRING (SIZE (16)), + tpc-Index TPC-Index + } +} + +TPC-Index ::= CHOICE { + indexOfFormat3 INTEGER (1..15), + indexOfFormat3A INTEGER (1..31) +} + + +UplinkPowerControlCommon ::= SEQUENCE { + p0-NominalPUSCH INTEGER (-126..24), + alpha ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1}, + p0-NominalPUCCH INTEGER (-127..-96), + deltaFList-PUCCH DeltaFList-PUCCH, + deltaPreambleMsg3 INTEGER (-1..6) +} + +UplinkPowerControlCommon-v1020 ::= SEQUENCE { + deltaF-PUCCH-Format3-r10 ENUMERATED {deltaF-1, deltaF0, deltaF1, deltaF2, + deltaF3, deltaF4, deltaF5, deltaF6}, + deltaF-PUCCH-Format1bCS-r10 ENUMERATED {deltaF1, deltaF2, spare2, spare1} +} + +UplinkPowerControlCommonSCell-r10 ::= SEQUENCE { + p0-NominalPUSCH-r10 INTEGER (-126..24), + alpha-r10 ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1} +} + +UplinkPowerControlCommonSCell-v1130 ::= SEQUENCE { + deltaPreambleMsg3-r11 INTEGER (-1..6) +} + +UplinkPowerControlDedicated ::= SEQUENCE { + p0-UE-PUSCH INTEGER (-8..7), + deltaMCS-Enabled ENUMERATED {en0, en1}, + accumulationEnabled BOOLEAN, + p0-UE-PUCCH INTEGER (-8..7), + pSRS-Offset INTEGER (0..15), + filterCoefficient FilterCoefficient DEFAULT fc4 +} + +UplinkPowerControlDedicated-v1020 ::= SEQUENCE { + deltaTxD-OffsetListPUCCH-r10 DeltaTxD-OffsetListPUCCH-r10 OPTIONAL, -- Need OR + pSRS-OffsetAp-r10 INTEGER (0..15) OPTIONAL -- Need OR +} + +UplinkPowerControlDedicated-v1130 ::= SEQUENCE { + pSRS-Offset-v1130 INTEGER (16..31) OPTIONAL, -- Need OR + pSRS-OffsetAp-v1130 INTEGER (16..31) OPTIONAL, -- Need OR + deltaTxD-OffsetListPUCCH-v1130 DeltaTxD-OffsetListPUCCH-v1130 OPTIONAL -- Need OR +} + +UplinkPowerControlDedicatedSCell-r10 ::= SEQUENCE { + p0-UE-PUSCH-r10 INTEGER (-8..7), + deltaMCS-Enabled-r10 ENUMERATED {en0, en1}, + accumulationEnabled-r10 BOOLEAN, + pSRS-Offset-r10 INTEGER (0..15), + pSRS-OffsetAp-r10 INTEGER (0..15) OPTIONAL, -- Need OR + filterCoefficient-r10 FilterCoefficient DEFAULT fc4, + pathlossReferenceLinking-r10 ENUMERATED {pCell, sCell} +} + +DeltaFList-PUCCH ::= SEQUENCE { + deltaF-PUCCH-Format1 ENUMERATED {deltaF-2, deltaF0, deltaF2}, + deltaF-PUCCH-Format1b ENUMERATED {deltaF1, deltaF3, deltaF5}, + deltaF-PUCCH-Format2 ENUMERATED {deltaF-2, deltaF0, deltaF1, deltaF2}, + deltaF-PUCCH-Format2a ENUMERATED {deltaF-2, deltaF0, deltaF2}, + deltaF-PUCCH-Format2b ENUMERATED {deltaF-2, deltaF0, deltaF2} +} + +DeltaTxD-OffsetListPUCCH-r10 ::= SEQUENCE { + deltaTxD-OffsetPUCCH-Format1-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format1a1b-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format22a2b-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format3-r10 ENUMERATED {dB0, dB-2}, + ... + +} + +DeltaTxD-OffsetListPUCCH-v1130 ::= SEQUENCE { + deltaTxD-OffsetPUCCH-Format1bCS-r11 ENUMERATED {dB0, dB-1} +} + +NextHopChainingCount ::= INTEGER (0..7) + + +SecurityAlgorithmConfig ::= SEQUENCE { + cipheringAlgorithm ENUMERATED { + eea0, eea1, eea2, eea3-v1130, spare4, spare3, + spare2, spare1, ...}, + integrityProtAlgorithm ENUMERATED { + eia0-v920, eia1, eia2, eia3-v1130, spare4, spare3, + spare2, spare1, ...} +} + + +ShortMAC-I ::= BIT STRING (SIZE (16)) + + +AdditionalSpectrumEmission ::= INTEGER (1..32) + +AdditionalSpectrumEmission-v10l0 ::= INTEGER (33..288) + + +ARFCN-ValueCDMA2000 ::= INTEGER (0..2047) + + +ARFCN-ValueEUTRA ::= INTEGER (0..maxEARFCN) + +ARFCN-ValueEUTRA-v9e0 ::= INTEGER (maxEARFCN-Plus1..maxEARFCN2) + +ARFCN-ValueEUTRA-r9 ::= INTEGER (0..maxEARFCN2) + + +ARFCN-ValueGERAN ::= INTEGER (0..1023) + + +ARFCN-ValueUTRA ::= INTEGER (0..16383) + + +BandclassCDMA2000 ::= ENUMERATED { + bc0, bc1, bc2, bc3, bc4, bc5, bc6, bc7, bc8, + bc9, bc10, bc11, bc12, bc13, bc14, bc15, bc16, + bc17, bc18-v9a0, bc19-v9a0, bc20-v9a0, bc21-v9a0, + spare10, spare9, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1, ...} + + +BandIndicatorGERAN ::= ENUMERATED {dcs1800, pcs1900} + + +CarrierFreqCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + arfcn ARFCN-ValueCDMA2000 +} + + +CarrierFreqGERAN ::= SEQUENCE { + arfcn ARFCN-ValueGERAN, + bandIndicator BandIndicatorGERAN +} + + +CarrierFreqsGERAN ::= SEQUENCE { + startingARFCN ARFCN-ValueGERAN, + bandIndicator BandIndicatorGERAN, + followingARFCNs CHOICE { + explicitListOfARFCNs ExplicitListOfARFCNs, + equallySpacedARFCNs SEQUENCE { + arfcn-Spacing INTEGER (1..8), + numberOfFollowingARFCNs INTEGER (0..31) + }, + variableBitMapOfARFCNs OCTET STRING (SIZE (1..16)) + } +} + +ExplicitListOfARFCNs ::= SEQUENCE (SIZE (0..31)) OF ARFCN-ValueGERAN + + +CarrierFreqListMBMS-r11 ::= SEQUENCE (SIZE (1..maxFreqMBMS-r11)) OF ARFCN-ValueEUTRA-r9 + + +CDMA2000-Type ::= ENUMERATED {type1XRTT, typeHRPD} + + +CellIdentity ::= BIT STRING (SIZE (28)) + + +CellIndexList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellIndex + +CellIndex ::= INTEGER (1..maxCellMeas) + + +CellReselectionPriority ::= INTEGER (0..7) + + +CSFB-RegistrationParam1XRTT ::= SEQUENCE { + sid BIT STRING (SIZE (15)), + nid BIT STRING (SIZE (16)), + multipleSID BOOLEAN, + multipleNID BOOLEAN, + homeReg BOOLEAN, + foreignSIDReg BOOLEAN, + foreignNIDReg BOOLEAN, + parameterReg BOOLEAN, + powerUpReg BOOLEAN, + registrationPeriod BIT STRING (SIZE (7)), + registrationZone BIT STRING (SIZE (12)), + totalZone BIT STRING (SIZE (3)), + zoneTimer BIT STRING (SIZE (3)) +} + +CSFB-RegistrationParam1XRTT-v920 ::= SEQUENCE { + powerDownReg-r9 ENUMERATED {true} +} + + +CellGlobalIdEUTRA ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellIdentity CellIdentity +} + + +CellGlobalIdUTRA ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellIdentity BIT STRING (SIZE (28)) +} + + +CellGlobalIdGERAN ::= SEQUENCE { + plmn-Identity PLMN-Identity, + locationAreaCode BIT STRING (SIZE (16)), + cellIdentity BIT STRING (SIZE (16)) +} + + +CellGlobalIdCDMA2000 ::= CHOICE { + cellGlobalId1XRTT BIT STRING (SIZE (47)), + cellGlobalIdHRPD BIT STRING (SIZE (128)) +} + + +CSG-Identity ::= BIT STRING (SIZE (27)) + + +FreqBandIndicator ::= INTEGER (1..maxFBI) + +FreqBandIndicator-v9e0 ::= INTEGER (maxFBI-Plus1..maxFBI2) + +FreqBandIndicator-r11 ::= INTEGER (1..maxFBI2) + + +MobilityControlInfo ::= SEQUENCE { + targetPhysCellId PhysCellId, + carrierFreq CarrierFreqEUTRA OPTIONAL, -- Cond HO-toEUTRA2 + carrierBandwidth CarrierBandwidthEUTRA OPTIONAL, -- Cond HO-toEUTRA + additionalSpectrumEmission AdditionalSpectrumEmission OPTIONAL, -- Cond HO-toEUTRA + t304 ENUMERATED { + ms50, ms100, ms150, ms200, ms500, ms1000, + ms2000, spare1}, + newUE-Identity C-RNTI, + radioResourceConfigCommon RadioResourceConfigCommon, + rach-ConfigDedicated RACH-ConfigDedicated OPTIONAL, -- Need OP + ..., + [[ carrierFreq-v9e0 CarrierFreqEUTRA-v9e0 OPTIONAL -- Need ON + ]], + [[ drb-ContinueROHC-r11 ENUMERATED {true} OPTIONAL -- Cond HO + ]] +} + +MobilityControlInfo-v10l0 ::= SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 OPTIONAL -- Need ON +} + +CarrierBandwidthEUTRA ::= SEQUENCE { + dl-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100, spare10, + spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1}, + ul-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100, spare10, + spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1} OPTIONAL -- Need OP +} + +CarrierFreqEUTRA ::= SEQUENCE { + dl-CarrierFreq ARFCN-ValueEUTRA, + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL -- Cond FDD +} + +CarrierFreqEUTRA-v9e0 ::= SEQUENCE { + dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9, + ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9 OPTIONAL -- Cond FDD +} + + +MobilityParametersCDMA2000 ::= OCTET STRING + + +MobilityStateParameters ::= SEQUENCE { + t-Evaluation ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + t-HystNormal ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + n-CellChangeMedium INTEGER (1..16), + n-CellChangeHigh INTEGER (1..16) +} + + +MultiBandInfoList ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator + +MultiBandInfoList-v9e0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF MultiBandInfo-v9e0 + +MultiBandInfoList-v10j0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF NS-PmaxList-r10 + +MultiBandInfoList-v10l0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF NS-PmaxList-v10l0 + +MultiBandInfoList-r11 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-r11 + +MultiBandInfo-v9e0 ::= SEQUENCE { + freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL -- Need OP +} + + +NS-PmaxList-r10 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-r10 + +NS-PmaxList-v10l0 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-v10l0 + +NS-PmaxValue-r10 ::= SEQUENCE { + additionalPmax-r10 P-Max OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission +} + +NS-PmaxValue-v10l0 ::= SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 OPTIONAL -- Need OP +} + + +PhysCellId ::= INTEGER (0..503) + + +PhysCellIdRange ::= SEQUENCE { + start PhysCellId, + range ENUMERATED { + n4, n8, n12, n16, n24, n32, n48, n64, n84, + n96, n128, n168, n252, n504, spare2, + spare1} OPTIONAL -- Need OP +} + + +PhysCellIdRangeUTRA-FDDList-r9::= SEQUENCE (SIZE (1..maxPhysCellIdRange-r9)) OF PhysCellIdRangeUTRA-FDD-r9 + +PhysCellIdRangeUTRA-FDD-r9 ::= SEQUENCE { + start-r9 PhysCellIdUTRA-FDD, + range-r9 INTEGER (2..512) OPTIONAL -- Need OP +} + + +PhysCellIdCDMA2000 ::= INTEGER (0..maxPNOffset) + + +PhysCellIdGERAN ::= SEQUENCE { + networkColourCode BIT STRING (SIZE (3)), + baseStationColourCode BIT STRING (SIZE (3)) +} + + +PhysCellIdUTRA-FDD ::= INTEGER (0..511) + + +PhysCellIdUTRA-TDD ::= INTEGER (0..127) + + +PLMN-Identity ::= SEQUENCE { + mcc MCC OPTIONAL, -- Cond MCC + mnc MNC +} + +MCC ::= SEQUENCE (SIZE (3)) OF + MCC-MNC-Digit + +MNC ::= SEQUENCE (SIZE (2..3)) OF + MCC-MNC-Digit + +MCC-MNC-Digit ::= INTEGER (0..9) + + + +PLMN-IdentityList3-r11 ::= SEQUENCE (SIZE (1..16)) OF PLMN-Identity + + +PreRegistrationInfoHRPD ::= SEQUENCE { + preRegistrationAllowed BOOLEAN, + preRegistrationZoneId PreRegistrationZoneIdHRPD OPTIONAL, -- cond PreRegAllowed + secondaryPreRegistrationZoneIdList SecondaryPreRegistrationZoneIdListHRPD OPTIONAL -- Need OR +} + +SecondaryPreRegistrationZoneIdListHRPD ::= SEQUENCE (SIZE (1..2)) OF PreRegistrationZoneIdHRPD + +PreRegistrationZoneIdHRPD ::= INTEGER (0..255) + + +Q-QualMin-r9 ::= INTEGER (-34..-3) + + +Q-RxLevMin ::= INTEGER (-70..-22) + + +Q-OffsetRange ::= ENUMERATED { + dB-24, dB-22, dB-20, dB-18, dB-16, dB-14, + dB-12, dB-10, dB-8, dB-6, dB-5, dB-4, dB-3, + dB-2, dB-1, dB0, dB1, dB2, dB3, dB4, dB5, + dB6, dB8, dB10, dB12, dB14, dB16, dB18, + dB20, dB22, dB24} + + +Q-OffsetRangeInterRAT ::= INTEGER (-15..15) + + +ReselectionThreshold ::= INTEGER (0..31) + + +ReselectionThresholdQ-r9 ::= INTEGER (0..31) + + +SCellIndex-r10 ::= INTEGER (1..7) + + +ServCellIndex-r10 ::= INTEGER (0..7) + + +SpeedStateScaleFactors ::= SEQUENCE { + sf-Medium ENUMERATED {oDot25, oDot5, oDot75, lDot0}, + sf-High ENUMERATED {oDot25, oDot5, oDot75, lDot0} +} + +SystemInfoListGERAN ::= SEQUENCE (SIZE (1..maxGERAN-SI)) OF + OCTET STRING (SIZE (1..23)) + + +SystemTimeInfoCDMA2000 ::= SEQUENCE { + cdma-EUTRA-Synchronisation BOOLEAN, + cdma-SystemTime CHOICE { + synchronousSystemTime BIT STRING (SIZE (39)), + asynchronousSystemTime BIT STRING (SIZE (49)) + } +} + + +TrackingAreaCode ::= BIT STRING (SIZE (16)) + + +T-Reselection ::= INTEGER (0..7) + + +AllowedMeasBandwidth ::= ENUMERATED {mbw6, mbw15, mbw25, mbw50, mbw75, mbw100} + + +Hysteresis ::= INTEGER (0..30) + + +LocationInfo-r10 ::= SEQUENCE { + locationCoordinates-r10 CHOICE { + ellipsoid-Point-r10 OCTET STRING, + ellipsoidPointWithAltitude-r10 OCTET STRING, + ..., + ellipsoidPointWithUncertaintyCircle-r11 OCTET STRING, + ellipsoidPointWithUncertaintyEllipse-r11 OCTET STRING, + ellipsoidPointWithAltitudeAndUncertaintyEllipsoid-r11 OCTET STRING, + ellipsoidArc-r11 OCTET STRING, + polygon-r11 OCTET STRING + }, + horizontalVelocity-r10 OCTET STRING OPTIONAL, + gnss-TOD-msec-r10 OCTET STRING OPTIONAL, + ... +} + + +MeasConfig ::= SEQUENCE { + -- Measurement objects + measObjectToRemoveList MeasObjectToRemoveList OPTIONAL, -- Need ON + measObjectToAddModList MeasObjectToAddModList OPTIONAL, -- Need ON + -- Reporting configurations + reportConfigToRemoveList ReportConfigToRemoveList OPTIONAL, -- Need ON + reportConfigToAddModList ReportConfigToAddModList OPTIONAL, -- Need ON + -- Measurement identities + measIdToRemoveList MeasIdToRemoveList OPTIONAL, -- Need ON + measIdToAddModList MeasIdToAddModList OPTIONAL, -- Need ON + -- Other parameters + quantityConfig QuantityConfig OPTIONAL, -- Need ON + measGapConfig MeasGapConfig OPTIONAL, -- Need ON + s-Measure RSRP-Range OPTIONAL, -- Need ON + preRegistrationInfoHRPD PreRegistrationInfoHRPD OPTIONAL, -- Need OP + speedStatePars CHOICE { + release NULL, + setup SEQUENCE { + mobilityStateParameters MobilityStateParameters, + timeToTrigger-SF SpeedStateScaleFactors + } + } OPTIONAL, -- Need ON + ..., + [[ measObjectToAddModList-v9e0 MeasObjectToAddModList-v9e0 OPTIONAL -- Need ON + ]], + [[ allowInterruptions-r11 BOOLEAN OPTIONAL -- Need ON + ]] +} + +MeasIdToRemoveList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId + +MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId + +ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigId + + +MeasGapConfig ::= CHOICE { + release NULL, + setup SEQUENCE { + gapOffset CHOICE { + gp0 INTEGER (0..39), + gp1 INTEGER (0..79), + ... + } + } +} + + +MeasId ::= INTEGER (1..maxMeasId) + + +MeasIdToAddModList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod + +MeasIdToAddMod ::= SEQUENCE { + measId MeasId, + measObjectId MeasObjectId, + reportConfigId ReportConfigId +} + + +MeasObjectCDMA2000 ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + carrierFreq CarrierFreqCDMA2000, + searchWindowSize INTEGER (0..15) OPTIONAL, -- Need ON + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CellsToAddModListCDMA2000 OPTIONAL, -- Need ON + cellForWhichToReportCGI PhysCellIdCDMA2000 OPTIONAL, -- Need ON + ... +} + +CellsToAddModListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModCDMA2000 + +CellsToAddModCDMA2000 ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdCDMA2000 +} + + +MeasObjectEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + allowedMeasBandwidth AllowedMeasBandwidth, + presenceAntennaPort1 PresenceAntennaPort1, + neighCellConfig NeighCellConfig, + offsetFreq Q-OffsetRange DEFAULT dB0, + -- Cell list + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CellsToAddModList OPTIONAL, -- Need ON + -- Black list + blackCellsToRemoveList CellIndexList OPTIONAL, -- Need ON + blackCellsToAddModList BlackCellsToAddModList OPTIONAL, -- Need ON + cellForWhichToReportCGI PhysCellId OPTIONAL, -- Need ON + ..., + [[measCycleSCell-r10 MeasCycleSCell-r10 OPTIONAL, -- Need ON + measSubframePatternConfigNeigh-r10 MeasSubframePatternConfigNeigh-r10 OPTIONAL -- Need ON + ]], + [[widebandRSRQ-Meas-r11 BOOLEAN OPTIONAL -- Cond WB-RSRQ + ]] +} + +MeasObjectEUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +CellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddMod + +CellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellId, + cellIndividualOffset Q-OffsetRange +} + +BlackCellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF BlackCellsToAddMod + +BlackCellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellIdRange PhysCellIdRange +} + +MeasCycleSCell-r10 ::= ENUMERATED {sf160, sf256, sf320, sf512, + sf640, sf1024, sf1280, spare1} + +MeasSubframePatternConfigNeigh-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + measSubframePatternNeigh-r10 MeasSubframePattern-r10, + measSubframeCellList-r10 MeasSubframeCellList-r10 OPTIONAL -- Cond always + } +} + +MeasSubframeCellList-r10 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF PhysCellIdRange + + +MeasObjectGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + ncc-Permitted BIT STRING(SIZE (8)) DEFAULT '11111111'B, + cellForWhichToReportCGI PhysCellIdGERAN OPTIONAL, -- Need ON + ... +} + + +MeasObjectId ::= INTEGER (1..maxObjectId) + + +MeasObjectToAddModList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod + +MeasObjectToAddModList-v9e0 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod-v9e0 + +MeasObjectToAddMod ::= SEQUENCE { + measObjectId MeasObjectId, + measObject CHOICE { + measObjectEUTRA MeasObjectEUTRA, + measObjectUTRA MeasObjectUTRA, + measObjectGERAN MeasObjectGERAN, + measObjectCDMA2000 MeasObjectCDMA2000, + ... + } +} + +MeasObjectToAddMod-v9e0 ::= SEQUENCE { + measObjectEUTRA-v9e0 MeasObjectEUTRA-v9e0 OPTIONAL -- Cond eutra +} + + +MeasObjectUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CHOICE { + cellsToAddModListUTRA-FDD CellsToAddModListUTRA-FDD, + cellsToAddModListUTRA-TDD CellsToAddModListUTRA-TDD + } OPTIONAL, -- Need ON + cellForWhichToReportCGI CHOICE { + utra-FDD PhysCellIdUTRA-FDD, + utra-TDD PhysCellIdUTRA-TDD + } OPTIONAL, -- Need ON + ..., + [[ csg-allowedReportingCells-v930 CSG-AllowedReportingCells-r9 OPTIONAL -- Need ON + ]] +} + +CellsToAddModListUTRA-FDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-FDD + +CellsToAddModUTRA-FDD ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdUTRA-FDD +} + +CellsToAddModListUTRA-TDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-TDD + +CellsToAddModUTRA-TDD ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdUTRA-TDD +} + +CSG-AllowedReportingCells-r9 ::= SEQUENCE { + physCellIdRangeUTRA-FDDList-r9 PhysCellIdRangeUTRA-FDDList-r9 OPTIONAL -- Need OR +} + +MeasResults ::= SEQUENCE { + measId MeasId, + measResultPCell SEQUENCE { + rsrpResult RSRP-Range, + rsrqResult RSRQ-Range + }, + measResultNeighCells CHOICE { + measResultListEUTRA MeasResultListEUTRA, + measResultListUTRA MeasResultListUTRA, + measResultListGERAN MeasResultListGERAN, + measResultsCDMA2000 MeasResultsCDMA2000, + ... + } OPTIONAL, + ..., + [[ measResultForECID-r9 MeasResultForECID-r9 OPTIONAL + ]], + [[ locationInfo-r10 LocationInfo-r10 OPTIONAL, + measResultServFreqList-r10 MeasResultServFreqList-r10 OPTIONAL + ]] +} + +MeasResultListEUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultEUTRA + +MeasResultEUTRA ::= SEQUENCE { + physCellId PhysCellId, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdEUTRA, + trackingAreaCode TrackingAreaCode, + plmn-IdentityList PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + rsrpResult RSRP-Range OPTIONAL, + rsrqResult RSRQ-Range OPTIONAL, + ..., + [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL + ]] + } +} + +MeasResultServFreqList-r10 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF MeasResultServFreq-r10 + +MeasResultServFreq-r10 ::= SEQUENCE { + servFreqId-r10 ServCellIndex-r10, + measResultSCell-r10 SEQUENCE { + rsrpResultSCell-r10 RSRP-Range, + rsrqResultSCell-r10 RSRQ-Range + } OPTIONAL, + measResultBestNeighCell-r10 SEQUENCE { + physCellId-r10 PhysCellId, + rsrpResultNCell-r10 RSRP-Range, + rsrqResultNCell-r10 RSRQ-Range + } OPTIONAL, + ... +} + +MeasResultListUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultUTRA + +MeasResultUTRA ::= SEQUENCE { + physCellId CHOICE { + fdd PhysCellIdUTRA-FDD, + tdd PhysCellIdUTRA-TDD + }, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdUTRA, + locationAreaCode BIT STRING (SIZE (16)) OPTIONAL, + routingAreaCode BIT STRING (SIZE (8)) OPTIONAL, + plmn-IdentityList PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + utra-RSCP INTEGER (-5..91) OPTIONAL, + utra-EcN0 INTEGER (0..49) OPTIONAL, + ..., + [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL + ]] + } +} + +MeasResultListGERAN ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultGERAN + +MeasResultGERAN ::= SEQUENCE { + carrierFreq CarrierFreqGERAN, + physCellId PhysCellIdGERAN, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdGERAN, + routingAreaCode BIT STRING (SIZE (8)) OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + rssi INTEGER (0..63), + ... + } +} + +MeasResultsCDMA2000 ::= SEQUENCE { + preRegistrationStatusHRPD BOOLEAN, + measResultListCDMA2000 MeasResultListCDMA2000 +} + +MeasResultListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCDMA2000 + +MeasResultCDMA2000 ::= SEQUENCE { + physCellId PhysCellIdCDMA2000, + cgi-Info CellGlobalIdCDMA2000 OPTIONAL, + measResult SEQUENCE { + pilotPnPhase INTEGER (0..32767) OPTIONAL, + pilotStrength INTEGER (0..63), + ... + } +} + +MeasResultForECID-r9 ::= SEQUENCE { + ue-RxTxTimeDiffResult-r9 INTEGER (0..4095), + currentSFN-r9 BIT STRING (SIZE (10)) +} + +PLMN-IdentityList2 ::= SEQUENCE (SIZE (1..5)) OF PLMN-Identity + +AdditionalSI-Info-r9 ::= SEQUENCE { + csg-MemberStatus-r9 ENUMERATED {member} OPTIONAL, + csg-Identity-r9 CSG-Identity OPTIONAL +} + + +QuantityConfig ::= SEQUENCE { + quantityConfigEUTRA QuantityConfigEUTRA OPTIONAL, -- Need ON + quantityConfigUTRA QuantityConfigUTRA OPTIONAL, -- Need ON + quantityConfigGERAN QuantityConfigGERAN OPTIONAL, -- Need ON + quantityConfigCDMA2000 QuantityConfigCDMA2000 OPTIONAL, -- Need ON + ..., + [[ quantityConfigUTRA-v1020 QuantityConfigUTRA-v1020 OPTIONAL -- Need ON + ]] +} + +QuantityConfigEUTRA ::= SEQUENCE { + filterCoefficientRSRP FilterCoefficient DEFAULT fc4, + filterCoefficientRSRQ FilterCoefficient DEFAULT fc4 +} + +QuantityConfigUTRA ::= SEQUENCE { + measQuantityUTRA-FDD ENUMERATED {cpich-RSCP, cpich-EcN0}, + measQuantityUTRA-TDD ENUMERATED {pccpch-RSCP}, + filterCoefficient FilterCoefficient DEFAULT fc4 +} + +QuantityConfigUTRA-v1020 ::= SEQUENCE { + filterCoefficient2-FDD-r10 FilterCoefficient DEFAULT fc4 +} + +QuantityConfigGERAN ::= SEQUENCE { + measQuantityGERAN ENUMERATED {rssi}, + filterCoefficient FilterCoefficient DEFAULT fc2 +} + +QuantityConfigCDMA2000 ::= SEQUENCE { + measQuantityCDMA2000 ENUMERATED {pilotStrength, pilotPnPhaseAndPilotStrength} +} + + +ReportConfigEUTRA ::= SEQUENCE { + triggerType CHOICE { + event SEQUENCE { + eventId CHOICE { + eventA1 SEQUENCE { + a1-Threshold ThresholdEUTRA + }, + eventA2 SEQUENCE { + a2-Threshold ThresholdEUTRA + }, + eventA3 SEQUENCE { + a3-Offset INTEGER (-30..30), + reportOnLeave BOOLEAN + }, + eventA4 SEQUENCE { + a4-Threshold ThresholdEUTRA + }, + eventA5 SEQUENCE { + a5-Threshold1 ThresholdEUTRA, + a5-Threshold2 ThresholdEUTRA + }, + ..., + eventA6-r10 SEQUENCE { + a6-Offset-r10 INTEGER (-30..30), + a6-ReportOnLeave-r10 BOOLEAN + } + }, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + periodical SEQUENCE { + purpose ENUMERATED { + reportStrongestCells, reportCGI} + } + }, + triggerQuantity ENUMERATED {rsrp, rsrq}, + reportQuantity ENUMERATED {sameAsTriggerQuantity, both}, + maxReportCells INTEGER (1..maxCellReport), + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + ..., + [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL, -- Cond reportCGI + ue-RxTxTimeDiffPeriodical-r9 ENUMERATED {setup} OPTIONAL -- Need OR + ]], + [[ includeLocationInfo-r10 ENUMERATED {true} OPTIONAL, -- Need OR + reportAddNeighMeas-r10 ENUMERATED {setup} OPTIONAL -- Need OR + ]] +} + +ThresholdEUTRA ::= CHOICE{ + threshold-RSRP RSRP-Range, + threshold-RSRQ RSRQ-Range +} + + +ReportConfigId ::= INTEGER (1..maxReportConfigId) + + +ReportConfigInterRAT ::= SEQUENCE { + triggerType CHOICE { + event SEQUENCE { + eventId CHOICE { + eventB1 SEQUENCE { + b1-Threshold CHOICE { + b1-ThresholdUTRA ThresholdUTRA, + b1-ThresholdGERAN ThresholdGERAN, + b1-ThresholdCDMA2000 ThresholdCDMA2000 + } + }, + eventB2 SEQUENCE { + b2-Threshold1 ThresholdEUTRA, + b2-Threshold2 CHOICE { + b2-Threshold2UTRA ThresholdUTRA, + b2-Threshold2GERAN ThresholdGERAN, + b2-Threshold2CDMA2000 ThresholdCDMA2000 + } + }, + ... + }, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + periodical SEQUENCE { + purpose ENUMERATED { + reportStrongestCells, + reportStrongestCellsForSON, + reportCGI} + } + }, + maxReportCells INTEGER (1..maxCellReport), + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + ..., + [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL -- Cond reportCGI + ]], + [[ reportQuantityUTRA-FDD-r10 ENUMERATED {both} OPTIONAL -- Need OR + ]], + [[ includeLocationInfo-r11 BOOLEAN OPTIONAL -- Need ON + ]] +} + +ThresholdUTRA ::= CHOICE{ + utra-RSCP INTEGER (-5..91), + utra-EcN0 INTEGER (0..49) +} + +ThresholdGERAN ::= INTEGER (0..63) + +ThresholdCDMA2000 ::= INTEGER (0..63) + + +ReportConfigToAddModList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigToAddMod + +ReportConfigToAddMod ::= SEQUENCE { + reportConfigId ReportConfigId, + reportConfig CHOICE { + reportConfigEUTRA ReportConfigEUTRA, + reportConfigInterRAT ReportConfigInterRAT + } +} + + + +ReportInterval ::= ENUMERATED { + ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, + min1, min6, min12, min30, min60, spare3, spare2, spare1} + + +RSRP-Range ::= INTEGER(0..97) + + +RSRQ-Range ::= INTEGER(0..34) + + +TimeToTrigger ::= ENUMERATED { + ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256, + ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560, + ms5120} + + +AbsoluteTimeInfo-r10 ::= BIT STRING (SIZE (48)) + + +AreaConfiguration-r10 ::= CHOICE { + cellGlobalIdList-r10 CellGlobalIdList-r10, + trackingAreaCodeList-r10 TrackingAreaCodeList-r10 +} + +AreaConfiguration-v1130 ::= SEQUENCE { + trackingAreaCodeList-v1130 TrackingAreaCodeList-v1130 +} + +CellGlobalIdList-r10 ::= SEQUENCE (SIZE (1..32)) OF CellGlobalIdEUTRA + +TrackingAreaCodeList-r10 ::= SEQUENCE (SIZE (1..8)) OF TrackingAreaCode + +TrackingAreaCodeList-v1130 ::= SEQUENCE { + plmn-Identity-perTAC-List-r11 SEQUENCE (SIZE (1..8)) OF PLMN-Identity +} + + +C-RNTI ::= BIT STRING (SIZE (16)) + + +DedicatedInfoCDMA2000 ::= OCTET STRING + + +DedicatedInfoNAS ::= OCTET STRING + + +FilterCoefficient ::= ENUMERATED { + fc0, fc1, fc2, fc3, fc4, fc5, + fc6, fc7, fc8, fc9, fc11, fc13, + fc15, fc17, fc19, spare1, ...} + + +LoggingDuration-r10 ::= ENUMERATED { + min10, min20, min40, min60, min90, min120, spare2, spare1} + + +LoggingInterval-r10 ::= ENUMERATED { + ms1280, ms2560, ms5120, ms10240, ms20480, + ms30720, ms40960, ms61440} + + +MeasSubframePattern-r10 ::= CHOICE { + subframePatternFDD-r10 BIT STRING (SIZE (40)), + subframePatternTDD-r10 CHOICE { + subframeConfig1-5-r10 BIT STRING (SIZE (20)), + subframeConfig0-r10 BIT STRING (SIZE (70)), + subframeConfig6-r10 BIT STRING (SIZE (60)), + ... + }, + ... +} + + +MMEC ::= BIT STRING (SIZE (8)) + + +NeighCellConfig ::= BIT STRING (SIZE (2)) + + +OtherConfig-r9 ::= SEQUENCE { + reportProximityConfig-r9 ReportProximityConfig-r9 OPTIONAL, -- Need ON + ..., + [[ idc-Config-r11 IDC-Config-r11 OPTIONAL, -- Need ON + powerPrefIndicationConfig-r11 PowerPrefIndicationConfig-r11 OPTIONAL, -- Need ON + obtainLocationConfig-r11 ObtainLocationConfig-r11 OPTIONAL -- Need ON + ]] +} + +IDC-Config-r11 ::= SEQUENCE { + idc-Indication-r11 ENUMERATED {setup} OPTIONAL, -- Need OR + autonomousDenialParameters-r11 SEQUENCE { + autonomousDenialSubframes-r11 ENUMERATED {n2, n5, n10, n15, + n20, n30, spare2, spare1}, + autonomousDenialValidity-r11 ENUMERATED { + sf200, sf500, sf1000, sf2000, + spare4, spare3, spare2, spare1} + } OPTIONAL, -- Need OR + ..., + [[ idc-Indication-UL-CA-r11 ENUMERATED {setup} OPTIONAL -- Cond idc-Ind + ]] +} + +ObtainLocationConfig-r11 ::= SEQUENCE { + obtainLocation-r11 ENUMERATED {setup} OPTIONAL -- Need OR +} + +PowerPrefIndicationConfig-r11 ::= CHOICE{ + release NULL, + setup SEQUENCE{ + powerPrefIndicationTimer-r11 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, + s30, s60, s90, s120, s300, s600, spare3, + spare2, spare1} + } +} + +ReportProximityConfig-r9 ::= SEQUENCE { + proximityIndicationEUTRA-r9 ENUMERATED {enabled} OPTIONAL, -- Need OR + proximityIndicationUTRA-r9 ENUMERATED {enabled} OPTIONAL -- Need OR +} + + +RAND-CDMA2000 ::= BIT STRING (SIZE (32)) + + +RAT-Type ::= ENUMERATED { + eutra, utra, geran-cs, geran-ps, cdma2000-1XRTT, + spare3, spare2, spare1, ...} + + +RRC-TransactionIdentifier ::= INTEGER (0..3) + + +S-TMSI ::= SEQUENCE { + mmec MMEC, + m-TMSI BIT STRING (SIZE (32)) +} + + +TraceReference-r10 ::= SEQUENCE { + plmn-Identity-r10 PLMN-Identity, + traceId-r10 OCTET STRING (SIZE (3)) +} + + +UE-CapabilityRAT-ContainerList ::=SEQUENCE (SIZE (0..maxRAT-Capabilities)) OF UE-CapabilityRAT-Container + +UE-CapabilityRAT-Container ::= SEQUENCE { + rat-Type RAT-Type, + ueCapabilityRAT-Container OCTET STRING +} + + +UE-EUTRA-Capability ::= SEQUENCE { + accessStratumRelease AccessStratumRelease, + ue-Category INTEGER (1..5), + pdcp-Parameters PDCP-Parameters, + phyLayerParameters PhyLayerParameters, + rf-Parameters RF-Parameters, + measParameters MeasParameters, + featureGroupIndicators BIT STRING (SIZE (32)) OPTIONAL, + interRAT-Parameters SEQUENCE { + utraFDD IRAT-ParametersUTRA-FDD OPTIONAL, + utraTDD128 IRAT-ParametersUTRA-TDD128 OPTIONAL, + utraTDD384 IRAT-ParametersUTRA-TDD384 OPTIONAL, + utraTDD768 IRAT-ParametersUTRA-TDD768 OPTIONAL, + geran IRAT-ParametersGERAN OPTIONAL, + cdma2000-HRPD IRAT-ParametersCDMA2000-HRPD OPTIONAL, + cdma2000-1xRTT IRAT-ParametersCDMA2000-1XRTT OPTIONAL + }, + nonCriticalExtension UE-EUTRA-Capability-v920-IEs OPTIONAL +} + +-- Late non critical extensions +UE-EUTRA-Capability-v9a0-IEs ::= SEQUENCE { + featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9c0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9c0-IEs ::= SEQUENCE { + interRAT-ParametersUTRA-v9c0 IRAT-ParametersUTRA-v9c0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9d0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9d0-IEs ::= SEQUENCE { + phyLayerParameters-v9d0 PhyLayerParameters-v9d0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9e0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9e0-IEs ::= SEQUENCE { + rf-Parameters-v9e0 RF-Parameters-v9e0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9h0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9h0-IEs ::= SEQUENCE { + interRAT-ParametersUTRA-v9h0 IRAT-ParametersUTRA-v9h0 OPTIONAL, + -- Following field is only to be used for late REL-9 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10c0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10c0-IEs ::= SEQUENCE { + otdoa-PositioningCapabilities-r10 OTDOA-PositioningCapabilities-r10 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10f0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10f0-IEs ::= SEQUENCE { + rf-Parameters-v10f0 RF-Parameters-v10f0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10i0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10i0-IEs ::= SEQUENCE { + rf-Parameters-v10i0 RF-Parameters-v10i0 OPTIONAL, + -- Following field is only to be used for late REL-10 extensions + lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v10j0-IEs) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11d0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10j0-IEs ::= SEQUENCE { + rf-Parameters-v10j0 RF-Parameters-v10j0 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-EUTRA-Capability-v11d0-IEs ::= SEQUENCE { + rf-Parameters-v11d0 RF-Parameters-v11d0 OPTIONAL, + otherParameters-v11d0 Other-Parameters-v11d0 OPTIONAL, + -- Following field is only to be used for late REL-11 extensions + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +UE-EUTRA-Capability-v920-IEs ::= SEQUENCE { + phyLayerParameters-v920 PhyLayerParameters-v920, + interRAT-ParametersGERAN-v920 IRAT-ParametersGERAN-v920, + interRAT-ParametersUTRA-v920 IRAT-ParametersUTRA-v920 OPTIONAL, + interRAT-ParametersCDMA2000-v920 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL, + deviceType-r9 ENUMERATED {noBenFromBatConsumpOpt} OPTIONAL, + csg-ProximityIndicationParameters-r9 CSG-ProximityIndicationParameters-r9, + neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9, + son-Parameters-r9 SON-Parameters-r9, + nonCriticalExtension UE-EUTRA-Capability-v940-IEs OPTIONAL +} + +UE-EUTRA-Capability-v940-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v9a0-IEs) + OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1020-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1020-IEs ::= SEQUENCE { + ue-Category-v1020 INTEGER (6..8) OPTIONAL, + phyLayerParameters-v1020 PhyLayerParameters-v1020 OPTIONAL, + rf-Parameters-v1020 RF-Parameters-v1020 OPTIONAL, + measParameters-v1020 MeasParameters-v1020 OPTIONAL, + featureGroupIndRel10-r10 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersCDMA2000-v1020 IRAT-ParametersCDMA2000-1XRTT-v1020 OPTIONAL, + ue-BasedNetwPerfMeasParameters-r10 UE-BasedNetwPerfMeasParameters-r10 OPTIONAL, + interRAT-ParametersUTRA-TDD-v1020 IRAT-ParametersUTRA-TDD-v1020 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1060-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1060-IEs ::= SEQUENCE { + fdd-Add-UE-EUTRA-Capabilities-v1060 UE-EUTRA-CapabilityAddXDD-Mode-v1060 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1060 UE-EUTRA-CapabilityAddXDD-Mode-v1060 OPTIONAL, + rf-Parameters-v1060 RF-Parameters-v1060 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1090-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1090-IEs ::= SEQUENCE { + rf-Parameters-v1090 RF-Parameters-v1090 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1130-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1130-IEs ::= SEQUENCE { + pdcp-Parameters-v1130 PDCP-Parameters-v1130, + phyLayerParameters-v1130 PhyLayerParameters-v1130 OPTIONAL, + rf-Parameters-v1130 RF-Parameters-v1130, + measParameters-v1130 MeasParameters-v1130, + interRAT-ParametersCDMA2000-v1130 IRAT-ParametersCDMA2000-v1130, + otherParameters-r11 Other-Parameters-r11, + fdd-Add-UE-EUTRA-Capabilities-v1130 UE-EUTRA-CapabilityAddXDD-Mode-v1130 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1130 UE-EUTRA-CapabilityAddXDD-Mode-v1130 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1170-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1170-IEs ::= SEQUENCE { + phyLayerParameters-v1170 PhyLayerParameters-v1170 OPTIONAL, + ue-Category-v1170 INTEGER (9..10) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1180-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1180-IEs ::= SEQUENCE { + rf-Parameters-v1180 RF-Parameters-v1180 OPTIONAL, + mbms-Parameters-r11 MBMS-Parameters-r11 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1180 UE-EUTRA-CapabilityAddXDD-Mode-v1180 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1180 UE-EUTRA-CapabilityAddXDD-Mode-v1180 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11a0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v11a0-IEs ::= SEQUENCE { + ue-Category-v11a0 INTEGER (11..12) OPTIONAL, + measParameters-v11a0 MeasParameters-v11a0 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UE-EUTRA-CapabilityAddXDD-Mode-r9 ::= SEQUENCE { + phyLayerParameters-r9 PhyLayerParameters OPTIONAL, + featureGroupIndicators-r9 BIT STRING (SIZE (32)) OPTIONAL, + featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersGERAN-r9 IRAT-ParametersGERAN OPTIONAL, + interRAT-ParametersUTRA-r9 IRAT-ParametersUTRA-v920 OPTIONAL, + interRAT-ParametersCDMA2000-r9 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL, + neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9 OPTIONAL, + ... +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1060 ::= SEQUENCE { + phyLayerParameters-v1060 PhyLayerParameters-v1020 OPTIONAL, + featureGroupIndRel10-v1060 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersCDMA2000-v1060 IRAT-ParametersCDMA2000-1XRTT-v1020 OPTIONAL, + interRAT-ParametersUTRA-TDD-v1060 IRAT-ParametersUTRA-TDD-v1020 OPTIONAL, + ..., + [[ otdoa-PositioningCapabilities-r10 OTDOA-PositioningCapabilities-r10 OPTIONAL + ]] +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1130 ::= SEQUENCE { + phyLayerParameters-v1130 PhyLayerParameters-v1130 OPTIONAL, + measParameters-v1130 MeasParameters-v1130 OPTIONAL, + otherParameters-r11 Other-Parameters-r11 OPTIONAL, + ... +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1180 ::= SEQUENCE { + mbms-Parameters-r11 MBMS-Parameters-r11 +} + +AccessStratumRelease ::= ENUMERATED { + rel8, rel9, rel10, rel11, spare4, spare3, + spare2, spare1, ...} + +PDCP-Parameters ::= SEQUENCE { + supportedROHC-Profiles SEQUENCE { + profile0x0001 BOOLEAN, + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0101 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + maxNumberROHC-ContextSessions ENUMERATED { + cs2, cs4, cs8, cs12, cs16, cs24, cs32, + cs48, cs64, cs128, cs256, cs512, cs1024, + cs16384, spare2, spare1} DEFAULT cs16, + ... +} + +PDCP-Parameters-v1130 ::= SEQUENCE { + pdcp-SN-Extension-r11 ENUMERATED {supported} OPTIONAL, + supportRohcContextContinue-r11 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters ::= SEQUENCE { + ue-TxAntennaSelectionSupported BOOLEAN, + ue-SpecificRefSigsSupported BOOLEAN +} + +PhyLayerParameters-v920 ::= SEQUENCE { + enhancedDualLayerFDD-r9 ENUMERATED {supported} OPTIONAL, + enhancedDualLayerTDD-r9 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v9d0 ::= SEQUENCE { + tm5-FDD-r9 ENUMERATED {supported} OPTIONAL, + tm5-TDD-r9 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1020 ::= SEQUENCE { + twoAntennaPortsForPUCCH-r10 ENUMERATED {supported} OPTIONAL, + tm9-With-8Tx-FDD-r10 ENUMERATED {supported} OPTIONAL, + pmi-Disabling-r10 ENUMERATED {supported} OPTIONAL, + crossCarrierScheduling-r10 ENUMERATED {supported} OPTIONAL, + simultaneousPUCCH-PUSCH-r10 ENUMERATED {supported} OPTIONAL, + multiClusterPUSCH-WithinCC-r10 ENUMERATED {supported} OPTIONAL, + nonContiguousUL-RA-WithinCC-List-r10 NonContiguousUL-RA-WithinCC-List-r10 OPTIONAL +} + +PhyLayerParameters-v1130 ::= SEQUENCE { + crs-InterfHandl-r11 ENUMERATED {supported} OPTIONAL, + ePDCCH-r11 ENUMERATED {supported} OPTIONAL, + multiACK-CSI-Reporting-r11 ENUMERATED {supported} OPTIONAL, + ss-CCH-InterfHandl-r11 ENUMERATED {supported} OPTIONAL, + tdd-SpecialSubframe-r11 ENUMERATED {supported} OPTIONAL, + txDiv-PUCCH1b-ChSelect-r11 ENUMERATED {supported} OPTIONAL, + ul-CoMP-r11 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1170 ::= SEQUENCE { + interBandTDD-CA-WithDifferentConfig-r11 BIT STRING (SIZE (2)) OPTIONAL +} + +NonContiguousUL-RA-WithinCC-List-r10 ::= SEQUENCE (SIZE (1..maxBands)) OF NonContiguousUL-RA-WithinCC-r10 + +NonContiguousUL-RA-WithinCC-r10 ::= SEQUENCE { + nonContiguousUL-RA-WithinCC-Info-r10 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters ::= SEQUENCE { + supportedBandListEUTRA SupportedBandListEUTRA +} + +RF-Parameters-v9e0 ::= SEQUENCE { + supportedBandListEUTRA-v9e0 SupportedBandListEUTRA-v9e0 OPTIONAL +} + +RF-Parameters-v1020 ::= SEQUENCE { + supportedBandCombination-r10 SupportedBandCombination-r10 +} + +RF-Parameters-v1060 ::= SEQUENCE { + supportedBandCombinationExt-r10 SupportedBandCombinationExt-r10 +} + +RF-Parameters-v1090 ::= SEQUENCE { + supportedBandCombination-v1090 SupportedBandCombination-v1090 OPTIONAL +} + +RF-Parameters-v10f0 ::= SEQUENCE { + modifiedMPR-Behavior-r10 BIT STRING (SIZE (32)) OPTIONAL +} + +RF-Parameters-v10i0 ::= SEQUENCE { + supportedBandCombination-v10i0 SupportedBandCombination-v10i0 OPTIONAL +} + +RF-Parameters-v10j0 ::= SEQUENCE { + multiNS-Pmax-r10 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1130 ::= SEQUENCE { + supportedBandCombination-v1130 SupportedBandCombination-v1130 OPTIONAL +} + +RF-Parameters-v1180 ::= SEQUENCE { + freqBandRetrieval-r11 ENUMERATED {supported} OPTIONAL, + requestedBands-r11 SEQUENCE (SIZE (1.. maxBands)) OF FreqBandIndicator-r11 OPTIONAL, + supportedBandCombinationAdd-r11 SupportedBandCombinationAdd-r11 OPTIONAL +} + +RF-Parameters-v11d0 ::= SEQUENCE { + supportedBandCombinationAdd-v11d0 SupportedBandCombinationAdd-v11d0 OPTIONAL +} + +SupportedBandCombination-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-r10 + +SupportedBandCombinationExt-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParametersExt-r10 + +SupportedBandCombination-v1090 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1090 + +SupportedBandCombination-v10i0 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v10i0 + +SupportedBandCombination-v1130 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1130 + +SupportedBandCombinationAdd-r11 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-r11 + +SupportedBandCombinationAdd-v11d0 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v10i0 + +BandCombinationParameters-r10 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r10 + +BandCombinationParametersExt-r10 ::= SEQUENCE { + supportedBandwidthCombinationSet-r10 SupportedBandwidthCombinationSet-r10 OPTIONAL +} + +BandCombinationParameters-v1090 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1090 + +BandCombinationParameters-v10i0::= SEQUENCE { +bandParameterList-v10i0 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v10i0 OPTIONAL +} + +BandCombinationParameters-v1130 ::= SEQUENCE { + multipleTimingAdvance-r11 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r11 ENUMERATED {supported} OPTIONAL, + bandParameterList-r11 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1130 OPTIONAL, + ... +} + +BandCombinationParameters-r11 ::= SEQUENCE { + bandParameterList-r11 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-r11, + supportedBandwidthCombinationSet-r11 SupportedBandwidthCombinationSet-r10 OPTIONAL, + multipleTimingAdvance-r11 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r11 ENUMERATED {supported} OPTIONAL, + bandInfoEUTRA-r11 BandInfoEUTRA, + ... +} + +SupportedBandwidthCombinationSet-r10 ::= BIT STRING (SIZE (1..maxBandwidthCombSet-r10)) + +BandParameters-r10 ::= SEQUENCE { + bandEUTRA-r10 FreqBandIndicator, + bandParametersUL-r10 BandParametersUL-r10 OPTIONAL, + bandParametersDL-r10 BandParametersDL-r10 OPTIONAL +} + +BandParameters-v1090 ::= SEQUENCE { + bandEUTRA-v1090 FreqBandIndicator-v9e0 OPTIONAL, + ... +} + +BandParameters-v10i0::= SEQUENCE { + bandParametersDL-v10i0 SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-v10i0 +} + +BandParameters-v1130 ::= SEQUENCE { + supportedCSI-Proc-r11 ENUMERATED {n1, n3, n4} +} + +BandParameters-r11 ::= SEQUENCE { + bandEUTRA-r11 FreqBandIndicator-r11, + bandParametersUL-r11 BandParametersUL-r10 OPTIONAL, + bandParametersDL-r11 BandParametersDL-r10 OPTIONAL, + supportedCSI-Proc-r11 ENUMERATED {n1, n3, n4} OPTIONAL +} + +BandParametersUL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersUL-r10 + +CA-MIMO-ParametersUL-r10 ::= SEQUENCE { + ca-BandwidthClassUL-r10 CA-BandwidthClass-r10, + supportedMIMO-CapabilityUL-r10 MIMO-CapabilityUL-r10 OPTIONAL +} + +BandParametersDL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-r10 + +CA-MIMO-ParametersDL-r10 ::= SEQUENCE { + ca-BandwidthClassDL-r10 CA-BandwidthClass-r10, + supportedMIMO-CapabilityDL-r10 MIMO-CapabilityDL-r10 OPTIONAL +} + +CA-MIMO-ParametersDL-v10i0 ::= SEQUENCE { + fourLayerTM3-TM4-r10 ENUMERATED {supported} OPTIONAL +} + +CA-BandwidthClass-r10 ::= ENUMERATED {a, b, c, d, e, f, ...} + +MIMO-CapabilityUL-r10 ::= ENUMERATED {twoLayers, fourLayers} + +MIMO-CapabilityDL-r10 ::= ENUMERATED {twoLayers, fourLayers, eightLayers} + +SupportedBandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA + +SupportedBandListEUTRA-v9e0::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v9e0 + +SupportedBandEUTRA ::= SEQUENCE { + bandEUTRA FreqBandIndicator, + halfDuplex BOOLEAN +} + +SupportedBandEUTRA-v9e0 ::= SEQUENCE { + bandEUTRA-v9e0 FreqBandIndicator-v9e0 OPTIONAL +} + +MeasParameters ::= SEQUENCE { + bandListEUTRA BandListEUTRA +} + +MeasParameters-v1020 ::= SEQUENCE { + bandCombinationListEUTRA-r10 BandCombinationListEUTRA-r10 +} + +MeasParameters-v1130 ::= SEQUENCE { + rsrqMeasWideband-r11 ENUMERATED {supported} OPTIONAL +} + +MeasParameters-v11a0 ::= SEQUENCE { + benefitsFromInterruption-r11 ENUMERATED {true} OPTIONAL +} + +BandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF BandInfoEUTRA + +BandCombinationListEUTRA-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandInfoEUTRA + +BandInfoEUTRA ::= SEQUENCE { + interFreqBandList InterFreqBandList, + interRAT-BandList InterRAT-BandList OPTIONAL +} + +InterFreqBandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterFreqBandInfo + +InterFreqBandInfo ::= SEQUENCE { + interFreqNeedForGaps BOOLEAN +} + +InterRAT-BandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterRAT-BandInfo + +InterRAT-BandInfo ::= SEQUENCE { + interRAT-NeedForGaps BOOLEAN +} + +IRAT-ParametersUTRA-FDD ::= SEQUENCE { + supportedBandListUTRA-FDD SupportedBandListUTRA-FDD +} + +IRAT-ParametersUTRA-v920 ::= SEQUENCE { + e-RedirectionUTRA-r9 ENUMERATED {supported} +} + +IRAT-ParametersUTRA-v9c0 ::= SEQUENCE { + voiceOverPS-HS-UTRA-FDD-r9 ENUMERATED {supported} OPTIONAL, + voiceOverPS-HS-UTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-FDD-ToUTRA-FDD-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-FDD-ToGERAN-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-TDD128-ToUTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-TDD128-ToGERAN-r9 ENUMERATED {supported} OPTIONAL +} + +IRAT-ParametersUTRA-v9h0 ::= SEQUENCE { + mfbi-UTRA-r9 ENUMERATED {supported} +} + +SupportedBandListUTRA-FDD ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-FDD + +SupportedBandUTRA-FDD ::= ENUMERATED { + bandI, bandII, bandIII, bandIV, bandV, bandVI, + bandVII, bandVIII, bandIX, bandX, bandXI, + bandXII, bandXIII, bandXIV, bandXV, bandXVI, ..., + bandXVII-8a0, bandXVIII-8a0, bandXIX-8a0, bandXX-8a0, + bandXXI-8a0, bandXXII-8a0, bandXXIII-8a0, bandXXIV-8a0, + bandXXV-8a0, bandXXVI-8a0, bandXXVII-8a0, bandXXVIII-8a0, + bandXXIX-8a0, bandXXX-8a0, bandXXXI-8a0, bandXXXII-8a0} + +IRAT-ParametersUTRA-TDD128 ::= SEQUENCE { + supportedBandListUTRA-TDD128 SupportedBandListUTRA-TDD128 +} + +SupportedBandListUTRA-TDD128 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD128 + +SupportedBandUTRA-TDD128 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD384 ::= SEQUENCE { + supportedBandListUTRA-TDD384 SupportedBandListUTRA-TDD384 +} + +SupportedBandListUTRA-TDD384 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD384 + +SupportedBandUTRA-TDD384 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD768 ::= SEQUENCE { + supportedBandListUTRA-TDD768 SupportedBandListUTRA-TDD768 +} + +SupportedBandListUTRA-TDD768 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD768 + +SupportedBandUTRA-TDD768 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD-v1020 ::= SEQUENCE { + e-RedirectionUTRA-TDD-r10 ENUMERATED {supported} +} + +IRAT-ParametersGERAN ::= SEQUENCE { + supportedBandListGERAN SupportedBandListGERAN, + interRAT-PS-HO-ToGERAN BOOLEAN +} + +IRAT-ParametersGERAN-v920 ::= SEQUENCE { + dtm-r9 ENUMERATED {supported} OPTIONAL, + e-RedirectionGERAN-r9 ENUMERATED {supported} OPTIONAL +} + +SupportedBandListGERAN ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandGERAN + +SupportedBandGERAN ::= ENUMERATED { + gsm450, gsm480, gsm710, gsm750, gsm810, gsm850, + gsm900P, gsm900E, gsm900R, gsm1800, gsm1900, + spare5, spare4, spare3, spare2, spare1, ...} + +IRAT-ParametersCDMA2000-HRPD ::= SEQUENCE { + supportedBandListHRPD SupportedBandListHRPD, + tx-ConfigHRPD ENUMERATED {single, dual}, + rx-ConfigHRPD ENUMERATED {single, dual} +} + +SupportedBandListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + +IRAT-ParametersCDMA2000-1XRTT ::= SEQUENCE { + supportedBandList1XRTT SupportedBandList1XRTT, + tx-Config1XRTT ENUMERATED {single, dual}, + rx-Config1XRTT ENUMERATED {single, dual} +} + +IRAT-ParametersCDMA2000-1XRTT-v920 ::= SEQUENCE { + e-CSFB-1XRTT-r9 ENUMERATED {supported}, + e-CSFB-ConcPS-Mob1XRTT-r9 ENUMERATED {supported} OPTIONAL +} + +IRAT-ParametersCDMA2000-1XRTT-v1020 ::= SEQUENCE { + e-CSFB-dual-1XRTT-r10 ENUMERATED {supported} +} + +IRAT-ParametersCDMA2000-v1130 ::= SEQUENCE { + cdma2000-NW-Sharing-r11 ENUMERATED {supported} OPTIONAL +} + +SupportedBandList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + +CSG-ProximityIndicationParameters-r9 ::= SEQUENCE { + intraFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL, + interFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL, + utran-ProximityIndication-r9 ENUMERATED {supported} OPTIONAL +} + +NeighCellSI-AcquisitionParameters-r9 ::= SEQUENCE { + intraFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL, + interFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL, + utran-SI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL +} + +SON-Parameters-r9 ::= SEQUENCE { + rach-Report-r9 ENUMERATED {supported} OPTIONAL +} + +UE-BasedNetwPerfMeasParameters-r10 ::= SEQUENCE { + loggedMeasurementsIdle-r10 ENUMERATED {supported} OPTIONAL, + standaloneGNSS-Location-r10 ENUMERATED {supported} OPTIONAL +} + +OTDOA-PositioningCapabilities-r10 ::= SEQUENCE { + otdoa-UE-Assisted-r10 ENUMERATED {supported}, + interFreqRSTD-Measurement-r10 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-r11 ::= SEQUENCE { + inDeviceCoexInd-r11 ENUMERATED {supported} OPTIONAL, + powerPrefInd-r11 ENUMERATED {supported} OPTIONAL, + ue-Rx-TxTimeDiffMeasurements-r11 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v11d0 ::= SEQUENCE { + inDeviceCoexInd-UL-CA-r11 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-r11 ::= SEQUENCE { + mbms-SCell-r11 ENUMERATED {supported} OPTIONAL, + mbms-NonServingCell-r11 ENUMERATED {supported} OPTIONAL +} + + +UE-TimersAndConstants ::= SEQUENCE { + t300 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t301 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t310 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n310 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ... +} + + +MBMS-NotificationConfig-r9 ::= SEQUENCE { + notificationRepetitionCoeff-r9 ENUMERATED {n2, n4}, + notificationOffset-r9 INTEGER (0..10), + notificationSF-Index-r9 INTEGER (1..6) +} + + +MBSFN-AreaInfoList-r9 ::= SEQUENCE (SIZE(1..maxMBSFN-Area)) OF MBSFN-AreaInfo-r9 + +MBSFN-AreaInfo-r9 ::= SEQUENCE { + mbsfn-AreaId-r9 INTEGER (0..255), + non-MBSFNregionLength ENUMERATED {s1, s2}, + notificationIndicator-r9 INTEGER (0..7), + mcch-Config-r9 SEQUENCE { + mcch-RepetitionPeriod-r9 ENUMERATED {rf32, rf64, rf128, rf256}, + mcch-Offset-r9 INTEGER (0..10), + mcch-ModificationPeriod-r9 ENUMERATED {rf512, rf1024}, + sf-AllocInfo-r9 BIT STRING (SIZE(6)), + signallingMCS-r9 ENUMERATED {n2, n7, n13, n19} + }, + ... +} + + +MBSFN-SubframeConfig ::= SEQUENCE { + radioframeAllocationPeriod ENUMERATED {n1, n2, n4, n8, n16, n32}, + radioframeAllocationOffset INTEGER (0..7), + subframeAllocation CHOICE { + oneFrame BIT STRING (SIZE(6)), + fourFrames BIT STRING (SIZE(24)) + } +} + +PMCH-InfoList-r9 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-Info-r9 + +PMCH-Info-r9 ::= SEQUENCE { + pmch-Config-r9 PMCH-Config-r9, + mbms-SessionInfoList-r9 MBMS-SessionInfoList-r9, + ... +} + +MBMS-SessionInfoList-r9 ::= SEQUENCE (SIZE (0..maxSessionPerPMCH)) OF MBMS-SessionInfo-r9 + +MBMS-SessionInfo-r9 ::= SEQUENCE { + tmgi-r9 TMGI-r9, + sessionId-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Need OR + logicalChannelIdentity-r9 INTEGER (0..maxSessionPerPMCH-1), + ... +} + +PMCH-Config-r9 ::= SEQUENCE { + sf-AllocEnd-r9 INTEGER (0..1535), + dataMCS-r9 INTEGER (0..28), + mch-SchedulingPeriod-r9 ENUMERATED { + rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024}, + ... +} + +TMGI-r9 ::= SEQUENCE { + plmn-Id-r9 CHOICE { + plmn-Index-r9 INTEGER (1..maxPLMN-r11), + explicitValue-r9 PLMN-Identity + }, + serviceId-r9 OCTET STRING (SIZE (3)) +} + + +maxBandComb-r10 INTEGER ::= 128 -- Maximum number of band combinations. +maxBandComb-r11 INTEGER ::= 256 -- Maximum number of additional band combinations. +maxBands INTEGER ::= 64 -- Maximum number of bands listed in EUTRA UE caps +maxBandwidthClass-r10 INTEGER ::= 16 -- Maximum number of supported CA BW classes per band +maxBandwidthCombSet-r10 INTEGER ::= 32 -- Maximum number of bandwidth combination sets per + -- supported band combination +maxCDMA-BandClass INTEGER ::= 32 -- Maximum value of the CDMA band classes +maxCellBlack INTEGER ::= 16 -- Maximum number of blacklisted physical cell identity + -- ranges listed in SIB type 4 and 5 +maxCellInfoGERAN-r9 INTEGER ::= 32 -- Maximum number of GERAN cells for which system in- + -- formation can be provided as redirection assistance +maxCellInfoUTRA-r9 INTEGER ::= 16 -- Maximum number of UTRA cells for which system + -- information can be provided as redirection + -- assistance +maxCSI-IM-r11 INTEGER ::= 3 -- Maximum number of CSI-IM configurations + -- (per carrier frequency) +maxCSI-Proc-r11 INTEGER ::= 4 -- Maximum number of CSI RS processes (per carrier + -- frequency) +maxCSI-RS-NZP-r11 INTEGER ::= 3 -- Maximum number of CSI RS resource + -- configurations using non-zero Tx power + -- (per carrier frequency) +maxCSI-RS-ZP-r11 INTEGER ::= 4 -- Maximum number of CSI RS resource + -- configurations using zero Tx power(per carrier + -- frequency) +maxCQI-ProcExt-r11 INTEGER ::= 3 -- Maximum number of additional periodic CQI + -- configurations (per carrier frequency) +maxFreqUTRA-TDD-r10 INTEGER ::= 6 -- Maximum number of UTRA TDD carrier frequencies for + -- which system information can be provided as + -- redirection assistance +maxCellInter INTEGER ::= 16 -- Maximum number of neighbouring inter-frequency + -- cells listed in SIB type 5 +maxCellIntra INTEGER ::= 16 -- Maximum number of neighbouring intra-frequency + -- cells listed in SIB type 4 +maxCellListGERAN INTEGER ::= 3 -- Maximum number of lists of GERAN cells +maxCellMeas INTEGER ::= 32 -- Maximum number of entries in each of the + -- cell lists in a measurement object +maxCellReport INTEGER ::= 8 -- Maximum number of reported cells +maxCombIDC-r11 INTEGER ::= 128 -- Maximum number of reported UL CA combinations +maxDRB INTEGER ::= 11 -- Maximum number of Data Radio Bearers +maxEARFCN INTEGER ::= 65535 -- Maximum value of EUTRA carrier frequency +maxEARFCN-Plus1 INTEGER ::= 65536 -- Lowest value extended EARFCN range +maxEARFCN2 INTEGER ::= 262143 -- Highest value extended EARFCN range +maxEPDCCH-Set-r11 INTEGER ::= 2 -- Maximum number of EPDCCH sets +maxFBI INTEGER ::= 64 -- Maximum value of fequency band indicator +maxFBI-Plus1 INTEGER ::= 65 -- Lowest value extended FBI range +maxFBI2 INTEGER ::= 256 -- Highest value extended FBI range +maxFreq INTEGER ::= 8 -- Maximum number of carrier frequencies +maxFreqIDC-r11 INTEGER ::= 32 -- Maximum number of carrier frequencies that are + -- affected by the IDC problems +maxFreqMBMS-r11 INTEGER ::= 5 -- Maximum number of carrier frequencies for which an + -- MBMS capable UE may indicate an interest +maxGERAN-SI INTEGER ::= 10 -- Maximum number of GERAN SI blocks that can be + -- provided as part of NACC information +maxGNFG INTEGER ::= 16 -- Maximum number of GERAN neighbour freq groups +maxLogMeasReport-r10 INTEGER ::= 520 -- Maximum number of logged measurement entries + -- that can be reported by the UE in one message +maxMBSFN-Allocations INTEGER ::= 8 -- Maximum number of MBSFN frame allocations with + -- different offset +maxMBSFN-Area INTEGER ::= 8 +maxMBSFN-Area-1 INTEGER ::= 7 +maxMeasId INTEGER ::= 32 +maxMultiBands INTEGER ::= 8 -- Maximum number of additional frequency bands + -- that a cell belongs to +maxNS-Pmax-r10 INTEGER ::= 8 -- Maximum number of NS and P-Max values per band +maxObjectId INTEGER ::= 32 +maxPageRec INTEGER ::= 16 -- +maxPhysCellIdRange-r9 INTEGER ::= 4 -- Maximum number of physical cell identity ranges +maxPLMN-r11 INTEGER ::= 6 -- Maximum number of PLMNs +maxPNOffset INTEGER ::= 511 -- Maximum number of CDMA2000 PNOffsets +maxPMCH-PerMBSFN INTEGER ::= 15 +maxRAT-Capabilities INTEGER ::= 8 -- Maximum number of interworking RATs (incl EUTRA) +maxRE-MapQCL-r11 INTEGER ::= 4 -- Maximum number of PDSCH RE Mapping configurations + -- (per carrier frequency) +maxReportConfigId INTEGER ::= 32 +maxRSTD-Freq-r10 INTEGER ::= 3 -- Maximum number of frequency layers for RSTD + -- measurement +maxSAI-MBMS-r11 INTEGER ::= 64 -- Maximum number of MBMS service area identities + -- broadcast per carrier frequency +maxSCell-r10 INTEGER ::= 4 -- Maximum number of SCells +maxSTAG-r11 INTEGER ::= 3 -- Maximum number of STAGs +maxServCell-r10 INTEGER ::= 5 -- Maximum number of Serving cells +maxServiceCount INTEGER ::= 16 -- Maximum number of MBMS services that can be included + -- in an MBMS counting request and response +maxServiceCount-1 INTEGER ::= 15 +maxSessionPerPMCH INTEGER ::= 29 +maxSessionPerPMCH-1 INTEGER ::= 28 +maxSIB INTEGER ::= 32 -- Maximum number of SIBs +maxSIB-1 INTEGER ::= 31 +maxSI-Message INTEGER ::= 32 -- Maximum number of SI messages +maxSimultaneousBands-r10 INTEGER ::= 64 -- Maximum number of simultaneously aggregated bands +maxSubframePatternIDC-r11 INTEGER ::= 8 -- Maximum number of subframe reservation patterns + -- that the UE can simultaneously recommend to the + -- E-UTRAN for use. +maxUTRA-FDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA FDD carrier frequencies +maxUTRA-TDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA TDD carrier frequencies + + +END + + +EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AbsoluteTimeInfo-r10, + AreaConfiguration-r10, + AreaConfiguration-v1130, + CarrierFreqGERAN, + CellIdentity, + ConnEstFailReport-r11, + SpeedStateScaleFactors, + C-RNTI, + LoggingDuration-r10, + LoggingInterval-r10, + LogMeasInfo-r10, + MeasId, + MeasIdToAddModList, + MeasObjectToAddModList, + MeasObjectToAddModList-v9e0, + MobilityStateParameters, + NeighCellConfig, + PhysCellId, + PhysCellIdCDMA2000, + PhysCellIdGERAN, + PhysCellIdUTRA-FDD, + PhysCellIdUTRA-TDD, + PLMN-Identity, + PLMN-IdentityList3-r11, + QuantityConfig, + ReportConfigToAddModList, + RLF-Report-r9, + RSRP-Range, + TraceReference-r10, + maxCellMeas, + maxMeasId +FROM EUTRA-RRC-Definitions; + + +VarConnEstFailReport-r11 ::= SEQUENCE { + connEstFailReport-r11 ConnEstFailReport-r11, + plmn-Identity-r11 PLMN-Identity +} + + +VarLogMeasConfig-r10 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10 +} + +VarLogMeasConfig-r11 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10 +} + + +VarLogMeasReport-r10 ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + plmn-Identity-r10 PLMN-Identity, + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + logMeasInfoList-r10 LogMeasInfoList2-r10 +} + +VarLogMeasReport-r11 ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + plmn-IdentityList-r11 PLMN-IdentityList3-r11, + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + logMeasInfoList-r10 LogMeasInfoList2-r10 +} + +LogMeasInfoList2-r10 ::= SEQUENCE (SIZE (1..maxLogMeas-r10)) OF LogMeasInfo-r10 + + +VarMeasConfig ::= SEQUENCE { + -- Measurement identities + measIdList MeasIdToAddModList OPTIONAL, + -- Measurement objects + measObjectList MeasObjectToAddModList OPTIONAL, + measObjectList-v9i0 MeasObjectToAddModList-v9e0 OPTIONAL, + -- Reporting configurations + reportConfigList ReportConfigToAddModList OPTIONAL, + -- Other parameters + quantityConfig QuantityConfig OPTIONAL, + s-Measure INTEGER (-140..-44) OPTIONAL, + speedStatePars CHOICE { + release NULL, + setup SEQUENCE { + mobilityStateParameters MobilityStateParameters, + timeToTrigger-SF SpeedStateScaleFactors + } + } OPTIONAL, + allowInterruptions-r11 BOOLEAN OPTIONAL +} + + +VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport + +VarMeasReport ::= SEQUENCE { + -- List of measurement that have been triggered + measId MeasId, + cellsTriggeredList CellsTriggeredList OPTIONAL, + numberOfReportsSent INTEGER +} + +CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CHOICE { + physCellIdEUTRA PhysCellId, + physCellIdUTRA CHOICE { + fdd PhysCellIdUTRA-FDD, + tdd PhysCellIdUTRA-TDD + }, + physCellIdGERAN SEQUENCE { + carrierFreq CarrierFreqGERAN, + physCellId PhysCellIdGERAN + }, + physCellIdCDMA2000 PhysCellIdCDMA2000 +} + +VarRLF-Report-r10 ::= SEQUENCE { + rlf-Report-r10 RLF-Report-r9, + plmn-Identity-r10 PLMN-Identity +} + +VarRLF-Report-r11 ::= SEQUENCE { + rlf-Report-r10 RLF-Report-r9, + plmn-IdentityList-r11 PLMN-IdentityList3-r11 +} + + +VarShortMAC-Input ::= SEQUENCE { + cellIdentity CellIdentity, + physCellId PhysCellId, + c-RNTI C-RNTI +} + +maxLogMeas-r10 INTEGER ::= 4060-- Maximum number of logged measurement entries + -- that can be stored by the UE + + +END + + +EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AntennaInfoCommon, + AntennaInfoDedicated-v10i0, + ARFCN-ValueEUTRA, + ARFCN-ValueEUTRA-v9e0, + CellIdentity, + C-RNTI, + DL-DCCH-Message, + InDeviceCoexIndication-r11, + MasterInformationBlock, + maxFreq, + MBMSInterestIndication-r11, + MeasConfig, + OtherConfig-r9, + PhysCellId, + RadioResourceConfigDedicated, + RSRP-Range, + RSRQ-Range, + SCellToAddModList-r10, + SecurityAlgorithmConfig, + ShortMAC-I, + SystemInformationBlockType1, + SystemInformationBlockType1-v890-IEs, + SystemInformationBlockType2, + UEAssistanceInformation-r11, + UECapabilityInformation, + UE-CapabilityRAT-ContainerList +FROM EUTRA-RRC-Definitions; + + +HandoverCommand ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverCommand-r8 HandoverCommand-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverCommand-r8-IEs ::= SEQUENCE { + handoverCommandMessage OCTET STRING (CONTAINING DL-DCCH-Message), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +HandoverPreparationInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverPreparationInformation-r8 HandoverPreparationInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverPreparationInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo UE-CapabilityRAT-ContainerList, + as-Config AS-Config OPTIONAL, -- Cond HO + rrm-Config RRM-Config OPTIONAL, + as-Context AS-Context OPTIONAL, -- Cond HO + nonCriticalExtension HandoverPreparationInformation-v920-IEs OPTIONAL +} + +HandoverPreparationInformation-v920-IEs ::= SEQUENCE { + ue-ConfigRelease-r9 ENUMERATED { + rel9, rel10, rel11, spare5, v10j0, v11e0, + spare2, spare1, ...} OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v9d0-IEs OPTIONAL +} + +HandoverPreparationInformation-v9d0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING(CONTAINING HandoverPreparationInformation-v9j0-IEs) OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-v9e0-IEs OPTIONAL +} + +-- Late non-critical extensions: +HandoverPreparationInformation-v9j0-IEs ::= SEQUENCE { + -- Following field is only for pre REL-10 late non-critical extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-v10j0-IEs OPTIONAL +} + +HandoverPreparationInformation-v10j0-IEs ::= SEQUENCE { + as-Config-v10j0 AS-Config-v10j0 OPTIONAL, + -- Following field is only for late non-critical extensions from REL-10 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +HandoverPreparationInformation-v9e0-IEs ::= SEQUENCE { + as-Config-v9e0 AS-Config-v9e0 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1130-IEs OPTIONAL +} + +HandoverPreparationInformation-v1130-IEs ::= SEQUENCE { + as-Context-v1130 AS-Context-v1130 OPTIONAL, -- Cond HO2 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioAccessCapabilityInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioAccessCapabilityInformation-r8 + UERadioAccessCapabilityInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +AS-Config ::= SEQUENCE { + sourceMeasConfig MeasConfig, + sourceRadioResourceConfig RadioResourceConfigDedicated, + sourceSecurityAlgorithmConfig SecurityAlgorithmConfig, + sourceUE-Identity C-RNTI, + sourceMasterInformationBlock MasterInformationBlock, + sourceSystemInformationBlockType1 SystemInformationBlockType1(WITH COMPONENTS + {..., nonCriticalExtension ABSENT}), + sourceSystemInformationBlockType2 SystemInformationBlockType2, + antennaInfoCommon AntennaInfoCommon, + sourceDl-CarrierFreq ARFCN-ValueEUTRA, + ..., + [[ sourceSystemInformationBlockType1Ext OCTET STRING (CONTAINING + SystemInformationBlockType1-v890-IEs) OPTIONAL, + sourceOtherConfig-r9 OtherConfig-r9 + -- sourceOtherConfig-r9 should have been optional. A target eNB compliant with this transfer + -- syntax should support receiving an AS-Config not including this extension addition group + -- e.g. from a legacy source eNB + ]], + [[ sourceSCellConfigList-r10 SCellToAddModList-r10 OPTIONAL + ]] +} + +AS-Config-v10j0 ::= SEQUENCE { + antennaInfoDedicatedPCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL +} + +AS-Config-v9e0 ::= SEQUENCE { + sourceDl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 +} + + +AS-Context ::= SEQUENCE { + reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO +} + +AS-Context-v1130 ::= SEQUENCE { + idc-Indication-r11 OCTET STRING (CONTAINING + InDeviceCoexIndication-r11) OPTIONAL, -- Cond HO2 + mbmsInterestIndication-r11 OCTET STRING (CONTAINING + MBMSInterestIndication-r11) OPTIONAL, -- Cond HO2 + powerPrefIndication-r11 OCTET STRING (CONTAINING + UEAssistanceInformation-r11) OPTIONAL, -- Cond HO2 + ... +} + + +ReestablishmentInfo ::= SEQUENCE { + sourcePhysCellId PhysCellId, + targetCellShortMAC-I ShortMAC-I, + additionalReestabInfoList AdditionalReestabInfoList OPTIONAL, + ... +} + +AdditionalReestabInfoList ::= SEQUENCE ( SIZE (1..maxReestabInfo) ) OF AdditionalReestabInfo + +AdditionalReestabInfo ::= SEQUENCE{ + cellIdentity CellIdentity, + key-eNodeB-Star Key-eNodeB-Star, + shortMAC-I ShortMAC-I +} + +Key-eNodeB-Star ::= BIT STRING (SIZE (256)) + + +RRM-Config ::= SEQUENCE { + ue-InactiveTime ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, + s25, s30, s40, s50, min1, min1s20c, min1s40, + min2, min2s30, min3, min3s30, min4, min5, min6, + min7, min8, min9, min10, min12, min14, min17, min20, + min24, min28, min33, min38, min44, min50, hr1, + hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6, + hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2, + day2hr12, day3, day4, day5, day7, day10, day14, day19, + day24, day30, dayMoreThan30} OPTIONAL, + ..., + [[ candidateCellInfoList-r10 CandidateCellInfoList-r10 OPTIONAL + ]] +} + +CandidateCellInfoList-r10 ::= SEQUENCE (SIZE (1..maxFreq)) OF CandidateCellInfo-r10 + +CandidateCellInfo-r10 ::= SEQUENCE { + -- cellIdentification + physCellId-r10 PhysCellId, + dl-CarrierFreq-r10 ARFCN-ValueEUTRA, + -- available measurement results + rsrpResult-r10 RSRP-Range OPTIONAL, + rsrqResult-r10 RSRQ-Range OPTIONAL, + ..., + [[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL + ]] +} + + +maxReestabInfo INTEGER ::= 32 -- Maximum number of KeNB* and shortMAC-I forwarded + -- at handover for re-establishment preparation + + +END + + diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-12.16.0.asn1 b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-12.16.0.asn1 new file mode 100755 index 0000000000..7159414981 --- /dev/null +++ b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-12.16.0.asn1 @@ -0,0 +1,7775 @@ + +EUTRA-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + + +BCCH-BCH-Message ::= SEQUENCE { + message BCCH-BCH-MessageType +} + +BCCH-BCH-MessageType ::= MasterInformationBlock + + +BCCH-DL-SCH-Message ::= SEQUENCE { + message BCCH-DL-SCH-MessageType +} + +BCCH-DL-SCH-MessageType ::= CHOICE { + c1 CHOICE { + systemInformation SystemInformation, + systemInformationBlockType1 SystemInformationBlockType1 + }, + messageClassExtension SEQUENCE {} +} + + +MCCH-Message ::= SEQUENCE { + message MCCH-MessageType +} + +MCCH-MessageType ::= CHOICE { + c1 CHOICE { + mbsfnAreaConfiguration-r9 MBSFNAreaConfiguration-r9 + }, + later CHOICE { + c2 CHOICE{ + mbmsCountingRequest-r10 MBMSCountingRequest-r10 + }, + messageClassExtension SEQUENCE {} + } +} + + +PCCH-Message ::= SEQUENCE { + message PCCH-MessageType +} + +PCCH-MessageType ::= CHOICE { + c1 CHOICE { + paging Paging + }, + messageClassExtension SEQUENCE {} +} + + +DL-CCCH-Message ::= SEQUENCE { + message DL-CCCH-MessageType +} + +DL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishment RRCConnectionReestablishment, + rrcConnectionReestablishmentReject RRCConnectionReestablishmentReject, + rrcConnectionReject RRCConnectionReject, + rrcConnectionSetup RRCConnectionSetup + }, + messageClassExtension SEQUENCE {} +} + + +DL-DCCH-Message ::= SEQUENCE { + message DL-DCCH-MessageType +} + +DL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + csfbParametersResponseCDMA2000 CSFBParametersResponseCDMA2000, + dlInformationTransfer DLInformationTransfer, + handoverFromEUTRAPreparationRequest HandoverFromEUTRAPreparationRequest, + mobilityFromEUTRACommand MobilityFromEUTRACommand, + rrcConnectionReconfiguration RRCConnectionReconfiguration, + rrcConnectionRelease RRCConnectionRelease, + securityModeCommand SecurityModeCommand, + ueCapabilityEnquiry UECapabilityEnquiry, + counterCheck CounterCheck, + ueInformationRequest-r9 UEInformationRequest-r9, + loggedMeasurementConfiguration-r10 LoggedMeasurementConfiguration-r10, + rnReconfiguration-r10 RNReconfiguration-r10, + spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +UL-CCCH-Message ::= SEQUENCE { + message UL-CCCH-MessageType +} + +UL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishmentRequest RRCConnectionReestablishmentRequest, + rrcConnectionRequest RRCConnectionRequest + }, + messageClassExtension SEQUENCE {} +} + + +UL-DCCH-Message ::= SEQUENCE { + message UL-DCCH-MessageType +} + +UL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + csfbParametersRequestCDMA2000 CSFBParametersRequestCDMA2000, + measurementReport MeasurementReport, + rrcConnectionReconfigurationComplete RRCConnectionReconfigurationComplete, + rrcConnectionReestablishmentComplete RRCConnectionReestablishmentComplete, + rrcConnectionSetupComplete RRCConnectionSetupComplete, + securityModeComplete SecurityModeComplete, + securityModeFailure SecurityModeFailure, + ueCapabilityInformation UECapabilityInformation, + ulHandoverPreparationTransfer ULHandoverPreparationTransfer, + ulInformationTransfer ULInformationTransfer, + counterCheckResponse CounterCheckResponse, + ueInformationResponse-r9 UEInformationResponse-r9, + proximityIndication-r9 ProximityIndication-r9, + rnReconfigurationComplete-r10 RNReconfigurationComplete-r10, + mbmsCountingResponse-r10 MBMSCountingResponse-r10, + interFreqRSTDMeasurementIndication-r10 InterFreqRSTDMeasurementIndication-r10 + }, + messageClassExtension CHOICE { + c2 CHOICE { + ueAssistanceInformation-r11 UEAssistanceInformation-r11, + inDeviceCoexIndication-r11 InDeviceCoexIndication-r11, + mbmsInterestIndication-r11 MBMSInterestIndication-r11, + scgFailureInformation-r12 SCGFailureInformation-r12, + sidelinkUEInformation-r12 SidelinkUEInformation-r12, + spare11 NULL, spare10 NULL, + spare9 NULL, spare8 NULL, spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtensionFuture-r11 SEQUENCE {} + } +} + + +CounterCheck ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + counterCheck-r8 CounterCheck-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheck-r8-IEs ::= SEQUENCE { + drb-CountMSB-InfoList DRB-CountMSB-InfoList, + nonCriticalExtension CounterCheck-v8a0-IEs OPTIONAL +} + +CounterCheck-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-CountMSB-InfoList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-CountMSB-Info + +DRB-CountMSB-Info ::= SEQUENCE { + drb-Identity DRB-Identity, + countMSB-Uplink INTEGER(0..33554431), + countMSB-Downlink INTEGER(0..33554431) +} + + +CounterCheckResponse ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + counterCheckResponse-r8 CounterCheckResponse-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheckResponse-r8-IEs ::= SEQUENCE { + drb-CountInfoList DRB-CountInfoList, + nonCriticalExtension CounterCheckResponse-v8a0-IEs OPTIONAL +} + +CounterCheckResponse-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-CountInfoList ::= SEQUENCE (SIZE (0..maxDRB)) OF DRB-CountInfo + +DRB-CountInfo ::= SEQUENCE { + drb-Identity DRB-Identity, + count-Uplink INTEGER(0..4294967295), + count-Downlink INTEGER(0..4294967295) +} + + +CSFBParametersRequestCDMA2000 ::= SEQUENCE { + criticalExtensions CHOICE { + csfbParametersRequestCDMA2000-r8 CSFBParametersRequestCDMA2000-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CSFBParametersRequestCDMA2000-r8-IEs ::= SEQUENCE { + nonCriticalExtension CSFBParametersRequestCDMA2000-v8a0-IEs OPTIONAL +} + +CSFBParametersRequestCDMA2000-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +CSFBParametersResponseCDMA2000 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + csfbParametersResponseCDMA2000-r8 CSFBParametersResponseCDMA2000-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CSFBParametersResponseCDMA2000-r8-IEs ::= SEQUENCE { + rand RAND-CDMA2000, + mobilityParameters MobilityParametersCDMA2000, + nonCriticalExtension CSFBParametersResponseCDMA2000-v8a0-IEs OPTIONAL +} + +CSFBParametersResponseCDMA2000-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +DLInformationTransfer ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + dlInformationTransfer-r8 DLInformationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +DLInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType CHOICE { + dedicatedInfoNAS DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000 + }, + nonCriticalExtension DLInformationTransfer-v8a0-IEs OPTIONAL +} + +DLInformationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +HandoverFromEUTRAPreparationRequest ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + handoverFromEUTRAPreparationRequest-r8 + HandoverFromEUTRAPreparationRequest-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverFromEUTRAPreparationRequest-r8-IEs ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + rand RAND-CDMA2000 OPTIONAL, -- Cond cdma2000-Type + mobilityParameters MobilityParametersCDMA2000 OPTIONAL, -- Cond cdma2000-Type + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v890-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v920-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v920-IEs ::= SEQUENCE { + concurrPrepCDMA2000-HRPD-r9 BOOLEAN OPTIONAL, -- Cond cdma2000-Type + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v1020-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v1020-IEs ::= SEQUENCE { + dualRxTxRedirectIndicator-r10 ENUMERATED {true} OPTIONAL, -- Cond cdma2000-1XRTT + redirectCarrierCDMA2000-1XRTT-r10 CarrierFreqCDMA2000 OPTIONAL, -- Cond dualRxTxRedirect + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +InDeviceCoexIndication-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + inDeviceCoexIndication-r11 InDeviceCoexIndication-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +InDeviceCoexIndication-r11-IEs ::= SEQUENCE { + affectedCarrierFreqList-r11 AffectedCarrierFreqList-r11 OPTIONAL, + tdm-AssistanceInfo-r11 TDM-AssistanceInfo-r11 OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension InDeviceCoexIndication-v11d0-IEs OPTIONAL +} + +InDeviceCoexIndication-v11d0-IEs ::= SEQUENCE { + ul-CA-AssistanceInfo-r11 SEQUENCE { + affectedCarrierFreqCombList-r11 AffectedCarrierFreqCombList-r11 OPTIONAL, + victimSystemType-r11 VictimSystemType-r11 + } OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AffectedCarrierFreqList-r11 ::= SEQUENCE (SIZE (1..maxFreqIDC-r11)) OF AffectedCarrierFreq-r11 + +AffectedCarrierFreq-r11 ::= SEQUENCE { + carrierFreq-r11 MeasObjectId, + interferenceDirection-r11 ENUMERATED {eutra, other, both, spare} +} + +AffectedCarrierFreqCombList-r11 ::= SEQUENCE (SIZE (1..maxCombIDC-r11)) OF AffectedCarrierFreqComb-r11 + +AffectedCarrierFreqComb-r11 ::= SEQUENCE (SIZE (2..maxServCell-r10)) OF MeasObjectId + +TDM-AssistanceInfo-r11 ::= CHOICE { + drx-AssistanceInfo-r11 SEQUENCE { + drx-CycleLength-r11 ENUMERATED {sf40, sf64, sf80, sf128, sf160, + sf256, spare2, spare1}, + drx-Offset-r11 INTEGER (0..255) OPTIONAL, + drx-ActiveTime-r11 ENUMERATED {sf20, sf30, sf40, sf60, sf80, + sf100, spare2, spare1} + }, + idc-SubframePatternList-r11 IDC-SubframePatternList-r11, + ... +} + +IDC-SubframePatternList-r11 ::= SEQUENCE (SIZE (1..maxSubframePatternIDC-r11)) OF IDC-SubframePattern-r11 + +IDC-SubframePattern-r11 ::= CHOICE { + subframePatternFDD-r11 BIT STRING (SIZE (4)), + subframePatternTDD-r11 CHOICE { + subframeConfig0-r11 BIT STRING (SIZE (70)), + subframeConfig1-5-r11 BIT STRING (SIZE (10)), + subframeConfig6-r11 BIT STRING (SIZE (60)) + }, + ... +} + +VictimSystemType-r11 ::= SEQUENCE { + gps-r11 ENUMERATED {true} OPTIONAL, + glonass-r11 ENUMERATED {true} OPTIONAL, + bds-r11 ENUMERATED {true} OPTIONAL, + galileo-r11 ENUMERATED {true} OPTIONAL, + wlan-r11 ENUMERATED {true} OPTIONAL, + bluetooth-r11 ENUMERATED {true} OPTIONAL +} + + +InterFreqRSTDMeasurementIndication-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + interFreqRSTDMeasurementIndication-r10 InterFreqRSTDMeasurementIndication-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +InterFreqRSTDMeasurementIndication-r10-IEs ::= SEQUENCE { + rstd-InterFreqIndication-r10 CHOICE { + start SEQUENCE { + rstd-InterFreqInfoList-r10 RSTD-InterFreqInfoList-r10 + }, + stop NULL + }, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RSTD-InterFreqInfoList-r10 ::= SEQUENCE (SIZE(1..maxRSTD-Freq-r10)) OF RSTD-InterFreqInfo-r10 + +RSTD-InterFreqInfo-r10 ::= SEQUENCE { + carrierFreq-r10 ARFCN-ValueEUTRA, + measPRS-Offset-r10 INTEGER (0..39), + ..., + [[ carrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL + ]] +} + + +LoggedMeasurementConfiguration-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + loggedMeasurementConfiguration-r10 LoggedMeasurementConfiguration-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + + +LoggedMeasurementConfiguration-r10-IEs ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, -- Need OR + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10, + nonCriticalExtension LoggedMeasurementConfiguration-v1080-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1080-IEs ::= SEQUENCE { + lateNonCriticalExtension-r10 OCTET STRING OPTIONAL, + nonCriticalExtension LoggedMeasurementConfiguration-v1130-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1130-IEs ::= SEQUENCE { + plmn-IdentityList-r11 PLMN-IdentityList3-r11 OPTIONAL, -- Need OR + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, -- Need OR + nonCriticalExtension LoggedMeasurementConfiguration-v1250-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1250-IEs ::= SEQUENCE { + targetMBSFN-AreaList-r12 TargetMBSFN-AreaList-r12 OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +TargetMBSFN-AreaList-r12 ::= SEQUENCE (SIZE (0..maxMBSFN-Area)) OF TargetMBSFN-Area-r12 + +TargetMBSFN-Area-r12 ::= SEQUENCE { + mbsfn-AreaId-r12 MBSFN-AreaId-r12 OPTIONAL, -- Need OR + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + ... +} + + +MasterInformationBlock ::= SEQUENCE { + dl-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100}, + phich-Config PHICH-Config, + systemFrameNumber BIT STRING (SIZE (8)), + spare BIT STRING (SIZE (10)) +} + + + +MBMSCountingRequest-r10 ::= SEQUENCE { + countingRequestList-r10 CountingRequestList-r10, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CountingRequestList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingRequestInfo-r10 + +CountingRequestInfo-r10 ::= SEQUENCE { + tmgi-r10 TMGI-r9, + ... +} + + +MBMSCountingResponse-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + countingResponse-r10 MBMSCountingResponse-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MBMSCountingResponse-r10-IEs ::= SEQUENCE { + mbsfn-AreaIndex-r10 INTEGER (0..maxMBSFN-Area-1) OPTIONAL, + countingResponseList-r10 CountingResponseList-r10 OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CountingResponseList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingResponseInfo-r10 + +CountingResponseInfo-r10 ::= SEQUENCE { + countingResponseService-r10 INTEGER (0..maxServiceCount-1), + ... +} + + +MBMSInterestIndication-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + interestIndication-r11 MBMSInterestIndication-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MBMSInterestIndication-r11-IEs ::= SEQUENCE { + mbms-FreqList-r11 CarrierFreqListMBMS-r11 OPTIONAL, + mbms-Priority-r11 ENUMERATED {true} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MBSFNAreaConfiguration-r9 ::= SEQUENCE { + commonSF-Alloc-r9 CommonSF-AllocPatternList-r9, + commonSF-AllocPeriod-r9 ENUMERATED { + rf4, rf8, rf16, rf32, rf64, rf128, rf256}, + pmch-InfoList-r9 PMCH-InfoList-r9, + nonCriticalExtension MBSFNAreaConfiguration-v930-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MBSFNAreaConfiguration-v1250-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v1250-IEs ::= SEQUENCE { + pmch-InfoListExt-r12 PMCH-InfoListExt-r12 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CommonSF-AllocPatternList-r9 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig + + +MeasurementReport ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + measurementReport-r8 MeasurementReport-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MeasurementReport-r8-IEs ::= SEQUENCE { + measResults MeasResults, + nonCriticalExtension MeasurementReport-v8a0-IEs OPTIONAL +} + +MeasurementReport-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MobilityFromEUTRACommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + mobilityFromEUTRACommand-r8 MobilityFromEUTRACommand-r8-IEs, + mobilityFromEUTRACommand-r9 MobilityFromEUTRACommand-r9-IEs, + spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MobilityFromEUTRACommand-r8-IEs ::= SEQUENCE { + cs-FallbackIndicator BOOLEAN, + purpose CHOICE{ + handover Handover, + cellChangeOrder CellChangeOrder + }, + nonCriticalExtension MobilityFromEUTRACommand-v8a0-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MobilityFromEUTRACommand-v8d0-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v8d0-IEs ::= SEQUENCE { + bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +MobilityFromEUTRACommand-r9-IEs ::= SEQUENCE { + cs-FallbackIndicator BOOLEAN, + purpose CHOICE{ + handover Handover, + cellChangeOrder CellChangeOrder, + e-CSFB-r9 E-CSFB-r9, + ... + }, + nonCriticalExtension MobilityFromEUTRACommand-v930-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MobilityFromEUTRACommand-v960-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v960-IEs ::= SEQUENCE { + bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +Handover ::= SEQUENCE { + targetRAT-Type ENUMERATED { + utra, geran, cdma2000-1XRTT, cdma2000-HRPD, + spare4, spare3, spare2, spare1, ...}, + targetRAT-MessageContainer OCTET STRING, + nas-SecurityParamFromEUTRA OCTET STRING (SIZE (1)) OPTIONAL, -- Cond UTRAGERAN + systemInformation SI-OrPSI-GERAN OPTIONAL -- Cond PSHO +} + +CellChangeOrder ::= SEQUENCE { + t304 ENUMERATED { + ms100, ms200, ms500, ms1000, + ms2000, ms4000, ms8000, spare1}, + targetRAT-Type CHOICE { + geran SEQUENCE { + physCellId PhysCellIdGERAN, + carrierFreq CarrierFreqGERAN, + networkControlOrder BIT STRING (SIZE (2)) OPTIONAL, -- Need OP + systemInformation SI-OrPSI-GERAN OPTIONAL -- Need OP + }, + ... + } +} + +SI-OrPSI-GERAN ::= CHOICE { + si SystemInfoListGERAN, + psi SystemInfoListGERAN +} + +E-CSFB-r9 ::= SEQUENCE { + messageContCDMA2000-1XRTT-r9 OCTET STRING OPTIONAL, -- Need ON + mobilityCDMA2000-HRPD-r9 ENUMERATED { + handover, redirection + } OPTIONAL, -- Need OP + messageContCDMA2000-HRPD-r9 OCTET STRING OPTIONAL, -- Cond concHO + redirectCarrierCDMA2000-HRPD-r9 CarrierFreqCDMA2000 OPTIONAL -- Cond concRedir +} + + +Paging ::= SEQUENCE { + pagingRecordList PagingRecordList OPTIONAL, -- Need ON + systemInfoModification ENUMERATED {true} OPTIONAL, -- Need ON + etws-Indication ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v890-IEs OPTIONAL +} + +Paging-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension Paging-v920-IEs OPTIONAL +} + +Paging-v920-IEs ::= SEQUENCE { + cmas-Indication-r9 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v1130-IEs OPTIONAL +} + +Paging-v1130-IEs ::= SEQUENCE { + eab-ParamModification-r11 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PagingRecordList ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord + +PagingRecord ::= SEQUENCE { + ue-Identity PagingUE-Identity, + cn-Domain ENUMERATED {ps, cs}, + ... +} + +PagingUE-Identity ::= CHOICE { + s-TMSI S-TMSI, + imsi IMSI, + ... +} + +IMSI ::= SEQUENCE (SIZE (6..21)) OF IMSI-Digit + +IMSI-Digit ::= INTEGER (0..9) + + +ProximityIndication-r9 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + proximityIndication-r9 ProximityIndication-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ProximityIndication-r9-IEs ::= SEQUENCE { + type-r9 ENUMERATED {entering, leaving}, + carrierFreq-r9 CHOICE { + eutra-r9 ARFCN-ValueEUTRA, + utra-r9 ARFCN-ValueUTRA, + ..., + eutra2-v9e0 ARFCN-ValueEUTRA-v9e0 + }, + nonCriticalExtension ProximityIndication-v930-IEs OPTIONAL +} + +ProximityIndication-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RNReconfiguration-r10 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rnReconfiguration-r10 RNReconfiguration-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RNReconfiguration-r10-IEs ::= SEQUENCE { + rn-SystemInfo-r10 RN-SystemInfo-r10 OPTIONAL, -- Need ON + rn-SubframeConfig-r10 RN-SubframeConfig-r10 OPTIONAL, -- Need ON + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RN-SystemInfo-r10 ::= SEQUENCE { + systemInformationBlockType1-r10 OCTET STRING (CONTAINING SystemInformationBlockType1) OPTIONAL, -- Need ON + systemInformationBlockType2-r10 SystemInformationBlockType2 OPTIONAL, -- Need ON + ... +} + + +RNReconfigurationComplete-r10 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rnReconfigurationComplete-r10 RNReconfigurationComplete-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RNReconfigurationComplete-r10-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReconfiguration ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReconfiguration-r8 RRCConnectionReconfiguration-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfiguration-r8-IEs ::= SEQUENCE { + measConfig MeasConfig OPTIONAL, -- Need ON + mobilityControlInfo MobilityControlInfo OPTIONAL, -- Cond HO + dedicatedInfoNASList SEQUENCE (SIZE(1..maxDRB)) OF + DedicatedInfoNAS OPTIONAL, -- Cond nonHO + radioResourceConfigDedicated RadioResourceConfigDedicated OPTIONAL, -- Cond HO-toEUTRA + securityConfigHO SecurityConfigHO OPTIONAL, -- Cond HO + nonCriticalExtension RRCConnectionReconfiguration-v890-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING RRCConnectionReconfiguration-v8m0-IEs) OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v920-IEs OPTIONAL +} + +-- Late non-critical extensions: +RRCConnectionReconfiguration-v8m0-IEs ::= SEQUENCE { + -- Following field is only for pre REL-10 late non-critical extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v10i0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v10i0-IEs ::= SEQUENCE { + antennaInfoDedicatedPCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v10l0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v10l0-IEs ::= SEQUENCE { + mobilityControlInfo-v10l0 MobilityControlInfo-v10l0 OPTIONAL, + sCellToAddModList-v10l0 SCellToAddModList-v10l0 OPTIONAL, -- Need ON + -- Following field is only for late non-critical extensions from REL-10 to REL-11 + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v12f0-IEs OPTIONAL +} +RRCConnectionReconfiguration-v12f0-IEs ::= SEQUENCE { + scg-Configuration-v12f0 SCG-Configuration-v12f0 OPTIONAL, -- Cond nonFullConfig + -- Following field is only for late non-critical extensions from REL-12 + lateNonCriticalExtension OCTET STRING OPTIONAL, + -- Following field is not used in this release (i.e. only for late non-critical extensions from REL-13 onwards) + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +RRCConnectionReconfiguration-v920-IEs ::= SEQUENCE { + otherConfig-r9 OtherConfig-r9 OPTIONAL, -- Need ON + fullConfig-r9 ENUMERATED {true} OPTIONAL, -- Cond HO-Reestab + nonCriticalExtension RRCConnectionReconfiguration-v1020-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1020-IEs ::= SEQUENCE { + sCellToReleaseList-r10 SCellToReleaseList-r10 OPTIONAL, -- Need ON + sCellToAddModList-r10 SCellToAddModList-r10 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1130-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1130-IEs ::= SEQUENCE { + systemInfomationBlockType1Dedicated-r11 OCTET STRING (CONTAINING SystemInformationBlockType1) OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1250-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1250-IEs ::= SEQUENCE { + wlan-OffloadInfo-r12 CHOICE { + release NULL, + setup SEQUENCE { + wlan-OffloadConfigDedicated-r12 WLAN-OffloadConfig-r12, + t350-r12 ENUMERATED {min5, min10, min20, min30, min60, + min120, min180, spare1} OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + scg-Configuration-r12 SCG-Configuration-r12 OPTIONAL, -- Cond nonFullConfig + sl-SyncTxControl-r12 SL-SyncTxControl-r12 OPTIONAL, -- Need ON + sl-DiscConfig-r12 SL-DiscConfig-r12 OPTIONAL, -- Need ON + sl-CommConfig-r12 SL-CommConfig-r12 OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SL-SyncTxControl-r12 ::= SEQUENCE { + networkControlledSyncTx-r12 ENUMERATED {on, off} OPTIONAL -- Need OP +} + +PSCellToAddMod-r12 ::= SEQUENCE { + sCellIndex-r12 SCellIndex-r10, + cellIdentification-r12 SEQUENCE { + physCellId-r12 PhysCellId, + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonPSCell-r12 RadioResourceConfigCommonPSCell-r12 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedPSCell-r12 RadioResourceConfigDedicatedPSCell-r12 OPTIONAL, -- Cond SCellAdd2 + ..., + [[ antennaInfoDedicatedPSCell-v1280 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON + ]] +} + +PSCellToAddMod-v12f0 ::= SEQUENCE { + radioResourceConfigCommonPSCell-r12 RadioResourceConfigCommonPSCell-v12f0 OPTIONAL +} + +PowerCoordinationInfo-r12 ::= SEQUENCE { + p-MeNB-r12 INTEGER (1..16), + p-SeNB-r12 INTEGER (1..16), + powerControlMode-r12 INTEGER (1..2) +} + +SCellToAddModList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-r10 + +SCellToAddModList-v10l0 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-v10l0 + +SCellToAddMod-r10 ::= SEQUENCE { + sCellIndex-r10 SCellIndex-r10, + cellIdentification-r10 SEQUENCE { + physCellId-r10 PhysCellId, + dl-CarrierFreq-r10 ARFCN-ValueEUTRA + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonSCell-r10 RadioResourceConfigCommonSCell-r10 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedSCell-r10 RadioResourceConfigDedicatedSCell-r10 OPTIONAL, -- Cond SCellAdd2 + ..., + [[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max + ]], + [[ antennaInfoDedicatedSCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON + ]] +} + +SCellToAddMod-v10l0 ::= SEQUENCE { + radioResourceConfigCommonSCell-v10l0 RadioResourceConfigCommonSCell-v10l0 OPTIONAL +} + +SCellToReleaseList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellIndex-r10 + +SCG-Configuration-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + scg-ConfigPartMCG-r12 SEQUENCE { + scg-Counter-r12 INTEGER (0.. 65535) OPTIONAL, -- Need ON + powerCoordinationInfo-r12 PowerCoordinationInfo-r12 OPTIONAL, -- Need ON + ... + } OPTIONAL, -- Need ON + scg-ConfigPartSCG-r12 SCG-ConfigPartSCG-r12 OPTIONAL -- Need ON + } +} + +SCG-Configuration-v12f0 ::= CHOICE { + release NULL, + setup SEQUENCE { + scg-ConfigPartSCG-v12f0 SCG-ConfigPartSCG-v12f0 OPTIONAL -- Need ON + } +} + +SCG-ConfigPartSCG-r12 ::= SEQUENCE { + radioResourceConfigDedicatedSCG-r12 RadioResourceConfigDedicatedSCG-r12 OPTIONAL, -- Need ON + sCellToReleaseListSCG-r12 SCellToReleaseList-r10 OPTIONAL, -- Need ON + pSCellToAddMod-r12 PSCellToAddMod-r12 OPTIONAL, -- Need ON + sCellToAddModListSCG-r12 SCellToAddModList-r10 OPTIONAL, -- Need ON + mobilityControlInfoSCG-r12 MobilityControlInfoSCG-r12 OPTIONAL, -- Need ON + ... +} + +SCG-ConfigPartSCG-v12f0 ::= SEQUENCE { + pSCellToAddMod-v12f0 PSCellToAddMod-v12f0 OPTIONAL, -- Need ON + sCellToAddModListSCG-v12f0 SCellToAddModList-v10l0 OPTIONAL -- Need ON +} + +SecurityConfigHO ::= SEQUENCE { + handoverType CHOICE { + intraLTE SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig OPTIONAL, -- Cond fullConfig + keyChangeIndicator BOOLEAN, + nextHopChainingCount NextHopChainingCount + }, + interRAT SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig, + nas-SecurityParamToEUTRA OCTET STRING (SIZE(6)) + } + }, + ... +} + + + +RRCConnectionReconfigurationComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReconfigurationComplete-r8 + RRCConnectionReconfigurationComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfigurationComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReconfigurationComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1020-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1020-IEs ::= SEQUENCE { + rlf-InfoAvailable-r10 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1130-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1250-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1250-IEs ::= SEQUENCE { + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishment ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReestablishment-r8 RRCConnectionReestablishment-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishment-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated RadioResourceConfigDedicated, + nextHopChainingCount NextHopChainingCount, + nonCriticalExtension RRCConnectionReestablishment-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishment-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReestablishmentComplete-r8 + RRCConnectionReestablishmentComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReestablishmentComplete-v920-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v920-IEs ::= SEQUENCE { + rlf-InfoAvailable-r9 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1020-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1020-IEs ::= SEQUENCE { + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1130-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1250-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1250-IEs ::= SEQUENCE { + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentReject ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentReject-r8 + RRCConnectionReestablishmentReject-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentReject-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReestablishmentReject-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishmentReject-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentRequest ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentRequest-r8 + RRCConnectionReestablishmentRequest-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentRequest-r8-IEs ::= SEQUENCE { + ue-Identity ReestabUE-Identity, + reestablishmentCause ReestablishmentCause, + spare BIT STRING (SIZE (2)) +} + +ReestabUE-Identity ::= SEQUENCE { + c-RNTI C-RNTI, + physCellId PhysCellId, + shortMAC-I ShortMAC-I +} + +ReestablishmentCause ::= ENUMERATED { + reconfigurationFailure, handoverFailure, + otherFailure, spare1} + + +RRCConnectionReject ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionReject-r8 RRCConnectionReject-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReject-r8-IEs ::= SEQUENCE { + waitTime INTEGER (1..16), + nonCriticalExtension RRCConnectionReject-v8a0-IEs OPTIONAL +} + +RRCConnectionReject-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReject-v1020-IEs OPTIONAL +} + +RRCConnectionReject-v1020-IEs ::= SEQUENCE { + extendedWaitTime-r10 INTEGER (1..1800) OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReject-v1130-IEs OPTIONAL +} + +RRCConnectionReject-v1130-IEs ::= SEQUENCE { + deprioritisationReq-r11 SEQUENCE { + deprioritisationType-r11 ENUMERATED {frequency, e-utra}, + deprioritisationTimer-r11 ENUMERATED {min5, min10, min15, min30} + } OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionRelease ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionRelease-r8 RRCConnectionRelease-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRelease-r8-IEs ::= SEQUENCE { + releaseCause ReleaseCause, + redirectedCarrierInfo RedirectedCarrierInfo OPTIONAL, -- Need ON + idleModeMobilityControlInfo IdleModeMobilityControlInfo OPTIONAL, -- Need OP + nonCriticalExtension RRCConnectionRelease-v890-IEs OPTIONAL +} + +RRCConnectionRelease-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING RRCConnectionRelease-v9e0-IEs) OPTIONAL, + nonCriticalExtension RRCConnectionRelease-v920-IEs OPTIONAL +} + +-- Late non critical extensions +RRCConnectionRelease-v9e0-IEs ::= SEQUENCE { + redirectedCarrierInfo-v9e0 RedirectedCarrierInfo-v9e0 OPTIONAL, -- Cond NoRedirect-r8 + idleModeMobilityControlInfo-v9e0 IdleModeMobilityControlInfo-v9e0 OPTIONAL, -- Cond IdleInfoEUTRA + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +RRCConnectionRelease-v920-IEs ::= SEQUENCE { + cellInfoList-r9 CHOICE { + geran-r9 CellInfoListGERAN-r9, + utra-FDD-r9 CellInfoListUTRA-FDD-r9, + utra-TDD-r9 CellInfoListUTRA-TDD-r9, + ..., + utra-TDD-r10 CellInfoListUTRA-TDD-r10 + } OPTIONAL, -- Cond Redirection + nonCriticalExtension RRCConnectionRelease-v1020-IEs OPTIONAL +} + +RRCConnectionRelease-v1020-IEs ::= SEQUENCE { + extendedWaitTime-r10 INTEGER (1..1800) OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +ReleaseCause ::= ENUMERATED {loadBalancingTAUrequired, + other, cs-FallbackHighPriority-v1020, spare1} + +RedirectedCarrierInfo ::= CHOICE { + eutra ARFCN-ValueEUTRA, + geran CarrierFreqsGERAN, + utra-FDD ARFCN-ValueUTRA, + utra-TDD ARFCN-ValueUTRA, + cdma2000-HRPD CarrierFreqCDMA2000, + cdma2000-1xRTT CarrierFreqCDMA2000, + ..., + utra-TDD-r10 CarrierFreqListUTRA-TDD-r10 +} + +RedirectedCarrierInfo-v9e0 ::= SEQUENCE { + eutra-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +CarrierFreqListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxFreqUTRA-TDD-r10)) OF ARFCN-ValueUTRA + +IdleModeMobilityControlInfo ::= SEQUENCE { + freqPriorityListEUTRA FreqPriorityListEUTRA OPTIONAL, -- Need ON + freqPriorityListGERAN FreqsPriorityListGERAN OPTIONAL, -- Need ON + freqPriorityListUTRA-FDD FreqPriorityListUTRA-FDD OPTIONAL, -- Need ON + freqPriorityListUTRA-TDD FreqPriorityListUTRA-TDD OPTIONAL, -- Need ON + bandClassPriorityListHRPD BandClassPriorityListHRPD OPTIONAL, -- Need ON + bandClassPriorityList1XRTT BandClassPriorityList1XRTT OPTIONAL, -- Need ON + t320 ENUMERATED { + min5, min10, min20, min30, min60, min120, min180, + spare1} OPTIONAL, -- Need OR + ..., + [[ freqPriorityListExtEUTRA-r12 FreqPriorityListExtEUTRA-r12 OPTIONAL -- Need ON + ]] +} + +IdleModeMobilityControlInfo-v9e0 ::= SEQUENCE { + freqPriorityListEUTRA-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v9e0 +} + +FreqPriorityListEUTRA ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA + +FreqPriorityListExtEUTRA-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-r12 + +FreqPriorityEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityEUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max +} + +FreqPriorityEUTRA-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + cellReselectionPriority-r12 CellReselectionPriority +} + +FreqsPriorityListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF FreqsPriorityGERAN + +FreqsPriorityGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF FreqPriorityUTRA-FDD + +FreqPriorityUTRA-FDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF FreqPriorityUTRA-TDD + +FreqPriorityUTRA-TDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority +} + +BandClassPriorityListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriorityHRPD + +BandClassPriorityHRPD ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority +} + +BandClassPriorityList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriority1XRTT + +BandClassPriority1XRTT ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority +} + +CellInfoListGERAN-r9 ::= SEQUENCE (SIZE (1..maxCellInfoGERAN-r9)) OF CellInfoGERAN-r9 + +CellInfoGERAN-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdGERAN, + carrierFreq-r9 CarrierFreqGERAN, + systemInformation-r9 SystemInfoListGERAN +} + +CellInfoListUTRA-FDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-FDD-r9 + +CellInfoUTRA-FDD-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdUTRA-FDD, + utra-BCCH-Container-r9 OCTET STRING +} + +CellInfoListUTRA-TDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r9 + +CellInfoUTRA-TDD-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdUTRA-TDD, + utra-BCCH-Container-r9 OCTET STRING +} + +CellInfoListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r10 + +CellInfoUTRA-TDD-r10 ::= SEQUENCE { + physCellId-r10 PhysCellIdUTRA-TDD, + carrierFreq-r10 ARFCN-ValueUTRA, + utra-BCCH-Container-r10 OCTET STRING +} + + +RRCConnectionRequest ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionRequest-r8 RRCConnectionRequest-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRequest-r8-IEs ::= SEQUENCE { + ue-Identity InitialUE-Identity, + establishmentCause EstablishmentCause, + spare BIT STRING (SIZE (1)) +} + +InitialUE-Identity ::= CHOICE { + s-TMSI S-TMSI, + randomValue BIT STRING (SIZE (40)) +} + +EstablishmentCause ::= ENUMERATED { + emergency, highPriorityAccess, mt-Access, mo-Signalling, + mo-Data, delayTolerantAccess-v1020, mo-VoiceCall-v1280, spare1} + + +RRCConnectionSetup ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionSetup-r8 RRCConnectionSetup-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetup-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated RadioResourceConfigDedicated, + nonCriticalExtension RRCConnectionSetup-v8a0-IEs OPTIONAL +} + +RRCConnectionSetup-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionSetupComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionSetupComplete-r8 RRCConnectionSetupComplete-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetupComplete-r8-IEs ::= SEQUENCE { + selectedPLMN-Identity INTEGER (1..maxPLMN-r11), + registeredMME RegisteredMME OPTIONAL, + dedicatedInfoNAS DedicatedInfoNAS, + nonCriticalExtension RRCConnectionSetupComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1020-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1020-IEs ::= SEQUENCE { + gummei-Type-r10 ENUMERATED {native, mapped} OPTIONAL, + rlf-InfoAvailable-r10 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + rn-SubframeConfigReq-r10 ENUMERATED {required, notRequired} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1130-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1250-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1250-IEs ::= SEQUENCE { + mobilityState-r12 ENUMERATED {normal, medium, high, spare} OPTIONAL, + mobilityHistoryAvail-r12 ENUMERATED {true} OPTIONAL, + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RegisteredMME ::= SEQUENCE { + plmn-Identity PLMN-Identity OPTIONAL, + mmegi BIT STRING (SIZE (16)), + mmec MMEC +} + + +SCGFailureInformation-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + scgFailureInformation-r12 SCGFailureInformation-r12-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCGFailureInformation-r12-IEs ::= SEQUENCE { + failureReportSCG-r12 FailureReportSCG-r12 OPTIONAL, + nonCriticalExtension SCGFailureInformation-v1310-IEs OPTIONAL +} + +-- Backported from REL-13 +SCGFailureInformation-v1310-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING SCGFailureInformation-v12d0-IEs) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Late non-critical extensions: +SCGFailureInformation-v12d0-IEs ::= SEQUENCE { + failureReportSCG-v12d0 FailureReportSCG-v12d0 OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +FailureReportSCG-r12 ::= SEQUENCE { + failureType-r12 ENUMERATED {t313-Expiry, randomAccessProblem, + rlc-MaxNumRetx, scg-ChangeFailure }, + measResultServFreqList-r12 MeasResultServFreqList-r10 OPTIONAL, + measResultNeighCells-r12 MeasResultList2EUTRA-r9 OPTIONAL, + ..., + [[ failureType-v1290 ENUMERATED {maxUL-TimingDiff-v1290} OPTIONAL + ]] +} + +FailureReportSCG-v12d0 ::= SEQUENCE { + measResultNeighCells-v12d0 MeasResultList2EUTRA-v9e0 OPTIONAL +} + + +SecurityModeCommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + securityModeCommand-r8 SecurityModeCommand-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeCommand-r8-IEs ::= SEQUENCE { + securityConfigSMC SecurityConfigSMC, + nonCriticalExtension SecurityModeCommand-v8a0-IEs OPTIONAL +} + +SecurityModeCommand-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SecurityConfigSMC ::= SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig, + ... +} + + +SecurityModeComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeComplete-r8 SecurityModeComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension SecurityModeComplete-v8a0-IEs OPTIONAL +} + +SecurityModeComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SecurityModeFailure ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeFailure-r8 SecurityModeFailure-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeFailure-r8-IEs ::= SEQUENCE { + nonCriticalExtension SecurityModeFailure-v8a0-IEs OPTIONAL +} + +SecurityModeFailure-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SidelinkUEInformation-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + sidelinkUEInformation-r12 SidelinkUEInformation-r12-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SidelinkUEInformation-r12-IEs ::= SEQUENCE { + commRxInterestedFreq-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, + commTxResourceReq-r12 SL-CommTxResourceReq-r12 OPTIONAL, + discRxInterest-r12 ENUMERATED {true} OPTIONAL, + discTxResourceReq-r12 INTEGER (1..63) OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SL-CommTxResourceReq-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, + destinationInfoList-r12 SL-DestinationInfoList-r12 +} + +SL-DestinationInfoList-r12 ::= SEQUENCE (SIZE (1..maxSL-Dest-r12)) OF SL-DestinationIdentity-r12 + +SL-DestinationIdentity-r12 ::= BIT STRING (SIZE (24)) + + +SystemInformation ::= SEQUENCE { + criticalExtensions CHOICE { + systemInformation-r8 SystemInformation-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} +SystemInformation-r8-IEs ::= SEQUENCE { + sib-TypeAndInfo SEQUENCE (SIZE (1..maxSIB)) OF CHOICE { + sib2 SystemInformationBlockType2, + sib3 SystemInformationBlockType3, + sib4 SystemInformationBlockType4, + sib5 SystemInformationBlockType5, + sib6 SystemInformationBlockType6, + sib7 SystemInformationBlockType7, + sib8 SystemInformationBlockType8, + sib9 SystemInformationBlockType9, + sib10 SystemInformationBlockType10, + sib11 SystemInformationBlockType11, + ..., + sib12-v920 SystemInformationBlockType12-r9, + sib13-v920 SystemInformationBlockType13-r9, + sib14-v1130 SystemInformationBlockType14-r11, + sib15-v1130 SystemInformationBlockType15-r11, + sib16-v1130 SystemInformationBlockType16-r11, + sib17-v1250 SystemInformationBlockType17-r12, + sib18-v1250 SystemInformationBlockType18-r12, + sib19-v1250 SystemInformationBlockType19-r12 + }, + nonCriticalExtension SystemInformation-v8a0-IEs OPTIONAL +} + +SystemInformation-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType1 ::= SEQUENCE { + cellAccessRelatedInfo SEQUENCE { + plmn-IdentityList PLMN-IdentityList, + trackingAreaCode TrackingAreaCode, + cellIdentity CellIdentity, + cellBarred ENUMERATED {barred, notBarred}, + intraFreqReselection ENUMERATED {allowed, notAllowed}, + csg-Indication BOOLEAN, + csg-Identity CSG-Identity OPTIONAL -- Need OR + }, + cellSelectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + q-RxLevMinOffset INTEGER (1..8) OPTIONAL -- Need OP + }, + p-Max P-Max OPTIONAL, -- Need OP + freqBandIndicator FreqBandIndicator, + schedulingInfoList SchedulingInfoList, + tdd-Config TDD-Config OPTIONAL, -- Cond TDD + si-WindowLength ENUMERATED { + ms1, ms2, ms5, ms10, ms15, ms20, + ms40}, + systemInfoValueTag INTEGER (0..31), + nonCriticalExtension SystemInformationBlockType1-v890-IEs OPTIONAL +} + +SystemInformationBlockType1-v890-IEs::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType1-v8h0-IEs) OPTIONAL, + nonCriticalExtension SystemInformationBlockType1-v920-IEs OPTIONAL +} + +-- Late non critical extensions +SystemInformationBlockType1-v8h0-IEs ::= SEQUENCE { + multiBandInfoList MultiBandInfoList OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType1-v9e0-IEs ::= SEQUENCE { + freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL, -- Cond FBI-max + multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL, -- Cond mFBI-max + nonCriticalExtension SystemInformationBlockType1-v10j0-IEs OPTIONAL +} + +SystemInformationBlockType1-v10j0-IEs ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType1-v10l0-IEs ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +SystemInformationBlockType1-v920-IEs ::= SEQUENCE { + ims-EmergencySupport-r9 ENUMERATED {true} OPTIONAL, -- Need OR + cellSelectionInfo-v920 CellSelectionInfo-v920 OPTIONAL, -- Cond RSRQ + nonCriticalExtension SystemInformationBlockType1-v1130-IEs OPTIONAL +} + +SystemInformationBlockType1-v1130-IEs ::= SEQUENCE { + tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD-OR + cellSelectionInfo-v1130 CellSelectionInfo-v1130 OPTIONAL, -- Cond WB-RSRQ + nonCriticalExtension SystemInformationBlockType1-v1250-IEs OPTIONAL +} + +SystemInformationBlockType1-v1250-IEs ::= SEQUENCE { + cellAccessRelatedInfo-v1250 SEQUENCE { + category0Allowed-r12 ENUMERATED {true} OPTIONAL -- Need OP + }, + cellSelectionInfo-v1250 CellSelectionInfo-v1250 OPTIONAL, -- Cond RSRQ2 + freqBandIndicatorPriority-r12 ENUMERATED {true} OPTIONAL, -- Cond mFBI + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PLMN-IdentityList ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo + +PLMN-IdentityInfo ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellReservedForOperatorUse ENUMERATED {reserved, notReserved} +} + +SchedulingInfoList ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo + +SchedulingInfo ::= SEQUENCE { + si-Periodicity ENUMERATED { + rf8, rf16, rf32, rf64, rf128, rf256, rf512}, + sib-MappingInfo SIB-MappingInfo +} + +SIB-MappingInfo ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type + +SIB-Type ::= ENUMERATED { + sibType3, sibType4, sibType5, sibType6, + sibType7, sibType8, sibType9, sibType10, + sibType11, sibType12-v920, sibType13-v920, + sibType14-v1130, sibType15-v1130, + sibType16-v1130, sibType17-v1250, sibType18-v1250, + ..., sibType19-v1250} + +CellSelectionInfo-v920 ::= SEQUENCE { + q-QualMin-r9 Q-QualMin-r9, + q-QualMinOffset-r9 INTEGER (1..8) OPTIONAL -- Need OP +} + +CellSelectionInfo-v1130 ::= SEQUENCE { + q-QualMinWB-r11 Q-QualMin-r9 +} + +CellSelectionInfo-v1250 ::= SEQUENCE { + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 +} + + +UEAssistanceInformation-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ueAssistanceInformation-r11 UEAssistanceInformation-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEAssistanceInformation-r11-IEs ::= SEQUENCE { + powerPrefIndication-r11 ENUMERATED {normal, lowPowerConsumption} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UECapabilityEnquiry ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueCapabilityEnquiry-r8 UECapabilityEnquiry-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityEnquiry-r8-IEs ::= SEQUENCE { + ue-CapabilityRequest UE-CapabilityRequest, + nonCriticalExtension UECapabilityEnquiry-v8a0-IEs OPTIONAL +} + +UECapabilityEnquiry-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UECapabilityEnquiry-v1180-IEs OPTIONAL +} + +UECapabilityEnquiry-v1180-IEs ::= SEQUENCE { + requestedFrequencyBands-r11 SEQUENCE (SIZE (1..16)) OF FreqBandIndicator-r11 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-CapabilityRequest ::= SEQUENCE (SIZE (1..maxRAT-Capabilities)) OF RAT-Type + + +UECapabilityInformation ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + ueCapabilityInformation-r8 UECapabilityInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityInformation-r8-IEs ::= SEQUENCE { + ue-CapabilityRAT-ContainerList UE-CapabilityRAT-ContainerList, + nonCriticalExtension UECapabilityInformation-v8a0-IEs OPTIONAL +} + +UECapabilityInformation-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UECapabilityInformation-v1250-IEs OPTIONAL +} + +UECapabilityInformation-v1250-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r12 UE-RadioPagingInfo-r12 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEInformationRequest-r9 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueInformationRequest-r9 UEInformationRequest-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEInformationRequest-r9-IEs ::= SEQUENCE { + rach-ReportReq-r9 BOOLEAN, + rlf-ReportReq-r9 BOOLEAN, + nonCriticalExtension UEInformationRequest-v930-IEs OPTIONAL +} + +UEInformationRequest-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UEInformationRequest-v1020-IEs OPTIONAL +} + +UEInformationRequest-v1020-IEs ::= SEQUENCE { + logMeasReportReq-r10 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension UEInformationRequest-v1130-IEs OPTIONAL +} + +UEInformationRequest-v1130-IEs ::= SEQUENCE { + connEstFailReportReq-r11 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension UEInformationRequest-v1250-IEs OPTIONAL +} + +UEInformationRequest-v1250-IEs ::= SEQUENCE { + mobilityHistoryReportReq-r12 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEInformationResponse-r9 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueInformationResponse-r9 UEInformationResponse-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEInformationResponse-r9-IEs ::= SEQUENCE { + rach-Report-r9 SEQUENCE { + numberOfPreamblesSent-r9 NumberOfPreamblesSent-r11, + contentionDetected-r9 BOOLEAN + } OPTIONAL, + rlf-Report-r9 RLF-Report-r9 OPTIONAL, + nonCriticalExtension UEInformationResponse-v930-IEs OPTIONAL +} + +-- Late non critical extensions +UEInformationResponse-v9e0-IEs ::= SEQUENCE { + rlf-Report-v9e0 RLF-Report-v9e0 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +UEInformationResponse-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING UEInformationResponse-v9e0-IEs) OPTIONAL, + nonCriticalExtension UEInformationResponse-v1020-IEs OPTIONAL +} + +UEInformationResponse-v1020-IEs ::= SEQUENCE { + logMeasReport-r10 LogMeasReport-r10 OPTIONAL, + nonCriticalExtension UEInformationResponse-v1130-IEs OPTIONAL +} + +UEInformationResponse-v1130-IEs ::= SEQUENCE { + connEstFailReport-r11 ConnEstFailReport-r11 OPTIONAL, + nonCriticalExtension UEInformationResponse-v1250-IEs OPTIONAL +} + +UEInformationResponse-v1250-IEs ::= SEQUENCE { + mobilityHistoryReport-r12 MobilityHistoryReport-r12 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RLF-Report-r9 ::= SEQUENCE { + measResultLastServCell-r9 SEQUENCE { + rsrpResult-r9 RSRP-Range, + rsrqResult-r9 RSRQ-Range OPTIONAL + }, + measResultNeighCells-r9 SEQUENCE { + measResultListEUTRA-r9 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r9 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r9 MeasResultListGERAN OPTIONAL, + measResultsCDMA2000-r9 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + ..., + [[ locationInfo-r10 LocationInfo-r10 OPTIONAL, + failedPCellId-r10 CHOICE { + cellGlobalId-r10 CellGlobalIdEUTRA, + pci-arfcn-r10 SEQUENCE { + physCellId-r10 PhysCellId, + carrierFreq-r10 ARFCN-ValueEUTRA + } + } OPTIONAL, + reestablishmentCellId-r10 CellGlobalIdEUTRA OPTIONAL, + timeConnFailure-r10 INTEGER (0..1023) OPTIONAL, + connectionFailureType-r10 ENUMERATED {rlf, hof} OPTIONAL, + previousPCellId-r10 CellGlobalIdEUTRA OPTIONAL + ]], + [[ failedPCellId-v1090 SEQUENCE { + carrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 + } OPTIONAL + ]], + [[ basicFields-r11 SEQUENCE { + c-RNTI-r11 C-RNTI, + rlf-Cause-r11 ENUMERATED { + t310-Expiry, randomAccessProblem, + rlc-MaxNumRetx, t312-Expiry-r12}, + timeSinceFailure-r11 TimeSinceFailure-r11 + } OPTIONAL, + previousUTRA-CellId-r11 SEQUENCE { + carrierFreq-r11 ARFCN-ValueUTRA, + physCellId-r11 CHOICE { + fdd-r11 PhysCellIdUTRA-FDD, + tdd-r11 PhysCellIdUTRA-TDD + }, + cellGlobalId-r11 CellGlobalIdUTRA OPTIONAL + } OPTIONAL, + selectedUTRA-CellId-r11 SEQUENCE { + carrierFreq-r11 ARFCN-ValueUTRA, + physCellId-r11 CHOICE { + fdd-r11 PhysCellIdUTRA-FDD, + tdd-r11 PhysCellIdUTRA-TDD + } + } OPTIONAL + ]], + [[ failedPCellId-v1250 SEQUENCE { + tac-FailedPCell-r12 TrackingAreaCode + } OPTIONAL, + measResultLastServCell-v1250 RSRQ-Range-v1250 OPTIONAL, + lastServCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL + ]] + +} + +RLF-Report-v9e0 ::= SEQUENCE { + measResultListEUTRA-v9e0 MeasResultList2EUTRA-v9e0 +} + +MeasResultList2EUTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-r9 + +MeasResultList2EUTRA-v9e0 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v9e0 + +MeasResultList2EUTRA-v1250 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v1250 + +MeasResult2EUTRA-r9 ::= SEQUENCE { + carrierFreq-r9 ARFCN-ValueEUTRA, + measResultList-r9 MeasResultListEUTRA +} + +MeasResult2EUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL +} + +MeasResult2EUTRA-v1250 ::= SEQUENCE { + rsrq-Type-r12 RSRQ-Type-r12 OPTIONAL +} + +MeasResultList2UTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2UTRA-r9 + +MeasResult2UTRA-r9 ::= SEQUENCE { + carrierFreq-r9 ARFCN-ValueUTRA, + measResultList-r9 MeasResultListUTRA +} + +MeasResultList2CDMA2000-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2CDMA2000-r9 + +MeasResult2CDMA2000-r9 ::= SEQUENCE { + carrierFreq-r9 CarrierFreqCDMA2000, + measResultList-r9 MeasResultsCDMA2000 +} + +LogMeasReport-r10 ::= SEQUENCE { + absoluteTimeStamp-r10 AbsoluteTimeInfo-r10, + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + logMeasInfoList-r10 LogMeasInfoList-r10, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + ... +} + +LogMeasInfoList-r10 ::= SEQUENCE (SIZE (1..maxLogMeasReport-r10)) OF LogMeasInfo-r10 + +LogMeasInfo-r10 ::= SEQUENCE { + locationInfo-r10 LocationInfo-r10 OPTIONAL, + relativeTimeStamp-r10 INTEGER (0..7200), + servCellIdentity-r10 CellGlobalIdEUTRA, + measResultServCell-r10 SEQUENCE { + rsrpResult-r10 RSRP-Range, + rsrqResult-r10 RSRQ-Range + }, + measResultNeighCells-r10 SEQUENCE { + measResultListEUTRA-r10 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r10 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r10 MeasResultList2GERAN-r10 OPTIONAL, + measResultListCDMA2000-r10 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + ..., + [[ measResultListEUTRA-v1090 MeasResultList2EUTRA-v9e0 OPTIONAL + ]], + [[ measResultListMBSFN-r12 MeasResultListMBSFN-r12 OPTIONAL, + measResultServCell-v1250 RSRQ-Range-v1250 OPTIONAL, + servCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL + ]] + +} + +MeasResultListMBSFN-r12 ::= SEQUENCE (SIZE (1..maxMBSFN-Area)) OF MeasResultMBSFN-r12 + +MeasResultMBSFN-r12 ::= SEQUENCE { + mbsfn-Area-r12 SEQUENCE { + mbsfn-AreaId-r12 MBSFN-AreaId-r12, + carrierFreq-r12 ARFCN-ValueEUTRA-r9 + }, + rsrpResultMBSFN-r12 RSRP-Range, + rsrqResultMBSFN-r12 MBSFN-RSRQ-Range-r12, + signallingBLER-Result-r12 BLER-Result-r12 OPTIONAL, + dataBLER-MCH-ResultList-r12 DataBLER-MCH-ResultList-r12 OPTIONAL, + ... +} + +DataBLER-MCH-ResultList-r12 ::= SEQUENCE (SIZE (1.. maxPMCH-PerMBSFN)) OF DataBLER-MCH-Result-r12 + +DataBLER-MCH-Result-r12 ::= SEQUENCE { + mch-Index-r12 INTEGER (1..maxPMCH-PerMBSFN), + dataBLER-Result-r12 BLER-Result-r12 +} + +BLER-Result-r12 ::= SEQUENCE { + bler-r12 BLER-Range-r12, + blocksReceived-r12 SEQUENCE { + n-r12 BIT STRING (SIZE (3)), + m-r12 BIT STRING (SIZE (8)) + } +} + +BLER-Range-r12 ::= INTEGER(0..31) + +MeasResultList2GERAN-r10 ::= SEQUENCE (SIZE (1..maxCellListGERAN)) OF MeasResultListGERAN + +ConnEstFailReport-r11 ::= SEQUENCE { + failedCellId-r11 CellGlobalIdEUTRA, + locationInfo-r11 LocationInfo-r10 OPTIONAL, + measResultFailedCell-r11 SEQUENCE { + rsrpResult-r11 RSRP-Range, + rsrqResult-r11 RSRQ-Range OPTIONAL + }, + measResultNeighCells-r11 SEQUENCE { + measResultListEUTRA-r11 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r11 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r11 MeasResultListGERAN OPTIONAL, + measResultsCDMA2000-r11 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + numberOfPreamblesSent-r11 NumberOfPreamblesSent-r11, + contentionDetected-r11 BOOLEAN, + maxTxPowerReached-r11 BOOLEAN, + timeSinceFailure-r11 TimeSinceFailure-r11, + measResultListEUTRA-v1130 MeasResultList2EUTRA-v9e0 OPTIONAL, + ..., + [[ measResultFailedCell-v1250 RSRQ-Range-v1250 OPTIONAL, + failedCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL + ]] +} + +NumberOfPreamblesSent-r11::= INTEGER (1..200) + +TimeSinceFailure-r11 ::= INTEGER (0..172800) + +MobilityHistoryReport-r12 ::= VisitedCellInfoList-r12 + + +ULHandoverPreparationTransfer ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulHandoverPreparationTransfer-r8 ULHandoverPreparationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULHandoverPreparationTransfer-r8-IEs ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + meid BIT STRING (SIZE (56)) OPTIONAL, + dedicatedInfo DedicatedInfoCDMA2000, + nonCriticalExtension ULHandoverPreparationTransfer-v8a0-IEs OPTIONAL +} + +ULHandoverPreparationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +ULInformationTransfer ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulInformationTransfer-r8 ULInformationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType CHOICE { + dedicatedInfoNAS DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000 + }, + nonCriticalExtension ULInformationTransfer-v8a0-IEs OPTIONAL +} + +ULInformationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType2 ::= SEQUENCE { + ac-BarringInfo SEQUENCE { + ac-BarringForEmergency BOOLEAN, + ac-BarringForMO-Signalling AC-BarringConfig OPTIONAL, -- Need OP + ac-BarringForMO-Data AC-BarringConfig OPTIONAL -- Need OP + } OPTIONAL, -- Need OP + radioResourceConfigCommon RadioResourceConfigCommonSIB, + ue-TimersAndConstants UE-TimersAndConstants, + freqInfo SEQUENCE { + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission + }, + mbsfn-SubframeConfigList MBSFN-SubframeConfigList OPTIONAL, -- Need OR + timeAlignmentTimerCommon TimeAlignmentTimer, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType2-v8h0-IEs) OPTIONAL, + [[ ssac-BarringForMMTEL-Voice-r9 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Video-r9 AC-BarringConfig OPTIONAL -- Need OP + ]], + [[ ac-BarringForCSFB-r10 AC-BarringConfig OPTIONAL -- Need OP + ]], + [[ ac-BarringSkipForMMTELVoice-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVideo-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForSMS-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringPerPLMN-List-r12 AC-BarringPerPLMN-List-r12 OPTIONAL -- Need OP + ]], + [[ voiceServiceCauseIndication-r12 ENUMERATED {true} OPTIONAL -- Need OP + ]] +} + +SystemInformationBlockType2-v8h0-IEs ::= SEQUENCE { + multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType2-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType2-v9e0-IEs ::= SEQUENCE { + ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond ul-FreqMax + nonCriticalExtension SystemInformationBlockType2-v9i0-IEs OPTIONAL +} + +SystemInformationBlockType2-v9i0-IEs ::= SEQUENCE { +-- Following field is only for late non-critical extensions for REL-9 + lateNonCriticalExtension OCTET STRING OPTIONAL, +-- Following field is only for late non-critical extensions from REL-10 + nonCriticalExtension SystemInformationBlockType2-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType2-v10l0-IEs ::= SEQUENCE { +freqInfo-v10l0 SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 + }, + multiBandInfoList-v10l0 SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission-v10l0, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AC-BarringConfig ::= SEQUENCE { + ac-BarringFactor ENUMERATED { + p00, p05, p10, p15, p20, p25, p30, p40, + p50, p60, p70, p75, p80, p85, p90, p95}, + ac-BarringTime ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512}, + ac-BarringForSpecialAC BIT STRING (SIZE(5)) +} + +MBSFN-SubframeConfigList ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig + +AC-BarringPerPLMN-List-r12 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF AC-BarringPerPLMN-r12 + +AC-BarringPerPLMN-r12 ::= SEQUENCE { + plmn-IdentityIndex-r12 INTEGER (1..maxPLMN-r11), + ac-BarringInfo-r12 SEQUENCE { + ac-BarringForEmergency-r12 BOOLEAN, + ac-BarringForMO-Signalling-r12 AC-BarringConfig OPTIONAL, -- Need OP + ac-BarringForMO-Data-r12 AC-BarringConfig OPTIONAL -- Need OP + } OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVoice-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVideo-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForSMS-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringForCSFB-r12 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Voice-r12 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Video-r12 AC-BarringConfig OPTIONAL -- Need OP +} + + +SystemInformationBlockType3 ::= SEQUENCE { + cellReselectionInfoCommon SEQUENCE { + q-Hyst ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + speedStateReselectionPars SEQUENCE { + mobilityStateParameters MobilityStateParameters, + q-HystSF SEQUENCE { + sf-Medium ENUMERATED { + dB-6, dB-4, dB-2, dB0}, + sf-High ENUMERATED { + dB-6, dB-4, dB-2, dB0} + } + } OPTIONAL -- Need OP + }, + cellReselectionServingFreqInfo SEQUENCE { + s-NonIntraSearch ReselectionThreshold OPTIONAL, -- Need OP + threshServingLow ReselectionThreshold, + cellReselectionPriority CellReselectionPriority + }, + intraFreqCellReselectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + p-Max P-Max OPTIONAL, -- Need OP + s-IntraSearch ReselectionThreshold OPTIONAL, -- Need OP + allowedMeasBandwidth AllowedMeasBandwidth OPTIONAL, -- Need OP + presenceAntennaPort1 PresenceAntennaPort1, + neighCellConfig NeighCellConfig, + t-ReselectionEUTRA T-Reselection, + t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL -- Need OP + }, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType3-v10j0-IEs) OPTIONAL, + [[ s-IntraSearch-v920 SEQUENCE { + s-IntraSearchP-r9 ReselectionThreshold, + s-IntraSearchQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL, -- Need OP + s-NonIntraSearch-v920 SEQUENCE { + s-NonIntraSearchP-r9 ReselectionThreshold, + s-NonIntraSearchQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL, -- Need OP + q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP + threshServingLowQ-r9 ReselectionThresholdQ-r9 OPTIONAL -- Need OP + ]], + [[ q-QualMinWB-r11 Q-QualMin-r9 OPTIONAL -- Cond WB-RSRQ + ]], + [[ q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL -- Cond RSRQ + ]] +} + +-- Late non critical extensions +SystemInformationBlockType3-v10j0-IEs ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType3-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType3-v10l0-IEs ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType4 ::= SEQUENCE { + intraFreqNeighCellList IntraFreqNeighCellList OPTIONAL, -- Need OR + intraFreqBlackCellList IntraFreqBlackCellList OPTIONAL, -- Need OR + csg-PhysCellIdRange PhysCellIdRange OPTIONAL, -- Cond CSG + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + +IntraFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellIntra)) OF IntraFreqNeighCellInfo + +IntraFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange, + ... +} + +IntraFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange + + +SystemInformationBlockType5 ::= SEQUENCE { + interFreqCarrierFreqList InterFreqCarrierFreqList, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType5-v8h0-IEs) OPTIONAL, + [[ interFreqCarrierFreqList-v1250 InterFreqCarrierFreqList-v1250 OPTIONAL, -- Need OR + interFreqCarrierFreqListExt-r12 InterFreqCarrierFreqListExt-r12 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqListExt-v1280 InterFreqCarrierFreqListExt-v1280 OPTIONAL -- Need OR + ]] +} + +SystemInformationBlockType5-v8h0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v8h0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v8h0 OPTIONAL, -- Need OP + nonCriticalExtension SystemInformationBlockType5-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType5-v9e0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v9e0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType5-v10j0-IEs OPTIONAL +} + +SystemInformationBlockType5-v10j0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v10j0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType5-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType5-v10l0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v10l0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +InterFreqCarrierFreqList ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo + +InterFreqCarrierFreqList-v1250 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1250 + +InterFreqCarrierFreqListExt-r12 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-r12 + +InterFreqCarrierFreqListExt-v1280 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v10j0 + +InterFreqCarrierFreqInfo ::= SEQUENCE { + dl-CarrierFreq ARFCN-ValueEUTRA, + q-RxLevMin Q-RxLevMin, + p-Max P-Max OPTIONAL, -- Need OP + t-ReselectionEUTRA T-Reselection, + t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + allowedMeasBandwidth AllowedMeasBandwidth, + presenceAntennaPort1 PresenceAntennaPort1, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + neighCellConfig NeighCellConfig, + q-OffsetFreq Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList InterFreqNeighCellList OPTIONAL, -- Need OR + interFreqBlackCellList InterFreqBlackCellList OPTIONAL, -- Need OR + ..., + [[ q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP + threshX-Q-r9 SEQUENCE { + threshX-HighQ-r9 ReselectionThresholdQ-r9, + threshX-LowQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL -- Cond RSRQ + ]], + [[ q-QualMinWB-r11 Q-QualMin-r9 OPTIONAL -- Cond WB-RSRQ + ]] +} + +InterFreqCarrierFreqInfo-v8h0 ::= SEQUENCE { + multiBandInfoList MultiBandInfoList OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v9e0 ::= SEQUENCE { + dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond dl-FreqMax + multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v10j0 ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v10l0 ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v1250 ::= SEQUENCE { + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL -- Cond RSRQ2 +} + +InterFreqCarrierFreqInfo-r12 ::= SEQUENCE { + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9, + q-RxLevMin-r12 Q-RxLevMin, + p-Max-r12 P-Max OPTIONAL, -- Need OP + t-ReselectionEUTRA-r12 T-Reselection, + t-ReselectionEUTRA-SF-r12 SpeedStateScaleFactors OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + allowedMeasBandwidth-r12 AllowedMeasBandwidth, + presenceAntennaPort1-r12 PresenceAntennaPort1, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + neighCellConfig-r12 NeighCellConfig, + q-OffsetFreq-r12 Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList-r12 InterFreqNeighCellList OPTIONAL, -- Need OR + interFreqBlackCellList-r12 InterFreqBlackCellList OPTIONAL, -- Need OR + q-QualMin-r12 Q-QualMin-r9 OPTIONAL, -- Need OP + threshX-Q-r12 SEQUENCE { + threshX-HighQ-r12 ReselectionThresholdQ-r9, + threshX-LowQ-r12 ReselectionThresholdQ-r9 + } OPTIONAL, -- Cond RSRQ + q-QualMinWB-r12 Q-QualMin-r9 OPTIONAL, -- Cond WB-RSRQ + multiBandInfoList-r12 MultiBandInfoList-r11 OPTIONAL, -- Need OR + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL, -- Cond RSRQ2 +... +} + +InterFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo + +InterFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange +} + +InterFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange + + +SystemInformationBlockType6 ::= SEQUENCE { + carrierFreqListUTRA-FDD CarrierFreqListUTRA-FDD OPTIONAL, -- Need OR + carrierFreqListUTRA-TDD CarrierFreqListUTRA-TDD OPTIONAL, -- Need OR + t-ReselectionUTRA T-Reselection, + t-ReselectionUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType6-v8h0-IEs) OPTIONAL, + [[ carrierFreqListUTRA-FDD-v1250 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF + CarrierFreqInfoUTRA-v1250 OPTIONAL, -- Cond UTRA-FDD + carrierFreqListUTRA-TDD-v1250 SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF + CarrierFreqInfoUTRA-v1250 OPTIONAL, -- Cond UTRA-TDD + carrierFreqListUTRA-FDD-Ext-r12 CarrierFreqListUTRA-FDD-Ext-r12 OPTIONAL, -- Cond UTRA-FDD + carrierFreqListUTRA-TDD-Ext-r12 CarrierFreqListUTRA-TDD-Ext-r12 OPTIONAL -- Cond UTRA-TDD + ]] +} + +SystemInformationBlockType6-v8h0-IEs ::= SEQUENCE { + carrierFreqListUTRA-FDD-v8h0 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqInfoUTRA-FDD-v8h0 OPTIONAL, -- Cond UTRA-FDD + nonCriticalExtension +SEQUENCE {} OPTIONAL +} + +CarrierFreqInfoUTRA-v1250 ::= SEQUENCE { + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL -- Need OP +} + +CarrierFreqListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqUTRA-FDD + +CarrierFreqUTRA-FDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + q-RxLevMin INTEGER (-60..-13), + p-MaxUTRA INTEGER (-50..33), + q-QualMin INTEGER (-24..0), + ..., + [[ threshX-Q-r9 SEQUENCE { + threshX-HighQ-r9 ReselectionThresholdQ-r9, + threshX-LowQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL -- Cond RSRQ + ]] +} + +CarrierFreqInfoUTRA-FDD-v8h0 ::= SEQUENCE { + multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL -- Need OR +} + +CarrierFreqListUTRA-FDD-Ext-r12 ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF + CarrierFreqUTRA-FDD-Ext-r12 + +CarrierFreqUTRA-FDD-Ext-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueUTRA, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + q-RxLevMin-r12 INTEGER (-60..-13), + p-MaxUTRA-r12 INTEGER (-50..33), + q-QualMin-r12 INTEGER (-24..0), + threshX-Q-r12 SEQUENCE { + threshX-HighQ-r12 ReselectionThresholdQ-r9, + threshX-LowQ-r12 ReselectionThresholdQ-r9 + } OPTIONAL, -- Cond RSRQ + multiBandInfoList-r12 SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL, -- Need OR + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ... +} + +CarrierFreqListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF CarrierFreqUTRA-TDD + +CarrierFreqUTRA-TDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + q-RxLevMin INTEGER (-60..-13), + p-MaxUTRA INTEGER (-50..33), + ... +} + +CarrierFreqListUTRA-TDD-Ext-r12 ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF + CarrierFreqUTRA-TDD-r12 + +CarrierFreqUTRA-TDD-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueUTRA, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + q-RxLevMin-r12 INTEGER (-60..-13), + p-MaxUTRA-r12 INTEGER (-50..33), + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ... +} + +FreqBandIndicator-UTRA-FDD ::= INTEGER (1..86) + + +SystemInformationBlockType7 ::= SEQUENCE { + t-ReselectionGERAN T-Reselection, + t-ReselectionGERAN-SF SpeedStateScaleFactors OPTIONAL, -- Need OR + carrierFreqsInfoList CarrierFreqsInfoListGERAN OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + +CarrierFreqsInfoListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF CarrierFreqsInfoGERAN + +CarrierFreqsInfoGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + commonInfo SEQUENCE { + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + ncc-Permitted BIT STRING (SIZE (8)), + q-RxLevMin INTEGER (0..45), + p-MaxGERAN INTEGER (0..39) OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold + }, + ... +} + + +SystemInformationBlockType8 ::= SEQUENCE { + systemTimeInfo SystemTimeInfoCDMA2000 OPTIONAL, -- Need OR + searchWindowSize INTEGER (0..15) OPTIONAL, -- Need OR + parametersHRPD SEQUENCE { + preRegistrationInfoHRPD PreRegistrationInfoHRPD, + cellReselectionParametersHRPD CellReselectionParametersCDMA2000 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + parameters1XRTT SEQUENCE { + csfb-RegistrationParam1XRTT CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP + longCodeState1XRTT BIT STRING (SIZE (42)) OPTIONAL, -- Need OR + cellReselectionParameters1XRTT CellReselectionParametersCDMA2000 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL, + [[ csfb-SupportForDualRxUEs-r9 BOOLEAN OPTIONAL, -- Need OR + cellReselectionParametersHRPD-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-HRPD + cellReselectionParameters1XRTT-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-1XRTT + csfb-RegistrationParam1XRTT-v920 CSFB-RegistrationParam1XRTT-v920 OPTIONAL, -- Cond REG-1XRTT + ac-BarringConfig1XRTT-r9 AC-BarringConfig1XRTT-r9 OPTIONAL -- Cond REG-1XRTT + ]], + [[ csfb-DualRxTxSupport-r10 ENUMERATED {true} OPTIONAL -- Cond REG-1XRTT + ]], + [[ sib8-PerPLMN-List-r11 SIB8-PerPLMN-List-r11 OPTIONAL -- Need OR + ]] +} + +CellReselectionParametersCDMA2000 ::= SEQUENCE { + bandClassList BandClassListCDMA2000, + neighCellList NeighCellListCDMA2000, + t-ReselectionCDMA2000 T-Reselection, + t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP +} + +CellReselectionParametersCDMA2000-r11 ::= SEQUENCE { + bandClassList BandClassListCDMA2000, + neighCellList-r11 SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-r11, + t-ReselectionCDMA2000 T-Reselection, + t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP +} + +CellReselectionParametersCDMA2000-v920 ::= SEQUENCE { + neighCellList-v920 NeighCellListCDMA2000-v920 +} + +NeighCellListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000 + +NeighCellCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + neighCellsPerFreqList NeighCellsPerBandclassListCDMA2000 +} + +NeighCellCDMA2000-r11 ::= SEQUENCE { + bandClass BandclassCDMA2000, + neighFreqInfoList-r11 SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-r11 +} + +NeighCellsPerBandclassListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000 + +NeighCellsPerBandclassCDMA2000 ::= SEQUENCE { + arfcn ARFCN-ValueCDMA2000, + physCellIdList PhysCellIdListCDMA2000 +} + +NeighCellsPerBandclassCDMA2000-r11 ::= SEQUENCE { + arfcn ARFCN-ValueCDMA2000, + physCellIdList-r11 SEQUENCE (SIZE (1..40)) OF PhysCellIdCDMA2000 +} + +NeighCellListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-v920 + +NeighCellCDMA2000-v920 ::= SEQUENCE { + neighCellsPerFreqList-v920 NeighCellsPerBandclassListCDMA2000-v920 +} + +NeighCellsPerBandclassListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-v920 + +NeighCellsPerBandclassCDMA2000-v920 ::= SEQUENCE { + physCellIdList-v920 PhysCellIdListCDMA2000-v920 +} + +PhysCellIdListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdCDMA2000 + +PhysCellIdListCDMA2000-v920 ::= SEQUENCE (SIZE (0..24)) OF PhysCellIdCDMA2000 + +BandClassListCDMA2000 ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassInfoCDMA2000 + +BandClassInfoCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High INTEGER (0..63), + threshX-Low INTEGER (0..63), + ... +} + +AC-BarringConfig1XRTT-r9 ::= SEQUENCE { + ac-Barring0to9-r9 INTEGER (0..63), + ac-Barring10-r9 INTEGER (0..7), + ac-Barring11-r9 INTEGER (0..7), + ac-Barring12-r9 INTEGER (0..7), + ac-Barring13-r9 INTEGER (0..7), + ac-Barring14-r9 INTEGER (0..7), + ac-Barring15-r9 INTEGER (0..7), + ac-BarringMsg-r9 INTEGER (0..7), + ac-BarringReg-r9 INTEGER (0..7), + ac-BarringEmg-r9 INTEGER (0..7) +} + +SIB8-PerPLMN-List-r11 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF SIB8-PerPLMN-r11 + +SIB8-PerPLMN-r11 ::= SEQUENCE { + plmn-Identity-r11 INTEGER (1..maxPLMN-r11), + parametersCDMA2000-r11 CHOICE { + explicitValue ParametersCDMA2000-r11, + defaultValue NULL + } +} + +ParametersCDMA2000-r11 ::= SEQUENCE { + systemTimeInfo-r11 CHOICE { + explicitValue SystemTimeInfoCDMA2000, + defaultValue NULL + } OPTIONAL, -- Need OR + searchWindowSize-r11 INTEGER (0..15), + parametersHRPD-r11 SEQUENCE { + preRegistrationInfoHRPD-r11 PreRegistrationInfoHRPD, + cellReselectionParametersHRPD-r11 CellReselectionParametersCDMA2000-r11 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + parameters1XRTT-r11 SEQUENCE { + csfb-RegistrationParam1XRTT-r11 CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP + csfb-RegistrationParam1XRTT-Ext-r11 CSFB-RegistrationParam1XRTT-v920 OPTIONAL, -- Cond REG-1XRTT-PerPLMN + longCodeState1XRTT-r11 BIT STRING (SIZE (42)) OPTIONAL, -- Cond PerPLMN-LC + cellReselectionParameters1XRTT-r11 CellReselectionParametersCDMA2000-r11 OPTIONAL, -- Need OR + ac-BarringConfig1XRTT-r11 AC-BarringConfig1XRTT-r9 OPTIONAL, -- Cond REG-1XRTT-PerPLMN + csfb-SupportForDualRxUEs-r11 BOOLEAN OPTIONAL, -- Need OR + csfb-DualRxTxSupport-r11 ENUMERATED {true} OPTIONAL -- Cond REG-1XRTT-PerPLMN + } OPTIONAL, -- Need OR + ... +} + + +SystemInformationBlockType9 ::= SEQUENCE { + hnb-Name OCTET STRING (SIZE(1..48)) OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType10 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningType OCTET STRING (SIZE (2)), + dummy OCTET STRING (SIZE (50)) OPTIONAL, -- Need OP + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType11 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningMessageSegmentType ENUMERATED {notLastSegment, lastSegment}, + warningMessageSegmentNumber INTEGER (0..63), + warningMessageSegment OCTET STRING, + dataCodingScheme OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType12-r9 ::= SEQUENCE { + messageIdentifier-r9 BIT STRING (SIZE (16)), + serialNumber-r9 BIT STRING (SIZE (16)), + warningMessageSegmentType-r9 ENUMERATED {notLastSegment, lastSegment}, + warningMessageSegmentNumber-r9 INTEGER (0..63), + warningMessageSegment-r9 OCTET STRING, + dataCodingScheme-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +SystemInformationBlockType13-r9 ::= SEQUENCE { + mbsfn-AreaInfoList-r9 MBSFN-AreaInfoList-r9, + notificationConfig-r9 MBMS-NotificationConfig-r9, + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +SystemInformationBlockType14-r11 ::= SEQUENCE { + eab-Param-r11 CHOICE { + eab-Common-r11 EAB-Config-r11, + eab-PerPLMN-List-r11 SEQUENCE (SIZE (1..maxPLMN-r11)) OF EAB-ConfigPLMN-r11 + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +EAB-ConfigPLMN-r11 ::= SEQUENCE { + eab-Config-r11 EAB-Config-r11 OPTIONAL -- Need OR +} + +EAB-Config-r11 ::= SEQUENCE { + eab-Category-r11 ENUMERATED {a, b, c}, + eab-BarringBitmap-r11 BIT STRING (SIZE (10)) +} + + +SystemInformationBlockType15-r11 ::= SEQUENCE { + mbms-SAI-IntraFreq-r11 MBMS-SAI-List-r11 OPTIONAL, -- Need OR + mbms-SAI-InterFreqList-r11 MBMS-SAI-InterFreqList-r11 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ mbms-SAI-InterFreqList-v1140 MBMS-SAI-InterFreqList-v1140 OPTIONAL -- Cond InterFreq + ]] +} + +MBMS-SAI-List-r11 ::= SEQUENCE (SIZE (1..maxSAI-MBMS-r11)) OF MBMS-SAI-r11 + +MBMS-SAI-r11 ::= INTEGER (0..65535) + +MBMS-SAI-InterFreqList-r11 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-r11 + +MBMS-SAI-InterFreqList-v1140 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-v1140 + +MBMS-SAI-InterFreq-r11 ::= SEQUENCE { + dl-CarrierFreq-r11 ARFCN-ValueEUTRA-r9, + mbms-SAI-List-r11 MBMS-SAI-List-r11 +} + +MBMS-SAI-InterFreq-v1140 ::= SEQUENCE { + multiBandInfoList-r11 MultiBandInfoList-r11 OPTIONAL -- Need OR +} + + + +SystemInformationBlockType16-r11 ::= SEQUENCE { + timeInfo-r11 SEQUENCE { + timeInfoUTC-r11 INTEGER (0..549755813887), + dayLightSavingTime-r11 BIT STRING (SIZE (2)) OPTIONAL, -- Need OR + leapSeconds-r11 INTEGER (-127..128) OPTIONAL, -- Need OR + localTimeOffset-r11 INTEGER (-63..64) OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +SystemInformationBlockType17-r12 ::= SEQUENCE { + wlan-OffloadInfoPerPLMN-List-r12 SEQUENCE (SIZE (1..maxPLMN-r11)) OF + WLAN-OffloadInfoPerPLMN-r12 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +WLAN-OffloadInfoPerPLMN-r12 ::= SEQUENCE { + wlan-OffloadConfigCommon-r12 WLAN-OffloadConfig-r12 OPTIONAL, -- Need OR + wlan-Id-List-r12 WLAN-Id-List-r12 OPTIONAL, -- Need OR + ... +} + +WLAN-Id-List-r12 ::= SEQUENCE (SIZE (1..maxWLAN-Id-r12)) OF WLAN-Identifiers-r12 + +WLAN-Identifiers-r12 ::= SEQUENCE { + ssid-r12 OCTET STRING (SIZE (1..32)) OPTIONAL, -- Need OR + bssid-r12 OCTET STRING (SIZE (6)) OPTIONAL, -- Need OR + hessid-r12 OCTET STRING (SIZE (6)) OPTIONAL, -- Need OR + ... +} + + +SystemInformationBlockType18-r12 ::= SEQUENCE { + commConfig-r12 SEQUENCE { + commRxPool-r12 SL-CommRxPoolList-r12, + commTxPoolNormalCommon-r12 SL-CommTxPoolList-r12 OPTIONAL, -- Need OR + commTxPoolExceptional-r12 SL-CommTxPoolList-r12 OPTIONAL, -- Need OR + commSyncConfig-r12 SL-SyncConfigList-r12 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +SystemInformationBlockType19-r12 ::= SEQUENCE { + discConfig-r12 SEQUENCE { + discRxPool-r12 SL-DiscRxPoolList-r12, + discTxPoolCommon-r12 SL-DiscTxPoolList-r12 OPTIONAL, -- Need OR + discTxPowerInfo-r12 SL-DiscTxPowerInfoList-r12 OPTIONAL, -- Cond Tx + discSyncConfig-r12 SL-SyncConfigList-r12 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + discInterFreqList-r12 SL-CarrierFreqInfoList-r12 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +SL-CarrierFreqInfoList-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-CarrierFreqInfo-r12 + +SL-CarrierFreqInfo-r12::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + plmn-IdentityList-r12 PLMN-IdentityList4-r12 OPTIONAL -- Need OP +} + +PLMN-IdentityList4-r12 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo2-r12 + +PLMN-IdentityInfo2-r12 ::= CHOICE { + plmn-Index-r12 INTEGER (1..maxPLMN-r11), + plmnIdentity-r12 PLMN-Identity +} + + +AntennaInfoCommon ::= SEQUENCE { + antennaPortsCount ENUMERATED {an1, an2, an4, spare1} +} + +AntennaInfoDedicated ::= SEQUENCE { + transmissionMode ENUMERATED { + tm1, tm2, tm3, tm4, tm5, tm6, + tm7, tm8-v920}, + codebookSubsetRestriction CHOICE { + n2TxAntenna-tm3 BIT STRING (SIZE (2)), + n4TxAntenna-tm3 BIT STRING (SIZE (4)), + n2TxAntenna-tm4 BIT STRING (SIZE (6)), + n4TxAntenna-tm4 BIT STRING (SIZE (64)), + n2TxAntenna-tm5 BIT STRING (SIZE (4)), + n4TxAntenna-tm5 BIT STRING (SIZE (16)), + n2TxAntenna-tm6 BIT STRING (SIZE (4)), + n4TxAntenna-tm6 BIT STRING (SIZE (16)) + } OPTIONAL, -- Cond TM + ue-TransmitAntennaSelection CHOICE{ + release NULL, + setup ENUMERATED {closedLoop, openLoop} + } +} + +AntennaInfoDedicated-v920 ::= SEQUENCE { + codebookSubsetRestriction-v920 CHOICE { + n2TxAntenna-tm8-r9 BIT STRING (SIZE (6)), + n4TxAntenna-tm8-r9 BIT STRING (SIZE (32)) + } OPTIONAL -- Cond TM8 +} + +AntennaInfoDedicated-r10 ::= SEQUENCE { + transmissionMode-r10 ENUMERATED { + tm1, tm2, tm3, tm4, tm5, tm6, tm7, tm8-v920, + tm9-v1020, tm10-v1130, spare6, spare5, spare4, + spare3, spare2, spare1}, + codebookSubsetRestriction-r10 BIT STRING OPTIONAL, -- Cond TMX + ue-TransmitAntennaSelection CHOICE{ + release NULL, + setup ENUMERATED {closedLoop, openLoop} + } +} + +AntennaInfoDedicated-v10i0::= SEQUENCE { + maxLayersMIMO-r10 ENUMERATED {twoLayers, fourLayers, eightLayers} OPTIONAL -- Need OR +} + +AntennaInfoDedicated-v1250 ::= SEQUENCE { + alternativeCodebookEnabledFor4TX-r12 BOOLEAN +} + + +AntennaInfoUL-r10 ::= SEQUENCE { + transmissionModeUL-r10 ENUMERATED {tm1, tm2, spare6, spare5, + spare4, spare3, spare2, spare1} OPTIONAL, -- Need OR + fourAntennaPortActivated-r10 ENUMERATED {setup} OPTIONAL -- Need OR +} + + +CQI-ReportConfig ::= SEQUENCE { + cqi-ReportModeAperiodic CQI-ReportModeAperiodic OPTIONAL, -- Need OR + nomPDSCH-RS-EPRE-Offset INTEGER (-1..6), + cqi-ReportPeriodic CQI-ReportPeriodic OPTIONAL -- Need ON +} + +CQI-ReportConfig-v920 ::= SEQUENCE { + cqi-Mask-r9 ENUMERATED {setup} OPTIONAL, -- Cond cqi-Setup + pmi-RI-Report-r9 ENUMERATED {setup} OPTIONAL -- Cond PMIRI +} + +CQI-ReportConfig-r10 ::= SEQUENCE { + cqi-ReportAperiodic-r10 CQI-ReportAperiodic-r10 OPTIONAL, -- Need ON + nomPDSCH-RS-EPRE-Offset INTEGER (-1..6), + cqi-ReportPeriodic-r10 CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON + pmi-RI-Report-r9 ENUMERATED {setup} OPTIONAL, -- Cond PMIRIPCell + csi-SubframePatternConfig-r10 CHOICE { + release NULL, + setup SEQUENCE { + csi-MeasSubframeSet1-r10 MeasSubframePattern-r10, + csi-MeasSubframeSet2-r10 MeasSubframePattern-r10 + } + } OPTIONAL -- Need ON +} + +CQI-ReportConfig-v1130 ::= SEQUENCE { + cqi-ReportPeriodic-v1130 CQI-ReportPeriodic-v1130, + cqi-ReportBoth-r11 CQI-ReportBoth-r11 +} + +CQI-ReportConfig-v1250 ::= SEQUENCE { + csi-SubframePatternConfig-r12 CHOICE { + release NULL, + setup SEQUENCE { + csi-MeasSubframeSets-r12 BIT STRING (SIZE (10)) + } + } OPTIONAL, -- Need ON + cqi-ReportBoth-v1250 CQI-ReportBoth-v1250 OPTIONAL, -- Need ON + cqi-ReportAperiodic-v1250 CQI-ReportAperiodic-v1250 OPTIONAL, -- Need ON + altCQI-Table-r12 ENUMERATED { + allSubframes, csi-SubframeSet1, + csi-SubframeSet2, spare1} OPTIONAL -- Need OP +} + +CQI-ReportConfigSCell-r10 ::= SEQUENCE { + cqi-ReportModeAperiodic-r10 CQI-ReportModeAperiodic OPTIONAL, -- Need OR + nomPDSCH-RS-EPRE-Offset-r10 INTEGER (-1..6), + cqi-ReportPeriodicSCell-r10 CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON + pmi-RI-Report-r10 ENUMERATED {setup} OPTIONAL -- Cond PMIRISCell +} + +CQI-ReportPeriodic ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-PUCCH-ResourceIndex INTEGER (0..1185), + cqi-pmi-ConfigIndex INTEGER (0..1023), + cqi-FormatIndicatorPeriodic CHOICE { + widebandCQI NULL, + subbandCQI SEQUENCE { + k INTEGER (1..4) + } + }, + ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR + simultaneousAckNackAndCQI BOOLEAN + } +} + +CQI-ReportPeriodic-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-PUCCH-ResourceIndex-r10 INTEGER (0..1184), + cqi-PUCCH-ResourceIndexP1-r10 INTEGER (0..1184) OPTIONAL, -- Need OR + cqi-pmi-ConfigIndex INTEGER (0..1023), + cqi-FormatIndicatorPeriodic-r10 CHOICE { + widebandCQI-r10 SEQUENCE { + csi-ReportMode-r10 ENUMERATED {submode1, submode2} OPTIONAL -- Need OR + }, + subbandCQI-r10 SEQUENCE { + k INTEGER (1..4), + periodicityFactor-r10 ENUMERATED {n2, n4} + } + }, + ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR + simultaneousAckNackAndCQI BOOLEAN, + cqi-Mask-r9 ENUMERATED {setup} OPTIONAL, -- Need OR + csi-ConfigIndex-r10 CHOICE { + release NULL, + setup SEQUENCE { + cqi-pmi-ConfigIndex2-r10 INTEGER (0..1023), + ri-ConfigIndex2-r10 INTEGER (0..1023) OPTIONAL -- Need OR + } + } OPTIONAL -- Need ON + } +} + +CQI-ReportPeriodic-v1130 ::= SEQUENCE { + simultaneousAckNackAndCQI-Format3-r11 ENUMERATED {setup} OPTIONAL, -- Need OR + cqi-ReportPeriodicProcExtToReleaseList-r11 CQI-ReportPeriodicProcExtToReleaseList-r11 OPTIONAL, -- Need ON + cqi-ReportPeriodicProcExtToAddModList-r11 CQI-ReportPeriodicProcExtToAddModList-r11 OPTIONAL -- Need ON +} + +CQI-ReportPeriodicProcExtToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCQI-ProcExt-r11)) OF CQI-ReportPeriodicProcExt-r11 + +CQI-ReportPeriodicProcExtToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCQI-ProcExt-r11)) OF CQI-ReportPeriodicProcExtId-r11 + +CQI-ReportPeriodicProcExt-r11 ::= SEQUENCE { + cqi-ReportPeriodicProcExtId-r11 CQI-ReportPeriodicProcExtId-r11, + cqi-pmi-ConfigIndex-r11 INTEGER (0..1023), + cqi-FormatIndicatorPeriodic-r11 CHOICE { + widebandCQI-r11 SEQUENCE { + csi-ReportMode-r11 ENUMERATED {submode1, submode2} OPTIONAL -- Need OR + }, + subbandCQI-r11 SEQUENCE { + k INTEGER (1..4), + periodicityFactor-r11 ENUMERATED {n2, n4} + } + }, + ri-ConfigIndex-r11 INTEGER (0..1023) OPTIONAL, -- Need OR + csi-ConfigIndex-r11 CHOICE { + release NULL, + setup SEQUENCE { + cqi-pmi-ConfigIndex2-r11 INTEGER (0..1023), + ri-ConfigIndex2-r11 INTEGER (0..1023) OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + ... +} + +CQI-ReportAperiodic-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-ReportModeAperiodic-r10 CQI-ReportModeAperiodic, + aperiodicCSI-Trigger-r10 SEQUENCE { + trigger1-r10 BIT STRING (SIZE (8)), + trigger2-r10 BIT STRING (SIZE (8)) + } OPTIONAL -- Need OR + } +} + +CQI-ReportAperiodic-v1250 ::= CHOICE { + release NULL, + setup SEQUENCE { + aperiodicCSI-Trigger-v1250 SEQUENCE { + trigger-SubframeSetIndicator-r12 ENUMERATED {s1, s2}, + trigger1-SubframeSetIndicator-r12 BIT STRING (SIZE (8)), + trigger2-SubframeSetIndicator-r12 BIT STRING (SIZE (8)) + } + } +} + +CQI-ReportAperiodicProc-r11 ::= SEQUENCE { + cqi-ReportModeAperiodic-r11 CQI-ReportModeAperiodic, + trigger01-r11 BOOLEAN, + trigger10-r11 BOOLEAN, + trigger11-r11 BOOLEAN +} + +CQI-ReportModeAperiodic ::= ENUMERATED { + rm12, rm20, rm22, rm30, rm31, + rm32-v1250, spare2, spare1 +} + +CQI-ReportBoth-r11 ::= SEQUENCE { + csi-IM-ConfigToReleaseList-r11 CSI-IM-ConfigToReleaseList-r11 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModList-r11 CSI-IM-ConfigToAddModList-r11 OPTIONAL, -- Need ON + csi-ProcessToReleaseList-r11 CSI-ProcessToReleaseList-r11 OPTIONAL, -- Need ON + csi-ProcessToAddModList-r11 CSI-ProcessToAddModList-r11 OPTIONAL -- Need ON +} + +CQI-ReportBoth-v1250 ::= SEQUENCE { + csi-IM-ConfigToReleaseListExt-r12 CSI-IM-ConfigId-v1250 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModListExt-r12 CSI-IM-ConfigExt-r12 OPTIONAL -- Need ON +} + +CSI-IM-ConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-Config-r11 + +CSI-IM-ConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-ConfigId-r11 + +CSI-ProcessToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF CSI-Process-r11 + +CSI-ProcessToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF CSI-ProcessId-r11 + +CQI-ReportBothProc-r11 ::= SEQUENCE { + ri-Ref-CSI-ProcessId-r11 CSI-ProcessId-r11 OPTIONAL, -- Need OR + pmi-RI-Report-r11 ENUMERATED {setup} OPTIONAL -- Need OR +} + + + +CQI-ReportPeriodicProcExtId-r11 ::= INTEGER (1..maxCQI-ProcExt-r11) + + +CrossCarrierSchedulingConfig-r10 ::= SEQUENCE { + schedulingCellInfo-r10 CHOICE { + own-r10 SEQUENCE { -- No cross carrier scheduling + cif-Presence-r10 BOOLEAN + }, + other-r10 SEQUENCE { -- Cross carrier scheduling + schedulingCellId-r10 ServCellIndex-r10, + pdsch-Start-r10 INTEGER (1..4) + } + } +} + + +CSI-IM-Config-r11 ::= SEQUENCE { + csi-IM-ConfigId-r11 CSI-IM-ConfigId-r11, + resourceConfig-r11 INTEGER (0..31), + subframeConfig-r11 INTEGER (0..154), + ... +} + +CSI-IM-ConfigExt-r12 ::= SEQUENCE { + csi-IM-ConfigId-v1250 CSI-IM-ConfigId-v1250, + resourceConfig-r12 INTEGER (0..31), + subframeConfig-r12 INTEGER (0..154), + ... +} + + +CSI-IM-ConfigId-r11 ::= INTEGER (1..maxCSI-IM-r11) +CSI-IM-ConfigId-r12 ::= INTEGER (1..maxCSI-IM-r12) +CSI-IM-ConfigId-v1250 ::= INTEGER (maxCSI-IM-r12) + + +CSI-Process-r11 ::= SEQUENCE { + csi-ProcessId-r11 CSI-ProcessId-r11, + csi-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11, + csi-IM-ConfigId-r11 CSI-IM-ConfigId-r11, + p-C-AndCBSRList-r11 SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r11, + cqi-ReportBothProc-r11 CQI-ReportBothProc-r11 OPTIONAL, -- Need OR + cqi-ReportPeriodicProcId-r11 INTEGER (0..maxCQI-ProcExt-r11) OPTIONAL, -- Need OR + cqi-ReportAperiodicProc-r11 CQI-ReportAperiodicProc-r11 OPTIONAL, -- Need OR + ..., + [[ alternativeCodebookEnabledFor4TXProc-r12 ENUMERATED {true} OPTIONAL, -- Need ON + csi-IM-ConfigIdList-r12 CHOICE { + release NULL, + setup SEQUENCE (SIZE (1..2)) OF CSI-IM-ConfigId-r12 + } OPTIONAL, -- Need ON + cqi-ReportAperiodicProc2-r12 CHOICE { + release NULL, + setup CQI-ReportAperiodicProc-r11 + } OPTIONAL -- Need ON + ]] +} + +P-C-AndCBSR-r11 ::= SEQUENCE { + p-C-r11 INTEGER (-8..15), + codebookSubsetRestriction-r11 BIT STRING +} + + +CSI-ProcessId-r11 ::= INTEGER (1..maxCSI-Proc-r11) + + +CSI-RS-Config-r10 ::= SEQUENCE { + csi-RS-r10 CHOICE { + release NULL, + setup SEQUENCE { + antennaPortsCount-r10 ENUMERATED {an1, an2, an4, an8}, + resourceConfig-r10 INTEGER (0..31), + subframeConfig-r10 INTEGER (0..154), + p-C-r10 INTEGER (-8..15) + } + } OPTIONAL, -- Need ON + zeroTxPowerCSI-RS-r10 ZeroTxPowerCSI-RS-Conf-r12 OPTIONAL -- Need ON +} + +CSI-RS-Config-v1250 ::= SEQUENCE { + zeroTxPowerCSI-RS2-r12 ZeroTxPowerCSI-RS-Conf-r12 OPTIONAL, -- Need ON + ds-ZeroTxPowerCSI-RS-r12 CHOICE { + release NULL, + setup SEQUENCE { + zeroTxPowerCSI-RS-List-r12 SEQUENCE (SIZE (1..maxDS-ZTP-CSI-RS-r12)) OF ZeroTxPowerCSI-RS-r12 + } + } OPTIONAL -- Need ON +} + +ZeroTxPowerCSI-RS-Conf-r12 ::= CHOICE { + release NULL, + setup ZeroTxPowerCSI-RS-r12 +} + +ZeroTxPowerCSI-RS-r12 ::= SEQUENCE { + zeroTxPowerResourceConfigList-r12 BIT STRING (SIZE (16)), + zeroTxPowerSubframeConfig-r12 INTEGER (0..154) +} + + +CSI-RS-ConfigNZP-r11 ::= SEQUENCE { + csi-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11, + antennaPortsCount-r11 ENUMERATED {an1, an2, an4, an8}, + resourceConfig-r11 INTEGER (0..31), + subframeConfig-r11 INTEGER (0..154), + scramblingIdentity-r11 INTEGER (0..503), + qcl-CRS-Info-r11 SEQUENCE { + qcl-ScramblingIdentity-r11 INTEGER (0..503), + crs-PortsCount-r11 ENUMERATED {n1, n2, n4, spare1}, + mbsfn-SubframeConfigList-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList MBSFN-SubframeConfigList + } + } OPTIONAL -- Need ON + } OPTIONAL, -- Need OR + ... +} + + +CSI-RS-ConfigNZPId-r11 ::= INTEGER (1..maxCSI-RS-NZP-r11) + + +CSI-RS-ConfigZP-r11 ::= SEQUENCE { + csi-RS-ConfigZPId-r11 CSI-RS-ConfigZPId-r11, + resourceConfigList-r11 BIT STRING (SIZE (16)), + subframeConfig-r11 INTEGER (0..154), + ... +} + + +CSI-RS-ConfigZPId-r11 ::= INTEGER (1..maxCSI-RS-ZP-r11) + + +DMRS-Config-r11 ::= CHOICE { + release NULL, + setup SEQUENCE { + scramblingIdentity-r11 INTEGER (0..503), + scramblingIdentity2-r11 INTEGER (0..503) + } +} + + +DRB-Identity ::= INTEGER (1..32) + + +EPDCCH-Config-r11 ::= SEQUENCE{ + config-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframePatternConfig-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframePattern-r11 MeasSubframePattern-r10 + } + } OPTIONAL, -- Need ON + startSymbol-r11 INTEGER (1..4) OPTIONAL, -- Need OP + setConfigToReleaseList-r11 EPDCCH-SetConfigToReleaseList-r11 OPTIONAL, -- Need ON + setConfigToAddModList-r11 EPDCCH-SetConfigToAddModList-r11 OPTIONAL -- Need ON + } + } +} + +EPDCCH-SetConfigToAddModList-r11 ::= SEQUENCE (SIZE(1..maxEPDCCH-Set-r11)) OF EPDCCH-SetConfig-r11 + +EPDCCH-SetConfigToReleaseList-r11 ::= SEQUENCE (SIZE(1..maxEPDCCH-Set-r11)) OF EPDCCH-SetConfigId-r11 + +EPDCCH-SetConfig-r11 ::= SEQUENCE { + setConfigId-r11 EPDCCH-SetConfigId-r11, + transmissionType-r11 ENUMERATED {localised, distributed}, + resourceBlockAssignment-r11 SEQUENCE{ + numberPRB-Pairs-r11 ENUMERATED {n2, n4, n8}, + resourceBlockAssignment-r11 BIT STRING (SIZE(4..38)) + }, + dmrs-ScramblingSequenceInt-r11 INTEGER (0..503), + pucch-ResourceStartOffset-r11 INTEGER (0..2047), + re-MappingQCL-ConfigId-r11 PDSCH-RE-MappingQCL-ConfigId-r11 OPTIONAL, -- Need OR + ..., + [[ csi-RS-ConfigZPId2-r12 CHOICE { + release NULL, + setup CSI-RS-ConfigZPId-r11 + } OPTIONAL -- Need ON + ]] +} + +EPDCCH-SetConfigId-r11 ::= INTEGER (0..1) + +EIMTA-MainConfig-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + eimta-RNTI-r12 C-RNTI, + eimta-CommandPeriodicity-r12 ENUMERATED {sf10, sf20, sf40, sf80}, + eimta-CommandSubframeSet-r12 BIT STRING (SIZE(10)) + } +} + +EIMTA-MainConfigServCell-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + eimta-UL-DL-ConfigIndex-r12 INTEGER (1..5), + eimta-HARQ-ReferenceConfig-r12 ENUMERATED {sa2,sa4,sa5}, + mbsfn-SubframeConfigList-v1250 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList-r12 MBSFN-SubframeConfigList + } + } + } +} + + +LogicalChannelConfig ::= SEQUENCE { + ul-SpecificParameters SEQUENCE { + priority INTEGER (1..16), + prioritisedBitRate ENUMERATED { + kBps0, kBps8, kBps16, kBps32, kBps64, kBps128, + kBps256, infinity, kBps512-v1020, kBps1024-v1020, + kBps2048-v1020, spare5, spare4, spare3, spare2, + spare1}, + bucketSizeDuration ENUMERATED { + ms50, ms100, ms150, ms300, ms500, ms1000, spare2, + spare1}, + logicalChannelGroup INTEGER (0..3) OPTIONAL -- Need OR + } OPTIONAL, -- Cond UL + ..., + [[ logicalChannelSR-Mask-r9 ENUMERATED {setup} OPTIONAL -- Cond SRmask + ]], + [[ logicalChannelSR-Prohibit-r12 BOOLEAN OPTIONAL -- Need ON + ]] +} + + +MAC-MainConfig ::= SEQUENCE { + ul-SCH-Config SEQUENCE { + maxHARQ-Tx ENUMERATED { + n1, n2, n3, n4, n5, n6, n7, n8, + n10, n12, n16, n20, n24, n28, + spare2, spare1} OPTIONAL, -- Need ON + periodicBSR-Timer PeriodicBSR-Timer-r12 OPTIONAL, -- Need ON + retxBSR-Timer RetxBSR-Timer-r12, + ttiBundling BOOLEAN + } OPTIONAL, -- Need ON + drx-Config DRX-Config OPTIONAL, -- Need ON + timeAlignmentTimerDedicated TimeAlignmentTimer, + phr-Config CHOICE { + release NULL, + setup SEQUENCE { + periodicPHR-Timer ENUMERATED {sf10, sf20, sf50, sf100, sf200, + sf500, sf1000, infinity}, + prohibitPHR-Timer ENUMERATED {sf0, sf10, sf20, sf50, sf100, + sf200, sf500, sf1000}, + dl-PathlossChange ENUMERATED {dB1, dB3, dB6, infinity} + } + } OPTIONAL, -- Need ON + ..., + [[ sr-ProhibitTimer-r9 INTEGER (0..7) OPTIONAL -- Need ON + ]], + [[ mac-MainConfig-v1020 SEQUENCE { + sCellDeactivationTimer-r10 ENUMERATED { + rf2, rf4, rf8, rf16, rf32, rf64, rf128, + spare} OPTIONAL, -- Need OP + extendedBSR-Sizes-r10 ENUMERATED {setup} OPTIONAL, -- Need OR + extendedPHR-r10 ENUMERATED {setup} OPTIONAL -- Need OR + } OPTIONAL -- Need ON + ]], + [[ stag-ToReleaseList-r11 STAG-ToReleaseList-r11 OPTIONAL, -- Need ON + stag-ToAddModList-r11 STAG-ToAddModList-r11 OPTIONAL, -- Need ON + drx-Config-v1130 DRX-Config-v1130 OPTIONAL -- Need ON + ]], + [[ e-HARQ-Pattern-r12 BOOLEAN OPTIONAL, -- Need ON + dualConnectivityPHR CHOICE { + release NULL, + setup SEQUENCE { + phr-ModeOtherCG-r12 ENUMERATED {real, virtual} + } + } OPTIONAL, -- Need ON + logicalChannelSR-Config-r12 CHOICE { + release NULL, + setup SEQUENCE { + logicalChannelSR-ProhibitTimer-r12 ENUMERATED {sf20, sf40, sf64, sf128, sf512, sf1024, sf2560, spare1} + } + } OPTIONAL -- Need ON + ]] +} + +MAC-MainConfigSCell-r11 ::= SEQUENCE { + stag-Id-r11 STAG-Id-r11 OPTIONAL, -- Need OP + ... +} + +DRX-Config ::= CHOICE { + release NULL, + setup SEQUENCE { + onDurationTimer ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200}, + drx-InactivityTimer ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200, psf300, psf500, psf750, + psf1280, psf1920, psf2560, psf0-v1020, + spare9, spare8, spare7, spare6, + spare5, spare4, spare3, spare2, + spare1}, + drx-RetransmissionTimer ENUMERATED { + psf1, psf2, psf4, psf6, psf8, psf16, + psf24, psf33}, + longDRX-CycleStartOffset CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf1280 INTEGER(0..1279), + sf2048 INTEGER(0..2047), + sf2560 INTEGER(0..2559) + }, + shortDRX SEQUENCE { + shortDRX-Cycle ENUMERATED { + sf2, sf5, sf8, sf10, sf16, sf20, + sf32, sf40, sf64, sf80, sf128, sf160, + sf256, sf320, sf512, sf640}, + drxShortCycleTimer INTEGER (1..16) + } OPTIONAL -- Need OR + } +} + +DRX-Config-v1130 ::= SEQUENCE { + drx-RetransmissionTimer-v1130 ENUMERATED {psf0-v1130} OPTIONAL, --Need OR + longDRX-CycleStartOffset-v1130 CHOICE { + sf60-v1130 INTEGER(0..59), + sf70-v1130 INTEGER(0..69) + } OPTIONAL, --Need OR + shortDRX-Cycle-v1130 ENUMERATED {sf4-v1130} OPTIONAL --Need OR +} + +PeriodicBSR-Timer-r12 ::= ENUMERATED { + sf5, sf10, sf16, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, sf1280, sf2560, + infinity, spare1} + +RetxBSR-Timer-r12 ::= ENUMERATED { + sf320, sf640, sf1280, sf2560, sf5120, + sf10240, spare2, spare1} + +STAG-ToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-Id-r11 + +STAG-ToAddModList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-ToAddMod-r11 + +STAG-ToAddMod-r11 ::= SEQUENCE { + stag-Id-r11 STAG-Id-r11, + timeAlignmentTimerSTAG-r11 TimeAlignmentTimer, + ... +} + +STAG-Id-r11::= INTEGER (1..maxSTAG-r11) + + +PDCP-Config ::= SEQUENCE { + discardTimer ENUMERATED { + ms50, ms100, ms150, ms300, ms500, + ms750, ms1500, infinity + } OPTIONAL, -- Cond Setup + rlc-AM SEQUENCE { + statusReportRequired BOOLEAN + } OPTIONAL, -- Cond Rlc-AM + rlc-UM SEQUENCE { + pdcp-SN-Size ENUMERATED {len7bits, len12bits} + } OPTIONAL, -- Cond Rlc-UM + headerCompression CHOICE { + notUsed NULL, + rohc SEQUENCE { + maxCID INTEGER (1..16383) DEFAULT 15, + profiles SEQUENCE { + profile0x0001 BOOLEAN, + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0101 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + ... + } + }, + ..., + [[ rn-IntegrityProtection-r10 ENUMERATED {enabled} OPTIONAL -- Cond RN + ]], + [[ pdcp-SN-Size-v1130 ENUMERATED {len15bits} OPTIONAL -- Cond Rlc-AM2 + ]], + [[ ul-DataSplitDRB-ViaSCG-r12 BOOLEAN OPTIONAL, -- Need ON + t-Reordering-r12 ENUMERATED { + ms0, ms20, ms40, ms60, ms80, ms100, ms120, ms140, + ms160, ms180, ms200, ms220, ms240, ms260, ms280, ms300, + ms500, ms750, spare14, spare13, spare12, spare11, spare10, + spare9, spare8, spare7, spare6, spare5, spare4, spare3, + spare2, spare1} OPTIONAL -- Cond SetupS + ]] +} + + +PDSCH-ConfigCommon ::= SEQUENCE { + referenceSignalPower INTEGER (-60..50), + p-b INTEGER (0..3) +} + +PDSCH-ConfigDedicated::= SEQUENCE { + p-a ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} +} + +PDSCH-ConfigDedicated-v1130 ::= SEQUENCE { + dmrs-ConfigPDSCH-r11 DMRS-Config-r11 OPTIONAL, -- Need ON + qcl-Operation ENUMERATED {typeA, typeB} OPTIONAL, -- Need OR + re-MappingQCLConfigToReleaseList-r11 RE-MappingQCLConfigToReleaseList-r11 OPTIONAL, -- Need ON + re-MappingQCLConfigToAddModList-r11 RE-MappingQCLConfigToAddModList-r11 OPTIONAL -- Need ON +} + +RE-MappingQCLConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxRE-MapQCL-r11)) OF PDSCH-RE-MappingQCL-Config-r11 + +RE-MappingQCLConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxRE-MapQCL-r11)) OF PDSCH-RE-MappingQCL-ConfigId-r11 + +PDSCH-RE-MappingQCL-Config-r11 ::= SEQUENCE { + pdsch-RE-MappingQCL-ConfigId-r11 PDSCH-RE-MappingQCL-ConfigId-r11, + optionalSetOfFields-r11 SEQUENCE { + crs-PortsCount-r11 ENUMERATED {n1, n2, n4, spare1}, + crs-FreqShift-r11 INTEGER (0..5), + mbsfn-SubframeConfigList-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList MBSFN-SubframeConfigList + } + } OPTIONAL, -- Need ON + pdsch-Start-r11 ENUMERATED {reserved, n1, n2, n3, n4, assigned} + } OPTIONAL, -- Need OP + csi-RS-ConfigZPId-r11 CSI-RS-ConfigZPId-r11, + qcl-CSI-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11 OPTIONAL, -- Need OR + ... +} + +PDSCH-ConfigDedicated-v1280 ::= SEQUENCE { + tbsIndexAlt-r12 ENUMERATED {a26, a33} OPTIONAL -- Need OR +} + + +PDSCH-RE-MappingQCL-ConfigId-r11 ::= INTEGER (1..maxRE-MapQCL-r11) + + +PHICH-Config ::= SEQUENCE { + phich-Duration ENUMERATED {normal, extended}, + phich-Resource ENUMERATED {oneSixth, half, one, two} +} + + +PhysicalConfigDedicated ::= SEQUENCE { + pdsch-ConfigDedicated PDSCH-ConfigDedicated OPTIONAL, -- Need ON + pucch-ConfigDedicated PUCCH-ConfigDedicated OPTIONAL, -- Need ON + pusch-ConfigDedicated PUSCH-ConfigDedicated OPTIONAL, -- Need ON + uplinkPowerControlDedicated UplinkPowerControlDedicated OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUCCH TPC-PDCCH-Config OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUSCH TPC-PDCCH-Config OPTIONAL, -- Need ON + cqi-ReportConfig CQI-ReportConfig OPTIONAL, -- Cond CQI-r8 + soundingRS-UL-ConfigDedicated SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON + antennaInfo CHOICE { + explicitValue AntennaInfoDedicated, + defaultValue NULL + } OPTIONAL, -- Cond AI-r8 + schedulingRequestConfig SchedulingRequestConfig OPTIONAL, -- Need ON + ..., + [[ cqi-ReportConfig-v920 CQI-ReportConfig-v920 OPTIONAL, -- Cond CQI-r8 + antennaInfo-v920 AntennaInfoDedicated-v920 OPTIONAL -- Cond AI-r8 + ]], + [[ antennaInfo-r10 CHOICE { + explicitValue-r10 AntennaInfoDedicated-r10, + defaultValue NULL + } OPTIONAL, -- Cond AI-r10 + antennaInfoUL-r10 AntennaInfoUL-r10 OPTIONAL, -- Need ON + cif-Presence-r10 BOOLEAN OPTIONAL, -- Need ON + cqi-ReportConfig-r10 CQI-ReportConfig-r10 OPTIONAL, -- Cond CQI-r10 + csi-RS-Config-r10 CSI-RS-Config-r10 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1020 PUCCH-ConfigDedicated-v1020 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1020 PUSCH-ConfigDedicated-v1020 OPTIONAL, -- Need ON + schedulingRequestConfig-v1020 SchedulingRequestConfig-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1020 + SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-r10 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1020 UplinkPowerControlDedicated-v1020 OPTIONAL -- Need ON + ]], + [[ additionalSpectrumEmissionCA-r10 CHOICE { + release NULL, + setup SEQUENCE { + additionalSpectrumEmissionPCell-r10 AdditionalSpectrumEmission + } + } OPTIONAL -- Need ON + ]], + [[ -- DL configuration as well as configuration applicable for DL and UL + csi-RS-ConfigNZPToReleaseList-r11 CSI-RS-ConfigNZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModList-r11 CSI-RS-ConfigNZPToAddModList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToReleaseList-r11 CSI-RS-ConfigZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToAddModList-r11 CSI-RS-ConfigZPToAddModList-r11 OPTIONAL, -- Need ON + epdcch-Config-r11 EPDCCH-Config-r11 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1130 PDSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + -- UL configuration + cqi-ReportConfig-v1130 CQI-ReportConfig-v1130 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1130 PUCCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1130 PUSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1130 UplinkPowerControlDedicated-v1130 OPTIONAL -- Need ON + ]], + [[ antennaInfo-v1250 AntennaInfoDedicated-v1250 OPTIONAL, -- Cond AI-r10 + eimta-MainConfig-r12 EIMTA-MainConfig-r12 OPTIONAL, -- Need ON + eimta-MainConfigPCell-r12 EIMTA-MainConfigServCell-r12 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1250 PUCCH-ConfigDedicated-v1250 OPTIONAL, -- Need ON + cqi-ReportConfigPCell-v1250 CQI-ReportConfig-v1250 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1250 UplinkPowerControlDedicated-v1250 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1250 PUSCH-ConfigDedicated-v1250 OPTIONAL, -- Need ON + csi-RS-Config-v1250 CSI-RS-Config-v1250 OPTIONAL -- Need ON + ]], + [[ pdsch-ConfigDedicated-v1280 PDSCH-ConfigDedicated-v1280 OPTIONAL -- Need ON + ]] +} + +PhysicalConfigDedicatedSCell-r10 ::= SEQUENCE { + -- DL configuration as well as configuration applicable for DL and UL + nonUL-Configuration-r10 SEQUENCE { + antennaInfo-r10 AntennaInfoDedicated-r10 OPTIONAL, -- Need ON + crossCarrierSchedulingConfig-r10 CrossCarrierSchedulingConfig-r10 OPTIONAL, -- Need ON + csi-RS-Config-r10 CSI-RS-Config-r10 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-r10 PDSCH-ConfigDedicated OPTIONAL -- Need ON + } OPTIONAL, -- Cond SCellAdd + -- UL configuration + ul-Configuration-r10 SEQUENCE { + antennaInfoUL-r10 AntennaInfoUL-r10 OPTIONAL, -- Need ON + pusch-ConfigDedicatedSCell-r10 PUSCH-ConfigDedicatedSCell-r10 OPTIONAL, -- Need ON + uplinkPowerControlDedicatedSCell-r10 UplinkPowerControlDedicatedSCell-r10 OPTIONAL, -- Need ON + cqi-ReportConfigSCell-r10 CQI-ReportConfigSCell-r10 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-r10 SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1020 + SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-r10 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL -- Need ON + } OPTIONAL, -- Cond CommonUL + ..., + [[ -- DL configuration as well as configuration applicable for DL and UL + csi-RS-ConfigNZPToReleaseList-r11 CSI-RS-ConfigNZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModList-r11 CSI-RS-ConfigNZPToAddModList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToReleaseList-r11 CSI-RS-ConfigZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToAddModList-r11 CSI-RS-ConfigZPToAddModList-r11 OPTIONAL, -- Need ON + epdcch-Config-r11 EPDCCH-Config-r11 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1130 PDSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + -- UL configuration + cqi-ReportConfig-v1130 CQI-ReportConfig-v1130 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1130 PUSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + uplinkPowerControlDedicatedSCell-v1130 UplinkPowerControlDedicated-v1130 OPTIONAL -- Need ON + ]], + [[ antennaInfo-v1250 AntennaInfoDedicated-v1250 OPTIONAL, -- Need ON + eimta-MainConfigSCell-r12 EIMTA-MainConfigServCell-r12 OPTIONAL, -- Need ON + cqi-ReportConfigSCell-v1250 CQI-ReportConfig-v1250 OPTIONAL, -- Need ON + uplinkPowerControlDedicatedSCell-v1250 UplinkPowerControlDedicated-v1250 OPTIONAL, -- Need ON + csi-RS-Config-v1250 CSI-RS-Config-v1250 OPTIONAL -- Need ON + ]], + [[ pdsch-ConfigDedicated-v1280 PDSCH-ConfigDedicated-v1280 OPTIONAL -- Need ON + ]] +} + +CSI-RS-ConfigNZPToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r11)) OF CSI-RS-ConfigNZP-r11 + +CSI-RS-ConfigNZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r11)) OF CSI-RS-ConfigNZPId-r11 + +CSI-RS-ConfigZPToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZP-r11 + +CSI-RS-ConfigZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZPId-r11 + + +P-Max ::= INTEGER (-30..33) + + +PRACH-ConfigSIB ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + prach-ConfigInfo PRACH-ConfigInfo +} + +PRACH-Config ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + prach-ConfigInfo PRACH-ConfigInfo OPTIONAL -- Need ON +} + +PRACH-ConfigSCell-r10 ::= SEQUENCE { + prach-ConfigIndex-r10 INTEGER (0..63) +} + +PRACH-ConfigInfo ::= SEQUENCE { + prach-ConfigIndex INTEGER (0..63), + highSpeedFlag BOOLEAN, + zeroCorrelationZoneConfig INTEGER (0..15), + prach-FreqOffset INTEGER (0..94) +} + + +PresenceAntennaPort1 ::= BOOLEAN + + +PUCCH-ConfigCommon ::= SEQUENCE { + deltaPUCCH-Shift ENUMERATED {ds1, ds2, ds3}, + nRB-CQI INTEGER (0..98), + nCS-AN INTEGER (0..7), + n1PUCCH-AN INTEGER (0..2047) +} + +PUCCH-ConfigDedicated ::= SEQUENCE { + ackNackRepetition CHOICE{ + release NULL, + setup SEQUENCE { + repetitionFactor ENUMERATED {n2, n4, n6, spare1}, + n1PUCCH-AN-Rep INTEGER (0..2047) + } + }, + tdd-AckNackFeedbackMode ENUMERATED {bundling, multiplexing} OPTIONAL -- Cond TDD +} + +PUCCH-ConfigDedicated-v1020 ::= SEQUENCE { + pucch-Format-r10 CHOICE { + format3-r10 SEQUENCE { + n3PUCCH-AN-List-r10 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) OPTIONAL, -- Need ON + twoAntennaPortActivatedPUCCH-Format3-r10 CHOICE { + release NULL, + setup SEQUENCE { + n3PUCCH-AN-ListP1-r10 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) + } + } OPTIONAL -- Need ON + }, + channelSelection-r10 SEQUENCE { + n1PUCCH-AN-CS-r10 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-List-r10 SEQUENCE (SIZE (1..2)) OF N1PUCCH-AN-CS-r10 + } + } OPTIONAL -- Need ON + } + } OPTIONAL, -- Need OR + twoAntennaPortActivatedPUCCH-Format1a1b-r10 ENUMERATED {true} OPTIONAL, -- Need OR + simultaneousPUCCH-PUSCH-r10 ENUMERATED {true} OPTIONAL, -- Need OR + n1PUCCH-AN-RepP1-r10 INTEGER (0..2047) OPTIONAL -- Need OR +} + +PUCCH-ConfigDedicated-v1130 ::= SEQUENCE { + n1PUCCH-AN-CS-v1130 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-ListP1-r11 SEQUENCE (SIZE (2..4)) OF INTEGER (0..2047) + } + } OPTIONAL, -- Need ON + nPUCCH-Param-r11 CHOICE { + release NULL, + setup SEQUENCE { + nPUCCH-Identity-r11 INTEGER (0..503), + n1PUCCH-AN-r11 INTEGER (0..2047) + } + } OPTIONAL -- Need ON +} + +PUCCH-ConfigDedicated-v1250 ::= SEQUENCE { + nkaPUCCH-Param-r12 CHOICE { + release NULL, + setup SEQUENCE { + nkaPUCCH-AN-r12 INTEGER (0..2047) + } + } +} + +N1PUCCH-AN-CS-r10 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + + +PUSCH-ConfigCommon ::= SEQUENCE { + pusch-ConfigBasic SEQUENCE { + n-SB INTEGER (1..4), + hoppingMode ENUMERATED {interSubFrame, intraAndInterSubFrame}, + pusch-HoppingOffset INTEGER (0..98), + enable64QAM BOOLEAN + }, + ul-ReferenceSignalsPUSCH UL-ReferenceSignalsPUSCH +} + +PUSCH-ConfigCommon-v1270 ::= SEQUENCE { + enable64QAM-v1270 ENUMERATED {true} +} + +PUSCH-ConfigDedicated ::= SEQUENCE { + betaOffset-ACK-Index INTEGER (0..15), + betaOffset-RI-Index INTEGER (0..15), + betaOffset-CQI-Index INTEGER (0..15) +} + +PUSCH-ConfigDedicated-v1020 ::= SEQUENCE { + betaOffsetMC-r10 SEQUENCE { + betaOffset-ACK-Index-MC-r10 INTEGER (0..15), + betaOffset-RI-Index-MC-r10 INTEGER (0..15), + betaOffset-CQI-Index-MC-r10 INTEGER (0..15) + } OPTIONAL, -- Need OR + groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicated-v1130 ::= SEQUENCE { + pusch-DMRS-r11 CHOICE { + release NULL, + setup SEQUENCE { + nPUSCH-Identity-r11 INTEGER (0..509), + nDMRS-CSH-Identity-r11 INTEGER (0..509) + } + } +} + +PUSCH-ConfigDedicated-v1250::= SEQUENCE { + uciOnPUSCH CHOICE { + release NULL, + setup SEQUENCE { + betaOffset-ACK-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffset-RI-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffset-CQI-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffsetMC-r12 SEQUENCE { + betaOffset-ACK-Index-MC-SubframeSet2-r12 INTEGER (0..15), + betaOffset-RI-Index-MC-SubframeSet2-r12 INTEGER (0..15), + betaOffset-CQI-Index-MC-SubframeSet2-r12 INTEGER (0..15) + } OPTIONAL -- Need OR + } + } +} + +PUSCH-ConfigDedicatedSCell-r10 ::= SEQUENCE { + groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR +} + +UL-ReferenceSignalsPUSCH ::= SEQUENCE { + groupHoppingEnabled BOOLEAN, + groupAssignmentPUSCH INTEGER (0..29), + sequenceHoppingEnabled BOOLEAN, + cyclicShift INTEGER (0..7) +} + + +RACH-ConfigCommon ::= SEQUENCE { + preambleInfo SEQUENCE { + numberOfRA-Preambles ENUMERATED { + n4, n8, n12, n16 ,n20, n24, n28, + n32, n36, n40, n44, n48, n52, n56, + n60, n64}, + preamblesGroupAConfig SEQUENCE { + sizeOfRA-PreamblesGroupA ENUMERATED { + n4, n8, n12, n16 ,n20, n24, n28, + n32, n36, n40, n44, n48, n52, n56, + n60}, + messageSizeGroupA ENUMERATED {b56, b144, b208, b256}, + messagePowerOffsetGroupB ENUMERATED { + minusinfinity, dB0, dB5, dB8, dB10, dB12, + dB15, dB18}, + ... + } OPTIONAL -- Need OP + }, + powerRampingParameters PowerRampingParameters, + ra-SupervisionInfo SEQUENCE { + preambleTransMax PreambleTransMax, + ra-ResponseWindowSize ENUMERATED { + sf2, sf3, sf4, sf5, sf6, sf7, + sf8, sf10}, + mac-ContentionResolutionTimer ENUMERATED { + sf8, sf16, sf24, sf32, sf40, sf48, + sf56, sf64} + }, + maxHARQ-Msg3Tx INTEGER (1..8), + ... +} + +RACH-ConfigCommon-v1250 ::= SEQUENCE { + txFailParams-r12 SEQUENCE { + connEstFailCount-r12 ENUMERATED {n1, n2, n3, n4}, + connEstFailOffsetValidity-r12 ENUMERATED {s30, s60, s120, s240, + s300, s420, s600, s900}, + connEstFailOffset-r12 INTEGER (0..15) OPTIONAL -- Need OP + } +} + +RACH-ConfigCommonSCell-r11 ::= SEQUENCE { + powerRampingParameters-r11 PowerRampingParameters, + ra-SupervisionInfo-r11 SEQUENCE { + preambleTransMax-r11 PreambleTransMax + }, + ... +} + +PowerRampingParameters ::= SEQUENCE { + powerRampingStep ENUMERATED {dB0, dB2,dB4, dB6}, + preambleInitialReceivedTargetPower ENUMERATED { + dBm-120, dBm-118, dBm-116, dBm-114, dBm-112, + dBm-110, dBm-108, dBm-106, dBm-104, dBm-102, + dBm-100, dBm-98, dBm-96, dBm-94, + dBm-92, dBm-90} +} + +PreambleTransMax ::= ENUMERATED { + n3, n4, n5, n6, n7, n8, n10, n20, n50, + n100, n200} + + +RACH-ConfigDedicated ::= SEQUENCE { + ra-PreambleIndex INTEGER (0..63), + ra-PRACH-MaskIndex INTEGER (0..15) +} + + +RadioResourceConfigCommonSIB ::= SEQUENCE { + rach-ConfigCommon RACH-ConfigCommon, + bcch-Config BCCH-Config, + pcch-Config PCCH-Config, + prach-Config PRACH-ConfigSIB, + pdsch-ConfigCommon PDSCH-ConfigCommon, + pusch-ConfigCommon PUSCH-ConfigCommon, + pucch-ConfigCommon PUCCH-ConfigCommon, + soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon, + uplinkPowerControlCommon UplinkPowerControlCommon, + ul-CyclicPrefixLength UL-CyclicPrefixLength, + ..., + [[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need OR + ]], + [[ rach-ConfigCommon-v1250 RACH-ConfigCommon-v1250 OPTIONAL -- Need OR + ]], + [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR + ]] +} + +RadioResourceConfigCommon ::= SEQUENCE { + rach-ConfigCommon RACH-ConfigCommon OPTIONAL, -- Need ON + prach-Config PRACH-Config, + pdsch-ConfigCommon PDSCH-ConfigCommon OPTIONAL, -- Need ON + pusch-ConfigCommon PUSCH-ConfigCommon, + phich-Config PHICH-Config OPTIONAL, -- Need ON + pucch-ConfigCommon PUCCH-ConfigCommon OPTIONAL, -- Need ON + soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon OPTIONAL, -- Need ON + uplinkPowerControlCommon UplinkPowerControlCommon OPTIONAL, -- Need ON + antennaInfoCommon AntennaInfoCommon OPTIONAL, -- Need ON + p-Max P-Max OPTIONAL, -- Need OP + tdd-Config TDD-Config OPTIONAL, -- Cond TDD + ul-CyclicPrefixLength UL-CyclicPrefixLength, + ..., + [[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need ON + ]], + [[ tdd-Config-v1130 TDD-Config-v1130 OPTIONAL -- Cond TDD3 + ]], + [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR + ]] +} + +RadioResourceConfigCommonPSCell-r12 ::= SEQUENCE { + basicFields-r12 RadioResourceConfigCommonSCell-r10, + pucch-ConfigCommon-r12 PUCCH-ConfigCommon, + rach-ConfigCommon-r12 RACH-ConfigCommon, + uplinkPowerControlCommonPSCell-r12 UplinkPowerControlCommonPSCell-r12, + ... +} + +RadioResourceConfigCommonPSCell-v12f0 ::= SEQUENCE { + basicFields-v12f0 RadioResourceConfigCommonSCell-v10l0 +} + +RadioResourceConfigCommonSCell-r10 ::= SEQUENCE { + -- DL configuration as well as configuration applicable for DL and UL + nonUL-Configuration-r10 SEQUENCE { + -- 1: Cell characteristics + dl-Bandwidth-r10 ENUMERATED {n6, n15, n25, n50, n75, n100}, + -- 2: Physical configuration, general + antennaInfoCommon-r10 AntennaInfoCommon, + mbsfn-SubframeConfigList-r10 MBSFN-SubframeConfigList OPTIONAL, -- Need OR + -- 3: Physical configuration, control + phich-Config-r10 PHICH-Config, + -- 4: Physical configuration, physical channels + pdsch-ConfigCommon-r10 PDSCH-ConfigCommon, + tdd-Config-r10 TDD-Config OPTIONAL -- Cond TDDSCell + }, + -- UL configuration + ul-Configuration-r10 SEQUENCE { + ul-FreqInfo-r10 SEQUENCE { + ul-CarrierFreq-r10 ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth-r10 ENUMERATED {n6, n15, + n25, n50, n75, n100} OPTIONAL, -- Need OP + additionalSpectrumEmissionSCell-r10 AdditionalSpectrumEmission + }, + p-Max-r10 P-Max OPTIONAL, -- Need OP + uplinkPowerControlCommonSCell-r10 UplinkPowerControlCommonSCell-r10, + -- A special version of IE UplinkPowerControlCommon may be introduced + -- 3: Physical configuration, control + soundingRS-UL-ConfigCommon-r10 SoundingRS-UL-ConfigCommon, + ul-CyclicPrefixLength-r10 UL-CyclicPrefixLength, + -- 4: Physical configuration, physical channels + prach-ConfigSCell-r10 PRACH-ConfigSCell-r10 OPTIONAL, -- Cond TDD-OR-NoR11 + pusch-ConfigCommon-r10 PUSCH-ConfigCommon + } OPTIONAL, -- Need OR + ..., + [[ ul-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Need OP + ]], + [[ rach-ConfigCommonSCell-r11 RACH-ConfigCommonSCell-r11 OPTIONAL, -- Cond ULSCell + prach-ConfigSCell-r11 PRACH-Config OPTIONAL, -- Cond UL + tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD2 + uplinkPowerControlCommonSCell-v1130 + UplinkPowerControlCommonSCell-v1130 OPTIONAL -- Cond UL + ]], + [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR + ]] +} + +RadioResourceConfigCommonSCell-v10l0 ::= SEQUENCE { + -- UL configuration + ul-Configuration-v10l0 SEQUENCE { + additionalSpectrumEmissionSCell-v10l0 AdditionalSpectrumEmission-v10l0 + } +} + +BCCH-Config ::= SEQUENCE { + modificationPeriodCoeff ENUMERATED {n2, n4, n8, n16} +} + +PCCH-Config ::= SEQUENCE { + defaultPagingCycle ENUMERATED { + rf32, rf64, rf128, rf256}, + nB ENUMERATED { + fourT, twoT, oneT, halfT, quarterT, oneEighthT, + oneSixteenthT, oneThirtySecondT} +} + +UL-CyclicPrefixLength ::= ENUMERATED {len1, len2} + + +RadioResourceConfigDedicated ::= SEQUENCE { + srb-ToAddModList SRB-ToAddModList OPTIONAL, -- Cond HO-Conn + drb-ToAddModList DRB-ToAddModList OPTIONAL, -- Cond HO-toEUTRA + drb-ToReleaseList DRB-ToReleaseList OPTIONAL, -- Need ON + mac-MainConfig CHOICE { + explicitValue MAC-MainConfig, + defaultValue NULL + } OPTIONAL, -- Cond HO-toEUTRA2 + sps-Config SPS-Config OPTIONAL, -- Need ON + physicalConfigDedicated PhysicalConfigDedicated OPTIONAL, -- Need ON + ..., + [[ rlf-TimersAndConstants-r9 RLF-TimersAndConstants-r9 OPTIONAL -- Need ON + ]], + [[ measSubframePatternPCell-r10 MeasSubframePatternPCell-r10 OPTIONAL -- Need ON + ]], + [[ neighCellsCRS-Info-r11 NeighCellsCRS-Info-r11 OPTIONAL -- Need ON + ]], + [[ naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL -- Need ON + ]]} + +RadioResourceConfigDedicatedPSCell-r12 ::= SEQUENCE { + -- UE specific configuration extensions applicable for an PSCell + physicalConfigDedicatedPSCell-r12 PhysicalConfigDedicated OPTIONAL, -- Need ON + sps-Config-r12 SPS-Config OPTIONAL, -- Need ON + naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL, -- Need ON + ... +} + +RadioResourceConfigDedicatedSCG-r12 ::= SEQUENCE { + drb-ToAddModListSCG-r12 DRB-ToAddModListSCG-r12 OPTIONAL, -- Need ON + mac-MainConfigSCG-r12 MAC-MainConfig OPTIONAL, -- Need ON + rlf-TimersAndConstantsSCG-r12 RLF-TimersAndConstantsSCG-r12 OPTIONAL, -- Need ON + ... +} + +RadioResourceConfigDedicatedSCell-r10 ::= SEQUENCE { + -- UE specific configuration extensions applicable for an SCell + physicalConfigDedicatedSCell-r10 PhysicalConfigDedicatedSCell-r10 OPTIONAL, -- Need ON + ..., + [[ mac-MainConfigSCell-r11 MAC-MainConfigSCell-r11 OPTIONAL -- Cond SCellAdd + ]], + [[ naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL -- Need ON + ]] +} + +SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod + +SRB-ToAddMod ::= SEQUENCE { + srb-Identity INTEGER (1..2), + rlc-Config CHOICE { + explicitValue RLC-Config, + defaultValue NULL + } OPTIONAL, -- Cond Setup + logicalChannelConfig CHOICE { + explicitValue LogicalChannelConfig, + defaultValue NULL + } OPTIONAL, -- Cond Setup + ... +} + +DRB-ToAddModList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod + +DRB-ToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddModSCG-r12 + +DRB-ToAddMod ::= SEQUENCE { + eps-BearerIdentity INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity DRB-Identity, + pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP + rlc-Config RLC-Config OPTIONAL, -- Cond SetupM + logicalChannelIdentity INTEGER (3..10) OPTIONAL, -- Cond DRB-SetupM + logicalChannelConfig LogicalChannelConfig OPTIONAL, -- Cond SetupM + ..., + [[ drb-TypeChange-r12 ENUMERATED {toMCG} OPTIONAL, -- Need OP + rlc-Config-v1250 RLC-Config-v1250 OPTIONAL -- Need ON + ]] +} + +DRB-ToAddModSCG-r12 ::= SEQUENCE { + drb-Identity-r12 DRB-Identity, + drb-Type-r12 CHOICE { + split-r12 NULL, + scg-r12 SEQUENCE { + eps-BearerIdentity-r12 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + pdcp-Config-r12 PDCP-Config OPTIONAL -- Cond PDCP-S + } + } OPTIONAL, -- Cond SetupS2 + rlc-ConfigSCG-r12 RLC-Config OPTIONAL, -- Cond SetupS + rlc-Config-v1250 RLC-Config-v1250 OPTIONAL, -- Need ON + logicalChannelIdentitySCG-r12 INTEGER (3..10) OPTIONAL, -- Cond DRB-SetupS + logicalChannelConfigSCG-r12 LogicalChannelConfig OPTIONAL, -- Cond SetupS + ... +} + +DRB-ToReleaseList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity + +MeasSubframePatternPCell-r10 ::= CHOICE { + release NULL, + setup MeasSubframePattern-r10 +} + +NeighCellsCRS-Info-r11 ::= CHOICE { + release NULL, + setup CRS-AssistanceInfoList-r11 +} + +CRS-AssistanceInfoList-r11 ::= SEQUENCE (SIZE (1..maxCellReport)) OF CRS-AssistanceInfo-r11 + +CRS-AssistanceInfo-r11 ::= SEQUENCE { + physCellId-r11 PhysCellId, + antennaPortsCount-r11 ENUMERATED {an1, an2, an4, spare1}, + mbsfn-SubframeConfigList-r11 MBSFN-SubframeConfigList, + ... +} + +NAICS-AssistanceInfo-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + neighCellsToReleaseList-r12 NeighCellsToReleaseList-r12 OPTIONAL , -- Need ON + neighCellsToAddModList-r12 NeighCellsToAddModList-r12 OPTIONAL, -- Need ON + servCellp-a-r12 P-a OPTIONAL -- Need ON + } +} + +NeighCellsToReleaseList-r12 ::= SEQUENCE (SIZE (1..maxNeighCell-r12)) OF PhysCellId + +NeighCellsToAddModList-r12 ::= SEQUENCE (SIZE (1..maxNeighCell-r12)) OF NeighCellsInfo-r12 + +NeighCellsInfo-r12 ::= SEQUENCE { + physCellId-r12 PhysCellId, + p-b-r12 INTEGER (0..3), + crs-PortsCount-r12 ENUMERATED {n1, n2, n4, spare}, + mbsfn-SubframeConfig-r12 MBSFN-SubframeConfigList OPTIONAL, -- Need ON + p-aList-r12 SEQUENCE (SIZE (1..maxP-a-PerNeighCell-r12)) OF P-a, + transmissionModeList-r12 BIT STRING (SIZE(8)), + resAllocGranularity-r12 INTEGER (1..4), + ... +} +P-a ::= ENUMERATED { dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} + + +RLC-Config ::= CHOICE { + am SEQUENCE { + ul-AM-RLC UL-AM-RLC, + dl-AM-RLC DL-AM-RLC + }, + um-Bi-Directional SEQUENCE { + ul-UM-RLC UL-UM-RLC, + dl-UM-RLC DL-UM-RLC + }, + um-Uni-Directional-UL SEQUENCE { + ul-UM-RLC UL-UM-RLC + }, + um-Uni-Directional-DL SEQUENCE { + dl-UM-RLC DL-UM-RLC + }, + ... +} + +RLC-Config-v1250 ::= SEQUENCE { + ul-extended-RLC-LI-Field-r12 BOOLEAN, + dl-extended-RLC-LI-Field-r12 BOOLEAN +} + +UL-AM-RLC ::= SEQUENCE { + t-PollRetransmit T-PollRetransmit, + pollPDU PollPDU, + pollByte PollByte, + maxRetxThreshold ENUMERATED { + t1, t2, t3, t4, t6, t8, t16, t32} +} + +DL-AM-RLC ::= SEQUENCE { + t-Reordering T-Reordering, + t-StatusProhibit T-StatusProhibit +} + +UL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength +} + +DL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength, + t-Reordering T-Reordering +} + +SN-FieldLength ::= ENUMERATED {size5, size10} + +T-PollRetransmit ::= ENUMERATED { + ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, spare9, spare8, + spare7, spare6, spare5, spare4, spare3, + spare2, spare1} + +PollPDU ::= ENUMERATED { + p4, p8, p16, p32, p64, p128, p256, pInfinity} + +PollByte ::= ENUMERATED { + kB25, kB50, kB75, kB100, kB125, kB250, kB375, + kB500, kB750, kB1000, kB1250, kB1500, kB2000, + kB3000, kBinfinity, spare1} + +T-Reordering ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms110, + ms120, ms130, ms140, ms150, ms160, ms170, + ms180, ms190, ms200, spare1} + +T-StatusProhibit ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, spare8, spare7, + spare6, spare5, spare4, spare3, spare2, + spare1} + + +RLF-TimersAndConstants-r9 ::= CHOICE { + release NULL, + setup SEQUENCE { + t301-r9 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t310-r9 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n310-r9 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311-r9 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311-r9 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ... + } +} + +RLF-TimersAndConstantsSCG-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + t313-r12 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n313-r12 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + n314-r12 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ... + } +} + + +RN-SubframeConfig-r10 ::= SEQUENCE { + subframeConfigPattern-r10 CHOICE { + subframeConfigPatternFDD-r10 BIT STRING (SIZE(8)), + subframeConfigPatternTDD-r10 INTEGER (0..31) + } OPTIONAL, -- Need ON + rpdcch-Config-r10 SEQUENCE { + resourceAllocationType-r10 ENUMERATED {type0, type1, type2Localized, type2Distributed, + spare4, spare3, spare2, spare1}, + resourceBlockAssignment-r10 CHOICE { + type01-r10 CHOICE { + nrb6-r10 BIT STRING (SIZE(6)), + nrb15-r10 BIT STRING (SIZE(8)), + nrb25-r10 BIT STRING (SIZE(13)), + nrb50-r10 BIT STRING (SIZE(17)), + nrb75-r10 BIT STRING (SIZE(19)), + nrb100-r10 BIT STRING (SIZE(25)) + }, + type2-r10 CHOICE { + nrb6-r10 BIT STRING (SIZE(5)), + nrb15-r10 BIT STRING (SIZE(7)), + nrb25-r10 BIT STRING (SIZE(9)), + nrb50-r10 BIT STRING (SIZE(11)), + nrb75-r10 BIT STRING (SIZE(12)), + nrb100-r10 BIT STRING (SIZE(13)) + }, + ... + }, + demodulationRS-r10 CHOICE { + interleaving-r10 ENUMERATED {crs}, + noInterleaving-r10 ENUMERATED {crs, dmrs} + }, + pdsch-Start-r10 INTEGER (1..3), + pucch-Config-r10 CHOICE { + tdd CHOICE { + channelSelectionMultiplexingBundling SEQUENCE { + n1PUCCH-AN-List-r10 SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + }, + fallbackForFormat3 SEQUENCE { + n1PUCCH-AN-P0-r10 INTEGER (0..2047), + n1PUCCH-AN-P1-r10 INTEGER (0..2047) OPTIONAL -- Need OR + } + }, + fdd SEQUENCE { + n1PUCCH-AN-P0-r10 INTEGER (0..2047), + n1PUCCH-AN-P1-r10 INTEGER (0..2047) OPTIONAL -- Need OR + } + }, + ... + } OPTIONAL, -- Need ON + ... +} + + +SchedulingRequestConfig ::= CHOICE { + release NULL, + setup SEQUENCE { + sr-PUCCH-ResourceIndex INTEGER (0..2047), + sr-ConfigIndex INTEGER (0..157), + dsr-TransMax ENUMERATED { + n4, n8, n16, n32, n64, spare3, spare2, spare1} + } +} + +SchedulingRequestConfig-v1020 ::= SEQUENCE { + sr-PUCCH-ResourceIndexP1-r10 INTEGER (0..2047) OPTIONAL -- Need OR +} + + +SoundingRS-UL-ConfigCommon ::= CHOICE { + release NULL, + setup SEQUENCE { + srs-BandwidthConfig ENUMERATED {bw0, bw1, bw2, bw3, bw4, bw5, bw6, bw7}, + srs-SubframeConfig ENUMERATED { + sc0, sc1, sc2, sc3, sc4, sc5, sc6, sc7, + sc8, sc9, sc10, sc11, sc12, sc13, sc14, sc15}, + ackNackSRS-SimultaneousTransmission BOOLEAN, + srs-MaxUpPts ENUMERATED {true} OPTIONAL -- Cond TDD + } +} + +SoundingRS-UL-ConfigDedicated ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-Bandwidth ENUMERATED {bw0, bw1, bw2, bw3}, + srs-HoppingBandwidth ENUMERATED {hbw0, hbw1, hbw2, hbw3}, + freqDomainPosition INTEGER (0..23), + duration BOOLEAN, + srs-ConfigIndex INTEGER (0..1023), + transmissionComb INTEGER (0..1), + cyclicShift ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7} + } +} + +SoundingRS-UL-ConfigDedicated-v1020 ::= SEQUENCE { + srs-AntennaPort-r10 SRS-AntennaPort +} + +SoundingRS-UL-ConfigDedicatedAperiodic-r10 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-ConfigIndexAp-r10 INTEGER (0..31), + srs-ConfigApDCI-Format4-r10 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-r10 OPTIONAL,--Need ON + srs-ActivateAp-r10 CHOICE { + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format0-r10 SRS-ConfigAp-r10, + srs-ConfigApDCI-Format1a2b2c-r10 SRS-ConfigAp-r10, + ... + } + } OPTIONAL -- Need ON + } +} + +SRS-ConfigAp-r10 ::= SEQUENCE { + srs-AntennaPortAp-r10 SRS-AntennaPort, + srs-BandwidthAp-r10 ENUMERATED {bw0, bw1, bw2, bw3}, + freqDomainPositionAp-r10 INTEGER (0..23), + transmissionCombAp-r10 INTEGER (0..1), + cyclicShiftAp-r10 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7} +} + +SRS-AntennaPort ::= ENUMERATED {an1, an2, an4, spare1} + + +SPS-Config ::= SEQUENCE { + semiPersistSchedC-RNTI C-RNTI OPTIONAL, -- Need OR + sps-ConfigDL SPS-ConfigDL OPTIONAL, -- Need ON + sps-ConfigUL SPS-ConfigUL OPTIONAL -- Need ON +} + +SPS-ConfigDL ::= CHOICE{ + release NULL, + setup SEQUENCE { + semiPersistSchedIntervalDL ENUMERATED { + sf10, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, spare6, + spare5, spare4, spare3, spare2, + spare1}, + numberOfConfSPS-Processes INTEGER (1..8), + n1PUCCH-AN-PersistentList N1PUCCH-AN-PersistentList, + ..., + [[ twoAntennaPortActivated-r10 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-PersistentListP1-r10 N1PUCCH-AN-PersistentList + } + } OPTIONAL -- Need ON + ]] + } +} + +SPS-ConfigUL ::= CHOICE { + release NULL, + setup SEQUENCE { + semiPersistSchedIntervalUL ENUMERATED { + sf10, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, spare6, + spare5, spare4, spare3, spare2, + spare1}, + implicitReleaseAfter ENUMERATED {e2, e3, e4, e8}, + p0-Persistent SEQUENCE { + p0-NominalPUSCH-Persistent INTEGER (-126..24), + p0-UE-PUSCH-Persistent INTEGER (-8..7) + } OPTIONAL, -- Need OP + twoIntervalsConfig ENUMERATED {true} OPTIONAL, -- Cond TDD + ..., + [[ p0-PersistentSubframeSet2-r12 CHOICE { + release NULL, + setup SEQUENCE { + p0-NominalPUSCH-PersistentSubframeSet2-r12 INTEGER (-126..24), + p0-UE-PUSCH-PersistentSubframeSet2-r12 INTEGER (-8..7) + } + } OPTIONAL -- Need ON + ]] + } +} + +N1PUCCH-AN-PersistentList ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + + +TDD-Config ::= SEQUENCE { + subframeAssignment ENUMERATED { + sa0, sa1, sa2, sa3, sa4, sa5, sa6}, + specialSubframePatterns ENUMERATED { + ssp0, ssp1, ssp2, ssp3, ssp4,ssp5, ssp6, ssp7, + ssp8} +} + +TDD-Config-v1130 ::= SEQUENCE { + specialSubframePatterns-v1130 ENUMERATED {ssp7,ssp9} +} + +TDD-ConfigSL-r12 ::= SEQUENCE { + subframeAssignmentSL-r12 ENUMERATED { + none, sa0, sa1, sa2, sa3, sa4, sa5, sa6} +} + + +TimeAlignmentTimer ::= ENUMERATED { + sf500, sf750, sf1280, sf1920, sf2560, sf5120, + sf10240, infinity} + +TPC-PDCCH-Config ::= CHOICE { + release NULL, + setup SEQUENCE { + tpc-RNTI BIT STRING (SIZE (16)), + tpc-Index TPC-Index + } +} + +TPC-Index ::= CHOICE { + indexOfFormat3 INTEGER (1..15), + indexOfFormat3A INTEGER (1..31) +} + + +UplinkPowerControlCommon ::= SEQUENCE { + p0-NominalPUSCH INTEGER (-126..24), + alpha Alpha-r12, + p0-NominalPUCCH INTEGER (-127..-96), + deltaFList-PUCCH DeltaFList-PUCCH, + deltaPreambleMsg3 INTEGER (-1..6) +} + +UplinkPowerControlCommon-v1020 ::= SEQUENCE { + deltaF-PUCCH-Format3-r10 ENUMERATED {deltaF-1, deltaF0, deltaF1, deltaF2, + deltaF3, deltaF4, deltaF5, deltaF6}, + deltaF-PUCCH-Format1bCS-r10 ENUMERATED {deltaF1, deltaF2, spare2, spare1} +} + +UplinkPowerControlCommonPSCell-r12 ::= SEQUENCE { +-- For uplink power control the additional/ missing fields are signalled (compared to SCell) + deltaF-PUCCH-Format3-r12 ENUMERATED {deltaF-1, deltaF0, deltaF1, deltaF2, + deltaF3, deltaF4, deltaF5, deltaF6}, + deltaF-PUCCH-Format1bCS-r12 ENUMERATED {deltaF1, deltaF2, spare2, spare1}, + p0-NominalPUCCH-r12 INTEGER (-127..-96), + deltaFList-PUCCH-r12 DeltaFList-PUCCH +} + +UplinkPowerControlCommonSCell-r10 ::= SEQUENCE { + p0-NominalPUSCH-r10 INTEGER (-126..24), + alpha-r10 Alpha-r12 +} + +UplinkPowerControlCommonSCell-v1130 ::= SEQUENCE { + deltaPreambleMsg3-r11 INTEGER (-1..6) +} + +UplinkPowerControlDedicated ::= SEQUENCE { + p0-UE-PUSCH INTEGER (-8..7), + deltaMCS-Enabled ENUMERATED {en0, en1}, + accumulationEnabled BOOLEAN, + p0-UE-PUCCH INTEGER (-8..7), + pSRS-Offset INTEGER (0..15), + filterCoefficient FilterCoefficient DEFAULT fc4 +} + +UplinkPowerControlDedicated-v1020 ::= SEQUENCE { + deltaTxD-OffsetListPUCCH-r10 DeltaTxD-OffsetListPUCCH-r10 OPTIONAL, -- Need OR + pSRS-OffsetAp-r10 INTEGER (0..15) OPTIONAL -- Need OR +} + +UplinkPowerControlDedicated-v1130 ::= SEQUENCE { + pSRS-Offset-v1130 INTEGER (16..31) OPTIONAL, -- Need OR + pSRS-OffsetAp-v1130 INTEGER (16..31) OPTIONAL, -- Need OR + deltaTxD-OffsetListPUCCH-v1130 DeltaTxD-OffsetListPUCCH-v1130 OPTIONAL -- Need OR +} + +UplinkPowerControlDedicated-v1250 ::= SEQUENCE { + set2PowerControlParameter CHOICE { + release NULL, + setup SEQUENCE { + tpc-SubframeSet-r12 BIT STRING (SIZE(10)), + p0-NominalPUSCH-SubframeSet2-r12 INTEGER (-126..24), + alpha-SubframeSet2-r12 Alpha-r12, + p0-UE-PUSCH-SubframeSet2-r12 INTEGER (-8..7) + } + } +} + +UplinkPowerControlDedicatedSCell-r10 ::= SEQUENCE { + p0-UE-PUSCH-r10 INTEGER (-8..7), + deltaMCS-Enabled-r10 ENUMERATED {en0, en1}, + accumulationEnabled-r10 BOOLEAN, + pSRS-Offset-r10 INTEGER (0..15), + pSRS-OffsetAp-r10 INTEGER (0..15) OPTIONAL, -- Need OR + filterCoefficient-r10 FilterCoefficient DEFAULT fc4, + pathlossReferenceLinking-r10 ENUMERATED {pCell, sCell} +} + +Alpha-r12 ::= ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1} + +DeltaFList-PUCCH ::= SEQUENCE { + deltaF-PUCCH-Format1 ENUMERATED {deltaF-2, deltaF0, deltaF2}, + deltaF-PUCCH-Format1b ENUMERATED {deltaF1, deltaF3, deltaF5}, + deltaF-PUCCH-Format2 ENUMERATED {deltaF-2, deltaF0, deltaF1, deltaF2}, + deltaF-PUCCH-Format2a ENUMERATED {deltaF-2, deltaF0, deltaF2}, + deltaF-PUCCH-Format2b ENUMERATED {deltaF-2, deltaF0, deltaF2} +} + +DeltaTxD-OffsetListPUCCH-r10 ::= SEQUENCE { + deltaTxD-OffsetPUCCH-Format1-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format1a1b-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format22a2b-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format3-r10 ENUMERATED {dB0, dB-2}, + ... + +} + +DeltaTxD-OffsetListPUCCH-v1130 ::= SEQUENCE { + deltaTxD-OffsetPUCCH-Format1bCS-r11 ENUMERATED {dB0, dB-1} +} + +NextHopChainingCount ::= INTEGER (0..7) + + +SecurityAlgorithmConfig ::= SEQUENCE { + cipheringAlgorithm CipheringAlgorithm-r12, + integrityProtAlgorithm ENUMERATED { + eia0-v920, eia1, eia2, eia3-v1130, spare4, spare3, + spare2, spare1, ...} +} + +CipheringAlgorithm-r12 ::= ENUMERATED { + eea0, eea1, eea2, eea3-v1130, spare4, spare3, + spare2, spare1, ...} + + +ShortMAC-I ::= BIT STRING (SIZE (16)) + + +AdditionalSpectrumEmission ::= INTEGER (1..32) + +AdditionalSpectrumEmission-v10l0 ::= INTEGER (33..288) + + +ARFCN-ValueCDMA2000 ::= INTEGER (0..2047) + + +ARFCN-ValueEUTRA ::= INTEGER (0..maxEARFCN) + +ARFCN-ValueEUTRA-v9e0 ::= INTEGER (maxEARFCN-Plus1..maxEARFCN2) + +ARFCN-ValueEUTRA-r9 ::= INTEGER (0..maxEARFCN2) + + +ARFCN-ValueGERAN ::= INTEGER (0..1023) + + +ARFCN-ValueUTRA ::= INTEGER (0..16383) + + +BandclassCDMA2000 ::= ENUMERATED { + bc0, bc1, bc2, bc3, bc4, bc5, bc6, bc7, bc8, + bc9, bc10, bc11, bc12, bc13, bc14, bc15, bc16, + bc17, bc18-v9a0, bc19-v9a0, bc20-v9a0, bc21-v9a0, + spare10, spare9, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1, ...} + + +BandIndicatorGERAN ::= ENUMERATED {dcs1800, pcs1900} + + +CarrierFreqCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + arfcn ARFCN-ValueCDMA2000 +} + + +CarrierFreqGERAN ::= SEQUENCE { + arfcn ARFCN-ValueGERAN, + bandIndicator BandIndicatorGERAN +} + + +CarrierFreqsGERAN ::= SEQUENCE { + startingARFCN ARFCN-ValueGERAN, + bandIndicator BandIndicatorGERAN, + followingARFCNs CHOICE { + explicitListOfARFCNs ExplicitListOfARFCNs, + equallySpacedARFCNs SEQUENCE { + arfcn-Spacing INTEGER (1..8), + numberOfFollowingARFCNs INTEGER (0..31) + }, + variableBitMapOfARFCNs OCTET STRING (SIZE (1..16)) + } +} + +ExplicitListOfARFCNs ::= SEQUENCE (SIZE (0..31)) OF ARFCN-ValueGERAN + + +CarrierFreqListMBMS-r11 ::= SEQUENCE (SIZE (1..maxFreqMBMS-r11)) OF ARFCN-ValueEUTRA-r9 + + +CDMA2000-Type ::= ENUMERATED {type1XRTT, typeHRPD} + + +CellIdentity ::= BIT STRING (SIZE (28)) + + +CellIndexList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellIndex + +CellIndex ::= INTEGER (1..maxCellMeas) + + +CellReselectionPriority ::= INTEGER (0..7) + + +CSFB-RegistrationParam1XRTT ::= SEQUENCE { + sid BIT STRING (SIZE (15)), + nid BIT STRING (SIZE (16)), + multipleSID BOOLEAN, + multipleNID BOOLEAN, + homeReg BOOLEAN, + foreignSIDReg BOOLEAN, + foreignNIDReg BOOLEAN, + parameterReg BOOLEAN, + powerUpReg BOOLEAN, + registrationPeriod BIT STRING (SIZE (7)), + registrationZone BIT STRING (SIZE (12)), + totalZone BIT STRING (SIZE (3)), + zoneTimer BIT STRING (SIZE (3)) +} + +CSFB-RegistrationParam1XRTT-v920 ::= SEQUENCE { + powerDownReg-r9 ENUMERATED {true} +} + + +CellGlobalIdEUTRA ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellIdentity CellIdentity +} + + +CellGlobalIdUTRA ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellIdentity BIT STRING (SIZE (28)) +} + + +CellGlobalIdGERAN ::= SEQUENCE { + plmn-Identity PLMN-Identity, + locationAreaCode BIT STRING (SIZE (16)), + cellIdentity BIT STRING (SIZE (16)) +} + + +CellGlobalIdCDMA2000 ::= CHOICE { + cellGlobalId1XRTT BIT STRING (SIZE (47)), + cellGlobalIdHRPD BIT STRING (SIZE (128)) +} + + +CSG-Identity ::= BIT STRING (SIZE (27)) + + +FreqBandIndicator ::= INTEGER (1..maxFBI) + +FreqBandIndicator-v9e0 ::= INTEGER (maxFBI-Plus1..maxFBI2) + +FreqBandIndicator-r11 ::= INTEGER (1..maxFBI2) + + +MobilityControlInfo ::= SEQUENCE { + targetPhysCellId PhysCellId, + carrierFreq CarrierFreqEUTRA OPTIONAL, -- Cond HO-toEUTRA2 + carrierBandwidth CarrierBandwidthEUTRA OPTIONAL, -- Cond HO-toEUTRA + additionalSpectrumEmission AdditionalSpectrumEmission OPTIONAL, -- Cond HO-toEUTRA + t304 ENUMERATED { + ms50, ms100, ms150, ms200, ms500, ms1000, + ms2000, spare1}, + newUE-Identity C-RNTI, + radioResourceConfigCommon RadioResourceConfigCommon, + rach-ConfigDedicated RACH-ConfigDedicated OPTIONAL, -- Need OP + ..., + [[ carrierFreq-v9e0 CarrierFreqEUTRA-v9e0 OPTIONAL -- Need ON + ]], + [[ drb-ContinueROHC-r11 ENUMERATED {true} OPTIONAL -- Cond HO + ]] +} + +MobilityControlInfo-v10l0 ::= SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 OPTIONAL -- Need ON +} + +MobilityControlInfoSCG-r12 ::= SEQUENCE { + t307-r12 ENUMERATED { + ms50, ms100, ms150, ms200, ms500, ms1000, + ms2000, spare1}, + ue-IdentitySCG-r12 C-RNTI OPTIONAL, -- Cond SCGEst, + rach-ConfigDedicated-r12 RACH-ConfigDedicated OPTIONAL, -- Need OP + cipheringAlgorithmSCG-r12 CipheringAlgorithm-r12 OPTIONAL, -- Need ON + ... +} + +CarrierBandwidthEUTRA ::= SEQUENCE { + dl-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100, spare10, + spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1}, + ul-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100, spare10, + spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1} OPTIONAL -- Need OP +} + +CarrierFreqEUTRA ::= SEQUENCE { + dl-CarrierFreq ARFCN-ValueEUTRA, + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL -- Cond FDD +} + +CarrierFreqEUTRA-v9e0 ::= SEQUENCE { + dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9, + ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9 OPTIONAL -- Cond FDD +} + + +MobilityParametersCDMA2000 ::= OCTET STRING + + +MobilityStateParameters ::= SEQUENCE { + t-Evaluation ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + t-HystNormal ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + n-CellChangeMedium INTEGER (1..16), + n-CellChangeHigh INTEGER (1..16) +} + + +MultiBandInfoList ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator + +MultiBandInfoList-v9e0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF MultiBandInfo-v9e0 + +MultiBandInfoList-v10j0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF NS-PmaxList-r10 + +MultiBandInfoList-v10l0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF NS-PmaxList-v10l0 + +MultiBandInfoList-r11 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-r11 + +MultiBandInfo-v9e0 ::= SEQUENCE { + freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL -- Need OP +} + + +NS-PmaxList-r10 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-r10 + +NS-PmaxList-v10l0 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-v10l0 + +NS-PmaxValue-r10 ::= SEQUENCE { + additionalPmax-r10 P-Max OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission +} + +NS-PmaxValue-v10l0 ::= SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 OPTIONAL -- Need OP +} + + +PhysCellId ::= INTEGER (0..503) + + +PhysCellIdRange ::= SEQUENCE { + start PhysCellId, + range ENUMERATED { + n4, n8, n12, n16, n24, n32, n48, n64, n84, + n96, n128, n168, n252, n504, spare2, + spare1} OPTIONAL -- Need OP +} + + +PhysCellIdRangeUTRA-FDDList-r9::= SEQUENCE (SIZE (1..maxPhysCellIdRange-r9)) OF PhysCellIdRangeUTRA-FDD-r9 + +PhysCellIdRangeUTRA-FDD-r9 ::= SEQUENCE { + start-r9 PhysCellIdUTRA-FDD, + range-r9 INTEGER (2..512) OPTIONAL -- Need OP +} + + +PhysCellIdCDMA2000 ::= INTEGER (0..maxPNOffset) + + +PhysCellIdGERAN ::= SEQUENCE { + networkColourCode BIT STRING (SIZE (3)), + baseStationColourCode BIT STRING (SIZE (3)) +} + + +PhysCellIdUTRA-FDD ::= INTEGER (0..511) + + +PhysCellIdUTRA-TDD ::= INTEGER (0..127) + + +PLMN-Identity ::= SEQUENCE { + mcc MCC OPTIONAL, -- Cond MCC + mnc MNC +} + +MCC ::= SEQUENCE (SIZE (3)) OF + MCC-MNC-Digit + +MNC ::= SEQUENCE (SIZE (2..3)) OF + MCC-MNC-Digit + +MCC-MNC-Digit ::= INTEGER (0..9) + + + +PLMN-IdentityList3-r11 ::= SEQUENCE (SIZE (1..16)) OF PLMN-Identity + + +PreRegistrationInfoHRPD ::= SEQUENCE { + preRegistrationAllowed BOOLEAN, + preRegistrationZoneId PreRegistrationZoneIdHRPD OPTIONAL, -- cond PreRegAllowed + secondaryPreRegistrationZoneIdList SecondaryPreRegistrationZoneIdListHRPD OPTIONAL -- Need OR +} + +SecondaryPreRegistrationZoneIdListHRPD ::= SEQUENCE (SIZE (1..2)) OF PreRegistrationZoneIdHRPD + +PreRegistrationZoneIdHRPD ::= INTEGER (0..255) + + +Q-QualMin-r9 ::= INTEGER (-34..-3) + + +Q-RxLevMin ::= INTEGER (-70..-22) + + +Q-OffsetRange ::= ENUMERATED { + dB-24, dB-22, dB-20, dB-18, dB-16, dB-14, + dB-12, dB-10, dB-8, dB-6, dB-5, dB-4, dB-3, + dB-2, dB-1, dB0, dB1, dB2, dB3, dB4, dB5, + dB6, dB8, dB10, dB12, dB14, dB16, dB18, + dB20, dB22, dB24} + + +Q-OffsetRangeInterRAT ::= INTEGER (-15..15) + + +ReselectionThreshold ::= INTEGER (0..31) + + +ReselectionThresholdQ-r9 ::= INTEGER (0..31) + + +SCellIndex-r10 ::= INTEGER (1..7) + + +ServCellIndex-r10 ::= INTEGER (0..7) + + +SpeedStateScaleFactors ::= SEQUENCE { + sf-Medium ENUMERATED {oDot25, oDot5, oDot75, lDot0}, + sf-High ENUMERATED {oDot25, oDot5, oDot75, lDot0} +} + +SystemInfoListGERAN ::= SEQUENCE (SIZE (1..maxGERAN-SI)) OF + OCTET STRING (SIZE (1..23)) + + +SystemTimeInfoCDMA2000 ::= SEQUENCE { + cdma-EUTRA-Synchronisation BOOLEAN, + cdma-SystemTime CHOICE { + synchronousSystemTime BIT STRING (SIZE (39)), + asynchronousSystemTime BIT STRING (SIZE (49)) + } +} + + +TrackingAreaCode ::= BIT STRING (SIZE (16)) + + +T-Reselection ::= INTEGER (0..7) + + +AllowedMeasBandwidth ::= ENUMERATED {mbw6, mbw15, mbw25, mbw50, mbw75, mbw100} + + +CSI-RSRP-Range-r12 ::= INTEGER(0..97) + + +Hysteresis ::= INTEGER (0..30) + + +LocationInfo-r10 ::= SEQUENCE { + locationCoordinates-r10 CHOICE { + ellipsoid-Point-r10 OCTET STRING, + ellipsoidPointWithAltitude-r10 OCTET STRING, + ..., + ellipsoidPointWithUncertaintyCircle-r11 OCTET STRING, + ellipsoidPointWithUncertaintyEllipse-r11 OCTET STRING, + ellipsoidPointWithAltitudeAndUncertaintyEllipsoid-r11 OCTET STRING, + ellipsoidArc-r11 OCTET STRING, + polygon-r11 OCTET STRING + }, + horizontalVelocity-r10 OCTET STRING OPTIONAL, + gnss-TOD-msec-r10 OCTET STRING OPTIONAL, + ... +} + + +MBSFN-RSRQ-Range-r12 ::= INTEGER(0..31) + +MeasConfig ::= SEQUENCE { + -- Measurement objects + measObjectToRemoveList MeasObjectToRemoveList OPTIONAL, -- Need ON + measObjectToAddModList MeasObjectToAddModList OPTIONAL, -- Need ON + -- Reporting configurations + reportConfigToRemoveList ReportConfigToRemoveList OPTIONAL, -- Need ON + reportConfigToAddModList ReportConfigToAddModList OPTIONAL, -- Need ON + -- Measurement identities + measIdToRemoveList MeasIdToRemoveList OPTIONAL, -- Need ON + measIdToAddModList MeasIdToAddModList OPTIONAL, -- Need ON + -- Other parameters + quantityConfig QuantityConfig OPTIONAL, -- Need ON + measGapConfig MeasGapConfig OPTIONAL, -- Need ON + s-Measure RSRP-Range OPTIONAL, -- Need ON + preRegistrationInfoHRPD PreRegistrationInfoHRPD OPTIONAL, -- Need OP + speedStatePars CHOICE { + release NULL, + setup SEQUENCE { + mobilityStateParameters MobilityStateParameters, + timeToTrigger-SF SpeedStateScaleFactors + } + } OPTIONAL, -- Need ON + ..., + [[ measObjectToAddModList-v9e0 MeasObjectToAddModList-v9e0 OPTIONAL -- Need ON + ]], + [[ allowInterruptions-r11 BOOLEAN OPTIONAL -- Need ON + ]], + [[ measScaleFactor-r12 CHOICE { + release NULL, + setup MeasScaleFactor-r12 + } OPTIONAL, -- Need ON + measIdToRemoveListExt-r12 MeasIdToRemoveListExt-r12 OPTIONAL, -- Need ON + measIdToAddModListExt-r12 MeasIdToAddModListExt-r12 OPTIONAL, -- Need ON + measRSRQ-OnAllSymbols-r12 BOOLEAN OPTIONAL -- Need ON + ]] +} + +MeasIdToRemoveList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId + +MeasIdToRemoveListExt-r12 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId-v1250 + +MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId + +ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigId + + +MeasDS-Config-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + dmtc-PeriodOffset-r12 CHOICE { + ms40-r12 INTEGER(0..39), + ms80-r12 INTEGER(0..79), + ms160-r12 INTEGER(0..159), + ... + }, + ds-OccasionDuration-r12 CHOICE { + durationFDD-r12 INTEGER(1..maxDS-Duration-r12), + durationTDD-r12 INTEGER(2..maxDS-Duration-r12) + }, + measCSI-RS-ToRemoveList-r12 MeasCSI-RS-ToRemoveList-r12 OPTIONAL, -- Need ON + measCSI-RS-ToAddModList-r12 MeasCSI-RS-ToAddModList-r12 OPTIONAL, -- Need ON + ... + } +} + +MeasCSI-RS-ToRemoveList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Id-r12 + +MeasCSI-RS-ToAddModList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Config-r12 + +MeasCSI-RS-Id-r12 ::= INTEGER (1..maxCSI-RS-Meas-r12) + +MeasCSI-RS-Config-r12 ::= SEQUENCE { + measCSI-RS-Id-r12 MeasCSI-RS-Id-r12, + physCellId-r12 INTEGER (0..503), + scramblingIdentity-r12 INTEGER (0..503), + resourceConfig-r12 INTEGER (0..31), + subframeOffset-r12 INTEGER (0..4), + csi-RS-IndividualOffset-r12 Q-OffsetRange, + ... +} + + +MeasGapConfig ::= CHOICE { + release NULL, + setup SEQUENCE { + gapOffset CHOICE { + gp0 INTEGER (0..39), + gp1 INTEGER (0..79), + ... + } + } +} + + +MeasId ::= INTEGER (1..maxMeasId) + +MeasId-v1250 ::= INTEGER (maxMeasId-Plus1..maxMeasId-r12) + + +MeasIdToAddModList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod + +MeasIdToAddModListExt-r12 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddModExt-r12 + +MeasIdToAddMod ::= SEQUENCE { + measId MeasId, + measObjectId MeasObjectId, + reportConfigId ReportConfigId +} + +MeasIdToAddModExt-r12 ::= SEQUENCE { + measId-v1250 MeasId-v1250, + measObjectId-r12 MeasObjectId, + reportConfigId-r12 ReportConfigId +} + + +MeasObjectCDMA2000 ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + carrierFreq CarrierFreqCDMA2000, + searchWindowSize INTEGER (0..15) OPTIONAL, -- Need ON + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CellsToAddModListCDMA2000 OPTIONAL, -- Need ON + cellForWhichToReportCGI PhysCellIdCDMA2000 OPTIONAL, -- Need ON + ... +} + +CellsToAddModListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModCDMA2000 + +CellsToAddModCDMA2000 ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdCDMA2000 +} + + +MeasObjectEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + allowedMeasBandwidth AllowedMeasBandwidth, + presenceAntennaPort1 PresenceAntennaPort1, + neighCellConfig NeighCellConfig, + offsetFreq Q-OffsetRange DEFAULT dB0, + -- Cell list + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CellsToAddModList OPTIONAL, -- Need ON + -- Black list + blackCellsToRemoveList CellIndexList OPTIONAL, -- Need ON + blackCellsToAddModList BlackCellsToAddModList OPTIONAL, -- Need ON + cellForWhichToReportCGI PhysCellId OPTIONAL, -- Need ON + ..., + [[measCycleSCell-r10 MeasCycleSCell-r10 OPTIONAL, -- Need ON + measSubframePatternConfigNeigh-r10 MeasSubframePatternConfigNeigh-r10 OPTIONAL -- Need ON + ]], + [[widebandRSRQ-Meas-r11 BOOLEAN OPTIONAL -- Cond WB-RSRQ + ]], + [[ altTTT-CellsToRemoveList-r12 CellIndexList OPTIONAL, -- Need ON + altTTT-CellsToAddModList-r12 AltTTT-CellsToAddModList-r12 OPTIONAL, -- Need ON + t312-r12 CHOICE { + release NULL, + setup ENUMERATED {ms0, ms50, ms100, ms200, + ms300, ms400, ms500, ms1000} + } OPTIONAL, -- Need ON + reducedMeasPerformance-r12 BOOLEAN OPTIONAL, -- Need ON + measDS-Config-r12 MeasDS-Config-r12 OPTIONAL -- Need ON + ]] +} + +MeasObjectEUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +CellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddMod + +CellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellId, + cellIndividualOffset Q-OffsetRange +} + +BlackCellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF BlackCellsToAddMod + +BlackCellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellIdRange PhysCellIdRange +} + +MeasCycleSCell-r10 ::= ENUMERATED {sf160, sf256, sf320, sf512, + sf640, sf1024, sf1280, spare1} + +MeasSubframePatternConfigNeigh-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + measSubframePatternNeigh-r10 MeasSubframePattern-r10, + measSubframeCellList-r10 MeasSubframeCellList-r10 OPTIONAL -- Cond always + } +} + +MeasSubframeCellList-r10 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF PhysCellIdRange + +AltTTT-CellsToAddModList-r12 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF AltTTT-CellsToAddMod-r12 + +AltTTT-CellsToAddMod-r12 ::= SEQUENCE { + cellIndex-r12 INTEGER (1..maxCellMeas), + physCellIdRange-r12 PhysCellIdRange +} + + +MeasObjectGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + ncc-Permitted BIT STRING(SIZE (8)) DEFAULT '11111111'B, + cellForWhichToReportCGI PhysCellIdGERAN OPTIONAL, -- Need ON + ... +} + + +MeasObjectId ::= INTEGER (1..maxObjectId) + + +MeasObjectToAddModList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod + +MeasObjectToAddModList-v9e0 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod-v9e0 + +MeasObjectToAddMod ::= SEQUENCE { + measObjectId MeasObjectId, + measObject CHOICE { + measObjectEUTRA MeasObjectEUTRA, + measObjectUTRA MeasObjectUTRA, + measObjectGERAN MeasObjectGERAN, + measObjectCDMA2000 MeasObjectCDMA2000, + ... + } +} + +MeasObjectToAddMod-v9e0 ::= SEQUENCE { + measObjectEUTRA-v9e0 MeasObjectEUTRA-v9e0 OPTIONAL -- Cond eutra +} + + +MeasObjectUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CHOICE { + cellsToAddModListUTRA-FDD CellsToAddModListUTRA-FDD, + cellsToAddModListUTRA-TDD CellsToAddModListUTRA-TDD + } OPTIONAL, -- Need ON + cellForWhichToReportCGI CHOICE { + utra-FDD PhysCellIdUTRA-FDD, + utra-TDD PhysCellIdUTRA-TDD + } OPTIONAL, -- Need ON + ..., + [[ csg-allowedReportingCells-v930 CSG-AllowedReportingCells-r9 OPTIONAL -- Need ON + ]], + [[ reducedMeasPerformance-r12 BOOLEAN OPTIONAL -- Need ON + ]] +} + +CellsToAddModListUTRA-FDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-FDD + +CellsToAddModUTRA-FDD ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdUTRA-FDD +} + +CellsToAddModListUTRA-TDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-TDD + +CellsToAddModUTRA-TDD ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdUTRA-TDD +} + +CSG-AllowedReportingCells-r9 ::= SEQUENCE { + physCellIdRangeUTRA-FDDList-r9 PhysCellIdRangeUTRA-FDDList-r9 OPTIONAL -- Need OR +} + +MeasResults ::= SEQUENCE { + measId MeasId, + measResultPCell SEQUENCE { + rsrpResult RSRP-Range, + rsrqResult RSRQ-Range + }, + measResultNeighCells CHOICE { + measResultListEUTRA MeasResultListEUTRA, + measResultListUTRA MeasResultListUTRA, + measResultListGERAN MeasResultListGERAN, + measResultsCDMA2000 MeasResultsCDMA2000, + ... + } OPTIONAL, + ..., + [[ measResultForECID-r9 MeasResultForECID-r9 OPTIONAL + ]], + [[ locationInfo-r10 LocationInfo-r10 OPTIONAL, + measResultServFreqList-r10 MeasResultServFreqList-r10 OPTIONAL + ]], + [[ measId-v1250 MeasId-v1250 OPTIONAL, + measResultPCell-v1250 RSRQ-Range-v1250 OPTIONAL, + measResultCSI-RS-List-r12 MeasResultCSI-RS-List-r12 OPTIONAL + ]] +} + +MeasResultListEUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultEUTRA + +MeasResultEUTRA ::= SEQUENCE { + physCellId PhysCellId, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdEUTRA, + trackingAreaCode TrackingAreaCode, + plmn-IdentityList PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + rsrpResult RSRP-Range OPTIONAL, + rsrqResult RSRQ-Range OPTIONAL, + ..., + [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL + ]], + [[ primaryPLMN-Suitable-r12 ENUMERATED {true} OPTIONAL, + measResult-v1250 RSRQ-Range-v1250 OPTIONAL + ]] + } +} + +MeasResultServFreqList-r10 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF MeasResultServFreq-r10 + +MeasResultServFreq-r10 ::= SEQUENCE { + servFreqId-r10 ServCellIndex-r10, + measResultSCell-r10 SEQUENCE { + rsrpResultSCell-r10 RSRP-Range, + rsrqResultSCell-r10 RSRQ-Range + } OPTIONAL, + measResultBestNeighCell-r10 SEQUENCE { + physCellId-r10 PhysCellId, + rsrpResultNCell-r10 RSRP-Range, + rsrqResultNCell-r10 RSRQ-Range + } OPTIONAL, + ..., + [[ measResultSCell-v1250 RSRQ-Range-v1250 OPTIONAL, + measResultBestNeighCell-v1250 RSRQ-Range-v1250 OPTIONAL + ]] +} + +MeasResultCSI-RS-List-r12 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCSI-RS-r12 + +MeasResultCSI-RS-r12 ::= SEQUENCE { + measCSI-RS-Id-r12 MeasCSI-RS-Id-r12, + csi-RSRP-Result-r12 CSI-RSRP-Range-r12, + ... +} + +MeasResultListUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultUTRA + +MeasResultUTRA ::= SEQUENCE { + physCellId CHOICE { + fdd PhysCellIdUTRA-FDD, + tdd PhysCellIdUTRA-TDD + }, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdUTRA, + locationAreaCode BIT STRING (SIZE (16)) OPTIONAL, + routingAreaCode BIT STRING (SIZE (8)) OPTIONAL, + plmn-IdentityList PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + utra-RSCP INTEGER (-5..91) OPTIONAL, + utra-EcN0 INTEGER (0..49) OPTIONAL, + ..., + [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL + ]], + [[ primaryPLMN-Suitable-r12 ENUMERATED {true} OPTIONAL + ]] + } +} + +MeasResultListGERAN ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultGERAN + +MeasResultGERAN ::= SEQUENCE { + carrierFreq CarrierFreqGERAN, + physCellId PhysCellIdGERAN, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdGERAN, + routingAreaCode BIT STRING (SIZE (8)) OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + rssi INTEGER (0..63), + ... + } +} + +MeasResultsCDMA2000 ::= SEQUENCE { + preRegistrationStatusHRPD BOOLEAN, + measResultListCDMA2000 MeasResultListCDMA2000 +} + +MeasResultListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCDMA2000 + +MeasResultCDMA2000 ::= SEQUENCE { + physCellId PhysCellIdCDMA2000, + cgi-Info CellGlobalIdCDMA2000 OPTIONAL, + measResult SEQUENCE { + pilotPnPhase INTEGER (0..32767) OPTIONAL, + pilotStrength INTEGER (0..63), + ... + } +} + +MeasResultForECID-r9 ::= SEQUENCE { + ue-RxTxTimeDiffResult-r9 INTEGER (0..4095), + currentSFN-r9 BIT STRING (SIZE (10)) +} + +PLMN-IdentityList2 ::= SEQUENCE (SIZE (1..5)) OF PLMN-Identity + +AdditionalSI-Info-r9 ::= SEQUENCE { + csg-MemberStatus-r9 ENUMERATED {member} OPTIONAL, + csg-Identity-r9 CSG-Identity OPTIONAL +} + + +MeasScaleFactor-r12 ::= ENUMERATED {sf-EUTRA-cf1, sf-EUTRA-cf2} + + +QuantityConfig ::= SEQUENCE { + quantityConfigEUTRA QuantityConfigEUTRA OPTIONAL, -- Need ON + quantityConfigUTRA QuantityConfigUTRA OPTIONAL, -- Need ON + quantityConfigGERAN QuantityConfigGERAN OPTIONAL, -- Need ON + quantityConfigCDMA2000 QuantityConfigCDMA2000 OPTIONAL, -- Need ON + ..., + [[ quantityConfigUTRA-v1020 QuantityConfigUTRA-v1020 OPTIONAL -- Need ON + ]], + [[ quantityConfigEUTRA-v1250 QuantityConfigEUTRA-v1250 OPTIONAL -- Need ON + ]] +} + +QuantityConfigEUTRA ::= SEQUENCE { + filterCoefficientRSRP FilterCoefficient DEFAULT fc4, + filterCoefficientRSRQ FilterCoefficient DEFAULT fc4 +} + +QuantityConfigEUTRA-v1250 ::= SEQUENCE { + filterCoefficientCSI-RSRP-r12 FilterCoefficient OPTIONAL -- Need OR +} + +QuantityConfigUTRA ::= SEQUENCE { + measQuantityUTRA-FDD ENUMERATED {cpich-RSCP, cpich-EcN0}, + measQuantityUTRA-TDD ENUMERATED {pccpch-RSCP}, + filterCoefficient FilterCoefficient DEFAULT fc4 +} + +QuantityConfigUTRA-v1020 ::= SEQUENCE { + filterCoefficient2-FDD-r10 FilterCoefficient DEFAULT fc4 +} + +QuantityConfigGERAN ::= SEQUENCE { + measQuantityGERAN ENUMERATED {rssi}, + filterCoefficient FilterCoefficient DEFAULT fc2 +} + +QuantityConfigCDMA2000 ::= SEQUENCE { + measQuantityCDMA2000 ENUMERATED {pilotStrength, pilotPnPhaseAndPilotStrength} +} + + +ReportConfigEUTRA ::= SEQUENCE { + triggerType CHOICE { + event SEQUENCE { + eventId CHOICE { + eventA1 SEQUENCE { + a1-Threshold ThresholdEUTRA + }, + eventA2 SEQUENCE { + a2-Threshold ThresholdEUTRA + }, + eventA3 SEQUENCE { + a3-Offset INTEGER (-30..30), + reportOnLeave BOOLEAN + }, + eventA4 SEQUENCE { + a4-Threshold ThresholdEUTRA + }, + eventA5 SEQUENCE { + a5-Threshold1 ThresholdEUTRA, + a5-Threshold2 ThresholdEUTRA + }, + ..., + eventA6-r10 SEQUENCE { + a6-Offset-r10 INTEGER (-30..30), + a6-ReportOnLeave-r10 BOOLEAN + }, + eventC1-r12 SEQUENCE { + c1-Threshold-r12 ThresholdEUTRA-v1250, + c1-ReportOnLeave-r12 BOOLEAN + }, + eventC2-r12 SEQUENCE { + c2-RefCSI-RS-r12 MeasCSI-RS-Id-r12, + c2-Offset-r12 INTEGER (-30..30), + c2-ReportOnLeave-r12 BOOLEAN + } + }, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + periodical SEQUENCE { + purpose ENUMERATED { + reportStrongestCells, reportCGI} + } + }, + triggerQuantity ENUMERATED {rsrp, rsrq}, + reportQuantity ENUMERATED {sameAsTriggerQuantity, both}, + maxReportCells INTEGER (1..maxCellReport), + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + ..., + [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL, -- Cond reportCGI + ue-RxTxTimeDiffPeriodical-r9 ENUMERATED {setup} OPTIONAL -- Need OR + ]], + [[ includeLocationInfo-r10 ENUMERATED {true} OPTIONAL, -- Need OR + reportAddNeighMeas-r10 ENUMERATED {setup} OPTIONAL -- Need OR + ]], + [[ alternativeTimeToTrigger-r12 CHOICE { + release NULL, + setup TimeToTrigger + } OPTIONAL, -- Need ON + useT312-r12 BOOLEAN OPTIONAL, -- Need ON + usePSCell-r12 BOOLEAN OPTIONAL, -- Need ON + aN-Threshold1-v1250 RSRQ-RangeConfig-r12 OPTIONAL, -- Need ON + a5-Threshold2-v1250 RSRQ-RangeConfig-r12 OPTIONAL, -- Need ON + reportStrongestCSI-RSs-r12 BOOLEAN OPTIONAL, -- Need ON + reportCRS-Meas-r12 BOOLEAN OPTIONAL, -- Need ON + triggerQuantityCSI-RS-r12 BOOLEAN OPTIONAL -- Need ON + ]] +} + +RSRQ-RangeConfig-r12 ::= CHOICE { + release NULL, + setup RSRQ-Range-v1250 +} + +ThresholdEUTRA ::= CHOICE{ + threshold-RSRP RSRP-Range, + threshold-RSRQ RSRQ-Range +} + +ThresholdEUTRA-v1250 ::= CSI-RSRP-Range-r12 + + +ReportConfigId ::= INTEGER (1..maxReportConfigId) + + +ReportConfigInterRAT ::= SEQUENCE { + triggerType CHOICE { + event SEQUENCE { + eventId CHOICE { + eventB1 SEQUENCE { + b1-Threshold CHOICE { + b1-ThresholdUTRA ThresholdUTRA, + b1-ThresholdGERAN ThresholdGERAN, + b1-ThresholdCDMA2000 ThresholdCDMA2000 + } + }, + eventB2 SEQUENCE { + b2-Threshold1 ThresholdEUTRA, + b2-Threshold2 CHOICE { + b2-Threshold2UTRA ThresholdUTRA, + b2-Threshold2GERAN ThresholdGERAN, + b2-Threshold2CDMA2000 ThresholdCDMA2000 + } + }, + ... + }, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + periodical SEQUENCE { + purpose ENUMERATED { + reportStrongestCells, + reportStrongestCellsForSON, + reportCGI} + } + }, + maxReportCells INTEGER (1..maxCellReport), + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + ..., + [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL -- Cond reportCGI + ]], + [[ reportQuantityUTRA-FDD-r10 ENUMERATED {both} OPTIONAL -- Need OR + ]], + [[ includeLocationInfo-r11 BOOLEAN OPTIONAL -- Need ON + ]], + [[ b2-Threshold1-v1250 CHOICE { + release NULL, + setup RSRQ-Range-v1250 + } OPTIONAL -- Need ON + ]] +} + +ThresholdUTRA ::= CHOICE{ + utra-RSCP INTEGER (-5..91), + utra-EcN0 INTEGER (0..49) +} + +ThresholdGERAN ::= INTEGER (0..63) + +ThresholdCDMA2000 ::= INTEGER (0..63) + + +ReportConfigToAddModList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigToAddMod + +ReportConfigToAddMod ::= SEQUENCE { + reportConfigId ReportConfigId, + reportConfig CHOICE { + reportConfigEUTRA ReportConfigEUTRA, + reportConfigInterRAT ReportConfigInterRAT + } +} + + + +ReportInterval ::= ENUMERATED { + ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, + min1, min6, min12, min30, min60, spare3, spare2, spare1} + + +RSRP-Range ::= INTEGER(0..97) + +RSRP-RangeSL-r12 ::= INTEGER(0..13) + +RSRP-RangeSL2-r12 ::= INTEGER(0..7) + +RSRP-RangeSL3-r12 ::= INTEGER(0..11) + + +RSRQ-Range ::= INTEGER(0..34) + +RSRQ-Range-v1250 ::= INTEGER(-30..46) + + + +RSRQ-Type-r12 ::= SEQUENCE { + allSymbols-r12 BOOLEAN, + wideBand-r12 BOOLEAN +} + + +TimeToTrigger ::= ENUMERATED { + ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256, + ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560, + ms5120} + + +AbsoluteTimeInfo-r10 ::= BIT STRING (SIZE (48)) + + +AreaConfiguration-r10 ::= CHOICE { + cellGlobalIdList-r10 CellGlobalIdList-r10, + trackingAreaCodeList-r10 TrackingAreaCodeList-r10 +} + +AreaConfiguration-v1130 ::= SEQUENCE { + trackingAreaCodeList-v1130 TrackingAreaCodeList-v1130 +} + +CellGlobalIdList-r10 ::= SEQUENCE (SIZE (1..32)) OF CellGlobalIdEUTRA + +TrackingAreaCodeList-r10 ::= SEQUENCE (SIZE (1..8)) OF TrackingAreaCode + +TrackingAreaCodeList-v1130 ::= SEQUENCE { + plmn-Identity-perTAC-List-r11 SEQUENCE (SIZE (1..8)) OF PLMN-Identity +} + + +C-RNTI ::= BIT STRING (SIZE (16)) + + +DedicatedInfoCDMA2000 ::= OCTET STRING + + +DedicatedInfoNAS ::= OCTET STRING + + +FilterCoefficient ::= ENUMERATED { + fc0, fc1, fc2, fc3, fc4, fc5, + fc6, fc7, fc8, fc9, fc11, fc13, + fc15, fc17, fc19, spare1, ...} + + +LoggingDuration-r10 ::= ENUMERATED { + min10, min20, min40, min60, min90, min120, spare2, spare1} + + +LoggingInterval-r10 ::= ENUMERATED { + ms1280, ms2560, ms5120, ms10240, ms20480, + ms30720, ms40960, ms61440} + + +MeasSubframePattern-r10 ::= CHOICE { + subframePatternFDD-r10 BIT STRING (SIZE (40)), + subframePatternTDD-r10 CHOICE { + subframeConfig1-5-r10 BIT STRING (SIZE (20)), + subframeConfig0-r10 BIT STRING (SIZE (70)), + subframeConfig6-r10 BIT STRING (SIZE (60)), + ... + }, + ... +} + + +MMEC ::= BIT STRING (SIZE (8)) + + +NeighCellConfig ::= BIT STRING (SIZE (2)) + + +OtherConfig-r9 ::= SEQUENCE { + reportProximityConfig-r9 ReportProximityConfig-r9 OPTIONAL, -- Need ON + ..., + [[ idc-Config-r11 IDC-Config-r11 OPTIONAL, -- Need ON + powerPrefIndicationConfig-r11 PowerPrefIndicationConfig-r11 OPTIONAL, -- Need ON + obtainLocationConfig-r11 ObtainLocationConfig-r11 OPTIONAL -- Need ON + ]] +} + +IDC-Config-r11 ::= SEQUENCE { + idc-Indication-r11 ENUMERATED {setup} OPTIONAL, -- Need OR + autonomousDenialParameters-r11 SEQUENCE { + autonomousDenialSubframes-r11 ENUMERATED {n2, n5, n10, n15, + n20, n30, spare2, spare1}, + autonomousDenialValidity-r11 ENUMERATED { + sf200, sf500, sf1000, sf2000, + spare4, spare3, spare2, spare1} + } OPTIONAL, -- Need OR + ..., + [[ idc-Indication-UL-CA-r11 ENUMERATED {setup} OPTIONAL -- Cond idc-Ind + ]] +} + +ObtainLocationConfig-r11 ::= SEQUENCE { + obtainLocation-r11 ENUMERATED {setup} OPTIONAL -- Need OR +} + +PowerPrefIndicationConfig-r11 ::= CHOICE{ + release NULL, + setup SEQUENCE{ + powerPrefIndicationTimer-r11 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, + s30, s60, s90, s120, s300, s600, spare3, + spare2, spare1} + } +} + +ReportProximityConfig-r9 ::= SEQUENCE { + proximityIndicationEUTRA-r9 ENUMERATED {enabled} OPTIONAL, -- Need OR + proximityIndicationUTRA-r9 ENUMERATED {enabled} OPTIONAL -- Need OR +} + + +RAND-CDMA2000 ::= BIT STRING (SIZE (32)) + + +RAT-Type ::= ENUMERATED { + eutra, utra, geran-cs, geran-ps, cdma2000-1XRTT, + spare3, spare2, spare1, ...} + + +RRC-TransactionIdentifier ::= INTEGER (0..3) + + +S-TMSI ::= SEQUENCE { + mmec MMEC, + m-TMSI BIT STRING (SIZE (32)) +} + + +TraceReference-r10 ::= SEQUENCE { + plmn-Identity-r10 PLMN-Identity, + traceId-r10 OCTET STRING (SIZE (3)) +} + + +UE-CapabilityRAT-ContainerList ::=SEQUENCE (SIZE (0..maxRAT-Capabilities)) OF UE-CapabilityRAT-Container + +UE-CapabilityRAT-Container ::= SEQUENCE { + rat-Type RAT-Type, + ueCapabilityRAT-Container OCTET STRING +} + + +UE-EUTRA-Capability ::= SEQUENCE { + accessStratumRelease AccessStratumRelease, + ue-Category INTEGER (1..5), + pdcp-Parameters PDCP-Parameters, + phyLayerParameters PhyLayerParameters, + rf-Parameters RF-Parameters, + measParameters MeasParameters, + featureGroupIndicators BIT STRING (SIZE (32)) OPTIONAL, + interRAT-Parameters SEQUENCE { + utraFDD IRAT-ParametersUTRA-FDD OPTIONAL, + utraTDD128 IRAT-ParametersUTRA-TDD128 OPTIONAL, + utraTDD384 IRAT-ParametersUTRA-TDD384 OPTIONAL, + utraTDD768 IRAT-ParametersUTRA-TDD768 OPTIONAL, + geran IRAT-ParametersGERAN OPTIONAL, + cdma2000-HRPD IRAT-ParametersCDMA2000-HRPD OPTIONAL, + cdma2000-1xRTT IRAT-ParametersCDMA2000-1XRTT OPTIONAL + }, + nonCriticalExtension UE-EUTRA-Capability-v920-IEs OPTIONAL +} + +-- Late non critical extensions +UE-EUTRA-Capability-v9a0-IEs ::= SEQUENCE { + featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9c0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9c0-IEs ::= SEQUENCE { + interRAT-ParametersUTRA-v9c0 IRAT-ParametersUTRA-v9c0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9d0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9d0-IEs ::= SEQUENCE { + phyLayerParameters-v9d0 PhyLayerParameters-v9d0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9e0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9e0-IEs ::= SEQUENCE { + rf-Parameters-v9e0 RF-Parameters-v9e0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9h0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9h0-IEs ::= SEQUENCE { + interRAT-ParametersUTRA-v9h0 IRAT-ParametersUTRA-v9h0 OPTIONAL, + -- Following field is only to be used for late REL-9 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10c0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10c0-IEs ::= SEQUENCE { + otdoa-PositioningCapabilities-r10 OTDOA-PositioningCapabilities-r10 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10f0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10f0-IEs ::= SEQUENCE { + rf-Parameters-v10f0 RF-Parameters-v10f0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10i0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10i0-IEs ::= SEQUENCE { + rf-Parameters-v10i0 RF-Parameters-v10i0 OPTIONAL, + -- Following field is only to be used for late REL-10 extensions + lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v10j0-IEs) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11d0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10j0-IEs ::= SEQUENCE { + rf-Parameters-v10j0 RF-Parameters-v10j0 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-EUTRA-Capability-v11d0-IEs ::= SEQUENCE { + rf-Parameters-v11d0 RF-Parameters-v11d0 OPTIONAL, + otherParameters-v11d0 Other-Parameters-v11d0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11x0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v11x0-IEs ::= SEQUENCE { + -- Following field is only to be used for late REL-11 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v12b0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v12b0-IEs ::= SEQUENCE { + rf-Parameters-v12b0 RF-Parameters-v12b0 OPTIONAL, + -- Following field is only to be used for late REL-12 extensions + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +UE-EUTRA-Capability-v920-IEs ::= SEQUENCE { + phyLayerParameters-v920 PhyLayerParameters-v920, + interRAT-ParametersGERAN-v920 IRAT-ParametersGERAN-v920, + interRAT-ParametersUTRA-v920 IRAT-ParametersUTRA-v920 OPTIONAL, + interRAT-ParametersCDMA2000-v920 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL, + deviceType-r9 ENUMERATED {noBenFromBatConsumpOpt} OPTIONAL, + csg-ProximityIndicationParameters-r9 CSG-ProximityIndicationParameters-r9, + neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9, + son-Parameters-r9 SON-Parameters-r9, + nonCriticalExtension UE-EUTRA-Capability-v940-IEs OPTIONAL +} + +UE-EUTRA-Capability-v940-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v9a0-IEs) + OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1020-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1020-IEs ::= SEQUENCE { + ue-Category-v1020 INTEGER (6..8) OPTIONAL, + phyLayerParameters-v1020 PhyLayerParameters-v1020 OPTIONAL, + rf-Parameters-v1020 RF-Parameters-v1020 OPTIONAL, + measParameters-v1020 MeasParameters-v1020 OPTIONAL, + featureGroupIndRel10-r10 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersCDMA2000-v1020 IRAT-ParametersCDMA2000-1XRTT-v1020 OPTIONAL, + ue-BasedNetwPerfMeasParameters-r10 UE-BasedNetwPerfMeasParameters-r10 OPTIONAL, + interRAT-ParametersUTRA-TDD-v1020 IRAT-ParametersUTRA-TDD-v1020 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1060-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1060-IEs ::= SEQUENCE { + fdd-Add-UE-EUTRA-Capabilities-v1060 UE-EUTRA-CapabilityAddXDD-Mode-v1060 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1060 UE-EUTRA-CapabilityAddXDD-Mode-v1060 OPTIONAL, + rf-Parameters-v1060 RF-Parameters-v1060 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1090-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1090-IEs ::= SEQUENCE { + rf-Parameters-v1090 RF-Parameters-v1090 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1130-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1130-IEs ::= SEQUENCE { + pdcp-Parameters-v1130 PDCP-Parameters-v1130, + phyLayerParameters-v1130 PhyLayerParameters-v1130 OPTIONAL, + rf-Parameters-v1130 RF-Parameters-v1130, + measParameters-v1130 MeasParameters-v1130, + interRAT-ParametersCDMA2000-v1130 IRAT-ParametersCDMA2000-v1130, + otherParameters-r11 Other-Parameters-r11, + fdd-Add-UE-EUTRA-Capabilities-v1130 UE-EUTRA-CapabilityAddXDD-Mode-v1130 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1130 UE-EUTRA-CapabilityAddXDD-Mode-v1130 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1170-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1170-IEs ::= SEQUENCE { + phyLayerParameters-v1170 PhyLayerParameters-v1170 OPTIONAL, + ue-Category-v1170 INTEGER (9..10) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1180-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1180-IEs ::= SEQUENCE { + rf-Parameters-v1180 RF-Parameters-v1180 OPTIONAL, + mbms-Parameters-r11 MBMS-Parameters-r11 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1180 UE-EUTRA-CapabilityAddXDD-Mode-v1180 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1180 UE-EUTRA-CapabilityAddXDD-Mode-v1180 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11a0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v11a0-IEs ::= SEQUENCE { + ue-Category-v11a0 INTEGER (11..12) OPTIONAL, + measParameters-v11a0 MeasParameters-v11a0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1250-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1250-IEs ::= SEQUENCE { + phyLayerParameters-v1250 PhyLayerParameters-v1250 OPTIONAL, + rf-Parameters-v1250 RF-Parameters-v1250 OPTIONAL, + rlc-Parameters-r12 RLC-Parameters-r12 OPTIONAL, + ue-BasedNetwPerfMeasParameters-v1250 UE-BasedNetwPerfMeasParameters-v1250 OPTIONAL, + ue-CategoryDL-r12 INTEGER (0..14) OPTIONAL, + ue-CategoryUL-r12 INTEGER (0..13) OPTIONAL, + wlan-IW-Parameters-r12 WLAN-IW-Parameters-r12 OPTIONAL, + measParameters-v1250 MeasParameters-v1250 OPTIONAL, + dc-Parameters-r12 DC-Parameters-r12 OPTIONAL, + mbms-Parameters-v1250 MBMS-Parameters-v1250 OPTIONAL, + mac-Parameters-r12 MAC-Parameters-r12 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1250 UE-EUTRA-CapabilityAddXDD-Mode-v1250 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1250 UE-EUTRA-CapabilityAddXDD-Mode-v1250 OPTIONAL, + sl-Parameters-r12 SL-Parameters-r12 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1260-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1260-IEs ::= SEQUENCE { + ue-CategoryDL-v1260 INTEGER (15..16) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1270-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1270-IEs ::= SEQUENCE { + rf-Parameters-v1270 RF-Parameters-v1270 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1280-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1280-IEs ::= SEQUENCE { + phyLayerParameters-v1280 PhyLayerParameters-v1280 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-r9 ::= SEQUENCE { + phyLayerParameters-r9 PhyLayerParameters OPTIONAL, + featureGroupIndicators-r9 BIT STRING (SIZE (32)) OPTIONAL, + featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersGERAN-r9 IRAT-ParametersGERAN OPTIONAL, + interRAT-ParametersUTRA-r9 IRAT-ParametersUTRA-v920 OPTIONAL, + interRAT-ParametersCDMA2000-r9 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL, + neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9 OPTIONAL, + ... +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1060 ::= SEQUENCE { + phyLayerParameters-v1060 PhyLayerParameters-v1020 OPTIONAL, + featureGroupIndRel10-v1060 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersCDMA2000-v1060 IRAT-ParametersCDMA2000-1XRTT-v1020 OPTIONAL, + interRAT-ParametersUTRA-TDD-v1060 IRAT-ParametersUTRA-TDD-v1020 OPTIONAL, + ..., + [[ otdoa-PositioningCapabilities-r10 OTDOA-PositioningCapabilities-r10 OPTIONAL + ]] +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1130 ::= SEQUENCE { + phyLayerParameters-v1130 PhyLayerParameters-v1130 OPTIONAL, + measParameters-v1130 MeasParameters-v1130 OPTIONAL, + otherParameters-r11 Other-Parameters-r11 OPTIONAL, + ... +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1180 ::= SEQUENCE { + mbms-Parameters-r11 MBMS-Parameters-r11 +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1250 ::= SEQUENCE { + phyLayerParameters-v1250 PhyLayerParameters-v1250 OPTIONAL, + measParameters-v1250 MeasParameters-v1250 OPTIONAL +} + +AccessStratumRelease ::= ENUMERATED { + rel8, rel9, rel10, rel11, rel12, spare3, + spare2, spare1, ...} + +DC-Parameters-r12 ::= SEQUENCE { + drb-TypeSplit-r12 ENUMERATED {supported} OPTIONAL, + drb-TypeSCG-r12 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-r12 ::= SEQUENCE { + logicalChannelSR-ProhibitTimer-r12 ENUMERATED {supported} OPTIONAL, + longDRX-Command-r12 ENUMERATED {supported} OPTIONAL +} + +RLC-Parameters-r12 ::= SEQUENCE { + extended-RLC-LI-Field-r12 ENUMERATED {supported} +} + +PDCP-Parameters ::= SEQUENCE { + supportedROHC-Profiles SEQUENCE { + profile0x0001 BOOLEAN, + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0101 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + maxNumberROHC-ContextSessions ENUMERATED { + cs2, cs4, cs8, cs12, cs16, cs24, cs32, + cs48, cs64, cs128, cs256, cs512, cs1024, + cs16384, spare2, spare1} DEFAULT cs16, + ... +} + +PDCP-Parameters-v1130 ::= SEQUENCE { + pdcp-SN-Extension-r11 ENUMERATED {supported} OPTIONAL, + supportRohcContextContinue-r11 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters ::= SEQUENCE { + ue-TxAntennaSelectionSupported BOOLEAN, + ue-SpecificRefSigsSupported BOOLEAN +} + +PhyLayerParameters-v920 ::= SEQUENCE { + enhancedDualLayerFDD-r9 ENUMERATED {supported} OPTIONAL, + enhancedDualLayerTDD-r9 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v9d0 ::= SEQUENCE { + tm5-FDD-r9 ENUMERATED {supported} OPTIONAL, + tm5-TDD-r9 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1020 ::= SEQUENCE { + twoAntennaPortsForPUCCH-r10 ENUMERATED {supported} OPTIONAL, + tm9-With-8Tx-FDD-r10 ENUMERATED {supported} OPTIONAL, + pmi-Disabling-r10 ENUMERATED {supported} OPTIONAL, + crossCarrierScheduling-r10 ENUMERATED {supported} OPTIONAL, + simultaneousPUCCH-PUSCH-r10 ENUMERATED {supported} OPTIONAL, + multiClusterPUSCH-WithinCC-r10 ENUMERATED {supported} OPTIONAL, + nonContiguousUL-RA-WithinCC-List-r10 NonContiguousUL-RA-WithinCC-List-r10 OPTIONAL +} + +PhyLayerParameters-v1130 ::= SEQUENCE { + crs-InterfHandl-r11 ENUMERATED {supported} OPTIONAL, + ePDCCH-r11 ENUMERATED {supported} OPTIONAL, + multiACK-CSI-Reporting-r11 ENUMERATED {supported} OPTIONAL, + ss-CCH-InterfHandl-r11 ENUMERATED {supported} OPTIONAL, + tdd-SpecialSubframe-r11 ENUMERATED {supported} OPTIONAL, + txDiv-PUCCH1b-ChSelect-r11 ENUMERATED {supported} OPTIONAL, + ul-CoMP-r11 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1170 ::= SEQUENCE { + interBandTDD-CA-WithDifferentConfig-r11 BIT STRING (SIZE (2)) OPTIONAL +} + +PhyLayerParameters-v1250 ::= SEQUENCE { + e-HARQ-Pattern-FDD-r12 ENUMERATED {supported} OPTIONAL, + enhanced-4TxCodebook-r12 ENUMERATED {supported} OPTIONAL, + tdd-FDD-CA-PCellDuplex-r12 BIT STRING (SIZE (2)) OPTIONAL, + phy-TDD-ReConfig-TDD-PCell-r12 ENUMERATED {supported} OPTIONAL, + phy-TDD-ReConfig-FDD-PCell-r12 ENUMERATED {supported} OPTIONAL, + pusch-FeedbackMode-r12 ENUMERATED {supported} OPTIONAL, + pusch-SRS-PowerControl-SubframeSet-r12 ENUMERATED {supported} OPTIONAL, + csi-SubframeSet-r12 ENUMERATED {supported} OPTIONAL, + noResourceRestrictionForTTIBundling-r12 ENUMERATED {supported} OPTIONAL, + discoverySignalsInDeactSCell-r12 ENUMERATED {supported} OPTIONAL, + naics-Capability-List-r12 NAICS-Capability-List-r12 OPTIONAL +} + +PhyLayerParameters-v1280 ::= SEQUENCE { + alternativeTBS-Indices-r12 ENUMERATED {supported} OPTIONAL +} + +NonContiguousUL-RA-WithinCC-List-r10 ::= SEQUENCE (SIZE (1..maxBands)) OF NonContiguousUL-RA-WithinCC-r10 + +NonContiguousUL-RA-WithinCC-r10 ::= SEQUENCE { + nonContiguousUL-RA-WithinCC-Info-r10 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters ::= SEQUENCE { + supportedBandListEUTRA SupportedBandListEUTRA +} + +RF-Parameters-v9e0 ::= SEQUENCE { + supportedBandListEUTRA-v9e0 SupportedBandListEUTRA-v9e0 OPTIONAL +} + +RF-Parameters-v1020 ::= SEQUENCE { + supportedBandCombination-r10 SupportedBandCombination-r10 +} + +RF-Parameters-v1060 ::= SEQUENCE { + supportedBandCombinationExt-r10 SupportedBandCombinationExt-r10 +} + +RF-Parameters-v1090 ::= SEQUENCE { + supportedBandCombination-v1090 SupportedBandCombination-v1090 OPTIONAL +} + +RF-Parameters-v10f0 ::= SEQUENCE { + modifiedMPR-Behavior-r10 BIT STRING (SIZE (32)) OPTIONAL +} + +RF-Parameters-v10i0 ::= SEQUENCE { + supportedBandCombination-v10i0 SupportedBandCombination-v10i0 OPTIONAL +} + +RF-Parameters-v10j0 ::= SEQUENCE { + multiNS-Pmax-r10 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1130 ::= SEQUENCE { + supportedBandCombination-v1130 SupportedBandCombination-v1130 OPTIONAL +} + +RF-Parameters-v1180 ::= SEQUENCE { + freqBandRetrieval-r11 ENUMERATED {supported} OPTIONAL, + requestedBands-r11 SEQUENCE (SIZE (1.. maxBands)) OF FreqBandIndicator-r11 OPTIONAL, + supportedBandCombinationAdd-r11 SupportedBandCombinationAdd-r11 OPTIONAL +} + +RF-Parameters-v11d0 ::= SEQUENCE { + supportedBandCombinationAdd-v11d0 SupportedBandCombinationAdd-v11d0 OPTIONAL +} + +RF-Parameters-v1250 ::= SEQUENCE { + supportedBandListEUTRA-v1250 SupportedBandListEUTRA-v1250 OPTIONAL, + supportedBandCombination-v1250 SupportedBandCombination-v1250 OPTIONAL, + supportedBandCombinationAdd-v1250 SupportedBandCombinationAdd-v1250 OPTIONAL, + freqBandPriorityAdjustment-r12 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1270 ::= SEQUENCE { + supportedBandCombination-v1270 SupportedBandCombination-v1270 OPTIONAL, + supportedBandCombinationAdd-v1270 SupportedBandCombinationAdd-v1270 OPTIONAL +} + +RF-Parameters-v12b0 ::= SEQUENCE { + maxLayersMIMO-Indication-r12 ENUMERATED {supported} OPTIONAL +} + +SupportedBandCombination-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-r10 + +SupportedBandCombinationExt-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParametersExt-r10 + +SupportedBandCombination-v1090 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1090 + +SupportedBandCombination-v10i0 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v10i0 + +SupportedBandCombination-v1130 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1130 + +SupportedBandCombination-v1250 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1250 + +SupportedBandCombination-v1270 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1270 + +SupportedBandCombinationAdd-r11 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-r11 + +SupportedBandCombinationAdd-v11d0 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v10i0 + +SupportedBandCombinationAdd-v1250 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1250 + +SupportedBandCombinationAdd-v1270 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1270 + +BandCombinationParameters-r10 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r10 + +BandCombinationParametersExt-r10 ::= SEQUENCE { + supportedBandwidthCombinationSet-r10 SupportedBandwidthCombinationSet-r10 OPTIONAL +} + +BandCombinationParameters-v1090 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1090 + +BandCombinationParameters-v10i0::= SEQUENCE { +bandParameterList-v10i0 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v10i0 OPTIONAL +} + +BandCombinationParameters-v1130 ::= SEQUENCE { + multipleTimingAdvance-r11 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r11 ENUMERATED {supported} OPTIONAL, + bandParameterList-r11 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1130 OPTIONAL, + ... +} + +BandCombinationParameters-r11 ::= SEQUENCE { + bandParameterList-r11 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-r11, + supportedBandwidthCombinationSet-r11 SupportedBandwidthCombinationSet-r10 OPTIONAL, + multipleTimingAdvance-r11 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r11 ENUMERATED {supported} OPTIONAL, + bandInfoEUTRA-r11 BandInfoEUTRA, + ... +} + +BandCombinationParameters-v1250::= SEQUENCE { + dc-Support-r12 SEQUENCE { + asynchronous-r12 ENUMERATED {supported} OPTIONAL, + supportedCellGrouping-r12 CHOICE { + threeEntries-r12 BIT STRING (SIZE(3)), + fourEntries-r12 BIT STRING (SIZE(7)), + fiveEntries-r12 BIT STRING (SIZE(15)) + } OPTIONAL + } OPTIONAL, + supportedNAICS-2CRS-AP-r12 BIT STRING (SIZE (1..maxNAICS-Entries-r12)) OPTIONAL, + commSupportedBandsPerBC-r12 BIT STRING (SIZE (1.. maxBands)) OPTIONAL, + ... +} + +BandCombinationParameters-v1270 ::= SEQUENCE { + bandParameterList-v1270 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1270 OPTIONAL +} + +SupportedBandwidthCombinationSet-r10 ::= BIT STRING (SIZE (1..maxBandwidthCombSet-r10)) + +BandParameters-r10 ::= SEQUENCE { + bandEUTRA-r10 FreqBandIndicator, + bandParametersUL-r10 BandParametersUL-r10 OPTIONAL, + bandParametersDL-r10 BandParametersDL-r10 OPTIONAL +} + +BandParameters-v1090 ::= SEQUENCE { + bandEUTRA-v1090 FreqBandIndicator-v9e0 OPTIONAL, + ... +} + +BandParameters-v10i0::= SEQUENCE { + bandParametersDL-v10i0 SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-v10i0 +} + +BandParameters-v1130 ::= SEQUENCE { + supportedCSI-Proc-r11 ENUMERATED {n1, n3, n4} +} + +BandParameters-r11 ::= SEQUENCE { + bandEUTRA-r11 FreqBandIndicator-r11, + bandParametersUL-r11 BandParametersUL-r10 OPTIONAL, + bandParametersDL-r11 BandParametersDL-r10 OPTIONAL, + supportedCSI-Proc-r11 ENUMERATED {n1, n3, n4} OPTIONAL +} + +BandParameters-v1270 ::= SEQUENCE { + bandParametersDL-v1270 SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-v1270 +} + +BandParametersUL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersUL-r10 + +CA-MIMO-ParametersUL-r10 ::= SEQUENCE { + ca-BandwidthClassUL-r10 CA-BandwidthClass-r10, + supportedMIMO-CapabilityUL-r10 MIMO-CapabilityUL-r10 OPTIONAL +} + +BandParametersDL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-r10 + +CA-MIMO-ParametersDL-r10 ::= SEQUENCE { + ca-BandwidthClassDL-r10 CA-BandwidthClass-r10, + supportedMIMO-CapabilityDL-r10 MIMO-CapabilityDL-r10 OPTIONAL +} + +CA-MIMO-ParametersDL-v10i0 ::= SEQUENCE { + fourLayerTM3-TM4-r10 ENUMERATED {supported} OPTIONAL +} + +CA-MIMO-ParametersDL-v1270 ::= SEQUENCE { + intraBandContiguousCC-InfoList-r12 SEQUENCE (SIZE (1..maxServCell-r10)) OF IntraBandContiguousCC-Info-r12 +} + +IntraBandContiguousCC-Info-r12 ::= SEQUENCE { + fourLayerTM3-TM4-perCC-r12 ENUMERATED {supported} OPTIONAL, + supportedMIMO-CapabilityDL-r12 MIMO-CapabilityDL-r10 OPTIONAL, + supportedCSI-Proc-r12 ENUMERATED {n1, n3, n4} OPTIONAL +} + +CA-BandwidthClass-r10 ::= ENUMERATED {a, b, c, d, e, f, ...} + +MIMO-CapabilityUL-r10 ::= ENUMERATED {twoLayers, fourLayers} + +MIMO-CapabilityDL-r10 ::= ENUMERATED {twoLayers, fourLayers, eightLayers} + +SupportedBandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA + +SupportedBandListEUTRA-v9e0::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v9e0 + +SupportedBandListEUTRA-v1250 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1250 + +SupportedBandEUTRA ::= SEQUENCE { + bandEUTRA FreqBandIndicator, + halfDuplex BOOLEAN +} + +SupportedBandEUTRA-v9e0 ::= SEQUENCE { + bandEUTRA-v9e0 FreqBandIndicator-v9e0 OPTIONAL +} + +SupportedBandEUTRA-v1250 ::= SEQUENCE { + dl-256QAM-r12 ENUMERATED {supported} OPTIONAL, + ul-64QAM-r12 ENUMERATED {supported} OPTIONAL +} + +MeasParameters ::= SEQUENCE { + bandListEUTRA BandListEUTRA +} + +MeasParameters-v1020 ::= SEQUENCE { + bandCombinationListEUTRA-r10 BandCombinationListEUTRA-r10 +} + +MeasParameters-v1130 ::= SEQUENCE { + rsrqMeasWideband-r11 ENUMERATED {supported} OPTIONAL +} + +MeasParameters-v11a0 ::= SEQUENCE { + benefitsFromInterruption-r11 ENUMERATED {true} OPTIONAL +} + +MeasParameters-v1250 ::= SEQUENCE { + timerT312-r12 ENUMERATED {supported} OPTIONAL, + alternativeTimeToTrigger-r12 ENUMERATED {supported} OPTIONAL, + incMonEUTRA-r12 ENUMERATED {supported} OPTIONAL, + incMonUTRA-r12 ENUMERATED {supported} OPTIONAL, + extendedMaxMeasId-r12 ENUMERATED {supported} OPTIONAL, + extendedRSRQ-LowerRange-r12 ENUMERATED {supported} OPTIONAL, + rsrq-OnAllSymbols-r12 ENUMERATED {supported} OPTIONAL, + crs-DiscoverySignalsMeas-r12 ENUMERATED {supported} OPTIONAL, + csi-RS-DiscoverySignalsMeas-r12 ENUMERATED {supported} OPTIONAL +} + +BandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF BandInfoEUTRA + +BandCombinationListEUTRA-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandInfoEUTRA + +BandInfoEUTRA ::= SEQUENCE { + interFreqBandList InterFreqBandList, + interRAT-BandList InterRAT-BandList OPTIONAL +} + +InterFreqBandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterFreqBandInfo + +InterFreqBandInfo ::= SEQUENCE { + interFreqNeedForGaps BOOLEAN +} + +InterRAT-BandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterRAT-BandInfo + +InterRAT-BandInfo ::= SEQUENCE { + interRAT-NeedForGaps BOOLEAN +} + +IRAT-ParametersUTRA-FDD ::= SEQUENCE { + supportedBandListUTRA-FDD SupportedBandListUTRA-FDD +} + +IRAT-ParametersUTRA-v920 ::= SEQUENCE { + e-RedirectionUTRA-r9 ENUMERATED {supported} +} + +IRAT-ParametersUTRA-v9c0 ::= SEQUENCE { + voiceOverPS-HS-UTRA-FDD-r9 ENUMERATED {supported} OPTIONAL, + voiceOverPS-HS-UTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-FDD-ToUTRA-FDD-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-FDD-ToGERAN-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-TDD128-ToUTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-TDD128-ToGERAN-r9 ENUMERATED {supported} OPTIONAL +} + +IRAT-ParametersUTRA-v9h0 ::= SEQUENCE { + mfbi-UTRA-r9 ENUMERATED {supported} +} + +SupportedBandListUTRA-FDD ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-FDD + +SupportedBandUTRA-FDD ::= ENUMERATED { + bandI, bandII, bandIII, bandIV, bandV, bandVI, + bandVII, bandVIII, bandIX, bandX, bandXI, + bandXII, bandXIII, bandXIV, bandXV, bandXVI, ..., + bandXVII-8a0, bandXVIII-8a0, bandXIX-8a0, bandXX-8a0, + bandXXI-8a0, bandXXII-8a0, bandXXIII-8a0, bandXXIV-8a0, + bandXXV-8a0, bandXXVI-8a0, bandXXVII-8a0, bandXXVIII-8a0, + bandXXIX-8a0, bandXXX-8a0, bandXXXI-8a0, bandXXXII-8a0} + +IRAT-ParametersUTRA-TDD128 ::= SEQUENCE { + supportedBandListUTRA-TDD128 SupportedBandListUTRA-TDD128 +} + +SupportedBandListUTRA-TDD128 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD128 + +SupportedBandUTRA-TDD128 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD384 ::= SEQUENCE { + supportedBandListUTRA-TDD384 SupportedBandListUTRA-TDD384 +} + +SupportedBandListUTRA-TDD384 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD384 + +SupportedBandUTRA-TDD384 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD768 ::= SEQUENCE { + supportedBandListUTRA-TDD768 SupportedBandListUTRA-TDD768 +} + +SupportedBandListUTRA-TDD768 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD768 + +SupportedBandUTRA-TDD768 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD-v1020 ::= SEQUENCE { + e-RedirectionUTRA-TDD-r10 ENUMERATED {supported} +} + +IRAT-ParametersGERAN ::= SEQUENCE { + supportedBandListGERAN SupportedBandListGERAN, + interRAT-PS-HO-ToGERAN BOOLEAN +} + +IRAT-ParametersGERAN-v920 ::= SEQUENCE { + dtm-r9 ENUMERATED {supported} OPTIONAL, + e-RedirectionGERAN-r9 ENUMERATED {supported} OPTIONAL +} + +SupportedBandListGERAN ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandGERAN + +SupportedBandGERAN ::= ENUMERATED { + gsm450, gsm480, gsm710, gsm750, gsm810, gsm850, + gsm900P, gsm900E, gsm900R, gsm1800, gsm1900, + spare5, spare4, spare3, spare2, spare1, ...} + +IRAT-ParametersCDMA2000-HRPD ::= SEQUENCE { + supportedBandListHRPD SupportedBandListHRPD, + tx-ConfigHRPD ENUMERATED {single, dual}, + rx-ConfigHRPD ENUMERATED {single, dual} +} + +SupportedBandListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + +IRAT-ParametersCDMA2000-1XRTT ::= SEQUENCE { + supportedBandList1XRTT SupportedBandList1XRTT, + tx-Config1XRTT ENUMERATED {single, dual}, + rx-Config1XRTT ENUMERATED {single, dual} +} + +IRAT-ParametersCDMA2000-1XRTT-v920 ::= SEQUENCE { + e-CSFB-1XRTT-r9 ENUMERATED {supported}, + e-CSFB-ConcPS-Mob1XRTT-r9 ENUMERATED {supported} OPTIONAL +} + +IRAT-ParametersCDMA2000-1XRTT-v1020 ::= SEQUENCE { + e-CSFB-dual-1XRTT-r10 ENUMERATED {supported} +} + +IRAT-ParametersCDMA2000-v1130 ::= SEQUENCE { + cdma2000-NW-Sharing-r11 ENUMERATED {supported} OPTIONAL +} + +SupportedBandList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + +CSG-ProximityIndicationParameters-r9 ::= SEQUENCE { + intraFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL, + interFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL, + utran-ProximityIndication-r9 ENUMERATED {supported} OPTIONAL +} + +NeighCellSI-AcquisitionParameters-r9 ::= SEQUENCE { + intraFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL, + interFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL, + utran-SI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL +} + +SON-Parameters-r9 ::= SEQUENCE { + rach-Report-r9 ENUMERATED {supported} OPTIONAL +} + +UE-BasedNetwPerfMeasParameters-r10 ::= SEQUENCE { + loggedMeasurementsIdle-r10 ENUMERATED {supported} OPTIONAL, + standaloneGNSS-Location-r10 ENUMERATED {supported} OPTIONAL +} + +UE-BasedNetwPerfMeasParameters-v1250 ::= SEQUENCE { + loggedMBSFNMeasurements-r12 ENUMERATED {supported} +} + +OTDOA-PositioningCapabilities-r10 ::= SEQUENCE { + otdoa-UE-Assisted-r10 ENUMERATED {supported}, + interFreqRSTD-Measurement-r10 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-r11 ::= SEQUENCE { + inDeviceCoexInd-r11 ENUMERATED {supported} OPTIONAL, + powerPrefInd-r11 ENUMERATED {supported} OPTIONAL, + ue-Rx-TxTimeDiffMeasurements-r11 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v11d0 ::= SEQUENCE { + inDeviceCoexInd-UL-CA-r11 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-r11 ::= SEQUENCE { + mbms-SCell-r11 ENUMERATED {supported} OPTIONAL, + mbms-NonServingCell-r11 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-v1250 ::= SEQUENCE { + mbms-AsyncDC-r12 ENUMERATED {supported} OPTIONAL +} + +WLAN-IW-Parameters-r12 ::= SEQUENCE { + wlan-IW-RAN-Rules-r12 ENUMERATED {supported} OPTIONAL, + wlan-IW-ANDSF-Policies-r12 ENUMERATED {supported} OPTIONAL +} + +NAICS-Capability-List-r12 ::= SEQUENCE (SIZE (1..maxNAICS-Entries-r12)) OF NAICS-Capability-Entry-r12 + + +NAICS-Capability-Entry-r12 ::= SEQUENCE { + numberOfNAICS-CapableCC-r12 INTEGER(1..5), + numberOfAggregatedPRB-r12 ENUMERATED { + n50, n75, n100, n125, n150, n175, + n200, n225, n250, n275, n300, n350, + n400, n450, n500, spare}, + ... +} + +SL-Parameters-r12 ::= SEQUENCE { + commSimultaneousTx-r12 ENUMERATED {supported} OPTIONAL, + commSupportedBands-r12 FreqBandIndicatorListEUTRA-r12 OPTIONAL, + discSupportedBands-r12 SupportedBandInfoList-r12 OPTIONAL, + discScheduledResourceAlloc-r12 ENUMERATED {supported} OPTIONAL, + disc-UE-SelectedResourceAlloc-r12 ENUMERATED {supported} OPTIONAL, + disc-SLSS-r12 ENUMERATED {supported} OPTIONAL, + discSupportedProc-r12 ENUMERATED {n50, n400} OPTIONAL +} + +SupportedBandInfoList-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandInfo-r12 + +SupportedBandInfo-r12 ::= SEQUENCE { + support-r12 ENUMERATED {supported} OPTIONAL +} + +FreqBandIndicatorListEUTRA-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicator-r11 + + +UE-RadioPagingInfo-r12 ::= SEQUENCE { + ue-Category-v1250 INTEGER (0) OPTIONAL, + ... +} + + +UE-TimersAndConstants ::= SEQUENCE { + t300 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t301 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t310 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n310 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ... +} + + +VisitedCellInfoList-r12 ::= SEQUENCE (SIZE (1..maxCellHistory-r12)) OF VisitedCellInfo-r12 + +VisitedCellInfo-r12 ::= SEQUENCE { + visitedCellId-r12 CHOICE { + cellGlobalId-r12 CellGlobalIdEUTRA, + pci-arfcn-r12 SEQUENCE { + physCellId-r12 PhysCellId, + carrierFreq-r12 ARFCN-ValueEUTRA-r9 + } + } OPTIONAL, + timeSpent-r12 INTEGER (0..4095), + ... +} + + +WLAN-OffloadConfig-r12 ::= SEQUENCE { + thresholdRSRP-r12 SEQUENCE { + thresholdRSRP-Low-r12 RSRP-Range, + thresholdRSRP-High-r12 RSRP-Range + } OPTIONAL, -- Need OR + thresholdRSRQ-r12 SEQUENCE { + thresholdRSRQ-Low-r12 RSRQ-Range, + thresholdRSRQ-High-r12 RSRQ-Range + } OPTIONAL, -- Need OR + thresholdRSRQ-OnAllSymbolsWithWB-r12 SEQUENCE { + thresholdRSRQ-OnAllSymbolsWithWB-Low-r12 RSRQ-Range, + thresholdRSRQ-OnAllSymbolsWithWB-High-r12 RSRQ-Range + } OPTIONAL, -- Need OP + thresholdRSRQ-OnAllSymbols-r12 SEQUENCE { + thresholdRSRQ-OnAllSymbolsLow-r12 RSRQ-Range, + thresholdRSRQ-OnAllSymbolsHigh-r12 RSRQ-Range + } OPTIONAL, -- Need OP + thresholdRSRQ-WB-r12 SEQUENCE { + thresholdRSRQ-WB-Low-r12 RSRQ-Range, + thresholdRSRQ-WB-High-r12 RSRQ-Range + } OPTIONAL, -- Need OP + + thresholdChannelUtilization-r12 SEQUENCE { + thresholdChannelUtilizationLow-r12 INTEGER (0..255), + thresholdChannelUtilizationHigh-r12 INTEGER (0..255) + } OPTIONAL, -- Need OR + thresholdBackhaul-Bandwidth-r12 SEQUENCE { + thresholdBackhaulDL-BandwidthLow-r12 WLAN-backhaulRate-r12, + thresholdBackhaulDL-BandwidthHigh-r12 WLAN-backhaulRate-r12, + thresholdBackhaulUL-BandwidthLow-r12 WLAN-backhaulRate-r12, + thresholdBackhaulUL-BandwidthHigh-r12 WLAN-backhaulRate-r12 + } OPTIONAL, -- Need OR + thresholdBeaconRSSI-r12 SEQUENCE { + thresholdBeaconRSSI-Low-r12 INTEGER (0..255), + thresholdBeaconRSSI-High-r12 INTEGER (0..255) + } OPTIONAL, -- Need OR + offloadPreferenceIndicator-r12 BIT STRING (SIZE (16)) OPTIONAL, -- Need OR + t-SteeringWLAN-r12 T-Reselection OPTIONAL, -- Need OR + ... +} + +WLAN-backhaulRate-r12 ::= ENUMERATED + {r0, r4, r8, r16, r32, r64, r128, r256, r512, + r1024, r2048, r4096, r8192, r16384, r32768, r65536, r131072, + r262144, r524288, r1048576, r2097152, r4194304, r8388608, + r16777216, r33554432, r67108864, r134217728, r268435456, + r536870912, r1073741824, r2147483648, r4294967296} + + +MBMS-NotificationConfig-r9 ::= SEQUENCE { + notificationRepetitionCoeff-r9 ENUMERATED {n2, n4}, + notificationOffset-r9 INTEGER (0..10), + notificationSF-Index-r9 INTEGER (1..6) +} + + +MBSFN-AreaId-r12 ::= INTEGER (0..255) + + +MBSFN-AreaInfoList-r9 ::= SEQUENCE (SIZE(1..maxMBSFN-Area)) OF MBSFN-AreaInfo-r9 + +MBSFN-AreaInfo-r9 ::= SEQUENCE { + mbsfn-AreaId-r9 MBSFN-AreaId-r12, + non-MBSFNregionLength ENUMERATED {s1, s2}, + notificationIndicator-r9 INTEGER (0..7), + mcch-Config-r9 SEQUENCE { + mcch-RepetitionPeriod-r9 ENUMERATED {rf32, rf64, rf128, rf256}, + mcch-Offset-r9 INTEGER (0..10), + mcch-ModificationPeriod-r9 ENUMERATED {rf512, rf1024}, + sf-AllocInfo-r9 BIT STRING (SIZE(6)), + signallingMCS-r9 ENUMERATED {n2, n7, n13, n19} + }, + ... +} + + +MBSFN-SubframeConfig ::= SEQUENCE { + radioframeAllocationPeriod ENUMERATED {n1, n2, n4, n8, n16, n32}, + radioframeAllocationOffset INTEGER (0..7), + subframeAllocation CHOICE { + oneFrame BIT STRING (SIZE(6)), + fourFrames BIT STRING (SIZE(24)) + } +} + +PMCH-InfoList-r9 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-Info-r9 + +PMCH-InfoListExt-r12 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-InfoExt-r12 + +PMCH-Info-r9 ::= SEQUENCE { + pmch-Config-r9 PMCH-Config-r9, + mbms-SessionInfoList-r9 MBMS-SessionInfoList-r9, + ... +} + +PMCH-InfoExt-r12 ::= SEQUENCE { + pmch-Config-r12 PMCH-Config-r12, + mbms-SessionInfoList-r12 MBMS-SessionInfoList-r9, + ... +} + +MBMS-SessionInfoList-r9 ::= SEQUENCE (SIZE (0..maxSessionPerPMCH)) OF MBMS-SessionInfo-r9 + +MBMS-SessionInfo-r9 ::= SEQUENCE { + tmgi-r9 TMGI-r9, + sessionId-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Need OR + logicalChannelIdentity-r9 INTEGER (0..maxSessionPerPMCH-1), + ... +} + +PMCH-Config-r9 ::= SEQUENCE { + sf-AllocEnd-r9 INTEGER (0..1535), + dataMCS-r9 INTEGER (0..28), + mch-SchedulingPeriod-r9 ENUMERATED { + rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024}, + ... +} + +PMCH-Config-r12 ::= SEQUENCE { + sf-AllocEnd-r12 INTEGER (0..1535), + dataMCS-r12 CHOICE { + normal-r12 INTEGER (0..28), + higerOrder-r12 INTEGER (0..27) + }, + mch-SchedulingPeriod-r12 ENUMERATED { + rf4, rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024}, + ... +} + +TMGI-r9 ::= SEQUENCE { + plmn-Id-r9 CHOICE { + plmn-Index-r9 INTEGER (1..maxPLMN-r11), + explicitValue-r9 PLMN-Identity + }, + serviceId-r9 OCTET STRING (SIZE (3)) +} + + + +SL-CommConfig-r12 ::= SEQUENCE { + commTxResources-r12 CHOICE { + release NULL, + setup CHOICE { + scheduled-r12 SEQUENCE { + sl-RNTI-r12 C-RNTI, + mac-MainConfig-r12 MAC-MainConfigSL-r12, + sc-CommTxConfig-r12 SL-CommResourcePool-r12, + mcs-r12 INTEGER (0..28) OPTIONAL -- Need OP + }, + ue-Selected-r12 SEQUENCE { + -- Pool for normal usage + commTxPoolNormalDedicated-r12 SEQUENCE { + poolToReleaseList-r12 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r12 SL-CommTxPoolToAddModList-r12 OPTIONAL -- Need ON + } + } + } + } OPTIONAL, -- Need ON + ... +} + +SL-CommTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-CommTxPoolToAddMod-r12 + +SL-CommTxPoolToAddMod-r12 ::= SEQUENCE { + poolIdentity-r12 SL-TxPoolIdentity-r12, + pool-r12 SL-CommResourcePool-r12 +} + +MAC-MainConfigSL-r12 ::= SEQUENCE { + periodic-BSR-TimerSL PeriodicBSR-Timer-r12 OPTIONAL, -- Need ON + retx-BSR-TimerSL RetxBSR-Timer-r12 +} + + +SL-CommTxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-CommResourcePool-r12 + +SL-CommRxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-RxPool-r12)) OF SL-CommResourcePool-r12 + +SL-CommResourcePool-r12 ::= SEQUENCE { + sc-CP-Len-r12 SL-CP-Len-r12, + sc-Period-r12 SL-PeriodComm-r12, + sc-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + data-CP-Len-r12 SL-CP-Len-r12, + dataHoppingConfig-r12 SL-HoppingConfigComm-r12, + ue-SelectedResourceConfig-r12 SEQUENCE { + data-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + trpt-Subset-r12 SL-TRPT-Subset-r12 OPTIONAL -- Need OP + } OPTIONAL, -- Need OR + rxParametersNCell-r12 SEQUENCE { + tdd-Config-r12 TDD-Config OPTIONAL, -- Need OP + syncConfigIndex-r12 INTEGER (0..15) + } OPTIONAL, -- Need OR + txParameters-r12 SEQUENCE { + sc-TxParameters-r12 SL-TxParameters-r12, + dataTxParameters-r12 SL-TxParameters-r12 + } OPTIONAL, -- Cond Tx + ... +} + +SL-TRPT-Subset-r12 ::= BIT STRING (SIZE (3..5)) + + +SL-CP-Len-r12 ::= ENUMERATED {normal, extended} + + +SL-DiscConfig-r12 ::= SEQUENCE { + discTxResources-r12 CHOICE { + release NULL, + setup CHOICE { + scheduled-r12 SEQUENCE { + discTxConfig-r12 SL-DiscResourcePool-r12 OPTIONAL, -- Need ON + discTF-IndexList-r12 SL-TF-IndexPairList-r12 OPTIONAL, -- Need ON + discHoppingConfig-r12 SL-HoppingConfigDisc-r12 + OPTIONAL -- Need ON + }, + ue-Selected-r12 SEQUENCE { + discTxPoolDedicated-r12 SEQUENCE { + poolToReleaseList-r12 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r12 SL-DiscTxPoolToAddModList-r12 OPTIONAL -- Need ON + } OPTIONAL -- Need ON + } + } + } OPTIONAL, -- Need ON + ..., + [[ discTF-IndexList-v1260 CHOICE { + release NULL, + setup SEQUENCE { + discTF-IndexList-r12b SL-TF-IndexPairList-r12b + } + } OPTIONAL -- Need ON + ]] +} + +SL-DiscTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-DiscTxPoolToAddMod-r12 + +SL-DiscTxPoolToAddMod-r12 ::= SEQUENCE { + poolIdentity-r12 SL-TxPoolIdentity-r12, + pool-r12 SL-DiscResourcePool-r12 +} + +SL-TF-IndexPairList-r12 ::= SEQUENCE (SIZE (1..maxSL-TF-IndexPair-r12)) OF SL-TF-IndexPair-r12 + +SL-TF-IndexPair-r12 ::= SEQUENCE { + discSF-Index-r12 INTEGER (1.. 200) OPTIONAL, -- Need ON + discPRB-Index-r12 INTEGER (1.. 50) OPTIONAL -- Need ON +} + +SL-TF-IndexPairList-r12b ::= SEQUENCE (SIZE (1..maxSL-TF-IndexPair-r12)) OF SL-TF-IndexPair-r12b + +SL-TF-IndexPair-r12b ::= SEQUENCE { + discSF-Index-r12b INTEGER (0..209) OPTIONAL, -- Need ON + discPRB-Index-r12b INTEGER (0..49) OPTIONAL -- Need ON +} + + +SL-DiscTxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-DiscResourcePool-r12 + +SL-DiscRxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-RxPool-r12)) OF SL-DiscResourcePool-r12 + +SL-DiscResourcePool-r12 ::= SEQUENCE { + cp-Len-r12 SL-CP-Len-r12, + discPeriod-r12 ENUMERATED {rf32, rf64, rf128, + rf256, rf512, rf1024, spare2, spare}, + numRetx-r12 INTEGER (0..3), + numRepetition-r12 INTEGER (1..50), + tf-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + txParameters-r12 SEQUENCE { + txParametersGeneral-r12 SL-TxParameters-r12, + ue-SelectedResourceConfig-r12 SEQUENCE { + poolSelection-r12 CHOICE { + rsrpBased-r12 SL-PoolSelectionConfig-r12, + random-r12 NULL + }, + txProbability-r12 ENUMERATED {p25, p50, p75, p100} + } OPTIONAL -- Need OR + } OPTIONAL, -- Cond Tx + rxParameters-r12 SEQUENCE { + tdd-Config-r12 TDD-Config OPTIONAL, -- Need OR + syncConfigIndex-r12 INTEGER (0..15) + } OPTIONAL, -- Need OR + ... +} + +SL-PoolSelectionConfig-r12 ::= SEQUENCE { + threshLow-r12 RSRP-RangeSL2-r12, + threshHigh-r12 RSRP-RangeSL2-r12 +} + + +SL-DiscTxPowerInfoList-r12 ::= SEQUENCE (SIZE (maxSL-DiscPowerClass-r12)) OF SL-DiscTxPowerInfo-r12 + +SL-DiscTxPowerInfo-r12 ::= SEQUENCE { + discMaxTxPower-r12 P-Max, + ... +} + + +SL-HoppingConfigComm-r12 ::= SEQUENCE { + hoppingParameter-r12 INTEGER (0..504), + numSubbands-r12 ENUMERATED {ns1, ns2, ns4}, + rb-Offset-r12 INTEGER (0..110) +} + +SL-HoppingConfigDisc-r12 ::= SEQUENCE { + a-r12 INTEGER (1..200), + b-r12 INTEGER (1..10), + c-r12 ENUMERATED {n1, n5} +} + + +SL-OffsetIndicator-r12 ::= CHOICE { + small-r12 INTEGER (0..319), + large-r12 INTEGER (0..10239) +} + +SL-OffsetIndicatorSync-r12 ::= INTEGER (0..39) + + +SL-PeriodComm-r12 ::= ENUMERATED {sf40, sf60, sf70, sf80, sf120, sf140, + sf160, sf240, sf280, sf320, spare6, spare5, + spare4, spare3, spare2, spare} + + +SLSSID-r12 ::= INTEGER (0..167) + + +SL-SyncConfigList-r12 ::= SEQUENCE (SIZE (1..maxSL-SyncConfig-r12)) OF SL-SyncConfig-r12 + +SL-SyncConfig-r12 ::= SEQUENCE { + syncCP-Len-r12 SL-CP-Len-r12, + syncOffsetIndicator-r12 SL-OffsetIndicatorSync-r12, + slssid-r12 SLSSID-r12, + txParameters-r12 SEQUENCE { + syncTxParameters-r12 SL-TxParameters-r12, + syncTxThreshIC-r12 RSRP-RangeSL-r12, + syncInfoReserved-r12 BIT STRING (SIZE (19)) OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + rxParamsNCell-r12 SEQUENCE { + physCellId-r12 PhysCellId, + discSyncWindow-r12 ENUMERATED {w1, w2} + } OPTIONAL, -- Need OR + ... +} + + +SL-TF-ResourceConfig-r12 ::= SEQUENCE { + prb-Num-r12 INTEGER (1..100), + prb-Start-r12 INTEGER (0..99), + prb-End-r12 INTEGER (0..99), + offsetIndicator-r12 SL-OffsetIndicator-r12, + subframeBitmap-r12 SubframeBitmapSL-r12 +} + +SubframeBitmapSL-r12 ::= CHOICE { + bs4-r12 BIT STRING (SIZE (4)), + bs8-r12 BIT STRING (SIZE (8)), + bs12-r12 BIT STRING (SIZE (12)), + bs16-r12 BIT STRING (SIZE (16)), + bs30-r12 BIT STRING (SIZE (30)), + bs40-r12 BIT STRING (SIZE (40)), + bs42-r12 BIT STRING (SIZE (42)) +} + + +SL-TxParameters-r12 ::= SEQUENCE { + alpha-r12 Alpha-r12, + p0-r12 P0-SL-r12 +} + +P0-SL-r12 ::= INTEGER (-126..31) + + +SL-TxPoolIdentity-r12 ::= INTEGER (1.. maxSL-TxPool-r12) + + +SL-TxPoolToReleaseList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-TxPoolIdentity-r12 + + +maxBandComb-r10 INTEGER ::= 128 -- Maximum number of band combinations. +maxBandComb-r11 INTEGER ::= 256 -- Maximum number of additional band combinations. +maxBands INTEGER ::= 64 -- Maximum number of bands listed in EUTRA UE caps +maxBandwidthClass-r10 INTEGER ::= 16 -- Maximum number of supported CA BW classes per band +maxBandwidthCombSet-r10 INTEGER ::= 32 -- Maximum number of bandwidth combination sets per + -- supported band combination +maxCDMA-BandClass INTEGER ::= 32 -- Maximum value of the CDMA band classes +maxCellBlack INTEGER ::= 16 -- Maximum number of blacklisted physical cell identity + -- ranges listed in SIB type 4 and 5 +maxCellHistory-r12 INTEGER ::= 16 -- Maximum number of visited EUTRA cells reported +maxCellInfoGERAN-r9 INTEGER ::= 32 -- Maximum number of GERAN cells for which system in- + -- formation can be provided as redirection assistance +maxCellInfoUTRA-r9 INTEGER ::= 16 -- Maximum number of UTRA cells for which system + -- information can be provided as redirection + -- assistance +maxCombIDC-r11 INTEGER ::= 128 -- Maximum number of reported UL CA combinations +maxCSI-IM-r11 INTEGER ::= 3 -- Maximum number of CSI-IM configurations + -- (per carrier frequency) +maxCSI-IM-r12 INTEGER ::= 4 -- Maximum number of CSI-IM configurations + -- (per carrier frequency) +maxCSI-Proc-r11 INTEGER ::= 4 -- Maximum number of CSI processes (per carrier + -- frequency) +maxCSI-RS-NZP-r11 INTEGER ::= 3 -- Maximum number of CSI RS resource + -- configurations using non-zero Tx power + -- (per carrier frequency) +maxCSI-RS-ZP-r11 INTEGER ::= 4 -- Maximum number of CSI RS resource + -- configurations using zero Tx power(per carrier + -- frequency) +maxCQI-ProcExt-r11 INTEGER ::= 3 -- Maximum number of additional periodic CQI + -- configurations (per carrier frequency) +maxFreqUTRA-TDD-r10 INTEGER ::= 6 -- Maximum number of UTRA TDD carrier frequencies for + -- which system information can be provided as + -- redirection assistance +maxCellInter INTEGER ::= 16 -- Maximum number of neighbouring inter-frequency + -- cells listed in SIB type 5 +maxCellIntra INTEGER ::= 16 -- Maximum number of neighbouring intra-frequency + -- cells listed in SIB type 4 +maxCellListGERAN INTEGER ::= 3 -- Maximum number of lists of GERAN cells +maxCellMeas INTEGER ::= 32 -- Maximum number of entries in each of the + -- cell lists in a measurement object +maxCellReport INTEGER ::= 8 -- Maximum number of reported cells/CSI-RS resources +maxCSI-RS-Meas-r12 INTEGER ::= 96 -- Maximum number of entries in the CSI-RS list + -- in a measurement object +maxDRB INTEGER ::= 11 -- Maximum number of Data Radio Bearers +maxDS-Duration-r12 INTEGER ::= 5 -- Maximum number of subframes in a discovery signals + -- occasion +maxDS-ZTP-CSI-RS-r12 INTEGER ::= 5 -- Maximum number of zero transmission power CSI-RS for + -- a serving cell concerning discovery signals +maxEARFCN INTEGER ::= 65535 -- Maximum value of EUTRA carrier frequency +maxEARFCN-Plus1 INTEGER ::= 65536 -- Lowest value extended EARFCN range +maxEARFCN2 INTEGER ::= 262143 -- Highest value extended EARFCN range +maxEPDCCH-Set-r11 INTEGER ::= 2 -- Maximum number of EPDCCH sets +maxFBI INTEGER ::= 64 -- Maximum value of fequency band indicator +maxFBI-Plus1 INTEGER ::= 65 -- Lowest value extended FBI range +maxFBI2 INTEGER ::= 256 -- Highest value extended FBI range +maxFreq INTEGER ::= 8 -- Maximum number of carrier frequencies +maxFreqIDC-r11 INTEGER ::= 32 -- Maximum number of carrier frequencies that are + -- affected by the IDC problems +maxFreqMBMS-r11 INTEGER ::= 5 -- Maximum number of carrier frequencies for which an + -- MBMS capable UE may indicate an interest +maxGERAN-SI INTEGER ::= 10 -- Maximum number of GERAN SI blocks that can be + -- provided as part of NACC information +maxGNFG INTEGER ::= 16 -- Maximum number of GERAN neighbour freq groups +maxLogMeasReport-r10 INTEGER ::= 520 -- Maximum number of logged measurement entries + -- that can be reported by the UE in one message +maxMBSFN-Allocations INTEGER ::= 8 -- Maximum number of MBSFN frame allocations with + -- different offset +maxMBSFN-Area INTEGER ::= 8 +maxMBSFN-Area-1 INTEGER ::= 7 +maxMeasId INTEGER ::= 32 +maxMeasId-Plus1 INTEGER ::= 33 +maxMeasId-r12 INTEGER ::= 64 +maxMultiBands INTEGER ::= 8 -- Maximum number of additional frequency bands + -- that a cell belongs to +maxNS-Pmax-r10 INTEGER ::= 8 -- Maximum number of NS and P-Max values per band +maxNAICS-Entries-r12 INTEGER ::= 8 -- Maximum number of supported NAICS combination(s) +maxNeighCell-r12 INTEGER ::= 8 -- Maximum number of neighbouring cells in NAICS + -- configuration (per carrier frequency) +maxObjectId INTEGER ::= 32 +maxP-a-PerNeighCell-r12 INTEGER ::= 3 -- Maximum number of power offsets for a neighbour cell + -- in NAICS configuration +maxPageRec INTEGER ::= 16 -- +maxPhysCellIdRange-r9 INTEGER ::= 4 -- Maximum number of physical cell identity ranges +maxPLMN-r11 INTEGER ::= 6 -- Maximum number of PLMNs +maxPNOffset INTEGER ::= 511 -- Maximum number of CDMA2000 PNOffsets +maxPMCH-PerMBSFN INTEGER ::= 15 +maxRAT-Capabilities INTEGER ::= 8 -- Maximum number of interworking RATs (incl EUTRA) +maxRE-MapQCL-r11 INTEGER ::= 4 -- Maximum number of PDSCH RE Mapping configurations + -- (per carrier frequency) +maxReportConfigId INTEGER ::= 32 +maxRSTD-Freq-r10 INTEGER ::= 3 -- Maximum number of frequency layers for RSTD + -- measurement +maxSAI-MBMS-r11 INTEGER ::= 64 -- Maximum number of MBMS service area identities + -- broadcast per carrier frequency +maxSCell-r10 INTEGER ::= 4 -- Maximum number of SCells +maxSL-Dest-r12 INTEGER ::= 16 -- Maximum number of sidelink destinations +maxSL-DiscPowerClass-r12 INTEGER ::= 3 -- Maximum number of sidelink power classes +maxSL-RxPool-r12 INTEGER ::= 16 -- Maximum number of individual sidelink Rx resource pools +maxSL-SyncConfig-r12 INTEGER ::= 16 -- Maximum number of sidelink Sync configurations +maxSL-TF-IndexPair-r12 INTEGER ::= 64 -- Maximum number of sidelink Time Freq resource index + -- pairs +maxSL-TxPool-r12 INTEGER ::= 4 -- Maximum number of individual sidelink Tx resource pools +maxSTAG-r11 INTEGER ::= 3 -- Maximum number of STAGs +maxServCell-r10 INTEGER ::= 5 -- Maximum number of Serving cells +maxServiceCount INTEGER ::= 16 -- Maximum number of MBMS services that can be included + -- in an MBMS counting request and response +maxServiceCount-1 INTEGER ::= 15 +maxSessionPerPMCH INTEGER ::= 29 +maxSessionPerPMCH-1 INTEGER ::= 28 +maxSIB INTEGER ::= 32 -- Maximum number of SIBs +maxSIB-1 INTEGER ::= 31 +maxSI-Message INTEGER ::= 32 -- Maximum number of SI messages +maxSimultaneousBands-r10 INTEGER ::= 64 -- Maximum number of simultaneously aggregated bands +maxSubframePatternIDC-r11 INTEGER ::= 8 -- Maximum number of subframe reservation patterns + -- that the UE can simultaneously recommend to the + -- E-UTRAN for use. +maxUTRA-FDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA FDD carrier frequencies +maxUTRA-TDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA TDD carrier frequencies +maxWLAN-Id-r12 INTEGER ::= 16 -- Maximum number of WLAN identifiers + + +END + + +PC5-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + TDD-ConfigSL-r12 +FROM EUTRA-RRC-Definitions; + + +SBCCH-SL-BCH-Message ::= SEQUENCE { + message SBCCH-SL-BCH-MessageType +} + +SBCCH-SL-BCH-MessageType ::= MasterInformationBlock-SL + + +MasterInformationBlock-SL ::= SEQUENCE { + sl-Bandwidth-r12 ENUMERATED { + n6, n15, n25, n50, n75, n100}, + tdd-ConfigSL-r12 TDD-ConfigSL-r12, + directFrameNumber-r12 BIT STRING (SIZE (10)), + directSubframeNumber-r12 INTEGER (0..9), + inCoverage-r12 BOOLEAN, + reserved-r12 BIT STRING (SIZE (19)) +} + + + +END + + +EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AbsoluteTimeInfo-r10, + AreaConfiguration-r10, + AreaConfiguration-v1130, + CarrierFreqGERAN, + CellIdentity, + ConnEstFailReport-r11, + SpeedStateScaleFactors, + C-RNTI, + LoggingDuration-r10, + LoggingInterval-r10, + LogMeasInfo-r10, + MeasCSI-RS-Id-r12, + MeasId, + MeasId-v1250, + MeasIdToAddModList, + MeasIdToAddModListExt-r12, + MeasObjectToAddModList, + MeasObjectToAddModList-v9e0, + MeasScaleFactor-r12, + MobilityStateParameters, + NeighCellConfig, + PhysCellId, + PhysCellIdCDMA2000, + PhysCellIdGERAN, + PhysCellIdUTRA-FDD, + PhysCellIdUTRA-TDD, + PLMN-Identity, + PLMN-IdentityList3-r11, + QuantityConfig, + ReportConfigToAddModList, + RLF-Report-r9, + TargetMBSFN-AreaList-r12, + TraceReference-r10, + VisitedCellInfoList-r12, + maxCellMeas, + maxCSI-RS-Meas-r12, + maxMeasId, + maxMeasId-r12 +FROM EUTRA-RRC-Definitions; + + +VarConnEstFailReport-r11 ::= SEQUENCE { + connEstFailReport-r11 ConnEstFailReport-r11, + plmn-Identity-r11 PLMN-Identity +} + + +VarLogMeasConfig-r10 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10 +} + +VarLogMeasConfig-r11 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10 +} + +VarLogMeasConfig-r12 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10, + targetMBSFN-AreaList-r12 TargetMBSFN-AreaList-r12 OPTIONAL +} + + +VarLogMeasReport-r10 ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + plmn-Identity-r10 PLMN-Identity, + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + logMeasInfoList-r10 LogMeasInfoList2-r10 +} + +VarLogMeasReport-r11 ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + plmn-IdentityList-r11 PLMN-IdentityList3-r11, + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + logMeasInfoList-r10 LogMeasInfoList2-r10 +} + +LogMeasInfoList2-r10 ::= SEQUENCE (SIZE (1..maxLogMeas-r10)) OF LogMeasInfo-r10 + + +VarMeasConfig ::= SEQUENCE { + -- Measurement identities + measIdList MeasIdToAddModList OPTIONAL, + measIdListExt-r12 MeasIdToAddModListExt-r12 OPTIONAL, + -- Measurement objects + measObjectList MeasObjectToAddModList OPTIONAL, + measObjectList-v9i0 MeasObjectToAddModList-v9e0 OPTIONAL, + -- Reporting configurations + reportConfigList ReportConfigToAddModList OPTIONAL, + -- Other parameters + quantityConfig QuantityConfig OPTIONAL, + measScaleFactor-r12 MeasScaleFactor-r12 OPTIONAL, + s-Measure INTEGER (-140..-44) OPTIONAL, + speedStatePars CHOICE { + release NULL, + setup SEQUENCE { + mobilityStateParameters MobilityStateParameters, + timeToTrigger-SF SpeedStateScaleFactors + } + } OPTIONAL, + allowInterruptions-r11 BOOLEAN OPTIONAL +} + + +VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport +VarMeasReportList-r12 ::= SEQUENCE (SIZE (1..maxMeasId-r12)) OF VarMeasReport + +VarMeasReport ::= SEQUENCE { + -- List of measurement that have been triggered + measId MeasId, + measId-v1250 MeasId-v1250 OPTIONAL, + cellsTriggeredList CellsTriggeredList OPTIONAL, + csi-RS-TriggeredList-r12 CSI-RS-TriggeredList-r12 OPTIONAL, + numberOfReportsSent INTEGER +} + +CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CHOICE { + physCellIdEUTRA PhysCellId, + physCellIdUTRA CHOICE { + fdd PhysCellIdUTRA-FDD, + tdd PhysCellIdUTRA-TDD + }, + physCellIdGERAN SEQUENCE { + carrierFreq CarrierFreqGERAN, + physCellId PhysCellIdGERAN + }, + physCellIdCDMA2000 PhysCellIdCDMA2000 +} + +CSI-RS-TriggeredList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Id-r12 + +VarMobilityHistoryReport-r12 ::= VisitedCellInfoList-r12 + + +VarRLF-Report-r10 ::= SEQUENCE { + rlf-Report-r10 RLF-Report-r9, + plmn-Identity-r10 PLMN-Identity +} + +VarRLF-Report-r11 ::= SEQUENCE { + rlf-Report-r10 RLF-Report-r9, + plmn-IdentityList-r11 PLMN-IdentityList3-r11 +} + + +VarShortMAC-Input ::= SEQUENCE { + cellIdentity CellIdentity, + physCellId PhysCellId, + c-RNTI C-RNTI +} + +maxLogMeas-r10 INTEGER ::= 4060-- Maximum number of logged measurement entries + -- that can be stored by the UE + + +END + + +EUTRA-Sidelink-Preconf DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AdditionalSpectrumEmission, + ARFCN-ValueEUTRA-r9, + FilterCoefficient, + maxSL-TxPool-r12, + P-Max, + SL-CP-Len-r12, + SL-HoppingConfigComm-r12, + SL-OffsetIndicatorSync-r12, + SL-PeriodComm-r12, + RSRP-RangeSL3-r12, + SL-TF-ResourceConfig-r12, + SL-TRPT-Subset-r12, + P0-SL-r12, + TDD-ConfigSL-r12 +FROM EUTRA-RRC-Definitions; + + +SL-Preconfiguration-r12 ::= SEQUENCE { + preconfigGeneral-r12 SL-PreconfigGeneral-r12, + preconfigSync-r12 SL-PreconfigSync-r12, + preconfigComm-r12 SL-PreconfigCommPoolList4-r12, + ... +} + +SL-PreconfigGeneral-r12 ::= SEQUENCE { + -- PDCP configuration + rohc-Profiles-r12 SEQUENCE { + profile0x0001-r12 BOOLEAN, + profile0x0002-r12 BOOLEAN, + profile0x0004-r12 BOOLEAN, + profile0x0006-r12 BOOLEAN, + profile0x0101-r12 BOOLEAN, + profile0x0102-r12 BOOLEAN, + profile0x0104-r12 BOOLEAN + }, + -- Physical configuration + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + maxTxPower-r12 P-Max, + additionalSpectrumEmission-r12 AdditionalSpectrumEmission, + sl-bandwidth-r12 ENUMERATED {n6, n15, n25, n50, n75, n100}, + tdd-ConfigSL-r12 TDD-ConfigSL-r12, + reserved-r12 BIT STRING (SIZE (19)), + ... +} + +SL-PreconfigSync-r12 ::= SEQUENCE { + syncCP-Len-r12 SL-CP-Len-r12, + syncOffsetIndicator1-r12 SL-OffsetIndicatorSync-r12, + syncOffsetIndicator2-r12 SL-OffsetIndicatorSync-r12, + syncTxParameters-r12 P0-SL-r12, + syncTxThreshOoC-r12 RSRP-RangeSL3-r12, + filterCoefficient-r12 FilterCoefficient, + syncRefMinHyst-r12 ENUMERATED {dB0, dB3, dB6, dB9, dB12}, + syncRefDiffHyst-r12 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf}, + ... +} + +SL-PreconfigCommPoolList4-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-PreconfigCommPool-r12 + +SL-PreconfigCommPool-r12 ::= SEQUENCE { +-- This IE is same as SL-CommResourcePool with rxParametersNCell absent + sc-CP-Len-r12 SL-CP-Len-r12, + sc-Period-r12 SL-PeriodComm-r12, + sc-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + sc-TxParameters-r12 P0-SL-r12, + data-CP-Len-r12 SL-CP-Len-r12, + data-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + dataHoppingConfig-r12 SL-HoppingConfigComm-r12, + dataTxParameters-r12 P0-SL-r12, + trpt-Subset-r12 SL-TRPT-Subset-r12, + ... +} + +END + + +EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AntennaInfoCommon, + AntennaInfoDedicated-v10i0, + ARFCN-ValueEUTRA, + ARFCN-ValueEUTRA-v9e0, + ARFCN-ValueEUTRA-r9, + CellIdentity, + C-RNTI, + DL-DCCH-Message, + DRB-Identity, + DRB-ToReleaseList, + InDeviceCoexIndication-r11, + MasterInformationBlock, + maxFreq, + maxDRB, + maxSCell-r10, + maxServCell-r10, + MBMSInterestIndication-r11, + MeasConfig, + MeasGapConfig, + OtherConfig-r9, + PhysCellId, + P-Max, + PowerCoordinationInfo-r12, + SidelinkUEInformation-r12, + SL-CommConfig-r12, + SL-DiscConfig-r12, + RadioResourceConfigDedicated, + RSRP-Range, + RSRQ-Range, + RSRQ-Range-v1250, + SCellToAddModList-r10, + SCG-ConfigPartSCG-r12, + SecurityAlgorithmConfig, + SCellIndex-r10, + SCellToReleaseList-r10, + ServCellIndex-r10, + ShortMAC-I, + SystemInformationBlockType1, + SystemInformationBlockType1-v890-IEs, + SystemInformationBlockType2, + UEAssistanceInformation-r11, + UECapabilityInformation, + UE-CapabilityRAT-ContainerList, + UE-RadioPagingInfo-r12, + WLAN-OffloadConfig-r12 +FROM EUTRA-RRC-Definitions; + + +HandoverCommand ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverCommand-r8 HandoverCommand-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverCommand-r8-IEs ::= SEQUENCE { + handoverCommandMessage OCTET STRING (CONTAINING DL-DCCH-Message), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +HandoverPreparationInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverPreparationInformation-r8 HandoverPreparationInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverPreparationInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo UE-CapabilityRAT-ContainerList, + as-Config AS-Config OPTIONAL, -- Cond HO + rrm-Config RRM-Config OPTIONAL, + as-Context AS-Context OPTIONAL, -- Cond HO + nonCriticalExtension HandoverPreparationInformation-v920-IEs OPTIONAL +} + +HandoverPreparationInformation-v920-IEs ::= SEQUENCE { + ue-ConfigRelease-r9 ENUMERATED { + rel9, rel10, rel11, rel12, v10j0, v11e0, + v1280, spare1, ...} OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v9d0-IEs OPTIONAL +} + +HandoverPreparationInformation-v9d0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING HandoverPreparationInformation-v9j0-IEs) OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-v9e0-IEs OPTIONAL +} + +-- Late non-critical extensions: +HandoverPreparationInformation-v9j0-IEs ::= SEQUENCE { + -- Following field is only for pre REL-10 late non-critical extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-v10j0-IEs OPTIONAL +} + +HandoverPreparationInformation-v10j0-IEs ::= SEQUENCE { + as-Config-v10j0 AS-Config-v10j0 OPTIONAL, + -- Following field is only for late non-critical extensions from REL-10 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +HandoverPreparationInformation-v9e0-IEs ::= SEQUENCE { + as-Config-v9e0 AS-Config-v9e0 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1130-IEs OPTIONAL +} + +HandoverPreparationInformation-v1130-IEs ::= SEQUENCE { + as-Context-v1130 AS-Context-v1130 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1250-IEs OPTIONAL +} + +HandoverPreparationInformation-v1250-IEs ::= SEQUENCE { + ue-SupportedEARFCN-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Cond HO3 + as-Config-v1250 AS-Config-v1250 OPTIONAL, -- Cond HO2 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCG-Config-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + scg-Config-r12 SCG-Config-r12-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCG-Config-r12-IEs ::= SEQUENCE { + scg-RadioConfig-r12 SCG-ConfigPartSCG-r12 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCG-ConfigInfo-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + scg-ConfigInfo-r12 SCG-ConfigInfo-r12-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCG-ConfigInfo-r12-IEs ::= SEQUENCE { + radioResourceConfigDedMCG-r12 RadioResourceConfigDedicated OPTIONAL, + sCellToAddModListMCG-r12 SCellToAddModList-r10 OPTIONAL, + measGapConfig-r12 MeasGapConfig OPTIONAL, + powerCoordinationInfo-r12 PowerCoordinationInfo-r12 OPTIONAL, + scg-RadioConfig-r12 SCG-ConfigPartSCG-r12 OPTIONAL, + eutra-CapabilityInfo-r12 OCTET STRING (CONTAINING UECapabilityInformation) OPTIONAL, + scg-ConfigRestrictInfo-r12 SCG-ConfigRestrictInfo-r12 OPTIONAL, + mbmsInterestIndication-r12 OCTET STRING (CONTAINING + MBMSInterestIndication-r11) OPTIONAL, + measResultServCellListSCG-r12 MeasResultServCellListSCG-r12 OPTIONAL, + drb-ToAddModListSCG-r12 DRB-InfoListSCG-r12 OPTIONAL, + drb-ToReleaseListSCG-r12 DRB-ToReleaseList OPTIONAL, + sCellToAddModListSCG-r12 SCellToAddModListSCG-r12 OPTIONAL, + sCellToReleaseListSCG-r12 SCellToReleaseList-r10 OPTIONAL, + p-Max-r12 P-Max OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-InfoListSCG-r12 ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-InfoSCG-r12 + +DRB-InfoSCG-r12 ::= SEQUENCE { + eps-BearerIdentity-r12 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity-r12 DRB-Identity, + drb-Type-r12 ENUMERATED {split, scg} OPTIONAL, -- Cond DRB-Setup + ... +} + +SCellToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF Cell-ToAddMod-r12 + +Cell-ToAddMod-r12 ::= SEQUENCE { + sCellIndex-r12 SCellIndex-r10, + cellIdentification-r12 SEQUENCE { + physCellId-r12 PhysCellId, + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + measResultCellToAdd-r12 SEQUENCE { + rsrpResult-r12 RSRP-Range, + rsrqResult-r12 RSRQ-Range + } OPTIONAL, -- Cond SCellAdd2 + ... +} + +MeasResultServCellListSCG-r12 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF MeasResultServCellSCG-r12 + +MeasResultServCellSCG-r12 ::= SEQUENCE { + servCellId-r12 ServCellIndex-r10, + measResultSCell-r12 SEQUENCE { + rsrpResultSCell-r12 RSRP-Range, + rsrqResultSCell-r12 RSRQ-Range + }, + ... +} + +SCG-ConfigRestrictInfo-r12 ::= SEQUENCE { + maxSCH-TB-BitsDL-r12 INTEGER (1..100), + maxSCH-TB-BitsUL-r12 INTEGER (1..100) +} + + +UERadioAccessCapabilityInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioAccessCapabilityInformation-r8 + UERadioAccessCapabilityInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioPagingInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioPagingInformation-r12 UERadioPagingInformation-r12-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioPagingInformation-r12-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r12 OCTET STRING (CONTAINING UE-RadioPagingInfo-r12), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +AS-Config ::= SEQUENCE { + sourceMeasConfig MeasConfig, + sourceRadioResourceConfig RadioResourceConfigDedicated, + sourceSecurityAlgorithmConfig SecurityAlgorithmConfig, + sourceUE-Identity C-RNTI, + sourceMasterInformationBlock MasterInformationBlock, + sourceSystemInformationBlockType1 SystemInformationBlockType1(WITH COMPONENTS + {..., nonCriticalExtension ABSENT}), + sourceSystemInformationBlockType2 SystemInformationBlockType2, + antennaInfoCommon AntennaInfoCommon, + sourceDl-CarrierFreq ARFCN-ValueEUTRA, + ..., + [[ sourceSystemInformationBlockType1Ext OCTET STRING (CONTAINING + SystemInformationBlockType1-v890-IEs) OPTIONAL, + sourceOtherConfig-r9 OtherConfig-r9 + -- sourceOtherConfig-r9 should have been optional. A target eNB compliant with this transfer + -- syntax should support receiving an AS-Config not including this extension addition group + -- e.g. from a legacy source eNB + ]], + [[ sourceSCellConfigList-r10 SCellToAddModList-r10 OPTIONAL + ]], + [[ sourceConfigSCG-r12 SCG-Config-r12 OPTIONAL + ]] +} + +AS-Config-v9e0 ::= SEQUENCE { + sourceDl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +AS-Config-v10j0 ::= SEQUENCE { + antennaInfoDedicatedPCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL +} + +AS-Config-v1250 ::= SEQUENCE { + sourceWlan-OffloadConfig-r12 WLAN-OffloadConfig-r12 OPTIONAL, + sourceSL-CommConfig-r12 SL-CommConfig-r12 OPTIONAL, + sourceSL-DiscConfig-r12 SL-DiscConfig-r12 OPTIONAL +} + + +AS-Context ::= SEQUENCE { + reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO +} + +AS-Context-v1130 ::= SEQUENCE { + idc-Indication-r11 OCTET STRING (CONTAINING + InDeviceCoexIndication-r11) OPTIONAL, -- Cond HO2 + mbmsInterestIndication-r11 OCTET STRING (CONTAINING + MBMSInterestIndication-r11) OPTIONAL, -- Cond HO2 + powerPrefIndication-r11 OCTET STRING (CONTAINING + UEAssistanceInformation-r11) OPTIONAL, -- Cond HO2 + ..., + [[ sidelinkUEInformation-r12 OCTET STRING (CONTAINING + SidelinkUEInformation-r12) OPTIONAL -- Cond HO2 + ]] +} + + +ReestablishmentInfo ::= SEQUENCE { + sourcePhysCellId PhysCellId, + targetCellShortMAC-I ShortMAC-I, + additionalReestabInfoList AdditionalReestabInfoList OPTIONAL, + ... +} + +AdditionalReestabInfoList ::= SEQUENCE ( SIZE (1..maxReestabInfo) ) OF AdditionalReestabInfo + +AdditionalReestabInfo ::= SEQUENCE{ + cellIdentity CellIdentity, + key-eNodeB-Star Key-eNodeB-Star, + shortMAC-I ShortMAC-I +} + +Key-eNodeB-Star ::= BIT STRING (SIZE (256)) + + +RRM-Config ::= SEQUENCE { + ue-InactiveTime ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, + s25, s30, s40, s50, min1, min1s20c, min1s40, + min2, min2s30, min3, min3s30, min4, min5, min6, + min7, min8, min9, min10, min12, min14, min17, min20, + min24, min28, min33, min38, min44, min50, hr1, + hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6, + hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2, + day2hr12, day3, day4, day5, day7, day10, day14, day19, + day24, day30, dayMoreThan30} OPTIONAL, + ..., + [[ candidateCellInfoList-r10 CandidateCellInfoList-r10 OPTIONAL + ]] +} + +CandidateCellInfoList-r10 ::= SEQUENCE (SIZE (1..maxFreq)) OF CandidateCellInfo-r10 + +CandidateCellInfo-r10 ::= SEQUENCE { + -- cellIdentification + physCellId-r10 PhysCellId, + dl-CarrierFreq-r10 ARFCN-ValueEUTRA, + -- available measurement results + rsrpResult-r10 RSRP-Range OPTIONAL, + rsrqResult-r10 RSRQ-Range OPTIONAL, + ..., + [[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL + ]], + [[ rsrqResult-v1250 RSRQ-Range-v1250 OPTIONAL + ]] +} + + +maxReestabInfo INTEGER ::= 32 -- Maximum number of KeNB* and shortMAC-I forwarded + -- at handover for re-establishment preparation + + +END + + diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-13.9.1.asn1 b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-13.9.1.asn1 new file mode 100755 index 0000000000..b6f64a99ed --- /dev/null +++ b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-13.9.1.asn1 @@ -0,0 +1,11905 @@ + +EUTRA-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + + +BCCH-BCH-Message ::= SEQUENCE { + message BCCH-BCH-MessageType +} + +BCCH-BCH-MessageType ::= MasterInformationBlock + + +BCCH-DL-SCH-Message ::= SEQUENCE { + message BCCH-DL-SCH-MessageType +} + +BCCH-DL-SCH-MessageType ::= CHOICE { + c1 CHOICE { + systemInformation SystemInformation, + systemInformationBlockType1 SystemInformationBlockType1 + }, + messageClassExtension SEQUENCE {} +} + + +BCCH-DL-SCH-Message-BR ::= SEQUENCE { + message BCCH-DL-SCH-MessageType-BR-r13 +} + +BCCH-DL-SCH-MessageType-BR-r13 ::= CHOICE { + c1 CHOICE { + systemInformation-BR-r13 SystemInformation-BR-r13, + systemInformationBlockType1-BR-r13 SystemInformationBlockType1-BR-r13 + }, + messageClassExtension SEQUENCE {} +} + + +MCCH-Message ::= SEQUENCE { + message MCCH-MessageType +} + +MCCH-MessageType ::= CHOICE { + c1 CHOICE { + mbsfnAreaConfiguration-r9 MBSFNAreaConfiguration-r9 + }, + later CHOICE { + c2 CHOICE{ + mbmsCountingRequest-r10 MBMSCountingRequest-r10 + }, + messageClassExtension SEQUENCE {} + } +} + + +PCCH-Message ::= SEQUENCE { + message PCCH-MessageType +} + +PCCH-MessageType ::= CHOICE { + c1 CHOICE { + paging Paging + }, + messageClassExtension SEQUENCE {} +} + + +DL-CCCH-Message ::= SEQUENCE { + message DL-CCCH-MessageType +} + +DL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishment RRCConnectionReestablishment, + rrcConnectionReestablishmentReject RRCConnectionReestablishmentReject, + rrcConnectionReject RRCConnectionReject, + rrcConnectionSetup RRCConnectionSetup + }, + messageClassExtension SEQUENCE {} +} + + +DL-DCCH-Message ::= SEQUENCE { + message DL-DCCH-MessageType +} + +DL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + csfbParametersResponseCDMA2000 CSFBParametersResponseCDMA2000, + dlInformationTransfer DLInformationTransfer, + handoverFromEUTRAPreparationRequest HandoverFromEUTRAPreparationRequest, + mobilityFromEUTRACommand MobilityFromEUTRACommand, + rrcConnectionReconfiguration RRCConnectionReconfiguration, + rrcConnectionRelease RRCConnectionRelease, + securityModeCommand SecurityModeCommand, + ueCapabilityEnquiry UECapabilityEnquiry, + counterCheck CounterCheck, + ueInformationRequest-r9 UEInformationRequest-r9, + loggedMeasurementConfiguration-r10 LoggedMeasurementConfiguration-r10, + rnReconfiguration-r10 RNReconfiguration-r10, + rrcConnectionResume-r13 RRCConnectionResume-r13, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +UL-CCCH-Message ::= SEQUENCE { + message UL-CCCH-MessageType +} + +UL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishmentRequest RRCConnectionReestablishmentRequest, + rrcConnectionRequest RRCConnectionRequest + }, + messageClassExtension CHOICE { + c2 CHOICE { + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-r13 + }, + messageClassExtensionFuture-r13 SEQUENCE {} + } +} + + +UL-DCCH-Message ::= SEQUENCE { + message UL-DCCH-MessageType +} + +UL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + csfbParametersRequestCDMA2000 CSFBParametersRequestCDMA2000, + measurementReport MeasurementReport, + rrcConnectionReconfigurationComplete RRCConnectionReconfigurationComplete, + rrcConnectionReestablishmentComplete RRCConnectionReestablishmentComplete, + rrcConnectionSetupComplete RRCConnectionSetupComplete, + securityModeComplete SecurityModeComplete, + securityModeFailure SecurityModeFailure, + ueCapabilityInformation UECapabilityInformation, + ulHandoverPreparationTransfer ULHandoverPreparationTransfer, + ulInformationTransfer ULInformationTransfer, + counterCheckResponse CounterCheckResponse, + ueInformationResponse-r9 UEInformationResponse-r9, + proximityIndication-r9 ProximityIndication-r9, + rnReconfigurationComplete-r10 RNReconfigurationComplete-r10, + mbmsCountingResponse-r10 MBMSCountingResponse-r10, + interFreqRSTDMeasurementIndication-r10 InterFreqRSTDMeasurementIndication-r10 + }, + messageClassExtension CHOICE { + c2 CHOICE { + ueAssistanceInformation-r11 UEAssistanceInformation-r11, + inDeviceCoexIndication-r11 InDeviceCoexIndication-r11, + mbmsInterestIndication-r11 MBMSInterestIndication-r11, + scgFailureInformation-r12 SCGFailureInformation-r12, + sidelinkUEInformation-r12 SidelinkUEInformation-r12, + wlanConnectionStatusReport-r13 WLANConnectionStatusReport-r13, + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-r13, + spare9 NULL, spare8 NULL, spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtensionFuture-r11 SEQUENCE {} + } +} + + +SC-MCCH-Message-r13 ::= SEQUENCE { + message SC-MCCH-MessageType-r13 +} + + +SC-MCCH-MessageType-r13 ::= CHOICE { + c1 CHOICE { + scptmConfiguration-r13 SCPTMConfiguration-r13 + }, + messageClassExtension SEQUENCE {} +} + + +CounterCheck ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + counterCheck-r8 CounterCheck-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheck-r8-IEs ::= SEQUENCE { + drb-CountMSB-InfoList DRB-CountMSB-InfoList, + nonCriticalExtension CounterCheck-v8a0-IEs OPTIONAL +} + +CounterCheck-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-CountMSB-InfoList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-CountMSB-Info + +DRB-CountMSB-Info ::= SEQUENCE { + drb-Identity DRB-Identity, + countMSB-Uplink INTEGER(0..33554431), + countMSB-Downlink INTEGER(0..33554431) +} + + +CounterCheckResponse ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + counterCheckResponse-r8 CounterCheckResponse-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheckResponse-r8-IEs ::= SEQUENCE { + drb-CountInfoList DRB-CountInfoList, + nonCriticalExtension CounterCheckResponse-v8a0-IEs OPTIONAL +} + +CounterCheckResponse-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-CountInfoList ::= SEQUENCE (SIZE (0..maxDRB)) OF DRB-CountInfo + +DRB-CountInfo ::= SEQUENCE { + drb-Identity DRB-Identity, + count-Uplink INTEGER(0..4294967295), + count-Downlink INTEGER(0..4294967295) +} + + +CSFBParametersRequestCDMA2000 ::= SEQUENCE { + criticalExtensions CHOICE { + csfbParametersRequestCDMA2000-r8 CSFBParametersRequestCDMA2000-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CSFBParametersRequestCDMA2000-r8-IEs ::= SEQUENCE { + nonCriticalExtension CSFBParametersRequestCDMA2000-v8a0-IEs OPTIONAL +} + +CSFBParametersRequestCDMA2000-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +CSFBParametersResponseCDMA2000 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + csfbParametersResponseCDMA2000-r8 CSFBParametersResponseCDMA2000-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CSFBParametersResponseCDMA2000-r8-IEs ::= SEQUENCE { + rand RAND-CDMA2000, + mobilityParameters MobilityParametersCDMA2000, + nonCriticalExtension CSFBParametersResponseCDMA2000-v8a0-IEs OPTIONAL +} + +CSFBParametersResponseCDMA2000-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +DLInformationTransfer ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + dlInformationTransfer-r8 DLInformationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +DLInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType CHOICE { + dedicatedInfoNAS DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000 + }, + nonCriticalExtension DLInformationTransfer-v8a0-IEs OPTIONAL +} + +DLInformationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +HandoverFromEUTRAPreparationRequest ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + handoverFromEUTRAPreparationRequest-r8 + HandoverFromEUTRAPreparationRequest-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverFromEUTRAPreparationRequest-r8-IEs ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + rand RAND-CDMA2000 OPTIONAL, -- Cond cdma2000-Type + mobilityParameters MobilityParametersCDMA2000 OPTIONAL, -- Cond cdma2000-Type + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v890-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v920-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v920-IEs ::= SEQUENCE { + concurrPrepCDMA2000-HRPD-r9 BOOLEAN OPTIONAL, -- Cond cdma2000-Type + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v1020-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v1020-IEs ::= SEQUENCE { + dualRxTxRedirectIndicator-r10 ENUMERATED {true} OPTIONAL, -- Cond cdma2000-1XRTT + redirectCarrierCDMA2000-1XRTT-r10 CarrierFreqCDMA2000 OPTIONAL, -- Cond dualRxTxRedirect + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +InDeviceCoexIndication-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + inDeviceCoexIndication-r11 InDeviceCoexIndication-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +InDeviceCoexIndication-r11-IEs ::= SEQUENCE { + affectedCarrierFreqList-r11 AffectedCarrierFreqList-r11 OPTIONAL, + tdm-AssistanceInfo-r11 TDM-AssistanceInfo-r11 OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension InDeviceCoexIndication-v11d0-IEs OPTIONAL +} + +InDeviceCoexIndication-v11d0-IEs ::= SEQUENCE { + ul-CA-AssistanceInfo-r11 SEQUENCE { + affectedCarrierFreqCombList-r11 AffectedCarrierFreqCombList-r11 OPTIONAL, + victimSystemType-r11 VictimSystemType-r11 + } OPTIONAL, + nonCriticalExtension InDeviceCoexIndication-v1310-IEs OPTIONAL +} + +InDeviceCoexIndication-v1310-IEs ::= SEQUENCE { + affectedCarrierFreqList-v1310 AffectedCarrierFreqList-v1310 OPTIONAL, + affectedCarrierFreqCombList-r13 AffectedCarrierFreqCombList-r13 OPTIONAL, + nonCriticalExtension InDeviceCoexIndication-v1360-IEs OPTIONAL +} + +InDeviceCoexIndication-v1360-IEs ::= SEQUENCE { + hardwareSharingProblem-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AffectedCarrierFreqList-r11 ::= SEQUENCE (SIZE (1..maxFreqIDC-r11)) OF AffectedCarrierFreq-r11 + +AffectedCarrierFreqList-v1310 ::= SEQUENCE (SIZE (1..maxFreqIDC-r11)) OF AffectedCarrierFreq-v1310 + +AffectedCarrierFreq-r11 ::= SEQUENCE { + carrierFreq-r11 MeasObjectId, + interferenceDirection-r11 ENUMERATED {eutra, other, both, spare} +} + +AffectedCarrierFreq-v1310 ::= SEQUENCE { + carrierFreq-v1310 MeasObjectId-v1310 OPTIONAL +} + +AffectedCarrierFreqCombList-r11 ::= SEQUENCE (SIZE (1..maxCombIDC-r11)) OF AffectedCarrierFreqComb-r11 + +AffectedCarrierFreqCombList-r13 ::= SEQUENCE (SIZE (1..maxCombIDC-r11)) OF AffectedCarrierFreqComb-r13 + +AffectedCarrierFreqComb-r11 ::= SEQUENCE (SIZE (2..maxServCell-r10)) OF MeasObjectId + +AffectedCarrierFreqComb-r13 ::= SEQUENCE (SIZE (2..maxServCell-r13)) OF MeasObjectId-r13 + +TDM-AssistanceInfo-r11 ::= CHOICE { + drx-AssistanceInfo-r11 SEQUENCE { + drx-CycleLength-r11 ENUMERATED {sf40, sf64, sf80, sf128, sf160, + sf256, spare2, spare1}, + drx-Offset-r11 INTEGER (0..255) OPTIONAL, + drx-ActiveTime-r11 ENUMERATED {sf20, sf30, sf40, sf60, sf80, + sf100, spare2, spare1} + }, + idc-SubframePatternList-r11 IDC-SubframePatternList-r11, + ... +} + +IDC-SubframePatternList-r11 ::= SEQUENCE (SIZE (1..maxSubframePatternIDC-r11)) OF IDC-SubframePattern-r11 + +IDC-SubframePattern-r11 ::= CHOICE { + subframePatternFDD-r11 BIT STRING (SIZE (4)), + subframePatternTDD-r11 CHOICE { + subframeConfig0-r11 BIT STRING (SIZE (70)), + subframeConfig1-5-r11 BIT STRING (SIZE (10)), + subframeConfig6-r11 BIT STRING (SIZE (60)) + }, + ... +} + +VictimSystemType-r11 ::= SEQUENCE { + gps-r11 ENUMERATED {true} OPTIONAL, + glonass-r11 ENUMERATED {true} OPTIONAL, + bds-r11 ENUMERATED {true} OPTIONAL, + galileo-r11 ENUMERATED {true} OPTIONAL, + wlan-r11 ENUMERATED {true} OPTIONAL, + bluetooth-r11 ENUMERATED {true} OPTIONAL +} + + +InterFreqRSTDMeasurementIndication-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + interFreqRSTDMeasurementIndication-r10 InterFreqRSTDMeasurementIndication-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +InterFreqRSTDMeasurementIndication-r10-IEs ::= SEQUENCE { + rstd-InterFreqIndication-r10 CHOICE { + start SEQUENCE { + rstd-InterFreqInfoList-r10 RSTD-InterFreqInfoList-r10 + }, + stop NULL + }, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RSTD-InterFreqInfoList-r10 ::= SEQUENCE (SIZE(1..maxRSTD-Freq-r10)) OF RSTD-InterFreqInfo-r10 + +RSTD-InterFreqInfo-r10 ::= SEQUENCE { + carrierFreq-r10 ARFCN-ValueEUTRA, + measPRS-Offset-r10 INTEGER (0..39), + ..., + [[ carrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL + ]] +} + + +LoggedMeasurementConfiguration-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + loggedMeasurementConfiguration-r10 LoggedMeasurementConfiguration-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + + +LoggedMeasurementConfiguration-r10-IEs ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, -- Need OR + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10, + nonCriticalExtension LoggedMeasurementConfiguration-v1080-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1080-IEs ::= SEQUENCE { + lateNonCriticalExtension-r10 OCTET STRING OPTIONAL, + nonCriticalExtension LoggedMeasurementConfiguration-v1130-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1130-IEs ::= SEQUENCE { + plmn-IdentityList-r11 PLMN-IdentityList3-r11 OPTIONAL, -- Need OR + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, -- Need OR + nonCriticalExtension LoggedMeasurementConfiguration-v1250-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1250-IEs ::= SEQUENCE { + targetMBSFN-AreaList-r12 TargetMBSFN-AreaList-r12 OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +TargetMBSFN-AreaList-r12 ::= SEQUENCE (SIZE (0..maxMBSFN-Area)) OF TargetMBSFN-Area-r12 + +TargetMBSFN-Area-r12 ::= SEQUENCE { + mbsfn-AreaId-r12 MBSFN-AreaId-r12 OPTIONAL, -- Need OR + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + ... +} + + +MasterInformationBlock ::= SEQUENCE { + dl-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100}, + phich-Config PHICH-Config, + systemFrameNumber BIT STRING (SIZE (8)), + schedulingInfoSIB1-BR-r13 INTEGER (0..31), + spare BIT STRING (SIZE (5)) +} + + + +MBMSCountingRequest-r10 ::= SEQUENCE { + countingRequestList-r10 CountingRequestList-r10, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CountingRequestList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingRequestInfo-r10 + +CountingRequestInfo-r10 ::= SEQUENCE { + tmgi-r10 TMGI-r9, + ... +} + + +MBMSCountingResponse-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + countingResponse-r10 MBMSCountingResponse-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MBMSCountingResponse-r10-IEs ::= SEQUENCE { + mbsfn-AreaIndex-r10 INTEGER (0..maxMBSFN-Area-1) OPTIONAL, + countingResponseList-r10 CountingResponseList-r10 OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CountingResponseList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingResponseInfo-r10 + +CountingResponseInfo-r10 ::= SEQUENCE { + countingResponseService-r10 INTEGER (0..maxServiceCount-1), + ... +} + + +MBMSInterestIndication-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + interestIndication-r11 MBMSInterestIndication-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MBMSInterestIndication-r11-IEs ::= SEQUENCE { + mbms-FreqList-r11 CarrierFreqListMBMS-r11 OPTIONAL, + mbms-Priority-r11 ENUMERATED {true} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MBMSInterestIndication-v1310-IEs OPTIONAL +} + +MBMSInterestIndication-v1310-IEs ::= SEQUENCE { + mbms-Services-r13 MBMS-ServiceList-r13 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MBSFNAreaConfiguration-r9 ::= SEQUENCE { + commonSF-Alloc-r9 CommonSF-AllocPatternList-r9, + commonSF-AllocPeriod-r9 ENUMERATED { + rf4, rf8, rf16, rf32, rf64, rf128, rf256}, + pmch-InfoList-r9 PMCH-InfoList-r9, + nonCriticalExtension MBSFNAreaConfiguration-v930-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MBSFNAreaConfiguration-v1250-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v1250-IEs ::= SEQUENCE { + pmch-InfoListExt-r12 PMCH-InfoListExt-r12 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CommonSF-AllocPatternList-r9 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig + + +MeasurementReport ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + measurementReport-r8 MeasurementReport-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MeasurementReport-r8-IEs ::= SEQUENCE { + measResults MeasResults, + nonCriticalExtension MeasurementReport-v8a0-IEs OPTIONAL +} + +MeasurementReport-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MobilityFromEUTRACommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + mobilityFromEUTRACommand-r8 MobilityFromEUTRACommand-r8-IEs, + mobilityFromEUTRACommand-r9 MobilityFromEUTRACommand-r9-IEs, + spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MobilityFromEUTRACommand-r8-IEs ::= SEQUENCE { + cs-FallbackIndicator BOOLEAN, + purpose CHOICE{ + handover Handover, + cellChangeOrder CellChangeOrder + }, + nonCriticalExtension MobilityFromEUTRACommand-v8a0-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MobilityFromEUTRACommand-v8d0-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v8d0-IEs ::= SEQUENCE { + bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +MobilityFromEUTRACommand-r9-IEs ::= SEQUENCE { + cs-FallbackIndicator BOOLEAN, + purpose CHOICE{ + handover Handover, + cellChangeOrder CellChangeOrder, + e-CSFB-r9 E-CSFB-r9, + ... + }, + nonCriticalExtension MobilityFromEUTRACommand-v930-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MobilityFromEUTRACommand-v960-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v960-IEs ::= SEQUENCE { + bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +Handover ::= SEQUENCE { + targetRAT-Type ENUMERATED { + utra, geran, cdma2000-1XRTT, cdma2000-HRPD, + spare4, spare3, spare2, spare1, ...}, + targetRAT-MessageContainer OCTET STRING, + nas-SecurityParamFromEUTRA OCTET STRING (SIZE (1)) OPTIONAL, -- Cond UTRAGERAN + systemInformation SI-OrPSI-GERAN OPTIONAL -- Cond PSHO +} + +CellChangeOrder ::= SEQUENCE { + t304 ENUMERATED { + ms100, ms200, ms500, ms1000, + ms2000, ms4000, ms8000, ms10000-v1310}, + targetRAT-Type CHOICE { + geran SEQUENCE { + physCellId PhysCellIdGERAN, + carrierFreq CarrierFreqGERAN, + networkControlOrder BIT STRING (SIZE (2)) OPTIONAL, -- Need OP + systemInformation SI-OrPSI-GERAN OPTIONAL -- Need OP + }, + ... + } +} + +SI-OrPSI-GERAN ::= CHOICE { + si SystemInfoListGERAN, + psi SystemInfoListGERAN +} + +E-CSFB-r9 ::= SEQUENCE { + messageContCDMA2000-1XRTT-r9 OCTET STRING OPTIONAL, -- Need ON + mobilityCDMA2000-HRPD-r9 ENUMERATED { + handover, redirection + } OPTIONAL, -- Need OP + messageContCDMA2000-HRPD-r9 OCTET STRING OPTIONAL, -- Cond concHO + redirectCarrierCDMA2000-HRPD-r9 CarrierFreqCDMA2000 OPTIONAL -- Cond concRedir +} + + +Paging ::= SEQUENCE { + pagingRecordList PagingRecordList OPTIONAL, -- Need ON + systemInfoModification ENUMERATED {true} OPTIONAL, -- Need ON + etws-Indication ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v890-IEs OPTIONAL +} + +Paging-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension Paging-v920-IEs OPTIONAL +} + +Paging-v920-IEs ::= SEQUENCE { + cmas-Indication-r9 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v1130-IEs OPTIONAL +} + +Paging-v1130-IEs ::= SEQUENCE { + eab-ParamModification-r11 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v1310-IEs OPTIONAL +} + +Paging-v1310-IEs ::= SEQUENCE { + redistributionIndication-r13 ENUMERATED {true} OPTIONAL, --Need ON + systemInfoModification-eDRX-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PagingRecordList ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord + +PagingRecord ::= SEQUENCE { + ue-Identity PagingUE-Identity, + cn-Domain ENUMERATED {ps, cs}, + ... +} + +PagingUE-Identity ::= CHOICE { + s-TMSI S-TMSI, + imsi IMSI, + ... +} + +IMSI ::= SEQUENCE (SIZE (6..21)) OF IMSI-Digit + +IMSI-Digit ::= INTEGER (0..9) + + +ProximityIndication-r9 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + proximityIndication-r9 ProximityIndication-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ProximityIndication-r9-IEs ::= SEQUENCE { + type-r9 ENUMERATED {entering, leaving}, + carrierFreq-r9 CHOICE { + eutra-r9 ARFCN-ValueEUTRA, + utra-r9 ARFCN-ValueUTRA, + ..., + eutra2-v9e0 ARFCN-ValueEUTRA-v9e0 + }, + nonCriticalExtension ProximityIndication-v930-IEs OPTIONAL +} + +ProximityIndication-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RNReconfiguration-r10 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rnReconfiguration-r10 RNReconfiguration-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RNReconfiguration-r10-IEs ::= SEQUENCE { + rn-SystemInfo-r10 RN-SystemInfo-r10 OPTIONAL, -- Need ON + rn-SubframeConfig-r10 RN-SubframeConfig-r10 OPTIONAL, -- Need ON + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RN-SystemInfo-r10 ::= SEQUENCE { + systemInformationBlockType1-r10 OCTET STRING (CONTAINING SystemInformationBlockType1) OPTIONAL, -- Need ON + systemInformationBlockType2-r10 SystemInformationBlockType2 OPTIONAL, -- Need ON + ... +} + + +RNReconfigurationComplete-r10 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rnReconfigurationComplete-r10 RNReconfigurationComplete-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RNReconfigurationComplete-r10-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReconfiguration ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReconfiguration-r8 RRCConnectionReconfiguration-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfiguration-r8-IEs ::= SEQUENCE { + measConfig MeasConfig OPTIONAL, -- Need ON + mobilityControlInfo MobilityControlInfo OPTIONAL, -- Cond HO + dedicatedInfoNASList SEQUENCE (SIZE(1..maxDRB)) OF + DedicatedInfoNAS OPTIONAL, -- Cond nonHO + radioResourceConfigDedicated RadioResourceConfigDedicated OPTIONAL, -- Cond HO-toEUTRA + securityConfigHO SecurityConfigHO OPTIONAL, -- Cond HO + nonCriticalExtension RRCConnectionReconfiguration-v890-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING RRCConnectionReconfiguration-v8m0-IEs) OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v920-IEs OPTIONAL +} + +-- Late non-critical extensions: +RRCConnectionReconfiguration-v8m0-IEs ::= SEQUENCE { + -- Following field is only for pre REL-10 late non-critical extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v10i0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v10i0-IEs ::= SEQUENCE { + antennaInfoDedicatedPCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v10l0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v10l0-IEs ::= SEQUENCE { + mobilityControlInfo-v10l0 MobilityControlInfo-v10l0 OPTIONAL, + sCellToAddModList-v10l0 SCellToAddModList-v10l0 OPTIONAL, -- Need ON + -- Following field is only for late non-critical extensions from REL-10 to REL-11 + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v12f0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v12f0-IEs ::= SEQUENCE { + scg-Configuration-v12f0 SCG-Configuration-v12f0 OPTIONAL, -- Cond nonFullConfig + -- Following field is only for late non-critical extensions from REL-12 + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v1370-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1370-IEs ::= SEQUENCE { + radioResourceConfigDedicated-v1370 RadioResourceConfigDedicated-v1370 OPTIONAL, -- Need ON + sCellToAddModListExt-v1370 SCellToAddModListExt-v1370 OPTIONAL, -- Need ON + -- Following field is only for late non-critical extensions from REL-13 onwards + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +RRCConnectionReconfiguration-v920-IEs ::= SEQUENCE { + otherConfig-r9 OtherConfig-r9 OPTIONAL, -- Need ON + fullConfig-r9 ENUMERATED {true} OPTIONAL, -- Cond HO-Reestab + nonCriticalExtension RRCConnectionReconfiguration-v1020-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1020-IEs ::= SEQUENCE { + sCellToReleaseList-r10 SCellToReleaseList-r10 OPTIONAL, -- Need ON + sCellToAddModList-r10 SCellToAddModList-r10 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1130-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1130-IEs ::= SEQUENCE { + systemInformationBlockType1Dedicated-r11 OCTET STRING (CONTAINING SystemInformationBlockType1) OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1250-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1250-IEs ::= SEQUENCE { + wlan-OffloadInfo-r12 CHOICE { + release NULL, + setup SEQUENCE { + wlan-OffloadConfigDedicated-r12 WLAN-OffloadConfig-r12, + t350-r12 ENUMERATED {min5, min10, min20, min30, min60, + min120, min180, spare1} OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + scg-Configuration-r12 SCG-Configuration-r12 OPTIONAL, -- Cond nonFullConfig + sl-SyncTxControl-r12 SL-SyncTxControl-r12 OPTIONAL, -- Need ON + sl-DiscConfig-r12 SL-DiscConfig-r12 OPTIONAL, -- Need ON + sl-CommConfig-r12 SL-CommConfig-r12 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1310-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1310-IEs ::= SEQUENCE { + sCellToReleaseListExt-r13 SCellToReleaseListExt-r13 OPTIONAL, -- Need ON + sCellToAddModListExt-r13 SCellToAddModListExt-r13 OPTIONAL, -- Need ON + lwa-Configuration-r13 LWA-Configuration-r13 OPTIONAL, -- Need ON + lwip-Configuration-r13 LWIP-Configuration-r13 OPTIONAL, -- Need ON + rclwi-Configuration-r13 RCLWI-Configuration-r13 OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SL-SyncTxControl-r12 ::= SEQUENCE { + networkControlledSyncTx-r12 ENUMERATED {on, off} OPTIONAL -- Need OP +} + +PSCellToAddMod-r12 ::= SEQUENCE { + sCellIndex-r12 SCellIndex-r10, + cellIdentification-r12 SEQUENCE { + physCellId-r12 PhysCellId, + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonPSCell-r12 RadioResourceConfigCommonPSCell-r12 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedPSCell-r12 RadioResourceConfigDedicatedPSCell-r12 OPTIONAL, -- Cond SCellAdd2 + ..., + [[ antennaInfoDedicatedPSCell-v1280 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON + ]], + [[ sCellIndex-r13 SCellIndex-r13 OPTIONAL -- Need ON + ]], + [[ radioResourceConfigDedicatedPSCell-v1370 RadioResourceConfigDedicatedPSCell-v1370 OPTIONAL -- Need ON + ]] +} + +PSCellToAddMod-v12f0 ::= SEQUENCE { + radioResourceConfigCommonPSCell-r12 RadioResourceConfigCommonPSCell-v12f0 OPTIONAL +} + +PowerCoordinationInfo-r12 ::= SEQUENCE { + p-MeNB-r12 INTEGER (1..16), + p-SeNB-r12 INTEGER (1..16), + powerControlMode-r12 INTEGER (1..2) +} + +SCellToAddModList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-r10 + +SCellToAddModList-v10l0 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-v10l0 + +SCellToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-r13 + +SCellToAddModListExt-v1370 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-v1370 + +SCellToAddMod-r10 ::= SEQUENCE { + sCellIndex-r10 SCellIndex-r10, + cellIdentification-r10 SEQUENCE { + physCellId-r10 PhysCellId, + dl-CarrierFreq-r10 ARFCN-ValueEUTRA + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonSCell-r10 RadioResourceConfigCommonSCell-r10 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedSCell-r10 RadioResourceConfigDedicatedSCell-r10 OPTIONAL, -- Cond SCellAdd2 + ..., + [[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max + ]], + [[ antennaInfoDedicatedSCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON + ]] +} + +SCellToAddMod-v10l0 ::= SEQUENCE { + radioResourceConfigCommonSCell-v10l0 RadioResourceConfigCommonSCell-v10l0 OPTIONAL +} + +SCellToAddModExt-r13 ::= SEQUENCE { + sCellIndex-r13 SCellIndex-r13, + cellIdentification-r13 SEQUENCE { + physCellId-r13 PhysCellId, + dl-CarrierFreq-r13 ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonSCell-r13 RadioResourceConfigCommonSCell-r10 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedSCell-r13 RadioResourceConfigDedicatedSCell-r10 OPTIONAL, -- Cond SCellAdd2 + antennaInfoDedicatedSCell-r13 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON +} + +SCellToAddModExt-v1370 ::= SEQUENCE { + radioResourceConfigCommonSCell-v1370 RadioResourceConfigCommonSCell-v10l0 OPTIONAL +} + +SCellToReleaseList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellIndex-r10 + +SCellToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellIndex-r13 + +SCG-Configuration-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + scg-ConfigPartMCG-r12 SEQUENCE { + scg-Counter-r12 INTEGER (0.. 65535) OPTIONAL, -- Need ON + powerCoordinationInfo-r12 PowerCoordinationInfo-r12 OPTIONAL, -- Need ON + ... + } OPTIONAL, -- Need ON + scg-ConfigPartSCG-r12 SCG-ConfigPartSCG-r12 OPTIONAL -- Need ON + } +} + +SCG-Configuration-v12f0 ::= CHOICE { + release NULL, + setup SEQUENCE { + scg-ConfigPartSCG-v12f0 SCG-ConfigPartSCG-v12f0 OPTIONAL -- Need ON + } +} + +SCG-ConfigPartSCG-r12 ::= SEQUENCE { + radioResourceConfigDedicatedSCG-r12 RadioResourceConfigDedicatedSCG-r12 OPTIONAL, -- Need ON + sCellToReleaseListSCG-r12 SCellToReleaseList-r10 OPTIONAL, -- Need ON + pSCellToAddMod-r12 PSCellToAddMod-r12 OPTIONAL, -- Need ON + sCellToAddModListSCG-r12 SCellToAddModList-r10 OPTIONAL, -- Need ON + mobilityControlInfoSCG-r12 MobilityControlInfoSCG-r12 OPTIONAL, -- Need ON + ..., + [[ + sCellToReleaseListSCG-Ext-r13 SCellToReleaseListExt-r13 OPTIONAL, -- Need ON + sCellToAddModListSCG-Ext-r13 SCellToAddModListExt-r13 OPTIONAL -- Need ON + ]], + [[ + sCellToAddModListSCG-Ext-v1370 SCellToAddModListExt-v1370 OPTIONAL -- Need ON + ]] +} + +SCG-ConfigPartSCG-v12f0 ::= SEQUENCE { + pSCellToAddMod-v12f0 PSCellToAddMod-v12f0 OPTIONAL, -- Need ON + sCellToAddModListSCG-v12f0 SCellToAddModList-v10l0 OPTIONAL -- Need ON +} + +SecurityConfigHO ::= SEQUENCE { + handoverType CHOICE { + intraLTE SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig OPTIONAL, -- Cond fullConfig + keyChangeIndicator BOOLEAN, + nextHopChainingCount NextHopChainingCount + }, + interRAT SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig, + nas-SecurityParamToEUTRA OCTET STRING (SIZE(6)) + } + }, + ... +} + + + +RRCConnectionReconfigurationComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReconfigurationComplete-r8 + RRCConnectionReconfigurationComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfigurationComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReconfigurationComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1020-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1020-IEs ::= SEQUENCE { + rlf-InfoAvailable-r10 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1130-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1250-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1250-IEs ::= SEQUENCE { + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishment ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReestablishment-r8 RRCConnectionReestablishment-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishment-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated RadioResourceConfigDedicated, + nextHopChainingCount NextHopChainingCount, + nonCriticalExtension RRCConnectionReestablishment-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishment-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReestablishmentComplete-r8 + RRCConnectionReestablishmentComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReestablishmentComplete-v920-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v920-IEs ::= SEQUENCE { + rlf-InfoAvailable-r9 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1020-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1020-IEs ::= SEQUENCE { + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1130-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1250-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1250-IEs ::= SEQUENCE { + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentReject ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentReject-r8 + RRCConnectionReestablishmentReject-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentReject-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReestablishmentReject-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishmentReject-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentRequest ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentRequest-r8 + RRCConnectionReestablishmentRequest-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentRequest-r8-IEs ::= SEQUENCE { + ue-Identity ReestabUE-Identity, + reestablishmentCause ReestablishmentCause, + spare BIT STRING (SIZE (2)) +} + +ReestabUE-Identity ::= SEQUENCE { + c-RNTI C-RNTI, + physCellId PhysCellId, + shortMAC-I ShortMAC-I +} + +ReestablishmentCause ::= ENUMERATED { + reconfigurationFailure, handoverFailure, + otherFailure, spare1} + + +RRCConnectionReject ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionReject-r8 RRCConnectionReject-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReject-r8-IEs ::= SEQUENCE { + waitTime INTEGER (1..16), + nonCriticalExtension RRCConnectionReject-v8a0-IEs OPTIONAL +} + +RRCConnectionReject-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReject-v1020-IEs OPTIONAL +} + +RRCConnectionReject-v1020-IEs ::= SEQUENCE { + extendedWaitTime-r10 INTEGER (1..1800) OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReject-v1130-IEs OPTIONAL +} + +RRCConnectionReject-v1130-IEs ::= SEQUENCE { + deprioritisationReq-r11 SEQUENCE { + deprioritisationType-r11 ENUMERATED {frequency, e-utra}, + deprioritisationTimer-r11 ENUMERATED {min5, min10, min15, min30} + } OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReject-v1320-IEs OPTIONAL +} + +RRCConnectionReject-v1320-IEs ::= SEQUENCE { + rrc-SuspendIndication-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionRelease ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionRelease-r8 RRCConnectionRelease-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRelease-r8-IEs ::= SEQUENCE { + releaseCause ReleaseCause, + redirectedCarrierInfo RedirectedCarrierInfo OPTIONAL, -- Need ON + idleModeMobilityControlInfo IdleModeMobilityControlInfo OPTIONAL, -- Need OP + nonCriticalExtension RRCConnectionRelease-v890-IEs OPTIONAL +} + +RRCConnectionRelease-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING RRCConnectionRelease-v9e0-IEs) OPTIONAL, + nonCriticalExtension RRCConnectionRelease-v920-IEs OPTIONAL +} + +-- Late non critical extensions +RRCConnectionRelease-v9e0-IEs ::= SEQUENCE { + redirectedCarrierInfo-v9e0 RedirectedCarrierInfo-v9e0 OPTIONAL, -- Cond NoRedirect-r8 + idleModeMobilityControlInfo-v9e0 IdleModeMobilityControlInfo-v9e0 OPTIONAL, -- Cond IdleInfoEUTRA + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +RRCConnectionRelease-v920-IEs ::= SEQUENCE { + cellInfoList-r9 CHOICE { + geran-r9 CellInfoListGERAN-r9, + utra-FDD-r9 CellInfoListUTRA-FDD-r9, + utra-TDD-r9 CellInfoListUTRA-TDD-r9, + ..., + utra-TDD-r10 CellInfoListUTRA-TDD-r10 + } OPTIONAL, -- Cond Redirection + nonCriticalExtension RRCConnectionRelease-v1020-IEs OPTIONAL +} + +RRCConnectionRelease-v1020-IEs ::= SEQUENCE { + extendedWaitTime-r10 INTEGER (1..1800) OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionRelease-v1320-IEs OPTIONAL +} + +RRCConnectionRelease-v1320-IEs::= SEQUENCE { + resumeIdentity-r13 ResumeIdentity-r13 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +ReleaseCause ::= ENUMERATED {loadBalancingTAUrequired, + other, cs-FallbackHighPriority-v1020, rrc-Suspend-v1320} + +RedirectedCarrierInfo ::= CHOICE { + eutra ARFCN-ValueEUTRA, + geran CarrierFreqsGERAN, + utra-FDD ARFCN-ValueUTRA, + utra-TDD ARFCN-ValueUTRA, + cdma2000-HRPD CarrierFreqCDMA2000, + cdma2000-1xRTT CarrierFreqCDMA2000, + ..., + utra-TDD-r10 CarrierFreqListUTRA-TDD-r10 +} + +RedirectedCarrierInfo-v9e0 ::= SEQUENCE { + eutra-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +CarrierFreqListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxFreqUTRA-TDD-r10)) OF ARFCN-ValueUTRA + +IdleModeMobilityControlInfo ::= SEQUENCE { + freqPriorityListEUTRA FreqPriorityListEUTRA OPTIONAL, -- Need ON + freqPriorityListGERAN FreqsPriorityListGERAN OPTIONAL, -- Need ON + freqPriorityListUTRA-FDD FreqPriorityListUTRA-FDD OPTIONAL, -- Need ON + freqPriorityListUTRA-TDD FreqPriorityListUTRA-TDD OPTIONAL, -- Need ON + bandClassPriorityListHRPD BandClassPriorityListHRPD OPTIONAL, -- Need ON + bandClassPriorityList1XRTT BandClassPriorityList1XRTT OPTIONAL, -- Need ON + t320 ENUMERATED { + min5, min10, min20, min30, min60, min120, min180, + spare1} OPTIONAL, -- Need OR + ..., + [[ freqPriorityListExtEUTRA-r12 FreqPriorityListExtEUTRA-r12 OPTIONAL -- Need ON + ]], + [[ freqPriorityListEUTRA-v1310 FreqPriorityListEUTRA-v1310 OPTIONAL, -- Need ON + freqPriorityListExtEUTRA-v1310 FreqPriorityListExtEUTRA-v1310 OPTIONAL -- Need ON + ]] +} + +IdleModeMobilityControlInfo-v9e0 ::= SEQUENCE { + freqPriorityListEUTRA-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v9e0 +} + +FreqPriorityListEUTRA ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA + +FreqPriorityListExtEUTRA-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-r12 + +FreqPriorityListEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v1310 + +FreqPriorityListExtEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v1310 + +FreqPriorityEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityEUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max +} + +FreqPriorityEUTRA-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + cellReselectionPriority-r12 CellReselectionPriority +} + +FreqPriorityEUTRA-v1310 ::= SEQUENCE { + cellReselectionSubPriority-r13 CellReselectionSubPriority-r13 OPTIONAL -- Need ON +} + +FreqsPriorityListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF FreqsPriorityGERAN + +FreqsPriorityGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF FreqPriorityUTRA-FDD + +FreqPriorityUTRA-FDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF FreqPriorityUTRA-TDD + +FreqPriorityUTRA-TDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority +} + +BandClassPriorityListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriorityHRPD + +BandClassPriorityHRPD ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority +} + +BandClassPriorityList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriority1XRTT + +BandClassPriority1XRTT ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority +} + +CellInfoListGERAN-r9 ::= SEQUENCE (SIZE (1..maxCellInfoGERAN-r9)) OF CellInfoGERAN-r9 + +CellInfoGERAN-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdGERAN, + carrierFreq-r9 CarrierFreqGERAN, + systemInformation-r9 SystemInfoListGERAN +} + +CellInfoListUTRA-FDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-FDD-r9 + +CellInfoUTRA-FDD-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdUTRA-FDD, + utra-BCCH-Container-r9 OCTET STRING +} + +CellInfoListUTRA-TDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r9 + +CellInfoUTRA-TDD-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdUTRA-TDD, + utra-BCCH-Container-r9 OCTET STRING +} + +CellInfoListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r10 + +CellInfoUTRA-TDD-r10 ::= SEQUENCE { + physCellId-r10 PhysCellIdUTRA-TDD, + carrierFreq-r10 ARFCN-ValueUTRA, + utra-BCCH-Container-r10 OCTET STRING +} + + +RRCConnectionRequest ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionRequest-r8 RRCConnectionRequest-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRequest-r8-IEs ::= SEQUENCE { + ue-Identity InitialUE-Identity, + establishmentCause EstablishmentCause, + spare BIT STRING (SIZE (1)) +} + +InitialUE-Identity ::= CHOICE { + s-TMSI S-TMSI, + randomValue BIT STRING (SIZE (40)) +} + +EstablishmentCause ::= ENUMERATED { + emergency, highPriorityAccess, mt-Access, mo-Signalling, + mo-Data, delayTolerantAccess-v1020, mo-VoiceCall-v1280, spare1} + + +RRCConnectionResume-r13 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionResume-r13 RRCConnectionResume-r13-IEs, + spare3 NULL, + spare2 NULL, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResume-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated OPTIONAL, -- Need ON + nextHopChainingCount-r13 NextHopChainingCount, + measConfig-r13 MeasConfig OPTIONAL, -- Need ON + antennaInfoDedicatedPCell-r13 AntennaInfoDedicated-v10i0 OPTIONAL, -- Need ON + drb-ContinueROHC-r13 ENUMERATED {true} OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeComplete-r13 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeComplete-r13-IEs ::= SEQUENCE { + selectedPLMN-Identity-r13 INTEGER (1..maxPLMN-r11) OPTIONAL, + dedicatedInfoNAS-r13 DedicatedInfoNAS OPTIONAL, + rlf-InfoAvailable-r13 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r13 ENUMERATED {true} OPTIONAL, + connEstFailInfoAvailable-r13 ENUMERATED {true} OPTIONAL, + mobilityState-r13 ENUMERATED {normal, medium, high, spare} OPTIONAL, + mobilityHistoryAvail-r13 ENUMERATED {true} OPTIONAL, + logMeasAvailableMBSFN-r13 ENUMERATED {true} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeRequest-r13 ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeRequest-r13-IEs ::= SEQUENCE { + resumeIdentity-r13 CHOICE { + resumeID-r13 ResumeIdentity-r13, + truncatedResumeID-r13 BIT STRING (SIZE (24)) + }, + shortResumeMAC-I-r13 BIT STRING (SIZE (16)), + resumeCause-r13 ResumeCause, + spare BIT STRING (SIZE (1)) +} + +ResumeCause ::= ENUMERATED { + emergency, highPriorityAccess, mt-Access, mo-Signalling, + mo-Data, delayTolerantAccess-v1020, mo-VoiceCall-v1280, spare1} + + + +RRCConnectionSetup ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionSetup-r8 RRCConnectionSetup-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetup-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated RadioResourceConfigDedicated, + nonCriticalExtension RRCConnectionSetup-v8a0-IEs OPTIONAL +} + +RRCConnectionSetup-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionSetupComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionSetupComplete-r8 RRCConnectionSetupComplete-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetupComplete-r8-IEs ::= SEQUENCE { + selectedPLMN-Identity INTEGER (1..maxPLMN-r11), + registeredMME RegisteredMME OPTIONAL, + dedicatedInfoNAS DedicatedInfoNAS, + nonCriticalExtension RRCConnectionSetupComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1020-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1020-IEs ::= SEQUENCE { + gummei-Type-r10 ENUMERATED {native, mapped} OPTIONAL, + rlf-InfoAvailable-r10 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + rn-SubframeConfigReq-r10 ENUMERATED {required, notRequired} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1130-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1250-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1250-IEs ::= SEQUENCE { + mobilityState-r12 ENUMERATED {normal, medium, high, spare} OPTIONAL, + mobilityHistoryAvail-r12 ENUMERATED {true} OPTIONAL, + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1320-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1320-IEs ::= SEQUENCE { + ce-ModeB-r13 ENUMERATED {supported} OPTIONAL, + s-TMSI-r13 S-TMSI OPTIONAL, + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL, + up-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, + cp-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1330-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1330-IEs ::= SEQUENCE { + ue-CE-NeedULGaps-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RegisteredMME ::= SEQUENCE { + plmn-Identity PLMN-Identity OPTIONAL, + mmegi BIT STRING (SIZE (16)), + mmec MMEC +} + + +SCGFailureInformation-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + scgFailureInformation-r12 SCGFailureInformation-r12-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCGFailureInformation-r12-IEs ::= SEQUENCE { + failureReportSCG-r12 FailureReportSCG-r12 OPTIONAL, + nonCriticalExtension SCGFailureInformation-v1310-IEs OPTIONAL +} + +SCGFailureInformation-v1310-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING SCGFailureInformation-v12d0-IEs) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Late non-critical extensions: +SCGFailureInformation-v12d0-IEs ::= SEQUENCE { + failureReportSCG-v12d0 FailureReportSCG-v12d0 OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +FailureReportSCG-r12 ::= SEQUENCE { + failureType-r12 ENUMERATED {t313-Expiry, randomAccessProblem, + rlc-MaxNumRetx, scg-ChangeFailure }, + measResultServFreqList-r12 MeasResultServFreqList-r10 OPTIONAL, + measResultNeighCells-r12 MeasResultList2EUTRA-r9 OPTIONAL, + ..., + [[ failureType-v1290 ENUMERATED {maxUL-TimingDiff-v1290} OPTIONAL + ]], + [[ measResultServFreqListExt-r13 MeasResultServFreqListExt-r13 OPTIONAL + ]] +} + +FailureReportSCG-v12d0 ::= SEQUENCE { + measResultNeighCells-v12d0 MeasResultList2EUTRA-v9e0 OPTIONAL +} + + +SCPTMConfiguration-r13 ::= SEQUENCE { + sc-mtch-InfoList-r13 SC-MTCH-InfoList-r13, + scptm-NeighbourCellList-r13 SCPTM-NeighbourCellList-r13 OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SCPTMConfiguration-v1340 OPTIONAL +} + +SCPTMConfiguration-v1340 ::= SEQUENCE { + p-b-r13 INTEGER (0..3) OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SecurityModeCommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + securityModeCommand-r8 SecurityModeCommand-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeCommand-r8-IEs ::= SEQUENCE { + securityConfigSMC SecurityConfigSMC, + nonCriticalExtension SecurityModeCommand-v8a0-IEs OPTIONAL +} + +SecurityModeCommand-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SecurityConfigSMC ::= SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig, + ... +} + + +SecurityModeComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeComplete-r8 SecurityModeComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension SecurityModeComplete-v8a0-IEs OPTIONAL +} + +SecurityModeComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SecurityModeFailure ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeFailure-r8 SecurityModeFailure-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeFailure-r8-IEs ::= SEQUENCE { + nonCriticalExtension SecurityModeFailure-v8a0-IEs OPTIONAL +} + +SecurityModeFailure-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SidelinkUEInformation-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + sidelinkUEInformation-r12 SidelinkUEInformation-r12-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SidelinkUEInformation-r12-IEs ::= SEQUENCE { + commRxInterestedFreq-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, + commTxResourceReq-r12 SL-CommTxResourceReq-r12 OPTIONAL, + discRxInterest-r12 ENUMERATED {true} OPTIONAL, + discTxResourceReq-r12 INTEGER (1..63) OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SidelinkUEInformation-v1310-IEs OPTIONAL +} + +SidelinkUEInformation-v1310-IEs ::= SEQUENCE { + commTxResourceReqUC-r13 SL-CommTxResourceReq-r12 OPTIONAL, + commTxResourceInfoReqRelay-r13 SEQUENCE { + commTxResourceReqRelay-r13 SL-CommTxResourceReq-r12 OPTIONAL, + commTxResourceReqRelayUC-r13 SL-CommTxResourceReq-r12 OPTIONAL, + ue-Type-r13 ENUMERATED {relayUE, remoteUE} + } OPTIONAL, + discTxResourceReq-v1310 SEQUENCE { + carrierFreqDiscTx-r13 INTEGER (1..maxFreq) OPTIONAL, + discTxResourceReqAddFreq-r13 SL-DiscTxResourceReqPerFreqList-r13 OPTIONAL + } OPTIONAL, + discTxResourceReqPS-r13 SL-DiscTxResourceReq-r13 OPTIONAL, + discRxGapReq-r13 SL-GapRequest-r13 OPTIONAL, + discTxGapReq-r13 SL-GapRequest-r13 OPTIONAL, + discSysInfoReportFreqList-r13 SL-DiscSysInfoReportFreqList-r13 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SL-CommTxResourceReq-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, + destinationInfoList-r12 SL-DestinationInfoList-r12 +} + +SL-DiscTxResourceReqPerFreqList-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-DiscTxResourceReq-r13 + +SL-DiscTxResourceReq-r13 ::= SEQUENCE { + carrierFreqDiscTx-r13 INTEGER (1..maxFreq) OPTIONAL, + discTxResourceReq-r13 INTEGER (1..63) +} + +SL-DestinationInfoList-r12 ::= SEQUENCE (SIZE (1..maxSL-Dest-r12)) OF SL-DestinationIdentity-r12 + +SL-DestinationIdentity-r12 ::= BIT STRING (SIZE (24)) + +SL-DiscSysInfoReportFreqList-r13 ::= SEQUENCE (SIZE (1.. maxSL-DiscSysInfoReportFreq-r13)) OF SL-DiscSysInfoReport-r13 + + +SystemInformation-BR-r13 ::= SystemInformation + +SystemInformation ::= SEQUENCE { + criticalExtensions CHOICE { + systemInformation-r8 SystemInformation-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} +SystemInformation-r8-IEs ::= SEQUENCE { + sib-TypeAndInfo SEQUENCE (SIZE (1..maxSIB)) OF CHOICE { + sib2 SystemInformationBlockType2, + sib3 SystemInformationBlockType3, + sib4 SystemInformationBlockType4, + sib5 SystemInformationBlockType5, + sib6 SystemInformationBlockType6, + sib7 SystemInformationBlockType7, + sib8 SystemInformationBlockType8, + sib9 SystemInformationBlockType9, + sib10 SystemInformationBlockType10, + sib11 SystemInformationBlockType11, + ..., + sib12-v920 SystemInformationBlockType12-r9, + sib13-v920 SystemInformationBlockType13-r9, + sib14-v1130 SystemInformationBlockType14-r11, + sib15-v1130 SystemInformationBlockType15-r11, + sib16-v1130 SystemInformationBlockType16-r11, + sib17-v1250 SystemInformationBlockType17-r12, + sib18-v1250 SystemInformationBlockType18-r12, + sib19-v1250 SystemInformationBlockType19-r12, + sib20-v1310 SystemInformationBlockType20-r13 + }, + nonCriticalExtension SystemInformation-v8a0-IEs OPTIONAL +} + +SystemInformation-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType1-BR-r13 ::= SystemInformationBlockType1 + +SystemInformationBlockType1 ::= SEQUENCE { + cellAccessRelatedInfo SEQUENCE { + plmn-IdentityList PLMN-IdentityList, + trackingAreaCode TrackingAreaCode, + cellIdentity CellIdentity, + cellBarred ENUMERATED {barred, notBarred}, + intraFreqReselection ENUMERATED {allowed, notAllowed}, + csg-Indication BOOLEAN, + csg-Identity CSG-Identity OPTIONAL -- Need OR + }, + cellSelectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + q-RxLevMinOffset INTEGER (1..8) OPTIONAL -- Need OP + }, + p-Max P-Max OPTIONAL, -- Need OP + freqBandIndicator FreqBandIndicator, + schedulingInfoList SchedulingInfoList, + tdd-Config TDD-Config OPTIONAL, -- Cond TDD + si-WindowLength ENUMERATED { + ms1, ms2, ms5, ms10, ms15, ms20, + ms40}, + systemInfoValueTag INTEGER (0..31), + nonCriticalExtension SystemInformationBlockType1-v890-IEs OPTIONAL +} + +SystemInformationBlockType1-v890-IEs::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType1-v8h0-IEs) OPTIONAL, + nonCriticalExtension SystemInformationBlockType1-v920-IEs OPTIONAL +} + +-- Late non critical extensions +SystemInformationBlockType1-v8h0-IEs ::= SEQUENCE { + multiBandInfoList MultiBandInfoList OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType1-v9e0-IEs ::= SEQUENCE { + freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL, -- Cond FBI-max + multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL, -- Cond mFBI-max + nonCriticalExtension SystemInformationBlockType1-v10j0-IEs OPTIONAL +} + +SystemInformationBlockType1-v10j0-IEs ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType1-v10l0-IEs ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +SystemInformationBlockType1-v920-IEs ::= SEQUENCE { + ims-EmergencySupport-r9 ENUMERATED {true} OPTIONAL, -- Need OR + cellSelectionInfo-v920 CellSelectionInfo-v920 OPTIONAL, -- Cond RSRQ + nonCriticalExtension SystemInformationBlockType1-v1130-IEs OPTIONAL +} + +SystemInformationBlockType1-v1130-IEs ::= SEQUENCE { + tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD-OR + cellSelectionInfo-v1130 CellSelectionInfo-v1130 OPTIONAL, -- Cond WB-RSRQ + nonCriticalExtension SystemInformationBlockType1-v1250-IEs OPTIONAL +} + +SystemInformationBlockType1-v1250-IEs ::= SEQUENCE { + cellAccessRelatedInfo-v1250 SEQUENCE { + category0Allowed-r12 ENUMERATED {true} OPTIONAL -- Need OP + }, + cellSelectionInfo-v1250 CellSelectionInfo-v1250 OPTIONAL, -- Cond RSRQ2 + freqBandIndicatorPriority-r12 ENUMERATED {true} OPTIONAL, -- Cond mFBI + nonCriticalExtension SystemInformationBlockType1-v1310-IEs OPTIONAL +} + +SystemInformationBlockType1-v1310-IEs ::= SEQUENCE { + hyperSFN-r13 BIT STRING (SIZE (10)) OPTIONAL, -- Need OR + eDRX-Allowed-r13 ENUMERATED {true} OPTIONAL, -- Need OR + cellSelectionInfoCE-r13 CellSelectionInfoCE-r13 OPTIONAL, -- Need OP + bandwidthReducedAccessRelatedInfo-r13 SEQUENCE { + si-WindowLength-BR-r13 ENUMERATED { + ms20, ms40, ms60, ms80, ms120, + ms160, ms200, spare}, + si-RepetitionPattern-r13 ENUMERATED {everyRF, every2ndRF, every4thRF, + every8thRF}, + schedulingInfoList-BR-r13 SchedulingInfoList-BR-r13 OPTIONAL, -- Cond SI-BR + fdd-DownlinkOrTddSubframeBitmapBR-r13 CHOICE { + subframePattern10-r13 BIT STRING (SIZE (10)), + subframePattern40-r13 BIT STRING (SIZE (40)) + } OPTIONAL, -- Need OP + fdd-UplinkSubframeBitmapBR-r13 BIT STRING (SIZE (10)) OPTIONAL, -- Need OP + startSymbolBR-r13 INTEGER (1..4), + si-HoppingConfigCommon-r13 ENUMERATED {on,off}, + si-ValidityTime-r13 ENUMERATED {true} OPTIONAL, -- Need OP + systemInfoValueTagList-r13 SystemInfoValueTagList-r13 OPTIONAL -- Need OR + } OPTIONAL, -- Cond BW-reduced + nonCriticalExtension SystemInformationBlockType1-v1320-IEs OPTIONAL +} + +SystemInformationBlockType1-v1320-IEs ::= SEQUENCE { + freqHoppingParametersDL-r13 SEQUENCE { + mpdcch-pdsch-HoppingNB-r13 ENUMERATED {nb2, nb4} OPTIONAL, -- Need OR + interval-DLHoppingConfigCommonModeA-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-r13 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL, -- Need OR + interval-DLHoppingConfigCommonModeB-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int2, int4, int8, int16}, + interval-TDD-r13 ENUMERATED { int5, int10, int20, int40} + } OPTIONAL, -- Need OR + mpdcch-pdsch-HoppingOffset-r13 INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL -- Need OR + } OPTIONAL, -- Cond Hopping + nonCriticalExtension SystemInformationBlockType1-v1350-IEs OPTIONAL +} + +SystemInformationBlockType1-v1350-IEs ::= SEQUENCE { + cellSelectionInfoCE1-r13 CellSelectionInfoCE1-r13 OPTIONAL, -- Need OP + nonCriticalExtension SystemInformationBlockType1-v1360-IEs OPTIONAL +} + +SystemInformationBlockType1-v1360-IEs ::= SEQUENCE { + cellSelectionInfoCE1-v1360 CellSelectionInfoCE1-v1360 OPTIONAL, -- Cond QrxlevminCE1 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PLMN-IdentityList ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo + +PLMN-IdentityInfo ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellReservedForOperatorUse ENUMERATED {reserved, notReserved} +} + +SchedulingInfoList ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo + +SchedulingInfo ::= SEQUENCE { + si-Periodicity ENUMERATED { + rf8, rf16, rf32, rf64, rf128, rf256, rf512}, + sib-MappingInfo SIB-MappingInfo +} + +SchedulingInfoList-BR-r13 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo-BR-r13 + +SchedulingInfo-BR-r13 ::= SEQUENCE { + si-Narrowband-r13 INTEGER (1..maxAvailNarrowBands-r13), + si-TBS-r13 ENUMERATED {b152, b208, b256, b328, b408, b504, b600, b712, + b808, b936} +} + +SIB-MappingInfo ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type + +SIB-Type ::= ENUMERATED { + sibType3, sibType4, sibType5, sibType6, + sibType7, sibType8, sibType9, sibType10, + sibType11, sibType12-v920, sibType13-v920, + sibType14-v1130, sibType15-v1130, + sibType16-v1130, sibType17-v1250, sibType18-v1250, + ..., sibType19-v1250, sibType20-v1310} + +SystemInfoValueTagList-r13 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SystemInfoValueTagSI-r13 + +SystemInfoValueTagSI-r13 ::= INTEGER (0..3) + +CellSelectionInfo-v920 ::= SEQUENCE { + q-QualMin-r9 Q-QualMin-r9, + q-QualMinOffset-r9 INTEGER (1..8) OPTIONAL -- Need OP +} + +CellSelectionInfo-v1130 ::= SEQUENCE { + q-QualMinWB-r11 Q-QualMin-r9 +} + +CellSelectionInfo-v1250 ::= SEQUENCE { + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 +} + + +UEAssistanceInformation-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ueAssistanceInformation-r11 UEAssistanceInformation-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEAssistanceInformation-r11-IEs ::= SEQUENCE { + powerPrefIndication-r11 ENUMERATED {normal, lowPowerConsumption} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UECapabilityEnquiry ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueCapabilityEnquiry-r8 UECapabilityEnquiry-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityEnquiry-r8-IEs ::= SEQUENCE { + ue-CapabilityRequest UE-CapabilityRequest, + nonCriticalExtension UECapabilityEnquiry-v8a0-IEs OPTIONAL +} + +UECapabilityEnquiry-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UECapabilityEnquiry-v1180-IEs OPTIONAL +} + +UECapabilityEnquiry-v1180-IEs ::= SEQUENCE { + requestedFrequencyBands-r11 SEQUENCE (SIZE (1..16)) OF FreqBandIndicator-r11 OPTIONAL, + nonCriticalExtension UECapabilityEnquiry-v1310-IEs OPTIONAL +} + +UECapabilityEnquiry-v1310-IEs ::= SEQUENCE { + requestReducedFormat-r13 ENUMERATED {true} OPTIONAL, -- Need ON + requestSkipFallbackComb-r13 ENUMERATED {true} OPTIONAL, -- Need ON + requestedMaxCCsDL-r13 INTEGER (2..32) OPTIONAL, -- Need ON + requestedMaxCCsUL-r13 INTEGER (2..32) OPTIONAL, -- Need ON + requestReducedIntNonContComb-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-CapabilityRequest ::= SEQUENCE (SIZE (1..maxRAT-Capabilities)) OF RAT-Type + + +UECapabilityInformation ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + ueCapabilityInformation-r8 UECapabilityInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityInformation-r8-IEs ::= SEQUENCE { + ue-CapabilityRAT-ContainerList UE-CapabilityRAT-ContainerList, + nonCriticalExtension UECapabilityInformation-v8a0-IEs OPTIONAL +} + +UECapabilityInformation-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UECapabilityInformation-v1250-IEs OPTIONAL +} + +UECapabilityInformation-v1250-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r12 UE-RadioPagingInfo-r12 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEInformationRequest-r9 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueInformationRequest-r9 UEInformationRequest-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEInformationRequest-r9-IEs ::= SEQUENCE { + rach-ReportReq-r9 BOOLEAN, + rlf-ReportReq-r9 BOOLEAN, + nonCriticalExtension UEInformationRequest-v930-IEs OPTIONAL +} + +UEInformationRequest-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UEInformationRequest-v1020-IEs OPTIONAL +} + +UEInformationRequest-v1020-IEs ::= SEQUENCE { + logMeasReportReq-r10 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension UEInformationRequest-v1130-IEs OPTIONAL +} + +UEInformationRequest-v1130-IEs ::= SEQUENCE { + connEstFailReportReq-r11 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension UEInformationRequest-v1250-IEs OPTIONAL +} + +UEInformationRequest-v1250-IEs ::= SEQUENCE { + mobilityHistoryReportReq-r12 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEInformationResponse-r9 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueInformationResponse-r9 UEInformationResponse-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEInformationResponse-r9-IEs ::= SEQUENCE { + rach-Report-r9 SEQUENCE { + numberOfPreamblesSent-r9 NumberOfPreamblesSent-r11, + contentionDetected-r9 BOOLEAN + } OPTIONAL, + rlf-Report-r9 RLF-Report-r9 OPTIONAL, + nonCriticalExtension UEInformationResponse-v930-IEs OPTIONAL +} + +-- Late non critical extensions +UEInformationResponse-v9e0-IEs ::= SEQUENCE { + rlf-Report-v9e0 RLF-Report-v9e0 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +UEInformationResponse-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING UEInformationResponse-v9e0-IEs) OPTIONAL, + nonCriticalExtension UEInformationResponse-v1020-IEs OPTIONAL +} + +UEInformationResponse-v1020-IEs ::= SEQUENCE { + logMeasReport-r10 LogMeasReport-r10 OPTIONAL, + nonCriticalExtension UEInformationResponse-v1130-IEs OPTIONAL +} + +UEInformationResponse-v1130-IEs ::= SEQUENCE { + connEstFailReport-r11 ConnEstFailReport-r11 OPTIONAL, + nonCriticalExtension UEInformationResponse-v1250-IEs OPTIONAL +} + +UEInformationResponse-v1250-IEs ::= SEQUENCE { + mobilityHistoryReport-r12 MobilityHistoryReport-r12 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RLF-Report-r9 ::= SEQUENCE { + measResultLastServCell-r9 SEQUENCE { + rsrpResult-r9 RSRP-Range, + rsrqResult-r9 RSRQ-Range OPTIONAL + }, + measResultNeighCells-r9 SEQUENCE { + measResultListEUTRA-r9 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r9 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r9 MeasResultListGERAN OPTIONAL, + measResultsCDMA2000-r9 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + ..., + [[ locationInfo-r10 LocationInfo-r10 OPTIONAL, + failedPCellId-r10 CHOICE { + cellGlobalId-r10 CellGlobalIdEUTRA, + pci-arfcn-r10 SEQUENCE { + physCellId-r10 PhysCellId, + carrierFreq-r10 ARFCN-ValueEUTRA + } + } OPTIONAL, + reestablishmentCellId-r10 CellGlobalIdEUTRA OPTIONAL, + timeConnFailure-r10 INTEGER (0..1023) OPTIONAL, + connectionFailureType-r10 ENUMERATED {rlf, hof} OPTIONAL, + previousPCellId-r10 CellGlobalIdEUTRA OPTIONAL + ]], + [[ failedPCellId-v1090 SEQUENCE { + carrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 + } OPTIONAL + ]], + [[ basicFields-r11 SEQUENCE { + c-RNTI-r11 C-RNTI, + rlf-Cause-r11 ENUMERATED { + t310-Expiry, randomAccessProblem, + rlc-MaxNumRetx, t312-Expiry-r12}, + timeSinceFailure-r11 TimeSinceFailure-r11 + } OPTIONAL, + previousUTRA-CellId-r11 SEQUENCE { + carrierFreq-r11 ARFCN-ValueUTRA, + physCellId-r11 CHOICE { + fdd-r11 PhysCellIdUTRA-FDD, + tdd-r11 PhysCellIdUTRA-TDD + }, + cellGlobalId-r11 CellGlobalIdUTRA OPTIONAL + } OPTIONAL, + selectedUTRA-CellId-r11 SEQUENCE { + carrierFreq-r11 ARFCN-ValueUTRA, + physCellId-r11 CHOICE { + fdd-r11 PhysCellIdUTRA-FDD, + tdd-r11 PhysCellIdUTRA-TDD + } + } OPTIONAL + ]], + [[ failedPCellId-v1250 SEQUENCE { + tac-FailedPCell-r12 TrackingAreaCode + } OPTIONAL, + measResultLastServCell-v1250 RSRQ-Range-v1250 OPTIONAL, + lastServCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL + ]], + [[ drb-EstablishedWithQCI-1-r13 ENUMERATED {qci1} OPTIONAL + ]], + [[ measResultLastServCell-v1360 RSRP-Range-v1360 OPTIONAL + ]] +} + +RLF-Report-v9e0 ::= SEQUENCE { + measResultListEUTRA-v9e0 MeasResultList2EUTRA-v9e0 +} + +MeasResultList2EUTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-r9 + +MeasResultList2EUTRA-v9e0 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v9e0 + +MeasResultList2EUTRA-v1250 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v1250 + +MeasResult2EUTRA-r9 ::= SEQUENCE { + carrierFreq-r9 ARFCN-ValueEUTRA, + measResultList-r9 MeasResultListEUTRA +} + +MeasResult2EUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL +} + +MeasResult2EUTRA-v1250 ::= SEQUENCE { + rsrq-Type-r12 RSRQ-Type-r12 OPTIONAL +} + +MeasResultList2UTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2UTRA-r9 + +MeasResult2UTRA-r9 ::= SEQUENCE { + carrierFreq-r9 ARFCN-ValueUTRA, + measResultList-r9 MeasResultListUTRA +} + +MeasResultList2CDMA2000-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2CDMA2000-r9 + +MeasResult2CDMA2000-r9 ::= SEQUENCE { + carrierFreq-r9 CarrierFreqCDMA2000, + measResultList-r9 MeasResultsCDMA2000 +} + +LogMeasReport-r10 ::= SEQUENCE { + absoluteTimeStamp-r10 AbsoluteTimeInfo-r10, + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + logMeasInfoList-r10 LogMeasInfoList-r10, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + ... +} + +LogMeasInfoList-r10 ::= SEQUENCE (SIZE (1..maxLogMeasReport-r10)) OF LogMeasInfo-r10 + +LogMeasInfo-r10 ::= SEQUENCE { + locationInfo-r10 LocationInfo-r10 OPTIONAL, + relativeTimeStamp-r10 INTEGER (0..7200), + servCellIdentity-r10 CellGlobalIdEUTRA, + measResultServCell-r10 SEQUENCE { + rsrpResult-r10 RSRP-Range, + rsrqResult-r10 RSRQ-Range + }, + measResultNeighCells-r10 SEQUENCE { + measResultListEUTRA-r10 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r10 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r10 MeasResultList2GERAN-r10 OPTIONAL, + measResultListCDMA2000-r10 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + ..., + [[ measResultListEUTRA-v1090 MeasResultList2EUTRA-v9e0 OPTIONAL + ]], + [[ measResultListMBSFN-r12 MeasResultListMBSFN-r12 OPTIONAL, + measResultServCell-v1250 RSRQ-Range-v1250 OPTIONAL, + servCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL + ]], + [[ inDeviceCoexDetected-r13 ENUMERATED {true} OPTIONAL + ]], + [[ measResultServCell-v1360 RSRP-Range-v1360 OPTIONAL + ]] +} + +MeasResultListMBSFN-r12 ::= SEQUENCE (SIZE (1..maxMBSFN-Area)) OF MeasResultMBSFN-r12 + +MeasResultMBSFN-r12 ::= SEQUENCE { + mbsfn-Area-r12 SEQUENCE { + mbsfn-AreaId-r12 MBSFN-AreaId-r12, + carrierFreq-r12 ARFCN-ValueEUTRA-r9 + }, + rsrpResultMBSFN-r12 RSRP-Range, + rsrqResultMBSFN-r12 MBSFN-RSRQ-Range-r12, + signallingBLER-Result-r12 BLER-Result-r12 OPTIONAL, + dataBLER-MCH-ResultList-r12 DataBLER-MCH-ResultList-r12 OPTIONAL, + ... +} + +DataBLER-MCH-ResultList-r12 ::= SEQUENCE (SIZE (1.. maxPMCH-PerMBSFN)) OF DataBLER-MCH-Result-r12 + +DataBLER-MCH-Result-r12 ::= SEQUENCE { + mch-Index-r12 INTEGER (1..maxPMCH-PerMBSFN), + dataBLER-Result-r12 BLER-Result-r12 +} + +BLER-Result-r12 ::= SEQUENCE { + bler-r12 BLER-Range-r12, + blocksReceived-r12 SEQUENCE { + n-r12 BIT STRING (SIZE (3)), + m-r12 BIT STRING (SIZE (8)) + } +} + +BLER-Range-r12 ::= INTEGER(0..31) + +MeasResultList2GERAN-r10 ::= SEQUENCE (SIZE (1..maxCellListGERAN)) OF MeasResultListGERAN + +ConnEstFailReport-r11 ::= SEQUENCE { + failedCellId-r11 CellGlobalIdEUTRA, + locationInfo-r11 LocationInfo-r10 OPTIONAL, + measResultFailedCell-r11 SEQUENCE { + rsrpResult-r11 RSRP-Range, + rsrqResult-r11 RSRQ-Range OPTIONAL + }, + measResultNeighCells-r11 SEQUENCE { + measResultListEUTRA-r11 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r11 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r11 MeasResultListGERAN OPTIONAL, + measResultsCDMA2000-r11 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + numberOfPreamblesSent-r11 NumberOfPreamblesSent-r11, + contentionDetected-r11 BOOLEAN, + maxTxPowerReached-r11 BOOLEAN, + timeSinceFailure-r11 TimeSinceFailure-r11, + measResultListEUTRA-v1130 MeasResultList2EUTRA-v9e0 OPTIONAL, + ..., + [[ measResultFailedCell-v1250 RSRQ-Range-v1250 OPTIONAL, + failedCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL + ]], + [[ measResultFailedCell-v1360 RSRP-Range-v1360 OPTIONAL + ]] +} + +NumberOfPreamblesSent-r11::= INTEGER (1..200) + +TimeSinceFailure-r11 ::= INTEGER (0..172800) + +MobilityHistoryReport-r12 ::= VisitedCellInfoList-r12 + + +ULHandoverPreparationTransfer ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulHandoverPreparationTransfer-r8 ULHandoverPreparationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULHandoverPreparationTransfer-r8-IEs ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + meid BIT STRING (SIZE (56)) OPTIONAL, + dedicatedInfo DedicatedInfoCDMA2000, + nonCriticalExtension ULHandoverPreparationTransfer-v8a0-IEs OPTIONAL +} + +ULHandoverPreparationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +ULInformationTransfer ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulInformationTransfer-r8 ULInformationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType CHOICE { + dedicatedInfoNAS DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000 + }, + nonCriticalExtension ULInformationTransfer-v8a0-IEs OPTIONAL +} + +ULInformationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +WLANConnectionStatusReport-r13 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + wlanConnectionStatusReport-r13 WLANConnectionStatusReport-r13-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +WLANConnectionStatusReport-r13-IEs ::= SEQUENCE { + wlan-Status-r13 WLAN-Status-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType2 ::= SEQUENCE { + ac-BarringInfo SEQUENCE { + ac-BarringForEmergency BOOLEAN, + ac-BarringForMO-Signalling AC-BarringConfig OPTIONAL, -- Need OP + ac-BarringForMO-Data AC-BarringConfig OPTIONAL -- Need OP + } OPTIONAL, -- Need OP + radioResourceConfigCommon RadioResourceConfigCommonSIB, + ue-TimersAndConstants UE-TimersAndConstants, + freqInfo SEQUENCE { + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission + }, + mbsfn-SubframeConfigList MBSFN-SubframeConfigList OPTIONAL, -- Need OR + timeAlignmentTimerCommon TimeAlignmentTimer, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType2-v8h0-IEs) OPTIONAL, + [[ ssac-BarringForMMTEL-Voice-r9 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Video-r9 AC-BarringConfig OPTIONAL -- Need OP + ]], + [[ ac-BarringForCSFB-r10 AC-BarringConfig OPTIONAL -- Need OP + ]], + [[ ac-BarringSkipForMMTELVoice-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVideo-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForSMS-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringPerPLMN-List-r12 AC-BarringPerPLMN-List-r12 OPTIONAL -- Need OP + ]], + [[ voiceServiceCauseIndication-r12 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ acdc-BarringForCommon-r13 ACDC-BarringForCommon-r13 OPTIONAL, -- Need OP + acdc-BarringPerPLMN-List-r13 ACDC-BarringPerPLMN-List-r13 OPTIONAL -- Need OP + ]], + [[ udt-RestrictingForCommon-r13 UDT-Restricting-r13 OPTIONAL, -- Need OR + udt-RestrictingPerPLMN-List-r13 UDT-RestrictingPerPLMN-List-r13 OPTIONAL, -- Need OR + cIoT-EPS-OptimisationInfo-r13 CIOT-EPS-OptimisationInfo-r13 OPTIONAL, -- Need OP + useFullResumeID-r13 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ unicastFreqHoppingInd-r13 ENUMERATED {true} OPTIONAL -- Need OP + ]] +} + +SystemInformationBlockType2-v8h0-IEs ::= SEQUENCE { + multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType2-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType2-v9e0-IEs ::= SEQUENCE { + ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond ul-FreqMax + nonCriticalExtension SystemInformationBlockType2-v9i0-IEs OPTIONAL +} + +SystemInformationBlockType2-v9i0-IEs ::= SEQUENCE { +-- Following field is only for late non-critical extensions for REL-9 + lateNonCriticalExtension OCTET STRING OPTIONAL, +-- Following field is only for late non-critical extensions from REL-10 + nonCriticalExtension SystemInformationBlockType2-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType2-v10l0-IEs ::= SEQUENCE { + freqInfo-v10l0 SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 + }, + multiBandInfoList-v10l0 SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission-v10l0, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AC-BarringConfig ::= SEQUENCE { + ac-BarringFactor ENUMERATED { + p00, p05, p10, p15, p20, p25, p30, p40, + p50, p60, p70, p75, p80, p85, p90, p95}, + ac-BarringTime ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512}, + ac-BarringForSpecialAC BIT STRING (SIZE(5)) +} + +MBSFN-SubframeConfigList ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig + +AC-BarringPerPLMN-List-r12 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF AC-BarringPerPLMN-r12 + +AC-BarringPerPLMN-r12 ::= SEQUENCE { + plmn-IdentityIndex-r12 INTEGER (1..maxPLMN-r11), + ac-BarringInfo-r12 SEQUENCE { + ac-BarringForEmergency-r12 BOOLEAN, + ac-BarringForMO-Signalling-r12 AC-BarringConfig OPTIONAL, -- Need OP + ac-BarringForMO-Data-r12 AC-BarringConfig OPTIONAL -- Need OP + } OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVoice-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVideo-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForSMS-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringForCSFB-r12 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Voice-r12 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Video-r12 AC-BarringConfig OPTIONAL -- Need OP +} + +ACDC-BarringForCommon-r13 ::= SEQUENCE { + acdc-HPLMNonly-r13 BOOLEAN, + barringPerACDC-CategoryList-r13 BarringPerACDC-CategoryList-r13 +} + +ACDC-BarringPerPLMN-List-r13 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF ACDC-BarringPerPLMN-r13 + +ACDC-BarringPerPLMN-r13 ::= SEQUENCE { + plmn-IdentityIndex-r13 INTEGER (1..maxPLMN-r11), + acdc-OnlyForHPLMN-r13 BOOLEAN, + barringPerACDC-CategoryList-r13 BarringPerACDC-CategoryList-r13 +} + +BarringPerACDC-CategoryList-r13 ::= SEQUENCE (SIZE (1..maxACDC-Cat-r13)) OF BarringPerACDC-Category-r13 + +BarringPerACDC-Category-r13 ::= SEQUENCE { + acdc-Category-r13 INTEGER (1..maxACDC-Cat-r13), + acdc-BarringConfig-r13 SEQUENCE { + ac-BarringFactor-r13 ENUMERATED { + p00, p05, p10, p15, p20, p25, p30, p40, + p50, p60, p70, p75, p80, p85, p90, p95}, + ac-BarringTime-r13 ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512} + } OPTIONAL -- Need OP +} + +UDT-Restricting-r13 ::= SEQUENCE { + udt-Restricting-r13 ENUMERATED {true} OPTIONAL, --Need OR + udt-RestrictingTime-r13 ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512} OPTIONAL --Need OR +} + +UDT-RestrictingPerPLMN-List-r13 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF UDT-RestrictingPerPLMN-r13 + +UDT-RestrictingPerPLMN-r13 ::= SEQUENCE { + plmn-IdentityIndex-r13 INTEGER (1..maxPLMN-r11), + udt-Restricting-r13 UDT-Restricting-r13 OPTIONAL --Need OR +} + +CIOT-EPS-OptimisationInfo-r13 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF CIOT-OptimisationPLMN-r13 + +CIOT-OptimisationPLMN-r13::= SEQUENCE { + up-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, -- Need OP + cp-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, -- Need OP + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL -- Need OP +} + + +SystemInformationBlockType3 ::= SEQUENCE { + cellReselectionInfoCommon SEQUENCE { + q-Hyst ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + speedStateReselectionPars SEQUENCE { + mobilityStateParameters MobilityStateParameters, + q-HystSF SEQUENCE { + sf-Medium ENUMERATED { + dB-6, dB-4, dB-2, dB0}, + sf-High ENUMERATED { + dB-6, dB-4, dB-2, dB0} + } + } OPTIONAL -- Need OP + }, + cellReselectionServingFreqInfo SEQUENCE { + s-NonIntraSearch ReselectionThreshold OPTIONAL, -- Need OP + threshServingLow ReselectionThreshold, + cellReselectionPriority CellReselectionPriority + }, + intraFreqCellReselectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + p-Max P-Max OPTIONAL, -- Need OP + s-IntraSearch ReselectionThreshold OPTIONAL, -- Need OP + allowedMeasBandwidth AllowedMeasBandwidth OPTIONAL, -- Need OP + presenceAntennaPort1 PresenceAntennaPort1, + neighCellConfig NeighCellConfig, + t-ReselectionEUTRA T-Reselection, + t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL -- Need OP + }, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType3-v10j0-IEs) OPTIONAL, + [[ s-IntraSearch-v920 SEQUENCE { + s-IntraSearchP-r9 ReselectionThreshold, + s-IntraSearchQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL, -- Need OP + s-NonIntraSearch-v920 SEQUENCE { + s-NonIntraSearchP-r9 ReselectionThreshold, + s-NonIntraSearchQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL, -- Need OP + q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP + threshServingLowQ-r9 ReselectionThresholdQ-r9 OPTIONAL -- Need OP + ]], + [[ q-QualMinWB-r11 Q-QualMin-r9 OPTIONAL -- Cond WB-RSRQ + ]], + [[ q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL -- Cond RSRQ + ]], + [[ cellReselectionServingFreqInfo-v1310 CellReselectionServingFreqInfo-v1310 OPTIONAL, -- Need OP + redistributionServingInfo-r13 RedistributionServingInfo-r13 OPTIONAL, --Need OR + cellSelectionInfoCE-r13 CellSelectionInfoCE-r13 OPTIONAL, -- Need OP + t-ReselectionEUTRA-CE-r13 T-ReselectionEUTRA-CE-r13 OPTIONAL -- Need OP + ]], + [[ cellSelectionInfoCE1-r13 CellSelectionInfoCE1-r13 OPTIONAL -- Need OP + ]], + [[ cellSelectionInfoCE1-v1360 CellSelectionInfoCE1-v1360 OPTIONAL -- Cond QrxlevminCE1 + ]] +} + +RedistributionServingInfo-r13 ::= SEQUENCE { + redistributionFactorServing-r13 INTEGER(0..10), + redistributionFactorCell-r13 ENUMERATED{true} OPTIONAL, --Need OP + t360-r13 ENUMERATED {min4, min8, min16, min32,infinity, + spare3,spare2,spare1}, + redistrOnPagingOnly-r13 ENUMERATED {true} OPTIONAL --Need OP +} + +CellReselectionServingFreqInfo-v1310 ::= SEQUENCE { + cellReselectionSubPriority-r13 CellReselectionSubPriority-r13 +} + +-- Late non critical extensions +SystemInformationBlockType3-v10j0-IEs ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType3-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType3-v10l0-IEs ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType4 ::= SEQUENCE { + intraFreqNeighCellList IntraFreqNeighCellList OPTIONAL, -- Need OR + intraFreqBlackCellList IntraFreqBlackCellList OPTIONAL, -- Need OR + csg-PhysCellIdRange PhysCellIdRange OPTIONAL, -- Cond CSG + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + +IntraFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellIntra)) OF IntraFreqNeighCellInfo + +IntraFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange, + ... +} + +IntraFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange + + +SystemInformationBlockType5 ::= SEQUENCE { + interFreqCarrierFreqList InterFreqCarrierFreqList, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType5-v8h0-IEs) OPTIONAL, + [[ interFreqCarrierFreqList-v1250 InterFreqCarrierFreqList-v1250 OPTIONAL, -- Need OR + interFreqCarrierFreqListExt-r12 InterFreqCarrierFreqListExt-r12 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqListExt-v1280 InterFreqCarrierFreqListExt-v1280 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqList-v1310 InterFreqCarrierFreqList-v1310 OPTIONAL, -- Need OR + interFreqCarrierFreqListExt-v1310 InterFreqCarrierFreqListExt-v1310 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqList-v1350 InterFreqCarrierFreqList-v1350 OPTIONAL, -- Need OR + interFreqCarrierFreqListExt-v1350 InterFreqCarrierFreqListExt-v1350 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqListExt-v1360 InterFreqCarrierFreqListExt-v1360 OPTIONAL -- Need OR + ]] +} + +SystemInformationBlockType5-v8h0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v8h0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v8h0 OPTIONAL, -- Need OP + nonCriticalExtension SystemInformationBlockType5-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType5-v9e0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v9e0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType5-v10j0-IEs OPTIONAL +} + +SystemInformationBlockType5-v10j0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v10j0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType5-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType5-v10l0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v10l0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +InterFreqCarrierFreqList ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo + +InterFreqCarrierFreqList-v1250 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1250 + +InterFreqCarrierFreqListExt-r12 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-r12 + +InterFreqCarrierFreqListExt-v1280 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v10j0 + +InterFreqCarrierFreqList-v1310 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1310 + +InterFreqCarrierFreqListExt-v1310 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1310 + +InterFreqCarrierFreqList-v1350 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1350 + +InterFreqCarrierFreqListExt-v1350 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1350 + +InterFreqCarrierFreqListExt-v1360 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v1360 + +InterFreqCarrierFreqInfo ::= SEQUENCE { + dl-CarrierFreq ARFCN-ValueEUTRA, + q-RxLevMin Q-RxLevMin, + p-Max P-Max OPTIONAL, -- Need OP + t-ReselectionEUTRA T-Reselection, + t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + allowedMeasBandwidth AllowedMeasBandwidth, + presenceAntennaPort1 PresenceAntennaPort1, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + neighCellConfig NeighCellConfig, + q-OffsetFreq Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList InterFreqNeighCellList OPTIONAL, -- Need OR + interFreqBlackCellList InterFreqBlackCellList OPTIONAL, -- Need OR + ..., + [[ q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP + threshX-Q-r9 SEQUENCE { + threshX-HighQ-r9 ReselectionThresholdQ-r9, + threshX-LowQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL -- Cond RSRQ + ]], + [[ q-QualMinWB-r11 Q-QualMin-r9 OPTIONAL -- Cond WB-RSRQ + ]] +} + +InterFreqCarrierFreqInfo-v8h0 ::= SEQUENCE { + multiBandInfoList MultiBandInfoList OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v9e0 ::= SEQUENCE { + dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond dl-FreqMax + multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v10j0 ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v10l0 ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v1250 ::= SEQUENCE { + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL -- Cond RSRQ2 +} + +InterFreqCarrierFreqInfo-r12 ::= SEQUENCE { + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9, + q-RxLevMin-r12 Q-RxLevMin, + p-Max-r12 P-Max OPTIONAL, -- Need OP + t-ReselectionEUTRA-r12 T-Reselection, + t-ReselectionEUTRA-SF-r12 SpeedStateScaleFactors OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + allowedMeasBandwidth-r12 AllowedMeasBandwidth, + presenceAntennaPort1-r12 PresenceAntennaPort1, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + neighCellConfig-r12 NeighCellConfig, + q-OffsetFreq-r12 Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList-r12 InterFreqNeighCellList OPTIONAL, -- Need OR + interFreqBlackCellList-r12 InterFreqBlackCellList OPTIONAL, -- Need OR + q-QualMin-r12 Q-QualMin-r9 OPTIONAL, -- Need OP + threshX-Q-r12 SEQUENCE { + threshX-HighQ-r12 ReselectionThresholdQ-r9, + threshX-LowQ-r12 ReselectionThresholdQ-r9 + } OPTIONAL, -- Cond RSRQ + q-QualMinWB-r12 Q-QualMin-r9 OPTIONAL, -- Cond WB-RSRQ + multiBandInfoList-r12 MultiBandInfoList-r11 OPTIONAL, -- Need OR + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL, -- Cond RSRQ2 +... +} + +InterFreqCarrierFreqInfo-v1310 ::= SEQUENCE { + cellReselectionSubPriority-r13 CellReselectionSubPriority-r13 OPTIONAL, -- Need OP + redistributionInterFreqInfo-r13 RedistributionInterFreqInfo-r13 OPTIONAL, --Need OP + cellSelectionInfoCE-r13 CellSelectionInfoCE-r13 OPTIONAL, -- Need OP + t-ReselectionEUTRA-CE-r13 T-ReselectionEUTRA-CE-r13 OPTIONAL -- Need OP +} + +InterFreqCarrierFreqInfo-v1350 ::= SEQUENCE { + cellSelectionInfoCE1-r13 CellSelectionInfoCE1-r13 OPTIONAL -- Need OP +} + +InterFreqCarrierFreqInfo-v1360 ::= SEQUENCE { + cellSelectionInfoCE1-v1360 CellSelectionInfoCE1-v1360 OPTIONAL -- Cond QrxlevminCE1 +} + +InterFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo + +InterFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange +} + +InterFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange + +RedistributionInterFreqInfo-r13 ::= SEQUENCE { + redistributionFactorFreq-r13 RedistributionFactor-r13 OPTIONAL, --Need OP + redistributionNeighCellList-r13 RedistributionNeighCellList-r13 OPTIONAL --Need OP +} + +RedistributionNeighCellList-r13 ::= SEQUENCE (SIZE (1..maxCellInter)) OF RedistributionNeighCell-r13 + +RedistributionNeighCell-r13 ::= SEQUENCE { + physCellId-r13 PhysCellId, + redistributionFactorCell-r13 RedistributionFactor-r13 +} + +RedistributionFactor-r13 ::= INTEGER(1..10) + + +SystemInformationBlockType6 ::= SEQUENCE { + carrierFreqListUTRA-FDD CarrierFreqListUTRA-FDD OPTIONAL, -- Need OR + carrierFreqListUTRA-TDD CarrierFreqListUTRA-TDD OPTIONAL, -- Need OR + t-ReselectionUTRA T-Reselection, + t-ReselectionUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType6-v8h0-IEs) OPTIONAL, + [[ carrierFreqListUTRA-FDD-v1250 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF + CarrierFreqInfoUTRA-v1250 OPTIONAL, -- Cond UTRA-FDD + carrierFreqListUTRA-TDD-v1250 SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF + CarrierFreqInfoUTRA-v1250 OPTIONAL, -- Cond UTRA-TDD + carrierFreqListUTRA-FDD-Ext-r12 CarrierFreqListUTRA-FDD-Ext-r12 OPTIONAL, -- Cond UTRA-FDD + carrierFreqListUTRA-TDD-Ext-r12 CarrierFreqListUTRA-TDD-Ext-r12 OPTIONAL -- Cond UTRA-TDD + ]] +} + +SystemInformationBlockType6-v8h0-IEs ::= SEQUENCE { + carrierFreqListUTRA-FDD-v8h0 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqInfoUTRA-FDD-v8h0 OPTIONAL, -- Cond UTRA-FDD + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CarrierFreqInfoUTRA-v1250 ::= SEQUENCE { + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL -- Need OP +} + +CarrierFreqListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqUTRA-FDD + +CarrierFreqUTRA-FDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + q-RxLevMin INTEGER (-60..-13), + p-MaxUTRA INTEGER (-50..33), + q-QualMin INTEGER (-24..0), + ..., + [[ threshX-Q-r9 SEQUENCE { + threshX-HighQ-r9 ReselectionThresholdQ-r9, + threshX-LowQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL -- Cond RSRQ + ]] +} + +CarrierFreqInfoUTRA-FDD-v8h0 ::= SEQUENCE { + multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL -- Need OR +} + +CarrierFreqListUTRA-FDD-Ext-r12 ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF + CarrierFreqUTRA-FDD-Ext-r12 + +CarrierFreqUTRA-FDD-Ext-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueUTRA, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + q-RxLevMin-r12 INTEGER (-60..-13), + p-MaxUTRA-r12 INTEGER (-50..33), + q-QualMin-r12 INTEGER (-24..0), + threshX-Q-r12 SEQUENCE { + threshX-HighQ-r12 ReselectionThresholdQ-r9, + threshX-LowQ-r12 ReselectionThresholdQ-r9 + } OPTIONAL, -- Cond RSRQ + multiBandInfoList-r12 SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL, -- Need OR + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ... +} + +CarrierFreqListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF CarrierFreqUTRA-TDD + +CarrierFreqUTRA-TDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + q-RxLevMin INTEGER (-60..-13), + p-MaxUTRA INTEGER (-50..33), + ... +} + +CarrierFreqListUTRA-TDD-Ext-r12 ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF + CarrierFreqUTRA-TDD-r12 + +CarrierFreqUTRA-TDD-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueUTRA, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + q-RxLevMin-r12 INTEGER (-60..-13), + p-MaxUTRA-r12 INTEGER (-50..33), + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ... +} + +FreqBandIndicator-UTRA-FDD ::= INTEGER (1..86) + + +SystemInformationBlockType7 ::= SEQUENCE { + t-ReselectionGERAN T-Reselection, + t-ReselectionGERAN-SF SpeedStateScaleFactors OPTIONAL, -- Need OR + carrierFreqsInfoList CarrierFreqsInfoListGERAN OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + +CarrierFreqsInfoListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF CarrierFreqsInfoGERAN + +CarrierFreqsInfoGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + commonInfo SEQUENCE { + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + ncc-Permitted BIT STRING (SIZE (8)), + q-RxLevMin INTEGER (0..45), + p-MaxGERAN INTEGER (0..39) OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold + }, + ... +} + + +SystemInformationBlockType8 ::= SEQUENCE { + systemTimeInfo SystemTimeInfoCDMA2000 OPTIONAL, -- Need OR + searchWindowSize INTEGER (0..15) OPTIONAL, -- Need OR + parametersHRPD SEQUENCE { + preRegistrationInfoHRPD PreRegistrationInfoHRPD, + cellReselectionParametersHRPD CellReselectionParametersCDMA2000 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + parameters1XRTT SEQUENCE { + csfb-RegistrationParam1XRTT CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP + longCodeState1XRTT BIT STRING (SIZE (42)) OPTIONAL, -- Need OR + cellReselectionParameters1XRTT CellReselectionParametersCDMA2000 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL, + [[ csfb-SupportForDualRxUEs-r9 BOOLEAN OPTIONAL, -- Need OR + cellReselectionParametersHRPD-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-HRPD + cellReselectionParameters1XRTT-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-1XRTT + csfb-RegistrationParam1XRTT-v920 CSFB-RegistrationParam1XRTT-v920 OPTIONAL, -- Cond REG-1XRTT + ac-BarringConfig1XRTT-r9 AC-BarringConfig1XRTT-r9 OPTIONAL -- Cond REG-1XRTT + ]], + [[ csfb-DualRxTxSupport-r10 ENUMERATED {true} OPTIONAL -- Cond REG-1XRTT + ]], + [[ sib8-PerPLMN-List-r11 SIB8-PerPLMN-List-r11 OPTIONAL -- Need OR + ]] +} + +CellReselectionParametersCDMA2000 ::= SEQUENCE { + bandClassList BandClassListCDMA2000, + neighCellList NeighCellListCDMA2000, + t-ReselectionCDMA2000 T-Reselection, + t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP +} + +CellReselectionParametersCDMA2000-r11 ::= SEQUENCE { + bandClassList BandClassListCDMA2000, + neighCellList-r11 SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-r11, + t-ReselectionCDMA2000 T-Reselection, + t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP +} + +CellReselectionParametersCDMA2000-v920 ::= SEQUENCE { + neighCellList-v920 NeighCellListCDMA2000-v920 +} + +NeighCellListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000 + +NeighCellCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + neighCellsPerFreqList NeighCellsPerBandclassListCDMA2000 +} + +NeighCellCDMA2000-r11 ::= SEQUENCE { + bandClass BandclassCDMA2000, + neighFreqInfoList-r11 SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-r11 +} + +NeighCellsPerBandclassListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000 + +NeighCellsPerBandclassCDMA2000 ::= SEQUENCE { + arfcn ARFCN-ValueCDMA2000, + physCellIdList PhysCellIdListCDMA2000 +} + +NeighCellsPerBandclassCDMA2000-r11 ::= SEQUENCE { + arfcn ARFCN-ValueCDMA2000, + physCellIdList-r11 SEQUENCE (SIZE (1..40)) OF PhysCellIdCDMA2000 +} + +NeighCellListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-v920 + +NeighCellCDMA2000-v920 ::= SEQUENCE { + neighCellsPerFreqList-v920 NeighCellsPerBandclassListCDMA2000-v920 +} + +NeighCellsPerBandclassListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-v920 + +NeighCellsPerBandclassCDMA2000-v920 ::= SEQUENCE { + physCellIdList-v920 PhysCellIdListCDMA2000-v920 +} + +PhysCellIdListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdCDMA2000 + +PhysCellIdListCDMA2000-v920 ::= SEQUENCE (SIZE (0..24)) OF PhysCellIdCDMA2000 + +BandClassListCDMA2000 ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassInfoCDMA2000 + +BandClassInfoCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High INTEGER (0..63), + threshX-Low INTEGER (0..63), + ... +} + +AC-BarringConfig1XRTT-r9 ::= SEQUENCE { + ac-Barring0to9-r9 INTEGER (0..63), + ac-Barring10-r9 INTEGER (0..7), + ac-Barring11-r9 INTEGER (0..7), + ac-Barring12-r9 INTEGER (0..7), + ac-Barring13-r9 INTEGER (0..7), + ac-Barring14-r9 INTEGER (0..7), + ac-Barring15-r9 INTEGER (0..7), + ac-BarringMsg-r9 INTEGER (0..7), + ac-BarringReg-r9 INTEGER (0..7), + ac-BarringEmg-r9 INTEGER (0..7) +} + +SIB8-PerPLMN-List-r11 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF SIB8-PerPLMN-r11 + +SIB8-PerPLMN-r11 ::= SEQUENCE { + plmn-Identity-r11 INTEGER (1..maxPLMN-r11), + parametersCDMA2000-r11 CHOICE { + explicitValue ParametersCDMA2000-r11, + defaultValue NULL + } +} + +ParametersCDMA2000-r11 ::= SEQUENCE { + systemTimeInfo-r11 CHOICE { + explicitValue SystemTimeInfoCDMA2000, + defaultValue NULL + } OPTIONAL, -- Need OR + searchWindowSize-r11 INTEGER (0..15), + parametersHRPD-r11 SEQUENCE { + preRegistrationInfoHRPD-r11 PreRegistrationInfoHRPD, + cellReselectionParametersHRPD-r11 CellReselectionParametersCDMA2000-r11 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + parameters1XRTT-r11 SEQUENCE { + csfb-RegistrationParam1XRTT-r11 CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP + csfb-RegistrationParam1XRTT-Ext-r11 CSFB-RegistrationParam1XRTT-v920 OPTIONAL, -- Cond REG-1XRTT-PerPLMN + longCodeState1XRTT-r11 BIT STRING (SIZE (42)) OPTIONAL, -- Cond PerPLMN-LC + cellReselectionParameters1XRTT-r11 CellReselectionParametersCDMA2000-r11 OPTIONAL, -- Need OR + ac-BarringConfig1XRTT-r11 AC-BarringConfig1XRTT-r9 OPTIONAL, -- Cond REG-1XRTT-PerPLMN + csfb-SupportForDualRxUEs-r11 BOOLEAN OPTIONAL, -- Need OR + csfb-DualRxTxSupport-r11 ENUMERATED {true} OPTIONAL -- Cond REG-1XRTT-PerPLMN + } OPTIONAL, -- Need OR + ... +} + + +SystemInformationBlockType9 ::= SEQUENCE { + hnb-Name OCTET STRING (SIZE(1..48)) OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType10 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningType OCTET STRING (SIZE (2)), + dummy OCTET STRING (SIZE (50)) OPTIONAL, -- Need OP + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType11 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningMessageSegmentType ENUMERATED {notLastSegment, lastSegment}, + warningMessageSegmentNumber INTEGER (0..63), + warningMessageSegment OCTET STRING, + dataCodingScheme OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType12-r9 ::= SEQUENCE { + messageIdentifier-r9 BIT STRING (SIZE (16)), + serialNumber-r9 BIT STRING (SIZE (16)), + warningMessageSegmentType-r9 ENUMERATED {notLastSegment, lastSegment}, + warningMessageSegmentNumber-r9 INTEGER (0..63), + warningMessageSegment-r9 OCTET STRING, + dataCodingScheme-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +SystemInformationBlockType13-r9 ::= SEQUENCE { + mbsfn-AreaInfoList-r9 MBSFN-AreaInfoList-r9, + notificationConfig-r9 MBMS-NotificationConfig-r9, + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +SystemInformationBlockType14-r11 ::= SEQUENCE { + eab-Param-r11 CHOICE { + eab-Common-r11 EAB-Config-r11, + eab-PerPLMN-List-r11 SEQUENCE (SIZE (1..maxPLMN-r11)) OF EAB-ConfigPLMN-r11 + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +EAB-ConfigPLMN-r11 ::= SEQUENCE { + eab-Config-r11 EAB-Config-r11 OPTIONAL -- Need OR +} + +EAB-Config-r11 ::= SEQUENCE { + eab-Category-r11 ENUMERATED {a, b, c}, + eab-BarringBitmap-r11 BIT STRING (SIZE (10)) +} + + +SystemInformationBlockType15-r11 ::= SEQUENCE { + mbms-SAI-IntraFreq-r11 MBMS-SAI-List-r11 OPTIONAL, -- Need OR + mbms-SAI-InterFreqList-r11 MBMS-SAI-InterFreqList-r11 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ mbms-SAI-InterFreqList-v1140 MBMS-SAI-InterFreqList-v1140 OPTIONAL -- Cond InterFreq + ]] +} + +MBMS-SAI-List-r11 ::= SEQUENCE (SIZE (1..maxSAI-MBMS-r11)) OF MBMS-SAI-r11 + +MBMS-SAI-r11 ::= INTEGER (0..65535) + +MBMS-SAI-InterFreqList-r11 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-r11 + +MBMS-SAI-InterFreqList-v1140 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-v1140 + +MBMS-SAI-InterFreq-r11 ::= SEQUENCE { + dl-CarrierFreq-r11 ARFCN-ValueEUTRA-r9, + mbms-SAI-List-r11 MBMS-SAI-List-r11 +} + +MBMS-SAI-InterFreq-v1140 ::= SEQUENCE { + multiBandInfoList-r11 MultiBandInfoList-r11 OPTIONAL -- Need OR +} + + + +SystemInformationBlockType16-r11 ::= SEQUENCE { + timeInfo-r11 SEQUENCE { + timeInfoUTC-r11 INTEGER (0..549755813887), + dayLightSavingTime-r11 BIT STRING (SIZE (2)) OPTIONAL, -- Need OR + leapSeconds-r11 INTEGER (-127..128) OPTIONAL, -- Need OR + localTimeOffset-r11 INTEGER (-63..64) OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +SystemInformationBlockType17-r12 ::= SEQUENCE { + wlan-OffloadInfoPerPLMN-List-r12 SEQUENCE (SIZE (1..maxPLMN-r11)) OF + WLAN-OffloadInfoPerPLMN-r12 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +WLAN-OffloadInfoPerPLMN-r12 ::= SEQUENCE { + wlan-OffloadConfigCommon-r12 WLAN-OffloadConfig-r12 OPTIONAL, -- Need OR + wlan-Id-List-r12 WLAN-Id-List-r12 OPTIONAL, -- Need OR + ... +} + +WLAN-Id-List-r12 ::= SEQUENCE (SIZE (1..maxWLAN-Id-r12)) OF WLAN-Identifiers-r12 + +WLAN-Identifiers-r12 ::= SEQUENCE { + ssid-r12 OCTET STRING (SIZE (1..32)) OPTIONAL, -- Need OR + bssid-r12 OCTET STRING (SIZE (6)) OPTIONAL, -- Need OR + hessid-r12 OCTET STRING (SIZE (6)) OPTIONAL, -- Need OR + ... +} + + +SystemInformationBlockType18-r12 ::= SEQUENCE { + commConfig-r12 SEQUENCE { + commRxPool-r12 SL-CommRxPoolList-r12, + commTxPoolNormalCommon-r12 SL-CommTxPoolList-r12 OPTIONAL, -- Need OR + commTxPoolExceptional-r12 SL-CommTxPoolList-r12 OPTIONAL, -- Need OR + commSyncConfig-r12 SL-SyncConfigList-r12 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ commTxPoolNormalCommonExt-r13 SL-CommTxPoolListExt-r13 OPTIONAL, -- Need OR + commTxResourceUC-ReqAllowed-r13 ENUMERATED {true} OPTIONAL, -- Need OR + commTxAllowRelayCommon-r13 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + + +SystemInformationBlockType19-r12 ::= SEQUENCE { + discConfig-r12 SEQUENCE { + discRxPool-r12 SL-DiscRxPoolList-r12, + discTxPoolCommon-r12 SL-DiscTxPoolList-r12 OPTIONAL, -- Need OR + discTxPowerInfo-r12 SL-DiscTxPowerInfoList-r12 OPTIONAL, -- Cond Tx + discSyncConfig-r12 SL-SyncConfigList-r12 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + discInterFreqList-r12 SL-CarrierFreqInfoList-r12 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ discConfig-v1310 SEQUENCE { + discInterFreqList-v1310 SL-CarrierFreqInfoList-v1310 OPTIONAL, -- Need OR + gapRequestsAllowedCommon ENUMERATED {true} OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + discConfigRelay-r13 SEQUENCE { + relayUE-Config-r13 SL-DiscConfigRelayUE-r13, + remoteUE-Config-r13 SL-DiscConfigRemoteUE-r13 + } OPTIONAL, -- Need OR + discConfigPS-13 SEQUENCE { + discRxPoolPS-r13 SL-DiscRxPoolList-r12, + discTxPoolPS-Common-r13 SL-DiscTxPoolList-r12 OPTIONAL -- Need OR + } OPTIONAL -- Need OR + ]] +} + +SL-CarrierFreqInfoList-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-CarrierFreqInfo-r12 + +SL-CarrierFreqInfoList-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-CarrierFreqInfo-v1310 + +SL-CarrierFreqInfo-r12::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + plmn-IdentityList-r12 PLMN-IdentityList4-r12 OPTIONAL -- Need OP +} + +SL-DiscConfigRelayUE-r13 ::= SEQUENCE { + threshHigh-r13 RSRP-RangeSL4-r13 OPTIONAL, -- Need OR + threshLow-r13 RSRP-RangeSL4-r13 OPTIONAL, -- Need OR + hystMax-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf} OPTIONAL, -- Cond ThreshHigh + hystMin-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12} OPTIONAL -- Cond ThreshLow +} + +SL-DiscConfigRemoteUE-r13 ::= SEQUENCE { + threshHigh-r13 RSRP-RangeSL4-r13 OPTIONAL, -- Need OR + hystMax-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12} OPTIONAL, -- Cond ThreshHigh + reselectionInfoIC-r13 ReselectionInfoRelay-r13 +} + +ReselectionInfoRelay-r13 ::= SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + -- Note that the mapping of invidual values may be different for PC5, but the granularity/ + -- number of values is same as for Uu + filterCoefficient-r13 FilterCoefficient, + minHyst-r13 ENUMERATED {dB0, dB3, + dB6, dB9, dB12, dBinf} OPTIONAL -- Need OR +} + +SL-CarrierFreqInfo-v1310::= SEQUENCE { + discResourcesNonPS-r13 SL-ResourcesInterFreq-r13 OPTIONAL, -- Need OR + discResourcesPS-r13 SL-ResourcesInterFreq-r13 OPTIONAL, -- Need OR + discConfigOther-r13 SL-DiscConfigOtherInterFreq-r13 OPTIONAL, -- Need OR + ... +} + +PLMN-IdentityList4-r12 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo2-r12 + +PLMN-IdentityInfo2-r12 ::= CHOICE { + plmn-Index-r12 INTEGER (1..maxPLMN-r11), + plmnIdentity-r12 PLMN-Identity +} + +SL-DiscTxResourcesInterFreq-r13 ::= CHOICE { + acquireSI-FromCarrier-r13 NULL, + discTxPoolCommon-r13 SL-DiscTxPoolList-r12, + requestDedicated-r13 NULL, + noTxOnCarrier-r13 NULL +} + +SL-DiscConfigOtherInterFreq-r13::= SEQUENCE { + txPowerInfo-r13 SL-DiscTxPowerInfoList-r12 OPTIONAL, -- Cond Tx + refCarrierCommon-r13 ENUMERATED {pCell} OPTIONAL, -- Need OR + discSyncConfig-r13 SL-SyncConfigListNFreq-r13 OPTIONAL, -- Need OR + discCellSelectionInfo-r13 CellSelectionInfoNFreq-r13 OPTIONAL -- Need OR +} + +SL-ResourcesInterFreq-r13 ::= SEQUENCE { + discRxResourcesInterFreq-r13 SL-DiscRxPoolList-r12 OPTIONAL, -- Need OR + discTxResourcesInterFreq-r13 SL-DiscTxResourcesInterFreq-r13 OPTIONAL -- Need OR +} + + +SystemInformationBlockType20-r13 ::= SEQUENCE { + sc-mcch-RepetionPeriod-r13 ENUMERATED {rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256}, + sc-mcch-Offset-r13 INTEGER (0..10), + sc-mcch-FirstSubframe-r13 INTEGER (0..9), + sc-mcch-duration-r13 INTEGER (2..9) OPTIONAL, + sc-mcch-ModificationPeriod-r13 ENUMERATED {rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256, + rf512, rf1024, r2048, rf4096, rf8192, rf16384, rf32768, rf65536}, + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +AntennaInfoCommon ::= SEQUENCE { + antennaPortsCount ENUMERATED {an1, an2, an4, spare1} +} + +AntennaInfoDedicated ::= SEQUENCE { + transmissionMode ENUMERATED { + tm1, tm2, tm3, tm4, tm5, tm6, + tm7, tm8-v920}, + codebookSubsetRestriction CHOICE { + n2TxAntenna-tm3 BIT STRING (SIZE (2)), + n4TxAntenna-tm3 BIT STRING (SIZE (4)), + n2TxAntenna-tm4 BIT STRING (SIZE (6)), + n4TxAntenna-tm4 BIT STRING (SIZE (64)), + n2TxAntenna-tm5 BIT STRING (SIZE (4)), + n4TxAntenna-tm5 BIT STRING (SIZE (16)), + n2TxAntenna-tm6 BIT STRING (SIZE (4)), + n4TxAntenna-tm6 BIT STRING (SIZE (16)) + } OPTIONAL, -- Cond TM + ue-TransmitAntennaSelection CHOICE{ + release NULL, + setup ENUMERATED {closedLoop, openLoop} + } +} + +AntennaInfoDedicated-v920 ::= SEQUENCE { + codebookSubsetRestriction-v920 CHOICE { + n2TxAntenna-tm8-r9 BIT STRING (SIZE (6)), + n4TxAntenna-tm8-r9 BIT STRING (SIZE (32)) + } OPTIONAL -- Cond TM8 +} + +AntennaInfoDedicated-r10 ::= SEQUENCE { + transmissionMode-r10 ENUMERATED { + tm1, tm2, tm3, tm4, tm5, tm6, tm7, tm8-v920, + tm9-v1020, tm10-v1130, spare6, spare5, spare4, + spare3, spare2, spare1}, + codebookSubsetRestriction-r10 BIT STRING OPTIONAL, -- Cond TMX + ue-TransmitAntennaSelection CHOICE{ + release NULL, + setup ENUMERATED {closedLoop, openLoop} + } +} + +AntennaInfoDedicated-v10i0::= SEQUENCE { + maxLayersMIMO-r10 ENUMERATED {twoLayers, fourLayers, eightLayers} OPTIONAL -- Need OR +} + +AntennaInfoDedicated-v1250 ::= SEQUENCE { + alternativeCodebookEnabledFor4TX-r12 BOOLEAN +} + + +AntennaInfoUL-r10 ::= SEQUENCE { + transmissionModeUL-r10 ENUMERATED {tm1, tm2, spare6, spare5, + spare4, spare3, spare2, spare1} OPTIONAL, -- Need OR + fourAntennaPortActivated-r10 ENUMERATED {setup} OPTIONAL -- Need OR +} + + +CQI-ReportConfig ::= SEQUENCE { + cqi-ReportModeAperiodic CQI-ReportModeAperiodic OPTIONAL, -- Need OR + nomPDSCH-RS-EPRE-Offset INTEGER (-1..6), + cqi-ReportPeriodic CQI-ReportPeriodic OPTIONAL -- Need ON +} + +CQI-ReportConfig-v920 ::= SEQUENCE { + cqi-Mask-r9 ENUMERATED {setup} OPTIONAL, -- Cond cqi-Setup + pmi-RI-Report-r9 ENUMERATED {setup} OPTIONAL -- Cond PMIRI +} + +CQI-ReportConfig-r10 ::= SEQUENCE { + cqi-ReportAperiodic-r10 CQI-ReportAperiodic-r10 OPTIONAL, -- Need ON + nomPDSCH-RS-EPRE-Offset INTEGER (-1..6), + cqi-ReportPeriodic-r10 CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON + pmi-RI-Report-r9 ENUMERATED {setup} OPTIONAL, -- Cond PMIRIPCell + csi-SubframePatternConfig-r10 CHOICE { + release NULL, + setup SEQUENCE { + csi-MeasSubframeSet1-r10 MeasSubframePattern-r10, + csi-MeasSubframeSet2-r10 MeasSubframePattern-r10 + } + } OPTIONAL -- Need ON +} + +CQI-ReportConfig-v1130 ::= SEQUENCE { + cqi-ReportPeriodic-v1130 CQI-ReportPeriodic-v1130, + cqi-ReportBoth-r11 CQI-ReportBoth-r11 +} + +CQI-ReportConfig-v1250 ::= SEQUENCE { + csi-SubframePatternConfig-r12 CHOICE { + release NULL, + setup SEQUENCE { + csi-MeasSubframeSets-r12 BIT STRING (SIZE (10)) + } + } OPTIONAL, -- Need ON + cqi-ReportBoth-v1250 CQI-ReportBoth-v1250 OPTIONAL, -- Need ON + cqi-ReportAperiodic-v1250 CQI-ReportAperiodic-v1250 OPTIONAL, -- Need ON + altCQI-Table-r12 ENUMERATED { + allSubframes, csi-SubframeSet1, + csi-SubframeSet2, spare1} OPTIONAL -- Need OP +} + +CQI-ReportConfig-v1310 ::= SEQUENCE { + cqi-ReportBoth-v1310 CQI-ReportBoth-v1310 OPTIONAL, -- Need ON + cqi-ReportAperiodic-v1310 CQI-ReportAperiodic-v1310 OPTIONAL, -- Need ON + cqi-ReportPeriodic-v1310 CQI-ReportPeriodic-v1310 OPTIONAL -- Need ON +} + +CQI-ReportConfig-v1320 ::= SEQUENCE { + cqi-ReportPeriodic-v1320 CQI-ReportPeriodic-v1320 OPTIONAL -- Need ON +} + +CQI-ReportConfigSCell-r10 ::= SEQUENCE { + cqi-ReportModeAperiodic-r10 CQI-ReportModeAperiodic OPTIONAL, -- Need OR + nomPDSCH-RS-EPRE-Offset-r10 INTEGER (-1..6), + cqi-ReportPeriodicSCell-r10 CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON + pmi-RI-Report-r10 ENUMERATED {setup} OPTIONAL -- Cond PMIRISCell +} + +CQI-ReportPeriodic ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-PUCCH-ResourceIndex INTEGER (0..1185), + cqi-pmi-ConfigIndex INTEGER (0..1023), + cqi-FormatIndicatorPeriodic CHOICE { + widebandCQI NULL, + subbandCQI SEQUENCE { + k INTEGER (1..4) + } + }, + ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR + simultaneousAckNackAndCQI BOOLEAN + } +} + +CQI-ReportPeriodic-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-PUCCH-ResourceIndex-r10 INTEGER (0..1184), + cqi-PUCCH-ResourceIndexP1-r10 INTEGER (0..1184) OPTIONAL, -- Need OR + cqi-pmi-ConfigIndex INTEGER (0..1023), + cqi-FormatIndicatorPeriodic-r10 CHOICE { + widebandCQI-r10 SEQUENCE { + csi-ReportMode-r10 ENUMERATED {submode1, submode2} OPTIONAL -- Need OR + }, + subbandCQI-r10 SEQUENCE { + k INTEGER (1..4), + periodicityFactor-r10 ENUMERATED {n2, n4} + } + }, + ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR + simultaneousAckNackAndCQI BOOLEAN, + cqi-Mask-r9 ENUMERATED {setup} OPTIONAL, -- Need OR + csi-ConfigIndex-r10 CHOICE { + release NULL, + setup SEQUENCE { + cqi-pmi-ConfigIndex2-r10 INTEGER (0..1023), + ri-ConfigIndex2-r10 INTEGER (0..1023) OPTIONAL -- Need OR + } + } OPTIONAL -- Need ON + } +} + + +CQI-ReportPeriodic-v1130 ::= SEQUENCE { + simultaneousAckNackAndCQI-Format3-r11 ENUMERATED {setup} OPTIONAL, -- Need OR + cqi-ReportPeriodicProcExtToReleaseList-r11 CQI-ReportPeriodicProcExtToReleaseList-r11 OPTIONAL, -- Need ON + cqi-ReportPeriodicProcExtToAddModList-r11 CQI-ReportPeriodicProcExtToAddModList-r11 OPTIONAL -- Need ON +} + +CQI-ReportPeriodic-v1310 ::= SEQUENCE { + cri-ReportConfig-r13 CRI-ReportConfig-r13 OPTIONAL, -- Need OR + simultaneousAckNackAndCQI-Format4-Format5-r13 ENUMERATED {setup} OPTIONAL-- Need OR +} + +CQI-ReportPeriodic-v1320 ::= SEQUENCE { + periodicityFactorWB-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR +} + +CQI-ReportPeriodicProcExtToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCQI-ProcExt-r11)) OF CQI-ReportPeriodicProcExt-r11 + +CQI-ReportPeriodicProcExtToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCQI-ProcExt-r11)) OF CQI-ReportPeriodicProcExtId-r11 + +CQI-ReportPeriodicProcExt-r11 ::= SEQUENCE { + cqi-ReportPeriodicProcExtId-r11 CQI-ReportPeriodicProcExtId-r11, + cqi-pmi-ConfigIndex-r11 INTEGER (0..1023), + cqi-FormatIndicatorPeriodic-r11 CHOICE { + widebandCQI-r11 SEQUENCE { + csi-ReportMode-r11 ENUMERATED {submode1, submode2} OPTIONAL -- Need OR + }, + subbandCQI-r11 SEQUENCE { + k INTEGER (1..4), + periodicityFactor-r11 ENUMERATED {n2, n4} + } + }, + ri-ConfigIndex-r11 INTEGER (0..1023) OPTIONAL, -- Need OR + csi-ConfigIndex-r11 CHOICE { + release NULL, + setup SEQUENCE { + cqi-pmi-ConfigIndex2-r11 INTEGER (0..1023), + ri-ConfigIndex2-r11 INTEGER (0..1023) OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + ..., + [[ cri-ReportConfig-r13 CRI-ReportConfig-r13 OPTIONAL -- Need ON + ]], + [[ periodicityFactorWB-r13 ENUMERATED {n2, n4} OPTIONAL -- Need ON + ]] +} + +CQI-ReportAperiodic-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-ReportModeAperiodic-r10 CQI-ReportModeAperiodic, + aperiodicCSI-Trigger-r10 SEQUENCE { + trigger1-r10 BIT STRING (SIZE (8)), + trigger2-r10 BIT STRING (SIZE (8)) + } OPTIONAL -- Need OR + } +} + +CQI-ReportAperiodic-v1250 ::= CHOICE { + release NULL, + setup SEQUENCE { + aperiodicCSI-Trigger-v1250 SEQUENCE { + trigger-SubframeSetIndicator-r12 ENUMERATED {s1, s2}, + trigger1-SubframeSetIndicator-r12 BIT STRING (SIZE (8)), + trigger2-SubframeSetIndicator-r12 BIT STRING (SIZE (8)) + } + } +} + +CQI-ReportAperiodic-v1310 ::= CHOICE { + release NULL, + setup SEQUENCE { + aperiodicCSI-Trigger-v1310 SEQUENCE { + trigger1-r13 BIT STRING (SIZE (32)), + trigger2-r13 BIT STRING (SIZE (32)), + trigger3-r13 BIT STRING (SIZE (32)), + trigger4-r13 BIT STRING (SIZE (32)), + trigger5-r13 BIT STRING (SIZE (32)), + trigger6-r13 BIT STRING (SIZE (32)) + } OPTIONAL, -- Need ON + aperiodicCSI-Trigger2-r13 CHOICE { + release NULL, + setup SEQUENCE { + trigger1-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger2-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger3-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger4-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger5-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger6-SubframeSetIndicator-r13 BIT STRING (SIZE (32)) + } + } OPTIONAL -- Need ON + } +} + +CQI-ReportAperiodicProc-r11 ::= SEQUENCE { + cqi-ReportModeAperiodic-r11 CQI-ReportModeAperiodic, + trigger01-r11 BOOLEAN, + trigger10-r11 BOOLEAN, + trigger11-r11 BOOLEAN +} + +CQI-ReportAperiodicProc-v1310 ::= SEQUENCE { + trigger001-r13 BOOLEAN, + trigger010-r13 BOOLEAN, + trigger011-r13 BOOLEAN, + trigger100-r13 BOOLEAN, + trigger101-r13 BOOLEAN, + trigger110-r13 BOOLEAN, + trigger111-r13 BOOLEAN +} + +CQI-ReportModeAperiodic ::= ENUMERATED { + rm12, rm20, rm22, rm30, rm31, + rm32-v1250, rm10-v1310, rm11-v1310 +} + +CQI-ReportBoth-r11 ::= SEQUENCE { + csi-IM-ConfigToReleaseList-r11 CSI-IM-ConfigToReleaseList-r11 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModList-r11 CSI-IM-ConfigToAddModList-r11 OPTIONAL, -- Need ON + csi-ProcessToReleaseList-r11 CSI-ProcessToReleaseList-r11 OPTIONAL, -- Need ON + csi-ProcessToAddModList-r11 CSI-ProcessToAddModList-r11 OPTIONAL -- Need ON +} + +CQI-ReportBoth-v1250 ::= SEQUENCE { + csi-IM-ConfigToReleaseListExt-r12 CSI-IM-ConfigId-v1250 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModListExt-r12 CSI-IM-ConfigExt-r12 OPTIONAL -- Need ON +} + +CQI-ReportBoth-v1310 ::= SEQUENCE { + csi-IM-ConfigToReleaseListExt-r13 CSI-IM-ConfigToReleaseListExt-r13 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModListExt-r13 CSI-IM-ConfigToAddModListExt-r13 OPTIONAL -- Need ON +} + +CSI-IM-ConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-Config-r11 + +CSI-IM-ConfigToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-IM-v1310)) OF CSI-IM-ConfigExt-r12 + +CSI-IM-ConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-ConfigId-r11 + +CSI-IM-ConfigToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-IM-v1310)) OF CSI-IM-ConfigId-v1310 + +CSI-ProcessToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF CSI-Process-r11 + +CSI-ProcessToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF CSI-ProcessId-r11 + +CQI-ReportBothProc-r11 ::= SEQUENCE { + ri-Ref-CSI-ProcessId-r11 CSI-ProcessId-r11 OPTIONAL, -- Need OR + pmi-RI-Report-r11 ENUMERATED {setup} OPTIONAL -- Need OR +} + +CRI-ReportConfig-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + cri-ConfigIndex-r13 CRI-ConfigIndex-r13, + cri-ConfigIndex2-r13 CRI-ConfigIndex-r13 OPTIONAL -- Need OR + } +} + +CRI-ConfigIndex-r13 ::= INTEGER (0..1023) + + +CQI-ReportPeriodicProcExtId-r11 ::= INTEGER (1..maxCQI-ProcExt-r11) + + +CrossCarrierSchedulingConfig-r10 ::= SEQUENCE { + schedulingCellInfo-r10 CHOICE { + own-r10 SEQUENCE { -- No cross carrier scheduling + cif-Presence-r10 BOOLEAN + }, + other-r10 SEQUENCE { -- Cross carrier scheduling + schedulingCellId-r10 ServCellIndex-r10, + pdsch-Start-r10 INTEGER (1..4) + } + } +} + +CrossCarrierSchedulingConfig-r13 ::= SEQUENCE { + schedulingCellInfo-r13 CHOICE { + own-r13 SEQUENCE { -- No cross carrier scheduling + cif-Presence-r13 BOOLEAN + }, + other-r13 SEQUENCE { -- Cross carrier scheduling + schedulingCellId-r13 ServCellIndex-r13, + pdsch-Start-r13 INTEGER (1..4), + cif-InSchedulingCell-r13 INTEGER (1..7) + } + } +} + + +CSI-IM-Config-r11 ::= SEQUENCE { + csi-IM-ConfigId-r11 CSI-IM-ConfigId-r11, + resourceConfig-r11 INTEGER (0..31), + subframeConfig-r11 INTEGER (0..154), + ..., + [[ interferenceMeasRestriction-r13 BOOLEAN OPTIONAL -- Need ON + ]] +} + +CSI-IM-ConfigExt-r12 ::= SEQUENCE { + csi-IM-ConfigId-v1250 CSI-IM-ConfigId-v1250, + resourceConfig-r12 INTEGER (0..31), + subframeConfig-r12 INTEGER (0..154), + ..., + [[ interferenceMeasRestriction-r13 BOOLEAN OPTIONAL, -- Need ON + csi-IM-ConfigId-v1310 CSI-IM-ConfigId-v1310 OPTIONAL -- Need ON + ]] +} + + +CSI-IM-ConfigId-r11 ::= INTEGER (1..maxCSI-IM-r11) +CSI-IM-ConfigId-r12 ::= INTEGER (1..maxCSI-IM-r12) +CSI-IM-ConfigId-v1250 ::= INTEGER (maxCSI-IM-r12) +CSI-IM-ConfigId-v1310 ::= INTEGER (minCSI-IM-r13..maxCSI-IM-r13) +CSI-IM-ConfigId-r13 ::= INTEGER (1..maxCSI-IM-r13) + + +CSI-Process-r11 ::= SEQUENCE { + csi-ProcessId-r11 CSI-ProcessId-r11, + csi-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11, + csi-IM-ConfigId-r11 CSI-IM-ConfigId-r11, + p-C-AndCBSRList-r11 P-C-AndCBSR-Pair-r13a, + cqi-ReportBothProc-r11 CQI-ReportBothProc-r11 OPTIONAL, -- Need OR + cqi-ReportPeriodicProcId-r11 INTEGER (0..maxCQI-ProcExt-r11) OPTIONAL, -- Need OR + cqi-ReportAperiodicProc-r11 CQI-ReportAperiodicProc-r11 OPTIONAL, -- Need OR + ..., + [[ alternativeCodebookEnabledFor4TXProc-r12 ENUMERATED {true} OPTIONAL, -- Need ON + csi-IM-ConfigIdList-r12 CHOICE { + release NULL, + setup SEQUENCE (SIZE (1..2)) OF CSI-IM-ConfigId-r12 + } OPTIONAL, -- Need ON + cqi-ReportAperiodicProc2-r12 CHOICE { + release NULL, + setup CQI-ReportAperiodicProc-r11 + } OPTIONAL -- Need ON + ]], + [[ cqi-ReportAperiodicProc-v1310 CHOICE { + release NULL, + setup CQI-ReportAperiodicProc-v1310 + } OPTIONAL, -- Need ON + cqi-ReportAperiodicProc2-v1310 CHOICE { + release NULL, + setup CQI-ReportAperiodicProc-v1310 + } OPTIONAL, -- Need ON + eMIMO-Type-r13 CSI-RS-ConfigEMIMO-r13 OPTIONAL -- Need ON + ]] +} + + +CSI-ProcessId-r11 ::= INTEGER (1..maxCSI-Proc-r11) + + +CSI-RS-Config-r10 ::= SEQUENCE { + csi-RS-r10 CHOICE { + release NULL, + setup SEQUENCE { + antennaPortsCount-r10 ENUMERATED {an1, an2, an4, an8}, + resourceConfig-r10 INTEGER (0..31), + subframeConfig-r10 INTEGER (0..154), + p-C-r10 INTEGER (-8..15) + } + } OPTIONAL, -- Need ON + zeroTxPowerCSI-RS-r10 ZeroTxPowerCSI-RS-Conf-r12 OPTIONAL -- Need ON +} + +CSI-RS-Config-v1250 ::= SEQUENCE { + zeroTxPowerCSI-RS2-r12 ZeroTxPowerCSI-RS-Conf-r12 OPTIONAL, -- Need ON + ds-ZeroTxPowerCSI-RS-r12 CHOICE { + release NULL, + setup SEQUENCE { + zeroTxPowerCSI-RS-List-r12 SEQUENCE (SIZE (1..maxDS-ZTP-CSI-RS-r12)) OF ZeroTxPowerCSI-RS-r12 + } + } OPTIONAL -- Need ON +} + +CSI-RS-Config-v1310 ::= SEQUENCE { + eMIMO-Type-r13 CSI-RS-ConfigEMIMO-r13 OPTIONAL -- Need ON +} + +ZeroTxPowerCSI-RS-Conf-r12 ::= CHOICE { + release NULL, + setup ZeroTxPowerCSI-RS-r12 +} + +ZeroTxPowerCSI-RS-r12 ::= SEQUENCE { + zeroTxPowerResourceConfigList-r12 BIT STRING (SIZE (16)), + zeroTxPowerSubframeConfig-r12 INTEGER (0..154) +} + + +CSI-RS-ConfigEMIMO-r13 ::= CHOICE { + release NULL, + setup CHOICE { + nonPrecoded-r13 CSI-RS-ConfigNonPrecoded-r13, + beamformed-r13 CSI-RS-ConfigBeamformed-r13 + } +} + +CSI-RS-ConfigNonPrecoded-r13 ::= SEQUENCE { + p-C-AndCBSRList-r13 P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR + codebookConfigN1-r13 ENUMERATED {n1, n2, n3, n4, n8}, + codebookConfigN2-r13 ENUMERATED {n1, n2, n3, n4, n8}, + codebookOverSamplingRateConfig-O1-r13 ENUMERATED {n4, n8} OPTIONAL, -- Need OR + codebookOverSamplingRateConfig-O2-r13 ENUMERATED {n4, n8} OPTIONAL, -- Need OR + codebookConfig-r13 INTEGER (1..4), + csi-IM-ConfigIdList-r13 SEQUENCE (SIZE (1..2)) OF CSI-IM-ConfigId-r13 OPTIONAL, -- Need OR + csi-RS-ConfigNZP-EMIMO-r13 CSI-RS-ConfigNZP-EMIMO-r13 OPTIONAL -- Need ON +} + +CSI-RS-ConfigBeamformed-r13 ::= SEQUENCE { + csi-RS-ConfigNZPIdListExt-r13 SEQUENCE (SIZE (1..7)) OF CSI-RS-ConfigNZPId-r13 OPTIONAL, -- Need OR + csi-IM-ConfigIdList-r13 SEQUENCE (SIZE (1..8)) OF CSI-IM-ConfigId-r13 OPTIONAL, -- Need OR + p-C-AndCBSR-PerResourceConfigList-r13 SEQUENCE (SIZE (1..8)) OF P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR + ace-For4Tx-PerResourceConfigList-r13 SEQUENCE (SIZE (1..7)) OF BOOLEAN OPTIONAL, -- Need OR + alternativeCodebookEnabledBeamformed-r13 ENUMERATED {true} OPTIONAL, -- Need OR + channelMeasRestriction-r13 ENUMERATED {on} OPTIONAL -- Need OR +} + + +CSI-RS-ConfigNZP-r11 ::= SEQUENCE { + csi-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11, + antennaPortsCount-r11 ENUMERATED {an1, an2, an4, an8}, + resourceConfig-r11 INTEGER (0..31), + subframeConfig-r11 INTEGER (0..154), + scramblingIdentity-r11 INTEGER (0..503), + qcl-CRS-Info-r11 SEQUENCE { + qcl-ScramblingIdentity-r11 INTEGER (0..503), + crs-PortsCount-r11 ENUMERATED {n1, n2, n4, spare1}, + mbsfn-SubframeConfigList-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList MBSFN-SubframeConfigList + } + } OPTIONAL -- Need ON + } OPTIONAL, -- Need OR + ..., + [[ csi-RS-ConfigNZPId-v1310 CSI-RS-ConfigNZPId-v1310 OPTIONAL -- Need ON + ]] +} + +CSI-RS-ConfigNZP-EMIMO-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + nzp-resourceConfigList-r13 SEQUENCE (SIZE (1..2)) OF NZP-ResourceConfig-r13, + cdmType-r13 ENUMERATED {cdm2, cdm4} OPTIONAL -- Need OR + } +} + +NZP-ResourceConfig-r13 ::= SEQUENCE { + resourceConfig-r13 ResourceConfig-r13, + ... +} + +ResourceConfig-r13 ::= INTEGER (0..31) + + +CSI-RS-ConfigNZPId-r11 ::= INTEGER (1..maxCSI-RS-NZP-r11) +CSI-RS-ConfigNZPId-v1310 ::= INTEGER (minCSI-RS-NZP-r13..maxCSI-RS-NZP-r13) +CSI-RS-ConfigNZPId-r13 ::= INTEGER (1..maxCSI-RS-NZP-r13) + + +CSI-RS-ConfigZP-r11 ::= SEQUENCE { + csi-RS-ConfigZPId-r11 CSI-RS-ConfigZPId-r11, + resourceConfigList-r11 BIT STRING (SIZE (16)), + subframeConfig-r11 INTEGER (0..154), + ... +} + + +CSI-RS-ConfigZPId-r11 ::= INTEGER (1..maxCSI-RS-ZP-r11) + + +DMRS-Config-r11 ::= CHOICE { + release NULL, + setup SEQUENCE { + scramblingIdentity-r11 INTEGER (0..503), + scramblingIdentity2-r11 INTEGER (0..503) + } +} +DMRS-Config-v1310 ::= SEQUENCE { + dmrs-tableAlt-r13 ENUMERATED {true} OPTIONAL -- Need OR +} + + +DRB-Identity ::= INTEGER (1..32) + + +EPDCCH-Config-r11 ::= SEQUENCE{ + config-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframePatternConfig-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframePattern-r11 MeasSubframePattern-r10 + } + } OPTIONAL, -- Need ON + startSymbol-r11 INTEGER (1..4) OPTIONAL, -- Need OP + setConfigToReleaseList-r11 EPDCCH-SetConfigToReleaseList-r11 OPTIONAL, -- Need ON + setConfigToAddModList-r11 EPDCCH-SetConfigToAddModList-r11 OPTIONAL -- Need ON + } + } +} + +EPDCCH-SetConfigToAddModList-r11 ::= SEQUENCE (SIZE(1..maxEPDCCH-Set-r11)) OF EPDCCH-SetConfig-r11 + +EPDCCH-SetConfigToReleaseList-r11 ::= SEQUENCE (SIZE(1..maxEPDCCH-Set-r11)) OF EPDCCH-SetConfigId-r11 + +EPDCCH-SetConfig-r11 ::= SEQUENCE { + setConfigId-r11 EPDCCH-SetConfigId-r11, + transmissionType-r11 ENUMERATED {localised, distributed}, + resourceBlockAssignment-r11 SEQUENCE{ + numberPRB-Pairs-r11 ENUMERATED {n2, n4, n8}, + resourceBlockAssignment-r11 BIT STRING (SIZE(4..38)) + }, + dmrs-ScramblingSequenceInt-r11 INTEGER (0..503), + pucch-ResourceStartOffset-r11 INTEGER (0..2047), + re-MappingQCL-ConfigId-r11 PDSCH-RE-MappingQCL-ConfigId-r11 OPTIONAL, -- Need OR + ..., + [[ csi-RS-ConfigZPId2-r12 CHOICE { + release NULL, + setup CSI-RS-ConfigZPId-r11 + } OPTIONAL -- Need ON + ]], + [[ numberPRB-Pairs-v1310 CHOICE { + release NULL, + setup ENUMERATED {n6} + } OPTIONAL, -- Need ON + mpdcch-config-r13 CHOICE { + release NULL, + setup SEQUENCE { + csi-NumRepetitionCE-r13 ENUMERATED {sf1, sf2, sf4, sf8, sf16, sf32}, + mpdcch-pdsch-HoppingConfig-r13 ENUMERATED {on,off}, + mpdcch-StartSF-UESS-r13 CHOICE { + fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, + v5, v8, v10}, tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10, + v20, spare1} + }, + mpdcch-NumRepetition-r13 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + mpdcch-Narrowband-r13 INTEGER (1.. maxAvailNarrowBands-r13) + } + } OPTIONAL -- Need ON + ]] +} + +EPDCCH-SetConfigId-r11 ::= INTEGER (0..1) + + +EIMTA-MainConfig-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + eimta-RNTI-r12 C-RNTI, + eimta-CommandPeriodicity-r12 ENUMERATED {sf10, sf20, sf40, sf80}, + eimta-CommandSubframeSet-r12 BIT STRING (SIZE(10)) + } +} + +EIMTA-MainConfigServCell-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + eimta-UL-DL-ConfigIndex-r12 INTEGER (1..5), + eimta-HARQ-ReferenceConfig-r12 ENUMERATED {sa2,sa4,sa5}, + mbsfn-SubframeConfigList-v1250 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList-r12 MBSFN-SubframeConfigList + } + } + } +} + + +LogicalChannelConfig ::= SEQUENCE { + ul-SpecificParameters SEQUENCE { + priority INTEGER (1..16), + prioritisedBitRate ENUMERATED { + kBps0, kBps8, kBps16, kBps32, kBps64, kBps128, + kBps256, infinity, kBps512-v1020, kBps1024-v1020, + kBps2048-v1020, spare5, spare4, spare3, spare2, + spare1}, + bucketSizeDuration ENUMERATED { + ms50, ms100, ms150, ms300, ms500, ms1000, spare2, + spare1}, + logicalChannelGroup INTEGER (0..3) OPTIONAL -- Need OR + } OPTIONAL, -- Cond UL + ..., + [[ logicalChannelSR-Mask-r9 ENUMERATED {setup} OPTIONAL -- Cond SRmask + ]], + [[ logicalChannelSR-Prohibit-r12 BOOLEAN OPTIONAL -- Need ON + ]] +} + + +LWA-Configuration-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + lwa-Config-r13 LWA-Config-r13 + } +} + +LWA-Config-r13 ::= SEQUENCE { + lwa-MobilityConfig-r13 WLAN-MobilityConfig-r13 OPTIONAL, -- Need ON + lwa-WT-Counter-r13 INTEGER (0..65535) OPTIONAL, -- Need ON + ... +} + + +LWIP-Configuration-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + lwip-Config-r13 LWIP-Config-r13 + } +} + +LWIP-Config-r13 ::= SEQUENCE { + lwip-MobilityConfig-r13 WLAN-MobilityConfig-r13 OPTIONAL, -- Need ON + tunnelConfigLWIP-r13 TunnelConfigLWIP-r13 OPTIONAL, -- Need ON + ... +} + + +MAC-MainConfig ::= SEQUENCE { + ul-SCH-Config SEQUENCE { + maxHARQ-Tx ENUMERATED { + n1, n2, n3, n4, n5, n6, n7, n8, + n10, n12, n16, n20, n24, n28, + spare2, spare1} OPTIONAL, -- Need ON + periodicBSR-Timer PeriodicBSR-Timer-r12 OPTIONAL, -- Need ON + retxBSR-Timer RetxBSR-Timer-r12, + ttiBundling BOOLEAN + } OPTIONAL, -- Need ON + drx-Config DRX-Config OPTIONAL, -- Need ON + timeAlignmentTimerDedicated TimeAlignmentTimer, + phr-Config CHOICE { + release NULL, + setup SEQUENCE { + periodicPHR-Timer ENUMERATED {sf10, sf20, sf50, sf100, sf200, + sf500, sf1000, infinity}, + prohibitPHR-Timer ENUMERATED {sf0, sf10, sf20, sf50, sf100, + sf200, sf500, sf1000}, + dl-PathlossChange ENUMERATED {dB1, dB3, dB6, infinity} + } + } OPTIONAL, -- Need ON + ..., + [[ sr-ProhibitTimer-r9 INTEGER (0..7) OPTIONAL -- Need ON + ]], + [[ mac-MainConfig-v1020 SEQUENCE { + sCellDeactivationTimer-r10 ENUMERATED { + rf2, rf4, rf8, rf16, rf32, rf64, rf128, + spare} OPTIONAL, -- Need OP + extendedBSR-Sizes-r10 ENUMERATED {setup} OPTIONAL, -- Need OR + extendedPHR-r10 ENUMERATED {setup} OPTIONAL -- Need OR + } OPTIONAL -- Need ON + ]], + [[ stag-ToReleaseList-r11 STAG-ToReleaseList-r11 OPTIONAL, -- Need ON + stag-ToAddModList-r11 STAG-ToAddModList-r11 OPTIONAL, -- Need ON + drx-Config-v1130 DRX-Config-v1130 OPTIONAL -- Need ON + ]], + [[ e-HARQ-Pattern-r12 BOOLEAN OPTIONAL, -- Need ON + dualConnectivityPHR CHOICE { + release NULL, + setup SEQUENCE { + phr-ModeOtherCG-r12 ENUMERATED {real, virtual} + } + } OPTIONAL, -- Need ON + logicalChannelSR-Config-r12 CHOICE { + release NULL, + setup SEQUENCE { + logicalChannelSR-ProhibitTimer-r12 ENUMERATED {sf20, sf40, sf64, sf128, sf512, sf1024, sf2560, spare1} + } + } OPTIONAL -- Need ON + ]], + [[ drx-Config-v1310 DRX-Config-v1310 OPTIONAL, -- Need ON + extendedPHR2-r13 BOOLEAN OPTIONAL, -- Need ON + eDRX-Config-CycleStartOffset-r13 CHOICE { + release NULL, + setup + CHOICE { + sf5120 INTEGER(0..1), + sf10240 INTEGER(0..3) + } + } OPTIONAL -- Need ON + ]], + [[ drx-Config-r13 CHOICE { + release NULL, + setup DRX-Config-r13 + } OPTIONAL -- Need ON + ]] +} + +MAC-MainConfigSCell-r11 ::= SEQUENCE { + stag-Id-r11 STAG-Id-r11 OPTIONAL, -- Need OP + ... +} + +DRX-Config ::= CHOICE { + release NULL, + setup SEQUENCE { + onDurationTimer ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200}, + drx-InactivityTimer ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200, psf300, psf500, psf750, + psf1280, psf1920, psf2560, psf0-v1020, + spare9, spare8, spare7, spare6, + spare5, spare4, spare3, spare2, + spare1}, + drx-RetransmissionTimer ENUMERATED { + psf1, psf2, psf4, psf6, psf8, psf16, + psf24, psf33}, + longDRX-CycleStartOffset CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf1280 INTEGER(0..1279), + sf2048 INTEGER(0..2047), + sf2560 INTEGER(0..2559) + }, + shortDRX SEQUENCE { + shortDRX-Cycle ENUMERATED { + sf2, sf5, sf8, sf10, sf16, sf20, + sf32, sf40, sf64, sf80, sf128, sf160, + sf256, sf320, sf512, sf640}, + drxShortCycleTimer INTEGER (1..16) + } OPTIONAL -- Need OR + } +} + +DRX-Config-v1130 ::= SEQUENCE { + drx-RetransmissionTimer-v1130 ENUMERATED {psf0-v1130} OPTIONAL, --Need OR + longDRX-CycleStartOffset-v1130 CHOICE { + sf60-v1130 INTEGER(0..59), + sf70-v1130 INTEGER(0..69) + } OPTIONAL, --Need OR + shortDRX-Cycle-v1130 ENUMERATED {sf4-v1130} OPTIONAL --Need OR +} +DRX-Config-v1310 ::= SEQUENCE { + longDRX-CycleStartOffset-v1310 SEQUENCE { + sf60-v1310 INTEGER(0..59) + } OPTIONAL --Need OR +} + +DRX-Config-r13 ::= SEQUENCE { + onDurationTimer-v1310 ENUMERATED {psf300, psf400, psf500, psf600, + psf800, psf1000, psf1200, psf1600} OPTIONAL, --Need OR + drx-RetransmissionTimer-v1310 ENUMERATED {psf40, psf64, psf80, psf96, psf112, + psf128, psf160, psf320} + OPTIONAL, --Need OR + drx-ULRetransmissionTimer-r13 ENUMERATED {psf0, psf1, psf2, psf4, psf6, psf8, psf16, + psf24, psf33, psf40, psf64, psf80, psf96, + psf112, psf128, psf160, psf320} + OPTIONAL --Need OR +} + +PeriodicBSR-Timer-r12 ::= ENUMERATED { + sf5, sf10, sf16, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, sf1280, sf2560, + infinity, spare1} + +RetxBSR-Timer-r12 ::= ENUMERATED { + sf320, sf640, sf1280, sf2560, sf5120, + sf10240, spare2, spare1} + +STAG-ToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-Id-r11 + +STAG-ToAddModList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-ToAddMod-r11 + +STAG-ToAddMod-r11 ::= SEQUENCE { + stag-Id-r11 STAG-Id-r11, + timeAlignmentTimerSTAG-r11 TimeAlignmentTimer, + ... +} + +STAG-Id-r11::= INTEGER (1..maxSTAG-r11) + + +P-C-AndCBSR-r11 ::= SEQUENCE { + p-C-r11 INTEGER (-8..15), + codebookSubsetRestriction-r11 BIT STRING +} + +P-C-AndCBSR-r13 ::= SEQUENCE { + p-C-r13 INTEGER (-8..15), + cbsr-Selection-r13 CHOICE{ + nonPrecoded-r13 SEQUENCE { + codebookSubsetRestriction1-r13 BIT STRING, + codebookSubsetRestriction2-r13 BIT STRING + }, + beamformedK1a-r13 SEQUENCE { + codebookSubsetRestriction3-r13 BIT STRING + }, + beamformedKN-r13 SEQUENCE { + codebookSubsetRestriction-r13 BIT STRING + } + }, + ... +} + +P-C-AndCBSR-Pair-r13a ::= SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r11 + +P-C-AndCBSR-Pair-r13 ::= SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r13 + + +PDCCH-ConfigSCell-r13 ::= SEQUENCE { + skipMonitoringDCI-format0-1A-r13 ENUMERATED {true} OPTIONAL -- Need OR +} + +PDCCH-CandidateReductionValue-r13 ::= ENUMERATED {n0, n33, n66, n100} + +PDCCH-CandidateReductions-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + pdcch-candidateReductionAL1-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL2-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL3-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL4-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL5-r13 PDCCH-CandidateReductionValue-r13 + } +} + + +PDCP-Config ::= SEQUENCE { + discardTimer ENUMERATED { + ms50, ms100, ms150, ms300, ms500, + ms750, ms1500, infinity + } OPTIONAL, -- Cond Setup + rlc-AM SEQUENCE { + statusReportRequired BOOLEAN + } OPTIONAL, -- Cond Rlc-AM + rlc-UM SEQUENCE { + pdcp-SN-Size ENUMERATED {len7bits, len12bits} + } OPTIONAL, -- Cond Rlc-UM + headerCompression CHOICE { + notUsed NULL, + rohc SEQUENCE { + maxCID INTEGER (1..16383) DEFAULT 15, + profiles SEQUENCE { + profile0x0001 BOOLEAN, + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0101 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + ... + } + }, + ..., + [[ rn-IntegrityProtection-r10 ENUMERATED {enabled} OPTIONAL -- Cond RN + ]], + [[ pdcp-SN-Size-v1130 ENUMERATED {len15bits} OPTIONAL -- Cond Rlc-AM2 + ]], + [[ ul-DataSplitDRB-ViaSCG-r12 BOOLEAN OPTIONAL, -- Need ON + t-Reordering-r12 ENUMERATED { + ms0, ms20, ms40, ms60, ms80, ms100, ms120, ms140, + ms160, ms180, ms200, ms220, ms240, ms260, ms280, ms300, + ms500, ms750, spare14, spare13, spare12, spare11, spare10, + spare9, spare8, spare7, spare6, spare5, spare4, spare3, + spare2, spare1} OPTIONAL -- Cond SetupS + ]], + [[ ul-DataSplitThreshold-r13 CHOICE { + release NULL, + setup ENUMERATED { + b0, b100, b200, b400, b800, b1600, b3200, b6400, b12800, + b25600, b51200, b102400, b204800, b409600, b819200, + spare1} + } OPTIONAL, -- Need ON + pdcp-SN-Size-v1310 ENUMERATED {len18bits} OPTIONAL, -- Cond Rlc-AM3 + statusFeedback-r13 CHOICE { + release NULL, + setup SEQUENCE { + statusPDU-TypeForPolling-r13 ENUMERATED {type1, type2} OPTIONAL, -- Need ON + statusPDU-Periodicity-Type1-r13 ENUMERATED { + ms5, ms10, ms20, ms30, ms40, ms50, ms60, ms70, ms80, ms90, + ms100, ms150, ms200, ms300, ms500, ms1000, ms2000, ms5000, + ms10000, ms20000, ms50000} OPTIONAL, -- Need ON + statusPDU-Periodicity-Type2-r13 ENUMERATED { + ms5, ms10, ms20, ms30, ms40, ms50, ms60, ms70, ms80, ms90, + ms100, ms150, ms200, ms300, ms500, ms1000, ms2000, ms5000, + ms10000, ms20000, ms50000} OPTIONAL, -- Need ON + statusPDU-Periodicity-Offset-r13 ENUMERATED { + ms1, ms2, ms5, ms10, ms25, ms50, ms100, ms250, ms500, + ms2500, ms5000, ms25000} OPTIONAL -- Need ON + } + } OPTIONAL -- Need ON + ]] + +} + + +PDSCH-ConfigCommon ::= SEQUENCE { + referenceSignalPower INTEGER (-60..50), + p-b INTEGER (0..3) +} + +PDSCH-ConfigCommon-v1310 ::= SEQUENCE { + pdsch-maxNumRepetitionCEmodeA-r13 ENUMERATED { + r16, r32 } OPTIONAL, -- Need OR + pdsch-maxNumRepetitionCEmodeB-r13 ENUMERATED { + r192, r256, r384, r512, r768, r1024, + r1536, r2048} OPTIONAL -- Need OR +} + +PDSCH-ConfigDedicated::= SEQUENCE { + p-a ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} +} + +PDSCH-ConfigDedicated-v1130 ::= SEQUENCE { + dmrs-ConfigPDSCH-r11 DMRS-Config-r11 OPTIONAL, -- Need ON + qcl-Operation ENUMERATED {typeA, typeB} OPTIONAL, -- Need OR + re-MappingQCLConfigToReleaseList-r11 RE-MappingQCLConfigToReleaseList-r11 OPTIONAL, -- Need ON + re-MappingQCLConfigToAddModList-r11 RE-MappingQCLConfigToAddModList-r11 OPTIONAL -- Need ON +} + +PDSCH-ConfigDedicated-v1280 ::= SEQUENCE { + tbsIndexAlt-r12 ENUMERATED {a26, a33} OPTIONAL -- Need OR +} + +PDSCH-ConfigDedicated-v1310 ::= SEQUENCE { + dmrs-ConfigPDSCH-v1310 DMRS-Config-v1310 OPTIONAL -- Need ON +} + +RE-MappingQCLConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxRE-MapQCL-r11)) OF PDSCH-RE-MappingQCL-Config-r11 + +RE-MappingQCLConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxRE-MapQCL-r11)) OF PDSCH-RE-MappingQCL-ConfigId-r11 + +PDSCH-RE-MappingQCL-Config-r11 ::= SEQUENCE { + pdsch-RE-MappingQCL-ConfigId-r11 PDSCH-RE-MappingQCL-ConfigId-r11, + optionalSetOfFields-r11 SEQUENCE { + crs-PortsCount-r11 ENUMERATED {n1, n2, n4, spare1}, + crs-FreqShift-r11 INTEGER (0..5), + mbsfn-SubframeConfigList-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList MBSFN-SubframeConfigList + } + } OPTIONAL, -- Need ON + pdsch-Start-r11 ENUMERATED {reserved, n1, n2, n3, n4, assigned} + } OPTIONAL, -- Need OP + csi-RS-ConfigZPId-r11 CSI-RS-ConfigZPId-r11, + qcl-CSI-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11 OPTIONAL, -- Need OR + ... +} + + +PDSCH-RE-MappingQCL-ConfigId-r11 ::= INTEGER (1..maxRE-MapQCL-r11) + + +PHICH-Config ::= SEQUENCE { + phich-Duration ENUMERATED {normal, extended}, + phich-Resource ENUMERATED {oneSixth, half, one, two} +} + + +PhysicalConfigDedicated ::= SEQUENCE { + pdsch-ConfigDedicated PDSCH-ConfigDedicated OPTIONAL, -- Need ON + pucch-ConfigDedicated PUCCH-ConfigDedicated OPTIONAL, -- Need ON + pusch-ConfigDedicated PUSCH-ConfigDedicated OPTIONAL, -- Need ON + uplinkPowerControlDedicated UplinkPowerControlDedicated OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUCCH TPC-PDCCH-Config OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUSCH TPC-PDCCH-Config OPTIONAL, -- Need ON + cqi-ReportConfig CQI-ReportConfig OPTIONAL, -- Cond CQI-r8 + soundingRS-UL-ConfigDedicated SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON + antennaInfo CHOICE { + explicitValue AntennaInfoDedicated, + defaultValue NULL + } OPTIONAL, -- Cond AI-r8 + schedulingRequestConfig SchedulingRequestConfig OPTIONAL, -- Need ON + ..., + [[ cqi-ReportConfig-v920 CQI-ReportConfig-v920 OPTIONAL, -- Cond CQI-r8 + antennaInfo-v920 AntennaInfoDedicated-v920 OPTIONAL -- Cond AI-r8 + ]], + [[ antennaInfo-r10 CHOICE { + explicitValue-r10 AntennaInfoDedicated-r10, + defaultValue NULL + } OPTIONAL, -- Cond AI-r10 + antennaInfoUL-r10 AntennaInfoUL-r10 OPTIONAL, -- Need ON + cif-Presence-r10 BOOLEAN OPTIONAL, -- Need ON + cqi-ReportConfig-r10 CQI-ReportConfig-r10 OPTIONAL, -- Cond CQI-r10 + csi-RS-Config-r10 CSI-RS-Config-r10 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1020 PUCCH-ConfigDedicated-v1020 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1020 PUSCH-ConfigDedicated-v1020 OPTIONAL, -- Need ON + schedulingRequestConfig-v1020 SchedulingRequestConfig-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1020 + SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-r10 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1020 + UplinkPowerControlDedicated-v1020 OPTIONAL -- Need ON + ]], + [[ additionalSpectrumEmissionCA-r10 CHOICE { + release NULL, + setup SEQUENCE { + additionalSpectrumEmissionPCell-r10 AdditionalSpectrumEmission + } + } OPTIONAL -- Need ON + ]], + [[ -- DL configuration as well as configuration applicable for DL and UL + csi-RS-ConfigNZPToReleaseList-r11 + CSI-RS-ConfigNZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModList-r11 + CSI-RS-ConfigNZPToAddModList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToReleaseList-r11 + CSI-RS-ConfigZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToAddModList-r11 CSI-RS-ConfigZPToAddModList-r11 OPTIONAL, -- Need ON + epdcch-Config-r11 EPDCCH-Config-r11 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1130 PDSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + -- UL configuration + cqi-ReportConfig-v1130 CQI-ReportConfig-v1130 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1130 PUCCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1130 PUSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1130 + UplinkPowerControlDedicated-v1130 OPTIONAL -- Need ON + ]], + [[ antennaInfo-v1250 AntennaInfoDedicated-v1250 OPTIONAL, -- Cond AI-r10 + eimta-MainConfig-r12 EIMTA-MainConfig-r12 OPTIONAL, -- Need ON + eimta-MainConfigPCell-r12 EIMTA-MainConfigServCell-r12 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1250 PUCCH-ConfigDedicated-v1250 OPTIONAL, -- Need ON + cqi-ReportConfigPCell-v1250 CQI-ReportConfig-v1250 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1250 + UplinkPowerControlDedicated-v1250 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1250 PUSCH-ConfigDedicated-v1250 OPTIONAL, -- Need ON + csi-RS-Config-v1250 CSI-RS-Config-v1250 OPTIONAL -- Need ON + ]], + [[ pdsch-ConfigDedicated-v1280 PDSCH-ConfigDedicated-v1280 OPTIONAL -- Need ON + ]], + [[ pdsch-ConfigDedicated-v1310 PDSCH-ConfigDedicated-v1310 OPTIONAL, -- Need ON + pucch-ConfigDedicated-r13 PUCCH-ConfigDedicated-r13 OPTIONAL, -- Need ON + pusch-ConfigDedicated-r13 PUSCH-ConfigDedicated-r13 OPTIONAL, -- Need ON + pdcch-CandidateReductions-r13 + PDCCH-CandidateReductions-r13 OPTIONAL, -- Need ON + cqi-ReportConfig-v1310 CQI-ReportConfig-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1310 + SoundingRS-UL-ConfigDedicated-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-v1310 + SoundingRS-UL-ConfigDedicatedAperiodic-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, -- Need ON + csi-RS-Config-v1310 CSI-RS-Config-v1310 OPTIONAL, -- Need ON + ce-Mode-r13 CHOICE { + release NULL, + setup ENUMERATED {ce-ModeA,ce-ModeB} + } OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModListExt-r13 CSI-RS-ConfigNZPToAddModListExt-r13 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToReleaseListExt-r13 CSI-RS-ConfigNZPToReleaseListExt-r13 OPTIONAL -- Need ON + ]], + [[ cqi-ReportConfig-v1320 CQI-ReportConfig-v1320 OPTIONAL -- Need ON + ]] +} + +PhysicalConfigDedicated-v1370 ::= SEQUENCE { + pucch-ConfigDedicated-v1370 PUCCH-ConfigDedicated-v1370 OPTIONAL -- Cond PUCCH-Format4or5 +} + +PhysicalConfigDedicatedSCell-r10 ::= SEQUENCE { + -- DL configuration as well as configuration applicable for DL and UL + nonUL-Configuration-r10 SEQUENCE { + antennaInfo-r10 + AntennaInfoDedicated-r10 OPTIONAL, -- Need ON + crossCarrierSchedulingConfig-r10 + CrossCarrierSchedulingConfig-r10 OPTIONAL, -- Need ON + csi-RS-Config-r10 CSI-RS-Config-r10 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-r10 PDSCH-ConfigDedicated OPTIONAL -- Need ON + } OPTIONAL, -- Cond SCellAdd + -- UL configuration + ul-Configuration-r10 SEQUENCE { + antennaInfoUL-r10 AntennaInfoUL-r10 OPTIONAL, -- Need ON + pusch-ConfigDedicatedSCell-r10 + PUSCH-ConfigDedicatedSCell-r10 OPTIONAL, -- Cond PUSCH-SCell1 + uplinkPowerControlDedicatedSCell-r10 + UplinkPowerControlDedicatedSCell-r10 OPTIONAL, -- Need ON + cqi-ReportConfigSCell-r10 CQI-ReportConfigSCell-r10 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-r10 + SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1020 + SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-r10 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL -- Need ON + } OPTIONAL, -- Cond CommonUL + ..., + [[ -- DL configuration as well as configuration applicable for DL and UL + csi-RS-ConfigNZPToReleaseList-r11 + CSI-RS-ConfigNZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModList-r11 + CSI-RS-ConfigNZPToAddModList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToReleaseList-r11 + CSI-RS-ConfigZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToAddModList-r11 + CSI-RS-ConfigZPToAddModList-r11 OPTIONAL, -- Need ON + epdcch-Config-r11 EPDCCH-Config-r11 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1130 PDSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + -- UL configuration + cqi-ReportConfig-v1130 CQI-ReportConfig-v1130 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1130 + PUSCH-ConfigDedicated-v1130 OPTIONAL, -- Cond PUSCH-SCell1 + uplinkPowerControlDedicatedSCell-v1130 + UplinkPowerControlDedicated-v1130 OPTIONAL -- Need ON + ]], + [[ antennaInfo-v1250 AntennaInfoDedicated-v1250 OPTIONAL, -- Need ON + eimta-MainConfigSCell-r12 + EIMTA-MainConfigServCell-r12 OPTIONAL, -- Need ON + cqi-ReportConfigSCell-v1250 CQI-ReportConfig-v1250 OPTIONAL, -- Need ON + uplinkPowerControlDedicatedSCell-v1250 + UplinkPowerControlDedicated-v1250 OPTIONAL, -- Need ON + csi-RS-Config-v1250 CSI-RS-Config-v1250 OPTIONAL -- Need ON + ]], + [[ pdsch-ConfigDedicated-v1280 PDSCH-ConfigDedicated-v1280 OPTIONAL -- Need ON + ]], + [[ pucch-Cell-r13 ENUMERATED {true} OPTIONAL, -- Cond PUCCH-SCell1 + pucch-SCell CHOICE{ + release NULL, + setup SEQUENCE { + pucch-ConfigDedicated-r13 + PUCCH-ConfigDedicated-r13 OPTIONAL, -- Need ON + schedulingRequestConfig-r13 + SchedulingRequestConfigSCell-r13 OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUCCH-SCell-r13 + TPC-PDCCH-ConfigSCell-r13 OPTIONAL, -- Need ON + pusch-ConfigDedicated-r13 + PUSCH-ConfigDedicated-r13 OPTIONAL, -- Cond PUSCH-SCell + uplinkPowerControlDedicated-r13 + UplinkPowerControlDedicatedSCell-v1310 OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + crossCarrierSchedulingConfig-r13 + CrossCarrierSchedulingConfig-r13 OPTIONAL, -- Cond Cross-Carrier-Config + pdcch-ConfigSCell-r13 PDCCH-ConfigSCell-r13 OPTIONAL, -- Need ON + cqi-ReportConfig-v1310 CQI-ReportConfig-v1310 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1310 PDSCH-ConfigDedicated-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1310 + SoundingRS-UL-ConfigDedicated-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-v1310 + SoundingRS-UL-ConfigDedicatedAperiodic-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, -- Need ON + csi-RS-Config-v1310 CSI-RS-Config-v1310 OPTIONAL, -- Need ON + laa-SCellConfiguration-r13 LAA-SCellConfiguration-r13 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModListExt-r13 CSI-RS-ConfigNZPToAddModListExt-r13 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToReleaseListExt-r13 CSI-RS-ConfigNZPToReleaseListExt-r13 OPTIONAL -- Need ON + ]], + [[ cqi-ReportConfig-v1320 CQI-ReportConfig-v1320 OPTIONAL -- Need ON + ]] +} + +PhysicalConfigDedicatedSCell-v1370 ::= SEQUENCE { + pucch-SCell-v1370 CHOICE{ + release NULL, + setup SEQUENCE { + pucch-ConfigDedicated-v1370 PUCCH-ConfigDedicated-v1370 OPTIONAL -- Cond PUCCH-Format4or5 + } + } +} + +LAA-SCellConfiguration-r13 ::= SEQUENCE { + subframeStartPosition-r13 ENUMERATED {s0, s07}, + laa-SCellSubframeConfig-r13 BIT STRING (SIZE(8)) +} + +CSI-RS-ConfigNZPToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r11)) OF CSI-RS-ConfigNZP-r11 + +CSI-RS-ConfigNZPToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-v1310)) OF CSI-RS-ConfigNZP-r11 + +CSI-RS-ConfigNZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r11)) OF CSI-RS-ConfigNZPId-r11 + +CSI-RS-ConfigNZPToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-v1310)) OF CSI-RS-ConfigNZPId-v1310 + +CSI-RS-ConfigZPToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZP-r11 + +CSI-RS-ConfigZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZPId-r11 + + +P-Max ::= INTEGER (-30..33) + + +PRACH-ConfigSIB ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + prach-ConfigInfo PRACH-ConfigInfo +} + +PRACH-ConfigSIB-v1310 ::= SEQUENCE { + rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsPrachInfoList-r13, + mpdcch-startSF-CSS-RA-r13 CHOICE { + fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, v5, v8, + v10}, + tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10, v20, spare} + } OPTIONAL, -- Cond MP + prach-HoppingOffset-r13 INTEGER (0..94) OPTIONAL, -- Need OR + prach-ParametersListCE-r13 PRACH-ParametersListCE-r13 +} + +PRACH-Config ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + prach-ConfigInfo PRACH-ConfigInfo OPTIONAL -- Need ON +} + +PRACH-Config-v1310 ::= SEQUENCE { + rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsPrachInfoList-r13 OPTIONAL, -- Cond MP + mpdcch-startSF-CSS-RA-r13 CHOICE { + fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, v5, v8, v10}, + tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10, v20, spare} + } OPTIONAL, -- Cond MP + prach-HoppingOffset-r13 INTEGER (0..94) OPTIONAL, -- Need OR + prach-ParametersListCE-r13 PRACH-ParametersListCE-r13 OPTIONAL, -- Cond MP + initial-CE-level-r13 INTEGER (0..3) OPTIONAL -- Need OR +} + +PRACH-ConfigSCell-r10 ::= SEQUENCE { + prach-ConfigIndex-r10 INTEGER (0..63) +} + +PRACH-ConfigInfo ::= SEQUENCE { + prach-ConfigIndex INTEGER (0..63), + highSpeedFlag BOOLEAN, + zeroCorrelationZoneConfig INTEGER (0..15), + prach-FreqOffset INTEGER (0..94) +} + +PRACH-ParametersListCE-r13 ::= SEQUENCE (SIZE(1..maxCE-Level-r13)) OF PRACH-ParametersCE-r13 + +PRACH-ParametersCE-r13 ::= SEQUENCE { + prach-ConfigIndex-r13 INTEGER (0..63), + prach-FreqOffset-r13 INTEGER (0..94), + prach-StartingSubframe-r13 ENUMERATED {sf2, sf4, sf8, sf16, sf32, sf64, sf128, + sf256} OPTIONAL, -- Need OP + maxNumPreambleAttemptCE-r13 + ENUMERATED {n3, n4, n5, n6, n7, n8, n10} OPTIONAL, -- Need OP + numRepetitionPerPreambleAttempt-r13 ENUMERATED {n1,n2,n4,n8,n16,n32,n64,n128}, + mpdcch-NarrowbandsToMonitor-r13 SEQUENCE (SIZE(1..2)) OF + INTEGER (1..maxAvailNarrowBands-r13), + mpdcch-NumRepetition-RA-r13 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + prach-HoppingConfig-r13 ENUMERATED {on,off} +} + +RSRP-ThresholdsPrachInfoList-r13 ::= SEQUENCE (SIZE(1..3)) OF RSRP-Range + + +PresenceAntennaPort1 ::= BOOLEAN + + +PUCCH-ConfigCommon ::= SEQUENCE { + deltaPUCCH-Shift ENUMERATED {ds1, ds2, ds3}, + nRB-CQI INTEGER (0..98), + nCS-AN INTEGER (0..7), + n1PUCCH-AN INTEGER (0..2047) +} + +PUCCH-ConfigCommon-v1310 ::= SEQUENCE { + n1PUCCH-AN-InfoList-r13 N1PUCCH-AN-InfoList-r13 OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level0-r13 ENUMERATED {n1, n2, n4, n8} OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level1-r13 ENUMERATED {n1, n2, n4, n8} OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level2-r13 ENUMERATED {n4, n8, n16, n32} OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level3-r13 ENUMERATED {n4, n8, n16, n32} OPTIONAL -- Need OR +} + +PUCCH-ConfigDedicated ::= SEQUENCE { + ackNackRepetition CHOICE{ + release NULL, + setup SEQUENCE { + repetitionFactor ENUMERATED {n2, n4, n6, spare1}, + n1PUCCH-AN-Rep INTEGER (0..2047) + } + }, + tdd-AckNackFeedbackMode ENUMERATED {bundling, multiplexing} OPTIONAL -- Cond TDD +} + +PUCCH-ConfigDedicated-v1020 ::= SEQUENCE { + pucch-Format-r10 CHOICE { + format3-r10 PUCCH-Format3-Conf-r13, + channelSelection-r10 SEQUENCE { + n1PUCCH-AN-CS-r10 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-List-r10 SEQUENCE (SIZE (1..2)) OF N1PUCCH-AN-CS-r10 + } + } OPTIONAL -- Need ON + } + } OPTIONAL, -- Need OR + twoAntennaPortActivatedPUCCH-Format1a1b-r10 ENUMERATED {true} OPTIONAL, -- Need OR + simultaneousPUCCH-PUSCH-r10 ENUMERATED {true} OPTIONAL, -- Need OR + n1PUCCH-AN-RepP1-r10 INTEGER (0..2047) OPTIONAL -- Need OR +} + +PUCCH-ConfigDedicated-v1130 ::= SEQUENCE { + n1PUCCH-AN-CS-v1130 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-ListP1-r11 SEQUENCE (SIZE (2..4)) OF INTEGER (0..2047) + } + } OPTIONAL, -- Need ON + nPUCCH-Param-r11 CHOICE { + release NULL, + setup SEQUENCE { + nPUCCH-Identity-r11 INTEGER (0..503), + n1PUCCH-AN-r11 INTEGER (0..2047) + } + } OPTIONAL -- Need ON +} + +PUCCH-ConfigDedicated-v1250 ::= SEQUENCE { + nkaPUCCH-Param-r12 CHOICE { + release NULL, + setup SEQUENCE { + nkaPUCCH-AN-r12 INTEGER (0..2047) + } + } +} + +PUCCH-ConfigDedicated-r13 ::= SEQUENCE { +--Release 8 + ackNackRepetition-r13 CHOICE{ + release NULL, + setup SEQUENCE { + repetitionFactor-r13 ENUMERATED {n2, n4, n6, spare1}, + n1PUCCH-AN-Rep-r13 INTEGER (0..2047) + } + }, + tdd-AckNackFeedbackMode-r13 ENUMERATED {bundling, multiplexing} OPTIONAL, -- Cond TDD +--Release 10 + pucch-Format-r13 CHOICE { + format3-r13 SEQUENCE { + n3PUCCH-AN-List-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) OPTIONAL, -- Need ON + twoAntennaPortActivatedPUCCH-Format3-r13 CHOICE { + release NULL, + setup SEQUENCE { + n3PUCCH-AN-ListP1-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) + } + } OPTIONAL -- Need ON + }, + channelSelection-r13 SEQUENCE { + n1PUCCH-AN-CS-r13 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-List-r13 SEQUENCE (SIZE (1..2)) OF N1PUCCH-AN-CS-r10, + n1PUCCH-AN-CS-ListP1-r13 SEQUENCE (SIZE (2..4)) OF INTEGER (0..2047) + } + } OPTIONAL -- Need ON + }, + format4-r13 SEQUENCE { + format4-resourceConfiguration-r13 SEQUENCE (SIZE (4)) OF Format4-resource-r13, + format4-MultiCSI-resourceConfiguration-r13 SEQUENCE (SIZE (1..2)) OF Format4-resource-r13 OPTIONAL -- Need OR + }, + format5-r13 SEQUENCE { + format5-resourceConfiguration-r13 SEQUENCE (SIZE (4)) OF Format5-resource-r13, + format5-MultiCSI-resourceConfiguration-r13 Format5-resource-r13 OPTIONAL -- Need OR + } + } OPTIONAL, -- Need OR + twoAntennaPortActivatedPUCCH-Format1a1b-r13 ENUMERATED {true} OPTIONAL, -- Need OR + simultaneousPUCCH-PUSCH-r13 ENUMERATED {true} OPTIONAL, -- Need OR + n1PUCCH-AN-RepP1-r13 INTEGER (0..2047) OPTIONAL, -- Need OR +--Release 11 + nPUCCH-Param-r13 CHOICE { + release NULL, + setup SEQUENCE { + nPUCCH-Identity-r13 INTEGER (0..503), + n1PUCCH-AN-r13 INTEGER (0..2047) + } + } OPTIONAL, -- Need ON +--Release 12 + nkaPUCCH-Param-r13 CHOICE { + release NULL, + setup SEQUENCE { + nkaPUCCH-AN-r13 INTEGER (0..2047) + } + } OPTIONAL, -- Need ON +--Release 13 + spatialBundlingPUCCH-r13 BOOLEAN, + spatialBundlingPUSCH-r13 BOOLEAN, + harq-TimingTDD-r13 BOOLEAN, + codebooksizeDetermination-r13 ENUMERATED {dai,cc} OPTIONAL, -- Need OR + maximumPayloadCoderate-r13 INTEGER (0..7) OPTIONAL, -- Need OR + pucch-NumRepetitionCE-r13 CHOICE { + release NULL, + setup CHOICE { + modeA SEQUENCE { + pucch-NumRepetitionCE-format1-r13 ENUMERATED {r1, r2, r4, r8}, + pucch-NumRepetitionCE-format2-r13 ENUMERATED {r1, r2, r4, r8} + }, + modeB SEQUENCE { + pucch-NumRepetitionCE-format1-r13 ENUMERATED {r4, r8, r16, r32}, + pucch-NumRepetitionCE-format2-r13 ENUMERATED {r4, r8, r16, r32} + } + } + } OPTIONAL --Need ON +} + +PUCCH-ConfigDedicated-v1370 ::= SEQUENCE { + pucch-Format-v1370 CHOICE { + release NULL, + setup PUCCH-Format3-Conf-r13 + } +} + +PUCCH-Format3-Conf-r13 ::= SEQUENCE { + n3PUCCH-AN-List-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) OPTIONAL, -- Need ON + twoAntennaPortActivatedPUCCH-Format3-r13 CHOICE { + release NULL, + setup SEQUENCE { + n3PUCCH-AN-ListP1-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) + } + } OPTIONAL -- Need ON +} + +Format4-resource-r13 ::= SEQUENCE { + startingPRB-format4-r13 INTEGER (0..109), + numberOfPRB-format4-r13 INTEGER (0..7) +} + +Format5-resource-r13 ::= SEQUENCE { + startingPRB-format5-r13 INTEGER (0..109), + cdm-index-format5-r13 INTEGER (0..1) +} + + + +N1PUCCH-AN-CS-r10 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + +N1PUCCH-AN-InfoList-r13 ::= SEQUENCE (SIZE(1..maxCE-Level-r13)) OF INTEGER (0..2047) + + +PUSCH-ConfigCommon ::= SEQUENCE { + pusch-ConfigBasic SEQUENCE { + n-SB INTEGER (1..4), + hoppingMode ENUMERATED {interSubFrame, intraAndInterSubFrame}, + pusch-HoppingOffset INTEGER (0..98), + enable64QAM BOOLEAN + }, + ul-ReferenceSignalsPUSCH UL-ReferenceSignalsPUSCH +} + +PUSCH-ConfigCommon-v1270 ::= SEQUENCE { + enable64QAM-v1270 ENUMERATED {true} +} + +PUSCH-ConfigCommon-v1310 ::= SEQUENCE { + pusch-maxNumRepetitionCEmodeA-r13 ENUMERATED { + r8, r16, r32 } OPTIONAL, -- Need OR + pusch-maxNumRepetitionCEmodeB-r13 ENUMERATED { + r192, r256, r384, r512, r768, r1024, + r1536, r2048} OPTIONAL, -- Need OR + pusch-HoppingOffset-v1310 + INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicated ::= SEQUENCE { + betaOffset-ACK-Index INTEGER (0..15), + betaOffset-RI-Index INTEGER (0..15), + betaOffset-CQI-Index INTEGER (0..15) +} + +PUSCH-ConfigDedicated-v1020 ::= SEQUENCE { + betaOffsetMC-r10 SEQUENCE { + betaOffset-ACK-Index-MC-r10 INTEGER (0..15), + betaOffset-RI-Index-MC-r10 INTEGER (0..15), + betaOffset-CQI-Index-MC-r10 INTEGER (0..15) + } OPTIONAL, -- Need OR + groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicated-v1130 ::= SEQUENCE { + pusch-DMRS-r11 CHOICE { + release NULL, + setup SEQUENCE { + nPUSCH-Identity-r11 INTEGER (0..509), + nDMRS-CSH-Identity-r11 INTEGER (0..509) + } + } +} + +PUSCH-ConfigDedicated-v1250::= SEQUENCE { + uciOnPUSCH CHOICE { + release NULL, + setup SEQUENCE { + betaOffset-ACK-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffset-RI-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffset-CQI-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffsetMC-r12 SEQUENCE { + betaOffset-ACK-Index-MC-SubframeSet2-r12 INTEGER (0..15), + betaOffset-RI-Index-MC-SubframeSet2-r12 INTEGER (0..15), + betaOffset-CQI-Index-MC-SubframeSet2-r12 INTEGER (0..15) + } OPTIONAL -- Need OR + } + } +} +PUSCH-ConfigDedicated-r13 ::= SEQUENCE { + betaOffset-ACK-Index-r13 INTEGER (0..15), + betaOffset2-ACK-Index-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-r13 INTEGER (0..15), + betaOffset-CQI-Index-r13 INTEGER (0..15), + betaOffsetMC-r13 SEQUENCE { + betaOffset-ACK-Index-MC-r13 INTEGER (0..15), + betaOffset2-ACK-Index-MC-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-MC-r13 INTEGER (0..15), + betaOffset-CQI-Index-MC-r13 INTEGER (0..15) + } OPTIONAL, -- Need OR + groupHoppingDisabled-r13 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r13 ENUMERATED {true} OPTIONAL, -- Need OR + pusch-DMRS-r11 CHOICE { + release NULL, + setup SEQUENCE { + nPUSCH-Identity-r13 INTEGER (0..509), + nDMRS-CSH-Identity-r13 INTEGER (0..509) + } + } OPTIONAL, -- Need ON + uciOnPUSCH CHOICE { + release NULL, + setup SEQUENCE { + betaOffset-ACK-Index-SubframeSet2-r13 INTEGER (0..15), + betaOffset2-ACK-Index-SubframeSet2-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-SubframeSet2-r13 INTEGER (0..15), + betaOffset-CQI-Index-SubframeSet2-r13 INTEGER (0..15), + betaOffsetMC-r12 SEQUENCE { + betaOffset-ACK-Index-MC-SubframeSet2-r13 INTEGER (0..15), + betaOffset2-ACK-Index-MC-SubframeSet2-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-MC-SubframeSet2-r13 INTEGER (0..15), + betaOffset-CQI-Index-MC-SubframeSet2-r13 INTEGER (0..15) + } OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + pusch-HoppingConfig-r13 ENUMERATED {on} OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicatedSCell-r10 ::= SEQUENCE { + groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR +} + +UL-ReferenceSignalsPUSCH ::= SEQUENCE { + groupHoppingEnabled BOOLEAN, + groupAssignmentPUSCH INTEGER (0..29), + sequenceHoppingEnabled BOOLEAN, + cyclicShift INTEGER (0..7) +} + + +RACH-ConfigCommon ::= SEQUENCE { + preambleInfo SEQUENCE { + numberOfRA-Preambles ENUMERATED { + n4, n8, n12, n16, n20, n24, n28, + n32, n36, n40, n44, n48, n52, n56, + n60, n64}, + preamblesGroupAConfig SEQUENCE { + sizeOfRA-PreamblesGroupA ENUMERATED { + n4, n8, n12, n16, n20, n24, n28, + n32, n36, n40, n44, n48, n52, n56, + n60}, + messageSizeGroupA ENUMERATED {b56, b144, b208, b256}, + messagePowerOffsetGroupB ENUMERATED { + minusinfinity, dB0, dB5, dB8, dB10, dB12, + dB15, dB18}, + ... + } OPTIONAL -- Need OP + }, + powerRampingParameters PowerRampingParameters, + ra-SupervisionInfo SEQUENCE { + preambleTransMax PreambleTransMax, + ra-ResponseWindowSize ENUMERATED { + sf2, sf3, sf4, sf5, sf6, sf7, + sf8, sf10}, + mac-ContentionResolutionTimer ENUMERATED { + sf8, sf16, sf24, sf32, sf40, sf48, + sf56, sf64} + }, + maxHARQ-Msg3Tx INTEGER (1..8), + ..., + [[ preambleTransMax-CE-r13 PreambleTransMax OPTIONAL, -- Need OR + rach-CE-LevelInfoList-r13 RACH-CE-LevelInfoList-r13 OPTIONAL -- Need OR + ]] +} + +RACH-ConfigCommon-v1250 ::= SEQUENCE { + txFailParams-r12 SEQUENCE { + connEstFailCount-r12 ENUMERATED {n1, n2, n3, n4}, + connEstFailOffsetValidity-r12 ENUMERATED {s30, s60, s120, s240, + s300, s420, s600, s900}, + connEstFailOffset-r12 INTEGER (0..15) OPTIONAL -- Need OP + } +} + +RACH-ConfigCommonSCell-r11 ::= SEQUENCE { + powerRampingParameters-r11 PowerRampingParameters, + ra-SupervisionInfo-r11 SEQUENCE { + preambleTransMax-r11 PreambleTransMax + }, + ... +} + +RACH-CE-LevelInfoList-r13 ::= SEQUENCE (SIZE (1..maxCE-Level-r13)) OF RACH-CE-LevelInfo-r13 + +RACH-CE-LevelInfo-r13 ::= SEQUENCE { + preambleMappingInfo-r13 SEQUENCE { + firstPreamble-r13 INTEGER(0..63), + lastPreamble-r13 INTEGER(0..63) + }, + ra-ResponseWindowSize-r13 ENUMERATED {sf20, sf50, sf80, sf120, sf180, + sf240, sf320, sf400}, + + mac-ContentionResolutionTimer-r13 ENUMERATED {sf80, sf100, sf120, + sf160, sf200, sf240, sf480, sf960}, + rar-HoppingConfig-r13 ENUMERATED {on,off}, + ... +} + +PowerRampingParameters ::= SEQUENCE { + powerRampingStep ENUMERATED {dB0, dB2,dB4, dB6}, + preambleInitialReceivedTargetPower ENUMERATED { + dBm-120, dBm-118, dBm-116, dBm-114, dBm-112, + dBm-110, dBm-108, dBm-106, dBm-104, dBm-102, + dBm-100, dBm-98, dBm-96, dBm-94, + dBm-92, dBm-90} +} + +PreambleTransMax ::= ENUMERATED { + n3, n4, n5, n6, n7, n8, n10, n20, n50, + n100, n200} + + +RACH-ConfigDedicated ::= SEQUENCE { + ra-PreambleIndex INTEGER (0..63), + ra-PRACH-MaskIndex INTEGER (0..15) +} + + +RadioResourceConfigCommonSIB ::= SEQUENCE { + rach-ConfigCommon RACH-ConfigCommon, + bcch-Config BCCH-Config, + pcch-Config PCCH-Config, + prach-Config PRACH-ConfigSIB, + pdsch-ConfigCommon PDSCH-ConfigCommon, + pusch-ConfigCommon PUSCH-ConfigCommon, + pucch-ConfigCommon PUCCH-ConfigCommon, + soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon, + uplinkPowerControlCommon UplinkPowerControlCommon, + ul-CyclicPrefixLength UL-CyclicPrefixLength, + ..., + [[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need OR + ]], + [[ rach-ConfigCommon-v1250 RACH-ConfigCommon-v1250 OPTIONAL -- Need OR + ]], + [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR + ]], + [[ bcch-Config-v1310 BCCH-Config-v1310 OPTIONAL, -- Need OR + pcch-Config-v1310 PCCH-Config-v1310 OPTIONAL, -- Need OR + freqHoppingParameters-r13 FreqHoppingParameters-r13 OPTIONAL, -- Need OR + pdsch-ConfigCommon-v1310 PDSCH-ConfigCommon-v1310 OPTIONAL, -- Need OR + pusch-ConfigCommon-v1310 PUSCH-ConfigCommon-v1310 OPTIONAL, -- Need OR + prach-ConfigCommon-v1310 PRACH-ConfigSIB-v1310 OPTIONAL, -- Need OR + pucch-ConfigCommon-v1310 PUCCH-ConfigCommon-v1310 OPTIONAL -- Need OR + ]] +} + +RadioResourceConfigCommon ::= SEQUENCE { + rach-ConfigCommon RACH-ConfigCommon OPTIONAL, -- Need ON + prach-Config PRACH-Config, + pdsch-ConfigCommon PDSCH-ConfigCommon OPTIONAL, -- Need ON + pusch-ConfigCommon PUSCH-ConfigCommon, + phich-Config PHICH-Config OPTIONAL, -- Need ON + pucch-ConfigCommon PUCCH-ConfigCommon OPTIONAL, -- Need ON + soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon OPTIONAL, -- Need ON + uplinkPowerControlCommon UplinkPowerControlCommon OPTIONAL, -- Need ON + antennaInfoCommon AntennaInfoCommon OPTIONAL, -- Need ON + p-Max P-Max OPTIONAL, -- Need OP + tdd-Config TDD-Config OPTIONAL, -- Cond TDD + ul-CyclicPrefixLength UL-CyclicPrefixLength, + ..., + [[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need ON + ]], + [[ tdd-Config-v1130 TDD-Config-v1130 OPTIONAL -- Cond TDD3 + ]], + [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR + ]], + [[ + prach-Config-v1310 PRACH-Config-v1310 OPTIONAL, -- Need ON + freqHoppingParameters-r13 FreqHoppingParameters-r13 OPTIONAL, -- Need ON + pdsch-ConfigCommon-v1310 PDSCH-ConfigCommon-v1310 OPTIONAL, -- Need ON + pucch-ConfigCommon-v1310 PUCCH-ConfigCommon-v1310 OPTIONAL, -- Need ON + pusch-ConfigCommon-v1310 PUSCH-ConfigCommon-v1310 OPTIONAL, -- Need ON + uplinkPowerControlCommon-v1310 UplinkPowerControlCommon-v1310 OPTIONAL -- Need ON + ]] +} + +RadioResourceConfigCommonPSCell-r12 ::= SEQUENCE { + basicFields-r12 RadioResourceConfigCommonSCell-r10, + pucch-ConfigCommon-r12 PUCCH-ConfigCommon, + rach-ConfigCommon-r12 RACH-ConfigCommon, + uplinkPowerControlCommonPSCell-r12 UplinkPowerControlCommonPSCell-r12, + ..., + [[ uplinkPowerControlCommonPSCell-v1310 + UplinkPowerControlCommon-v1310 OPTIONAL -- Need ON + ]] +} + +RadioResourceConfigCommonPSCell-v12f0 ::= SEQUENCE { + basicFields-v12f0 RadioResourceConfigCommonSCell-v10l0 +} + +RadioResourceConfigCommonSCell-r10 ::= SEQUENCE { + -- DL configuration as well as configuration applicable for DL and UL + nonUL-Configuration-r10 SEQUENCE { + -- 1: Cell characteristics + dl-Bandwidth-r10 ENUMERATED {n6, n15, n25, n50, n75, n100}, + -- 2: Physical configuration, general + antennaInfoCommon-r10 AntennaInfoCommon, + mbsfn-SubframeConfigList-r10 MBSFN-SubframeConfigList OPTIONAL, -- Need OR + -- 3: Physical configuration, control + phich-Config-r10 PHICH-Config, + -- 4: Physical configuration, physical channels + pdsch-ConfigCommon-r10 PDSCH-ConfigCommon, + tdd-Config-r10 TDD-Config OPTIONAL -- Cond TDDSCell + }, + -- UL configuration + ul-Configuration-r10 SEQUENCE { + ul-FreqInfo-r10 SEQUENCE { + ul-CarrierFreq-r10 ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth-r10 ENUMERATED {n6, n15, + n25, n50, n75, n100} OPTIONAL, -- Need OP + additionalSpectrumEmissionSCell-r10 AdditionalSpectrumEmission + }, + p-Max-r10 P-Max OPTIONAL, -- Need OP + uplinkPowerControlCommonSCell-r10 UplinkPowerControlCommonSCell-r10, + -- A special version of IE UplinkPowerControlCommon may be introduced + -- 3: Physical configuration, control + soundingRS-UL-ConfigCommon-r10 SoundingRS-UL-ConfigCommon, + ul-CyclicPrefixLength-r10 UL-CyclicPrefixLength, + -- 4: Physical configuration, physical channels + prach-ConfigSCell-r10 PRACH-ConfigSCell-r10 OPTIONAL, -- Cond TDD-OR-NoR11 + pusch-ConfigCommon-r10 PUSCH-ConfigCommon + } OPTIONAL, -- Need OR + ..., + [[ ul-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Need OP + ]], + [[ rach-ConfigCommonSCell-r11 RACH-ConfigCommonSCell-r11 OPTIONAL, -- Cond ULSCell + prach-ConfigSCell-r11 PRACH-Config OPTIONAL, -- Cond UL + tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD2 + uplinkPowerControlCommonSCell-v1130 + UplinkPowerControlCommonSCell-v1130 OPTIONAL -- Cond UL + ]], + [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR + ]], + [[ pucch-ConfigCommon-r13 PUCCH-ConfigCommon OPTIONAL, -- Cond UL + uplinkPowerControlCommonSCell-v1310 + UplinkPowerControlCommonSCell-v1310 OPTIONAL -- Cond UL + ]] +} + +RadioResourceConfigCommonSCell-v10l0 ::= SEQUENCE { + -- UL configuration + ul-Configuration-v10l0 SEQUENCE { + additionalSpectrumEmissionSCell-v10l0 AdditionalSpectrumEmission-v10l0 + } +} + +BCCH-Config ::= SEQUENCE { + modificationPeriodCoeff ENUMERATED {n2, n4, n8, n16} +} + +BCCH-Config-v1310 ::= SEQUENCE { + modificationPeriodCoeff-v1310 ENUMERATED {n64} +} + +FreqHoppingParameters-r13 ::= SEQUENCE { + dummy ENUMERATED {nb2, nb4} OPTIONAL, + dummy2 CHOICE { + interval-FDD-r13 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-r13 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL, + dummy3 CHOICE { + interval-FDD-r13 ENUMERATED {int2, int4, int8, int16}, + interval-TDD-r13 ENUMERATED { int5, int10, int20, int40} + } OPTIONAL, + interval-ULHoppingConfigCommonModeA-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-r13 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL, -- Cond MP-A + interval-ULHoppingConfigCommonModeB-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int2, int4, int8, int16}, + interval-TDD-r13 ENUMERATED { int5, int10, int20, int40} + } OPTIONAL, -- Cond MP-B + dummy4 INTEGER (1..maxAvailNarrowBands-r13) + OPTIONAL +} + +PCCH-Config ::= SEQUENCE { + defaultPagingCycle ENUMERATED { + rf32, rf64, rf128, rf256}, + nB ENUMERATED { + fourT, twoT, oneT, halfT, quarterT, oneEighthT, + oneSixteenthT, oneThirtySecondT} +} + +PCCH-Config-v1310 ::= SEQUENCE { + paging-narrowBands-r13 INTEGER (1..maxAvailNarrowBands-r13), + mpdcch-NumRepetition-Paging-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, r256}, + nB-v1310 ENUMERATED {one64thT, one128thT, one256thT} + OPTIONAL -- Need OR +} + +UL-CyclicPrefixLength ::= ENUMERATED {len1, len2} + + +RadioResourceConfigDedicated ::= SEQUENCE { + srb-ToAddModList SRB-ToAddModList OPTIONAL, -- Cond HO-Conn + drb-ToAddModList DRB-ToAddModList OPTIONAL, -- Cond HO-toEUTRA + drb-ToReleaseList DRB-ToReleaseList OPTIONAL, -- Need ON + mac-MainConfig CHOICE { + explicitValue MAC-MainConfig, + defaultValue NULL + } OPTIONAL, -- Cond HO-toEUTRA2 + sps-Config SPS-Config OPTIONAL, -- Need ON + physicalConfigDedicated PhysicalConfigDedicated OPTIONAL, -- Need ON + ..., + [[ rlf-TimersAndConstants-r9 RLF-TimersAndConstants-r9 OPTIONAL -- Need ON + ]], + [[ measSubframePatternPCell-r10 MeasSubframePatternPCell-r10 OPTIONAL -- Need ON + ]], + [[ neighCellsCRS-Info-r11 NeighCellsCRS-Info-r11 OPTIONAL -- Need ON + ]], + [[ naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL -- Need ON + ]], + [[ neighCellsCRS-Info-r13 NeighCellsCRS-Info-r13 OPTIONAL, -- Cond CRSIM + rlf-TimersAndConstants-r13 RLF-TimersAndConstants-r13 OPTIONAL -- Need ON + ]] +} + +RadioResourceConfigDedicated-v1370 ::= SEQUENCE { + physicalConfigDedicated-v1370 PhysicalConfigDedicated-v1370 OPTIONAL -- Need ON +} + +RadioResourceConfigDedicatedPSCell-r12 ::= SEQUENCE { + -- UE specific configuration extensions applicable for an PSCell + physicalConfigDedicatedPSCell-r12 PhysicalConfigDedicated OPTIONAL, -- Need ON + sps-Config-r12 SPS-Config OPTIONAL, -- Need ON + naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL, -- Need ON + ..., + [[ neighCellsCRS-InfoPSCell-r13 NeighCellsCRS-Info-r13 OPTIONAL -- Need ON + ]] +} + +RadioResourceConfigDedicatedPSCell-v1370 ::= SEQUENCE { + physicalConfigDedicatedPSCell-v1370 PhysicalConfigDedicated-v1370 OPTIONAL -- Need ON +} + +RadioResourceConfigDedicatedSCG-r12 ::= SEQUENCE { + drb-ToAddModListSCG-r12 DRB-ToAddModListSCG-r12 OPTIONAL, -- Need ON + mac-MainConfigSCG-r12 MAC-MainConfig OPTIONAL, -- Need ON + rlf-TimersAndConstantsSCG-r12 RLF-TimersAndConstantsSCG-r12 OPTIONAL, -- Need ON + ... +} + +RadioResourceConfigDedicatedSCell-r10 ::= SEQUENCE { + -- UE specific configuration extensions applicable for an SCell + physicalConfigDedicatedSCell-r10 PhysicalConfigDedicatedSCell-r10 OPTIONAL, -- Need ON + ..., + [[ mac-MainConfigSCell-r11 MAC-MainConfigSCell-r11 OPTIONAL -- Cond SCellAdd + ]], + [[ naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL -- Need ON + ]], + [[ neighCellsCRS-InfoSCell-r13 NeighCellsCRS-Info-r13 OPTIONAL -- Need ON + ]], + [[ physicalConfigDedicatedSCell-v1370 PhysicalConfigDedicatedSCell-v1370 OPTIONAL -- Need ON + ]] + +} + +SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod + +SRB-ToAddMod ::= SEQUENCE { + srb-Identity INTEGER (1..2), + rlc-Config CHOICE { + explicitValue RLC-Config, + defaultValue NULL + } OPTIONAL, -- Cond Setup + logicalChannelConfig CHOICE { + explicitValue LogicalChannelConfig, + defaultValue NULL + } OPTIONAL, -- Cond Setup + ... +} + +DRB-ToAddModList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod + +DRB-ToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddModSCG-r12 + +DRB-ToAddMod ::= SEQUENCE { + eps-BearerIdentity INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity DRB-Identity, + pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP + rlc-Config RLC-Config OPTIONAL, -- Cond SetupM + logicalChannelIdentity INTEGER (3..10) OPTIONAL, -- Cond DRB-SetupM + logicalChannelConfig LogicalChannelConfig OPTIONAL, -- Cond SetupM + ..., + [[ drb-TypeChange-r12 ENUMERATED {toMCG} OPTIONAL, -- Need OP + rlc-Config-v1250 RLC-Config-v1250 OPTIONAL -- Need ON + ]], + [[ rlc-Config-v1310 RLC-Config-v1310 OPTIONAL, -- Need ON + drb-TypeLWA-r13 BOOLEAN OPTIONAL, -- Need ON + drb-TypeLWIP-r13 ENUMERATED {lwip, lwip-DL-only, + lwip-UL-only, eutran} OPTIONAL -- Need ON + ]] +} + +DRB-ToAddModSCG-r12 ::= SEQUENCE { + drb-Identity-r12 DRB-Identity, + drb-Type-r12 CHOICE { + split-r12 NULL, + scg-r12 SEQUENCE { + eps-BearerIdentity-r12 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + pdcp-Config-r12 PDCP-Config OPTIONAL -- Cond PDCP-S + } + } OPTIONAL, -- Cond SetupS2 + rlc-ConfigSCG-r12 RLC-Config OPTIONAL, -- Cond SetupS + rlc-Config-v1250 RLC-Config-v1250 OPTIONAL, -- Need ON + logicalChannelIdentitySCG-r12 INTEGER (3..10) OPTIONAL, -- Cond DRB-SetupS + logicalChannelConfigSCG-r12 LogicalChannelConfig OPTIONAL, -- Cond SetupS + ... +} + +DRB-ToReleaseList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity + +MeasSubframePatternPCell-r10 ::= CHOICE { + release NULL, + setup MeasSubframePattern-r10 +} + +NeighCellsCRS-Info-r11 ::= CHOICE { + release NULL, + setup CRS-AssistanceInfoList-r11 +} + +CRS-AssistanceInfoList-r11 ::= SEQUENCE (SIZE (1..maxCellReport)) OF CRS-AssistanceInfo-r11 + +CRS-AssistanceInfo-r11 ::= SEQUENCE { + physCellId-r11 PhysCellId, + antennaPortsCount-r11 ENUMERATED {an1, an2, an4, spare1}, + mbsfn-SubframeConfigList-r11 MBSFN-SubframeConfigList, + ... +} + +NeighCellsCRS-Info-r13 ::= CHOICE { + release NULL, + setup CRS-AssistanceInfoList-r13 +} + +CRS-AssistanceInfoList-r13 ::= SEQUENCE (SIZE (1..maxCellReport)) OF CRS-AssistanceInfo-r13 + +CRS-AssistanceInfo-r13 ::= SEQUENCE { + physCellId-r13 PhysCellId, + antennaPortsCount-r13 ENUMERATED {an1, an2, an4, spare1}, + mbsfn-SubframeConfigList-r13 MBSFN-SubframeConfigList OPTIONAL, -- Need ON + ... +} + +NAICS-AssistanceInfo-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + neighCellsToReleaseList-r12 NeighCellsToReleaseList-r12 OPTIONAL , -- Need ON + neighCellsToAddModList-r12 NeighCellsToAddModList-r12 OPTIONAL, -- Need ON + servCellp-a-r12 P-a OPTIONAL -- Need ON + } +} + +NeighCellsToReleaseList-r12 ::= SEQUENCE (SIZE (1..maxNeighCell-r12)) OF PhysCellId + +NeighCellsToAddModList-r12 ::= SEQUENCE (SIZE (1..maxNeighCell-r12)) OF NeighCellsInfo-r12 + +NeighCellsInfo-r12 ::= SEQUENCE { + physCellId-r12 PhysCellId, + p-b-r12 INTEGER (0..3), + crs-PortsCount-r12 ENUMERATED {n1, n2, n4, spare}, + mbsfn-SubframeConfig-r12 MBSFN-SubframeConfigList OPTIONAL, -- Need ON + p-aList-r12 SEQUENCE (SIZE (1..maxP-a-PerNeighCell-r12)) OF P-a, + transmissionModeList-r12 BIT STRING (SIZE(8)), + resAllocGranularity-r12 INTEGER (1..4), + ... +} +P-a ::= ENUMERATED { dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} + + +RCLWI-Configuration-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + rclwi-Config-r13 RCLWI-Config-r13 + } +} + +RCLWI-Config-r13 ::= SEQUENCE { + command CHOICE { + steerToWLAN-r13 SEQUENCE { + mobilityConfig-r13 WLAN-Id-List-r12 + }, + steerToLTE-r13 NULL + }, + ... +} + + +RLC-Config ::= CHOICE { + am SEQUENCE { + ul-AM-RLC UL-AM-RLC, + dl-AM-RLC DL-AM-RLC + }, + um-Bi-Directional SEQUENCE { + ul-UM-RLC UL-UM-RLC, + dl-UM-RLC DL-UM-RLC + }, + um-Uni-Directional-UL SEQUENCE { + ul-UM-RLC UL-UM-RLC + }, + um-Uni-Directional-DL SEQUENCE { + dl-UM-RLC DL-UM-RLC + }, + ... +} + +RLC-Config-v1250 ::= SEQUENCE { + ul-extended-RLC-LI-Field-r12 BOOLEAN, + dl-extended-RLC-LI-Field-r12 BOOLEAN +} + +RLC-Config-v1310 ::= SEQUENCE { + ul-extended-RLC-AM-SN-r13 BOOLEAN, + dl-extended-RLC-AM-SN-r13 BOOLEAN, + pollPDU-v1310 PollPDU-v1310 OPTIONAL -- Need OR +} + +UL-AM-RLC ::= SEQUENCE { + t-PollRetransmit T-PollRetransmit, + pollPDU PollPDU, + pollByte PollByte, + maxRetxThreshold ENUMERATED { + t1, t2, t3, t4, t6, t8, t16, t32} +} + +DL-AM-RLC ::= SEQUENCE { + t-Reordering T-Reordering, + t-StatusProhibit T-StatusProhibit +} + +UL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength +} + +DL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength, + t-Reordering T-Reordering +} + +SN-FieldLength ::= ENUMERATED {size5, size10} + +T-PollRetransmit ::= ENUMERATED { + ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, ms800-v1310, + ms1000-v1310, ms2000-v1310, ms4000-v1310, + spare5, spare4, spare3, spare2, spare1} + +PollPDU ::= ENUMERATED { + p4, p8, p16, p32, p64, p128, p256, pInfinity} + +PollPDU-v1310 ::= ENUMERATED { + p512, p1024, p2048, p4096, p6144, p8192, p12288, p16384} + +PollByte ::= ENUMERATED { + kB25, kB50, kB75, kB100, kB125, kB250, kB375, + kB500, kB750, kB1000, kB1250, kB1500, kB2000, + kB3000, kBinfinity, spare1} + +T-Reordering ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms110, + ms120, ms130, ms140, ms150, ms160, ms170, + ms180, ms190, ms200, ms1600-v1310} + +T-StatusProhibit ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, ms800-v1310, + ms1000-v1310, ms1200-v1310, ms1600-v1310, ms2000-v1310, ms2400-v1310, spare2, + spare1} + + +RLF-TimersAndConstants-r9 ::= CHOICE { + release NULL, + setup SEQUENCE { + t301-r9 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t310-r9 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n310-r9 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311-r9 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311-r9 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ... + } +} + +RLF-TimersAndConstants-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + t301-v1310 ENUMERATED { + ms2500, ms3000, ms3500, ms4000, ms5000, + ms6000, ms8000, ms10000}, + ..., + [[ t310-v1330 ENUMERATED {ms4000, ms6000} OPTIONAL -- Need ON + ]] + } +} + +RLF-TimersAndConstantsSCG-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + t313-r12 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n313-r12 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + n314-r12 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ... + } +} + + +RN-SubframeConfig-r10 ::= SEQUENCE { + subframeConfigPattern-r10 CHOICE { + subframeConfigPatternFDD-r10 BIT STRING (SIZE(8)), + subframeConfigPatternTDD-r10 INTEGER (0..31) + } OPTIONAL, -- Need ON + rpdcch-Config-r10 SEQUENCE { + resourceAllocationType-r10 ENUMERATED {type0, type1, type2Localized, type2Distributed, + spare4, spare3, spare2, spare1}, + resourceBlockAssignment-r10 CHOICE { + type01-r10 CHOICE { + nrb6-r10 BIT STRING (SIZE(6)), + nrb15-r10 BIT STRING (SIZE(8)), + nrb25-r10 BIT STRING (SIZE(13)), + nrb50-r10 BIT STRING (SIZE(17)), + nrb75-r10 BIT STRING (SIZE(19)), + nrb100-r10 BIT STRING (SIZE(25)) + }, + type2-r10 CHOICE { + nrb6-r10 BIT STRING (SIZE(5)), + nrb15-r10 BIT STRING (SIZE(7)), + nrb25-r10 BIT STRING (SIZE(9)), + nrb50-r10 BIT STRING (SIZE(11)), + nrb75-r10 BIT STRING (SIZE(12)), + nrb100-r10 BIT STRING (SIZE(13)) + }, + ... + }, + demodulationRS-r10 CHOICE { + interleaving-r10 ENUMERATED {crs}, + noInterleaving-r10 ENUMERATED {crs, dmrs} + }, + pdsch-Start-r10 INTEGER (1..3), + pucch-Config-r10 CHOICE { + tdd CHOICE { + channelSelectionMultiplexingBundling SEQUENCE { + n1PUCCH-AN-List-r10 SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + }, + fallbackForFormat3 SEQUENCE { + n1PUCCH-AN-P0-r10 INTEGER (0..2047), + n1PUCCH-AN-P1-r10 INTEGER (0..2047) OPTIONAL -- Need OR + } + }, + fdd SEQUENCE { + n1PUCCH-AN-P0-r10 INTEGER (0..2047), + n1PUCCH-AN-P1-r10 INTEGER (0..2047) OPTIONAL -- Need OR + } + }, + ... + } OPTIONAL, -- Need ON + ... +} + + +SchedulingRequestConfig ::= CHOICE { + release NULL, + setup SEQUENCE { + sr-PUCCH-ResourceIndex INTEGER (0..2047), + sr-ConfigIndex INTEGER (0..157), + dsr-TransMax ENUMERATED { + n4, n8, n16, n32, n64, spare3, spare2, spare1} + } +} + +SchedulingRequestConfig-v1020 ::= SEQUENCE { + sr-PUCCH-ResourceIndexP1-r10 INTEGER (0..2047) OPTIONAL -- Need OR +} + +SchedulingRequestConfigSCell-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + sr-PUCCH-ResourceIndex-r13 INTEGER (0..2047), + sr-PUCCH-ResourceIndexP1-r13 INTEGER (0..2047) OPTIONAL, -- Need OR + sr-ConfigIndex-r13 INTEGER (0..157), + dsr-TransMax-r13 ENUMERATED { + n4, n8, n16, n32, n64, spare3, spare2, spare1} + } + +} + + +SoundingRS-UL-ConfigCommon ::= CHOICE { + release NULL, + setup SEQUENCE { + srs-BandwidthConfig ENUMERATED {bw0, bw1, bw2, bw3, bw4, bw5, bw6, bw7}, + srs-SubframeConfig ENUMERATED { + sc0, sc1, sc2, sc3, sc4, sc5, sc6, sc7, + sc8, sc9, sc10, sc11, sc12, sc13, sc14, sc15}, + ackNackSRS-SimultaneousTransmission BOOLEAN, + srs-MaxUpPts ENUMERATED {true} OPTIONAL -- Cond TDD + } +} + +SoundingRS-UL-ConfigDedicated ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-Bandwidth ENUMERATED {bw0, bw1, bw2, bw3}, + srs-HoppingBandwidth ENUMERATED {hbw0, hbw1, hbw2, hbw3}, + freqDomainPosition INTEGER (0..23), + duration BOOLEAN, + srs-ConfigIndex INTEGER (0..1023), + transmissionComb INTEGER (0..1), + cyclicShift ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7} + } +} + +SoundingRS-UL-ConfigDedicated-v1020 ::= SEQUENCE { + srs-AntennaPort-r10 SRS-AntennaPort +} + +SoundingRS-UL-ConfigDedicated-v1310 ::= CHOICE{ + release NULL, + setup SEQUENCE { + transmissionComb-v1310 INTEGER (2..3) OPTIONAL, -- Need OR + cyclicShift-v1310 ENUMERATED {cs8, cs9, cs10, cs11} OPTIONAL, -- Need OR + transmissionCombNum-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR + } +} + +SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-UpPtsAdd-r13 ENUMERATED {sym2, sym4}, + srs-Bandwidth-r13 ENUMERATED {bw0, bw1, bw2, bw3}, + srs-HoppingBandwidth-r13 ENUMERATED {hbw0, hbw1, hbw2, hbw3}, + freqDomainPosition-r13 INTEGER (0..23), + duration-r13 BOOLEAN, + srs-ConfigIndex-r13 INTEGER (0..1023), + transmissionComb-r13 INTEGER (0..3), + cyclicShift-r13 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, + cs8, cs9, cs10, cs11}, + srs-AntennaPort-r13 SRS-AntennaPort, + transmissionCombNum-r13 ENUMERATED {n2, n4} + } +} + +SoundingRS-UL-ConfigDedicatedAperiodic-r10 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-ConfigIndexAp-r10 INTEGER (0..31), + srs-ConfigApDCI-Format4-r10 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-r10 OPTIONAL,--Need ON + srs-ActivateAp-r10 CHOICE { + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format0-r10 SRS-ConfigAp-r10, + srs-ConfigApDCI-Format1a2b2c-r10 SRS-ConfigAp-r10, + ... + } + } OPTIONAL -- Need ON + } +} + +SoundingRS-UL-ConfigDedicatedAperiodic-v1310 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format4-v1310 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-v1310 OPTIONAL,--Need ON + srs-ActivateAp-v1310 CHOICE { + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format0-v1310 SRS-ConfigAp-v1310 OPTIONAL, -- Need ON + srs-ConfigApDCI-Format1a2b2c-v1310 SRS-ConfigAp-v1310 OPTIONAL -- Need ON + } + } OPTIONAL -- Need ON + } +} + +SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-UpPtsAdd-r13 ENUMERATED {sym2, sym4}, + srs-ConfigIndexAp-r13 INTEGER (0..31), + srs-ConfigApDCI-Format4-r13 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-r13 OPTIONAL,--Need ON + srs-ActivateAp-r13 CHOICE { + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format0-r13 SRS-ConfigAp-r13, + srs-ConfigApDCI-Format1a2b2c-r13 SRS-ConfigAp-r13 + } + } OPTIONAL -- Need ON + } +} + +SRS-ConfigAp-r10 ::= SEQUENCE { + srs-AntennaPortAp-r10 SRS-AntennaPort, + srs-BandwidthAp-r10 ENUMERATED {bw0, bw1, bw2, bw3}, + freqDomainPositionAp-r10 INTEGER (0..23), + transmissionCombAp-r10 INTEGER (0..1), + cyclicShiftAp-r10 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7} +} + +SRS-ConfigAp-v1310 ::= SEQUENCE { + transmissionCombAp-v1310 INTEGER (2..3) OPTIONAL, -- Need OR + cyclicShiftAp-v1310 ENUMERATED {cs8, cs9, cs10, cs11} OPTIONAL, -- Need OR + transmissionCombNum-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR +} + +SRS-ConfigAp-r13 ::= SEQUENCE { + srs-AntennaPortAp-r13 SRS-AntennaPort, + srs-BandwidthAp-r13 ENUMERATED {bw0, bw1, bw2, bw3}, + freqDomainPositionAp-r13 INTEGER (0..23), + transmissionCombAp-r13 INTEGER (0..3), + cyclicShiftAp-r13 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, + cs8, cs9, cs10, cs11}, + transmissionCombNum-r13 ENUMERATED {n2, n4} +} + +SRS-AntennaPort ::= ENUMERATED {an1, an2, an4, spare1} + + +SPS-Config ::= SEQUENCE { + semiPersistSchedC-RNTI C-RNTI OPTIONAL, -- Need OR + sps-ConfigDL SPS-ConfigDL OPTIONAL, -- Need ON + sps-ConfigUL SPS-ConfigUL OPTIONAL -- Need ON +} + +SPS-ConfigDL ::= CHOICE{ + release NULL, + setup SEQUENCE { + semiPersistSchedIntervalDL ENUMERATED { + sf10, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, spare6, + spare5, spare4, spare3, spare2, + spare1}, + numberOfConfSPS-Processes INTEGER (1..8), + n1PUCCH-AN-PersistentList N1PUCCH-AN-PersistentList, + ..., + [[ twoAntennaPortActivated-r10 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-PersistentListP1-r10 N1PUCCH-AN-PersistentList + } + } OPTIONAL -- Need ON + ]] + } +} + +SPS-ConfigUL ::= CHOICE { + release NULL, + setup SEQUENCE { + semiPersistSchedIntervalUL ENUMERATED { + sf10, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, spare6, + spare5, spare4, spare3, spare2, + spare1}, + implicitReleaseAfter ENUMERATED {e2, e3, e4, e8}, + p0-Persistent SEQUENCE { + p0-NominalPUSCH-Persistent INTEGER (-126..24), + p0-UE-PUSCH-Persistent INTEGER (-8..7) + } OPTIONAL, -- Need OP + twoIntervalsConfig ENUMERATED {true} OPTIONAL, -- Cond TDD + ..., + [[ p0-PersistentSubframeSet2-r12 CHOICE { + release NULL, + setup SEQUENCE { + p0-NominalPUSCH-PersistentSubframeSet2-r12 INTEGER (-126..24), + p0-UE-PUSCH-PersistentSubframeSet2-r12 INTEGER (-8..7) + } + } OPTIONAL -- Need ON + ]], + [[ numberOfConfUlSPS-Processes-r13 INTEGER (1..8) OPTIONAL -- Need OR + ]] + } +} + +N1PUCCH-AN-PersistentList ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + + +TDD-Config ::= SEQUENCE { + subframeAssignment ENUMERATED { + sa0, sa1, sa2, sa3, sa4, sa5, sa6}, + specialSubframePatterns ENUMERATED { + ssp0, ssp1, ssp2, ssp3, ssp4,ssp5, ssp6, ssp7, + ssp8} +} + +TDD-Config-v1130 ::= SEQUENCE { + specialSubframePatterns-v1130 ENUMERATED {ssp7,ssp9} +} + +TDD-ConfigSL-r12 ::= SEQUENCE { + subframeAssignmentSL-r12 ENUMERATED { + none, sa0, sa1, sa2, sa3, sa4, sa5, sa6} +} + + +TimeAlignmentTimer ::= ENUMERATED { + sf500, sf750, sf1280, sf1920, sf2560, sf5120, + sf10240, infinity} + +TPC-PDCCH-Config ::= CHOICE { + release NULL, + setup SEQUENCE { + tpc-RNTI BIT STRING (SIZE (16)), + tpc-Index TPC-Index + } +} + +TPC-PDCCH-ConfigSCell-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + tpc-Index-PUCCH-SCell-r13 TPC-Index + } +} + +TPC-Index ::= CHOICE { + indexOfFormat3 INTEGER (1..15), + indexOfFormat3A INTEGER (1..31) +} + + +TunnelConfigLWIP-r13 ::= SEQUENCE { + ip-Address-r13 IP-Address-r13, + ike-Identity-r13 IKE-Identity-r13, + ..., + [[ lwip-Counter-r13 INTEGER (0..65535) OPTIONAL -- Cond LWIP-Setup + ]] +} + +IKE-Identity-r13 ::= SEQUENCE { + idI-r13 OCTET STRING +} + +IP-Address-r13 ::= CHOICE { + ipv4-r13 BIT STRING (SIZE (32)), + ipv6-r13 BIT STRING (SIZE (128)) +} + + +UplinkPowerControlCommon ::= SEQUENCE { + p0-NominalPUSCH INTEGER (-126..24), + alpha Alpha-r12, + p0-NominalPUCCH INTEGER (-127..-96), + deltaFList-PUCCH DeltaFList-PUCCH, + deltaPreambleMsg3 INTEGER (-1..6) +} + +UplinkPowerControlCommon-v1020 ::= SEQUENCE { + deltaF-PUCCH-Format3-r10 ENUMERATED {deltaF-1, deltaF0, deltaF1, deltaF2, + deltaF3, deltaF4, deltaF5, deltaF6}, + deltaF-PUCCH-Format1bCS-r10 ENUMERATED {deltaF1, deltaF2, spare2, spare1} +} + +UplinkPowerControlCommon-v1310 ::= SEQUENCE { + deltaF-PUCCH-Format4-r13 ENUMERATED {deltaF16, deltaF15, deltaF14,deltaF13, deltaF12, + deltaF11, deltaF10, spare1} OPTIONAL, -- Need OR + deltaF-PUCCH-Format5-13 ENUMERATED { deltaF13, deltaF12, deltaF11, deltaF10, deltaF9, + deltaF8, deltaF7, spare1} OPTIONAL -- Need OR +} + +UplinkPowerControlCommonPSCell-r12 ::= SEQUENCE { +-- For uplink power control the additional/ missing fields are signalled (compared to SCell) + deltaF-PUCCH-Format3-r12 ENUMERATED {deltaF-1, deltaF0, deltaF1, deltaF2, + deltaF3, deltaF4, deltaF5, deltaF6}, + deltaF-PUCCH-Format1bCS-r12 ENUMERATED {deltaF1, deltaF2, spare2, spare1}, + p0-NominalPUCCH-r12 INTEGER (-127..-96), + deltaFList-PUCCH-r12 DeltaFList-PUCCH +} + + +UplinkPowerControlCommonSCell-r10 ::= SEQUENCE { + p0-NominalPUSCH-r10 INTEGER (-126..24), + alpha-r10 Alpha-r12 +} + +UplinkPowerControlCommonSCell-v1130 ::= SEQUENCE { + deltaPreambleMsg3-r11 INTEGER (-1..6) +} + +UplinkPowerControlCommonSCell-v1310 ::= SEQUENCE { +-- For uplink power control the additional/ missing fields are signalled (compared to SCell) + p0-NominalPUCCH INTEGER (-127..-96), + deltaFList-PUCCH DeltaFList-PUCCH, + deltaF-PUCCH-Format3-r12 ENUMERATED {deltaF-1, deltaF0, deltaF1, + deltaF2, deltaF3, deltaF4, deltaF5, + deltaF6} OPTIONAL, -- Need OR + deltaF-PUCCH-Format1bCS-r12 ENUMERATED {deltaF1, deltaF2, + spare2, spare1} OPTIONAL, -- Need OR + deltaF-PUCCH-Format4-r13 ENUMERATED {deltaF16, deltaF15, deltaF14, + deltaF13, deltaF12, deltaF11, deltaF10, + spare1} OPTIONAL, -- Need OR + deltaF-PUCCH-Format5-13 ENUMERATED { deltaF13, deltaF12, deltaF11, + deltaF10, deltaF9, deltaF8, deltaF7, + spare1} OPTIONAL -- Need OR +} + +UplinkPowerControlDedicated ::= SEQUENCE { + p0-UE-PUSCH INTEGER (-8..7), + deltaMCS-Enabled ENUMERATED {en0, en1}, + accumulationEnabled BOOLEAN, + p0-UE-PUCCH INTEGER (-8..7), + pSRS-Offset INTEGER (0..15), + filterCoefficient FilterCoefficient DEFAULT fc4 +} + +UplinkPowerControlDedicated-v1020 ::= SEQUENCE { + deltaTxD-OffsetListPUCCH-r10 DeltaTxD-OffsetListPUCCH-r10 OPTIONAL, -- Need OR + pSRS-OffsetAp-r10 INTEGER (0..15) OPTIONAL -- Need OR +} + +UplinkPowerControlDedicated-v1130 ::= SEQUENCE { + pSRS-Offset-v1130 INTEGER (16..31) OPTIONAL, -- Need OR + pSRS-OffsetAp-v1130 INTEGER (16..31) OPTIONAL, -- Need OR + deltaTxD-OffsetListPUCCH-v1130 DeltaTxD-OffsetListPUCCH-v1130 OPTIONAL -- Need OR +} + +UplinkPowerControlDedicated-v1250 ::= SEQUENCE { + set2PowerControlParameter CHOICE { + release NULL, + setup SEQUENCE { + tpc-SubframeSet-r12 BIT STRING (SIZE(10)), + p0-NominalPUSCH-SubframeSet2-r12 INTEGER (-126..24), + alpha-SubframeSet2-r12 Alpha-r12, + p0-UE-PUSCH-SubframeSet2-r12 INTEGER (-8..7) + } + } +} + +UplinkPowerControlDedicatedSCell-r10 ::= SEQUENCE { + p0-UE-PUSCH-r10 INTEGER (-8..7), + deltaMCS-Enabled-r10 ENUMERATED {en0, en1}, + accumulationEnabled-r10 BOOLEAN, + pSRS-Offset-r10 INTEGER (0..15), + pSRS-OffsetAp-r10 INTEGER (0..15) OPTIONAL, -- Need OR + filterCoefficient-r10 FilterCoefficient DEFAULT fc4, + pathlossReferenceLinking-r10 ENUMERATED {pCell, sCell} +} + +UplinkPowerControlDedicatedSCell-v1310 ::= SEQUENCE { +--Release 8 + p0-UE-PUCCH INTEGER (-8..7), +--Release 10 + deltaTxD-OffsetListPUCCH-r10 DeltaTxD-OffsetListPUCCH-r10 OPTIONAL -- Need OR +} + +Alpha-r12 ::= ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1} + +DeltaFList-PUCCH ::= SEQUENCE { + deltaF-PUCCH-Format1 ENUMERATED {deltaF-2, deltaF0, deltaF2}, + deltaF-PUCCH-Format1b ENUMERATED {deltaF1, deltaF3, deltaF5}, + deltaF-PUCCH-Format2 ENUMERATED {deltaF-2, deltaF0, deltaF1, deltaF2}, + deltaF-PUCCH-Format2a ENUMERATED {deltaF-2, deltaF0, deltaF2}, + deltaF-PUCCH-Format2b ENUMERATED {deltaF-2, deltaF0, deltaF2} +} + +DeltaTxD-OffsetListPUCCH-r10 ::= SEQUENCE { + deltaTxD-OffsetPUCCH-Format1-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format1a1b-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format22a2b-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format3-r10 ENUMERATED {dB0, dB-2}, + ... + +} + +DeltaTxD-OffsetListPUCCH-v1130 ::= SEQUENCE { + deltaTxD-OffsetPUCCH-Format1bCS-r11 ENUMERATED {dB0, dB-1} +} + + +WLAN-Id-List-r13 ::= SEQUENCE (SIZE (1..maxWLAN-Id-r13)) OF WLAN-Identifiers-r12 + + +WLAN-MobilityConfig-r13 ::= SEQUENCE { + wlan-ToReleaseList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + wlan-ToAddList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + associationTimer-r13 ENUMERATED {s10, s30, + s60, s120, s240} OPTIONAL, -- Need OR + successReportRequested-r13 ENUMERATED {true} OPTIONAL, -- Need OR + ... +} + + +NextHopChainingCount ::= INTEGER (0..7) + + +SecurityAlgorithmConfig ::= SEQUENCE { + cipheringAlgorithm CipheringAlgorithm-r12, + integrityProtAlgorithm ENUMERATED { + eia0-v920, eia1, eia2, eia3-v1130, spare4, spare3, + spare2, spare1, ...} +} + +CipheringAlgorithm-r12 ::= ENUMERATED { + eea0, eea1, eea2, eea3-v1130, spare4, spare3, + spare2, spare1, ...} + + +ShortMAC-I ::= BIT STRING (SIZE (16)) + + +AdditionalSpectrumEmission ::= INTEGER (1..32) + +AdditionalSpectrumEmission-v10l0 ::= INTEGER (33..288) + + +ARFCN-ValueCDMA2000 ::= INTEGER (0..2047) + + +ARFCN-ValueEUTRA ::= INTEGER (0..maxEARFCN) + +ARFCN-ValueEUTRA-v9e0 ::= INTEGER (maxEARFCN-Plus1..maxEARFCN2) + +ARFCN-ValueEUTRA-r9 ::= INTEGER (0..maxEARFCN2) + + +ARFCN-ValueGERAN ::= INTEGER (0..1023) + + +ARFCN-ValueUTRA ::= INTEGER (0..16383) + + +BandclassCDMA2000 ::= ENUMERATED { + bc0, bc1, bc2, bc3, bc4, bc5, bc6, bc7, bc8, + bc9, bc10, bc11, bc12, bc13, bc14, bc15, bc16, + bc17, bc18-v9a0, bc19-v9a0, bc20-v9a0, bc21-v9a0, + spare10, spare9, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1, ...} + + +BandIndicatorGERAN ::= ENUMERATED {dcs1800, pcs1900} + + +CarrierFreqCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + arfcn ARFCN-ValueCDMA2000 +} + + +CarrierFreqGERAN ::= SEQUENCE { + arfcn ARFCN-ValueGERAN, + bandIndicator BandIndicatorGERAN +} + + +CarrierFreqsGERAN ::= SEQUENCE { + startingARFCN ARFCN-ValueGERAN, + bandIndicator BandIndicatorGERAN, + followingARFCNs CHOICE { + explicitListOfARFCNs ExplicitListOfARFCNs, + equallySpacedARFCNs SEQUENCE { + arfcn-Spacing INTEGER (1..8), + numberOfFollowingARFCNs INTEGER (0..31) + }, + variableBitMapOfARFCNs OCTET STRING (SIZE (1..16)) + } +} + +ExplicitListOfARFCNs ::= SEQUENCE (SIZE (0..31)) OF ARFCN-ValueGERAN + + +CarrierFreqListMBMS-r11 ::= SEQUENCE (SIZE (1..maxFreqMBMS-r11)) OF ARFCN-ValueEUTRA-r9 + + +CDMA2000-Type ::= ENUMERATED {type1XRTT, typeHRPD} + + +CellIdentity ::= BIT STRING (SIZE (28)) + + +CellIndexList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellIndex + +CellIndex ::= INTEGER (1..maxCellMeas) + + +CellReselectionPriority ::= INTEGER (0..7) + + +CellSelectionInfoCE-r13 ::= SEQUENCE { + q-RxLevMinCE-r13 Q-RxLevMin, + q-QualMinRSRQ-CE-r13 Q-QualMin-r9 OPTIONAL -- Need OR +} + + +CellSelectionInfoCE1-r13 ::= SEQUENCE { + q-RxLevMinCE1-r13 Q-RxLevMin, + q-QualMinRSRQ-CE1-r13 Q-QualMin-r9 OPTIONAL -- Need OR +} + +CellSelectionInfoCE1-v1360 ::= SEQUENCE { + delta-RxLevMinCE1-v1360 INTEGER (-8..-1) +} + + +CellReselectionSubPriority-r13 ::= ENUMERATED {oDot2, oDot4, oDot6, oDot8} + + +CSFB-RegistrationParam1XRTT ::= SEQUENCE { + sid BIT STRING (SIZE (15)), + nid BIT STRING (SIZE (16)), + multipleSID BOOLEAN, + multipleNID BOOLEAN, + homeReg BOOLEAN, + foreignSIDReg BOOLEAN, + foreignNIDReg BOOLEAN, + parameterReg BOOLEAN, + powerUpReg BOOLEAN, + registrationPeriod BIT STRING (SIZE (7)), + registrationZone BIT STRING (SIZE (12)), + totalZone BIT STRING (SIZE (3)), + zoneTimer BIT STRING (SIZE (3)) +} + +CSFB-RegistrationParam1XRTT-v920 ::= SEQUENCE { + powerDownReg-r9 ENUMERATED {true} +} + + +CellGlobalIdEUTRA ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellIdentity CellIdentity +} + + +CellGlobalIdUTRA ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellIdentity BIT STRING (SIZE (28)) +} + + +CellGlobalIdGERAN ::= SEQUENCE { + plmn-Identity PLMN-Identity, + locationAreaCode BIT STRING (SIZE (16)), + cellIdentity BIT STRING (SIZE (16)) +} + + +CellGlobalIdCDMA2000 ::= CHOICE { + cellGlobalId1XRTT BIT STRING (SIZE (47)), + cellGlobalIdHRPD BIT STRING (SIZE (128)) +} + + +CellSelectionInfoNFreq-r13 ::= SEQUENCE { + -- Cell selection information as in SIB1 + q-RxLevMin-r13 Q-RxLevMin, + q-RxLevMinOffset INTEGER (1..8) OPTIONAL, -- Need OP + -- Cell re-selection information as in SIB3 + q-Hyst-r13 ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + q-RxLevMinReselection-r13 Q-RxLevMin, + t-ReselectionEUTRA-r13 T-Reselection +} + + +CSG-Identity ::= BIT STRING (SIZE (27)) + + +FreqBandIndicator ::= INTEGER (1..maxFBI) + +FreqBandIndicator-v9e0 ::= INTEGER (maxFBI-Plus1..maxFBI2) + +FreqBandIndicator-r11 ::= INTEGER (1..maxFBI2) + + +MobilityControlInfo ::= SEQUENCE { + targetPhysCellId PhysCellId, + carrierFreq CarrierFreqEUTRA OPTIONAL, -- Cond HO-toEUTRA2 + carrierBandwidth CarrierBandwidthEUTRA OPTIONAL, -- Cond HO-toEUTRA + additionalSpectrumEmission AdditionalSpectrumEmission OPTIONAL, -- Cond HO-toEUTRA + t304 ENUMERATED { + ms50, ms100, ms150, ms200, ms500, ms1000, + ms2000, ms10000-v1310}, + newUE-Identity C-RNTI, + radioResourceConfigCommon RadioResourceConfigCommon, + rach-ConfigDedicated RACH-ConfigDedicated OPTIONAL, -- Need OP + ..., + [[ carrierFreq-v9e0 CarrierFreqEUTRA-v9e0 OPTIONAL -- Need ON + ]], + [[ drb-ContinueROHC-r11 ENUMERATED {true} OPTIONAL -- Cond HO + ]] +} + +MobilityControlInfo-v10l0 ::= SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 OPTIONAL -- Need ON +} + +MobilityControlInfoSCG-r12 ::= SEQUENCE { + t307-r12 ENUMERATED { + ms50, ms100, ms150, ms200, ms500, ms1000, + ms2000, spare1}, + ue-IdentitySCG-r12 C-RNTI OPTIONAL, -- Cond SCGEst, + rach-ConfigDedicated-r12 RACH-ConfigDedicated OPTIONAL, -- Need OP + cipheringAlgorithmSCG-r12 CipheringAlgorithm-r12 OPTIONAL, -- Need ON + ... +} + +CarrierBandwidthEUTRA ::= SEQUENCE { + dl-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100, spare10, + spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1}, + ul-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100, spare10, + spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1} OPTIONAL -- Need OP +} + +CarrierFreqEUTRA ::= SEQUENCE { + dl-CarrierFreq ARFCN-ValueEUTRA, + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL -- Cond FDD +} + +CarrierFreqEUTRA-v9e0 ::= SEQUENCE { + dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9, + ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9 OPTIONAL -- Cond FDD +} + + +MobilityParametersCDMA2000 ::= OCTET STRING + + +MobilityStateParameters ::= SEQUENCE { + t-Evaluation ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + t-HystNormal ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + n-CellChangeMedium INTEGER (1..16), + n-CellChangeHigh INTEGER (1..16) +} + + +MultiBandInfoList ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator + +MultiBandInfoList-v9e0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF MultiBandInfo-v9e0 + +MultiBandInfoList-v10j0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF NS-PmaxList-r10 + +MultiBandInfoList-v10l0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF NS-PmaxList-v10l0 + +MultiBandInfoList-r11 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-r11 + +MultiBandInfo-v9e0 ::= SEQUENCE { + freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL -- Need OP +} + + +NS-PmaxList-r10 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-r10 + +NS-PmaxList-v10l0 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-v10l0 + +NS-PmaxValue-r10 ::= SEQUENCE { + additionalPmax-r10 P-Max OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission +} + +NS-PmaxValue-v10l0 ::= SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 OPTIONAL -- Need OP +} + + +PhysCellId ::= INTEGER (0..503) + + +PhysCellIdRange ::= SEQUENCE { + start PhysCellId, + range ENUMERATED { + n4, n8, n12, n16, n24, n32, n48, n64, n84, + n96, n128, n168, n252, n504, spare2, + spare1} OPTIONAL -- Need OP +} + + +PhysCellIdRangeUTRA-FDDList-r9::= SEQUENCE (SIZE (1..maxPhysCellIdRange-r9)) OF PhysCellIdRangeUTRA-FDD-r9 + +PhysCellIdRangeUTRA-FDD-r9 ::= SEQUENCE { + start-r9 PhysCellIdUTRA-FDD, + range-r9 INTEGER (2..512) OPTIONAL -- Need OP +} + + +PhysCellIdCDMA2000 ::= INTEGER (0..maxPNOffset) + + +PhysCellIdGERAN ::= SEQUENCE { + networkColourCode BIT STRING (SIZE (3)), + baseStationColourCode BIT STRING (SIZE (3)) +} + + +PhysCellIdUTRA-FDD ::= INTEGER (0..511) + + +PhysCellIdUTRA-TDD ::= INTEGER (0..127) + + +PLMN-Identity ::= SEQUENCE { + mcc MCC OPTIONAL, -- Cond MCC + mnc MNC +} + +MCC ::= SEQUENCE (SIZE (3)) OF + MCC-MNC-Digit + +MNC ::= SEQUENCE (SIZE (2..3)) OF + MCC-MNC-Digit + +MCC-MNC-Digit ::= INTEGER (0..9) + + + +PLMN-IdentityList3-r11 ::= SEQUENCE (SIZE (1..16)) OF PLMN-Identity + + +PreRegistrationInfoHRPD ::= SEQUENCE { + preRegistrationAllowed BOOLEAN, + preRegistrationZoneId PreRegistrationZoneIdHRPD OPTIONAL, -- cond PreRegAllowed + secondaryPreRegistrationZoneIdList SecondaryPreRegistrationZoneIdListHRPD OPTIONAL -- Need OR +} + +SecondaryPreRegistrationZoneIdListHRPD ::= SEQUENCE (SIZE (1..2)) OF PreRegistrationZoneIdHRPD + +PreRegistrationZoneIdHRPD ::= INTEGER (0..255) + + +Q-QualMin-r9 ::= INTEGER (-34..-3) + + +Q-RxLevMin ::= INTEGER (-70..-22) + + +Q-OffsetRange ::= ENUMERATED { + dB-24, dB-22, dB-20, dB-18, dB-16, dB-14, + dB-12, dB-10, dB-8, dB-6, dB-5, dB-4, dB-3, + dB-2, dB-1, dB0, dB1, dB2, dB3, dB4, dB5, + dB6, dB8, dB10, dB12, dB14, dB16, dB18, + dB20, dB22, dB24} + + +Q-OffsetRangeInterRAT ::= INTEGER (-15..15) + + +ReselectionThreshold ::= INTEGER (0..31) + + +ReselectionThresholdQ-r9 ::= INTEGER (0..31) + + +SCellIndex-r10 ::= INTEGER (1..7) +SCellIndex-r13 ::= INTEGER (1..31) + + +ServCellIndex-r10 ::= INTEGER (0..7) +ServCellIndex-r13 ::= INTEGER (0..31) + + +SpeedStateScaleFactors ::= SEQUENCE { + sf-Medium ENUMERATED {oDot25, oDot5, oDot75, lDot0}, + sf-High ENUMERATED {oDot25, oDot5, oDot75, lDot0} +} + +SystemInfoListGERAN ::= SEQUENCE (SIZE (1..maxGERAN-SI)) OF + OCTET STRING (SIZE (1..23)) + + +SystemTimeInfoCDMA2000 ::= SEQUENCE { + cdma-EUTRA-Synchronisation BOOLEAN, + cdma-SystemTime CHOICE { + synchronousSystemTime BIT STRING (SIZE (39)), + asynchronousSystemTime BIT STRING (SIZE (49)) + } +} + + +TrackingAreaCode ::= BIT STRING (SIZE (16)) + + +T-Reselection ::= INTEGER (0..7) + + +T-ReselectionEUTRA-CE-r13 ::= INTEGER (0..15) + + +AllowedMeasBandwidth ::= ENUMERATED {mbw6, mbw15, mbw25, mbw50, mbw75, mbw100} + + +CSI-RSRP-Range-r12 ::= INTEGER(0..97) + + +Hysteresis ::= INTEGER (0..30) + + +LocationInfo-r10 ::= SEQUENCE { + locationCoordinates-r10 CHOICE { + ellipsoid-Point-r10 OCTET STRING, + ellipsoidPointWithAltitude-r10 OCTET STRING, + ..., + ellipsoidPointWithUncertaintyCircle-r11 OCTET STRING, + ellipsoidPointWithUncertaintyEllipse-r11 OCTET STRING, + ellipsoidPointWithAltitudeAndUncertaintyEllipsoid-r11 OCTET STRING, + ellipsoidArc-r11 OCTET STRING, + polygon-r11 OCTET STRING + }, + horizontalVelocity-r10 OCTET STRING OPTIONAL, + gnss-TOD-msec-r10 OCTET STRING OPTIONAL, + ... +} + + +MBSFN-RSRQ-Range-r12 ::= INTEGER(0..31) + +MeasConfig ::= SEQUENCE { + -- Measurement objects + measObjectToRemoveList MeasObjectToRemoveList OPTIONAL, -- Need ON + measObjectToAddModList MeasObjectToAddModList OPTIONAL, -- Need ON + -- Reporting configurations + reportConfigToRemoveList ReportConfigToRemoveList OPTIONAL, -- Need ON + reportConfigToAddModList ReportConfigToAddModList OPTIONAL, -- Need ON + -- Measurement identities + measIdToRemoveList MeasIdToRemoveList OPTIONAL, -- Need ON + measIdToAddModList MeasIdToAddModList OPTIONAL, -- Need ON + -- Other parameters + quantityConfig QuantityConfig OPTIONAL, -- Need ON + measGapConfig MeasGapConfig OPTIONAL, -- Need ON + s-Measure RSRP-Range OPTIONAL, -- Need ON + preRegistrationInfoHRPD PreRegistrationInfoHRPD OPTIONAL, -- Need OP + speedStatePars CHOICE { + release NULL, + setup SEQUENCE { + mobilityStateParameters MobilityStateParameters, + timeToTrigger-SF SpeedStateScaleFactors + } + } OPTIONAL, -- Need ON + ..., + [[ measObjectToAddModList-v9e0 MeasObjectToAddModList-v9e0 OPTIONAL -- Need ON + ]], + [[ allowInterruptions-r11 BOOLEAN OPTIONAL -- Need ON + ]], + [[ measScaleFactor-r12 CHOICE { + release NULL, + setup MeasScaleFactor-r12 + } OPTIONAL, -- Need ON + measIdToRemoveListExt-r12 MeasIdToRemoveListExt-r12 OPTIONAL, -- Need ON + measIdToAddModListExt-r12 MeasIdToAddModListExt-r12 OPTIONAL, -- Need ON + measRSRQ-OnAllSymbols-r12 BOOLEAN OPTIONAL -- Need ON + ]], + [[ + measObjectToRemoveListExt-r13 MeasObjectToRemoveListExt-r13 OPTIONAL, -- Need ON + measObjectToAddModListExt-r13 MeasObjectToAddModListExt-r13 OPTIONAL, -- Need ON + measIdToAddModList-v1310 MeasIdToAddModList-v1310 OPTIONAL, -- Need ON + measIdToAddModListExt-v1310 MeasIdToAddModListExt-v1310 OPTIONAL -- Need ON + ]] +} + +MeasIdToRemoveList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId + +MeasIdToRemoveListExt-r12 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId-v1250 + +MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId + +MeasObjectToRemoveListExt-r13 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId-v1310 + +ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigId + + +MeasDS-Config-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + dmtc-PeriodOffset-r12 CHOICE { + ms40-r12 INTEGER(0..39), + ms80-r12 INTEGER(0..79), + ms160-r12 INTEGER(0..159), + ... + }, + ds-OccasionDuration-r12 CHOICE { + durationFDD-r12 INTEGER(1..maxDS-Duration-r12), + durationTDD-r12 INTEGER(2..maxDS-Duration-r12) + }, + measCSI-RS-ToRemoveList-r12 MeasCSI-RS-ToRemoveList-r12 OPTIONAL, -- Need ON + measCSI-RS-ToAddModList-r12 MeasCSI-RS-ToAddModList-r12 OPTIONAL, -- Need ON + ... + } +} + +MeasCSI-RS-ToRemoveList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Id-r12 + +MeasCSI-RS-ToAddModList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Config-r12 + +MeasCSI-RS-Id-r12 ::= INTEGER (1..maxCSI-RS-Meas-r12) + +MeasCSI-RS-Config-r12 ::= SEQUENCE { + measCSI-RS-Id-r12 MeasCSI-RS-Id-r12, + physCellId-r12 INTEGER (0..503), + scramblingIdentity-r12 INTEGER (0..503), + resourceConfig-r12 INTEGER (0..31), + subframeOffset-r12 INTEGER (0..4), + csi-RS-IndividualOffset-r12 Q-OffsetRange, + ... +} + + +MeasGapConfig ::= CHOICE { + release NULL, + setup SEQUENCE { + gapOffset CHOICE { + gp0 INTEGER (0..39), + gp1 INTEGER (0..79), + ... + } + } +} + + +MeasId ::= INTEGER (1..maxMeasId) + +MeasId-v1250 ::= INTEGER (maxMeasId-Plus1..maxMeasId-r12) + + +MeasIdToAddModList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod + +MeasIdToAddModList-v1310 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod-v1310 + +MeasIdToAddModListExt-r12 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddModExt-r12 + +MeasIdToAddModListExt-v1310 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod-v1310 + +MeasIdToAddMod ::= SEQUENCE { + measId MeasId, + measObjectId MeasObjectId, + reportConfigId ReportConfigId +} + +MeasIdToAddModExt-r12 ::= SEQUENCE { + measId-v1250 MeasId-v1250, + measObjectId-r12 MeasObjectId, + reportConfigId-r12 ReportConfigId +} + +MeasIdToAddMod-v1310 ::= SEQUENCE { + measObjectId-v1310 MeasObjectId-v1310 OPTIONAL +} + + +MeasObjectCDMA2000 ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + carrierFreq CarrierFreqCDMA2000, + searchWindowSize INTEGER (0..15) OPTIONAL, -- Need ON + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CellsToAddModListCDMA2000 OPTIONAL, -- Need ON + cellForWhichToReportCGI PhysCellIdCDMA2000 OPTIONAL, -- Need ON + ... +} + +CellsToAddModListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModCDMA2000 + +CellsToAddModCDMA2000 ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdCDMA2000 +} + + +MeasObjectEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + allowedMeasBandwidth AllowedMeasBandwidth, + presenceAntennaPort1 PresenceAntennaPort1, + neighCellConfig NeighCellConfig, + offsetFreq Q-OffsetRange DEFAULT dB0, + -- Cell list + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CellsToAddModList OPTIONAL, -- Need ON + -- Black list + blackCellsToRemoveList CellIndexList OPTIONAL, -- Need ON + blackCellsToAddModList BlackCellsToAddModList OPTIONAL, -- Need ON + cellForWhichToReportCGI PhysCellId OPTIONAL, -- Need ON + ..., + [[measCycleSCell-r10 MeasCycleSCell-r10 OPTIONAL, -- Need ON + measSubframePatternConfigNeigh-r10 MeasSubframePatternConfigNeigh-r10 OPTIONAL -- Need ON + ]], + [[widebandRSRQ-Meas-r11 BOOLEAN OPTIONAL -- Cond WB-RSRQ + ]], + [[ altTTT-CellsToRemoveList-r12 CellIndexList OPTIONAL, -- Need ON + altTTT-CellsToAddModList-r12 AltTTT-CellsToAddModList-r12 OPTIONAL, -- Need ON + t312-r12 CHOICE { + release NULL, + setup ENUMERATED {ms0, ms50, ms100, ms200, + ms300, ms400, ms500, ms1000} + } OPTIONAL, -- Need ON + reducedMeasPerformance-r12 BOOLEAN OPTIONAL, -- Need ON + measDS-Config-r12 MeasDS-Config-r12 OPTIONAL -- Need ON + ]], + [[ + whiteCellsToRemoveList-r13 CellIndexList OPTIONAL, -- Need ON + whiteCellsToAddModList-r13 WhiteCellsToAddModList-r13 OPTIONAL, -- Need ON + rmtc-Config-r13 RMTC-Config-r13 OPTIONAL, -- Need ON + carrierFreq-r13 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Need ON + ]] +} + +MeasObjectEUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +CellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddMod + +CellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellId, + cellIndividualOffset Q-OffsetRange +} + +BlackCellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF BlackCellsToAddMod + +BlackCellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellIdRange PhysCellIdRange +} + +MeasCycleSCell-r10 ::= ENUMERATED {sf160, sf256, sf320, sf512, + sf640, sf1024, sf1280, spare1} + +MeasSubframePatternConfigNeigh-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + measSubframePatternNeigh-r10 MeasSubframePattern-r10, + measSubframeCellList-r10 MeasSubframeCellList-r10 OPTIONAL -- Cond always + } +} + +MeasSubframeCellList-r10 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF PhysCellIdRange + +AltTTT-CellsToAddModList-r12 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF AltTTT-CellsToAddMod-r12 + +AltTTT-CellsToAddMod-r12 ::= SEQUENCE { + cellIndex-r12 INTEGER (1..maxCellMeas), + physCellIdRange-r12 PhysCellIdRange +} + +WhiteCellsToAddModList-r13 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF WhiteCellsToAddMod-r13 + +WhiteCellsToAddMod-r13 ::= SEQUENCE { + cellIndex-r13 INTEGER (1..maxCellMeas), + physCellIdRange-r13 PhysCellIdRange +} + +RMTC-Config-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + rmtc-Period-r13 ENUMERATED {ms40, ms80, ms160, ms320, ms640}, + rmtc-SubframeOffset-r13 INTEGER(0..639) OPTIONAL, -- Need ON + measDuration-r13 ENUMERATED {sym1, sym14, sym28, sym42, sym70}, + ... + } +} + + +MeasObjectGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + ncc-Permitted BIT STRING(SIZE (8)) DEFAULT '11111111'B, + cellForWhichToReportCGI PhysCellIdGERAN OPTIONAL, -- Need ON + ... +} + + +MeasObjectId ::= INTEGER (1..maxObjectId) + +MeasObjectId-v1310 ::= INTEGER (maxObjectId-Plus1-r13..maxObjectId-r13) + +MeasObjectId-r13 ::= INTEGER (1..maxObjectId-r13) + + +MeasObjectToAddModList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod + +MeasObjectToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddModExt-r13 + +MeasObjectToAddModList-v9e0 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod-v9e0 + +MeasObjectToAddMod ::= SEQUENCE { + measObjectId MeasObjectId, + measObject CHOICE { + measObjectEUTRA MeasObjectEUTRA, + measObjectUTRA MeasObjectUTRA, + measObjectGERAN MeasObjectGERAN, + measObjectCDMA2000 MeasObjectCDMA2000, + ..., + measObjectWLAN-r13 MeasObjectWLAN-r13 + } +} + +MeasObjectToAddModExt-r13 ::= SEQUENCE { + measObjectId-r13 MeasObjectId-v1310, + measObject-r13 CHOICE { + measObjectEUTRA-r13 MeasObjectEUTRA, + measObjectUTRA-r13 MeasObjectUTRA, + measObjectGERAN-r13 MeasObjectGERAN, + measObjectCDMA2000-r13 MeasObjectCDMA2000, + ..., + measObjectWLAN-v1320 MeasObjectWLAN-r13 + } +} + +MeasObjectToAddMod-v9e0 ::= SEQUENCE { + measObjectEUTRA-v9e0 MeasObjectEUTRA-v9e0 OPTIONAL -- Cond eutra +} + + +MeasObjectUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CHOICE { + cellsToAddModListUTRA-FDD CellsToAddModListUTRA-FDD, + cellsToAddModListUTRA-TDD CellsToAddModListUTRA-TDD + } OPTIONAL, -- Need ON + cellForWhichToReportCGI CHOICE { + utra-FDD PhysCellIdUTRA-FDD, + utra-TDD PhysCellIdUTRA-TDD + } OPTIONAL, -- Need ON + ..., + [[ csg-allowedReportingCells-v930 CSG-AllowedReportingCells-r9 OPTIONAL -- Need ON + ]], + [[ reducedMeasPerformance-r12 BOOLEAN OPTIONAL -- Need ON + ]] +} + +CellsToAddModListUTRA-FDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-FDD + +CellsToAddModUTRA-FDD ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdUTRA-FDD +} + +CellsToAddModListUTRA-TDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-TDD + +CellsToAddModUTRA-TDD ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdUTRA-TDD +} + +CSG-AllowedReportingCells-r9 ::= SEQUENCE { + physCellIdRangeUTRA-FDDList-r9 PhysCellIdRangeUTRA-FDDList-r9 OPTIONAL -- Need OR +} + +MeasObjectWLAN-r13 ::= SEQUENCE { + carrierFreq-r13 CHOICE { + bandIndicatorListWLAN-r13 SEQUENCE (SIZE (1..maxWLAN-Bands-r13)) OF WLAN-BandIndicator-r13, + carrierInfoListWLAN-r13 SEQUENCE (SIZE (1..maxWLAN-CarrierInfo-r13)) OF WLAN-CarrierInfo-r13 + } OPTIONAL, -- Need ON + wlan-ToAddModList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + wlan-ToRemoveList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + ... +} + +WLAN-BandIndicator-r13 ::= ENUMERATED {band2dot4, band5, spare6, spare5, spare4, spare3, spare2, spare1, ...} + + +MeasResults ::= SEQUENCE { + measId MeasId, + measResultPCell SEQUENCE { + rsrpResult RSRP-Range, + rsrqResult RSRQ-Range + }, + measResultNeighCells CHOICE { + measResultListEUTRA MeasResultListEUTRA, + measResultListUTRA MeasResultListUTRA, + measResultListGERAN MeasResultListGERAN, + measResultsCDMA2000 MeasResultsCDMA2000, + ... + } OPTIONAL, + ..., + [[ measResultForECID-r9 MeasResultForECID-r9 OPTIONAL + ]], + [[ locationInfo-r10 LocationInfo-r10 OPTIONAL, + measResultServFreqList-r10 MeasResultServFreqList-r10 OPTIONAL + ]], + [[ measId-v1250 MeasId-v1250 OPTIONAL, + measResultPCell-v1250 RSRQ-Range-v1250 OPTIONAL, + measResultCSI-RS-List-r12 MeasResultCSI-RS-List-r12 OPTIONAL + ]], + [[ measResultForRSSI-r13 MeasResultForRSSI-r13 OPTIONAL, + measResultServFreqListExt-r13 MeasResultServFreqListExt-r13 OPTIONAL, + measResultSSTD-r13 MeasResultSSTD-r13 OPTIONAL, + measResultPCell-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL, + ul-PDCP-DelayResultList-r13 UL-PDCP-DelayResultList-r13 OPTIONAL, + measResultListWLAN-r13 MeasResultListWLAN-r13 OPTIONAL + ]], + [[ + measResultPCell-v1360 RSRP-Range-v1360 OPTIONAL + ]] + + +} + +MeasResultListEUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultEUTRA + +MeasResultEUTRA ::= SEQUENCE { + physCellId PhysCellId, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdEUTRA, + trackingAreaCode TrackingAreaCode, + plmn-IdentityList PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + rsrpResult RSRP-Range OPTIONAL, + rsrqResult RSRQ-Range OPTIONAL, + ..., + [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL + ]], + [[ primaryPLMN-Suitable-r12 ENUMERATED {true} OPTIONAL, + measResult-v1250 RSRQ-Range-v1250 OPTIONAL + ]], + [[ rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL, + cgi-Info-v1310 SEQUENCE { + freqBandIndicator-r13 FreqBandIndicator-r11 OPTIONAL, + multiBandInfoList-r13 MultiBandInfoList-r11 OPTIONAL, + freqBandIndicatorPriority-r13 ENUMERATED {true} OPTIONAL + } OPTIONAL + ]], + [[ + measResult-v1360 RSRP-Range-v1360 OPTIONAL + ]] + } +} + +MeasResultServFreqList-r10 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF MeasResultServFreq-r10 + +MeasResultServFreqListExt-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultServFreq-r13 + +MeasResultServFreq-r10 ::= SEQUENCE { + servFreqId-r10 ServCellIndex-r10, + measResultSCell-r10 SEQUENCE { + rsrpResultSCell-r10 RSRP-Range, + rsrqResultSCell-r10 RSRQ-Range + } OPTIONAL, + measResultBestNeighCell-r10 SEQUENCE { + physCellId-r10 PhysCellId, + rsrpResultNCell-r10 RSRP-Range, + rsrqResultNCell-r10 RSRQ-Range + } OPTIONAL, + ..., + [[ measResultSCell-v1250 RSRQ-Range-v1250 OPTIONAL, + measResultBestNeighCell-v1250 RSRQ-Range-v1250 OPTIONAL + ]], + [[ measResultSCell-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL, + measResultBestNeighCell-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL + ]] +} + +MeasResultServFreq-r13 ::= SEQUENCE { + servFreqId-r13 ServCellIndex-r13, + measResultSCell-r13 SEQUENCE { + rsrpResultSCell-r13 RSRP-Range, + rsrqResultSCell-r13 RSRQ-Range-r13, + rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL + } OPTIONAL, + measResultBestNeighCell-r13 SEQUENCE { + physCellId-r13 PhysCellId, + rsrpResultNCell-r13 RSRP-Range, + rsrqResultNCell-r13 RSRQ-Range-r13, + rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL + } OPTIONAL, + ..., + [[ measResultBestNeighCell-v1360 SEQUENCE { + rsrpResultNCell-v1360 RSRP-Range-v1360 + } OPTIONAL + ]] +} + +MeasResultCSI-RS-List-r12 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCSI-RS-r12 + +MeasResultCSI-RS-r12 ::= SEQUENCE { + measCSI-RS-Id-r12 MeasCSI-RS-Id-r12, + csi-RSRP-Result-r12 CSI-RSRP-Range-r12, + ... +} + +MeasResultListUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultUTRA + +MeasResultUTRA ::= SEQUENCE { + physCellId CHOICE { + fdd PhysCellIdUTRA-FDD, + tdd PhysCellIdUTRA-TDD + }, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdUTRA, + locationAreaCode BIT STRING (SIZE (16)) OPTIONAL, + routingAreaCode BIT STRING (SIZE (8)) OPTIONAL, + plmn-IdentityList PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + utra-RSCP INTEGER (-5..91) OPTIONAL, + utra-EcN0 INTEGER (0..49) OPTIONAL, + ..., + [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL + ]], + [[ primaryPLMN-Suitable-r12 ENUMERATED {true} OPTIONAL + ]] + } +} + +MeasResultListGERAN ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultGERAN + +MeasResultGERAN ::= SEQUENCE { + carrierFreq CarrierFreqGERAN, + physCellId PhysCellIdGERAN, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdGERAN, + routingAreaCode BIT STRING (SIZE (8)) OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + rssi INTEGER (0..63), + ... + } +} + +MeasResultsCDMA2000 ::= SEQUENCE { + preRegistrationStatusHRPD BOOLEAN, + measResultListCDMA2000 MeasResultListCDMA2000 +} + +MeasResultListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCDMA2000 + +MeasResultCDMA2000 ::= SEQUENCE { + physCellId PhysCellIdCDMA2000, + cgi-Info CellGlobalIdCDMA2000 OPTIONAL, + measResult SEQUENCE { + pilotPnPhase INTEGER (0..32767) OPTIONAL, + pilotStrength INTEGER (0..63), + ... + } +} + +MeasResultListWLAN-r13 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultWLAN-r13 + +MeasResultWLAN-r13 ::= SEQUENCE { + wlan-Identifiers-r13 WLAN-Identifiers-r12, + carrierInfoWLAN-r13 WLAN-CarrierInfo-r13 OPTIONAL, + bandWLAN-r13 WLAN-BandIndicator-r13 OPTIONAL, + rssiWLAN-r13 WLAN-RSSI-Range-r13, + availableAdmissionCapacityWLAN-r13 INTEGER (0..31250) OPTIONAL, + backhaulDL-BandwidthWLAN-r13 WLAN-backhaulRate-r12 OPTIONAL, + backhaulUL-BandwidthWLAN-r13 WLAN-backhaulRate-r12 OPTIONAL, + channelUtilizationWLAN-r13 INTEGER (0..255) OPTIONAL, + stationCountWLAN-r13 INTEGER (0..65535) OPTIONAL, + connectedWLAN-r13 ENUMERATED {true} OPTIONAL, + ... +} + +MeasResultForECID-r9 ::= SEQUENCE { + ue-RxTxTimeDiffResult-r9 INTEGER (0..4095), + currentSFN-r9 BIT STRING (SIZE (10)) +} + +PLMN-IdentityList2 ::= SEQUENCE (SIZE (1..5)) OF PLMN-Identity + +AdditionalSI-Info-r9 ::= SEQUENCE { + csg-MemberStatus-r9 ENUMERATED {member} OPTIONAL, + csg-Identity-r9 CSG-Identity OPTIONAL +} +MeasResultForRSSI-r13 ::= SEQUENCE { + rssi-Result-r13 RSSI-Range-r13, + channelOccupancy-r13 INTEGER (0..100), + ... +} + +UL-PDCP-DelayResultList-r13 ::= SEQUENCE (SIZE (1..maxQCI-r13)) OF UL-PDCP-DelayResult-r13 + + +UL-PDCP-DelayResult-r13 ::= SEQUENCE { + qci-Id-r13 ENUMERATED {qci1, qci2, qci3, qci4, spare4, spare3, spare2, spare1}, + excessDelay-r13 INTEGER (0..31), + ... +} + + +MeasResultSSTD-r13 ::= SEQUENCE { + sfn-OffsetResult-r13 INTEGER (0..1023), + frameBoundaryOffsetResult-r13 INTEGER (-5..4), + subframeBoundaryOffsetResult-r13 INTEGER (0..127) +} + + +MeasScaleFactor-r12 ::= ENUMERATED {sf-EUTRA-cf1, sf-EUTRA-cf2} + + +QuantityConfig ::= SEQUENCE { + quantityConfigEUTRA QuantityConfigEUTRA OPTIONAL, -- Need ON + quantityConfigUTRA QuantityConfigUTRA OPTIONAL, -- Need ON + quantityConfigGERAN QuantityConfigGERAN OPTIONAL, -- Need ON + quantityConfigCDMA2000 QuantityConfigCDMA2000 OPTIONAL, -- Need ON + ..., + [[ quantityConfigUTRA-v1020 QuantityConfigUTRA-v1020 OPTIONAL -- Need ON + ]], + [[ quantityConfigEUTRA-v1250 QuantityConfigEUTRA-v1250 OPTIONAL -- Need ON + ]], + [[ quantityConfigEUTRA-v1310 QuantityConfigEUTRA-v1310 OPTIONAL, -- Need ON + quantityConfigWLAN-r13 QuantityConfigWLAN-r13 OPTIONAL -- Need ON + ]] +} + +QuantityConfigEUTRA ::= SEQUENCE { + filterCoefficientRSRP FilterCoefficient DEFAULT fc4, + filterCoefficientRSRQ FilterCoefficient DEFAULT fc4 +} + +QuantityConfigEUTRA-v1250 ::= SEQUENCE { + filterCoefficientCSI-RSRP-r12 FilterCoefficient OPTIONAL -- Need OR +} + +QuantityConfigEUTRA-v1310 ::= SEQUENCE { + filterCoefficientRS-SINR-r13 FilterCoefficient DEFAULT fc4 +} + +QuantityConfigUTRA ::= SEQUENCE { + measQuantityUTRA-FDD ENUMERATED {cpich-RSCP, cpich-EcN0}, + measQuantityUTRA-TDD ENUMERATED {pccpch-RSCP}, + filterCoefficient FilterCoefficient DEFAULT fc4 +} + +QuantityConfigUTRA-v1020 ::= SEQUENCE { + filterCoefficient2-FDD-r10 FilterCoefficient DEFAULT fc4 +} + +QuantityConfigGERAN ::= SEQUENCE { + measQuantityGERAN ENUMERATED {rssi}, + filterCoefficient FilterCoefficient DEFAULT fc2 +} + +QuantityConfigCDMA2000 ::= SEQUENCE { + measQuantityCDMA2000 ENUMERATED {pilotStrength, pilotPnPhaseAndPilotStrength} +} + +QuantityConfigWLAN-r13 ::= SEQUENCE { + measQuantityWLAN-r13 ENUMERATED {rssiWLAN}, + filterCoefficient-r13 FilterCoefficient DEFAULT fc4 +} + + +ReportConfigEUTRA ::= SEQUENCE { + triggerType CHOICE { + event SEQUENCE { + eventId CHOICE { + eventA1 SEQUENCE { + a1-Threshold ThresholdEUTRA + }, + eventA2 SEQUENCE { + a2-Threshold ThresholdEUTRA + }, + eventA3 SEQUENCE { + a3-Offset INTEGER (-30..30), + reportOnLeave BOOLEAN + }, + eventA4 SEQUENCE { + a4-Threshold ThresholdEUTRA + }, + eventA5 SEQUENCE { + a5-Threshold1 ThresholdEUTRA, + a5-Threshold2 ThresholdEUTRA + }, + ..., + eventA6-r10 SEQUENCE { + a6-Offset-r10 INTEGER (-30..30), + a6-ReportOnLeave-r10 BOOLEAN + }, + eventC1-r12 SEQUENCE { + c1-Threshold-r12 ThresholdEUTRA-v1250, + c1-ReportOnLeave-r12 BOOLEAN + }, + eventC2-r12 SEQUENCE { + c2-RefCSI-RS-r12 MeasCSI-RS-Id-r12, + c2-Offset-r12 INTEGER (-30..30), + c2-ReportOnLeave-r12 BOOLEAN + } + }, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + periodical SEQUENCE { + purpose ENUMERATED { + reportStrongestCells, reportCGI} + } + }, + triggerQuantity ENUMERATED {rsrp, rsrq}, + reportQuantity ENUMERATED {sameAsTriggerQuantity, both}, + maxReportCells INTEGER (1..maxCellReport), + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + ..., + [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL, -- Cond reportCGI + ue-RxTxTimeDiffPeriodical-r9 ENUMERATED {setup} OPTIONAL -- Need OR + ]], + [[ includeLocationInfo-r10 ENUMERATED {true} OPTIONAL, -- Need OR + reportAddNeighMeas-r10 ENUMERATED {setup} OPTIONAL -- Need OR + ]], + [[ alternativeTimeToTrigger-r12 CHOICE { + release NULL, + setup TimeToTrigger + } OPTIONAL, -- Need ON + useT312-r12 BOOLEAN OPTIONAL, -- Need ON + usePSCell-r12 BOOLEAN OPTIONAL, -- Need ON + aN-Threshold1-v1250 RSRQ-RangeConfig-r12 OPTIONAL, -- Need ON + a5-Threshold2-v1250 RSRQ-RangeConfig-r12 OPTIONAL, -- Need ON + reportStrongestCSI-RSs-r12 BOOLEAN OPTIONAL, -- Need ON + reportCRS-Meas-r12 BOOLEAN OPTIONAL, -- Need ON + triggerQuantityCSI-RS-r12 BOOLEAN OPTIONAL -- Need ON + ]], + [[ reportSSTD-Meas-r13 BOOLEAN OPTIONAL, -- Need ON + rs-sinr-Config-r13 CHOICE { + release NULL, + setup SEQUENCE { + triggerQuantity-v1310 ENUMERATED {sinr} OPTIONAL, -- Need ON + aN-Threshold1-r13 RS-SINR-Range-r13 OPTIONAL, -- Need ON + a5-Threshold2-r13 RS-SINR-Range-r13 OPTIONAL, -- Need ON + reportQuantity-v1310 ENUMERATED {rsrpANDsinr, rsrqANDsinr, all} + } + } OPTIONAL, -- Need ON + useWhiteCellList-r13 BOOLEAN OPTIONAL, -- Need ON + measRSSI-ReportConfig-r13 MeasRSSI-ReportConfig-r13 OPTIONAL, -- Need ON + includeMultiBandInfo-r13 ENUMERATED {true} OPTIONAL, -- Cond reportCGI + ul-DelayConfig-r13 UL-DelayConfig-r13 OPTIONAL -- Need ON + ]], + [[ ue-RxTxTimeDiffPeriodicalTDD-r13 BOOLEAN OPTIONAL -- Need ON + ]] +} + +RSRQ-RangeConfig-r12 ::= CHOICE { + release NULL, + setup RSRQ-Range-v1250 +} + +ThresholdEUTRA ::= CHOICE{ + threshold-RSRP RSRP-Range, + threshold-RSRQ RSRQ-Range +} + +ThresholdEUTRA-v1250 ::= CSI-RSRP-Range-r12 + +MeasRSSI-ReportConfig-r13 ::= SEQUENCE { + channelOccupancyThreshold-r13 RSSI-Range-r13 OPTIONAL -- Need OR +} + + +ReportConfigId ::= INTEGER (1..maxReportConfigId) + + +ReportConfigInterRAT ::= SEQUENCE { + triggerType CHOICE { + event SEQUENCE { + eventId CHOICE { + eventB1 SEQUENCE { + b1-Threshold CHOICE { + b1-ThresholdUTRA ThresholdUTRA, + b1-ThresholdGERAN ThresholdGERAN, + b1-ThresholdCDMA2000 ThresholdCDMA2000 + } + }, + eventB2 SEQUENCE { + b2-Threshold1 ThresholdEUTRA, + b2-Threshold2 CHOICE { + b2-Threshold2UTRA ThresholdUTRA, + b2-Threshold2GERAN ThresholdGERAN, + b2-Threshold2CDMA2000 ThresholdCDMA2000 + } + }, + ..., + eventW1-r13 SEQUENCE { + w1-Threshold-r13 WLAN-RSSI-Range-r13 + }, + eventW2-r13 SEQUENCE { + w2-Threshold1-r13 WLAN-RSSI-Range-r13, + w2-Threshold2-r13 WLAN-RSSI-Range-r13 + }, + eventW3-r13 SEQUENCE { + w3-Threshold-r13 WLAN-RSSI-Range-r13 + } + }, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + periodical SEQUENCE { + purpose ENUMERATED { + reportStrongestCells, + reportStrongestCellsForSON, + reportCGI} + } + }, + maxReportCells INTEGER (1..maxCellReport), + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + ..., + [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL -- Cond reportCGI + ]], + [[ reportQuantityUTRA-FDD-r10 ENUMERATED {both} OPTIONAL -- Need OR + ]], + [[ includeLocationInfo-r11 BOOLEAN OPTIONAL -- Need ON + ]], + [[ b2-Threshold1-v1250 CHOICE { + release NULL, + setup RSRQ-Range-v1250 + } OPTIONAL -- Need ON + ]], + [[ reportQuantityWLAN-r13 ReportQuantityWLAN-r13 OPTIONAL -- Need ON + ]] +} + +ThresholdUTRA ::= CHOICE{ + utra-RSCP INTEGER (-5..91), + utra-EcN0 INTEGER (0..49) +} + +ThresholdGERAN ::= INTEGER (0..63) + +ThresholdCDMA2000 ::= INTEGER (0..63) + +ReportQuantityWLAN-r13 ::= SEQUENCE { + bandRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + carrierInfoRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + availableAdmissionCapacityRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + backhaulDL-BandwidthRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + backhaulUL-BandwidthRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + channelUtilizationRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + stationCountRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + ... +} + + +ReportConfigToAddModList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigToAddMod + +ReportConfigToAddMod ::= SEQUENCE { + reportConfigId ReportConfigId, + reportConfig CHOICE { + reportConfigEUTRA ReportConfigEUTRA, + reportConfigInterRAT ReportConfigInterRAT + } +} + + + +ReportInterval ::= ENUMERATED { + ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, + min1, min6, min12, min30, min60, spare3, spare2, spare1} + + +RSRP-Range ::= INTEGER(0..97) + +RSRP-Range-v1360 ::= INTEGER(-17..-1) + +RSRP-RangeSL-r12 ::= INTEGER(0..13) + +RSRP-RangeSL2-r12 ::= INTEGER(0..7) + +RSRP-RangeSL3-r12 ::= INTEGER(0..11) + +RSRP-RangeSL4-r13 ::= INTEGER(0..49) + + +RSRQ-Range ::= INTEGER(0..34) + +RSRQ-Range-v1250 ::= INTEGER(-30..46) + +RSRQ-Range-r13 ::= INTEGER(-30..46) + + +RSRQ-Type-r12 ::= SEQUENCE { + allSymbols-r12 BOOLEAN, + wideBand-r12 BOOLEAN +} + + +RS-SINR-Range-r13 ::= INTEGER(0..127) + + +RSSI-Range-r13 ::= INTEGER(0..76) + + +TimeToTrigger ::= ENUMERATED { + ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256, + ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560, + ms5120} + + +UL-DelayConfig-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + delayThreshold-r13 ENUMERATED { + ms30, ms40, ms50, ms60, ms70, ms80, + ms90,ms100, ms150, ms300, ms500, ms750, spare4, spare3, spare2, spare1} + } +} + + +WLAN-CarrierInfo-r13 ::= SEQUENCE { + operatingClass-r13 INTEGER (0..255) OPTIONAL, -- Need ON + countryCode-r13 ENUMERATED {unitedStates, europe, japan, global, ...} OPTIONAL, -- Need ON + channelNumbers-r13 WLAN-ChannelList-r13 OPTIONAL, -- Need ON + ... +} + +WLAN-ChannelList-r13 ::= SEQUENCE (SIZE (1..maxWLAN-Channels-r13)) OF WLAN-Channel-r13 + +WLAN-Channel-r13 ::= INTEGER(0..255) + + +WLAN-RSSI-Range-r13 ::= INTEGER(0..141) + + +WLAN-Status-r13 ::= ENUMERATED {successfulAssociation, failureWlanRadioLink, failureWlanUnavailable, failureTimeout} + + +AbsoluteTimeInfo-r10 ::= BIT STRING (SIZE (48)) + + +AreaConfiguration-r10 ::= CHOICE { + cellGlobalIdList-r10 CellGlobalIdList-r10, + trackingAreaCodeList-r10 TrackingAreaCodeList-r10 +} + +AreaConfiguration-v1130 ::= SEQUENCE { + trackingAreaCodeList-v1130 TrackingAreaCodeList-v1130 +} + +CellGlobalIdList-r10 ::= SEQUENCE (SIZE (1..32)) OF CellGlobalIdEUTRA + +TrackingAreaCodeList-r10 ::= SEQUENCE (SIZE (1..8)) OF TrackingAreaCode + +TrackingAreaCodeList-v1130 ::= SEQUENCE { + plmn-Identity-perTAC-List-r11 SEQUENCE (SIZE (1..8)) OF PLMN-Identity +} + + +C-RNTI ::= BIT STRING (SIZE (16)) + + +DedicatedInfoCDMA2000 ::= OCTET STRING + + +DedicatedInfoNAS ::= OCTET STRING + + +FilterCoefficient ::= ENUMERATED { + fc0, fc1, fc2, fc3, fc4, fc5, + fc6, fc7, fc8, fc9, fc11, fc13, + fc15, fc17, fc19, spare1, ...} + + +LoggingDuration-r10 ::= ENUMERATED { + min10, min20, min40, min60, min90, min120, spare2, spare1} + + +LoggingInterval-r10 ::= ENUMERATED { + ms1280, ms2560, ms5120, ms10240, ms20480, + ms30720, ms40960, ms61440} + + +MeasSubframePattern-r10 ::= CHOICE { + subframePatternFDD-r10 BIT STRING (SIZE (40)), + subframePatternTDD-r10 CHOICE { + subframeConfig1-5-r10 BIT STRING (SIZE (20)), + subframeConfig0-r10 BIT STRING (SIZE (70)), + subframeConfig6-r10 BIT STRING (SIZE (60)), + ... + }, + ... +} + + +MMEC ::= BIT STRING (SIZE (8)) + + +NeighCellConfig ::= BIT STRING (SIZE (2)) + + +OtherConfig-r9 ::= SEQUENCE { + reportProximityConfig-r9 ReportProximityConfig-r9 OPTIONAL, -- Need ON + ..., + [[ idc-Config-r11 IDC-Config-r11 OPTIONAL, -- Need ON + powerPrefIndicationConfig-r11 PowerPrefIndicationConfig-r11 OPTIONAL, -- Need ON + obtainLocationConfig-r11 ObtainLocationConfig-r11 OPTIONAL -- Need ON + ]] +} + +IDC-Config-r11 ::= SEQUENCE { + idc-Indication-r11 ENUMERATED {setup} OPTIONAL, -- Need OR + autonomousDenialParameters-r11 SEQUENCE { + autonomousDenialSubframes-r11 ENUMERATED {n2, n5, n10, n15, + n20, n30, spare2, spare1}, + autonomousDenialValidity-r11 ENUMERATED { + sf200, sf500, sf1000, sf2000, + spare4, spare3, spare2, spare1} + } OPTIONAL, -- Need OR + ..., + [[ idc-Indication-UL-CA-r11 ENUMERATED {setup} OPTIONAL -- Cond idc-Ind + ]], + [[ idc-HardwareSharingIndication-r13 ENUMERATED {setup} OPTIONAL -- Need OR + ]] +} + +ObtainLocationConfig-r11 ::= SEQUENCE { + obtainLocation-r11 ENUMERATED {setup} OPTIONAL -- Need OR +} + +PowerPrefIndicationConfig-r11 ::= CHOICE{ + release NULL, + setup SEQUENCE{ + powerPrefIndicationTimer-r11 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, + s30, s60, s90, s120, s300, s600, spare3, + spare2, spare1} + } +} + +ReportProximityConfig-r9 ::= SEQUENCE { + proximityIndicationEUTRA-r9 ENUMERATED {enabled} OPTIONAL, -- Need OR + proximityIndicationUTRA-r9 ENUMERATED {enabled} OPTIONAL -- Need OR +} + + +RAND-CDMA2000 ::= BIT STRING (SIZE (32)) + + +RAT-Type ::= ENUMERATED { + eutra, utra, geran-cs, geran-ps, cdma2000-1XRTT, + spare3, spare2, spare1, ...} + + +ResumeIdentity-r13 ::= BIT STRING (SIZE(40)) + + +RRC-TransactionIdentifier ::= INTEGER (0..3) + + +S-TMSI ::= SEQUENCE { + mmec MMEC, + m-TMSI BIT STRING (SIZE (32)) +} + + +TraceReference-r10 ::= SEQUENCE { + plmn-Identity-r10 PLMN-Identity, + traceId-r10 OCTET STRING (SIZE (3)) +} + + +UE-CapabilityRAT-ContainerList ::=SEQUENCE (SIZE (0..maxRAT-Capabilities)) OF UE-CapabilityRAT-Container + +UE-CapabilityRAT-Container ::= SEQUENCE { + rat-Type RAT-Type, + ueCapabilityRAT-Container OCTET STRING +} + + +UE-EUTRA-Capability ::= SEQUENCE { + accessStratumRelease AccessStratumRelease, + ue-Category INTEGER (1..5), + pdcp-Parameters PDCP-Parameters, + phyLayerParameters PhyLayerParameters, + rf-Parameters RF-Parameters, + measParameters MeasParameters, + featureGroupIndicators BIT STRING (SIZE (32)) OPTIONAL, + interRAT-Parameters SEQUENCE { + utraFDD IRAT-ParametersUTRA-FDD OPTIONAL, + utraTDD128 IRAT-ParametersUTRA-TDD128 OPTIONAL, + utraTDD384 IRAT-ParametersUTRA-TDD384 OPTIONAL, + utraTDD768 IRAT-ParametersUTRA-TDD768 OPTIONAL, + geran IRAT-ParametersGERAN OPTIONAL, + cdma2000-HRPD IRAT-ParametersCDMA2000-HRPD OPTIONAL, + cdma2000-1xRTT IRAT-ParametersCDMA2000-1XRTT OPTIONAL + }, + nonCriticalExtension UE-EUTRA-Capability-v920-IEs OPTIONAL +} + +-- Late non critical extensions +UE-EUTRA-Capability-v9a0-IEs ::= SEQUENCE { + featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9c0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9c0-IEs ::= SEQUENCE { + interRAT-ParametersUTRA-v9c0 IRAT-ParametersUTRA-v9c0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9d0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9d0-IEs ::= SEQUENCE { + phyLayerParameters-v9d0 PhyLayerParameters-v9d0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9e0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9e0-IEs ::= SEQUENCE { + rf-Parameters-v9e0 RF-Parameters-v9e0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9h0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9h0-IEs ::= SEQUENCE { + interRAT-ParametersUTRA-v9h0 IRAT-ParametersUTRA-v9h0 OPTIONAL, + -- Following field is only to be used for late REL-9 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10c0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10c0-IEs ::= SEQUENCE { + otdoa-PositioningCapabilities-r10 OTDOA-PositioningCapabilities-r10 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10f0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10f0-IEs ::= SEQUENCE { + rf-Parameters-v10f0 RF-Parameters-v10f0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10i0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10i0-IEs ::= SEQUENCE { + rf-Parameters-v10i0 RF-Parameters-v10i0 OPTIONAL, + -- Following field is only to be used for late REL-10 extensions + lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v10j0-IEs) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11d0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10j0-IEs ::= SEQUENCE { + rf-Parameters-v10j0 RF-Parameters-v10j0 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-EUTRA-Capability-v11d0-IEs ::= SEQUENCE { + rf-Parameters-v11d0 RF-Parameters-v11d0 OPTIONAL, + otherParameters-v11d0 Other-Parameters-v11d0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11x0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v11x0-IEs ::= SEQUENCE { + -- Following field is only to be used for late REL-11 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v12b0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v12b0-IEs ::= SEQUENCE { + rf-Parameters-v12b0 RF-Parameters-v12b0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v12x0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v12x0-IEs ::= SEQUENCE { + -- Following field is only to be used for late REL-12 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1370-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1370-IEs ::= SEQUENCE { + ce-Parameters-v1370 CE-Parameters-v1370 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1370 UE-EUTRA-CapabilityAddXDD-Mode-v1370 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1370 UE-EUTRA-CapabilityAddXDD-Mode-v1370 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1380-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1380-IEs ::= SEQUENCE { + rf-Parameters-v1380 RF-Parameters-v1380 OPTIONAL, ce-Parameters-v1380 CE-Parameters-v1380, + fdd-Add-UE-EUTRA-Capabilities-v1380 UE-EUTRA-CapabilityAddXDD-Mode-v1380, + tdd-Add-UE-EUTRA-Capabilities-v1380 UE-EUTRA-CapabilityAddXDD-Mode-v1380, + -- Following field is only to be used for late REL-13 extensions + nonCriticalExtension UE-EUTRA-Capability-v1390-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1390-IEs ::= SEQUENCE { + rf-Parameters-v1390 RF-Parameters-v1390 OPTIONAL, + -- Following field is only to be used for late REL-13 extensions + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +UE-EUTRA-Capability-v920-IEs ::= SEQUENCE { + phyLayerParameters-v920 PhyLayerParameters-v920, + interRAT-ParametersGERAN-v920 IRAT-ParametersGERAN-v920, + interRAT-ParametersUTRA-v920 IRAT-ParametersUTRA-v920 OPTIONAL, + interRAT-ParametersCDMA2000-v920 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL, + deviceType-r9 ENUMERATED {noBenFromBatConsumpOpt} OPTIONAL, + csg-ProximityIndicationParameters-r9 CSG-ProximityIndicationParameters-r9, + neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9, + son-Parameters-r9 SON-Parameters-r9, + nonCriticalExtension UE-EUTRA-Capability-v940-IEs OPTIONAL +} + +UE-EUTRA-Capability-v940-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v9a0-IEs) + OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1020-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1020-IEs ::= SEQUENCE { + ue-Category-v1020 INTEGER (6..8) OPTIONAL, + phyLayerParameters-v1020 PhyLayerParameters-v1020 OPTIONAL, + rf-Parameters-v1020 RF-Parameters-v1020 OPTIONAL, + measParameters-v1020 MeasParameters-v1020 OPTIONAL, + featureGroupIndRel10-r10 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersCDMA2000-v1020 IRAT-ParametersCDMA2000-1XRTT-v1020 OPTIONAL, + ue-BasedNetwPerfMeasParameters-r10 UE-BasedNetwPerfMeasParameters-r10 OPTIONAL, + interRAT-ParametersUTRA-TDD-v1020 IRAT-ParametersUTRA-TDD-v1020 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1060-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1060-IEs ::= SEQUENCE { + fdd-Add-UE-EUTRA-Capabilities-v1060 UE-EUTRA-CapabilityAddXDD-Mode-v1060 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1060 UE-EUTRA-CapabilityAddXDD-Mode-v1060 OPTIONAL, + rf-Parameters-v1060 RF-Parameters-v1060 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1090-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1090-IEs ::= SEQUENCE { + rf-Parameters-v1090 RF-Parameters-v1090 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1130-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1130-IEs ::= SEQUENCE { + pdcp-Parameters-v1130 PDCP-Parameters-v1130, + phyLayerParameters-v1130 PhyLayerParameters-v1130 OPTIONAL, + rf-Parameters-v1130 RF-Parameters-v1130, + measParameters-v1130 MeasParameters-v1130, + interRAT-ParametersCDMA2000-v1130 IRAT-ParametersCDMA2000-v1130, + otherParameters-r11 Other-Parameters-r11, + fdd-Add-UE-EUTRA-Capabilities-v1130 UE-EUTRA-CapabilityAddXDD-Mode-v1130 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1130 UE-EUTRA-CapabilityAddXDD-Mode-v1130 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1170-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1170-IEs ::= SEQUENCE { + phyLayerParameters-v1170 PhyLayerParameters-v1170 OPTIONAL, + ue-Category-v1170 INTEGER (9..10) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1180-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1180-IEs ::= SEQUENCE { + rf-Parameters-v1180 RF-Parameters-v1180 OPTIONAL, + mbms-Parameters-r11 MBMS-Parameters-r11 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1180 UE-EUTRA-CapabilityAddXDD-Mode-v1180 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1180 UE-EUTRA-CapabilityAddXDD-Mode-v1180 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11a0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v11a0-IEs ::= SEQUENCE { + ue-Category-v11a0 INTEGER (11..12) OPTIONAL, + measParameters-v11a0 MeasParameters-v11a0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1250-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1250-IEs ::= SEQUENCE { + phyLayerParameters-v1250 PhyLayerParameters-v1250 OPTIONAL, + rf-Parameters-v1250 RF-Parameters-v1250 OPTIONAL, + rlc-Parameters-r12 RLC-Parameters-r12 OPTIONAL, + ue-BasedNetwPerfMeasParameters-v1250 UE-BasedNetwPerfMeasParameters-v1250 OPTIONAL, + ue-CategoryDL-r12 INTEGER (0..14) OPTIONAL, + ue-CategoryUL-r12 INTEGER (0..13) OPTIONAL, + wlan-IW-Parameters-r12 WLAN-IW-Parameters-r12 OPTIONAL, + measParameters-v1250 MeasParameters-v1250 OPTIONAL, + dc-Parameters-r12 DC-Parameters-r12 OPTIONAL, + mbms-Parameters-v1250 MBMS-Parameters-v1250 OPTIONAL, + mac-Parameters-r12 MAC-Parameters-r12 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1250 UE-EUTRA-CapabilityAddXDD-Mode-v1250 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1250 UE-EUTRA-CapabilityAddXDD-Mode-v1250 OPTIONAL, + sl-Parameters-r12 SL-Parameters-r12 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1260-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1260-IEs ::= SEQUENCE { + ue-CategoryDL-v1260 INTEGER (15..16) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1270-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1270-IEs ::= SEQUENCE { + rf-Parameters-v1270 RF-Parameters-v1270 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1280-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1280-IEs ::= SEQUENCE { + phyLayerParameters-v1280 PhyLayerParameters-v1280 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1310-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1310-IEs ::= SEQUENCE { + ue-CategoryDL-v1310 ENUMERATED {n17, m1} OPTIONAL, + ue-CategoryUL-v1310 ENUMERATED {n14, m1} OPTIONAL, + pdcp-Parameters-v1310 PDCP-Parameters-v1310, + rlc-Parameters-v1310 RLC-Parameters-v1310, + mac-Parameters-v1310 MAC-Parameters-v1310 OPTIONAL, + phyLayerParameters-v1310 PhyLayerParameters-v1310 OPTIONAL, + rf-Parameters-v1310 RF-Parameters-v1310 OPTIONAL, + measParameters-v1310 MeasParameters-v1310 OPTIONAL, + dc-Parameters-v1310 DC-Parameters-v1310 OPTIONAL, + sl-Parameters-v1310 SL-Parameters-v1310 OPTIONAL, + scptm-Parameters-r13 SCPTM-Parameters-r13 OPTIONAL, + ce-Parameters-r13 CE-Parameters-r13 OPTIONAL, + interRAT-ParametersWLAN-r13 IRAT-ParametersWLAN-r13, + laa-Parameters-r13 LAA-Parameters-r13 OPTIONAL, + lwa-Parameters-r13 LWA-Parameters-r13 OPTIONAL, + wlan-IW-Parameters-v1310 WLAN-IW-Parameters-v1310, + lwip-Parameters-r13 LWIP-Parameters-r13, + fdd-Add-UE-EUTRA-Capabilities-v1310 UE-EUTRA-CapabilityAddXDD-Mode-v1310 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1310 UE-EUTRA-CapabilityAddXDD-Mode-v1310 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1320-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1320-IEs ::= SEQUENCE { + ce-Parameters-v1320 CE-Parameters-v1320 OPTIONAL, + phyLayerParameters-v1320 PhyLayerParameters-v1320 OPTIONAL, + rf-Parameters-v1320 RF-Parameters-v1320 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1320 UE-EUTRA-CapabilityAddXDD-Mode-v1320 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1320 UE-EUTRA-CapabilityAddXDD-Mode-v1320 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1330-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1330-IEs ::= SEQUENCE { + ue-CategoryDL-v1330 INTEGER (18..19) OPTIONAL, + phyLayerParameters-v1330 PhyLayerParameters-v1330 OPTIONAL, + ue-CE-NeedULGaps-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1340-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1340-IEs ::= SEQUENCE { + ue-CategoryUL-v1340 INTEGER (15) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1350-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1350-IEs ::= SEQUENCE { + ue-CategoryDL-v1350 ENUMERATED {oneBis} OPTIONAL, + ue-CategoryUL-v1350 ENUMERATED {oneBis} OPTIONAL, + ce-Parameters-v1350 CE-Parameters-v1350, + nonCriticalExtension UE-EUTRA-Capability-v1360-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1360-IEs ::= SEQUENCE { + other-Parameters-v1360 Other-Parameters-v1360 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-r9 ::= SEQUENCE { + phyLayerParameters-r9 PhyLayerParameters OPTIONAL, + featureGroupIndicators-r9 BIT STRING (SIZE (32)) OPTIONAL, + featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersGERAN-r9 IRAT-ParametersGERAN OPTIONAL, + interRAT-ParametersUTRA-r9 IRAT-ParametersUTRA-v920 OPTIONAL, + interRAT-ParametersCDMA2000-r9 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL, + neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9 OPTIONAL, + ... +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1060 ::= SEQUENCE { + phyLayerParameters-v1060 PhyLayerParameters-v1020 OPTIONAL, + featureGroupIndRel10-v1060 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersCDMA2000-v1060 IRAT-ParametersCDMA2000-1XRTT-v1020 OPTIONAL, + interRAT-ParametersUTRA-TDD-v1060 IRAT-ParametersUTRA-TDD-v1020 OPTIONAL, + ..., + [[ otdoa-PositioningCapabilities-r10 OTDOA-PositioningCapabilities-r10 OPTIONAL + ]] +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1130 ::= SEQUENCE { + phyLayerParameters-v1130 PhyLayerParameters-v1130 OPTIONAL, + measParameters-v1130 MeasParameters-v1130 OPTIONAL, + otherParameters-r11 Other-Parameters-r11 OPTIONAL, + ... +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1180 ::= SEQUENCE { + mbms-Parameters-r11 MBMS-Parameters-r11 +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1250 ::= SEQUENCE { + phyLayerParameters-v1250 PhyLayerParameters-v1250 OPTIONAL, + measParameters-v1250 MeasParameters-v1250 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1310 ::= SEQUENCE { + phyLayerParameters-v1310 PhyLayerParameters-v1310 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1320 ::= SEQUENCE { + phyLayerParameters-v1320 PhyLayerParameters-v1320 OPTIONAL, + scptm-Parameters-r13 SCPTM-Parameters-r13 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1370 ::= SEQUENCE { + ce-Parameters-v1370 CE-Parameters-v1370 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1380 ::= SEQUENCE { + ce-Parameters-v1380 CE-Parameters-v1380 +} + +AccessStratumRelease ::= ENUMERATED { + rel8, rel9, rel10, rel11, rel12, rel13, + spare2, spare1, ...} + +DC-Parameters-r12 ::= SEQUENCE { + drb-TypeSplit-r12 ENUMERATED {supported} OPTIONAL, + drb-TypeSCG-r12 ENUMERATED {supported} OPTIONAL +} + +DC-Parameters-v1310 ::= SEQUENCE { + pdcp-TransferSplitUL-r13 ENUMERATED {supported} OPTIONAL, + ue-SSTD-Meas-r13 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-r12 ::= SEQUENCE { + logicalChannelSR-ProhibitTimer-r12 ENUMERATED {supported} OPTIONAL, + longDRX-Command-r12 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-v1310 ::= SEQUENCE { + extendedMAC-LengthField-r13 ENUMERATED {supported} OPTIONAL, + extendedLongDRX-r13 ENUMERATED {supported} OPTIONAL +} + +RLC-Parameters-r12 ::= SEQUENCE { + extended-RLC-LI-Field-r12 ENUMERATED {supported} +} + +RLC-Parameters-v1310 ::= SEQUENCE { + extendedRLC-SN-SO-Field-r13 ENUMERATED {supported} OPTIONAL +} + +PDCP-Parameters ::= SEQUENCE { + supportedROHC-Profiles SEQUENCE { + profile0x0001 BOOLEAN, + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0101 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + maxNumberROHC-ContextSessions ENUMERATED { + cs2, cs4, cs8, cs12, cs16, cs24, cs32, + cs48, cs64, cs128, cs256, cs512, cs1024, + cs16384, spare2, spare1} DEFAULT cs16, + ... +} + +PDCP-Parameters-v1130 ::= SEQUENCE { + pdcp-SN-Extension-r11 ENUMERATED {supported} OPTIONAL, + supportRohcContextContinue-r11 ENUMERATED {supported} OPTIONAL +} + +PDCP-Parameters-v1310 ::= SEQUENCE { + pdcp-SN-Extension-18bits-r13 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters ::= SEQUENCE { + ue-TxAntennaSelectionSupported BOOLEAN, + ue-SpecificRefSigsSupported BOOLEAN +} + +PhyLayerParameters-v920 ::= SEQUENCE { + enhancedDualLayerFDD-r9 ENUMERATED {supported} OPTIONAL, + enhancedDualLayerTDD-r9 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v9d0 ::= SEQUENCE { + tm5-FDD-r9 ENUMERATED {supported} OPTIONAL, + tm5-TDD-r9 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1020 ::= SEQUENCE { + twoAntennaPortsForPUCCH-r10 ENUMERATED {supported} OPTIONAL, + tm9-With-8Tx-FDD-r10 ENUMERATED {supported} OPTIONAL, + pmi-Disabling-r10 ENUMERATED {supported} OPTIONAL, + crossCarrierScheduling-r10 ENUMERATED {supported} OPTIONAL, + simultaneousPUCCH-PUSCH-r10 ENUMERATED {supported} OPTIONAL, + multiClusterPUSCH-WithinCC-r10 ENUMERATED {supported} OPTIONAL, + nonContiguousUL-RA-WithinCC-List-r10 NonContiguousUL-RA-WithinCC-List-r10 OPTIONAL +} + +PhyLayerParameters-v1130 ::= SEQUENCE { + crs-InterfHandl-r11 ENUMERATED {supported} OPTIONAL, + ePDCCH-r11 ENUMERATED {supported} OPTIONAL, + multiACK-CSI-Reporting-r11 ENUMERATED {supported} OPTIONAL, + ss-CCH-InterfHandl-r11 ENUMERATED {supported} OPTIONAL, + tdd-SpecialSubframe-r11 ENUMERATED {supported} OPTIONAL, + txDiv-PUCCH1b-ChSelect-r11 ENUMERATED {supported} OPTIONAL, + ul-CoMP-r11 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1170 ::= SEQUENCE { + interBandTDD-CA-WithDifferentConfig-r11 BIT STRING (SIZE (2)) OPTIONAL +} + +PhyLayerParameters-v1250 ::= SEQUENCE { + e-HARQ-Pattern-FDD-r12 ENUMERATED {supported} OPTIONAL, + enhanced-4TxCodebook-r12 ENUMERATED {supported} OPTIONAL, + tdd-FDD-CA-PCellDuplex-r12 BIT STRING (SIZE (2)) OPTIONAL, + phy-TDD-ReConfig-TDD-PCell-r12 ENUMERATED {supported} OPTIONAL, + phy-TDD-ReConfig-FDD-PCell-r12 ENUMERATED {supported} OPTIONAL, + pusch-FeedbackMode-r12 ENUMERATED {supported} OPTIONAL, + pusch-SRS-PowerControl-SubframeSet-r12 ENUMERATED {supported} OPTIONAL, + csi-SubframeSet-r12 ENUMERATED {supported} OPTIONAL, + noResourceRestrictionForTTIBundling-r12 ENUMERATED {supported} OPTIONAL, + discoverySignalsInDeactSCell-r12 ENUMERATED {supported} OPTIONAL, + naics-Capability-List-r12 NAICS-Capability-List-r12 OPTIONAL +} + +PhyLayerParameters-v1280 ::= SEQUENCE { + alternativeTBS-Indices-r12 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1310 ::= SEQUENCE { + aperiodicCSI-Reporting-r13 BIT STRING (SIZE (2)) OPTIONAL, + codebook-HARQ-ACK-r13 BIT STRING (SIZE (2)) OPTIONAL, + crossCarrierScheduling-B5C-r13 ENUMERATED {supported} OPTIONAL, + fdd-HARQ-TimingTDD-r13 ENUMERATED {supported} OPTIONAL, + maxNumberUpdatedCSI-Proc-r13 INTEGER(5..32) OPTIONAL, + pucch-Format4-r13 ENUMERATED {supported} OPTIONAL, + pucch-Format5-r13 ENUMERATED {supported} OPTIONAL, + pucch-SCell-r13 ENUMERATED {supported} OPTIONAL, + spatialBundling-HARQ-ACK-r13 ENUMERATED {supported} OPTIONAL, + supportedBlindDecoding-r13 SEQUENCE { + maxNumberDecoding-r13 INTEGER(1..32) OPTIONAL, + pdcch-CandidateReductions-r13 ENUMERATED {supported} OPTIONAL, + skipMonitoringDCI-Format0-1A-r13 ENUMERATED {supported} OPTIONAL + } OPTIONAL, + uci-PUSCH-Ext-r13 ENUMERATED {supported} OPTIONAL, + crs-InterfMitigationTM10-r13 ENUMERATED {supported} OPTIONAL, + pdsch-CollisionHandling-r13 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1320 ::= SEQUENCE { + mimo-UE-Parameters-r13 MIMO-UE-Parameters-r13 OPTIONAL +} + +PhyLayerParameters-v1330 ::= SEQUENCE { + cch-InterfMitigation-RefRecTypeA-r13 ENUMERATED {supported} OPTIONAL, + cch-InterfMitigation-RefRecTypeB-r13 ENUMERATED {supported} OPTIONAL, + cch-InterfMitigation-MaxNumCCs-r13 INTEGER (1.. maxServCell-r13) OPTIONAL, + crs-InterfMitigationTM1toTM9-r13 INTEGER (1.. maxServCell-r13) OPTIONAL +} + +MIMO-UE-Parameters-r13 ::= SEQUENCE { + parametersTM9-r13 MIMO-UE-ParametersPerTM-r13 OPTIONAL, + parametersTM10-r13 MIMO-UE-ParametersPerTM-r13 OPTIONAL, + srs-EnhancementsTDD-r13 ENUMERATED {supported} OPTIONAL, + srs-Enhancements-r13 ENUMERATED {supported} OPTIONAL, + interferenceMeasRestriction-r13 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-ParametersPerTM-r13 ::= SEQUENCE { + nonPrecoded-r13 MIMO-NonPrecodedCapabilities-r13 OPTIONAL, + beamformed-r13 MIMO-UE-BeamformedCapabilities-r13 OPTIONAL, + channelMeasRestriction-r13 ENUMERATED {supported} OPTIONAL, + dmrs-Enhancements-r13 ENUMERATED {supported} OPTIONAL, + csi-RS-EnhancementsTDD-r13 ENUMERATED {supported} OPTIONAL +} + +MIMO-CA-ParametersPerBoBC-r13 ::= SEQUENCE { + parametersTM9-r13 MIMO-CA-ParametersPerBoBCPerTM-r13 OPTIONAL, + parametersTM10-r13 MIMO-CA-ParametersPerBoBCPerTM-r13 OPTIONAL +} + +MIMO-CA-ParametersPerBoBCPerTM-r13 ::= SEQUENCE { + nonPrecoded-r13 MIMO-NonPrecodedCapabilities-r13 OPTIONAL, + beamformed-r13 MIMO-BeamformedCapabilityList-r13 OPTIONAL, + dmrs-Enhancements-r13 ENUMERATED {different} OPTIONAL +} + +MIMO-NonPrecodedCapabilities-r13 ::= SEQUENCE { + config1-r13 ENUMERATED {supported} OPTIONAL, + config2-r13 ENUMERATED {supported} OPTIONAL, + config3-r13 ENUMERATED {supported} OPTIONAL, + config4-r13 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-BeamformedCapabilities-r13 ::= SEQUENCE { + altCodebook-r13 ENUMERATED {supported} OPTIONAL, + mimo-BeamformedCapabilities-r13 MIMO-BeamformedCapabilityList-r13 +} + +MIMO-BeamformedCapabilityList-r13 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF MIMO-BeamformedCapabilities-r13 + +MIMO-BeamformedCapabilities-r13 ::= SEQUENCE { + k-Max-r13 INTEGER (1..8), + n-MaxList-r13 BIT STRING (SIZE (1..7)) OPTIONAL + } + +NonContiguousUL-RA-WithinCC-List-r10 ::= SEQUENCE (SIZE (1..maxBands)) OF NonContiguousUL-RA-WithinCC-r10 + +NonContiguousUL-RA-WithinCC-r10 ::= SEQUENCE { + nonContiguousUL-RA-WithinCC-Info-r10 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters ::= SEQUENCE { + supportedBandListEUTRA SupportedBandListEUTRA +} + +RF-Parameters-v9e0 ::= SEQUENCE { + supportedBandListEUTRA-v9e0 SupportedBandListEUTRA-v9e0 OPTIONAL +} + +RF-Parameters-v1020 ::= SEQUENCE { + supportedBandCombination-r10 SupportedBandCombination-r10 +} + +RF-Parameters-v1060 ::= SEQUENCE { + supportedBandCombinationExt-r10 SupportedBandCombinationExt-r10 +} + +RF-Parameters-v1090 ::= SEQUENCE { + supportedBandCombination-v1090 SupportedBandCombination-v1090 OPTIONAL +} + +RF-Parameters-v10f0 ::= SEQUENCE { + modifiedMPR-Behavior-r10 BIT STRING (SIZE (32)) OPTIONAL +} + +RF-Parameters-v10i0 ::= SEQUENCE { + supportedBandCombination-v10i0 SupportedBandCombination-v10i0 OPTIONAL +} + +RF-Parameters-v10j0 ::= SEQUENCE { + multiNS-Pmax-r10 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1130 ::= SEQUENCE { + supportedBandCombination-v1130 SupportedBandCombination-v1130 OPTIONAL +} + +RF-Parameters-v1180 ::= SEQUENCE { + freqBandRetrieval-r11 ENUMERATED {supported} OPTIONAL, + requestedBands-r11 SEQUENCE (SIZE (1.. maxBands)) OF FreqBandIndicator-r11 OPTIONAL, + supportedBandCombinationAdd-r11 SupportedBandCombinationAdd-r11 OPTIONAL +} + +RF-Parameters-v11d0 ::= SEQUENCE { + supportedBandCombinationAdd-v11d0 SupportedBandCombinationAdd-v11d0 OPTIONAL +} + +RF-Parameters-v1250 ::= SEQUENCE { + supportedBandListEUTRA-v1250 SupportedBandListEUTRA-v1250 OPTIONAL, + supportedBandCombination-v1250 SupportedBandCombination-v1250 OPTIONAL, + supportedBandCombinationAdd-v1250 SupportedBandCombinationAdd-v1250 OPTIONAL, + freqBandPriorityAdjustment-r12 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1270 ::= SEQUENCE { + supportedBandCombination-v1270 SupportedBandCombination-v1270 OPTIONAL, + supportedBandCombinationAdd-v1270 SupportedBandCombinationAdd-v1270 OPTIONAL +} + +RF-Parameters-v1310 ::= SEQUENCE { + eNB-RequestedParameters-r13 SEQUENCE { + reducedIntNonContCombRequested-r13 ENUMERATED {true} OPTIONAL, + requestedCCsDL-r13 INTEGER (2..32) OPTIONAL, + requestedCCsUL-r13 INTEGER (2..32) OPTIONAL, + skipFallbackCombRequested-r13 ENUMERATED {true} OPTIONAL + } OPTIONAL, + maximumCCsRetrieval-r13 ENUMERATED {supported} OPTIONAL, + skipFallbackCombinations-r13 ENUMERATED {supported} OPTIONAL, + reducedIntNonContComb-r13 ENUMERATED {supported} OPTIONAL, + supportedBandListEUTRA-v1310 SupportedBandListEUTRA-v1310 OPTIONAL, + supportedBandCombinationReduced-r13 SupportedBandCombinationReduced-r13 OPTIONAL +} + +RF-Parameters-v1320 ::= SEQUENCE { + supportedBandListEUTRA-v1320 SupportedBandListEUTRA-v1320 OPTIONAL, + supportedBandCombination-v1320 SupportedBandCombination-v1320 OPTIONAL, + supportedBandCombinationAdd-v1320 SupportedBandCombinationAdd-v1320 OPTIONAL, + supportedBandCombinationReduced-v1320 SupportedBandCombinationReduced-v1320 OPTIONAL +} + +RF-Parameters-v1380 ::= SEQUENCE { + supportedBandCombination-v1380 SupportedBandCombination-v1380 OPTIONAL, + supportedBandCombinationAdd-v1380 SupportedBandCombinationAdd-v1380 OPTIONAL, + supportedBandCombinationReduced-v1380 SupportedBandCombinationReduced-v1380 OPTIONAL +} + +RF-Parameters-v1390 ::= SEQUENCE { + supportedBandCombination-v1390 SupportedBandCombination-v1390 OPTIONAL, + supportedBandCombinationAdd-v1390 SupportedBandCombinationAdd-v1390 OPTIONAL, + supportedBandCombinationReduced-v1390 SupportedBandCombinationReduced-v1390 OPTIONAL +} + +RF-Parameters-v12b0 ::= SEQUENCE { + maxLayersMIMO-Indication-r12 ENUMERATED {supported} OPTIONAL +} + +SupportedBandCombination-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-r10 + +SupportedBandCombinationExt-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParametersExt-r10 + +SupportedBandCombination-v1090 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1090 + +SupportedBandCombination-v10i0 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v10i0 + +SupportedBandCombination-v1130 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1130 + +SupportedBandCombination-v1250 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1250 + +SupportedBandCombination-v1270 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1270 + +SupportedBandCombination-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1320 + +SupportedBandCombination-v1380 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1380 + +SupportedBandCombination-v1390 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1390 + +SupportedBandCombinationAdd-r11 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-r11 + +SupportedBandCombinationAdd-v11d0 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v10i0 + +SupportedBandCombinationAdd-v1250 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1250 + +SupportedBandCombinationAdd-v1270 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1270 + +SupportedBandCombinationAdd-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1320 + +SupportedBandCombinationAdd-v1380 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1380 + +SupportedBandCombinationAdd-v1390 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1390 + +SupportedBandCombinationReduced-r13 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-r13 + +SupportedBandCombinationReduced-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1320 + +SupportedBandCombinationReduced-v1380 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1380 + +SupportedBandCombinationReduced-v1390 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1390 + +BandCombinationParameters-r10 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r10 + +BandCombinationParametersExt-r10 ::= SEQUENCE { + supportedBandwidthCombinationSet-r10 SupportedBandwidthCombinationSet-r10 OPTIONAL +} + +BandCombinationParameters-v1090 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1090 + +BandCombinationParameters-v10i0::= SEQUENCE { +bandParameterList-v10i0 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v10i0 OPTIONAL +} + +BandCombinationParameters-v1130 ::= SEQUENCE { + multipleTimingAdvance-r11 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r11 ENUMERATED {supported} OPTIONAL, + bandParameterList-r11 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1130 OPTIONAL, + ... +} + +BandCombinationParameters-r11 ::= SEQUENCE { + bandParameterList-r11 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-r11, + supportedBandwidthCombinationSet-r11 SupportedBandwidthCombinationSet-r10 OPTIONAL, + multipleTimingAdvance-r11 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r11 ENUMERATED {supported} OPTIONAL, + bandInfoEUTRA-r11 BandInfoEUTRA, + ... +} + +BandCombinationParameters-v1250::= SEQUENCE { + dc-Support-r12 SEQUENCE { + asynchronous-r12 ENUMERATED {supported} OPTIONAL, + supportedCellGrouping-r12 CHOICE { + threeEntries-r12 BIT STRING (SIZE(3)), + fourEntries-r12 BIT STRING (SIZE(7)), + fiveEntries-r12 BIT STRING (SIZE(15)) + } OPTIONAL + } OPTIONAL, + supportedNAICS-2CRS-AP-r12 BIT STRING (SIZE (1..maxNAICS-Entries-r12)) OPTIONAL, + commSupportedBandsPerBC-r12 BIT STRING (SIZE (1.. maxBands)) OPTIONAL, + ... +} + +BandCombinationParameters-v1270 ::= SEQUENCE { + bandParameterList-v1270 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1270 OPTIONAL +} + +BandCombinationParameters-r13 ::= SEQUENCE { + differentFallbackSupported-r13 ENUMERATED {true} OPTIONAL, + bandParameterList-r13 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r13, + supportedBandwidthCombinationSet-r13 SupportedBandwidthCombinationSet-r10 OPTIONAL, + multipleTimingAdvance-r13 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r13 ENUMERATED {supported} OPTIONAL, + bandInfoEUTRA-r13 BandInfoEUTRA, + dc-Support-r13 SEQUENCE { + asynchronous-r13 ENUMERATED {supported} OPTIONAL, + supportedCellGrouping-r13 CHOICE { + threeEntries-r13 BIT STRING (SIZE(3)), + fourEntries-r13 BIT STRING (SIZE(7)), + fiveEntries-r13 BIT STRING (SIZE(15)) + } OPTIONAL + } OPTIONAL, + supportedNAICS-2CRS-AP-r13 BIT STRING (SIZE (1..maxNAICS-Entries-r12)) OPTIONAL, + commSupportedBandsPerBC-r13 BIT STRING (SIZE (1.. maxBands)) OPTIONAL +} + +BandCombinationParameters-v1320 ::= SEQUENCE { + bandParameterList-v1320 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1320 OPTIONAL, + additionalRx-Tx-PerformanceReq-r13 ENUMERATED {supported} OPTIONAL +} + +BandCombinationParameters-v1380 ::= SEQUENCE { + bandParameterList-v1380 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1380 OPTIONAL +} + +BandCombinationParameters-v1390 ::= SEQUENCE { + ue-CA-PowerClass-N-r13 ENUMERATED {class2} OPTIONAL +} + +SupportedBandwidthCombinationSet-r10 ::= BIT STRING (SIZE (1..maxBandwidthCombSet-r10)) + +BandParameters-r10 ::= SEQUENCE { + bandEUTRA-r10 FreqBandIndicator, + bandParametersUL-r10 BandParametersUL-r10 OPTIONAL, + bandParametersDL-r10 BandParametersDL-r10 OPTIONAL +} + +BandParameters-v1090 ::= SEQUENCE { + bandEUTRA-v1090 FreqBandIndicator-v9e0 OPTIONAL, + ... +} + +BandParameters-v10i0::= SEQUENCE { + bandParametersDL-v10i0 SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-v10i0 +} + +BandParameters-v1130 ::= SEQUENCE { + supportedCSI-Proc-r11 ENUMERATED {n1, n3, n4} +} + +BandParameters-r11 ::= SEQUENCE { + bandEUTRA-r11 FreqBandIndicator-r11, + bandParametersUL-r11 BandParametersUL-r10 OPTIONAL, + bandParametersDL-r11 BandParametersDL-r10 OPTIONAL, + supportedCSI-Proc-r11 ENUMERATED {n1, n3, n4} OPTIONAL +} + +BandParameters-v1270 ::= SEQUENCE { + bandParametersDL-v1270 SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-v1270 +} + +BandParameters-r13 ::= SEQUENCE { + bandEUTRA-r13 FreqBandIndicator-r11, + bandParametersUL-r13 BandParametersUL-r13 OPTIONAL, + bandParametersDL-r13 BandParametersDL-r13 OPTIONAL, + supportedCSI-Proc-r13 ENUMERATED {n1, n3, n4} OPTIONAL +} + +BandParameters-v1320 ::= SEQUENCE { + bandParametersDL-v1320 MIMO-CA-ParametersPerBoBC-r13 +} + +BandParameters-v1380 ::= SEQUENCE { + txAntennaSwitchDL-r13 INTEGER (1..32) OPTIONAL, + txAntennaSwitchUL-r13 INTEGER (1..32) OPTIONAL +} + +BandParametersUL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersUL-r10 + +BandParametersUL-r13 ::= CA-MIMO-ParametersUL-r10 + +CA-MIMO-ParametersUL-r10 ::= SEQUENCE { + ca-BandwidthClassUL-r10 CA-BandwidthClass-r10, + supportedMIMO-CapabilityUL-r10 MIMO-CapabilityUL-r10 OPTIONAL +} + +BandParametersDL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-r10 + +BandParametersDL-r13 ::= CA-MIMO-ParametersDL-r13 + +CA-MIMO-ParametersDL-r10 ::= SEQUENCE { + ca-BandwidthClassDL-r10 CA-BandwidthClass-r10, + supportedMIMO-CapabilityDL-r10 MIMO-CapabilityDL-r10 OPTIONAL +} + +CA-MIMO-ParametersDL-v10i0 ::= SEQUENCE { + fourLayerTM3-TM4-r10 ENUMERATED {supported} OPTIONAL +} + +CA-MIMO-ParametersDL-v1270 ::= SEQUENCE { + intraBandContiguousCC-InfoList-r12 SEQUENCE (SIZE (1..maxServCell-r10)) OF IntraBandContiguousCC-Info-r12 +} + +CA-MIMO-ParametersDL-r13 ::= SEQUENCE { + ca-BandwidthClassDL-r13 CA-BandwidthClass-r10, + supportedMIMO-CapabilityDL-r13 MIMO-CapabilityDL-r10 OPTIONAL, + fourLayerTM3-TM4-r13 ENUMERATED {supported} OPTIONAL, + intraBandContiguousCC-InfoList-r13 SEQUENCE (SIZE (1..maxServCell-r13)) OF IntraBandContiguousCC-Info-r12 +} + +IntraBandContiguousCC-Info-r12 ::= SEQUENCE { + fourLayerTM3-TM4-perCC-r12 ENUMERATED {supported} OPTIONAL, + supportedMIMO-CapabilityDL-r12 MIMO-CapabilityDL-r10 OPTIONAL, + supportedCSI-Proc-r12 ENUMERATED {n1, n3, n4} OPTIONAL +} + +CA-BandwidthClass-r10 ::= ENUMERATED {a, b, c, d, e, f, ...} + +MIMO-CapabilityUL-r10 ::= ENUMERATED {twoLayers, fourLayers} + +MIMO-CapabilityDL-r10 ::= ENUMERATED {twoLayers, fourLayers, eightLayers} + +SupportedBandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA + +SupportedBandListEUTRA-v9e0::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v9e0 + +SupportedBandListEUTRA-v1250 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1250 + +SupportedBandListEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1310 + +SupportedBandListEUTRA-v1320 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1320 + +SupportedBandEUTRA ::= SEQUENCE { + bandEUTRA FreqBandIndicator, + halfDuplex BOOLEAN +} + +SupportedBandEUTRA-v9e0 ::= SEQUENCE { + bandEUTRA-v9e0 FreqBandIndicator-v9e0 OPTIONAL +} + +SupportedBandEUTRA-v1250 ::= SEQUENCE { + dl-256QAM-r12 ENUMERATED {supported} OPTIONAL, + ul-64QAM-r12 ENUMERATED {supported} OPTIONAL +} + +SupportedBandEUTRA-v1310 ::= SEQUENCE { + ue-PowerClass-5-r13 ENUMERATED {supported} OPTIONAL +} +SupportedBandEUTRA-v1320 ::= SEQUENCE { + intraFreq-CE-NeedForGaps-r13 ENUMERATED {supported} OPTIONAL, + ue-PowerClass-N-r13 ENUMERATED {class1, class2, class4} OPTIONAL +} + +MeasParameters ::= SEQUENCE { + bandListEUTRA BandListEUTRA +} + +MeasParameters-v1020 ::= SEQUENCE { + bandCombinationListEUTRA-r10 BandCombinationListEUTRA-r10 +} + +MeasParameters-v1130 ::= SEQUENCE { + rsrqMeasWideband-r11 ENUMERATED {supported} OPTIONAL +} + +MeasParameters-v11a0 ::= SEQUENCE { + benefitsFromInterruption-r11 ENUMERATED {true} OPTIONAL +} + +MeasParameters-v1250 ::= SEQUENCE { + timerT312-r12 ENUMERATED {supported} OPTIONAL, + alternativeTimeToTrigger-r12 ENUMERATED {supported} OPTIONAL, + incMonEUTRA-r12 ENUMERATED {supported} OPTIONAL, + incMonUTRA-r12 ENUMERATED {supported} OPTIONAL, + extendedMaxMeasId-r12 ENUMERATED {supported} OPTIONAL, + extendedRSRQ-LowerRange-r12 ENUMERATED {supported} OPTIONAL, + rsrq-OnAllSymbols-r12 ENUMERATED {supported} OPTIONAL, + crs-DiscoverySignalsMeas-r12 ENUMERATED {supported} OPTIONAL, + csi-RS-DiscoverySignalsMeas-r12 ENUMERATED {supported} OPTIONAL +} + +MeasParameters-v1310 ::= SEQUENCE { + rs-SINR-Meas-r13 ENUMERATED {supported} OPTIONAL, + whiteCellList-r13 ENUMERATED {supported} OPTIONAL, + extendedMaxObjectId-r13 ENUMERATED {supported} OPTIONAL, + ul-PDCP-Delay-r13 ENUMERATED {supported} OPTIONAL, + extendedFreqPriorities-r13 ENUMERATED {supported} OPTIONAL, + multiBandInfoReport-r13 ENUMERATED {supported} OPTIONAL, + rssi-AndChannelOccupancyReporting-r13 ENUMERATED {supported} OPTIONAL +} + +BandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF BandInfoEUTRA + +BandCombinationListEUTRA-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandInfoEUTRA + +BandInfoEUTRA ::= SEQUENCE { + interFreqBandList InterFreqBandList, + interRAT-BandList InterRAT-BandList OPTIONAL +} + +InterFreqBandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterFreqBandInfo + +InterFreqBandInfo ::= SEQUENCE { + interFreqNeedForGaps BOOLEAN +} + +InterRAT-BandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterRAT-BandInfo + +InterRAT-BandInfo ::= SEQUENCE { + interRAT-NeedForGaps BOOLEAN +} + +IRAT-ParametersUTRA-FDD ::= SEQUENCE { + supportedBandListUTRA-FDD SupportedBandListUTRA-FDD +} + +IRAT-ParametersUTRA-v920 ::= SEQUENCE { + e-RedirectionUTRA-r9 ENUMERATED {supported} +} + +IRAT-ParametersUTRA-v9c0 ::= SEQUENCE { + voiceOverPS-HS-UTRA-FDD-r9 ENUMERATED {supported} OPTIONAL, + voiceOverPS-HS-UTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-FDD-ToUTRA-FDD-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-FDD-ToGERAN-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-TDD128-ToUTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-TDD128-ToGERAN-r9 ENUMERATED {supported} OPTIONAL +} + +IRAT-ParametersUTRA-v9h0 ::= SEQUENCE { + mfbi-UTRA-r9 ENUMERATED {supported} +} + +SupportedBandListUTRA-FDD ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-FDD + +SupportedBandUTRA-FDD ::= ENUMERATED { + bandI, bandII, bandIII, bandIV, bandV, bandVI, + bandVII, bandVIII, bandIX, bandX, bandXI, + bandXII, bandXIII, bandXIV, bandXV, bandXVI, ..., + bandXVII-8a0, bandXVIII-8a0, bandXIX-8a0, bandXX-8a0, + bandXXI-8a0, bandXXII-8a0, bandXXIII-8a0, bandXXIV-8a0, + bandXXV-8a0, bandXXVI-8a0, bandXXVII-8a0, bandXXVIII-8a0, + bandXXIX-8a0, bandXXX-8a0, bandXXXI-8a0, bandXXXII-8a0} + +IRAT-ParametersUTRA-TDD128 ::= SEQUENCE { + supportedBandListUTRA-TDD128 SupportedBandListUTRA-TDD128 +} + +SupportedBandListUTRA-TDD128 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD128 + +SupportedBandUTRA-TDD128 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD384 ::= SEQUENCE { + supportedBandListUTRA-TDD384 SupportedBandListUTRA-TDD384 +} + +SupportedBandListUTRA-TDD384 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD384 + +SupportedBandUTRA-TDD384 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD768 ::= SEQUENCE { + supportedBandListUTRA-TDD768 SupportedBandListUTRA-TDD768 +} + +SupportedBandListUTRA-TDD768 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD768 + +SupportedBandUTRA-TDD768 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD-v1020 ::= SEQUENCE { + e-RedirectionUTRA-TDD-r10 ENUMERATED {supported} +} + +IRAT-ParametersGERAN ::= SEQUENCE { + supportedBandListGERAN SupportedBandListGERAN, + interRAT-PS-HO-ToGERAN BOOLEAN +} + +IRAT-ParametersGERAN-v920 ::= SEQUENCE { + dtm-r9 ENUMERATED {supported} OPTIONAL, + e-RedirectionGERAN-r9 ENUMERATED {supported} OPTIONAL +} + +SupportedBandListGERAN ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandGERAN + +SupportedBandGERAN ::= ENUMERATED { + gsm450, gsm480, gsm710, gsm750, gsm810, gsm850, + gsm900P, gsm900E, gsm900R, gsm1800, gsm1900, + spare5, spare4, spare3, spare2, spare1, ...} + +IRAT-ParametersCDMA2000-HRPD ::= SEQUENCE { + supportedBandListHRPD SupportedBandListHRPD, + tx-ConfigHRPD ENUMERATED {single, dual}, + rx-ConfigHRPD ENUMERATED {single, dual} +} + +SupportedBandListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + +IRAT-ParametersCDMA2000-1XRTT ::= SEQUENCE { + supportedBandList1XRTT SupportedBandList1XRTT, + tx-Config1XRTT ENUMERATED {single, dual}, + rx-Config1XRTT ENUMERATED {single, dual} +} + +IRAT-ParametersCDMA2000-1XRTT-v920 ::= SEQUENCE { + e-CSFB-1XRTT-r9 ENUMERATED {supported}, + e-CSFB-ConcPS-Mob1XRTT-r9 ENUMERATED {supported} OPTIONAL +} + +IRAT-ParametersCDMA2000-1XRTT-v1020 ::= SEQUENCE { + e-CSFB-dual-1XRTT-r10 ENUMERATED {supported} +} + +IRAT-ParametersCDMA2000-v1130 ::= SEQUENCE { + cdma2000-NW-Sharing-r11 ENUMERATED {supported} OPTIONAL +} + +SupportedBandList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + +IRAT-ParametersWLAN-r13 ::= SEQUENCE { + supportedBandListWLAN-r13 SEQUENCE (SIZE (1..maxWLAN-Bands-r13)) OF WLAN-BandIndicator-r13 OPTIONAL +} + +CSG-ProximityIndicationParameters-r9 ::= SEQUENCE { + intraFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL, + interFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL, + utran-ProximityIndication-r9 ENUMERATED {supported} OPTIONAL +} + +NeighCellSI-AcquisitionParameters-r9 ::= SEQUENCE { + intraFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL, + interFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL, + utran-SI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL +} + +SON-Parameters-r9 ::= SEQUENCE { + rach-Report-r9 ENUMERATED {supported} OPTIONAL +} + +UE-BasedNetwPerfMeasParameters-r10 ::= SEQUENCE { + loggedMeasurementsIdle-r10 ENUMERATED {supported} OPTIONAL, + standaloneGNSS-Location-r10 ENUMERATED {supported} OPTIONAL +} + +UE-BasedNetwPerfMeasParameters-v1250 ::= SEQUENCE { + loggedMBSFNMeasurements-r12 ENUMERATED {supported} +} + +OTDOA-PositioningCapabilities-r10 ::= SEQUENCE { + otdoa-UE-Assisted-r10 ENUMERATED {supported}, + interFreqRSTD-Measurement-r10 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-r11 ::= SEQUENCE { + inDeviceCoexInd-r11 ENUMERATED {supported} OPTIONAL, + powerPrefInd-r11 ENUMERATED {supported} OPTIONAL, + ue-Rx-TxTimeDiffMeasurements-r11 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v11d0 ::= SEQUENCE { + inDeviceCoexInd-UL-CA-r11 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v1360 ::= SEQUENCE { + inDeviceCoexInd-HardwareSharingInd-r13 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-r11 ::= SEQUENCE { + mbms-SCell-r11 ENUMERATED {supported} OPTIONAL, + mbms-NonServingCell-r11 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-v1250 ::= SEQUENCE { + mbms-AsyncDC-r12 ENUMERATED {supported} OPTIONAL +} + +SCPTM-Parameters-r13 ::= SEQUENCE { + scptm-ParallelReception-r13 ENUMERATED {supported} OPTIONAL, + scptm-SCell-r13 ENUMERATED {supported} OPTIONAL, + scptm-NonServingCell-r13 ENUMERATED {supported} OPTIONAL, + scptm-AsyncDC-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-r13 ::= SEQUENCE { + ce-ModeA-r13 ENUMERATED {supported} OPTIONAL, + ce-ModeB-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1320 ::= SEQUENCE { + intraFreqA3-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL, + intraFreqA3-CE-ModeB-r13 ENUMERATED {supported} OPTIONAL, + intraFreqHO-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL, + intraFreqHO-CE-ModeB-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1350 ::= SEQUENCE { + unicastFrequencyHopping-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1370 ::= SEQUENCE { + tm9-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL, + tm9-CE-ModeB-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1380 ::= SEQUENCE { + tm6-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL +} + +LAA-Parameters-r13 ::= SEQUENCE { + crossCarrierSchedulingLAA-DL-r13 ENUMERATED {supported} OPTIONAL, + csi-RS-DRS-RRM-MeasurementsLAA-r13 ENUMERATED {supported} OPTIONAL, + downlinkLAA-r13 ENUMERATED {supported} OPTIONAL, + endingDwPTS-r13 ENUMERATED {supported} OPTIONAL, + secondSlotStartingPosition-r13 ENUMERATED {supported} OPTIONAL, + tm9-LAA-r13 ENUMERATED {supported} OPTIONAL, + tm10-LAA-r13 ENUMERATED {supported} OPTIONAL +} + +WLAN-IW-Parameters-r12 ::= SEQUENCE { + wlan-IW-RAN-Rules-r12 ENUMERATED {supported} OPTIONAL, + wlan-IW-ANDSF-Policies-r12 ENUMERATED {supported} OPTIONAL +} + +LWA-Parameters-r13 ::= SEQUENCE { + lwa-r13 ENUMERATED {supported} OPTIONAL, + lwa-SplitBearer-r13 ENUMERATED {supported} OPTIONAL, + wlan-MAC-Address-r13 OCTET STRING (SIZE (6)) OPTIONAL, + lwa-BufferSize-r13 ENUMERATED {supported} OPTIONAL +} + +WLAN-IW-Parameters-v1310 ::= SEQUENCE { + rclwi-r13 ENUMERATED {supported} OPTIONAL +} + +LWIP-Parameters-r13 ::= SEQUENCE { + lwip-r13 ENUMERATED {supported} OPTIONAL +} + +NAICS-Capability-List-r12 ::= SEQUENCE (SIZE (1..maxNAICS-Entries-r12)) OF NAICS-Capability-Entry-r12 + + +NAICS-Capability-Entry-r12 ::= SEQUENCE { + numberOfNAICS-CapableCC-r12 INTEGER(1..5), + numberOfAggregatedPRB-r12 ENUMERATED { + n50, n75, n100, n125, n150, n175, + n200, n225, n250, n275, n300, n350, + n400, n450, n500, spare}, + ... +} + +SL-Parameters-r12 ::= SEQUENCE { + commSimultaneousTx-r12 ENUMERATED {supported} OPTIONAL, + commSupportedBands-r12 FreqBandIndicatorListEUTRA-r12 OPTIONAL, + discSupportedBands-r12 SupportedBandInfoList-r12 OPTIONAL, + discScheduledResourceAlloc-r12 ENUMERATED {supported} OPTIONAL, + disc-UE-SelectedResourceAlloc-r12 ENUMERATED {supported} OPTIONAL, + disc-SLSS-r12 ENUMERATED {supported} OPTIONAL, + discSupportedProc-r12 ENUMERATED {n50, n400} OPTIONAL +} + +SL-Parameters-v1310 ::= SEQUENCE { + discSysInfoReporting-r13 ENUMERATED {supported} OPTIONAL, + commMultipleTx-r13 ENUMERATED {supported} OPTIONAL, + discInterFreqTx-r13 ENUMERATED {supported} OPTIONAL, + discPeriodicSLSS-r13 ENUMERATED {supported} OPTIONAL +} + + +SupportedBandInfoList-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandInfo-r12 + +SupportedBandInfo-r12 ::= SEQUENCE { + support-r12 ENUMERATED {supported} OPTIONAL +} + +FreqBandIndicatorListEUTRA-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicator-r11 + + +UE-RadioPagingInfo-r12 ::= SEQUENCE { + ue-Category-v1250 INTEGER (0) OPTIONAL, + ..., + [[ ue-CategoryDL-v1310 ENUMERATED {m1} OPTIONAL, + ce-ModeA-r13 ENUMERATED {true} OPTIONAL, + ce-ModeB-r13 ENUMERATED {true} OPTIONAL + ]] + +} + + +UE-TimersAndConstants ::= SEQUENCE { + t300 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t301 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t310 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n310 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ..., + [[ t300-v1310 ENUMERATED { + ms2500, ms3000, ms3500, ms4000, ms5000, ms6000, ms8000, + ms10000} OPTIONAL, -- Need OR + t301-v1310 ENUMERATED { + ms2500, ms3000, ms3500, ms4000, ms5000, ms6000, ms8000, + ms10000} OPTIONAL -- Need OR + ]], + [[ t310-v1330 ENUMERATED {ms4000, ms6000} + OPTIONAL -- Need OR + ]] +} + + +VisitedCellInfoList-r12 ::= SEQUENCE (SIZE (1..maxCellHistory-r12)) OF VisitedCellInfo-r12 + +VisitedCellInfo-r12 ::= SEQUENCE { + visitedCellId-r12 CHOICE { + cellGlobalId-r12 CellGlobalIdEUTRA, + pci-arfcn-r12 SEQUENCE { + physCellId-r12 PhysCellId, + carrierFreq-r12 ARFCN-ValueEUTRA-r9 + } + } OPTIONAL, + timeSpent-r12 INTEGER (0..4095), + ... +} + + +WLAN-OffloadConfig-r12 ::= SEQUENCE { + thresholdRSRP-r12 SEQUENCE { + thresholdRSRP-Low-r12 RSRP-Range, + thresholdRSRP-High-r12 RSRP-Range + } OPTIONAL, -- Need OR + thresholdRSRQ-r12 SEQUENCE { + thresholdRSRQ-Low-r12 RSRQ-Range, + thresholdRSRQ-High-r12 RSRQ-Range + } OPTIONAL, -- Need OR + thresholdRSRQ-OnAllSymbolsWithWB-r12 SEQUENCE { + thresholdRSRQ-OnAllSymbolsWithWB-Low-r12 RSRQ-Range, + thresholdRSRQ-OnAllSymbolsWithWB-High-r12 RSRQ-Range + } OPTIONAL, -- Need OP + thresholdRSRQ-OnAllSymbols-r12 SEQUENCE { + thresholdRSRQ-OnAllSymbolsLow-r12 RSRQ-Range, + thresholdRSRQ-OnAllSymbolsHigh-r12 RSRQ-Range + } OPTIONAL, -- Need OP + thresholdRSRQ-WB-r12 SEQUENCE { + thresholdRSRQ-WB-Low-r12 RSRQ-Range, + thresholdRSRQ-WB-High-r12 RSRQ-Range + } OPTIONAL, -- Need OP + + thresholdChannelUtilization-r12 SEQUENCE { + thresholdChannelUtilizationLow-r12 INTEGER (0..255), + thresholdChannelUtilizationHigh-r12 INTEGER (0..255) + } OPTIONAL, -- Need OR + thresholdBackhaul-Bandwidth-r12 SEQUENCE { + thresholdBackhaulDL-BandwidthLow-r12 WLAN-backhaulRate-r12, + thresholdBackhaulDL-BandwidthHigh-r12 WLAN-backhaulRate-r12, + thresholdBackhaulUL-BandwidthLow-r12 WLAN-backhaulRate-r12, + thresholdBackhaulUL-BandwidthHigh-r12 WLAN-backhaulRate-r12 + } OPTIONAL, -- Need OR + thresholdWLAN-RSSI-r12 SEQUENCE { + thresholdWLAN-RSSI-Low-r12 INTEGER (0..255), + thresholdWLAN-RSSI-High-r12 INTEGER (0..255) + } OPTIONAL, -- Need OR + offloadPreferenceIndicator-r12 BIT STRING (SIZE (16)) OPTIONAL, -- Need OR + t-SteeringWLAN-r12 T-Reselection OPTIONAL, -- Need OR + ... +} + +WLAN-backhaulRate-r12 ::= ENUMERATED + {r0, r4, r8, r16, r32, r64, r128, r256, r512, + r1024, r2048, r4096, r8192, r16384, r32768, r65536, r131072, + r262144, r524288, r1048576, r2097152, r4194304, r8388608, + r16777216, r33554432, r67108864, r134217728, r268435456, + r536870912, r1073741824, r2147483648, r4294967296} + + +MBMS-NotificationConfig-r9 ::= SEQUENCE { + notificationRepetitionCoeff-r9 ENUMERATED {n2, n4}, + notificationOffset-r9 INTEGER (0..10), + notificationSF-Index-r9 INTEGER (1..6) +} + + +MBMS-ServiceList-r13 ::= SEQUENCE (SIZE (0..maxMBMS-ServiceListPerUE-r13)) OF MBMS-ServiceInfo-r13 + +MBMS-ServiceInfo-r13 ::= SEQUENCE { + tmgi-r13 TMGI-r9 +} + + +MBSFN-AreaId-r12 ::= INTEGER (0..255) + + +MBSFN-AreaInfoList-r9 ::= SEQUENCE (SIZE(1..maxMBSFN-Area)) OF MBSFN-AreaInfo-r9 + +MBSFN-AreaInfo-r9 ::= SEQUENCE { + mbsfn-AreaId-r9 MBSFN-AreaId-r12, + non-MBSFNregionLength ENUMERATED {s1, s2}, + notificationIndicator-r9 INTEGER (0..7), + mcch-Config-r9 SEQUENCE { + mcch-RepetitionPeriod-r9 ENUMERATED {rf32, rf64, rf128, rf256}, + mcch-Offset-r9 INTEGER (0..10), + mcch-ModificationPeriod-r9 ENUMERATED {rf512, rf1024}, + sf-AllocInfo-r9 BIT STRING (SIZE(6)), + signallingMCS-r9 ENUMERATED {n2, n7, n13, n19} + }, + ... +} + + +MBSFN-SubframeConfig ::= SEQUENCE { + radioframeAllocationPeriod ENUMERATED {n1, n2, n4, n8, n16, n32}, + radioframeAllocationOffset INTEGER (0..7), + subframeAllocation CHOICE { + oneFrame BIT STRING (SIZE(6)), + fourFrames BIT STRING (SIZE(24)) + } +} + +PMCH-InfoList-r9 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-Info-r9 + +PMCH-InfoListExt-r12 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-InfoExt-r12 + +PMCH-Info-r9 ::= SEQUENCE { + pmch-Config-r9 PMCH-Config-r9, + mbms-SessionInfoList-r9 MBMS-SessionInfoList-r9, + ... +} + +PMCH-InfoExt-r12 ::= SEQUENCE { + pmch-Config-r12 PMCH-Config-r12, + mbms-SessionInfoList-r12 MBMS-SessionInfoList-r9, + ... +} + +MBMS-SessionInfoList-r9 ::= SEQUENCE (SIZE (0..maxSessionPerPMCH)) OF MBMS-SessionInfo-r9 + +MBMS-SessionInfo-r9 ::= SEQUENCE { + tmgi-r9 TMGI-r9, + sessionId-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Need OR + logicalChannelIdentity-r9 INTEGER (0..maxSessionPerPMCH-1), + ... +} + +PMCH-Config-r9 ::= SEQUENCE { + sf-AllocEnd-r9 INTEGER (0..1535), + dataMCS-r9 INTEGER (0..28), + mch-SchedulingPeriod-r9 ENUMERATED { + rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024}, + ... +} + +PMCH-Config-r12 ::= SEQUENCE { + sf-AllocEnd-r12 INTEGER (0..1535), + dataMCS-r12 CHOICE { + normal-r12 INTEGER (0..28), + higerOrder-r12 INTEGER (0..27) + }, + mch-SchedulingPeriod-r12 ENUMERATED { + rf4, rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024}, + ... +} + +TMGI-r9 ::= SEQUENCE { + plmn-Id-r9 CHOICE { + plmn-Index-r9 INTEGER (1..maxPLMN-r11), + explicitValue-r9 PLMN-Identity + }, + serviceId-r9 OCTET STRING (SIZE (3)) +} + + + +SC-MTCH-InfoList-r13 ::= SEQUENCE (SIZE (0..maxSC-MTCH-r13)) OF SC-MTCH-Info-r13 + +SC-MTCH-Info-r13 ::= SEQUENCE { + mbmsSessionInfo-r13 MBMSSessionInfo-r13, + g-RNTI-r13 BIT STRING(SIZE(16)), + sc-mtch-schedulingInfo-r13 SC-MTCH-SchedulingInfo-r13 OPTIONAL, -- Need OP + sc-mtch-neighbourCell-r13 BIT STRING (SIZE(maxNeighCell-SCPTM-r13)) OPTIONAL, -- Need OP + ..., + [[ p-a-r13 ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} OPTIONAL -- Need ON + ]] +} + +MBMSSessionInfo-r13 ::= SEQUENCE { + tmgi-r13 TMGI-r9, + sessionId-r13 OCTET STRING (SIZE (1)) OPTIONAL -- Need OR +} + +SC-MTCH-SchedulingInfo-r13::= SEQUENCE { + onDurationTimerSCPTM-r13 ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200}, + drx-InactivityTimerSCPTM-r13 ENUMERATED { + psf0, psf1, psf2, psf4, psf8, + psf10, psf20, psf40, + psf80, psf160, ps320, + psf640, psf960, + psf1280, psf1920, psf2560}, + schedulingPeriodStartOffsetSCPTM-r13 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2048), + sf4096 INTEGER(0..4096), + sf8192 INTEGER(0..8192) + }, + ... +} + + +SCPTM-NeighbourCellList-r13 ::= SEQUENCE (SIZE (1..maxNeighCell-SCPTM-r13)) OF PCI-ARFCN-r13 + +PCI-ARFCN-r13 ::= SEQUENCE { + physCellId-r13 PhysCellId, + carrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL +} + + +SL-CommConfig-r12 ::= SEQUENCE { + commTxResources-r12 CHOICE { + release NULL, + setup CHOICE { + scheduled-r12 SEQUENCE { + sl-RNTI-r12 C-RNTI, + mac-MainConfig-r12 MAC-MainConfigSL-r12, + sc-CommTxConfig-r12 SL-CommResourcePool-r12, + mcs-r12 INTEGER (0..28) OPTIONAL -- Need OP + }, + ue-Selected-r12 SEQUENCE { + -- Pool for normal usage + commTxPoolNormalDedicated-r12 SEQUENCE { + poolToReleaseList-r12 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r12 SL-CommTxPoolToAddModList-r12 OPTIONAL -- Need ON + } + } + } + } OPTIONAL, -- Need ON + ..., + [[ commTxResources-v1310 CHOICE { + release NULL, + setup CHOICE { + scheduled-v1310 SEQUENCE { + logicalChGroupInfoList-r13 LogicalChGroupInfoList-r13, + multipleTx-r13 BOOLEAN + }, + ue-Selected-v1310 SEQUENCE { + commTxPoolNormalDedicatedExt-r13 SEQUENCE { + poolToReleaseListExt-r13 SL-TxPoolToReleaseListExt-r13 OPTIONAL, -- Need ON + poolToAddModListExt-r13 SL-CommTxPoolToAddModListExt-r13 OPTIONAL -- Need ON + } + } + } + } OPTIONAL, -- Need ON + commTxAllowRelayDedicated-r13 BOOLEAN OPTIONAL -- Need ON + ]] +} + +LogicalChGroupInfoList-r13 ::= SEQUENCE (SIZE (1..maxLCG-r13)) OF SL-PriorityList-r13 + +SL-CommTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-CommTxPoolToAddMod-r12 + +SL-CommTxPoolToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF SL-CommTxPoolToAddModExt-r13 + +SL-CommTxPoolToAddMod-r12 ::= SEQUENCE { + poolIdentity-r12 SL-TxPoolIdentity-r12, + pool-r12 SL-CommResourcePool-r12 +} + +SL-CommTxPoolToAddModExt-r13 ::= SEQUENCE { + poolIdentity-v1310 SL-TxPoolIdentity-v1310, + pool-r13 SL-CommResourcePool-r12 +} + +MAC-MainConfigSL-r12 ::= SEQUENCE { + periodic-BSR-TimerSL PeriodicBSR-Timer-r12 OPTIONAL, -- Need ON + retx-BSR-TimerSL RetxBSR-Timer-r12 +} + + +SL-CommTxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-CommResourcePool-r12 + +SL-CommTxPoolListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF SL-CommResourcePool-r12 + +SL-CommRxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-RxPool-r12)) OF SL-CommResourcePool-r12 + +SL-CommResourcePool-r12 ::= SEQUENCE { + sc-CP-Len-r12 SL-CP-Len-r12, + sc-Period-r12 SL-PeriodComm-r12, + sc-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + data-CP-Len-r12 SL-CP-Len-r12, + dataHoppingConfig-r12 SL-HoppingConfigComm-r12, + ue-SelectedResourceConfig-r12 SEQUENCE { + data-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + trpt-Subset-r12 SL-TRPT-Subset-r12 OPTIONAL -- Need OP + } OPTIONAL, -- Need OR + rxParametersNCell-r12 SEQUENCE { + tdd-Config-r12 TDD-Config OPTIONAL, -- Need OP + syncConfigIndex-r12 INTEGER (0..15) + } OPTIONAL, -- Need OR + txParameters-r12 SEQUENCE { + sc-TxParameters-r12 SL-TxParameters-r12, + dataTxParameters-r12 SL-TxParameters-r12 + } OPTIONAL, -- Cond Tx + ..., + [[ priorityList-r13 SL-PriorityList-r13 OPTIONAL -- Cond Tx + ]] + +} + +SL-TRPT-Subset-r12 ::= BIT STRING (SIZE (3..5)) + + +SL-CP-Len-r12 ::= ENUMERATED {normal, extended} + + +SL-DiscConfig-r12 ::= SEQUENCE { + discTxResources-r12 CHOICE { + release NULL, + setup CHOICE { + scheduled-r12 SEQUENCE { + discTxConfig-r12 SL-DiscResourcePool-r12 OPTIONAL, -- Need ON + discTF-IndexList-r12 SL-TF-IndexPairList-r12 OPTIONAL, -- Need ON + discHoppingConfig-r12 SL-HoppingConfigDisc-r12 + OPTIONAL -- Need ON + }, + ue-Selected-r12 SEQUENCE { + discTxPoolDedicated-r12 SEQUENCE { + poolToReleaseList-r12 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r12 SL-DiscTxPoolToAddModList-r12 OPTIONAL -- Need ON + } OPTIONAL -- Need ON + } + } + } OPTIONAL, -- Need ON + ..., + [[ discTF-IndexList-v1260 CHOICE { + release NULL, + setup SEQUENCE { + discTF-IndexList-r12b SL-TF-IndexPairList-r12b + } + } OPTIONAL -- Need ON + ]], + [[ discTxResourcesPS-r13 CHOICE { + release NULL, + setup CHOICE { + scheduled-r13 SL-DiscTxConfigScheduled-r13, + ue-Selected-r13 SEQUENCE { + discTxPoolPS-Dedicated-r13 SL-DiscTxPoolDedicated-r13 + } + } + } OPTIONAL, -- Need ON + discTxInterFreqInfo-r13 CHOICE { + release NULL, + setup SEQUENCE { + discTxCarrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need OR + discTxRefCarrierDedicated-r13 SL-DiscTxRefCarrierDedicated-r13 OPTIONAL, -- Need OR + discTxInfoInterFreqListAdd-r13 SL-DiscTxInfoInterFreqListAdd-r13 OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + gapRequestsAllowedDedicated-r13 BOOLEAN OPTIONAL, -- Need ON + discRxGapConfig-r13 CHOICE { + release NULL, + setup SL-GapConfig-r13 + } OPTIONAL, -- Need ON + discTxGapConfig-r13 CHOICE { + release NULL, + setup SL-GapConfig-r13 + } OPTIONAL, -- Need ON + discSysInfoToReportConfig-r13 CHOICE { + release NULL, + setup SL-DiscSysInfoToReportFreqList-r13 + } OPTIONAL -- Need ON + ]] +} + +SL-DiscSysInfoToReportFreqList-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF ARFCN-ValueEUTRA-r9 + +SL-DiscTxInfoInterFreqListAdd-r13 ::= SEQUENCE { + discTxFreqToAddModList-r13 SEQUENCE (SIZE (1..maxFreq)) OF SL-DiscTxResourceInfoPerFreq-r13 OPTIONAL, -- Need ON + discTxFreqToReleaseList-r13 SEQUENCE (SIZE (1..maxFreq)) OF ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need ON + ... +} + +SL-DiscTxResourceInfoPerFreq-r13 ::= SEQUENCE { + discTxCarrierFreq-r13 ARFCN-ValueEUTRA-r9, + discTxResources-r13 SL-DiscTxResource-r13 OPTIONAL, -- Need OR + discTxResourcesPS-r13 SL-DiscTxResource-r13 OPTIONAL, -- Need OR + discTxRefCarrierDedicated-r13 SL-DiscTxRefCarrierDedicated-r13 OPTIONAL, -- Need OR + discCellSelectionInfo-r13 CellSelectionInfoNFreq-r13 OPTIONAL, -- Need OR + ... +} + +SL-DiscTxResource-r13 ::= CHOICE { + release NULL, + setup CHOICE { + scheduled-r13 SL-DiscTxConfigScheduled-r13, + ue-Selected-r13 SL-DiscTxPoolDedicated-r13 + } +} + +SL-DiscTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-DiscTxPoolToAddMod-r12 + +SL-DiscTxPoolToAddMod-r12 ::= SEQUENCE { + poolIdentity-r12 SL-TxPoolIdentity-r12, + pool-r12 SL-DiscResourcePool-r12 +} + +SL-DiscTxConfigScheduled-r13 ::= SEQUENCE { + discTxConfig-r13 SL-DiscResourcePool-r12 OPTIONAL, -- Need ON + discTF-IndexList-r13 SL-TF-IndexPairList-r12b OPTIONAL, -- Need ON + discHoppingConfig-r13 SL-HoppingConfigDisc-r12 OPTIONAL,-- Need ON + ... +} + +SL-DiscTxPoolDedicated-r13 ::= SEQUENCE { + poolToReleaseList-r13 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r13 SL-DiscTxPoolToAddModList-r12 OPTIONAL -- Need ON +} + +SL-TF-IndexPairList-r12 ::= SEQUENCE (SIZE (1..maxSL-TF-IndexPair-r12)) OF SL-TF-IndexPair-r12 + +SL-TF-IndexPair-r12 ::= SEQUENCE { + discSF-Index-r12 INTEGER (1.. 200) OPTIONAL, -- Need ON + discPRB-Index-r12 INTEGER (1.. 50) OPTIONAL -- Need ON +} + +SL-TF-IndexPairList-r12b ::= SEQUENCE (SIZE (1..maxSL-TF-IndexPair-r12)) OF SL-TF-IndexPair-r12b + +SL-TF-IndexPair-r12b ::= SEQUENCE { + discSF-Index-r12b INTEGER (0..209) OPTIONAL, -- Need ON + discPRB-Index-r12b INTEGER (0..49) OPTIONAL -- Need ON +} + +SL-DiscTxRefCarrierDedicated-r13 ::= CHOICE { + pCell NULL, + sCell SCellIndex-r10 +} + + +SL-DiscTxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-DiscResourcePool-r12 + +SL-DiscRxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-RxPool-r12)) OF SL-DiscResourcePool-r12 + +SL-DiscResourcePool-r12 ::= SEQUENCE { + cp-Len-r12 SL-CP-Len-r12, + discPeriod-r12 ENUMERATED {rf32, rf64, rf128, + rf256, rf512, rf1024, rf16-v1310, spare}, + numRetx-r12 INTEGER (0..3), + numRepetition-r12 INTEGER (1..50), + tf-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + txParameters-r12 SEQUENCE { + txParametersGeneral-r12 SL-TxParameters-r12, + ue-SelectedResourceConfig-r12 SEQUENCE { + poolSelection-r12 CHOICE { + rsrpBased-r12 SL-PoolSelectionConfig-r12, + random-r12 NULL + }, + txProbability-r12 ENUMERATED {p25, p50, p75, p100} + } OPTIONAL -- Need OR + } OPTIONAL, -- Cond Tx + rxParameters-r12 SEQUENCE { + tdd-Config-r12 TDD-Config OPTIONAL, -- Need OR + syncConfigIndex-r12 INTEGER (0..15) + } OPTIONAL, -- Need OR + ..., + [[ discPeriod-v1310 CHOICE { + release NULL, + setup ENUMERATED {rf4, rf6, rf7, rf8, + rf12, rf14, rf24, rf28} + } OPTIONAL, -- Need ON + rxParamsAddNeighFreq-r13 CHOICE { + release NULL, + setup SEQUENCE { + physCellId-r13 PhysCellIdList-r13 + } + } OPTIONAL, -- Need ON + txParamsAddNeighFreq-r13 CHOICE { + release NULL, + setup SEQUENCE { + physCellId-r13 PhysCellIdList-r13, + p-Max P-Max OPTIONAL, -- Need OP + tdd-Config-r13 TDD-Config OPTIONAL, -- Cond TDD-OR + tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD-OR + freqInfo SEQUENCE { + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission + }, + referenceSignalPower INTEGER (-60..50), + syncConfigIndex-r13 INTEGER (0..15) OPTIONAL -- Need OR + } + } OPTIONAL -- Need ON + ]], + [[ txParamsAddNeighFreq-v1370 CHOICE { + release NULL, + setup SEQUENCE { + freqInfo-v1370 SEQUENCE { + additionalSpectrumEmission-v1370 AdditionalSpectrumEmission-v10l0 + } + } + } OPTIONAL -- Need ON + ]] + +} + +PhysCellIdList-r13 ::= SEQUENCE (SIZE (1.. maxSL-DiscCells-r13)) OF PhysCellId + +SL-PoolSelectionConfig-r12 ::= SEQUENCE { + threshLow-r12 RSRP-RangeSL2-r12, + threshHigh-r12 RSRP-RangeSL2-r12 +} + + +SL-DiscTxPowerInfoList-r12 ::= SEQUENCE (SIZE (maxSL-DiscPowerClass-r12)) OF SL-DiscTxPowerInfo-r12 + +SL-DiscTxPowerInfo-r12 ::= SEQUENCE { + discMaxTxPower-r12 P-Max, + ... +} + + +SL-GapConfig-r13 ::= SEQUENCE { + gapPatternList-r13 SL-GapPatternList-r13 +} + +SL-GapPatternList-r13 ::= SEQUENCE (SIZE (1..maxSL-GP-r13)) OF SL-GapPattern-r13 + +SL-GapPattern-r13 ::= SEQUENCE { + gapPeriod-r13 ENUMERATED {sf40, sf60, sf70, sf80, sf120, sf140, sf160, + sf240, sf280, sf320, sf640, sf1280, sf2560, sf5120, + sf10240}, + gapOffset-r12 SL-OffsetIndicator-r12, + gapSubframeBitmap-r13 BIT STRING (SIZE (1..10240)), + ... +} + + +SL-GapRequest-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-GapFreqInfo-r13 + +SL-GapFreqInfo-r13 ::= SEQUENCE { + carrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL, + gapPatternList-r13 SL-GapPatternList-r13 +} + + +SL-HoppingConfigComm-r12 ::= SEQUENCE { + hoppingParameter-r12 INTEGER (0..504), + numSubbands-r12 ENUMERATED {ns1, ns2, ns4}, + rb-Offset-r12 INTEGER (0..110) +} + +SL-HoppingConfigDisc-r12 ::= SEQUENCE { + a-r12 INTEGER (1..200), + b-r12 INTEGER (1..10), + c-r12 ENUMERATED {n1, n5} +} + + +SL-OffsetIndicator-r12 ::= CHOICE { + small-r12 INTEGER (0..319), + large-r12 INTEGER (0..10239) +} + +SL-OffsetIndicatorSync-r12 ::= INTEGER (0..39) + + +SL-PeriodComm-r12 ::= ENUMERATED {sf40, sf60, sf70, sf80, sf120, sf140, + sf160, sf240, sf280, sf320, spare6, spare5, + spare4, spare3, spare2, spare} + + +SL-PriorityList-r13 ::= SEQUENCE (SIZE (1..maxSL-Prio-r13)) OF SL-Priority-r13 + +SL-Priority-r13 ::= INTEGER (1..8) + + +SLSSID-r12 ::= INTEGER (0..167) + + +SL-SyncConfigList-r12 ::= SEQUENCE (SIZE (1..maxSL-SyncConfig-r12)) OF SL-SyncConfig-r12 + +SL-SyncConfig-r12 ::= SEQUENCE { + syncCP-Len-r12 SL-CP-Len-r12, + syncOffsetIndicator-r12 SL-OffsetIndicatorSync-r12, + slssid-r12 SLSSID-r12, + txParameters-r12 SEQUENCE { + syncTxParameters-r12 SL-TxParameters-r12, + syncTxThreshIC-r12 RSRP-RangeSL-r12, + syncInfoReserved-r12 BIT STRING (SIZE (19)) OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + rxParamsNCell-r12 SEQUENCE { + physCellId-r12 PhysCellId, + discSyncWindow-r12 ENUMERATED {w1, w2} + } OPTIONAL, -- Need OR + ..., + [[ syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + +SL-SyncConfigListNFreq-r13 ::= SEQUENCE (SIZE (1..maxSL-SyncConfig-r12)) OF SL-SyncConfigNFreq-r13 + +SL-SyncConfigNFreq-r13 ::= SEQUENCE { + asyncParameters-r13 SEQUENCE { + syncCP-Len-r13 SL-CP-Len-r12, + syncOffsetIndicator-r13 SL-OffsetIndicatorSync-r12, + slssid-r13 SLSSID-r12 + } OPTIONAL, -- Need OR + txParameters-r13 SEQUENCE { + syncTxParameters-r13 SL-TxParameters-r12, + syncTxThreshIC-r13 RSRP-RangeSL-r12, + syncInfoReserved-r13 BIT STRING (SIZE (19)) OPTIONAL, -- Need OR + syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + rxParameters-r13 SEQUENCE { + discSyncWindow-r13 ENUMERATED {w1, w2} + } OPTIONAL, -- Need OR + ... +} + +SL-DiscSysInfoReport-r13 ::= SEQUENCE { + plmn-IdentityList-r13 PLMN-IdentityList OPTIONAL, + cellIdentity-13 CellIdentity OPTIONAL, + carrierFreqInfo-13 ARFCN-ValueEUTRA-r9 OPTIONAL, + discRxResources-r13 SL-DiscRxPoolList-r12 OPTIONAL, + discTxPoolCommon-r13 SL-DiscTxPoolList-r12 OPTIONAL, + discTxPowerInfo-r13 SL-DiscTxPowerInfoList-r12 OPTIONAL, + discSyncConfig-r13 SL-SyncConfigNFreq-r13 OPTIONAL, + discCellSelectionInfo-r13 SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + q-RxLevMinOffset-r13 INTEGER (1..8) OPTIONAL + } OPTIONAL, + cellReselectionInfo-r13 SEQUENCE { + q-Hyst-r13 ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + q-RxLevMin-r13 Q-RxLevMin, + t-ReselectionEUTRA-r13 T-Reselection + } OPTIONAL, + tdd-Config-r13 TDD-Config OPTIONAL, + freqInfo-r13 SEQUENCE { + ul-CarrierFreq-r13 ARFCN-ValueEUTRA OPTIONAL, + ul-Bandwidth-r13 ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, + additionalSpectrumEmission-r13 AdditionalSpectrumEmission OPTIONAL + } OPTIONAL, + p-Max-r13 P-Max OPTIONAL, + referenceSignalPower-r13 INTEGER (-60..50) OPTIONAL, + ..., + [[ + freqInfo-v1370 SEQUENCE { + additionalSpectrumEmission-v1370 AdditionalSpectrumEmission-v10l0 + } OPTIONAL + ]] +} + + +SL-TF-ResourceConfig-r12 ::= SEQUENCE { + prb-Num-r12 INTEGER (1..100), + prb-Start-r12 INTEGER (0..99), + prb-End-r12 INTEGER (0..99), + offsetIndicator-r12 SL-OffsetIndicator-r12, + subframeBitmap-r12 SubframeBitmapSL-r12 +} + +SubframeBitmapSL-r12 ::= CHOICE { + bs4-r12 BIT STRING (SIZE (4)), + bs8-r12 BIT STRING (SIZE (8)), + bs12-r12 BIT STRING (SIZE (12)), + bs16-r12 BIT STRING (SIZE (16)), + bs30-r12 BIT STRING (SIZE (30)), + bs40-r12 BIT STRING (SIZE (40)), + bs42-r12 BIT STRING (SIZE (42)) +} + + +SL-TxParameters-r12 ::= SEQUENCE { + alpha-r12 Alpha-r12, + p0-r12 P0-SL-r12 +} + +P0-SL-r12 ::= INTEGER (-126..31) + + +SL-TxPoolIdentity-r12 ::= INTEGER (1.. maxSL-TxPool-r12) + +SL-TxPoolIdentity-v1310 ::= INTEGER (maxSL-TxPool-r12Plus1-r13.. maxSL-TxPool-r13) + + +SL-TxPoolToReleaseList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-TxPoolIdentity-r12 + +SL-TxPoolToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF SL-TxPoolIdentity-v1310 + + +maxACDC-Cat-r13 INTEGER ::= 16 -- Maximum number of ACDC categories (per PLMN) +maxAvailNarrowBands-r13 INTEGER ::= 16 -- Maximum number of narrowbands +maxBandComb-r10 INTEGER ::= 128 -- Maximum number of band combinations. +maxBandComb-r11 INTEGER ::= 256 -- Maximum number of additional band combinations. +maxBandComb-r13 INTEGER ::= 384 -- Maximum number of band combinations in Rel-13 +maxBands INTEGER ::= 64 -- Maximum number of bands listed in EUTRA UE caps +maxBandwidthClass-r10 INTEGER ::= 16 -- Maximum number of supported CA BW classes per band +maxBandwidthCombSet-r10 INTEGER ::= 32 -- Maximum number of bandwidth combination sets per + -- supported band combination +maxCDMA-BandClass INTEGER ::= 32 -- Maximum value of the CDMA band classes +maxCE-Level-r13 INTEGER ::= 4 -- Maximum number of CE levels +maxCellBlack INTEGER ::= 16 -- Maximum number of blacklisted physical cell identity + -- ranges listed in SIB type 4 and 5 +maxCellHistory-r12 INTEGER ::= 16 -- Maximum number of visited EUTRA cells reported +maxCellInfoGERAN-r9 INTEGER ::= 32 -- Maximum number of GERAN cells for which system in- + -- formation can be provided as redirection assistance +maxCellInfoUTRA-r9 INTEGER ::= 16 -- Maximum number of UTRA cells for which system + -- information can be provided as redirection + -- assistance +maxCombIDC-r11 INTEGER ::= 128 -- Maximum number of reported UL CA combinations +maxCSI-IM-r11 INTEGER ::= 3 -- Maximum number of CSI-IM configurations + -- (per carrier frequency) +maxCSI-IM-r12 INTEGER ::= 4 -- Maximum number of CSI-IM configurations + -- (per carrier frequency) +minCSI-IM-r13 INTEGER ::= 5 -- Minimum number of CSI IM configurations from which + -- REL-13 extension is used +maxCSI-IM-r13 INTEGER ::= 24 -- Maximum number of CSI-IM configurations + -- (per carrier frequency) +maxCSI-IM-v1310 INTEGER ::= 20 -- Maximum number of additional CSI-IM configurations + -- (per carrier frequency) +maxCSI-Proc-r11 INTEGER ::= 4 -- Maximum number of CSI processes (per carrier + -- frequency) +maxCSI-RS-NZP-r11 INTEGER ::= 3 -- Maximum number of CSI RS resource + -- configurations using non-zero Tx power + -- (per carrier frequency) +minCSI-RS-NZP-r13 INTEGER ::= 4 -- Minimum number of CSI RS resource from which + -- REL-13 extension is used +maxCSI-RS-NZP-r13 INTEGER ::= 24 -- Maximum number of CSI RS resource + -- configurations using non-zero Tx power + -- (per carrier frequency) +maxCSI-RS-NZP-v1310 INTEGER ::= 21 -- Maximum number of additional CSI RS resource + -- configurations using non-zero Tx power + -- (per carrier frequency) +maxCSI-RS-ZP-r11 INTEGER ::= 4 -- Maximum number of CSI RS resource + -- configurations using zero Tx power(per carrier + -- frequency) +maxCQI-ProcExt-r11 INTEGER ::= 3 -- Maximum number of additional periodic CQI + -- configurations (per carrier frequency) +maxFreqUTRA-TDD-r10 INTEGER ::= 6 -- Maximum number of UTRA TDD carrier frequencies for + -- which system information can be provided as + -- redirection assistance +maxCellInter INTEGER ::= 16 -- Maximum number of neighbouring inter-frequency + -- cells listed in SIB type 5 +maxCellIntra INTEGER ::= 16 -- Maximum number of neighbouring intra-frequency + -- cells listed in SIB type 4 +maxCellListGERAN INTEGER ::= 3 -- Maximum number of lists of GERAN cells +maxCellMeas INTEGER ::= 32 -- Maximum number of entries in each of the + -- cell lists in a measurement object +maxCellReport INTEGER ::= 8 -- Maximum number of reported cells/CSI-RS resources +maxCSI-RS-Meas-r12 INTEGER ::= 96 -- Maximum number of entries in the CSI-RS list + -- in a measurement object +maxDRB INTEGER ::= 11 -- Maximum number of Data Radio Bearers +maxDS-Duration-r12 INTEGER ::= 5 -- Maximum number of subframes in a discovery signals + -- occasion +maxDS-ZTP-CSI-RS-r12 INTEGER ::= 5 -- Maximum number of zero transmission power CSI-RS for + -- a serving cell concerning discovery signals +maxEARFCN INTEGER ::= 65535 -- Maximum value of EUTRA carrier frequency +maxEARFCN-Plus1 INTEGER ::= 65536 -- Lowest value extended EARFCN range +maxEARFCN2 INTEGER ::= 262143 -- Highest value extended EARFCN range +maxEPDCCH-Set-r11 INTEGER ::= 2 -- Maximum number of EPDCCH sets +maxFBI INTEGER ::= 64 -- Maximum value of fequency band indicator +maxFBI-Plus1 INTEGER ::= 65 -- Lowest value extended FBI range +maxFBI2 INTEGER ::= 256 -- Highest value extended FBI range +maxFreq INTEGER ::= 8 -- Maximum number of carrier frequencies +maxFreqIDC-r11 INTEGER ::= 32 -- Maximum number of carrier frequencies that are + -- affected by the IDC problems +maxFreqMBMS-r11 INTEGER ::= 5 -- Maximum number of carrier frequencies for which an + -- MBMS capable UE may indicate an interest +maxGERAN-SI INTEGER ::= 10 -- Maximum number of GERAN SI blocks that can be + -- provided as part of NACC information +maxGNFG INTEGER ::= 16 -- Maximum number of GERAN neighbour freq groups +maxLCG-r13 INTEGER ::= 4 -- Maximum number of logical channel groups +maxLogMeasReport-r10 INTEGER ::= 520 -- Maximum number of logged measurement entries + -- that can be reported by the UE in one message +maxMBSFN-Allocations INTEGER ::= 8 -- Maximum number of MBSFN frame allocations with + -- different offset +maxMBSFN-Area INTEGER ::= 8 +maxMBSFN-Area-1 INTEGER ::= 7 +maxMBMS-ServiceListPerUE-r13 INTEGER ::= 15 -- Maximum number of services which the UE can + -- include in the MBMS interest indication +maxMeasId INTEGER ::= 32 +maxMeasId-Plus1 INTEGER ::= 33 +maxMeasId-r12 INTEGER ::= 64 +maxMultiBands INTEGER ::= 8 -- Maximum number of additional frequency bands + -- that a cell belongs to +maxNS-Pmax-r10 INTEGER ::= 8 -- Maximum number of NS and P-Max values per band +maxNAICS-Entries-r12 INTEGER ::= 8 -- Maximum number of supported NAICS combination(s) +maxNeighCell-r12 INTEGER ::= 8 -- Maximum number of neighbouring cells in NAICS + -- configuration (per carrier frequency) +maxNeighCell-SCPTM-r13 INTEGER ::= 8 -- Maximum number of SCPTM neighbour cells +maxObjectId INTEGER ::= 32 +maxObjectId-Plus1-r13 INTEGER ::= 33 +maxObjectId-r13 INTEGER ::= 64 +maxP-a-PerNeighCell-r12 INTEGER ::= 3 -- Maximum number of power offsets for a neighbour cell + -- in NAICS configuration +maxPageRec INTEGER ::= 16 -- +maxPhysCellIdRange-r9 INTEGER ::= 4 -- Maximum number of physical cell identity ranges +maxPLMN-r11 INTEGER ::= 6 -- Maximum number of PLMNs +maxPNOffset INTEGER ::= 511 -- Maximum number of CDMA2000 PNOffsets +maxPMCH-PerMBSFN INTEGER ::= 15 +maxQCI-r13 INTEGER ::= 6 -- Maximum number of QCIs +maxRAT-Capabilities INTEGER ::= 8 -- Maximum number of interworking RATs (incl EUTRA) +maxRE-MapQCL-r11 INTEGER ::= 4 -- Maximum number of PDSCH RE Mapping configurations + -- (per carrier frequency) +maxReportConfigId INTEGER ::= 32 +maxRSTD-Freq-r10 INTEGER ::= 3 -- Maximum number of frequency layers for RSTD + -- measurement +maxSAI-MBMS-r11 INTEGER ::= 64 -- Maximum number of MBMS service area identities + -- broadcast per carrier frequency +maxSCell-r10 INTEGER ::= 4 -- Maximum number of SCells +maxSCell-r13 INTEGER ::= 31 -- Highest value of extended number range of SCells +maxSC-MTCH-r13 INTEGER ::= 1023 -- Maximum number of SC-MTCHs in one cell +maxSL-CommRxPoolNFreq-r13 INTEGER ::= 32 -- Maximum number of individual sidelink communication + -- Rx resource pools on neighbouring freq +maxSL-CommRxPoolPreconf-v1310 INTEGER ::= 12 -- Maximum number of additional preconfigured + -- sidelink communication Rx resource pool entries +maxSL-TxPool-r12Plus1-r13 INTEGER ::= 5 -- First additional individual sidelink + -- Tx resource pool +maxSL-TxPool-v1310 INTEGER ::= 4 -- Maximum number of additional sidelink + -- Tx resource pool entries +maxSL-TxPool-r13 INTEGER ::= 8 -- Maximum number of individual sidelink + -- Tx resource pools +maxSL-CommTxPoolPreconf-v1310 INTEGER ::= 7 -- Maximum number of additional preconfigured + -- sidelink Tx resource pool entries +maxSL-Dest-r12 INTEGER ::= 16 -- Maximum number of sidelink destinations +maxSL-DiscCells-r13 INTEGER ::= 16 -- Maximum number of cells with similar sidelink + -- configurations +maxSL-DiscPowerClass-r12 INTEGER ::= 3 -- Maximum number of sidelink power classes +maxSL-DiscRxPoolPreconf-r13 INTEGER ::= 16 -- Maximum number of preconfigured sidelink + -- discovery Rx resource pool entries +maxSL-DiscSysInfoReportFreq-r13 INTEGER ::= 8 -- Maximum number of frequencies to include in a + -- SidelinkUEInformation for SI reporting +maxSL-DiscTxPoolPreconf-r13 INTEGER ::= 4 -- Maximum number of preconfigured sidelink + -- discovery Tx resource pool entries +maxSL-GP-r13 INTEGER ::= 8 -- Maximum number of gap patterns that can be requested + -- for a frequency or assigned +maxSL-Prio-r13 INTEGER ::= 8 -- Maximum number of entries in sidelink priority list +maxSL-RxPool-r12 INTEGER ::= 16 -- Maximum number of individual sidelink Rx resource pools +maxSL-SyncConfig-r12 INTEGER ::= 16 -- Maximum number of sidelink Sync configurations +maxSL-TF-IndexPair-r12 INTEGER ::= 64 -- Maximum number of sidelink Time Freq resource index + -- pairs +maxSL-TxPool-r12 INTEGER ::= 4 -- Maximum number of individual sidelink Tx resource pools +maxSTAG-r11 INTEGER ::= 3 -- Maximum number of STAGs +maxServCell-r10 INTEGER ::= 5 -- Maximum number of Serving cells +maxServCell-r13 INTEGER ::= 32 -- Highest value of extended number range of Serving cells +maxServiceCount INTEGER ::= 16 -- Maximum number of MBMS services that can be included + -- in an MBMS counting request and response +maxServiceCount-1 INTEGER ::= 15 +maxSessionPerPMCH INTEGER ::= 29 +maxSessionPerPMCH-1 INTEGER ::= 28 +maxSIB INTEGER ::= 32 -- Maximum number of SIBs +maxSIB-1 INTEGER ::= 31 +maxSI-Message INTEGER ::= 32 -- Maximum number of SI messages +maxSimultaneousBands-r10 INTEGER ::= 64 -- Maximum number of simultaneously aggregated bands +maxSubframePatternIDC-r11 INTEGER ::= 8 -- Maximum number of subframe reservation patterns + -- that the UE can simultaneously recommend to the + -- E-UTRAN for use. +maxUTRA-FDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA FDD carrier frequencies +maxUTRA-TDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA TDD carrier frequencies +maxWLAN-Id-r12 INTEGER ::= 16 -- Maximum number of WLAN identifiers +maxWLAN-Bands-r13 INTEGER ::= 8 -- Maximum number of WLAN bands +maxWLAN-Id-r13 INTEGER ::= 32 -- Maximum number of WLAN identifiers +maxWLAN-Channels-r13 INTEGER ::= 16 -- maximum number of WLAN channels used in + -- WLAN-CarrierInfo +maxWLAN-CarrierInfo-r13 INTEGER ::= 8 -- Maximum number of WLAN Carrier Information + + +END + + +PC5-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + TDD-ConfigSL-r12 +FROM EUTRA-RRC-Definitions; + + +SBCCH-SL-BCH-Message ::= SEQUENCE { + message SBCCH-SL-BCH-MessageType +} + +SBCCH-SL-BCH-MessageType ::= MasterInformationBlock-SL + + +MasterInformationBlock-SL ::= SEQUENCE { + sl-Bandwidth-r12 ENUMERATED { + n6, n15, n25, n50, n75, n100}, + tdd-ConfigSL-r12 TDD-ConfigSL-r12, + directFrameNumber-r12 BIT STRING (SIZE (10)), + directSubframeNumber-r12 INTEGER (0..9), + inCoverage-r12 BOOLEAN, + reserved-r12 BIT STRING (SIZE (19)) +} + + + +END + + +NBIOT-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + RRCConnectionReestablishmentReject, + SecurityModeCommand, + SecurityModeComplete, + SecurityModeFailure, + AdditionalSpectrumEmission, + ARFCN-ValueEUTRA-r9, + CellIdentity, + DedicatedInfoNAS, + DRB-Identity, + InitialUE-Identity, + IntraFreqBlackCellList, + IntraFreqNeighCellList, + maxBands, + maxCellBlack, + maxCellInter, + maxFBI2, + maxFreq, + maxMultiBands, + maxPageRec, + maxPLMN-r11, + maxSIB, + maxSIB-1, + NextHopChainingCount, + PagingUE-Identity, + PLMN-Identity, + P-Max, + PowerRampingParameters, + PreambleTransMax, + PhysCellId, + Q-OffsetRange, + Q-QualMin-r9, + Q-RxLevMin, + ReestabUE-Identity, + RegisteredMME, + ReselectionThreshold, + ResumeIdentity-r13, + RRC-TransactionIdentifier, + RSRP-Range, + ShortMAC-I, + S-TMSI, + SystemInformationBlockType16-r11, + SystemInfoValueTagSI-r13, + TimeAlignmentTimer, + TrackingAreaCode +FROM EUTRA-RRC-Definitions; + + +BCCH-BCH-Message-NB ::= SEQUENCE { + message BCCH-BCH-MessageType-NB +} + + +BCCH-BCH-MessageType-NB::= MasterInformationBlock-NB + + + +BCCH-DL-SCH-Message-NB ::= SEQUENCE { + message BCCH-DL-SCH-MessageType-NB +} + +BCCH-DL-SCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + systemInformation-r13 SystemInformation-NB, + systemInformationBlockType1-r13 SystemInformationBlockType1-NB + }, + messageClassExtension SEQUENCE {} +} + + +PCCH-Message-NB ::= SEQUENCE { + message PCCH-MessageType-NB +} + +PCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + paging-r13 Paging-NB + }, + messageClassExtension SEQUENCE {} +} + + +DL-CCCH-Message-NB ::= SEQUENCE { + message DL-CCCH-MessageType-NB +} + +DL-CCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishment-r13 RRCConnectionReestablishment-NB, + rrcConnectionReestablishmentReject-r13 RRCConnectionReestablishmentReject, + rrcConnectionReject-r13 RRCConnectionReject-NB, + rrcConnectionSetup-r13 RRCConnectionSetup-NB, + spare4 NULL, spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +DL-DCCH-Message-NB ::= SEQUENCE { + message DL-DCCH-MessageType-NB +} + +DL-DCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + dlInformationTransfer-r13 DLInformationTransfer-NB, + rrcConnectionReconfiguration-r13 RRCConnectionReconfiguration-NB, + rrcConnectionRelease-r13 RRCConnectionRelease-NB, + securityModeCommand-r13 SecurityModeCommand, + ueCapabilityEnquiry-r13 UECapabilityEnquiry-NB, + rrcConnectionResume-r13 RRCConnectionResume-NB, + spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + + +UL-CCCH-Message-NB ::= SEQUENCE { + message UL-CCCH-MessageType-NB +} + +UL-CCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishmentRequest-r13 RRCConnectionReestablishmentRequest-NB, + rrcConnectionRequest-r13 RRCConnectionRequest-NB, + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-NB, + spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +UL-DCCH-Message-NB ::= SEQUENCE { + message UL-DCCH-MessageType-NB +} + +UL-DCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + rrcConnectionReconfigurationComplete-r13 RRCConnectionReconfigurationComplete-NB, + rrcConnectionReestablishmentComplete-r13 RRCConnectionReestablishmentComplete-NB, + rrcConnectionSetupComplete-r13 RRCConnectionSetupComplete-NB, + securityModeComplete-r13 SecurityModeComplete, + securityModeFailure-r13 SecurityModeFailure, + ueCapabilityInformation-r13 UECapabilityInformation-NB, + ulInformationTransfer-r13 ULInformationTransfer-NB, + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-NB, + spare8 NULL, spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +DLInformationTransfer-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + dlInformationTransfer-r13 DLInformationTransfer-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +DLInformationTransfer-NB-r13-IEs ::= SEQUENCE { + dedicatedInfoNAS-r13 DedicatedInfoNAS, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MasterInformationBlock-NB ::= SEQUENCE { + systemFrameNumber-MSB-r13 BIT STRING (SIZE (4)), + hyperSFN-LSB-r13 BIT STRING (SIZE (2)), + schedulingInfoSIB1-r13 INTEGER (0..15), + systemInfoValueTag-r13 INTEGER (0..31), + ab-Enabled-r13 BOOLEAN, + operationModeInfo-r13 CHOICE { + inband-SamePCI-r13 Inband-SamePCI-NB-r13, + inband-DifferentPCI-r13 Inband-DifferentPCI-NB-r13, + guardband-r13 Guardband-NB-r13, + standalone-r13 Standalone-NB-r13 + }, + spare BIT STRING (SIZE (11)) +} + +ChannelRasterOffset-NB-r13 ::= ENUMERATED {khz-7dot5, khz-2dot5, khz2dot5, khz7dot5} + +Guardband-NB-r13 ::= SEQUENCE { + rasterOffset-r13 ChannelRasterOffset-NB-r13, + spare BIT STRING (SIZE (3)) +} + +Inband-SamePCI-NB-r13 ::= SEQUENCE { + eutra-CRS-SequenceInfo-r13 INTEGER (0..31) +} + +Inband-DifferentPCI-NB-r13 ::= SEQUENCE { + eutra-NumCRS-Ports-r13 ENUMERATED {same, four}, + rasterOffset-r13 ChannelRasterOffset-NB-r13, + spare BIT STRING (SIZE (2)) +} + +Standalone-NB-r13 ::= SEQUENCE { + spare BIT STRING (SIZE (5)) +} + + +Paging-NB ::= SEQUENCE { + pagingRecordList-r13 PagingRecordList-NB-r13 OPTIONAL, -- Need ON + systemInfoModification-r13 ENUMERATED {true} OPTIONAL, -- Need ON + systemInfoModification-eDRX-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PagingRecordList-NB-r13 ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord-NB-r13 + +PagingRecord-NB-r13 ::= SEQUENCE { + ue-Identity-r13 PagingUE-Identity, + ... +} + + +RRCConnectionReconfiguration-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReconfiguration-r13 RRCConnectionReconfiguration-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfiguration-NB-r13-IEs ::= SEQUENCE { + dedicatedInfoNASList-r13 SEQUENCE (SIZE(1..maxDRB-NB-r13)) OF + DedicatedInfoNAS OPTIONAL, -- Need ON + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13 OPTIONAL, -- Need ON + fullConfig-r13 ENUMERATED {true} OPTIONAL, -- Cond Reestab + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReconfigurationComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReconfigurationComplete-r13 RRCConnectionReconfigurationComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfigurationComplete-NB-r13-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + + +RRCConnectionReestablishment-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReestablishment-r13 RRCConnectionReestablishment-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishment-NB-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13, + nextHopChainingCount-r13 NextHopChainingCount, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReestablishmentComplete-r13 RRCConnectionReestablishmentComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentComplete-NB-r13-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentRequest-NB ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentRequest-r13 + RRCConnectionReestablishmentRequest-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentRequest-NB-r13-IEs ::= SEQUENCE { + ue-Identity-r13 ReestabUE-Identity, + reestablishmentCause-r13 ReestablishmentCause-NB-r13, + spare BIT STRING (SIZE (25)) +} + + +ReestablishmentCause-NB-r13 ::= ENUMERATED { + reconfigurationFailure, otherFailure, + spare2, spare1} + + +RRCConnectionReject-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionReject-r13 RRCConnectionReject-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReject-NB-r13-IEs ::= SEQUENCE { + extendedWaitTime-r13 INTEGER (1..1800), + rrc-SuspendIndication-r13 ENUMERATED {true} OPTIONAL, -- Need ON + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionRelease-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionRelease-r13 RRCConnectionRelease-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRelease-NB-r13-IEs ::= SEQUENCE { + releaseCause-r13 ReleaseCause-NB-r13, + resumeIdentity-r13 ResumeIdentity-r13 OPTIONAL, -- Need OR + extendedWaitTime-r13 INTEGER (1..1800) OPTIONAL, -- Need ON + redirectedCarrierInfo-r13 RedirectedCarrierInfo-NB-r13 OPTIONAL, -- Need ON + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +ReleaseCause-NB-r13 ::= ENUMERATED {loadBalancingTAUrequired, other, + rrc-Suspend, spare1} + +RedirectedCarrierInfo-NB-r13::= CarrierFreq-NB-r13 + +RRCConnectionRequest-NB ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionRequest-r13 RRCConnectionRequest-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRequest-NB-r13-IEs ::= SEQUENCE { + ue-Identity-r13 InitialUE-Identity, + establishmentCause-r13 EstablishmentCause-NB-r13, + multiToneSupport-r13 ENUMERATED {true} OPTIONAL, + multiCarrierSupport-r13 ENUMERATED {true} OPTIONAL, + spare BIT STRING (SIZE (22)) +} + + +RRCConnectionResume-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionResume-r13 RRCConnectionResume-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResume-NB-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13 OPTIONAL, -- Need ON + nextHopChainingCount-r13 NextHopChainingCount, + drb-ContinueROHC-r13 ENUMERATED {true} OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeComplete-NB-r13-IEs ::= SEQUENCE { + selectedPLMN-Identity-r13 INTEGER (1..maxPLMN-r11) OPTIONAL, + dedicatedInfoNAS-r13 DedicatedInfoNAS OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeRequest-NB ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeRequest-NB-r13-IEs ::= SEQUENCE { + resumeID-r13 ResumeIdentity-r13, + shortResumeMAC-I-r13 ShortMAC-I, + resumeCause-r13 EstablishmentCause-NB-r13, + spare BIT STRING (SIZE (9)) +} + + +RRCConnectionSetup-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionSetup-r13 RRCConnectionSetup-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetup-NB-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionSetupComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE{ + rrcConnectionSetupComplete-r13 RRCConnectionSetupComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetupComplete-NB-r13-IEs ::= SEQUENCE { + selectedPLMN-Identity-r13 INTEGER (1..maxPLMN-r11), + s-TMSI-r13 S-TMSI OPTIONAL, + registeredMME-r13 RegisteredMME OPTIONAL, + dedicatedInfoNAS-r13 DedicatedInfoNAS, + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL, + up-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + systemInformation-r13 SystemInformation-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} +SystemInformation-NB-r13-IEs ::= SEQUENCE { + sib-TypeAndInfo-r13 SEQUENCE (SIZE (1..maxSIB)) OF CHOICE { + sib2-r13 SystemInformationBlockType2-NB-r13, + sib3-r13 SystemInformationBlockType3-NB-r13, + sib4-r13 SystemInformationBlockType4-NB-r13, + sib5-r13 SystemInformationBlockType5-NB-r13, + sib14-r13 SystemInformationBlockType14-NB-r13, + sib16-r13 SystemInformationBlockType16-NB-r13, + ... + }, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType1-NB ::= SEQUENCE { + hyperSFN-MSB-r13 BIT STRING (SIZE (8)), + cellAccessRelatedInfo-r13 SEQUENCE { + plmn-IdentityList-r13 PLMN-IdentityList-NB-r13, + trackingAreaCode-r13 TrackingAreaCode, + cellIdentity-r13 CellIdentity, + cellBarred-r13 ENUMERATED {barred, notBarred}, + intraFreqReselection-r13 ENUMERATED {allowed, notAllowed} + }, + cellSelectionInfo-r13 SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + q-QualMin-r13 Q-QualMin-r9 + }, + p-Max-r13 P-Max OPTIONAL, -- Need OP + freqBandIndicator-r13 FreqBandIndicator-NB-r13, + freqBandInfo-r13 NS-PmaxList-NB-r13 OPTIONAL, -- Need OR + multiBandInfoList-r13 MultiBandInfoList-NB-r13 OPTIONAL, -- Need OR + downlinkBitmap-r13 DL-Bitmap-NB-r13 OPTIONAL, -- Need OP, + eutraControlRegionSize-r13 ENUMERATED {n1, n2, n3} OPTIONAL, -- Cond inband + nrs-CRS-PowerOffset-r13 ENUMERATED {dB-6, dB-4dot77, dB-3, + dB-1dot77, dB0, dB1, + dB1dot23, dB2, dB3, + dB4, dB4dot23, dB5, + dB6, dB7, dB8, + dB9} OPTIONAL, -- Cond inband-SamePCI + schedulingInfoList-r13 SchedulingInfoList-NB-r13, + si-WindowLength-r13 ENUMERATED {ms160, ms320, ms480, ms640, + ms960, ms1280, ms1600, spare1}, + si-RadioFrameOffset-r13 INTEGER (1..15) OPTIONAL, -- Need OP + systemInfoValueTagList-r13 SystemInfoValueTagList-NB-r13 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SystemInformationBlockType1-NB-v1350-IEs OPTIONAL +} + +SystemInformationBlockType1-NB-v1350-IEs ::= SEQUENCE { + cellSelectionInfo-v1350 CellSelectionInfo-NB-v1350 OPTIONAL, -- Cond Qrxlevmin + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PLMN-IdentityList-NB-r13 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo-NB-r13 + +PLMN-IdentityInfo-NB-r13 ::= SEQUENCE { + plmn-Identity-r13 PLMN-Identity, + cellReservedForOperatorUse-r13 ENUMERATED {reserved, notReserved}, + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL -- Need OP +} + +SchedulingInfoList-NB-r13 ::= SEQUENCE (SIZE (1..maxSI-Message-NB-r13)) OF SchedulingInfo-NB-r13 + +SchedulingInfo-NB-r13::= SEQUENCE { + si-Periodicity-r13 ENUMERATED {rf64, rf128, rf256, rf512, + rf1024, rf2048, rf4096, spare}, + si-RepetitionPattern-r13 ENUMERATED {every2ndRF, every4thRF, + every8thRF, every16thRF}, + sib-MappingInfo-r13 SIB-MappingInfo-NB-r13, + si-TB-r13 ENUMERATED {b56, b120, b208, b256, b328, b440, b552, b680} +} + +SystemInfoValueTagList-NB-r13 ::= SEQUENCE (SIZE (1.. maxSI-Message-NB-r13)) OF + SystemInfoValueTagSI-r13 + +SIB-MappingInfo-NB-r13 ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type-NB-r13 + +SIB-Type-NB-r13 ::= ENUMERATED { + sibType3-NB-r13, sibType4-NB-r13, sibType5-NB-r13, + sibType14-NB-r13, sibType16-NB-r13, spare3, spare2, spare1} + +CellSelectionInfo-NB-v1350 ::= SEQUENCE { + delta-RxLevMin-v1350 INTEGER (-8..-1) +} + + +UECapabilityEnquiry-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueCapabilityEnquiry-r13 UECapabilityEnquiry-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityEnquiry-NB-r13-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UECapabilityInformation-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE{ + ueCapabilityInformation-r13 UECapabilityInformation-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityInformation-NB-r13-IEs ::= SEQUENCE { + ue-Capability-r13 UE-Capability-NB-r13, + ue-RadioPagingInfo-r13 UE-RadioPagingInfo-NB-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +ULInformationTransfer-NB ::= SEQUENCE { + criticalExtensions CHOICE { + ulInformationTransfer-r13 ULInformationTransfer-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULInformationTransfer-NB-r13-IEs ::= SEQUENCE { + dedicatedInfoNAS-r13 DedicatedInfoNAS, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType2-NB-r13 ::= SEQUENCE { + radioResourceConfigCommon-r13 RadioResourceConfigCommonSIB-NB-r13, + ue-TimersAndConstants-r13 UE-TimersAndConstants-NB-r13, + freqInfo-r13 SEQUENCE { + ul-CarrierFreq-r13 CarrierFreq-NB-r13 OPTIONAL,-- Need OP + additionalSpectrumEmission-r13 AdditionalSpectrumEmission + }, + timeAlignmentTimerCommon-r13 TimeAlignmentTimer, + multiBandInfoList-r13 SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission OPTIONAL,-- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +SystemInformationBlockType3-NB-r13 ::= SEQUENCE { + cellReselectionInfoCommon-r13 SEQUENCE { + q-Hyst-r13 ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24 + } + }, + cellReselectionServingFreqInfo-r13 SEQUENCE { + s-NonIntraSearch-r13 ReselectionThreshold + }, + intraFreqCellReselectionInfo-r13 SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + q-QualMin-r13 Q-QualMin-r9 OPTIONAL, -- Need OP + p-Max-r13 P-Max OPTIONAL, -- Need OP + s-IntraSearchP-r13 ReselectionThreshold, + t-Reselection-r13 T-Reselection-NB-r13 + }, + freqBandInfo-r13 NS-PmaxList-NB-r13 OPTIONAL, -- Need OR + multiBandInfoList-r13 SEQUENCE (SIZE (1..maxMultiBands)) OF + NS-PmaxList-NB-r13 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ intraFreqCellReselectionInfo-v1350 IntraFreqCellReselectionInfo-NB-v1350 OPTIONAL -- Cond Qrxlevmin + ]], + [[ intraFreqCellReselectionInfo-v1360 IntraFreqCellReselectionInfo-NB-v1360 OPTIONAL -- Need OR + ]] +} + +IntraFreqCellReselectionInfo-NB-v1350 ::= SEQUENCE { + delta-RxLevMin-v1350 INTEGER (-8..-1) +} + +IntraFreqCellReselectionInfo-NB-v1360 ::= SEQUENCE { + s-IntraSearchP-v1360 ReselectionThreshold-NB-v1360 +} + +SystemInformationBlockType4-NB-r13 ::= SEQUENCE { + intraFreqNeighCellList-r13 IntraFreqNeighCellList OPTIONAL, -- Need OR + intraFreqBlackCellList-r13 IntraFreqBlackCellList OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + + +SystemInformationBlockType5-NB-r13 ::= SEQUENCE { + interFreqCarrierFreqList-r13 InterFreqCarrierFreqList-NB-r13, + t-Reselection-r13 T-Reselection-NB-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +InterFreqCarrierFreqList-NB-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-NB-r13 + + +InterFreqCarrierFreqInfo-NB-r13 ::= SEQUENCE { + dl-CarrierFreq-r13 CarrierFreq-NB-r13, + q-RxLevMin-r13 Q-RxLevMin, + q-QualMin-r13 Q-QualMin-r9 OPTIONAL, -- Need OP + p-Max-r13 P-Max OPTIONAL, -- Need OP + q-OffsetFreq-r13 Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList-r13 InterFreqNeighCellList-NB-r13 OPTIONAL, -- Need OR + interFreqBlackCellList-r13 InterFreqBlackCellList-NB-r13 OPTIONAL, -- Need OR + multiBandInfoList-r13 MultiBandInfoList-NB-r13 OPTIONAL, -- Need OR + ..., + [[ delta-RxLevMin-v1350 INTEGER (-8..-1) OPTIONAL -- Cond Qrxlevmin + ]] +} + +InterFreqNeighCellList-NB-r13 ::= SEQUENCE (SIZE (1..maxCellInter)) OF PhysCellId + + +InterFreqBlackCellList-NB-r13 ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellId + + + +SystemInformationBlockType14-NB-r13 ::= SEQUENCE { + ab-Param-r13 CHOICE { + ab-Common-r13 AB-Config-NB-r13, + ab-PerPLMN-List-r13 SEQUENCE (SIZE (1..maxPLMN-r11)) OF AB-ConfigPLMN-NB-r13 + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +AB-ConfigPLMN-NB-r13 ::= SEQUENCE { + ab-Config-r13 AB-Config-NB-r13 OPTIONAL -- Need OR +} + +AB-Config-NB-r13 ::= SEQUENCE { + ab-Category-r13 ENUMERATED {a, b, c}, + ab-BarringBitmap-r13 BIT STRING (SIZE(10)), + ab-BarringForExceptionData-r13 ENUMERATED {true} OPTIONAL, -- Need OP + ab-BarringForSpecialAC-r13 BIT STRING (SIZE(5)) +} + + +SystemInformationBlockType16-NB-r13 ::= SystemInformationBlockType16-r11 + + +CarrierConfigDedicated-NB-r13 ::= SEQUENCE { + dl-CarrierConfig-r13 DL-CarrierConfigDedicated-NB-r13, + ul-CarrierConfig-r13 UL-CarrierConfigDedicated-NB-r13 +} + +DL-CarrierConfigDedicated-NB-r13 ::= SEQUENCE { + dl-CarrierFreq-r13 CarrierFreq-NB-r13, + downlinkBitmapNonAnchor-r13 CHOICE { + useNoBitmap-r13 NULL, + useAnchorBitmap-r13 NULL, + explicitBitmapConfiguration-r13 DL-Bitmap-NB-r13, + spare NULL + } OPTIONAL, -- Need ON + dl-GapNonAnchor-r13 CHOICE { + useNoGap-r13 NULL, + useAnchorGapConfig-r13 NULL, + explicitGapConfiguration-r13 DL-GapConfig-NB-r13, + spare NULL + } OPTIONAL, -- Need ON + inbandCarrierInfo-r13 SEQUENCE { + samePCI-Indicator-r13 CHOICE { + samePCI-r13 SEQUENCE { + indexToMidPRB-r13 INTEGER (-55..54) + }, + differentPCI-r13 SEQUENCE { + eutra-NumCRS-Ports-r13 ENUMERATED {same, four} + } + } OPTIONAL, -- Cond anchor-guardband + eutraControlRegionSize-r13 ENUMERATED {n1, n2, n3} + } OPTIONAL, -- Cond non-anchor-inband + ..., + [[ nrs-PowerOffsetNonAnchor-v1330 ENUMERATED {dB-12, dB-10, dB-8, dB-6, + dB-4, dB-2, dB0, dB3} + OPTIONAL -- Need ON + ]] +} + +UL-CarrierConfigDedicated-NB-r13 ::= SEQUENCE { + ul-CarrierFreq-r13 CarrierFreq-NB-r13 OPTIONAL, -- Need OP + ... +} + + +CarrierFreq-NB-r13 ::= SEQUENCE { + carrierFreq-r13 ARFCN-ValueEUTRA-r9, + carrierFreqOffset-r13 ENUMERATED { + v-10, v-9, v-8, v-7, v-6, v-5, v-4, v-3, v-2, v-1, v-0dot5, + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9 + } OPTIONAL -- Need ON +} + + +DL-Bitmap-NB-r13 ::= CHOICE { + subframePattern10-r13 BIT STRING (SIZE (10)), + subframePattern40-r13 BIT STRING (SIZE (40)) +} + + + +DL-GapConfig-NB-r13 ::= SEQUENCE { + dl-GapThreshold-r13 ENUMERATED {n32, n64, n128, n256}, + dl-GapPeriodicity-r13 ENUMERATED {sf64, sf128, sf256, sf512}, + dl-GapDurationCoeff-r13 ENUMERATED {oneEighth, oneFourth, threeEighth, oneHalf} +} + + +LogicalChannelConfig-NB-r13 ::= SEQUENCE { + priority-r13 INTEGER (1..16) OPTIONAL, -- Cond UL + logicalChannelSR-Prohibit-r13 BOOLEAN OPTIONAL, -- Need ON + ... +} + + +MAC-MainConfig-NB-r13 ::= SEQUENCE { + ul-SCH-Config-r13 SEQUENCE { + periodicBSR-Timer-r13 PeriodicBSR-Timer-NB-r13 OPTIONAL, -- Need ON + retxBSR-Timer-r13 RetxBSR-Timer-NB-r13 + } OPTIONAL, -- Need ON + drx-Config-r13 DRX-Config-NB-r13 OPTIONAL, -- Need ON + timeAlignmentTimerDedicated-r13 TimeAlignmentTimer, + logicalChannelSR-Config-r13 CHOICE { + release NULL, + setup SEQUENCE { + logicalChannelSR-ProhibitTimer-r13 ENUMERATED { + pp2, pp8, pp32, pp128, pp512, + pp1024, pp2048, spare} + } + } OPTIONAL, -- Need ON + ... +} + +PeriodicBSR-Timer-NB-r13 ::= ENUMERATED { + pp2, pp4, pp8, pp16, pp64, pp128, infinity, spare} + +RetxBSR-Timer-NB-r13 ::= ENUMERATED { + pp4, pp16, pp64, pp128, pp256, pp512, infinity, spare} + +DRX-Config-NB-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + onDurationTimer-r13 ENUMERATED { + pp1, pp2, pp3, pp4, pp8, pp16, pp32, spare}, + drx-InactivityTimer-r13 ENUMERATED { + pp0, pp1, pp2, pp3, pp4, pp8, pp16, pp32}, + drx-RetransmissionTimer-r13 ENUMERATED { + pp0, pp1, pp2, pp4, pp6, pp8, pp16, pp24, + pp33, spare7, spare6, spare5, + spare4, spare3, spare2, spare1}, + drx-Cycle-r13 ENUMERATED { + sf256, sf512, sf1024, sf1536, sf2048, sf3072, + sf4096, sf4608, sf6144, sf7680, sf8192, sf9216, + spare4, spare3, spare2, spare1}, + drx-StartOffset-r13 INTEGER (0..255), + drx-ULRetransmissionTimer-r13 ENUMERATED { + pp0, pp1, pp2, pp4, pp6, pp8, pp16, pp24, + pp33, pp40, pp64, pp80, pp96, + pp112, pp128, pp160, pp320} + } +} + + + +NPDCCH-ConfigDedicated-NB-r13 ::= SEQUENCE { + npdcch-NumRepetitions-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1}, + npdcch-StartSF-USS-r13 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64}, + npdcch-Offset-USS-r13 ENUMERATED {zero, oneEighth, oneFourth, threeEighth} +} + + + +NPDSCH-ConfigCommon-NB-r13 ::= SEQUENCE { + nrs-Power-r13 INTEGER (-60..50) +} + + +NPRACH-ConfigSIB-NB-r13 ::= SEQUENCE { + nprach-CP-Length-r13 ENUMERATED {us66dot7, us266dot7}, + rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsNPRACH-InfoList-NB-r13 OPTIONAL, -- need OR + nprach-ParametersList-r13 NPRACH-ParametersList-NB-r13 +} + +NPRACH-ConfigSIB-NB-v1330 ::= SEQUENCE { + nprach-ParametersList-v1330 NPRACH-ParametersList-NB-v1330 +} + +NPRACH-ParametersList-NB-r13 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF NPRACH-Parameters-NB-r13 + +NPRACH-ParametersList-NB-v1330 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF NPRACH-Parameters-NB-v1330 + +NPRACH-Parameters-NB-r13::= SEQUENCE { + nprach-Periodicity-r13 ENUMERATED {ms40, ms80, ms160, ms240, + ms320, ms640, ms1280, ms2560}, + nprach-StartTime-r13 ENUMERATED {ms8, ms16, ms32, ms64, + ms128, ms256, ms512, ms1024}, + nprach-SubcarrierOffset-r13 ENUMERATED {n0, n12, n24, n36, n2, n18, n34, spare1}, + nprach-NumSubcarriers-r13 ENUMERATED {n12, n24, n36, n48}, + nprach-SubcarrierMSG3-RangeStart-r13 ENUMERATED {zero, oneThird, twoThird, one}, + maxNumPreambleAttemptCE-r13 ENUMERATED {n3, n4, n5, n6, n7, n8, n10, spare1}, + numRepetitionsPerPreambleAttempt-r13 ENUMERATED {n1, n2, n4, n8, n16, n32, n64, n128}, + npdcch-NumRepetitions-RA-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1}, + npdcch-StartSF-CSS-RA-r13 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64}, + npdcch-Offset-RA-r13 ENUMERATED {zero, oneEighth, oneFourth, threeEighth} +} + +NPRACH-Parameters-NB-v1330 ::= SEQUENCE { + nprach-NumCBRA-StartSubcarriers-r13 ENUMERATED {n8, n10, n11, n12, n20, n22, n23, n24, + n32, n34, n35, n36, n40, n44, n46, n48} +} + +RSRP-ThresholdsNPRACH-InfoList-NB-r13 ::= SEQUENCE (SIZE(1..2)) OF RSRP-Range + + +NPUSCH-ConfigCommon-NB-r13 ::= SEQUENCE { + ack-NACK-NumRepetitions-Msg4-r13 SEQUENCE (SIZE(1.. maxNPRACH-Resources-NB-r13)) OF + ACK-NACK-NumRepetitions-NB-r13, + srs-SubframeConfig-r13 ENUMERATED { + sc0, sc1, sc2, sc3, sc4, sc5, sc6, sc7, + sc8, sc9, sc10, sc11, sc12, sc13, sc14, sc15 + } OPTIONAL, -- Need OR + dmrs-Config-r13 SEQUENCE { + threeTone-BaseSequence-r13 INTEGER (0..12) OPTIONAL, -- Need OP + threeTone-CyclicShift-r13 INTEGER (0..2), + sixTone-BaseSequence-r13 INTEGER (0..14) OPTIONAL, -- Need OP + sixTone-CyclicShift-r13 INTEGER (0..3), + twelveTone-BaseSequence-r13 INTEGER (0..30) OPTIONAL -- Need OP + } OPTIONAL, -- Need OR + ul-ReferenceSignalsNPUSCH-r13 UL-ReferenceSignalsNPUSCH-NB-r13 +} + +UL-ReferenceSignalsNPUSCH-NB-r13 ::= SEQUENCE { + groupHoppingEnabled-r13 BOOLEAN, + groupAssignmentNPUSCH-r13 INTEGER (0..29) +} + +NPUSCH-ConfigDedicated-NB-r13 ::= SEQUENCE { + ack-NACK-NumRepetitions-r13 ACK-NACK-NumRepetitions-NB-r13 OPTIONAL, -- Need ON + npusch-AllSymbols-r13 BOOLEAN OPTIONAL, -- Cond SRS + groupHoppingDisabled-r13 ENUMERATED {true} OPTIONAL -- Need OR +} + +ACK-NACK-NumRepetitions-NB-r13 ::= ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128} + + + +PDCP-Config-NB-r13 ::= SEQUENCE { + discardTimer-r13 ENUMERATED { + ms5120, ms10240, ms20480, ms40960, + ms81920, infinity, spare2, spare1 + } OPTIONAL, -- Cond Setup + headerCompression-r13 CHOICE { + notUsed NULL, + rohc SEQUENCE { + maxCID-r13 INTEGER (1..16383) DEFAULT 15, + profiles-r13 SEQUENCE { + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + ... + } + }, + ... +} + + +PhysicalConfigDedicated-NB-r13 ::= SEQUENCE { + carrierConfigDedicated-r13 CarrierConfigDedicated-NB-r13 OPTIONAL, -- Need ON + npdcch-ConfigDedicated-r13 NPDCCH-ConfigDedicated-NB-r13 OPTIONAL, -- Need ON + npusch-ConfigDedicated-r13 NPUSCH-ConfigDedicated-NB-r13 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-r13 UplinkPowerControlDedicated-NB-r13 OPTIONAL, -- Need ON + ... +} + + +RACH-ConfigCommon-NB-r13 ::= SEQUENCE { + preambleTransMax-CE-r13 PreambleTransMax, + powerRampingParameters-r13 PowerRampingParameters, + rach-InfoList-r13 RACH-InfoList-NB-r13, + connEstFailOffset-r13 INTEGER (0..15) OPTIONAL, -- Need OP + ... +} + +RACH-InfoList-NB-r13 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF RACH-Info-NB-r13 + +RACH-Info-NB-r13 ::= SEQUENCE { + ra-ResponseWindowSize-r13 ENUMERATED { + pp2, pp3, pp4, pp5, pp6, pp7, pp8, pp10}, + mac-ContentionResolutionTimer-r13 ENUMERATED { + pp1, pp2, pp3, pp4, pp8, pp16, pp32, pp64} +} + + +RadioResourceConfigCommonSIB-NB-r13 ::= SEQUENCE { + rach-ConfigCommon-r13 RACH-ConfigCommon-NB-r13, + bcch-Config-r13 BCCH-Config-NB-r13, + pcch-Config-r13 PCCH-Config-NB-r13, + nprach-Config-r13 NPRACH-ConfigSIB-NB-r13, + npdsch-ConfigCommon-r13 NPDSCH-ConfigCommon-NB-r13, + npusch-ConfigCommon-r13 NPUSCH-ConfigCommon-NB-r13, + dl-Gap-r13 DL-GapConfig-NB-r13 OPTIONAL, -- Need OP + uplinkPowerControlCommon-r13 UplinkPowerControlCommon-NB-r13, + ..., + [[ nprach-Config-v1330 NPRACH-ConfigSIB-NB-v1330 OPTIONAL -- Need OR + ]] +} + +BCCH-Config-NB-r13 ::= SEQUENCE { + modificationPeriodCoeff-r13 ENUMERATED {n16, n32, n64, n128} +} + + +PCCH-Config-NB-r13 ::= SEQUENCE { + defaultPagingCycle-r13 ENUMERATED {rf128, rf256, rf512, rf1024}, + nB-r13 ENUMERATED { + fourT, twoT, oneT, halfT, quarterT, one8thT, + one16thT, one32ndT, one64thT, + one128thT, one256thT, one512thT, one1024thT, + spare3, spare2, spare1}, + npdcch-NumRepetitionPaging-r13 ENUMERATED { + r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1} +} + + +RadioResourceConfigDedicated-NB-r13 ::= SEQUENCE { + srb-ToAddModList-r13 SRB-ToAddModList-NB-r13 OPTIONAL, -- Need ON + drb-ToAddModList-r13 DRB-ToAddModList-NB-r13 OPTIONAL, -- Need ON + drb-ToReleaseList-r13 DRB-ToReleaseList-NB-r13 OPTIONAL, -- Need ON + mac-MainConfig-r13 CHOICE { + explicitValue-r13 MAC-MainConfig-NB-r13, + defaultValue-r13 NULL + } OPTIONAL, -- Need ON + physicalConfigDedicated-r13 PhysicalConfigDedicated-NB-r13 OPTIONAL, -- Need ON + rlf-TimersAndConstants-r13 RLF-TimersAndConstants-NB-r13 OPTIONAL, -- Need ON + ... +} + +SRB-ToAddModList-NB-r13 ::= SEQUENCE (SIZE (1)) OF SRB-ToAddMod-NB-r13 + +SRB-ToAddMod-NB-r13 ::= SEQUENCE { + rlc-Config-r13 CHOICE { + explicitValue RLC-Config-NB-r13, + defaultValue NULL + } OPTIONAL, -- Cond Setup + logicalChannelConfig-r13 CHOICE { + explicitValue LogicalChannelConfig-NB-r13, + defaultValue NULL + } OPTIONAL, -- Cond Setup + ... +} + +DRB-ToAddModList-NB-r13 ::= SEQUENCE (SIZE (1..maxDRB-NB-r13)) OF DRB-ToAddMod-NB-r13 + +DRB-ToAddMod-NB-r13 ::= SEQUENCE { + eps-BearerIdentity-r13 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity-r13 DRB-Identity, + pdcp-Config-r13 PDCP-Config-NB-r13 OPTIONAL, -- Cond Setup + rlc-Config-r13 RLC-Config-NB-r13 OPTIONAL, -- Cond Setup + logicalChannelIdentity-r13 INTEGER (3..10) OPTIONAL, -- Cond DRB-Setup + logicalChannelConfig-r13 LogicalChannelConfig-NB-r13 OPTIONAL, -- Cond Setup + ... +} + +DRB-ToReleaseList-NB-r13 ::= SEQUENCE (SIZE (1..maxDRB-NB-r13)) OF DRB-Identity + + +RLC-Config-NB-r13 ::= CHOICE { + am SEQUENCE { + ul-AM-RLC-r13 UL-AM-RLC-NB-r13, + dl-AM-RLC-r13 DL-AM-RLC-NB-r13 + }, + ... +} + + +UL-AM-RLC-NB-r13 ::= SEQUENCE { + t-PollRetransmit-r13 T-PollRetransmit-NB-r13, + maxRetxThreshold-r13 ENUMERATED {t1, t2, t3, t4, t6, t8, t16, t32} +} + +DL-AM-RLC-NB-r13 ::= SEQUENCE { + enableStatusReportSN-Gap-r13 ENUMERATED {true} OPTIONAL +} + +T-PollRetransmit-NB-r13 ::= ENUMERATED { + ms250, ms500, ms1000, ms2000, ms3000, ms4000, + ms6000, ms10000, ms15000, ms25000, ms40000, ms60000, + ms90000, ms120000, ms180000, spare1} + + + + +RLF-TimersAndConstants-NB-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + t301-r13 ENUMERATED { + ms2500, ms4000, ms6000, ms10000, + ms15000, ms25000, ms40000, ms60000}, + t310-r13 ENUMERATED { + ms0, ms200, ms500, ms1000, ms2000, ms4000, ms8000}, + n310-r13 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311-r13 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311-r13 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ..., + [[ t311-v1350 ENUMERATED { + ms40000, ms60000, ms90000, ms120000} + OPTIONAL -- Need OR + ]] + } +} + + + +UplinkPowerControlCommon-NB-r13 ::= SEQUENCE { + p0-NominalNPUSCH-r13 INTEGER (-126..24), + alpha-r13 ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1}, + deltaPreambleMsg3-r13 INTEGER (-1..6) +} + +UplinkPowerControlDedicated-NB-r13 ::= SEQUENCE { + p0-UE-NPUSCH-r13 INTEGER (-8..7) +} + + +FreqBandIndicator-NB-r13 ::= INTEGER (1.. maxFBI2) + + +MultiBandInfoList-NB-r13 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF MultiBandInfo-NB-r13 + +MultiBandInfo-NB-r13 ::= SEQUENCE { + freqBandIndicator-r13 FreqBandIndicator-NB-r13 OPTIONAL, -- Need OR + freqBandInfo-r13 NS-PmaxList-NB-r13 OPTIONAL -- Need OR +} + + +NS-PmaxList-NB-r13 ::= SEQUENCE (SIZE (1..maxNS-Pmax-NB-r13)) OF NS-PmaxValue-NB-r13 + +NS-PmaxValue-NB-r13 ::= SEQUENCE { + additionalPmax-r13 P-Max OPTIONAL, -- Need OR + additionalSpectrumEmission-r13 AdditionalSpectrumEmission +} + + +ReselectionThreshold-NB-v1360 ::= INTEGER (32..63) + + +T-Reselection-NB-r13 ::= ENUMERATED {s0, s3, s6, s9, s12, s15, s18, s21} + + +EstablishmentCause-NB-r13 ::= ENUMERATED { + mt-Access, mo-Signalling, mo-Data, mo-ExceptionData, + delayTolerantAccess-v1330, spare3, spare2, spare1} + + +UE-Capability-NB-r13 ::= SEQUENCE { + accessStratumRelease-r13 AccessStratumRelease-NB-r13, + ue-Category-NB-r13 ENUMERATED {nb1} OPTIONAL, + multipleDRB-r13 ENUMERATED {supported} OPTIONAL, + pdcp-Parameters-r13 PDCP-Parameters-NB-r13 OPTIONAL, + phyLayerParameters-r13 PhyLayerParameters-NB-r13, + rf-Parameters-r13 RF-Parameters-NB-r13, + dummy SEQUENCE {} OPTIONAL +} + +AccessStratumRelease-NB-r13 ::= ENUMERATED {rel13, spare7, spare6, spare5, spare4, spare3, spare2, spare1, ...} + +PDCP-Parameters-NB-r13 ::= SEQUENCE { + supportedROHC-Profiles-r13 SEQUENCE { + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + maxNumberROHC-ContextSessions-r13 ENUMERATED {cs2, cs4, cs8, cs12} DEFAULT cs2, + ... +} + +PhyLayerParameters-NB-r13 ::= SEQUENCE { + multiTone-r13 ENUMERATED {supported} OPTIONAL, + multiCarrier-r13 ENUMERATED {supported} OPTIONAL + } + +RF-Parameters-NB-r13 ::= SEQUENCE { + supportedBandList-r13 SupportedBandList-NB-r13, + multiNS-Pmax-r13 ENUMERATED {supported} OPTIONAL +} + +SupportedBandList-NB-r13 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBand-NB-r13 + +SupportedBand-NB-r13 ::= SEQUENCE { + band-r13 FreqBandIndicator-NB-r13, + powerClassNB-20dBm-r13 ENUMERATED {supported} OPTIONAL +} + + + +UE-RadioPagingInfo-NB-r13 ::= SEQUENCE { + ue-Category-NB-r13 ENUMERATED {nb1} OPTIONAL, + ... +} + + +UE-TimersAndConstants-NB-r13 ::= SEQUENCE { + t300-r13 ENUMERATED { + ms2500, ms4000, ms6000, ms10000, + ms15000, ms25000, ms40000, ms60000}, + t301-r13 ENUMERATED { + ms2500, ms4000, ms6000, ms10000, + ms15000, ms25000, ms40000, ms60000}, + t310-r13 ENUMERATED { + ms0, ms200, ms500, ms1000, ms2000, ms4000, ms8000}, + n310-r13 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311-r13 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311-r13 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ..., + [[ t311-v1350 ENUMERATED { + ms40000, ms60000, ms90000, ms120000} + OPTIONAL -- Need OR + ]] +} + + +maxNPRACH-Resources-NB-r13 INTEGER ::= 3 -- Maximum number of NPRACH resources for NB-IoT +maxDRB-NB-r13 INTEGER ::= 2 -- Maximum number of Data Radio Bearers for NB-IoT +maxNS-Pmax-NB-r13 INTEGER ::= 4 -- Maximum number of NS and P-Max values per band +maxSI-Message-NB-r13 INTEGER ::= 8 -- Maximum number of SI messages for NB-IoT + + +END + + +EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AbsoluteTimeInfo-r10, + AreaConfiguration-r10, + AreaConfiguration-v1130, + CarrierFreqGERAN, + CellIdentity, + ConnEstFailReport-r11, + SpeedStateScaleFactors, + C-RNTI, + LoggingDuration-r10, + LoggingInterval-r10, + LogMeasInfo-r10, + MeasCSI-RS-Id-r12, + MeasId, + MeasId-v1250, + MeasIdToAddModList, + MeasIdToAddModListExt-r12, + MeasIdToAddModList-v1310, + MeasIdToAddModListExt-v1310, + MeasObjectToAddModList, + MeasObjectToAddModList-v9e0, + MeasObjectToAddModListExt-r13, + MeasScaleFactor-r12, + MobilityStateParameters, + NeighCellConfig, + PhysCellId, + PhysCellIdCDMA2000, + PhysCellIdGERAN, + PhysCellIdUTRA-FDD, + PhysCellIdUTRA-TDD, + PLMN-Identity, + PLMN-IdentityList3-r11, + QuantityConfig, + ReportConfigToAddModList, + RLF-Report-r9, + TargetMBSFN-AreaList-r12, + TraceReference-r10, + VisitedCellInfoList-r12, + maxCellMeas, + maxCSI-RS-Meas-r12, + maxMeasId, + maxMeasId-r12, + UL-DelayConfig-r13, + WLAN-CarrierInfo-r13, + WLAN-Identifiers-r12, + WLAN-Id-List-r13, + WLAN-Status-r13 + + +FROM EUTRA-RRC-Definitions; + + +VarConnEstFailReport-r11 ::= SEQUENCE { + connEstFailReport-r11 ConnEstFailReport-r11, + plmn-Identity-r11 PLMN-Identity +} + + +VarLogMeasConfig-r10 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10 +} + +VarLogMeasConfig-r11 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10 +} + +VarLogMeasConfig-r12 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10, + targetMBSFN-AreaList-r12 TargetMBSFN-AreaList-r12 OPTIONAL +} + + +VarLogMeasReport-r10 ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + plmn-Identity-r10 PLMN-Identity, + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + logMeasInfoList-r10 LogMeasInfoList2-r10 +} + +VarLogMeasReport-r11 ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + plmn-IdentityList-r11 PLMN-IdentityList3-r11, + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + logMeasInfoList-r10 LogMeasInfoList2-r10 +} + +LogMeasInfoList2-r10 ::= SEQUENCE (SIZE (1..maxLogMeas-r10)) OF LogMeasInfo-r10 + + +VarMeasConfig ::= SEQUENCE { + -- Measurement identities + measIdList MeasIdToAddModList OPTIONAL, + measIdListExt-r12 MeasIdToAddModListExt-r12 OPTIONAL, + measIdList-v1310 MeasIdToAddModList-v1310 OPTIONAL, + measIdListExt-v1310 MeasIdToAddModListExt-v1310 OPTIONAL, + -- Measurement objects + measObjectList MeasObjectToAddModList OPTIONAL, + measObjectListExt-r13 MeasObjectToAddModListExt-r13 OPTIONAL, + measObjectList-v9i0 MeasObjectToAddModList-v9e0 OPTIONAL, + -- Reporting configurations + reportConfigList ReportConfigToAddModList OPTIONAL, + -- Other parameters + quantityConfig QuantityConfig OPTIONAL, + measScaleFactor-r12 MeasScaleFactor-r12 OPTIONAL, + s-Measure INTEGER (-140..-44) OPTIONAL, + speedStatePars CHOICE { + release NULL, + setup SEQUENCE { + mobilityStateParameters MobilityStateParameters, + timeToTrigger-SF SpeedStateScaleFactors + } + } OPTIONAL, + allowInterruptions-r11 BOOLEAN OPTIONAL +} + + +VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport +VarMeasReportList-r12 ::= SEQUENCE (SIZE (1..maxMeasId-r12)) OF VarMeasReport + +VarMeasReport ::= SEQUENCE { + -- List of measurement that have been triggered + measId MeasId, + measId-v1250 MeasId-v1250 OPTIONAL, + cellsTriggeredList CellsTriggeredList OPTIONAL, + csi-RS-TriggeredList-r12 CSI-RS-TriggeredList-r12 OPTIONAL, + numberOfReportsSent INTEGER +} + +CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CHOICE { + physCellIdEUTRA PhysCellId, + physCellIdUTRA CHOICE { + fdd PhysCellIdUTRA-FDD, + tdd PhysCellIdUTRA-TDD + }, + physCellIdGERAN SEQUENCE { + carrierFreq CarrierFreqGERAN, + physCellId PhysCellIdGERAN + }, + physCellIdCDMA2000 PhysCellIdCDMA2000, + wlan-Identifiers-r13 WLAN-Identifiers-r12 +} + +CSI-RS-TriggeredList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Id-r12 + +VarMobilityHistoryReport-r12 ::= VisitedCellInfoList-r12 + + +VarRLF-Report-r10 ::= SEQUENCE { + rlf-Report-r10 RLF-Report-r9, + plmn-Identity-r10 PLMN-Identity +} + +VarRLF-Report-r11 ::= SEQUENCE { + rlf-Report-r10 RLF-Report-r9, + plmn-IdentityList-r11 PLMN-IdentityList3-r11 +} + + +VarShortMAC-Input ::= SEQUENCE { + cellIdentity CellIdentity, + physCellId PhysCellId, + c-RNTI C-RNTI +} + +VarShortResumeMAC-Input-r13 ::= SEQUENCE { + cellIdentity-r13 CellIdentity, + physCellId-r13 PhysCellId, + c-RNTI-r13 C-RNTI, + resumeDiscriminator-r13 BIT STRING(SIZE(1)) +} + + +VarWLAN-MobilityConfig ::= SEQUENCE { + wlan-MobilitySet-r13 WLAN-Id-List-r13 OPTIONAL, + successReportRequested ENUMERATED {true} OPTIONAL +} + + +VarWLAN-Status-r13 ::= SEQUENCE { + status-r13 WLAN-Status-r13 +} + + +maxLogMeas-r10 INTEGER ::= 4060-- Maximum number of logged measurement entries + -- that can be stored by the UE + + +END + + +NBIOT-UE-Variables DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + VarShortMAC-Input, + VarShortResumeMAC-Input-r13 + +FROM EUTRA-UE-Variables; + +VarShortMAC-Input-NB-r13 ::= VarShortMAC-Input + +VarShortResumeMAC-Input-NB-r13 ::= VarShortResumeMAC-Input-r13 + + + +END + + +EUTRA-Sidelink-Preconf DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AdditionalSpectrumEmission, + ARFCN-ValueEUTRA-r9, + FilterCoefficient, + maxSL-TxPool-r12, + maxSL-CommRxPoolPreconf-v1310, + maxSL-CommTxPoolPreconf-v1310, + maxSL-DiscRxPoolPreconf-r13, + maxSL-DiscTxPoolPreconf-r13, + P-Max, + ReselectionInfoRelay-r13, + SL-CP-Len-r12, + SL-HoppingConfigComm-r12, + SL-OffsetIndicatorSync-r12, + SL-PeriodComm-r12, + RSRP-RangeSL3-r12, + SL-PriorityList-r13, + SL-TF-ResourceConfig-r12, + SL-TRPT-Subset-r12, + P0-SL-r12, + TDD-ConfigSL-r12 +FROM EUTRA-RRC-Definitions; + + +SL-Preconfiguration-r12 ::= SEQUENCE { + preconfigGeneral-r12 SL-PreconfigGeneral-r12, + preconfigSync-r12 SL-PreconfigSync-r12, + preconfigComm-r12 SL-PreconfigCommPoolList4-r12, + ..., + [[ preconfigComm-v1310 SEQUENCE { + commRxPoolList-r13 SL-PreconfigCommRxPoolList-r13, + commTxPoolList-r13 SL-PreconfigCommTxPoolList-r13 OPTIONAL + } OPTIONAL, + preconfigDisc-r13 SEQUENCE { + discRxPoolList-r13 SL-PreconfigDiscRxPoolList-r13, + discTxPoolList-r13 SL-PreconfigDiscTxPoolList-r13 OPTIONAL + } OPTIONAL, + preconfigRelay-r13 SL-PreconfigRelay-r13 OPTIONAL + ]] + +} + +SL-PreconfigGeneral-r12 ::= SEQUENCE { + -- PDCP configuration + rohc-Profiles-r12 SEQUENCE { + profile0x0001-r12 BOOLEAN, + profile0x0002-r12 BOOLEAN, + profile0x0004-r12 BOOLEAN, + profile0x0006-r12 BOOLEAN, + profile0x0101-r12 BOOLEAN, + profile0x0102-r12 BOOLEAN, + profile0x0104-r12 BOOLEAN + }, + -- Physical configuration + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + maxTxPower-r12 P-Max, + additionalSpectrumEmission-r12 AdditionalSpectrumEmission, + sl-bandwidth-r12 ENUMERATED {n6, n15, n25, n50, n75, n100}, + tdd-ConfigSL-r12 TDD-ConfigSL-r12, + reserved-r12 BIT STRING (SIZE (19)), + ... +} + +SL-PreconfigSync-r12 ::= SEQUENCE { + syncCP-Len-r12 SL-CP-Len-r12, + syncOffsetIndicator1-r12 SL-OffsetIndicatorSync-r12, + syncOffsetIndicator2-r12 SL-OffsetIndicatorSync-r12, + syncTxParameters-r12 P0-SL-r12, + syncTxThreshOoC-r12 RSRP-RangeSL3-r12, + filterCoefficient-r12 FilterCoefficient, + syncRefMinHyst-r12 ENUMERATED {dB0, dB3, dB6, dB9, dB12}, + syncRefDiffHyst-r12 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf}, + ..., + [[ syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL + ]] +} + +SL-PreconfigCommPoolList4-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-PreconfigCommPool-r12 + +SL-PreconfigCommRxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-CommRxPoolPreconf-v1310)) OF SL-PreconfigCommPool-r12 + +SL-PreconfigCommTxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-CommTxPoolPreconf-v1310)) OF SL-PreconfigCommPool-r12 + +SL-PreconfigCommPool-r12 ::= SEQUENCE { +-- This IE is same as SL-CommResourcePool with rxParametersNCell absent + sc-CP-Len-r12 SL-CP-Len-r12, + sc-Period-r12 SL-PeriodComm-r12, + sc-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + sc-TxParameters-r12 P0-SL-r12, + data-CP-Len-r12 SL-CP-Len-r12, + data-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + dataHoppingConfig-r12 SL-HoppingConfigComm-r12, + dataTxParameters-r12 P0-SL-r12, + trpt-Subset-r12 SL-TRPT-Subset-r12, + ..., + [[ priorityList-r13 SL-PriorityList-r13 OPTIONAL -- For Tx + ]] +} + +SL-PreconfigDiscRxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-DiscRxPoolPreconf-r13)) OF SL-PreconfigDiscPool-r13 + +SL-PreconfigDiscTxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-DiscTxPoolPreconf-r13)) OF SL-PreconfigDiscPool-r13 + +SL-PreconfigDiscPool-r13 ::= SEQUENCE { +-- This IE is same as SL-DiscResourcePool with rxParameters absent + cp-Len-r13 SL-CP-Len-r12, + discPeriod-r13 ENUMERATED {rf4, rf6, rf7, rf8, rf12, rf14, rf16, rf24, rf28, + rf32, rf64, rf128, rf256, rf512, rf1024, spare}, + numRetx-r13 INTEGER (0..3), + numRepetition-r13 INTEGER (1..50), + tf-ResourceConfig-r13 SL-TF-ResourceConfig-r12, + txParameters-r13 SEQUENCE { + txParametersGeneral-r13 P0-SL-r12, + txProbability-r13 ENUMERATED {p25, p50, p75, p100} + } OPTIONAL, + ... +} + +SL-PreconfigRelay-r13 ::= SEQUENCE { + reselectionInfoOoC-r13 ReselectionInfoRelay-r13 +} + +END + + +EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AntennaInfoCommon, + AntennaInfoDedicated-v10i0, + ARFCN-ValueEUTRA, + ARFCN-ValueEUTRA-v9e0, + ARFCN-ValueEUTRA-r9, + CellIdentity, + C-RNTI, + DL-DCCH-Message, + DRB-Identity, + DRB-ToReleaseList, + FreqBandIndicator-r11, + InDeviceCoexIndication-r11, + MasterInformationBlock, + maxBands, + maxFreq, + maxDRB, + maxSCell-r10, + maxSCell-r13, + maxServCell-r10, + maxServCell-r13, + MBMSInterestIndication-r11, + MeasConfig, + MeasGapConfig, + MeasResultForRSSI-r13, + OtherConfig-r9, + PhysCellId, + P-Max, + PowerCoordinationInfo-r12, + SidelinkUEInformation-r12, + SL-CommConfig-r12, + SL-DiscConfig-r12, + RadioResourceConfigDedicated, + RCLWI-Configuration-r13, + RSRP-Range, + RSRQ-Range, + RSRQ-Range-v1250, + RS-SINR-Range-r13, + SCellToAddModList-r10, + SCellToAddModListExt-r13, + SCG-ConfigPartSCG-r12, + SecurityAlgorithmConfig, + SCellIndex-r10, + SCellIndex-r13, + SCellToReleaseList-r10, + SCellToReleaseListExt-r13, + ServCellIndex-r10, + ServCellIndex-r13, + ShortMAC-I, + MeasResultSSTD-r13, + SystemInformationBlockType1, + SystemInformationBlockType1-v890-IEs, + SystemInformationBlockType2, + UEAssistanceInformation-r11, + UECapabilityInformation, + UE-CapabilityRAT-ContainerList, + UE-RadioPagingInfo-r12, + WLANConnectionStatusReport-r13, + WLAN-OffloadConfig-r12 +FROM EUTRA-RRC-Definitions; + + +HandoverCommand ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverCommand-r8 HandoverCommand-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverCommand-r8-IEs ::= SEQUENCE { + handoverCommandMessage OCTET STRING (CONTAINING DL-DCCH-Message), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +HandoverPreparationInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverPreparationInformation-r8 HandoverPreparationInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverPreparationInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo UE-CapabilityRAT-ContainerList, + as-Config AS-Config OPTIONAL, -- Cond HO + rrm-Config RRM-Config OPTIONAL, + as-Context AS-Context OPTIONAL, -- Cond HO + nonCriticalExtension HandoverPreparationInformation-v920-IEs OPTIONAL +} + +HandoverPreparationInformation-v920-IEs ::= SEQUENCE { + ue-ConfigRelease-r9 ENUMERATED { + rel9, rel10, rel11, rel12, v10j0, v11e0, + v1280, rel13, ...} OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v9d0-IEs OPTIONAL +} + +HandoverPreparationInformation-v9d0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING HandoverPreparationInformation-v9j0-IEs) OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-v9e0-IEs OPTIONAL +} + +-- Late non-critical extensions: +HandoverPreparationInformation-v9j0-IEs ::= SEQUENCE { + -- Following field is only for pre REL-10 late non-critical extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-v10j0-IEs OPTIONAL +} + +HandoverPreparationInformation-v10j0-IEs ::= SEQUENCE { + as-Config-v10j0 AS-Config-v10j0 OPTIONAL, + -- Following field is only for late non-critical extensions from REL-10 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +HandoverPreparationInformation-v9e0-IEs ::= SEQUENCE { + as-Config-v9e0 AS-Config-v9e0 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1130-IEs OPTIONAL +} + +HandoverPreparationInformation-v1130-IEs ::= SEQUENCE { + as-Context-v1130 AS-Context-v1130 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1250-IEs OPTIONAL +} + +HandoverPreparationInformation-v1250-IEs ::= SEQUENCE { + ue-SupportedEARFCN-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Cond HO3 + as-Config-v1250 AS-Config-v1250 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1320-IEs OPTIONAL +} + +HandoverPreparationInformation-v1320-IEs ::= SEQUENCE { + as-Config-v1320 AS-Config-v1320 OPTIONAL, -- Cond HO2 + as-Context-v1320 AS-Context-v1320 OPTIONAL, -- Cond HO2 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCG-Config-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + scg-Config-r12 SCG-Config-r12-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCG-Config-r12-IEs ::= SEQUENCE { + scg-RadioConfig-r12 SCG-ConfigPartSCG-r12 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCG-ConfigInfo-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + scg-ConfigInfo-r12 SCG-ConfigInfo-r12-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCG-ConfigInfo-r12-IEs ::= SEQUENCE { + radioResourceConfigDedMCG-r12 RadioResourceConfigDedicated OPTIONAL, + sCellToAddModListMCG-r12 SCellToAddModList-r10 OPTIONAL, + measGapConfig-r12 MeasGapConfig OPTIONAL, + powerCoordinationInfo-r12 PowerCoordinationInfo-r12 OPTIONAL, + scg-RadioConfig-r12 SCG-ConfigPartSCG-r12 OPTIONAL, + eutra-CapabilityInfo-r12 OCTET STRING (CONTAINING UECapabilityInformation) OPTIONAL, + scg-ConfigRestrictInfo-r12 SCG-ConfigRestrictInfo-r12 OPTIONAL, + mbmsInterestIndication-r12 OCTET STRING (CONTAINING + MBMSInterestIndication-r11) OPTIONAL, + measResultServCellListSCG-r12 MeasResultServCellListSCG-r12 OPTIONAL, + drb-ToAddModListSCG-r12 DRB-InfoListSCG-r12 OPTIONAL, + drb-ToReleaseListSCG-r12 DRB-ToReleaseList OPTIONAL, + sCellToAddModListSCG-r12 SCellToAddModListSCG-r12 OPTIONAL, + sCellToReleaseListSCG-r12 SCellToReleaseList-r10 OPTIONAL, + p-Max-r12 P-Max OPTIONAL, + nonCriticalExtension SCG-ConfigInfo-v1310-IEs OPTIONAL +} + +SCG-ConfigInfo-v1310-IEs ::= SEQUENCE { + measResultSSTD-r13 MeasResultSSTD-r13 OPTIONAL, sCellToAddModListMCG-Ext-r13 SCellToAddModListExt-r13 OPTIONAL, + measResultServCellListSCG-Ext-r13 MeasResultServCellListSCG-Ext-r13 OPTIONAL, + sCellToAddModListSCG-Ext-r13 SCellToAddModListSCG-Ext-r13 OPTIONAL, + sCellToReleaseListSCG-Ext-r13 SCellToReleaseListExt-r13 OPTIONAL, + nonCriticalExtension SCG-ConfigInfo-v1330-IEs OPTIONAL +} + +SCG-ConfigInfo-v1330-IEs ::= SEQUENCE { + measResultListRSSI-SCG-r13 MeasResultListRSSI-SCG-r13 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-InfoListSCG-r12 ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-InfoSCG-r12 + +DRB-InfoSCG-r12 ::= SEQUENCE { + eps-BearerIdentity-r12 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity-r12 DRB-Identity, + drb-Type-r12 ENUMERATED {split, scg} OPTIONAL, -- Cond DRB-Setup + ... +} + +SCellToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF Cell-ToAddMod-r12 + +SCellToAddModListSCG-Ext-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF Cell-ToAddMod-r12 + +Cell-ToAddMod-r12 ::= SEQUENCE { + sCellIndex-r12 SCellIndex-r10, + cellIdentification-r12 SEQUENCE { + physCellId-r12 PhysCellId, + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + measResultCellToAdd-r12 SEQUENCE { + rsrpResult-r12 RSRP-Range, + rsrqResult-r12 RSRQ-Range + } OPTIONAL, -- Cond SCellAdd2 + ..., + [[ sCellIndex-r13 SCellIndex-r13 OPTIONAL, + measResultCellToAdd-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL -- Cond SCellAdd2 + ]] +} + +MeasResultServCellListSCG-r12 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF MeasResultServCellSCG-r12 + +MeasResultServCellListSCG-Ext-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultServCellSCG-r12 + +MeasResultServCellSCG-r12 ::= SEQUENCE { + servCellId-r12 ServCellIndex-r10, + measResultSCell-r12 SEQUENCE { + rsrpResultSCell-r12 RSRP-Range, + rsrqResultSCell-r12 RSRQ-Range + }, + ..., + [[ servCellId-r13 ServCellIndex-r13 OPTIONAL, + measResultSCell-v1310 SEQUENCE { + rs-sinr-ResultSCell-r13 RS-SINR-Range-r13 + } OPTIONAL + ]] +} + +MeasResultListRSSI-SCG-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultRSSI-SCG-r13 + +MeasResultRSSI-SCG-r13 ::= SEQUENCE { + servCellId-r13 ServCellIndex-r13, + measResultForRSSI-r13 MeasResultForRSSI-r13 +} + +SCG-ConfigRestrictInfo-r12 ::= SEQUENCE { + maxSCH-TB-BitsDL-r12 INTEGER (1..100), + maxSCH-TB-BitsUL-r12 INTEGER (1..100) +} + + +UEPagingCoverageInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + uePagingCoverageInformation-r13 UEPagingCoverageInformation-r13-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEPagingCoverageInformation-r13-IEs ::= SEQUENCE { + mpdcch-NumRepetition-r13 INTEGER (1..256) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioAccessCapabilityInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioAccessCapabilityInformation-r8 + UERadioAccessCapabilityInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioPagingInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioPagingInformation-r12 UERadioPagingInformation-r12-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioPagingInformation-r12-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r12 OCTET STRING (CONTAINING UE-RadioPagingInfo-r12), + nonCriticalExtension UERadioPagingInformation-v1310-IEs OPTIONAL +} + +UERadioPagingInformation-v1310-IEs ::= SEQUENCE { + supportedBandListEUTRAForPaging-r13 SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicator-r11 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL + +} + + +AS-Config ::= SEQUENCE { + sourceMeasConfig MeasConfig, + sourceRadioResourceConfig RadioResourceConfigDedicated, + sourceSecurityAlgorithmConfig SecurityAlgorithmConfig, + sourceUE-Identity C-RNTI, + sourceMasterInformationBlock MasterInformationBlock, + sourceSystemInformationBlockType1 SystemInformationBlockType1(WITH COMPONENTS + {..., nonCriticalExtension ABSENT}), + sourceSystemInformationBlockType2 SystemInformationBlockType2, + antennaInfoCommon AntennaInfoCommon, + sourceDl-CarrierFreq ARFCN-ValueEUTRA, + ..., + [[ sourceSystemInformationBlockType1Ext OCTET STRING (CONTAINING + SystemInformationBlockType1-v890-IEs) OPTIONAL, + sourceOtherConfig-r9 OtherConfig-r9 + -- sourceOtherConfig-r9 should have been optional. A target eNB compliant with this transfer + -- syntax should support receiving an AS-Config not including this extension addition group + -- e.g. from a legacy source eNB + ]], + [[ sourceSCellConfigList-r10 SCellToAddModList-r10 OPTIONAL + ]], + [[ sourceConfigSCG-r12 SCG-Config-r12 OPTIONAL + ]] +} + +AS-Config-v9e0 ::= SEQUENCE { + sourceDl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +AS-Config-v10j0 ::= SEQUENCE { + antennaInfoDedicatedPCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL +} + +AS-Config-v1250 ::= SEQUENCE { + sourceWlan-OffloadConfig-r12 WLAN-OffloadConfig-r12 OPTIONAL, + sourceSL-CommConfig-r12 SL-CommConfig-r12 OPTIONAL, + sourceSL-DiscConfig-r12 SL-DiscConfig-r12 OPTIONAL +} + +AS-Config-v1320 ::= SEQUENCE { + sourceSCellConfigList-r13 SCellToAddModListExt-r13 OPTIONAL, + sourceRCLWI-Configuration-r13 RCLWI-Configuration-r13 OPTIONAL +} + + +AS-Context ::= SEQUENCE { + reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO +} + +AS-Context-v1130 ::= SEQUENCE { + idc-Indication-r11 OCTET STRING (CONTAINING + InDeviceCoexIndication-r11) OPTIONAL, -- Cond HO2 + mbmsInterestIndication-r11 OCTET STRING (CONTAINING + MBMSInterestIndication-r11) OPTIONAL, -- Cond HO2 + powerPrefIndication-r11 OCTET STRING (CONTAINING + UEAssistanceInformation-r11) OPTIONAL, -- Cond HO2 + ..., + [[ sidelinkUEInformation-r12 OCTET STRING (CONTAINING + SidelinkUEInformation-r12) OPTIONAL -- Cond HO2 + ]] +} + +AS-Context-v1320 ::= SEQUENCE { + wlanConnectionStatusReport-r13 OCTET STRING (CONTAINING + WLANConnectionStatusReport-r13) OPTIONAL -- Cond HO2 +} + + +ReestablishmentInfo ::= SEQUENCE { + sourcePhysCellId PhysCellId, + targetCellShortMAC-I ShortMAC-I, + additionalReestabInfoList AdditionalReestabInfoList OPTIONAL, + ... +} + +AdditionalReestabInfoList ::= SEQUENCE ( SIZE (1..maxReestabInfo) ) OF AdditionalReestabInfo + +AdditionalReestabInfo ::= SEQUENCE{ + cellIdentity CellIdentity, + key-eNodeB-Star Key-eNodeB-Star, + shortMAC-I ShortMAC-I +} + +Key-eNodeB-Star ::= BIT STRING (SIZE (256)) + + +RRM-Config ::= SEQUENCE { + ue-InactiveTime ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, + s25, s30, s40, s50, min1, min1s20c, min1s40, + min2, min2s30, min3, min3s30, min4, min5, min6, + min7, min8, min9, min10, min12, min14, min17, min20, + min24, min28, min33, min38, min44, min50, hr1, + hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6, + hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2, + day2hr12, day3, day4, day5, day7, day10, day14, day19, + day24, day30, dayMoreThan30} OPTIONAL, + ..., + [[ candidateCellInfoList-r10 CandidateCellInfoList-r10 OPTIONAL + ]] +} + +CandidateCellInfoList-r10 ::= SEQUENCE (SIZE (1..maxFreq)) OF CandidateCellInfo-r10 + +CandidateCellInfo-r10 ::= SEQUENCE { + -- cellIdentification + physCellId-r10 PhysCellId, + dl-CarrierFreq-r10 ARFCN-ValueEUTRA, + -- available measurement results + rsrpResult-r10 RSRP-Range OPTIONAL, + rsrqResult-r10 RSRQ-Range OPTIONAL, + ..., + [[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL + ]], + [[ rsrqResult-v1250 RSRQ-Range-v1250 OPTIONAL + ]], + [[ rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL + ]] +} + + +maxReestabInfo INTEGER ::= 32 -- Maximum number of KeNB* and shortMAC-I forwarded + -- at handover for re-establishment preparation + + +END + + +NBIOT-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + C-RNTI, + PhysCellId, + SecurityAlgorithmConfig, + ShortMAC-I +FROM EUTRA-RRC-Definitions + + AdditionalReestabInfoList +FROM EUTRA-InterNodeDefinitions + + CarrierFreq-NB-r13, + RadioResourceConfigDedicated-NB-r13, + UE-Capability-NB-r13, + UE-RadioPagingInfo-NB-r13 +FROM NBIOT-RRC-Definitions; + + +HandoverPreparationInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverPreparationInformation-r13 HandoverPreparationInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverPreparationInformation-NB-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo-r13 UE-Capability-NB-r13, + as-Config-r13 AS-Config-NB, + rrm-Config-r13 RRM-Config-NB OPTIONAL, + as-Context-r13 AS-Context-NB OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-NB-v1380-IEs OPTIONAL +} + +HandoverPreparationInformation-NB-v1380-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEPagingCoverageInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + uePagingCoverageInformation-r13 UEPagingCoverageInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEPagingCoverageInformation-NB-IEs ::= SEQUENCE { +-- the possible value(s) can differ from those sent on Uu + npdcch-NumRepetitionPaging-r13 INTEGER (1..2048) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioAccessCapabilityInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioAccessCapabilityInformation-r13 + UERadioAccessCapabilityInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioAccessCapabilityInformation-NB-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo-r13 OCTET STRING (CONTAINING UE-Capability-NB-r13), + nonCriticalExtension UERadioAccessCapabilityInformation-NB-v1380-IEs OPTIONAL +} + +UERadioAccessCapabilityInformation-NB-v1380-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioPagingInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioPagingInformation-r13 UERadioPagingInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioPagingInformation-NB-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r13 OCTET STRING (CONTAINING UE-RadioPagingInfo-NB-r13), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +AS-Config-NB ::= SEQUENCE { + sourceRadioResourceConfig-r13 RadioResourceConfigDedicated-NB-r13, + sourceSecurityAlgorithmConfig-r13 SecurityAlgorithmConfig, + sourceUE-Identity-r13 C-RNTI, + sourceDl-CarrierFreq-r13 CarrierFreq-NB-r13, + ... +} + + +AS-Context-NB ::= SEQUENCE { + reestablishmentInfo-r13 ReestablishmentInfo-NB OPTIONAL, + ... +} + + +ReestablishmentInfo-NB ::= SEQUENCE { + sourcePhysCellId-r13 PhysCellId, + targetCellShortMAC-I-r13 ShortMAC-I, + additionalReestabInfoList-r13 AdditionalReestabInfoList OPTIONAL, + ... +} + + + + +RRM-Config-NB ::= SEQUENCE { + ue-InactiveTime ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, + s25, s30, s40, s50, min1, min1s20, min1s40, + min2, min2s30, min3, min3s30, min4, min5, min6, + min7, min8, min9, min10, min12, min14, min17, min20, + min24, min28, min33, min38, min44, min50, hr1, + hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6, + hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2, + day2hr12, day3, day4, day5, day7, day10, day14, day19, + day24, day30, dayMoreThan30} OPTIONAL, + ... +} + + +END + + diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-14.4.0.asn1 b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-14.4.0.asn1 new file mode 100755 index 0000000000..f923c58134 --- /dev/null +++ b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-14.4.0.asn1 @@ -0,0 +1,14042 @@ + +EUTRA-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + + +BCCH-BCH-Message ::= SEQUENCE { + message BCCH-BCH-MessageType +} + +BCCH-BCH-MessageType ::= MasterInformationBlock + + +BCCH-BCH-Message-MBMS::= SEQUENCE { + message BCCH-BCH-MessageType-MBMS-r14 +} + +BCCH-BCH-MessageType-MBMS-r14 ::= MasterInformationBlock-MBMS-r14 + + +BCCH-DL-SCH-Message ::= SEQUENCE { + message BCCH-DL-SCH-MessageType +} + +BCCH-DL-SCH-MessageType ::= CHOICE { + c1 CHOICE { + systemInformation SystemInformation, + systemInformationBlockType1 SystemInformationBlockType1 + }, + messageClassExtension SEQUENCE {} +} + + +BCCH-DL-SCH-Message-BR ::= SEQUENCE { + message BCCH-DL-SCH-MessageType-BR-r13 +} + +BCCH-DL-SCH-MessageType-BR-r13 ::= CHOICE { + c1 CHOICE { + systemInformation-BR-r13 SystemInformation-BR-r13, + systemInformationBlockType1-BR-r13 SystemInformationBlockType1-BR-r13 + }, + messageClassExtension SEQUENCE {} +} + + +BCCH-DL-SCH-Message-MBMS ::= SEQUENCE { + message BCCH-DL-SCH-MessageType-MBMS-r14 +} + +BCCH-DL-SCH-MessageType-MBMS-r14 ::= CHOICE { + c1 CHOICE { + systemInformation-MBMS-r14 SystemInformation-MBMS-r14, + systemInformationBlockType1-MBMS-r14 SystemInformationBlockType1-MBMS-r14 + }, + messageClassExtension SEQUENCE {} +} + + +MCCH-Message ::= SEQUENCE { + message MCCH-MessageType +} + +MCCH-MessageType ::= CHOICE { + c1 CHOICE { + mbsfnAreaConfiguration-r9 MBSFNAreaConfiguration-r9 + }, + later CHOICE { + c2 CHOICE{ + mbmsCountingRequest-r10 MBMSCountingRequest-r10 + }, + messageClassExtension SEQUENCE {} + } +} + + +PCCH-Message ::= SEQUENCE { + message PCCH-MessageType +} + +PCCH-MessageType ::= CHOICE { + c1 CHOICE { + paging Paging + }, + messageClassExtension SEQUENCE {} +} + + +DL-CCCH-Message ::= SEQUENCE { + message DL-CCCH-MessageType +} + +DL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishment RRCConnectionReestablishment, + rrcConnectionReestablishmentReject RRCConnectionReestablishmentReject, + rrcConnectionReject RRCConnectionReject, + rrcConnectionSetup RRCConnectionSetup + }, + messageClassExtension SEQUENCE {} +} + + +DL-DCCH-Message ::= SEQUENCE { + message DL-DCCH-MessageType +} + +DL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + csfbParametersResponseCDMA2000 CSFBParametersResponseCDMA2000, + dlInformationTransfer DLInformationTransfer, + handoverFromEUTRAPreparationRequest HandoverFromEUTRAPreparationRequest, + mobilityFromEUTRACommand MobilityFromEUTRACommand, + rrcConnectionReconfiguration RRCConnectionReconfiguration, + rrcConnectionRelease RRCConnectionRelease, + securityModeCommand SecurityModeCommand, + ueCapabilityEnquiry UECapabilityEnquiry, + counterCheck CounterCheck, + ueInformationRequest-r9 UEInformationRequest-r9, + loggedMeasurementConfiguration-r10 LoggedMeasurementConfiguration-r10, + rnReconfiguration-r10 RNReconfiguration-r10, + rrcConnectionResume-r13 RRCConnectionResume-r13, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +UL-CCCH-Message ::= SEQUENCE { + message UL-CCCH-MessageType +} + +UL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishmentRequest RRCConnectionReestablishmentRequest, + rrcConnectionRequest RRCConnectionRequest + }, + messageClassExtension CHOICE { + c2 CHOICE { + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-r13 + }, + messageClassExtensionFuture-r13 SEQUENCE {} + } +} + + +UL-DCCH-Message ::= SEQUENCE { + message UL-DCCH-MessageType +} + +UL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + csfbParametersRequestCDMA2000 CSFBParametersRequestCDMA2000, + measurementReport MeasurementReport, + rrcConnectionReconfigurationComplete RRCConnectionReconfigurationComplete, + rrcConnectionReestablishmentComplete RRCConnectionReestablishmentComplete, + rrcConnectionSetupComplete RRCConnectionSetupComplete, + securityModeComplete SecurityModeComplete, + securityModeFailure SecurityModeFailure, + ueCapabilityInformation UECapabilityInformation, + ulHandoverPreparationTransfer ULHandoverPreparationTransfer, + ulInformationTransfer ULInformationTransfer, + counterCheckResponse CounterCheckResponse, + ueInformationResponse-r9 UEInformationResponse-r9, + proximityIndication-r9 ProximityIndication-r9, + rnReconfigurationComplete-r10 RNReconfigurationComplete-r10, + mbmsCountingResponse-r10 MBMSCountingResponse-r10, + interFreqRSTDMeasurementIndication-r10 InterFreqRSTDMeasurementIndication-r10 + }, + messageClassExtension CHOICE { + c2 CHOICE { + ueAssistanceInformation-r11 UEAssistanceInformation-r11, + inDeviceCoexIndication-r11 InDeviceCoexIndication-r11, + mbmsInterestIndication-r11 MBMSInterestIndication-r11, + scgFailureInformation-r12 SCGFailureInformation-r12, + sidelinkUEInformation-r12 SidelinkUEInformation-r12, + wlanConnectionStatusReport-r13 WLANConnectionStatusReport-r13, + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-r13, + spare9 NULL, spare8 NULL, spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtensionFuture-r11 SEQUENCE {} + } +} + + +SC-MCCH-Message-r13 ::= SEQUENCE { + message SC-MCCH-MessageType-r13 +} + + +SC-MCCH-MessageType-r13 ::= CHOICE { + c1 CHOICE { + scptmConfiguration-r13 SCPTMConfiguration-r13 + }, + messageClassExtension CHOICE { + c2 CHOICE { + scptmConfiguration-BR-r14 SCPTMConfiguration-BR-r14, + spare NULL + }, + messageClassExtensionFuture-r14 SEQUENCE {} + } +} + + +CounterCheck ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + counterCheck-r8 CounterCheck-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheck-r8-IEs ::= SEQUENCE { + drb-CountMSB-InfoList DRB-CountMSB-InfoList, + nonCriticalExtension CounterCheck-v8a0-IEs OPTIONAL +} + +CounterCheck-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-CountMSB-InfoList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-CountMSB-Info + +DRB-CountMSB-Info ::= SEQUENCE { + drb-Identity DRB-Identity, + countMSB-Uplink INTEGER(0..33554431), + countMSB-Downlink INTEGER(0..33554431) +} + + +CounterCheckResponse ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + counterCheckResponse-r8 CounterCheckResponse-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheckResponse-r8-IEs ::= SEQUENCE { + drb-CountInfoList DRB-CountInfoList, + nonCriticalExtension CounterCheckResponse-v8a0-IEs OPTIONAL +} + +CounterCheckResponse-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-CountInfoList ::= SEQUENCE (SIZE (0..maxDRB)) OF DRB-CountInfo + +DRB-CountInfo ::= SEQUENCE { + drb-Identity DRB-Identity, + count-Uplink INTEGER(0..4294967295), + count-Downlink INTEGER(0..4294967295) +} + + +CSFBParametersRequestCDMA2000 ::= SEQUENCE { + criticalExtensions CHOICE { + csfbParametersRequestCDMA2000-r8 CSFBParametersRequestCDMA2000-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CSFBParametersRequestCDMA2000-r8-IEs ::= SEQUENCE { + nonCriticalExtension CSFBParametersRequestCDMA2000-v8a0-IEs OPTIONAL +} + +CSFBParametersRequestCDMA2000-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +CSFBParametersResponseCDMA2000 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + csfbParametersResponseCDMA2000-r8 CSFBParametersResponseCDMA2000-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CSFBParametersResponseCDMA2000-r8-IEs ::= SEQUENCE { + rand RAND-CDMA2000, + mobilityParameters MobilityParametersCDMA2000, + nonCriticalExtension CSFBParametersResponseCDMA2000-v8a0-IEs OPTIONAL +} + +CSFBParametersResponseCDMA2000-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +DLInformationTransfer ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + dlInformationTransfer-r8 DLInformationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +DLInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType CHOICE { + dedicatedInfoNAS DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000 + }, + nonCriticalExtension DLInformationTransfer-v8a0-IEs OPTIONAL +} + +DLInformationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +HandoverFromEUTRAPreparationRequest ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + handoverFromEUTRAPreparationRequest-r8 + HandoverFromEUTRAPreparationRequest-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverFromEUTRAPreparationRequest-r8-IEs ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + rand RAND-CDMA2000 OPTIONAL, -- Cond cdma2000-Type + mobilityParameters MobilityParametersCDMA2000 OPTIONAL, -- Cond cdma2000-Type + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v890-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v920-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v920-IEs ::= SEQUENCE { + concurrPrepCDMA2000-HRPD-r9 BOOLEAN OPTIONAL, -- Cond cdma2000-Type + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v1020-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v1020-IEs ::= SEQUENCE { + dualRxTxRedirectIndicator-r10 ENUMERATED {true} OPTIONAL, -- Cond cdma2000-1XRTT + redirectCarrierCDMA2000-1XRTT-r10 CarrierFreqCDMA2000 OPTIONAL, -- Cond dualRxTxRedirect + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +InDeviceCoexIndication-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + inDeviceCoexIndication-r11 InDeviceCoexIndication-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +InDeviceCoexIndication-r11-IEs ::= SEQUENCE { + affectedCarrierFreqList-r11 AffectedCarrierFreqList-r11 OPTIONAL, + tdm-AssistanceInfo-r11 TDM-AssistanceInfo-r11 OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension InDeviceCoexIndication-v11d0-IEs OPTIONAL +} + +InDeviceCoexIndication-v11d0-IEs ::= SEQUENCE { + ul-CA-AssistanceInfo-r11 SEQUENCE { + affectedCarrierFreqCombList-r11 AffectedCarrierFreqCombList-r11 OPTIONAL, + victimSystemType-r11 VictimSystemType-r11 + } OPTIONAL, + nonCriticalExtension InDeviceCoexIndication-v1310-IEs OPTIONAL +} + +InDeviceCoexIndication-v1310-IEs ::= SEQUENCE { + affectedCarrierFreqList-v1310 AffectedCarrierFreqList-v1310 OPTIONAL, + affectedCarrierFreqCombList-r13 AffectedCarrierFreqCombList-r13 OPTIONAL, + nonCriticalExtension InDeviceCoexIndication-v1360-IEs OPTIONAL +} + +InDeviceCoexIndication-v1360-IEs ::= SEQUENCE { + hardwareSharingProblem-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AffectedCarrierFreqList-r11 ::= SEQUENCE (SIZE (1..maxFreqIDC-r11)) OF AffectedCarrierFreq-r11 + +AffectedCarrierFreqList-v1310 ::= SEQUENCE (SIZE (1..maxFreqIDC-r11)) OF AffectedCarrierFreq-v1310 + +AffectedCarrierFreq-r11 ::= SEQUENCE { + carrierFreq-r11 MeasObjectId, + interferenceDirection-r11 ENUMERATED {eutra, other, both, spare} +} + +AffectedCarrierFreq-v1310 ::= SEQUENCE { + carrierFreq-v1310 MeasObjectId-v1310 OPTIONAL +} + +AffectedCarrierFreqCombList-r11 ::= SEQUENCE (SIZE (1..maxCombIDC-r11)) OF AffectedCarrierFreqComb-r11 + +AffectedCarrierFreqCombList-r13 ::= SEQUENCE (SIZE (1..maxCombIDC-r11)) OF AffectedCarrierFreqComb-r13 + +AffectedCarrierFreqComb-r11 ::= SEQUENCE (SIZE (2..maxServCell-r10)) OF MeasObjectId + +AffectedCarrierFreqComb-r13 ::= SEQUENCE (SIZE (2..maxServCell-r13)) OF MeasObjectId-r13 + +TDM-AssistanceInfo-r11 ::= CHOICE { + drx-AssistanceInfo-r11 SEQUENCE { + drx-CycleLength-r11 ENUMERATED {sf40, sf64, sf80, sf128, sf160, + sf256, spare2, spare1}, + drx-Offset-r11 INTEGER (0..255) OPTIONAL, + drx-ActiveTime-r11 ENUMERATED {sf20, sf30, sf40, sf60, sf80, + sf100, spare2, spare1} + }, + idc-SubframePatternList-r11 IDC-SubframePatternList-r11, + ... +} + +IDC-SubframePatternList-r11 ::= SEQUENCE (SIZE (1..maxSubframePatternIDC-r11)) OF IDC-SubframePattern-r11 + +IDC-SubframePattern-r11 ::= CHOICE { + subframePatternFDD-r11 BIT STRING (SIZE (4)), + subframePatternTDD-r11 CHOICE { + subframeConfig0-r11 BIT STRING (SIZE (70)), + subframeConfig1-5-r11 BIT STRING (SIZE (10)), + subframeConfig6-r11 BIT STRING (SIZE (60)) + }, + ... +} + +VictimSystemType-r11 ::= SEQUENCE { + gps-r11 ENUMERATED {true} OPTIONAL, + glonass-r11 ENUMERATED {true} OPTIONAL, + bds-r11 ENUMERATED {true} OPTIONAL, + galileo-r11 ENUMERATED {true} OPTIONAL, + wlan-r11 ENUMERATED {true} OPTIONAL, + bluetooth-r11 ENUMERATED {true} OPTIONAL +} + + +InterFreqRSTDMeasurementIndication-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + interFreqRSTDMeasurementIndication-r10 InterFreqRSTDMeasurementIndication-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +InterFreqRSTDMeasurementIndication-r10-IEs ::= SEQUENCE { + rstd-InterFreqIndication-r10 CHOICE { + start SEQUENCE { + rstd-InterFreqInfoList-r10 RSTD-InterFreqInfoList-r10 + }, + stop NULL + }, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RSTD-InterFreqInfoList-r10 ::= SEQUENCE (SIZE(1..maxRSTD-Freq-r10)) OF RSTD-InterFreqInfo-r10 + +RSTD-InterFreqInfo-r10 ::= SEQUENCE { + carrierFreq-r10 ARFCN-ValueEUTRA, + measPRS-Offset-r10 INTEGER (0..39), + ..., + [[ carrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL + ]] +} + + +LoggedMeasurementConfiguration-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + loggedMeasurementConfiguration-r10 LoggedMeasurementConfiguration-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + + +LoggedMeasurementConfiguration-r10-IEs ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, -- Need OR + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10, + nonCriticalExtension LoggedMeasurementConfiguration-v1080-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1080-IEs ::= SEQUENCE { + lateNonCriticalExtension-r10 OCTET STRING OPTIONAL, + nonCriticalExtension LoggedMeasurementConfiguration-v1130-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1130-IEs ::= SEQUENCE { + plmn-IdentityList-r11 PLMN-IdentityList3-r11 OPTIONAL, -- Need OR + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, -- Need OR + nonCriticalExtension LoggedMeasurementConfiguration-v1250-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1250-IEs ::= SEQUENCE { + targetMBSFN-AreaList-r12 TargetMBSFN-AreaList-r12 OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +TargetMBSFN-AreaList-r12 ::= SEQUENCE (SIZE (0..maxMBSFN-Area)) OF TargetMBSFN-Area-r12 + +TargetMBSFN-Area-r12 ::= SEQUENCE { + mbsfn-AreaId-r12 MBSFN-AreaId-r12 OPTIONAL, -- Need OR + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + ... +} + + +MasterInformationBlock ::= SEQUENCE { + dl-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100}, + phich-Config PHICH-Config, + systemFrameNumber BIT STRING (SIZE (8)), + schedulingInfoSIB1-BR-r13 INTEGER (0..31), + spare BIT STRING (SIZE (5)) +} + + + +MasterInformationBlock-MBMS-r14 ::= SEQUENCE { + dl-Bandwidth-MBMS-r14 ENUMERATED { + n6, n15, n25, n50, n75, n100}, + systemFrameNumber-r14 BIT STRING (SIZE (6)), + additionalNonMBSFNSubframes-r14 INTEGER (0..3), + spare BIT STRING (SIZE (13)) +} + + +MBMSCountingRequest-r10 ::= SEQUENCE { + countingRequestList-r10 CountingRequestList-r10, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CountingRequestList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingRequestInfo-r10 + +CountingRequestInfo-r10 ::= SEQUENCE { + tmgi-r10 TMGI-r9, + ... +} + + +MBMSCountingResponse-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + countingResponse-r10 MBMSCountingResponse-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MBMSCountingResponse-r10-IEs ::= SEQUENCE { + mbsfn-AreaIndex-r10 INTEGER (0..maxMBSFN-Area-1) OPTIONAL, + countingResponseList-r10 CountingResponseList-r10 OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CountingResponseList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingResponseInfo-r10 + +CountingResponseInfo-r10 ::= SEQUENCE { + countingResponseService-r10 INTEGER (0..maxServiceCount-1), + ... +} + + +MBMSInterestIndication-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + interestIndication-r11 MBMSInterestIndication-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MBMSInterestIndication-r11-IEs ::= SEQUENCE { + mbms-FreqList-r11 CarrierFreqListMBMS-r11 OPTIONAL, + mbms-Priority-r11 ENUMERATED {true} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MBMSInterestIndication-v1310-IEs OPTIONAL +} + +MBMSInterestIndication-v1310-IEs ::= SEQUENCE { + mbms-Services-r13 MBMS-ServiceList-r13 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MBSFNAreaConfiguration-r9 ::= SEQUENCE { + commonSF-Alloc-r9 CommonSF-AllocPatternList-r9, + commonSF-AllocPeriod-r9 ENUMERATED { + rf4, rf8, rf16, rf32, rf64, rf128, rf256}, + pmch-InfoList-r9 PMCH-InfoList-r9, + nonCriticalExtension MBSFNAreaConfiguration-v930-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MBSFNAreaConfiguration-v1250-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v1250-IEs ::= SEQUENCE { + pmch-InfoListExt-r12 PMCH-InfoListExt-r12 OPTIONAL, -- Need OR + nonCriticalExtension MBSFNAreaConfiguration-v1430-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v1430-IEs ::= SEQUENCE { + commonSF-Alloc-r14 CommonSF-AllocPatternList-r14, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CommonSF-AllocPatternList-r9 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig + +CommonSF-AllocPatternList-r14 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig-v1430 + + +MeasurementReport ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + measurementReport-r8 MeasurementReport-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MeasurementReport-r8-IEs ::= SEQUENCE { + measResults MeasResults, + nonCriticalExtension MeasurementReport-v8a0-IEs OPTIONAL +} + +MeasurementReport-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MobilityFromEUTRACommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + mobilityFromEUTRACommand-r8 MobilityFromEUTRACommand-r8-IEs, + mobilityFromEUTRACommand-r9 MobilityFromEUTRACommand-r9-IEs, + spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MobilityFromEUTRACommand-r8-IEs ::= SEQUENCE { + cs-FallbackIndicator BOOLEAN, + purpose CHOICE{ + handover Handover, + cellChangeOrder CellChangeOrder + }, + nonCriticalExtension MobilityFromEUTRACommand-v8a0-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MobilityFromEUTRACommand-v8d0-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v8d0-IEs ::= SEQUENCE { + bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +MobilityFromEUTRACommand-r9-IEs ::= SEQUENCE { + cs-FallbackIndicator BOOLEAN, + purpose CHOICE{ + handover Handover, + cellChangeOrder CellChangeOrder, + e-CSFB-r9 E-CSFB-r9, + ... + }, + nonCriticalExtension MobilityFromEUTRACommand-v930-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MobilityFromEUTRACommand-v960-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v960-IEs ::= SEQUENCE { + bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +Handover ::= SEQUENCE { + targetRAT-Type ENUMERATED { + utra, geran, cdma2000-1XRTT, cdma2000-HRPD, + spare4, spare3, spare2, spare1, ...}, + targetRAT-MessageContainer OCTET STRING, + nas-SecurityParamFromEUTRA OCTET STRING (SIZE (1)) OPTIONAL, -- Cond UTRAGERAN + systemInformation SI-OrPSI-GERAN OPTIONAL -- Cond PSHO +} + +CellChangeOrder ::= SEQUENCE { + t304 ENUMERATED { + ms100, ms200, ms500, ms1000, + ms2000, ms4000, ms8000, ms10000-v1310}, + targetRAT-Type CHOICE { + geran SEQUENCE { + physCellId PhysCellIdGERAN, + carrierFreq CarrierFreqGERAN, + networkControlOrder BIT STRING (SIZE (2)) OPTIONAL, -- Need OP + systemInformation SI-OrPSI-GERAN OPTIONAL -- Need OP + }, + ... + } +} + +SI-OrPSI-GERAN ::= CHOICE { + si SystemInfoListGERAN, + psi SystemInfoListGERAN +} + +E-CSFB-r9 ::= SEQUENCE { + messageContCDMA2000-1XRTT-r9 OCTET STRING OPTIONAL, -- Need ON + mobilityCDMA2000-HRPD-r9 ENUMERATED { + handover, redirection + } OPTIONAL, -- Need OP + messageContCDMA2000-HRPD-r9 OCTET STRING OPTIONAL, -- Cond concHO + redirectCarrierCDMA2000-HRPD-r9 CarrierFreqCDMA2000 OPTIONAL -- Cond concRedir +} + + +Paging ::= SEQUENCE { + pagingRecordList PagingRecordList OPTIONAL, -- Need ON + systemInfoModification ENUMERATED {true} OPTIONAL, -- Need ON + etws-Indication ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v890-IEs OPTIONAL +} + +Paging-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension Paging-v920-IEs OPTIONAL +} + +Paging-v920-IEs ::= SEQUENCE { + cmas-Indication-r9 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v1130-IEs OPTIONAL +} + +Paging-v1130-IEs ::= SEQUENCE { + eab-ParamModification-r11 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v1310-IEs OPTIONAL +} + +Paging-v1310-IEs ::= SEQUENCE { + redistributionIndication-r13 ENUMERATED {true} OPTIONAL, --Need ON + systemInfoModification-eDRX-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PagingRecordList ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord + +PagingRecord ::= SEQUENCE { + ue-Identity PagingUE-Identity, + cn-Domain ENUMERATED {ps, cs}, + ... +} + +PagingUE-Identity ::= CHOICE { + s-TMSI S-TMSI, + imsi IMSI, + ... +} + +IMSI ::= SEQUENCE (SIZE (6..21)) OF IMSI-Digit + +IMSI-Digit ::= INTEGER (0..9) + + +ProximityIndication-r9 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + proximityIndication-r9 ProximityIndication-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ProximityIndication-r9-IEs ::= SEQUENCE { + type-r9 ENUMERATED {entering, leaving}, + carrierFreq-r9 CHOICE { + eutra-r9 ARFCN-ValueEUTRA, + utra-r9 ARFCN-ValueUTRA, + ..., + eutra2-v9e0 ARFCN-ValueEUTRA-v9e0 + }, + nonCriticalExtension ProximityIndication-v930-IEs OPTIONAL +} + +ProximityIndication-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RNReconfiguration-r10 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rnReconfiguration-r10 RNReconfiguration-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RNReconfiguration-r10-IEs ::= SEQUENCE { + rn-SystemInfo-r10 RN-SystemInfo-r10 OPTIONAL, -- Need ON + rn-SubframeConfig-r10 RN-SubframeConfig-r10 OPTIONAL, -- Need ON + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RN-SystemInfo-r10 ::= SEQUENCE { + systemInformationBlockType1-r10 OCTET STRING (CONTAINING SystemInformationBlockType1) OPTIONAL, -- Need ON + systemInformationBlockType2-r10 SystemInformationBlockType2 OPTIONAL, -- Need ON + ... +} + + +RNReconfigurationComplete-r10 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rnReconfigurationComplete-r10 RNReconfigurationComplete-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RNReconfigurationComplete-r10-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReconfiguration ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReconfiguration-r8 RRCConnectionReconfiguration-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfiguration-r8-IEs ::= SEQUENCE { + measConfig MeasConfig OPTIONAL, -- Need ON + mobilityControlInfo MobilityControlInfo OPTIONAL, -- Cond HO + dedicatedInfoNASList SEQUENCE (SIZE(1..maxDRB)) OF + DedicatedInfoNAS OPTIONAL, -- Cond nonHO + radioResourceConfigDedicated RadioResourceConfigDedicated OPTIONAL, -- Cond HO-toEUTRA + securityConfigHO SecurityConfigHO OPTIONAL, -- Cond HO + nonCriticalExtension RRCConnectionReconfiguration-v890-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING RRCConnectionReconfiguration-v8m0-IEs) OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v920-IEs OPTIONAL +} + +-- Late non-critical extensions: +RRCConnectionReconfiguration-v8m0-IEs ::= SEQUENCE { + -- Following field is only for pre REL-10 late non-critical extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v10i0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v10i0-IEs ::= SEQUENCE { + antennaInfoDedicatedPCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v10l0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v10l0-IEs ::= SEQUENCE { + mobilityControlInfo-v10l0 MobilityControlInfo-v10l0 OPTIONAL, + sCellToAddModList-v10l0 SCellToAddModList-v10l0 OPTIONAL, -- Need ON + -- Following field is only for late non-critical extensions from REL-10 to REL-11 + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v12f0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v12f0-IEs ::= SEQUENCE { + scg-Configuration-v12f0 SCG-Configuration-v12f0 OPTIONAL, -- Cond nonFullConfig + -- Following field is only for late non-critical extensions from REL-12 + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v1370-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1370-IEs ::= SEQUENCE { + radioResourceConfigDedicated-v1370 RadioResourceConfigDedicated-v1370 OPTIONAL, -- Need ON + sCellToAddModListExt-v1370 SCellToAddModListExt-v1370 OPTIONAL, -- Need ON + -- Following field is only for late non-critical extensions from REL-13 onwards + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +RRCConnectionReconfiguration-v920-IEs ::= SEQUENCE { + otherConfig-r9 OtherConfig-r9 OPTIONAL, -- Need ON + fullConfig-r9 ENUMERATED {true} OPTIONAL, -- Cond HO-Reestab + nonCriticalExtension RRCConnectionReconfiguration-v1020-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1020-IEs ::= SEQUENCE { + sCellToReleaseList-r10 SCellToReleaseList-r10 OPTIONAL, -- Need ON + sCellToAddModList-r10 SCellToAddModList-r10 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1130-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1130-IEs ::= SEQUENCE { + systemInformationBlockType1Dedicated-r11 OCTET STRING (CONTAINING SystemInformationBlockType1) OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1250-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1250-IEs ::= SEQUENCE { + wlan-OffloadInfo-r12 CHOICE { + release NULL, + setup SEQUENCE { + wlan-OffloadConfigDedicated-r12 WLAN-OffloadConfig-r12, + t350-r12 ENUMERATED {min5, min10, min20, min30, min60, + min120, min180, spare1} OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + scg-Configuration-r12 SCG-Configuration-r12 OPTIONAL, -- Cond nonFullConfig + sl-SyncTxControl-r12 SL-SyncTxControl-r12 OPTIONAL, -- Need ON + sl-DiscConfig-r12 SL-DiscConfig-r12 OPTIONAL, -- Need ON + sl-CommConfig-r12 SL-CommConfig-r12 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1310-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1310-IEs ::= SEQUENCE { + sCellToReleaseListExt-r13 SCellToReleaseListExt-r13 OPTIONAL, -- Need ON + sCellToAddModListExt-r13 SCellToAddModListExt-r13 OPTIONAL, -- Need ON + lwa-Configuration-r13 LWA-Configuration-r13 OPTIONAL, -- Need ON + lwip-Configuration-r13 LWIP-Configuration-r13 OPTIONAL, -- Need ON + rclwi-Configuration-r13 RCLWI-Configuration-r13 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1430-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1430-IEs ::= SEQUENCE { + sl-V2X-ConfigDedicated-r14 SL-V2X-ConfigDedicated-r14 OPTIONAL, -- Need ON + sCellToAddModListExt-v1430 SCellToAddModListExt-v1430 OPTIONAL, -- Need ON + perCC-GapIndicationRequest-r14 ENUMERATED{true} OPTIONAL, -- Need ON + systemInformationBlockType2Dedicated-r14 OCTET STRING (CONTAINING SystemInformationBlockType2) OPTIONAL, -- Cond nonHO + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SL-SyncTxControl-r12 ::= SEQUENCE { + networkControlledSyncTx-r12 ENUMERATED {on, off} OPTIONAL -- Need OP +} + +PSCellToAddMod-r12 ::= SEQUENCE { + sCellIndex-r12 SCellIndex-r10, + cellIdentification-r12 SEQUENCE { + physCellId-r12 PhysCellId, + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonPSCell-r12 RadioResourceConfigCommonPSCell-r12 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedPSCell-r12 RadioResourceConfigDedicatedPSCell-r12 OPTIONAL, -- Cond SCellAdd2 + ..., + [[ antennaInfoDedicatedPSCell-v1280 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON + ]], + [[ sCellIndex-r13 SCellIndex-r13 OPTIONAL -- Need ON + ]], + [[ radioResourceConfigDedicatedPSCell-v1370 RadioResourceConfigDedicatedPSCell-v1370 OPTIONAL -- Need ON + ]] +} + +PSCellToAddMod-v12f0 ::= SEQUENCE { + radioResourceConfigCommonPSCell-r12 RadioResourceConfigCommonPSCell-v12f0 OPTIONAL +} + +PSCellToAddMod-v1440 ::= SEQUENCE { + radioResourceConfigCommonPSCell-r14 RadioResourceConfigCommonPSCell-v1440 OPTIONAL +} + +PowerCoordinationInfo-r12 ::= SEQUENCE { + p-MeNB-r12 INTEGER (1..16), + p-SeNB-r12 INTEGER (1..16), + powerControlMode-r12 INTEGER (1..2) +} + +SCellToAddModList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-r10 + +SCellToAddModList-v10l0 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-v10l0 + +SCellToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-r13 + +SCellToAddModListExt-v1370 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-v1370 + +SCellToAddModListExt-v1430 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-v1430 + +SCellToAddMod-r10 ::= SEQUENCE { + sCellIndex-r10 SCellIndex-r10, + cellIdentification-r10 SEQUENCE { + physCellId-r10 PhysCellId, + dl-CarrierFreq-r10 ARFCN-ValueEUTRA + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonSCell-r10 RadioResourceConfigCommonSCell-r10 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedSCell-r10 RadioResourceConfigDedicatedSCell-r10 OPTIONAL, -- Cond SCellAdd2 + ..., + [[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max + ]], + [[ antennaInfoDedicatedSCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON + ]], + [[ srs-SwitchFromServCellIndex-r14 INTEGER (0.. 31) OPTIONAL -- Need ON + ]] +} + +SCellToAddMod-v10l0 ::= SEQUENCE { + radioResourceConfigCommonSCell-v10l0 RadioResourceConfigCommonSCell-v10l0 OPTIONAL +} + +SCellToAddModExt-r13 ::= SEQUENCE { + sCellIndex-r13 SCellIndex-r13, + cellIdentification-r13 SEQUENCE { + physCellId-r13 PhysCellId, + dl-CarrierFreq-r13 ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonSCell-r13 RadioResourceConfigCommonSCell-r10 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedSCell-r13 RadioResourceConfigDedicatedSCell-r10 OPTIONAL, -- Cond SCellAdd2 + antennaInfoDedicatedSCell-r13 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON +} + +SCellToAddModExt-v1370 ::= SEQUENCE { + radioResourceConfigCommonSCell-v1370 RadioResourceConfigCommonSCell-v10l0 OPTIONAL +} + +SCellToAddModExt-v1430 ::= SEQUENCE { + srs-SwitchFromServCellIndex-r14 INTEGER (0.. 31) OPTIONAL, -- Need ON + ... +} + +SCellToReleaseList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellIndex-r10 + +SCellToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellIndex-r13 + +SCG-Configuration-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + scg-ConfigPartMCG-r12 SEQUENCE { + scg-Counter-r12 INTEGER (0.. 65535) OPTIONAL, -- Need ON + powerCoordinationInfo-r12 PowerCoordinationInfo-r12 OPTIONAL, -- Need ON + ... + } OPTIONAL, -- Need ON + scg-ConfigPartSCG-r12 SCG-ConfigPartSCG-r12 OPTIONAL -- Need ON + } +} + +SCG-Configuration-v12f0 ::= CHOICE { + release NULL, + setup SEQUENCE { + scg-ConfigPartSCG-v12f0 SCG-ConfigPartSCG-v12f0 OPTIONAL -- Need ON + } +} + +SCG-ConfigPartSCG-r12 ::= SEQUENCE { + radioResourceConfigDedicatedSCG-r12 RadioResourceConfigDedicatedSCG-r12 OPTIONAL, -- Need ON + sCellToReleaseListSCG-r12 SCellToReleaseList-r10 OPTIONAL, -- Need ON + pSCellToAddMod-r12 PSCellToAddMod-r12 OPTIONAL, -- Need ON + sCellToAddModListSCG-r12 SCellToAddModList-r10 OPTIONAL, -- Need ON + mobilityControlInfoSCG-r12 MobilityControlInfoSCG-r12 OPTIONAL, -- Need ON + ..., + [[ + sCellToReleaseListSCG-Ext-r13 SCellToReleaseListExt-r13 OPTIONAL, -- Need ON + sCellToAddModListSCG-Ext-r13 SCellToAddModListExt-r13 OPTIONAL -- Need ON + ]], + [[ + sCellToAddModListSCG-Ext-v1370 SCellToAddModListExt-v1370 OPTIONAL -- Need ON + ]], + [[ + pSCellToAddMod-v1440 PSCellToAddMod-v1440 OPTIONAL -- Need ON + ]] +} + +SCG-ConfigPartSCG-v12f0 ::= SEQUENCE { + pSCellToAddMod-v12f0 PSCellToAddMod-v12f0 OPTIONAL, -- Need ON + sCellToAddModListSCG-v12f0 SCellToAddModList-v10l0 OPTIONAL -- Need ON +} + +SecurityConfigHO ::= SEQUENCE { + handoverType CHOICE { + intraLTE SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig OPTIONAL, -- Cond fullConfig + keyChangeIndicator BOOLEAN, + nextHopChainingCount NextHopChainingCount + }, + interRAT SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig, + nas-SecurityParamToEUTRA OCTET STRING (SIZE(6)) + } + }, + ... +} + + + +RRCConnectionReconfigurationComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReconfigurationComplete-r8 + RRCConnectionReconfigurationComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfigurationComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReconfigurationComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1020-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1020-IEs ::= SEQUENCE { + rlf-InfoAvailable-r10 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1130-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1250-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1250-IEs ::= SEQUENCE { + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1430-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1430-IEs ::= SEQUENCE { + perCC-GapIndicationList-r14 PerCC-GapIndicationList-r14 OPTIONAL, + numFreqEffective-r14 INTEGER (1..12) OPTIONAL, + numFreqEffectiveReduced-r14 INTEGER (1..12) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishment ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReestablishment-r8 RRCConnectionReestablishment-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishment-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated RadioResourceConfigDedicated, + nextHopChainingCount NextHopChainingCount, + nonCriticalExtension RRCConnectionReestablishment-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishment-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReestablishmentComplete-r8 + RRCConnectionReestablishmentComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReestablishmentComplete-v920-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v920-IEs ::= SEQUENCE { + rlf-InfoAvailable-r9 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1020-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1020-IEs ::= SEQUENCE { + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1130-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1250-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1250-IEs ::= SEQUENCE { + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentReject ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentReject-r8 + RRCConnectionReestablishmentReject-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentReject-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReestablishmentReject-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishmentReject-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentRequest ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentRequest-r8 + RRCConnectionReestablishmentRequest-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentRequest-r8-IEs ::= SEQUENCE { + ue-Identity ReestabUE-Identity, + reestablishmentCause ReestablishmentCause, + spare BIT STRING (SIZE (2)) +} + +ReestabUE-Identity ::= SEQUENCE { + c-RNTI C-RNTI, + physCellId PhysCellId, + shortMAC-I ShortMAC-I +} + +ReestablishmentCause ::= ENUMERATED { + reconfigurationFailure, handoverFailure, + otherFailure, spare1} + + +RRCConnectionReject ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionReject-r8 RRCConnectionReject-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReject-r8-IEs ::= SEQUENCE { + waitTime INTEGER (1..16), + nonCriticalExtension RRCConnectionReject-v8a0-IEs OPTIONAL +} + +RRCConnectionReject-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReject-v1020-IEs OPTIONAL +} + +RRCConnectionReject-v1020-IEs ::= SEQUENCE { + extendedWaitTime-r10 INTEGER (1..1800) OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReject-v1130-IEs OPTIONAL +} + +RRCConnectionReject-v1130-IEs ::= SEQUENCE { + deprioritisationReq-r11 SEQUENCE { + deprioritisationType-r11 ENUMERATED {frequency, e-utra}, + deprioritisationTimer-r11 ENUMERATED {min5, min10, min15, min30} + } OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReject-v1320-IEs OPTIONAL +} + +RRCConnectionReject-v1320-IEs ::= SEQUENCE { + rrc-SuspendIndication-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionRelease ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionRelease-r8 RRCConnectionRelease-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRelease-r8-IEs ::= SEQUENCE { + releaseCause ReleaseCause, + redirectedCarrierInfo RedirectedCarrierInfo OPTIONAL, -- Need ON + idleModeMobilityControlInfo IdleModeMobilityControlInfo OPTIONAL, -- Need OP + nonCriticalExtension RRCConnectionRelease-v890-IEs OPTIONAL +} + +RRCConnectionRelease-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING RRCConnectionRelease-v9e0-IEs) OPTIONAL, + nonCriticalExtension RRCConnectionRelease-v920-IEs OPTIONAL +} + +-- Late non critical extensions +RRCConnectionRelease-v9e0-IEs ::= SEQUENCE { + redirectedCarrierInfo-v9e0 RedirectedCarrierInfo-v9e0 OPTIONAL, -- Cond NoRedirect-r8 + idleModeMobilityControlInfo-v9e0 IdleModeMobilityControlInfo-v9e0 OPTIONAL, -- Cond IdleInfoEUTRA + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +RRCConnectionRelease-v920-IEs ::= SEQUENCE { + cellInfoList-r9 CHOICE { + geran-r9 CellInfoListGERAN-r9, + utra-FDD-r9 CellInfoListUTRA-FDD-r9, + utra-TDD-r9 CellInfoListUTRA-TDD-r9, + ..., + utra-TDD-r10 CellInfoListUTRA-TDD-r10 + } OPTIONAL, -- Cond Redirection + nonCriticalExtension RRCConnectionRelease-v1020-IEs OPTIONAL +} + +RRCConnectionRelease-v1020-IEs ::= SEQUENCE { + extendedWaitTime-r10 INTEGER (1..1800) OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionRelease-v1320-IEs OPTIONAL +} + +RRCConnectionRelease-v1320-IEs::= SEQUENCE { + resumeIdentity-r13 ResumeIdentity-r13 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +ReleaseCause ::= ENUMERATED {loadBalancingTAUrequired, + other, cs-FallbackHighPriority-v1020, rrc-Suspend-v1320} + +RedirectedCarrierInfo ::= CHOICE { + eutra ARFCN-ValueEUTRA, + geran CarrierFreqsGERAN, + utra-FDD ARFCN-ValueUTRA, + utra-TDD ARFCN-ValueUTRA, + cdma2000-HRPD CarrierFreqCDMA2000, + cdma2000-1xRTT CarrierFreqCDMA2000, + ..., + utra-TDD-r10 CarrierFreqListUTRA-TDD-r10 +} + +RedirectedCarrierInfo-v9e0 ::= SEQUENCE { + eutra-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +CarrierFreqListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxFreqUTRA-TDD-r10)) OF ARFCN-ValueUTRA + +IdleModeMobilityControlInfo ::= SEQUENCE { + freqPriorityListEUTRA FreqPriorityListEUTRA OPTIONAL, -- Need ON + freqPriorityListGERAN FreqsPriorityListGERAN OPTIONAL, -- Need ON + freqPriorityListUTRA-FDD FreqPriorityListUTRA-FDD OPTIONAL, -- Need ON + freqPriorityListUTRA-TDD FreqPriorityListUTRA-TDD OPTIONAL, -- Need ON + bandClassPriorityListHRPD BandClassPriorityListHRPD OPTIONAL, -- Need ON + bandClassPriorityList1XRTT BandClassPriorityList1XRTT OPTIONAL, -- Need ON + t320 ENUMERATED { + min5, min10, min20, min30, min60, min120, min180, + spare1} OPTIONAL, -- Need OR + ..., + [[ freqPriorityListExtEUTRA-r12 FreqPriorityListExtEUTRA-r12 OPTIONAL -- Need ON + ]], + [[ freqPriorityListEUTRA-v1310 FreqPriorityListEUTRA-v1310 OPTIONAL, -- Need ON + freqPriorityListExtEUTRA-v1310 FreqPriorityListExtEUTRA-v1310 OPTIONAL -- Need ON + ]] +} + +IdleModeMobilityControlInfo-v9e0 ::= SEQUENCE { + freqPriorityListEUTRA-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v9e0 +} + +FreqPriorityListEUTRA ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA + +FreqPriorityListExtEUTRA-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-r12 + +FreqPriorityListEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v1310 + +FreqPriorityListExtEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v1310 + +FreqPriorityEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityEUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max +} + +FreqPriorityEUTRA-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + cellReselectionPriority-r12 CellReselectionPriority +} + +FreqPriorityEUTRA-v1310 ::= SEQUENCE { + cellReselectionSubPriority-r13 CellReselectionSubPriority-r13 OPTIONAL -- Need ON +} + +FreqsPriorityListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF FreqsPriorityGERAN + +FreqsPriorityGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF FreqPriorityUTRA-FDD + +FreqPriorityUTRA-FDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF FreqPriorityUTRA-TDD + +FreqPriorityUTRA-TDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority +} + +BandClassPriorityListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriorityHRPD + +BandClassPriorityHRPD ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority +} + +BandClassPriorityList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriority1XRTT + +BandClassPriority1XRTT ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority +} + +CellInfoListGERAN-r9 ::= SEQUENCE (SIZE (1..maxCellInfoGERAN-r9)) OF CellInfoGERAN-r9 + +CellInfoGERAN-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdGERAN, + carrierFreq-r9 CarrierFreqGERAN, + systemInformation-r9 SystemInfoListGERAN +} + +CellInfoListUTRA-FDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-FDD-r9 + +CellInfoUTRA-FDD-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdUTRA-FDD, + utra-BCCH-Container-r9 OCTET STRING +} + +CellInfoListUTRA-TDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r9 + +CellInfoUTRA-TDD-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdUTRA-TDD, + utra-BCCH-Container-r9 OCTET STRING +} + +CellInfoListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r10 + +CellInfoUTRA-TDD-r10 ::= SEQUENCE { + physCellId-r10 PhysCellIdUTRA-TDD, + carrierFreq-r10 ARFCN-ValueUTRA, + utra-BCCH-Container-r10 OCTET STRING +} + + +RRCConnectionRequest ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionRequest-r8 RRCConnectionRequest-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRequest-r8-IEs ::= SEQUENCE { + ue-Identity InitialUE-Identity, + establishmentCause EstablishmentCause, + spare BIT STRING (SIZE (1)) +} + +InitialUE-Identity ::= CHOICE { + s-TMSI S-TMSI, + randomValue BIT STRING (SIZE (40)) +} + +EstablishmentCause ::= ENUMERATED { + emergency, highPriorityAccess, mt-Access, mo-Signalling, + mo-Data, delayTolerantAccess-v1020, mo-VoiceCall-v1280, spare1} + + +RRCConnectionResume-r13 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionResume-r13 RRCConnectionResume-r13-IEs, + spare3 NULL, + spare2 NULL, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResume-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated OPTIONAL, -- Need ON + nextHopChainingCount-r13 NextHopChainingCount, + measConfig-r13 MeasConfig OPTIONAL, -- Need ON + antennaInfoDedicatedPCell-r13 AntennaInfoDedicated-v10i0 OPTIONAL, -- Need ON + drb-ContinueROHC-r13 ENUMERATED {true} OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + rrcConnectionResume-v1430-IEs RRCConnectionResume-v1430-IEs OPTIONAL +} + +RRCConnectionResume-v1430-IEs ::= SEQUENCE { + otherConfig-r14 OtherConfig-r9 OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeComplete-r13 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeComplete-r13-IEs ::= SEQUENCE { + selectedPLMN-Identity-r13 INTEGER (1..maxPLMN-r11) OPTIONAL, + dedicatedInfoNAS-r13 DedicatedInfoNAS OPTIONAL, + rlf-InfoAvailable-r13 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r13 ENUMERATED {true} OPTIONAL, + connEstFailInfoAvailable-r13 ENUMERATED {true} OPTIONAL, + mobilityState-r13 ENUMERATED {normal, medium, high, spare} OPTIONAL, + mobilityHistoryAvail-r13 ENUMERATED {true} OPTIONAL, + logMeasAvailableMBSFN-r13 ENUMERATED {true} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeRequest-r13 ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeRequest-r13-IEs ::= SEQUENCE { + resumeIdentity-r13 CHOICE { + resumeID-r13 ResumeIdentity-r13, + truncatedResumeID-r13 BIT STRING (SIZE (24)) + }, + shortResumeMAC-I-r13 BIT STRING (SIZE (16)), + resumeCause-r13 ResumeCause, + spare BIT STRING (SIZE (1)) +} + +ResumeCause ::= ENUMERATED { + emergency, highPriorityAccess, mt-Access, mo-Signalling, + mo-Data, delayTolerantAccess-v1020, mo-VoiceCall-v1280, spare1} + + + +RRCConnectionSetup ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionSetup-r8 RRCConnectionSetup-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetup-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated RadioResourceConfigDedicated, + nonCriticalExtension RRCConnectionSetup-v8a0-IEs OPTIONAL +} + +RRCConnectionSetup-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionSetupComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionSetupComplete-r8 RRCConnectionSetupComplete-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetupComplete-r8-IEs ::= SEQUENCE { + selectedPLMN-Identity INTEGER (1..maxPLMN-r11), + registeredMME RegisteredMME OPTIONAL, + dedicatedInfoNAS DedicatedInfoNAS, + nonCriticalExtension RRCConnectionSetupComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1020-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1020-IEs ::= SEQUENCE { + gummei-Type-r10 ENUMERATED {native, mapped} OPTIONAL, + rlf-InfoAvailable-r10 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + rn-SubframeConfigReq-r10 ENUMERATED {required, notRequired} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1130-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1250-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1250-IEs ::= SEQUENCE { + mobilityState-r12 ENUMERATED {normal, medium, high, spare} OPTIONAL, + mobilityHistoryAvail-r12 ENUMERATED {true} OPTIONAL, + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1320-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1320-IEs ::= SEQUENCE { + ce-ModeB-r13 ENUMERATED {supported} OPTIONAL, + s-TMSI-r13 S-TMSI OPTIONAL, + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL, + up-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, + cp-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1330-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1330-IEs ::= SEQUENCE { + ue-CE-NeedULGaps-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1430-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1430-IEs ::= SEQUENCE { + dcn-ID-r14 INTEGER (0..65535) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RegisteredMME ::= SEQUENCE { + plmn-Identity PLMN-Identity OPTIONAL, + mmegi BIT STRING (SIZE (16)), + mmec MMEC +} + + +SCGFailureInformation-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + scgFailureInformation-r12 SCGFailureInformation-r12-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCGFailureInformation-r12-IEs ::= SEQUENCE { + failureReportSCG-r12 FailureReportSCG-r12 OPTIONAL, + nonCriticalExtension SCGFailureInformation-v1310-IEs OPTIONAL +} + +SCGFailureInformation-v1310-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING SCGFailureInformation-v12d0-IEs) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Late non-critical extensions: +SCGFailureInformation-v12d0-IEs ::= SEQUENCE { + failureReportSCG-v12d0 FailureReportSCG-v12d0 OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +FailureReportSCG-r12 ::= SEQUENCE { + failureType-r12 ENUMERATED {t313-Expiry, randomAccessProblem, + rlc-MaxNumRetx, scg-ChangeFailure }, + measResultServFreqList-r12 MeasResultServFreqList-r10 OPTIONAL, + measResultNeighCells-r12 MeasResultList2EUTRA-r9 OPTIONAL, + ..., + [[ failureType-v1290 ENUMERATED {maxUL-TimingDiff-v1290} OPTIONAL + ]], + [[ measResultServFreqListExt-r13 MeasResultServFreqListExt-r13 OPTIONAL + ]] +} + +FailureReportSCG-v12d0 ::= SEQUENCE { + measResultNeighCells-v12d0 MeasResultList2EUTRA-v9e0 OPTIONAL +} + + +SCPTMConfiguration-r13 ::= SEQUENCE { + sc-mtch-InfoList-r13 SC-MTCH-InfoList-r13, + scptm-NeighbourCellList-r13 SCPTM-NeighbourCellList-r13 OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SCPTMConfiguration-v1340 OPTIONAL +} + +SCPTMConfiguration-v1340 ::= SEQUENCE { + p-b-r13 INTEGER (0..3) OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCPTMConfiguration-BR-r14 ::= SEQUENCE { + sc-mtch-InfoList-r14 SC-MTCH-InfoList-BR-r14, + scptm-NeighbourCellList-r14 SCPTM-NeighbourCellList-r13 OPTIONAL, -- Need OP + p-b-r14 INTEGER (0..3) OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SecurityModeCommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + securityModeCommand-r8 SecurityModeCommand-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeCommand-r8-IEs ::= SEQUENCE { + securityConfigSMC SecurityConfigSMC, + nonCriticalExtension SecurityModeCommand-v8a0-IEs OPTIONAL +} + +SecurityModeCommand-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SecurityConfigSMC ::= SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig, + ... +} + + +SecurityModeComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeComplete-r8 SecurityModeComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension SecurityModeComplete-v8a0-IEs OPTIONAL +} + +SecurityModeComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SecurityModeFailure ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeFailure-r8 SecurityModeFailure-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeFailure-r8-IEs ::= SEQUENCE { + nonCriticalExtension SecurityModeFailure-v8a0-IEs OPTIONAL +} + +SecurityModeFailure-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SidelinkUEInformation-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + sidelinkUEInformation-r12 SidelinkUEInformation-r12-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SidelinkUEInformation-r12-IEs ::= SEQUENCE { + commRxInterestedFreq-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, + commTxResourceReq-r12 SL-CommTxResourceReq-r12 OPTIONAL, + discRxInterest-r12 ENUMERATED {true} OPTIONAL, + discTxResourceReq-r12 INTEGER (1..63) OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SidelinkUEInformation-v1310-IEs OPTIONAL +} + +SidelinkUEInformation-v1310-IEs ::= SEQUENCE { + commTxResourceReqUC-r13 SL-CommTxResourceReq-r12 OPTIONAL, + commTxResourceInfoReqRelay-r13 SEQUENCE { + commTxResourceReqRelay-r13 SL-CommTxResourceReq-r12 OPTIONAL, + commTxResourceReqRelayUC-r13 SL-CommTxResourceReq-r12 OPTIONAL, + ue-Type-r13 ENUMERATED {relayUE, remoteUE} + } OPTIONAL, + discTxResourceReq-v1310 SEQUENCE { + carrierFreqDiscTx-r13 INTEGER (1..maxFreq) OPTIONAL, + discTxResourceReqAddFreq-r13 SL-DiscTxResourceReqPerFreqList-r13 OPTIONAL + } OPTIONAL, + discTxResourceReqPS-r13 SL-DiscTxResourceReq-r13 OPTIONAL, + discRxGapReq-r13 SL-GapRequest-r13 OPTIONAL, + discTxGapReq-r13 SL-GapRequest-r13 OPTIONAL, + discSysInfoReportFreqList-r13 SL-DiscSysInfoReportFreqList-r13 OPTIONAL, + nonCriticalExtension SidelinkUEInformation-v1430-IEs OPTIONAL +} + +SidelinkUEInformation-v1430-IEs ::= SEQUENCE { + v2x-CommRxInterestedFreqList-r14 SL-V2X-CommFreqList-r14 OPTIONAL, + p2x-CommTxType-r14 ENUMERATED {true} OPTIONAL, + v2x-CommTxResourceReq-r14 SL-V2X-CommTxFreqList-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SL-CommTxResourceReq-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, + destinationInfoList-r12 SL-DestinationInfoList-r12 +} + +SL-DiscTxResourceReqPerFreqList-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-DiscTxResourceReq-r13 + +SL-DiscTxResourceReq-r13 ::= SEQUENCE { + carrierFreqDiscTx-r13 INTEGER (1..maxFreq) OPTIONAL, + discTxResourceReq-r13 INTEGER (1..63) +} + +SL-DestinationInfoList-r12 ::= SEQUENCE (SIZE (1..maxSL-Dest-r12)) OF SL-DestinationIdentity-r12 + +SL-DestinationIdentity-r12 ::= BIT STRING (SIZE (24)) + +SL-DiscSysInfoReportFreqList-r13 ::= SEQUENCE (SIZE (1.. maxSL-DiscSysInfoReportFreq-r13)) OF SL-DiscSysInfoReport-r13 + +SL-V2X-CommFreqList-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF INTEGER (0..maxFreqV2X-1-r14) + +SL-V2X-CommTxFreqList-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF SL-V2X-CommTxResourceReq-r14 + +SL-V2X-CommTxResourceReq-r14 ::= SEQUENCE { + carrierFreqCommTx-r14 INTEGER (0.. maxFreqV2X-1-r14) OPTIONAL, + v2x-TypeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, + v2x-DestinationInfoList-r14 SL-DestinationInfoList-r12 OPTIONAL +} + + +SystemInformation-BR-r13 ::= SystemInformation + +SystemInformation-MBMS-r14 ::= SystemInformation + +SystemInformation ::= SEQUENCE { + criticalExtensions CHOICE { + systemInformation-r8 SystemInformation-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} +SystemInformation-r8-IEs ::= SEQUENCE { + sib-TypeAndInfo SEQUENCE (SIZE (1..maxSIB)) OF CHOICE { + sib2 SystemInformationBlockType2, + sib3 SystemInformationBlockType3, + sib4 SystemInformationBlockType4, + sib5 SystemInformationBlockType5, + sib6 SystemInformationBlockType6, + sib7 SystemInformationBlockType7, + sib8 SystemInformationBlockType8, + sib9 SystemInformationBlockType9, + sib10 SystemInformationBlockType10, + sib11 SystemInformationBlockType11, + ..., + sib12-v920 SystemInformationBlockType12-r9, + sib13-v920 SystemInformationBlockType13-r9, + sib14-v1130 SystemInformationBlockType14-r11, + sib15-v1130 SystemInformationBlockType15-r11, + sib16-v1130 SystemInformationBlockType16-r11, + sib17-v1250 SystemInformationBlockType17-r12, + sib18-v1250 SystemInformationBlockType18-r12, + sib19-v1250 SystemInformationBlockType19-r12, + sib20-v1310 SystemInformationBlockType20-r13, + sib21-v1430 SystemInformationBlockType21-r14 + }, + nonCriticalExtension SystemInformation-v8a0-IEs OPTIONAL +} + +SystemInformation-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType1-BR-r13 ::= SystemInformationBlockType1 + +SystemInformationBlockType1 ::= SEQUENCE { + cellAccessRelatedInfo SEQUENCE { + plmn-IdentityList PLMN-IdentityList, + trackingAreaCode TrackingAreaCode, + cellIdentity CellIdentity, + cellBarred ENUMERATED {barred, notBarred}, + intraFreqReselection ENUMERATED {allowed, notAllowed}, + csg-Indication BOOLEAN, + csg-Identity CSG-Identity OPTIONAL -- Need OR + }, + cellSelectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + q-RxLevMinOffset INTEGER (1..8) OPTIONAL -- Need OP + }, + p-Max P-Max OPTIONAL, -- Need OP + freqBandIndicator FreqBandIndicator, + schedulingInfoList SchedulingInfoList, + tdd-Config TDD-Config OPTIONAL, -- Cond TDD + si-WindowLength ENUMERATED { + ms1, ms2, ms5, ms10, ms15, ms20, + ms40}, + systemInfoValueTag INTEGER (0..31), + nonCriticalExtension SystemInformationBlockType1-v890-IEs OPTIONAL +} + +SystemInformationBlockType1-v890-IEs::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType1-v8h0-IEs) OPTIONAL, + nonCriticalExtension SystemInformationBlockType1-v920-IEs OPTIONAL +} + +-- Late non critical extensions +SystemInformationBlockType1-v8h0-IEs ::= SEQUENCE { + multiBandInfoList MultiBandInfoList OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType1-v9e0-IEs ::= SEQUENCE { + freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL, -- Cond FBI-max + multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL, -- Cond mFBI-max + nonCriticalExtension SystemInformationBlockType1-v10j0-IEs OPTIONAL +} + +SystemInformationBlockType1-v10j0-IEs ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType1-v10l0-IEs ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +SystemInformationBlockType1-v920-IEs ::= SEQUENCE { + ims-EmergencySupport-r9 ENUMERATED {true} OPTIONAL, -- Need OR + cellSelectionInfo-v920 CellSelectionInfo-v920 OPTIONAL, -- Cond RSRQ + nonCriticalExtension SystemInformationBlockType1-v1130-IEs OPTIONAL +} + +SystemInformationBlockType1-v1130-IEs ::= SEQUENCE { + tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD-OR + cellSelectionInfo-v1130 CellSelectionInfo-v1130 OPTIONAL, -- Cond WB-RSRQ + nonCriticalExtension SystemInformationBlockType1-v1250-IEs OPTIONAL +} + +SystemInformationBlockType1-v1250-IEs ::= SEQUENCE { + cellAccessRelatedInfo-v1250 SEQUENCE { + category0Allowed-r12 ENUMERATED {true} OPTIONAL -- Need OP + }, + cellSelectionInfo-v1250 CellSelectionInfo-v1250 OPTIONAL, -- Cond RSRQ2 + freqBandIndicatorPriority-r12 ENUMERATED {true} OPTIONAL, -- Cond mFBI + nonCriticalExtension SystemInformationBlockType1-v1310-IEs OPTIONAL +} + +SystemInformationBlockType1-v1310-IEs ::= SEQUENCE { + hyperSFN-r13 BIT STRING (SIZE (10)) OPTIONAL, -- Need OR + eDRX-Allowed-r13 ENUMERATED {true} OPTIONAL, -- Need OR + cellSelectionInfoCE-r13 CellSelectionInfoCE-r13 OPTIONAL, -- Need OP + bandwidthReducedAccessRelatedInfo-r13 SEQUENCE { + si-WindowLength-BR-r13 ENUMERATED { + ms20, ms40, ms60, ms80, ms120, + ms160, ms200, spare}, + si-RepetitionPattern-r13 ENUMERATED {everyRF, every2ndRF, every4thRF, + every8thRF}, + schedulingInfoList-BR-r13 SchedulingInfoList-BR-r13 OPTIONAL, -- Cond SI-BR + fdd-DownlinkOrTddSubframeBitmapBR-r13 CHOICE { + subframePattern10-r13 BIT STRING (SIZE (10)), + subframePattern40-r13 BIT STRING (SIZE (40)) + } OPTIONAL, -- Need OP + fdd-UplinkSubframeBitmapBR-r13 BIT STRING (SIZE (10)) OPTIONAL, -- Need OP + startSymbolBR-r13 INTEGER (1..4), + si-HoppingConfigCommon-r13 ENUMERATED {on,off}, + si-ValidityTime-r13 ENUMERATED {true} OPTIONAL, -- Need OP + systemInfoValueTagList-r13 SystemInfoValueTagList-r13 OPTIONAL -- Need OR + } OPTIONAL, -- Cond BW-reduced + nonCriticalExtension SystemInformationBlockType1-v1320-IEs OPTIONAL +} + +SystemInformationBlockType1-v1320-IEs ::= SEQUENCE { + freqHoppingParametersDL-r13 SEQUENCE { + mpdcch-pdsch-HoppingNB-r13 ENUMERATED {nb2, nb4} OPTIONAL, -- Need OR + interval-DLHoppingConfigCommonModeA-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-r13 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL, -- Need OR + interval-DLHoppingConfigCommonModeB-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int2, int4, int8, int16}, + interval-TDD-r13 ENUMERATED { int5, int10, int20, int40} + } OPTIONAL, -- Need OR + mpdcch-pdsch-HoppingOffset-r13 INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL -- Need OR + } OPTIONAL, -- Cond Hopping + nonCriticalExtension SystemInformationBlockType1-v1350-IEs OPTIONAL +} + +SystemInformationBlockType1-v1350-IEs ::= SEQUENCE { + cellSelectionInfoCE1-r13 CellSelectionInfoCE1-r13 OPTIONAL, -- Need OP + nonCriticalExtension SystemInformationBlockType1-v1360-IEs OPTIONAL +} + +SystemInformationBlockType1-v1360-IEs ::= SEQUENCE { + cellSelectionInfoCE1-v1360 CellSelectionInfoCE1-v1360 OPTIONAL, -- Cond QrxlevminCE1 + nonCriticalExtension SystemInformationBlockType1-v1430-IEs OPTIONAL +} + +SystemInformationBlockType1-v1430-IEs ::= SEQUENCE { + eCallOverIMS-Support-r14 ENUMERATED {true} OPTIONAL, -- Need OR + tdd-Config-v1430 TDD-Config-v1430 OPTIONAL, -- Cond TDD-OR + cellAccessRelatedInfoList-r14 SEQUENCE (SIZE (1..maxPLMN-1-r14)) OF + CellAccessRelatedInfo-r14 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PLMN-IdentityList ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo + +PLMN-IdentityInfo ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellReservedForOperatorUse ENUMERATED {reserved, notReserved} +} + +SchedulingInfoList ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo + +SchedulingInfo ::= SEQUENCE { + si-Periodicity ENUMERATED { + rf8, rf16, rf32, rf64, rf128, rf256, rf512}, + sib-MappingInfo SIB-MappingInfo +} + +SchedulingInfoList-BR-r13 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo-BR-r13 + +SchedulingInfo-BR-r13 ::= SEQUENCE { + si-Narrowband-r13 INTEGER (1..maxAvailNarrowBands-r13), + si-TBS-r13 ENUMERATED {b152, b208, b256, b328, b408, b504, b600, b712, + b808, b936} +} + +SIB-MappingInfo ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type + +SIB-Type ::= ENUMERATED { + sibType3, sibType4, sibType5, sibType6, + sibType7, sibType8, sibType9, sibType10, + sibType11, sibType12-v920, sibType13-v920, + sibType14-v1130, sibType15-v1130, + sibType16-v1130, sibType17-v1250, sibType18-v1250, + ..., sibType19-v1250, sibType20-v1310, sibType21-v1430} + +SystemInfoValueTagList-r13 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SystemInfoValueTagSI-r13 + +SystemInfoValueTagSI-r13 ::= INTEGER (0..3) + +CellSelectionInfo-v920 ::= SEQUENCE { + q-QualMin-r9 Q-QualMin-r9, + q-QualMinOffset-r9 INTEGER (1..8) OPTIONAL -- Need OP +} + +CellSelectionInfo-v1130 ::= SEQUENCE { + q-QualMinWB-r11 Q-QualMin-r9 +} + +CellSelectionInfo-v1250 ::= SEQUENCE { + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 +} + +CellAccessRelatedInfo-r14 ::= SEQUENCE { + plmn-IdentityList-r14 PLMN-IdentityList, + trackingAreaCode-r14 TrackingAreaCode, + cellIdentity-r14 CellIdentity +} + + +SystemInformationBlockType1-MBMS-r14 ::= SEQUENCE { + cellAccessRelatedInfo-r14 SEQUENCE { + plmn-IdentityList-r14 PLMN-IdentityList-MBMS-r14, + trackingAreaCode-r14 TrackingAreaCode, + cellIdentity-r14 CellIdentity + }, + freqBandIndicator-r14 FreqBandIndicator-r11, + multiBandInfoList-r14 MultiBandInfoList-r11 OPTIONAL, -- Need OR + schedulingInfoList-MBMS-r14 SchedulingInfoList-MBMS-r14, + si-WindowLength-r14 ENUMERATED { + ms1, ms2, ms5, ms10, ms15, ms20,ms40, ms80}, + systemInfoValueTag-r14 INTEGER (0..31), + nonMBSFN-SubframeConfig-r14 NonMBSFN-SubframeConfig-r14 OPTIONAL, --Need OR + pdsch-ConfigCommon-r14 PDSCH-ConfigCommon, + systemInformationBlockType13-r14 SystemInformationBlockType13-r9 OPTIONAL, --Need OR + cellAccessRelatedInfoList-r14 SEQUENCE (SIZE (1..maxPLMN-1-r14)) OF + CellAccessRelatedInfo-r14 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PLMN-IdentityList-MBMS-r14 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-Identity + +SchedulingInfoList-MBMS-r14 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo-MBMS-r14 + +SchedulingInfo-MBMS-r14 ::= SEQUENCE { + si-Periodicity-r14 ENUMERATED { + rf16, rf32, rf64, rf128, rf256, rf512}, + sib-MappingInfo-r14 SIB-MappingInfo-MBMS-r14 +} + +SIB-MappingInfo-MBMS-r14 ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type-MBMS-r14 + +SIB-Type-MBMS-r14 ::= ENUMERATED { + sibType10, sibType11, sibType12-v920, sibType13-v920, + sibType15-v1130, sibType16-v1130, ...} + + +NonMBSFN-SubframeConfig-r14 ::= SEQUENCE { + radioFrameAllocationPeriod-r14 ENUMERATED {rf4, rf8, rf16, rf32, rf64, rf128, rf512}, + radioFrameAllocationOffset-r14 INTEGER (0..7), + subframeAllocation-r14 BIT STRING (SIZE(9)) +} + + +UEAssistanceInformation-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ueAssistanceInformation-r11 UEAssistanceInformation-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEAssistanceInformation-r11-IEs ::= SEQUENCE { + powerPrefIndication-r11 ENUMERATED {normal, lowPowerConsumption} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UEAssistanceInformation-v1430-IEs OPTIONAL +} + +UEAssistanceInformation-v1430-IEs ::= SEQUENCE { + bw-Preference-r14 BW-Preference-r14 OPTIONAL, + sps-AssistanceInformation-r14 SEQUENCE { + trafficPatternInfoListSL-r14 TrafficPatternInfoList-r14 OPTIONAL, + trafficPatternInfoListUL-r14 TrafficPatternInfoList-r14 OPTIONAL + } OPTIONAL, + rlm-Report-r14 SEQUENCE { + rlm-Event-r14 ENUMERATED {earlyOutOfSync, earlyInSync}, + excessRep-MPDCCH-r14 ENUMERATED {excessRep1, excessRep2} OPTIONAL + } OPTIONAL, delayBudgetReport-r14 DelayBudgetReport-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +BW-Preference-r14 ::= SEQUENCE { + dl-Preference-r14 ENUMERATED {mhz1dot4, mhz5, mhz20 } OPTIONAL, + ul-Preference-r14 ENUMERATED {mhz1dot4, mhz5} OPTIONAL +} + +TrafficPatternInfoList-r14 ::= SEQUENCE (SIZE (1..maxTrafficPattern-r14)) OF TrafficPatternInfo-r14 + +TrafficPatternInfo-r14 ::= SEQUENCE { + trafficPeriodicity-r14 ENUMERATED { + sf20, sf50, sf100, sf200, sf300, sf400, sf500, + sf600, sf700, sf800, sf900, sf1000}, + timingOffset-r14 INTEGER (0..10239), + priorityInfoSL-r14 SL-Priority-r13 OPTIONAL, + logicalChannelIdentityUL-r14 INTEGER (3..10) OPTIONAL, + messageSize-r14 BIT STRING (SIZE (6)) +} + +DelayBudgetReport-r14::= CHOICE { + type1 ENUMERATED { + msMinus1280, msMinus640, msMinus320, msMinus160, + msMinus80, msMinus60, msMinus40, msMinus20, ms0, ms20, ms40, ms60, ms80, ms160, ms320, ms640, ms1280}, + + type2 ENUMERATED { + msMinus192, msMinus168,msMinus144, msMinus120, + msMinus96, msMinus72, msMinus48, msMinus24, ms0, ms24, ms48, ms72, ms96, ms120, ms144, ms168, ms192} +} + + +UECapabilityEnquiry ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueCapabilityEnquiry-r8 UECapabilityEnquiry-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityEnquiry-r8-IEs ::= SEQUENCE { + ue-CapabilityRequest UE-CapabilityRequest, + nonCriticalExtension UECapabilityEnquiry-v8a0-IEs OPTIONAL +} + +UECapabilityEnquiry-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UECapabilityEnquiry-v1180-IEs OPTIONAL +} + +UECapabilityEnquiry-v1180-IEs ::= SEQUENCE { + requestedFrequencyBands-r11 SEQUENCE (SIZE (1..16)) OF FreqBandIndicator-r11 OPTIONAL, + nonCriticalExtension UECapabilityEnquiry-v1310-IEs OPTIONAL +} + +UECapabilityEnquiry-v1310-IEs ::= SEQUENCE { + requestReducedFormat-r13 ENUMERATED {true} OPTIONAL, -- Need ON + requestSkipFallbackComb-r13 ENUMERATED {true} OPTIONAL, -- Need ON + requestedMaxCCsDL-r13 INTEGER (2..32) OPTIONAL, -- Need ON + requestedMaxCCsUL-r13 INTEGER (2..32) OPTIONAL, -- Need ON + requestReducedIntNonContComb-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension UECapabilityEnquiry-v1430-IEs OPTIONAL +} + +UECapabilityEnquiry-v1430-IEs ::= SEQUENCE { + requestDiffFallbackCombList-r14 BandCombinationList-r14 OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-CapabilityRequest ::= SEQUENCE (SIZE (1..maxRAT-Capabilities)) OF RAT-Type + + +UECapabilityInformation ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + ueCapabilityInformation-r8 UECapabilityInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityInformation-r8-IEs ::= SEQUENCE { + ue-CapabilityRAT-ContainerList UE-CapabilityRAT-ContainerList, + nonCriticalExtension UECapabilityInformation-v8a0-IEs OPTIONAL +} + +UECapabilityInformation-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UECapabilityInformation-v1250-IEs OPTIONAL +} + +UECapabilityInformation-v1250-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r12 UE-RadioPagingInfo-r12 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEInformationRequest-r9 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueInformationRequest-r9 UEInformationRequest-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEInformationRequest-r9-IEs ::= SEQUENCE { + rach-ReportReq-r9 BOOLEAN, + rlf-ReportReq-r9 BOOLEAN, + nonCriticalExtension UEInformationRequest-v930-IEs OPTIONAL +} + +UEInformationRequest-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UEInformationRequest-v1020-IEs OPTIONAL +} + +UEInformationRequest-v1020-IEs ::= SEQUENCE { + logMeasReportReq-r10 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension UEInformationRequest-v1130-IEs OPTIONAL +} + +UEInformationRequest-v1130-IEs ::= SEQUENCE { + connEstFailReportReq-r11 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension UEInformationRequest-v1250-IEs OPTIONAL +} + +UEInformationRequest-v1250-IEs ::= SEQUENCE { + mobilityHistoryReportReq-r12 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEInformationResponse-r9 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueInformationResponse-r9 UEInformationResponse-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEInformationResponse-r9-IEs ::= SEQUENCE { + rach-Report-r9 SEQUENCE { + numberOfPreamblesSent-r9 NumberOfPreamblesSent-r11, + contentionDetected-r9 BOOLEAN + } OPTIONAL, + rlf-Report-r9 RLF-Report-r9 OPTIONAL, + nonCriticalExtension UEInformationResponse-v930-IEs OPTIONAL +} + +-- Late non critical extensions +UEInformationResponse-v9e0-IEs ::= SEQUENCE { + rlf-Report-v9e0 RLF-Report-v9e0 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +UEInformationResponse-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING UEInformationResponse-v9e0-IEs) OPTIONAL, + nonCriticalExtension UEInformationResponse-v1020-IEs OPTIONAL +} + +UEInformationResponse-v1020-IEs ::= SEQUENCE { + logMeasReport-r10 LogMeasReport-r10 OPTIONAL, + nonCriticalExtension UEInformationResponse-v1130-IEs OPTIONAL +} + +UEInformationResponse-v1130-IEs ::= SEQUENCE { + connEstFailReport-r11 ConnEstFailReport-r11 OPTIONAL, + nonCriticalExtension UEInformationResponse-v1250-IEs OPTIONAL +} + +UEInformationResponse-v1250-IEs ::= SEQUENCE { + mobilityHistoryReport-r12 MobilityHistoryReport-r12 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RLF-Report-r9 ::= SEQUENCE { + measResultLastServCell-r9 SEQUENCE { + rsrpResult-r9 RSRP-Range, + rsrqResult-r9 RSRQ-Range OPTIONAL + }, + measResultNeighCells-r9 SEQUENCE { + measResultListEUTRA-r9 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r9 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r9 MeasResultListGERAN OPTIONAL, + measResultsCDMA2000-r9 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + ..., + [[ locationInfo-r10 LocationInfo-r10 OPTIONAL, + failedPCellId-r10 CHOICE { + cellGlobalId-r10 CellGlobalIdEUTRA, + pci-arfcn-r10 SEQUENCE { + physCellId-r10 PhysCellId, + carrierFreq-r10 ARFCN-ValueEUTRA + } + } OPTIONAL, + reestablishmentCellId-r10 CellGlobalIdEUTRA OPTIONAL, + timeConnFailure-r10 INTEGER (0..1023) OPTIONAL, + connectionFailureType-r10 ENUMERATED {rlf, hof} OPTIONAL, + previousPCellId-r10 CellGlobalIdEUTRA OPTIONAL + ]], + [[ failedPCellId-v1090 SEQUENCE { + carrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 + } OPTIONAL + ]], + [[ basicFields-r11 SEQUENCE { + c-RNTI-r11 C-RNTI, + rlf-Cause-r11 ENUMERATED { + t310-Expiry, randomAccessProblem, + rlc-MaxNumRetx, t312-Expiry-r12}, + timeSinceFailure-r11 TimeSinceFailure-r11 + } OPTIONAL, + previousUTRA-CellId-r11 SEQUENCE { + carrierFreq-r11 ARFCN-ValueUTRA, + physCellId-r11 CHOICE { + fdd-r11 PhysCellIdUTRA-FDD, + tdd-r11 PhysCellIdUTRA-TDD + }, + cellGlobalId-r11 CellGlobalIdUTRA OPTIONAL + } OPTIONAL, + selectedUTRA-CellId-r11 SEQUENCE { + carrierFreq-r11 ARFCN-ValueUTRA, + physCellId-r11 CHOICE { + fdd-r11 PhysCellIdUTRA-FDD, + tdd-r11 PhysCellIdUTRA-TDD + } + } OPTIONAL + ]], + [[ failedPCellId-v1250 SEQUENCE { + tac-FailedPCell-r12 TrackingAreaCode + } OPTIONAL, + measResultLastServCell-v1250 RSRQ-Range-v1250 OPTIONAL, + lastServCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL + ]], + [[ drb-EstablishedWithQCI-1-r13 ENUMERATED {qci1} OPTIONAL + ]], + [[ measResultLastServCell-v1360 RSRP-Range-v1360 OPTIONAL + ]] +} + +RLF-Report-v9e0 ::= SEQUENCE { + measResultListEUTRA-v9e0 MeasResultList2EUTRA-v9e0 +} + +MeasResultList2EUTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-r9 + +MeasResultList2EUTRA-v9e0 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v9e0 + +MeasResultList2EUTRA-v1250 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v1250 + +MeasResult2EUTRA-r9 ::= SEQUENCE { + carrierFreq-r9 ARFCN-ValueEUTRA, + measResultList-r9 MeasResultListEUTRA +} + +MeasResult2EUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL +} + +MeasResult2EUTRA-v1250 ::= SEQUENCE { + rsrq-Type-r12 RSRQ-Type-r12 OPTIONAL +} + +MeasResultList2UTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2UTRA-r9 + +MeasResult2UTRA-r9 ::= SEQUENCE { + carrierFreq-r9 ARFCN-ValueUTRA, + measResultList-r9 MeasResultListUTRA +} + +MeasResultList2CDMA2000-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2CDMA2000-r9 + +MeasResult2CDMA2000-r9 ::= SEQUENCE { + carrierFreq-r9 CarrierFreqCDMA2000, + measResultList-r9 MeasResultsCDMA2000 +} + +LogMeasReport-r10 ::= SEQUENCE { + absoluteTimeStamp-r10 AbsoluteTimeInfo-r10, + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + logMeasInfoList-r10 LogMeasInfoList-r10, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + ... +} + +LogMeasInfoList-r10 ::= SEQUENCE (SIZE (1..maxLogMeasReport-r10)) OF LogMeasInfo-r10 + +LogMeasInfo-r10 ::= SEQUENCE { + locationInfo-r10 LocationInfo-r10 OPTIONAL, + relativeTimeStamp-r10 INTEGER (0..7200), + servCellIdentity-r10 CellGlobalIdEUTRA, + measResultServCell-r10 SEQUENCE { + rsrpResult-r10 RSRP-Range, + rsrqResult-r10 RSRQ-Range + }, + measResultNeighCells-r10 SEQUENCE { + measResultListEUTRA-r10 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r10 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r10 MeasResultList2GERAN-r10 OPTIONAL, + measResultListCDMA2000-r10 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + ..., + [[ measResultListEUTRA-v1090 MeasResultList2EUTRA-v9e0 OPTIONAL + ]], + [[ measResultListMBSFN-r12 MeasResultListMBSFN-r12 OPTIONAL, + measResultServCell-v1250 RSRQ-Range-v1250 OPTIONAL, + servCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL + ]], + [[ inDeviceCoexDetected-r13 ENUMERATED {true} OPTIONAL + ]], + [[ measResultServCell-v1360 RSRP-Range-v1360 OPTIONAL + ]] +} + +MeasResultListMBSFN-r12 ::= SEQUENCE (SIZE (1..maxMBSFN-Area)) OF MeasResultMBSFN-r12 + +MeasResultMBSFN-r12 ::= SEQUENCE { + mbsfn-Area-r12 SEQUENCE { + mbsfn-AreaId-r12 MBSFN-AreaId-r12, + carrierFreq-r12 ARFCN-ValueEUTRA-r9 + }, + rsrpResultMBSFN-r12 RSRP-Range, + rsrqResultMBSFN-r12 MBSFN-RSRQ-Range-r12, + signallingBLER-Result-r12 BLER-Result-r12 OPTIONAL, + dataBLER-MCH-ResultList-r12 DataBLER-MCH-ResultList-r12 OPTIONAL, + ... +} + +DataBLER-MCH-ResultList-r12 ::= SEQUENCE (SIZE (1.. maxPMCH-PerMBSFN)) OF DataBLER-MCH-Result-r12 + +DataBLER-MCH-Result-r12 ::= SEQUENCE { + mch-Index-r12 INTEGER (1..maxPMCH-PerMBSFN), + dataBLER-Result-r12 BLER-Result-r12 +} + +BLER-Result-r12 ::= SEQUENCE { + bler-r12 BLER-Range-r12, + blocksReceived-r12 SEQUENCE { + n-r12 BIT STRING (SIZE (3)), + m-r12 BIT STRING (SIZE (8)) + } +} + +BLER-Range-r12 ::= INTEGER(0..31) + +MeasResultList2GERAN-r10 ::= SEQUENCE (SIZE (1..maxCellListGERAN)) OF MeasResultListGERAN + +ConnEstFailReport-r11 ::= SEQUENCE { + failedCellId-r11 CellGlobalIdEUTRA, + locationInfo-r11 LocationInfo-r10 OPTIONAL, + measResultFailedCell-r11 SEQUENCE { + rsrpResult-r11 RSRP-Range, + rsrqResult-r11 RSRQ-Range OPTIONAL + }, + measResultNeighCells-r11 SEQUENCE { + measResultListEUTRA-r11 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r11 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r11 MeasResultListGERAN OPTIONAL, + measResultsCDMA2000-r11 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + numberOfPreamblesSent-r11 NumberOfPreamblesSent-r11, + contentionDetected-r11 BOOLEAN, + maxTxPowerReached-r11 BOOLEAN, + timeSinceFailure-r11 TimeSinceFailure-r11, + measResultListEUTRA-v1130 MeasResultList2EUTRA-v9e0 OPTIONAL, + ..., + [[ measResultFailedCell-v1250 RSRQ-Range-v1250 OPTIONAL, + failedCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL + ]], + [[ measResultFailedCell-v1360 RSRP-Range-v1360 OPTIONAL + ]] +} + +NumberOfPreamblesSent-r11::= INTEGER (1..200) + +TimeSinceFailure-r11 ::= INTEGER (0..172800) + +MobilityHistoryReport-r12 ::= VisitedCellInfoList-r12 + + +ULHandoverPreparationTransfer ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulHandoverPreparationTransfer-r8 ULHandoverPreparationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULHandoverPreparationTransfer-r8-IEs ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + meid BIT STRING (SIZE (56)) OPTIONAL, + dedicatedInfo DedicatedInfoCDMA2000, + nonCriticalExtension ULHandoverPreparationTransfer-v8a0-IEs OPTIONAL +} + +ULHandoverPreparationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +ULInformationTransfer ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulInformationTransfer-r8 ULInformationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType CHOICE { + dedicatedInfoNAS DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000 + }, + nonCriticalExtension ULInformationTransfer-v8a0-IEs OPTIONAL +} + +ULInformationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +WLANConnectionStatusReport-r13 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + wlanConnectionStatusReport-r13 WLANConnectionStatusReport-r13-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +WLANConnectionStatusReport-r13-IEs ::= SEQUENCE { + wlan-Status-r13 WLAN-Status-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension WLANConnectionStatusReport-v1430-IEs OPTIONAL +} + +WLANConnectionStatusReport-v1430-IEs ::= SEQUENCE { + wlan-Status-v1430 WLAN-Status-v1430, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType2 ::= SEQUENCE { + ac-BarringInfo SEQUENCE { + ac-BarringForEmergency BOOLEAN, + ac-BarringForMO-Signalling AC-BarringConfig OPTIONAL, -- Need OP + ac-BarringForMO-Data AC-BarringConfig OPTIONAL -- Need OP + } OPTIONAL, -- Need OP + radioResourceConfigCommon RadioResourceConfigCommonSIB, + ue-TimersAndConstants UE-TimersAndConstants, + freqInfo SEQUENCE { + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission + }, + mbsfn-SubframeConfigList MBSFN-SubframeConfigList OPTIONAL, -- Need OR + timeAlignmentTimerCommon TimeAlignmentTimer, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType2-v8h0-IEs) OPTIONAL, + [[ ssac-BarringForMMTEL-Voice-r9 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Video-r9 AC-BarringConfig OPTIONAL -- Need OP + ]], + [[ ac-BarringForCSFB-r10 AC-BarringConfig OPTIONAL -- Need OP + ]], + [[ ac-BarringSkipForMMTELVoice-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVideo-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForSMS-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringPerPLMN-List-r12 AC-BarringPerPLMN-List-r12 OPTIONAL -- Need OP + ]], + [[ voiceServiceCauseIndication-r12 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ acdc-BarringForCommon-r13 ACDC-BarringForCommon-r13 OPTIONAL, -- Need OP + acdc-BarringPerPLMN-List-r13 ACDC-BarringPerPLMN-List-r13 OPTIONAL -- Need OP + ]], + [[ + udt-RestrictingForCommon-r13 UDT-Restricting-r13 OPTIONAL, -- Need OR + udt-RestrictingPerPLMN-List-r13 UDT-RestrictingPerPLMN-List-r13 OPTIONAL, -- Need OR + cIoT-EPS-OptimisationInfo-r13 CIOT-EPS-OptimisationInfo-r13 OPTIONAL, -- Need OP + useFullResumeID-r13 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ unicastFreqHoppingInd-r13 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL, -- Need OP + videoServiceCauseIndication-r14 ENUMERATED {true} OPTIONAL -- Need OP + ]] + +} + +SystemInformationBlockType2-v8h0-IEs ::= SEQUENCE { + multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType2-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType2-v9e0-IEs ::= SEQUENCE { + ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond ul-FreqMax + nonCriticalExtension SystemInformationBlockType2-v9i0-IEs OPTIONAL +} + +SystemInformationBlockType2-v9i0-IEs ::= SEQUENCE { +-- Following field is only for late non-critical extensions for REL-9 + lateNonCriticalExtension OCTET STRING OPTIONAL, +-- Following field is only for late non-critical extensions from REL-10 + nonCriticalExtension SystemInformationBlockType2-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType2-v10l0-IEs ::= SEQUENCE { + freqInfo-v10l0 SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 + }, + multiBandInfoList-v10l0 SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission-v10l0, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AC-BarringConfig ::= SEQUENCE { + ac-BarringFactor ENUMERATED { + p00, p05, p10, p15, p20, p25, p30, p40, + p50, p60, p70, p75, p80, p85, p90, p95}, + ac-BarringTime ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512}, + ac-BarringForSpecialAC BIT STRING (SIZE(5)) +} + +MBSFN-SubframeConfigList ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig + +MBSFN-SubframeConfigList-v1430 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig-v1430 + +AC-BarringPerPLMN-List-r12 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF AC-BarringPerPLMN-r12 + +AC-BarringPerPLMN-r12 ::= SEQUENCE { + plmn-IdentityIndex-r12 INTEGER (1..maxPLMN-r11), + ac-BarringInfo-r12 SEQUENCE { + ac-BarringForEmergency-r12 BOOLEAN, + ac-BarringForMO-Signalling-r12 AC-BarringConfig OPTIONAL, -- Need OP + ac-BarringForMO-Data-r12 AC-BarringConfig OPTIONAL -- Need OP + } OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVoice-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVideo-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForSMS-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringForCSFB-r12 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Voice-r12 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Video-r12 AC-BarringConfig OPTIONAL -- Need OP +} + +ACDC-BarringForCommon-r13 ::= SEQUENCE { + acdc-HPLMNonly-r13 BOOLEAN, + barringPerACDC-CategoryList-r13 BarringPerACDC-CategoryList-r13 +} + +ACDC-BarringPerPLMN-List-r13 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF ACDC-BarringPerPLMN-r13 + +ACDC-BarringPerPLMN-r13 ::= SEQUENCE { + plmn-IdentityIndex-r13 INTEGER (1..maxPLMN-r11), + acdc-OnlyForHPLMN-r13 BOOLEAN, + barringPerACDC-CategoryList-r13 BarringPerACDC-CategoryList-r13 +} + +BarringPerACDC-CategoryList-r13 ::= SEQUENCE (SIZE (1..maxACDC-Cat-r13)) OF BarringPerACDC-Category-r13 + +BarringPerACDC-Category-r13 ::= SEQUENCE { + acdc-Category-r13 INTEGER (1..maxACDC-Cat-r13), + acdc-BarringConfig-r13 SEQUENCE { + ac-BarringFactor-r13 ENUMERATED { + p00, p05, p10, p15, p20, p25, p30, p40, + p50, p60, p70, p75, p80, p85, p90, p95}, + ac-BarringTime-r13 ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512} + } OPTIONAL -- Need OP +} + +UDT-Restricting-r13 ::= SEQUENCE { + udt-Restricting-r13 ENUMERATED {true} OPTIONAL, --Need OR + udt-RestrictingTime-r13 ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512} OPTIONAL --Need OR +} + +UDT-RestrictingPerPLMN-List-r13 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF UDT-RestrictingPerPLMN-r13 + +UDT-RestrictingPerPLMN-r13 ::= SEQUENCE { + plmn-IdentityIndex-r13 INTEGER (1..maxPLMN-r11), + udt-Restricting-r13 UDT-Restricting-r13 OPTIONAL --Need OR +} + +CIOT-EPS-OptimisationInfo-r13 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF CIOT-OptimisationPLMN-r13 + +CIOT-OptimisationPLMN-r13::= SEQUENCE { + up-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, -- Need OP + cp-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, -- Need OP + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL -- Need OP +} + + +SystemInformationBlockType3 ::= SEQUENCE { + cellReselectionInfoCommon SEQUENCE { + q-Hyst ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + speedStateReselectionPars SEQUENCE { + mobilityStateParameters MobilityStateParameters, + q-HystSF SEQUENCE { + sf-Medium ENUMERATED { + dB-6, dB-4, dB-2, dB0}, + sf-High ENUMERATED { + dB-6, dB-4, dB-2, dB0} + } + } OPTIONAL -- Need OP + }, + cellReselectionServingFreqInfo SEQUENCE { + s-NonIntraSearch ReselectionThreshold OPTIONAL, -- Need OP + threshServingLow ReselectionThreshold, + cellReselectionPriority CellReselectionPriority + }, + intraFreqCellReselectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + p-Max P-Max OPTIONAL, -- Need OP + s-IntraSearch ReselectionThreshold OPTIONAL, -- Need OP + allowedMeasBandwidth AllowedMeasBandwidth OPTIONAL, -- Need OP + presenceAntennaPort1 PresenceAntennaPort1, + neighCellConfig NeighCellConfig, + t-ReselectionEUTRA T-Reselection, + t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL -- Need OP + }, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType3-v10j0-IEs) OPTIONAL, + [[ s-IntraSearch-v920 SEQUENCE { + s-IntraSearchP-r9 ReselectionThreshold, + s-IntraSearchQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL, -- Need OP + s-NonIntraSearch-v920 SEQUENCE { + s-NonIntraSearchP-r9 ReselectionThreshold, + s-NonIntraSearchQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL, -- Need OP + q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP + threshServingLowQ-r9 ReselectionThresholdQ-r9 OPTIONAL -- Need OP + ]], + [[ q-QualMinWB-r11 Q-QualMin-r9 OPTIONAL -- Cond WB-RSRQ + ]], + [[ q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL -- Cond RSRQ + ]], + [[ cellReselectionServingFreqInfo-v1310 CellReselectionServingFreqInfo-v1310 OPTIONAL, -- Need OP + redistributionServingInfo-r13 RedistributionServingInfo-r13 OPTIONAL, --Need OR + cellSelectionInfoCE-r13 CellSelectionInfoCE-r13 OPTIONAL, -- Need OP + t-ReselectionEUTRA-CE-r13 T-ReselectionEUTRA-CE-r13 OPTIONAL -- Need OP + ]], + [[ cellSelectionInfoCE1-r13 CellSelectionInfoCE1-r13 OPTIONAL -- Need OP + ]], + [[ cellSelectionInfoCE1-v1360 CellSelectionInfoCE1-v1360 OPTIONAL -- Cond QrxlevminCE1 + ]] +} + +RedistributionServingInfo-r13 ::= SEQUENCE { + redistributionFactorServing-r13 INTEGER(0..10), + redistributionFactorCell-r13 ENUMERATED{true} OPTIONAL, --Need OP + t360-r13 ENUMERATED {min4, min8, min16, min32,infinity, + spare3,spare2,spare1}, + redistrOnPagingOnly-r13 ENUMERATED {true} OPTIONAL --Need OP +} + +CellReselectionServingFreqInfo-v1310 ::= SEQUENCE { + cellReselectionSubPriority-r13 CellReselectionSubPriority-r13 +} + +-- Late non critical extensions +SystemInformationBlockType3-v10j0-IEs ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType3-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType3-v10l0-IEs ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType4 ::= SEQUENCE { + intraFreqNeighCellList IntraFreqNeighCellList OPTIONAL, -- Need OR + intraFreqBlackCellList IntraFreqBlackCellList OPTIONAL, -- Need OR + csg-PhysCellIdRange PhysCellIdRange OPTIONAL, -- Cond CSG + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + +IntraFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellIntra)) OF IntraFreqNeighCellInfo + +IntraFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange, + ... +} + +IntraFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange + + +SystemInformationBlockType5 ::= SEQUENCE { + interFreqCarrierFreqList InterFreqCarrierFreqList, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType5-v8h0-IEs) OPTIONAL, + [[ interFreqCarrierFreqList-v1250 InterFreqCarrierFreqList-v1250 OPTIONAL, -- Need OR + interFreqCarrierFreqListExt-r12 InterFreqCarrierFreqListExt-r12 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqListExt-v1280 InterFreqCarrierFreqListExt-v1280 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqList-v1310 InterFreqCarrierFreqList-v1310 OPTIONAL, -- Need OR + interFreqCarrierFreqListExt-v1310 InterFreqCarrierFreqListExt-v1310 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqList-v1350 InterFreqCarrierFreqList-v1350 OPTIONAL, -- Need OR + interFreqCarrierFreqListExt-v1350 InterFreqCarrierFreqListExt-v1350 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqListExt-v1360 InterFreqCarrierFreqListExt-v1360 OPTIONAL -- Need OR + ]], + [[ scptm-FreqOffset-r14 INTEGER (1..8) OPTIONAL -- Need OP + ]] +} + +SystemInformationBlockType5-v8h0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v8h0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v8h0 OPTIONAL, -- Need OP + nonCriticalExtension SystemInformationBlockType5-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType5-v9e0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v9e0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType5-v10j0-IEs OPTIONAL +} + +SystemInformationBlockType5-v10j0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v10j0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType5-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType5-v10l0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v10l0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +InterFreqCarrierFreqList ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo + +InterFreqCarrierFreqList-v1250 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1250 + +InterFreqCarrierFreqList-v1310 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1310 + +InterFreqCarrierFreqList-v1350 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1350 + +InterFreqCarrierFreqListExt-r12 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-r12 + +InterFreqCarrierFreqListExt-v1280 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v10j0 + +InterFreqCarrierFreqListExt-v1310 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1310 + +InterFreqCarrierFreqListExt-v1350 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1350 + +InterFreqCarrierFreqListExt-v1360 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v1360 + +InterFreqCarrierFreqInfo ::= SEQUENCE { + dl-CarrierFreq ARFCN-ValueEUTRA, + q-RxLevMin Q-RxLevMin, + p-Max P-Max OPTIONAL, -- Need OP + t-ReselectionEUTRA T-Reselection, + t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + allowedMeasBandwidth AllowedMeasBandwidth, + presenceAntennaPort1 PresenceAntennaPort1, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + neighCellConfig NeighCellConfig, + q-OffsetFreq Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList InterFreqNeighCellList OPTIONAL, -- Need OR + interFreqBlackCellList InterFreqBlackCellList OPTIONAL, -- Need OR + ..., + [[ q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP + threshX-Q-r9 SEQUENCE { + threshX-HighQ-r9 ReselectionThresholdQ-r9, + threshX-LowQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL -- Cond RSRQ + ]], + [[ q-QualMinWB-r11 Q-QualMin-r9 OPTIONAL -- Cond WB-RSRQ + ]] +} + +InterFreqCarrierFreqInfo-v8h0 ::= SEQUENCE { + multiBandInfoList MultiBandInfoList OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v9e0 ::= SEQUENCE { + dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond dl-FreqMax + multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v10j0 ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v10l0 ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v1250 ::= SEQUENCE { + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL -- Cond RSRQ2 +} + +InterFreqCarrierFreqInfo-r12 ::= SEQUENCE { + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9, + q-RxLevMin-r12 Q-RxLevMin, + p-Max-r12 P-Max OPTIONAL, -- Need OP + t-ReselectionEUTRA-r12 T-Reselection, + t-ReselectionEUTRA-SF-r12 SpeedStateScaleFactors OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + allowedMeasBandwidth-r12 AllowedMeasBandwidth, + presenceAntennaPort1-r12 PresenceAntennaPort1, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + neighCellConfig-r12 NeighCellConfig, + q-OffsetFreq-r12 Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList-r12 InterFreqNeighCellList OPTIONAL, -- Need OR + interFreqBlackCellList-r12 InterFreqBlackCellList OPTIONAL, -- Need OR + q-QualMin-r12 Q-QualMin-r9 OPTIONAL, -- Need OP + threshX-Q-r12 SEQUENCE { + threshX-HighQ-r12 ReselectionThresholdQ-r9, + threshX-LowQ-r12 ReselectionThresholdQ-r9 + } OPTIONAL, -- Cond RSRQ + q-QualMinWB-r12 Q-QualMin-r9 OPTIONAL, -- Cond WB-RSRQ + multiBandInfoList-r12 MultiBandInfoList-r11 OPTIONAL, -- Need OR + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL, -- Cond RSRQ2 +... +} + +InterFreqCarrierFreqInfo-v1310 ::= SEQUENCE { + cellReselectionSubPriority-r13 CellReselectionSubPriority-r13 OPTIONAL, -- Need OP + redistributionInterFreqInfo-r13 RedistributionInterFreqInfo-r13 OPTIONAL, --Need OP + cellSelectionInfoCE-r13 CellSelectionInfoCE-r13 OPTIONAL, -- Need OP + t-ReselectionEUTRA-CE-r13 T-ReselectionEUTRA-CE-r13 OPTIONAL -- Need OP +} + +InterFreqCarrierFreqInfo-v1350 ::= SEQUENCE { + cellSelectionInfoCE1-r13 CellSelectionInfoCE1-r13 OPTIONAL -- Need OP +} + +InterFreqCarrierFreqInfo-v1360 ::= SEQUENCE { + cellSelectionInfoCE1-v1360 CellSelectionInfoCE1-v1360 OPTIONAL -- Cond QrxlevminCE1 +} + +InterFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo + +InterFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange +} + +InterFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange + +RedistributionInterFreqInfo-r13 ::= SEQUENCE { + redistributionFactorFreq-r13 RedistributionFactor-r13 OPTIONAL, --Need OP + redistributionNeighCellList-r13 RedistributionNeighCellList-r13 OPTIONAL --Need OP +} + +RedistributionNeighCellList-r13 ::= SEQUENCE (SIZE (1..maxCellInter)) OF RedistributionNeighCell-r13 + +RedistributionNeighCell-r13 ::= SEQUENCE { + physCellId-r13 PhysCellId, + redistributionFactorCell-r13 RedistributionFactor-r13 +} + +RedistributionFactor-r13 ::= INTEGER(1..10) + + +SystemInformationBlockType6 ::= SEQUENCE { + carrierFreqListUTRA-FDD CarrierFreqListUTRA-FDD OPTIONAL, -- Need OR + carrierFreqListUTRA-TDD CarrierFreqListUTRA-TDD OPTIONAL, -- Need OR + t-ReselectionUTRA T-Reselection, + t-ReselectionUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType6-v8h0-IEs) OPTIONAL, + [[ carrierFreqListUTRA-FDD-v1250 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF + CarrierFreqInfoUTRA-v1250 OPTIONAL, -- Cond UTRA-FDD + carrierFreqListUTRA-TDD-v1250 SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF + CarrierFreqInfoUTRA-v1250 OPTIONAL, -- Cond UTRA-TDD + carrierFreqListUTRA-FDD-Ext-r12 CarrierFreqListUTRA-FDD-Ext-r12 OPTIONAL, -- Cond UTRA-FDD + carrierFreqListUTRA-TDD-Ext-r12 CarrierFreqListUTRA-TDD-Ext-r12 OPTIONAL -- Cond UTRA-TDD + ]] +} + +SystemInformationBlockType6-v8h0-IEs ::= SEQUENCE { + carrierFreqListUTRA-FDD-v8h0 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqInfoUTRA-FDD-v8h0 OPTIONAL, -- Cond UTRA-FDD + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CarrierFreqInfoUTRA-v1250 ::= SEQUENCE { + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL -- Need OP +} + +CarrierFreqListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqUTRA-FDD + +CarrierFreqUTRA-FDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + q-RxLevMin INTEGER (-60..-13), + p-MaxUTRA INTEGER (-50..33), + q-QualMin INTEGER (-24..0), + ..., + [[ threshX-Q-r9 SEQUENCE { + threshX-HighQ-r9 ReselectionThresholdQ-r9, + threshX-LowQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL -- Cond RSRQ + ]] +} + +CarrierFreqInfoUTRA-FDD-v8h0 ::= SEQUENCE { + multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL -- Need OR +} + +CarrierFreqListUTRA-FDD-Ext-r12 ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF + CarrierFreqUTRA-FDD-Ext-r12 + +CarrierFreqUTRA-FDD-Ext-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueUTRA, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + q-RxLevMin-r12 INTEGER (-60..-13), + p-MaxUTRA-r12 INTEGER (-50..33), + q-QualMin-r12 INTEGER (-24..0), + threshX-Q-r12 SEQUENCE { + threshX-HighQ-r12 ReselectionThresholdQ-r9, + threshX-LowQ-r12 ReselectionThresholdQ-r9 + } OPTIONAL, -- Cond RSRQ + multiBandInfoList-r12 SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL, -- Need OR + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ... +} + +CarrierFreqListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF CarrierFreqUTRA-TDD + +CarrierFreqUTRA-TDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + q-RxLevMin INTEGER (-60..-13), + p-MaxUTRA INTEGER (-50..33), + ... +} + +CarrierFreqListUTRA-TDD-Ext-r12 ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF + CarrierFreqUTRA-TDD-r12 + +CarrierFreqUTRA-TDD-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueUTRA, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + q-RxLevMin-r12 INTEGER (-60..-13), + p-MaxUTRA-r12 INTEGER (-50..33), + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ... +} + +FreqBandIndicator-UTRA-FDD ::= INTEGER (1..86) + + +SystemInformationBlockType7 ::= SEQUENCE { + t-ReselectionGERAN T-Reselection, + t-ReselectionGERAN-SF SpeedStateScaleFactors OPTIONAL, -- Need OR + carrierFreqsInfoList CarrierFreqsInfoListGERAN OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + +CarrierFreqsInfoListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF CarrierFreqsInfoGERAN + +CarrierFreqsInfoGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + commonInfo SEQUENCE { + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + ncc-Permitted BIT STRING (SIZE (8)), + q-RxLevMin INTEGER (0..45), + p-MaxGERAN INTEGER (0..39) OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold + }, + ... +} + + +SystemInformationBlockType8 ::= SEQUENCE { + systemTimeInfo SystemTimeInfoCDMA2000 OPTIONAL, -- Need OR + searchWindowSize INTEGER (0..15) OPTIONAL, -- Need OR + parametersHRPD SEQUENCE { + preRegistrationInfoHRPD PreRegistrationInfoHRPD, + cellReselectionParametersHRPD CellReselectionParametersCDMA2000 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + parameters1XRTT SEQUENCE { + csfb-RegistrationParam1XRTT CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP + longCodeState1XRTT BIT STRING (SIZE (42)) OPTIONAL, -- Need OR + cellReselectionParameters1XRTT CellReselectionParametersCDMA2000 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL, + [[ csfb-SupportForDualRxUEs-r9 BOOLEAN OPTIONAL, -- Need OR + cellReselectionParametersHRPD-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-HRPD + cellReselectionParameters1XRTT-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-1XRTT + csfb-RegistrationParam1XRTT-v920 CSFB-RegistrationParam1XRTT-v920 OPTIONAL, -- Cond REG-1XRTT + ac-BarringConfig1XRTT-r9 AC-BarringConfig1XRTT-r9 OPTIONAL -- Cond REG-1XRTT + ]], + [[ csfb-DualRxTxSupport-r10 ENUMERATED {true} OPTIONAL -- Cond REG-1XRTT + ]], + [[ sib8-PerPLMN-List-r11 SIB8-PerPLMN-List-r11 OPTIONAL -- Need OR + ]] +} + +CellReselectionParametersCDMA2000 ::= SEQUENCE { + bandClassList BandClassListCDMA2000, + neighCellList NeighCellListCDMA2000, + t-ReselectionCDMA2000 T-Reselection, + t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP +} + +CellReselectionParametersCDMA2000-r11 ::= SEQUENCE { + bandClassList BandClassListCDMA2000, + neighCellList-r11 SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-r11, + t-ReselectionCDMA2000 T-Reselection, + t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP +} + +CellReselectionParametersCDMA2000-v920 ::= SEQUENCE { + neighCellList-v920 NeighCellListCDMA2000-v920 +} + +NeighCellListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000 + +NeighCellCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + neighCellsPerFreqList NeighCellsPerBandclassListCDMA2000 +} + +NeighCellCDMA2000-r11 ::= SEQUENCE { + bandClass BandclassCDMA2000, + neighFreqInfoList-r11 SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-r11 +} + +NeighCellsPerBandclassListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000 + +NeighCellsPerBandclassCDMA2000 ::= SEQUENCE { + arfcn ARFCN-ValueCDMA2000, + physCellIdList PhysCellIdListCDMA2000 +} + +NeighCellsPerBandclassCDMA2000-r11 ::= SEQUENCE { + arfcn ARFCN-ValueCDMA2000, + physCellIdList-r11 SEQUENCE (SIZE (1..40)) OF PhysCellIdCDMA2000 +} + +NeighCellListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-v920 + +NeighCellCDMA2000-v920 ::= SEQUENCE { + neighCellsPerFreqList-v920 NeighCellsPerBandclassListCDMA2000-v920 +} + +NeighCellsPerBandclassListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-v920 + +NeighCellsPerBandclassCDMA2000-v920 ::= SEQUENCE { + physCellIdList-v920 PhysCellIdListCDMA2000-v920 +} + +PhysCellIdListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdCDMA2000 + +PhysCellIdListCDMA2000-v920 ::= SEQUENCE (SIZE (0..24)) OF PhysCellIdCDMA2000 + +BandClassListCDMA2000 ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassInfoCDMA2000 + +BandClassInfoCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High INTEGER (0..63), + threshX-Low INTEGER (0..63), + ... +} + +AC-BarringConfig1XRTT-r9 ::= SEQUENCE { + ac-Barring0to9-r9 INTEGER (0..63), + ac-Barring10-r9 INTEGER (0..7), + ac-Barring11-r9 INTEGER (0..7), + ac-Barring12-r9 INTEGER (0..7), + ac-Barring13-r9 INTEGER (0..7), + ac-Barring14-r9 INTEGER (0..7), + ac-Barring15-r9 INTEGER (0..7), + ac-BarringMsg-r9 INTEGER (0..7), + ac-BarringReg-r9 INTEGER (0..7), + ac-BarringEmg-r9 INTEGER (0..7) +} + +SIB8-PerPLMN-List-r11 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF SIB8-PerPLMN-r11 + +SIB8-PerPLMN-r11 ::= SEQUENCE { + plmn-Identity-r11 INTEGER (1..maxPLMN-r11), + parametersCDMA2000-r11 CHOICE { + explicitValue ParametersCDMA2000-r11, + defaultValue NULL + } +} + +ParametersCDMA2000-r11 ::= SEQUENCE { + systemTimeInfo-r11 CHOICE { + explicitValue SystemTimeInfoCDMA2000, + defaultValue NULL + } OPTIONAL, -- Need OR + searchWindowSize-r11 INTEGER (0..15), + parametersHRPD-r11 SEQUENCE { + preRegistrationInfoHRPD-r11 PreRegistrationInfoHRPD, + cellReselectionParametersHRPD-r11 CellReselectionParametersCDMA2000-r11 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + parameters1XRTT-r11 SEQUENCE { + csfb-RegistrationParam1XRTT-r11 CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP + csfb-RegistrationParam1XRTT-Ext-r11 CSFB-RegistrationParam1XRTT-v920 OPTIONAL, -- Cond REG-1XRTT-PerPLMN + longCodeState1XRTT-r11 BIT STRING (SIZE (42)) OPTIONAL, -- Cond PerPLMN-LC + cellReselectionParameters1XRTT-r11 CellReselectionParametersCDMA2000-r11 OPTIONAL, -- Need OR + ac-BarringConfig1XRTT-r11 AC-BarringConfig1XRTT-r9 OPTIONAL, -- Cond REG-1XRTT-PerPLMN + csfb-SupportForDualRxUEs-r11 BOOLEAN OPTIONAL, -- Need OR + csfb-DualRxTxSupport-r11 ENUMERATED {true} OPTIONAL -- Cond REG-1XRTT-PerPLMN + } OPTIONAL, -- Need OR + ... +} + + +SystemInformationBlockType9 ::= SEQUENCE { + hnb-Name OCTET STRING (SIZE(1..48)) OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType10 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningType OCTET STRING (SIZE (2)), + dummy OCTET STRING (SIZE (50)) OPTIONAL, -- Need OP + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType11 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningMessageSegmentType ENUMERATED {notLastSegment, lastSegment}, + warningMessageSegmentNumber INTEGER (0..63), + warningMessageSegment OCTET STRING, + dataCodingScheme OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType12-r9 ::= SEQUENCE { + messageIdentifier-r9 BIT STRING (SIZE (16)), + serialNumber-r9 BIT STRING (SIZE (16)), + warningMessageSegmentType-r9 ENUMERATED {notLastSegment, lastSegment}, + warningMessageSegmentNumber-r9 INTEGER (0..63), + warningMessageSegment-r9 OCTET STRING, + dataCodingScheme-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +SystemInformationBlockType13-r9 ::= SEQUENCE { + mbsfn-AreaInfoList-r9 MBSFN-AreaInfoList-r9, + notificationConfig-r9 MBMS-NotificationConfig-r9, + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ + notificationConfig-v1430 MBMS-NotificationConfig-v1430 OPTIONAL + ]] +} + + +SystemInformationBlockType14-r11 ::= SEQUENCE { + eab-Param-r11 CHOICE { + eab-Common-r11 EAB-Config-r11, + eab-PerPLMN-List-r11 SEQUENCE (SIZE (1..maxPLMN-r11)) OF EAB-ConfigPLMN-r11 + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +EAB-ConfigPLMN-r11 ::= SEQUENCE { + eab-Config-r11 EAB-Config-r11 OPTIONAL -- Need OR +} + +EAB-Config-r11 ::= SEQUENCE { + eab-Category-r11 ENUMERATED {a, b, c}, + eab-BarringBitmap-r11 BIT STRING (SIZE (10)) +} + + +SystemInformationBlockType15-r11 ::= SEQUENCE { + mbms-SAI-IntraFreq-r11 MBMS-SAI-List-r11 OPTIONAL, -- Need OR + mbms-SAI-InterFreqList-r11 MBMS-SAI-InterFreqList-r11 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ mbms-SAI-InterFreqList-v1140 MBMS-SAI-InterFreqList-v1140 OPTIONAL -- Cond InterFreq + ]], + [[ mbms-IntraFreqCarrierType-r14 MBMS-CarrierType-r14 OPTIONAL, -- Need OR + mbms-InterFreqCarrierTypeList-r14 + MBMS-InterFreqCarrierTypeList-r14 OPTIONAL -- Need OR + ]] +} + +MBMS-SAI-List-r11 ::= SEQUENCE (SIZE (1..maxSAI-MBMS-r11)) OF MBMS-SAI-r11 + +MBMS-SAI-r11 ::= INTEGER (0..65535) + +MBMS-SAI-InterFreqList-r11 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-r11 + +MBMS-SAI-InterFreqList-v1140 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-v1140 + +MBMS-SAI-InterFreq-r11 ::= SEQUENCE { + dl-CarrierFreq-r11 ARFCN-ValueEUTRA-r9, + mbms-SAI-List-r11 MBMS-SAI-List-r11 +} + +MBMS-SAI-InterFreq-v1140 ::= SEQUENCE { + multiBandInfoList-r11 MultiBandInfoList-r11 OPTIONAL -- Need OR +} + +MBMS-InterFreqCarrierTypeList-r14 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-CarrierType-r14 + +MBMS-CarrierType-r14 ::= SEQUENCE { + carrierType-r14 ENUMERATED {mbms, fembmsMixed, fembmsDedicated}, + frameOffset-r14 INTEGER (0..3) OPTIONAL -- Need OR +} + + +SystemInformationBlockType16-r11 ::= SEQUENCE { + timeInfo-r11 SEQUENCE { + timeInfoUTC-r11 INTEGER (0..549755813887), + dayLightSavingTime-r11 BIT STRING (SIZE (2)) OPTIONAL, -- Need OR + leapSeconds-r11 INTEGER (-127..128) OPTIONAL, -- Need OR + localTimeOffset-r11 INTEGER (-63..64) OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +SystemInformationBlockType17-r12 ::= SEQUENCE { + wlan-OffloadInfoPerPLMN-List-r12 SEQUENCE (SIZE (1..maxPLMN-r11)) OF + WLAN-OffloadInfoPerPLMN-r12 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +WLAN-OffloadInfoPerPLMN-r12 ::= SEQUENCE { + wlan-OffloadConfigCommon-r12 WLAN-OffloadConfig-r12 OPTIONAL, -- Need OR + wlan-Id-List-r12 WLAN-Id-List-r12 OPTIONAL, -- Need OR + ... +} + +WLAN-Id-List-r12 ::= SEQUENCE (SIZE (1..maxWLAN-Id-r12)) OF WLAN-Identifiers-r12 + +WLAN-Identifiers-r12 ::= SEQUENCE { + ssid-r12 OCTET STRING (SIZE (1..32)) OPTIONAL, -- Need OR + bssid-r12 OCTET STRING (SIZE (6)) OPTIONAL, -- Need OR + hessid-r12 OCTET STRING (SIZE (6)) OPTIONAL, -- Need OR + ... +} + + +SystemInformationBlockType18-r12 ::= SEQUENCE { + commConfig-r12 SEQUENCE { + commRxPool-r12 SL-CommRxPoolList-r12, + commTxPoolNormalCommon-r12 SL-CommTxPoolList-r12 OPTIONAL, -- Need OR + commTxPoolExceptional-r12 SL-CommTxPoolList-r12 OPTIONAL, -- Need OR + commSyncConfig-r12 SL-SyncConfigList-r12 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ commTxPoolNormalCommonExt-r13 SL-CommTxPoolListExt-r13 OPTIONAL, -- Need OR + commTxResourceUC-ReqAllowed-r13 ENUMERATED {true} OPTIONAL, -- Need OR + commTxAllowRelayCommon-r13 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + + +SystemInformationBlockType19-r12 ::= SEQUENCE { + discConfig-r12 SEQUENCE { + discRxPool-r12 SL-DiscRxPoolList-r12, + discTxPoolCommon-r12 SL-DiscTxPoolList-r12 OPTIONAL, -- Need OR + discTxPowerInfo-r12 SL-DiscTxPowerInfoList-r12 OPTIONAL, -- Cond Tx + discSyncConfig-r12 SL-SyncConfigList-r12 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + discInterFreqList-r12 SL-CarrierFreqInfoList-r12 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ discConfig-v1310 SEQUENCE { + discInterFreqList-v1310 SL-CarrierFreqInfoList-v1310 OPTIONAL, -- Need OR + gapRequestsAllowedCommon ENUMERATED {true} OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + discConfigRelay-r13 SEQUENCE { + relayUE-Config-r13 SL-DiscConfigRelayUE-r13, + remoteUE-Config-r13 SL-DiscConfigRemoteUE-r13 + } OPTIONAL, -- Need OR + discConfigPS-13 SEQUENCE { + discRxPoolPS-r13 SL-DiscRxPoolList-r12, + discTxPoolPS-Common-r13 SL-DiscTxPoolList-r12 OPTIONAL -- Need OR + } OPTIONAL -- Need OR + ]] +} + +SL-CarrierFreqInfoList-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-CarrierFreqInfo-r12 + +SL-CarrierFreqInfoList-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-CarrierFreqInfo-v1310 + +SL-CarrierFreqInfo-r12::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + plmn-IdentityList-r12 PLMN-IdentityList4-r12 OPTIONAL -- Need OP +} + +SL-DiscConfigRelayUE-r13 ::= SEQUENCE { + threshHigh-r13 RSRP-RangeSL4-r13 OPTIONAL, -- Need OR + threshLow-r13 RSRP-RangeSL4-r13 OPTIONAL, -- Need OR + hystMax-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf} OPTIONAL, -- Cond ThreshHigh + hystMin-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12} OPTIONAL -- Cond ThreshLow +} + +SL-DiscConfigRemoteUE-r13 ::= SEQUENCE { + threshHigh-r13 RSRP-RangeSL4-r13 OPTIONAL, -- Need OR + hystMax-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12} OPTIONAL, -- Cond ThreshHigh + reselectionInfoIC-r13 ReselectionInfoRelay-r13 +} + +ReselectionInfoRelay-r13 ::= SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + -- Note that the mapping of invidual values may be different for PC5, but the granularity/ + -- number of values is same as for Uu + filterCoefficient-r13 FilterCoefficient, + minHyst-r13 ENUMERATED {dB0, dB3, + dB6, dB9, dB12, dBinf} OPTIONAL -- Need OR +} + +SL-CarrierFreqInfo-v1310::= SEQUENCE { + discResourcesNonPS-r13 SL-ResourcesInterFreq-r13 OPTIONAL, -- Need OR + discResourcesPS-r13 SL-ResourcesInterFreq-r13 OPTIONAL, -- Need OR + discConfigOther-r13 SL-DiscConfigOtherInterFreq-r13 OPTIONAL, -- Need OR + ... +} + +PLMN-IdentityList4-r12 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo2-r12 + +PLMN-IdentityInfo2-r12 ::= CHOICE { + plmn-Index-r12 INTEGER (1..maxPLMN-r11), + plmnIdentity-r12 PLMN-Identity +} + +SL-DiscTxResourcesInterFreq-r13 ::= CHOICE { + acquireSI-FromCarrier-r13 NULL, + discTxPoolCommon-r13 SL-DiscTxPoolList-r12, + requestDedicated-r13 NULL, + noTxOnCarrier-r13 NULL +} + +SL-DiscConfigOtherInterFreq-r13::= SEQUENCE { + txPowerInfo-r13 SL-DiscTxPowerInfoList-r12 OPTIONAL, -- Cond Tx + refCarrierCommon-r13 ENUMERATED {pCell} OPTIONAL, -- Need OR + discSyncConfig-r13 SL-SyncConfigListNFreq-r13 OPTIONAL, -- Need OR + discCellSelectionInfo-r13 CellSelectionInfoNFreq-r13 OPTIONAL -- Need OR +} + +SL-ResourcesInterFreq-r13 ::= SEQUENCE { + discRxResourcesInterFreq-r13 SL-DiscRxPoolList-r12 OPTIONAL, -- Need OR + discTxResourcesInterFreq-r13 SL-DiscTxResourcesInterFreq-r13 OPTIONAL -- Need OR +} + + +SystemInformationBlockType20-r13 ::= SEQUENCE { + sc-mcch-RepetitionPeriod-r13 ENUMERATED {rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256}, + sc-mcch-Offset-r13 INTEGER (0..10), + sc-mcch-FirstSubframe-r13 INTEGER (0..9), + sc-mcch-duration-r13 INTEGER (2..9) OPTIONAL, + sc-mcch-ModificationPeriod-r13 ENUMERATED {rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256, + rf512, rf1024, r2048, rf4096, rf8192, rf16384, rf32768, rf65536}, + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ br-BCCH-Config-r14 SEQUENCE { + sc-mcch-RepetitionPeriod-v1430 ENUMERATED {rf1}, + sc-mcch-ModificationPeriod-v1430 ENUMERATED {rf1}, + mpdcch-Narrowband-SC-MCCH-r14 INTEGER (1..maxAvailNarrowBands-r13), + mpdcch-NumRepetition-SC-MCCH-r14 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + mpdcch-StartSF-SC-MCCH-r14 CHOICE { + fdd-r14 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, + v5, v8, v10}, + tdd-r14 ENUMERATED {v1, v2, v4, v5, v8, v10, v20} + }, + mpdcch-PDSCH-HoppingConfig-SC-MCCH-r14 ENUMERATED {off, ce-ModeA, ce-ModeB}, + sc-mcch-CarrierFreq-r14 ARFCN-ValueEUTRA-r9, + sc-mcch-Offset-BR-r14 INTEGER (0..10), + sc-mcch-RepetitionPeriod-BR-r14 ENUMERATED {rf32, rf128, rf512, rf1024, + rf2048, rf4096, rf8192, rf16384}, + sc-mcch-ModificationPeriod-BR-r14 ENUMERATED { rf32, rf128, rf256, rf512, rf1024, + rf2048, rf4096, rf8192, rf16384, rf32768, + rf65536, rf131072, rf262144, rf524288, + rf1048576} + } OPTIONAL, -- Need OR + sc-mcch-SchedulingInfo-r14 SC-MCCH-SchedulingInfo-r14 OPTIONAL, -- Need OP + pdsch-maxNumRepetitionCEmodeA-SC-MTCH-r14 + ENUMERATED { r16, r32 } OPTIONAL, -- Need OR + pdsch-maxNumRepetitionCEmodeB-SC-MTCH-r14 + ENUMERATED { + r192, r256, r384, r512, r768, r1024, + r1536, r2048} OPTIONAL -- Need OR + ]] +} + +SC-MCCH-SchedulingInfo-r14::= SEQUENCE { + onDurationTimerSCPTM-r14 ENUMERATED {psf10, psf20, psf100, psf300, + psf500, psf1000, psf1200, psf1600}, + drx-InactivityTimerSCPTM-r14 ENUMERATED {psf0, psf1, psf2, psf4, psf8, psf16, + psf32, psf64, psf128, psf256, ps512, + psf1024, psf2048, psf4096, psf8192, psf16384}, + schedulingPeriodStartOffsetSCPTM-r14 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2047), + sf4096 INTEGER(0..4095), + sf8192 INTEGER(0..8191) + }, + ... +} + + +SystemInformationBlockType21-r14 ::= SEQUENCE { + sl-V2X-ConfigCommon-r14 SL-V2X-ConfigCommon-r14 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +SL-V2X-ConfigCommon-r14 ::= SEQUENCE { + v2x-CommRxPool-r14 SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolNormalCommon-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + p2x-CommTxPoolNormalCommon-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolExceptional-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-SyncConfig-r14 SL-SyncConfigListV2X-r14 OPTIONAL, -- Need OR + v2x-InterFreqInfoList-r14 SL-InterFreqInfoListV2X-r14 OPTIONAL, -- Need OR + v2x-ResourceSelectionConfig-r14 SL-CommTxPoolSensingConfig-r14 OPTIONAL, -- Need OR + zoneConfig-r14 SL-ZoneConfig-r14 OPTIONAL, -- Need OR + typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR + thresSL-TxPrioritization-r14 SL-Priority-r13 OPTIONAL, -- Need OR + anchorCarrierFreqList-r14 SL-AnchorCarrierFreqList-V2X-r14 OPTIONAL, -- Need OR + offsetDFN-r14 INTEGER (0..1000) OPTIONAL, -- Need OR + cbr-CommonTxConfigList-r14 SL-CBR-CommonTxConfigList-r14 OPTIONAL -- Need OR +} + + + +AntennaInfoCommon ::= SEQUENCE { + antennaPortsCount ENUMERATED {an1, an2, an4, spare1} +} + +AntennaInfoDedicated ::= SEQUENCE { + transmissionMode ENUMERATED { + tm1, tm2, tm3, tm4, tm5, tm6, + tm7, tm8-v920}, + codebookSubsetRestriction CHOICE { + n2TxAntenna-tm3 BIT STRING (SIZE (2)), + n4TxAntenna-tm3 BIT STRING (SIZE (4)), + n2TxAntenna-tm4 BIT STRING (SIZE (6)), + n4TxAntenna-tm4 BIT STRING (SIZE (64)), + n2TxAntenna-tm5 BIT STRING (SIZE (4)), + n4TxAntenna-tm5 BIT STRING (SIZE (16)), + n2TxAntenna-tm6 BIT STRING (SIZE (4)), + n4TxAntenna-tm6 BIT STRING (SIZE (16)) + } OPTIONAL, -- Cond TM + ue-TransmitAntennaSelection CHOICE{ + release NULL, + setup ENUMERATED {closedLoop, openLoop} + } +} + +AntennaInfoDedicated-v920 ::= SEQUENCE { + codebookSubsetRestriction-v920 CHOICE { + n2TxAntenna-tm8-r9 BIT STRING (SIZE (6)), + n4TxAntenna-tm8-r9 BIT STRING (SIZE (32)) + } OPTIONAL -- Cond TM8 +} + +AntennaInfoDedicated-r10 ::= SEQUENCE { + transmissionMode-r10 ENUMERATED { + tm1, tm2, tm3, tm4, tm5, tm6, tm7, tm8-v920, + tm9-v1020, tm10-v1130, spare6, spare5, spare4, + spare3, spare2, spare1}, + codebookSubsetRestriction-r10 BIT STRING OPTIONAL, -- Cond TMX + ue-TransmitAntennaSelection CHOICE{ + release NULL, + setup ENUMERATED {closedLoop, openLoop} + } +} + +AntennaInfoDedicated-v10i0::= SEQUENCE { + maxLayersMIMO-r10 ENUMERATED {twoLayers, fourLayers, eightLayers} OPTIONAL -- Need OR +} + +AntennaInfoDedicated-v1250 ::= SEQUENCE { + alternativeCodebookEnabledFor4TX-r12 BOOLEAN +} + +AntennaInfoDedicated-v1430 ::= SEQUENCE { + ce-UE-TxAntennaSelection-config-r14 ENUMERATED {on} OPTIONAL -- Need OR +} + + +AntennaInfoUL-r10 ::= SEQUENCE { + transmissionModeUL-r10 ENUMERATED {tm1, tm2, spare6, spare5, + spare4, spare3, spare2, spare1} OPTIONAL, -- Need OR + fourAntennaPortActivated-r10 ENUMERATED {setup} OPTIONAL -- Need OR +} + + +CQI-ReportConfig ::= SEQUENCE { + cqi-ReportModeAperiodic CQI-ReportModeAperiodic OPTIONAL, -- Need OR + nomPDSCH-RS-EPRE-Offset INTEGER (-1..6), + cqi-ReportPeriodic CQI-ReportPeriodic OPTIONAL -- Need ON +} + +CQI-ReportConfig-v920 ::= SEQUENCE { + cqi-Mask-r9 ENUMERATED {setup} OPTIONAL, -- Cond cqi-Setup + pmi-RI-Report-r9 ENUMERATED {setup} OPTIONAL -- Cond PMIRI +} + +CQI-ReportConfig-r10 ::= SEQUENCE { + cqi-ReportAperiodic-r10 CQI-ReportAperiodic-r10 OPTIONAL, -- Need ON + nomPDSCH-RS-EPRE-Offset INTEGER (-1..6), + cqi-ReportPeriodic-r10 CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON + pmi-RI-Report-r9 ENUMERATED {setup} OPTIONAL, -- Cond PMIRIPCell + csi-SubframePatternConfig-r10 CHOICE { + release NULL, + setup SEQUENCE { + csi-MeasSubframeSet1-r10 MeasSubframePattern-r10, + csi-MeasSubframeSet2-r10 MeasSubframePattern-r10 + } + } OPTIONAL -- Need ON +} + +CQI-ReportConfig-v1130 ::= SEQUENCE { + cqi-ReportPeriodic-v1130 CQI-ReportPeriodic-v1130, + cqi-ReportBoth-r11 CQI-ReportBoth-r11 +} + +CQI-ReportConfig-v1250 ::= SEQUENCE { + csi-SubframePatternConfig-r12 CHOICE { + release NULL, + setup SEQUENCE { + csi-MeasSubframeSets-r12 BIT STRING (SIZE (10)) + } + } OPTIONAL, -- Need ON + cqi-ReportBoth-v1250 CQI-ReportBoth-v1250 OPTIONAL, -- Need ON + cqi-ReportAperiodic-v1250 CQI-ReportAperiodic-v1250 OPTIONAL, -- Need ON + altCQI-Table-r12 ENUMERATED { + allSubframes, csi-SubframeSet1, + csi-SubframeSet2, spare1} OPTIONAL -- Need OP +} + +CQI-ReportConfig-v1310 ::= SEQUENCE { + cqi-ReportBoth-v1310 CQI-ReportBoth-v1310 OPTIONAL, -- Need ON + cqi-ReportAperiodic-v1310 CQI-ReportAperiodic-v1310 OPTIONAL, -- Need ON + cqi-ReportPeriodic-v1310 CQI-ReportPeriodic-v1310 OPTIONAL -- Need ON +} + +CQI-ReportConfig-v1320 ::= SEQUENCE { + cqi-ReportPeriodic-v1320 CQI-ReportPeriodic-v1320 OPTIONAL -- Need ON +} + +CQI-ReportConfig-v1430 ::= SEQUENCE { + cqi-ReportAperiodicHybrid-r14 CQI-ReportAperiodicHybrid-r14 OPTIONAL -- Need ON +} + +CQI-ReportConfigSCell-r10 ::= SEQUENCE { + cqi-ReportModeAperiodic-r10 CQI-ReportModeAperiodic OPTIONAL, -- Need OR + nomPDSCH-RS-EPRE-Offset-r10 INTEGER (-1..6), + cqi-ReportPeriodicSCell-r10 CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON + pmi-RI-Report-r10 ENUMERATED {setup} OPTIONAL -- Cond PMIRISCell +} + +CQI-ReportPeriodic ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-PUCCH-ResourceIndex INTEGER (0..1185), + cqi-pmi-ConfigIndex INTEGER (0..1023), + cqi-FormatIndicatorPeriodic CHOICE { + widebandCQI NULL, + subbandCQI SEQUENCE { + k INTEGER (1..4) + } + }, + ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR + simultaneousAckNackAndCQI BOOLEAN + } +} + +CQI-ReportPeriodic-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-PUCCH-ResourceIndex-r10 INTEGER (0..1184), + cqi-PUCCH-ResourceIndexP1-r10 INTEGER (0..1184) OPTIONAL, -- Need OR + cqi-pmi-ConfigIndex INTEGER (0..1023), + cqi-FormatIndicatorPeriodic-r10 CHOICE { + widebandCQI-r10 SEQUENCE { + csi-ReportMode-r10 ENUMERATED {submode1, submode2} OPTIONAL -- Need OR + }, + subbandCQI-r10 SEQUENCE { + k INTEGER (1..4), + periodicityFactor-r10 ENUMERATED {n2, n4} + } + }, + ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR + simultaneousAckNackAndCQI BOOLEAN, + cqi-Mask-r9 ENUMERATED {setup} OPTIONAL, -- Need OR + csi-ConfigIndex-r10 CHOICE { + release NULL, + setup SEQUENCE { + cqi-pmi-ConfigIndex2-r10 INTEGER (0..1023), + ri-ConfigIndex2-r10 INTEGER (0..1023) OPTIONAL -- Need OR + } + } OPTIONAL -- Need ON + } +} + + +CQI-ReportPeriodic-v1130 ::= SEQUENCE { + simultaneousAckNackAndCQI-Format3-r11 ENUMERATED {setup} OPTIONAL, -- Need OR + cqi-ReportPeriodicProcExtToReleaseList-r11 CQI-ReportPeriodicProcExtToReleaseList-r11 OPTIONAL, -- Need ON + cqi-ReportPeriodicProcExtToAddModList-r11 CQI-ReportPeriodicProcExtToAddModList-r11 OPTIONAL -- Need ON +} + +CQI-ReportPeriodic-v1310 ::= SEQUENCE { + cri-ReportConfig-r13 CRI-ReportConfig-r13 OPTIONAL, -- Need OR + simultaneousAckNackAndCQI-Format4-Format5-r13 ENUMERATED {setup} OPTIONAL-- Need OR +} + +CQI-ReportPeriodic-v1320 ::= SEQUENCE { + periodicityFactorWB-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR +} + +CQI-ReportPeriodicProcExtToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCQI-ProcExt-r11)) OF CQI-ReportPeriodicProcExt-r11 + +CQI-ReportPeriodicProcExtToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCQI-ProcExt-r11)) OF CQI-ReportPeriodicProcExtId-r11 + +CQI-ReportPeriodicProcExt-r11 ::= SEQUENCE { + cqi-ReportPeriodicProcExtId-r11 CQI-ReportPeriodicProcExtId-r11, + cqi-pmi-ConfigIndex-r11 INTEGER (0..1023), + cqi-FormatIndicatorPeriodic-r11 CHOICE { + widebandCQI-r11 SEQUENCE { + csi-ReportMode-r11 ENUMERATED {submode1, submode2} OPTIONAL -- Need OR + }, + subbandCQI-r11 SEQUENCE { + k INTEGER (1..4), + periodicityFactor-r11 ENUMERATED {n2, n4} + } + }, + ri-ConfigIndex-r11 INTEGER (0..1023) OPTIONAL, -- Need OR + csi-ConfigIndex-r11 CHOICE { + release NULL, + setup SEQUENCE { + cqi-pmi-ConfigIndex2-r11 INTEGER (0..1023), + ri-ConfigIndex2-r11 INTEGER (0..1023) OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + ..., + [[ cri-ReportConfig-r13 CRI-ReportConfig-r13 OPTIONAL -- Need ON + ]], + [[ periodicityFactorWB-r13 ENUMERATED {n2, n4} OPTIONAL -- Need ON + ]] +} + +CQI-ReportAperiodic-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-ReportModeAperiodic-r10 CQI-ReportModeAperiodic, + aperiodicCSI-Trigger-r10 SEQUENCE { + trigger1-r10 BIT STRING (SIZE (8)), + trigger2-r10 BIT STRING (SIZE (8)) + } OPTIONAL -- Need OR + } +} + +CQI-ReportAperiodic-v1250 ::= CHOICE { + release NULL, + setup SEQUENCE { + aperiodicCSI-Trigger-v1250 SEQUENCE { + trigger-SubframeSetIndicator-r12 ENUMERATED {s1, s2}, + trigger1-SubframeSetIndicator-r12 BIT STRING (SIZE (8)), + trigger2-SubframeSetIndicator-r12 BIT STRING (SIZE (8)) + } + } +} + +CQI-ReportAperiodic-v1310 ::= CHOICE { + release NULL, + setup SEQUENCE { + aperiodicCSI-Trigger-v1310 SEQUENCE { + trigger1-r13 BIT STRING (SIZE (32)), + trigger2-r13 BIT STRING (SIZE (32)), + trigger3-r13 BIT STRING (SIZE (32)), + trigger4-r13 BIT STRING (SIZE (32)), + trigger5-r13 BIT STRING (SIZE (32)), + trigger6-r13 BIT STRING (SIZE (32)) + } OPTIONAL, -- Need ON + aperiodicCSI-Trigger2-r13 CHOICE { + release NULL, + setup SEQUENCE { + trigger1-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger2-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger3-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger4-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger5-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger6-SubframeSetIndicator-r13 BIT STRING (SIZE (32)) + } + } OPTIONAL -- Need ON + } +} + +CQI-ReportAperiodicProc-r11 ::= SEQUENCE { + cqi-ReportModeAperiodic-r11 CQI-ReportModeAperiodic, + trigger01-r11 BOOLEAN, + trigger10-r11 BOOLEAN, + trigger11-r11 BOOLEAN +} + +CQI-ReportAperiodicProc-v1310 ::= SEQUENCE { + trigger001-r13 BOOLEAN, + trigger010-r13 BOOLEAN, + trigger011-r13 BOOLEAN, + trigger100-r13 BOOLEAN, + trigger101-r13 BOOLEAN, + trigger110-r13 BOOLEAN, + trigger111-r13 BOOLEAN +} + +CQI-ReportAperiodicHybrid-r14 ::= SEQUENCE { + triggers-r14 CHOICE { + oneBit-r14 SEQUENCE { + trigger1-Indicator-r14 BIT STRING (SIZE (8)) + }, + twoBit-r14 SEQUENCE { + trigger01-Indicator-r14 BIT STRING (SIZE (8)), + trigger10-Indicator-r14 BIT STRING (SIZE (8)), + trigger11-Indicator-r14 BIT STRING (SIZE (8)) + }, + threeBit-r14 SEQUENCE { + trigger001-Indicator-r14 BIT STRING (SIZE (32)), + trigger010-Indicator-r14 BIT STRING (SIZE (32)), + trigger011-Indicator-r14 BIT STRING (SIZE (32)), + trigger100-Indicator-r14 BIT STRING (SIZE (32)), + trigger101-Indicator-r14 BIT STRING (SIZE (32)), + trigger110-Indicator-r14 BIT STRING (SIZE (32)), + trigger111-Indicator-r14 BIT STRING (SIZE (32)) + } + } OPTIONAL -- Need OR +} + +CQI-ReportModeAperiodic ::= ENUMERATED { + rm12, rm20, rm22, rm30, rm31, + rm32-v1250, rm10-v1310, rm11-v1310 +} + +CQI-ReportBoth-r11 ::= SEQUENCE { + csi-IM-ConfigToReleaseList-r11 CSI-IM-ConfigToReleaseList-r11 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModList-r11 CSI-IM-ConfigToAddModList-r11 OPTIONAL, -- Need ON + csi-ProcessToReleaseList-r11 CSI-ProcessToReleaseList-r11 OPTIONAL, -- Need ON + csi-ProcessToAddModList-r11 CSI-ProcessToAddModList-r11 OPTIONAL -- Need ON +} + +CQI-ReportBoth-v1250 ::= SEQUENCE { + csi-IM-ConfigToReleaseListExt-r12 CSI-IM-ConfigId-v1250 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModListExt-r12 CSI-IM-ConfigExt-r12 OPTIONAL -- Need ON +} + +CQI-ReportBoth-v1310 ::= SEQUENCE { + csi-IM-ConfigToReleaseListExt-r13 CSI-IM-ConfigToReleaseListExt-r13 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModListExt-r13 CSI-IM-ConfigToAddModListExt-r13 OPTIONAL -- Need ON +} + +CSI-IM-ConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-Config-r11 + +CSI-IM-ConfigToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-IM-v1310)) OF CSI-IM-ConfigExt-r12 + +CSI-IM-ConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-ConfigId-r11 + +CSI-IM-ConfigToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-IM-v1310)) OF CSI-IM-ConfigId-v1310 + +CSI-ProcessToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF CSI-Process-r11 + +CSI-ProcessToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF CSI-ProcessId-r11 + +CQI-ReportBothProc-r11 ::= SEQUENCE { + ri-Ref-CSI-ProcessId-r11 CSI-ProcessId-r11 OPTIONAL, -- Need OR + pmi-RI-Report-r11 ENUMERATED {setup} OPTIONAL -- Need OR +} + +CRI-ReportConfig-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + cri-ConfigIndex-r13 CRI-ConfigIndex-r13, + cri-ConfigIndex2-r13 CRI-ConfigIndex-r13 OPTIONAL -- Need OR + } +} + +CRI-ConfigIndex-r13 ::= INTEGER (0..1023) + + +CQI-ReportPeriodicProcExtId-r11 ::= INTEGER (1..maxCQI-ProcExt-r11) + + +CrossCarrierSchedulingConfig-r10 ::= SEQUENCE { + schedulingCellInfo-r10 CHOICE { + own-r10 SEQUENCE { -- No cross carrier scheduling + cif-Presence-r10 BOOLEAN + }, + other-r10 SEQUENCE { -- Cross carrier scheduling + schedulingCellId-r10 ServCellIndex-r10, + pdsch-Start-r10 INTEGER (1..4) + } + } +} + +CrossCarrierSchedulingConfig-r13 ::= SEQUENCE { + schedulingCellInfo-r13 CHOICE { + own-r13 SEQUENCE { -- No cross carrier scheduling + cif-Presence-r13 BOOLEAN + }, + other-r13 SEQUENCE { -- Cross carrier scheduling + schedulingCellId-r13 ServCellIndex-r13, + pdsch-Start-r13 INTEGER (1..4), + cif-InSchedulingCell-r13 INTEGER (1..7) + } + } +} + +CrossCarrierSchedulingConfigLAA-UL-r14 ::= SEQUENCE { + schedulingCellId-r14 ServCellIndex-r13, + cif-InSchedulingCell-r14 INTEGER (1..7) +} + +CSI-IM-Config-r11 ::= SEQUENCE { + csi-IM-ConfigId-r11 CSI-IM-ConfigId-r11, + resourceConfig-r11 INTEGER (0..31), + subframeConfig-r11 INTEGER (0..154), + ..., + [[ interferenceMeasRestriction-r13 BOOLEAN OPTIONAL -- Need ON + ]] +} + +CSI-IM-ConfigExt-r12 ::= SEQUENCE { + csi-IM-ConfigId-v1250 CSI-IM-ConfigId-v1250, + resourceConfig-r12 INTEGER (0..31), + subframeConfig-r12 INTEGER (0..154), + ..., + [[ interferenceMeasRestriction-r13 BOOLEAN OPTIONAL, -- Need ON + csi-IM-ConfigId-v1310 CSI-IM-ConfigId-v1310 OPTIONAL -- Need ON + ]] +} + + +CSI-IM-ConfigId-r11 ::= INTEGER (1..maxCSI-IM-r11) +CSI-IM-ConfigId-r12 ::= INTEGER (1..maxCSI-IM-r12) +CSI-IM-ConfigId-v1250 ::= INTEGER (maxCSI-IM-r12) +CSI-IM-ConfigId-v1310 ::= INTEGER (minCSI-IM-r13..maxCSI-IM-r13) +CSI-IM-ConfigId-r13 ::= INTEGER (1..maxCSI-IM-r13) + + +CSI-Process-r11 ::= SEQUENCE { + csi-ProcessId-r11 CSI-ProcessId-r11, + csi-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11, + csi-IM-ConfigId-r11 CSI-IM-ConfigId-r11, + p-C-AndCBSRList-r11 P-C-AndCBSR-Pair-r13a, + cqi-ReportBothProc-r11 CQI-ReportBothProc-r11 OPTIONAL, -- Need OR + cqi-ReportPeriodicProcId-r11 INTEGER (0..maxCQI-ProcExt-r11) OPTIONAL, -- Need OR + cqi-ReportAperiodicProc-r11 CQI-ReportAperiodicProc-r11 OPTIONAL, -- Need OR + ..., + [[ alternativeCodebookEnabledFor4TXProc-r12 ENUMERATED {true} OPTIONAL, -- Need ON + csi-IM-ConfigIdList-r12 CHOICE { + release NULL, + setup SEQUENCE (SIZE (1..2)) OF CSI-IM-ConfigId-r12 + } OPTIONAL, -- Need ON + cqi-ReportAperiodicProc2-r12 CHOICE { + release NULL, + setup CQI-ReportAperiodicProc-r11 + } OPTIONAL -- Need ON + ]], + [[ cqi-ReportAperiodicProc-v1310 CHOICE { + release NULL, + setup CQI-ReportAperiodicProc-v1310 + } OPTIONAL, -- Need ON + cqi-ReportAperiodicProc2-v1310 CHOICE { + release NULL, + setup CQI-ReportAperiodicProc-v1310 + } OPTIONAL, -- Need ON + eMIMO-Type-r13 CSI-RS-ConfigEMIMO-r13 OPTIONAL -- Need ON + ]], + [[ eMIMO-Type-v1430 CSI-RS-ConfigEMIMO-v1430 OPTIONAL, -- Need ON + eMIMO-Hybrid-r14 CSI-RS-ConfigEMIMO-Hybrid-r14 OPTIONAL, -- Need ON + advancedCodebookEnabled-r14 BOOLEAN OPTIONAL -- Need ON + ]] +} + + +CSI-ProcessId-r11 ::= INTEGER (1..maxCSI-Proc-r11) + + +CSI-RS-Config-r10 ::= SEQUENCE { + csi-RS-r10 CHOICE { + release NULL, + setup SEQUENCE { + antennaPortsCount-r10 ENUMERATED {an1, an2, an4, an8}, + resourceConfig-r10 INTEGER (0..31), + subframeConfig-r10 INTEGER (0..154), + p-C-r10 INTEGER (-8..15) + } + } OPTIONAL, -- Need ON + zeroTxPowerCSI-RS-r10 ZeroTxPowerCSI-RS-Conf-r12 OPTIONAL -- Need ON +} + +CSI-RS-Config-v1250 ::= SEQUENCE { + zeroTxPowerCSI-RS2-r12 ZeroTxPowerCSI-RS-Conf-r12 OPTIONAL, -- Need ON + ds-ZeroTxPowerCSI-RS-r12 CHOICE { + release NULL, + setup SEQUENCE { + zeroTxPowerCSI-RS-List-r12 SEQUENCE (SIZE (1..maxDS-ZTP-CSI-RS-r12)) OF ZeroTxPowerCSI-RS-r12 + } + } OPTIONAL -- Need ON +} + +CSI-RS-Config-v1310 ::= SEQUENCE { + eMIMO-Type-r13 CSI-RS-ConfigEMIMO-r13 OPTIONAL -- Need ON +} + +CSI-RS-Config-v1430 ::= SEQUENCE { + eMIMO-Type-v1430 CSI-RS-ConfigEMIMO-v1430 OPTIONAL, -- Need ON + eMIMO-Hybrid-r14 CSI-RS-ConfigEMIMO-Hybrid-r14 OPTIONAL, -- Need ON + advancedCodebookEnabled-r14 BOOLEAN OPTIONAL -- Need ON +} + +ZeroTxPowerCSI-RS-Conf-r12 ::= CHOICE { + release NULL, + setup ZeroTxPowerCSI-RS-r12 +} + +ZeroTxPowerCSI-RS-r12 ::= SEQUENCE { + zeroTxPowerResourceConfigList-r12 BIT STRING (SIZE (16)), + zeroTxPowerSubframeConfig-r12 INTEGER (0..154) +} + + +CSI-RS-ConfigEMIMO-r13 ::= CHOICE { + release NULL, + setup CHOICE { + nonPrecoded-r13 CSI-RS-ConfigNonPrecoded-r13, + beamformed-r13 CSI-RS-ConfigBeamformed-r13 + } +} + +CSI-RS-ConfigEMIMO-v1430 ::= CHOICE { + release NULL, + setup CHOICE { + nonPrecoded-v1430 CSI-RS-ConfigNonPrecoded-v1430, + beamformed-v1430 CSI-RS-ConfigBeamformed-v1430 + } +} + +CSI-RS-ConfigEMIMO2-r14 ::= CHOICE { + release NULL, + setup CSI-RS-ConfigBeamformed-r14 +} + +CSI-RS-ConfigEMIMO-Hybrid-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + periodicityOffsetIndex-r14 INTEGER (0..1023) OPTIONAL, -- Need OR + eMIMO-Type2-r14 CSI-RS-ConfigEMIMO2-r14 OPTIONAL -- Need ON + } +} + +CSI-RS-ConfigNonPrecoded-r13 ::= SEQUENCE { + p-C-AndCBSRList-r13 P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR + codebookConfigN1-r13 ENUMERATED {n1, n2, n3, n4, n8}, + codebookConfigN2-r13 ENUMERATED {n1, n2, n3, n4, n8}, + codebookOverSamplingRateConfig-O1-r13 ENUMERATED {n4, n8} OPTIONAL, -- Need OR + codebookOverSamplingRateConfig-O2-r13 ENUMERATED {n4, n8} OPTIONAL, -- Need OR + codebookConfig-r13 INTEGER (1..4), + csi-IM-ConfigIdList-r13 SEQUENCE (SIZE (1..2)) OF CSI-IM-ConfigId-r13 OPTIONAL, -- Need OR + csi-RS-ConfigNZP-EMIMO-r13 CSI-RS-ConfigNZP-EMIMO-r13 OPTIONAL -- Need ON +} + +CSI-RS-ConfigNonPrecoded-v1430::= SEQUENCE { + csi-RS-ConfigNZP-EMIMO-v1430 CSI-RS-ConfigNZP-EMIMO-v1430 OPTIONAL, -- Need ON + codebookConfigN1-v1430 ENUMERATED {n5, n6, n7, n10, n12, n14, n16}, + codebookConfigN2-r1430 ENUMERATED {n5, n6, n7 }, + nzp-ResourceConfigTM9-Original-v1430 CSI-RS-Config-NZP-v1430 +} + +CSI-RS-ConfigBeamformed-r13 ::= SEQUENCE { + csi-RS-ConfigNZPIdListExt-r13 SEQUENCE (SIZE (1..7)) OF CSI-RS-ConfigNZPId-r13 OPTIONAL, -- Need OR + csi-IM-ConfigIdList-r13 SEQUENCE (SIZE (1..8)) OF CSI-IM-ConfigId-r13 OPTIONAL, -- Need OR + p-C-AndCBSR-PerResourceConfigList-r13 SEQUENCE (SIZE (1..8)) OF P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR + ace-For4Tx-PerResourceConfigList-r13 SEQUENCE (SIZE (1..7)) OF BOOLEAN OPTIONAL, -- Need OR + alternativeCodebookEnabledBeamformed-r13 ENUMERATED {true} OPTIONAL, -- Need OR + channelMeasRestriction-r13 ENUMERATED {on} OPTIONAL -- Need OR +} + +CSI-RS-ConfigBeamformed-r14 ::= SEQUENCE { + csi-RS-ConfigNZPIdListExt-r14 SEQUENCE (SIZE (1..7)) OF CSI-RS-ConfigNZPId-r13 OPTIONAL, -- Need OR + csi-IM-ConfigIdList-r14 SEQUENCE (SIZE (1..8)) OF CSI-IM-ConfigId-r13 OPTIONAL, -- Need OR + p-C-AndCBSR-PerResourceConfigList-r14 SEQUENCE (SIZE (1..8)) OF P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR + ace-For4Tx-PerResourceConfigList-r14 SEQUENCE (SIZE (1..7)) OF BOOLEAN OPTIONAL, -- Need OR + alternativeCodebookEnabledBeamformed-r14 ENUMERATED {true} OPTIONAL, -- Need OR + channelMeasRestriction-r14 ENUMERATED {on} OPTIONAL, -- Need OR + csi-RS-ConfigNZP-ApList-r14 SEQUENCE (SIZE (1..8)) OF CSI-RS-ConfigNZP-r11 + OPTIONAL, -- Need OR + nzp-ResourceConfigOriginal-v1430 CSI-RS-Config-NZP-v1430 OPTIONAL, -- Need OR + csi-RS-NZP-Activation-r14 CSI-RS-ConfigNZP-Activation-r14 OPTIONAL -- Need OR +} + +CSI-RS-ConfigBeamformed-v1430::= SEQUENCE { + csi-RS-ConfigNZP-ApList-r14 SEQUENCE (SIZE (1..8)) OF CSI-RS-ConfigNZP-r11 + OPTIONAL, -- Need OR + nzp-ResourceConfigOriginal-v1430 CSI-RS-Config-NZP-v1430 OPTIONAL, -- Need OR + csi-RS-NZP-Activation-r14 CSI-RS-ConfigNZP-Activation-r14 OPTIONAL -- Need OR +} + +CSI-RS-Config-NZP-v1430::= SEQUENCE { + transmissionComb-r14 NZP-TransmissionComb-r14 OPTIONAL, -- Need OR + frequencyDensity-r14 NZP-FrequencyDensity-r14 OPTIONAL -- Need OR +} + +CSI-RS-ConfigNZP-Activation-r14::= SEQUENCE { + csi-RS-NZP-mode-r14 ENUMERATED {semiPersistent, aperiodic}, + activatedResources-r14 INTEGER (0..4) +} + + +CSI-RS-ConfigNZP-r11 ::= SEQUENCE { + csi-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11, + antennaPortsCount-r11 ENUMERATED {an1, an2, an4, an8}, + resourceConfig-r11 INTEGER (0..31), + subframeConfig-r11 INTEGER (0..154), + scramblingIdentity-r11 INTEGER (0..503), + qcl-CRS-Info-r11 SEQUENCE { + qcl-ScramblingIdentity-r11 INTEGER (0..503), + crs-PortsCount-r11 ENUMERATED {n1, n2, n4, spare1}, + mbsfn-SubframeConfigList-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList MBSFN-SubframeConfigList + } + } OPTIONAL -- Need ON + } OPTIONAL, -- Need OR + ..., + [[ csi-RS-ConfigNZPId-v1310 CSI-RS-ConfigNZPId-v1310 OPTIONAL -- Need ON + ]], + [[ transmissionComb-r14 NZP-TransmissionComb-r14 OPTIONAL, -- Need OR + frequencyDensity-r14 NZP-FrequencyDensity-r14 OPTIONAL -- Need OR + ]], + [[ mbsfn-SubframeConfigList-v1430 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 + } + } OPTIONAL -- Need OP + ]] +} + +CSI-RS-ConfigNZP-EMIMO-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + nzp-resourceConfigList-r13 SEQUENCE (SIZE (1..2)) OF NZP-ResourceConfig-r13, + cdmType-r13 ENUMERATED {cdm2, cdm4} OPTIONAL -- Need OR + } +} + +CSI-RS-ConfigNZP-EMIMO-v1430 ::= SEQUENCE { + -- All extensions are for Non-Precoded so could be grouped by setup/ release choice + nzp-resourceConfigListExt-r14 SEQUENCE (SIZE (0..4)) OF NZP-ResourceConfig-r13, + cdmType-v1430 ENUMERATED {cdm8 } OPTIONAL -- Need OR +} + +NZP-ResourceConfig-r13 ::= SEQUENCE { + resourceConfig-r13 ResourceConfig-r13, + ..., + [[ transmissionComb-r14 NZP-TransmissionComb-r14 OPTIONAL, -- Need OR + frequencyDensity-r14 NZP-FrequencyDensity-r14 OPTIONAL -- Need OR + ]] +} + +ResourceConfig-r13 ::= INTEGER (0..31) + +NZP-TransmissionComb-r14 ::= INTEGER (0..2) +NZP-FrequencyDensity-r14 ::= ENUMERATED {d1, d2, d3} + + +CSI-RS-ConfigNZPId-r11 ::= INTEGER (1..maxCSI-RS-NZP-r11) +CSI-RS-ConfigNZPId-v1310 ::= INTEGER (minCSI-RS-NZP-r13..maxCSI-RS-NZP-r13) +CSI-RS-ConfigNZPId-r13 ::= INTEGER (1..maxCSI-RS-NZP-r13) + + +CSI-RS-ConfigZP-r11 ::= SEQUENCE { + csi-RS-ConfigZPId-r11 CSI-RS-ConfigZPId-r11, + resourceConfigList-r11 BIT STRING (SIZE (16)), + subframeConfig-r11 INTEGER (0..154), + ... +} + +CSI-RS-ConfigZP-ApList-r14 ::= CHOICE { + release NULL, + setup SEQUENCE (SIZE (1.. maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZP-r11 +} + + +CSI-RS-ConfigZPId-r11 ::= INTEGER (1..maxCSI-RS-ZP-r11) + + +DataInactivityTimer-r14 ::= ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, s40, s50, s60, + s80, s100, s120, s150, s180} + + +DMRS-Config-r11 ::= CHOICE { + release NULL, + setup SEQUENCE { + scramblingIdentity-r11 INTEGER (0..503), + scramblingIdentity2-r11 INTEGER (0..503) + } +} +DMRS-Config-v1310 ::= SEQUENCE { + dmrs-tableAlt-r13 ENUMERATED {true} OPTIONAL -- Need OR +} + + +DRB-Identity ::= INTEGER (1..32) + + +EPDCCH-Config-r11 ::= SEQUENCE{ + config-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframePatternConfig-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframePattern-r11 MeasSubframePattern-r10 + } + } OPTIONAL, -- Need ON + startSymbol-r11 INTEGER (1..4) OPTIONAL, -- Need OP + setConfigToReleaseList-r11 EPDCCH-SetConfigToReleaseList-r11 OPTIONAL, -- Need ON + setConfigToAddModList-r11 EPDCCH-SetConfigToAddModList-r11 OPTIONAL -- Need ON + } + } +} + +EPDCCH-SetConfigToAddModList-r11 ::= SEQUENCE (SIZE(1..maxEPDCCH-Set-r11)) OF EPDCCH-SetConfig-r11 + +EPDCCH-SetConfigToReleaseList-r11 ::= SEQUENCE (SIZE(1..maxEPDCCH-Set-r11)) OF EPDCCH-SetConfigId-r11 + +EPDCCH-SetConfig-r11 ::= SEQUENCE { + setConfigId-r11 EPDCCH-SetConfigId-r11, + transmissionType-r11 ENUMERATED {localised, distributed}, + resourceBlockAssignment-r11 SEQUENCE{ + numberPRB-Pairs-r11 ENUMERATED {n2, n4, n8}, + resourceBlockAssignment-r11 BIT STRING (SIZE(4..38)) + }, + dmrs-ScramblingSequenceInt-r11 INTEGER (0..503), + pucch-ResourceStartOffset-r11 INTEGER (0..2047), + re-MappingQCL-ConfigId-r11 PDSCH-RE-MappingQCL-ConfigId-r11 OPTIONAL, -- Need OR + ..., + [[ csi-RS-ConfigZPId2-r12 CHOICE { + release NULL, + setup CSI-RS-ConfigZPId-r11 + } OPTIONAL -- Need ON + ]], + [[ numberPRB-Pairs-v1310 CHOICE { + release NULL, + setup ENUMERATED {n6} + } OPTIONAL, -- Need ON + mpdcch-config-r13 CHOICE { + release NULL, + setup SEQUENCE { + csi-NumRepetitionCE-r13 ENUMERATED {sf1, sf2, sf4, sf8, sf16, sf32}, + mpdcch-pdsch-HoppingConfig-r13 ENUMERATED {on,off}, + mpdcch-StartSF-UESS-r13 CHOICE { + fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, + v5, v8, v10}, tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10, + v20, spare1} + }, + mpdcch-NumRepetition-r13 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + mpdcch-Narrowband-r13 INTEGER (1.. maxAvailNarrowBands-r13) + } + } OPTIONAL -- Need ON + ]] +} + +EPDCCH-SetConfigId-r11 ::= INTEGER (0..1) + + +EIMTA-MainConfig-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + eimta-RNTI-r12 C-RNTI, + eimta-CommandPeriodicity-r12 ENUMERATED {sf10, sf20, sf40, sf80}, + eimta-CommandSubframeSet-r12 BIT STRING (SIZE(10)) + } +} + +EIMTA-MainConfigServCell-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + eimta-UL-DL-ConfigIndex-r12 INTEGER (1..5), + eimta-HARQ-ReferenceConfig-r12 ENUMERATED {sa2, sa4, sa5}, + mbsfn-SubframeConfigList-v1250 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList-r12 MBSFN-SubframeConfigList + } + } + } +} + + +LogicalChannelConfig ::= SEQUENCE { + ul-SpecificParameters SEQUENCE { + priority INTEGER (1..16), + prioritisedBitRate ENUMERATED { + kBps0, kBps8, kBps16, kBps32, kBps64, kBps128, + kBps256, infinity, kBps512-v1020, kBps1024-v1020, + kBps2048-v1020, spare5, spare4, spare3, spare2, + spare1}, + bucketSizeDuration ENUMERATED { + ms50, ms100, ms150, ms300, ms500, ms1000, spare2, + spare1}, + logicalChannelGroup INTEGER (0..3) OPTIONAL -- Need OR + } OPTIONAL, -- Cond UL + ..., + [[ logicalChannelSR-Mask-r9 ENUMERATED {setup} OPTIONAL -- Cond SRmask + ]], + [[ logicalChannelSR-Prohibit-r12 BOOLEAN OPTIONAL -- Need ON + ]], + [[ laa-UL-Allowed-r14 BOOLEAN OPTIONAL, -- Need ON + bitRateQueryProhibitTimer-r14 ENUMERATED { + s0, s0dot4, s0dot8, s1dot6, s3, s6, s12, + s30} OPTIONAL --Need OR + ]] +} + + +LWA-Configuration-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + lwa-Config-r13 LWA-Config-r13 + } +} + +LWA-Config-r13 ::= SEQUENCE { + lwa-MobilityConfig-r13 WLAN-MobilityConfig-r13 OPTIONAL, -- Need ON + lwa-WT-Counter-r13 INTEGER (0..65535) OPTIONAL, -- Need ON + ..., + [[ wt-MAC-Address-r14 OCTET STRING (SIZE (6)) OPTIONAL -- Need ON + ]] +} + + +LWIP-Configuration-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + lwip-Config-r13 LWIP-Config-r13 + } +} + +LWIP-Config-r13 ::= SEQUENCE { + lwip-MobilityConfig-r13 WLAN-MobilityConfig-r13 OPTIONAL, -- Need ON + tunnelConfigLWIP-r13 TunnelConfigLWIP-r13 OPTIONAL, -- Need ON + ... +} + + +MAC-MainConfig ::= SEQUENCE { + ul-SCH-Config SEQUENCE { + maxHARQ-Tx ENUMERATED { + n1, n2, n3, n4, n5, n6, n7, n8, + n10, n12, n16, n20, n24, n28, + spare2, spare1} OPTIONAL, -- Need ON + periodicBSR-Timer PeriodicBSR-Timer-r12 OPTIONAL, -- Need ON + retxBSR-Timer RetxBSR-Timer-r12, + ttiBundling BOOLEAN + } OPTIONAL, -- Need ON + drx-Config DRX-Config OPTIONAL, -- Need ON + timeAlignmentTimerDedicated TimeAlignmentTimer, + phr-Config CHOICE { + release NULL, + setup SEQUENCE { + periodicPHR-Timer ENUMERATED {sf10, sf20, sf50, sf100, sf200, + sf500, sf1000, infinity}, + prohibitPHR-Timer ENUMERATED {sf0, sf10, sf20, sf50, sf100, + sf200, sf500, sf1000}, + dl-PathlossChange ENUMERATED {dB1, dB3, dB6, infinity} + } + } OPTIONAL, -- Need ON + ..., + [[ sr-ProhibitTimer-r9 INTEGER (0..7) OPTIONAL -- Need ON + ]], + [[ mac-MainConfig-v1020 SEQUENCE { + sCellDeactivationTimer-r10 ENUMERATED { + rf2, rf4, rf8, rf16, rf32, rf64, rf128, + spare} OPTIONAL, -- Need OP + extendedBSR-Sizes-r10 ENUMERATED {setup} OPTIONAL, -- Need OR + extendedPHR-r10 ENUMERATED {setup} OPTIONAL -- Need OR + } OPTIONAL -- Need ON + ]], + [[ stag-ToReleaseList-r11 STAG-ToReleaseList-r11 OPTIONAL, -- Need ON + stag-ToAddModList-r11 STAG-ToAddModList-r11 OPTIONAL, -- Need ON + drx-Config-v1130 DRX-Config-v1130 OPTIONAL -- Need ON + ]], + [[ e-HARQ-Pattern-r12 BOOLEAN OPTIONAL, -- Need ON + dualConnectivityPHR CHOICE { + release NULL, + setup SEQUENCE { + phr-ModeOtherCG-r12 ENUMERATED {real, virtual} + } + } OPTIONAL, -- Need ON + logicalChannelSR-Config-r12 CHOICE { + release NULL, + setup SEQUENCE { + logicalChannelSR-ProhibitTimer-r12 ENUMERATED {sf20, sf40, sf64, sf128, sf512, sf1024, sf2560, spare1} + } + } OPTIONAL -- Need ON + ]], + [[ drx-Config-v1310 DRX-Config-v1310 OPTIONAL, -- Need ON + extendedPHR2-r13 BOOLEAN OPTIONAL, -- Need ON + eDRX-Config-CycleStartOffset-r13 CHOICE { + release NULL, + setup + CHOICE { + sf5120 INTEGER(0..1), + sf10240 INTEGER(0..3) + } + } OPTIONAL -- Need ON + ]], + [[ drx-Config-r13 CHOICE { + release NULL, + setup DRX-Config-r13 + } OPTIONAL -- Need ON + ]], + [[ skipUplinkTx-r14 CHOICE { + release NULL, + setup SEQUENCE { + skipUplinkTxSPS-r14 ENUMERATED {true} OPTIONAL, -- Need OR + skipUplinkTxDynamic-r14 ENUMERATED {true} OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + dataInactivityTimerConfig-r14 CHOICE { + release NULL, + setup SEQUENCE { + dataInactivityTimer-r14 DataInactivityTimer-r14 + } + } OPTIONAL -- Need ON + ]], + [[ rai-Activation-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + +MAC-MainConfigSCell-r11 ::= SEQUENCE { + stag-Id-r11 STAG-Id-r11 OPTIONAL, -- Need OP + ... +} + +DRX-Config ::= CHOICE { + release NULL, + setup SEQUENCE { + onDurationTimer ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200}, + drx-InactivityTimer ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200, psf300, psf500, psf750, + psf1280, psf1920, psf2560, psf0-v1020, + spare9, spare8, spare7, spare6, + spare5, spare4, spare3, spare2, + spare1}, + drx-RetransmissionTimer ENUMERATED { + psf1, psf2, psf4, psf6, psf8, psf16, + psf24, psf33}, + longDRX-CycleStartOffset CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf1280 INTEGER(0..1279), + sf2048 INTEGER(0..2047), + sf2560 INTEGER(0..2559) + }, + shortDRX SEQUENCE { + shortDRX-Cycle ENUMERATED { + sf2, sf5, sf8, sf10, sf16, sf20, + sf32, sf40, sf64, sf80, sf128, sf160, + sf256, sf320, sf512, sf640}, + drxShortCycleTimer INTEGER (1..16) + } OPTIONAL -- Need OR + } +} + +DRX-Config-v1130 ::= SEQUENCE { + drx-RetransmissionTimer-v1130 ENUMERATED {psf0-v1130} OPTIONAL, --Need OR + longDRX-CycleStartOffset-v1130 CHOICE { + sf60-v1130 INTEGER(0..59), + sf70-v1130 INTEGER(0..69) + } OPTIONAL, --Need OR + shortDRX-Cycle-v1130 ENUMERATED {sf4-v1130} OPTIONAL --Need OR +} +DRX-Config-v1310 ::= SEQUENCE { + longDRX-CycleStartOffset-v1310 SEQUENCE { + sf60-v1310 INTEGER(0..59) + } OPTIONAL --Need OR +} + +DRX-Config-r13 ::= SEQUENCE { + onDurationTimer-v1310 ENUMERATED {psf300, psf400, psf500, psf600, + psf800, psf1000, psf1200, psf1600} OPTIONAL, --Need OR + drx-RetransmissionTimer-v1310 ENUMERATED {psf40, psf64, psf80, psf96, psf112, + psf128, psf160, psf320} + OPTIONAL, --Need OR + drx-ULRetransmissionTimer-r13 ENUMERATED {psf0, psf1, psf2, psf4, psf6, psf8, psf16, + psf24, psf33, psf40, psf64, psf80, psf96, + psf112, psf128, psf160, psf320} + OPTIONAL --Need OR +} + +PeriodicBSR-Timer-r12 ::= ENUMERATED { + sf5, sf10, sf16, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, sf1280, sf2560, + infinity, spare1} + +RetxBSR-Timer-r12 ::= ENUMERATED { + sf320, sf640, sf1280, sf2560, sf5120, + sf10240, spare2, spare1} + +STAG-ToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-Id-r11 + +STAG-ToAddModList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-ToAddMod-r11 + +STAG-ToAddMod-r11 ::= SEQUENCE { + stag-Id-r11 STAG-Id-r11, + timeAlignmentTimerSTAG-r11 TimeAlignmentTimer, + ... +} + +STAG-Id-r11::= INTEGER (1..maxSTAG-r11) + + +P-C-AndCBSR-r11 ::= SEQUENCE { + p-C-r11 INTEGER (-8..15), + codebookSubsetRestriction-r11 BIT STRING +} + +P-C-AndCBSR-r13 ::= SEQUENCE { + p-C-r13 INTEGER (-8..15), + cbsr-Selection-r13 CHOICE{ + nonPrecoded-r13 SEQUENCE { + codebookSubsetRestriction1-r13 BIT STRING, + codebookSubsetRestriction2-r13 BIT STRING + }, + beamformedK1a-r13 SEQUENCE { + codebookSubsetRestriction3-r13 BIT STRING + }, + beamformedKN-r13 SEQUENCE { + codebookSubsetRestriction-r13 BIT STRING + } + }, + ... +} + +P-C-AndCBSR-Pair-r13a ::= SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r11 + +P-C-AndCBSR-Pair-r13 ::= SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r13 + + +PDCCH-ConfigSCell-r13 ::= SEQUENCE { + skipMonitoringDCI-format0-1A-r13 ENUMERATED {true} OPTIONAL -- Need OR +} + +PDCCH-ConfigLAA-r14 ::= SEQUENCE { + maxNumberOfSchedSubframes-Format0B-r14 ENUMERATED {sf2, sf3, sf4} OPTIONAL, -- Need OR + maxNumberOfSchedSubframes-Format4B-r14 ENUMERATED {sf2, sf3, sf4} OPTIONAL, -- Need OR + skipMonitoringDCI-Format0A-r14 ENUMERATED {true} OPTIONAL, -- Need OR + skipMonitoringDCI-Format4A-r14 ENUMERATED {true} OPTIONAL, -- Need OR + pdcch-CandidateReductions-Format0A-r14 + PDCCH-CandidateReductions-r13 OPTIONAL, -- Need ON + pdcch-CandidateReductions-Format4A-r14 + PDCCH-CandidateReductionsLAA-UL-r14 OPTIONAL, -- Need ON + pdcch-CandidateReductions-Format0B-r14 + PDCCH-CandidateReductionsLAA-UL-r14 OPTIONAL, -- Need ON + pdcch-CandidateReductions-Format4B-r14 + PDCCH-CandidateReductionsLAA-UL-r14 OPTIONAL -- Need ON +} + +PDCCH-CandidateReductionValue-r13 ::= ENUMERATED {n0, n33, n66, n100} + +PDCCH-CandidateReductionValue-r14 ::= ENUMERATED {n0, n50, n100, n150} + +PDCCH-CandidateReductions-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + pdcch-candidateReductionAL1-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL2-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL3-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL4-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL5-r13 PDCCH-CandidateReductionValue-r13 + } +} + +PDCCH-CandidateReductionsLAA-UL-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + pdcch-candidateReductionAL1-r14 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL2-r14 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL3-r14 PDCCH-CandidateReductionValue-r14, + pdcch-candidateReductionAL4-r14 PDCCH-CandidateReductionValue-r14, + pdcch-candidateReductionAL5-r14 PDCCH-CandidateReductionValue-r14 + } +} + + +PDCP-Config ::= SEQUENCE { + discardTimer ENUMERATED { + ms50, ms100, ms150, ms300, ms500, + ms750, ms1500, infinity + } OPTIONAL, -- Cond Setup + rlc-AM SEQUENCE { + statusReportRequired BOOLEAN + } OPTIONAL, -- Cond Rlc-AM + rlc-UM SEQUENCE { + pdcp-SN-Size ENUMERATED {len7bits, len12bits} + } OPTIONAL, -- Cond Rlc-UM + headerCompression CHOICE { + notUsed NULL, + rohc SEQUENCE { + maxCID INTEGER (1..16383) DEFAULT 15, + profiles SEQUENCE { + profile0x0001 BOOLEAN, + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0101 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + ... + } + }, + ..., + [[ rn-IntegrityProtection-r10 ENUMERATED {enabled} OPTIONAL -- Cond RN + ]], + [[ pdcp-SN-Size-v1130 ENUMERATED {len15bits} OPTIONAL -- Cond Rlc-AM2 + ]], + [[ ul-DataSplitDRB-ViaSCG-r12 BOOLEAN OPTIONAL, -- Need ON + t-Reordering-r12 ENUMERATED { + ms0, ms20, ms40, ms60, ms80, ms100, ms120, ms140, + ms160, ms180, ms200, ms220, ms240, ms260, ms280, ms300, + ms500, ms750, spare14, spare13, spare12, spare11, spare10, + spare9, spare8, spare7, spare6, spare5, spare4, spare3, + spare2, spare1} OPTIONAL -- Cond SetupS + ]], + [[ ul-DataSplitThreshold-r13 CHOICE { + release NULL, + setup ENUMERATED { + b0, b100, b200, b400, b800, b1600, b3200, b6400, b12800, + b25600, b51200, b102400, b204800, b409600, b819200, + spare1} + } OPTIONAL, -- Need ON + pdcp-SN-Size-v1310 ENUMERATED {len18bits} OPTIONAL, -- Cond Rlc-AM3 + statusFeedback-r13 CHOICE { + release NULL, + setup SEQUENCE { + statusPDU-TypeForPolling-r13 ENUMERATED {type1, type2} OPTIONAL, -- Need ON + statusPDU-Periodicity-Type1-r13 ENUMERATED { + ms5, ms10, ms20, ms30, ms40, ms50, ms60, ms70, ms80, ms90, + ms100, ms150, ms200, ms300, ms500, ms1000, ms2000, ms5000, + ms10000, ms20000, ms50000} OPTIONAL, -- Need ON + statusPDU-Periodicity-Type2-r13 ENUMERATED { + ms5, ms10, ms20, ms30, ms40, ms50, ms60, ms70, ms80, ms90, + ms100, ms150, ms200, ms300, ms500, ms1000, ms2000, ms5000, + ms10000, ms20000, ms50000} OPTIONAL, -- Need ON + statusPDU-Periodicity-Offset-r13 ENUMERATED { + ms1, ms2, ms5, ms10, ms25, ms50, ms100, ms250, ms500, + ms2500, ms5000, ms25000} OPTIONAL -- Need ON + } + } OPTIONAL -- Need ON + ]], + [[ ul-LWA-Config-r14 CHOICE { + release NULL, + setup SEQUENCE { + ul-LWA-DRB-ViaWLAN-r14 BOOLEAN, + ul-LWA-DataSplitThreshold-r14 ENUMERATED { + b0, b100, b200, b400, b800, b1600, b3200, b6400, + b12800, b25600, b51200, b102400, b204800, b409600, + b819200 } OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + uplinkOnlyHeaderCompression-r14 CHOICE { + notUsed-r14 NULL, + rohc-r14 SEQUENCE { + maxCID-r14 INTEGER (1..16383) DEFAULT 15, + profiles-r14 SEQUENCE { + profile0x0006-r14 BOOLEAN + }, + ... + } + } OPTIONAL -- Need ON + ]] +} + + +PDSCH-ConfigCommon ::= SEQUENCE { + referenceSignalPower INTEGER (-60..50), + p-b INTEGER (0..3) +} + +PDSCH-ConfigCommon-v1310 ::= SEQUENCE { + pdsch-maxNumRepetitionCEmodeA-r13 ENUMERATED { + r16, r32 } OPTIONAL, -- Need OR + pdsch-maxNumRepetitionCEmodeB-r13 ENUMERATED { + r192, r256, r384, r512, r768, r1024, + r1536, r2048} OPTIONAL -- Need OR +} + +PDSCH-ConfigDedicated::= SEQUENCE { + p-a ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} +} + +PDSCH-ConfigDedicated-v1130 ::= SEQUENCE { + dmrs-ConfigPDSCH-r11 DMRS-Config-r11 OPTIONAL, -- Need ON + qcl-Operation ENUMERATED {typeA, typeB} OPTIONAL, -- Need OR + re-MappingQCLConfigToReleaseList-r11 RE-MappingQCLConfigToReleaseList-r11 OPTIONAL, -- Need ON + re-MappingQCLConfigToAddModList-r11 RE-MappingQCLConfigToAddModList-r11 OPTIONAL -- Need ON +} + +PDSCH-ConfigDedicated-v1280 ::= SEQUENCE { + tbsIndexAlt-r12 ENUMERATED {a26, a33} OPTIONAL -- Need OR +} + +PDSCH-ConfigDedicated-v1310 ::= SEQUENCE { + dmrs-ConfigPDSCH-v1310 DMRS-Config-v1310 OPTIONAL -- Need ON +} + +PDSCH-ConfigDedicated-v1430 ::= SEQUENCE { + ce-PDSCH-MaxBandwidth-r14 ENUMERATED {bw5, bw20} OPTIONAL, -- Need OP + ce-PDSCH-TenProcesses-r14 ENUMERATED {on} OPTIONAL, -- Need OR + ce-HARQ-AckBundling-r14 ENUMERATED {on} OPTIONAL, -- Need OR + ce-SchedulingEnhancement-r14 ENUMERATED {range1, range2} OPTIONAL, -- Need OR + tbsIndexAlt2-r14 ENUMERATED {b33} OPTIONAL -- Need OR +} + +PDSCH-ConfigDedicatedSCell-v1430 ::= SEQUENCE { + tbsIndexAlt2-r14 ENUMERATED {b33} OPTIONAL -- Need OR +} + +RE-MappingQCLConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxRE-MapQCL-r11)) OF PDSCH-RE-MappingQCL-Config-r11 + +RE-MappingQCLConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxRE-MapQCL-r11)) OF PDSCH-RE-MappingQCL-ConfigId-r11 + +PDSCH-RE-MappingQCL-Config-r11 ::= SEQUENCE { + pdsch-RE-MappingQCL-ConfigId-r11 PDSCH-RE-MappingQCL-ConfigId-r11, + optionalSetOfFields-r11 SEQUENCE { + crs-PortsCount-r11 ENUMERATED {n1, n2, n4, spare1}, + crs-FreqShift-r11 INTEGER (0..5), + mbsfn-SubframeConfigList-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList MBSFN-SubframeConfigList + } + } OPTIONAL, -- Need ON + pdsch-Start-r11 ENUMERATED {reserved, n1, n2, n3, n4, assigned} + } OPTIONAL, -- Need OP + csi-RS-ConfigZPId-r11 CSI-RS-ConfigZPId-r11, + qcl-CSI-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11 OPTIONAL, -- Need OR + ..., + [[ mbsfn-SubframeConfigList-v1430 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 + } + } OPTIONAL -- Need OP + ]] +} + + +PDSCH-RE-MappingQCL-ConfigId-r11 ::= INTEGER (1..maxRE-MapQCL-r11) + +PerCC-GapIndicationList-r14 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF PerCC-GapIndication-r14 + +PerCC-GapIndication-r14 ::= SEQUENCE { + servCellId-r14 ServCellIndex-r13, + gapIndication-r14 ENUMERATED {gap, ncsg, nogap-noNcsg} +} + + +PHICH-Config ::= SEQUENCE { + phich-Duration ENUMERATED {normal, extended}, + phich-Resource ENUMERATED {oneSixth, half, one, two} +} + + +PhysicalConfigDedicated ::= SEQUENCE { + pdsch-ConfigDedicated PDSCH-ConfigDedicated OPTIONAL, -- Need ON + pucch-ConfigDedicated PUCCH-ConfigDedicated OPTIONAL, -- Need ON + pusch-ConfigDedicated PUSCH-ConfigDedicated OPTIONAL, -- Need ON + uplinkPowerControlDedicated UplinkPowerControlDedicated OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUCCH TPC-PDCCH-Config OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUSCH TPC-PDCCH-Config OPTIONAL, -- Need ON + cqi-ReportConfig CQI-ReportConfig OPTIONAL, -- Cond CQI-r8 + soundingRS-UL-ConfigDedicated SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON + antennaInfo CHOICE { + explicitValue AntennaInfoDedicated, + defaultValue NULL + } OPTIONAL, -- Cond AI-r8 + schedulingRequestConfig SchedulingRequestConfig OPTIONAL, -- Need ON + ..., + [[ cqi-ReportConfig-v920 CQI-ReportConfig-v920 OPTIONAL, -- Cond CQI-r8 + antennaInfo-v920 AntennaInfoDedicated-v920 OPTIONAL -- Cond AI-r8 + ]], + [[ antennaInfo-r10 CHOICE { + explicitValue-r10 AntennaInfoDedicated-r10, + defaultValue NULL + } OPTIONAL, -- Cond AI-r10 + antennaInfoUL-r10 AntennaInfoUL-r10 OPTIONAL, -- Need ON + cif-Presence-r10 BOOLEAN OPTIONAL, -- Need ON + cqi-ReportConfig-r10 CQI-ReportConfig-r10 OPTIONAL, -- Cond CQI-r10 + csi-RS-Config-r10 CSI-RS-Config-r10 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1020 PUCCH-ConfigDedicated-v1020 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1020 PUSCH-ConfigDedicated-v1020 OPTIONAL, -- Need ON + schedulingRequestConfig-v1020 SchedulingRequestConfig-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1020 + SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-r10 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1020 + UplinkPowerControlDedicated-v1020 OPTIONAL -- Need ON + ]], + [[ additionalSpectrumEmissionCA-r10 CHOICE { + release NULL, + setup SEQUENCE { + additionalSpectrumEmissionPCell-r10 AdditionalSpectrumEmission + } + } OPTIONAL -- Need ON + ]], + [[ -- DL configuration as well as configuration applicable for DL and UL + csi-RS-ConfigNZPToReleaseList-r11 + CSI-RS-ConfigNZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModList-r11 + CSI-RS-ConfigNZPToAddModList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToReleaseList-r11 + CSI-RS-ConfigZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToAddModList-r11 CSI-RS-ConfigZPToAddModList-r11 OPTIONAL, -- Need ON + epdcch-Config-r11 EPDCCH-Config-r11 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1130 PDSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + -- UL configuration + cqi-ReportConfig-v1130 CQI-ReportConfig-v1130 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1130 PUCCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1130 PUSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1130 + UplinkPowerControlDedicated-v1130 OPTIONAL -- Need ON + ]], + [[ antennaInfo-v1250 AntennaInfoDedicated-v1250 OPTIONAL, -- Cond AI-r10 + eimta-MainConfig-r12 EIMTA-MainConfig-r12 OPTIONAL, -- Need ON + eimta-MainConfigPCell-r12 EIMTA-MainConfigServCell-r12 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1250 PUCCH-ConfigDedicated-v1250 OPTIONAL, -- Need ON + cqi-ReportConfigPCell-v1250 CQI-ReportConfig-v1250 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1250 + UplinkPowerControlDedicated-v1250 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1250 PUSCH-ConfigDedicated-v1250 OPTIONAL, -- Need ON + csi-RS-Config-v1250 CSI-RS-Config-v1250 OPTIONAL -- Need ON + ]], + [[ pdsch-ConfigDedicated-v1280 PDSCH-ConfigDedicated-v1280 OPTIONAL -- Need ON + ]], + [[ pdsch-ConfigDedicated-v1310 PDSCH-ConfigDedicated-v1310 OPTIONAL, -- Need ON + pucch-ConfigDedicated-r13 PUCCH-ConfigDedicated-r13 OPTIONAL, -- Need ON + pusch-ConfigDedicated-r13 PUSCH-ConfigDedicated-r13 OPTIONAL, -- Need ON + pdcch-CandidateReductions-r13 + PDCCH-CandidateReductions-r13 OPTIONAL, -- Need ON + cqi-ReportConfig-v1310 CQI-ReportConfig-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1310 + SoundingRS-UL-ConfigDedicated-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-v1310 + SoundingRS-UL-ConfigDedicatedAperiodic-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, -- Need ON + csi-RS-Config-v1310 CSI-RS-Config-v1310 OPTIONAL, -- Need ON + ce-Mode-r13 CHOICE { + release NULL, + setup ENUMERATED {ce-ModeA,ce-ModeB} + } OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModListExt-r13 CSI-RS-ConfigNZPToAddModListExt-r13 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToReleaseListExt-r13 CSI-RS-ConfigNZPToReleaseListExt-r13 OPTIONAL -- Need ON + ]], + [[ cqi-ReportConfig-v1320 CQI-ReportConfig-v1320 OPTIONAL -- Need ON + ]], + [[ typeA-SRS-TPC-PDCCH-Group-r14 CHOICE { + release NULL, + setup SEQUENCE (SIZE (1..32)) OF SRS-TPC-PDCCH-Config-r14 + } OPTIONAL, -- Need ON + must-Config-r14 CHOICE{ + release NULL, + setup SEQUENCE { + k-max-r14 ENUMERATED {l1, l3}, + p-a-must-r14 ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + pusch-EnhancementsConfig-r14 PUSCH-EnhancementsConfig-r14 OPTIONAL, -- Need ON + ce-pdsch-pusch-EnhancementConfig-r14 ENUMERATED {on} OPTIONAL, -- Need OR + antennaInfo-v1430 AntennaInfoDedicated-v1430 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1430 PUCCH-ConfigDedicated-v1430 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1430 PDSCH-ConfigDedicated-v1430 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1430 PUSCH-ConfigDedicated-v1430 OPTIONAL, -- Need ON + soundingRS-UL-PeriodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-UL-ConfigDedicated OPTIONAL, -- Cond PeriodicSRSPCell + soundingRS-UL-PeriodicConfigDedicatedUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Cond PeriodicSRSExt + soundingRS-UL-AperiodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL, -- Cond AperiodicSRS + soundingRS-UL-ConfigDedicatedApUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, -- Cond AperiodicSRSExt + csi-RS-Config-v1430 CSI-RS-Config-v1430 OPTIONAL, -- Need ON + csi-RS-ConfigZP-ApList-r14 CSI-RS-ConfigZP-ApList-r14 OPTIONAL, -- Need ON + cqi-ReportConfig-v1430 CQI-ReportConfig-v1430 OPTIONAL, -- Need ON + semiOpenLoop-r14 BOOLEAN OPTIONAL -- Need ON + ]] +} + +PhysicalConfigDedicated-v1370 ::= SEQUENCE { + pucch-ConfigDedicated-v1370 PUCCH-ConfigDedicated-v1370 OPTIONAL -- Need ON +} + +PhysicalConfigDedicatedSCell-r10 ::= SEQUENCE { + -- DL configuration as well as configuration applicable for DL and UL + nonUL-Configuration-r10 SEQUENCE { + antennaInfo-r10 + AntennaInfoDedicated-r10 OPTIONAL, -- Need ON + crossCarrierSchedulingConfig-r10 + CrossCarrierSchedulingConfig-r10 OPTIONAL, -- Need ON + csi-RS-Config-r10 CSI-RS-Config-r10 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-r10 PDSCH-ConfigDedicated OPTIONAL -- Need ON + } OPTIONAL, -- Cond SCellAdd + -- UL configuration + ul-Configuration-r10 SEQUENCE { + antennaInfoUL-r10 AntennaInfoUL-r10 OPTIONAL, -- Need ON + pusch-ConfigDedicatedSCell-r10 + PUSCH-ConfigDedicatedSCell-r10 OPTIONAL, -- Cond PUSCH-SCell1 + uplinkPowerControlDedicatedSCell-r10 + UplinkPowerControlDedicatedSCell-r10 OPTIONAL, -- Need ON + cqi-ReportConfigSCell-r10 CQI-ReportConfigSCell-r10 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-r10 + SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1020 + SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-r10 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL -- Need ON + } OPTIONAL, -- Cond CommonUL + ..., + [[ -- DL configuration as well as configuration applicable for DL and UL + csi-RS-ConfigNZPToReleaseList-r11 + CSI-RS-ConfigNZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModList-r11 + CSI-RS-ConfigNZPToAddModList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToReleaseList-r11 + CSI-RS-ConfigZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToAddModList-r11 + CSI-RS-ConfigZPToAddModList-r11 OPTIONAL, -- Need ON + epdcch-Config-r11 EPDCCH-Config-r11 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1130 PDSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + -- UL configuration + cqi-ReportConfig-v1130 CQI-ReportConfig-v1130 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1130 + PUSCH-ConfigDedicated-v1130 OPTIONAL, -- Cond PUSCH-SCell1 + uplinkPowerControlDedicatedSCell-v1130 + UplinkPowerControlDedicated-v1130 OPTIONAL -- Need ON + ]], + [[ antennaInfo-v1250 AntennaInfoDedicated-v1250 OPTIONAL, -- Need ON + eimta-MainConfigSCell-r12 + EIMTA-MainConfigServCell-r12 OPTIONAL, -- Need ON + cqi-ReportConfigSCell-v1250 CQI-ReportConfig-v1250 OPTIONAL, -- Need ON + uplinkPowerControlDedicatedSCell-v1250 + UplinkPowerControlDedicated-v1250 OPTIONAL, -- Need ON + csi-RS-Config-v1250 CSI-RS-Config-v1250 OPTIONAL -- Need ON + ]], + [[ pdsch-ConfigDedicated-v1280 PDSCH-ConfigDedicated-v1280 OPTIONAL -- Need ON + ]], + [[ pucch-Cell-r13 ENUMERATED {true} OPTIONAL, -- Cond PUCCH-SCell1 + pucch-SCell CHOICE{ + release NULL, + setup SEQUENCE { + pucch-ConfigDedicated-r13 + PUCCH-ConfigDedicated-r13 OPTIONAL, -- Need ON + schedulingRequestConfig-r13 + SchedulingRequestConfigSCell-r13 OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUCCH-SCell-r13 + TPC-PDCCH-ConfigSCell-r13 OPTIONAL, -- Need ON + pusch-ConfigDedicated-r13 + PUSCH-ConfigDedicated-r13 OPTIONAL, -- Cond PUSCH-SCell + uplinkPowerControlDedicated-r13 + UplinkPowerControlDedicatedSCell-v1310 OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + crossCarrierSchedulingConfig-r13 + CrossCarrierSchedulingConfig-r13 OPTIONAL, -- Cond Cross-Carrier-Config + pdcch-ConfigSCell-r13 PDCCH-ConfigSCell-r13 OPTIONAL, -- Need ON + cqi-ReportConfig-v1310 CQI-ReportConfig-v1310 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1310 PDSCH-ConfigDedicated-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1310 + SoundingRS-UL-ConfigDedicated-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-v1310 + SoundingRS-UL-ConfigDedicatedAperiodic-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, -- Need ON + csi-RS-Config-v1310 CSI-RS-Config-v1310 OPTIONAL, -- Need ON + laa-SCellConfiguration-r13 LAA-SCellConfiguration-r13 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModListExt-r13 CSI-RS-ConfigNZPToAddModListExt-r13 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToReleaseListExt-r13 CSI-RS-ConfigNZPToReleaseListExt-r13 OPTIONAL -- Need ON + ]], + [[ cqi-ReportConfig-v1320 CQI-ReportConfig-v1320 OPTIONAL -- Need ON + ]], + [[ laa-SCellConfiguration-v1430 LAA-SCellConfiguration-v1430 + OPTIONAL, -- Need ON + typeB-SRS-TPC-PDCCH-Config-r14 SRS-TPC-PDCCH-Config-r14 OPTIONAL, -- Need ON + + uplinkPUSCH-LessPowerControlDedicated-v1430 UplinkPUSCH-LessPowerControlDedicated-v1430 OPTIONAL, -- Need ON + soundingRS-UL-PeriodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-UL-ConfigDedicated OPTIONAL, -- Cond PeriodicSRS + soundingRS-UL-PeriodicConfigDedicatedUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Cond PeriodicSRSExt + soundingRS-UL-AperiodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-AperiodicSet-r14 OPTIONAL, -- Cond AperiodicSRS + soundingRS-UL-ConfigDedicatedApUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-AperiodicSetUpPTsExt-r14 OPTIONAL, -- Cond AperiodicSRSExt + must-Config-r14 CHOICE{ + release NULL, + setup SEQUENCE { + k-max-r14 ENUMERATED {l1, l3}, + p-a-must-r14 ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1430 PUSCH-ConfigDedicatedSCell-v1430 OPTIONAL, -- Need ON + csi-RS-Config-v1430 CSI-RS-Config-v1430 OPTIONAL, -- Need ON + csi-RS-ConfigZP-ApList-r14 CSI-RS-ConfigZP-ApList-r14 OPTIONAL, -- Need ON + cqi-ReportConfig-v1430 CQI-ReportConfig-v1430 OPTIONAL, -- Need ON + semiOpenLoop-r14 BOOLEAN OPTIONAL, -- Need ON + pdsch-ConfigDedicatedSCell-v1430 PDSCH-ConfigDedicatedSCell-v1430 OPTIONAL -- Need ON + ]] +} + +PhysicalConfigDedicatedSCell-v1370 ::= SEQUENCE { + pucch-SCell-v1370 CHOICE{ + release NULL, + setup SEQUENCE { + pucch-ConfigDedicated-v1370 PUCCH-ConfigDedicated-v1370 OPTIONAL -- Need ON + } + } +} + +LAA-SCellConfiguration-r13 ::= SEQUENCE { + subframeStartPosition-r13 ENUMERATED {s0, s07}, + laa-SCellSubframeConfig-r13 BIT STRING (SIZE(8)) +} + +LAA-SCellConfiguration-v1430 ::= SEQUENCE { + crossCarrierSchedulingConfig-UL-r14 CHOICE { + release NULL, + setup SEQUENCE { + crossCarrierSchedulingConfigLAA-UL-r14 CrossCarrierSchedulingConfigLAA-UL-r14 + } + } OPTIONAL, -- Cond Cross-Carrier-ConfigUL + lbt-Config-r14 LBT-Config-r14 OPTIONAL, -- Need ON + pdcch-ConfigLAA-r14 PDCCH-ConfigLAA-r14 OPTIONAL, -- Need ON + absenceOfAnyOtherTechnology-r14 ENUMERATED {true} OPTIONAL, -- Need OR + soundingRS-UL-ConfigDedicatedAperiodic-v1430 + SoundingRS-UL-ConfigDedicatedAperiodic-v1430 OPTIONAL -- Need ON +} + +LBT-Config-r14 ::= CHOICE{ + maxEnergyDetectionThreshold-r14 INTEGER(-85..-52), + energyDetectionThresholdOffset-r14 INTEGER(-13..20) +} + +CSI-RS-ConfigNZPToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r11)) OF CSI-RS-ConfigNZP-r11 + +CSI-RS-ConfigNZPToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-v1310)) OF CSI-RS-ConfigNZP-r11 + +CSI-RS-ConfigNZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r11)) OF CSI-RS-ConfigNZPId-r11 + +CSI-RS-ConfigNZPToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-v1310)) OF CSI-RS-ConfigNZPId-v1310 + +CSI-RS-ConfigZPToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZP-r11 + +CSI-RS-ConfigZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZPId-r11 + +SoundingRS-AperiodicSet-r14 ::= SEQUENCE{ + srs-CC-SetIndexList-r14 + SEQUENCE (SIZE (1..4)) OF SRS-CC-SetIndex-r14 + OPTIONAL, -- Cond SRS-Trigger-TypeA + soundingRS-UL-ConfigDedicatedAperiodic-r14 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 +} + +SoundingRS-AperiodicSetUpPTsExt-r14 ::= SEQUENCE{ + srs-CC-SetIndexList-r14 + SEQUENCE (SIZE (1..4)) OF SRS-CC-SetIndex-r14 + OPTIONAL, -- Cond SRS-Trigger-TypeA + soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r14 + SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 +} + + +P-Max ::= INTEGER (-30..33) + + +PRACH-ConfigSIB ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + prach-ConfigInfo PRACH-ConfigInfo +} + +PRACH-ConfigSIB-v1310 ::= SEQUENCE { + rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsPrachInfoList-r13, + mpdcch-startSF-CSS-RA-r13 CHOICE { + fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, v5, v8, + v10}, + tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10, v20, spare} + } OPTIONAL, -- Cond MP + prach-HoppingOffset-r13 INTEGER (0..94) OPTIONAL, -- Need OR + prach-ParametersListCE-r13 PRACH-ParametersListCE-r13 +} + +PRACH-Config ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + prach-ConfigInfo PRACH-ConfigInfo OPTIONAL -- Need ON +} + +PRACH-Config-v1310 ::= SEQUENCE { + rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsPrachInfoList-r13 OPTIONAL, -- Cond MP + mpdcch-startSF-CSS-RA-r13 CHOICE { + fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, v5, v8, + v10}, + tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10, v20, spare} + } OPTIONAL, -- Cond MP + prach-HoppingOffset-r13 INTEGER (0..94) OPTIONAL, -- Need OR + prach-ParametersListCE-r13 PRACH-ParametersListCE-r13 OPTIONAL, -- Cond MP + initial-CE-level-r13 INTEGER (0..3) OPTIONAL -- Need OR +} + +PRACH-Config-v1430 ::= SEQUENCE { + rootSequenceIndexHighSpeed-r14 INTEGER (0..837), + zeroCorrelationZoneConfigHighSpeed-r14 INTEGER (0..12), + prach-ConfigIndexHighSpeed-r14 INTEGER (0..63), + prach-FreqOffsetHighSpeed-r14 INTEGER (0..94) +} + +PRACH-ConfigSCell-r10 ::= SEQUENCE { + prach-ConfigIndex-r10 INTEGER (0..63) +} + +PRACH-ConfigInfo ::= SEQUENCE { + prach-ConfigIndex INTEGER (0..63), + highSpeedFlag BOOLEAN, + zeroCorrelationZoneConfig INTEGER (0..15), + prach-FreqOffset INTEGER (0..94) +} + +PRACH-ParametersListCE-r13 ::= SEQUENCE (SIZE(1..maxCE-Level-r13)) OF PRACH-ParametersCE-r13 + +PRACH-ParametersCE-r13 ::= SEQUENCE { + prach-ConfigIndex-r13 INTEGER (0..63), + prach-FreqOffset-r13 INTEGER (0..94), + prach-StartingSubframe-r13 ENUMERATED {sf2, sf4, sf8, sf16, sf32, sf64, sf128, + sf256} OPTIONAL, -- Need OP + maxNumPreambleAttemptCE-r13 + ENUMERATED {n3, n4, n5, n6, n7, n8, n10} OPTIONAL, -- Need OP + numRepetitionPerPreambleAttempt-r13 ENUMERATED {n1,n2,n4,n8,n16,n32,n64,n128}, + mpdcch-NarrowbandsToMonitor-r13 SEQUENCE (SIZE(1..2)) OF + INTEGER (1..maxAvailNarrowBands-r13), + mpdcch-NumRepetition-RA-r13 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + prach-HoppingConfig-r13 ENUMERATED {on,off} +} + +RSRP-ThresholdsPrachInfoList-r13 ::= SEQUENCE (SIZE(1..3)) OF RSRP-Range + + +PresenceAntennaPort1 ::= BOOLEAN + + +PUCCH-ConfigCommon ::= SEQUENCE { + deltaPUCCH-Shift ENUMERATED {ds1, ds2, ds3}, + nRB-CQI INTEGER (0..98), + nCS-AN INTEGER (0..7), + n1PUCCH-AN INTEGER (0..2047) +} + +PUCCH-ConfigCommon-v1310 ::= SEQUENCE { + n1PUCCH-AN-InfoList-r13 N1PUCCH-AN-InfoList-r13 OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level0-r13 ENUMERATED {n1, n2, n4, n8} OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level1-r13 ENUMERATED {n1, n2, n4, n8} OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level2-r13 ENUMERATED {n4, n8, n16, n32} OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level3-r13 ENUMERATED {n4, n8, n16, n32} OPTIONAL -- Need OR +} + +PUCCH-ConfigCommon-v1430 ::= SEQUENCE { + pucch-NumRepetitionCE-Msg4-Level3-r14 ENUMERATED {n64, n128} OPTIONAL -- Need OR +} + +PUCCH-ConfigDedicated ::= SEQUENCE { + ackNackRepetition CHOICE{ + release NULL, + setup SEQUENCE { + repetitionFactor ENUMERATED {n2, n4, n6, spare1}, + n1PUCCH-AN-Rep INTEGER (0..2047) + } + }, + tdd-AckNackFeedbackMode ENUMERATED {bundling, multiplexing} OPTIONAL -- Cond TDD +} + +PUCCH-ConfigDedicated-v1020 ::= SEQUENCE { + pucch-Format-r10 CHOICE { + format3-r10 PUCCH-Format3-Conf-r13, + channelSelection-r10 SEQUENCE { + n1PUCCH-AN-CS-r10 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-List-r10 SEQUENCE (SIZE (1..2)) OF N1PUCCH-AN-CS-r10 + } + } OPTIONAL -- Need ON + } + } OPTIONAL, -- Need OR + twoAntennaPortActivatedPUCCH-Format1a1b-r10 ENUMERATED {true} OPTIONAL, -- Need OR + simultaneousPUCCH-PUSCH-r10 ENUMERATED {true} OPTIONAL, -- Need OR + n1PUCCH-AN-RepP1-r10 INTEGER (0..2047) OPTIONAL -- Need OR +} + +PUCCH-ConfigDedicated-v1130 ::= SEQUENCE { + n1PUCCH-AN-CS-v1130 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-ListP1-r11 SEQUENCE (SIZE (2..4)) OF INTEGER (0..2047) + } + } OPTIONAL, -- Need ON + nPUCCH-Param-r11 CHOICE { + release NULL, + setup SEQUENCE { + nPUCCH-Identity-r11 INTEGER (0..503), + n1PUCCH-AN-r11 INTEGER (0..2047) + } + } OPTIONAL -- Need ON +} + +PUCCH-ConfigDedicated-v1250 ::= SEQUENCE { + nkaPUCCH-Param-r12 CHOICE { + release NULL, + setup SEQUENCE { + nkaPUCCH-AN-r12 INTEGER (0..2047) + } + } +} + +PUCCH-ConfigDedicated-r13 ::= SEQUENCE { +--Release 8 + ackNackRepetition-r13 CHOICE{ + release NULL, + setup SEQUENCE { + repetitionFactor-r13 ENUMERATED {n2, n4, n6, spare1}, + n1PUCCH-AN-Rep-r13 INTEGER (0..2047) + } + }, + tdd-AckNackFeedbackMode-r13 ENUMERATED {bundling, multiplexing} OPTIONAL, -- Cond TDD +--Release 10 + pucch-Format-r13 CHOICE { + format3-r13 SEQUENCE { + n3PUCCH-AN-List-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) OPTIONAL, -- Need ON + twoAntennaPortActivatedPUCCH-Format3-r13 CHOICE { + release NULL, + setup SEQUENCE { + n3PUCCH-AN-ListP1-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) + } + } OPTIONAL -- Need ON + }, + channelSelection-r13 SEQUENCE { + n1PUCCH-AN-CS-r13 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-List-r13 SEQUENCE (SIZE (1..2)) OF N1PUCCH-AN-CS-r10, + n1PUCCH-AN-CS-ListP1-r13 SEQUENCE (SIZE (2..4)) OF INTEGER (0..2047) + } + } OPTIONAL -- Need ON + }, + format4-r13 SEQUENCE { + format4-resourceConfiguration-r13 SEQUENCE (SIZE (4)) OF Format4-resource-r13, + format4-MultiCSI-resourceConfiguration-r13 SEQUENCE (SIZE (1..2)) OF Format4-resource-r13 OPTIONAL -- Need OR + }, + format5-r13 SEQUENCE { + format5-resourceConfiguration-r13 SEQUENCE (SIZE (4)) OF Format5-resource-r13, + format5-MultiCSI-resourceConfiguration-r13 Format5-resource-r13 OPTIONAL -- Need OR + } + } OPTIONAL, -- Need OR + twoAntennaPortActivatedPUCCH-Format1a1b-r13 ENUMERATED {true} OPTIONAL, -- Need OR + simultaneousPUCCH-PUSCH-r13 ENUMERATED {true} OPTIONAL, -- Need OR + n1PUCCH-AN-RepP1-r13 INTEGER (0..2047) OPTIONAL, -- Need OR +--Release 11 + nPUCCH-Param-r13 CHOICE { + release NULL, + setup SEQUENCE { + nPUCCH-Identity-r13 INTEGER (0..503), + n1PUCCH-AN-r13 INTEGER (0..2047) + } + } OPTIONAL, -- Need ON +--Release 12 + nkaPUCCH-Param-r13 CHOICE { + release NULL, + setup SEQUENCE { + nkaPUCCH-AN-r13 INTEGER (0..2047) + } + } OPTIONAL, -- Need ON +--Release 13 + spatialBundlingPUCCH-r13 BOOLEAN, + spatialBundlingPUSCH-r13 BOOLEAN, + harq-TimingTDD-r13 BOOLEAN, + codebooksizeDetermination-r13 ENUMERATED {dai,cc} OPTIONAL, -- Need OR + maximumPayloadCoderate-r13 INTEGER (0..7) OPTIONAL, -- Need OR + pucch-NumRepetitionCE-r13 CHOICE { + release NULL, + setup CHOICE { + modeA SEQUENCE { + pucch-NumRepetitionCE-format1-r13 ENUMERATED {r1, r2, r4, r8}, + pucch-NumRepetitionCE-format2-r13 ENUMERATED {r1, r2, r4, r8} + }, + modeB SEQUENCE { + pucch-NumRepetitionCE-format1-r13 ENUMERATED {r4, r8, r16, r32}, + pucch-NumRepetitionCE-format2-r13 ENUMERATED {r4, r8, r16, r32} + } + } + } OPTIONAL --Need ON +} + +PUCCH-ConfigDedicated-v1370 ::= SEQUENCE { + pucch-Format-v1370 CHOICE { + release NULL, + setup PUCCH-Format3-Conf-r13 + } +} + +PUCCH-Format3-Conf-r13 ::= SEQUENCE { + n3PUCCH-AN-List-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) OPTIONAL, -- Need ON + twoAntennaPortActivatedPUCCH-Format3-r13 CHOICE { + release NULL, + setup SEQUENCE { + n3PUCCH-AN-ListP1-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) + } + } OPTIONAL -- Need ON +} + +PUCCH-ConfigDedicated-v1430 ::= SEQUENCE { + pucch-NumRepetitionCE-format1-r14 ENUMERATED {r64,r128} OPTIONAL -- Need OR +} + +Format4-resource-r13 ::= SEQUENCE { + startingPRB-format4-r13 INTEGER (0..109), + numberOfPRB-format4-r13 INTEGER (0..7) +} + +Format5-resource-r13 ::= SEQUENCE { + startingPRB-format5-r13 INTEGER (0..109), + cdm-index-format5-r13 INTEGER (0..1) +} + + + +N1PUCCH-AN-CS-r10 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + +N1PUCCH-AN-InfoList-r13 ::= SEQUENCE (SIZE(1..maxCE-Level-r13)) OF INTEGER (0..2047) + + +PUSCH-ConfigCommon ::= SEQUENCE { + pusch-ConfigBasic SEQUENCE { + n-SB INTEGER (1..4), + hoppingMode ENUMERATED {interSubFrame, intraAndInterSubFrame}, + pusch-HoppingOffset INTEGER (0..98), + enable64QAM BOOLEAN + }, + ul-ReferenceSignalsPUSCH UL-ReferenceSignalsPUSCH +} + +PUSCH-ConfigCommon-v1270 ::= SEQUENCE { + enable64QAM-v1270 ENUMERATED {true} +} + +PUSCH-ConfigCommon-v1310 ::= SEQUENCE { + pusch-maxNumRepetitionCEmodeA-r13 ENUMERATED { + r8, r16, r32 } OPTIONAL, -- Need OR + pusch-maxNumRepetitionCEmodeB-r13 ENUMERATED { + r192, r256, r384, r512, r768, r1024, + r1536, r2048} OPTIONAL, -- Need OR + pusch-HoppingOffset-v1310 + INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicated ::= SEQUENCE { + betaOffset-ACK-Index INTEGER (0..15), + betaOffset-RI-Index INTEGER (0..15), + betaOffset-CQI-Index INTEGER (0..15) +} + +PUSCH-ConfigDedicated-v1020 ::= SEQUENCE { + betaOffsetMC-r10 SEQUENCE { + betaOffset-ACK-Index-MC-r10 INTEGER (0..15), + betaOffset-RI-Index-MC-r10 INTEGER (0..15), + betaOffset-CQI-Index-MC-r10 INTEGER (0..15) + } OPTIONAL, -- Need OR + groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicated-v1130 ::= SEQUENCE { + pusch-DMRS-r11 CHOICE { + release NULL, + setup SEQUENCE { + nPUSCH-Identity-r11 INTEGER (0..509), + nDMRS-CSH-Identity-r11 INTEGER (0..509) + } + } +} + +PUSCH-ConfigDedicated-v1250::= SEQUENCE { + uciOnPUSCH CHOICE { + release NULL, + setup SEQUENCE { + betaOffset-ACK-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffset-RI-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffset-CQI-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffsetMC-r12 SEQUENCE { + betaOffset-ACK-Index-MC-SubframeSet2-r12 INTEGER (0..15), + betaOffset-RI-Index-MC-SubframeSet2-r12 INTEGER (0..15), + betaOffset-CQI-Index-MC-SubframeSet2-r12 INTEGER (0..15) + } OPTIONAL -- Need OR + } + } +} +PUSCH-ConfigDedicated-r13 ::= SEQUENCE { + betaOffset-ACK-Index-r13 INTEGER (0..15), + betaOffset2-ACK-Index-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-r13 INTEGER (0..15), + betaOffset-CQI-Index-r13 INTEGER (0..15), + betaOffsetMC-r13 SEQUENCE { + betaOffset-ACK-Index-MC-r13 INTEGER (0..15), + betaOffset2-ACK-Index-MC-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-MC-r13 INTEGER (0..15), + betaOffset-CQI-Index-MC-r13 INTEGER (0..15) + } OPTIONAL, -- Need OR + groupHoppingDisabled-r13 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r13 ENUMERATED {true} OPTIONAL, -- Need OR + pusch-DMRS-r11 CHOICE { + release NULL, + setup SEQUENCE { + nPUSCH-Identity-r13 INTEGER (0..509), + nDMRS-CSH-Identity-r13 INTEGER (0..509) + } + } OPTIONAL, -- Need ON + uciOnPUSCH CHOICE { + release NULL, + setup SEQUENCE { + betaOffset-ACK-Index-SubframeSet2-r13 INTEGER (0..15), + betaOffset2-ACK-Index-SubframeSet2-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-SubframeSet2-r13 INTEGER (0..15), + betaOffset-CQI-Index-SubframeSet2-r13 INTEGER (0..15), + betaOffsetMC-r12 SEQUENCE { + betaOffset-ACK-Index-MC-SubframeSet2-r13 INTEGER (0..15), + betaOffset2-ACK-Index-MC-SubframeSet2-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-MC-SubframeSet2-r13 INTEGER (0..15), + betaOffset-CQI-Index-MC-SubframeSet2-r13 INTEGER (0..15) + } OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + pusch-HoppingConfig-r13 ENUMERATED {on} OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicated-v1430 ::= SEQUENCE { + ce-PUSCH-NB-MaxTBS-r14 ENUMERATED {on} OPTIONAL, -- Need OR + ce-PUSCH-MaxBandwidth-r14 ENUMERATED {bw5} OPTIONAL, -- Need OR + tdd-PUSCH-UpPTS-r14 TDD-PUSCH-UpPTS-r14 OPTIONAL, -- Need ON + ul-DMRS-IFDMA-r14 BOOLEAN, + enable256QAM-r14 Enable256QAM-r14 OPTIONAL -- Need ON +} + +PUSCH-ConfigDedicatedSCell-r10 ::= SEQUENCE { + groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicatedSCell-v1430 ::= SEQUENCE { + enable256QAM-r14 Enable256QAM-r14 OPTIONAL -- Need OR +} + +TDD-PUSCH-UpPTS-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + symPUSCH-UpPTS-r14 ENUMERATED {sym1, sym2, sym3, sym4, sym5, sym6} OPTIONAL, -- Need ON + dmrs-LessUpPTS-Config-r14 ENUMERATED {true} OPTIONAL -- Need OR + } +} + +Enable256QAM-r14 ::= CHOICE { + release NULL, + setup CHOICE { + tpc-SubframeSet-Configured-r14 SEQUENCE { + subframeSet1-DCI-Format0-r14 BOOLEAN, + subframeSet1-DCI-Format4-r14 BOOLEAN, + subframeSet2-DCI-Format0-r14 BOOLEAN, + subframeSet2-DCI-Format4-r14 BOOLEAN + }, + tpc-SubframeSet-NotConfigured-r14 SEQUENCE { + dci-Format0-r14 BOOLEAN, + dci-Format4-r14 BOOLEAN + } + } +} + +PUSCH-EnhancementsConfig-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + pusch-HoppingOffsetPUSCH-Enh-r14 INTEGER (1..100) OPTIONAL, -- Need ON + interval-ULHoppingPUSCH-Enh-r14 CHOICE { + interval-FDD-PUSCH-Enh-r14 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-PUSCH-Enh-r14 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL -- Need ON + } +} + +UL-ReferenceSignalsPUSCH ::= SEQUENCE { + groupHoppingEnabled BOOLEAN, + groupAssignmentPUSCH INTEGER (0..29), + sequenceHoppingEnabled BOOLEAN, + cyclicShift INTEGER (0..7) +} + + +RACH-ConfigCommon ::= SEQUENCE { + preambleInfo SEQUENCE { + numberOfRA-Preambles ENUMERATED { + n4, n8, n12, n16, n20, n24, n28, + n32, n36, n40, n44, n48, n52, n56, + n60, n64}, + preamblesGroupAConfig SEQUENCE { + sizeOfRA-PreamblesGroupA ENUMERATED { + n4, n8, n12, n16, n20, n24, n28, + n32, n36, n40, n44, n48, n52, n56, + n60}, + messageSizeGroupA ENUMERATED {b56, b144, b208, b256}, + messagePowerOffsetGroupB ENUMERATED { + minusinfinity, dB0, dB5, dB8, dB10, dB12, + dB15, dB18}, + ... + } OPTIONAL -- Need OP + }, + powerRampingParameters PowerRampingParameters, + ra-SupervisionInfo SEQUENCE { + preambleTransMax PreambleTransMax, + ra-ResponseWindowSize ENUMERATED { + sf2, sf3, sf4, sf5, sf6, sf7, + sf8, sf10}, + mac-ContentionResolutionTimer ENUMERATED { + sf8, sf16, sf24, sf32, sf40, sf48, + sf56, sf64} + }, + maxHARQ-Msg3Tx INTEGER (1..8), + ..., + [[ preambleTransMax-CE-r13 PreambleTransMax OPTIONAL, -- Need OR + rach-CE-LevelInfoList-r13 RACH-CE-LevelInfoList-r13 OPTIONAL -- Need OR + ]] +} + +RACH-ConfigCommon-v1250 ::= SEQUENCE { + txFailParams-r12 SEQUENCE { + connEstFailCount-r12 ENUMERATED {n1, n2, n3, n4}, + connEstFailOffsetValidity-r12 ENUMERATED {s30, s60, s120, s240, + s300, s420, s600, s900}, + connEstFailOffset-r12 INTEGER (0..15) OPTIONAL -- Need OP + } +} + +RACH-ConfigCommonSCell-r11 ::= SEQUENCE { + powerRampingParameters-r11 PowerRampingParameters, + ra-SupervisionInfo-r11 SEQUENCE { + preambleTransMax-r11 PreambleTransMax + }, + ... +} + +RACH-CE-LevelInfoList-r13 ::= SEQUENCE (SIZE (1..maxCE-Level-r13)) OF RACH-CE-LevelInfo-r13 + +RACH-CE-LevelInfo-r13 ::= SEQUENCE { + preambleMappingInfo-r13 SEQUENCE { + firstPreamble-r13 INTEGER(0..63), + lastPreamble-r13 INTEGER(0..63) + }, + ra-ResponseWindowSize-r13 ENUMERATED {sf20, sf50, sf80, sf120, sf180, + sf240, sf320, sf400}, + + mac-ContentionResolutionTimer-r13 ENUMERATED {sf80, sf100, sf120, + sf160, sf200, sf240, sf480, sf960}, + rar-HoppingConfig-r13 ENUMERATED {on,off}, + ... +} + +PowerRampingParameters ::= SEQUENCE { + powerRampingStep ENUMERATED {dB0, dB2,dB4, dB6}, + preambleInitialReceivedTargetPower ENUMERATED { + dBm-120, dBm-118, dBm-116, dBm-114, dBm-112, + dBm-110, dBm-108, dBm-106, dBm-104, dBm-102, + dBm-100, dBm-98, dBm-96, dBm-94, + dBm-92, dBm-90} +} + +PreambleTransMax ::= ENUMERATED { + n3, n4, n5, n6, n7, n8, n10, n20, n50, + n100, n200} + + +RACH-ConfigDedicated ::= SEQUENCE { + ra-PreambleIndex INTEGER (0..63), + ra-PRACH-MaskIndex INTEGER (0..15) +} + + +RadioResourceConfigCommonSIB ::= SEQUENCE { + rach-ConfigCommon RACH-ConfigCommon, + bcch-Config BCCH-Config, + pcch-Config PCCH-Config, + prach-Config PRACH-ConfigSIB, + pdsch-ConfigCommon PDSCH-ConfigCommon, + pusch-ConfigCommon PUSCH-ConfigCommon, + pucch-ConfigCommon PUCCH-ConfigCommon, + soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon, + uplinkPowerControlCommon UplinkPowerControlCommon, + ul-CyclicPrefixLength UL-CyclicPrefixLength, + ..., + [[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need OR + ]], + [[ rach-ConfigCommon-v1250 RACH-ConfigCommon-v1250 OPTIONAL -- Need OR + ]], + [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR + ]], + [[ bcch-Config-v1310 BCCH-Config-v1310 OPTIONAL, -- Need OR + pcch-Config-v1310 PCCH-Config-v1310 OPTIONAL, -- Need OR + freqHoppingParameters-r13 FreqHoppingParameters-r13 OPTIONAL, -- Need OR + pdsch-ConfigCommon-v1310 PDSCH-ConfigCommon-v1310 OPTIONAL, -- Need OR + pusch-ConfigCommon-v1310 PUSCH-ConfigCommon-v1310 OPTIONAL, -- Need OR + prach-ConfigCommon-v1310 PRACH-ConfigSIB-v1310 OPTIONAL, -- Need OR + pucch-ConfigCommon-v1310 PUCCH-ConfigCommon-v1310 OPTIONAL -- Need OR + ]], + [[ highSpeedConfig-r14 HighSpeedConfig-r14 OPTIONAL, -- Need OR + prach-Config-v1430 PRACH-Config-v1430 OPTIONAL, -- Need OR + pucch-ConfigCommon-v1430 PUCCH-ConfigCommon-v1430 OPTIONAL -- Need OR + ]] +} + +RadioResourceConfigCommon ::= SEQUENCE { + rach-ConfigCommon RACH-ConfigCommon OPTIONAL, -- Need ON + prach-Config PRACH-Config, + pdsch-ConfigCommon PDSCH-ConfigCommon OPTIONAL, -- Need ON + pusch-ConfigCommon PUSCH-ConfigCommon, + phich-Config PHICH-Config OPTIONAL, -- Need ON + pucch-ConfigCommon PUCCH-ConfigCommon OPTIONAL, -- Need ON + soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon OPTIONAL, -- Need ON + uplinkPowerControlCommon UplinkPowerControlCommon OPTIONAL, -- Need ON + antennaInfoCommon AntennaInfoCommon OPTIONAL, -- Need ON + p-Max P-Max OPTIONAL, -- Need OP + tdd-Config TDD-Config OPTIONAL, -- Cond TDD + ul-CyclicPrefixLength UL-CyclicPrefixLength, + ..., + [[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need ON + ]], + [[ tdd-Config-v1130 TDD-Config-v1130 OPTIONAL -- Cond TDD3 + ]], + [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR + ]], + [[ + prach-Config-v1310 PRACH-Config-v1310 OPTIONAL, -- Need ON + freqHoppingParameters-r13 FreqHoppingParameters-r13 OPTIONAL, -- Need ON + pdsch-ConfigCommon-v1310 PDSCH-ConfigCommon-v1310 OPTIONAL, -- Need ON + pucch-ConfigCommon-v1310 PUCCH-ConfigCommon-v1310 OPTIONAL, -- Need ON + pusch-ConfigCommon-v1310 PUSCH-ConfigCommon-v1310 OPTIONAL, -- Need ON + uplinkPowerControlCommon-v1310 UplinkPowerControlCommon-v1310 OPTIONAL -- Need ON + ]], + [[ highSpeedConfig-r14 HighSpeedConfig-r14 OPTIONAL, -- Need OR + prach-Config-v1430 PRACH-Config-v1430 OPTIONAL, -- Need OR + pucch-ConfigCommon-v1430 PUCCH-ConfigCommon-v1430 OPTIONAL, -- Need OR + tdd-Config-v1430 TDD-Config-v1430 OPTIONAL -- Cond TDD3 + ]] +} + +RadioResourceConfigCommonPSCell-r12 ::= SEQUENCE { + basicFields-r12 RadioResourceConfigCommonSCell-r10, + pucch-ConfigCommon-r12 PUCCH-ConfigCommon, + rach-ConfigCommon-r12 RACH-ConfigCommon, + uplinkPowerControlCommonPSCell-r12 UplinkPowerControlCommonPSCell-r12, + ..., + [[ uplinkPowerControlCommonPSCell-v1310 + UplinkPowerControlCommon-v1310 OPTIONAL -- Need ON + ]] +} + +RadioResourceConfigCommonPSCell-v12f0 ::= SEQUENCE { + basicFields-v12f0 RadioResourceConfigCommonSCell-v10l0 +} + +RadioResourceConfigCommonPSCell-v1440 ::= SEQUENCE { + basicFields-v1440 RadioResourceConfigCommonSCell-v1440 +} + +RadioResourceConfigCommonSCell-r10 ::= SEQUENCE { + -- DL configuration as well as configuration applicable for DL and UL + nonUL-Configuration-r10 SEQUENCE { + -- 1: Cell characteristics + dl-Bandwidth-r10 ENUMERATED {n6, n15, n25, n50, n75, n100}, + -- 2: Physical configuration, general + antennaInfoCommon-r10 AntennaInfoCommon, + mbsfn-SubframeConfigList-r10 MBSFN-SubframeConfigList OPTIONAL, -- Need OR + -- 3: Physical configuration, control + phich-Config-r10 PHICH-Config, + -- 4: Physical configuration, physical channels + pdsch-ConfigCommon-r10 PDSCH-ConfigCommon, + tdd-Config-r10 TDD-Config OPTIONAL -- Cond TDDSCell + }, + -- UL configuration + ul-Configuration-r10 SEQUENCE { + ul-FreqInfo-r10 SEQUENCE { + ul-CarrierFreq-r10 ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth-r10 ENUMERATED {n6, n15, + n25, n50, n75, n100} OPTIONAL, -- Need OP + additionalSpectrumEmissionSCell-r10 AdditionalSpectrumEmission + }, + p-Max-r10 P-Max OPTIONAL, -- Need OP + uplinkPowerControlCommonSCell-r10 UplinkPowerControlCommonSCell-r10, + -- A special version of IE UplinkPowerControlCommon may be introduced + -- 3: Physical configuration, control + soundingRS-UL-ConfigCommon-r10 SoundingRS-UL-ConfigCommon, + ul-CyclicPrefixLength-r10 UL-CyclicPrefixLength, + -- 4: Physical configuration, physical channels + prach-ConfigSCell-r10 PRACH-ConfigSCell-r10 OPTIONAL, -- Cond TDD-OR-NoR11 + pusch-ConfigCommon-r10 PUSCH-ConfigCommon + } OPTIONAL, -- Need OR + ..., + [[ ul-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Need OP + ]], + [[ rach-ConfigCommonSCell-r11 RACH-ConfigCommonSCell-r11 OPTIONAL, -- Cond ULSCell + prach-ConfigSCell-r11 PRACH-Config OPTIONAL, -- Cond UL + tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD2 + uplinkPowerControlCommonSCell-v1130 + UplinkPowerControlCommonSCell-v1130 OPTIONAL -- Cond UL + ]], + [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR + ]], + [[ pucch-ConfigCommon-r13 PUCCH-ConfigCommon OPTIONAL, -- Cond UL + uplinkPowerControlCommonSCell-v1310 + UplinkPowerControlCommonSCell-v1310 OPTIONAL -- Cond UL + ]], + [[ highSpeedConfigSCell-r14 HighSpeedConfigSCell-r14 OPTIONAL, -- Need OR + prach-Config-v1430 PRACH-Config-v1430 OPTIONAL, -- Cond UL + ul-Configuration-r14 SEQUENCE { + ul-FreqInfo-r14 SEQUENCE { + ul-CarrierFreq-r14 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need OP + ul-Bandwidth-r14 ENUMERATED {n6, n15, + n25, n50, n75, n100} OPTIONAL, -- Need OP + additionalSpectrumEmissionSCell-r14 AdditionalSpectrumEmission + }, + p-Max-r14 P-Max OPTIONAL, -- Need OP + soundingRS-UL-ConfigCommon-r14 SoundingRS-UL-ConfigCommon, + ul-CyclicPrefixLength-r14 UL-CyclicPrefixLength, + prach-ConfigSCell-r14 PRACH-ConfigSCell-r10 OPTIONAL, -- Cond TDD-OR-NoR11 + uplinkPowerControlCommonPUSCH-LessCell-v1430 UplinkPowerControlCommonPUSCH-LessCell-v1430 OPTIONAL -- Need OR +} OPTIONAL, -- Cond ULSRS + harq-ReferenceConfig-r14 ENUMERATED {sa2,sa4,sa5} OPTIONAL, -- Need OR + soundingRS-FlexibleTiming-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL-- Need ON + ]] +} + +RadioResourceConfigCommonSCell-v10l0 ::= SEQUENCE { + -- UL configuration + ul-Configuration-v10l0 SEQUENCE { + additionalSpectrumEmissionSCell-v10l0 AdditionalSpectrumEmission-v10l0 + } +} + +RadioResourceConfigCommonSCell-v1440 ::= SEQUENCE { + ul-Configuration-v1440 SEQUENCE { + ul-FreqInfo-v1440 SEQUENCE { + additionalSpectrumEmissionSCell-v1440 AdditionalSpectrumEmission-v10l0 + } + } +} + +BCCH-Config ::= SEQUENCE { + modificationPeriodCoeff ENUMERATED {n2, n4, n8, n16} +} + +BCCH-Config-v1310 ::= SEQUENCE { + modificationPeriodCoeff-v1310 ENUMERATED {n64} +} + +FreqHoppingParameters-r13 ::= SEQUENCE { + dummy ENUMERATED {nb2, nb4} OPTIONAL, + dummy2 CHOICE { + interval-FDD-r13 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-r13 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL, + dummy3 CHOICE { + interval-FDD-r13 ENUMERATED {int2, int4, int8, int16}, + interval-TDD-r13 ENUMERATED { int5, int10, int20, int40} + } OPTIONAL, + interval-ULHoppingConfigCommonModeA-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-r13 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL, -- Cond MP-A + interval-ULHoppingConfigCommonModeB-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int2, int4, int8, int16}, + interval-TDD-r13 ENUMERATED { int5, int10, int20, int40} + } OPTIONAL, -- Cond MP-B + dummy4 INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL +} + +PCCH-Config ::= SEQUENCE { + defaultPagingCycle ENUMERATED { + rf32, rf64, rf128, rf256}, + nB ENUMERATED { + fourT, twoT, oneT, halfT, quarterT, oneEighthT, + oneSixteenthT, oneThirtySecondT} +} + +PCCH-Config-v1310 ::= SEQUENCE { + paging-narrowBands-r13 INTEGER (1..maxAvailNarrowBands-r13), + mpdcch-NumRepetition-Paging-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, r256}, + nB-v1310 ENUMERATED {one64thT, one128thT, one256thT} + OPTIONAL -- Need OR +} + +UL-CyclicPrefixLength ::= ENUMERATED {len1, len2} + +HighSpeedConfig-r14 ::= SEQUENCE { + highSpeedEnhancedMeasFlag-r14 ENUMERATED {true} OPTIONAL, -- Need OR + highSpeedEnhancedDemodulationFlag-r14 ENUMERATED {true} OPTIONAL -- Need OR +} + +HighSpeedConfigSCell-r14 ::= SEQUENCE { + highSpeedEnhancedDemodulationFlag-r14 ENUMERATED {true} OPTIONAL -- Need OR +} + + +RadioResourceConfigDedicated ::= SEQUENCE { + srb-ToAddModList SRB-ToAddModList OPTIONAL, -- Cond HO-Conn + drb-ToAddModList DRB-ToAddModList OPTIONAL, -- Cond HO-toEUTRA + drb-ToReleaseList DRB-ToReleaseList OPTIONAL, -- Need ON + mac-MainConfig CHOICE { + explicitValue MAC-MainConfig, + defaultValue NULL + } OPTIONAL, -- Cond HO-toEUTRA2 + sps-Config SPS-Config OPTIONAL, -- Need ON + physicalConfigDedicated PhysicalConfigDedicated OPTIONAL, -- Need ON + ..., + [[ rlf-TimersAndConstants-r9 RLF-TimersAndConstants-r9 OPTIONAL -- Need ON + ]], + [[ measSubframePatternPCell-r10 MeasSubframePatternPCell-r10 OPTIONAL -- Need ON + ]], + [[ neighCellsCRS-Info-r11 NeighCellsCRS-Info-r11 OPTIONAL -- Need ON + ]], + [[ naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL -- Need ON + ]], + [[ neighCellsCRS-Info-r13 NeighCellsCRS-Info-r13 OPTIONAL, -- Cond CRSIM + rlf-TimersAndConstants-r13 RLF-TimersAndConstants-r13 OPTIONAL -- Need ON + ]], + [[ sps-Config-v1430 SPS-Config-v1430 OPTIONAL -- Cond SPS + ]] +} + +RadioResourceConfigDedicated-v1370 ::= SEQUENCE { + physicalConfigDedicated-v1370 PhysicalConfigDedicated-v1370 OPTIONAL -- Need ON +} + +RadioResourceConfigDedicatedPSCell-r12 ::= SEQUENCE { + -- UE specific configuration extensions applicable for an PSCell + physicalConfigDedicatedPSCell-r12 PhysicalConfigDedicated OPTIONAL, -- Need ON + sps-Config-r12 SPS-Config OPTIONAL, -- Need ON + naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL, -- Need ON + ..., + [[ neighCellsCRS-InfoPSCell-r13 NeighCellsCRS-Info-r13 OPTIONAL -- Need ON + ]], + [[ sps-Config-v1430 SPS-Config-v1430 OPTIONAL -- Cond SPS2 + ]] +} + +RadioResourceConfigDedicatedPSCell-v1370 ::= SEQUENCE { + physicalConfigDedicatedPSCell-v1370 PhysicalConfigDedicated-v1370 OPTIONAL -- Need ON +} + +RadioResourceConfigDedicatedSCG-r12 ::= SEQUENCE { + drb-ToAddModListSCG-r12 DRB-ToAddModListSCG-r12 OPTIONAL, -- Need ON + mac-MainConfigSCG-r12 MAC-MainConfig OPTIONAL, -- Need ON + rlf-TimersAndConstantsSCG-r12 RLF-TimersAndConstantsSCG-r12 OPTIONAL, -- Need ON + ... +} + +RadioResourceConfigDedicatedSCell-r10 ::= SEQUENCE { + -- UE specific configuration extensions applicable for an SCell + physicalConfigDedicatedSCell-r10 PhysicalConfigDedicatedSCell-r10 OPTIONAL, -- Need ON + ..., + [[ mac-MainConfigSCell-r11 MAC-MainConfigSCell-r11 OPTIONAL -- Cond SCellAdd + ]], + [[ naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL -- Need ON + ]], + [[ neighCellsCRS-InfoSCell-r13 NeighCellsCRS-Info-r13 OPTIONAL -- Need ON + ]], + [[ physicalConfigDedicatedSCell-v1370 PhysicalConfigDedicatedSCell-v1370 OPTIONAL -- Need ON + ]] +} + +SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod + +SRB-ToAddMod ::= SEQUENCE { + srb-Identity INTEGER (1..2), + rlc-Config CHOICE { + explicitValue RLC-Config, + defaultValue NULL + } OPTIONAL, -- Cond Setup + logicalChannelConfig CHOICE { + explicitValue LogicalChannelConfig, + defaultValue NULL + } OPTIONAL, -- Cond Setup + ... +} + +DRB-ToAddModList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod + +DRB-ToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddModSCG-r12 + +DRB-ToAddMod ::= SEQUENCE { + eps-BearerIdentity INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity DRB-Identity, + pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP + rlc-Config RLC-Config OPTIONAL, -- Cond SetupM + logicalChannelIdentity INTEGER (3..10) OPTIONAL, -- Cond DRB-SetupM + logicalChannelConfig LogicalChannelConfig OPTIONAL, -- Cond SetupM + ..., + [[ drb-TypeChange-r12 ENUMERATED {toMCG} OPTIONAL, -- Need OP + rlc-Config-v1250 RLC-Config-v1250 OPTIONAL -- Need ON + ]], + [[ rlc-Config-v1310 RLC-Config-v1310 OPTIONAL, -- Need ON + drb-TypeLWA-r13 BOOLEAN OPTIONAL, -- Need ON + drb-TypeLWIP-r13 ENUMERATED {lwip, lwip-DL-only, + lwip-UL-only, eutran} OPTIONAL -- Need ON + ]], + [[ rlc-Config-v1430 RLC-Config-v1430 OPTIONAL, -- Need ON + lwip-UL-Aggregation-r14 BOOLEAN OPTIONAL, -- Cond LWIP + lwip-DL-Aggregation-r14 BOOLEAN OPTIONAL, -- Cond LWIP + lwa-WLAN-AC-r14 ENUMERATED {ac-bk, ac-be, ac-vi, ac-vo} OPTIONAL -- Cond UL-LWA + ]] +} + +DRB-ToAddModSCG-r12 ::= SEQUENCE { + drb-Identity-r12 DRB-Identity, + drb-Type-r12 CHOICE { + split-r12 NULL, + scg-r12 SEQUENCE { + eps-BearerIdentity-r12 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + pdcp-Config-r12 PDCP-Config OPTIONAL -- Cond PDCP-S + } + } OPTIONAL, -- Cond SetupS2 + rlc-ConfigSCG-r12 RLC-Config OPTIONAL, -- Cond SetupS + rlc-Config-v1250 RLC-Config-v1250 OPTIONAL, -- Need ON + logicalChannelIdentitySCG-r12 INTEGER (3..10) OPTIONAL, -- Cond DRB-SetupS + logicalChannelConfigSCG-r12 LogicalChannelConfig OPTIONAL, -- Cond SetupS + ..., + [[ rlc-Config-v1430 RLC-Config-v1430 OPTIONAL -- Need ON + ]] +} + +DRB-ToReleaseList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity + +MeasSubframePatternPCell-r10 ::= CHOICE { + release NULL, + setup MeasSubframePattern-r10 +} + +NeighCellsCRS-Info-r11 ::= CHOICE { + release NULL, + setup CRS-AssistanceInfoList-r11 +} + +CRS-AssistanceInfoList-r11 ::= SEQUENCE (SIZE (1..maxCellReport)) OF CRS-AssistanceInfo-r11 + +CRS-AssistanceInfo-r11 ::= SEQUENCE { + physCellId-r11 PhysCellId, + antennaPortsCount-r11 ENUMERATED {an1, an2, an4, spare1}, + mbsfn-SubframeConfigList-r11 MBSFN-SubframeConfigList, + ..., + [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL -- Need ON + ]] +} + +NeighCellsCRS-Info-r13 ::= CHOICE { + release NULL, + setup CRS-AssistanceInfoList-r13 +} + +CRS-AssistanceInfoList-r13 ::= SEQUENCE (SIZE (1..maxCellReport)) OF CRS-AssistanceInfo-r13 + +CRS-AssistanceInfo-r13 ::= SEQUENCE { + physCellId-r13 PhysCellId, + antennaPortsCount-r13 ENUMERATED {an1, an2, an4, spare1}, + mbsfn-SubframeConfigList-r13 MBSFN-SubframeConfigList OPTIONAL, -- Need ON + ..., + [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL -- Need ON + ]] +} + +NAICS-AssistanceInfo-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + neighCellsToReleaseList-r12 NeighCellsToReleaseList-r12 OPTIONAL , -- Need ON + neighCellsToAddModList-r12 NeighCellsToAddModList-r12 OPTIONAL, -- Need ON + servCellp-a-r12 P-a OPTIONAL -- Need ON + } +} + +NeighCellsToReleaseList-r12 ::= SEQUENCE (SIZE (1..maxNeighCell-r12)) OF PhysCellId + +NeighCellsToAddModList-r12 ::= SEQUENCE (SIZE (1..maxNeighCell-r12)) OF NeighCellsInfo-r12 + +NeighCellsInfo-r12 ::= SEQUENCE { + physCellId-r12 PhysCellId, + p-b-r12 INTEGER (0..3), + crs-PortsCount-r12 ENUMERATED {n1, n2, n4, spare}, + mbsfn-SubframeConfig-r12 MBSFN-SubframeConfigList OPTIONAL, -- Need ON + p-aList-r12 SEQUENCE (SIZE (1..maxP-a-PerNeighCell-r12)) OF P-a, + transmissionModeList-r12 BIT STRING (SIZE(8)), + resAllocGranularity-r12 INTEGER (1..4), + ... +} +P-a ::= ENUMERATED { dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} + + +RCLWI-Configuration-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + rclwi-Config-r13 RCLWI-Config-r13 + } +} + +RCLWI-Config-r13 ::= SEQUENCE { + command CHOICE { + steerToWLAN-r13 SEQUENCE { + mobilityConfig-r13 WLAN-Id-List-r12 + }, + steerToLTE-r13 NULL + }, + ... +} + + +RLC-Config ::= CHOICE { + am SEQUENCE { + ul-AM-RLC UL-AM-RLC, + dl-AM-RLC DL-AM-RLC + }, + um-Bi-Directional SEQUENCE { + ul-UM-RLC UL-UM-RLC, + dl-UM-RLC DL-UM-RLC + }, + um-Uni-Directional-UL SEQUENCE { + ul-UM-RLC UL-UM-RLC + }, + um-Uni-Directional-DL SEQUENCE { + dl-UM-RLC DL-UM-RLC + }, + ... +} + +RLC-Config-v1250 ::= SEQUENCE { + ul-extended-RLC-LI-Field-r12 BOOLEAN, + dl-extended-RLC-LI-Field-r12 BOOLEAN +} + +RLC-Config-v1310 ::= SEQUENCE { + ul-extended-RLC-AM-SN-r13 BOOLEAN, + dl-extended-RLC-AM-SN-r13 BOOLEAN, + pollPDU-v1310 PollPDU-v1310 OPTIONAL -- Need OR +} + +RLC-Config-v1430 ::= CHOICE { + release NULL, + setup SEQUENCE { + pollByte-r14 PollByte-r14 + } +} + +UL-AM-RLC ::= SEQUENCE { + t-PollRetransmit T-PollRetransmit, + pollPDU PollPDU, + pollByte PollByte, + maxRetxThreshold ENUMERATED { + t1, t2, t3, t4, t6, t8, t16, t32} +} + +DL-AM-RLC ::= SEQUENCE { + t-Reordering T-Reordering, + t-StatusProhibit T-StatusProhibit +} + +UL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength +} + +DL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength, + t-Reordering T-Reordering +} + +SN-FieldLength ::= ENUMERATED {size5, size10} + +T-PollRetransmit ::= ENUMERATED { + ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, ms800-v1310, + ms1000-v1310, ms2000-v1310, ms4000-v1310, + spare5, spare4, spare3, spare2, spare1} + +PollPDU ::= ENUMERATED { + p4, p8, p16, p32, p64, p128, p256, pInfinity} + +PollPDU-v1310 ::= ENUMERATED { + p512, p1024, p2048, p4096, p6144, p8192, p12288, p16384} + +PollByte ::= ENUMERATED { + kB25, kB50, kB75, kB100, kB125, kB250, kB375, + kB500, kB750, kB1000, kB1250, kB1500, kB2000, + kB3000, kBinfinity, spare1} + +PollByte-r14 ::= ENUMERATED { + kB1, kB2, kB5, kB8, kB10, kB15, kB3500, + kB4000, kB4500, kB5000, kB5500, kB6000, kB6500, + kB7000, kB7500, kB8000, kB9000, kB10000, kB11000, kB12000, + kB13000, kB14000, kB15000, kB16000, kB17000, kB18000, + kB19000, kB20000, kB25000, kB30000, kB35000, kB40000} + +T-Reordering ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms110, + ms120, ms130, ms140, ms150, ms160, ms170, + ms180, ms190, ms200, ms1600-v1310} + +T-StatusProhibit ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, ms800-v1310, + ms1000-v1310, ms1200-v1310, ms1600-v1310, ms2000-v1310, ms2400-v1310, spare2, + spare1} + + +RLF-TimersAndConstants-r9 ::= CHOICE { + release NULL, + setup SEQUENCE { + t301-r9 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t310-r9 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n310-r9 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311-r9 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311-r9 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ... + } +} + +RLF-TimersAndConstants-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + t301-v1310 ENUMERATED { + ms2500, ms3000, ms3500, ms4000, ms5000, + ms6000, ms8000, ms10000}, + ..., + [[ t310-v1330 ENUMERATED {ms4000, ms6000} OPTIONAL -- Need ON + ]] + } +} + +RLF-TimersAndConstantsSCG-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + t313-r12 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n313-r12 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + n314-r12 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ... + } +} + + +RN-SubframeConfig-r10 ::= SEQUENCE { + subframeConfigPattern-r10 CHOICE { + subframeConfigPatternFDD-r10 BIT STRING (SIZE(8)), + subframeConfigPatternTDD-r10 INTEGER (0..31) + } OPTIONAL, -- Need ON + rpdcch-Config-r10 SEQUENCE { + resourceAllocationType-r10 ENUMERATED {type0, type1, type2Localized, type2Distributed, + spare4, spare3, spare2, spare1}, + resourceBlockAssignment-r10 CHOICE { + type01-r10 CHOICE { + nrb6-r10 BIT STRING (SIZE(6)), + nrb15-r10 BIT STRING (SIZE(8)), + nrb25-r10 BIT STRING (SIZE(13)), + nrb50-r10 BIT STRING (SIZE(17)), + nrb75-r10 BIT STRING (SIZE(19)), + nrb100-r10 BIT STRING (SIZE(25)) + }, + type2-r10 CHOICE { + nrb6-r10 BIT STRING (SIZE(5)), + nrb15-r10 BIT STRING (SIZE(7)), + nrb25-r10 BIT STRING (SIZE(9)), + nrb50-r10 BIT STRING (SIZE(11)), + nrb75-r10 BIT STRING (SIZE(12)), + nrb100-r10 BIT STRING (SIZE(13)) + }, + ... + }, + demodulationRS-r10 CHOICE { + interleaving-r10 ENUMERATED {crs}, + noInterleaving-r10 ENUMERATED {crs, dmrs} + }, + pdsch-Start-r10 INTEGER (1..3), + pucch-Config-r10 CHOICE { + tdd CHOICE { + channelSelectionMultiplexingBundling SEQUENCE { + n1PUCCH-AN-List-r10 SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + }, + fallbackForFormat3 SEQUENCE { + n1PUCCH-AN-P0-r10 INTEGER (0..2047), + n1PUCCH-AN-P1-r10 INTEGER (0..2047) OPTIONAL -- Need OR + } + }, + fdd SEQUENCE { + n1PUCCH-AN-P0-r10 INTEGER (0..2047), + n1PUCCH-AN-P1-r10 INTEGER (0..2047) OPTIONAL -- Need OR + } + }, + ... + } OPTIONAL, -- Need ON + ... +} + + +SchedulingRequestConfig ::= CHOICE { + release NULL, + setup SEQUENCE { + sr-PUCCH-ResourceIndex INTEGER (0..2047), + sr-ConfigIndex INTEGER (0..157), + dsr-TransMax ENUMERATED { + n4, n8, n16, n32, n64, spare3, spare2, spare1} + } +} + +SchedulingRequestConfig-v1020 ::= SEQUENCE { + sr-PUCCH-ResourceIndexP1-r10 INTEGER (0..2047) OPTIONAL -- Need OR +} + +SchedulingRequestConfigSCell-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + sr-PUCCH-ResourceIndex-r13 INTEGER (0..2047), + sr-PUCCH-ResourceIndexP1-r13 INTEGER (0..2047) OPTIONAL, -- Need OR + sr-ConfigIndex-r13 INTEGER (0..157), + dsr-TransMax-r13 ENUMERATED { + n4, n8, n16, n32, n64, spare3, spare2, spare1} + } + +} + + +SoundingRS-UL-ConfigCommon ::= CHOICE { + release NULL, + setup SEQUENCE { + srs-BandwidthConfig ENUMERATED {bw0, bw1, bw2, bw3, bw4, bw5, bw6, bw7}, + srs-SubframeConfig ENUMERATED { + sc0, sc1, sc2, sc3, sc4, sc5, sc6, sc7, + sc8, sc9, sc10, sc11, sc12, sc13, sc14, sc15}, + ackNackSRS-SimultaneousTransmission BOOLEAN, + srs-MaxUpPts ENUMERATED {true} OPTIONAL -- Cond TDD + } +} + +SoundingRS-UL-ConfigDedicated ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-Bandwidth ENUMERATED {bw0, bw1, bw2, bw3}, + srs-HoppingBandwidth ENUMERATED {hbw0, hbw1, hbw2, hbw3}, + freqDomainPosition INTEGER (0..23), + duration BOOLEAN, + srs-ConfigIndex INTEGER (0..1023), + transmissionComb INTEGER (0..1), + cyclicShift ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7} + } +} + +SoundingRS-UL-ConfigDedicated-v1020 ::= SEQUENCE { + srs-AntennaPort-r10 SRS-AntennaPort +} + +SoundingRS-UL-ConfigDedicated-v1310 ::= CHOICE{ + release NULL, + setup SEQUENCE { + transmissionComb-v1310 INTEGER (2..3) OPTIONAL, -- Need OR + cyclicShift-v1310 ENUMERATED {cs8, cs9, cs10, cs11} OPTIONAL, -- Need OR + transmissionCombNum-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR + } +} + +SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-UpPtsAdd-r13 ENUMERATED {sym2, sym4}, + srs-Bandwidth-r13 ENUMERATED {bw0, bw1, bw2, bw3}, + srs-HoppingBandwidth-r13 ENUMERATED {hbw0, hbw1, hbw2, hbw3}, + freqDomainPosition-r13 INTEGER (0..23), + duration-r13 BOOLEAN, + srs-ConfigIndex-r13 INTEGER (0..1023), + transmissionComb-r13 INTEGER (0..3), + cyclicShift-r13 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, + cs8, cs9, cs10, cs11}, + srs-AntennaPort-r13 SRS-AntennaPort, + transmissionCombNum-r13 ENUMERATED {n2, n4} + } +} + +SoundingRS-UL-ConfigDedicatedAperiodic-r10 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-ConfigIndexAp-r10 INTEGER (0..31), + srs-ConfigApDCI-Format4-r10 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-r10 OPTIONAL,--Need ON + srs-ActivateAp-r10 CHOICE { + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format0-r10 SRS-ConfigAp-r10, + srs-ConfigApDCI-Format1a2b2c-r10 SRS-ConfigAp-r10, + ... + } + } OPTIONAL -- Need ON + } +} + +SoundingRS-UL-ConfigDedicatedAperiodic-v1310 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format4-v1310 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-v1310 OPTIONAL,--Need ON + srs-ActivateAp-v1310 CHOICE { + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format0-v1310 SRS-ConfigAp-v1310 OPTIONAL, -- Need ON + srs-ConfigApDCI-Format1a2b2c-v1310 SRS-ConfigAp-v1310 OPTIONAL -- Need ON + } + } OPTIONAL -- Need ON + } +} + +SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-UpPtsAdd-r13 ENUMERATED {sym2, sym4}, + srs-ConfigIndexAp-r13 INTEGER (0..31), + srs-ConfigApDCI-Format4-r13 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-r13 OPTIONAL,--Need ON + srs-ActivateAp-r13 CHOICE { + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format0-r13 SRS-ConfigAp-r13, + srs-ConfigApDCI-Format1a2b2c-r13 SRS-ConfigAp-r13 + } + } OPTIONAL -- Need ON + } +} + +SoundingRS-UL-ConfigDedicatedAperiodic-v1430 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-SubframeIndication-r14 INTEGER (1..4) OPTIONAL -- Need ON + } +} + +SRS-ConfigAp-r10 ::= SEQUENCE { + srs-AntennaPortAp-r10 SRS-AntennaPort, + srs-BandwidthAp-r10 ENUMERATED {bw0, bw1, bw2, bw3}, + freqDomainPositionAp-r10 INTEGER (0..23), + transmissionCombAp-r10 INTEGER (0..1), + cyclicShiftAp-r10 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7} +} + +SRS-ConfigAp-v1310 ::= SEQUENCE { + transmissionCombAp-v1310 INTEGER (2..3) OPTIONAL, -- Need OR + cyclicShiftAp-v1310 ENUMERATED {cs8, cs9, cs10, cs11} OPTIONAL, -- Need OR + transmissionCombNum-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR +} + +SRS-ConfigAp-r13 ::= SEQUENCE { + srs-AntennaPortAp-r13 SRS-AntennaPort, + srs-BandwidthAp-r13 ENUMERATED {bw0, bw1, bw2, bw3}, + freqDomainPositionAp-r13 INTEGER (0..23), + transmissionCombAp-r13 INTEGER (0..3), + cyclicShiftAp-r13 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, + cs8, cs9, cs10, cs11}, + transmissionCombNum-r13 ENUMERATED {n2, n4} +} + +SRS-AntennaPort ::= ENUMERATED {an1, an2, an4, spare1} + + +SPS-Config ::= SEQUENCE { + semiPersistSchedC-RNTI C-RNTI OPTIONAL, -- Need OR + sps-ConfigDL SPS-ConfigDL OPTIONAL, -- Need ON + sps-ConfigUL SPS-ConfigUL OPTIONAL -- Need ON +} + +SPS-Config-v1430 ::= SEQUENCE { + ul-SPS-V-RNTI-r14 C-RNTI OPTIONAL, -- Need OR + sl-SPS-V-RNTI-r14 C-RNTI OPTIONAL, -- Need OR + sps-ConfigUL-ToAddModList-r14 SPS-ConfigUL-ToAddModList-r14 OPTIONAL, -- Need ON + sps-ConfigUL-ToReleaseList-r14 SPS-ConfigUL-ToReleaseList-r14 OPTIONAL, -- Need ON + sps-ConfigSL-ToAddModList-r14 SPS-ConfigSL-ToAddModList-r14 OPTIONAL, -- Need ON + sps-ConfigSL-ToReleaseList-r14 SPS-ConfigSL-ToReleaseList-r14 OPTIONAL -- Need ON +} + +SPS-ConfigUL-ToAddModList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigUL + +SPS-ConfigUL-ToReleaseList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigIndex-r14 + +SPS-ConfigSL-ToAddModList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigSL-r14 + +SPS-ConfigSL-ToReleaseList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigIndex-r14 + +SPS-ConfigDL ::= CHOICE{ + release NULL, + setup SEQUENCE { + semiPersistSchedIntervalDL ENUMERATED { + sf10, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, spare6, + spare5, spare4, spare3, spare2, + spare1}, + numberOfConfSPS-Processes INTEGER (1..8), + n1PUCCH-AN-PersistentList N1PUCCH-AN-PersistentList, + ..., + [[ twoAntennaPortActivated-r10 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-PersistentListP1-r10 N1PUCCH-AN-PersistentList + } + } OPTIONAL -- Need ON + ]] + } +} + +SPS-ConfigUL ::= CHOICE { + release NULL, + setup SEQUENCE { + semiPersistSchedIntervalUL ENUMERATED { + sf10, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, sf1-v1430, + sf2-v1430, sf3-v1430, sf4-v1430, sf5-v1430, + spare1}, + implicitReleaseAfter ENUMERATED {e2, e3, e4, e8}, + p0-Persistent SEQUENCE { + p0-NominalPUSCH-Persistent INTEGER (-126..24), + p0-UE-PUSCH-Persistent INTEGER (-8..7) + } OPTIONAL, -- Need OP + twoIntervalsConfig ENUMERATED {true} OPTIONAL, -- Cond TDD + ..., + [[ p0-PersistentSubframeSet2-r12 CHOICE { + release NULL, + setup SEQUENCE { + p0-NominalPUSCH-PersistentSubframeSet2-r12 INTEGER (-126..24), + p0-UE-PUSCH-PersistentSubframeSet2-r12 INTEGER (-8..7) + } + } OPTIONAL -- Need ON + ]], + [[ numberOfConfUlSPS-Processes-r13 INTEGER (1..8) OPTIONAL -- Need OR + ]], + [[ fixedRV-NonAdaptive-r14 ENUMERATED {true} OPTIONAL, -- Need OR + sps-ConfigIndex-r14 SPS-ConfigIndex-r14 OPTIONAL, -- Need OR + semiPersistSchedIntervalUL-v1430 ENUMERATED { + sf50, sf100, sf200, sf300, sf400, sf500, + sf600, sf700, sf800, sf900, sf1000, spare5, + spare4, spare3, spare2, spare1} OPTIONAL -- Need OR + + ]] + } +} + +SPS-ConfigSL-r14 ::= SEQUENCE { + sps-ConfigIndex-r14 SPS-ConfigIndex-r14, + semiPersistSchedIntervalSL-r14 ENUMERATED { + sf20, sf50, sf100, sf200, sf300, sf400, + sf500, sf600, sf700, sf800, sf900, sf1000, + spare4, spare3, spare2, spare1} +} + +SPS-ConfigIndex-r14 ::= INTEGER (1..maxConfigSPS-r14) + +N1PUCCH-AN-PersistentList ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + + +SRS-TPC-PDCCH-Config-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + srs-TPC-RNTI-r14 BIT STRING (SIZE (16)), + startingBitOfFormat3B-r14 INTEGER (0..31), fieldTypeFormat3B-r14 INTEGER (1..4), + srs-CC-SetIndexlist-r14 SEQUENCE (SIZE(1..4)) OF SRS-CC-SetIndex-r14 OPTIONAL -- Cond SRS-Trigger-TypeA + + } +} + +SRS-CC-SetIndex-r14 ::= SEQUENCE { + cc-SetIndex-r14 INTEGER (0..3), + cc-IndexInOneCC-Set-r14 INTEGER (0..7) +} + + +TDD-Config ::= SEQUENCE { + subframeAssignment ENUMERATED { + sa0, sa1, sa2, sa3, sa4, sa5, sa6}, + specialSubframePatterns ENUMERATED { + ssp0, ssp1, ssp2, ssp3, ssp4,ssp5, ssp6, ssp7, + ssp8} +} + +TDD-Config-v1130 ::= SEQUENCE { + specialSubframePatterns-v1130 ENUMERATED {ssp7,ssp9} +} + +TDD-Config-v1430 ::= SEQUENCE { + specialSubframePatterns-v1430 ENUMERATED {ssp10} +} + +TDD-ConfigSL-r12 ::= SEQUENCE { + subframeAssignmentSL-r12 ENUMERATED { + none, sa0, sa1, sa2, sa3, sa4, sa5, sa6} +} + + +TimeAlignmentTimer ::= ENUMERATED { + sf500, sf750, sf1280, sf1920, sf2560, sf5120, + sf10240, infinity} + +TPC-PDCCH-Config ::= CHOICE { + release NULL, + setup SEQUENCE { + tpc-RNTI BIT STRING (SIZE (16)), + tpc-Index TPC-Index + } +} + +TPC-PDCCH-ConfigSCell-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + tpc-Index-PUCCH-SCell-r13 TPC-Index + } +} + +TPC-Index ::= CHOICE { + indexOfFormat3 INTEGER (1..15), + indexOfFormat3A INTEGER (1..31) +} + + +TunnelConfigLWIP-r13 ::= SEQUENCE { + ip-Address-r13 IP-Address-r13, + ike-Identity-r13 IKE-Identity-r13, + ..., + [[ lwip-Counter-r13 INTEGER (0..65535) OPTIONAL -- Cond LWIP-Setup + ]] +} + +IKE-Identity-r13 ::= SEQUENCE { + idI-r13 OCTET STRING +} + +IP-Address-r13 ::= CHOICE { + ipv4-r13 BIT STRING (SIZE (32)), + ipv6-r13 BIT STRING (SIZE (128)) +} + + +UplinkPowerControlCommon ::= SEQUENCE { + p0-NominalPUSCH INTEGER (-126..24), + alpha Alpha-r12, + p0-NominalPUCCH INTEGER (-127..-96), + deltaFList-PUCCH DeltaFList-PUCCH, + deltaPreambleMsg3 INTEGER (-1..6) +} + +UplinkPowerControlCommon-v1020 ::= SEQUENCE { + deltaF-PUCCH-Format3-r10 ENUMERATED {deltaF-1, deltaF0, deltaF1, deltaF2, + deltaF3, deltaF4, deltaF5, deltaF6}, + deltaF-PUCCH-Format1bCS-r10 ENUMERATED {deltaF1, deltaF2, spare2, spare1} +} + +UplinkPowerControlCommon-v1310 ::= SEQUENCE { + deltaF-PUCCH-Format4-r13 ENUMERATED {deltaF16, deltaF15, deltaF14,deltaF13, deltaF12, + deltaF11, deltaF10, spare1} OPTIONAL, -- Need OR + deltaF-PUCCH-Format5-13 ENUMERATED { deltaF13, deltaF12, deltaF11, deltaF10, deltaF9, + deltaF8, deltaF7, spare1} OPTIONAL -- Need OR +} + +UplinkPowerControlCommonPSCell-r12 ::= SEQUENCE { +-- For uplink power control the additional/ missing fields are signalled (compared to SCell) + deltaF-PUCCH-Format3-r12 ENUMERATED {deltaF-1, deltaF0, deltaF1, deltaF2, + deltaF3, deltaF4, deltaF5, deltaF6}, + deltaF-PUCCH-Format1bCS-r12 ENUMERATED {deltaF1, deltaF2, spare2, spare1}, + p0-NominalPUCCH-r12 INTEGER (-127..-96), + deltaFList-PUCCH-r12 DeltaFList-PUCCH +} + + +UplinkPowerControlCommonSCell-r10 ::= SEQUENCE { + p0-NominalPUSCH-r10 INTEGER (-126..24), + alpha-r10 Alpha-r12 +} + +UplinkPowerControlCommonSCell-v1130 ::= SEQUENCE { + deltaPreambleMsg3-r11 INTEGER (-1..6) +} + +UplinkPowerControlCommonSCell-v1310 ::= SEQUENCE { +-- For uplink power control the additional/ missing fields are signalled (compared to SCell) + p0-NominalPUCCH INTEGER (-127..-96), + deltaFList-PUCCH DeltaFList-PUCCH, + deltaF-PUCCH-Format3-r12 ENUMERATED {deltaF-1, deltaF0, deltaF1, + deltaF2, deltaF3, deltaF4, deltaF5, + deltaF6} OPTIONAL, -- Need OR + deltaF-PUCCH-Format1bCS-r12 ENUMERATED {deltaF1, deltaF2, + spare2, spare1} OPTIONAL, -- Need OR + deltaF-PUCCH-Format4-r13 ENUMERATED {deltaF16, deltaF15, deltaF14, + deltaF13, deltaF12, deltaF11, deltaF10, + spare1} OPTIONAL, -- Need OR + deltaF-PUCCH-Format5-13 ENUMERATED { deltaF13, deltaF12, deltaF11, + deltaF10, deltaF9, deltaF8, deltaF7, + spare1} OPTIONAL -- Need OR +} +UplinkPowerControlCommonPUSCH-LessCell-v1430 ::= SEQUENCE { + p0-Nominal-PeriodicSRS-r14 INTEGER (-126..24) OPTIONAL, -- Need OR + p0-Nominal-AperiodicSRS-r14 INTEGER (-126..24) OPTIONAL, -- Need OR + alpha-SRS-r14 Alpha-r12 OPTIONAL -- Need OR +} + +UplinkPowerControlDedicated ::= SEQUENCE { + p0-UE-PUSCH INTEGER (-8..7), + deltaMCS-Enabled ENUMERATED {en0, en1}, + accumulationEnabled BOOLEAN, + p0-UE-PUCCH INTEGER (-8..7), + pSRS-Offset INTEGER (0..15), + filterCoefficient FilterCoefficient DEFAULT fc4 +} + +UplinkPowerControlDedicated-v1020 ::= SEQUENCE { + deltaTxD-OffsetListPUCCH-r10 DeltaTxD-OffsetListPUCCH-r10 OPTIONAL, -- Need OR + pSRS-OffsetAp-r10 INTEGER (0..15) OPTIONAL -- Need OR +} + +UplinkPowerControlDedicated-v1130 ::= SEQUENCE { + pSRS-Offset-v1130 INTEGER (16..31) OPTIONAL, -- Need OR + pSRS-OffsetAp-v1130 INTEGER (16..31) OPTIONAL, -- Need OR + deltaTxD-OffsetListPUCCH-v1130 DeltaTxD-OffsetListPUCCH-v1130 OPTIONAL -- Need OR +} + +UplinkPowerControlDedicated-v1250 ::= SEQUENCE { + set2PowerControlParameter CHOICE { + release NULL, + setup SEQUENCE { + tpc-SubframeSet-r12 BIT STRING (SIZE(10)), + p0-NominalPUSCH-SubframeSet2-r12 INTEGER (-126..24), + alpha-SubframeSet2-r12 Alpha-r12, + p0-UE-PUSCH-SubframeSet2-r12 INTEGER (-8..7) + } + } +} + +UplinkPUSCH-LessPowerControlDedicated-v1430 ::= SEQUENCE { + p0-UE-PeriodicSRS-r14 INTEGER (-8..7) OPTIONAL, -- Need OR + p0-UE-AperiodicSRS-r14 INTEGER (-8..7) OPTIONAL, -- Need OR + accumulationEnabled-r14 BOOLEAN +} + +UplinkPowerControlDedicatedSCell-r10 ::= SEQUENCE { + p0-UE-PUSCH-r10 INTEGER (-8..7), + deltaMCS-Enabled-r10 ENUMERATED {en0, en1}, + accumulationEnabled-r10 BOOLEAN, + pSRS-Offset-r10 INTEGER (0..15), + pSRS-OffsetAp-r10 INTEGER (0..15) OPTIONAL, -- Need OR + filterCoefficient-r10 FilterCoefficient DEFAULT fc4, + pathlossReferenceLinking-r10 ENUMERATED {pCell, sCell} +} + +UplinkPowerControlDedicatedSCell-v1310 ::= SEQUENCE { +--Release 8 + p0-UE-PUCCH INTEGER (-8..7), +--Release 10 + deltaTxD-OffsetListPUCCH-r10 DeltaTxD-OffsetListPUCCH-r10 OPTIONAL -- Need OR +} + +Alpha-r12 ::= ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1} + +DeltaFList-PUCCH ::= SEQUENCE { + deltaF-PUCCH-Format1 ENUMERATED {deltaF-2, deltaF0, deltaF2}, + deltaF-PUCCH-Format1b ENUMERATED {deltaF1, deltaF3, deltaF5}, + deltaF-PUCCH-Format2 ENUMERATED {deltaF-2, deltaF0, deltaF1, deltaF2}, + deltaF-PUCCH-Format2a ENUMERATED {deltaF-2, deltaF0, deltaF2}, + deltaF-PUCCH-Format2b ENUMERATED {deltaF-2, deltaF0, deltaF2} +} + +DeltaTxD-OffsetListPUCCH-r10 ::= SEQUENCE { + deltaTxD-OffsetPUCCH-Format1-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format1a1b-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format22a2b-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format3-r10 ENUMERATED {dB0, dB-2}, + ... + +} + +DeltaTxD-OffsetListPUCCH-v1130 ::= SEQUENCE { + deltaTxD-OffsetPUCCH-Format1bCS-r11 ENUMERATED {dB0, dB-1} +} + + +WLAN-Id-List-r13 ::= SEQUENCE (SIZE (1..maxWLAN-Id-r13)) OF WLAN-Identifiers-r12 + + +WLAN-MobilityConfig-r13 ::= SEQUENCE { + wlan-ToReleaseList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + wlan-ToAddList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + associationTimer-r13 ENUMERATED {s10, s30, + s60, s120, s240} OPTIONAL, -- Need OR + successReportRequested-r13 ENUMERATED {true} OPTIONAL, -- Need OR + ..., + [[ wlan-SuspendConfig-r14 WLAN-SuspendConfig-r14 OPTIONAL -- Need ON + ]] +} + + +NextHopChainingCount ::= INTEGER (0..7) + + +SecurityAlgorithmConfig ::= SEQUENCE { + cipheringAlgorithm CipheringAlgorithm-r12, + integrityProtAlgorithm ENUMERATED { + eia0-v920, eia1, eia2, eia3-v1130, spare4, spare3, + spare2, spare1, ...} +} + +CipheringAlgorithm-r12 ::= ENUMERATED { + eea0, eea1, eea2, eea3-v1130, spare4, spare3, + spare2, spare1, ...} + + +ShortMAC-I ::= BIT STRING (SIZE (16)) + + +AdditionalSpectrumEmission ::= INTEGER (1..32) + +AdditionalSpectrumEmission-v10l0 ::= INTEGER (33..288) + + +ARFCN-ValueCDMA2000 ::= INTEGER (0..2047) + + +ARFCN-ValueEUTRA ::= INTEGER (0..maxEARFCN) + +ARFCN-ValueEUTRA-v9e0 ::= INTEGER (maxEARFCN-Plus1..maxEARFCN2) + +ARFCN-ValueEUTRA-r9 ::= INTEGER (0..maxEARFCN2) + + +ARFCN-ValueGERAN ::= INTEGER (0..1023) + + +ARFCN-ValueUTRA ::= INTEGER (0..16383) + + +BandclassCDMA2000 ::= ENUMERATED { + bc0, bc1, bc2, bc3, bc4, bc5, bc6, bc7, bc8, + bc9, bc10, bc11, bc12, bc13, bc14, bc15, bc16, + bc17, bc18-v9a0, bc19-v9a0, bc20-v9a0, bc21-v9a0, + spare10, spare9, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1, ...} + + +BandIndicatorGERAN ::= ENUMERATED {dcs1800, pcs1900} + + +CarrierFreqCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + arfcn ARFCN-ValueCDMA2000 +} + + +CarrierFreqGERAN ::= SEQUENCE { + arfcn ARFCN-ValueGERAN, + bandIndicator BandIndicatorGERAN +} + + +CarrierFreqsGERAN ::= SEQUENCE { + startingARFCN ARFCN-ValueGERAN, + bandIndicator BandIndicatorGERAN, + followingARFCNs CHOICE { + explicitListOfARFCNs ExplicitListOfARFCNs, + equallySpacedARFCNs SEQUENCE { + arfcn-Spacing INTEGER (1..8), + numberOfFollowingARFCNs INTEGER (0..31) + }, + variableBitMapOfARFCNs OCTET STRING (SIZE (1..16)) + } +} + +ExplicitListOfARFCNs ::= SEQUENCE (SIZE (0..31)) OF ARFCN-ValueGERAN + + +CarrierFreqListMBMS-r11 ::= SEQUENCE (SIZE (1..maxFreqMBMS-r11)) OF ARFCN-ValueEUTRA-r9 + + +CDMA2000-Type ::= ENUMERATED {type1XRTT, typeHRPD} + + +CellIdentity ::= BIT STRING (SIZE (28)) + + +CellIndexList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellIndex + +CellIndex ::= INTEGER (1..maxCellMeas) + + +CellReselectionPriority ::= INTEGER (0..7) + + +CellSelectionInfoCE-r13 ::= SEQUENCE { + q-RxLevMinCE-r13 Q-RxLevMin, + q-QualMinRSRQ-CE-r13 Q-QualMin-r9 OPTIONAL -- Need OR +} + + +CellSelectionInfoCE1-r13 ::= SEQUENCE { + q-RxLevMinCE1-r13 Q-RxLevMin, + q-QualMinRSRQ-CE1-r13 Q-QualMin-r9 OPTIONAL -- Need OR +} + +CellSelectionInfoCE1-v1360 ::= SEQUENCE { + delta-RxLevMinCE1-v1360 INTEGER (-8..-1) +} + +CellReselectionSubPriority-r13 ::= ENUMERATED {oDot2, oDot4, oDot6, oDot8} + + +CSFB-RegistrationParam1XRTT ::= SEQUENCE { + sid BIT STRING (SIZE (15)), + nid BIT STRING (SIZE (16)), + multipleSID BOOLEAN, + multipleNID BOOLEAN, + homeReg BOOLEAN, + foreignSIDReg BOOLEAN, + foreignNIDReg BOOLEAN, + parameterReg BOOLEAN, + powerUpReg BOOLEAN, + registrationPeriod BIT STRING (SIZE (7)), + registrationZone BIT STRING (SIZE (12)), + totalZone BIT STRING (SIZE (3)), + zoneTimer BIT STRING (SIZE (3)) +} + +CSFB-RegistrationParam1XRTT-v920 ::= SEQUENCE { + powerDownReg-r9 ENUMERATED {true} +} + + +CellGlobalIdEUTRA ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellIdentity CellIdentity +} + + +CellGlobalIdUTRA ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellIdentity BIT STRING (SIZE (28)) +} + + +CellGlobalIdGERAN ::= SEQUENCE { + plmn-Identity PLMN-Identity, + locationAreaCode BIT STRING (SIZE (16)), + cellIdentity BIT STRING (SIZE (16)) +} + + +CellGlobalIdCDMA2000 ::= CHOICE { + cellGlobalId1XRTT BIT STRING (SIZE (47)), + cellGlobalIdHRPD BIT STRING (SIZE (128)) +} + + +CellSelectionInfoNFreq-r13 ::= SEQUENCE { + -- Cell selection information as in SIB1 + q-RxLevMin-r13 Q-RxLevMin, + q-RxLevMinOffset INTEGER (1..8) OPTIONAL, -- Need OP + -- Cell re-selection information as in SIB3 + q-Hyst-r13 ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + q-RxLevMinReselection-r13 Q-RxLevMin, + t-ReselectionEUTRA-r13 T-Reselection +} + + +CSG-Identity ::= BIT STRING (SIZE (27)) + + +FreqBandIndicator ::= INTEGER (1..maxFBI) + +FreqBandIndicator-v9e0 ::= INTEGER (maxFBI-Plus1..maxFBI2) + +FreqBandIndicator-r11 ::= INTEGER (1..maxFBI2) + + +MobilityControlInfo ::= SEQUENCE { + targetPhysCellId PhysCellId, + carrierFreq CarrierFreqEUTRA OPTIONAL, -- Cond HO-toEUTRA2 + carrierBandwidth CarrierBandwidthEUTRA OPTIONAL, -- Cond HO-toEUTRA + additionalSpectrumEmission AdditionalSpectrumEmission OPTIONAL, -- Cond HO-toEUTRA + t304 ENUMERATED { + ms50, ms100, ms150, ms200, ms500, ms1000, + ms2000, ms10000-v1310}, + newUE-Identity C-RNTI, + radioResourceConfigCommon RadioResourceConfigCommon, + rach-ConfigDedicated RACH-ConfigDedicated OPTIONAL, -- Need OP + ..., + [[ carrierFreq-v9e0 CarrierFreqEUTRA-v9e0 OPTIONAL -- Need ON + ]], + [[ drb-ContinueROHC-r11 ENUMERATED {true} OPTIONAL -- Cond HO + ]], + [[ mobilityControlInfoV2X-r14 MobilityControlInfoV2X-r14 OPTIONAL, -- Need ON + handoverWithoutWT-Change-r14 ENUMERATED {keepLWA-Config, sendEndMarker} OPTIONAL, -- Cond HO + makeBeforeBreak-r14 ENUMERATED {true} OPTIONAL, -- Need OR + rach-Skip-r14 RACH-Skip-r14 OPTIONAL, -- Need OR + sameSFN-Indication-r14 ENUMERATED {true} OPTIONAL -- Cond HO-SFNsynced + ]] +} + +MobilityControlInfo-v10l0 ::= SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 OPTIONAL -- Need ON +} + +MobilityControlInfoSCG-r12 ::= SEQUENCE { + t307-r12 ENUMERATED { + ms50, ms100, ms150, ms200, ms500, ms1000, + ms2000, spare1}, + ue-IdentitySCG-r12 C-RNTI OPTIONAL, -- Cond SCGEst, + rach-ConfigDedicated-r12 RACH-ConfigDedicated OPTIONAL, -- Need OP + cipheringAlgorithmSCG-r12 CipheringAlgorithm-r12 OPTIONAL, -- Need ON + ..., + [[ makeBeforeBreakSCG-r14 ENUMERATED {true} OPTIONAL, -- Need OR + rach-SkipSCG-r14 RACH-Skip-r14 OPTIONAL -- Need OR + ]] +} + +MobilityControlInfoV2X-r14 ::= SEQUENCE { + v2x-CommTxPoolExceptional-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-CommRxPool-r14 SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommSyncConfig-r14 SL-SyncConfigListV2X-r14 OPTIONAL, -- Need OR + cbr-MobilityTxConfigList-r14 SL-CBR-CommonTxConfigList-r14 OPTIONAL -- Need OR +} + +CarrierBandwidthEUTRA ::= SEQUENCE { + dl-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100, spare10, + spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1}, + ul-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100, spare10, + spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1} OPTIONAL -- Need OP +} + +CarrierFreqEUTRA ::= SEQUENCE { + dl-CarrierFreq ARFCN-ValueEUTRA, + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL -- Cond FDD +} + +CarrierFreqEUTRA-v9e0 ::= SEQUENCE { + dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9, + ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9 OPTIONAL -- Cond FDD +} + +RACH-Skip-r14 ::= SEQUENCE { + targetTA-r14 CHOICE { + ta0-r14 NULL, + mcg-PTAG-r14 NULL, + scg-PTAG-r14 NULL, + mcg-STAG-r14 STAG-Id-r11, + scg-STAG-r14 STAG-Id-r11 + }, + ul-ConfigInfo-r14 SEQUENCE { + numberOfConfUL-Processes-r14 INTEGER (1..8), + ul-SchedInterval-r14 ENUMERATED {sf2, sf5, sf10}, + ul-StartSubframe-r14 INTEGER (0..9), + ul-Grant-r14 BIT STRING (SIZE (16)) + } OPTIONAL -- Need OR +} + + +MobilityParametersCDMA2000 ::= OCTET STRING + + +MobilityStateParameters ::= SEQUENCE { + t-Evaluation ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + t-HystNormal ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + n-CellChangeMedium INTEGER (1..16), + n-CellChangeHigh INTEGER (1..16) +} + + +MultiBandInfoList ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator + +MultiBandInfoList-v9e0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF MultiBandInfo-v9e0 + +MultiBandInfoList-v10j0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF NS-PmaxList-r10 + +MultiBandInfoList-v10l0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF NS-PmaxList-v10l0 + +MultiBandInfoList-r11 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-r11 + +MultiBandInfo-v9e0 ::= SEQUENCE { + freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL -- Need OP +} + + +NS-PmaxList-r10 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-r10 + +NS-PmaxList-v10l0 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-v10l0 + +NS-PmaxValue-r10 ::= SEQUENCE { + additionalPmax-r10 P-Max OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission +} + +NS-PmaxValue-v10l0 ::= SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 OPTIONAL -- Need OP +} + + +PhysCellId ::= INTEGER (0..503) + + +PhysCellIdRange ::= SEQUENCE { + start PhysCellId, + range ENUMERATED { + n4, n8, n12, n16, n24, n32, n48, n64, n84, + n96, n128, n168, n252, n504, spare2, + spare1} OPTIONAL -- Need OP +} + + +PhysCellIdRangeUTRA-FDDList-r9::= SEQUENCE (SIZE (1..maxPhysCellIdRange-r9)) OF PhysCellIdRangeUTRA-FDD-r9 + +PhysCellIdRangeUTRA-FDD-r9 ::= SEQUENCE { + start-r9 PhysCellIdUTRA-FDD, + range-r9 INTEGER (2..512) OPTIONAL -- Need OP +} + + +PhysCellIdCDMA2000 ::= INTEGER (0..maxPNOffset) + + +PhysCellIdGERAN ::= SEQUENCE { + networkColourCode BIT STRING (SIZE (3)), + baseStationColourCode BIT STRING (SIZE (3)) +} + + +PhysCellIdUTRA-FDD ::= INTEGER (0..511) + + +PhysCellIdUTRA-TDD ::= INTEGER (0..127) + + +PLMN-Identity ::= SEQUENCE { + mcc MCC OPTIONAL, -- Cond MCC + mnc MNC +} + +MCC ::= SEQUENCE (SIZE (3)) OF + MCC-MNC-Digit + +MNC ::= SEQUENCE (SIZE (2..3)) OF + MCC-MNC-Digit + +MCC-MNC-Digit ::= INTEGER (0..9) + + + +PLMN-IdentityList3-r11 ::= SEQUENCE (SIZE (1..16)) OF PLMN-Identity + + +PreRegistrationInfoHRPD ::= SEQUENCE { + preRegistrationAllowed BOOLEAN, + preRegistrationZoneId PreRegistrationZoneIdHRPD OPTIONAL, -- cond PreRegAllowed + secondaryPreRegistrationZoneIdList SecondaryPreRegistrationZoneIdListHRPD OPTIONAL -- Need OR +} + +SecondaryPreRegistrationZoneIdListHRPD ::= SEQUENCE (SIZE (1..2)) OF PreRegistrationZoneIdHRPD + +PreRegistrationZoneIdHRPD ::= INTEGER (0..255) + + +Q-QualMin-r9 ::= INTEGER (-34..-3) + + +Q-RxLevMin ::= INTEGER (-70..-22) + + +Q-OffsetRange ::= ENUMERATED { + dB-24, dB-22, dB-20, dB-18, dB-16, dB-14, + dB-12, dB-10, dB-8, dB-6, dB-5, dB-4, dB-3, + dB-2, dB-1, dB0, dB1, dB2, dB3, dB4, dB5, + dB6, dB8, dB10, dB12, dB14, dB16, dB18, + dB20, dB22, dB24} + + +Q-OffsetRangeInterRAT ::= INTEGER (-15..15) + + +ReselectionThreshold ::= INTEGER (0..31) + + +ReselectionThresholdQ-r9 ::= INTEGER (0..31) + + +SCellIndex-r10 ::= INTEGER (1..7) +SCellIndex-r13 ::= INTEGER (1..31) + + +ServCellIndex-r10 ::= INTEGER (0..7) +ServCellIndex-r13 ::= INTEGER (0..31) + + +SpeedStateScaleFactors ::= SEQUENCE { + sf-Medium ENUMERATED {oDot25, oDot5, oDot75, lDot0}, + sf-High ENUMERATED {oDot25, oDot5, oDot75, lDot0} +} + +SystemInfoListGERAN ::= SEQUENCE (SIZE (1..maxGERAN-SI)) OF + OCTET STRING (SIZE (1..23)) + + +SystemTimeInfoCDMA2000 ::= SEQUENCE { + cdma-EUTRA-Synchronisation BOOLEAN, + cdma-SystemTime CHOICE { + synchronousSystemTime BIT STRING (SIZE (39)), + asynchronousSystemTime BIT STRING (SIZE (49)) + } +} + + +TrackingAreaCode ::= BIT STRING (SIZE (16)) + + +T-Reselection ::= INTEGER (0..7) + + +T-ReselectionEUTRA-CE-r13 ::= INTEGER (0..15) + + +AllowedMeasBandwidth ::= ENUMERATED {mbw6, mbw15, mbw25, mbw50, mbw75, mbw100} + + +CSI-RSRP-Range-r12 ::= INTEGER(0..97) + + +Hysteresis ::= INTEGER (0..30) + + +LocationInfo-r10 ::= SEQUENCE { + locationCoordinates-r10 CHOICE { + ellipsoid-Point-r10 OCTET STRING, + ellipsoidPointWithAltitude-r10 OCTET STRING, + ..., + ellipsoidPointWithUncertaintyCircle-r11 OCTET STRING, + ellipsoidPointWithUncertaintyEllipse-r11 OCTET STRING, + ellipsoidPointWithAltitudeAndUncertaintyEllipsoid-r11 OCTET STRING, + ellipsoidArc-r11 OCTET STRING, + polygon-r11 OCTET STRING + }, + horizontalVelocity-r10 OCTET STRING OPTIONAL, + gnss-TOD-msec-r10 OCTET STRING OPTIONAL, + ... +} + + +MBSFN-RSRQ-Range-r12 ::= INTEGER(0..31) + +MeasConfig ::= SEQUENCE { + -- Measurement objects + measObjectToRemoveList MeasObjectToRemoveList OPTIONAL, -- Need ON + measObjectToAddModList MeasObjectToAddModList OPTIONAL, -- Need ON + -- Reporting configurations + reportConfigToRemoveList ReportConfigToRemoveList OPTIONAL, -- Need ON + reportConfigToAddModList ReportConfigToAddModList OPTIONAL, -- Need ON + -- Measurement identities + measIdToRemoveList MeasIdToRemoveList OPTIONAL, -- Need ON + measIdToAddModList MeasIdToAddModList OPTIONAL, -- Need ON + -- Other parameters + quantityConfig QuantityConfig OPTIONAL, -- Need ON + measGapConfig MeasGapConfig OPTIONAL, -- Need ON + s-Measure RSRP-Range OPTIONAL, -- Need ON + preRegistrationInfoHRPD PreRegistrationInfoHRPD OPTIONAL, -- Need OP + speedStatePars CHOICE { + release NULL, + setup SEQUENCE { + mobilityStateParameters MobilityStateParameters, + timeToTrigger-SF SpeedStateScaleFactors + } + } OPTIONAL, -- Need ON + ..., + [[ measObjectToAddModList-v9e0 MeasObjectToAddModList-v9e0 OPTIONAL -- Need ON + ]], + [[ allowInterruptions-r11 BOOLEAN OPTIONAL -- Need ON + ]], + [[ measScaleFactor-r12 CHOICE { + release NULL, + setup MeasScaleFactor-r12 + } OPTIONAL, -- Need ON + measIdToRemoveListExt-r12 MeasIdToRemoveListExt-r12 OPTIONAL, -- Need ON + measIdToAddModListExt-r12 MeasIdToAddModListExt-r12 OPTIONAL, -- Need ON + measRSRQ-OnAllSymbols-r12 BOOLEAN OPTIONAL -- Need ON + ]], + [[ + measObjectToRemoveListExt-r13 MeasObjectToRemoveListExt-r13 OPTIONAL, -- Need ON + measObjectToAddModListExt-r13 MeasObjectToAddModListExt-r13 OPTIONAL, -- Need ON + measIdToAddModList-v1310 MeasIdToAddModList-v1310 OPTIONAL, -- Need ON + measIdToAddModListExt-v1310 MeasIdToAddModListExt-v1310 OPTIONAL -- Need ON + ]], + [[ measGapConfigPerCC-List-r14 MeasGapConfigPerCC-List-r14 OPTIONAL, -- Need ON + measGapSharingConfig-r14 MeasGapSharingConfig-r14 OPTIONAL -- Need ON + ]] +} + +MeasIdToRemoveList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId + +MeasIdToRemoveListExt-r12 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId-v1250 + +MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId + +MeasObjectToRemoveListExt-r13 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId-v1310 + +ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigId + + +MeasDS-Config-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + dmtc-PeriodOffset-r12 CHOICE { + ms40-r12 INTEGER(0..39), + ms80-r12 INTEGER(0..79), + ms160-r12 INTEGER(0..159), + ... + }, + ds-OccasionDuration-r12 CHOICE { + durationFDD-r12 INTEGER(1..maxDS-Duration-r12), + durationTDD-r12 INTEGER(2..maxDS-Duration-r12) + }, + measCSI-RS-ToRemoveList-r12 MeasCSI-RS-ToRemoveList-r12 OPTIONAL, -- Need ON + measCSI-RS-ToAddModList-r12 MeasCSI-RS-ToAddModList-r12 OPTIONAL, -- Need ON + ... + } +} + +MeasCSI-RS-ToRemoveList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Id-r12 + +MeasCSI-RS-ToAddModList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Config-r12 + +MeasCSI-RS-Id-r12 ::= INTEGER (1..maxCSI-RS-Meas-r12) + +MeasCSI-RS-Config-r12 ::= SEQUENCE { + measCSI-RS-Id-r12 MeasCSI-RS-Id-r12, + physCellId-r12 INTEGER (0..503), + scramblingIdentity-r12 INTEGER (0..503), + resourceConfig-r12 INTEGER (0..31), + subframeOffset-r12 INTEGER (0..4), + csi-RS-IndividualOffset-r12 Q-OffsetRange, + ... +} + + +MeasGapConfig ::= CHOICE { + release NULL, + setup SEQUENCE { + gapOffset CHOICE { + gp0 INTEGER (0..39), + gp1 INTEGER (0..79), + + ..., + gp2-r14 INTEGER (0..39), + gp3-r14 INTEGER (0..79), + gp-ncsg0-r14 INTEGER (0..39), + gp-ncsg1-r14 INTEGER (0..79), + gp-ncsg2-r14 INTEGER (0..39), + gp-ncsg3-r14 INTEGER (0..79), + gp-nonUniform1-r14 INTEGER (0..1279), + gp-nonUniform2-r14 INTEGER (0..2559), + gp-nonUniform3-r14 INTEGER (0..5119), + gp-nonUniform4-r14 INTEGER (0..10239) + } + } +} + + + +MeasGapConfigPerCC-List-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + measGapConfigToRemoveList-r14 MeasGapConfigToRemoveList-r14 OPTIONAL, -- Need ON + measGapConfigToAddModList-r14 MeasGapConfigToAddModList-r14 OPTIONAL -- Need ON + } +} + +MeasGapConfigToRemoveList-r14 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF ServCellIndex-r13 + +MeasGapConfigToAddModList-r14 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasGapConfigPerCC-r14 + +MeasGapConfigPerCC-r14 ::= SEQUENCE { + servCellId-r14 ServCellIndex-r13, + measGapConfigCC-r14 MeasGapConfig +} + + +MeasGapSharingConfig-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + measGapSharingScheme-r14 ENUMERATED {scheme00, scheme01, scheme10, scheme11} + } +} + + +MeasId ::= INTEGER (1..maxMeasId) + +MeasId-v1250 ::= INTEGER (maxMeasId-Plus1..maxMeasId-r12) + + +MeasIdToAddModList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod + +MeasIdToAddModList-v1310 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod-v1310 + +MeasIdToAddModListExt-r12 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddModExt-r12 + +MeasIdToAddModListExt-v1310 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod-v1310 + +MeasIdToAddMod ::= SEQUENCE { + measId MeasId, + measObjectId MeasObjectId, + reportConfigId ReportConfigId +} + +MeasIdToAddModExt-r12 ::= SEQUENCE { + measId-v1250 MeasId-v1250, + measObjectId-r12 MeasObjectId, + reportConfigId-r12 ReportConfigId +} + +MeasIdToAddMod-v1310 ::= SEQUENCE { + measObjectId-v1310 MeasObjectId-v1310 OPTIONAL +} + + +MeasObjectCDMA2000 ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + carrierFreq CarrierFreqCDMA2000, + searchWindowSize INTEGER (0..15) OPTIONAL, -- Need ON + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CellsToAddModListCDMA2000 OPTIONAL, -- Need ON + cellForWhichToReportCGI PhysCellIdCDMA2000 OPTIONAL, -- Need ON + ... +} + +CellsToAddModListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModCDMA2000 + +CellsToAddModCDMA2000 ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdCDMA2000 +} + + +MeasObjectEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + allowedMeasBandwidth AllowedMeasBandwidth, + presenceAntennaPort1 PresenceAntennaPort1, + neighCellConfig NeighCellConfig, + offsetFreq Q-OffsetRange DEFAULT dB0, + -- Cell list + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CellsToAddModList OPTIONAL, -- Need ON + -- Black list + blackCellsToRemoveList CellIndexList OPTIONAL, -- Need ON + blackCellsToAddModList BlackCellsToAddModList OPTIONAL, -- Need ON + cellForWhichToReportCGI PhysCellId OPTIONAL, -- Need ON + ..., + [[measCycleSCell-r10 MeasCycleSCell-r10 OPTIONAL, -- Need ON + measSubframePatternConfigNeigh-r10 MeasSubframePatternConfigNeigh-r10 OPTIONAL -- Need ON + ]], + [[widebandRSRQ-Meas-r11 BOOLEAN OPTIONAL -- Cond WB-RSRQ + ]], + [[ altTTT-CellsToRemoveList-r12 CellIndexList OPTIONAL, -- Need ON + altTTT-CellsToAddModList-r12 AltTTT-CellsToAddModList-r12 OPTIONAL, -- Need ON + t312-r12 CHOICE { + release NULL, + setup ENUMERATED {ms0, ms50, ms100, ms200, + ms300, ms400, ms500, ms1000} + } OPTIONAL, -- Need ON + reducedMeasPerformance-r12 BOOLEAN OPTIONAL, -- Need ON + measDS-Config-r12 MeasDS-Config-r12 OPTIONAL -- Need ON + ]], + [[ + whiteCellsToRemoveList-r13 CellIndexList OPTIONAL, -- Need ON + whiteCellsToAddModList-r13 WhiteCellsToAddModList-r13 OPTIONAL, -- Need ON + rmtc-Config-r13 RMTC-Config-r13 OPTIONAL, -- Need ON + carrierFreq-r13 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Need ON + ]], + [[ + tx-ResourcePoolToRemoveList-r14 Tx-ResourcePoolMeasList-r14 OPTIONAL, -- Need ON + tx-ResourcePoolToAddList-r14 Tx-ResourcePoolMeasList-r14 OPTIONAL, -- Need ON + fembms-MixedCarrier-r14 BOOLEAN OPTIONAL -- Need ON + ]] +} + +MeasObjectEUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +CellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddMod + +CellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellId, + cellIndividualOffset Q-OffsetRange +} + +BlackCellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF BlackCellsToAddMod + +BlackCellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellIdRange PhysCellIdRange +} + +MeasCycleSCell-r10 ::= ENUMERATED {sf160, sf256, sf320, sf512, + sf640, sf1024, sf1280, spare1} + +MeasSubframePatternConfigNeigh-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + measSubframePatternNeigh-r10 MeasSubframePattern-r10, + measSubframeCellList-r10 MeasSubframeCellList-r10 OPTIONAL -- Cond always + } +} + +MeasSubframeCellList-r10 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF PhysCellIdRange + +AltTTT-CellsToAddModList-r12 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF AltTTT-CellsToAddMod-r12 + +AltTTT-CellsToAddMod-r12 ::= SEQUENCE { + cellIndex-r12 INTEGER (1..maxCellMeas), + physCellIdRange-r12 PhysCellIdRange +} + +WhiteCellsToAddModList-r13 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF WhiteCellsToAddMod-r13 + +WhiteCellsToAddMod-r13 ::= SEQUENCE { + cellIndex-r13 INTEGER (1..maxCellMeas), + physCellIdRange-r13 PhysCellIdRange +} + +RMTC-Config-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + rmtc-Period-r13 ENUMERATED {ms40, ms80, ms160, ms320, ms640}, + rmtc-SubframeOffset-r13 INTEGER(0..639) OPTIONAL, -- Need ON + measDuration-r13 ENUMERATED {sym1, sym14, sym28, sym42, sym70}, + ... + } +} + +Tx-ResourcePoolMeasList-r14 ::= SEQUENCE (SIZE (1..maxSL-PoolToMeasure-r14)) OF SL-V2X-TxPoolReportIdentity-r14 + + +MeasObjectGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + ncc-Permitted BIT STRING(SIZE (8)) DEFAULT '11111111'B, + cellForWhichToReportCGI PhysCellIdGERAN OPTIONAL, -- Need ON + ... +} + + +MeasObjectId ::= INTEGER (1..maxObjectId) + +MeasObjectId-v1310 ::= INTEGER (maxObjectId-Plus1-r13..maxObjectId-r13) + +MeasObjectId-r13 ::= INTEGER (1..maxObjectId-r13) + + +MeasObjectToAddModList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod + +MeasObjectToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddModExt-r13 + +MeasObjectToAddModList-v9e0 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod-v9e0 + +MeasObjectToAddMod ::= SEQUENCE { + measObjectId MeasObjectId, + measObject CHOICE { + measObjectEUTRA MeasObjectEUTRA, + measObjectUTRA MeasObjectUTRA, + measObjectGERAN MeasObjectGERAN, + measObjectCDMA2000 MeasObjectCDMA2000, + ..., + measObjectWLAN-r13 MeasObjectWLAN-r13 + } +} + +MeasObjectToAddModExt-r13 ::= SEQUENCE { + measObjectId-r13 MeasObjectId-v1310, + measObject-r13 CHOICE { + measObjectEUTRA-r13 MeasObjectEUTRA, + measObjectUTRA-r13 MeasObjectUTRA, + measObjectGERAN-r13 MeasObjectGERAN, + measObjectCDMA2000-r13 MeasObjectCDMA2000, + ..., + measObjectWLAN-v1320 MeasObjectWLAN-r13 + } +} + +MeasObjectToAddMod-v9e0 ::= SEQUENCE { + measObjectEUTRA-v9e0 MeasObjectEUTRA-v9e0 OPTIONAL -- Cond eutra +} + + +MeasObjectUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CHOICE { + cellsToAddModListUTRA-FDD CellsToAddModListUTRA-FDD, + cellsToAddModListUTRA-TDD CellsToAddModListUTRA-TDD + } OPTIONAL, -- Need ON + cellForWhichToReportCGI CHOICE { + utra-FDD PhysCellIdUTRA-FDD, + utra-TDD PhysCellIdUTRA-TDD + } OPTIONAL, -- Need ON + ..., + [[ csg-allowedReportingCells-v930 CSG-AllowedReportingCells-r9 OPTIONAL -- Need ON + ]], + [[ reducedMeasPerformance-r12 BOOLEAN OPTIONAL -- Need ON + ]] +} + +CellsToAddModListUTRA-FDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-FDD + +CellsToAddModUTRA-FDD ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdUTRA-FDD +} + +CellsToAddModListUTRA-TDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-TDD + +CellsToAddModUTRA-TDD ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdUTRA-TDD +} + +CSG-AllowedReportingCells-r9 ::= SEQUENCE { + physCellIdRangeUTRA-FDDList-r9 PhysCellIdRangeUTRA-FDDList-r9 OPTIONAL -- Need OR +} + +MeasObjectWLAN-r13 ::= SEQUENCE { + carrierFreq-r13 CHOICE { + bandIndicatorListWLAN-r13 SEQUENCE (SIZE (1..maxWLAN-Bands-r13)) OF WLAN-BandIndicator-r13, + carrierInfoListWLAN-r13 SEQUENCE (SIZE (1..maxWLAN-CarrierInfo-r13)) OF WLAN-CarrierInfo-r13 + } OPTIONAL, -- Need ON + wlan-ToAddModList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + wlan-ToRemoveList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + ... +} + +WLAN-BandIndicator-r13 ::= ENUMERATED {band2dot4, band5, band60-v1430, spare5, spare4, spare3, spare2, spare1, ...} + + +MeasResults ::= SEQUENCE { + measId MeasId, + measResultPCell SEQUENCE { + rsrpResult RSRP-Range, + rsrqResult RSRQ-Range + }, + measResultNeighCells CHOICE { + measResultListEUTRA MeasResultListEUTRA, + measResultListUTRA MeasResultListUTRA, + measResultListGERAN MeasResultListGERAN, + measResultsCDMA2000 MeasResultsCDMA2000, + ... + } OPTIONAL, + ..., + [[ measResultForECID-r9 MeasResultForECID-r9 OPTIONAL + ]], + [[ locationInfo-r10 LocationInfo-r10 OPTIONAL, + measResultServFreqList-r10 MeasResultServFreqList-r10 OPTIONAL + ]], + [[ measId-v1250 MeasId-v1250 OPTIONAL, + measResultPCell-v1250 RSRQ-Range-v1250 OPTIONAL, + measResultCSI-RS-List-r12 MeasResultCSI-RS-List-r12 OPTIONAL + ]], + [[ measResultForRSSI-r13 MeasResultForRSSI-r13 OPTIONAL, + measResultServFreqListExt-r13 MeasResultServFreqListExt-r13 OPTIONAL, + measResultSSTD-r13 MeasResultSSTD-r13 OPTIONAL, + measResultPCell-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL, + ul-PDCP-DelayResultList-r13 UL-PDCP-DelayResultList-r13 OPTIONAL, + measResultListWLAN-r13 MeasResultListWLAN-r13 OPTIONAL + ]], + [[ measResultPCell-v1360 RSRP-Range-v1360 OPTIONAL + ]], + [[ measResultListCBR-r14 MeasResultListCBR-r14 OPTIONAL, + measResultListWLAN-r14 MeasResultListWLAN-r14 OPTIONAL + ]] +} + +MeasResultListEUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultEUTRA + +MeasResultEUTRA ::= SEQUENCE { + physCellId PhysCellId, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdEUTRA, + trackingAreaCode TrackingAreaCode, + plmn-IdentityList PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + rsrpResult RSRP-Range OPTIONAL, + rsrqResult RSRQ-Range OPTIONAL, + ..., + [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL + ]], + [[ primaryPLMN-Suitable-r12 ENUMERATED {true} OPTIONAL, + measResult-v1250 RSRQ-Range-v1250 OPTIONAL + ]], + [[ rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL, + cgi-Info-v1310 SEQUENCE { + freqBandIndicator-r13 FreqBandIndicator-r11 OPTIONAL, + multiBandInfoList-r13 MultiBandInfoList-r11 OPTIONAL, + freqBandIndicatorPriority-r13 ENUMERATED {true} OPTIONAL + } OPTIONAL + ]], + [[ + measResult-v1360 RSRP-Range-v1360 OPTIONAL + ]] + } +} + +MeasResultServFreqList-r10 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF MeasResultServFreq-r10 + +MeasResultServFreqListExt-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultServFreq-r13 + +MeasResultServFreq-r10 ::= SEQUENCE { + servFreqId-r10 ServCellIndex-r10, + measResultSCell-r10 SEQUENCE { + rsrpResultSCell-r10 RSRP-Range, + rsrqResultSCell-r10 RSRQ-Range + } OPTIONAL, + measResultBestNeighCell-r10 SEQUENCE { + physCellId-r10 PhysCellId, + rsrpResultNCell-r10 RSRP-Range, + rsrqResultNCell-r10 RSRQ-Range + } OPTIONAL, + ..., + [[ measResultSCell-v1250 RSRQ-Range-v1250 OPTIONAL, + measResultBestNeighCell-v1250 RSRQ-Range-v1250 OPTIONAL + ]], + [[ measResultSCell-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL, + measResultBestNeighCell-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL + ]] +} + +MeasResultServFreq-r13 ::= SEQUENCE { + servFreqId-r13 ServCellIndex-r13, + measResultSCell-r13 SEQUENCE { + rsrpResultSCell-r13 RSRP-Range, + rsrqResultSCell-r13 RSRQ-Range-r13, + rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL + } OPTIONAL, + measResultBestNeighCell-r13 SEQUENCE { + physCellId-r13 PhysCellId, + rsrpResultNCell-r13 RSRP-Range, + rsrqResultNCell-r13 RSRQ-Range-r13, + rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL + } OPTIONAL, + ..., + [[ measResultBestNeighCell-v1360 SEQUENCE { + rsrpResultNCell-v1360 RSRP-Range-v1360 + } OPTIONAL + ]] +} + +MeasResultCSI-RS-List-r12 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCSI-RS-r12 + +MeasResultCSI-RS-r12 ::= SEQUENCE { + measCSI-RS-Id-r12 MeasCSI-RS-Id-r12, + csi-RSRP-Result-r12 CSI-RSRP-Range-r12, + ... +} + +MeasResultListUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultUTRA + +MeasResultUTRA ::= SEQUENCE { + physCellId CHOICE { + fdd PhysCellIdUTRA-FDD, + tdd PhysCellIdUTRA-TDD + }, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdUTRA, + locationAreaCode BIT STRING (SIZE (16)) OPTIONAL, + routingAreaCode BIT STRING (SIZE (8)) OPTIONAL, + plmn-IdentityList PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + utra-RSCP INTEGER (-5..91) OPTIONAL, + utra-EcN0 INTEGER (0..49) OPTIONAL, + ..., + [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL + ]], + [[ primaryPLMN-Suitable-r12 ENUMERATED {true} OPTIONAL + ]] + } +} + +MeasResultListGERAN ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultGERAN + +MeasResultGERAN ::= SEQUENCE { + carrierFreq CarrierFreqGERAN, + physCellId PhysCellIdGERAN, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdGERAN, + routingAreaCode BIT STRING (SIZE (8)) OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + rssi INTEGER (0..63), + ... + } +} + +MeasResultsCDMA2000 ::= SEQUENCE { + preRegistrationStatusHRPD BOOLEAN, + measResultListCDMA2000 MeasResultListCDMA2000 +} + +MeasResultListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCDMA2000 + +MeasResultCDMA2000 ::= SEQUENCE { + physCellId PhysCellIdCDMA2000, + cgi-Info CellGlobalIdCDMA2000 OPTIONAL, + measResult SEQUENCE { + pilotPnPhase INTEGER (0..32767) OPTIONAL, + pilotStrength INTEGER (0..63), + ... + } +} + +MeasResultListWLAN-r13 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultWLAN-r13 + +MeasResultListWLAN-r14 ::= SEQUENCE (SIZE (1..maxWLAN-Id-Report-r14)) OF MeasResultWLAN-r13 + +MeasResultWLAN-r13 ::= SEQUENCE { + wlan-Identifiers-r13 WLAN-Identifiers-r12, + carrierInfoWLAN-r13 WLAN-CarrierInfo-r13 OPTIONAL, + bandWLAN-r13 WLAN-BandIndicator-r13 OPTIONAL, + rssiWLAN-r13 WLAN-RSSI-Range-r13, + availableAdmissionCapacityWLAN-r13 INTEGER (0..31250) OPTIONAL, + backhaulDL-BandwidthWLAN-r13 WLAN-backhaulRate-r12 OPTIONAL, + backhaulUL-BandwidthWLAN-r13 WLAN-backhaulRate-r12 OPTIONAL, + channelUtilizationWLAN-r13 INTEGER (0..255) OPTIONAL, + stationCountWLAN-r13 INTEGER (0..65535) OPTIONAL, + connectedWLAN-r13 ENUMERATED {true} OPTIONAL, + ... +} + +MeasResultListCBR-r14 ::= SEQUENCE (SIZE (1..maxCBR-Report-r14)) OF MeasResultCBR-r14 + +MeasResultCBR-r14 ::= SEQUENCE { + poolIdentity-r14 SL-V2X-TxPoolReportIdentity-r14, + cbr-PSSCH-r14 SL-CBR-r14, + cbr-PSCCH-r14 SL-CBR-r14 OPTIONAL +} + +MeasResultForECID-r9 ::= SEQUENCE { + ue-RxTxTimeDiffResult-r9 INTEGER (0..4095), + currentSFN-r9 BIT STRING (SIZE (10)) +} + +PLMN-IdentityList2 ::= SEQUENCE (SIZE (1..5)) OF PLMN-Identity + +AdditionalSI-Info-r9 ::= SEQUENCE { + csg-MemberStatus-r9 ENUMERATED {member} OPTIONAL, + csg-Identity-r9 CSG-Identity OPTIONAL +} +MeasResultForRSSI-r13 ::= SEQUENCE { + rssi-Result-r13 RSSI-Range-r13, + channelOccupancy-r13 INTEGER (0..100), + ... +} + +UL-PDCP-DelayResultList-r13 ::= SEQUENCE (SIZE (1..maxQCI-r13)) OF UL-PDCP-DelayResult-r13 + + +UL-PDCP-DelayResult-r13 ::= SEQUENCE { + qci-Id-r13 ENUMERATED {qci1, qci2, qci3, qci4, spare4, spare3, spare2, spare1}, + excessDelay-r13 INTEGER (0..31), + ... +} + + +MeasResultSSTD-r13 ::= SEQUENCE { + sfn-OffsetResult-r13 INTEGER (0..1023), + frameBoundaryOffsetResult-r13 INTEGER (-5..4), + subframeBoundaryOffsetResult-r13 INTEGER (0..127) +} + + +MeasScaleFactor-r12 ::= ENUMERATED {sf-EUTRA-cf1, sf-EUTRA-cf2} + + +QuantityConfig ::= SEQUENCE { + quantityConfigEUTRA QuantityConfigEUTRA OPTIONAL, -- Need ON + quantityConfigUTRA QuantityConfigUTRA OPTIONAL, -- Need ON + quantityConfigGERAN QuantityConfigGERAN OPTIONAL, -- Need ON + quantityConfigCDMA2000 QuantityConfigCDMA2000 OPTIONAL, -- Need ON + ..., + [[ quantityConfigUTRA-v1020 QuantityConfigUTRA-v1020 OPTIONAL -- Need ON + ]], + [[ quantityConfigEUTRA-v1250 QuantityConfigEUTRA-v1250 OPTIONAL -- Need ON + ]], + [[ quantityConfigEUTRA-v1310 QuantityConfigEUTRA-v1310 OPTIONAL, -- Need ON + quantityConfigWLAN-r13 QuantityConfigWLAN-r13 OPTIONAL -- Need ON + ]] +} + +QuantityConfigEUTRA ::= SEQUENCE { + filterCoefficientRSRP FilterCoefficient DEFAULT fc4, + filterCoefficientRSRQ FilterCoefficient DEFAULT fc4 +} + +QuantityConfigEUTRA-v1250 ::= SEQUENCE { + filterCoefficientCSI-RSRP-r12 FilterCoefficient OPTIONAL -- Need OR +} + +QuantityConfigEUTRA-v1310 ::= SEQUENCE { + filterCoefficientRS-SINR-r13 FilterCoefficient DEFAULT fc4 +} + +QuantityConfigUTRA ::= SEQUENCE { + measQuantityUTRA-FDD ENUMERATED {cpich-RSCP, cpich-EcN0}, + measQuantityUTRA-TDD ENUMERATED {pccpch-RSCP}, + filterCoefficient FilterCoefficient DEFAULT fc4 +} + +QuantityConfigUTRA-v1020 ::= SEQUENCE { + filterCoefficient2-FDD-r10 FilterCoefficient DEFAULT fc4 +} + +QuantityConfigGERAN ::= SEQUENCE { + measQuantityGERAN ENUMERATED {rssi}, + filterCoefficient FilterCoefficient DEFAULT fc2 +} + +QuantityConfigCDMA2000 ::= SEQUENCE { + measQuantityCDMA2000 ENUMERATED {pilotStrength, pilotPnPhaseAndPilotStrength} +} + +QuantityConfigWLAN-r13 ::= SEQUENCE { + measQuantityWLAN-r13 ENUMERATED {rssiWLAN}, + filterCoefficient-r13 FilterCoefficient DEFAULT fc4 +} + + +ReportConfigEUTRA ::= SEQUENCE { + triggerType CHOICE { + event SEQUENCE { + eventId CHOICE { + eventA1 SEQUENCE { + a1-Threshold ThresholdEUTRA + }, + eventA2 SEQUENCE { + a2-Threshold ThresholdEUTRA + }, + eventA3 SEQUENCE { + a3-Offset INTEGER (-30..30), + reportOnLeave BOOLEAN + }, + eventA4 SEQUENCE { + a4-Threshold ThresholdEUTRA + }, + eventA5 SEQUENCE { + a5-Threshold1 ThresholdEUTRA, + a5-Threshold2 ThresholdEUTRA + }, + ..., + eventA6-r10 SEQUENCE { + a6-Offset-r10 INTEGER (-30..30), + a6-ReportOnLeave-r10 BOOLEAN + }, + eventC1-r12 SEQUENCE { + c1-Threshold-r12 ThresholdEUTRA-v1250, + c1-ReportOnLeave-r12 BOOLEAN + }, + eventC2-r12 SEQUENCE { + c2-RefCSI-RS-r12 MeasCSI-RS-Id-r12, + c2-Offset-r12 INTEGER (-30..30), + c2-ReportOnLeave-r12 BOOLEAN + }, + eventV1-r14 SEQUENCE { + v1-Threshold-r14 SL-CBR-r14 + }, + eventV2-r14 SEQUENCE { + v2-Threshold-r14 SL-CBR-r14 + } + }, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + periodical SEQUENCE { + purpose ENUMERATED { + reportStrongestCells, reportCGI} + } + }, + triggerQuantity ENUMERATED {rsrp, rsrq}, + reportQuantity ENUMERATED {sameAsTriggerQuantity, both}, + maxReportCells INTEGER (1..maxCellReport), + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + ..., + [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL, -- Cond reportCGI + ue-RxTxTimeDiffPeriodical-r9 ENUMERATED {setup} OPTIONAL -- Need OR + ]], + [[ includeLocationInfo-r10 ENUMERATED {true} OPTIONAL, -- Need OR + reportAddNeighMeas-r10 ENUMERATED {setup} OPTIONAL -- Need OR + ]], + [[ alternativeTimeToTrigger-r12 CHOICE { + release NULL, + setup TimeToTrigger + } OPTIONAL, -- Need ON + useT312-r12 BOOLEAN OPTIONAL, -- Need ON + usePSCell-r12 BOOLEAN OPTIONAL, -- Need ON + aN-Threshold1-v1250 RSRQ-RangeConfig-r12 OPTIONAL, -- Need ON + a5-Threshold2-v1250 RSRQ-RangeConfig-r12 OPTIONAL, -- Need ON + reportStrongestCSI-RSs-r12 BOOLEAN OPTIONAL, -- Need ON + reportCRS-Meas-r12 BOOLEAN OPTIONAL, -- Need ON + triggerQuantityCSI-RS-r12 BOOLEAN OPTIONAL -- Need ON + ]], + [[ reportSSTD-Meas-r13 BOOLEAN OPTIONAL, -- Need ON + rs-sinr-Config-r13 CHOICE { + release NULL, + setup SEQUENCE { + triggerQuantity-v1310 ENUMERATED {sinr} OPTIONAL, -- Need ON + aN-Threshold1-r13 RS-SINR-Range-r13 OPTIONAL, -- Need ON + a5-Threshold2-r13 RS-SINR-Range-r13 OPTIONAL, -- Need ON + reportQuantity-v1310 ENUMERATED {rsrpANDsinr, rsrqANDsinr, all} + } + } OPTIONAL, -- Need ON + useWhiteCellList-r13 BOOLEAN OPTIONAL, -- Need ON + measRSSI-ReportConfig-r13 MeasRSSI-ReportConfig-r13 OPTIONAL, -- Need ON + includeMultiBandInfo-r13 ENUMERATED {true} OPTIONAL, -- Cond reportCGI + ul-DelayConfig-r13 UL-DelayConfig-r13 OPTIONAL -- Need ON + ]], + [[ ue-RxTxTimeDiffPeriodicalTDD-r13 BOOLEAN OPTIONAL -- Need ON + ]], + [[ + purpose-v1430 ENUMERATED {reportLocation, sidelink, spare2, spare1} + OPTIONAL -- Need ON + ]] +} + +RSRQ-RangeConfig-r12 ::= CHOICE { + release NULL, + setup RSRQ-Range-v1250 +} + +ThresholdEUTRA ::= CHOICE{ + threshold-RSRP RSRP-Range, + threshold-RSRQ RSRQ-Range +} + +ThresholdEUTRA-v1250 ::= CSI-RSRP-Range-r12 + +MeasRSSI-ReportConfig-r13 ::= SEQUENCE { + channelOccupancyThreshold-r13 RSSI-Range-r13 OPTIONAL -- Need OR +} + + +ReportConfigId ::= INTEGER (1..maxReportConfigId) + + +ReportConfigInterRAT ::= SEQUENCE { + triggerType CHOICE { + event SEQUENCE { + eventId CHOICE { + eventB1 SEQUENCE { + b1-Threshold CHOICE { + b1-ThresholdUTRA ThresholdUTRA, + b1-ThresholdGERAN ThresholdGERAN, + b1-ThresholdCDMA2000 ThresholdCDMA2000 + } + }, + eventB2 SEQUENCE { + b2-Threshold1 ThresholdEUTRA, + b2-Threshold2 CHOICE { + b2-Threshold2UTRA ThresholdUTRA, + b2-Threshold2GERAN ThresholdGERAN, + b2-Threshold2CDMA2000 ThresholdCDMA2000 + } + }, + ..., + eventW1-r13 SEQUENCE { + w1-Threshold-r13 WLAN-RSSI-Range-r13 + }, + eventW2-r13 SEQUENCE { + w2-Threshold1-r13 WLAN-RSSI-Range-r13, + w2-Threshold2-r13 WLAN-RSSI-Range-r13 + }, + eventW3-r13 SEQUENCE { + w3-Threshold-r13 WLAN-RSSI-Range-r13 + } + }, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + periodical SEQUENCE { + purpose ENUMERATED { + reportStrongestCells, + reportStrongestCellsForSON, + reportCGI} + } + }, + maxReportCells INTEGER (1..maxCellReport), + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + ..., + [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL -- Cond reportCGI + ]], + [[ reportQuantityUTRA-FDD-r10 ENUMERATED {both} OPTIONAL -- Need OR + ]], + [[ includeLocationInfo-r11 BOOLEAN OPTIONAL -- Need ON + ]], + [[ b2-Threshold1-v1250 CHOICE { + release NULL, + setup RSRQ-Range-v1250 + } OPTIONAL -- Need ON + ]], + [[ reportQuantityWLAN-r13 ReportQuantityWLAN-r13 OPTIONAL -- Need ON + ]], + [[ reportAnyWLAN-r14 BOOLEAN OPTIONAL -- Need ON + ]] +} + +ThresholdUTRA ::= CHOICE{ + utra-RSCP INTEGER (-5..91), + utra-EcN0 INTEGER (0..49) +} + +ThresholdGERAN ::= INTEGER (0..63) + +ThresholdCDMA2000 ::= INTEGER (0..63) + +ReportQuantityWLAN-r13 ::= SEQUENCE { + bandRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + carrierInfoRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + availableAdmissionCapacityRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + backhaulDL-BandwidthRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + backhaulUL-BandwidthRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + channelUtilizationRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + stationCountRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + ... +} + + +ReportConfigToAddModList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigToAddMod + +ReportConfigToAddMod ::= SEQUENCE { + reportConfigId ReportConfigId, + reportConfig CHOICE { + reportConfigEUTRA ReportConfigEUTRA, + reportConfigInterRAT ReportConfigInterRAT + } +} + + + +ReportInterval ::= ENUMERATED { + ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, + min1, min6, min12, min30, min60, spare3, spare2, spare1} + + +RSRP-Range ::= INTEGER(0..97) + +RSRP-Range-v1360 ::= INTEGER(-17..-1) + +RSRP-RangeSL-r12 ::= INTEGER(0..13) + +RSRP-RangeSL2-r12 ::= INTEGER(0..7) + +RSRP-RangeSL3-r12 ::= INTEGER(0..11) + +RSRP-RangeSL4-r13 ::= INTEGER(0..49) + + +RSRQ-Range ::= INTEGER(0..34) + +RSRQ-Range-v1250 ::= INTEGER(-30..46) + +RSRQ-Range-r13 ::= INTEGER(-30..46) + + +RSRQ-Type-r12 ::= SEQUENCE { + allSymbols-r12 BOOLEAN, + wideBand-r12 BOOLEAN +} + + +RS-SINR-Range-r13 ::= INTEGER(0..127) + + +RSSI-Range-r13 ::= INTEGER(0..76) + + +TimeToTrigger ::= ENUMERATED { + ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256, + ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560, + ms5120} + + +UL-DelayConfig-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + delayThreshold-r13 ENUMERATED { + ms30, ms40, ms50, ms60, ms70, ms80, + ms90,ms100, ms150, ms300, ms500, ms750, spare4, spare3, spare2, spare1} + } +} + + +WLAN-CarrierInfo-r13 ::= SEQUENCE { + operatingClass-r13 INTEGER (0..255) OPTIONAL, -- Need ON + countryCode-r13 ENUMERATED {unitedStates, europe, japan, global, ...} OPTIONAL, -- Need ON + channelNumbers-r13 WLAN-ChannelList-r13 OPTIONAL, -- Need ON + ... +} + +WLAN-ChannelList-r13 ::= SEQUENCE (SIZE (1..maxWLAN-Channels-r13)) OF WLAN-Channel-r13 + +WLAN-Channel-r13 ::= INTEGER(0..255) + + +WLAN-RSSI-Range-r13 ::= INTEGER(0..141) + + +WLAN-Status-r13 ::= ENUMERATED {successfulAssociation, failureWlanRadioLink, failureWlanUnavailable, failureTimeout} + +WLAN-Status-v1430 ::= ENUMERATED {suspended, resumed} + + +WLAN-SuspendConfig-r14 ::= SEQUENCE { + wlan-SuspendResumeAllowed-r14 BOOLEAN OPTIONAL, -- Need ON + wlan-SuspendTriggersStatusReport-r14 BOOLEAN OPTIONAL -- Need ON +} + + +AbsoluteTimeInfo-r10 ::= BIT STRING (SIZE (48)) + + +AreaConfiguration-r10 ::= CHOICE { + cellGlobalIdList-r10 CellGlobalIdList-r10, + trackingAreaCodeList-r10 TrackingAreaCodeList-r10 +} + +AreaConfiguration-v1130 ::= SEQUENCE { + trackingAreaCodeList-v1130 TrackingAreaCodeList-v1130 +} + +CellGlobalIdList-r10 ::= SEQUENCE (SIZE (1..32)) OF CellGlobalIdEUTRA + +TrackingAreaCodeList-r10 ::= SEQUENCE (SIZE (1..8)) OF TrackingAreaCode + +TrackingAreaCodeList-v1130 ::= SEQUENCE { + plmn-Identity-perTAC-List-r11 SEQUENCE (SIZE (1..8)) OF PLMN-Identity +} + + +BandCombinationList-r14 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombination-r14 + +BandCombination-r14 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandIndication-r14 + +BandIndication-r14 ::= SEQUENCE { + bandEUTRA-r14 FreqBandIndicator-r11, + ca-BandwidthClassDL-r14 CA-BandwidthClass-r10, + ca-BandwidthClassUL-r14 CA-BandwidthClass-r10 OPTIONAL +} + + +C-RNTI ::= BIT STRING (SIZE (16)) + + +DedicatedInfoCDMA2000 ::= OCTET STRING + + +DedicatedInfoNAS ::= OCTET STRING + + +FilterCoefficient ::= ENUMERATED { + fc0, fc1, fc2, fc3, fc4, fc5, + fc6, fc7, fc8, fc9, fc11, fc13, + fc15, fc17, fc19, spare1, ...} + + +LoggingDuration-r10 ::= ENUMERATED { + min10, min20, min40, min60, min90, min120, spare2, spare1} + + +LoggingInterval-r10 ::= ENUMERATED { + ms1280, ms2560, ms5120, ms10240, ms20480, + ms30720, ms40960, ms61440} + + +MeasSubframePattern-r10 ::= CHOICE { + subframePatternFDD-r10 BIT STRING (SIZE (40)), + subframePatternTDD-r10 CHOICE { + subframeConfig1-5-r10 BIT STRING (SIZE (20)), + subframeConfig0-r10 BIT STRING (SIZE (70)), + subframeConfig6-r10 BIT STRING (SIZE (60)), + ... + }, + ... +} + + +MMEC ::= BIT STRING (SIZE (8)) + + +NeighCellConfig ::= BIT STRING (SIZE (2)) + + +OtherConfig-r9 ::= SEQUENCE { + reportProximityConfig-r9 ReportProximityConfig-r9 OPTIONAL, -- Need ON + ..., + [[ idc-Config-r11 IDC-Config-r11 OPTIONAL, -- Need ON + powerPrefIndicationConfig-r11 PowerPrefIndicationConfig-r11 OPTIONAL, -- Need ON + obtainLocationConfig-r11 ObtainLocationConfig-r11 OPTIONAL -- Need ON + ]], + [[ bw-PreferenceIndicationTimer-r14 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, + s30, s60, s90, s120, s300, s600, spare3, + spare2, spare1} OPTIONAL, -- Need OR + sps-AssistanceInfoReport-r14 BOOLEAN OPTIONAL, -- Need ON + delayBudgetReportingConfig-r14 CHOICE{ + release NULL, + setup SEQUENCE{ + delayBudgetReportingProhibitTimer-r14 ENUMERATED { + s0, s0dot4, s0dot8, + s1dot6, s3, s6, s12, s30} + } + } OPTIONAL, -- Need ON + rlm-ReportConfig-r14 CHOICE { + release NULL, + setup SEQUENCE{ + rlmReportTimer-r14 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, s30, + s60, s90, s120, s300, s600, spare3, spare2, spare1}, + rlmReportRep-MPDCCH-r14 ENUMERATED {setup} OPTIONAL -- Need OR + } + } OPTIONAL -- Need ON + ]] +} + +IDC-Config-r11 ::= SEQUENCE { + idc-Indication-r11 ENUMERATED {setup} OPTIONAL, -- Need OR + autonomousDenialParameters-r11 SEQUENCE { + autonomousDenialSubframes-r11 ENUMERATED {n2, n5, n10, n15, + n20, n30, spare2, spare1}, + autonomousDenialValidity-r11 ENUMERATED { + sf200, sf500, sf1000, sf2000, + spare4, spare3, spare2, spare1} + } OPTIONAL, -- Need OR + ..., + [[ idc-Indication-UL-CA-r11 ENUMERATED {setup} OPTIONAL -- Cond idc-Ind + ]], + [[ idc-HardwareSharingIndication-r13 ENUMERATED {setup} OPTIONAL -- Need OR + ]] +} + +ObtainLocationConfig-r11 ::= SEQUENCE { + obtainLocation-r11 ENUMERATED {setup} OPTIONAL -- Need OR +} + +PowerPrefIndicationConfig-r11 ::= CHOICE{ + release NULL, + setup SEQUENCE{ + powerPrefIndicationTimer-r11 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, + s30, s60, s90, s120, s300, s600, spare3, + spare2, spare1} + } +} + +ReportProximityConfig-r9 ::= SEQUENCE { + proximityIndicationEUTRA-r9 ENUMERATED {enabled} OPTIONAL, -- Need OR + proximityIndicationUTRA-r9 ENUMERATED {enabled} OPTIONAL -- Need OR +} + + +RAND-CDMA2000 ::= BIT STRING (SIZE (32)) + + +RAT-Type ::= ENUMERATED { + eutra, utra, geran-cs, geran-ps, cdma2000-1XRTT, + spare3, spare2, spare1, ...} + + +ResumeIdentity-r13 ::= BIT STRING (SIZE(40)) + + +RRC-TransactionIdentifier ::= INTEGER (0..3) + + +S-TMSI ::= SEQUENCE { + mmec MMEC, + m-TMSI BIT STRING (SIZE (32)) +} + + +TraceReference-r10 ::= SEQUENCE { + plmn-Identity-r10 PLMN-Identity, + traceId-r10 OCTET STRING (SIZE (3)) +} + + +UE-CapabilityRAT-ContainerList ::=SEQUENCE (SIZE (0..maxRAT-Capabilities)) OF UE-CapabilityRAT-Container + +UE-CapabilityRAT-Container ::= SEQUENCE { + rat-Type RAT-Type, + ueCapabilityRAT-Container OCTET STRING +} + + +UE-EUTRA-Capability ::= SEQUENCE { + accessStratumRelease AccessStratumRelease, + ue-Category INTEGER (1..5), + pdcp-Parameters PDCP-Parameters, + phyLayerParameters PhyLayerParameters, + rf-Parameters RF-Parameters, + measParameters MeasParameters, + featureGroupIndicators BIT STRING (SIZE (32)) OPTIONAL, + interRAT-Parameters SEQUENCE { + utraFDD IRAT-ParametersUTRA-FDD OPTIONAL, + utraTDD128 IRAT-ParametersUTRA-TDD128 OPTIONAL, + utraTDD384 IRAT-ParametersUTRA-TDD384 OPTIONAL, + utraTDD768 IRAT-ParametersUTRA-TDD768 OPTIONAL, + geran IRAT-ParametersGERAN OPTIONAL, + cdma2000-HRPD IRAT-ParametersCDMA2000-HRPD OPTIONAL, + cdma2000-1xRTT IRAT-ParametersCDMA2000-1XRTT OPTIONAL + }, + nonCriticalExtension UE-EUTRA-Capability-v920-IEs OPTIONAL +} + +-- Late non critical extensions +UE-EUTRA-Capability-v9a0-IEs ::= SEQUENCE { + featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9c0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9c0-IEs ::= SEQUENCE { + interRAT-ParametersUTRA-v9c0 IRAT-ParametersUTRA-v9c0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9d0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9d0-IEs ::= SEQUENCE { + phyLayerParameters-v9d0 PhyLayerParameters-v9d0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9e0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9e0-IEs ::= SEQUENCE { + rf-Parameters-v9e0 RF-Parameters-v9e0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9h0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9h0-IEs ::= SEQUENCE { + interRAT-ParametersUTRA-v9h0 IRAT-ParametersUTRA-v9h0 OPTIONAL, + -- Following field is only to be used for late REL-9 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10c0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10c0-IEs ::= SEQUENCE { + otdoa-PositioningCapabilities-r10 OTDOA-PositioningCapabilities-r10 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10f0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10f0-IEs ::= SEQUENCE { + rf-Parameters-v10f0 RF-Parameters-v10f0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10i0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10i0-IEs ::= SEQUENCE { + rf-Parameters-v10i0 RF-Parameters-v10i0 OPTIONAL, + -- Following field is only to be used for late REL-10 extensions + lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v10j0-IEs) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11d0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10j0-IEs ::= SEQUENCE { + rf-Parameters-v10j0 RF-Parameters-v10j0 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-EUTRA-Capability-v11d0-IEs ::= SEQUENCE { + rf-Parameters-v11d0 RF-Parameters-v11d0 OPTIONAL, + otherParameters-v11d0 Other-Parameters-v11d0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11x0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v11x0-IEs ::= SEQUENCE { + -- Following field is only to be used for late REL-11 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v12b0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v12b0-IEs ::= SEQUENCE { + rf-Parameters-v12b0 RF-Parameters-v12b0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v12x0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v12x0-IEs ::= SEQUENCE { + -- Following field is only to be used for late REL-12 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1370-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1370-IEs ::= SEQUENCE { + ce-Parameters-v1370 CE-Parameters-v1370 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1370 UE-EUTRA-CapabilityAddXDD-Mode-v1370 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1370 UE-EUTRA-CapabilityAddXDD-Mode-v1370 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +UE-EUTRA-Capability-v920-IEs ::= SEQUENCE { + phyLayerParameters-v920 PhyLayerParameters-v920, + interRAT-ParametersGERAN-v920 IRAT-ParametersGERAN-v920, + interRAT-ParametersUTRA-v920 IRAT-ParametersUTRA-v920 OPTIONAL, + interRAT-ParametersCDMA2000-v920 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL, + deviceType-r9 ENUMERATED {noBenFromBatConsumpOpt} OPTIONAL, + csg-ProximityIndicationParameters-r9 CSG-ProximityIndicationParameters-r9, + neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9, + son-Parameters-r9 SON-Parameters-r9, + nonCriticalExtension UE-EUTRA-Capability-v940-IEs OPTIONAL +} + +UE-EUTRA-Capability-v940-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v9a0-IEs) + OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1020-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1020-IEs ::= SEQUENCE { + ue-Category-v1020 INTEGER (6..8) OPTIONAL, + phyLayerParameters-v1020 PhyLayerParameters-v1020 OPTIONAL, + rf-Parameters-v1020 RF-Parameters-v1020 OPTIONAL, + measParameters-v1020 MeasParameters-v1020 OPTIONAL, + featureGroupIndRel10-r10 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersCDMA2000-v1020 IRAT-ParametersCDMA2000-1XRTT-v1020 OPTIONAL, + ue-BasedNetwPerfMeasParameters-r10 UE-BasedNetwPerfMeasParameters-r10 OPTIONAL, + interRAT-ParametersUTRA-TDD-v1020 IRAT-ParametersUTRA-TDD-v1020 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1060-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1060-IEs ::= SEQUENCE { + fdd-Add-UE-EUTRA-Capabilities-v1060 UE-EUTRA-CapabilityAddXDD-Mode-v1060 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1060 UE-EUTRA-CapabilityAddXDD-Mode-v1060 OPTIONAL, + rf-Parameters-v1060 RF-Parameters-v1060 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1090-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1090-IEs ::= SEQUENCE { + rf-Parameters-v1090 RF-Parameters-v1090 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1130-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1130-IEs ::= SEQUENCE { + pdcp-Parameters-v1130 PDCP-Parameters-v1130, + phyLayerParameters-v1130 PhyLayerParameters-v1130 OPTIONAL, + rf-Parameters-v1130 RF-Parameters-v1130, + measParameters-v1130 MeasParameters-v1130, + interRAT-ParametersCDMA2000-v1130 IRAT-ParametersCDMA2000-v1130, + otherParameters-r11 Other-Parameters-r11, + fdd-Add-UE-EUTRA-Capabilities-v1130 UE-EUTRA-CapabilityAddXDD-Mode-v1130 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1130 UE-EUTRA-CapabilityAddXDD-Mode-v1130 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1170-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1170-IEs ::= SEQUENCE { + phyLayerParameters-v1170 PhyLayerParameters-v1170 OPTIONAL, + ue-Category-v1170 INTEGER (9..10) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1180-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1180-IEs ::= SEQUENCE { + rf-Parameters-v1180 RF-Parameters-v1180 OPTIONAL, + mbms-Parameters-r11 MBMS-Parameters-r11 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1180 UE-EUTRA-CapabilityAddXDD-Mode-v1180 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1180 UE-EUTRA-CapabilityAddXDD-Mode-v1180 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11a0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v11a0-IEs ::= SEQUENCE { + ue-Category-v11a0 INTEGER (11..12) OPTIONAL, + measParameters-v11a0 MeasParameters-v11a0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1250-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1250-IEs ::= SEQUENCE { + phyLayerParameters-v1250 PhyLayerParameters-v1250 OPTIONAL, + rf-Parameters-v1250 RF-Parameters-v1250 OPTIONAL, + rlc-Parameters-r12 RLC-Parameters-r12 OPTIONAL, + ue-BasedNetwPerfMeasParameters-v1250 UE-BasedNetwPerfMeasParameters-v1250 OPTIONAL, + ue-CategoryDL-r12 INTEGER (0..14) OPTIONAL, + ue-CategoryUL-r12 INTEGER (0..13) OPTIONAL, + wlan-IW-Parameters-r12 WLAN-IW-Parameters-r12 OPTIONAL, + measParameters-v1250 MeasParameters-v1250 OPTIONAL, + dc-Parameters-r12 DC-Parameters-r12 OPTIONAL, + mbms-Parameters-v1250 MBMS-Parameters-v1250 OPTIONAL, + mac-Parameters-r12 MAC-Parameters-r12 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1250 UE-EUTRA-CapabilityAddXDD-Mode-v1250 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1250 UE-EUTRA-CapabilityAddXDD-Mode-v1250 OPTIONAL, + sl-Parameters-r12 SL-Parameters-r12 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1260-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1260-IEs ::= SEQUENCE { + ue-CategoryDL-v1260 INTEGER (15..16) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1270-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1270-IEs ::= SEQUENCE { + rf-Parameters-v1270 RF-Parameters-v1270 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1280-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1280-IEs ::= SEQUENCE { + phyLayerParameters-v1280 PhyLayerParameters-v1280 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1310-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1310-IEs ::= SEQUENCE { + ue-CategoryDL-v1310 ENUMERATED {n17, m1} OPTIONAL, + ue-CategoryUL-v1310 ENUMERATED {n14, m1} OPTIONAL, + pdcp-Parameters-v1310 PDCP-Parameters-v1310, + rlc-Parameters-v1310 RLC-Parameters-v1310, + mac-Parameters-v1310 MAC-Parameters-v1310 OPTIONAL, + phyLayerParameters-v1310 PhyLayerParameters-v1310 OPTIONAL, + rf-Parameters-v1310 RF-Parameters-v1310 OPTIONAL, + measParameters-v1310 MeasParameters-v1310 OPTIONAL, + dc-Parameters-v1310 DC-Parameters-v1310 OPTIONAL, + sl-Parameters-v1310 SL-Parameters-v1310 OPTIONAL, + scptm-Parameters-r13 SCPTM-Parameters-r13 OPTIONAL, + ce-Parameters-r13 CE-Parameters-r13 OPTIONAL, + interRAT-ParametersWLAN-r13 IRAT-ParametersWLAN-r13, + laa-Parameters-r13 LAA-Parameters-r13 OPTIONAL, + lwa-Parameters-r13 LWA-Parameters-r13 OPTIONAL, + wlan-IW-Parameters-v1310 WLAN-IW-Parameters-v1310, + lwip-Parameters-r13 LWIP-Parameters-r13, + fdd-Add-UE-EUTRA-Capabilities-v1310 UE-EUTRA-CapabilityAddXDD-Mode-v1310 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1310 UE-EUTRA-CapabilityAddXDD-Mode-v1310 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1320-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1320-IEs ::= SEQUENCE { + ce-Parameters-v1320 CE-Parameters-v1320 OPTIONAL, + phyLayerParameters-v1320 PhyLayerParameters-v1320 OPTIONAL, + rf-Parameters-v1320 RF-Parameters-v1320 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1320 UE-EUTRA-CapabilityAddXDD-Mode-v1320 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1320 UE-EUTRA-CapabilityAddXDD-Mode-v1320 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1330-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1330-IEs ::= SEQUENCE { + ue-CategoryDL-v1330 INTEGER (18..19) OPTIONAL, + phyLayerParameters-v1330 PhyLayerParameters-v1330 OPTIONAL, + ue-CE-NeedULGaps-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1340-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1340-IEs ::= SEQUENCE { + ue-CategoryUL-v1340 INTEGER (15) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1350-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1350-IEs ::= SEQUENCE { + ue-CategoryDL-v1350 ENUMERATED {oneBis} OPTIONAL, + ue-CategoryUL-v1350 ENUMERATED {oneBis} OPTIONAL, + ce-Parameters-v1350 CE-Parameters-v1350, + nonCriticalExtension UE-EUTRA-Capability-v1360-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1360-IEs ::= SEQUENCE { + other-Parameters-v1360 Other-Parameters-v1360 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1430-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1430-IEs ::= SEQUENCE { + phyLayerParameters-v1430 PhyLayerParameters-v1430, + ue-CategoryDL-v1430 ENUMERATED {m2} OPTIONAL, + ue-CategoryUL-v1430 ENUMERATED {n16, n17, n18, n19, n20, m2} OPTIONAL, + ue-CategoryUL-v1430b ENUMERATED {n21} OPTIONAL, + mac-Parameters-v1430 MAC-Parameters-v1430 OPTIONAL, + measParameters-v1430 MeasParameters-v1430 OPTIONAL, + pdcp-Parameters-v1430 PDCP-Parameters-v1430 OPTIONAL, + rlc-Parameters-v1430 RLC-Parameters-v1430, + rf-Parameters-v1430 RF-Parameters-v1430 OPTIONAL, + laa-Parameters-v1430 LAA-Parameters-v1430 OPTIONAL, + lwa-Parameters-v1430 LWA-Parameters-v1430 OPTIONAL, + lwip-Parameters-v1430 LWIP-Parameters-v1430 OPTIONAL, + otherParameters-v1430 Other-Parameters-v1430, + mmtel-Parameters-r14 MMTEL-Parameters-r14 OPTIONAL, + mobilityParameters-r14 MobilityParameters-r14 OPTIONAL, + ce-Parameters-v1430 CE-Parameters-v1430, + fdd-Add-UE-EUTRA-Capabilities-v1430 UE-EUTRA-CapabilityAddXDD-Mode-v1430 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1430 UE-EUTRA-CapabilityAddXDD-Mode-v1430 OPTIONAL, + mbms-Parameters-v1430 MBMS-Parameters-v1430 OPTIONAL, + sl-Parameters-v1430 SL-Parameters-v1430 OPTIONAL, + ue-BasedNetwPerfMeasParameters-v1430 UE-BasedNetwPerfMeasParameters-v1430 OPTIONAL, + highSpeedEnhParameters-r14 HighSpeedEnhParameters-r14 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1440-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1440-IEs ::= SEQUENCE { + lwa-Parameters-v1440 LWA-Parameters-v1440, + mac-Parameters-v1440 MAC-Parameters-v1440, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-r9 ::= SEQUENCE { + phyLayerParameters-r9 PhyLayerParameters OPTIONAL, + featureGroupIndicators-r9 BIT STRING (SIZE (32)) OPTIONAL, + featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersGERAN-r9 IRAT-ParametersGERAN OPTIONAL, + interRAT-ParametersUTRA-r9 IRAT-ParametersUTRA-v920 OPTIONAL, + interRAT-ParametersCDMA2000-r9 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL, + neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9 OPTIONAL, + ... +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1060 ::= SEQUENCE { + phyLayerParameters-v1060 PhyLayerParameters-v1020 OPTIONAL, + featureGroupIndRel10-v1060 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersCDMA2000-v1060 IRAT-ParametersCDMA2000-1XRTT-v1020 OPTIONAL, + interRAT-ParametersUTRA-TDD-v1060 IRAT-ParametersUTRA-TDD-v1020 OPTIONAL, + ..., + [[ otdoa-PositioningCapabilities-r10 OTDOA-PositioningCapabilities-r10 OPTIONAL + ]] +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1130 ::= SEQUENCE { + phyLayerParameters-v1130 PhyLayerParameters-v1130 OPTIONAL, + measParameters-v1130 MeasParameters-v1130 OPTIONAL, + otherParameters-r11 Other-Parameters-r11 OPTIONAL, + ... +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1180 ::= SEQUENCE { + mbms-Parameters-r11 MBMS-Parameters-r11 +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1250 ::= SEQUENCE { + phyLayerParameters-v1250 PhyLayerParameters-v1250 OPTIONAL, + measParameters-v1250 MeasParameters-v1250 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1310 ::= SEQUENCE { + phyLayerParameters-v1310 PhyLayerParameters-v1310 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1320 ::= SEQUENCE { + phyLayerParameters-v1320 PhyLayerParameters-v1320 OPTIONAL, + scptm-Parameters-r13 SCPTM-Parameters-r13 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1370 ::= SEQUENCE { + ce-Parameters-v1370 CE-Parameters-v1370 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1430 ::= SEQUENCE { + phyLayerParameters-v1430 PhyLayerParameters-v1430 OPTIONAL, + mmtel-Parameters-r14 MMTEL-Parameters-r14 OPTIONAL +} + +AccessStratumRelease ::= ENUMERATED { + rel8, rel9, rel10, rel11, rel12, rel13, + rel14, spare1, ...} + +MobilityParameters-r14 ::= SEQUENCE { + makeBeforeBreak-r14 ENUMERATED {supported} OPTIONAL, + rach-Less-r14 ENUMERATED {supported} OPTIONAL +} + +DC-Parameters-r12 ::= SEQUENCE { + drb-TypeSplit-r12 ENUMERATED {supported} OPTIONAL, + drb-TypeSCG-r12 ENUMERATED {supported} OPTIONAL +} + +DC-Parameters-v1310 ::= SEQUENCE { + pdcp-TransferSplitUL-r13 ENUMERATED {supported} OPTIONAL, + ue-SSTD-Meas-r13 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-r12 ::= SEQUENCE { + logicalChannelSR-ProhibitTimer-r12 ENUMERATED {supported} OPTIONAL, + longDRX-Command-r12 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-v1310 ::= SEQUENCE { + extendedMAC-LengthField-r13 ENUMERATED {supported} OPTIONAL, + extendedLongDRX-r13 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-v1430 ::= SEQUENCE { + shortSPS-IntervalFDD-r14 ENUMERATED {supported} OPTIONAL, + shortSPS-IntervalTDD-r14 ENUMERATED {supported} OPTIONAL, + skipUplinkDynamic-r14 ENUMERATED {supported} OPTIONAL, + skipUplinkSPS-r14 ENUMERATED {supported} OPTIONAL, + multipleUplinkSPS-r14 ENUMERATED {supported} OPTIONAL, + dataInactMon-r14 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-v1440 ::= SEQUENCE { + rai-Support-r14 ENUMERATED {supported} OPTIONAL +} + +RLC-Parameters-r12 ::= SEQUENCE { + extended-RLC-LI-Field-r12 ENUMERATED {supported} +} + +RLC-Parameters-v1310 ::= SEQUENCE { + extendedRLC-SN-SO-Field-r13 ENUMERATED {supported} OPTIONAL +} + +RLC-Parameters-v1430 ::= SEQUENCE { + extendedPollByte-r14 ENUMERATED {supported} OPTIONAL +} + +PDCP-Parameters ::= SEQUENCE { + supportedROHC-Profiles SEQUENCE { + profile0x0001 BOOLEAN, + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0101 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + maxNumberROHC-ContextSessions ENUMERATED { + cs2, cs4, cs8, cs12, cs16, cs24, cs32, + cs48, cs64, cs128, cs256, cs512, cs1024, + cs16384, spare2, spare1} DEFAULT cs16, + ... +} + +PDCP-Parameters-v1130 ::= SEQUENCE { + pdcp-SN-Extension-r11 ENUMERATED {supported} OPTIONAL, + supportRohcContextContinue-r11 ENUMERATED {supported} OPTIONAL +} + +PDCP-Parameters-v1310 ::= SEQUENCE { + pdcp-SN-Extension-18bits-r13 ENUMERATED {supported} OPTIONAL +} + +PDCP-Parameters-v1430 ::= SEQUENCE { + supportedUplinkOnlyROHC-Profiles-r14 SEQUENCE { + profile0x0006-r14 BOOLEAN + }, + maxNumberROHC-ContextSessions-r14 ENUMERATED { + cs2, cs4, cs8, cs12, cs16, cs24, cs32, + cs48, cs64, cs128, cs256, cs512, cs1024, + cs16384, spare2, spare1} DEFAULT cs16 +} + +PhyLayerParameters ::= SEQUENCE { + ue-TxAntennaSelectionSupported BOOLEAN, + ue-SpecificRefSigsSupported BOOLEAN +} + +PhyLayerParameters-v920 ::= SEQUENCE { + enhancedDualLayerFDD-r9 ENUMERATED {supported} OPTIONAL, + enhancedDualLayerTDD-r9 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v9d0 ::= SEQUENCE { + tm5-FDD-r9 ENUMERATED {supported} OPTIONAL, + tm5-TDD-r9 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1020 ::= SEQUENCE { + twoAntennaPortsForPUCCH-r10 ENUMERATED {supported} OPTIONAL, + tm9-With-8Tx-FDD-r10 ENUMERATED {supported} OPTIONAL, + pmi-Disabling-r10 ENUMERATED {supported} OPTIONAL, + crossCarrierScheduling-r10 ENUMERATED {supported} OPTIONAL, + simultaneousPUCCH-PUSCH-r10 ENUMERATED {supported} OPTIONAL, + multiClusterPUSCH-WithinCC-r10 ENUMERATED {supported} OPTIONAL, + nonContiguousUL-RA-WithinCC-List-r10 NonContiguousUL-RA-WithinCC-List-r10 OPTIONAL +} + +PhyLayerParameters-v1130 ::= SEQUENCE { + crs-InterfHandl-r11 ENUMERATED {supported} OPTIONAL, + ePDCCH-r11 ENUMERATED {supported} OPTIONAL, + multiACK-CSI-Reporting-r11 ENUMERATED {supported} OPTIONAL, + ss-CCH-InterfHandl-r11 ENUMERATED {supported} OPTIONAL, + tdd-SpecialSubframe-r11 ENUMERATED {supported} OPTIONAL, + txDiv-PUCCH1b-ChSelect-r11 ENUMERATED {supported} OPTIONAL, + ul-CoMP-r11 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1170 ::= SEQUENCE { + interBandTDD-CA-WithDifferentConfig-r11 BIT STRING (SIZE (2)) OPTIONAL +} + +PhyLayerParameters-v1250 ::= SEQUENCE { + e-HARQ-Pattern-FDD-r12 ENUMERATED {supported} OPTIONAL, + enhanced-4TxCodebook-r12 ENUMERATED {supported} OPTIONAL, + tdd-FDD-CA-PCellDuplex-r12 BIT STRING (SIZE (2)) OPTIONAL, + phy-TDD-ReConfig-TDD-PCell-r12 ENUMERATED {supported} OPTIONAL, + phy-TDD-ReConfig-FDD-PCell-r12 ENUMERATED {supported} OPTIONAL, + pusch-FeedbackMode-r12 ENUMERATED {supported} OPTIONAL, + pusch-SRS-PowerControl-SubframeSet-r12 ENUMERATED {supported} OPTIONAL, + csi-SubframeSet-r12 ENUMERATED {supported} OPTIONAL, + noResourceRestrictionForTTIBundling-r12 ENUMERATED {supported} OPTIONAL, + discoverySignalsInDeactSCell-r12 ENUMERATED {supported} OPTIONAL, + naics-Capability-List-r12 NAICS-Capability-List-r12 OPTIONAL +} + +PhyLayerParameters-v1280 ::= SEQUENCE { + alternativeTBS-Indices-r12 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1310 ::= SEQUENCE { + aperiodicCSI-Reporting-r13 BIT STRING (SIZE (2)) OPTIONAL, + codebook-HARQ-ACK-r13 BIT STRING (SIZE (2)) OPTIONAL, + crossCarrierScheduling-B5C-r13 ENUMERATED {supported} OPTIONAL, + fdd-HARQ-TimingTDD-r13 ENUMERATED {supported} OPTIONAL, + maxNumberUpdatedCSI-Proc-r13 INTEGER(5..32) OPTIONAL, + pucch-Format4-r13 ENUMERATED {supported} OPTIONAL, + pucch-Format5-r13 ENUMERATED {supported} OPTIONAL, + pucch-SCell-r13 ENUMERATED {supported} OPTIONAL, + spatialBundling-HARQ-ACK-r13 ENUMERATED {supported} OPTIONAL, + supportedBlindDecoding-r13 SEQUENCE { + maxNumberDecoding-r13 INTEGER(1..32) OPTIONAL, + pdcch-CandidateReductions-r13 ENUMERATED {supported} OPTIONAL, + skipMonitoringDCI-Format0-1A-r13 ENUMERATED {supported} OPTIONAL + } OPTIONAL, + uci-PUSCH-Ext-r13 ENUMERATED {supported} OPTIONAL, + crs-InterfMitigationTM10-r13 ENUMERATED {supported} OPTIONAL, + pdsch-CollisionHandling-r13 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1320 ::= SEQUENCE { + mimo-UE-Parameters-r13 MIMO-UE-Parameters-r13 OPTIONAL +} + +PhyLayerParameters-v1330 ::= SEQUENCE { + cch-InterfMitigation-RefRecTypeA-r13 ENUMERATED {supported} OPTIONAL, + cch-InterfMitigation-RefRecTypeB-r13 ENUMERATED {supported} OPTIONAL, + cch-InterfMitigation-MaxNumCCs-r13 INTEGER (1.. maxServCell-r13) OPTIONAL, + crs-InterfMitigationTM1toTM9-r13 INTEGER (1.. maxServCell-r13) OPTIONAL +} + +PhyLayerParameters-v1430 ::= SEQUENCE { + ce-PUSCH-NB-MaxTBS-r14 ENUMERATED {supported} OPTIONAL, + ce-PDSCH-PUSCH-MaxBandwidth-r14 ENUMERATED {bw5, bw20} OPTIONAL, + ce-HARQ-AckBundling-r14 ENUMERATED {supported} OPTIONAL, + ce-PDSCH-TenProcesses-r14 ENUMERATED {supported} OPTIONAL, + ce-RetuningSymbols-r14 ENUMERATED {n0, n1} OPTIONAL, + ce-PDSCH-PUSCH-Enhancement-r14 ENUMERATED {supported} OPTIONAL, + ce-SchedulingEnhancement-r14 ENUMERATED {supported} OPTIONAL, + ce-SRS-Enhancement-r14 ENUMERATED {supported} OPTIONAL, + ce-PUCCH-Enhancement-r14 ENUMERATED {supported} OPTIONAL, + ce-ClosedLoopTxAntennaSelection-r14 ENUMERATED {supported} OPTIONAL, + tdd-SpecialSubframe-r14 ENUMERATED {supported} OPTIONAL, + tdd-TTI-Bundling-r14 ENUMERATED {supported} OPTIONAL, + dmrs-LessUpPTS-r14 ENUMERATED {supported} OPTIONAL, + mimo-UE-Parameters-v1430 MIMO-UE-Parameters-v1430 OPTIONAL, + alternativeTBS-Index-r14 ENUMERATED {supported} OPTIONAL, + feMBMS-Unicast-Parameters-r14 FeMBMS-Unicast-Parameters-r14 OPTIONAL +} + +MIMO-UE-Parameters-r13 ::= SEQUENCE { + parametersTM9-r13 MIMO-UE-ParametersPerTM-r13 OPTIONAL, + parametersTM10-r13 MIMO-UE-ParametersPerTM-r13 OPTIONAL, + srs-EnhancementsTDD-r13 ENUMERATED {supported} OPTIONAL, + srs-Enhancements-r13 ENUMERATED {supported} OPTIONAL, + interferenceMeasRestriction-r13 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-Parameters-v1430 ::= SEQUENCE { + parametersTM9-v1430 MIMO-UE-ParametersPerTM-v1430 OPTIONAL, + parametersTM10-v1430 MIMO-UE-ParametersPerTM-v1430 OPTIONAL +} + +MIMO-UE-ParametersPerTM-r13 ::= SEQUENCE { + nonPrecoded-r13 MIMO-NonPrecodedCapabilities-r13 OPTIONAL, + beamformed-r13 MIMO-UE-BeamformedCapabilities-r13 OPTIONAL, + channelMeasRestriction-r13 ENUMERATED {supported} OPTIONAL, + dmrs-Enhancements-r13 ENUMERATED {supported} OPTIONAL, + csi-RS-EnhancementsTDD-r13 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-ParametersPerTM-v1430 ::= SEQUENCE { + nzp-CSI-RS-AperiodicInfo-r14 SEQUENCE { + nMaxProc-r14 INTEGER(5..32), + nMaxResource-r14 ENUMERATED {ffs1, ffs2, ffs3, ffs4} + } OPTIONAL, + nzp-CSI-RS-PeriodicInfo-r14 SEQUENCE { + nMaxResource-r14 ENUMERATED {ffs1, ffs2, ffs3, ffs4} + } OPTIONAL, + zp-CSI-RS-AperiodicInfo-r14 ENUMERATED {supported} OPTIONAL, + ul-dmrs-Enhancements-r14 ENUMERATED {supported} OPTIONAL, + densityReductionNP-r14 ENUMERATED {supported} OPTIONAL, + densityReductionBF-r14 ENUMERATED {supported} OPTIONAL, + hybridCSI-r14 ENUMERATED {supported} OPTIONAL, + semiOL-r14 ENUMERATED {supported} OPTIONAL, + csi-ReportingNP-r14 ENUMERATED {supported} OPTIONAL, + csi-ReportingAdvanced-r14 ENUMERATED {supported} OPTIONAL +} + +MIMO-CA-ParametersPerBoBC-r13 ::= SEQUENCE { + parametersTM9-r13 MIMO-CA-ParametersPerBoBCPerTM-r13 OPTIONAL, + parametersTM10-r13 MIMO-CA-ParametersPerBoBCPerTM-r13 OPTIONAL +} + +MIMO-CA-ParametersPerBoBC-v1430 ::= SEQUENCE { + parametersTM9-v1430 MIMO-CA-ParametersPerBoBCPerTM-v1430 OPTIONAL, + parametersTM10-v1430 MIMO-CA-ParametersPerBoBCPerTM-v1430 OPTIONAL +} + +MIMO-CA-ParametersPerBoBCPerTM-r13 ::= SEQUENCE { + nonPrecoded-r13 MIMO-NonPrecodedCapabilities-r13 OPTIONAL, + beamformed-r13 MIMO-BeamformedCapabilityList-r13 OPTIONAL, + dmrs-Enhancements-r13 ENUMERATED {different} OPTIONAL +} + +MIMO-CA-ParametersPerBoBCPerTM-v1430 ::= SEQUENCE { + csi-ReportingNP-r14 ENUMERATED {different} OPTIONAL, + csi-ReportingAdvanced-r14 ENUMERATED {different} OPTIONAL +} + +MIMO-NonPrecodedCapabilities-r13 ::= SEQUENCE { + config1-r13 ENUMERATED {supported} OPTIONAL, + config2-r13 ENUMERATED {supported} OPTIONAL, + config3-r13 ENUMERATED {supported} OPTIONAL, + config4-r13 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-BeamformedCapabilities-r13 ::= SEQUENCE { + altCodebook-r13 ENUMERATED {supported} OPTIONAL, + mimo-BeamformedCapabilities-r13 MIMO-BeamformedCapabilityList-r13 +} + +MIMO-BeamformedCapabilityList-r13 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF MIMO-BeamformedCapabilities-r13 + +MIMO-BeamformedCapabilities-r13 ::= SEQUENCE { + k-Max-r13 INTEGER (1..8), + n-MaxList-r13 BIT STRING (SIZE (1..7)) OPTIONAL + } + +NonContiguousUL-RA-WithinCC-List-r10 ::= SEQUENCE (SIZE (1..maxBands)) OF NonContiguousUL-RA-WithinCC-r10 + +NonContiguousUL-RA-WithinCC-r10 ::= SEQUENCE { + nonContiguousUL-RA-WithinCC-Info-r10 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters ::= SEQUENCE { + supportedBandListEUTRA SupportedBandListEUTRA +} + +RF-Parameters-v9e0 ::= SEQUENCE { + supportedBandListEUTRA-v9e0 SupportedBandListEUTRA-v9e0 OPTIONAL +} + +RF-Parameters-v1020 ::= SEQUENCE { + supportedBandCombination-r10 SupportedBandCombination-r10 +} + +RF-Parameters-v1060 ::= SEQUENCE { + supportedBandCombinationExt-r10 SupportedBandCombinationExt-r10 +} + +RF-Parameters-v1090 ::= SEQUENCE { + supportedBandCombination-v1090 SupportedBandCombination-v1090 OPTIONAL +} + +RF-Parameters-v10f0 ::= SEQUENCE { + modifiedMPR-Behavior-r10 BIT STRING (SIZE (32)) OPTIONAL +} + +RF-Parameters-v10i0 ::= SEQUENCE { + supportedBandCombination-v10i0 SupportedBandCombination-v10i0 OPTIONAL +} + +RF-Parameters-v10j0 ::= SEQUENCE { + multiNS-Pmax-r10 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1130 ::= SEQUENCE { + supportedBandCombination-v1130 SupportedBandCombination-v1130 OPTIONAL +} + +RF-Parameters-v1180 ::= SEQUENCE { + freqBandRetrieval-r11 ENUMERATED {supported} OPTIONAL, + requestedBands-r11 SEQUENCE (SIZE (1.. maxBands)) OF FreqBandIndicator-r11 OPTIONAL, + supportedBandCombinationAdd-r11 SupportedBandCombinationAdd-r11 OPTIONAL +} + +RF-Parameters-v11d0 ::= SEQUENCE { + supportedBandCombinationAdd-v11d0 SupportedBandCombinationAdd-v11d0 OPTIONAL +} + +RF-Parameters-v1250 ::= SEQUENCE { + supportedBandListEUTRA-v1250 SupportedBandListEUTRA-v1250 OPTIONAL, + supportedBandCombination-v1250 SupportedBandCombination-v1250 OPTIONAL, + supportedBandCombinationAdd-v1250 SupportedBandCombinationAdd-v1250 OPTIONAL, + freqBandPriorityAdjustment-r12 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1270 ::= SEQUENCE { + supportedBandCombination-v1270 SupportedBandCombination-v1270 OPTIONAL, + supportedBandCombinationAdd-v1270 SupportedBandCombinationAdd-v1270 OPTIONAL +} + +RF-Parameters-v1310 ::= SEQUENCE { + eNB-RequestedParameters-r13 SEQUENCE { + reducedIntNonContCombRequested-r13 ENUMERATED {true} OPTIONAL, + requestedCCsDL-r13 INTEGER (2..32) OPTIONAL, + requestedCCsUL-r13 INTEGER (2..32) OPTIONAL, + skipFallbackCombRequested-r13 ENUMERATED {true} OPTIONAL + } OPTIONAL, + maximumCCsRetrieval-r13 ENUMERATED {supported} OPTIONAL, + skipFallbackCombinations-r13 ENUMERATED {supported} OPTIONAL, + reducedIntNonContComb-r13 ENUMERATED {supported} OPTIONAL, + supportedBandListEUTRA-v1310 SupportedBandListEUTRA-v1310 OPTIONAL, + supportedBandCombinationReduced-r13 SupportedBandCombinationReduced-r13 OPTIONAL +} + +RF-Parameters-v1320 ::= SEQUENCE { + supportedBandListEUTRA-v1320 SupportedBandListEUTRA-v1320 OPTIONAL, + supportedBandCombination-v1320 SupportedBandCombination-v1320 OPTIONAL, + supportedBandCombinationAdd-v1320 SupportedBandCombinationAdd-v1320 OPTIONAL, + supportedBandCombinationReduced-v1320 SupportedBandCombinationReduced-v1320 OPTIONAL +} + +RF-Parameters-v12b0 ::= SEQUENCE { + maxLayersMIMO-Indication-r12 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1430 ::= SEQUENCE { + supportedBandCombination-v1430 SupportedBandCombination-v1430 OPTIONAL, + supportedBandCombinationAdd-v1430 SupportedBandCombinationAdd-v1430 OPTIONAL, + supportedBandCombinationReduced-v1430 SupportedBandCombinationReduced-v1430 OPTIONAL, + eNB-RequestedParameters-v1430 SEQUENCE { + requestedDiffFallbackCombList-r14 BandCombinationList-r14 + } OPTIONAL, + diffFallbackCombReport-r14 ENUMERATED {supported} OPTIONAL +} + +SupportedBandCombination-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-r10 + +SupportedBandCombinationExt-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParametersExt-r10 + +SupportedBandCombination-v1090 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1090 + +SupportedBandCombination-v10i0 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v10i0 + +SupportedBandCombination-v1130 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1130 + +SupportedBandCombination-v1250 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1250 + +SupportedBandCombination-v1270 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1270 + +SupportedBandCombination-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1320 + +SupportedBandCombination-v1430 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1430 + +SupportedBandCombinationAdd-r11 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-r11 + +SupportedBandCombinationAdd-v11d0 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v10i0 + +SupportedBandCombinationAdd-v1250 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1250 + +SupportedBandCombinationAdd-v1270 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1270 + +SupportedBandCombinationAdd-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1320 + +SupportedBandCombinationAdd-v1430 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1430 + +SupportedBandCombinationReduced-r13 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-r13 + +SupportedBandCombinationReduced-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1320 + +SupportedBandCombinationReduced-v1430 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1430 + +BandCombinationParameters-r10 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r10 + +BandCombinationParametersExt-r10 ::= SEQUENCE { + supportedBandwidthCombinationSet-r10 SupportedBandwidthCombinationSet-r10 OPTIONAL +} + +BandCombinationParameters-v1090 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1090 + +BandCombinationParameters-v10i0::= SEQUENCE { +bandParameterList-v10i0 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v10i0 OPTIONAL +} + +BandCombinationParameters-v1130 ::= SEQUENCE { + multipleTimingAdvance-r11 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r11 ENUMERATED {supported} OPTIONAL, + bandParameterList-r11 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1130 OPTIONAL, + ... +} + +BandCombinationParameters-r11 ::= SEQUENCE { + bandParameterList-r11 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-r11, + supportedBandwidthCombinationSet-r11 SupportedBandwidthCombinationSet-r10 OPTIONAL, + multipleTimingAdvance-r11 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r11 ENUMERATED {supported} OPTIONAL, + bandInfoEUTRA-r11 BandInfoEUTRA, + ... +} + +BandCombinationParameters-v1250::= SEQUENCE { + dc-Support-r12 SEQUENCE { + asynchronous-r12 ENUMERATED {supported} OPTIONAL, + supportedCellGrouping-r12 CHOICE { + threeEntries-r12 BIT STRING (SIZE(3)), + fourEntries-r12 BIT STRING (SIZE(7)), + fiveEntries-r12 BIT STRING (SIZE(15)) + } OPTIONAL + } OPTIONAL, + supportedNAICS-2CRS-AP-r12 BIT STRING (SIZE (1..maxNAICS-Entries-r12)) OPTIONAL, + commSupportedBandsPerBC-r12 BIT STRING (SIZE (1.. maxBands)) OPTIONAL, + ... +} + +BandCombinationParameters-v1270 ::= SEQUENCE { + bandParameterList-v1270 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1270 OPTIONAL +} + +BandCombinationParameters-r13 ::= SEQUENCE { + differentFallbackSupported-r13 ENUMERATED {true} OPTIONAL, + bandParameterList-r13 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r13, + supportedBandwidthCombinationSet-r13 SupportedBandwidthCombinationSet-r10 OPTIONAL, + multipleTimingAdvance-r13 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r13 ENUMERATED {supported} OPTIONAL, + bandInfoEUTRA-r13 BandInfoEUTRA, + dc-Support-r13 SEQUENCE { + asynchronous-r13 ENUMERATED {supported} OPTIONAL, + supportedCellGrouping-r13 CHOICE { + threeEntries-r13 BIT STRING (SIZE(3)), + fourEntries-r13 BIT STRING (SIZE(7)), + fiveEntries-r13 BIT STRING (SIZE(15)) + } OPTIONAL + } OPTIONAL, + supportedNAICS-2CRS-AP-r13 BIT STRING (SIZE (1..maxNAICS-Entries-r12)) OPTIONAL, + commSupportedBandsPerBC-r13 BIT STRING (SIZE (1.. maxBands)) OPTIONAL +} + +BandCombinationParameters-v1320 ::= SEQUENCE { + bandParameterList-v1320 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1320 OPTIONAL, + additionalRx-Tx-PerformanceReq-r13 ENUMERATED {supported} OPTIONAL +} + +BandCombinationParameters-v1430 ::= SEQUENCE { + bandParameterList-v1430 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1430 OPTIONAL, + v2x-SupportedTxBandCombListPerBC-r14 BIT STRING (SIZE (1.. maxBandComb-r13)) OPTIONAL, + v2x-SupportedRxBandCombListPerBC-r14 BIT STRING (SIZE (1.. maxBandComb-r13)) OPTIONAL} + +SupportedBandwidthCombinationSet-r10 ::= BIT STRING (SIZE (1..maxBandwidthCombSet-r10)) + +BandParameters-r10 ::= SEQUENCE { + bandEUTRA-r10 FreqBandIndicator, + bandParametersUL-r10 BandParametersUL-r10 OPTIONAL, + bandParametersDL-r10 BandParametersDL-r10 OPTIONAL +} + +BandParameters-v1090 ::= SEQUENCE { + bandEUTRA-v1090 FreqBandIndicator-v9e0 OPTIONAL, + ... +} + +BandParameters-v10i0::= SEQUENCE { + bandParametersDL-v10i0 SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-v10i0 +} + +BandParameters-v1130 ::= SEQUENCE { + supportedCSI-Proc-r11 ENUMERATED {n1, n3, n4} +} + +BandParameters-r11 ::= SEQUENCE { + bandEUTRA-r11 FreqBandIndicator-r11, + bandParametersUL-r11 BandParametersUL-r10 OPTIONAL, + bandParametersDL-r11 BandParametersDL-r10 OPTIONAL, + supportedCSI-Proc-r11 ENUMERATED {n1, n3, n4} OPTIONAL +} + +BandParameters-v1270 ::= SEQUENCE { + bandParametersDL-v1270 SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-v1270 +} + +BandParameters-r13 ::= SEQUENCE { + bandEUTRA-r13 FreqBandIndicator-r11, + bandParametersUL-r13 BandParametersUL-r13 OPTIONAL, + bandParametersDL-r13 BandParametersDL-r13 OPTIONAL, + supportedCSI-Proc-r13 ENUMERATED {n1, n3, n4} OPTIONAL +} + +BandParameters-v1320 ::= SEQUENCE { + bandParametersDL-v1320 MIMO-CA-ParametersPerBoBC-r13 +} + +BandParameters-v1430 ::= SEQUENCE { + bandParametersDL-v1430 MIMO-CA-ParametersPerBoBC-v1430 OPTIONAL, + ul-256QAM-r14 ENUMERATED {supported} OPTIONAL, + ul-256QAM-perCC-InfoList-r14 SEQUENCE (SIZE (2..maxServCell-r13)) OF UL-256QAM-perCC-Info-r14 OPTIONAL, + retuningTimeInfoBandList-r14 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + RetuningTimeInfo-r14 OPTIONAL +} + +V2X-BandParameters-r14 ::= SEQUENCE { + v2x-FreqBandEUTRA-r14 FreqBandIndicator-r11, + bandParametersTxSL-r14 BandParametersTxSL-r14 OPTIONAL, + bandParametersRxSL-r14 BandParametersRxSL-r14 OPTIONAL +} + +BandParametersTxSL-r14 ::= SEQUENCE { + v2x-BandwidthClassTxSL-r14 V2X-BandwidthClassSL-r14, + v2x-eNB-Scheduled-r14 ENUMERATED {supported} OPTIONAL, + v2x-HighPower-r14 ENUMERATED {supported} OPTIONAL +} + +BandParametersRxSL-r14 ::= SEQUENCE { + v2x-BandwidthClassRxSL-r14 V2X-BandwidthClassSL-r14, + v2x-HighReception-r14 ENUMERATED {supported} OPTIONAL +} + +V2X-BandwidthClassSL-r14 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF V2X-BandwidthClass-r14 + +UL-256QAM-perCC-Info-r14 ::= SEQUENCE { + ul-256QAM-perCC-r14 ENUMERATED {supported} OPTIONAL +} + +BandParametersUL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersUL-r10 + +BandParametersUL-r13 ::= CA-MIMO-ParametersUL-r10 + + +CA-MIMO-ParametersUL-r10 ::= SEQUENCE { + ca-BandwidthClassUL-r10 CA-BandwidthClass-r10, + supportedMIMO-CapabilityUL-r10 MIMO-CapabilityUL-r10 OPTIONAL +} + +BandParametersDL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-r10 + +BandParametersDL-r13 ::= CA-MIMO-ParametersDL-r13 + +CA-MIMO-ParametersDL-r10 ::= SEQUENCE { + ca-BandwidthClassDL-r10 CA-BandwidthClass-r10, + supportedMIMO-CapabilityDL-r10 MIMO-CapabilityDL-r10 OPTIONAL +} + +CA-MIMO-ParametersDL-v10i0 ::= SEQUENCE { + fourLayerTM3-TM4-r10 ENUMERATED {supported} OPTIONAL +} + +CA-MIMO-ParametersDL-v1270 ::= SEQUENCE { + intraBandContiguousCC-InfoList-r12 SEQUENCE (SIZE (1..maxServCell-r10)) OF IntraBandContiguousCC-Info-r12 +} + +CA-MIMO-ParametersDL-r13 ::= SEQUENCE { + ca-BandwidthClassDL-r13 CA-BandwidthClass-r10, + supportedMIMO-CapabilityDL-r13 MIMO-CapabilityDL-r10 OPTIONAL, + fourLayerTM3-TM4-r13 ENUMERATED {supported} OPTIONAL, + intraBandContiguousCC-InfoList-r13 SEQUENCE (SIZE (1..maxServCell-r13)) OF IntraBandContiguousCC-Info-r12 +} + +IntraBandContiguousCC-Info-r12 ::= SEQUENCE { + fourLayerTM3-TM4-perCC-r12 ENUMERATED {supported} OPTIONAL, + supportedMIMO-CapabilityDL-r12 MIMO-CapabilityDL-r10 OPTIONAL, + supportedCSI-Proc-r12 ENUMERATED {n1, n3, n4} OPTIONAL +} + +CA-BandwidthClass-r10 ::= ENUMERATED {a, b, c, d, e, f, ...} + +V2X-BandwidthClass-r14 ::= ENUMERATED {a, b, c, d, e, f, ...} + +MIMO-CapabilityUL-r10 ::= ENUMERATED {twoLayers, fourLayers} + +MIMO-CapabilityDL-r10 ::= ENUMERATED {twoLayers, fourLayers, eightLayers} + +SupportedBandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA + +SupportedBandListEUTRA-v9e0::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v9e0 + +SupportedBandListEUTRA-v1250 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1250 + +SupportedBandListEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1310 + +SupportedBandListEUTRA-v1320 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1320 + +SupportedBandEUTRA ::= SEQUENCE { + bandEUTRA FreqBandIndicator, + halfDuplex BOOLEAN +} + +SupportedBandEUTRA-v9e0 ::= SEQUENCE { + bandEUTRA-v9e0 FreqBandIndicator-v9e0 OPTIONAL +} + +SupportedBandEUTRA-v1250 ::= SEQUENCE { + dl-256QAM-r12 ENUMERATED {supported} OPTIONAL, + ul-64QAM-r12 ENUMERATED {supported} OPTIONAL +} + +SupportedBandEUTRA-v1310 ::= SEQUENCE { + ue-PowerClass-5-r13 ENUMERATED {supported} OPTIONAL +} +SupportedBandEUTRA-v1320 ::= SEQUENCE { + intraFreq-CE-NeedForGaps-r13 ENUMERATED {supported} OPTIONAL, + ue-PowerClass-N-r13 ENUMERATED {class1, class2, class4} OPTIONAL +} + +MeasParameters ::= SEQUENCE { + bandListEUTRA BandListEUTRA +} + +MeasParameters-v1020 ::= SEQUENCE { + bandCombinationListEUTRA-r10 BandCombinationListEUTRA-r10 +} + +MeasParameters-v1130 ::= SEQUENCE { + rsrqMeasWideband-r11 ENUMERATED {supported} OPTIONAL +} + +MeasParameters-v11a0 ::= SEQUENCE { + benefitsFromInterruption-r11 ENUMERATED {true} OPTIONAL +} + +MeasParameters-v1250 ::= SEQUENCE { + timerT312-r12 ENUMERATED {supported} OPTIONAL, + alternativeTimeToTrigger-r12 ENUMERATED {supported} OPTIONAL, + incMonEUTRA-r12 ENUMERATED {supported} OPTIONAL, + incMonUTRA-r12 ENUMERATED {supported} OPTIONAL, + extendedMaxMeasId-r12 ENUMERATED {supported} OPTIONAL, + extendedRSRQ-LowerRange-r12 ENUMERATED {supported} OPTIONAL, + rsrq-OnAllSymbols-r12 ENUMERATED {supported} OPTIONAL, + crs-DiscoverySignalsMeas-r12 ENUMERATED {supported} OPTIONAL, + csi-RS-DiscoverySignalsMeas-r12 ENUMERATED {supported} OPTIONAL +} + +MeasParameters-v1310 ::= SEQUENCE { + rs-SINR-Meas-r13 ENUMERATED {supported} OPTIONAL, + whiteCellList-r13 ENUMERATED {supported} OPTIONAL, + extendedMaxObjectId-r13 ENUMERATED {supported} OPTIONAL, + ul-PDCP-Delay-r13 ENUMERATED {supported} OPTIONAL, + extendedFreqPriorities-r13 ENUMERATED {supported} OPTIONAL, + multiBandInfoReport-r13 ENUMERATED {supported} OPTIONAL, + rssi-AndChannelOccupancyReporting-r13 ENUMERATED {supported} OPTIONAL +} + +MeasParameters-v1430 ::= SEQUENCE { + ceMeasurements-r14 ENUMERATED {supported} OPTIONAL, + ncsg-r14 ENUMERATED {supported} OPTIONAL, + shortMeasurementGap-r14 ENUMERATED {supported} OPTIONAL, + perServingCellMeasurementGap-r14 ENUMERATED {supported} OPTIONAL, + nonUniformGap-r14 ENUMERATED {supported} OPTIONAL +} + +BandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF BandInfoEUTRA + +BandCombinationListEUTRA-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandInfoEUTRA + +BandInfoEUTRA ::= SEQUENCE { + interFreqBandList InterFreqBandList, + interRAT-BandList InterRAT-BandList OPTIONAL +} + +InterFreqBandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterFreqBandInfo + +InterFreqBandInfo ::= SEQUENCE { + interFreqNeedForGaps BOOLEAN +} + +InterRAT-BandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterRAT-BandInfo + +InterRAT-BandInfo ::= SEQUENCE { + interRAT-NeedForGaps BOOLEAN +} + +IRAT-ParametersUTRA-FDD ::= SEQUENCE { + supportedBandListUTRA-FDD SupportedBandListUTRA-FDD +} + +IRAT-ParametersUTRA-v920 ::= SEQUENCE { + e-RedirectionUTRA-r9 ENUMERATED {supported} +} + +IRAT-ParametersUTRA-v9c0 ::= SEQUENCE { + voiceOverPS-HS-UTRA-FDD-r9 ENUMERATED {supported} OPTIONAL, + voiceOverPS-HS-UTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-FDD-ToUTRA-FDD-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-FDD-ToGERAN-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-TDD128-ToUTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-TDD128-ToGERAN-r9 ENUMERATED {supported} OPTIONAL +} + +IRAT-ParametersUTRA-v9h0 ::= SEQUENCE { + mfbi-UTRA-r9 ENUMERATED {supported} +} + +SupportedBandListUTRA-FDD ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-FDD + +SupportedBandUTRA-FDD ::= ENUMERATED { + bandI, bandII, bandIII, bandIV, bandV, bandVI, + bandVII, bandVIII, bandIX, bandX, bandXI, + bandXII, bandXIII, bandXIV, bandXV, bandXVI, ..., + bandXVII-8a0, bandXVIII-8a0, bandXIX-8a0, bandXX-8a0, + bandXXI-8a0, bandXXII-8a0, bandXXIII-8a0, bandXXIV-8a0, + bandXXV-8a0, bandXXVI-8a0, bandXXVII-8a0, bandXXVIII-8a0, + bandXXIX-8a0, bandXXX-8a0, bandXXXI-8a0, bandXXXII-8a0} + +IRAT-ParametersUTRA-TDD128 ::= SEQUENCE { + supportedBandListUTRA-TDD128 SupportedBandListUTRA-TDD128 +} + +SupportedBandListUTRA-TDD128 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD128 + +SupportedBandUTRA-TDD128 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD384 ::= SEQUENCE { + supportedBandListUTRA-TDD384 SupportedBandListUTRA-TDD384 +} + +SupportedBandListUTRA-TDD384 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD384 + +SupportedBandUTRA-TDD384 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD768 ::= SEQUENCE { + supportedBandListUTRA-TDD768 SupportedBandListUTRA-TDD768 +} + +SupportedBandListUTRA-TDD768 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD768 + +SupportedBandUTRA-TDD768 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD-v1020 ::= SEQUENCE { + e-RedirectionUTRA-TDD-r10 ENUMERATED {supported} +} + +IRAT-ParametersGERAN ::= SEQUENCE { + supportedBandListGERAN SupportedBandListGERAN, + interRAT-PS-HO-ToGERAN BOOLEAN +} + +IRAT-ParametersGERAN-v920 ::= SEQUENCE { + dtm-r9 ENUMERATED {supported} OPTIONAL, + e-RedirectionGERAN-r9 ENUMERATED {supported} OPTIONAL +} + +SupportedBandListGERAN ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandGERAN + +SupportedBandGERAN ::= ENUMERATED { + gsm450, gsm480, gsm710, gsm750, gsm810, gsm850, + gsm900P, gsm900E, gsm900R, gsm1800, gsm1900, + spare5, spare4, spare3, spare2, spare1, ...} + +IRAT-ParametersCDMA2000-HRPD ::= SEQUENCE { + supportedBandListHRPD SupportedBandListHRPD, + tx-ConfigHRPD ENUMERATED {single, dual}, + rx-ConfigHRPD ENUMERATED {single, dual} +} + +SupportedBandListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + +IRAT-ParametersCDMA2000-1XRTT ::= SEQUENCE { + supportedBandList1XRTT SupportedBandList1XRTT, + tx-Config1XRTT ENUMERATED {single, dual}, + rx-Config1XRTT ENUMERATED {single, dual} +} + +IRAT-ParametersCDMA2000-1XRTT-v920 ::= SEQUENCE { + e-CSFB-1XRTT-r9 ENUMERATED {supported}, + e-CSFB-ConcPS-Mob1XRTT-r9 ENUMERATED {supported} OPTIONAL +} + +IRAT-ParametersCDMA2000-1XRTT-v1020 ::= SEQUENCE { + e-CSFB-dual-1XRTT-r10 ENUMERATED {supported} +} + +IRAT-ParametersCDMA2000-v1130 ::= SEQUENCE { + cdma2000-NW-Sharing-r11 ENUMERATED {supported} OPTIONAL +} + +SupportedBandList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + +IRAT-ParametersWLAN-r13 ::= SEQUENCE { + supportedBandListWLAN-r13 SEQUENCE (SIZE (1..maxWLAN-Bands-r13)) OF WLAN-BandIndicator-r13 OPTIONAL +} + +CSG-ProximityIndicationParameters-r9 ::= SEQUENCE { + intraFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL, + interFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL, + utran-ProximityIndication-r9 ENUMERATED {supported} OPTIONAL +} + +NeighCellSI-AcquisitionParameters-r9 ::= SEQUENCE { + intraFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL, + interFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL, + utran-SI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL +} + +SON-Parameters-r9 ::= SEQUENCE { + rach-Report-r9 ENUMERATED {supported} OPTIONAL +} + +UE-BasedNetwPerfMeasParameters-r10 ::= SEQUENCE { + loggedMeasurementsIdle-r10 ENUMERATED {supported} OPTIONAL, + standaloneGNSS-Location-r10 ENUMERATED {supported} OPTIONAL +} + +UE-BasedNetwPerfMeasParameters-v1250 ::= SEQUENCE { + loggedMBSFNMeasurements-r12 ENUMERATED {supported} +} + +UE-BasedNetwPerfMeasParameters-v1430 ::= SEQUENCE { + locationReport-r14 ENUMERATED {supported} OPTIONAL +} + +OTDOA-PositioningCapabilities-r10 ::= SEQUENCE { + otdoa-UE-Assisted-r10 ENUMERATED {supported}, + interFreqRSTD-Measurement-r10 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-r11 ::= SEQUENCE { + inDeviceCoexInd-r11 ENUMERATED {supported} OPTIONAL, + powerPrefInd-r11 ENUMERATED {supported} OPTIONAL, + ue-Rx-TxTimeDiffMeasurements-r11 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v11d0 ::= SEQUENCE { + inDeviceCoexInd-UL-CA-r11 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v1360 ::= SEQUENCE { + inDeviceCoexInd-HardwareSharingInd-r13 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v1430 ::= SEQUENCE { + bwPrefInd-r14 ENUMERATED {supported} OPTIONAL, + rlm-ReportSupport-r14 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-r11 ::= SEQUENCE { + mbms-SCell-r11 ENUMERATED {supported} OPTIONAL, + mbms-NonServingCell-r11 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-v1250 ::= SEQUENCE { + mbms-AsyncDC-r12 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-v1430 ::= SEQUENCE { + fembmsDedicatedCell-r14 ENUMERATED {supported} OPTIONAL, + fembmsMixedCell-r14 ENUMERATED {supported} OPTIONAL, + subcarrierSpacingMBMS-khz7dot5-r14 ENUMERATED {supported} OPTIONAL, + subcarrierSpacingMBMS-khz1dot25-r14 ENUMERATED {supported} OPTIONAL +} + +FeMBMS-Unicast-Parameters-r14 ::= SEQUENCE { + unicast-fembmsMixedSCell-r14 ENUMERATED {supported} OPTIONAL, + emptyUnicastRegion-r14 ENUMERATED {supported} OPTIONAL +} + +SCPTM-Parameters-r13 ::= SEQUENCE { + scptm-ParallelReception-r13 ENUMERATED {supported} OPTIONAL, + scptm-SCell-r13 ENUMERATED {supported} OPTIONAL, + scptm-NonServingCell-r13 ENUMERATED {supported} OPTIONAL, + scptm-AsyncDC-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-r13 ::= SEQUENCE { + ce-ModeA-r13 ENUMERATED {supported} OPTIONAL, + ce-ModeB-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1320 ::= SEQUENCE { + intraFreqA3-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL, + intraFreqA3-CE-ModeB-r13 ENUMERATED {supported} OPTIONAL, + intraFreqHO-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL, + intraFreqHO-CE-ModeB-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1350 ::= SEQUENCE { + unicastFrequencyHopping-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1370 ::= SEQUENCE { + tm9-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL, + tm9-CE-ModeB-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1430 ::= SEQUENCE { + ce-SwitchWithoutHO-r14 ENUMERATED {supported} OPTIONAL +} + +LAA-Parameters-r13 ::= SEQUENCE { + crossCarrierSchedulingLAA-DL-r13 ENUMERATED {supported} OPTIONAL, + csi-RS-DRS-RRM-MeasurementsLAA-r13 ENUMERATED {supported} OPTIONAL, + downlinkLAA-r13 ENUMERATED {supported} OPTIONAL, + endingDwPTS-r13 ENUMERATED {supported} OPTIONAL, + secondSlotStartingPosition-r13 ENUMERATED {supported} OPTIONAL, + tm9-LAA-r13 ENUMERATED {supported} OPTIONAL, + tm10-LAA-r13 ENUMERATED {supported} OPTIONAL +} + +LAA-Parameters-v1430 ::= SEQUENCE { + crossCarrierSchedulingLAA-UL-r14 ENUMERATED {supported} OPTIONAL, + uplinkLAA-r14 ENUMERATED {supported} OPTIONAL, + twoStepSchedulingTimingInfo-r14 ENUMERATED {nPlus1, nPlus2, nPlus3} OPTIONAL, + uss-BlindDecodingAdjustment-r14 ENUMERATED {supported} OPTIONAL, + uss-BlindDecodingReduction-r14 ENUMERATED {supported} OPTIONAL, + outOfSequenceGrantHandling-r14 ENUMERATED {supported} OPTIONAL +} + +WLAN-IW-Parameters-r12 ::= SEQUENCE { + wlan-IW-RAN-Rules-r12 ENUMERATED {supported} OPTIONAL, + wlan-IW-ANDSF-Policies-r12 ENUMERATED {supported} OPTIONAL +} + +LWA-Parameters-r13 ::= SEQUENCE { + lwa-r13 ENUMERATED {supported} OPTIONAL, + lwa-SplitBearer-r13 ENUMERATED {supported} OPTIONAL, + wlan-MAC-Address-r13 OCTET STRING (SIZE (6)) OPTIONAL, + lwa-BufferSize-r13 ENUMERATED {supported} OPTIONAL +} + +LWA-Parameters-v1430 ::= SEQUENCE { + lwa-HO-WithoutWT-Change-r14 ENUMERATED {supported} OPTIONAL, + lwa-UL-r14 ENUMERATED {supported} OPTIONAL, + wlan-PeriodicMeas-r14 ENUMERATED {supported} OPTIONAL, + wlan-ReportAnyWLAN-r14 ENUMERATED {supported} OPTIONAL, + wlan-SupportedDataRate-r14 INTEGER (1..2048) OPTIONAL +} + +LWA-Parameters-v1440 ::= SEQUENCE { + lwa-RLC-UM-r14 ENUMERATED {supported} OPTIONAL +} + +WLAN-IW-Parameters-v1310 ::= SEQUENCE { + rclwi-r13 ENUMERATED {supported} OPTIONAL +} + +LWIP-Parameters-r13 ::= SEQUENCE { + lwip-r13 ENUMERATED {supported} OPTIONAL +} + +LWIP-Parameters-v1430 ::= SEQUENCE { + lwip-Aggregation-DL-r14 ENUMERATED {supported} OPTIONAL, + lwip-Aggregation-UL-r14 ENUMERATED {supported} OPTIONAL +} + +NAICS-Capability-List-r12 ::= SEQUENCE (SIZE (1..maxNAICS-Entries-r12)) OF NAICS-Capability-Entry-r12 + + +NAICS-Capability-Entry-r12 ::= SEQUENCE { + numberOfNAICS-CapableCC-r12 INTEGER(1..5), + numberOfAggregatedPRB-r12 ENUMERATED { + n50, n75, n100, n125, n150, n175, + n200, n225, n250, n275, n300, n350, + n400, n450, n500, spare}, + ... +} + +SL-Parameters-r12 ::= SEQUENCE { + commSimultaneousTx-r12 ENUMERATED {supported} OPTIONAL, + commSupportedBands-r12 FreqBandIndicatorListEUTRA-r12 OPTIONAL, + discSupportedBands-r12 SupportedBandInfoList-r12 OPTIONAL, + discScheduledResourceAlloc-r12 ENUMERATED {supported} OPTIONAL, + disc-UE-SelectedResourceAlloc-r12 ENUMERATED {supported} OPTIONAL, + disc-SLSS-r12 ENUMERATED {supported} OPTIONAL, + discSupportedProc-r12 ENUMERATED {n50, n400} OPTIONAL +} + +SL-Parameters-v1310 ::= SEQUENCE { + discSysInfoReporting-r13 ENUMERATED {supported} OPTIONAL, + commMultipleTx-r13 ENUMERATED {supported} OPTIONAL, + discInterFreqTx-r13 ENUMERATED {supported} OPTIONAL, + discPeriodicSLSS-r13 ENUMERATED {supported} OPTIONAL +} + +SL-Parameters-v1430 ::= SEQUENCE { + zoneBasedPoolSelection-r14 ENUMERATED {supported} OPTIONAL, + ue-AutonomousWithFullSensing-r14 ENUMERATED {supported} OPTIONAL, + ue-AutonomousWithPartialSensing-r14 ENUMERATED {supported} OPTIONAL, + sl-CongestionControl-r14 ENUMERATED {supported} OPTIONAL, + v2x-TxWithShortResvInterval-r14 ENUMERATED {supported} OPTIONAL, + v2x-numberTxRxTiming-r14 INTEGER(1..16) OPTIONAL, + v2x-nonAdjacentPSCCH-PSSCH-r14 ENUMERATED {supported} OPTIONAL, + slss-TxRx-r14 ENUMERATED {supported} OPTIONAL, + v2x-SupportedBandCombinationList-r14 V2X-SupportedBandCombination-r14 OPTIONAL +} + +V2X-SupportedBandCombination-r14 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF V2X-BandCombinationParameters-r14 + +V2X-BandCombinationParameters-r14 ::= SEQUENCE (SIZE (1.. maxSimultaneousBands-r10)) OF V2X-BandParameters-r14 + +SupportedBandInfoList-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandInfo-r12 + +SupportedBandInfo-r12 ::= SEQUENCE { + support-r12 ENUMERATED {supported} OPTIONAL +} + +FreqBandIndicatorListEUTRA-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicator-r11 + +MMTEL-Parameters-r14 ::= SEQUENCE { + delayBudgetReporting-r14 ENUMERATED {supported} OPTIONAL, + pusch-Enhancements-r14 ENUMERATED {supported} OPTIONAL, + recommendedBitRate-r14 ENUMERATED {supported} OPTIONAL, + recommendedBitRateQuery-r14 ENUMERATED {supported} OPTIONAL +} + +RetuningTimeInfo-r14 ::= SEQUENCE { + retuningInfo SEQUENCE { + rf-RetuningTimeDL-r14 ENUMERATED {n0, n0dot5, n1, n1dot5, n2, n2dot5, n3, + n3dot5, n4, n4dot5, n5, n5dot5, n6, n6dot5, + n7, spare1} OPTIONAL, + rf-RetuningTimeUL-r14 ENUMERATED {n0, n0dot5, n1, n1dot5, n2, n2dot5, n3, + n3dot5, n4, n4dot5, n5, n5dot5, n6, n6dot5, + n7, spare1} OPTIONAL + } +} + +HighSpeedEnhParameters-r14 ::= SEQUENCE { + measurementEnhancements-r14 ENUMERATED {supported} OPTIONAL, + demodulationEnhancements-r14 ENUMERATED {supported} OPTIONAL, + prach-Enhancements-r14 ENUMERATED {supported} OPTIONAL +} + + +UE-RadioPagingInfo-r12 ::= SEQUENCE { + ue-Category-v1250 INTEGER (0) OPTIONAL, + ..., + [[ ue-CategoryDL-v1310 ENUMERATED {m1} OPTIONAL, + ce-ModeA-r13 ENUMERATED {true} OPTIONAL, + ce-ModeB-r13 ENUMERATED {true} OPTIONAL + ]] + +} + + +UE-TimersAndConstants ::= SEQUENCE { + t300 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t301 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t310 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n310 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ..., + [[ t300-v1310 ENUMERATED { + ms2500, ms3000, ms3500, ms4000, ms5000, ms6000, ms8000, + ms10000} OPTIONAL, -- Need OR + t301-v1310 ENUMERATED { + ms2500, ms3000, ms3500, ms4000, ms5000, ms6000, ms8000, + ms10000} OPTIONAL -- Need OR + ]], + [[ t310-v1330 ENUMERATED {ms4000, ms6000} + OPTIONAL -- Need OR + ]] +} + + +VisitedCellInfoList-r12 ::= SEQUENCE (SIZE (1..maxCellHistory-r12)) OF VisitedCellInfo-r12 + +VisitedCellInfo-r12 ::= SEQUENCE { + visitedCellId-r12 CHOICE { + cellGlobalId-r12 CellGlobalIdEUTRA, + pci-arfcn-r12 SEQUENCE { + physCellId-r12 PhysCellId, + carrierFreq-r12 ARFCN-ValueEUTRA-r9 + } + } OPTIONAL, + timeSpent-r12 INTEGER (0..4095), + ... +} + + +WLAN-OffloadConfig-r12 ::= SEQUENCE { + thresholdRSRP-r12 SEQUENCE { + thresholdRSRP-Low-r12 RSRP-Range, + thresholdRSRP-High-r12 RSRP-Range + } OPTIONAL, -- Need OR + thresholdRSRQ-r12 SEQUENCE { + thresholdRSRQ-Low-r12 RSRQ-Range, + thresholdRSRQ-High-r12 RSRQ-Range + } OPTIONAL, -- Need OR + thresholdRSRQ-OnAllSymbolsWithWB-r12 SEQUENCE { + thresholdRSRQ-OnAllSymbolsWithWB-Low-r12 RSRQ-Range, + thresholdRSRQ-OnAllSymbolsWithWB-High-r12 RSRQ-Range + } OPTIONAL, -- Need OP + thresholdRSRQ-OnAllSymbols-r12 SEQUENCE { + thresholdRSRQ-OnAllSymbolsLow-r12 RSRQ-Range, + thresholdRSRQ-OnAllSymbolsHigh-r12 RSRQ-Range + } OPTIONAL, -- Need OP + thresholdRSRQ-WB-r12 SEQUENCE { + thresholdRSRQ-WB-Low-r12 RSRQ-Range, + thresholdRSRQ-WB-High-r12 RSRQ-Range + } OPTIONAL, -- Need OP + + thresholdChannelUtilization-r12 SEQUENCE { + thresholdChannelUtilizationLow-r12 INTEGER (0..255), + thresholdChannelUtilizationHigh-r12 INTEGER (0..255) + } OPTIONAL, -- Need OR + thresholdBackhaul-Bandwidth-r12 SEQUENCE { + thresholdBackhaulDL-BandwidthLow-r12 WLAN-backhaulRate-r12, + thresholdBackhaulDL-BandwidthHigh-r12 WLAN-backhaulRate-r12, + thresholdBackhaulUL-BandwidthLow-r12 WLAN-backhaulRate-r12, + thresholdBackhaulUL-BandwidthHigh-r12 WLAN-backhaulRate-r12 + } OPTIONAL, -- Need OR + thresholdWLAN-RSSI-r12 SEQUENCE { + thresholdWLAN-RSSI-Low-r12 INTEGER (0..255), + thresholdWLAN-RSSI-High-r12 INTEGER (0..255) + } OPTIONAL, -- Need OR + offloadPreferenceIndicator-r12 BIT STRING (SIZE (16)) OPTIONAL, -- Need OR + t-SteeringWLAN-r12 T-Reselection OPTIONAL, -- Need OR + ... +} + +WLAN-backhaulRate-r12 ::= ENUMERATED + {r0, r4, r8, r16, r32, r64, r128, r256, r512, + r1024, r2048, r4096, r8192, r16384, r32768, r65536, r131072, + r262144, r524288, r1048576, r2097152, r4194304, r8388608, + r16777216, r33554432, r67108864, r134217728, r268435456, + r536870912, r1073741824, r2147483648, r4294967296} + + +MBMS-NotificationConfig-r9 ::= SEQUENCE { + notificationRepetitionCoeff-r9 ENUMERATED {n2, n4}, + notificationOffset-r9 INTEGER (0..10), + notificationSF-Index-r9 INTEGER (1..6) +} + +MBMS-NotificationConfig-v1430 ::= SEQUENCE { + notificationSF-Index-v1430 INTEGER (7..10) +} + + +MBMS-ServiceList-r13 ::= SEQUENCE (SIZE (0..maxMBMS-ServiceListPerUE-r13)) OF MBMS-ServiceInfo-r13 + +MBMS-ServiceInfo-r13 ::= SEQUENCE { + tmgi-r13 TMGI-r9 +} + + +MBSFN-AreaId-r12 ::= INTEGER (0..255) + + +MBSFN-AreaInfoList-r9 ::= SEQUENCE (SIZE(1..maxMBSFN-Area)) OF MBSFN-AreaInfo-r9 + +MBSFN-AreaInfo-r9 ::= SEQUENCE { + mbsfn-AreaId-r9 MBSFN-AreaId-r12, + non-MBSFNregionLength ENUMERATED {s1, s2}, + notificationIndicator-r9 INTEGER (0..7), + mcch-Config-r9 SEQUENCE { + mcch-RepetitionPeriod-r9 ENUMERATED {rf32, rf64, rf128, rf256}, + mcch-Offset-r9 INTEGER (0..10), + mcch-ModificationPeriod-r9 ENUMERATED {rf512, rf1024}, + sf-AllocInfo-r9 BIT STRING (SIZE(6)), + signallingMCS-r9 ENUMERATED {n2, n7, n13, n19} + }, + ..., + [[ mcch-Config-r14 SEQUENCE { + mcch-RepetitionPeriod-v1430 ENUMERATED {rf1, rf2, rf4, rf8, + rf16 } OPTIONAL, -- Need OR + mcch-ModificationPeriod-v1430 ENUMERATED {rf1, rf2, rf4, rf8, rf16, rf32, rf64, rf128, + rf256, spare7} OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + subcarrierSpacingMBMS-r14 ENUMERATED {khz-7dot5, khz-1dot25} OPTIONAL -- Need OR + ]] +} + + +MBSFN-SubframeConfig ::= SEQUENCE { + radioframeAllocationPeriod ENUMERATED {n1, n2, n4, n8, n16, n32}, + radioframeAllocationOffset INTEGER (0..7), + subframeAllocation CHOICE { + oneFrame BIT STRING (SIZE(6)), + fourFrames BIT STRING (SIZE(24)) + } +} + +MBSFN-SubframeConfig-v1430 ::= SEQUENCE { + subframeAllocation-v1430 CHOICE { + oneFrame-v1430 BIT STRING (SIZE(2)), + fourFrames-v1430 BIT STRING (SIZE(8)) + } +} + + +PMCH-InfoList-r9 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-Info-r9 + +PMCH-InfoListExt-r12 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-InfoExt-r12 + +PMCH-Info-r9 ::= SEQUENCE { + pmch-Config-r9 PMCH-Config-r9, + mbms-SessionInfoList-r9 MBMS-SessionInfoList-r9, + ... +} + +PMCH-InfoExt-r12 ::= SEQUENCE { + pmch-Config-r12 PMCH-Config-r12, + mbms-SessionInfoList-r12 MBMS-SessionInfoList-r9, + ... +} + +MBMS-SessionInfoList-r9 ::= SEQUENCE (SIZE (0..maxSessionPerPMCH)) OF MBMS-SessionInfo-r9 + +MBMS-SessionInfo-r9 ::= SEQUENCE { + tmgi-r9 TMGI-r9, + sessionId-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Need OR + logicalChannelIdentity-r9 INTEGER (0..maxSessionPerPMCH-1), + ... +} + +PMCH-Config-r9 ::= SEQUENCE { + sf-AllocEnd-r9 INTEGER (0..1535), + dataMCS-r9 INTEGER (0..28), + mch-SchedulingPeriod-r9 ENUMERATED { + rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024}, + ... +} + +PMCH-Config-r12 ::= SEQUENCE { + sf-AllocEnd-r12 INTEGER (0..1535), + dataMCS-r12 CHOICE { + normal-r12 INTEGER (0..28), + higerOrder-r12 INTEGER (0..27) + }, + mch-SchedulingPeriod-r12 ENUMERATED { + rf4, rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024}, + ..., + [[ mch-SchedulingPeriod-v1430 ENUMERATED {rf1, rf2} OPTIONAL -- Need OR + ]] +} + +TMGI-r9 ::= SEQUENCE { + plmn-Id-r9 CHOICE { + plmn-Index-r9 INTEGER (1..maxPLMN-r11), + explicitValue-r9 PLMN-Identity + }, + serviceId-r9 OCTET STRING (SIZE (3)) +} + + +SC-MTCH-InfoList-r13 ::= SEQUENCE (SIZE (0..maxSC-MTCH-r13)) OF SC-MTCH-Info-r13 + +SC-MTCH-Info-r13 ::= SEQUENCE { + mbmsSessionInfo-r13 MBMSSessionInfo-r13, + g-RNTI-r13 BIT STRING(SIZE(16)), + sc-mtch-schedulingInfo-r13 SC-MTCH-SchedulingInfo-r13 OPTIONAL, -- Need OP + sc-mtch-neighbourCell-r13 BIT STRING (SIZE(maxNeighCell-SCPTM-r13)) OPTIONAL, -- Need OP + ..., + [[ p-a-r13 ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} OPTIONAL -- Need ON + ]] +} + +MBMSSessionInfo-r13 ::= SEQUENCE { + tmgi-r13 TMGI-r9, + sessionId-r13 OCTET STRING (SIZE (1)) OPTIONAL -- Need OR +} + +SC-MTCH-SchedulingInfo-r13::= SEQUENCE { + onDurationTimerSCPTM-r13 ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200}, + drx-InactivityTimerSCPTM-r13 ENUMERATED { + psf0, psf1, psf2, psf4, psf8, + psf10, psf20, psf40, + psf80, psf160, ps320, + psf640, psf960, + psf1280, psf1920, psf2560}, + schedulingPeriodStartOffsetSCPTM-r13 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2048), + sf4096 INTEGER(0..4096), + sf8192 INTEGER(0..8192) + }, + ... +} + + +SC-MTCH-InfoList-BR-r14 ::= SEQUENCE (SIZE (0..maxSC-MTCH-BR-r14)) OF SC-MTCH-Info-BR-r14 + +SC-MTCH-Info-BR-r14 ::= SEQUENCE { + sc-mtch-CarrierFreq-r14 ARFCN-ValueEUTRA-r9, + mbmsSessionInfo-r14 MBMSSessionInfo-r13, + g-RNTI-r14 BIT STRING(SIZE(16)), + sc-mtch-schedulingInfo-r14 SC-MTCH-SchedulingInfo-BR-r14 OPTIONAL, -- Need OP + sc-mtch-neighbourCell-r14 BIT STRING (SIZE(maxNeighCell-SCPTM-r13)) OPTIONAL, -- Need OP + mpdcch-Narrowband-SC-MTCH-r14 INTEGER (1.. maxAvailNarrowBands-r13), + mpdcch-NumRepetition-SC-MTCH-r14 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + mpdcch-StartSF-SC-MTCH-r14 CHOICE { + fdd-r14 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, + v5, v8, v10}, + tdd-r14 ENUMERATED {v1, v2, v4, v5, v8, v10, + v20} + }, + mpdcch-PDSCH-HoppingConfig-SC-MTCH-r14 ENUMERATED {on, off}, + mpdcch-PDSCH-CEmodeConfig-SC-MTCH-r14 ENUMERATED {ce-ModeA, ce-ModeB}, + mpdcch-PDSCH-MaxBandwidth-SC-MTCH-r14 ENUMERATED {bw1dot4, bw5}, + mpdcch-Offset-SC-MTCH-r14 ENUMERATED {zero, oneEighth, oneQuarter, + threeEighth, oneHalf, fiveEighth, + threeQuarter, sevenEighth}, + + p-a-r14 ENUMERATED { dB-6, dB-4dot77, dB-3, + dB-1dot77, dB0, dB1, dB2, + dB3} OPTIONAL,-- Need OR + ... +} + +SC-MTCH-SchedulingInfo-BR-r14::= SEQUENCE { + onDurationTimerSCPTM-r14 ENUMERATED { + psf300, psf400, psf500, psf600, + psf800, psf1000, psf1200, psf1600}, + drx-InactivityTimerSCPTM-r14 ENUMERATED { + psf0, psf1, psf2, psf4, psf8, psf16, + psf32, psf64, psf128, psf256, ps512, + psf1024, psf2048, psf4096, psf8192, psf16384}, + schedulingPeriodStartOffsetSCPTM-r14 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2047), + sf4096 INTEGER(0..4095), + sf8192 INTEGER(0..8191) + }, + ... +} + + +SCPTM-NeighbourCellList-r13 ::= SEQUENCE (SIZE (1..maxNeighCell-SCPTM-r13)) OF PCI-ARFCN-r13 + +PCI-ARFCN-r13 ::= SEQUENCE { + physCellId-r13 PhysCellId, + carrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL +} + + +SL-AnchorCarrierFreqList-V2X-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF ARFCN-ValueEUTRA-r9 + + +SL-CBR-CommonTxConfigList-r14 ::= SEQUENCE { + cbr-RangeCommonConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-CBRConfig-r14)) OF SL-CBR-Levels-Config-r14, + sl-CBR-PSSCH-TxConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-TxConfig-r14)) OF SL-CBR-PSSCH-TxConfig-r14 +} + +SL-CBR-Levels-Config-r14 ::= SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF SL-CBR-r14 + + +SL-CBR-PSSCH-TxConfig-r14 ::= SEQUENCE { + cr-Limit-r14 INTEGER(0..10000), + tx-Parameters-r14 SL-PSSCH-TxParameters-r14 +} + +SL-CBR-r14 ::= INTEGER(0..100) + + +SL-CBR-PPPP-TxConfigList-r14 ::= SEQUENCE (SIZE (1..8)) OF SL-PPPP-TxConfigIndex-r14 + +SL-PPPP-TxConfigIndex-r14 ::= SEQUENCE { + priorityThreshold-r14 SL-Priority-r13, + defaultTxConfigIndex-r14 INTEGER(0..maxCBR-Level-1-r14), + cbr-ConfigIndex-r14 INTEGER(0..maxSL-V2X-CBRConfig-1-r14), + tx-ConfigIndexList-r14 SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF Tx-ConfigIndex-r14 +} + +Tx-ConfigIndex-r14 ::= INTEGER(0..maxSL-V2X-TxConfig-1-r14) + + +SL-CommConfig-r12 ::= SEQUENCE { + commTxResources-r12 CHOICE { + release NULL, + setup CHOICE { + scheduled-r12 SEQUENCE { + sl-RNTI-r12 C-RNTI, + mac-MainConfig-r12 MAC-MainConfigSL-r12, + sc-CommTxConfig-r12 SL-CommResourcePool-r12, + mcs-r12 INTEGER (0..28) OPTIONAL -- Need OP + }, + ue-Selected-r12 SEQUENCE { + -- Pool for normal usage + commTxPoolNormalDedicated-r12 SEQUENCE { + poolToReleaseList-r12 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r12 SL-CommTxPoolToAddModList-r12 OPTIONAL -- Need ON + } + } + } + } OPTIONAL, -- Need ON + ..., + [[ commTxResources-v1310 CHOICE { + release NULL, + setup CHOICE { + scheduled-v1310 SEQUENCE { + logicalChGroupInfoList-r13 LogicalChGroupInfoList-r13, + multipleTx-r13 BOOLEAN + }, + ue-Selected-v1310 SEQUENCE { + commTxPoolNormalDedicatedExt-r13 SEQUENCE { + poolToReleaseListExt-r13 SL-TxPoolToReleaseListExt-r13 OPTIONAL, -- Need ON + poolToAddModListExt-r13 SL-CommTxPoolToAddModListExt-r13 OPTIONAL -- Need ON + } + } + } + } OPTIONAL, -- Need ON + commTxAllowRelayDedicated-r13 BOOLEAN OPTIONAL -- Need ON + ]] +} + +LogicalChGroupInfoList-r13 ::= SEQUENCE (SIZE (1..maxLCG-r13)) OF SL-PriorityList-r13 + +SL-CommTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-CommTxPoolToAddMod-r12 + +SL-CommTxPoolToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF SL-CommTxPoolToAddModExt-r13 + +SL-CommTxPoolToAddMod-r12 ::= SEQUENCE { + poolIdentity-r12 SL-TxPoolIdentity-r12, + pool-r12 SL-CommResourcePool-r12 +} + +SL-CommTxPoolToAddModExt-r13 ::= SEQUENCE { + poolIdentity-v1310 SL-TxPoolIdentity-v1310, + pool-r13 SL-CommResourcePool-r12 +} + +MAC-MainConfigSL-r12 ::= SEQUENCE { + periodic-BSR-TimerSL PeriodicBSR-Timer-r12 OPTIONAL, -- Need ON + retx-BSR-TimerSL RetxBSR-Timer-r12 +} + + +SL-CommTxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-CommResourcePool-r12 + +SL-CommTxPoolListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF SL-CommResourcePool-r12 + +SL-CommTxPoolListV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-TxPool-r14)) OF SL-CommResourcePoolV2X-r14 + +SL-CommRxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-RxPool-r12)) OF SL-CommResourcePool-r12 + +SL-CommRxPoolListV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-RxPool-r14)) OF SL-CommResourcePoolV2X-r14 + +SL-CommResourcePool-r12 ::= SEQUENCE { + sc-CP-Len-r12 SL-CP-Len-r12, + sc-Period-r12 SL-PeriodComm-r12, + sc-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + data-CP-Len-r12 SL-CP-Len-r12, + dataHoppingConfig-r12 SL-HoppingConfigComm-r12, + ue-SelectedResourceConfig-r12 SEQUENCE { + data-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + trpt-Subset-r12 SL-TRPT-Subset-r12 OPTIONAL -- Need OP + } OPTIONAL, -- Need OR + rxParametersNCell-r12 SEQUENCE { + tdd-Config-r12 TDD-Config OPTIONAL, -- Need OP + syncConfigIndex-r12 INTEGER (0..15) + } OPTIONAL, -- Need OR + txParameters-r12 SEQUENCE { + sc-TxParameters-r12 SL-TxParameters-r12, + dataTxParameters-r12 SL-TxParameters-r12 + } OPTIONAL, -- Cond Tx + ..., + [[ priorityList-r13 SL-PriorityList-r13 OPTIONAL -- Cond Tx + ]] + +} + +SL-CommResourcePoolV2X-r14 ::= SEQUENCE { + sl-OffsetIndicator-r14 SL-OffsetIndicator-r12 OPTIONAL, -- Need OR + sl-Subframe-r14 SubframeBitmapSL-r14, + adjacencyPSCCH-PSSCH-r14 BOOLEAN, + sizeSubchannel-r14 ENUMERATED { + n4, n5, n6, n8, n9, n10, n12, n15, n16, n18, n20, n25, n30, + n48, n50, n72, n75, n96, n100, spare13, spare12, spare11, + spare10, spare9, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1}, + numSubchannel-r14 ENUMERATED {n1, n3, n5, n8, n10, n15, n20, spare1}, + startRB-Subchannel-r14 INTEGER (0..99), + startRB-PSCCH-Pool-r14 INTEGER (0..99) OPTIONAL, -- Need OR + rxParametersNCell-r14 SEQUENCE { + tdd-Config-r14 TDD-Config OPTIONAL, -- Need OP + syncConfigIndex-r14 INTEGER (0..15) + } OPTIONAL, -- Need OR + dataTxParameters-r14 SL-TxParameters-r12 OPTIONAL, -- Cond Tx + zoneID-r14 INTEGER (0..7) OPTIONAL, -- Need OR + threshS-RSSI-CBR-r14 INTEGER (0..45) OPTIONAL, -- Need OR + poolReportId-r14 SL-V2X-TxPoolReportIdentity-r14 OPTIONAL, -- Need OR + cbr-pssch-TxConfigList-r14 SL-CBR-PPPP-TxConfigList-r14 OPTIONAL, -- Need OR + resourceSelectionConfigP2X-r14 SL-P2X-ResourceSelectionConfig-r14 OPTIONAL, -- Cond P2X + syncAllowed-r14 SL-SyncAllowed-r14 OPTIONAL, -- Need OR + restrictResourceReservationPeriod-r14 SL-RestrictResourceReservationPeriodList-r14 OPTIONAL, -- Need OR + ... +} + +SL-TRPT-Subset-r12 ::= BIT STRING (SIZE (3..5)) + +SL-V2X-TxPoolReportIdentity-r14::= INTEGER (1..maxSL-PoolToMeasure-r14) + + +SL-CommTxPoolSensingConfig-r14 ::= SEQUENCE { + pssch-TxConfigList-r14 SL-PSSCH-TxConfigList-r14, + thresPSSCH-RSRP-List-r14 SL-ThresPSSCH-RSRP-List-r14, + restrictResourceReservationPeriod-r14 SL-RestrictResourceReservationPeriodList-r14 OPTIONAL, -- Need OR + probResourceKeep-r14 ENUMERATED {v0, v0dot2, v0dot4, v0dot6, v0dot8, + spare3,spare2, spare1}, + p2x-SensingConfig-r14 SEQUENCE { + minNumCandidateSF-r14 INTEGER (1..13), + gapCandidateSensing-r14 BIT STRING (SIZE (10)) + } OPTIONAL, -- Need OR + sl-ReselectAfter-r14 ENUMERATED {n1, n2, n3, n4, n5, n6, n7, n8, n9, + spare7, spare6, spare5, spare4, spare3, spare2, + spare1} OPTIONAL -- Need OR +} + + +SL-CP-Len-r12 ::= ENUMERATED {normal, extended} + + +SL-DiscConfig-r12 ::= SEQUENCE { + discTxResources-r12 CHOICE { + release NULL, + setup CHOICE { + scheduled-r12 SEQUENCE { + discTxConfig-r12 SL-DiscResourcePool-r12 OPTIONAL, -- Need ON + discTF-IndexList-r12 SL-TF-IndexPairList-r12 OPTIONAL, -- Need ON + discHoppingConfig-r12 SL-HoppingConfigDisc-r12 + OPTIONAL -- Need ON + }, + ue-Selected-r12 SEQUENCE { + discTxPoolDedicated-r12 SEQUENCE { + poolToReleaseList-r12 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r12 SL-DiscTxPoolToAddModList-r12 OPTIONAL -- Need ON + } OPTIONAL -- Need ON + } + } + } OPTIONAL, -- Need ON + ..., + [[ discTF-IndexList-v1260 CHOICE { + release NULL, + setup SEQUENCE { + discTF-IndexList-r12b SL-TF-IndexPairList-r12b + } + } OPTIONAL -- Need ON + ]], + [[ discTxResourcesPS-r13 CHOICE { + release NULL, + setup CHOICE { + scheduled-r13 SL-DiscTxConfigScheduled-r13, + ue-Selected-r13 SEQUENCE { + discTxPoolPS-Dedicated-r13 SL-DiscTxPoolDedicated-r13 + } + } + } OPTIONAL, -- Need ON + discTxInterFreqInfo-r13 CHOICE { + release NULL, + setup SEQUENCE { + discTxCarrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need OR + discTxRefCarrierDedicated-r13 SL-DiscTxRefCarrierDedicated-r13 OPTIONAL, -- Need OR + discTxInfoInterFreqListAdd-r13 SL-DiscTxInfoInterFreqListAdd-r13 OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + gapRequestsAllowedDedicated-r13 BOOLEAN OPTIONAL, -- Need ON + discRxGapConfig-r13 CHOICE { + release NULL, + setup SL-GapConfig-r13 + } OPTIONAL, -- Need ON + discTxGapConfig-r13 CHOICE { + release NULL, + setup SL-GapConfig-r13 + } OPTIONAL, -- Need ON + discSysInfoToReportConfig-r13 CHOICE { + release NULL, + setup SL-DiscSysInfoToReportFreqList-r13 + } OPTIONAL -- Need ON + ]] +} + +SL-DiscSysInfoToReportFreqList-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF ARFCN-ValueEUTRA-r9 + +SL-DiscTxInfoInterFreqListAdd-r13 ::= SEQUENCE { + discTxFreqToAddModList-r13 SEQUENCE (SIZE (1..maxFreq)) OF SL-DiscTxResourceInfoPerFreq-r13 OPTIONAL, -- Need ON + discTxFreqToReleaseList-r13 SEQUENCE (SIZE (1..maxFreq)) OF ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need ON + ... +} + +SL-DiscTxResourceInfoPerFreq-r13 ::= SEQUENCE { + discTxCarrierFreq-r13 ARFCN-ValueEUTRA-r9, + discTxResources-r13 SL-DiscTxResource-r13 OPTIONAL, -- Need OR + discTxResourcesPS-r13 SL-DiscTxResource-r13 OPTIONAL, -- Need OR + discTxRefCarrierDedicated-r13 SL-DiscTxRefCarrierDedicated-r13 OPTIONAL, -- Need OR + discCellSelectionInfo-r13 CellSelectionInfoNFreq-r13 OPTIONAL, -- Need OR + ... +} + +SL-DiscTxResource-r13 ::= CHOICE { + release NULL, + setup CHOICE { + scheduled-r13 SL-DiscTxConfigScheduled-r13, + ue-Selected-r13 SL-DiscTxPoolDedicated-r13 + } +} + +SL-DiscTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-DiscTxPoolToAddMod-r12 + +SL-DiscTxPoolToAddMod-r12 ::= SEQUENCE { + poolIdentity-r12 SL-TxPoolIdentity-r12, + pool-r12 SL-DiscResourcePool-r12 +} + +SL-DiscTxConfigScheduled-r13 ::= SEQUENCE { + discTxConfig-r13 SL-DiscResourcePool-r12 OPTIONAL, -- Need ON + discTF-IndexList-r13 SL-TF-IndexPairList-r12b OPTIONAL, -- Need ON + discHoppingConfig-r13 SL-HoppingConfigDisc-r12 OPTIONAL,-- Need ON + ... +} + +SL-DiscTxPoolDedicated-r13 ::= SEQUENCE { + poolToReleaseList-r13 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r13 SL-DiscTxPoolToAddModList-r12 OPTIONAL -- Need ON +} + +SL-TF-IndexPairList-r12 ::= SEQUENCE (SIZE (1..maxSL-TF-IndexPair-r12)) OF SL-TF-IndexPair-r12 + +SL-TF-IndexPair-r12 ::= SEQUENCE { + discSF-Index-r12 INTEGER (1.. 200) OPTIONAL, -- Need ON + discPRB-Index-r12 INTEGER (1.. 50) OPTIONAL -- Need ON +} + +SL-TF-IndexPairList-r12b ::= SEQUENCE (SIZE (1..maxSL-TF-IndexPair-r12)) OF SL-TF-IndexPair-r12b + +SL-TF-IndexPair-r12b ::= SEQUENCE { + discSF-Index-r12b INTEGER (0..209) OPTIONAL, -- Need ON + discPRB-Index-r12b INTEGER (0..49) OPTIONAL -- Need ON +} + +SL-DiscTxRefCarrierDedicated-r13 ::= CHOICE { + pCell NULL, + sCell SCellIndex-r10 +} + + +SL-DiscTxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-DiscResourcePool-r12 + +SL-DiscRxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-RxPool-r12)) OF SL-DiscResourcePool-r12 + +SL-DiscResourcePool-r12 ::= SEQUENCE { + cp-Len-r12 SL-CP-Len-r12, + discPeriod-r12 ENUMERATED {rf32, rf64, rf128, + rf256, rf512, rf1024, rf16-v1310, spare}, + numRetx-r12 INTEGER (0..3), + numRepetition-r12 INTEGER (1..50), + tf-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + txParameters-r12 SEQUENCE { + txParametersGeneral-r12 SL-TxParameters-r12, + ue-SelectedResourceConfig-r12 SEQUENCE { + poolSelection-r12 CHOICE { + rsrpBased-r12 SL-PoolSelectionConfig-r12, + random-r12 NULL + }, + txProbability-r12 ENUMERATED {p25, p50, p75, p100} + } OPTIONAL -- Need OR + } OPTIONAL, -- Cond Tx + rxParameters-r12 SEQUENCE { + tdd-Config-r12 TDD-Config OPTIONAL, -- Need OR + syncConfigIndex-r12 INTEGER (0..15) + } OPTIONAL, -- Need OR + ..., + [[ discPeriod-v1310 CHOICE { + release NULL, + setup ENUMERATED {rf4, rf6, rf7, rf8, + rf12, rf14, rf24, rf28} + } OPTIONAL, -- Need ON + rxParamsAddNeighFreq-r13 CHOICE { + release NULL, + setup SEQUENCE { + physCellId-r13 PhysCellIdList-r13 + } + } OPTIONAL, -- Need ON + txParamsAddNeighFreq-r13 CHOICE { + release NULL, + setup SEQUENCE { + physCellId-r13 PhysCellIdList-r13, + p-Max P-Max OPTIONAL, -- Need OP + tdd-Config-r13 TDD-Config OPTIONAL, -- Cond TDD-OR + tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD-OR + freqInfo SEQUENCE { + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission + }, + referenceSignalPower INTEGER (-60..50), + syncConfigIndex-r13 INTEGER (0..15) OPTIONAL -- Need OR + } + } OPTIONAL -- Need ON + ]], + [[ txParamsAddNeighFreq-v1370 CHOICE { + release NULL, + setup SEQUENCE { + freqInfo-v1370 SEQUENCE { + additionalSpectrumEmission-v1370 AdditionalSpectrumEmission-v10l0 + } + } + } OPTIONAL -- Need ON + ]] +} + +PhysCellIdList-r13 ::= SEQUENCE (SIZE (1.. maxSL-DiscCells-r13)) OF PhysCellId + +SL-PoolSelectionConfig-r12 ::= SEQUENCE { + threshLow-r12 RSRP-RangeSL2-r12, + threshHigh-r12 RSRP-RangeSL2-r12 +} + + +SL-DiscSysInfoReport-r13 ::= SEQUENCE { + plmn-IdentityList-r13 PLMN-IdentityList OPTIONAL, + cellIdentity-13 CellIdentity OPTIONAL, + carrierFreqInfo-13 ARFCN-ValueEUTRA-r9 OPTIONAL, + discRxResources-r13 SL-DiscRxPoolList-r12 OPTIONAL, + discTxPoolCommon-r13 SL-DiscTxPoolList-r12 OPTIONAL, + discTxPowerInfo-r13 SL-DiscTxPowerInfoList-r12 OPTIONAL, + discSyncConfig-r13 SL-SyncConfigNFreq-r13 OPTIONAL, + discCellSelectionInfo-r13 SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + q-RxLevMinOffset-r13 INTEGER (1..8) OPTIONAL + } OPTIONAL, + cellReselectionInfo-r13 SEQUENCE { + q-Hyst-r13 ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + q-RxLevMin-r13 Q-RxLevMin, + t-ReselectionEUTRA-r13 T-Reselection + } OPTIONAL, + tdd-Config-r13 TDD-Config OPTIONAL, + freqInfo-r13 SEQUENCE { + ul-CarrierFreq-r13 ARFCN-ValueEUTRA OPTIONAL, + ul-Bandwidth-r13 ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, + additionalSpectrumEmission-r13 AdditionalSpectrumEmission OPTIONAL + } OPTIONAL, + p-Max-r13 P-Max OPTIONAL, + referenceSignalPower-r13 INTEGER (-60..50) OPTIONAL, + ..., + [[ + freqInfo-v1370 SEQUENCE { + additionalSpectrumEmission-v1370 AdditionalSpectrumEmission-v10l0 + } OPTIONAL + ]] +} + + +SL-DiscTxPowerInfoList-r12 ::= SEQUENCE (SIZE (maxSL-DiscPowerClass-r12)) OF SL-DiscTxPowerInfo-r12 + +SL-DiscTxPowerInfo-r12 ::= SEQUENCE { + discMaxTxPower-r12 P-Max, + ... +} + + +SL-GapConfig-r13 ::= SEQUENCE { + gapPatternList-r13 SL-GapPatternList-r13 +} + +SL-GapPatternList-r13 ::= SEQUENCE (SIZE (1..maxSL-GP-r13)) OF SL-GapPattern-r13 + +SL-GapPattern-r13 ::= SEQUENCE { + gapPeriod-r13 ENUMERATED {sf40, sf60, sf70, sf80, sf120, sf140, sf160, + sf240, sf280, sf320, sf640, sf1280, sf2560, sf5120, + sf10240}, + gapOffset-r12 SL-OffsetIndicator-r12, + gapSubframeBitmap-r13 BIT STRING (SIZE (1..10240)), + ... +} + + +SL-GapRequest-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-GapFreqInfo-r13 + +SL-GapFreqInfo-r13 ::= SEQUENCE { + carrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL, + gapPatternList-r13 SL-GapPatternList-r13 +} + + +SL-HoppingConfigComm-r12 ::= SEQUENCE { + hoppingParameter-r12 INTEGER (0..504), + numSubbands-r12 ENUMERATED {ns1, ns2, ns4}, + rb-Offset-r12 INTEGER (0..110) +} + +SL-HoppingConfigDisc-r12 ::= SEQUENCE { + a-r12 INTEGER (1..200), + b-r12 INTEGER (1..10), + c-r12 ENUMERATED {n1, n5} +} + + +SL-InterFreqInfoListV2X-r14 ::= SEQUENCE (SIZE (0..maxFreqV2X-1-r14)) OF SL-InterFreqInfoV2X-r14 + +SL-InterFreqInfoV2X-r14 ::= SEQUENCE { + plmn-IdentityList-r14 PLMN-IdentityList OPTIONAL, -- Need OP + v2x-CommCarrierFreq-r14 ARFCN-ValueEUTRA-r9, + sl-MaxTxPower-r14 P-Max OPTIONAL, -- Need OR + sl-Bandwidth-r14 ENUMERATED {n6, n15, n25, n50, n75, n100} OPTIONAL, -- Need OR + v2x-SchedulingPool-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-UE-ConfigList-r14 SL-V2X-UE-ConfigList-r14 OPTIONAL, -- Need OR + ..., + [[ additionalSpectrumEmissionV2X-r14 CHOICE { + additionalSpectrumEmission-r14 AdditionalSpectrumEmission, + additionalSpectrumEmission-v1440 AdditionalSpectrumEmission-v10l0 + } OPTIONAL -- Need ON + ]] +} + + +SL-V2X-UE-ConfigList-r14 ::= SEQUENCE (SIZE (1.. maxCellIntra)) OF SL-V2X-InterFreqUE-Config-r14 + +SL-V2X-InterFreqUE-Config-r14 ::= SEQUENCE { + physCellIdList-r14 PhysCellIdList-r13 OPTIONAL, -- Need OR + typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR + v2x-SyncConfig-r14 SL-SyncConfigListNFreqV2X-r14 OPTIONAL, -- Need OR + v2x-CommRxPool-r14 SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolNormal-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + p2x-CommTxPoolNormal-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolExceptional-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-ResourceSelectionConfig-r14 SL-CommTxPoolSensingConfig-r14 OPTIONAL, -- Need OR + zoneConfig-r14 SL-ZoneConfig-r14 OPTIONAL, -- Need OR + offsetDFN-r14 INTEGER (0..1000) OPTIONAL, -- Need OR + ... +} + + +SL-OffsetIndicator-r12 ::= CHOICE { + small-r12 INTEGER (0..319), + large-r12 INTEGER (0..10239) +} + +SL-OffsetIndicatorSync-r12 ::= INTEGER (0..39) + +SL-OffsetIndicatorSync-v1430 ::= INTEGER (40..159) + +SL-OffsetIndicatorSync-r14 ::= INTEGER (0..159) + + +SL-P2X-ResourceSelectionConfig-r14 ::= SEQUENCE { + partialSensing-r14 ENUMERATED {true} OPTIONAL, -- Need OR + randomSelection-r14 ENUMERATED {true} OPTIONAL -- Need OR +} + + +SL-PeriodComm-r12 ::= ENUMERATED {sf40, sf60, sf70, sf80, sf120, sf140, + sf160, sf240, sf280, sf320, spare6, spare5, + spare4, spare3, spare2, spare} + + +SL-PriorityList-r13 ::= SEQUENCE (SIZE (1..maxSL-Prio-r13)) OF SL-Priority-r13 + +SL-Priority-r13 ::= INTEGER (1..8) + + +SL-PSSCH-TxConfigList-r14 ::= SEQUENCE (SIZE (1..maxPSSCH-TxConfig-r14)) OF SL-PSSCH-TxConfig-r14 + +SL-PSSCH-TxConfig-r14 ::= SEQUENCE { + typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR + thresUE-Speed-r14 ENUMERATED {kmph60, kmph80, kmph100, kmph120, + kmph140, kmph160, kmph180, kmph200}, + parametersAboveThres-r14 SL-PSSCH-TxParameters-r14, + parametersBelowThres-r14 SL-PSSCH-TxParameters-r14, + ... +} + +SL-PSSCH-TxParameters-r14 ::= SEQUENCE { + minMCS-PSSCH-r14 INTEGER (0..31), + maxMCS-PSSCH-r14 INTEGER (0..31), + minSubChannel-NumberPSSCH-r14 INTEGER (1..20), + maxSubchannel-NumberPSSCH-r14 INTEGER (1..20), + allowedRetxNumberPSSCH-r14 ENUMERATED {n0, n1, both, spare1}, + maxTxPower-r14 SL-TxPower-r14 OPTIONAL -- Cond CBR +} + + +SL-RestrictResourceReservationPeriodList-r14 ::= SEQUENCE (SIZE (1..maxReservationPeriod-r14)) OF SL-RestrictResourceReservationPeriod-r14 + +SL-RestrictResourceReservationPeriod-r14 ::= ENUMERATED {v0dot2, v0dot5, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, spare4,spare3, spare2, spare1} + + +SLSSID-r12 ::= INTEGER (0..167) + + +SL-SyncAllowed-r14 ::= SEQUENCE { + gnss-Sync-r14 ENUMERATED {true} OPTIONAL, -- Need OR + enb-Sync-r14 ENUMERATED {true} OPTIONAL, -- Need OR + ue-Sync-r14 ENUMERATED {true} OPTIONAL -- Need OR +} + + +SL-SyncConfigList-r12 ::= SEQUENCE (SIZE (1..maxSL-SyncConfig-r12)) OF SL-SyncConfig-r12 + +SL-SyncConfigListV2X-r14 ::= SEQUENCE (SIZE (1.. maxSL-V2X-SyncConfig-r14)) OF SL-SyncConfig-r12 + +SL-SyncConfig-r12 ::= SEQUENCE { + syncCP-Len-r12 SL-CP-Len-r12, + syncOffsetIndicator-r12 SL-OffsetIndicatorSync-r12, + slssid-r12 SLSSID-r12, + txParameters-r12 SEQUENCE { + syncTxParameters-r12 SL-TxParameters-r12, + syncTxThreshIC-r12 RSRP-RangeSL-r12, + syncInfoReserved-r12 BIT STRING (SIZE (19)) OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + rxParamsNCell-r12 SEQUENCE { + physCellId-r12 PhysCellId, + discSyncWindow-r12 ENUMERATED {w1, w2} + } OPTIONAL, -- Need OR + ..., + [[ syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ syncOffsetIndicator-v1430 SL-OffsetIndicatorSync-v1430 OPTIONAL, -- Need OR + gnss-Sync-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + +SL-SyncConfigListNFreq-r13 ::= SEQUENCE (SIZE (1..maxSL-SyncConfig-r12)) OF SL-SyncConfigNFreq-r13 + +SL-SyncConfigListNFreqV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-SyncConfig-r14)) OF SL-SyncConfigNFreq-r13 + +SL-SyncConfigNFreq-r13 ::= SEQUENCE { + asyncParameters-r13 SEQUENCE { + syncCP-Len-r13 SL-CP-Len-r12, + syncOffsetIndicator-r13 SL-OffsetIndicatorSync-r12, + slssid-r13 SLSSID-r12 + } OPTIONAL, -- Need OR + txParameters-r13 SEQUENCE { + syncTxParameters-r13 SL-TxParameters-r12, + syncTxThreshIC-r13 RSRP-RangeSL-r12, + syncInfoReserved-r13 BIT STRING (SIZE (19)) OPTIONAL, -- Need OR + syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + rxParameters-r13 SEQUENCE { + discSyncWindow-r13 ENUMERATED {w1, w2} + } OPTIONAL, -- Need OR + ..., + [[ syncOffsetIndicator-v1430 SL-OffsetIndicatorSync-v1430 OPTIONAL, -- Need OR + gnss-Sync-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + + +SL-TF-ResourceConfig-r12 ::= SEQUENCE { + prb-Num-r12 INTEGER (1..100), + prb-Start-r12 INTEGER (0..99), + prb-End-r12 INTEGER (0..99), + offsetIndicator-r12 SL-OffsetIndicator-r12, + subframeBitmap-r12 SubframeBitmapSL-r12 +} + +SubframeBitmapSL-r12 ::= CHOICE { + bs4-r12 BIT STRING (SIZE (4)), + bs8-r12 BIT STRING (SIZE (8)), + bs12-r12 BIT STRING (SIZE (12)), + bs16-r12 BIT STRING (SIZE (16)), + bs30-r12 BIT STRING (SIZE (30)), + bs40-r12 BIT STRING (SIZE (40)), + bs42-r12 BIT STRING (SIZE (42)) +} + +SubframeBitmapSL-r14 ::= CHOICE { + bs10-r14 BIT STRING (SIZE (10)), + bs16-r14 BIT STRING (SIZE (16)), + bs20-r14 BIT STRING (SIZE (20)), + bs30-r14 BIT STRING (SIZE (30)), + bs40-r14 BIT STRING (SIZE (40)), + bs50-r14 BIT STRING (SIZE (50)), + bs60-r14 BIT STRING (SIZE (60)), + bs100-r14 BIT STRING (SIZE (100)) +} + + +SL-TxPower-r14 ::= CHOICE { + minusinfinity-r14 NULL, + txPower-r14 INTEGER (-41..31) +} + + +SL-TypeTxSync-r14 ::= ENUMERATED {gnss, enb, ue} + + +SL-ThresPSSCH-RSRP-List-r14 ::= SEQUENCE (SIZE (64)) OF SL-ThresPSSCH-RSRP-r14 + +SL-ThresPSSCH-RSRP-r14 ::= INTEGER (0..66) + + +SL-TxParameters-r12 ::= SEQUENCE { + alpha-r12 Alpha-r12, + p0-r12 P0-SL-r12 +} + +P0-SL-r12 ::= INTEGER (-126..31) + + +SL-TxPoolIdentity-r12 ::= INTEGER (1.. maxSL-TxPool-r12) + +SL-TxPoolIdentity-v1310 ::= INTEGER (maxSL-TxPool-r12Plus1-r13.. maxSL-TxPool-r13) + +SL-V2X-TxPoolIdentity-r14 ::= INTEGER (1.. maxSL-V2X-TxPool-r14) + + +SL-TxPoolToReleaseList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-TxPoolIdentity-r12 + +SL-TxPoolToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF SL-TxPoolIdentity-v1310 + + +SL-V2X-ConfigDedicated-r14 ::= SEQUENCE { + commTxResources-r14 CHOICE { + release NULL, + setup CHOICE { + scheduled-r14 SEQUENCE { + sl-V-RNTI-r14 C-RNTI, + mac-MainConfig-r14 MAC-MainConfigSL-r12, + v2x-SchedulingPool-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need ON + mcs-r14 INTEGER (0..31) OPTIONAL, -- Need OR + logicalChGroupInfoList-r14 LogicalChGroupInfoList-r13 + }, + ue-Selected-r14 SEQUENCE { + -- Pool for normal usage + v2x-CommTxPoolNormalDedicated-r14 SEQUENCE { + poolToReleaseList-r14 SL-TxPoolToReleaseListV2X-r14 OPTIONAL, -- Need ON + poolToAddModList-r14 SL-TxPoolToAddModListV2X-r14 OPTIONAL, -- Need ON + v2x-CommTxPoolSensingConfig-r14 SL-CommTxPoolSensingConfig-r14 + OPTIONAL -- Need ON + } + } + } + } OPTIONAL, -- Need ON + v2x-InterFreqInfoList-r14 SL-InterFreqInfoListV2X-r14 OPTIONAL, -- Need ON + thresSL-TxPrioritization-r14 SL-Priority-r13 OPTIONAL, -- Need OR + typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR + cbr-DedicatedTxConfigList-r14 SL-CBR-CommonTxConfigList-r14 OPTIONAL, -- Need OR + ... +} + +SL-TxPoolToAddModListV2X-r14 ::= SEQUENCE (SIZE (1.. maxSL-V2X-TxPool-r14)) OF SL-TxPoolToAddMod-r14 + +SL-TxPoolToAddMod-r14 ::= SEQUENCE { + poolIdentity-r14 SL-V2X-TxPoolIdentity-r14, + pool-r14 SL-CommResourcePoolV2X-r14 +} + +SL-TxPoolToReleaseListV2X-r14 ::= SEQUENCE (SIZE (1.. maxSL-V2X-TxPool-r14)) OF SL-V2X-TxPoolIdentity-r14 + + +SL-ZoneConfig-r14 ::= SEQUENCE { + zoneLength-r14 ENUMERATED { m5, m10, m20, m50, m100, m200, m500, spare1}, + zoneWidth-r14 ENUMERATED { m5, m10, m20, m50, m100, m200, m500, spare1}, + zoneIdLongiMod-r14 INTEGER (1..4), + zoneIdLatiMod-r14 INTEGER (1..4) +} + + +maxACDC-Cat-r13 INTEGER ::= 16 -- Maximum number of ACDC categories (per PLMN) +maxAvailNarrowBands-r13 INTEGER ::= 16 -- Maximum number of narrowbands +maxBandComb-r10 INTEGER ::= 128 -- Maximum number of band combinations. +maxBandComb-r11 INTEGER ::= 256 -- Maximum number of additional band combinations. +maxBandComb-r13 INTEGER ::= 384 -- Maximum number of band combinations in Rel-13 +maxBands INTEGER ::= 64 -- Maximum number of bands listed in EUTRA UE caps +maxBandwidthClass-r10 INTEGER ::= 16 -- Maximum number of supported CA BW classes per band +maxBandwidthCombSet-r10 INTEGER ::= 32 -- Maximum number of bandwidth combination sets per + -- supported band combination +maxCBR-Level-r14 INTEGER ::= 16 -- Maximum number of CBR levels +maxCBR-Level-1-r14 INTEGER ::= 15 +maxCBR-Report-r14 INTEGER ::= 72 -- Maximum number of CBR results in a report +maxCDMA-BandClass INTEGER ::= 32 -- Maximum value of the CDMA band classes +maxCE-Level-r13 INTEGER ::= 4 -- Maximum number of CE levels +maxCellBlack INTEGER ::= 16 -- Maximum number of blacklisted physical cell identity + -- ranges listed in SIB type 4 and 5 +maxCellHistory-r12 INTEGER ::= 16 -- Maximum number of visited EUTRA cells reported +maxCellInfoGERAN-r9 INTEGER ::= 32 -- Maximum number of GERAN cells for which system in- + -- formation can be provided as redirection assistance +maxCellInfoUTRA-r9 INTEGER ::= 16 -- Maximum number of UTRA cells for which system + -- information can be provided as redirection + -- assistance +maxCombIDC-r11 INTEGER ::= 128 -- Maximum number of reported UL CA combinations +maxCSI-IM-r11 INTEGER ::= 3 -- Maximum number of CSI-IM configurations + -- (per carrier frequency) +maxCSI-IM-r12 INTEGER ::= 4 -- Maximum number of CSI-IM configurations + -- (per carrier frequency) +minCSI-IM-r13 INTEGER ::= 5 -- Minimum number of CSI IM configurations from which + -- REL-13 extension is used +maxCSI-IM-r13 INTEGER ::= 24 -- Maximum number of CSI-IM configurations + -- (per carrier frequency) +maxCSI-IM-v1310 INTEGER ::= 20 -- Maximum number of additional CSI-IM configurations + -- (per carrier frequency) +maxCSI-Proc-r11 INTEGER ::= 4 -- Maximum number of CSI processes (per carrier + -- frequency) +maxCSI-RS-NZP-r11 INTEGER ::= 3 -- Maximum number of CSI RS resource + -- configurations using non-zero Tx power + -- (per carrier frequency) +minCSI-RS-NZP-r13 INTEGER ::= 4 -- Minimum number of CSI RS resource from which + -- REL-13 extension is used +maxCSI-RS-NZP-r13 INTEGER ::= 24 -- Maximum number of CSI RS resource + -- configurations using non-zero Tx power + -- (per carrier frequency) +maxCSI-RS-NZP-v1310 INTEGER ::= 21 -- Maximum number of additional CSI RS resource + -- configurations using non-zero Tx power + -- (per carrier frequency) +maxCSI-RS-ZP-r11 INTEGER ::= 4 -- Maximum number of CSI RS resource + -- configurations using zero Tx power(per carrier + -- frequency) +maxCQI-ProcExt-r11 INTEGER ::= 3 -- Maximum number of additional periodic CQI + -- configurations (per carrier frequency) +maxFreqUTRA-TDD-r10 INTEGER ::= 6 -- Maximum number of UTRA TDD carrier frequencies for + -- which system information can be provided as + -- redirection assistance +maxCellInter INTEGER ::= 16 -- Maximum number of neighbouring inter-frequency + -- cells listed in SIB type 5 +maxCellIntra INTEGER ::= 16 -- Maximum number of neighbouring intra-frequency + -- cells listed in SIB type 4 +maxCellListGERAN INTEGER ::= 3 -- Maximum number of lists of GERAN cells +maxCellMeas INTEGER ::= 32 -- Maximum number of entries in each of the + -- cell lists in a measurement object +maxCellReport INTEGER ::= 8 -- Maximum number of reported cells/CSI-RS resources +maxConfigSPS-r14 INTEGER ::= 8 -- Maximum number of simultaneous SPS configurations +maxCSI-RS-Meas-r12 INTEGER ::= 96 -- Maximum number of entries in the CSI-RS list + -- in a measurement object +maxDRB INTEGER ::= 11 -- Maximum number of Data Radio Bearers +maxDS-Duration-r12 INTEGER ::= 5 -- Maximum number of subframes in a discovery signals + -- occasion +maxDS-ZTP-CSI-RS-r12 INTEGER ::= 5 -- Maximum number of zero transmission power CSI-RS for + -- a serving cell concerning discovery signals +maxEARFCN INTEGER ::= 65535 -- Maximum value of EUTRA carrier frequency +maxEARFCN-Plus1 INTEGER ::= 65536 -- Lowest value extended EARFCN range +maxEARFCN2 INTEGER ::= 262143 -- Highest value extended EARFCN range +maxEPDCCH-Set-r11 INTEGER ::= 2 -- Maximum number of EPDCCH sets +maxFBI INTEGER ::= 64 -- Maximum value of fequency band indicator +maxFBI-Plus1 INTEGER ::= 65 -- Lowest value extended FBI range +maxFBI2 INTEGER ::= 256 -- Highest value extended FBI range +maxFreq INTEGER ::= 8 -- Maximum number of carrier frequencies +maxFreqIDC-r11 INTEGER ::= 32 -- Maximum number of carrier frequencies that are + -- affected by the IDC problems +maxFreqMBMS-r11 INTEGER ::= 5 -- Maximum number of carrier frequencies for which an + -- MBMS capable UE may indicate an interest +maxFreqV2X-r14 INTEGER ::= 8 -- Maximum number of carrier frequencies for which V2X + -- sidelink communication can be configured +maxFreqV2X-1-r14 INTEGER ::= 7 -- Highest index of frequencies +maxGERAN-SI INTEGER ::= 10 -- Maximum number of GERAN SI blocks that can be + -- provided as part of NACC information +maxGNFG INTEGER ::= 16 -- Maximum number of GERAN neighbour freq groups +maxLCG-r13 INTEGER ::= 4 -- Maximum number of logical channel groups +maxLogMeasReport-r10 INTEGER ::= 520 -- Maximum number of logged measurement entries + -- that can be reported by the UE in one message +maxMBSFN-Allocations INTEGER ::= 8 -- Maximum number of MBSFN frame allocations with + -- different offset +maxMBSFN-Area INTEGER ::= 8 +maxMBSFN-Area-1 INTEGER ::= 7 +maxMBMS-ServiceListPerUE-r13 INTEGER ::= 15 -- Maximum number of services which the UE can + -- include in the MBMS interest indication +maxMeasId INTEGER ::= 32 +maxMeasId-Plus1 INTEGER ::= 33 +maxMeasId-r12 INTEGER ::= 64 +maxMultiBands INTEGER ::= 8 -- Maximum number of additional frequency bands + -- that a cell belongs to +maxNS-Pmax-r10 INTEGER ::= 8 -- Maximum number of NS and P-Max values per band +maxNAICS-Entries-r12 INTEGER ::= 8 -- Maximum number of supported NAICS combination(s) +maxNeighCell-r12 INTEGER ::= 8 -- Maximum number of neighbouring cells in NAICS + -- configuration (per carrier frequency) +maxNeighCell-SCPTM-r13 INTEGER ::= 8 -- Maximum number of SCPTM neighbour cells +maxObjectId INTEGER ::= 32 +maxObjectId-Plus1-r13 INTEGER ::= 33 +maxObjectId-r13 INTEGER ::= 64 +maxP-a-PerNeighCell-r12 INTEGER ::= 3 -- Maximum number of power offsets for a neighbour cell + -- in NAICS configuration +maxPageRec INTEGER ::= 16 -- +maxPhysCellIdRange-r9 INTEGER ::= 4 -- Maximum number of physical cell identity ranges +maxPLMN-r11 INTEGER ::= 6 -- Maximum number of PLMNs +maxPLMN-1-r14 INTEGER ::= 5 -- Maximum number of PLMNs minus one +maxPNOffset INTEGER ::= 511 -- Maximum number of CDMA2000 PNOffsets +maxPMCH-PerMBSFN INTEGER ::= 15 +maxPSSCH-TxConfig-r14 INTEGER ::= 16 -- Maximum number of PSSCH TX configurations +maxQCI-r13 INTEGER ::= 6 -- Maximum number of QCIs +maxRAT-Capabilities INTEGER ::= 8 -- Maximum number of interworking RATs (incl EUTRA) +maxRE-MapQCL-r11 INTEGER ::= 4 -- Maximum number of PDSCH RE Mapping configurations + -- (per carrier frequency) +maxReportConfigId INTEGER ::= 32 +maxReservationPeriod-r14 INTEGER ::= 16 -- Maximum number of resource reservation periodicities + -- for sidelink V2X communication +maxRSTD-Freq-r10 INTEGER ::= 3 -- Maximum number of frequency layers for RSTD + -- measurement +maxSAI-MBMS-r11 INTEGER ::= 64 -- Maximum number of MBMS service area identities + -- broadcast per carrier frequency +maxSCell-r10 INTEGER ::= 4 -- Maximum number of SCells +maxSCell-r13 INTEGER ::= 31 -- Highest value of extended number range of SCells +maxSC-MTCH-r13 INTEGER ::= 1023 -- Maximum number of SC-MTCHs in one cell +maxSC-MTCH-BR-r14 INTEGER ::= 128 -- Maximum number of SC-MTCHs in one cell for feMTC +maxSL-CommRxPoolNFreq-r13 INTEGER ::= 32 -- Maximum number of individual sidelink communication + -- Rx resource pools on neighbouring freq +maxSL-CommRxPoolPreconf-v1310 INTEGER ::= 12 -- Maximum number of additional preconfigured + -- sidelink communication Rx resource pool entries +maxSL-TxPool-r12Plus1-r13 INTEGER ::= 5 -- First additional individual sidelink + -- Tx resource pool +maxSL-TxPool-v1310 INTEGER ::= 4 -- Maximum number of additional sidelink + -- Tx resource pool entries +maxSL-TxPool-r13 INTEGER ::= 8 -- Maximum number of individual sidelink + -- Tx resource pools +maxSL-CommTxPoolPreconf-v1310 INTEGER ::= 7 -- Maximum number of additional preconfigured + -- sidelink Tx resource pool entries +maxSL-Dest-r12 INTEGER ::= 16 -- Maximum number of sidelink destinations +maxSL-DiscCells-r13 INTEGER ::= 16 -- Maximum number of cells with similar sidelink + -- configurations +maxSL-DiscPowerClass-r12 INTEGER ::= 3 -- Maximum number of sidelink power classes +maxSL-DiscRxPoolPreconf-r13 INTEGER ::= 16 -- Maximum number of preconfigured sidelink + -- discovery Rx resource pool entries +maxSL-DiscSysInfoReportFreq-r13 INTEGER ::= 8 -- Maximum number of frequencies to include in a + -- SidelinkUEInformation for SI reporting +maxSL-DiscTxPoolPreconf-r13 INTEGER ::= 4 -- Maximum number of preconfigured sidelink + -- discovery Tx resource pool entries +maxSL-GP-r13 INTEGER ::= 8 -- Maximum number of gap patterns that can be requested + -- for a frequency or assigned +maxSL-PoolToMeasure-r14 INTEGER ::= 72 -- Maximum number of TX resource pools for CBR + -- measurement and report +maxSL-Prio-r13 INTEGER ::= 8 -- Maximum number of entries in sidelink priority list +maxSL-RxPool-r12 INTEGER ::= 16 -- Maximum number of individual sidelink Rx resource pools +maxSL-SyncConfig-r12 INTEGER ::= 16 -- Maximum number of sidelink Sync configurations +maxSL-TF-IndexPair-r12 INTEGER ::= 64 -- Maximum number of sidelink Time Freq resource index + -- pairs +maxSL-TxPool-r12 INTEGER ::= 4 -- Maximum number of individual sidelink Tx resource pools +maxSL-V2X-RxPool-r14 INTEGER ::= 16 -- Maximum number of RX resource pools for + -- V2X sidelink communication +maxSL-V2X-RxPoolPreconf-r14 INTEGER ::= 16 -- Maximum number of RX resource pools for + -- V2X sidelink communication +maxSL-V2X-TxPool-r14 INTEGER ::= 8 -- Maximum number of TX resource pools for + -- V2X sidelink communication +maxSL-V2X-TxPoolPreconf-r14 INTEGER ::= 8 -- Maximum number of TX resource pools for + -- V2X sidelink communication +maxSL-V2X-SyncConfig-r14 INTEGER ::= 16 -- Maximum number of sidelink Sync configurations + -- for V2X sidelink communication +maxSL-V2X-CBRConfig-r14 INTEGER ::= 4 -- Maximum number of CBR range configurations + -- for V2X sidelink communication congestion + -- control +maxSL-V2X-CBRConfig-1-r14 INTEGER ::= 3 +maxSL-V2X-TxConfig-r14 INTEGER ::= 64 -- Maximum number of TX parameter configurations + -- for V2X sidelink communication congestion + -- control +maxSL-V2X-TxConfig-1-r14 INTEGER ::= 63 +maxSL-V2X-CBRConfig2-r14 INTEGER ::= 8 -- Maximum number of CBR range configurations in + -- pre-configuration for V2X sidelink + -- communication congestion control +maxSL-V2X-CBRConfig2-1-r14 INTEGER ::= 7 +maxSL-V2X-TxConfig2-r14 INTEGER ::= 128 -- Maximum number of TX parameter + -- configurations in pre-configuration for V2X + -- sidelink communication congestion control +maxSL-V2X-TxConfig2-1-r14 INTEGER ::= 127 +maxSTAG-r11 INTEGER ::= 3 -- Maximum number of STAGs +maxServCell-r10 INTEGER ::= 5 -- Maximum number of Serving cells +maxServCell-r13 INTEGER ::= 32 -- Highest value of extended number range of Serving cells +maxServiceCount INTEGER ::= 16 -- Maximum number of MBMS services that can be included + -- in an MBMS counting request and response +maxServiceCount-1 INTEGER ::= 15 +maxSessionPerPMCH INTEGER ::= 29 +maxSessionPerPMCH-1 INTEGER ::= 28 +maxSIB INTEGER ::= 32 -- Maximum number of SIBs +maxSIB-1 INTEGER ::= 31 +maxSI-Message INTEGER ::= 32 -- Maximum number of SI messages +maxSimultaneousBands-r10 INTEGER ::= 64 -- Maximum number of simultaneously aggregated bands +maxSubframePatternIDC-r11 INTEGER ::= 8 -- Maximum number of subframe reservation patterns + -- that the UE can simultaneously recommend to the + -- E-UTRAN for use. +maxTrafficPattern-r14 INTEGER ::= 8 -- Maximum number of periodical traffic patterns + -- that the UE can simultaneously report to the + -- E-UTRAN. +maxUTRA-FDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA FDD carrier frequencies +maxUTRA-TDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA TDD carrier frequencies +maxWLAN-Id-r12 INTEGER ::= 16 -- Maximum number of WLAN identifiers +maxWLAN-Bands-r13 INTEGER ::= 8 -- Maximum number of WLAN bands +maxWLAN-Id-r13 INTEGER ::= 32 -- Maximum number of WLAN identifiers +maxWLAN-Channels-r13 INTEGER ::= 16 -- maximum number of WLAN channels used in + -- WLAN-CarrierInfo +maxWLAN-CarrierInfo-r13 INTEGER ::= 8 -- Maximum number of WLAN Carrier Information +maxWLAN-Id-Report-r14 INTEGER ::= 32 -- Maximum number of WLAN IDs to report + + +END + + +PC5-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + TDD-ConfigSL-r12 +FROM EUTRA-RRC-Definitions; + + +SBCCH-SL-BCH-Message ::= SEQUENCE { + message SBCCH-SL-BCH-MessageType +} + +SBCCH-SL-BCH-MessageType ::= MasterInformationBlock-SL + + +SBCCH-SL-BCH-Message-V2X-r14 ::= SEQUENCE { + message SBCCH-SL-BCH-MessageType-V2X-r14 +} + +SBCCH-SL-BCH-MessageType-V2X-r14 ::= MasterInformationBlock-SL-V2X-r14 + + +MasterInformationBlock-SL ::= SEQUENCE { + sl-Bandwidth-r12 ENUMERATED { + n6, n15, n25, n50, n75, n100}, + tdd-ConfigSL-r12 TDD-ConfigSL-r12, + directFrameNumber-r12 BIT STRING (SIZE (10)), + directSubframeNumber-r12 INTEGER (0..9), + inCoverage-r12 BOOLEAN, + reserved-r12 BIT STRING (SIZE (19)) +} + + + +MasterInformationBlock-SL-V2X-r14 ::= SEQUENCE { + sl-Bandwidth-r14 ENUMERATED { + n6, n15, n25, n50, n75, n100}, + tdd-ConfigSL-r14 TDD-ConfigSL-r12, + directFrameNumber-r14 BIT STRING (SIZE (10)), + directSubframeNumber-r14 INTEGER (0..9), + inCoverage-r14 BOOLEAN, + reserved-r14 BIT STRING (SIZE (27)) +} + + + +END + + +NBIOT-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + RRCConnectionReestablishmentReject, + SecurityModeCommand, + SecurityModeComplete, + SecurityModeFailure, + AdditionalSpectrumEmission, + ARFCN-ValueEUTRA-r9, + CellIdentity, + DedicatedInfoNAS, + DRB-Identity, + InitialUE-Identity, + IntraFreqBlackCellList, + IntraFreqNeighCellList, + maxBands, + maxCellBlack, + maxCellInter, + maxFBI2, + maxFreq, + maxMultiBands, + maxPageRec, + maxPLMN-r11, + maxSAI-MBMS-r11, + maxSIB, + maxSIB-1, + MBMS-SAI-r11, + MBMS-SAI-List-r11, + MBMSSessionInfo-r13, + NextHopChainingCount, + PagingUE-Identity, + PLMN-Identity, + P-Max, + PowerRampingParameters, + PreambleTransMax, + PhysCellId, + Q-OffsetRange, + Q-QualMin-r9, + Q-RxLevMin, + ReestabUE-Identity, + RegisteredMME, + ReselectionThreshold, + ResumeIdentity-r13, + RRC-TransactionIdentifier, + RSRP-Range, + ShortMAC-I, + S-TMSI, + SystemInformationBlockType16-r11, + SystemInfoValueTagSI-r13, + T-Reordering, + TimeAlignmentTimer, + TMGI-r9, + TrackingAreaCode, + DataInactivityTimer-r14 + +FROM EUTRA-RRC-Definitions; + + +BCCH-BCH-Message-NB ::= SEQUENCE { + message BCCH-BCH-MessageType-NB +} + + +BCCH-BCH-MessageType-NB::= MasterInformationBlock-NB + + + +BCCH-DL-SCH-Message-NB ::= SEQUENCE { + message BCCH-DL-SCH-MessageType-NB +} + +BCCH-DL-SCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + systemInformation-r13 SystemInformation-NB, + systemInformationBlockType1-r13 SystemInformationBlockType1-NB + }, + messageClassExtension SEQUENCE {} +} + + +PCCH-Message-NB ::= SEQUENCE { + message PCCH-MessageType-NB +} + +PCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + paging-r13 Paging-NB + }, + messageClassExtension SEQUENCE {} +} + + +DL-CCCH-Message-NB ::= SEQUENCE { + message DL-CCCH-MessageType-NB +} + +DL-CCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishment-r13 RRCConnectionReestablishment-NB, + rrcConnectionReestablishmentReject-r13 RRCConnectionReestablishmentReject, + rrcConnectionReject-r13 RRCConnectionReject-NB, + rrcConnectionSetup-r13 RRCConnectionSetup-NB, + spare4 NULL, spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +DL-DCCH-Message-NB ::= SEQUENCE { + message DL-DCCH-MessageType-NB +} + +DL-DCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + dlInformationTransfer-r13 DLInformationTransfer-NB, + rrcConnectionReconfiguration-r13 RRCConnectionReconfiguration-NB, + rrcConnectionRelease-r13 RRCConnectionRelease-NB, + securityModeCommand-r13 SecurityModeCommand, + ueCapabilityEnquiry-r13 UECapabilityEnquiry-NB, + rrcConnectionResume-r13 RRCConnectionResume-NB, + spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + + +UL-CCCH-Message-NB ::= SEQUENCE { + message UL-CCCH-MessageType-NB +} + +UL-CCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishmentRequest-r13 RRCConnectionReestablishmentRequest-NB, + rrcConnectionRequest-r13 RRCConnectionRequest-NB, + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-NB, + spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +SC-MCCH-Message-NB ::= SEQUENCE { + message SC-MCCH-MessageType-NB +} + + +SC-MCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + scptmConfiguration-r14 SCPTMConfiguration-NB-r14 + }, + messageClassExtension SEQUENCE {} +} + + +UL-DCCH-Message-NB ::= SEQUENCE { + message UL-DCCH-MessageType-NB +} + +UL-DCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + rrcConnectionReconfigurationComplete-r13 RRCConnectionReconfigurationComplete-NB, + rrcConnectionReestablishmentComplete-r13 RRCConnectionReestablishmentComplete-NB, + rrcConnectionSetupComplete-r13 RRCConnectionSetupComplete-NB, + securityModeComplete-r13 SecurityModeComplete, + securityModeFailure-r13 SecurityModeFailure, + ueCapabilityInformation-r13 UECapabilityInformation-NB, + ulInformationTransfer-r13 ULInformationTransfer-NB, + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-NB, + spare8 NULL, spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +DLInformationTransfer-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + dlInformationTransfer-r13 DLInformationTransfer-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +DLInformationTransfer-NB-r13-IEs ::= SEQUENCE { + dedicatedInfoNAS-r13 DedicatedInfoNAS, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MasterInformationBlock-NB ::= SEQUENCE { + systemFrameNumber-MSB-r13 BIT STRING (SIZE (4)), + hyperSFN-LSB-r13 BIT STRING (SIZE (2)), + schedulingInfoSIB1-r13 INTEGER (0..15), + systemInfoValueTag-r13 INTEGER (0..31), + ab-Enabled-r13 BOOLEAN, + operationModeInfo-r13 CHOICE { + inband-SamePCI-r13 Inband-SamePCI-NB-r13, + inband-DifferentPCI-r13 Inband-DifferentPCI-NB-r13, + guardband-r13 Guardband-NB-r13, + standalone-r13 Standalone-NB-r13 + }, + spare BIT STRING (SIZE (11)) +} + +ChannelRasterOffset-NB-r13 ::= ENUMERATED {khz-7dot5, khz-2dot5, khz2dot5, khz7dot5} + +Guardband-NB-r13 ::= SEQUENCE { + rasterOffset-r13 ChannelRasterOffset-NB-r13, + spare BIT STRING (SIZE (3)) +} + +Inband-SamePCI-NB-r13 ::= SEQUENCE { + eutra-CRS-SequenceInfo-r13 INTEGER (0..31) +} + +Inband-DifferentPCI-NB-r13 ::= SEQUENCE { + eutra-NumCRS-Ports-r13 ENUMERATED {same, four}, + rasterOffset-r13 ChannelRasterOffset-NB-r13, + spare BIT STRING (SIZE (2)) +} + +Standalone-NB-r13 ::= SEQUENCE { + spare BIT STRING (SIZE (5)) +} + + +Paging-NB ::= SEQUENCE { + pagingRecordList-r13 PagingRecordList-NB-r13 OPTIONAL, -- Need ON + systemInfoModification-r13 ENUMERATED {true} OPTIONAL, -- Need ON + systemInfoModification-eDRX-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PagingRecordList-NB-r13 ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord-NB-r13 + +PagingRecord-NB-r13 ::= SEQUENCE { + ue-Identity-r13 PagingUE-Identity, + ... +} + + +RRCConnectionReconfiguration-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReconfiguration-r13 RRCConnectionReconfiguration-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfiguration-NB-r13-IEs ::= SEQUENCE { + dedicatedInfoNASList-r13 SEQUENCE (SIZE(1..maxDRB-NB-r13)) OF + DedicatedInfoNAS OPTIONAL, -- Need ON + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13 OPTIONAL, -- Need ON + fullConfig-r13 ENUMERATED {true} OPTIONAL, -- Cond Reestab + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReconfigurationComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReconfigurationComplete-r13 RRCConnectionReconfigurationComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfigurationComplete-NB-r13-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + + +RRCConnectionReestablishment-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReestablishment-r13 RRCConnectionReestablishment-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishment-NB-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13, + nextHopChainingCount-r13 NextHopChainingCount, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReestablishment-NB-v1430-IEs OPTIONAL +} + +RRCConnectionReestablishment-NB-v1430-IEs ::= SEQUENCE { + dl-NAS-MAC BIT STRING (SIZE (16)), -- Cond Reestablish-CP + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReestablishmentComplete-r13 RRCConnectionReestablishmentComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentComplete-NB-r13-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentRequest-NB ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentRequest-r13 + RRCConnectionReestablishmentRequest-NB-r13-IEs, + later CHOICE { + rrcConnectionReestablishmentRequest-r14 + RRCConnectionReestablishmentRequest-NB-r14-IEs, + criticalExtensionsFuture SEQUENCE {} + } + } +} + +RRCConnectionReestablishmentRequest-NB-r13-IEs ::= SEQUENCE { + ue-Identity-r13 ReestabUE-Identity, + reestablishmentCause-r13 ReestablishmentCause-NB-r13, + spare BIT STRING (SIZE (25)) +} + +RRCConnectionReestablishmentRequest-NB-r14-IEs ::= SEQUENCE { + ue-Identity-r14 ReestabUE-Identity-CP-NB-r14, + reestablishmentCause-r14 ReestablishmentCause-NB-r13, + spare BIT STRING (SIZE (4)) +} + +ReestablishmentCause-NB-r13 ::= ENUMERATED { + reconfigurationFailure, otherFailure, + spare2, spare1} + +ReestabUE-Identity-CP-NB-r14 ::= SEQUENCE { + s-TMSI-r14 S-TMSI, + ul-NAS-MAC-r14 BIT STRING (SIZE (16)), + ul-NAS-Count-r14 BIT STRING (SIZE (5)) +} + + +RRCConnectionReject-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionReject-r13 RRCConnectionReject-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReject-NB-r13-IEs ::= SEQUENCE { + extendedWaitTime-r13 INTEGER (1..1800), + rrc-SuspendIndication-r13 ENUMERATED {true} OPTIONAL, -- Need ON + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionRelease-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionRelease-r13 RRCConnectionRelease-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRelease-NB-r13-IEs ::= SEQUENCE { + releaseCause-r13 ReleaseCause-NB-r13, + resumeIdentity-r13 ResumeIdentity-r13 OPTIONAL, -- Need OR + extendedWaitTime-r13 INTEGER (1..1800) OPTIONAL, -- Need ON + redirectedCarrierInfo-r13 RedirectedCarrierInfo-NB-r13 OPTIONAL, -- Need ON + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionRelease-NB-v1430-IEs OPTIONAL +} + +RRCConnectionRelease-NB-v1430-IEs ::= SEQUENCE { + redirectedCarrierInfo-v1430 RedirectedCarrierInfo-NB-v1430 OPTIONAL, -- Cond Redirection + extendedWaitTime-CPdata-r14 INTEGER (1..1800) OPTIONAL, -- Cond NoExtendedWaitTime + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +ReleaseCause-NB-r13 ::= ENUMERATED {loadBalancingTAUrequired, other, + rrc-Suspend, spare1} +RedirectedCarrierInfo-NB-r13::= CarrierFreq-NB-r13 + +RedirectedCarrierInfo-NB-v1430 ::= SEQUENCE { + redirectedCarrierOffsetDedicated-r14 ENUMERATED{ + dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24, dB26}, + t322-r14 ENUMERATED{ + min5, min10, min20, min30, min60, min120, min180, + spare1} +} + + +RRCConnectionRequest-NB ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionRequest-r13 RRCConnectionRequest-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRequest-NB-r13-IEs ::= SEQUENCE { + ue-Identity-r13 InitialUE-Identity, + establishmentCause-r13 EstablishmentCause-NB-r13, + multiToneSupport-r13 ENUMERATED {true} OPTIONAL, + multiCarrierSupport-r13 ENUMERATED {true} OPTIONAL, + spare BIT STRING (SIZE (22)) +} + + +RRCConnectionResume-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionResume-r13 RRCConnectionResume-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResume-NB-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13 OPTIONAL, -- Need ON + nextHopChainingCount-r13 NextHopChainingCount, + drb-ContinueROHC-r13 ENUMERATED {true} OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeComplete-NB-r13-IEs ::= SEQUENCE { + selectedPLMN-Identity-r13 INTEGER (1..maxPLMN-r11) OPTIONAL, + dedicatedInfoNAS-r13 DedicatedInfoNAS OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeRequest-NB ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeRequest-NB-r13-IEs ::= SEQUENCE { + resumeID-r13 ResumeIdentity-r13, + shortResumeMAC-I-r13 ShortMAC-I, + resumeCause-r13 EstablishmentCause-NB-r13, + spare BIT STRING (SIZE (9)) +} + + +RRCConnectionSetup-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionSetup-r13 RRCConnectionSetup-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetup-NB-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionSetupComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE{ + rrcConnectionSetupComplete-r13 RRCConnectionSetupComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetupComplete-NB-r13-IEs ::= SEQUENCE { + selectedPLMN-Identity-r13 INTEGER (1..maxPLMN-r11), + s-TMSI-r13 S-TMSI OPTIONAL, + registeredMME-r13 RegisteredMME OPTIONAL, + dedicatedInfoNAS-r13 DedicatedInfoNAS, + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL, + up-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-NB-v1430-IEs OPTIONAL +} + +RRCConnectionSetupComplete-NB-v1430-IEs ::= SEQUENCE { + gummei-Type-r14 ENUMERATED { mapped} OPTIONAL, + dcn-ID-r14 INTEGER (0..65535) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCPTMConfiguration-NB-r14 ::= SEQUENCE { + sc-mtch-InfoList-r14 SC-MTCH-InfoList-NB-r14, + scptm-NeighbourCellList-r14 SCPTM-NeighbourCellList-NB-r14 OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + systemInformation-r13 SystemInformation-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} +SystemInformation-NB-r13-IEs ::= SEQUENCE { + sib-TypeAndInfo-r13 SEQUENCE (SIZE (1..maxSIB)) OF CHOICE { + sib2-r13 SystemInformationBlockType2-NB-r13, + sib3-r13 SystemInformationBlockType3-NB-r13, + sib4-r13 SystemInformationBlockType4-NB-r13, + sib5-r13 SystemInformationBlockType5-NB-r13, + sib14-r13 SystemInformationBlockType14-NB-r13, + sib16-r13 SystemInformationBlockType16-NB-r13, + ..., + sib15-v1430 SystemInformationBlockType15-NB-r14, + sib20-v1430 SystemInformationBlockType20-NB-r14, + sib22-v1430 SystemInformationBlockType22-NB-r14 + }, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType1-NB ::= SEQUENCE { + hyperSFN-MSB-r13 BIT STRING (SIZE (8)), + cellAccessRelatedInfo-r13 SEQUENCE { + plmn-IdentityList-r13 PLMN-IdentityList-NB-r13, + trackingAreaCode-r13 TrackingAreaCode, + cellIdentity-r13 CellIdentity, + cellBarred-r13 ENUMERATED {barred, notBarred}, + intraFreqReselection-r13 ENUMERATED {allowed, notAllowed} + }, + cellSelectionInfo-r13 SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + q-QualMin-r13 Q-QualMin-r9 + }, + p-Max-r13 P-Max OPTIONAL, -- Need OP + freqBandIndicator-r13 FreqBandIndicator-NB-r13, + freqBandInfo-r13 NS-PmaxList-NB-r13 OPTIONAL, -- Need OR + multiBandInfoList-r13 MultiBandInfoList-NB-r13 OPTIONAL, -- Need OR + downlinkBitmap-r13 DL-Bitmap-NB-r13 OPTIONAL, -- Need OP, + eutraControlRegionSize-r13 ENUMERATED {n1, n2, n3} OPTIONAL, -- Cond inband + nrs-CRS-PowerOffset-r13 ENUMERATED {dB-6, dB-4dot77, dB-3, + dB-1dot77, dB0, dB1, + dB1dot23, dB2, dB3, + dB4, dB4dot23, dB5, + dB6, dB7, dB8, + dB9} OPTIONAL, -- Cond inband-SamePCI + schedulingInfoList-r13 SchedulingInfoList-NB-r13, + si-WindowLength-r13 ENUMERATED {ms160, ms320, ms480, ms640, + ms960, ms1280, ms1600, spare1}, + si-RadioFrameOffset-r13 INTEGER (1..15) OPTIONAL, -- Need OP + systemInfoValueTagList-r13 SystemInfoValueTagList-NB-r13 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SystemInformationBlockType1-NB-v1350 OPTIONAL +} + +SystemInformationBlockType1-NB-v1350 ::= SEQUENCE { + cellSelectionInfo-v1350 CellSelectionInfo-NB-v1350 OPTIONAL, -- Cond Qrxlevmin + nonCriticalExtension SystemInformationBlockType1-NB-v1430 OPTIONAL +} + +SystemInformationBlockType1-NB-v1430 ::= SEQUENCE { + cellSelectionInfo-v1430 CellSelectionInfo-NB-v1430 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PLMN-IdentityList-NB-r13 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo-NB-r13 + +PLMN-IdentityInfo-NB-r13 ::= SEQUENCE { + plmn-Identity-r13 PLMN-Identity, + cellReservedForOperatorUse-r13 ENUMERATED {reserved, notReserved}, + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL -- Need OP +} + +SchedulingInfoList-NB-r13 ::= SEQUENCE (SIZE (1..maxSI-Message-NB-r13)) OF SchedulingInfo-NB-r13 + +SchedulingInfo-NB-r13::= SEQUENCE { + si-Periodicity-r13 ENUMERATED {rf64, rf128, rf256, rf512, + rf1024, rf2048, rf4096, spare}, + si-RepetitionPattern-r13 ENUMERATED {every2ndRF, every4thRF, every8thRF, every16thRF}, + sib-MappingInfo-r13 SIB-MappingInfo-NB-r13, + si-TB-r13 ENUMERATED {b56, b120, b208, b256, b328, b440, b552, b680} +} + +SystemInfoValueTagList-NB-r13 ::= SEQUENCE (SIZE (1.. maxSI-Message-NB-r13)) OF + SystemInfoValueTagSI-r13 + +SIB-MappingInfo-NB-r13 ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type-NB-r13 + +SIB-Type-NB-r13 ::= ENUMERATED { + sibType3-NB-r13, sibType4-NB-r13, sibType5-NB-r13, + sibType14-NB-r13, sibType16-NB-r13, sibType15-NB-r14, + sibType20-NB-r14, sibType22-NB-r14} + +CellSelectionInfo-NB-v1350 ::= SEQUENCE { + delta-RxLevMin-v1350 INTEGER (-8..-1) +} + +CellSelectionInfo-NB-v1430 ::= SEQUENCE { + powerClass14dBm-Offset-r14 ENUMERATED {dB-6, dB-3, dB3, dB6, dB9, dB12} OPTIONAL, -- Need OP + ce-authorisationOffset-r14 ENUMERATED {dB5, dB10, dB15, dB20, dB25, dB30, dB35} OPTIONAL -- Need OP +} + + +UECapabilityEnquiry-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueCapabilityEnquiry-r13 UECapabilityEnquiry-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityEnquiry-NB-r13-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UECapabilityInformation-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE{ + ueCapabilityInformation-r13 UECapabilityInformation-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityInformation-NB-r13-IEs ::= SEQUENCE { + ue-Capability-Container-r13 UE-Capability-NB-r13, + ue-RadioPagingInfo-r13 UE-RadioPagingInfo-NB-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +ULInformationTransfer-NB ::= SEQUENCE { + criticalExtensions CHOICE { + ulInformationTransfer-r13 ULInformationTransfer-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULInformationTransfer-NB-r13-IEs ::= SEQUENCE { + dedicatedInfoNAS-r13 DedicatedInfoNAS, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType2-NB-r13 ::= SEQUENCE { + radioResourceConfigCommon-r13 RadioResourceConfigCommonSIB-NB-r13, + ue-TimersAndConstants-r13 UE-TimersAndConstants-NB-r13, + freqInfo-r13 SEQUENCE { + ul-CarrierFreq-r13 CarrierFreq-NB-r13 OPTIONAL, -- Need OP + additionalSpectrumEmission-r13 AdditionalSpectrumEmission + }, + timeAlignmentTimerCommon-r13 TimeAlignmentTimer, + multiBandInfoList-r13 SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ cp-Reestablishment-r14 ENUMERATED {true} OPTIONAL -- Need OP + ]] +} + + +SystemInformationBlockType3-NB-r13 ::= SEQUENCE { + cellReselectionInfoCommon-r13 SEQUENCE { + q-Hyst-r13 ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24 + } + }, + cellReselectionServingFreqInfo-r13 SEQUENCE { + s-NonIntraSearch-r13 ReselectionThreshold + }, + intraFreqCellReselectionInfo-r13 SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + q-QualMin-r13 Q-QualMin-r9 OPTIONAL, -- Need OP + p-Max-r13 P-Max OPTIONAL, -- Need OP + s-IntraSearchP-r13 ReselectionThreshold, + t-Reselection-r13 T-Reselection-NB-r13 + }, + freqBandInfo-r13 NS-PmaxList-NB-r13 OPTIONAL, -- Need OR + multiBandInfoList-r13 SEQUENCE (SIZE (1..maxMultiBands)) OF + NS-PmaxList-NB-r13 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ intraFreqCellReselectionInfo-v1350 IntraFreqCellReselectionInfo-NB-v1350 OPTIONAL -- Cond Qrxlevmin + ]], + [[ intraFreqCellReselectionInfo-v1360 IntraFreqCellReselectionInfo-NB-v1360 OPTIONAL -- Need OR + ]], + [[ intraFreqCellReselectionInfo-v1430 IntraFreqCellReselectionInfo-NB-v1430 OPTIONAL -- Need OR + ]] +} + +IntraFreqCellReselectionInfo-NB-v1350 ::= SEQUENCE { + delta-RxLevMin-v1350 INTEGER (-8..-1) +} + +IntraFreqCellReselectionInfo-NB-v1360 ::= SEQUENCE { + s-IntraSearchP-v1360 ReselectionThreshold-NB-v1360 +} + +IntraFreqCellReselectionInfo-NB-v1430 ::= SEQUENCE { + powerClass14dBm-Offset-r14 ENUMERATED {dB-6, dB-3, dB3, dB6, dB9, dB12} OPTIONAL, -- Need OP + ce-AuthorisationOffset-r14 ENUMERATED {dB5, dB10, dB15, dB20, dB25, dB30, dB35} OPTIONAL -- Need OP +} + + +SystemInformationBlockType4-NB-r13 ::= SEQUENCE { + intraFreqNeighCellList-r13 IntraFreqNeighCellList OPTIONAL, -- Need OR + intraFreqBlackCellList-r13 IntraFreqBlackCellList OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + + +SystemInformationBlockType5-NB-r13 ::= SEQUENCE { + interFreqCarrierFreqList-r13 InterFreqCarrierFreqList-NB-r13, + t-Reselection-r13 T-Reselection-NB-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ scptm-FreqOffset-r14 INTEGER (1..8) OPTIONAL -- Need OP + ]] +} + + +InterFreqCarrierFreqList-NB-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-NB-r13 + + +InterFreqCarrierFreqInfo-NB-r13 ::= SEQUENCE { + dl-CarrierFreq-r13 CarrierFreq-NB-r13, + q-RxLevMin-r13 Q-RxLevMin, + q-QualMin-r13 Q-QualMin-r9 OPTIONAL, -- Need OP + p-Max-r13 P-Max OPTIONAL, -- Need OP + q-OffsetFreq-r13 Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList-r13 InterFreqNeighCellList-NB-r13 OPTIONAL, -- Need OR + interFreqBlackCellList-r13 InterFreqBlackCellList-NB-r13 OPTIONAL, -- Need OR + multiBandInfoList-r13 MultiBandInfoList-NB-r13 OPTIONAL, -- Need OR + ..., + [[ delta-RxLevMin-v1350 INTEGER (-8..-1) OPTIONAL -- Cond Qrxlevmin + ]], + [[ powerClass14dBm-Offset-r14 ENUMERATED {dB-6, dB-3, dB3, dB6, dB9, dB12} +OPTIONAL, -- Need OP + ce-AuthorisationOffset-r14 ENUMERATED {dB5, dB10, dB15, dB20, dB25, dB30, dB35} OPTIONAL -- Need OP + ]] +} + +InterFreqNeighCellList-NB-r13 ::= SEQUENCE (SIZE (1..maxCellInter)) OF PhysCellId + + +InterFreqBlackCellList-NB-r13 ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellId + + + +SystemInformationBlockType14-NB-r13 ::= SEQUENCE { + ab-Param-r13 CHOICE { + ab-Common-r13 AB-Config-NB-r13, + ab-PerPLMN-List-r13 SEQUENCE (SIZE (1..maxPLMN-r11)) OF AB-ConfigPLMN-NB-r13 + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +AB-ConfigPLMN-NB-r13 ::= SEQUENCE { + ab-Config-r13 AB-Config-NB-r13 OPTIONAL -- Need OR +} + +AB-Config-NB-r13 ::= SEQUENCE { + ab-Category-r13 ENUMERATED {a, b, c}, + ab-BarringBitmap-r13 BIT STRING (SIZE(10)), + ab-BarringForExceptionData-r13 ENUMERATED {true} OPTIONAL, -- Need OP + ab-BarringForSpecialAC-r13 BIT STRING (SIZE(5)) +} + + +SystemInformationBlockType15-NB-r14 ::= SEQUENCE { + mbms-SAI-IntraFreq-r14 MBMS-SAI-List-r11 OPTIONAL, -- Need OR + mbms-SAI-InterFreqList-r14 MBMS-SAI-InterFreqList-NB-r14 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +MBMS-SAI-InterFreqList-NB-r14 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-NB-r14 + +MBMS-SAI-InterFreq-NB-r14 ::= SEQUENCE { + dl-CarrierFreq-r14 CarrierFreq-NB-r13, + mbms-SAI-List-r14 MBMS-SAI-List-r11, + multiBandInfoList-r14 AdditionalBandInfoList-NB-r14 OPTIONAL -- Need OR +} + + +SystemInformationBlockType16-NB-r13 ::= SystemInformationBlockType16-r11 + + +SystemInformationBlockType20-NB-r14 ::= SEQUENCE { + npdcch-SC-MCCH-Config-r14 NPDCCH-SC-MCCH-Config-NB-r14, + sc-mcch-CarrierConfig-r14 CHOICE { + dl-CarrierConfig-r14 DL-CarrierConfigCommon-NB-r14, + dl-CarrierIndex-r14 INTEGER (0.. maxNonAnchorCarriers-NB-r14) + }, + sc-mcch-RepetitionPeriod-r14 ENUMERATED {rf32, rf128, rf512, rf1024, + rf2048, rf4096, rf8192, rf16384}, + sc-mcch-Offset-r14 INTEGER (0..10), + sc-mcch-ModificationPeriod-r14 ENUMERATED { rf32, rf128, rf256, rf512, rf1024, + rf2048, rf4096, rf8192, rf16384, rf32768, + rf65536, rf131072, rf262144, rf524288, + rf1048576, spare1}, + sc-mcch-SchedulingInfo-r14 SC-MCCH-SchedulingInfo-NB-r14 OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +NPDCCH-SC-MCCH-Config-NB-r14 ::= SEQUENCE { + npdcch-NumRepetitions-SC-MCCH-r14 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256, + r512, r1024, r2048}, + npdcch-StartSF-SC-MCCH-r14 ENUMERATED {v1dot5, v2, v4, v8, + v16, v32, v48, v64}, + npdcch-Offset-SC-MCCH-r14 ENUMERATED {zero, oneEighth, oneQuarter, + threeEighth, oneHalf, fiveEighth, + threeQuarter, sevenEighth} +} + +SC-MCCH-SchedulingInfo-NB-r14::= SEQUENCE { + onDurationTimerSCPTM-r14 ENUMERATED { + pp1, pp2, pp3, pp4, + pp8, pp16, pp32, spare}, + drx-InactivityTimerSCPTM-r14 ENUMERATED { + pp0, pp1, pp2, pp3, + pp4, pp8, pp16, pp32}, + schedulingPeriodStartOffsetSCPTM-r14 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2047), + sf4096 INTEGER(0..4095), + sf8192 INTEGER(0..8191) + }, + ... +} + + +SystemInformationBlockType22-NB-r14 ::= SEQUENCE { + dl-ConfigList-r14 DL-ConfigCommonList-NB-r14 OPTIONAL, -- Need OR + ul-ConfigList-r14 UL-ConfigCommonList-NB-r14 OPTIONAL, -- Need OR + pagingWeightAnchor-r14 PagingWeight-NB-r14 OPTIONAL, -- Cond pcch-config + nprach-ProbabilityAnchorList-r14 NPRACH-ProbabilityAnchorList-NB-r14 OPTIONAL, -- Cond nprach-config + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +DL-ConfigCommonList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNonAnchorCarriers-NB-r14)) OF + DL-ConfigCommon-NB-r14 + +UL-ConfigCommonList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNonAnchorCarriers-NB-r14)) OF + UL-ConfigCommon-NB-r14 + + +DL-ConfigCommon-NB-r14 ::= SEQUENCE { + dl-CarrierConfig-r14 DL-CarrierConfigCommon-NB-r14, + pcch-Config-r14 PCCH-Config-NB-r14 OPTIONAL, -- Need OR + ... +} + +PCCH-Config-NB-r14 ::= SEQUENCE { + npdcch-NumRepetitionPaging-r14 ENUMERATED { + r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1} OPTIONAL, -- Need OP + pagingWeight-r14 PagingWeight-NB-r14 DEFAULT w1, + ... +} + +PagingWeight-NB-r14 ::= ENUMERATED {w1, w2, w3, w4, w5, w6, w7, w8, + w9, w10, w11, w12, w13, w14, w15, w16} + +UL-ConfigCommon-NB-r14 ::= SEQUENCE { + ul-CarrierFreq-r14 CarrierFreq-NB-r13, + nprach-ParametersList-r14 NPRACH-ParametersList-NB-r14 OPTIONAL, -- Need OR + ... +} + +NPRACH-ParametersList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF + NPRACH-Parameters-NB-r14 + + +NPRACH-Parameters-NB-r14 ::= SEQUENCE { + nprach-Parameters-r14 SEQUENCE { + nprach-Periodicity-r14 ENUMERATED {ms40, ms80, ms160, ms240, + ms320, ms640, ms1280, ms2560} + OPTIONAL, -- NEED OP + nprach-StartTime-r14 ENUMERATED {ms8, ms16, ms32, ms64, + ms128, ms256, ms512, ms1024} + OPTIONAL, -- NEED OP + nprach-SubcarrierOffset-r14 ENUMERATED {n0, n12, n24, n36, n2, n18, n34, spare1} + OPTIONAL, -- NEED OP + nprach-NumSubcarriers-r14 ENUMERATED {n12, n24, n36, n48} + OPTIONAL, -- NEED OP + nprach-SubcarrierMSG3-RangeStart-r14 ENUMERATED {zero, oneThird, twoThird, one} + OPTIONAL, -- NEED OP + npdcch-NumRepetitions-RA-r14 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1} + OPTIONAL, -- NEED OP + npdcch-StartSF-CSS-RA-r14 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64} + OPTIONAL, -- NEED OP + npdcch-Offset-RA-r14 ENUMERATED {zero, oneEighth, oneFourth, threeEighth} + OPTIONAL, -- NEED OP + nprach-NumCBRA-StartSubcarriers-r14 ENUMERATED {n8, n10, n11, n12, n20, n22, n23, n24, + n32, n34, n35, n36, n40, n44, n46, n48} + OPTIONAL, -- NEED OP + npdcch-CarrierIndex-r14 INTEGER (1..maxNonAnchorCarriers-NB-r14) + OPTIONAL, -- Need OP + ... + } OPTIONAL -- Need OR +} + +NPRACH-ProbabilityAnchorList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF + NPRACH-ProbabilityAnchor-NB-r14 + +NPRACH-ProbabilityAnchor-NB-r14 ::= SEQUENCE { + nprach-ProbabilityAnchor-r14 ENUMERATED { + zero, oneSixteenth, oneFifteenth, oneFourteenth, + oneThirteenth, oneTwelfth, oneEleventh, oneTenth, + oneNinth, oneEighth, oneSeventh, oneSixth, + oneFifth, oneFourth, oneThird, oneHalf} + OPTIONAL -- Need OP +} + + +CarrierConfigDedicated-NB-r13 ::= SEQUENCE { + dl-CarrierConfig-r13 DL-CarrierConfigDedicated-NB-r13, + ul-CarrierConfig-r13 UL-CarrierConfigDedicated-NB-r13 +} + +DL-CarrierConfigDedicated-NB-r13 ::= SEQUENCE { + dl-CarrierFreq-r13 CarrierFreq-NB-r13, + downlinkBitmapNonAnchor-r13 CHOICE { + useNoBitmap-r13 NULL, + useAnchorBitmap-r13 NULL, + explicitBitmapConfiguration-r13 DL-Bitmap-NB-r13, + spare NULL + } OPTIONAL, -- Need ON + dl-GapNonAnchor-r13 CHOICE { + useNoGap-r13 NULL, + useAnchorGapConfig-r13 NULL, + explicitGapConfiguration-r13 DL-GapConfig-NB-r13, + spare NULL + } OPTIONAL, -- Need ON + inbandCarrierInfo-r13 SEQUENCE { + samePCI-Indicator-r13 CHOICE { + samePCI-r13 SEQUENCE { + indexToMidPRB-r13 INTEGER (-55..54) + }, + differentPCI-r13 SEQUENCE { + eutra-NumCRS-Ports-r13 ENUMERATED {same, four} + } + } OPTIONAL, -- Cond anchor-guardband + eutraControlRegionSize-r13 ENUMERATED {n1, n2, n3} + } OPTIONAL, -- Cond non-anchor-inband + ..., + [[ nrs-PowerOffsetNonAnchor-v1330 ENUMERATED {dB-12, dB-10, dB-8, dB-6, + dB-4, dB-2, dB0, dB3} + OPTIONAL -- Need ON + ]] +} + +UL-CarrierConfigDedicated-NB-r13 ::= SEQUENCE { + ul-CarrierFreq-r13 CarrierFreq-NB-r13 OPTIONAL, -- Need OP + ... +} + + +CarrierFreq-NB-r13 ::= SEQUENCE { + carrierFreq-r13 ARFCN-ValueEUTRA-r9, + carrierFreqOffset-r13 ENUMERATED { + v-10, v-9, v-8, v-7, v-6, v-5, v-4, v-3, v-2, v-1, v-0dot5, + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9 + } OPTIONAL -- Need ON +} + + +DL-Bitmap-NB-r13 ::= CHOICE { + subframePattern10-r13 BIT STRING (SIZE (10)), + subframePattern40-r13 BIT STRING (SIZE (40)) +} + + +DL-CarrierConfigCommon-NB-r14 ::= SEQUENCE { + dl-CarrierFreq-r14 CarrierFreq-NB-r13, + downlinkBitmapNonAnchor-r14 CHOICE { + useNoBitmap-r14 NULL, + useAnchorBitmap-r14 NULL, + explicitBitmapConfiguration-r14 DL-Bitmap-NB-r13 + }, + dl-GapNonAnchor-r14 CHOICE { + useNoGap-r14 NULL, + useAnchorGapConfig-r14 NULL, + explicitGapConfiguration-r14 DL-GapConfig-NB-r13 + }, + inbandCarrierInfo-r14 SEQUENCE { + samePCI-Indicator-r14 CHOICE { + samePCI-r14 SEQUENCE { + indexToMidPRB-r14 INTEGER (-55..54) + }, + differentPCI-r14 SEQUENCE { + eutra-NumCRS-Ports-r14 ENUMERATED {same, four} + } + } OPTIONAL, -- Cond anchor-guardband + eutraControlRegionSize-r14 ENUMERATED {n1, n2, n3} + } OPTIONAL, -- Cond non-anchor-inband + nrs-PowerOffsetNonAnchor-r14 ENUMERATED {dB-12, dB-10, dB-8, dB-6, + dB-4, dB-2, dB0, dB3} DEFAULT dB0, + ... +} + + + +DL-GapConfig-NB-r13 ::= SEQUENCE { + dl-GapThreshold-r13 ENUMERATED {n32, n64, n128, n256}, + dl-GapPeriodicity-r13 ENUMERATED {sf64, sf128, sf256, sf512}, + dl-GapDurationCoeff-r13 ENUMERATED {oneEighth, oneFourth, threeEighth, oneHalf} +} + + +LogicalChannelConfig-NB-r13 ::= SEQUENCE { + priority-r13 INTEGER (1..16) OPTIONAL, -- Cond UL + logicalChannelSR-Prohibit-r13 BOOLEAN OPTIONAL, -- Need ON + ... +} + + +MAC-MainConfig-NB-r13 ::= SEQUENCE { + ul-SCH-Config-r13 SEQUENCE { + periodicBSR-Timer-r13 PeriodicBSR-Timer-NB-r13 OPTIONAL, -- Need ON + retxBSR-Timer-r13 RetxBSR-Timer-NB-r13 + } OPTIONAL, -- Need ON + drx-Config-r13 DRX-Config-NB-r13 OPTIONAL, -- Need ON + timeAlignmentTimerDedicated-r13 TimeAlignmentTimer, + logicalChannelSR-Config-r13 CHOICE { + release NULL, + setup SEQUENCE { + logicalChannelSR-ProhibitTimer-r13 ENUMERATED { + pp2, pp8, pp32, pp128, pp512, + pp1024, pp2048, spare} + } + } OPTIONAL, -- Need ON + ..., + [[ rai-Activation-r14 ENUMERATED {true} OPTIONAL, -- Need OR + dataInactivityTimerConfig-r14 CHOICE { + release NULL, + setup SEQUENCE { + dataInactivityTimer-r14 DataInactivityTimer-r14 + } + } OPTIONAL -- Need ON + ]], + [[ drx-Cycle-v1430 ENUMERATED { + sf1280, sf2560, sf5120, sf10240} OPTIONAL -- Need ON + ]], + [[ ra-CFRA-Config-r14 ENUMERATED {true} OPTIONAL -- Need ON + ]] +} + +PeriodicBSR-Timer-NB-r13 ::= ENUMERATED { + pp2, pp4, pp8, pp16, pp64, pp128, infinity, spare} + +RetxBSR-Timer-NB-r13 ::= ENUMERATED { + pp4, pp16, pp64, pp128, pp256, pp512, infinity, spare} + +DRX-Config-NB-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + onDurationTimer-r13 ENUMERATED { + pp1, pp2, pp3, pp4, pp8, pp16, pp32, spare}, + drx-InactivityTimer-r13 ENUMERATED { + pp0, pp1, pp2, pp3, pp4, pp8, pp16, pp32}, + drx-RetransmissionTimer-r13 ENUMERATED { + pp0, pp1, pp2, pp4, pp6, pp8, pp16, pp24, + pp33, spare7, spare6, spare5, + spare4, spare3, spare2, spare1}, + drx-Cycle-r13 ENUMERATED { + sf256, sf512, sf1024, sf1536, sf2048, sf3072, + sf4096, sf4608, sf6144, sf7680, sf8192, sf9216, + spare4, spare3, spare2, spare1}, + drx-StartOffset-r13 INTEGER (0..255), + drx-ULRetransmissionTimer-r13 ENUMERATED { + pp0, pp1, pp2, pp4, pp6, pp8, pp16, pp24, + pp33, pp40, pp64, pp80, pp96, + pp112, pp128, pp160, pp320} + } +} + + + +NPDCCH-ConfigDedicated-NB-r13 ::= SEQUENCE { + npdcch-NumRepetitions-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1}, + npdcch-StartSF-USS-r13 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64}, + npdcch-Offset-USS-r13 ENUMERATED {zero, oneEighth, oneFourth, threeEighth} +} + + + +NPDSCH-ConfigCommon-NB-r13 ::= SEQUENCE { + nrs-Power-r13 INTEGER (-60..50) +} + + +NPRACH-ConfigSIB-NB-r13 ::= SEQUENCE { + nprach-CP-Length-r13 ENUMERATED {us66dot7, us266dot7}, + rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsNPRACH-InfoList-NB-r13 OPTIONAL, -- need OR + nprach-ParametersList-r13 NPRACH-ParametersList-NB-r13 +} + +NPRACH-ConfigSIB-NB-v1330 ::= SEQUENCE { + nprach-ParametersList-v1330 NPRACH-ParametersList-NB-v1330 +} + +NPRACH-ParametersList-NB-r13 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF NPRACH-Parameters-NB-r13 + +NPRACH-ParametersList-NB-v1330 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF NPRACH-Parameters-NB-v1330 + +NPRACH-Parameters-NB-r13::= SEQUENCE { + nprach-Periodicity-r13 ENUMERATED {ms40, ms80, ms160, ms240, + ms320, ms640, ms1280, ms2560}, + nprach-StartTime-r13 ENUMERATED {ms8, ms16, ms32, ms64, + ms128, ms256, ms512, ms1024}, + nprach-SubcarrierOffset-r13 ENUMERATED {n0, n12, n24, n36, n2, n18, n34, spare1}, + nprach-NumSubcarriers-r13 ENUMERATED {n12, n24, n36, n48}, + nprach-SubcarrierMSG3-RangeStart-r13 ENUMERATED {zero, oneThird, twoThird, one}, + maxNumPreambleAttemptCE-r13 ENUMERATED {n3, n4, n5, n6, n7, n8, n10, spare1}, + numRepetitionsPerPreambleAttempt-r13 ENUMERATED {n1, n2, n4, n8, n16, n32, n64, n128}, + npdcch-NumRepetitions-RA-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1}, + npdcch-StartSF-CSS-RA-r13 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64}, + npdcch-Offset-RA-r13 ENUMERATED {zero, oneEighth, oneFourth, threeEighth} +} + +NPRACH-Parameters-NB-v1330 ::= SEQUENCE { + nprach-NumCBRA-StartSubcarriers-r13 ENUMERATED {n8, n10, n11, n12, n20, n22, n23, n24, + n32, n34, n35, n36, n40, n44, n46, n48} +} + +RSRP-ThresholdsNPRACH-InfoList-NB-r13 ::= SEQUENCE (SIZE(1..2)) OF RSRP-Range + + +NPUSCH-ConfigCommon-NB-r13 ::= SEQUENCE { + ack-NACK-NumRepetitions-Msg4-r13 SEQUENCE (SIZE(1.. maxNPRACH-Resources-NB-r13)) OF + ACK-NACK-NumRepetitions-NB-r13, + srs-SubframeConfig-r13 ENUMERATED { + sc0, sc1, sc2, sc3, sc4, sc5, sc6, sc7, + sc8, sc9, sc10, sc11, sc12, sc13, sc14, sc15 + } OPTIONAL, -- Need OR + dmrs-Config-r13 SEQUENCE { + threeTone-BaseSequence-r13 INTEGER (0..12) OPTIONAL, -- Need OP + threeTone-CyclicShift-r13 INTEGER (0..2), + sixTone-BaseSequence-r13 INTEGER (0..14) OPTIONAL, -- Need OP + sixTone-CyclicShift-r13 INTEGER (0..3), + twelveTone-BaseSequence-r13 INTEGER (0..30) OPTIONAL -- Need OP + } OPTIONAL, -- Need OR + ul-ReferenceSignalsNPUSCH-r13 UL-ReferenceSignalsNPUSCH-NB-r13 +} + +UL-ReferenceSignalsNPUSCH-NB-r13 ::= SEQUENCE { + groupHoppingEnabled-r13 BOOLEAN, + groupAssignmentNPUSCH-r13 INTEGER (0..29) +} + +NPUSCH-ConfigDedicated-NB-r13 ::= SEQUENCE { + ack-NACK-NumRepetitions-r13 ACK-NACK-NumRepetitions-NB-r13 OPTIONAL, -- Need ON + npusch-AllSymbols-r13 BOOLEAN OPTIONAL, -- Cond SRS + groupHoppingDisabled-r13 ENUMERATED {true} OPTIONAL -- Need OR +} + +ACK-NACK-NumRepetitions-NB-r13 ::= ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128} + + + +PDCP-Config-NB-r13 ::= SEQUENCE { + discardTimer-r13 ENUMERATED { + ms5120, ms10240, ms20480, ms40960, + ms81920, infinity, spare2, spare1 + } OPTIONAL, -- Cond Setup + headerCompression-r13 CHOICE { + notUsed NULL, + rohc SEQUENCE { + maxCID-r13 INTEGER (1..16383) DEFAULT 15, + profiles-r13 SEQUENCE { + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + ... + } + }, + ... +} + + +PhysicalConfigDedicated-NB-r13 ::= SEQUENCE { + carrierConfigDedicated-r13 CarrierConfigDedicated-NB-r13 OPTIONAL, -- Need ON + npdcch-ConfigDedicated-r13 NPDCCH-ConfigDedicated-NB-r13 OPTIONAL, -- Need ON + npusch-ConfigDedicated-r13 NPUSCH-ConfigDedicated-NB-r13 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-r13 UplinkPowerControlDedicated-NB-r13 OPTIONAL, -- Need ON + ..., + [[ twoHARQ-ProcessesConfig-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ interferenceRandomisationConfig-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + + +RACH-ConfigCommon-NB-r13 ::= SEQUENCE { + preambleTransMax-CE-r13 PreambleTransMax, + powerRampingParameters-r13 PowerRampingParameters, + rach-InfoList-r13 RACH-InfoList-NB-r13, + connEstFailOffset-r13 INTEGER (0..15) OPTIONAL, -- Need OP + ... +} + +RACH-InfoList-NB-r13 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF RACH-Info-NB-r13 + +RACH-Info-NB-r13 ::= SEQUENCE { + ra-ResponseWindowSize-r13 ENUMERATED { + pp2, pp3, pp4, pp5, pp6, pp7, pp8, pp10}, + mac-ContentionResolutionTimer-r13 ENUMERATED { + pp1, pp2, pp3, pp4, pp8, pp16, pp32, pp64} +} + + +RadioResourceConfigCommonSIB-NB-r13 ::= SEQUENCE { + rach-ConfigCommon-r13 RACH-ConfigCommon-NB-r13, + bcch-Config-r13 BCCH-Config-NB-r13, + pcch-Config-r13 PCCH-Config-NB-r13, + nprach-Config-r13 NPRACH-ConfigSIB-NB-r13, + npdsch-ConfigCommon-r13 NPDSCH-ConfigCommon-NB-r13, + npusch-ConfigCommon-r13 NPUSCH-ConfigCommon-NB-r13, + dl-Gap-r13 DL-GapConfig-NB-r13 OPTIONAL, -- Need OP + uplinkPowerControlCommon-r13 UplinkPowerControlCommon-NB-r13, + ..., + [[ nprach-Config-v1330 NPRACH-ConfigSIB-NB-v1330 OPTIONAL -- Need OR + ]] +} + +BCCH-Config-NB-r13 ::= SEQUENCE { + modificationPeriodCoeff-r13 ENUMERATED {n16, n32, n64, n128} +} + + +PCCH-Config-NB-r13 ::= SEQUENCE { + defaultPagingCycle-r13 ENUMERATED {rf128, rf256, rf512, rf1024}, + nB-r13 ENUMERATED { + fourT, twoT, oneT, halfT, quarterT, one8thT, + one16thT, one32ndT, one64thT, + one128thT, one256thT, one512thT, one1024thT, + spare3, spare2, spare1}, + npdcch-NumRepetitionPaging-r13 ENUMERATED { + r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1} +} + + +RadioResourceConfigDedicated-NB-r13 ::= SEQUENCE { + srb-ToAddModList-r13 SRB-ToAddModList-NB-r13 OPTIONAL, -- Need ON + drb-ToAddModList-r13 DRB-ToAddModList-NB-r13 OPTIONAL, -- Need ON + drb-ToReleaseList-r13 DRB-ToReleaseList-NB-r13 OPTIONAL, -- Need ON + mac-MainConfig-r13 CHOICE { + explicitValue-r13 MAC-MainConfig-NB-r13, + defaultValue-r13 NULL + } OPTIONAL, -- Need ON + physicalConfigDedicated-r13 PhysicalConfigDedicated-NB-r13 OPTIONAL, -- Need ON + rlf-TimersAndConstants-r13 RLF-TimersAndConstants-NB-r13 OPTIONAL, -- Need ON + ... +} + +SRB-ToAddModList-NB-r13 ::= SEQUENCE (SIZE (1)) OF SRB-ToAddMod-NB-r13 + +SRB-ToAddMod-NB-r13 ::= SEQUENCE { + rlc-Config-r13 CHOICE { + explicitValue RLC-Config-NB-r13, + defaultValue NULL + } OPTIONAL, -- Cond Setup + logicalChannelConfig-r13 CHOICE { + explicitValue LogicalChannelConfig-NB-r13, + defaultValue NULL + } OPTIONAL, -- Cond Setup + ..., + [[ rlc-Config-v1430 RLC-Config-NB-v1430 OPTIONAL -- Need ON + ]] +} + +DRB-ToAddModList-NB-r13 ::= SEQUENCE (SIZE (1..maxDRB-NB-r13)) OF DRB-ToAddMod-NB-r13 + +DRB-ToAddMod-NB-r13 ::= SEQUENCE { + eps-BearerIdentity-r13 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity-r13 DRB-Identity, + pdcp-Config-r13 PDCP-Config-NB-r13 OPTIONAL, -- Cond Setup + rlc-Config-r13 RLC-Config-NB-r13 OPTIONAL, -- Cond Setup + logicalChannelIdentity-r13 INTEGER (3..10) OPTIONAL, -- Cond DRB-Setup + logicalChannelConfig-r13 LogicalChannelConfig-NB-r13 OPTIONAL, -- Cond Setup + ..., + [[ rlc-Config-v1430 RLC-Config-NB-v1430 OPTIONAL -- Need ON + ]] +} + +DRB-ToReleaseList-NB-r13 ::= SEQUENCE (SIZE (1..maxDRB-NB-r13)) OF DRB-Identity + + +RLC-Config-NB-r13 ::= CHOICE { + am SEQUENCE { + ul-AM-RLC-r13 UL-AM-RLC-NB-r13, + dl-AM-RLC-r13 DL-AM-RLC-NB-r13 + }, + ... +} + +RLC-Config-NB-v1430 ::= SEQUENCE { + t-Reordering-r14 T-Reordering OPTIONAL -- Cond twoHARQ +} + +UL-AM-RLC-NB-r13 ::= SEQUENCE { + t-PollRetransmit-r13 T-PollRetransmit-NB-r13, + maxRetxThreshold-r13 ENUMERATED {t1, t2, t3, t4, t6, t8, t16, t32} +} + +DL-AM-RLC-NB-r13 ::= SEQUENCE { + enableStatusReportSN-Gap-r13 ENUMERATED {true} OPTIONAL +} + +T-PollRetransmit-NB-r13 ::= ENUMERATED { + ms250, ms500, ms1000, ms2000, ms3000, ms4000, + ms6000, ms10000, ms15000, ms25000, ms40000, ms60000, + ms90000, ms120000, ms180000, spare1} + + + + +RLF-TimersAndConstants-NB-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + t301-r13 ENUMERATED { + ms2500, ms4000, ms6000, ms10000, + ms15000, ms25000, ms40000, ms60000}, + t310-r13 ENUMERATED { + ms0, ms200, ms500, ms1000, ms2000, ms4000, ms8000}, + n310-r13 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311-r13 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311-r13 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ..., + [[ t311-v1350 ENUMERATED { + ms40000, ms60000, ms90000, ms120000} + OPTIONAL -- Need OR + ]] + } +} + + + +UplinkPowerControlCommon-NB-r13 ::= SEQUENCE { + p0-NominalNPUSCH-r13 INTEGER (-126..24), + alpha-r13 ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1}, + deltaPreambleMsg3-r13 INTEGER (-1..6) +} + +UplinkPowerControlDedicated-NB-r13 ::= SEQUENCE { + p0-UE-NPUSCH-r13 INTEGER (-8..7) +} + + +AdditionalBandInfoList-NB-r14 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-NB-r13 + + +FreqBandIndicator-NB-r13 ::= INTEGER (1.. maxFBI2) + + +MultiBandInfoList-NB-r13 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF MultiBandInfo-NB-r13 + +MultiBandInfo-NB-r13 ::= SEQUENCE { + freqBandIndicator-r13 FreqBandIndicator-NB-r13 OPTIONAL, -- Need OR + freqBandInfo-r13 NS-PmaxList-NB-r13 OPTIONAL -- Need OR +} + + +NS-PmaxList-NB-r13 ::= SEQUENCE (SIZE (1..maxNS-Pmax-NB-r13)) OF NS-PmaxValue-NB-r13 + +NS-PmaxValue-NB-r13 ::= SEQUENCE { + additionalPmax-r13 P-Max OPTIONAL, -- Need OR + additionalSpectrumEmission-r13 AdditionalSpectrumEmission +} + + +ReselectionThreshold-NB-v1360 ::= INTEGER (32..63) + + +T-Reselection-NB-r13 ::= ENUMERATED {s0, s3, s6, s9, s12, s15, s18, s21} + + +EstablishmentCause-NB-r13 ::= ENUMERATED { + mt-Access, mo-Signalling, mo-Data, mo-ExceptionData, + delayTolerantAccess-v1330, spare3, spare2, spare1} + + +UE-Capability-NB-r13 ::= SEQUENCE { + accessStratumRelease-r13 AccessStratumRelease-NB-r13, + ue-Category-NB-r13 ENUMERATED {nb1} OPTIONAL, + multipleDRB-r13 ENUMERATED {supported} OPTIONAL, + pdcp-Parameters-r13 PDCP-Parameters-NB-r13 OPTIONAL, + phyLayerParameters-r13 PhyLayerParameters-NB-r13, + rf-Parameters-r13 RF-Parameters-NB-r13, + nonCriticalExtension UE-Capability-NB-v1430-IEs OPTIONAL +} + +UE-Capability-NB-v1430-IEs ::= SEQUENCE { + ue-Category-NB-r14 ENUMERATED {nb2} OPTIONAL, + mac-Parameters-r14 MAC-Parameters-NB-r14 OPTIONAL, + phyLayerParameters-v1430 PhyLayerParameters-NB-v1430 OPTIONAL, + rf-Parameters-v1430 RF-Parameters-NB-v1430, + nonCriticalExtension UE-Capability-NB-v1440-IEs OPTIONAL +} + +UE-Capability-NB-v1440-IEs ::= SEQUENCE { + phyLayerParameters-v1440 PhyLayerParameters-NB-v1440 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AccessStratumRelease-NB-r13 ::= ENUMERATED {rel13, rel14, spare6, spare5, spare4, spare3, spare2, spare1, ...} + +PDCP-Parameters-NB-r13 ::= SEQUENCE { + supportedROHC-Profiles-r13 SEQUENCE { + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + maxNumberROHC-ContextSessions-r13 ENUMERATED {cs2, cs4, cs8, cs12} DEFAULT cs2, + ... +} + +MAC-Parameters-NB-r14 ::= SEQUENCE { + dataInactMon-r14 ENUMERATED {supported} OPTIONAL, + rai-Support-r14 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-NB-r13 ::= SEQUENCE { + multiTone-r13 ENUMERATED {supported} OPTIONAL, + multiCarrier-r13 ENUMERATED {supported} OPTIONAL + } + +PhyLayerParameters-NB-v1430 ::= SEQUENCE { + multiCarrier-NPRACH-r14 ENUMERATED {supported} OPTIONAL, + twoHARQ-Processes-r14 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-NB-v1440 ::= SEQUENCE { + interferenceRandomisation-r14 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-NB-r13 ::= SEQUENCE { + supportedBandList-r13 SupportedBandList-NB-r13, + multiNS-Pmax-r13 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-NB-v1430 ::= SEQUENCE { + powerClassNB-14dBm-r14 ENUMERATED {supported} OPTIONAL +} + +SupportedBandList-NB-r13 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBand-NB-r13 + +SupportedBand-NB-r13 ::= SEQUENCE { + band-r13 FreqBandIndicator-NB-r13, + powerClassNB-20dBm-r13 ENUMERATED {supported} OPTIONAL +} + + +UE-RadioPagingInfo-NB-r13 ::= SEQUENCE { + ue-Category-NB-r13 ENUMERATED {nb1} OPTIONAL, + ..., + [[ multiCarrierPaging-r14 ENUMERATED {true} OPTIONAL + ]] +} + + +UE-TimersAndConstants-NB-r13 ::= SEQUENCE { + t300-r13 ENUMERATED { + ms2500, ms4000, ms6000, ms10000, + ms15000, ms25000, ms40000, ms60000}, + t301-r13 ENUMERATED { + ms2500, ms4000, ms6000, ms10000, + ms15000, ms25000, ms40000, ms60000}, + t310-r13 ENUMERATED { + ms0, ms200, ms500, ms1000, ms2000, ms4000, ms8000}, + n310-r13 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311-r13 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311-r13 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ..., + [[ t311-v1350 ENUMERATED { + ms40000, ms60000, ms90000, ms120000} + OPTIONAL -- Need OR + ]] +} + + +SC-MTCH-InfoList-NB-r14 ::= SEQUENCE (SIZE (0.. maxSC-MTCH-NB-r14)) OF SC-MTCH-Info-NB-r14 + +SC-MTCH-Info-NB-r14 ::= SEQUENCE { + sc-mtch-CarrierConfig-r14 CHOICE { + dl-CarrierConfig-r14 DL-CarrierConfigCommon-NB-r14, + dl-CarrierIndex-r14 INTEGER (0.. maxNonAnchorCarriers-NB-r14) + }, + mbmsSessionInfo-r14 MBMSSessionInfo-r13, + g-RNTI-r14 BIT STRING(SIZE(16)), + sc-mtch-SchedulingInfo-r14 SC-MTCH-SchedulingInfo-NB-r14 OPTIONAL, -- Need OP + sc-mtch-NeighbourCell-r14 BIT STRING (SIZE(maxNeighCell-SCPTM-NB-r14)) OPTIONAL, -- Need OP + npdcch-NPDSCH-MaxTBS-SC-MTCH-r14 ENUMERATED {n680, n2536}, + npdcch-NumRepetitions-SC-MTCH-r14 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256, + r512, r1024, r2048, spare4, + spare3, spare2, spare1}, + npdcch-StartSF-SC-MTCH-r14 ENUMERATED {v1dot5, v2, v4, v8, + v16, v32, v48, v64}, + npdcch-Offset-SC-MTCH-r14 ENUMERATED {zero, oneEighth, oneQuarter, + threeEighth, oneHalf, fiveEighth, + threeQuarter, sevenEighth}, + ... +} + +SC-MTCH-SchedulingInfo-NB-r14 ::= SEQUENCE { + onDurationTimerSCPTM-r14 ENUMERATED { + pp1, pp2, pp3, pp4, + pp8, pp16, pp32, spare}, + drx-InactivityTimerSCPTM-r14 ENUMERATED { + pp0, pp1, pp2, pp3, + pp4, pp8, pp16, pp32}, + schedulingPeriodStartOffsetSCPTM-r14 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2047), + sf4096 INTEGER(0..4095), + sf8192 INTEGER(0..8191) + }, + ... +} + + +SCPTM-NeighbourCellList-NB-r14 ::= SEQUENCE (SIZE (1..maxNeighCell-SCPTM-NB-r14)) OF PCI-ARFCN-NB-r14 + +PCI-ARFCN-NB-r14 ::= SEQUENCE { + physCellId-r14 PhysCellId, + carrierFreq-r14 CarrierFreq-NB-r13 OPTIONAL -- Need OP +} + + +maxNPRACH-Resources-NB-r13 INTEGER ::= 3 -- Maximum number of NPRACH resources for NB-IoT +maxNonAnchorCarriers-NB-r14 INTEGER ::= 15 -- Maximum number of non-anchor carriers for NB-IoT +maxDRB-NB-r13 INTEGER ::= 2 -- Maximum number of Data Radio Bearers for NB-IoT +maxNeighCell-SCPTM-NB-r14 INTEGER ::= 8 -- Maximum number of SCPTM neighbour cells +maxNS-Pmax-NB-r13 INTEGER ::= 4 -- Maximum number of NS and P-Max values per band +maxSC-MTCH-NB-r14 INTEGER ::= 64 -- Maximum number of SC-MTCHs in one cell for NB-IoT +maxSI-Message-NB-r13 INTEGER ::= 8 -- Maximum number of SI messages for NB-IoT + + +END + + +EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AbsoluteTimeInfo-r10, + AreaConfiguration-r10, + AreaConfiguration-v1130, + CarrierFreqGERAN, + CellIdentity, + ConnEstFailReport-r11, + SpeedStateScaleFactors, + C-RNTI, + LoggingDuration-r10, + LoggingInterval-r10, + LogMeasInfo-r10, + MeasCSI-RS-Id-r12, + MeasId, + MeasId-v1250, + MeasIdToAddModList, + MeasIdToAddModListExt-r12, + MeasIdToAddModList-v1310, + MeasIdToAddModListExt-v1310, + MeasObjectToAddModList, + MeasObjectToAddModList-v9e0, + MeasObjectToAddModListExt-r13, + MeasScaleFactor-r12, + MobilityStateParameters, + NeighCellConfig, + PhysCellId, + PhysCellIdCDMA2000, + PhysCellIdGERAN, + PhysCellIdUTRA-FDD, + PhysCellIdUTRA-TDD, + PLMN-Identity, + PLMN-IdentityList3-r11, + QuantityConfig, + ReportConfigToAddModList, + RLF-Report-r9, + TargetMBSFN-AreaList-r12, + TraceReference-r10, + Tx-ResourcePoolMeasList-r14, + VisitedCellInfoList-r12, + maxCellMeas, + maxCSI-RS-Meas-r12, + maxMeasId, + maxMeasId-r12, + UL-DelayConfig-r13, + WLAN-CarrierInfo-r13, + WLAN-Identifiers-r12, + WLAN-Id-List-r13, + WLAN-Status-r13, + WLAN-Status-v1430, + WLAN-SuspendConfig-r14 + +FROM EUTRA-RRC-Definitions; + + +VarConnEstFailReport-r11 ::= SEQUENCE { + connEstFailReport-r11 ConnEstFailReport-r11, + plmn-Identity-r11 PLMN-Identity +} + + +VarLogMeasConfig-r10 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10 +} + +VarLogMeasConfig-r11 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10 +} + +VarLogMeasConfig-r12 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10, + targetMBSFN-AreaList-r12 TargetMBSFN-AreaList-r12 OPTIONAL +} + + +VarLogMeasReport-r10 ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + plmn-Identity-r10 PLMN-Identity, + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + logMeasInfoList-r10 LogMeasInfoList2-r10 +} + +VarLogMeasReport-r11 ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + plmn-IdentityList-r11 PLMN-IdentityList3-r11, + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + logMeasInfoList-r10 LogMeasInfoList2-r10 +} + +LogMeasInfoList2-r10 ::= SEQUENCE (SIZE (1..maxLogMeas-r10)) OF LogMeasInfo-r10 + + +VarMeasConfig ::= SEQUENCE { + -- Measurement identities + measIdList MeasIdToAddModList OPTIONAL, + measIdListExt-r12 MeasIdToAddModListExt-r12 OPTIONAL, + measIdList-v1310 MeasIdToAddModList-v1310 OPTIONAL, + measIdListExt-v1310 MeasIdToAddModListExt-v1310 OPTIONAL, + -- Measurement objects + measObjectList MeasObjectToAddModList OPTIONAL, + measObjectListExt-r13 MeasObjectToAddModListExt-r13 OPTIONAL, + measObjectList-v9i0 MeasObjectToAddModList-v9e0 OPTIONAL, + -- Reporting configurations + reportConfigList ReportConfigToAddModList OPTIONAL, + -- Other parameters + quantityConfig QuantityConfig OPTIONAL, + measScaleFactor-r12 MeasScaleFactor-r12 OPTIONAL, + s-Measure INTEGER (-140..-44) OPTIONAL, + speedStatePars CHOICE { + release NULL, + setup SEQUENCE { + mobilityStateParameters MobilityStateParameters, + timeToTrigger-SF SpeedStateScaleFactors + } + } OPTIONAL, + allowInterruptions-r11 BOOLEAN OPTIONAL +} + + +VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport +VarMeasReportList-r12 ::= SEQUENCE (SIZE (1..maxMeasId-r12)) OF VarMeasReport + +VarMeasReport ::= SEQUENCE { + -- List of measurement that have been triggered + measId MeasId, + measId-v1250 MeasId-v1250 OPTIONAL, + cellsTriggeredList CellsTriggeredList OPTIONAL, + csi-RS-TriggeredList-r12 CSI-RS-TriggeredList-r12 OPTIONAL, + poolsTriggeredList-r14 Tx-ResourcePoolMeasList-r14 OPTIONAL, + numberOfReportsSent INTEGER +} + +CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CHOICE { + physCellIdEUTRA PhysCellId, + physCellIdUTRA CHOICE { + fdd PhysCellIdUTRA-FDD, + tdd PhysCellIdUTRA-TDD + }, + physCellIdGERAN SEQUENCE { + carrierFreq CarrierFreqGERAN, + physCellId PhysCellIdGERAN + }, + physCellIdCDMA2000 PhysCellIdCDMA2000, + wlan-Identifiers-r13 WLAN-Identifiers-r12 +} + +CSI-RS-TriggeredList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Id-r12 + +VarMobilityHistoryReport-r12 ::= VisitedCellInfoList-r12 + + +VarRLF-Report-r10 ::= SEQUENCE { + rlf-Report-r10 RLF-Report-r9, + plmn-Identity-r10 PLMN-Identity +} + +VarRLF-Report-r11 ::= SEQUENCE { + rlf-Report-r10 RLF-Report-r9, + plmn-IdentityList-r11 PLMN-IdentityList3-r11 +} + + +VarShortMAC-Input ::= SEQUENCE { + cellIdentity CellIdentity, + physCellId PhysCellId, + c-RNTI C-RNTI +} + + +VarShortResumeMAC-Input-r13 ::= SEQUENCE { + cellIdentity-r13 CellIdentity, + physCellId-r13 PhysCellId, + c-RNTI-r13 C-RNTI, + resumeDiscriminator-r13 BIT STRING(SIZE(1)) +} + + +VarWLAN-MobilityConfig ::= SEQUENCE { + wlan-MobilitySet-r13 WLAN-Id-List-r13 OPTIONAL, + successReportRequested ENUMERATED {true} OPTIONAL, + wlan-SuspendConfig-r14 WLAN-SuspendConfig-r14 OPTIONAL +} + + +VarWLAN-Status-r13 ::= SEQUENCE { + status-r13 WLAN-Status-r13, + status-r14 WLAN-Status-v1430 OPTIONAL +} + + +maxLogMeas-r10 INTEGER ::= 4060-- Maximum number of logged measurement entries + -- that can be stored by the UE + + +END + + +NBIOT-UE-Variables DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + VarShortMAC-Input, + VarShortResumeMAC-Input-r13 + +FROM EUTRA-UE-Variables; + +VarShortMAC-Input-NB-r13 ::= VarShortMAC-Input + +VarShortResumeMAC-Input-NB-r13 ::= VarShortResumeMAC-Input-r13 + + +END + + +EUTRA-Sidelink-Preconf DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AdditionalSpectrumEmission, + AdditionalSpectrumEmission-v10l0, + ARFCN-ValueEUTRA-r9, + FilterCoefficient, + maxCBR-Level-r14, + maxCBR-Level-1-r14, + maxFreq, + maxFreqV2X-r14, + maxSL-TxPool-r12, + maxSL-CommRxPoolPreconf-v1310, + maxSL-CommTxPoolPreconf-v1310, + maxSL-DiscRxPoolPreconf-r13, + maxSL-DiscTxPoolPreconf-r13, + maxSL-V2X-CBRConfig2-r14, + maxSL-V2X-CBRConfig2-1-r14, + maxSL-V2X-RxPoolPreconf-r14, + maxSL-V2X-TxConfig2-r14, + maxSL-V2X-TxConfig2-1-r14, + maxSL-V2X-TxPoolPreconf-r14, + P-Max, + ReselectionInfoRelay-r13, + SL-AnchorCarrierFreqList-V2X-r14, + SL-CBR-Levels-Config-r14, + SL-CBR-PSSCH-TxConfig-r14, + SL-CommTxPoolSensingConfig-r14, + SL-CP-Len-r12, + SL-HoppingConfigComm-r12, + SL-OffsetIndicator-r12, + SL-OffsetIndicatorSync-r12, + SL-OffsetIndicatorSync-v1430, + SL-PeriodComm-r12, + RSRP-RangeSL3-r12, + SL-PriorityList-r13, + SL-TF-ResourceConfig-r12, + SL-TRPT-Subset-r12, + SL-TxParameters-r12, + SL-ZoneConfig-r14, + P0-SL-r12, + TDD-ConfigSL-r12, + SubframeBitmapSL-r14, + SL-P2X-ResourceSelectionConfig-r14, + SL-RestrictResourceReservationPeriodList-r14, + SL-SyncAllowed-r14, + SL-OffsetIndicatorSync-r14, + SL-Priority-r13 +FROM EUTRA-RRC-Definitions; + + +SL-Preconfiguration-r12 ::= SEQUENCE { + preconfigGeneral-r12 SL-PreconfigGeneral-r12, + preconfigSync-r12 SL-PreconfigSync-r12, + preconfigComm-r12 SL-PreconfigCommPoolList4-r12, + ..., + [[ preconfigComm-v1310 SEQUENCE { + commRxPoolList-r13 SL-PreconfigCommRxPoolList-r13, + commTxPoolList-r13 SL-PreconfigCommTxPoolList-r13 OPTIONAL + } OPTIONAL, + preconfigDisc-r13 SEQUENCE { + discRxPoolList-r13 SL-PreconfigDiscRxPoolList-r13, + discTxPoolList-r13 SL-PreconfigDiscTxPoolList-r13 OPTIONAL + } OPTIONAL, + preconfigRelay-r13 SL-PreconfigRelay-r13 OPTIONAL + ]] + +} + +SL-PreconfigGeneral-r12 ::= SEQUENCE { + -- PDCP configuration + rohc-Profiles-r12 SEQUENCE { + profile0x0001-r12 BOOLEAN, + profile0x0002-r12 BOOLEAN, + profile0x0004-r12 BOOLEAN, + profile0x0006-r12 BOOLEAN, + profile0x0101-r12 BOOLEAN, + profile0x0102-r12 BOOLEAN, + profile0x0104-r12 BOOLEAN + }, + -- Physical configuration + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + maxTxPower-r12 P-Max, + additionalSpectrumEmission-r12 AdditionalSpectrumEmission, + sl-bandwidth-r12 ENUMERATED {n6, n15, n25, n50, n75, n100}, + tdd-ConfigSL-r12 TDD-ConfigSL-r12, + reserved-r12 BIT STRING (SIZE (19)), + ..., + [[ additionalSpectrumEmission-v1440 AdditionalSpectrumEmission-v10l0 OPTIONAL + ]] +} + +SL-PreconfigSync-r12 ::= SEQUENCE { + syncCP-Len-r12 SL-CP-Len-r12, + syncOffsetIndicator1-r12 SL-OffsetIndicatorSync-r12, + syncOffsetIndicator2-r12 SL-OffsetIndicatorSync-r12, + syncTxParameters-r12 P0-SL-r12, + syncTxThreshOoC-r12 RSRP-RangeSL3-r12, + filterCoefficient-r12 FilterCoefficient, + syncRefMinHyst-r12 ENUMERATED {dB0, dB3, dB6, dB9, dB12}, + syncRefDiffHyst-r12 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf}, + ..., + [[ syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL + ]] +} + +SL-PreconfigCommPoolList4-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-PreconfigCommPool-r12 + +SL-PreconfigCommRxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-CommRxPoolPreconf-v1310)) OF SL-PreconfigCommPool-r12 + +SL-PreconfigCommTxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-CommTxPoolPreconf-v1310)) OF SL-PreconfigCommPool-r12 + +SL-PreconfigCommPool-r12 ::= SEQUENCE { +-- This IE is same as SL-CommResourcePool with rxParametersNCell absent + sc-CP-Len-r12 SL-CP-Len-r12, + sc-Period-r12 SL-PeriodComm-r12, + sc-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + sc-TxParameters-r12 P0-SL-r12, + data-CP-Len-r12 SL-CP-Len-r12, + data-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + dataHoppingConfig-r12 SL-HoppingConfigComm-r12, + dataTxParameters-r12 P0-SL-r12, + trpt-Subset-r12 SL-TRPT-Subset-r12, + ..., + [[ priorityList-r13 SL-PriorityList-r13 OPTIONAL -- For Tx + ]] +} + +SL-PreconfigDiscRxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-DiscRxPoolPreconf-r13)) OF SL-PreconfigDiscPool-r13 + +SL-PreconfigDiscTxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-DiscTxPoolPreconf-r13)) OF SL-PreconfigDiscPool-r13 + +SL-PreconfigDiscPool-r13 ::= SEQUENCE { +-- This IE is same as SL-DiscResourcePool with rxParameters absent + cp-Len-r13 SL-CP-Len-r12, + discPeriod-r13 ENUMERATED {rf4, rf6, rf7, rf8, rf12, rf14, rf16, rf24, rf28, + rf32, rf64, rf128, rf256, rf512, rf1024, spare}, + numRetx-r13 INTEGER (0..3), + numRepetition-r13 INTEGER (1..50), + tf-ResourceConfig-r13 SL-TF-ResourceConfig-r12, + txParameters-r13 SEQUENCE { + txParametersGeneral-r13 P0-SL-r12, + txProbability-r13 ENUMERATED {p25, p50, p75, p100} + } OPTIONAL, + ... +} + +SL-PreconfigRelay-r13 ::= SEQUENCE { + reselectionInfoOoC-r13 ReselectionInfoRelay-r13 +} + + +SL-V2X-Preconfiguration-r14 ::= SEQUENCE { + v2x-PreconfigFreqList-r14 SL-V2X-PreconfigFreqList-r14, + anchorCarrierFreqList-r14 SL-AnchorCarrierFreqList-V2X-r14 OPTIONAL, + cbr-PreconfigList-r14 SL-CBR-PreconfigTxConfigList-r14 OPTIONAL, + ... +} + +SL-CBR-PreconfigTxConfigList-r14 ::= SEQUENCE { + cbr-RangeCommonConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-CBRConfig2-r14)) OF SL-CBR-Levels-Config-r14, + sl-CBR-PSSCH-TxConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-TxConfig2-r14)) OF SL-CBR-PSSCH-TxConfig-r14 +} + +SL-V2X-PreconfigFreqList-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF SL-V2X-PreconfigFreqInfo-r14 + +SL-V2X-PreconfigFreqInfo-r14 ::= SEQUENCE { + v2x-CommPreconfigGeneral-r14 SL-PreconfigGeneral-r12, + v2x-CommPreconfigSync-r14 SL-PreconfigV2X-Sync-r14 OPTIONAL, + v2x-CommRxPoolList-r14 SL-PreconfigV2X-RxPoolList-r14, + v2x-CommTxPoolList-r14 SL-PreconfigV2X-TxPoolList-r14, + p2x-CommTxPoolList-r14 SL-PreconfigV2X-TxPoolList-r14, + v2x-ResourceSelectionConfig-r14 SL-CommTxPoolSensingConfig-r14 OPTIONAL, + zoneConfig-r14 SL-ZoneConfig-r14 OPTIONAL, + syncPriority-r14 ENUMERATED {gnss, enb}, + thresSL-TxPrioritization-r14 SL-Priority-r13 OPTIONAL, + offsetDFN-r14 INTEGER (0..1000) OPTIONAL, + ... +} + +SL-PreconfigV2X-RxPoolList-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-RxPoolPreconf-r14)) OF SL-V2X-PreconfigCommPool-r14 + +SL-PreconfigV2X-TxPoolList-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-TxPoolPreconf-r14)) OF SL-V2X-PreconfigCommPool-r14 + +SL-V2X-PreconfigCommPool-r14 ::= SEQUENCE { +-- This IE is same as SL-CommResourcePoolV2X with rxParametersNCell absent + sl-OffsetIndicator-r14 SL-OffsetIndicator-r12 OPTIONAL, + sl-Subframe-r14 SubframeBitmapSL-r14, + adjacencyPSCCH-PSSCH-r14 BOOLEAN, + sizeSubchannel-r14 ENUMERATED { + n4, n5, n6, n8, n9, n10, n12, n15, n16, n18, n20, n25, n30, + n48, n50, n72, n75, n96, n100, spare13, spare12, spare11, + spare10, spare9, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1}, + numSubchannel-r14 ENUMERATED {n1, n3, n5, n8, n10, n15, n20, spare1}, + startRB-Subchannel-r14 INTEGER (0..99), + startRB-PSCCH-Pool-r14 INTEGER (0..99) OPTIONAL, + dataTxParameters-r14 P0-SL-r12, + zoneID-r14 INTEGER (0..7) OPTIONAL, + threshS-RSSI-CBR-r14 INTEGER (0..45) OPTIONAL, + cbr-pssch-TxConfigList-r14 SL-CBR-PPPP-TxPreconfigList-r14 OPTIONAL, + resourceSelectionConfigP2X-r14 SL-P2X-ResourceSelectionConfig-r14 OPTIONAL, + syncAllowed-r14 SL-SyncAllowed-r14 OPTIONAL, + restrictResourceReservationPeriod-r14 SL-RestrictResourceReservationPeriodList-r14 OPTIONAL, -- Need OR + ... +} + +SL-PreconfigV2X-Sync-r14 ::= SEQUENCE { + syncOffsetIndicators-r14 SL-V2X-SyncOffsetIndicators-r14, + syncTxParameters-r14 P0-SL-r12, + syncTxThreshOoC-r14 RSRP-RangeSL3-r12, + filterCoefficient-r14 FilterCoefficient, + syncRefMinHyst-r14 ENUMERATED {dB0, dB3, dB6, dB9, dB12}, + syncRefDiffHyst-r14 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf}, + ... +} + +SL-V2X-SyncOffsetIndicators-r14 ::= SEQUENCE { + syncOffsetIndicator1-r14 SL-OffsetIndicatorSync-r14, + syncOffsetIndicator2-r14 SL-OffsetIndicatorSync-r14, + syncOffsetIndicator3-r14 SL-OffsetIndicatorSync-r14 OPTIONAL +} + +SL-CBR-PPPP-TxPreconfigList-r14 ::= SEQUENCE (SIZE (1..8)) OF SL-PPPP-TxPreconfigIndex-r14 + +SL-PPPP-TxPreconfigIndex-r14 ::= SEQUENCE { + priorityThreshold-r14 SL-Priority-r13, + defaultTxConfigIndex-r14 INTEGER(0..maxCBR-Level-1-r14), + cbr-ConfigIndex-r14 INTEGER(0..maxSL-V2X-CBRConfig2-1-r14), + tx-ConfigIndexList-r14 SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF Tx-PreconfigIndex-r14 +} + +Tx-PreconfigIndex-r14 ::= INTEGER(0..maxSL-V2X-TxConfig2-1-r14) + +END + + +EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AntennaInfoCommon, + AntennaInfoDedicated-v10i0, + ARFCN-ValueEUTRA, + ARFCN-ValueEUTRA-v9e0, + ARFCN-ValueEUTRA-r9, + CellIdentity, + C-RNTI, + DL-DCCH-Message, + DRB-Identity, + DRB-ToReleaseList, + FreqBandIndicator-r11, + InDeviceCoexIndication-r11, + LWA-Config-r13, + MasterInformationBlock, + maxBands, + maxFreq, + maxDRB, + maxSCell-r10, + maxSCell-r13, + maxServCell-r10, + maxServCell-r13, + MBMSInterestIndication-r11, + MeasConfig, + MeasGapConfig, + MeasGapConfigPerCC-List-r14, + MeasResultForRSSI-r13, + MeasResultListWLAN-r13, + OtherConfig-r9, + PhysCellId, + P-Max, + PowerCoordinationInfo-r12, + SidelinkUEInformation-r12, + SL-CommConfig-r12, + SL-DiscConfig-r12, + RadioResourceConfigDedicated, + RCLWI-Configuration-r13, + RSRP-Range, + RSRQ-Range, + RSRQ-Range-v1250, + RS-SINR-Range-r13, + SCellToAddModList-r10, + SCellToAddModListExt-r13, + SCG-ConfigPartSCG-r12, + SecurityAlgorithmConfig, + SCellIndex-r10, + SCellIndex-r13, + SCellToReleaseList-r10, + SCellToReleaseListExt-r13, + ServCellIndex-r10, + ServCellIndex-r13, + ShortMAC-I, + MeasResultSSTD-r13, + SL-V2X-ConfigDedicated-r14, + SystemInformationBlockType1, + SystemInformationBlockType1-v890-IEs, + SystemInformationBlockType2, + UEAssistanceInformation-r11, + UECapabilityInformation, + UE-CapabilityRAT-ContainerList, + UE-RadioPagingInfo-r12, + WLANConnectionStatusReport-r13, + WLAN-OffloadConfig-r12 +FROM EUTRA-RRC-Definitions; + + +HandoverCommand ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverCommand-r8 HandoverCommand-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverCommand-r8-IEs ::= SEQUENCE { + handoverCommandMessage OCTET STRING (CONTAINING DL-DCCH-Message), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +HandoverPreparationInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverPreparationInformation-r8 HandoverPreparationInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverPreparationInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo UE-CapabilityRAT-ContainerList, + as-Config AS-Config OPTIONAL, -- Cond HO + rrm-Config RRM-Config OPTIONAL, + as-Context AS-Context OPTIONAL, -- Cond HO + nonCriticalExtension HandoverPreparationInformation-v920-IEs OPTIONAL +} + +HandoverPreparationInformation-v920-IEs ::= SEQUENCE { + ue-ConfigRelease-r9 ENUMERATED { + rel9, rel10, rel11, rel12, v10j0, v11e0, + v1280, rel13, ..., rel14} OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v9d0-IEs OPTIONAL +} + +HandoverPreparationInformation-v9d0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING HandoverPreparationInformation-v9j0-IEs) OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-v9e0-IEs OPTIONAL +} + +-- Late non-critical extensions: +HandoverPreparationInformation-v9j0-IEs ::= SEQUENCE { + -- Following field is only for pre REL-10 late non-critical extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-v10j0-IEs OPTIONAL +} + +HandoverPreparationInformation-v10j0-IEs ::= SEQUENCE { + as-Config-v10j0 AS-Config-v10j0 OPTIONAL, + -- Following field is only for late non-critical extensions from REL-10 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +HandoverPreparationInformation-v9e0-IEs ::= SEQUENCE { + as-Config-v9e0 AS-Config-v9e0 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1130-IEs OPTIONAL +} + +HandoverPreparationInformation-v1130-IEs ::= SEQUENCE { + as-Context-v1130 AS-Context-v1130 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1250-IEs OPTIONAL +} + +HandoverPreparationInformation-v1250-IEs ::= SEQUENCE { + ue-SupportedEARFCN-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Cond HO3 + as-Config-v1250 AS-Config-v1250 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1320-IEs OPTIONAL +} + +HandoverPreparationInformation-v1320-IEs ::= SEQUENCE { + as-Config-v1320 AS-Config-v1320 OPTIONAL, -- Cond HO2 + as-Context-v1320 AS-Context-v1320 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1430-IEs OPTIONAL +} + +HandoverPreparationInformation-v1430-IEs ::= SEQUENCE { + as-Config-v1430 AS-Config-v1430 OPTIONAL, -- Cond HO2 + makeBeforeBreakReq-r14 ENUMERATED {true} OPTIONAL, -- Cond HO2 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCG-Config-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + scg-Config-r12 SCG-Config-r12-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCG-Config-r12-IEs ::= SEQUENCE { + scg-RadioConfig-r12 SCG-ConfigPartSCG-r12 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCG-ConfigInfo-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + scg-ConfigInfo-r12 SCG-ConfigInfo-r12-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCG-ConfigInfo-r12-IEs ::= SEQUENCE { + radioResourceConfigDedMCG-r12 RadioResourceConfigDedicated OPTIONAL, + sCellToAddModListMCG-r12 SCellToAddModList-r10 OPTIONAL, + measGapConfig-r12 MeasGapConfig OPTIONAL, + powerCoordinationInfo-r12 PowerCoordinationInfo-r12 OPTIONAL, + scg-RadioConfig-r12 SCG-ConfigPartSCG-r12 OPTIONAL, + eutra-CapabilityInfo-r12 OCTET STRING (CONTAINING UECapabilityInformation) OPTIONAL, + scg-ConfigRestrictInfo-r12 SCG-ConfigRestrictInfo-r12 OPTIONAL, + mbmsInterestIndication-r12 OCTET STRING (CONTAINING + MBMSInterestIndication-r11) OPTIONAL, + measResultServCellListSCG-r12 MeasResultServCellListSCG-r12 OPTIONAL, + drb-ToAddModListSCG-r12 DRB-InfoListSCG-r12 OPTIONAL, + drb-ToReleaseListSCG-r12 DRB-ToReleaseList OPTIONAL, + sCellToAddModListSCG-r12 SCellToAddModListSCG-r12 OPTIONAL, + sCellToReleaseListSCG-r12 SCellToReleaseList-r10 OPTIONAL, + p-Max-r12 P-Max OPTIONAL, + nonCriticalExtension SCG-ConfigInfo-v1310-IEs OPTIONAL +} + +SCG-ConfigInfo-v1310-IEs ::= SEQUENCE { + measResultSSTD-r13 MeasResultSSTD-r13 OPTIONAL, sCellToAddModListMCG-Ext-r13 SCellToAddModListExt-r13 OPTIONAL, + measResultServCellListSCG-Ext-r13 MeasResultServCellListSCG-Ext-r13 OPTIONAL, + sCellToAddModListSCG-Ext-r13 SCellToAddModListSCG-Ext-r13 OPTIONAL, + sCellToReleaseListSCG-Ext-r13 SCellToReleaseListExt-r13 OPTIONAL, + nonCriticalExtension SCG-ConfigInfo-v1330-IEs OPTIONAL +} + +SCG-ConfigInfo-v1330-IEs ::= SEQUENCE { + measResultListRSSI-SCG-r13 MeasResultListRSSI-SCG-r13 OPTIONAL, + nonCriticalExtension SCG-ConfigInfo-v1430-IEs OPTIONAL +} + +SCG-ConfigInfo-v1430-IEs ::= SEQUENCE { + makeBeforeBreakSCG-Req-r14 ENUMERATED {true} OPTIONAL, + measGapConfigPerCC-List MeasGapConfigPerCC-List-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-InfoListSCG-r12 ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-InfoSCG-r12 + +DRB-InfoSCG-r12 ::= SEQUENCE { + eps-BearerIdentity-r12 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity-r12 DRB-Identity, + drb-Type-r12 ENUMERATED {split, scg} OPTIONAL, -- Cond DRB-Setup + ... +} + +SCellToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF Cell-ToAddMod-r12 + +SCellToAddModListSCG-Ext-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF Cell-ToAddMod-r12 + +Cell-ToAddMod-r12 ::= SEQUENCE { + sCellIndex-r12 SCellIndex-r10, + cellIdentification-r12 SEQUENCE { + physCellId-r12 PhysCellId, + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + measResultCellToAdd-r12 SEQUENCE { + rsrpResult-r12 RSRP-Range, + rsrqResult-r12 RSRQ-Range + } OPTIONAL, -- Cond SCellAdd2 + ..., + [[ sCellIndex-r13 SCellIndex-r13 OPTIONAL, + measResultCellToAdd-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL -- Cond SCellAdd2 + ]] +} + +MeasResultServCellListSCG-r12 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF MeasResultServCellSCG-r12 + +MeasResultServCellListSCG-Ext-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultServCellSCG-r12 + +MeasResultServCellSCG-r12 ::= SEQUENCE { + servCellId-r12 ServCellIndex-r10, + measResultSCell-r12 SEQUENCE { + rsrpResultSCell-r12 RSRP-Range, + rsrqResultSCell-r12 RSRQ-Range + }, + ..., + [[ servCellId-r13 ServCellIndex-r13 OPTIONAL, + measResultSCell-v1310 SEQUENCE { + rs-sinr-ResultSCell-r13 RS-SINR-Range-r13 + } OPTIONAL + ]] +} + +MeasResultListRSSI-SCG-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultRSSI-SCG-r13 + +MeasResultRSSI-SCG-r13 ::= SEQUENCE { + servCellId-r13 ServCellIndex-r13, + measResultForRSSI-r13 MeasResultForRSSI-r13 +} + +SCG-ConfigRestrictInfo-r12 ::= SEQUENCE { + maxSCH-TB-BitsDL-r12 INTEGER (1..100), + maxSCH-TB-BitsUL-r12 INTEGER (1..100) +} + + +UEPagingCoverageInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + uePagingCoverageInformation-r13 UEPagingCoverageInformation-r13-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEPagingCoverageInformation-r13-IEs ::= SEQUENCE { + mpdcch-NumRepetition-r13 INTEGER (1..256) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioAccessCapabilityInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioAccessCapabilityInformation-r8 + UERadioAccessCapabilityInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioPagingInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioPagingInformation-r12 UERadioPagingInformation-r12-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioPagingInformation-r12-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r12 OCTET STRING (CONTAINING UE-RadioPagingInfo-r12), + nonCriticalExtension UERadioPagingInformation-v1310-IEs OPTIONAL +} + +UERadioPagingInformation-v1310-IEs ::= SEQUENCE { + supportedBandListEUTRAForPaging-r13 SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicator-r11 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL + +} + + +AS-Config ::= SEQUENCE { + sourceMeasConfig MeasConfig, + sourceRadioResourceConfig RadioResourceConfigDedicated, + sourceSecurityAlgorithmConfig SecurityAlgorithmConfig, + sourceUE-Identity C-RNTI, + sourceMasterInformationBlock MasterInformationBlock, + sourceSystemInformationBlockType1 SystemInformationBlockType1(WITH COMPONENTS + {..., nonCriticalExtension ABSENT}), + sourceSystemInformationBlockType2 SystemInformationBlockType2, + antennaInfoCommon AntennaInfoCommon, + sourceDl-CarrierFreq ARFCN-ValueEUTRA, + ..., + [[ sourceSystemInformationBlockType1Ext OCTET STRING (CONTAINING + SystemInformationBlockType1-v890-IEs) OPTIONAL, + sourceOtherConfig-r9 OtherConfig-r9 + -- sourceOtherConfig-r9 should have been optional. A target eNB compliant with this transfer + -- syntax should support receiving an AS-Config not including this extension addition group + -- e.g. from a legacy source eNB + ]], + [[ sourceSCellConfigList-r10 SCellToAddModList-r10 OPTIONAL + ]], + [[ sourceConfigSCG-r12 SCG-Config-r12 OPTIONAL + ]] +} + +AS-Config-v9e0 ::= SEQUENCE { + sourceDl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +AS-Config-v10j0 ::= SEQUENCE { + antennaInfoDedicatedPCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL +} + +AS-Config-v1250 ::= SEQUENCE { + sourceWlan-OffloadConfig-r12 WLAN-OffloadConfig-r12 OPTIONAL, + sourceSL-CommConfig-r12 SL-CommConfig-r12 OPTIONAL, + sourceSL-DiscConfig-r12 SL-DiscConfig-r12 OPTIONAL +} + +AS-Config-v1320 ::= SEQUENCE { + sourceSCellConfigList-r13 SCellToAddModListExt-r13 OPTIONAL, + sourceRCLWI-Configuration-r13 RCLWI-Configuration-r13 OPTIONAL +} + +AS-Config-v1430 ::= SEQUENCE { + sourceSL-V2X-CommConfig-r14 SL-V2X-ConfigDedicated-r14 OPTIONAL, + sourceLWA-Config-r14 LWA-Config-r13 OPTIONAL, + sourceWLAN-MeasResult-r14 MeasResultListWLAN-r13 OPTIONAL +} + + +AS-Context ::= SEQUENCE { + reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO +} + +AS-Context-v1130 ::= SEQUENCE { + idc-Indication-r11 OCTET STRING (CONTAINING + InDeviceCoexIndication-r11) OPTIONAL, -- Cond HO2 + mbmsInterestIndication-r11 OCTET STRING (CONTAINING + MBMSInterestIndication-r11) OPTIONAL, -- Cond HO2 + powerPrefIndication-r11 OCTET STRING (CONTAINING + UEAssistanceInformation-r11) OPTIONAL, -- Cond HO2 + ..., + [[ sidelinkUEInformation-r12 OCTET STRING (CONTAINING + SidelinkUEInformation-r12) OPTIONAL -- Cond HO2 + ]] +} + +AS-Context-v1320 ::= SEQUENCE { + wlanConnectionStatusReport-r13 OCTET STRING (CONTAINING + WLANConnectionStatusReport-r13) OPTIONAL -- Cond HO2 +} + + +ReestablishmentInfo ::= SEQUENCE { + sourcePhysCellId PhysCellId, + targetCellShortMAC-I ShortMAC-I, + additionalReestabInfoList AdditionalReestabInfoList OPTIONAL, + ... +} + +AdditionalReestabInfoList ::= SEQUENCE ( SIZE (1..maxReestabInfo) ) OF AdditionalReestabInfo + +AdditionalReestabInfo ::= SEQUENCE{ + cellIdentity CellIdentity, + key-eNodeB-Star Key-eNodeB-Star, + shortMAC-I ShortMAC-I +} + +Key-eNodeB-Star ::= BIT STRING (SIZE (256)) + + +RRM-Config ::= SEQUENCE { + ue-InactiveTime ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, + s25, s30, s40, s50, min1, min1s20c, min1s40, + min2, min2s30, min3, min3s30, min4, min5, min6, + min7, min8, min9, min10, min12, min14, min17, min20, + min24, min28, min33, min38, min44, min50, hr1, + hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6, + hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2, + day2hr12, day3, day4, day5, day7, day10, day14, day19, + day24, day30, dayMoreThan30} OPTIONAL, + ..., + [[ candidateCellInfoList-r10 CandidateCellInfoList-r10 OPTIONAL + ]] +} + +CandidateCellInfoList-r10 ::= SEQUENCE (SIZE (1..maxFreq)) OF CandidateCellInfo-r10 + +CandidateCellInfo-r10 ::= SEQUENCE { + -- cellIdentification + physCellId-r10 PhysCellId, + dl-CarrierFreq-r10 ARFCN-ValueEUTRA, + -- available measurement results + rsrpResult-r10 RSRP-Range OPTIONAL, + rsrqResult-r10 RSRQ-Range OPTIONAL, + ..., + [[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL + ]], + [[ rsrqResult-v1250 RSRQ-Range-v1250 OPTIONAL + ]], + [[ rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL + ]] +} + + +maxReestabInfo INTEGER ::= 32 -- Maximum number of KeNB* and shortMAC-I forwarded + -- at handover for re-establishment preparation + + +END + + +NBIOT-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + C-RNTI, + PhysCellId, + SecurityAlgorithmConfig, + ShortMAC-I +FROM EUTRA-RRC-Definitions + + AdditionalReestabInfoList +FROM EUTRA-InterNodeDefinitions + + CarrierFreq-NB-r13, + RadioResourceConfigDedicated-NB-r13, + UE-Capability-NB-r13, + UE-RadioPagingInfo-NB-r13 +FROM NBIOT-RRC-Definitions; + + +HandoverPreparationInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverPreparationInformation-r13 HandoverPreparationInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverPreparationInformation-NB-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo-r13 UE-Capability-NB-r13, + as-Config-r13 AS-Config-NB, + rrm-Config-r13 RRM-Config-NB OPTIONAL, + as-Context-r13 AS-Context-NB OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEPagingCoverageInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + uePagingCoverageInformation-r13 UEPagingCoverageInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEPagingCoverageInformation-NB-IEs ::= SEQUENCE { +-- the possible value(s) can differ from those sent on Uu + npdcch-NumRepetitionPaging-r13 INTEGER (1..2048) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioAccessCapabilityInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioAccessCapabilityInformation-r13 + UERadioAccessCapabilityInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioAccessCapabilityInformation-NB-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo-r13 OCTET STRING (CONTAINING UE-Capability-NB-r13), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioPagingInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioPagingInformation-r13 UERadioPagingInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioPagingInformation-NB-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r13 OCTET STRING (CONTAINING UE-RadioPagingInfo-NB-r13), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +AS-Config-NB ::= SEQUENCE { + sourceRadioResourceConfig-r13 RadioResourceConfigDedicated-NB-r13, + sourceSecurityAlgorithmConfig-r13 SecurityAlgorithmConfig, + sourceUE-Identity-r13 C-RNTI, + sourceDl-CarrierFreq-r13 CarrierFreq-NB-r13, + ... +} + + +AS-Context-NB ::= SEQUENCE { + reestablishmentInfo-r13 ReestablishmentInfo-NB OPTIONAL, + ... +} + + +ReestablishmentInfo-NB ::= SEQUENCE { + sourcePhysCellId-r13 PhysCellId, + targetCellShortMAC-I-r13 ShortMAC-I, + additionalReestabInfoList-r13 AdditionalReestabInfoList OPTIONAL, + ... +} + + + + +RRM-Config-NB ::= SEQUENCE { + ue-InactiveTime ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, + s25, s30, s40, s50, min1, min1s20, min1s40, + min2, min2s30, min3, min3s30, min4, min5, min6, + min7, min8, min9, min10, min12, min14, min17, min20, + min24, min28, min33, min38, min44, min50, hr1, + hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6, + hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2, + day2hr12, day3, day4, day5, day7, day10, day14, day19, + day24, day30, dayMoreThan30} OPTIONAL, + ... +} + + +END + + diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-14.6.2.asn1 b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-14.6.2.asn1 new file mode 100755 index 0000000000..1c7b8052b4 --- /dev/null +++ b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-14.6.2.asn1 @@ -0,0 +1,14278 @@ + +EUTRA-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + + +BCCH-BCH-Message ::= SEQUENCE { + message BCCH-BCH-MessageType +} + +BCCH-BCH-MessageType ::= MasterInformationBlock + + +BCCH-BCH-Message-MBMS::= SEQUENCE { + message BCCH-BCH-MessageType-MBMS-r14 +} + +BCCH-BCH-MessageType-MBMS-r14 ::= MasterInformationBlock-MBMS-r14 + + +BCCH-DL-SCH-Message ::= SEQUENCE { + message BCCH-DL-SCH-MessageType +} + +BCCH-DL-SCH-MessageType ::= CHOICE { + c1 CHOICE { + systemInformation SystemInformation, + systemInformationBlockType1 SystemInformationBlockType1 + }, + messageClassExtension SEQUENCE {} +} + + +BCCH-DL-SCH-Message-BR ::= SEQUENCE { + message BCCH-DL-SCH-MessageType-BR-r13 +} + +BCCH-DL-SCH-MessageType-BR-r13 ::= CHOICE { + c1 CHOICE { + systemInformation-BR-r13 SystemInformation-BR-r13, + systemInformationBlockType1-BR-r13 SystemInformationBlockType1-BR-r13 + }, + messageClassExtension SEQUENCE {} +} + + +BCCH-DL-SCH-Message-MBMS ::= SEQUENCE { + message BCCH-DL-SCH-MessageType-MBMS-r14 +} + +BCCH-DL-SCH-MessageType-MBMS-r14 ::= CHOICE { + c1 CHOICE { + systemInformation-MBMS-r14 SystemInformation-MBMS-r14, + systemInformationBlockType1-MBMS-r14 SystemInformationBlockType1-MBMS-r14 + }, + messageClassExtension SEQUENCE {} +} + + +MCCH-Message ::= SEQUENCE { + message MCCH-MessageType +} + +MCCH-MessageType ::= CHOICE { + c1 CHOICE { + mbsfnAreaConfiguration-r9 MBSFNAreaConfiguration-r9 + }, + later CHOICE { + c2 CHOICE{ + mbmsCountingRequest-r10 MBMSCountingRequest-r10 + }, + messageClassExtension SEQUENCE {} + } +} + + +PCCH-Message ::= SEQUENCE { + message PCCH-MessageType +} + +PCCH-MessageType ::= CHOICE { + c1 CHOICE { + paging Paging + }, + messageClassExtension SEQUENCE {} +} + + +DL-CCCH-Message ::= SEQUENCE { + message DL-CCCH-MessageType +} + +DL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishment RRCConnectionReestablishment, + rrcConnectionReestablishmentReject RRCConnectionReestablishmentReject, + rrcConnectionReject RRCConnectionReject, + rrcConnectionSetup RRCConnectionSetup + }, + messageClassExtension SEQUENCE {} +} + + +DL-DCCH-Message ::= SEQUENCE { + message DL-DCCH-MessageType +} + +DL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + csfbParametersResponseCDMA2000 CSFBParametersResponseCDMA2000, + dlInformationTransfer DLInformationTransfer, + handoverFromEUTRAPreparationRequest HandoverFromEUTRAPreparationRequest, + mobilityFromEUTRACommand MobilityFromEUTRACommand, + rrcConnectionReconfiguration RRCConnectionReconfiguration, + rrcConnectionRelease RRCConnectionRelease, + securityModeCommand SecurityModeCommand, + ueCapabilityEnquiry UECapabilityEnquiry, + counterCheck CounterCheck, + ueInformationRequest-r9 UEInformationRequest-r9, + loggedMeasurementConfiguration-r10 LoggedMeasurementConfiguration-r10, + rnReconfiguration-r10 RNReconfiguration-r10, + rrcConnectionResume-r13 RRCConnectionResume-r13, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +UL-CCCH-Message ::= SEQUENCE { + message UL-CCCH-MessageType +} + +UL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishmentRequest RRCConnectionReestablishmentRequest, + rrcConnectionRequest RRCConnectionRequest + }, + messageClassExtension CHOICE { + c2 CHOICE { + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-r13 + }, + messageClassExtensionFuture-r13 SEQUENCE {} + } +} + + +UL-DCCH-Message ::= SEQUENCE { + message UL-DCCH-MessageType +} + +UL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + csfbParametersRequestCDMA2000 CSFBParametersRequestCDMA2000, + measurementReport MeasurementReport, + rrcConnectionReconfigurationComplete RRCConnectionReconfigurationComplete, + rrcConnectionReestablishmentComplete RRCConnectionReestablishmentComplete, + rrcConnectionSetupComplete RRCConnectionSetupComplete, + securityModeComplete SecurityModeComplete, + securityModeFailure SecurityModeFailure, + ueCapabilityInformation UECapabilityInformation, + ulHandoverPreparationTransfer ULHandoverPreparationTransfer, + ulInformationTransfer ULInformationTransfer, + counterCheckResponse CounterCheckResponse, + ueInformationResponse-r9 UEInformationResponse-r9, + proximityIndication-r9 ProximityIndication-r9, + rnReconfigurationComplete-r10 RNReconfigurationComplete-r10, + mbmsCountingResponse-r10 MBMSCountingResponse-r10, + interFreqRSTDMeasurementIndication-r10 InterFreqRSTDMeasurementIndication-r10 + }, + messageClassExtension CHOICE { + c2 CHOICE { + ueAssistanceInformation-r11 UEAssistanceInformation-r11, + inDeviceCoexIndication-r11 InDeviceCoexIndication-r11, + mbmsInterestIndication-r11 MBMSInterestIndication-r11, + scgFailureInformation-r12 SCGFailureInformation-r12, + sidelinkUEInformation-r12 SidelinkUEInformation-r12, + wlanConnectionStatusReport-r13 WLANConnectionStatusReport-r13, + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-r13, + spare9 NULL, spare8 NULL, spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtensionFuture-r11 SEQUENCE {} + } +} + + +SC-MCCH-Message-r13 ::= SEQUENCE { + message SC-MCCH-MessageType-r13 +} + + +SC-MCCH-MessageType-r13 ::= CHOICE { + c1 CHOICE { + scptmConfiguration-r13 SCPTMConfiguration-r13 + }, + messageClassExtension CHOICE { + c2 CHOICE { + scptmConfiguration-BR-r14 SCPTMConfiguration-BR-r14, + spare NULL + }, + messageClassExtensionFuture-r14 SEQUENCE {} + } +} + + +CounterCheck ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + counterCheck-r8 CounterCheck-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheck-r8-IEs ::= SEQUENCE { + drb-CountMSB-InfoList DRB-CountMSB-InfoList, + nonCriticalExtension CounterCheck-v8a0-IEs OPTIONAL +} + +CounterCheck-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-CountMSB-InfoList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-CountMSB-Info + +DRB-CountMSB-Info ::= SEQUENCE { + drb-Identity DRB-Identity, + countMSB-Uplink INTEGER(0..33554431), + countMSB-Downlink INTEGER(0..33554431) +} + + +CounterCheckResponse ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + counterCheckResponse-r8 CounterCheckResponse-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheckResponse-r8-IEs ::= SEQUENCE { + drb-CountInfoList DRB-CountInfoList, + nonCriticalExtension CounterCheckResponse-v8a0-IEs OPTIONAL +} + +CounterCheckResponse-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-CountInfoList ::= SEQUENCE (SIZE (0..maxDRB)) OF DRB-CountInfo + +DRB-CountInfo ::= SEQUENCE { + drb-Identity DRB-Identity, + count-Uplink INTEGER(0..4294967295), + count-Downlink INTEGER(0..4294967295) +} + + +CSFBParametersRequestCDMA2000 ::= SEQUENCE { + criticalExtensions CHOICE { + csfbParametersRequestCDMA2000-r8 CSFBParametersRequestCDMA2000-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CSFBParametersRequestCDMA2000-r8-IEs ::= SEQUENCE { + nonCriticalExtension CSFBParametersRequestCDMA2000-v8a0-IEs OPTIONAL +} + +CSFBParametersRequestCDMA2000-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +CSFBParametersResponseCDMA2000 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + csfbParametersResponseCDMA2000-r8 CSFBParametersResponseCDMA2000-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CSFBParametersResponseCDMA2000-r8-IEs ::= SEQUENCE { + rand RAND-CDMA2000, + mobilityParameters MobilityParametersCDMA2000, + nonCriticalExtension CSFBParametersResponseCDMA2000-v8a0-IEs OPTIONAL +} + +CSFBParametersResponseCDMA2000-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +DLInformationTransfer ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + dlInformationTransfer-r8 DLInformationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +DLInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType CHOICE { + dedicatedInfoNAS DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000 + }, + nonCriticalExtension DLInformationTransfer-v8a0-IEs OPTIONAL +} + +DLInformationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +HandoverFromEUTRAPreparationRequest ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + handoverFromEUTRAPreparationRequest-r8 + HandoverFromEUTRAPreparationRequest-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverFromEUTRAPreparationRequest-r8-IEs ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + rand RAND-CDMA2000 OPTIONAL, -- Cond cdma2000-Type + mobilityParameters MobilityParametersCDMA2000 OPTIONAL, -- Cond cdma2000-Type + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v890-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v920-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v920-IEs ::= SEQUENCE { + concurrPrepCDMA2000-HRPD-r9 BOOLEAN OPTIONAL, -- Cond cdma2000-Type + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v1020-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v1020-IEs ::= SEQUENCE { + dualRxTxRedirectIndicator-r10 ENUMERATED {true} OPTIONAL, -- Cond cdma2000-1XRTT + redirectCarrierCDMA2000-1XRTT-r10 CarrierFreqCDMA2000 OPTIONAL, -- Cond dualRxTxRedirect + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +InDeviceCoexIndication-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + inDeviceCoexIndication-r11 InDeviceCoexIndication-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +InDeviceCoexIndication-r11-IEs ::= SEQUENCE { + affectedCarrierFreqList-r11 AffectedCarrierFreqList-r11 OPTIONAL, + tdm-AssistanceInfo-r11 TDM-AssistanceInfo-r11 OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension InDeviceCoexIndication-v11d0-IEs OPTIONAL +} + +InDeviceCoexIndication-v11d0-IEs ::= SEQUENCE { + ul-CA-AssistanceInfo-r11 SEQUENCE { + affectedCarrierFreqCombList-r11 AffectedCarrierFreqCombList-r11 OPTIONAL, + victimSystemType-r11 VictimSystemType-r11 + } OPTIONAL, + nonCriticalExtension InDeviceCoexIndication-v1310-IEs OPTIONAL +} + +InDeviceCoexIndication-v1310-IEs ::= SEQUENCE { + affectedCarrierFreqList-v1310 AffectedCarrierFreqList-v1310 OPTIONAL, + affectedCarrierFreqCombList-r13 AffectedCarrierFreqCombList-r13 OPTIONAL, + nonCriticalExtension InDeviceCoexIndication-v1360-IEs OPTIONAL +} + +InDeviceCoexIndication-v1360-IEs ::= SEQUENCE { + hardwareSharingProblem-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AffectedCarrierFreqList-r11 ::= SEQUENCE (SIZE (1..maxFreqIDC-r11)) OF AffectedCarrierFreq-r11 + +AffectedCarrierFreqList-v1310 ::= SEQUENCE (SIZE (1..maxFreqIDC-r11)) OF AffectedCarrierFreq-v1310 + +AffectedCarrierFreq-r11 ::= SEQUENCE { + carrierFreq-r11 MeasObjectId, + interferenceDirection-r11 ENUMERATED {eutra, other, both, spare} +} + +AffectedCarrierFreq-v1310 ::= SEQUENCE { + carrierFreq-v1310 MeasObjectId-v1310 OPTIONAL +} + +AffectedCarrierFreqCombList-r11 ::= SEQUENCE (SIZE (1..maxCombIDC-r11)) OF AffectedCarrierFreqComb-r11 + +AffectedCarrierFreqCombList-r13 ::= SEQUENCE (SIZE (1..maxCombIDC-r11)) OF AffectedCarrierFreqComb-r13 + +AffectedCarrierFreqComb-r11 ::= SEQUENCE (SIZE (2..maxServCell-r10)) OF MeasObjectId + +AffectedCarrierFreqComb-r13 ::= SEQUENCE (SIZE (2..maxServCell-r13)) OF MeasObjectId-r13 + +TDM-AssistanceInfo-r11 ::= CHOICE { + drx-AssistanceInfo-r11 SEQUENCE { + drx-CycleLength-r11 ENUMERATED {sf40, sf64, sf80, sf128, sf160, + sf256, spare2, spare1}, + drx-Offset-r11 INTEGER (0..255) OPTIONAL, + drx-ActiveTime-r11 ENUMERATED {sf20, sf30, sf40, sf60, sf80, + sf100, spare2, spare1} + }, + idc-SubframePatternList-r11 IDC-SubframePatternList-r11, + ... +} + +IDC-SubframePatternList-r11 ::= SEQUENCE (SIZE (1..maxSubframePatternIDC-r11)) OF IDC-SubframePattern-r11 + +IDC-SubframePattern-r11 ::= CHOICE { + subframePatternFDD-r11 BIT STRING (SIZE (4)), + subframePatternTDD-r11 CHOICE { + subframeConfig0-r11 BIT STRING (SIZE (70)), + subframeConfig1-5-r11 BIT STRING (SIZE (10)), + subframeConfig6-r11 BIT STRING (SIZE (60)) + }, + ... +} + +VictimSystemType-r11 ::= SEQUENCE { + gps-r11 ENUMERATED {true} OPTIONAL, + glonass-r11 ENUMERATED {true} OPTIONAL, + bds-r11 ENUMERATED {true} OPTIONAL, + galileo-r11 ENUMERATED {true} OPTIONAL, + wlan-r11 ENUMERATED {true} OPTIONAL, + bluetooth-r11 ENUMERATED {true} OPTIONAL +} + + +InterFreqRSTDMeasurementIndication-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + interFreqRSTDMeasurementIndication-r10 InterFreqRSTDMeasurementIndication-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +InterFreqRSTDMeasurementIndication-r10-IEs ::= SEQUENCE { + rstd-InterFreqIndication-r10 CHOICE { + start SEQUENCE { + rstd-InterFreqInfoList-r10 RSTD-InterFreqInfoList-r10 + }, + stop NULL + }, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RSTD-InterFreqInfoList-r10 ::= SEQUENCE (SIZE(1..maxRSTD-Freq-r10)) OF RSTD-InterFreqInfo-r10 + +RSTD-InterFreqInfo-r10 ::= SEQUENCE { + carrierFreq-r10 ARFCN-ValueEUTRA, + measPRS-Offset-r10 INTEGER (0..39), + ..., + [[ carrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL + ]] +} + + +LoggedMeasurementConfiguration-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + loggedMeasurementConfiguration-r10 LoggedMeasurementConfiguration-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + + +LoggedMeasurementConfiguration-r10-IEs ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, -- Need OR + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10, + nonCriticalExtension LoggedMeasurementConfiguration-v1080-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1080-IEs ::= SEQUENCE { + lateNonCriticalExtension-r10 OCTET STRING OPTIONAL, + nonCriticalExtension LoggedMeasurementConfiguration-v1130-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1130-IEs ::= SEQUENCE { + plmn-IdentityList-r11 PLMN-IdentityList3-r11 OPTIONAL, -- Need OR + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, -- Need OR + nonCriticalExtension LoggedMeasurementConfiguration-v1250-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1250-IEs ::= SEQUENCE { + targetMBSFN-AreaList-r12 TargetMBSFN-AreaList-r12 OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +TargetMBSFN-AreaList-r12 ::= SEQUENCE (SIZE (0..maxMBSFN-Area)) OF TargetMBSFN-Area-r12 + +TargetMBSFN-Area-r12 ::= SEQUENCE { + mbsfn-AreaId-r12 MBSFN-AreaId-r12 OPTIONAL, -- Need OR + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + ... +} + + +MasterInformationBlock ::= SEQUENCE { + dl-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100}, + phich-Config PHICH-Config, + systemFrameNumber BIT STRING (SIZE (8)), + schedulingInfoSIB1-BR-r13 INTEGER (0..31), + spare BIT STRING (SIZE (5)) +} + + + +MasterInformationBlock-MBMS-r14 ::= SEQUENCE { + dl-Bandwidth-MBMS-r14 ENUMERATED { + n6, n15, n25, n50, n75, n100}, + systemFrameNumber-r14 BIT STRING (SIZE (6)), + additionalNonMBSFNSubframes-r14 INTEGER (0..3), + spare BIT STRING (SIZE (13)) +} + + +MBMSCountingRequest-r10 ::= SEQUENCE { + countingRequestList-r10 CountingRequestList-r10, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CountingRequestList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingRequestInfo-r10 + +CountingRequestInfo-r10 ::= SEQUENCE { + tmgi-r10 TMGI-r9, + ... +} + + +MBMSCountingResponse-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + countingResponse-r10 MBMSCountingResponse-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MBMSCountingResponse-r10-IEs ::= SEQUENCE { + mbsfn-AreaIndex-r10 INTEGER (0..maxMBSFN-Area-1) OPTIONAL, + countingResponseList-r10 CountingResponseList-r10 OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CountingResponseList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingResponseInfo-r10 + +CountingResponseInfo-r10 ::= SEQUENCE { + countingResponseService-r10 INTEGER (0..maxServiceCount-1), + ... +} + + +MBMSInterestIndication-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + interestIndication-r11 MBMSInterestIndication-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MBMSInterestIndication-r11-IEs ::= SEQUENCE { + mbms-FreqList-r11 CarrierFreqListMBMS-r11 OPTIONAL, + mbms-Priority-r11 ENUMERATED {true} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MBMSInterestIndication-v1310-IEs OPTIONAL +} + +MBMSInterestIndication-v1310-IEs ::= SEQUENCE { + mbms-Services-r13 MBMS-ServiceList-r13 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MBSFNAreaConfiguration-r9 ::= SEQUENCE { + commonSF-Alloc-r9 CommonSF-AllocPatternList-r9, + commonSF-AllocPeriod-r9 ENUMERATED { + rf4, rf8, rf16, rf32, rf64, rf128, rf256}, + pmch-InfoList-r9 PMCH-InfoList-r9, + nonCriticalExtension MBSFNAreaConfiguration-v930-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MBSFNAreaConfiguration-v1250-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v1250-IEs ::= SEQUENCE { + pmch-InfoListExt-r12 PMCH-InfoListExt-r12 OPTIONAL, -- Need OR + nonCriticalExtension MBSFNAreaConfiguration-v1430-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v1430-IEs ::= SEQUENCE { + commonSF-Alloc-r14 CommonSF-AllocPatternList-r14, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CommonSF-AllocPatternList-r9 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig + +CommonSF-AllocPatternList-r14 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig-v1430 + + +MeasurementReport ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + measurementReport-r8 MeasurementReport-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MeasurementReport-r8-IEs ::= SEQUENCE { + measResults MeasResults, + nonCriticalExtension MeasurementReport-v8a0-IEs OPTIONAL +} + +MeasurementReport-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MobilityFromEUTRACommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + mobilityFromEUTRACommand-r8 MobilityFromEUTRACommand-r8-IEs, + mobilityFromEUTRACommand-r9 MobilityFromEUTRACommand-r9-IEs, + spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MobilityFromEUTRACommand-r8-IEs ::= SEQUENCE { + cs-FallbackIndicator BOOLEAN, + purpose CHOICE{ + handover Handover, + cellChangeOrder CellChangeOrder + }, + nonCriticalExtension MobilityFromEUTRACommand-v8a0-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MobilityFromEUTRACommand-v8d0-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v8d0-IEs ::= SEQUENCE { + bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +MobilityFromEUTRACommand-r9-IEs ::= SEQUENCE { + cs-FallbackIndicator BOOLEAN, + purpose CHOICE{ + handover Handover, + cellChangeOrder CellChangeOrder, + e-CSFB-r9 E-CSFB-r9, + ... + }, + nonCriticalExtension MobilityFromEUTRACommand-v930-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MobilityFromEUTRACommand-v960-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v960-IEs ::= SEQUENCE { + bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +Handover ::= SEQUENCE { + targetRAT-Type ENUMERATED { + utra, geran, cdma2000-1XRTT, cdma2000-HRPD, + spare4, spare3, spare2, spare1, ...}, + targetRAT-MessageContainer OCTET STRING, + nas-SecurityParamFromEUTRA OCTET STRING (SIZE (1)) OPTIONAL, -- Cond UTRAGERAN + systemInformation SI-OrPSI-GERAN OPTIONAL -- Cond PSHO +} + +CellChangeOrder ::= SEQUENCE { + t304 ENUMERATED { + ms100, ms200, ms500, ms1000, + ms2000, ms4000, ms8000, ms10000-v1310}, + targetRAT-Type CHOICE { + geran SEQUENCE { + physCellId PhysCellIdGERAN, + carrierFreq CarrierFreqGERAN, + networkControlOrder BIT STRING (SIZE (2)) OPTIONAL, -- Need OP + systemInformation SI-OrPSI-GERAN OPTIONAL -- Need OP + }, + ... + } +} + +SI-OrPSI-GERAN ::= CHOICE { + si SystemInfoListGERAN, + psi SystemInfoListGERAN +} + +E-CSFB-r9 ::= SEQUENCE { + messageContCDMA2000-1XRTT-r9 OCTET STRING OPTIONAL, -- Need ON + mobilityCDMA2000-HRPD-r9 ENUMERATED { + handover, redirection + } OPTIONAL, -- Need OP + messageContCDMA2000-HRPD-r9 OCTET STRING OPTIONAL, -- Cond concHO + redirectCarrierCDMA2000-HRPD-r9 CarrierFreqCDMA2000 OPTIONAL -- Cond concRedir +} + + +Paging ::= SEQUENCE { + pagingRecordList PagingRecordList OPTIONAL, -- Need ON + systemInfoModification ENUMERATED {true} OPTIONAL, -- Need ON + etws-Indication ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v890-IEs OPTIONAL +} + +Paging-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension Paging-v920-IEs OPTIONAL +} + +Paging-v920-IEs ::= SEQUENCE { + cmas-Indication-r9 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v1130-IEs OPTIONAL +} + +Paging-v1130-IEs ::= SEQUENCE { + eab-ParamModification-r11 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v1310-IEs OPTIONAL +} + +Paging-v1310-IEs ::= SEQUENCE { + redistributionIndication-r13 ENUMERATED {true} OPTIONAL, --Need ON + systemInfoModification-eDRX-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PagingRecordList ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord + +PagingRecord ::= SEQUENCE { + ue-Identity PagingUE-Identity, + cn-Domain ENUMERATED {ps, cs}, + ... +} + +PagingUE-Identity ::= CHOICE { + s-TMSI S-TMSI, + imsi IMSI, + ... +} + +IMSI ::= SEQUENCE (SIZE (6..21)) OF IMSI-Digit + +IMSI-Digit ::= INTEGER (0..9) + + +ProximityIndication-r9 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + proximityIndication-r9 ProximityIndication-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ProximityIndication-r9-IEs ::= SEQUENCE { + type-r9 ENUMERATED {entering, leaving}, + carrierFreq-r9 CHOICE { + eutra-r9 ARFCN-ValueEUTRA, + utra-r9 ARFCN-ValueUTRA, + ..., + eutra2-v9e0 ARFCN-ValueEUTRA-v9e0 + }, + nonCriticalExtension ProximityIndication-v930-IEs OPTIONAL +} + +ProximityIndication-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RNReconfiguration-r10 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rnReconfiguration-r10 RNReconfiguration-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RNReconfiguration-r10-IEs ::= SEQUENCE { + rn-SystemInfo-r10 RN-SystemInfo-r10 OPTIONAL, -- Need ON + rn-SubframeConfig-r10 RN-SubframeConfig-r10 OPTIONAL, -- Need ON + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RN-SystemInfo-r10 ::= SEQUENCE { + systemInformationBlockType1-r10 OCTET STRING (CONTAINING SystemInformationBlockType1) OPTIONAL, -- Need ON + systemInformationBlockType2-r10 SystemInformationBlockType2 OPTIONAL, -- Need ON + ... +} + + +RNReconfigurationComplete-r10 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rnReconfigurationComplete-r10 RNReconfigurationComplete-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RNReconfigurationComplete-r10-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReconfiguration ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReconfiguration-r8 RRCConnectionReconfiguration-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfiguration-r8-IEs ::= SEQUENCE { + measConfig MeasConfig OPTIONAL, -- Need ON + mobilityControlInfo MobilityControlInfo OPTIONAL, -- Cond HO + dedicatedInfoNASList SEQUENCE (SIZE(1..maxDRB)) OF + DedicatedInfoNAS OPTIONAL, -- Cond nonHO + radioResourceConfigDedicated RadioResourceConfigDedicated OPTIONAL, -- Cond HO-toEUTRA + securityConfigHO SecurityConfigHO OPTIONAL, -- Cond HO + nonCriticalExtension RRCConnectionReconfiguration-v890-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING RRCConnectionReconfiguration-v8m0-IEs) OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v920-IEs OPTIONAL +} + +-- Late non-critical extensions: +RRCConnectionReconfiguration-v8m0-IEs ::= SEQUENCE { + -- Following field is only for pre REL-10 late non-critical extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v10i0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v10i0-IEs ::= SEQUENCE { + antennaInfoDedicatedPCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v10l0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v10l0-IEs ::= SEQUENCE { + mobilityControlInfo-v10l0 MobilityControlInfo-v10l0 OPTIONAL, + sCellToAddModList-v10l0 SCellToAddModList-v10l0 OPTIONAL, -- Need ON + -- Following field is only for late non-critical extensions from REL-10 to REL-11 + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v12f0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v12f0-IEs ::= SEQUENCE { + scg-Configuration-v12f0 SCG-Configuration-v12f0 OPTIONAL, -- Cond nonFullConfig + -- Following field is only for late non-critical extensions from REL-12 + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v1370-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1370-IEs ::= SEQUENCE { + radioResourceConfigDedicated-v1370 RadioResourceConfigDedicated-v1370 OPTIONAL, -- Need ON + sCellToAddModListExt-v1370 SCellToAddModListExt-v1370 OPTIONAL, -- Need ON + -- Following field is only for late non-critical extensions from REL-13 onwards + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +RRCConnectionReconfiguration-v920-IEs ::= SEQUENCE { + otherConfig-r9 OtherConfig-r9 OPTIONAL, -- Need ON + fullConfig-r9 ENUMERATED {true} OPTIONAL, -- Cond HO-Reestab + nonCriticalExtension RRCConnectionReconfiguration-v1020-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1020-IEs ::= SEQUENCE { + sCellToReleaseList-r10 SCellToReleaseList-r10 OPTIONAL, -- Need ON + sCellToAddModList-r10 SCellToAddModList-r10 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1130-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1130-IEs ::= SEQUENCE { + systemInformationBlockType1Dedicated-r11 OCTET STRING (CONTAINING SystemInformationBlockType1) OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1250-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1250-IEs ::= SEQUENCE { + wlan-OffloadInfo-r12 CHOICE { + release NULL, + setup SEQUENCE { + wlan-OffloadConfigDedicated-r12 WLAN-OffloadConfig-r12, + t350-r12 ENUMERATED {min5, min10, min20, min30, min60, + min120, min180, spare1} OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + scg-Configuration-r12 SCG-Configuration-r12 OPTIONAL, -- Cond nonFullConfig + sl-SyncTxControl-r12 SL-SyncTxControl-r12 OPTIONAL, -- Need ON + sl-DiscConfig-r12 SL-DiscConfig-r12 OPTIONAL, -- Need ON + sl-CommConfig-r12 SL-CommConfig-r12 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1310-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1310-IEs ::= SEQUENCE { + sCellToReleaseListExt-r13 SCellToReleaseListExt-r13 OPTIONAL, -- Need ON + sCellToAddModListExt-r13 SCellToAddModListExt-r13 OPTIONAL, -- Need ON + lwa-Configuration-r13 LWA-Configuration-r13 OPTIONAL, -- Need ON + lwip-Configuration-r13 LWIP-Configuration-r13 OPTIONAL, -- Need ON + rclwi-Configuration-r13 RCLWI-Configuration-r13 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1430-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1430-IEs ::= SEQUENCE { + sl-V2X-ConfigDedicated-r14 SL-V2X-ConfigDedicated-r14 OPTIONAL, -- Need ON + sCellToAddModListExt-v1430 SCellToAddModListExt-v1430 OPTIONAL, -- Need ON + perCC-GapIndicationRequest-r14 ENUMERATED{true} OPTIONAL, -- Need ON + systemInformationBlockType2Dedicated-r14 OCTET STRING (CONTAINING SystemInformationBlockType2) OPTIONAL, -- Cond nonHO + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SL-SyncTxControl-r12 ::= SEQUENCE { + networkControlledSyncTx-r12 ENUMERATED {on, off} OPTIONAL -- Need OP +} + +PSCellToAddMod-r12 ::= SEQUENCE { + sCellIndex-r12 SCellIndex-r10, + cellIdentification-r12 SEQUENCE { + physCellId-r12 PhysCellId, + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonPSCell-r12 RadioResourceConfigCommonPSCell-r12 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedPSCell-r12 RadioResourceConfigDedicatedPSCell-r12 OPTIONAL, -- Cond SCellAdd2 + ..., + [[ antennaInfoDedicatedPSCell-v1280 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON + ]], + [[ sCellIndex-r13 SCellIndex-r13 OPTIONAL -- Need ON + ]], + [[ radioResourceConfigDedicatedPSCell-v1370 RadioResourceConfigDedicatedPSCell-v1370 OPTIONAL -- Need ON + ]] +} + +PSCellToAddMod-v12f0 ::= SEQUENCE { + radioResourceConfigCommonPSCell-r12 RadioResourceConfigCommonPSCell-v12f0 OPTIONAL +} + +PSCellToAddMod-v1440 ::= SEQUENCE { + radioResourceConfigCommonPSCell-r14 RadioResourceConfigCommonPSCell-v1440 OPTIONAL +} + +PowerCoordinationInfo-r12 ::= SEQUENCE { + p-MeNB-r12 INTEGER (1..16), + p-SeNB-r12 INTEGER (1..16), + powerControlMode-r12 INTEGER (1..2) +} + +SCellToAddModList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-r10 + +SCellToAddModList-v10l0 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-v10l0 + +SCellToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-r13 + +SCellToAddModListExt-v1370 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-v1370 + +SCellToAddModListExt-v1430 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-v1430 + +SCellToAddMod-r10 ::= SEQUENCE { + sCellIndex-r10 SCellIndex-r10, + cellIdentification-r10 SEQUENCE { + physCellId-r10 PhysCellId, + dl-CarrierFreq-r10 ARFCN-ValueEUTRA + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonSCell-r10 RadioResourceConfigCommonSCell-r10 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedSCell-r10 RadioResourceConfigDedicatedSCell-r10 OPTIONAL, -- Cond SCellAdd2 + ..., + [[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max + ]], + [[ antennaInfoDedicatedSCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON + ]], + [[ srs-SwitchFromServCellIndex-r14 INTEGER (0.. 31) OPTIONAL -- Need ON + ]] +} + +SCellToAddMod-v10l0 ::= SEQUENCE { + radioResourceConfigCommonSCell-v10l0 RadioResourceConfigCommonSCell-v10l0 OPTIONAL +} + +SCellToAddModExt-r13 ::= SEQUENCE { + sCellIndex-r13 SCellIndex-r13, + cellIdentification-r13 SEQUENCE { + physCellId-r13 PhysCellId, + dl-CarrierFreq-r13 ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonSCell-r13 RadioResourceConfigCommonSCell-r10 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedSCell-r13 RadioResourceConfigDedicatedSCell-r10 OPTIONAL, -- Cond SCellAdd2 + antennaInfoDedicatedSCell-r13 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON +} + +SCellToAddModExt-v1370 ::= SEQUENCE { + radioResourceConfigCommonSCell-v1370 RadioResourceConfigCommonSCell-v10l0 OPTIONAL +} + +SCellToAddModExt-v1430 ::= SEQUENCE { + srs-SwitchFromServCellIndex-r14 INTEGER (0.. 31) OPTIONAL, -- Need ON + ... +} + +SCellToReleaseList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellIndex-r10 + +SCellToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellIndex-r13 + +SCG-Configuration-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + scg-ConfigPartMCG-r12 SEQUENCE { + scg-Counter-r12 INTEGER (0.. 65535) OPTIONAL, -- Need ON + powerCoordinationInfo-r12 PowerCoordinationInfo-r12 OPTIONAL, -- Need ON + ... + } OPTIONAL, -- Need ON + scg-ConfigPartSCG-r12 SCG-ConfigPartSCG-r12 OPTIONAL -- Need ON + } +} + +SCG-Configuration-v12f0 ::= CHOICE { + release NULL, + setup SEQUENCE { + scg-ConfigPartSCG-v12f0 SCG-ConfigPartSCG-v12f0 OPTIONAL -- Need ON + } +} + +SCG-ConfigPartSCG-r12 ::= SEQUENCE { + radioResourceConfigDedicatedSCG-r12 RadioResourceConfigDedicatedSCG-r12 OPTIONAL, -- Need ON + sCellToReleaseListSCG-r12 SCellToReleaseList-r10 OPTIONAL, -- Need ON + pSCellToAddMod-r12 PSCellToAddMod-r12 OPTIONAL, -- Need ON + sCellToAddModListSCG-r12 SCellToAddModList-r10 OPTIONAL, -- Need ON + mobilityControlInfoSCG-r12 MobilityControlInfoSCG-r12 OPTIONAL, -- Need ON + ..., + [[ + sCellToReleaseListSCG-Ext-r13 SCellToReleaseListExt-r13 OPTIONAL, -- Need ON + sCellToAddModListSCG-Ext-r13 SCellToAddModListExt-r13 OPTIONAL -- Need ON + ]], + [[ + sCellToAddModListSCG-Ext-v1370 SCellToAddModListExt-v1370 OPTIONAL -- Need ON + ]], + [[ + pSCellToAddMod-v1440 PSCellToAddMod-v1440 OPTIONAL -- Need ON + ]] +} + +SCG-ConfigPartSCG-v12f0 ::= SEQUENCE { + pSCellToAddMod-v12f0 PSCellToAddMod-v12f0 OPTIONAL, -- Need ON + sCellToAddModListSCG-v12f0 SCellToAddModList-v10l0 OPTIONAL -- Need ON +} + +SecurityConfigHO ::= SEQUENCE { + handoverType CHOICE { + intraLTE SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig OPTIONAL, -- Cond fullConfig + keyChangeIndicator BOOLEAN, + nextHopChainingCount NextHopChainingCount + }, + interRAT SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig, + nas-SecurityParamToEUTRA OCTET STRING (SIZE(6)) + } + }, + ... +} + + + +RRCConnectionReconfigurationComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReconfigurationComplete-r8 + RRCConnectionReconfigurationComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfigurationComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReconfigurationComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1020-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1020-IEs ::= SEQUENCE { + rlf-InfoAvailable-r10 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1130-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1250-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1250-IEs ::= SEQUENCE { + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1430-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1430-IEs ::= SEQUENCE { + perCC-GapIndicationList-r14 PerCC-GapIndicationList-r14 OPTIONAL, + numFreqEffective-r14 INTEGER (1..12) OPTIONAL, + numFreqEffectiveReduced-r14 INTEGER (1..12) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishment ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReestablishment-r8 RRCConnectionReestablishment-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishment-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated RadioResourceConfigDedicated, + nextHopChainingCount NextHopChainingCount, + nonCriticalExtension RRCConnectionReestablishment-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishment-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReestablishmentComplete-r8 + RRCConnectionReestablishmentComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReestablishmentComplete-v920-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v920-IEs ::= SEQUENCE { + rlf-InfoAvailable-r9 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1020-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1020-IEs ::= SEQUENCE { + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1130-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1250-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1250-IEs ::= SEQUENCE { + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentReject ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentReject-r8 + RRCConnectionReestablishmentReject-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentReject-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReestablishmentReject-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishmentReject-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentRequest ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentRequest-r8 + RRCConnectionReestablishmentRequest-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentRequest-r8-IEs ::= SEQUENCE { + ue-Identity ReestabUE-Identity, + reestablishmentCause ReestablishmentCause, + spare BIT STRING (SIZE (2)) +} + +ReestabUE-Identity ::= SEQUENCE { + c-RNTI C-RNTI, + physCellId PhysCellId, + shortMAC-I ShortMAC-I +} + +ReestablishmentCause ::= ENUMERATED { + reconfigurationFailure, handoverFailure, + otherFailure, spare1} + + +RRCConnectionReject ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionReject-r8 RRCConnectionReject-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReject-r8-IEs ::= SEQUENCE { + waitTime INTEGER (1..16), + nonCriticalExtension RRCConnectionReject-v8a0-IEs OPTIONAL +} + +RRCConnectionReject-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReject-v1020-IEs OPTIONAL +} + +RRCConnectionReject-v1020-IEs ::= SEQUENCE { + extendedWaitTime-r10 INTEGER (1..1800) OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReject-v1130-IEs OPTIONAL +} + +RRCConnectionReject-v1130-IEs ::= SEQUENCE { + deprioritisationReq-r11 SEQUENCE { + deprioritisationType-r11 ENUMERATED {frequency, e-utra}, + deprioritisationTimer-r11 ENUMERATED {min5, min10, min15, min30} + } OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReject-v1320-IEs OPTIONAL +} + +RRCConnectionReject-v1320-IEs ::= SEQUENCE { + rrc-SuspendIndication-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionRelease ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionRelease-r8 RRCConnectionRelease-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRelease-r8-IEs ::= SEQUENCE { + releaseCause ReleaseCause, + redirectedCarrierInfo RedirectedCarrierInfo OPTIONAL, -- Need ON + idleModeMobilityControlInfo IdleModeMobilityControlInfo OPTIONAL, -- Need OP + nonCriticalExtension RRCConnectionRelease-v890-IEs OPTIONAL +} + +RRCConnectionRelease-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING RRCConnectionRelease-v9e0-IEs) OPTIONAL, + nonCriticalExtension RRCConnectionRelease-v920-IEs OPTIONAL +} + +-- Late non critical extensions +RRCConnectionRelease-v9e0-IEs ::= SEQUENCE { + redirectedCarrierInfo-v9e0 RedirectedCarrierInfo-v9e0 OPTIONAL, -- Cond NoRedirect-r8 + idleModeMobilityControlInfo-v9e0 IdleModeMobilityControlInfo-v9e0 OPTIONAL, -- Cond IdleInfoEUTRA + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +RRCConnectionRelease-v920-IEs ::= SEQUENCE { + cellInfoList-r9 CHOICE { + geran-r9 CellInfoListGERAN-r9, + utra-FDD-r9 CellInfoListUTRA-FDD-r9, + utra-TDD-r9 CellInfoListUTRA-TDD-r9, + ..., + utra-TDD-r10 CellInfoListUTRA-TDD-r10 + } OPTIONAL, -- Cond Redirection + nonCriticalExtension RRCConnectionRelease-v1020-IEs OPTIONAL +} + +RRCConnectionRelease-v1020-IEs ::= SEQUENCE { + extendedWaitTime-r10 INTEGER (1..1800) OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionRelease-v1320-IEs OPTIONAL +} + +RRCConnectionRelease-v1320-IEs::= SEQUENCE { + resumeIdentity-r13 ResumeIdentity-r13 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +ReleaseCause ::= ENUMERATED {loadBalancingTAUrequired, + other, cs-FallbackHighPriority-v1020, rrc-Suspend-v1320} + +RedirectedCarrierInfo ::= CHOICE { + eutra ARFCN-ValueEUTRA, + geran CarrierFreqsGERAN, + utra-FDD ARFCN-ValueUTRA, + utra-TDD ARFCN-ValueUTRA, + cdma2000-HRPD CarrierFreqCDMA2000, + cdma2000-1xRTT CarrierFreqCDMA2000, + ..., + utra-TDD-r10 CarrierFreqListUTRA-TDD-r10 +} + +RedirectedCarrierInfo-v9e0 ::= SEQUENCE { + eutra-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +CarrierFreqListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxFreqUTRA-TDD-r10)) OF ARFCN-ValueUTRA + +IdleModeMobilityControlInfo ::= SEQUENCE { + freqPriorityListEUTRA FreqPriorityListEUTRA OPTIONAL, -- Need ON + freqPriorityListGERAN FreqsPriorityListGERAN OPTIONAL, -- Need ON + freqPriorityListUTRA-FDD FreqPriorityListUTRA-FDD OPTIONAL, -- Need ON + freqPriorityListUTRA-TDD FreqPriorityListUTRA-TDD OPTIONAL, -- Need ON + bandClassPriorityListHRPD BandClassPriorityListHRPD OPTIONAL, -- Need ON + bandClassPriorityList1XRTT BandClassPriorityList1XRTT OPTIONAL, -- Need ON + t320 ENUMERATED { + min5, min10, min20, min30, min60, min120, min180, + spare1} OPTIONAL, -- Need OR + ..., + [[ freqPriorityListExtEUTRA-r12 FreqPriorityListExtEUTRA-r12 OPTIONAL -- Need ON + ]], + [[ freqPriorityListEUTRA-v1310 FreqPriorityListEUTRA-v1310 OPTIONAL, -- Need ON + freqPriorityListExtEUTRA-v1310 FreqPriorityListExtEUTRA-v1310 OPTIONAL -- Need ON + ]] +} + +IdleModeMobilityControlInfo-v9e0 ::= SEQUENCE { + freqPriorityListEUTRA-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v9e0 +} + +FreqPriorityListEUTRA ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA + +FreqPriorityListExtEUTRA-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-r12 + +FreqPriorityListEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v1310 + +FreqPriorityListExtEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v1310 + +FreqPriorityEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityEUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max +} + +FreqPriorityEUTRA-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + cellReselectionPriority-r12 CellReselectionPriority +} + +FreqPriorityEUTRA-v1310 ::= SEQUENCE { + cellReselectionSubPriority-r13 CellReselectionSubPriority-r13 OPTIONAL -- Need ON +} + +FreqsPriorityListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF FreqsPriorityGERAN + +FreqsPriorityGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF FreqPriorityUTRA-FDD + +FreqPriorityUTRA-FDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF FreqPriorityUTRA-TDD + +FreqPriorityUTRA-TDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority +} + +BandClassPriorityListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriorityHRPD + +BandClassPriorityHRPD ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority +} + +BandClassPriorityList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriority1XRTT + +BandClassPriority1XRTT ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority +} + +CellInfoListGERAN-r9 ::= SEQUENCE (SIZE (1..maxCellInfoGERAN-r9)) OF CellInfoGERAN-r9 + +CellInfoGERAN-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdGERAN, + carrierFreq-r9 CarrierFreqGERAN, + systemInformation-r9 SystemInfoListGERAN +} + +CellInfoListUTRA-FDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-FDD-r9 + +CellInfoUTRA-FDD-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdUTRA-FDD, + utra-BCCH-Container-r9 OCTET STRING +} + +CellInfoListUTRA-TDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r9 + +CellInfoUTRA-TDD-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdUTRA-TDD, + utra-BCCH-Container-r9 OCTET STRING +} + +CellInfoListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r10 + +CellInfoUTRA-TDD-r10 ::= SEQUENCE { + physCellId-r10 PhysCellIdUTRA-TDD, + carrierFreq-r10 ARFCN-ValueUTRA, + utra-BCCH-Container-r10 OCTET STRING +} + + +RRCConnectionRequest ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionRequest-r8 RRCConnectionRequest-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRequest-r8-IEs ::= SEQUENCE { + ue-Identity InitialUE-Identity, + establishmentCause EstablishmentCause, + spare BIT STRING (SIZE (1)) +} + +InitialUE-Identity ::= CHOICE { + s-TMSI S-TMSI, + randomValue BIT STRING (SIZE (40)) +} + +EstablishmentCause ::= ENUMERATED { + emergency, highPriorityAccess, mt-Access, mo-Signalling, + mo-Data, delayTolerantAccess-v1020, mo-VoiceCall-v1280, spare1} + + +RRCConnectionResume-r13 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionResume-r13 RRCConnectionResume-r13-IEs, + spare3 NULL, + spare2 NULL, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResume-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated OPTIONAL, -- Need ON + nextHopChainingCount-r13 NextHopChainingCount, + measConfig-r13 MeasConfig OPTIONAL, -- Need ON + antennaInfoDedicatedPCell-r13 AntennaInfoDedicated-v10i0 OPTIONAL, -- Need ON + drb-ContinueROHC-r13 ENUMERATED {true} OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + rrcConnectionResume-v1430-IEs RRCConnectionResume-v1430-IEs OPTIONAL +} + +RRCConnectionResume-v1430-IEs ::= SEQUENCE { + otherConfig-r14 OtherConfig-r9 OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeComplete-r13 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeComplete-r13-IEs ::= SEQUENCE { + selectedPLMN-Identity-r13 INTEGER (1..maxPLMN-r11) OPTIONAL, + dedicatedInfoNAS-r13 DedicatedInfoNAS OPTIONAL, + rlf-InfoAvailable-r13 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r13 ENUMERATED {true} OPTIONAL, + connEstFailInfoAvailable-r13 ENUMERATED {true} OPTIONAL, + mobilityState-r13 ENUMERATED {normal, medium, high, spare} OPTIONAL, + mobilityHistoryAvail-r13 ENUMERATED {true} OPTIONAL, + logMeasAvailableMBSFN-r13 ENUMERATED {true} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeRequest-r13 ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeRequest-r13-IEs ::= SEQUENCE { + resumeIdentity-r13 CHOICE { + resumeID-r13 ResumeIdentity-r13, + truncatedResumeID-r13 BIT STRING (SIZE (24)) + }, + shortResumeMAC-I-r13 BIT STRING (SIZE (16)), + resumeCause-r13 ResumeCause, + spare BIT STRING (SIZE (1)) +} + +ResumeCause ::= ENUMERATED { + emergency, highPriorityAccess, mt-Access, mo-Signalling, + mo-Data, delayTolerantAccess-v1020, mo-VoiceCall-v1280, spare1} + + + +RRCConnectionSetup ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionSetup-r8 RRCConnectionSetup-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetup-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated RadioResourceConfigDedicated, + nonCriticalExtension RRCConnectionSetup-v8a0-IEs OPTIONAL +} + +RRCConnectionSetup-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionSetupComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionSetupComplete-r8 RRCConnectionSetupComplete-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetupComplete-r8-IEs ::= SEQUENCE { + selectedPLMN-Identity INTEGER (1..maxPLMN-r11), + registeredMME RegisteredMME OPTIONAL, + dedicatedInfoNAS DedicatedInfoNAS, + nonCriticalExtension RRCConnectionSetupComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1020-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1020-IEs ::= SEQUENCE { + gummei-Type-r10 ENUMERATED {native, mapped} OPTIONAL, + rlf-InfoAvailable-r10 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + rn-SubframeConfigReq-r10 ENUMERATED {required, notRequired} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1130-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1250-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1250-IEs ::= SEQUENCE { + mobilityState-r12 ENUMERATED {normal, medium, high, spare} OPTIONAL, + mobilityHistoryAvail-r12 ENUMERATED {true} OPTIONAL, + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1320-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1320-IEs ::= SEQUENCE { + ce-ModeB-r13 ENUMERATED {supported} OPTIONAL, + s-TMSI-r13 S-TMSI OPTIONAL, + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL, + up-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, + cp-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1330-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1330-IEs ::= SEQUENCE { + ue-CE-NeedULGaps-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1430-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1430-IEs ::= SEQUENCE { + dcn-ID-r14 INTEGER (0..65535) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RegisteredMME ::= SEQUENCE { + plmn-Identity PLMN-Identity OPTIONAL, + mmegi BIT STRING (SIZE (16)), + mmec MMEC +} + + +SCGFailureInformation-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + scgFailureInformation-r12 SCGFailureInformation-r12-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCGFailureInformation-r12-IEs ::= SEQUENCE { + failureReportSCG-r12 FailureReportSCG-r12 OPTIONAL, + nonCriticalExtension SCGFailureInformation-v1310-IEs OPTIONAL +} + +SCGFailureInformation-v1310-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING SCGFailureInformation-v12d0-IEs) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Late non-critical extensions: +SCGFailureInformation-v12d0-IEs ::= SEQUENCE { + failureReportSCG-v12d0 FailureReportSCG-v12d0 OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +FailureReportSCG-r12 ::= SEQUENCE { + failureType-r12 ENUMERATED {t313-Expiry, randomAccessProblem, + rlc-MaxNumRetx, scg-ChangeFailure }, + measResultServFreqList-r12 MeasResultServFreqList-r10 OPTIONAL, + measResultNeighCells-r12 MeasResultList2EUTRA-r9 OPTIONAL, + ..., + [[ failureType-v1290 ENUMERATED {maxUL-TimingDiff-v1290} OPTIONAL + ]], + [[ measResultServFreqListExt-r13 MeasResultServFreqListExt-r13 OPTIONAL + ]] +} + +FailureReportSCG-v12d0 ::= SEQUENCE { + measResultNeighCells-v12d0 MeasResultList2EUTRA-v9e0 OPTIONAL +} + + +SCPTMConfiguration-r13 ::= SEQUENCE { + sc-mtch-InfoList-r13 SC-MTCH-InfoList-r13, + scptm-NeighbourCellList-r13 SCPTM-NeighbourCellList-r13 OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SCPTMConfiguration-v1340 OPTIONAL +} + +SCPTMConfiguration-v1340 ::= SEQUENCE { + p-b-r13 INTEGER (0..3) OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCPTMConfiguration-BR-r14 ::= SEQUENCE { + sc-mtch-InfoList-r14 SC-MTCH-InfoList-BR-r14, + scptm-NeighbourCellList-r14 SCPTM-NeighbourCellList-r13 OPTIONAL, -- Need OP + p-b-r14 INTEGER (0..3) OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SecurityModeCommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + securityModeCommand-r8 SecurityModeCommand-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeCommand-r8-IEs ::= SEQUENCE { + securityConfigSMC SecurityConfigSMC, + nonCriticalExtension SecurityModeCommand-v8a0-IEs OPTIONAL +} + +SecurityModeCommand-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SecurityConfigSMC ::= SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig, + ... +} + + +SecurityModeComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeComplete-r8 SecurityModeComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension SecurityModeComplete-v8a0-IEs OPTIONAL +} + +SecurityModeComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SecurityModeFailure ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeFailure-r8 SecurityModeFailure-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeFailure-r8-IEs ::= SEQUENCE { + nonCriticalExtension SecurityModeFailure-v8a0-IEs OPTIONAL +} + +SecurityModeFailure-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SidelinkUEInformation-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + sidelinkUEInformation-r12 SidelinkUEInformation-r12-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SidelinkUEInformation-r12-IEs ::= SEQUENCE { + commRxInterestedFreq-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, + commTxResourceReq-r12 SL-CommTxResourceReq-r12 OPTIONAL, + discRxInterest-r12 ENUMERATED {true} OPTIONAL, + discTxResourceReq-r12 INTEGER (1..63) OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SidelinkUEInformation-v1310-IEs OPTIONAL +} + +SidelinkUEInformation-v1310-IEs ::= SEQUENCE { + commTxResourceReqUC-r13 SL-CommTxResourceReq-r12 OPTIONAL, + commTxResourceInfoReqRelay-r13 SEQUENCE { + commTxResourceReqRelay-r13 SL-CommTxResourceReq-r12 OPTIONAL, + commTxResourceReqRelayUC-r13 SL-CommTxResourceReq-r12 OPTIONAL, + ue-Type-r13 ENUMERATED {relayUE, remoteUE} + } OPTIONAL, + discTxResourceReq-v1310 SEQUENCE { + carrierFreqDiscTx-r13 INTEGER (1..maxFreq) OPTIONAL, + discTxResourceReqAddFreq-r13 SL-DiscTxResourceReqPerFreqList-r13 OPTIONAL + } OPTIONAL, + discTxResourceReqPS-r13 SL-DiscTxResourceReq-r13 OPTIONAL, + discRxGapReq-r13 SL-GapRequest-r13 OPTIONAL, + discTxGapReq-r13 SL-GapRequest-r13 OPTIONAL, + discSysInfoReportFreqList-r13 SL-DiscSysInfoReportFreqList-r13 OPTIONAL, + nonCriticalExtension SidelinkUEInformation-v1430-IEs OPTIONAL +} + +SidelinkUEInformation-v1430-IEs ::= SEQUENCE { + v2x-CommRxInterestedFreqList-r14 SL-V2X-CommFreqList-r14 OPTIONAL, + p2x-CommTxType-r14 ENUMERATED {true} OPTIONAL, + v2x-CommTxResourceReq-r14 SL-V2X-CommTxFreqList-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SL-CommTxResourceReq-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, + destinationInfoList-r12 SL-DestinationInfoList-r12 +} + +SL-DiscTxResourceReqPerFreqList-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-DiscTxResourceReq-r13 + +SL-DiscTxResourceReq-r13 ::= SEQUENCE { + carrierFreqDiscTx-r13 INTEGER (1..maxFreq) OPTIONAL, + discTxResourceReq-r13 INTEGER (1..63) +} + +SL-DestinationInfoList-r12 ::= SEQUENCE (SIZE (1..maxSL-Dest-r12)) OF SL-DestinationIdentity-r12 + +SL-DestinationIdentity-r12 ::= BIT STRING (SIZE (24)) + +SL-DiscSysInfoReportFreqList-r13 ::= SEQUENCE (SIZE (1.. maxSL-DiscSysInfoReportFreq-r13)) OF SL-DiscSysInfoReport-r13 + +SL-V2X-CommFreqList-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF INTEGER (0..maxFreqV2X-1-r14) + +SL-V2X-CommTxFreqList-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF SL-V2X-CommTxResourceReq-r14 + +SL-V2X-CommTxResourceReq-r14 ::= SEQUENCE { + carrierFreqCommTx-r14 INTEGER (0.. maxFreqV2X-1-r14) OPTIONAL, + v2x-TypeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, + v2x-DestinationInfoList-r14 SL-DestinationInfoList-r12 OPTIONAL +} + + +SystemInformation-BR-r13 ::= SystemInformation + +SystemInformation-MBMS-r14 ::= SystemInformation + +SystemInformation ::= SEQUENCE { + criticalExtensions CHOICE { + systemInformation-r8 SystemInformation-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} +SystemInformation-r8-IEs ::= SEQUENCE { + sib-TypeAndInfo SEQUENCE (SIZE (1..maxSIB)) OF CHOICE { + sib2 SystemInformationBlockType2, + sib3 SystemInformationBlockType3, + sib4 SystemInformationBlockType4, + sib5 SystemInformationBlockType5, + sib6 SystemInformationBlockType6, + sib7 SystemInformationBlockType7, + sib8 SystemInformationBlockType8, + sib9 SystemInformationBlockType9, + sib10 SystemInformationBlockType10, + sib11 SystemInformationBlockType11, + ..., + sib12-v920 SystemInformationBlockType12-r9, + sib13-v920 SystemInformationBlockType13-r9, + sib14-v1130 SystemInformationBlockType14-r11, + sib15-v1130 SystemInformationBlockType15-r11, + sib16-v1130 SystemInformationBlockType16-r11, + sib17-v1250 SystemInformationBlockType17-r12, + sib18-v1250 SystemInformationBlockType18-r12, + sib19-v1250 SystemInformationBlockType19-r12, + sib20-v1310 SystemInformationBlockType20-r13, + sib21-v1430 SystemInformationBlockType21-r14 + }, + nonCriticalExtension SystemInformation-v8a0-IEs OPTIONAL +} + +SystemInformation-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType1-BR-r13 ::= SystemInformationBlockType1 + +SystemInformationBlockType1 ::= SEQUENCE { + cellAccessRelatedInfo SEQUENCE { + plmn-IdentityList PLMN-IdentityList, + trackingAreaCode TrackingAreaCode, + cellIdentity CellIdentity, + cellBarred ENUMERATED {barred, notBarred}, + intraFreqReselection ENUMERATED {allowed, notAllowed}, + csg-Indication BOOLEAN, + csg-Identity CSG-Identity OPTIONAL -- Need OR + }, + cellSelectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + q-RxLevMinOffset INTEGER (1..8) OPTIONAL -- Need OP + }, + p-Max P-Max OPTIONAL, -- Need OP + freqBandIndicator FreqBandIndicator, + schedulingInfoList SchedulingInfoList, + tdd-Config TDD-Config OPTIONAL, -- Cond TDD + si-WindowLength ENUMERATED { + ms1, ms2, ms5, ms10, ms15, ms20, + ms40}, + systemInfoValueTag INTEGER (0..31), + nonCriticalExtension SystemInformationBlockType1-v890-IEs OPTIONAL +} + +SystemInformationBlockType1-v890-IEs::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType1-v8h0-IEs) OPTIONAL, + nonCriticalExtension SystemInformationBlockType1-v920-IEs OPTIONAL +} + +-- Late non critical extensions +SystemInformationBlockType1-v8h0-IEs ::= SEQUENCE { + multiBandInfoList MultiBandInfoList OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType1-v9e0-IEs ::= SEQUENCE { + freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL, -- Cond FBI-max + multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL, -- Cond mFBI-max + nonCriticalExtension SystemInformationBlockType1-v10j0-IEs OPTIONAL +} + +SystemInformationBlockType1-v10j0-IEs ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType1-v10l0-IEs ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +SystemInformationBlockType1-v920-IEs ::= SEQUENCE { + ims-EmergencySupport-r9 ENUMERATED {true} OPTIONAL, -- Need OR + cellSelectionInfo-v920 CellSelectionInfo-v920 OPTIONAL, -- Cond RSRQ + nonCriticalExtension SystemInformationBlockType1-v1130-IEs OPTIONAL +} + +SystemInformationBlockType1-v1130-IEs ::= SEQUENCE { + tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD-OR + cellSelectionInfo-v1130 CellSelectionInfo-v1130 OPTIONAL, -- Cond WB-RSRQ + nonCriticalExtension SystemInformationBlockType1-v1250-IEs OPTIONAL +} + +SystemInformationBlockType1-v1250-IEs ::= SEQUENCE { + cellAccessRelatedInfo-v1250 SEQUENCE { + category0Allowed-r12 ENUMERATED {true} OPTIONAL -- Need OP + }, + cellSelectionInfo-v1250 CellSelectionInfo-v1250 OPTIONAL, -- Cond RSRQ2 + freqBandIndicatorPriority-r12 ENUMERATED {true} OPTIONAL, -- Cond mFBI + nonCriticalExtension SystemInformationBlockType1-v1310-IEs OPTIONAL +} + +SystemInformationBlockType1-v1310-IEs ::= SEQUENCE { + hyperSFN-r13 BIT STRING (SIZE (10)) OPTIONAL, -- Need OR + eDRX-Allowed-r13 ENUMERATED {true} OPTIONAL, -- Need OR + cellSelectionInfoCE-r13 CellSelectionInfoCE-r13 OPTIONAL, -- Need OP + bandwidthReducedAccessRelatedInfo-r13 SEQUENCE { + si-WindowLength-BR-r13 ENUMERATED { + ms20, ms40, ms60, ms80, ms120, + ms160, ms200, spare}, + si-RepetitionPattern-r13 ENUMERATED {everyRF, every2ndRF, every4thRF, + every8thRF}, + schedulingInfoList-BR-r13 SchedulingInfoList-BR-r13 OPTIONAL, -- Cond SI-BR + fdd-DownlinkOrTddSubframeBitmapBR-r13 CHOICE { + subframePattern10-r13 BIT STRING (SIZE (10)), + subframePattern40-r13 BIT STRING (SIZE (40)) + } OPTIONAL, -- Need OP + fdd-UplinkSubframeBitmapBR-r13 BIT STRING (SIZE (10)) OPTIONAL, -- Need OP + startSymbolBR-r13 INTEGER (1..4), + si-HoppingConfigCommon-r13 ENUMERATED {on,off}, + si-ValidityTime-r13 ENUMERATED {true} OPTIONAL, -- Need OP + systemInfoValueTagList-r13 SystemInfoValueTagList-r13 OPTIONAL -- Need OR + } OPTIONAL, -- Cond BW-reduced + nonCriticalExtension SystemInformationBlockType1-v1320-IEs OPTIONAL +} + +SystemInformationBlockType1-v1320-IEs ::= SEQUENCE { + freqHoppingParametersDL-r13 SEQUENCE { + mpdcch-pdsch-HoppingNB-r13 ENUMERATED {nb2, nb4} OPTIONAL, -- Need OR + interval-DLHoppingConfigCommonModeA-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-r13 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL, -- Need OR + interval-DLHoppingConfigCommonModeB-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int2, int4, int8, int16}, + interval-TDD-r13 ENUMERATED { int5, int10, int20, int40} + } OPTIONAL, -- Need OR + mpdcch-pdsch-HoppingOffset-r13 INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL -- Need OR + } OPTIONAL, -- Cond Hopping + nonCriticalExtension SystemInformationBlockType1-v1350-IEs OPTIONAL +} + +SystemInformationBlockType1-v1350-IEs ::= SEQUENCE { + cellSelectionInfoCE1-r13 CellSelectionInfoCE1-r13 OPTIONAL, -- Need OP + nonCriticalExtension SystemInformationBlockType1-v1360-IEs OPTIONAL +} + +SystemInformationBlockType1-v1360-IEs ::= SEQUENCE { + cellSelectionInfoCE1-v1360 CellSelectionInfoCE1-v1360 OPTIONAL, -- Cond QrxlevminCE1 + nonCriticalExtension SystemInformationBlockType1-v1430-IEs OPTIONAL +} + +SystemInformationBlockType1-v1430-IEs ::= SEQUENCE { + eCallOverIMS-Support-r14 ENUMERATED {true} OPTIONAL, -- Need OR + tdd-Config-v1430 TDD-Config-v1430 OPTIONAL, -- Cond TDD-OR + cellAccessRelatedInfoList-r14 SEQUENCE (SIZE (1..maxPLMN-1-r14)) OF + CellAccessRelatedInfo-r14 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v1450-IEs OPTIONAL +} + +SystemInformationBlockType1-v1450-IEs ::= SEQUENCE { + tdd-Config-v1450 TDD-Config-v1450 OPTIONAL, -- Cond TDD-OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PLMN-IdentityList ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo + +PLMN-IdentityInfo ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellReservedForOperatorUse ENUMERATED {reserved, notReserved} +} + +SchedulingInfoList ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo + +SchedulingInfo ::= SEQUENCE { + si-Periodicity ENUMERATED { + rf8, rf16, rf32, rf64, rf128, rf256, rf512}, + sib-MappingInfo SIB-MappingInfo +} + +SchedulingInfoList-BR-r13 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo-BR-r13 + +SchedulingInfo-BR-r13 ::= SEQUENCE { + si-Narrowband-r13 INTEGER (1..maxAvailNarrowBands-r13), + si-TBS-r13 ENUMERATED {b152, b208, b256, b328, b408, b504, b600, b712, + b808, b936} +} + +SIB-MappingInfo ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type + +SIB-Type ::= ENUMERATED { + sibType3, sibType4, sibType5, sibType6, + sibType7, sibType8, sibType9, sibType10, + sibType11, sibType12-v920, sibType13-v920, + sibType14-v1130, sibType15-v1130, + sibType16-v1130, sibType17-v1250, sibType18-v1250, + ..., sibType19-v1250, sibType20-v1310, sibType21-v1430} + +SystemInfoValueTagList-r13 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SystemInfoValueTagSI-r13 + +SystemInfoValueTagSI-r13 ::= INTEGER (0..3) + +CellSelectionInfo-v920 ::= SEQUENCE { + q-QualMin-r9 Q-QualMin-r9, + q-QualMinOffset-r9 INTEGER (1..8) OPTIONAL -- Need OP +} + +CellSelectionInfo-v1130 ::= SEQUENCE { + q-QualMinWB-r11 Q-QualMin-r9 +} + +CellSelectionInfo-v1250 ::= SEQUENCE { + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 +} + +CellAccessRelatedInfo-r14 ::= SEQUENCE { + plmn-IdentityList-r14 PLMN-IdentityList, + trackingAreaCode-r14 TrackingAreaCode, + cellIdentity-r14 CellIdentity +} + + +SystemInformationBlockType1-MBMS-r14 ::= SEQUENCE { + cellAccessRelatedInfo-r14 SEQUENCE { + plmn-IdentityList-r14 PLMN-IdentityList-MBMS-r14, + trackingAreaCode-r14 TrackingAreaCode, + cellIdentity-r14 CellIdentity + }, + freqBandIndicator-r14 FreqBandIndicator-r11, + multiBandInfoList-r14 MultiBandInfoList-r11 OPTIONAL, -- Need OR + schedulingInfoList-MBMS-r14 SchedulingInfoList-MBMS-r14, + si-WindowLength-r14 ENUMERATED { + ms1, ms2, ms5, ms10, ms15, ms20,ms40, ms80}, + systemInfoValueTag-r14 INTEGER (0..31), + nonMBSFN-SubframeConfig-r14 NonMBSFN-SubframeConfig-r14 OPTIONAL, --Need OR + pdsch-ConfigCommon-r14 PDSCH-ConfigCommon, + systemInformationBlockType13-r14 SystemInformationBlockType13-r9 OPTIONAL, --Need OR + cellAccessRelatedInfoList-r14 SEQUENCE (SIZE (1..maxPLMN-1-r14)) OF + CellAccessRelatedInfo-r14 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PLMN-IdentityList-MBMS-r14 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-Identity + +SchedulingInfoList-MBMS-r14 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo-MBMS-r14 + +SchedulingInfo-MBMS-r14 ::= SEQUENCE { + si-Periodicity-r14 ENUMERATED { + rf16, rf32, rf64, rf128, rf256, rf512}, + sib-MappingInfo-r14 SIB-MappingInfo-MBMS-r14 +} + +SIB-MappingInfo-MBMS-r14 ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type-MBMS-r14 + +SIB-Type-MBMS-r14 ::= ENUMERATED { + sibType10, sibType11, sibType12-v920, sibType13-v920, + sibType15-v1130, sibType16-v1130, ...} + + +NonMBSFN-SubframeConfig-r14 ::= SEQUENCE { + radioFrameAllocationPeriod-r14 ENUMERATED {rf4, rf8, rf16, rf32, rf64, rf128, rf512}, + radioFrameAllocationOffset-r14 INTEGER (0..7), + subframeAllocation-r14 BIT STRING (SIZE(9)) +} + + +UEAssistanceInformation-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ueAssistanceInformation-r11 UEAssistanceInformation-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEAssistanceInformation-r11-IEs ::= SEQUENCE { + powerPrefIndication-r11 ENUMERATED {normal, lowPowerConsumption} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UEAssistanceInformation-v1430-IEs OPTIONAL +} + +UEAssistanceInformation-v1430-IEs ::= SEQUENCE { + bw-Preference-r14 BW-Preference-r14 OPTIONAL, + sps-AssistanceInformation-r14 SEQUENCE { + trafficPatternInfoListSL-r14 TrafficPatternInfoList-r14 OPTIONAL, + trafficPatternInfoListUL-r14 TrafficPatternInfoList-r14 OPTIONAL + } OPTIONAL, + rlm-Report-r14 SEQUENCE { + rlm-Event-r14 ENUMERATED {earlyOutOfSync, earlyInSync}, + excessRep-MPDCCH-r14 ENUMERATED {excessRep1, excessRep2} OPTIONAL + } OPTIONAL, delayBudgetReport-r14 DelayBudgetReport-r14 OPTIONAL, + nonCriticalExtension UEAssistanceInformation-v1450-IEs OPTIONAL +} + +UEAssistanceInformation-v1450-IEs ::= SEQUENCE { + overheatingAssistance-r14 OverheatingAssistance-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +BW-Preference-r14 ::= SEQUENCE { + dl-Preference-r14 ENUMERATED {mhz1dot4, mhz5, mhz20 } OPTIONAL, + ul-Preference-r14 ENUMERATED {mhz1dot4, mhz5} OPTIONAL +} + +TrafficPatternInfoList-r14 ::= SEQUENCE (SIZE (1..maxTrafficPattern-r14)) OF TrafficPatternInfo-r14 + +TrafficPatternInfo-r14 ::= SEQUENCE { + trafficPeriodicity-r14 ENUMERATED { + sf20, sf50, sf100, sf200, sf300, sf400, sf500, + sf600, sf700, sf800, sf900, sf1000}, + timingOffset-r14 INTEGER (0..10239), + priorityInfoSL-r14 SL-Priority-r13 OPTIONAL, + logicalChannelIdentityUL-r14 INTEGER (3..10) OPTIONAL, + messageSize-r14 BIT STRING (SIZE (6)) +} + +DelayBudgetReport-r14::= CHOICE { + type1 ENUMERATED { + msMinus1280, msMinus640, msMinus320, msMinus160, + msMinus80, msMinus60, msMinus40, msMinus20, ms0, ms20, ms40, ms60, ms80, ms160, ms320, ms640, ms1280}, + + type2 ENUMERATED { + msMinus192, msMinus168,msMinus144, msMinus120, + msMinus96, msMinus72, msMinus48, msMinus24, ms0, ms24, ms48, ms72, ms96, ms120, ms144, ms168, ms192} +} + +OverheatingAssistance-r14 ::= SEQUENCE { + reducedUE-Category SEQUENCE { + reducedUE-CategoryDL INTEGER (0..19), + reducedUE-CategoryUL INTEGER (0..21) + } OPTIONAL, + reducedMaxCCs SEQUENCE { + reducedCCsDL INTEGER (0..31), + reducedCCsUL INTEGER (0..31) + } OPTIONAL +} + + +UECapabilityEnquiry ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueCapabilityEnquiry-r8 UECapabilityEnquiry-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityEnquiry-r8-IEs ::= SEQUENCE { + ue-CapabilityRequest UE-CapabilityRequest, + nonCriticalExtension UECapabilityEnquiry-v8a0-IEs OPTIONAL +} + +UECapabilityEnquiry-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UECapabilityEnquiry-v1180-IEs OPTIONAL +} + +UECapabilityEnquiry-v1180-IEs ::= SEQUENCE { + requestedFrequencyBands-r11 SEQUENCE (SIZE (1..16)) OF FreqBandIndicator-r11 OPTIONAL, + nonCriticalExtension UECapabilityEnquiry-v1310-IEs OPTIONAL +} + +UECapabilityEnquiry-v1310-IEs ::= SEQUENCE { + requestReducedFormat-r13 ENUMERATED {true} OPTIONAL, -- Need ON + requestSkipFallbackComb-r13 ENUMERATED {true} OPTIONAL, -- Need ON + requestedMaxCCsDL-r13 INTEGER (2..32) OPTIONAL, -- Need ON + requestedMaxCCsUL-r13 INTEGER (2..32) OPTIONAL, -- Need ON + requestReducedIntNonContComb-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension UECapabilityEnquiry-v1430-IEs OPTIONAL +} + +UECapabilityEnquiry-v1430-IEs ::= SEQUENCE { + requestDiffFallbackCombList-r14 BandCombinationList-r14 OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-CapabilityRequest ::= SEQUENCE (SIZE (1..maxRAT-Capabilities)) OF RAT-Type + + +UECapabilityInformation ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + ueCapabilityInformation-r8 UECapabilityInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityInformation-r8-IEs ::= SEQUENCE { + ue-CapabilityRAT-ContainerList UE-CapabilityRAT-ContainerList, + nonCriticalExtension UECapabilityInformation-v8a0-IEs OPTIONAL +} + +UECapabilityInformation-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UECapabilityInformation-v1250-IEs OPTIONAL +} + +UECapabilityInformation-v1250-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r12 UE-RadioPagingInfo-r12 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEInformationRequest-r9 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueInformationRequest-r9 UEInformationRequest-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEInformationRequest-r9-IEs ::= SEQUENCE { + rach-ReportReq-r9 BOOLEAN, + rlf-ReportReq-r9 BOOLEAN, + nonCriticalExtension UEInformationRequest-v930-IEs OPTIONAL +} + +UEInformationRequest-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UEInformationRequest-v1020-IEs OPTIONAL +} + +UEInformationRequest-v1020-IEs ::= SEQUENCE { + logMeasReportReq-r10 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension UEInformationRequest-v1130-IEs OPTIONAL +} + +UEInformationRequest-v1130-IEs ::= SEQUENCE { + connEstFailReportReq-r11 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension UEInformationRequest-v1250-IEs OPTIONAL +} + +UEInformationRequest-v1250-IEs ::= SEQUENCE { + mobilityHistoryReportReq-r12 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEInformationResponse-r9 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueInformationResponse-r9 UEInformationResponse-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEInformationResponse-r9-IEs ::= SEQUENCE { + rach-Report-r9 SEQUENCE { + numberOfPreamblesSent-r9 NumberOfPreamblesSent-r11, + contentionDetected-r9 BOOLEAN + } OPTIONAL, + rlf-Report-r9 RLF-Report-r9 OPTIONAL, + nonCriticalExtension UEInformationResponse-v930-IEs OPTIONAL +} + +-- Late non critical extensions +UEInformationResponse-v9e0-IEs ::= SEQUENCE { + rlf-Report-v9e0 RLF-Report-v9e0 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +UEInformationResponse-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING UEInformationResponse-v9e0-IEs) OPTIONAL, + nonCriticalExtension UEInformationResponse-v1020-IEs OPTIONAL +} + +UEInformationResponse-v1020-IEs ::= SEQUENCE { + logMeasReport-r10 LogMeasReport-r10 OPTIONAL, + nonCriticalExtension UEInformationResponse-v1130-IEs OPTIONAL +} + +UEInformationResponse-v1130-IEs ::= SEQUENCE { + connEstFailReport-r11 ConnEstFailReport-r11 OPTIONAL, + nonCriticalExtension UEInformationResponse-v1250-IEs OPTIONAL +} + +UEInformationResponse-v1250-IEs ::= SEQUENCE { + mobilityHistoryReport-r12 MobilityHistoryReport-r12 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RLF-Report-r9 ::= SEQUENCE { + measResultLastServCell-r9 SEQUENCE { + rsrpResult-r9 RSRP-Range, + rsrqResult-r9 RSRQ-Range OPTIONAL + }, + measResultNeighCells-r9 SEQUENCE { + measResultListEUTRA-r9 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r9 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r9 MeasResultListGERAN OPTIONAL, + measResultsCDMA2000-r9 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + ..., + [[ locationInfo-r10 LocationInfo-r10 OPTIONAL, + failedPCellId-r10 CHOICE { + cellGlobalId-r10 CellGlobalIdEUTRA, + pci-arfcn-r10 SEQUENCE { + physCellId-r10 PhysCellId, + carrierFreq-r10 ARFCN-ValueEUTRA + } + } OPTIONAL, + reestablishmentCellId-r10 CellGlobalIdEUTRA OPTIONAL, + timeConnFailure-r10 INTEGER (0..1023) OPTIONAL, + connectionFailureType-r10 ENUMERATED {rlf, hof} OPTIONAL, + previousPCellId-r10 CellGlobalIdEUTRA OPTIONAL + ]], + [[ failedPCellId-v1090 SEQUENCE { + carrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 + } OPTIONAL + ]], + [[ basicFields-r11 SEQUENCE { + c-RNTI-r11 C-RNTI, + rlf-Cause-r11 ENUMERATED { + t310-Expiry, randomAccessProblem, + rlc-MaxNumRetx, t312-Expiry-r12}, + timeSinceFailure-r11 TimeSinceFailure-r11 + } OPTIONAL, + previousUTRA-CellId-r11 SEQUENCE { + carrierFreq-r11 ARFCN-ValueUTRA, + physCellId-r11 CHOICE { + fdd-r11 PhysCellIdUTRA-FDD, + tdd-r11 PhysCellIdUTRA-TDD + }, + cellGlobalId-r11 CellGlobalIdUTRA OPTIONAL + } OPTIONAL, + selectedUTRA-CellId-r11 SEQUENCE { + carrierFreq-r11 ARFCN-ValueUTRA, + physCellId-r11 CHOICE { + fdd-r11 PhysCellIdUTRA-FDD, + tdd-r11 PhysCellIdUTRA-TDD + } + } OPTIONAL + ]], + [[ failedPCellId-v1250 SEQUENCE { + tac-FailedPCell-r12 TrackingAreaCode + } OPTIONAL, + measResultLastServCell-v1250 RSRQ-Range-v1250 OPTIONAL, + lastServCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL + ]], + [[ drb-EstablishedWithQCI-1-r13 ENUMERATED {qci1} OPTIONAL + ]], + [[ measResultLastServCell-v1360 RSRP-Range-v1360 OPTIONAL + ]] +} + +RLF-Report-v9e0 ::= SEQUENCE { + measResultListEUTRA-v9e0 MeasResultList2EUTRA-v9e0 +} + +MeasResultList2EUTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-r9 + +MeasResultList2EUTRA-v9e0 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v9e0 + +MeasResultList2EUTRA-v1250 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v1250 + +MeasResult2EUTRA-r9 ::= SEQUENCE { + carrierFreq-r9 ARFCN-ValueEUTRA, + measResultList-r9 MeasResultListEUTRA +} + +MeasResult2EUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL +} + +MeasResult2EUTRA-v1250 ::= SEQUENCE { + rsrq-Type-r12 RSRQ-Type-r12 OPTIONAL +} + +MeasResultList2UTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2UTRA-r9 + +MeasResult2UTRA-r9 ::= SEQUENCE { + carrierFreq-r9 ARFCN-ValueUTRA, + measResultList-r9 MeasResultListUTRA +} + +MeasResultList2CDMA2000-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2CDMA2000-r9 + +MeasResult2CDMA2000-r9 ::= SEQUENCE { + carrierFreq-r9 CarrierFreqCDMA2000, + measResultList-r9 MeasResultsCDMA2000 +} + +LogMeasReport-r10 ::= SEQUENCE { + absoluteTimeStamp-r10 AbsoluteTimeInfo-r10, + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + logMeasInfoList-r10 LogMeasInfoList-r10, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + ... +} + +LogMeasInfoList-r10 ::= SEQUENCE (SIZE (1..maxLogMeasReport-r10)) OF LogMeasInfo-r10 + +LogMeasInfo-r10 ::= SEQUENCE { + locationInfo-r10 LocationInfo-r10 OPTIONAL, + relativeTimeStamp-r10 INTEGER (0..7200), + servCellIdentity-r10 CellGlobalIdEUTRA, + measResultServCell-r10 SEQUENCE { + rsrpResult-r10 RSRP-Range, + rsrqResult-r10 RSRQ-Range + }, + measResultNeighCells-r10 SEQUENCE { + measResultListEUTRA-r10 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r10 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r10 MeasResultList2GERAN-r10 OPTIONAL, + measResultListCDMA2000-r10 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + ..., + [[ measResultListEUTRA-v1090 MeasResultList2EUTRA-v9e0 OPTIONAL + ]], + [[ measResultListMBSFN-r12 MeasResultListMBSFN-r12 OPTIONAL, + measResultServCell-v1250 RSRQ-Range-v1250 OPTIONAL, + servCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL + ]], + [[ inDeviceCoexDetected-r13 ENUMERATED {true} OPTIONAL + ]], + [[ measResultServCell-v1360 RSRP-Range-v1360 OPTIONAL + ]] +} + +MeasResultListMBSFN-r12 ::= SEQUENCE (SIZE (1..maxMBSFN-Area)) OF MeasResultMBSFN-r12 + +MeasResultMBSFN-r12 ::= SEQUENCE { + mbsfn-Area-r12 SEQUENCE { + mbsfn-AreaId-r12 MBSFN-AreaId-r12, + carrierFreq-r12 ARFCN-ValueEUTRA-r9 + }, + rsrpResultMBSFN-r12 RSRP-Range, + rsrqResultMBSFN-r12 MBSFN-RSRQ-Range-r12, + signallingBLER-Result-r12 BLER-Result-r12 OPTIONAL, + dataBLER-MCH-ResultList-r12 DataBLER-MCH-ResultList-r12 OPTIONAL, + ... +} + +DataBLER-MCH-ResultList-r12 ::= SEQUENCE (SIZE (1.. maxPMCH-PerMBSFN)) OF DataBLER-MCH-Result-r12 + +DataBLER-MCH-Result-r12 ::= SEQUENCE { + mch-Index-r12 INTEGER (1..maxPMCH-PerMBSFN), + dataBLER-Result-r12 BLER-Result-r12 +} + +BLER-Result-r12 ::= SEQUENCE { + bler-r12 BLER-Range-r12, + blocksReceived-r12 SEQUENCE { + n-r12 BIT STRING (SIZE (3)), + m-r12 BIT STRING (SIZE (8)) + } +} + +BLER-Range-r12 ::= INTEGER(0..31) + +MeasResultList2GERAN-r10 ::= SEQUENCE (SIZE (1..maxCellListGERAN)) OF MeasResultListGERAN + +ConnEstFailReport-r11 ::= SEQUENCE { + failedCellId-r11 CellGlobalIdEUTRA, + locationInfo-r11 LocationInfo-r10 OPTIONAL, + measResultFailedCell-r11 SEQUENCE { + rsrpResult-r11 RSRP-Range, + rsrqResult-r11 RSRQ-Range OPTIONAL + }, + measResultNeighCells-r11 SEQUENCE { + measResultListEUTRA-r11 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r11 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r11 MeasResultListGERAN OPTIONAL, + measResultsCDMA2000-r11 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + numberOfPreamblesSent-r11 NumberOfPreamblesSent-r11, + contentionDetected-r11 BOOLEAN, + maxTxPowerReached-r11 BOOLEAN, + timeSinceFailure-r11 TimeSinceFailure-r11, + measResultListEUTRA-v1130 MeasResultList2EUTRA-v9e0 OPTIONAL, + ..., + [[ measResultFailedCell-v1250 RSRQ-Range-v1250 OPTIONAL, + failedCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL + ]], + [[ measResultFailedCell-v1360 RSRP-Range-v1360 OPTIONAL + ]] +} + +NumberOfPreamblesSent-r11::= INTEGER (1..200) + +TimeSinceFailure-r11 ::= INTEGER (0..172800) + +MobilityHistoryReport-r12 ::= VisitedCellInfoList-r12 + + +ULHandoverPreparationTransfer ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulHandoverPreparationTransfer-r8 ULHandoverPreparationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULHandoverPreparationTransfer-r8-IEs ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + meid BIT STRING (SIZE (56)) OPTIONAL, + dedicatedInfo DedicatedInfoCDMA2000, + nonCriticalExtension ULHandoverPreparationTransfer-v8a0-IEs OPTIONAL +} + +ULHandoverPreparationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +ULInformationTransfer ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulInformationTransfer-r8 ULInformationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType CHOICE { + dedicatedInfoNAS DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000 + }, + nonCriticalExtension ULInformationTransfer-v8a0-IEs OPTIONAL +} + +ULInformationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +WLANConnectionStatusReport-r13 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + wlanConnectionStatusReport-r13 WLANConnectionStatusReport-r13-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +WLANConnectionStatusReport-r13-IEs ::= SEQUENCE { + wlan-Status-r13 WLAN-Status-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension WLANConnectionStatusReport-v1430-IEs OPTIONAL +} + +WLANConnectionStatusReport-v1430-IEs ::= SEQUENCE { + wlan-Status-v1430 WLAN-Status-v1430, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType2 ::= SEQUENCE { + ac-BarringInfo SEQUENCE { + ac-BarringForEmergency BOOLEAN, + ac-BarringForMO-Signalling AC-BarringConfig OPTIONAL, -- Need OP + ac-BarringForMO-Data AC-BarringConfig OPTIONAL -- Need OP + } OPTIONAL, -- Need OP + radioResourceConfigCommon RadioResourceConfigCommonSIB, + ue-TimersAndConstants UE-TimersAndConstants, + freqInfo SEQUENCE { + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission + }, + mbsfn-SubframeConfigList MBSFN-SubframeConfigList OPTIONAL, -- Need OR + timeAlignmentTimerCommon TimeAlignmentTimer, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType2-v8h0-IEs) OPTIONAL, + [[ ssac-BarringForMMTEL-Voice-r9 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Video-r9 AC-BarringConfig OPTIONAL -- Need OP + ]], + [[ ac-BarringForCSFB-r10 AC-BarringConfig OPTIONAL -- Need OP + ]], + [[ ac-BarringSkipForMMTELVoice-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVideo-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForSMS-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringPerPLMN-List-r12 AC-BarringPerPLMN-List-r12 OPTIONAL -- Need OP + ]], + [[ voiceServiceCauseIndication-r12 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ acdc-BarringForCommon-r13 ACDC-BarringForCommon-r13 OPTIONAL, -- Need OP + acdc-BarringPerPLMN-List-r13 ACDC-BarringPerPLMN-List-r13 OPTIONAL -- Need OP + ]], + [[ + udt-RestrictingForCommon-r13 UDT-Restricting-r13 OPTIONAL, -- Need OR + udt-RestrictingPerPLMN-List-r13 UDT-RestrictingPerPLMN-List-r13 OPTIONAL, -- Need OR + cIoT-EPS-OptimisationInfo-r13 CIOT-EPS-OptimisationInfo-r13 OPTIONAL, -- Need OP + useFullResumeID-r13 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ unicastFreqHoppingInd-r13 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL, -- Need OP + videoServiceCauseIndication-r14 ENUMERATED {true} OPTIONAL -- Need OP + ]] + +} + +SystemInformationBlockType2-v8h0-IEs ::= SEQUENCE { + multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType2-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType2-v9e0-IEs ::= SEQUENCE { + ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond ul-FreqMax + nonCriticalExtension SystemInformationBlockType2-v9i0-IEs OPTIONAL +} + +SystemInformationBlockType2-v9i0-IEs ::= SEQUENCE { +-- Following field is only for late non-critical extensions for REL-9 + lateNonCriticalExtension OCTET STRING OPTIONAL, +-- Following field is only for late non-critical extensions from REL-10 + nonCriticalExtension SystemInformationBlockType2-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType2-v10l0-IEs ::= SEQUENCE { + freqInfo-v10l0 SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 + }, + multiBandInfoList-v10l0 SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission-v10l0, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AC-BarringConfig ::= SEQUENCE { + ac-BarringFactor ENUMERATED { + p00, p05, p10, p15, p20, p25, p30, p40, + p50, p60, p70, p75, p80, p85, p90, p95}, + ac-BarringTime ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512}, + ac-BarringForSpecialAC BIT STRING (SIZE(5)) +} + +MBSFN-SubframeConfigList ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig + +MBSFN-SubframeConfigList-v1430 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig-v1430 + +AC-BarringPerPLMN-List-r12 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF AC-BarringPerPLMN-r12 + +AC-BarringPerPLMN-r12 ::= SEQUENCE { + plmn-IdentityIndex-r12 INTEGER (1..maxPLMN-r11), + ac-BarringInfo-r12 SEQUENCE { + ac-BarringForEmergency-r12 BOOLEAN, + ac-BarringForMO-Signalling-r12 AC-BarringConfig OPTIONAL, -- Need OP + ac-BarringForMO-Data-r12 AC-BarringConfig OPTIONAL -- Need OP + } OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVoice-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVideo-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForSMS-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringForCSFB-r12 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Voice-r12 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Video-r12 AC-BarringConfig OPTIONAL -- Need OP +} + +ACDC-BarringForCommon-r13 ::= SEQUENCE { + acdc-HPLMNonly-r13 BOOLEAN, + barringPerACDC-CategoryList-r13 BarringPerACDC-CategoryList-r13 +} + +ACDC-BarringPerPLMN-List-r13 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF ACDC-BarringPerPLMN-r13 + +ACDC-BarringPerPLMN-r13 ::= SEQUENCE { + plmn-IdentityIndex-r13 INTEGER (1..maxPLMN-r11), + acdc-OnlyForHPLMN-r13 BOOLEAN, + barringPerACDC-CategoryList-r13 BarringPerACDC-CategoryList-r13 +} + +BarringPerACDC-CategoryList-r13 ::= SEQUENCE (SIZE (1..maxACDC-Cat-r13)) OF BarringPerACDC-Category-r13 + +BarringPerACDC-Category-r13 ::= SEQUENCE { + acdc-Category-r13 INTEGER (1..maxACDC-Cat-r13), + acdc-BarringConfig-r13 SEQUENCE { + ac-BarringFactor-r13 ENUMERATED { + p00, p05, p10, p15, p20, p25, p30, p40, + p50, p60, p70, p75, p80, p85, p90, p95}, + ac-BarringTime-r13 ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512} + } OPTIONAL -- Need OP +} + +UDT-Restricting-r13 ::= SEQUENCE { + udt-Restricting-r13 ENUMERATED {true} OPTIONAL, --Need OR + udt-RestrictingTime-r13 ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512} OPTIONAL --Need OR +} + +UDT-RestrictingPerPLMN-List-r13 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF UDT-RestrictingPerPLMN-r13 + +UDT-RestrictingPerPLMN-r13 ::= SEQUENCE { + plmn-IdentityIndex-r13 INTEGER (1..maxPLMN-r11), + udt-Restricting-r13 UDT-Restricting-r13 OPTIONAL --Need OR +} + +CIOT-EPS-OptimisationInfo-r13 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF CIOT-OptimisationPLMN-r13 + +CIOT-OptimisationPLMN-r13::= SEQUENCE { + up-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, -- Need OP + cp-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, -- Need OP + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL -- Need OP +} + + +SystemInformationBlockType3 ::= SEQUENCE { + cellReselectionInfoCommon SEQUENCE { + q-Hyst ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + speedStateReselectionPars SEQUENCE { + mobilityStateParameters MobilityStateParameters, + q-HystSF SEQUENCE { + sf-Medium ENUMERATED { + dB-6, dB-4, dB-2, dB0}, + sf-High ENUMERATED { + dB-6, dB-4, dB-2, dB0} + } + } OPTIONAL -- Need OP + }, + cellReselectionServingFreqInfo SEQUENCE { + s-NonIntraSearch ReselectionThreshold OPTIONAL, -- Need OP + threshServingLow ReselectionThreshold, + cellReselectionPriority CellReselectionPriority + }, + intraFreqCellReselectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + p-Max P-Max OPTIONAL, -- Need OP + s-IntraSearch ReselectionThreshold OPTIONAL, -- Need OP + allowedMeasBandwidth AllowedMeasBandwidth OPTIONAL, -- Need OP + presenceAntennaPort1 PresenceAntennaPort1, + neighCellConfig NeighCellConfig, + t-ReselectionEUTRA T-Reselection, + t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL -- Need OP + }, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType3-v10j0-IEs) OPTIONAL, + [[ s-IntraSearch-v920 SEQUENCE { + s-IntraSearchP-r9 ReselectionThreshold, + s-IntraSearchQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL, -- Need OP + s-NonIntraSearch-v920 SEQUENCE { + s-NonIntraSearchP-r9 ReselectionThreshold, + s-NonIntraSearchQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL, -- Need OP + q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP + threshServingLowQ-r9 ReselectionThresholdQ-r9 OPTIONAL -- Need OP + ]], + [[ q-QualMinWB-r11 Q-QualMin-r9 OPTIONAL -- Cond WB-RSRQ + ]], + [[ q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL -- Cond RSRQ + ]], + [[ cellReselectionServingFreqInfo-v1310 CellReselectionServingFreqInfo-v1310 OPTIONAL, -- Need OP + redistributionServingInfo-r13 RedistributionServingInfo-r13 OPTIONAL, --Need OR + cellSelectionInfoCE-r13 CellSelectionInfoCE-r13 OPTIONAL, -- Need OP + t-ReselectionEUTRA-CE-r13 T-ReselectionEUTRA-CE-r13 OPTIONAL -- Need OP + ]], + [[ cellSelectionInfoCE1-r13 CellSelectionInfoCE1-r13 OPTIONAL -- Need OP + ]], + [[ cellSelectionInfoCE1-v1360 CellSelectionInfoCE1-v1360 OPTIONAL -- Cond QrxlevminCE1 + ]], + [[ cellReselectionInfoCommon-v1460 CellReselectionInfoCommon-v1460 OPTIONAL -- Need OR + ]] +} + +RedistributionServingInfo-r13 ::= SEQUENCE { + redistributionFactorServing-r13 INTEGER(0..10), + redistributionFactorCell-r13 ENUMERATED{true} OPTIONAL, --Need OP + t360-r13 ENUMERATED {min4, min8, min16, min32,infinity, + spare3,spare2,spare1}, + redistrOnPagingOnly-r13 ENUMERATED {true} OPTIONAL --Need OP +} + +CellReselectionServingFreqInfo-v1310 ::= SEQUENCE { + cellReselectionSubPriority-r13 CellReselectionSubPriority-r13 +} + +-- Late non critical extensions +SystemInformationBlockType3-v10j0-IEs ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType3-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType3-v10l0-IEs ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CellReselectionInfoCommon-v1460 ::= SEQUENCE { + s-SearchDeltaP-r14 ENUMERATED {dB6, dB9, dB12, dB15} +} + + +SystemInformationBlockType4 ::= SEQUENCE { + intraFreqNeighCellList IntraFreqNeighCellList OPTIONAL, -- Need OR + intraFreqBlackCellList IntraFreqBlackCellList OPTIONAL, -- Need OR + csg-PhysCellIdRange PhysCellIdRange OPTIONAL, -- Cond CSG + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + +IntraFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellIntra)) OF IntraFreqNeighCellInfo + +IntraFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange, + ... +} + +IntraFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange + + +SystemInformationBlockType5 ::= SEQUENCE { + interFreqCarrierFreqList InterFreqCarrierFreqList, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType5-v8h0-IEs) OPTIONAL, + [[ interFreqCarrierFreqList-v1250 InterFreqCarrierFreqList-v1250 OPTIONAL, -- Need OR + interFreqCarrierFreqListExt-r12 InterFreqCarrierFreqListExt-r12 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqListExt-v1280 InterFreqCarrierFreqListExt-v1280 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqList-v1310 InterFreqCarrierFreqList-v1310 OPTIONAL, -- Need OR + interFreqCarrierFreqListExt-v1310 InterFreqCarrierFreqListExt-v1310 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqList-v1350 InterFreqCarrierFreqList-v1350 OPTIONAL, -- Need OR + interFreqCarrierFreqListExt-v1350 InterFreqCarrierFreqListExt-v1350 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqListExt-v1360 InterFreqCarrierFreqListExt-v1360 OPTIONAL -- Need OR + ]], + [[ scptm-FreqOffset-r14 INTEGER (1..8) OPTIONAL -- Need OP + ]] +} + +SystemInformationBlockType5-v8h0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v8h0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v8h0 OPTIONAL, -- Need OP + nonCriticalExtension SystemInformationBlockType5-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType5-v9e0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v9e0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType5-v10j0-IEs OPTIONAL +} + +SystemInformationBlockType5-v10j0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v10j0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType5-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType5-v10l0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v10l0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +InterFreqCarrierFreqList ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo + +InterFreqCarrierFreqList-v1250 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1250 + +InterFreqCarrierFreqList-v1310 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1310 + +InterFreqCarrierFreqList-v1350 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1350 + +InterFreqCarrierFreqListExt-r12 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-r12 + +InterFreqCarrierFreqListExt-v1280 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v10j0 + +InterFreqCarrierFreqListExt-v1310 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1310 + +InterFreqCarrierFreqListExt-v1350 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1350 + +InterFreqCarrierFreqListExt-v1360 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v1360 + +InterFreqCarrierFreqInfo ::= SEQUENCE { + dl-CarrierFreq ARFCN-ValueEUTRA, + q-RxLevMin Q-RxLevMin, + p-Max P-Max OPTIONAL, -- Need OP + t-ReselectionEUTRA T-Reselection, + t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + allowedMeasBandwidth AllowedMeasBandwidth, + presenceAntennaPort1 PresenceAntennaPort1, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + neighCellConfig NeighCellConfig, + q-OffsetFreq Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList InterFreqNeighCellList OPTIONAL, -- Need OR + interFreqBlackCellList InterFreqBlackCellList OPTIONAL, -- Need OR + ..., + [[ q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP + threshX-Q-r9 SEQUENCE { + threshX-HighQ-r9 ReselectionThresholdQ-r9, + threshX-LowQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL -- Cond RSRQ + ]], + [[ q-QualMinWB-r11 Q-QualMin-r9 OPTIONAL -- Cond WB-RSRQ + ]] +} + +InterFreqCarrierFreqInfo-v8h0 ::= SEQUENCE { + multiBandInfoList MultiBandInfoList OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v9e0 ::= SEQUENCE { + dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond dl-FreqMax + multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v10j0 ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v10l0 ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v1250 ::= SEQUENCE { + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL -- Cond RSRQ2 +} + +InterFreqCarrierFreqInfo-r12 ::= SEQUENCE { + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9, + q-RxLevMin-r12 Q-RxLevMin, + p-Max-r12 P-Max OPTIONAL, -- Need OP + t-ReselectionEUTRA-r12 T-Reselection, + t-ReselectionEUTRA-SF-r12 SpeedStateScaleFactors OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + allowedMeasBandwidth-r12 AllowedMeasBandwidth, + presenceAntennaPort1-r12 PresenceAntennaPort1, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + neighCellConfig-r12 NeighCellConfig, + q-OffsetFreq-r12 Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList-r12 InterFreqNeighCellList OPTIONAL, -- Need OR + interFreqBlackCellList-r12 InterFreqBlackCellList OPTIONAL, -- Need OR + q-QualMin-r12 Q-QualMin-r9 OPTIONAL, -- Need OP + threshX-Q-r12 SEQUENCE { + threshX-HighQ-r12 ReselectionThresholdQ-r9, + threshX-LowQ-r12 ReselectionThresholdQ-r9 + } OPTIONAL, -- Cond RSRQ + q-QualMinWB-r12 Q-QualMin-r9 OPTIONAL, -- Cond WB-RSRQ + multiBandInfoList-r12 MultiBandInfoList-r11 OPTIONAL, -- Need OR + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL, -- Cond RSRQ2 +... +} + +InterFreqCarrierFreqInfo-v1310 ::= SEQUENCE { + cellReselectionSubPriority-r13 CellReselectionSubPriority-r13 OPTIONAL, -- Need OP + redistributionInterFreqInfo-r13 RedistributionInterFreqInfo-r13 OPTIONAL, --Need OP + cellSelectionInfoCE-r13 CellSelectionInfoCE-r13 OPTIONAL, -- Need OP + t-ReselectionEUTRA-CE-r13 T-ReselectionEUTRA-CE-r13 OPTIONAL -- Need OP +} + +InterFreqCarrierFreqInfo-v1350 ::= SEQUENCE { + cellSelectionInfoCE1-r13 CellSelectionInfoCE1-r13 OPTIONAL -- Need OP +} + +InterFreqCarrierFreqInfo-v1360 ::= SEQUENCE { + cellSelectionInfoCE1-v1360 CellSelectionInfoCE1-v1360 OPTIONAL -- Cond QrxlevminCE1 +} + +InterFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo + +InterFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange +} + +InterFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange + +RedistributionInterFreqInfo-r13 ::= SEQUENCE { + redistributionFactorFreq-r13 RedistributionFactor-r13 OPTIONAL, --Need OP + redistributionNeighCellList-r13 RedistributionNeighCellList-r13 OPTIONAL --Need OP +} + +RedistributionNeighCellList-r13 ::= SEQUENCE (SIZE (1..maxCellInter)) OF RedistributionNeighCell-r13 + +RedistributionNeighCell-r13 ::= SEQUENCE { + physCellId-r13 PhysCellId, + redistributionFactorCell-r13 RedistributionFactor-r13 +} + +RedistributionFactor-r13 ::= INTEGER(1..10) + + +SystemInformationBlockType6 ::= SEQUENCE { + carrierFreqListUTRA-FDD CarrierFreqListUTRA-FDD OPTIONAL, -- Need OR + carrierFreqListUTRA-TDD CarrierFreqListUTRA-TDD OPTIONAL, -- Need OR + t-ReselectionUTRA T-Reselection, + t-ReselectionUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType6-v8h0-IEs) OPTIONAL, + [[ carrierFreqListUTRA-FDD-v1250 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF + CarrierFreqInfoUTRA-v1250 OPTIONAL, -- Cond UTRA-FDD + carrierFreqListUTRA-TDD-v1250 SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF + CarrierFreqInfoUTRA-v1250 OPTIONAL, -- Cond UTRA-TDD + carrierFreqListUTRA-FDD-Ext-r12 CarrierFreqListUTRA-FDD-Ext-r12 OPTIONAL, -- Cond UTRA-FDD + carrierFreqListUTRA-TDD-Ext-r12 CarrierFreqListUTRA-TDD-Ext-r12 OPTIONAL -- Cond UTRA-TDD + ]] +} + +SystemInformationBlockType6-v8h0-IEs ::= SEQUENCE { + carrierFreqListUTRA-FDD-v8h0 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqInfoUTRA-FDD-v8h0 OPTIONAL, -- Cond UTRA-FDD + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CarrierFreqInfoUTRA-v1250 ::= SEQUENCE { + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL -- Need OP +} + +CarrierFreqListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqUTRA-FDD + +CarrierFreqUTRA-FDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + q-RxLevMin INTEGER (-60..-13), + p-MaxUTRA INTEGER (-50..33), + q-QualMin INTEGER (-24..0), + ..., + [[ threshX-Q-r9 SEQUENCE { + threshX-HighQ-r9 ReselectionThresholdQ-r9, + threshX-LowQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL -- Cond RSRQ + ]] +} + +CarrierFreqInfoUTRA-FDD-v8h0 ::= SEQUENCE { + multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL -- Need OR +} + +CarrierFreqListUTRA-FDD-Ext-r12 ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF + CarrierFreqUTRA-FDD-Ext-r12 + +CarrierFreqUTRA-FDD-Ext-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueUTRA, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + q-RxLevMin-r12 INTEGER (-60..-13), + p-MaxUTRA-r12 INTEGER (-50..33), + q-QualMin-r12 INTEGER (-24..0), + threshX-Q-r12 SEQUENCE { + threshX-HighQ-r12 ReselectionThresholdQ-r9, + threshX-LowQ-r12 ReselectionThresholdQ-r9 + } OPTIONAL, -- Cond RSRQ + multiBandInfoList-r12 SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL, -- Need OR + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ... +} + +CarrierFreqListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF CarrierFreqUTRA-TDD + +CarrierFreqUTRA-TDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + q-RxLevMin INTEGER (-60..-13), + p-MaxUTRA INTEGER (-50..33), + ... +} + +CarrierFreqListUTRA-TDD-Ext-r12 ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF + CarrierFreqUTRA-TDD-r12 + +CarrierFreqUTRA-TDD-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueUTRA, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + q-RxLevMin-r12 INTEGER (-60..-13), + p-MaxUTRA-r12 INTEGER (-50..33), + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ... +} + +FreqBandIndicator-UTRA-FDD ::= INTEGER (1..86) + + +SystemInformationBlockType7 ::= SEQUENCE { + t-ReselectionGERAN T-Reselection, + t-ReselectionGERAN-SF SpeedStateScaleFactors OPTIONAL, -- Need OR + carrierFreqsInfoList CarrierFreqsInfoListGERAN OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + +CarrierFreqsInfoListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF CarrierFreqsInfoGERAN + +CarrierFreqsInfoGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + commonInfo SEQUENCE { + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + ncc-Permitted BIT STRING (SIZE (8)), + q-RxLevMin INTEGER (0..45), + p-MaxGERAN INTEGER (0..39) OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold + }, + ... +} + + +SystemInformationBlockType8 ::= SEQUENCE { + systemTimeInfo SystemTimeInfoCDMA2000 OPTIONAL, -- Need OR + searchWindowSize INTEGER (0..15) OPTIONAL, -- Need OR + parametersHRPD SEQUENCE { + preRegistrationInfoHRPD PreRegistrationInfoHRPD, + cellReselectionParametersHRPD CellReselectionParametersCDMA2000 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + parameters1XRTT SEQUENCE { + csfb-RegistrationParam1XRTT CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP + longCodeState1XRTT BIT STRING (SIZE (42)) OPTIONAL, -- Need OR + cellReselectionParameters1XRTT CellReselectionParametersCDMA2000 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL, + [[ csfb-SupportForDualRxUEs-r9 BOOLEAN OPTIONAL, -- Need OR + cellReselectionParametersHRPD-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-HRPD + cellReselectionParameters1XRTT-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-1XRTT + csfb-RegistrationParam1XRTT-v920 CSFB-RegistrationParam1XRTT-v920 OPTIONAL, -- Cond REG-1XRTT + ac-BarringConfig1XRTT-r9 AC-BarringConfig1XRTT-r9 OPTIONAL -- Cond REG-1XRTT + ]], + [[ csfb-DualRxTxSupport-r10 ENUMERATED {true} OPTIONAL -- Cond REG-1XRTT + ]], + [[ sib8-PerPLMN-List-r11 SIB8-PerPLMN-List-r11 OPTIONAL -- Need OR + ]] +} + +CellReselectionParametersCDMA2000 ::= SEQUENCE { + bandClassList BandClassListCDMA2000, + neighCellList NeighCellListCDMA2000, + t-ReselectionCDMA2000 T-Reselection, + t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP +} + +CellReselectionParametersCDMA2000-r11 ::= SEQUENCE { + bandClassList BandClassListCDMA2000, + neighCellList-r11 SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-r11, + t-ReselectionCDMA2000 T-Reselection, + t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP +} + +CellReselectionParametersCDMA2000-v920 ::= SEQUENCE { + neighCellList-v920 NeighCellListCDMA2000-v920 +} + +NeighCellListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000 + +NeighCellCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + neighCellsPerFreqList NeighCellsPerBandclassListCDMA2000 +} + +NeighCellCDMA2000-r11 ::= SEQUENCE { + bandClass BandclassCDMA2000, + neighFreqInfoList-r11 SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-r11 +} + +NeighCellsPerBandclassListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000 + +NeighCellsPerBandclassCDMA2000 ::= SEQUENCE { + arfcn ARFCN-ValueCDMA2000, + physCellIdList PhysCellIdListCDMA2000 +} + +NeighCellsPerBandclassCDMA2000-r11 ::= SEQUENCE { + arfcn ARFCN-ValueCDMA2000, + physCellIdList-r11 SEQUENCE (SIZE (1..40)) OF PhysCellIdCDMA2000 +} + +NeighCellListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-v920 + +NeighCellCDMA2000-v920 ::= SEQUENCE { + neighCellsPerFreqList-v920 NeighCellsPerBandclassListCDMA2000-v920 +} + +NeighCellsPerBandclassListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-v920 + +NeighCellsPerBandclassCDMA2000-v920 ::= SEQUENCE { + physCellIdList-v920 PhysCellIdListCDMA2000-v920 +} + +PhysCellIdListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdCDMA2000 + +PhysCellIdListCDMA2000-v920 ::= SEQUENCE (SIZE (0..24)) OF PhysCellIdCDMA2000 + +BandClassListCDMA2000 ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassInfoCDMA2000 + +BandClassInfoCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High INTEGER (0..63), + threshX-Low INTEGER (0..63), + ... +} + +AC-BarringConfig1XRTT-r9 ::= SEQUENCE { + ac-Barring0to9-r9 INTEGER (0..63), + ac-Barring10-r9 INTEGER (0..7), + ac-Barring11-r9 INTEGER (0..7), + ac-Barring12-r9 INTEGER (0..7), + ac-Barring13-r9 INTEGER (0..7), + ac-Barring14-r9 INTEGER (0..7), + ac-Barring15-r9 INTEGER (0..7), + ac-BarringMsg-r9 INTEGER (0..7), + ac-BarringReg-r9 INTEGER (0..7), + ac-BarringEmg-r9 INTEGER (0..7) +} + +SIB8-PerPLMN-List-r11 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF SIB8-PerPLMN-r11 + +SIB8-PerPLMN-r11 ::= SEQUENCE { + plmn-Identity-r11 INTEGER (1..maxPLMN-r11), + parametersCDMA2000-r11 CHOICE { + explicitValue ParametersCDMA2000-r11, + defaultValue NULL + } +} + +ParametersCDMA2000-r11 ::= SEQUENCE { + systemTimeInfo-r11 CHOICE { + explicitValue SystemTimeInfoCDMA2000, + defaultValue NULL + } OPTIONAL, -- Need OR + searchWindowSize-r11 INTEGER (0..15), + parametersHRPD-r11 SEQUENCE { + preRegistrationInfoHRPD-r11 PreRegistrationInfoHRPD, + cellReselectionParametersHRPD-r11 CellReselectionParametersCDMA2000-r11 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + parameters1XRTT-r11 SEQUENCE { + csfb-RegistrationParam1XRTT-r11 CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP + csfb-RegistrationParam1XRTT-Ext-r11 CSFB-RegistrationParam1XRTT-v920 OPTIONAL, -- Cond REG-1XRTT-PerPLMN + longCodeState1XRTT-r11 BIT STRING (SIZE (42)) OPTIONAL, -- Cond PerPLMN-LC + cellReselectionParameters1XRTT-r11 CellReselectionParametersCDMA2000-r11 OPTIONAL, -- Need OR + ac-BarringConfig1XRTT-r11 AC-BarringConfig1XRTT-r9 OPTIONAL, -- Cond REG-1XRTT-PerPLMN + csfb-SupportForDualRxUEs-r11 BOOLEAN OPTIONAL, -- Need OR + csfb-DualRxTxSupport-r11 ENUMERATED {true} OPTIONAL -- Cond REG-1XRTT-PerPLMN + } OPTIONAL, -- Need OR + ... +} + + +SystemInformationBlockType9 ::= SEQUENCE { + hnb-Name OCTET STRING (SIZE(1..48)) OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType10 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningType OCTET STRING (SIZE (2)), + dummy OCTET STRING (SIZE (50)) OPTIONAL, -- Need OP + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType11 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningMessageSegmentType ENUMERATED {notLastSegment, lastSegment}, + warningMessageSegmentNumber INTEGER (0..63), + warningMessageSegment OCTET STRING, + dataCodingScheme OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType12-r9 ::= SEQUENCE { + messageIdentifier-r9 BIT STRING (SIZE (16)), + serialNumber-r9 BIT STRING (SIZE (16)), + warningMessageSegmentType-r9 ENUMERATED {notLastSegment, lastSegment}, + warningMessageSegmentNumber-r9 INTEGER (0..63), + warningMessageSegment-r9 OCTET STRING, + dataCodingScheme-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +SystemInformationBlockType13-r9 ::= SEQUENCE { + mbsfn-AreaInfoList-r9 MBSFN-AreaInfoList-r9, + notificationConfig-r9 MBMS-NotificationConfig-r9, + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ + notificationConfig-v1430 MBMS-NotificationConfig-v1430 OPTIONAL + ]] +} + + +SystemInformationBlockType14-r11 ::= SEQUENCE { + eab-Param-r11 CHOICE { + eab-Common-r11 EAB-Config-r11, + eab-PerPLMN-List-r11 SEQUENCE (SIZE (1..maxPLMN-r11)) OF EAB-ConfigPLMN-r11 + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +EAB-ConfigPLMN-r11 ::= SEQUENCE { + eab-Config-r11 EAB-Config-r11 OPTIONAL -- Need OR +} + +EAB-Config-r11 ::= SEQUENCE { + eab-Category-r11 ENUMERATED {a, b, c}, + eab-BarringBitmap-r11 BIT STRING (SIZE (10)) +} + + +SystemInformationBlockType15-r11 ::= SEQUENCE { + mbms-SAI-IntraFreq-r11 MBMS-SAI-List-r11 OPTIONAL, -- Need OR + mbms-SAI-InterFreqList-r11 MBMS-SAI-InterFreqList-r11 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ mbms-SAI-InterFreqList-v1140 MBMS-SAI-InterFreqList-v1140 OPTIONAL -- Cond InterFreq + ]], + [[ mbms-IntraFreqCarrierType-r14 MBMS-CarrierType-r14 OPTIONAL, -- Need OR + mbms-InterFreqCarrierTypeList-r14 + MBMS-InterFreqCarrierTypeList-r14 OPTIONAL -- Need OR + ]] +} + +MBMS-SAI-List-r11 ::= SEQUENCE (SIZE (1..maxSAI-MBMS-r11)) OF MBMS-SAI-r11 + +MBMS-SAI-r11 ::= INTEGER (0..65535) + +MBMS-SAI-InterFreqList-r11 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-r11 + +MBMS-SAI-InterFreqList-v1140 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-v1140 + +MBMS-SAI-InterFreq-r11 ::= SEQUENCE { + dl-CarrierFreq-r11 ARFCN-ValueEUTRA-r9, + mbms-SAI-List-r11 MBMS-SAI-List-r11 +} + +MBMS-SAI-InterFreq-v1140 ::= SEQUENCE { + multiBandInfoList-r11 MultiBandInfoList-r11 OPTIONAL -- Need OR +} + +MBMS-InterFreqCarrierTypeList-r14 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-CarrierType-r14 + +MBMS-CarrierType-r14 ::= SEQUENCE { + carrierType-r14 ENUMERATED {mbms, fembmsMixed, fembmsDedicated}, + frameOffset-r14 INTEGER (0..3) OPTIONAL -- Need OR +} + + +SystemInformationBlockType16-r11 ::= SEQUENCE { + timeInfo-r11 SEQUENCE { + timeInfoUTC-r11 INTEGER (0..549755813887), + dayLightSavingTime-r11 BIT STRING (SIZE (2)) OPTIONAL, -- Need OR + leapSeconds-r11 INTEGER (-127..128) OPTIONAL, -- Need OR + localTimeOffset-r11 INTEGER (-63..64) OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +SystemInformationBlockType17-r12 ::= SEQUENCE { + wlan-OffloadInfoPerPLMN-List-r12 SEQUENCE (SIZE (1..maxPLMN-r11)) OF + WLAN-OffloadInfoPerPLMN-r12 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +WLAN-OffloadInfoPerPLMN-r12 ::= SEQUENCE { + wlan-OffloadConfigCommon-r12 WLAN-OffloadConfig-r12 OPTIONAL, -- Need OR + wlan-Id-List-r12 WLAN-Id-List-r12 OPTIONAL, -- Need OR + ... +} + +WLAN-Id-List-r12 ::= SEQUENCE (SIZE (1..maxWLAN-Id-r12)) OF WLAN-Identifiers-r12 + +WLAN-Identifiers-r12 ::= SEQUENCE { + ssid-r12 OCTET STRING (SIZE (1..32)) OPTIONAL, -- Need OR + bssid-r12 OCTET STRING (SIZE (6)) OPTIONAL, -- Need OR + hessid-r12 OCTET STRING (SIZE (6)) OPTIONAL, -- Need OR + ... +} + + +SystemInformationBlockType18-r12 ::= SEQUENCE { + commConfig-r12 SEQUENCE { + commRxPool-r12 SL-CommRxPoolList-r12, + commTxPoolNormalCommon-r12 SL-CommTxPoolList-r12 OPTIONAL, -- Need OR + commTxPoolExceptional-r12 SL-CommTxPoolList-r12 OPTIONAL, -- Need OR + commSyncConfig-r12 SL-SyncConfigList-r12 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ commTxPoolNormalCommonExt-r13 SL-CommTxPoolListExt-r13 OPTIONAL, -- Need OR + commTxResourceUC-ReqAllowed-r13 ENUMERATED {true} OPTIONAL, -- Need OR + commTxAllowRelayCommon-r13 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + + +SystemInformationBlockType19-r12 ::= SEQUENCE { + discConfig-r12 SEQUENCE { + discRxPool-r12 SL-DiscRxPoolList-r12, + discTxPoolCommon-r12 SL-DiscTxPoolList-r12 OPTIONAL, -- Need OR + discTxPowerInfo-r12 SL-DiscTxPowerInfoList-r12 OPTIONAL, -- Cond Tx + discSyncConfig-r12 SL-SyncConfigList-r12 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + discInterFreqList-r12 SL-CarrierFreqInfoList-r12 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ discConfig-v1310 SEQUENCE { + discInterFreqList-v1310 SL-CarrierFreqInfoList-v1310 OPTIONAL, -- Need OR + gapRequestsAllowedCommon ENUMERATED {true} OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + discConfigRelay-r13 SEQUENCE { + relayUE-Config-r13 SL-DiscConfigRelayUE-r13, + remoteUE-Config-r13 SL-DiscConfigRemoteUE-r13 + } OPTIONAL, -- Need OR + discConfigPS-13 SEQUENCE { + discRxPoolPS-r13 SL-DiscRxPoolList-r12, + discTxPoolPS-Common-r13 SL-DiscTxPoolList-r12 OPTIONAL -- Need OR + } OPTIONAL -- Need OR + ]] +} + +SL-CarrierFreqInfoList-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-CarrierFreqInfo-r12 + +SL-CarrierFreqInfoList-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-CarrierFreqInfo-v1310 + +SL-CarrierFreqInfo-r12::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + plmn-IdentityList-r12 PLMN-IdentityList4-r12 OPTIONAL -- Need OP +} + +SL-DiscConfigRelayUE-r13 ::= SEQUENCE { + threshHigh-r13 RSRP-RangeSL4-r13 OPTIONAL, -- Need OR + threshLow-r13 RSRP-RangeSL4-r13 OPTIONAL, -- Need OR + hystMax-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf} OPTIONAL, -- Cond ThreshHigh + hystMin-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12} OPTIONAL -- Cond ThreshLow +} + +SL-DiscConfigRemoteUE-r13 ::= SEQUENCE { + threshHigh-r13 RSRP-RangeSL4-r13 OPTIONAL, -- Need OR + hystMax-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12} OPTIONAL, -- Cond ThreshHigh + reselectionInfoIC-r13 ReselectionInfoRelay-r13 +} + +ReselectionInfoRelay-r13 ::= SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + -- Note that the mapping of invidual values may be different for PC5, but the granularity/ + -- number of values is same as for Uu + filterCoefficient-r13 FilterCoefficient, + minHyst-r13 ENUMERATED {dB0, dB3, + dB6, dB9, dB12, dBinf} OPTIONAL -- Need OR +} + +SL-CarrierFreqInfo-v1310::= SEQUENCE { + discResourcesNonPS-r13 SL-ResourcesInterFreq-r13 OPTIONAL, -- Need OR + discResourcesPS-r13 SL-ResourcesInterFreq-r13 OPTIONAL, -- Need OR + discConfigOther-r13 SL-DiscConfigOtherInterFreq-r13 OPTIONAL, -- Need OR + ... +} + +PLMN-IdentityList4-r12 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo2-r12 + +PLMN-IdentityInfo2-r12 ::= CHOICE { + plmn-Index-r12 INTEGER (1..maxPLMN-r11), + plmnIdentity-r12 PLMN-Identity +} + +SL-DiscTxResourcesInterFreq-r13 ::= CHOICE { + acquireSI-FromCarrier-r13 NULL, + discTxPoolCommon-r13 SL-DiscTxPoolList-r12, + requestDedicated-r13 NULL, + noTxOnCarrier-r13 NULL +} + +SL-DiscConfigOtherInterFreq-r13::= SEQUENCE { + txPowerInfo-r13 SL-DiscTxPowerInfoList-r12 OPTIONAL, -- Cond Tx + refCarrierCommon-r13 ENUMERATED {pCell} OPTIONAL, -- Need OR + discSyncConfig-r13 SL-SyncConfigListNFreq-r13 OPTIONAL, -- Need OR + discCellSelectionInfo-r13 CellSelectionInfoNFreq-r13 OPTIONAL -- Need OR +} + +SL-ResourcesInterFreq-r13 ::= SEQUENCE { + discRxResourcesInterFreq-r13 SL-DiscRxPoolList-r12 OPTIONAL, -- Need OR + discTxResourcesInterFreq-r13 SL-DiscTxResourcesInterFreq-r13 OPTIONAL -- Need OR +} + + +SystemInformationBlockType20-r13 ::= SEQUENCE { + sc-mcch-RepetitionPeriod-r13 ENUMERATED {rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256}, + sc-mcch-Offset-r13 INTEGER (0..10), + sc-mcch-FirstSubframe-r13 INTEGER (0..9), + sc-mcch-duration-r13 INTEGER (2..9) OPTIONAL, + sc-mcch-ModificationPeriod-r13 ENUMERATED {rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256, + rf512, rf1024, r2048, rf4096, rf8192, rf16384, rf32768, rf65536}, + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ br-BCCH-Config-r14 SEQUENCE { + sc-mcch-RepetitionPeriod-v1430 ENUMERATED {rf1}, + sc-mcch-ModificationPeriod-v1430 ENUMERATED {rf1}, + mpdcch-Narrowband-SC-MCCH-r14 INTEGER (1..maxAvailNarrowBands-r13), + mpdcch-NumRepetition-SC-MCCH-r14 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + mpdcch-StartSF-SC-MCCH-r14 CHOICE { + fdd-r14 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, + v5, v8, v10}, + tdd-r14 ENUMERATED {v1, v2, v4, v5, v8, v10, v20} + }, + mpdcch-PDSCH-HoppingConfig-SC-MCCH-r14 ENUMERATED {off, ce-ModeA, ce-ModeB}, + sc-mcch-CarrierFreq-r14 ARFCN-ValueEUTRA-r9, + sc-mcch-Offset-BR-r14 INTEGER (0..10), + sc-mcch-RepetitionPeriod-BR-r14 ENUMERATED {rf32, rf128, rf512, rf1024, + rf2048, rf4096, rf8192, rf16384}, + sc-mcch-ModificationPeriod-BR-r14 ENUMERATED { rf32, rf128, rf256, rf512, rf1024, + rf2048, rf4096, rf8192, rf16384, rf32768, + rf65536, rf131072, rf262144, rf524288, + rf1048576} + } OPTIONAL, -- Need OR + sc-mcch-SchedulingInfo-r14 SC-MCCH-SchedulingInfo-r14 OPTIONAL, -- Need OP + pdsch-maxNumRepetitionCEmodeA-SC-MTCH-r14 + ENUMERATED { r16, r32 } OPTIONAL, -- Need OR + pdsch-maxNumRepetitionCEmodeB-SC-MTCH-r14 + ENUMERATED { + r192, r256, r384, r512, r768, r1024, + r1536, r2048} OPTIONAL -- Need OR + ]] +} + +SC-MCCH-SchedulingInfo-r14::= SEQUENCE { + onDurationTimerSCPTM-r14 ENUMERATED {psf10, psf20, psf100, psf300, + psf500, psf1000, psf1200, psf1600}, + drx-InactivityTimerSCPTM-r14 ENUMERATED {psf0, psf1, psf2, psf4, psf8, psf16, + psf32, psf64, psf128, psf256, ps512, + psf1024, psf2048, psf4096, psf8192, psf16384}, + schedulingPeriodStartOffsetSCPTM-r14 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2047), + sf4096 INTEGER(0..4095), + sf8192 INTEGER(0..8191) + }, + ... +} + + +SystemInformationBlockType21-r14 ::= SEQUENCE { + sl-V2X-ConfigCommon-r14 SL-V2X-ConfigCommon-r14 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +SL-V2X-ConfigCommon-r14 ::= SEQUENCE { + v2x-CommRxPool-r14 SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolNormalCommon-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + p2x-CommTxPoolNormalCommon-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolExceptional-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-SyncConfig-r14 SL-SyncConfigListV2X-r14 OPTIONAL, -- Need OR + v2x-InterFreqInfoList-r14 SL-InterFreqInfoListV2X-r14 OPTIONAL, -- Need OR + v2x-ResourceSelectionConfig-r14 SL-CommTxPoolSensingConfig-r14 OPTIONAL, -- Need OR + zoneConfig-r14 SL-ZoneConfig-r14 OPTIONAL, -- Need OR + typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR + thresSL-TxPrioritization-r14 SL-Priority-r13 OPTIONAL, -- Need OR + anchorCarrierFreqList-r14 SL-AnchorCarrierFreqList-V2X-r14 OPTIONAL, -- Need OR + offsetDFN-r14 INTEGER (0..1000) OPTIONAL, -- Need OR + cbr-CommonTxConfigList-r14 SL-CBR-CommonTxConfigList-r14 OPTIONAL -- Need OR +} + + + +AntennaInfoCommon ::= SEQUENCE { + antennaPortsCount ENUMERATED {an1, an2, an4, spare1} +} + +AntennaInfoDedicated ::= SEQUENCE { + transmissionMode ENUMERATED { + tm1, tm2, tm3, tm4, tm5, tm6, + tm7, tm8-v920}, + codebookSubsetRestriction CHOICE { + n2TxAntenna-tm3 BIT STRING (SIZE (2)), + n4TxAntenna-tm3 BIT STRING (SIZE (4)), + n2TxAntenna-tm4 BIT STRING (SIZE (6)), + n4TxAntenna-tm4 BIT STRING (SIZE (64)), + n2TxAntenna-tm5 BIT STRING (SIZE (4)), + n4TxAntenna-tm5 BIT STRING (SIZE (16)), + n2TxAntenna-tm6 BIT STRING (SIZE (4)), + n4TxAntenna-tm6 BIT STRING (SIZE (16)) + } OPTIONAL, -- Cond TM + ue-TransmitAntennaSelection CHOICE{ + release NULL, + setup ENUMERATED {closedLoop, openLoop} + } +} + +AntennaInfoDedicated-v920 ::= SEQUENCE { + codebookSubsetRestriction-v920 CHOICE { + n2TxAntenna-tm8-r9 BIT STRING (SIZE (6)), + n4TxAntenna-tm8-r9 BIT STRING (SIZE (32)) + } OPTIONAL -- Cond TM8 +} + +AntennaInfoDedicated-r10 ::= SEQUENCE { + transmissionMode-r10 ENUMERATED { + tm1, tm2, tm3, tm4, tm5, tm6, tm7, tm8-v920, + tm9-v1020, tm10-v1130, spare6, spare5, spare4, + spare3, spare2, spare1}, + codebookSubsetRestriction-r10 BIT STRING OPTIONAL, -- Cond TMX + ue-TransmitAntennaSelection CHOICE{ + release NULL, + setup ENUMERATED {closedLoop, openLoop} + } +} + +AntennaInfoDedicated-v10i0::= SEQUENCE { + maxLayersMIMO-r10 ENUMERATED {twoLayers, fourLayers, eightLayers} OPTIONAL -- Need OR +} + +AntennaInfoDedicated-v1250 ::= SEQUENCE { + alternativeCodebookEnabledFor4TX-r12 BOOLEAN +} + +AntennaInfoDedicated-v1430 ::= SEQUENCE { + ce-UE-TxAntennaSelection-config-r14 ENUMERATED {on} OPTIONAL -- Need OR +} + + +AntennaInfoUL-r10 ::= SEQUENCE { + transmissionModeUL-r10 ENUMERATED {tm1, tm2, spare6, spare5, + spare4, spare3, spare2, spare1} OPTIONAL, -- Need OR + fourAntennaPortActivated-r10 ENUMERATED {setup} OPTIONAL -- Need OR +} + + +CQI-ReportAperiodic-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-ReportModeAperiodic-r10 CQI-ReportModeAperiodic, + aperiodicCSI-Trigger-r10 SEQUENCE { + trigger1-r10 BIT STRING (SIZE (8)), + trigger2-r10 BIT STRING (SIZE (8)) + } OPTIONAL -- Need OR + } +} + +CQI-ReportAperiodic-v1250 ::= CHOICE { + release NULL, + setup SEQUENCE { + aperiodicCSI-Trigger-v1250 SEQUENCE { + trigger-SubframeSetIndicator-r12 ENUMERATED {s1, s2}, + trigger1-SubframeSetIndicator-r12 BIT STRING (SIZE (8)), + trigger2-SubframeSetIndicator-r12 BIT STRING (SIZE (8)) + } + } +} + +CQI-ReportAperiodic-v1310 ::= CHOICE { + release NULL, + setup SEQUENCE { + aperiodicCSI-Trigger-v1310 SEQUENCE { + trigger1-r13 BIT STRING (SIZE (32)), + trigger2-r13 BIT STRING (SIZE (32)), + trigger3-r13 BIT STRING (SIZE (32)), + trigger4-r13 BIT STRING (SIZE (32)), + trigger5-r13 BIT STRING (SIZE (32)), + trigger6-r13 BIT STRING (SIZE (32)) + } OPTIONAL, -- Need ON + aperiodicCSI-Trigger2-r13 CHOICE { + release NULL, + setup SEQUENCE { + trigger1-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger2-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger3-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger4-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger5-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger6-SubframeSetIndicator-r13 BIT STRING (SIZE (32)) + } + } OPTIONAL -- Need ON + } +} + +CQI-ReportAperiodicProc-r11 ::= SEQUENCE { + cqi-ReportModeAperiodic-r11 CQI-ReportModeAperiodic, + trigger01-r11 BOOLEAN, + trigger10-r11 BOOLEAN, + trigger11-r11 BOOLEAN +} + +CQI-ReportAperiodicProc-v1310 ::= SEQUENCE { + trigger001-r13 BOOLEAN, + trigger010-r13 BOOLEAN, + trigger011-r13 BOOLEAN, + trigger100-r13 BOOLEAN, + trigger101-r13 BOOLEAN, + trigger110-r13 BOOLEAN, + trigger111-r13 BOOLEAN +} + +CQI-ReportAperiodicHybrid-r14 ::= SEQUENCE { + triggers-r14 CHOICE { + oneBit-r14 SEQUENCE { + trigger1-Indicator-r14 BIT STRING (SIZE (8)) + }, + twoBit-r14 SEQUENCE { + trigger01-Indicator-r14 BIT STRING (SIZE (8)), + trigger10-Indicator-r14 BIT STRING (SIZE (8)), + trigger11-Indicator-r14 BIT STRING (SIZE (8)) + }, + threeBit-r14 SEQUENCE { + trigger001-Indicator-r14 BIT STRING (SIZE (32)), + trigger010-Indicator-r14 BIT STRING (SIZE (32)), + trigger011-Indicator-r14 BIT STRING (SIZE (32)), + trigger100-Indicator-r14 BIT STRING (SIZE (32)) , + trigger101-Indicator-r14 BIT STRING (SIZE (32)), + trigger110-Indicator-r14 BIT STRING (SIZE (32)), + trigger111-Indicator-r14 BIT STRING (SIZE (32)) + } + } OPTIONAL -- Need OR +} + +CQI-ReportModeAperiodic ::= ENUMERATED { + rm12, rm20, rm22, rm30, rm31, + rm32-v1250, rm10-v1310, rm11-v1310 +} + + +CQI-ReportBoth-r11 ::= SEQUENCE { + csi-IM-ConfigToReleaseList-r11 CSI-IM-ConfigToReleaseList-r11 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModList-r11 CSI-IM-ConfigToAddModList-r11 OPTIONAL, -- Need ON + csi-ProcessToReleaseList-r11 CSI-ProcessToReleaseList-r11 OPTIONAL, -- Need ON + csi-ProcessToAddModList-r11 CSI-ProcessToAddModList-r11 OPTIONAL -- Need ON +} + +CQI-ReportBoth-v1250 ::= SEQUENCE { + csi-IM-ConfigToReleaseListExt-r12 CSI-IM-ConfigId-v1250 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModListExt-r12 CSI-IM-ConfigExt-r12 OPTIONAL -- Need ON +} + +CQI-ReportBoth-v1310 ::= SEQUENCE { + csi-IM-ConfigToReleaseListExt-r13 CSI-IM-ConfigToReleaseListExt-r13 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModListExt-r13 CSI-IM-ConfigToAddModListExt-r13 OPTIONAL -- Need ON +} + +CSI-IM-ConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-Config-r11 + +CSI-IM-ConfigToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-IM-v1310)) OF CSI-IM-ConfigExt-r12 + +CSI-IM-ConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-ConfigId-r11 + +CSI-IM-ConfigToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-IM-v1310)) OF CSI-IM-ConfigId-v1310 + +CSI-ProcessToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF CSI-Process-r11 + +CSI-ProcessToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF CSI-ProcessId-r11 + +CQI-ReportBothProc-r11 ::= SEQUENCE { + ri-Ref-CSI-ProcessId-r11 CSI-ProcessId-r11 OPTIONAL, -- Need OR + pmi-RI-Report-r11 ENUMERATED {setup} OPTIONAL -- Need OR +} + + +CQI-ReportConfig ::= SEQUENCE { + cqi-ReportModeAperiodic CQI-ReportModeAperiodic OPTIONAL, -- Need OR + nomPDSCH-RS-EPRE-Offset INTEGER (-1..6), + cqi-ReportPeriodic CQI-ReportPeriodic OPTIONAL -- Need ON +} + +CQI-ReportConfig-v920 ::= SEQUENCE { + cqi-Mask-r9 ENUMERATED {setup} OPTIONAL, -- Cond cqi-Setup + pmi-RI-Report-r9 ENUMERATED {setup} OPTIONAL -- Cond PMIRI +} + +CQI-ReportConfig-r10 ::= SEQUENCE { + cqi-ReportAperiodic-r10 CQI-ReportAperiodic-r10 OPTIONAL, -- Need ON + nomPDSCH-RS-EPRE-Offset INTEGER (-1..6), + cqi-ReportPeriodic-r10 CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON + pmi-RI-Report-r9 ENUMERATED {setup} OPTIONAL, -- Cond PMIRIPCell + csi-SubframePatternConfig-r10 CHOICE { + release NULL, + setup SEQUENCE { + csi-MeasSubframeSet1-r10 MeasSubframePattern-r10, + csi-MeasSubframeSet2-r10 MeasSubframePattern-r10 + } + } OPTIONAL -- Need ON +} + +CQI-ReportConfig-v1130 ::= SEQUENCE { + cqi-ReportPeriodic-v1130 CQI-ReportPeriodic-v1130, + cqi-ReportBoth-r11 CQI-ReportBoth-r11 +} + +CQI-ReportConfig-v1250 ::= SEQUENCE { + csi-SubframePatternConfig-r12 CHOICE { + release NULL, + setup SEQUENCE { + csi-MeasSubframeSets-r12 BIT STRING (SIZE (10)) + } + } OPTIONAL, -- Need ON + cqi-ReportBoth-v1250 CQI-ReportBoth-v1250 OPTIONAL, -- Need ON + cqi-ReportAperiodic-v1250 CQI-ReportAperiodic-v1250 OPTIONAL, -- Need ON + altCQI-Table-r12 ENUMERATED { + allSubframes, csi-SubframeSet1, + csi-SubframeSet2, spare1} OPTIONAL -- Need OP +} + +CQI-ReportConfig-v1310 ::= SEQUENCE { + cqi-ReportBoth-v1310 CQI-ReportBoth-v1310 OPTIONAL, -- Need ON + cqi-ReportAperiodic-v1310 CQI-ReportAperiodic-v1310 OPTIONAL, -- Need ON + cqi-ReportPeriodic-v1310 CQI-ReportPeriodic-v1310 OPTIONAL -- Need ON +} + +CQI-ReportConfig-v1320 ::= SEQUENCE { + cqi-ReportPeriodic-v1320 CQI-ReportPeriodic-v1320 OPTIONAL -- Need ON +} + +CQI-ReportConfig-v1430 ::= SEQUENCE { + cqi-ReportAperiodicHybrid-r14 CQI-ReportAperiodicHybrid-r14 OPTIONAL -- Need ON +} + +CQI-ReportConfigSCell-r10 ::= SEQUENCE { + cqi-ReportModeAperiodic-r10 CQI-ReportModeAperiodic OPTIONAL, -- Need OR + nomPDSCH-RS-EPRE-Offset-r10 INTEGER (-1..6), + cqi-ReportPeriodicSCell-r10 CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON + pmi-RI-Report-r10 ENUMERATED {setup} OPTIONAL -- Cond PMIRISCell +} + + + +CQI-ReportPeriodic ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-PUCCH-ResourceIndex INTEGER (0..1185), + cqi-pmi-ConfigIndex INTEGER (0..1023), + cqi-FormatIndicatorPeriodic CHOICE { + widebandCQI NULL, + subbandCQI SEQUENCE { + k INTEGER (1..4) + } + }, + ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR + simultaneousAckNackAndCQI BOOLEAN + } +} + +CQI-ReportPeriodic-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-PUCCH-ResourceIndex-r10 INTEGER (0..1184), + cqi-PUCCH-ResourceIndexP1-r10 INTEGER (0..1184) OPTIONAL, -- Need OR + cqi-pmi-ConfigIndex INTEGER (0..1023), + cqi-FormatIndicatorPeriodic-r10 CHOICE { + widebandCQI-r10 SEQUENCE { + csi-ReportMode-r10 ENUMERATED {submode1, submode2} OPTIONAL -- Need OR + }, + subbandCQI-r10 SEQUENCE { + k INTEGER (1..4), + periodicityFactor-r10 ENUMERATED {n2, n4} + } + }, + ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR + simultaneousAckNackAndCQI BOOLEAN, + cqi-Mask-r9 ENUMERATED {setup} OPTIONAL, -- Need OR + csi-ConfigIndex-r10 CHOICE { + release NULL, + setup SEQUENCE { + cqi-pmi-ConfigIndex2-r10 INTEGER (0..1023), + ri-ConfigIndex2-r10 INTEGER (0..1023) OPTIONAL -- Need OR + } + } OPTIONAL -- Need ON + } +} + + +CQI-ReportPeriodic-v1130 ::= SEQUENCE { + simultaneousAckNackAndCQI-Format3-r11 ENUMERATED {setup} OPTIONAL, -- Need OR + cqi-ReportPeriodicProcExtToReleaseList-r11 CQI-ReportPeriodicProcExtToReleaseList-r11 OPTIONAL, -- Need ON + cqi-ReportPeriodicProcExtToAddModList-r11 CQI-ReportPeriodicProcExtToAddModList-r11 OPTIONAL -- Need ON +} + +CQI-ReportPeriodic-v1310 ::= SEQUENCE { + cri-ReportConfig-r13 CRI-ReportConfig-r13 OPTIONAL, -- Need OR + simultaneousAckNackAndCQI-Format4-Format5-r13 ENUMERATED {setup} OPTIONAL-- Need OR +} + +CQI-ReportPeriodic-v1320 ::= SEQUENCE { + periodicityFactorWB-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR +} + +CQI-ReportPeriodicProcExtToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCQI-ProcExt-r11)) OF CQI-ReportPeriodicProcExt-r11 + +CQI-ReportPeriodicProcExtToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCQI-ProcExt-r11)) OF CQI-ReportPeriodicProcExtId-r11 + +CQI-ReportPeriodicProcExt-r11 ::= SEQUENCE { + cqi-ReportPeriodicProcExtId-r11 CQI-ReportPeriodicProcExtId-r11, + cqi-pmi-ConfigIndex-r11 INTEGER (0..1023), + cqi-FormatIndicatorPeriodic-r11 CHOICE { + widebandCQI-r11 SEQUENCE { + csi-ReportMode-r11 ENUMERATED {submode1, submode2} OPTIONAL -- Need OR + }, + subbandCQI-r11 SEQUENCE { + k INTEGER (1..4), + periodicityFactor-r11 ENUMERATED {n2, n4} + } + }, + ri-ConfigIndex-r11 INTEGER (0..1023) OPTIONAL, -- Need OR + csi-ConfigIndex-r11 CHOICE { + release NULL, + setup SEQUENCE { + cqi-pmi-ConfigIndex2-r11 INTEGER (0..1023), + ri-ConfigIndex2-r11 INTEGER (0..1023) OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + ..., + [[ cri-ReportConfig-r13 CRI-ReportConfig-r13 OPTIONAL -- Need ON + ]], + [[ periodicityFactorWB-r13 ENUMERATED {n2, n4} OPTIONAL -- Need ON + ]] +} + +CRI-ReportConfig-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + cri-ConfigIndex-r13 CRI-ConfigIndex-r13, + cri-ConfigIndex2-r13 CRI-ConfigIndex-r13 OPTIONAL -- Need OR + } +} + +CRI-ConfigIndex-r13 ::= INTEGER (0..1023) + + +CQI-ReportPeriodicProcExtId-r11 ::= INTEGER (1..maxCQI-ProcExt-r11) + + +CrossCarrierSchedulingConfig-r10 ::= SEQUENCE { + schedulingCellInfo-r10 CHOICE { + own-r10 SEQUENCE { -- No cross carrier scheduling + cif-Presence-r10 BOOLEAN + }, + other-r10 SEQUENCE { -- Cross carrier scheduling + schedulingCellId-r10 ServCellIndex-r10, + pdsch-Start-r10 INTEGER (1..4) + } + } +} + +CrossCarrierSchedulingConfig-r13 ::= SEQUENCE { + schedulingCellInfo-r13 CHOICE { + own-r13 SEQUENCE { -- No cross carrier scheduling + cif-Presence-r13 BOOLEAN + }, + other-r13 SEQUENCE { -- Cross carrier scheduling + schedulingCellId-r13 ServCellIndex-r13, + pdsch-Start-r13 INTEGER (1..4), + cif-InSchedulingCell-r13 INTEGER (1..7) + } + } +} + +CrossCarrierSchedulingConfigLAA-UL-r14 ::= SEQUENCE { + schedulingCellId-r14 ServCellIndex-r13, + cif-InSchedulingCell-r14 INTEGER (1..7) +} + +CSI-IM-Config-r11 ::= SEQUENCE { + csi-IM-ConfigId-r11 CSI-IM-ConfigId-r11, + resourceConfig-r11 INTEGER (0..31), + subframeConfig-r11 INTEGER (0..154), + ..., + [[ interferenceMeasRestriction-r13 BOOLEAN OPTIONAL -- Need ON + ]] +} + +CSI-IM-ConfigExt-r12 ::= SEQUENCE { + csi-IM-ConfigId-v1250 CSI-IM-ConfigId-v1250, + resourceConfig-r12 INTEGER (0..31), + subframeConfig-r12 INTEGER (0..154), + ..., + [[ interferenceMeasRestriction-r13 BOOLEAN OPTIONAL, -- Need ON + csi-IM-ConfigId-v1310 CSI-IM-ConfigId-v1310 OPTIONAL -- Need ON + ]] +} + + +CSI-IM-ConfigId-r11 ::= INTEGER (1..maxCSI-IM-r11) +CSI-IM-ConfigId-r12 ::= INTEGER (1..maxCSI-IM-r12) +CSI-IM-ConfigId-v1250 ::= INTEGER (maxCSI-IM-r12) +CSI-IM-ConfigId-v1310 ::= INTEGER (minCSI-IM-r13..maxCSI-IM-r13) +CSI-IM-ConfigId-r13 ::= INTEGER (1..maxCSI-IM-r13) + + +CSI-Process-r11 ::= SEQUENCE { + csi-ProcessId-r11 CSI-ProcessId-r11, + csi-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11, + csi-IM-ConfigId-r11 CSI-IM-ConfigId-r11, + p-C-AndCBSRList-r11 P-C-AndCBSR-Pair-r13a, + cqi-ReportBothProc-r11 CQI-ReportBothProc-r11 OPTIONAL, -- Need OR + cqi-ReportPeriodicProcId-r11 INTEGER (0..maxCQI-ProcExt-r11) OPTIONAL, -- Need OR + cqi-ReportAperiodicProc-r11 CQI-ReportAperiodicProc-r11 OPTIONAL, -- Need OR + ..., + [[ alternativeCodebookEnabledFor4TXProc-r12 ENUMERATED {true} OPTIONAL, -- Need ON + csi-IM-ConfigIdList-r12 CHOICE { + release NULL, + setup SEQUENCE (SIZE (1..2)) OF CSI-IM-ConfigId-r12 + } OPTIONAL, -- Need ON + cqi-ReportAperiodicProc2-r12 CHOICE { + release NULL, + setup CQI-ReportAperiodicProc-r11 + } OPTIONAL -- Need ON + ]], + [[ cqi-ReportAperiodicProc-v1310 CHOICE { + release NULL, + setup CQI-ReportAperiodicProc-v1310 + } OPTIONAL, -- Need ON + cqi-ReportAperiodicProc2-v1310 CHOICE { + release NULL, + setup CQI-ReportAperiodicProc-v1310 + } OPTIONAL, -- Need ON + eMIMO-Type-r13 CSI-RS-ConfigEMIMO-r13 OPTIONAL -- Need ON + ]], + [[ eMIMO-Type-v1430 CSI-RS-ConfigEMIMO-v1430 OPTIONAL, -- Need ON + eMIMO-Hybrid-r14 CSI-RS-ConfigEMIMO-Hybrid-r14 OPTIONAL, -- Need ON + advancedCodebookEnabled-r14 BOOLEAN OPTIONAL -- Need ON + ]] +} + +CSI-ProcessId-r11 ::= INTEGER (1..maxCSI-Proc-r11) + + +CSI-RS-Config-r10 ::= SEQUENCE { + csi-RS-r10 CHOICE { + release NULL, + setup SEQUENCE { + antennaPortsCount-r10 ENUMERATED {an1, an2, an4, an8}, + resourceConfig-r10 INTEGER (0..31), + subframeConfig-r10 INTEGER (0..154), + p-C-r10 INTEGER (-8..15) + } + } OPTIONAL, -- Need ON + zeroTxPowerCSI-RS-r10 ZeroTxPowerCSI-RS-Conf-r12 OPTIONAL -- Need ON +} + +CSI-RS-Config-v1250 ::= SEQUENCE { + zeroTxPowerCSI-RS2-r12 ZeroTxPowerCSI-RS-Conf-r12 OPTIONAL, -- Need ON + ds-ZeroTxPowerCSI-RS-r12 CHOICE { + release NULL, + setup SEQUENCE { + zeroTxPowerCSI-RS-List-r12 SEQUENCE (SIZE (1..maxDS-ZTP-CSI-RS-r12)) OF ZeroTxPowerCSI-RS-r12 + } + } OPTIONAL -- Need ON +} + +CSI-RS-Config-v1310 ::= SEQUENCE { + eMIMO-Type-r13 CSI-RS-ConfigEMIMO-r13 OPTIONAL -- Need ON +} + +CSI-RS-Config-v1430 ::= SEQUENCE { + eMIMO-Type-v1430 CSI-RS-ConfigEMIMO-v1430 OPTIONAL, -- Need ON + eMIMO-Hybrid-r14 CSI-RS-ConfigEMIMO-Hybrid-r14 OPTIONAL, -- Need ON + advancedCodebookEnabled-r14 BOOLEAN OPTIONAL -- Need ON +} + +ZeroTxPowerCSI-RS-Conf-r12 ::= CHOICE { + release NULL, + setup ZeroTxPowerCSI-RS-r12 +} + +ZeroTxPowerCSI-RS-r12 ::= SEQUENCE { + zeroTxPowerResourceConfigList-r12 BIT STRING (SIZE (16)), + zeroTxPowerSubframeConfig-r12 INTEGER (0..154) +} + + +CSI-RS-ConfigBeamformed-r13 ::= SEQUENCE { + csi-RS-ConfigNZPIdListExt-r13 SEQUENCE (SIZE (1..7)) OF CSI-RS-ConfigNZPId-r13 OPTIONAL, -- Need OR + csi-IM-ConfigIdList-r13 SEQUENCE (SIZE (1..8)) OF CSI-IM-ConfigId-r13 OPTIONAL, -- Need OR + p-C-AndCBSR-PerResourceConfigList-r13 SEQUENCE (SIZE (1..8)) OF P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR + ace-For4Tx-PerResourceConfigList-r13 SEQUENCE (SIZE (1..7)) OF BOOLEAN OPTIONAL, -- Need OR + alternativeCodebookEnabledBeamformed-r13 ENUMERATED {true} OPTIONAL, -- Need OR + channelMeasRestriction-r13 ENUMERATED {on} OPTIONAL -- Need OR +} + +CSI-RS-ConfigBeamformed-r14 ::= SEQUENCE { + csi-RS-ConfigNZPIdListExt-r14 SEQUENCE (SIZE (1..7)) OF CSI-RS-ConfigNZPId-r13 OPTIONAL, -- Need OR + csi-IM-ConfigIdList-r14 SEQUENCE (SIZE (1..8)) OF CSI-IM-ConfigId-r13 OPTIONAL, -- Need OR + p-C-AndCBSR-PerResourceConfigList-r14 SEQUENCE (SIZE (1..8)) OF P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR + ace-For4Tx-PerResourceConfigList-r14 SEQUENCE (SIZE (1..7)) OF BOOLEAN OPTIONAL, -- Need OR + alternativeCodebookEnabledBeamformed-r14 ENUMERATED {true} OPTIONAL, -- Need OR + channelMeasRestriction-r14 ENUMERATED {on} OPTIONAL, -- Need OR + csi-RS-ConfigNZP-ApList-r14 SEQUENCE (SIZE (1..8)) OF CSI-RS-ConfigNZP-r11 + OPTIONAL, -- Need OR + nzp-ResourceConfigOriginal-v1430 CSI-RS-Config-NZP-v1430 OPTIONAL, -- Need OR + csi-RS-NZP-Activation-r14 CSI-RS-ConfigNZP-Activation-r14 OPTIONAL -- Need OR +} + +CSI-RS-ConfigBeamformed-v1430::= SEQUENCE { + csi-RS-ConfigNZP-ApList-r14 SEQUENCE (SIZE (1..8)) OF CSI-RS-ConfigNZP-r11 + OPTIONAL, -- Need OR + nzp-ResourceConfigOriginal-v1430 CSI-RS-Config-NZP-v1430 OPTIONAL, -- Need OR + csi-RS-NZP-Activation-r14 CSI-RS-ConfigNZP-Activation-r14 OPTIONAL -- Need OR +} + +CSI-RS-Config-NZP-v1430::= SEQUENCE { + transmissionComb-r14 NZP-TransmissionComb-r14 OPTIONAL, -- Need OR + frequencyDensity-r14 NZP-FrequencyDensity-r14 OPTIONAL -- Need OR +} + +CSI-RS-ConfigNZP-Activation-r14::= SEQUENCE { + csi-RS-NZP-mode-r14 ENUMERATED {semiPersistent, aperiodic}, + activatedResources-r14 INTEGER (0..4) +} + + +CSI-RS-ConfigEMIMO-r13 ::= CHOICE { + release NULL, + setup CHOICE { + nonPrecoded-r13 CSI-RS-ConfigNonPrecoded-r13, + beamformed-r13 CSI-RS-ConfigBeamformed-r13 + } +} + +CSI-RS-ConfigEMIMO-v1430 ::= CHOICE { + release NULL, + setup CHOICE { + nonPrecoded-v1430 CSI-RS-ConfigNonPrecoded-v1430, + beamformed-v1430 CSI-RS-ConfigBeamformed-v1430 + } +} + +CSI-RS-ConfigEMIMO2-r14 ::= CHOICE { + release NULL, + setup CSI-RS-ConfigBeamformed-r14 +} + +CSI-RS-ConfigEMIMO-Hybrid-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + periodicityOffsetIndex-r14 INTEGER (0..1023) OPTIONAL, -- Need OR + eMIMO-Type2-r14 CSI-RS-ConfigEMIMO2-r14 OPTIONAL -- Need ON + } +} + + + +CSI-RS-ConfigNonPrecoded-r13 ::= SEQUENCE { + p-C-AndCBSRList-r13 P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR + codebookConfigN1-r13 ENUMERATED {n1, n2, n3, n4, n8}, + codebookConfigN2-r13 ENUMERATED {n1, n2, n3, n4, n8}, + codebookOverSamplingRateConfig-O1-r13 ENUMERATED {n4, n8} OPTIONAL, -- Need OR + codebookOverSamplingRateConfig-O2-r13 ENUMERATED {n4, n8} OPTIONAL, -- Need OR + codebookConfig-r13 INTEGER (1..4), + csi-IM-ConfigIdList-r13 SEQUENCE (SIZE (1..2)) OF CSI-IM-ConfigId-r13 OPTIONAL, -- Need OR + csi-RS-ConfigNZP-EMIMO-r13 CSI-RS-ConfigNZP-EMIMO-r13 OPTIONAL -- Need ON +} + +CSI-RS-ConfigNonPrecoded-v1430::= SEQUENCE { + csi-RS-ConfigNZP-EMIMO-v1430 CSI-RS-ConfigNZP-EMIMO-v1430 OPTIONAL, -- Need ON + codebookConfigN1-v1430 ENUMERATED {n5, n6, n7, n10, n12, n14, n16}, + codebookConfigN2-r1430 ENUMERATED {n5, n6, n7 }, + nzp-ResourceConfigTM9-Original-v1430 CSI-RS-Config-NZP-v1430 +} + + +CSI-RS-ConfigNZP-r11 ::= SEQUENCE { + csi-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11, + antennaPortsCount-r11 ENUMERATED {an1, an2, an4, an8}, + resourceConfig-r11 INTEGER (0..31), + subframeConfig-r11 INTEGER (0..154), + scramblingIdentity-r11 INTEGER (0..503), + qcl-CRS-Info-r11 SEQUENCE { + qcl-ScramblingIdentity-r11 INTEGER (0..503), + crs-PortsCount-r11 ENUMERATED {n1, n2, n4, spare1}, + mbsfn-SubframeConfigList-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList MBSFN-SubframeConfigList + } + } OPTIONAL -- Need ON + } OPTIONAL, -- Need OR + ..., + [[ csi-RS-ConfigNZPId-v1310 CSI-RS-ConfigNZPId-v1310 OPTIONAL -- Need ON + ]], + [[ transmissionComb-r14 NZP-TransmissionComb-r14 OPTIONAL, -- Need OR + frequencyDensity-r14 NZP-FrequencyDensity-r14 OPTIONAL -- Need OR + ]], + [[ mbsfn-SubframeConfigList-v1430 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 + } + } OPTIONAL -- Need OP + ]] +} + +CSI-RS-ConfigNZP-EMIMO-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + nzp-resourceConfigList-r13 SEQUENCE (SIZE (1..2)) OF NZP-ResourceConfig-r13, + cdmType-r13 ENUMERATED {cdm2, cdm4} OPTIONAL -- Need OR + } +} + +CSI-RS-ConfigNZP-EMIMO-v1430 ::= SEQUENCE { + -- All extensions are for Non-Precoded so could be grouped by setup/ release choice + nzp-resourceConfigListExt-r14 SEQUENCE (SIZE (0..4)) OF NZP-ResourceConfig-r13, + cdmType-v1430 ENUMERATED {cdm8 } OPTIONAL -- Need OR +} + +NZP-ResourceConfig-r13 ::= SEQUENCE { + resourceConfig-r13 ResourceConfig-r13, + ..., + [[ transmissionComb-r14 NZP-TransmissionComb-r14 OPTIONAL, -- Need OR + frequencyDensity-r14 NZP-FrequencyDensity-r14 OPTIONAL -- Need OR + ]] +} + +ResourceConfig-r13 ::= INTEGER (0..31) + +NZP-TransmissionComb-r14 ::= INTEGER (0..2) +NZP-FrequencyDensity-r14 ::= ENUMERATED {d1, d2, d3} + + +CSI-RS-ConfigNZPId-r11 ::= INTEGER (1..maxCSI-RS-NZP-r11) +CSI-RS-ConfigNZPId-v1310 ::= INTEGER (minCSI-RS-NZP-r13..maxCSI-RS-NZP-r13) +CSI-RS-ConfigNZPId-r13 ::= INTEGER (1..maxCSI-RS-NZP-r13) + + +CSI-RS-ConfigZP-r11 ::= SEQUENCE { + csi-RS-ConfigZPId-r11 CSI-RS-ConfigZPId-r11, + resourceConfigList-r11 BIT STRING (SIZE (16)), + subframeConfig-r11 INTEGER (0..154), + ... +} + +CSI-RS-ConfigZP-ApList-r14 ::= CHOICE { + release NULL, + setup SEQUENCE (SIZE (1.. maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZP-r11 +} + + +CSI-RS-ConfigZPId-r11 ::= INTEGER (1..maxCSI-RS-ZP-r11) + + +DataInactivityTimer-r14 ::= ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, s40, s50, s60, + s80, s100, s120, s150, s180} + + +DMRS-Config-r11 ::= CHOICE { + release NULL, + setup SEQUENCE { + scramblingIdentity-r11 INTEGER (0..503), + scramblingIdentity2-r11 INTEGER (0..503) + } +} +DMRS-Config-v1310 ::= SEQUENCE { + dmrs-tableAlt-r13 ENUMERATED {true} OPTIONAL -- Need OR +} + + +DRB-Identity ::= INTEGER (1..32) + + +EPDCCH-Config-r11 ::= SEQUENCE{ + config-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframePatternConfig-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframePattern-r11 MeasSubframePattern-r10 + } + } OPTIONAL, -- Need ON + startSymbol-r11 INTEGER (1..4) OPTIONAL, -- Need OP + setConfigToReleaseList-r11 EPDCCH-SetConfigToReleaseList-r11 OPTIONAL, -- Need ON + setConfigToAddModList-r11 EPDCCH-SetConfigToAddModList-r11 OPTIONAL -- Need ON + } + } +} + +EPDCCH-SetConfigToAddModList-r11 ::= SEQUENCE (SIZE(1..maxEPDCCH-Set-r11)) OF EPDCCH-SetConfig-r11 + +EPDCCH-SetConfigToReleaseList-r11 ::= SEQUENCE (SIZE(1..maxEPDCCH-Set-r11)) OF EPDCCH-SetConfigId-r11 + +EPDCCH-SetConfig-r11 ::= SEQUENCE { + setConfigId-r11 EPDCCH-SetConfigId-r11, + transmissionType-r11 ENUMERATED {localised, distributed}, + resourceBlockAssignment-r11 SEQUENCE{ + numberPRB-Pairs-r11 ENUMERATED {n2, n4, n8}, + resourceBlockAssignment-r11 BIT STRING (SIZE(4..38)) + }, + dmrs-ScramblingSequenceInt-r11 INTEGER (0..503), + pucch-ResourceStartOffset-r11 INTEGER (0..2047), + re-MappingQCL-ConfigId-r11 PDSCH-RE-MappingQCL-ConfigId-r11 OPTIONAL, -- Need OR + ..., + [[ csi-RS-ConfigZPId2-r12 CHOICE { + release NULL, + setup CSI-RS-ConfigZPId-r11 + } OPTIONAL -- Need ON + ]], + [[ numberPRB-Pairs-v1310 CHOICE { + release NULL, + setup ENUMERATED {n6} + } OPTIONAL, -- Need ON + mpdcch-config-r13 CHOICE { + release NULL, + setup SEQUENCE { + csi-NumRepetitionCE-r13 ENUMERATED {sf1, sf2, sf4, sf8, sf16, sf32}, + mpdcch-pdsch-HoppingConfig-r13 ENUMERATED {on,off}, + mpdcch-StartSF-UESS-r13 CHOICE { + fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, + v5, v8, v10}, tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10, + v20, spare1} + }, + mpdcch-NumRepetition-r13 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + mpdcch-Narrowband-r13 INTEGER (1.. maxAvailNarrowBands-r13) + } + } OPTIONAL -- Need ON + ]] +} + +EPDCCH-SetConfigId-r11 ::= INTEGER (0..1) + + +EIMTA-MainConfig-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + eimta-RNTI-r12 C-RNTI, + eimta-CommandPeriodicity-r12 ENUMERATED {sf10, sf20, sf40, sf80}, + eimta-CommandSubframeSet-r12 BIT STRING (SIZE(10)) + } +} + +EIMTA-MainConfigServCell-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + eimta-UL-DL-ConfigIndex-r12 INTEGER (1..5), + eimta-HARQ-ReferenceConfig-r12 ENUMERATED {sa2, sa4, sa5}, + mbsfn-SubframeConfigList-v1250 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList-r12 MBSFN-SubframeConfigList + } + } + } +} + + +LogicalChannelConfig ::= SEQUENCE { + ul-SpecificParameters SEQUENCE { + priority INTEGER (1..16), + prioritisedBitRate ENUMERATED { + kBps0, kBps8, kBps16, kBps32, kBps64, kBps128, + kBps256, infinity, kBps512-v1020, kBps1024-v1020, + kBps2048-v1020, spare5, spare4, spare3, spare2, + spare1}, + bucketSizeDuration ENUMERATED { + ms50, ms100, ms150, ms300, ms500, ms1000, spare2, + spare1}, + logicalChannelGroup INTEGER (0..3) OPTIONAL -- Need OR + } OPTIONAL, -- Cond UL + ..., + [[ logicalChannelSR-Mask-r9 ENUMERATED {setup} OPTIONAL -- Cond SRmask + ]], + [[ logicalChannelSR-Prohibit-r12 BOOLEAN OPTIONAL -- Need ON + ]], + [[ laa-UL-Allowed-r14 BOOLEAN OPTIONAL, -- Need ON + bitRateQueryProhibitTimer-r14 ENUMERATED { + s0, s0dot4, s0dot8, s1dot6, s3, s6, s12, + s30} OPTIONAL --Need OR + ]] +} + + +LWA-Configuration-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + lwa-Config-r13 LWA-Config-r13 + } +} + +LWA-Config-r13 ::= SEQUENCE { + lwa-MobilityConfig-r13 WLAN-MobilityConfig-r13 OPTIONAL, -- Need ON + lwa-WT-Counter-r13 INTEGER (0..65535) OPTIONAL, -- Need ON + ..., + [[ wt-MAC-Address-r14 OCTET STRING (SIZE (6)) OPTIONAL -- Need ON + ]] +} + + +LWIP-Configuration-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + lwip-Config-r13 LWIP-Config-r13 + } +} + +LWIP-Config-r13 ::= SEQUENCE { + lwip-MobilityConfig-r13 WLAN-MobilityConfig-r13 OPTIONAL, -- Need ON + tunnelConfigLWIP-r13 TunnelConfigLWIP-r13 OPTIONAL, -- Need ON + ... +} + + +MAC-MainConfig ::= SEQUENCE { + ul-SCH-Config SEQUENCE { + maxHARQ-Tx ENUMERATED { + n1, n2, n3, n4, n5, n6, n7, n8, + n10, n12, n16, n20, n24, n28, + spare2, spare1} OPTIONAL, -- Need ON + periodicBSR-Timer PeriodicBSR-Timer-r12 OPTIONAL, -- Need ON + retxBSR-Timer RetxBSR-Timer-r12, + ttiBundling BOOLEAN + } OPTIONAL, -- Need ON + drx-Config DRX-Config OPTIONAL, -- Need ON + timeAlignmentTimerDedicated TimeAlignmentTimer, + phr-Config CHOICE { + release NULL, + setup SEQUENCE { + periodicPHR-Timer ENUMERATED {sf10, sf20, sf50, sf100, sf200, + sf500, sf1000, infinity}, + prohibitPHR-Timer ENUMERATED {sf0, sf10, sf20, sf50, sf100, + sf200, sf500, sf1000}, + dl-PathlossChange ENUMERATED {dB1, dB3, dB6, infinity} + } + } OPTIONAL, -- Need ON + ..., + [[ sr-ProhibitTimer-r9 INTEGER (0..7) OPTIONAL -- Need ON + ]], + [[ mac-MainConfig-v1020 SEQUENCE { + sCellDeactivationTimer-r10 ENUMERATED { + rf2, rf4, rf8, rf16, rf32, rf64, rf128, + spare} OPTIONAL, -- Need OP + extendedBSR-Sizes-r10 ENUMERATED {setup} OPTIONAL, -- Need OR + extendedPHR-r10 ENUMERATED {setup} OPTIONAL -- Need OR + } OPTIONAL -- Need ON + ]], + [[ stag-ToReleaseList-r11 STAG-ToReleaseList-r11 OPTIONAL, -- Need ON + stag-ToAddModList-r11 STAG-ToAddModList-r11 OPTIONAL, -- Need ON + drx-Config-v1130 DRX-Config-v1130 OPTIONAL -- Need ON + ]], + [[ e-HARQ-Pattern-r12 BOOLEAN OPTIONAL, -- Need ON + dualConnectivityPHR CHOICE { + release NULL, + setup SEQUENCE { + phr-ModeOtherCG-r12 ENUMERATED {real, virtual} + } + } OPTIONAL, -- Need ON + logicalChannelSR-Config-r12 CHOICE { + release NULL, + setup SEQUENCE { + logicalChannelSR-ProhibitTimer-r12 ENUMERATED {sf20, sf40, sf64, sf128, sf512, sf1024, sf2560, spare1} + } + } OPTIONAL -- Need ON + ]], + [[ drx-Config-v1310 DRX-Config-v1310 OPTIONAL, -- Need ON + extendedPHR2-r13 BOOLEAN OPTIONAL, -- Need ON + eDRX-Config-CycleStartOffset-r13 CHOICE { + release NULL, + setup + CHOICE { + sf5120 INTEGER(0..1), + sf10240 INTEGER(0..3) + } + } OPTIONAL -- Need ON + ]], + [[ drx-Config-r13 CHOICE { + release NULL, + setup DRX-Config-r13 + } OPTIONAL -- Need ON + ]], + [[ skipUplinkTx-r14 CHOICE { + release NULL, + setup SEQUENCE { + skipUplinkTxSPS-r14 ENUMERATED {true} OPTIONAL, -- Need OR + skipUplinkTxDynamic-r14 ENUMERATED {true} OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + dataInactivityTimerConfig-r14 CHOICE { + release NULL, + setup SEQUENCE { + dataInactivityTimer-r14 DataInactivityTimer-r14 + } + } OPTIONAL -- Need ON + ]], + [[ rai-Activation-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + +MAC-MainConfigSCell-r11 ::= SEQUENCE { + stag-Id-r11 STAG-Id-r11 OPTIONAL, -- Need OP + ... +} + +DRX-Config ::= CHOICE { + release NULL, + setup SEQUENCE { + onDurationTimer ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200}, + drx-InactivityTimer ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200, psf300, psf500, psf750, + psf1280, psf1920, psf2560, psf0-v1020, + spare9, spare8, spare7, spare6, + spare5, spare4, spare3, spare2, + spare1}, + drx-RetransmissionTimer ENUMERATED { + psf1, psf2, psf4, psf6, psf8, psf16, + psf24, psf33}, + longDRX-CycleStartOffset CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf1280 INTEGER(0..1279), + sf2048 INTEGER(0..2047), + sf2560 INTEGER(0..2559) + }, + shortDRX SEQUENCE { + shortDRX-Cycle ENUMERATED { + sf2, sf5, sf8, sf10, sf16, sf20, + sf32, sf40, sf64, sf80, sf128, sf160, + sf256, sf320, sf512, sf640}, + drxShortCycleTimer INTEGER (1..16) + } OPTIONAL -- Need OR + } +} + +DRX-Config-v1130 ::= SEQUENCE { + drx-RetransmissionTimer-v1130 ENUMERATED {psf0-v1130} OPTIONAL, --Need OR + longDRX-CycleStartOffset-v1130 CHOICE { + sf60-v1130 INTEGER(0..59), + sf70-v1130 INTEGER(0..69) + } OPTIONAL, --Need OR + shortDRX-Cycle-v1130 ENUMERATED {sf4-v1130} OPTIONAL --Need OR +} +DRX-Config-v1310 ::= SEQUENCE { + longDRX-CycleStartOffset-v1310 SEQUENCE { + sf60-v1310 INTEGER(0..59) + } OPTIONAL --Need OR +} + +DRX-Config-r13 ::= SEQUENCE { + onDurationTimer-v1310 ENUMERATED {psf300, psf400, psf500, psf600, + psf800, psf1000, psf1200, psf1600} OPTIONAL, --Need OR + drx-RetransmissionTimer-v1310 ENUMERATED {psf40, psf64, psf80, psf96, psf112, + psf128, psf160, psf320} + OPTIONAL, --Need OR + drx-ULRetransmissionTimer-r13 ENUMERATED {psf0, psf1, psf2, psf4, psf6, psf8, psf16, + psf24, psf33, psf40, psf64, psf80, psf96, + psf112, psf128, psf160, psf320} + OPTIONAL --Need OR +} + +PeriodicBSR-Timer-r12 ::= ENUMERATED { + sf5, sf10, sf16, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, sf1280, sf2560, + infinity, spare1} + +RetxBSR-Timer-r12 ::= ENUMERATED { + sf320, sf640, sf1280, sf2560, sf5120, + sf10240, spare2, spare1} + +STAG-ToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-Id-r11 + +STAG-ToAddModList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-ToAddMod-r11 + +STAG-ToAddMod-r11 ::= SEQUENCE { + stag-Id-r11 STAG-Id-r11, + timeAlignmentTimerSTAG-r11 TimeAlignmentTimer, + ... +} + +STAG-Id-r11::= INTEGER (1..maxSTAG-r11) + + +P-C-AndCBSR-r11 ::= SEQUENCE { + p-C-r11 INTEGER (-8..15), + codebookSubsetRestriction-r11 BIT STRING +} + +P-C-AndCBSR-r13 ::= SEQUENCE { + p-C-r13 INTEGER (-8..15), + cbsr-Selection-r13 CHOICE{ + nonPrecoded-r13 SEQUENCE { + codebookSubsetRestriction1-r13 BIT STRING, + codebookSubsetRestriction2-r13 BIT STRING + }, + beamformedK1a-r13 SEQUENCE { + codebookSubsetRestriction3-r13 BIT STRING + }, + beamformedKN-r13 SEQUENCE { + codebookSubsetRestriction-r13 BIT STRING + } + }, + ... +} + +P-C-AndCBSR-Pair-r13a ::= SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r11 + +P-C-AndCBSR-Pair-r13 ::= SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r13 + + +PDCCH-ConfigSCell-r13 ::= SEQUENCE { + skipMonitoringDCI-format0-1A-r13 ENUMERATED {true} OPTIONAL -- Need OR +} + +PDCCH-ConfigLAA-r14 ::= SEQUENCE { + maxNumberOfSchedSubframes-Format0B-r14 ENUMERATED {sf2, sf3, sf4} OPTIONAL, -- Need OR + maxNumberOfSchedSubframes-Format4B-r14 ENUMERATED {sf2, sf3, sf4} OPTIONAL, -- Need OR + skipMonitoringDCI-Format0A-r14 ENUMERATED {true} OPTIONAL, -- Need OR + skipMonitoringDCI-Format4A-r14 ENUMERATED {true} OPTIONAL, -- Need OR + pdcch-CandidateReductions-Format0A-r14 + PDCCH-CandidateReductions-r13 OPTIONAL, -- Need ON + pdcch-CandidateReductions-Format4A-r14 + PDCCH-CandidateReductionsLAA-UL-r14 OPTIONAL, -- Need ON + pdcch-CandidateReductions-Format0B-r14 + PDCCH-CandidateReductionsLAA-UL-r14 OPTIONAL, -- Need ON + pdcch-CandidateReductions-Format4B-r14 + PDCCH-CandidateReductionsLAA-UL-r14 OPTIONAL -- Need ON +} + +PDCCH-CandidateReductionValue-r13 ::= ENUMERATED {n0, n33, n66, n100} + +PDCCH-CandidateReductionValue-r14 ::= ENUMERATED {n0, n50, n100, n150} + +PDCCH-CandidateReductions-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + pdcch-candidateReductionAL1-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL2-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL3-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL4-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL5-r13 PDCCH-CandidateReductionValue-r13 + } +} + +PDCCH-CandidateReductionsLAA-UL-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + pdcch-candidateReductionAL1-r14 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL2-r14 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL3-r14 PDCCH-CandidateReductionValue-r14, + pdcch-candidateReductionAL4-r14 PDCCH-CandidateReductionValue-r14, + pdcch-candidateReductionAL5-r14 PDCCH-CandidateReductionValue-r14 + } +} + + +PDCP-Config ::= SEQUENCE { + discardTimer ENUMERATED { + ms50, ms100, ms150, ms300, ms500, + ms750, ms1500, infinity + } OPTIONAL, -- Cond Setup + rlc-AM SEQUENCE { + statusReportRequired BOOLEAN + } OPTIONAL, -- Cond Rlc-AM + rlc-UM SEQUENCE { + pdcp-SN-Size ENUMERATED {len7bits, len12bits} + } OPTIONAL, -- Cond Rlc-UM + headerCompression CHOICE { + notUsed NULL, + rohc SEQUENCE { + maxCID INTEGER (1..16383) DEFAULT 15, + profiles SEQUENCE { + profile0x0001 BOOLEAN, + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0101 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + ... + } + }, + ..., + [[ rn-IntegrityProtection-r10 ENUMERATED {enabled} OPTIONAL -- Cond RN + ]], + [[ pdcp-SN-Size-v1130 ENUMERATED {len15bits} OPTIONAL -- Cond Rlc-AM2 + ]], + [[ ul-DataSplitDRB-ViaSCG-r12 BOOLEAN OPTIONAL, -- Need ON + t-Reordering-r12 ENUMERATED { + ms0, ms20, ms40, ms60, ms80, ms100, ms120, ms140, + ms160, ms180, ms200, ms220, ms240, ms260, ms280, ms300, + ms500, ms750, spare14, spare13, spare12, spare11, spare10, + spare9, spare8, spare7, spare6, spare5, spare4, spare3, + spare2, spare1} OPTIONAL -- Cond SetupS + ]], + [[ ul-DataSplitThreshold-r13 CHOICE { + release NULL, + setup ENUMERATED { + b0, b100, b200, b400, b800, b1600, b3200, b6400, b12800, + b25600, b51200, b102400, b204800, b409600, b819200, + spare1} + } OPTIONAL, -- Need ON + pdcp-SN-Size-v1310 ENUMERATED {len18bits} OPTIONAL, -- Cond Rlc-AM3 + statusFeedback-r13 CHOICE { + release NULL, + setup SEQUENCE { + statusPDU-TypeForPolling-r13 ENUMERATED {type1, type2} OPTIONAL, -- Need ON + statusPDU-Periodicity-Type1-r13 ENUMERATED { + ms5, ms10, ms20, ms30, ms40, ms50, ms60, ms70, ms80, ms90, + ms100, ms150, ms200, ms300, ms500, ms1000, ms2000, ms5000, + ms10000, ms20000, ms50000} OPTIONAL, -- Need ON + statusPDU-Periodicity-Type2-r13 ENUMERATED { + ms5, ms10, ms20, ms30, ms40, ms50, ms60, ms70, ms80, ms90, + ms100, ms150, ms200, ms300, ms500, ms1000, ms2000, ms5000, + ms10000, ms20000, ms50000} OPTIONAL, -- Need ON + statusPDU-Periodicity-Offset-r13 ENUMERATED { + ms1, ms2, ms5, ms10, ms25, ms50, ms100, ms250, ms500, + ms2500, ms5000, ms25000} OPTIONAL -- Need ON + } + } OPTIONAL -- Need ON + ]], + [[ ul-LWA-Config-r14 CHOICE { + release NULL, + setup SEQUENCE { + ul-LWA-DRB-ViaWLAN-r14 BOOLEAN, + ul-LWA-DataSplitThreshold-r14 ENUMERATED { + b0, b100, b200, b400, b800, b1600, b3200, b6400, + b12800, b25600, b51200, b102400, b204800, b409600, + b819200 } OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + uplinkOnlyHeaderCompression-r14 CHOICE { + notUsed-r14 NULL, + rohc-r14 SEQUENCE { + maxCID-r14 INTEGER (1..16383) DEFAULT 15, + profiles-r14 SEQUENCE { + profile0x0006-r14 BOOLEAN + }, + ... + } + } OPTIONAL -- Need ON + ]] +} + + +PDSCH-ConfigCommon ::= SEQUENCE { + referenceSignalPower INTEGER (-60..50), + p-b INTEGER (0..3) +} + +PDSCH-ConfigCommon-v1310 ::= SEQUENCE { + pdsch-maxNumRepetitionCEmodeA-r13 ENUMERATED { + r16, r32 } OPTIONAL, -- Need OR + pdsch-maxNumRepetitionCEmodeB-r13 ENUMERATED { + r192, r256, r384, r512, r768, r1024, + r1536, r2048} OPTIONAL -- Need OR +} + +PDSCH-ConfigDedicated::= SEQUENCE { + p-a ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} +} + +PDSCH-ConfigDedicated-v1130 ::= SEQUENCE { + dmrs-ConfigPDSCH-r11 DMRS-Config-r11 OPTIONAL, -- Need ON + qcl-Operation ENUMERATED {typeA, typeB} OPTIONAL, -- Need OR + re-MappingQCLConfigToReleaseList-r11 RE-MappingQCLConfigToReleaseList-r11 OPTIONAL, -- Need ON + re-MappingQCLConfigToAddModList-r11 RE-MappingQCLConfigToAddModList-r11 OPTIONAL -- Need ON +} + +PDSCH-ConfigDedicated-v1280 ::= SEQUENCE { + tbsIndexAlt-r12 ENUMERATED {a26, a33} OPTIONAL -- Need OR +} + +PDSCH-ConfigDedicated-v1310 ::= SEQUENCE { + dmrs-ConfigPDSCH-v1310 DMRS-Config-v1310 OPTIONAL -- Need ON +} + +PDSCH-ConfigDedicated-v1430 ::= SEQUENCE { + ce-PDSCH-MaxBandwidth-r14 ENUMERATED {bw5, bw20} OPTIONAL, -- Need OP + ce-PDSCH-TenProcesses-r14 ENUMERATED {on} OPTIONAL, -- Need OR + ce-HARQ-AckBundling-r14 ENUMERATED {on} OPTIONAL, -- Need OR + ce-SchedulingEnhancement-r14 ENUMERATED {range1, range2} OPTIONAL, -- Need OR + tbsIndexAlt2-r14 ENUMERATED {b33} OPTIONAL -- Need OR +} + +PDSCH-ConfigDedicatedSCell-v1430 ::= SEQUENCE { + tbsIndexAlt2-r14 ENUMERATED {b33} OPTIONAL -- Need OR +} + +RE-MappingQCLConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxRE-MapQCL-r11)) OF PDSCH-RE-MappingQCL-Config-r11 + +RE-MappingQCLConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxRE-MapQCL-r11)) OF PDSCH-RE-MappingQCL-ConfigId-r11 + +PDSCH-RE-MappingQCL-Config-r11 ::= SEQUENCE { + pdsch-RE-MappingQCL-ConfigId-r11 PDSCH-RE-MappingQCL-ConfigId-r11, + optionalSetOfFields-r11 SEQUENCE { + crs-PortsCount-r11 ENUMERATED {n1, n2, n4, spare1}, + crs-FreqShift-r11 INTEGER (0..5), + mbsfn-SubframeConfigList-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList MBSFN-SubframeConfigList + } + } OPTIONAL, -- Need ON + pdsch-Start-r11 ENUMERATED {reserved, n1, n2, n3, n4, assigned} + } OPTIONAL, -- Need OP + csi-RS-ConfigZPId-r11 CSI-RS-ConfigZPId-r11, + qcl-CSI-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11 OPTIONAL, -- Need OR + ..., + [[ mbsfn-SubframeConfigList-v1430 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 + } + } OPTIONAL -- Need OP + ]] +} + + +PDSCH-RE-MappingQCL-ConfigId-r11 ::= INTEGER (1..maxRE-MapQCL-r11) + +PerCC-GapIndicationList-r14 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF PerCC-GapIndication-r14 + +PerCC-GapIndication-r14 ::= SEQUENCE { + servCellId-r14 ServCellIndex-r13, + gapIndication-r14 ENUMERATED {gap, ncsg, nogap-noNcsg} +} + + +PHICH-Config ::= SEQUENCE { + phich-Duration ENUMERATED {normal, extended}, + phich-Resource ENUMERATED {oneSixth, half, one, two} +} + + +PhysicalConfigDedicated ::= SEQUENCE { + pdsch-ConfigDedicated PDSCH-ConfigDedicated OPTIONAL, -- Need ON + pucch-ConfigDedicated PUCCH-ConfigDedicated OPTIONAL, -- Need ON + pusch-ConfigDedicated PUSCH-ConfigDedicated OPTIONAL, -- Need ON + uplinkPowerControlDedicated UplinkPowerControlDedicated OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUCCH TPC-PDCCH-Config OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUSCH TPC-PDCCH-Config OPTIONAL, -- Need ON + cqi-ReportConfig CQI-ReportConfig OPTIONAL, -- Cond CQI-r8 + soundingRS-UL-ConfigDedicated SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON + antennaInfo CHOICE { + explicitValue AntennaInfoDedicated, + defaultValue NULL + } OPTIONAL, -- Cond AI-r8 + schedulingRequestConfig SchedulingRequestConfig OPTIONAL, -- Need ON + ..., + [[ cqi-ReportConfig-v920 CQI-ReportConfig-v920 OPTIONAL, -- Cond CQI-r8 + antennaInfo-v920 AntennaInfoDedicated-v920 OPTIONAL -- Cond AI-r8 + ]], + [[ antennaInfo-r10 CHOICE { + explicitValue-r10 AntennaInfoDedicated-r10, + defaultValue NULL + } OPTIONAL, -- Cond AI-r10 + antennaInfoUL-r10 AntennaInfoUL-r10 OPTIONAL, -- Need ON + cif-Presence-r10 BOOLEAN OPTIONAL, -- Need ON + cqi-ReportConfig-r10 CQI-ReportConfig-r10 OPTIONAL, -- Cond CQI-r10 + csi-RS-Config-r10 CSI-RS-Config-r10 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1020 PUCCH-ConfigDedicated-v1020 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1020 PUSCH-ConfigDedicated-v1020 OPTIONAL, -- Need ON + schedulingRequestConfig-v1020 SchedulingRequestConfig-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1020 + SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-r10 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1020 + UplinkPowerControlDedicated-v1020 OPTIONAL -- Need ON + ]], + [[ additionalSpectrumEmissionCA-r10 CHOICE { + release NULL, + setup SEQUENCE { + additionalSpectrumEmissionPCell-r10 AdditionalSpectrumEmission + } + } OPTIONAL -- Need ON + ]], + [[ -- DL configuration as well as configuration applicable for DL and UL + csi-RS-ConfigNZPToReleaseList-r11 + CSI-RS-ConfigNZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModList-r11 + CSI-RS-ConfigNZPToAddModList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToReleaseList-r11 + CSI-RS-ConfigZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToAddModList-r11 CSI-RS-ConfigZPToAddModList-r11 OPTIONAL, -- Need ON + epdcch-Config-r11 EPDCCH-Config-r11 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1130 PDSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + -- UL configuration + cqi-ReportConfig-v1130 CQI-ReportConfig-v1130 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1130 PUCCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1130 PUSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1130 + UplinkPowerControlDedicated-v1130 OPTIONAL -- Need ON + ]], + [[ antennaInfo-v1250 AntennaInfoDedicated-v1250 OPTIONAL, -- Cond AI-r10 + eimta-MainConfig-r12 EIMTA-MainConfig-r12 OPTIONAL, -- Need ON + eimta-MainConfigPCell-r12 EIMTA-MainConfigServCell-r12 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1250 PUCCH-ConfigDedicated-v1250 OPTIONAL, -- Need ON + cqi-ReportConfigPCell-v1250 CQI-ReportConfig-v1250 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1250 + UplinkPowerControlDedicated-v1250 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1250 PUSCH-ConfigDedicated-v1250 OPTIONAL, -- Need ON + csi-RS-Config-v1250 CSI-RS-Config-v1250 OPTIONAL -- Need ON + ]], + [[ pdsch-ConfigDedicated-v1280 PDSCH-ConfigDedicated-v1280 OPTIONAL -- Need ON + ]], + [[ pdsch-ConfigDedicated-v1310 PDSCH-ConfigDedicated-v1310 OPTIONAL, -- Need ON + pucch-ConfigDedicated-r13 PUCCH-ConfigDedicated-r13 OPTIONAL, -- Need ON + pusch-ConfigDedicated-r13 PUSCH-ConfigDedicated-r13 OPTIONAL, -- Need ON + pdcch-CandidateReductions-r13 + PDCCH-CandidateReductions-r13 OPTIONAL, -- Need ON + cqi-ReportConfig-v1310 CQI-ReportConfig-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1310 + SoundingRS-UL-ConfigDedicated-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-v1310 + SoundingRS-UL-ConfigDedicatedAperiodic-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, -- Need ON + csi-RS-Config-v1310 CSI-RS-Config-v1310 OPTIONAL, -- Need ON + ce-Mode-r13 CHOICE { + release NULL, + setup ENUMERATED {ce-ModeA,ce-ModeB} + } OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModListExt-r13 CSI-RS-ConfigNZPToAddModListExt-r13 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToReleaseListExt-r13 CSI-RS-ConfigNZPToReleaseListExt-r13 OPTIONAL -- Need ON + ]], + [[ cqi-ReportConfig-v1320 CQI-ReportConfig-v1320 OPTIONAL -- Need ON + ]], + [[ typeA-SRS-TPC-PDCCH-Group-r14 CHOICE { + release NULL, + setup SEQUENCE (SIZE (1..32)) OF SRS-TPC-PDCCH-Config-r14 + } OPTIONAL, -- Need ON + must-Config-r14 CHOICE{ + release NULL, + setup SEQUENCE { + k-max-r14 ENUMERATED {l1, l3}, + p-a-must-r14 ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + pusch-EnhancementsConfig-r14 PUSCH-EnhancementsConfig-r14 OPTIONAL, -- Need ON + ce-pdsch-pusch-EnhancementConfig-r14 ENUMERATED {on} OPTIONAL, -- Need OR + antennaInfo-v1430 AntennaInfoDedicated-v1430 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1430 PUCCH-ConfigDedicated-v1430 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1430 PDSCH-ConfigDedicated-v1430 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1430 PUSCH-ConfigDedicated-v1430 OPTIONAL, -- Need ON + soundingRS-UL-PeriodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-UL-ConfigDedicated OPTIONAL, -- Cond PeriodicSRSPCell + soundingRS-UL-PeriodicConfigDedicatedUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Cond PeriodicSRSExt + soundingRS-UL-AperiodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL, -- Cond AperiodicSRS + soundingRS-UL-ConfigDedicatedApUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, -- Cond AperiodicSRSExt + csi-RS-Config-v1430 CSI-RS-Config-v1430 OPTIONAL, -- Need ON + csi-RS-ConfigZP-ApList-r14 CSI-RS-ConfigZP-ApList-r14 OPTIONAL, -- Need ON + cqi-ReportConfig-v1430 CQI-ReportConfig-v1430 OPTIONAL, -- Need ON + semiOpenLoop-r14 BOOLEAN OPTIONAL -- Need ON + ]] +} + +PhysicalConfigDedicated-v1370 ::= SEQUENCE { + pucch-ConfigDedicated-v1370 PUCCH-ConfigDedicated-v1370 OPTIONAL -- Cond PUCCH-Format4or5 +} + +PhysicalConfigDedicatedSCell-r10 ::= SEQUENCE { + -- DL configuration as well as configuration applicable for DL and UL + nonUL-Configuration-r10 SEQUENCE { + antennaInfo-r10 + AntennaInfoDedicated-r10 OPTIONAL, -- Need ON + crossCarrierSchedulingConfig-r10 + CrossCarrierSchedulingConfig-r10 OPTIONAL, -- Need ON + csi-RS-Config-r10 CSI-RS-Config-r10 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-r10 PDSCH-ConfigDedicated OPTIONAL -- Need ON + } OPTIONAL, -- Cond SCellAdd + -- UL configuration + ul-Configuration-r10 SEQUENCE { + antennaInfoUL-r10 AntennaInfoUL-r10 OPTIONAL, -- Need ON + pusch-ConfigDedicatedSCell-r10 + PUSCH-ConfigDedicatedSCell-r10 OPTIONAL, -- Cond PUSCH-SCell1 + uplinkPowerControlDedicatedSCell-r10 + UplinkPowerControlDedicatedSCell-r10 OPTIONAL, -- Need ON + cqi-ReportConfigSCell-r10 CQI-ReportConfigSCell-r10 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-r10 + SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1020 + SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-r10 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL -- Need ON + } OPTIONAL, -- Cond CommonUL + ..., + [[ -- DL configuration as well as configuration applicable for DL and UL + csi-RS-ConfigNZPToReleaseList-r11 + CSI-RS-ConfigNZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModList-r11 + CSI-RS-ConfigNZPToAddModList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToReleaseList-r11 + CSI-RS-ConfigZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToAddModList-r11 + CSI-RS-ConfigZPToAddModList-r11 OPTIONAL, -- Need ON + epdcch-Config-r11 EPDCCH-Config-r11 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1130 PDSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + -- UL configuration + cqi-ReportConfig-v1130 CQI-ReportConfig-v1130 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1130 + PUSCH-ConfigDedicated-v1130 OPTIONAL, -- Cond PUSCH-SCell1 + uplinkPowerControlDedicatedSCell-v1130 + UplinkPowerControlDedicated-v1130 OPTIONAL -- Need ON + ]], + [[ antennaInfo-v1250 AntennaInfoDedicated-v1250 OPTIONAL, -- Need ON + eimta-MainConfigSCell-r12 + EIMTA-MainConfigServCell-r12 OPTIONAL, -- Need ON + cqi-ReportConfigSCell-v1250 CQI-ReportConfig-v1250 OPTIONAL, -- Need ON + uplinkPowerControlDedicatedSCell-v1250 + UplinkPowerControlDedicated-v1250 OPTIONAL, -- Need ON + csi-RS-Config-v1250 CSI-RS-Config-v1250 OPTIONAL -- Need ON + ]], + [[ pdsch-ConfigDedicated-v1280 PDSCH-ConfigDedicated-v1280 OPTIONAL -- Need ON + ]], + [[ pucch-Cell-r13 ENUMERATED {true} OPTIONAL, -- Cond PUCCH-SCell1 + pucch-SCell CHOICE{ + release NULL, + setup SEQUENCE { + pucch-ConfigDedicated-r13 + PUCCH-ConfigDedicated-r13 OPTIONAL, -- Need ON + schedulingRequestConfig-r13 + SchedulingRequestConfigSCell-r13 OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUCCH-SCell-r13 + TPC-PDCCH-ConfigSCell-r13 OPTIONAL, -- Need ON + pusch-ConfigDedicated-r13 + PUSCH-ConfigDedicated-r13 OPTIONAL, -- Cond PUSCH-SCell + uplinkPowerControlDedicated-r13 + UplinkPowerControlDedicatedSCell-v1310 OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + crossCarrierSchedulingConfig-r13 + CrossCarrierSchedulingConfig-r13 OPTIONAL, -- Cond Cross-Carrier-Config + pdcch-ConfigSCell-r13 PDCCH-ConfigSCell-r13 OPTIONAL, -- Need ON + cqi-ReportConfig-v1310 CQI-ReportConfig-v1310 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1310 PDSCH-ConfigDedicated-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1310 + SoundingRS-UL-ConfigDedicated-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-v1310 + SoundingRS-UL-ConfigDedicatedAperiodic-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, -- Need ON + csi-RS-Config-v1310 CSI-RS-Config-v1310 OPTIONAL, -- Need ON + laa-SCellConfiguration-r13 LAA-SCellConfiguration-r13 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModListExt-r13 CSI-RS-ConfigNZPToAddModListExt-r13 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToReleaseListExt-r13 CSI-RS-ConfigNZPToReleaseListExt-r13 OPTIONAL -- Need ON + ]], + [[ cqi-ReportConfig-v1320 CQI-ReportConfig-v1320 OPTIONAL -- Need ON + ]], + [[ laa-SCellConfiguration-v1430 LAA-SCellConfiguration-v1430 + OPTIONAL, -- Need ON + typeB-SRS-TPC-PDCCH-Config-r14 SRS-TPC-PDCCH-Config-r14 OPTIONAL, -- Need ON + + uplinkPUSCH-LessPowerControlDedicated-v1430 UplinkPUSCH-LessPowerControlDedicated-v1430 OPTIONAL, -- Need ON + soundingRS-UL-PeriodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-UL-ConfigDedicated OPTIONAL, -- Cond PeriodicSRS + soundingRS-UL-PeriodicConfigDedicatedUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Cond PeriodicSRSExt + soundingRS-UL-AperiodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-AperiodicSet-r14 OPTIONAL, -- Cond AperiodicSRS + soundingRS-UL-ConfigDedicatedApUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-AperiodicSetUpPTsExt-r14 OPTIONAL, -- Cond AperiodicSRSExt + must-Config-r14 CHOICE{ + release NULL, + setup SEQUENCE { + k-max-r14 ENUMERATED {l1, l3}, + p-a-must-r14 ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1430 PUSCH-ConfigDedicatedSCell-v1430 OPTIONAL, -- Need ON + csi-RS-Config-v1430 CSI-RS-Config-v1430 OPTIONAL, -- Need ON + csi-RS-ConfigZP-ApList-r14 CSI-RS-ConfigZP-ApList-r14 OPTIONAL, -- Need ON + cqi-ReportConfig-v1430 CQI-ReportConfig-v1430 OPTIONAL, -- Need ON + semiOpenLoop-r14 BOOLEAN OPTIONAL, -- Need ON + pdsch-ConfigDedicatedSCell-v1430 PDSCH-ConfigDedicatedSCell-v1430 OPTIONAL -- Need ON + ]] +} + +PhysicalConfigDedicatedSCell-v1370 ::= SEQUENCE { + pucch-SCell-v1370 CHOICE{ + release NULL, + setup SEQUENCE { + pucch-ConfigDedicated-v1370 PUCCH-ConfigDedicated-v1370 OPTIONAL -- Cond PUCCH-Format4or5 + } + } +} + +LAA-SCellConfiguration-r13 ::= SEQUENCE { + subframeStartPosition-r13 ENUMERATED {s0, s07}, + laa-SCellSubframeConfig-r13 BIT STRING (SIZE(8)) +} + +LAA-SCellConfiguration-v1430 ::= SEQUENCE { + crossCarrierSchedulingConfig-UL-r14 CHOICE { + release NULL, + setup SEQUENCE { + crossCarrierSchedulingConfigLAA-UL-r14 CrossCarrierSchedulingConfigLAA-UL-r14 + } + } OPTIONAL, -- Cond Cross-Carrier-ConfigUL + lbt-Config-r14 LBT-Config-r14 OPTIONAL, -- Need ON + pdcch-ConfigLAA-r14 PDCCH-ConfigLAA-r14 OPTIONAL, -- Need ON + absenceOfAnyOtherTechnology-r14 ENUMERATED {true} OPTIONAL, -- Need OR + soundingRS-UL-ConfigDedicatedAperiodic-v1430 + SoundingRS-UL-ConfigDedicatedAperiodic-v1430 OPTIONAL -- Need ON +} + +LBT-Config-r14 ::= CHOICE{ + maxEnergyDetectionThreshold-r14 INTEGER(-85..-52), + energyDetectionThresholdOffset-r14 INTEGER(-13..20) +} + +CSI-RS-ConfigNZPToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r11)) OF CSI-RS-ConfigNZP-r11 + +CSI-RS-ConfigNZPToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-v1310)) OF CSI-RS-ConfigNZP-r11 + +CSI-RS-ConfigNZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r11)) OF CSI-RS-ConfigNZPId-r11 + +CSI-RS-ConfigNZPToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-v1310)) OF CSI-RS-ConfigNZPId-v1310 + +CSI-RS-ConfigZPToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZP-r11 + +CSI-RS-ConfigZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZPId-r11 + +SoundingRS-AperiodicSet-r14 ::= SEQUENCE{ + srs-CC-SetIndexList-r14 + SEQUENCE (SIZE (1..4)) OF SRS-CC-SetIndex-r14 + OPTIONAL, -- Cond SRS-Trigger-TypeA + soundingRS-UL-ConfigDedicatedAperiodic-r14 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 +} + +SoundingRS-AperiodicSetUpPTsExt-r14 ::= SEQUENCE{ + srs-CC-SetIndexList-r14 + SEQUENCE (SIZE (1..4)) OF SRS-CC-SetIndex-r14 + OPTIONAL, -- Cond SRS-Trigger-TypeA + soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r14 + SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 +} + + +P-Max ::= INTEGER (-30..33) + + +PRACH-ConfigSIB ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + prach-ConfigInfo PRACH-ConfigInfo +} + +PRACH-ConfigSIB-v1310 ::= SEQUENCE { + rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsPrachInfoList-r13, + mpdcch-startSF-CSS-RA-r13 CHOICE { + fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, v5, v8, + v10}, + tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10, v20, spare} + } OPTIONAL, -- Cond MP + prach-HoppingOffset-r13 INTEGER (0..94) OPTIONAL, -- Need OR + prach-ParametersListCE-r13 PRACH-ParametersListCE-r13 +} + +PRACH-Config ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + prach-ConfigInfo PRACH-ConfigInfo OPTIONAL -- Need ON +} + +PRACH-Config-v1310 ::= SEQUENCE { + rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsPrachInfoList-r13 OPTIONAL, -- Cond MP + mpdcch-startSF-CSS-RA-r13 CHOICE { + fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, v5, v8, + v10}, + tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10, v20, spare} + } OPTIONAL, -- Cond MP + prach-HoppingOffset-r13 INTEGER (0..94) OPTIONAL, -- Need OR + prach-ParametersListCE-r13 PRACH-ParametersListCE-r13 OPTIONAL, -- Cond MP + initial-CE-level-r13 INTEGER (0..3) OPTIONAL -- Need OR +} + +PRACH-Config-v1430 ::= SEQUENCE { + rootSequenceIndexHighSpeed-r14 INTEGER (0..837), + zeroCorrelationZoneConfigHighSpeed-r14 INTEGER (0..12), + prach-ConfigIndexHighSpeed-r14 INTEGER (0..63), + prach-FreqOffsetHighSpeed-r14 INTEGER (0..94) +} + +PRACH-ConfigSCell-r10 ::= SEQUENCE { + prach-ConfigIndex-r10 INTEGER (0..63) +} + +PRACH-ConfigInfo ::= SEQUENCE { + prach-ConfigIndex INTEGER (0..63), + highSpeedFlag BOOLEAN, + zeroCorrelationZoneConfig INTEGER (0..15), + prach-FreqOffset INTEGER (0..94) +} + +PRACH-ParametersListCE-r13 ::= SEQUENCE (SIZE(1..maxCE-Level-r13)) OF PRACH-ParametersCE-r13 + +PRACH-ParametersCE-r13 ::= SEQUENCE { + prach-ConfigIndex-r13 INTEGER (0..63), + prach-FreqOffset-r13 INTEGER (0..94), + prach-StartingSubframe-r13 ENUMERATED {sf2, sf4, sf8, sf16, sf32, sf64, sf128, + sf256} OPTIONAL, -- Need OP + maxNumPreambleAttemptCE-r13 + ENUMERATED {n3, n4, n5, n6, n7, n8, n10} OPTIONAL, -- Need OP + numRepetitionPerPreambleAttempt-r13 ENUMERATED {n1,n2,n4,n8,n16,n32,n64,n128}, + mpdcch-NarrowbandsToMonitor-r13 SEQUENCE (SIZE(1..2)) OF + INTEGER (1..maxAvailNarrowBands-r13), + mpdcch-NumRepetition-RA-r13 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + prach-HoppingConfig-r13 ENUMERATED {on,off} +} + +RSRP-ThresholdsPrachInfoList-r13 ::= SEQUENCE (SIZE(1..3)) OF RSRP-Range + + +PresenceAntennaPort1 ::= BOOLEAN + + +PUCCH-ConfigCommon ::= SEQUENCE { + deltaPUCCH-Shift ENUMERATED {ds1, ds2, ds3}, + nRB-CQI INTEGER (0..98), + nCS-AN INTEGER (0..7), + n1PUCCH-AN INTEGER (0..2047) +} + +PUCCH-ConfigCommon-v1310 ::= SEQUENCE { + n1PUCCH-AN-InfoList-r13 N1PUCCH-AN-InfoList-r13 OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level0-r13 ENUMERATED {n1, n2, n4, n8} OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level1-r13 ENUMERATED {n1, n2, n4, n8} OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level2-r13 ENUMERATED {n4, n8, n16, n32} OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level3-r13 ENUMERATED {n4, n8, n16, n32} OPTIONAL -- Need OR +} + +PUCCH-ConfigCommon-v1430 ::= SEQUENCE { + pucch-NumRepetitionCE-Msg4-Level3-r14 ENUMERATED {n64, n128} OPTIONAL -- Need OR +} + +PUCCH-ConfigDedicated ::= SEQUENCE { + ackNackRepetition CHOICE{ + release NULL, + setup SEQUENCE { + repetitionFactor ENUMERATED {n2, n4, n6, spare1}, + n1PUCCH-AN-Rep INTEGER (0..2047) + } + }, + tdd-AckNackFeedbackMode ENUMERATED {bundling, multiplexing} OPTIONAL -- Cond TDD +} + +PUCCH-ConfigDedicated-v1020 ::= SEQUENCE { + pucch-Format-r10 CHOICE { + format3-r10 PUCCH-Format3-Conf-r13, + channelSelection-r10 SEQUENCE { + n1PUCCH-AN-CS-r10 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-List-r10 SEQUENCE (SIZE (1..2)) OF N1PUCCH-AN-CS-r10 + } + } OPTIONAL -- Need ON + } + } OPTIONAL, -- Need OR + twoAntennaPortActivatedPUCCH-Format1a1b-r10 ENUMERATED {true} OPTIONAL, -- Need OR + simultaneousPUCCH-PUSCH-r10 ENUMERATED {true} OPTIONAL, -- Need OR + n1PUCCH-AN-RepP1-r10 INTEGER (0..2047) OPTIONAL -- Need OR +} + +PUCCH-ConfigDedicated-v1130 ::= SEQUENCE { + n1PUCCH-AN-CS-v1130 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-ListP1-r11 SEQUENCE (SIZE (2..4)) OF INTEGER (0..2047) + } + } OPTIONAL, -- Need ON + nPUCCH-Param-r11 CHOICE { + release NULL, + setup SEQUENCE { + nPUCCH-Identity-r11 INTEGER (0..503), + n1PUCCH-AN-r11 INTEGER (0..2047) + } + } OPTIONAL -- Need ON +} + +PUCCH-ConfigDedicated-v1250 ::= SEQUENCE { + nkaPUCCH-Param-r12 CHOICE { + release NULL, + setup SEQUENCE { + nkaPUCCH-AN-r12 INTEGER (0..2047) + } + } +} + +PUCCH-ConfigDedicated-r13 ::= SEQUENCE { +--Release 8 + ackNackRepetition-r13 CHOICE{ + release NULL, + setup SEQUENCE { + repetitionFactor-r13 ENUMERATED {n2, n4, n6, spare1}, + n1PUCCH-AN-Rep-r13 INTEGER (0..2047) + } + }, + tdd-AckNackFeedbackMode-r13 ENUMERATED {bundling, multiplexing} OPTIONAL, -- Cond TDD +--Release 10 + pucch-Format-r13 CHOICE { + format3-r13 SEQUENCE { + n3PUCCH-AN-List-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) OPTIONAL, -- Need ON + twoAntennaPortActivatedPUCCH-Format3-r13 CHOICE { + release NULL, + setup SEQUENCE { + n3PUCCH-AN-ListP1-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) + } + } OPTIONAL -- Need ON + }, + channelSelection-r13 SEQUENCE { + n1PUCCH-AN-CS-r13 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-List-r13 SEQUENCE (SIZE (1..2)) OF N1PUCCH-AN-CS-r10, + n1PUCCH-AN-CS-ListP1-r13 SEQUENCE (SIZE (2..4)) OF INTEGER (0..2047) + } + } OPTIONAL -- Need ON + }, + format4-r13 SEQUENCE { + format4-resourceConfiguration-r13 SEQUENCE (SIZE (4)) OF Format4-resource-r13, + format4-MultiCSI-resourceConfiguration-r13 SEQUENCE (SIZE (1..2)) OF Format4-resource-r13 OPTIONAL -- Need OR + }, + format5-r13 SEQUENCE { + format5-resourceConfiguration-r13 SEQUENCE (SIZE (4)) OF Format5-resource-r13, + format5-MultiCSI-resourceConfiguration-r13 Format5-resource-r13 OPTIONAL -- Need OR + } + } OPTIONAL, -- Need OR + twoAntennaPortActivatedPUCCH-Format1a1b-r13 ENUMERATED {true} OPTIONAL, -- Need OR + simultaneousPUCCH-PUSCH-r13 ENUMERATED {true} OPTIONAL, -- Need OR + n1PUCCH-AN-RepP1-r13 INTEGER (0..2047) OPTIONAL, -- Need OR +--Release 11 + nPUCCH-Param-r13 CHOICE { + release NULL, + setup SEQUENCE { + nPUCCH-Identity-r13 INTEGER (0..503), + n1PUCCH-AN-r13 INTEGER (0..2047) + } + } OPTIONAL, -- Need ON +--Release 12 + nkaPUCCH-Param-r13 CHOICE { + release NULL, + setup SEQUENCE { + nkaPUCCH-AN-r13 INTEGER (0..2047) + } + } OPTIONAL, -- Need ON +--Release 13 + spatialBundlingPUCCH-r13 BOOLEAN, + spatialBundlingPUSCH-r13 BOOLEAN, + harq-TimingTDD-r13 BOOLEAN, + codebooksizeDetermination-r13 ENUMERATED {dai,cc} OPTIONAL, -- Need OR + maximumPayloadCoderate-r13 INTEGER (0..7) OPTIONAL, -- Need OR + pucch-NumRepetitionCE-r13 CHOICE { + release NULL, + setup CHOICE { + modeA SEQUENCE { + pucch-NumRepetitionCE-format1-r13 ENUMERATED {r1, r2, r4, r8}, + pucch-NumRepetitionCE-format2-r13 ENUMERATED {r1, r2, r4, r8} + }, + modeB SEQUENCE { + pucch-NumRepetitionCE-format1-r13 ENUMERATED {r4, r8, r16, r32}, + pucch-NumRepetitionCE-format2-r13 ENUMERATED {r4, r8, r16, r32} + } + } + } OPTIONAL --Need ON +} + +PUCCH-ConfigDedicated-v1370 ::= SEQUENCE { + pucch-Format-v1370 CHOICE { + release NULL, + setup PUCCH-Format3-Conf-r13 + } +} + +PUCCH-Format3-Conf-r13 ::= SEQUENCE { + n3PUCCH-AN-List-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) OPTIONAL, -- Need ON + twoAntennaPortActivatedPUCCH-Format3-r13 CHOICE { + release NULL, + setup SEQUENCE { + n3PUCCH-AN-ListP1-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) + } + } OPTIONAL -- Need ON +} + +PUCCH-ConfigDedicated-v1430 ::= SEQUENCE { + pucch-NumRepetitionCE-format1-r14 ENUMERATED {r64,r128} OPTIONAL -- Need OR +} + +Format4-resource-r13 ::= SEQUENCE { + startingPRB-format4-r13 INTEGER (0..109), + numberOfPRB-format4-r13 INTEGER (0..7) +} + +Format5-resource-r13 ::= SEQUENCE { + startingPRB-format5-r13 INTEGER (0..109), + cdm-index-format5-r13 INTEGER (0..1) +} + + + +N1PUCCH-AN-CS-r10 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + +N1PUCCH-AN-InfoList-r13 ::= SEQUENCE (SIZE(1..maxCE-Level-r13)) OF INTEGER (0..2047) + + +PUSCH-ConfigCommon ::= SEQUENCE { + pusch-ConfigBasic SEQUENCE { + n-SB INTEGER (1..4), + hoppingMode ENUMERATED {interSubFrame, intraAndInterSubFrame}, + pusch-HoppingOffset INTEGER (0..98), + enable64QAM BOOLEAN + }, + ul-ReferenceSignalsPUSCH UL-ReferenceSignalsPUSCH +} + +PUSCH-ConfigCommon-v1270 ::= SEQUENCE { + enable64QAM-v1270 ENUMERATED {true} +} + +PUSCH-ConfigCommon-v1310 ::= SEQUENCE { + pusch-maxNumRepetitionCEmodeA-r13 ENUMERATED { + r8, r16, r32 } OPTIONAL, -- Need OR + pusch-maxNumRepetitionCEmodeB-r13 ENUMERATED { + r192, r256, r384, r512, r768, r1024, + r1536, r2048} OPTIONAL, -- Need OR + pusch-HoppingOffset-v1310 + INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicated ::= SEQUENCE { + betaOffset-ACK-Index INTEGER (0..15), + betaOffset-RI-Index INTEGER (0..15), + betaOffset-CQI-Index INTEGER (0..15) +} + +PUSCH-ConfigDedicated-v1020 ::= SEQUENCE { + betaOffsetMC-r10 SEQUENCE { + betaOffset-ACK-Index-MC-r10 INTEGER (0..15), + betaOffset-RI-Index-MC-r10 INTEGER (0..15), + betaOffset-CQI-Index-MC-r10 INTEGER (0..15) + } OPTIONAL, -- Need OR + groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicated-v1130 ::= SEQUENCE { + pusch-DMRS-r11 CHOICE { + release NULL, + setup SEQUENCE { + nPUSCH-Identity-r11 INTEGER (0..509), + nDMRS-CSH-Identity-r11 INTEGER (0..509) + } + } +} + +PUSCH-ConfigDedicated-v1250::= SEQUENCE { + uciOnPUSCH CHOICE { + release NULL, + setup SEQUENCE { + betaOffset-ACK-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffset-RI-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffset-CQI-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffsetMC-r12 SEQUENCE { + betaOffset-ACK-Index-MC-SubframeSet2-r12 INTEGER (0..15), + betaOffset-RI-Index-MC-SubframeSet2-r12 INTEGER (0..15), + betaOffset-CQI-Index-MC-SubframeSet2-r12 INTEGER (0..15) + } OPTIONAL -- Need OR + } + } +} +PUSCH-ConfigDedicated-r13 ::= SEQUENCE { + betaOffset-ACK-Index-r13 INTEGER (0..15), + betaOffset2-ACK-Index-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-r13 INTEGER (0..15), + betaOffset-CQI-Index-r13 INTEGER (0..15), + betaOffsetMC-r13 SEQUENCE { + betaOffset-ACK-Index-MC-r13 INTEGER (0..15), + betaOffset2-ACK-Index-MC-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-MC-r13 INTEGER (0..15), + betaOffset-CQI-Index-MC-r13 INTEGER (0..15) + } OPTIONAL, -- Need OR + groupHoppingDisabled-r13 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r13 ENUMERATED {true} OPTIONAL, -- Need OR + pusch-DMRS-r11 CHOICE { + release NULL, + setup SEQUENCE { + nPUSCH-Identity-r13 INTEGER (0..509), + nDMRS-CSH-Identity-r13 INTEGER (0..509) + } + } OPTIONAL, -- Need ON + uciOnPUSCH CHOICE { + release NULL, + setup SEQUENCE { + betaOffset-ACK-Index-SubframeSet2-r13 INTEGER (0..15), + betaOffset2-ACK-Index-SubframeSet2-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-SubframeSet2-r13 INTEGER (0..15), + betaOffset-CQI-Index-SubframeSet2-r13 INTEGER (0..15), + betaOffsetMC-r12 SEQUENCE { + betaOffset-ACK-Index-MC-SubframeSet2-r13 INTEGER (0..15), + betaOffset2-ACK-Index-MC-SubframeSet2-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-MC-SubframeSet2-r13 INTEGER (0..15), + betaOffset-CQI-Index-MC-SubframeSet2-r13 INTEGER (0..15) + } OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + pusch-HoppingConfig-r13 ENUMERATED {on} OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicated-v1430 ::= SEQUENCE { + ce-PUSCH-NB-MaxTBS-r14 ENUMERATED {on} OPTIONAL, -- Need OR + ce-PUSCH-MaxBandwidth-r14 ENUMERATED {bw5} OPTIONAL, -- Need OR + tdd-PUSCH-UpPTS-r14 TDD-PUSCH-UpPTS-r14 OPTIONAL, -- Need ON + ul-DMRS-IFDMA-r14 BOOLEAN, + enable256QAM-r14 Enable256QAM-r14 OPTIONAL -- Need ON +} + +PUSCH-ConfigDedicatedSCell-r10 ::= SEQUENCE { + groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicatedSCell-v1430 ::= SEQUENCE { + enable256QAM-r14 Enable256QAM-r14 OPTIONAL -- Need OR +} + +TDD-PUSCH-UpPTS-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + symPUSCH-UpPTS-r14 ENUMERATED {sym1, sym2, sym3, sym4, sym5, sym6} OPTIONAL, -- Need ON + dmrs-LessUpPTS-Config-r14 ENUMERATED {true} OPTIONAL -- Need OR + } +} + +Enable256QAM-r14 ::= CHOICE { + release NULL, + setup CHOICE { + tpc-SubframeSet-Configured-r14 SEQUENCE { + subframeSet1-DCI-Format0-r14 BOOLEAN, + subframeSet1-DCI-Format4-r14 BOOLEAN, + subframeSet2-DCI-Format0-r14 BOOLEAN, + subframeSet2-DCI-Format4-r14 BOOLEAN + }, + tpc-SubframeSet-NotConfigured-r14 SEQUENCE { + dci-Format0-r14 BOOLEAN, + dci-Format4-r14 BOOLEAN + } + } +} + +PUSCH-EnhancementsConfig-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + pusch-HoppingOffsetPUSCH-Enh-r14 INTEGER (1..100) OPTIONAL, -- Need ON + interval-ULHoppingPUSCH-Enh-r14 CHOICE { + interval-FDD-PUSCH-Enh-r14 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-PUSCH-Enh-r14 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL -- Need ON + } +} + +UL-ReferenceSignalsPUSCH ::= SEQUENCE { + groupHoppingEnabled BOOLEAN, + groupAssignmentPUSCH INTEGER (0..29), + sequenceHoppingEnabled BOOLEAN, + cyclicShift INTEGER (0..7) +} + + +RACH-ConfigCommon ::= SEQUENCE { + preambleInfo SEQUENCE { + numberOfRA-Preambles ENUMERATED { + n4, n8, n12, n16, n20, n24, n28, + n32, n36, n40, n44, n48, n52, n56, + n60, n64}, + preamblesGroupAConfig SEQUENCE { + sizeOfRA-PreamblesGroupA ENUMERATED { + n4, n8, n12, n16, n20, n24, n28, + n32, n36, n40, n44, n48, n52, n56, + n60}, + messageSizeGroupA ENUMERATED {b56, b144, b208, b256}, + messagePowerOffsetGroupB ENUMERATED { + minusinfinity, dB0, dB5, dB8, dB10, dB12, + dB15, dB18}, + ... + } OPTIONAL -- Need OP + }, + powerRampingParameters PowerRampingParameters, + ra-SupervisionInfo SEQUENCE { + preambleTransMax PreambleTransMax, + ra-ResponseWindowSize ENUMERATED { + sf2, sf3, sf4, sf5, sf6, sf7, + sf8, sf10}, + mac-ContentionResolutionTimer ENUMERATED { + sf8, sf16, sf24, sf32, sf40, sf48, + sf56, sf64} + }, + maxHARQ-Msg3Tx INTEGER (1..8), + ..., + [[ preambleTransMax-CE-r13 PreambleTransMax OPTIONAL, -- Need OR + rach-CE-LevelInfoList-r13 RACH-CE-LevelInfoList-r13 OPTIONAL -- Need OR + ]] +} + +RACH-ConfigCommon-v1250 ::= SEQUENCE { + txFailParams-r12 SEQUENCE { + connEstFailCount-r12 ENUMERATED {n1, n2, n3, n4}, + connEstFailOffsetValidity-r12 ENUMERATED {s30, s60, s120, s240, + s300, s420, s600, s900}, + connEstFailOffset-r12 INTEGER (0..15) OPTIONAL -- Need OP + } +} + +RACH-ConfigCommonSCell-r11 ::= SEQUENCE { + powerRampingParameters-r11 PowerRampingParameters, + ra-SupervisionInfo-r11 SEQUENCE { + preambleTransMax-r11 PreambleTransMax + }, + ... +} + +RACH-CE-LevelInfoList-r13 ::= SEQUENCE (SIZE (1..maxCE-Level-r13)) OF RACH-CE-LevelInfo-r13 + +RACH-CE-LevelInfo-r13 ::= SEQUENCE { + preambleMappingInfo-r13 SEQUENCE { + firstPreamble-r13 INTEGER(0..63), + lastPreamble-r13 INTEGER(0..63) + }, + ra-ResponseWindowSize-r13 ENUMERATED {sf20, sf50, sf80, sf120, sf180, + sf240, sf320, sf400}, + + mac-ContentionResolutionTimer-r13 ENUMERATED {sf80, sf100, sf120, + sf160, sf200, sf240, sf480, sf960}, + rar-HoppingConfig-r13 ENUMERATED {on,off}, + ... +} + +PowerRampingParameters ::= SEQUENCE { + powerRampingStep ENUMERATED {dB0, dB2,dB4, dB6}, + preambleInitialReceivedTargetPower ENUMERATED { + dBm-120, dBm-118, dBm-116, dBm-114, dBm-112, + dBm-110, dBm-108, dBm-106, dBm-104, dBm-102, + dBm-100, dBm-98, dBm-96, dBm-94, + dBm-92, dBm-90} +} + +PreambleTransMax ::= ENUMERATED { + n3, n4, n5, n6, n7, n8, n10, n20, n50, + n100, n200} + + +RACH-ConfigDedicated ::= SEQUENCE { + ra-PreambleIndex INTEGER (0..63), + ra-PRACH-MaskIndex INTEGER (0..15) +} + + +RadioResourceConfigCommonSIB ::= SEQUENCE { + rach-ConfigCommon RACH-ConfigCommon, + bcch-Config BCCH-Config, + pcch-Config PCCH-Config, + prach-Config PRACH-ConfigSIB, + pdsch-ConfigCommon PDSCH-ConfigCommon, + pusch-ConfigCommon PUSCH-ConfigCommon, + pucch-ConfigCommon PUCCH-ConfigCommon, + soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon, + uplinkPowerControlCommon UplinkPowerControlCommon, + ul-CyclicPrefixLength UL-CyclicPrefixLength, + ..., + [[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need OR + ]], + [[ rach-ConfigCommon-v1250 RACH-ConfigCommon-v1250 OPTIONAL -- Need OR + ]], + [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR + ]], + [[ bcch-Config-v1310 BCCH-Config-v1310 OPTIONAL, -- Need OR + pcch-Config-v1310 PCCH-Config-v1310 OPTIONAL, -- Need OR + freqHoppingParameters-r13 FreqHoppingParameters-r13 OPTIONAL, -- Need OR + pdsch-ConfigCommon-v1310 PDSCH-ConfigCommon-v1310 OPTIONAL, -- Need OR + pusch-ConfigCommon-v1310 PUSCH-ConfigCommon-v1310 OPTIONAL, -- Need OR + prach-ConfigCommon-v1310 PRACH-ConfigSIB-v1310 OPTIONAL, -- Need OR + pucch-ConfigCommon-v1310 PUCCH-ConfigCommon-v1310 OPTIONAL -- Need OR + ]], + [[ highSpeedConfig-r14 HighSpeedConfig-r14 OPTIONAL, -- Need OR + prach-Config-v1430 PRACH-Config-v1430 OPTIONAL, -- Need OR + pucch-ConfigCommon-v1430 PUCCH-ConfigCommon-v1430 OPTIONAL -- Need OR + ]] +} + +RadioResourceConfigCommon ::= SEQUENCE { + rach-ConfigCommon RACH-ConfigCommon OPTIONAL, -- Need ON + prach-Config PRACH-Config, + pdsch-ConfigCommon PDSCH-ConfigCommon OPTIONAL, -- Need ON + pusch-ConfigCommon PUSCH-ConfigCommon, + phich-Config PHICH-Config OPTIONAL, -- Need ON + pucch-ConfigCommon PUCCH-ConfigCommon OPTIONAL, -- Need ON + soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon OPTIONAL, -- Need ON + uplinkPowerControlCommon UplinkPowerControlCommon OPTIONAL, -- Need ON + antennaInfoCommon AntennaInfoCommon OPTIONAL, -- Need ON + p-Max P-Max OPTIONAL, -- Need OP + tdd-Config TDD-Config OPTIONAL, -- Cond TDD + ul-CyclicPrefixLength UL-CyclicPrefixLength, + ..., + [[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need ON + ]], + [[ tdd-Config-v1130 TDD-Config-v1130 OPTIONAL -- Cond TDD3 + ]], + [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR + ]], + [[ + prach-Config-v1310 PRACH-Config-v1310 OPTIONAL, -- Need ON + freqHoppingParameters-r13 FreqHoppingParameters-r13 OPTIONAL, -- Need ON + pdsch-ConfigCommon-v1310 PDSCH-ConfigCommon-v1310 OPTIONAL, -- Need ON + pucch-ConfigCommon-v1310 PUCCH-ConfigCommon-v1310 OPTIONAL, -- Need ON + pusch-ConfigCommon-v1310 PUSCH-ConfigCommon-v1310 OPTIONAL, -- Need ON + uplinkPowerControlCommon-v1310 UplinkPowerControlCommon-v1310 OPTIONAL -- Need ON + ]], + [[ highSpeedConfig-r14 HighSpeedConfig-r14 OPTIONAL, -- Need OR + prach-Config-v1430 PRACH-Config-v1430 OPTIONAL, -- Need OR + pucch-ConfigCommon-v1430 PUCCH-ConfigCommon-v1430 OPTIONAL, -- Need OR + tdd-Config-v1430 TDD-Config-v1430 OPTIONAL -- Cond TDD3 + ]], + [[ + tdd-Config-v1450 TDD-Config-v1450 OPTIONAL -- Cond TDD3 + ]] +} + +RadioResourceConfigCommonPSCell-r12 ::= SEQUENCE { + basicFields-r12 RadioResourceConfigCommonSCell-r10, + pucch-ConfigCommon-r12 PUCCH-ConfigCommon, + rach-ConfigCommon-r12 RACH-ConfigCommon, + uplinkPowerControlCommonPSCell-r12 UplinkPowerControlCommonPSCell-r12, + ..., + [[ uplinkPowerControlCommonPSCell-v1310 + UplinkPowerControlCommon-v1310 OPTIONAL -- Need ON + ]] +} + +RadioResourceConfigCommonPSCell-v12f0 ::= SEQUENCE { + basicFields-v12f0 RadioResourceConfigCommonSCell-v10l0 +} + +RadioResourceConfigCommonPSCell-v1440 ::= SEQUENCE { + basicFields-v1440 RadioResourceConfigCommonSCell-v1440 +} + +RadioResourceConfigCommonSCell-r10 ::= SEQUENCE { + -- DL configuration as well as configuration applicable for DL and UL + nonUL-Configuration-r10 SEQUENCE { + -- 1: Cell characteristics + dl-Bandwidth-r10 ENUMERATED {n6, n15, n25, n50, n75, n100}, + -- 2: Physical configuration, general + antennaInfoCommon-r10 AntennaInfoCommon, + mbsfn-SubframeConfigList-r10 MBSFN-SubframeConfigList OPTIONAL, -- Need OR + -- 3: Physical configuration, control + phich-Config-r10 PHICH-Config, + -- 4: Physical configuration, physical channels + pdsch-ConfigCommon-r10 PDSCH-ConfigCommon, + tdd-Config-r10 TDD-Config OPTIONAL -- Cond TDDSCell + }, + -- UL configuration + ul-Configuration-r10 SEQUENCE { + ul-FreqInfo-r10 SEQUENCE { + ul-CarrierFreq-r10 ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth-r10 ENUMERATED {n6, n15, + n25, n50, n75, n100} OPTIONAL, -- Need OP + additionalSpectrumEmissionSCell-r10 AdditionalSpectrumEmission + }, + p-Max-r10 P-Max OPTIONAL, -- Need OP + uplinkPowerControlCommonSCell-r10 UplinkPowerControlCommonSCell-r10, + -- A special version of IE UplinkPowerControlCommon may be introduced + -- 3: Physical configuration, control + soundingRS-UL-ConfigCommon-r10 SoundingRS-UL-ConfigCommon, + ul-CyclicPrefixLength-r10 UL-CyclicPrefixLength, + -- 4: Physical configuration, physical channels + prach-ConfigSCell-r10 PRACH-ConfigSCell-r10 OPTIONAL, -- Cond TDD-OR-NoR11 + pusch-ConfigCommon-r10 PUSCH-ConfigCommon + } OPTIONAL, -- Need OR + ..., + [[ ul-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Need OP + ]], + [[ rach-ConfigCommonSCell-r11 RACH-ConfigCommonSCell-r11 OPTIONAL, -- Cond ULSCell + prach-ConfigSCell-r11 PRACH-Config OPTIONAL, -- Cond UL + tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD2 + uplinkPowerControlCommonSCell-v1130 + UplinkPowerControlCommonSCell-v1130 OPTIONAL -- Cond UL + ]], + [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR + ]], + [[ pucch-ConfigCommon-r13 PUCCH-ConfigCommon OPTIONAL, -- Cond UL + uplinkPowerControlCommonSCell-v1310 + UplinkPowerControlCommonSCell-v1310 OPTIONAL -- Cond UL + ]], + [[ highSpeedConfigSCell-r14 HighSpeedConfigSCell-r14 OPTIONAL, -- Need OR + prach-Config-v1430 PRACH-Config-v1430 OPTIONAL, -- Cond UL + ul-Configuration-r14 SEQUENCE { + ul-FreqInfo-r14 SEQUENCE { + ul-CarrierFreq-r14 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need OP + ul-Bandwidth-r14 ENUMERATED {n6, n15, + n25, n50, n75, n100} OPTIONAL, -- Need OP + additionalSpectrumEmissionSCell-r14 AdditionalSpectrumEmission + }, + p-Max-r14 P-Max OPTIONAL, -- Need OP + soundingRS-UL-ConfigCommon-r14 SoundingRS-UL-ConfigCommon, + ul-CyclicPrefixLength-r14 UL-CyclicPrefixLength, + prach-ConfigSCell-r14 PRACH-ConfigSCell-r10 OPTIONAL, -- Cond TDD-OR-NoR11 + uplinkPowerControlCommonPUSCH-LessCell-v1430 UplinkPowerControlCommonPUSCH-LessCell-v1430 OPTIONAL -- Need OR +} OPTIONAL, -- Cond ULSRS + harq-ReferenceConfig-r14 ENUMERATED {sa2,sa4,sa5} OPTIONAL, -- Need OR + soundingRS-FlexibleTiming-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL-- Need ON + ]] +} + +RadioResourceConfigCommonSCell-v10l0 ::= SEQUENCE { + -- UL configuration + ul-Configuration-v10l0 SEQUENCE { + additionalSpectrumEmissionSCell-v10l0 AdditionalSpectrumEmission-v10l0 + } +} + +RadioResourceConfigCommonSCell-v1440 ::= SEQUENCE { + ul-Configuration-v1440 SEQUENCE { + ul-FreqInfo-v1440 SEQUENCE { + additionalSpectrumEmissionSCell-v1440 AdditionalSpectrumEmission-v10l0 + } + } +} + +BCCH-Config ::= SEQUENCE { + modificationPeriodCoeff ENUMERATED {n2, n4, n8, n16} +} + +BCCH-Config-v1310 ::= SEQUENCE { + modificationPeriodCoeff-v1310 ENUMERATED {n64} +} + +FreqHoppingParameters-r13 ::= SEQUENCE { + dummy ENUMERATED {nb2, nb4} OPTIONAL, + dummy2 CHOICE { + interval-FDD-r13 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-r13 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL, + dummy3 CHOICE { + interval-FDD-r13 ENUMERATED {int2, int4, int8, int16}, + interval-TDD-r13 ENUMERATED { int5, int10, int20, int40} + } OPTIONAL, + interval-ULHoppingConfigCommonModeA-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-r13 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL, -- Cond MP-A + interval-ULHoppingConfigCommonModeB-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int2, int4, int8, int16}, + interval-TDD-r13 ENUMERATED { int5, int10, int20, int40} + } OPTIONAL, -- Cond MP-B + dummy4 INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL +} + +PCCH-Config ::= SEQUENCE { + defaultPagingCycle ENUMERATED { + rf32, rf64, rf128, rf256}, + nB ENUMERATED { + fourT, twoT, oneT, halfT, quarterT, oneEighthT, + oneSixteenthT, oneThirtySecondT} +} + +PCCH-Config-v1310 ::= SEQUENCE { + paging-narrowBands-r13 INTEGER (1..maxAvailNarrowBands-r13), + mpdcch-NumRepetition-Paging-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, r256}, + nB-v1310 ENUMERATED {one64thT, one128thT, one256thT} + OPTIONAL -- Need OR +} + +UL-CyclicPrefixLength ::= ENUMERATED {len1, len2} + +HighSpeedConfig-r14 ::= SEQUENCE { + highSpeedEnhancedMeasFlag-r14 ENUMERATED {true} OPTIONAL, -- Need OR + highSpeedEnhancedDemodulationFlag-r14 ENUMERATED {true} OPTIONAL -- Need OR +} + +HighSpeedConfigSCell-r14 ::= SEQUENCE { + highSpeedEnhancedDemodulationFlag-r14 ENUMERATED {true} OPTIONAL -- Need OR +} + + +RadioResourceConfigDedicated ::= SEQUENCE { + srb-ToAddModList SRB-ToAddModList OPTIONAL, -- Cond HO-Conn + drb-ToAddModList DRB-ToAddModList OPTIONAL, -- Cond HO-toEUTRA + drb-ToReleaseList DRB-ToReleaseList OPTIONAL, -- Need ON + mac-MainConfig CHOICE { + explicitValue MAC-MainConfig, + defaultValue NULL + } OPTIONAL, -- Cond HO-toEUTRA2 + sps-Config SPS-Config OPTIONAL, -- Need ON + physicalConfigDedicated PhysicalConfigDedicated OPTIONAL, -- Need ON + ..., + [[ rlf-TimersAndConstants-r9 RLF-TimersAndConstants-r9 OPTIONAL -- Need ON + ]], + [[ measSubframePatternPCell-r10 MeasSubframePatternPCell-r10 OPTIONAL -- Need ON + ]], + [[ neighCellsCRS-Info-r11 NeighCellsCRS-Info-r11 OPTIONAL -- Need ON + ]], + [[ naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL -- Need ON + ]], + [[ neighCellsCRS-Info-r13 NeighCellsCRS-Info-r13 OPTIONAL, -- Cond CRSIM + rlf-TimersAndConstants-r13 RLF-TimersAndConstants-r13 OPTIONAL -- Need ON + ]], + [[ sps-Config-v1430 SPS-Config-v1430 OPTIONAL -- Cond SPS + ]] +} + +RadioResourceConfigDedicated-v1370 ::= SEQUENCE { + physicalConfigDedicated-v1370 PhysicalConfigDedicated-v1370 OPTIONAL -- Need ON +} + +RadioResourceConfigDedicatedPSCell-r12 ::= SEQUENCE { + -- UE specific configuration extensions applicable for an PSCell + physicalConfigDedicatedPSCell-r12 PhysicalConfigDedicated OPTIONAL, -- Need ON + sps-Config-r12 SPS-Config OPTIONAL, -- Need ON + naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL, -- Need ON + ..., + [[ neighCellsCRS-InfoPSCell-r13 NeighCellsCRS-Info-r13 OPTIONAL -- Need ON + ]], + [[ sps-Config-v1430 SPS-Config-v1430 OPTIONAL -- Cond SPS2 + ]] +} + +RadioResourceConfigDedicatedPSCell-v1370 ::= SEQUENCE { + physicalConfigDedicatedPSCell-v1370 PhysicalConfigDedicated-v1370 OPTIONAL -- Need ON +} + +RadioResourceConfigDedicatedSCG-r12 ::= SEQUENCE { + drb-ToAddModListSCG-r12 DRB-ToAddModListSCG-r12 OPTIONAL, -- Need ON + mac-MainConfigSCG-r12 MAC-MainConfig OPTIONAL, -- Need ON + rlf-TimersAndConstantsSCG-r12 RLF-TimersAndConstantsSCG-r12 OPTIONAL, -- Need ON + ... +} + +RadioResourceConfigDedicatedSCell-r10 ::= SEQUENCE { + -- UE specific configuration extensions applicable for an SCell + physicalConfigDedicatedSCell-r10 PhysicalConfigDedicatedSCell-r10 OPTIONAL, -- Need ON + ..., + [[ mac-MainConfigSCell-r11 MAC-MainConfigSCell-r11 OPTIONAL -- Cond SCellAdd + ]], + [[ naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL -- Need ON + ]], + [[ neighCellsCRS-InfoSCell-r13 NeighCellsCRS-Info-r13 OPTIONAL -- Need ON + ]], + [[ physicalConfigDedicatedSCell-v1370 PhysicalConfigDedicatedSCell-v1370 OPTIONAL -- Need ON + ]] +} + +SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod + +SRB-ToAddMod ::= SEQUENCE { + srb-Identity INTEGER (1..2), + rlc-Config CHOICE { + explicitValue RLC-Config, + defaultValue NULL + } OPTIONAL, -- Cond Setup + logicalChannelConfig CHOICE { + explicitValue LogicalChannelConfig, + defaultValue NULL + } OPTIONAL, -- Cond Setup + ... +} + +DRB-ToAddModList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod + +DRB-ToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddModSCG-r12 + +DRB-ToAddMod ::= SEQUENCE { + eps-BearerIdentity INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity DRB-Identity, + pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP + rlc-Config RLC-Config OPTIONAL, -- Cond SetupM + logicalChannelIdentity INTEGER (3..10) OPTIONAL, -- Cond DRB-SetupM + logicalChannelConfig LogicalChannelConfig OPTIONAL, -- Cond SetupM + ..., + [[ drb-TypeChange-r12 ENUMERATED {toMCG} OPTIONAL, -- Need OP + rlc-Config-v1250 RLC-Config-v1250 OPTIONAL -- Need ON + ]], + [[ rlc-Config-v1310 RLC-Config-v1310 OPTIONAL, -- Need ON + drb-TypeLWA-r13 BOOLEAN OPTIONAL, -- Need ON + drb-TypeLWIP-r13 ENUMERATED {lwip, lwip-DL-only, + lwip-UL-only, eutran} OPTIONAL -- Need ON + ]], + [[ rlc-Config-v1430 RLC-Config-v1430 OPTIONAL, -- Need ON + lwip-UL-Aggregation-r14 BOOLEAN OPTIONAL, -- Cond LWIP + lwip-DL-Aggregation-r14 BOOLEAN OPTIONAL, -- Cond LWIP + lwa-WLAN-AC-r14 ENUMERATED {ac-bk, ac-be, ac-vi, ac-vo} OPTIONAL -- Cond UL-LWA + ]] +} + +DRB-ToAddModSCG-r12 ::= SEQUENCE { + drb-Identity-r12 DRB-Identity, + drb-Type-r12 CHOICE { + split-r12 NULL, + scg-r12 SEQUENCE { + eps-BearerIdentity-r12 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + pdcp-Config-r12 PDCP-Config OPTIONAL -- Cond PDCP-S + } + } OPTIONAL, -- Cond SetupS2 + rlc-ConfigSCG-r12 RLC-Config OPTIONAL, -- Cond SetupS + rlc-Config-v1250 RLC-Config-v1250 OPTIONAL, -- Need ON + logicalChannelIdentitySCG-r12 INTEGER (3..10) OPTIONAL, -- Cond DRB-SetupS + logicalChannelConfigSCG-r12 LogicalChannelConfig OPTIONAL, -- Cond SetupS + ..., + [[ rlc-Config-v1430 RLC-Config-v1430 OPTIONAL -- Need ON + ]] +} + +DRB-ToReleaseList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity + +MeasSubframePatternPCell-r10 ::= CHOICE { + release NULL, + setup MeasSubframePattern-r10 +} + +NeighCellsCRS-Info-r11 ::= CHOICE { + release NULL, + setup CRS-AssistanceInfoList-r11 +} + +CRS-AssistanceInfoList-r11 ::= SEQUENCE (SIZE (1..maxCellReport)) OF CRS-AssistanceInfo-r11 + +CRS-AssistanceInfo-r11 ::= SEQUENCE { + physCellId-r11 PhysCellId, + antennaPortsCount-r11 ENUMERATED {an1, an2, an4, spare1}, + mbsfn-SubframeConfigList-r11 MBSFN-SubframeConfigList, + ..., + [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL -- Need ON + ]] +} + +NeighCellsCRS-Info-r13 ::= CHOICE { + release NULL, + setup CRS-AssistanceInfoList-r13 +} + +CRS-AssistanceInfoList-r13 ::= SEQUENCE (SIZE (1..maxCellReport)) OF CRS-AssistanceInfo-r13 + +CRS-AssistanceInfo-r13 ::= SEQUENCE { + physCellId-r13 PhysCellId, + antennaPortsCount-r13 ENUMERATED {an1, an2, an4, spare1}, + mbsfn-SubframeConfigList-r13 MBSFN-SubframeConfigList OPTIONAL, -- Need ON + ..., + [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL -- Need ON + ]] +} + +NAICS-AssistanceInfo-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + neighCellsToReleaseList-r12 NeighCellsToReleaseList-r12 OPTIONAL , -- Need ON + neighCellsToAddModList-r12 NeighCellsToAddModList-r12 OPTIONAL, -- Need ON + servCellp-a-r12 P-a OPTIONAL -- Need ON + } +} + +NeighCellsToReleaseList-r12 ::= SEQUENCE (SIZE (1..maxNeighCell-r12)) OF PhysCellId + +NeighCellsToAddModList-r12 ::= SEQUENCE (SIZE (1..maxNeighCell-r12)) OF NeighCellsInfo-r12 + +NeighCellsInfo-r12 ::= SEQUENCE { + physCellId-r12 PhysCellId, + p-b-r12 INTEGER (0..3), + crs-PortsCount-r12 ENUMERATED {n1, n2, n4, spare}, + mbsfn-SubframeConfig-r12 MBSFN-SubframeConfigList OPTIONAL, -- Need ON + p-aList-r12 SEQUENCE (SIZE (1..maxP-a-PerNeighCell-r12)) OF P-a, + transmissionModeList-r12 BIT STRING (SIZE(8)), + resAllocGranularity-r12 INTEGER (1..4), + ... +} +P-a ::= ENUMERATED { dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} + + +RCLWI-Configuration-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + rclwi-Config-r13 RCLWI-Config-r13 + } +} + +RCLWI-Config-r13 ::= SEQUENCE { + command CHOICE { + steerToWLAN-r13 SEQUENCE { + mobilityConfig-r13 WLAN-Id-List-r12 + }, + steerToLTE-r13 NULL + }, + ... +} + + +RLC-Config ::= CHOICE { + am SEQUENCE { + ul-AM-RLC UL-AM-RLC, + dl-AM-RLC DL-AM-RLC + }, + um-Bi-Directional SEQUENCE { + ul-UM-RLC UL-UM-RLC, + dl-UM-RLC DL-UM-RLC + }, + um-Uni-Directional-UL SEQUENCE { + ul-UM-RLC UL-UM-RLC + }, + um-Uni-Directional-DL SEQUENCE { + dl-UM-RLC DL-UM-RLC + }, + ... +} + +RLC-Config-v1250 ::= SEQUENCE { + ul-extended-RLC-LI-Field-r12 BOOLEAN, + dl-extended-RLC-LI-Field-r12 BOOLEAN +} + +RLC-Config-v1310 ::= SEQUENCE { + ul-extended-RLC-AM-SN-r13 BOOLEAN, + dl-extended-RLC-AM-SN-r13 BOOLEAN, + pollPDU-v1310 PollPDU-v1310 OPTIONAL -- Need OR +} + +RLC-Config-v1430 ::= CHOICE { + release NULL, + setup SEQUENCE { + pollByte-r14 PollByte-r14 + } +} + +UL-AM-RLC ::= SEQUENCE { + t-PollRetransmit T-PollRetransmit, + pollPDU PollPDU, + pollByte PollByte, + maxRetxThreshold ENUMERATED { + t1, t2, t3, t4, t6, t8, t16, t32} +} + +DL-AM-RLC ::= SEQUENCE { + t-Reordering T-Reordering, + t-StatusProhibit T-StatusProhibit +} + +UL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength +} + +DL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength, + t-Reordering T-Reordering +} + +SN-FieldLength ::= ENUMERATED {size5, size10} + +T-PollRetransmit ::= ENUMERATED { + ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, ms800-v1310, + ms1000-v1310, ms2000-v1310, ms4000-v1310, + spare5, spare4, spare3, spare2, spare1} + +PollPDU ::= ENUMERATED { + p4, p8, p16, p32, p64, p128, p256, pInfinity} + +PollPDU-v1310 ::= ENUMERATED { + p512, p1024, p2048, p4096, p6144, p8192, p12288, p16384} + +PollByte ::= ENUMERATED { + kB25, kB50, kB75, kB100, kB125, kB250, kB375, + kB500, kB750, kB1000, kB1250, kB1500, kB2000, + kB3000, kBinfinity, spare1} + +PollByte-r14 ::= ENUMERATED { + kB1, kB2, kB5, kB8, kB10, kB15, kB3500, + kB4000, kB4500, kB5000, kB5500, kB6000, kB6500, + kB7000, kB7500, kB8000, kB9000, kB10000, kB11000, kB12000, + kB13000, kB14000, kB15000, kB16000, kB17000, kB18000, + kB19000, kB20000, kB25000, kB30000, kB35000, kB40000} + +T-Reordering ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms110, + ms120, ms130, ms140, ms150, ms160, ms170, + ms180, ms190, ms200, ms1600-v1310} + +T-StatusProhibit ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, ms800-v1310, + ms1000-v1310, ms1200-v1310, ms1600-v1310, ms2000-v1310, ms2400-v1310, spare2, + spare1} + + +RLF-TimersAndConstants-r9 ::= CHOICE { + release NULL, + setup SEQUENCE { + t301-r9 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t310-r9 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n310-r9 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311-r9 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311-r9 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ... + } +} + +RLF-TimersAndConstants-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + t301-v1310 ENUMERATED { + ms2500, ms3000, ms3500, ms4000, ms5000, + ms6000, ms8000, ms10000}, + ..., + [[ t310-v1330 ENUMERATED {ms4000, ms6000} OPTIONAL -- Need ON + ]] + } +} + +RLF-TimersAndConstantsSCG-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + t313-r12 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n313-r12 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + n314-r12 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ... + } +} + + +RN-SubframeConfig-r10 ::= SEQUENCE { + subframeConfigPattern-r10 CHOICE { + subframeConfigPatternFDD-r10 BIT STRING (SIZE(8)), + subframeConfigPatternTDD-r10 INTEGER (0..31) + } OPTIONAL, -- Need ON + rpdcch-Config-r10 SEQUENCE { + resourceAllocationType-r10 ENUMERATED {type0, type1, type2Localized, type2Distributed, + spare4, spare3, spare2, spare1}, + resourceBlockAssignment-r10 CHOICE { + type01-r10 CHOICE { + nrb6-r10 BIT STRING (SIZE(6)), + nrb15-r10 BIT STRING (SIZE(8)), + nrb25-r10 BIT STRING (SIZE(13)), + nrb50-r10 BIT STRING (SIZE(17)), + nrb75-r10 BIT STRING (SIZE(19)), + nrb100-r10 BIT STRING (SIZE(25)) + }, + type2-r10 CHOICE { + nrb6-r10 BIT STRING (SIZE(5)), + nrb15-r10 BIT STRING (SIZE(7)), + nrb25-r10 BIT STRING (SIZE(9)), + nrb50-r10 BIT STRING (SIZE(11)), + nrb75-r10 BIT STRING (SIZE(12)), + nrb100-r10 BIT STRING (SIZE(13)) + }, + ... + }, + demodulationRS-r10 CHOICE { + interleaving-r10 ENUMERATED {crs}, + noInterleaving-r10 ENUMERATED {crs, dmrs} + }, + pdsch-Start-r10 INTEGER (1..3), + pucch-Config-r10 CHOICE { + tdd CHOICE { + channelSelectionMultiplexingBundling SEQUENCE { + n1PUCCH-AN-List-r10 SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + }, + fallbackForFormat3 SEQUENCE { + n1PUCCH-AN-P0-r10 INTEGER (0..2047), + n1PUCCH-AN-P1-r10 INTEGER (0..2047) OPTIONAL -- Need OR + } + }, + fdd SEQUENCE { + n1PUCCH-AN-P0-r10 INTEGER (0..2047), + n1PUCCH-AN-P1-r10 INTEGER (0..2047) OPTIONAL -- Need OR + } + }, + ... + } OPTIONAL, -- Need ON + ... +} + + +SchedulingRequestConfig ::= CHOICE { + release NULL, + setup SEQUENCE { + sr-PUCCH-ResourceIndex INTEGER (0..2047), + sr-ConfigIndex INTEGER (0..157), + dsr-TransMax ENUMERATED { + n4, n8, n16, n32, n64, spare3, spare2, spare1} + } +} + +SchedulingRequestConfig-v1020 ::= SEQUENCE { + sr-PUCCH-ResourceIndexP1-r10 INTEGER (0..2047) OPTIONAL -- Need OR +} + +SchedulingRequestConfigSCell-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + sr-PUCCH-ResourceIndex-r13 INTEGER (0..2047), + sr-PUCCH-ResourceIndexP1-r13 INTEGER (0..2047) OPTIONAL, -- Need OR + sr-ConfigIndex-r13 INTEGER (0..157), + dsr-TransMax-r13 ENUMERATED { + n4, n8, n16, n32, n64, spare3, spare2, spare1} + } + +} + + +SoundingRS-UL-ConfigCommon ::= CHOICE { + release NULL, + setup SEQUENCE { + srs-BandwidthConfig ENUMERATED {bw0, bw1, bw2, bw3, bw4, bw5, bw6, bw7}, + srs-SubframeConfig ENUMERATED { + sc0, sc1, sc2, sc3, sc4, sc5, sc6, sc7, + sc8, sc9, sc10, sc11, sc12, sc13, sc14, sc15}, + ackNackSRS-SimultaneousTransmission BOOLEAN, + srs-MaxUpPts ENUMERATED {true} OPTIONAL -- Cond TDD + } +} + +SoundingRS-UL-ConfigDedicated ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-Bandwidth ENUMERATED {bw0, bw1, bw2, bw3}, + srs-HoppingBandwidth ENUMERATED {hbw0, hbw1, hbw2, hbw3}, + freqDomainPosition INTEGER (0..23), + duration BOOLEAN, + srs-ConfigIndex INTEGER (0..1023), + transmissionComb INTEGER (0..1), + cyclicShift ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7} + } +} + +SoundingRS-UL-ConfigDedicated-v1020 ::= SEQUENCE { + srs-AntennaPort-r10 SRS-AntennaPort +} + +SoundingRS-UL-ConfigDedicated-v1310 ::= CHOICE{ + release NULL, + setup SEQUENCE { + transmissionComb-v1310 INTEGER (2..3) OPTIONAL, -- Need OR + cyclicShift-v1310 ENUMERATED {cs8, cs9, cs10, cs11} OPTIONAL, -- Need OR + transmissionCombNum-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR + } +} + +SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-UpPtsAdd-r13 ENUMERATED {sym2, sym4}, + srs-Bandwidth-r13 ENUMERATED {bw0, bw1, bw2, bw3}, + srs-HoppingBandwidth-r13 ENUMERATED {hbw0, hbw1, hbw2, hbw3}, + freqDomainPosition-r13 INTEGER (0..23), + duration-r13 BOOLEAN, + srs-ConfigIndex-r13 INTEGER (0..1023), + transmissionComb-r13 INTEGER (0..3), + cyclicShift-r13 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, + cs8, cs9, cs10, cs11}, + srs-AntennaPort-r13 SRS-AntennaPort, + transmissionCombNum-r13 ENUMERATED {n2, n4} + } +} + +SoundingRS-UL-ConfigDedicatedAperiodic-r10 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-ConfigIndexAp-r10 INTEGER (0..31), + srs-ConfigApDCI-Format4-r10 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-r10 OPTIONAL,--Need ON + srs-ActivateAp-r10 CHOICE { + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format0-r10 SRS-ConfigAp-r10, + srs-ConfigApDCI-Format1a2b2c-r10 SRS-ConfigAp-r10, + ... + } + } OPTIONAL -- Need ON + } +} + +SoundingRS-UL-ConfigDedicatedAperiodic-v1310 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format4-v1310 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-v1310 OPTIONAL,--Need ON + srs-ActivateAp-v1310 CHOICE { + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format0-v1310 SRS-ConfigAp-v1310 OPTIONAL, -- Need ON + srs-ConfigApDCI-Format1a2b2c-v1310 SRS-ConfigAp-v1310 OPTIONAL -- Need ON + } + } OPTIONAL -- Need ON + } +} + +SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-UpPtsAdd-r13 ENUMERATED {sym2, sym4}, + srs-ConfigIndexAp-r13 INTEGER (0..31), + srs-ConfigApDCI-Format4-r13 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-r13 OPTIONAL,--Need ON + srs-ActivateAp-r13 CHOICE { + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format0-r13 SRS-ConfigAp-r13, + srs-ConfigApDCI-Format1a2b2c-r13 SRS-ConfigAp-r13 + } + } OPTIONAL -- Need ON + } +} + +SoundingRS-UL-ConfigDedicatedAperiodic-v1430 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-SubframeIndication-r14 INTEGER (1..4) OPTIONAL -- Need ON + } +} + +SRS-ConfigAp-r10 ::= SEQUENCE { + srs-AntennaPortAp-r10 SRS-AntennaPort, + srs-BandwidthAp-r10 ENUMERATED {bw0, bw1, bw2, bw3}, + freqDomainPositionAp-r10 INTEGER (0..23), + transmissionCombAp-r10 INTEGER (0..1), + cyclicShiftAp-r10 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7} +} + +SRS-ConfigAp-v1310 ::= SEQUENCE { + transmissionCombAp-v1310 INTEGER (2..3) OPTIONAL, -- Need OR + cyclicShiftAp-v1310 ENUMERATED {cs8, cs9, cs10, cs11} OPTIONAL, -- Need OR + transmissionCombNum-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR +} + +SRS-ConfigAp-r13 ::= SEQUENCE { + srs-AntennaPortAp-r13 SRS-AntennaPort, + srs-BandwidthAp-r13 ENUMERATED {bw0, bw1, bw2, bw3}, + freqDomainPositionAp-r13 INTEGER (0..23), + transmissionCombAp-r13 INTEGER (0..3), + cyclicShiftAp-r13 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, + cs8, cs9, cs10, cs11}, + transmissionCombNum-r13 ENUMERATED {n2, n4} +} + +SRS-AntennaPort ::= ENUMERATED {an1, an2, an4, spare1} + + +SPS-Config ::= SEQUENCE { + semiPersistSchedC-RNTI C-RNTI OPTIONAL, -- Need OR + sps-ConfigDL SPS-ConfigDL OPTIONAL, -- Need ON + sps-ConfigUL SPS-ConfigUL OPTIONAL -- Need ON +} + +SPS-Config-v1430 ::= SEQUENCE { + ul-SPS-V-RNTI-r14 C-RNTI OPTIONAL, -- Need OR + sl-SPS-V-RNTI-r14 C-RNTI OPTIONAL, -- Need OR + sps-ConfigUL-ToAddModList-r14 SPS-ConfigUL-ToAddModList-r14 OPTIONAL, -- Need ON + sps-ConfigUL-ToReleaseList-r14 SPS-ConfigUL-ToReleaseList-r14 OPTIONAL, -- Need ON + sps-ConfigSL-ToAddModList-r14 SPS-ConfigSL-ToAddModList-r14 OPTIONAL, -- Need ON + sps-ConfigSL-ToReleaseList-r14 SPS-ConfigSL-ToReleaseList-r14 OPTIONAL -- Need ON +} + +SPS-ConfigUL-ToAddModList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigUL + +SPS-ConfigUL-ToReleaseList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigIndex-r14 + +SPS-ConfigSL-ToAddModList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigSL-r14 + +SPS-ConfigSL-ToReleaseList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigIndex-r14 + +SPS-ConfigDL ::= CHOICE{ + release NULL, + setup SEQUENCE { + semiPersistSchedIntervalDL ENUMERATED { + sf10, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, spare6, + spare5, spare4, spare3, spare2, + spare1}, + numberOfConfSPS-Processes INTEGER (1..8), + n1PUCCH-AN-PersistentList N1PUCCH-AN-PersistentList, + ..., + [[ twoAntennaPortActivated-r10 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-PersistentListP1-r10 N1PUCCH-AN-PersistentList + } + } OPTIONAL -- Need ON + ]] + } +} + +SPS-ConfigUL ::= CHOICE { + release NULL, + setup SEQUENCE { + semiPersistSchedIntervalUL ENUMERATED { + sf10, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, sf1-v1430, + sf2-v1430, sf3-v1430, sf4-v1430, sf5-v1430, + spare1}, + implicitReleaseAfter ENUMERATED {e2, e3, e4, e8}, + p0-Persistent SEQUENCE { + p0-NominalPUSCH-Persistent INTEGER (-126..24), + p0-UE-PUSCH-Persistent INTEGER (-8..7) + } OPTIONAL, -- Need OP + twoIntervalsConfig ENUMERATED {true} OPTIONAL, -- Cond TDD + ..., + [[ p0-PersistentSubframeSet2-r12 CHOICE { + release NULL, + setup SEQUENCE { + p0-NominalPUSCH-PersistentSubframeSet2-r12 INTEGER (-126..24), + p0-UE-PUSCH-PersistentSubframeSet2-r12 INTEGER (-8..7) + } + } OPTIONAL -- Need ON + ]], + [[ numberOfConfUlSPS-Processes-r13 INTEGER (1..8) OPTIONAL -- Need OR + ]], + [[ fixedRV-NonAdaptive-r14 ENUMERATED {true} OPTIONAL, -- Need OR + sps-ConfigIndex-r14 SPS-ConfigIndex-r14 OPTIONAL, -- Need OR + semiPersistSchedIntervalUL-v1430 ENUMERATED { + sf50, sf100, sf200, sf300, sf400, sf500, + sf600, sf700, sf800, sf900, sf1000, spare5, + spare4, spare3, spare2, spare1} OPTIONAL -- Need OR + + ]] + } +} + +SPS-ConfigSL-r14 ::= SEQUENCE { + sps-ConfigIndex-r14 SPS-ConfigIndex-r14, + semiPersistSchedIntervalSL-r14 ENUMERATED { + sf20, sf50, sf100, sf200, sf300, sf400, + sf500, sf600, sf700, sf800, sf900, sf1000, + spare4, spare3, spare2, spare1} +} + +SPS-ConfigIndex-r14 ::= INTEGER (1..maxConfigSPS-r14) + +N1PUCCH-AN-PersistentList ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + + +SRS-TPC-PDCCH-Config-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + srs-TPC-RNTI-r14 BIT STRING (SIZE (16)), + startingBitOfFormat3B-r14 INTEGER (0..31), fieldTypeFormat3B-r14 INTEGER (1..4), + srs-CC-SetIndexlist-r14 SEQUENCE (SIZE(1..4)) OF SRS-CC-SetIndex-r14 OPTIONAL -- Cond SRS-Trigger-TypeA + + } +} + +SRS-CC-SetIndex-r14 ::= SEQUENCE { + cc-SetIndex-r14 INTEGER (0..3), + cc-IndexInOneCC-Set-r14 INTEGER (0..7) +} + + +TDD-Config ::= SEQUENCE { + subframeAssignment ENUMERATED { + sa0, sa1, sa2, sa3, sa4, sa5, sa6}, + specialSubframePatterns ENUMERATED { + ssp0, ssp1, ssp2, ssp3, ssp4,ssp5, ssp6, ssp7, + ssp8} +} + +TDD-Config-v1130 ::= SEQUENCE { + specialSubframePatterns-v1130 ENUMERATED {ssp7,ssp9} +} + +TDD-Config-v1430 ::= SEQUENCE { + specialSubframePatterns-v1430 ENUMERATED {ssp10} +} + +TDD-Config-v1450 ::= SEQUENCE { + specialSubframePatterns-v1450 ENUMERATED {ssp10-CRS-LessDwPTS} +} + +TDD-ConfigSL-r12 ::= SEQUENCE { + subframeAssignmentSL-r12 ENUMERATED { + none, sa0, sa1, sa2, sa3, sa4, sa5, sa6} +} + + +TimeAlignmentTimer ::= ENUMERATED { + sf500, sf750, sf1280, sf1920, sf2560, sf5120, + sf10240, infinity} + +TPC-PDCCH-Config ::= CHOICE { + release NULL, + setup SEQUENCE { + tpc-RNTI BIT STRING (SIZE (16)), + tpc-Index TPC-Index + } +} + +TPC-PDCCH-ConfigSCell-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + tpc-Index-PUCCH-SCell-r13 TPC-Index + } +} + +TPC-Index ::= CHOICE { + indexOfFormat3 INTEGER (1..15), + indexOfFormat3A INTEGER (1..31) +} + + +TunnelConfigLWIP-r13 ::= SEQUENCE { + ip-Address-r13 IP-Address-r13, + ike-Identity-r13 IKE-Identity-r13, + ..., + [[ lwip-Counter-r13 INTEGER (0..65535) OPTIONAL -- Cond LWIP-Setup + ]] +} + +IKE-Identity-r13 ::= SEQUENCE { + idI-r13 OCTET STRING +} + +IP-Address-r13 ::= CHOICE { + ipv4-r13 BIT STRING (SIZE (32)), + ipv6-r13 BIT STRING (SIZE (128)) +} + + +UplinkPowerControlCommon ::= SEQUENCE { + p0-NominalPUSCH INTEGER (-126..24), + alpha Alpha-r12, + p0-NominalPUCCH INTEGER (-127..-96), + deltaFList-PUCCH DeltaFList-PUCCH, + deltaPreambleMsg3 INTEGER (-1..6) +} + +UplinkPowerControlCommon-v1020 ::= SEQUENCE { + deltaF-PUCCH-Format3-r10 ENUMERATED {deltaF-1, deltaF0, deltaF1, deltaF2, + deltaF3, deltaF4, deltaF5, deltaF6}, + deltaF-PUCCH-Format1bCS-r10 ENUMERATED {deltaF1, deltaF2, spare2, spare1} +} + +UplinkPowerControlCommon-v1310 ::= SEQUENCE { + deltaF-PUCCH-Format4-r13 ENUMERATED {deltaF16, deltaF15, deltaF14,deltaF13, deltaF12, + deltaF11, deltaF10, spare1} OPTIONAL, -- Need OR + deltaF-PUCCH-Format5-13 ENUMERATED { deltaF13, deltaF12, deltaF11, deltaF10, deltaF9, + deltaF8, deltaF7, spare1} OPTIONAL -- Need OR +} + +UplinkPowerControlCommonPSCell-r12 ::= SEQUENCE { +-- For uplink power control the additional/ missing fields are signalled (compared to SCell) + deltaF-PUCCH-Format3-r12 ENUMERATED {deltaF-1, deltaF0, deltaF1, deltaF2, + deltaF3, deltaF4, deltaF5, deltaF6}, + deltaF-PUCCH-Format1bCS-r12 ENUMERATED {deltaF1, deltaF2, spare2, spare1}, + p0-NominalPUCCH-r12 INTEGER (-127..-96), + deltaFList-PUCCH-r12 DeltaFList-PUCCH +} + + +UplinkPowerControlCommonSCell-r10 ::= SEQUENCE { + p0-NominalPUSCH-r10 INTEGER (-126..24), + alpha-r10 Alpha-r12 +} + +UplinkPowerControlCommonSCell-v1130 ::= SEQUENCE { + deltaPreambleMsg3-r11 INTEGER (-1..6) +} + +UplinkPowerControlCommonSCell-v1310 ::= SEQUENCE { +-- For uplink power control the additional/ missing fields are signalled (compared to SCell) + p0-NominalPUCCH INTEGER (-127..-96), + deltaFList-PUCCH DeltaFList-PUCCH, + deltaF-PUCCH-Format3-r12 ENUMERATED {deltaF-1, deltaF0, deltaF1, + deltaF2, deltaF3, deltaF4, deltaF5, + deltaF6} OPTIONAL, -- Need OR + deltaF-PUCCH-Format1bCS-r12 ENUMERATED {deltaF1, deltaF2, + spare2, spare1} OPTIONAL, -- Need OR + deltaF-PUCCH-Format4-r13 ENUMERATED {deltaF16, deltaF15, deltaF14, + deltaF13, deltaF12, deltaF11, deltaF10, + spare1} OPTIONAL, -- Need OR + deltaF-PUCCH-Format5-13 ENUMERATED { deltaF13, deltaF12, deltaF11, + deltaF10, deltaF9, deltaF8, deltaF7, + spare1} OPTIONAL -- Need OR +} +UplinkPowerControlCommonPUSCH-LessCell-v1430 ::= SEQUENCE { + p0-Nominal-PeriodicSRS-r14 INTEGER (-126..24) OPTIONAL, -- Need OR + p0-Nominal-AperiodicSRS-r14 INTEGER (-126..24) OPTIONAL, -- Need OR + alpha-SRS-r14 Alpha-r12 OPTIONAL -- Need OR +} + +UplinkPowerControlDedicated ::= SEQUENCE { + p0-UE-PUSCH INTEGER (-8..7), + deltaMCS-Enabled ENUMERATED {en0, en1}, + accumulationEnabled BOOLEAN, + p0-UE-PUCCH INTEGER (-8..7), + pSRS-Offset INTEGER (0..15), + filterCoefficient FilterCoefficient DEFAULT fc4 +} + +UplinkPowerControlDedicated-v1020 ::= SEQUENCE { + deltaTxD-OffsetListPUCCH-r10 DeltaTxD-OffsetListPUCCH-r10 OPTIONAL, -- Need OR + pSRS-OffsetAp-r10 INTEGER (0..15) OPTIONAL -- Need OR +} + +UplinkPowerControlDedicated-v1130 ::= SEQUENCE { + pSRS-Offset-v1130 INTEGER (16..31) OPTIONAL, -- Need OR + pSRS-OffsetAp-v1130 INTEGER (16..31) OPTIONAL, -- Need OR + deltaTxD-OffsetListPUCCH-v1130 DeltaTxD-OffsetListPUCCH-v1130 OPTIONAL -- Need OR +} + +UplinkPowerControlDedicated-v1250 ::= SEQUENCE { + set2PowerControlParameter CHOICE { + release NULL, + setup SEQUENCE { + tpc-SubframeSet-r12 BIT STRING (SIZE(10)), + p0-NominalPUSCH-SubframeSet2-r12 INTEGER (-126..24), + alpha-SubframeSet2-r12 Alpha-r12, + p0-UE-PUSCH-SubframeSet2-r12 INTEGER (-8..7) + } + } +} + +UplinkPUSCH-LessPowerControlDedicated-v1430 ::= SEQUENCE { + p0-UE-PeriodicSRS-r14 INTEGER (-8..7) OPTIONAL, -- Need OR + p0-UE-AperiodicSRS-r14 INTEGER (-8..7) OPTIONAL, -- Need OR + accumulationEnabled-r14 BOOLEAN +} + +UplinkPowerControlDedicatedSCell-r10 ::= SEQUENCE { + p0-UE-PUSCH-r10 INTEGER (-8..7), + deltaMCS-Enabled-r10 ENUMERATED {en0, en1}, + accumulationEnabled-r10 BOOLEAN, + pSRS-Offset-r10 INTEGER (0..15), + pSRS-OffsetAp-r10 INTEGER (0..15) OPTIONAL, -- Need OR + filterCoefficient-r10 FilterCoefficient DEFAULT fc4, + pathlossReferenceLinking-r10 ENUMERATED {pCell, sCell} +} + +UplinkPowerControlDedicatedSCell-v1310 ::= SEQUENCE { +--Release 8 + p0-UE-PUCCH INTEGER (-8..7), +--Release 10 + deltaTxD-OffsetListPUCCH-r10 DeltaTxD-OffsetListPUCCH-r10 OPTIONAL -- Need OR +} + +Alpha-r12 ::= ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1} + +DeltaFList-PUCCH ::= SEQUENCE { + deltaF-PUCCH-Format1 ENUMERATED {deltaF-2, deltaF0, deltaF2}, + deltaF-PUCCH-Format1b ENUMERATED {deltaF1, deltaF3, deltaF5}, + deltaF-PUCCH-Format2 ENUMERATED {deltaF-2, deltaF0, deltaF1, deltaF2}, + deltaF-PUCCH-Format2a ENUMERATED {deltaF-2, deltaF0, deltaF2}, + deltaF-PUCCH-Format2b ENUMERATED {deltaF-2, deltaF0, deltaF2} +} + +DeltaTxD-OffsetListPUCCH-r10 ::= SEQUENCE { + deltaTxD-OffsetPUCCH-Format1-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format1a1b-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format22a2b-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format3-r10 ENUMERATED {dB0, dB-2}, + ... + +} + +DeltaTxD-OffsetListPUCCH-v1130 ::= SEQUENCE { + deltaTxD-OffsetPUCCH-Format1bCS-r11 ENUMERATED {dB0, dB-1} +} + + +WLAN-Id-List-r13 ::= SEQUENCE (SIZE (1..maxWLAN-Id-r13)) OF WLAN-Identifiers-r12 + + +WLAN-MobilityConfig-r13 ::= SEQUENCE { + wlan-ToReleaseList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + wlan-ToAddList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + associationTimer-r13 ENUMERATED {s10, s30, + s60, s120, s240} OPTIONAL, -- Need OR + successReportRequested-r13 ENUMERATED {true} OPTIONAL, -- Need OR + ..., + [[ wlan-SuspendConfig-r14 WLAN-SuspendConfig-r14 OPTIONAL -- Need ON + ]] +} + + +NextHopChainingCount ::= INTEGER (0..7) + + +SecurityAlgorithmConfig ::= SEQUENCE { + cipheringAlgorithm CipheringAlgorithm-r12, + integrityProtAlgorithm ENUMERATED { + eia0-v920, eia1, eia2, eia3-v1130, spare4, spare3, + spare2, spare1, ...} +} + +CipheringAlgorithm-r12 ::= ENUMERATED { + eea0, eea1, eea2, eea3-v1130, spare4, spare3, + spare2, spare1, ...} + + +ShortMAC-I ::= BIT STRING (SIZE (16)) + + +AdditionalSpectrumEmission ::= INTEGER (1..32) + +AdditionalSpectrumEmission-v10l0 ::= INTEGER (33..288) + + +ARFCN-ValueCDMA2000 ::= INTEGER (0..2047) + + +ARFCN-ValueEUTRA ::= INTEGER (0..maxEARFCN) + +ARFCN-ValueEUTRA-v9e0 ::= INTEGER (maxEARFCN-Plus1..maxEARFCN2) + +ARFCN-ValueEUTRA-r9 ::= INTEGER (0..maxEARFCN2) + + +ARFCN-ValueGERAN ::= INTEGER (0..1023) + + +ARFCN-ValueUTRA ::= INTEGER (0..16383) + + +BandclassCDMA2000 ::= ENUMERATED { + bc0, bc1, bc2, bc3, bc4, bc5, bc6, bc7, bc8, + bc9, bc10, bc11, bc12, bc13, bc14, bc15, bc16, + bc17, bc18-v9a0, bc19-v9a0, bc20-v9a0, bc21-v9a0, + spare10, spare9, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1, ...} + + +BandIndicatorGERAN ::= ENUMERATED {dcs1800, pcs1900} + + +CarrierFreqCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + arfcn ARFCN-ValueCDMA2000 +} + + +CarrierFreqGERAN ::= SEQUENCE { + arfcn ARFCN-ValueGERAN, + bandIndicator BandIndicatorGERAN +} + + +CarrierFreqsGERAN ::= SEQUENCE { + startingARFCN ARFCN-ValueGERAN, + bandIndicator BandIndicatorGERAN, + followingARFCNs CHOICE { + explicitListOfARFCNs ExplicitListOfARFCNs, + equallySpacedARFCNs SEQUENCE { + arfcn-Spacing INTEGER (1..8), + numberOfFollowingARFCNs INTEGER (0..31) + }, + variableBitMapOfARFCNs OCTET STRING (SIZE (1..16)) + } +} + +ExplicitListOfARFCNs ::= SEQUENCE (SIZE (0..31)) OF ARFCN-ValueGERAN + + +CarrierFreqListMBMS-r11 ::= SEQUENCE (SIZE (1..maxFreqMBMS-r11)) OF ARFCN-ValueEUTRA-r9 + + +CDMA2000-Type ::= ENUMERATED {type1XRTT, typeHRPD} + + +CellIdentity ::= BIT STRING (SIZE (28)) + + +CellIndexList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellIndex + +CellIndex ::= INTEGER (1..maxCellMeas) + + +CellReselectionPriority ::= INTEGER (0..7) + + +CellSelectionInfoCE-r13 ::= SEQUENCE { + q-RxLevMinCE-r13 Q-RxLevMin, + q-QualMinRSRQ-CE-r13 Q-QualMin-r9 OPTIONAL -- Need OR +} + + +CellSelectionInfoCE1-r13 ::= SEQUENCE { + q-RxLevMinCE1-r13 Q-RxLevMin, + q-QualMinRSRQ-CE1-r13 Q-QualMin-r9 OPTIONAL -- Need OR +} + +CellSelectionInfoCE1-v1360 ::= SEQUENCE { + delta-RxLevMinCE1-v1360 INTEGER (-8..-1) +} + +CellReselectionSubPriority-r13 ::= ENUMERATED {oDot2, oDot4, oDot6, oDot8} + + +CSFB-RegistrationParam1XRTT ::= SEQUENCE { + sid BIT STRING (SIZE (15)), + nid BIT STRING (SIZE (16)), + multipleSID BOOLEAN, + multipleNID BOOLEAN, + homeReg BOOLEAN, + foreignSIDReg BOOLEAN, + foreignNIDReg BOOLEAN, + parameterReg BOOLEAN, + powerUpReg BOOLEAN, + registrationPeriod BIT STRING (SIZE (7)), + registrationZone BIT STRING (SIZE (12)), + totalZone BIT STRING (SIZE (3)), + zoneTimer BIT STRING (SIZE (3)) +} + +CSFB-RegistrationParam1XRTT-v920 ::= SEQUENCE { + powerDownReg-r9 ENUMERATED {true} +} + + +CellGlobalIdEUTRA ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellIdentity CellIdentity +} + + +CellGlobalIdUTRA ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellIdentity BIT STRING (SIZE (28)) +} + + +CellGlobalIdGERAN ::= SEQUENCE { + plmn-Identity PLMN-Identity, + locationAreaCode BIT STRING (SIZE (16)), + cellIdentity BIT STRING (SIZE (16)) +} + + +CellGlobalIdCDMA2000 ::= CHOICE { + cellGlobalId1XRTT BIT STRING (SIZE (47)), + cellGlobalIdHRPD BIT STRING (SIZE (128)) +} + + +CellSelectionInfoNFreq-r13 ::= SEQUENCE { + -- Cell selection information as in SIB1 + q-RxLevMin-r13 Q-RxLevMin, + q-RxLevMinOffset INTEGER (1..8) OPTIONAL, -- Need OP + -- Cell re-selection information as in SIB3 + q-Hyst-r13 ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + q-RxLevMinReselection-r13 Q-RxLevMin, + t-ReselectionEUTRA-r13 T-Reselection +} + + +CSG-Identity ::= BIT STRING (SIZE (27)) + + +FreqBandIndicator ::= INTEGER (1..maxFBI) + +FreqBandIndicator-v9e0 ::= INTEGER (maxFBI-Plus1..maxFBI2) + +FreqBandIndicator-r11 ::= INTEGER (1..maxFBI2) + + +MobilityControlInfo ::= SEQUENCE { + targetPhysCellId PhysCellId, + carrierFreq CarrierFreqEUTRA OPTIONAL, -- Cond HO-toEUTRA2 + carrierBandwidth CarrierBandwidthEUTRA OPTIONAL, -- Cond HO-toEUTRA + additionalSpectrumEmission AdditionalSpectrumEmission OPTIONAL, -- Cond HO-toEUTRA + t304 ENUMERATED { + ms50, ms100, ms150, ms200, ms500, ms1000, + ms2000, ms10000-v1310}, + newUE-Identity C-RNTI, + radioResourceConfigCommon RadioResourceConfigCommon, + rach-ConfigDedicated RACH-ConfigDedicated OPTIONAL, -- Need OP + ..., + [[ carrierFreq-v9e0 CarrierFreqEUTRA-v9e0 OPTIONAL -- Need ON + ]], + [[ drb-ContinueROHC-r11 ENUMERATED {true} OPTIONAL -- Cond HO + ]], + [[ mobilityControlInfoV2X-r14 MobilityControlInfoV2X-r14 OPTIONAL, -- Need ON + handoverWithoutWT-Change-r14 ENUMERATED {keepLWA-Config, sendEndMarker} OPTIONAL, -- Cond HO + makeBeforeBreak-r14 ENUMERATED {true} OPTIONAL, -- Need OR + rach-Skip-r14 RACH-Skip-r14 OPTIONAL, -- Need OR + sameSFN-Indication-r14 ENUMERATED {true} OPTIONAL -- Cond HO-SFNsynced + ]], + [[ + mib-RepetitionStatus-r14 BOOLEAN OPTIONAL, -- Need OR + schedulingInfoSIB1-BR-r14 INTEGER (0..31) OPTIONAL -- Cond HO-SFNsynced + ]] +} + +MobilityControlInfo-v10l0 ::= SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 OPTIONAL -- Need ON +} + +MobilityControlInfoSCG-r12 ::= SEQUENCE { + t307-r12 ENUMERATED { + ms50, ms100, ms150, ms200, ms500, ms1000, + ms2000, spare1}, + ue-IdentitySCG-r12 C-RNTI OPTIONAL, -- Cond SCGEst, + rach-ConfigDedicated-r12 RACH-ConfigDedicated OPTIONAL, -- Need OP + cipheringAlgorithmSCG-r12 CipheringAlgorithm-r12 OPTIONAL, -- Need ON + ..., + [[ makeBeforeBreakSCG-r14 ENUMERATED {true} OPTIONAL, -- Need OR + rach-SkipSCG-r14 RACH-Skip-r14 OPTIONAL -- Need OR + ]] +} + +MobilityControlInfoV2X-r14 ::= SEQUENCE { + v2x-CommTxPoolExceptional-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-CommRxPool-r14 SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommSyncConfig-r14 SL-SyncConfigListV2X-r14 OPTIONAL, -- Need OR + cbr-MobilityTxConfigList-r14 SL-CBR-CommonTxConfigList-r14 OPTIONAL -- Need OR +} + +CarrierBandwidthEUTRA ::= SEQUENCE { + dl-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100, spare10, + spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1}, + ul-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100, spare10, + spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1} OPTIONAL -- Need OP +} + +CarrierFreqEUTRA ::= SEQUENCE { + dl-CarrierFreq ARFCN-ValueEUTRA, + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL -- Cond FDD +} + +CarrierFreqEUTRA-v9e0 ::= SEQUENCE { + dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9, + ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9 OPTIONAL -- Cond FDD +} + +RACH-Skip-r14 ::= SEQUENCE { + targetTA-r14 CHOICE { + ta0-r14 NULL, + mcg-PTAG-r14 NULL, + scg-PTAG-r14 NULL, + mcg-STAG-r14 STAG-Id-r11, + scg-STAG-r14 STAG-Id-r11 + }, + ul-ConfigInfo-r14 SEQUENCE { + numberOfConfUL-Processes-r14 INTEGER (1..8), + ul-SchedInterval-r14 ENUMERATED {sf2, sf5, sf10}, + ul-StartSubframe-r14 INTEGER (0..9), + ul-Grant-r14 BIT STRING (SIZE (16)) + } OPTIONAL -- Need OR +} + + +MobilityParametersCDMA2000 ::= OCTET STRING + + +MobilityStateParameters ::= SEQUENCE { + t-Evaluation ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + t-HystNormal ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + n-CellChangeMedium INTEGER (1..16), + n-CellChangeHigh INTEGER (1..16) +} + + +MultiBandInfoList ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator + +MultiBandInfoList-v9e0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF MultiBandInfo-v9e0 + +MultiBandInfoList-v10j0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF NS-PmaxList-r10 + +MultiBandInfoList-v10l0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF NS-PmaxList-v10l0 + +MultiBandInfoList-r11 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-r11 + +MultiBandInfo-v9e0 ::= SEQUENCE { + freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL -- Need OP +} + + +NS-PmaxList-r10 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-r10 + +NS-PmaxList-v10l0 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-v10l0 + +NS-PmaxValue-r10 ::= SEQUENCE { + additionalPmax-r10 P-Max OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission +} + +NS-PmaxValue-v10l0 ::= SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 OPTIONAL -- Need OP +} + + +PhysCellId ::= INTEGER (0..503) + + +PhysCellIdRange ::= SEQUENCE { + start PhysCellId, + range ENUMERATED { + n4, n8, n12, n16, n24, n32, n48, n64, n84, + n96, n128, n168, n252, n504, spare2, + spare1} OPTIONAL -- Need OP +} + + +PhysCellIdRangeUTRA-FDDList-r9::= SEQUENCE (SIZE (1..maxPhysCellIdRange-r9)) OF PhysCellIdRangeUTRA-FDD-r9 + +PhysCellIdRangeUTRA-FDD-r9 ::= SEQUENCE { + start-r9 PhysCellIdUTRA-FDD, + range-r9 INTEGER (2..512) OPTIONAL -- Need OP +} + + +PhysCellIdCDMA2000 ::= INTEGER (0..maxPNOffset) + + +PhysCellIdGERAN ::= SEQUENCE { + networkColourCode BIT STRING (SIZE (3)), + baseStationColourCode BIT STRING (SIZE (3)) +} + + +PhysCellIdUTRA-FDD ::= INTEGER (0..511) + + +PhysCellIdUTRA-TDD ::= INTEGER (0..127) + + +PLMN-Identity ::= SEQUENCE { + mcc MCC OPTIONAL, -- Cond MCC + mnc MNC +} + +MCC ::= SEQUENCE (SIZE (3)) OF + MCC-MNC-Digit + +MNC ::= SEQUENCE (SIZE (2..3)) OF + MCC-MNC-Digit + +MCC-MNC-Digit ::= INTEGER (0..9) + + + +PLMN-IdentityList3-r11 ::= SEQUENCE (SIZE (1..16)) OF PLMN-Identity + + +PreRegistrationInfoHRPD ::= SEQUENCE { + preRegistrationAllowed BOOLEAN, + preRegistrationZoneId PreRegistrationZoneIdHRPD OPTIONAL, -- cond PreRegAllowed + secondaryPreRegistrationZoneIdList SecondaryPreRegistrationZoneIdListHRPD OPTIONAL -- Need OR +} + +SecondaryPreRegistrationZoneIdListHRPD ::= SEQUENCE (SIZE (1..2)) OF PreRegistrationZoneIdHRPD + +PreRegistrationZoneIdHRPD ::= INTEGER (0..255) + + +Q-QualMin-r9 ::= INTEGER (-34..-3) + + +Q-RxLevMin ::= INTEGER (-70..-22) + + +Q-OffsetRange ::= ENUMERATED { + dB-24, dB-22, dB-20, dB-18, dB-16, dB-14, + dB-12, dB-10, dB-8, dB-6, dB-5, dB-4, dB-3, + dB-2, dB-1, dB0, dB1, dB2, dB3, dB4, dB5, + dB6, dB8, dB10, dB12, dB14, dB16, dB18, + dB20, dB22, dB24} + + +Q-OffsetRangeInterRAT ::= INTEGER (-15..15) + + +ReselectionThreshold ::= INTEGER (0..31) + + +ReselectionThresholdQ-r9 ::= INTEGER (0..31) + + +SCellIndex-r10 ::= INTEGER (1..7) +SCellIndex-r13 ::= INTEGER (1..31) + + +ServCellIndex-r10 ::= INTEGER (0..7) +ServCellIndex-r13 ::= INTEGER (0..31) + + +SpeedStateScaleFactors ::= SEQUENCE { + sf-Medium ENUMERATED {oDot25, oDot5, oDot75, lDot0}, + sf-High ENUMERATED {oDot25, oDot5, oDot75, lDot0} +} + +SystemInfoListGERAN ::= SEQUENCE (SIZE (1..maxGERAN-SI)) OF + OCTET STRING (SIZE (1..23)) + + +SystemTimeInfoCDMA2000 ::= SEQUENCE { + cdma-EUTRA-Synchronisation BOOLEAN, + cdma-SystemTime CHOICE { + synchronousSystemTime BIT STRING (SIZE (39)), + asynchronousSystemTime BIT STRING (SIZE (49)) + } +} + + +TrackingAreaCode ::= BIT STRING (SIZE (16)) + + +T-Reselection ::= INTEGER (0..7) + + +T-ReselectionEUTRA-CE-r13 ::= INTEGER (0..15) + + +AllowedMeasBandwidth ::= ENUMERATED {mbw6, mbw15, mbw25, mbw50, mbw75, mbw100} + + +CSI-RSRP-Range-r12 ::= INTEGER(0..97) + + +Hysteresis ::= INTEGER (0..30) + + +LocationInfo-r10 ::= SEQUENCE { + locationCoordinates-r10 CHOICE { + ellipsoid-Point-r10 OCTET STRING, + ellipsoidPointWithAltitude-r10 OCTET STRING, + ..., + ellipsoidPointWithUncertaintyCircle-r11 OCTET STRING, + ellipsoidPointWithUncertaintyEllipse-r11 OCTET STRING, + ellipsoidPointWithAltitudeAndUncertaintyEllipsoid-r11 OCTET STRING, + ellipsoidArc-r11 OCTET STRING, + polygon-r11 OCTET STRING + }, + horizontalVelocity-r10 OCTET STRING OPTIONAL, + gnss-TOD-msec-r10 OCTET STRING OPTIONAL, + ... +} + + +MBSFN-RSRQ-Range-r12 ::= INTEGER(0..31) + +MeasConfig ::= SEQUENCE { + -- Measurement objects + measObjectToRemoveList MeasObjectToRemoveList OPTIONAL, -- Need ON + measObjectToAddModList MeasObjectToAddModList OPTIONAL, -- Need ON + -- Reporting configurations + reportConfigToRemoveList ReportConfigToRemoveList OPTIONAL, -- Need ON + reportConfigToAddModList ReportConfigToAddModList OPTIONAL, -- Need ON + -- Measurement identities + measIdToRemoveList MeasIdToRemoveList OPTIONAL, -- Need ON + measIdToAddModList MeasIdToAddModList OPTIONAL, -- Need ON + -- Other parameters + quantityConfig QuantityConfig OPTIONAL, -- Need ON + measGapConfig MeasGapConfig OPTIONAL, -- Need ON + s-Measure RSRP-Range OPTIONAL, -- Need ON + preRegistrationInfoHRPD PreRegistrationInfoHRPD OPTIONAL, -- Need OP + speedStatePars CHOICE { + release NULL, + setup SEQUENCE { + mobilityStateParameters MobilityStateParameters, + timeToTrigger-SF SpeedStateScaleFactors + } + } OPTIONAL, -- Need ON + ..., + [[ measObjectToAddModList-v9e0 MeasObjectToAddModList-v9e0 OPTIONAL -- Need ON + ]], + [[ allowInterruptions-r11 BOOLEAN OPTIONAL -- Need ON + ]], + [[ measScaleFactor-r12 CHOICE { + release NULL, + setup MeasScaleFactor-r12 + } OPTIONAL, -- Need ON + measIdToRemoveListExt-r12 MeasIdToRemoveListExt-r12 OPTIONAL, -- Need ON + measIdToAddModListExt-r12 MeasIdToAddModListExt-r12 OPTIONAL, -- Need ON + measRSRQ-OnAllSymbols-r12 BOOLEAN OPTIONAL -- Need ON + ]], + [[ + measObjectToRemoveListExt-r13 MeasObjectToRemoveListExt-r13 OPTIONAL, -- Need ON + measObjectToAddModListExt-r13 MeasObjectToAddModListExt-r13 OPTIONAL, -- Need ON + measIdToAddModList-v1310 MeasIdToAddModList-v1310 OPTIONAL, -- Need ON + measIdToAddModListExt-v1310 MeasIdToAddModListExt-v1310 OPTIONAL -- Need ON + ]], + [[ measGapConfigPerCC-List-r14 MeasGapConfigPerCC-List-r14 OPTIONAL, -- Need ON + measGapSharingConfig-r14 MeasGapSharingConfig-r14 OPTIONAL -- Need ON + ]] +} + +MeasIdToRemoveList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId + +MeasIdToRemoveListExt-r12 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId-v1250 + +MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId + +MeasObjectToRemoveListExt-r13 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId-v1310 + +ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigId + + +MeasDS-Config-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + dmtc-PeriodOffset-r12 CHOICE { + ms40-r12 INTEGER(0..39), + ms80-r12 INTEGER(0..79), + ms160-r12 INTEGER(0..159), + ... + }, + ds-OccasionDuration-r12 CHOICE { + durationFDD-r12 INTEGER(1..maxDS-Duration-r12), + durationTDD-r12 INTEGER(2..maxDS-Duration-r12) + }, + measCSI-RS-ToRemoveList-r12 MeasCSI-RS-ToRemoveList-r12 OPTIONAL, -- Need ON + measCSI-RS-ToAddModList-r12 MeasCSI-RS-ToAddModList-r12 OPTIONAL, -- Need ON + ... + } +} + +MeasCSI-RS-ToRemoveList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Id-r12 + +MeasCSI-RS-ToAddModList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Config-r12 + +MeasCSI-RS-Id-r12 ::= INTEGER (1..maxCSI-RS-Meas-r12) + +MeasCSI-RS-Config-r12 ::= SEQUENCE { + measCSI-RS-Id-r12 MeasCSI-RS-Id-r12, + physCellId-r12 INTEGER (0..503), + scramblingIdentity-r12 INTEGER (0..503), + resourceConfig-r12 INTEGER (0..31), + subframeOffset-r12 INTEGER (0..4), + csi-RS-IndividualOffset-r12 Q-OffsetRange, + ... +} + + +MeasGapConfig ::= CHOICE { + release NULL, + setup SEQUENCE { + gapOffset CHOICE { + gp0 INTEGER (0..39), + gp1 INTEGER (0..79), + + ..., + gp2-r14 INTEGER (0..39), + gp3-r14 INTEGER (0..79), + gp-ncsg0-r14 INTEGER (0..39), + gp-ncsg1-r14 INTEGER (0..79), + gp-ncsg2-r14 INTEGER (0..39), + gp-ncsg3-r14 INTEGER (0..79), + gp-nonUniform1-r14 INTEGER (0..1279), + gp-nonUniform2-r14 INTEGER (0..2559), + gp-nonUniform3-r14 INTEGER (0..5119), + gp-nonUniform4-r14 INTEGER (0..10239) + } + } +} + + + +MeasGapConfigPerCC-List-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + measGapConfigToRemoveList-r14 MeasGapConfigToRemoveList-r14 OPTIONAL, -- Need ON + measGapConfigToAddModList-r14 MeasGapConfigToAddModList-r14 OPTIONAL -- Need ON + } +} + +MeasGapConfigToRemoveList-r14 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF ServCellIndex-r13 + +MeasGapConfigToAddModList-r14 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasGapConfigPerCC-r14 + +MeasGapConfigPerCC-r14 ::= SEQUENCE { + servCellId-r14 ServCellIndex-r13, + measGapConfigCC-r14 MeasGapConfig +} + + +MeasGapSharingConfig-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + measGapSharingScheme-r14 ENUMERATED {scheme00, scheme01, scheme10, scheme11} + } +} + + +MeasId ::= INTEGER (1..maxMeasId) + +MeasId-v1250 ::= INTEGER (maxMeasId-Plus1..maxMeasId-r12) + + +MeasIdToAddModList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod + +MeasIdToAddModList-v1310 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod-v1310 + +MeasIdToAddModListExt-r12 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddModExt-r12 + +MeasIdToAddModListExt-v1310 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod-v1310 + +MeasIdToAddMod ::= SEQUENCE { + measId MeasId, + measObjectId MeasObjectId, + reportConfigId ReportConfigId +} + +MeasIdToAddModExt-r12 ::= SEQUENCE { + measId-v1250 MeasId-v1250, + measObjectId-r12 MeasObjectId, + reportConfigId-r12 ReportConfigId +} + +MeasIdToAddMod-v1310 ::= SEQUENCE { + measObjectId-v1310 MeasObjectId-v1310 OPTIONAL +} + + +MeasObjectCDMA2000 ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + carrierFreq CarrierFreqCDMA2000, + searchWindowSize INTEGER (0..15) OPTIONAL, -- Need ON + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CellsToAddModListCDMA2000 OPTIONAL, -- Need ON + cellForWhichToReportCGI PhysCellIdCDMA2000 OPTIONAL, -- Need ON + ... +} + +CellsToAddModListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModCDMA2000 + +CellsToAddModCDMA2000 ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdCDMA2000 +} + + +MeasObjectEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + allowedMeasBandwidth AllowedMeasBandwidth, + presenceAntennaPort1 PresenceAntennaPort1, + neighCellConfig NeighCellConfig, + offsetFreq Q-OffsetRange DEFAULT dB0, + -- Cell list + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CellsToAddModList OPTIONAL, -- Need ON + -- Black list + blackCellsToRemoveList CellIndexList OPTIONAL, -- Need ON + blackCellsToAddModList BlackCellsToAddModList OPTIONAL, -- Need ON + cellForWhichToReportCGI PhysCellId OPTIONAL, -- Need ON + ..., + [[measCycleSCell-r10 MeasCycleSCell-r10 OPTIONAL, -- Need ON + measSubframePatternConfigNeigh-r10 MeasSubframePatternConfigNeigh-r10 OPTIONAL -- Need ON + ]], + [[widebandRSRQ-Meas-r11 BOOLEAN OPTIONAL -- Cond WB-RSRQ + ]], + [[ altTTT-CellsToRemoveList-r12 CellIndexList OPTIONAL, -- Need ON + altTTT-CellsToAddModList-r12 AltTTT-CellsToAddModList-r12 OPTIONAL, -- Need ON + t312-r12 CHOICE { + release NULL, + setup ENUMERATED {ms0, ms50, ms100, ms200, + ms300, ms400, ms500, ms1000} + } OPTIONAL, -- Need ON + reducedMeasPerformance-r12 BOOLEAN OPTIONAL, -- Need ON + measDS-Config-r12 MeasDS-Config-r12 OPTIONAL -- Need ON + ]], + [[ + whiteCellsToRemoveList-r13 CellIndexList OPTIONAL, -- Need ON + whiteCellsToAddModList-r13 WhiteCellsToAddModList-r13 OPTIONAL, -- Need ON + rmtc-Config-r13 RMTC-Config-r13 OPTIONAL, -- Need ON + carrierFreq-r13 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Need ON + ]], + [[ + tx-ResourcePoolToRemoveList-r14 Tx-ResourcePoolMeasList-r14 OPTIONAL, -- Need ON + tx-ResourcePoolToAddList-r14 Tx-ResourcePoolMeasList-r14 OPTIONAL, -- Need ON + fembms-MixedCarrier-r14 BOOLEAN OPTIONAL -- Need ON + ]] +} + +MeasObjectEUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +CellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddMod + +CellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellId, + cellIndividualOffset Q-OffsetRange +} + +BlackCellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF BlackCellsToAddMod + +BlackCellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellIdRange PhysCellIdRange +} + +MeasCycleSCell-r10 ::= ENUMERATED {sf160, sf256, sf320, sf512, + sf640, sf1024, sf1280, spare1} + +MeasSubframePatternConfigNeigh-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + measSubframePatternNeigh-r10 MeasSubframePattern-r10, + measSubframeCellList-r10 MeasSubframeCellList-r10 OPTIONAL -- Cond always + } +} + +MeasSubframeCellList-r10 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF PhysCellIdRange + +AltTTT-CellsToAddModList-r12 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF AltTTT-CellsToAddMod-r12 + +AltTTT-CellsToAddMod-r12 ::= SEQUENCE { + cellIndex-r12 INTEGER (1..maxCellMeas), + physCellIdRange-r12 PhysCellIdRange +} + +WhiteCellsToAddModList-r13 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF WhiteCellsToAddMod-r13 + +WhiteCellsToAddMod-r13 ::= SEQUENCE { + cellIndex-r13 INTEGER (1..maxCellMeas), + physCellIdRange-r13 PhysCellIdRange +} + +RMTC-Config-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + rmtc-Period-r13 ENUMERATED {ms40, ms80, ms160, ms320, ms640}, + rmtc-SubframeOffset-r13 INTEGER(0..639) OPTIONAL, -- Need ON + measDuration-r13 ENUMERATED {sym1, sym14, sym28, sym42, sym70}, + ... + } +} + +Tx-ResourcePoolMeasList-r14 ::= SEQUENCE (SIZE (1..maxSL-PoolToMeasure-r14)) OF SL-V2X-TxPoolReportIdentity-r14 + + +MeasObjectGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + ncc-Permitted BIT STRING(SIZE (8)) DEFAULT '11111111'B, + cellForWhichToReportCGI PhysCellIdGERAN OPTIONAL, -- Need ON + ... +} + + +MeasObjectId ::= INTEGER (1..maxObjectId) + +MeasObjectId-v1310 ::= INTEGER (maxObjectId-Plus1-r13..maxObjectId-r13) + +MeasObjectId-r13 ::= INTEGER (1..maxObjectId-r13) + + +MeasObjectToAddModList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod + +MeasObjectToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddModExt-r13 + +MeasObjectToAddModList-v9e0 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod-v9e0 + +MeasObjectToAddMod ::= SEQUENCE { + measObjectId MeasObjectId, + measObject CHOICE { + measObjectEUTRA MeasObjectEUTRA, + measObjectUTRA MeasObjectUTRA, + measObjectGERAN MeasObjectGERAN, + measObjectCDMA2000 MeasObjectCDMA2000, + ..., + measObjectWLAN-r13 MeasObjectWLAN-r13 + } +} + +MeasObjectToAddModExt-r13 ::= SEQUENCE { + measObjectId-r13 MeasObjectId-v1310, + measObject-r13 CHOICE { + measObjectEUTRA-r13 MeasObjectEUTRA, + measObjectUTRA-r13 MeasObjectUTRA, + measObjectGERAN-r13 MeasObjectGERAN, + measObjectCDMA2000-r13 MeasObjectCDMA2000, + ..., + measObjectWLAN-v1320 MeasObjectWLAN-r13 + } +} + +MeasObjectToAddMod-v9e0 ::= SEQUENCE { + measObjectEUTRA-v9e0 MeasObjectEUTRA-v9e0 OPTIONAL -- Cond eutra +} + + +MeasObjectUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CHOICE { + cellsToAddModListUTRA-FDD CellsToAddModListUTRA-FDD, + cellsToAddModListUTRA-TDD CellsToAddModListUTRA-TDD + } OPTIONAL, -- Need ON + cellForWhichToReportCGI CHOICE { + utra-FDD PhysCellIdUTRA-FDD, + utra-TDD PhysCellIdUTRA-TDD + } OPTIONAL, -- Need ON + ..., + [[ csg-allowedReportingCells-v930 CSG-AllowedReportingCells-r9 OPTIONAL -- Need ON + ]], + [[ reducedMeasPerformance-r12 BOOLEAN OPTIONAL -- Need ON + ]] +} + +CellsToAddModListUTRA-FDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-FDD + +CellsToAddModUTRA-FDD ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdUTRA-FDD +} + +CellsToAddModListUTRA-TDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-TDD + +CellsToAddModUTRA-TDD ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdUTRA-TDD +} + +CSG-AllowedReportingCells-r9 ::= SEQUENCE { + physCellIdRangeUTRA-FDDList-r9 PhysCellIdRangeUTRA-FDDList-r9 OPTIONAL -- Need OR +} + +MeasObjectWLAN-r13 ::= SEQUENCE { + carrierFreq-r13 CHOICE { + bandIndicatorListWLAN-r13 SEQUENCE (SIZE (1..maxWLAN-Bands-r13)) OF WLAN-BandIndicator-r13, + carrierInfoListWLAN-r13 SEQUENCE (SIZE (1..maxWLAN-CarrierInfo-r13)) OF WLAN-CarrierInfo-r13 + } OPTIONAL, -- Need ON + wlan-ToAddModList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + wlan-ToRemoveList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + ... +} + +WLAN-BandIndicator-r13 ::= ENUMERATED {band2dot4, band5, band60-v1430, spare5, spare4, spare3, spare2, spare1, ...} + + +MeasResults ::= SEQUENCE { + measId MeasId, + measResultPCell SEQUENCE { + rsrpResult RSRP-Range, + rsrqResult RSRQ-Range + }, + measResultNeighCells CHOICE { + measResultListEUTRA MeasResultListEUTRA, + measResultListUTRA MeasResultListUTRA, + measResultListGERAN MeasResultListGERAN, + measResultsCDMA2000 MeasResultsCDMA2000, + ... + } OPTIONAL, + ..., + [[ measResultForECID-r9 MeasResultForECID-r9 OPTIONAL + ]], + [[ locationInfo-r10 LocationInfo-r10 OPTIONAL, + measResultServFreqList-r10 MeasResultServFreqList-r10 OPTIONAL + ]], + [[ measId-v1250 MeasId-v1250 OPTIONAL, + measResultPCell-v1250 RSRQ-Range-v1250 OPTIONAL, + measResultCSI-RS-List-r12 MeasResultCSI-RS-List-r12 OPTIONAL + ]], + [[ measResultForRSSI-r13 MeasResultForRSSI-r13 OPTIONAL, + measResultServFreqListExt-r13 MeasResultServFreqListExt-r13 OPTIONAL, + measResultSSTD-r13 MeasResultSSTD-r13 OPTIONAL, + measResultPCell-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL, + ul-PDCP-DelayResultList-r13 UL-PDCP-DelayResultList-r13 OPTIONAL, + measResultListWLAN-r13 MeasResultListWLAN-r13 OPTIONAL + ]], + [[ measResultPCell-v1360 RSRP-Range-v1360 OPTIONAL + ]], + [[ measResultListCBR-r14 MeasResultListCBR-r14 OPTIONAL, + measResultListWLAN-r14 MeasResultListWLAN-r14 OPTIONAL + ]] +} + +MeasResultListEUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultEUTRA + +MeasResultEUTRA ::= SEQUENCE { + physCellId PhysCellId, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdEUTRA, + trackingAreaCode TrackingAreaCode, + plmn-IdentityList PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + rsrpResult RSRP-Range OPTIONAL, + rsrqResult RSRQ-Range OPTIONAL, + ..., + [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL + ]], + [[ primaryPLMN-Suitable-r12 ENUMERATED {true} OPTIONAL, + measResult-v1250 RSRQ-Range-v1250 OPTIONAL + ]], + [[ rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL, + cgi-Info-v1310 SEQUENCE { + freqBandIndicator-r13 FreqBandIndicator-r11 OPTIONAL, + multiBandInfoList-r13 MultiBandInfoList-r11 OPTIONAL, + freqBandIndicatorPriority-r13 ENUMERATED {true} OPTIONAL + } OPTIONAL + ]], + [[ + measResult-v1360 RSRP-Range-v1360 OPTIONAL + ]] + } +} + +MeasResultServFreqList-r10 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF MeasResultServFreq-r10 + +MeasResultServFreqListExt-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultServFreq-r13 + +MeasResultServFreq-r10 ::= SEQUENCE { + servFreqId-r10 ServCellIndex-r10, + measResultSCell-r10 SEQUENCE { + rsrpResultSCell-r10 RSRP-Range, + rsrqResultSCell-r10 RSRQ-Range + } OPTIONAL, + measResultBestNeighCell-r10 SEQUENCE { + physCellId-r10 PhysCellId, + rsrpResultNCell-r10 RSRP-Range, + rsrqResultNCell-r10 RSRQ-Range + } OPTIONAL, + ..., + [[ measResultSCell-v1250 RSRQ-Range-v1250 OPTIONAL, + measResultBestNeighCell-v1250 RSRQ-Range-v1250 OPTIONAL + ]], + [[ measResultSCell-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL, + measResultBestNeighCell-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL + ]] +} + +MeasResultServFreq-r13 ::= SEQUENCE { + servFreqId-r13 ServCellIndex-r13, + measResultSCell-r13 SEQUENCE { + rsrpResultSCell-r13 RSRP-Range, + rsrqResultSCell-r13 RSRQ-Range-r13, + rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL + } OPTIONAL, + measResultBestNeighCell-r13 SEQUENCE { + physCellId-r13 PhysCellId, + rsrpResultNCell-r13 RSRP-Range, + rsrqResultNCell-r13 RSRQ-Range-r13, + rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL + } OPTIONAL, + ..., + [[ measResultBestNeighCell-v1360 SEQUENCE { + rsrpResultNCell-v1360 RSRP-Range-v1360 + } OPTIONAL + ]] +} + +MeasResultCSI-RS-List-r12 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCSI-RS-r12 + +MeasResultCSI-RS-r12 ::= SEQUENCE { + measCSI-RS-Id-r12 MeasCSI-RS-Id-r12, + csi-RSRP-Result-r12 CSI-RSRP-Range-r12, + ... +} + +MeasResultListUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultUTRA + +MeasResultUTRA ::= SEQUENCE { + physCellId CHOICE { + fdd PhysCellIdUTRA-FDD, + tdd PhysCellIdUTRA-TDD + }, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdUTRA, + locationAreaCode BIT STRING (SIZE (16)) OPTIONAL, + routingAreaCode BIT STRING (SIZE (8)) OPTIONAL, + plmn-IdentityList PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + utra-RSCP INTEGER (-5..91) OPTIONAL, + utra-EcN0 INTEGER (0..49) OPTIONAL, + ..., + [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL + ]], + [[ primaryPLMN-Suitable-r12 ENUMERATED {true} OPTIONAL + ]] + } +} + +MeasResultListGERAN ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultGERAN + +MeasResultGERAN ::= SEQUENCE { + carrierFreq CarrierFreqGERAN, + physCellId PhysCellIdGERAN, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdGERAN, + routingAreaCode BIT STRING (SIZE (8)) OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + rssi INTEGER (0..63), + ... + } +} + +MeasResultsCDMA2000 ::= SEQUENCE { + preRegistrationStatusHRPD BOOLEAN, + measResultListCDMA2000 MeasResultListCDMA2000 +} + +MeasResultListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCDMA2000 + +MeasResultCDMA2000 ::= SEQUENCE { + physCellId PhysCellIdCDMA2000, + cgi-Info CellGlobalIdCDMA2000 OPTIONAL, + measResult SEQUENCE { + pilotPnPhase INTEGER (0..32767) OPTIONAL, + pilotStrength INTEGER (0..63), + ... + } +} + +MeasResultListWLAN-r13 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultWLAN-r13 + +MeasResultListWLAN-r14 ::= SEQUENCE (SIZE (1..maxWLAN-Id-Report-r14)) OF MeasResultWLAN-r13 + +MeasResultWLAN-r13 ::= SEQUENCE { + wlan-Identifiers-r13 WLAN-Identifiers-r12, + carrierInfoWLAN-r13 WLAN-CarrierInfo-r13 OPTIONAL, + bandWLAN-r13 WLAN-BandIndicator-r13 OPTIONAL, + rssiWLAN-r13 WLAN-RSSI-Range-r13, + availableAdmissionCapacityWLAN-r13 INTEGER (0..31250) OPTIONAL, + backhaulDL-BandwidthWLAN-r13 WLAN-backhaulRate-r12 OPTIONAL, + backhaulUL-BandwidthWLAN-r13 WLAN-backhaulRate-r12 OPTIONAL, + channelUtilizationWLAN-r13 INTEGER (0..255) OPTIONAL, + stationCountWLAN-r13 INTEGER (0..65535) OPTIONAL, + connectedWLAN-r13 ENUMERATED {true} OPTIONAL, + ... +} + +MeasResultListCBR-r14 ::= SEQUENCE (SIZE (1..maxCBR-Report-r14)) OF MeasResultCBR-r14 + +MeasResultCBR-r14 ::= SEQUENCE { + poolIdentity-r14 SL-V2X-TxPoolReportIdentity-r14, + cbr-PSSCH-r14 SL-CBR-r14, + cbr-PSCCH-r14 SL-CBR-r14 OPTIONAL +} + +MeasResultForECID-r9 ::= SEQUENCE { + ue-RxTxTimeDiffResult-r9 INTEGER (0..4095), + currentSFN-r9 BIT STRING (SIZE (10)) +} + +PLMN-IdentityList2 ::= SEQUENCE (SIZE (1..5)) OF PLMN-Identity + +AdditionalSI-Info-r9 ::= SEQUENCE { + csg-MemberStatus-r9 ENUMERATED {member} OPTIONAL, + csg-Identity-r9 CSG-Identity OPTIONAL +} +MeasResultForRSSI-r13 ::= SEQUENCE { + rssi-Result-r13 RSSI-Range-r13, + channelOccupancy-r13 INTEGER (0..100), + ... +} + +UL-PDCP-DelayResultList-r13 ::= SEQUENCE (SIZE (1..maxQCI-r13)) OF UL-PDCP-DelayResult-r13 + + +UL-PDCP-DelayResult-r13 ::= SEQUENCE { + qci-Id-r13 ENUMERATED {qci1, qci2, qci3, qci4, spare4, spare3, spare2, spare1}, + excessDelay-r13 INTEGER (0..31), + ... +} + + +MeasResultSSTD-r13 ::= SEQUENCE { + sfn-OffsetResult-r13 INTEGER (0..1023), + frameBoundaryOffsetResult-r13 INTEGER (-5..4), + subframeBoundaryOffsetResult-r13 INTEGER (0..127) +} + + +MeasScaleFactor-r12 ::= ENUMERATED {sf-EUTRA-cf1, sf-EUTRA-cf2} + + +QuantityConfig ::= SEQUENCE { + quantityConfigEUTRA QuantityConfigEUTRA OPTIONAL, -- Need ON + quantityConfigUTRA QuantityConfigUTRA OPTIONAL, -- Need ON + quantityConfigGERAN QuantityConfigGERAN OPTIONAL, -- Need ON + quantityConfigCDMA2000 QuantityConfigCDMA2000 OPTIONAL, -- Need ON + ..., + [[ quantityConfigUTRA-v1020 QuantityConfigUTRA-v1020 OPTIONAL -- Need ON + ]], + [[ quantityConfigEUTRA-v1250 QuantityConfigEUTRA-v1250 OPTIONAL -- Need ON + ]], + [[ quantityConfigEUTRA-v1310 QuantityConfigEUTRA-v1310 OPTIONAL, -- Need ON + quantityConfigWLAN-r13 QuantityConfigWLAN-r13 OPTIONAL -- Need ON + ]] +} + +QuantityConfigEUTRA ::= SEQUENCE { + filterCoefficientRSRP FilterCoefficient DEFAULT fc4, + filterCoefficientRSRQ FilterCoefficient DEFAULT fc4 +} + +QuantityConfigEUTRA-v1250 ::= SEQUENCE { + filterCoefficientCSI-RSRP-r12 FilterCoefficient OPTIONAL -- Need OR +} + +QuantityConfigEUTRA-v1310 ::= SEQUENCE { + filterCoefficientRS-SINR-r13 FilterCoefficient DEFAULT fc4 +} + +QuantityConfigUTRA ::= SEQUENCE { + measQuantityUTRA-FDD ENUMERATED {cpich-RSCP, cpich-EcN0}, + measQuantityUTRA-TDD ENUMERATED {pccpch-RSCP}, + filterCoefficient FilterCoefficient DEFAULT fc4 +} + +QuantityConfigUTRA-v1020 ::= SEQUENCE { + filterCoefficient2-FDD-r10 FilterCoefficient DEFAULT fc4 +} + +QuantityConfigGERAN ::= SEQUENCE { + measQuantityGERAN ENUMERATED {rssi}, + filterCoefficient FilterCoefficient DEFAULT fc2 +} + +QuantityConfigCDMA2000 ::= SEQUENCE { + measQuantityCDMA2000 ENUMERATED {pilotStrength, pilotPnPhaseAndPilotStrength} +} + +QuantityConfigWLAN-r13 ::= SEQUENCE { + measQuantityWLAN-r13 ENUMERATED {rssiWLAN}, + filterCoefficient-r13 FilterCoefficient DEFAULT fc4 +} + + +ReportConfigEUTRA ::= SEQUENCE { + triggerType CHOICE { + event SEQUENCE { + eventId CHOICE { + eventA1 SEQUENCE { + a1-Threshold ThresholdEUTRA + }, + eventA2 SEQUENCE { + a2-Threshold ThresholdEUTRA + }, + eventA3 SEQUENCE { + a3-Offset INTEGER (-30..30), + reportOnLeave BOOLEAN + }, + eventA4 SEQUENCE { + a4-Threshold ThresholdEUTRA + }, + eventA5 SEQUENCE { + a5-Threshold1 ThresholdEUTRA, + a5-Threshold2 ThresholdEUTRA + }, + ..., + eventA6-r10 SEQUENCE { + a6-Offset-r10 INTEGER (-30..30), + a6-ReportOnLeave-r10 BOOLEAN + }, + eventC1-r12 SEQUENCE { + c1-Threshold-r12 ThresholdEUTRA-v1250, + c1-ReportOnLeave-r12 BOOLEAN + }, + eventC2-r12 SEQUENCE { + c2-RefCSI-RS-r12 MeasCSI-RS-Id-r12, + c2-Offset-r12 INTEGER (-30..30), + c2-ReportOnLeave-r12 BOOLEAN + }, + eventV1-r14 SEQUENCE { + v1-Threshold-r14 SL-CBR-r14 + }, + eventV2-r14 SEQUENCE { + v2-Threshold-r14 SL-CBR-r14 + } + }, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + periodical SEQUENCE { + purpose ENUMERATED { + reportStrongestCells, reportCGI} + } + }, + triggerQuantity ENUMERATED {rsrp, rsrq}, + reportQuantity ENUMERATED {sameAsTriggerQuantity, both}, + maxReportCells INTEGER (1..maxCellReport), + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + ..., + [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL, -- Cond reportCGI + ue-RxTxTimeDiffPeriodical-r9 ENUMERATED {setup} OPTIONAL -- Need OR + ]], + [[ includeLocationInfo-r10 ENUMERATED {true} OPTIONAL, -- Need OR + reportAddNeighMeas-r10 ENUMERATED {setup} OPTIONAL -- Need OR + ]], + [[ alternativeTimeToTrigger-r12 CHOICE { + release NULL, + setup TimeToTrigger + } OPTIONAL, -- Need ON + useT312-r12 BOOLEAN OPTIONAL, -- Need ON + usePSCell-r12 BOOLEAN OPTIONAL, -- Need ON + aN-Threshold1-v1250 RSRQ-RangeConfig-r12 OPTIONAL, -- Need ON + a5-Threshold2-v1250 RSRQ-RangeConfig-r12 OPTIONAL, -- Need ON + reportStrongestCSI-RSs-r12 BOOLEAN OPTIONAL, -- Need ON + reportCRS-Meas-r12 BOOLEAN OPTIONAL, -- Need ON + triggerQuantityCSI-RS-r12 BOOLEAN OPTIONAL -- Need ON + ]], + [[ reportSSTD-Meas-r13 BOOLEAN OPTIONAL, -- Need ON + rs-sinr-Config-r13 CHOICE { + release NULL, + setup SEQUENCE { + triggerQuantity-v1310 ENUMERATED {sinr} OPTIONAL, -- Need ON + aN-Threshold1-r13 RS-SINR-Range-r13 OPTIONAL, -- Need ON + a5-Threshold2-r13 RS-SINR-Range-r13 OPTIONAL, -- Need ON + reportQuantity-v1310 ENUMERATED {rsrpANDsinr, rsrqANDsinr, all} + } + } OPTIONAL, -- Need ON + useWhiteCellList-r13 BOOLEAN OPTIONAL, -- Need ON + measRSSI-ReportConfig-r13 MeasRSSI-ReportConfig-r13 OPTIONAL, -- Need ON + includeMultiBandInfo-r13 ENUMERATED {true} OPTIONAL, -- Cond reportCGI + ul-DelayConfig-r13 UL-DelayConfig-r13 OPTIONAL -- Need ON + ]], + [[ ue-RxTxTimeDiffPeriodicalTDD-r13 BOOLEAN OPTIONAL -- Need ON + ]], + [[ + purpose-v1430 ENUMERATED {reportLocation, sidelink, spare2, spare1} + OPTIONAL -- Need ON + ]] +} + +RSRQ-RangeConfig-r12 ::= CHOICE { + release NULL, + setup RSRQ-Range-v1250 +} + +ThresholdEUTRA ::= CHOICE{ + threshold-RSRP RSRP-Range, + threshold-RSRQ RSRQ-Range +} + +ThresholdEUTRA-v1250 ::= CSI-RSRP-Range-r12 + +MeasRSSI-ReportConfig-r13 ::= SEQUENCE { + channelOccupancyThreshold-r13 RSSI-Range-r13 OPTIONAL -- Need OR +} + + +ReportConfigId ::= INTEGER (1..maxReportConfigId) + + +ReportConfigInterRAT ::= SEQUENCE { + triggerType CHOICE { + event SEQUENCE { + eventId CHOICE { + eventB1 SEQUENCE { + b1-Threshold CHOICE { + b1-ThresholdUTRA ThresholdUTRA, + b1-ThresholdGERAN ThresholdGERAN, + b1-ThresholdCDMA2000 ThresholdCDMA2000 + } + }, + eventB2 SEQUENCE { + b2-Threshold1 ThresholdEUTRA, + b2-Threshold2 CHOICE { + b2-Threshold2UTRA ThresholdUTRA, + b2-Threshold2GERAN ThresholdGERAN, + b2-Threshold2CDMA2000 ThresholdCDMA2000 + } + }, + ..., + eventW1-r13 SEQUENCE { + w1-Threshold-r13 WLAN-RSSI-Range-r13 + }, + eventW2-r13 SEQUENCE { + w2-Threshold1-r13 WLAN-RSSI-Range-r13, + w2-Threshold2-r13 WLAN-RSSI-Range-r13 + }, + eventW3-r13 SEQUENCE { + w3-Threshold-r13 WLAN-RSSI-Range-r13 + } + }, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + periodical SEQUENCE { + purpose ENUMERATED { + reportStrongestCells, + reportStrongestCellsForSON, + reportCGI} + } + }, + maxReportCells INTEGER (1..maxCellReport), + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + ..., + [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL -- Cond reportCGI + ]], + [[ reportQuantityUTRA-FDD-r10 ENUMERATED {both} OPTIONAL -- Need OR + ]], + [[ includeLocationInfo-r11 BOOLEAN OPTIONAL -- Need ON + ]], + [[ b2-Threshold1-v1250 CHOICE { + release NULL, + setup RSRQ-Range-v1250 + } OPTIONAL -- Need ON + ]], + [[ reportQuantityWLAN-r13 ReportQuantityWLAN-r13 OPTIONAL -- Need ON + ]], + [[ reportAnyWLAN-r14 BOOLEAN OPTIONAL -- Need ON + ]] +} + +ThresholdUTRA ::= CHOICE{ + utra-RSCP INTEGER (-5..91), + utra-EcN0 INTEGER (0..49) +} + +ThresholdGERAN ::= INTEGER (0..63) + +ThresholdCDMA2000 ::= INTEGER (0..63) + +ReportQuantityWLAN-r13 ::= SEQUENCE { + bandRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + carrierInfoRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + availableAdmissionCapacityRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + backhaulDL-BandwidthRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + backhaulUL-BandwidthRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + channelUtilizationRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + stationCountRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + ... +} + + +ReportConfigToAddModList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigToAddMod + +ReportConfigToAddMod ::= SEQUENCE { + reportConfigId ReportConfigId, + reportConfig CHOICE { + reportConfigEUTRA ReportConfigEUTRA, + reportConfigInterRAT ReportConfigInterRAT + } +} + + + +ReportInterval ::= ENUMERATED { + ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, + min1, min6, min12, min30, min60, spare3, spare2, spare1} + + +RSRP-Range ::= INTEGER(0..97) + +RSRP-Range-v1360 ::= INTEGER(-17..-1) + +RSRP-RangeSL-r12 ::= INTEGER(0..13) + +RSRP-RangeSL2-r12 ::= INTEGER(0..7) + +RSRP-RangeSL3-r12 ::= INTEGER(0..11) + +RSRP-RangeSL4-r13 ::= INTEGER(0..49) + + +RSRQ-Range ::= INTEGER(0..34) + +RSRQ-Range-v1250 ::= INTEGER(-30..46) + +RSRQ-Range-r13 ::= INTEGER(-30..46) + + +RSRQ-Type-r12 ::= SEQUENCE { + allSymbols-r12 BOOLEAN, + wideBand-r12 BOOLEAN +} + + +RS-SINR-Range-r13 ::= INTEGER(0..127) + + +RSSI-Range-r13 ::= INTEGER(0..76) + + +TimeToTrigger ::= ENUMERATED { + ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256, + ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560, + ms5120} + + +UL-DelayConfig-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + delayThreshold-r13 ENUMERATED { + ms30, ms40, ms50, ms60, ms70, ms80, + ms90,ms100, ms150, ms300, ms500, ms750, spare4, spare3, spare2, spare1} + } +} + + +WLAN-CarrierInfo-r13 ::= SEQUENCE { + operatingClass-r13 INTEGER (0..255) OPTIONAL, -- Need ON + countryCode-r13 ENUMERATED {unitedStates, europe, japan, global, ...} OPTIONAL, -- Need ON + channelNumbers-r13 WLAN-ChannelList-r13 OPTIONAL, -- Need ON + ... +} + +WLAN-ChannelList-r13 ::= SEQUENCE (SIZE (1..maxWLAN-Channels-r13)) OF WLAN-Channel-r13 + +WLAN-Channel-r13 ::= INTEGER(0..255) + + +WLAN-RSSI-Range-r13 ::= INTEGER(0..141) + + +WLAN-Status-r13 ::= ENUMERATED {successfulAssociation, failureWlanRadioLink, failureWlanUnavailable, failureTimeout} + +WLAN-Status-v1430 ::= ENUMERATED {suspended, resumed} + + +WLAN-SuspendConfig-r14 ::= SEQUENCE { + wlan-SuspendResumeAllowed-r14 BOOLEAN OPTIONAL, -- Need ON + wlan-SuspendTriggersStatusReport-r14 BOOLEAN OPTIONAL -- Need ON +} + + +AbsoluteTimeInfo-r10 ::= BIT STRING (SIZE (48)) + + +AreaConfiguration-r10 ::= CHOICE { + cellGlobalIdList-r10 CellGlobalIdList-r10, + trackingAreaCodeList-r10 TrackingAreaCodeList-r10 +} + +AreaConfiguration-v1130 ::= SEQUENCE { + trackingAreaCodeList-v1130 TrackingAreaCodeList-v1130 +} + +CellGlobalIdList-r10 ::= SEQUENCE (SIZE (1..32)) OF CellGlobalIdEUTRA + +TrackingAreaCodeList-r10 ::= SEQUENCE (SIZE (1..8)) OF TrackingAreaCode + +TrackingAreaCodeList-v1130 ::= SEQUENCE { + plmn-Identity-perTAC-List-r11 SEQUENCE (SIZE (1..8)) OF PLMN-Identity +} + + +BandCombinationList-r14 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombination-r14 + +BandCombination-r14 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandIndication-r14 + +BandIndication-r14 ::= SEQUENCE { + bandEUTRA-r14 FreqBandIndicator-r11, + ca-BandwidthClassDL-r14 CA-BandwidthClass-r10, + ca-BandwidthClassUL-r14 CA-BandwidthClass-r10 OPTIONAL +} + + +C-RNTI ::= BIT STRING (SIZE (16)) + + +DedicatedInfoCDMA2000 ::= OCTET STRING + + +DedicatedInfoNAS ::= OCTET STRING + + +FilterCoefficient ::= ENUMERATED { + fc0, fc1, fc2, fc3, fc4, fc5, + fc6, fc7, fc8, fc9, fc11, fc13, + fc15, fc17, fc19, spare1, ...} + + +LoggingDuration-r10 ::= ENUMERATED { + min10, min20, min40, min60, min90, min120, spare2, spare1} + + +LoggingInterval-r10 ::= ENUMERATED { + ms1280, ms2560, ms5120, ms10240, ms20480, + ms30720, ms40960, ms61440} + + +MeasSubframePattern-r10 ::= CHOICE { + subframePatternFDD-r10 BIT STRING (SIZE (40)), + subframePatternTDD-r10 CHOICE { + subframeConfig1-5-r10 BIT STRING (SIZE (20)), + subframeConfig0-r10 BIT STRING (SIZE (70)), + subframeConfig6-r10 BIT STRING (SIZE (60)), + ... + }, + ... +} + + +MMEC ::= BIT STRING (SIZE (8)) + + +NeighCellConfig ::= BIT STRING (SIZE (2)) + + +OtherConfig-r9 ::= SEQUENCE { + reportProximityConfig-r9 ReportProximityConfig-r9 OPTIONAL, -- Need ON + ..., + [[ idc-Config-r11 IDC-Config-r11 OPTIONAL, -- Need ON + powerPrefIndicationConfig-r11 PowerPrefIndicationConfig-r11 OPTIONAL, -- Need ON + obtainLocationConfig-r11 ObtainLocationConfig-r11 OPTIONAL -- Need ON + ]], + [[ bw-PreferenceIndicationTimer-r14 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, + s30, s60, s90, s120, s300, s600, spare3, + spare2, spare1} OPTIONAL, -- Need OR + sps-AssistanceInfoReport-r14 BOOLEAN OPTIONAL, -- Need ON + delayBudgetReportingConfig-r14 CHOICE{ + release NULL, + setup SEQUENCE{ + delayBudgetReportingProhibitTimer-r14 ENUMERATED { + s0, s0dot4, s0dot8, + s1dot6, s3, s6, s12, s30} + } + } OPTIONAL, -- Need ON + rlm-ReportConfig-r14 CHOICE { + release NULL, + setup SEQUENCE{ + rlmReportTimer-r14 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, s30, + s60, s90, s120, s300, s600, spare3, spare2, spare1}, + rlmReportRep-MPDCCH-r14 ENUMERATED {setup} OPTIONAL -- Need OR + } + } OPTIONAL -- Need ON + ]], + [[ overheatingAssistanceConfig-r14 CHOICE{ + release NULL, + setup SEQUENCE{ + overheatingIndicationProhibitTimer-r14 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, + s20, s30, s60, s90, s120, s300, s600, + spare3, spare2, spare1} + } + } OPTIONAL -- Need ON + ]] +} + +IDC-Config-r11 ::= SEQUENCE { + idc-Indication-r11 ENUMERATED {setup} OPTIONAL, -- Need OR + autonomousDenialParameters-r11 SEQUENCE { + autonomousDenialSubframes-r11 ENUMERATED {n2, n5, n10, n15, + n20, n30, spare2, spare1}, + autonomousDenialValidity-r11 ENUMERATED { + sf200, sf500, sf1000, sf2000, + spare4, spare3, spare2, spare1} + } OPTIONAL, -- Need OR + ..., + [[ idc-Indication-UL-CA-r11 ENUMERATED {setup} OPTIONAL -- Cond idc-Ind + ]], + [[ idc-HardwareSharingIndication-r13 ENUMERATED {setup} OPTIONAL -- Need OR + ]] +} + +ObtainLocationConfig-r11 ::= SEQUENCE { + obtainLocation-r11 ENUMERATED {setup} OPTIONAL -- Need OR +} + +PowerPrefIndicationConfig-r11 ::= CHOICE{ + release NULL, + setup SEQUENCE{ + powerPrefIndicationTimer-r11 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, + s30, s60, s90, s120, s300, s600, spare3, + spare2, spare1} + } +} + +ReportProximityConfig-r9 ::= SEQUENCE { + proximityIndicationEUTRA-r9 ENUMERATED {enabled} OPTIONAL, -- Need OR + proximityIndicationUTRA-r9 ENUMERATED {enabled} OPTIONAL -- Need OR +} + + +RAND-CDMA2000 ::= BIT STRING (SIZE (32)) + + +RAT-Type ::= ENUMERATED { + eutra, utra, geran-cs, geran-ps, cdma2000-1XRTT, + spare3, spare2, spare1, ...} + + +ResumeIdentity-r13 ::= BIT STRING (SIZE(40)) + + +RRC-TransactionIdentifier ::= INTEGER (0..3) + + +S-TMSI ::= SEQUENCE { + mmec MMEC, + m-TMSI BIT STRING (SIZE (32)) +} + + +TraceReference-r10 ::= SEQUENCE { + plmn-Identity-r10 PLMN-Identity, + traceId-r10 OCTET STRING (SIZE (3)) +} + + +UE-CapabilityRAT-ContainerList ::=SEQUENCE (SIZE (0..maxRAT-Capabilities)) OF UE-CapabilityRAT-Container + +UE-CapabilityRAT-Container ::= SEQUENCE { + rat-Type RAT-Type, + ueCapabilityRAT-Container OCTET STRING +} + + +UE-EUTRA-Capability ::= SEQUENCE { + accessStratumRelease AccessStratumRelease, + ue-Category INTEGER (1..5), + pdcp-Parameters PDCP-Parameters, + phyLayerParameters PhyLayerParameters, + rf-Parameters RF-Parameters, + measParameters MeasParameters, + featureGroupIndicators BIT STRING (SIZE (32)) OPTIONAL, + interRAT-Parameters SEQUENCE { + utraFDD IRAT-ParametersUTRA-FDD OPTIONAL, + utraTDD128 IRAT-ParametersUTRA-TDD128 OPTIONAL, + utraTDD384 IRAT-ParametersUTRA-TDD384 OPTIONAL, + utraTDD768 IRAT-ParametersUTRA-TDD768 OPTIONAL, + geran IRAT-ParametersGERAN OPTIONAL, + cdma2000-HRPD IRAT-ParametersCDMA2000-HRPD OPTIONAL, + cdma2000-1xRTT IRAT-ParametersCDMA2000-1XRTT OPTIONAL + }, + nonCriticalExtension UE-EUTRA-Capability-v920-IEs OPTIONAL +} + +-- Late non critical extensions +UE-EUTRA-Capability-v9a0-IEs ::= SEQUENCE { + featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9c0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9c0-IEs ::= SEQUENCE { + interRAT-ParametersUTRA-v9c0 IRAT-ParametersUTRA-v9c0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9d0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9d0-IEs ::= SEQUENCE { + phyLayerParameters-v9d0 PhyLayerParameters-v9d0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9e0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9e0-IEs ::= SEQUENCE { + rf-Parameters-v9e0 RF-Parameters-v9e0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9h0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9h0-IEs ::= SEQUENCE { + interRAT-ParametersUTRA-v9h0 IRAT-ParametersUTRA-v9h0 OPTIONAL, + -- Following field is only to be used for late REL-9 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10c0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10c0-IEs ::= SEQUENCE { + otdoa-PositioningCapabilities-r10 OTDOA-PositioningCapabilities-r10 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10f0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10f0-IEs ::= SEQUENCE { + rf-Parameters-v10f0 RF-Parameters-v10f0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10i0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10i0-IEs ::= SEQUENCE { + rf-Parameters-v10i0 RF-Parameters-v10i0 OPTIONAL, + -- Following field is only to be used for late REL-10 extensions + lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v10j0-IEs) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11d0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10j0-IEs ::= SEQUENCE { + rf-Parameters-v10j0 RF-Parameters-v10j0 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-EUTRA-Capability-v11d0-IEs ::= SEQUENCE { + rf-Parameters-v11d0 RF-Parameters-v11d0 OPTIONAL, + otherParameters-v11d0 Other-Parameters-v11d0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11x0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v11x0-IEs ::= SEQUENCE { + -- Following field is only to be used for late REL-11 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v12b0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v12b0-IEs ::= SEQUENCE { + rf-Parameters-v12b0 RF-Parameters-v12b0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v12x0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v12x0-IEs ::= SEQUENCE { + -- Following field is only to be used for late REL-12 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1370-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1370-IEs ::= SEQUENCE { + ce-Parameters-v1370 CE-Parameters-v1370 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1370 UE-EUTRA-CapabilityAddXDD-Mode-v1370 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1370 UE-EUTRA-CapabilityAddXDD-Mode-v1370 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1380-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1380-IEs ::= SEQUENCE { + rf-Parameters-v1380 RF-Parameters-v1380 OPTIONAL, + ce-Parameters-v1380 CE-Parameters-v1380, + fdd-Add-UE-EUTRA-Capabilities-v1380 UE-EUTRA-CapabilityAddXDD-Mode-v1380, + tdd-Add-UE-EUTRA-Capabilities-v1380 UE-EUTRA-CapabilityAddXDD-Mode-v1380, + nonCriticalExtension UE-EUTRA-Capability-v1390-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1390-IEs ::= SEQUENCE { + rf-Parameters-v1390 RF-Parameters-v1390 OPTIONAL, + -- Following field is only to be used for late REL-13 extensions + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +UE-EUTRA-Capability-v920-IEs ::= SEQUENCE { + phyLayerParameters-v920 PhyLayerParameters-v920, + interRAT-ParametersGERAN-v920 IRAT-ParametersGERAN-v920, + interRAT-ParametersUTRA-v920 IRAT-ParametersUTRA-v920 OPTIONAL, + interRAT-ParametersCDMA2000-v920 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL, + deviceType-r9 ENUMERATED {noBenFromBatConsumpOpt} OPTIONAL, + csg-ProximityIndicationParameters-r9 CSG-ProximityIndicationParameters-r9, + neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9, + son-Parameters-r9 SON-Parameters-r9, + nonCriticalExtension UE-EUTRA-Capability-v940-IEs OPTIONAL +} + +UE-EUTRA-Capability-v940-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v9a0-IEs) + OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1020-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1020-IEs ::= SEQUENCE { + ue-Category-v1020 INTEGER (6..8) OPTIONAL, + phyLayerParameters-v1020 PhyLayerParameters-v1020 OPTIONAL, + rf-Parameters-v1020 RF-Parameters-v1020 OPTIONAL, + measParameters-v1020 MeasParameters-v1020 OPTIONAL, + featureGroupIndRel10-r10 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersCDMA2000-v1020 IRAT-ParametersCDMA2000-1XRTT-v1020 OPTIONAL, + ue-BasedNetwPerfMeasParameters-r10 UE-BasedNetwPerfMeasParameters-r10 OPTIONAL, + interRAT-ParametersUTRA-TDD-v1020 IRAT-ParametersUTRA-TDD-v1020 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1060-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1060-IEs ::= SEQUENCE { + fdd-Add-UE-EUTRA-Capabilities-v1060 UE-EUTRA-CapabilityAddXDD-Mode-v1060 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1060 UE-EUTRA-CapabilityAddXDD-Mode-v1060 OPTIONAL, + rf-Parameters-v1060 RF-Parameters-v1060 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1090-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1090-IEs ::= SEQUENCE { + rf-Parameters-v1090 RF-Parameters-v1090 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1130-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1130-IEs ::= SEQUENCE { + pdcp-Parameters-v1130 PDCP-Parameters-v1130, + phyLayerParameters-v1130 PhyLayerParameters-v1130 OPTIONAL, + rf-Parameters-v1130 RF-Parameters-v1130, + measParameters-v1130 MeasParameters-v1130, + interRAT-ParametersCDMA2000-v1130 IRAT-ParametersCDMA2000-v1130, + otherParameters-r11 Other-Parameters-r11, + fdd-Add-UE-EUTRA-Capabilities-v1130 UE-EUTRA-CapabilityAddXDD-Mode-v1130 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1130 UE-EUTRA-CapabilityAddXDD-Mode-v1130 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1170-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1170-IEs ::= SEQUENCE { + phyLayerParameters-v1170 PhyLayerParameters-v1170 OPTIONAL, + ue-Category-v1170 INTEGER (9..10) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1180-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1180-IEs ::= SEQUENCE { + rf-Parameters-v1180 RF-Parameters-v1180 OPTIONAL, + mbms-Parameters-r11 MBMS-Parameters-r11 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1180 UE-EUTRA-CapabilityAddXDD-Mode-v1180 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1180 UE-EUTRA-CapabilityAddXDD-Mode-v1180 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11a0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v11a0-IEs ::= SEQUENCE { + ue-Category-v11a0 INTEGER (11..12) OPTIONAL, + measParameters-v11a0 MeasParameters-v11a0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1250-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1250-IEs ::= SEQUENCE { + phyLayerParameters-v1250 PhyLayerParameters-v1250 OPTIONAL, + rf-Parameters-v1250 RF-Parameters-v1250 OPTIONAL, + rlc-Parameters-r12 RLC-Parameters-r12 OPTIONAL, + ue-BasedNetwPerfMeasParameters-v1250 UE-BasedNetwPerfMeasParameters-v1250 OPTIONAL, + ue-CategoryDL-r12 INTEGER (0..14) OPTIONAL, + ue-CategoryUL-r12 INTEGER (0..13) OPTIONAL, + wlan-IW-Parameters-r12 WLAN-IW-Parameters-r12 OPTIONAL, + measParameters-v1250 MeasParameters-v1250 OPTIONAL, + dc-Parameters-r12 DC-Parameters-r12 OPTIONAL, + mbms-Parameters-v1250 MBMS-Parameters-v1250 OPTIONAL, + mac-Parameters-r12 MAC-Parameters-r12 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1250 UE-EUTRA-CapabilityAddXDD-Mode-v1250 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1250 UE-EUTRA-CapabilityAddXDD-Mode-v1250 OPTIONAL, + sl-Parameters-r12 SL-Parameters-r12 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1260-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1260-IEs ::= SEQUENCE { + ue-CategoryDL-v1260 INTEGER (15..16) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1270-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1270-IEs ::= SEQUENCE { + rf-Parameters-v1270 RF-Parameters-v1270 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1280-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1280-IEs ::= SEQUENCE { + phyLayerParameters-v1280 PhyLayerParameters-v1280 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1310-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1310-IEs ::= SEQUENCE { + ue-CategoryDL-v1310 ENUMERATED {n17, m1} OPTIONAL, + ue-CategoryUL-v1310 ENUMERATED {n14, m1} OPTIONAL, + pdcp-Parameters-v1310 PDCP-Parameters-v1310, + rlc-Parameters-v1310 RLC-Parameters-v1310, + mac-Parameters-v1310 MAC-Parameters-v1310 OPTIONAL, + phyLayerParameters-v1310 PhyLayerParameters-v1310 OPTIONAL, + rf-Parameters-v1310 RF-Parameters-v1310 OPTIONAL, + measParameters-v1310 MeasParameters-v1310 OPTIONAL, + dc-Parameters-v1310 DC-Parameters-v1310 OPTIONAL, + sl-Parameters-v1310 SL-Parameters-v1310 OPTIONAL, + scptm-Parameters-r13 SCPTM-Parameters-r13 OPTIONAL, + ce-Parameters-r13 CE-Parameters-r13 OPTIONAL, + interRAT-ParametersWLAN-r13 IRAT-ParametersWLAN-r13, + laa-Parameters-r13 LAA-Parameters-r13 OPTIONAL, + lwa-Parameters-r13 LWA-Parameters-r13 OPTIONAL, + wlan-IW-Parameters-v1310 WLAN-IW-Parameters-v1310, + lwip-Parameters-r13 LWIP-Parameters-r13, + fdd-Add-UE-EUTRA-Capabilities-v1310 UE-EUTRA-CapabilityAddXDD-Mode-v1310 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1310 UE-EUTRA-CapabilityAddXDD-Mode-v1310 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1320-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1320-IEs ::= SEQUENCE { + ce-Parameters-v1320 CE-Parameters-v1320 OPTIONAL, + phyLayerParameters-v1320 PhyLayerParameters-v1320 OPTIONAL, + rf-Parameters-v1320 RF-Parameters-v1320 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1320 UE-EUTRA-CapabilityAddXDD-Mode-v1320 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1320 UE-EUTRA-CapabilityAddXDD-Mode-v1320 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1330-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1330-IEs ::= SEQUENCE { + ue-CategoryDL-v1330 INTEGER (18..19) OPTIONAL, + phyLayerParameters-v1330 PhyLayerParameters-v1330 OPTIONAL, + ue-CE-NeedULGaps-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1340-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1340-IEs ::= SEQUENCE { + ue-CategoryUL-v1340 INTEGER (15) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1350-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1350-IEs ::= SEQUENCE { + ue-CategoryDL-v1350 ENUMERATED {oneBis} OPTIONAL, + ue-CategoryUL-v1350 ENUMERATED {oneBis} OPTIONAL, + ce-Parameters-v1350 CE-Parameters-v1350, + nonCriticalExtension UE-EUTRA-Capability-v1360-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1360-IEs ::= SEQUENCE { + other-Parameters-v1360 Other-Parameters-v1360 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1430-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1430-IEs ::= SEQUENCE { + phyLayerParameters-v1430 PhyLayerParameters-v1430, + ue-CategoryDL-v1430 ENUMERATED {m2} OPTIONAL, + ue-CategoryUL-v1430 ENUMERATED {n16, n17, n18, n19, n20, m2} OPTIONAL, + ue-CategoryUL-v1430b ENUMERATED {n21} OPTIONAL, + mac-Parameters-v1430 MAC-Parameters-v1430 OPTIONAL, + measParameters-v1430 MeasParameters-v1430 OPTIONAL, + pdcp-Parameters-v1430 PDCP-Parameters-v1430 OPTIONAL, + rlc-Parameters-v1430 RLC-Parameters-v1430, + rf-Parameters-v1430 RF-Parameters-v1430 OPTIONAL, + laa-Parameters-v1430 LAA-Parameters-v1430 OPTIONAL, + lwa-Parameters-v1430 LWA-Parameters-v1430 OPTIONAL, + lwip-Parameters-v1430 LWIP-Parameters-v1430 OPTIONAL, + otherParameters-v1430 Other-Parameters-v1430, + mmtel-Parameters-r14 MMTEL-Parameters-r14 OPTIONAL, + mobilityParameters-r14 MobilityParameters-r14 OPTIONAL, + ce-Parameters-v1430 CE-Parameters-v1430, + fdd-Add-UE-EUTRA-Capabilities-v1430 UE-EUTRA-CapabilityAddXDD-Mode-v1430 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1430 UE-EUTRA-CapabilityAddXDD-Mode-v1430 OPTIONAL, + mbms-Parameters-v1430 MBMS-Parameters-v1430 OPTIONAL, + sl-Parameters-v1430 SL-Parameters-v1430 OPTIONAL, + ue-BasedNetwPerfMeasParameters-v1430 UE-BasedNetwPerfMeasParameters-v1430 OPTIONAL, + highSpeedEnhParameters-r14 HighSpeedEnhParameters-r14 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1440-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1440-IEs ::= SEQUENCE { + lwa-Parameters-v1440 LWA-Parameters-v1440, + mac-Parameters-v1440 MAC-Parameters-v1440, + nonCriticalExtension UE-EUTRA-Capability-v1450-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1450-IEs ::= SEQUENCE { + phyLayerParameters-v1450 PhyLayerParameters-v1450 OPTIONAL, + rf-Parameters-v1450 RF-Parameters-v1450 OPTIONAL, + otherParameters-v1450 OtherParameters-v1450, + ue-CategoryDL-v1450 INTEGER (20) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1460-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1460-IEs ::= SEQUENCE { + ue-CategoryDL-v1460 INTEGER (21) OPTIONAL, + otherParameters-v1460 Other-Parameters-v1460, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-r9 ::= SEQUENCE { + phyLayerParameters-r9 PhyLayerParameters OPTIONAL, + featureGroupIndicators-r9 BIT STRING (SIZE (32)) OPTIONAL, + featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersGERAN-r9 IRAT-ParametersGERAN OPTIONAL, + interRAT-ParametersUTRA-r9 IRAT-ParametersUTRA-v920 OPTIONAL, + interRAT-ParametersCDMA2000-r9 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL, + neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9 OPTIONAL, + ... +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1060 ::= SEQUENCE { + phyLayerParameters-v1060 PhyLayerParameters-v1020 OPTIONAL, + featureGroupIndRel10-v1060 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersCDMA2000-v1060 IRAT-ParametersCDMA2000-1XRTT-v1020 OPTIONAL, + interRAT-ParametersUTRA-TDD-v1060 IRAT-ParametersUTRA-TDD-v1020 OPTIONAL, + ..., + [[ otdoa-PositioningCapabilities-r10 OTDOA-PositioningCapabilities-r10 OPTIONAL + ]] +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1130 ::= SEQUENCE { + phyLayerParameters-v1130 PhyLayerParameters-v1130 OPTIONAL, + measParameters-v1130 MeasParameters-v1130 OPTIONAL, + otherParameters-r11 Other-Parameters-r11 OPTIONAL, + ... +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1180 ::= SEQUENCE { + mbms-Parameters-r11 MBMS-Parameters-r11 +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1250 ::= SEQUENCE { + phyLayerParameters-v1250 PhyLayerParameters-v1250 OPTIONAL, + measParameters-v1250 MeasParameters-v1250 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1310 ::= SEQUENCE { + phyLayerParameters-v1310 PhyLayerParameters-v1310 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1320 ::= SEQUENCE { + phyLayerParameters-v1320 PhyLayerParameters-v1320 OPTIONAL, + scptm-Parameters-r13 SCPTM-Parameters-r13 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1370 ::= SEQUENCE { + ce-Parameters-v1370 CE-Parameters-v1370 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1380 ::= SEQUENCE { + ce-Parameters-v1380 CE-Parameters-v1380 +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1430 ::= SEQUENCE { + phyLayerParameters-v1430 PhyLayerParameters-v1430 OPTIONAL, + mmtel-Parameters-r14 MMTEL-Parameters-r14 OPTIONAL +} + +AccessStratumRelease ::= ENUMERATED { + rel8, rel9, rel10, rel11, rel12, rel13, + rel14, spare1, ...} + +MobilityParameters-r14 ::= SEQUENCE { + makeBeforeBreak-r14 ENUMERATED {supported} OPTIONAL, + rach-Less-r14 ENUMERATED {supported} OPTIONAL +} + +DC-Parameters-r12 ::= SEQUENCE { + drb-TypeSplit-r12 ENUMERATED {supported} OPTIONAL, + drb-TypeSCG-r12 ENUMERATED {supported} OPTIONAL +} + +DC-Parameters-v1310 ::= SEQUENCE { + pdcp-TransferSplitUL-r13 ENUMERATED {supported} OPTIONAL, + ue-SSTD-Meas-r13 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-r12 ::= SEQUENCE { + logicalChannelSR-ProhibitTimer-r12 ENUMERATED {supported} OPTIONAL, + longDRX-Command-r12 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-v1310 ::= SEQUENCE { + extendedMAC-LengthField-r13 ENUMERATED {supported} OPTIONAL, + extendedLongDRX-r13 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-v1430 ::= SEQUENCE { + shortSPS-IntervalFDD-r14 ENUMERATED {supported} OPTIONAL, + shortSPS-IntervalTDD-r14 ENUMERATED {supported} OPTIONAL, + skipUplinkDynamic-r14 ENUMERATED {supported} OPTIONAL, + skipUplinkSPS-r14 ENUMERATED {supported} OPTIONAL, + multipleUplinkSPS-r14 ENUMERATED {supported} OPTIONAL, + dataInactMon-r14 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-v1440 ::= SEQUENCE { + rai-Support-r14 ENUMERATED {supported} OPTIONAL +} + +RLC-Parameters-r12 ::= SEQUENCE { + extended-RLC-LI-Field-r12 ENUMERATED {supported} +} + +RLC-Parameters-v1310 ::= SEQUENCE { + extendedRLC-SN-SO-Field-r13 ENUMERATED {supported} OPTIONAL +} + +RLC-Parameters-v1430 ::= SEQUENCE { + extendedPollByte-r14 ENUMERATED {supported} OPTIONAL +} + +PDCP-Parameters ::= SEQUENCE { + supportedROHC-Profiles SEQUENCE { + profile0x0001 BOOLEAN, + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0101 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + maxNumberROHC-ContextSessions ENUMERATED { + cs2, cs4, cs8, cs12, cs16, cs24, cs32, + cs48, cs64, cs128, cs256, cs512, cs1024, + cs16384, spare2, spare1} DEFAULT cs16, + ... +} + +PDCP-Parameters-v1130 ::= SEQUENCE { + pdcp-SN-Extension-r11 ENUMERATED {supported} OPTIONAL, + supportRohcContextContinue-r11 ENUMERATED {supported} OPTIONAL +} + +PDCP-Parameters-v1310 ::= SEQUENCE { + pdcp-SN-Extension-18bits-r13 ENUMERATED {supported} OPTIONAL +} + +PDCP-Parameters-v1430 ::= SEQUENCE { + supportedUplinkOnlyROHC-Profiles-r14 SEQUENCE { + profile0x0006-r14 BOOLEAN + }, + maxNumberROHC-ContextSessions-r14 ENUMERATED { + cs2, cs4, cs8, cs12, cs16, cs24, cs32, + cs48, cs64, cs128, cs256, cs512, cs1024, + cs16384, spare2, spare1} DEFAULT cs16 +} + +PhyLayerParameters ::= SEQUENCE { + ue-TxAntennaSelectionSupported BOOLEAN, + ue-SpecificRefSigsSupported BOOLEAN +} + +PhyLayerParameters-v920 ::= SEQUENCE { + enhancedDualLayerFDD-r9 ENUMERATED {supported} OPTIONAL, + enhancedDualLayerTDD-r9 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v9d0 ::= SEQUENCE { + tm5-FDD-r9 ENUMERATED {supported} OPTIONAL, + tm5-TDD-r9 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1020 ::= SEQUENCE { + twoAntennaPortsForPUCCH-r10 ENUMERATED {supported} OPTIONAL, + tm9-With-8Tx-FDD-r10 ENUMERATED {supported} OPTIONAL, + pmi-Disabling-r10 ENUMERATED {supported} OPTIONAL, + crossCarrierScheduling-r10 ENUMERATED {supported} OPTIONAL, + simultaneousPUCCH-PUSCH-r10 ENUMERATED {supported} OPTIONAL, + multiClusterPUSCH-WithinCC-r10 ENUMERATED {supported} OPTIONAL, + nonContiguousUL-RA-WithinCC-List-r10 NonContiguousUL-RA-WithinCC-List-r10 OPTIONAL +} + +PhyLayerParameters-v1130 ::= SEQUENCE { + crs-InterfHandl-r11 ENUMERATED {supported} OPTIONAL, + ePDCCH-r11 ENUMERATED {supported} OPTIONAL, + multiACK-CSI-Reporting-r11 ENUMERATED {supported} OPTIONAL, + ss-CCH-InterfHandl-r11 ENUMERATED {supported} OPTIONAL, + tdd-SpecialSubframe-r11 ENUMERATED {supported} OPTIONAL, + txDiv-PUCCH1b-ChSelect-r11 ENUMERATED {supported} OPTIONAL, + ul-CoMP-r11 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1170 ::= SEQUENCE { + interBandTDD-CA-WithDifferentConfig-r11 BIT STRING (SIZE (2)) OPTIONAL +} + +PhyLayerParameters-v1250 ::= SEQUENCE { + e-HARQ-Pattern-FDD-r12 ENUMERATED {supported} OPTIONAL, + enhanced-4TxCodebook-r12 ENUMERATED {supported} OPTIONAL, + tdd-FDD-CA-PCellDuplex-r12 BIT STRING (SIZE (2)) OPTIONAL, + phy-TDD-ReConfig-TDD-PCell-r12 ENUMERATED {supported} OPTIONAL, + phy-TDD-ReConfig-FDD-PCell-r12 ENUMERATED {supported} OPTIONAL, + pusch-FeedbackMode-r12 ENUMERATED {supported} OPTIONAL, + pusch-SRS-PowerControl-SubframeSet-r12 ENUMERATED {supported} OPTIONAL, + csi-SubframeSet-r12 ENUMERATED {supported} OPTIONAL, + noResourceRestrictionForTTIBundling-r12 ENUMERATED {supported} OPTIONAL, + discoverySignalsInDeactSCell-r12 ENUMERATED {supported} OPTIONAL, + naics-Capability-List-r12 NAICS-Capability-List-r12 OPTIONAL +} + +PhyLayerParameters-v1280 ::= SEQUENCE { + alternativeTBS-Indices-r12 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1310 ::= SEQUENCE { + aperiodicCSI-Reporting-r13 BIT STRING (SIZE (2)) OPTIONAL, + codebook-HARQ-ACK-r13 BIT STRING (SIZE (2)) OPTIONAL, + crossCarrierScheduling-B5C-r13 ENUMERATED {supported} OPTIONAL, + fdd-HARQ-TimingTDD-r13 ENUMERATED {supported} OPTIONAL, + maxNumberUpdatedCSI-Proc-r13 INTEGER(5..32) OPTIONAL, + pucch-Format4-r13 ENUMERATED {supported} OPTIONAL, + pucch-Format5-r13 ENUMERATED {supported} OPTIONAL, + pucch-SCell-r13 ENUMERATED {supported} OPTIONAL, + spatialBundling-HARQ-ACK-r13 ENUMERATED {supported} OPTIONAL, + supportedBlindDecoding-r13 SEQUENCE { + maxNumberDecoding-r13 INTEGER(1..32) OPTIONAL, + pdcch-CandidateReductions-r13 ENUMERATED {supported} OPTIONAL, + skipMonitoringDCI-Format0-1A-r13 ENUMERATED {supported} OPTIONAL + } OPTIONAL, + uci-PUSCH-Ext-r13 ENUMERATED {supported} OPTIONAL, + crs-InterfMitigationTM10-r13 ENUMERATED {supported} OPTIONAL, + pdsch-CollisionHandling-r13 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1320 ::= SEQUENCE { + mimo-UE-Parameters-r13 MIMO-UE-Parameters-r13 OPTIONAL +} + +PhyLayerParameters-v1330 ::= SEQUENCE { + cch-InterfMitigation-RefRecTypeA-r13 ENUMERATED {supported} OPTIONAL, + cch-InterfMitigation-RefRecTypeB-r13 ENUMERATED {supported} OPTIONAL, + cch-InterfMitigation-MaxNumCCs-r13 INTEGER (1.. maxServCell-r13) OPTIONAL, + crs-InterfMitigationTM1toTM9-r13 INTEGER (1.. maxServCell-r13) OPTIONAL +} + +PhyLayerParameters-v1430 ::= SEQUENCE { + ce-PUSCH-NB-MaxTBS-r14 ENUMERATED {supported} OPTIONAL, + ce-PDSCH-PUSCH-MaxBandwidth-r14 ENUMERATED {bw5, bw20} OPTIONAL, + ce-HARQ-AckBundling-r14 ENUMERATED {supported} OPTIONAL, + ce-PDSCH-TenProcesses-r14 ENUMERATED {supported} OPTIONAL, + ce-RetuningSymbols-r14 ENUMERATED {n0, n1} OPTIONAL, + ce-PDSCH-PUSCH-Enhancement-r14 ENUMERATED {supported} OPTIONAL, + ce-SchedulingEnhancement-r14 ENUMERATED {supported} OPTIONAL, + ce-SRS-Enhancement-r14 ENUMERATED {supported} OPTIONAL, + ce-PUCCH-Enhancement-r14 ENUMERATED {supported} OPTIONAL, + ce-ClosedLoopTxAntennaSelection-r14 ENUMERATED {supported} OPTIONAL, + tdd-SpecialSubframe-r14 ENUMERATED {supported} OPTIONAL, + tdd-TTI-Bundling-r14 ENUMERATED {supported} OPTIONAL, + dmrs-LessUpPTS-r14 ENUMERATED {supported} OPTIONAL, + mimo-UE-Parameters-v1430 MIMO-UE-Parameters-v1430 OPTIONAL, + alternativeTBS-Index-r14 ENUMERATED {supported} OPTIONAL, + feMBMS-Unicast-Parameters-r14 FeMBMS-Unicast-Parameters-r14 OPTIONAL +} + +PhyLayerParameters-v1450 ::= SEQUENCE { + ce-SRS-EnhancementWithoutComb4-r14 ENUMERATED {supported} OPTIONAL, + crs-LessDwPTS-r14 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-Parameters-r13 ::= SEQUENCE { + parametersTM9-r13 MIMO-UE-ParametersPerTM-r13 OPTIONAL, + parametersTM10-r13 MIMO-UE-ParametersPerTM-r13 OPTIONAL, + srs-EnhancementsTDD-r13 ENUMERATED {supported} OPTIONAL, + srs-Enhancements-r13 ENUMERATED {supported} OPTIONAL, + interferenceMeasRestriction-r13 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-Parameters-v1430 ::= SEQUENCE { + parametersTM9-v1430 MIMO-UE-ParametersPerTM-v1430 OPTIONAL, + parametersTM10-v1430 MIMO-UE-ParametersPerTM-v1430 OPTIONAL +} + +MIMO-UE-ParametersPerTM-r13 ::= SEQUENCE { + nonPrecoded-r13 MIMO-NonPrecodedCapabilities-r13 OPTIONAL, + beamformed-r13 MIMO-UE-BeamformedCapabilities-r13 OPTIONAL, + channelMeasRestriction-r13 ENUMERATED {supported} OPTIONAL, + dmrs-Enhancements-r13 ENUMERATED {supported} OPTIONAL, + csi-RS-EnhancementsTDD-r13 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-ParametersPerTM-v1430 ::= SEQUENCE { + nzp-CSI-RS-AperiodicInfo-r14 SEQUENCE { + nMaxProc-r14 INTEGER(5..32), + nMaxResource-r14 ENUMERATED {ffs1, ffs2, ffs3, ffs4} + } OPTIONAL, + nzp-CSI-RS-PeriodicInfo-r14 SEQUENCE { + nMaxResource-r14 ENUMERATED {ffs1, ffs2, ffs3, ffs4} + } OPTIONAL, + zp-CSI-RS-AperiodicInfo-r14 ENUMERATED {supported} OPTIONAL, + ul-dmrs-Enhancements-r14 ENUMERATED {supported} OPTIONAL, + densityReductionNP-r14 ENUMERATED {supported} OPTIONAL, + densityReductionBF-r14 ENUMERATED {supported} OPTIONAL, + hybridCSI-r14 ENUMERATED {supported} OPTIONAL, + semiOL-r14 ENUMERATED {supported} OPTIONAL, + csi-ReportingNP-r14 ENUMERATED {supported} OPTIONAL, + csi-ReportingAdvanced-r14 ENUMERATED {supported} OPTIONAL +} + +MIMO-CA-ParametersPerBoBC-r13 ::= SEQUENCE { + parametersTM9-r13 MIMO-CA-ParametersPerBoBCPerTM-r13 OPTIONAL, + parametersTM10-r13 MIMO-CA-ParametersPerBoBCPerTM-r13 OPTIONAL +} + +MIMO-CA-ParametersPerBoBC-v1430 ::= SEQUENCE { + parametersTM9-v1430 MIMO-CA-ParametersPerBoBCPerTM-v1430 OPTIONAL, + parametersTM10-v1430 MIMO-CA-ParametersPerBoBCPerTM-v1430 OPTIONAL +} + +MIMO-CA-ParametersPerBoBCPerTM-r13 ::= SEQUENCE { + nonPrecoded-r13 MIMO-NonPrecodedCapabilities-r13 OPTIONAL, + beamformed-r13 MIMO-BeamformedCapabilityList-r13 OPTIONAL, + dmrs-Enhancements-r13 ENUMERATED {different} OPTIONAL +} + +MIMO-CA-ParametersPerBoBCPerTM-v1430 ::= SEQUENCE { + csi-ReportingNP-r14 ENUMERATED {different} OPTIONAL, + csi-ReportingAdvanced-r14 ENUMERATED {different} OPTIONAL +} + +MIMO-NonPrecodedCapabilities-r13 ::= SEQUENCE { + config1-r13 ENUMERATED {supported} OPTIONAL, + config2-r13 ENUMERATED {supported} OPTIONAL, + config3-r13 ENUMERATED {supported} OPTIONAL, + config4-r13 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-BeamformedCapabilities-r13 ::= SEQUENCE { + altCodebook-r13 ENUMERATED {supported} OPTIONAL, + mimo-BeamformedCapabilities-r13 MIMO-BeamformedCapabilityList-r13 +} + +MIMO-BeamformedCapabilityList-r13 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF MIMO-BeamformedCapabilities-r13 + +MIMO-BeamformedCapabilities-r13 ::= SEQUENCE { + k-Max-r13 INTEGER (1..8), + n-MaxList-r13 BIT STRING (SIZE (1..7)) OPTIONAL + } + +NonContiguousUL-RA-WithinCC-List-r10 ::= SEQUENCE (SIZE (1..maxBands)) OF NonContiguousUL-RA-WithinCC-r10 + +NonContiguousUL-RA-WithinCC-r10 ::= SEQUENCE { + nonContiguousUL-RA-WithinCC-Info-r10 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters ::= SEQUENCE { + supportedBandListEUTRA SupportedBandListEUTRA +} + +RF-Parameters-v9e0 ::= SEQUENCE { + supportedBandListEUTRA-v9e0 SupportedBandListEUTRA-v9e0 OPTIONAL +} + +RF-Parameters-v1020 ::= SEQUENCE { + supportedBandCombination-r10 SupportedBandCombination-r10 +} + +RF-Parameters-v1060 ::= SEQUENCE { + supportedBandCombinationExt-r10 SupportedBandCombinationExt-r10 +} + +RF-Parameters-v1090 ::= SEQUENCE { + supportedBandCombination-v1090 SupportedBandCombination-v1090 OPTIONAL +} + +RF-Parameters-v10f0 ::= SEQUENCE { + modifiedMPR-Behavior-r10 BIT STRING (SIZE (32)) OPTIONAL +} + +RF-Parameters-v10i0 ::= SEQUENCE { + supportedBandCombination-v10i0 SupportedBandCombination-v10i0 OPTIONAL +} + +RF-Parameters-v10j0 ::= SEQUENCE { + multiNS-Pmax-r10 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1130 ::= SEQUENCE { + supportedBandCombination-v1130 SupportedBandCombination-v1130 OPTIONAL +} + +RF-Parameters-v1180 ::= SEQUENCE { + freqBandRetrieval-r11 ENUMERATED {supported} OPTIONAL, + requestedBands-r11 SEQUENCE (SIZE (1.. maxBands)) OF FreqBandIndicator-r11 OPTIONAL, + supportedBandCombinationAdd-r11 SupportedBandCombinationAdd-r11 OPTIONAL +} + +RF-Parameters-v11d0 ::= SEQUENCE { + supportedBandCombinationAdd-v11d0 SupportedBandCombinationAdd-v11d0 OPTIONAL +} + +RF-Parameters-v1250 ::= SEQUENCE { + supportedBandListEUTRA-v1250 SupportedBandListEUTRA-v1250 OPTIONAL, + supportedBandCombination-v1250 SupportedBandCombination-v1250 OPTIONAL, + supportedBandCombinationAdd-v1250 SupportedBandCombinationAdd-v1250 OPTIONAL, + freqBandPriorityAdjustment-r12 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1270 ::= SEQUENCE { + supportedBandCombination-v1270 SupportedBandCombination-v1270 OPTIONAL, + supportedBandCombinationAdd-v1270 SupportedBandCombinationAdd-v1270 OPTIONAL +} + +RF-Parameters-v1310 ::= SEQUENCE { + eNB-RequestedParameters-r13 SEQUENCE { + reducedIntNonContCombRequested-r13 ENUMERATED {true} OPTIONAL, + requestedCCsDL-r13 INTEGER (2..32) OPTIONAL, + requestedCCsUL-r13 INTEGER (2..32) OPTIONAL, + skipFallbackCombRequested-r13 ENUMERATED {true} OPTIONAL + } OPTIONAL, + maximumCCsRetrieval-r13 ENUMERATED {supported} OPTIONAL, + skipFallbackCombinations-r13 ENUMERATED {supported} OPTIONAL, + reducedIntNonContComb-r13 ENUMERATED {supported} OPTIONAL, + supportedBandListEUTRA-v1310 SupportedBandListEUTRA-v1310 OPTIONAL, + supportedBandCombinationReduced-r13 SupportedBandCombinationReduced-r13 OPTIONAL +} + +RF-Parameters-v1320 ::= SEQUENCE { + supportedBandListEUTRA-v1320 SupportedBandListEUTRA-v1320 OPTIONAL, + supportedBandCombination-v1320 SupportedBandCombination-v1320 OPTIONAL, + supportedBandCombinationAdd-v1320 SupportedBandCombinationAdd-v1320 OPTIONAL, + supportedBandCombinationReduced-v1320 SupportedBandCombinationReduced-v1320 OPTIONAL +} + +RF-Parameters-v1380 ::= SEQUENCE { + supportedBandCombination-v1380 SupportedBandCombination-v1380 OPTIONAL, + supportedBandCombinationAdd-v1380 SupportedBandCombinationAdd-v1380 OPTIONAL, + supportedBandCombinationReduced-v1380 SupportedBandCombinationReduced-v1380 OPTIONAL +} + +RF-Parameters-v1390 ::= SEQUENCE { + supportedBandCombination-v1390 SupportedBandCombination-v1390 OPTIONAL, + supportedBandCombinationAdd-v1390 SupportedBandCombinationAdd-v1390 OPTIONAL, + supportedBandCombinationReduced-v1390 SupportedBandCombinationReduced-v1390 OPTIONAL +} + +RF-Parameters-v12b0 ::= SEQUENCE { + maxLayersMIMO-Indication-r12 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1430 ::= SEQUENCE { + supportedBandCombination-v1430 SupportedBandCombination-v1430 OPTIONAL, + supportedBandCombinationAdd-v1430 SupportedBandCombinationAdd-v1430 OPTIONAL, + supportedBandCombinationReduced-v1430 SupportedBandCombinationReduced-v1430 OPTIONAL, + eNB-RequestedParameters-v1430 SEQUENCE { + requestedDiffFallbackCombList-r14 BandCombinationList-r14 + } OPTIONAL, + diffFallbackCombReport-r14 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1450 ::= SEQUENCE { + supportedBandCombination-v1450 SupportedBandCombination-v1450 OPTIONAL, + supportedBandCombinationAdd-v1450 SupportedBandCombinationAdd-v1450 OPTIONAL, + supportedBandCombinationReduced-v1450 SupportedBandCombinationReduced-v1450 OPTIONAL +} + +SupportedBandCombination-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-r10 + +SupportedBandCombinationExt-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParametersExt-r10 + +SupportedBandCombination-v1090 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1090 + +SupportedBandCombination-v10i0 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v10i0 + +SupportedBandCombination-v1130 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1130 + +SupportedBandCombination-v1250 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1250 + +SupportedBandCombination-v1270 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1270 + +SupportedBandCombination-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1320 + +SupportedBandCombination-v1380 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1380 + +SupportedBandCombination-v1390 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1390 + +SupportedBandCombination-v1430 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1430 + +SupportedBandCombination-v1450 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1450 + +SupportedBandCombinationAdd-r11 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-r11 + +SupportedBandCombinationAdd-v11d0 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v10i0 + +SupportedBandCombinationAdd-v1250 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1250 + +SupportedBandCombinationAdd-v1270 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1270 + +SupportedBandCombinationAdd-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1320 + +SupportedBandCombinationAdd-v1380 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1380 + +SupportedBandCombinationAdd-v1390 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1390 + +SupportedBandCombinationAdd-v1430 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1430 + +SupportedBandCombinationAdd-v1450 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1450 + +SupportedBandCombinationReduced-r13 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-r13 + +SupportedBandCombinationReduced-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1320 + +SupportedBandCombinationReduced-v1380 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1380 + +SupportedBandCombinationReduced-v1390 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1390 + +SupportedBandCombinationReduced-v1430 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1430 + +SupportedBandCombinationReduced-v1450 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1450 + +BandCombinationParameters-r10 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r10 + +BandCombinationParametersExt-r10 ::= SEQUENCE { + supportedBandwidthCombinationSet-r10 SupportedBandwidthCombinationSet-r10 OPTIONAL +} + +BandCombinationParameters-v1090 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1090 + +BandCombinationParameters-v10i0::= SEQUENCE { + bandParameterList-v10i0 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v10i0 OPTIONAL +} + +BandCombinationParameters-v1130 ::= SEQUENCE { + multipleTimingAdvance-r11 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r11 ENUMERATED {supported} OPTIONAL, + bandParameterList-r11 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1130 OPTIONAL, + ... +} + +BandCombinationParameters-r11 ::= SEQUENCE { + bandParameterList-r11 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-r11, + supportedBandwidthCombinationSet-r11 SupportedBandwidthCombinationSet-r10 OPTIONAL, + multipleTimingAdvance-r11 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r11 ENUMERATED {supported} OPTIONAL, + bandInfoEUTRA-r11 BandInfoEUTRA, + ... +} + +BandCombinationParameters-v1250::= SEQUENCE { + dc-Support-r12 SEQUENCE { + asynchronous-r12 ENUMERATED {supported} OPTIONAL, + supportedCellGrouping-r12 CHOICE { + threeEntries-r12 BIT STRING (SIZE(3)), + fourEntries-r12 BIT STRING (SIZE(7)), + fiveEntries-r12 BIT STRING (SIZE(15)) + } OPTIONAL + } OPTIONAL, + supportedNAICS-2CRS-AP-r12 BIT STRING (SIZE (1..maxNAICS-Entries-r12)) OPTIONAL, + commSupportedBandsPerBC-r12 BIT STRING (SIZE (1.. maxBands)) OPTIONAL, + ... +} + +BandCombinationParameters-v1270 ::= SEQUENCE { + bandParameterList-v1270 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1270 OPTIONAL +} + +BandCombinationParameters-r13 ::= SEQUENCE { + differentFallbackSupported-r13 ENUMERATED {true} OPTIONAL, + bandParameterList-r13 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r13, + supportedBandwidthCombinationSet-r13 SupportedBandwidthCombinationSet-r10 OPTIONAL, + multipleTimingAdvance-r13 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r13 ENUMERATED {supported} OPTIONAL, + bandInfoEUTRA-r13 BandInfoEUTRA, + dc-Support-r13 SEQUENCE { + asynchronous-r13 ENUMERATED {supported} OPTIONAL, + supportedCellGrouping-r13 CHOICE { + threeEntries-r13 BIT STRING (SIZE(3)), + fourEntries-r13 BIT STRING (SIZE(7)), + fiveEntries-r13 BIT STRING (SIZE(15)) + } OPTIONAL + } OPTIONAL, + supportedNAICS-2CRS-AP-r13 BIT STRING (SIZE (1..maxNAICS-Entries-r12)) OPTIONAL, + commSupportedBandsPerBC-r13 BIT STRING (SIZE (1.. maxBands)) OPTIONAL +} + +BandCombinationParameters-v1320 ::= SEQUENCE { + bandParameterList-v1320 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1320 OPTIONAL, + additionalRx-Tx-PerformanceReq-r13 ENUMERATED {supported} OPTIONAL +} + +BandCombinationParameters-v1380 ::= SEQUENCE { + bandParameterList-v1380 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1380 OPTIONAL +} + +BandCombinationParameters-v1390 ::= SEQUENCE { + ue-CA-PowerClass-N-r13 ENUMERATED {class2} OPTIONAL +} + +BandCombinationParameters-v1430 ::= SEQUENCE { + bandParameterList-v1430 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1430 OPTIONAL, + v2x-SupportedTxBandCombListPerBC-r14 BIT STRING (SIZE (1.. maxBandComb-r13)) OPTIONAL, + v2x-SupportedRxBandCombListPerBC-r14 BIT STRING (SIZE (1.. maxBandComb-r13)) OPTIONAL +} + +BandCombinationParameters-v1450 ::= SEQUENCE { + bandParameterList-v1450 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1450 OPTIONAL +} + +SupportedBandwidthCombinationSet-r10 ::= BIT STRING (SIZE (1..maxBandwidthCombSet-r10)) + +BandParameters-r10 ::= SEQUENCE { + bandEUTRA-r10 FreqBandIndicator, + bandParametersUL-r10 BandParametersUL-r10 OPTIONAL, + bandParametersDL-r10 BandParametersDL-r10 OPTIONAL +} + +BandParameters-v1090 ::= SEQUENCE { + bandEUTRA-v1090 FreqBandIndicator-v9e0 OPTIONAL, + ... +} + +BandParameters-v10i0::= SEQUENCE { + bandParametersDL-v10i0 SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-v10i0 +} + +BandParameters-v1130 ::= SEQUENCE { + supportedCSI-Proc-r11 ENUMERATED {n1, n3, n4} +} + +BandParameters-r11 ::= SEQUENCE { + bandEUTRA-r11 FreqBandIndicator-r11, + bandParametersUL-r11 BandParametersUL-r10 OPTIONAL, + bandParametersDL-r11 BandParametersDL-r10 OPTIONAL, + supportedCSI-Proc-r11 ENUMERATED {n1, n3, n4} OPTIONAL +} + +BandParameters-v1270 ::= SEQUENCE { + bandParametersDL-v1270 SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-v1270 +} + +BandParameters-r13 ::= SEQUENCE { + bandEUTRA-r13 FreqBandIndicator-r11, + bandParametersUL-r13 BandParametersUL-r13 OPTIONAL, + bandParametersDL-r13 BandParametersDL-r13 OPTIONAL, + supportedCSI-Proc-r13 ENUMERATED {n1, n3, n4} OPTIONAL +} + +BandParameters-v1320 ::= SEQUENCE { + bandParametersDL-v1320 MIMO-CA-ParametersPerBoBC-r13 +} + +BandParameters-v1380 ::= SEQUENCE { + txAntennaSwitchDL-r13 INTEGER (1..32) OPTIONAL, + txAntennaSwitchUL-r13 INTEGER (1..32) OPTIONAL +} + +BandParameters-v1430 ::= SEQUENCE { + bandParametersDL-v1430 MIMO-CA-ParametersPerBoBC-v1430 OPTIONAL, + ul-256QAM-r14 ENUMERATED {supported} OPTIONAL, + ul-256QAM-perCC-InfoList-r14 SEQUENCE (SIZE (2..maxServCell-r13)) OF UL-256QAM-perCC-Info-r14 OPTIONAL, + retuningTimeInfoBandList-r14 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + RetuningTimeInfo-r14 OPTIONAL +} + +BandParameters-v1450 ::= SEQUENCE { + must-CapabilityPerBand-r14 MUST-Parameters-r14 OPTIONAL +} + +V2X-BandParameters-r14 ::= SEQUENCE { + v2x-FreqBandEUTRA-r14 FreqBandIndicator-r11, + bandParametersTxSL-r14 BandParametersTxSL-r14 OPTIONAL, + bandParametersRxSL-r14 BandParametersRxSL-r14 OPTIONAL +} + +BandParametersTxSL-r14 ::= SEQUENCE { + v2x-BandwidthClassTxSL-r14 V2X-BandwidthClassSL-r14, + v2x-eNB-Scheduled-r14 ENUMERATED {supported} OPTIONAL, + v2x-HighPower-r14 ENUMERATED {supported} OPTIONAL +} + +BandParametersRxSL-r14 ::= SEQUENCE { + v2x-BandwidthClassRxSL-r14 V2X-BandwidthClassSL-r14, + v2x-HighReception-r14 ENUMERATED {supported} OPTIONAL +} + +V2X-BandwidthClassSL-r14 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF V2X-BandwidthClass-r14 + +UL-256QAM-perCC-Info-r14 ::= SEQUENCE { + ul-256QAM-perCC-r14 ENUMERATED {supported} OPTIONAL +} + +BandParametersUL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersUL-r10 + +BandParametersUL-r13 ::= CA-MIMO-ParametersUL-r10 + +CA-MIMO-ParametersUL-r10 ::= SEQUENCE { + ca-BandwidthClassUL-r10 CA-BandwidthClass-r10, + supportedMIMO-CapabilityUL-r10 MIMO-CapabilityUL-r10 OPTIONAL +} + +BandParametersDL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-r10 + +BandParametersDL-r13 ::= CA-MIMO-ParametersDL-r13 + +CA-MIMO-ParametersDL-r10 ::= SEQUENCE { + ca-BandwidthClassDL-r10 CA-BandwidthClass-r10, + supportedMIMO-CapabilityDL-r10 MIMO-CapabilityDL-r10 OPTIONAL +} + +CA-MIMO-ParametersDL-v10i0 ::= SEQUENCE { + fourLayerTM3-TM4-r10 ENUMERATED {supported} OPTIONAL +} + +CA-MIMO-ParametersDL-v1270 ::= SEQUENCE { + intraBandContiguousCC-InfoList-r12 SEQUENCE (SIZE (1..maxServCell-r10)) OF IntraBandContiguousCC-Info-r12 +} + +CA-MIMO-ParametersDL-r13 ::= SEQUENCE { + ca-BandwidthClassDL-r13 CA-BandwidthClass-r10, + supportedMIMO-CapabilityDL-r13 MIMO-CapabilityDL-r10 OPTIONAL, + fourLayerTM3-TM4-r13 ENUMERATED {supported} OPTIONAL, + intraBandContiguousCC-InfoList-r13 SEQUENCE (SIZE (1..maxServCell-r13)) OF IntraBandContiguousCC-Info-r12 +} + +IntraBandContiguousCC-Info-r12 ::= SEQUENCE { + fourLayerTM3-TM4-perCC-r12 ENUMERATED {supported} OPTIONAL, + supportedMIMO-CapabilityDL-r12 MIMO-CapabilityDL-r10 OPTIONAL, + supportedCSI-Proc-r12 ENUMERATED {n1, n3, n4} OPTIONAL +} + +CA-BandwidthClass-r10 ::= ENUMERATED {a, b, c, d, e, f, ...} + +V2X-BandwidthClass-r14 ::= ENUMERATED {a, b, c, d, e, f, ...} + +MIMO-CapabilityUL-r10 ::= ENUMERATED {twoLayers, fourLayers} + +MIMO-CapabilityDL-r10 ::= ENUMERATED {twoLayers, fourLayers, eightLayers} + +MUST-Parameters-r14 ::= SEQUENCE { + must-TM234-UpTo2Tx-r14 ENUMERATED {supported} OPTIONAL, + must-TM89-UpToOneInterferingLayer-r14 ENUMERATED {supported} OPTIONAL, + must-TM10-UpToOneInterferingLayer-r14 ENUMERATED {supported} OPTIONAL, + must-TM89-UpToThreeInterferingLayers-r14 ENUMERATED {supported} OPTIONAL, + must-TM10-UpToThreeInterferingLayers-r14 ENUMERATED {supported} OPTIONAL +} + +SupportedBandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA + +SupportedBandListEUTRA-v9e0::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v9e0 + +SupportedBandListEUTRA-v1250 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1250 + +SupportedBandListEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1310 + +SupportedBandListEUTRA-v1320 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1320 + +SupportedBandEUTRA ::= SEQUENCE { + bandEUTRA FreqBandIndicator, + halfDuplex BOOLEAN +} + +SupportedBandEUTRA-v9e0 ::= SEQUENCE { + bandEUTRA-v9e0 FreqBandIndicator-v9e0 OPTIONAL +} + +SupportedBandEUTRA-v1250 ::= SEQUENCE { + dl-256QAM-r12 ENUMERATED {supported} OPTIONAL, + ul-64QAM-r12 ENUMERATED {supported} OPTIONAL +} + +SupportedBandEUTRA-v1310 ::= SEQUENCE { + ue-PowerClass-5-r13 ENUMERATED {supported} OPTIONAL +} +SupportedBandEUTRA-v1320 ::= SEQUENCE { + intraFreq-CE-NeedForGaps-r13 ENUMERATED {supported} OPTIONAL, + ue-PowerClass-N-r13 ENUMERATED {class1, class2, class4} OPTIONAL +} + +MeasParameters ::= SEQUENCE { + bandListEUTRA BandListEUTRA +} + +MeasParameters-v1020 ::= SEQUENCE { + bandCombinationListEUTRA-r10 BandCombinationListEUTRA-r10 +} + +MeasParameters-v1130 ::= SEQUENCE { + rsrqMeasWideband-r11 ENUMERATED {supported} OPTIONAL +} + +MeasParameters-v11a0 ::= SEQUENCE { + benefitsFromInterruption-r11 ENUMERATED {true} OPTIONAL +} + +MeasParameters-v1250 ::= SEQUENCE { + timerT312-r12 ENUMERATED {supported} OPTIONAL, + alternativeTimeToTrigger-r12 ENUMERATED {supported} OPTIONAL, + incMonEUTRA-r12 ENUMERATED {supported} OPTIONAL, + incMonUTRA-r12 ENUMERATED {supported} OPTIONAL, + extendedMaxMeasId-r12 ENUMERATED {supported} OPTIONAL, + extendedRSRQ-LowerRange-r12 ENUMERATED {supported} OPTIONAL, + rsrq-OnAllSymbols-r12 ENUMERATED {supported} OPTIONAL, + crs-DiscoverySignalsMeas-r12 ENUMERATED {supported} OPTIONAL, + csi-RS-DiscoverySignalsMeas-r12 ENUMERATED {supported} OPTIONAL +} + +MeasParameters-v1310 ::= SEQUENCE { + rs-SINR-Meas-r13 ENUMERATED {supported} OPTIONAL, + whiteCellList-r13 ENUMERATED {supported} OPTIONAL, + extendedMaxObjectId-r13 ENUMERATED {supported} OPTIONAL, + ul-PDCP-Delay-r13 ENUMERATED {supported} OPTIONAL, + extendedFreqPriorities-r13 ENUMERATED {supported} OPTIONAL, + multiBandInfoReport-r13 ENUMERATED {supported} OPTIONAL, + rssi-AndChannelOccupancyReporting-r13 ENUMERATED {supported} OPTIONAL +} + +MeasParameters-v1430 ::= SEQUENCE { + ceMeasurements-r14 ENUMERATED {supported} OPTIONAL, + ncsg-r14 ENUMERATED {supported} OPTIONAL, + shortMeasurementGap-r14 ENUMERATED {supported} OPTIONAL, + perServingCellMeasurementGap-r14 ENUMERATED {supported} OPTIONAL, + nonUniformGap-r14 ENUMERATED {supported} OPTIONAL +} + +BandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF BandInfoEUTRA + +BandCombinationListEUTRA-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandInfoEUTRA + +BandInfoEUTRA ::= SEQUENCE { + interFreqBandList InterFreqBandList, + interRAT-BandList InterRAT-BandList OPTIONAL +} + +InterFreqBandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterFreqBandInfo + +InterFreqBandInfo ::= SEQUENCE { + interFreqNeedForGaps BOOLEAN +} + +InterRAT-BandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterRAT-BandInfo + +InterRAT-BandInfo ::= SEQUENCE { + interRAT-NeedForGaps BOOLEAN +} + +IRAT-ParametersUTRA-FDD ::= SEQUENCE { + supportedBandListUTRA-FDD SupportedBandListUTRA-FDD +} + +IRAT-ParametersUTRA-v920 ::= SEQUENCE { + e-RedirectionUTRA-r9 ENUMERATED {supported} +} + +IRAT-ParametersUTRA-v9c0 ::= SEQUENCE { + voiceOverPS-HS-UTRA-FDD-r9 ENUMERATED {supported} OPTIONAL, + voiceOverPS-HS-UTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-FDD-ToUTRA-FDD-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-FDD-ToGERAN-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-TDD128-ToUTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-TDD128-ToGERAN-r9 ENUMERATED {supported} OPTIONAL +} + +IRAT-ParametersUTRA-v9h0 ::= SEQUENCE { + mfbi-UTRA-r9 ENUMERATED {supported} +} + +SupportedBandListUTRA-FDD ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-FDD + +SupportedBandUTRA-FDD ::= ENUMERATED { + bandI, bandII, bandIII, bandIV, bandV, bandVI, + bandVII, bandVIII, bandIX, bandX, bandXI, + bandXII, bandXIII, bandXIV, bandXV, bandXVI, ..., + bandXVII-8a0, bandXVIII-8a0, bandXIX-8a0, bandXX-8a0, + bandXXI-8a0, bandXXII-8a0, bandXXIII-8a0, bandXXIV-8a0, + bandXXV-8a0, bandXXVI-8a0, bandXXVII-8a0, bandXXVIII-8a0, + bandXXIX-8a0, bandXXX-8a0, bandXXXI-8a0, bandXXXII-8a0} + +IRAT-ParametersUTRA-TDD128 ::= SEQUENCE { + supportedBandListUTRA-TDD128 SupportedBandListUTRA-TDD128 +} + +SupportedBandListUTRA-TDD128 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD128 + +SupportedBandUTRA-TDD128 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD384 ::= SEQUENCE { + supportedBandListUTRA-TDD384 SupportedBandListUTRA-TDD384 +} + +SupportedBandListUTRA-TDD384 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD384 + +SupportedBandUTRA-TDD384 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD768 ::= SEQUENCE { + supportedBandListUTRA-TDD768 SupportedBandListUTRA-TDD768 +} + +SupportedBandListUTRA-TDD768 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD768 + +SupportedBandUTRA-TDD768 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD-v1020 ::= SEQUENCE { + e-RedirectionUTRA-TDD-r10 ENUMERATED {supported} +} + +IRAT-ParametersGERAN ::= SEQUENCE { + supportedBandListGERAN SupportedBandListGERAN, + interRAT-PS-HO-ToGERAN BOOLEAN +} + +IRAT-ParametersGERAN-v920 ::= SEQUENCE { + dtm-r9 ENUMERATED {supported} OPTIONAL, + e-RedirectionGERAN-r9 ENUMERATED {supported} OPTIONAL +} + +SupportedBandListGERAN ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandGERAN + +SupportedBandGERAN ::= ENUMERATED { + gsm450, gsm480, gsm710, gsm750, gsm810, gsm850, + gsm900P, gsm900E, gsm900R, gsm1800, gsm1900, + spare5, spare4, spare3, spare2, spare1, ...} + +IRAT-ParametersCDMA2000-HRPD ::= SEQUENCE { + supportedBandListHRPD SupportedBandListHRPD, + tx-ConfigHRPD ENUMERATED {single, dual}, + rx-ConfigHRPD ENUMERATED {single, dual} +} + +SupportedBandListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + +IRAT-ParametersCDMA2000-1XRTT ::= SEQUENCE { + supportedBandList1XRTT SupportedBandList1XRTT, + tx-Config1XRTT ENUMERATED {single, dual}, + rx-Config1XRTT ENUMERATED {single, dual} +} + +IRAT-ParametersCDMA2000-1XRTT-v920 ::= SEQUENCE { + e-CSFB-1XRTT-r9 ENUMERATED {supported}, + e-CSFB-ConcPS-Mob1XRTT-r9 ENUMERATED {supported} OPTIONAL +} + +IRAT-ParametersCDMA2000-1XRTT-v1020 ::= SEQUENCE { + e-CSFB-dual-1XRTT-r10 ENUMERATED {supported} +} + +IRAT-ParametersCDMA2000-v1130 ::= SEQUENCE { + cdma2000-NW-Sharing-r11 ENUMERATED {supported} OPTIONAL +} + +SupportedBandList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + +IRAT-ParametersWLAN-r13 ::= SEQUENCE { + supportedBandListWLAN-r13 SEQUENCE (SIZE (1..maxWLAN-Bands-r13)) OF WLAN-BandIndicator-r13 OPTIONAL +} + +CSG-ProximityIndicationParameters-r9 ::= SEQUENCE { + intraFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL, + interFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL, + utran-ProximityIndication-r9 ENUMERATED {supported} OPTIONAL +} + +NeighCellSI-AcquisitionParameters-r9 ::= SEQUENCE { + intraFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL, + interFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL, + utran-SI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL +} + +SON-Parameters-r9 ::= SEQUENCE { + rach-Report-r9 ENUMERATED {supported} OPTIONAL +} + +UE-BasedNetwPerfMeasParameters-r10 ::= SEQUENCE { + loggedMeasurementsIdle-r10 ENUMERATED {supported} OPTIONAL, + standaloneGNSS-Location-r10 ENUMERATED {supported} OPTIONAL +} + +UE-BasedNetwPerfMeasParameters-v1250 ::= SEQUENCE { + loggedMBSFNMeasurements-r12 ENUMERATED {supported} +} + +UE-BasedNetwPerfMeasParameters-v1430 ::= SEQUENCE { + locationReport-r14 ENUMERATED {supported} OPTIONAL +} + +OTDOA-PositioningCapabilities-r10 ::= SEQUENCE { + otdoa-UE-Assisted-r10 ENUMERATED {supported}, + interFreqRSTD-Measurement-r10 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-r11 ::= SEQUENCE { + inDeviceCoexInd-r11 ENUMERATED {supported} OPTIONAL, + powerPrefInd-r11 ENUMERATED {supported} OPTIONAL, + ue-Rx-TxTimeDiffMeasurements-r11 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v11d0 ::= SEQUENCE { + inDeviceCoexInd-UL-CA-r11 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v1360 ::= SEQUENCE { + inDeviceCoexInd-HardwareSharingInd-r13 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v1430 ::= SEQUENCE { + bwPrefInd-r14 ENUMERATED {supported} OPTIONAL, + rlm-ReportSupport-r14 ENUMERATED {supported} OPTIONAL +} + +OtherParameters-v1450 ::= SEQUENCE { + overheatingInd-r14 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v1460 ::= SEQUENCE { + nonCSG-SI-Reporting-r14 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-r11 ::= SEQUENCE { + mbms-SCell-r11 ENUMERATED {supported} OPTIONAL, + mbms-NonServingCell-r11 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-v1250 ::= SEQUENCE { + mbms-AsyncDC-r12 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-v1430 ::= SEQUENCE { + fembmsDedicatedCell-r14 ENUMERATED {supported} OPTIONAL, + fembmsMixedCell-r14 ENUMERATED {supported} OPTIONAL, + subcarrierSpacingMBMS-khz7dot5-r14 ENUMERATED {supported} OPTIONAL, + subcarrierSpacingMBMS-khz1dot25-r14 ENUMERATED {supported} OPTIONAL +} + +FeMBMS-Unicast-Parameters-r14 ::= SEQUENCE { + unicast-fembmsMixedSCell-r14 ENUMERATED {supported} OPTIONAL, + emptyUnicastRegion-r14 ENUMERATED {supported} OPTIONAL +} + +SCPTM-Parameters-r13 ::= SEQUENCE { + scptm-ParallelReception-r13 ENUMERATED {supported} OPTIONAL, + scptm-SCell-r13 ENUMERATED {supported} OPTIONAL, + scptm-NonServingCell-r13 ENUMERATED {supported} OPTIONAL, + scptm-AsyncDC-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-r13 ::= SEQUENCE { + ce-ModeA-r13 ENUMERATED {supported} OPTIONAL, + ce-ModeB-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1320 ::= SEQUENCE { + intraFreqA3-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL, + intraFreqA3-CE-ModeB-r13 ENUMERATED {supported} OPTIONAL, + intraFreqHO-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL, + intraFreqHO-CE-ModeB-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1350 ::= SEQUENCE { + unicastFrequencyHopping-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1370 ::= SEQUENCE { + tm9-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL, + tm9-CE-ModeB-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1380 ::= SEQUENCE { + tm6-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1430 ::= SEQUENCE { + ce-SwitchWithoutHO-r14 ENUMERATED {supported} OPTIONAL +} + +LAA-Parameters-r13 ::= SEQUENCE { + crossCarrierSchedulingLAA-DL-r13 ENUMERATED {supported} OPTIONAL, + csi-RS-DRS-RRM-MeasurementsLAA-r13 ENUMERATED {supported} OPTIONAL, + downlinkLAA-r13 ENUMERATED {supported} OPTIONAL, + endingDwPTS-r13 ENUMERATED {supported} OPTIONAL, + secondSlotStartingPosition-r13 ENUMERATED {supported} OPTIONAL, + tm9-LAA-r13 ENUMERATED {supported} OPTIONAL, + tm10-LAA-r13 ENUMERATED {supported} OPTIONAL +} + +LAA-Parameters-v1430 ::= SEQUENCE { + crossCarrierSchedulingLAA-UL-r14 ENUMERATED {supported} OPTIONAL, + uplinkLAA-r14 ENUMERATED {supported} OPTIONAL, + twoStepSchedulingTimingInfo-r14 ENUMERATED {nPlus1, nPlus2, nPlus3} OPTIONAL, + uss-BlindDecodingAdjustment-r14 ENUMERATED {supported} OPTIONAL, + uss-BlindDecodingReduction-r14 ENUMERATED {supported} OPTIONAL, + outOfSequenceGrantHandling-r14 ENUMERATED {supported} OPTIONAL +} + +WLAN-IW-Parameters-r12 ::= SEQUENCE { + wlan-IW-RAN-Rules-r12 ENUMERATED {supported} OPTIONAL, + wlan-IW-ANDSF-Policies-r12 ENUMERATED {supported} OPTIONAL +} + +LWA-Parameters-r13 ::= SEQUENCE { + lwa-r13 ENUMERATED {supported} OPTIONAL, + lwa-SplitBearer-r13 ENUMERATED {supported} OPTIONAL, + wlan-MAC-Address-r13 OCTET STRING (SIZE (6)) OPTIONAL, + lwa-BufferSize-r13 ENUMERATED {supported} OPTIONAL +} + +LWA-Parameters-v1430 ::= SEQUENCE { + lwa-HO-WithoutWT-Change-r14 ENUMERATED {supported} OPTIONAL, + lwa-UL-r14 ENUMERATED {supported} OPTIONAL, + wlan-PeriodicMeas-r14 ENUMERATED {supported} OPTIONAL, + wlan-ReportAnyWLAN-r14 ENUMERATED {supported} OPTIONAL, + wlan-SupportedDataRate-r14 INTEGER (1..2048) OPTIONAL +} + +LWA-Parameters-v1440 ::= SEQUENCE { + lwa-RLC-UM-r14 ENUMERATED {supported} OPTIONAL +} + +WLAN-IW-Parameters-v1310 ::= SEQUENCE { + rclwi-r13 ENUMERATED {supported} OPTIONAL +} + +LWIP-Parameters-r13 ::= SEQUENCE { + lwip-r13 ENUMERATED {supported} OPTIONAL +} + +LWIP-Parameters-v1430 ::= SEQUENCE { + lwip-Aggregation-DL-r14 ENUMERATED {supported} OPTIONAL, + lwip-Aggregation-UL-r14 ENUMERATED {supported} OPTIONAL +} + +NAICS-Capability-List-r12 ::= SEQUENCE (SIZE (1..maxNAICS-Entries-r12)) OF NAICS-Capability-Entry-r12 + + +NAICS-Capability-Entry-r12 ::= SEQUENCE { + numberOfNAICS-CapableCC-r12 INTEGER(1..5), + numberOfAggregatedPRB-r12 ENUMERATED { + n50, n75, n100, n125, n150, n175, + n200, n225, n250, n275, n300, n350, + n400, n450, n500, spare}, + ... +} + +SL-Parameters-r12 ::= SEQUENCE { + commSimultaneousTx-r12 ENUMERATED {supported} OPTIONAL, + commSupportedBands-r12 FreqBandIndicatorListEUTRA-r12 OPTIONAL, + discSupportedBands-r12 SupportedBandInfoList-r12 OPTIONAL, + discScheduledResourceAlloc-r12 ENUMERATED {supported} OPTIONAL, + disc-UE-SelectedResourceAlloc-r12 ENUMERATED {supported} OPTIONAL, + disc-SLSS-r12 ENUMERATED {supported} OPTIONAL, + discSupportedProc-r12 ENUMERATED {n50, n400} OPTIONAL +} + +SL-Parameters-v1310 ::= SEQUENCE { + discSysInfoReporting-r13 ENUMERATED {supported} OPTIONAL, + commMultipleTx-r13 ENUMERATED {supported} OPTIONAL, + discInterFreqTx-r13 ENUMERATED {supported} OPTIONAL, + discPeriodicSLSS-r13 ENUMERATED {supported} OPTIONAL +} + +SL-Parameters-v1430 ::= SEQUENCE { + zoneBasedPoolSelection-r14 ENUMERATED {supported} OPTIONAL, + ue-AutonomousWithFullSensing-r14 ENUMERATED {supported} OPTIONAL, + ue-AutonomousWithPartialSensing-r14 ENUMERATED {supported} OPTIONAL, + sl-CongestionControl-r14 ENUMERATED {supported} OPTIONAL, + v2x-TxWithShortResvInterval-r14 ENUMERATED {supported} OPTIONAL, + v2x-numberTxRxTiming-r14 INTEGER(1..16) OPTIONAL, + v2x-nonAdjacentPSCCH-PSSCH-r14 ENUMERATED {supported} OPTIONAL, + slss-TxRx-r14 ENUMERATED {supported} OPTIONAL, + v2x-SupportedBandCombinationList-r14 V2X-SupportedBandCombination-r14 OPTIONAL +} + +V2X-SupportedBandCombination-r14 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF V2X-BandCombinationParameters-r14 + +V2X-BandCombinationParameters-r14 ::= SEQUENCE (SIZE (1.. maxSimultaneousBands-r10)) OF V2X-BandParameters-r14 + +SupportedBandInfoList-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandInfo-r12 + +SupportedBandInfo-r12 ::= SEQUENCE { + support-r12 ENUMERATED {supported} OPTIONAL +} + +FreqBandIndicatorListEUTRA-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicator-r11 + +MMTEL-Parameters-r14 ::= SEQUENCE { + delayBudgetReporting-r14 ENUMERATED {supported} OPTIONAL, + pusch-Enhancements-r14 ENUMERATED {supported} OPTIONAL, + recommendedBitRate-r14 ENUMERATED {supported} OPTIONAL, + recommendedBitRateQuery-r14 ENUMERATED {supported} OPTIONAL +} + +RetuningTimeInfo-r14 ::= SEQUENCE { + retuningInfo SEQUENCE { + rf-RetuningTimeDL-r14 ENUMERATED {n0, n0dot5, n1, n1dot5, n2, n2dot5, n3, + n3dot5, n4, n4dot5, n5, n5dot5, n6, n6dot5, + n7, spare1} OPTIONAL, + rf-RetuningTimeUL-r14 ENUMERATED {n0, n0dot5, n1, n1dot5, n2, n2dot5, n3, + n3dot5, n4, n4dot5, n5, n5dot5, n6, n6dot5, + n7, spare1} OPTIONAL + } +} + +HighSpeedEnhParameters-r14 ::= SEQUENCE { + measurementEnhancements-r14 ENUMERATED {supported} OPTIONAL, + demodulationEnhancements-r14 ENUMERATED {supported} OPTIONAL, + prach-Enhancements-r14 ENUMERATED {supported} OPTIONAL +} + + +UE-RadioPagingInfo-r12 ::= SEQUENCE { + ue-Category-v1250 INTEGER (0) OPTIONAL, + ..., + [[ ue-CategoryDL-v1310 ENUMERATED {m1} OPTIONAL, + ce-ModeA-r13 ENUMERATED {true} OPTIONAL, + ce-ModeB-r13 ENUMERATED {true} OPTIONAL + ]] + +} + + +UE-TimersAndConstants ::= SEQUENCE { + t300 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t301 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t310 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n310 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ..., + [[ t300-v1310 ENUMERATED { + ms2500, ms3000, ms3500, ms4000, ms5000, ms6000, ms8000, + ms10000} OPTIONAL, -- Need OR + t301-v1310 ENUMERATED { + ms2500, ms3000, ms3500, ms4000, ms5000, ms6000, ms8000, + ms10000} OPTIONAL -- Need OR + ]], + [[ t310-v1330 ENUMERATED {ms4000, ms6000} + OPTIONAL -- Need OR + ]] +} + + +VisitedCellInfoList-r12 ::= SEQUENCE (SIZE (1..maxCellHistory-r12)) OF VisitedCellInfo-r12 + +VisitedCellInfo-r12 ::= SEQUENCE { + visitedCellId-r12 CHOICE { + cellGlobalId-r12 CellGlobalIdEUTRA, + pci-arfcn-r12 SEQUENCE { + physCellId-r12 PhysCellId, + carrierFreq-r12 ARFCN-ValueEUTRA-r9 + } + } OPTIONAL, + timeSpent-r12 INTEGER (0..4095), + ... +} + + +WLAN-OffloadConfig-r12 ::= SEQUENCE { + thresholdRSRP-r12 SEQUENCE { + thresholdRSRP-Low-r12 RSRP-Range, + thresholdRSRP-High-r12 RSRP-Range + } OPTIONAL, -- Need OR + thresholdRSRQ-r12 SEQUENCE { + thresholdRSRQ-Low-r12 RSRQ-Range, + thresholdRSRQ-High-r12 RSRQ-Range + } OPTIONAL, -- Need OR + thresholdRSRQ-OnAllSymbolsWithWB-r12 SEQUENCE { + thresholdRSRQ-OnAllSymbolsWithWB-Low-r12 RSRQ-Range, + thresholdRSRQ-OnAllSymbolsWithWB-High-r12 RSRQ-Range + } OPTIONAL, -- Need OP + thresholdRSRQ-OnAllSymbols-r12 SEQUENCE { + thresholdRSRQ-OnAllSymbolsLow-r12 RSRQ-Range, + thresholdRSRQ-OnAllSymbolsHigh-r12 RSRQ-Range + } OPTIONAL, -- Need OP + thresholdRSRQ-WB-r12 SEQUENCE { + thresholdRSRQ-WB-Low-r12 RSRQ-Range, + thresholdRSRQ-WB-High-r12 RSRQ-Range + } OPTIONAL, -- Need OP + + thresholdChannelUtilization-r12 SEQUENCE { + thresholdChannelUtilizationLow-r12 INTEGER (0..255), + thresholdChannelUtilizationHigh-r12 INTEGER (0..255) + } OPTIONAL, -- Need OR + thresholdBackhaul-Bandwidth-r12 SEQUENCE { + thresholdBackhaulDL-BandwidthLow-r12 WLAN-backhaulRate-r12, + thresholdBackhaulDL-BandwidthHigh-r12 WLAN-backhaulRate-r12, + thresholdBackhaulUL-BandwidthLow-r12 WLAN-backhaulRate-r12, + thresholdBackhaulUL-BandwidthHigh-r12 WLAN-backhaulRate-r12 + } OPTIONAL, -- Need OR + thresholdWLAN-RSSI-r12 SEQUENCE { + thresholdWLAN-RSSI-Low-r12 INTEGER (0..255), + thresholdWLAN-RSSI-High-r12 INTEGER (0..255) + } OPTIONAL, -- Need OR + offloadPreferenceIndicator-r12 BIT STRING (SIZE (16)) OPTIONAL, -- Need OR + t-SteeringWLAN-r12 T-Reselection OPTIONAL, -- Need OR + ... +} + +WLAN-backhaulRate-r12 ::= ENUMERATED + {r0, r4, r8, r16, r32, r64, r128, r256, r512, + r1024, r2048, r4096, r8192, r16384, r32768, r65536, r131072, + r262144, r524288, r1048576, r2097152, r4194304, r8388608, + r16777216, r33554432, r67108864, r134217728, r268435456, + r536870912, r1073741824, r2147483648, r4294967296} + + +MBMS-NotificationConfig-r9 ::= SEQUENCE { + notificationRepetitionCoeff-r9 ENUMERATED {n2, n4}, + notificationOffset-r9 INTEGER (0..10), + notificationSF-Index-r9 INTEGER (1..6) +} + +MBMS-NotificationConfig-v1430 ::= SEQUENCE { + notificationSF-Index-v1430 INTEGER (7..10) +} + + +MBMS-ServiceList-r13 ::= SEQUENCE (SIZE (0..maxMBMS-ServiceListPerUE-r13)) OF MBMS-ServiceInfo-r13 + +MBMS-ServiceInfo-r13 ::= SEQUENCE { + tmgi-r13 TMGI-r9 +} + + +MBSFN-AreaId-r12 ::= INTEGER (0..255) + + +MBSFN-AreaInfoList-r9 ::= SEQUENCE (SIZE(1..maxMBSFN-Area)) OF MBSFN-AreaInfo-r9 + +MBSFN-AreaInfo-r9 ::= SEQUENCE { + mbsfn-AreaId-r9 MBSFN-AreaId-r12, + non-MBSFNregionLength ENUMERATED {s1, s2}, + notificationIndicator-r9 INTEGER (0..7), + mcch-Config-r9 SEQUENCE { + mcch-RepetitionPeriod-r9 ENUMERATED {rf32, rf64, rf128, rf256}, + mcch-Offset-r9 INTEGER (0..10), + mcch-ModificationPeriod-r9 ENUMERATED {rf512, rf1024}, + sf-AllocInfo-r9 BIT STRING (SIZE(6)), + signallingMCS-r9 ENUMERATED {n2, n7, n13, n19} + }, + ..., + [[ mcch-Config-r14 SEQUENCE { + mcch-RepetitionPeriod-v1430 ENUMERATED {rf1, rf2, rf4, rf8, + rf16 } OPTIONAL, -- Need OR + mcch-ModificationPeriod-v1430 ENUMERATED {rf1, rf2, rf4, rf8, rf16, rf32, rf64, rf128, + rf256, spare7} OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + subcarrierSpacingMBMS-r14 ENUMERATED {khz-7dot5, khz-1dot25} OPTIONAL -- Need OR + ]] +} + + +MBSFN-SubframeConfig ::= SEQUENCE { + radioframeAllocationPeriod ENUMERATED {n1, n2, n4, n8, n16, n32}, + radioframeAllocationOffset INTEGER (0..7), + subframeAllocation CHOICE { + oneFrame BIT STRING (SIZE(6)), + fourFrames BIT STRING (SIZE(24)) + } +} + +MBSFN-SubframeConfig-v1430 ::= SEQUENCE { + subframeAllocation-v1430 CHOICE { + oneFrame-v1430 BIT STRING (SIZE(2)), + fourFrames-v1430 BIT STRING (SIZE(8)) + } +} + + +PMCH-InfoList-r9 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-Info-r9 + +PMCH-InfoListExt-r12 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-InfoExt-r12 + +PMCH-Info-r9 ::= SEQUENCE { + pmch-Config-r9 PMCH-Config-r9, + mbms-SessionInfoList-r9 MBMS-SessionInfoList-r9, + ... +} + +PMCH-InfoExt-r12 ::= SEQUENCE { + pmch-Config-r12 PMCH-Config-r12, + mbms-SessionInfoList-r12 MBMS-SessionInfoList-r9, + ... +} + +MBMS-SessionInfoList-r9 ::= SEQUENCE (SIZE (0..maxSessionPerPMCH)) OF MBMS-SessionInfo-r9 + +MBMS-SessionInfo-r9 ::= SEQUENCE { + tmgi-r9 TMGI-r9, + sessionId-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Need OR + logicalChannelIdentity-r9 INTEGER (0..maxSessionPerPMCH-1), + ... +} + +PMCH-Config-r9 ::= SEQUENCE { + sf-AllocEnd-r9 INTEGER (0..1535), + dataMCS-r9 INTEGER (0..28), + mch-SchedulingPeriod-r9 ENUMERATED { + rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024}, + ... +} + +PMCH-Config-r12 ::= SEQUENCE { + sf-AllocEnd-r12 INTEGER (0..1535), + dataMCS-r12 CHOICE { + normal-r12 INTEGER (0..28), + higerOrder-r12 INTEGER (0..27) + }, + mch-SchedulingPeriod-r12 ENUMERATED { + rf4, rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024}, + ..., + [[ mch-SchedulingPeriod-v1430 ENUMERATED {rf1, rf2} OPTIONAL -- Need OR + ]] +} + +TMGI-r9 ::= SEQUENCE { + plmn-Id-r9 CHOICE { + plmn-Index-r9 INTEGER (1..maxPLMN-r11), + explicitValue-r9 PLMN-Identity + }, + serviceId-r9 OCTET STRING (SIZE (3)) +} + + +SC-MTCH-InfoList-r13 ::= SEQUENCE (SIZE (0..maxSC-MTCH-r13)) OF SC-MTCH-Info-r13 + +SC-MTCH-Info-r13 ::= SEQUENCE { + mbmsSessionInfo-r13 MBMSSessionInfo-r13, + g-RNTI-r13 BIT STRING(SIZE(16)), + sc-mtch-schedulingInfo-r13 SC-MTCH-SchedulingInfo-r13 OPTIONAL, -- Need OP + sc-mtch-neighbourCell-r13 BIT STRING (SIZE(maxNeighCell-SCPTM-r13)) OPTIONAL, -- Need OP + ..., + [[ p-a-r13 ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} OPTIONAL -- Need ON + ]] +} + +MBMSSessionInfo-r13 ::= SEQUENCE { + tmgi-r13 TMGI-r9, + sessionId-r13 OCTET STRING (SIZE (1)) OPTIONAL -- Need OR +} + +SC-MTCH-SchedulingInfo-r13::= SEQUENCE { + onDurationTimerSCPTM-r13 ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200}, + drx-InactivityTimerSCPTM-r13 ENUMERATED { + psf0, psf1, psf2, psf4, psf8, + psf10, psf20, psf40, + psf80, psf160, ps320, + psf640, psf960, + psf1280, psf1920, psf2560}, + schedulingPeriodStartOffsetSCPTM-r13 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2048), + sf4096 INTEGER(0..4096), + sf8192 INTEGER(0..8192) + }, + ... +} + + +SC-MTCH-InfoList-BR-r14 ::= SEQUENCE (SIZE (0..maxSC-MTCH-BR-r14)) OF SC-MTCH-Info-BR-r14 + +SC-MTCH-Info-BR-r14 ::= SEQUENCE { + sc-mtch-CarrierFreq-r14 ARFCN-ValueEUTRA-r9, + mbmsSessionInfo-r14 MBMSSessionInfo-r13, + g-RNTI-r14 BIT STRING(SIZE(16)), + sc-mtch-schedulingInfo-r14 SC-MTCH-SchedulingInfo-BR-r14 OPTIONAL, -- Need OP + sc-mtch-neighbourCell-r14 BIT STRING (SIZE(maxNeighCell-SCPTM-r13)) OPTIONAL, -- Need OP + mpdcch-Narrowband-SC-MTCH-r14 INTEGER (1.. maxAvailNarrowBands-r13), + mpdcch-NumRepetition-SC-MTCH-r14 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + mpdcch-StartSF-SC-MTCH-r14 CHOICE { + fdd-r14 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, + v5, v8, v10}, + tdd-r14 ENUMERATED {v1, v2, v4, v5, v8, v10, + v20} + }, + mpdcch-PDSCH-HoppingConfig-SC-MTCH-r14 ENUMERATED {on, off}, + mpdcch-PDSCH-CEmodeConfig-SC-MTCH-r14 ENUMERATED {ce-ModeA, ce-ModeB}, + mpdcch-PDSCH-MaxBandwidth-SC-MTCH-r14 ENUMERATED {bw1dot4, bw5}, + mpdcch-Offset-SC-MTCH-r14 ENUMERATED {zero, oneEighth, oneQuarter, + threeEighth, oneHalf, fiveEighth, + threeQuarter, sevenEighth}, + + p-a-r14 ENUMERATED { dB-6, dB-4dot77, dB-3, + dB-1dot77, dB0, dB1, dB2, + dB3} OPTIONAL,-- Need OR + ... +} + +SC-MTCH-SchedulingInfo-BR-r14::= SEQUENCE { + onDurationTimerSCPTM-r14 ENUMERATED { + psf300, psf400, psf500, psf600, + psf800, psf1000, psf1200, psf1600}, + drx-InactivityTimerSCPTM-r14 ENUMERATED { + psf0, psf1, psf2, psf4, psf8, psf16, + psf32, psf64, psf128, psf256, ps512, + psf1024, psf2048, psf4096, psf8192, psf16384}, + schedulingPeriodStartOffsetSCPTM-r14 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2047), + sf4096 INTEGER(0..4095), + sf8192 INTEGER(0..8191) + }, + ... +} + + +SCPTM-NeighbourCellList-r13 ::= SEQUENCE (SIZE (1..maxNeighCell-SCPTM-r13)) OF PCI-ARFCN-r13 + +PCI-ARFCN-r13 ::= SEQUENCE { + physCellId-r13 PhysCellId, + carrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL +} + + +SL-AnchorCarrierFreqList-V2X-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF ARFCN-ValueEUTRA-r9 + + +SL-CBR-CommonTxConfigList-r14 ::= SEQUENCE { + cbr-RangeCommonConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-CBRConfig-r14)) OF SL-CBR-Levels-Config-r14, + sl-CBR-PSSCH-TxConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-TxConfig-r14)) OF SL-CBR-PSSCH-TxConfig-r14 +} + +SL-CBR-Levels-Config-r14 ::= SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF SL-CBR-r14 + + +SL-CBR-PSSCH-TxConfig-r14 ::= SEQUENCE { + cr-Limit-r14 INTEGER(0..10000), + tx-Parameters-r14 SL-PSSCH-TxParameters-r14 +} + +SL-CBR-r14 ::= INTEGER(0..100) + + +SL-CBR-PPPP-TxConfigList-r14 ::= SEQUENCE (SIZE (1..8)) OF SL-PPPP-TxConfigIndex-r14 + +SL-PPPP-TxConfigIndex-r14 ::= SEQUENCE { + priorityThreshold-r14 SL-Priority-r13, + defaultTxConfigIndex-r14 INTEGER(0..maxCBR-Level-1-r14), + cbr-ConfigIndex-r14 INTEGER(0..maxSL-V2X-CBRConfig-1-r14), + tx-ConfigIndexList-r14 SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF Tx-ConfigIndex-r14 +} + +Tx-ConfigIndex-r14 ::= INTEGER(0..maxSL-V2X-TxConfig-1-r14) + + +SL-CommConfig-r12 ::= SEQUENCE { + commTxResources-r12 CHOICE { + release NULL, + setup CHOICE { + scheduled-r12 SEQUENCE { + sl-RNTI-r12 C-RNTI, + mac-MainConfig-r12 MAC-MainConfigSL-r12, + sc-CommTxConfig-r12 SL-CommResourcePool-r12, + mcs-r12 INTEGER (0..28) OPTIONAL -- Need OP + }, + ue-Selected-r12 SEQUENCE { + -- Pool for normal usage + commTxPoolNormalDedicated-r12 SEQUENCE { + poolToReleaseList-r12 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r12 SL-CommTxPoolToAddModList-r12 OPTIONAL -- Need ON + } + } + } + } OPTIONAL, -- Need ON + ..., + [[ commTxResources-v1310 CHOICE { + release NULL, + setup CHOICE { + scheduled-v1310 SEQUENCE { + logicalChGroupInfoList-r13 LogicalChGroupInfoList-r13, + multipleTx-r13 BOOLEAN + }, + ue-Selected-v1310 SEQUENCE { + commTxPoolNormalDedicatedExt-r13 SEQUENCE { + poolToReleaseListExt-r13 SL-TxPoolToReleaseListExt-r13 OPTIONAL, -- Need ON + poolToAddModListExt-r13 SL-CommTxPoolToAddModListExt-r13 OPTIONAL -- Need ON + } + } + } + } OPTIONAL, -- Need ON + commTxAllowRelayDedicated-r13 BOOLEAN OPTIONAL -- Need ON + ]] +} + +LogicalChGroupInfoList-r13 ::= SEQUENCE (SIZE (1..maxLCG-r13)) OF SL-PriorityList-r13 + +SL-CommTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-CommTxPoolToAddMod-r12 + +SL-CommTxPoolToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF SL-CommTxPoolToAddModExt-r13 + +SL-CommTxPoolToAddMod-r12 ::= SEQUENCE { + poolIdentity-r12 SL-TxPoolIdentity-r12, + pool-r12 SL-CommResourcePool-r12 +} + +SL-CommTxPoolToAddModExt-r13 ::= SEQUENCE { + poolIdentity-v1310 SL-TxPoolIdentity-v1310, + pool-r13 SL-CommResourcePool-r12 +} + +MAC-MainConfigSL-r12 ::= SEQUENCE { + periodic-BSR-TimerSL PeriodicBSR-Timer-r12 OPTIONAL, -- Need ON + retx-BSR-TimerSL RetxBSR-Timer-r12 +} + + +SL-CommTxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-CommResourcePool-r12 + +SL-CommTxPoolListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF SL-CommResourcePool-r12 + +SL-CommTxPoolListV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-TxPool-r14)) OF SL-CommResourcePoolV2X-r14 + +SL-CommRxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-RxPool-r12)) OF SL-CommResourcePool-r12 + +SL-CommRxPoolListV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-RxPool-r14)) OF SL-CommResourcePoolV2X-r14 + +SL-CommResourcePool-r12 ::= SEQUENCE { + sc-CP-Len-r12 SL-CP-Len-r12, + sc-Period-r12 SL-PeriodComm-r12, + sc-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + data-CP-Len-r12 SL-CP-Len-r12, + dataHoppingConfig-r12 SL-HoppingConfigComm-r12, + ue-SelectedResourceConfig-r12 SEQUENCE { + data-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + trpt-Subset-r12 SL-TRPT-Subset-r12 OPTIONAL -- Need OP + } OPTIONAL, -- Need OR + rxParametersNCell-r12 SEQUENCE { + tdd-Config-r12 TDD-Config OPTIONAL, -- Need OP + syncConfigIndex-r12 INTEGER (0..15) + } OPTIONAL, -- Need OR + txParameters-r12 SEQUENCE { + sc-TxParameters-r12 SL-TxParameters-r12, + dataTxParameters-r12 SL-TxParameters-r12 + } OPTIONAL, -- Cond Tx + ..., + [[ priorityList-r13 SL-PriorityList-r13 OPTIONAL -- Cond Tx + ]] + +} + +SL-CommResourcePoolV2X-r14 ::= SEQUENCE { + sl-OffsetIndicator-r14 SL-OffsetIndicator-r12 OPTIONAL, -- Need OR + sl-Subframe-r14 SubframeBitmapSL-r14, + adjacencyPSCCH-PSSCH-r14 BOOLEAN, + sizeSubchannel-r14 ENUMERATED { + n4, n5, n6, n8, n9, n10, n12, n15, n16, n18, n20, n25, n30, + n48, n50, n72, n75, n96, n100, spare13, spare12, spare11, + spare10, spare9, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1}, + numSubchannel-r14 ENUMERATED {n1, n3, n5, n8, n10, n15, n20, spare1}, + startRB-Subchannel-r14 INTEGER (0..99), + startRB-PSCCH-Pool-r14 INTEGER (0..99) OPTIONAL, -- Need OR + rxParametersNCell-r14 SEQUENCE { + tdd-Config-r14 TDD-Config OPTIONAL, -- Need OP + syncConfigIndex-r14 INTEGER (0..15) + } OPTIONAL, -- Need OR + dataTxParameters-r14 SL-TxParameters-r12 OPTIONAL, -- Cond Tx + zoneID-r14 INTEGER (0..7) OPTIONAL, -- Need OR + threshS-RSSI-CBR-r14 INTEGER (0..45) OPTIONAL, -- Need OR + poolReportId-r14 SL-V2X-TxPoolReportIdentity-r14 OPTIONAL, -- Need OR + cbr-pssch-TxConfigList-r14 SL-CBR-PPPP-TxConfigList-r14 OPTIONAL, -- Need OR + resourceSelectionConfigP2X-r14 SL-P2X-ResourceSelectionConfig-r14 OPTIONAL, -- Cond P2X + syncAllowed-r14 SL-SyncAllowed-r14 OPTIONAL, -- Need OR + restrictResourceReservationPeriod-r14 SL-RestrictResourceReservationPeriodList-r14 OPTIONAL, -- Need OR + ... +} + +SL-TRPT-Subset-r12 ::= BIT STRING (SIZE (3..5)) + +SL-V2X-TxPoolReportIdentity-r14::= INTEGER (1..maxSL-PoolToMeasure-r14) + + +SL-CommTxPoolSensingConfig-r14 ::= SEQUENCE { + pssch-TxConfigList-r14 SL-PSSCH-TxConfigList-r14, + thresPSSCH-RSRP-List-r14 SL-ThresPSSCH-RSRP-List-r14, + restrictResourceReservationPeriod-r14 SL-RestrictResourceReservationPeriodList-r14 OPTIONAL, -- Need OR + probResourceKeep-r14 ENUMERATED {v0, v0dot2, v0dot4, v0dot6, v0dot8, + spare3,spare2, spare1}, + p2x-SensingConfig-r14 SEQUENCE { + minNumCandidateSF-r14 INTEGER (1..13), + gapCandidateSensing-r14 BIT STRING (SIZE (10)) + } OPTIONAL, -- Need OR + sl-ReselectAfter-r14 ENUMERATED {n1, n2, n3, n4, n5, n6, n7, n8, n9, + spare7, spare6, spare5, spare4, spare3, spare2, + spare1} OPTIONAL -- Need OR +} + + +SL-CP-Len-r12 ::= ENUMERATED {normal, extended} + + +SL-DiscConfig-r12 ::= SEQUENCE { + discTxResources-r12 CHOICE { + release NULL, + setup CHOICE { + scheduled-r12 SEQUENCE { + discTxConfig-r12 SL-DiscResourcePool-r12 OPTIONAL, -- Need ON + discTF-IndexList-r12 SL-TF-IndexPairList-r12 OPTIONAL, -- Need ON + discHoppingConfig-r12 SL-HoppingConfigDisc-r12 + OPTIONAL -- Need ON + }, + ue-Selected-r12 SEQUENCE { + discTxPoolDedicated-r12 SEQUENCE { + poolToReleaseList-r12 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r12 SL-DiscTxPoolToAddModList-r12 OPTIONAL -- Need ON + } OPTIONAL -- Need ON + } + } + } OPTIONAL, -- Need ON + ..., + [[ discTF-IndexList-v1260 CHOICE { + release NULL, + setup SEQUENCE { + discTF-IndexList-r12b SL-TF-IndexPairList-r12b + } + } OPTIONAL -- Need ON + ]], + [[ discTxResourcesPS-r13 CHOICE { + release NULL, + setup CHOICE { + scheduled-r13 SL-DiscTxConfigScheduled-r13, + ue-Selected-r13 SEQUENCE { + discTxPoolPS-Dedicated-r13 SL-DiscTxPoolDedicated-r13 + } + } + } OPTIONAL, -- Need ON + discTxInterFreqInfo-r13 CHOICE { + release NULL, + setup SEQUENCE { + discTxCarrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need OR + discTxRefCarrierDedicated-r13 SL-DiscTxRefCarrierDedicated-r13 OPTIONAL, -- Need OR + discTxInfoInterFreqListAdd-r13 SL-DiscTxInfoInterFreqListAdd-r13 OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + gapRequestsAllowedDedicated-r13 BOOLEAN OPTIONAL, -- Need ON + discRxGapConfig-r13 CHOICE { + release NULL, + setup SL-GapConfig-r13 + } OPTIONAL, -- Need ON + discTxGapConfig-r13 CHOICE { + release NULL, + setup SL-GapConfig-r13 + } OPTIONAL, -- Need ON + discSysInfoToReportConfig-r13 CHOICE { + release NULL, + setup SL-DiscSysInfoToReportFreqList-r13 + } OPTIONAL -- Need ON + ]] +} + +SL-DiscSysInfoToReportFreqList-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF ARFCN-ValueEUTRA-r9 + +SL-DiscTxInfoInterFreqListAdd-r13 ::= SEQUENCE { + discTxFreqToAddModList-r13 SEQUENCE (SIZE (1..maxFreq)) OF SL-DiscTxResourceInfoPerFreq-r13 OPTIONAL, -- Need ON + discTxFreqToReleaseList-r13 SEQUENCE (SIZE (1..maxFreq)) OF ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need ON + ... +} + +SL-DiscTxResourceInfoPerFreq-r13 ::= SEQUENCE { + discTxCarrierFreq-r13 ARFCN-ValueEUTRA-r9, + discTxResources-r13 SL-DiscTxResource-r13 OPTIONAL, -- Need OR + discTxResourcesPS-r13 SL-DiscTxResource-r13 OPTIONAL, -- Need OR + discTxRefCarrierDedicated-r13 SL-DiscTxRefCarrierDedicated-r13 OPTIONAL, -- Need OR + discCellSelectionInfo-r13 CellSelectionInfoNFreq-r13 OPTIONAL, -- Need OR + ... +} + +SL-DiscTxResource-r13 ::= CHOICE { + release NULL, + setup CHOICE { + scheduled-r13 SL-DiscTxConfigScheduled-r13, + ue-Selected-r13 SL-DiscTxPoolDedicated-r13 + } +} + +SL-DiscTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-DiscTxPoolToAddMod-r12 + +SL-DiscTxPoolToAddMod-r12 ::= SEQUENCE { + poolIdentity-r12 SL-TxPoolIdentity-r12, + pool-r12 SL-DiscResourcePool-r12 +} + +SL-DiscTxConfigScheduled-r13 ::= SEQUENCE { + discTxConfig-r13 SL-DiscResourcePool-r12 OPTIONAL, -- Need ON + discTF-IndexList-r13 SL-TF-IndexPairList-r12b OPTIONAL, -- Need ON + discHoppingConfig-r13 SL-HoppingConfigDisc-r12 OPTIONAL,-- Need ON + ... +} + +SL-DiscTxPoolDedicated-r13 ::= SEQUENCE { + poolToReleaseList-r13 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r13 SL-DiscTxPoolToAddModList-r12 OPTIONAL -- Need ON +} + +SL-TF-IndexPairList-r12 ::= SEQUENCE (SIZE (1..maxSL-TF-IndexPair-r12)) OF SL-TF-IndexPair-r12 + +SL-TF-IndexPair-r12 ::= SEQUENCE { + discSF-Index-r12 INTEGER (1.. 200) OPTIONAL, -- Need ON + discPRB-Index-r12 INTEGER (1.. 50) OPTIONAL -- Need ON +} + +SL-TF-IndexPairList-r12b ::= SEQUENCE (SIZE (1..maxSL-TF-IndexPair-r12)) OF SL-TF-IndexPair-r12b + +SL-TF-IndexPair-r12b ::= SEQUENCE { + discSF-Index-r12b INTEGER (0..209) OPTIONAL, -- Need ON + discPRB-Index-r12b INTEGER (0..49) OPTIONAL -- Need ON +} + +SL-DiscTxRefCarrierDedicated-r13 ::= CHOICE { + pCell NULL, + sCell SCellIndex-r10 +} + + +SL-DiscTxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-DiscResourcePool-r12 + +SL-DiscRxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-RxPool-r12)) OF SL-DiscResourcePool-r12 + +SL-DiscResourcePool-r12 ::= SEQUENCE { + cp-Len-r12 SL-CP-Len-r12, + discPeriod-r12 ENUMERATED {rf32, rf64, rf128, + rf256, rf512, rf1024, rf16-v1310, spare}, + numRetx-r12 INTEGER (0..3), + numRepetition-r12 INTEGER (1..50), + tf-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + txParameters-r12 SEQUENCE { + txParametersGeneral-r12 SL-TxParameters-r12, + ue-SelectedResourceConfig-r12 SEQUENCE { + poolSelection-r12 CHOICE { + rsrpBased-r12 SL-PoolSelectionConfig-r12, + random-r12 NULL + }, + txProbability-r12 ENUMERATED {p25, p50, p75, p100} + } OPTIONAL -- Need OR + } OPTIONAL, -- Cond Tx + rxParameters-r12 SEQUENCE { + tdd-Config-r12 TDD-Config OPTIONAL, -- Need OR + syncConfigIndex-r12 INTEGER (0..15) + } OPTIONAL, -- Need OR + ..., + [[ discPeriod-v1310 CHOICE { + release NULL, + setup ENUMERATED {rf4, rf6, rf7, rf8, + rf12, rf14, rf24, rf28} + } OPTIONAL, -- Need ON + rxParamsAddNeighFreq-r13 CHOICE { + release NULL, + setup SEQUENCE { + physCellId-r13 PhysCellIdList-r13 + } + } OPTIONAL, -- Need ON + txParamsAddNeighFreq-r13 CHOICE { + release NULL, + setup SEQUENCE { + physCellId-r13 PhysCellIdList-r13, + p-Max P-Max OPTIONAL, -- Need OP + tdd-Config-r13 TDD-Config OPTIONAL, -- Cond TDD-OR + tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD-OR + freqInfo SEQUENCE { + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission + }, + referenceSignalPower INTEGER (-60..50), + syncConfigIndex-r13 INTEGER (0..15) OPTIONAL -- Need OR + } + } OPTIONAL -- Need ON + ]], + [[ txParamsAddNeighFreq-v1370 CHOICE { + release NULL, + setup SEQUENCE { + freqInfo-v1370 SEQUENCE { + additionalSpectrumEmission-v1370 AdditionalSpectrumEmission-v10l0 + } + } + } OPTIONAL -- Need ON + ]] +} + +PhysCellIdList-r13 ::= SEQUENCE (SIZE (1.. maxSL-DiscCells-r13)) OF PhysCellId + +SL-PoolSelectionConfig-r12 ::= SEQUENCE { + threshLow-r12 RSRP-RangeSL2-r12, + threshHigh-r12 RSRP-RangeSL2-r12 +} + + +SL-DiscSysInfoReport-r13 ::= SEQUENCE { + plmn-IdentityList-r13 PLMN-IdentityList OPTIONAL, + cellIdentity-13 CellIdentity OPTIONAL, + carrierFreqInfo-13 ARFCN-ValueEUTRA-r9 OPTIONAL, + discRxResources-r13 SL-DiscRxPoolList-r12 OPTIONAL, + discTxPoolCommon-r13 SL-DiscTxPoolList-r12 OPTIONAL, + discTxPowerInfo-r13 SL-DiscTxPowerInfoList-r12 OPTIONAL, + discSyncConfig-r13 SL-SyncConfigNFreq-r13 OPTIONAL, + discCellSelectionInfo-r13 SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + q-RxLevMinOffset-r13 INTEGER (1..8) OPTIONAL + } OPTIONAL, + cellReselectionInfo-r13 SEQUENCE { + q-Hyst-r13 ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + q-RxLevMin-r13 Q-RxLevMin, + t-ReselectionEUTRA-r13 T-Reselection + } OPTIONAL, + tdd-Config-r13 TDD-Config OPTIONAL, + freqInfo-r13 SEQUENCE { + ul-CarrierFreq-r13 ARFCN-ValueEUTRA OPTIONAL, + ul-Bandwidth-r13 ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, + additionalSpectrumEmission-r13 AdditionalSpectrumEmission OPTIONAL + } OPTIONAL, + p-Max-r13 P-Max OPTIONAL, + referenceSignalPower-r13 INTEGER (-60..50) OPTIONAL, + ..., + [[ + freqInfo-v1370 SEQUENCE { + additionalSpectrumEmission-v1370 AdditionalSpectrumEmission-v10l0 + } OPTIONAL + ]] +} + + +SL-DiscTxPowerInfoList-r12 ::= SEQUENCE (SIZE (maxSL-DiscPowerClass-r12)) OF SL-DiscTxPowerInfo-r12 + +SL-DiscTxPowerInfo-r12 ::= SEQUENCE { + discMaxTxPower-r12 P-Max, + ... +} + + +SL-GapConfig-r13 ::= SEQUENCE { + gapPatternList-r13 SL-GapPatternList-r13 +} + +SL-GapPatternList-r13 ::= SEQUENCE (SIZE (1..maxSL-GP-r13)) OF SL-GapPattern-r13 + +SL-GapPattern-r13 ::= SEQUENCE { + gapPeriod-r13 ENUMERATED {sf40, sf60, sf70, sf80, sf120, sf140, sf160, + sf240, sf280, sf320, sf640, sf1280, sf2560, sf5120, + sf10240}, + gapOffset-r12 SL-OffsetIndicator-r12, + gapSubframeBitmap-r13 BIT STRING (SIZE (1..10240)), + ... +} + + +SL-GapRequest-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-GapFreqInfo-r13 + +SL-GapFreqInfo-r13 ::= SEQUENCE { + carrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL, + gapPatternList-r13 SL-GapPatternList-r13 +} + + +SL-HoppingConfigComm-r12 ::= SEQUENCE { + hoppingParameter-r12 INTEGER (0..504), + numSubbands-r12 ENUMERATED {ns1, ns2, ns4}, + rb-Offset-r12 INTEGER (0..110) +} + +SL-HoppingConfigDisc-r12 ::= SEQUENCE { + a-r12 INTEGER (1..200), + b-r12 INTEGER (1..10), + c-r12 ENUMERATED {n1, n5} +} + + +SL-InterFreqInfoListV2X-r14 ::= SEQUENCE (SIZE (0..maxFreqV2X-1-r14)) OF SL-InterFreqInfoV2X-r14 + +SL-InterFreqInfoV2X-r14 ::= SEQUENCE { + plmn-IdentityList-r14 PLMN-IdentityList OPTIONAL, -- Need OP + v2x-CommCarrierFreq-r14 ARFCN-ValueEUTRA-r9, + sl-MaxTxPower-r14 P-Max OPTIONAL, -- Need OR + sl-Bandwidth-r14 ENUMERATED {n6, n15, n25, n50, n75, n100} OPTIONAL, -- Need OR + v2x-SchedulingPool-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-UE-ConfigList-r14 SL-V2X-UE-ConfigList-r14 OPTIONAL, -- Need OR + ..., + [[ additionalSpectrumEmissionV2X-r14 CHOICE { + additionalSpectrumEmission-r14 AdditionalSpectrumEmission, + additionalSpectrumEmission-v1440 AdditionalSpectrumEmission-v10l0 + } OPTIONAL -- Need ON + ]] +} + + +SL-V2X-UE-ConfigList-r14 ::= SEQUENCE (SIZE (1.. maxCellIntra)) OF SL-V2X-InterFreqUE-Config-r14 + +SL-V2X-InterFreqUE-Config-r14 ::= SEQUENCE { + physCellIdList-r14 PhysCellIdList-r13 OPTIONAL, -- Need OR + typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR + v2x-SyncConfig-r14 SL-SyncConfigListNFreqV2X-r14 OPTIONAL, -- Need OR + v2x-CommRxPool-r14 SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolNormal-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + p2x-CommTxPoolNormal-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolExceptional-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-ResourceSelectionConfig-r14 SL-CommTxPoolSensingConfig-r14 OPTIONAL, -- Need OR + zoneConfig-r14 SL-ZoneConfig-r14 OPTIONAL, -- Need OR + offsetDFN-r14 INTEGER (0..1000) OPTIONAL, -- Need OR + ... +} + + +SL-OffsetIndicator-r12 ::= CHOICE { + small-r12 INTEGER (0..319), + large-r12 INTEGER (0..10239) +} + +SL-OffsetIndicatorSync-r12 ::= INTEGER (0..39) + +SL-OffsetIndicatorSync-v1430 ::= INTEGER (40..159) + +SL-OffsetIndicatorSync-r14 ::= INTEGER (0..159) + + +SL-P2X-ResourceSelectionConfig-r14 ::= SEQUENCE { + partialSensing-r14 ENUMERATED {true} OPTIONAL, -- Need OR + randomSelection-r14 ENUMERATED {true} OPTIONAL -- Need OR +} + + +SL-PeriodComm-r12 ::= ENUMERATED {sf40, sf60, sf70, sf80, sf120, sf140, + sf160, sf240, sf280, sf320, spare6, spare5, + spare4, spare3, spare2, spare} + + +SL-PriorityList-r13 ::= SEQUENCE (SIZE (1..maxSL-Prio-r13)) OF SL-Priority-r13 + +SL-Priority-r13 ::= INTEGER (1..8) + + +SL-PSSCH-TxConfigList-r14 ::= SEQUENCE (SIZE (1..maxPSSCH-TxConfig-r14)) OF SL-PSSCH-TxConfig-r14 + +SL-PSSCH-TxConfig-r14 ::= SEQUENCE { + typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR + thresUE-Speed-r14 ENUMERATED {kmph60, kmph80, kmph100, kmph120, + kmph140, kmph160, kmph180, kmph200}, + parametersAboveThres-r14 SL-PSSCH-TxParameters-r14, + parametersBelowThres-r14 SL-PSSCH-TxParameters-r14, + ... +} + +SL-PSSCH-TxParameters-r14 ::= SEQUENCE { + minMCS-PSSCH-r14 INTEGER (0..31), + maxMCS-PSSCH-r14 INTEGER (0..31), + minSubChannel-NumberPSSCH-r14 INTEGER (1..20), + maxSubchannel-NumberPSSCH-r14 INTEGER (1..20), + allowedRetxNumberPSSCH-r14 ENUMERATED {n0, n1, both, spare1}, + maxTxPower-r14 SL-TxPower-r14 OPTIONAL -- Cond CBR +} + + +SL-RestrictResourceReservationPeriodList-r14 ::= SEQUENCE (SIZE (1..maxReservationPeriod-r14)) OF SL-RestrictResourceReservationPeriod-r14 + +SL-RestrictResourceReservationPeriod-r14 ::= ENUMERATED {v0dot2, v0dot5, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, spare4,spare3, spare2, spare1} + + +SLSSID-r12 ::= INTEGER (0..167) + + +SL-SyncAllowed-r14 ::= SEQUENCE { + gnss-Sync-r14 ENUMERATED {true} OPTIONAL, -- Need OR + enb-Sync-r14 ENUMERATED {true} OPTIONAL, -- Need OR + ue-Sync-r14 ENUMERATED {true} OPTIONAL -- Need OR +} + + +SL-SyncConfigList-r12 ::= SEQUENCE (SIZE (1..maxSL-SyncConfig-r12)) OF SL-SyncConfig-r12 + +SL-SyncConfigListV2X-r14 ::= SEQUENCE (SIZE (1.. maxSL-V2X-SyncConfig-r14)) OF SL-SyncConfig-r12 + +SL-SyncConfig-r12 ::= SEQUENCE { + syncCP-Len-r12 SL-CP-Len-r12, + syncOffsetIndicator-r12 SL-OffsetIndicatorSync-r12, + slssid-r12 SLSSID-r12, + txParameters-r12 SEQUENCE { + syncTxParameters-r12 SL-TxParameters-r12, + syncTxThreshIC-r12 RSRP-RangeSL-r12, + syncInfoReserved-r12 BIT STRING (SIZE (19)) OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + rxParamsNCell-r12 SEQUENCE { + physCellId-r12 PhysCellId, + discSyncWindow-r12 ENUMERATED {w1, w2} + } OPTIONAL, -- Need OR + ..., + [[ syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ syncOffsetIndicator-v1430 SL-OffsetIndicatorSync-v1430 OPTIONAL, -- Need OR + gnss-Sync-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + +SL-SyncConfigListNFreq-r13 ::= SEQUENCE (SIZE (1..maxSL-SyncConfig-r12)) OF SL-SyncConfigNFreq-r13 + +SL-SyncConfigListNFreqV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-SyncConfig-r14)) OF SL-SyncConfigNFreq-r13 + +SL-SyncConfigNFreq-r13 ::= SEQUENCE { + asyncParameters-r13 SEQUENCE { + syncCP-Len-r13 SL-CP-Len-r12, + syncOffsetIndicator-r13 SL-OffsetIndicatorSync-r12, + slssid-r13 SLSSID-r12 + } OPTIONAL, -- Need OR + txParameters-r13 SEQUENCE { + syncTxParameters-r13 SL-TxParameters-r12, + syncTxThreshIC-r13 RSRP-RangeSL-r12, + syncInfoReserved-r13 BIT STRING (SIZE (19)) OPTIONAL, -- Need OR + syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + rxParameters-r13 SEQUENCE { + discSyncWindow-r13 ENUMERATED {w1, w2} + } OPTIONAL, -- Need OR + ..., + [[ syncOffsetIndicator-v1430 SL-OffsetIndicatorSync-v1430 OPTIONAL, -- Need OR + gnss-Sync-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + + +SL-TF-ResourceConfig-r12 ::= SEQUENCE { + prb-Num-r12 INTEGER (1..100), + prb-Start-r12 INTEGER (0..99), + prb-End-r12 INTEGER (0..99), + offsetIndicator-r12 SL-OffsetIndicator-r12, + subframeBitmap-r12 SubframeBitmapSL-r12 +} + +SubframeBitmapSL-r12 ::= CHOICE { + bs4-r12 BIT STRING (SIZE (4)), + bs8-r12 BIT STRING (SIZE (8)), + bs12-r12 BIT STRING (SIZE (12)), + bs16-r12 BIT STRING (SIZE (16)), + bs30-r12 BIT STRING (SIZE (30)), + bs40-r12 BIT STRING (SIZE (40)), + bs42-r12 BIT STRING (SIZE (42)) +} + +SubframeBitmapSL-r14 ::= CHOICE { + bs10-r14 BIT STRING (SIZE (10)), + bs16-r14 BIT STRING (SIZE (16)), + bs20-r14 BIT STRING (SIZE (20)), + bs30-r14 BIT STRING (SIZE (30)), + bs40-r14 BIT STRING (SIZE (40)), + bs50-r14 BIT STRING (SIZE (50)), + bs60-r14 BIT STRING (SIZE (60)), + bs100-r14 BIT STRING (SIZE (100)) +} + + +SL-TxPower-r14 ::= CHOICE { + minusinfinity-r14 NULL, + txPower-r14 INTEGER (-41..31) +} + + +SL-TypeTxSync-r14 ::= ENUMERATED {gnss, enb, ue} + + +SL-ThresPSSCH-RSRP-List-r14 ::= SEQUENCE (SIZE (64)) OF SL-ThresPSSCH-RSRP-r14 + +SL-ThresPSSCH-RSRP-r14 ::= INTEGER (0..66) + + +SL-TxParameters-r12 ::= SEQUENCE { + alpha-r12 Alpha-r12, + p0-r12 P0-SL-r12 +} + +P0-SL-r12 ::= INTEGER (-126..31) + + +SL-TxPoolIdentity-r12 ::= INTEGER (1.. maxSL-TxPool-r12) + +SL-TxPoolIdentity-v1310 ::= INTEGER (maxSL-TxPool-r12Plus1-r13.. maxSL-TxPool-r13) + +SL-V2X-TxPoolIdentity-r14 ::= INTEGER (1.. maxSL-V2X-TxPool-r14) + + +SL-TxPoolToReleaseList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-TxPoolIdentity-r12 + +SL-TxPoolToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF SL-TxPoolIdentity-v1310 + + +SL-V2X-ConfigDedicated-r14 ::= SEQUENCE { + commTxResources-r14 CHOICE { + release NULL, + setup CHOICE { + scheduled-r14 SEQUENCE { + sl-V-RNTI-r14 C-RNTI, + mac-MainConfig-r14 MAC-MainConfigSL-r12, + v2x-SchedulingPool-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need ON + mcs-r14 INTEGER (0..31) OPTIONAL, -- Need OR + logicalChGroupInfoList-r14 LogicalChGroupInfoList-r13 + }, + ue-Selected-r14 SEQUENCE { + -- Pool for normal usage + v2x-CommTxPoolNormalDedicated-r14 SEQUENCE { + poolToReleaseList-r14 SL-TxPoolToReleaseListV2X-r14 OPTIONAL, -- Need ON + poolToAddModList-r14 SL-TxPoolToAddModListV2X-r14 OPTIONAL, -- Need ON + v2x-CommTxPoolSensingConfig-r14 SL-CommTxPoolSensingConfig-r14 + OPTIONAL -- Need ON + } + } + } + } OPTIONAL, -- Need ON + v2x-InterFreqInfoList-r14 SL-InterFreqInfoListV2X-r14 OPTIONAL, -- Need ON + thresSL-TxPrioritization-r14 SL-Priority-r13 OPTIONAL, -- Need OR + typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR + cbr-DedicatedTxConfigList-r14 SL-CBR-CommonTxConfigList-r14 OPTIONAL, -- Need OR + ... +} + +SL-TxPoolToAddModListV2X-r14 ::= SEQUENCE (SIZE (1.. maxSL-V2X-TxPool-r14)) OF SL-TxPoolToAddMod-r14 + +SL-TxPoolToAddMod-r14 ::= SEQUENCE { + poolIdentity-r14 SL-V2X-TxPoolIdentity-r14, + pool-r14 SL-CommResourcePoolV2X-r14 +} + +SL-TxPoolToReleaseListV2X-r14 ::= SEQUENCE (SIZE (1.. maxSL-V2X-TxPool-r14)) OF SL-V2X-TxPoolIdentity-r14 + + +SL-ZoneConfig-r14 ::= SEQUENCE { + zoneLength-r14 ENUMERATED { m5, m10, m20, m50, m100, m200, m500, spare1}, + zoneWidth-r14 ENUMERATED { m5, m10, m20, m50, m100, m200, m500, spare1}, + zoneIdLongiMod-r14 INTEGER (1..4), + zoneIdLatiMod-r14 INTEGER (1..4) +} + + +maxACDC-Cat-r13 INTEGER ::= 16 -- Maximum number of ACDC categories (per PLMN) +maxAvailNarrowBands-r13 INTEGER ::= 16 -- Maximum number of narrowbands +maxBandComb-r10 INTEGER ::= 128 -- Maximum number of band combinations. +maxBandComb-r11 INTEGER ::= 256 -- Maximum number of additional band combinations. +maxBandComb-r13 INTEGER ::= 384 -- Maximum number of band combinations in Rel-13 +maxBands INTEGER ::= 64 -- Maximum number of bands listed in EUTRA UE caps +maxBandwidthClass-r10 INTEGER ::= 16 -- Maximum number of supported CA BW classes per band +maxBandwidthCombSet-r10 INTEGER ::= 32 -- Maximum number of bandwidth combination sets per + -- supported band combination +maxCBR-Level-r14 INTEGER ::= 16 -- Maximum number of CBR levels +maxCBR-Level-1-r14 INTEGER ::= 15 +maxCBR-Report-r14 INTEGER ::= 72 -- Maximum number of CBR results in a report +maxCDMA-BandClass INTEGER ::= 32 -- Maximum value of the CDMA band classes +maxCE-Level-r13 INTEGER ::= 4 -- Maximum number of CE levels +maxCellBlack INTEGER ::= 16 -- Maximum number of blacklisted physical cell identity + -- ranges listed in SIB type 4 and 5 +maxCellHistory-r12 INTEGER ::= 16 -- Maximum number of visited EUTRA cells reported +maxCellInfoGERAN-r9 INTEGER ::= 32 -- Maximum number of GERAN cells for which system in- + -- formation can be provided as redirection assistance +maxCellInfoUTRA-r9 INTEGER ::= 16 -- Maximum number of UTRA cells for which system + -- information can be provided as redirection + -- assistance +maxCombIDC-r11 INTEGER ::= 128 -- Maximum number of reported UL CA combinations +maxCSI-IM-r11 INTEGER ::= 3 -- Maximum number of CSI-IM configurations + -- (per carrier frequency) +maxCSI-IM-r12 INTEGER ::= 4 -- Maximum number of CSI-IM configurations + -- (per carrier frequency) +minCSI-IM-r13 INTEGER ::= 5 -- Minimum number of CSI IM configurations from which + -- REL-13 extension is used +maxCSI-IM-r13 INTEGER ::= 24 -- Maximum number of CSI-IM configurations + -- (per carrier frequency) +maxCSI-IM-v1310 INTEGER ::= 20 -- Maximum number of additional CSI-IM configurations + -- (per carrier frequency) +maxCSI-Proc-r11 INTEGER ::= 4 -- Maximum number of CSI processes (per carrier + -- frequency) +maxCSI-RS-NZP-r11 INTEGER ::= 3 -- Maximum number of CSI RS resource + -- configurations using non-zero Tx power + -- (per carrier frequency) +minCSI-RS-NZP-r13 INTEGER ::= 4 -- Minimum number of CSI RS resource from which + -- REL-13 extension is used +maxCSI-RS-NZP-r13 INTEGER ::= 24 -- Maximum number of CSI RS resource + -- configurations using non-zero Tx power + -- (per carrier frequency) +maxCSI-RS-NZP-v1310 INTEGER ::= 21 -- Maximum number of additional CSI RS resource + -- configurations using non-zero Tx power + -- (per carrier frequency) +maxCSI-RS-ZP-r11 INTEGER ::= 4 -- Maximum number of CSI RS resource + -- configurations using zero Tx power(per carrier + -- frequency) +maxCQI-ProcExt-r11 INTEGER ::= 3 -- Maximum number of additional periodic CQI + -- configurations (per carrier frequency) +maxFreqUTRA-TDD-r10 INTEGER ::= 6 -- Maximum number of UTRA TDD carrier frequencies for + -- which system information can be provided as + -- redirection assistance +maxCellInter INTEGER ::= 16 -- Maximum number of neighbouring inter-frequency + -- cells listed in SIB type 5 +maxCellIntra INTEGER ::= 16 -- Maximum number of neighbouring intra-frequency + -- cells listed in SIB type 4 +maxCellListGERAN INTEGER ::= 3 -- Maximum number of lists of GERAN cells +maxCellMeas INTEGER ::= 32 -- Maximum number of entries in each of the + -- cell lists in a measurement object +maxCellReport INTEGER ::= 8 -- Maximum number of reported cells/CSI-RS resources +maxConfigSPS-r14 INTEGER ::= 8 -- Maximum number of simultaneous SPS configurations +maxCSI-RS-Meas-r12 INTEGER ::= 96 -- Maximum number of entries in the CSI-RS list + -- in a measurement object +maxDRB INTEGER ::= 11 -- Maximum number of Data Radio Bearers +maxDS-Duration-r12 INTEGER ::= 5 -- Maximum number of subframes in a discovery signals + -- occasion +maxDS-ZTP-CSI-RS-r12 INTEGER ::= 5 -- Maximum number of zero transmission power CSI-RS for + -- a serving cell concerning discovery signals +maxEARFCN INTEGER ::= 65535 -- Maximum value of EUTRA carrier frequency +maxEARFCN-Plus1 INTEGER ::= 65536 -- Lowest value extended EARFCN range +maxEARFCN2 INTEGER ::= 262143 -- Highest value extended EARFCN range +maxEPDCCH-Set-r11 INTEGER ::= 2 -- Maximum number of EPDCCH sets +maxFBI INTEGER ::= 64 -- Maximum value of fequency band indicator +maxFBI-Plus1 INTEGER ::= 65 -- Lowest value extended FBI range +maxFBI2 INTEGER ::= 256 -- Highest value extended FBI range +maxFreq INTEGER ::= 8 -- Maximum number of carrier frequencies +maxFreqIDC-r11 INTEGER ::= 32 -- Maximum number of carrier frequencies that are + -- affected by the IDC problems +maxFreqMBMS-r11 INTEGER ::= 5 -- Maximum number of carrier frequencies for which an + -- MBMS capable UE may indicate an interest +maxFreqV2X-r14 INTEGER ::= 8 -- Maximum number of carrier frequencies for which V2X + -- sidelink communication can be configured +maxFreqV2X-1-r14 INTEGER ::= 7 -- Highest index of frequencies +maxGERAN-SI INTEGER ::= 10 -- Maximum number of GERAN SI blocks that can be + -- provided as part of NACC information +maxGNFG INTEGER ::= 16 -- Maximum number of GERAN neighbour freq groups +maxLCG-r13 INTEGER ::= 4 -- Maximum number of logical channel groups +maxLogMeasReport-r10 INTEGER ::= 520 -- Maximum number of logged measurement entries + -- that can be reported by the UE in one message +maxMBSFN-Allocations INTEGER ::= 8 -- Maximum number of MBSFN frame allocations with + -- different offset +maxMBSFN-Area INTEGER ::= 8 +maxMBSFN-Area-1 INTEGER ::= 7 +maxMBMS-ServiceListPerUE-r13 INTEGER ::= 15 -- Maximum number of services which the UE can + -- include in the MBMS interest indication +maxMeasId INTEGER ::= 32 +maxMeasId-Plus1 INTEGER ::= 33 +maxMeasId-r12 INTEGER ::= 64 +maxMultiBands INTEGER ::= 8 -- Maximum number of additional frequency bands + -- that a cell belongs to +maxNS-Pmax-r10 INTEGER ::= 8 -- Maximum number of NS and P-Max values per band +maxNAICS-Entries-r12 INTEGER ::= 8 -- Maximum number of supported NAICS combination(s) +maxNeighCell-r12 INTEGER ::= 8 -- Maximum number of neighbouring cells in NAICS + -- configuration (per carrier frequency) +maxNeighCell-SCPTM-r13 INTEGER ::= 8 -- Maximum number of SCPTM neighbour cells +maxObjectId INTEGER ::= 32 +maxObjectId-Plus1-r13 INTEGER ::= 33 +maxObjectId-r13 INTEGER ::= 64 +maxP-a-PerNeighCell-r12 INTEGER ::= 3 -- Maximum number of power offsets for a neighbour cell + -- in NAICS configuration +maxPageRec INTEGER ::= 16 -- +maxPhysCellIdRange-r9 INTEGER ::= 4 -- Maximum number of physical cell identity ranges +maxPLMN-r11 INTEGER ::= 6 -- Maximum number of PLMNs +maxPLMN-1-r14 INTEGER ::= 5 -- Maximum number of PLMNs minus one +maxPNOffset INTEGER ::= 511 -- Maximum number of CDMA2000 PNOffsets +maxPMCH-PerMBSFN INTEGER ::= 15 +maxPSSCH-TxConfig-r14 INTEGER ::= 16 -- Maximum number of PSSCH TX configurations +maxQCI-r13 INTEGER ::= 6 -- Maximum number of QCIs +maxRAT-Capabilities INTEGER ::= 8 -- Maximum number of interworking RATs (incl EUTRA) +maxRE-MapQCL-r11 INTEGER ::= 4 -- Maximum number of PDSCH RE Mapping configurations + -- (per carrier frequency) +maxReportConfigId INTEGER ::= 32 +maxReservationPeriod-r14 INTEGER ::= 16 -- Maximum number of resource reservation periodicities + -- for sidelink V2X communication +maxRSTD-Freq-r10 INTEGER ::= 3 -- Maximum number of frequency layers for RSTD + -- measurement +maxSAI-MBMS-r11 INTEGER ::= 64 -- Maximum number of MBMS service area identities + -- broadcast per carrier frequency +maxSCell-r10 INTEGER ::= 4 -- Maximum number of SCells +maxSCell-r13 INTEGER ::= 31 -- Highest value of extended number range of SCells +maxSC-MTCH-r13 INTEGER ::= 1023 -- Maximum number of SC-MTCHs in one cell +maxSC-MTCH-BR-r14 INTEGER ::= 128 -- Maximum number of SC-MTCHs in one cell for feMTC +maxSL-CommRxPoolNFreq-r13 INTEGER ::= 32 -- Maximum number of individual sidelink communication + -- Rx resource pools on neighbouring freq +maxSL-CommRxPoolPreconf-v1310 INTEGER ::= 12 -- Maximum number of additional preconfigured + -- sidelink communication Rx resource pool entries +maxSL-TxPool-r12Plus1-r13 INTEGER ::= 5 -- First additional individual sidelink + -- Tx resource pool +maxSL-TxPool-v1310 INTEGER ::= 4 -- Maximum number of additional sidelink + -- Tx resource pool entries +maxSL-TxPool-r13 INTEGER ::= 8 -- Maximum number of individual sidelink + -- Tx resource pools +maxSL-CommTxPoolPreconf-v1310 INTEGER ::= 7 -- Maximum number of additional preconfigured + -- sidelink Tx resource pool entries +maxSL-Dest-r12 INTEGER ::= 16 -- Maximum number of sidelink destinations +maxSL-DiscCells-r13 INTEGER ::= 16 -- Maximum number of cells with similar sidelink + -- configurations +maxSL-DiscPowerClass-r12 INTEGER ::= 3 -- Maximum number of sidelink power classes +maxSL-DiscRxPoolPreconf-r13 INTEGER ::= 16 -- Maximum number of preconfigured sidelink + -- discovery Rx resource pool entries +maxSL-DiscSysInfoReportFreq-r13 INTEGER ::= 8 -- Maximum number of frequencies to include in a + -- SidelinkUEInformation for SI reporting +maxSL-DiscTxPoolPreconf-r13 INTEGER ::= 4 -- Maximum number of preconfigured sidelink + -- discovery Tx resource pool entries +maxSL-GP-r13 INTEGER ::= 8 -- Maximum number of gap patterns that can be requested + -- for a frequency or assigned +maxSL-PoolToMeasure-r14 INTEGER ::= 72 -- Maximum number of TX resource pools for CBR + -- measurement and report +maxSL-Prio-r13 INTEGER ::= 8 -- Maximum number of entries in sidelink priority list +maxSL-RxPool-r12 INTEGER ::= 16 -- Maximum number of individual sidelink Rx resource pools +maxSL-SyncConfig-r12 INTEGER ::= 16 -- Maximum number of sidelink Sync configurations +maxSL-TF-IndexPair-r12 INTEGER ::= 64 -- Maximum number of sidelink Time Freq resource index + -- pairs +maxSL-TxPool-r12 INTEGER ::= 4 -- Maximum number of individual sidelink Tx resource pools +maxSL-V2X-RxPool-r14 INTEGER ::= 16 -- Maximum number of RX resource pools for + -- V2X sidelink communication +maxSL-V2X-RxPoolPreconf-r14 INTEGER ::= 16 -- Maximum number of RX resource pools for + -- V2X sidelink communication +maxSL-V2X-TxPool-r14 INTEGER ::= 8 -- Maximum number of TX resource pools for + -- V2X sidelink communication +maxSL-V2X-TxPoolPreconf-r14 INTEGER ::= 8 -- Maximum number of TX resource pools for + -- V2X sidelink communication +maxSL-V2X-SyncConfig-r14 INTEGER ::= 16 -- Maximum number of sidelink Sync configurations + -- for V2X sidelink communication +maxSL-V2X-CBRConfig-r14 INTEGER ::= 4 -- Maximum number of CBR range configurations + -- for V2X sidelink communication congestion + -- control +maxSL-V2X-CBRConfig-1-r14 INTEGER ::= 3 +maxSL-V2X-TxConfig-r14 INTEGER ::= 64 -- Maximum number of TX parameter configurations + -- for V2X sidelink communication congestion + -- control +maxSL-V2X-TxConfig-1-r14 INTEGER ::= 63 +maxSL-V2X-CBRConfig2-r14 INTEGER ::= 8 -- Maximum number of CBR range configurations in + -- pre-configuration for V2X sidelink + -- communication congestion control +maxSL-V2X-CBRConfig2-1-r14 INTEGER ::= 7 +maxSL-V2X-TxConfig2-r14 INTEGER ::= 128 -- Maximum number of TX parameter + -- configurations in pre-configuration for V2X + -- sidelink communication congestion control +maxSL-V2X-TxConfig2-1-r14 INTEGER ::= 127 +maxSTAG-r11 INTEGER ::= 3 -- Maximum number of STAGs +maxServCell-r10 INTEGER ::= 5 -- Maximum number of Serving cells +maxServCell-r13 INTEGER ::= 32 -- Highest value of extended number range of Serving cells +maxServiceCount INTEGER ::= 16 -- Maximum number of MBMS services that can be included + -- in an MBMS counting request and response +maxServiceCount-1 INTEGER ::= 15 +maxSessionPerPMCH INTEGER ::= 29 +maxSessionPerPMCH-1 INTEGER ::= 28 +maxSIB INTEGER ::= 32 -- Maximum number of SIBs +maxSIB-1 INTEGER ::= 31 +maxSI-Message INTEGER ::= 32 -- Maximum number of SI messages +maxSimultaneousBands-r10 INTEGER ::= 64 -- Maximum number of simultaneously aggregated bands +maxSubframePatternIDC-r11 INTEGER ::= 8 -- Maximum number of subframe reservation patterns + -- that the UE can simultaneously recommend to the + -- E-UTRAN for use. +maxTrafficPattern-r14 INTEGER ::= 8 -- Maximum number of periodical traffic patterns + -- that the UE can simultaneously report to the + -- E-UTRAN. +maxUTRA-FDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA FDD carrier frequencies +maxUTRA-TDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA TDD carrier frequencies +maxWLAN-Id-r12 INTEGER ::= 16 -- Maximum number of WLAN identifiers +maxWLAN-Bands-r13 INTEGER ::= 8 -- Maximum number of WLAN bands +maxWLAN-Id-r13 INTEGER ::= 32 -- Maximum number of WLAN identifiers +maxWLAN-Channels-r13 INTEGER ::= 16 -- maximum number of WLAN channels used in + -- WLAN-CarrierInfo +maxWLAN-CarrierInfo-r13 INTEGER ::= 8 -- Maximum number of WLAN Carrier Information +maxWLAN-Id-Report-r14 INTEGER ::= 32 -- Maximum number of WLAN IDs to report + + +END + + +PC5-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + TDD-ConfigSL-r12 +FROM EUTRA-RRC-Definitions; + + +SBCCH-SL-BCH-Message ::= SEQUENCE { + message SBCCH-SL-BCH-MessageType +} + +SBCCH-SL-BCH-MessageType ::= MasterInformationBlock-SL + + +SBCCH-SL-BCH-Message-V2X-r14 ::= SEQUENCE { + message SBCCH-SL-BCH-MessageType-V2X-r14 +} + +SBCCH-SL-BCH-MessageType-V2X-r14 ::= MasterInformationBlock-SL-V2X-r14 + + +MasterInformationBlock-SL ::= SEQUENCE { + sl-Bandwidth-r12 ENUMERATED { + n6, n15, n25, n50, n75, n100}, + tdd-ConfigSL-r12 TDD-ConfigSL-r12, + directFrameNumber-r12 BIT STRING (SIZE (10)), + directSubframeNumber-r12 INTEGER (0..9), + inCoverage-r12 BOOLEAN, + reserved-r12 BIT STRING (SIZE (19)) +} + + + +MasterInformationBlock-SL-V2X-r14 ::= SEQUENCE { + sl-Bandwidth-r14 ENUMERATED { + n6, n15, n25, n50, n75, n100}, + tdd-ConfigSL-r14 TDD-ConfigSL-r12, + directFrameNumber-r14 BIT STRING (SIZE (10)), + directSubframeNumber-r14 INTEGER (0..9), + inCoverage-r14 BOOLEAN, + reserved-r14 BIT STRING (SIZE (27)) +} + + + +END + + +NBIOT-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + RRCConnectionReestablishmentReject, + SecurityModeCommand, + SecurityModeComplete, + SecurityModeFailure, + AdditionalSpectrumEmission, + ARFCN-ValueEUTRA-r9, + CellIdentity, + DedicatedInfoNAS, + DRB-Identity, + InitialUE-Identity, + IntraFreqBlackCellList, + IntraFreqNeighCellList, + maxBands, + maxCellBlack, + maxCellInter, + maxFBI2, + maxFreq, + maxMultiBands, + maxPageRec, + maxPLMN-r11, + maxSAI-MBMS-r11, + maxSIB, + maxSIB-1, + MBMS-SAI-r11, + MBMS-SAI-List-r11, + MBMSSessionInfo-r13, + NextHopChainingCount, + PagingUE-Identity, + PLMN-Identity, + P-Max, + PowerRampingParameters, + PreambleTransMax, + PhysCellId, + Q-OffsetRange, + Q-QualMin-r9, + Q-RxLevMin, + ReestabUE-Identity, + RegisteredMME, + ReselectionThreshold, + ResumeIdentity-r13, + RRC-TransactionIdentifier, + RSRP-Range, + ShortMAC-I, + S-TMSI, + SystemInformationBlockType16-r11, + SystemInfoValueTagSI-r13, + T-Reordering, + TimeAlignmentTimer, + TMGI-r9, + TrackingAreaCode, + DataInactivityTimer-r14 + +FROM EUTRA-RRC-Definitions; + + +BCCH-BCH-Message-NB ::= SEQUENCE { + message BCCH-BCH-MessageType-NB +} + + +BCCH-BCH-MessageType-NB::= MasterInformationBlock-NB + + + +BCCH-DL-SCH-Message-NB ::= SEQUENCE { + message BCCH-DL-SCH-MessageType-NB +} + +BCCH-DL-SCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + systemInformation-r13 SystemInformation-NB, + systemInformationBlockType1-r13 SystemInformationBlockType1-NB + }, + messageClassExtension SEQUENCE {} +} + + +PCCH-Message-NB ::= SEQUENCE { + message PCCH-MessageType-NB +} + +PCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + paging-r13 Paging-NB + }, + messageClassExtension SEQUENCE {} +} + + +DL-CCCH-Message-NB ::= SEQUENCE { + message DL-CCCH-MessageType-NB +} + +DL-CCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishment-r13 RRCConnectionReestablishment-NB, + rrcConnectionReestablishmentReject-r13 RRCConnectionReestablishmentReject, + rrcConnectionReject-r13 RRCConnectionReject-NB, + rrcConnectionSetup-r13 RRCConnectionSetup-NB, + spare4 NULL, spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +DL-DCCH-Message-NB ::= SEQUENCE { + message DL-DCCH-MessageType-NB +} + +DL-DCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + dlInformationTransfer-r13 DLInformationTransfer-NB, + rrcConnectionReconfiguration-r13 RRCConnectionReconfiguration-NB, + rrcConnectionRelease-r13 RRCConnectionRelease-NB, + securityModeCommand-r13 SecurityModeCommand, + ueCapabilityEnquiry-r13 UECapabilityEnquiry-NB, + rrcConnectionResume-r13 RRCConnectionResume-NB, + spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + + +UL-CCCH-Message-NB ::= SEQUENCE { + message UL-CCCH-MessageType-NB +} + +UL-CCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishmentRequest-r13 RRCConnectionReestablishmentRequest-NB, + rrcConnectionRequest-r13 RRCConnectionRequest-NB, + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-NB, + spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +SC-MCCH-Message-NB ::= SEQUENCE { + message SC-MCCH-MessageType-NB +} + + +SC-MCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + scptmConfiguration-r14 SCPTMConfiguration-NB-r14 + }, + messageClassExtension SEQUENCE {} +} + + +UL-DCCH-Message-NB ::= SEQUENCE { + message UL-DCCH-MessageType-NB +} + +UL-DCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + rrcConnectionReconfigurationComplete-r13 RRCConnectionReconfigurationComplete-NB, + rrcConnectionReestablishmentComplete-r13 RRCConnectionReestablishmentComplete-NB, + rrcConnectionSetupComplete-r13 RRCConnectionSetupComplete-NB, + securityModeComplete-r13 SecurityModeComplete, + securityModeFailure-r13 SecurityModeFailure, + ueCapabilityInformation-r13 UECapabilityInformation-NB, + ulInformationTransfer-r13 ULInformationTransfer-NB, + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-NB, + spare8 NULL, spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +DLInformationTransfer-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + dlInformationTransfer-r13 DLInformationTransfer-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +DLInformationTransfer-NB-r13-IEs ::= SEQUENCE { + dedicatedInfoNAS-r13 DedicatedInfoNAS, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MasterInformationBlock-NB ::= SEQUENCE { + systemFrameNumber-MSB-r13 BIT STRING (SIZE (4)), + hyperSFN-LSB-r13 BIT STRING (SIZE (2)), + schedulingInfoSIB1-r13 INTEGER (0..15), + systemInfoValueTag-r13 INTEGER (0..31), + ab-Enabled-r13 BOOLEAN, + operationModeInfo-r13 CHOICE { + inband-SamePCI-r13 Inband-SamePCI-NB-r13, + inband-DifferentPCI-r13 Inband-DifferentPCI-NB-r13, + guardband-r13 Guardband-NB-r13, + standalone-r13 Standalone-NB-r13 + }, + spare BIT STRING (SIZE (11)) +} + +ChannelRasterOffset-NB-r13 ::= ENUMERATED {khz-7dot5, khz-2dot5, khz2dot5, khz7dot5} + +Guardband-NB-r13 ::= SEQUENCE { + rasterOffset-r13 ChannelRasterOffset-NB-r13, + spare BIT STRING (SIZE (3)) +} + +Inband-SamePCI-NB-r13 ::= SEQUENCE { + eutra-CRS-SequenceInfo-r13 INTEGER (0..31) +} + +Inband-DifferentPCI-NB-r13 ::= SEQUENCE { + eutra-NumCRS-Ports-r13 ENUMERATED {same, four}, + rasterOffset-r13 ChannelRasterOffset-NB-r13, + spare BIT STRING (SIZE (2)) +} + +Standalone-NB-r13 ::= SEQUENCE { + spare BIT STRING (SIZE (5)) +} + + +Paging-NB ::= SEQUENCE { + pagingRecordList-r13 PagingRecordList-NB-r13 OPTIONAL, -- Need ON + systemInfoModification-r13 ENUMERATED {true} OPTIONAL, -- Need ON + systemInfoModification-eDRX-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PagingRecordList-NB-r13 ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord-NB-r13 + +PagingRecord-NB-r13 ::= SEQUENCE { + ue-Identity-r13 PagingUE-Identity, + ... +} + + +RRCConnectionReconfiguration-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReconfiguration-r13 RRCConnectionReconfiguration-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfiguration-NB-r13-IEs ::= SEQUENCE { + dedicatedInfoNASList-r13 SEQUENCE (SIZE(1..maxDRB-NB-r13)) OF + DedicatedInfoNAS OPTIONAL, -- Need ON + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13 OPTIONAL, -- Need ON + fullConfig-r13 ENUMERATED {true} OPTIONAL, -- Cond Reestab + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReconfigurationComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReconfigurationComplete-r13 RRCConnectionReconfigurationComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfigurationComplete-NB-r13-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + + +RRCConnectionReestablishment-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReestablishment-r13 RRCConnectionReestablishment-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishment-NB-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13, + nextHopChainingCount-r13 NextHopChainingCount, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReestablishment-NB-v1430-IEs OPTIONAL +} + +RRCConnectionReestablishment-NB-v1430-IEs ::= SEQUENCE { + dl-NAS-MAC BIT STRING (SIZE (16)) OPTIONAL, -- Cond Reestablish-CP + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReestablishmentComplete-r13 RRCConnectionReestablishmentComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentComplete-NB-r13-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentRequest-NB ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentRequest-r13 + RRCConnectionReestablishmentRequest-NB-r13-IEs, + later CHOICE { + rrcConnectionReestablishmentRequest-r14 + RRCConnectionReestablishmentRequest-NB-r14-IEs, + criticalExtensionsFuture SEQUENCE {} + } + } +} + +RRCConnectionReestablishmentRequest-NB-r13-IEs ::= SEQUENCE { + ue-Identity-r13 ReestabUE-Identity, + reestablishmentCause-r13 ReestablishmentCause-NB-r13, + spare BIT STRING (SIZE (25)) +} + +RRCConnectionReestablishmentRequest-NB-r14-IEs ::= SEQUENCE { + ue-Identity-r14 ReestabUE-Identity-CP-NB-r14, + reestablishmentCause-r14 ReestablishmentCause-NB-r13, + spare BIT STRING (SIZE (4)) +} + +ReestablishmentCause-NB-r13 ::= ENUMERATED { + reconfigurationFailure, otherFailure, + spare2, spare1} + +ReestabUE-Identity-CP-NB-r14 ::= SEQUENCE { + s-TMSI-r14 S-TMSI, + ul-NAS-MAC-r14 BIT STRING (SIZE (16)), + ul-NAS-Count-r14 BIT STRING (SIZE (5)) +} + + +RRCConnectionReject-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionReject-r13 RRCConnectionReject-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReject-NB-r13-IEs ::= SEQUENCE { + extendedWaitTime-r13 INTEGER (1..1800), + rrc-SuspendIndication-r13 ENUMERATED {true} OPTIONAL, -- Need ON + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionRelease-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionRelease-r13 RRCConnectionRelease-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRelease-NB-r13-IEs ::= SEQUENCE { + releaseCause-r13 ReleaseCause-NB-r13, + resumeIdentity-r13 ResumeIdentity-r13 OPTIONAL, -- Need OR + extendedWaitTime-r13 INTEGER (1..1800) OPTIONAL, -- Need ON + redirectedCarrierInfo-r13 RedirectedCarrierInfo-NB-r13 OPTIONAL, -- Need ON + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionRelease-NB-v1430-IEs OPTIONAL +} + +RRCConnectionRelease-NB-v1430-IEs ::= SEQUENCE { + redirectedCarrierInfo-v1430 RedirectedCarrierInfo-NB-v1430 OPTIONAL, -- Cond Redirection + extendedWaitTime-CPdata-r14 INTEGER (1..1800) OPTIONAL, -- Cond NoExtendedWaitTime + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +ReleaseCause-NB-r13 ::= ENUMERATED {loadBalancingTAUrequired, other, + rrc-Suspend, spare1} +RedirectedCarrierInfo-NB-r13::= CarrierFreq-NB-r13 + +RedirectedCarrierInfo-NB-v1430 ::= SEQUENCE { + redirectedCarrierOffsetDedicated-r14 ENUMERATED{ + dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24, dB26}, + t322-r14 ENUMERATED{ + min5, min10, min20, min30, min60, min120, min180, + spare1} +} + + +RRCConnectionRequest-NB ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionRequest-r13 RRCConnectionRequest-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRequest-NB-r13-IEs ::= SEQUENCE { + ue-Identity-r13 InitialUE-Identity, + establishmentCause-r13 EstablishmentCause-NB-r13, + multiToneSupport-r13 ENUMERATED {true} OPTIONAL, + multiCarrierSupport-r13 ENUMERATED {true} OPTIONAL, + spare BIT STRING (SIZE (22)) +} + + +RRCConnectionResume-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionResume-r13 RRCConnectionResume-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResume-NB-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13 OPTIONAL, -- Need ON + nextHopChainingCount-r13 NextHopChainingCount, + drb-ContinueROHC-r13 ENUMERATED {true} OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeComplete-NB-r13-IEs ::= SEQUENCE { + selectedPLMN-Identity-r13 INTEGER (1..maxPLMN-r11) OPTIONAL, + dedicatedInfoNAS-r13 DedicatedInfoNAS OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeRequest-NB ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeRequest-NB-r13-IEs ::= SEQUENCE { + resumeID-r13 ResumeIdentity-r13, + shortResumeMAC-I-r13 ShortMAC-I, + resumeCause-r13 EstablishmentCause-NB-r13, + spare BIT STRING (SIZE (9)) +} + + +RRCConnectionSetup-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionSetup-r13 RRCConnectionSetup-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetup-NB-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionSetupComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE{ + rrcConnectionSetupComplete-r13 RRCConnectionSetupComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetupComplete-NB-r13-IEs ::= SEQUENCE { + selectedPLMN-Identity-r13 INTEGER (1..maxPLMN-r11), + s-TMSI-r13 S-TMSI OPTIONAL, + registeredMME-r13 RegisteredMME OPTIONAL, + dedicatedInfoNAS-r13 DedicatedInfoNAS, + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL, + up-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-NB-v1430-IEs OPTIONAL +} + +RRCConnectionSetupComplete-NB-v1430-IEs ::= SEQUENCE { + gummei-Type-r14 ENUMERATED { mapped} OPTIONAL, + dcn-ID-r14 INTEGER (0..65535) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCPTMConfiguration-NB-r14 ::= SEQUENCE { + sc-mtch-InfoList-r14 SC-MTCH-InfoList-NB-r14, + scptm-NeighbourCellList-r14 SCPTM-NeighbourCellList-NB-r14 OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + systemInformation-r13 SystemInformation-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} +SystemInformation-NB-r13-IEs ::= SEQUENCE { + sib-TypeAndInfo-r13 SEQUENCE (SIZE (1..maxSIB)) OF CHOICE { + sib2-r13 SystemInformationBlockType2-NB-r13, + sib3-r13 SystemInformationBlockType3-NB-r13, + sib4-r13 SystemInformationBlockType4-NB-r13, + sib5-r13 SystemInformationBlockType5-NB-r13, + sib14-r13 SystemInformationBlockType14-NB-r13, + sib16-r13 SystemInformationBlockType16-NB-r13, + ..., + sib15-v1430 SystemInformationBlockType15-NB-r14, + sib20-v1430 SystemInformationBlockType20-NB-r14, + sib22-v1430 SystemInformationBlockType22-NB-r14 + }, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType1-NB ::= SEQUENCE { + hyperSFN-MSB-r13 BIT STRING (SIZE (8)), + cellAccessRelatedInfo-r13 SEQUENCE { + plmn-IdentityList-r13 PLMN-IdentityList-NB-r13, + trackingAreaCode-r13 TrackingAreaCode, + cellIdentity-r13 CellIdentity, + cellBarred-r13 ENUMERATED {barred, notBarred}, + intraFreqReselection-r13 ENUMERATED {allowed, notAllowed} + }, + cellSelectionInfo-r13 SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + q-QualMin-r13 Q-QualMin-r9 + }, + p-Max-r13 P-Max OPTIONAL, -- Need OP + freqBandIndicator-r13 FreqBandIndicator-NB-r13, + freqBandInfo-r13 NS-PmaxList-NB-r13 OPTIONAL, -- Need OR + multiBandInfoList-r13 MultiBandInfoList-NB-r13 OPTIONAL, -- Need OR + downlinkBitmap-r13 DL-Bitmap-NB-r13 OPTIONAL, -- Need OP, + eutraControlRegionSize-r13 ENUMERATED {n1, n2, n3} OPTIONAL, -- Cond inband + nrs-CRS-PowerOffset-r13 ENUMERATED {dB-6, dB-4dot77, dB-3, + dB-1dot77, dB0, dB1, + dB1dot23, dB2, dB3, + dB4, dB4dot23, dB5, + dB6, dB7, dB8, + dB9} OPTIONAL, -- Cond inband-SamePCI + schedulingInfoList-r13 SchedulingInfoList-NB-r13, + si-WindowLength-r13 ENUMERATED {ms160, ms320, ms480, ms640, + ms960, ms1280, ms1600, spare1}, + si-RadioFrameOffset-r13 INTEGER (1..15) OPTIONAL, -- Need OP + systemInfoValueTagList-r13 SystemInfoValueTagList-NB-r13 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SystemInformationBlockType1-NB-v1350 OPTIONAL +} + +SystemInformationBlockType1-NB-v1350 ::= SEQUENCE { + cellSelectionInfo-v1350 CellSelectionInfo-NB-v1350 OPTIONAL, -- Cond Qrxlevmin + nonCriticalExtension SystemInformationBlockType1-NB-v1430 OPTIONAL +} + +SystemInformationBlockType1-NB-v1430 ::= SEQUENCE { + cellSelectionInfo-v1430 CellSelectionInfo-NB-v1430 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-NB-v1450 OPTIONAL +} + +SystemInformationBlockType1-NB-v1450 ::= SEQUENCE { + nrs-CRS-PowerOffset-v1450 ENUMERATED {dB-6, dB-4dot77, dB-3, + dB-1dot77, dB0, dB1, + dB1dot23, dB2, dB3, + dB4, dB4dot23, dB5, + dB6, dB7, dB8, + dB9} OPTIONAL, -- Cond inband-SamePCI-ExceptAnchor + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PLMN-IdentityList-NB-r13 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo-NB-r13 + +PLMN-IdentityInfo-NB-r13 ::= SEQUENCE { + plmn-Identity-r13 PLMN-Identity, + cellReservedForOperatorUse-r13 ENUMERATED {reserved, notReserved}, + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL -- Need OP +} + +SchedulingInfoList-NB-r13 ::= SEQUENCE (SIZE (1..maxSI-Message-NB-r13)) OF SchedulingInfo-NB-r13 + +SchedulingInfo-NB-r13::= SEQUENCE { + si-Periodicity-r13 ENUMERATED {rf64, rf128, rf256, rf512, + rf1024, rf2048, rf4096, spare}, + si-RepetitionPattern-r13 ENUMERATED {every2ndRF, every4thRF, every8thRF, every16thRF}, + sib-MappingInfo-r13 SIB-MappingInfo-NB-r13, + si-TB-r13 ENUMERATED {b56, b120, b208, b256, b328, b440, b552, b680} +} + +SystemInfoValueTagList-NB-r13 ::= SEQUENCE (SIZE (1.. maxSI-Message-NB-r13)) OF + SystemInfoValueTagSI-r13 + +SIB-MappingInfo-NB-r13 ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type-NB-r13 + +SIB-Type-NB-r13 ::= ENUMERATED { + sibType3-NB-r13, sibType4-NB-r13, sibType5-NB-r13, + sibType14-NB-r13, sibType16-NB-r13, sibType15-NB-r14, + sibType20-NB-r14, sibType22-NB-r14} + +CellSelectionInfo-NB-v1350 ::= SEQUENCE { + delta-RxLevMin-v1350 INTEGER (-8..-1) +} + +CellSelectionInfo-NB-v1430 ::= SEQUENCE { + powerClass14dBm-Offset-r14 ENUMERATED {dB-6, dB-3, dB3, dB6, dB9, dB12} OPTIONAL, -- Need OP + ce-authorisationOffset-r14 ENUMERATED {dB5, dB10, dB15, dB20, dB25, dB30, dB35} OPTIONAL -- Need OP +} + + +UECapabilityEnquiry-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueCapabilityEnquiry-r13 UECapabilityEnquiry-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityEnquiry-NB-r13-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UECapabilityInformation-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE{ + ueCapabilityInformation-r13 UECapabilityInformation-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityInformation-NB-r13-IEs ::= SEQUENCE { + ue-Capability-r13 UE-Capability-NB-r13, + ue-RadioPagingInfo-r13 UE-RadioPagingInfo-NB-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UECapabilityInformation-NB-Ext-r14-IEs OPTIONAL +} + +UECapabilityInformation-NB-Ext-r14-IEs ::= SEQUENCE { + ue-Capability-ContainerExt-r14 OCTET STRING (CONTAINING UE-Capability-NB-Ext-r14-IEs), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +ULInformationTransfer-NB ::= SEQUENCE { + criticalExtensions CHOICE { + ulInformationTransfer-r13 ULInformationTransfer-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULInformationTransfer-NB-r13-IEs ::= SEQUENCE { + dedicatedInfoNAS-r13 DedicatedInfoNAS, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType2-NB-r13 ::= SEQUENCE { + radioResourceConfigCommon-r13 RadioResourceConfigCommonSIB-NB-r13, + ue-TimersAndConstants-r13 UE-TimersAndConstants-NB-r13, + freqInfo-r13 SEQUENCE { + ul-CarrierFreq-r13 CarrierFreq-NB-r13 OPTIONAL, -- Need OP + additionalSpectrumEmission-r13 AdditionalSpectrumEmission + }, + timeAlignmentTimerCommon-r13 TimeAlignmentTimer, + multiBandInfoList-r13 SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ cp-Reestablishment-r14 ENUMERATED {true} OPTIONAL -- Need OP + ]] +} + + +SystemInformationBlockType3-NB-r13 ::= SEQUENCE { + cellReselectionInfoCommon-r13 SEQUENCE { + q-Hyst-r13 ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24 + } + }, + cellReselectionServingFreqInfo-r13 SEQUENCE { + s-NonIntraSearch-r13 ReselectionThreshold + }, + intraFreqCellReselectionInfo-r13 SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + q-QualMin-r13 Q-QualMin-r9 OPTIONAL, -- Need OP + p-Max-r13 P-Max OPTIONAL, -- Need OP + s-IntraSearchP-r13 ReselectionThreshold, + t-Reselection-r13 T-Reselection-NB-r13 + }, + freqBandInfo-r13 NS-PmaxList-NB-r13 OPTIONAL, -- Need OR + multiBandInfoList-r13 SEQUENCE (SIZE (1..maxMultiBands)) OF + NS-PmaxList-NB-r13 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ intraFreqCellReselectionInfo-v1350 IntraFreqCellReselectionInfo-NB-v1350 OPTIONAL -- Cond Qrxlevmin + ]], + [[ intraFreqCellReselectionInfo-v1360 IntraFreqCellReselectionInfo-NB-v1360 OPTIONAL -- Need OR + ]], + [[ intraFreqCellReselectionInfo-v1430 IntraFreqCellReselectionInfo-NB-v1430 OPTIONAL -- Need OR + ]], + [[ cellReselectionInfoCommon-v1450 CellReselectionInfoCommon-NB-v1450 OPTIONAL -- Need OR + ]] +} + +IntraFreqCellReselectionInfo-NB-v1350 ::= SEQUENCE { + delta-RxLevMin-v1350 INTEGER (-8..-1) +} + +IntraFreqCellReselectionInfo-NB-v1360 ::= SEQUENCE { + s-IntraSearchP-v1360 ReselectionThreshold-NB-v1360 +} + +IntraFreqCellReselectionInfo-NB-v1430 ::= SEQUENCE { + powerClass14dBm-Offset-r14 ENUMERATED {dB-6, dB-3, dB3, dB6, dB9, dB12} OPTIONAL, -- Need OP + ce-AuthorisationOffset-r14 ENUMERATED {dB5, dB10, dB15, dB20, dB25, dB30, dB35} OPTIONAL -- Need OP +} + +CellReselectionInfoCommon-NB-v1450 ::= SEQUENCE { + s-SearchDeltaP-r14 ENUMERATED {dB6, dB9, dB12, dB15} +} + + +SystemInformationBlockType4-NB-r13 ::= SEQUENCE { + intraFreqNeighCellList-r13 IntraFreqNeighCellList OPTIONAL, -- Need OR + intraFreqBlackCellList-r13 IntraFreqBlackCellList OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + + +SystemInformationBlockType5-NB-r13 ::= SEQUENCE { + interFreqCarrierFreqList-r13 InterFreqCarrierFreqList-NB-r13, + t-Reselection-r13 T-Reselection-NB-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ scptm-FreqOffset-r14 INTEGER (1..8) OPTIONAL -- Need OP + ]] +} + + +InterFreqCarrierFreqList-NB-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-NB-r13 + + +InterFreqCarrierFreqInfo-NB-r13 ::= SEQUENCE { + dl-CarrierFreq-r13 CarrierFreq-NB-r13, + q-RxLevMin-r13 Q-RxLevMin, + q-QualMin-r13 Q-QualMin-r9 OPTIONAL, -- Need OP + p-Max-r13 P-Max OPTIONAL, -- Need OP + q-OffsetFreq-r13 Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList-r13 InterFreqNeighCellList-NB-r13 OPTIONAL, -- Need OR + interFreqBlackCellList-r13 InterFreqBlackCellList-NB-r13 OPTIONAL, -- Need OR + multiBandInfoList-r13 MultiBandInfoList-NB-r13 OPTIONAL, -- Need OR + ..., + [[ delta-RxLevMin-v1350 INTEGER (-8..-1) OPTIONAL -- Cond Qrxlevmin + ]], + [[ powerClass14dBm-Offset-r14 ENUMERATED {dB-6, dB-3, dB3, dB6, dB9, dB12} +OPTIONAL, -- Need OP + ce-AuthorisationOffset-r14 ENUMERATED {dB5, dB10, dB15, dB20, dB25, dB30, dB35} OPTIONAL -- Need OP + ]] +} + +InterFreqNeighCellList-NB-r13 ::= SEQUENCE (SIZE (1..maxCellInter)) OF PhysCellId + + +InterFreqBlackCellList-NB-r13 ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellId + + + +SystemInformationBlockType14-NB-r13 ::= SEQUENCE { + ab-Param-r13 CHOICE { + ab-Common-r13 AB-Config-NB-r13, + ab-PerPLMN-List-r13 SEQUENCE (SIZE (1..maxPLMN-r11)) OF AB-ConfigPLMN-NB-r13 + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +AB-ConfigPLMN-NB-r13 ::= SEQUENCE { + ab-Config-r13 AB-Config-NB-r13 OPTIONAL -- Need OR +} + +AB-Config-NB-r13 ::= SEQUENCE { + ab-Category-r13 ENUMERATED {a, b, c}, + ab-BarringBitmap-r13 BIT STRING (SIZE(10)), + ab-BarringForExceptionData-r13 ENUMERATED {true} OPTIONAL, -- Need OP + ab-BarringForSpecialAC-r13 BIT STRING (SIZE(5)) +} + + +SystemInformationBlockType15-NB-r14 ::= SEQUENCE { + mbms-SAI-IntraFreq-r14 MBMS-SAI-List-r11 OPTIONAL, -- Need OR + mbms-SAI-InterFreqList-r14 MBMS-SAI-InterFreqList-NB-r14 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +MBMS-SAI-InterFreqList-NB-r14 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-NB-r14 + +MBMS-SAI-InterFreq-NB-r14 ::= SEQUENCE { + dl-CarrierFreq-r14 CarrierFreq-NB-r13, + mbms-SAI-List-r14 MBMS-SAI-List-r11, + multiBandInfoList-r14 AdditionalBandInfoList-NB-r14 OPTIONAL -- Need OR +} + + +SystemInformationBlockType16-NB-r13 ::= SystemInformationBlockType16-r11 + + +SystemInformationBlockType20-NB-r14 ::= SEQUENCE { + npdcch-SC-MCCH-Config-r14 NPDCCH-SC-MCCH-Config-NB-r14, + sc-mcch-CarrierConfig-r14 CHOICE { + dl-CarrierConfig-r14 DL-CarrierConfigCommon-NB-r14, + dl-CarrierIndex-r14 INTEGER (0.. maxNonAnchorCarriers-NB-r14) + }, + sc-mcch-RepetitionPeriod-r14 ENUMERATED {rf32, rf128, rf512, rf1024, + rf2048, rf4096, rf8192, rf16384}, + sc-mcch-Offset-r14 INTEGER (0..10), + sc-mcch-ModificationPeriod-r14 ENUMERATED { rf32, rf128, rf256, rf512, rf1024, + rf2048, rf4096, rf8192, rf16384, rf32768, + rf65536, rf131072, rf262144, rf524288, + rf1048576, spare1}, + sc-mcch-SchedulingInfo-r14 SC-MCCH-SchedulingInfo-NB-r14 OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +NPDCCH-SC-MCCH-Config-NB-r14 ::= SEQUENCE { + npdcch-NumRepetitions-SC-MCCH-r14 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256, + r512, r1024, r2048}, + npdcch-StartSF-SC-MCCH-r14 ENUMERATED {v1dot5, v2, v4, v8, + v16, v32, v48, v64}, + npdcch-Offset-SC-MCCH-r14 ENUMERATED {zero, oneEighth, oneQuarter, + threeEighth, oneHalf, fiveEighth, + threeQuarter, sevenEighth} +} + +SC-MCCH-SchedulingInfo-NB-r14::= SEQUENCE { + onDurationTimerSCPTM-r14 ENUMERATED { + pp1, pp2, pp3, pp4, + pp8, pp16, pp32, spare}, + drx-InactivityTimerSCPTM-r14 ENUMERATED { + pp0, pp1, pp2, pp3, + pp4, pp8, pp16, pp32}, + schedulingPeriodStartOffsetSCPTM-r14 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2047), + sf4096 INTEGER(0..4095), + sf8192 INTEGER(0..8191) + }, + ... +} + + +SystemInformationBlockType22-NB-r14 ::= SEQUENCE { + dl-ConfigList-r14 DL-ConfigCommonList-NB-r14 OPTIONAL, -- Need OR + ul-ConfigList-r14 UL-ConfigCommonList-NB-r14 OPTIONAL, -- Need OR + pagingWeightAnchor-r14 PagingWeight-NB-r14 OPTIONAL, -- Cond pcch-config + nprach-ProbabilityAnchorList-r14 NPRACH-ProbabilityAnchorList-NB-r14 OPTIONAL, -- Cond nprach-config + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +DL-ConfigCommonList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNonAnchorCarriers-NB-r14)) OF + DL-ConfigCommon-NB-r14 + +UL-ConfigCommonList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNonAnchorCarriers-NB-r14)) OF + UL-ConfigCommon-NB-r14 + + +DL-ConfigCommon-NB-r14 ::= SEQUENCE { + dl-CarrierConfig-r14 DL-CarrierConfigCommon-NB-r14, + pcch-Config-r14 PCCH-Config-NB-r14 OPTIONAL, -- Need OR + ... +} + +PCCH-Config-NB-r14 ::= SEQUENCE { + npdcch-NumRepetitionPaging-r14 ENUMERATED { + r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1} OPTIONAL, -- Need OP + pagingWeight-r14 PagingWeight-NB-r14 DEFAULT w1, + ... +} + +PagingWeight-NB-r14 ::= ENUMERATED {w1, w2, w3, w4, w5, w6, w7, w8, + w9, w10, w11, w12, w13, w14, w15, w16} + +UL-ConfigCommon-NB-r14 ::= SEQUENCE { + ul-CarrierFreq-r14 CarrierFreq-NB-r13, + nprach-ParametersList-r14 NPRACH-ParametersList-NB-r14 OPTIONAL, -- Need OR + ... +} + +NPRACH-ParametersList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF + NPRACH-Parameters-NB-r14 + + +NPRACH-Parameters-NB-r14 ::= SEQUENCE { + nprach-Parameters-r14 SEQUENCE { + nprach-Periodicity-r14 ENUMERATED {ms40, ms80, ms160, ms240, + ms320, ms640, ms1280, ms2560} + OPTIONAL, -- NEED OP + nprach-StartTime-r14 ENUMERATED {ms8, ms16, ms32, ms64, + ms128, ms256, ms512, ms1024} + OPTIONAL, -- NEED OP + nprach-SubcarrierOffset-r14 ENUMERATED {n0, n12, n24, n36, n2, n18, n34, spare1} + OPTIONAL, -- NEED OP + nprach-NumSubcarriers-r14 ENUMERATED {n12, n24, n36, n48} + OPTIONAL, -- NEED OP + nprach-SubcarrierMSG3-RangeStart-r14 ENUMERATED {zero, oneThird, twoThird, one} + OPTIONAL, -- NEED OP + npdcch-NumRepetitions-RA-r14 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1} + OPTIONAL, -- NEED OP + npdcch-StartSF-CSS-RA-r14 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64} + OPTIONAL, -- NEED OP + npdcch-Offset-RA-r14 ENUMERATED {zero, oneEighth, oneFourth, threeEighth} + OPTIONAL, -- NEED OP + nprach-NumCBRA-StartSubcarriers-r14 ENUMERATED {n8, n10, n11, n12, n20, n22, n23, n24, + n32, n34, n35, n36, n40, n44, n46, n48} + OPTIONAL, -- NEED OP + npdcch-CarrierIndex-r14 INTEGER (1..maxNonAnchorCarriers-NB-r14) + OPTIONAL, -- Need OP + ... + } OPTIONAL -- Need OR +} + +NPRACH-ProbabilityAnchorList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF + NPRACH-ProbabilityAnchor-NB-r14 + +NPRACH-ProbabilityAnchor-NB-r14 ::= SEQUENCE { + nprach-ProbabilityAnchor-r14 ENUMERATED { + zero, oneSixteenth, oneFifteenth, oneFourteenth, + oneThirteenth, oneTwelfth, oneEleventh, oneTenth, + oneNinth, oneEighth, oneSeventh, oneSixth, + oneFifth, oneFourth, oneThird, oneHalf} + OPTIONAL -- Need OP +} + + +CarrierConfigDedicated-NB-r13 ::= SEQUENCE { + dl-CarrierConfig-r13 DL-CarrierConfigDedicated-NB-r13, + ul-CarrierConfig-r13 UL-CarrierConfigDedicated-NB-r13 +} + +DL-CarrierConfigDedicated-NB-r13 ::= SEQUENCE { + dl-CarrierFreq-r13 CarrierFreq-NB-r13, + downlinkBitmapNonAnchor-r13 CHOICE { + useNoBitmap-r13 NULL, + useAnchorBitmap-r13 NULL, + explicitBitmapConfiguration-r13 DL-Bitmap-NB-r13, + spare NULL + } OPTIONAL, -- Need ON + dl-GapNonAnchor-r13 CHOICE { + useNoGap-r13 NULL, + useAnchorGapConfig-r13 NULL, + explicitGapConfiguration-r13 DL-GapConfig-NB-r13, + spare NULL + } OPTIONAL, -- Need ON + inbandCarrierInfo-r13 SEQUENCE { + samePCI-Indicator-r13 CHOICE { + samePCI-r13 SEQUENCE { + indexToMidPRB-r13 INTEGER (-55..54) + }, + differentPCI-r13 SEQUENCE { + eutra-NumCRS-Ports-r13 ENUMERATED {same, four} + } + } OPTIONAL, -- Cond anchor-guardband + eutraControlRegionSize-r13 ENUMERATED {n1, n2, n3} + } OPTIONAL, -- Cond non-anchor-inband + ..., + [[ nrs-PowerOffsetNonAnchor-v1330 ENUMERATED {dB-12, dB-10, dB-8, dB-6, + dB-4, dB-2, dB0, dB3} + OPTIONAL -- Need ON + ]] +} + +UL-CarrierConfigDedicated-NB-r13 ::= SEQUENCE { + ul-CarrierFreq-r13 CarrierFreq-NB-r13 OPTIONAL, -- Need OP + ... +} + + +CarrierFreq-NB-r13 ::= SEQUENCE { + carrierFreq-r13 ARFCN-ValueEUTRA-r9, + carrierFreqOffset-r13 ENUMERATED { + v-10, v-9, v-8, v-7, v-6, v-5, v-4, v-3, v-2, v-1, v-0dot5, + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9 + } OPTIONAL -- Need ON +} + + +DL-Bitmap-NB-r13 ::= CHOICE { + subframePattern10-r13 BIT STRING (SIZE (10)), + subframePattern40-r13 BIT STRING (SIZE (40)) +} + + +DL-CarrierConfigCommon-NB-r14 ::= SEQUENCE { + dl-CarrierFreq-r14 CarrierFreq-NB-r13, + downlinkBitmapNonAnchor-r14 CHOICE { + useNoBitmap-r14 NULL, + useAnchorBitmap-r14 NULL, + explicitBitmapConfiguration-r14 DL-Bitmap-NB-r13 + }, + dl-GapNonAnchor-r14 CHOICE { + useNoGap-r14 NULL, + useAnchorGapConfig-r14 NULL, + explicitGapConfiguration-r14 DL-GapConfig-NB-r13 + }, + inbandCarrierInfo-r14 SEQUENCE { + samePCI-Indicator-r14 CHOICE { + samePCI-r14 SEQUENCE { + indexToMidPRB-r14 INTEGER (-55..54) + }, + differentPCI-r14 SEQUENCE { + eutra-NumCRS-Ports-r14 ENUMERATED {same, four} + } + } OPTIONAL, -- Cond anchor-guardband + eutraControlRegionSize-r14 ENUMERATED {n1, n2, n3} + } OPTIONAL, -- Cond non-anchor-inband + nrs-PowerOffsetNonAnchor-r14 ENUMERATED {dB-12, dB-10, dB-8, dB-6, + dB-4, dB-2, dB0, dB3} DEFAULT dB0, + ... +} + + + +DL-GapConfig-NB-r13 ::= SEQUENCE { + dl-GapThreshold-r13 ENUMERATED {n32, n64, n128, n256}, + dl-GapPeriodicity-r13 ENUMERATED {sf64, sf128, sf256, sf512}, + dl-GapDurationCoeff-r13 ENUMERATED {oneEighth, oneFourth, threeEighth, oneHalf} +} + + +LogicalChannelConfig-NB-r13 ::= SEQUENCE { + priority-r13 INTEGER (1..16) OPTIONAL, -- Cond UL + logicalChannelSR-Prohibit-r13 BOOLEAN OPTIONAL, -- Need ON + ... +} + + +MAC-MainConfig-NB-r13 ::= SEQUENCE { + ul-SCH-Config-r13 SEQUENCE { + periodicBSR-Timer-r13 PeriodicBSR-Timer-NB-r13 OPTIONAL, -- Need ON + retxBSR-Timer-r13 RetxBSR-Timer-NB-r13 + } OPTIONAL, -- Need ON + drx-Config-r13 DRX-Config-NB-r13 OPTIONAL, -- Need ON + timeAlignmentTimerDedicated-r13 TimeAlignmentTimer, + logicalChannelSR-Config-r13 CHOICE { + release NULL, + setup SEQUENCE { + logicalChannelSR-ProhibitTimer-r13 ENUMERATED { + pp2, pp8, pp32, pp128, pp512, + pp1024, pp2048, spare} + } + } OPTIONAL, -- Need ON + ..., + [[ rai-Activation-r14 ENUMERATED {true} OPTIONAL, -- Need OR + dataInactivityTimerConfig-r14 CHOICE { + release NULL, + setup SEQUENCE { + dataInactivityTimer-r14 DataInactivityTimer-r14 + } + } OPTIONAL -- Need ON + ]], + [[ drx-Cycle-v1430 ENUMERATED { + sf1280, sf2560, sf5120, sf10240} OPTIONAL -- Need ON + ]], + [[ ra-CFRA-Config-r14 ENUMERATED {true} OPTIONAL -- Need ON + ]] +} + +PeriodicBSR-Timer-NB-r13 ::= ENUMERATED { + pp2, pp4, pp8, pp16, pp64, pp128, infinity, spare} + +RetxBSR-Timer-NB-r13 ::= ENUMERATED { + pp4, pp16, pp64, pp128, pp256, pp512, infinity, spare} + +DRX-Config-NB-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + onDurationTimer-r13 ENUMERATED { + pp1, pp2, pp3, pp4, pp8, pp16, pp32, spare}, + drx-InactivityTimer-r13 ENUMERATED { + pp0, pp1, pp2, pp3, pp4, pp8, pp16, pp32}, + drx-RetransmissionTimer-r13 ENUMERATED { + pp0, pp1, pp2, pp4, pp6, pp8, pp16, pp24, + pp33, spare7, spare6, spare5, + spare4, spare3, spare2, spare1}, + drx-Cycle-r13 ENUMERATED { + sf256, sf512, sf1024, sf1536, sf2048, sf3072, + sf4096, sf4608, sf6144, sf7680, sf8192, sf9216, + spare4, spare3, spare2, spare1}, + drx-StartOffset-r13 INTEGER (0..255), + drx-ULRetransmissionTimer-r13 ENUMERATED { + pp0, pp1, pp2, pp4, pp6, pp8, pp16, pp24, + pp33, pp40, pp64, pp80, pp96, + pp112, pp128, pp160, pp320} + } +} + + + +NPDCCH-ConfigDedicated-NB-r13 ::= SEQUENCE { + npdcch-NumRepetitions-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1}, + npdcch-StartSF-USS-r13 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64}, + npdcch-Offset-USS-r13 ENUMERATED {zero, oneEighth, oneFourth, threeEighth} +} + + + +NPDSCH-ConfigCommon-NB-r13 ::= SEQUENCE { + nrs-Power-r13 INTEGER (-60..50) +} + + +NPRACH-ConfigSIB-NB-r13 ::= SEQUENCE { + nprach-CP-Length-r13 ENUMERATED {us66dot7, us266dot7}, + rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsNPRACH-InfoList-NB-r13 OPTIONAL, -- need OR + nprach-ParametersList-r13 NPRACH-ParametersList-NB-r13 +} + +NPRACH-ConfigSIB-NB-v1330 ::= SEQUENCE { + nprach-ParametersList-v1330 NPRACH-ParametersList-NB-v1330 +} + +NPRACH-ConfigSIB-NB-v1450 ::= SEQUENCE { + maxNumPreambleAttemptCE-r14 ENUMERATED {n3, n4, n5, n6, n7, n8, n10, spare1} +} + +NPRACH-ParametersList-NB-r13 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF NPRACH-Parameters-NB-r13 + +NPRACH-ParametersList-NB-v1330 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF NPRACH-Parameters-NB-v1330 + +NPRACH-Parameters-NB-r13::= SEQUENCE { + nprach-Periodicity-r13 ENUMERATED {ms40, ms80, ms160, ms240, + ms320, ms640, ms1280, ms2560}, + nprach-StartTime-r13 ENUMERATED {ms8, ms16, ms32, ms64, + ms128, ms256, ms512, ms1024}, + nprach-SubcarrierOffset-r13 ENUMERATED {n0, n12, n24, n36, n2, n18, n34, spare1}, + nprach-NumSubcarriers-r13 ENUMERATED {n12, n24, n36, n48}, + nprach-SubcarrierMSG3-RangeStart-r13 ENUMERATED {zero, oneThird, twoThird, one}, + maxNumPreambleAttemptCE-r13 ENUMERATED {n3, n4, n5, n6, n7, n8, n10, spare1}, + numRepetitionsPerPreambleAttempt-r13 ENUMERATED {n1, n2, n4, n8, n16, n32, n64, n128}, + npdcch-NumRepetitions-RA-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1}, + npdcch-StartSF-CSS-RA-r13 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64}, + npdcch-Offset-RA-r13 ENUMERATED {zero, oneEighth, oneFourth, threeEighth} +} + +NPRACH-Parameters-NB-v1330 ::= SEQUENCE { + nprach-NumCBRA-StartSubcarriers-r13 ENUMERATED {n8, n10, n11, n12, n20, n22, n23, n24, + n32, n34, n35, n36, n40, n44, n46, n48} +} + +RSRP-ThresholdsNPRACH-InfoList-NB-r13 ::= SEQUENCE (SIZE(1..2)) OF RSRP-Range + + +NPUSCH-ConfigCommon-NB-r13 ::= SEQUENCE { + ack-NACK-NumRepetitions-Msg4-r13 SEQUENCE (SIZE(1.. maxNPRACH-Resources-NB-r13)) OF + ACK-NACK-NumRepetitions-NB-r13, + srs-SubframeConfig-r13 ENUMERATED { + sc0, sc1, sc2, sc3, sc4, sc5, sc6, sc7, + sc8, sc9, sc10, sc11, sc12, sc13, sc14, sc15 + } OPTIONAL, -- Need OR + dmrs-Config-r13 SEQUENCE { + threeTone-BaseSequence-r13 INTEGER (0..12) OPTIONAL, -- Need OP + threeTone-CyclicShift-r13 INTEGER (0..2), + sixTone-BaseSequence-r13 INTEGER (0..14) OPTIONAL, -- Need OP + sixTone-CyclicShift-r13 INTEGER (0..3), + twelveTone-BaseSequence-r13 INTEGER (0..30) OPTIONAL -- Need OP + } OPTIONAL, -- Need OR + ul-ReferenceSignalsNPUSCH-r13 UL-ReferenceSignalsNPUSCH-NB-r13 +} + +UL-ReferenceSignalsNPUSCH-NB-r13 ::= SEQUENCE { + groupHoppingEnabled-r13 BOOLEAN, + groupAssignmentNPUSCH-r13 INTEGER (0..29) +} + +NPUSCH-ConfigDedicated-NB-r13 ::= SEQUENCE { + ack-NACK-NumRepetitions-r13 ACK-NACK-NumRepetitions-NB-r13 OPTIONAL, -- Need ON + npusch-AllSymbols-r13 BOOLEAN OPTIONAL, -- Cond SRS + groupHoppingDisabled-r13 ENUMERATED {true} OPTIONAL -- Need OR +} + +ACK-NACK-NumRepetitions-NB-r13 ::= ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128} + + + +PDCP-Config-NB-r13 ::= SEQUENCE { + discardTimer-r13 ENUMERATED { + ms5120, ms10240, ms20480, ms40960, + ms81920, infinity, spare2, spare1 + } OPTIONAL, -- Cond Setup + headerCompression-r13 CHOICE { + notUsed NULL, + rohc SEQUENCE { + maxCID-r13 INTEGER (1..16383) DEFAULT 15, + profiles-r13 SEQUENCE { + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + ... + } + }, + ... +} + + +PhysicalConfigDedicated-NB-r13 ::= SEQUENCE { + carrierConfigDedicated-r13 CarrierConfigDedicated-NB-r13 OPTIONAL, -- Need ON + npdcch-ConfigDedicated-r13 NPDCCH-ConfigDedicated-NB-r13 OPTIONAL, -- Need ON + npusch-ConfigDedicated-r13 NPUSCH-ConfigDedicated-NB-r13 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-r13 UplinkPowerControlDedicated-NB-r13 OPTIONAL, -- Need ON + ..., + [[ twoHARQ-ProcessesConfig-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ interferenceRandomisationConfig-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + + +RACH-ConfigCommon-NB-r13 ::= SEQUENCE { + preambleTransMax-CE-r13 PreambleTransMax, + powerRampingParameters-r13 PowerRampingParameters, + rach-InfoList-r13 RACH-InfoList-NB-r13, + connEstFailOffset-r13 INTEGER (0..15) OPTIONAL, -- Need OP + ..., + [[ powerRampingParameters-v1450 PowerRampingParameters-NB-v1450 OPTIONAL -- Need OR + ]] +} + +RACH-InfoList-NB-r13 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF RACH-Info-NB-r13 + +RACH-Info-NB-r13 ::= SEQUENCE { + ra-ResponseWindowSize-r13 ENUMERATED { + pp2, pp3, pp4, pp5, pp6, pp7, pp8, pp10}, + mac-ContentionResolutionTimer-r13 ENUMERATED { + pp1, pp2, pp3, pp4, pp8, pp16, pp32, pp64} +} + +PowerRampingParameters-NB-v1450 ::= SEQUENCE { + preambleInitialReceivedTargetPower-v1450 ENUMERATED { + dBm-130, dBm-128, dBm-126, dBm-124, dBm-122, + dBm-88, dBm-86, dBm-84,dBm-82, dBm-80} + OPTIONAL, -- Need OR + powerRampingParametersCE1-r14 SEQUENCE { + powerRampingStepCE1-r14 ENUMERATED {dB0, dB2, dB4, dB6}, + preambleInitialReceivedTargetPowerCE1-r14 ENUMERATED { + dBm-130, dBm-128, dBm-126, dBm-124, dBm-122, + dBm-120, dBm-118, dBm-116, dBm-114, dBm-112, + dBm-110, dBm-108, dBm-106, dBm-104, dBm-102, + dBm-100, dBm-98, dBm-96, dBm-94, dBm-92, + dBm-90, dBm-88, dBm-86, dBm-84, dBm-82, dBm-80} + } OPTIONAL -- Need OR +} + + +RadioResourceConfigCommonSIB-NB-r13 ::= SEQUENCE { + rach-ConfigCommon-r13 RACH-ConfigCommon-NB-r13, + bcch-Config-r13 BCCH-Config-NB-r13, + pcch-Config-r13 PCCH-Config-NB-r13, + nprach-Config-r13 NPRACH-ConfigSIB-NB-r13, + npdsch-ConfigCommon-r13 NPDSCH-ConfigCommon-NB-r13, + npusch-ConfigCommon-r13 NPUSCH-ConfigCommon-NB-r13, + dl-Gap-r13 DL-GapConfig-NB-r13 OPTIONAL, -- Need OP + uplinkPowerControlCommon-r13 UplinkPowerControlCommon-NB-r13, + ..., + [[ nprach-Config-v1330 NPRACH-ConfigSIB-NB-v1330 OPTIONAL -- Need OR + ]], + [[ nprach-Config-v1450 NPRACH-ConfigSIB-NB-v1450 OPTIONAL -- Cond EnhPowerControl + ]] +} + +BCCH-Config-NB-r13 ::= SEQUENCE { + modificationPeriodCoeff-r13 ENUMERATED {n16, n32, n64, n128} +} + + +PCCH-Config-NB-r13 ::= SEQUENCE { + defaultPagingCycle-r13 ENUMERATED {rf128, rf256, rf512, rf1024}, + nB-r13 ENUMERATED { + fourT, twoT, oneT, halfT, quarterT, one8thT, + one16thT, one32ndT, one64thT, + one128thT, one256thT, one512thT, one1024thT, + spare3, spare2, spare1}, + npdcch-NumRepetitionPaging-r13 ENUMERATED { + r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1} +} + + +RadioResourceConfigDedicated-NB-r13 ::= SEQUENCE { + srb-ToAddModList-r13 SRB-ToAddModList-NB-r13 OPTIONAL, -- Need ON + drb-ToAddModList-r13 DRB-ToAddModList-NB-r13 OPTIONAL, -- Need ON + drb-ToReleaseList-r13 DRB-ToReleaseList-NB-r13 OPTIONAL, -- Need ON + mac-MainConfig-r13 CHOICE { + explicitValue-r13 MAC-MainConfig-NB-r13, + defaultValue-r13 NULL + } OPTIONAL, -- Need ON + physicalConfigDedicated-r13 PhysicalConfigDedicated-NB-r13 OPTIONAL, -- Need ON + rlf-TimersAndConstants-r13 RLF-TimersAndConstants-NB-r13 OPTIONAL, -- Need ON + ... +} + +SRB-ToAddModList-NB-r13 ::= SEQUENCE (SIZE (1)) OF SRB-ToAddMod-NB-r13 + +SRB-ToAddMod-NB-r13 ::= SEQUENCE { + rlc-Config-r13 CHOICE { + explicitValue RLC-Config-NB-r13, + defaultValue NULL + } OPTIONAL, -- Cond Setup + logicalChannelConfig-r13 CHOICE { + explicitValue LogicalChannelConfig-NB-r13, + defaultValue NULL + } OPTIONAL, -- Cond Setup + ..., + [[ rlc-Config-v1430 RLC-Config-NB-v1430 OPTIONAL -- Need ON + ]] +} + +DRB-ToAddModList-NB-r13 ::= SEQUENCE (SIZE (1..maxDRB-NB-r13)) OF DRB-ToAddMod-NB-r13 + +DRB-ToAddMod-NB-r13 ::= SEQUENCE { + eps-BearerIdentity-r13 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity-r13 DRB-Identity, + pdcp-Config-r13 PDCP-Config-NB-r13 OPTIONAL, -- Cond Setup + rlc-Config-r13 RLC-Config-NB-r13 OPTIONAL, -- Cond Setup + logicalChannelIdentity-r13 INTEGER (3..10) OPTIONAL, -- Cond DRB-Setup + logicalChannelConfig-r13 LogicalChannelConfig-NB-r13 OPTIONAL, -- Cond Setup + ..., + [[ rlc-Config-v1430 RLC-Config-NB-v1430 OPTIONAL -- Need ON + ]] +} + +DRB-ToReleaseList-NB-r13 ::= SEQUENCE (SIZE (1..maxDRB-NB-r13)) OF DRB-Identity + + +RLC-Config-NB-r13 ::= CHOICE { + am SEQUENCE { + ul-AM-RLC-r13 UL-AM-RLC-NB-r13, + dl-AM-RLC-r13 DL-AM-RLC-NB-r13 + }, + ... +} + +RLC-Config-NB-v1430 ::= SEQUENCE { + t-Reordering-r14 T-Reordering OPTIONAL -- Cond twoHARQ +} + +UL-AM-RLC-NB-r13 ::= SEQUENCE { + t-PollRetransmit-r13 T-PollRetransmit-NB-r13, + maxRetxThreshold-r13 ENUMERATED {t1, t2, t3, t4, t6, t8, t16, t32} +} + +DL-AM-RLC-NB-r13 ::= SEQUENCE { + enableStatusReportSN-Gap-r13 ENUMERATED {true} OPTIONAL +} + +T-PollRetransmit-NB-r13 ::= ENUMERATED { + ms250, ms500, ms1000, ms2000, ms3000, ms4000, + ms6000, ms10000, ms15000, ms25000, ms40000, ms60000, + ms90000, ms120000, ms180000, spare1} + + + + +RLF-TimersAndConstants-NB-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + t301-r13 ENUMERATED { + ms2500, ms4000, ms6000, ms10000, + ms15000, ms25000, ms40000, ms60000}, + t310-r13 ENUMERATED { + ms0, ms200, ms500, ms1000, ms2000, ms4000, ms8000}, + n310-r13 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311-r13 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311-r13 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ..., + [[ t311-v1350 ENUMERATED { + ms40000, ms60000, ms90000, ms120000} + OPTIONAL -- Need OR + ]] + } +} + + + +UplinkPowerControlCommon-NB-r13 ::= SEQUENCE { + p0-NominalNPUSCH-r13 INTEGER (-126..24), + alpha-r13 ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1}, + deltaPreambleMsg3-r13 INTEGER (-1..6) +} + +UplinkPowerControlDedicated-NB-r13 ::= SEQUENCE { + p0-UE-NPUSCH-r13 INTEGER (-8..7) +} + + +AdditionalBandInfoList-NB-r14 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-NB-r13 + + +FreqBandIndicator-NB-r13 ::= INTEGER (1.. maxFBI2) + + +MultiBandInfoList-NB-r13 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF MultiBandInfo-NB-r13 + +MultiBandInfo-NB-r13 ::= SEQUENCE { + freqBandIndicator-r13 FreqBandIndicator-NB-r13 OPTIONAL, -- Need OR + freqBandInfo-r13 NS-PmaxList-NB-r13 OPTIONAL -- Need OR +} + + +NS-PmaxList-NB-r13 ::= SEQUENCE (SIZE (1..maxNS-Pmax-NB-r13)) OF NS-PmaxValue-NB-r13 + +NS-PmaxValue-NB-r13 ::= SEQUENCE { + additionalPmax-r13 P-Max OPTIONAL, -- Need OR + additionalSpectrumEmission-r13 AdditionalSpectrumEmission +} + + +ReselectionThreshold-NB-v1360 ::= INTEGER (32..63) + + +T-Reselection-NB-r13 ::= ENUMERATED {s0, s3, s6, s9, s12, s15, s18, s21} + + +EstablishmentCause-NB-r13 ::= ENUMERATED { + mt-Access, mo-Signalling, mo-Data, mo-ExceptionData, + delayTolerantAccess-v1330, spare3, spare2, spare1} + + +UE-Capability-NB-r13 ::= SEQUENCE { + accessStratumRelease-r13 AccessStratumRelease-NB-r13, + ue-Category-NB-r13 ENUMERATED {nb1} OPTIONAL, + multipleDRB-r13 ENUMERATED {supported} OPTIONAL, + pdcp-Parameters-r13 PDCP-Parameters-NB-r13 OPTIONAL, + phyLayerParameters-r13 PhyLayerParameters-NB-r13, + rf-Parameters-r13 RF-Parameters-NB-r13, + dummy SEQUENCE {} OPTIONAL +} + +UE-Capability-NB-Ext-r14-IEs ::= SEQUENCE { + ue-Category-NB-r14 ENUMERATED {nb2} OPTIONAL, + mac-Parameters-r14 MAC-Parameters-NB-r14 OPTIONAL, + phyLayerParameters-v1430 PhyLayerParameters-NB-v1430 OPTIONAL, + rf-Parameters-v1430 RF-Parameters-NB-v1430, + nonCriticalExtension UE-Capability-NB-v1440-IEs OPTIONAL +} + +UE-Capability-NB-v1440-IEs ::= SEQUENCE { + phyLayerParameters-v1440 PhyLayerParameters-NB-v1440 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AccessStratumRelease-NB-r13 ::= ENUMERATED {rel13, rel14, spare6, spare5, spare4, spare3, spare2, spare1, ...} + +PDCP-Parameters-NB-r13 ::= SEQUENCE { + supportedROHC-Profiles-r13 SEQUENCE { + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + maxNumberROHC-ContextSessions-r13 ENUMERATED {cs2, cs4, cs8, cs12} DEFAULT cs2, + ... +} + +MAC-Parameters-NB-r14 ::= SEQUENCE { + dataInactMon-r14 ENUMERATED {supported} OPTIONAL, + rai-Support-r14 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-NB-r13 ::= SEQUENCE { + multiTone-r13 ENUMERATED {supported} OPTIONAL, + multiCarrier-r13 ENUMERATED {supported} OPTIONAL + } + +PhyLayerParameters-NB-v1430 ::= SEQUENCE { + multiCarrier-NPRACH-r14 ENUMERATED {supported} OPTIONAL, + twoHARQ-Processes-r14 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-NB-v1440 ::= SEQUENCE { + interferenceRandomisation-r14 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-NB-r13 ::= SEQUENCE { + supportedBandList-r13 SupportedBandList-NB-r13, + multiNS-Pmax-r13 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-NB-v1430 ::= SEQUENCE { + powerClassNB-14dBm-r14 ENUMERATED {supported} OPTIONAL +} + +SupportedBandList-NB-r13 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBand-NB-r13 + +SupportedBand-NB-r13 ::= SEQUENCE { + band-r13 FreqBandIndicator-NB-r13, + powerClassNB-20dBm-r13 ENUMERATED {supported} OPTIONAL +} + + +UE-RadioPagingInfo-NB-r13 ::= SEQUENCE { + ue-Category-NB-r13 ENUMERATED {nb1} OPTIONAL, + ..., + [[ multiCarrierPaging-r14 ENUMERATED {true} OPTIONAL + ]] +} + + +UE-TimersAndConstants-NB-r13 ::= SEQUENCE { + t300-r13 ENUMERATED { + ms2500, ms4000, ms6000, ms10000, + ms15000, ms25000, ms40000, ms60000}, + t301-r13 ENUMERATED { + ms2500, ms4000, ms6000, ms10000, + ms15000, ms25000, ms40000, ms60000}, + t310-r13 ENUMERATED { + ms0, ms200, ms500, ms1000, ms2000, ms4000, ms8000}, + n310-r13 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311-r13 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311-r13 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ..., + [[ t311-v1350 ENUMERATED { + ms40000, ms60000, ms90000, ms120000} + OPTIONAL -- Need OR + ]] +} + + +SC-MTCH-InfoList-NB-r14 ::= SEQUENCE (SIZE (0.. maxSC-MTCH-NB-r14)) OF SC-MTCH-Info-NB-r14 + +SC-MTCH-Info-NB-r14 ::= SEQUENCE { + sc-mtch-CarrierConfig-r14 CHOICE { + dl-CarrierConfig-r14 DL-CarrierConfigCommon-NB-r14, + dl-CarrierIndex-r14 INTEGER (0.. maxNonAnchorCarriers-NB-r14) + }, + mbmsSessionInfo-r14 MBMSSessionInfo-r13, + g-RNTI-r14 BIT STRING(SIZE(16)), + sc-mtch-SchedulingInfo-r14 SC-MTCH-SchedulingInfo-NB-r14 OPTIONAL, -- Need OP + sc-mtch-NeighbourCell-r14 BIT STRING (SIZE(maxNeighCell-SCPTM-NB-r14)) OPTIONAL, -- Need OP + npdcch-NPDSCH-MaxTBS-SC-MTCH-r14 ENUMERATED {n680, n2536}, + npdcch-NumRepetitions-SC-MTCH-r14 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256, + r512, r1024, r2048, spare4, + spare3, spare2, spare1}, + npdcch-StartSF-SC-MTCH-r14 ENUMERATED {v1dot5, v2, v4, v8, + v16, v32, v48, v64}, + npdcch-Offset-SC-MTCH-r14 ENUMERATED {zero, oneEighth, oneQuarter, + threeEighth, oneHalf, fiveEighth, + threeQuarter, sevenEighth}, + ... +} + +SC-MTCH-SchedulingInfo-NB-r14 ::= SEQUENCE { + onDurationTimerSCPTM-r14 ENUMERATED { + pp1, pp2, pp3, pp4, + pp8, pp16, pp32, spare}, + drx-InactivityTimerSCPTM-r14 ENUMERATED { + pp0, pp1, pp2, pp3, + pp4, pp8, pp16, pp32}, + schedulingPeriodStartOffsetSCPTM-r14 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2047), + sf4096 INTEGER(0..4095), + sf8192 INTEGER(0..8191) + }, + ... +} + + +SCPTM-NeighbourCellList-NB-r14 ::= SEQUENCE (SIZE (1..maxNeighCell-SCPTM-NB-r14)) OF PCI-ARFCN-NB-r14 + +PCI-ARFCN-NB-r14 ::= SEQUENCE { + physCellId-r14 PhysCellId, + carrierFreq-r14 CarrierFreq-NB-r13 OPTIONAL -- Need OP +} + + +maxNPRACH-Resources-NB-r13 INTEGER ::= 3 -- Maximum number of NPRACH resources for NB-IoT +maxNonAnchorCarriers-NB-r14 INTEGER ::= 15 -- Maximum number of non-anchor carriers for NB-IoT +maxDRB-NB-r13 INTEGER ::= 2 -- Maximum number of Data Radio Bearers for NB-IoT +maxNeighCell-SCPTM-NB-r14 INTEGER ::= 8 -- Maximum number of SCPTM neighbour cells +maxNS-Pmax-NB-r13 INTEGER ::= 4 -- Maximum number of NS and P-Max values per band +maxSC-MTCH-NB-r14 INTEGER ::= 64 -- Maximum number of SC-MTCHs in one cell for NB-IoT +maxSI-Message-NB-r13 INTEGER ::= 8 -- Maximum number of SI messages for NB-IoT + + +END + + +EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AbsoluteTimeInfo-r10, + AreaConfiguration-r10, + AreaConfiguration-v1130, + CarrierFreqGERAN, + CellIdentity, + ConnEstFailReport-r11, + SpeedStateScaleFactors, + C-RNTI, + LoggingDuration-r10, + LoggingInterval-r10, + LogMeasInfo-r10, + MeasCSI-RS-Id-r12, + MeasId, + MeasId-v1250, + MeasIdToAddModList, + MeasIdToAddModListExt-r12, + MeasIdToAddModList-v1310, + MeasIdToAddModListExt-v1310, + MeasObjectToAddModList, + MeasObjectToAddModList-v9e0, + MeasObjectToAddModListExt-r13, + MeasScaleFactor-r12, + MobilityStateParameters, + NeighCellConfig, + PhysCellId, + PhysCellIdCDMA2000, + PhysCellIdGERAN, + PhysCellIdUTRA-FDD, + PhysCellIdUTRA-TDD, + PLMN-Identity, + PLMN-IdentityList3-r11, + QuantityConfig, + ReportConfigToAddModList, + RLF-Report-r9, + TargetMBSFN-AreaList-r12, + TraceReference-r10, + Tx-ResourcePoolMeasList-r14, + VisitedCellInfoList-r12, + maxCellMeas, + maxCSI-RS-Meas-r12, + maxMeasId, + maxMeasId-r12, + UL-DelayConfig-r13, + WLAN-CarrierInfo-r13, + WLAN-Identifiers-r12, + WLAN-Id-List-r13, + WLAN-Status-r13, + WLAN-Status-v1430, + WLAN-SuspendConfig-r14 + +FROM EUTRA-RRC-Definitions; + + +VarConnEstFailReport-r11 ::= SEQUENCE { + connEstFailReport-r11 ConnEstFailReport-r11, + plmn-Identity-r11 PLMN-Identity +} + + +VarLogMeasConfig-r10 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10 +} + +VarLogMeasConfig-r11 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10 +} + +VarLogMeasConfig-r12 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10, + targetMBSFN-AreaList-r12 TargetMBSFN-AreaList-r12 OPTIONAL +} + + +VarLogMeasReport-r10 ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + plmn-Identity-r10 PLMN-Identity, + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + logMeasInfoList-r10 LogMeasInfoList2-r10 +} + +VarLogMeasReport-r11 ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + plmn-IdentityList-r11 PLMN-IdentityList3-r11, + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + logMeasInfoList-r10 LogMeasInfoList2-r10 +} + +LogMeasInfoList2-r10 ::= SEQUENCE (SIZE (1..maxLogMeas-r10)) OF LogMeasInfo-r10 + + +VarMeasConfig ::= SEQUENCE { + -- Measurement identities + measIdList MeasIdToAddModList OPTIONAL, + measIdListExt-r12 MeasIdToAddModListExt-r12 OPTIONAL, + measIdList-v1310 MeasIdToAddModList-v1310 OPTIONAL, + measIdListExt-v1310 MeasIdToAddModListExt-v1310 OPTIONAL, + -- Measurement objects + measObjectList MeasObjectToAddModList OPTIONAL, + measObjectListExt-r13 MeasObjectToAddModListExt-r13 OPTIONAL, + measObjectList-v9i0 MeasObjectToAddModList-v9e0 OPTIONAL, + -- Reporting configurations + reportConfigList ReportConfigToAddModList OPTIONAL, + -- Other parameters + quantityConfig QuantityConfig OPTIONAL, + measScaleFactor-r12 MeasScaleFactor-r12 OPTIONAL, + s-Measure INTEGER (-140..-44) OPTIONAL, + speedStatePars CHOICE { + release NULL, + setup SEQUENCE { + mobilityStateParameters MobilityStateParameters, + timeToTrigger-SF SpeedStateScaleFactors + } + } OPTIONAL, + allowInterruptions-r11 BOOLEAN OPTIONAL +} + + +VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport +VarMeasReportList-r12 ::= SEQUENCE (SIZE (1..maxMeasId-r12)) OF VarMeasReport + +VarMeasReport ::= SEQUENCE { + -- List of measurement that have been triggered + measId MeasId, + measId-v1250 MeasId-v1250 OPTIONAL, + cellsTriggeredList CellsTriggeredList OPTIONAL, + csi-RS-TriggeredList-r12 CSI-RS-TriggeredList-r12 OPTIONAL, + poolsTriggeredList-r14 Tx-ResourcePoolMeasList-r14 OPTIONAL, + numberOfReportsSent INTEGER +} + +CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CHOICE { + physCellIdEUTRA PhysCellId, + physCellIdUTRA CHOICE { + fdd PhysCellIdUTRA-FDD, + tdd PhysCellIdUTRA-TDD + }, + physCellIdGERAN SEQUENCE { + carrierFreq CarrierFreqGERAN, + physCellId PhysCellIdGERAN + }, + physCellIdCDMA2000 PhysCellIdCDMA2000, + wlan-Identifiers-r13 WLAN-Identifiers-r12 +} + +CSI-RS-TriggeredList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Id-r12 + +VarMobilityHistoryReport-r12 ::= VisitedCellInfoList-r12 + + +VarRLF-Report-r10 ::= SEQUENCE { + rlf-Report-r10 RLF-Report-r9, + plmn-Identity-r10 PLMN-Identity +} + +VarRLF-Report-r11 ::= SEQUENCE { + rlf-Report-r10 RLF-Report-r9, + plmn-IdentityList-r11 PLMN-IdentityList3-r11 +} + + +VarShortMAC-Input ::= SEQUENCE { + cellIdentity CellIdentity, + physCellId PhysCellId, + c-RNTI C-RNTI +} + + +VarShortResumeMAC-Input-r13 ::= SEQUENCE { + cellIdentity-r13 CellIdentity, + physCellId-r13 PhysCellId, + c-RNTI-r13 C-RNTI, + resumeDiscriminator-r13 BIT STRING(SIZE(1)) +} + + +VarWLAN-MobilityConfig ::= SEQUENCE { + wlan-MobilitySet-r13 WLAN-Id-List-r13 OPTIONAL, + successReportRequested ENUMERATED {true} OPTIONAL, + wlan-SuspendConfig-r14 WLAN-SuspendConfig-r14 OPTIONAL +} + + +VarWLAN-Status-r13 ::= SEQUENCE { + status-r13 WLAN-Status-r13, + status-r14 WLAN-Status-v1430 OPTIONAL +} + + +maxLogMeas-r10 INTEGER ::= 4060-- Maximum number of logged measurement entries + -- that can be stored by the UE + + +END + + +NBIOT-UE-Variables DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + VarShortMAC-Input, + VarShortResumeMAC-Input-r13 + +FROM EUTRA-UE-Variables; + +VarShortMAC-Input-NB-r13 ::= VarShortMAC-Input + +VarShortResumeMAC-Input-NB-r13 ::= VarShortResumeMAC-Input-r13 + + +END + + +EUTRA-Sidelink-Preconf DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AdditionalSpectrumEmission, + AdditionalSpectrumEmission-v10l0, + ARFCN-ValueEUTRA-r9, + FilterCoefficient, + maxCBR-Level-r14, + maxCBR-Level-1-r14, + maxFreq, + maxFreqV2X-r14, + maxSL-TxPool-r12, + maxSL-CommRxPoolPreconf-v1310, + maxSL-CommTxPoolPreconf-v1310, + maxSL-DiscRxPoolPreconf-r13, + maxSL-DiscTxPoolPreconf-r13, + maxSL-V2X-CBRConfig2-r14, + maxSL-V2X-CBRConfig2-1-r14, + maxSL-V2X-RxPoolPreconf-r14, + maxSL-V2X-TxConfig2-r14, + maxSL-V2X-TxConfig2-1-r14, + maxSL-V2X-TxPoolPreconf-r14, + P-Max, + ReselectionInfoRelay-r13, + SL-AnchorCarrierFreqList-V2X-r14, + SL-CBR-Levels-Config-r14, + SL-CBR-PSSCH-TxConfig-r14, + SL-CommTxPoolSensingConfig-r14, + SL-CP-Len-r12, + SL-HoppingConfigComm-r12, + SL-OffsetIndicator-r12, + SL-OffsetIndicatorSync-r12, + SL-OffsetIndicatorSync-v1430, + SL-PeriodComm-r12, + RSRP-RangeSL3-r12, + SL-PriorityList-r13, + SL-TF-ResourceConfig-r12, + SL-TRPT-Subset-r12, + SL-TxParameters-r12, + SL-ZoneConfig-r14, + P0-SL-r12, + TDD-ConfigSL-r12, + SubframeBitmapSL-r14, + SL-P2X-ResourceSelectionConfig-r14, + SL-RestrictResourceReservationPeriodList-r14, + SL-SyncAllowed-r14, + SL-OffsetIndicatorSync-r14, + SL-Priority-r13 +FROM EUTRA-RRC-Definitions; + + +SL-Preconfiguration-r12 ::= SEQUENCE { + preconfigGeneral-r12 SL-PreconfigGeneral-r12, + preconfigSync-r12 SL-PreconfigSync-r12, + preconfigComm-r12 SL-PreconfigCommPoolList4-r12, + ..., + [[ preconfigComm-v1310 SEQUENCE { + commRxPoolList-r13 SL-PreconfigCommRxPoolList-r13, + commTxPoolList-r13 SL-PreconfigCommTxPoolList-r13 OPTIONAL + } OPTIONAL, + preconfigDisc-r13 SEQUENCE { + discRxPoolList-r13 SL-PreconfigDiscRxPoolList-r13, + discTxPoolList-r13 SL-PreconfigDiscTxPoolList-r13 OPTIONAL + } OPTIONAL, + preconfigRelay-r13 SL-PreconfigRelay-r13 OPTIONAL + ]] + +} + +SL-PreconfigGeneral-r12 ::= SEQUENCE { + -- PDCP configuration + rohc-Profiles-r12 SEQUENCE { + profile0x0001-r12 BOOLEAN, + profile0x0002-r12 BOOLEAN, + profile0x0004-r12 BOOLEAN, + profile0x0006-r12 BOOLEAN, + profile0x0101-r12 BOOLEAN, + profile0x0102-r12 BOOLEAN, + profile0x0104-r12 BOOLEAN + }, + -- Physical configuration + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + maxTxPower-r12 P-Max, + additionalSpectrumEmission-r12 AdditionalSpectrumEmission, + sl-bandwidth-r12 ENUMERATED {n6, n15, n25, n50, n75, n100}, + tdd-ConfigSL-r12 TDD-ConfigSL-r12, + reserved-r12 BIT STRING (SIZE (19)), + ..., + [[ additionalSpectrumEmission-v1440 AdditionalSpectrumEmission-v10l0 OPTIONAL + ]] +} + +SL-PreconfigSync-r12 ::= SEQUENCE { + syncCP-Len-r12 SL-CP-Len-r12, + syncOffsetIndicator1-r12 SL-OffsetIndicatorSync-r12, + syncOffsetIndicator2-r12 SL-OffsetIndicatorSync-r12, + syncTxParameters-r12 P0-SL-r12, + syncTxThreshOoC-r12 RSRP-RangeSL3-r12, + filterCoefficient-r12 FilterCoefficient, + syncRefMinHyst-r12 ENUMERATED {dB0, dB3, dB6, dB9, dB12}, + syncRefDiffHyst-r12 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf}, + ..., + [[ syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL + ]] +} + +SL-PreconfigCommPoolList4-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-PreconfigCommPool-r12 + +SL-PreconfigCommRxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-CommRxPoolPreconf-v1310)) OF SL-PreconfigCommPool-r12 + +SL-PreconfigCommTxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-CommTxPoolPreconf-v1310)) OF SL-PreconfigCommPool-r12 + +SL-PreconfigCommPool-r12 ::= SEQUENCE { +-- This IE is same as SL-CommResourcePool with rxParametersNCell absent + sc-CP-Len-r12 SL-CP-Len-r12, + sc-Period-r12 SL-PeriodComm-r12, + sc-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + sc-TxParameters-r12 P0-SL-r12, + data-CP-Len-r12 SL-CP-Len-r12, + data-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + dataHoppingConfig-r12 SL-HoppingConfigComm-r12, + dataTxParameters-r12 P0-SL-r12, + trpt-Subset-r12 SL-TRPT-Subset-r12, + ..., + [[ priorityList-r13 SL-PriorityList-r13 OPTIONAL -- For Tx + ]] +} + +SL-PreconfigDiscRxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-DiscRxPoolPreconf-r13)) OF SL-PreconfigDiscPool-r13 + +SL-PreconfigDiscTxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-DiscTxPoolPreconf-r13)) OF SL-PreconfigDiscPool-r13 + +SL-PreconfigDiscPool-r13 ::= SEQUENCE { +-- This IE is same as SL-DiscResourcePool with rxParameters absent + cp-Len-r13 SL-CP-Len-r12, + discPeriod-r13 ENUMERATED {rf4, rf6, rf7, rf8, rf12, rf14, rf16, rf24, rf28, + rf32, rf64, rf128, rf256, rf512, rf1024, spare}, + numRetx-r13 INTEGER (0..3), + numRepetition-r13 INTEGER (1..50), + tf-ResourceConfig-r13 SL-TF-ResourceConfig-r12, + txParameters-r13 SEQUENCE { + txParametersGeneral-r13 P0-SL-r12, + txProbability-r13 ENUMERATED {p25, p50, p75, p100} + } OPTIONAL, + ... +} + +SL-PreconfigRelay-r13 ::= SEQUENCE { + reselectionInfoOoC-r13 ReselectionInfoRelay-r13 +} + + +SL-V2X-Preconfiguration-r14 ::= SEQUENCE { + v2x-PreconfigFreqList-r14 SL-V2X-PreconfigFreqList-r14, + anchorCarrierFreqList-r14 SL-AnchorCarrierFreqList-V2X-r14 OPTIONAL, + cbr-PreconfigList-r14 SL-CBR-PreconfigTxConfigList-r14 OPTIONAL, + ... +} + +SL-CBR-PreconfigTxConfigList-r14 ::= SEQUENCE { + cbr-RangeCommonConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-CBRConfig2-r14)) OF SL-CBR-Levels-Config-r14, + sl-CBR-PSSCH-TxConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-TxConfig2-r14)) OF SL-CBR-PSSCH-TxConfig-r14 +} + +SL-V2X-PreconfigFreqList-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF SL-V2X-PreconfigFreqInfo-r14 + +SL-V2X-PreconfigFreqInfo-r14 ::= SEQUENCE { + v2x-CommPreconfigGeneral-r14 SL-PreconfigGeneral-r12, + v2x-CommPreconfigSync-r14 SL-PreconfigV2X-Sync-r14 OPTIONAL, + v2x-CommRxPoolList-r14 SL-PreconfigV2X-RxPoolList-r14, + v2x-CommTxPoolList-r14 SL-PreconfigV2X-TxPoolList-r14, + p2x-CommTxPoolList-r14 SL-PreconfigV2X-TxPoolList-r14, + v2x-ResourceSelectionConfig-r14 SL-CommTxPoolSensingConfig-r14 OPTIONAL, + zoneConfig-r14 SL-ZoneConfig-r14 OPTIONAL, + syncPriority-r14 ENUMERATED {gnss, enb}, + thresSL-TxPrioritization-r14 SL-Priority-r13 OPTIONAL, + offsetDFN-r14 INTEGER (0..1000) OPTIONAL, + ... +} + +SL-PreconfigV2X-RxPoolList-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-RxPoolPreconf-r14)) OF SL-V2X-PreconfigCommPool-r14 + +SL-PreconfigV2X-TxPoolList-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-TxPoolPreconf-r14)) OF SL-V2X-PreconfigCommPool-r14 + +SL-V2X-PreconfigCommPool-r14 ::= SEQUENCE { +-- This IE is same as SL-CommResourcePoolV2X with rxParametersNCell absent + sl-OffsetIndicator-r14 SL-OffsetIndicator-r12 OPTIONAL, + sl-Subframe-r14 SubframeBitmapSL-r14, + adjacencyPSCCH-PSSCH-r14 BOOLEAN, + sizeSubchannel-r14 ENUMERATED { + n4, n5, n6, n8, n9, n10, n12, n15, n16, n18, n20, n25, n30, + n48, n50, n72, n75, n96, n100, spare13, spare12, spare11, + spare10, spare9, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1}, + numSubchannel-r14 ENUMERATED {n1, n3, n5, n8, n10, n15, n20, spare1}, + startRB-Subchannel-r14 INTEGER (0..99), + startRB-PSCCH-Pool-r14 INTEGER (0..99) OPTIONAL, + dataTxParameters-r14 P0-SL-r12, + zoneID-r14 INTEGER (0..7) OPTIONAL, + threshS-RSSI-CBR-r14 INTEGER (0..45) OPTIONAL, + cbr-pssch-TxConfigList-r14 SL-CBR-PPPP-TxPreconfigList-r14 OPTIONAL, + resourceSelectionConfigP2X-r14 SL-P2X-ResourceSelectionConfig-r14 OPTIONAL, + syncAllowed-r14 SL-SyncAllowed-r14 OPTIONAL, + restrictResourceReservationPeriod-r14 SL-RestrictResourceReservationPeriodList-r14 OPTIONAL, -- Need OR + ... +} + +SL-PreconfigV2X-Sync-r14 ::= SEQUENCE { + syncOffsetIndicators-r14 SL-V2X-SyncOffsetIndicators-r14, + syncTxParameters-r14 P0-SL-r12, + syncTxThreshOoC-r14 RSRP-RangeSL3-r12, + filterCoefficient-r14 FilterCoefficient, + syncRefMinHyst-r14 ENUMERATED {dB0, dB3, dB6, dB9, dB12}, + syncRefDiffHyst-r14 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf}, + ... +} + +SL-V2X-SyncOffsetIndicators-r14 ::= SEQUENCE { + syncOffsetIndicator1-r14 SL-OffsetIndicatorSync-r14, + syncOffsetIndicator2-r14 SL-OffsetIndicatorSync-r14, + syncOffsetIndicator3-r14 SL-OffsetIndicatorSync-r14 OPTIONAL +} + +SL-CBR-PPPP-TxPreconfigList-r14 ::= SEQUENCE (SIZE (1..8)) OF SL-PPPP-TxPreconfigIndex-r14 + +SL-PPPP-TxPreconfigIndex-r14 ::= SEQUENCE { + priorityThreshold-r14 SL-Priority-r13, + defaultTxConfigIndex-r14 INTEGER(0..maxCBR-Level-1-r14), + cbr-ConfigIndex-r14 INTEGER(0..maxSL-V2X-CBRConfig2-1-r14), + tx-ConfigIndexList-r14 SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF Tx-PreconfigIndex-r14 +} + +Tx-PreconfigIndex-r14 ::= INTEGER(0..maxSL-V2X-TxConfig2-1-r14) + +END + + +EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AntennaInfoCommon, + AntennaInfoDedicated-v10i0, + ARFCN-ValueEUTRA, + ARFCN-ValueEUTRA-v9e0, + ARFCN-ValueEUTRA-r9, + CellIdentity, + C-RNTI, + DL-DCCH-Message, + DRB-Identity, + DRB-ToReleaseList, + FreqBandIndicator-r11, + InDeviceCoexIndication-r11, + LWA-Config-r13, + MasterInformationBlock, + maxBands, + maxFreq, + maxDRB, + maxSCell-r10, + maxSCell-r13, + maxServCell-r10, + maxServCell-r13, + MBMSInterestIndication-r11, + MeasConfig, + MeasGapConfig, + MeasGapConfigPerCC-List-r14, + MeasResultForRSSI-r13, + MeasResultListWLAN-r13, + OtherConfig-r9, + PhysCellId, + P-Max, + PowerCoordinationInfo-r12, + SidelinkUEInformation-r12, + SL-CommConfig-r12, + SL-DiscConfig-r12, + RadioResourceConfigDedicated, + RCLWI-Configuration-r13, + RSRP-Range, + RSRQ-Range, + RSRQ-Range-v1250, + RS-SINR-Range-r13, + SCellToAddModList-r10, + SCellToAddModListExt-r13, + SCG-ConfigPartSCG-r12, + SecurityAlgorithmConfig, + SCellIndex-r10, + SCellIndex-r13, + SCellToReleaseList-r10, + SCellToReleaseListExt-r13, + ServCellIndex-r10, + ServCellIndex-r13, + ShortMAC-I, + MeasResultSSTD-r13, + SL-V2X-ConfigDedicated-r14, + SystemInformationBlockType1, + SystemInformationBlockType1-v890-IEs, + SystemInformationBlockType2, + UEAssistanceInformation-r11, + UECapabilityInformation, + UE-CapabilityRAT-ContainerList, + UE-RadioPagingInfo-r12, + WLANConnectionStatusReport-r13, + WLAN-OffloadConfig-r12 +FROM EUTRA-RRC-Definitions; + + +HandoverCommand ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverCommand-r8 HandoverCommand-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverCommand-r8-IEs ::= SEQUENCE { + handoverCommandMessage OCTET STRING (CONTAINING DL-DCCH-Message), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +HandoverPreparationInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverPreparationInformation-r8 HandoverPreparationInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverPreparationInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo UE-CapabilityRAT-ContainerList, + as-Config AS-Config OPTIONAL, -- Cond HO + rrm-Config RRM-Config OPTIONAL, + as-Context AS-Context OPTIONAL, -- Cond HO + nonCriticalExtension HandoverPreparationInformation-v920-IEs OPTIONAL +} + +HandoverPreparationInformation-v920-IEs ::= SEQUENCE { + ue-ConfigRelease-r9 ENUMERATED { + rel9, rel10, rel11, rel12, v10j0, v11e0, + v1280, rel13, ..., rel14} OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v9d0-IEs OPTIONAL +} + +HandoverPreparationInformation-v9d0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING HandoverPreparationInformation-v9j0-IEs) OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-v9e0-IEs OPTIONAL +} + +-- Late non-critical extensions: +HandoverPreparationInformation-v9j0-IEs ::= SEQUENCE { + -- Following field is only for pre REL-10 late non-critical extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-v10j0-IEs OPTIONAL +} + +HandoverPreparationInformation-v10j0-IEs ::= SEQUENCE { + as-Config-v10j0 AS-Config-v10j0 OPTIONAL, + -- Following field is only for late non-critical extensions from REL-10 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +HandoverPreparationInformation-v9e0-IEs ::= SEQUENCE { + as-Config-v9e0 AS-Config-v9e0 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1130-IEs OPTIONAL +} + +HandoverPreparationInformation-v1130-IEs ::= SEQUENCE { + as-Context-v1130 AS-Context-v1130 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1250-IEs OPTIONAL +} + +HandoverPreparationInformation-v1250-IEs ::= SEQUENCE { + ue-SupportedEARFCN-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Cond HO3 + as-Config-v1250 AS-Config-v1250 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1320-IEs OPTIONAL +} + +HandoverPreparationInformation-v1320-IEs ::= SEQUENCE { + as-Config-v1320 AS-Config-v1320 OPTIONAL, -- Cond HO2 + as-Context-v1320 AS-Context-v1320 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1430-IEs OPTIONAL +} + +HandoverPreparationInformation-v1430-IEs ::= SEQUENCE { + as-Config-v1430 AS-Config-v1430 OPTIONAL, -- Cond HO2 + makeBeforeBreakReq-r14 ENUMERATED {true} OPTIONAL, -- Cond HO2 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCG-Config-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + scg-Config-r12 SCG-Config-r12-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCG-Config-r12-IEs ::= SEQUENCE { + scg-RadioConfig-r12 SCG-ConfigPartSCG-r12 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCG-ConfigInfo-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + scg-ConfigInfo-r12 SCG-ConfigInfo-r12-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCG-ConfigInfo-r12-IEs ::= SEQUENCE { + radioResourceConfigDedMCG-r12 RadioResourceConfigDedicated OPTIONAL, + sCellToAddModListMCG-r12 SCellToAddModList-r10 OPTIONAL, + measGapConfig-r12 MeasGapConfig OPTIONAL, + powerCoordinationInfo-r12 PowerCoordinationInfo-r12 OPTIONAL, + scg-RadioConfig-r12 SCG-ConfigPartSCG-r12 OPTIONAL, + eutra-CapabilityInfo-r12 OCTET STRING (CONTAINING UECapabilityInformation) OPTIONAL, + scg-ConfigRestrictInfo-r12 SCG-ConfigRestrictInfo-r12 OPTIONAL, + mbmsInterestIndication-r12 OCTET STRING (CONTAINING + MBMSInterestIndication-r11) OPTIONAL, + measResultServCellListSCG-r12 MeasResultServCellListSCG-r12 OPTIONAL, + drb-ToAddModListSCG-r12 DRB-InfoListSCG-r12 OPTIONAL, + drb-ToReleaseListSCG-r12 DRB-ToReleaseList OPTIONAL, + sCellToAddModListSCG-r12 SCellToAddModListSCG-r12 OPTIONAL, + sCellToReleaseListSCG-r12 SCellToReleaseList-r10 OPTIONAL, + p-Max-r12 P-Max OPTIONAL, + nonCriticalExtension SCG-ConfigInfo-v1310-IEs OPTIONAL +} + +SCG-ConfigInfo-v1310-IEs ::= SEQUENCE { + measResultSSTD-r13 MeasResultSSTD-r13 OPTIONAL, sCellToAddModListMCG-Ext-r13 SCellToAddModListExt-r13 OPTIONAL, + measResultServCellListSCG-Ext-r13 MeasResultServCellListSCG-Ext-r13 OPTIONAL, + sCellToAddModListSCG-Ext-r13 SCellToAddModListSCG-Ext-r13 OPTIONAL, + sCellToReleaseListSCG-Ext-r13 SCellToReleaseListExt-r13 OPTIONAL, + nonCriticalExtension SCG-ConfigInfo-v1330-IEs OPTIONAL +} + +SCG-ConfigInfo-v1330-IEs ::= SEQUENCE { + measResultListRSSI-SCG-r13 MeasResultListRSSI-SCG-r13 OPTIONAL, + nonCriticalExtension SCG-ConfigInfo-v1430-IEs OPTIONAL +} + +SCG-ConfigInfo-v1430-IEs ::= SEQUENCE { + makeBeforeBreakSCG-Req-r14 ENUMERATED {true} OPTIONAL, + measGapConfigPerCC-List MeasGapConfigPerCC-List-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-InfoListSCG-r12 ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-InfoSCG-r12 + +DRB-InfoSCG-r12 ::= SEQUENCE { + eps-BearerIdentity-r12 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity-r12 DRB-Identity, + drb-Type-r12 ENUMERATED {split, scg} OPTIONAL, -- Cond DRB-Setup + ... +} + +SCellToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF Cell-ToAddMod-r12 + +SCellToAddModListSCG-Ext-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF Cell-ToAddMod-r12 + +Cell-ToAddMod-r12 ::= SEQUENCE { + sCellIndex-r12 SCellIndex-r10, + cellIdentification-r12 SEQUENCE { + physCellId-r12 PhysCellId, + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + measResultCellToAdd-r12 SEQUENCE { + rsrpResult-r12 RSRP-Range, + rsrqResult-r12 RSRQ-Range + } OPTIONAL, -- Cond SCellAdd2 + ..., + [[ sCellIndex-r13 SCellIndex-r13 OPTIONAL, + measResultCellToAdd-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL -- Cond SCellAdd2 + ]] +} + +MeasResultServCellListSCG-r12 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF MeasResultServCellSCG-r12 + +MeasResultServCellListSCG-Ext-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultServCellSCG-r12 + +MeasResultServCellSCG-r12 ::= SEQUENCE { + servCellId-r12 ServCellIndex-r10, + measResultSCell-r12 SEQUENCE { + rsrpResultSCell-r12 RSRP-Range, + rsrqResultSCell-r12 RSRQ-Range + }, + ..., + [[ servCellId-r13 ServCellIndex-r13 OPTIONAL, + measResultSCell-v1310 SEQUENCE { + rs-sinr-ResultSCell-r13 RS-SINR-Range-r13 + } OPTIONAL + ]] +} + +MeasResultListRSSI-SCG-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultRSSI-SCG-r13 + +MeasResultRSSI-SCG-r13 ::= SEQUENCE { + servCellId-r13 ServCellIndex-r13, + measResultForRSSI-r13 MeasResultForRSSI-r13 +} + +SCG-ConfigRestrictInfo-r12 ::= SEQUENCE { + maxSCH-TB-BitsDL-r12 INTEGER (1..100), + maxSCH-TB-BitsUL-r12 INTEGER (1..100) +} + + +UEPagingCoverageInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + uePagingCoverageInformation-r13 UEPagingCoverageInformation-r13-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEPagingCoverageInformation-r13-IEs ::= SEQUENCE { + mpdcch-NumRepetition-r13 INTEGER (1..256) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioAccessCapabilityInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioAccessCapabilityInformation-r8 + UERadioAccessCapabilityInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioPagingInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioPagingInformation-r12 UERadioPagingInformation-r12-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioPagingInformation-r12-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r12 OCTET STRING (CONTAINING UE-RadioPagingInfo-r12), + nonCriticalExtension UERadioPagingInformation-v1310-IEs OPTIONAL +} + +UERadioPagingInformation-v1310-IEs ::= SEQUENCE { + supportedBandListEUTRAForPaging-r13 SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicator-r11 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL + +} + + +AS-Config ::= SEQUENCE { + sourceMeasConfig MeasConfig, + sourceRadioResourceConfig RadioResourceConfigDedicated, + sourceSecurityAlgorithmConfig SecurityAlgorithmConfig, + sourceUE-Identity C-RNTI, + sourceMasterInformationBlock MasterInformationBlock, + sourceSystemInformationBlockType1 SystemInformationBlockType1(WITH COMPONENTS + {..., nonCriticalExtension ABSENT}), + sourceSystemInformationBlockType2 SystemInformationBlockType2, + antennaInfoCommon AntennaInfoCommon, + sourceDl-CarrierFreq ARFCN-ValueEUTRA, + ..., + [[ sourceSystemInformationBlockType1Ext OCTET STRING (CONTAINING + SystemInformationBlockType1-v890-IEs) OPTIONAL, + sourceOtherConfig-r9 OtherConfig-r9 + -- sourceOtherConfig-r9 should have been optional. A target eNB compliant with this transfer + -- syntax should support receiving an AS-Config not including this extension addition group + -- e.g. from a legacy source eNB + ]], + [[ sourceSCellConfigList-r10 SCellToAddModList-r10 OPTIONAL + ]], + [[ sourceConfigSCG-r12 SCG-Config-r12 OPTIONAL + ]] +} + +AS-Config-v9e0 ::= SEQUENCE { + sourceDl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +AS-Config-v10j0 ::= SEQUENCE { + antennaInfoDedicatedPCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL +} + +AS-Config-v1250 ::= SEQUENCE { + sourceWlan-OffloadConfig-r12 WLAN-OffloadConfig-r12 OPTIONAL, + sourceSL-CommConfig-r12 SL-CommConfig-r12 OPTIONAL, + sourceSL-DiscConfig-r12 SL-DiscConfig-r12 OPTIONAL +} + +AS-Config-v1320 ::= SEQUENCE { + sourceSCellConfigList-r13 SCellToAddModListExt-r13 OPTIONAL, + sourceRCLWI-Configuration-r13 RCLWI-Configuration-r13 OPTIONAL +} + +AS-Config-v1430 ::= SEQUENCE { + sourceSL-V2X-CommConfig-r14 SL-V2X-ConfigDedicated-r14 OPTIONAL, + sourceLWA-Config-r14 LWA-Config-r13 OPTIONAL, + sourceWLAN-MeasResult-r14 MeasResultListWLAN-r13 OPTIONAL +} + + +AS-Context ::= SEQUENCE { + reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO +} + +AS-Context-v1130 ::= SEQUENCE { + idc-Indication-r11 OCTET STRING (CONTAINING + InDeviceCoexIndication-r11) OPTIONAL, -- Cond HO2 + mbmsInterestIndication-r11 OCTET STRING (CONTAINING + MBMSInterestIndication-r11) OPTIONAL, -- Cond HO2 + powerPrefIndication-r11 OCTET STRING (CONTAINING + UEAssistanceInformation-r11) OPTIONAL, -- Cond HO2 + ..., + [[ sidelinkUEInformation-r12 OCTET STRING (CONTAINING + SidelinkUEInformation-r12) OPTIONAL -- Cond HO2 + ]] +} + +AS-Context-v1320 ::= SEQUENCE { + wlanConnectionStatusReport-r13 OCTET STRING (CONTAINING + WLANConnectionStatusReport-r13) OPTIONAL -- Cond HO2 +} + + +ReestablishmentInfo ::= SEQUENCE { + sourcePhysCellId PhysCellId, + targetCellShortMAC-I ShortMAC-I, + additionalReestabInfoList AdditionalReestabInfoList OPTIONAL, + ... +} + +AdditionalReestabInfoList ::= SEQUENCE ( SIZE (1..maxReestabInfo) ) OF AdditionalReestabInfo + +AdditionalReestabInfo ::= SEQUENCE{ + cellIdentity CellIdentity, + key-eNodeB-Star Key-eNodeB-Star, + shortMAC-I ShortMAC-I +} + +Key-eNodeB-Star ::= BIT STRING (SIZE (256)) + + +RRM-Config ::= SEQUENCE { + ue-InactiveTime ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, + s25, s30, s40, s50, min1, min1s20c, min1s40, + min2, min2s30, min3, min3s30, min4, min5, min6, + min7, min8, min9, min10, min12, min14, min17, min20, + min24, min28, min33, min38, min44, min50, hr1, + hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6, + hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2, + day2hr12, day3, day4, day5, day7, day10, day14, day19, + day24, day30, dayMoreThan30} OPTIONAL, + ..., + [[ candidateCellInfoList-r10 CandidateCellInfoList-r10 OPTIONAL + ]] +} + +CandidateCellInfoList-r10 ::= SEQUENCE (SIZE (1..maxFreq)) OF CandidateCellInfo-r10 + +CandidateCellInfo-r10 ::= SEQUENCE { + -- cellIdentification + physCellId-r10 PhysCellId, + dl-CarrierFreq-r10 ARFCN-ValueEUTRA, + -- available measurement results + rsrpResult-r10 RSRP-Range OPTIONAL, + rsrqResult-r10 RSRQ-Range OPTIONAL, + ..., + [[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL + ]], + [[ rsrqResult-v1250 RSRQ-Range-v1250 OPTIONAL + ]], + [[ rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL + ]] +} + + +maxReestabInfo INTEGER ::= 32 -- Maximum number of KeNB* and shortMAC-I forwarded + -- at handover for re-establishment preparation + + +END + + +NBIOT-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + C-RNTI, + PhysCellId, + SecurityAlgorithmConfig, + ShortMAC-I +FROM EUTRA-RRC-Definitions + + AdditionalReestabInfoList +FROM EUTRA-InterNodeDefinitions + + CarrierFreq-NB-r13, + RadioResourceConfigDedicated-NB-r13, + UECapabilityInformation-NB, + UE-Capability-NB-r13, + UE-Capability-NB-Ext-r14-IEs, + UE-RadioPagingInfo-NB-r13 +FROM NBIOT-RRC-Definitions; + + +HandoverPreparationInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverPreparationInformation-r13 HandoverPreparationInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverPreparationInformation-NB-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo-r13 UE-Capability-NB-r13, + as-Config-r13 AS-Config-NB, + rrm-Config-r13 RRM-Config-NB OPTIONAL, + as-Context-r13 AS-Context-NB OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-NB-v1380-IEs OPTIONAL +} + +HandoverPreparationInformation-NB-v1380-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-NB-Ext-r14-IEs OPTIONAL +} + +HandoverPreparationInformation-NB-Ext-r14-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfoExt-r14 OCTET STRING (CONTAINING UE-Capability-NB-Ext-r14-IEs) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEPagingCoverageInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + uePagingCoverageInformation-r13 UEPagingCoverageInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEPagingCoverageInformation-NB-IEs ::= SEQUENCE { +-- the possible value(s) can differ from those sent on Uu + npdcch-NumRepetitionPaging-r13 INTEGER (1..2048) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioAccessCapabilityInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioAccessCapabilityInformation-r13 + UERadioAccessCapabilityInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioAccessCapabilityInformation-NB-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo-r13 OCTET STRING (CONTAINING UE-Capability-NB-r13), + nonCriticalExtension UERadioAccessCapabilityInformation-NB-v1380-IEs OPTIONAL +} + +UERadioAccessCapabilityInformation-NB-v1380-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UERadioAccessCapabilityInformation-NB-r14-IEs OPTIONAL +} + +UERadioAccessCapabilityInformation-NB-r14-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo-r14 OCTET STRING (CONTAINING UECapabilityInformation-NB) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioPagingInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioPagingInformation-r13 UERadioPagingInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioPagingInformation-NB-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r13 OCTET STRING (CONTAINING UE-RadioPagingInfo-NB-r13), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +AS-Config-NB ::= SEQUENCE { + sourceRadioResourceConfig-r13 RadioResourceConfigDedicated-NB-r13, + sourceSecurityAlgorithmConfig-r13 SecurityAlgorithmConfig, + sourceUE-Identity-r13 C-RNTI, + sourceDl-CarrierFreq-r13 CarrierFreq-NB-r13, + ... +} + + +AS-Context-NB ::= SEQUENCE { + reestablishmentInfo-r13 ReestablishmentInfo-NB OPTIONAL, + ... +} + + +ReestablishmentInfo-NB ::= SEQUENCE { + sourcePhysCellId-r13 PhysCellId, + targetCellShortMAC-I-r13 ShortMAC-I, + additionalReestabInfoList-r13 AdditionalReestabInfoList OPTIONAL, + ... +} + + + + +RRM-Config-NB ::= SEQUENCE { + ue-InactiveTime ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, + s25, s30, s40, s50, min1, min1s20, min1s40, + min2, min2s30, min3, min3s30, min4, min5, min6, + min7, min8, min9, min10, min12, min14, min17, min20, + min24, min28, min33, min38, min44, min50, hr1, + hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6, + hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2, + day2hr12, day3, day4, day5, day7, day10, day14, day19, + day24, day30, dayMoreThan30} OPTIONAL, + ... +} + + +END + + diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-14.7.0.asn1 b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-14.7.0.asn1 new file mode 100755 index 0000000000..0ae28bba4c --- /dev/null +++ b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-14.7.0.asn1 @@ -0,0 +1,14414 @@ + +EUTRA-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + + +BCCH-BCH-Message ::= SEQUENCE { + message BCCH-BCH-MessageType +} + +BCCH-BCH-MessageType ::= MasterInformationBlock + + +BCCH-BCH-Message-MBMS::= SEQUENCE { + message BCCH-BCH-MessageType-MBMS-r14 +} + +BCCH-BCH-MessageType-MBMS-r14 ::= MasterInformationBlock-MBMS-r14 + + +BCCH-DL-SCH-Message ::= SEQUENCE { + message BCCH-DL-SCH-MessageType +} + +BCCH-DL-SCH-MessageType ::= CHOICE { + c1 CHOICE { + systemInformation SystemInformation, + systemInformationBlockType1 SystemInformationBlockType1 + }, + messageClassExtension SEQUENCE {} +} + + +BCCH-DL-SCH-Message-BR ::= SEQUENCE { + message BCCH-DL-SCH-MessageType-BR-r13 +} + +BCCH-DL-SCH-MessageType-BR-r13 ::= CHOICE { + c1 CHOICE { + systemInformation-BR-r13 SystemInformation-BR-r13, + systemInformationBlockType1-BR-r13 SystemInformationBlockType1-BR-r13 + }, + messageClassExtension SEQUENCE {} +} + + +BCCH-DL-SCH-Message-MBMS ::= SEQUENCE { + message BCCH-DL-SCH-MessageType-MBMS-r14 +} + +BCCH-DL-SCH-MessageType-MBMS-r14 ::= CHOICE { + c1 CHOICE { + systemInformation-MBMS-r14 SystemInformation-MBMS-r14, + systemInformationBlockType1-MBMS-r14 SystemInformationBlockType1-MBMS-r14 + }, + messageClassExtension SEQUENCE {} +} + + +MCCH-Message ::= SEQUENCE { + message MCCH-MessageType +} + +MCCH-MessageType ::= CHOICE { + c1 CHOICE { + mbsfnAreaConfiguration-r9 MBSFNAreaConfiguration-r9 + }, + later CHOICE { + c2 CHOICE{ + mbmsCountingRequest-r10 MBMSCountingRequest-r10 + }, + messageClassExtension SEQUENCE {} + } +} + + +PCCH-Message ::= SEQUENCE { + message PCCH-MessageType +} + +PCCH-MessageType ::= CHOICE { + c1 CHOICE { + paging Paging + }, + messageClassExtension SEQUENCE {} +} + + +DL-CCCH-Message ::= SEQUENCE { + message DL-CCCH-MessageType +} + +DL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishment RRCConnectionReestablishment, + rrcConnectionReestablishmentReject RRCConnectionReestablishmentReject, + rrcConnectionReject RRCConnectionReject, + rrcConnectionSetup RRCConnectionSetup + }, + messageClassExtension SEQUENCE {} +} + + +DL-DCCH-Message ::= SEQUENCE { + message DL-DCCH-MessageType +} + +DL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + csfbParametersResponseCDMA2000 CSFBParametersResponseCDMA2000, + dlInformationTransfer DLInformationTransfer, + handoverFromEUTRAPreparationRequest HandoverFromEUTRAPreparationRequest, + mobilityFromEUTRACommand MobilityFromEUTRACommand, + rrcConnectionReconfiguration RRCConnectionReconfiguration, + rrcConnectionRelease RRCConnectionRelease, + securityModeCommand SecurityModeCommand, + ueCapabilityEnquiry UECapabilityEnquiry, + counterCheck CounterCheck, + ueInformationRequest-r9 UEInformationRequest-r9, + loggedMeasurementConfiguration-r10 LoggedMeasurementConfiguration-r10, + rnReconfiguration-r10 RNReconfiguration-r10, + rrcConnectionResume-r13 RRCConnectionResume-r13, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +UL-CCCH-Message ::= SEQUENCE { + message UL-CCCH-MessageType +} + +UL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishmentRequest RRCConnectionReestablishmentRequest, + rrcConnectionRequest RRCConnectionRequest + }, + messageClassExtension CHOICE { + c2 CHOICE { + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-r13 + }, + messageClassExtensionFuture-r13 SEQUENCE {} + } +} + + +UL-DCCH-Message ::= SEQUENCE { + message UL-DCCH-MessageType +} + +UL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + csfbParametersRequestCDMA2000 CSFBParametersRequestCDMA2000, + measurementReport MeasurementReport, + rrcConnectionReconfigurationComplete RRCConnectionReconfigurationComplete, + rrcConnectionReestablishmentComplete RRCConnectionReestablishmentComplete, + rrcConnectionSetupComplete RRCConnectionSetupComplete, + securityModeComplete SecurityModeComplete, + securityModeFailure SecurityModeFailure, + ueCapabilityInformation UECapabilityInformation, + ulHandoverPreparationTransfer ULHandoverPreparationTransfer, + ulInformationTransfer ULInformationTransfer, + counterCheckResponse CounterCheckResponse, + ueInformationResponse-r9 UEInformationResponse-r9, + proximityIndication-r9 ProximityIndication-r9, + rnReconfigurationComplete-r10 RNReconfigurationComplete-r10, + mbmsCountingResponse-r10 MBMSCountingResponse-r10, + interFreqRSTDMeasurementIndication-r10 InterFreqRSTDMeasurementIndication-r10 + }, + messageClassExtension CHOICE { + c2 CHOICE { + ueAssistanceInformation-r11 UEAssistanceInformation-r11, + inDeviceCoexIndication-r11 InDeviceCoexIndication-r11, + mbmsInterestIndication-r11 MBMSInterestIndication-r11, + scgFailureInformation-r12 SCGFailureInformation-r12, + sidelinkUEInformation-r12 SidelinkUEInformation-r12, + wlanConnectionStatusReport-r13 WLANConnectionStatusReport-r13, + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-r13, + spare9 NULL, spare8 NULL, spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtensionFuture-r11 SEQUENCE {} + } +} + + +SC-MCCH-Message-r13 ::= SEQUENCE { + message SC-MCCH-MessageType-r13 +} + + +SC-MCCH-MessageType-r13 ::= CHOICE { + c1 CHOICE { + scptmConfiguration-r13 SCPTMConfiguration-r13 + }, + messageClassExtension CHOICE { + c2 CHOICE { + scptmConfiguration-BR-r14 SCPTMConfiguration-BR-r14, + spare NULL + }, + messageClassExtensionFuture-r14 SEQUENCE {} + } +} + + +CounterCheck ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + counterCheck-r8 CounterCheck-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheck-r8-IEs ::= SEQUENCE { + drb-CountMSB-InfoList DRB-CountMSB-InfoList, + nonCriticalExtension CounterCheck-v8a0-IEs OPTIONAL +} + +CounterCheck-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-CountMSB-InfoList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-CountMSB-Info + +DRB-CountMSB-Info ::= SEQUENCE { + drb-Identity DRB-Identity, + countMSB-Uplink INTEGER(0..33554431), + countMSB-Downlink INTEGER(0..33554431) +} + + +CounterCheckResponse ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + counterCheckResponse-r8 CounterCheckResponse-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheckResponse-r8-IEs ::= SEQUENCE { + drb-CountInfoList DRB-CountInfoList, + nonCriticalExtension CounterCheckResponse-v8a0-IEs OPTIONAL +} + +CounterCheckResponse-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-CountInfoList ::= SEQUENCE (SIZE (0..maxDRB)) OF DRB-CountInfo + +DRB-CountInfo ::= SEQUENCE { + drb-Identity DRB-Identity, + count-Uplink INTEGER(0..4294967295), + count-Downlink INTEGER(0..4294967295) +} + + +CSFBParametersRequestCDMA2000 ::= SEQUENCE { + criticalExtensions CHOICE { + csfbParametersRequestCDMA2000-r8 CSFBParametersRequestCDMA2000-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CSFBParametersRequestCDMA2000-r8-IEs ::= SEQUENCE { + nonCriticalExtension CSFBParametersRequestCDMA2000-v8a0-IEs OPTIONAL +} + +CSFBParametersRequestCDMA2000-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +CSFBParametersResponseCDMA2000 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + csfbParametersResponseCDMA2000-r8 CSFBParametersResponseCDMA2000-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CSFBParametersResponseCDMA2000-r8-IEs ::= SEQUENCE { + rand RAND-CDMA2000, + mobilityParameters MobilityParametersCDMA2000, + nonCriticalExtension CSFBParametersResponseCDMA2000-v8a0-IEs OPTIONAL +} + +CSFBParametersResponseCDMA2000-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +DLInformationTransfer ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + dlInformationTransfer-r8 DLInformationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +DLInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType CHOICE { + dedicatedInfoNAS DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000 + }, + nonCriticalExtension DLInformationTransfer-v8a0-IEs OPTIONAL +} + +DLInformationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +HandoverFromEUTRAPreparationRequest ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + handoverFromEUTRAPreparationRequest-r8 + HandoverFromEUTRAPreparationRequest-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverFromEUTRAPreparationRequest-r8-IEs ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + rand RAND-CDMA2000 OPTIONAL, -- Cond cdma2000-Type + mobilityParameters MobilityParametersCDMA2000 OPTIONAL, -- Cond cdma2000-Type + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v890-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v920-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v920-IEs ::= SEQUENCE { + concurrPrepCDMA2000-HRPD-r9 BOOLEAN OPTIONAL, -- Cond cdma2000-Type + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v1020-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v1020-IEs ::= SEQUENCE { + dualRxTxRedirectIndicator-r10 ENUMERATED {true} OPTIONAL, -- Cond cdma2000-1XRTT + redirectCarrierCDMA2000-1XRTT-r10 CarrierFreqCDMA2000 OPTIONAL, -- Cond dualRxTxRedirect + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +InDeviceCoexIndication-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + inDeviceCoexIndication-r11 InDeviceCoexIndication-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +InDeviceCoexIndication-r11-IEs ::= SEQUENCE { + affectedCarrierFreqList-r11 AffectedCarrierFreqList-r11 OPTIONAL, + tdm-AssistanceInfo-r11 TDM-AssistanceInfo-r11 OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension InDeviceCoexIndication-v11d0-IEs OPTIONAL +} + +InDeviceCoexIndication-v11d0-IEs ::= SEQUENCE { + ul-CA-AssistanceInfo-r11 SEQUENCE { + affectedCarrierFreqCombList-r11 AffectedCarrierFreqCombList-r11 OPTIONAL, + victimSystemType-r11 VictimSystemType-r11 + } OPTIONAL, + nonCriticalExtension InDeviceCoexIndication-v1310-IEs OPTIONAL +} + +InDeviceCoexIndication-v1310-IEs ::= SEQUENCE { + affectedCarrierFreqList-v1310 AffectedCarrierFreqList-v1310 OPTIONAL, + affectedCarrierFreqCombList-r13 AffectedCarrierFreqCombList-r13 OPTIONAL, + nonCriticalExtension InDeviceCoexIndication-v1360-IEs OPTIONAL +} + +InDeviceCoexIndication-v1360-IEs ::= SEQUENCE { + hardwareSharingProblem-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AffectedCarrierFreqList-r11 ::= SEQUENCE (SIZE (1..maxFreqIDC-r11)) OF AffectedCarrierFreq-r11 + +AffectedCarrierFreqList-v1310 ::= SEQUENCE (SIZE (1..maxFreqIDC-r11)) OF AffectedCarrierFreq-v1310 + +AffectedCarrierFreq-r11 ::= SEQUENCE { + carrierFreq-r11 MeasObjectId, + interferenceDirection-r11 ENUMERATED {eutra, other, both, spare} +} + +AffectedCarrierFreq-v1310 ::= SEQUENCE { + carrierFreq-v1310 MeasObjectId-v1310 OPTIONAL +} + +AffectedCarrierFreqCombList-r11 ::= SEQUENCE (SIZE (1..maxCombIDC-r11)) OF AffectedCarrierFreqComb-r11 + +AffectedCarrierFreqCombList-r13 ::= SEQUENCE (SIZE (1..maxCombIDC-r11)) OF AffectedCarrierFreqComb-r13 + +AffectedCarrierFreqComb-r11 ::= SEQUENCE (SIZE (2..maxServCell-r10)) OF MeasObjectId + +AffectedCarrierFreqComb-r13 ::= SEQUENCE (SIZE (2..maxServCell-r13)) OF MeasObjectId-r13 + +TDM-AssistanceInfo-r11 ::= CHOICE { + drx-AssistanceInfo-r11 SEQUENCE { + drx-CycleLength-r11 ENUMERATED {sf40, sf64, sf80, sf128, sf160, + sf256, spare2, spare1}, + drx-Offset-r11 INTEGER (0..255) OPTIONAL, + drx-ActiveTime-r11 ENUMERATED {sf20, sf30, sf40, sf60, sf80, + sf100, spare2, spare1} + }, + idc-SubframePatternList-r11 IDC-SubframePatternList-r11, + ... +} + +IDC-SubframePatternList-r11 ::= SEQUENCE (SIZE (1..maxSubframePatternIDC-r11)) OF IDC-SubframePattern-r11 + +IDC-SubframePattern-r11 ::= CHOICE { + subframePatternFDD-r11 BIT STRING (SIZE (4)), + subframePatternTDD-r11 CHOICE { + subframeConfig0-r11 BIT STRING (SIZE (70)), + subframeConfig1-5-r11 BIT STRING (SIZE (10)), + subframeConfig6-r11 BIT STRING (SIZE (60)) + }, + ... +} + +VictimSystemType-r11 ::= SEQUENCE { + gps-r11 ENUMERATED {true} OPTIONAL, + glonass-r11 ENUMERATED {true} OPTIONAL, + bds-r11 ENUMERATED {true} OPTIONAL, + galileo-r11 ENUMERATED {true} OPTIONAL, + wlan-r11 ENUMERATED {true} OPTIONAL, + bluetooth-r11 ENUMERATED {true} OPTIONAL +} + + +InterFreqRSTDMeasurementIndication-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + interFreqRSTDMeasurementIndication-r10 InterFreqRSTDMeasurementIndication-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +InterFreqRSTDMeasurementIndication-r10-IEs ::= SEQUENCE { + rstd-InterFreqIndication-r10 CHOICE { + start SEQUENCE { + rstd-InterFreqInfoList-r10 RSTD-InterFreqInfoList-r10 + }, + stop NULL + }, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RSTD-InterFreqInfoList-r10 ::= SEQUENCE (SIZE(1..maxRSTD-Freq-r10)) OF RSTD-InterFreqInfo-r10 + +RSTD-InterFreqInfo-r10 ::= SEQUENCE { + carrierFreq-r10 ARFCN-ValueEUTRA, + measPRS-Offset-r10 INTEGER (0..39), + ..., + [[ carrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL + ]] +} + + +LoggedMeasurementConfiguration-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + loggedMeasurementConfiguration-r10 LoggedMeasurementConfiguration-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + + +LoggedMeasurementConfiguration-r10-IEs ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, -- Need OR + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10, + nonCriticalExtension LoggedMeasurementConfiguration-v1080-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1080-IEs ::= SEQUENCE { + lateNonCriticalExtension-r10 OCTET STRING OPTIONAL, + nonCriticalExtension LoggedMeasurementConfiguration-v1130-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1130-IEs ::= SEQUENCE { + plmn-IdentityList-r11 PLMN-IdentityList3-r11 OPTIONAL, -- Need OR + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, -- Need OR + nonCriticalExtension LoggedMeasurementConfiguration-v1250-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1250-IEs ::= SEQUENCE { + targetMBSFN-AreaList-r12 TargetMBSFN-AreaList-r12 OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +TargetMBSFN-AreaList-r12 ::= SEQUENCE (SIZE (0..maxMBSFN-Area)) OF TargetMBSFN-Area-r12 + +TargetMBSFN-Area-r12 ::= SEQUENCE { + mbsfn-AreaId-r12 MBSFN-AreaId-r12 OPTIONAL, -- Need OR + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + ... +} + + +MasterInformationBlock ::= SEQUENCE { + dl-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100}, + phich-Config PHICH-Config, + systemFrameNumber BIT STRING (SIZE (8)), + schedulingInfoSIB1-BR-r13 INTEGER (0..31), + spare BIT STRING (SIZE (5)) +} + + + +MasterInformationBlock-MBMS-r14 ::= SEQUENCE { + dl-Bandwidth-MBMS-r14 ENUMERATED { + n6, n15, n25, n50, n75, n100}, + systemFrameNumber-r14 BIT STRING (SIZE (6)), + additionalNonMBSFNSubframes-r14 INTEGER (0..3), + spare BIT STRING (SIZE (13)) +} + + +MBMSCountingRequest-r10 ::= SEQUENCE { + countingRequestList-r10 CountingRequestList-r10, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CountingRequestList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingRequestInfo-r10 + +CountingRequestInfo-r10 ::= SEQUENCE { + tmgi-r10 TMGI-r9, + ... +} + + +MBMSCountingResponse-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + countingResponse-r10 MBMSCountingResponse-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MBMSCountingResponse-r10-IEs ::= SEQUENCE { + mbsfn-AreaIndex-r10 INTEGER (0..maxMBSFN-Area-1) OPTIONAL, + countingResponseList-r10 CountingResponseList-r10 OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CountingResponseList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingResponseInfo-r10 + +CountingResponseInfo-r10 ::= SEQUENCE { + countingResponseService-r10 INTEGER (0..maxServiceCount-1), + ... +} + + +MBMSInterestIndication-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + interestIndication-r11 MBMSInterestIndication-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MBMSInterestIndication-r11-IEs ::= SEQUENCE { + mbms-FreqList-r11 CarrierFreqListMBMS-r11 OPTIONAL, + mbms-Priority-r11 ENUMERATED {true} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MBMSInterestIndication-v1310-IEs OPTIONAL +} + +MBMSInterestIndication-v1310-IEs ::= SEQUENCE { + mbms-Services-r13 MBMS-ServiceList-r13 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MBSFNAreaConfiguration-r9 ::= SEQUENCE { + commonSF-Alloc-r9 CommonSF-AllocPatternList-r9, + commonSF-AllocPeriod-r9 ENUMERATED { + rf4, rf8, rf16, rf32, rf64, rf128, rf256}, + pmch-InfoList-r9 PMCH-InfoList-r9, + nonCriticalExtension MBSFNAreaConfiguration-v930-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MBSFNAreaConfiguration-v1250-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v1250-IEs ::= SEQUENCE { + pmch-InfoListExt-r12 PMCH-InfoListExt-r12 OPTIONAL, -- Need OR + nonCriticalExtension MBSFNAreaConfiguration-v1430-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v1430-IEs ::= SEQUENCE { + commonSF-Alloc-r14 CommonSF-AllocPatternList-r14, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CommonSF-AllocPatternList-r9 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig + +CommonSF-AllocPatternList-r14 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig-v1430 + + +MeasurementReport ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + measurementReport-r8 MeasurementReport-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MeasurementReport-r8-IEs ::= SEQUENCE { + measResults MeasResults, + nonCriticalExtension MeasurementReport-v8a0-IEs OPTIONAL +} + +MeasurementReport-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MobilityFromEUTRACommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + mobilityFromEUTRACommand-r8 MobilityFromEUTRACommand-r8-IEs, + mobilityFromEUTRACommand-r9 MobilityFromEUTRACommand-r9-IEs, + spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MobilityFromEUTRACommand-r8-IEs ::= SEQUENCE { + cs-FallbackIndicator BOOLEAN, + purpose CHOICE{ + handover Handover, + cellChangeOrder CellChangeOrder + }, + nonCriticalExtension MobilityFromEUTRACommand-v8a0-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MobilityFromEUTRACommand-v8d0-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v8d0-IEs ::= SEQUENCE { + bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +MobilityFromEUTRACommand-r9-IEs ::= SEQUENCE { + cs-FallbackIndicator BOOLEAN, + purpose CHOICE{ + handover Handover, + cellChangeOrder CellChangeOrder, + e-CSFB-r9 E-CSFB-r9, + ... + }, + nonCriticalExtension MobilityFromEUTRACommand-v930-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MobilityFromEUTRACommand-v960-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v960-IEs ::= SEQUENCE { + bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +Handover ::= SEQUENCE { + targetRAT-Type ENUMERATED { + utra, geran, cdma2000-1XRTT, cdma2000-HRPD, + spare4, spare3, spare2, spare1, ...}, + targetRAT-MessageContainer OCTET STRING, + nas-SecurityParamFromEUTRA OCTET STRING (SIZE (1)) OPTIONAL, -- Cond UTRAGERAN + systemInformation SI-OrPSI-GERAN OPTIONAL -- Cond PSHO +} + +CellChangeOrder ::= SEQUENCE { + t304 ENUMERATED { + ms100, ms200, ms500, ms1000, + ms2000, ms4000, ms8000, ms10000-v1310}, + targetRAT-Type CHOICE { + geran SEQUENCE { + physCellId PhysCellIdGERAN, + carrierFreq CarrierFreqGERAN, + networkControlOrder BIT STRING (SIZE (2)) OPTIONAL, -- Need OP + systemInformation SI-OrPSI-GERAN OPTIONAL -- Need OP + }, + ... + } +} + +SI-OrPSI-GERAN ::= CHOICE { + si SystemInfoListGERAN, + psi SystemInfoListGERAN +} + +E-CSFB-r9 ::= SEQUENCE { + messageContCDMA2000-1XRTT-r9 OCTET STRING OPTIONAL, -- Need ON + mobilityCDMA2000-HRPD-r9 ENUMERATED { + handover, redirection + } OPTIONAL, -- Need OP + messageContCDMA2000-HRPD-r9 OCTET STRING OPTIONAL, -- Cond concHO + redirectCarrierCDMA2000-HRPD-r9 CarrierFreqCDMA2000 OPTIONAL -- Cond concRedir +} + + +Paging ::= SEQUENCE { + pagingRecordList PagingRecordList OPTIONAL, -- Need ON + systemInfoModification ENUMERATED {true} OPTIONAL, -- Need ON + etws-Indication ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v890-IEs OPTIONAL +} + +Paging-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension Paging-v920-IEs OPTIONAL +} + +Paging-v920-IEs ::= SEQUENCE { + cmas-Indication-r9 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v1130-IEs OPTIONAL +} + +Paging-v1130-IEs ::= SEQUENCE { + eab-ParamModification-r11 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v1310-IEs OPTIONAL +} + +Paging-v1310-IEs ::= SEQUENCE { + redistributionIndication-r13 ENUMERATED {true} OPTIONAL, --Need ON + systemInfoModification-eDRX-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PagingRecordList ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord + +PagingRecord ::= SEQUENCE { + ue-Identity PagingUE-Identity, + cn-Domain ENUMERATED {ps, cs}, + ... +} + +PagingUE-Identity ::= CHOICE { + s-TMSI S-TMSI, + imsi IMSI, + ... +} + +IMSI ::= SEQUENCE (SIZE (6..21)) OF IMSI-Digit + +IMSI-Digit ::= INTEGER (0..9) + + +ProximityIndication-r9 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + proximityIndication-r9 ProximityIndication-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ProximityIndication-r9-IEs ::= SEQUENCE { + type-r9 ENUMERATED {entering, leaving}, + carrierFreq-r9 CHOICE { + eutra-r9 ARFCN-ValueEUTRA, + utra-r9 ARFCN-ValueUTRA, + ..., + eutra2-v9e0 ARFCN-ValueEUTRA-v9e0 + }, + nonCriticalExtension ProximityIndication-v930-IEs OPTIONAL +} + +ProximityIndication-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RNReconfiguration-r10 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rnReconfiguration-r10 RNReconfiguration-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RNReconfiguration-r10-IEs ::= SEQUENCE { + rn-SystemInfo-r10 RN-SystemInfo-r10 OPTIONAL, -- Need ON + rn-SubframeConfig-r10 RN-SubframeConfig-r10 OPTIONAL, -- Need ON + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RN-SystemInfo-r10 ::= SEQUENCE { + systemInformationBlockType1-r10 OCTET STRING (CONTAINING SystemInformationBlockType1) OPTIONAL, -- Need ON + systemInformationBlockType2-r10 SystemInformationBlockType2 OPTIONAL, -- Need ON + ... +} + + +RNReconfigurationComplete-r10 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rnReconfigurationComplete-r10 RNReconfigurationComplete-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RNReconfigurationComplete-r10-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReconfiguration ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReconfiguration-r8 RRCConnectionReconfiguration-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfiguration-r8-IEs ::= SEQUENCE { + measConfig MeasConfig OPTIONAL, -- Need ON + mobilityControlInfo MobilityControlInfo OPTIONAL, -- Cond HO + dedicatedInfoNASList SEQUENCE (SIZE(1..maxDRB)) OF + DedicatedInfoNAS OPTIONAL, -- Cond nonHO + radioResourceConfigDedicated RadioResourceConfigDedicated OPTIONAL, -- Cond HO-toEUTRA + securityConfigHO SecurityConfigHO OPTIONAL, -- Cond HO + nonCriticalExtension RRCConnectionReconfiguration-v890-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING RRCConnectionReconfiguration-v8m0-IEs) OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v920-IEs OPTIONAL +} + +-- Late non-critical extensions: +RRCConnectionReconfiguration-v8m0-IEs ::= SEQUENCE { + -- Following field is only for pre REL-10 late non-critical extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v10i0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v10i0-IEs ::= SEQUENCE { + antennaInfoDedicatedPCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v10l0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v10l0-IEs ::= SEQUENCE { + mobilityControlInfo-v10l0 MobilityControlInfo-v10l0 OPTIONAL, + sCellToAddModList-v10l0 SCellToAddModList-v10l0 OPTIONAL, -- Need ON + -- Following field is only for late non-critical extensions from REL-10 to REL-11 + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v12f0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v12f0-IEs ::= SEQUENCE { + scg-Configuration-v12f0 SCG-Configuration-v12f0 OPTIONAL, -- Cond nonFullConfig + -- Following field is only for late non-critical extensions from REL-12 + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v1370-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1370-IEs ::= SEQUENCE { + radioResourceConfigDedicated-v1370 RadioResourceConfigDedicated-v1370 OPTIONAL, -- Need ON + sCellToAddModListExt-v1370 SCellToAddModListExt-v1370 OPTIONAL, -- Need ON + -- Following field is only for late non-critical extensions from REL-13 onwards + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +RRCConnectionReconfiguration-v920-IEs ::= SEQUENCE { + otherConfig-r9 OtherConfig-r9 OPTIONAL, -- Need ON + fullConfig-r9 ENUMERATED {true} OPTIONAL, -- Cond HO-Reestab + nonCriticalExtension RRCConnectionReconfiguration-v1020-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1020-IEs ::= SEQUENCE { + sCellToReleaseList-r10 SCellToReleaseList-r10 OPTIONAL, -- Need ON + sCellToAddModList-r10 SCellToAddModList-r10 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1130-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1130-IEs ::= SEQUENCE { + systemInformationBlockType1Dedicated-r11 OCTET STRING (CONTAINING SystemInformationBlockType1) OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1250-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1250-IEs ::= SEQUENCE { + wlan-OffloadInfo-r12 CHOICE { + release NULL, + setup SEQUENCE { + wlan-OffloadConfigDedicated-r12 WLAN-OffloadConfig-r12, + t350-r12 ENUMERATED {min5, min10, min20, min30, min60, + min120, min180, spare1} OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + scg-Configuration-r12 SCG-Configuration-r12 OPTIONAL, -- Cond nonFullConfig + sl-SyncTxControl-r12 SL-SyncTxControl-r12 OPTIONAL, -- Need ON + sl-DiscConfig-r12 SL-DiscConfig-r12 OPTIONAL, -- Need ON + sl-CommConfig-r12 SL-CommConfig-r12 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1310-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1310-IEs ::= SEQUENCE { + sCellToReleaseListExt-r13 SCellToReleaseListExt-r13 OPTIONAL, -- Need ON + sCellToAddModListExt-r13 SCellToAddModListExt-r13 OPTIONAL, -- Need ON + lwa-Configuration-r13 LWA-Configuration-r13 OPTIONAL, -- Need ON + lwip-Configuration-r13 LWIP-Configuration-r13 OPTIONAL, -- Need ON + rclwi-Configuration-r13 RCLWI-Configuration-r13 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1430-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1430-IEs ::= SEQUENCE { + sl-V2X-ConfigDedicated-r14 SL-V2X-ConfigDedicated-r14 OPTIONAL, -- Need ON + sCellToAddModListExt-v1430 SCellToAddModListExt-v1430 OPTIONAL, -- Need ON + perCC-GapIndicationRequest-r14 ENUMERATED{true} OPTIONAL, -- Need ON + systemInformationBlockType2Dedicated-r14 OCTET STRING (CONTAINING SystemInformationBlockType2) OPTIONAL, -- Cond nonHO + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SL-SyncTxControl-r12 ::= SEQUENCE { + networkControlledSyncTx-r12 ENUMERATED {on, off} OPTIONAL -- Need OP +} + +PSCellToAddMod-r12 ::= SEQUENCE { + sCellIndex-r12 SCellIndex-r10, + cellIdentification-r12 SEQUENCE { + physCellId-r12 PhysCellId, + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonPSCell-r12 RadioResourceConfigCommonPSCell-r12 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedPSCell-r12 RadioResourceConfigDedicatedPSCell-r12 OPTIONAL, -- Cond SCellAdd2 + ..., + [[ antennaInfoDedicatedPSCell-v1280 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON + ]], + [[ sCellIndex-r13 SCellIndex-r13 OPTIONAL -- Need ON + ]], + [[ radioResourceConfigDedicatedPSCell-v1370 RadioResourceConfigDedicatedPSCell-v1370 OPTIONAL -- Need ON + ]] +} + +PSCellToAddMod-v12f0 ::= SEQUENCE { + radioResourceConfigCommonPSCell-r12 RadioResourceConfigCommonPSCell-v12f0 OPTIONAL +} + +PSCellToAddMod-v1440 ::= SEQUENCE { + radioResourceConfigCommonPSCell-r14 RadioResourceConfigCommonPSCell-v1440 OPTIONAL +} + +PowerCoordinationInfo-r12 ::= SEQUENCE { + p-MeNB-r12 INTEGER (1..16), + p-SeNB-r12 INTEGER (1..16), + powerControlMode-r12 INTEGER (1..2) +} + +SCellToAddModList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-r10 + +SCellToAddModList-v10l0 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-v10l0 + +SCellToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-r13 + +SCellToAddModListExt-v1370 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-v1370 + +SCellToAddModListExt-v1430 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-v1430 + +SCellToAddMod-r10 ::= SEQUENCE { + sCellIndex-r10 SCellIndex-r10, + cellIdentification-r10 SEQUENCE { + physCellId-r10 PhysCellId, + dl-CarrierFreq-r10 ARFCN-ValueEUTRA + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonSCell-r10 RadioResourceConfigCommonSCell-r10 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedSCell-r10 RadioResourceConfigDedicatedSCell-r10 OPTIONAL, -- Cond SCellAdd2 + ..., + [[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max + ]], + [[ antennaInfoDedicatedSCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON + ]], + [[ srs-SwitchFromServCellIndex-r14 INTEGER (0.. 31) OPTIONAL -- Need ON + ]] +} + +SCellToAddMod-v10l0 ::= SEQUENCE { + radioResourceConfigCommonSCell-v10l0 RadioResourceConfigCommonSCell-v10l0 OPTIONAL +} + +SCellToAddModExt-r13 ::= SEQUENCE { + sCellIndex-r13 SCellIndex-r13, + cellIdentification-r13 SEQUENCE { + physCellId-r13 PhysCellId, + dl-CarrierFreq-r13 ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonSCell-r13 RadioResourceConfigCommonSCell-r10 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedSCell-r13 RadioResourceConfigDedicatedSCell-r10 OPTIONAL, -- Cond SCellAdd2 + antennaInfoDedicatedSCell-r13 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON +} + +SCellToAddModExt-v1370 ::= SEQUENCE { + radioResourceConfigCommonSCell-v1370 RadioResourceConfigCommonSCell-v10l0 OPTIONAL +} + +SCellToAddModExt-v1430 ::= SEQUENCE { + srs-SwitchFromServCellIndex-r14 INTEGER (0.. 31) OPTIONAL, -- Need ON + ... +} + +SCellToReleaseList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellIndex-r10 + +SCellToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellIndex-r13 + +SCG-Configuration-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + scg-ConfigPartMCG-r12 SEQUENCE { + scg-Counter-r12 INTEGER (0.. 65535) OPTIONAL, -- Need ON + powerCoordinationInfo-r12 PowerCoordinationInfo-r12 OPTIONAL, -- Need ON + ... + } OPTIONAL, -- Need ON + scg-ConfigPartSCG-r12 SCG-ConfigPartSCG-r12 OPTIONAL -- Need ON + } +} + +SCG-Configuration-v12f0 ::= CHOICE { + release NULL, + setup SEQUENCE { + scg-ConfigPartSCG-v12f0 SCG-ConfigPartSCG-v12f0 OPTIONAL -- Need ON + } +} + +SCG-ConfigPartSCG-r12 ::= SEQUENCE { + radioResourceConfigDedicatedSCG-r12 RadioResourceConfigDedicatedSCG-r12 OPTIONAL, -- Need ON + sCellToReleaseListSCG-r12 SCellToReleaseList-r10 OPTIONAL, -- Need ON + pSCellToAddMod-r12 PSCellToAddMod-r12 OPTIONAL, -- Need ON + sCellToAddModListSCG-r12 SCellToAddModList-r10 OPTIONAL, -- Need ON + mobilityControlInfoSCG-r12 MobilityControlInfoSCG-r12 OPTIONAL, -- Need ON + ..., + [[ + sCellToReleaseListSCG-Ext-r13 SCellToReleaseListExt-r13 OPTIONAL, -- Need ON + sCellToAddModListSCG-Ext-r13 SCellToAddModListExt-r13 OPTIONAL -- Need ON + ]], + [[ + sCellToAddModListSCG-Ext-v1370 SCellToAddModListExt-v1370 OPTIONAL -- Need ON + ]], + [[ + pSCellToAddMod-v1440 PSCellToAddMod-v1440 OPTIONAL -- Need ON + ]] +} + +SCG-ConfigPartSCG-v12f0 ::= SEQUENCE { + pSCellToAddMod-v12f0 PSCellToAddMod-v12f0 OPTIONAL, -- Need ON + sCellToAddModListSCG-v12f0 SCellToAddModList-v10l0 OPTIONAL -- Need ON +} + +SecurityConfigHO ::= SEQUENCE { + handoverType CHOICE { + intraLTE SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig OPTIONAL, -- Cond fullConfig + keyChangeIndicator BOOLEAN, + nextHopChainingCount NextHopChainingCount + }, + interRAT SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig, + nas-SecurityParamToEUTRA OCTET STRING (SIZE(6)) + } + }, + ... +} + + + +RRCConnectionReconfigurationComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReconfigurationComplete-r8 + RRCConnectionReconfigurationComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfigurationComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReconfigurationComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1020-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1020-IEs ::= SEQUENCE { + rlf-InfoAvailable-r10 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1130-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1250-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1250-IEs ::= SEQUENCE { + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1430-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1430-IEs ::= SEQUENCE { + perCC-GapIndicationList-r14 PerCC-GapIndicationList-r14 OPTIONAL, + numFreqEffective-r14 INTEGER (1..12) OPTIONAL, + numFreqEffectiveReduced-r14 INTEGER (1..12) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishment ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReestablishment-r8 RRCConnectionReestablishment-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishment-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated RadioResourceConfigDedicated, + nextHopChainingCount NextHopChainingCount, + nonCriticalExtension RRCConnectionReestablishment-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishment-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReestablishmentComplete-r8 + RRCConnectionReestablishmentComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReestablishmentComplete-v920-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v920-IEs ::= SEQUENCE { + rlf-InfoAvailable-r9 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1020-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1020-IEs ::= SEQUENCE { + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1130-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1250-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1250-IEs ::= SEQUENCE { + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentReject ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentReject-r8 + RRCConnectionReestablishmentReject-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentReject-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReestablishmentReject-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishmentReject-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentRequest ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentRequest-r8 + RRCConnectionReestablishmentRequest-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentRequest-r8-IEs ::= SEQUENCE { + ue-Identity ReestabUE-Identity, + reestablishmentCause ReestablishmentCause, + spare BIT STRING (SIZE (2)) +} + +ReestabUE-Identity ::= SEQUENCE { + c-RNTI C-RNTI, + physCellId PhysCellId, + shortMAC-I ShortMAC-I +} + +ReestablishmentCause ::= ENUMERATED { + reconfigurationFailure, handoverFailure, + otherFailure, spare1} + + +RRCConnectionReject ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionReject-r8 RRCConnectionReject-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReject-r8-IEs ::= SEQUENCE { + waitTime INTEGER (1..16), + nonCriticalExtension RRCConnectionReject-v8a0-IEs OPTIONAL +} + +RRCConnectionReject-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReject-v1020-IEs OPTIONAL +} + +RRCConnectionReject-v1020-IEs ::= SEQUENCE { + extendedWaitTime-r10 INTEGER (1..1800) OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReject-v1130-IEs OPTIONAL +} + +RRCConnectionReject-v1130-IEs ::= SEQUENCE { + deprioritisationReq-r11 SEQUENCE { + deprioritisationType-r11 ENUMERATED {frequency, e-utra}, + deprioritisationTimer-r11 ENUMERATED {min5, min10, min15, min30} + } OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReject-v1320-IEs OPTIONAL +} + +RRCConnectionReject-v1320-IEs ::= SEQUENCE { + rrc-SuspendIndication-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionRelease ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionRelease-r8 RRCConnectionRelease-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRelease-r8-IEs ::= SEQUENCE { + releaseCause ReleaseCause, + redirectedCarrierInfo RedirectedCarrierInfo OPTIONAL, -- Need ON + idleModeMobilityControlInfo IdleModeMobilityControlInfo OPTIONAL, -- Need OP + nonCriticalExtension RRCConnectionRelease-v890-IEs OPTIONAL +} + +RRCConnectionRelease-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING RRCConnectionRelease-v9e0-IEs) OPTIONAL, + nonCriticalExtension RRCConnectionRelease-v920-IEs OPTIONAL +} + +-- Late non critical extensions +RRCConnectionRelease-v9e0-IEs ::= SEQUENCE { + redirectedCarrierInfo-v9e0 RedirectedCarrierInfo-v9e0 OPTIONAL, -- Cond NoRedirect-r8 + idleModeMobilityControlInfo-v9e0 IdleModeMobilityControlInfo-v9e0 OPTIONAL, -- Cond IdleInfoEUTRA + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +RRCConnectionRelease-v920-IEs ::= SEQUENCE { + cellInfoList-r9 CHOICE { + geran-r9 CellInfoListGERAN-r9, + utra-FDD-r9 CellInfoListUTRA-FDD-r9, + utra-TDD-r9 CellInfoListUTRA-TDD-r9, + ..., + utra-TDD-r10 CellInfoListUTRA-TDD-r10 + } OPTIONAL, -- Cond Redirection + nonCriticalExtension RRCConnectionRelease-v1020-IEs OPTIONAL +} + +RRCConnectionRelease-v1020-IEs ::= SEQUENCE { + extendedWaitTime-r10 INTEGER (1..1800) OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionRelease-v1320-IEs OPTIONAL +} + +RRCConnectionRelease-v1320-IEs::= SEQUENCE { + resumeIdentity-r13 ResumeIdentity-r13 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +ReleaseCause ::= ENUMERATED {loadBalancingTAUrequired, + other, cs-FallbackHighPriority-v1020, rrc-Suspend-v1320} + +RedirectedCarrierInfo ::= CHOICE { + eutra ARFCN-ValueEUTRA, + geran CarrierFreqsGERAN, + utra-FDD ARFCN-ValueUTRA, + utra-TDD ARFCN-ValueUTRA, + cdma2000-HRPD CarrierFreqCDMA2000, + cdma2000-1xRTT CarrierFreqCDMA2000, + ..., + utra-TDD-r10 CarrierFreqListUTRA-TDD-r10 +} + +RedirectedCarrierInfo-v9e0 ::= SEQUENCE { + eutra-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +CarrierFreqListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxFreqUTRA-TDD-r10)) OF ARFCN-ValueUTRA + +IdleModeMobilityControlInfo ::= SEQUENCE { + freqPriorityListEUTRA FreqPriorityListEUTRA OPTIONAL, -- Need ON + freqPriorityListGERAN FreqsPriorityListGERAN OPTIONAL, -- Need ON + freqPriorityListUTRA-FDD FreqPriorityListUTRA-FDD OPTIONAL, -- Need ON + freqPriorityListUTRA-TDD FreqPriorityListUTRA-TDD OPTIONAL, -- Need ON + bandClassPriorityListHRPD BandClassPriorityListHRPD OPTIONAL, -- Need ON + bandClassPriorityList1XRTT BandClassPriorityList1XRTT OPTIONAL, -- Need ON + t320 ENUMERATED { + min5, min10, min20, min30, min60, min120, min180, + spare1} OPTIONAL, -- Need OR + ..., + [[ freqPriorityListExtEUTRA-r12 FreqPriorityListExtEUTRA-r12 OPTIONAL -- Need ON + ]], + [[ freqPriorityListEUTRA-v1310 FreqPriorityListEUTRA-v1310 OPTIONAL, -- Need ON + freqPriorityListExtEUTRA-v1310 FreqPriorityListExtEUTRA-v1310 OPTIONAL -- Need ON + ]] +} + +IdleModeMobilityControlInfo-v9e0 ::= SEQUENCE { + freqPriorityListEUTRA-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v9e0 +} + +FreqPriorityListEUTRA ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA + +FreqPriorityListExtEUTRA-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-r12 + +FreqPriorityListEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v1310 + +FreqPriorityListExtEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v1310 + +FreqPriorityEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityEUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max +} + +FreqPriorityEUTRA-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + cellReselectionPriority-r12 CellReselectionPriority +} + +FreqPriorityEUTRA-v1310 ::= SEQUENCE { + cellReselectionSubPriority-r13 CellReselectionSubPriority-r13 OPTIONAL -- Need ON +} + +FreqsPriorityListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF FreqsPriorityGERAN + +FreqsPriorityGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF FreqPriorityUTRA-FDD + +FreqPriorityUTRA-FDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF FreqPriorityUTRA-TDD + +FreqPriorityUTRA-TDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority +} + +BandClassPriorityListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriorityHRPD + +BandClassPriorityHRPD ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority +} + +BandClassPriorityList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriority1XRTT + +BandClassPriority1XRTT ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority +} + +CellInfoListGERAN-r9 ::= SEQUENCE (SIZE (1..maxCellInfoGERAN-r9)) OF CellInfoGERAN-r9 + +CellInfoGERAN-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdGERAN, + carrierFreq-r9 CarrierFreqGERAN, + systemInformation-r9 SystemInfoListGERAN +} + +CellInfoListUTRA-FDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-FDD-r9 + +CellInfoUTRA-FDD-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdUTRA-FDD, + utra-BCCH-Container-r9 OCTET STRING +} + +CellInfoListUTRA-TDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r9 + +CellInfoUTRA-TDD-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdUTRA-TDD, + utra-BCCH-Container-r9 OCTET STRING +} + +CellInfoListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r10 + +CellInfoUTRA-TDD-r10 ::= SEQUENCE { + physCellId-r10 PhysCellIdUTRA-TDD, + carrierFreq-r10 ARFCN-ValueUTRA, + utra-BCCH-Container-r10 OCTET STRING +} + + +RRCConnectionRequest ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionRequest-r8 RRCConnectionRequest-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRequest-r8-IEs ::= SEQUENCE { + ue-Identity InitialUE-Identity, + establishmentCause EstablishmentCause, + spare BIT STRING (SIZE (1)) +} + +InitialUE-Identity ::= CHOICE { + s-TMSI S-TMSI, + randomValue BIT STRING (SIZE (40)) +} + +EstablishmentCause ::= ENUMERATED { + emergency, highPriorityAccess, mt-Access, mo-Signalling, + mo-Data, delayTolerantAccess-v1020, mo-VoiceCall-v1280, spare1} + + +RRCConnectionResume-r13 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionResume-r13 RRCConnectionResume-r13-IEs, + spare3 NULL, + spare2 NULL, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResume-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated OPTIONAL, -- Need ON + nextHopChainingCount-r13 NextHopChainingCount, + measConfig-r13 MeasConfig OPTIONAL, -- Need ON + antennaInfoDedicatedPCell-r13 AntennaInfoDedicated-v10i0 OPTIONAL, -- Need ON + drb-ContinueROHC-r13 ENUMERATED {true} OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + rrcConnectionResume-v1430-IEs RRCConnectionResume-v1430-IEs OPTIONAL +} + +RRCConnectionResume-v1430-IEs ::= SEQUENCE { + otherConfig-r14 OtherConfig-r9 OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeComplete-r13 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeComplete-r13-IEs ::= SEQUENCE { + selectedPLMN-Identity-r13 INTEGER (1..maxPLMN-r11) OPTIONAL, + dedicatedInfoNAS-r13 DedicatedInfoNAS OPTIONAL, + rlf-InfoAvailable-r13 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r13 ENUMERATED {true} OPTIONAL, + connEstFailInfoAvailable-r13 ENUMERATED {true} OPTIONAL, + mobilityState-r13 ENUMERATED {normal, medium, high, spare} OPTIONAL, + mobilityHistoryAvail-r13 ENUMERATED {true} OPTIONAL, + logMeasAvailableMBSFN-r13 ENUMERATED {true} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeRequest-r13 ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeRequest-r13-IEs ::= SEQUENCE { + resumeIdentity-r13 CHOICE { + resumeID-r13 ResumeIdentity-r13, + truncatedResumeID-r13 BIT STRING (SIZE (24)) + }, + shortResumeMAC-I-r13 BIT STRING (SIZE (16)), + resumeCause-r13 ResumeCause, + spare BIT STRING (SIZE (1)) +} + +ResumeCause ::= ENUMERATED { + emergency, highPriorityAccess, mt-Access, mo-Signalling, + mo-Data, delayTolerantAccess-v1020, mo-VoiceCall-v1280, spare1} + + + +RRCConnectionSetup ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionSetup-r8 RRCConnectionSetup-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetup-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated RadioResourceConfigDedicated, + nonCriticalExtension RRCConnectionSetup-v8a0-IEs OPTIONAL +} + +RRCConnectionSetup-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionSetupComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionSetupComplete-r8 RRCConnectionSetupComplete-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetupComplete-r8-IEs ::= SEQUENCE { + selectedPLMN-Identity INTEGER (1..maxPLMN-r11), + registeredMME RegisteredMME OPTIONAL, + dedicatedInfoNAS DedicatedInfoNAS, + nonCriticalExtension RRCConnectionSetupComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1020-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1020-IEs ::= SEQUENCE { + gummei-Type-r10 ENUMERATED {native, mapped} OPTIONAL, + rlf-InfoAvailable-r10 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + rn-SubframeConfigReq-r10 ENUMERATED {required, notRequired} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1130-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1250-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1250-IEs ::= SEQUENCE { + mobilityState-r12 ENUMERATED {normal, medium, high, spare} OPTIONAL, + mobilityHistoryAvail-r12 ENUMERATED {true} OPTIONAL, + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1320-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1320-IEs ::= SEQUENCE { + ce-ModeB-r13 ENUMERATED {supported} OPTIONAL, + s-TMSI-r13 S-TMSI OPTIONAL, + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL, + up-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, + cp-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1330-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1330-IEs ::= SEQUENCE { + ue-CE-NeedULGaps-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1430-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1430-IEs ::= SEQUENCE { + dcn-ID-r14 INTEGER (0..65535) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RegisteredMME ::= SEQUENCE { + plmn-Identity PLMN-Identity OPTIONAL, + mmegi BIT STRING (SIZE (16)), + mmec MMEC +} + + +SCGFailureInformation-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + scgFailureInformation-r12 SCGFailureInformation-r12-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCGFailureInformation-r12-IEs ::= SEQUENCE { + failureReportSCG-r12 FailureReportSCG-r12 OPTIONAL, + nonCriticalExtension SCGFailureInformation-v1310-IEs OPTIONAL +} + +SCGFailureInformation-v1310-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING SCGFailureInformation-v12d0-IEs) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Late non-critical extensions: +SCGFailureInformation-v12d0-IEs ::= SEQUENCE { + failureReportSCG-v12d0 FailureReportSCG-v12d0 OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +FailureReportSCG-r12 ::= SEQUENCE { + failureType-r12 ENUMERATED {t313-Expiry, randomAccessProblem, + rlc-MaxNumRetx, scg-ChangeFailure }, + measResultServFreqList-r12 MeasResultServFreqList-r10 OPTIONAL, + measResultNeighCells-r12 MeasResultList2EUTRA-r9 OPTIONAL, + ..., + [[ failureType-v1290 ENUMERATED {maxUL-TimingDiff-v1290} OPTIONAL + ]], + [[ measResultServFreqListExt-r13 MeasResultServFreqListExt-r13 OPTIONAL + ]] +} + +FailureReportSCG-v12d0 ::= SEQUENCE { + measResultNeighCells-v12d0 MeasResultList2EUTRA-v9e0 OPTIONAL +} + + +SCPTMConfiguration-r13 ::= SEQUENCE { + sc-mtch-InfoList-r13 SC-MTCH-InfoList-r13, + scptm-NeighbourCellList-r13 SCPTM-NeighbourCellList-r13 OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SCPTMConfiguration-v1340 OPTIONAL +} + +SCPTMConfiguration-v1340 ::= SEQUENCE { + p-b-r13 INTEGER (0..3) OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCPTMConfiguration-BR-r14 ::= SEQUENCE { + sc-mtch-InfoList-r14 SC-MTCH-InfoList-BR-r14, + scptm-NeighbourCellList-r14 SCPTM-NeighbourCellList-r13 OPTIONAL, -- Need OP + p-b-r14 INTEGER (0..3) OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SecurityModeCommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + securityModeCommand-r8 SecurityModeCommand-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeCommand-r8-IEs ::= SEQUENCE { + securityConfigSMC SecurityConfigSMC, + nonCriticalExtension SecurityModeCommand-v8a0-IEs OPTIONAL +} + +SecurityModeCommand-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SecurityConfigSMC ::= SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig, + ... +} + + +SecurityModeComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeComplete-r8 SecurityModeComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension SecurityModeComplete-v8a0-IEs OPTIONAL +} + +SecurityModeComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SecurityModeFailure ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeFailure-r8 SecurityModeFailure-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeFailure-r8-IEs ::= SEQUENCE { + nonCriticalExtension SecurityModeFailure-v8a0-IEs OPTIONAL +} + +SecurityModeFailure-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SidelinkUEInformation-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + sidelinkUEInformation-r12 SidelinkUEInformation-r12-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SidelinkUEInformation-r12-IEs ::= SEQUENCE { + commRxInterestedFreq-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, + commTxResourceReq-r12 SL-CommTxResourceReq-r12 OPTIONAL, + discRxInterest-r12 ENUMERATED {true} OPTIONAL, + discTxResourceReq-r12 INTEGER (1..63) OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SidelinkUEInformation-v1310-IEs OPTIONAL +} + +SidelinkUEInformation-v1310-IEs ::= SEQUENCE { + commTxResourceReqUC-r13 SL-CommTxResourceReq-r12 OPTIONAL, + commTxResourceInfoReqRelay-r13 SEQUENCE { + commTxResourceReqRelay-r13 SL-CommTxResourceReq-r12 OPTIONAL, + commTxResourceReqRelayUC-r13 SL-CommTxResourceReq-r12 OPTIONAL, + ue-Type-r13 ENUMERATED {relayUE, remoteUE} + } OPTIONAL, + discTxResourceReq-v1310 SEQUENCE { + carrierFreqDiscTx-r13 INTEGER (1..maxFreq) OPTIONAL, + discTxResourceReqAddFreq-r13 SL-DiscTxResourceReqPerFreqList-r13 OPTIONAL + } OPTIONAL, + discTxResourceReqPS-r13 SL-DiscTxResourceReq-r13 OPTIONAL, + discRxGapReq-r13 SL-GapRequest-r13 OPTIONAL, + discTxGapReq-r13 SL-GapRequest-r13 OPTIONAL, + discSysInfoReportFreqList-r13 SL-DiscSysInfoReportFreqList-r13 OPTIONAL, + nonCriticalExtension SidelinkUEInformation-v1430-IEs OPTIONAL +} + +SidelinkUEInformation-v1430-IEs ::= SEQUENCE { + v2x-CommRxInterestedFreqList-r14 SL-V2X-CommFreqList-r14 OPTIONAL, + p2x-CommTxType-r14 ENUMERATED {true} OPTIONAL, + v2x-CommTxResourceReq-r14 SL-V2X-CommTxFreqList-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SL-CommTxResourceReq-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, + destinationInfoList-r12 SL-DestinationInfoList-r12 +} + +SL-DiscTxResourceReqPerFreqList-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-DiscTxResourceReq-r13 + +SL-DiscTxResourceReq-r13 ::= SEQUENCE { + carrierFreqDiscTx-r13 INTEGER (1..maxFreq) OPTIONAL, + discTxResourceReq-r13 INTEGER (1..63) +} + +SL-DestinationInfoList-r12 ::= SEQUENCE (SIZE (1..maxSL-Dest-r12)) OF SL-DestinationIdentity-r12 + +SL-DestinationIdentity-r12 ::= BIT STRING (SIZE (24)) + +SL-DiscSysInfoReportFreqList-r13 ::= SEQUENCE (SIZE (1.. maxSL-DiscSysInfoReportFreq-r13)) OF SL-DiscSysInfoReport-r13 + +SL-V2X-CommFreqList-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF INTEGER (0..maxFreqV2X-1-r14) + +SL-V2X-CommTxFreqList-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF SL-V2X-CommTxResourceReq-r14 + +SL-V2X-CommTxResourceReq-r14 ::= SEQUENCE { + carrierFreqCommTx-r14 INTEGER (0.. maxFreqV2X-1-r14) OPTIONAL, + v2x-TypeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, + v2x-DestinationInfoList-r14 SL-DestinationInfoList-r12 OPTIONAL +} + + +SystemInformation-BR-r13 ::= SystemInformation + +SystemInformation-MBMS-r14 ::= SystemInformation + +SystemInformation ::= SEQUENCE { + criticalExtensions CHOICE { + systemInformation-r8 SystemInformation-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} +SystemInformation-r8-IEs ::= SEQUENCE { + sib-TypeAndInfo SEQUENCE (SIZE (1..maxSIB)) OF CHOICE { + sib2 SystemInformationBlockType2, + sib3 SystemInformationBlockType3, + sib4 SystemInformationBlockType4, + sib5 SystemInformationBlockType5, + sib6 SystemInformationBlockType6, + sib7 SystemInformationBlockType7, + sib8 SystemInformationBlockType8, + sib9 SystemInformationBlockType9, + sib10 SystemInformationBlockType10, + sib11 SystemInformationBlockType11, + ..., + sib12-v920 SystemInformationBlockType12-r9, + sib13-v920 SystemInformationBlockType13-r9, + sib14-v1130 SystemInformationBlockType14-r11, + sib15-v1130 SystemInformationBlockType15-r11, + sib16-v1130 SystemInformationBlockType16-r11, + sib17-v1250 SystemInformationBlockType17-r12, + sib18-v1250 SystemInformationBlockType18-r12, + sib19-v1250 SystemInformationBlockType19-r12, + sib20-v1310 SystemInformationBlockType20-r13, + sib21-v1430 SystemInformationBlockType21-r14 + }, + nonCriticalExtension SystemInformation-v8a0-IEs OPTIONAL +} + +SystemInformation-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType1-BR-r13 ::= SystemInformationBlockType1 + +SystemInformationBlockType1 ::= SEQUENCE { + cellAccessRelatedInfo SEQUENCE { + plmn-IdentityList PLMN-IdentityList, + trackingAreaCode TrackingAreaCode, + cellIdentity CellIdentity, + cellBarred ENUMERATED {barred, notBarred}, + intraFreqReselection ENUMERATED {allowed, notAllowed}, + csg-Indication BOOLEAN, + csg-Identity CSG-Identity OPTIONAL -- Need OR + }, + cellSelectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + q-RxLevMinOffset INTEGER (1..8) OPTIONAL -- Need OP + }, + p-Max P-Max OPTIONAL, -- Need OP + freqBandIndicator FreqBandIndicator, + schedulingInfoList SchedulingInfoList, + tdd-Config TDD-Config OPTIONAL, -- Cond TDD + si-WindowLength ENUMERATED { + ms1, ms2, ms5, ms10, ms15, ms20, + ms40}, + systemInfoValueTag INTEGER (0..31), + nonCriticalExtension SystemInformationBlockType1-v890-IEs OPTIONAL +} + +SystemInformationBlockType1-v890-IEs::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType1-v8h0-IEs) OPTIONAL, + nonCriticalExtension SystemInformationBlockType1-v920-IEs OPTIONAL +} + +-- Late non critical extensions +SystemInformationBlockType1-v8h0-IEs ::= SEQUENCE { + multiBandInfoList MultiBandInfoList OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType1-v9e0-IEs ::= SEQUENCE { + freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL, -- Cond FBI-max + multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL, -- Cond mFBI-max + nonCriticalExtension SystemInformationBlockType1-v10j0-IEs OPTIONAL +} + +SystemInformationBlockType1-v10j0-IEs ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType1-v10l0-IEs ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +SystemInformationBlockType1-v920-IEs ::= SEQUENCE { + ims-EmergencySupport-r9 ENUMERATED {true} OPTIONAL, -- Need OR + cellSelectionInfo-v920 CellSelectionInfo-v920 OPTIONAL, -- Cond RSRQ + nonCriticalExtension SystemInformationBlockType1-v1130-IEs OPTIONAL +} + +SystemInformationBlockType1-v1130-IEs ::= SEQUENCE { + tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD-OR + cellSelectionInfo-v1130 CellSelectionInfo-v1130 OPTIONAL, -- Cond WB-RSRQ + nonCriticalExtension SystemInformationBlockType1-v1250-IEs OPTIONAL +} + +SystemInformationBlockType1-v1250-IEs ::= SEQUENCE { + cellAccessRelatedInfo-v1250 SEQUENCE { + category0Allowed-r12 ENUMERATED {true} OPTIONAL -- Need OP + }, + cellSelectionInfo-v1250 CellSelectionInfo-v1250 OPTIONAL, -- Cond RSRQ2 + freqBandIndicatorPriority-r12 ENUMERATED {true} OPTIONAL, -- Cond mFBI + nonCriticalExtension SystemInformationBlockType1-v1310-IEs OPTIONAL +} + +SystemInformationBlockType1-v1310-IEs ::= SEQUENCE { + hyperSFN-r13 BIT STRING (SIZE (10)) OPTIONAL, -- Need OR + eDRX-Allowed-r13 ENUMERATED {true} OPTIONAL, -- Need OR + cellSelectionInfoCE-r13 CellSelectionInfoCE-r13 OPTIONAL, -- Need OP + bandwidthReducedAccessRelatedInfo-r13 SEQUENCE { + si-WindowLength-BR-r13 ENUMERATED { + ms20, ms40, ms60, ms80, ms120, + ms160, ms200, spare}, + si-RepetitionPattern-r13 ENUMERATED {everyRF, every2ndRF, every4thRF, + every8thRF}, + schedulingInfoList-BR-r13 SchedulingInfoList-BR-r13 OPTIONAL, -- Cond SI-BR + fdd-DownlinkOrTddSubframeBitmapBR-r13 CHOICE { + subframePattern10-r13 BIT STRING (SIZE (10)), + subframePattern40-r13 BIT STRING (SIZE (40)) + } OPTIONAL, -- Need OP + fdd-UplinkSubframeBitmapBR-r13 BIT STRING (SIZE (10)) OPTIONAL, -- Need OP + startSymbolBR-r13 INTEGER (1..4), + si-HoppingConfigCommon-r13 ENUMERATED {on,off}, + si-ValidityTime-r13 ENUMERATED {true} OPTIONAL, -- Need OP + systemInfoValueTagList-r13 SystemInfoValueTagList-r13 OPTIONAL -- Need OR + } OPTIONAL, -- Cond BW-reduced + nonCriticalExtension SystemInformationBlockType1-v1320-IEs OPTIONAL +} + +SystemInformationBlockType1-v1320-IEs ::= SEQUENCE { + freqHoppingParametersDL-r13 SEQUENCE { + mpdcch-pdsch-HoppingNB-r13 ENUMERATED {nb2, nb4} OPTIONAL, -- Need OR + interval-DLHoppingConfigCommonModeA-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-r13 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL, -- Need OR + interval-DLHoppingConfigCommonModeB-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int2, int4, int8, int16}, + interval-TDD-r13 ENUMERATED { int5, int10, int20, int40} + } OPTIONAL, -- Need OR + mpdcch-pdsch-HoppingOffset-r13 INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL -- Need OR + } OPTIONAL, -- Cond Hopping + nonCriticalExtension SystemInformationBlockType1-v1350-IEs OPTIONAL +} + +SystemInformationBlockType1-v1350-IEs ::= SEQUENCE { + cellSelectionInfoCE1-r13 CellSelectionInfoCE1-r13 OPTIONAL, -- Need OP + nonCriticalExtension SystemInformationBlockType1-v1360-IEs OPTIONAL +} + +SystemInformationBlockType1-v1360-IEs ::= SEQUENCE { + cellSelectionInfoCE1-v1360 CellSelectionInfoCE1-v1360 OPTIONAL, -- Cond QrxlevminCE1 + nonCriticalExtension SystemInformationBlockType1-v1430-IEs OPTIONAL +} + +SystemInformationBlockType1-v1430-IEs ::= SEQUENCE { + eCallOverIMS-Support-r14 ENUMERATED {true} OPTIONAL, -- Need OR + tdd-Config-v1430 TDD-Config-v1430 OPTIONAL, -- Cond TDD-OR + cellAccessRelatedInfoList-r14 SEQUENCE (SIZE (1..maxPLMN-1-r14)) OF + CellAccessRelatedInfo-r14 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v1450-IEs OPTIONAL +} + +SystemInformationBlockType1-v1450-IEs ::= SEQUENCE { + tdd-Config-v1450 TDD-Config-v1450 OPTIONAL, -- Cond TDD-OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PLMN-IdentityList ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo + +PLMN-IdentityInfo ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellReservedForOperatorUse ENUMERATED {reserved, notReserved} +} + +SchedulingInfoList ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo + +SchedulingInfo ::= SEQUENCE { + si-Periodicity ENUMERATED { + rf8, rf16, rf32, rf64, rf128, rf256, rf512}, + sib-MappingInfo SIB-MappingInfo +} + +SchedulingInfoList-BR-r13 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo-BR-r13 + +SchedulingInfo-BR-r13 ::= SEQUENCE { + si-Narrowband-r13 INTEGER (1..maxAvailNarrowBands-r13), + si-TBS-r13 ENUMERATED {b152, b208, b256, b328, b408, b504, b600, b712, + b808, b936} +} + +SIB-MappingInfo ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type + +SIB-Type ::= ENUMERATED { + sibType3, sibType4, sibType5, sibType6, + sibType7, sibType8, sibType9, sibType10, + sibType11, sibType12-v920, sibType13-v920, + sibType14-v1130, sibType15-v1130, + sibType16-v1130, sibType17-v1250, sibType18-v1250, + ..., sibType19-v1250, sibType20-v1310, sibType21-v1430} + +SystemInfoValueTagList-r13 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SystemInfoValueTagSI-r13 + +SystemInfoValueTagSI-r13 ::= INTEGER (0..3) + +CellSelectionInfo-v920 ::= SEQUENCE { + q-QualMin-r9 Q-QualMin-r9, + q-QualMinOffset-r9 INTEGER (1..8) OPTIONAL -- Need OP +} + +CellSelectionInfo-v1130 ::= SEQUENCE { + q-QualMinWB-r11 Q-QualMin-r9 +} + +CellSelectionInfo-v1250 ::= SEQUENCE { + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 +} + +CellAccessRelatedInfo-r14 ::= SEQUENCE { + plmn-IdentityList-r14 PLMN-IdentityList, + trackingAreaCode-r14 TrackingAreaCode, + cellIdentity-r14 CellIdentity +} + + +SystemInformationBlockType1-MBMS-r14 ::= SEQUENCE { + cellAccessRelatedInfo-r14 SEQUENCE { + plmn-IdentityList-r14 PLMN-IdentityList-MBMS-r14, + trackingAreaCode-r14 TrackingAreaCode, + cellIdentity-r14 CellIdentity + }, + freqBandIndicator-r14 FreqBandIndicator-r11, + multiBandInfoList-r14 MultiBandInfoList-r11 OPTIONAL, -- Need OR + schedulingInfoList-MBMS-r14 SchedulingInfoList-MBMS-r14, + si-WindowLength-r14 ENUMERATED { + ms1, ms2, ms5, ms10, ms15, ms20,ms40, ms80}, + systemInfoValueTag-r14 INTEGER (0..31), + nonMBSFN-SubframeConfig-r14 NonMBSFN-SubframeConfig-r14 OPTIONAL, --Need OR + pdsch-ConfigCommon-r14 PDSCH-ConfigCommon, + systemInformationBlockType13-r14 SystemInformationBlockType13-r9 OPTIONAL, --Need OR + cellAccessRelatedInfoList-r14 SEQUENCE (SIZE (1..maxPLMN-1-r14)) OF + CellAccessRelatedInfo-r14 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PLMN-IdentityList-MBMS-r14 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-Identity + +SchedulingInfoList-MBMS-r14 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo-MBMS-r14 + +SchedulingInfo-MBMS-r14 ::= SEQUENCE { + si-Periodicity-r14 ENUMERATED { + rf16, rf32, rf64, rf128, rf256, rf512}, + sib-MappingInfo-r14 SIB-MappingInfo-MBMS-r14 +} + +SIB-MappingInfo-MBMS-r14 ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type-MBMS-r14 + +SIB-Type-MBMS-r14 ::= ENUMERATED { + sibType10, sibType11, sibType12-v920, sibType13-v920, + sibType15-v1130, sibType16-v1130, ...} + + +NonMBSFN-SubframeConfig-r14 ::= SEQUENCE { + radioFrameAllocationPeriod-r14 ENUMERATED {rf4, rf8, rf16, rf32, rf64, rf128, rf512}, + radioFrameAllocationOffset-r14 INTEGER (0..7), + subframeAllocation-r14 BIT STRING (SIZE(9)) +} + + +UEAssistanceInformation-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ueAssistanceInformation-r11 UEAssistanceInformation-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEAssistanceInformation-r11-IEs ::= SEQUENCE { + powerPrefIndication-r11 ENUMERATED {normal, lowPowerConsumption} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UEAssistanceInformation-v1430-IEs OPTIONAL +} + +UEAssistanceInformation-v1430-IEs ::= SEQUENCE { + bw-Preference-r14 BW-Preference-r14 OPTIONAL, + sps-AssistanceInformation-r14 SEQUENCE { + trafficPatternInfoListSL-r14 TrafficPatternInfoList-r14 OPTIONAL, + trafficPatternInfoListUL-r14 TrafficPatternInfoList-r14 OPTIONAL + } OPTIONAL, + rlm-Report-r14 SEQUENCE { + rlm-Event-r14 ENUMERATED {earlyOutOfSync, earlyInSync}, + excessRep-MPDCCH-r14 ENUMERATED {excessRep1, excessRep2} OPTIONAL + } OPTIONAL, delayBudgetReport-r14 DelayBudgetReport-r14 OPTIONAL, + nonCriticalExtension UEAssistanceInformation-v1450-IEs OPTIONAL +} + +UEAssistanceInformation-v1450-IEs ::= SEQUENCE { + overheatingAssistance-r14 OverheatingAssistance-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +BW-Preference-r14 ::= SEQUENCE { + dl-Preference-r14 ENUMERATED {mhz1dot4, mhz5, mhz20 } OPTIONAL, + ul-Preference-r14 ENUMERATED {mhz1dot4, mhz5} OPTIONAL +} + +TrafficPatternInfoList-r14 ::= SEQUENCE (SIZE (1..maxTrafficPattern-r14)) OF TrafficPatternInfo-r14 + +TrafficPatternInfo-r14 ::= SEQUENCE { + trafficPeriodicity-r14 ENUMERATED { + sf20, sf50, sf100, sf200, sf300, sf400, sf500, + sf600, sf700, sf800, sf900, sf1000}, + timingOffset-r14 INTEGER (0..10239), + priorityInfoSL-r14 SL-Priority-r13 OPTIONAL, + logicalChannelIdentityUL-r14 INTEGER (3..10) OPTIONAL, + messageSize-r14 BIT STRING (SIZE (6)) +} + +DelayBudgetReport-r14::= CHOICE { + type1 ENUMERATED { + msMinus1280, msMinus640, msMinus320, msMinus160, + msMinus80, msMinus60, msMinus40, msMinus20, ms0, ms20, ms40, ms60, ms80, ms160, ms320, ms640, ms1280}, + + type2 ENUMERATED { + msMinus192, msMinus168,msMinus144, msMinus120, + msMinus96, msMinus72, msMinus48, msMinus24, ms0, ms24, ms48, ms72, ms96, ms120, ms144, ms168, ms192} +} + +OverheatingAssistance-r14 ::= SEQUENCE { + reducedUE-Category SEQUENCE { + reducedUE-CategoryDL INTEGER (0..19), + reducedUE-CategoryUL INTEGER (0..21) + } OPTIONAL, + reducedMaxCCs SEQUENCE { + reducedCCsDL INTEGER (0..31), + reducedCCsUL INTEGER (0..31) + } OPTIONAL +} + + +UECapabilityEnquiry ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueCapabilityEnquiry-r8 UECapabilityEnquiry-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityEnquiry-r8-IEs ::= SEQUENCE { + ue-CapabilityRequest UE-CapabilityRequest, + nonCriticalExtension UECapabilityEnquiry-v8a0-IEs OPTIONAL +} + +UECapabilityEnquiry-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UECapabilityEnquiry-v1180-IEs OPTIONAL +} + +UECapabilityEnquiry-v1180-IEs ::= SEQUENCE { + requestedFrequencyBands-r11 SEQUENCE (SIZE (1..16)) OF FreqBandIndicator-r11 OPTIONAL, + nonCriticalExtension UECapabilityEnquiry-v1310-IEs OPTIONAL +} + +UECapabilityEnquiry-v1310-IEs ::= SEQUENCE { + requestReducedFormat-r13 ENUMERATED {true} OPTIONAL, -- Need ON + requestSkipFallbackComb-r13 ENUMERATED {true} OPTIONAL, -- Need ON + requestedMaxCCsDL-r13 INTEGER (2..32) OPTIONAL, -- Need ON + requestedMaxCCsUL-r13 INTEGER (2..32) OPTIONAL, -- Need ON + requestReducedIntNonContComb-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension UECapabilityEnquiry-v1430-IEs OPTIONAL +} + +UECapabilityEnquiry-v1430-IEs ::= SEQUENCE { + requestDiffFallbackCombList-r14 BandCombinationList-r14 OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-CapabilityRequest ::= SEQUENCE (SIZE (1..maxRAT-Capabilities)) OF RAT-Type + + +UECapabilityInformation ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + ueCapabilityInformation-r8 UECapabilityInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityInformation-r8-IEs ::= SEQUENCE { + ue-CapabilityRAT-ContainerList UE-CapabilityRAT-ContainerList, + nonCriticalExtension UECapabilityInformation-v8a0-IEs OPTIONAL +} + +UECapabilityInformation-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UECapabilityInformation-v1250-IEs OPTIONAL +} + +UECapabilityInformation-v1250-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r12 UE-RadioPagingInfo-r12 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEInformationRequest-r9 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueInformationRequest-r9 UEInformationRequest-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEInformationRequest-r9-IEs ::= SEQUENCE { + rach-ReportReq-r9 BOOLEAN, + rlf-ReportReq-r9 BOOLEAN, + nonCriticalExtension UEInformationRequest-v930-IEs OPTIONAL +} + +UEInformationRequest-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UEInformationRequest-v1020-IEs OPTIONAL +} + +UEInformationRequest-v1020-IEs ::= SEQUENCE { + logMeasReportReq-r10 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension UEInformationRequest-v1130-IEs OPTIONAL +} + +UEInformationRequest-v1130-IEs ::= SEQUENCE { + connEstFailReportReq-r11 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension UEInformationRequest-v1250-IEs OPTIONAL +} + +UEInformationRequest-v1250-IEs ::= SEQUENCE { + mobilityHistoryReportReq-r12 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEInformationResponse-r9 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueInformationResponse-r9 UEInformationResponse-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEInformationResponse-r9-IEs ::= SEQUENCE { + rach-Report-r9 SEQUENCE { + numberOfPreamblesSent-r9 NumberOfPreamblesSent-r11, + contentionDetected-r9 BOOLEAN + } OPTIONAL, + rlf-Report-r9 RLF-Report-r9 OPTIONAL, + nonCriticalExtension UEInformationResponse-v930-IEs OPTIONAL +} + +-- Late non critical extensions +UEInformationResponse-v9e0-IEs ::= SEQUENCE { + rlf-Report-v9e0 RLF-Report-v9e0 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +UEInformationResponse-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING UEInformationResponse-v9e0-IEs) OPTIONAL, + nonCriticalExtension UEInformationResponse-v1020-IEs OPTIONAL +} + +UEInformationResponse-v1020-IEs ::= SEQUENCE { + logMeasReport-r10 LogMeasReport-r10 OPTIONAL, + nonCriticalExtension UEInformationResponse-v1130-IEs OPTIONAL +} + +UEInformationResponse-v1130-IEs ::= SEQUENCE { + connEstFailReport-r11 ConnEstFailReport-r11 OPTIONAL, + nonCriticalExtension UEInformationResponse-v1250-IEs OPTIONAL +} + +UEInformationResponse-v1250-IEs ::= SEQUENCE { + mobilityHistoryReport-r12 MobilityHistoryReport-r12 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RLF-Report-r9 ::= SEQUENCE { + measResultLastServCell-r9 SEQUENCE { + rsrpResult-r9 RSRP-Range, + rsrqResult-r9 RSRQ-Range OPTIONAL + }, + measResultNeighCells-r9 SEQUENCE { + measResultListEUTRA-r9 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r9 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r9 MeasResultListGERAN OPTIONAL, + measResultsCDMA2000-r9 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + ..., + [[ locationInfo-r10 LocationInfo-r10 OPTIONAL, + failedPCellId-r10 CHOICE { + cellGlobalId-r10 CellGlobalIdEUTRA, + pci-arfcn-r10 SEQUENCE { + physCellId-r10 PhysCellId, + carrierFreq-r10 ARFCN-ValueEUTRA + } + } OPTIONAL, + reestablishmentCellId-r10 CellGlobalIdEUTRA OPTIONAL, + timeConnFailure-r10 INTEGER (0..1023) OPTIONAL, + connectionFailureType-r10 ENUMERATED {rlf, hof} OPTIONAL, + previousPCellId-r10 CellGlobalIdEUTRA OPTIONAL + ]], + [[ failedPCellId-v1090 SEQUENCE { + carrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 + } OPTIONAL + ]], + [[ basicFields-r11 SEQUENCE { + c-RNTI-r11 C-RNTI, + rlf-Cause-r11 ENUMERATED { + t310-Expiry, randomAccessProblem, + rlc-MaxNumRetx, t312-Expiry-r12}, + timeSinceFailure-r11 TimeSinceFailure-r11 + } OPTIONAL, + previousUTRA-CellId-r11 SEQUENCE { + carrierFreq-r11 ARFCN-ValueUTRA, + physCellId-r11 CHOICE { + fdd-r11 PhysCellIdUTRA-FDD, + tdd-r11 PhysCellIdUTRA-TDD + }, + cellGlobalId-r11 CellGlobalIdUTRA OPTIONAL + } OPTIONAL, + selectedUTRA-CellId-r11 SEQUENCE { + carrierFreq-r11 ARFCN-ValueUTRA, + physCellId-r11 CHOICE { + fdd-r11 PhysCellIdUTRA-FDD, + tdd-r11 PhysCellIdUTRA-TDD + } + } OPTIONAL + ]], + [[ failedPCellId-v1250 SEQUENCE { + tac-FailedPCell-r12 TrackingAreaCode + } OPTIONAL, + measResultLastServCell-v1250 RSRQ-Range-v1250 OPTIONAL, + lastServCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL + ]], + [[ drb-EstablishedWithQCI-1-r13 ENUMERATED {qci1} OPTIONAL + ]], + [[ measResultLastServCell-v1360 RSRP-Range-v1360 OPTIONAL + ]] +} + +RLF-Report-v9e0 ::= SEQUENCE { + measResultListEUTRA-v9e0 MeasResultList2EUTRA-v9e0 +} + +MeasResultList2EUTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-r9 + +MeasResultList2EUTRA-v9e0 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v9e0 + +MeasResultList2EUTRA-v1250 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v1250 + +MeasResult2EUTRA-r9 ::= SEQUENCE { + carrierFreq-r9 ARFCN-ValueEUTRA, + measResultList-r9 MeasResultListEUTRA +} + +MeasResult2EUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL +} + +MeasResult2EUTRA-v1250 ::= SEQUENCE { + rsrq-Type-r12 RSRQ-Type-r12 OPTIONAL +} + +MeasResultList2UTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2UTRA-r9 + +MeasResult2UTRA-r9 ::= SEQUENCE { + carrierFreq-r9 ARFCN-ValueUTRA, + measResultList-r9 MeasResultListUTRA +} + +MeasResultList2CDMA2000-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2CDMA2000-r9 + +MeasResult2CDMA2000-r9 ::= SEQUENCE { + carrierFreq-r9 CarrierFreqCDMA2000, + measResultList-r9 MeasResultsCDMA2000 +} + +LogMeasReport-r10 ::= SEQUENCE { + absoluteTimeStamp-r10 AbsoluteTimeInfo-r10, + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + logMeasInfoList-r10 LogMeasInfoList-r10, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + ... +} + +LogMeasInfoList-r10 ::= SEQUENCE (SIZE (1..maxLogMeasReport-r10)) OF LogMeasInfo-r10 + +LogMeasInfo-r10 ::= SEQUENCE { + locationInfo-r10 LocationInfo-r10 OPTIONAL, + relativeTimeStamp-r10 INTEGER (0..7200), + servCellIdentity-r10 CellGlobalIdEUTRA, + measResultServCell-r10 SEQUENCE { + rsrpResult-r10 RSRP-Range, + rsrqResult-r10 RSRQ-Range + }, + measResultNeighCells-r10 SEQUENCE { + measResultListEUTRA-r10 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r10 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r10 MeasResultList2GERAN-r10 OPTIONAL, + measResultListCDMA2000-r10 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + ..., + [[ measResultListEUTRA-v1090 MeasResultList2EUTRA-v9e0 OPTIONAL + ]], + [[ measResultListMBSFN-r12 MeasResultListMBSFN-r12 OPTIONAL, + measResultServCell-v1250 RSRQ-Range-v1250 OPTIONAL, + servCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL + ]], + [[ inDeviceCoexDetected-r13 ENUMERATED {true} OPTIONAL + ]], + [[ measResultServCell-v1360 RSRP-Range-v1360 OPTIONAL + ]] +} + +MeasResultListMBSFN-r12 ::= SEQUENCE (SIZE (1..maxMBSFN-Area)) OF MeasResultMBSFN-r12 + +MeasResultMBSFN-r12 ::= SEQUENCE { + mbsfn-Area-r12 SEQUENCE { + mbsfn-AreaId-r12 MBSFN-AreaId-r12, + carrierFreq-r12 ARFCN-ValueEUTRA-r9 + }, + rsrpResultMBSFN-r12 RSRP-Range, + rsrqResultMBSFN-r12 MBSFN-RSRQ-Range-r12, + signallingBLER-Result-r12 BLER-Result-r12 OPTIONAL, + dataBLER-MCH-ResultList-r12 DataBLER-MCH-ResultList-r12 OPTIONAL, + ... +} + +DataBLER-MCH-ResultList-r12 ::= SEQUENCE (SIZE (1.. maxPMCH-PerMBSFN)) OF DataBLER-MCH-Result-r12 + +DataBLER-MCH-Result-r12 ::= SEQUENCE { + mch-Index-r12 INTEGER (1..maxPMCH-PerMBSFN), + dataBLER-Result-r12 BLER-Result-r12 +} + +BLER-Result-r12 ::= SEQUENCE { + bler-r12 BLER-Range-r12, + blocksReceived-r12 SEQUENCE { + n-r12 BIT STRING (SIZE (3)), + m-r12 BIT STRING (SIZE (8)) + } +} + +BLER-Range-r12 ::= INTEGER(0..31) + +MeasResultList2GERAN-r10 ::= SEQUENCE (SIZE (1..maxCellListGERAN)) OF MeasResultListGERAN + +ConnEstFailReport-r11 ::= SEQUENCE { + failedCellId-r11 CellGlobalIdEUTRA, + locationInfo-r11 LocationInfo-r10 OPTIONAL, + measResultFailedCell-r11 SEQUENCE { + rsrpResult-r11 RSRP-Range, + rsrqResult-r11 RSRQ-Range OPTIONAL + }, + measResultNeighCells-r11 SEQUENCE { + measResultListEUTRA-r11 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r11 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r11 MeasResultListGERAN OPTIONAL, + measResultsCDMA2000-r11 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + numberOfPreamblesSent-r11 NumberOfPreamblesSent-r11, + contentionDetected-r11 BOOLEAN, + maxTxPowerReached-r11 BOOLEAN, + timeSinceFailure-r11 TimeSinceFailure-r11, + measResultListEUTRA-v1130 MeasResultList2EUTRA-v9e0 OPTIONAL, + ..., + [[ measResultFailedCell-v1250 RSRQ-Range-v1250 OPTIONAL, + failedCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL + ]], + [[ measResultFailedCell-v1360 RSRP-Range-v1360 OPTIONAL + ]] +} + +NumberOfPreamblesSent-r11::= INTEGER (1..200) + +TimeSinceFailure-r11 ::= INTEGER (0..172800) + +MobilityHistoryReport-r12 ::= VisitedCellInfoList-r12 + + +ULHandoverPreparationTransfer ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulHandoverPreparationTransfer-r8 ULHandoverPreparationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULHandoverPreparationTransfer-r8-IEs ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + meid BIT STRING (SIZE (56)) OPTIONAL, + dedicatedInfo DedicatedInfoCDMA2000, + nonCriticalExtension ULHandoverPreparationTransfer-v8a0-IEs OPTIONAL +} + +ULHandoverPreparationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +ULInformationTransfer ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulInformationTransfer-r8 ULInformationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType CHOICE { + dedicatedInfoNAS DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000 + }, + nonCriticalExtension ULInformationTransfer-v8a0-IEs OPTIONAL +} + +ULInformationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +WLANConnectionStatusReport-r13 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + wlanConnectionStatusReport-r13 WLANConnectionStatusReport-r13-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +WLANConnectionStatusReport-r13-IEs ::= SEQUENCE { + wlan-Status-r13 WLAN-Status-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension WLANConnectionStatusReport-v1430-IEs OPTIONAL +} + +WLANConnectionStatusReport-v1430-IEs ::= SEQUENCE { + wlan-Status-v1430 WLAN-Status-v1430, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType2 ::= SEQUENCE { + ac-BarringInfo SEQUENCE { + ac-BarringForEmergency BOOLEAN, + ac-BarringForMO-Signalling AC-BarringConfig OPTIONAL, -- Need OP + ac-BarringForMO-Data AC-BarringConfig OPTIONAL -- Need OP + } OPTIONAL, -- Need OP + radioResourceConfigCommon RadioResourceConfigCommonSIB, + ue-TimersAndConstants UE-TimersAndConstants, + freqInfo SEQUENCE { + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission + }, + mbsfn-SubframeConfigList MBSFN-SubframeConfigList OPTIONAL, -- Need OR + timeAlignmentTimerCommon TimeAlignmentTimer, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType2-v8h0-IEs) OPTIONAL, + [[ ssac-BarringForMMTEL-Voice-r9 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Video-r9 AC-BarringConfig OPTIONAL -- Need OP + ]], + [[ ac-BarringForCSFB-r10 AC-BarringConfig OPTIONAL -- Need OP + ]], + [[ ac-BarringSkipForMMTELVoice-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVideo-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForSMS-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringPerPLMN-List-r12 AC-BarringPerPLMN-List-r12 OPTIONAL -- Need OP + ]], + [[ voiceServiceCauseIndication-r12 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ acdc-BarringForCommon-r13 ACDC-BarringForCommon-r13 OPTIONAL, -- Need OP + acdc-BarringPerPLMN-List-r13 ACDC-BarringPerPLMN-List-r13 OPTIONAL -- Need OP + ]], + [[ + udt-RestrictingForCommon-r13 UDT-Restricting-r13 OPTIONAL, -- Need OR + udt-RestrictingPerPLMN-List-r13 UDT-RestrictingPerPLMN-List-r13 OPTIONAL, -- Need OR + cIoT-EPS-OptimisationInfo-r13 CIOT-EPS-OptimisationInfo-r13 OPTIONAL, -- Need OP + useFullResumeID-r13 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ unicastFreqHoppingInd-r13 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL, -- Need OP + videoServiceCauseIndication-r14 ENUMERATED {true} OPTIONAL -- Need OP + ]] + +} + +SystemInformationBlockType2-v8h0-IEs ::= SEQUENCE { + multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType2-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType2-v9e0-IEs ::= SEQUENCE { + ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond ul-FreqMax + nonCriticalExtension SystemInformationBlockType2-v9i0-IEs OPTIONAL +} + +SystemInformationBlockType2-v9i0-IEs ::= SEQUENCE { +-- Following field is for any non-critical extensions from REL-9 + nonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType2-v10m0-IEs) OPTIONAL, + dummy SEQUENCE {} OPTIONAL +} + +SystemInformationBlockType2-v10m0-IEs ::= SEQUENCE { + freqInfo-v10l0 SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 + } OPTIONAL, + multiBandInfoList-v10l0 SEQUENCE (SIZE (1..maxMultiBands)) OF + AdditionalSpectrumEmission-v10l0 OPTIONAL, +-- Following field is for non-critical extensions from REL-10 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AC-BarringConfig ::= SEQUENCE { + ac-BarringFactor ENUMERATED { + p00, p05, p10, p15, p20, p25, p30, p40, + p50, p60, p70, p75, p80, p85, p90, p95}, + ac-BarringTime ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512}, + ac-BarringForSpecialAC BIT STRING (SIZE(5)) +} + +MBSFN-SubframeConfigList ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig + +MBSFN-SubframeConfigList-v1430 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig-v1430 + +AC-BarringPerPLMN-List-r12 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF AC-BarringPerPLMN-r12 + +AC-BarringPerPLMN-r12 ::= SEQUENCE { + plmn-IdentityIndex-r12 INTEGER (1..maxPLMN-r11), + ac-BarringInfo-r12 SEQUENCE { + ac-BarringForEmergency-r12 BOOLEAN, + ac-BarringForMO-Signalling-r12 AC-BarringConfig OPTIONAL, -- Need OP + ac-BarringForMO-Data-r12 AC-BarringConfig OPTIONAL -- Need OP + } OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVoice-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVideo-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForSMS-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringForCSFB-r12 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Voice-r12 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Video-r12 AC-BarringConfig OPTIONAL -- Need OP +} + +ACDC-BarringForCommon-r13 ::= SEQUENCE { + acdc-HPLMNonly-r13 BOOLEAN, + barringPerACDC-CategoryList-r13 BarringPerACDC-CategoryList-r13 +} + +ACDC-BarringPerPLMN-List-r13 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF ACDC-BarringPerPLMN-r13 + +ACDC-BarringPerPLMN-r13 ::= SEQUENCE { + plmn-IdentityIndex-r13 INTEGER (1..maxPLMN-r11), + acdc-OnlyForHPLMN-r13 BOOLEAN, + barringPerACDC-CategoryList-r13 BarringPerACDC-CategoryList-r13 +} + +BarringPerACDC-CategoryList-r13 ::= SEQUENCE (SIZE (1..maxACDC-Cat-r13)) OF BarringPerACDC-Category-r13 + +BarringPerACDC-Category-r13 ::= SEQUENCE { + acdc-Category-r13 INTEGER (1..maxACDC-Cat-r13), + acdc-BarringConfig-r13 SEQUENCE { + ac-BarringFactor-r13 ENUMERATED { + p00, p05, p10, p15, p20, p25, p30, p40, + p50, p60, p70, p75, p80, p85, p90, p95}, + ac-BarringTime-r13 ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512} + } OPTIONAL -- Need OP +} + +UDT-Restricting-r13 ::= SEQUENCE { + udt-Restricting-r13 ENUMERATED {true} OPTIONAL, --Need OR + udt-RestrictingTime-r13 ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512} OPTIONAL --Need OR +} + +UDT-RestrictingPerPLMN-List-r13 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF UDT-RestrictingPerPLMN-r13 + +UDT-RestrictingPerPLMN-r13 ::= SEQUENCE { + plmn-IdentityIndex-r13 INTEGER (1..maxPLMN-r11), + udt-Restricting-r13 UDT-Restricting-r13 OPTIONAL --Need OR +} + +CIOT-EPS-OptimisationInfo-r13 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF CIOT-OptimisationPLMN-r13 + +CIOT-OptimisationPLMN-r13::= SEQUENCE { + up-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, -- Need OP + cp-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, -- Need OP + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL -- Need OP +} + + +SystemInformationBlockType3 ::= SEQUENCE { + cellReselectionInfoCommon SEQUENCE { + q-Hyst ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + speedStateReselectionPars SEQUENCE { + mobilityStateParameters MobilityStateParameters, + q-HystSF SEQUENCE { + sf-Medium ENUMERATED { + dB-6, dB-4, dB-2, dB0}, + sf-High ENUMERATED { + dB-6, dB-4, dB-2, dB0} + } + } OPTIONAL -- Need OP + }, + cellReselectionServingFreqInfo SEQUENCE { + s-NonIntraSearch ReselectionThreshold OPTIONAL, -- Need OP + threshServingLow ReselectionThreshold, + cellReselectionPriority CellReselectionPriority + }, + intraFreqCellReselectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + p-Max P-Max OPTIONAL, -- Need OP + s-IntraSearch ReselectionThreshold OPTIONAL, -- Need OP + allowedMeasBandwidth AllowedMeasBandwidth OPTIONAL, -- Need OP + presenceAntennaPort1 PresenceAntennaPort1, + neighCellConfig NeighCellConfig, + t-ReselectionEUTRA T-Reselection, + t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL -- Need OP + }, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType3-v10j0-IEs) OPTIONAL, + [[ s-IntraSearch-v920 SEQUENCE { + s-IntraSearchP-r9 ReselectionThreshold, + s-IntraSearchQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL, -- Need OP + s-NonIntraSearch-v920 SEQUENCE { + s-NonIntraSearchP-r9 ReselectionThreshold, + s-NonIntraSearchQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL, -- Need OP + q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP + threshServingLowQ-r9 ReselectionThresholdQ-r9 OPTIONAL -- Need OP + ]], + [[ q-QualMinWB-r11 Q-QualMin-r9 OPTIONAL -- Cond WB-RSRQ + ]], + [[ q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL -- Cond RSRQ + ]], + [[ cellReselectionServingFreqInfo-v1310 CellReselectionServingFreqInfo-v1310 OPTIONAL, -- Need OP + redistributionServingInfo-r13 RedistributionServingInfo-r13 OPTIONAL, --Need OR + cellSelectionInfoCE-r13 CellSelectionInfoCE-r13 OPTIONAL, -- Need OP + t-ReselectionEUTRA-CE-r13 T-ReselectionEUTRA-CE-r13 OPTIONAL -- Need OP + ]], + [[ cellSelectionInfoCE1-r13 CellSelectionInfoCE1-r13 OPTIONAL -- Need OP + ]], + [[ cellSelectionInfoCE1-v1360 CellSelectionInfoCE1-v1360 OPTIONAL -- Cond QrxlevminCE1 + ]], + [[ cellReselectionInfoCommon-v1460 CellReselectionInfoCommon-v1460 OPTIONAL -- Need OR + ]] +} + +RedistributionServingInfo-r13 ::= SEQUENCE { + redistributionFactorServing-r13 INTEGER(0..10), + redistributionFactorCell-r13 ENUMERATED{true} OPTIONAL, --Need OP + t360-r13 ENUMERATED {min4, min8, min16, min32,infinity, + spare3,spare2,spare1}, + redistrOnPagingOnly-r13 ENUMERATED {true} OPTIONAL --Need OP +} + +CellReselectionServingFreqInfo-v1310 ::= SEQUENCE { + cellReselectionSubPriority-r13 CellReselectionSubPriority-r13 +} + +-- Late non critical extensions +SystemInformationBlockType3-v10j0-IEs ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType3-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType3-v10l0-IEs ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CellReselectionInfoCommon-v1460 ::= SEQUENCE { + s-SearchDeltaP-r14 ENUMERATED {dB6, dB9, dB12, dB15} +} + + +SystemInformationBlockType4 ::= SEQUENCE { + intraFreqNeighCellList IntraFreqNeighCellList OPTIONAL, -- Need OR + intraFreqBlackCellList IntraFreqBlackCellList OPTIONAL, -- Need OR + csg-PhysCellIdRange PhysCellIdRange OPTIONAL, -- Cond CSG + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + +IntraFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellIntra)) OF IntraFreqNeighCellInfo + +IntraFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange, + ... +} + +IntraFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange + + +SystemInformationBlockType5 ::= SEQUENCE { + interFreqCarrierFreqList InterFreqCarrierFreqList, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType5-v8h0-IEs) OPTIONAL, + [[ interFreqCarrierFreqList-v1250 InterFreqCarrierFreqList-v1250 OPTIONAL, -- Need OR + interFreqCarrierFreqListExt-r12 InterFreqCarrierFreqListExt-r12 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqListExt-v1280 InterFreqCarrierFreqListExt-v1280 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqList-v1310 InterFreqCarrierFreqList-v1310 OPTIONAL, -- Need OR + interFreqCarrierFreqListExt-v1310 InterFreqCarrierFreqListExt-v1310 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqList-v1350 InterFreqCarrierFreqList-v1350 OPTIONAL, -- Need OR + interFreqCarrierFreqListExt-v1350 InterFreqCarrierFreqListExt-v1350 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqListExt-v1360 InterFreqCarrierFreqListExt-v1360 OPTIONAL -- Need OR + ]], + [[ scptm-FreqOffset-r14 INTEGER (1..8) OPTIONAL -- Need OP + ]] +} + +-- Late non critical extensions +SystemInformationBlockType5-v8h0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v8h0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v8h0 OPTIONAL, -- Need OP + nonCriticalExtension SystemInformationBlockType5-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType5-v9e0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v9e0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType5-v10j0-IEs OPTIONAL +} + +SystemInformationBlockType5-v10j0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v10j0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType5-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType5-v10l0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v10l0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType5-v13a0-IEs OPTIONAL +} + +SystemInformationBlockType5-v13a0-IEs ::= SEQUENCE { + -- Late non critical extensions from REL-10 upto REL-12 + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OR + interFreqCarrierFreqList-v13a0 InterFreqCarrierFreqList-v13a0 OPTIONAL, -- Need OR + -- Late non critical extensions from REL-13 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +InterFreqCarrierFreqList ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo + +InterFreqCarrierFreqList-v1250 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1250 + +InterFreqCarrierFreqList-v1310 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1310 + +InterFreqCarrierFreqList-v1350 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1350 + +InterFreqCarrierFreqList-v13a0 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1360 + +InterFreqCarrierFreqListExt-r12 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-r12 + +InterFreqCarrierFreqListExt-v1280 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v10j0 + +InterFreqCarrierFreqListExt-v1310 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1310 + +InterFreqCarrierFreqListExt-v1350 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1350 + +InterFreqCarrierFreqListExt-v1360 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v1360 + +InterFreqCarrierFreqInfo ::= SEQUENCE { + dl-CarrierFreq ARFCN-ValueEUTRA, + q-RxLevMin Q-RxLevMin, + p-Max P-Max OPTIONAL, -- Need OP + t-ReselectionEUTRA T-Reselection, + t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + allowedMeasBandwidth AllowedMeasBandwidth, + presenceAntennaPort1 PresenceAntennaPort1, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + neighCellConfig NeighCellConfig, + q-OffsetFreq Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList InterFreqNeighCellList OPTIONAL, -- Need OR + interFreqBlackCellList InterFreqBlackCellList OPTIONAL, -- Need OR + ..., + [[ q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP + threshX-Q-r9 SEQUENCE { + threshX-HighQ-r9 ReselectionThresholdQ-r9, + threshX-LowQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL -- Cond RSRQ + ]], + [[ q-QualMinWB-r11 Q-QualMin-r9 OPTIONAL -- Cond WB-RSRQ + ]] +} + +InterFreqCarrierFreqInfo-v8h0 ::= SEQUENCE { + multiBandInfoList MultiBandInfoList OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v9e0 ::= SEQUENCE { + dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond dl-FreqMax + multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v10j0 ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v10l0 ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v1250 ::= SEQUENCE { + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL -- Cond RSRQ2 +} + +InterFreqCarrierFreqInfo-r12 ::= SEQUENCE { + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9, + q-RxLevMin-r12 Q-RxLevMin, + p-Max-r12 P-Max OPTIONAL, -- Need OP + t-ReselectionEUTRA-r12 T-Reselection, + t-ReselectionEUTRA-SF-r12 SpeedStateScaleFactors OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + allowedMeasBandwidth-r12 AllowedMeasBandwidth, + presenceAntennaPort1-r12 PresenceAntennaPort1, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + neighCellConfig-r12 NeighCellConfig, + q-OffsetFreq-r12 Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList-r12 InterFreqNeighCellList OPTIONAL, -- Need OR + interFreqBlackCellList-r12 InterFreqBlackCellList OPTIONAL, -- Need OR + q-QualMin-r12 Q-QualMin-r9 OPTIONAL, -- Need OP + threshX-Q-r12 SEQUENCE { + threshX-HighQ-r12 ReselectionThresholdQ-r9, + threshX-LowQ-r12 ReselectionThresholdQ-r9 + } OPTIONAL, -- Cond RSRQ + q-QualMinWB-r12 Q-QualMin-r9 OPTIONAL, -- Cond WB-RSRQ + multiBandInfoList-r12 MultiBandInfoList-r11 OPTIONAL, -- Need OR + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL, -- Cond RSRQ2 +... +} + +InterFreqCarrierFreqInfo-v1310 ::= SEQUENCE { + cellReselectionSubPriority-r13 CellReselectionSubPriority-r13 OPTIONAL, -- Need OP + redistributionInterFreqInfo-r13 RedistributionInterFreqInfo-r13 OPTIONAL, --Need OP + cellSelectionInfoCE-r13 CellSelectionInfoCE-r13 OPTIONAL, -- Need OP + t-ReselectionEUTRA-CE-r13 T-ReselectionEUTRA-CE-r13 OPTIONAL -- Need OP +} + +InterFreqCarrierFreqInfo-v1350 ::= SEQUENCE { + cellSelectionInfoCE1-r13 CellSelectionInfoCE1-r13 OPTIONAL -- Need OP +} + +InterFreqCarrierFreqInfo-v1360 ::= SEQUENCE { + cellSelectionInfoCE1-v1360 CellSelectionInfoCE1-v1360 OPTIONAL -- Cond QrxlevminCE1 +} + +InterFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo + +InterFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange +} + +InterFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange + +RedistributionInterFreqInfo-r13 ::= SEQUENCE { + redistributionFactorFreq-r13 RedistributionFactor-r13 OPTIONAL, --Need OP + redistributionNeighCellList-r13 RedistributionNeighCellList-r13 OPTIONAL --Need OP +} + +RedistributionNeighCellList-r13 ::= SEQUENCE (SIZE (1..maxCellInter)) OF RedistributionNeighCell-r13 + +RedistributionNeighCell-r13 ::= SEQUENCE { + physCellId-r13 PhysCellId, + redistributionFactorCell-r13 RedistributionFactor-r13 +} + +RedistributionFactor-r13 ::= INTEGER(1..10) + + +SystemInformationBlockType6 ::= SEQUENCE { + carrierFreqListUTRA-FDD CarrierFreqListUTRA-FDD OPTIONAL, -- Need OR + carrierFreqListUTRA-TDD CarrierFreqListUTRA-TDD OPTIONAL, -- Need OR + t-ReselectionUTRA T-Reselection, + t-ReselectionUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType6-v8h0-IEs) OPTIONAL, + [[ carrierFreqListUTRA-FDD-v1250 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF + CarrierFreqInfoUTRA-v1250 OPTIONAL, -- Cond UTRA-FDD + carrierFreqListUTRA-TDD-v1250 SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF + CarrierFreqInfoUTRA-v1250 OPTIONAL, -- Cond UTRA-TDD + carrierFreqListUTRA-FDD-Ext-r12 CarrierFreqListUTRA-FDD-Ext-r12 OPTIONAL, -- Cond UTRA-FDD + carrierFreqListUTRA-TDD-Ext-r12 CarrierFreqListUTRA-TDD-Ext-r12 OPTIONAL -- Cond UTRA-TDD + ]] +} + +SystemInformationBlockType6-v8h0-IEs ::= SEQUENCE { + carrierFreqListUTRA-FDD-v8h0 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqInfoUTRA-FDD-v8h0 OPTIONAL, -- Cond UTRA-FDD + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CarrierFreqInfoUTRA-v1250 ::= SEQUENCE { + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL -- Need OP +} + +CarrierFreqListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqUTRA-FDD + +CarrierFreqUTRA-FDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + q-RxLevMin INTEGER (-60..-13), + p-MaxUTRA INTEGER (-50..33), + q-QualMin INTEGER (-24..0), + ..., + [[ threshX-Q-r9 SEQUENCE { + threshX-HighQ-r9 ReselectionThresholdQ-r9, + threshX-LowQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL -- Cond RSRQ + ]] +} + +CarrierFreqInfoUTRA-FDD-v8h0 ::= SEQUENCE { + multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL -- Need OR +} + +CarrierFreqListUTRA-FDD-Ext-r12 ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF + CarrierFreqUTRA-FDD-Ext-r12 + +CarrierFreqUTRA-FDD-Ext-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueUTRA, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + q-RxLevMin-r12 INTEGER (-60..-13), + p-MaxUTRA-r12 INTEGER (-50..33), + q-QualMin-r12 INTEGER (-24..0), + threshX-Q-r12 SEQUENCE { + threshX-HighQ-r12 ReselectionThresholdQ-r9, + threshX-LowQ-r12 ReselectionThresholdQ-r9 + } OPTIONAL, -- Cond RSRQ + multiBandInfoList-r12 SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL, -- Need OR + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ... +} + +CarrierFreqListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF CarrierFreqUTRA-TDD + +CarrierFreqUTRA-TDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + q-RxLevMin INTEGER (-60..-13), + p-MaxUTRA INTEGER (-50..33), + ... +} + +CarrierFreqListUTRA-TDD-Ext-r12 ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF + CarrierFreqUTRA-TDD-r12 + +CarrierFreqUTRA-TDD-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueUTRA, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + q-RxLevMin-r12 INTEGER (-60..-13), + p-MaxUTRA-r12 INTEGER (-50..33), + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ... +} + +FreqBandIndicator-UTRA-FDD ::= INTEGER (1..86) + + +SystemInformationBlockType7 ::= SEQUENCE { + t-ReselectionGERAN T-Reselection, + t-ReselectionGERAN-SF SpeedStateScaleFactors OPTIONAL, -- Need OR + carrierFreqsInfoList CarrierFreqsInfoListGERAN OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + +CarrierFreqsInfoListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF CarrierFreqsInfoGERAN + +CarrierFreqsInfoGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + commonInfo SEQUENCE { + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + ncc-Permitted BIT STRING (SIZE (8)), + q-RxLevMin INTEGER (0..45), + p-MaxGERAN INTEGER (0..39) OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold + }, + ... +} + + +SystemInformationBlockType8 ::= SEQUENCE { + systemTimeInfo SystemTimeInfoCDMA2000 OPTIONAL, -- Need OR + searchWindowSize INTEGER (0..15) OPTIONAL, -- Need OR + parametersHRPD SEQUENCE { + preRegistrationInfoHRPD PreRegistrationInfoHRPD, + cellReselectionParametersHRPD CellReselectionParametersCDMA2000 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + parameters1XRTT SEQUENCE { + csfb-RegistrationParam1XRTT CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP + longCodeState1XRTT BIT STRING (SIZE (42)) OPTIONAL, -- Need OR + cellReselectionParameters1XRTT CellReselectionParametersCDMA2000 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL, + [[ csfb-SupportForDualRxUEs-r9 BOOLEAN OPTIONAL, -- Need OR + cellReselectionParametersHRPD-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-HRPD + cellReselectionParameters1XRTT-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-1XRTT + csfb-RegistrationParam1XRTT-v920 CSFB-RegistrationParam1XRTT-v920 OPTIONAL, -- Cond REG-1XRTT + ac-BarringConfig1XRTT-r9 AC-BarringConfig1XRTT-r9 OPTIONAL -- Cond REG-1XRTT + ]], + [[ csfb-DualRxTxSupport-r10 ENUMERATED {true} OPTIONAL -- Cond REG-1XRTT + ]], + [[ sib8-PerPLMN-List-r11 SIB8-PerPLMN-List-r11 OPTIONAL -- Need OR + ]] +} + +CellReselectionParametersCDMA2000 ::= SEQUENCE { + bandClassList BandClassListCDMA2000, + neighCellList NeighCellListCDMA2000, + t-ReselectionCDMA2000 T-Reselection, + t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP +} + +CellReselectionParametersCDMA2000-r11 ::= SEQUENCE { + bandClassList BandClassListCDMA2000, + neighCellList-r11 SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-r11, + t-ReselectionCDMA2000 T-Reselection, + t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP +} + +CellReselectionParametersCDMA2000-v920 ::= SEQUENCE { + neighCellList-v920 NeighCellListCDMA2000-v920 +} + +NeighCellListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000 + +NeighCellCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + neighCellsPerFreqList NeighCellsPerBandclassListCDMA2000 +} + +NeighCellCDMA2000-r11 ::= SEQUENCE { + bandClass BandclassCDMA2000, + neighFreqInfoList-r11 SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-r11 +} + +NeighCellsPerBandclassListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000 + +NeighCellsPerBandclassCDMA2000 ::= SEQUENCE { + arfcn ARFCN-ValueCDMA2000, + physCellIdList PhysCellIdListCDMA2000 +} + +NeighCellsPerBandclassCDMA2000-r11 ::= SEQUENCE { + arfcn ARFCN-ValueCDMA2000, + physCellIdList-r11 SEQUENCE (SIZE (1..40)) OF PhysCellIdCDMA2000 +} + +NeighCellListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-v920 + +NeighCellCDMA2000-v920 ::= SEQUENCE { + neighCellsPerFreqList-v920 NeighCellsPerBandclassListCDMA2000-v920 +} + +NeighCellsPerBandclassListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-v920 + +NeighCellsPerBandclassCDMA2000-v920 ::= SEQUENCE { + physCellIdList-v920 PhysCellIdListCDMA2000-v920 +} + +PhysCellIdListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdCDMA2000 + +PhysCellIdListCDMA2000-v920 ::= SEQUENCE (SIZE (0..24)) OF PhysCellIdCDMA2000 + +BandClassListCDMA2000 ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassInfoCDMA2000 + +BandClassInfoCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High INTEGER (0..63), + threshX-Low INTEGER (0..63), + ... +} + +AC-BarringConfig1XRTT-r9 ::= SEQUENCE { + ac-Barring0to9-r9 INTEGER (0..63), + ac-Barring10-r9 INTEGER (0..7), + ac-Barring11-r9 INTEGER (0..7), + ac-Barring12-r9 INTEGER (0..7), + ac-Barring13-r9 INTEGER (0..7), + ac-Barring14-r9 INTEGER (0..7), + ac-Barring15-r9 INTEGER (0..7), + ac-BarringMsg-r9 INTEGER (0..7), + ac-BarringReg-r9 INTEGER (0..7), + ac-BarringEmg-r9 INTEGER (0..7) +} + +SIB8-PerPLMN-List-r11 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF SIB8-PerPLMN-r11 + +SIB8-PerPLMN-r11 ::= SEQUENCE { + plmn-Identity-r11 INTEGER (1..maxPLMN-r11), + parametersCDMA2000-r11 CHOICE { + explicitValue ParametersCDMA2000-r11, + defaultValue NULL + } +} + +ParametersCDMA2000-r11 ::= SEQUENCE { + systemTimeInfo-r11 CHOICE { + explicitValue SystemTimeInfoCDMA2000, + defaultValue NULL + } OPTIONAL, -- Need OR + searchWindowSize-r11 INTEGER (0..15), + parametersHRPD-r11 SEQUENCE { + preRegistrationInfoHRPD-r11 PreRegistrationInfoHRPD, + cellReselectionParametersHRPD-r11 CellReselectionParametersCDMA2000-r11 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + parameters1XRTT-r11 SEQUENCE { + csfb-RegistrationParam1XRTT-r11 CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP + csfb-RegistrationParam1XRTT-Ext-r11 CSFB-RegistrationParam1XRTT-v920 OPTIONAL, -- Cond REG-1XRTT-PerPLMN + longCodeState1XRTT-r11 BIT STRING (SIZE (42)) OPTIONAL, -- Cond PerPLMN-LC + cellReselectionParameters1XRTT-r11 CellReselectionParametersCDMA2000-r11 OPTIONAL, -- Need OR + ac-BarringConfig1XRTT-r11 AC-BarringConfig1XRTT-r9 OPTIONAL, -- Cond REG-1XRTT-PerPLMN + csfb-SupportForDualRxUEs-r11 BOOLEAN OPTIONAL, -- Need OR + csfb-DualRxTxSupport-r11 ENUMERATED {true} OPTIONAL -- Cond REG-1XRTT-PerPLMN + } OPTIONAL, -- Need OR + ... +} + + +SystemInformationBlockType9 ::= SEQUENCE { + hnb-Name OCTET STRING (SIZE(1..48)) OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType10 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningType OCTET STRING (SIZE (2)), + dummy OCTET STRING (SIZE (50)) OPTIONAL, -- Need OP + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType11 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningMessageSegmentType ENUMERATED {notLastSegment, lastSegment}, + warningMessageSegmentNumber INTEGER (0..63), + warningMessageSegment OCTET STRING, + dataCodingScheme OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType12-r9 ::= SEQUENCE { + messageIdentifier-r9 BIT STRING (SIZE (16)), + serialNumber-r9 BIT STRING (SIZE (16)), + warningMessageSegmentType-r9 ENUMERATED {notLastSegment, lastSegment}, + warningMessageSegmentNumber-r9 INTEGER (0..63), + warningMessageSegment-r9 OCTET STRING, + dataCodingScheme-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +SystemInformationBlockType13-r9 ::= SEQUENCE { + mbsfn-AreaInfoList-r9 MBSFN-AreaInfoList-r9, + notificationConfig-r9 MBMS-NotificationConfig-r9, + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ + notificationConfig-v1430 MBMS-NotificationConfig-v1430 OPTIONAL + ]] +} + + +SystemInformationBlockType14-r11 ::= SEQUENCE { + eab-Param-r11 CHOICE { + eab-Common-r11 EAB-Config-r11, + eab-PerPLMN-List-r11 SEQUENCE (SIZE (1..maxPLMN-r11)) OF EAB-ConfigPLMN-r11 + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +EAB-ConfigPLMN-r11 ::= SEQUENCE { + eab-Config-r11 EAB-Config-r11 OPTIONAL -- Need OR +} + +EAB-Config-r11 ::= SEQUENCE { + eab-Category-r11 ENUMERATED {a, b, c}, + eab-BarringBitmap-r11 BIT STRING (SIZE (10)) +} + + +SystemInformationBlockType15-r11 ::= SEQUENCE { + mbms-SAI-IntraFreq-r11 MBMS-SAI-List-r11 OPTIONAL, -- Need OR + mbms-SAI-InterFreqList-r11 MBMS-SAI-InterFreqList-r11 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ mbms-SAI-InterFreqList-v1140 MBMS-SAI-InterFreqList-v1140 OPTIONAL -- Cond InterFreq + ]], + [[ mbms-IntraFreqCarrierType-r14 MBMS-CarrierType-r14 OPTIONAL, -- Need OR + mbms-InterFreqCarrierTypeList-r14 + MBMS-InterFreqCarrierTypeList-r14 OPTIONAL -- Need OR + ]] +} + +MBMS-SAI-List-r11 ::= SEQUENCE (SIZE (1..maxSAI-MBMS-r11)) OF MBMS-SAI-r11 + +MBMS-SAI-r11 ::= INTEGER (0..65535) + +MBMS-SAI-InterFreqList-r11 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-r11 + +MBMS-SAI-InterFreqList-v1140 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-v1140 + +MBMS-SAI-InterFreq-r11 ::= SEQUENCE { + dl-CarrierFreq-r11 ARFCN-ValueEUTRA-r9, + mbms-SAI-List-r11 MBMS-SAI-List-r11 +} + +MBMS-SAI-InterFreq-v1140 ::= SEQUENCE { + multiBandInfoList-r11 MultiBandInfoList-r11 OPTIONAL -- Need OR +} + +MBMS-InterFreqCarrierTypeList-r14 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-CarrierType-r14 + +MBMS-CarrierType-r14 ::= SEQUENCE { + carrierType-r14 ENUMERATED {mbms, fembmsMixed, fembmsDedicated}, + frameOffset-r14 INTEGER (0..3) OPTIONAL -- Need OR +} + + +SystemInformationBlockType16-r11 ::= SEQUENCE { + timeInfo-r11 SEQUENCE { + timeInfoUTC-r11 INTEGER (0..549755813887), + dayLightSavingTime-r11 BIT STRING (SIZE (2)) OPTIONAL, -- Need OR + leapSeconds-r11 INTEGER (-127..128) OPTIONAL, -- Need OR + localTimeOffset-r11 INTEGER (-63..64) OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +SystemInformationBlockType17-r12 ::= SEQUENCE { + wlan-OffloadInfoPerPLMN-List-r12 SEQUENCE (SIZE (1..maxPLMN-r11)) OF + WLAN-OffloadInfoPerPLMN-r12 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +WLAN-OffloadInfoPerPLMN-r12 ::= SEQUENCE { + wlan-OffloadConfigCommon-r12 WLAN-OffloadConfig-r12 OPTIONAL, -- Need OR + wlan-Id-List-r12 WLAN-Id-List-r12 OPTIONAL, -- Need OR + ... +} + +WLAN-Id-List-r12 ::= SEQUENCE (SIZE (1..maxWLAN-Id-r12)) OF WLAN-Identifiers-r12 + +WLAN-Identifiers-r12 ::= SEQUENCE { + ssid-r12 OCTET STRING (SIZE (1..32)) OPTIONAL, -- Need OR + bssid-r12 OCTET STRING (SIZE (6)) OPTIONAL, -- Need OR + hessid-r12 OCTET STRING (SIZE (6)) OPTIONAL, -- Need OR + ... +} + + +SystemInformationBlockType18-r12 ::= SEQUENCE { + commConfig-r12 SEQUENCE { + commRxPool-r12 SL-CommRxPoolList-r12, + commTxPoolNormalCommon-r12 SL-CommTxPoolList-r12 OPTIONAL, -- Need OR + commTxPoolExceptional-r12 SL-CommTxPoolList-r12 OPTIONAL, -- Need OR + commSyncConfig-r12 SL-SyncConfigList-r12 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ commTxPoolNormalCommonExt-r13 SL-CommTxPoolListExt-r13 OPTIONAL, -- Need OR + commTxResourceUC-ReqAllowed-r13 ENUMERATED {true} OPTIONAL, -- Need OR + commTxAllowRelayCommon-r13 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + + +SystemInformationBlockType19-r12 ::= SEQUENCE { + discConfig-r12 SEQUENCE { + discRxPool-r12 SL-DiscRxPoolList-r12, + discTxPoolCommon-r12 SL-DiscTxPoolList-r12 OPTIONAL, -- Need OR + discTxPowerInfo-r12 SL-DiscTxPowerInfoList-r12 OPTIONAL, -- Cond Tx + discSyncConfig-r12 SL-SyncConfigList-r12 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + discInterFreqList-r12 SL-CarrierFreqInfoList-r12 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ discConfig-v1310 SEQUENCE { + discInterFreqList-v1310 SL-CarrierFreqInfoList-v1310 OPTIONAL, -- Need OR + gapRequestsAllowedCommon ENUMERATED {true} OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + discConfigRelay-r13 SEQUENCE { + relayUE-Config-r13 SL-DiscConfigRelayUE-r13, + remoteUE-Config-r13 SL-DiscConfigRemoteUE-r13 + } OPTIONAL, -- Need OR + discConfigPS-13 SEQUENCE { + discRxPoolPS-r13 SL-DiscRxPoolList-r12, + discTxPoolPS-Common-r13 SL-DiscTxPoolList-r12 OPTIONAL -- Need OR + } OPTIONAL -- Need OR + ]] +} + +SL-CarrierFreqInfoList-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-CarrierFreqInfo-r12 + +SL-CarrierFreqInfoList-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-CarrierFreqInfo-v1310 + +SL-CarrierFreqInfo-r12::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + plmn-IdentityList-r12 PLMN-IdentityList4-r12 OPTIONAL -- Need OP +} + +SL-DiscConfigRelayUE-r13 ::= SEQUENCE { + threshHigh-r13 RSRP-RangeSL4-r13 OPTIONAL, -- Need OR + threshLow-r13 RSRP-RangeSL4-r13 OPTIONAL, -- Need OR + hystMax-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf} OPTIONAL, -- Cond ThreshHigh + hystMin-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12} OPTIONAL -- Cond ThreshLow +} + +SL-DiscConfigRemoteUE-r13 ::= SEQUENCE { + threshHigh-r13 RSRP-RangeSL4-r13 OPTIONAL, -- Need OR + hystMax-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12} OPTIONAL, -- Cond ThreshHigh + reselectionInfoIC-r13 ReselectionInfoRelay-r13 +} + +ReselectionInfoRelay-r13 ::= SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + -- Note that the mapping of invidual values may be different for PC5, but the granularity/ + -- number of values is same as for Uu + filterCoefficient-r13 FilterCoefficient, + minHyst-r13 ENUMERATED {dB0, dB3, + dB6, dB9, dB12, dBinf} OPTIONAL -- Need OR +} + +SL-CarrierFreqInfo-v1310::= SEQUENCE { + discResourcesNonPS-r13 SL-ResourcesInterFreq-r13 OPTIONAL, -- Need OR + discResourcesPS-r13 SL-ResourcesInterFreq-r13 OPTIONAL, -- Need OR + discConfigOther-r13 SL-DiscConfigOtherInterFreq-r13 OPTIONAL, -- Need OR + ... +} + +PLMN-IdentityList4-r12 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo2-r12 + +PLMN-IdentityInfo2-r12 ::= CHOICE { + plmn-Index-r12 INTEGER (1..maxPLMN-r11), + plmnIdentity-r12 PLMN-Identity +} + +SL-DiscTxResourcesInterFreq-r13 ::= CHOICE { + acquireSI-FromCarrier-r13 NULL, + discTxPoolCommon-r13 SL-DiscTxPoolList-r12, + requestDedicated-r13 NULL, + noTxOnCarrier-r13 NULL +} + +SL-DiscConfigOtherInterFreq-r13::= SEQUENCE { + txPowerInfo-r13 SL-DiscTxPowerInfoList-r12 OPTIONAL, -- Cond Tx + refCarrierCommon-r13 ENUMERATED {pCell} OPTIONAL, -- Need OR + discSyncConfig-r13 SL-SyncConfigListNFreq-r13 OPTIONAL, -- Need OR + discCellSelectionInfo-r13 CellSelectionInfoNFreq-r13 OPTIONAL -- Need OR +} + +SL-ResourcesInterFreq-r13 ::= SEQUENCE { + discRxResourcesInterFreq-r13 SL-DiscRxPoolList-r12 OPTIONAL, -- Need OR + discTxResourcesInterFreq-r13 SL-DiscTxResourcesInterFreq-r13 OPTIONAL -- Need OR +} + + +SystemInformationBlockType20-r13 ::= SEQUENCE { + sc-mcch-RepetitionPeriod-r13 ENUMERATED {rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256}, + sc-mcch-Offset-r13 INTEGER (0..10), + sc-mcch-FirstSubframe-r13 INTEGER (0..9), + sc-mcch-duration-r13 INTEGER (2..9) OPTIONAL, + sc-mcch-ModificationPeriod-r13 ENUMERATED {rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256, + rf512, rf1024, r2048, rf4096, rf8192, rf16384, rf32768, rf65536}, + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ br-BCCH-Config-r14 SEQUENCE { + dummy ENUMERATED {rf1}, + dummy2 ENUMERATED {rf1}, + mpdcch-Narrowband-SC-MCCH-r14 INTEGER (1..maxAvailNarrowBands-r13), + mpdcch-NumRepetition-SC-MCCH-r14 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + mpdcch-StartSF-SC-MCCH-r14 CHOICE { + fdd-r14 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, + v5, v8, v10}, + tdd-r14 ENUMERATED {v1, v2, v4, v5, v8, v10, v20} + }, + mpdcch-PDSCH-HoppingConfig-SC-MCCH-r14 ENUMERATED {off, ce-ModeA, ce-ModeB}, + sc-mcch-CarrierFreq-r14 ARFCN-ValueEUTRA-r9, + sc-mcch-Offset-BR-r14 INTEGER (0..10), + sc-mcch-RepetitionPeriod-BR-r14 ENUMERATED {rf32, rf128, rf512, rf1024, + rf2048, rf4096, rf8192, rf16384}, + sc-mcch-ModificationPeriod-BR-r14 ENUMERATED { rf32, rf128, rf256, rf512, rf1024, + rf2048, rf4096, rf8192, rf16384, rf32768, + rf65536, rf131072, rf262144, rf524288, + rf1048576} + } OPTIONAL, -- Need OR + sc-mcch-SchedulingInfo-r14 SC-MCCH-SchedulingInfo-r14 OPTIONAL, -- Need OP + pdsch-maxNumRepetitionCEmodeA-SC-MTCH-r14 + ENUMERATED { r16, r32 } OPTIONAL, -- Need OR + pdsch-maxNumRepetitionCEmodeB-SC-MTCH-r14 + ENUMERATED { + r192, r256, r384, r512, r768, r1024, + r1536, r2048} OPTIONAL -- Need OR + ]], + [[ sc-mcch-RepetitionPeriod-v1470 ENUMERATED {rf1} OPTIONAL, -- Need OR + sc-mcch-ModificationPeriod-v1470 ENUMERATED {rf1} OPTIONAL -- Need OR + ]] +} + +SC-MCCH-SchedulingInfo-r14::= SEQUENCE { + onDurationTimerSCPTM-r14 ENUMERATED {psf10, psf20, psf100, psf300, + psf500, psf1000, psf1200, psf1600}, + drx-InactivityTimerSCPTM-r14 ENUMERATED {psf0, psf1, psf2, psf4, psf8, psf16, + psf32, psf64, psf128, psf256, ps512, + psf1024, psf2048, psf4096, psf8192, psf16384}, + schedulingPeriodStartOffsetSCPTM-r14 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2047), + sf4096 INTEGER(0..4095), + sf8192 INTEGER(0..8191) + }, + ... +} + + +SystemInformationBlockType21-r14 ::= SEQUENCE { + sl-V2X-ConfigCommon-r14 SL-V2X-ConfigCommon-r14 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +SL-V2X-ConfigCommon-r14 ::= SEQUENCE { + v2x-CommRxPool-r14 SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolNormalCommon-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + p2x-CommTxPoolNormalCommon-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolExceptional-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-SyncConfig-r14 SL-SyncConfigListV2X-r14 OPTIONAL, -- Need OR + v2x-InterFreqInfoList-r14 SL-InterFreqInfoListV2X-r14 OPTIONAL, -- Need OR + v2x-ResourceSelectionConfig-r14 SL-CommTxPoolSensingConfig-r14 OPTIONAL, -- Need OR + zoneConfig-r14 SL-ZoneConfig-r14 OPTIONAL, -- Need OR + typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR + thresSL-TxPrioritization-r14 SL-Priority-r13 OPTIONAL, -- Need OR + anchorCarrierFreqList-r14 SL-AnchorCarrierFreqList-V2X-r14 OPTIONAL, -- Need OR + offsetDFN-r14 INTEGER (0..1000) OPTIONAL, -- Need OR + cbr-CommonTxConfigList-r14 SL-CBR-CommonTxConfigList-r14 OPTIONAL -- Need OR +} + + + +AntennaInfoCommon ::= SEQUENCE { + antennaPortsCount ENUMERATED {an1, an2, an4, spare1} +} + +AntennaInfoDedicated ::= SEQUENCE { + transmissionMode ENUMERATED { + tm1, tm2, tm3, tm4, tm5, tm6, + tm7, tm8-v920}, + codebookSubsetRestriction CHOICE { + n2TxAntenna-tm3 BIT STRING (SIZE (2)), + n4TxAntenna-tm3 BIT STRING (SIZE (4)), + n2TxAntenna-tm4 BIT STRING (SIZE (6)), + n4TxAntenna-tm4 BIT STRING (SIZE (64)), + n2TxAntenna-tm5 BIT STRING (SIZE (4)), + n4TxAntenna-tm5 BIT STRING (SIZE (16)), + n2TxAntenna-tm6 BIT STRING (SIZE (4)), + n4TxAntenna-tm6 BIT STRING (SIZE (16)) + } OPTIONAL, -- Cond TM + ue-TransmitAntennaSelection CHOICE{ + release NULL, + setup ENUMERATED {closedLoop, openLoop} + } +} + +AntennaInfoDedicated-v920 ::= SEQUENCE { + codebookSubsetRestriction-v920 CHOICE { + n2TxAntenna-tm8-r9 BIT STRING (SIZE (6)), + n4TxAntenna-tm8-r9 BIT STRING (SIZE (32)) + } OPTIONAL -- Cond TM8 +} + +AntennaInfoDedicated-r10 ::= SEQUENCE { + transmissionMode-r10 ENUMERATED { + tm1, tm2, tm3, tm4, tm5, tm6, tm7, tm8-v920, + tm9-v1020, tm10-v1130, spare6, spare5, spare4, + spare3, spare2, spare1}, + codebookSubsetRestriction-r10 BIT STRING OPTIONAL, -- Cond TMX + ue-TransmitAntennaSelection CHOICE{ + release NULL, + setup ENUMERATED {closedLoop, openLoop} + } +} + +AntennaInfoDedicated-v10i0::= SEQUENCE { + maxLayersMIMO-r10 ENUMERATED {twoLayers, fourLayers, eightLayers} OPTIONAL -- Need OR +} + +AntennaInfoDedicated-v1250 ::= SEQUENCE { + alternativeCodebookEnabledFor4TX-r12 BOOLEAN +} + +AntennaInfoDedicated-v1430 ::= SEQUENCE { + ce-UE-TxAntennaSelection-config-r14 ENUMERATED {on} OPTIONAL -- Need OR +} + + +AntennaInfoUL-r10 ::= SEQUENCE { + transmissionModeUL-r10 ENUMERATED {tm1, tm2, spare6, spare5, + spare4, spare3, spare2, spare1} OPTIONAL, -- Need OR + fourAntennaPortActivated-r10 ENUMERATED {setup} OPTIONAL -- Need OR +} + + +CQI-ReportAperiodic-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-ReportModeAperiodic-r10 CQI-ReportModeAperiodic, + aperiodicCSI-Trigger-r10 SEQUENCE { + trigger1-r10 BIT STRING (SIZE (8)), + trigger2-r10 BIT STRING (SIZE (8)) + } OPTIONAL -- Need OR + } +} + +CQI-ReportAperiodic-v1250 ::= CHOICE { + release NULL, + setup SEQUENCE { + aperiodicCSI-Trigger-v1250 SEQUENCE { + trigger-SubframeSetIndicator-r12 ENUMERATED {s1, s2}, + trigger1-SubframeSetIndicator-r12 BIT STRING (SIZE (8)), + trigger2-SubframeSetIndicator-r12 BIT STRING (SIZE (8)) + } + } +} + +CQI-ReportAperiodic-v1310 ::= CHOICE { + release NULL, + setup SEQUENCE { + aperiodicCSI-Trigger-v1310 SEQUENCE { + trigger1-r13 BIT STRING (SIZE (32)), + trigger2-r13 BIT STRING (SIZE (32)), + trigger3-r13 BIT STRING (SIZE (32)), + trigger4-r13 BIT STRING (SIZE (32)), + trigger5-r13 BIT STRING (SIZE (32)), + trigger6-r13 BIT STRING (SIZE (32)) + } OPTIONAL, -- Need ON + aperiodicCSI-Trigger2-r13 CHOICE { + release NULL, + setup SEQUENCE { + trigger1-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger2-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger3-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger4-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger5-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger6-SubframeSetIndicator-r13 BIT STRING (SIZE (32)) + } + } OPTIONAL -- Need ON + } +} + +CQI-ReportAperiodicProc-r11 ::= SEQUENCE { + cqi-ReportModeAperiodic-r11 CQI-ReportModeAperiodic, + trigger01-r11 BOOLEAN, + trigger10-r11 BOOLEAN, + trigger11-r11 BOOLEAN +} + +CQI-ReportAperiodicProc-v1310 ::= SEQUENCE { + trigger001-r13 BOOLEAN, + trigger010-r13 BOOLEAN, + trigger011-r13 BOOLEAN, + trigger100-r13 BOOLEAN, + trigger101-r13 BOOLEAN, + trigger110-r13 BOOLEAN, + trigger111-r13 BOOLEAN +} + +CQI-ReportAperiodicHybrid-r14 ::= SEQUENCE { + triggers-r14 CHOICE { + oneBit-r14 SEQUENCE { + trigger1-Indicator-r14 BIT STRING (SIZE (8)) + }, + twoBit-r14 SEQUENCE { + trigger01-Indicator-r14 BIT STRING (SIZE (8)), + trigger10-Indicator-r14 BIT STRING (SIZE (8)), + trigger11-Indicator-r14 BIT STRING (SIZE (8)) + }, + threeBit-r14 SEQUENCE { + trigger001-Indicator-r14 BIT STRING (SIZE (32)), + trigger010-Indicator-r14 BIT STRING (SIZE (32)), + trigger011-Indicator-r14 BIT STRING (SIZE (32)), + trigger100-Indicator-r14 BIT STRING (SIZE (32)) , + trigger101-Indicator-r14 BIT STRING (SIZE (32)), + trigger110-Indicator-r14 BIT STRING (SIZE (32)), + trigger111-Indicator-r14 BIT STRING (SIZE (32)) + } + } OPTIONAL -- Need OR +} + +CQI-ReportModeAperiodic ::= ENUMERATED { + rm12, rm20, rm22, rm30, rm31, + rm32-v1250, rm10-v1310, rm11-v1310 +} + + +CQI-ReportBoth-r11 ::= SEQUENCE { + csi-IM-ConfigToReleaseList-r11 CSI-IM-ConfigToReleaseList-r11 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModList-r11 CSI-IM-ConfigToAddModList-r11 OPTIONAL, -- Need ON + csi-ProcessToReleaseList-r11 CSI-ProcessToReleaseList-r11 OPTIONAL, -- Need ON + csi-ProcessToAddModList-r11 CSI-ProcessToAddModList-r11 OPTIONAL -- Need ON +} + +CQI-ReportBoth-v1250 ::= SEQUENCE { + csi-IM-ConfigToReleaseListExt-r12 CSI-IM-ConfigId-v1250 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModListExt-r12 CSI-IM-ConfigExt-r12 OPTIONAL -- Need ON +} + +CQI-ReportBoth-v1310 ::= SEQUENCE { + csi-IM-ConfigToReleaseListExt-r13 CSI-IM-ConfigToReleaseListExt-r13 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModListExt-r13 CSI-IM-ConfigToAddModListExt-r13 OPTIONAL -- Need ON +} + +CSI-IM-ConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-Config-r11 + +CSI-IM-ConfigToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-IM-v1310)) OF CSI-IM-ConfigExt-r12 + +CSI-IM-ConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-ConfigId-r11 + +CSI-IM-ConfigToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-IM-v1310)) OF CSI-IM-ConfigId-v1310 + +CSI-ProcessToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF CSI-Process-r11 + +CSI-ProcessToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF CSI-ProcessId-r11 + +CQI-ReportBothProc-r11 ::= SEQUENCE { + ri-Ref-CSI-ProcessId-r11 CSI-ProcessId-r11 OPTIONAL, -- Need OR + pmi-RI-Report-r11 ENUMERATED {setup} OPTIONAL -- Need OR +} + + +CQI-ReportConfig ::= SEQUENCE { + cqi-ReportModeAperiodic CQI-ReportModeAperiodic OPTIONAL, -- Need OR + nomPDSCH-RS-EPRE-Offset INTEGER (-1..6), + cqi-ReportPeriodic CQI-ReportPeriodic OPTIONAL -- Need ON +} + +CQI-ReportConfig-v920 ::= SEQUENCE { + cqi-Mask-r9 ENUMERATED {setup} OPTIONAL, -- Cond cqi-Setup + pmi-RI-Report-r9 ENUMERATED {setup} OPTIONAL -- Cond PMIRI +} + +CQI-ReportConfig-r10 ::= SEQUENCE { + cqi-ReportAperiodic-r10 CQI-ReportAperiodic-r10 OPTIONAL, -- Need ON + nomPDSCH-RS-EPRE-Offset INTEGER (-1..6), + cqi-ReportPeriodic-r10 CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON + pmi-RI-Report-r9 ENUMERATED {setup} OPTIONAL, -- Cond PMIRIPCell + csi-SubframePatternConfig-r10 CHOICE { + release NULL, + setup SEQUENCE { + csi-MeasSubframeSet1-r10 MeasSubframePattern-r10, + csi-MeasSubframeSet2-r10 MeasSubframePattern-r10 + } + } OPTIONAL -- Need ON +} + +CQI-ReportConfig-v1130 ::= SEQUENCE { + cqi-ReportPeriodic-v1130 CQI-ReportPeriodic-v1130, + cqi-ReportBoth-r11 CQI-ReportBoth-r11 +} + +CQI-ReportConfig-v1250 ::= SEQUENCE { + csi-SubframePatternConfig-r12 CHOICE { + release NULL, + setup SEQUENCE { + csi-MeasSubframeSets-r12 BIT STRING (SIZE (10)) + } + } OPTIONAL, -- Need ON + cqi-ReportBoth-v1250 CQI-ReportBoth-v1250 OPTIONAL, -- Need ON + cqi-ReportAperiodic-v1250 CQI-ReportAperiodic-v1250 OPTIONAL, -- Need ON + altCQI-Table-r12 ENUMERATED { + allSubframes, csi-SubframeSet1, + csi-SubframeSet2, spare1} OPTIONAL -- Need OP +} + +CQI-ReportConfig-v1310 ::= SEQUENCE { + cqi-ReportBoth-v1310 CQI-ReportBoth-v1310 OPTIONAL, -- Need ON + cqi-ReportAperiodic-v1310 CQI-ReportAperiodic-v1310 OPTIONAL, -- Need ON + cqi-ReportPeriodic-v1310 CQI-ReportPeriodic-v1310 OPTIONAL -- Need ON +} + +CQI-ReportConfig-v1320 ::= SEQUENCE { + cqi-ReportPeriodic-v1320 CQI-ReportPeriodic-v1320 OPTIONAL -- Need ON +} + +CQI-ReportConfig-v1430 ::= SEQUENCE { + cqi-ReportAperiodicHybrid-r14 CQI-ReportAperiodicHybrid-r14 OPTIONAL -- Need ON +} + +CQI-ReportConfigSCell-r10 ::= SEQUENCE { + cqi-ReportModeAperiodic-r10 CQI-ReportModeAperiodic OPTIONAL, -- Need OR + nomPDSCH-RS-EPRE-Offset-r10 INTEGER (-1..6), + cqi-ReportPeriodicSCell-r10 CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON + pmi-RI-Report-r10 ENUMERATED {setup} OPTIONAL -- Cond PMIRISCell +} + + + +CQI-ReportPeriodic ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-PUCCH-ResourceIndex INTEGER (0..1185), + cqi-pmi-ConfigIndex INTEGER (0..1023), + cqi-FormatIndicatorPeriodic CHOICE { + widebandCQI NULL, + subbandCQI SEQUENCE { + k INTEGER (1..4) + } + }, + ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR + simultaneousAckNackAndCQI BOOLEAN + } +} + +CQI-ReportPeriodic-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-PUCCH-ResourceIndex-r10 INTEGER (0..1184), + cqi-PUCCH-ResourceIndexP1-r10 INTEGER (0..1184) OPTIONAL, -- Need OR + cqi-pmi-ConfigIndex INTEGER (0..1023), + cqi-FormatIndicatorPeriodic-r10 CHOICE { + widebandCQI-r10 SEQUENCE { + csi-ReportMode-r10 ENUMERATED {submode1, submode2} OPTIONAL -- Need OR + }, + subbandCQI-r10 SEQUENCE { + k INTEGER (1..4), + periodicityFactor-r10 ENUMERATED {n2, n4} + } + }, + ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR + simultaneousAckNackAndCQI BOOLEAN, + cqi-Mask-r9 ENUMERATED {setup} OPTIONAL, -- Need OR + csi-ConfigIndex-r10 CHOICE { + release NULL, + setup SEQUENCE { + cqi-pmi-ConfigIndex2-r10 INTEGER (0..1023), + ri-ConfigIndex2-r10 INTEGER (0..1023) OPTIONAL -- Need OR + } + } OPTIONAL -- Need ON + } +} + + +CQI-ReportPeriodic-v1130 ::= SEQUENCE { + simultaneousAckNackAndCQI-Format3-r11 ENUMERATED {setup} OPTIONAL, -- Need OR + cqi-ReportPeriodicProcExtToReleaseList-r11 CQI-ReportPeriodicProcExtToReleaseList-r11 OPTIONAL, -- Need ON + cqi-ReportPeriodicProcExtToAddModList-r11 CQI-ReportPeriodicProcExtToAddModList-r11 OPTIONAL -- Need ON +} + +CQI-ReportPeriodic-v1310 ::= SEQUENCE { + cri-ReportConfig-r13 CRI-ReportConfig-r13 OPTIONAL, -- Need OR + simultaneousAckNackAndCQI-Format4-Format5-r13 ENUMERATED {setup} OPTIONAL-- Need OR +} + +CQI-ReportPeriodic-v1320 ::= SEQUENCE { + periodicityFactorWB-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR +} + +CQI-ReportPeriodicProcExtToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCQI-ProcExt-r11)) OF CQI-ReportPeriodicProcExt-r11 + +CQI-ReportPeriodicProcExtToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCQI-ProcExt-r11)) OF CQI-ReportPeriodicProcExtId-r11 + +CQI-ReportPeriodicProcExt-r11 ::= SEQUENCE { + cqi-ReportPeriodicProcExtId-r11 CQI-ReportPeriodicProcExtId-r11, + cqi-pmi-ConfigIndex-r11 INTEGER (0..1023), + cqi-FormatIndicatorPeriodic-r11 CHOICE { + widebandCQI-r11 SEQUENCE { + csi-ReportMode-r11 ENUMERATED {submode1, submode2} OPTIONAL -- Need OR + }, + subbandCQI-r11 SEQUENCE { + k INTEGER (1..4), + periodicityFactor-r11 ENUMERATED {n2, n4} + } + }, + ri-ConfigIndex-r11 INTEGER (0..1023) OPTIONAL, -- Need OR + csi-ConfigIndex-r11 CHOICE { + release NULL, + setup SEQUENCE { + cqi-pmi-ConfigIndex2-r11 INTEGER (0..1023), + ri-ConfigIndex2-r11 INTEGER (0..1023) OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + ..., + [[ cri-ReportConfig-r13 CRI-ReportConfig-r13 OPTIONAL -- Need ON + ]], + [[ periodicityFactorWB-r13 ENUMERATED {n2, n4} OPTIONAL -- Need ON + ]] +} + +CRI-ReportConfig-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + cri-ConfigIndex-r13 CRI-ConfigIndex-r13, + cri-ConfigIndex2-r13 CRI-ConfigIndex-r13 OPTIONAL -- Need OR + } +} + +CRI-ConfigIndex-r13 ::= INTEGER (0..1023) + + +CQI-ReportPeriodicProcExtId-r11 ::= INTEGER (1..maxCQI-ProcExt-r11) + + +CrossCarrierSchedulingConfig-r10 ::= SEQUENCE { + schedulingCellInfo-r10 CHOICE { + own-r10 SEQUENCE { -- No cross carrier scheduling + cif-Presence-r10 BOOLEAN + }, + other-r10 SEQUENCE { -- Cross carrier scheduling + schedulingCellId-r10 ServCellIndex-r10, + pdsch-Start-r10 INTEGER (1..4) + } + } +} + +CrossCarrierSchedulingConfig-r13 ::= SEQUENCE { + schedulingCellInfo-r13 CHOICE { + own-r13 SEQUENCE { -- No cross carrier scheduling + cif-Presence-r13 BOOLEAN + }, + other-r13 SEQUENCE { -- Cross carrier scheduling + schedulingCellId-r13 ServCellIndex-r13, + pdsch-Start-r13 INTEGER (1..4), + cif-InSchedulingCell-r13 INTEGER (1..7) + } + } +} + +CrossCarrierSchedulingConfigLAA-UL-r14 ::= SEQUENCE { + schedulingCellId-r14 ServCellIndex-r13, + cif-InSchedulingCell-r14 INTEGER (1..7) +} + +CSI-IM-Config-r11 ::= SEQUENCE { + csi-IM-ConfigId-r11 CSI-IM-ConfigId-r11, + resourceConfig-r11 INTEGER (0..31), + subframeConfig-r11 INTEGER (0..154), + ..., + [[ interferenceMeasRestriction-r13 BOOLEAN OPTIONAL -- Need ON + ]] +} + +CSI-IM-ConfigExt-r12 ::= SEQUENCE { + csi-IM-ConfigId-v1250 CSI-IM-ConfigId-v1250, + resourceConfig-r12 INTEGER (0..31), + subframeConfig-r12 INTEGER (0..154), + ..., + [[ interferenceMeasRestriction-r13 BOOLEAN OPTIONAL, -- Need ON + csi-IM-ConfigId-v1310 CSI-IM-ConfigId-v1310 OPTIONAL -- Need ON + ]] +} + + +CSI-IM-ConfigId-r11 ::= INTEGER (1..maxCSI-IM-r11) +CSI-IM-ConfigId-r12 ::= INTEGER (1..maxCSI-IM-r12) +CSI-IM-ConfigId-v1250 ::= INTEGER (maxCSI-IM-r12) +CSI-IM-ConfigId-v1310 ::= INTEGER (minCSI-IM-r13..maxCSI-IM-r13) +CSI-IM-ConfigId-r13 ::= INTEGER (1..maxCSI-IM-r13) + + +CSI-Process-r11 ::= SEQUENCE { + csi-ProcessId-r11 CSI-ProcessId-r11, + csi-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11, + csi-IM-ConfigId-r11 CSI-IM-ConfigId-r11, + p-C-AndCBSRList-r11 P-C-AndCBSR-Pair-r13a, + cqi-ReportBothProc-r11 CQI-ReportBothProc-r11 OPTIONAL, -- Need OR + cqi-ReportPeriodicProcId-r11 INTEGER (0..maxCQI-ProcExt-r11) OPTIONAL, -- Need OR + cqi-ReportAperiodicProc-r11 CQI-ReportAperiodicProc-r11 OPTIONAL, -- Need OR + ..., + [[ alternativeCodebookEnabledFor4TXProc-r12 ENUMERATED {true} OPTIONAL, -- Need ON + csi-IM-ConfigIdList-r12 CHOICE { + release NULL, + setup SEQUENCE (SIZE (1..2)) OF CSI-IM-ConfigId-r12 + } OPTIONAL, -- Need ON + cqi-ReportAperiodicProc2-r12 CHOICE { + release NULL, + setup CQI-ReportAperiodicProc-r11 + } OPTIONAL -- Need ON + ]], + [[ cqi-ReportAperiodicProc-v1310 CHOICE { + release NULL, + setup CQI-ReportAperiodicProc-v1310 + } OPTIONAL, -- Need ON + cqi-ReportAperiodicProc2-v1310 CHOICE { + release NULL, + setup CQI-ReportAperiodicProc-v1310 + } OPTIONAL, -- Need ON + eMIMO-Type-r13 CSI-RS-ConfigEMIMO-r13 OPTIONAL -- Need ON + ]], + [[ eMIMO-Type-v1430 CSI-RS-ConfigEMIMO-v1430 OPTIONAL, -- Need ON + eMIMO-Hybrid-r14 CSI-RS-ConfigEMIMO-Hybrid-r14 OPTIONAL, -- Need ON + advancedCodebookEnabled-r14 BOOLEAN OPTIONAL -- Need ON + ]] +} + +CSI-ProcessId-r11 ::= INTEGER (1..maxCSI-Proc-r11) + + +CSI-RS-Config-r10 ::= SEQUENCE { + csi-RS-r10 CHOICE { + release NULL, + setup SEQUENCE { + antennaPortsCount-r10 ENUMERATED {an1, an2, an4, an8}, + resourceConfig-r10 INTEGER (0..31), + subframeConfig-r10 INTEGER (0..154), + p-C-r10 INTEGER (-8..15) + } + } OPTIONAL, -- Need ON + zeroTxPowerCSI-RS-r10 ZeroTxPowerCSI-RS-Conf-r12 OPTIONAL -- Need ON +} + +CSI-RS-Config-v1250 ::= SEQUENCE { + zeroTxPowerCSI-RS2-r12 ZeroTxPowerCSI-RS-Conf-r12 OPTIONAL, -- Need ON + ds-ZeroTxPowerCSI-RS-r12 CHOICE { + release NULL, + setup SEQUENCE { + zeroTxPowerCSI-RS-List-r12 SEQUENCE (SIZE (1..maxDS-ZTP-CSI-RS-r12)) OF ZeroTxPowerCSI-RS-r12 + } + } OPTIONAL -- Need ON +} + +CSI-RS-Config-v1310 ::= SEQUENCE { + eMIMO-Type-r13 CSI-RS-ConfigEMIMO-r13 OPTIONAL -- Need ON +} + +CSI-RS-Config-v1430 ::= SEQUENCE { + eMIMO-Type-v1430 CSI-RS-ConfigEMIMO-v1430 OPTIONAL, -- Need ON + eMIMO-Hybrid-r14 CSI-RS-ConfigEMIMO-Hybrid-r14 OPTIONAL, -- Need ON + advancedCodebookEnabled-r14 BOOLEAN OPTIONAL -- Need ON +} + +ZeroTxPowerCSI-RS-Conf-r12 ::= CHOICE { + release NULL, + setup ZeroTxPowerCSI-RS-r12 +} + +ZeroTxPowerCSI-RS-r12 ::= SEQUENCE { + zeroTxPowerResourceConfigList-r12 BIT STRING (SIZE (16)), + zeroTxPowerSubframeConfig-r12 INTEGER (0..154) +} + + +CSI-RS-ConfigBeamformed-r13 ::= SEQUENCE { + csi-RS-ConfigNZPIdListExt-r13 SEQUENCE (SIZE (1..7)) OF CSI-RS-ConfigNZPId-r13 OPTIONAL, -- Need OR + csi-IM-ConfigIdList-r13 SEQUENCE (SIZE (1..8)) OF CSI-IM-ConfigId-r13 OPTIONAL, -- Need OR + p-C-AndCBSR-PerResourceConfigList-r13 SEQUENCE (SIZE (1..8)) OF P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR + ace-For4Tx-PerResourceConfigList-r13 SEQUENCE (SIZE (1..7)) OF BOOLEAN OPTIONAL, -- Need OR + alternativeCodebookEnabledBeamformed-r13 ENUMERATED {true} OPTIONAL, -- Need OR + channelMeasRestriction-r13 ENUMERATED {on} OPTIONAL -- Need OR +} + +CSI-RS-ConfigBeamformed-r14 ::= SEQUENCE { + csi-RS-ConfigNZPIdListExt-r14 SEQUENCE (SIZE (1..7)) OF CSI-RS-ConfigNZPId-r13 OPTIONAL, -- Need OR + csi-IM-ConfigIdList-r14 SEQUENCE (SIZE (1..8)) OF CSI-IM-ConfigId-r13 OPTIONAL, -- Need OR + p-C-AndCBSR-PerResourceConfigList-r14 SEQUENCE (SIZE (1..8)) OF P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR + ace-For4Tx-PerResourceConfigList-r14 SEQUENCE (SIZE (1..7)) OF BOOLEAN OPTIONAL, -- Need OR + alternativeCodebookEnabledBeamformed-r14 ENUMERATED {true} OPTIONAL, -- Need OR + channelMeasRestriction-r14 ENUMERATED {on} OPTIONAL, -- Need OR + csi-RS-ConfigNZP-ApList-r14 SEQUENCE (SIZE (1..8)) OF CSI-RS-ConfigNZP-r11 + OPTIONAL, -- Need OR + nzp-ResourceConfigOriginal-v1430 CSI-RS-Config-NZP-v1430 OPTIONAL, -- Need OR + csi-RS-NZP-Activation-r14 CSI-RS-ConfigNZP-Activation-r14 OPTIONAL -- Need OR +} + +CSI-RS-ConfigBeamformed-v1430::= SEQUENCE { + csi-RS-ConfigNZP-ApList-r14 SEQUENCE (SIZE (1..8)) OF CSI-RS-ConfigNZP-r11 + OPTIONAL, -- Need OR + nzp-ResourceConfigOriginal-v1430 CSI-RS-Config-NZP-v1430 OPTIONAL, -- Need OR + csi-RS-NZP-Activation-r14 CSI-RS-ConfigNZP-Activation-r14 OPTIONAL -- Need OR +} + +CSI-RS-Config-NZP-v1430::= SEQUENCE { + transmissionComb-r14 NZP-TransmissionComb-r14 OPTIONAL, -- Need OR + frequencyDensity-r14 NZP-FrequencyDensity-r14 OPTIONAL -- Need OR +} + +CSI-RS-ConfigNZP-Activation-r14::= SEQUENCE { + csi-RS-NZP-mode-r14 ENUMERATED {semiPersistent, aperiodic}, + activatedResources-r14 INTEGER (0..4) +} + + +CSI-RS-ConfigEMIMO-r13 ::= CHOICE { + release NULL, + setup CHOICE { + nonPrecoded-r13 CSI-RS-ConfigNonPrecoded-r13, + beamformed-r13 CSI-RS-ConfigBeamformed-r13 + } +} + +CSI-RS-ConfigEMIMO-v1430 ::= CHOICE { + release NULL, + setup CHOICE { + nonPrecoded-v1430 CSI-RS-ConfigNonPrecoded-v1430, + beamformed-v1430 CSI-RS-ConfigBeamformed-v1430 + } +} + +CSI-RS-ConfigEMIMO2-r14 ::= CHOICE { + release NULL, + setup CSI-RS-ConfigBeamformed-r14 +} + +CSI-RS-ConfigEMIMO-Hybrid-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + periodicityOffsetIndex-r14 INTEGER (0..1023) OPTIONAL, -- Need OR + eMIMO-Type2-r14 CSI-RS-ConfigEMIMO2-r14 OPTIONAL -- Need ON + } +} + + + +CSI-RS-ConfigNonPrecoded-r13 ::= SEQUENCE { + p-C-AndCBSRList-r13 P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR + codebookConfigN1-r13 ENUMERATED {n1, n2, n3, n4, n8}, + codebookConfigN2-r13 ENUMERATED {n1, n2, n3, n4, n8}, + codebookOverSamplingRateConfig-O1-r13 ENUMERATED {n4, n8} OPTIONAL, -- Need OR + codebookOverSamplingRateConfig-O2-r13 ENUMERATED {n4, n8} OPTIONAL, -- Need OR + codebookConfig-r13 INTEGER (1..4), + csi-IM-ConfigIdList-r13 SEQUENCE (SIZE (1..2)) OF CSI-IM-ConfigId-r13 OPTIONAL, -- Need OR + csi-RS-ConfigNZP-EMIMO-r13 CSI-RS-ConfigNZP-EMIMO-r13 OPTIONAL -- Need ON +} + +CSI-RS-ConfigNonPrecoded-v1430::= SEQUENCE { + csi-RS-ConfigNZP-EMIMO-v1430 CSI-RS-ConfigNZP-EMIMO-v1430 OPTIONAL, -- Need ON + codebookConfigN1-v1430 ENUMERATED {n5, n6, n7, n10, n12, n14, n16}, + codebookConfigN2-r1430 ENUMERATED {n5, n6, n7 }, + nzp-ResourceConfigTM9-Original-v1430 CSI-RS-Config-NZP-v1430 +} + + +CSI-RS-ConfigNZP-r11 ::= SEQUENCE { + csi-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11, + antennaPortsCount-r11 ENUMERATED {an1, an2, an4, an8}, + resourceConfig-r11 INTEGER (0..31), + subframeConfig-r11 INTEGER (0..154), + scramblingIdentity-r11 INTEGER (0..503), + qcl-CRS-Info-r11 SEQUENCE { + qcl-ScramblingIdentity-r11 INTEGER (0..503), + crs-PortsCount-r11 ENUMERATED {n1, n2, n4, spare1}, + mbsfn-SubframeConfigList-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList MBSFN-SubframeConfigList + } + } OPTIONAL -- Need ON + } OPTIONAL, -- Need OR + ..., + [[ csi-RS-ConfigNZPId-v1310 CSI-RS-ConfigNZPId-v1310 OPTIONAL -- Need ON + ]], + [[ transmissionComb-r14 NZP-TransmissionComb-r14 OPTIONAL, -- Need OR + frequencyDensity-r14 NZP-FrequencyDensity-r14 OPTIONAL -- Need OR + ]], + [[ mbsfn-SubframeConfigList-v1430 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 + } + } OPTIONAL -- Need OP + ]] +} + +CSI-RS-ConfigNZP-EMIMO-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + nzp-resourceConfigList-r13 SEQUENCE (SIZE (1..2)) OF NZP-ResourceConfig-r13, + cdmType-r13 ENUMERATED {cdm2, cdm4} OPTIONAL -- Need OR + } +} + +CSI-RS-ConfigNZP-EMIMO-v1430 ::= SEQUENCE { + -- All extensions are for Non-Precoded so could be grouped by setup/ release choice + nzp-resourceConfigListExt-r14 SEQUENCE (SIZE (0..4)) OF NZP-ResourceConfig-r13, + cdmType-v1430 ENUMERATED {cdm8 } OPTIONAL -- Need OR +} + +NZP-ResourceConfig-r13 ::= SEQUENCE { + resourceConfig-r13 ResourceConfig-r13, + ..., + [[ transmissionComb-r14 NZP-TransmissionComb-r14 OPTIONAL, -- Need OR + frequencyDensity-r14 NZP-FrequencyDensity-r14 OPTIONAL -- Need OR + ]] +} + +ResourceConfig-r13 ::= INTEGER (0..31) + +NZP-TransmissionComb-r14 ::= INTEGER (0..2) +NZP-FrequencyDensity-r14 ::= ENUMERATED {d1, d2, d3} + + +CSI-RS-ConfigNZPId-r11 ::= INTEGER (1..maxCSI-RS-NZP-r11) +CSI-RS-ConfigNZPId-v1310 ::= INTEGER (minCSI-RS-NZP-r13..maxCSI-RS-NZP-r13) +CSI-RS-ConfigNZPId-r13 ::= INTEGER (1..maxCSI-RS-NZP-r13) + + +CSI-RS-ConfigZP-r11 ::= SEQUENCE { + csi-RS-ConfigZPId-r11 CSI-RS-ConfigZPId-r11, + resourceConfigList-r11 BIT STRING (SIZE (16)), + subframeConfig-r11 INTEGER (0..154), + ... +} + +CSI-RS-ConfigZP-ApList-r14 ::= CHOICE { + release NULL, + setup SEQUENCE (SIZE (1.. maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZP-r11 +} + + +CSI-RS-ConfigZPId-r11 ::= INTEGER (1..maxCSI-RS-ZP-r11) + + +DataInactivityTimer-r14 ::= ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, s40, s50, s60, + s80, s100, s120, s150, s180} + + +DMRS-Config-r11 ::= CHOICE { + release NULL, + setup SEQUENCE { + scramblingIdentity-r11 INTEGER (0..503), + scramblingIdentity2-r11 INTEGER (0..503) + } +} +DMRS-Config-v1310 ::= SEQUENCE { + dmrs-tableAlt-r13 ENUMERATED {true} OPTIONAL -- Need OR +} + + +DRB-Identity ::= INTEGER (1..32) + + +EPDCCH-Config-r11 ::= SEQUENCE{ + config-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframePatternConfig-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframePattern-r11 MeasSubframePattern-r10 + } + } OPTIONAL, -- Need ON + startSymbol-r11 INTEGER (1..4) OPTIONAL, -- Need OP + setConfigToReleaseList-r11 EPDCCH-SetConfigToReleaseList-r11 OPTIONAL, -- Need ON + setConfigToAddModList-r11 EPDCCH-SetConfigToAddModList-r11 OPTIONAL -- Need ON + } + } +} + +EPDCCH-SetConfigToAddModList-r11 ::= SEQUENCE (SIZE(1..maxEPDCCH-Set-r11)) OF EPDCCH-SetConfig-r11 + +EPDCCH-SetConfigToReleaseList-r11 ::= SEQUENCE (SIZE(1..maxEPDCCH-Set-r11)) OF EPDCCH-SetConfigId-r11 + +EPDCCH-SetConfig-r11 ::= SEQUENCE { + setConfigId-r11 EPDCCH-SetConfigId-r11, + transmissionType-r11 ENUMERATED {localised, distributed}, + resourceBlockAssignment-r11 SEQUENCE{ + numberPRB-Pairs-r11 ENUMERATED {n2, n4, n8}, + resourceBlockAssignment-r11 BIT STRING (SIZE(4..38)) + }, + dmrs-ScramblingSequenceInt-r11 INTEGER (0..503), + pucch-ResourceStartOffset-r11 INTEGER (0..2047), + re-MappingQCL-ConfigId-r11 PDSCH-RE-MappingQCL-ConfigId-r11 OPTIONAL, -- Need OR + ..., + [[ csi-RS-ConfigZPId2-r12 CHOICE { + release NULL, + setup CSI-RS-ConfigZPId-r11 + } OPTIONAL -- Need ON + ]], + [[ numberPRB-Pairs-v1310 CHOICE { + release NULL, + setup ENUMERATED {n6} + } OPTIONAL, -- Need ON + mpdcch-config-r13 CHOICE { + release NULL, + setup SEQUENCE { + csi-NumRepetitionCE-r13 ENUMERATED {sf1, sf2, sf4, sf8, sf16, sf32}, + mpdcch-pdsch-HoppingConfig-r13 ENUMERATED {on,off}, + mpdcch-StartSF-UESS-r13 CHOICE { + fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, + v5, v8, v10}, tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10, + v20, spare1} + }, + mpdcch-NumRepetition-r13 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + mpdcch-Narrowband-r13 INTEGER (1.. maxAvailNarrowBands-r13) + } + } OPTIONAL -- Need ON + ]] +} + +EPDCCH-SetConfigId-r11 ::= INTEGER (0..1) + + +EIMTA-MainConfig-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + eimta-RNTI-r12 C-RNTI, + eimta-CommandPeriodicity-r12 ENUMERATED {sf10, sf20, sf40, sf80}, + eimta-CommandSubframeSet-r12 BIT STRING (SIZE(10)) + } +} + +EIMTA-MainConfigServCell-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + eimta-UL-DL-ConfigIndex-r12 INTEGER (1..5), + eimta-HARQ-ReferenceConfig-r12 ENUMERATED {sa2, sa4, sa5}, + mbsfn-SubframeConfigList-v1250 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList-r12 MBSFN-SubframeConfigList + } + } + } +} + + +LogicalChannelConfig ::= SEQUENCE { + ul-SpecificParameters SEQUENCE { + priority INTEGER (1..16), + prioritisedBitRate ENUMERATED { + kBps0, kBps8, kBps16, kBps32, kBps64, kBps128, + kBps256, infinity, kBps512-v1020, kBps1024-v1020, + kBps2048-v1020, spare5, spare4, spare3, spare2, + spare1}, + bucketSizeDuration ENUMERATED { + ms50, ms100, ms150, ms300, ms500, ms1000, spare2, + spare1}, + logicalChannelGroup INTEGER (0..3) OPTIONAL -- Need OR + } OPTIONAL, -- Cond UL + ..., + [[ logicalChannelSR-Mask-r9 ENUMERATED {setup} OPTIONAL -- Cond SRmask + ]], + [[ logicalChannelSR-Prohibit-r12 BOOLEAN OPTIONAL -- Need ON + ]], + [[ laa-UL-Allowed-r14 BOOLEAN OPTIONAL, -- Need ON + bitRateQueryProhibitTimer-r14 ENUMERATED { + s0, s0dot4, s0dot8, s1dot6, s3, s6, s12, + s30} OPTIONAL --Need OR + ]] +} + + +LWA-Configuration-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + lwa-Config-r13 LWA-Config-r13 + } +} + +LWA-Config-r13 ::= SEQUENCE { + lwa-MobilityConfig-r13 WLAN-MobilityConfig-r13 OPTIONAL, -- Need ON + lwa-WT-Counter-r13 INTEGER (0..65535) OPTIONAL, -- Need ON + ..., + [[ wt-MAC-Address-r14 OCTET STRING (SIZE (6)) OPTIONAL -- Need ON + ]] +} + + +LWIP-Configuration-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + lwip-Config-r13 LWIP-Config-r13 + } +} + +LWIP-Config-r13 ::= SEQUENCE { + lwip-MobilityConfig-r13 WLAN-MobilityConfig-r13 OPTIONAL, -- Need ON + tunnelConfigLWIP-r13 TunnelConfigLWIP-r13 OPTIONAL, -- Need ON + ... +} + + +MAC-MainConfig ::= SEQUENCE { + ul-SCH-Config SEQUENCE { + maxHARQ-Tx ENUMERATED { + n1, n2, n3, n4, n5, n6, n7, n8, + n10, n12, n16, n20, n24, n28, + spare2, spare1} OPTIONAL, -- Need ON + periodicBSR-Timer PeriodicBSR-Timer-r12 OPTIONAL, -- Need ON + retxBSR-Timer RetxBSR-Timer-r12, + ttiBundling BOOLEAN + } OPTIONAL, -- Need ON + drx-Config DRX-Config OPTIONAL, -- Need ON + timeAlignmentTimerDedicated TimeAlignmentTimer, + phr-Config CHOICE { + release NULL, + setup SEQUENCE { + periodicPHR-Timer ENUMERATED {sf10, sf20, sf50, sf100, sf200, + sf500, sf1000, infinity}, + prohibitPHR-Timer ENUMERATED {sf0, sf10, sf20, sf50, sf100, + sf200, sf500, sf1000}, + dl-PathlossChange ENUMERATED {dB1, dB3, dB6, infinity} + } + } OPTIONAL, -- Need ON + ..., + [[ sr-ProhibitTimer-r9 INTEGER (0..7) OPTIONAL -- Need ON + ]], + [[ mac-MainConfig-v1020 SEQUENCE { + sCellDeactivationTimer-r10 ENUMERATED { + rf2, rf4, rf8, rf16, rf32, rf64, rf128, + spare} OPTIONAL, -- Need OP + extendedBSR-Sizes-r10 ENUMERATED {setup} OPTIONAL, -- Need OR + extendedPHR-r10 ENUMERATED {setup} OPTIONAL -- Need OR + } OPTIONAL -- Need ON + ]], + [[ stag-ToReleaseList-r11 STAG-ToReleaseList-r11 OPTIONAL, -- Need ON + stag-ToAddModList-r11 STAG-ToAddModList-r11 OPTIONAL, -- Need ON + drx-Config-v1130 DRX-Config-v1130 OPTIONAL -- Need ON + ]], + [[ e-HARQ-Pattern-r12 BOOLEAN OPTIONAL, -- Need ON + dualConnectivityPHR CHOICE { + release NULL, + setup SEQUENCE { + phr-ModeOtherCG-r12 ENUMERATED {real, virtual} + } + } OPTIONAL, -- Need ON + logicalChannelSR-Config-r12 CHOICE { + release NULL, + setup SEQUENCE { + logicalChannelSR-ProhibitTimer-r12 ENUMERATED {sf20, sf40, sf64, sf128, sf512, sf1024, sf2560, spare1} + } + } OPTIONAL -- Need ON + ]], + [[ drx-Config-v1310 DRX-Config-v1310 OPTIONAL, -- Need ON + extendedPHR2-r13 BOOLEAN OPTIONAL, -- Need ON + eDRX-Config-CycleStartOffset-r13 CHOICE { + release NULL, + setup + CHOICE { + sf5120 INTEGER(0..1), + sf10240 INTEGER(0..3) + } + } OPTIONAL -- Need ON + ]], + [[ drx-Config-r13 CHOICE { + release NULL, + setup DRX-Config-r13 + } OPTIONAL -- Need ON + ]], + [[ skipUplinkTx-r14 CHOICE { + release NULL, + setup SEQUENCE { + skipUplinkTxSPS-r14 ENUMERATED {true} OPTIONAL, -- Need OR + skipUplinkTxDynamic-r14 ENUMERATED {true} OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + dataInactivityTimerConfig-r14 CHOICE { + release NULL, + setup SEQUENCE { + dataInactivityTimer-r14 DataInactivityTimer-r14 + } + } OPTIONAL -- Need ON + ]], + [[ rai-Activation-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + +MAC-MainConfigSCell-r11 ::= SEQUENCE { + stag-Id-r11 STAG-Id-r11 OPTIONAL, -- Need OP + ... +} + +DRX-Config ::= CHOICE { + release NULL, + setup SEQUENCE { + onDurationTimer ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200}, + drx-InactivityTimer ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200, psf300, psf500, psf750, + psf1280, psf1920, psf2560, psf0-v1020, + spare9, spare8, spare7, spare6, + spare5, spare4, spare3, spare2, + spare1}, + drx-RetransmissionTimer ENUMERATED { + psf1, psf2, psf4, psf6, psf8, psf16, + psf24, psf33}, + longDRX-CycleStartOffset CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf1280 INTEGER(0..1279), + sf2048 INTEGER(0..2047), + sf2560 INTEGER(0..2559) + }, + shortDRX SEQUENCE { + shortDRX-Cycle ENUMERATED { + sf2, sf5, sf8, sf10, sf16, sf20, + sf32, sf40, sf64, sf80, sf128, sf160, + sf256, sf320, sf512, sf640}, + drxShortCycleTimer INTEGER (1..16) + } OPTIONAL -- Need OR + } +} + +DRX-Config-v1130 ::= SEQUENCE { + drx-RetransmissionTimer-v1130 ENUMERATED {psf0-v1130} OPTIONAL, --Need OR + longDRX-CycleStartOffset-v1130 CHOICE { + sf60-v1130 INTEGER(0..59), + sf70-v1130 INTEGER(0..69) + } OPTIONAL, --Need OR + shortDRX-Cycle-v1130 ENUMERATED {sf4-v1130} OPTIONAL --Need OR +} +DRX-Config-v1310 ::= SEQUENCE { + longDRX-CycleStartOffset-v1310 SEQUENCE { + sf60-v1310 INTEGER(0..59) + } OPTIONAL --Need OR +} + +DRX-Config-r13 ::= SEQUENCE { + onDurationTimer-v1310 ENUMERATED {psf300, psf400, psf500, psf600, + psf800, psf1000, psf1200, psf1600} OPTIONAL, --Need OR + drx-RetransmissionTimer-v1310 ENUMERATED {psf40, psf64, psf80, psf96, psf112, + psf128, psf160, psf320} + OPTIONAL, --Need OR + drx-ULRetransmissionTimer-r13 ENUMERATED {psf0, psf1, psf2, psf4, psf6, psf8, psf16, + psf24, psf33, psf40, psf64, psf80, psf96, + psf112, psf128, psf160, psf320} + OPTIONAL --Need OR +} + +PeriodicBSR-Timer-r12 ::= ENUMERATED { + sf5, sf10, sf16, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, sf1280, sf2560, + infinity, spare1} + +RetxBSR-Timer-r12 ::= ENUMERATED { + sf320, sf640, sf1280, sf2560, sf5120, + sf10240, spare2, spare1} + +STAG-ToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-Id-r11 + +STAG-ToAddModList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-ToAddMod-r11 + +STAG-ToAddMod-r11 ::= SEQUENCE { + stag-Id-r11 STAG-Id-r11, + timeAlignmentTimerSTAG-r11 TimeAlignmentTimer, + ... +} + +STAG-Id-r11::= INTEGER (1..maxSTAG-r11) + + +P-C-AndCBSR-r11 ::= SEQUENCE { + p-C-r11 INTEGER (-8..15), + codebookSubsetRestriction-r11 BIT STRING +} + +P-C-AndCBSR-r13 ::= SEQUENCE { + p-C-r13 INTEGER (-8..15), + cbsr-Selection-r13 CHOICE{ + nonPrecoded-r13 SEQUENCE { + codebookSubsetRestriction1-r13 BIT STRING, + codebookSubsetRestriction2-r13 BIT STRING + }, + beamformedK1a-r13 SEQUENCE { + codebookSubsetRestriction3-r13 BIT STRING + }, + beamformedKN-r13 SEQUENCE { + codebookSubsetRestriction-r13 BIT STRING + } + }, + ... +} + +P-C-AndCBSR-Pair-r13a ::= SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r11 + +P-C-AndCBSR-Pair-r13 ::= SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r13 + + +PDCCH-ConfigSCell-r13 ::= SEQUENCE { + skipMonitoringDCI-format0-1A-r13 ENUMERATED {true} OPTIONAL -- Need OR +} + +PDCCH-ConfigLAA-r14 ::= SEQUENCE { + maxNumberOfSchedSubframes-Format0B-r14 ENUMERATED {sf2, sf3, sf4} OPTIONAL, -- Need OR + maxNumberOfSchedSubframes-Format4B-r14 ENUMERATED {sf2, sf3, sf4} OPTIONAL, -- Need OR + skipMonitoringDCI-Format0A-r14 ENUMERATED {true} OPTIONAL, -- Need OR + skipMonitoringDCI-Format4A-r14 ENUMERATED {true} OPTIONAL, -- Need OR + pdcch-CandidateReductions-Format0A-r14 + PDCCH-CandidateReductions-r13 OPTIONAL, -- Need ON + pdcch-CandidateReductions-Format4A-r14 + PDCCH-CandidateReductionsLAA-UL-r14 OPTIONAL, -- Need ON + pdcch-CandidateReductions-Format0B-r14 + PDCCH-CandidateReductionsLAA-UL-r14 OPTIONAL, -- Need ON + pdcch-CandidateReductions-Format4B-r14 + PDCCH-CandidateReductionsLAA-UL-r14 OPTIONAL -- Need ON +} + +PDCCH-CandidateReductionValue-r13 ::= ENUMERATED {n0, n33, n66, n100} + +PDCCH-CandidateReductionValue-r14 ::= ENUMERATED {n0, n50, n100, n150} + +PDCCH-CandidateReductions-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + pdcch-candidateReductionAL1-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL2-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL3-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL4-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL5-r13 PDCCH-CandidateReductionValue-r13 + } +} + +PDCCH-CandidateReductionsLAA-UL-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + pdcch-candidateReductionAL1-r14 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL2-r14 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL3-r14 PDCCH-CandidateReductionValue-r14, + pdcch-candidateReductionAL4-r14 PDCCH-CandidateReductionValue-r14, + pdcch-candidateReductionAL5-r14 PDCCH-CandidateReductionValue-r14 + } +} + + +PDCP-Config ::= SEQUENCE { + discardTimer ENUMERATED { + ms50, ms100, ms150, ms300, ms500, + ms750, ms1500, infinity + } OPTIONAL, -- Cond Setup + rlc-AM SEQUENCE { + statusReportRequired BOOLEAN + } OPTIONAL, -- Cond Rlc-AM + rlc-UM SEQUENCE { + pdcp-SN-Size ENUMERATED {len7bits, len12bits} + } OPTIONAL, -- Cond Rlc-UM + headerCompression CHOICE { + notUsed NULL, + rohc SEQUENCE { + maxCID INTEGER (1..16383) DEFAULT 15, + profiles SEQUENCE { + profile0x0001 BOOLEAN, + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0101 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + ... + } + }, + ..., + [[ rn-IntegrityProtection-r10 ENUMERATED {enabled} OPTIONAL -- Cond RN + ]], + [[ pdcp-SN-Size-v1130 ENUMERATED {len15bits} OPTIONAL -- Cond Rlc-AM2 + ]], + [[ ul-DataSplitDRB-ViaSCG-r12 BOOLEAN OPTIONAL, -- Need ON + t-Reordering-r12 ENUMERATED { + ms0, ms20, ms40, ms60, ms80, ms100, ms120, ms140, + ms160, ms180, ms200, ms220, ms240, ms260, ms280, ms300, + ms500, ms750, spare14, spare13, spare12, spare11, spare10, + spare9, spare8, spare7, spare6, spare5, spare4, spare3, + spare2, spare1} OPTIONAL -- Cond SetupS + ]], + [[ ul-DataSplitThreshold-r13 CHOICE { + release NULL, + setup ENUMERATED { + b0, b100, b200, b400, b800, b1600, b3200, b6400, b12800, + b25600, b51200, b102400, b204800, b409600, b819200, + spare1} + } OPTIONAL, -- Need ON + pdcp-SN-Size-v1310 ENUMERATED {len18bits} OPTIONAL, -- Cond Rlc-AM3 + statusFeedback-r13 CHOICE { + release NULL, + setup SEQUENCE { + statusPDU-TypeForPolling-r13 ENUMERATED {type1, type2} OPTIONAL, -- Need ON + statusPDU-Periodicity-Type1-r13 ENUMERATED { + ms5, ms10, ms20, ms30, ms40, ms50, ms60, ms70, ms80, ms90, + ms100, ms150, ms200, ms300, ms500, ms1000, ms2000, ms5000, + ms10000, ms20000, ms50000} OPTIONAL, -- Need ON + statusPDU-Periodicity-Type2-r13 ENUMERATED { + ms5, ms10, ms20, ms30, ms40, ms50, ms60, ms70, ms80, ms90, + ms100, ms150, ms200, ms300, ms500, ms1000, ms2000, ms5000, + ms10000, ms20000, ms50000} OPTIONAL, -- Need ON + statusPDU-Periodicity-Offset-r13 ENUMERATED { + ms1, ms2, ms5, ms10, ms25, ms50, ms100, ms250, ms500, + ms2500, ms5000, ms25000} OPTIONAL -- Need ON + } + } OPTIONAL -- Need ON + ]], + [[ ul-LWA-Config-r14 CHOICE { + release NULL, + setup SEQUENCE { + ul-LWA-DRB-ViaWLAN-r14 BOOLEAN, + ul-LWA-DataSplitThreshold-r14 ENUMERATED { + b0, b100, b200, b400, b800, b1600, b3200, b6400, + b12800, b25600, b51200, b102400, b204800, b409600, + b819200 } OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + uplinkOnlyHeaderCompression-r14 CHOICE { + notUsed-r14 NULL, + rohc-r14 SEQUENCE { + maxCID-r14 INTEGER (1..16383) DEFAULT 15, + profiles-r14 SEQUENCE { + profile0x0006-r14 BOOLEAN + }, + ... + } + } OPTIONAL -- Need ON + ]] +} + + +PDSCH-ConfigCommon ::= SEQUENCE { + referenceSignalPower INTEGER (-60..50), + p-b INTEGER (0..3) +} + +PDSCH-ConfigCommon-v1310 ::= SEQUENCE { + pdsch-maxNumRepetitionCEmodeA-r13 ENUMERATED { + r16, r32 } OPTIONAL, -- Need OR + pdsch-maxNumRepetitionCEmodeB-r13 ENUMERATED { + r192, r256, r384, r512, r768, r1024, + r1536, r2048} OPTIONAL -- Need OR +} + +PDSCH-ConfigDedicated::= SEQUENCE { + p-a ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} +} + +PDSCH-ConfigDedicated-v1130 ::= SEQUENCE { + dmrs-ConfigPDSCH-r11 DMRS-Config-r11 OPTIONAL, -- Need ON + qcl-Operation ENUMERATED {typeA, typeB} OPTIONAL, -- Need OR + re-MappingQCLConfigToReleaseList-r11 RE-MappingQCLConfigToReleaseList-r11 OPTIONAL, -- Need ON + re-MappingQCLConfigToAddModList-r11 RE-MappingQCLConfigToAddModList-r11 OPTIONAL -- Need ON +} + +PDSCH-ConfigDedicated-v1280 ::= SEQUENCE { + tbsIndexAlt-r12 ENUMERATED {a26, a33} OPTIONAL -- Need OR +} + +PDSCH-ConfigDedicated-v1310 ::= SEQUENCE { + dmrs-ConfigPDSCH-v1310 DMRS-Config-v1310 OPTIONAL -- Need ON +} + +PDSCH-ConfigDedicated-v1430 ::= SEQUENCE { + ce-PDSCH-MaxBandwidth-r14 ENUMERATED {bw5, bw20} OPTIONAL, -- Need OP + ce-PDSCH-TenProcesses-r14 ENUMERATED {on} OPTIONAL, -- Need OR + ce-HARQ-AckBundling-r14 ENUMERATED {on} OPTIONAL, -- Need OR + ce-SchedulingEnhancement-r14 ENUMERATED {range1, range2} OPTIONAL, -- Need OR + tbsIndexAlt2-r14 ENUMERATED {b33} OPTIONAL -- Need OR +} + +PDSCH-ConfigDedicatedSCell-v1430 ::= SEQUENCE { + tbsIndexAlt2-r14 ENUMERATED {b33} OPTIONAL -- Need OR +} + +RE-MappingQCLConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxRE-MapQCL-r11)) OF PDSCH-RE-MappingQCL-Config-r11 + +RE-MappingQCLConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxRE-MapQCL-r11)) OF PDSCH-RE-MappingQCL-ConfigId-r11 + +PDSCH-RE-MappingQCL-Config-r11 ::= SEQUENCE { + pdsch-RE-MappingQCL-ConfigId-r11 PDSCH-RE-MappingQCL-ConfigId-r11, + optionalSetOfFields-r11 SEQUENCE { + crs-PortsCount-r11 ENUMERATED {n1, n2, n4, spare1}, + crs-FreqShift-r11 INTEGER (0..5), + mbsfn-SubframeConfigList-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList MBSFN-SubframeConfigList + } + } OPTIONAL, -- Need ON + pdsch-Start-r11 ENUMERATED {reserved, n1, n2, n3, n4, assigned} + } OPTIONAL, -- Need OP + csi-RS-ConfigZPId-r11 CSI-RS-ConfigZPId-r11, + qcl-CSI-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11 OPTIONAL, -- Need OR + ..., + [[ mbsfn-SubframeConfigList-v1430 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 + } + } OPTIONAL -- Need OP + ]] +} + + +PDSCH-RE-MappingQCL-ConfigId-r11 ::= INTEGER (1..maxRE-MapQCL-r11) + +PerCC-GapIndicationList-r14 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF PerCC-GapIndication-r14 + +PerCC-GapIndication-r14 ::= SEQUENCE { + servCellId-r14 ServCellIndex-r13, + gapIndication-r14 ENUMERATED {gap, ncsg, nogap-noNcsg} +} + + +PHICH-Config ::= SEQUENCE { + phich-Duration ENUMERATED {normal, extended}, + phich-Resource ENUMERATED {oneSixth, half, one, two} +} + + +PhysicalConfigDedicated ::= SEQUENCE { + pdsch-ConfigDedicated PDSCH-ConfigDedicated OPTIONAL, -- Need ON + pucch-ConfigDedicated PUCCH-ConfigDedicated OPTIONAL, -- Need ON + pusch-ConfigDedicated PUSCH-ConfigDedicated OPTIONAL, -- Need ON + uplinkPowerControlDedicated UplinkPowerControlDedicated OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUCCH TPC-PDCCH-Config OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUSCH TPC-PDCCH-Config OPTIONAL, -- Need ON + cqi-ReportConfig CQI-ReportConfig OPTIONAL, -- Cond CQI-r8 + soundingRS-UL-ConfigDedicated SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON + antennaInfo CHOICE { + explicitValue AntennaInfoDedicated, + defaultValue NULL + } OPTIONAL, -- Cond AI-r8 + schedulingRequestConfig SchedulingRequestConfig OPTIONAL, -- Need ON + ..., + [[ cqi-ReportConfig-v920 CQI-ReportConfig-v920 OPTIONAL, -- Cond CQI-r8 + antennaInfo-v920 AntennaInfoDedicated-v920 OPTIONAL -- Cond AI-r8 + ]], + [[ antennaInfo-r10 CHOICE { + explicitValue-r10 AntennaInfoDedicated-r10, + defaultValue NULL + } OPTIONAL, -- Cond AI-r10 + antennaInfoUL-r10 AntennaInfoUL-r10 OPTIONAL, -- Need ON + cif-Presence-r10 BOOLEAN OPTIONAL, -- Need ON + cqi-ReportConfig-r10 CQI-ReportConfig-r10 OPTIONAL, -- Cond CQI-r10 + csi-RS-Config-r10 CSI-RS-Config-r10 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1020 PUCCH-ConfigDedicated-v1020 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1020 PUSCH-ConfigDedicated-v1020 OPTIONAL, -- Need ON + schedulingRequestConfig-v1020 SchedulingRequestConfig-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1020 + SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-r10 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1020 + UplinkPowerControlDedicated-v1020 OPTIONAL -- Need ON + ]], + [[ additionalSpectrumEmissionCA-r10 CHOICE { + release NULL, + setup SEQUENCE { + additionalSpectrumEmissionPCell-r10 AdditionalSpectrumEmission + } + } OPTIONAL -- Need ON + ]], + [[ -- DL configuration as well as configuration applicable for DL and UL + csi-RS-ConfigNZPToReleaseList-r11 + CSI-RS-ConfigNZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModList-r11 + CSI-RS-ConfigNZPToAddModList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToReleaseList-r11 + CSI-RS-ConfigZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToAddModList-r11 CSI-RS-ConfigZPToAddModList-r11 OPTIONAL, -- Need ON + epdcch-Config-r11 EPDCCH-Config-r11 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1130 PDSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + -- UL configuration + cqi-ReportConfig-v1130 CQI-ReportConfig-v1130 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1130 PUCCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1130 PUSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1130 + UplinkPowerControlDedicated-v1130 OPTIONAL -- Need ON + ]], + [[ antennaInfo-v1250 AntennaInfoDedicated-v1250 OPTIONAL, -- Cond AI-r10 + eimta-MainConfig-r12 EIMTA-MainConfig-r12 OPTIONAL, -- Need ON + eimta-MainConfigPCell-r12 EIMTA-MainConfigServCell-r12 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1250 PUCCH-ConfigDedicated-v1250 OPTIONAL, -- Need ON + cqi-ReportConfigPCell-v1250 CQI-ReportConfig-v1250 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1250 + UplinkPowerControlDedicated-v1250 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1250 PUSCH-ConfigDedicated-v1250 OPTIONAL, -- Need ON + csi-RS-Config-v1250 CSI-RS-Config-v1250 OPTIONAL -- Need ON + ]], + [[ pdsch-ConfigDedicated-v1280 PDSCH-ConfigDedicated-v1280 OPTIONAL -- Need ON + ]], + [[ pdsch-ConfigDedicated-v1310 PDSCH-ConfigDedicated-v1310 OPTIONAL, -- Need ON + pucch-ConfigDedicated-r13 PUCCH-ConfigDedicated-r13 OPTIONAL, -- Need ON + pusch-ConfigDedicated-r13 PUSCH-ConfigDedicated-r13 OPTIONAL, -- Need ON + pdcch-CandidateReductions-r13 + PDCCH-CandidateReductions-r13 OPTIONAL, -- Need ON + cqi-ReportConfig-v1310 CQI-ReportConfig-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1310 + SoundingRS-UL-ConfigDedicated-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-v1310 + SoundingRS-UL-ConfigDedicatedAperiodic-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, -- Need ON + csi-RS-Config-v1310 CSI-RS-Config-v1310 OPTIONAL, -- Need ON + ce-Mode-r13 CHOICE { + release NULL, + setup ENUMERATED {ce-ModeA,ce-ModeB} + } OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModListExt-r13 CSI-RS-ConfigNZPToAddModListExt-r13 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToReleaseListExt-r13 CSI-RS-ConfigNZPToReleaseListExt-r13 OPTIONAL -- Need ON + ]], + [[ cqi-ReportConfig-v1320 CQI-ReportConfig-v1320 OPTIONAL -- Need ON + ]], + [[ typeA-SRS-TPC-PDCCH-Group-r14 CHOICE { + release NULL, + setup SEQUENCE (SIZE (1..32)) OF SRS-TPC-PDCCH-Config-r14 + } OPTIONAL, -- Need ON + must-Config-r14 CHOICE{ + release NULL, + setup SEQUENCE { + k-max-r14 ENUMERATED {l1, l3}, + p-a-must-r14 ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + pusch-EnhancementsConfig-r14 PUSCH-EnhancementsConfig-r14 OPTIONAL, -- Need ON + ce-pdsch-pusch-EnhancementConfig-r14 ENUMERATED {on} OPTIONAL, -- Need OR + antennaInfo-v1430 AntennaInfoDedicated-v1430 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1430 PUCCH-ConfigDedicated-v1430 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1430 PDSCH-ConfigDedicated-v1430 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1430 PUSCH-ConfigDedicated-v1430 OPTIONAL, -- Need ON + soundingRS-UL-PeriodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-UL-ConfigDedicated OPTIONAL, -- Cond PeriodicSRSPCell + soundingRS-UL-PeriodicConfigDedicatedUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Cond PeriodicSRSExt + soundingRS-UL-AperiodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL, -- Cond AperiodicSRS + soundingRS-UL-ConfigDedicatedApUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, -- Cond AperiodicSRSExt + csi-RS-Config-v1430 CSI-RS-Config-v1430 OPTIONAL, -- Need ON + csi-RS-ConfigZP-ApList-r14 CSI-RS-ConfigZP-ApList-r14 OPTIONAL, -- Need ON + cqi-ReportConfig-v1430 CQI-ReportConfig-v1430 OPTIONAL, -- Need ON + semiOpenLoop-r14 BOOLEAN OPTIONAL -- Need ON + ]] +} + +PhysicalConfigDedicated-v1370 ::= SEQUENCE { + pucch-ConfigDedicated-v1370 PUCCH-ConfigDedicated-v1370 OPTIONAL -- Cond PUCCH-Format4or5 +} + +PhysicalConfigDedicatedSCell-r10 ::= SEQUENCE { + -- DL configuration as well as configuration applicable for DL and UL + nonUL-Configuration-r10 SEQUENCE { + antennaInfo-r10 + AntennaInfoDedicated-r10 OPTIONAL, -- Need ON + crossCarrierSchedulingConfig-r10 + CrossCarrierSchedulingConfig-r10 OPTIONAL, -- Need ON + csi-RS-Config-r10 CSI-RS-Config-r10 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-r10 PDSCH-ConfigDedicated OPTIONAL -- Need ON + } OPTIONAL, -- Cond SCellAdd + -- UL configuration + ul-Configuration-r10 SEQUENCE { + antennaInfoUL-r10 AntennaInfoUL-r10 OPTIONAL, -- Need ON + pusch-ConfigDedicatedSCell-r10 + PUSCH-ConfigDedicatedSCell-r10 OPTIONAL, -- Cond PUSCH-SCell1 + uplinkPowerControlDedicatedSCell-r10 + UplinkPowerControlDedicatedSCell-r10 OPTIONAL, -- Need ON + cqi-ReportConfigSCell-r10 CQI-ReportConfigSCell-r10 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-r10 + SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1020 + SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-r10 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL -- Need ON + } OPTIONAL, -- Cond CommonUL + ..., + [[ -- DL configuration as well as configuration applicable for DL and UL + csi-RS-ConfigNZPToReleaseList-r11 + CSI-RS-ConfigNZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModList-r11 + CSI-RS-ConfigNZPToAddModList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToReleaseList-r11 + CSI-RS-ConfigZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToAddModList-r11 + CSI-RS-ConfigZPToAddModList-r11 OPTIONAL, -- Need ON + epdcch-Config-r11 EPDCCH-Config-r11 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1130 PDSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + -- UL configuration + cqi-ReportConfig-v1130 CQI-ReportConfig-v1130 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1130 + PUSCH-ConfigDedicated-v1130 OPTIONAL, -- Cond PUSCH-SCell1 + uplinkPowerControlDedicatedSCell-v1130 + UplinkPowerControlDedicated-v1130 OPTIONAL -- Need ON + ]], + [[ antennaInfo-v1250 AntennaInfoDedicated-v1250 OPTIONAL, -- Need ON + eimta-MainConfigSCell-r12 + EIMTA-MainConfigServCell-r12 OPTIONAL, -- Need ON + cqi-ReportConfigSCell-v1250 CQI-ReportConfig-v1250 OPTIONAL, -- Need ON + uplinkPowerControlDedicatedSCell-v1250 + UplinkPowerControlDedicated-v1250 OPTIONAL, -- Need ON + csi-RS-Config-v1250 CSI-RS-Config-v1250 OPTIONAL -- Need ON + ]], + [[ pdsch-ConfigDedicated-v1280 PDSCH-ConfigDedicated-v1280 OPTIONAL -- Need ON + ]], + [[ pucch-Cell-r13 ENUMERATED {true} OPTIONAL, -- Cond PUCCH-SCell1 + pucch-SCell CHOICE{ + release NULL, + setup SEQUENCE { + pucch-ConfigDedicated-r13 + PUCCH-ConfigDedicated-r13 OPTIONAL, -- Need ON + schedulingRequestConfig-r13 + SchedulingRequestConfigSCell-r13 OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUCCH-SCell-r13 + TPC-PDCCH-ConfigSCell-r13 OPTIONAL, -- Need ON + pusch-ConfigDedicated-r13 + PUSCH-ConfigDedicated-r13 OPTIONAL, -- Cond PUSCH-SCell + uplinkPowerControlDedicated-r13 + UplinkPowerControlDedicatedSCell-v1310 OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + crossCarrierSchedulingConfig-r13 + CrossCarrierSchedulingConfig-r13 OPTIONAL, -- Cond Cross-Carrier-Config + pdcch-ConfigSCell-r13 PDCCH-ConfigSCell-r13 OPTIONAL, -- Need ON + cqi-ReportConfig-v1310 CQI-ReportConfig-v1310 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1310 PDSCH-ConfigDedicated-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1310 + SoundingRS-UL-ConfigDedicated-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-v1310 + SoundingRS-UL-ConfigDedicatedAperiodic-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, -- Need ON + csi-RS-Config-v1310 CSI-RS-Config-v1310 OPTIONAL, -- Need ON + laa-SCellConfiguration-r13 LAA-SCellConfiguration-r13 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModListExt-r13 CSI-RS-ConfigNZPToAddModListExt-r13 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToReleaseListExt-r13 CSI-RS-ConfigNZPToReleaseListExt-r13 OPTIONAL -- Need ON + ]], + [[ cqi-ReportConfig-v1320 CQI-ReportConfig-v1320 OPTIONAL -- Need ON + ]], + [[ laa-SCellConfiguration-v1430 LAA-SCellConfiguration-v1430 + OPTIONAL, -- Need ON + typeB-SRS-TPC-PDCCH-Config-r14 SRS-TPC-PDCCH-Config-r14 OPTIONAL, -- Need ON + + uplinkPUSCH-LessPowerControlDedicated-v1430 UplinkPUSCH-LessPowerControlDedicated-v1430 OPTIONAL, -- Need ON + soundingRS-UL-PeriodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-UL-ConfigDedicated OPTIONAL, -- Cond PeriodicSRS + soundingRS-UL-PeriodicConfigDedicatedUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Cond PeriodicSRSExt + soundingRS-UL-AperiodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-AperiodicSet-r14 OPTIONAL, -- Cond AperiodicSRS + soundingRS-UL-ConfigDedicatedApUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-AperiodicSetUpPTsExt-r14 OPTIONAL, -- Cond AperiodicSRSExt + must-Config-r14 CHOICE{ + release NULL, + setup SEQUENCE { + k-max-r14 ENUMERATED {l1, l3}, + p-a-must-r14 ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1430 PUSCH-ConfigDedicatedSCell-v1430 OPTIONAL, -- Need ON + csi-RS-Config-v1430 CSI-RS-Config-v1430 OPTIONAL, -- Need ON + csi-RS-ConfigZP-ApList-r14 CSI-RS-ConfigZP-ApList-r14 OPTIONAL, -- Need ON + cqi-ReportConfig-v1430 CQI-ReportConfig-v1430 OPTIONAL, -- Need ON + semiOpenLoop-r14 BOOLEAN OPTIONAL, -- Need ON + pdsch-ConfigDedicatedSCell-v1430 PDSCH-ConfigDedicatedSCell-v1430 OPTIONAL -- Need ON + ]] +} + +PhysicalConfigDedicatedSCell-v1370 ::= SEQUENCE { + pucch-SCell-v1370 CHOICE{ + release NULL, + setup SEQUENCE { + pucch-ConfigDedicated-v1370 PUCCH-ConfigDedicated-v1370 OPTIONAL -- Cond PUCCH-Format4or5 + } + } +} + +LAA-SCellConfiguration-r13 ::= SEQUENCE { + subframeStartPosition-r13 ENUMERATED {s0, s07}, + laa-SCellSubframeConfig-r13 BIT STRING (SIZE(8)) +} + +LAA-SCellConfiguration-v1430 ::= SEQUENCE { + crossCarrierSchedulingConfig-UL-r14 CHOICE { + release NULL, + setup SEQUENCE { + crossCarrierSchedulingConfigLAA-UL-r14 CrossCarrierSchedulingConfigLAA-UL-r14 + } + } OPTIONAL, -- Cond Cross-Carrier-ConfigUL + lbt-Config-r14 LBT-Config-r14 OPTIONAL, -- Need ON + pdcch-ConfigLAA-r14 PDCCH-ConfigLAA-r14 OPTIONAL, -- Need ON + absenceOfAnyOtherTechnology-r14 ENUMERATED {true} OPTIONAL, -- Need OR + soundingRS-UL-ConfigDedicatedAperiodic-v1430 + SoundingRS-UL-ConfigDedicatedAperiodic-v1430 OPTIONAL -- Need ON +} + +LBT-Config-r14 ::= CHOICE{ + maxEnergyDetectionThreshold-r14 INTEGER(-85..-52), + energyDetectionThresholdOffset-r14 INTEGER(-13..20) +} + +CSI-RS-ConfigNZPToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r11)) OF CSI-RS-ConfigNZP-r11 + +CSI-RS-ConfigNZPToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-v1310)) OF CSI-RS-ConfigNZP-r11 + +CSI-RS-ConfigNZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r11)) OF CSI-RS-ConfigNZPId-r11 + +CSI-RS-ConfigNZPToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-v1310)) OF CSI-RS-ConfigNZPId-v1310 + +CSI-RS-ConfigZPToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZP-r11 + +CSI-RS-ConfigZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZPId-r11 + +SoundingRS-AperiodicSet-r14 ::= SEQUENCE{ + srs-CC-SetIndexList-r14 + SEQUENCE (SIZE (1..4)) OF SRS-CC-SetIndex-r14 + OPTIONAL, -- Cond SRS-Trigger-TypeA + soundingRS-UL-ConfigDedicatedAperiodic-r14 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 +} + +SoundingRS-AperiodicSetUpPTsExt-r14 ::= SEQUENCE{ + srs-CC-SetIndexList-r14 + SEQUENCE (SIZE (1..4)) OF SRS-CC-SetIndex-r14 + OPTIONAL, -- Cond SRS-Trigger-TypeA + soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r14 + SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 +} + + +P-Max ::= INTEGER (-30..33) + + +PRACH-ConfigSIB ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + prach-ConfigInfo PRACH-ConfigInfo +} + +PRACH-ConfigSIB-v1310 ::= SEQUENCE { + rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsPrachInfoList-r13, + mpdcch-startSF-CSS-RA-r13 CHOICE { + fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, v5, v8, + v10}, + tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10, v20, spare} + } OPTIONAL, -- Cond MP + prach-HoppingOffset-r13 INTEGER (0..94) OPTIONAL, -- Need OR + prach-ParametersListCE-r13 PRACH-ParametersListCE-r13 +} + +PRACH-Config ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + prach-ConfigInfo PRACH-ConfigInfo OPTIONAL -- Need ON +} + +PRACH-Config-v1310 ::= SEQUENCE { + rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsPrachInfoList-r13 OPTIONAL, -- Cond MP + mpdcch-startSF-CSS-RA-r13 CHOICE { + fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, v5, v8, + v10}, + tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10, v20, spare} + } OPTIONAL, -- Cond MP + prach-HoppingOffset-r13 INTEGER (0..94) OPTIONAL, -- Need OR + prach-ParametersListCE-r13 PRACH-ParametersListCE-r13 OPTIONAL, -- Cond MP + initial-CE-level-r13 INTEGER (0..3) OPTIONAL -- Need OR +} + +PRACH-Config-v1430 ::= SEQUENCE { + rootSequenceIndexHighSpeed-r14 INTEGER (0..837), + zeroCorrelationZoneConfigHighSpeed-r14 INTEGER (0..12), + prach-ConfigIndexHighSpeed-r14 INTEGER (0..63), + prach-FreqOffsetHighSpeed-r14 INTEGER (0..94) +} + +PRACH-ConfigSCell-r10 ::= SEQUENCE { + prach-ConfigIndex-r10 INTEGER (0..63) +} + +PRACH-ConfigInfo ::= SEQUENCE { + prach-ConfigIndex INTEGER (0..63), + highSpeedFlag BOOLEAN, + zeroCorrelationZoneConfig INTEGER (0..15), + prach-FreqOffset INTEGER (0..94) +} + +PRACH-ParametersListCE-r13 ::= SEQUENCE (SIZE(1..maxCE-Level-r13)) OF PRACH-ParametersCE-r13 + +PRACH-ParametersCE-r13 ::= SEQUENCE { + prach-ConfigIndex-r13 INTEGER (0..63), + prach-FreqOffset-r13 INTEGER (0..94), + prach-StartingSubframe-r13 ENUMERATED {sf2, sf4, sf8, sf16, sf32, sf64, sf128, + sf256} OPTIONAL, -- Need OP + maxNumPreambleAttemptCE-r13 + ENUMERATED {n3, n4, n5, n6, n7, n8, n10} OPTIONAL, -- Need OP + numRepetitionPerPreambleAttempt-r13 ENUMERATED {n1,n2,n4,n8,n16,n32,n64,n128}, + mpdcch-NarrowbandsToMonitor-r13 SEQUENCE (SIZE(1..2)) OF + INTEGER (1..maxAvailNarrowBands-r13), + mpdcch-NumRepetition-RA-r13 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + prach-HoppingConfig-r13 ENUMERATED {on,off} +} + +RSRP-ThresholdsPrachInfoList-r13 ::= SEQUENCE (SIZE(1..3)) OF RSRP-Range + + +PresenceAntennaPort1 ::= BOOLEAN + + +PUCCH-ConfigCommon ::= SEQUENCE { + deltaPUCCH-Shift ENUMERATED {ds1, ds2, ds3}, + nRB-CQI INTEGER (0..98), + nCS-AN INTEGER (0..7), + n1PUCCH-AN INTEGER (0..2047) +} + +PUCCH-ConfigCommon-v1310 ::= SEQUENCE { + n1PUCCH-AN-InfoList-r13 N1PUCCH-AN-InfoList-r13 OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level0-r13 ENUMERATED {n1, n2, n4, n8} OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level1-r13 ENUMERATED {n1, n2, n4, n8} OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level2-r13 ENUMERATED {n4, n8, n16, n32} OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level3-r13 ENUMERATED {n4, n8, n16, n32} OPTIONAL -- Need OR +} + +PUCCH-ConfigCommon-v1430 ::= SEQUENCE { + pucch-NumRepetitionCE-Msg4-Level3-r14 ENUMERATED {n64, n128} OPTIONAL -- Need OR +} + +PUCCH-ConfigDedicated ::= SEQUENCE { + ackNackRepetition CHOICE{ + release NULL, + setup SEQUENCE { + repetitionFactor ENUMERATED {n2, n4, n6, spare1}, + n1PUCCH-AN-Rep INTEGER (0..2047) + } + }, + tdd-AckNackFeedbackMode ENUMERATED {bundling, multiplexing} OPTIONAL -- Cond TDD +} + +PUCCH-ConfigDedicated-v1020 ::= SEQUENCE { + pucch-Format-r10 CHOICE { + format3-r10 PUCCH-Format3-Conf-r13, + channelSelection-r10 SEQUENCE { + n1PUCCH-AN-CS-r10 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-List-r10 SEQUENCE (SIZE (1..2)) OF N1PUCCH-AN-CS-r10 + } + } OPTIONAL -- Need ON + } + } OPTIONAL, -- Need OR + twoAntennaPortActivatedPUCCH-Format1a1b-r10 ENUMERATED {true} OPTIONAL, -- Need OR + simultaneousPUCCH-PUSCH-r10 ENUMERATED {true} OPTIONAL, -- Need OR + n1PUCCH-AN-RepP1-r10 INTEGER (0..2047) OPTIONAL -- Need OR +} + +PUCCH-ConfigDedicated-v1130 ::= SEQUENCE { + n1PUCCH-AN-CS-v1130 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-ListP1-r11 SEQUENCE (SIZE (2..4)) OF INTEGER (0..2047) + } + } OPTIONAL, -- Need ON + nPUCCH-Param-r11 CHOICE { + release NULL, + setup SEQUENCE { + nPUCCH-Identity-r11 INTEGER (0..503), + n1PUCCH-AN-r11 INTEGER (0..2047) + } + } OPTIONAL -- Need ON +} + +PUCCH-ConfigDedicated-v1250 ::= SEQUENCE { + nkaPUCCH-Param-r12 CHOICE { + release NULL, + setup SEQUENCE { + nkaPUCCH-AN-r12 INTEGER (0..2047) + } + } +} + +PUCCH-ConfigDedicated-r13 ::= SEQUENCE { +--Release 8 + ackNackRepetition-r13 CHOICE{ + release NULL, + setup SEQUENCE { + repetitionFactor-r13 ENUMERATED {n2, n4, n6, spare1}, + n1PUCCH-AN-Rep-r13 INTEGER (0..2047) + } + }, + tdd-AckNackFeedbackMode-r13 ENUMERATED {bundling, multiplexing} OPTIONAL, -- Cond TDD +--Release 10 + pucch-Format-r13 CHOICE { + format3-r13 SEQUENCE { + n3PUCCH-AN-List-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) OPTIONAL, -- Need ON + twoAntennaPortActivatedPUCCH-Format3-r13 CHOICE { + release NULL, + setup SEQUENCE { + n3PUCCH-AN-ListP1-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) + } + } OPTIONAL -- Need ON + }, + channelSelection-r13 SEQUENCE { + n1PUCCH-AN-CS-r13 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-List-r13 SEQUENCE (SIZE (1..2)) OF N1PUCCH-AN-CS-r10, + n1PUCCH-AN-CS-ListP1-r13 SEQUENCE (SIZE (2..4)) OF INTEGER (0..2047) + } + } OPTIONAL -- Need ON + }, + format4-r13 SEQUENCE { + format4-resourceConfiguration-r13 SEQUENCE (SIZE (4)) OF Format4-resource-r13, + format4-MultiCSI-resourceConfiguration-r13 SEQUENCE (SIZE (1..2)) OF Format4-resource-r13 OPTIONAL -- Need OR + }, + format5-r13 SEQUENCE { + format5-resourceConfiguration-r13 SEQUENCE (SIZE (4)) OF Format5-resource-r13, + format5-MultiCSI-resourceConfiguration-r13 Format5-resource-r13 OPTIONAL -- Need OR + } + } OPTIONAL, -- Need OR + twoAntennaPortActivatedPUCCH-Format1a1b-r13 ENUMERATED {true} OPTIONAL, -- Need OR + simultaneousPUCCH-PUSCH-r13 ENUMERATED {true} OPTIONAL, -- Need OR + n1PUCCH-AN-RepP1-r13 INTEGER (0..2047) OPTIONAL, -- Need OR +--Release 11 + nPUCCH-Param-r13 CHOICE { + release NULL, + setup SEQUENCE { + nPUCCH-Identity-r13 INTEGER (0..503), + n1PUCCH-AN-r13 INTEGER (0..2047) + } + } OPTIONAL, -- Need ON +--Release 12 + nkaPUCCH-Param-r13 CHOICE { + release NULL, + setup SEQUENCE { + nkaPUCCH-AN-r13 INTEGER (0..2047) + } + } OPTIONAL, -- Need ON +--Release 13 + spatialBundlingPUCCH-r13 BOOLEAN, + spatialBundlingPUSCH-r13 BOOLEAN, + harq-TimingTDD-r13 BOOLEAN, + codebooksizeDetermination-r13 ENUMERATED {dai,cc} OPTIONAL, -- Need OR + maximumPayloadCoderate-r13 INTEGER (0..7) OPTIONAL, -- Need OR + pucch-NumRepetitionCE-r13 CHOICE { + release NULL, + setup CHOICE { + modeA SEQUENCE { + pucch-NumRepetitionCE-format1-r13 ENUMERATED {r1, r2, r4, r8}, + pucch-NumRepetitionCE-format2-r13 ENUMERATED {r1, r2, r4, r8} + }, + modeB SEQUENCE { + pucch-NumRepetitionCE-format1-r13 ENUMERATED {r4, r8, r16, r32}, + pucch-NumRepetitionCE-format2-r13 ENUMERATED {r4, r8, r16, r32} + } + } + } OPTIONAL --Need ON +} + +PUCCH-ConfigDedicated-v1370 ::= SEQUENCE { + pucch-Format-v1370 CHOICE { + release NULL, + setup PUCCH-Format3-Conf-r13 + } +} + +PUCCH-Format3-Conf-r13 ::= SEQUENCE { + n3PUCCH-AN-List-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) OPTIONAL, -- Need ON + twoAntennaPortActivatedPUCCH-Format3-r13 CHOICE { + release NULL, + setup SEQUENCE { + n3PUCCH-AN-ListP1-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) + } + } OPTIONAL -- Need ON +} + +PUCCH-ConfigDedicated-v1430 ::= SEQUENCE { + pucch-NumRepetitionCE-format1-r14 ENUMERATED {r64,r128} OPTIONAL -- Need OR +} + +Format4-resource-r13 ::= SEQUENCE { + startingPRB-format4-r13 INTEGER (0..109), + numberOfPRB-format4-r13 INTEGER (0..7) +} + +Format5-resource-r13 ::= SEQUENCE { + startingPRB-format5-r13 INTEGER (0..109), + cdm-index-format5-r13 INTEGER (0..1) +} + + + +N1PUCCH-AN-CS-r10 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + +N1PUCCH-AN-InfoList-r13 ::= SEQUENCE (SIZE(1..maxCE-Level-r13)) OF INTEGER (0..2047) + + +PUSCH-ConfigCommon ::= SEQUENCE { + pusch-ConfigBasic SEQUENCE { + n-SB INTEGER (1..4), + hoppingMode ENUMERATED {interSubFrame, intraAndInterSubFrame}, + pusch-HoppingOffset INTEGER (0..98), + enable64QAM BOOLEAN + }, + ul-ReferenceSignalsPUSCH UL-ReferenceSignalsPUSCH +} + +PUSCH-ConfigCommon-v1270 ::= SEQUENCE { + enable64QAM-v1270 ENUMERATED {true} +} + +PUSCH-ConfigCommon-v1310 ::= SEQUENCE { + pusch-maxNumRepetitionCEmodeA-r13 ENUMERATED { + r8, r16, r32 } OPTIONAL, -- Need OR + pusch-maxNumRepetitionCEmodeB-r13 ENUMERATED { + r192, r256, r384, r512, r768, r1024, + r1536, r2048} OPTIONAL, -- Need OR + pusch-HoppingOffset-v1310 + INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicated ::= SEQUENCE { + betaOffset-ACK-Index INTEGER (0..15), + betaOffset-RI-Index INTEGER (0..15), + betaOffset-CQI-Index INTEGER (0..15) +} + +PUSCH-ConfigDedicated-v1020 ::= SEQUENCE { + betaOffsetMC-r10 SEQUENCE { + betaOffset-ACK-Index-MC-r10 INTEGER (0..15), + betaOffset-RI-Index-MC-r10 INTEGER (0..15), + betaOffset-CQI-Index-MC-r10 INTEGER (0..15) + } OPTIONAL, -- Need OR + groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicated-v1130 ::= SEQUENCE { + pusch-DMRS-r11 CHOICE { + release NULL, + setup SEQUENCE { + nPUSCH-Identity-r11 INTEGER (0..509), + nDMRS-CSH-Identity-r11 INTEGER (0..509) + } + } +} + +PUSCH-ConfigDedicated-v1250::= SEQUENCE { + uciOnPUSCH CHOICE { + release NULL, + setup SEQUENCE { + betaOffset-ACK-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffset-RI-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffset-CQI-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffsetMC-r12 SEQUENCE { + betaOffset-ACK-Index-MC-SubframeSet2-r12 INTEGER (0..15), + betaOffset-RI-Index-MC-SubframeSet2-r12 INTEGER (0..15), + betaOffset-CQI-Index-MC-SubframeSet2-r12 INTEGER (0..15) + } OPTIONAL -- Need OR + } + } +} +PUSCH-ConfigDedicated-r13 ::= SEQUENCE { + betaOffset-ACK-Index-r13 INTEGER (0..15), + betaOffset2-ACK-Index-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-r13 INTEGER (0..15), + betaOffset-CQI-Index-r13 INTEGER (0..15), + betaOffsetMC-r13 SEQUENCE { + betaOffset-ACK-Index-MC-r13 INTEGER (0..15), + betaOffset2-ACK-Index-MC-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-MC-r13 INTEGER (0..15), + betaOffset-CQI-Index-MC-r13 INTEGER (0..15) + } OPTIONAL, -- Need OR + groupHoppingDisabled-r13 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r13 ENUMERATED {true} OPTIONAL, -- Need OR + pusch-DMRS-r11 CHOICE { + release NULL, + setup SEQUENCE { + nPUSCH-Identity-r13 INTEGER (0..509), + nDMRS-CSH-Identity-r13 INTEGER (0..509) + } + } OPTIONAL, -- Need ON + uciOnPUSCH CHOICE { + release NULL, + setup SEQUENCE { + betaOffset-ACK-Index-SubframeSet2-r13 INTEGER (0..15), + betaOffset2-ACK-Index-SubframeSet2-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-SubframeSet2-r13 INTEGER (0..15), + betaOffset-CQI-Index-SubframeSet2-r13 INTEGER (0..15), + betaOffsetMC-r12 SEQUENCE { + betaOffset-ACK-Index-MC-SubframeSet2-r13 INTEGER (0..15), + betaOffset2-ACK-Index-MC-SubframeSet2-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-MC-SubframeSet2-r13 INTEGER (0..15), + betaOffset-CQI-Index-MC-SubframeSet2-r13 INTEGER (0..15) + } OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + pusch-HoppingConfig-r13 ENUMERATED {on} OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicated-v1430 ::= SEQUENCE { + ce-PUSCH-NB-MaxTBS-r14 ENUMERATED {on} OPTIONAL, -- Need OR + ce-PUSCH-MaxBandwidth-r14 ENUMERATED {bw5} OPTIONAL, -- Need OR + tdd-PUSCH-UpPTS-r14 TDD-PUSCH-UpPTS-r14 OPTIONAL, -- Need ON + ul-DMRS-IFDMA-r14 BOOLEAN, + enable256QAM-r14 Enable256QAM-r14 OPTIONAL -- Need ON +} + +PUSCH-ConfigDedicatedSCell-r10 ::= SEQUENCE { + groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicatedSCell-v1430 ::= SEQUENCE { + enable256QAM-r14 Enable256QAM-r14 OPTIONAL -- Need OR +} + +TDD-PUSCH-UpPTS-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + symPUSCH-UpPTS-r14 ENUMERATED {sym1, sym2, sym3, sym4, sym5, sym6} OPTIONAL, -- Need ON + dmrs-LessUpPTS-Config-r14 ENUMERATED {true} OPTIONAL -- Need OR + } +} + +Enable256QAM-r14 ::= CHOICE { + release NULL, + setup CHOICE { + tpc-SubframeSet-Configured-r14 SEQUENCE { + subframeSet1-DCI-Format0-r14 BOOLEAN, + subframeSet1-DCI-Format4-r14 BOOLEAN, + subframeSet2-DCI-Format0-r14 BOOLEAN, + subframeSet2-DCI-Format4-r14 BOOLEAN + }, + tpc-SubframeSet-NotConfigured-r14 SEQUENCE { + dci-Format0-r14 BOOLEAN, + dci-Format4-r14 BOOLEAN + } + } +} + +PUSCH-EnhancementsConfig-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + pusch-HoppingOffsetPUSCH-Enh-r14 INTEGER (1..100) OPTIONAL, -- Need ON + interval-ULHoppingPUSCH-Enh-r14 CHOICE { + interval-FDD-PUSCH-Enh-r14 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-PUSCH-Enh-r14 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL -- Need ON + } +} + +UL-ReferenceSignalsPUSCH ::= SEQUENCE { + groupHoppingEnabled BOOLEAN, + groupAssignmentPUSCH INTEGER (0..29), + sequenceHoppingEnabled BOOLEAN, + cyclicShift INTEGER (0..7) +} + + +RACH-ConfigCommon ::= SEQUENCE { + preambleInfo SEQUENCE { + numberOfRA-Preambles ENUMERATED { + n4, n8, n12, n16, n20, n24, n28, + n32, n36, n40, n44, n48, n52, n56, + n60, n64}, + preamblesGroupAConfig SEQUENCE { + sizeOfRA-PreamblesGroupA ENUMERATED { + n4, n8, n12, n16, n20, n24, n28, + n32, n36, n40, n44, n48, n52, n56, + n60}, + messageSizeGroupA ENUMERATED {b56, b144, b208, b256}, + messagePowerOffsetGroupB ENUMERATED { + minusinfinity, dB0, dB5, dB8, dB10, dB12, + dB15, dB18}, + ... + } OPTIONAL -- Need OP + }, + powerRampingParameters PowerRampingParameters, + ra-SupervisionInfo SEQUENCE { + preambleTransMax PreambleTransMax, + ra-ResponseWindowSize ENUMERATED { + sf2, sf3, sf4, sf5, sf6, sf7, + sf8, sf10}, + mac-ContentionResolutionTimer ENUMERATED { + sf8, sf16, sf24, sf32, sf40, sf48, + sf56, sf64} + }, + maxHARQ-Msg3Tx INTEGER (1..8), + ..., + [[ preambleTransMax-CE-r13 PreambleTransMax OPTIONAL, -- Need OR + rach-CE-LevelInfoList-r13 RACH-CE-LevelInfoList-r13 OPTIONAL -- Need OR + ]] +} + +RACH-ConfigCommon-v1250 ::= SEQUENCE { + txFailParams-r12 SEQUENCE { + connEstFailCount-r12 ENUMERATED {n1, n2, n3, n4}, + connEstFailOffsetValidity-r12 ENUMERATED {s30, s60, s120, s240, + s300, s420, s600, s900}, + connEstFailOffset-r12 INTEGER (0..15) OPTIONAL -- Need OP + } +} + +RACH-ConfigCommonSCell-r11 ::= SEQUENCE { + powerRampingParameters-r11 PowerRampingParameters, + ra-SupervisionInfo-r11 SEQUENCE { + preambleTransMax-r11 PreambleTransMax + }, + ... +} + +RACH-CE-LevelInfoList-r13 ::= SEQUENCE (SIZE (1..maxCE-Level-r13)) OF RACH-CE-LevelInfo-r13 + +RACH-CE-LevelInfo-r13 ::= SEQUENCE { + preambleMappingInfo-r13 SEQUENCE { + firstPreamble-r13 INTEGER(0..63), + lastPreamble-r13 INTEGER(0..63) + }, + ra-ResponseWindowSize-r13 ENUMERATED {sf20, sf50, sf80, sf120, sf180, + sf240, sf320, sf400}, + + mac-ContentionResolutionTimer-r13 ENUMERATED {sf80, sf100, sf120, + sf160, sf200, sf240, sf480, sf960}, + rar-HoppingConfig-r13 ENUMERATED {on,off}, + ... +} + +PowerRampingParameters ::= SEQUENCE { + powerRampingStep ENUMERATED {dB0, dB2,dB4, dB6}, + preambleInitialReceivedTargetPower ENUMERATED { + dBm-120, dBm-118, dBm-116, dBm-114, dBm-112, + dBm-110, dBm-108, dBm-106, dBm-104, dBm-102, + dBm-100, dBm-98, dBm-96, dBm-94, + dBm-92, dBm-90} +} + +PreambleTransMax ::= ENUMERATED { + n3, n4, n5, n6, n7, n8, n10, n20, n50, + n100, n200} + + +RACH-ConfigDedicated ::= SEQUENCE { + ra-PreambleIndex INTEGER (0..63), + ra-PRACH-MaskIndex INTEGER (0..15) +} + + +RadioResourceConfigCommonSIB ::= SEQUENCE { + rach-ConfigCommon RACH-ConfigCommon, + bcch-Config BCCH-Config, + pcch-Config PCCH-Config, + prach-Config PRACH-ConfigSIB, + pdsch-ConfigCommon PDSCH-ConfigCommon, + pusch-ConfigCommon PUSCH-ConfigCommon, + pucch-ConfigCommon PUCCH-ConfigCommon, + soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon, + uplinkPowerControlCommon UplinkPowerControlCommon, + ul-CyclicPrefixLength UL-CyclicPrefixLength, + ..., + [[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need OR + ]], + [[ rach-ConfigCommon-v1250 RACH-ConfigCommon-v1250 OPTIONAL -- Need OR + ]], + [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR + ]], + [[ bcch-Config-v1310 BCCH-Config-v1310 OPTIONAL, -- Need OR + pcch-Config-v1310 PCCH-Config-v1310 OPTIONAL, -- Need OR + freqHoppingParameters-r13 FreqHoppingParameters-r13 OPTIONAL, -- Need OR + pdsch-ConfigCommon-v1310 PDSCH-ConfigCommon-v1310 OPTIONAL, -- Need OR + pusch-ConfigCommon-v1310 PUSCH-ConfigCommon-v1310 OPTIONAL, -- Need OR + prach-ConfigCommon-v1310 PRACH-ConfigSIB-v1310 OPTIONAL, -- Need OR + pucch-ConfigCommon-v1310 PUCCH-ConfigCommon-v1310 OPTIONAL -- Need OR + ]], + [[ highSpeedConfig-r14 HighSpeedConfig-r14 OPTIONAL, -- Need OR + prach-Config-v1430 PRACH-Config-v1430 OPTIONAL, -- Need OR + pucch-ConfigCommon-v1430 PUCCH-ConfigCommon-v1430 OPTIONAL -- Need OR + ]] +} + +RadioResourceConfigCommon ::= SEQUENCE { + rach-ConfigCommon RACH-ConfigCommon OPTIONAL, -- Need ON + prach-Config PRACH-Config, + pdsch-ConfigCommon PDSCH-ConfigCommon OPTIONAL, -- Need ON + pusch-ConfigCommon PUSCH-ConfigCommon, + phich-Config PHICH-Config OPTIONAL, -- Need ON + pucch-ConfigCommon PUCCH-ConfigCommon OPTIONAL, -- Need ON + soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon OPTIONAL, -- Need ON + uplinkPowerControlCommon UplinkPowerControlCommon OPTIONAL, -- Need ON + antennaInfoCommon AntennaInfoCommon OPTIONAL, -- Need ON + p-Max P-Max OPTIONAL, -- Need OP + tdd-Config TDD-Config OPTIONAL, -- Cond TDD + ul-CyclicPrefixLength UL-CyclicPrefixLength, + ..., + [[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need ON + ]], + [[ tdd-Config-v1130 TDD-Config-v1130 OPTIONAL -- Cond TDD3 + ]], + [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR + ]], + [[ + prach-Config-v1310 PRACH-Config-v1310 OPTIONAL, -- Need ON + freqHoppingParameters-r13 FreqHoppingParameters-r13 OPTIONAL, -- Need ON + pdsch-ConfigCommon-v1310 PDSCH-ConfigCommon-v1310 OPTIONAL, -- Need ON + pucch-ConfigCommon-v1310 PUCCH-ConfigCommon-v1310 OPTIONAL, -- Need ON + pusch-ConfigCommon-v1310 PUSCH-ConfigCommon-v1310 OPTIONAL, -- Need ON + uplinkPowerControlCommon-v1310 UplinkPowerControlCommon-v1310 OPTIONAL -- Need ON + ]], + [[ highSpeedConfig-r14 HighSpeedConfig-r14 OPTIONAL, -- Need OR + prach-Config-v1430 PRACH-Config-v1430 OPTIONAL, -- Need OR + pucch-ConfigCommon-v1430 PUCCH-ConfigCommon-v1430 OPTIONAL, -- Need OR + tdd-Config-v1430 TDD-Config-v1430 OPTIONAL -- Cond TDD3 + ]], + [[ + tdd-Config-v1450 TDD-Config-v1450 OPTIONAL -- Cond TDD3 + ]] +} + +RadioResourceConfigCommonPSCell-r12 ::= SEQUENCE { + basicFields-r12 RadioResourceConfigCommonSCell-r10, + pucch-ConfigCommon-r12 PUCCH-ConfigCommon, + rach-ConfigCommon-r12 RACH-ConfigCommon, + uplinkPowerControlCommonPSCell-r12 UplinkPowerControlCommonPSCell-r12, + ..., + [[ uplinkPowerControlCommonPSCell-v1310 + UplinkPowerControlCommon-v1310 OPTIONAL -- Need ON + ]] +} + +RadioResourceConfigCommonPSCell-v12f0 ::= SEQUENCE { + basicFields-v12f0 RadioResourceConfigCommonSCell-v10l0 +} + +RadioResourceConfigCommonPSCell-v1440 ::= SEQUENCE { + basicFields-v1440 RadioResourceConfigCommonSCell-v1440 +} + +RadioResourceConfigCommonSCell-r10 ::= SEQUENCE { + -- DL configuration as well as configuration applicable for DL and UL + nonUL-Configuration-r10 SEQUENCE { + -- 1: Cell characteristics + dl-Bandwidth-r10 ENUMERATED {n6, n15, n25, n50, n75, n100}, + -- 2: Physical configuration, general + antennaInfoCommon-r10 AntennaInfoCommon, + mbsfn-SubframeConfigList-r10 MBSFN-SubframeConfigList OPTIONAL, -- Need OR + -- 3: Physical configuration, control + phich-Config-r10 PHICH-Config, + -- 4: Physical configuration, physical channels + pdsch-ConfigCommon-r10 PDSCH-ConfigCommon, + tdd-Config-r10 TDD-Config OPTIONAL -- Cond TDDSCell + }, + -- UL configuration + ul-Configuration-r10 SEQUENCE { + ul-FreqInfo-r10 SEQUENCE { + ul-CarrierFreq-r10 ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth-r10 ENUMERATED {n6, n15, + n25, n50, n75, n100} OPTIONAL, -- Need OP + additionalSpectrumEmissionSCell-r10 AdditionalSpectrumEmission + }, + p-Max-r10 P-Max OPTIONAL, -- Need OP + uplinkPowerControlCommonSCell-r10 UplinkPowerControlCommonSCell-r10, + -- A special version of IE UplinkPowerControlCommon may be introduced + -- 3: Physical configuration, control + soundingRS-UL-ConfigCommon-r10 SoundingRS-UL-ConfigCommon, + ul-CyclicPrefixLength-r10 UL-CyclicPrefixLength, + -- 4: Physical configuration, physical channels + prach-ConfigSCell-r10 PRACH-ConfigSCell-r10 OPTIONAL, -- Cond TDD-OR-NoR11 + pusch-ConfigCommon-r10 PUSCH-ConfigCommon + } OPTIONAL, -- Need OR + ..., + [[ ul-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Need OP + ]], + [[ rach-ConfigCommonSCell-r11 RACH-ConfigCommonSCell-r11 OPTIONAL, -- Cond ULSCell + prach-ConfigSCell-r11 PRACH-Config OPTIONAL, -- Cond UL + tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD2 + uplinkPowerControlCommonSCell-v1130 + UplinkPowerControlCommonSCell-v1130 OPTIONAL -- Cond UL + ]], + [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR + ]], + [[ pucch-ConfigCommon-r13 PUCCH-ConfigCommon OPTIONAL, -- Cond UL + uplinkPowerControlCommonSCell-v1310 + UplinkPowerControlCommonSCell-v1310 OPTIONAL -- Cond UL + ]], + [[ highSpeedConfigSCell-r14 HighSpeedConfigSCell-r14 OPTIONAL, -- Need OR + prach-Config-v1430 PRACH-Config-v1430 OPTIONAL, -- Cond UL + ul-Configuration-r14 SEQUENCE { + ul-FreqInfo-r14 SEQUENCE { + ul-CarrierFreq-r14 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need OP + ul-Bandwidth-r14 ENUMERATED {n6, n15, + n25, n50, n75, n100} OPTIONAL, -- Need OP + additionalSpectrumEmissionSCell-r14 AdditionalSpectrumEmission + }, + p-Max-r14 P-Max OPTIONAL, -- Need OP + soundingRS-UL-ConfigCommon-r14 SoundingRS-UL-ConfigCommon, + ul-CyclicPrefixLength-r14 UL-CyclicPrefixLength, + prach-ConfigSCell-r14 PRACH-ConfigSCell-r10 OPTIONAL, -- Cond TDD-OR-NoR11 + uplinkPowerControlCommonPUSCH-LessCell-v1430 UplinkPowerControlCommonPUSCH-LessCell-v1430 OPTIONAL -- Need OR +} OPTIONAL, -- Cond ULSRS + harq-ReferenceConfig-r14 ENUMERATED {sa2,sa4,sa5} OPTIONAL, -- Need OR + soundingRS-FlexibleTiming-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL-- Need ON + ]] +} + +RadioResourceConfigCommonSCell-v10l0 ::= SEQUENCE { + -- UL configuration + ul-Configuration-v10l0 SEQUENCE { + additionalSpectrumEmissionSCell-v10l0 AdditionalSpectrumEmission-v10l0 + } +} + +RadioResourceConfigCommonSCell-v1440 ::= SEQUENCE { + ul-Configuration-v1440 SEQUENCE { + ul-FreqInfo-v1440 SEQUENCE { + additionalSpectrumEmissionSCell-v1440 AdditionalSpectrumEmission-v10l0 + } + } +} + +BCCH-Config ::= SEQUENCE { + modificationPeriodCoeff ENUMERATED {n2, n4, n8, n16} +} + +BCCH-Config-v1310 ::= SEQUENCE { + modificationPeriodCoeff-v1310 ENUMERATED {n64} +} + +FreqHoppingParameters-r13 ::= SEQUENCE { + dummy ENUMERATED {nb2, nb4} OPTIONAL, + dummy2 CHOICE { + interval-FDD-r13 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-r13 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL, + dummy3 CHOICE { + interval-FDD-r13 ENUMERATED {int2, int4, int8, int16}, + interval-TDD-r13 ENUMERATED { int5, int10, int20, int40} + } OPTIONAL, + interval-ULHoppingConfigCommonModeA-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-r13 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL, -- Cond MP-A + interval-ULHoppingConfigCommonModeB-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int2, int4, int8, int16}, + interval-TDD-r13 ENUMERATED { int5, int10, int20, int40} + } OPTIONAL, -- Cond MP-B + dummy4 INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL +} + +PCCH-Config ::= SEQUENCE { + defaultPagingCycle ENUMERATED { + rf32, rf64, rf128, rf256}, + nB ENUMERATED { + fourT, twoT, oneT, halfT, quarterT, oneEighthT, + oneSixteenthT, oneThirtySecondT} +} + +PCCH-Config-v1310 ::= SEQUENCE { + paging-narrowBands-r13 INTEGER (1..maxAvailNarrowBands-r13), + mpdcch-NumRepetition-Paging-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, r256}, + nB-v1310 ENUMERATED {one64thT, one128thT, one256thT} + OPTIONAL -- Need OR +} + +UL-CyclicPrefixLength ::= ENUMERATED {len1, len2} + +HighSpeedConfig-r14 ::= SEQUENCE { + highSpeedEnhancedMeasFlag-r14 ENUMERATED {true} OPTIONAL, -- Need OR + highSpeedEnhancedDemodulationFlag-r14 ENUMERATED {true} OPTIONAL -- Need OR +} + +HighSpeedConfigSCell-r14 ::= SEQUENCE { + highSpeedEnhancedDemodulationFlag-r14 ENUMERATED {true} OPTIONAL -- Need OR +} + + +RadioResourceConfigDedicated ::= SEQUENCE { + srb-ToAddModList SRB-ToAddModList OPTIONAL, -- Cond HO-Conn + drb-ToAddModList DRB-ToAddModList OPTIONAL, -- Cond HO-toEUTRA + drb-ToReleaseList DRB-ToReleaseList OPTIONAL, -- Need ON + mac-MainConfig CHOICE { + explicitValue MAC-MainConfig, + defaultValue NULL + } OPTIONAL, -- Cond HO-toEUTRA2 + sps-Config SPS-Config OPTIONAL, -- Need ON + physicalConfigDedicated PhysicalConfigDedicated OPTIONAL, -- Need ON + ..., + [[ rlf-TimersAndConstants-r9 RLF-TimersAndConstants-r9 OPTIONAL -- Need ON + ]], + [[ measSubframePatternPCell-r10 MeasSubframePatternPCell-r10 OPTIONAL -- Need ON + ]], + [[ neighCellsCRS-Info-r11 NeighCellsCRS-Info-r11 OPTIONAL -- Need ON + ]], + [[ naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL -- Need ON + ]], + [[ neighCellsCRS-Info-r13 NeighCellsCRS-Info-r13 OPTIONAL, -- Cond CRSIM + rlf-TimersAndConstants-r13 RLF-TimersAndConstants-r13 OPTIONAL -- Need ON + ]], + [[ sps-Config-v1430 SPS-Config-v1430 OPTIONAL -- Cond SPS + ]] +} + +RadioResourceConfigDedicated-v1370 ::= SEQUENCE { + physicalConfigDedicated-v1370 PhysicalConfigDedicated-v1370 OPTIONAL -- Need ON +} + +RadioResourceConfigDedicatedPSCell-r12 ::= SEQUENCE { + -- UE specific configuration extensions applicable for an PSCell + physicalConfigDedicatedPSCell-r12 PhysicalConfigDedicated OPTIONAL, -- Need ON + sps-Config-r12 SPS-Config OPTIONAL, -- Need ON + naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL, -- Need ON + ..., + [[ neighCellsCRS-InfoPSCell-r13 NeighCellsCRS-Info-r13 OPTIONAL -- Need ON + ]], + [[ sps-Config-v1430 SPS-Config-v1430 OPTIONAL -- Cond SPS2 + ]] +} + +RadioResourceConfigDedicatedPSCell-v1370 ::= SEQUENCE { + physicalConfigDedicatedPSCell-v1370 PhysicalConfigDedicated-v1370 OPTIONAL -- Need ON +} + +RadioResourceConfigDedicatedSCG-r12 ::= SEQUENCE { + drb-ToAddModListSCG-r12 DRB-ToAddModListSCG-r12 OPTIONAL, -- Need ON + mac-MainConfigSCG-r12 MAC-MainConfig OPTIONAL, -- Need ON + rlf-TimersAndConstantsSCG-r12 RLF-TimersAndConstantsSCG-r12 OPTIONAL, -- Need ON + ... +} + +RadioResourceConfigDedicatedSCell-r10 ::= SEQUENCE { + -- UE specific configuration extensions applicable for an SCell + physicalConfigDedicatedSCell-r10 PhysicalConfigDedicatedSCell-r10 OPTIONAL, -- Need ON + ..., + [[ mac-MainConfigSCell-r11 MAC-MainConfigSCell-r11 OPTIONAL -- Cond SCellAdd + ]], + [[ naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL -- Need ON + ]], + [[ neighCellsCRS-InfoSCell-r13 NeighCellsCRS-Info-r13 OPTIONAL -- Need ON + ]], + [[ physicalConfigDedicatedSCell-v1370 PhysicalConfigDedicatedSCell-v1370 OPTIONAL -- Need ON + ]] +} + +SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod + +SRB-ToAddMod ::= SEQUENCE { + srb-Identity INTEGER (1..2), + rlc-Config CHOICE { + explicitValue RLC-Config, + defaultValue NULL + } OPTIONAL, -- Cond Setup + logicalChannelConfig CHOICE { + explicitValue LogicalChannelConfig, + defaultValue NULL + } OPTIONAL, -- Cond Setup + ... +} + +DRB-ToAddModList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod + +DRB-ToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddModSCG-r12 + +DRB-ToAddMod ::= SEQUENCE { + eps-BearerIdentity INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity DRB-Identity, + pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP + rlc-Config RLC-Config OPTIONAL, -- Cond SetupM + logicalChannelIdentity INTEGER (3..10) OPTIONAL, -- Cond DRB-SetupM + logicalChannelConfig LogicalChannelConfig OPTIONAL, -- Cond SetupM + ..., + [[ drb-TypeChange-r12 ENUMERATED {toMCG} OPTIONAL, -- Need OP + rlc-Config-v1250 RLC-Config-v1250 OPTIONAL -- Need ON + ]], + [[ rlc-Config-v1310 RLC-Config-v1310 OPTIONAL, -- Need ON + drb-TypeLWA-r13 BOOLEAN OPTIONAL, -- Need ON + drb-TypeLWIP-r13 ENUMERATED {lwip, lwip-DL-only, + lwip-UL-only, eutran} OPTIONAL -- Need ON + ]], + [[ rlc-Config-v1430 RLC-Config-v1430 OPTIONAL, -- Need ON + lwip-UL-Aggregation-r14 BOOLEAN OPTIONAL, -- Cond LWIP + lwip-DL-Aggregation-r14 BOOLEAN OPTIONAL, -- Cond LWIP + lwa-WLAN-AC-r14 ENUMERATED {ac-bk, ac-be, ac-vi, ac-vo} OPTIONAL -- Cond UL-LWA + ]] +} + +DRB-ToAddModSCG-r12 ::= SEQUENCE { + drb-Identity-r12 DRB-Identity, + drb-Type-r12 CHOICE { + split-r12 NULL, + scg-r12 SEQUENCE { + eps-BearerIdentity-r12 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + pdcp-Config-r12 PDCP-Config OPTIONAL -- Cond PDCP-S + } + } OPTIONAL, -- Cond SetupS2 + rlc-ConfigSCG-r12 RLC-Config OPTIONAL, -- Cond SetupS + rlc-Config-v1250 RLC-Config-v1250 OPTIONAL, -- Need ON + logicalChannelIdentitySCG-r12 INTEGER (3..10) OPTIONAL, -- Cond DRB-SetupS + logicalChannelConfigSCG-r12 LogicalChannelConfig OPTIONAL, -- Cond SetupS + ..., + [[ rlc-Config-v1430 RLC-Config-v1430 OPTIONAL -- Need ON + ]] +} + +DRB-ToReleaseList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity + +MeasSubframePatternPCell-r10 ::= CHOICE { + release NULL, + setup MeasSubframePattern-r10 +} + +NeighCellsCRS-Info-r11 ::= CHOICE { + release NULL, + setup CRS-AssistanceInfoList-r11 +} + +CRS-AssistanceInfoList-r11 ::= SEQUENCE (SIZE (1..maxCellReport)) OF CRS-AssistanceInfo-r11 + +CRS-AssistanceInfo-r11 ::= SEQUENCE { + physCellId-r11 PhysCellId, + antennaPortsCount-r11 ENUMERATED {an1, an2, an4, spare1}, + mbsfn-SubframeConfigList-r11 MBSFN-SubframeConfigList, + ..., + [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL -- Need ON + ]] +} + +NeighCellsCRS-Info-r13 ::= CHOICE { + release NULL, + setup CRS-AssistanceInfoList-r13 +} + +CRS-AssistanceInfoList-r13 ::= SEQUENCE (SIZE (1..maxCellReport)) OF CRS-AssistanceInfo-r13 + +CRS-AssistanceInfo-r13 ::= SEQUENCE { + physCellId-r13 PhysCellId, + antennaPortsCount-r13 ENUMERATED {an1, an2, an4, spare1}, + mbsfn-SubframeConfigList-r13 MBSFN-SubframeConfigList OPTIONAL, -- Need ON + ..., + [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL -- Need ON + ]] +} + +NAICS-AssistanceInfo-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + neighCellsToReleaseList-r12 NeighCellsToReleaseList-r12 OPTIONAL , -- Need ON + neighCellsToAddModList-r12 NeighCellsToAddModList-r12 OPTIONAL, -- Need ON + servCellp-a-r12 P-a OPTIONAL -- Need ON + } +} + +NeighCellsToReleaseList-r12 ::= SEQUENCE (SIZE (1..maxNeighCell-r12)) OF PhysCellId + +NeighCellsToAddModList-r12 ::= SEQUENCE (SIZE (1..maxNeighCell-r12)) OF NeighCellsInfo-r12 + +NeighCellsInfo-r12 ::= SEQUENCE { + physCellId-r12 PhysCellId, + p-b-r12 INTEGER (0..3), + crs-PortsCount-r12 ENUMERATED {n1, n2, n4, spare}, + mbsfn-SubframeConfig-r12 MBSFN-SubframeConfigList OPTIONAL, -- Need ON + p-aList-r12 SEQUENCE (SIZE (1..maxP-a-PerNeighCell-r12)) OF P-a, + transmissionModeList-r12 BIT STRING (SIZE(8)), + resAllocGranularity-r12 INTEGER (1..4), + ... +} +P-a ::= ENUMERATED { dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} + + +RCLWI-Configuration-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + rclwi-Config-r13 RCLWI-Config-r13 + } +} + +RCLWI-Config-r13 ::= SEQUENCE { + command CHOICE { + steerToWLAN-r13 SEQUENCE { + mobilityConfig-r13 WLAN-Id-List-r12 + }, + steerToLTE-r13 NULL + }, + ... +} + + +RLC-Config ::= CHOICE { + am SEQUENCE { + ul-AM-RLC UL-AM-RLC, + dl-AM-RLC DL-AM-RLC + }, + um-Bi-Directional SEQUENCE { + ul-UM-RLC UL-UM-RLC, + dl-UM-RLC DL-UM-RLC + }, + um-Uni-Directional-UL SEQUENCE { + ul-UM-RLC UL-UM-RLC + }, + um-Uni-Directional-DL SEQUENCE { + dl-UM-RLC DL-UM-RLC + }, + ... +} + +RLC-Config-v1250 ::= SEQUENCE { + ul-extended-RLC-LI-Field-r12 BOOLEAN, + dl-extended-RLC-LI-Field-r12 BOOLEAN +} + +RLC-Config-v1310 ::= SEQUENCE { + ul-extended-RLC-AM-SN-r13 BOOLEAN, + dl-extended-RLC-AM-SN-r13 BOOLEAN, + pollPDU-v1310 PollPDU-v1310 OPTIONAL -- Need OR +} + +RLC-Config-v1430 ::= CHOICE { + release NULL, + setup SEQUENCE { + pollByte-r14 PollByte-r14 + } +} + +UL-AM-RLC ::= SEQUENCE { + t-PollRetransmit T-PollRetransmit, + pollPDU PollPDU, + pollByte PollByte, + maxRetxThreshold ENUMERATED { + t1, t2, t3, t4, t6, t8, t16, t32} +} + +DL-AM-RLC ::= SEQUENCE { + t-Reordering T-Reordering, + t-StatusProhibit T-StatusProhibit +} + +UL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength +} + +DL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength, + t-Reordering T-Reordering +} + +SN-FieldLength ::= ENUMERATED {size5, size10} + +T-PollRetransmit ::= ENUMERATED { + ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, ms800-v1310, + ms1000-v1310, ms2000-v1310, ms4000-v1310, + spare5, spare4, spare3, spare2, spare1} + +PollPDU ::= ENUMERATED { + p4, p8, p16, p32, p64, p128, p256, pInfinity} + +PollPDU-v1310 ::= ENUMERATED { + p512, p1024, p2048, p4096, p6144, p8192, p12288, p16384} + +PollByte ::= ENUMERATED { + kB25, kB50, kB75, kB100, kB125, kB250, kB375, + kB500, kB750, kB1000, kB1250, kB1500, kB2000, + kB3000, kBinfinity, spare1} + +PollByte-r14 ::= ENUMERATED { + kB1, kB2, kB5, kB8, kB10, kB15, kB3500, + kB4000, kB4500, kB5000, kB5500, kB6000, kB6500, + kB7000, kB7500, kB8000, kB9000, kB10000, kB11000, kB12000, + kB13000, kB14000, kB15000, kB16000, kB17000, kB18000, + kB19000, kB20000, kB25000, kB30000, kB35000, kB40000} + +T-Reordering ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms110, + ms120, ms130, ms140, ms150, ms160, ms170, + ms180, ms190, ms200, ms1600-v1310} + +T-StatusProhibit ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, ms800-v1310, + ms1000-v1310, ms1200-v1310, ms1600-v1310, ms2000-v1310, ms2400-v1310, spare2, + spare1} + + +RLF-TimersAndConstants-r9 ::= CHOICE { + release NULL, + setup SEQUENCE { + t301-r9 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t310-r9 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n310-r9 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311-r9 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311-r9 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ... + } +} + +RLF-TimersAndConstants-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + t301-v1310 ENUMERATED { + ms2500, ms3000, ms3500, ms4000, ms5000, + ms6000, ms8000, ms10000}, + ..., + [[ t310-v1330 ENUMERATED {ms4000, ms6000} OPTIONAL -- Need ON + ]] + } +} + +RLF-TimersAndConstantsSCG-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + t313-r12 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n313-r12 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + n314-r12 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ... + } +} + + +RN-SubframeConfig-r10 ::= SEQUENCE { + subframeConfigPattern-r10 CHOICE { + subframeConfigPatternFDD-r10 BIT STRING (SIZE(8)), + subframeConfigPatternTDD-r10 INTEGER (0..31) + } OPTIONAL, -- Need ON + rpdcch-Config-r10 SEQUENCE { + resourceAllocationType-r10 ENUMERATED {type0, type1, type2Localized, type2Distributed, + spare4, spare3, spare2, spare1}, + resourceBlockAssignment-r10 CHOICE { + type01-r10 CHOICE { + nrb6-r10 BIT STRING (SIZE(6)), + nrb15-r10 BIT STRING (SIZE(8)), + nrb25-r10 BIT STRING (SIZE(13)), + nrb50-r10 BIT STRING (SIZE(17)), + nrb75-r10 BIT STRING (SIZE(19)), + nrb100-r10 BIT STRING (SIZE(25)) + }, + type2-r10 CHOICE { + nrb6-r10 BIT STRING (SIZE(5)), + nrb15-r10 BIT STRING (SIZE(7)), + nrb25-r10 BIT STRING (SIZE(9)), + nrb50-r10 BIT STRING (SIZE(11)), + nrb75-r10 BIT STRING (SIZE(12)), + nrb100-r10 BIT STRING (SIZE(13)) + }, + ... + }, + demodulationRS-r10 CHOICE { + interleaving-r10 ENUMERATED {crs}, + noInterleaving-r10 ENUMERATED {crs, dmrs} + }, + pdsch-Start-r10 INTEGER (1..3), + pucch-Config-r10 CHOICE { + tdd CHOICE { + channelSelectionMultiplexingBundling SEQUENCE { + n1PUCCH-AN-List-r10 SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + }, + fallbackForFormat3 SEQUENCE { + n1PUCCH-AN-P0-r10 INTEGER (0..2047), + n1PUCCH-AN-P1-r10 INTEGER (0..2047) OPTIONAL -- Need OR + } + }, + fdd SEQUENCE { + n1PUCCH-AN-P0-r10 INTEGER (0..2047), + n1PUCCH-AN-P1-r10 INTEGER (0..2047) OPTIONAL -- Need OR + } + }, + ... + } OPTIONAL, -- Need ON + ... +} + + +SchedulingRequestConfig ::= CHOICE { + release NULL, + setup SEQUENCE { + sr-PUCCH-ResourceIndex INTEGER (0..2047), + sr-ConfigIndex INTEGER (0..157), + dsr-TransMax ENUMERATED { + n4, n8, n16, n32, n64, spare3, spare2, spare1} + } +} + +SchedulingRequestConfig-v1020 ::= SEQUENCE { + sr-PUCCH-ResourceIndexP1-r10 INTEGER (0..2047) OPTIONAL -- Need OR +} + +SchedulingRequestConfigSCell-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + sr-PUCCH-ResourceIndex-r13 INTEGER (0..2047), + sr-PUCCH-ResourceIndexP1-r13 INTEGER (0..2047) OPTIONAL, -- Need OR + sr-ConfigIndex-r13 INTEGER (0..157), + dsr-TransMax-r13 ENUMERATED { + n4, n8, n16, n32, n64, spare3, spare2, spare1} + } + +} + + +SoundingRS-UL-ConfigCommon ::= CHOICE { + release NULL, + setup SEQUENCE { + srs-BandwidthConfig ENUMERATED {bw0, bw1, bw2, bw3, bw4, bw5, bw6, bw7}, + srs-SubframeConfig ENUMERATED { + sc0, sc1, sc2, sc3, sc4, sc5, sc6, sc7, + sc8, sc9, sc10, sc11, sc12, sc13, sc14, sc15}, + ackNackSRS-SimultaneousTransmission BOOLEAN, + srs-MaxUpPts ENUMERATED {true} OPTIONAL -- Cond TDD + } +} + +SoundingRS-UL-ConfigDedicated ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-Bandwidth ENUMERATED {bw0, bw1, bw2, bw3}, + srs-HoppingBandwidth ENUMERATED {hbw0, hbw1, hbw2, hbw3}, + freqDomainPosition INTEGER (0..23), + duration BOOLEAN, + srs-ConfigIndex INTEGER (0..1023), + transmissionComb INTEGER (0..1), + cyclicShift ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7} + } +} + +SoundingRS-UL-ConfigDedicated-v1020 ::= SEQUENCE { + srs-AntennaPort-r10 SRS-AntennaPort +} + +SoundingRS-UL-ConfigDedicated-v1310 ::= CHOICE{ + release NULL, + setup SEQUENCE { + transmissionComb-v1310 INTEGER (2..3) OPTIONAL, -- Need OR + cyclicShift-v1310 ENUMERATED {cs8, cs9, cs10, cs11} OPTIONAL, -- Need OR + transmissionCombNum-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR + } +} + +SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-UpPtsAdd-r13 ENUMERATED {sym2, sym4}, + srs-Bandwidth-r13 ENUMERATED {bw0, bw1, bw2, bw3}, + srs-HoppingBandwidth-r13 ENUMERATED {hbw0, hbw1, hbw2, hbw3}, + freqDomainPosition-r13 INTEGER (0..23), + duration-r13 BOOLEAN, + srs-ConfigIndex-r13 INTEGER (0..1023), + transmissionComb-r13 INTEGER (0..3), + cyclicShift-r13 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, + cs8, cs9, cs10, cs11}, + srs-AntennaPort-r13 SRS-AntennaPort, + transmissionCombNum-r13 ENUMERATED {n2, n4} + } +} + +SoundingRS-UL-ConfigDedicatedAperiodic-r10 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-ConfigIndexAp-r10 INTEGER (0..31), + srs-ConfigApDCI-Format4-r10 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-r10 OPTIONAL,--Need ON + srs-ActivateAp-r10 CHOICE { + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format0-r10 SRS-ConfigAp-r10, + srs-ConfigApDCI-Format1a2b2c-r10 SRS-ConfigAp-r10, + ... + } + } OPTIONAL -- Need ON + } +} + +SoundingRS-UL-ConfigDedicatedAperiodic-v1310 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format4-v1310 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-v1310 OPTIONAL,--Need ON + srs-ActivateAp-v1310 CHOICE { + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format0-v1310 SRS-ConfigAp-v1310 OPTIONAL, -- Need ON + srs-ConfigApDCI-Format1a2b2c-v1310 SRS-ConfigAp-v1310 OPTIONAL -- Need ON + } + } OPTIONAL -- Need ON + } +} + +SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-UpPtsAdd-r13 ENUMERATED {sym2, sym4}, + srs-ConfigIndexAp-r13 INTEGER (0..31), + srs-ConfigApDCI-Format4-r13 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-r13 OPTIONAL,--Need ON + srs-ActivateAp-r13 CHOICE { + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format0-r13 SRS-ConfigAp-r13, + srs-ConfigApDCI-Format1a2b2c-r13 SRS-ConfigAp-r13 + } + } OPTIONAL -- Need ON + } +} + +SoundingRS-UL-ConfigDedicatedAperiodic-v1430 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-SubframeIndication-r14 INTEGER (1..4) OPTIONAL -- Need ON + } +} + +SRS-ConfigAp-r10 ::= SEQUENCE { + srs-AntennaPortAp-r10 SRS-AntennaPort, + srs-BandwidthAp-r10 ENUMERATED {bw0, bw1, bw2, bw3}, + freqDomainPositionAp-r10 INTEGER (0..23), + transmissionCombAp-r10 INTEGER (0..1), + cyclicShiftAp-r10 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7} +} + +SRS-ConfigAp-v1310 ::= SEQUENCE { + transmissionCombAp-v1310 INTEGER (2..3) OPTIONAL, -- Need OR + cyclicShiftAp-v1310 ENUMERATED {cs8, cs9, cs10, cs11} OPTIONAL, -- Need OR + transmissionCombNum-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR +} + +SRS-ConfigAp-r13 ::= SEQUENCE { + srs-AntennaPortAp-r13 SRS-AntennaPort, + srs-BandwidthAp-r13 ENUMERATED {bw0, bw1, bw2, bw3}, + freqDomainPositionAp-r13 INTEGER (0..23), + transmissionCombAp-r13 INTEGER (0..3), + cyclicShiftAp-r13 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, + cs8, cs9, cs10, cs11}, + transmissionCombNum-r13 ENUMERATED {n2, n4} +} + +SRS-AntennaPort ::= ENUMERATED {an1, an2, an4, spare1} + + +SPS-Config ::= SEQUENCE { + semiPersistSchedC-RNTI C-RNTI OPTIONAL, -- Need OR + sps-ConfigDL SPS-ConfigDL OPTIONAL, -- Need ON + sps-ConfigUL SPS-ConfigUL OPTIONAL -- Need ON +} + +SPS-Config-v1430 ::= SEQUENCE { + ul-SPS-V-RNTI-r14 C-RNTI OPTIONAL, -- Need OR + sl-SPS-V-RNTI-r14 C-RNTI OPTIONAL, -- Need OR + sps-ConfigUL-ToAddModList-r14 SPS-ConfigUL-ToAddModList-r14 OPTIONAL, -- Need ON + sps-ConfigUL-ToReleaseList-r14 SPS-ConfigUL-ToReleaseList-r14 OPTIONAL, -- Need ON + sps-ConfigSL-ToAddModList-r14 SPS-ConfigSL-ToAddModList-r14 OPTIONAL, -- Need ON + sps-ConfigSL-ToReleaseList-r14 SPS-ConfigSL-ToReleaseList-r14 OPTIONAL -- Need ON +} + +SPS-ConfigUL-ToAddModList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigUL + +SPS-ConfigUL-ToReleaseList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigIndex-r14 + +SPS-ConfigSL-ToAddModList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigSL-r14 + +SPS-ConfigSL-ToReleaseList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigIndex-r14 + +SPS-ConfigDL ::= CHOICE{ + release NULL, + setup SEQUENCE { + semiPersistSchedIntervalDL ENUMERATED { + sf10, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, spare6, + spare5, spare4, spare3, spare2, + spare1}, + numberOfConfSPS-Processes INTEGER (1..8), + n1PUCCH-AN-PersistentList N1PUCCH-AN-PersistentList, + ..., + [[ twoAntennaPortActivated-r10 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-PersistentListP1-r10 N1PUCCH-AN-PersistentList + } + } OPTIONAL -- Need ON + ]] + } +} + +SPS-ConfigUL ::= CHOICE { + release NULL, + setup SEQUENCE { + semiPersistSchedIntervalUL ENUMERATED { + sf10, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, sf1-v1430, + sf2-v1430, sf3-v1430, sf4-v1430, sf5-v1430, + spare1}, + implicitReleaseAfter ENUMERATED {e2, e3, e4, e8}, + p0-Persistent SEQUENCE { + p0-NominalPUSCH-Persistent INTEGER (-126..24), + p0-UE-PUSCH-Persistent INTEGER (-8..7) + } OPTIONAL, -- Need OP + twoIntervalsConfig ENUMERATED {true} OPTIONAL, -- Cond TDD + ..., + [[ p0-PersistentSubframeSet2-r12 CHOICE { + release NULL, + setup SEQUENCE { + p0-NominalPUSCH-PersistentSubframeSet2-r12 INTEGER (-126..24), + p0-UE-PUSCH-PersistentSubframeSet2-r12 INTEGER (-8..7) + } + } OPTIONAL -- Need ON + ]], + [[ numberOfConfUlSPS-Processes-r13 INTEGER (1..8) OPTIONAL -- Need OR + ]], + [[ fixedRV-NonAdaptive-r14 ENUMERATED {true} OPTIONAL, -- Need OR + sps-ConfigIndex-r14 SPS-ConfigIndex-r14 OPTIONAL, -- Need OR + semiPersistSchedIntervalUL-v1430 ENUMERATED { + sf50, sf100, sf200, sf300, sf400, sf500, + sf600, sf700, sf800, sf900, sf1000, spare5, + spare4, spare3, spare2, spare1} OPTIONAL -- Need OR + + ]] + } +} + +SPS-ConfigSL-r14 ::= SEQUENCE { + sps-ConfigIndex-r14 SPS-ConfigIndex-r14, + semiPersistSchedIntervalSL-r14 ENUMERATED { + sf20, sf50, sf100, sf200, sf300, sf400, + sf500, sf600, sf700, sf800, sf900, sf1000, + spare4, spare3, spare2, spare1} +} + +SPS-ConfigIndex-r14 ::= INTEGER (1..maxConfigSPS-r14) + +N1PUCCH-AN-PersistentList ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + + +SRS-TPC-PDCCH-Config-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + srs-TPC-RNTI-r14 BIT STRING (SIZE (16)), + startingBitOfFormat3B-r14 INTEGER (0..31), fieldTypeFormat3B-r14 INTEGER (1..4), + srs-CC-SetIndexlist-r14 SEQUENCE (SIZE(1..4)) OF SRS-CC-SetIndex-r14 OPTIONAL -- Cond SRS-Trigger-TypeA + + } +} + +SRS-CC-SetIndex-r14 ::= SEQUENCE { + cc-SetIndex-r14 INTEGER (0..3), + cc-IndexInOneCC-Set-r14 INTEGER (0..7) +} + + +TDD-Config ::= SEQUENCE { + subframeAssignment ENUMERATED { + sa0, sa1, sa2, sa3, sa4, sa5, sa6}, + specialSubframePatterns ENUMERATED { + ssp0, ssp1, ssp2, ssp3, ssp4,ssp5, ssp6, ssp7, + ssp8} +} + +TDD-Config-v1130 ::= SEQUENCE { + specialSubframePatterns-v1130 ENUMERATED {ssp7,ssp9} +} + +TDD-Config-v1430 ::= SEQUENCE { + specialSubframePatterns-v1430 ENUMERATED {ssp10} +} + +TDD-Config-v1450 ::= SEQUENCE { + specialSubframePatterns-v1450 ENUMERATED {ssp10-CRS-LessDwPTS} +} + +TDD-ConfigSL-r12 ::= SEQUENCE { + subframeAssignmentSL-r12 ENUMERATED { + none, sa0, sa1, sa2, sa3, sa4, sa5, sa6} +} + + +TimeAlignmentTimer ::= ENUMERATED { + sf500, sf750, sf1280, sf1920, sf2560, sf5120, + sf10240, infinity} + +TPC-PDCCH-Config ::= CHOICE { + release NULL, + setup SEQUENCE { + tpc-RNTI BIT STRING (SIZE (16)), + tpc-Index TPC-Index + } +} + +TPC-PDCCH-ConfigSCell-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + tpc-Index-PUCCH-SCell-r13 TPC-Index + } +} + +TPC-Index ::= CHOICE { + indexOfFormat3 INTEGER (1..15), + indexOfFormat3A INTEGER (1..31) +} + + +TunnelConfigLWIP-r13 ::= SEQUENCE { + ip-Address-r13 IP-Address-r13, + ike-Identity-r13 IKE-Identity-r13, + ..., + [[ lwip-Counter-r13 INTEGER (0..65535) OPTIONAL -- Cond LWIP-Setup + ]] +} + +IKE-Identity-r13 ::= SEQUENCE { + idI-r13 OCTET STRING +} + +IP-Address-r13 ::= CHOICE { + ipv4-r13 BIT STRING (SIZE (32)), + ipv6-r13 BIT STRING (SIZE (128)) +} + + +UplinkPowerControlCommon ::= SEQUENCE { + p0-NominalPUSCH INTEGER (-126..24), + alpha Alpha-r12, + p0-NominalPUCCH INTEGER (-127..-96), + deltaFList-PUCCH DeltaFList-PUCCH, + deltaPreambleMsg3 INTEGER (-1..6) +} + +UplinkPowerControlCommon-v1020 ::= SEQUENCE { + deltaF-PUCCH-Format3-r10 ENUMERATED {deltaF-1, deltaF0, deltaF1, deltaF2, + deltaF3, deltaF4, deltaF5, deltaF6}, + deltaF-PUCCH-Format1bCS-r10 ENUMERATED {deltaF1, deltaF2, spare2, spare1} +} + +UplinkPowerControlCommon-v1310 ::= SEQUENCE { + deltaF-PUCCH-Format4-r13 ENUMERATED {deltaF16, deltaF15, deltaF14,deltaF13, deltaF12, + deltaF11, deltaF10, spare1} OPTIONAL, -- Need OR + deltaF-PUCCH-Format5-13 ENUMERATED { deltaF13, deltaF12, deltaF11, deltaF10, deltaF9, + deltaF8, deltaF7, spare1} OPTIONAL -- Need OR +} + +UplinkPowerControlCommonPSCell-r12 ::= SEQUENCE { +-- For uplink power control the additional/ missing fields are signalled (compared to SCell) + deltaF-PUCCH-Format3-r12 ENUMERATED {deltaF-1, deltaF0, deltaF1, deltaF2, + deltaF3, deltaF4, deltaF5, deltaF6}, + deltaF-PUCCH-Format1bCS-r12 ENUMERATED {deltaF1, deltaF2, spare2, spare1}, + p0-NominalPUCCH-r12 INTEGER (-127..-96), + deltaFList-PUCCH-r12 DeltaFList-PUCCH +} + + +UplinkPowerControlCommonSCell-r10 ::= SEQUENCE { + p0-NominalPUSCH-r10 INTEGER (-126..24), + alpha-r10 Alpha-r12 +} + +UplinkPowerControlCommonSCell-v1130 ::= SEQUENCE { + deltaPreambleMsg3-r11 INTEGER (-1..6) +} + +UplinkPowerControlCommonSCell-v1310 ::= SEQUENCE { +-- For uplink power control the additional/ missing fields are signalled (compared to SCell) + p0-NominalPUCCH INTEGER (-127..-96), + deltaFList-PUCCH DeltaFList-PUCCH, + deltaF-PUCCH-Format3-r12 ENUMERATED {deltaF-1, deltaF0, deltaF1, + deltaF2, deltaF3, deltaF4, deltaF5, + deltaF6} OPTIONAL, -- Need OR + deltaF-PUCCH-Format1bCS-r12 ENUMERATED {deltaF1, deltaF2, + spare2, spare1} OPTIONAL, -- Need OR + deltaF-PUCCH-Format4-r13 ENUMERATED {deltaF16, deltaF15, deltaF14, + deltaF13, deltaF12, deltaF11, deltaF10, + spare1} OPTIONAL, -- Need OR + deltaF-PUCCH-Format5-13 ENUMERATED { deltaF13, deltaF12, deltaF11, + deltaF10, deltaF9, deltaF8, deltaF7, + spare1} OPTIONAL -- Need OR +} +UplinkPowerControlCommonPUSCH-LessCell-v1430 ::= SEQUENCE { + p0-Nominal-PeriodicSRS-r14 INTEGER (-126..24) OPTIONAL, -- Need OR + p0-Nominal-AperiodicSRS-r14 INTEGER (-126..24) OPTIONAL, -- Need OR + alpha-SRS-r14 Alpha-r12 OPTIONAL -- Need OR +} + +UplinkPowerControlDedicated ::= SEQUENCE { + p0-UE-PUSCH INTEGER (-8..7), + deltaMCS-Enabled ENUMERATED {en0, en1}, + accumulationEnabled BOOLEAN, + p0-UE-PUCCH INTEGER (-8..7), + pSRS-Offset INTEGER (0..15), + filterCoefficient FilterCoefficient DEFAULT fc4 +} + +UplinkPowerControlDedicated-v1020 ::= SEQUENCE { + deltaTxD-OffsetListPUCCH-r10 DeltaTxD-OffsetListPUCCH-r10 OPTIONAL, -- Need OR + pSRS-OffsetAp-r10 INTEGER (0..15) OPTIONAL -- Need OR +} + +UplinkPowerControlDedicated-v1130 ::= SEQUENCE { + pSRS-Offset-v1130 INTEGER (16..31) OPTIONAL, -- Need OR + pSRS-OffsetAp-v1130 INTEGER (16..31) OPTIONAL, -- Need OR + deltaTxD-OffsetListPUCCH-v1130 DeltaTxD-OffsetListPUCCH-v1130 OPTIONAL -- Need OR +} + +UplinkPowerControlDedicated-v1250 ::= SEQUENCE { + set2PowerControlParameter CHOICE { + release NULL, + setup SEQUENCE { + tpc-SubframeSet-r12 BIT STRING (SIZE(10)), + p0-NominalPUSCH-SubframeSet2-r12 INTEGER (-126..24), + alpha-SubframeSet2-r12 Alpha-r12, + p0-UE-PUSCH-SubframeSet2-r12 INTEGER (-8..7) + } + } +} + +UplinkPUSCH-LessPowerControlDedicated-v1430 ::= SEQUENCE { + p0-UE-PeriodicSRS-r14 INTEGER (-8..7) OPTIONAL, -- Need OR + p0-UE-AperiodicSRS-r14 INTEGER (-8..7) OPTIONAL, -- Need OR + accumulationEnabled-r14 BOOLEAN +} + +UplinkPowerControlDedicatedSCell-r10 ::= SEQUENCE { + p0-UE-PUSCH-r10 INTEGER (-8..7), + deltaMCS-Enabled-r10 ENUMERATED {en0, en1}, + accumulationEnabled-r10 BOOLEAN, + pSRS-Offset-r10 INTEGER (0..15), + pSRS-OffsetAp-r10 INTEGER (0..15) OPTIONAL, -- Need OR + filterCoefficient-r10 FilterCoefficient DEFAULT fc4, + pathlossReferenceLinking-r10 ENUMERATED {pCell, sCell} +} + +UplinkPowerControlDedicatedSCell-v1310 ::= SEQUENCE { +--Release 8 + p0-UE-PUCCH INTEGER (-8..7), +--Release 10 + deltaTxD-OffsetListPUCCH-r10 DeltaTxD-OffsetListPUCCH-r10 OPTIONAL -- Need OR +} + +Alpha-r12 ::= ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1} + +DeltaFList-PUCCH ::= SEQUENCE { + deltaF-PUCCH-Format1 ENUMERATED {deltaF-2, deltaF0, deltaF2}, + deltaF-PUCCH-Format1b ENUMERATED {deltaF1, deltaF3, deltaF5}, + deltaF-PUCCH-Format2 ENUMERATED {deltaF-2, deltaF0, deltaF1, deltaF2}, + deltaF-PUCCH-Format2a ENUMERATED {deltaF-2, deltaF0, deltaF2}, + deltaF-PUCCH-Format2b ENUMERATED {deltaF-2, deltaF0, deltaF2} +} + +DeltaTxD-OffsetListPUCCH-r10 ::= SEQUENCE { + deltaTxD-OffsetPUCCH-Format1-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format1a1b-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format22a2b-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format3-r10 ENUMERATED {dB0, dB-2}, + ... + +} + +DeltaTxD-OffsetListPUCCH-v1130 ::= SEQUENCE { + deltaTxD-OffsetPUCCH-Format1bCS-r11 ENUMERATED {dB0, dB-1} +} + + +WLAN-Id-List-r13 ::= SEQUENCE (SIZE (1..maxWLAN-Id-r13)) OF WLAN-Identifiers-r12 + + +WLAN-MobilityConfig-r13 ::= SEQUENCE { + wlan-ToReleaseList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + wlan-ToAddList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + associationTimer-r13 ENUMERATED {s10, s30, + s60, s120, s240} OPTIONAL, -- Need OR + successReportRequested-r13 ENUMERATED {true} OPTIONAL, -- Need OR + ..., + [[ wlan-SuspendConfig-r14 WLAN-SuspendConfig-r14 OPTIONAL -- Need ON + ]] +} + + +NextHopChainingCount ::= INTEGER (0..7) + + +SecurityAlgorithmConfig ::= SEQUENCE { + cipheringAlgorithm CipheringAlgorithm-r12, + integrityProtAlgorithm ENUMERATED { + eia0-v920, eia1, eia2, eia3-v1130, spare4, spare3, + spare2, spare1, ...} +} + +CipheringAlgorithm-r12 ::= ENUMERATED { + eea0, eea1, eea2, eea3-v1130, spare4, spare3, + spare2, spare1, ...} + + +ShortMAC-I ::= BIT STRING (SIZE (16)) + + +AdditionalSpectrumEmission ::= INTEGER (1..32) + +AdditionalSpectrumEmission-v10l0 ::= INTEGER (33..288) + + +ARFCN-ValueCDMA2000 ::= INTEGER (0..2047) + + +ARFCN-ValueEUTRA ::= INTEGER (0..maxEARFCN) + +ARFCN-ValueEUTRA-v9e0 ::= INTEGER (maxEARFCN-Plus1..maxEARFCN2) + +ARFCN-ValueEUTRA-r9 ::= INTEGER (0..maxEARFCN2) + + +ARFCN-ValueGERAN ::= INTEGER (0..1023) + + +ARFCN-ValueUTRA ::= INTEGER (0..16383) + + +BandclassCDMA2000 ::= ENUMERATED { + bc0, bc1, bc2, bc3, bc4, bc5, bc6, bc7, bc8, + bc9, bc10, bc11, bc12, bc13, bc14, bc15, bc16, + bc17, bc18-v9a0, bc19-v9a0, bc20-v9a0, bc21-v9a0, + spare10, spare9, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1, ...} + + +BandIndicatorGERAN ::= ENUMERATED {dcs1800, pcs1900} + + +CarrierFreqCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + arfcn ARFCN-ValueCDMA2000 +} + + +CarrierFreqGERAN ::= SEQUENCE { + arfcn ARFCN-ValueGERAN, + bandIndicator BandIndicatorGERAN +} + + +CarrierFreqsGERAN ::= SEQUENCE { + startingARFCN ARFCN-ValueGERAN, + bandIndicator BandIndicatorGERAN, + followingARFCNs CHOICE { + explicitListOfARFCNs ExplicitListOfARFCNs, + equallySpacedARFCNs SEQUENCE { + arfcn-Spacing INTEGER (1..8), + numberOfFollowingARFCNs INTEGER (0..31) + }, + variableBitMapOfARFCNs OCTET STRING (SIZE (1..16)) + } +} + +ExplicitListOfARFCNs ::= SEQUENCE (SIZE (0..31)) OF ARFCN-ValueGERAN + + +CarrierFreqListMBMS-r11 ::= SEQUENCE (SIZE (1..maxFreqMBMS-r11)) OF ARFCN-ValueEUTRA-r9 + + +CDMA2000-Type ::= ENUMERATED {type1XRTT, typeHRPD} + + +CellIdentity ::= BIT STRING (SIZE (28)) + + +CellIndexList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellIndex + +CellIndex ::= INTEGER (1..maxCellMeas) + + +CellReselectionPriority ::= INTEGER (0..7) + + +CellSelectionInfoCE-r13 ::= SEQUENCE { + q-RxLevMinCE-r13 Q-RxLevMin, + q-QualMinRSRQ-CE-r13 Q-QualMin-r9 OPTIONAL -- Need OR +} + + +CellSelectionInfoCE1-r13 ::= SEQUENCE { + q-RxLevMinCE1-r13 Q-RxLevMin, + q-QualMinRSRQ-CE1-r13 Q-QualMin-r9 OPTIONAL -- Need OR +} + +CellSelectionInfoCE1-v1360 ::= SEQUENCE { + delta-RxLevMinCE1-v1360 INTEGER (-8..-1) +} + +CellReselectionSubPriority-r13 ::= ENUMERATED {oDot2, oDot4, oDot6, oDot8} + + +CSFB-RegistrationParam1XRTT ::= SEQUENCE { + sid BIT STRING (SIZE (15)), + nid BIT STRING (SIZE (16)), + multipleSID BOOLEAN, + multipleNID BOOLEAN, + homeReg BOOLEAN, + foreignSIDReg BOOLEAN, + foreignNIDReg BOOLEAN, + parameterReg BOOLEAN, + powerUpReg BOOLEAN, + registrationPeriod BIT STRING (SIZE (7)), + registrationZone BIT STRING (SIZE (12)), + totalZone BIT STRING (SIZE (3)), + zoneTimer BIT STRING (SIZE (3)) +} + +CSFB-RegistrationParam1XRTT-v920 ::= SEQUENCE { + powerDownReg-r9 ENUMERATED {true} +} + + +CellGlobalIdEUTRA ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellIdentity CellIdentity +} + + +CellGlobalIdUTRA ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellIdentity BIT STRING (SIZE (28)) +} + + +CellGlobalIdGERAN ::= SEQUENCE { + plmn-Identity PLMN-Identity, + locationAreaCode BIT STRING (SIZE (16)), + cellIdentity BIT STRING (SIZE (16)) +} + + +CellGlobalIdCDMA2000 ::= CHOICE { + cellGlobalId1XRTT BIT STRING (SIZE (47)), + cellGlobalIdHRPD BIT STRING (SIZE (128)) +} + + +CellSelectionInfoNFreq-r13 ::= SEQUENCE { + -- Cell selection information as in SIB1 + q-RxLevMin-r13 Q-RxLevMin, + q-RxLevMinOffset INTEGER (1..8) OPTIONAL, -- Need OP + -- Cell re-selection information as in SIB3 + q-Hyst-r13 ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + q-RxLevMinReselection-r13 Q-RxLevMin, + t-ReselectionEUTRA-r13 T-Reselection +} + + +CSG-Identity ::= BIT STRING (SIZE (27)) + + +FreqBandIndicator ::= INTEGER (1..maxFBI) + +FreqBandIndicator-v9e0 ::= INTEGER (maxFBI-Plus1..maxFBI2) + +FreqBandIndicator-r11 ::= INTEGER (1..maxFBI2) + + +MobilityControlInfo ::= SEQUENCE { + targetPhysCellId PhysCellId, + carrierFreq CarrierFreqEUTRA OPTIONAL, -- Cond HO-toEUTRA2 + carrierBandwidth CarrierBandwidthEUTRA OPTIONAL, -- Cond HO-toEUTRA + additionalSpectrumEmission AdditionalSpectrumEmission OPTIONAL, -- Cond HO-toEUTRA + t304 ENUMERATED { + ms50, ms100, ms150, ms200, ms500, ms1000, + ms2000, ms10000-v1310}, + newUE-Identity C-RNTI, + radioResourceConfigCommon RadioResourceConfigCommon, + rach-ConfigDedicated RACH-ConfigDedicated OPTIONAL, -- Need OP + ..., + [[ carrierFreq-v9e0 CarrierFreqEUTRA-v9e0 OPTIONAL -- Need ON + ]], + [[ drb-ContinueROHC-r11 ENUMERATED {true} OPTIONAL -- Cond HO + ]], + [[ mobilityControlInfoV2X-r14 MobilityControlInfoV2X-r14 OPTIONAL, -- Need ON + handoverWithoutWT-Change-r14 ENUMERATED {keepLWA-Config, sendEndMarker} OPTIONAL, -- Cond HO + makeBeforeBreak-r14 ENUMERATED {true} OPTIONAL, -- Need OR + rach-Skip-r14 RACH-Skip-r14 OPTIONAL, -- Need OR + sameSFN-Indication-r14 ENUMERATED {true} OPTIONAL -- Cond HO-SFNsynced + ]], + [[ + mib-RepetitionStatus-r14 BOOLEAN OPTIONAL, -- Need OR + schedulingInfoSIB1-BR-r14 INTEGER (0..31) OPTIONAL -- Cond HO-SFNsynced + ]] +} + +MobilityControlInfo-v10l0 ::= SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 OPTIONAL -- Need ON +} + +MobilityControlInfoSCG-r12 ::= SEQUENCE { + t307-r12 ENUMERATED { + ms50, ms100, ms150, ms200, ms500, ms1000, + ms2000, spare1}, + ue-IdentitySCG-r12 C-RNTI OPTIONAL, -- Cond SCGEst, + rach-ConfigDedicated-r12 RACH-ConfigDedicated OPTIONAL, -- Need OP + cipheringAlgorithmSCG-r12 CipheringAlgorithm-r12 OPTIONAL, -- Need ON + ..., + [[ makeBeforeBreakSCG-r14 ENUMERATED {true} OPTIONAL, -- Need OR + rach-SkipSCG-r14 RACH-Skip-r14 OPTIONAL -- Need OR + ]] +} + +MobilityControlInfoV2X-r14 ::= SEQUENCE { + v2x-CommTxPoolExceptional-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-CommRxPool-r14 SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommSyncConfig-r14 SL-SyncConfigListV2X-r14 OPTIONAL, -- Need OR + cbr-MobilityTxConfigList-r14 SL-CBR-CommonTxConfigList-r14 OPTIONAL -- Need OR +} + +CarrierBandwidthEUTRA ::= SEQUENCE { + dl-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100, spare10, + spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1}, + ul-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100, spare10, + spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1} OPTIONAL -- Need OP +} + +CarrierFreqEUTRA ::= SEQUENCE { + dl-CarrierFreq ARFCN-ValueEUTRA, + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL -- Cond FDD +} + +CarrierFreqEUTRA-v9e0 ::= SEQUENCE { + dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9, + ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9 OPTIONAL -- Cond FDD +} + +RACH-Skip-r14 ::= SEQUENCE { + targetTA-r14 CHOICE { + ta0-r14 NULL, + mcg-PTAG-r14 NULL, + scg-PTAG-r14 NULL, + mcg-STAG-r14 STAG-Id-r11, + scg-STAG-r14 STAG-Id-r11 + }, + ul-ConfigInfo-r14 SEQUENCE { + numberOfConfUL-Processes-r14 INTEGER (1..8), + ul-SchedInterval-r14 ENUMERATED {sf2, sf5, sf10}, + ul-StartSubframe-r14 INTEGER (0..9), + ul-Grant-r14 BIT STRING (SIZE (16)) + } OPTIONAL -- Need OR +} + + +MobilityParametersCDMA2000 ::= OCTET STRING + + +MobilityStateParameters ::= SEQUENCE { + t-Evaluation ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + t-HystNormal ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + n-CellChangeMedium INTEGER (1..16), + n-CellChangeHigh INTEGER (1..16) +} + + +MultiBandInfoList ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator + +MultiBandInfoList-v9e0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF MultiBandInfo-v9e0 + +MultiBandInfoList-v10j0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF NS-PmaxList-r10 + +MultiBandInfoList-v10l0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF NS-PmaxList-v10l0 + +MultiBandInfoList-r11 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-r11 + +MultiBandInfo-v9e0 ::= SEQUENCE { + freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL -- Need OP +} + + +NS-PmaxList-r10 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-r10 + +NS-PmaxList-v10l0 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-v10l0 + +NS-PmaxValue-r10 ::= SEQUENCE { + additionalPmax-r10 P-Max OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission +} + +NS-PmaxValue-v10l0 ::= SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 OPTIONAL -- Need OP +} + + +PhysCellId ::= INTEGER (0..503) + + +PhysCellIdRange ::= SEQUENCE { + start PhysCellId, + range ENUMERATED { + n4, n8, n12, n16, n24, n32, n48, n64, n84, + n96, n128, n168, n252, n504, spare2, + spare1} OPTIONAL -- Need OP +} + + +PhysCellIdRangeUTRA-FDDList-r9::= SEQUENCE (SIZE (1..maxPhysCellIdRange-r9)) OF PhysCellIdRangeUTRA-FDD-r9 + +PhysCellIdRangeUTRA-FDD-r9 ::= SEQUENCE { + start-r9 PhysCellIdUTRA-FDD, + range-r9 INTEGER (2..512) OPTIONAL -- Need OP +} + + +PhysCellIdCDMA2000 ::= INTEGER (0..maxPNOffset) + + +PhysCellIdGERAN ::= SEQUENCE { + networkColourCode BIT STRING (SIZE (3)), + baseStationColourCode BIT STRING (SIZE (3)) +} + + +PhysCellIdUTRA-FDD ::= INTEGER (0..511) + + +PhysCellIdUTRA-TDD ::= INTEGER (0..127) + + +PLMN-Identity ::= SEQUENCE { + mcc MCC OPTIONAL, -- Cond MCC + mnc MNC +} + +MCC ::= SEQUENCE (SIZE (3)) OF + MCC-MNC-Digit + +MNC ::= SEQUENCE (SIZE (2..3)) OF + MCC-MNC-Digit + +MCC-MNC-Digit ::= INTEGER (0..9) + + + +PLMN-IdentityList3-r11 ::= SEQUENCE (SIZE (1..16)) OF PLMN-Identity + + +PreRegistrationInfoHRPD ::= SEQUENCE { + preRegistrationAllowed BOOLEAN, + preRegistrationZoneId PreRegistrationZoneIdHRPD OPTIONAL, -- cond PreRegAllowed + secondaryPreRegistrationZoneIdList SecondaryPreRegistrationZoneIdListHRPD OPTIONAL -- Need OR +} + +SecondaryPreRegistrationZoneIdListHRPD ::= SEQUENCE (SIZE (1..2)) OF PreRegistrationZoneIdHRPD + +PreRegistrationZoneIdHRPD ::= INTEGER (0..255) + + +Q-QualMin-r9 ::= INTEGER (-34..-3) + + +Q-RxLevMin ::= INTEGER (-70..-22) + + +Q-OffsetRange ::= ENUMERATED { + dB-24, dB-22, dB-20, dB-18, dB-16, dB-14, + dB-12, dB-10, dB-8, dB-6, dB-5, dB-4, dB-3, + dB-2, dB-1, dB0, dB1, dB2, dB3, dB4, dB5, + dB6, dB8, dB10, dB12, dB14, dB16, dB18, + dB20, dB22, dB24} + + +Q-OffsetRangeInterRAT ::= INTEGER (-15..15) + + +ReselectionThreshold ::= INTEGER (0..31) + + +ReselectionThresholdQ-r9 ::= INTEGER (0..31) + + +SCellIndex-r10 ::= INTEGER (1..7) +SCellIndex-r13 ::= INTEGER (1..31) + + +ServCellIndex-r10 ::= INTEGER (0..7) +ServCellIndex-r13 ::= INTEGER (0..31) + + +SpeedStateScaleFactors ::= SEQUENCE { + sf-Medium ENUMERATED {oDot25, oDot5, oDot75, lDot0}, + sf-High ENUMERATED {oDot25, oDot5, oDot75, lDot0} +} + +SystemInfoListGERAN ::= SEQUENCE (SIZE (1..maxGERAN-SI)) OF + OCTET STRING (SIZE (1..23)) + + +SystemTimeInfoCDMA2000 ::= SEQUENCE { + cdma-EUTRA-Synchronisation BOOLEAN, + cdma-SystemTime CHOICE { + synchronousSystemTime BIT STRING (SIZE (39)), + asynchronousSystemTime BIT STRING (SIZE (49)) + } +} + + +TrackingAreaCode ::= BIT STRING (SIZE (16)) + + +T-Reselection ::= INTEGER (0..7) + + +T-ReselectionEUTRA-CE-r13 ::= INTEGER (0..15) + + +AllowedMeasBandwidth ::= ENUMERATED {mbw6, mbw15, mbw25, mbw50, mbw75, mbw100} + + +CSI-RSRP-Range-r12 ::= INTEGER(0..97) + + +Hysteresis ::= INTEGER (0..30) + + +LocationInfo-r10 ::= SEQUENCE { + locationCoordinates-r10 CHOICE { + ellipsoid-Point-r10 OCTET STRING, + ellipsoidPointWithAltitude-r10 OCTET STRING, + ..., + ellipsoidPointWithUncertaintyCircle-r11 OCTET STRING, + ellipsoidPointWithUncertaintyEllipse-r11 OCTET STRING, + ellipsoidPointWithAltitudeAndUncertaintyEllipsoid-r11 OCTET STRING, + ellipsoidArc-r11 OCTET STRING, + polygon-r11 OCTET STRING + }, + horizontalVelocity-r10 OCTET STRING OPTIONAL, + gnss-TOD-msec-r10 OCTET STRING OPTIONAL, + ... +} + + +MBSFN-RSRQ-Range-r12 ::= INTEGER(0..31) + +MeasConfig ::= SEQUENCE { + -- Measurement objects + measObjectToRemoveList MeasObjectToRemoveList OPTIONAL, -- Need ON + measObjectToAddModList MeasObjectToAddModList OPTIONAL, -- Need ON + -- Reporting configurations + reportConfigToRemoveList ReportConfigToRemoveList OPTIONAL, -- Need ON + reportConfigToAddModList ReportConfigToAddModList OPTIONAL, -- Need ON + -- Measurement identities + measIdToRemoveList MeasIdToRemoveList OPTIONAL, -- Need ON + measIdToAddModList MeasIdToAddModList OPTIONAL, -- Need ON + -- Other parameters + quantityConfig QuantityConfig OPTIONAL, -- Need ON + measGapConfig MeasGapConfig OPTIONAL, -- Need ON + s-Measure RSRP-Range OPTIONAL, -- Need ON + preRegistrationInfoHRPD PreRegistrationInfoHRPD OPTIONAL, -- Need OP + speedStatePars CHOICE { + release NULL, + setup SEQUENCE { + mobilityStateParameters MobilityStateParameters, + timeToTrigger-SF SpeedStateScaleFactors + } + } OPTIONAL, -- Need ON + ..., + [[ measObjectToAddModList-v9e0 MeasObjectToAddModList-v9e0 OPTIONAL -- Need ON + ]], + [[ allowInterruptions-r11 BOOLEAN OPTIONAL -- Need ON + ]], + [[ measScaleFactor-r12 CHOICE { + release NULL, + setup MeasScaleFactor-r12 + } OPTIONAL, -- Need ON + measIdToRemoveListExt-r12 MeasIdToRemoveListExt-r12 OPTIONAL, -- Need ON + measIdToAddModListExt-r12 MeasIdToAddModListExt-r12 OPTIONAL, -- Need ON + measRSRQ-OnAllSymbols-r12 BOOLEAN OPTIONAL -- Need ON + ]], + [[ + measObjectToRemoveListExt-r13 MeasObjectToRemoveListExt-r13 OPTIONAL, -- Need ON + measObjectToAddModListExt-r13 MeasObjectToAddModListExt-r13 OPTIONAL, -- Need ON + measIdToAddModList-v1310 MeasIdToAddModList-v1310 OPTIONAL, -- Need ON + measIdToAddModListExt-v1310 MeasIdToAddModListExt-v1310 OPTIONAL -- Need ON + ]], + [[ measGapConfigPerCC-List-r14 MeasGapConfigPerCC-List-r14 OPTIONAL, -- Need ON + measGapSharingConfig-r14 MeasGapSharingConfig-r14 OPTIONAL -- Need ON + ]] +} + +MeasIdToRemoveList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId + +MeasIdToRemoveListExt-r12 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId-v1250 + +MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId + +MeasObjectToRemoveListExt-r13 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId-v1310 + +ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigId + + +MeasDS-Config-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + dmtc-PeriodOffset-r12 CHOICE { + ms40-r12 INTEGER(0..39), + ms80-r12 INTEGER(0..79), + ms160-r12 INTEGER(0..159), + ... + }, + ds-OccasionDuration-r12 CHOICE { + durationFDD-r12 INTEGER(1..maxDS-Duration-r12), + durationTDD-r12 INTEGER(2..maxDS-Duration-r12) + }, + measCSI-RS-ToRemoveList-r12 MeasCSI-RS-ToRemoveList-r12 OPTIONAL, -- Need ON + measCSI-RS-ToAddModList-r12 MeasCSI-RS-ToAddModList-r12 OPTIONAL, -- Need ON + ... + } +} + +MeasCSI-RS-ToRemoveList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Id-r12 + +MeasCSI-RS-ToAddModList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Config-r12 + +MeasCSI-RS-Id-r12 ::= INTEGER (1..maxCSI-RS-Meas-r12) + +MeasCSI-RS-Config-r12 ::= SEQUENCE { + measCSI-RS-Id-r12 MeasCSI-RS-Id-r12, + physCellId-r12 INTEGER (0..503), + scramblingIdentity-r12 INTEGER (0..503), + resourceConfig-r12 INTEGER (0..31), + subframeOffset-r12 INTEGER (0..4), + csi-RS-IndividualOffset-r12 Q-OffsetRange, + ... +} + + +MeasGapConfig ::= CHOICE { + release NULL, + setup SEQUENCE { + gapOffset CHOICE { + gp0 INTEGER (0..39), + gp1 INTEGER (0..79), + + ..., + gp2-r14 INTEGER (0..39), + gp3-r14 INTEGER (0..79), + gp-ncsg0-r14 INTEGER (0..39), + gp-ncsg1-r14 INTEGER (0..79), + gp-ncsg2-r14 INTEGER (0..39), + gp-ncsg3-r14 INTEGER (0..79), + gp-nonUniform1-r14 INTEGER (0..1279), + gp-nonUniform2-r14 INTEGER (0..2559), + gp-nonUniform3-r14 INTEGER (0..5119), + gp-nonUniform4-r14 INTEGER (0..10239) + } + } +} + + + +MeasGapConfigPerCC-List-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + measGapConfigToRemoveList-r14 MeasGapConfigToRemoveList-r14 OPTIONAL, -- Need ON + measGapConfigToAddModList-r14 MeasGapConfigToAddModList-r14 OPTIONAL -- Need ON + } +} + +MeasGapConfigToRemoveList-r14 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF ServCellIndex-r13 + +MeasGapConfigToAddModList-r14 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasGapConfigPerCC-r14 + +MeasGapConfigPerCC-r14 ::= SEQUENCE { + servCellId-r14 ServCellIndex-r13, + measGapConfigCC-r14 MeasGapConfig +} + + +MeasGapSharingConfig-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + measGapSharingScheme-r14 ENUMERATED {scheme00, scheme01, scheme10, scheme11} + } +} + + +MeasId ::= INTEGER (1..maxMeasId) + +MeasId-v1250 ::= INTEGER (maxMeasId-Plus1..maxMeasId-r12) + + +MeasIdToAddModList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod + +MeasIdToAddModList-v1310 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod-v1310 + +MeasIdToAddModListExt-r12 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddModExt-r12 + +MeasIdToAddModListExt-v1310 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod-v1310 + +MeasIdToAddMod ::= SEQUENCE { + measId MeasId, + measObjectId MeasObjectId, + reportConfigId ReportConfigId +} + +MeasIdToAddModExt-r12 ::= SEQUENCE { + measId-v1250 MeasId-v1250, + measObjectId-r12 MeasObjectId, + reportConfigId-r12 ReportConfigId +} + +MeasIdToAddMod-v1310 ::= SEQUENCE { + measObjectId-v1310 MeasObjectId-v1310 OPTIONAL +} + + +MeasObjectCDMA2000 ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + carrierFreq CarrierFreqCDMA2000, + searchWindowSize INTEGER (0..15) OPTIONAL, -- Need ON + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CellsToAddModListCDMA2000 OPTIONAL, -- Need ON + cellForWhichToReportCGI PhysCellIdCDMA2000 OPTIONAL, -- Need ON + ... +} + +CellsToAddModListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModCDMA2000 + +CellsToAddModCDMA2000 ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdCDMA2000 +} + + +MeasObjectEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + allowedMeasBandwidth AllowedMeasBandwidth, + presenceAntennaPort1 PresenceAntennaPort1, + neighCellConfig NeighCellConfig, + offsetFreq Q-OffsetRange DEFAULT dB0, + -- Cell list + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CellsToAddModList OPTIONAL, -- Need ON + -- Black list + blackCellsToRemoveList CellIndexList OPTIONAL, -- Need ON + blackCellsToAddModList BlackCellsToAddModList OPTIONAL, -- Need ON + cellForWhichToReportCGI PhysCellId OPTIONAL, -- Need ON + ..., + [[measCycleSCell-r10 MeasCycleSCell-r10 OPTIONAL, -- Need ON + measSubframePatternConfigNeigh-r10 MeasSubframePatternConfigNeigh-r10 OPTIONAL -- Need ON + ]], + [[widebandRSRQ-Meas-r11 BOOLEAN OPTIONAL -- Cond WB-RSRQ + ]], + [[ altTTT-CellsToRemoveList-r12 CellIndexList OPTIONAL, -- Need ON + altTTT-CellsToAddModList-r12 AltTTT-CellsToAddModList-r12 OPTIONAL, -- Need ON + t312-r12 CHOICE { + release NULL, + setup ENUMERATED {ms0, ms50, ms100, ms200, + ms300, ms400, ms500, ms1000} + } OPTIONAL, -- Need ON + reducedMeasPerformance-r12 BOOLEAN OPTIONAL, -- Need ON + measDS-Config-r12 MeasDS-Config-r12 OPTIONAL -- Need ON + ]], + [[ + whiteCellsToRemoveList-r13 CellIndexList OPTIONAL, -- Need ON + whiteCellsToAddModList-r13 WhiteCellsToAddModList-r13 OPTIONAL, -- Need ON + rmtc-Config-r13 RMTC-Config-r13 OPTIONAL, -- Need ON + carrierFreq-r13 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Need ON + ]], + [[ + tx-ResourcePoolToRemoveList-r14 Tx-ResourcePoolMeasList-r14 OPTIONAL, -- Need ON + tx-ResourcePoolToAddList-r14 Tx-ResourcePoolMeasList-r14 OPTIONAL, -- Need ON + fembms-MixedCarrier-r14 BOOLEAN OPTIONAL -- Need ON + ]] +} + +MeasObjectEUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +CellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddMod + +CellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellId, + cellIndividualOffset Q-OffsetRange +} + +BlackCellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF BlackCellsToAddMod + +BlackCellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellIdRange PhysCellIdRange +} + +MeasCycleSCell-r10 ::= ENUMERATED {sf160, sf256, sf320, sf512, + sf640, sf1024, sf1280, spare1} + +MeasSubframePatternConfigNeigh-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + measSubframePatternNeigh-r10 MeasSubframePattern-r10, + measSubframeCellList-r10 MeasSubframeCellList-r10 OPTIONAL -- Cond always + } +} + +MeasSubframeCellList-r10 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF PhysCellIdRange + +AltTTT-CellsToAddModList-r12 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF AltTTT-CellsToAddMod-r12 + +AltTTT-CellsToAddMod-r12 ::= SEQUENCE { + cellIndex-r12 INTEGER (1..maxCellMeas), + physCellIdRange-r12 PhysCellIdRange +} + +WhiteCellsToAddModList-r13 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF WhiteCellsToAddMod-r13 + +WhiteCellsToAddMod-r13 ::= SEQUENCE { + cellIndex-r13 INTEGER (1..maxCellMeas), + physCellIdRange-r13 PhysCellIdRange +} + +RMTC-Config-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + rmtc-Period-r13 ENUMERATED {ms40, ms80, ms160, ms320, ms640}, + rmtc-SubframeOffset-r13 INTEGER(0..639) OPTIONAL, -- Need ON + measDuration-r13 ENUMERATED {sym1, sym14, sym28, sym42, sym70}, + ... + } +} + +Tx-ResourcePoolMeasList-r14 ::= SEQUENCE (SIZE (1..maxSL-PoolToMeasure-r14)) OF SL-V2X-TxPoolReportIdentity-r14 + + +MeasObjectGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + ncc-Permitted BIT STRING(SIZE (8)) DEFAULT '11111111'B, + cellForWhichToReportCGI PhysCellIdGERAN OPTIONAL, -- Need ON + ... +} + + +MeasObjectId ::= INTEGER (1..maxObjectId) + +MeasObjectId-v1310 ::= INTEGER (maxObjectId-Plus1-r13..maxObjectId-r13) + +MeasObjectId-r13 ::= INTEGER (1..maxObjectId-r13) + + +MeasObjectToAddModList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod + +MeasObjectToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddModExt-r13 + +MeasObjectToAddModList-v9e0 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod-v9e0 + +MeasObjectToAddMod ::= SEQUENCE { + measObjectId MeasObjectId, + measObject CHOICE { + measObjectEUTRA MeasObjectEUTRA, + measObjectUTRA MeasObjectUTRA, + measObjectGERAN MeasObjectGERAN, + measObjectCDMA2000 MeasObjectCDMA2000, + ..., + measObjectWLAN-r13 MeasObjectWLAN-r13 + } +} + +MeasObjectToAddModExt-r13 ::= SEQUENCE { + measObjectId-r13 MeasObjectId-v1310, + measObject-r13 CHOICE { + measObjectEUTRA-r13 MeasObjectEUTRA, + measObjectUTRA-r13 MeasObjectUTRA, + measObjectGERAN-r13 MeasObjectGERAN, + measObjectCDMA2000-r13 MeasObjectCDMA2000, + ..., + measObjectWLAN-v1320 MeasObjectWLAN-r13 + } +} + +MeasObjectToAddMod-v9e0 ::= SEQUENCE { + measObjectEUTRA-v9e0 MeasObjectEUTRA-v9e0 OPTIONAL -- Cond eutra +} + + +MeasObjectUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CHOICE { + cellsToAddModListUTRA-FDD CellsToAddModListUTRA-FDD, + cellsToAddModListUTRA-TDD CellsToAddModListUTRA-TDD + } OPTIONAL, -- Need ON + cellForWhichToReportCGI CHOICE { + utra-FDD PhysCellIdUTRA-FDD, + utra-TDD PhysCellIdUTRA-TDD + } OPTIONAL, -- Need ON + ..., + [[ csg-allowedReportingCells-v930 CSG-AllowedReportingCells-r9 OPTIONAL -- Need ON + ]], + [[ reducedMeasPerformance-r12 BOOLEAN OPTIONAL -- Need ON + ]] +} + +CellsToAddModListUTRA-FDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-FDD + +CellsToAddModUTRA-FDD ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdUTRA-FDD +} + +CellsToAddModListUTRA-TDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-TDD + +CellsToAddModUTRA-TDD ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdUTRA-TDD +} + +CSG-AllowedReportingCells-r9 ::= SEQUENCE { + physCellIdRangeUTRA-FDDList-r9 PhysCellIdRangeUTRA-FDDList-r9 OPTIONAL -- Need OR +} + +MeasObjectWLAN-r13 ::= SEQUENCE { + carrierFreq-r13 CHOICE { + bandIndicatorListWLAN-r13 SEQUENCE (SIZE (1..maxWLAN-Bands-r13)) OF WLAN-BandIndicator-r13, + carrierInfoListWLAN-r13 SEQUENCE (SIZE (1..maxWLAN-CarrierInfo-r13)) OF WLAN-CarrierInfo-r13 + } OPTIONAL, -- Need ON + wlan-ToAddModList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + wlan-ToRemoveList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + ... +} + +WLAN-BandIndicator-r13 ::= ENUMERATED {band2dot4, band5, band60-v1430, spare5, spare4, spare3, spare2, spare1, ...} + + +MeasResults ::= SEQUENCE { + measId MeasId, + measResultPCell SEQUENCE { + rsrpResult RSRP-Range, + rsrqResult RSRQ-Range + }, + measResultNeighCells CHOICE { + measResultListEUTRA MeasResultListEUTRA, + measResultListUTRA MeasResultListUTRA, + measResultListGERAN MeasResultListGERAN, + measResultsCDMA2000 MeasResultsCDMA2000, + ... + } OPTIONAL, + ..., + [[ measResultForECID-r9 MeasResultForECID-r9 OPTIONAL + ]], + [[ locationInfo-r10 LocationInfo-r10 OPTIONAL, + measResultServFreqList-r10 MeasResultServFreqList-r10 OPTIONAL + ]], + [[ measId-v1250 MeasId-v1250 OPTIONAL, + measResultPCell-v1250 RSRQ-Range-v1250 OPTIONAL, + measResultCSI-RS-List-r12 MeasResultCSI-RS-List-r12 OPTIONAL + ]], + [[ measResultForRSSI-r13 MeasResultForRSSI-r13 OPTIONAL, + measResultServFreqListExt-r13 MeasResultServFreqListExt-r13 OPTIONAL, + measResultSSTD-r13 MeasResultSSTD-r13 OPTIONAL, + measResultPCell-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL, + ul-PDCP-DelayResultList-r13 UL-PDCP-DelayResultList-r13 OPTIONAL, + measResultListWLAN-r13 MeasResultListWLAN-r13 OPTIONAL + ]], + [[ measResultPCell-v1360 RSRP-Range-v1360 OPTIONAL + ]], + [[ measResultListCBR-r14 MeasResultListCBR-r14 OPTIONAL, + measResultListWLAN-r14 MeasResultListWLAN-r14 OPTIONAL + ]] +} + +MeasResultListEUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultEUTRA + +MeasResultEUTRA ::= SEQUENCE { + physCellId PhysCellId, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdEUTRA, + trackingAreaCode TrackingAreaCode, + plmn-IdentityList PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + rsrpResult RSRP-Range OPTIONAL, + rsrqResult RSRQ-Range OPTIONAL, + ..., + [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL + ]], + [[ primaryPLMN-Suitable-r12 ENUMERATED {true} OPTIONAL, + measResult-v1250 RSRQ-Range-v1250 OPTIONAL + ]], + [[ rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL, + cgi-Info-v1310 SEQUENCE { + freqBandIndicator-r13 FreqBandIndicator-r11 OPTIONAL, + multiBandInfoList-r13 MultiBandInfoList-r11 OPTIONAL, + freqBandIndicatorPriority-r13 ENUMERATED {true} OPTIONAL + } OPTIONAL + ]], + [[ + measResult-v1360 RSRP-Range-v1360 OPTIONAL + ]] + } +} + +MeasResultServFreqList-r10 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF MeasResultServFreq-r10 + +MeasResultServFreqListExt-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultServFreq-r13 + +MeasResultServFreq-r10 ::= SEQUENCE { + servFreqId-r10 ServCellIndex-r10, + measResultSCell-r10 SEQUENCE { + rsrpResultSCell-r10 RSRP-Range, + rsrqResultSCell-r10 RSRQ-Range + } OPTIONAL, + measResultBestNeighCell-r10 SEQUENCE { + physCellId-r10 PhysCellId, + rsrpResultNCell-r10 RSRP-Range, + rsrqResultNCell-r10 RSRQ-Range + } OPTIONAL, + ..., + [[ measResultSCell-v1250 RSRQ-Range-v1250 OPTIONAL, + measResultBestNeighCell-v1250 RSRQ-Range-v1250 OPTIONAL + ]], + [[ measResultSCell-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL, + measResultBestNeighCell-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL + ]] +} + +MeasResultServFreq-r13 ::= SEQUENCE { + servFreqId-r13 ServCellIndex-r13, + measResultSCell-r13 SEQUENCE { + rsrpResultSCell-r13 RSRP-Range, + rsrqResultSCell-r13 RSRQ-Range-r13, + rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL + } OPTIONAL, + measResultBestNeighCell-r13 SEQUENCE { + physCellId-r13 PhysCellId, + rsrpResultNCell-r13 RSRP-Range, + rsrqResultNCell-r13 RSRQ-Range-r13, + rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL + } OPTIONAL, + ..., + [[ measResultBestNeighCell-v1360 SEQUENCE { + rsrpResultNCell-v1360 RSRP-Range-v1360 + } OPTIONAL + ]] +} + +MeasResultCSI-RS-List-r12 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCSI-RS-r12 + +MeasResultCSI-RS-r12 ::= SEQUENCE { + measCSI-RS-Id-r12 MeasCSI-RS-Id-r12, + csi-RSRP-Result-r12 CSI-RSRP-Range-r12, + ... +} + +MeasResultListUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultUTRA + +MeasResultUTRA ::= SEQUENCE { + physCellId CHOICE { + fdd PhysCellIdUTRA-FDD, + tdd PhysCellIdUTRA-TDD + }, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdUTRA, + locationAreaCode BIT STRING (SIZE (16)) OPTIONAL, + routingAreaCode BIT STRING (SIZE (8)) OPTIONAL, + plmn-IdentityList PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + utra-RSCP INTEGER (-5..91) OPTIONAL, + utra-EcN0 INTEGER (0..49) OPTIONAL, + ..., + [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL + ]], + [[ primaryPLMN-Suitable-r12 ENUMERATED {true} OPTIONAL + ]] + } +} + +MeasResultListGERAN ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultGERAN + +MeasResultGERAN ::= SEQUENCE { + carrierFreq CarrierFreqGERAN, + physCellId PhysCellIdGERAN, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdGERAN, + routingAreaCode BIT STRING (SIZE (8)) OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + rssi INTEGER (0..63), + ... + } +} + +MeasResultsCDMA2000 ::= SEQUENCE { + preRegistrationStatusHRPD BOOLEAN, + measResultListCDMA2000 MeasResultListCDMA2000 +} + +MeasResultListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCDMA2000 + +MeasResultCDMA2000 ::= SEQUENCE { + physCellId PhysCellIdCDMA2000, + cgi-Info CellGlobalIdCDMA2000 OPTIONAL, + measResult SEQUENCE { + pilotPnPhase INTEGER (0..32767) OPTIONAL, + pilotStrength INTEGER (0..63), + ... + } +} + +MeasResultListWLAN-r13 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultWLAN-r13 + +MeasResultListWLAN-r14 ::= SEQUENCE (SIZE (1..maxWLAN-Id-Report-r14)) OF MeasResultWLAN-r13 + +MeasResultWLAN-r13 ::= SEQUENCE { + wlan-Identifiers-r13 WLAN-Identifiers-r12, + carrierInfoWLAN-r13 WLAN-CarrierInfo-r13 OPTIONAL, + bandWLAN-r13 WLAN-BandIndicator-r13 OPTIONAL, + rssiWLAN-r13 WLAN-RSSI-Range-r13, + availableAdmissionCapacityWLAN-r13 INTEGER (0..31250) OPTIONAL, + backhaulDL-BandwidthWLAN-r13 WLAN-backhaulRate-r12 OPTIONAL, + backhaulUL-BandwidthWLAN-r13 WLAN-backhaulRate-r12 OPTIONAL, + channelUtilizationWLAN-r13 INTEGER (0..255) OPTIONAL, + stationCountWLAN-r13 INTEGER (0..65535) OPTIONAL, + connectedWLAN-r13 ENUMERATED {true} OPTIONAL, + ... +} + +MeasResultListCBR-r14 ::= SEQUENCE (SIZE (1..maxCBR-Report-r14)) OF MeasResultCBR-r14 + +MeasResultCBR-r14 ::= SEQUENCE { + poolIdentity-r14 SL-V2X-TxPoolReportIdentity-r14, + cbr-PSSCH-r14 SL-CBR-r14, + cbr-PSCCH-r14 SL-CBR-r14 OPTIONAL +} + +MeasResultForECID-r9 ::= SEQUENCE { + ue-RxTxTimeDiffResult-r9 INTEGER (0..4095), + currentSFN-r9 BIT STRING (SIZE (10)) +} + +PLMN-IdentityList2 ::= SEQUENCE (SIZE (1..5)) OF PLMN-Identity + +AdditionalSI-Info-r9 ::= SEQUENCE { + csg-MemberStatus-r9 ENUMERATED {member} OPTIONAL, + csg-Identity-r9 CSG-Identity OPTIONAL +} +MeasResultForRSSI-r13 ::= SEQUENCE { + rssi-Result-r13 RSSI-Range-r13, + channelOccupancy-r13 INTEGER (0..100), + ... +} + +UL-PDCP-DelayResultList-r13 ::= SEQUENCE (SIZE (1..maxQCI-r13)) OF UL-PDCP-DelayResult-r13 + + +UL-PDCP-DelayResult-r13 ::= SEQUENCE { + qci-Id-r13 ENUMERATED {qci1, qci2, qci3, qci4, spare4, spare3, spare2, spare1}, + excessDelay-r13 INTEGER (0..31), + ... +} + + +MeasResultSSTD-r13 ::= SEQUENCE { + sfn-OffsetResult-r13 INTEGER (0..1023), + frameBoundaryOffsetResult-r13 INTEGER (-5..4), + subframeBoundaryOffsetResult-r13 INTEGER (0..127) +} + + +MeasScaleFactor-r12 ::= ENUMERATED {sf-EUTRA-cf1, sf-EUTRA-cf2} + + +QuantityConfig ::= SEQUENCE { + quantityConfigEUTRA QuantityConfigEUTRA OPTIONAL, -- Need ON + quantityConfigUTRA QuantityConfigUTRA OPTIONAL, -- Need ON + quantityConfigGERAN QuantityConfigGERAN OPTIONAL, -- Need ON + quantityConfigCDMA2000 QuantityConfigCDMA2000 OPTIONAL, -- Need ON + ..., + [[ quantityConfigUTRA-v1020 QuantityConfigUTRA-v1020 OPTIONAL -- Need ON + ]], + [[ quantityConfigEUTRA-v1250 QuantityConfigEUTRA-v1250 OPTIONAL -- Need ON + ]], + [[ quantityConfigEUTRA-v1310 QuantityConfigEUTRA-v1310 OPTIONAL, -- Need ON + quantityConfigWLAN-r13 QuantityConfigWLAN-r13 OPTIONAL -- Need ON + ]] +} + +QuantityConfigEUTRA ::= SEQUENCE { + filterCoefficientRSRP FilterCoefficient DEFAULT fc4, + filterCoefficientRSRQ FilterCoefficient DEFAULT fc4 +} + +QuantityConfigEUTRA-v1250 ::= SEQUENCE { + filterCoefficientCSI-RSRP-r12 FilterCoefficient OPTIONAL -- Need OR +} + +QuantityConfigEUTRA-v1310 ::= SEQUENCE { + filterCoefficientRS-SINR-r13 FilterCoefficient DEFAULT fc4 +} + +QuantityConfigUTRA ::= SEQUENCE { + measQuantityUTRA-FDD ENUMERATED {cpich-RSCP, cpich-EcN0}, + measQuantityUTRA-TDD ENUMERATED {pccpch-RSCP}, + filterCoefficient FilterCoefficient DEFAULT fc4 +} + +QuantityConfigUTRA-v1020 ::= SEQUENCE { + filterCoefficient2-FDD-r10 FilterCoefficient DEFAULT fc4 +} + +QuantityConfigGERAN ::= SEQUENCE { + measQuantityGERAN ENUMERATED {rssi}, + filterCoefficient FilterCoefficient DEFAULT fc2 +} + +QuantityConfigCDMA2000 ::= SEQUENCE { + measQuantityCDMA2000 ENUMERATED {pilotStrength, pilotPnPhaseAndPilotStrength} +} + +QuantityConfigWLAN-r13 ::= SEQUENCE { + measQuantityWLAN-r13 ENUMERATED {rssiWLAN}, + filterCoefficient-r13 FilterCoefficient DEFAULT fc4 +} + + +ReportConfigEUTRA ::= SEQUENCE { + triggerType CHOICE { + event SEQUENCE { + eventId CHOICE { + eventA1 SEQUENCE { + a1-Threshold ThresholdEUTRA + }, + eventA2 SEQUENCE { + a2-Threshold ThresholdEUTRA + }, + eventA3 SEQUENCE { + a3-Offset INTEGER (-30..30), + reportOnLeave BOOLEAN + }, + eventA4 SEQUENCE { + a4-Threshold ThresholdEUTRA + }, + eventA5 SEQUENCE { + a5-Threshold1 ThresholdEUTRA, + a5-Threshold2 ThresholdEUTRA + }, + ..., + eventA6-r10 SEQUENCE { + a6-Offset-r10 INTEGER (-30..30), + a6-ReportOnLeave-r10 BOOLEAN + }, + eventC1-r12 SEQUENCE { + c1-Threshold-r12 ThresholdEUTRA-v1250, + c1-ReportOnLeave-r12 BOOLEAN + }, + eventC2-r12 SEQUENCE { + c2-RefCSI-RS-r12 MeasCSI-RS-Id-r12, + c2-Offset-r12 INTEGER (-30..30), + c2-ReportOnLeave-r12 BOOLEAN + }, + eventV1-r14 SEQUENCE { + v1-Threshold-r14 SL-CBR-r14 + }, + eventV2-r14 SEQUENCE { + v2-Threshold-r14 SL-CBR-r14 + } + }, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + periodical SEQUENCE { + purpose ENUMERATED { + reportStrongestCells, reportCGI} + } + }, + triggerQuantity ENUMERATED {rsrp, rsrq}, + reportQuantity ENUMERATED {sameAsTriggerQuantity, both}, + maxReportCells INTEGER (1..maxCellReport), + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + ..., + [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL, -- Cond reportCGI + ue-RxTxTimeDiffPeriodical-r9 ENUMERATED {setup} OPTIONAL -- Need OR + ]], + [[ includeLocationInfo-r10 ENUMERATED {true} OPTIONAL, -- Need OR + reportAddNeighMeas-r10 ENUMERATED {setup} OPTIONAL -- Need OR + ]], + [[ alternativeTimeToTrigger-r12 CHOICE { + release NULL, + setup TimeToTrigger + } OPTIONAL, -- Need ON + useT312-r12 BOOLEAN OPTIONAL, -- Need ON + usePSCell-r12 BOOLEAN OPTIONAL, -- Need ON + aN-Threshold1-v1250 RSRQ-RangeConfig-r12 OPTIONAL, -- Need ON + a5-Threshold2-v1250 RSRQ-RangeConfig-r12 OPTIONAL, -- Need ON + reportStrongestCSI-RSs-r12 BOOLEAN OPTIONAL, -- Need ON + reportCRS-Meas-r12 BOOLEAN OPTIONAL, -- Need ON + triggerQuantityCSI-RS-r12 BOOLEAN OPTIONAL -- Need ON + ]], + [[ reportSSTD-Meas-r13 BOOLEAN OPTIONAL, -- Need ON + rs-sinr-Config-r13 CHOICE { + release NULL, + setup SEQUENCE { + triggerQuantity-v1310 ENUMERATED {sinr} OPTIONAL, -- Need ON + aN-Threshold1-r13 RS-SINR-Range-r13 OPTIONAL, -- Need ON + a5-Threshold2-r13 RS-SINR-Range-r13 OPTIONAL, -- Need ON + reportQuantity-v1310 ENUMERATED {rsrpANDsinr, rsrqANDsinr, all} + } + } OPTIONAL, -- Need ON + useWhiteCellList-r13 BOOLEAN OPTIONAL, -- Need ON + measRSSI-ReportConfig-r13 MeasRSSI-ReportConfig-r13 OPTIONAL, -- Need ON + includeMultiBandInfo-r13 ENUMERATED {true} OPTIONAL, -- Cond reportCGI + ul-DelayConfig-r13 UL-DelayConfig-r13 OPTIONAL -- Need ON + ]], + [[ ue-RxTxTimeDiffPeriodicalTDD-r13 BOOLEAN OPTIONAL -- Need ON + ]], + [[ + purpose-v1430 ENUMERATED {reportLocation, sidelink, spare2, spare1} + OPTIONAL -- Need ON + ]] +} + +RSRQ-RangeConfig-r12 ::= CHOICE { + release NULL, + setup RSRQ-Range-v1250 +} + +ThresholdEUTRA ::= CHOICE{ + threshold-RSRP RSRP-Range, + threshold-RSRQ RSRQ-Range +} + +ThresholdEUTRA-v1250 ::= CSI-RSRP-Range-r12 + +MeasRSSI-ReportConfig-r13 ::= SEQUENCE { + channelOccupancyThreshold-r13 RSSI-Range-r13 OPTIONAL -- Need OR +} + + +ReportConfigId ::= INTEGER (1..maxReportConfigId) + + +ReportConfigInterRAT ::= SEQUENCE { + triggerType CHOICE { + event SEQUENCE { + eventId CHOICE { + eventB1 SEQUENCE { + b1-Threshold CHOICE { + b1-ThresholdUTRA ThresholdUTRA, + b1-ThresholdGERAN ThresholdGERAN, + b1-ThresholdCDMA2000 ThresholdCDMA2000 + } + }, + eventB2 SEQUENCE { + b2-Threshold1 ThresholdEUTRA, + b2-Threshold2 CHOICE { + b2-Threshold2UTRA ThresholdUTRA, + b2-Threshold2GERAN ThresholdGERAN, + b2-Threshold2CDMA2000 ThresholdCDMA2000 + } + }, + ..., + eventW1-r13 SEQUENCE { + w1-Threshold-r13 WLAN-RSSI-Range-r13 + }, + eventW2-r13 SEQUENCE { + w2-Threshold1-r13 WLAN-RSSI-Range-r13, + w2-Threshold2-r13 WLAN-RSSI-Range-r13 + }, + eventW3-r13 SEQUENCE { + w3-Threshold-r13 WLAN-RSSI-Range-r13 + } + }, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + periodical SEQUENCE { + purpose ENUMERATED { + reportStrongestCells, + reportStrongestCellsForSON, + reportCGI} + } + }, + maxReportCells INTEGER (1..maxCellReport), + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + ..., + [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL -- Cond reportCGI + ]], + [[ reportQuantityUTRA-FDD-r10 ENUMERATED {both} OPTIONAL -- Need OR + ]], + [[ includeLocationInfo-r11 BOOLEAN OPTIONAL -- Need ON + ]], + [[ b2-Threshold1-v1250 CHOICE { + release NULL, + setup RSRQ-Range-v1250 + } OPTIONAL -- Need ON + ]], + [[ reportQuantityWLAN-r13 ReportQuantityWLAN-r13 OPTIONAL -- Need ON + ]], + [[ reportAnyWLAN-r14 BOOLEAN OPTIONAL -- Need ON + ]] +} + +ThresholdUTRA ::= CHOICE{ + utra-RSCP INTEGER (-5..91), + utra-EcN0 INTEGER (0..49) +} + +ThresholdGERAN ::= INTEGER (0..63) + +ThresholdCDMA2000 ::= INTEGER (0..63) + +ReportQuantityWLAN-r13 ::= SEQUENCE { + bandRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + carrierInfoRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + availableAdmissionCapacityRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + backhaulDL-BandwidthRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + backhaulUL-BandwidthRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + channelUtilizationRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + stationCountRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + ... +} + + +ReportConfigToAddModList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigToAddMod + +ReportConfigToAddMod ::= SEQUENCE { + reportConfigId ReportConfigId, + reportConfig CHOICE { + reportConfigEUTRA ReportConfigEUTRA, + reportConfigInterRAT ReportConfigInterRAT + } +} + + + +ReportInterval ::= ENUMERATED { + ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, + min1, min6, min12, min30, min60, spare3, spare2, spare1} + + +RSRP-Range ::= INTEGER(0..97) + +RSRP-Range-v1360 ::= INTEGER(-17..-1) + +RSRP-RangeSL-r12 ::= INTEGER(0..13) + +RSRP-RangeSL2-r12 ::= INTEGER(0..7) + +RSRP-RangeSL3-r12 ::= INTEGER(0..11) + +RSRP-RangeSL4-r13 ::= INTEGER(0..49) + + +RSRQ-Range ::= INTEGER(0..34) + +RSRQ-Range-v1250 ::= INTEGER(-30..46) + +RSRQ-Range-r13 ::= INTEGER(-30..46) + + +RSRQ-Type-r12 ::= SEQUENCE { + allSymbols-r12 BOOLEAN, + wideBand-r12 BOOLEAN +} + + +RS-SINR-Range-r13 ::= INTEGER(0..127) + + +RSSI-Range-r13 ::= INTEGER(0..76) + + +TimeToTrigger ::= ENUMERATED { + ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256, + ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560, + ms5120} + + +UL-DelayConfig-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + delayThreshold-r13 ENUMERATED { + ms30, ms40, ms50, ms60, ms70, ms80, + ms90,ms100, ms150, ms300, ms500, ms750, spare4, spare3, spare2, spare1} + } +} + + +WLAN-CarrierInfo-r13 ::= SEQUENCE { + operatingClass-r13 INTEGER (0..255) OPTIONAL, -- Need ON + countryCode-r13 ENUMERATED {unitedStates, europe, japan, global, ...} OPTIONAL, -- Need ON + channelNumbers-r13 WLAN-ChannelList-r13 OPTIONAL, -- Need ON + ... +} + +WLAN-ChannelList-r13 ::= SEQUENCE (SIZE (1..maxWLAN-Channels-r13)) OF WLAN-Channel-r13 + +WLAN-Channel-r13 ::= INTEGER(0..255) + + +WLAN-RSSI-Range-r13 ::= INTEGER(0..141) + + +WLAN-Status-r13 ::= ENUMERATED {successfulAssociation, failureWlanRadioLink, failureWlanUnavailable, failureTimeout} + +WLAN-Status-v1430 ::= ENUMERATED {suspended, resumed} + + +WLAN-SuspendConfig-r14 ::= SEQUENCE { + wlan-SuspendResumeAllowed-r14 BOOLEAN OPTIONAL, -- Need ON + wlan-SuspendTriggersStatusReport-r14 BOOLEAN OPTIONAL -- Need ON +} + + +AbsoluteTimeInfo-r10 ::= BIT STRING (SIZE (48)) + + +AreaConfiguration-r10 ::= CHOICE { + cellGlobalIdList-r10 CellGlobalIdList-r10, + trackingAreaCodeList-r10 TrackingAreaCodeList-r10 +} + +AreaConfiguration-v1130 ::= SEQUENCE { + trackingAreaCodeList-v1130 TrackingAreaCodeList-v1130 +} + +CellGlobalIdList-r10 ::= SEQUENCE (SIZE (1..32)) OF CellGlobalIdEUTRA + +TrackingAreaCodeList-r10 ::= SEQUENCE (SIZE (1..8)) OF TrackingAreaCode + +TrackingAreaCodeList-v1130 ::= SEQUENCE { + plmn-Identity-perTAC-List-r11 SEQUENCE (SIZE (1..8)) OF PLMN-Identity +} + + +BandCombinationList-r14 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombination-r14 + +BandCombination-r14 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandIndication-r14 + +BandIndication-r14 ::= SEQUENCE { + bandEUTRA-r14 FreqBandIndicator-r11, + ca-BandwidthClassDL-r14 CA-BandwidthClass-r10, + ca-BandwidthClassUL-r14 CA-BandwidthClass-r10 OPTIONAL +} + + +C-RNTI ::= BIT STRING (SIZE (16)) + + +DedicatedInfoCDMA2000 ::= OCTET STRING + + +DedicatedInfoNAS ::= OCTET STRING + + +FilterCoefficient ::= ENUMERATED { + fc0, fc1, fc2, fc3, fc4, fc5, + fc6, fc7, fc8, fc9, fc11, fc13, + fc15, fc17, fc19, spare1, ...} + + +LoggingDuration-r10 ::= ENUMERATED { + min10, min20, min40, min60, min90, min120, spare2, spare1} + + +LoggingInterval-r10 ::= ENUMERATED { + ms1280, ms2560, ms5120, ms10240, ms20480, + ms30720, ms40960, ms61440} + + +MeasSubframePattern-r10 ::= CHOICE { + subframePatternFDD-r10 BIT STRING (SIZE (40)), + subframePatternTDD-r10 CHOICE { + subframeConfig1-5-r10 BIT STRING (SIZE (20)), + subframeConfig0-r10 BIT STRING (SIZE (70)), + subframeConfig6-r10 BIT STRING (SIZE (60)), + ... + }, + ... +} + + +MMEC ::= BIT STRING (SIZE (8)) + + +NeighCellConfig ::= BIT STRING (SIZE (2)) + + +OtherConfig-r9 ::= SEQUENCE { + reportProximityConfig-r9 ReportProximityConfig-r9 OPTIONAL, -- Need ON + ..., + [[ idc-Config-r11 IDC-Config-r11 OPTIONAL, -- Need ON + powerPrefIndicationConfig-r11 PowerPrefIndicationConfig-r11 OPTIONAL, -- Need ON + obtainLocationConfig-r11 ObtainLocationConfig-r11 OPTIONAL -- Need ON + ]], + [[ bw-PreferenceIndicationTimer-r14 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, + s30, s60, s90, s120, s300, s600, spare3, + spare2, spare1} OPTIONAL, -- Need OR + sps-AssistanceInfoReport-r14 BOOLEAN OPTIONAL, -- Need ON + delayBudgetReportingConfig-r14 CHOICE{ + release NULL, + setup SEQUENCE{ + delayBudgetReportingProhibitTimer-r14 ENUMERATED { + s0, s0dot4, s0dot8, + s1dot6, s3, s6, s12, s30} + } + } OPTIONAL, -- Need ON + rlm-ReportConfig-r14 CHOICE { + release NULL, + setup SEQUENCE{ + rlmReportTimer-r14 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, s30, + s60, s90, s120, s300, s600, spare3, spare2, spare1}, + rlmReportRep-MPDCCH-r14 ENUMERATED {setup} OPTIONAL -- Need OR + } + } OPTIONAL -- Need ON + ]], + [[ overheatingAssistanceConfig-r14 CHOICE{ + release NULL, + setup SEQUENCE{ + overheatingIndicationProhibitTimer-r14 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, + s20, s30, s60, s90, s120, s300, s600, + spare3, spare2, spare1} + } + } OPTIONAL -- Need ON + ]] +} + +IDC-Config-r11 ::= SEQUENCE { + idc-Indication-r11 ENUMERATED {setup} OPTIONAL, -- Need OR + autonomousDenialParameters-r11 SEQUENCE { + autonomousDenialSubframes-r11 ENUMERATED {n2, n5, n10, n15, + n20, n30, spare2, spare1}, + autonomousDenialValidity-r11 ENUMERATED { + sf200, sf500, sf1000, sf2000, + spare4, spare3, spare2, spare1} + } OPTIONAL, -- Need OR + ..., + [[ idc-Indication-UL-CA-r11 ENUMERATED {setup} OPTIONAL -- Cond idc-Ind + ]], + [[ idc-HardwareSharingIndication-r13 ENUMERATED {setup} OPTIONAL -- Need OR + ]] +} + +ObtainLocationConfig-r11 ::= SEQUENCE { + obtainLocation-r11 ENUMERATED {setup} OPTIONAL -- Need OR +} + +PowerPrefIndicationConfig-r11 ::= CHOICE{ + release NULL, + setup SEQUENCE{ + powerPrefIndicationTimer-r11 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, + s30, s60, s90, s120, s300, s600, spare3, + spare2, spare1} + } +} + +ReportProximityConfig-r9 ::= SEQUENCE { + proximityIndicationEUTRA-r9 ENUMERATED {enabled} OPTIONAL, -- Need OR + proximityIndicationUTRA-r9 ENUMERATED {enabled} OPTIONAL -- Need OR +} + + +RAND-CDMA2000 ::= BIT STRING (SIZE (32)) + + +RAT-Type ::= ENUMERATED { + eutra, utra, geran-cs, geran-ps, cdma2000-1XRTT, + spare3, spare2, spare1, ...} + + +ResumeIdentity-r13 ::= BIT STRING (SIZE(40)) + + +RRC-TransactionIdentifier ::= INTEGER (0..3) + + +S-TMSI ::= SEQUENCE { + mmec MMEC, + m-TMSI BIT STRING (SIZE (32)) +} + + +TraceReference-r10 ::= SEQUENCE { + plmn-Identity-r10 PLMN-Identity, + traceId-r10 OCTET STRING (SIZE (3)) +} + + +UE-CapabilityRAT-ContainerList ::=SEQUENCE (SIZE (0..maxRAT-Capabilities)) OF UE-CapabilityRAT-Container + +UE-CapabilityRAT-Container ::= SEQUENCE { + rat-Type RAT-Type, + ueCapabilityRAT-Container OCTET STRING +} + + +UE-EUTRA-Capability ::= SEQUENCE { + accessStratumRelease AccessStratumRelease, + ue-Category INTEGER (1..5), + pdcp-Parameters PDCP-Parameters, + phyLayerParameters PhyLayerParameters, + rf-Parameters RF-Parameters, + measParameters MeasParameters, + featureGroupIndicators BIT STRING (SIZE (32)) OPTIONAL, + interRAT-Parameters SEQUENCE { + utraFDD IRAT-ParametersUTRA-FDD OPTIONAL, + utraTDD128 IRAT-ParametersUTRA-TDD128 OPTIONAL, + utraTDD384 IRAT-ParametersUTRA-TDD384 OPTIONAL, + utraTDD768 IRAT-ParametersUTRA-TDD768 OPTIONAL, + geran IRAT-ParametersGERAN OPTIONAL, + cdma2000-HRPD IRAT-ParametersCDMA2000-HRPD OPTIONAL, + cdma2000-1xRTT IRAT-ParametersCDMA2000-1XRTT OPTIONAL + }, + nonCriticalExtension UE-EUTRA-Capability-v920-IEs OPTIONAL +} + +-- Late non critical extensions +UE-EUTRA-Capability-v9a0-IEs ::= SEQUENCE { + featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9c0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9c0-IEs ::= SEQUENCE { + interRAT-ParametersUTRA-v9c0 IRAT-ParametersUTRA-v9c0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9d0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9d0-IEs ::= SEQUENCE { + phyLayerParameters-v9d0 PhyLayerParameters-v9d0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9e0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9e0-IEs ::= SEQUENCE { + rf-Parameters-v9e0 RF-Parameters-v9e0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9h0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9h0-IEs ::= SEQUENCE { + interRAT-ParametersUTRA-v9h0 IRAT-ParametersUTRA-v9h0 OPTIONAL, + -- Following field is only to be used for late REL-9 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10c0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10c0-IEs ::= SEQUENCE { + otdoa-PositioningCapabilities-r10 OTDOA-PositioningCapabilities-r10 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10f0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10f0-IEs ::= SEQUENCE { + rf-Parameters-v10f0 RF-Parameters-v10f0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10i0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10i0-IEs ::= SEQUENCE { + rf-Parameters-v10i0 RF-Parameters-v10i0 OPTIONAL, + -- Following field is only to be used for late REL-10 extensions + lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v10j0-IEs) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11d0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10j0-IEs ::= SEQUENCE { + rf-Parameters-v10j0 RF-Parameters-v10j0 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-EUTRA-Capability-v11d0-IEs ::= SEQUENCE { + rf-Parameters-v11d0 RF-Parameters-v11d0 OPTIONAL, + otherParameters-v11d0 Other-Parameters-v11d0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11x0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v11x0-IEs ::= SEQUENCE { + -- Following field is only to be used for late REL-11 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v12b0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v12b0-IEs ::= SEQUENCE { + rf-Parameters-v12b0 RF-Parameters-v12b0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v12x0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v12x0-IEs ::= SEQUENCE { + -- Following field is only to be used for late REL-12 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1370-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1370-IEs ::= SEQUENCE { + ce-Parameters-v1370 CE-Parameters-v1370 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1370 UE-EUTRA-CapabilityAddXDD-Mode-v1370 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1370 UE-EUTRA-CapabilityAddXDD-Mode-v1370 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1380-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1380-IEs ::= SEQUENCE { + rf-Parameters-v1380 RF-Parameters-v1380 OPTIONAL, + ce-Parameters-v1380 CE-Parameters-v1380, + fdd-Add-UE-EUTRA-Capabilities-v1380 UE-EUTRA-CapabilityAddXDD-Mode-v1380, + tdd-Add-UE-EUTRA-Capabilities-v1380 UE-EUTRA-CapabilityAddXDD-Mode-v1380, + nonCriticalExtension UE-EUTRA-Capability-v1390-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1390-IEs ::= SEQUENCE { + rf-Parameters-v1390 RF-Parameters-v1390 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v13x0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v13x0-IEs ::= SEQUENCE { + -- Following field is only to be used for late REL-13 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1470-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1470-IEs ::= SEQUENCE { + mbms-Parameters-v1470 MBMS-Parameters-v1470 OPTIONAL, + phyLayerParameters-v1470 PhyLayerParameters-v1470 OPTIONAL, + rf-Parameters-v1470 RF-Parameters-v1470 OPTIONAL, + -- Following field is only to be used for late REL-14 extensions + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +UE-EUTRA-Capability-v920-IEs ::= SEQUENCE { + phyLayerParameters-v920 PhyLayerParameters-v920, + interRAT-ParametersGERAN-v920 IRAT-ParametersGERAN-v920, + interRAT-ParametersUTRA-v920 IRAT-ParametersUTRA-v920 OPTIONAL, + interRAT-ParametersCDMA2000-v920 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL, + deviceType-r9 ENUMERATED {noBenFromBatConsumpOpt} OPTIONAL, + csg-ProximityIndicationParameters-r9 CSG-ProximityIndicationParameters-r9, + neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9, + son-Parameters-r9 SON-Parameters-r9, + nonCriticalExtension UE-EUTRA-Capability-v940-IEs OPTIONAL +} + +UE-EUTRA-Capability-v940-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v9a0-IEs) + OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1020-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1020-IEs ::= SEQUENCE { + ue-Category-v1020 INTEGER (6..8) OPTIONAL, + phyLayerParameters-v1020 PhyLayerParameters-v1020 OPTIONAL, + rf-Parameters-v1020 RF-Parameters-v1020 OPTIONAL, + measParameters-v1020 MeasParameters-v1020 OPTIONAL, + featureGroupIndRel10-r10 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersCDMA2000-v1020 IRAT-ParametersCDMA2000-1XRTT-v1020 OPTIONAL, + ue-BasedNetwPerfMeasParameters-r10 UE-BasedNetwPerfMeasParameters-r10 OPTIONAL, + interRAT-ParametersUTRA-TDD-v1020 IRAT-ParametersUTRA-TDD-v1020 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1060-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1060-IEs ::= SEQUENCE { + fdd-Add-UE-EUTRA-Capabilities-v1060 UE-EUTRA-CapabilityAddXDD-Mode-v1060 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1060 UE-EUTRA-CapabilityAddXDD-Mode-v1060 OPTIONAL, + rf-Parameters-v1060 RF-Parameters-v1060 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1090-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1090-IEs ::= SEQUENCE { + rf-Parameters-v1090 RF-Parameters-v1090 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1130-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1130-IEs ::= SEQUENCE { + pdcp-Parameters-v1130 PDCP-Parameters-v1130, + phyLayerParameters-v1130 PhyLayerParameters-v1130 OPTIONAL, + rf-Parameters-v1130 RF-Parameters-v1130, + measParameters-v1130 MeasParameters-v1130, + interRAT-ParametersCDMA2000-v1130 IRAT-ParametersCDMA2000-v1130, + otherParameters-r11 Other-Parameters-r11, + fdd-Add-UE-EUTRA-Capabilities-v1130 UE-EUTRA-CapabilityAddXDD-Mode-v1130 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1130 UE-EUTRA-CapabilityAddXDD-Mode-v1130 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1170-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1170-IEs ::= SEQUENCE { + phyLayerParameters-v1170 PhyLayerParameters-v1170 OPTIONAL, + ue-Category-v1170 INTEGER (9..10) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1180-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1180-IEs ::= SEQUENCE { + rf-Parameters-v1180 RF-Parameters-v1180 OPTIONAL, + mbms-Parameters-r11 MBMS-Parameters-r11 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1180 UE-EUTRA-CapabilityAddXDD-Mode-v1180 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1180 UE-EUTRA-CapabilityAddXDD-Mode-v1180 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11a0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v11a0-IEs ::= SEQUENCE { + ue-Category-v11a0 INTEGER (11..12) OPTIONAL, + measParameters-v11a0 MeasParameters-v11a0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1250-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1250-IEs ::= SEQUENCE { + phyLayerParameters-v1250 PhyLayerParameters-v1250 OPTIONAL, + rf-Parameters-v1250 RF-Parameters-v1250 OPTIONAL, + rlc-Parameters-r12 RLC-Parameters-r12 OPTIONAL, + ue-BasedNetwPerfMeasParameters-v1250 UE-BasedNetwPerfMeasParameters-v1250 OPTIONAL, + ue-CategoryDL-r12 INTEGER (0..14) OPTIONAL, + ue-CategoryUL-r12 INTEGER (0..13) OPTIONAL, + wlan-IW-Parameters-r12 WLAN-IW-Parameters-r12 OPTIONAL, + measParameters-v1250 MeasParameters-v1250 OPTIONAL, + dc-Parameters-r12 DC-Parameters-r12 OPTIONAL, + mbms-Parameters-v1250 MBMS-Parameters-v1250 OPTIONAL, + mac-Parameters-r12 MAC-Parameters-r12 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1250 UE-EUTRA-CapabilityAddXDD-Mode-v1250 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1250 UE-EUTRA-CapabilityAddXDD-Mode-v1250 OPTIONAL, + sl-Parameters-r12 SL-Parameters-r12 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1260-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1260-IEs ::= SEQUENCE { + ue-CategoryDL-v1260 INTEGER (15..16) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1270-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1270-IEs ::= SEQUENCE { + rf-Parameters-v1270 RF-Parameters-v1270 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1280-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1280-IEs ::= SEQUENCE { + phyLayerParameters-v1280 PhyLayerParameters-v1280 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1310-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1310-IEs ::= SEQUENCE { + ue-CategoryDL-v1310 ENUMERATED {n17, m1} OPTIONAL, + ue-CategoryUL-v1310 ENUMERATED {n14, m1} OPTIONAL, + pdcp-Parameters-v1310 PDCP-Parameters-v1310, + rlc-Parameters-v1310 RLC-Parameters-v1310, + mac-Parameters-v1310 MAC-Parameters-v1310 OPTIONAL, + phyLayerParameters-v1310 PhyLayerParameters-v1310 OPTIONAL, + rf-Parameters-v1310 RF-Parameters-v1310 OPTIONAL, + measParameters-v1310 MeasParameters-v1310 OPTIONAL, + dc-Parameters-v1310 DC-Parameters-v1310 OPTIONAL, + sl-Parameters-v1310 SL-Parameters-v1310 OPTIONAL, + scptm-Parameters-r13 SCPTM-Parameters-r13 OPTIONAL, + ce-Parameters-r13 CE-Parameters-r13 OPTIONAL, + interRAT-ParametersWLAN-r13 IRAT-ParametersWLAN-r13, + laa-Parameters-r13 LAA-Parameters-r13 OPTIONAL, + lwa-Parameters-r13 LWA-Parameters-r13 OPTIONAL, + wlan-IW-Parameters-v1310 WLAN-IW-Parameters-v1310, + lwip-Parameters-r13 LWIP-Parameters-r13, + fdd-Add-UE-EUTRA-Capabilities-v1310 UE-EUTRA-CapabilityAddXDD-Mode-v1310 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1310 UE-EUTRA-CapabilityAddXDD-Mode-v1310 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1320-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1320-IEs ::= SEQUENCE { + ce-Parameters-v1320 CE-Parameters-v1320 OPTIONAL, + phyLayerParameters-v1320 PhyLayerParameters-v1320 OPTIONAL, + rf-Parameters-v1320 RF-Parameters-v1320 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1320 UE-EUTRA-CapabilityAddXDD-Mode-v1320 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1320 UE-EUTRA-CapabilityAddXDD-Mode-v1320 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1330-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1330-IEs ::= SEQUENCE { + ue-CategoryDL-v1330 INTEGER (18..19) OPTIONAL, + phyLayerParameters-v1330 PhyLayerParameters-v1330 OPTIONAL, + ue-CE-NeedULGaps-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1340-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1340-IEs ::= SEQUENCE { + ue-CategoryUL-v1340 INTEGER (15) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1350-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1350-IEs ::= SEQUENCE { + ue-CategoryDL-v1350 ENUMERATED {oneBis} OPTIONAL, + ue-CategoryUL-v1350 ENUMERATED {oneBis} OPTIONAL, + ce-Parameters-v1350 CE-Parameters-v1350, + nonCriticalExtension UE-EUTRA-Capability-v1360-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1360-IEs ::= SEQUENCE { + other-Parameters-v1360 Other-Parameters-v1360 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1430-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1430-IEs ::= SEQUENCE { + phyLayerParameters-v1430 PhyLayerParameters-v1430, + ue-CategoryDL-v1430 ENUMERATED {m2} OPTIONAL, + ue-CategoryUL-v1430 ENUMERATED {n16, n17, n18, n19, n20, m2} OPTIONAL, + ue-CategoryUL-v1430b ENUMERATED {n21} OPTIONAL, + mac-Parameters-v1430 MAC-Parameters-v1430 OPTIONAL, + measParameters-v1430 MeasParameters-v1430 OPTIONAL, + pdcp-Parameters-v1430 PDCP-Parameters-v1430 OPTIONAL, + rlc-Parameters-v1430 RLC-Parameters-v1430, + rf-Parameters-v1430 RF-Parameters-v1430 OPTIONAL, + laa-Parameters-v1430 LAA-Parameters-v1430 OPTIONAL, + lwa-Parameters-v1430 LWA-Parameters-v1430 OPTIONAL, + lwip-Parameters-v1430 LWIP-Parameters-v1430 OPTIONAL, + otherParameters-v1430 Other-Parameters-v1430, + mmtel-Parameters-r14 MMTEL-Parameters-r14 OPTIONAL, + mobilityParameters-r14 MobilityParameters-r14 OPTIONAL, + ce-Parameters-v1430 CE-Parameters-v1430, + fdd-Add-UE-EUTRA-Capabilities-v1430 UE-EUTRA-CapabilityAddXDD-Mode-v1430 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1430 UE-EUTRA-CapabilityAddXDD-Mode-v1430 OPTIONAL, + mbms-Parameters-v1430 MBMS-Parameters-v1430 OPTIONAL, + sl-Parameters-v1430 SL-Parameters-v1430 OPTIONAL, + ue-BasedNetwPerfMeasParameters-v1430 UE-BasedNetwPerfMeasParameters-v1430 OPTIONAL, + highSpeedEnhParameters-r14 HighSpeedEnhParameters-r14 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1440-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1440-IEs ::= SEQUENCE { + lwa-Parameters-v1440 LWA-Parameters-v1440, + mac-Parameters-v1440 MAC-Parameters-v1440, + nonCriticalExtension UE-EUTRA-Capability-v1450-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1450-IEs ::= SEQUENCE { + phyLayerParameters-v1450 PhyLayerParameters-v1450 OPTIONAL, + rf-Parameters-v1450 RF-Parameters-v1450 OPTIONAL, + otherParameters-v1450 OtherParameters-v1450, + ue-CategoryDL-v1450 INTEGER (20) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1460-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1460-IEs ::= SEQUENCE { + ue-CategoryDL-v1460 INTEGER (21) OPTIONAL, + otherParameters-v1460 Other-Parameters-v1460, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-r9 ::= SEQUENCE { + phyLayerParameters-r9 PhyLayerParameters OPTIONAL, + featureGroupIndicators-r9 BIT STRING (SIZE (32)) OPTIONAL, + featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersGERAN-r9 IRAT-ParametersGERAN OPTIONAL, + interRAT-ParametersUTRA-r9 IRAT-ParametersUTRA-v920 OPTIONAL, + interRAT-ParametersCDMA2000-r9 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL, + neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9 OPTIONAL, + ... +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1060 ::= SEQUENCE { + phyLayerParameters-v1060 PhyLayerParameters-v1020 OPTIONAL, + featureGroupIndRel10-v1060 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersCDMA2000-v1060 IRAT-ParametersCDMA2000-1XRTT-v1020 OPTIONAL, + interRAT-ParametersUTRA-TDD-v1060 IRAT-ParametersUTRA-TDD-v1020 OPTIONAL, + ..., + [[ otdoa-PositioningCapabilities-r10 OTDOA-PositioningCapabilities-r10 OPTIONAL + ]] +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1130 ::= SEQUENCE { + phyLayerParameters-v1130 PhyLayerParameters-v1130 OPTIONAL, + measParameters-v1130 MeasParameters-v1130 OPTIONAL, + otherParameters-r11 Other-Parameters-r11 OPTIONAL, + ... +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1180 ::= SEQUENCE { + mbms-Parameters-r11 MBMS-Parameters-r11 +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1250 ::= SEQUENCE { + phyLayerParameters-v1250 PhyLayerParameters-v1250 OPTIONAL, + measParameters-v1250 MeasParameters-v1250 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1310 ::= SEQUENCE { + phyLayerParameters-v1310 PhyLayerParameters-v1310 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1320 ::= SEQUENCE { + phyLayerParameters-v1320 PhyLayerParameters-v1320 OPTIONAL, + scptm-Parameters-r13 SCPTM-Parameters-r13 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1370 ::= SEQUENCE { + ce-Parameters-v1370 CE-Parameters-v1370 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1380 ::= SEQUENCE { + ce-Parameters-v1380 CE-Parameters-v1380 +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1430 ::= SEQUENCE { + phyLayerParameters-v1430 PhyLayerParameters-v1430 OPTIONAL, + mmtel-Parameters-r14 MMTEL-Parameters-r14 OPTIONAL +} + +AccessStratumRelease ::= ENUMERATED { + rel8, rel9, rel10, rel11, rel12, rel13, + rel14, spare1, ...} + +MobilityParameters-r14 ::= SEQUENCE { + makeBeforeBreak-r14 ENUMERATED {supported} OPTIONAL, + rach-Less-r14 ENUMERATED {supported} OPTIONAL +} + +DC-Parameters-r12 ::= SEQUENCE { + drb-TypeSplit-r12 ENUMERATED {supported} OPTIONAL, + drb-TypeSCG-r12 ENUMERATED {supported} OPTIONAL +} + +DC-Parameters-v1310 ::= SEQUENCE { + pdcp-TransferSplitUL-r13 ENUMERATED {supported} OPTIONAL, + ue-SSTD-Meas-r13 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-r12 ::= SEQUENCE { + logicalChannelSR-ProhibitTimer-r12 ENUMERATED {supported} OPTIONAL, + longDRX-Command-r12 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-v1310 ::= SEQUENCE { + extendedMAC-LengthField-r13 ENUMERATED {supported} OPTIONAL, + extendedLongDRX-r13 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-v1430 ::= SEQUENCE { + shortSPS-IntervalFDD-r14 ENUMERATED {supported} OPTIONAL, + shortSPS-IntervalTDD-r14 ENUMERATED {supported} OPTIONAL, + skipUplinkDynamic-r14 ENUMERATED {supported} OPTIONAL, + skipUplinkSPS-r14 ENUMERATED {supported} OPTIONAL, + multipleUplinkSPS-r14 ENUMERATED {supported} OPTIONAL, + dataInactMon-r14 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-v1440 ::= SEQUENCE { + rai-Support-r14 ENUMERATED {supported} OPTIONAL +} + +RLC-Parameters-r12 ::= SEQUENCE { + extended-RLC-LI-Field-r12 ENUMERATED {supported} +} + +RLC-Parameters-v1310 ::= SEQUENCE { + extendedRLC-SN-SO-Field-r13 ENUMERATED {supported} OPTIONAL +} + +RLC-Parameters-v1430 ::= SEQUENCE { + extendedPollByte-r14 ENUMERATED {supported} OPTIONAL +} + +PDCP-Parameters ::= SEQUENCE { + supportedROHC-Profiles SEQUENCE { + profile0x0001 BOOLEAN, + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0101 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + maxNumberROHC-ContextSessions ENUMERATED { + cs2, cs4, cs8, cs12, cs16, cs24, cs32, + cs48, cs64, cs128, cs256, cs512, cs1024, + cs16384, spare2, spare1} DEFAULT cs16, + ... +} + +PDCP-Parameters-v1130 ::= SEQUENCE { + pdcp-SN-Extension-r11 ENUMERATED {supported} OPTIONAL, + supportRohcContextContinue-r11 ENUMERATED {supported} OPTIONAL +} + +PDCP-Parameters-v1310 ::= SEQUENCE { + pdcp-SN-Extension-18bits-r13 ENUMERATED {supported} OPTIONAL +} + +PDCP-Parameters-v1430 ::= SEQUENCE { + supportedUplinkOnlyROHC-Profiles-r14 SEQUENCE { + profile0x0006-r14 BOOLEAN + }, + maxNumberROHC-ContextSessions-r14 ENUMERATED { + cs2, cs4, cs8, cs12, cs16, cs24, cs32, + cs48, cs64, cs128, cs256, cs512, cs1024, + cs16384, spare2, spare1} DEFAULT cs16 +} + +PhyLayerParameters ::= SEQUENCE { + ue-TxAntennaSelectionSupported BOOLEAN, + ue-SpecificRefSigsSupported BOOLEAN +} + +PhyLayerParameters-v920 ::= SEQUENCE { + enhancedDualLayerFDD-r9 ENUMERATED {supported} OPTIONAL, + enhancedDualLayerTDD-r9 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v9d0 ::= SEQUENCE { + tm5-FDD-r9 ENUMERATED {supported} OPTIONAL, + tm5-TDD-r9 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1020 ::= SEQUENCE { + twoAntennaPortsForPUCCH-r10 ENUMERATED {supported} OPTIONAL, + tm9-With-8Tx-FDD-r10 ENUMERATED {supported} OPTIONAL, + pmi-Disabling-r10 ENUMERATED {supported} OPTIONAL, + crossCarrierScheduling-r10 ENUMERATED {supported} OPTIONAL, + simultaneousPUCCH-PUSCH-r10 ENUMERATED {supported} OPTIONAL, + multiClusterPUSCH-WithinCC-r10 ENUMERATED {supported} OPTIONAL, + nonContiguousUL-RA-WithinCC-List-r10 NonContiguousUL-RA-WithinCC-List-r10 OPTIONAL +} + +PhyLayerParameters-v1130 ::= SEQUENCE { + crs-InterfHandl-r11 ENUMERATED {supported} OPTIONAL, + ePDCCH-r11 ENUMERATED {supported} OPTIONAL, + multiACK-CSI-Reporting-r11 ENUMERATED {supported} OPTIONAL, + ss-CCH-InterfHandl-r11 ENUMERATED {supported} OPTIONAL, + tdd-SpecialSubframe-r11 ENUMERATED {supported} OPTIONAL, + txDiv-PUCCH1b-ChSelect-r11 ENUMERATED {supported} OPTIONAL, + ul-CoMP-r11 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1170 ::= SEQUENCE { + interBandTDD-CA-WithDifferentConfig-r11 BIT STRING (SIZE (2)) OPTIONAL +} + +PhyLayerParameters-v1250 ::= SEQUENCE { + e-HARQ-Pattern-FDD-r12 ENUMERATED {supported} OPTIONAL, + enhanced-4TxCodebook-r12 ENUMERATED {supported} OPTIONAL, + tdd-FDD-CA-PCellDuplex-r12 BIT STRING (SIZE (2)) OPTIONAL, + phy-TDD-ReConfig-TDD-PCell-r12 ENUMERATED {supported} OPTIONAL, + phy-TDD-ReConfig-FDD-PCell-r12 ENUMERATED {supported} OPTIONAL, + pusch-FeedbackMode-r12 ENUMERATED {supported} OPTIONAL, + pusch-SRS-PowerControl-SubframeSet-r12 ENUMERATED {supported} OPTIONAL, + csi-SubframeSet-r12 ENUMERATED {supported} OPTIONAL, + noResourceRestrictionForTTIBundling-r12 ENUMERATED {supported} OPTIONAL, + discoverySignalsInDeactSCell-r12 ENUMERATED {supported} OPTIONAL, + naics-Capability-List-r12 NAICS-Capability-List-r12 OPTIONAL +} + +PhyLayerParameters-v1280 ::= SEQUENCE { + alternativeTBS-Indices-r12 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1310 ::= SEQUENCE { + aperiodicCSI-Reporting-r13 BIT STRING (SIZE (2)) OPTIONAL, + codebook-HARQ-ACK-r13 BIT STRING (SIZE (2)) OPTIONAL, + crossCarrierScheduling-B5C-r13 ENUMERATED {supported} OPTIONAL, + fdd-HARQ-TimingTDD-r13 ENUMERATED {supported} OPTIONAL, + maxNumberUpdatedCSI-Proc-r13 INTEGER(5..32) OPTIONAL, + pucch-Format4-r13 ENUMERATED {supported} OPTIONAL, + pucch-Format5-r13 ENUMERATED {supported} OPTIONAL, + pucch-SCell-r13 ENUMERATED {supported} OPTIONAL, + spatialBundling-HARQ-ACK-r13 ENUMERATED {supported} OPTIONAL, + supportedBlindDecoding-r13 SEQUENCE { + maxNumberDecoding-r13 INTEGER(1..32) OPTIONAL, + pdcch-CandidateReductions-r13 ENUMERATED {supported} OPTIONAL, + skipMonitoringDCI-Format0-1A-r13 ENUMERATED {supported} OPTIONAL + } OPTIONAL, + uci-PUSCH-Ext-r13 ENUMERATED {supported} OPTIONAL, + crs-InterfMitigationTM10-r13 ENUMERATED {supported} OPTIONAL, + pdsch-CollisionHandling-r13 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1320 ::= SEQUENCE { + mimo-UE-Parameters-r13 MIMO-UE-Parameters-r13 OPTIONAL +} + +PhyLayerParameters-v1330 ::= SEQUENCE { + cch-InterfMitigation-RefRecTypeA-r13 ENUMERATED {supported} OPTIONAL, + cch-InterfMitigation-RefRecTypeB-r13 ENUMERATED {supported} OPTIONAL, + cch-InterfMitigation-MaxNumCCs-r13 INTEGER (1.. maxServCell-r13) OPTIONAL, + crs-InterfMitigationTM1toTM9-r13 INTEGER (1.. maxServCell-r13) OPTIONAL +} + +PhyLayerParameters-v1430 ::= SEQUENCE { + ce-PUSCH-NB-MaxTBS-r14 ENUMERATED {supported} OPTIONAL, + ce-PDSCH-PUSCH-MaxBandwidth-r14 ENUMERATED {bw5, bw20} OPTIONAL, + ce-HARQ-AckBundling-r14 ENUMERATED {supported} OPTIONAL, + ce-PDSCH-TenProcesses-r14 ENUMERATED {supported} OPTIONAL, + ce-RetuningSymbols-r14 ENUMERATED {n0, n1} OPTIONAL, + ce-PDSCH-PUSCH-Enhancement-r14 ENUMERATED {supported} OPTIONAL, + ce-SchedulingEnhancement-r14 ENUMERATED {supported} OPTIONAL, + ce-SRS-Enhancement-r14 ENUMERATED {supported} OPTIONAL, + ce-PUCCH-Enhancement-r14 ENUMERATED {supported} OPTIONAL, + ce-ClosedLoopTxAntennaSelection-r14 ENUMERATED {supported} OPTIONAL, + tdd-SpecialSubframe-r14 ENUMERATED {supported} OPTIONAL, + tdd-TTI-Bundling-r14 ENUMERATED {supported} OPTIONAL, + dmrs-LessUpPTS-r14 ENUMERATED {supported} OPTIONAL, + mimo-UE-Parameters-v1430 MIMO-UE-Parameters-v1430 OPTIONAL, + alternativeTBS-Index-r14 ENUMERATED {supported} OPTIONAL, + feMBMS-Unicast-Parameters-r14 FeMBMS-Unicast-Parameters-r14 OPTIONAL +} + +PhyLayerParameters-v1450 ::= SEQUENCE { + ce-SRS-EnhancementWithoutComb4-r14 ENUMERATED {supported} OPTIONAL, + crs-LessDwPTS-r14 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1470 ::= SEQUENCE { + mimo-UE-Parameters-v1470 MIMO-UE-Parameters-v1470 OPTIONAL, + srs-UpPTS-6sym-r14 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-Parameters-r13 ::= SEQUENCE { + parametersTM9-r13 MIMO-UE-ParametersPerTM-r13 OPTIONAL, + parametersTM10-r13 MIMO-UE-ParametersPerTM-r13 OPTIONAL, + srs-EnhancementsTDD-r13 ENUMERATED {supported} OPTIONAL, + srs-Enhancements-r13 ENUMERATED {supported} OPTIONAL, + interferenceMeasRestriction-r13 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-Parameters-v1430 ::= SEQUENCE { + parametersTM9-v1430 MIMO-UE-ParametersPerTM-v1430 OPTIONAL, + parametersTM10-v1430 MIMO-UE-ParametersPerTM-v1430 OPTIONAL +} + +MIMO-UE-Parameters-v1470 ::= SEQUENCE { + parametersTM9-v1470 MIMO-UE-ParametersPerTM-v1470, + parametersTM10-v1470 MIMO-UE-ParametersPerTM-v1470 +} + +MIMO-UE-ParametersPerTM-r13 ::= SEQUENCE { + nonPrecoded-r13 MIMO-NonPrecodedCapabilities-r13 OPTIONAL, + beamformed-r13 MIMO-UE-BeamformedCapabilities-r13 OPTIONAL, + channelMeasRestriction-r13 ENUMERATED {supported} OPTIONAL, + dmrs-Enhancements-r13 ENUMERATED {supported} OPTIONAL, + csi-RS-EnhancementsTDD-r13 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-ParametersPerTM-v1430 ::= SEQUENCE { + nzp-CSI-RS-AperiodicInfo-r14 SEQUENCE { + nMaxProc-r14 INTEGER(5..32), + nMaxResource-r14 ENUMERATED {ffs1, ffs2, ffs3, ffs4} + } OPTIONAL, + nzp-CSI-RS-PeriodicInfo-r14 SEQUENCE { + nMaxResource-r14 ENUMERATED {ffs1, ffs2, ffs3, ffs4} + } OPTIONAL, + zp-CSI-RS-AperiodicInfo-r14 ENUMERATED {supported} OPTIONAL, + ul-dmrs-Enhancements-r14 ENUMERATED {supported} OPTIONAL, + densityReductionNP-r14 ENUMERATED {supported} OPTIONAL, + densityReductionBF-r14 ENUMERATED {supported} OPTIONAL, + hybridCSI-r14 ENUMERATED {supported} OPTIONAL, + semiOL-r14 ENUMERATED {supported} OPTIONAL, + csi-ReportingNP-r14 ENUMERATED {supported} OPTIONAL, + csi-ReportingAdvanced-r14 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-ParametersPerTM-v1470 ::= SEQUENCE { + csi-ReportingAdvancedMaxPorts-r14 ENUMERATED {n8, n12, n16, n20, n24, n28} OPTIONAL +} + +MIMO-CA-ParametersPerBoBC-r13 ::= SEQUENCE { + parametersTM9-r13 MIMO-CA-ParametersPerBoBCPerTM-r13 OPTIONAL, + parametersTM10-r13 MIMO-CA-ParametersPerBoBCPerTM-r13 OPTIONAL +} + +MIMO-CA-ParametersPerBoBC-v1430 ::= SEQUENCE { + parametersTM9-v1430 MIMO-CA-ParametersPerBoBCPerTM-v1430 OPTIONAL, + parametersTM10-v1430 MIMO-CA-ParametersPerBoBCPerTM-v1430 OPTIONAL +} + +MIMO-CA-ParametersPerBoBC-v1470 ::= SEQUENCE { + parametersTM9-v1470 MIMO-CA-ParametersPerBoBCPerTM-v1470 , + parametersTM10-v1470 MIMO-CA-ParametersPerBoBCPerTM-v1470 +} + +MIMO-CA-ParametersPerBoBCPerTM-r13 ::= SEQUENCE { + nonPrecoded-r13 MIMO-NonPrecodedCapabilities-r13 OPTIONAL, + beamformed-r13 MIMO-BeamformedCapabilityList-r13 OPTIONAL, + dmrs-Enhancements-r13 ENUMERATED {different} OPTIONAL +} + +MIMO-CA-ParametersPerBoBCPerTM-v1430 ::= SEQUENCE { + csi-ReportingNP-r14 ENUMERATED {different} OPTIONAL, + csi-ReportingAdvanced-r14 ENUMERATED {different} OPTIONAL +} + +MIMO-CA-ParametersPerBoBCPerTM-v1470 ::= SEQUENCE { + csi-ReportingAdvancedMaxPorts-r14 ENUMERATED {n8, n12, n16, n20, n24, n28} OPTIONAL +} + +MIMO-NonPrecodedCapabilities-r13 ::= SEQUENCE { + config1-r13 ENUMERATED {supported} OPTIONAL, + config2-r13 ENUMERATED {supported} OPTIONAL, + config3-r13 ENUMERATED {supported} OPTIONAL, + config4-r13 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-BeamformedCapabilities-r13 ::= SEQUENCE { + altCodebook-r13 ENUMERATED {supported} OPTIONAL, + mimo-BeamformedCapabilities-r13 MIMO-BeamformedCapabilityList-r13 +} + +MIMO-BeamformedCapabilityList-r13 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF MIMO-BeamformedCapabilities-r13 + +MIMO-BeamformedCapabilities-r13 ::= SEQUENCE { + k-Max-r13 INTEGER (1..8), + n-MaxList-r13 BIT STRING (SIZE (1..7)) OPTIONAL + } + +NonContiguousUL-RA-WithinCC-List-r10 ::= SEQUENCE (SIZE (1..maxBands)) OF NonContiguousUL-RA-WithinCC-r10 + +NonContiguousUL-RA-WithinCC-r10 ::= SEQUENCE { + nonContiguousUL-RA-WithinCC-Info-r10 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters ::= SEQUENCE { + supportedBandListEUTRA SupportedBandListEUTRA +} + +RF-Parameters-v9e0 ::= SEQUENCE { + supportedBandListEUTRA-v9e0 SupportedBandListEUTRA-v9e0 OPTIONAL +} + +RF-Parameters-v1020 ::= SEQUENCE { + supportedBandCombination-r10 SupportedBandCombination-r10 +} + +RF-Parameters-v1060 ::= SEQUENCE { + supportedBandCombinationExt-r10 SupportedBandCombinationExt-r10 +} + +RF-Parameters-v1090 ::= SEQUENCE { + supportedBandCombination-v1090 SupportedBandCombination-v1090 OPTIONAL +} + +RF-Parameters-v10f0 ::= SEQUENCE { + modifiedMPR-Behavior-r10 BIT STRING (SIZE (32)) OPTIONAL +} + +RF-Parameters-v10i0 ::= SEQUENCE { + supportedBandCombination-v10i0 SupportedBandCombination-v10i0 OPTIONAL +} + +RF-Parameters-v10j0 ::= SEQUENCE { + multiNS-Pmax-r10 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1130 ::= SEQUENCE { + supportedBandCombination-v1130 SupportedBandCombination-v1130 OPTIONAL +} + +RF-Parameters-v1180 ::= SEQUENCE { + freqBandRetrieval-r11 ENUMERATED {supported} OPTIONAL, + requestedBands-r11 SEQUENCE (SIZE (1.. maxBands)) OF FreqBandIndicator-r11 OPTIONAL, + supportedBandCombinationAdd-r11 SupportedBandCombinationAdd-r11 OPTIONAL +} + +RF-Parameters-v11d0 ::= SEQUENCE { + supportedBandCombinationAdd-v11d0 SupportedBandCombinationAdd-v11d0 OPTIONAL +} + +RF-Parameters-v1250 ::= SEQUENCE { + supportedBandListEUTRA-v1250 SupportedBandListEUTRA-v1250 OPTIONAL, + supportedBandCombination-v1250 SupportedBandCombination-v1250 OPTIONAL, + supportedBandCombinationAdd-v1250 SupportedBandCombinationAdd-v1250 OPTIONAL, + freqBandPriorityAdjustment-r12 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1270 ::= SEQUENCE { + supportedBandCombination-v1270 SupportedBandCombination-v1270 OPTIONAL, + supportedBandCombinationAdd-v1270 SupportedBandCombinationAdd-v1270 OPTIONAL +} + +RF-Parameters-v1310 ::= SEQUENCE { + eNB-RequestedParameters-r13 SEQUENCE { + reducedIntNonContCombRequested-r13 ENUMERATED {true} OPTIONAL, + requestedCCsDL-r13 INTEGER (2..32) OPTIONAL, + requestedCCsUL-r13 INTEGER (2..32) OPTIONAL, + skipFallbackCombRequested-r13 ENUMERATED {true} OPTIONAL + } OPTIONAL, + maximumCCsRetrieval-r13 ENUMERATED {supported} OPTIONAL, + skipFallbackCombinations-r13 ENUMERATED {supported} OPTIONAL, + reducedIntNonContComb-r13 ENUMERATED {supported} OPTIONAL, + supportedBandListEUTRA-v1310 SupportedBandListEUTRA-v1310 OPTIONAL, + supportedBandCombinationReduced-r13 SupportedBandCombinationReduced-r13 OPTIONAL +} + +RF-Parameters-v1320 ::= SEQUENCE { + supportedBandListEUTRA-v1320 SupportedBandListEUTRA-v1320 OPTIONAL, + supportedBandCombination-v1320 SupportedBandCombination-v1320 OPTIONAL, + supportedBandCombinationAdd-v1320 SupportedBandCombinationAdd-v1320 OPTIONAL, + supportedBandCombinationReduced-v1320 SupportedBandCombinationReduced-v1320 OPTIONAL +} + +RF-Parameters-v1380 ::= SEQUENCE { + supportedBandCombination-v1380 SupportedBandCombination-v1380 OPTIONAL, + supportedBandCombinationAdd-v1380 SupportedBandCombinationAdd-v1380 OPTIONAL, + supportedBandCombinationReduced-v1380 SupportedBandCombinationReduced-v1380 OPTIONAL +} + +RF-Parameters-v1390 ::= SEQUENCE { + supportedBandCombination-v1390 SupportedBandCombination-v1390 OPTIONAL, + supportedBandCombinationAdd-v1390 SupportedBandCombinationAdd-v1390 OPTIONAL, + supportedBandCombinationReduced-v1390 SupportedBandCombinationReduced-v1390 OPTIONAL +} + +RF-Parameters-v12b0 ::= SEQUENCE { + maxLayersMIMO-Indication-r12 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1430 ::= SEQUENCE { + supportedBandCombination-v1430 SupportedBandCombination-v1430 OPTIONAL, + supportedBandCombinationAdd-v1430 SupportedBandCombinationAdd-v1430 OPTIONAL, + supportedBandCombinationReduced-v1430 SupportedBandCombinationReduced-v1430 OPTIONAL, + eNB-RequestedParameters-v1430 SEQUENCE { + requestedDiffFallbackCombList-r14 BandCombinationList-r14 + } OPTIONAL, + diffFallbackCombReport-r14 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1450 ::= SEQUENCE { + supportedBandCombination-v1450 SupportedBandCombination-v1450 OPTIONAL, + supportedBandCombinationAdd-v1450 SupportedBandCombinationAdd-v1450 OPTIONAL, + supportedBandCombinationReduced-v1450 SupportedBandCombinationReduced-v1450 OPTIONAL +} + +RF-Parameters-v1470 ::= SEQUENCE { + supportedBandCombination-v1470 SupportedBandCombination-v1470 OPTIONAL, + supportedBandCombinationAdd-v1470 SupportedBandCombinationAdd-v1470 OPTIONAL, + supportedBandCombinationReduced-v1470 SupportedBandCombinationReduced-v1470 OPTIONAL +} + +SupportedBandCombination-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-r10 + +SupportedBandCombinationExt-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParametersExt-r10 + +SupportedBandCombination-v1090 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1090 + +SupportedBandCombination-v10i0 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v10i0 + +SupportedBandCombination-v1130 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1130 + +SupportedBandCombination-v1250 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1250 + +SupportedBandCombination-v1270 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1270 + +SupportedBandCombination-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1320 + +SupportedBandCombination-v1380 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1380 + +SupportedBandCombination-v1390 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1390 + +SupportedBandCombination-v1430 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1430 + +SupportedBandCombination-v1450 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1450 + +SupportedBandCombination-v1470 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1470 + +SupportedBandCombinationAdd-r11 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-r11 + +SupportedBandCombinationAdd-v11d0 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v10i0 + +SupportedBandCombinationAdd-v1250 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1250 + +SupportedBandCombinationAdd-v1270 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1270 + +SupportedBandCombinationAdd-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1320 + +SupportedBandCombinationAdd-v1380 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1380 + +SupportedBandCombinationAdd-v1390 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1390 + +SupportedBandCombinationAdd-v1430 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1430 + +SupportedBandCombinationAdd-v1450 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1450 + +SupportedBandCombinationAdd-v1470 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1470 + +SupportedBandCombinationReduced-r13 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-r13 + +SupportedBandCombinationReduced-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1320 + +SupportedBandCombinationReduced-v1380 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1380 + +SupportedBandCombinationReduced-v1390 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1390 + +SupportedBandCombinationReduced-v1430 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1430 + +SupportedBandCombinationReduced-v1450 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1450 + +SupportedBandCombinationReduced-v1470 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1470 + +BandCombinationParameters-r10 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r10 + +BandCombinationParametersExt-r10 ::= SEQUENCE { + supportedBandwidthCombinationSet-r10 SupportedBandwidthCombinationSet-r10 OPTIONAL +} + +BandCombinationParameters-v1090 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1090 + +BandCombinationParameters-v10i0::= SEQUENCE { + bandParameterList-v10i0 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v10i0 OPTIONAL +} + +BandCombinationParameters-v1130 ::= SEQUENCE { + multipleTimingAdvance-r11 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r11 ENUMERATED {supported} OPTIONAL, + bandParameterList-r11 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1130 OPTIONAL, + ... +} + +BandCombinationParameters-r11 ::= SEQUENCE { + bandParameterList-r11 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-r11, + supportedBandwidthCombinationSet-r11 SupportedBandwidthCombinationSet-r10 OPTIONAL, + multipleTimingAdvance-r11 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r11 ENUMERATED {supported} OPTIONAL, + bandInfoEUTRA-r11 BandInfoEUTRA, + ... +} + +BandCombinationParameters-v1250::= SEQUENCE { + dc-Support-r12 SEQUENCE { + asynchronous-r12 ENUMERATED {supported} OPTIONAL, + supportedCellGrouping-r12 CHOICE { + threeEntries-r12 BIT STRING (SIZE(3)), + fourEntries-r12 BIT STRING (SIZE(7)), + fiveEntries-r12 BIT STRING (SIZE(15)) + } OPTIONAL + } OPTIONAL, + supportedNAICS-2CRS-AP-r12 BIT STRING (SIZE (1..maxNAICS-Entries-r12)) OPTIONAL, + commSupportedBandsPerBC-r12 BIT STRING (SIZE (1.. maxBands)) OPTIONAL, + ... +} + +BandCombinationParameters-v1270 ::= SEQUENCE { + bandParameterList-v1270 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1270 OPTIONAL +} + +BandCombinationParameters-r13 ::= SEQUENCE { + differentFallbackSupported-r13 ENUMERATED {true} OPTIONAL, + bandParameterList-r13 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r13, + supportedBandwidthCombinationSet-r13 SupportedBandwidthCombinationSet-r10 OPTIONAL, + multipleTimingAdvance-r13 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r13 ENUMERATED {supported} OPTIONAL, + bandInfoEUTRA-r13 BandInfoEUTRA, + dc-Support-r13 SEQUENCE { + asynchronous-r13 ENUMERATED {supported} OPTIONAL, + supportedCellGrouping-r13 CHOICE { + threeEntries-r13 BIT STRING (SIZE(3)), + fourEntries-r13 BIT STRING (SIZE(7)), + fiveEntries-r13 BIT STRING (SIZE(15)) + } OPTIONAL + } OPTIONAL, + supportedNAICS-2CRS-AP-r13 BIT STRING (SIZE (1..maxNAICS-Entries-r12)) OPTIONAL, + commSupportedBandsPerBC-r13 BIT STRING (SIZE (1.. maxBands)) OPTIONAL +} + +BandCombinationParameters-v1320 ::= SEQUENCE { + bandParameterList-v1320 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1320 OPTIONAL, + additionalRx-Tx-PerformanceReq-r13 ENUMERATED {supported} OPTIONAL +} + +BandCombinationParameters-v1380 ::= SEQUENCE { + bandParameterList-v1380 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1380 OPTIONAL +} + +BandCombinationParameters-v1390 ::= SEQUENCE { + ue-CA-PowerClass-N-r13 ENUMERATED {class2} OPTIONAL +} + +BandCombinationParameters-v1430 ::= SEQUENCE { + bandParameterList-v1430 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1430 OPTIONAL, + v2x-SupportedTxBandCombListPerBC-r14 BIT STRING (SIZE (1.. maxBandComb-r13)) OPTIONAL, + v2x-SupportedRxBandCombListPerBC-r14 BIT STRING (SIZE (1.. maxBandComb-r13)) OPTIONAL +} + +BandCombinationParameters-v1450 ::= SEQUENCE { + bandParameterList-v1450 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1450 OPTIONAL +} + +BandCombinationParameters-v1470 ::= SEQUENCE { + bandParameterList-v1470 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1470 OPTIONAL, + srs-MaxSimultaneousCCs-r14 INTEGER (1..31) OPTIONAL +} + +SupportedBandwidthCombinationSet-r10 ::= BIT STRING (SIZE (1..maxBandwidthCombSet-r10)) + +BandParameters-r10 ::= SEQUENCE { + bandEUTRA-r10 FreqBandIndicator, + bandParametersUL-r10 BandParametersUL-r10 OPTIONAL, + bandParametersDL-r10 BandParametersDL-r10 OPTIONAL +} + +BandParameters-v1090 ::= SEQUENCE { + bandEUTRA-v1090 FreqBandIndicator-v9e0 OPTIONAL, + ... +} + +BandParameters-v10i0::= SEQUENCE { + bandParametersDL-v10i0 SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-v10i0 +} + +BandParameters-v1130 ::= SEQUENCE { + supportedCSI-Proc-r11 ENUMERATED {n1, n3, n4} +} + +BandParameters-r11 ::= SEQUENCE { + bandEUTRA-r11 FreqBandIndicator-r11, + bandParametersUL-r11 BandParametersUL-r10 OPTIONAL, + bandParametersDL-r11 BandParametersDL-r10 OPTIONAL, + supportedCSI-Proc-r11 ENUMERATED {n1, n3, n4} OPTIONAL +} + +BandParameters-v1270 ::= SEQUENCE { + bandParametersDL-v1270 SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-v1270 +} + +BandParameters-r13 ::= SEQUENCE { + bandEUTRA-r13 FreqBandIndicator-r11, + bandParametersUL-r13 BandParametersUL-r13 OPTIONAL, + bandParametersDL-r13 BandParametersDL-r13 OPTIONAL, + supportedCSI-Proc-r13 ENUMERATED {n1, n3, n4} OPTIONAL +} + +BandParameters-v1320 ::= SEQUENCE { + bandParametersDL-v1320 MIMO-CA-ParametersPerBoBC-r13 +} + +BandParameters-v1380 ::= SEQUENCE { + txAntennaSwitchDL-r13 INTEGER (1..32) OPTIONAL, + txAntennaSwitchUL-r13 INTEGER (1..32) OPTIONAL +} + +BandParameters-v1430 ::= SEQUENCE { + bandParametersDL-v1430 MIMO-CA-ParametersPerBoBC-v1430 OPTIONAL, + ul-256QAM-r14 ENUMERATED {supported} OPTIONAL, + ul-256QAM-perCC-InfoList-r14 SEQUENCE (SIZE (2..maxServCell-r13)) OF UL-256QAM-perCC-Info-r14 OPTIONAL, + retuningTimeInfoBandList-r14 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + RetuningTimeInfo-r14 OPTIONAL +} + +BandParameters-v1450 ::= SEQUENCE { + must-CapabilityPerBand-r14 MUST-Parameters-r14 OPTIONAL +} + +BandParameters-v1470 ::= SEQUENCE { + bandParametersDL-v1470 MIMO-CA-ParametersPerBoBC-v1470 OPTIONAL +} + +V2X-BandParameters-r14 ::= SEQUENCE { + v2x-FreqBandEUTRA-r14 FreqBandIndicator-r11, + bandParametersTxSL-r14 BandParametersTxSL-r14 OPTIONAL, + bandParametersRxSL-r14 BandParametersRxSL-r14 OPTIONAL +} + +BandParametersTxSL-r14 ::= SEQUENCE { + v2x-BandwidthClassTxSL-r14 V2X-BandwidthClassSL-r14, + v2x-eNB-Scheduled-r14 ENUMERATED {supported} OPTIONAL, + v2x-HighPower-r14 ENUMERATED {supported} OPTIONAL +} + +BandParametersRxSL-r14 ::= SEQUENCE { + v2x-BandwidthClassRxSL-r14 V2X-BandwidthClassSL-r14, + v2x-HighReception-r14 ENUMERATED {supported} OPTIONAL +} + +V2X-BandwidthClassSL-r14 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF V2X-BandwidthClass-r14 + +UL-256QAM-perCC-Info-r14 ::= SEQUENCE { + ul-256QAM-perCC-r14 ENUMERATED {supported} OPTIONAL +} + +BandParametersUL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersUL-r10 + +BandParametersUL-r13 ::= CA-MIMO-ParametersUL-r10 + +CA-MIMO-ParametersUL-r10 ::= SEQUENCE { + ca-BandwidthClassUL-r10 CA-BandwidthClass-r10, + supportedMIMO-CapabilityUL-r10 MIMO-CapabilityUL-r10 OPTIONAL +} + +BandParametersDL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-r10 + +BandParametersDL-r13 ::= CA-MIMO-ParametersDL-r13 + +CA-MIMO-ParametersDL-r10 ::= SEQUENCE { + ca-BandwidthClassDL-r10 CA-BandwidthClass-r10, + supportedMIMO-CapabilityDL-r10 MIMO-CapabilityDL-r10 OPTIONAL +} + +CA-MIMO-ParametersDL-v10i0 ::= SEQUENCE { + fourLayerTM3-TM4-r10 ENUMERATED {supported} OPTIONAL +} + +CA-MIMO-ParametersDL-v1270 ::= SEQUENCE { + intraBandContiguousCC-InfoList-r12 SEQUENCE (SIZE (1..maxServCell-r10)) OF IntraBandContiguousCC-Info-r12 +} + +CA-MIMO-ParametersDL-r13 ::= SEQUENCE { + ca-BandwidthClassDL-r13 CA-BandwidthClass-r10, + supportedMIMO-CapabilityDL-r13 MIMO-CapabilityDL-r10 OPTIONAL, + fourLayerTM3-TM4-r13 ENUMERATED {supported} OPTIONAL, + intraBandContiguousCC-InfoList-r13 SEQUENCE (SIZE (1..maxServCell-r13)) OF IntraBandContiguousCC-Info-r12 +} + +IntraBandContiguousCC-Info-r12 ::= SEQUENCE { + fourLayerTM3-TM4-perCC-r12 ENUMERATED {supported} OPTIONAL, + supportedMIMO-CapabilityDL-r12 MIMO-CapabilityDL-r10 OPTIONAL, + supportedCSI-Proc-r12 ENUMERATED {n1, n3, n4} OPTIONAL +} + +CA-BandwidthClass-r10 ::= ENUMERATED {a, b, c, d, e, f, ...} + +V2X-BandwidthClass-r14 ::= ENUMERATED {a, b, c, d, e, f, ...} + +MIMO-CapabilityUL-r10 ::= ENUMERATED {twoLayers, fourLayers} + +MIMO-CapabilityDL-r10 ::= ENUMERATED {twoLayers, fourLayers, eightLayers} + +MUST-Parameters-r14 ::= SEQUENCE { + must-TM234-UpTo2Tx-r14 ENUMERATED {supported} OPTIONAL, + must-TM89-UpToOneInterferingLayer-r14 ENUMERATED {supported} OPTIONAL, + must-TM10-UpToOneInterferingLayer-r14 ENUMERATED {supported} OPTIONAL, + must-TM89-UpToThreeInterferingLayers-r14 ENUMERATED {supported} OPTIONAL, + must-TM10-UpToThreeInterferingLayers-r14 ENUMERATED {supported} OPTIONAL +} + +SupportedBandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA + +SupportedBandListEUTRA-v9e0::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v9e0 + +SupportedBandListEUTRA-v1250 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1250 + +SupportedBandListEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1310 + +SupportedBandListEUTRA-v1320 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1320 + +SupportedBandEUTRA ::= SEQUENCE { + bandEUTRA FreqBandIndicator, + halfDuplex BOOLEAN +} + +SupportedBandEUTRA-v9e0 ::= SEQUENCE { + bandEUTRA-v9e0 FreqBandIndicator-v9e0 OPTIONAL +} + +SupportedBandEUTRA-v1250 ::= SEQUENCE { + dl-256QAM-r12 ENUMERATED {supported} OPTIONAL, + ul-64QAM-r12 ENUMERATED {supported} OPTIONAL +} + +SupportedBandEUTRA-v1310 ::= SEQUENCE { + ue-PowerClass-5-r13 ENUMERATED {supported} OPTIONAL +} +SupportedBandEUTRA-v1320 ::= SEQUENCE { + intraFreq-CE-NeedForGaps-r13 ENUMERATED {supported} OPTIONAL, + ue-PowerClass-N-r13 ENUMERATED {class1, class2, class4} OPTIONAL +} + +MeasParameters ::= SEQUENCE { + bandListEUTRA BandListEUTRA +} + +MeasParameters-v1020 ::= SEQUENCE { + bandCombinationListEUTRA-r10 BandCombinationListEUTRA-r10 +} + +MeasParameters-v1130 ::= SEQUENCE { + rsrqMeasWideband-r11 ENUMERATED {supported} OPTIONAL +} + +MeasParameters-v11a0 ::= SEQUENCE { + benefitsFromInterruption-r11 ENUMERATED {true} OPTIONAL +} + +MeasParameters-v1250 ::= SEQUENCE { + timerT312-r12 ENUMERATED {supported} OPTIONAL, + alternativeTimeToTrigger-r12 ENUMERATED {supported} OPTIONAL, + incMonEUTRA-r12 ENUMERATED {supported} OPTIONAL, + incMonUTRA-r12 ENUMERATED {supported} OPTIONAL, + extendedMaxMeasId-r12 ENUMERATED {supported} OPTIONAL, + extendedRSRQ-LowerRange-r12 ENUMERATED {supported} OPTIONAL, + rsrq-OnAllSymbols-r12 ENUMERATED {supported} OPTIONAL, + crs-DiscoverySignalsMeas-r12 ENUMERATED {supported} OPTIONAL, + csi-RS-DiscoverySignalsMeas-r12 ENUMERATED {supported} OPTIONAL +} + +MeasParameters-v1310 ::= SEQUENCE { + rs-SINR-Meas-r13 ENUMERATED {supported} OPTIONAL, + whiteCellList-r13 ENUMERATED {supported} OPTIONAL, + extendedMaxObjectId-r13 ENUMERATED {supported} OPTIONAL, + ul-PDCP-Delay-r13 ENUMERATED {supported} OPTIONAL, + extendedFreqPriorities-r13 ENUMERATED {supported} OPTIONAL, + multiBandInfoReport-r13 ENUMERATED {supported} OPTIONAL, + rssi-AndChannelOccupancyReporting-r13 ENUMERATED {supported} OPTIONAL +} + +MeasParameters-v1430 ::= SEQUENCE { + ceMeasurements-r14 ENUMERATED {supported} OPTIONAL, + ncsg-r14 ENUMERATED {supported} OPTIONAL, + shortMeasurementGap-r14 ENUMERATED {supported} OPTIONAL, + perServingCellMeasurementGap-r14 ENUMERATED {supported} OPTIONAL, + nonUniformGap-r14 ENUMERATED {supported} OPTIONAL +} + +BandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF BandInfoEUTRA + +BandCombinationListEUTRA-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandInfoEUTRA + +BandInfoEUTRA ::= SEQUENCE { + interFreqBandList InterFreqBandList, + interRAT-BandList InterRAT-BandList OPTIONAL +} + +InterFreqBandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterFreqBandInfo + +InterFreqBandInfo ::= SEQUENCE { + interFreqNeedForGaps BOOLEAN +} + +InterRAT-BandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterRAT-BandInfo + +InterRAT-BandInfo ::= SEQUENCE { + interRAT-NeedForGaps BOOLEAN +} + +IRAT-ParametersUTRA-FDD ::= SEQUENCE { + supportedBandListUTRA-FDD SupportedBandListUTRA-FDD +} + +IRAT-ParametersUTRA-v920 ::= SEQUENCE { + e-RedirectionUTRA-r9 ENUMERATED {supported} +} + +IRAT-ParametersUTRA-v9c0 ::= SEQUENCE { + voiceOverPS-HS-UTRA-FDD-r9 ENUMERATED {supported} OPTIONAL, + voiceOverPS-HS-UTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-FDD-ToUTRA-FDD-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-FDD-ToGERAN-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-TDD128-ToUTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-TDD128-ToGERAN-r9 ENUMERATED {supported} OPTIONAL +} + +IRAT-ParametersUTRA-v9h0 ::= SEQUENCE { + mfbi-UTRA-r9 ENUMERATED {supported} +} + +SupportedBandListUTRA-FDD ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-FDD + +SupportedBandUTRA-FDD ::= ENUMERATED { + bandI, bandII, bandIII, bandIV, bandV, bandVI, + bandVII, bandVIII, bandIX, bandX, bandXI, + bandXII, bandXIII, bandXIV, bandXV, bandXVI, ..., + bandXVII-8a0, bandXVIII-8a0, bandXIX-8a0, bandXX-8a0, + bandXXI-8a0, bandXXII-8a0, bandXXIII-8a0, bandXXIV-8a0, + bandXXV-8a0, bandXXVI-8a0, bandXXVII-8a0, bandXXVIII-8a0, + bandXXIX-8a0, bandXXX-8a0, bandXXXI-8a0, bandXXXII-8a0} + +IRAT-ParametersUTRA-TDD128 ::= SEQUENCE { + supportedBandListUTRA-TDD128 SupportedBandListUTRA-TDD128 +} + +SupportedBandListUTRA-TDD128 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD128 + +SupportedBandUTRA-TDD128 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD384 ::= SEQUENCE { + supportedBandListUTRA-TDD384 SupportedBandListUTRA-TDD384 +} + +SupportedBandListUTRA-TDD384 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD384 + +SupportedBandUTRA-TDD384 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD768 ::= SEQUENCE { + supportedBandListUTRA-TDD768 SupportedBandListUTRA-TDD768 +} + +SupportedBandListUTRA-TDD768 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD768 + +SupportedBandUTRA-TDD768 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD-v1020 ::= SEQUENCE { + e-RedirectionUTRA-TDD-r10 ENUMERATED {supported} +} + +IRAT-ParametersGERAN ::= SEQUENCE { + supportedBandListGERAN SupportedBandListGERAN, + interRAT-PS-HO-ToGERAN BOOLEAN +} + +IRAT-ParametersGERAN-v920 ::= SEQUENCE { + dtm-r9 ENUMERATED {supported} OPTIONAL, + e-RedirectionGERAN-r9 ENUMERATED {supported} OPTIONAL +} + +SupportedBandListGERAN ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandGERAN + +SupportedBandGERAN ::= ENUMERATED { + gsm450, gsm480, gsm710, gsm750, gsm810, gsm850, + gsm900P, gsm900E, gsm900R, gsm1800, gsm1900, + spare5, spare4, spare3, spare2, spare1, ...} + +IRAT-ParametersCDMA2000-HRPD ::= SEQUENCE { + supportedBandListHRPD SupportedBandListHRPD, + tx-ConfigHRPD ENUMERATED {single, dual}, + rx-ConfigHRPD ENUMERATED {single, dual} +} + +SupportedBandListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + +IRAT-ParametersCDMA2000-1XRTT ::= SEQUENCE { + supportedBandList1XRTT SupportedBandList1XRTT, + tx-Config1XRTT ENUMERATED {single, dual}, + rx-Config1XRTT ENUMERATED {single, dual} +} + +IRAT-ParametersCDMA2000-1XRTT-v920 ::= SEQUENCE { + e-CSFB-1XRTT-r9 ENUMERATED {supported}, + e-CSFB-ConcPS-Mob1XRTT-r9 ENUMERATED {supported} OPTIONAL +} + +IRAT-ParametersCDMA2000-1XRTT-v1020 ::= SEQUENCE { + e-CSFB-dual-1XRTT-r10 ENUMERATED {supported} +} + +IRAT-ParametersCDMA2000-v1130 ::= SEQUENCE { + cdma2000-NW-Sharing-r11 ENUMERATED {supported} OPTIONAL +} + +SupportedBandList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + +IRAT-ParametersWLAN-r13 ::= SEQUENCE { + supportedBandListWLAN-r13 SEQUENCE (SIZE (1..maxWLAN-Bands-r13)) OF WLAN-BandIndicator-r13 OPTIONAL +} + +CSG-ProximityIndicationParameters-r9 ::= SEQUENCE { + intraFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL, + interFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL, + utran-ProximityIndication-r9 ENUMERATED {supported} OPTIONAL +} + +NeighCellSI-AcquisitionParameters-r9 ::= SEQUENCE { + intraFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL, + interFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL, + utran-SI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL +} + +SON-Parameters-r9 ::= SEQUENCE { + rach-Report-r9 ENUMERATED {supported} OPTIONAL +} + +UE-BasedNetwPerfMeasParameters-r10 ::= SEQUENCE { + loggedMeasurementsIdle-r10 ENUMERATED {supported} OPTIONAL, + standaloneGNSS-Location-r10 ENUMERATED {supported} OPTIONAL +} + +UE-BasedNetwPerfMeasParameters-v1250 ::= SEQUENCE { + loggedMBSFNMeasurements-r12 ENUMERATED {supported} +} + +UE-BasedNetwPerfMeasParameters-v1430 ::= SEQUENCE { + locationReport-r14 ENUMERATED {supported} OPTIONAL +} + +OTDOA-PositioningCapabilities-r10 ::= SEQUENCE { + otdoa-UE-Assisted-r10 ENUMERATED {supported}, + interFreqRSTD-Measurement-r10 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-r11 ::= SEQUENCE { + inDeviceCoexInd-r11 ENUMERATED {supported} OPTIONAL, + powerPrefInd-r11 ENUMERATED {supported} OPTIONAL, + ue-Rx-TxTimeDiffMeasurements-r11 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v11d0 ::= SEQUENCE { + inDeviceCoexInd-UL-CA-r11 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v1360 ::= SEQUENCE { + inDeviceCoexInd-HardwareSharingInd-r13 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v1430 ::= SEQUENCE { + bwPrefInd-r14 ENUMERATED {supported} OPTIONAL, + rlm-ReportSupport-r14 ENUMERATED {supported} OPTIONAL +} + +OtherParameters-v1450 ::= SEQUENCE { + overheatingInd-r14 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v1460 ::= SEQUENCE { + nonCSG-SI-Reporting-r14 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-r11 ::= SEQUENCE { + mbms-SCell-r11 ENUMERATED {supported} OPTIONAL, + mbms-NonServingCell-r11 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-v1250 ::= SEQUENCE { + mbms-AsyncDC-r12 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-v1430 ::= SEQUENCE { + fembmsDedicatedCell-r14 ENUMERATED {supported} OPTIONAL, + fembmsMixedCell-r14 ENUMERATED {supported} OPTIONAL, + subcarrierSpacingMBMS-khz7dot5-r14 ENUMERATED {supported} OPTIONAL, + subcarrierSpacingMBMS-khz1dot25-r14 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-v1470 ::= SEQUENCE { + mbms-MaxBW-r14 CHOICE { + implicitValue NULL, + explicitValue INTEGER(2..20) + }, + mbms-ScalingFactor1dot25-r14 ENUMERATED {n3, n6, n9, n12} OPTIONAL, + mbms-ScalingFactor7dot5-r14 ENUMERATED {n1, n2, n3, n4} OPTIONAL +} + +FeMBMS-Unicast-Parameters-r14 ::= SEQUENCE { + unicast-fembmsMixedSCell-r14 ENUMERATED {supported} OPTIONAL, + emptyUnicastRegion-r14 ENUMERATED {supported} OPTIONAL +} + +SCPTM-Parameters-r13 ::= SEQUENCE { + scptm-ParallelReception-r13 ENUMERATED {supported} OPTIONAL, + scptm-SCell-r13 ENUMERATED {supported} OPTIONAL, + scptm-NonServingCell-r13 ENUMERATED {supported} OPTIONAL, + scptm-AsyncDC-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-r13 ::= SEQUENCE { + ce-ModeA-r13 ENUMERATED {supported} OPTIONAL, + ce-ModeB-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1320 ::= SEQUENCE { + intraFreqA3-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL, + intraFreqA3-CE-ModeB-r13 ENUMERATED {supported} OPTIONAL, + intraFreqHO-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL, + intraFreqHO-CE-ModeB-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1350 ::= SEQUENCE { + unicastFrequencyHopping-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1370 ::= SEQUENCE { + tm9-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL, + tm9-CE-ModeB-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1380 ::= SEQUENCE { + tm6-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1430 ::= SEQUENCE { + ce-SwitchWithoutHO-r14 ENUMERATED {supported} OPTIONAL +} + +LAA-Parameters-r13 ::= SEQUENCE { + crossCarrierSchedulingLAA-DL-r13 ENUMERATED {supported} OPTIONAL, + csi-RS-DRS-RRM-MeasurementsLAA-r13 ENUMERATED {supported} OPTIONAL, + downlinkLAA-r13 ENUMERATED {supported} OPTIONAL, + endingDwPTS-r13 ENUMERATED {supported} OPTIONAL, + secondSlotStartingPosition-r13 ENUMERATED {supported} OPTIONAL, + tm9-LAA-r13 ENUMERATED {supported} OPTIONAL, + tm10-LAA-r13 ENUMERATED {supported} OPTIONAL +} + +LAA-Parameters-v1430 ::= SEQUENCE { + crossCarrierSchedulingLAA-UL-r14 ENUMERATED {supported} OPTIONAL, + uplinkLAA-r14 ENUMERATED {supported} OPTIONAL, + twoStepSchedulingTimingInfo-r14 ENUMERATED {nPlus1, nPlus2, nPlus3} OPTIONAL, + uss-BlindDecodingAdjustment-r14 ENUMERATED {supported} OPTIONAL, + uss-BlindDecodingReduction-r14 ENUMERATED {supported} OPTIONAL, + outOfSequenceGrantHandling-r14 ENUMERATED {supported} OPTIONAL +} + +WLAN-IW-Parameters-r12 ::= SEQUENCE { + wlan-IW-RAN-Rules-r12 ENUMERATED {supported} OPTIONAL, + wlan-IW-ANDSF-Policies-r12 ENUMERATED {supported} OPTIONAL +} + +LWA-Parameters-r13 ::= SEQUENCE { + lwa-r13 ENUMERATED {supported} OPTIONAL, + lwa-SplitBearer-r13 ENUMERATED {supported} OPTIONAL, + wlan-MAC-Address-r13 OCTET STRING (SIZE (6)) OPTIONAL, + lwa-BufferSize-r13 ENUMERATED {supported} OPTIONAL +} + +LWA-Parameters-v1430 ::= SEQUENCE { + lwa-HO-WithoutWT-Change-r14 ENUMERATED {supported} OPTIONAL, + lwa-UL-r14 ENUMERATED {supported} OPTIONAL, + wlan-PeriodicMeas-r14 ENUMERATED {supported} OPTIONAL, + wlan-ReportAnyWLAN-r14 ENUMERATED {supported} OPTIONAL, + wlan-SupportedDataRate-r14 INTEGER (1..2048) OPTIONAL +} + +LWA-Parameters-v1440 ::= SEQUENCE { + lwa-RLC-UM-r14 ENUMERATED {supported} OPTIONAL +} + +WLAN-IW-Parameters-v1310 ::= SEQUENCE { + rclwi-r13 ENUMERATED {supported} OPTIONAL +} + +LWIP-Parameters-r13 ::= SEQUENCE { + lwip-r13 ENUMERATED {supported} OPTIONAL +} + +LWIP-Parameters-v1430 ::= SEQUENCE { + lwip-Aggregation-DL-r14 ENUMERATED {supported} OPTIONAL, + lwip-Aggregation-UL-r14 ENUMERATED {supported} OPTIONAL +} + +NAICS-Capability-List-r12 ::= SEQUENCE (SIZE (1..maxNAICS-Entries-r12)) OF NAICS-Capability-Entry-r12 + + +NAICS-Capability-Entry-r12 ::= SEQUENCE { + numberOfNAICS-CapableCC-r12 INTEGER(1..5), + numberOfAggregatedPRB-r12 ENUMERATED { + n50, n75, n100, n125, n150, n175, + n200, n225, n250, n275, n300, n350, + n400, n450, n500, spare}, + ... +} + +SL-Parameters-r12 ::= SEQUENCE { + commSimultaneousTx-r12 ENUMERATED {supported} OPTIONAL, + commSupportedBands-r12 FreqBandIndicatorListEUTRA-r12 OPTIONAL, + discSupportedBands-r12 SupportedBandInfoList-r12 OPTIONAL, + discScheduledResourceAlloc-r12 ENUMERATED {supported} OPTIONAL, + disc-UE-SelectedResourceAlloc-r12 ENUMERATED {supported} OPTIONAL, + disc-SLSS-r12 ENUMERATED {supported} OPTIONAL, + discSupportedProc-r12 ENUMERATED {n50, n400} OPTIONAL +} + +SL-Parameters-v1310 ::= SEQUENCE { + discSysInfoReporting-r13 ENUMERATED {supported} OPTIONAL, + commMultipleTx-r13 ENUMERATED {supported} OPTIONAL, + discInterFreqTx-r13 ENUMERATED {supported} OPTIONAL, + discPeriodicSLSS-r13 ENUMERATED {supported} OPTIONAL +} + +SL-Parameters-v1430 ::= SEQUENCE { + zoneBasedPoolSelection-r14 ENUMERATED {supported} OPTIONAL, + ue-AutonomousWithFullSensing-r14 ENUMERATED {supported} OPTIONAL, + ue-AutonomousWithPartialSensing-r14 ENUMERATED {supported} OPTIONAL, + sl-CongestionControl-r14 ENUMERATED {supported} OPTIONAL, + v2x-TxWithShortResvInterval-r14 ENUMERATED {supported} OPTIONAL, + v2x-numberTxRxTiming-r14 INTEGER(1..16) OPTIONAL, + v2x-nonAdjacentPSCCH-PSSCH-r14 ENUMERATED {supported} OPTIONAL, + slss-TxRx-r14 ENUMERATED {supported} OPTIONAL, + v2x-SupportedBandCombinationList-r14 V2X-SupportedBandCombination-r14 OPTIONAL +} + +V2X-SupportedBandCombination-r14 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF V2X-BandCombinationParameters-r14 + +V2X-BandCombinationParameters-r14 ::= SEQUENCE (SIZE (1.. maxSimultaneousBands-r10)) OF V2X-BandParameters-r14 + +SupportedBandInfoList-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandInfo-r12 + +SupportedBandInfo-r12 ::= SEQUENCE { + support-r12 ENUMERATED {supported} OPTIONAL +} + +FreqBandIndicatorListEUTRA-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicator-r11 + +MMTEL-Parameters-r14 ::= SEQUENCE { + delayBudgetReporting-r14 ENUMERATED {supported} OPTIONAL, + pusch-Enhancements-r14 ENUMERATED {supported} OPTIONAL, + recommendedBitRate-r14 ENUMERATED {supported} OPTIONAL, + recommendedBitRateQuery-r14 ENUMERATED {supported} OPTIONAL +} + +RetuningTimeInfo-r14 ::= SEQUENCE { + retuningInfo SEQUENCE { + rf-RetuningTimeDL-r14 ENUMERATED {n0, n0dot5, n1, n1dot5, n2, n2dot5, n3, + n3dot5, n4, n4dot5, n5, n5dot5, n6, n6dot5, + n7, spare1} OPTIONAL, + rf-RetuningTimeUL-r14 ENUMERATED {n0, n0dot5, n1, n1dot5, n2, n2dot5, n3, + n3dot5, n4, n4dot5, n5, n5dot5, n6, n6dot5, + n7, spare1} OPTIONAL + } +} + +HighSpeedEnhParameters-r14 ::= SEQUENCE { + measurementEnhancements-r14 ENUMERATED {supported} OPTIONAL, + demodulationEnhancements-r14 ENUMERATED {supported} OPTIONAL, + prach-Enhancements-r14 ENUMERATED {supported} OPTIONAL +} + + +UE-RadioPagingInfo-r12 ::= SEQUENCE { + ue-Category-v1250 INTEGER (0) OPTIONAL, + ..., + [[ ue-CategoryDL-v1310 ENUMERATED {m1} OPTIONAL, + ce-ModeA-r13 ENUMERATED {true} OPTIONAL, + ce-ModeB-r13 ENUMERATED {true} OPTIONAL + ]] +} + + +UE-TimersAndConstants ::= SEQUENCE { + t300 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t301 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t310 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n310 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ..., + [[ t300-v1310 ENUMERATED { + ms2500, ms3000, ms3500, ms4000, ms5000, ms6000, ms8000, + ms10000} OPTIONAL, -- Need OR + t301-v1310 ENUMERATED { + ms2500, ms3000, ms3500, ms4000, ms5000, ms6000, ms8000, + ms10000} OPTIONAL -- Need OR + ]], + [[ t310-v1330 ENUMERATED {ms4000, ms6000} + OPTIONAL -- Need OR + ]] +} + + +VisitedCellInfoList-r12 ::= SEQUENCE (SIZE (1..maxCellHistory-r12)) OF VisitedCellInfo-r12 + +VisitedCellInfo-r12 ::= SEQUENCE { + visitedCellId-r12 CHOICE { + cellGlobalId-r12 CellGlobalIdEUTRA, + pci-arfcn-r12 SEQUENCE { + physCellId-r12 PhysCellId, + carrierFreq-r12 ARFCN-ValueEUTRA-r9 + } + } OPTIONAL, + timeSpent-r12 INTEGER (0..4095), + ... +} + + +WLAN-OffloadConfig-r12 ::= SEQUENCE { + thresholdRSRP-r12 SEQUENCE { + thresholdRSRP-Low-r12 RSRP-Range, + thresholdRSRP-High-r12 RSRP-Range + } OPTIONAL, -- Need OR + thresholdRSRQ-r12 SEQUENCE { + thresholdRSRQ-Low-r12 RSRQ-Range, + thresholdRSRQ-High-r12 RSRQ-Range + } OPTIONAL, -- Need OR + thresholdRSRQ-OnAllSymbolsWithWB-r12 SEQUENCE { + thresholdRSRQ-OnAllSymbolsWithWB-Low-r12 RSRQ-Range, + thresholdRSRQ-OnAllSymbolsWithWB-High-r12 RSRQ-Range + } OPTIONAL, -- Need OP + thresholdRSRQ-OnAllSymbols-r12 SEQUENCE { + thresholdRSRQ-OnAllSymbolsLow-r12 RSRQ-Range, + thresholdRSRQ-OnAllSymbolsHigh-r12 RSRQ-Range + } OPTIONAL, -- Need OP + thresholdRSRQ-WB-r12 SEQUENCE { + thresholdRSRQ-WB-Low-r12 RSRQ-Range, + thresholdRSRQ-WB-High-r12 RSRQ-Range + } OPTIONAL, -- Need OP + + thresholdChannelUtilization-r12 SEQUENCE { + thresholdChannelUtilizationLow-r12 INTEGER (0..255), + thresholdChannelUtilizationHigh-r12 INTEGER (0..255) + } OPTIONAL, -- Need OR + thresholdBackhaul-Bandwidth-r12 SEQUENCE { + thresholdBackhaulDL-BandwidthLow-r12 WLAN-backhaulRate-r12, + thresholdBackhaulDL-BandwidthHigh-r12 WLAN-backhaulRate-r12, + thresholdBackhaulUL-BandwidthLow-r12 WLAN-backhaulRate-r12, + thresholdBackhaulUL-BandwidthHigh-r12 WLAN-backhaulRate-r12 + } OPTIONAL, -- Need OR + thresholdWLAN-RSSI-r12 SEQUENCE { + thresholdWLAN-RSSI-Low-r12 INTEGER (0..255), + thresholdWLAN-RSSI-High-r12 INTEGER (0..255) + } OPTIONAL, -- Need OR + offloadPreferenceIndicator-r12 BIT STRING (SIZE (16)) OPTIONAL, -- Need OR + t-SteeringWLAN-r12 T-Reselection OPTIONAL, -- Need OR + ... +} + +WLAN-backhaulRate-r12 ::= ENUMERATED + {r0, r4, r8, r16, r32, r64, r128, r256, r512, + r1024, r2048, r4096, r8192, r16384, r32768, r65536, r131072, + r262144, r524288, r1048576, r2097152, r4194304, r8388608, + r16777216, r33554432, r67108864, r134217728, r268435456, + r536870912, r1073741824, r2147483648, r4294967296} + + +MBMS-NotificationConfig-r9 ::= SEQUENCE { + notificationRepetitionCoeff-r9 ENUMERATED {n2, n4}, + notificationOffset-r9 INTEGER (0..10), + notificationSF-Index-r9 INTEGER (1..6) +} + +MBMS-NotificationConfig-v1430 ::= SEQUENCE { + notificationSF-Index-v1430 INTEGER (7..10) +} + + +MBMS-ServiceList-r13 ::= SEQUENCE (SIZE (0..maxMBMS-ServiceListPerUE-r13)) OF MBMS-ServiceInfo-r13 + +MBMS-ServiceInfo-r13 ::= SEQUENCE { + tmgi-r13 TMGI-r9 +} + + +MBSFN-AreaId-r12 ::= INTEGER (0..255) + + +MBSFN-AreaInfoList-r9 ::= SEQUENCE (SIZE(1..maxMBSFN-Area)) OF MBSFN-AreaInfo-r9 + +MBSFN-AreaInfo-r9 ::= SEQUENCE { + mbsfn-AreaId-r9 MBSFN-AreaId-r12, + non-MBSFNregionLength ENUMERATED {s1, s2}, + notificationIndicator-r9 INTEGER (0..7), + mcch-Config-r9 SEQUENCE { + mcch-RepetitionPeriod-r9 ENUMERATED {rf32, rf64, rf128, rf256}, + mcch-Offset-r9 INTEGER (0..10), + mcch-ModificationPeriod-r9 ENUMERATED {rf512, rf1024}, + sf-AllocInfo-r9 BIT STRING (SIZE(6)), + signallingMCS-r9 ENUMERATED {n2, n7, n13, n19} + }, + ..., + [[ mcch-Config-r14 SEQUENCE { + mcch-RepetitionPeriod-v1430 ENUMERATED {rf1, rf2, rf4, rf8, + rf16 } OPTIONAL, -- Need OR + mcch-ModificationPeriod-v1430 ENUMERATED {rf1, rf2, rf4, rf8, rf16, rf32, rf64, rf128, + rf256, spare7} OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + subcarrierSpacingMBMS-r14 ENUMERATED {khz-7dot5, khz-1dot25} OPTIONAL -- Need OR + ]] +} + + +MBSFN-SubframeConfig ::= SEQUENCE { + radioframeAllocationPeriod ENUMERATED {n1, n2, n4, n8, n16, n32}, + radioframeAllocationOffset INTEGER (0..7), + subframeAllocation CHOICE { + oneFrame BIT STRING (SIZE(6)), + fourFrames BIT STRING (SIZE(24)) + } +} + +MBSFN-SubframeConfig-v1430 ::= SEQUENCE { + subframeAllocation-v1430 CHOICE { + oneFrame-v1430 BIT STRING (SIZE(2)), + fourFrames-v1430 BIT STRING (SIZE(8)) + } +} + + +PMCH-InfoList-r9 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-Info-r9 + +PMCH-InfoListExt-r12 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-InfoExt-r12 + +PMCH-Info-r9 ::= SEQUENCE { + pmch-Config-r9 PMCH-Config-r9, + mbms-SessionInfoList-r9 MBMS-SessionInfoList-r9, + ... +} + +PMCH-InfoExt-r12 ::= SEQUENCE { + pmch-Config-r12 PMCH-Config-r12, + mbms-SessionInfoList-r12 MBMS-SessionInfoList-r9, + ... +} + +MBMS-SessionInfoList-r9 ::= SEQUENCE (SIZE (0..maxSessionPerPMCH)) OF MBMS-SessionInfo-r9 + +MBMS-SessionInfo-r9 ::= SEQUENCE { + tmgi-r9 TMGI-r9, + sessionId-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Need OR + logicalChannelIdentity-r9 INTEGER (0..maxSessionPerPMCH-1), + ... +} + +PMCH-Config-r9 ::= SEQUENCE { + sf-AllocEnd-r9 INTEGER (0..1535), + dataMCS-r9 INTEGER (0..28), + mch-SchedulingPeriod-r9 ENUMERATED { + rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024}, + ... +} + +PMCH-Config-r12 ::= SEQUENCE { + sf-AllocEnd-r12 INTEGER (0..1535), + dataMCS-r12 CHOICE { + normal-r12 INTEGER (0..28), + higerOrder-r12 INTEGER (0..27) + }, + mch-SchedulingPeriod-r12 ENUMERATED { + rf4, rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024}, + ..., + [[ mch-SchedulingPeriod-v1430 ENUMERATED {rf1, rf2} OPTIONAL -- Need OR + ]] +} + +TMGI-r9 ::= SEQUENCE { + plmn-Id-r9 CHOICE { + plmn-Index-r9 INTEGER (1..maxPLMN-r11), + explicitValue-r9 PLMN-Identity + }, + serviceId-r9 OCTET STRING (SIZE (3)) +} + + +SC-MTCH-InfoList-r13 ::= SEQUENCE (SIZE (0..maxSC-MTCH-r13)) OF SC-MTCH-Info-r13 + +SC-MTCH-Info-r13 ::= SEQUENCE { + mbmsSessionInfo-r13 MBMSSessionInfo-r13, + g-RNTI-r13 BIT STRING(SIZE(16)), + sc-mtch-schedulingInfo-r13 SC-MTCH-SchedulingInfo-r13 OPTIONAL, -- Need OP + sc-mtch-neighbourCell-r13 BIT STRING (SIZE(maxNeighCell-SCPTM-r13)) OPTIONAL, -- Need OP + ..., + [[ p-a-r13 ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} OPTIONAL -- Need ON + ]] +} + +MBMSSessionInfo-r13 ::= SEQUENCE { + tmgi-r13 TMGI-r9, + sessionId-r13 OCTET STRING (SIZE (1)) OPTIONAL -- Need OR +} + +SC-MTCH-SchedulingInfo-r13::= SEQUENCE { + onDurationTimerSCPTM-r13 ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200}, + drx-InactivityTimerSCPTM-r13 ENUMERATED { + psf0, psf1, psf2, psf4, psf8, + psf10, psf20, psf40, + psf80, psf160, ps320, + psf640, psf960, + psf1280, psf1920, psf2560}, + schedulingPeriodStartOffsetSCPTM-r13 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2048), + sf4096 INTEGER(0..4096), + sf8192 INTEGER(0..8192) + }, + ... +} + + +SC-MTCH-InfoList-BR-r14 ::= SEQUENCE (SIZE (0..maxSC-MTCH-BR-r14)) OF SC-MTCH-Info-BR-r14 + +SC-MTCH-Info-BR-r14 ::= SEQUENCE { + sc-mtch-CarrierFreq-r14 ARFCN-ValueEUTRA-r9, + mbmsSessionInfo-r14 MBMSSessionInfo-r13, + g-RNTI-r14 BIT STRING(SIZE(16)), + sc-mtch-schedulingInfo-r14 SC-MTCH-SchedulingInfo-BR-r14 OPTIONAL, -- Need OP + sc-mtch-neighbourCell-r14 BIT STRING (SIZE(maxNeighCell-SCPTM-r13)) OPTIONAL, -- Need OP + mpdcch-Narrowband-SC-MTCH-r14 INTEGER (1.. maxAvailNarrowBands-r13), + mpdcch-NumRepetition-SC-MTCH-r14 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + mpdcch-StartSF-SC-MTCH-r14 CHOICE { + fdd-r14 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, + v5, v8, v10}, + tdd-r14 ENUMERATED {v1, v2, v4, v5, v8, v10, + v20} + }, + mpdcch-PDSCH-HoppingConfig-SC-MTCH-r14 ENUMERATED {on, off}, + mpdcch-PDSCH-CEmodeConfig-SC-MTCH-r14 ENUMERATED {ce-ModeA, ce-ModeB}, + mpdcch-PDSCH-MaxBandwidth-SC-MTCH-r14 ENUMERATED {bw1dot4, bw5}, + mpdcch-Offset-SC-MTCH-r14 ENUMERATED {zero, oneEighth, oneQuarter, + threeEighth, oneHalf, fiveEighth, + threeQuarter, sevenEighth}, + + p-a-r14 ENUMERATED { dB-6, dB-4dot77, dB-3, + dB-1dot77, dB0, dB1, dB2, + dB3} OPTIONAL,-- Need OR + ... +} + +SC-MTCH-SchedulingInfo-BR-r14::= SEQUENCE { + onDurationTimerSCPTM-r14 ENUMERATED { + psf300, psf400, psf500, psf600, + psf800, psf1000, psf1200, psf1600}, + drx-InactivityTimerSCPTM-r14 ENUMERATED { + psf0, psf1, psf2, psf4, psf8, psf16, + psf32, psf64, psf128, psf256, ps512, + psf1024, psf2048, psf4096, psf8192, psf16384}, + schedulingPeriodStartOffsetSCPTM-r14 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2047), + sf4096 INTEGER(0..4095), + sf8192 INTEGER(0..8191) + }, + ... +} + + +SCPTM-NeighbourCellList-r13 ::= SEQUENCE (SIZE (1..maxNeighCell-SCPTM-r13)) OF PCI-ARFCN-r13 + +PCI-ARFCN-r13 ::= SEQUENCE { + physCellId-r13 PhysCellId, + carrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL +} + + +SL-AnchorCarrierFreqList-V2X-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF ARFCN-ValueEUTRA-r9 + + +SL-CBR-CommonTxConfigList-r14 ::= SEQUENCE { + cbr-RangeCommonConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-CBRConfig-r14)) OF SL-CBR-Levels-Config-r14, + sl-CBR-PSSCH-TxConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-TxConfig-r14)) OF SL-CBR-PSSCH-TxConfig-r14 +} + +SL-CBR-Levels-Config-r14 ::= SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF SL-CBR-r14 + + +SL-CBR-PSSCH-TxConfig-r14 ::= SEQUENCE { + cr-Limit-r14 INTEGER(0..10000), + tx-Parameters-r14 SL-PSSCH-TxParameters-r14 +} + +SL-CBR-r14 ::= INTEGER(0..100) + + +SL-CBR-PPPP-TxConfigList-r14 ::= SEQUENCE (SIZE (1..8)) OF SL-PPPP-TxConfigIndex-r14 + +SL-PPPP-TxConfigIndex-r14 ::= SEQUENCE { + priorityThreshold-r14 SL-Priority-r13, + defaultTxConfigIndex-r14 INTEGER(0..maxCBR-Level-1-r14), + cbr-ConfigIndex-r14 INTEGER(0..maxSL-V2X-CBRConfig-1-r14), + tx-ConfigIndexList-r14 SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF Tx-ConfigIndex-r14 +} + +Tx-ConfigIndex-r14 ::= INTEGER(0..maxSL-V2X-TxConfig-1-r14) + + +SL-CommConfig-r12 ::= SEQUENCE { + commTxResources-r12 CHOICE { + release NULL, + setup CHOICE { + scheduled-r12 SEQUENCE { + sl-RNTI-r12 C-RNTI, + mac-MainConfig-r12 MAC-MainConfigSL-r12, + sc-CommTxConfig-r12 SL-CommResourcePool-r12, + mcs-r12 INTEGER (0..28) OPTIONAL -- Need OP + }, + ue-Selected-r12 SEQUENCE { + -- Pool for normal usage + commTxPoolNormalDedicated-r12 SEQUENCE { + poolToReleaseList-r12 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r12 SL-CommTxPoolToAddModList-r12 OPTIONAL -- Need ON + } + } + } + } OPTIONAL, -- Need ON + ..., + [[ commTxResources-v1310 CHOICE { + release NULL, + setup CHOICE { + scheduled-v1310 SEQUENCE { + logicalChGroupInfoList-r13 LogicalChGroupInfoList-r13, + multipleTx-r13 BOOLEAN + }, + ue-Selected-v1310 SEQUENCE { + commTxPoolNormalDedicatedExt-r13 SEQUENCE { + poolToReleaseListExt-r13 SL-TxPoolToReleaseListExt-r13 OPTIONAL, -- Need ON + poolToAddModListExt-r13 SL-CommTxPoolToAddModListExt-r13 OPTIONAL -- Need ON + } + } + } + } OPTIONAL, -- Need ON + commTxAllowRelayDedicated-r13 BOOLEAN OPTIONAL -- Need ON + ]] +} + +LogicalChGroupInfoList-r13 ::= SEQUENCE (SIZE (1..maxLCG-r13)) OF SL-PriorityList-r13 + +SL-CommTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-CommTxPoolToAddMod-r12 + +SL-CommTxPoolToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF SL-CommTxPoolToAddModExt-r13 + +SL-CommTxPoolToAddMod-r12 ::= SEQUENCE { + poolIdentity-r12 SL-TxPoolIdentity-r12, + pool-r12 SL-CommResourcePool-r12 +} + +SL-CommTxPoolToAddModExt-r13 ::= SEQUENCE { + poolIdentity-v1310 SL-TxPoolIdentity-v1310, + pool-r13 SL-CommResourcePool-r12 +} + +MAC-MainConfigSL-r12 ::= SEQUENCE { + periodic-BSR-TimerSL PeriodicBSR-Timer-r12 OPTIONAL, -- Need ON + retx-BSR-TimerSL RetxBSR-Timer-r12 +} + + +SL-CommTxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-CommResourcePool-r12 + +SL-CommTxPoolListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF SL-CommResourcePool-r12 + +SL-CommTxPoolListV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-TxPool-r14)) OF SL-CommResourcePoolV2X-r14 + +SL-CommRxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-RxPool-r12)) OF SL-CommResourcePool-r12 + +SL-CommRxPoolListV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-RxPool-r14)) OF SL-CommResourcePoolV2X-r14 + +SL-CommResourcePool-r12 ::= SEQUENCE { + sc-CP-Len-r12 SL-CP-Len-r12, + sc-Period-r12 SL-PeriodComm-r12, + sc-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + data-CP-Len-r12 SL-CP-Len-r12, + dataHoppingConfig-r12 SL-HoppingConfigComm-r12, + ue-SelectedResourceConfig-r12 SEQUENCE { + data-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + trpt-Subset-r12 SL-TRPT-Subset-r12 OPTIONAL -- Need OP + } OPTIONAL, -- Need OR + rxParametersNCell-r12 SEQUENCE { + tdd-Config-r12 TDD-Config OPTIONAL, -- Need OP + syncConfigIndex-r12 INTEGER (0..15) + } OPTIONAL, -- Need OR + txParameters-r12 SEQUENCE { + sc-TxParameters-r12 SL-TxParameters-r12, + dataTxParameters-r12 SL-TxParameters-r12 + } OPTIONAL, -- Cond Tx + ..., + [[ priorityList-r13 SL-PriorityList-r13 OPTIONAL -- Cond Tx + ]] + +} + +SL-CommResourcePoolV2X-r14 ::= SEQUENCE { + sl-OffsetIndicator-r14 SL-OffsetIndicator-r12 OPTIONAL, -- Need OR + sl-Subframe-r14 SubframeBitmapSL-r14, + adjacencyPSCCH-PSSCH-r14 BOOLEAN, + sizeSubchannel-r14 ENUMERATED { + n4, n5, n6, n8, n9, n10, n12, n15, n16, n18, n20, n25, n30, + n48, n50, n72, n75, n96, n100, spare13, spare12, spare11, + spare10, spare9, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1}, + numSubchannel-r14 ENUMERATED {n1, n3, n5, n8, n10, n15, n20, spare1}, + startRB-Subchannel-r14 INTEGER (0..99), + startRB-PSCCH-Pool-r14 INTEGER (0..99) OPTIONAL, -- Need OR + rxParametersNCell-r14 SEQUENCE { + tdd-Config-r14 TDD-Config OPTIONAL, -- Need OP + syncConfigIndex-r14 INTEGER (0..15) + } OPTIONAL, -- Need OR + dataTxParameters-r14 SL-TxParameters-r12 OPTIONAL, -- Cond Tx + zoneID-r14 INTEGER (0..7) OPTIONAL, -- Need OR + threshS-RSSI-CBR-r14 INTEGER (0..45) OPTIONAL, -- Need OR + poolReportId-r14 SL-V2X-TxPoolReportIdentity-r14 OPTIONAL, -- Need OR + cbr-pssch-TxConfigList-r14 SL-CBR-PPPP-TxConfigList-r14 OPTIONAL, -- Need OR + resourceSelectionConfigP2X-r14 SL-P2X-ResourceSelectionConfig-r14 OPTIONAL, -- Cond P2X + syncAllowed-r14 SL-SyncAllowed-r14 OPTIONAL, -- Need OR + restrictResourceReservationPeriod-r14 SL-RestrictResourceReservationPeriodList-r14 OPTIONAL, -- Need OR + ... +} + +SL-TRPT-Subset-r12 ::= BIT STRING (SIZE (3..5)) + +SL-V2X-TxPoolReportIdentity-r14::= INTEGER (1..maxSL-PoolToMeasure-r14) + + +SL-CommTxPoolSensingConfig-r14 ::= SEQUENCE { + pssch-TxConfigList-r14 SL-PSSCH-TxConfigList-r14, + thresPSSCH-RSRP-List-r14 SL-ThresPSSCH-RSRP-List-r14, + restrictResourceReservationPeriod-r14 SL-RestrictResourceReservationPeriodList-r14 OPTIONAL, -- Need OR + probResourceKeep-r14 ENUMERATED {v0, v0dot2, v0dot4, v0dot6, v0dot8, + spare3,spare2, spare1}, + p2x-SensingConfig-r14 SEQUENCE { + minNumCandidateSF-r14 INTEGER (1..13), + gapCandidateSensing-r14 BIT STRING (SIZE (10)) + } OPTIONAL, -- Need OR + sl-ReselectAfter-r14 ENUMERATED {n1, n2, n3, n4, n5, n6, n7, n8, n9, + spare7, spare6, spare5, spare4, spare3, spare2, + spare1} OPTIONAL -- Need OR +} + + +SL-CP-Len-r12 ::= ENUMERATED {normal, extended} + + +SL-DiscConfig-r12 ::= SEQUENCE { + discTxResources-r12 CHOICE { + release NULL, + setup CHOICE { + scheduled-r12 SEQUENCE { + discTxConfig-r12 SL-DiscResourcePool-r12 OPTIONAL, -- Need ON + discTF-IndexList-r12 SL-TF-IndexPairList-r12 OPTIONAL, -- Need ON + discHoppingConfig-r12 SL-HoppingConfigDisc-r12 + OPTIONAL -- Need ON + }, + ue-Selected-r12 SEQUENCE { + discTxPoolDedicated-r12 SEQUENCE { + poolToReleaseList-r12 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r12 SL-DiscTxPoolToAddModList-r12 OPTIONAL -- Need ON + } OPTIONAL -- Need ON + } + } + } OPTIONAL, -- Need ON + ..., + [[ discTF-IndexList-v1260 CHOICE { + release NULL, + setup SEQUENCE { + discTF-IndexList-r12b SL-TF-IndexPairList-r12b + } + } OPTIONAL -- Need ON + ]], + [[ discTxResourcesPS-r13 CHOICE { + release NULL, + setup CHOICE { + scheduled-r13 SL-DiscTxConfigScheduled-r13, + ue-Selected-r13 SEQUENCE { + discTxPoolPS-Dedicated-r13 SL-DiscTxPoolDedicated-r13 + } + } + } OPTIONAL, -- Need ON + discTxInterFreqInfo-r13 CHOICE { + release NULL, + setup SEQUENCE { + discTxCarrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need OR + discTxRefCarrierDedicated-r13 SL-DiscTxRefCarrierDedicated-r13 OPTIONAL, -- Need OR + discTxInfoInterFreqListAdd-r13 SL-DiscTxInfoInterFreqListAdd-r13 OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + gapRequestsAllowedDedicated-r13 BOOLEAN OPTIONAL, -- Need ON + discRxGapConfig-r13 CHOICE { + release NULL, + setup SL-GapConfig-r13 + } OPTIONAL, -- Need ON + discTxGapConfig-r13 CHOICE { + release NULL, + setup SL-GapConfig-r13 + } OPTIONAL, -- Need ON + discSysInfoToReportConfig-r13 CHOICE { + release NULL, + setup SL-DiscSysInfoToReportFreqList-r13 + } OPTIONAL -- Need ON + ]] +} + +SL-DiscSysInfoToReportFreqList-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF ARFCN-ValueEUTRA-r9 + +SL-DiscTxInfoInterFreqListAdd-r13 ::= SEQUENCE { + discTxFreqToAddModList-r13 SEQUENCE (SIZE (1..maxFreq)) OF SL-DiscTxResourceInfoPerFreq-r13 OPTIONAL, -- Need ON + discTxFreqToReleaseList-r13 SEQUENCE (SIZE (1..maxFreq)) OF ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need ON + ... +} + +SL-DiscTxResourceInfoPerFreq-r13 ::= SEQUENCE { + discTxCarrierFreq-r13 ARFCN-ValueEUTRA-r9, + discTxResources-r13 SL-DiscTxResource-r13 OPTIONAL, -- Need OR + discTxResourcesPS-r13 SL-DiscTxResource-r13 OPTIONAL, -- Need OR + discTxRefCarrierDedicated-r13 SL-DiscTxRefCarrierDedicated-r13 OPTIONAL, -- Need OR + discCellSelectionInfo-r13 CellSelectionInfoNFreq-r13 OPTIONAL, -- Need OR + ... +} + +SL-DiscTxResource-r13 ::= CHOICE { + release NULL, + setup CHOICE { + scheduled-r13 SL-DiscTxConfigScheduled-r13, + ue-Selected-r13 SL-DiscTxPoolDedicated-r13 + } +} + +SL-DiscTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-DiscTxPoolToAddMod-r12 + +SL-DiscTxPoolToAddMod-r12 ::= SEQUENCE { + poolIdentity-r12 SL-TxPoolIdentity-r12, + pool-r12 SL-DiscResourcePool-r12 +} + +SL-DiscTxConfigScheduled-r13 ::= SEQUENCE { + discTxConfig-r13 SL-DiscResourcePool-r12 OPTIONAL, -- Need ON + discTF-IndexList-r13 SL-TF-IndexPairList-r12b OPTIONAL, -- Need ON + discHoppingConfig-r13 SL-HoppingConfigDisc-r12 OPTIONAL,-- Need ON + ... +} + +SL-DiscTxPoolDedicated-r13 ::= SEQUENCE { + poolToReleaseList-r13 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r13 SL-DiscTxPoolToAddModList-r12 OPTIONAL -- Need ON +} + +SL-TF-IndexPairList-r12 ::= SEQUENCE (SIZE (1..maxSL-TF-IndexPair-r12)) OF SL-TF-IndexPair-r12 + +SL-TF-IndexPair-r12 ::= SEQUENCE { + discSF-Index-r12 INTEGER (1.. 200) OPTIONAL, -- Need ON + discPRB-Index-r12 INTEGER (1.. 50) OPTIONAL -- Need ON +} + +SL-TF-IndexPairList-r12b ::= SEQUENCE (SIZE (1..maxSL-TF-IndexPair-r12)) OF SL-TF-IndexPair-r12b + +SL-TF-IndexPair-r12b ::= SEQUENCE { + discSF-Index-r12b INTEGER (0..209) OPTIONAL, -- Need ON + discPRB-Index-r12b INTEGER (0..49) OPTIONAL -- Need ON +} + +SL-DiscTxRefCarrierDedicated-r13 ::= CHOICE { + pCell NULL, + sCell SCellIndex-r10 +} + + +SL-DiscTxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-DiscResourcePool-r12 + +SL-DiscRxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-RxPool-r12)) OF SL-DiscResourcePool-r12 + +SL-DiscResourcePool-r12 ::= SEQUENCE { + cp-Len-r12 SL-CP-Len-r12, + discPeriod-r12 ENUMERATED {rf32, rf64, rf128, + rf256, rf512, rf1024, rf16-v1310, spare}, + numRetx-r12 INTEGER (0..3), + numRepetition-r12 INTEGER (1..50), + tf-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + txParameters-r12 SEQUENCE { + txParametersGeneral-r12 SL-TxParameters-r12, + ue-SelectedResourceConfig-r12 SEQUENCE { + poolSelection-r12 CHOICE { + rsrpBased-r12 SL-PoolSelectionConfig-r12, + random-r12 NULL + }, + txProbability-r12 ENUMERATED {p25, p50, p75, p100} + } OPTIONAL -- Need OR + } OPTIONAL, -- Cond Tx + rxParameters-r12 SEQUENCE { + tdd-Config-r12 TDD-Config OPTIONAL, -- Need OR + syncConfigIndex-r12 INTEGER (0..15) + } OPTIONAL, -- Need OR + ..., + [[ discPeriod-v1310 CHOICE { + release NULL, + setup ENUMERATED {rf4, rf6, rf7, rf8, + rf12, rf14, rf24, rf28} + } OPTIONAL, -- Need ON + rxParamsAddNeighFreq-r13 CHOICE { + release NULL, + setup SEQUENCE { + physCellId-r13 PhysCellIdList-r13 + } + } OPTIONAL, -- Need ON + txParamsAddNeighFreq-r13 CHOICE { + release NULL, + setup SEQUENCE { + physCellId-r13 PhysCellIdList-r13, + p-Max P-Max OPTIONAL, -- Need OP + tdd-Config-r13 TDD-Config OPTIONAL, -- Cond TDD-OR + tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD-OR + freqInfo SEQUENCE { + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission + }, + referenceSignalPower INTEGER (-60..50), + syncConfigIndex-r13 INTEGER (0..15) OPTIONAL -- Need OR + } + } OPTIONAL -- Need ON + ]], + [[ txParamsAddNeighFreq-v1370 CHOICE { + release NULL, + setup SEQUENCE { + freqInfo-v1370 SEQUENCE { + additionalSpectrumEmission-v1370 AdditionalSpectrumEmission-v10l0 + } + } + } OPTIONAL -- Need ON + ]] +} + +PhysCellIdList-r13 ::= SEQUENCE (SIZE (1.. maxSL-DiscCells-r13)) OF PhysCellId + +SL-PoolSelectionConfig-r12 ::= SEQUENCE { + threshLow-r12 RSRP-RangeSL2-r12, + threshHigh-r12 RSRP-RangeSL2-r12 +} + + +SL-DiscSysInfoReport-r13 ::= SEQUENCE { + plmn-IdentityList-r13 PLMN-IdentityList OPTIONAL, + cellIdentity-13 CellIdentity OPTIONAL, + carrierFreqInfo-13 ARFCN-ValueEUTRA-r9 OPTIONAL, + discRxResources-r13 SL-DiscRxPoolList-r12 OPTIONAL, + discTxPoolCommon-r13 SL-DiscTxPoolList-r12 OPTIONAL, + discTxPowerInfo-r13 SL-DiscTxPowerInfoList-r12 OPTIONAL, + discSyncConfig-r13 SL-SyncConfigNFreq-r13 OPTIONAL, + discCellSelectionInfo-r13 SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + q-RxLevMinOffset-r13 INTEGER (1..8) OPTIONAL + } OPTIONAL, + cellReselectionInfo-r13 SEQUENCE { + q-Hyst-r13 ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + q-RxLevMin-r13 Q-RxLevMin, + t-ReselectionEUTRA-r13 T-Reselection + } OPTIONAL, + tdd-Config-r13 TDD-Config OPTIONAL, + freqInfo-r13 SEQUENCE { + ul-CarrierFreq-r13 ARFCN-ValueEUTRA OPTIONAL, + ul-Bandwidth-r13 ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, + additionalSpectrumEmission-r13 AdditionalSpectrumEmission OPTIONAL + } OPTIONAL, + p-Max-r13 P-Max OPTIONAL, + referenceSignalPower-r13 INTEGER (-60..50) OPTIONAL, + ..., + [[ + freqInfo-v1370 SEQUENCE { + additionalSpectrumEmission-v1370 AdditionalSpectrumEmission-v10l0 + } OPTIONAL + ]] +} + + +SL-DiscTxPowerInfoList-r12 ::= SEQUENCE (SIZE (maxSL-DiscPowerClass-r12)) OF SL-DiscTxPowerInfo-r12 + +SL-DiscTxPowerInfo-r12 ::= SEQUENCE { + discMaxTxPower-r12 P-Max, + ... +} + + +SL-GapConfig-r13 ::= SEQUENCE { + gapPatternList-r13 SL-GapPatternList-r13 +} + +SL-GapPatternList-r13 ::= SEQUENCE (SIZE (1..maxSL-GP-r13)) OF SL-GapPattern-r13 + +SL-GapPattern-r13 ::= SEQUENCE { + gapPeriod-r13 ENUMERATED {sf40, sf60, sf70, sf80, sf120, sf140, sf160, + sf240, sf280, sf320, sf640, sf1280, sf2560, sf5120, + sf10240}, + gapOffset-r12 SL-OffsetIndicator-r12, + gapSubframeBitmap-r13 BIT STRING (SIZE (1..10240)), + ... +} + + +SL-GapRequest-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-GapFreqInfo-r13 + +SL-GapFreqInfo-r13 ::= SEQUENCE { + carrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL, + gapPatternList-r13 SL-GapPatternList-r13 +} + + +SL-HoppingConfigComm-r12 ::= SEQUENCE { + hoppingParameter-r12 INTEGER (0..504), + numSubbands-r12 ENUMERATED {ns1, ns2, ns4}, + rb-Offset-r12 INTEGER (0..110) +} + +SL-HoppingConfigDisc-r12 ::= SEQUENCE { + a-r12 INTEGER (1..200), + b-r12 INTEGER (1..10), + c-r12 ENUMERATED {n1, n5} +} + + +SL-InterFreqInfoListV2X-r14 ::= SEQUENCE (SIZE (0..maxFreqV2X-1-r14)) OF SL-InterFreqInfoV2X-r14 + +SL-InterFreqInfoV2X-r14 ::= SEQUENCE { + plmn-IdentityList-r14 PLMN-IdentityList OPTIONAL, -- Need OP + v2x-CommCarrierFreq-r14 ARFCN-ValueEUTRA-r9, + sl-MaxTxPower-r14 P-Max OPTIONAL, -- Need OR + sl-Bandwidth-r14 ENUMERATED {n6, n15, n25, n50, n75, n100} OPTIONAL, -- Need OR + v2x-SchedulingPool-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-UE-ConfigList-r14 SL-V2X-UE-ConfigList-r14 OPTIONAL, -- Need OR + ..., + [[ additionalSpectrumEmissionV2X-r14 CHOICE { + additionalSpectrumEmission-r14 AdditionalSpectrumEmission, + additionalSpectrumEmission-v1440 AdditionalSpectrumEmission-v10l0 + } OPTIONAL -- Need ON + ]] +} + + +SL-V2X-UE-ConfigList-r14 ::= SEQUENCE (SIZE (1.. maxCellIntra)) OF SL-V2X-InterFreqUE-Config-r14 + +SL-V2X-InterFreqUE-Config-r14 ::= SEQUENCE { + physCellIdList-r14 PhysCellIdList-r13 OPTIONAL, -- Need OR + typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR + v2x-SyncConfig-r14 SL-SyncConfigListNFreqV2X-r14 OPTIONAL, -- Need OR + v2x-CommRxPool-r14 SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolNormal-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + p2x-CommTxPoolNormal-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolExceptional-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-ResourceSelectionConfig-r14 SL-CommTxPoolSensingConfig-r14 OPTIONAL, -- Need OR + zoneConfig-r14 SL-ZoneConfig-r14 OPTIONAL, -- Need OR + offsetDFN-r14 INTEGER (0..1000) OPTIONAL, -- Need OR + ... +} + + +SL-OffsetIndicator-r12 ::= CHOICE { + small-r12 INTEGER (0..319), + large-r12 INTEGER (0..10239) +} + +SL-OffsetIndicatorSync-r12 ::= INTEGER (0..39) + +SL-OffsetIndicatorSync-v1430 ::= INTEGER (40..159) + +SL-OffsetIndicatorSync-r14 ::= INTEGER (0..159) + + +SL-P2X-ResourceSelectionConfig-r14 ::= SEQUENCE { + partialSensing-r14 ENUMERATED {true} OPTIONAL, -- Need OR + randomSelection-r14 ENUMERATED {true} OPTIONAL -- Need OR +} + + +SL-PeriodComm-r12 ::= ENUMERATED {sf40, sf60, sf70, sf80, sf120, sf140, + sf160, sf240, sf280, sf320, spare6, spare5, + spare4, spare3, spare2, spare} + + +SL-PriorityList-r13 ::= SEQUENCE (SIZE (1..maxSL-Prio-r13)) OF SL-Priority-r13 + +SL-Priority-r13 ::= INTEGER (1..8) + + +SL-PSSCH-TxConfigList-r14 ::= SEQUENCE (SIZE (1..maxPSSCH-TxConfig-r14)) OF SL-PSSCH-TxConfig-r14 + +SL-PSSCH-TxConfig-r14 ::= SEQUENCE { + typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR + thresUE-Speed-r14 ENUMERATED {kmph60, kmph80, kmph100, kmph120, + kmph140, kmph160, kmph180, kmph200}, + parametersAboveThres-r14 SL-PSSCH-TxParameters-r14, + parametersBelowThres-r14 SL-PSSCH-TxParameters-r14, + ... +} + +SL-PSSCH-TxParameters-r14 ::= SEQUENCE { + minMCS-PSSCH-r14 INTEGER (0..31), + maxMCS-PSSCH-r14 INTEGER (0..31), + minSubChannel-NumberPSSCH-r14 INTEGER (1..20), + maxSubchannel-NumberPSSCH-r14 INTEGER (1..20), + allowedRetxNumberPSSCH-r14 ENUMERATED {n0, n1, both, spare1}, + maxTxPower-r14 SL-TxPower-r14 OPTIONAL -- Cond CBR +} + + +SL-RestrictResourceReservationPeriodList-r14 ::= SEQUENCE (SIZE (1..maxReservationPeriod-r14)) OF SL-RestrictResourceReservationPeriod-r14 + +SL-RestrictResourceReservationPeriod-r14 ::= ENUMERATED {v0dot2, v0dot5, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, spare4,spare3, spare2, spare1} + + +SLSSID-r12 ::= INTEGER (0..167) + + +SL-SyncAllowed-r14 ::= SEQUENCE { + gnss-Sync-r14 ENUMERATED {true} OPTIONAL, -- Need OR + enb-Sync-r14 ENUMERATED {true} OPTIONAL, -- Need OR + ue-Sync-r14 ENUMERATED {true} OPTIONAL -- Need OR +} + + +SL-SyncConfigList-r12 ::= SEQUENCE (SIZE (1..maxSL-SyncConfig-r12)) OF SL-SyncConfig-r12 + +SL-SyncConfigListV2X-r14 ::= SEQUENCE (SIZE (1.. maxSL-V2X-SyncConfig-r14)) OF SL-SyncConfig-r12 + +SL-SyncConfig-r12 ::= SEQUENCE { + syncCP-Len-r12 SL-CP-Len-r12, + syncOffsetIndicator-r12 SL-OffsetIndicatorSync-r12, + slssid-r12 SLSSID-r12, + txParameters-r12 SEQUENCE { + syncTxParameters-r12 SL-TxParameters-r12, + syncTxThreshIC-r12 RSRP-RangeSL-r12, + syncInfoReserved-r12 BIT STRING (SIZE (19)) OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + rxParamsNCell-r12 SEQUENCE { + physCellId-r12 PhysCellId, + discSyncWindow-r12 ENUMERATED {w1, w2} + } OPTIONAL, -- Need OR + ..., + [[ syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ syncOffsetIndicator-v1430 SL-OffsetIndicatorSync-v1430 OPTIONAL, -- Need OR + gnss-Sync-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ syncOffsetIndicator2-r14 SL-OffsetIndicatorSync-r14 OPTIONAL, -- Need OR + syncOffsetIndicator3-r14 SL-OffsetIndicatorSync-r14 OPTIONAL -- Need OR + ]] +} + +SL-SyncConfigListNFreq-r13 ::= SEQUENCE (SIZE (1..maxSL-SyncConfig-r12)) OF SL-SyncConfigNFreq-r13 + +SL-SyncConfigListNFreqV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-SyncConfig-r14)) OF SL-SyncConfigNFreq-r13 + +SL-SyncConfigNFreq-r13 ::= SEQUENCE { + asyncParameters-r13 SEQUENCE { + syncCP-Len-r13 SL-CP-Len-r12, + syncOffsetIndicator-r13 SL-OffsetIndicatorSync-r12, + slssid-r13 SLSSID-r12 + } OPTIONAL, -- Need OR + txParameters-r13 SEQUENCE { + syncTxParameters-r13 SL-TxParameters-r12, + syncTxThreshIC-r13 RSRP-RangeSL-r12, + syncInfoReserved-r13 BIT STRING (SIZE (19)) OPTIONAL, -- Need OR + syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + rxParameters-r13 SEQUENCE { + discSyncWindow-r13 ENUMERATED {w1, w2} + } OPTIONAL, -- Need OR + ..., + [[ syncOffsetIndicator-v1430 SL-OffsetIndicatorSync-v1430 OPTIONAL, -- Need OR + gnss-Sync-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ syncOffsetIndicator2-r14 SL-OffsetIndicatorSync-r14 OPTIONAL, -- Need OR + syncOffsetIndicator3-r14 SL-OffsetIndicatorSync-r14 OPTIONAL -- Need OR + ]] +} + + +SL-TF-ResourceConfig-r12 ::= SEQUENCE { + prb-Num-r12 INTEGER (1..100), + prb-Start-r12 INTEGER (0..99), + prb-End-r12 INTEGER (0..99), + offsetIndicator-r12 SL-OffsetIndicator-r12, + subframeBitmap-r12 SubframeBitmapSL-r12 +} + +SubframeBitmapSL-r12 ::= CHOICE { + bs4-r12 BIT STRING (SIZE (4)), + bs8-r12 BIT STRING (SIZE (8)), + bs12-r12 BIT STRING (SIZE (12)), + bs16-r12 BIT STRING (SIZE (16)), + bs30-r12 BIT STRING (SIZE (30)), + bs40-r12 BIT STRING (SIZE (40)), + bs42-r12 BIT STRING (SIZE (42)) +} + +SubframeBitmapSL-r14 ::= CHOICE { + bs10-r14 BIT STRING (SIZE (10)), + bs16-r14 BIT STRING (SIZE (16)), + bs20-r14 BIT STRING (SIZE (20)), + bs30-r14 BIT STRING (SIZE (30)), + bs40-r14 BIT STRING (SIZE (40)), + bs50-r14 BIT STRING (SIZE (50)), + bs60-r14 BIT STRING (SIZE (60)), + bs100-r14 BIT STRING (SIZE (100)) +} + + +SL-TxPower-r14 ::= CHOICE { + minusinfinity-r14 NULL, + txPower-r14 INTEGER (-41..31) +} + + +SL-TypeTxSync-r14 ::= ENUMERATED {gnss, enb, ue} + + +SL-ThresPSSCH-RSRP-List-r14 ::= SEQUENCE (SIZE (64)) OF SL-ThresPSSCH-RSRP-r14 + +SL-ThresPSSCH-RSRP-r14 ::= INTEGER (0..66) + + +SL-TxParameters-r12 ::= SEQUENCE { + alpha-r12 Alpha-r12, + p0-r12 P0-SL-r12 +} + +P0-SL-r12 ::= INTEGER (-126..31) + + +SL-TxPoolIdentity-r12 ::= INTEGER (1.. maxSL-TxPool-r12) + +SL-TxPoolIdentity-v1310 ::= INTEGER (maxSL-TxPool-r12Plus1-r13.. maxSL-TxPool-r13) + +SL-V2X-TxPoolIdentity-r14 ::= INTEGER (1.. maxSL-V2X-TxPool-r14) + + +SL-TxPoolToReleaseList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-TxPoolIdentity-r12 + +SL-TxPoolToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF SL-TxPoolIdentity-v1310 + + +SL-V2X-ConfigDedicated-r14 ::= SEQUENCE { + commTxResources-r14 CHOICE { + release NULL, + setup CHOICE { + scheduled-r14 SEQUENCE { + sl-V-RNTI-r14 C-RNTI, + mac-MainConfig-r14 MAC-MainConfigSL-r12, + v2x-SchedulingPool-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need ON + mcs-r14 INTEGER (0..31) OPTIONAL, -- Need OR + logicalChGroupInfoList-r14 LogicalChGroupInfoList-r13 + }, + ue-Selected-r14 SEQUENCE { + -- Pool for normal usage + v2x-CommTxPoolNormalDedicated-r14 SEQUENCE { + poolToReleaseList-r14 SL-TxPoolToReleaseListV2X-r14 OPTIONAL, -- Need ON + poolToAddModList-r14 SL-TxPoolToAddModListV2X-r14 OPTIONAL, -- Need ON + v2x-CommTxPoolSensingConfig-r14 SL-CommTxPoolSensingConfig-r14 + OPTIONAL -- Need ON + } + } + } + } OPTIONAL, -- Need ON + v2x-InterFreqInfoList-r14 SL-InterFreqInfoListV2X-r14 OPTIONAL, -- Need ON + thresSL-TxPrioritization-r14 SL-Priority-r13 OPTIONAL, -- Need OR + typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR + cbr-DedicatedTxConfigList-r14 SL-CBR-CommonTxConfigList-r14 OPTIONAL, -- Need OR + ... +} + +SL-TxPoolToAddModListV2X-r14 ::= SEQUENCE (SIZE (1.. maxSL-V2X-TxPool-r14)) OF SL-TxPoolToAddMod-r14 + +SL-TxPoolToAddMod-r14 ::= SEQUENCE { + poolIdentity-r14 SL-V2X-TxPoolIdentity-r14, + pool-r14 SL-CommResourcePoolV2X-r14 +} + +SL-TxPoolToReleaseListV2X-r14 ::= SEQUENCE (SIZE (1.. maxSL-V2X-TxPool-r14)) OF SL-V2X-TxPoolIdentity-r14 + + +SL-ZoneConfig-r14 ::= SEQUENCE { + zoneLength-r14 ENUMERATED { m5, m10, m20, m50, m100, m200, m500, spare1}, + zoneWidth-r14 ENUMERATED { m5, m10, m20, m50, m100, m200, m500, spare1}, + zoneIdLongiMod-r14 INTEGER (1..4), + zoneIdLatiMod-r14 INTEGER (1..4) +} + + +maxACDC-Cat-r13 INTEGER ::= 16 -- Maximum number of ACDC categories (per PLMN) +maxAvailNarrowBands-r13 INTEGER ::= 16 -- Maximum number of narrowbands +maxBandComb-r10 INTEGER ::= 128 -- Maximum number of band combinations. +maxBandComb-r11 INTEGER ::= 256 -- Maximum number of additional band combinations. +maxBandComb-r13 INTEGER ::= 384 -- Maximum number of band combinations in Rel-13 +maxBands INTEGER ::= 64 -- Maximum number of bands listed in EUTRA UE caps +maxBandwidthClass-r10 INTEGER ::= 16 -- Maximum number of supported CA BW classes per band +maxBandwidthCombSet-r10 INTEGER ::= 32 -- Maximum number of bandwidth combination sets per + -- supported band combination +maxCBR-Level-r14 INTEGER ::= 16 -- Maximum number of CBR levels +maxCBR-Level-1-r14 INTEGER ::= 15 +maxCBR-Report-r14 INTEGER ::= 72 -- Maximum number of CBR results in a report +maxCDMA-BandClass INTEGER ::= 32 -- Maximum value of the CDMA band classes +maxCE-Level-r13 INTEGER ::= 4 -- Maximum number of CE levels +maxCellBlack INTEGER ::= 16 -- Maximum number of blacklisted physical cell identity + -- ranges listed in SIB type 4 and 5 +maxCellHistory-r12 INTEGER ::= 16 -- Maximum number of visited EUTRA cells reported +maxCellInfoGERAN-r9 INTEGER ::= 32 -- Maximum number of GERAN cells for which system in- + -- formation can be provided as redirection assistance +maxCellInfoUTRA-r9 INTEGER ::= 16 -- Maximum number of UTRA cells for which system + -- information can be provided as redirection + -- assistance +maxCombIDC-r11 INTEGER ::= 128 -- Maximum number of reported UL CA combinations +maxCSI-IM-r11 INTEGER ::= 3 -- Maximum number of CSI-IM configurations + -- (per carrier frequency) +maxCSI-IM-r12 INTEGER ::= 4 -- Maximum number of CSI-IM configurations + -- (per carrier frequency) +minCSI-IM-r13 INTEGER ::= 5 -- Minimum number of CSI IM configurations from which + -- REL-13 extension is used +maxCSI-IM-r13 INTEGER ::= 24 -- Maximum number of CSI-IM configurations + -- (per carrier frequency) +maxCSI-IM-v1310 INTEGER ::= 20 -- Maximum number of additional CSI-IM configurations + -- (per carrier frequency) +maxCSI-Proc-r11 INTEGER ::= 4 -- Maximum number of CSI processes (per carrier + -- frequency) +maxCSI-RS-NZP-r11 INTEGER ::= 3 -- Maximum number of CSI RS resource + -- configurations using non-zero Tx power + -- (per carrier frequency) +minCSI-RS-NZP-r13 INTEGER ::= 4 -- Minimum number of CSI RS resource from which + -- REL-13 extension is used +maxCSI-RS-NZP-r13 INTEGER ::= 24 -- Maximum number of CSI RS resource + -- configurations using non-zero Tx power + -- (per carrier frequency) +maxCSI-RS-NZP-v1310 INTEGER ::= 21 -- Maximum number of additional CSI RS resource + -- configurations using non-zero Tx power + -- (per carrier frequency) +maxCSI-RS-ZP-r11 INTEGER ::= 4 -- Maximum number of CSI RS resource + -- configurations using zero Tx power(per carrier + -- frequency) +maxCQI-ProcExt-r11 INTEGER ::= 3 -- Maximum number of additional periodic CQI + -- configurations (per carrier frequency) +maxFreqUTRA-TDD-r10 INTEGER ::= 6 -- Maximum number of UTRA TDD carrier frequencies for + -- which system information can be provided as + -- redirection assistance +maxCellInter INTEGER ::= 16 -- Maximum number of neighbouring inter-frequency + -- cells listed in SIB type 5 +maxCellIntra INTEGER ::= 16 -- Maximum number of neighbouring intra-frequency + -- cells listed in SIB type 4 +maxCellListGERAN INTEGER ::= 3 -- Maximum number of lists of GERAN cells +maxCellMeas INTEGER ::= 32 -- Maximum number of entries in each of the + -- cell lists in a measurement object +maxCellReport INTEGER ::= 8 -- Maximum number of reported cells/CSI-RS resources +maxConfigSPS-r14 INTEGER ::= 8 -- Maximum number of simultaneous SPS configurations +maxCSI-RS-Meas-r12 INTEGER ::= 96 -- Maximum number of entries in the CSI-RS list + -- in a measurement object +maxDRB INTEGER ::= 11 -- Maximum number of Data Radio Bearers +maxDS-Duration-r12 INTEGER ::= 5 -- Maximum number of subframes in a discovery signals + -- occasion +maxDS-ZTP-CSI-RS-r12 INTEGER ::= 5 -- Maximum number of zero transmission power CSI-RS for + -- a serving cell concerning discovery signals +maxEARFCN INTEGER ::= 65535 -- Maximum value of EUTRA carrier frequency +maxEARFCN-Plus1 INTEGER ::= 65536 -- Lowest value extended EARFCN range +maxEARFCN2 INTEGER ::= 262143 -- Highest value extended EARFCN range +maxEPDCCH-Set-r11 INTEGER ::= 2 -- Maximum number of EPDCCH sets +maxFBI INTEGER ::= 64 -- Maximum value of fequency band indicator +maxFBI-Plus1 INTEGER ::= 65 -- Lowest value extended FBI range +maxFBI2 INTEGER ::= 256 -- Highest value extended FBI range +maxFreq INTEGER ::= 8 -- Maximum number of carrier frequencies +maxFreqIDC-r11 INTEGER ::= 32 -- Maximum number of carrier frequencies that are + -- affected by the IDC problems +maxFreqMBMS-r11 INTEGER ::= 5 -- Maximum number of carrier frequencies for which an + -- MBMS capable UE may indicate an interest +maxFreqV2X-r14 INTEGER ::= 8 -- Maximum number of carrier frequencies for which V2X + -- sidelink communication can be configured +maxFreqV2X-1-r14 INTEGER ::= 7 -- Highest index of frequencies +maxGERAN-SI INTEGER ::= 10 -- Maximum number of GERAN SI blocks that can be + -- provided as part of NACC information +maxGNFG INTEGER ::= 16 -- Maximum number of GERAN neighbour freq groups +maxLCG-r13 INTEGER ::= 4 -- Maximum number of logical channel groups +maxLogMeasReport-r10 INTEGER ::= 520 -- Maximum number of logged measurement entries + -- that can be reported by the UE in one message +maxMBSFN-Allocations INTEGER ::= 8 -- Maximum number of MBSFN frame allocations with + -- different offset +maxMBSFN-Area INTEGER ::= 8 +maxMBSFN-Area-1 INTEGER ::= 7 +maxMBMS-ServiceListPerUE-r13 INTEGER ::= 15 -- Maximum number of services which the UE can + -- include in the MBMS interest indication +maxMeasId INTEGER ::= 32 +maxMeasId-Plus1 INTEGER ::= 33 +maxMeasId-r12 INTEGER ::= 64 +maxMultiBands INTEGER ::= 8 -- Maximum number of additional frequency bands + -- that a cell belongs to +maxNS-Pmax-r10 INTEGER ::= 8 -- Maximum number of NS and P-Max values per band +maxNAICS-Entries-r12 INTEGER ::= 8 -- Maximum number of supported NAICS combination(s) +maxNeighCell-r12 INTEGER ::= 8 -- Maximum number of neighbouring cells in NAICS + -- configuration (per carrier frequency) +maxNeighCell-SCPTM-r13 INTEGER ::= 8 -- Maximum number of SCPTM neighbour cells +maxObjectId INTEGER ::= 32 +maxObjectId-Plus1-r13 INTEGER ::= 33 +maxObjectId-r13 INTEGER ::= 64 +maxP-a-PerNeighCell-r12 INTEGER ::= 3 -- Maximum number of power offsets for a neighbour cell + -- in NAICS configuration +maxPageRec INTEGER ::= 16 -- +maxPhysCellIdRange-r9 INTEGER ::= 4 -- Maximum number of physical cell identity ranges +maxPLMN-r11 INTEGER ::= 6 -- Maximum number of PLMNs +maxPLMN-1-r14 INTEGER ::= 5 -- Maximum number of PLMNs minus one +maxPNOffset INTEGER ::= 511 -- Maximum number of CDMA2000 PNOffsets +maxPMCH-PerMBSFN INTEGER ::= 15 +maxPSSCH-TxConfig-r14 INTEGER ::= 16 -- Maximum number of PSSCH TX configurations +maxQCI-r13 INTEGER ::= 6 -- Maximum number of QCIs +maxRAT-Capabilities INTEGER ::= 8 -- Maximum number of interworking RATs (incl EUTRA) +maxRE-MapQCL-r11 INTEGER ::= 4 -- Maximum number of PDSCH RE Mapping configurations + -- (per carrier frequency) +maxReportConfigId INTEGER ::= 32 +maxReservationPeriod-r14 INTEGER ::= 16 -- Maximum number of resource reservation periodicities + -- for sidelink V2X communication +maxRSTD-Freq-r10 INTEGER ::= 3 -- Maximum number of frequency layers for RSTD + -- measurement +maxSAI-MBMS-r11 INTEGER ::= 64 -- Maximum number of MBMS service area identities + -- broadcast per carrier frequency +maxSCell-r10 INTEGER ::= 4 -- Maximum number of SCells +maxSCell-r13 INTEGER ::= 31 -- Highest value of extended number range of SCells +maxSC-MTCH-r13 INTEGER ::= 1023 -- Maximum number of SC-MTCHs in one cell +maxSC-MTCH-BR-r14 INTEGER ::= 128 -- Maximum number of SC-MTCHs in one cell for feMTC +maxSL-CommRxPoolNFreq-r13 INTEGER ::= 32 -- Maximum number of individual sidelink communication + -- Rx resource pools on neighbouring freq +maxSL-CommRxPoolPreconf-v1310 INTEGER ::= 12 -- Maximum number of additional preconfigured + -- sidelink communication Rx resource pool entries +maxSL-TxPool-r12Plus1-r13 INTEGER ::= 5 -- First additional individual sidelink + -- Tx resource pool +maxSL-TxPool-v1310 INTEGER ::= 4 -- Maximum number of additional sidelink + -- Tx resource pool entries +maxSL-TxPool-r13 INTEGER ::= 8 -- Maximum number of individual sidelink + -- Tx resource pools +maxSL-CommTxPoolPreconf-v1310 INTEGER ::= 7 -- Maximum number of additional preconfigured + -- sidelink Tx resource pool entries +maxSL-Dest-r12 INTEGER ::= 16 -- Maximum number of sidelink destinations +maxSL-DiscCells-r13 INTEGER ::= 16 -- Maximum number of cells with similar sidelink + -- configurations +maxSL-DiscPowerClass-r12 INTEGER ::= 3 -- Maximum number of sidelink power classes +maxSL-DiscRxPoolPreconf-r13 INTEGER ::= 16 -- Maximum number of preconfigured sidelink + -- discovery Rx resource pool entries +maxSL-DiscSysInfoReportFreq-r13 INTEGER ::= 8 -- Maximum number of frequencies to include in a + -- SidelinkUEInformation for SI reporting +maxSL-DiscTxPoolPreconf-r13 INTEGER ::= 4 -- Maximum number of preconfigured sidelink + -- discovery Tx resource pool entries +maxSL-GP-r13 INTEGER ::= 8 -- Maximum number of gap patterns that can be requested + -- for a frequency or assigned +maxSL-PoolToMeasure-r14 INTEGER ::= 72 -- Maximum number of TX resource pools for CBR + -- measurement and report +maxSL-Prio-r13 INTEGER ::= 8 -- Maximum number of entries in sidelink priority list +maxSL-RxPool-r12 INTEGER ::= 16 -- Maximum number of individual sidelink Rx resource pools +maxSL-SyncConfig-r12 INTEGER ::= 16 -- Maximum number of sidelink Sync configurations +maxSL-TF-IndexPair-r12 INTEGER ::= 64 -- Maximum number of sidelink Time Freq resource index + -- pairs +maxSL-TxPool-r12 INTEGER ::= 4 -- Maximum number of individual sidelink Tx resource pools +maxSL-V2X-RxPool-r14 INTEGER ::= 16 -- Maximum number of RX resource pools for + -- V2X sidelink communication +maxSL-V2X-RxPoolPreconf-r14 INTEGER ::= 16 -- Maximum number of RX resource pools for + -- V2X sidelink communication +maxSL-V2X-TxPool-r14 INTEGER ::= 8 -- Maximum number of TX resource pools for + -- V2X sidelink communication +maxSL-V2X-TxPoolPreconf-r14 INTEGER ::= 8 -- Maximum number of TX resource pools for + -- V2X sidelink communication +maxSL-V2X-SyncConfig-r14 INTEGER ::= 16 -- Maximum number of sidelink Sync configurations + -- for V2X sidelink communication +maxSL-V2X-CBRConfig-r14 INTEGER ::= 4 -- Maximum number of CBR range configurations + -- for V2X sidelink communication congestion + -- control +maxSL-V2X-CBRConfig-1-r14 INTEGER ::= 3 +maxSL-V2X-TxConfig-r14 INTEGER ::= 64 -- Maximum number of TX parameter configurations + -- for V2X sidelink communication congestion + -- control +maxSL-V2X-TxConfig-1-r14 INTEGER ::= 63 +maxSL-V2X-CBRConfig2-r14 INTEGER ::= 8 -- Maximum number of CBR range configurations in + -- pre-configuration for V2X sidelink + -- communication congestion control +maxSL-V2X-CBRConfig2-1-r14 INTEGER ::= 7 +maxSL-V2X-TxConfig2-r14 INTEGER ::= 128 -- Maximum number of TX parameter + -- configurations in pre-configuration for V2X + -- sidelink communication congestion control +maxSL-V2X-TxConfig2-1-r14 INTEGER ::= 127 +maxSTAG-r11 INTEGER ::= 3 -- Maximum number of STAGs +maxServCell-r10 INTEGER ::= 5 -- Maximum number of Serving cells +maxServCell-r13 INTEGER ::= 32 -- Highest value of extended number range of Serving cells +maxServiceCount INTEGER ::= 16 -- Maximum number of MBMS services that can be included + -- in an MBMS counting request and response +maxServiceCount-1 INTEGER ::= 15 +maxSessionPerPMCH INTEGER ::= 29 +maxSessionPerPMCH-1 INTEGER ::= 28 +maxSIB INTEGER ::= 32 -- Maximum number of SIBs +maxSIB-1 INTEGER ::= 31 +maxSI-Message INTEGER ::= 32 -- Maximum number of SI messages +maxSimultaneousBands-r10 INTEGER ::= 64 -- Maximum number of simultaneously aggregated bands +maxSubframePatternIDC-r11 INTEGER ::= 8 -- Maximum number of subframe reservation patterns + -- that the UE can simultaneously recommend to the + -- E-UTRAN for use. +maxTrafficPattern-r14 INTEGER ::= 8 -- Maximum number of periodical traffic patterns + -- that the UE can simultaneously report to the + -- E-UTRAN. +maxUTRA-FDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA FDD carrier frequencies +maxUTRA-TDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA TDD carrier frequencies +maxWLAN-Id-r12 INTEGER ::= 16 -- Maximum number of WLAN identifiers +maxWLAN-Bands-r13 INTEGER ::= 8 -- Maximum number of WLAN bands +maxWLAN-Id-r13 INTEGER ::= 32 -- Maximum number of WLAN identifiers +maxWLAN-Channels-r13 INTEGER ::= 16 -- maximum number of WLAN channels used in + -- WLAN-CarrierInfo +maxWLAN-CarrierInfo-r13 INTEGER ::= 8 -- Maximum number of WLAN Carrier Information +maxWLAN-Id-Report-r14 INTEGER ::= 32 -- Maximum number of WLAN IDs to report + + +END + + +PC5-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + TDD-ConfigSL-r12 +FROM EUTRA-RRC-Definitions; + + +SBCCH-SL-BCH-Message ::= SEQUENCE { + message SBCCH-SL-BCH-MessageType +} + +SBCCH-SL-BCH-MessageType ::= MasterInformationBlock-SL + + +SBCCH-SL-BCH-Message-V2X-r14 ::= SEQUENCE { + message SBCCH-SL-BCH-MessageType-V2X-r14 +} + +SBCCH-SL-BCH-MessageType-V2X-r14 ::= MasterInformationBlock-SL-V2X-r14 + + +MasterInformationBlock-SL ::= SEQUENCE { + sl-Bandwidth-r12 ENUMERATED { + n6, n15, n25, n50, n75, n100}, + tdd-ConfigSL-r12 TDD-ConfigSL-r12, + directFrameNumber-r12 BIT STRING (SIZE (10)), + directSubframeNumber-r12 INTEGER (0..9), + inCoverage-r12 BOOLEAN, + reserved-r12 BIT STRING (SIZE (19)) +} + + + +MasterInformationBlock-SL-V2X-r14 ::= SEQUENCE { + sl-Bandwidth-r14 ENUMERATED { + n6, n15, n25, n50, n75, n100}, + tdd-ConfigSL-r14 TDD-ConfigSL-r12, + directFrameNumber-r14 BIT STRING (SIZE (10)), + directSubframeNumber-r14 INTEGER (0..9), + inCoverage-r14 BOOLEAN, + reserved-r14 BIT STRING (SIZE (27)) +} + + + +END + + +NBIOT-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + RRCConnectionReestablishmentReject, + SecurityModeCommand, + SecurityModeComplete, + SecurityModeFailure, + AdditionalSpectrumEmission, + ARFCN-ValueEUTRA-r9, + CellIdentity, + DedicatedInfoNAS, + DRB-Identity, + InitialUE-Identity, + IntraFreqBlackCellList, + IntraFreqNeighCellList, + maxBands, + maxCellBlack, + maxCellInter, + maxFBI2, + maxFreq, + maxMultiBands, + maxPageRec, + maxPLMN-r11, + maxSAI-MBMS-r11, + maxSIB, + maxSIB-1, + MBMS-SAI-r11, + MBMS-SAI-List-r11, + MBMSSessionInfo-r13, + NextHopChainingCount, + PagingUE-Identity, + PLMN-Identity, + P-Max, + PowerRampingParameters, + PreambleTransMax, + PhysCellId, + Q-OffsetRange, + Q-QualMin-r9, + Q-RxLevMin, + ReestabUE-Identity, + RegisteredMME, + ReselectionThreshold, + ResumeIdentity-r13, + RRC-TransactionIdentifier, + RSRP-Range, + ShortMAC-I, + S-TMSI, + SystemInformationBlockType16-r11, + SystemInfoValueTagSI-r13, + T-Reordering, + TimeAlignmentTimer, + TMGI-r9, + TrackingAreaCode, + DataInactivityTimer-r14 + +FROM EUTRA-RRC-Definitions; + + +BCCH-BCH-Message-NB ::= SEQUENCE { + message BCCH-BCH-MessageType-NB +} + + +BCCH-BCH-MessageType-NB::= MasterInformationBlock-NB + + + +BCCH-DL-SCH-Message-NB ::= SEQUENCE { + message BCCH-DL-SCH-MessageType-NB +} + +BCCH-DL-SCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + systemInformation-r13 SystemInformation-NB, + systemInformationBlockType1-r13 SystemInformationBlockType1-NB + }, + messageClassExtension SEQUENCE {} +} + + +PCCH-Message-NB ::= SEQUENCE { + message PCCH-MessageType-NB +} + +PCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + paging-r13 Paging-NB + }, + messageClassExtension SEQUENCE {} +} + + +DL-CCCH-Message-NB ::= SEQUENCE { + message DL-CCCH-MessageType-NB +} + +DL-CCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishment-r13 RRCConnectionReestablishment-NB, + rrcConnectionReestablishmentReject-r13 RRCConnectionReestablishmentReject, + rrcConnectionReject-r13 RRCConnectionReject-NB, + rrcConnectionSetup-r13 RRCConnectionSetup-NB, + spare4 NULL, spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +DL-DCCH-Message-NB ::= SEQUENCE { + message DL-DCCH-MessageType-NB +} + +DL-DCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + dlInformationTransfer-r13 DLInformationTransfer-NB, + rrcConnectionReconfiguration-r13 RRCConnectionReconfiguration-NB, + rrcConnectionRelease-r13 RRCConnectionRelease-NB, + securityModeCommand-r13 SecurityModeCommand, + ueCapabilityEnquiry-r13 UECapabilityEnquiry-NB, + rrcConnectionResume-r13 RRCConnectionResume-NB, + spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + + +UL-CCCH-Message-NB ::= SEQUENCE { + message UL-CCCH-MessageType-NB +} + +UL-CCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishmentRequest-r13 RRCConnectionReestablishmentRequest-NB, + rrcConnectionRequest-r13 RRCConnectionRequest-NB, + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-NB, + spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +SC-MCCH-Message-NB ::= SEQUENCE { + message SC-MCCH-MessageType-NB +} + + +SC-MCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + scptmConfiguration-r14 SCPTMConfiguration-NB-r14 + }, + messageClassExtension SEQUENCE {} +} + + +UL-DCCH-Message-NB ::= SEQUENCE { + message UL-DCCH-MessageType-NB +} + +UL-DCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + rrcConnectionReconfigurationComplete-r13 RRCConnectionReconfigurationComplete-NB, + rrcConnectionReestablishmentComplete-r13 RRCConnectionReestablishmentComplete-NB, + rrcConnectionSetupComplete-r13 RRCConnectionSetupComplete-NB, + securityModeComplete-r13 SecurityModeComplete, + securityModeFailure-r13 SecurityModeFailure, + ueCapabilityInformation-r13 UECapabilityInformation-NB, + ulInformationTransfer-r13 ULInformationTransfer-NB, + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-NB, + spare8 NULL, spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +DLInformationTransfer-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + dlInformationTransfer-r13 DLInformationTransfer-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +DLInformationTransfer-NB-r13-IEs ::= SEQUENCE { + dedicatedInfoNAS-r13 DedicatedInfoNAS, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MasterInformationBlock-NB ::= SEQUENCE { + systemFrameNumber-MSB-r13 BIT STRING (SIZE (4)), + hyperSFN-LSB-r13 BIT STRING (SIZE (2)), + schedulingInfoSIB1-r13 INTEGER (0..15), + systemInfoValueTag-r13 INTEGER (0..31), + ab-Enabled-r13 BOOLEAN, + operationModeInfo-r13 CHOICE { + inband-SamePCI-r13 Inband-SamePCI-NB-r13, + inband-DifferentPCI-r13 Inband-DifferentPCI-NB-r13, + guardband-r13 Guardband-NB-r13, + standalone-r13 Standalone-NB-r13 + }, + spare BIT STRING (SIZE (11)) +} + +ChannelRasterOffset-NB-r13 ::= ENUMERATED {khz-7dot5, khz-2dot5, khz2dot5, khz7dot5} + +Guardband-NB-r13 ::= SEQUENCE { + rasterOffset-r13 ChannelRasterOffset-NB-r13, + spare BIT STRING (SIZE (3)) +} + +Inband-SamePCI-NB-r13 ::= SEQUENCE { + eutra-CRS-SequenceInfo-r13 INTEGER (0..31) +} + +Inband-DifferentPCI-NB-r13 ::= SEQUENCE { + eutra-NumCRS-Ports-r13 ENUMERATED {same, four}, + rasterOffset-r13 ChannelRasterOffset-NB-r13, + spare BIT STRING (SIZE (2)) +} + +Standalone-NB-r13 ::= SEQUENCE { + spare BIT STRING (SIZE (5)) +} + + +Paging-NB ::= SEQUENCE { + pagingRecordList-r13 PagingRecordList-NB-r13 OPTIONAL, -- Need ON + systemInfoModification-r13 ENUMERATED {true} OPTIONAL, -- Need ON + systemInfoModification-eDRX-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PagingRecordList-NB-r13 ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord-NB-r13 + +PagingRecord-NB-r13 ::= SEQUENCE { + ue-Identity-r13 PagingUE-Identity, + ... +} + + +RRCConnectionReconfiguration-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReconfiguration-r13 RRCConnectionReconfiguration-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfiguration-NB-r13-IEs ::= SEQUENCE { + dedicatedInfoNASList-r13 SEQUENCE (SIZE(1..maxDRB-NB-r13)) OF + DedicatedInfoNAS OPTIONAL, -- Need ON + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13 OPTIONAL, -- Need ON + fullConfig-r13 ENUMERATED {true} OPTIONAL, -- Cond Reestab + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReconfigurationComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReconfigurationComplete-r13 RRCConnectionReconfigurationComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfigurationComplete-NB-r13-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + + +RRCConnectionReestablishment-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReestablishment-r13 RRCConnectionReestablishment-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishment-NB-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13, + nextHopChainingCount-r13 NextHopChainingCount, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReestablishment-NB-v1430-IEs OPTIONAL +} + +RRCConnectionReestablishment-NB-v1430-IEs ::= SEQUENCE { + dl-NAS-MAC BIT STRING (SIZE (16)) OPTIONAL, -- Cond Reestablish-CP + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReestablishmentComplete-r13 RRCConnectionReestablishmentComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentComplete-NB-r13-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-NB-v1470-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-NB-v1470-IEs ::= SEQUENCE { + measResultServCell-r14 MeasResultServCell-NB-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentRequest-NB ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentRequest-r13 + RRCConnectionReestablishmentRequest-NB-r13-IEs, + later CHOICE { + rrcConnectionReestablishmentRequest-r14 + RRCConnectionReestablishmentRequest-NB-r14-IEs, + criticalExtensionsFuture SEQUENCE {} + } + } +} + +RRCConnectionReestablishmentRequest-NB-r13-IEs ::= SEQUENCE { + ue-Identity-r13 ReestabUE-Identity, + reestablishmentCause-r13 ReestablishmentCause-NB-r13, + cqi-NPDCCH-r14 CQI-NPDCCH-NB-r14, + earlyContentionResolution-r14 BOOLEAN, + spare BIT STRING (SIZE (20)) +} + +RRCConnectionReestablishmentRequest-NB-r14-IEs ::= SEQUENCE { + ue-Identity-r14 ReestabUE-Identity-CP-NB-r14, + reestablishmentCause-r14 ReestablishmentCause-NB-r13, + cqi-NPDCCH-r14 CQI-NPDCCH-Short-NB-r14, + earlyContentionResolution-r14 BOOLEAN, + spare BIT STRING (SIZE (1)) +} + +ReestablishmentCause-NB-r13 ::= ENUMERATED { + reconfigurationFailure, otherFailure, + spare2, spare1} + +ReestabUE-Identity-CP-NB-r14 ::= SEQUENCE { + s-TMSI-r14 S-TMSI, + ul-NAS-MAC-r14 BIT STRING (SIZE (16)), + ul-NAS-Count-r14 BIT STRING (SIZE (5)) +} + + +RRCConnectionReject-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionReject-r13 RRCConnectionReject-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReject-NB-r13-IEs ::= SEQUENCE { + extendedWaitTime-r13 INTEGER (1..1800), + rrc-SuspendIndication-r13 ENUMERATED {true} OPTIONAL, -- Need ON + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionRelease-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionRelease-r13 RRCConnectionRelease-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRelease-NB-r13-IEs ::= SEQUENCE { + releaseCause-r13 ReleaseCause-NB-r13, + resumeIdentity-r13 ResumeIdentity-r13 OPTIONAL, -- Need OR + extendedWaitTime-r13 INTEGER (1..1800) OPTIONAL, -- Need ON + redirectedCarrierInfo-r13 RedirectedCarrierInfo-NB-r13 OPTIONAL, -- Need ON + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionRelease-NB-v1430-IEs OPTIONAL +} + +RRCConnectionRelease-NB-v1430-IEs ::= SEQUENCE { + redirectedCarrierInfo-v1430 RedirectedCarrierInfo-NB-v1430 OPTIONAL, -- Cond Redirection + extendedWaitTime-CPdata-r14 INTEGER (1..1800) OPTIONAL, -- Cond NoExtendedWaitTime + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +ReleaseCause-NB-r13 ::= ENUMERATED {loadBalancingTAUrequired, other, + rrc-Suspend, spare1} +RedirectedCarrierInfo-NB-r13::= CarrierFreq-NB-r13 + +RedirectedCarrierInfo-NB-v1430 ::= SEQUENCE { + redirectedCarrierOffsetDedicated-r14 ENUMERATED{ + dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24, dB26}, + t322-r14 ENUMERATED{ + min5, min10, min20, min30, min60, min120, min180, + spare1} +} + + +RRCConnectionRequest-NB ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionRequest-r13 RRCConnectionRequest-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRequest-NB-r13-IEs ::= SEQUENCE { + ue-Identity-r13 InitialUE-Identity, + establishmentCause-r13 EstablishmentCause-NB-r13, + multiToneSupport-r13 ENUMERATED {true} OPTIONAL, + multiCarrierSupport-r13 ENUMERATED {true} OPTIONAL, + earlyContentionResolution-r14 BOOLEAN, + cqi-NPDCCH-r14 CQI-NPDCCH-NB-r14, + spare BIT STRING (SIZE (17)) +} + + +RRCConnectionResume-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionResume-r13 RRCConnectionResume-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResume-NB-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13 OPTIONAL, -- Need ON + nextHopChainingCount-r13 NextHopChainingCount, + drb-ContinueROHC-r13 ENUMERATED {true} OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeComplete-NB-r13-IEs ::= SEQUENCE { + selectedPLMN-Identity-r13 INTEGER (1..maxPLMN-r11) OPTIONAL, + dedicatedInfoNAS-r13 DedicatedInfoNAS OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionResumeComplete-NB-v1470-IEs OPTIONAL +} + +RRCConnectionResumeComplete-NB-v1470-IEs ::= SEQUENCE { + measResultServCell-r14 MeasResultServCell-NB-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeRequest-NB ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeRequest-NB-r13-IEs ::= SEQUENCE { + resumeID-r13 ResumeIdentity-r13, + shortResumeMAC-I-r13 ShortMAC-I, + resumeCause-r13 EstablishmentCause-NB-r13, + earlyContentionResolution-r14 BOOLEAN, + cqi-NPDCCH-r14 CQI-NPDCCH-NB-r14, + spare BIT STRING (SIZE (4)) +} + + +RRCConnectionSetup-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionSetup-r13 RRCConnectionSetup-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetup-NB-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionSetupComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE{ + rrcConnectionSetupComplete-r13 RRCConnectionSetupComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetupComplete-NB-r13-IEs ::= SEQUENCE { + selectedPLMN-Identity-r13 INTEGER (1..maxPLMN-r11), + s-TMSI-r13 S-TMSI OPTIONAL, + registeredMME-r13 RegisteredMME OPTIONAL, + dedicatedInfoNAS-r13 DedicatedInfoNAS, + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL, + up-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-NB-v1430-IEs OPTIONAL +} + +RRCConnectionSetupComplete-NB-v1430-IEs ::= SEQUENCE { + gummei-Type-r14 ENUMERATED { mapped} OPTIONAL, + dcn-ID-r14 INTEGER (0..65535) OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-NB-v1470-IEs OPTIONAL +} + +RRCConnectionSetupComplete-NB-v1470-IEs ::= SEQUENCE { + measResultServCell-r14 MeasResultServCell-NB-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCPTMConfiguration-NB-r14 ::= SEQUENCE { + sc-mtch-InfoList-r14 SC-MTCH-InfoList-NB-r14, + scptm-NeighbourCellList-r14 SCPTM-NeighbourCellList-NB-r14 OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + systemInformation-r13 SystemInformation-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} +SystemInformation-NB-r13-IEs ::= SEQUENCE { + sib-TypeAndInfo-r13 SEQUENCE (SIZE (1..maxSIB)) OF CHOICE { + sib2-r13 SystemInformationBlockType2-NB-r13, + sib3-r13 SystemInformationBlockType3-NB-r13, + sib4-r13 SystemInformationBlockType4-NB-r13, + sib5-r13 SystemInformationBlockType5-NB-r13, + sib14-r13 SystemInformationBlockType14-NB-r13, + sib16-r13 SystemInformationBlockType16-NB-r13, + ..., + sib15-v1430 SystemInformationBlockType15-NB-r14, + sib20-v1430 SystemInformationBlockType20-NB-r14, + sib22-v1430 SystemInformationBlockType22-NB-r14 + }, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType1-NB ::= SEQUENCE { + hyperSFN-MSB-r13 BIT STRING (SIZE (8)), + cellAccessRelatedInfo-r13 SEQUENCE { + plmn-IdentityList-r13 PLMN-IdentityList-NB-r13, + trackingAreaCode-r13 TrackingAreaCode, + cellIdentity-r13 CellIdentity, + cellBarred-r13 ENUMERATED {barred, notBarred}, + intraFreqReselection-r13 ENUMERATED {allowed, notAllowed} + }, + cellSelectionInfo-r13 SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + q-QualMin-r13 Q-QualMin-r9 + }, + p-Max-r13 P-Max OPTIONAL, -- Need OP + freqBandIndicator-r13 FreqBandIndicator-NB-r13, + freqBandInfo-r13 NS-PmaxList-NB-r13 OPTIONAL, -- Need OR + multiBandInfoList-r13 MultiBandInfoList-NB-r13 OPTIONAL, -- Need OR + downlinkBitmap-r13 DL-Bitmap-NB-r13 OPTIONAL, -- Need OP, + eutraControlRegionSize-r13 ENUMERATED {n1, n2, n3} OPTIONAL, -- Cond inband + nrs-CRS-PowerOffset-r13 ENUMERATED {dB-6, dB-4dot77, dB-3, + dB-1dot77, dB0, dB1, + dB1dot23, dB2, dB3, + dB4, dB4dot23, dB5, + dB6, dB7, dB8, + dB9} OPTIONAL, -- Cond inband-SamePCI + schedulingInfoList-r13 SchedulingInfoList-NB-r13, + si-WindowLength-r13 ENUMERATED {ms160, ms320, ms480, ms640, + ms960, ms1280, ms1600, spare1}, + si-RadioFrameOffset-r13 INTEGER (1..15) OPTIONAL, -- Need OP + systemInfoValueTagList-r13 SystemInfoValueTagList-NB-r13 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SystemInformationBlockType1-NB-v1350 OPTIONAL +} + +SystemInformationBlockType1-NB-v1350 ::= SEQUENCE { + cellSelectionInfo-v1350 CellSelectionInfo-NB-v1350 OPTIONAL, -- Cond Qrxlevmin + nonCriticalExtension SystemInformationBlockType1-NB-v1430 OPTIONAL +} + +SystemInformationBlockType1-NB-v1430 ::= SEQUENCE { + cellSelectionInfo-v1430 CellSelectionInfo-NB-v1430 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-NB-v1450 OPTIONAL +} + +SystemInformationBlockType1-NB-v1450 ::= SEQUENCE { + nrs-CRS-PowerOffset-v1450 ENUMERATED {dB-6, dB-4dot77, dB-3, + dB-1dot77, dB0, dB1, + dB1dot23, dB2, dB3, + dB4, dB4dot23, dB5, + dB6, dB7, dB8, + dB9} OPTIONAL, -- Cond inband-SamePCI-ExceptAnchor + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PLMN-IdentityList-NB-r13 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo-NB-r13 + +PLMN-IdentityInfo-NB-r13 ::= SEQUENCE { + plmn-Identity-r13 PLMN-Identity, + cellReservedForOperatorUse-r13 ENUMERATED {reserved, notReserved}, + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL -- Need OP +} + +SchedulingInfoList-NB-r13 ::= SEQUENCE (SIZE (1..maxSI-Message-NB-r13)) OF SchedulingInfo-NB-r13 + +SchedulingInfo-NB-r13::= SEQUENCE { + si-Periodicity-r13 ENUMERATED {rf64, rf128, rf256, rf512, + rf1024, rf2048, rf4096, spare}, + si-RepetitionPattern-r13 ENUMERATED {every2ndRF, every4thRF, every8thRF, every16thRF}, + sib-MappingInfo-r13 SIB-MappingInfo-NB-r13, + si-TB-r13 ENUMERATED {b56, b120, b208, b256, b328, b440, b552, b680} +} + +SystemInfoValueTagList-NB-r13 ::= SEQUENCE (SIZE (1.. maxSI-Message-NB-r13)) OF + SystemInfoValueTagSI-r13 + +SIB-MappingInfo-NB-r13 ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type-NB-r13 + +SIB-Type-NB-r13 ::= ENUMERATED { + sibType3-NB-r13, sibType4-NB-r13, sibType5-NB-r13, + sibType14-NB-r13, sibType16-NB-r13, sibType15-NB-r14, + sibType20-NB-r14, sibType22-NB-r14} + +CellSelectionInfo-NB-v1350 ::= SEQUENCE { + delta-RxLevMin-v1350 INTEGER (-8..-1) +} + +CellSelectionInfo-NB-v1430 ::= SEQUENCE { + powerClass14dBm-Offset-r14 ENUMERATED {dB-6, dB-3, dB3, dB6, dB9, dB12} OPTIONAL, -- Need OP + ce-authorisationOffset-r14 ENUMERATED {dB5, dB10, dB15, dB20, dB25, dB30, dB35} OPTIONAL -- Need OP +} + + +UECapabilityEnquiry-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueCapabilityEnquiry-r13 UECapabilityEnquiry-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityEnquiry-NB-r13-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UECapabilityInformation-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE{ + ueCapabilityInformation-r13 UECapabilityInformation-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityInformation-NB-r13-IEs ::= SEQUENCE { + ue-Capability-r13 UE-Capability-NB-r13, + ue-RadioPagingInfo-r13 UE-RadioPagingInfo-NB-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UECapabilityInformation-NB-Ext-r14-IEs OPTIONAL +} + +UECapabilityInformation-NB-Ext-r14-IEs ::= SEQUENCE { + ue-Capability-ContainerExt-r14 OCTET STRING (CONTAINING UE-Capability-NB-Ext-r14-IEs), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +ULInformationTransfer-NB ::= SEQUENCE { + criticalExtensions CHOICE { + ulInformationTransfer-r13 ULInformationTransfer-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULInformationTransfer-NB-r13-IEs ::= SEQUENCE { + dedicatedInfoNAS-r13 DedicatedInfoNAS, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType2-NB-r13 ::= SEQUENCE { + radioResourceConfigCommon-r13 RadioResourceConfigCommonSIB-NB-r13, + ue-TimersAndConstants-r13 UE-TimersAndConstants-NB-r13, + freqInfo-r13 SEQUENCE { + ul-CarrierFreq-r13 CarrierFreq-NB-r13 OPTIONAL, -- Need OP + additionalSpectrumEmission-r13 AdditionalSpectrumEmission + }, + timeAlignmentTimerCommon-r13 TimeAlignmentTimer, + multiBandInfoList-r13 SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ cp-Reestablishment-r14 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ servingCellMeasInfo-r14 ENUMERATED {true} OPTIONAL, -- Need OR + cqi-Reporting-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + + +SystemInformationBlockType3-NB-r13 ::= SEQUENCE { + cellReselectionInfoCommon-r13 SEQUENCE { + q-Hyst-r13 ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24 + } + }, + cellReselectionServingFreqInfo-r13 SEQUENCE { + s-NonIntraSearch-r13 ReselectionThreshold + }, + intraFreqCellReselectionInfo-r13 SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + q-QualMin-r13 Q-QualMin-r9 OPTIONAL, -- Need OP + p-Max-r13 P-Max OPTIONAL, -- Need OP + s-IntraSearchP-r13 ReselectionThreshold, + t-Reselection-r13 T-Reselection-NB-r13 + }, + freqBandInfo-r13 NS-PmaxList-NB-r13 OPTIONAL, -- Need OR + multiBandInfoList-r13 SEQUENCE (SIZE (1..maxMultiBands)) OF + NS-PmaxList-NB-r13 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ intraFreqCellReselectionInfo-v1350 IntraFreqCellReselectionInfo-NB-v1350 OPTIONAL -- Cond Qrxlevmin + ]], + [[ intraFreqCellReselectionInfo-v1360 IntraFreqCellReselectionInfo-NB-v1360 OPTIONAL -- Need OR + ]], + [[ intraFreqCellReselectionInfo-v1430 IntraFreqCellReselectionInfo-NB-v1430 OPTIONAL -- Need OR + ]], + [[ cellReselectionInfoCommon-v1450 CellReselectionInfoCommon-NB-v1450 OPTIONAL -- Need OR + ]] +} + +IntraFreqCellReselectionInfo-NB-v1350 ::= SEQUENCE { + delta-RxLevMin-v1350 INTEGER (-8..-1) +} + +IntraFreqCellReselectionInfo-NB-v1360 ::= SEQUENCE { + s-IntraSearchP-v1360 ReselectionThreshold-NB-v1360 +} + +IntraFreqCellReselectionInfo-NB-v1430 ::= SEQUENCE { + powerClass14dBm-Offset-r14 ENUMERATED {dB-6, dB-3, dB3, dB6, dB9, dB12} OPTIONAL, -- Need OP + ce-AuthorisationOffset-r14 ENUMERATED {dB5, dB10, dB15, dB20, dB25, dB30, dB35} OPTIONAL -- Need OP +} + +CellReselectionInfoCommon-NB-v1450 ::= SEQUENCE { + s-SearchDeltaP-r14 ENUMERATED {dB6, dB9, dB12, dB15} +} + + +SystemInformationBlockType4-NB-r13 ::= SEQUENCE { + intraFreqNeighCellList-r13 IntraFreqNeighCellList OPTIONAL, -- Need OR + intraFreqBlackCellList-r13 IntraFreqBlackCellList OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + + +SystemInformationBlockType5-NB-r13 ::= SEQUENCE { + interFreqCarrierFreqList-r13 InterFreqCarrierFreqList-NB-r13, + t-Reselection-r13 T-Reselection-NB-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ scptm-FreqOffset-r14 INTEGER (1..8) OPTIONAL -- Need OP + ]] +} + + +InterFreqCarrierFreqList-NB-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-NB-r13 + + +InterFreqCarrierFreqInfo-NB-r13 ::= SEQUENCE { + dl-CarrierFreq-r13 CarrierFreq-NB-r13, + q-RxLevMin-r13 Q-RxLevMin, + q-QualMin-r13 Q-QualMin-r9 OPTIONAL, -- Need OP + p-Max-r13 P-Max OPTIONAL, -- Need OP + q-OffsetFreq-r13 Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList-r13 InterFreqNeighCellList-NB-r13 OPTIONAL, -- Need OR + interFreqBlackCellList-r13 InterFreqBlackCellList-NB-r13 OPTIONAL, -- Need OR + multiBandInfoList-r13 MultiBandInfoList-NB-r13 OPTIONAL, -- Need OR + ..., + [[ delta-RxLevMin-v1350 INTEGER (-8..-1) OPTIONAL -- Cond Qrxlevmin + ]], + [[ powerClass14dBm-Offset-r14 ENUMERATED {dB-6, dB-3, dB3, dB6, dB9, dB12} +OPTIONAL, -- Need OP + ce-AuthorisationOffset-r14 ENUMERATED {dB5, dB10, dB15, dB20, dB25, dB30, dB35} OPTIONAL -- Need OP + ]] +} + +InterFreqNeighCellList-NB-r13 ::= SEQUENCE (SIZE (1..maxCellInter)) OF PhysCellId + + +InterFreqBlackCellList-NB-r13 ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellId + + + +SystemInformationBlockType14-NB-r13 ::= SEQUENCE { + ab-Param-r13 CHOICE { + ab-Common-r13 AB-Config-NB-r13, + ab-PerPLMN-List-r13 SEQUENCE (SIZE (1..maxPLMN-r11)) OF AB-ConfigPLMN-NB-r13 + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +AB-ConfigPLMN-NB-r13 ::= SEQUENCE { + ab-Config-r13 AB-Config-NB-r13 OPTIONAL -- Need OR +} + +AB-Config-NB-r13 ::= SEQUENCE { + ab-Category-r13 ENUMERATED {a, b, c}, + ab-BarringBitmap-r13 BIT STRING (SIZE(10)), + ab-BarringForExceptionData-r13 ENUMERATED {true} OPTIONAL, -- Need OP + ab-BarringForSpecialAC-r13 BIT STRING (SIZE(5)) +} + + +SystemInformationBlockType15-NB-r14 ::= SEQUENCE { + mbms-SAI-IntraFreq-r14 MBMS-SAI-List-r11 OPTIONAL, -- Need OR + mbms-SAI-InterFreqList-r14 MBMS-SAI-InterFreqList-NB-r14 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +MBMS-SAI-InterFreqList-NB-r14 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-NB-r14 + +MBMS-SAI-InterFreq-NB-r14 ::= SEQUENCE { + dl-CarrierFreq-r14 CarrierFreq-NB-r13, + mbms-SAI-List-r14 MBMS-SAI-List-r11, + multiBandInfoList-r14 AdditionalBandInfoList-NB-r14 OPTIONAL -- Need OR +} + + +SystemInformationBlockType16-NB-r13 ::= SystemInformationBlockType16-r11 + + +SystemInformationBlockType20-NB-r14 ::= SEQUENCE { + npdcch-SC-MCCH-Config-r14 NPDCCH-SC-MCCH-Config-NB-r14, + sc-mcch-CarrierConfig-r14 CHOICE { + dl-CarrierConfig-r14 DL-CarrierConfigCommon-NB-r14, + dl-CarrierIndex-r14 INTEGER (0.. maxNonAnchorCarriers-NB-r14) + }, + sc-mcch-RepetitionPeriod-r14 ENUMERATED {rf32, rf128, rf512, rf1024, + rf2048, rf4096, rf8192, rf16384}, + sc-mcch-Offset-r14 INTEGER (0..10), + sc-mcch-ModificationPeriod-r14 ENUMERATED { rf32, rf128, rf256, rf512, rf1024, + rf2048, rf4096, rf8192, rf16384, rf32768, + rf65536, rf131072, rf262144, rf524288, + rf1048576, spare1}, + sc-mcch-SchedulingInfo-r14 SC-MCCH-SchedulingInfo-NB-r14 OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +NPDCCH-SC-MCCH-Config-NB-r14 ::= SEQUENCE { + npdcch-NumRepetitions-SC-MCCH-r14 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256, + r512, r1024, r2048}, + npdcch-StartSF-SC-MCCH-r14 ENUMERATED {v1dot5, v2, v4, v8, + v16, v32, v48, v64}, + npdcch-Offset-SC-MCCH-r14 ENUMERATED {zero, oneEighth, oneQuarter, + threeEighth, oneHalf, fiveEighth, + threeQuarter, sevenEighth} +} + +SC-MCCH-SchedulingInfo-NB-r14::= SEQUENCE { + onDurationTimerSCPTM-r14 ENUMERATED { + pp1, pp2, pp3, pp4, + pp8, pp16, pp32, spare}, + drx-InactivityTimerSCPTM-r14 ENUMERATED { + pp0, pp1, pp2, pp3, + pp4, pp8, pp16, pp32}, + schedulingPeriodStartOffsetSCPTM-r14 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2047), + sf4096 INTEGER(0..4095), + sf8192 INTEGER(0..8191) + }, + ... +} + + +SystemInformationBlockType22-NB-r14 ::= SEQUENCE { + dl-ConfigList-r14 DL-ConfigCommonList-NB-r14 OPTIONAL, -- Need OR + ul-ConfigList-r14 UL-ConfigCommonList-NB-r14 OPTIONAL, -- Need OR + pagingWeightAnchor-r14 PagingWeight-NB-r14 OPTIONAL, -- Cond pcch-config + nprach-ProbabilityAnchorList-r14 NPRACH-ProbabilityAnchorList-NB-r14 OPTIONAL, -- Cond nprach-config + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +DL-ConfigCommonList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNonAnchorCarriers-NB-r14)) OF + DL-ConfigCommon-NB-r14 + +UL-ConfigCommonList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNonAnchorCarriers-NB-r14)) OF + UL-ConfigCommon-NB-r14 + + +DL-ConfigCommon-NB-r14 ::= SEQUENCE { + dl-CarrierConfig-r14 DL-CarrierConfigCommon-NB-r14, + pcch-Config-r14 PCCH-Config-NB-r14 OPTIONAL, -- Need OR + ... +} + +PCCH-Config-NB-r14 ::= SEQUENCE { + npdcch-NumRepetitionPaging-r14 ENUMERATED { + r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1} OPTIONAL, -- Need OP + pagingWeight-r14 PagingWeight-NB-r14 DEFAULT w1, + ... +} + +PagingWeight-NB-r14 ::= ENUMERATED {w1, w2, w3, w4, w5, w6, w7, w8, + w9, w10, w11, w12, w13, w14, w15, w16} + +UL-ConfigCommon-NB-r14 ::= SEQUENCE { + ul-CarrierFreq-r14 CarrierFreq-NB-r13, + nprach-ParametersList-r14 NPRACH-ParametersList-NB-r14 OPTIONAL, -- Need OR + ... +} + +NPRACH-ParametersList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF + NPRACH-Parameters-NB-r14 + + +NPRACH-Parameters-NB-r14 ::= SEQUENCE { + nprach-Parameters-r14 SEQUENCE { + nprach-Periodicity-r14 ENUMERATED {ms40, ms80, ms160, ms240, + ms320, ms640, ms1280, ms2560} + OPTIONAL, -- NEED OP + nprach-StartTime-r14 ENUMERATED {ms8, ms16, ms32, ms64, + ms128, ms256, ms512, ms1024} + OPTIONAL, -- NEED OP + nprach-SubcarrierOffset-r14 ENUMERATED {n0, n12, n24, n36, n2, n18, n34, spare1} + OPTIONAL, -- NEED OP + nprach-NumSubcarriers-r14 ENUMERATED {n12, n24, n36, n48} + OPTIONAL, -- NEED OP + nprach-SubcarrierMSG3-RangeStart-r14 ENUMERATED {zero, oneThird, twoThird, one} + OPTIONAL, -- NEED OP + npdcch-NumRepetitions-RA-r14 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1} + OPTIONAL, -- NEED OP + npdcch-StartSF-CSS-RA-r14 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64} + OPTIONAL, -- NEED OP + npdcch-Offset-RA-r14 ENUMERATED {zero, oneEighth, oneFourth, threeEighth} + OPTIONAL, -- NEED OP + nprach-NumCBRA-StartSubcarriers-r14 ENUMERATED {n8, n10, n11, n12, n20, n22, n23, n24, + n32, n34, n35, n36, n40, n44, n46, n48} + OPTIONAL, -- NEED OP + npdcch-CarrierIndex-r14 INTEGER (1..maxNonAnchorCarriers-NB-r14) + OPTIONAL, -- Need OP + ... + } OPTIONAL -- Need OR +} + +NPRACH-ProbabilityAnchorList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF + NPRACH-ProbabilityAnchor-NB-r14 + +NPRACH-ProbabilityAnchor-NB-r14 ::= SEQUENCE { + nprach-ProbabilityAnchor-r14 ENUMERATED { + zero, oneSixteenth, oneFifteenth, oneFourteenth, + oneThirteenth, oneTwelfth, oneEleventh, oneTenth, + oneNinth, oneEighth, oneSeventh, oneSixth, + oneFifth, oneFourth, oneThird, oneHalf} + OPTIONAL -- Need OP +} + + +CarrierConfigDedicated-NB-r13 ::= SEQUENCE { + dl-CarrierConfig-r13 DL-CarrierConfigDedicated-NB-r13, + ul-CarrierConfig-r13 UL-CarrierConfigDedicated-NB-r13 +} + +DL-CarrierConfigDedicated-NB-r13 ::= SEQUENCE { + dl-CarrierFreq-r13 CarrierFreq-NB-r13, + downlinkBitmapNonAnchor-r13 CHOICE { + useNoBitmap-r13 NULL, + useAnchorBitmap-r13 NULL, + explicitBitmapConfiguration-r13 DL-Bitmap-NB-r13, + spare NULL + } OPTIONAL, -- Need ON + dl-GapNonAnchor-r13 CHOICE { + useNoGap-r13 NULL, + useAnchorGapConfig-r13 NULL, + explicitGapConfiguration-r13 DL-GapConfig-NB-r13, + spare NULL + } OPTIONAL, -- Need ON + inbandCarrierInfo-r13 SEQUENCE { + samePCI-Indicator-r13 CHOICE { + samePCI-r13 SEQUENCE { + indexToMidPRB-r13 INTEGER (-55..54) + }, + differentPCI-r13 SEQUENCE { + eutra-NumCRS-Ports-r13 ENUMERATED {same, four} + } + } OPTIONAL, -- Cond anchor-guardband + eutraControlRegionSize-r13 ENUMERATED {n1, n2, n3} + } OPTIONAL, -- Cond non-anchor-inband + ..., + [[ nrs-PowerOffsetNonAnchor-v1330 ENUMERATED {dB-12, dB-10, dB-8, dB-6, + dB-4, dB-2, dB0, dB3} + OPTIONAL -- Need ON + ]] +} + +UL-CarrierConfigDedicated-NB-r13 ::= SEQUENCE { + ul-CarrierFreq-r13 CarrierFreq-NB-r13 OPTIONAL, -- Need OP + ... +} + + +CarrierFreq-NB-r13 ::= SEQUENCE { + carrierFreq-r13 ARFCN-ValueEUTRA-r9, + carrierFreqOffset-r13 ENUMERATED { + v-10, v-9, v-8, v-7, v-6, v-5, v-4, v-3, v-2, v-1, v-0dot5, + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9 + } OPTIONAL -- Need ON +} + + +DL-Bitmap-NB-r13 ::= CHOICE { + subframePattern10-r13 BIT STRING (SIZE (10)), + subframePattern40-r13 BIT STRING (SIZE (40)) +} + + +DL-CarrierConfigCommon-NB-r14 ::= SEQUENCE { + dl-CarrierFreq-r14 CarrierFreq-NB-r13, + downlinkBitmapNonAnchor-r14 CHOICE { + useNoBitmap-r14 NULL, + useAnchorBitmap-r14 NULL, + explicitBitmapConfiguration-r14 DL-Bitmap-NB-r13 + }, + dl-GapNonAnchor-r14 CHOICE { + useNoGap-r14 NULL, + useAnchorGapConfig-r14 NULL, + explicitGapConfiguration-r14 DL-GapConfig-NB-r13 + }, + inbandCarrierInfo-r14 SEQUENCE { + samePCI-Indicator-r14 CHOICE { + samePCI-r14 SEQUENCE { + indexToMidPRB-r14 INTEGER (-55..54) + }, + differentPCI-r14 SEQUENCE { + eutra-NumCRS-Ports-r14 ENUMERATED {same, four} + } + } OPTIONAL, -- Cond anchor-guardband + eutraControlRegionSize-r14 ENUMERATED {n1, n2, n3} + } OPTIONAL, -- Cond non-anchor-inband + nrs-PowerOffsetNonAnchor-r14 ENUMERATED {dB-12, dB-10, dB-8, dB-6, + dB-4, dB-2, dB0, dB3} DEFAULT dB0, + ... +} + + + +DL-GapConfig-NB-r13 ::= SEQUENCE { + dl-GapThreshold-r13 ENUMERATED {n32, n64, n128, n256}, + dl-GapPeriodicity-r13 ENUMERATED {sf64, sf128, sf256, sf512}, + dl-GapDurationCoeff-r13 ENUMERATED {oneEighth, oneFourth, threeEighth, oneHalf} +} + + +LogicalChannelConfig-NB-r13 ::= SEQUENCE { + priority-r13 INTEGER (1..16) OPTIONAL, -- Cond UL + logicalChannelSR-Prohibit-r13 BOOLEAN OPTIONAL, -- Need ON + ... +} + + +MAC-MainConfig-NB-r13 ::= SEQUENCE { + ul-SCH-Config-r13 SEQUENCE { + periodicBSR-Timer-r13 PeriodicBSR-Timer-NB-r13 OPTIONAL, -- Need ON + retxBSR-Timer-r13 RetxBSR-Timer-NB-r13 + } OPTIONAL, -- Need ON + drx-Config-r13 DRX-Config-NB-r13 OPTIONAL, -- Need ON + timeAlignmentTimerDedicated-r13 TimeAlignmentTimer, + logicalChannelSR-Config-r13 CHOICE { + release NULL, + setup SEQUENCE { + logicalChannelSR-ProhibitTimer-r13 ENUMERATED { + pp2, pp8, pp32, pp128, pp512, + pp1024, pp2048, spare} + } + } OPTIONAL, -- Need ON + ..., + [[ rai-Activation-r14 ENUMERATED {true} OPTIONAL, -- Need OR + dataInactivityTimerConfig-r14 CHOICE { + release NULL, + setup SEQUENCE { + dataInactivityTimer-r14 DataInactivityTimer-r14 + } + } OPTIONAL -- Need ON + ]], + [[ drx-Cycle-v1430 ENUMERATED { + sf1280, sf2560, sf5120, sf10240} OPTIONAL -- Need ON + ]], + [[ ra-CFRA-Config-r14 ENUMERATED {true} OPTIONAL -- Need ON + ]] +} + +PeriodicBSR-Timer-NB-r13 ::= ENUMERATED { + pp2, pp4, pp8, pp16, pp64, pp128, infinity, spare} + +RetxBSR-Timer-NB-r13 ::= ENUMERATED { + pp4, pp16, pp64, pp128, pp256, pp512, infinity, spare} + +DRX-Config-NB-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + onDurationTimer-r13 ENUMERATED { + pp1, pp2, pp3, pp4, pp8, pp16, pp32, spare}, + drx-InactivityTimer-r13 ENUMERATED { + pp0, pp1, pp2, pp3, pp4, pp8, pp16, pp32}, + drx-RetransmissionTimer-r13 ENUMERATED { + pp0, pp1, pp2, pp4, pp6, pp8, pp16, pp24, + pp33, spare7, spare6, spare5, + spare4, spare3, spare2, spare1}, + drx-Cycle-r13 ENUMERATED { + sf256, sf512, sf1024, sf1536, sf2048, sf3072, + sf4096, sf4608, sf6144, sf7680, sf8192, sf9216, + spare4, spare3, spare2, spare1}, + drx-StartOffset-r13 INTEGER (0..255), + drx-ULRetransmissionTimer-r13 ENUMERATED { + pp0, pp1, pp2, pp4, pp6, pp8, pp16, pp24, + pp33, pp40, pp64, pp80, pp96, + pp112, pp128, pp160, pp320} + } +} + + + +NPDCCH-ConfigDedicated-NB-r13 ::= SEQUENCE { + npdcch-NumRepetitions-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1}, + npdcch-StartSF-USS-r13 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64}, + npdcch-Offset-USS-r13 ENUMERATED {zero, oneEighth, oneFourth, threeEighth} +} + + + +NPDSCH-ConfigCommon-NB-r13 ::= SEQUENCE { + nrs-Power-r13 INTEGER (-60..50) +} + + +NPRACH-ConfigSIB-NB-r13 ::= SEQUENCE { + nprach-CP-Length-r13 ENUMERATED {us66dot7, us266dot7}, + rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsNPRACH-InfoList-NB-r13 OPTIONAL, -- need OR + nprach-ParametersList-r13 NPRACH-ParametersList-NB-r13 +} + +NPRACH-ConfigSIB-NB-v1330 ::= SEQUENCE { + nprach-ParametersList-v1330 NPRACH-ParametersList-NB-v1330 +} + +NPRACH-ConfigSIB-NB-v1450 ::= SEQUENCE { + maxNumPreambleAttemptCE-r14 ENUMERATED {n3, n4, n5, n6, n7, n8, n10, spare1} +} + +NPRACH-ParametersList-NB-r13 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF NPRACH-Parameters-NB-r13 + +NPRACH-ParametersList-NB-v1330 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF NPRACH-Parameters-NB-v1330 + +NPRACH-Parameters-NB-r13::= SEQUENCE { + nprach-Periodicity-r13 ENUMERATED {ms40, ms80, ms160, ms240, + ms320, ms640, ms1280, ms2560}, + nprach-StartTime-r13 ENUMERATED {ms8, ms16, ms32, ms64, + ms128, ms256, ms512, ms1024}, + nprach-SubcarrierOffset-r13 ENUMERATED {n0, n12, n24, n36, n2, n18, n34, spare1}, + nprach-NumSubcarriers-r13 ENUMERATED {n12, n24, n36, n48}, + nprach-SubcarrierMSG3-RangeStart-r13 ENUMERATED {zero, oneThird, twoThird, one}, + maxNumPreambleAttemptCE-r13 ENUMERATED {n3, n4, n5, n6, n7, n8, n10, spare1}, + numRepetitionsPerPreambleAttempt-r13 ENUMERATED {n1, n2, n4, n8, n16, n32, n64, n128}, + npdcch-NumRepetitions-RA-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1}, + npdcch-StartSF-CSS-RA-r13 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64}, + npdcch-Offset-RA-r13 ENUMERATED {zero, oneEighth, oneFourth, threeEighth} +} + +NPRACH-Parameters-NB-v1330 ::= SEQUENCE { + nprach-NumCBRA-StartSubcarriers-r13 ENUMERATED {n8, n10, n11, n12, n20, n22, n23, n24, + n32, n34, n35, n36, n40, n44, n46, n48} +} + +RSRP-ThresholdsNPRACH-InfoList-NB-r13 ::= SEQUENCE (SIZE(1..2)) OF RSRP-Range + + +NPUSCH-ConfigCommon-NB-r13 ::= SEQUENCE { + ack-NACK-NumRepetitions-Msg4-r13 SEQUENCE (SIZE(1.. maxNPRACH-Resources-NB-r13)) OF + ACK-NACK-NumRepetitions-NB-r13, + srs-SubframeConfig-r13 ENUMERATED { + sc0, sc1, sc2, sc3, sc4, sc5, sc6, sc7, + sc8, sc9, sc10, sc11, sc12, sc13, sc14, sc15 + } OPTIONAL, -- Need OR + dmrs-Config-r13 SEQUENCE { + threeTone-BaseSequence-r13 INTEGER (0..12) OPTIONAL, -- Need OP + threeTone-CyclicShift-r13 INTEGER (0..2), + sixTone-BaseSequence-r13 INTEGER (0..14) OPTIONAL, -- Need OP + sixTone-CyclicShift-r13 INTEGER (0..3), + twelveTone-BaseSequence-r13 INTEGER (0..30) OPTIONAL -- Need OP + } OPTIONAL, -- Need OR + ul-ReferenceSignalsNPUSCH-r13 UL-ReferenceSignalsNPUSCH-NB-r13 +} + +UL-ReferenceSignalsNPUSCH-NB-r13 ::= SEQUENCE { + groupHoppingEnabled-r13 BOOLEAN, + groupAssignmentNPUSCH-r13 INTEGER (0..29) +} + +NPUSCH-ConfigDedicated-NB-r13 ::= SEQUENCE { + ack-NACK-NumRepetitions-r13 ACK-NACK-NumRepetitions-NB-r13 OPTIONAL, -- Need ON + npusch-AllSymbols-r13 BOOLEAN OPTIONAL, -- Cond SRS + groupHoppingDisabled-r13 ENUMERATED {true} OPTIONAL -- Need OR +} + +ACK-NACK-NumRepetitions-NB-r13 ::= ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128} + + + +PDCP-Config-NB-r13 ::= SEQUENCE { + discardTimer-r13 ENUMERATED { + ms5120, ms10240, ms20480, ms40960, + ms81920, infinity, spare2, spare1 + } OPTIONAL, -- Cond Setup + headerCompression-r13 CHOICE { + notUsed NULL, + rohc SEQUENCE { + maxCID-r13 INTEGER (1..16383) DEFAULT 15, + profiles-r13 SEQUENCE { + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + ... + } + }, + ... +} + + +PhysicalConfigDedicated-NB-r13 ::= SEQUENCE { + carrierConfigDedicated-r13 CarrierConfigDedicated-NB-r13 OPTIONAL, -- Need ON + npdcch-ConfigDedicated-r13 NPDCCH-ConfigDedicated-NB-r13 OPTIONAL, -- Need ON + npusch-ConfigDedicated-r13 NPUSCH-ConfigDedicated-NB-r13 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-r13 UplinkPowerControlDedicated-NB-r13 OPTIONAL, -- Need ON + ..., + [[ twoHARQ-ProcessesConfig-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ interferenceRandomisationConfig-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + + +RACH-ConfigCommon-NB-r13 ::= SEQUENCE { + preambleTransMax-CE-r13 PreambleTransMax, + powerRampingParameters-r13 PowerRampingParameters, + rach-InfoList-r13 RACH-InfoList-NB-r13, + connEstFailOffset-r13 INTEGER (0..15) OPTIONAL, -- Need OP + ..., + [[ powerRampingParameters-v1450 PowerRampingParameters-NB-v1450 OPTIONAL -- Need OR + ]] +} + +RACH-InfoList-NB-r13 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF RACH-Info-NB-r13 + +RACH-Info-NB-r13 ::= SEQUENCE { + ra-ResponseWindowSize-r13 ENUMERATED { + pp2, pp3, pp4, pp5, pp6, pp7, pp8, pp10}, + mac-ContentionResolutionTimer-r13 ENUMERATED { + pp1, pp2, pp3, pp4, pp8, pp16, pp32, pp64} +} + +PowerRampingParameters-NB-v1450 ::= SEQUENCE { + preambleInitialReceivedTargetPower-v1450 ENUMERATED { + dBm-130, dBm-128, dBm-126, dBm-124, dBm-122, + dBm-88, dBm-86, dBm-84,dBm-82, dBm-80} + OPTIONAL, -- Need OR + powerRampingParametersCE1-r14 SEQUENCE { + powerRampingStepCE1-r14 ENUMERATED {dB0, dB2, dB4, dB6}, + preambleInitialReceivedTargetPowerCE1-r14 ENUMERATED { + dBm-130, dBm-128, dBm-126, dBm-124, dBm-122, + dBm-120, dBm-118, dBm-116, dBm-114, dBm-112, + dBm-110, dBm-108, dBm-106, dBm-104, dBm-102, + dBm-100, dBm-98, dBm-96, dBm-94, dBm-92, + dBm-90, dBm-88, dBm-86, dBm-84, dBm-82, dBm-80} + } OPTIONAL -- Need OR +} + + +RadioResourceConfigCommonSIB-NB-r13 ::= SEQUENCE { + rach-ConfigCommon-r13 RACH-ConfigCommon-NB-r13, + bcch-Config-r13 BCCH-Config-NB-r13, + pcch-Config-r13 PCCH-Config-NB-r13, + nprach-Config-r13 NPRACH-ConfigSIB-NB-r13, + npdsch-ConfigCommon-r13 NPDSCH-ConfigCommon-NB-r13, + npusch-ConfigCommon-r13 NPUSCH-ConfigCommon-NB-r13, + dl-Gap-r13 DL-GapConfig-NB-r13 OPTIONAL, -- Need OP + uplinkPowerControlCommon-r13 UplinkPowerControlCommon-NB-r13, + ..., + [[ nprach-Config-v1330 NPRACH-ConfigSIB-NB-v1330 OPTIONAL -- Need OR + ]], + [[ nprach-Config-v1450 NPRACH-ConfigSIB-NB-v1450 OPTIONAL -- Cond EnhPowerControl + ]] +} + +BCCH-Config-NB-r13 ::= SEQUENCE { + modificationPeriodCoeff-r13 ENUMERATED {n16, n32, n64, n128} +} + + +PCCH-Config-NB-r13 ::= SEQUENCE { + defaultPagingCycle-r13 ENUMERATED {rf128, rf256, rf512, rf1024}, + nB-r13 ENUMERATED { + fourT, twoT, oneT, halfT, quarterT, one8thT, + one16thT, one32ndT, one64thT, + one128thT, one256thT, one512thT, one1024thT, + spare3, spare2, spare1}, + npdcch-NumRepetitionPaging-r13 ENUMERATED { + r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1} +} + + +RadioResourceConfigDedicated-NB-r13 ::= SEQUENCE { + srb-ToAddModList-r13 SRB-ToAddModList-NB-r13 OPTIONAL, -- Need ON + drb-ToAddModList-r13 DRB-ToAddModList-NB-r13 OPTIONAL, -- Need ON + drb-ToReleaseList-r13 DRB-ToReleaseList-NB-r13 OPTIONAL, -- Need ON + mac-MainConfig-r13 CHOICE { + explicitValue-r13 MAC-MainConfig-NB-r13, + defaultValue-r13 NULL + } OPTIONAL, -- Need ON + physicalConfigDedicated-r13 PhysicalConfigDedicated-NB-r13 OPTIONAL, -- Need ON + rlf-TimersAndConstants-r13 RLF-TimersAndConstants-NB-r13 OPTIONAL, -- Need ON + ... +} + +SRB-ToAddModList-NB-r13 ::= SEQUENCE (SIZE (1)) OF SRB-ToAddMod-NB-r13 + +SRB-ToAddMod-NB-r13 ::= SEQUENCE { + rlc-Config-r13 CHOICE { + explicitValue RLC-Config-NB-r13, + defaultValue NULL + } OPTIONAL, -- Cond Setup + logicalChannelConfig-r13 CHOICE { + explicitValue LogicalChannelConfig-NB-r13, + defaultValue NULL + } OPTIONAL, -- Cond Setup + ..., + [[ rlc-Config-v1430 RLC-Config-NB-v1430 OPTIONAL -- Need ON + ]] +} + +DRB-ToAddModList-NB-r13 ::= SEQUENCE (SIZE (1..maxDRB-NB-r13)) OF DRB-ToAddMod-NB-r13 + +DRB-ToAddMod-NB-r13 ::= SEQUENCE { + eps-BearerIdentity-r13 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity-r13 DRB-Identity, + pdcp-Config-r13 PDCP-Config-NB-r13 OPTIONAL, -- Cond Setup + rlc-Config-r13 RLC-Config-NB-r13 OPTIONAL, -- Cond Setup + logicalChannelIdentity-r13 INTEGER (3..10) OPTIONAL, -- Cond DRB-Setup + logicalChannelConfig-r13 LogicalChannelConfig-NB-r13 OPTIONAL, -- Cond Setup + ..., + [[ rlc-Config-v1430 RLC-Config-NB-v1430 OPTIONAL -- Need ON + ]] +} + +DRB-ToReleaseList-NB-r13 ::= SEQUENCE (SIZE (1..maxDRB-NB-r13)) OF DRB-Identity + + +RLC-Config-NB-r13 ::= CHOICE { + am SEQUENCE { + ul-AM-RLC-r13 UL-AM-RLC-NB-r13, + dl-AM-RLC-r13 DL-AM-RLC-NB-r13 + }, + ... +} + +RLC-Config-NB-v1430 ::= SEQUENCE { + t-Reordering-r14 T-Reordering OPTIONAL -- Cond twoHARQ +} + +UL-AM-RLC-NB-r13 ::= SEQUENCE { + t-PollRetransmit-r13 T-PollRetransmit-NB-r13, + maxRetxThreshold-r13 ENUMERATED {t1, t2, t3, t4, t6, t8, t16, t32} +} + +DL-AM-RLC-NB-r13 ::= SEQUENCE { + enableStatusReportSN-Gap-r13 ENUMERATED {true} OPTIONAL +} + +T-PollRetransmit-NB-r13 ::= ENUMERATED { + ms250, ms500, ms1000, ms2000, ms3000, ms4000, + ms6000, ms10000, ms15000, ms25000, ms40000, ms60000, + ms90000, ms120000, ms180000, spare1} + + + + +RLF-TimersAndConstants-NB-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + t301-r13 ENUMERATED { + ms2500, ms4000, ms6000, ms10000, + ms15000, ms25000, ms40000, ms60000}, + t310-r13 ENUMERATED { + ms0, ms200, ms500, ms1000, ms2000, ms4000, ms8000}, + n310-r13 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311-r13 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311-r13 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ..., + [[ t311-v1350 ENUMERATED { + ms40000, ms60000, ms90000, ms120000} + OPTIONAL -- Need OR + ]] + } +} + + + +UplinkPowerControlCommon-NB-r13 ::= SEQUENCE { + p0-NominalNPUSCH-r13 INTEGER (-126..24), + alpha-r13 ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1}, + deltaPreambleMsg3-r13 INTEGER (-1..6) +} + +UplinkPowerControlDedicated-NB-r13 ::= SEQUENCE { + p0-UE-NPUSCH-r13 INTEGER (-8..7) +} + + +AdditionalBandInfoList-NB-r14 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-NB-r13 + + +FreqBandIndicator-NB-r13 ::= INTEGER (1.. maxFBI2) + + +MultiBandInfoList-NB-r13 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF MultiBandInfo-NB-r13 + +MultiBandInfo-NB-r13 ::= SEQUENCE { + freqBandIndicator-r13 FreqBandIndicator-NB-r13 OPTIONAL, -- Need OR + freqBandInfo-r13 NS-PmaxList-NB-r13 OPTIONAL -- Need OR +} + + +NS-PmaxList-NB-r13 ::= SEQUENCE (SIZE (1..maxNS-Pmax-NB-r13)) OF NS-PmaxValue-NB-r13 + +NS-PmaxValue-NB-r13 ::= SEQUENCE { + additionalPmax-r13 P-Max OPTIONAL, -- Need OR + additionalSpectrumEmission-r13 AdditionalSpectrumEmission +} + + +ReselectionThreshold-NB-v1360 ::= INTEGER (32..63) + + +T-Reselection-NB-r13 ::= ENUMERATED {s0, s3, s6, s9, s12, s15, s18, s21} + + +CQI-NPDCCH-NB-r14 ::= ENUMERATED { + noMeasurements, candidateRep-A, candidateRep-B, candidateRep-C, + candidateRep-D, candidateRep-E, candidateRep-F, candidateRep-G, + candidateRep-H, candidateRep-I, candidateRep-J, candidateRep-K, + candidateRep-L} + + +CQI-NPDCCH-Short-NB-r14 ::= ENUMERATED { + noMeasurements, candidateRep-1, candidateRep-2, candidateRep-3} + + +MeasResultServCell-NB-r14 ::= SEQUENCE { + nrsrpResult-r14 NRSRP-Range-NB-r14, + nrsrqResult-r14 NRSRQ-Range-NB-r14 +} + + +NRSRP-Range-NB-r14 ::= INTEGER(0..113) + + +NRSRQ-Range-NB-r14 ::= INTEGER(-30..46) + + +EstablishmentCause-NB-r13 ::= ENUMERATED { + mt-Access, mo-Signalling, mo-Data, mo-ExceptionData, + delayTolerantAccess-v1330, spare3, spare2, spare1} + + +UE-Capability-NB-r13 ::= SEQUENCE { + accessStratumRelease-r13 AccessStratumRelease-NB-r13, + ue-Category-NB-r13 ENUMERATED {nb1} OPTIONAL, + multipleDRB-r13 ENUMERATED {supported} OPTIONAL, + pdcp-Parameters-r13 PDCP-Parameters-NB-r13 OPTIONAL, + phyLayerParameters-r13 PhyLayerParameters-NB-r13, + rf-Parameters-r13 RF-Parameters-NB-r13, + dummy SEQUENCE {} OPTIONAL +} + +UE-Capability-NB-Ext-r14-IEs ::= SEQUENCE { + ue-Category-NB-r14 ENUMERATED {nb2} OPTIONAL, + mac-Parameters-r14 MAC-Parameters-NB-r14 OPTIONAL, + phyLayerParameters-v1430 PhyLayerParameters-NB-v1430 OPTIONAL, + rf-Parameters-v1430 RF-Parameters-NB-v1430, + nonCriticalExtension UE-Capability-NB-v1440-IEs OPTIONAL +} + +UE-Capability-NB-v1440-IEs ::= SEQUENCE { + phyLayerParameters-v1440 PhyLayerParameters-NB-v1440 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AccessStratumRelease-NB-r13 ::= ENUMERATED {rel13, rel14, spare6, spare5, spare4, spare3, spare2, spare1, ...} + +PDCP-Parameters-NB-r13 ::= SEQUENCE { + supportedROHC-Profiles-r13 SEQUENCE { + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + maxNumberROHC-ContextSessions-r13 ENUMERATED {cs2, cs4, cs8, cs12} DEFAULT cs2, + ... +} + +MAC-Parameters-NB-r14 ::= SEQUENCE { + dataInactMon-r14 ENUMERATED {supported} OPTIONAL, + rai-Support-r14 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-NB-r13 ::= SEQUENCE { + multiTone-r13 ENUMERATED {supported} OPTIONAL, + multiCarrier-r13 ENUMERATED {supported} OPTIONAL + } + +PhyLayerParameters-NB-v1430 ::= SEQUENCE { + multiCarrier-NPRACH-r14 ENUMERATED {supported} OPTIONAL, + twoHARQ-Processes-r14 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-NB-v1440 ::= SEQUENCE { + interferenceRandomisation-r14 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-NB-r13 ::= SEQUENCE { + supportedBandList-r13 SupportedBandList-NB-r13, + multiNS-Pmax-r13 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-NB-v1430 ::= SEQUENCE { + powerClassNB-14dBm-r14 ENUMERATED {supported} OPTIONAL +} + +SupportedBandList-NB-r13 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBand-NB-r13 + +SupportedBand-NB-r13 ::= SEQUENCE { + band-r13 FreqBandIndicator-NB-r13, + powerClassNB-20dBm-r13 ENUMERATED {supported} OPTIONAL +} + + +UE-RadioPagingInfo-NB-r13 ::= SEQUENCE { + ue-Category-NB-r13 ENUMERATED {nb1} OPTIONAL, + ..., + [[ multiCarrierPaging-r14 ENUMERATED {true} OPTIONAL + ]] +} + + +UE-TimersAndConstants-NB-r13 ::= SEQUENCE { + t300-r13 ENUMERATED { + ms2500, ms4000, ms6000, ms10000, + ms15000, ms25000, ms40000, ms60000}, + t301-r13 ENUMERATED { + ms2500, ms4000, ms6000, ms10000, + ms15000, ms25000, ms40000, ms60000}, + t310-r13 ENUMERATED { + ms0, ms200, ms500, ms1000, ms2000, ms4000, ms8000}, + n310-r13 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311-r13 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311-r13 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ..., + [[ t311-v1350 ENUMERATED { + ms40000, ms60000, ms90000, ms120000} + OPTIONAL -- Need OR + ]] +} + + +SC-MTCH-InfoList-NB-r14 ::= SEQUENCE (SIZE (0.. maxSC-MTCH-NB-r14)) OF SC-MTCH-Info-NB-r14 + +SC-MTCH-Info-NB-r14 ::= SEQUENCE { + sc-mtch-CarrierConfig-r14 CHOICE { + dl-CarrierConfig-r14 DL-CarrierConfigCommon-NB-r14, + dl-CarrierIndex-r14 INTEGER (0.. maxNonAnchorCarriers-NB-r14) + }, + mbmsSessionInfo-r14 MBMSSessionInfo-r13, + g-RNTI-r14 BIT STRING(SIZE(16)), + sc-mtch-SchedulingInfo-r14 SC-MTCH-SchedulingInfo-NB-r14 OPTIONAL, -- Need OP + sc-mtch-NeighbourCell-r14 BIT STRING (SIZE(maxNeighCell-SCPTM-NB-r14)) OPTIONAL, -- Need OP + npdcch-NPDSCH-MaxTBS-SC-MTCH-r14 ENUMERATED {n680, n2536}, + npdcch-NumRepetitions-SC-MTCH-r14 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256, + r512, r1024, r2048, spare4, + spare3, spare2, spare1}, + npdcch-StartSF-SC-MTCH-r14 ENUMERATED {v1dot5, v2, v4, v8, + v16, v32, v48, v64}, + npdcch-Offset-SC-MTCH-r14 ENUMERATED {zero, oneEighth, oneQuarter, + threeEighth, oneHalf, fiveEighth, + threeQuarter, sevenEighth}, + ... +} + +SC-MTCH-SchedulingInfo-NB-r14 ::= SEQUENCE { + onDurationTimerSCPTM-r14 ENUMERATED { + pp1, pp2, pp3, pp4, + pp8, pp16, pp32, spare}, + drx-InactivityTimerSCPTM-r14 ENUMERATED { + pp0, pp1, pp2, pp3, + pp4, pp8, pp16, pp32}, + schedulingPeriodStartOffsetSCPTM-r14 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2047), + sf4096 INTEGER(0..4095), + sf8192 INTEGER(0..8191) + }, + ... +} + + +SCPTM-NeighbourCellList-NB-r14 ::= SEQUENCE (SIZE (1..maxNeighCell-SCPTM-NB-r14)) OF PCI-ARFCN-NB-r14 + +PCI-ARFCN-NB-r14 ::= SEQUENCE { + physCellId-r14 PhysCellId, + carrierFreq-r14 CarrierFreq-NB-r13 OPTIONAL -- Need OP +} + + +maxNPRACH-Resources-NB-r13 INTEGER ::= 3 -- Maximum number of NPRACH resources for NB-IoT +maxNonAnchorCarriers-NB-r14 INTEGER ::= 15 -- Maximum number of non-anchor carriers for NB-IoT +maxDRB-NB-r13 INTEGER ::= 2 -- Maximum number of Data Radio Bearers for NB-IoT +maxNeighCell-SCPTM-NB-r14 INTEGER ::= 8 -- Maximum number of SCPTM neighbour cells +maxNS-Pmax-NB-r13 INTEGER ::= 4 -- Maximum number of NS and P-Max values per band +maxSC-MTCH-NB-r14 INTEGER ::= 64 -- Maximum number of SC-MTCHs in one cell for NB-IoT +maxSI-Message-NB-r13 INTEGER ::= 8 -- Maximum number of SI messages for NB-IoT + + +END + + +EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AbsoluteTimeInfo-r10, + AreaConfiguration-r10, + AreaConfiguration-v1130, + CarrierFreqGERAN, + CellIdentity, + ConnEstFailReport-r11, + SpeedStateScaleFactors, + C-RNTI, + LoggingDuration-r10, + LoggingInterval-r10, + LogMeasInfo-r10, + MeasCSI-RS-Id-r12, + MeasId, + MeasId-v1250, + MeasIdToAddModList, + MeasIdToAddModListExt-r12, + MeasIdToAddModList-v1310, + MeasIdToAddModListExt-v1310, + MeasObjectToAddModList, + MeasObjectToAddModList-v9e0, + MeasObjectToAddModListExt-r13, + MeasScaleFactor-r12, + MobilityStateParameters, + NeighCellConfig, + PhysCellId, + PhysCellIdCDMA2000, + PhysCellIdGERAN, + PhysCellIdUTRA-FDD, + PhysCellIdUTRA-TDD, + PLMN-Identity, + PLMN-IdentityList3-r11, + QuantityConfig, + ReportConfigToAddModList, + RLF-Report-r9, + TargetMBSFN-AreaList-r12, + TraceReference-r10, + Tx-ResourcePoolMeasList-r14, + VisitedCellInfoList-r12, + maxCellMeas, + maxCSI-RS-Meas-r12, + maxMeasId, + maxMeasId-r12, + UL-DelayConfig-r13, + WLAN-CarrierInfo-r13, + WLAN-Identifiers-r12, + WLAN-Id-List-r13, + WLAN-Status-r13, + WLAN-Status-v1430, + WLAN-SuspendConfig-r14 + +FROM EUTRA-RRC-Definitions; + + +VarConnEstFailReport-r11 ::= SEQUENCE { + connEstFailReport-r11 ConnEstFailReport-r11, + plmn-Identity-r11 PLMN-Identity +} + + +VarLogMeasConfig-r10 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10 +} + +VarLogMeasConfig-r11 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10 +} + +VarLogMeasConfig-r12 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10, + targetMBSFN-AreaList-r12 TargetMBSFN-AreaList-r12 OPTIONAL +} + + +VarLogMeasReport-r10 ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + plmn-Identity-r10 PLMN-Identity, + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + logMeasInfoList-r10 LogMeasInfoList2-r10 +} + +VarLogMeasReport-r11 ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + plmn-IdentityList-r11 PLMN-IdentityList3-r11, + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + logMeasInfoList-r10 LogMeasInfoList2-r10 +} + +LogMeasInfoList2-r10 ::= SEQUENCE (SIZE (1..maxLogMeas-r10)) OF LogMeasInfo-r10 + + +VarMeasConfig ::= SEQUENCE { + -- Measurement identities + measIdList MeasIdToAddModList OPTIONAL, + measIdListExt-r12 MeasIdToAddModListExt-r12 OPTIONAL, + measIdList-v1310 MeasIdToAddModList-v1310 OPTIONAL, + measIdListExt-v1310 MeasIdToAddModListExt-v1310 OPTIONAL, + -- Measurement objects + measObjectList MeasObjectToAddModList OPTIONAL, + measObjectListExt-r13 MeasObjectToAddModListExt-r13 OPTIONAL, + measObjectList-v9i0 MeasObjectToAddModList-v9e0 OPTIONAL, + -- Reporting configurations + reportConfigList ReportConfigToAddModList OPTIONAL, + -- Other parameters + quantityConfig QuantityConfig OPTIONAL, + measScaleFactor-r12 MeasScaleFactor-r12 OPTIONAL, + s-Measure INTEGER (-140..-44) OPTIONAL, + speedStatePars CHOICE { + release NULL, + setup SEQUENCE { + mobilityStateParameters MobilityStateParameters, + timeToTrigger-SF SpeedStateScaleFactors + } + } OPTIONAL, + allowInterruptions-r11 BOOLEAN OPTIONAL +} + + +VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport +VarMeasReportList-r12 ::= SEQUENCE (SIZE (1..maxMeasId-r12)) OF VarMeasReport + +VarMeasReport ::= SEQUENCE { + -- List of measurement that have been triggered + measId MeasId, + measId-v1250 MeasId-v1250 OPTIONAL, + cellsTriggeredList CellsTriggeredList OPTIONAL, + csi-RS-TriggeredList-r12 CSI-RS-TriggeredList-r12 OPTIONAL, + poolsTriggeredList-r14 Tx-ResourcePoolMeasList-r14 OPTIONAL, + numberOfReportsSent INTEGER +} + +CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CHOICE { + physCellIdEUTRA PhysCellId, + physCellIdUTRA CHOICE { + fdd PhysCellIdUTRA-FDD, + tdd PhysCellIdUTRA-TDD + }, + physCellIdGERAN SEQUENCE { + carrierFreq CarrierFreqGERAN, + physCellId PhysCellIdGERAN + }, + physCellIdCDMA2000 PhysCellIdCDMA2000, + wlan-Identifiers-r13 WLAN-Identifiers-r12 +} + +CSI-RS-TriggeredList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Id-r12 + +VarMobilityHistoryReport-r12 ::= VisitedCellInfoList-r12 + + +VarRLF-Report-r10 ::= SEQUENCE { + rlf-Report-r10 RLF-Report-r9, + plmn-Identity-r10 PLMN-Identity +} + +VarRLF-Report-r11 ::= SEQUENCE { + rlf-Report-r10 RLF-Report-r9, + plmn-IdentityList-r11 PLMN-IdentityList3-r11 +} + + +VarShortMAC-Input ::= SEQUENCE { + cellIdentity CellIdentity, + physCellId PhysCellId, + c-RNTI C-RNTI +} + + +VarShortResumeMAC-Input-r13 ::= SEQUENCE { + cellIdentity-r13 CellIdentity, + physCellId-r13 PhysCellId, + c-RNTI-r13 C-RNTI, + resumeDiscriminator-r13 BIT STRING(SIZE(1)) +} + + +VarWLAN-MobilityConfig ::= SEQUENCE { + wlan-MobilitySet-r13 WLAN-Id-List-r13 OPTIONAL, + successReportRequested ENUMERATED {true} OPTIONAL, + wlan-SuspendConfig-r14 WLAN-SuspendConfig-r14 OPTIONAL +} + + +VarWLAN-Status-r13 ::= SEQUENCE { + status-r13 WLAN-Status-r13, + status-r14 WLAN-Status-v1430 OPTIONAL +} + + +maxLogMeas-r10 INTEGER ::= 4060-- Maximum number of logged measurement entries + -- that can be stored by the UE + + +END + + +NBIOT-UE-Variables DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + VarShortMAC-Input, + VarShortResumeMAC-Input-r13 + +FROM EUTRA-UE-Variables; + +VarShortMAC-Input-NB-r13 ::= VarShortMAC-Input + +VarShortResumeMAC-Input-NB-r13 ::= VarShortResumeMAC-Input-r13 + + +END + + +EUTRA-Sidelink-Preconf DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AdditionalSpectrumEmission, + AdditionalSpectrumEmission-v10l0, + ARFCN-ValueEUTRA-r9, + FilterCoefficient, + maxCBR-Level-r14, + maxCBR-Level-1-r14, + maxFreq, + maxFreqV2X-r14, + maxSL-TxPool-r12, + maxSL-CommRxPoolPreconf-v1310, + maxSL-CommTxPoolPreconf-v1310, + maxSL-DiscRxPoolPreconf-r13, + maxSL-DiscTxPoolPreconf-r13, + maxSL-V2X-CBRConfig2-r14, + maxSL-V2X-CBRConfig2-1-r14, + maxSL-V2X-RxPoolPreconf-r14, + maxSL-V2X-TxConfig2-r14, + maxSL-V2X-TxConfig2-1-r14, + maxSL-V2X-TxPoolPreconf-r14, + P-Max, + ReselectionInfoRelay-r13, + SL-AnchorCarrierFreqList-V2X-r14, + SL-CBR-Levels-Config-r14, + SL-CBR-PSSCH-TxConfig-r14, + SL-CommTxPoolSensingConfig-r14, + SL-CP-Len-r12, + SL-HoppingConfigComm-r12, + SL-OffsetIndicator-r12, + SL-OffsetIndicatorSync-r12, + SL-OffsetIndicatorSync-v1430, + SL-PeriodComm-r12, + RSRP-RangeSL3-r12, + SL-PriorityList-r13, + SL-TF-ResourceConfig-r12, + SL-TRPT-Subset-r12, + SL-TxParameters-r12, + SL-ZoneConfig-r14, + P0-SL-r12, + TDD-ConfigSL-r12, + SubframeBitmapSL-r14, + SL-P2X-ResourceSelectionConfig-r14, + SL-RestrictResourceReservationPeriodList-r14, + SL-SyncAllowed-r14, + SL-OffsetIndicatorSync-r14, + SL-Priority-r13 +FROM EUTRA-RRC-Definitions; + + +SL-Preconfiguration-r12 ::= SEQUENCE { + preconfigGeneral-r12 SL-PreconfigGeneral-r12, + preconfigSync-r12 SL-PreconfigSync-r12, + preconfigComm-r12 SL-PreconfigCommPoolList4-r12, + ..., + [[ preconfigComm-v1310 SEQUENCE { + commRxPoolList-r13 SL-PreconfigCommRxPoolList-r13, + commTxPoolList-r13 SL-PreconfigCommTxPoolList-r13 OPTIONAL + } OPTIONAL, + preconfigDisc-r13 SEQUENCE { + discRxPoolList-r13 SL-PreconfigDiscRxPoolList-r13, + discTxPoolList-r13 SL-PreconfigDiscTxPoolList-r13 OPTIONAL + } OPTIONAL, + preconfigRelay-r13 SL-PreconfigRelay-r13 OPTIONAL + ]] + +} + +SL-PreconfigGeneral-r12 ::= SEQUENCE { + -- PDCP configuration + rohc-Profiles-r12 SEQUENCE { + profile0x0001-r12 BOOLEAN, + profile0x0002-r12 BOOLEAN, + profile0x0004-r12 BOOLEAN, + profile0x0006-r12 BOOLEAN, + profile0x0101-r12 BOOLEAN, + profile0x0102-r12 BOOLEAN, + profile0x0104-r12 BOOLEAN + }, + -- Physical configuration + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + maxTxPower-r12 P-Max, + additionalSpectrumEmission-r12 AdditionalSpectrumEmission, + sl-bandwidth-r12 ENUMERATED {n6, n15, n25, n50, n75, n100}, + tdd-ConfigSL-r12 TDD-ConfigSL-r12, + reserved-r12 BIT STRING (SIZE (19)), + ..., + [[ additionalSpectrumEmission-v1440 AdditionalSpectrumEmission-v10l0 OPTIONAL + ]] +} + +SL-PreconfigSync-r12 ::= SEQUENCE { + syncCP-Len-r12 SL-CP-Len-r12, + syncOffsetIndicator1-r12 SL-OffsetIndicatorSync-r12, + syncOffsetIndicator2-r12 SL-OffsetIndicatorSync-r12, + syncTxParameters-r12 P0-SL-r12, + syncTxThreshOoC-r12 RSRP-RangeSL3-r12, + filterCoefficient-r12 FilterCoefficient, + syncRefMinHyst-r12 ENUMERATED {dB0, dB3, dB6, dB9, dB12}, + syncRefDiffHyst-r12 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf}, + ..., + [[ syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL + ]] +} + +SL-PreconfigCommPoolList4-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-PreconfigCommPool-r12 + +SL-PreconfigCommRxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-CommRxPoolPreconf-v1310)) OF SL-PreconfigCommPool-r12 + +SL-PreconfigCommTxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-CommTxPoolPreconf-v1310)) OF SL-PreconfigCommPool-r12 + +SL-PreconfigCommPool-r12 ::= SEQUENCE { +-- This IE is same as SL-CommResourcePool with rxParametersNCell absent + sc-CP-Len-r12 SL-CP-Len-r12, + sc-Period-r12 SL-PeriodComm-r12, + sc-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + sc-TxParameters-r12 P0-SL-r12, + data-CP-Len-r12 SL-CP-Len-r12, + data-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + dataHoppingConfig-r12 SL-HoppingConfigComm-r12, + dataTxParameters-r12 P0-SL-r12, + trpt-Subset-r12 SL-TRPT-Subset-r12, + ..., + [[ priorityList-r13 SL-PriorityList-r13 OPTIONAL -- For Tx + ]] +} + +SL-PreconfigDiscRxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-DiscRxPoolPreconf-r13)) OF SL-PreconfigDiscPool-r13 + +SL-PreconfigDiscTxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-DiscTxPoolPreconf-r13)) OF SL-PreconfigDiscPool-r13 + +SL-PreconfigDiscPool-r13 ::= SEQUENCE { +-- This IE is same as SL-DiscResourcePool with rxParameters absent + cp-Len-r13 SL-CP-Len-r12, + discPeriod-r13 ENUMERATED {rf4, rf6, rf7, rf8, rf12, rf14, rf16, rf24, rf28, + rf32, rf64, rf128, rf256, rf512, rf1024, spare}, + numRetx-r13 INTEGER (0..3), + numRepetition-r13 INTEGER (1..50), + tf-ResourceConfig-r13 SL-TF-ResourceConfig-r12, + txParameters-r13 SEQUENCE { + txParametersGeneral-r13 P0-SL-r12, + txProbability-r13 ENUMERATED {p25, p50, p75, p100} + } OPTIONAL, + ... +} + +SL-PreconfigRelay-r13 ::= SEQUENCE { + reselectionInfoOoC-r13 ReselectionInfoRelay-r13 +} + + +SL-V2X-Preconfiguration-r14 ::= SEQUENCE { + v2x-PreconfigFreqList-r14 SL-V2X-PreconfigFreqList-r14, + anchorCarrierFreqList-r14 SL-AnchorCarrierFreqList-V2X-r14 OPTIONAL, + cbr-PreconfigList-r14 SL-CBR-PreconfigTxConfigList-r14 OPTIONAL, + ... +} + +SL-CBR-PreconfigTxConfigList-r14 ::= SEQUENCE { + cbr-RangeCommonConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-CBRConfig2-r14)) OF SL-CBR-Levels-Config-r14, + sl-CBR-PSSCH-TxConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-TxConfig2-r14)) OF SL-CBR-PSSCH-TxConfig-r14 +} + +SL-V2X-PreconfigFreqList-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF SL-V2X-PreconfigFreqInfo-r14 + +SL-V2X-PreconfigFreqInfo-r14 ::= SEQUENCE { + v2x-CommPreconfigGeneral-r14 SL-PreconfigGeneral-r12, + v2x-CommPreconfigSync-r14 SL-PreconfigV2X-Sync-r14 OPTIONAL, + v2x-CommRxPoolList-r14 SL-PreconfigV2X-RxPoolList-r14, + v2x-CommTxPoolList-r14 SL-PreconfigV2X-TxPoolList-r14, + p2x-CommTxPoolList-r14 SL-PreconfigV2X-TxPoolList-r14, + v2x-ResourceSelectionConfig-r14 SL-CommTxPoolSensingConfig-r14 OPTIONAL, + zoneConfig-r14 SL-ZoneConfig-r14 OPTIONAL, + syncPriority-r14 ENUMERATED {gnss, enb}, + thresSL-TxPrioritization-r14 SL-Priority-r13 OPTIONAL, + offsetDFN-r14 INTEGER (0..1000) OPTIONAL, + ... +} + +SL-PreconfigV2X-RxPoolList-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-RxPoolPreconf-r14)) OF SL-V2X-PreconfigCommPool-r14 + +SL-PreconfigV2X-TxPoolList-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-TxPoolPreconf-r14)) OF SL-V2X-PreconfigCommPool-r14 + +SL-V2X-PreconfigCommPool-r14 ::= SEQUENCE { +-- This IE is same as SL-CommResourcePoolV2X with rxParametersNCell absent + sl-OffsetIndicator-r14 SL-OffsetIndicator-r12 OPTIONAL, + sl-Subframe-r14 SubframeBitmapSL-r14, + adjacencyPSCCH-PSSCH-r14 BOOLEAN, + sizeSubchannel-r14 ENUMERATED { + n4, n5, n6, n8, n9, n10, n12, n15, n16, n18, n20, n25, n30, + n48, n50, n72, n75, n96, n100, spare13, spare12, spare11, + spare10, spare9, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1}, + numSubchannel-r14 ENUMERATED {n1, n3, n5, n8, n10, n15, n20, spare1}, + startRB-Subchannel-r14 INTEGER (0..99), + startRB-PSCCH-Pool-r14 INTEGER (0..99) OPTIONAL, + dataTxParameters-r14 P0-SL-r12, + zoneID-r14 INTEGER (0..7) OPTIONAL, + threshS-RSSI-CBR-r14 INTEGER (0..45) OPTIONAL, + cbr-pssch-TxConfigList-r14 SL-CBR-PPPP-TxPreconfigList-r14 OPTIONAL, + resourceSelectionConfigP2X-r14 SL-P2X-ResourceSelectionConfig-r14 OPTIONAL, + syncAllowed-r14 SL-SyncAllowed-r14 OPTIONAL, + restrictResourceReservationPeriod-r14 SL-RestrictResourceReservationPeriodList-r14 OPTIONAL, -- Need OR + ... +} + +SL-PreconfigV2X-Sync-r14 ::= SEQUENCE { + syncOffsetIndicators-r14 SL-V2X-SyncOffsetIndicators-r14, + syncTxParameters-r14 P0-SL-r12, + syncTxThreshOoC-r14 RSRP-RangeSL3-r12, + filterCoefficient-r14 FilterCoefficient, + syncRefMinHyst-r14 ENUMERATED {dB0, dB3, dB6, dB9, dB12}, + syncRefDiffHyst-r14 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf}, + ... +} + +SL-V2X-SyncOffsetIndicators-r14 ::= SEQUENCE { + syncOffsetIndicator1-r14 SL-OffsetIndicatorSync-r14, + syncOffsetIndicator2-r14 SL-OffsetIndicatorSync-r14, + syncOffsetIndicator3-r14 SL-OffsetIndicatorSync-r14 OPTIONAL +} + +SL-CBR-PPPP-TxPreconfigList-r14 ::= SEQUENCE (SIZE (1..8)) OF SL-PPPP-TxPreconfigIndex-r14 + +SL-PPPP-TxPreconfigIndex-r14 ::= SEQUENCE { + priorityThreshold-r14 SL-Priority-r13, + defaultTxConfigIndex-r14 INTEGER(0..maxCBR-Level-1-r14), + cbr-ConfigIndex-r14 INTEGER(0..maxSL-V2X-CBRConfig2-1-r14), + tx-ConfigIndexList-r14 SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF Tx-PreconfigIndex-r14 +} + +Tx-PreconfigIndex-r14 ::= INTEGER(0..maxSL-V2X-TxConfig2-1-r14) + +END + + +EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AntennaInfoCommon, + AntennaInfoDedicated-v10i0, + ARFCN-ValueEUTRA, + ARFCN-ValueEUTRA-v9e0, + ARFCN-ValueEUTRA-r9, + CellIdentity, + C-RNTI, + DL-DCCH-Message, + DRB-Identity, + DRB-ToReleaseList, + FreqBandIndicator-r11, + InDeviceCoexIndication-r11, + LWA-Config-r13, + MasterInformationBlock, + maxBands, + maxFreq, + maxDRB, + maxSCell-r10, + maxSCell-r13, + maxServCell-r10, + maxServCell-r13, + MBMSInterestIndication-r11, + MeasConfig, + MeasGapConfig, + MeasGapConfigPerCC-List-r14, + MeasResultForRSSI-r13, + MeasResultListWLAN-r13, + OtherConfig-r9, + PhysCellId, + P-Max, + PowerCoordinationInfo-r12, + SidelinkUEInformation-r12, + SL-CommConfig-r12, + SL-DiscConfig-r12, + RadioResourceConfigDedicated, + RCLWI-Configuration-r13, + RSRP-Range, + RSRQ-Range, + RSRQ-Range-v1250, + RS-SINR-Range-r13, + SCellToAddModList-r10, + SCellToAddModListExt-r13, + SCG-ConfigPartSCG-r12, + SecurityAlgorithmConfig, + SCellIndex-r10, + SCellIndex-r13, + SCellToReleaseList-r10, + SCellToReleaseListExt-r13, + ServCellIndex-r10, + ServCellIndex-r13, + ShortMAC-I, + MeasResultSSTD-r13, + SL-V2X-ConfigDedicated-r14, + SystemInformationBlockType1, + SystemInformationBlockType1-v890-IEs, + SystemInformationBlockType2, + UEAssistanceInformation-r11, + UECapabilityInformation, + UE-CapabilityRAT-ContainerList, + UE-RadioPagingInfo-r12, + WLANConnectionStatusReport-r13, + WLAN-OffloadConfig-r12 +FROM EUTRA-RRC-Definitions; + + +HandoverCommand ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverCommand-r8 HandoverCommand-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverCommand-r8-IEs ::= SEQUENCE { + handoverCommandMessage OCTET STRING (CONTAINING DL-DCCH-Message), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +HandoverPreparationInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverPreparationInformation-r8 HandoverPreparationInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverPreparationInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo UE-CapabilityRAT-ContainerList, + as-Config AS-Config OPTIONAL, -- Cond HO + rrm-Config RRM-Config OPTIONAL, + as-Context AS-Context OPTIONAL, -- Cond HO + nonCriticalExtension HandoverPreparationInformation-v920-IEs OPTIONAL +} + +HandoverPreparationInformation-v920-IEs ::= SEQUENCE { + ue-ConfigRelease-r9 ENUMERATED { + rel9, rel10, rel11, rel12, v10j0, v11e0, + v1280, rel13, ..., rel14} OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v9d0-IEs OPTIONAL +} + +HandoverPreparationInformation-v9d0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING HandoverPreparationInformation-v9j0-IEs) OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-v9e0-IEs OPTIONAL +} + +-- Late non-critical extensions: +HandoverPreparationInformation-v9j0-IEs ::= SEQUENCE { + -- Following field is only for pre REL-10 late non-critical extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-v10j0-IEs OPTIONAL +} + +HandoverPreparationInformation-v10j0-IEs ::= SEQUENCE { + as-Config-v10j0 AS-Config-v10j0 OPTIONAL, + -- Following field is only for late non-critical extensions from REL-10 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +HandoverPreparationInformation-v9e0-IEs ::= SEQUENCE { + as-Config-v9e0 AS-Config-v9e0 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1130-IEs OPTIONAL +} + +HandoverPreparationInformation-v1130-IEs ::= SEQUENCE { + as-Context-v1130 AS-Context-v1130 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1250-IEs OPTIONAL +} + +HandoverPreparationInformation-v1250-IEs ::= SEQUENCE { + ue-SupportedEARFCN-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Cond HO3 + as-Config-v1250 AS-Config-v1250 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1320-IEs OPTIONAL +} + +HandoverPreparationInformation-v1320-IEs ::= SEQUENCE { + as-Config-v1320 AS-Config-v1320 OPTIONAL, -- Cond HO2 + as-Context-v1320 AS-Context-v1320 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1430-IEs OPTIONAL +} + +HandoverPreparationInformation-v1430-IEs ::= SEQUENCE { + as-Config-v1430 AS-Config-v1430 OPTIONAL, -- Cond HO2 + makeBeforeBreakReq-r14 ENUMERATED {true} OPTIONAL, -- Cond HO2 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCG-Config-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + scg-Config-r12 SCG-Config-r12-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCG-Config-r12-IEs ::= SEQUENCE { + scg-RadioConfig-r12 SCG-ConfigPartSCG-r12 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCG-ConfigInfo-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + scg-ConfigInfo-r12 SCG-ConfigInfo-r12-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCG-ConfigInfo-r12-IEs ::= SEQUENCE { + radioResourceConfigDedMCG-r12 RadioResourceConfigDedicated OPTIONAL, + sCellToAddModListMCG-r12 SCellToAddModList-r10 OPTIONAL, + measGapConfig-r12 MeasGapConfig OPTIONAL, + powerCoordinationInfo-r12 PowerCoordinationInfo-r12 OPTIONAL, + scg-RadioConfig-r12 SCG-ConfigPartSCG-r12 OPTIONAL, + eutra-CapabilityInfo-r12 OCTET STRING (CONTAINING UECapabilityInformation) OPTIONAL, + scg-ConfigRestrictInfo-r12 SCG-ConfigRestrictInfo-r12 OPTIONAL, + mbmsInterestIndication-r12 OCTET STRING (CONTAINING + MBMSInterestIndication-r11) OPTIONAL, + measResultServCellListSCG-r12 MeasResultServCellListSCG-r12 OPTIONAL, + drb-ToAddModListSCG-r12 DRB-InfoListSCG-r12 OPTIONAL, + drb-ToReleaseListSCG-r12 DRB-ToReleaseList OPTIONAL, + sCellToAddModListSCG-r12 SCellToAddModListSCG-r12 OPTIONAL, + sCellToReleaseListSCG-r12 SCellToReleaseList-r10 OPTIONAL, + p-Max-r12 P-Max OPTIONAL, + nonCriticalExtension SCG-ConfigInfo-v1310-IEs OPTIONAL +} + +SCG-ConfigInfo-v1310-IEs ::= SEQUENCE { + measResultSSTD-r13 MeasResultSSTD-r13 OPTIONAL, sCellToAddModListMCG-Ext-r13 SCellToAddModListExt-r13 OPTIONAL, + measResultServCellListSCG-Ext-r13 MeasResultServCellListSCG-Ext-r13 OPTIONAL, + sCellToAddModListSCG-Ext-r13 SCellToAddModListSCG-Ext-r13 OPTIONAL, + sCellToReleaseListSCG-Ext-r13 SCellToReleaseListExt-r13 OPTIONAL, + nonCriticalExtension SCG-ConfigInfo-v1330-IEs OPTIONAL +} + +SCG-ConfigInfo-v1330-IEs ::= SEQUENCE { + measResultListRSSI-SCG-r13 MeasResultListRSSI-SCG-r13 OPTIONAL, + nonCriticalExtension SCG-ConfigInfo-v1430-IEs OPTIONAL +} + +SCG-ConfigInfo-v1430-IEs ::= SEQUENCE { + makeBeforeBreakSCG-Req-r14 ENUMERATED {true} OPTIONAL, + measGapConfigPerCC-List MeasGapConfigPerCC-List-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-InfoListSCG-r12 ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-InfoSCG-r12 + +DRB-InfoSCG-r12 ::= SEQUENCE { + eps-BearerIdentity-r12 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity-r12 DRB-Identity, + drb-Type-r12 ENUMERATED {split, scg} OPTIONAL, -- Cond DRB-Setup + ... +} + +SCellToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF Cell-ToAddMod-r12 + +SCellToAddModListSCG-Ext-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF Cell-ToAddMod-r12 + +Cell-ToAddMod-r12 ::= SEQUENCE { + sCellIndex-r12 SCellIndex-r10, + cellIdentification-r12 SEQUENCE { + physCellId-r12 PhysCellId, + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + measResultCellToAdd-r12 SEQUENCE { + rsrpResult-r12 RSRP-Range, + rsrqResult-r12 RSRQ-Range + } OPTIONAL, -- Cond SCellAdd2 + ..., + [[ sCellIndex-r13 SCellIndex-r13 OPTIONAL, + measResultCellToAdd-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL -- Cond SCellAdd2 + ]] +} + +MeasResultServCellListSCG-r12 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF MeasResultServCellSCG-r12 + +MeasResultServCellListSCG-Ext-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultServCellSCG-r12 + +MeasResultServCellSCG-r12 ::= SEQUENCE { + servCellId-r12 ServCellIndex-r10, + measResultSCell-r12 SEQUENCE { + rsrpResultSCell-r12 RSRP-Range, + rsrqResultSCell-r12 RSRQ-Range + }, + ..., + [[ servCellId-r13 ServCellIndex-r13 OPTIONAL, + measResultSCell-v1310 SEQUENCE { + rs-sinr-ResultSCell-r13 RS-SINR-Range-r13 + } OPTIONAL + ]] +} + +MeasResultListRSSI-SCG-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultRSSI-SCG-r13 + +MeasResultRSSI-SCG-r13 ::= SEQUENCE { + servCellId-r13 ServCellIndex-r13, + measResultForRSSI-r13 MeasResultForRSSI-r13 +} + +SCG-ConfigRestrictInfo-r12 ::= SEQUENCE { + maxSCH-TB-BitsDL-r12 INTEGER (1..100), + maxSCH-TB-BitsUL-r12 INTEGER (1..100) +} + + +UEPagingCoverageInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + uePagingCoverageInformation-r13 UEPagingCoverageInformation-r13-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEPagingCoverageInformation-r13-IEs ::= SEQUENCE { + mpdcch-NumRepetition-r13 INTEGER (1..256) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioAccessCapabilityInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioAccessCapabilityInformation-r8 + UERadioAccessCapabilityInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioPagingInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioPagingInformation-r12 UERadioPagingInformation-r12-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioPagingInformation-r12-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r12 OCTET STRING (CONTAINING UE-RadioPagingInfo-r12), + nonCriticalExtension UERadioPagingInformation-v1310-IEs OPTIONAL +} + +UERadioPagingInformation-v1310-IEs ::= SEQUENCE { + supportedBandListEUTRAForPaging-r13 SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicator-r11 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL + +} + + +AS-Config ::= SEQUENCE { + sourceMeasConfig MeasConfig, + sourceRadioResourceConfig RadioResourceConfigDedicated, + sourceSecurityAlgorithmConfig SecurityAlgorithmConfig, + sourceUE-Identity C-RNTI, + sourceMasterInformationBlock MasterInformationBlock, + sourceSystemInformationBlockType1 SystemInformationBlockType1(WITH COMPONENTS + {..., nonCriticalExtension ABSENT}), + sourceSystemInformationBlockType2 SystemInformationBlockType2, + antennaInfoCommon AntennaInfoCommon, + sourceDl-CarrierFreq ARFCN-ValueEUTRA, + ..., + [[ sourceSystemInformationBlockType1Ext OCTET STRING (CONTAINING + SystemInformationBlockType1-v890-IEs) OPTIONAL, + sourceOtherConfig-r9 OtherConfig-r9 + -- sourceOtherConfig-r9 should have been optional. A target eNB compliant with this transfer + -- syntax should support receiving an AS-Config not including this extension addition group + -- e.g. from a legacy source eNB + ]], + [[ sourceSCellConfigList-r10 SCellToAddModList-r10 OPTIONAL + ]], + [[ sourceConfigSCG-r12 SCG-Config-r12 OPTIONAL + ]] +} + +AS-Config-v9e0 ::= SEQUENCE { + sourceDl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +AS-Config-v10j0 ::= SEQUENCE { + antennaInfoDedicatedPCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL +} + +AS-Config-v1250 ::= SEQUENCE { + sourceWlan-OffloadConfig-r12 WLAN-OffloadConfig-r12 OPTIONAL, + sourceSL-CommConfig-r12 SL-CommConfig-r12 OPTIONAL, + sourceSL-DiscConfig-r12 SL-DiscConfig-r12 OPTIONAL +} + +AS-Config-v1320 ::= SEQUENCE { + sourceSCellConfigList-r13 SCellToAddModListExt-r13 OPTIONAL, + sourceRCLWI-Configuration-r13 RCLWI-Configuration-r13 OPTIONAL +} + +AS-Config-v1430 ::= SEQUENCE { + sourceSL-V2X-CommConfig-r14 SL-V2X-ConfigDedicated-r14 OPTIONAL, + sourceLWA-Config-r14 LWA-Config-r13 OPTIONAL, + sourceWLAN-MeasResult-r14 MeasResultListWLAN-r13 OPTIONAL +} + + +AS-Context ::= SEQUENCE { + reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO +} + +AS-Context-v1130 ::= SEQUENCE { + idc-Indication-r11 OCTET STRING (CONTAINING + InDeviceCoexIndication-r11) OPTIONAL, -- Cond HO2 + mbmsInterestIndication-r11 OCTET STRING (CONTAINING + MBMSInterestIndication-r11) OPTIONAL, -- Cond HO2 + powerPrefIndication-r11 OCTET STRING (CONTAINING + UEAssistanceInformation-r11) OPTIONAL, -- Cond HO2 + ..., + [[ sidelinkUEInformation-r12 OCTET STRING (CONTAINING + SidelinkUEInformation-r12) OPTIONAL -- Cond HO2 + ]] +} + +AS-Context-v1320 ::= SEQUENCE { + wlanConnectionStatusReport-r13 OCTET STRING (CONTAINING + WLANConnectionStatusReport-r13) OPTIONAL -- Cond HO2 +} + + +ReestablishmentInfo ::= SEQUENCE { + sourcePhysCellId PhysCellId, + targetCellShortMAC-I ShortMAC-I, + additionalReestabInfoList AdditionalReestabInfoList OPTIONAL, + ... +} + +AdditionalReestabInfoList ::= SEQUENCE ( SIZE (1..maxReestabInfo) ) OF AdditionalReestabInfo + +AdditionalReestabInfo ::= SEQUENCE{ + cellIdentity CellIdentity, + key-eNodeB-Star Key-eNodeB-Star, + shortMAC-I ShortMAC-I +} + +Key-eNodeB-Star ::= BIT STRING (SIZE (256)) + + +RRM-Config ::= SEQUENCE { + ue-InactiveTime ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, + s25, s30, s40, s50, min1, min1s20c, min1s40, + min2, min2s30, min3, min3s30, min4, min5, min6, + min7, min8, min9, min10, min12, min14, min17, min20, + min24, min28, min33, min38, min44, min50, hr1, + hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6, + hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2, + day2hr12, day3, day4, day5, day7, day10, day14, day19, + day24, day30, dayMoreThan30} OPTIONAL, + ..., + [[ candidateCellInfoList-r10 CandidateCellInfoList-r10 OPTIONAL + ]] +} + +CandidateCellInfoList-r10 ::= SEQUENCE (SIZE (1..maxFreq)) OF CandidateCellInfo-r10 + +CandidateCellInfo-r10 ::= SEQUENCE { + -- cellIdentification + physCellId-r10 PhysCellId, + dl-CarrierFreq-r10 ARFCN-ValueEUTRA, + -- available measurement results + rsrpResult-r10 RSRP-Range OPTIONAL, + rsrqResult-r10 RSRQ-Range OPTIONAL, + ..., + [[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL + ]], + [[ rsrqResult-v1250 RSRQ-Range-v1250 OPTIONAL + ]], + [[ rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL + ]] +} + + +maxReestabInfo INTEGER ::= 32 -- Maximum number of KeNB* and shortMAC-I forwarded + -- at handover for re-establishment preparation + + +END + + +NBIOT-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + C-RNTI, + PhysCellId, + SecurityAlgorithmConfig, + ShortMAC-I +FROM EUTRA-RRC-Definitions + + AdditionalReestabInfoList +FROM EUTRA-InterNodeDefinitions + + CarrierFreq-NB-r13, + RadioResourceConfigDedicated-NB-r13, + UECapabilityInformation-NB, + UE-Capability-NB-r13, + UE-Capability-NB-Ext-r14-IEs, + UE-RadioPagingInfo-NB-r13 +FROM NBIOT-RRC-Definitions; + + +HandoverPreparationInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverPreparationInformation-r13 HandoverPreparationInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverPreparationInformation-NB-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo-r13 UE-Capability-NB-r13, + as-Config-r13 AS-Config-NB, + rrm-Config-r13 RRM-Config-NB OPTIONAL, + as-Context-r13 AS-Context-NB OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-NB-v1380-IEs OPTIONAL +} + +HandoverPreparationInformation-NB-v1380-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-NB-Ext-r14-IEs OPTIONAL +} + +HandoverPreparationInformation-NB-Ext-r14-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfoExt-r14 OCTET STRING (CONTAINING UE-Capability-NB-Ext-r14-IEs) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEPagingCoverageInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + uePagingCoverageInformation-r13 UEPagingCoverageInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEPagingCoverageInformation-NB-IEs ::= SEQUENCE { +-- the possible value(s) can differ from those sent on Uu + npdcch-NumRepetitionPaging-r13 INTEGER (1..2048) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioAccessCapabilityInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioAccessCapabilityInformation-r13 + UERadioAccessCapabilityInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioAccessCapabilityInformation-NB-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo-r13 OCTET STRING (CONTAINING UE-Capability-NB-r13), + nonCriticalExtension UERadioAccessCapabilityInformation-NB-v1380-IEs OPTIONAL +} + +UERadioAccessCapabilityInformation-NB-v1380-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UERadioAccessCapabilityInformation-NB-r14-IEs OPTIONAL +} + +UERadioAccessCapabilityInformation-NB-r14-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo-r14 OCTET STRING (CONTAINING UECapabilityInformation-NB) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioPagingInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioPagingInformation-r13 UERadioPagingInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioPagingInformation-NB-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r13 OCTET STRING (CONTAINING UE-RadioPagingInfo-NB-r13), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +AS-Config-NB ::= SEQUENCE { + sourceRadioResourceConfig-r13 RadioResourceConfigDedicated-NB-r13, + sourceSecurityAlgorithmConfig-r13 SecurityAlgorithmConfig, + sourceUE-Identity-r13 C-RNTI, + sourceDl-CarrierFreq-r13 CarrierFreq-NB-r13, + ... +} + + +AS-Context-NB ::= SEQUENCE { + reestablishmentInfo-r13 ReestablishmentInfo-NB OPTIONAL, + ... +} + + +ReestablishmentInfo-NB ::= SEQUENCE { + sourcePhysCellId-r13 PhysCellId, + targetCellShortMAC-I-r13 ShortMAC-I, + additionalReestabInfoList-r13 AdditionalReestabInfoList OPTIONAL, + ... +} + + + + +RRM-Config-NB ::= SEQUENCE { + ue-InactiveTime ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, + s25, s30, s40, s50, min1, min1s20, min1s40, + min2, min2s30, min3, min3s30, min4, min5, min6, + min7, min8, min9, min10, min12, min14, min17, min20, + min24, min28, min33, min38, min44, min50, hr1, + hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6, + hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2, + day2hr12, day3, day4, day5, day7, day10, day14, day19, + day24, day30, dayMoreThan30} OPTIONAL, + ... +} + + +END + + diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.1.0.asn1 b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.1.0.asn1 new file mode 100755 index 0000000000..b29a4bc306 --- /dev/null +++ b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.1.0.asn1 @@ -0,0 +1,14695 @@ + +EUTRA-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + + +BCCH-BCH-Message ::= SEQUENCE { + message BCCH-BCH-MessageType +} + +BCCH-BCH-MessageType ::= MasterInformationBlock + + +BCCH-BCH-Message-MBMS::= SEQUENCE { + message BCCH-BCH-MessageType-MBMS-r14 +} + +BCCH-BCH-MessageType-MBMS-r14 ::= MasterInformationBlock-MBMS-r14 + + +BCCH-DL-SCH-Message ::= SEQUENCE { + message BCCH-DL-SCH-MessageType +} + +BCCH-DL-SCH-MessageType ::= CHOICE { + c1 CHOICE { + systemInformation SystemInformation, + systemInformationBlockType1 SystemInformationBlockType1 + }, + messageClassExtension SEQUENCE {} +} + + +BCCH-DL-SCH-Message-BR ::= SEQUENCE { + message BCCH-DL-SCH-MessageType-BR-r13 +} + +BCCH-DL-SCH-MessageType-BR-r13 ::= CHOICE { + c1 CHOICE { + systemInformation-BR-r13 SystemInformation-BR-r13, + systemInformationBlockType1-BR-r13 SystemInformationBlockType1-BR-r13 + }, + messageClassExtension SEQUENCE {} +} + + +BCCH-DL-SCH-Message-MBMS ::= SEQUENCE { + message BCCH-DL-SCH-MessageType-MBMS-r14 +} + +BCCH-DL-SCH-MessageType-MBMS-r14 ::= CHOICE { + c1 CHOICE { + systemInformation-MBMS-r14 SystemInformation-MBMS-r14, + systemInformationBlockType1-MBMS-r14 SystemInformationBlockType1-MBMS-r14 + }, + messageClassExtension SEQUENCE {} +} + + +MCCH-Message ::= SEQUENCE { + message MCCH-MessageType +} + +MCCH-MessageType ::= CHOICE { + c1 CHOICE { + mbsfnAreaConfiguration-r9 MBSFNAreaConfiguration-r9 + }, + later CHOICE { + c2 CHOICE{ + mbmsCountingRequest-r10 MBMSCountingRequest-r10 + }, + messageClassExtension SEQUENCE {} + } +} + + +PCCH-Message ::= SEQUENCE { + message PCCH-MessageType +} + +PCCH-MessageType ::= CHOICE { + c1 CHOICE { + paging Paging + }, + messageClassExtension SEQUENCE {} +} + + +DL-CCCH-Message ::= SEQUENCE { + message DL-CCCH-MessageType +} + +DL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishment RRCConnectionReestablishment, + rrcConnectionReestablishmentReject RRCConnectionReestablishmentReject, + rrcConnectionReject RRCConnectionReject, + rrcConnectionSetup RRCConnectionSetup + }, + messageClassExtension SEQUENCE {} +} + + +DL-DCCH-Message ::= SEQUENCE { + message DL-DCCH-MessageType +} + +DL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + csfbParametersResponseCDMA2000 CSFBParametersResponseCDMA2000, + dlInformationTransfer DLInformationTransfer, + handoverFromEUTRAPreparationRequest HandoverFromEUTRAPreparationRequest, + mobilityFromEUTRACommand MobilityFromEUTRACommand, + rrcConnectionReconfiguration RRCConnectionReconfiguration, + rrcConnectionRelease RRCConnectionRelease, + securityModeCommand SecurityModeCommand, + ueCapabilityEnquiry UECapabilityEnquiry, + counterCheck CounterCheck, + ueInformationRequest-r9 UEInformationRequest-r9, + loggedMeasurementConfiguration-r10 LoggedMeasurementConfiguration-r10, + rnReconfiguration-r10 RNReconfiguration-r10, + rrcConnectionResume-r13 RRCConnectionResume-r13, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +UL-CCCH-Message ::= SEQUENCE { + message UL-CCCH-MessageType +} + +UL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishmentRequest RRCConnectionReestablishmentRequest, + rrcConnectionRequest RRCConnectionRequest + }, + messageClassExtension CHOICE { + c2 CHOICE { + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-r13 + }, + messageClassExtensionFuture-r13 SEQUENCE {} + } +} + + +UL-DCCH-Message ::= SEQUENCE { + message UL-DCCH-MessageType +} + +UL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + csfbParametersRequestCDMA2000 CSFBParametersRequestCDMA2000, + measurementReport MeasurementReport, + rrcConnectionReconfigurationComplete RRCConnectionReconfigurationComplete, + rrcConnectionReestablishmentComplete RRCConnectionReestablishmentComplete, + rrcConnectionSetupComplete RRCConnectionSetupComplete, + securityModeComplete SecurityModeComplete, + securityModeFailure SecurityModeFailure, + ueCapabilityInformation UECapabilityInformation, + ulHandoverPreparationTransfer ULHandoverPreparationTransfer, + ulInformationTransfer ULInformationTransfer, + counterCheckResponse CounterCheckResponse, + ueInformationResponse-r9 UEInformationResponse-r9, + proximityIndication-r9 ProximityIndication-r9, + rnReconfigurationComplete-r10 RNReconfigurationComplete-r10, + mbmsCountingResponse-r10 MBMSCountingResponse-r10, + interFreqRSTDMeasurementIndication-r10 InterFreqRSTDMeasurementIndication-r10 + }, + messageClassExtension CHOICE { + c2 CHOICE { + ueAssistanceInformation-r11 UEAssistanceInformation-r11, + inDeviceCoexIndication-r11 InDeviceCoexIndication-r11, + mbmsInterestIndication-r11 MBMSInterestIndication-r11, + scgFailureInformation-r12 SCGFailureInformation-r12, + sidelinkUEInformation-r12 SidelinkUEInformation-r12, + wlanConnectionStatusReport-r13 WLANConnectionStatusReport-r13, + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-r13, + ulInformationTransferMRDC-r15 ULInformationTransferMRDC-r15, + scgFailureInformationNR-r15 SCGFailureInformationNR-r15, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtensionFuture-r11 SEQUENCE {} + } +} + + +SC-MCCH-Message-r13 ::= SEQUENCE { + message SC-MCCH-MessageType-r13 +} + + +SC-MCCH-MessageType-r13 ::= CHOICE { + c1 CHOICE { + scptmConfiguration-r13 SCPTMConfiguration-r13 + }, + messageClassExtension CHOICE { + c2 CHOICE { + scptmConfiguration-BR-r14 SCPTMConfiguration-BR-r14, + spare NULL + }, + messageClassExtensionFuture-r14 SEQUENCE {} + } +} + + +CounterCheck ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + counterCheck-r8 CounterCheck-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheck-r8-IEs ::= SEQUENCE { + drb-CountMSB-InfoList DRB-CountMSB-InfoList, + nonCriticalExtension CounterCheck-v8a0-IEs OPTIONAL +} + +CounterCheck-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-CountMSB-InfoList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-CountMSB-Info + +DRB-CountMSB-Info ::= SEQUENCE { + drb-Identity DRB-Identity, + countMSB-Uplink INTEGER(0..33554431), + countMSB-Downlink INTEGER(0..33554431) +} + + +CounterCheckResponse ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + counterCheckResponse-r8 CounterCheckResponse-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheckResponse-r8-IEs ::= SEQUENCE { + drb-CountInfoList DRB-CountInfoList, + nonCriticalExtension CounterCheckResponse-v8a0-IEs OPTIONAL +} + +CounterCheckResponse-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-CountInfoList ::= SEQUENCE (SIZE (0..maxDRB)) OF DRB-CountInfo + +DRB-CountInfo ::= SEQUENCE { + drb-Identity DRB-Identity, + count-Uplink INTEGER(0..4294967295), + count-Downlink INTEGER(0..4294967295) +} + + +CSFBParametersRequestCDMA2000 ::= SEQUENCE { + criticalExtensions CHOICE { + csfbParametersRequestCDMA2000-r8 CSFBParametersRequestCDMA2000-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CSFBParametersRequestCDMA2000-r8-IEs ::= SEQUENCE { + nonCriticalExtension CSFBParametersRequestCDMA2000-v8a0-IEs OPTIONAL +} + +CSFBParametersRequestCDMA2000-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +CSFBParametersResponseCDMA2000 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + csfbParametersResponseCDMA2000-r8 CSFBParametersResponseCDMA2000-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CSFBParametersResponseCDMA2000-r8-IEs ::= SEQUENCE { + rand RAND-CDMA2000, + mobilityParameters MobilityParametersCDMA2000, + nonCriticalExtension CSFBParametersResponseCDMA2000-v8a0-IEs OPTIONAL +} + +CSFBParametersResponseCDMA2000-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +DLInformationTransfer ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + dlInformationTransfer-r8 DLInformationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +DLInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType CHOICE { + dedicatedInfoNAS DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000 + }, + nonCriticalExtension DLInformationTransfer-v8a0-IEs OPTIONAL +} + +DLInformationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +HandoverFromEUTRAPreparationRequest ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + handoverFromEUTRAPreparationRequest-r8 + HandoverFromEUTRAPreparationRequest-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverFromEUTRAPreparationRequest-r8-IEs ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + rand RAND-CDMA2000 OPTIONAL, -- Cond cdma2000-Type + mobilityParameters MobilityParametersCDMA2000 OPTIONAL, -- Cond cdma2000-Type + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v890-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v920-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v920-IEs ::= SEQUENCE { + concurrPrepCDMA2000-HRPD-r9 BOOLEAN OPTIONAL, -- Cond cdma2000-Type + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v1020-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v1020-IEs ::= SEQUENCE { + dualRxTxRedirectIndicator-r10 ENUMERATED {true} OPTIONAL, -- Cond cdma2000-1XRTT + redirectCarrierCDMA2000-1XRTT-r10 CarrierFreqCDMA2000 OPTIONAL, -- Cond dualRxTxRedirect + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +InDeviceCoexIndication-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + inDeviceCoexIndication-r11 InDeviceCoexIndication-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +InDeviceCoexIndication-r11-IEs ::= SEQUENCE { + affectedCarrierFreqList-r11 AffectedCarrierFreqList-r11 OPTIONAL, + tdm-AssistanceInfo-r11 TDM-AssistanceInfo-r11 OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension InDeviceCoexIndication-v11d0-IEs OPTIONAL +} + +InDeviceCoexIndication-v11d0-IEs ::= SEQUENCE { + ul-CA-AssistanceInfo-r11 SEQUENCE { + affectedCarrierFreqCombList-r11 AffectedCarrierFreqCombList-r11 OPTIONAL, + victimSystemType-r11 VictimSystemType-r11 + } OPTIONAL, + nonCriticalExtension InDeviceCoexIndication-v1310-IEs OPTIONAL +} + +InDeviceCoexIndication-v1310-IEs ::= SEQUENCE { + affectedCarrierFreqList-v1310 AffectedCarrierFreqList-v1310 OPTIONAL, + affectedCarrierFreqCombList-r13 AffectedCarrierFreqCombList-r13 OPTIONAL, + nonCriticalExtension InDeviceCoexIndication-v1360-IEs OPTIONAL +} + +InDeviceCoexIndication-v1360-IEs ::= SEQUENCE { + hardwareSharingProblem-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AffectedCarrierFreqList-r11 ::= SEQUENCE (SIZE (1..maxFreqIDC-r11)) OF AffectedCarrierFreq-r11 + +AffectedCarrierFreqList-v1310 ::= SEQUENCE (SIZE (1..maxFreqIDC-r11)) OF AffectedCarrierFreq-v1310 + +AffectedCarrierFreq-r11 ::= SEQUENCE { + carrierFreq-r11 MeasObjectId, + interferenceDirection-r11 ENUMERATED {eutra, other, both, spare} +} + +AffectedCarrierFreq-v1310 ::= SEQUENCE { + carrierFreq-v1310 MeasObjectId-v1310 OPTIONAL +} + +AffectedCarrierFreqCombList-r11 ::= SEQUENCE (SIZE (1..maxCombIDC-r11)) OF AffectedCarrierFreqComb-r11 + +AffectedCarrierFreqCombList-r13 ::= SEQUENCE (SIZE (1..maxCombIDC-r11)) OF AffectedCarrierFreqComb-r13 + +AffectedCarrierFreqComb-r11 ::= SEQUENCE (SIZE (2..maxServCell-r10)) OF MeasObjectId + +AffectedCarrierFreqComb-r13 ::= SEQUENCE (SIZE (2..maxServCell-r13)) OF MeasObjectId-r13 + +TDM-AssistanceInfo-r11 ::= CHOICE { + drx-AssistanceInfo-r11 SEQUENCE { + drx-CycleLength-r11 ENUMERATED {sf40, sf64, sf80, sf128, sf160, + sf256, spare2, spare1}, + drx-Offset-r11 INTEGER (0..255) OPTIONAL, + drx-ActiveTime-r11 ENUMERATED {sf20, sf30, sf40, sf60, sf80, + sf100, spare2, spare1} + }, + idc-SubframePatternList-r11 IDC-SubframePatternList-r11, + ... +} + +IDC-SubframePatternList-r11 ::= SEQUENCE (SIZE (1..maxSubframePatternIDC-r11)) OF IDC-SubframePattern-r11 + +IDC-SubframePattern-r11 ::= CHOICE { + subframePatternFDD-r11 BIT STRING (SIZE (4)), + subframePatternTDD-r11 CHOICE { + subframeConfig0-r11 BIT STRING (SIZE (70)), + subframeConfig1-5-r11 BIT STRING (SIZE (10)), + subframeConfig6-r11 BIT STRING (SIZE (60)) + }, + ... +} + +VictimSystemType-r11 ::= SEQUENCE { + gps-r11 ENUMERATED {true} OPTIONAL, + glonass-r11 ENUMERATED {true} OPTIONAL, + bds-r11 ENUMERATED {true} OPTIONAL, + galileo-r11 ENUMERATED {true} OPTIONAL, + wlan-r11 ENUMERATED {true} OPTIONAL, + bluetooth-r11 ENUMERATED {true} OPTIONAL +} + + +InterFreqRSTDMeasurementIndication-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + interFreqRSTDMeasurementIndication-r10 InterFreqRSTDMeasurementIndication-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +InterFreqRSTDMeasurementIndication-r10-IEs ::= SEQUENCE { + rstd-InterFreqIndication-r10 CHOICE { + start SEQUENCE { + rstd-InterFreqInfoList-r10 RSTD-InterFreqInfoList-r10 + }, + stop NULL + }, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RSTD-InterFreqInfoList-r10 ::= SEQUENCE (SIZE(1..maxRSTD-Freq-r10)) OF RSTD-InterFreqInfo-r10 + +RSTD-InterFreqInfo-r10 ::= SEQUENCE { + carrierFreq-r10 ARFCN-ValueEUTRA, + measPRS-Offset-r10 INTEGER (0..39), + ..., + [[ carrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL + ]] +} + + +LoggedMeasurementConfiguration-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + loggedMeasurementConfiguration-r10 LoggedMeasurementConfiguration-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + + +LoggedMeasurementConfiguration-r10-IEs ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, -- Need OR + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10, + nonCriticalExtension LoggedMeasurementConfiguration-v1080-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1080-IEs ::= SEQUENCE { + lateNonCriticalExtension-r10 OCTET STRING OPTIONAL, + nonCriticalExtension LoggedMeasurementConfiguration-v1130-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1130-IEs ::= SEQUENCE { + plmn-IdentityList-r11 PLMN-IdentityList3-r11 OPTIONAL, -- Need OR + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, -- Need OR + nonCriticalExtension LoggedMeasurementConfiguration-v1250-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1250-IEs ::= SEQUENCE { + targetMBSFN-AreaList-r12 TargetMBSFN-AreaList-r12 OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +TargetMBSFN-AreaList-r12 ::= SEQUENCE (SIZE (0..maxMBSFN-Area)) OF TargetMBSFN-Area-r12 + +TargetMBSFN-Area-r12 ::= SEQUENCE { + mbsfn-AreaId-r12 MBSFN-AreaId-r12 OPTIONAL, -- Need OR + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + ... +} + + +MasterInformationBlock ::= SEQUENCE { + dl-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100}, + phich-Config PHICH-Config, + systemFrameNumber BIT STRING (SIZE (8)), + schedulingInfoSIB1-BR-r13 INTEGER (0..31), + spare BIT STRING (SIZE (5)) +} + + + +MasterInformationBlock-MBMS-r14 ::= SEQUENCE { + dl-Bandwidth-MBMS-r14 ENUMERATED { + n6, n15, n25, n50, n75, n100}, + systemFrameNumber-r14 BIT STRING (SIZE (6)), + additionalNonMBSFNSubframes-r14 INTEGER (0..3), + spare BIT STRING (SIZE (13)) +} + + +MBMSCountingRequest-r10 ::= SEQUENCE { + countingRequestList-r10 CountingRequestList-r10, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CountingRequestList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingRequestInfo-r10 + +CountingRequestInfo-r10 ::= SEQUENCE { + tmgi-r10 TMGI-r9, + ... +} + + +MBMSCountingResponse-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + countingResponse-r10 MBMSCountingResponse-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MBMSCountingResponse-r10-IEs ::= SEQUENCE { + mbsfn-AreaIndex-r10 INTEGER (0..maxMBSFN-Area-1) OPTIONAL, + countingResponseList-r10 CountingResponseList-r10 OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CountingResponseList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingResponseInfo-r10 + +CountingResponseInfo-r10 ::= SEQUENCE { + countingResponseService-r10 INTEGER (0..maxServiceCount-1), + ... +} + + +MBMSInterestIndication-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + interestIndication-r11 MBMSInterestIndication-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MBMSInterestIndication-r11-IEs ::= SEQUENCE { + mbms-FreqList-r11 CarrierFreqListMBMS-r11 OPTIONAL, + mbms-Priority-r11 ENUMERATED {true} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MBMSInterestIndication-v1310-IEs OPTIONAL +} + +MBMSInterestIndication-v1310-IEs ::= SEQUENCE { + mbms-Services-r13 MBMS-ServiceList-r13 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MBSFNAreaConfiguration-r9 ::= SEQUENCE { + commonSF-Alloc-r9 CommonSF-AllocPatternList-r9, + commonSF-AllocPeriod-r9 ENUMERATED { + rf4, rf8, rf16, rf32, rf64, rf128, rf256}, + pmch-InfoList-r9 PMCH-InfoList-r9, + nonCriticalExtension MBSFNAreaConfiguration-v930-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MBSFNAreaConfiguration-v1250-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v1250-IEs ::= SEQUENCE { + pmch-InfoListExt-r12 PMCH-InfoListExt-r12 OPTIONAL, -- Need OR + nonCriticalExtension MBSFNAreaConfiguration-v1430-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v1430-IEs ::= SEQUENCE { + commonSF-Alloc-r14 CommonSF-AllocPatternList-r14, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CommonSF-AllocPatternList-r9 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig + +CommonSF-AllocPatternList-r14 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig-v1430 + + +MeasurementReport ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + measurementReport-r8 MeasurementReport-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MeasurementReport-r8-IEs ::= SEQUENCE { + measResults MeasResults, + nonCriticalExtension MeasurementReport-v8a0-IEs OPTIONAL +} + +MeasurementReport-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MobilityFromEUTRACommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + mobilityFromEUTRACommand-r8 MobilityFromEUTRACommand-r8-IEs, + mobilityFromEUTRACommand-r9 MobilityFromEUTRACommand-r9-IEs, + spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MobilityFromEUTRACommand-r8-IEs ::= SEQUENCE { + cs-FallbackIndicator BOOLEAN, + purpose CHOICE{ + handover Handover, + cellChangeOrder CellChangeOrder + }, + nonCriticalExtension MobilityFromEUTRACommand-v8a0-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MobilityFromEUTRACommand-v8d0-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v8d0-IEs ::= SEQUENCE { + bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +MobilityFromEUTRACommand-r9-IEs ::= SEQUENCE { + cs-FallbackIndicator BOOLEAN, + purpose CHOICE{ + handover Handover, + cellChangeOrder CellChangeOrder, + e-CSFB-r9 E-CSFB-r9, + ... + }, + nonCriticalExtension MobilityFromEUTRACommand-v930-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MobilityFromEUTRACommand-v960-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v960-IEs ::= SEQUENCE { + bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +Handover ::= SEQUENCE { + targetRAT-Type ENUMERATED { + utra, geran, cdma2000-1XRTT, cdma2000-HRPD, + spare4, spare3, spare2, spare1, ...}, + targetRAT-MessageContainer OCTET STRING, + nas-SecurityParamFromEUTRA OCTET STRING (SIZE (1)) OPTIONAL, -- Cond UTRAGERAN + systemInformation SI-OrPSI-GERAN OPTIONAL -- Cond PSHO +} + +CellChangeOrder ::= SEQUENCE { + t304 ENUMERATED { + ms100, ms200, ms500, ms1000, + ms2000, ms4000, ms8000, ms10000-v1310}, + targetRAT-Type CHOICE { + geran SEQUENCE { + physCellId PhysCellIdGERAN, + carrierFreq CarrierFreqGERAN, + networkControlOrder BIT STRING (SIZE (2)) OPTIONAL, -- Need OP + systemInformation SI-OrPSI-GERAN OPTIONAL -- Need OP + }, + ... + } +} + +SI-OrPSI-GERAN ::= CHOICE { + si SystemInfoListGERAN, + psi SystemInfoListGERAN +} + +E-CSFB-r9 ::= SEQUENCE { + messageContCDMA2000-1XRTT-r9 OCTET STRING OPTIONAL, -- Need ON + mobilityCDMA2000-HRPD-r9 ENUMERATED { + handover, redirection + } OPTIONAL, -- Need OP + messageContCDMA2000-HRPD-r9 OCTET STRING OPTIONAL, -- Cond concHO + redirectCarrierCDMA2000-HRPD-r9 CarrierFreqCDMA2000 OPTIONAL -- Cond concRedir +} + + +Paging ::= SEQUENCE { + pagingRecordList PagingRecordList OPTIONAL, -- Need ON + systemInfoModification ENUMERATED {true} OPTIONAL, -- Need ON + etws-Indication ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v890-IEs OPTIONAL +} + +Paging-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension Paging-v920-IEs OPTIONAL +} + +Paging-v920-IEs ::= SEQUENCE { + cmas-Indication-r9 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v1130-IEs OPTIONAL +} + +Paging-v1130-IEs ::= SEQUENCE { + eab-ParamModification-r11 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v1310-IEs OPTIONAL +} + +Paging-v1310-IEs ::= SEQUENCE { + redistributionIndication-r13 ENUMERATED {true} OPTIONAL, --Need ON + systemInfoModification-eDRX-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PagingRecordList ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord + +PagingRecord ::= SEQUENCE { + ue-Identity PagingUE-Identity, + cn-Domain ENUMERATED {ps, cs}, + ... +} + +PagingUE-Identity ::= CHOICE { + s-TMSI S-TMSI, + imsi IMSI, + ... +} + +IMSI ::= SEQUENCE (SIZE (6..21)) OF IMSI-Digit + +IMSI-Digit ::= INTEGER (0..9) + + +ProximityIndication-r9 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + proximityIndication-r9 ProximityIndication-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ProximityIndication-r9-IEs ::= SEQUENCE { + type-r9 ENUMERATED {entering, leaving}, + carrierFreq-r9 CHOICE { + eutra-r9 ARFCN-ValueEUTRA, + utra-r9 ARFCN-ValueUTRA, + ..., + eutra2-v9e0 ARFCN-ValueEUTRA-v9e0 + }, + nonCriticalExtension ProximityIndication-v930-IEs OPTIONAL +} + +ProximityIndication-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RNReconfiguration-r10 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rnReconfiguration-r10 RNReconfiguration-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RNReconfiguration-r10-IEs ::= SEQUENCE { + rn-SystemInfo-r10 RN-SystemInfo-r10 OPTIONAL, -- Need ON + rn-SubframeConfig-r10 RN-SubframeConfig-r10 OPTIONAL, -- Need ON + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RN-SystemInfo-r10 ::= SEQUENCE { + systemInformationBlockType1-r10 OCTET STRING (CONTAINING SystemInformationBlockType1) OPTIONAL, -- Need ON + systemInformationBlockType2-r10 SystemInformationBlockType2 OPTIONAL, -- Need ON + ... +} + + +RNReconfigurationComplete-r10 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rnReconfigurationComplete-r10 RNReconfigurationComplete-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RNReconfigurationComplete-r10-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReconfiguration ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReconfiguration-r8 RRCConnectionReconfiguration-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfiguration-r8-IEs ::= SEQUENCE { + measConfig MeasConfig OPTIONAL, -- Need ON + mobilityControlInfo MobilityControlInfo OPTIONAL, -- Cond HO + dedicatedInfoNASList SEQUENCE (SIZE(1..maxDRB)) OF + DedicatedInfoNAS OPTIONAL, -- Cond nonHO + radioResourceConfigDedicated RadioResourceConfigDedicated OPTIONAL, -- Cond HO-toEUTRA + securityConfigHO SecurityConfigHO OPTIONAL, -- Cond HO + nonCriticalExtension RRCConnectionReconfiguration-v890-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING RRCConnectionReconfiguration-v8m0-IEs) OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v920-IEs OPTIONAL +} + +-- Late non-critical extensions: +RRCConnectionReconfiguration-v8m0-IEs ::= SEQUENCE { + -- Following field is only for pre REL-10 late non-critical extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v10i0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v10i0-IEs ::= SEQUENCE { + antennaInfoDedicatedPCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v10l0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v10l0-IEs ::= SEQUENCE { + mobilityControlInfo-v10l0 MobilityControlInfo-v10l0 OPTIONAL, + sCellToAddModList-v10l0 SCellToAddModList-v10l0 OPTIONAL, -- Need ON + -- Following field is only for late non-critical extensions from REL-10 to REL-11 + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v12f0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v12f0-IEs ::= SEQUENCE { + scg-Configuration-v12f0 SCG-Configuration-v12f0 OPTIONAL, -- Cond nonFullConfig + -- Following field is only for late non-critical extensions from REL-12 + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v1370-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1370-IEs ::= SEQUENCE { + radioResourceConfigDedicated-v1370 RadioResourceConfigDedicated-v1370 OPTIONAL, -- Need ON + sCellToAddModListExt-v1370 SCellToAddModListExt-v1370 OPTIONAL, -- Need ON + -- Following field is only for late non-critical extensions from REL-13 onwards + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +RRCConnectionReconfiguration-v920-IEs ::= SEQUENCE { + otherConfig-r9 OtherConfig-r9 OPTIONAL, -- Need ON + fullConfig-r9 ENUMERATED {true} OPTIONAL, -- Cond HO-Reestab + nonCriticalExtension RRCConnectionReconfiguration-v1020-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1020-IEs ::= SEQUENCE { + sCellToReleaseList-r10 SCellToReleaseList-r10 OPTIONAL, -- Need ON + sCellToAddModList-r10 SCellToAddModList-r10 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1130-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1130-IEs ::= SEQUENCE { + systemInformationBlockType1Dedicated-r11 OCTET STRING (CONTAINING SystemInformationBlockType1) OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1250-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1250-IEs ::= SEQUENCE { + wlan-OffloadInfo-r12 CHOICE { + release NULL, + setup SEQUENCE { + wlan-OffloadConfigDedicated-r12 WLAN-OffloadConfig-r12, + t350-r12 ENUMERATED {min5, min10, min20, min30, min60, + min120, min180, spare1} OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + scg-Configuration-r12 SCG-Configuration-r12 OPTIONAL, -- Cond nonFullConfig + sl-SyncTxControl-r12 SL-SyncTxControl-r12 OPTIONAL, -- Need ON + sl-DiscConfig-r12 SL-DiscConfig-r12 OPTIONAL, -- Need ON + sl-CommConfig-r12 SL-CommConfig-r12 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1310-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1310-IEs ::= SEQUENCE { + sCellToReleaseListExt-r13 SCellToReleaseListExt-r13 OPTIONAL, -- Need ON + sCellToAddModListExt-r13 SCellToAddModListExt-r13 OPTIONAL, -- Need ON + lwa-Configuration-r13 LWA-Configuration-r13 OPTIONAL, -- Need ON + lwip-Configuration-r13 LWIP-Configuration-r13 OPTIONAL, -- Need ON + rclwi-Configuration-r13 RCLWI-Configuration-r13 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1430-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1430-IEs ::= SEQUENCE { + sl-V2X-ConfigDedicated-r14 SL-V2X-ConfigDedicated-r14 OPTIONAL, -- Need ON + sCellToAddModListExt-v1430 SCellToAddModListExt-v1430 OPTIONAL, -- Need ON + perCC-GapIndicationRequest-r14 ENUMERATED{true} OPTIONAL, -- Need ON + systemInformationBlockType2Dedicated-r14 OCTET STRING (CONTAINING SystemInformationBlockType2) OPTIONAL, -- Cond nonHO + nonCriticalExtension RRCConnectionReconfiguration-v1510-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1510-IEs ::= SEQUENCE { + nr-Config-r15 CHOICE { + release NULL, + setup SEQUENCE { + endc-ReleaseAndAdd-r15 BOOLEAN, + nr-SecondaryCellGroupConfig-r15 OCTET STRING OPTIONAL, -- Need ON + p-MaxEUTRA-r15 P-Max OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + sk-Counter-r15 INTEGER (0.. 65535) OPTIONAL, -- Need ON + nr-RadioBearerConfig1-r15 OCTET STRING OPTIONAL, -- Need ON + nr-RadioBearerConfig2-r15 OCTET STRING OPTIONAL, -- Need ON + tdm-PatternConfig-r15 CHOICE { + release NULL, + setup SEQUENCE { + subframeAssignment-r15 SubframeAssignment-r15, + harq-Offset-r15 INTEGER (0.. 9) + } + } OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SL-SyncTxControl-r12 ::= SEQUENCE { + networkControlledSyncTx-r12 ENUMERATED {on, off} OPTIONAL -- Need OP +} + +PSCellToAddMod-r12 ::= SEQUENCE { + sCellIndex-r12 SCellIndex-r10, + cellIdentification-r12 SEQUENCE { + physCellId-r12 PhysCellId, + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonPSCell-r12 RadioResourceConfigCommonPSCell-r12 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedPSCell-r12 RadioResourceConfigDedicatedPSCell-r12 OPTIONAL, -- Cond SCellAdd2 + ..., + [[ antennaInfoDedicatedPSCell-v1280 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON + ]], + [[ sCellIndex-r13 SCellIndex-r13 OPTIONAL -- Need ON + ]], + [[ radioResourceConfigDedicatedPSCell-v1370 RadioResourceConfigDedicatedPSCell-v1370 OPTIONAL -- Need ON + ]] +} + +PSCellToAddMod-v12f0 ::= SEQUENCE { + radioResourceConfigCommonPSCell-r12 RadioResourceConfigCommonPSCell-v12f0 OPTIONAL +} + +PSCellToAddMod-v1440 ::= SEQUENCE { + radioResourceConfigCommonPSCell-r14 RadioResourceConfigCommonPSCell-v1440 OPTIONAL +} + +PowerCoordinationInfo-r12 ::= SEQUENCE { + p-MeNB-r12 INTEGER (1..16), + p-SeNB-r12 INTEGER (1..16), + powerControlMode-r12 INTEGER (1..2) +} + +SCellToAddModList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-r10 + +SCellToAddModList-v10l0 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-v10l0 + +SCellToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-r13 + +SCellToAddModListExt-v1370 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-v1370 + +SCellToAddModListExt-v1430 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-v1430 + +SCellToAddMod-r10 ::= SEQUENCE { + sCellIndex-r10 SCellIndex-r10, + cellIdentification-r10 SEQUENCE { + physCellId-r10 PhysCellId, + dl-CarrierFreq-r10 ARFCN-ValueEUTRA + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonSCell-r10 RadioResourceConfigCommonSCell-r10 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedSCell-r10 RadioResourceConfigDedicatedSCell-r10 OPTIONAL, -- Cond SCellAdd2 + ..., + [[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max + ]], + [[ antennaInfoDedicatedSCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON + ]], + [[ srs-SwitchFromServCellIndex-r14 INTEGER (0.. 31) OPTIONAL -- Need ON + ]] +} + +SCellToAddMod-v10l0 ::= SEQUENCE { + radioResourceConfigCommonSCell-v10l0 RadioResourceConfigCommonSCell-v10l0 OPTIONAL +} + +SCellToAddModExt-r13 ::= SEQUENCE { + sCellIndex-r13 SCellIndex-r13, + cellIdentification-r13 SEQUENCE { + physCellId-r13 PhysCellId, + dl-CarrierFreq-r13 ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonSCell-r13 RadioResourceConfigCommonSCell-r10 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedSCell-r13 RadioResourceConfigDedicatedSCell-r10 OPTIONAL, -- Cond SCellAdd2 + antennaInfoDedicatedSCell-r13 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON +} + +SCellToAddModExt-v1370 ::= SEQUENCE { + radioResourceConfigCommonSCell-v1370 RadioResourceConfigCommonSCell-v10l0 OPTIONAL +} + +SCellToAddModExt-v1430 ::= SEQUENCE { + srs-SwitchFromServCellIndex-r14 INTEGER (0.. 31) OPTIONAL, -- Need ON + ... +} + +SCellToReleaseList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellIndex-r10 + +SCellToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellIndex-r13 + +SCG-Configuration-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + scg-ConfigPartMCG-r12 SEQUENCE { + scg-Counter-r12 INTEGER (0.. 65535) OPTIONAL, -- Need ON + powerCoordinationInfo-r12 PowerCoordinationInfo-r12 OPTIONAL, -- Need ON + ... + } OPTIONAL, -- Need ON + scg-ConfigPartSCG-r12 SCG-ConfigPartSCG-r12 OPTIONAL -- Need ON + } +} + +SCG-Configuration-v12f0 ::= CHOICE { + release NULL, + setup SEQUENCE { + scg-ConfigPartSCG-v12f0 SCG-ConfigPartSCG-v12f0 OPTIONAL -- Need ON + } +} + +SCG-ConfigPartSCG-r12 ::= SEQUENCE { + radioResourceConfigDedicatedSCG-r12 RadioResourceConfigDedicatedSCG-r12 OPTIONAL, -- Need ON + sCellToReleaseListSCG-r12 SCellToReleaseList-r10 OPTIONAL, -- Need ON + pSCellToAddMod-r12 PSCellToAddMod-r12 OPTIONAL, -- Need ON + sCellToAddModListSCG-r12 SCellToAddModList-r10 OPTIONAL, -- Need ON + mobilityControlInfoSCG-r12 MobilityControlInfoSCG-r12 OPTIONAL, -- Need ON + ..., + [[ + sCellToReleaseListSCG-Ext-r13 SCellToReleaseListExt-r13 OPTIONAL, -- Need ON + sCellToAddModListSCG-Ext-r13 SCellToAddModListExt-r13 OPTIONAL -- Need ON + ]], + [[ + sCellToAddModListSCG-Ext-v1370 SCellToAddModListExt-v1370 OPTIONAL -- Need ON + ]], + [[ + pSCellToAddMod-v1440 PSCellToAddMod-v1440 OPTIONAL -- Need ON + ]] +} + +SCG-ConfigPartSCG-v12f0 ::= SEQUENCE { + pSCellToAddMod-v12f0 PSCellToAddMod-v12f0 OPTIONAL, -- Need ON + sCellToAddModListSCG-v12f0 SCellToAddModList-v10l0 OPTIONAL -- Need ON +} + +SecurityConfigHO ::= SEQUENCE { + handoverType CHOICE { + intraLTE SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig OPTIONAL, -- Cond fullConfig + keyChangeIndicator BOOLEAN, + nextHopChainingCount NextHopChainingCount + }, + interRAT SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig, + nas-SecurityParamToEUTRA OCTET STRING (SIZE(6)) + } + }, + ... +} + + + +RRCConnectionReconfigurationComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReconfigurationComplete-r8 + RRCConnectionReconfigurationComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfigurationComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReconfigurationComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1020-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1020-IEs ::= SEQUENCE { + rlf-InfoAvailable-r10 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1130-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1250-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1250-IEs ::= SEQUENCE { + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1430-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1430-IEs ::= SEQUENCE { + perCC-GapIndicationList-r14 PerCC-GapIndicationList-r14 OPTIONAL, + numFreqEffective-r14 INTEGER (1..12) OPTIONAL, + numFreqEffectiveReduced-r14 INTEGER (1..12) OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1510-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1510-IEs ::= SEQUENCE { + scg-ConfigResponseNR-r15 OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishment ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReestablishment-r8 RRCConnectionReestablishment-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishment-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated RadioResourceConfigDedicated, + nextHopChainingCount NextHopChainingCount, + nonCriticalExtension RRCConnectionReestablishment-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishment-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReestablishmentComplete-r8 + RRCConnectionReestablishmentComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReestablishmentComplete-v920-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v920-IEs ::= SEQUENCE { + rlf-InfoAvailable-r9 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1020-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1020-IEs ::= SEQUENCE { + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1130-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1250-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1250-IEs ::= SEQUENCE { + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentReject ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentReject-r8 + RRCConnectionReestablishmentReject-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentReject-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReestablishmentReject-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishmentReject-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentRequest ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentRequest-r8 + RRCConnectionReestablishmentRequest-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentRequest-r8-IEs ::= SEQUENCE { + ue-Identity ReestabUE-Identity, + reestablishmentCause ReestablishmentCause, + spare BIT STRING (SIZE (2)) +} + +ReestabUE-Identity ::= SEQUENCE { + c-RNTI C-RNTI, + physCellId PhysCellId, + shortMAC-I ShortMAC-I +} + +ReestablishmentCause ::= ENUMERATED { + reconfigurationFailure, handoverFailure, + otherFailure, spare1} + + +RRCConnectionReject ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionReject-r8 RRCConnectionReject-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReject-r8-IEs ::= SEQUENCE { + waitTime INTEGER (1..16), + nonCriticalExtension RRCConnectionReject-v8a0-IEs OPTIONAL +} + +RRCConnectionReject-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReject-v1020-IEs OPTIONAL +} + +RRCConnectionReject-v1020-IEs ::= SEQUENCE { + extendedWaitTime-r10 INTEGER (1..1800) OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReject-v1130-IEs OPTIONAL +} + +RRCConnectionReject-v1130-IEs ::= SEQUENCE { + deprioritisationReq-r11 SEQUENCE { + deprioritisationType-r11 ENUMERATED {frequency, e-utra}, + deprioritisationTimer-r11 ENUMERATED {min5, min10, min15, min30} + } OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReject-v1320-IEs OPTIONAL +} + +RRCConnectionReject-v1320-IEs ::= SEQUENCE { + rrc-SuspendIndication-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionRelease ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionRelease-r8 RRCConnectionRelease-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRelease-r8-IEs ::= SEQUENCE { + releaseCause ReleaseCause, + redirectedCarrierInfo RedirectedCarrierInfo OPTIONAL, -- Need ON + idleModeMobilityControlInfo IdleModeMobilityControlInfo OPTIONAL, -- Need OP + nonCriticalExtension RRCConnectionRelease-v890-IEs OPTIONAL +} + +RRCConnectionRelease-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING RRCConnectionRelease-v9e0-IEs) OPTIONAL, + nonCriticalExtension RRCConnectionRelease-v920-IEs OPTIONAL +} + +-- Late non critical extensions +RRCConnectionRelease-v9e0-IEs ::= SEQUENCE { + redirectedCarrierInfo-v9e0 RedirectedCarrierInfo-v9e0 OPTIONAL, -- Cond NoRedirect-r8 + idleModeMobilityControlInfo-v9e0 IdleModeMobilityControlInfo-v9e0 OPTIONAL, -- Cond IdleInfoEUTRA + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +RRCConnectionRelease-v920-IEs ::= SEQUENCE { + cellInfoList-r9 CHOICE { + geran-r9 CellInfoListGERAN-r9, + utra-FDD-r9 CellInfoListUTRA-FDD-r9, + utra-TDD-r9 CellInfoListUTRA-TDD-r9, + ..., + utra-TDD-r10 CellInfoListUTRA-TDD-r10 + } OPTIONAL, -- Cond Redirection + nonCriticalExtension RRCConnectionRelease-v1020-IEs OPTIONAL +} + +RRCConnectionRelease-v1020-IEs ::= SEQUENCE { + extendedWaitTime-r10 INTEGER (1..1800) OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionRelease-v1320-IEs OPTIONAL +} + +RRCConnectionRelease-v1320-IEs::= SEQUENCE { + resumeIdentity-r13 ResumeIdentity-r13 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +ReleaseCause ::= ENUMERATED {loadBalancingTAUrequired, + other, cs-FallbackHighPriority-v1020, rrc-Suspend-v1320} + +RedirectedCarrierInfo ::= CHOICE { + eutra ARFCN-ValueEUTRA, + geran CarrierFreqsGERAN, + utra-FDD ARFCN-ValueUTRA, + utra-TDD ARFCN-ValueUTRA, + cdma2000-HRPD CarrierFreqCDMA2000, + cdma2000-1xRTT CarrierFreqCDMA2000, + ..., + utra-TDD-r10 CarrierFreqListUTRA-TDD-r10 +} + +RedirectedCarrierInfo-v9e0 ::= SEQUENCE { + eutra-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +CarrierFreqListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxFreqUTRA-TDD-r10)) OF ARFCN-ValueUTRA + +IdleModeMobilityControlInfo ::= SEQUENCE { + freqPriorityListEUTRA FreqPriorityListEUTRA OPTIONAL, -- Need ON + freqPriorityListGERAN FreqsPriorityListGERAN OPTIONAL, -- Need ON + freqPriorityListUTRA-FDD FreqPriorityListUTRA-FDD OPTIONAL, -- Need ON + freqPriorityListUTRA-TDD FreqPriorityListUTRA-TDD OPTIONAL, -- Need ON + bandClassPriorityListHRPD BandClassPriorityListHRPD OPTIONAL, -- Need ON + bandClassPriorityList1XRTT BandClassPriorityList1XRTT OPTIONAL, -- Need ON + t320 ENUMERATED { + min5, min10, min20, min30, min60, min120, min180, + spare1} OPTIONAL, -- Need OR + ..., + [[ freqPriorityListExtEUTRA-r12 FreqPriorityListExtEUTRA-r12 OPTIONAL -- Need ON + ]], + [[ freqPriorityListEUTRA-v1310 FreqPriorityListEUTRA-v1310 OPTIONAL, -- Need ON + freqPriorityListExtEUTRA-v1310 FreqPriorityListExtEUTRA-v1310 OPTIONAL -- Need ON + ]] +} + +IdleModeMobilityControlInfo-v9e0 ::= SEQUENCE { + freqPriorityListEUTRA-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v9e0 +} + +FreqPriorityListEUTRA ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA + +FreqPriorityListExtEUTRA-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-r12 + +FreqPriorityListEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v1310 + +FreqPriorityListExtEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v1310 + +FreqPriorityEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityEUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max +} + +FreqPriorityEUTRA-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + cellReselectionPriority-r12 CellReselectionPriority +} + +FreqPriorityEUTRA-v1310 ::= SEQUENCE { + cellReselectionSubPriority-r13 CellReselectionSubPriority-r13 OPTIONAL -- Need ON +} + +FreqsPriorityListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF FreqsPriorityGERAN + +FreqsPriorityGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF FreqPriorityUTRA-FDD + +FreqPriorityUTRA-FDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF FreqPriorityUTRA-TDD + +FreqPriorityUTRA-TDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority +} + +BandClassPriorityListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriorityHRPD + +BandClassPriorityHRPD ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority +} + +BandClassPriorityList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriority1XRTT + +BandClassPriority1XRTT ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority +} + +CellInfoListGERAN-r9 ::= SEQUENCE (SIZE (1..maxCellInfoGERAN-r9)) OF CellInfoGERAN-r9 + +CellInfoGERAN-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdGERAN, + carrierFreq-r9 CarrierFreqGERAN, + systemInformation-r9 SystemInfoListGERAN +} + +CellInfoListUTRA-FDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-FDD-r9 + +CellInfoUTRA-FDD-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdUTRA-FDD, + utra-BCCH-Container-r9 OCTET STRING +} + +CellInfoListUTRA-TDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r9 + +CellInfoUTRA-TDD-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdUTRA-TDD, + utra-BCCH-Container-r9 OCTET STRING +} + +CellInfoListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r10 + +CellInfoUTRA-TDD-r10 ::= SEQUENCE { + physCellId-r10 PhysCellIdUTRA-TDD, + carrierFreq-r10 ARFCN-ValueUTRA, + utra-BCCH-Container-r10 OCTET STRING +} + + +RRCConnectionRequest ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionRequest-r8 RRCConnectionRequest-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRequest-r8-IEs ::= SEQUENCE { + ue-Identity InitialUE-Identity, + establishmentCause EstablishmentCause, + spare BIT STRING (SIZE (1)) +} + +InitialUE-Identity ::= CHOICE { + s-TMSI S-TMSI, + randomValue BIT STRING (SIZE (40)) +} + +EstablishmentCause ::= ENUMERATED { + emergency, highPriorityAccess, mt-Access, mo-Signalling, + mo-Data, delayTolerantAccess-v1020, mo-VoiceCall-v1280, spare1} + + +RRCConnectionResume-r13 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionResume-r13 RRCConnectionResume-r13-IEs, + spare3 NULL, + spare2 NULL, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResume-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated OPTIONAL, -- Need ON + nextHopChainingCount-r13 NextHopChainingCount, + measConfig-r13 MeasConfig OPTIONAL, -- Need ON + antennaInfoDedicatedPCell-r13 AntennaInfoDedicated-v10i0 OPTIONAL, -- Need ON + drb-ContinueROHC-r13 ENUMERATED {true} OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + rrcConnectionResume-v1430-IEs RRCConnectionResume-v1430-IEs OPTIONAL +} + +RRCConnectionResume-v1430-IEs ::= SEQUENCE { + otherConfig-r14 OtherConfig-r9 OPTIONAL, -- Need ON + rrcConnectionResume-v1510-IEs RRCConnectionResume-v1510-IEs OPTIONAL +} + +RRCConnectionResume-v1510-IEs ::= SEQUENCE { + sk-Counter-r15 INTEGER (0.. 65535) OPTIONAL, -- Need ON + nr-RadioBearerConfig1-r15 OCTET STRING OPTIONAL, -- Need ON + nr-RadioBearerConfig2-r15 OCTET STRING OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeComplete-r13 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeComplete-r13-IEs ::= SEQUENCE { + selectedPLMN-Identity-r13 INTEGER (1..maxPLMN-r11) OPTIONAL, + dedicatedInfoNAS-r13 DedicatedInfoNAS OPTIONAL, + rlf-InfoAvailable-r13 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r13 ENUMERATED {true} OPTIONAL, + connEstFailInfoAvailable-r13 ENUMERATED {true} OPTIONAL, + mobilityState-r13 ENUMERATED {normal, medium, high, spare} OPTIONAL, + mobilityHistoryAvail-r13 ENUMERATED {true} OPTIONAL, + logMeasAvailableMBSFN-r13 ENUMERATED {true} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeRequest-r13 ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeRequest-r13-IEs ::= SEQUENCE { + resumeIdentity-r13 CHOICE { + resumeID-r13 ResumeIdentity-r13, + truncatedResumeID-r13 BIT STRING (SIZE (24)) + }, + shortResumeMAC-I-r13 BIT STRING (SIZE (16)), + resumeCause-r13 ResumeCause, + spare BIT STRING (SIZE (1)) +} + +ResumeCause ::= ENUMERATED { + emergency, highPriorityAccess, mt-Access, mo-Signalling, + mo-Data, delayTolerantAccess-v1020, mo-VoiceCall-v1280, spare1} + + + +RRCConnectionSetup ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionSetup-r8 RRCConnectionSetup-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetup-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated RadioResourceConfigDedicated, + nonCriticalExtension RRCConnectionSetup-v8a0-IEs OPTIONAL +} + +RRCConnectionSetup-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionSetupComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionSetupComplete-r8 RRCConnectionSetupComplete-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetupComplete-r8-IEs ::= SEQUENCE { + selectedPLMN-Identity INTEGER (1..maxPLMN-r11), + registeredMME RegisteredMME OPTIONAL, + dedicatedInfoNAS DedicatedInfoNAS, + nonCriticalExtension RRCConnectionSetupComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1020-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1020-IEs ::= SEQUENCE { + gummei-Type-r10 ENUMERATED {native, mapped} OPTIONAL, + rlf-InfoAvailable-r10 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + rn-SubframeConfigReq-r10 ENUMERATED {required, notRequired} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1130-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1250-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1250-IEs ::= SEQUENCE { + mobilityState-r12 ENUMERATED {normal, medium, high, spare} OPTIONAL, + mobilityHistoryAvail-r12 ENUMERATED {true} OPTIONAL, + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1320-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1320-IEs ::= SEQUENCE { + ce-ModeB-r13 ENUMERATED {supported} OPTIONAL, + s-TMSI-r13 S-TMSI OPTIONAL, + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL, + up-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, + cp-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1330-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1330-IEs ::= SEQUENCE { + ue-CE-NeedULGaps-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1430-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1430-IEs ::= SEQUENCE { + dcn-ID-r14 INTEGER (0..65535) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RegisteredMME ::= SEQUENCE { + plmn-Identity PLMN-Identity OPTIONAL, + mmegi BIT STRING (SIZE (16)), + mmec MMEC +} + + +SCGFailureInformation-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + scgFailureInformation-r12 SCGFailureInformation-r12-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCGFailureInformation-r12-IEs ::= SEQUENCE { + failureReportSCG-r12 FailureReportSCG-r12 OPTIONAL, + nonCriticalExtension SCGFailureInformation-v1310-IEs OPTIONAL +} + +SCGFailureInformation-v1310-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING SCGFailureInformation-v12d0-IEs) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Late non-critical extensions: +SCGFailureInformation-v12d0-IEs ::= SEQUENCE { + failureReportSCG-v12d0 FailureReportSCG-v12d0 OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +FailureReportSCG-r12 ::= SEQUENCE { + failureType-r12 ENUMERATED {t313-Expiry, randomAccessProblem, + rlc-MaxNumRetx, scg-ChangeFailure }, + measResultServFreqList-r12 MeasResultServFreqList-r10 OPTIONAL, + measResultNeighCells-r12 MeasResultList2EUTRA-r9 OPTIONAL, + ..., + [[ failureType-v1290 ENUMERATED {maxUL-TimingDiff-v1290} OPTIONAL + ]], + [[ measResultServFreqListExt-r13 MeasResultServFreqListExt-r13 OPTIONAL + ]] +} + +FailureReportSCG-v12d0 ::= SEQUENCE { + measResultNeighCells-v12d0 MeasResultList2EUTRA-v9e0 OPTIONAL +} + + +SCGFailureInformationNR-r15 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + scgFailureInformationNR-r15 SCGFailureInformationNR-r15-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCGFailureInformationNR-r15-IEs ::= SEQUENCE { + failureReportSCG-NR-r15 FailureReportSCG-NR-r15 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +FailureReportSCG-NR-r15 ::= SEQUENCE { + failureType-r15 ENUMERATED { + t310-Expiry, randomAccessProblem, + rlc-MaxNumRetx, + scg-ChangeFailure, scg-reconfigFailure, + srb3-IntegrityFailure}, + measResultFreqListNR-r15 MeasResultFreqListFailNR-r15 OPTIONAL, + measResultSCG-r15 OCTET STRING OPTIONAL, + ... +} + +MeasResultFreqListFailNR-r15 ::= SEQUENCE (SIZE (1..maxFreqNR-r15)) OF MeasResultFreqFailNR-r15 + +MeasResultFreqFailNR-r15 ::= SEQUENCE { + carrierFreq-r15 ARFCN-ValueNR-r15, + measResultCellList-r15 MeasResultCellListNR-r15 OPTIONAL, + ... +} + + +SCPTMConfiguration-r13 ::= SEQUENCE { + sc-mtch-InfoList-r13 SC-MTCH-InfoList-r13, + scptm-NeighbourCellList-r13 SCPTM-NeighbourCellList-r13 OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SCPTMConfiguration-v1340 OPTIONAL +} + +SCPTMConfiguration-v1340 ::= SEQUENCE { + p-b-r13 INTEGER (0..3) OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCPTMConfiguration-BR-r14 ::= SEQUENCE { + sc-mtch-InfoList-r14 SC-MTCH-InfoList-BR-r14, + scptm-NeighbourCellList-r14 SCPTM-NeighbourCellList-r13 OPTIONAL, -- Need OP + p-b-r14 INTEGER (0..3) OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SecurityModeCommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + securityModeCommand-r8 SecurityModeCommand-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeCommand-r8-IEs ::= SEQUENCE { + securityConfigSMC SecurityConfigSMC, + nonCriticalExtension SecurityModeCommand-v8a0-IEs OPTIONAL +} + +SecurityModeCommand-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SecurityConfigSMC ::= SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig, + ... +} + + +SecurityModeComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeComplete-r8 SecurityModeComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension SecurityModeComplete-v8a0-IEs OPTIONAL +} + +SecurityModeComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SecurityModeFailure ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeFailure-r8 SecurityModeFailure-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeFailure-r8-IEs ::= SEQUENCE { + nonCriticalExtension SecurityModeFailure-v8a0-IEs OPTIONAL +} + +SecurityModeFailure-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SidelinkUEInformation-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + sidelinkUEInformation-r12 SidelinkUEInformation-r12-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SidelinkUEInformation-r12-IEs ::= SEQUENCE { + commRxInterestedFreq-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, + commTxResourceReq-r12 SL-CommTxResourceReq-r12 OPTIONAL, + discRxInterest-r12 ENUMERATED {true} OPTIONAL, + discTxResourceReq-r12 INTEGER (1..63) OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SidelinkUEInformation-v1310-IEs OPTIONAL +} + +SidelinkUEInformation-v1310-IEs ::= SEQUENCE { + commTxResourceReqUC-r13 SL-CommTxResourceReq-r12 OPTIONAL, + commTxResourceInfoReqRelay-r13 SEQUENCE { + commTxResourceReqRelay-r13 SL-CommTxResourceReq-r12 OPTIONAL, + commTxResourceReqRelayUC-r13 SL-CommTxResourceReq-r12 OPTIONAL, + ue-Type-r13 ENUMERATED {relayUE, remoteUE} + } OPTIONAL, + discTxResourceReq-v1310 SEQUENCE { + carrierFreqDiscTx-r13 INTEGER (1..maxFreq) OPTIONAL, + discTxResourceReqAddFreq-r13 SL-DiscTxResourceReqPerFreqList-r13 OPTIONAL + } OPTIONAL, + discTxResourceReqPS-r13 SL-DiscTxResourceReq-r13 OPTIONAL, + discRxGapReq-r13 SL-GapRequest-r13 OPTIONAL, + discTxGapReq-r13 SL-GapRequest-r13 OPTIONAL, + discSysInfoReportFreqList-r13 SL-DiscSysInfoReportFreqList-r13 OPTIONAL, + nonCriticalExtension SidelinkUEInformation-v1430-IEs OPTIONAL +} + +SidelinkUEInformation-v1430-IEs ::= SEQUENCE { + v2x-CommRxInterestedFreqList-r14 SL-V2X-CommFreqList-r14 OPTIONAL, + p2x-CommTxType-r14 ENUMERATED {true} OPTIONAL, + v2x-CommTxResourceReq-r14 SL-V2X-CommTxFreqList-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SL-CommTxResourceReq-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, + destinationInfoList-r12 SL-DestinationInfoList-r12 +} + +SL-DiscTxResourceReqPerFreqList-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-DiscTxResourceReq-r13 + +SL-DiscTxResourceReq-r13 ::= SEQUENCE { + carrierFreqDiscTx-r13 INTEGER (1..maxFreq) OPTIONAL, + discTxResourceReq-r13 INTEGER (1..63) +} + +SL-DestinationInfoList-r12 ::= SEQUENCE (SIZE (1..maxSL-Dest-r12)) OF SL-DestinationIdentity-r12 + +SL-DestinationIdentity-r12 ::= BIT STRING (SIZE (24)) + +SL-DiscSysInfoReportFreqList-r13 ::= SEQUENCE (SIZE (1.. maxSL-DiscSysInfoReportFreq-r13)) OF SL-DiscSysInfoReport-r13 + +SL-V2X-CommFreqList-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF INTEGER (0..maxFreqV2X-1-r14) + +SL-V2X-CommTxFreqList-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF SL-V2X-CommTxResourceReq-r14 + +SL-V2X-CommTxResourceReq-r14 ::= SEQUENCE { + carrierFreqCommTx-r14 INTEGER (0.. maxFreqV2X-1-r14) OPTIONAL, + v2x-TypeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, + v2x-DestinationInfoList-r14 SL-DestinationInfoList-r12 OPTIONAL +} + + +SystemInformation-BR-r13 ::= SystemInformation + +SystemInformation-MBMS-r14 ::= SystemInformation + +SystemInformation ::= SEQUENCE { + criticalExtensions CHOICE { + systemInformation-r8 SystemInformation-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} +SystemInformation-r8-IEs ::= SEQUENCE { + sib-TypeAndInfo SEQUENCE (SIZE (1..maxSIB)) OF CHOICE { + sib2 SystemInformationBlockType2, + sib3 SystemInformationBlockType3, + sib4 SystemInformationBlockType4, + sib5 SystemInformationBlockType5, + sib6 SystemInformationBlockType6, + sib7 SystemInformationBlockType7, + sib8 SystemInformationBlockType8, + sib9 SystemInformationBlockType9, + sib10 SystemInformationBlockType10, + sib11 SystemInformationBlockType11, + ..., + sib12-v920 SystemInformationBlockType12-r9, + sib13-v920 SystemInformationBlockType13-r9, + sib14-v1130 SystemInformationBlockType14-r11, + sib15-v1130 SystemInformationBlockType15-r11, + sib16-v1130 SystemInformationBlockType16-r11, + sib17-v1250 SystemInformationBlockType17-r12, + sib18-v1250 SystemInformationBlockType18-r12, + sib19-v1250 SystemInformationBlockType19-r12, + sib20-v1310 SystemInformationBlockType20-r13, + sib21-v1430 SystemInformationBlockType21-r14 + }, + nonCriticalExtension SystemInformation-v8a0-IEs OPTIONAL +} + +SystemInformation-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType1-BR-r13 ::= SystemInformationBlockType1 + +SystemInformationBlockType1 ::= SEQUENCE { + cellAccessRelatedInfo SEQUENCE { + plmn-IdentityList PLMN-IdentityList, + trackingAreaCode TrackingAreaCode, + cellIdentity CellIdentity, + cellBarred ENUMERATED {barred, notBarred}, + intraFreqReselection ENUMERATED {allowed, notAllowed}, + csg-Indication BOOLEAN, + csg-Identity CSG-Identity OPTIONAL -- Need OR + }, + cellSelectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + q-RxLevMinOffset INTEGER (1..8) OPTIONAL -- Need OP + }, + p-Max P-Max OPTIONAL, -- Need OP + freqBandIndicator FreqBandIndicator, + schedulingInfoList SchedulingInfoList, + tdd-Config TDD-Config OPTIONAL, -- Cond TDD + si-WindowLength ENUMERATED { + ms1, ms2, ms5, ms10, ms15, ms20, + ms40}, + systemInfoValueTag INTEGER (0..31), + nonCriticalExtension SystemInformationBlockType1-v890-IEs OPTIONAL +} + +SystemInformationBlockType1-v890-IEs::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType1-v8h0-IEs) OPTIONAL, + nonCriticalExtension SystemInformationBlockType1-v920-IEs OPTIONAL +} + +-- Late non critical extensions +SystemInformationBlockType1-v8h0-IEs ::= SEQUENCE { + multiBandInfoList MultiBandInfoList OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType1-v9e0-IEs ::= SEQUENCE { + freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL, -- Cond FBI-max + multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL, -- Cond mFBI-max + nonCriticalExtension SystemInformationBlockType1-v10j0-IEs OPTIONAL +} + +SystemInformationBlockType1-v10j0-IEs ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType1-v10l0-IEs ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +SystemInformationBlockType1-v920-IEs ::= SEQUENCE { + ims-EmergencySupport-r9 ENUMERATED {true} OPTIONAL, -- Need OR + cellSelectionInfo-v920 CellSelectionInfo-v920 OPTIONAL, -- Cond RSRQ + nonCriticalExtension SystemInformationBlockType1-v1130-IEs OPTIONAL +} + +SystemInformationBlockType1-v1130-IEs ::= SEQUENCE { + tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD-OR + cellSelectionInfo-v1130 CellSelectionInfo-v1130 OPTIONAL, -- Cond WB-RSRQ + nonCriticalExtension SystemInformationBlockType1-v1250-IEs OPTIONAL +} + +SystemInformationBlockType1-v1250-IEs ::= SEQUENCE { + cellAccessRelatedInfo-v1250 SEQUENCE { + category0Allowed-r12 ENUMERATED {true} OPTIONAL -- Need OP + }, + cellSelectionInfo-v1250 CellSelectionInfo-v1250 OPTIONAL, -- Cond RSRQ2 + freqBandIndicatorPriority-r12 ENUMERATED {true} OPTIONAL, -- Cond mFBI + nonCriticalExtension SystemInformationBlockType1-v1310-IEs OPTIONAL +} + +SystemInformationBlockType1-v1310-IEs ::= SEQUENCE { + hyperSFN-r13 BIT STRING (SIZE (10)) OPTIONAL, -- Need OR + eDRX-Allowed-r13 ENUMERATED {true} OPTIONAL, -- Need OR + cellSelectionInfoCE-r13 CellSelectionInfoCE-r13 OPTIONAL, -- Need OP + bandwidthReducedAccessRelatedInfo-r13 SEQUENCE { + si-WindowLength-BR-r13 ENUMERATED { + ms20, ms40, ms60, ms80, ms120, + ms160, ms200, spare}, + si-RepetitionPattern-r13 ENUMERATED {everyRF, every2ndRF, every4thRF, + every8thRF}, + schedulingInfoList-BR-r13 SchedulingInfoList-BR-r13 OPTIONAL, -- Cond SI-BR + fdd-DownlinkOrTddSubframeBitmapBR-r13 CHOICE { + subframePattern10-r13 BIT STRING (SIZE (10)), + subframePattern40-r13 BIT STRING (SIZE (40)) + } OPTIONAL, -- Need OP + fdd-UplinkSubframeBitmapBR-r13 BIT STRING (SIZE (10)) OPTIONAL, -- Need OP + startSymbolBR-r13 INTEGER (1..4), + si-HoppingConfigCommon-r13 ENUMERATED {on,off}, + si-ValidityTime-r13 ENUMERATED {true} OPTIONAL, -- Need OP + systemInfoValueTagList-r13 SystemInfoValueTagList-r13 OPTIONAL -- Need OR + } OPTIONAL, -- Cond BW-reduced + nonCriticalExtension SystemInformationBlockType1-v1320-IEs OPTIONAL +} + +SystemInformationBlockType1-v1320-IEs ::= SEQUENCE { + freqHoppingParametersDL-r13 SEQUENCE { + mpdcch-pdsch-HoppingNB-r13 ENUMERATED {nb2, nb4} OPTIONAL, -- Need OR + interval-DLHoppingConfigCommonModeA-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-r13 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL, -- Need OR + interval-DLHoppingConfigCommonModeB-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int2, int4, int8, int16}, + interval-TDD-r13 ENUMERATED { int5, int10, int20, int40} + } OPTIONAL, -- Need OR + mpdcch-pdsch-HoppingOffset-r13 INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL -- Need OR + } OPTIONAL, -- Cond Hopping + nonCriticalExtension SystemInformationBlockType1-v1350-IEs OPTIONAL +} + +SystemInformationBlockType1-v1350-IEs ::= SEQUENCE { + cellSelectionInfoCE1-r13 CellSelectionInfoCE1-r13 OPTIONAL, -- Need OP + nonCriticalExtension SystemInformationBlockType1-v1360-IEs OPTIONAL +} + +SystemInformationBlockType1-v1360-IEs ::= SEQUENCE { + cellSelectionInfoCE1-v1360 CellSelectionInfoCE1-v1360 OPTIONAL, -- Cond QrxlevminCE1 + nonCriticalExtension SystemInformationBlockType1-v1430-IEs OPTIONAL +} + +SystemInformationBlockType1-v1430-IEs ::= SEQUENCE { + eCallOverIMS-Support-r14 ENUMERATED {true} OPTIONAL, -- Need OR + tdd-Config-v1430 TDD-Config-v1430 OPTIONAL, -- Cond TDD-OR + cellAccessRelatedInfoList-r14 SEQUENCE (SIZE (1..maxPLMN-1-r14)) OF + CellAccessRelatedInfo-r14 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v1450-IEs OPTIONAL +} + +SystemInformationBlockType1-v1450-IEs ::= SEQUENCE { + tdd-Config-v1450 TDD-Config-v1450 OPTIONAL, -- Cond TDD-OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PLMN-IdentityList ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo + +PLMN-IdentityInfo ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellReservedForOperatorUse ENUMERATED {reserved, notReserved} +} + +SchedulingInfoList ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo + +SchedulingInfo ::= SEQUENCE { + si-Periodicity ENUMERATED { + rf8, rf16, rf32, rf64, rf128, rf256, rf512}, + sib-MappingInfo SIB-MappingInfo +} + +SchedulingInfoList-BR-r13 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo-BR-r13 + +SchedulingInfo-BR-r13 ::= SEQUENCE { + si-Narrowband-r13 INTEGER (1..maxAvailNarrowBands-r13), + si-TBS-r13 ENUMERATED {b152, b208, b256, b328, b408, b504, b600, b712, + b808, b936} +} + +SIB-MappingInfo ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type + +SIB-Type ::= ENUMERATED { + sibType3, sibType4, sibType5, sibType6, + sibType7, sibType8, sibType9, sibType10, + sibType11, sibType12-v920, sibType13-v920, + sibType14-v1130, sibType15-v1130, + sibType16-v1130, sibType17-v1250, sibType18-v1250, + ..., sibType19-v1250, sibType20-v1310, sibType21-v1430} + +SystemInfoValueTagList-r13 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SystemInfoValueTagSI-r13 + +SystemInfoValueTagSI-r13 ::= INTEGER (0..3) + +CellSelectionInfo-v920 ::= SEQUENCE { + q-QualMin-r9 Q-QualMin-r9, + q-QualMinOffset-r9 INTEGER (1..8) OPTIONAL -- Need OP +} + +CellSelectionInfo-v1130 ::= SEQUENCE { + q-QualMinWB-r11 Q-QualMin-r9 +} + +CellSelectionInfo-v1250 ::= SEQUENCE { + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 +} + +CellAccessRelatedInfo-r14 ::= SEQUENCE { + plmn-IdentityList-r14 PLMN-IdentityList, + trackingAreaCode-r14 TrackingAreaCode, + cellIdentity-r14 CellIdentity +} + + +SystemInformationBlockType1-MBMS-r14 ::= SEQUENCE { + cellAccessRelatedInfo-r14 SEQUENCE { + plmn-IdentityList-r14 PLMN-IdentityList-MBMS-r14, + trackingAreaCode-r14 TrackingAreaCode, + cellIdentity-r14 CellIdentity + }, + freqBandIndicator-r14 FreqBandIndicator-r11, + multiBandInfoList-r14 MultiBandInfoList-r11 OPTIONAL, -- Need OR + schedulingInfoList-MBMS-r14 SchedulingInfoList-MBMS-r14, + si-WindowLength-r14 ENUMERATED { + ms1, ms2, ms5, ms10, ms15, ms20,ms40, ms80}, + systemInfoValueTag-r14 INTEGER (0..31), + nonMBSFN-SubframeConfig-r14 NonMBSFN-SubframeConfig-r14 OPTIONAL, --Need OR + pdsch-ConfigCommon-r14 PDSCH-ConfigCommon, + systemInformationBlockType13-r14 SystemInformationBlockType13-r9 OPTIONAL, --Need OR + cellAccessRelatedInfoList-r14 SEQUENCE (SIZE (1..maxPLMN-1-r14)) OF + CellAccessRelatedInfo-r14 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PLMN-IdentityList-MBMS-r14 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-Identity + +SchedulingInfoList-MBMS-r14 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo-MBMS-r14 + +SchedulingInfo-MBMS-r14 ::= SEQUENCE { + si-Periodicity-r14 ENUMERATED { + rf16, rf32, rf64, rf128, rf256, rf512}, + sib-MappingInfo-r14 SIB-MappingInfo-MBMS-r14 +} + +SIB-MappingInfo-MBMS-r14 ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type-MBMS-r14 + +SIB-Type-MBMS-r14 ::= ENUMERATED { + sibType10, sibType11, sibType12-v920, sibType13-v920, + sibType15-v1130, sibType16-v1130, ...} + + +NonMBSFN-SubframeConfig-r14 ::= SEQUENCE { + radioFrameAllocationPeriod-r14 ENUMERATED {rf4, rf8, rf16, rf32, rf64, rf128, rf512}, + radioFrameAllocationOffset-r14 INTEGER (0..7), + subframeAllocation-r14 BIT STRING (SIZE(9)) +} + + +UEAssistanceInformation-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ueAssistanceInformation-r11 UEAssistanceInformation-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEAssistanceInformation-r11-IEs ::= SEQUENCE { + powerPrefIndication-r11 ENUMERATED {normal, lowPowerConsumption} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UEAssistanceInformation-v1430-IEs OPTIONAL +} + +UEAssistanceInformation-v1430-IEs ::= SEQUENCE { + bw-Preference-r14 BW-Preference-r14 OPTIONAL, + sps-AssistanceInformation-r14 SEQUENCE { + trafficPatternInfoListSL-r14 TrafficPatternInfoList-r14 OPTIONAL, + trafficPatternInfoListUL-r14 TrafficPatternInfoList-r14 OPTIONAL + } OPTIONAL, + rlm-Report-r14 SEQUENCE { + rlm-Event-r14 ENUMERATED {earlyOutOfSync, earlyInSync}, + excessRep-MPDCCH-r14 ENUMERATED {excessRep1, excessRep2} OPTIONAL + } OPTIONAL, delayBudgetReport-r14 DelayBudgetReport-r14 OPTIONAL, + nonCriticalExtension UEAssistanceInformation-v1450-IEs OPTIONAL +} + +UEAssistanceInformation-v1450-IEs ::= SEQUENCE { + overheatingAssistance-r14 OverheatingAssistance-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +BW-Preference-r14 ::= SEQUENCE { + dl-Preference-r14 ENUMERATED {mhz1dot4, mhz5, mhz20 } OPTIONAL, + ul-Preference-r14 ENUMERATED {mhz1dot4, mhz5} OPTIONAL +} + +TrafficPatternInfoList-r14 ::= SEQUENCE (SIZE (1..maxTrafficPattern-r14)) OF TrafficPatternInfo-r14 + +TrafficPatternInfo-r14 ::= SEQUENCE { + trafficPeriodicity-r14 ENUMERATED { + sf20, sf50, sf100, sf200, sf300, sf400, sf500, + sf600, sf700, sf800, sf900, sf1000}, + timingOffset-r14 INTEGER (0..10239), + priorityInfoSL-r14 SL-Priority-r13 OPTIONAL, + logicalChannelIdentityUL-r14 INTEGER (3..10) OPTIONAL, + messageSize-r14 BIT STRING (SIZE (6)) +} + +DelayBudgetReport-r14::= CHOICE { + type1 ENUMERATED { + msMinus1280, msMinus640, msMinus320, msMinus160, + msMinus80, msMinus60, msMinus40, msMinus20, ms0, ms20, ms40, ms60, ms80, ms160, ms320, ms640, ms1280}, + + type2 ENUMERATED { + msMinus192, msMinus168,msMinus144, msMinus120, + msMinus96, msMinus72, msMinus48, msMinus24, ms0, ms24, ms48, ms72, ms96, ms120, ms144, ms168, ms192} +} + +OverheatingAssistance-r14 ::= SEQUENCE { + reducedUE-Category SEQUENCE { + reducedUE-CategoryDL INTEGER (0..19), + reducedUE-CategoryUL INTEGER (0..21) + } OPTIONAL, + reducedMaxCCs SEQUENCE { + reducedCCsDL INTEGER (0..31), + reducedCCsUL INTEGER (0..31) + } OPTIONAL +} + + +UECapabilityEnquiry ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueCapabilityEnquiry-r8 UECapabilityEnquiry-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityEnquiry-r8-IEs ::= SEQUENCE { + ue-CapabilityRequest UE-CapabilityRequest, + nonCriticalExtension UECapabilityEnquiry-v8a0-IEs OPTIONAL +} + +UECapabilityEnquiry-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UECapabilityEnquiry-v1180-IEs OPTIONAL +} + +UECapabilityEnquiry-v1180-IEs ::= SEQUENCE { + requestedFrequencyBands-r11 SEQUENCE (SIZE (1..16)) OF FreqBandIndicator-r11 OPTIONAL, + nonCriticalExtension UECapabilityEnquiry-v1310-IEs OPTIONAL +} + +UECapabilityEnquiry-v1310-IEs ::= SEQUENCE { + requestReducedFormat-r13 ENUMERATED {true} OPTIONAL, -- Need ON + requestSkipFallbackComb-r13 ENUMERATED {true} OPTIONAL, -- Need ON + requestedMaxCCsDL-r13 INTEGER (2..32) OPTIONAL, -- Need ON + requestedMaxCCsUL-r13 INTEGER (2..32) OPTIONAL, -- Need ON + requestReducedIntNonContComb-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension UECapabilityEnquiry-v1430-IEs OPTIONAL +} + +UECapabilityEnquiry-v1430-IEs ::= SEQUENCE { + requestDiffFallbackCombList-r14 BandCombinationList-r14 OPTIONAL, -- Need ON + nonCriticalExtension UECapabilityEnquiry-v1510-IEs OPTIONAL +} + +UECapabilityEnquiry-v1510-IEs ::= SEQUENCE { + requestedFreqBandsNR-MRDC-r15 OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-CapabilityRequest ::= SEQUENCE (SIZE (1..maxRAT-Capabilities)) OF RAT-Type + + +UECapabilityInformation ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + ueCapabilityInformation-r8 UECapabilityInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityInformation-r8-IEs ::= SEQUENCE { + ue-CapabilityRAT-ContainerList UE-CapabilityRAT-ContainerList, + nonCriticalExtension UECapabilityInformation-v8a0-IEs OPTIONAL +} + +UECapabilityInformation-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UECapabilityInformation-v1250-IEs OPTIONAL +} + +UECapabilityInformation-v1250-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r12 UE-RadioPagingInfo-r12 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEInformationRequest-r9 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueInformationRequest-r9 UEInformationRequest-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEInformationRequest-r9-IEs ::= SEQUENCE { + rach-ReportReq-r9 BOOLEAN, + rlf-ReportReq-r9 BOOLEAN, + nonCriticalExtension UEInformationRequest-v930-IEs OPTIONAL +} + +UEInformationRequest-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UEInformationRequest-v1020-IEs OPTIONAL +} + +UEInformationRequest-v1020-IEs ::= SEQUENCE { + logMeasReportReq-r10 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension UEInformationRequest-v1130-IEs OPTIONAL +} + +UEInformationRequest-v1130-IEs ::= SEQUENCE { + connEstFailReportReq-r11 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension UEInformationRequest-v1250-IEs OPTIONAL +} + +UEInformationRequest-v1250-IEs ::= SEQUENCE { + mobilityHistoryReportReq-r12 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEInformationResponse-r9 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueInformationResponse-r9 UEInformationResponse-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEInformationResponse-r9-IEs ::= SEQUENCE { + rach-Report-r9 SEQUENCE { + numberOfPreamblesSent-r9 NumberOfPreamblesSent-r11, + contentionDetected-r9 BOOLEAN + } OPTIONAL, + rlf-Report-r9 RLF-Report-r9 OPTIONAL, + nonCriticalExtension UEInformationResponse-v930-IEs OPTIONAL +} + +-- Late non critical extensions +UEInformationResponse-v9e0-IEs ::= SEQUENCE { + rlf-Report-v9e0 RLF-Report-v9e0 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +UEInformationResponse-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING UEInformationResponse-v9e0-IEs) OPTIONAL, + nonCriticalExtension UEInformationResponse-v1020-IEs OPTIONAL +} + +UEInformationResponse-v1020-IEs ::= SEQUENCE { + logMeasReport-r10 LogMeasReport-r10 OPTIONAL, + nonCriticalExtension UEInformationResponse-v1130-IEs OPTIONAL +} + +UEInformationResponse-v1130-IEs ::= SEQUENCE { + connEstFailReport-r11 ConnEstFailReport-r11 OPTIONAL, + nonCriticalExtension UEInformationResponse-v1250-IEs OPTIONAL +} + +UEInformationResponse-v1250-IEs ::= SEQUENCE { + mobilityHistoryReport-r12 MobilityHistoryReport-r12 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RLF-Report-r9 ::= SEQUENCE { + measResultLastServCell-r9 SEQUENCE { + rsrpResult-r9 RSRP-Range, + rsrqResult-r9 RSRQ-Range OPTIONAL + }, + measResultNeighCells-r9 SEQUENCE { + measResultListEUTRA-r9 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r9 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r9 MeasResultListGERAN OPTIONAL, + measResultsCDMA2000-r9 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + ..., + [[ locationInfo-r10 LocationInfo-r10 OPTIONAL, + failedPCellId-r10 CHOICE { + cellGlobalId-r10 CellGlobalIdEUTRA, + pci-arfcn-r10 SEQUENCE { + physCellId-r10 PhysCellId, + carrierFreq-r10 ARFCN-ValueEUTRA + } + } OPTIONAL, + reestablishmentCellId-r10 CellGlobalIdEUTRA OPTIONAL, + timeConnFailure-r10 INTEGER (0..1023) OPTIONAL, + connectionFailureType-r10 ENUMERATED {rlf, hof} OPTIONAL, + previousPCellId-r10 CellGlobalIdEUTRA OPTIONAL + ]], + [[ failedPCellId-v1090 SEQUENCE { + carrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 + } OPTIONAL + ]], + [[ basicFields-r11 SEQUENCE { + c-RNTI-r11 C-RNTI, + rlf-Cause-r11 ENUMERATED { + t310-Expiry, randomAccessProblem, + rlc-MaxNumRetx, t312-Expiry-r12}, + timeSinceFailure-r11 TimeSinceFailure-r11 + } OPTIONAL, + previousUTRA-CellId-r11 SEQUENCE { + carrierFreq-r11 ARFCN-ValueUTRA, + physCellId-r11 CHOICE { + fdd-r11 PhysCellIdUTRA-FDD, + tdd-r11 PhysCellIdUTRA-TDD + }, + cellGlobalId-r11 CellGlobalIdUTRA OPTIONAL + } OPTIONAL, + selectedUTRA-CellId-r11 SEQUENCE { + carrierFreq-r11 ARFCN-ValueUTRA, + physCellId-r11 CHOICE { + fdd-r11 PhysCellIdUTRA-FDD, + tdd-r11 PhysCellIdUTRA-TDD + } + } OPTIONAL + ]], + [[ failedPCellId-v1250 SEQUENCE { + tac-FailedPCell-r12 TrackingAreaCode + } OPTIONAL, + measResultLastServCell-v1250 RSRQ-Range-v1250 OPTIONAL, + lastServCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL + ]], + [[ drb-EstablishedWithQCI-1-r13 ENUMERATED {qci1} OPTIONAL + ]], + [[ measResultLastServCell-v1360 RSRP-Range-v1360 OPTIONAL + ]] +} + +RLF-Report-v9e0 ::= SEQUENCE { + measResultListEUTRA-v9e0 MeasResultList2EUTRA-v9e0 +} + +MeasResultList2EUTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-r9 + +MeasResultList2EUTRA-v9e0 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v9e0 + +MeasResultList2EUTRA-v1250 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v1250 + +MeasResult2EUTRA-r9 ::= SEQUENCE { + carrierFreq-r9 ARFCN-ValueEUTRA, + measResultList-r9 MeasResultListEUTRA +} + +MeasResult2EUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL +} + +MeasResult2EUTRA-v1250 ::= SEQUENCE { + rsrq-Type-r12 RSRQ-Type-r12 OPTIONAL +} + +MeasResultList2UTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2UTRA-r9 + +MeasResult2UTRA-r9 ::= SEQUENCE { + carrierFreq-r9 ARFCN-ValueUTRA, + measResultList-r9 MeasResultListUTRA +} + +MeasResultList2CDMA2000-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2CDMA2000-r9 + +MeasResult2CDMA2000-r9 ::= SEQUENCE { + carrierFreq-r9 CarrierFreqCDMA2000, + measResultList-r9 MeasResultsCDMA2000 +} + +LogMeasReport-r10 ::= SEQUENCE { + absoluteTimeStamp-r10 AbsoluteTimeInfo-r10, + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + logMeasInfoList-r10 LogMeasInfoList-r10, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + ... +} + +LogMeasInfoList-r10 ::= SEQUENCE (SIZE (1..maxLogMeasReport-r10)) OF LogMeasInfo-r10 + +LogMeasInfo-r10 ::= SEQUENCE { + locationInfo-r10 LocationInfo-r10 OPTIONAL, + relativeTimeStamp-r10 INTEGER (0..7200), + servCellIdentity-r10 CellGlobalIdEUTRA, + measResultServCell-r10 SEQUENCE { + rsrpResult-r10 RSRP-Range, + rsrqResult-r10 RSRQ-Range + }, + measResultNeighCells-r10 SEQUENCE { + measResultListEUTRA-r10 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r10 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r10 MeasResultList2GERAN-r10 OPTIONAL, + measResultListCDMA2000-r10 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + ..., + [[ measResultListEUTRA-v1090 MeasResultList2EUTRA-v9e0 OPTIONAL + ]], + [[ measResultListMBSFN-r12 MeasResultListMBSFN-r12 OPTIONAL, + measResultServCell-v1250 RSRQ-Range-v1250 OPTIONAL, + servCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL + ]], + [[ inDeviceCoexDetected-r13 ENUMERATED {true} OPTIONAL + ]], + [[ measResultServCell-v1360 RSRP-Range-v1360 OPTIONAL + ]] +} + +MeasResultListMBSFN-r12 ::= SEQUENCE (SIZE (1..maxMBSFN-Area)) OF MeasResultMBSFN-r12 + +MeasResultMBSFN-r12 ::= SEQUENCE { + mbsfn-Area-r12 SEQUENCE { + mbsfn-AreaId-r12 MBSFN-AreaId-r12, + carrierFreq-r12 ARFCN-ValueEUTRA-r9 + }, + rsrpResultMBSFN-r12 RSRP-Range, + rsrqResultMBSFN-r12 MBSFN-RSRQ-Range-r12, + signallingBLER-Result-r12 BLER-Result-r12 OPTIONAL, + dataBLER-MCH-ResultList-r12 DataBLER-MCH-ResultList-r12 OPTIONAL, + ... +} + +DataBLER-MCH-ResultList-r12 ::= SEQUENCE (SIZE (1.. maxPMCH-PerMBSFN)) OF DataBLER-MCH-Result-r12 + +DataBLER-MCH-Result-r12 ::= SEQUENCE { + mch-Index-r12 INTEGER (1..maxPMCH-PerMBSFN), + dataBLER-Result-r12 BLER-Result-r12 +} + +BLER-Result-r12 ::= SEQUENCE { + bler-r12 BLER-Range-r12, + blocksReceived-r12 SEQUENCE { + n-r12 BIT STRING (SIZE (3)), + m-r12 BIT STRING (SIZE (8)) + } +} + +BLER-Range-r12 ::= INTEGER(0..31) + +MeasResultList2GERAN-r10 ::= SEQUENCE (SIZE (1..maxCellListGERAN)) OF MeasResultListGERAN + +ConnEstFailReport-r11 ::= SEQUENCE { + failedCellId-r11 CellGlobalIdEUTRA, + locationInfo-r11 LocationInfo-r10 OPTIONAL, + measResultFailedCell-r11 SEQUENCE { + rsrpResult-r11 RSRP-Range, + rsrqResult-r11 RSRQ-Range OPTIONAL + }, + measResultNeighCells-r11 SEQUENCE { + measResultListEUTRA-r11 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r11 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r11 MeasResultListGERAN OPTIONAL, + measResultsCDMA2000-r11 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + numberOfPreamblesSent-r11 NumberOfPreamblesSent-r11, + contentionDetected-r11 BOOLEAN, + maxTxPowerReached-r11 BOOLEAN, + timeSinceFailure-r11 TimeSinceFailure-r11, + measResultListEUTRA-v1130 MeasResultList2EUTRA-v9e0 OPTIONAL, + ..., + [[ measResultFailedCell-v1250 RSRQ-Range-v1250 OPTIONAL, + failedCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL + ]], + [[ measResultFailedCell-v1360 RSRP-Range-v1360 OPTIONAL + ]] +} + +NumberOfPreamblesSent-r11::= INTEGER (1..200) + +TimeSinceFailure-r11 ::= INTEGER (0..172800) + +MobilityHistoryReport-r12 ::= VisitedCellInfoList-r12 + + +ULHandoverPreparationTransfer ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulHandoverPreparationTransfer-r8 ULHandoverPreparationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULHandoverPreparationTransfer-r8-IEs ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + meid BIT STRING (SIZE (56)) OPTIONAL, + dedicatedInfo DedicatedInfoCDMA2000, + nonCriticalExtension ULHandoverPreparationTransfer-v8a0-IEs OPTIONAL +} + +ULHandoverPreparationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +ULInformationTransfer ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulInformationTransfer-r8 ULInformationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType CHOICE { + dedicatedInfoNAS DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000 + }, + nonCriticalExtension ULInformationTransfer-v8a0-IEs OPTIONAL +} + +ULInformationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +ULInformationTransferMRDC-r15 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulInformationTransferMRDC-r15 ULInformationTransferMRDC-r15-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULInformationTransferMRDC-r15-IEs ::= SEQUENCE { + ul-DCCH-MessageNR-r15 OCTET STRING OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +WLANConnectionStatusReport-r13 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + wlanConnectionStatusReport-r13 WLANConnectionStatusReport-r13-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +WLANConnectionStatusReport-r13-IEs ::= SEQUENCE { + wlan-Status-r13 WLAN-Status-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension WLANConnectionStatusReport-v1430-IEs OPTIONAL +} + +WLANConnectionStatusReport-v1430-IEs ::= SEQUENCE { + wlan-Status-v1430 WLAN-Status-v1430, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType2 ::= SEQUENCE { + ac-BarringInfo SEQUENCE { + ac-BarringForEmergency BOOLEAN, + ac-BarringForMO-Signalling AC-BarringConfig OPTIONAL, -- Need OP + ac-BarringForMO-Data AC-BarringConfig OPTIONAL -- Need OP + } OPTIONAL, -- Need OP + radioResourceConfigCommon RadioResourceConfigCommonSIB, + ue-TimersAndConstants UE-TimersAndConstants, + freqInfo SEQUENCE { + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission + }, + mbsfn-SubframeConfigList MBSFN-SubframeConfigList OPTIONAL, -- Need OR + timeAlignmentTimerCommon TimeAlignmentTimer, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType2-v8h0-IEs) OPTIONAL, + [[ ssac-BarringForMMTEL-Voice-r9 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Video-r9 AC-BarringConfig OPTIONAL -- Need OP + ]], + [[ ac-BarringForCSFB-r10 AC-BarringConfig OPTIONAL -- Need OP + ]], + [[ ac-BarringSkipForMMTELVoice-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVideo-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForSMS-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringPerPLMN-List-r12 AC-BarringPerPLMN-List-r12 OPTIONAL -- Need OP + ]], + [[ voiceServiceCauseIndication-r12 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ acdc-BarringForCommon-r13 ACDC-BarringForCommon-r13 OPTIONAL, -- Need OP + acdc-BarringPerPLMN-List-r13 ACDC-BarringPerPLMN-List-r13 OPTIONAL -- Need OP + ]], + [[ + udt-RestrictingForCommon-r13 UDT-Restricting-r13 OPTIONAL, -- Need OR + udt-RestrictingPerPLMN-List-r13 UDT-RestrictingPerPLMN-List-r13 OPTIONAL, -- Need OR + cIoT-EPS-OptimisationInfo-r13 CIOT-EPS-OptimisationInfo-r13 OPTIONAL, -- Need OP + useFullResumeID-r13 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ unicastFreqHoppingInd-r13 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL, -- Need OP + videoServiceCauseIndication-r14 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ plmn-InfoList-r15 PLMN-InfoList-r15 OPTIONAL -- Need OP + ]] +} + +SystemInformationBlockType2-v8h0-IEs ::= SEQUENCE { + multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType2-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType2-v9e0-IEs ::= SEQUENCE { + ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond ul-FreqMax + nonCriticalExtension SystemInformationBlockType2-v9i0-IEs OPTIONAL +} + +SystemInformationBlockType2-v9i0-IEs ::= SEQUENCE { +-- Following field is only for late non-critical extensions for REL-9 + lateNonCriticalExtension OCTET STRING OPTIONAL, +-- Following field is only for late non-critical extensions from REL-10 + nonCriticalExtension SystemInformationBlockType2-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType2-v10l0-IEs ::= SEQUENCE { + freqInfo-v10l0 SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 + }, + multiBandInfoList-v10l0 SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission-v10l0, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AC-BarringConfig ::= SEQUENCE { + ac-BarringFactor ENUMERATED { + p00, p05, p10, p15, p20, p25, p30, p40, + p50, p60, p70, p75, p80, p85, p90, p95}, + ac-BarringTime ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512}, + ac-BarringForSpecialAC BIT STRING (SIZE(5)) +} + +MBSFN-SubframeConfigList ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig + +MBSFN-SubframeConfigList-v1430 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig-v1430 + +AC-BarringPerPLMN-List-r12 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF AC-BarringPerPLMN-r12 + +AC-BarringPerPLMN-r12 ::= SEQUENCE { + plmn-IdentityIndex-r12 INTEGER (1..maxPLMN-r11), + ac-BarringInfo-r12 SEQUENCE { + ac-BarringForEmergency-r12 BOOLEAN, + ac-BarringForMO-Signalling-r12 AC-BarringConfig OPTIONAL, -- Need OP + ac-BarringForMO-Data-r12 AC-BarringConfig OPTIONAL -- Need OP + } OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVoice-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVideo-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForSMS-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringForCSFB-r12 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Voice-r12 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Video-r12 AC-BarringConfig OPTIONAL -- Need OP +} + +ACDC-BarringForCommon-r13 ::= SEQUENCE { + acdc-HPLMNonly-r13 BOOLEAN, + barringPerACDC-CategoryList-r13 BarringPerACDC-CategoryList-r13 +} + +ACDC-BarringPerPLMN-List-r13 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF ACDC-BarringPerPLMN-r13 + +ACDC-BarringPerPLMN-r13 ::= SEQUENCE { + plmn-IdentityIndex-r13 INTEGER (1..maxPLMN-r11), + acdc-OnlyForHPLMN-r13 BOOLEAN, + barringPerACDC-CategoryList-r13 BarringPerACDC-CategoryList-r13 +} + +BarringPerACDC-CategoryList-r13 ::= SEQUENCE (SIZE (1..maxACDC-Cat-r13)) OF BarringPerACDC-Category-r13 + +BarringPerACDC-Category-r13 ::= SEQUENCE { + acdc-Category-r13 INTEGER (1..maxACDC-Cat-r13), + acdc-BarringConfig-r13 SEQUENCE { + ac-BarringFactor-r13 ENUMERATED { + p00, p05, p10, p15, p20, p25, p30, p40, + p50, p60, p70, p75, p80, p85, p90, p95}, + ac-BarringTime-r13 ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512} + } OPTIONAL -- Need OP +} + +UDT-Restricting-r13 ::= SEQUENCE { + udt-Restricting-r13 ENUMERATED {true} OPTIONAL, --Need OR + udt-RestrictingTime-r13 ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512} OPTIONAL --Need OR +} + +UDT-RestrictingPerPLMN-List-r13 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF UDT-RestrictingPerPLMN-r13 + +UDT-RestrictingPerPLMN-r13 ::= SEQUENCE { + plmn-IdentityIndex-r13 INTEGER (1..maxPLMN-r11), + udt-Restricting-r13 UDT-Restricting-r13 OPTIONAL --Need OR +} + +CIOT-EPS-OptimisationInfo-r13 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF CIOT-OptimisationPLMN-r13 + +CIOT-OptimisationPLMN-r13::= SEQUENCE { + up-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, -- Need OP + cp-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, -- Need OP + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL -- Need OP +} + +PLMN-InfoList-r15 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-Info-r15 + +PLMN-Info-r15 ::= SEQUENCE { + upperLayerIndication-r15 ENUMERATED {true} OPTIONAL -- Need OR +} + + +SystemInformationBlockType3 ::= SEQUENCE { + cellReselectionInfoCommon SEQUENCE { + q-Hyst ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + speedStateReselectionPars SEQUENCE { + mobilityStateParameters MobilityStateParameters, + q-HystSF SEQUENCE { + sf-Medium ENUMERATED { + dB-6, dB-4, dB-2, dB0}, + sf-High ENUMERATED { + dB-6, dB-4, dB-2, dB0} + } + } OPTIONAL -- Need OP + }, + cellReselectionServingFreqInfo SEQUENCE { + s-NonIntraSearch ReselectionThreshold OPTIONAL, -- Need OP + threshServingLow ReselectionThreshold, + cellReselectionPriority CellReselectionPriority + }, + intraFreqCellReselectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + p-Max P-Max OPTIONAL, -- Need OP + s-IntraSearch ReselectionThreshold OPTIONAL, -- Need OP + allowedMeasBandwidth AllowedMeasBandwidth OPTIONAL, -- Need OP + presenceAntennaPort1 PresenceAntennaPort1, + neighCellConfig NeighCellConfig, + t-ReselectionEUTRA T-Reselection, + t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL -- Need OP + }, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType3-v10j0-IEs) OPTIONAL, + [[ s-IntraSearch-v920 SEQUENCE { + s-IntraSearchP-r9 ReselectionThreshold, + s-IntraSearchQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL, -- Need OP + s-NonIntraSearch-v920 SEQUENCE { + s-NonIntraSearchP-r9 ReselectionThreshold, + s-NonIntraSearchQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL, -- Need OP + q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP + threshServingLowQ-r9 ReselectionThresholdQ-r9 OPTIONAL -- Need OP + ]], + [[ q-QualMinWB-r11 Q-QualMin-r9 OPTIONAL -- Cond WB-RSRQ + ]], + [[ q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL -- Cond RSRQ + ]], + [[ cellReselectionServingFreqInfo-v1310 CellReselectionServingFreqInfo-v1310 OPTIONAL, -- Need OP + redistributionServingInfo-r13 RedistributionServingInfo-r13 OPTIONAL, --Need OR + cellSelectionInfoCE-r13 CellSelectionInfoCE-r13 OPTIONAL, -- Need OP + t-ReselectionEUTRA-CE-r13 T-ReselectionEUTRA-CE-r13 OPTIONAL -- Need OP + ]], + [[ cellSelectionInfoCE1-r13 CellSelectionInfoCE1-r13 OPTIONAL -- Need OP + ]], + [[ cellSelectionInfoCE1-v1360 CellSelectionInfoCE1-v1360 OPTIONAL -- Cond QrxlevminCE1 + ]], + [[ cellReselectionInfoCommon-v1460 CellReselectionInfoCommon-v1460 OPTIONAL -- Need OR + ]] +} + +RedistributionServingInfo-r13 ::= SEQUENCE { + redistributionFactorServing-r13 INTEGER(0..10), + redistributionFactorCell-r13 ENUMERATED{true} OPTIONAL, --Need OP + t360-r13 ENUMERATED {min4, min8, min16, min32,infinity, + spare3,spare2,spare1}, + redistrOnPagingOnly-r13 ENUMERATED {true} OPTIONAL --Need OP +} + +CellReselectionServingFreqInfo-v1310 ::= SEQUENCE { + cellReselectionSubPriority-r13 CellReselectionSubPriority-r13 +} + +-- Late non critical extensions +SystemInformationBlockType3-v10j0-IEs ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType3-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType3-v10l0-IEs ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CellReselectionInfoCommon-v1460 ::= SEQUENCE { + s-SearchDeltaP-r14 ENUMERATED {dB6, dB9, dB12, dB15} +} + + +SystemInformationBlockType4 ::= SEQUENCE { + intraFreqNeighCellList IntraFreqNeighCellList OPTIONAL, -- Need OR + intraFreqBlackCellList IntraFreqBlackCellList OPTIONAL, -- Need OR + csg-PhysCellIdRange PhysCellIdRange OPTIONAL, -- Cond CSG + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + +IntraFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellIntra)) OF IntraFreqNeighCellInfo + +IntraFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange, + ... +} + +IntraFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange + + +SystemInformationBlockType5 ::= SEQUENCE { + interFreqCarrierFreqList InterFreqCarrierFreqList, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType5-v8h0-IEs) OPTIONAL, + [[ interFreqCarrierFreqList-v1250 InterFreqCarrierFreqList-v1250 OPTIONAL, -- Need OR + interFreqCarrierFreqListExt-r12 InterFreqCarrierFreqListExt-r12 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqListExt-v1280 InterFreqCarrierFreqListExt-v1280 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqList-v1310 InterFreqCarrierFreqList-v1310 OPTIONAL, -- Need OR + interFreqCarrierFreqListExt-v1310 InterFreqCarrierFreqListExt-v1310 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqList-v1350 InterFreqCarrierFreqList-v1350 OPTIONAL, -- Need OR + interFreqCarrierFreqListExt-v1350 InterFreqCarrierFreqListExt-v1350 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqListExt-v1360 InterFreqCarrierFreqListExt-v1360 OPTIONAL -- Need OR + ]], + [[ scptm-FreqOffset-r14 INTEGER (1..8) OPTIONAL -- Need OP + ]] +} + +SystemInformationBlockType5-v8h0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v8h0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v8h0 OPTIONAL, -- Need OP + nonCriticalExtension SystemInformationBlockType5-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType5-v9e0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v9e0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType5-v10j0-IEs OPTIONAL +} + +SystemInformationBlockType5-v10j0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v10j0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType5-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType5-v10l0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v10l0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +InterFreqCarrierFreqList ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo + +InterFreqCarrierFreqList-v1250 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1250 + +InterFreqCarrierFreqList-v1310 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1310 + +InterFreqCarrierFreqList-v1350 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1350 + +InterFreqCarrierFreqListExt-r12 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-r12 + +InterFreqCarrierFreqListExt-v1280 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v10j0 + +InterFreqCarrierFreqListExt-v1310 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1310 + +InterFreqCarrierFreqListExt-v1350 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1350 + +InterFreqCarrierFreqListExt-v1360 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v1360 + +InterFreqCarrierFreqInfo ::= SEQUENCE { + dl-CarrierFreq ARFCN-ValueEUTRA, + q-RxLevMin Q-RxLevMin, + p-Max P-Max OPTIONAL, -- Need OP + t-ReselectionEUTRA T-Reselection, + t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + allowedMeasBandwidth AllowedMeasBandwidth, + presenceAntennaPort1 PresenceAntennaPort1, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + neighCellConfig NeighCellConfig, + q-OffsetFreq Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList InterFreqNeighCellList OPTIONAL, -- Need OR + interFreqBlackCellList InterFreqBlackCellList OPTIONAL, -- Need OR + ..., + [[ q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP + threshX-Q-r9 SEQUENCE { + threshX-HighQ-r9 ReselectionThresholdQ-r9, + threshX-LowQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL -- Cond RSRQ + ]], + [[ q-QualMinWB-r11 Q-QualMin-r9 OPTIONAL -- Cond WB-RSRQ + ]] +} + +InterFreqCarrierFreqInfo-v8h0 ::= SEQUENCE { + multiBandInfoList MultiBandInfoList OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v9e0 ::= SEQUENCE { + dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond dl-FreqMax + multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v10j0 ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v10l0 ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v1250 ::= SEQUENCE { + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL -- Cond RSRQ2 +} + +InterFreqCarrierFreqInfo-r12 ::= SEQUENCE { + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9, + q-RxLevMin-r12 Q-RxLevMin, + p-Max-r12 P-Max OPTIONAL, -- Need OP + t-ReselectionEUTRA-r12 T-Reselection, + t-ReselectionEUTRA-SF-r12 SpeedStateScaleFactors OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + allowedMeasBandwidth-r12 AllowedMeasBandwidth, + presenceAntennaPort1-r12 PresenceAntennaPort1, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + neighCellConfig-r12 NeighCellConfig, + q-OffsetFreq-r12 Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList-r12 InterFreqNeighCellList OPTIONAL, -- Need OR + interFreqBlackCellList-r12 InterFreqBlackCellList OPTIONAL, -- Need OR + q-QualMin-r12 Q-QualMin-r9 OPTIONAL, -- Need OP + threshX-Q-r12 SEQUENCE { + threshX-HighQ-r12 ReselectionThresholdQ-r9, + threshX-LowQ-r12 ReselectionThresholdQ-r9 + } OPTIONAL, -- Cond RSRQ + q-QualMinWB-r12 Q-QualMin-r9 OPTIONAL, -- Cond WB-RSRQ + multiBandInfoList-r12 MultiBandInfoList-r11 OPTIONAL, -- Need OR + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL, -- Cond RSRQ2 +... +} + +InterFreqCarrierFreqInfo-v1310 ::= SEQUENCE { + cellReselectionSubPriority-r13 CellReselectionSubPriority-r13 OPTIONAL, -- Need OP + redistributionInterFreqInfo-r13 RedistributionInterFreqInfo-r13 OPTIONAL, --Need OP + cellSelectionInfoCE-r13 CellSelectionInfoCE-r13 OPTIONAL, -- Need OP + t-ReselectionEUTRA-CE-r13 T-ReselectionEUTRA-CE-r13 OPTIONAL -- Need OP +} + +InterFreqCarrierFreqInfo-v1350 ::= SEQUENCE { + cellSelectionInfoCE1-r13 CellSelectionInfoCE1-r13 OPTIONAL -- Need OP +} + +InterFreqCarrierFreqInfo-v1360 ::= SEQUENCE { + cellSelectionInfoCE1-v1360 CellSelectionInfoCE1-v1360 OPTIONAL -- Cond QrxlevminCE1 +} + +InterFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo + +InterFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange +} + +InterFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange + +RedistributionInterFreqInfo-r13 ::= SEQUENCE { + redistributionFactorFreq-r13 RedistributionFactor-r13 OPTIONAL, --Need OP + redistributionNeighCellList-r13 RedistributionNeighCellList-r13 OPTIONAL --Need OP +} + +RedistributionNeighCellList-r13 ::= SEQUENCE (SIZE (1..maxCellInter)) OF RedistributionNeighCell-r13 + +RedistributionNeighCell-r13 ::= SEQUENCE { + physCellId-r13 PhysCellId, + redistributionFactorCell-r13 RedistributionFactor-r13 +} + +RedistributionFactor-r13 ::= INTEGER(1..10) + + +SystemInformationBlockType6 ::= SEQUENCE { + carrierFreqListUTRA-FDD CarrierFreqListUTRA-FDD OPTIONAL, -- Need OR + carrierFreqListUTRA-TDD CarrierFreqListUTRA-TDD OPTIONAL, -- Need OR + t-ReselectionUTRA T-Reselection, + t-ReselectionUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType6-v8h0-IEs) OPTIONAL, + [[ carrierFreqListUTRA-FDD-v1250 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF + CarrierFreqInfoUTRA-v1250 OPTIONAL, -- Cond UTRA-FDD + carrierFreqListUTRA-TDD-v1250 SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF + CarrierFreqInfoUTRA-v1250 OPTIONAL, -- Cond UTRA-TDD + carrierFreqListUTRA-FDD-Ext-r12 CarrierFreqListUTRA-FDD-Ext-r12 OPTIONAL, -- Cond UTRA-FDD + carrierFreqListUTRA-TDD-Ext-r12 CarrierFreqListUTRA-TDD-Ext-r12 OPTIONAL -- Cond UTRA-TDD + ]] +} + +SystemInformationBlockType6-v8h0-IEs ::= SEQUENCE { + carrierFreqListUTRA-FDD-v8h0 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqInfoUTRA-FDD-v8h0 OPTIONAL, -- Cond UTRA-FDD + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CarrierFreqInfoUTRA-v1250 ::= SEQUENCE { + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL -- Need OP +} + +CarrierFreqListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqUTRA-FDD + +CarrierFreqUTRA-FDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + q-RxLevMin INTEGER (-60..-13), + p-MaxUTRA INTEGER (-50..33), + q-QualMin INTEGER (-24..0), + ..., + [[ threshX-Q-r9 SEQUENCE { + threshX-HighQ-r9 ReselectionThresholdQ-r9, + threshX-LowQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL -- Cond RSRQ + ]] +} + +CarrierFreqInfoUTRA-FDD-v8h0 ::= SEQUENCE { + multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL -- Need OR +} + +CarrierFreqListUTRA-FDD-Ext-r12 ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF + CarrierFreqUTRA-FDD-Ext-r12 + +CarrierFreqUTRA-FDD-Ext-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueUTRA, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + q-RxLevMin-r12 INTEGER (-60..-13), + p-MaxUTRA-r12 INTEGER (-50..33), + q-QualMin-r12 INTEGER (-24..0), + threshX-Q-r12 SEQUENCE { + threshX-HighQ-r12 ReselectionThresholdQ-r9, + threshX-LowQ-r12 ReselectionThresholdQ-r9 + } OPTIONAL, -- Cond RSRQ + multiBandInfoList-r12 SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL, -- Need OR + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ... +} + +CarrierFreqListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF CarrierFreqUTRA-TDD + +CarrierFreqUTRA-TDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + q-RxLevMin INTEGER (-60..-13), + p-MaxUTRA INTEGER (-50..33), + ... +} + +CarrierFreqListUTRA-TDD-Ext-r12 ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF + CarrierFreqUTRA-TDD-r12 + +CarrierFreqUTRA-TDD-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueUTRA, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + q-RxLevMin-r12 INTEGER (-60..-13), + p-MaxUTRA-r12 INTEGER (-50..33), + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ... +} + +FreqBandIndicator-UTRA-FDD ::= INTEGER (1..86) + + +SystemInformationBlockType7 ::= SEQUENCE { + t-ReselectionGERAN T-Reselection, + t-ReselectionGERAN-SF SpeedStateScaleFactors OPTIONAL, -- Need OR + carrierFreqsInfoList CarrierFreqsInfoListGERAN OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + +CarrierFreqsInfoListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF CarrierFreqsInfoGERAN + +CarrierFreqsInfoGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + commonInfo SEQUENCE { + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + ncc-Permitted BIT STRING (SIZE (8)), + q-RxLevMin INTEGER (0..45), + p-MaxGERAN INTEGER (0..39) OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold + }, + ... +} + + +SystemInformationBlockType8 ::= SEQUENCE { + systemTimeInfo SystemTimeInfoCDMA2000 OPTIONAL, -- Need OR + searchWindowSize INTEGER (0..15) OPTIONAL, -- Need OR + parametersHRPD SEQUENCE { + preRegistrationInfoHRPD PreRegistrationInfoHRPD, + cellReselectionParametersHRPD CellReselectionParametersCDMA2000 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + parameters1XRTT SEQUENCE { + csfb-RegistrationParam1XRTT CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP + longCodeState1XRTT BIT STRING (SIZE (42)) OPTIONAL, -- Need OR + cellReselectionParameters1XRTT CellReselectionParametersCDMA2000 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL, + [[ csfb-SupportForDualRxUEs-r9 BOOLEAN OPTIONAL, -- Need OR + cellReselectionParametersHRPD-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-HRPD + cellReselectionParameters1XRTT-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-1XRTT + csfb-RegistrationParam1XRTT-v920 CSFB-RegistrationParam1XRTT-v920 OPTIONAL, -- Cond REG-1XRTT + ac-BarringConfig1XRTT-r9 AC-BarringConfig1XRTT-r9 OPTIONAL -- Cond REG-1XRTT + ]], + [[ csfb-DualRxTxSupport-r10 ENUMERATED {true} OPTIONAL -- Cond REG-1XRTT + ]], + [[ sib8-PerPLMN-List-r11 SIB8-PerPLMN-List-r11 OPTIONAL -- Need OR + ]] +} + +CellReselectionParametersCDMA2000 ::= SEQUENCE { + bandClassList BandClassListCDMA2000, + neighCellList NeighCellListCDMA2000, + t-ReselectionCDMA2000 T-Reselection, + t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP +} + +CellReselectionParametersCDMA2000-r11 ::= SEQUENCE { + bandClassList BandClassListCDMA2000, + neighCellList-r11 SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-r11, + t-ReselectionCDMA2000 T-Reselection, + t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP +} + +CellReselectionParametersCDMA2000-v920 ::= SEQUENCE { + neighCellList-v920 NeighCellListCDMA2000-v920 +} + +NeighCellListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000 + +NeighCellCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + neighCellsPerFreqList NeighCellsPerBandclassListCDMA2000 +} + +NeighCellCDMA2000-r11 ::= SEQUENCE { + bandClass BandclassCDMA2000, + neighFreqInfoList-r11 SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-r11 +} + +NeighCellsPerBandclassListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000 + +NeighCellsPerBandclassCDMA2000 ::= SEQUENCE { + arfcn ARFCN-ValueCDMA2000, + physCellIdList PhysCellIdListCDMA2000 +} + +NeighCellsPerBandclassCDMA2000-r11 ::= SEQUENCE { + arfcn ARFCN-ValueCDMA2000, + physCellIdList-r11 SEQUENCE (SIZE (1..40)) OF PhysCellIdCDMA2000 +} + +NeighCellListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-v920 + +NeighCellCDMA2000-v920 ::= SEQUENCE { + neighCellsPerFreqList-v920 NeighCellsPerBandclassListCDMA2000-v920 +} + +NeighCellsPerBandclassListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-v920 + +NeighCellsPerBandclassCDMA2000-v920 ::= SEQUENCE { + physCellIdList-v920 PhysCellIdListCDMA2000-v920 +} + +PhysCellIdListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdCDMA2000 + +PhysCellIdListCDMA2000-v920 ::= SEQUENCE (SIZE (0..24)) OF PhysCellIdCDMA2000 + +BandClassListCDMA2000 ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassInfoCDMA2000 + +BandClassInfoCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High INTEGER (0..63), + threshX-Low INTEGER (0..63), + ... +} + +AC-BarringConfig1XRTT-r9 ::= SEQUENCE { + ac-Barring0to9-r9 INTEGER (0..63), + ac-Barring10-r9 INTEGER (0..7), + ac-Barring11-r9 INTEGER (0..7), + ac-Barring12-r9 INTEGER (0..7), + ac-Barring13-r9 INTEGER (0..7), + ac-Barring14-r9 INTEGER (0..7), + ac-Barring15-r9 INTEGER (0..7), + ac-BarringMsg-r9 INTEGER (0..7), + ac-BarringReg-r9 INTEGER (0..7), + ac-BarringEmg-r9 INTEGER (0..7) +} + +SIB8-PerPLMN-List-r11 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF SIB8-PerPLMN-r11 + +SIB8-PerPLMN-r11 ::= SEQUENCE { + plmn-Identity-r11 INTEGER (1..maxPLMN-r11), + parametersCDMA2000-r11 CHOICE { + explicitValue ParametersCDMA2000-r11, + defaultValue NULL + } +} + +ParametersCDMA2000-r11 ::= SEQUENCE { + systemTimeInfo-r11 CHOICE { + explicitValue SystemTimeInfoCDMA2000, + defaultValue NULL + } OPTIONAL, -- Need OR + searchWindowSize-r11 INTEGER (0..15), + parametersHRPD-r11 SEQUENCE { + preRegistrationInfoHRPD-r11 PreRegistrationInfoHRPD, + cellReselectionParametersHRPD-r11 CellReselectionParametersCDMA2000-r11 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + parameters1XRTT-r11 SEQUENCE { + csfb-RegistrationParam1XRTT-r11 CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP + csfb-RegistrationParam1XRTT-Ext-r11 CSFB-RegistrationParam1XRTT-v920 OPTIONAL, -- Cond REG-1XRTT-PerPLMN + longCodeState1XRTT-r11 BIT STRING (SIZE (42)) OPTIONAL, -- Cond PerPLMN-LC + cellReselectionParameters1XRTT-r11 CellReselectionParametersCDMA2000-r11 OPTIONAL, -- Need OR + ac-BarringConfig1XRTT-r11 AC-BarringConfig1XRTT-r9 OPTIONAL, -- Cond REG-1XRTT-PerPLMN + csfb-SupportForDualRxUEs-r11 BOOLEAN OPTIONAL, -- Need OR + csfb-DualRxTxSupport-r11 ENUMERATED {true} OPTIONAL -- Cond REG-1XRTT-PerPLMN + } OPTIONAL, -- Need OR + ... +} + + +SystemInformationBlockType9 ::= SEQUENCE { + hnb-Name OCTET STRING (SIZE(1..48)) OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType10 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningType OCTET STRING (SIZE (2)), + dummy OCTET STRING (SIZE (50)) OPTIONAL, -- Need OP + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType11 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningMessageSegmentType ENUMERATED {notLastSegment, lastSegment}, + warningMessageSegmentNumber INTEGER (0..63), + warningMessageSegment OCTET STRING, + dataCodingScheme OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType12-r9 ::= SEQUENCE { + messageIdentifier-r9 BIT STRING (SIZE (16)), + serialNumber-r9 BIT STRING (SIZE (16)), + warningMessageSegmentType-r9 ENUMERATED {notLastSegment, lastSegment}, + warningMessageSegmentNumber-r9 INTEGER (0..63), + warningMessageSegment-r9 OCTET STRING, + dataCodingScheme-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +SystemInformationBlockType13-r9 ::= SEQUENCE { + mbsfn-AreaInfoList-r9 MBSFN-AreaInfoList-r9, + notificationConfig-r9 MBMS-NotificationConfig-r9, + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ + notificationConfig-v1430 MBMS-NotificationConfig-v1430 OPTIONAL + ]] +} + + +SystemInformationBlockType14-r11 ::= SEQUENCE { + eab-Param-r11 CHOICE { + eab-Common-r11 EAB-Config-r11, + eab-PerPLMN-List-r11 SEQUENCE (SIZE (1..maxPLMN-r11)) OF EAB-ConfigPLMN-r11 + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +EAB-ConfigPLMN-r11 ::= SEQUENCE { + eab-Config-r11 EAB-Config-r11 OPTIONAL -- Need OR +} + +EAB-Config-r11 ::= SEQUENCE { + eab-Category-r11 ENUMERATED {a, b, c}, + eab-BarringBitmap-r11 BIT STRING (SIZE (10)) +} + + +SystemInformationBlockType15-r11 ::= SEQUENCE { + mbms-SAI-IntraFreq-r11 MBMS-SAI-List-r11 OPTIONAL, -- Need OR + mbms-SAI-InterFreqList-r11 MBMS-SAI-InterFreqList-r11 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ mbms-SAI-InterFreqList-v1140 MBMS-SAI-InterFreqList-v1140 OPTIONAL -- Cond InterFreq + ]], + [[ mbms-IntraFreqCarrierType-r14 MBMS-CarrierType-r14 OPTIONAL, -- Need OR + mbms-InterFreqCarrierTypeList-r14 + MBMS-InterFreqCarrierTypeList-r14 OPTIONAL -- Need OR + ]] +} + +MBMS-SAI-List-r11 ::= SEQUENCE (SIZE (1..maxSAI-MBMS-r11)) OF MBMS-SAI-r11 + +MBMS-SAI-r11 ::= INTEGER (0..65535) + +MBMS-SAI-InterFreqList-r11 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-r11 + +MBMS-SAI-InterFreqList-v1140 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-v1140 + +MBMS-SAI-InterFreq-r11 ::= SEQUENCE { + dl-CarrierFreq-r11 ARFCN-ValueEUTRA-r9, + mbms-SAI-List-r11 MBMS-SAI-List-r11 +} + +MBMS-SAI-InterFreq-v1140 ::= SEQUENCE { + multiBandInfoList-r11 MultiBandInfoList-r11 OPTIONAL -- Need OR +} + +MBMS-InterFreqCarrierTypeList-r14 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-CarrierType-r14 + +MBMS-CarrierType-r14 ::= SEQUENCE { + carrierType-r14 ENUMERATED {mbms, fembmsMixed, fembmsDedicated}, + frameOffset-r14 INTEGER (0..3) OPTIONAL -- Need OR +} + + +SystemInformationBlockType16-r11 ::= SEQUENCE { + timeInfo-r11 SEQUENCE { + timeInfoUTC-r11 INTEGER (0..549755813887), + dayLightSavingTime-r11 BIT STRING (SIZE (2)) OPTIONAL, -- Need OR + leapSeconds-r11 INTEGER (-127..128) OPTIONAL, -- Need OR + localTimeOffset-r11 INTEGER (-63..64) OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +SystemInformationBlockType17-r12 ::= SEQUENCE { + wlan-OffloadInfoPerPLMN-List-r12 SEQUENCE (SIZE (1..maxPLMN-r11)) OF + WLAN-OffloadInfoPerPLMN-r12 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +WLAN-OffloadInfoPerPLMN-r12 ::= SEQUENCE { + wlan-OffloadConfigCommon-r12 WLAN-OffloadConfig-r12 OPTIONAL, -- Need OR + wlan-Id-List-r12 WLAN-Id-List-r12 OPTIONAL, -- Need OR + ... +} + +WLAN-Id-List-r12 ::= SEQUENCE (SIZE (1..maxWLAN-Id-r12)) OF WLAN-Identifiers-r12 + +WLAN-Identifiers-r12 ::= SEQUENCE { + ssid-r12 OCTET STRING (SIZE (1..32)) OPTIONAL, -- Need OR + bssid-r12 OCTET STRING (SIZE (6)) OPTIONAL, -- Need OR + hessid-r12 OCTET STRING (SIZE (6)) OPTIONAL, -- Need OR + ... +} + + +SystemInformationBlockType18-r12 ::= SEQUENCE { + commConfig-r12 SEQUENCE { + commRxPool-r12 SL-CommRxPoolList-r12, + commTxPoolNormalCommon-r12 SL-CommTxPoolList-r12 OPTIONAL, -- Need OR + commTxPoolExceptional-r12 SL-CommTxPoolList-r12 OPTIONAL, -- Need OR + commSyncConfig-r12 SL-SyncConfigList-r12 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ commTxPoolNormalCommonExt-r13 SL-CommTxPoolListExt-r13 OPTIONAL, -- Need OR + commTxResourceUC-ReqAllowed-r13 ENUMERATED {true} OPTIONAL, -- Need OR + commTxAllowRelayCommon-r13 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + + +SystemInformationBlockType19-r12 ::= SEQUENCE { + discConfig-r12 SEQUENCE { + discRxPool-r12 SL-DiscRxPoolList-r12, + discTxPoolCommon-r12 SL-DiscTxPoolList-r12 OPTIONAL, -- Need OR + discTxPowerInfo-r12 SL-DiscTxPowerInfoList-r12 OPTIONAL, -- Cond Tx + discSyncConfig-r12 SL-SyncConfigList-r12 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + discInterFreqList-r12 SL-CarrierFreqInfoList-r12 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ discConfig-v1310 SEQUENCE { + discInterFreqList-v1310 SL-CarrierFreqInfoList-v1310 OPTIONAL, -- Need OR + gapRequestsAllowedCommon ENUMERATED {true} OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + discConfigRelay-r13 SEQUENCE { + relayUE-Config-r13 SL-DiscConfigRelayUE-r13, + remoteUE-Config-r13 SL-DiscConfigRemoteUE-r13 + } OPTIONAL, -- Need OR + discConfigPS-13 SEQUENCE { + discRxPoolPS-r13 SL-DiscRxPoolList-r12, + discTxPoolPS-Common-r13 SL-DiscTxPoolList-r12 OPTIONAL -- Need OR + } OPTIONAL -- Need OR + ]] +} + +SL-CarrierFreqInfoList-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-CarrierFreqInfo-r12 + +SL-CarrierFreqInfoList-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-CarrierFreqInfo-v1310 + +SL-CarrierFreqInfo-r12::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + plmn-IdentityList-r12 PLMN-IdentityList4-r12 OPTIONAL -- Need OP +} + +SL-DiscConfigRelayUE-r13 ::= SEQUENCE { + threshHigh-r13 RSRP-RangeSL4-r13 OPTIONAL, -- Need OR + threshLow-r13 RSRP-RangeSL4-r13 OPTIONAL, -- Need OR + hystMax-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf} OPTIONAL, -- Cond ThreshHigh + hystMin-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12} OPTIONAL -- Cond ThreshLow +} + +SL-DiscConfigRemoteUE-r13 ::= SEQUENCE { + threshHigh-r13 RSRP-RangeSL4-r13 OPTIONAL, -- Need OR + hystMax-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12} OPTIONAL, -- Cond ThreshHigh + reselectionInfoIC-r13 ReselectionInfoRelay-r13 +} + +ReselectionInfoRelay-r13 ::= SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + -- Note that the mapping of invidual values may be different for PC5, but the granularity/ + -- number of values is same as for Uu + filterCoefficient-r13 FilterCoefficient, + minHyst-r13 ENUMERATED {dB0, dB3, + dB6, dB9, dB12, dBinf} OPTIONAL -- Need OR +} + +SL-CarrierFreqInfo-v1310::= SEQUENCE { + discResourcesNonPS-r13 SL-ResourcesInterFreq-r13 OPTIONAL, -- Need OR + discResourcesPS-r13 SL-ResourcesInterFreq-r13 OPTIONAL, -- Need OR + discConfigOther-r13 SL-DiscConfigOtherInterFreq-r13 OPTIONAL, -- Need OR + ... +} + +PLMN-IdentityList4-r12 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo2-r12 + +PLMN-IdentityInfo2-r12 ::= CHOICE { + plmn-Index-r12 INTEGER (1..maxPLMN-r11), + plmnIdentity-r12 PLMN-Identity +} + +SL-DiscTxResourcesInterFreq-r13 ::= CHOICE { + acquireSI-FromCarrier-r13 NULL, + discTxPoolCommon-r13 SL-DiscTxPoolList-r12, + requestDedicated-r13 NULL, + noTxOnCarrier-r13 NULL +} + +SL-DiscConfigOtherInterFreq-r13::= SEQUENCE { + txPowerInfo-r13 SL-DiscTxPowerInfoList-r12 OPTIONAL, -- Cond Tx + refCarrierCommon-r13 ENUMERATED {pCell} OPTIONAL, -- Need OR + discSyncConfig-r13 SL-SyncConfigListNFreq-r13 OPTIONAL, -- Need OR + discCellSelectionInfo-r13 CellSelectionInfoNFreq-r13 OPTIONAL -- Need OR +} + +SL-ResourcesInterFreq-r13 ::= SEQUENCE { + discRxResourcesInterFreq-r13 SL-DiscRxPoolList-r12 OPTIONAL, -- Need OR + discTxResourcesInterFreq-r13 SL-DiscTxResourcesInterFreq-r13 OPTIONAL -- Need OR +} + + +SystemInformationBlockType20-r13 ::= SEQUENCE { + sc-mcch-RepetitionPeriod-r13 ENUMERATED {rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256}, + sc-mcch-Offset-r13 INTEGER (0..10), + sc-mcch-FirstSubframe-r13 INTEGER (0..9), + sc-mcch-duration-r13 INTEGER (2..9) OPTIONAL, + sc-mcch-ModificationPeriod-r13 ENUMERATED {rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256, + rf512, rf1024, r2048, rf4096, rf8192, rf16384, rf32768, rf65536}, + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ br-BCCH-Config-r14 SEQUENCE { + sc-mcch-RepetitionPeriod-v1430 ENUMERATED {rf1}, + sc-mcch-ModificationPeriod-v1430 ENUMERATED {rf1}, + mpdcch-Narrowband-SC-MCCH-r14 INTEGER (1..maxAvailNarrowBands-r13), + mpdcch-NumRepetition-SC-MCCH-r14 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + mpdcch-StartSF-SC-MCCH-r14 CHOICE { + fdd-r14 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, + v5, v8, v10}, + tdd-r14 ENUMERATED {v1, v2, v4, v5, v8, v10, v20} + }, + mpdcch-PDSCH-HoppingConfig-SC-MCCH-r14 ENUMERATED {off, ce-ModeA, ce-ModeB}, + sc-mcch-CarrierFreq-r14 ARFCN-ValueEUTRA-r9, + sc-mcch-Offset-BR-r14 INTEGER (0..10), + sc-mcch-RepetitionPeriod-BR-r14 ENUMERATED {rf32, rf128, rf512, rf1024, + rf2048, rf4096, rf8192, rf16384}, + sc-mcch-ModificationPeriod-BR-r14 ENUMERATED { rf32, rf128, rf256, rf512, rf1024, + rf2048, rf4096, rf8192, rf16384, rf32768, + rf65536, rf131072, rf262144, rf524288, + rf1048576} + } OPTIONAL, -- Need OR + sc-mcch-SchedulingInfo-r14 SC-MCCH-SchedulingInfo-r14 OPTIONAL, -- Need OP + pdsch-maxNumRepetitionCEmodeA-SC-MTCH-r14 + ENUMERATED { r16, r32 } OPTIONAL, -- Need OR + pdsch-maxNumRepetitionCEmodeB-SC-MTCH-r14 + ENUMERATED { + r192, r256, r384, r512, r768, r1024, + r1536, r2048} OPTIONAL -- Need OR + ]] +} + +SC-MCCH-SchedulingInfo-r14::= SEQUENCE { + onDurationTimerSCPTM-r14 ENUMERATED {psf10, psf20, psf100, psf300, + psf500, psf1000, psf1200, psf1600}, + drx-InactivityTimerSCPTM-r14 ENUMERATED {psf0, psf1, psf2, psf4, psf8, psf16, + psf32, psf64, psf128, psf256, ps512, + psf1024, psf2048, psf4096, psf8192, psf16384}, + schedulingPeriodStartOffsetSCPTM-r14 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2047), + sf4096 INTEGER(0..4095), + sf8192 INTEGER(0..8191) + }, + ... +} + + +SystemInformationBlockType21-r14 ::= SEQUENCE { + sl-V2X-ConfigCommon-r14 SL-V2X-ConfigCommon-r14 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +SL-V2X-ConfigCommon-r14 ::= SEQUENCE { + v2x-CommRxPool-r14 SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolNormalCommon-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + p2x-CommTxPoolNormalCommon-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolExceptional-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-SyncConfig-r14 SL-SyncConfigListV2X-r14 OPTIONAL, -- Need OR + v2x-InterFreqInfoList-r14 SL-InterFreqInfoListV2X-r14 OPTIONAL, -- Need OR + v2x-ResourceSelectionConfig-r14 SL-CommTxPoolSensingConfig-r14 OPTIONAL, -- Need OR + zoneConfig-r14 SL-ZoneConfig-r14 OPTIONAL, -- Need OR + typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR + thresSL-TxPrioritization-r14 SL-Priority-r13 OPTIONAL, -- Need OR + anchorCarrierFreqList-r14 SL-AnchorCarrierFreqList-V2X-r14 OPTIONAL, -- Need OR + offsetDFN-r14 INTEGER (0..1000) OPTIONAL, -- Need OR + cbr-CommonTxConfigList-r14 SL-CBR-CommonTxConfigList-r14 OPTIONAL -- Need OR +} + + + +AntennaInfoCommon ::= SEQUENCE { + antennaPortsCount ENUMERATED {an1, an2, an4, spare1} +} + +AntennaInfoDedicated ::= SEQUENCE { + transmissionMode ENUMERATED { + tm1, tm2, tm3, tm4, tm5, tm6, + tm7, tm8-v920}, + codebookSubsetRestriction CHOICE { + n2TxAntenna-tm3 BIT STRING (SIZE (2)), + n4TxAntenna-tm3 BIT STRING (SIZE (4)), + n2TxAntenna-tm4 BIT STRING (SIZE (6)), + n4TxAntenna-tm4 BIT STRING (SIZE (64)), + n2TxAntenna-tm5 BIT STRING (SIZE (4)), + n4TxAntenna-tm5 BIT STRING (SIZE (16)), + n2TxAntenna-tm6 BIT STRING (SIZE (4)), + n4TxAntenna-tm6 BIT STRING (SIZE (16)) + } OPTIONAL, -- Cond TM + ue-TransmitAntennaSelection CHOICE{ + release NULL, + setup ENUMERATED {closedLoop, openLoop} + } +} + +AntennaInfoDedicated-v920 ::= SEQUENCE { + codebookSubsetRestriction-v920 CHOICE { + n2TxAntenna-tm8-r9 BIT STRING (SIZE (6)), + n4TxAntenna-tm8-r9 BIT STRING (SIZE (32)) + } OPTIONAL -- Cond TM8 +} + +AntennaInfoDedicated-r10 ::= SEQUENCE { + transmissionMode-r10 ENUMERATED { + tm1, tm2, tm3, tm4, tm5, tm6, tm7, tm8-v920, + tm9-v1020, tm10-v1130, spare6, spare5, spare4, + spare3, spare2, spare1}, + codebookSubsetRestriction-r10 BIT STRING OPTIONAL, -- Cond TMX + ue-TransmitAntennaSelection CHOICE{ + release NULL, + setup ENUMERATED {closedLoop, openLoop} + } +} + +AntennaInfoDedicated-v10i0::= SEQUENCE { + maxLayersMIMO-r10 ENUMERATED {twoLayers, fourLayers, eightLayers} OPTIONAL -- Need OR +} + +AntennaInfoDedicated-v1250 ::= SEQUENCE { + alternativeCodebookEnabledFor4TX-r12 BOOLEAN +} + +AntennaInfoDedicated-v1430 ::= SEQUENCE { + ce-UE-TxAntennaSelection-config-r14 ENUMERATED {on} OPTIONAL -- Need OR +} + + +AntennaInfoUL-r10 ::= SEQUENCE { + transmissionModeUL-r10 ENUMERATED {tm1, tm2, spare6, spare5, + spare4, spare3, spare2, spare1} OPTIONAL, -- Need OR + fourAntennaPortActivated-r10 ENUMERATED {setup} OPTIONAL -- Need OR +} + + +CQI-ReportAperiodic-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-ReportModeAperiodic-r10 CQI-ReportModeAperiodic, + aperiodicCSI-Trigger-r10 SEQUENCE { + trigger1-r10 BIT STRING (SIZE (8)), + trigger2-r10 BIT STRING (SIZE (8)) + } OPTIONAL -- Need OR + } +} + +CQI-ReportAperiodic-v1250 ::= CHOICE { + release NULL, + setup SEQUENCE { + aperiodicCSI-Trigger-v1250 SEQUENCE { + trigger-SubframeSetIndicator-r12 ENUMERATED {s1, s2}, + trigger1-SubframeSetIndicator-r12 BIT STRING (SIZE (8)), + trigger2-SubframeSetIndicator-r12 BIT STRING (SIZE (8)) + } + } +} + +CQI-ReportAperiodic-v1310 ::= CHOICE { + release NULL, + setup SEQUENCE { + aperiodicCSI-Trigger-v1310 SEQUENCE { + trigger1-r13 BIT STRING (SIZE (32)), + trigger2-r13 BIT STRING (SIZE (32)), + trigger3-r13 BIT STRING (SIZE (32)), + trigger4-r13 BIT STRING (SIZE (32)), + trigger5-r13 BIT STRING (SIZE (32)), + trigger6-r13 BIT STRING (SIZE (32)) + } OPTIONAL, -- Need ON + aperiodicCSI-Trigger2-r13 CHOICE { + release NULL, + setup SEQUENCE { + trigger1-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger2-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger3-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger4-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger5-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger6-SubframeSetIndicator-r13 BIT STRING (SIZE (32)) + } + } OPTIONAL -- Need ON + } +} + +CQI-ReportAperiodicProc-r11 ::= SEQUENCE { + cqi-ReportModeAperiodic-r11 CQI-ReportModeAperiodic, + trigger01-r11 BOOLEAN, + trigger10-r11 BOOLEAN, + trigger11-r11 BOOLEAN +} + +CQI-ReportAperiodicProc-v1310 ::= SEQUENCE { + trigger001-r13 BOOLEAN, + trigger010-r13 BOOLEAN, + trigger011-r13 BOOLEAN, + trigger100-r13 BOOLEAN, + trigger101-r13 BOOLEAN, + trigger110-r13 BOOLEAN, + trigger111-r13 BOOLEAN +} + +CQI-ReportAperiodicHybrid-r14 ::= SEQUENCE { + triggers-r14 CHOICE { + oneBit-r14 SEQUENCE { + trigger1-Indicator-r14 BIT STRING (SIZE (8)) + }, + twoBit-r14 SEQUENCE { + trigger01-Indicator-r14 BIT STRING (SIZE (8)), + trigger10-Indicator-r14 BIT STRING (SIZE (8)), + trigger11-Indicator-r14 BIT STRING (SIZE (8)) + }, + threeBit-r14 SEQUENCE { + trigger001-Indicator-r14 BIT STRING (SIZE (32)), + trigger010-Indicator-r14 BIT STRING (SIZE (32)), + trigger011-Indicator-r14 BIT STRING (SIZE (32)), + trigger100-Indicator-r14 BIT STRING (SIZE (32)) , + trigger101-Indicator-r14 BIT STRING (SIZE (32)), + trigger110-Indicator-r14 BIT STRING (SIZE (32)), + trigger111-Indicator-r14 BIT STRING (SIZE (32)) + } + } OPTIONAL -- Need OR +} + +CQI-ReportModeAperiodic ::= ENUMERATED { + rm12, rm20, rm22, rm30, rm31, + rm32-v1250, rm10-v1310, rm11-v1310 +} + + +CQI-ReportBoth-r11 ::= SEQUENCE { + csi-IM-ConfigToReleaseList-r11 CSI-IM-ConfigToReleaseList-r11 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModList-r11 CSI-IM-ConfigToAddModList-r11 OPTIONAL, -- Need ON + csi-ProcessToReleaseList-r11 CSI-ProcessToReleaseList-r11 OPTIONAL, -- Need ON + csi-ProcessToAddModList-r11 CSI-ProcessToAddModList-r11 OPTIONAL -- Need ON +} + +CQI-ReportBoth-v1250 ::= SEQUENCE { + csi-IM-ConfigToReleaseListExt-r12 CSI-IM-ConfigId-v1250 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModListExt-r12 CSI-IM-ConfigExt-r12 OPTIONAL -- Need ON +} + +CQI-ReportBoth-v1310 ::= SEQUENCE { + csi-IM-ConfigToReleaseListExt-r13 CSI-IM-ConfigToReleaseListExt-r13 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModListExt-r13 CSI-IM-ConfigToAddModListExt-r13 OPTIONAL -- Need ON +} + +CSI-IM-ConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-Config-r11 + +CSI-IM-ConfigToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-IM-v1310)) OF CSI-IM-ConfigExt-r12 + +CSI-IM-ConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-ConfigId-r11 + +CSI-IM-ConfigToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-IM-v1310)) OF CSI-IM-ConfigId-v1310 + +CSI-ProcessToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF CSI-Process-r11 + +CSI-ProcessToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF CSI-ProcessId-r11 + +CQI-ReportBothProc-r11 ::= SEQUENCE { + ri-Ref-CSI-ProcessId-r11 CSI-ProcessId-r11 OPTIONAL, -- Need OR + pmi-RI-Report-r11 ENUMERATED {setup} OPTIONAL -- Need OR +} + + +CQI-ReportConfig ::= SEQUENCE { + cqi-ReportModeAperiodic CQI-ReportModeAperiodic OPTIONAL, -- Need OR + nomPDSCH-RS-EPRE-Offset INTEGER (-1..6), + cqi-ReportPeriodic CQI-ReportPeriodic OPTIONAL -- Need ON +} + +CQI-ReportConfig-v920 ::= SEQUENCE { + cqi-Mask-r9 ENUMERATED {setup} OPTIONAL, -- Cond cqi-Setup + pmi-RI-Report-r9 ENUMERATED {setup} OPTIONAL -- Cond PMIRI +} + +CQI-ReportConfig-r10 ::= SEQUENCE { + cqi-ReportAperiodic-r10 CQI-ReportAperiodic-r10 OPTIONAL, -- Need ON + nomPDSCH-RS-EPRE-Offset INTEGER (-1..6), + cqi-ReportPeriodic-r10 CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON + pmi-RI-Report-r9 ENUMERATED {setup} OPTIONAL, -- Cond PMIRIPCell + csi-SubframePatternConfig-r10 CHOICE { + release NULL, + setup SEQUENCE { + csi-MeasSubframeSet1-r10 MeasSubframePattern-r10, + csi-MeasSubframeSet2-r10 MeasSubframePattern-r10 + } + } OPTIONAL -- Need ON +} + +CQI-ReportConfig-v1130 ::= SEQUENCE { + cqi-ReportPeriodic-v1130 CQI-ReportPeriodic-v1130, + cqi-ReportBoth-r11 CQI-ReportBoth-r11 +} + +CQI-ReportConfig-v1250 ::= SEQUENCE { + csi-SubframePatternConfig-r12 CHOICE { + release NULL, + setup SEQUENCE { + csi-MeasSubframeSets-r12 BIT STRING (SIZE (10)) + } + } OPTIONAL, -- Need ON + cqi-ReportBoth-v1250 CQI-ReportBoth-v1250 OPTIONAL, -- Need ON + cqi-ReportAperiodic-v1250 CQI-ReportAperiodic-v1250 OPTIONAL, -- Need ON + altCQI-Table-r12 ENUMERATED { + allSubframes, csi-SubframeSet1, + csi-SubframeSet2, spare1} OPTIONAL -- Need OP +} + +CQI-ReportConfig-v1310 ::= SEQUENCE { + cqi-ReportBoth-v1310 CQI-ReportBoth-v1310 OPTIONAL, -- Need ON + cqi-ReportAperiodic-v1310 CQI-ReportAperiodic-v1310 OPTIONAL, -- Need ON + cqi-ReportPeriodic-v1310 CQI-ReportPeriodic-v1310 OPTIONAL -- Need ON +} + +CQI-ReportConfig-v1320 ::= SEQUENCE { + cqi-ReportPeriodic-v1320 CQI-ReportPeriodic-v1320 OPTIONAL -- Need ON +} + +CQI-ReportConfig-v1430 ::= SEQUENCE { + cqi-ReportAperiodicHybrid-r14 CQI-ReportAperiodicHybrid-r14 OPTIONAL -- Need ON +} + +CQI-ReportConfigSCell-r10 ::= SEQUENCE { + cqi-ReportModeAperiodic-r10 CQI-ReportModeAperiodic OPTIONAL, -- Need OR + nomPDSCH-RS-EPRE-Offset-r10 INTEGER (-1..6), + cqi-ReportPeriodicSCell-r10 CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON + pmi-RI-Report-r10 ENUMERATED {setup} OPTIONAL -- Cond PMIRISCell +} + + + +CQI-ReportPeriodic ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-PUCCH-ResourceIndex INTEGER (0..1185), + cqi-pmi-ConfigIndex INTEGER (0..1023), + cqi-FormatIndicatorPeriodic CHOICE { + widebandCQI NULL, + subbandCQI SEQUENCE { + k INTEGER (1..4) + } + }, + ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR + simultaneousAckNackAndCQI BOOLEAN + } +} + +CQI-ReportPeriodic-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-PUCCH-ResourceIndex-r10 INTEGER (0..1184), + cqi-PUCCH-ResourceIndexP1-r10 INTEGER (0..1184) OPTIONAL, -- Need OR + cqi-pmi-ConfigIndex INTEGER (0..1023), + cqi-FormatIndicatorPeriodic-r10 CHOICE { + widebandCQI-r10 SEQUENCE { + csi-ReportMode-r10 ENUMERATED {submode1, submode2} OPTIONAL -- Need OR + }, + subbandCQI-r10 SEQUENCE { + k INTEGER (1..4), + periodicityFactor-r10 ENUMERATED {n2, n4} + } + }, + ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR + simultaneousAckNackAndCQI BOOLEAN, + cqi-Mask-r9 ENUMERATED {setup} OPTIONAL, -- Need OR + csi-ConfigIndex-r10 CHOICE { + release NULL, + setup SEQUENCE { + cqi-pmi-ConfigIndex2-r10 INTEGER (0..1023), + ri-ConfigIndex2-r10 INTEGER (0..1023) OPTIONAL -- Need OR + } + } OPTIONAL -- Need ON + } +} + + +CQI-ReportPeriodic-v1130 ::= SEQUENCE { + simultaneousAckNackAndCQI-Format3-r11 ENUMERATED {setup} OPTIONAL, -- Need OR + cqi-ReportPeriodicProcExtToReleaseList-r11 CQI-ReportPeriodicProcExtToReleaseList-r11 OPTIONAL, -- Need ON + cqi-ReportPeriodicProcExtToAddModList-r11 CQI-ReportPeriodicProcExtToAddModList-r11 OPTIONAL -- Need ON +} + +CQI-ReportPeriodic-v1310 ::= SEQUENCE { + cri-ReportConfig-r13 CRI-ReportConfig-r13 OPTIONAL, -- Need OR + simultaneousAckNackAndCQI-Format4-Format5-r13 ENUMERATED {setup} OPTIONAL-- Need OR +} + +CQI-ReportPeriodic-v1320 ::= SEQUENCE { + periodicityFactorWB-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR +} + +CQI-ReportPeriodicProcExtToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCQI-ProcExt-r11)) OF CQI-ReportPeriodicProcExt-r11 + +CQI-ReportPeriodicProcExtToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCQI-ProcExt-r11)) OF CQI-ReportPeriodicProcExtId-r11 + +CQI-ReportPeriodicProcExt-r11 ::= SEQUENCE { + cqi-ReportPeriodicProcExtId-r11 CQI-ReportPeriodicProcExtId-r11, + cqi-pmi-ConfigIndex-r11 INTEGER (0..1023), + cqi-FormatIndicatorPeriodic-r11 CHOICE { + widebandCQI-r11 SEQUENCE { + csi-ReportMode-r11 ENUMERATED {submode1, submode2} OPTIONAL -- Need OR + }, + subbandCQI-r11 SEQUENCE { + k INTEGER (1..4), + periodicityFactor-r11 ENUMERATED {n2, n4} + } + }, + ri-ConfigIndex-r11 INTEGER (0..1023) OPTIONAL, -- Need OR + csi-ConfigIndex-r11 CHOICE { + release NULL, + setup SEQUENCE { + cqi-pmi-ConfigIndex2-r11 INTEGER (0..1023), + ri-ConfigIndex2-r11 INTEGER (0..1023) OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + ..., + [[ cri-ReportConfig-r13 CRI-ReportConfig-r13 OPTIONAL -- Need ON + ]], + [[ periodicityFactorWB-r13 ENUMERATED {n2, n4} OPTIONAL -- Need ON + ]] +} + +CRI-ReportConfig-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + cri-ConfigIndex-r13 CRI-ConfigIndex-r13, + cri-ConfigIndex2-r13 CRI-ConfigIndex-r13 OPTIONAL -- Need OR + } +} + +CRI-ConfigIndex-r13 ::= INTEGER (0..1023) + + +CQI-ReportPeriodicProcExtId-r11 ::= INTEGER (1..maxCQI-ProcExt-r11) + + +CrossCarrierSchedulingConfig-r10 ::= SEQUENCE { + schedulingCellInfo-r10 CHOICE { + own-r10 SEQUENCE { -- No cross carrier scheduling + cif-Presence-r10 BOOLEAN + }, + other-r10 SEQUENCE { -- Cross carrier scheduling + schedulingCellId-r10 ServCellIndex-r10, + pdsch-Start-r10 INTEGER (1..4) + } + } +} + +CrossCarrierSchedulingConfig-r13 ::= SEQUENCE { + schedulingCellInfo-r13 CHOICE { + own-r13 SEQUENCE { -- No cross carrier scheduling + cif-Presence-r13 BOOLEAN + }, + other-r13 SEQUENCE { -- Cross carrier scheduling + schedulingCellId-r13 ServCellIndex-r13, + pdsch-Start-r13 INTEGER (1..4), + cif-InSchedulingCell-r13 INTEGER (1..7) + } + } +} + +CrossCarrierSchedulingConfigLAA-UL-r14 ::= SEQUENCE { + schedulingCellId-r14 ServCellIndex-r13, + cif-InSchedulingCell-r14 INTEGER (1..7) +} + +CSI-IM-Config-r11 ::= SEQUENCE { + csi-IM-ConfigId-r11 CSI-IM-ConfigId-r11, + resourceConfig-r11 INTEGER (0..31), + subframeConfig-r11 INTEGER (0..154), + ..., + [[ interferenceMeasRestriction-r13 BOOLEAN OPTIONAL -- Need ON + ]] +} + +CSI-IM-ConfigExt-r12 ::= SEQUENCE { + csi-IM-ConfigId-v1250 CSI-IM-ConfigId-v1250, + resourceConfig-r12 INTEGER (0..31), + subframeConfig-r12 INTEGER (0..154), + ..., + [[ interferenceMeasRestriction-r13 BOOLEAN OPTIONAL, -- Need ON + csi-IM-ConfigId-v1310 CSI-IM-ConfigId-v1310 OPTIONAL -- Need ON + ]] +} + + +CSI-IM-ConfigId-r11 ::= INTEGER (1..maxCSI-IM-r11) +CSI-IM-ConfigId-r12 ::= INTEGER (1..maxCSI-IM-r12) +CSI-IM-ConfigId-v1250 ::= INTEGER (maxCSI-IM-r12) +CSI-IM-ConfigId-v1310 ::= INTEGER (minCSI-IM-r13..maxCSI-IM-r13) +CSI-IM-ConfigId-r13 ::= INTEGER (1..maxCSI-IM-r13) + + +CSI-Process-r11 ::= SEQUENCE { + csi-ProcessId-r11 CSI-ProcessId-r11, + csi-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11, + csi-IM-ConfigId-r11 CSI-IM-ConfigId-r11, + p-C-AndCBSRList-r11 P-C-AndCBSR-Pair-r13a, + cqi-ReportBothProc-r11 CQI-ReportBothProc-r11 OPTIONAL, -- Need OR + cqi-ReportPeriodicProcId-r11 INTEGER (0..maxCQI-ProcExt-r11) OPTIONAL, -- Need OR + cqi-ReportAperiodicProc-r11 CQI-ReportAperiodicProc-r11 OPTIONAL, -- Need OR + ..., + [[ alternativeCodebookEnabledFor4TXProc-r12 ENUMERATED {true} OPTIONAL, -- Need ON + csi-IM-ConfigIdList-r12 CHOICE { + release NULL, + setup SEQUENCE (SIZE (1..2)) OF CSI-IM-ConfigId-r12 + } OPTIONAL, -- Need ON + cqi-ReportAperiodicProc2-r12 CHOICE { + release NULL, + setup CQI-ReportAperiodicProc-r11 + } OPTIONAL -- Need ON + ]], + [[ cqi-ReportAperiodicProc-v1310 CHOICE { + release NULL, + setup CQI-ReportAperiodicProc-v1310 + } OPTIONAL, -- Need ON + cqi-ReportAperiodicProc2-v1310 CHOICE { + release NULL, + setup CQI-ReportAperiodicProc-v1310 + } OPTIONAL, -- Need ON + eMIMO-Type-r13 CSI-RS-ConfigEMIMO-r13 OPTIONAL -- Need ON + ]], + [[ eMIMO-Type-v1430 CSI-RS-ConfigEMIMO-v1430 OPTIONAL, -- Need ON + eMIMO-Hybrid-r14 CSI-RS-ConfigEMIMO-Hybrid-r14 OPTIONAL, -- Need ON + advancedCodebookEnabled-r14 BOOLEAN OPTIONAL -- Need ON + ]] +} + + +CSI-ProcessId-r11 ::= INTEGER (1..maxCSI-Proc-r11) + + +CSI-RS-Config-r10 ::= SEQUENCE { + csi-RS-r10 CHOICE { + release NULL, + setup SEQUENCE { + antennaPortsCount-r10 ENUMERATED {an1, an2, an4, an8}, + resourceConfig-r10 INTEGER (0..31), + subframeConfig-r10 INTEGER (0..154), + p-C-r10 INTEGER (-8..15) + } + } OPTIONAL, -- Need ON + zeroTxPowerCSI-RS-r10 ZeroTxPowerCSI-RS-Conf-r12 OPTIONAL -- Need ON +} + +CSI-RS-Config-v1250 ::= SEQUENCE { + zeroTxPowerCSI-RS2-r12 ZeroTxPowerCSI-RS-Conf-r12 OPTIONAL, -- Need ON + ds-ZeroTxPowerCSI-RS-r12 CHOICE { + release NULL, + setup SEQUENCE { + zeroTxPowerCSI-RS-List-r12 SEQUENCE (SIZE (1..maxDS-ZTP-CSI-RS-r12)) OF ZeroTxPowerCSI-RS-r12 + } + } OPTIONAL -- Need ON +} + +CSI-RS-Config-v1310 ::= SEQUENCE { + eMIMO-Type-r13 CSI-RS-ConfigEMIMO-r13 OPTIONAL -- Need ON +} + +CSI-RS-Config-v1430 ::= SEQUENCE { + eMIMO-Type-v1430 CSI-RS-ConfigEMIMO-v1430 OPTIONAL, -- Need ON + eMIMO-Hybrid-r14 CSI-RS-ConfigEMIMO-Hybrid-r14 OPTIONAL, -- Need ON + advancedCodebookEnabled-r14 BOOLEAN OPTIONAL -- Need ON +} + +ZeroTxPowerCSI-RS-Conf-r12 ::= CHOICE { + release NULL, + setup ZeroTxPowerCSI-RS-r12 +} + +ZeroTxPowerCSI-RS-r12 ::= SEQUENCE { + zeroTxPowerResourceConfigList-r12 BIT STRING (SIZE (16)), + zeroTxPowerSubframeConfig-r12 INTEGER (0..154) +} + + +CSI-RS-ConfigBeamformed-r13 ::= SEQUENCE { + csi-RS-ConfigNZPIdListExt-r13 SEQUENCE (SIZE (1..7)) OF CSI-RS-ConfigNZPId-r13 OPTIONAL, -- Need OR + csi-IM-ConfigIdList-r13 SEQUENCE (SIZE (1..8)) OF CSI-IM-ConfigId-r13 OPTIONAL, -- Need OR + p-C-AndCBSR-PerResourceConfigList-r13 SEQUENCE (SIZE (1..8)) OF P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR + ace-For4Tx-PerResourceConfigList-r13 SEQUENCE (SIZE (1..7)) OF BOOLEAN OPTIONAL, -- Need OR + alternativeCodebookEnabledBeamformed-r13 ENUMERATED {true} OPTIONAL, -- Need OR + channelMeasRestriction-r13 ENUMERATED {on} OPTIONAL -- Need OR +} + +CSI-RS-ConfigBeamformed-r14 ::= SEQUENCE { + csi-RS-ConfigNZPIdListExt-r14 SEQUENCE (SIZE (1..7)) OF CSI-RS-ConfigNZPId-r13 OPTIONAL, -- Need OR + csi-IM-ConfigIdList-r14 SEQUENCE (SIZE (1..8)) OF CSI-IM-ConfigId-r13 OPTIONAL, -- Need OR + p-C-AndCBSR-PerResourceConfigList-r14 SEQUENCE (SIZE (1..8)) OF P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR + ace-For4Tx-PerResourceConfigList-r14 SEQUENCE (SIZE (1..7)) OF BOOLEAN OPTIONAL, -- Need OR + alternativeCodebookEnabledBeamformed-r14 ENUMERATED {true} OPTIONAL, -- Need OR + channelMeasRestriction-r14 ENUMERATED {on} OPTIONAL, -- Need OR + csi-RS-ConfigNZP-ApList-r14 SEQUENCE (SIZE (1..8)) OF CSI-RS-ConfigNZP-r11 + OPTIONAL, -- Need OR + nzp-ResourceConfigOriginal-v1430 CSI-RS-Config-NZP-v1430 OPTIONAL, -- Need OR + csi-RS-NZP-Activation-r14 CSI-RS-ConfigNZP-Activation-r14 OPTIONAL -- Need OR +} + +CSI-RS-ConfigBeamformed-v1430::= SEQUENCE { + csi-RS-ConfigNZP-ApList-r14 SEQUENCE (SIZE (1..8)) OF CSI-RS-ConfigNZP-r11 + OPTIONAL, -- Need OR + nzp-ResourceConfigOriginal-v1430 CSI-RS-Config-NZP-v1430 OPTIONAL, -- Need OR + csi-RS-NZP-Activation-r14 CSI-RS-ConfigNZP-Activation-r14 OPTIONAL -- Need OR +} + +CSI-RS-Config-NZP-v1430::= SEQUENCE { + transmissionComb-r14 NZP-TransmissionComb-r14 OPTIONAL, -- Need OR + frequencyDensity-r14 NZP-FrequencyDensity-r14 OPTIONAL -- Need OR +} + +CSI-RS-ConfigNZP-Activation-r14::= SEQUENCE { + csi-RS-NZP-mode-r14 ENUMERATED {semiPersistent, aperiodic}, + activatedResources-r14 INTEGER (0..4) +} + + +CSI-RS-ConfigEMIMO-r13 ::= CHOICE { + release NULL, + setup CHOICE { + nonPrecoded-r13 CSI-RS-ConfigNonPrecoded-r13, + beamformed-r13 CSI-RS-ConfigBeamformed-r13 + } +} + +CSI-RS-ConfigEMIMO-v1430 ::= CHOICE { + release NULL, + setup CHOICE { + nonPrecoded-v1430 CSI-RS-ConfigNonPrecoded-v1430, + beamformed-v1430 CSI-RS-ConfigBeamformed-v1430 + } +} + +CSI-RS-ConfigEMIMO2-r14 ::= CHOICE { + release NULL, + setup CSI-RS-ConfigBeamformed-r14 +} + +CSI-RS-ConfigEMIMO-Hybrid-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + periodicityOffsetIndex-r14 INTEGER (0..1023) OPTIONAL, -- Need OR + eMIMO-Type2-r14 CSI-RS-ConfigEMIMO2-r14 OPTIONAL -- Need ON + } +} + + + +CSI-RS-ConfigNonPrecoded-r13 ::= SEQUENCE { + p-C-AndCBSRList-r13 P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR + codebookConfigN1-r13 ENUMERATED {n1, n2, n3, n4, n8}, + codebookConfigN2-r13 ENUMERATED {n1, n2, n3, n4, n8}, + codebookOverSamplingRateConfig-O1-r13 ENUMERATED {n4, n8} OPTIONAL, -- Need OR + codebookOverSamplingRateConfig-O2-r13 ENUMERATED {n4, n8} OPTIONAL, -- Need OR + codebookConfig-r13 INTEGER (1..4), + csi-IM-ConfigIdList-r13 SEQUENCE (SIZE (1..2)) OF CSI-IM-ConfigId-r13 OPTIONAL, -- Need OR + csi-RS-ConfigNZP-EMIMO-r13 CSI-RS-ConfigNZP-EMIMO-r13 OPTIONAL -- Need ON +} + +CSI-RS-ConfigNonPrecoded-v1430::= SEQUENCE { + csi-RS-ConfigNZP-EMIMO-v1430 CSI-RS-ConfigNZP-EMIMO-v1430 OPTIONAL, -- Need ON + codebookConfigN1-v1430 ENUMERATED {n5, n6, n7, n10, n12, n14, n16}, + codebookConfigN2-r1430 ENUMERATED {n5, n6, n7 }, + nzp-ResourceConfigTM9-Original-v1430 CSI-RS-Config-NZP-v1430 +} + + +CSI-RS-ConfigNZP-r11 ::= SEQUENCE { + csi-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11, + antennaPortsCount-r11 ENUMERATED {an1, an2, an4, an8}, + resourceConfig-r11 INTEGER (0..31), + subframeConfig-r11 INTEGER (0..154), + scramblingIdentity-r11 INTEGER (0..503), + qcl-CRS-Info-r11 SEQUENCE { + qcl-ScramblingIdentity-r11 INTEGER (0..503), + crs-PortsCount-r11 ENUMERATED {n1, n2, n4, spare1}, + mbsfn-SubframeConfigList-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList MBSFN-SubframeConfigList + } + } OPTIONAL -- Need ON + } OPTIONAL, -- Need OR + ..., + [[ csi-RS-ConfigNZPId-v1310 CSI-RS-ConfigNZPId-v1310 OPTIONAL -- Need ON + ]], + [[ transmissionComb-r14 NZP-TransmissionComb-r14 OPTIONAL, -- Need OR + frequencyDensity-r14 NZP-FrequencyDensity-r14 OPTIONAL -- Need OR + ]], + [[ mbsfn-SubframeConfigList-v1430 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 + } + } OPTIONAL -- Need OP + ]] +} + +CSI-RS-ConfigNZP-EMIMO-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + nzp-resourceConfigList-r13 SEQUENCE (SIZE (1..2)) OF NZP-ResourceConfig-r13, + cdmType-r13 ENUMERATED {cdm2, cdm4} OPTIONAL -- Need OR + } +} + +CSI-RS-ConfigNZP-EMIMO-v1430 ::= SEQUENCE { + -- All extensions are for Non-Precoded so could be grouped by setup/ release choice + nzp-resourceConfigListExt-r14 SEQUENCE (SIZE (0..4)) OF NZP-ResourceConfig-r13, + cdmType-v1430 ENUMERATED {cdm8 } OPTIONAL -- Need OR +} + +NZP-ResourceConfig-r13 ::= SEQUENCE { + resourceConfig-r13 ResourceConfig-r13, + ..., + [[ transmissionComb-r14 NZP-TransmissionComb-r14 OPTIONAL, -- Need OR + frequencyDensity-r14 NZP-FrequencyDensity-r14 OPTIONAL -- Need OR + ]] +} + +ResourceConfig-r13 ::= INTEGER (0..31) + +NZP-TransmissionComb-r14 ::= INTEGER (0..2) +NZP-FrequencyDensity-r14 ::= ENUMERATED {d1, d2, d3} + + +CSI-RS-ConfigNZPId-r11 ::= INTEGER (1..maxCSI-RS-NZP-r11) +CSI-RS-ConfigNZPId-v1310 ::= INTEGER (minCSI-RS-NZP-r13..maxCSI-RS-NZP-r13) +CSI-RS-ConfigNZPId-r13 ::= INTEGER (1..maxCSI-RS-NZP-r13) + + +CSI-RS-ConfigZP-r11 ::= SEQUENCE { + csi-RS-ConfigZPId-r11 CSI-RS-ConfigZPId-r11, + resourceConfigList-r11 BIT STRING (SIZE (16)), + subframeConfig-r11 INTEGER (0..154), + ... +} + +CSI-RS-ConfigZP-ApList-r14 ::= CHOICE { + release NULL, + setup SEQUENCE (SIZE (1.. maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZP-r11 +} + + +CSI-RS-ConfigZPId-r11 ::= INTEGER (1..maxCSI-RS-ZP-r11) + + +DataInactivityTimer-r14 ::= ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, s40, s50, s60, + s80, s100, s120, s150, s180} + + +DMRS-Config-r11 ::= CHOICE { + release NULL, + setup SEQUENCE { + scramblingIdentity-r11 INTEGER (0..503), + scramblingIdentity2-r11 INTEGER (0..503) + } +} +DMRS-Config-v1310 ::= SEQUENCE { + dmrs-tableAlt-r13 ENUMERATED {true} OPTIONAL -- Need OR +} + + +DRB-Identity ::= INTEGER (1..32) + + +EPDCCH-Config-r11 ::= SEQUENCE{ + config-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframePatternConfig-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframePattern-r11 MeasSubframePattern-r10 + } + } OPTIONAL, -- Need ON + startSymbol-r11 INTEGER (1..4) OPTIONAL, -- Need OP + setConfigToReleaseList-r11 EPDCCH-SetConfigToReleaseList-r11 OPTIONAL, -- Need ON + setConfigToAddModList-r11 EPDCCH-SetConfigToAddModList-r11 OPTIONAL -- Need ON + } + } +} + +EPDCCH-SetConfigToAddModList-r11 ::= SEQUENCE (SIZE(1..maxEPDCCH-Set-r11)) OF EPDCCH-SetConfig-r11 + +EPDCCH-SetConfigToReleaseList-r11 ::= SEQUENCE (SIZE(1..maxEPDCCH-Set-r11)) OF EPDCCH-SetConfigId-r11 + +EPDCCH-SetConfig-r11 ::= SEQUENCE { + setConfigId-r11 EPDCCH-SetConfigId-r11, + transmissionType-r11 ENUMERATED {localised, distributed}, + resourceBlockAssignment-r11 SEQUENCE{ + numberPRB-Pairs-r11 ENUMERATED {n2, n4, n8}, + resourceBlockAssignment-r11 BIT STRING (SIZE(4..38)) + }, + dmrs-ScramblingSequenceInt-r11 INTEGER (0..503), + pucch-ResourceStartOffset-r11 INTEGER (0..2047), + re-MappingQCL-ConfigId-r11 PDSCH-RE-MappingQCL-ConfigId-r11 OPTIONAL, -- Need OR + ..., + [[ csi-RS-ConfigZPId2-r12 CHOICE { + release NULL, + setup CSI-RS-ConfigZPId-r11 + } OPTIONAL -- Need ON + ]], + [[ numberPRB-Pairs-v1310 CHOICE { + release NULL, + setup ENUMERATED {n6} + } OPTIONAL, -- Need ON + mpdcch-config-r13 CHOICE { + release NULL, + setup SEQUENCE { + csi-NumRepetitionCE-r13 ENUMERATED {sf1, sf2, sf4, sf8, sf16, sf32}, + mpdcch-pdsch-HoppingConfig-r13 ENUMERATED {on,off}, + mpdcch-StartSF-UESS-r13 CHOICE { + fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, + v5, v8, v10}, tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10, + v20, spare1} + }, + mpdcch-NumRepetition-r13 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + mpdcch-Narrowband-r13 INTEGER (1.. maxAvailNarrowBands-r13) + } + } OPTIONAL -- Need ON + ]] +} + +EPDCCH-SetConfigId-r11 ::= INTEGER (0..1) + + +EIMTA-MainConfig-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + eimta-RNTI-r12 C-RNTI, + eimta-CommandPeriodicity-r12 ENUMERATED {sf10, sf20, sf40, sf80}, + eimta-CommandSubframeSet-r12 BIT STRING (SIZE(10)) + } +} + +EIMTA-MainConfigServCell-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + eimta-UL-DL-ConfigIndex-r12 INTEGER (1..5), + eimta-HARQ-ReferenceConfig-r12 ENUMERATED {sa2, sa4, sa5}, + mbsfn-SubframeConfigList-v1250 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList-r12 MBSFN-SubframeConfigList + } + } + } +} + + +LogicalChannelConfig ::= SEQUENCE { + ul-SpecificParameters SEQUENCE { + priority INTEGER (1..16), + prioritisedBitRate ENUMERATED { + kBps0, kBps8, kBps16, kBps32, kBps64, kBps128, + kBps256, infinity, kBps512-v1020, kBps1024-v1020, + kBps2048-v1020, spare5, spare4, spare3, spare2, + spare1}, + bucketSizeDuration ENUMERATED { + ms50, ms100, ms150, ms300, ms500, ms1000, spare2, + spare1}, + logicalChannelGroup INTEGER (0..3) OPTIONAL -- Need OR + } OPTIONAL, -- Cond UL + ..., + [[ logicalChannelSR-Mask-r9 ENUMERATED {setup} OPTIONAL -- Cond SRmask + ]], + [[ logicalChannelSR-Prohibit-r12 BOOLEAN OPTIONAL -- Need ON + ]], + [[ laa-UL-Allowed-r14 BOOLEAN OPTIONAL, -- Need ON + bitRateQueryProhibitTimer-r14 ENUMERATED { + s0, s0dot4, s0dot8, s1dot6, s3, s6, s12, + s30} OPTIONAL --Need OR + ]] +} + + +LWA-Configuration-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + lwa-Config-r13 LWA-Config-r13 + } +} + +LWA-Config-r13 ::= SEQUENCE { + lwa-MobilityConfig-r13 WLAN-MobilityConfig-r13 OPTIONAL, -- Need ON + lwa-WT-Counter-r13 INTEGER (0..65535) OPTIONAL, -- Need ON + ..., + [[ wt-MAC-Address-r14 OCTET STRING (SIZE (6)) OPTIONAL -- Need ON + ]] +} + + +LWIP-Configuration-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + lwip-Config-r13 LWIP-Config-r13 + } +} + +LWIP-Config-r13 ::= SEQUENCE { + lwip-MobilityConfig-r13 WLAN-MobilityConfig-r13 OPTIONAL, -- Need ON + tunnelConfigLWIP-r13 TunnelConfigLWIP-r13 OPTIONAL, -- Need ON + ... +} + + +MAC-MainConfig ::= SEQUENCE { + ul-SCH-Config SEQUENCE { + maxHARQ-Tx ENUMERATED { + n1, n2, n3, n4, n5, n6, n7, n8, + n10, n12, n16, n20, n24, n28, + spare2, spare1} OPTIONAL, -- Need ON + periodicBSR-Timer PeriodicBSR-Timer-r12 OPTIONAL, -- Need ON + retxBSR-Timer RetxBSR-Timer-r12, + ttiBundling BOOLEAN + } OPTIONAL, -- Need ON + drx-Config DRX-Config OPTIONAL, -- Need ON + timeAlignmentTimerDedicated TimeAlignmentTimer, + phr-Config CHOICE { + release NULL, + setup SEQUENCE { + periodicPHR-Timer ENUMERATED {sf10, sf20, sf50, sf100, sf200, + sf500, sf1000, infinity}, + prohibitPHR-Timer ENUMERATED {sf0, sf10, sf20, sf50, sf100, + sf200, sf500, sf1000}, + dl-PathlossChange ENUMERATED {dB1, dB3, dB6, infinity} + } + } OPTIONAL, -- Need ON + ..., + [[ sr-ProhibitTimer-r9 INTEGER (0..7) OPTIONAL -- Need ON + ]], + [[ mac-MainConfig-v1020 SEQUENCE { + sCellDeactivationTimer-r10 ENUMERATED { + rf2, rf4, rf8, rf16, rf32, rf64, rf128, + spare} OPTIONAL, -- Need OP + extendedBSR-Sizes-r10 ENUMERATED {setup} OPTIONAL, -- Need OR + extendedPHR-r10 ENUMERATED {setup} OPTIONAL -- Need OR + } OPTIONAL -- Need ON + ]], + [[ stag-ToReleaseList-r11 STAG-ToReleaseList-r11 OPTIONAL, -- Need ON + stag-ToAddModList-r11 STAG-ToAddModList-r11 OPTIONAL, -- Need ON + drx-Config-v1130 DRX-Config-v1130 OPTIONAL -- Need ON + ]], + [[ e-HARQ-Pattern-r12 BOOLEAN OPTIONAL, -- Need ON + dualConnectivityPHR CHOICE { + release NULL, + setup SEQUENCE { + phr-ModeOtherCG-r12 ENUMERATED {real, virtual} + } + } OPTIONAL, -- Need ON + logicalChannelSR-Config-r12 CHOICE { + release NULL, + setup SEQUENCE { + logicalChannelSR-ProhibitTimer-r12 ENUMERATED {sf20, sf40, sf64, sf128, sf512, sf1024, sf2560, spare1} + } + } OPTIONAL -- Need ON + ]], + [[ drx-Config-v1310 DRX-Config-v1310 OPTIONAL, -- Need ON + extendedPHR2-r13 BOOLEAN OPTIONAL, -- Need ON + eDRX-Config-CycleStartOffset-r13 CHOICE { + release NULL, + setup + CHOICE { + sf5120 INTEGER(0..1), + sf10240 INTEGER(0..3) + } + } OPTIONAL -- Need ON + ]], + [[ drx-Config-r13 CHOICE { + release NULL, + setup DRX-Config-r13 + } OPTIONAL -- Need ON + ]], + [[ skipUplinkTx-r14 CHOICE { + release NULL, + setup SEQUENCE { + skipUplinkTxSPS-r14 ENUMERATED {true} OPTIONAL, -- Need OR + skipUplinkTxDynamic-r14 ENUMERATED {true} OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + dataInactivityTimerConfig-r14 CHOICE { + release NULL, + setup SEQUENCE { + dataInactivityTimer-r14 DataInactivityTimer-r14 + } + } OPTIONAL -- Need ON + ]], + [[ rai-Activation-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + +MAC-MainConfigSCell-r11 ::= SEQUENCE { + stag-Id-r11 STAG-Id-r11 OPTIONAL, -- Need OP + ... +} + +DRX-Config ::= CHOICE { + release NULL, + setup SEQUENCE { + onDurationTimer ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200}, + drx-InactivityTimer ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200, psf300, psf500, psf750, + psf1280, psf1920, psf2560, psf0-v1020, + spare9, spare8, spare7, spare6, + spare5, spare4, spare3, spare2, + spare1}, + drx-RetransmissionTimer ENUMERATED { + psf1, psf2, psf4, psf6, psf8, psf16, + psf24, psf33}, + longDRX-CycleStartOffset CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf1280 INTEGER(0..1279), + sf2048 INTEGER(0..2047), + sf2560 INTEGER(0..2559) + }, + shortDRX SEQUENCE { + shortDRX-Cycle ENUMERATED { + sf2, sf5, sf8, sf10, sf16, sf20, + sf32, sf40, sf64, sf80, sf128, sf160, + sf256, sf320, sf512, sf640}, + drxShortCycleTimer INTEGER (1..16) + } OPTIONAL -- Need OR + } +} + +DRX-Config-v1130 ::= SEQUENCE { + drx-RetransmissionTimer-v1130 ENUMERATED {psf0-v1130} OPTIONAL, --Need OR + longDRX-CycleStartOffset-v1130 CHOICE { + sf60-v1130 INTEGER(0..59), + sf70-v1130 INTEGER(0..69) + } OPTIONAL, --Need OR + shortDRX-Cycle-v1130 ENUMERATED {sf4-v1130} OPTIONAL --Need OR +} +DRX-Config-v1310 ::= SEQUENCE { + longDRX-CycleStartOffset-v1310 SEQUENCE { + sf60-v1310 INTEGER(0..59) + } OPTIONAL --Need OR +} + +DRX-Config-r13 ::= SEQUENCE { + onDurationTimer-v1310 ENUMERATED {psf300, psf400, psf500, psf600, + psf800, psf1000, psf1200, psf1600} OPTIONAL, --Need OR + drx-RetransmissionTimer-v1310 ENUMERATED {psf40, psf64, psf80, psf96, psf112, + psf128, psf160, psf320} + OPTIONAL, --Need OR + drx-ULRetransmissionTimer-r13 ENUMERATED {psf0, psf1, psf2, psf4, psf6, psf8, psf16, + psf24, psf33, psf40, psf64, psf80, psf96, + psf112, psf128, psf160, psf320} + OPTIONAL --Need OR +} + +PeriodicBSR-Timer-r12 ::= ENUMERATED { + sf5, sf10, sf16, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, sf1280, sf2560, + infinity, spare1} + +RetxBSR-Timer-r12 ::= ENUMERATED { + sf320, sf640, sf1280, sf2560, sf5120, + sf10240, spare2, spare1} + +STAG-ToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-Id-r11 + +STAG-ToAddModList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-ToAddMod-r11 + +STAG-ToAddMod-r11 ::= SEQUENCE { + stag-Id-r11 STAG-Id-r11, + timeAlignmentTimerSTAG-r11 TimeAlignmentTimer, + ... +} + +STAG-Id-r11::= INTEGER (1..maxSTAG-r11) + + +P-C-AndCBSR-r11 ::= SEQUENCE { + p-C-r11 INTEGER (-8..15), + codebookSubsetRestriction-r11 BIT STRING +} + +P-C-AndCBSR-r13 ::= SEQUENCE { + p-C-r13 INTEGER (-8..15), + cbsr-Selection-r13 CHOICE{ + nonPrecoded-r13 SEQUENCE { + codebookSubsetRestriction1-r13 BIT STRING, + codebookSubsetRestriction2-r13 BIT STRING + }, + beamformedK1a-r13 SEQUENCE { + codebookSubsetRestriction3-r13 BIT STRING + }, + beamformedKN-r13 SEQUENCE { + codebookSubsetRestriction-r13 BIT STRING + } + }, + ... +} + +P-C-AndCBSR-Pair-r13a ::= SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r11 + +P-C-AndCBSR-Pair-r13 ::= SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r13 + + +PDCCH-ConfigSCell-r13 ::= SEQUENCE { + skipMonitoringDCI-format0-1A-r13 ENUMERATED {true} OPTIONAL -- Need OR +} + +PDCCH-ConfigLAA-r14 ::= SEQUENCE { + maxNumberOfSchedSubframes-Format0B-r14 ENUMERATED {sf2, sf3, sf4} OPTIONAL, -- Need OR + maxNumberOfSchedSubframes-Format4B-r14 ENUMERATED {sf2, sf3, sf4} OPTIONAL, -- Need OR + skipMonitoringDCI-Format0A-r14 ENUMERATED {true} OPTIONAL, -- Need OR + skipMonitoringDCI-Format4A-r14 ENUMERATED {true} OPTIONAL, -- Need OR + pdcch-CandidateReductions-Format0A-r14 + PDCCH-CandidateReductions-r13 OPTIONAL, -- Need ON + pdcch-CandidateReductions-Format4A-r14 + PDCCH-CandidateReductionsLAA-UL-r14 OPTIONAL, -- Need ON + pdcch-CandidateReductions-Format0B-r14 + PDCCH-CandidateReductionsLAA-UL-r14 OPTIONAL, -- Need ON + pdcch-CandidateReductions-Format4B-r14 + PDCCH-CandidateReductionsLAA-UL-r14 OPTIONAL -- Need ON +} + +PDCCH-CandidateReductionValue-r13 ::= ENUMERATED {n0, n33, n66, n100} + +PDCCH-CandidateReductionValue-r14 ::= ENUMERATED {n0, n50, n100, n150} + +PDCCH-CandidateReductions-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + pdcch-candidateReductionAL1-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL2-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL3-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL4-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL5-r13 PDCCH-CandidateReductionValue-r13 + } +} + +PDCCH-CandidateReductionsLAA-UL-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + pdcch-candidateReductionAL1-r14 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL2-r14 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL3-r14 PDCCH-CandidateReductionValue-r14, + pdcch-candidateReductionAL4-r14 PDCCH-CandidateReductionValue-r14, + pdcch-candidateReductionAL5-r14 PDCCH-CandidateReductionValue-r14 + } +} + + +PDCP-Config ::= SEQUENCE { + discardTimer ENUMERATED { + ms50, ms100, ms150, ms300, ms500, + ms750, ms1500, infinity + } OPTIONAL, -- Cond Setup + rlc-AM SEQUENCE { + statusReportRequired BOOLEAN + } OPTIONAL, -- Cond Rlc-AM + rlc-UM SEQUENCE { + pdcp-SN-Size ENUMERATED {len7bits, len12bits} + } OPTIONAL, -- Cond Rlc-UM + headerCompression CHOICE { + notUsed NULL, + rohc SEQUENCE { + maxCID INTEGER (1..16383) DEFAULT 15, + profiles SEQUENCE { + profile0x0001 BOOLEAN, + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0101 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + ... + } + }, + ..., + [[ rn-IntegrityProtection-r10 ENUMERATED {enabled} OPTIONAL -- Cond RN + ]], + [[ pdcp-SN-Size-v1130 ENUMERATED {len15bits} OPTIONAL -- Cond Rlc-AM2 + ]], + [[ ul-DataSplitDRB-ViaSCG-r12 BOOLEAN OPTIONAL, -- Need ON + t-Reordering-r12 ENUMERATED { + ms0, ms20, ms40, ms60, ms80, ms100, ms120, ms140, + ms160, ms180, ms200, ms220, ms240, ms260, ms280, ms300, + ms500, ms750, spare14, spare13, spare12, spare11, spare10, + spare9, spare8, spare7, spare6, spare5, spare4, spare3, + spare2, spare1} OPTIONAL -- Cond SetupS + ]], + [[ ul-DataSplitThreshold-r13 CHOICE { + release NULL, + setup ENUMERATED { + b0, b100, b200, b400, b800, b1600, b3200, b6400, b12800, + b25600, b51200, b102400, b204800, b409600, b819200, + spare1} + } OPTIONAL, -- Need ON + pdcp-SN-Size-v1310 ENUMERATED {len18bits} OPTIONAL, -- Cond Rlc-AM3 + statusFeedback-r13 CHOICE { + release NULL, + setup SEQUENCE { + statusPDU-TypeForPolling-r13 ENUMERATED {type1, type2} OPTIONAL, -- Need ON + statusPDU-Periodicity-Type1-r13 ENUMERATED { + ms5, ms10, ms20, ms30, ms40, ms50, ms60, ms70, ms80, ms90, + ms100, ms150, ms200, ms300, ms500, ms1000, ms2000, ms5000, + ms10000, ms20000, ms50000} OPTIONAL, -- Need ON + statusPDU-Periodicity-Type2-r13 ENUMERATED { + ms5, ms10, ms20, ms30, ms40, ms50, ms60, ms70, ms80, ms90, + ms100, ms150, ms200, ms300, ms500, ms1000, ms2000, ms5000, + ms10000, ms20000, ms50000} OPTIONAL, -- Need ON + statusPDU-Periodicity-Offset-r13 ENUMERATED { + ms1, ms2, ms5, ms10, ms25, ms50, ms100, ms250, ms500, + ms2500, ms5000, ms25000} OPTIONAL -- Need ON + } + } OPTIONAL -- Need ON + ]], + [[ ul-LWA-Config-r14 CHOICE { + release NULL, + setup SEQUENCE { + ul-LWA-DRB-ViaWLAN-r14 BOOLEAN, + ul-LWA-DataSplitThreshold-r14 ENUMERATED { + b0, b100, b200, b400, b800, b1600, b3200, b6400, + b12800, b25600, b51200, b102400, b204800, b409600, + b819200 } OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + uplinkOnlyHeaderCompression-r14 CHOICE { + notUsed-r14 NULL, + rohc-r14 SEQUENCE { + maxCID-r14 INTEGER (1..16383) DEFAULT 15, + profiles-r14 SEQUENCE { + profile0x0006-r14 BOOLEAN + }, + ... + } + } OPTIONAL -- Need ON + ]] +} + + +PDSCH-ConfigCommon ::= SEQUENCE { + referenceSignalPower INTEGER (-60..50), + p-b INTEGER (0..3) +} + +PDSCH-ConfigCommon-v1310 ::= SEQUENCE { + pdsch-maxNumRepetitionCEmodeA-r13 ENUMERATED { + r16, r32 } OPTIONAL, -- Need OR + pdsch-maxNumRepetitionCEmodeB-r13 ENUMERATED { + r192, r256, r384, r512, r768, r1024, + r1536, r2048} OPTIONAL -- Need OR +} + +PDSCH-ConfigDedicated::= SEQUENCE { + p-a ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} +} + +PDSCH-ConfigDedicated-v1130 ::= SEQUENCE { + dmrs-ConfigPDSCH-r11 DMRS-Config-r11 OPTIONAL, -- Need ON + qcl-Operation ENUMERATED {typeA, typeB} OPTIONAL, -- Need OR + re-MappingQCLConfigToReleaseList-r11 RE-MappingQCLConfigToReleaseList-r11 OPTIONAL, -- Need ON + re-MappingQCLConfigToAddModList-r11 RE-MappingQCLConfigToAddModList-r11 OPTIONAL -- Need ON +} + +PDSCH-ConfigDedicated-v1280 ::= SEQUENCE { + tbsIndexAlt-r12 ENUMERATED {a26, a33} OPTIONAL -- Need OR +} + +PDSCH-ConfigDedicated-v1310 ::= SEQUENCE { + dmrs-ConfigPDSCH-v1310 DMRS-Config-v1310 OPTIONAL -- Need ON +} + +PDSCH-ConfigDedicated-v1430 ::= SEQUENCE { + ce-PDSCH-MaxBandwidth-r14 ENUMERATED {bw5, bw20} OPTIONAL, -- Need OP + ce-PDSCH-TenProcesses-r14 ENUMERATED {on} OPTIONAL, -- Need OR + ce-HARQ-AckBundling-r14 ENUMERATED {on} OPTIONAL, -- Need OR + ce-SchedulingEnhancement-r14 ENUMERATED {range1, range2} OPTIONAL, -- Need OR + tbsIndexAlt2-r14 ENUMERATED {b33} OPTIONAL -- Need OR +} + +PDSCH-ConfigDedicatedSCell-v1430 ::= SEQUENCE { + tbsIndexAlt2-r14 ENUMERATED {b33} OPTIONAL -- Need OR +} + +RE-MappingQCLConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxRE-MapQCL-r11)) OF PDSCH-RE-MappingQCL-Config-r11 + +RE-MappingQCLConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxRE-MapQCL-r11)) OF PDSCH-RE-MappingQCL-ConfigId-r11 + +PDSCH-RE-MappingQCL-Config-r11 ::= SEQUENCE { + pdsch-RE-MappingQCL-ConfigId-r11 PDSCH-RE-MappingQCL-ConfigId-r11, + optionalSetOfFields-r11 SEQUENCE { + crs-PortsCount-r11 ENUMERATED {n1, n2, n4, spare1}, + crs-FreqShift-r11 INTEGER (0..5), + mbsfn-SubframeConfigList-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList MBSFN-SubframeConfigList + } + } OPTIONAL, -- Need ON + pdsch-Start-r11 ENUMERATED {reserved, n1, n2, n3, n4, assigned} + } OPTIONAL, -- Need OP + csi-RS-ConfigZPId-r11 CSI-RS-ConfigZPId-r11, + qcl-CSI-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11 OPTIONAL, -- Need OR + ..., + [[ mbsfn-SubframeConfigList-v1430 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 + } + } OPTIONAL -- Need OP + ]] +} + + +PDSCH-RE-MappingQCL-ConfigId-r11 ::= INTEGER (1..maxRE-MapQCL-r11) + +PerCC-GapIndicationList-r14 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF PerCC-GapIndication-r14 + +PerCC-GapIndication-r14 ::= SEQUENCE { + servCellId-r14 ServCellIndex-r13, + gapIndication-r14 ENUMERATED {gap, ncsg, nogap-noNcsg} +} + + +PHICH-Config ::= SEQUENCE { + phich-Duration ENUMERATED {normal, extended}, + phich-Resource ENUMERATED {oneSixth, half, one, two} +} + + +PhysicalConfigDedicated ::= SEQUENCE { + pdsch-ConfigDedicated PDSCH-ConfigDedicated OPTIONAL, -- Need ON + pucch-ConfigDedicated PUCCH-ConfigDedicated OPTIONAL, -- Need ON + pusch-ConfigDedicated PUSCH-ConfigDedicated OPTIONAL, -- Need ON + uplinkPowerControlDedicated UplinkPowerControlDedicated OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUCCH TPC-PDCCH-Config OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUSCH TPC-PDCCH-Config OPTIONAL, -- Need ON + cqi-ReportConfig CQI-ReportConfig OPTIONAL, -- Cond CQI-r8 + soundingRS-UL-ConfigDedicated SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON + antennaInfo CHOICE { + explicitValue AntennaInfoDedicated, + defaultValue NULL + } OPTIONAL, -- Cond AI-r8 + schedulingRequestConfig SchedulingRequestConfig OPTIONAL, -- Need ON + ..., + [[ cqi-ReportConfig-v920 CQI-ReportConfig-v920 OPTIONAL, -- Cond CQI-r8 + antennaInfo-v920 AntennaInfoDedicated-v920 OPTIONAL -- Cond AI-r8 + ]], + [[ antennaInfo-r10 CHOICE { + explicitValue-r10 AntennaInfoDedicated-r10, + defaultValue NULL + } OPTIONAL, -- Cond AI-r10 + antennaInfoUL-r10 AntennaInfoUL-r10 OPTIONAL, -- Need ON + cif-Presence-r10 BOOLEAN OPTIONAL, -- Need ON + cqi-ReportConfig-r10 CQI-ReportConfig-r10 OPTIONAL, -- Cond CQI-r10 + csi-RS-Config-r10 CSI-RS-Config-r10 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1020 PUCCH-ConfigDedicated-v1020 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1020 PUSCH-ConfigDedicated-v1020 OPTIONAL, -- Need ON + schedulingRequestConfig-v1020 SchedulingRequestConfig-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1020 + SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-r10 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1020 + UplinkPowerControlDedicated-v1020 OPTIONAL -- Need ON + ]], + [[ additionalSpectrumEmissionCA-r10 CHOICE { + release NULL, + setup SEQUENCE { + additionalSpectrumEmissionPCell-r10 AdditionalSpectrumEmission + } + } OPTIONAL -- Need ON + ]], + [[ -- DL configuration as well as configuration applicable for DL and UL + csi-RS-ConfigNZPToReleaseList-r11 + CSI-RS-ConfigNZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModList-r11 + CSI-RS-ConfigNZPToAddModList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToReleaseList-r11 + CSI-RS-ConfigZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToAddModList-r11 CSI-RS-ConfigZPToAddModList-r11 OPTIONAL, -- Need ON + epdcch-Config-r11 EPDCCH-Config-r11 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1130 PDSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + -- UL configuration + cqi-ReportConfig-v1130 CQI-ReportConfig-v1130 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1130 PUCCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1130 PUSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1130 + UplinkPowerControlDedicated-v1130 OPTIONAL -- Need ON + ]], + [[ antennaInfo-v1250 AntennaInfoDedicated-v1250 OPTIONAL, -- Cond AI-r10 + eimta-MainConfig-r12 EIMTA-MainConfig-r12 OPTIONAL, -- Need ON + eimta-MainConfigPCell-r12 EIMTA-MainConfigServCell-r12 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1250 PUCCH-ConfigDedicated-v1250 OPTIONAL, -- Need ON + cqi-ReportConfigPCell-v1250 CQI-ReportConfig-v1250 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1250 + UplinkPowerControlDedicated-v1250 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1250 PUSCH-ConfigDedicated-v1250 OPTIONAL, -- Need ON + csi-RS-Config-v1250 CSI-RS-Config-v1250 OPTIONAL -- Need ON + ]], + [[ pdsch-ConfigDedicated-v1280 PDSCH-ConfigDedicated-v1280 OPTIONAL -- Need ON + ]], + [[ pdsch-ConfigDedicated-v1310 PDSCH-ConfigDedicated-v1310 OPTIONAL, -- Need ON + pucch-ConfigDedicated-r13 PUCCH-ConfigDedicated-r13 OPTIONAL, -- Need ON + pusch-ConfigDedicated-r13 PUSCH-ConfigDedicated-r13 OPTIONAL, -- Need ON + pdcch-CandidateReductions-r13 + PDCCH-CandidateReductions-r13 OPTIONAL, -- Need ON + cqi-ReportConfig-v1310 CQI-ReportConfig-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1310 + SoundingRS-UL-ConfigDedicated-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-v1310 + SoundingRS-UL-ConfigDedicatedAperiodic-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, -- Need ON + csi-RS-Config-v1310 CSI-RS-Config-v1310 OPTIONAL, -- Need ON + ce-Mode-r13 CHOICE { + release NULL, + setup ENUMERATED {ce-ModeA,ce-ModeB} + } OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModListExt-r13 CSI-RS-ConfigNZPToAddModListExt-r13 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToReleaseListExt-r13 CSI-RS-ConfigNZPToReleaseListExt-r13 OPTIONAL -- Need ON + ]], + [[ cqi-ReportConfig-v1320 CQI-ReportConfig-v1320 OPTIONAL -- Need ON + ]], + [[ typeA-SRS-TPC-PDCCH-Group-r14 CHOICE { + release NULL, + setup SEQUENCE (SIZE (1..32)) OF SRS-TPC-PDCCH-Config-r14 + } OPTIONAL, -- Need ON + must-Config-r14 CHOICE{ + release NULL, + setup SEQUENCE { + k-max-r14 ENUMERATED {l1, l3}, + p-a-must-r14 ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + pusch-EnhancementsConfig-r14 PUSCH-EnhancementsConfig-r14 OPTIONAL, -- Need ON + ce-pdsch-pusch-EnhancementConfig-r14 ENUMERATED {on} OPTIONAL, -- Need OR + antennaInfo-v1430 AntennaInfoDedicated-v1430 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1430 PUCCH-ConfigDedicated-v1430 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1430 PDSCH-ConfigDedicated-v1430 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1430 PUSCH-ConfigDedicated-v1430 OPTIONAL, -- Need ON + soundingRS-UL-PeriodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-UL-ConfigDedicated OPTIONAL, -- Cond PeriodicSRSPCell + soundingRS-UL-PeriodicConfigDedicatedUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Cond PeriodicSRSExt + soundingRS-UL-AperiodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL, -- Cond AperiodicSRS + soundingRS-UL-ConfigDedicatedApUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, -- Cond AperiodicSRSExt + csi-RS-Config-v1430 CSI-RS-Config-v1430 OPTIONAL, -- Need ON + csi-RS-ConfigZP-ApList-r14 CSI-RS-ConfigZP-ApList-r14 OPTIONAL, -- Need ON + cqi-ReportConfig-v1430 CQI-ReportConfig-v1430 OPTIONAL, -- Need ON + semiOpenLoop-r14 BOOLEAN OPTIONAL -- Need ON + ]] +} + +PhysicalConfigDedicated-v1370 ::= SEQUENCE { + pucch-ConfigDedicated-v1370 PUCCH-ConfigDedicated-v1370 OPTIONAL -- Cond PUCCH-Format4or5 +} + +PhysicalConfigDedicatedSCell-r10 ::= SEQUENCE { + -- DL configuration as well as configuration applicable for DL and UL + nonUL-Configuration-r10 SEQUENCE { + antennaInfo-r10 + AntennaInfoDedicated-r10 OPTIONAL, -- Need ON + crossCarrierSchedulingConfig-r10 + CrossCarrierSchedulingConfig-r10 OPTIONAL, -- Need ON + csi-RS-Config-r10 CSI-RS-Config-r10 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-r10 PDSCH-ConfigDedicated OPTIONAL -- Need ON + } OPTIONAL, -- Cond SCellAdd + -- UL configuration + ul-Configuration-r10 SEQUENCE { + antennaInfoUL-r10 AntennaInfoUL-r10 OPTIONAL, -- Need ON + pusch-ConfigDedicatedSCell-r10 + PUSCH-ConfigDedicatedSCell-r10 OPTIONAL, -- Cond PUSCH-SCell1 + uplinkPowerControlDedicatedSCell-r10 + UplinkPowerControlDedicatedSCell-r10 OPTIONAL, -- Need ON + cqi-ReportConfigSCell-r10 CQI-ReportConfigSCell-r10 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-r10 + SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1020 + SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-r10 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL -- Need ON + } OPTIONAL, -- Cond CommonUL + ..., + [[ -- DL configuration as well as configuration applicable for DL and UL + csi-RS-ConfigNZPToReleaseList-r11 + CSI-RS-ConfigNZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModList-r11 + CSI-RS-ConfigNZPToAddModList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToReleaseList-r11 + CSI-RS-ConfigZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToAddModList-r11 + CSI-RS-ConfigZPToAddModList-r11 OPTIONAL, -- Need ON + epdcch-Config-r11 EPDCCH-Config-r11 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1130 PDSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + -- UL configuration + cqi-ReportConfig-v1130 CQI-ReportConfig-v1130 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1130 + PUSCH-ConfigDedicated-v1130 OPTIONAL, -- Cond PUSCH-SCell1 + uplinkPowerControlDedicatedSCell-v1130 + UplinkPowerControlDedicated-v1130 OPTIONAL -- Need ON + ]], + [[ antennaInfo-v1250 AntennaInfoDedicated-v1250 OPTIONAL, -- Need ON + eimta-MainConfigSCell-r12 + EIMTA-MainConfigServCell-r12 OPTIONAL, -- Need ON + cqi-ReportConfigSCell-v1250 CQI-ReportConfig-v1250 OPTIONAL, -- Need ON + uplinkPowerControlDedicatedSCell-v1250 + UplinkPowerControlDedicated-v1250 OPTIONAL, -- Need ON + csi-RS-Config-v1250 CSI-RS-Config-v1250 OPTIONAL -- Need ON + ]], + [[ pdsch-ConfigDedicated-v1280 PDSCH-ConfigDedicated-v1280 OPTIONAL -- Need ON + ]], + [[ pucch-Cell-r13 ENUMERATED {true} OPTIONAL, -- Cond PUCCH-SCell1 + pucch-SCell CHOICE{ + release NULL, + setup SEQUENCE { + pucch-ConfigDedicated-r13 + PUCCH-ConfigDedicated-r13 OPTIONAL, -- Need ON + schedulingRequestConfig-r13 + SchedulingRequestConfigSCell-r13 OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUCCH-SCell-r13 + TPC-PDCCH-ConfigSCell-r13 OPTIONAL, -- Need ON + pusch-ConfigDedicated-r13 + PUSCH-ConfigDedicated-r13 OPTIONAL, -- Cond PUSCH-SCell + uplinkPowerControlDedicated-r13 + UplinkPowerControlDedicatedSCell-v1310 OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + crossCarrierSchedulingConfig-r13 + CrossCarrierSchedulingConfig-r13 OPTIONAL, -- Cond Cross-Carrier-Config + pdcch-ConfigSCell-r13 PDCCH-ConfigSCell-r13 OPTIONAL, -- Need ON + cqi-ReportConfig-v1310 CQI-ReportConfig-v1310 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1310 PDSCH-ConfigDedicated-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1310 + SoundingRS-UL-ConfigDedicated-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-v1310 + SoundingRS-UL-ConfigDedicatedAperiodic-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, -- Need ON + csi-RS-Config-v1310 CSI-RS-Config-v1310 OPTIONAL, -- Need ON + laa-SCellConfiguration-r13 LAA-SCellConfiguration-r13 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModListExt-r13 CSI-RS-ConfigNZPToAddModListExt-r13 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToReleaseListExt-r13 CSI-RS-ConfigNZPToReleaseListExt-r13 OPTIONAL -- Need ON + ]], + [[ cqi-ReportConfig-v1320 CQI-ReportConfig-v1320 OPTIONAL -- Need ON + ]], + [[ laa-SCellConfiguration-v1430 LAA-SCellConfiguration-v1430 + OPTIONAL, -- Need ON + typeB-SRS-TPC-PDCCH-Config-r14 SRS-TPC-PDCCH-Config-r14 OPTIONAL, -- Need ON + + uplinkPUSCH-LessPowerControlDedicated-v1430 UplinkPUSCH-LessPowerControlDedicated-v1430 OPTIONAL, -- Need ON + soundingRS-UL-PeriodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-UL-ConfigDedicated OPTIONAL, -- Cond PeriodicSRS + soundingRS-UL-PeriodicConfigDedicatedUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Cond PeriodicSRSExt + soundingRS-UL-AperiodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-AperiodicSet-r14 OPTIONAL, -- Cond AperiodicSRS + soundingRS-UL-ConfigDedicatedApUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-AperiodicSetUpPTsExt-r14 OPTIONAL, -- Cond AperiodicSRSExt + must-Config-r14 CHOICE{ + release NULL, + setup SEQUENCE { + k-max-r14 ENUMERATED {l1, l3}, + p-a-must-r14 ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1430 PUSCH-ConfigDedicatedSCell-v1430 OPTIONAL, -- Need ON + csi-RS-Config-v1430 CSI-RS-Config-v1430 OPTIONAL, -- Need ON + csi-RS-ConfigZP-ApList-r14 CSI-RS-ConfigZP-ApList-r14 OPTIONAL, -- Need ON + cqi-ReportConfig-v1430 CQI-ReportConfig-v1430 OPTIONAL, -- Need ON + semiOpenLoop-r14 BOOLEAN OPTIONAL, -- Need ON + pdsch-ConfigDedicatedSCell-v1430 PDSCH-ConfigDedicatedSCell-v1430 OPTIONAL -- Need ON + ]] +} + +PhysicalConfigDedicatedSCell-v1370 ::= SEQUENCE { + pucch-SCell-v1370 CHOICE{ + release NULL, + setup SEQUENCE { + pucch-ConfigDedicated-v1370 PUCCH-ConfigDedicated-v1370 OPTIONAL -- Cond PUCCH-Format4or5 + } + } +} + +LAA-SCellConfiguration-r13 ::= SEQUENCE { + subframeStartPosition-r13 ENUMERATED {s0, s07}, + laa-SCellSubframeConfig-r13 BIT STRING (SIZE(8)) +} + +LAA-SCellConfiguration-v1430 ::= SEQUENCE { + crossCarrierSchedulingConfig-UL-r14 CHOICE { + release NULL, + setup SEQUENCE { + crossCarrierSchedulingConfigLAA-UL-r14 CrossCarrierSchedulingConfigLAA-UL-r14 + } + } OPTIONAL, -- Cond Cross-Carrier-ConfigUL + lbt-Config-r14 LBT-Config-r14 OPTIONAL, -- Need ON + pdcch-ConfigLAA-r14 PDCCH-ConfigLAA-r14 OPTIONAL, -- Need ON + absenceOfAnyOtherTechnology-r14 ENUMERATED {true} OPTIONAL, -- Need OR + soundingRS-UL-ConfigDedicatedAperiodic-v1430 + SoundingRS-UL-ConfigDedicatedAperiodic-v1430 OPTIONAL -- Need ON +} + +LBT-Config-r14 ::= CHOICE{ + maxEnergyDetectionThreshold-r14 INTEGER(-85..-52), + energyDetectionThresholdOffset-r14 INTEGER(-13..20) +} + +CSI-RS-ConfigNZPToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r11)) OF CSI-RS-ConfigNZP-r11 + +CSI-RS-ConfigNZPToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-v1310)) OF CSI-RS-ConfigNZP-r11 + +CSI-RS-ConfigNZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r11)) OF CSI-RS-ConfigNZPId-r11 + +CSI-RS-ConfigNZPToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-v1310)) OF CSI-RS-ConfigNZPId-v1310 + +CSI-RS-ConfigZPToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZP-r11 + +CSI-RS-ConfigZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZPId-r11 + +SoundingRS-AperiodicSet-r14 ::= SEQUENCE{ + srs-CC-SetIndexList-r14 + SEQUENCE (SIZE (1..4)) OF SRS-CC-SetIndex-r14 + OPTIONAL, -- Cond SRS-Trigger-TypeA + soundingRS-UL-ConfigDedicatedAperiodic-r14 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 +} + +SoundingRS-AperiodicSetUpPTsExt-r14 ::= SEQUENCE{ + srs-CC-SetIndexList-r14 + SEQUENCE (SIZE (1..4)) OF SRS-CC-SetIndex-r14 + OPTIONAL, -- Cond SRS-Trigger-TypeA + soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r14 + SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 +} + + +P-Max ::= INTEGER (-30..33) + + +PRACH-ConfigSIB ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + prach-ConfigInfo PRACH-ConfigInfo +} + +PRACH-ConfigSIB-v1310 ::= SEQUENCE { + rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsPrachInfoList-r13, + mpdcch-startSF-CSS-RA-r13 CHOICE { + fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, v5, v8, + v10}, + tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10, v20, spare} + } OPTIONAL, -- Cond MP + prach-HoppingOffset-r13 INTEGER (0..94) OPTIONAL, -- Need OR + prach-ParametersListCE-r13 PRACH-ParametersListCE-r13 +} + +PRACH-Config ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + prach-ConfigInfo PRACH-ConfigInfo OPTIONAL -- Need ON +} + +PRACH-Config-v1310 ::= SEQUENCE { + rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsPrachInfoList-r13 OPTIONAL, -- Cond MP + mpdcch-startSF-CSS-RA-r13 CHOICE { + fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, v5, v8, + v10}, + tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10, v20, spare} + } OPTIONAL, -- Cond MP + prach-HoppingOffset-r13 INTEGER (0..94) OPTIONAL, -- Need OR + prach-ParametersListCE-r13 PRACH-ParametersListCE-r13 OPTIONAL, -- Cond MP + initial-CE-level-r13 INTEGER (0..3) OPTIONAL -- Need OR +} + +PRACH-Config-v1430 ::= SEQUENCE { + rootSequenceIndexHighSpeed-r14 INTEGER (0..837), + zeroCorrelationZoneConfigHighSpeed-r14 INTEGER (0..12), + prach-ConfigIndexHighSpeed-r14 INTEGER (0..63), + prach-FreqOffsetHighSpeed-r14 INTEGER (0..94) +} + +PRACH-ConfigSCell-r10 ::= SEQUENCE { + prach-ConfigIndex-r10 INTEGER (0..63) +} + +PRACH-ConfigInfo ::= SEQUENCE { + prach-ConfigIndex INTEGER (0..63), + highSpeedFlag BOOLEAN, + zeroCorrelationZoneConfig INTEGER (0..15), + prach-FreqOffset INTEGER (0..94) +} + +PRACH-ParametersListCE-r13 ::= SEQUENCE (SIZE(1..maxCE-Level-r13)) OF PRACH-ParametersCE-r13 + +PRACH-ParametersCE-r13 ::= SEQUENCE { + prach-ConfigIndex-r13 INTEGER (0..63), + prach-FreqOffset-r13 INTEGER (0..94), + prach-StartingSubframe-r13 ENUMERATED {sf2, sf4, sf8, sf16, sf32, sf64, sf128, + sf256} OPTIONAL, -- Need OP + maxNumPreambleAttemptCE-r13 + ENUMERATED {n3, n4, n5, n6, n7, n8, n10} OPTIONAL, -- Need OP + numRepetitionPerPreambleAttempt-r13 ENUMERATED {n1,n2,n4,n8,n16,n32,n64,n128}, + mpdcch-NarrowbandsToMonitor-r13 SEQUENCE (SIZE(1..2)) OF + INTEGER (1..maxAvailNarrowBands-r13), + mpdcch-NumRepetition-RA-r13 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + prach-HoppingConfig-r13 ENUMERATED {on,off} +} + +RSRP-ThresholdsPrachInfoList-r13 ::= SEQUENCE (SIZE(1..3)) OF RSRP-Range + + +PresenceAntennaPort1 ::= BOOLEAN + + +PUCCH-ConfigCommon ::= SEQUENCE { + deltaPUCCH-Shift ENUMERATED {ds1, ds2, ds3}, + nRB-CQI INTEGER (0..98), + nCS-AN INTEGER (0..7), + n1PUCCH-AN INTEGER (0..2047) +} + +PUCCH-ConfigCommon-v1310 ::= SEQUENCE { + n1PUCCH-AN-InfoList-r13 N1PUCCH-AN-InfoList-r13 OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level0-r13 ENUMERATED {n1, n2, n4, n8} OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level1-r13 ENUMERATED {n1, n2, n4, n8} OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level2-r13 ENUMERATED {n4, n8, n16, n32} OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level3-r13 ENUMERATED {n4, n8, n16, n32} OPTIONAL -- Need OR +} + +PUCCH-ConfigCommon-v1430 ::= SEQUENCE { + pucch-NumRepetitionCE-Msg4-Level3-r14 ENUMERATED {n64, n128} OPTIONAL -- Need OR +} + +PUCCH-ConfigDedicated ::= SEQUENCE { + ackNackRepetition CHOICE{ + release NULL, + setup SEQUENCE { + repetitionFactor ENUMERATED {n2, n4, n6, spare1}, + n1PUCCH-AN-Rep INTEGER (0..2047) + } + }, + tdd-AckNackFeedbackMode ENUMERATED {bundling, multiplexing} OPTIONAL -- Cond TDD +} + +PUCCH-ConfigDedicated-v1020 ::= SEQUENCE { + pucch-Format-r10 CHOICE { + format3-r10 PUCCH-Format3-Conf-r13, + channelSelection-r10 SEQUENCE { + n1PUCCH-AN-CS-r10 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-List-r10 SEQUENCE (SIZE (1..2)) OF N1PUCCH-AN-CS-r10 + } + } OPTIONAL -- Need ON + } + } OPTIONAL, -- Need OR + twoAntennaPortActivatedPUCCH-Format1a1b-r10 ENUMERATED {true} OPTIONAL, -- Need OR + simultaneousPUCCH-PUSCH-r10 ENUMERATED {true} OPTIONAL, -- Need OR + n1PUCCH-AN-RepP1-r10 INTEGER (0..2047) OPTIONAL -- Need OR +} + +PUCCH-ConfigDedicated-v1130 ::= SEQUENCE { + n1PUCCH-AN-CS-v1130 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-ListP1-r11 SEQUENCE (SIZE (2..4)) OF INTEGER (0..2047) + } + } OPTIONAL, -- Need ON + nPUCCH-Param-r11 CHOICE { + release NULL, + setup SEQUENCE { + nPUCCH-Identity-r11 INTEGER (0..503), + n1PUCCH-AN-r11 INTEGER (0..2047) + } + } OPTIONAL -- Need ON +} + +PUCCH-ConfigDedicated-v1250 ::= SEQUENCE { + nkaPUCCH-Param-r12 CHOICE { + release NULL, + setup SEQUENCE { + nkaPUCCH-AN-r12 INTEGER (0..2047) + } + } +} + +PUCCH-ConfigDedicated-r13 ::= SEQUENCE { +--Release 8 + ackNackRepetition-r13 CHOICE{ + release NULL, + setup SEQUENCE { + repetitionFactor-r13 ENUMERATED {n2, n4, n6, spare1}, + n1PUCCH-AN-Rep-r13 INTEGER (0..2047) + } + }, + tdd-AckNackFeedbackMode-r13 ENUMERATED {bundling, multiplexing} OPTIONAL, -- Cond TDD +--Release 10 + pucch-Format-r13 CHOICE { + format3-r13 SEQUENCE { + n3PUCCH-AN-List-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) OPTIONAL, -- Need ON + twoAntennaPortActivatedPUCCH-Format3-r13 CHOICE { + release NULL, + setup SEQUENCE { + n3PUCCH-AN-ListP1-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) + } + } OPTIONAL -- Need ON + }, + channelSelection-r13 SEQUENCE { + n1PUCCH-AN-CS-r13 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-List-r13 SEQUENCE (SIZE (1..2)) OF N1PUCCH-AN-CS-r10, + n1PUCCH-AN-CS-ListP1-r13 SEQUENCE (SIZE (2..4)) OF INTEGER (0..2047) + } + } OPTIONAL -- Need ON + }, + format4-r13 SEQUENCE { + format4-resourceConfiguration-r13 SEQUENCE (SIZE (4)) OF Format4-resource-r13, + format4-MultiCSI-resourceConfiguration-r13 SEQUENCE (SIZE (1..2)) OF Format4-resource-r13 OPTIONAL -- Need OR + }, + format5-r13 SEQUENCE { + format5-resourceConfiguration-r13 SEQUENCE (SIZE (4)) OF Format5-resource-r13, + format5-MultiCSI-resourceConfiguration-r13 Format5-resource-r13 OPTIONAL -- Need OR + } + } OPTIONAL, -- Need OR + twoAntennaPortActivatedPUCCH-Format1a1b-r13 ENUMERATED {true} OPTIONAL, -- Need OR + simultaneousPUCCH-PUSCH-r13 ENUMERATED {true} OPTIONAL, -- Need OR + n1PUCCH-AN-RepP1-r13 INTEGER (0..2047) OPTIONAL, -- Need OR +--Release 11 + nPUCCH-Param-r13 CHOICE { + release NULL, + setup SEQUENCE { + nPUCCH-Identity-r13 INTEGER (0..503), + n1PUCCH-AN-r13 INTEGER (0..2047) + } + } OPTIONAL, -- Need ON +--Release 12 + nkaPUCCH-Param-r13 CHOICE { + release NULL, + setup SEQUENCE { + nkaPUCCH-AN-r13 INTEGER (0..2047) + } + } OPTIONAL, -- Need ON +--Release 13 + spatialBundlingPUCCH-r13 BOOLEAN, + spatialBundlingPUSCH-r13 BOOLEAN, + harq-TimingTDD-r13 BOOLEAN, + codebooksizeDetermination-r13 ENUMERATED {dai,cc} OPTIONAL, -- Need OR + maximumPayloadCoderate-r13 INTEGER (0..7) OPTIONAL, -- Need OR + pucch-NumRepetitionCE-r13 CHOICE { + release NULL, + setup CHOICE { + modeA SEQUENCE { + pucch-NumRepetitionCE-format1-r13 ENUMERATED {r1, r2, r4, r8}, + pucch-NumRepetitionCE-format2-r13 ENUMERATED {r1, r2, r4, r8} + }, + modeB SEQUENCE { + pucch-NumRepetitionCE-format1-r13 ENUMERATED {r4, r8, r16, r32}, + pucch-NumRepetitionCE-format2-r13 ENUMERATED {r4, r8, r16, r32} + } + } + } OPTIONAL --Need ON +} + +PUCCH-ConfigDedicated-v1370 ::= SEQUENCE { + pucch-Format-v1370 CHOICE { + release NULL, + setup PUCCH-Format3-Conf-r13 + } +} + +PUCCH-Format3-Conf-r13 ::= SEQUENCE { + n3PUCCH-AN-List-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) OPTIONAL, -- Need ON + twoAntennaPortActivatedPUCCH-Format3-r13 CHOICE { + release NULL, + setup SEQUENCE { + n3PUCCH-AN-ListP1-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) + } + } OPTIONAL -- Need ON +} + +PUCCH-ConfigDedicated-v1430 ::= SEQUENCE { + pucch-NumRepetitionCE-format1-r14 ENUMERATED {r64,r128} OPTIONAL -- Need OR +} + +Format4-resource-r13 ::= SEQUENCE { + startingPRB-format4-r13 INTEGER (0..109), + numberOfPRB-format4-r13 INTEGER (0..7) +} + +Format5-resource-r13 ::= SEQUENCE { + startingPRB-format5-r13 INTEGER (0..109), + cdm-index-format5-r13 INTEGER (0..1) +} + + + +N1PUCCH-AN-CS-r10 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + +N1PUCCH-AN-InfoList-r13 ::= SEQUENCE (SIZE(1..maxCE-Level-r13)) OF INTEGER (0..2047) + + +PUSCH-ConfigCommon ::= SEQUENCE { + pusch-ConfigBasic SEQUENCE { + n-SB INTEGER (1..4), + hoppingMode ENUMERATED {interSubFrame, intraAndInterSubFrame}, + pusch-HoppingOffset INTEGER (0..98), + enable64QAM BOOLEAN + }, + ul-ReferenceSignalsPUSCH UL-ReferenceSignalsPUSCH +} + +PUSCH-ConfigCommon-v1270 ::= SEQUENCE { + enable64QAM-v1270 ENUMERATED {true} +} + +PUSCH-ConfigCommon-v1310 ::= SEQUENCE { + pusch-maxNumRepetitionCEmodeA-r13 ENUMERATED { + r8, r16, r32 } OPTIONAL, -- Need OR + pusch-maxNumRepetitionCEmodeB-r13 ENUMERATED { + r192, r256, r384, r512, r768, r1024, + r1536, r2048} OPTIONAL, -- Need OR + pusch-HoppingOffset-v1310 + INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicated ::= SEQUENCE { + betaOffset-ACK-Index INTEGER (0..15), + betaOffset-RI-Index INTEGER (0..15), + betaOffset-CQI-Index INTEGER (0..15) +} + +PUSCH-ConfigDedicated-v1020 ::= SEQUENCE { + betaOffsetMC-r10 SEQUENCE { + betaOffset-ACK-Index-MC-r10 INTEGER (0..15), + betaOffset-RI-Index-MC-r10 INTEGER (0..15), + betaOffset-CQI-Index-MC-r10 INTEGER (0..15) + } OPTIONAL, -- Need OR + groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicated-v1130 ::= SEQUENCE { + pusch-DMRS-r11 CHOICE { + release NULL, + setup SEQUENCE { + nPUSCH-Identity-r11 INTEGER (0..509), + nDMRS-CSH-Identity-r11 INTEGER (0..509) + } + } +} + +PUSCH-ConfigDedicated-v1250::= SEQUENCE { + uciOnPUSCH CHOICE { + release NULL, + setup SEQUENCE { + betaOffset-ACK-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffset-RI-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffset-CQI-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffsetMC-r12 SEQUENCE { + betaOffset-ACK-Index-MC-SubframeSet2-r12 INTEGER (0..15), + betaOffset-RI-Index-MC-SubframeSet2-r12 INTEGER (0..15), + betaOffset-CQI-Index-MC-SubframeSet2-r12 INTEGER (0..15) + } OPTIONAL -- Need OR + } + } +} +PUSCH-ConfigDedicated-r13 ::= SEQUENCE { + betaOffset-ACK-Index-r13 INTEGER (0..15), + betaOffset2-ACK-Index-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-r13 INTEGER (0..15), + betaOffset-CQI-Index-r13 INTEGER (0..15), + betaOffsetMC-r13 SEQUENCE { + betaOffset-ACK-Index-MC-r13 INTEGER (0..15), + betaOffset2-ACK-Index-MC-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-MC-r13 INTEGER (0..15), + betaOffset-CQI-Index-MC-r13 INTEGER (0..15) + } OPTIONAL, -- Need OR + groupHoppingDisabled-r13 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r13 ENUMERATED {true} OPTIONAL, -- Need OR + pusch-DMRS-r11 CHOICE { + release NULL, + setup SEQUENCE { + nPUSCH-Identity-r13 INTEGER (0..509), + nDMRS-CSH-Identity-r13 INTEGER (0..509) + } + } OPTIONAL, -- Need ON + uciOnPUSCH CHOICE { + release NULL, + setup SEQUENCE { + betaOffset-ACK-Index-SubframeSet2-r13 INTEGER (0..15), + betaOffset2-ACK-Index-SubframeSet2-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-SubframeSet2-r13 INTEGER (0..15), + betaOffset-CQI-Index-SubframeSet2-r13 INTEGER (0..15), + betaOffsetMC-r12 SEQUENCE { + betaOffset-ACK-Index-MC-SubframeSet2-r13 INTEGER (0..15), + betaOffset2-ACK-Index-MC-SubframeSet2-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-MC-SubframeSet2-r13 INTEGER (0..15), + betaOffset-CQI-Index-MC-SubframeSet2-r13 INTEGER (0..15) + } OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + pusch-HoppingConfig-r13 ENUMERATED {on} OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicated-v1430 ::= SEQUENCE { + ce-PUSCH-NB-MaxTBS-r14 ENUMERATED {on} OPTIONAL, -- Need OR + ce-PUSCH-MaxBandwidth-r14 ENUMERATED {bw5} OPTIONAL, -- Need OR + tdd-PUSCH-UpPTS-r14 TDD-PUSCH-UpPTS-r14 OPTIONAL, -- Need ON + ul-DMRS-IFDMA-r14 BOOLEAN, + enable256QAM-r14 Enable256QAM-r14 OPTIONAL -- Need ON +} + +PUSCH-ConfigDedicatedSCell-r10 ::= SEQUENCE { + groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicatedSCell-v1430 ::= SEQUENCE { + enable256QAM-r14 Enable256QAM-r14 OPTIONAL -- Need OR +} + +TDD-PUSCH-UpPTS-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + symPUSCH-UpPTS-r14 ENUMERATED {sym1, sym2, sym3, sym4, sym5, sym6} OPTIONAL, -- Need ON + dmrs-LessUpPTS-Config-r14 ENUMERATED {true} OPTIONAL -- Need OR + } +} + +Enable256QAM-r14 ::= CHOICE { + release NULL, + setup CHOICE { + tpc-SubframeSet-Configured-r14 SEQUENCE { + subframeSet1-DCI-Format0-r14 BOOLEAN, + subframeSet1-DCI-Format4-r14 BOOLEAN, + subframeSet2-DCI-Format0-r14 BOOLEAN, + subframeSet2-DCI-Format4-r14 BOOLEAN + }, + tpc-SubframeSet-NotConfigured-r14 SEQUENCE { + dci-Format0-r14 BOOLEAN, + dci-Format4-r14 BOOLEAN + } + } +} + +PUSCH-EnhancementsConfig-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + pusch-HoppingOffsetPUSCH-Enh-r14 INTEGER (1..100) OPTIONAL, -- Need ON + interval-ULHoppingPUSCH-Enh-r14 CHOICE { + interval-FDD-PUSCH-Enh-r14 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-PUSCH-Enh-r14 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL -- Need ON + } +} + +UL-ReferenceSignalsPUSCH ::= SEQUENCE { + groupHoppingEnabled BOOLEAN, + groupAssignmentPUSCH INTEGER (0..29), + sequenceHoppingEnabled BOOLEAN, + cyclicShift INTEGER (0..7) +} + + +RACH-ConfigCommon ::= SEQUENCE { + preambleInfo SEQUENCE { + numberOfRA-Preambles ENUMERATED { + n4, n8, n12, n16, n20, n24, n28, + n32, n36, n40, n44, n48, n52, n56, + n60, n64}, + preamblesGroupAConfig SEQUENCE { + sizeOfRA-PreamblesGroupA ENUMERATED { + n4, n8, n12, n16, n20, n24, n28, + n32, n36, n40, n44, n48, n52, n56, + n60}, + messageSizeGroupA ENUMERATED {b56, b144, b208, b256}, + messagePowerOffsetGroupB ENUMERATED { + minusinfinity, dB0, dB5, dB8, dB10, dB12, + dB15, dB18}, + ... + } OPTIONAL -- Need OP + }, + powerRampingParameters PowerRampingParameters, + ra-SupervisionInfo SEQUENCE { + preambleTransMax PreambleTransMax, + ra-ResponseWindowSize ENUMERATED { + sf2, sf3, sf4, sf5, sf6, sf7, + sf8, sf10}, + mac-ContentionResolutionTimer ENUMERATED { + sf8, sf16, sf24, sf32, sf40, sf48, + sf56, sf64} + }, + maxHARQ-Msg3Tx INTEGER (1..8), + ..., + [[ preambleTransMax-CE-r13 PreambleTransMax OPTIONAL, -- Need OR + rach-CE-LevelInfoList-r13 RACH-CE-LevelInfoList-r13 OPTIONAL -- Need OR + ]] +} + +RACH-ConfigCommon-v1250 ::= SEQUENCE { + txFailParams-r12 SEQUENCE { + connEstFailCount-r12 ENUMERATED {n1, n2, n3, n4}, + connEstFailOffsetValidity-r12 ENUMERATED {s30, s60, s120, s240, + s300, s420, s600, s900}, + connEstFailOffset-r12 INTEGER (0..15) OPTIONAL -- Need OP + } +} + +RACH-ConfigCommonSCell-r11 ::= SEQUENCE { + powerRampingParameters-r11 PowerRampingParameters, + ra-SupervisionInfo-r11 SEQUENCE { + preambleTransMax-r11 PreambleTransMax + }, + ... +} + +RACH-CE-LevelInfoList-r13 ::= SEQUENCE (SIZE (1..maxCE-Level-r13)) OF RACH-CE-LevelInfo-r13 + +RACH-CE-LevelInfo-r13 ::= SEQUENCE { + preambleMappingInfo-r13 SEQUENCE { + firstPreamble-r13 INTEGER(0..63), + lastPreamble-r13 INTEGER(0..63) + }, + ra-ResponseWindowSize-r13 ENUMERATED {sf20, sf50, sf80, sf120, sf180, + sf240, sf320, sf400}, + + mac-ContentionResolutionTimer-r13 ENUMERATED {sf80, sf100, sf120, + sf160, sf200, sf240, sf480, sf960}, + rar-HoppingConfig-r13 ENUMERATED {on,off}, + ... +} + +PowerRampingParameters ::= SEQUENCE { + powerRampingStep ENUMERATED {dB0, dB2,dB4, dB6}, + preambleInitialReceivedTargetPower ENUMERATED { + dBm-120, dBm-118, dBm-116, dBm-114, dBm-112, + dBm-110, dBm-108, dBm-106, dBm-104, dBm-102, + dBm-100, dBm-98, dBm-96, dBm-94, + dBm-92, dBm-90} +} + +PreambleTransMax ::= ENUMERATED { + n3, n4, n5, n6, n7, n8, n10, n20, n50, + n100, n200} + + +RACH-ConfigDedicated ::= SEQUENCE { + ra-PreambleIndex INTEGER (0..63), + ra-PRACH-MaskIndex INTEGER (0..15) +} + + +RadioResourceConfigCommonSIB ::= SEQUENCE { + rach-ConfigCommon RACH-ConfigCommon, + bcch-Config BCCH-Config, + pcch-Config PCCH-Config, + prach-Config PRACH-ConfigSIB, + pdsch-ConfigCommon PDSCH-ConfigCommon, + pusch-ConfigCommon PUSCH-ConfigCommon, + pucch-ConfigCommon PUCCH-ConfigCommon, + soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon, + uplinkPowerControlCommon UplinkPowerControlCommon, + ul-CyclicPrefixLength UL-CyclicPrefixLength, + ..., + [[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need OR + ]], + [[ rach-ConfigCommon-v1250 RACH-ConfigCommon-v1250 OPTIONAL -- Need OR + ]], + [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR + ]], + [[ bcch-Config-v1310 BCCH-Config-v1310 OPTIONAL, -- Need OR + pcch-Config-v1310 PCCH-Config-v1310 OPTIONAL, -- Need OR + freqHoppingParameters-r13 FreqHoppingParameters-r13 OPTIONAL, -- Need OR + pdsch-ConfigCommon-v1310 PDSCH-ConfigCommon-v1310 OPTIONAL, -- Need OR + pusch-ConfigCommon-v1310 PUSCH-ConfigCommon-v1310 OPTIONAL, -- Need OR + prach-ConfigCommon-v1310 PRACH-ConfigSIB-v1310 OPTIONAL, -- Need OR + pucch-ConfigCommon-v1310 PUCCH-ConfigCommon-v1310 OPTIONAL -- Need OR + ]], + [[ highSpeedConfig-r14 HighSpeedConfig-r14 OPTIONAL, -- Need OR + prach-Config-v1430 PRACH-Config-v1430 OPTIONAL, -- Need OR + pucch-ConfigCommon-v1430 PUCCH-ConfigCommon-v1430 OPTIONAL -- Need OR + ]] +} + +RadioResourceConfigCommon ::= SEQUENCE { + rach-ConfigCommon RACH-ConfigCommon OPTIONAL, -- Need ON + prach-Config PRACH-Config, + pdsch-ConfigCommon PDSCH-ConfigCommon OPTIONAL, -- Need ON + pusch-ConfigCommon PUSCH-ConfigCommon, + phich-Config PHICH-Config OPTIONAL, -- Need ON + pucch-ConfigCommon PUCCH-ConfigCommon OPTIONAL, -- Need ON + soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon OPTIONAL, -- Need ON + uplinkPowerControlCommon UplinkPowerControlCommon OPTIONAL, -- Need ON + antennaInfoCommon AntennaInfoCommon OPTIONAL, -- Need ON + p-Max P-Max OPTIONAL, -- Need OP + tdd-Config TDD-Config OPTIONAL, -- Cond TDD + ul-CyclicPrefixLength UL-CyclicPrefixLength, + ..., + [[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need ON + ]], + [[ tdd-Config-v1130 TDD-Config-v1130 OPTIONAL -- Cond TDD3 + ]], + [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR + ]], + [[ + prach-Config-v1310 PRACH-Config-v1310 OPTIONAL, -- Need ON + freqHoppingParameters-r13 FreqHoppingParameters-r13 OPTIONAL, -- Need ON + pdsch-ConfigCommon-v1310 PDSCH-ConfigCommon-v1310 OPTIONAL, -- Need ON + pucch-ConfigCommon-v1310 PUCCH-ConfigCommon-v1310 OPTIONAL, -- Need ON + pusch-ConfigCommon-v1310 PUSCH-ConfigCommon-v1310 OPTIONAL, -- Need ON + uplinkPowerControlCommon-v1310 UplinkPowerControlCommon-v1310 OPTIONAL -- Need ON + ]], + [[ highSpeedConfig-r14 HighSpeedConfig-r14 OPTIONAL, -- Need OR + prach-Config-v1430 PRACH-Config-v1430 OPTIONAL, -- Need OR + pucch-ConfigCommon-v1430 PUCCH-ConfigCommon-v1430 OPTIONAL, -- Need OR + tdd-Config-v1430 TDD-Config-v1430 OPTIONAL -- Cond TDD3 + ]], + [[ + tdd-Config-v1450 TDD-Config-v1450 OPTIONAL -- Cond TDD3 + ]] +} + +RadioResourceConfigCommonPSCell-r12 ::= SEQUENCE { + basicFields-r12 RadioResourceConfigCommonSCell-r10, + pucch-ConfigCommon-r12 PUCCH-ConfigCommon, + rach-ConfigCommon-r12 RACH-ConfigCommon, + uplinkPowerControlCommonPSCell-r12 UplinkPowerControlCommonPSCell-r12, + ..., + [[ uplinkPowerControlCommonPSCell-v1310 + UplinkPowerControlCommon-v1310 OPTIONAL -- Need ON + ]] +} + +RadioResourceConfigCommonPSCell-v12f0 ::= SEQUENCE { + basicFields-v12f0 RadioResourceConfigCommonSCell-v10l0 +} + +RadioResourceConfigCommonPSCell-v1440 ::= SEQUENCE { + basicFields-v1440 RadioResourceConfigCommonSCell-v1440 +} + +RadioResourceConfigCommonSCell-r10 ::= SEQUENCE { + -- DL configuration as well as configuration applicable for DL and UL + nonUL-Configuration-r10 SEQUENCE { + -- 1: Cell characteristics + dl-Bandwidth-r10 ENUMERATED {n6, n15, n25, n50, n75, n100}, + -- 2: Physical configuration, general + antennaInfoCommon-r10 AntennaInfoCommon, + mbsfn-SubframeConfigList-r10 MBSFN-SubframeConfigList OPTIONAL, -- Need OR + -- 3: Physical configuration, control + phich-Config-r10 PHICH-Config, + -- 4: Physical configuration, physical channels + pdsch-ConfigCommon-r10 PDSCH-ConfigCommon, + tdd-Config-r10 TDD-Config OPTIONAL -- Cond TDDSCell + }, + -- UL configuration + ul-Configuration-r10 SEQUENCE { + ul-FreqInfo-r10 SEQUENCE { + ul-CarrierFreq-r10 ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth-r10 ENUMERATED {n6, n15, + n25, n50, n75, n100} OPTIONAL, -- Need OP + additionalSpectrumEmissionSCell-r10 AdditionalSpectrumEmission + }, + p-Max-r10 P-Max OPTIONAL, -- Need OP + uplinkPowerControlCommonSCell-r10 UplinkPowerControlCommonSCell-r10, + -- A special version of IE UplinkPowerControlCommon may be introduced + -- 3: Physical configuration, control + soundingRS-UL-ConfigCommon-r10 SoundingRS-UL-ConfigCommon, + ul-CyclicPrefixLength-r10 UL-CyclicPrefixLength, + -- 4: Physical configuration, physical channels + prach-ConfigSCell-r10 PRACH-ConfigSCell-r10 OPTIONAL, -- Cond TDD-OR-NoR11 + pusch-ConfigCommon-r10 PUSCH-ConfigCommon + } OPTIONAL, -- Need OR + ..., + [[ ul-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Need OP + ]], + [[ rach-ConfigCommonSCell-r11 RACH-ConfigCommonSCell-r11 OPTIONAL, -- Cond ULSCell + prach-ConfigSCell-r11 PRACH-Config OPTIONAL, -- Cond UL + tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD2 + uplinkPowerControlCommonSCell-v1130 + UplinkPowerControlCommonSCell-v1130 OPTIONAL -- Cond UL + ]], + [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR + ]], + [[ pucch-ConfigCommon-r13 PUCCH-ConfigCommon OPTIONAL, -- Cond UL + uplinkPowerControlCommonSCell-v1310 + UplinkPowerControlCommonSCell-v1310 OPTIONAL -- Cond UL + ]], + [[ highSpeedConfigSCell-r14 HighSpeedConfigSCell-r14 OPTIONAL, -- Need OR + prach-Config-v1430 PRACH-Config-v1430 OPTIONAL, -- Cond UL + ul-Configuration-r14 SEQUENCE { + ul-FreqInfo-r14 SEQUENCE { + ul-CarrierFreq-r14 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need OP + ul-Bandwidth-r14 ENUMERATED {n6, n15, + n25, n50, n75, n100} OPTIONAL, -- Need OP + additionalSpectrumEmissionSCell-r14 AdditionalSpectrumEmission + }, + p-Max-r14 P-Max OPTIONAL, -- Need OP + soundingRS-UL-ConfigCommon-r14 SoundingRS-UL-ConfigCommon, + ul-CyclicPrefixLength-r14 UL-CyclicPrefixLength, + prach-ConfigSCell-r14 PRACH-ConfigSCell-r10 OPTIONAL, -- Cond TDD-OR-NoR11 + uplinkPowerControlCommonPUSCH-LessCell-v1430 UplinkPowerControlCommonPUSCH-LessCell-v1430 OPTIONAL -- Need OR +} OPTIONAL, -- Cond ULSRS + harq-ReferenceConfig-r14 ENUMERATED {sa2,sa4,sa5} OPTIONAL, -- Need OR + soundingRS-FlexibleTiming-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL-- Need ON + ]] +} + +RadioResourceConfigCommonSCell-v10l0 ::= SEQUENCE { + -- UL configuration + ul-Configuration-v10l0 SEQUENCE { + additionalSpectrumEmissionSCell-v10l0 AdditionalSpectrumEmission-v10l0 + } +} + +RadioResourceConfigCommonSCell-v1440 ::= SEQUENCE { + ul-Configuration-v1440 SEQUENCE { + ul-FreqInfo-v1440 SEQUENCE { + additionalSpectrumEmissionSCell-v1440 AdditionalSpectrumEmission-v10l0 + } + } +} + +BCCH-Config ::= SEQUENCE { + modificationPeriodCoeff ENUMERATED {n2, n4, n8, n16} +} + +BCCH-Config-v1310 ::= SEQUENCE { + modificationPeriodCoeff-v1310 ENUMERATED {n64} +} + +FreqHoppingParameters-r13 ::= SEQUENCE { + dummy ENUMERATED {nb2, nb4} OPTIONAL, + dummy2 CHOICE { + interval-FDD-r13 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-r13 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL, + dummy3 CHOICE { + interval-FDD-r13 ENUMERATED {int2, int4, int8, int16}, + interval-TDD-r13 ENUMERATED { int5, int10, int20, int40} + } OPTIONAL, + interval-ULHoppingConfigCommonModeA-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-r13 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL, -- Cond MP-A + interval-ULHoppingConfigCommonModeB-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int2, int4, int8, int16}, + interval-TDD-r13 ENUMERATED { int5, int10, int20, int40} + } OPTIONAL, -- Cond MP-B + dummy4 INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL +} + +PCCH-Config ::= SEQUENCE { + defaultPagingCycle ENUMERATED { + rf32, rf64, rf128, rf256}, + nB ENUMERATED { + fourT, twoT, oneT, halfT, quarterT, oneEighthT, + oneSixteenthT, oneThirtySecondT} +} + +PCCH-Config-v1310 ::= SEQUENCE { + paging-narrowBands-r13 INTEGER (1..maxAvailNarrowBands-r13), + mpdcch-NumRepetition-Paging-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, r256}, + nB-v1310 ENUMERATED {one64thT, one128thT, one256thT} + OPTIONAL -- Need OR +} + +UL-CyclicPrefixLength ::= ENUMERATED {len1, len2} + +HighSpeedConfig-r14 ::= SEQUENCE { + highSpeedEnhancedMeasFlag-r14 ENUMERATED {true} OPTIONAL, -- Need OR + highSpeedEnhancedDemodulationFlag-r14 ENUMERATED {true} OPTIONAL -- Need OR +} + +HighSpeedConfigSCell-r14 ::= SEQUENCE { + highSpeedEnhancedDemodulationFlag-r14 ENUMERATED {true} OPTIONAL -- Need OR +} + + +RadioResourceConfigDedicated ::= SEQUENCE { + srb-ToAddModList SRB-ToAddModList OPTIONAL, -- Cond HO-Conn + drb-ToAddModList DRB-ToAddModList OPTIONAL, -- Cond HO-toEUTRA + drb-ToReleaseList DRB-ToReleaseList OPTIONAL, -- Need ON + mac-MainConfig CHOICE { + explicitValue MAC-MainConfig, + defaultValue NULL + } OPTIONAL, -- Cond HO-toEUTRA2 + sps-Config SPS-Config OPTIONAL, -- Need ON + physicalConfigDedicated PhysicalConfigDedicated OPTIONAL, -- Need ON + ..., + [[ rlf-TimersAndConstants-r9 RLF-TimersAndConstants-r9 OPTIONAL -- Need ON + ]], + [[ measSubframePatternPCell-r10 MeasSubframePatternPCell-r10 OPTIONAL -- Need ON + ]], + [[ neighCellsCRS-Info-r11 NeighCellsCRS-Info-r11 OPTIONAL -- Need ON + ]], + [[ naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL -- Need ON + ]], + [[ neighCellsCRS-Info-r13 NeighCellsCRS-Info-r13 OPTIONAL, -- Cond CRSIM + rlf-TimersAndConstants-r13 RLF-TimersAndConstants-r13 OPTIONAL -- Need ON + ]], + [[ sps-Config-v1430 SPS-Config-v1430 OPTIONAL -- Cond SPS + ]] +} + +RadioResourceConfigDedicated-v1370 ::= SEQUENCE { + physicalConfigDedicated-v1370 PhysicalConfigDedicated-v1370 OPTIONAL -- Need ON +} + +RadioResourceConfigDedicatedPSCell-r12 ::= SEQUENCE { + -- UE specific configuration extensions applicable for an PSCell + physicalConfigDedicatedPSCell-r12 PhysicalConfigDedicated OPTIONAL, -- Need ON + sps-Config-r12 SPS-Config OPTIONAL, -- Need ON + naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL, -- Need ON + ..., + [[ neighCellsCRS-InfoPSCell-r13 NeighCellsCRS-Info-r13 OPTIONAL -- Need ON + ]], + [[ sps-Config-v1430 SPS-Config-v1430 OPTIONAL -- Cond SPS2 + ]] +} + +RadioResourceConfigDedicatedPSCell-v1370 ::= SEQUENCE { + physicalConfigDedicatedPSCell-v1370 PhysicalConfigDedicated-v1370 OPTIONAL -- Need ON +} + +RadioResourceConfigDedicatedSCG-r12 ::= SEQUENCE { + drb-ToAddModListSCG-r12 DRB-ToAddModListSCG-r12 OPTIONAL, -- Need ON + mac-MainConfigSCG-r12 MAC-MainConfig OPTIONAL, -- Need ON + rlf-TimersAndConstantsSCG-r12 RLF-TimersAndConstantsSCG-r12 OPTIONAL, -- Need ON + ... +} + +RadioResourceConfigDedicatedSCell-r10 ::= SEQUENCE { + -- UE specific configuration extensions applicable for an SCell + physicalConfigDedicatedSCell-r10 PhysicalConfigDedicatedSCell-r10 OPTIONAL, -- Need ON + ..., + [[ mac-MainConfigSCell-r11 MAC-MainConfigSCell-r11 OPTIONAL -- Cond SCellAdd + ]], + [[ naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL -- Need ON + ]], + [[ neighCellsCRS-InfoSCell-r13 NeighCellsCRS-Info-r13 OPTIONAL -- Need ON + ]], + [[ physicalConfigDedicatedSCell-v1370 PhysicalConfigDedicatedSCell-v1370 OPTIONAL -- Need ON + ]] +} + +SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod + +SRB-ToAddMod ::= SEQUENCE { + srb-Identity INTEGER (1..2), + rlc-Config CHOICE { + explicitValue RLC-Config, + defaultValue NULL + } OPTIONAL, -- Cond Setup + logicalChannelConfig CHOICE { + explicitValue LogicalChannelConfig, + defaultValue NULL + } OPTIONAL, -- Cond Setup + ..., + [[ pdcp-verChange-r15 ENUMERATED {true} OPTIONAL -- Cond NR-PDCP + ]] +} + +DRB-ToAddModList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod + +DRB-ToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddModSCG-r12 + +DRB-ToAddMod ::= SEQUENCE { + eps-BearerIdentity INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity DRB-Identity, + pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP + rlc-Config RLC-Config OPTIONAL, -- Cond SetupM + logicalChannelIdentity INTEGER (3..10) OPTIONAL, -- Cond DRB-SetupM + logicalChannelConfig LogicalChannelConfig OPTIONAL, -- Cond SetupM + ..., + [[ drb-TypeChange-r12 ENUMERATED {toMCG} OPTIONAL, -- Need OP + rlc-Config-v1250 RLC-Config-v1250 OPTIONAL -- Need ON + ]], + [[ rlc-Config-v1310 RLC-Config-v1310 OPTIONAL, -- Need ON + drb-TypeLWA-r13 BOOLEAN OPTIONAL, -- Need ON + drb-TypeLWIP-r13 ENUMERATED {lwip, lwip-DL-only, + lwip-UL-only, eutran} OPTIONAL -- Need ON + ]], + [[ rlc-Config-v1430 RLC-Config-v1430 OPTIONAL, -- Need ON + lwip-UL-Aggregation-r14 BOOLEAN OPTIONAL, -- Cond LWIP + lwip-DL-Aggregation-r14 BOOLEAN OPTIONAL, -- Cond LWIP + lwa-WLAN-AC-r14 ENUMERATED {ac-bk, ac-be, ac-vi, ac-vo} OPTIONAL -- Cond UL-LWA + ]], + [[ rlc-Config-v1510 RLC-Config-v1510 OPTIONAL -- Need ON + ]] +} + +DRB-ToAddModSCG-r12 ::= SEQUENCE { + drb-Identity-r12 DRB-Identity, + drb-Type-r12 CHOICE { + split-r12 NULL, + scg-r12 SEQUENCE { + eps-BearerIdentity-r12 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + pdcp-Config-r12 PDCP-Config OPTIONAL -- Cond PDCP-S + } + } OPTIONAL, -- Cond SetupS2 + rlc-ConfigSCG-r12 RLC-Config OPTIONAL, -- Cond SetupS + rlc-Config-v1250 RLC-Config-v1250 OPTIONAL, -- Need ON + logicalChannelIdentitySCG-r12 INTEGER (3..10) OPTIONAL, -- Cond DRB-SetupS + logicalChannelConfigSCG-r12 LogicalChannelConfig OPTIONAL, -- Cond SetupS + ..., + [[ rlc-Config-v1430 RLC-Config-v1430 OPTIONAL -- Need ON + ]] +} + +DRB-ToReleaseList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity + +MeasSubframePatternPCell-r10 ::= CHOICE { + release NULL, + setup MeasSubframePattern-r10 +} + +NeighCellsCRS-Info-r11 ::= CHOICE { + release NULL, + setup CRS-AssistanceInfoList-r11 +} + +CRS-AssistanceInfoList-r11 ::= SEQUENCE (SIZE (1..maxCellReport)) OF CRS-AssistanceInfo-r11 + +CRS-AssistanceInfo-r11 ::= SEQUENCE { + physCellId-r11 PhysCellId, + antennaPortsCount-r11 ENUMERATED {an1, an2, an4, spare1}, + mbsfn-SubframeConfigList-r11 MBSFN-SubframeConfigList, + ..., + [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL -- Need ON + ]] +} + +NeighCellsCRS-Info-r13 ::= CHOICE { + release NULL, + setup CRS-AssistanceInfoList-r13 +} + +CRS-AssistanceInfoList-r13 ::= SEQUENCE (SIZE (1..maxCellReport)) OF CRS-AssistanceInfo-r13 + +CRS-AssistanceInfo-r13 ::= SEQUENCE { + physCellId-r13 PhysCellId, + antennaPortsCount-r13 ENUMERATED {an1, an2, an4, spare1}, + mbsfn-SubframeConfigList-r13 MBSFN-SubframeConfigList OPTIONAL, -- Need ON + ..., + [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL -- Need ON + ]] +} + +NAICS-AssistanceInfo-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + neighCellsToReleaseList-r12 NeighCellsToReleaseList-r12 OPTIONAL , -- Need ON + neighCellsToAddModList-r12 NeighCellsToAddModList-r12 OPTIONAL, -- Need ON + servCellp-a-r12 P-a OPTIONAL -- Need ON + } +} + +NeighCellsToReleaseList-r12 ::= SEQUENCE (SIZE (1..maxNeighCell-r12)) OF PhysCellId + +NeighCellsToAddModList-r12 ::= SEQUENCE (SIZE (1..maxNeighCell-r12)) OF NeighCellsInfo-r12 + +NeighCellsInfo-r12 ::= SEQUENCE { + physCellId-r12 PhysCellId, + p-b-r12 INTEGER (0..3), + crs-PortsCount-r12 ENUMERATED {n1, n2, n4, spare}, + mbsfn-SubframeConfig-r12 MBSFN-SubframeConfigList OPTIONAL, -- Need ON + p-aList-r12 SEQUENCE (SIZE (1..maxP-a-PerNeighCell-r12)) OF P-a, + transmissionModeList-r12 BIT STRING (SIZE(8)), + resAllocGranularity-r12 INTEGER (1..4), + ... +} +P-a ::= ENUMERATED { dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} + + +RCLWI-Configuration-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + rclwi-Config-r13 RCLWI-Config-r13 + } +} + +RCLWI-Config-r13 ::= SEQUENCE { + command CHOICE { + steerToWLAN-r13 SEQUENCE { + mobilityConfig-r13 WLAN-Id-List-r12 + }, + steerToLTE-r13 NULL + }, + ... +} + + +RLC-Config ::= CHOICE { + am SEQUENCE { + ul-AM-RLC UL-AM-RLC, + dl-AM-RLC DL-AM-RLC + }, + um-Bi-Directional SEQUENCE { + ul-UM-RLC UL-UM-RLC, + dl-UM-RLC DL-UM-RLC + }, + um-Uni-Directional-UL SEQUENCE { + ul-UM-RLC UL-UM-RLC + }, + um-Uni-Directional-DL SEQUENCE { + dl-UM-RLC DL-UM-RLC + }, + ... +} + +RLC-Config-v1250 ::= SEQUENCE { + ul-extended-RLC-LI-Field-r12 BOOLEAN, + dl-extended-RLC-LI-Field-r12 BOOLEAN +} + +RLC-Config-v1310 ::= SEQUENCE { + ul-extended-RLC-AM-SN-r13 BOOLEAN, + dl-extended-RLC-AM-SN-r13 BOOLEAN, + pollPDU-v1310 PollPDU-v1310 OPTIONAL -- Need OR +} + +RLC-Config-v1430 ::= CHOICE { + release NULL, + setup SEQUENCE { + pollByte-r14 PollByte-r14 + } +} + +RLC-Config-v1510 ::= SEQUENCE { + reestablishRLC-r15 ENUMERATED {true} +} + +UL-AM-RLC ::= SEQUENCE { + t-PollRetransmit T-PollRetransmit, + pollPDU PollPDU, + pollByte PollByte, + maxRetxThreshold ENUMERATED { + t1, t2, t3, t4, t6, t8, t16, t32} +} + +DL-AM-RLC ::= SEQUENCE { + t-Reordering T-Reordering, + t-StatusProhibit T-StatusProhibit +} + +UL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength +} + +DL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength, + t-Reordering T-Reordering +} + +SN-FieldLength ::= ENUMERATED {size5, size10} + +T-PollRetransmit ::= ENUMERATED { + ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, ms800-v1310, + ms1000-v1310, ms2000-v1310, ms4000-v1310, + spare5, spare4, spare3, spare2, spare1} + +PollPDU ::= ENUMERATED { + p4, p8, p16, p32, p64, p128, p256, pInfinity} + +PollPDU-v1310 ::= ENUMERATED { + p512, p1024, p2048, p4096, p6144, p8192, p12288, p16384} + +PollByte ::= ENUMERATED { + kB25, kB50, kB75, kB100, kB125, kB250, kB375, + kB500, kB750, kB1000, kB1250, kB1500, kB2000, + kB3000, kBinfinity, spare1} + +PollByte-r14 ::= ENUMERATED { + kB1, kB2, kB5, kB8, kB10, kB15, kB3500, + kB4000, kB4500, kB5000, kB5500, kB6000, kB6500, + kB7000, kB7500, kB8000, kB9000, kB10000, kB11000, kB12000, + kB13000, kB14000, kB15000, kB16000, kB17000, kB18000, + kB19000, kB20000, kB25000, kB30000, kB35000, kB40000} + +T-Reordering ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms110, + ms120, ms130, ms140, ms150, ms160, ms170, + ms180, ms190, ms200, ms1600-v1310} + +T-StatusProhibit ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, ms800-v1310, + ms1000-v1310, ms1200-v1310, ms1600-v1310, ms2000-v1310, ms2400-v1310, spare2, + spare1} + + +RLF-TimersAndConstants-r9 ::= CHOICE { + release NULL, + setup SEQUENCE { + t301-r9 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t310-r9 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n310-r9 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311-r9 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311-r9 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ... + } +} + +RLF-TimersAndConstants-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + t301-v1310 ENUMERATED { + ms2500, ms3000, ms3500, ms4000, ms5000, + ms6000, ms8000, ms10000}, + ..., + [[ t310-v1330 ENUMERATED {ms4000, ms6000} OPTIONAL -- Need ON + ]] + } +} + +RLF-TimersAndConstantsSCG-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + t313-r12 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n313-r12 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + n314-r12 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ... + } +} + + +RN-SubframeConfig-r10 ::= SEQUENCE { + subframeConfigPattern-r10 CHOICE { + subframeConfigPatternFDD-r10 BIT STRING (SIZE(8)), + subframeConfigPatternTDD-r10 INTEGER (0..31) + } OPTIONAL, -- Need ON + rpdcch-Config-r10 SEQUENCE { + resourceAllocationType-r10 ENUMERATED {type0, type1, type2Localized, type2Distributed, + spare4, spare3, spare2, spare1}, + resourceBlockAssignment-r10 CHOICE { + type01-r10 CHOICE { + nrb6-r10 BIT STRING (SIZE(6)), + nrb15-r10 BIT STRING (SIZE(8)), + nrb25-r10 BIT STRING (SIZE(13)), + nrb50-r10 BIT STRING (SIZE(17)), + nrb75-r10 BIT STRING (SIZE(19)), + nrb100-r10 BIT STRING (SIZE(25)) + }, + type2-r10 CHOICE { + nrb6-r10 BIT STRING (SIZE(5)), + nrb15-r10 BIT STRING (SIZE(7)), + nrb25-r10 BIT STRING (SIZE(9)), + nrb50-r10 BIT STRING (SIZE(11)), + nrb75-r10 BIT STRING (SIZE(12)), + nrb100-r10 BIT STRING (SIZE(13)) + }, + ... + }, + demodulationRS-r10 CHOICE { + interleaving-r10 ENUMERATED {crs}, + noInterleaving-r10 ENUMERATED {crs, dmrs} + }, + pdsch-Start-r10 INTEGER (1..3), + pucch-Config-r10 CHOICE { + tdd CHOICE { + channelSelectionMultiplexingBundling SEQUENCE { + n1PUCCH-AN-List-r10 SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + }, + fallbackForFormat3 SEQUENCE { + n1PUCCH-AN-P0-r10 INTEGER (0..2047), + n1PUCCH-AN-P1-r10 INTEGER (0..2047) OPTIONAL -- Need OR + } + }, + fdd SEQUENCE { + n1PUCCH-AN-P0-r10 INTEGER (0..2047), + n1PUCCH-AN-P1-r10 INTEGER (0..2047) OPTIONAL -- Need OR + } + }, + ... + } OPTIONAL, -- Need ON + ... +} + + +SchedulingRequestConfig ::= CHOICE { + release NULL, + setup SEQUENCE { + sr-PUCCH-ResourceIndex INTEGER (0..2047), + sr-ConfigIndex INTEGER (0..157), + dsr-TransMax ENUMERATED { + n4, n8, n16, n32, n64, spare3, spare2, spare1} + } +} + +SchedulingRequestConfig-v1020 ::= SEQUENCE { + sr-PUCCH-ResourceIndexP1-r10 INTEGER (0..2047) OPTIONAL -- Need OR +} + +SchedulingRequestConfigSCell-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + sr-PUCCH-ResourceIndex-r13 INTEGER (0..2047), + sr-PUCCH-ResourceIndexP1-r13 INTEGER (0..2047) OPTIONAL, -- Need OR + sr-ConfigIndex-r13 INTEGER (0..157), + dsr-TransMax-r13 ENUMERATED { + n4, n8, n16, n32, n64, spare3, spare2, spare1} + } + +} + + +SoundingRS-UL-ConfigCommon ::= CHOICE { + release NULL, + setup SEQUENCE { + srs-BandwidthConfig ENUMERATED {bw0, bw1, bw2, bw3, bw4, bw5, bw6, bw7}, + srs-SubframeConfig ENUMERATED { + sc0, sc1, sc2, sc3, sc4, sc5, sc6, sc7, + sc8, sc9, sc10, sc11, sc12, sc13, sc14, sc15}, + ackNackSRS-SimultaneousTransmission BOOLEAN, + srs-MaxUpPts ENUMERATED {true} OPTIONAL -- Cond TDD + } +} + +SoundingRS-UL-ConfigDedicated ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-Bandwidth ENUMERATED {bw0, bw1, bw2, bw3}, + srs-HoppingBandwidth ENUMERATED {hbw0, hbw1, hbw2, hbw3}, + freqDomainPosition INTEGER (0..23), + duration BOOLEAN, + srs-ConfigIndex INTEGER (0..1023), + transmissionComb INTEGER (0..1), + cyclicShift ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7} + } +} + +SoundingRS-UL-ConfigDedicated-v1020 ::= SEQUENCE { + srs-AntennaPort-r10 SRS-AntennaPort +} + +SoundingRS-UL-ConfigDedicated-v1310 ::= CHOICE{ + release NULL, + setup SEQUENCE { + transmissionComb-v1310 INTEGER (2..3) OPTIONAL, -- Need OR + cyclicShift-v1310 ENUMERATED {cs8, cs9, cs10, cs11} OPTIONAL, -- Need OR + transmissionCombNum-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR + } +} + +SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-UpPtsAdd-r13 ENUMERATED {sym2, sym4}, + srs-Bandwidth-r13 ENUMERATED {bw0, bw1, bw2, bw3}, + srs-HoppingBandwidth-r13 ENUMERATED {hbw0, hbw1, hbw2, hbw3}, + freqDomainPosition-r13 INTEGER (0..23), + duration-r13 BOOLEAN, + srs-ConfigIndex-r13 INTEGER (0..1023), + transmissionComb-r13 INTEGER (0..3), + cyclicShift-r13 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, + cs8, cs9, cs10, cs11}, + srs-AntennaPort-r13 SRS-AntennaPort, + transmissionCombNum-r13 ENUMERATED {n2, n4} + } +} + +SoundingRS-UL-ConfigDedicatedAperiodic-r10 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-ConfigIndexAp-r10 INTEGER (0..31), + srs-ConfigApDCI-Format4-r10 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-r10 OPTIONAL,--Need ON + srs-ActivateAp-r10 CHOICE { + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format0-r10 SRS-ConfigAp-r10, + srs-ConfigApDCI-Format1a2b2c-r10 SRS-ConfigAp-r10, + ... + } + } OPTIONAL -- Need ON + } +} + +SoundingRS-UL-ConfigDedicatedAperiodic-v1310 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format4-v1310 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-v1310 OPTIONAL,--Need ON + srs-ActivateAp-v1310 CHOICE { + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format0-v1310 SRS-ConfigAp-v1310 OPTIONAL, -- Need ON + srs-ConfigApDCI-Format1a2b2c-v1310 SRS-ConfigAp-v1310 OPTIONAL -- Need ON + } + } OPTIONAL -- Need ON + } +} + +SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-UpPtsAdd-r13 ENUMERATED {sym2, sym4}, + srs-ConfigIndexAp-r13 INTEGER (0..31), + srs-ConfigApDCI-Format4-r13 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-r13 OPTIONAL,--Need ON + srs-ActivateAp-r13 CHOICE { + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format0-r13 SRS-ConfigAp-r13, + srs-ConfigApDCI-Format1a2b2c-r13 SRS-ConfigAp-r13 + } + } OPTIONAL -- Need ON + } +} + +SoundingRS-UL-ConfigDedicatedAperiodic-v1430 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-SubframeIndication-r14 INTEGER (1..4) OPTIONAL -- Need ON + } +} + +SRS-ConfigAp-r10 ::= SEQUENCE { + srs-AntennaPortAp-r10 SRS-AntennaPort, + srs-BandwidthAp-r10 ENUMERATED {bw0, bw1, bw2, bw3}, + freqDomainPositionAp-r10 INTEGER (0..23), + transmissionCombAp-r10 INTEGER (0..1), + cyclicShiftAp-r10 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7} +} + +SRS-ConfigAp-v1310 ::= SEQUENCE { + transmissionCombAp-v1310 INTEGER (2..3) OPTIONAL, -- Need OR + cyclicShiftAp-v1310 ENUMERATED {cs8, cs9, cs10, cs11} OPTIONAL, -- Need OR + transmissionCombNum-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR +} + +SRS-ConfigAp-r13 ::= SEQUENCE { + srs-AntennaPortAp-r13 SRS-AntennaPort, + srs-BandwidthAp-r13 ENUMERATED {bw0, bw1, bw2, bw3}, + freqDomainPositionAp-r13 INTEGER (0..23), + transmissionCombAp-r13 INTEGER (0..3), + cyclicShiftAp-r13 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, + cs8, cs9, cs10, cs11}, + transmissionCombNum-r13 ENUMERATED {n2, n4} +} + +SRS-AntennaPort ::= ENUMERATED {an1, an2, an4, spare1} + + +SPS-Config ::= SEQUENCE { + semiPersistSchedC-RNTI C-RNTI OPTIONAL, -- Need OR + sps-ConfigDL SPS-ConfigDL OPTIONAL, -- Need ON + sps-ConfigUL SPS-ConfigUL OPTIONAL -- Need ON +} + +SPS-Config-v1430 ::= SEQUENCE { + ul-SPS-V-RNTI-r14 C-RNTI OPTIONAL, -- Need OR + sl-SPS-V-RNTI-r14 C-RNTI OPTIONAL, -- Need OR + sps-ConfigUL-ToAddModList-r14 SPS-ConfigUL-ToAddModList-r14 OPTIONAL, -- Need ON + sps-ConfigUL-ToReleaseList-r14 SPS-ConfigUL-ToReleaseList-r14 OPTIONAL, -- Need ON + sps-ConfigSL-ToAddModList-r14 SPS-ConfigSL-ToAddModList-r14 OPTIONAL, -- Need ON + sps-ConfigSL-ToReleaseList-r14 SPS-ConfigSL-ToReleaseList-r14 OPTIONAL -- Need ON +} + +SPS-ConfigUL-ToAddModList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigUL + +SPS-ConfigUL-ToReleaseList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigIndex-r14 + +SPS-ConfigSL-ToAddModList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigSL-r14 + +SPS-ConfigSL-ToReleaseList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigIndex-r14 + +SPS-ConfigDL ::= CHOICE{ + release NULL, + setup SEQUENCE { + semiPersistSchedIntervalDL ENUMERATED { + sf10, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, spare6, + spare5, spare4, spare3, spare2, + spare1}, + numberOfConfSPS-Processes INTEGER (1..8), + n1PUCCH-AN-PersistentList N1PUCCH-AN-PersistentList, + ..., + [[ twoAntennaPortActivated-r10 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-PersistentListP1-r10 N1PUCCH-AN-PersistentList + } + } OPTIONAL -- Need ON + ]] + } +} + +SPS-ConfigUL ::= CHOICE { + release NULL, + setup SEQUENCE { + semiPersistSchedIntervalUL ENUMERATED { + sf10, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, sf1-v1430, + sf2-v1430, sf3-v1430, sf4-v1430, sf5-v1430, + spare1}, + implicitReleaseAfter ENUMERATED {e2, e3, e4, e8}, + p0-Persistent SEQUENCE { + p0-NominalPUSCH-Persistent INTEGER (-126..24), + p0-UE-PUSCH-Persistent INTEGER (-8..7) + } OPTIONAL, -- Need OP + twoIntervalsConfig ENUMERATED {true} OPTIONAL, -- Cond TDD + ..., + [[ p0-PersistentSubframeSet2-r12 CHOICE { + release NULL, + setup SEQUENCE { + p0-NominalPUSCH-PersistentSubframeSet2-r12 INTEGER (-126..24), + p0-UE-PUSCH-PersistentSubframeSet2-r12 INTEGER (-8..7) + } + } OPTIONAL -- Need ON + ]], + [[ numberOfConfUlSPS-Processes-r13 INTEGER (1..8) OPTIONAL -- Need OR + ]], + [[ fixedRV-NonAdaptive-r14 ENUMERATED {true} OPTIONAL, -- Need OR + sps-ConfigIndex-r14 SPS-ConfigIndex-r14 OPTIONAL, -- Need OR + semiPersistSchedIntervalUL-v1430 ENUMERATED { + sf50, sf100, sf200, sf300, sf400, sf500, + sf600, sf700, sf800, sf900, sf1000, spare5, + spare4, spare3, spare2, spare1} OPTIONAL -- Need OR + + ]] + } +} + +SPS-ConfigSL-r14 ::= SEQUENCE { + sps-ConfigIndex-r14 SPS-ConfigIndex-r14, + semiPersistSchedIntervalSL-r14 ENUMERATED { + sf20, sf50, sf100, sf200, sf300, sf400, + sf500, sf600, sf700, sf800, sf900, sf1000, + spare4, spare3, spare2, spare1} +} + +SPS-ConfigIndex-r14 ::= INTEGER (1..maxConfigSPS-r14) + +N1PUCCH-AN-PersistentList ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + + +SRS-TPC-PDCCH-Config-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + srs-TPC-RNTI-r14 BIT STRING (SIZE (16)), + startingBitOfFormat3B-r14 INTEGER (0..31), fieldTypeFormat3B-r14 INTEGER (1..4), + srs-CC-SetIndexlist-r14 SEQUENCE (SIZE(1..4)) OF SRS-CC-SetIndex-r14 OPTIONAL -- Cond SRS-Trigger-TypeA + + } +} + +SRS-CC-SetIndex-r14 ::= SEQUENCE { + cc-SetIndex-r14 INTEGER (0..3), + cc-IndexInOneCC-Set-r14 INTEGER (0..7) +} + + +TDD-Config ::= SEQUENCE { + subframeAssignment ENUMERATED { + sa0, sa1, sa2, sa3, sa4, sa5, sa6}, + specialSubframePatterns ENUMERATED { + ssp0, ssp1, ssp2, ssp3, ssp4,ssp5, ssp6, ssp7, + ssp8} +} + +TDD-Config-v1130 ::= SEQUENCE { + specialSubframePatterns-v1130 ENUMERATED {ssp7,ssp9} +} + +TDD-Config-v1430 ::= SEQUENCE { + specialSubframePatterns-v1430 ENUMERATED {ssp10} +} + +TDD-Config-v1450 ::= SEQUENCE { + specialSubframePatterns-v1450 ENUMERATED {ssp10-CRS-LessDwPTS} +} + +TDD-ConfigSL-r12 ::= SEQUENCE { + subframeAssignmentSL-r12 ENUMERATED { + none, sa0, sa1, sa2, sa3, sa4, sa5, sa6} +} + +SubframeAssignment-r15 ::= ENUMERATED {sa0, sa1, sa2, sa3, sa4, sa5, sa6} + + +TimeAlignmentTimer ::= ENUMERATED { + sf500, sf750, sf1280, sf1920, sf2560, sf5120, + sf10240, infinity} + +TPC-PDCCH-Config ::= CHOICE { + release NULL, + setup SEQUENCE { + tpc-RNTI BIT STRING (SIZE (16)), + tpc-Index TPC-Index + } +} + +TPC-PDCCH-ConfigSCell-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + tpc-Index-PUCCH-SCell-r13 TPC-Index + } +} + +TPC-Index ::= CHOICE { + indexOfFormat3 INTEGER (1..15), + indexOfFormat3A INTEGER (1..31) +} + + +TunnelConfigLWIP-r13 ::= SEQUENCE { + ip-Address-r13 IP-Address-r13, + ike-Identity-r13 IKE-Identity-r13, + ..., + [[ lwip-Counter-r13 INTEGER (0..65535) OPTIONAL -- Cond LWIP-Setup + ]] +} + +IKE-Identity-r13 ::= SEQUENCE { + idI-r13 OCTET STRING +} + +IP-Address-r13 ::= CHOICE { + ipv4-r13 BIT STRING (SIZE (32)), + ipv6-r13 BIT STRING (SIZE (128)) +} + + +UplinkPowerControlCommon ::= SEQUENCE { + p0-NominalPUSCH INTEGER (-126..24), + alpha Alpha-r12, + p0-NominalPUCCH INTEGER (-127..-96), + deltaFList-PUCCH DeltaFList-PUCCH, + deltaPreambleMsg3 INTEGER (-1..6) +} + +UplinkPowerControlCommon-v1020 ::= SEQUENCE { + deltaF-PUCCH-Format3-r10 ENUMERATED {deltaF-1, deltaF0, deltaF1, deltaF2, + deltaF3, deltaF4, deltaF5, deltaF6}, + deltaF-PUCCH-Format1bCS-r10 ENUMERATED {deltaF1, deltaF2, spare2, spare1} +} + +UplinkPowerControlCommon-v1310 ::= SEQUENCE { + deltaF-PUCCH-Format4-r13 ENUMERATED {deltaF16, deltaF15, deltaF14,deltaF13, deltaF12, + deltaF11, deltaF10, spare1} OPTIONAL, -- Need OR + deltaF-PUCCH-Format5-13 ENUMERATED { deltaF13, deltaF12, deltaF11, deltaF10, deltaF9, + deltaF8, deltaF7, spare1} OPTIONAL -- Need OR +} + +UplinkPowerControlCommonPSCell-r12 ::= SEQUENCE { +-- For uplink power control the additional/ missing fields are signalled (compared to SCell) + deltaF-PUCCH-Format3-r12 ENUMERATED {deltaF-1, deltaF0, deltaF1, deltaF2, + deltaF3, deltaF4, deltaF5, deltaF6}, + deltaF-PUCCH-Format1bCS-r12 ENUMERATED {deltaF1, deltaF2, spare2, spare1}, + p0-NominalPUCCH-r12 INTEGER (-127..-96), + deltaFList-PUCCH-r12 DeltaFList-PUCCH +} + + +UplinkPowerControlCommonSCell-r10 ::= SEQUENCE { + p0-NominalPUSCH-r10 INTEGER (-126..24), + alpha-r10 Alpha-r12 +} + +UplinkPowerControlCommonSCell-v1130 ::= SEQUENCE { + deltaPreambleMsg3-r11 INTEGER (-1..6) +} + +UplinkPowerControlCommonSCell-v1310 ::= SEQUENCE { +-- For uplink power control the additional/ missing fields are signalled (compared to SCell) + p0-NominalPUCCH INTEGER (-127..-96), + deltaFList-PUCCH DeltaFList-PUCCH, + deltaF-PUCCH-Format3-r12 ENUMERATED {deltaF-1, deltaF0, deltaF1, + deltaF2, deltaF3, deltaF4, deltaF5, + deltaF6} OPTIONAL, -- Need OR + deltaF-PUCCH-Format1bCS-r12 ENUMERATED {deltaF1, deltaF2, + spare2, spare1} OPTIONAL, -- Need OR + deltaF-PUCCH-Format4-r13 ENUMERATED {deltaF16, deltaF15, deltaF14, + deltaF13, deltaF12, deltaF11, deltaF10, + spare1} OPTIONAL, -- Need OR + deltaF-PUCCH-Format5-13 ENUMERATED { deltaF13, deltaF12, deltaF11, + deltaF10, deltaF9, deltaF8, deltaF7, + spare1} OPTIONAL -- Need OR +} +UplinkPowerControlCommonPUSCH-LessCell-v1430 ::= SEQUENCE { + p0-Nominal-PeriodicSRS-r14 INTEGER (-126..24) OPTIONAL, -- Need OR + p0-Nominal-AperiodicSRS-r14 INTEGER (-126..24) OPTIONAL, -- Need OR + alpha-SRS-r14 Alpha-r12 OPTIONAL -- Need OR +} + +UplinkPowerControlDedicated ::= SEQUENCE { + p0-UE-PUSCH INTEGER (-8..7), + deltaMCS-Enabled ENUMERATED {en0, en1}, + accumulationEnabled BOOLEAN, + p0-UE-PUCCH INTEGER (-8..7), + pSRS-Offset INTEGER (0..15), + filterCoefficient FilterCoefficient DEFAULT fc4 +} + +UplinkPowerControlDedicated-v1020 ::= SEQUENCE { + deltaTxD-OffsetListPUCCH-r10 DeltaTxD-OffsetListPUCCH-r10 OPTIONAL, -- Need OR + pSRS-OffsetAp-r10 INTEGER (0..15) OPTIONAL -- Need OR +} + +UplinkPowerControlDedicated-v1130 ::= SEQUENCE { + pSRS-Offset-v1130 INTEGER (16..31) OPTIONAL, -- Need OR + pSRS-OffsetAp-v1130 INTEGER (16..31) OPTIONAL, -- Need OR + deltaTxD-OffsetListPUCCH-v1130 DeltaTxD-OffsetListPUCCH-v1130 OPTIONAL -- Need OR +} + +UplinkPowerControlDedicated-v1250 ::= SEQUENCE { + set2PowerControlParameter CHOICE { + release NULL, + setup SEQUENCE { + tpc-SubframeSet-r12 BIT STRING (SIZE(10)), + p0-NominalPUSCH-SubframeSet2-r12 INTEGER (-126..24), + alpha-SubframeSet2-r12 Alpha-r12, + p0-UE-PUSCH-SubframeSet2-r12 INTEGER (-8..7) + } + } +} + +UplinkPUSCH-LessPowerControlDedicated-v1430 ::= SEQUENCE { + p0-UE-PeriodicSRS-r14 INTEGER (-8..7) OPTIONAL, -- Need OR + p0-UE-AperiodicSRS-r14 INTEGER (-8..7) OPTIONAL, -- Need OR + accumulationEnabled-r14 BOOLEAN +} + +UplinkPowerControlDedicatedSCell-r10 ::= SEQUENCE { + p0-UE-PUSCH-r10 INTEGER (-8..7), + deltaMCS-Enabled-r10 ENUMERATED {en0, en1}, + accumulationEnabled-r10 BOOLEAN, + pSRS-Offset-r10 INTEGER (0..15), + pSRS-OffsetAp-r10 INTEGER (0..15) OPTIONAL, -- Need OR + filterCoefficient-r10 FilterCoefficient DEFAULT fc4, + pathlossReferenceLinking-r10 ENUMERATED {pCell, sCell} +} + +UplinkPowerControlDedicatedSCell-v1310 ::= SEQUENCE { +--Release 8 + p0-UE-PUCCH INTEGER (-8..7), +--Release 10 + deltaTxD-OffsetListPUCCH-r10 DeltaTxD-OffsetListPUCCH-r10 OPTIONAL -- Need OR +} + +Alpha-r12 ::= ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1} + +DeltaFList-PUCCH ::= SEQUENCE { + deltaF-PUCCH-Format1 ENUMERATED {deltaF-2, deltaF0, deltaF2}, + deltaF-PUCCH-Format1b ENUMERATED {deltaF1, deltaF3, deltaF5}, + deltaF-PUCCH-Format2 ENUMERATED {deltaF-2, deltaF0, deltaF1, deltaF2}, + deltaF-PUCCH-Format2a ENUMERATED {deltaF-2, deltaF0, deltaF2}, + deltaF-PUCCH-Format2b ENUMERATED {deltaF-2, deltaF0, deltaF2} +} + +DeltaTxD-OffsetListPUCCH-r10 ::= SEQUENCE { + deltaTxD-OffsetPUCCH-Format1-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format1a1b-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format22a2b-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format3-r10 ENUMERATED {dB0, dB-2}, + ... + +} + +DeltaTxD-OffsetListPUCCH-v1130 ::= SEQUENCE { + deltaTxD-OffsetPUCCH-Format1bCS-r11 ENUMERATED {dB0, dB-1} +} + + +WLAN-Id-List-r13 ::= SEQUENCE (SIZE (1..maxWLAN-Id-r13)) OF WLAN-Identifiers-r12 + + +WLAN-MobilityConfig-r13 ::= SEQUENCE { + wlan-ToReleaseList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + wlan-ToAddList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + associationTimer-r13 ENUMERATED {s10, s30, + s60, s120, s240} OPTIONAL, -- Need OR + successReportRequested-r13 ENUMERATED {true} OPTIONAL, -- Need OR + ..., + [[ wlan-SuspendConfig-r14 WLAN-SuspendConfig-r14 OPTIONAL -- Need ON + ]] +} + + +NextHopChainingCount ::= INTEGER (0..7) + + +SecurityAlgorithmConfig ::= SEQUENCE { + cipheringAlgorithm CipheringAlgorithm-r12, + integrityProtAlgorithm ENUMERATED { + eia0-v920, eia1, eia2, eia3-v1130, spare4, spare3, + spare2, spare1, ...} +} + +CipheringAlgorithm-r12 ::= ENUMERATED { + eea0, eea1, eea2, eea3-v1130, spare4, spare3, + spare2, spare1, ...} + + +ShortMAC-I ::= BIT STRING (SIZE (16)) + + +AdditionalSpectrumEmission ::= INTEGER (1..32) + +AdditionalSpectrumEmission-v10l0 ::= INTEGER (33..288) + + +ARFCN-ValueCDMA2000 ::= INTEGER (0..2047) + + +ARFCN-ValueEUTRA ::= INTEGER (0..maxEARFCN) + +ARFCN-ValueEUTRA-v9e0 ::= INTEGER (maxEARFCN-Plus1..maxEARFCN2) + +ARFCN-ValueEUTRA-r9 ::= INTEGER (0..maxEARFCN2) + + +ARFCN-ValueGERAN ::= INTEGER (0..1023) + + +ARFCN-ValueNR-r15 ::= INTEGER (1.. maxARFCN-NR-r15) + + +ARFCN-ValueUTRA ::= INTEGER (0..16383) + + +BandclassCDMA2000 ::= ENUMERATED { + bc0, bc1, bc2, bc3, bc4, bc5, bc6, bc7, bc8, + bc9, bc10, bc11, bc12, bc13, bc14, bc15, bc16, + bc17, bc18-v9a0, bc19-v9a0, bc20-v9a0, bc21-v9a0, + spare10, spare9, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1, ...} + + +BandIndicatorGERAN ::= ENUMERATED {dcs1800, pcs1900} + + +CarrierFreqCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + arfcn ARFCN-ValueCDMA2000 +} + + +CarrierFreqGERAN ::= SEQUENCE { + arfcn ARFCN-ValueGERAN, + bandIndicator BandIndicatorGERAN +} + + +CarrierFreqsGERAN ::= SEQUENCE { + startingARFCN ARFCN-ValueGERAN, + bandIndicator BandIndicatorGERAN, + followingARFCNs CHOICE { + explicitListOfARFCNs ExplicitListOfARFCNs, + equallySpacedARFCNs SEQUENCE { + arfcn-Spacing INTEGER (1..8), + numberOfFollowingARFCNs INTEGER (0..31) + }, + variableBitMapOfARFCNs OCTET STRING (SIZE (1..16)) + } +} + +ExplicitListOfARFCNs ::= SEQUENCE (SIZE (0..31)) OF ARFCN-ValueGERAN + + +CarrierFreqListMBMS-r11 ::= SEQUENCE (SIZE (1..maxFreqMBMS-r11)) OF ARFCN-ValueEUTRA-r9 + + +CDMA2000-Type ::= ENUMERATED {type1XRTT, typeHRPD} + + +CellIdentity ::= BIT STRING (SIZE (28)) + + +CellIndexList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellIndex + +CellIndex ::= INTEGER (1..maxCellMeas) + + +CellReselectionPriority ::= INTEGER (0..7) + + +CellSelectionInfoCE-r13 ::= SEQUENCE { + q-RxLevMinCE-r13 Q-RxLevMin, + q-QualMinRSRQ-CE-r13 Q-QualMin-r9 OPTIONAL -- Need OR +} + + +CellSelectionInfoCE1-r13 ::= SEQUENCE { + q-RxLevMinCE1-r13 Q-RxLevMin, + q-QualMinRSRQ-CE1-r13 Q-QualMin-r9 OPTIONAL -- Need OR +} + +CellSelectionInfoCE1-v1360 ::= SEQUENCE { + delta-RxLevMinCE1-v1360 INTEGER (-8..-1) +} + +CellReselectionSubPriority-r13 ::= ENUMERATED {oDot2, oDot4, oDot6, oDot8} + + +CSFB-RegistrationParam1XRTT ::= SEQUENCE { + sid BIT STRING (SIZE (15)), + nid BIT STRING (SIZE (16)), + multipleSID BOOLEAN, + multipleNID BOOLEAN, + homeReg BOOLEAN, + foreignSIDReg BOOLEAN, + foreignNIDReg BOOLEAN, + parameterReg BOOLEAN, + powerUpReg BOOLEAN, + registrationPeriod BIT STRING (SIZE (7)), + registrationZone BIT STRING (SIZE (12)), + totalZone BIT STRING (SIZE (3)), + zoneTimer BIT STRING (SIZE (3)) +} + +CSFB-RegistrationParam1XRTT-v920 ::= SEQUENCE { + powerDownReg-r9 ENUMERATED {true} +} + + +CellGlobalIdEUTRA ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellIdentity CellIdentity +} + + +CellGlobalIdUTRA ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellIdentity BIT STRING (SIZE (28)) +} + + +CellGlobalIdGERAN ::= SEQUENCE { + plmn-Identity PLMN-Identity, + locationAreaCode BIT STRING (SIZE (16)), + cellIdentity BIT STRING (SIZE (16)) +} + + +CellGlobalIdCDMA2000 ::= CHOICE { + cellGlobalId1XRTT BIT STRING (SIZE (47)), + cellGlobalIdHRPD BIT STRING (SIZE (128)) +} + + +CellSelectionInfoNFreq-r13 ::= SEQUENCE { + -- Cell selection information as in SIB1 + q-RxLevMin-r13 Q-RxLevMin, + q-RxLevMinOffset INTEGER (1..8) OPTIONAL, -- Need OP + -- Cell re-selection information as in SIB3 + q-Hyst-r13 ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + q-RxLevMinReselection-r13 Q-RxLevMin, + t-ReselectionEUTRA-r13 T-Reselection +} + + +CSG-Identity ::= BIT STRING (SIZE (27)) + + +FreqBandIndicator ::= INTEGER (1..maxFBI) + +FreqBandIndicator-v9e0 ::= INTEGER (maxFBI-Plus1..maxFBI2) + +FreqBandIndicator-r11 ::= INTEGER (1..maxFBI2) + + +MobilityControlInfo ::= SEQUENCE { + targetPhysCellId PhysCellId, + carrierFreq CarrierFreqEUTRA OPTIONAL, -- Cond HO-toEUTRA2 + carrierBandwidth CarrierBandwidthEUTRA OPTIONAL, -- Cond HO-toEUTRA + additionalSpectrumEmission AdditionalSpectrumEmission OPTIONAL, -- Cond HO-toEUTRA + t304 ENUMERATED { + ms50, ms100, ms150, ms200, ms500, ms1000, + ms2000, ms10000-v1310}, + newUE-Identity C-RNTI, + radioResourceConfigCommon RadioResourceConfigCommon, + rach-ConfigDedicated RACH-ConfigDedicated OPTIONAL, -- Need OP + ..., + [[ carrierFreq-v9e0 CarrierFreqEUTRA-v9e0 OPTIONAL -- Need ON + ]], + [[ drb-ContinueROHC-r11 ENUMERATED {true} OPTIONAL -- Cond HO + ]], + [[ mobilityControlInfoV2X-r14 MobilityControlInfoV2X-r14 OPTIONAL, -- Need ON + handoverWithoutWT-Change-r14 ENUMERATED {keepLWA-Config, sendEndMarker} OPTIONAL, -- Cond HO + makeBeforeBreak-r14 ENUMERATED {true} OPTIONAL, -- Need OR + rach-Skip-r14 RACH-Skip-r14 OPTIONAL, -- Need OR + sameSFN-Indication-r14 ENUMERATED {true} OPTIONAL -- Cond HO-SFNsynced + ]], + [[ + mib-RepetitionStatus-r14 BOOLEAN OPTIONAL, -- Need OR + schedulingInfoSIB1-BR-r14 INTEGER (0..31) OPTIONAL -- Cond HO-SFNsynced + ]] +} + +MobilityControlInfo-v10l0 ::= SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 OPTIONAL -- Need ON +} + +MobilityControlInfoSCG-r12 ::= SEQUENCE { + t307-r12 ENUMERATED { + ms50, ms100, ms150, ms200, ms500, ms1000, + ms2000, spare1}, + ue-IdentitySCG-r12 C-RNTI OPTIONAL, -- Cond SCGEst, + rach-ConfigDedicated-r12 RACH-ConfigDedicated OPTIONAL, -- Need OP + cipheringAlgorithmSCG-r12 CipheringAlgorithm-r12 OPTIONAL, -- Need ON + ..., + [[ makeBeforeBreakSCG-r14 ENUMERATED {true} OPTIONAL, -- Need OR + rach-SkipSCG-r14 RACH-Skip-r14 OPTIONAL -- Need OR + ]] +} + +MobilityControlInfoV2X-r14 ::= SEQUENCE { + v2x-CommTxPoolExceptional-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-CommRxPool-r14 SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommSyncConfig-r14 SL-SyncConfigListV2X-r14 OPTIONAL, -- Need OR + cbr-MobilityTxConfigList-r14 SL-CBR-CommonTxConfigList-r14 OPTIONAL -- Need OR +} + +CarrierBandwidthEUTRA ::= SEQUENCE { + dl-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100, spare10, + spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1}, + ul-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100, spare10, + spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1} OPTIONAL -- Need OP +} + +CarrierFreqEUTRA ::= SEQUENCE { + dl-CarrierFreq ARFCN-ValueEUTRA, + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL -- Cond FDD +} + +CarrierFreqEUTRA-v9e0 ::= SEQUENCE { + dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9, + ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9 OPTIONAL -- Cond FDD +} + +RACH-Skip-r14 ::= SEQUENCE { + targetTA-r14 CHOICE { + ta0-r14 NULL, + mcg-PTAG-r14 NULL, + scg-PTAG-r14 NULL, + mcg-STAG-r14 STAG-Id-r11, + scg-STAG-r14 STAG-Id-r11 + }, + ul-ConfigInfo-r14 SEQUENCE { + numberOfConfUL-Processes-r14 INTEGER (1..8), + ul-SchedInterval-r14 ENUMERATED {sf2, sf5, sf10}, + ul-StartSubframe-r14 INTEGER (0..9), + ul-Grant-r14 BIT STRING (SIZE (16)) + } OPTIONAL -- Need OR +} + + +MobilityParametersCDMA2000 ::= OCTET STRING + + +MobilityStateParameters ::= SEQUENCE { + t-Evaluation ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + t-HystNormal ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + n-CellChangeMedium INTEGER (1..16), + n-CellChangeHigh INTEGER (1..16) +} + + +MultiBandInfoList ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator + +MultiBandInfoList-v9e0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF MultiBandInfo-v9e0 + +MultiBandInfoList-v10j0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF NS-PmaxList-r10 + +MultiBandInfoList-v10l0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF NS-PmaxList-v10l0 + +MultiBandInfoList-r11 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-r11 + +MultiBandInfo-v9e0 ::= SEQUENCE { + freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL -- Need OP +} + + +NS-PmaxList-r10 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-r10 + +NS-PmaxList-v10l0 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-v10l0 + +NS-PmaxValue-r10 ::= SEQUENCE { + additionalPmax-r10 P-Max OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission +} + +NS-PmaxValue-v10l0 ::= SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 OPTIONAL -- Need OP +} + + +PhysCellId ::= INTEGER (0..503) + + +PhysCellIdRange ::= SEQUENCE { + start PhysCellId, + range ENUMERATED { + n4, n8, n12, n16, n24, n32, n48, n64, n84, + n96, n128, n168, n252, n504, spare2, + spare1} OPTIONAL -- Need OP +} + + +PhysCellIdRangeUTRA-FDDList-r9::= SEQUENCE (SIZE (1..maxPhysCellIdRange-r9)) OF PhysCellIdRangeUTRA-FDD-r9 + +PhysCellIdRangeUTRA-FDD-r9 ::= SEQUENCE { + start-r9 PhysCellIdUTRA-FDD, + range-r9 INTEGER (2..512) OPTIONAL -- Need OP +} + + +PhysCellIdCDMA2000 ::= INTEGER (0..maxPNOffset) + + +PhysCellIdGERAN ::= SEQUENCE { + networkColourCode BIT STRING (SIZE (3)), + baseStationColourCode BIT STRING (SIZE (3)) +} + + +PhysCellIdNR-r15 ::= INTEGER (0.. 1007) + + +PhysCellIdUTRA-FDD ::= INTEGER (0..511) + + +PhysCellIdUTRA-TDD ::= INTEGER (0..127) + + +PLMN-Identity ::= SEQUENCE { + mcc MCC OPTIONAL, -- Cond MCC + mnc MNC +} + +MCC ::= SEQUENCE (SIZE (3)) OF + MCC-MNC-Digit + +MNC ::= SEQUENCE (SIZE (2..3)) OF + MCC-MNC-Digit + +MCC-MNC-Digit ::= INTEGER (0..9) + + + +PLMN-IdentityList3-r11 ::= SEQUENCE (SIZE (1..16)) OF PLMN-Identity + + +PreRegistrationInfoHRPD ::= SEQUENCE { + preRegistrationAllowed BOOLEAN, + preRegistrationZoneId PreRegistrationZoneIdHRPD OPTIONAL, -- cond PreRegAllowed + secondaryPreRegistrationZoneIdList SecondaryPreRegistrationZoneIdListHRPD OPTIONAL -- Need OR +} + +SecondaryPreRegistrationZoneIdListHRPD ::= SEQUENCE (SIZE (1..2)) OF PreRegistrationZoneIdHRPD + +PreRegistrationZoneIdHRPD ::= INTEGER (0..255) + + +Q-QualMin-r9 ::= INTEGER (-34..-3) + + +Q-RxLevMin ::= INTEGER (-70..-22) + + +Q-OffsetRange ::= ENUMERATED { + dB-24, dB-22, dB-20, dB-18, dB-16, dB-14, + dB-12, dB-10, dB-8, dB-6, dB-5, dB-4, dB-3, + dB-2, dB-1, dB0, dB1, dB2, dB3, dB4, dB5, + dB6, dB8, dB10, dB12, dB14, dB16, dB18, + dB20, dB22, dB24} + + +Q-OffsetRangeInterRAT ::= INTEGER (-15..15) + + +ReselectionThreshold ::= INTEGER (0..31) + + +ReselectionThresholdQ-r9 ::= INTEGER (0..31) + + +SCellIndex-r10 ::= INTEGER (1..7) +SCellIndex-r13 ::= INTEGER (1..31) + + +ServCellIndex-r10 ::= INTEGER (0..7) +ServCellIndex-r13 ::= INTEGER (0..31) + + +SpeedStateScaleFactors ::= SEQUENCE { + sf-Medium ENUMERATED {oDot25, oDot5, oDot75, lDot0}, + sf-High ENUMERATED {oDot25, oDot5, oDot75, lDot0} +} + +SystemInfoListGERAN ::= SEQUENCE (SIZE (1..maxGERAN-SI)) OF + OCTET STRING (SIZE (1..23)) + + +SystemTimeInfoCDMA2000 ::= SEQUENCE { + cdma-EUTRA-Synchronisation BOOLEAN, + cdma-SystemTime CHOICE { + synchronousSystemTime BIT STRING (SIZE (39)), + asynchronousSystemTime BIT STRING (SIZE (49)) + } +} + + +ThresholdNR-r15 ::= CHOICE{ + nr-RSRP-r15 RSRP-RangeNR-r15, + nr-RSRQ-r15 RSRQ-RangeNR-r15, + nr-SINR-r15 RS-SINR-RangeNR-r15 +} + +ThresholdListNR-r15 ::= SEQUENCE{ + nr-RSRP-r15 RSRP-RangeNR-r15 OPTIONAL, + nr-RSRQ-r15 RSRQ-RangeNR-r15 OPTIONAL, + nr-SINR-r15 RS-SINR-RangeNR-r15 OPTIONAL +} + + +TrackingAreaCode ::= BIT STRING (SIZE (16)) + + +T-Reselection ::= INTEGER (0..7) + + +T-ReselectionEUTRA-CE-r13 ::= INTEGER (0..15) + + +AllowedMeasBandwidth ::= ENUMERATED {mbw6, mbw15, mbw25, mbw50, mbw75, mbw100} + + +CSI-RSRP-Range-r12 ::= INTEGER(0..97) + + +Hysteresis ::= INTEGER (0..30) + + +LocationInfo-r10 ::= SEQUENCE { + locationCoordinates-r10 CHOICE { + ellipsoid-Point-r10 OCTET STRING, + ellipsoidPointWithAltitude-r10 OCTET STRING, + ..., + ellipsoidPointWithUncertaintyCircle-r11 OCTET STRING, + ellipsoidPointWithUncertaintyEllipse-r11 OCTET STRING, + ellipsoidPointWithAltitudeAndUncertaintyEllipsoid-r11 OCTET STRING, + ellipsoidArc-r11 OCTET STRING, + polygon-r11 OCTET STRING + }, + horizontalVelocity-r10 OCTET STRING OPTIONAL, + gnss-TOD-msec-r10 OCTET STRING OPTIONAL, + ... +} + + +MBSFN-RSRQ-Range-r12 ::= INTEGER(0..31) + +MeasConfig ::= SEQUENCE { + -- Measurement objects + measObjectToRemoveList MeasObjectToRemoveList OPTIONAL, -- Need ON + measObjectToAddModList MeasObjectToAddModList OPTIONAL, -- Need ON + -- Reporting configurations + reportConfigToRemoveList ReportConfigToRemoveList OPTIONAL, -- Need ON + reportConfigToAddModList ReportConfigToAddModList OPTIONAL, -- Need ON + -- Measurement identities + measIdToRemoveList MeasIdToRemoveList OPTIONAL, -- Need ON + measIdToAddModList MeasIdToAddModList OPTIONAL, -- Need ON + -- Other parameters + quantityConfig QuantityConfig OPTIONAL, -- Need ON + measGapConfig MeasGapConfig OPTIONAL, -- Need ON + s-Measure RSRP-Range OPTIONAL, -- Need ON + preRegistrationInfoHRPD PreRegistrationInfoHRPD OPTIONAL, -- Need OP + speedStatePars CHOICE { + release NULL, + setup SEQUENCE { + mobilityStateParameters MobilityStateParameters, + timeToTrigger-SF SpeedStateScaleFactors + } + } OPTIONAL, -- Need ON + ..., + [[ measObjectToAddModList-v9e0 MeasObjectToAddModList-v9e0 OPTIONAL -- Need ON + ]], + [[ allowInterruptions-r11 BOOLEAN OPTIONAL -- Need ON + ]], + [[ measScaleFactor-r12 CHOICE { + release NULL, + setup MeasScaleFactor-r12 + } OPTIONAL, -- Need ON + measIdToRemoveListExt-r12 MeasIdToRemoveListExt-r12 OPTIONAL, -- Need ON + measIdToAddModListExt-r12 MeasIdToAddModListExt-r12 OPTIONAL, -- Need ON + measRSRQ-OnAllSymbols-r12 BOOLEAN OPTIONAL -- Need ON + ]], + [[ + measObjectToRemoveListExt-r13 MeasObjectToRemoveListExt-r13 OPTIONAL, -- Need ON + measObjectToAddModListExt-r13 MeasObjectToAddModListExt-r13 OPTIONAL, -- Need ON + measIdToAddModList-v1310 MeasIdToAddModList-v1310 OPTIONAL, -- Need ON + measIdToAddModListExt-v1310 MeasIdToAddModListExt-v1310 OPTIONAL -- Need ON + ]], + [[ measGapConfigPerCC-List-r14 MeasGapConfigPerCC-List-r14 OPTIONAL, -- Need ON + measGapSharingConfig-r14 MeasGapSharingConfig-r14 OPTIONAL -- Need ON + ]], + [[ fr1-Gap ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + +MeasIdToRemoveList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId + +MeasIdToRemoveListExt-r12 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId-v1250 + +MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId + +MeasObjectToRemoveListExt-r13 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId-v1310 + +ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigId + + +MeasDS-Config-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + dmtc-PeriodOffset-r12 CHOICE { + ms40-r12 INTEGER(0..39), + ms80-r12 INTEGER(0..79), + ms160-r12 INTEGER(0..159), + ... + }, + ds-OccasionDuration-r12 CHOICE { + durationFDD-r12 INTEGER(1..maxDS-Duration-r12), + durationTDD-r12 INTEGER(2..maxDS-Duration-r12) + }, + measCSI-RS-ToRemoveList-r12 MeasCSI-RS-ToRemoveList-r12 OPTIONAL, -- Need ON + measCSI-RS-ToAddModList-r12 MeasCSI-RS-ToAddModList-r12 OPTIONAL, -- Need ON + ... + } +} + +MeasCSI-RS-ToRemoveList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Id-r12 + +MeasCSI-RS-ToAddModList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Config-r12 + +MeasCSI-RS-Id-r12 ::= INTEGER (1..maxCSI-RS-Meas-r12) + +MeasCSI-RS-Config-r12 ::= SEQUENCE { + measCSI-RS-Id-r12 MeasCSI-RS-Id-r12, + physCellId-r12 INTEGER (0..503), + scramblingIdentity-r12 INTEGER (0..503), + resourceConfig-r12 INTEGER (0..31), + subframeOffset-r12 INTEGER (0..4), + csi-RS-IndividualOffset-r12 Q-OffsetRange, + ... +} + + +MeasGapConfig ::= CHOICE { + release NULL, + setup SEQUENCE { + gapOffset CHOICE { + gp0 INTEGER (0..39), + gp1 INTEGER (0..79), + + ..., + gp2-r14 INTEGER (0..39), + gp3-r14 INTEGER (0..79), + gp-ncsg0-r14 INTEGER (0..39), + gp-ncsg1-r14 INTEGER (0..79), + gp-ncsg2-r14 INTEGER (0..39), + gp-ncsg3-r14 INTEGER (0..79), + gp-nonUniform1-r14 INTEGER (0..1279), + gp-nonUniform2-r14 INTEGER (0..2559), + gp-nonUniform3-r14 INTEGER (0..5119), + gp-nonUniform4-r14 INTEGER (0..10239), + gp4-r15 INTEGER (0..19), + gp5-r15 INTEGER (0..159), + gp6-r15 INTEGER (0..19), + gp7-r15 INTEGER (0..39), + gp8-r15 INTEGER (0..79), + gp9-r15 INTEGER (0..159), + gp10-r15 INTEGER (0..19), + gp11-r15 INTEGER (0..159) + } + } +} + + + +MeasGapConfigPerCC-List-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + measGapConfigToRemoveList-r14 MeasGapConfigToRemoveList-r14 OPTIONAL, -- Need ON + measGapConfigToAddModList-r14 MeasGapConfigToAddModList-r14 OPTIONAL -- Need ON + } +} + +MeasGapConfigToRemoveList-r14 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF ServCellIndex-r13 + +MeasGapConfigToAddModList-r14 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasGapConfigPerCC-r14 + +MeasGapConfigPerCC-r14 ::= SEQUENCE { + servCellId-r14 ServCellIndex-r13, + measGapConfigCC-r14 MeasGapConfig +} + + +MeasGapSharingConfig-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + measGapSharingScheme-r14 ENUMERATED {scheme00, scheme01, scheme10, scheme11} + } +} + + +MeasId ::= INTEGER (1..maxMeasId) + +MeasId-v1250 ::= INTEGER (maxMeasId-Plus1..maxMeasId-r12) + + +MeasIdToAddModList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod + +MeasIdToAddModList-v1310 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod-v1310 + +MeasIdToAddModListExt-r12 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddModExt-r12 + +MeasIdToAddModListExt-v1310 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod-v1310 + +MeasIdToAddMod ::= SEQUENCE { + measId MeasId, + measObjectId MeasObjectId, + reportConfigId ReportConfigId +} + +MeasIdToAddModExt-r12 ::= SEQUENCE { + measId-v1250 MeasId-v1250, + measObjectId-r12 MeasObjectId, + reportConfigId-r12 ReportConfigId +} + +MeasIdToAddMod-v1310 ::= SEQUENCE { + measObjectId-v1310 MeasObjectId-v1310 OPTIONAL +} + + +MeasObjectCDMA2000 ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + carrierFreq CarrierFreqCDMA2000, + searchWindowSize INTEGER (0..15) OPTIONAL, -- Need ON + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CellsToAddModListCDMA2000 OPTIONAL, -- Need ON + cellForWhichToReportCGI PhysCellIdCDMA2000 OPTIONAL, -- Need ON + ... +} + +CellsToAddModListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModCDMA2000 + +CellsToAddModCDMA2000 ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdCDMA2000 +} + + +MeasObjectEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + allowedMeasBandwidth AllowedMeasBandwidth, + presenceAntennaPort1 PresenceAntennaPort1, + neighCellConfig NeighCellConfig, + offsetFreq Q-OffsetRange DEFAULT dB0, + -- Cell list + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CellsToAddModList OPTIONAL, -- Need ON + -- Black list + blackCellsToRemoveList CellIndexList OPTIONAL, -- Need ON + blackCellsToAddModList BlackCellsToAddModList OPTIONAL, -- Need ON + cellForWhichToReportCGI PhysCellId OPTIONAL, -- Need ON + ..., + [[measCycleSCell-r10 MeasCycleSCell-r10 OPTIONAL, -- Need ON + measSubframePatternConfigNeigh-r10 MeasSubframePatternConfigNeigh-r10 OPTIONAL -- Need ON + ]], + [[widebandRSRQ-Meas-r11 BOOLEAN OPTIONAL -- Cond WB-RSRQ + ]], + [[ altTTT-CellsToRemoveList-r12 CellIndexList OPTIONAL, -- Need ON + altTTT-CellsToAddModList-r12 AltTTT-CellsToAddModList-r12 OPTIONAL, -- Need ON + t312-r12 CHOICE { + release NULL, + setup ENUMERATED {ms0, ms50, ms100, ms200, + ms300, ms400, ms500, ms1000} + } OPTIONAL, -- Need ON + reducedMeasPerformance-r12 BOOLEAN OPTIONAL, -- Need ON + measDS-Config-r12 MeasDS-Config-r12 OPTIONAL -- Need ON + ]], + [[ + whiteCellsToRemoveList-r13 CellIndexList OPTIONAL, -- Need ON + whiteCellsToAddModList-r13 WhiteCellsToAddModList-r13 OPTIONAL, -- Need ON + rmtc-Config-r13 RMTC-Config-r13 OPTIONAL, -- Need ON + carrierFreq-r13 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Need ON + ]], + [[ + tx-ResourcePoolToRemoveList-r14 Tx-ResourcePoolMeasList-r14 OPTIONAL, -- Need ON + tx-ResourcePoolToAddList-r14 Tx-ResourcePoolMeasList-r14 OPTIONAL, -- Need ON + fembms-MixedCarrier-r14 BOOLEAN OPTIONAL -- Need ON + ]] +} + +MeasObjectEUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +CellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddMod + +CellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellId, + cellIndividualOffset Q-OffsetRange +} + +BlackCellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF BlackCellsToAddMod + +BlackCellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellIdRange PhysCellIdRange +} + +MeasCycleSCell-r10 ::= ENUMERATED {sf160, sf256, sf320, sf512, + sf640, sf1024, sf1280, spare1} + +MeasSubframePatternConfigNeigh-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + measSubframePatternNeigh-r10 MeasSubframePattern-r10, + measSubframeCellList-r10 MeasSubframeCellList-r10 OPTIONAL -- Cond always + } +} + +MeasSubframeCellList-r10 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF PhysCellIdRange + +AltTTT-CellsToAddModList-r12 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF AltTTT-CellsToAddMod-r12 + +AltTTT-CellsToAddMod-r12 ::= SEQUENCE { + cellIndex-r12 INTEGER (1..maxCellMeas), + physCellIdRange-r12 PhysCellIdRange +} + +WhiteCellsToAddModList-r13 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF WhiteCellsToAddMod-r13 + +WhiteCellsToAddMod-r13 ::= SEQUENCE { + cellIndex-r13 INTEGER (1..maxCellMeas), + physCellIdRange-r13 PhysCellIdRange +} + +RMTC-Config-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + rmtc-Period-r13 ENUMERATED {ms40, ms80, ms160, ms320, ms640}, + rmtc-SubframeOffset-r13 INTEGER(0..639) OPTIONAL, -- Need ON + measDuration-r13 ENUMERATED {sym1, sym14, sym28, sym42, sym70}, + ... + } +} + +Tx-ResourcePoolMeasList-r14 ::= SEQUENCE (SIZE (1..maxSL-PoolToMeasure-r14)) OF SL-V2X-TxPoolReportIdentity-r14 + + +MeasObjectGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + ncc-Permitted BIT STRING(SIZE (8)) DEFAULT '11111111'B, + cellForWhichToReportCGI PhysCellIdGERAN OPTIONAL, -- Need ON + ... +} + + +MeasObjectId ::= INTEGER (1..maxObjectId) + +MeasObjectId-v1310 ::= INTEGER (maxObjectId-Plus1-r13..maxObjectId-r13) + +MeasObjectId-r13 ::= INTEGER (1..maxObjectId-r13) + + +MeasObjectNR-r15 ::= SEQUENCE { + carrierFreq-r15 ARFCN-ValueNR-r15, + rs-ConfigSSB-r15 RS-ConfigSSB-NR-r15, + threshRS-Index-r15 ThresholdListNR-r15 OPTIONAL, -- Need OR + maxRS-IndexCellQual-r15 RS-IndexNR-r15 OPTIONAL, -- Need OR + offsetFreq-r15 Q-OffsetRangeInterRAT DEFAULT 0, + blackCellsToRemoveList-r15 CellIndexList OPTIONAL, -- Need ON + blackCellsToAddModList-r15 CellsToAddModListNR-r15 OPTIONAL, -- Need ON + quantityConfigSet-r15 INTEGER (1.. maxQuantSetsNR-r15), + ... +} + +RS-ConfigSSB-NR-r15 ::= SEQUENCE { + measTimingConfig-r15 MTC-SSB-NR-r15, + + subcarrierSpacingSSB-r15 ENUMERATED {kHz15, kHz30, kHz120, kHz240}, + ... +} + +CellsToAddModListNR-r15 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModNR-r15 + +CellsToAddModNR-r15 ::= SEQUENCE { + cellIndex-r15 INTEGER (1..maxCellMeas), + physCellId-r15 PhysCellIdNR-r15 +} + +MTC-SSB-NR-r15 ::= SEQUENCE { + periodicityAndOffset-r15 CHOICE { + sf5-r15 INTEGER (0..4), + sf10-r15 INTEGER (0..9), + sf20-r15 INTEGER (0..19), + sf40-r15 INTEGER (0..39), + sf80-r15 INTEGER (0..79), + sf160-r15 INTEGER (0..159) + }, + ssb-Duration-r15 ENUMERATED {sf1, sf2, sf3, sf4, sf5 } +} + +RS-IndexNR-r15 ::= INTEGER (1.. maxRS-Index-r15) + + +MeasObjectToAddModList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod + +MeasObjectToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddModExt-r13 + +MeasObjectToAddModList-v9e0 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod-v9e0 + +MeasObjectToAddMod ::= SEQUENCE { + measObjectId MeasObjectId, + measObject CHOICE { + measObjectEUTRA MeasObjectEUTRA, + measObjectUTRA MeasObjectUTRA, + measObjectGERAN MeasObjectGERAN, + measObjectCDMA2000 MeasObjectCDMA2000, + ..., + measObjectWLAN-r13 MeasObjectWLAN-r13, + measObjectNR-r15 MeasObjectNR-r15 + } +} + +MeasObjectToAddModExt-r13 ::= SEQUENCE { + measObjectId-r13 MeasObjectId-v1310, + measObject-r13 CHOICE { + measObjectEUTRA-r13 MeasObjectEUTRA, + measObjectUTRA-r13 MeasObjectUTRA, + measObjectGERAN-r13 MeasObjectGERAN, + measObjectCDMA2000-r13 MeasObjectCDMA2000, + ..., + measObjectWLAN-v1320 MeasObjectWLAN-r13, + measObjectNR-r15 MeasObjectNR-r15 + } +} + +MeasObjectToAddMod-v9e0 ::= SEQUENCE { + measObjectEUTRA-v9e0 MeasObjectEUTRA-v9e0 OPTIONAL -- Cond eutra +} + + +MeasObjectUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CHOICE { + cellsToAddModListUTRA-FDD CellsToAddModListUTRA-FDD, + cellsToAddModListUTRA-TDD CellsToAddModListUTRA-TDD + } OPTIONAL, -- Need ON + cellForWhichToReportCGI CHOICE { + utra-FDD PhysCellIdUTRA-FDD, + utra-TDD PhysCellIdUTRA-TDD + } OPTIONAL, -- Need ON + ..., + [[ csg-allowedReportingCells-v930 CSG-AllowedReportingCells-r9 OPTIONAL -- Need ON + ]], + [[ reducedMeasPerformance-r12 BOOLEAN OPTIONAL -- Need ON + ]] +} + +CellsToAddModListUTRA-FDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-FDD + +CellsToAddModUTRA-FDD ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdUTRA-FDD +} + +CellsToAddModListUTRA-TDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-TDD + +CellsToAddModUTRA-TDD ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdUTRA-TDD +} + +CSG-AllowedReportingCells-r9 ::= SEQUENCE { + physCellIdRangeUTRA-FDDList-r9 PhysCellIdRangeUTRA-FDDList-r9 OPTIONAL -- Need OR +} + +MeasObjectWLAN-r13 ::= SEQUENCE { + carrierFreq-r13 CHOICE { + bandIndicatorListWLAN-r13 SEQUENCE (SIZE (1..maxWLAN-Bands-r13)) OF WLAN-BandIndicator-r13, + carrierInfoListWLAN-r13 SEQUENCE (SIZE (1..maxWLAN-CarrierInfo-r13)) OF WLAN-CarrierInfo-r13 + } OPTIONAL, -- Need ON + wlan-ToAddModList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + wlan-ToRemoveList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + ... +} + +WLAN-BandIndicator-r13 ::= ENUMERATED {band2dot4, band5, band60-v1430, spare5, spare4, spare3, spare2, spare1, ...} + + +MeasResults ::= SEQUENCE { + measId MeasId, + measResultPCell SEQUENCE { + rsrpResult RSRP-Range, + rsrqResult RSRQ-Range + }, + measResultNeighCells CHOICE { + measResultListEUTRA MeasResultListEUTRA, + measResultListUTRA MeasResultListUTRA, + measResultListGERAN MeasResultListGERAN, + measResultsCDMA2000 MeasResultsCDMA2000, + ..., + measResultNeighCellListNR-r15 MeasResultCellListNR-r15 + } OPTIONAL, + ..., + [[ measResultForECID-r9 MeasResultForECID-r9 OPTIONAL + ]], + [[ locationInfo-r10 LocationInfo-r10 OPTIONAL, + measResultServFreqList-r10 MeasResultServFreqList-r10 OPTIONAL + ]], + [[ measId-v1250 MeasId-v1250 OPTIONAL, + measResultPCell-v1250 RSRQ-Range-v1250 OPTIONAL, + measResultCSI-RS-List-r12 MeasResultCSI-RS-List-r12 OPTIONAL + ]], + [[ measResultForRSSI-r13 MeasResultForRSSI-r13 OPTIONAL, + measResultServFreqListExt-r13 MeasResultServFreqListExt-r13 OPTIONAL, + measResultSSTD-r13 MeasResultSSTD-r13 OPTIONAL, + measResultPCell-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL, + ul-PDCP-DelayResultList-r13 UL-PDCP-DelayResultList-r13 OPTIONAL, + measResultListWLAN-r13 MeasResultListWLAN-r13 OPTIONAL + ]], + [[ measResultPCell-v1360 RSRP-Range-v1360 OPTIONAL + ]], + [[ measResultListCBR-r14 MeasResultListCBR-r14 OPTIONAL, + measResultListWLAN-r14 MeasResultListWLAN-r14 OPTIONAL + ]], + [[ measResultServFreqListNR-r15 MeasResultServFreqListNR-r15 OPTIONAL, + measResultCellListSFTD-r15 MeasResultCellListSFTD-r15 OPTIONAL + ]] +} + +MeasResultListEUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultEUTRA + +MeasResultEUTRA ::= SEQUENCE { + physCellId PhysCellId, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdEUTRA, + trackingAreaCode TrackingAreaCode, + plmn-IdentityList PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + rsrpResult RSRP-Range OPTIONAL, + rsrqResult RSRQ-Range OPTIONAL, + ..., + [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL + ]], + [[ primaryPLMN-Suitable-r12 ENUMERATED {true} OPTIONAL, + measResult-v1250 RSRQ-Range-v1250 OPTIONAL + ]], + [[ rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL, + cgi-Info-v1310 SEQUENCE { + freqBandIndicator-r13 FreqBandIndicator-r11 OPTIONAL, + multiBandInfoList-r13 MultiBandInfoList-r11 OPTIONAL, + freqBandIndicatorPriority-r13 ENUMERATED {true} OPTIONAL + } OPTIONAL + ]], + [[ + measResult-v1360 RSRP-Range-v1360 OPTIONAL + ]] + } +} + +MeasResultServFreqListNR-r15 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultServFreqNR-r15 + +MeasResultServFreqNR-r15 ::= SEQUENCE { + carrierFreq-r15 ARFCN-ValueNR-r15, + measResultSCell-r15 MeasResultCellNR-r15 OPTIONAL, + measResultBestNeighCell-r15 MeasResultCellNR-r15 OPTIONAL, + ... +} + +MeasResultCellListNR-r15::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCellNR-r15 + +MeasResultCellNR-r15 ::= SEQUENCE { + pci-r15 PhysCellIdNR-r15, + measResultCell-r15 MeasResultNR-r15, + measResultRS-IndexList-r15 MeasResultSSB-IndexList-r15 OPTIONAL, + ... +} + +MeasResultNR-r15 ::= SEQUENCE { + rsrpResult-r15 RSRP-RangeNR-r15 OPTIONAL, + rsrqResult-r15 RSRQ-RangeNR-r15 OPTIONAL, + rs-sinr-Result-r15 RS-SINR-RangeNR-r15 OPTIONAL, + ... +} + +MeasResultSSB-IndexList-r15::= SEQUENCE (SIZE (1..maxRS-Index-r15)) OF MeasResultSSB-Index-r15 + +MeasResultSSB-Index-r15 ::= SEQUENCE { + ssb-Index-r15 RS-IndexNR-r15, + measResultSSB-Index-r15 MeasResultNR-r15 OPTIONAL, + ... +} + +MeasResultServFreqList-r10 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF MeasResultServFreq-r10 + +MeasResultServFreqListExt-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultServFreq-r13 + +MeasResultServFreq-r10 ::= SEQUENCE { + servFreqId-r10 ServCellIndex-r10, + measResultSCell-r10 SEQUENCE { + rsrpResultSCell-r10 RSRP-Range, + rsrqResultSCell-r10 RSRQ-Range + } OPTIONAL, + measResultBestNeighCell-r10 SEQUENCE { + physCellId-r10 PhysCellId, + rsrpResultNCell-r10 RSRP-Range, + rsrqResultNCell-r10 RSRQ-Range + } OPTIONAL, + ..., + [[ measResultSCell-v1250 RSRQ-Range-v1250 OPTIONAL, + measResultBestNeighCell-v1250 RSRQ-Range-v1250 OPTIONAL + ]], + [[ measResultSCell-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL, + measResultBestNeighCell-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL + ]] +} + +MeasResultServFreq-r13 ::= SEQUENCE { + servFreqId-r13 ServCellIndex-r13, + measResultSCell-r13 SEQUENCE { + rsrpResultSCell-r13 RSRP-Range, + rsrqResultSCell-r13 RSRQ-Range-r13, + rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL + } OPTIONAL, + measResultBestNeighCell-r13 SEQUENCE { + physCellId-r13 PhysCellId, + rsrpResultNCell-r13 RSRP-Range, + rsrqResultNCell-r13 RSRQ-Range-r13, + rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL + } OPTIONAL, + ..., + [[ measResultBestNeighCell-v1360 SEQUENCE { + rsrpResultNCell-v1360 RSRP-Range-v1360 + } OPTIONAL + ]] +} + +MeasResultCSI-RS-List-r12 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCSI-RS-r12 + +MeasResultCSI-RS-r12 ::= SEQUENCE { + measCSI-RS-Id-r12 MeasCSI-RS-Id-r12, + csi-RSRP-Result-r12 CSI-RSRP-Range-r12, + ... +} + +MeasResultListUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultUTRA + +MeasResultUTRA ::= SEQUENCE { + physCellId CHOICE { + fdd PhysCellIdUTRA-FDD, + tdd PhysCellIdUTRA-TDD + }, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdUTRA, + locationAreaCode BIT STRING (SIZE (16)) OPTIONAL, + routingAreaCode BIT STRING (SIZE (8)) OPTIONAL, + plmn-IdentityList PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + utra-RSCP INTEGER (-5..91) OPTIONAL, + utra-EcN0 INTEGER (0..49) OPTIONAL, + ..., + [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL + ]], + [[ primaryPLMN-Suitable-r12 ENUMERATED {true} OPTIONAL + ]] + } +} + +MeasResultListGERAN ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultGERAN + +MeasResultGERAN ::= SEQUENCE { + carrierFreq CarrierFreqGERAN, + physCellId PhysCellIdGERAN, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdGERAN, + routingAreaCode BIT STRING (SIZE (8)) OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + rssi INTEGER (0..63), + ... + } +} + +MeasResultsCDMA2000 ::= SEQUENCE { + preRegistrationStatusHRPD BOOLEAN, + measResultListCDMA2000 MeasResultListCDMA2000 +} + +MeasResultListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCDMA2000 + +MeasResultCDMA2000 ::= SEQUENCE { + physCellId PhysCellIdCDMA2000, + cgi-Info CellGlobalIdCDMA2000 OPTIONAL, + measResult SEQUENCE { + pilotPnPhase INTEGER (0..32767) OPTIONAL, + pilotStrength INTEGER (0..63), + ... + } +} + +MeasResultListWLAN-r13 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultWLAN-r13 + +MeasResultListWLAN-r14 ::= SEQUENCE (SIZE (1..maxWLAN-Id-Report-r14)) OF MeasResultWLAN-r13 + +MeasResultWLAN-r13 ::= SEQUENCE { + wlan-Identifiers-r13 WLAN-Identifiers-r12, + carrierInfoWLAN-r13 WLAN-CarrierInfo-r13 OPTIONAL, + bandWLAN-r13 WLAN-BandIndicator-r13 OPTIONAL, + rssiWLAN-r13 WLAN-RSSI-Range-r13, + availableAdmissionCapacityWLAN-r13 INTEGER (0..31250) OPTIONAL, + backhaulDL-BandwidthWLAN-r13 WLAN-backhaulRate-r12 OPTIONAL, + backhaulUL-BandwidthWLAN-r13 WLAN-backhaulRate-r12 OPTIONAL, + channelUtilizationWLAN-r13 INTEGER (0..255) OPTIONAL, + stationCountWLAN-r13 INTEGER (0..65535) OPTIONAL, + connectedWLAN-r13 ENUMERATED {true} OPTIONAL, + ... +} + +MeasResultListCBR-r14 ::= SEQUENCE (SIZE (1..maxCBR-Report-r14)) OF MeasResultCBR-r14 + +MeasResultCBR-r14 ::= SEQUENCE { + poolIdentity-r14 SL-V2X-TxPoolReportIdentity-r14, + cbr-PSSCH-r14 SL-CBR-r14, + cbr-PSCCH-r14 SL-CBR-r14 OPTIONAL +} + +MeasResultForECID-r9 ::= SEQUENCE { + ue-RxTxTimeDiffResult-r9 INTEGER (0..4095), + currentSFN-r9 BIT STRING (SIZE (10)) +} + +PLMN-IdentityList2 ::= SEQUENCE (SIZE (1..5)) OF PLMN-Identity + +AdditionalSI-Info-r9 ::= SEQUENCE { + csg-MemberStatus-r9 ENUMERATED {member} OPTIONAL, + csg-Identity-r9 CSG-Identity OPTIONAL +} +MeasResultForRSSI-r13 ::= SEQUENCE { + rssi-Result-r13 RSSI-Range-r13, + channelOccupancy-r13 INTEGER (0..100), + ... +} + +UL-PDCP-DelayResultList-r13 ::= SEQUENCE (SIZE (1..maxQCI-r13)) OF UL-PDCP-DelayResult-r13 + + +UL-PDCP-DelayResult-r13 ::= SEQUENCE { + qci-Id-r13 ENUMERATED {qci1, qci2, qci3, qci4, spare4, spare3, spare2, spare1}, + excessDelay-r13 INTEGER (0..31), + ... +} + + +MeasResultCellListSFTD-r15 ::= SEQUENCE (SIZE (1..maxCellSFTD)) OF MeasResultCellSFTD-r15 + +MeasResultCellSFTD-r15 ::= SEQUENCE { + physCellId-r15 PhysCellIdNR-r15, + sfn-OffsetResult-r15 INTEGER (0..1023), + frameBoundaryOffsetResult-r13 INTEGER (-30720..30719), + rsrpResult-r15 RSRP-RangeNR-r15 OPTIONAL +} + + +MeasResultSSTD-r13 ::= SEQUENCE { + sfn-OffsetResult-r13 INTEGER (0..1023), + frameBoundaryOffsetResult-r13 INTEGER (-5..4), + subframeBoundaryOffsetResult-r13 INTEGER (0..127) +} + + +MeasScaleFactor-r12 ::= ENUMERATED {sf-EUTRA-cf1, sf-EUTRA-cf2} + + +QuantityConfig ::= SEQUENCE { + quantityConfigEUTRA QuantityConfigEUTRA OPTIONAL, -- Need ON + quantityConfigUTRA QuantityConfigUTRA OPTIONAL, -- Need ON + quantityConfigGERAN QuantityConfigGERAN OPTIONAL, -- Need ON + quantityConfigCDMA2000 QuantityConfigCDMA2000 OPTIONAL, -- Need ON + ..., + [[ quantityConfigUTRA-v1020 QuantityConfigUTRA-v1020 OPTIONAL -- Need ON + ]], + [[ quantityConfigEUTRA-v1250 QuantityConfigEUTRA-v1250 OPTIONAL -- Need ON + ]], + [[ quantityConfigEUTRA-v1310 QuantityConfigEUTRA-v1310 OPTIONAL, -- Need ON + quantityConfigWLAN-r13 QuantityConfigWLAN-r13 OPTIONAL -- Need ON + ]], + [[ quantityConfigNRList-r15 QuantityConfigNRList-r15 OPTIONAL -- Need ON + ]] +} + +QuantityConfigEUTRA ::= SEQUENCE { + filterCoefficientRSRP FilterCoefficient DEFAULT fc4, + filterCoefficientRSRQ FilterCoefficient DEFAULT fc4 +} + +QuantityConfigEUTRA-v1250 ::= SEQUENCE { + filterCoefficientCSI-RSRP-r12 FilterCoefficient OPTIONAL -- Need OR +} + +QuantityConfigEUTRA-v1310 ::= SEQUENCE { + filterCoefficientRS-SINR-r13 FilterCoefficient DEFAULT fc4 +} + +QuantityConfigUTRA ::= SEQUENCE { + measQuantityUTRA-FDD ENUMERATED {cpich-RSCP, cpich-EcN0}, + measQuantityUTRA-TDD ENUMERATED {pccpch-RSCP}, + filterCoefficient FilterCoefficient DEFAULT fc4 +} + +QuantityConfigUTRA-v1020 ::= SEQUENCE { + filterCoefficient2-FDD-r10 FilterCoefficient DEFAULT fc4 +} + +QuantityConfigGERAN ::= SEQUENCE { + measQuantityGERAN ENUMERATED {rssi}, + filterCoefficient FilterCoefficient DEFAULT fc2 +} + +QuantityConfigCDMA2000 ::= SEQUENCE { + measQuantityCDMA2000 ENUMERATED {pilotStrength, pilotPnPhaseAndPilotStrength} +} + +QuantityConfigNRList-r15 ::= SEQUENCE (SIZE (1..maxQuantSetsNR-r15)) OF QuantityConfigNR-r15 + +QuantityConfigNR-r15 ::= SEQUENCE { + measQuantityCellNR-r15 QuantityConfigRS-NR-r15, + measQuantityRS-IndexNR-r15 QuantityConfigRS-NR-r15 OPTIONAL +} + +QuantityConfigRS-NR-r15 ::= SEQUENCE { + filterCoeff-RSRP-r15 FilterCoefficient DEFAULT fc4, + filterCoeff-RSRQ-r15 FilterCoefficient DEFAULT fc4, + filterCoefficient-SINR-r13 FilterCoefficient DEFAULT fc4 +} + +QuantityConfigWLAN-r13 ::= SEQUENCE { + measQuantityWLAN-r13 ENUMERATED {rssiWLAN}, + filterCoefficient-r13 FilterCoefficient DEFAULT fc4 +} + + +ReportConfigEUTRA ::= SEQUENCE { + triggerType CHOICE { + event SEQUENCE { + eventId CHOICE { + eventA1 SEQUENCE { + a1-Threshold ThresholdEUTRA + }, + eventA2 SEQUENCE { + a2-Threshold ThresholdEUTRA + }, + eventA3 SEQUENCE { + a3-Offset INTEGER (-30..30), + reportOnLeave BOOLEAN + }, + eventA4 SEQUENCE { + a4-Threshold ThresholdEUTRA + }, + eventA5 SEQUENCE { + a5-Threshold1 ThresholdEUTRA, + a5-Threshold2 ThresholdEUTRA + }, + ..., + eventA6-r10 SEQUENCE { + a6-Offset-r10 INTEGER (-30..30), + a6-ReportOnLeave-r10 BOOLEAN + }, + eventC1-r12 SEQUENCE { + c1-Threshold-r12 ThresholdEUTRA-v1250, + c1-ReportOnLeave-r12 BOOLEAN + }, + eventC2-r12 SEQUENCE { + c2-RefCSI-RS-r12 MeasCSI-RS-Id-r12, + c2-Offset-r12 INTEGER (-30..30), + c2-ReportOnLeave-r12 BOOLEAN + }, + eventV1-r14 SEQUENCE { + v1-Threshold-r14 SL-CBR-r14 + }, + eventV2-r14 SEQUENCE { + v2-Threshold-r14 SL-CBR-r14 + } + }, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + periodical SEQUENCE { + purpose ENUMERATED { + reportStrongestCells, reportCGI} + } + }, + triggerQuantity ENUMERATED {rsrp, rsrq}, + reportQuantity ENUMERATED {sameAsTriggerQuantity, both}, + maxReportCells INTEGER (1..maxCellReport), + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + ..., + [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL, -- Cond reportCGI + ue-RxTxTimeDiffPeriodical-r9 ENUMERATED {setup} OPTIONAL -- Need OR + ]], + [[ includeLocationInfo-r10 ENUMERATED {true} OPTIONAL, -- Need OR + reportAddNeighMeas-r10 ENUMERATED {setup} OPTIONAL -- Need OR + ]], + [[ alternativeTimeToTrigger-r12 CHOICE { + release NULL, + setup TimeToTrigger + } OPTIONAL, -- Need ON + useT312-r12 BOOLEAN OPTIONAL, -- Need ON + usePSCell-r12 BOOLEAN OPTIONAL, -- Need ON + aN-Threshold1-v1250 RSRQ-RangeConfig-r12 OPTIONAL, -- Need ON + a5-Threshold2-v1250 RSRQ-RangeConfig-r12 OPTIONAL, -- Need ON + reportStrongestCSI-RSs-r12 BOOLEAN OPTIONAL, -- Need ON + reportCRS-Meas-r12 BOOLEAN OPTIONAL, -- Need ON + triggerQuantityCSI-RS-r12 BOOLEAN OPTIONAL -- Need ON + ]], + [[ reportSSTD-Meas-r13 BOOLEAN OPTIONAL, -- Need ON + rs-sinr-Config-r13 CHOICE { + release NULL, + setup SEQUENCE { + triggerQuantity-v1310 ENUMERATED {sinr} OPTIONAL, -- Need ON + aN-Threshold1-r13 RS-SINR-Range-r13 OPTIONAL, -- Need ON + a5-Threshold2-r13 RS-SINR-Range-r13 OPTIONAL, -- Need ON + reportQuantity-v1310 ENUMERATED {rsrpANDsinr, rsrqANDsinr, all} + } + } OPTIONAL, -- Need ON + useWhiteCellList-r13 BOOLEAN OPTIONAL, -- Need ON + measRSSI-ReportConfig-r13 MeasRSSI-ReportConfig-r13 OPTIONAL, -- Need ON + includeMultiBandInfo-r13 ENUMERATED {true} OPTIONAL, -- Cond reportCGI + ul-DelayConfig-r13 UL-DelayConfig-r13 OPTIONAL -- Need ON + ]], + [[ ue-RxTxTimeDiffPeriodicalTDD-r13 BOOLEAN OPTIONAL -- Need ON + ]], + [[ + purpose-v1430 ENUMERATED {reportLocation, sidelink, spare2, spare1} + OPTIONAL -- Need ON + ]], + [[ + maxReportRS-Index-r15 INTEGER (0..maxRS-IndexReport-r15) OPTIONAL -- Need ON + ]] +} + +RSRQ-RangeConfig-r12 ::= CHOICE { + release NULL, + setup RSRQ-Range-v1250 +} + +ThresholdEUTRA ::= CHOICE{ + threshold-RSRP RSRP-Range, + threshold-RSRQ RSRQ-Range +} + +ThresholdEUTRA-v1250 ::= CSI-RSRP-Range-r12 + +MeasRSSI-ReportConfig-r13 ::= SEQUENCE { + channelOccupancyThreshold-r13 RSSI-Range-r13 OPTIONAL -- Need OR +} + + +ReportConfigId ::= INTEGER (1..maxReportConfigId) + + +ReportConfigInterRAT ::= SEQUENCE { + triggerType CHOICE { + event SEQUENCE { + eventId CHOICE { + eventB1 SEQUENCE { + b1-Threshold CHOICE { + b1-ThresholdUTRA ThresholdUTRA, + b1-ThresholdGERAN ThresholdGERAN, + b1-ThresholdCDMA2000 ThresholdCDMA2000 + } + }, + eventB2 SEQUENCE { + b2-Threshold1 ThresholdEUTRA, + b2-Threshold2 CHOICE { + b2-Threshold2UTRA ThresholdUTRA, + b2-Threshold2GERAN ThresholdGERAN, + b2-Threshold2CDMA2000 ThresholdCDMA2000 + } + }, + ..., + eventW1-r13 SEQUENCE { + w1-Threshold-r13 WLAN-RSSI-Range-r13 + }, + eventW2-r13 SEQUENCE { + w2-Threshold1-r13 WLAN-RSSI-Range-r13, + w2-Threshold2-r13 WLAN-RSSI-Range-r13 + }, + eventW3-r13 SEQUENCE { + w3-Threshold-r13 WLAN-RSSI-Range-r13 + }, + eventB1-NR-r15 SEQUENCE { + b1-ThresholdNR-r15 ThresholdNR-r15, + reportOnLeave-r15 BOOLEAN + }, + eventB2-NR-r15 SEQUENCE { + b2-Threshold1-r15 ThresholdEUTRA, + b2-Threshold2NR-r15 ThresholdNR-r15, + reportOnLeave-r15 BOOLEAN + } + }, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + periodical SEQUENCE { + purpose ENUMERATED { + reportStrongestCells, + reportStrongestCellsForSON, + reportCGI} + } + }, + maxReportCells INTEGER (1..maxCellReport), + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + ..., + [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL -- Cond reportCGI + ]], + [[ reportQuantityUTRA-FDD-r10 ENUMERATED {both} OPTIONAL -- Need OR + ]], + [[ includeLocationInfo-r11 BOOLEAN OPTIONAL -- Need ON + ]], + [[ b2-Threshold1-v1250 CHOICE { + release NULL, + setup RSRQ-Range-v1250 + } OPTIONAL -- Need ON + ]], + [[ reportQuantityWLAN-r13 ReportQuantityWLAN-r13 OPTIONAL -- Need ON + ]], + [[ reportAnyWLAN-r14 BOOLEAN OPTIONAL -- Need ON + ]], + [[ reportQuantityCellNR-r15 ReportQuantityNR-r15 OPTIONAL, -- Need ON + maxReportRS-Index-r15 INTEGER (0..maxRS-IndexReport-r15) OPTIONAL, -- Need ON, + reportQuantityRS-IndexNR-r15 ReportQuantityNR-r15 OPTIONAL, -- Need ON + reportRS-IndexResultsNR BOOLEAN OPTIONAL, -- Need ON + reportSFTD-Meas-r15 ENUMERATED {pSCell, neighborCells } OPTIONAL -- Need ON + ]] +} + +ThresholdUTRA ::= CHOICE{ + utra-RSCP INTEGER (-5..91), + utra-EcN0 INTEGER (0..49) +} + +ThresholdGERAN ::= INTEGER (0..63) + +ThresholdCDMA2000 ::= INTEGER (0..63) + +ReportQuantityNR-r15::= SEQUENCE { + ss-rsrp BOOLEAN, + ss-rsrq BOOLEAN, + ss-sinr BOOLEAN +} + +ReportQuantityWLAN-r13 ::= SEQUENCE { + bandRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + carrierInfoRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + availableAdmissionCapacityRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + backhaulDL-BandwidthRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + backhaulUL-BandwidthRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + channelUtilizationRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + stationCountRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + ... +} + + +ReportConfigToAddModList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigToAddMod + +ReportConfigToAddMod ::= SEQUENCE { + reportConfigId ReportConfigId, + reportConfig CHOICE { + reportConfigEUTRA ReportConfigEUTRA, + reportConfigInterRAT ReportConfigInterRAT + } +} + + + +ReportInterval ::= ENUMERATED { + ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, + min1, min6, min12, min30, min60, spare3, spare2, spare1} + + +RSRP-Range ::= INTEGER(0..97) + +RSRP-Range-v1360 ::= INTEGER(-17..-1) + +RSRP-RangeSL-r12 ::= INTEGER(0..13) + +RSRP-RangeSL2-r12 ::= INTEGER(0..7) + +RSRP-RangeSL3-r12 ::= INTEGER(0..11) + +RSRP-RangeSL4-r13 ::= INTEGER(0..49) + + +RSRP-RangeNR-r15 ::= INTEGER (0..127) + + +RSRQ-Range ::= INTEGER(0..34) + +RSRQ-Range-v1250 ::= INTEGER(-30..46) + +RSRQ-Range-r13 ::= INTEGER(-30..46) + + +RSRQ-RangeNR-r15 ::= INTEGER (0..127) + + +RSRQ-Type-r12 ::= SEQUENCE { + allSymbols-r12 BOOLEAN, + wideBand-r12 BOOLEAN +} + + +RS-SINR-Range-r13 ::= INTEGER(0..127) + + +RS-SINR-RangeNR-r15 ::= INTEGER (0..127) + + +RSSI-Range-r13 ::= INTEGER(0..76) + + +TimeToTrigger ::= ENUMERATED { + ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256, + ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560, + ms5120} + + +UL-DelayConfig-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + delayThreshold-r13 ENUMERATED { + ms30, ms40, ms50, ms60, ms70, ms80, + ms90,ms100, ms150, ms300, ms500, ms750, spare4, spare3, spare2, spare1} + } +} + + +WLAN-CarrierInfo-r13 ::= SEQUENCE { + operatingClass-r13 INTEGER (0..255) OPTIONAL, -- Need ON + countryCode-r13 ENUMERATED {unitedStates, europe, japan, global, ...} OPTIONAL, -- Need ON + channelNumbers-r13 WLAN-ChannelList-r13 OPTIONAL, -- Need ON + ... +} + +WLAN-ChannelList-r13 ::= SEQUENCE (SIZE (1..maxWLAN-Channels-r13)) OF WLAN-Channel-r13 + +WLAN-Channel-r13 ::= INTEGER(0..255) + + +WLAN-RSSI-Range-r13 ::= INTEGER(0..141) + + +WLAN-Status-r13 ::= ENUMERATED {successfulAssociation, failureWlanRadioLink, failureWlanUnavailable, failureTimeout} + +WLAN-Status-v1430 ::= ENUMERATED {suspended, resumed} + + +WLAN-SuspendConfig-r14 ::= SEQUENCE { + wlan-SuspendResumeAllowed-r14 BOOLEAN OPTIONAL, -- Need ON + wlan-SuspendTriggersStatusReport-r14 BOOLEAN OPTIONAL -- Need ON +} + + +AbsoluteTimeInfo-r10 ::= BIT STRING (SIZE (48)) + + +AreaConfiguration-r10 ::= CHOICE { + cellGlobalIdList-r10 CellGlobalIdList-r10, + trackingAreaCodeList-r10 TrackingAreaCodeList-r10 +} + +AreaConfiguration-v1130 ::= SEQUENCE { + trackingAreaCodeList-v1130 TrackingAreaCodeList-v1130 +} + +CellGlobalIdList-r10 ::= SEQUENCE (SIZE (1..32)) OF CellGlobalIdEUTRA + +TrackingAreaCodeList-r10 ::= SEQUENCE (SIZE (1..8)) OF TrackingAreaCode + +TrackingAreaCodeList-v1130 ::= SEQUENCE { + plmn-Identity-perTAC-List-r11 SEQUENCE (SIZE (1..8)) OF PLMN-Identity +} + + +BandCombinationList-r14 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombination-r14 + +BandCombination-r14 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandIndication-r14 + +BandIndication-r14 ::= SEQUENCE { + bandEUTRA-r14 FreqBandIndicator-r11, + ca-BandwidthClassDL-r14 CA-BandwidthClass-r10, + ca-BandwidthClassUL-r14 CA-BandwidthClass-r10 OPTIONAL +} + + +C-RNTI ::= BIT STRING (SIZE (16)) + + +DedicatedInfoCDMA2000 ::= OCTET STRING + + +DedicatedInfoNAS ::= OCTET STRING + + +FilterCoefficient ::= ENUMERATED { + fc0, fc1, fc2, fc3, fc4, fc5, + fc6, fc7, fc8, fc9, fc11, fc13, + fc15, fc17, fc19, spare1, ...} + + +LoggingDuration-r10 ::= ENUMERATED { + min10, min20, min40, min60, min90, min120, spare2, spare1} + + +LoggingInterval-r10 ::= ENUMERATED { + ms1280, ms2560, ms5120, ms10240, ms20480, + ms30720, ms40960, ms61440} + + +MeasSubframePattern-r10 ::= CHOICE { + subframePatternFDD-r10 BIT STRING (SIZE (40)), + subframePatternTDD-r10 CHOICE { + subframeConfig1-5-r10 BIT STRING (SIZE (20)), + subframeConfig0-r10 BIT STRING (SIZE (70)), + subframeConfig6-r10 BIT STRING (SIZE (60)), + ... + }, + ... +} + + +MMEC ::= BIT STRING (SIZE (8)) + + +NeighCellConfig ::= BIT STRING (SIZE (2)) + + +OtherConfig-r9 ::= SEQUENCE { + reportProximityConfig-r9 ReportProximityConfig-r9 OPTIONAL, -- Need ON + ..., + [[ idc-Config-r11 IDC-Config-r11 OPTIONAL, -- Need ON + powerPrefIndicationConfig-r11 PowerPrefIndicationConfig-r11 OPTIONAL, -- Need ON + obtainLocationConfig-r11 ObtainLocationConfig-r11 OPTIONAL -- Need ON + ]], + [[ bw-PreferenceIndicationTimer-r14 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, + s30, s60, s90, s120, s300, s600, spare3, + spare2, spare1} OPTIONAL, -- Need OR + sps-AssistanceInfoReport-r14 BOOLEAN OPTIONAL, -- Need ON + delayBudgetReportingConfig-r14 CHOICE{ + release NULL, + setup SEQUENCE{ + delayBudgetReportingProhibitTimer-r14 ENUMERATED { + s0, s0dot4, s0dot8, + s1dot6, s3, s6, s12, s30} + } + } OPTIONAL, -- Need ON + rlm-ReportConfig-r14 CHOICE { + release NULL, + setup SEQUENCE{ + rlmReportTimer-r14 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, s30, + s60, s90, s120, s300, s600, spare3, spare2, spare1}, + rlmReportRep-MPDCCH-r14 ENUMERATED {setup} OPTIONAL -- Need OR + } + } OPTIONAL -- Need ON + ]], + [[ overheatingAssistanceConfig-r14 CHOICE{ + release NULL, + setup SEQUENCE{ + overheatingIndicationProhibitTimer-r14 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, + s20, s30, s60, s90, s120, s300, s600, + spare3, spare2, spare1} + } + } OPTIONAL -- Need ON + ]] +} + +IDC-Config-r11 ::= SEQUENCE { + idc-Indication-r11 ENUMERATED {setup} OPTIONAL, -- Need OR + autonomousDenialParameters-r11 SEQUENCE { + autonomousDenialSubframes-r11 ENUMERATED {n2, n5, n10, n15, + n20, n30, spare2, spare1}, + autonomousDenialValidity-r11 ENUMERATED { + sf200, sf500, sf1000, sf2000, + spare4, spare3, spare2, spare1} + } OPTIONAL, -- Need OR + ..., + [[ idc-Indication-UL-CA-r11 ENUMERATED {setup} OPTIONAL -- Cond idc-Ind + ]], + [[ idc-HardwareSharingIndication-r13 ENUMERATED {setup} OPTIONAL -- Need OR + ]] +} + +ObtainLocationConfig-r11 ::= SEQUENCE { + obtainLocation-r11 ENUMERATED {setup} OPTIONAL -- Need OR +} + +PowerPrefIndicationConfig-r11 ::= CHOICE{ + release NULL, + setup SEQUENCE{ + powerPrefIndicationTimer-r11 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, + s30, s60, s90, s120, s300, s600, spare3, + spare2, spare1} + } +} + +ReportProximityConfig-r9 ::= SEQUENCE { + proximityIndicationEUTRA-r9 ENUMERATED {enabled} OPTIONAL, -- Need OR + proximityIndicationUTRA-r9 ENUMERATED {enabled} OPTIONAL -- Need OR +} + + +RAND-CDMA2000 ::= BIT STRING (SIZE (32)) + + +RAT-Type ::= ENUMERATED { + eutra, utra, geran-cs, geran-ps, cdma2000-1XRTT, + nr, eutra-nr, spare1, ...} + + +ResumeIdentity-r13 ::= BIT STRING (SIZE(40)) + + +RRC-TransactionIdentifier ::= INTEGER (0..3) + + +S-TMSI ::= SEQUENCE { + mmec MMEC, + m-TMSI BIT STRING (SIZE (32)) +} + + +TraceReference-r10 ::= SEQUENCE { + plmn-Identity-r10 PLMN-Identity, + traceId-r10 OCTET STRING (SIZE (3)) +} + + +UE-CapabilityRAT-ContainerList ::=SEQUENCE (SIZE (0..maxRAT-Capabilities)) OF UE-CapabilityRAT-Container + +UE-CapabilityRAT-Container ::= SEQUENCE { + rat-Type RAT-Type, + ueCapabilityRAT-Container OCTET STRING +} + + +UE-EUTRA-Capability ::= SEQUENCE { + accessStratumRelease AccessStratumRelease, + ue-Category INTEGER (1..5), + pdcp-Parameters PDCP-Parameters, + phyLayerParameters PhyLayerParameters, + rf-Parameters RF-Parameters, + measParameters MeasParameters, + featureGroupIndicators BIT STRING (SIZE (32)) OPTIONAL, + interRAT-Parameters SEQUENCE { + utraFDD IRAT-ParametersUTRA-FDD OPTIONAL, + utraTDD128 IRAT-ParametersUTRA-TDD128 OPTIONAL, + utraTDD384 IRAT-ParametersUTRA-TDD384 OPTIONAL, + utraTDD768 IRAT-ParametersUTRA-TDD768 OPTIONAL, + geran IRAT-ParametersGERAN OPTIONAL, + cdma2000-HRPD IRAT-ParametersCDMA2000-HRPD OPTIONAL, + cdma2000-1xRTT IRAT-ParametersCDMA2000-1XRTT OPTIONAL + }, + nonCriticalExtension UE-EUTRA-Capability-v920-IEs OPTIONAL +} + +-- Late non critical extensions +UE-EUTRA-Capability-v9a0-IEs ::= SEQUENCE { + featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9c0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9c0-IEs ::= SEQUENCE { + interRAT-ParametersUTRA-v9c0 IRAT-ParametersUTRA-v9c0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9d0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9d0-IEs ::= SEQUENCE { + phyLayerParameters-v9d0 PhyLayerParameters-v9d0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9e0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9e0-IEs ::= SEQUENCE { + rf-Parameters-v9e0 RF-Parameters-v9e0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9h0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9h0-IEs ::= SEQUENCE { + interRAT-ParametersUTRA-v9h0 IRAT-ParametersUTRA-v9h0 OPTIONAL, + -- Following field is only to be used for late REL-9 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10c0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10c0-IEs ::= SEQUENCE { + otdoa-PositioningCapabilities-r10 OTDOA-PositioningCapabilities-r10 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10f0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10f0-IEs ::= SEQUENCE { + rf-Parameters-v10f0 RF-Parameters-v10f0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10i0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10i0-IEs ::= SEQUENCE { + rf-Parameters-v10i0 RF-Parameters-v10i0 OPTIONAL, + -- Following field is only to be used for late REL-10 extensions + lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v10j0-IEs) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11d0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10j0-IEs ::= SEQUENCE { + rf-Parameters-v10j0 RF-Parameters-v10j0 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-EUTRA-Capability-v11d0-IEs ::= SEQUENCE { + rf-Parameters-v11d0 RF-Parameters-v11d0 OPTIONAL, + otherParameters-v11d0 Other-Parameters-v11d0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11x0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v11x0-IEs ::= SEQUENCE { + -- Following field is only to be used for late REL-11 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v12b0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v12b0-IEs ::= SEQUENCE { + rf-Parameters-v12b0 RF-Parameters-v12b0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v12x0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v12x0-IEs ::= SEQUENCE { + -- Following field is only to be used for late REL-12 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1370-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1370-IEs ::= SEQUENCE { + ce-Parameters-v1370 CE-Parameters-v1370 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1370 UE-EUTRA-CapabilityAddXDD-Mode-v1370 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1370 UE-EUTRA-CapabilityAddXDD-Mode-v1370 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1380-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1380-IEs ::= SEQUENCE { + rf-Parameters-v1380 RF-Parameters-v1380 OPTIONAL, + ce-Parameters-v1380 CE-Parameters-v1380, + fdd-Add-UE-EUTRA-Capabilities-v1380 UE-EUTRA-CapabilityAddXDD-Mode-v1380, + tdd-Add-UE-EUTRA-Capabilities-v1380 UE-EUTRA-CapabilityAddXDD-Mode-v1380, + nonCriticalExtension UE-EUTRA-Capability-v1390-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1390-IEs ::= SEQUENCE { + rf-Parameters-v1390 RF-Parameters-v1390 OPTIONAL, + -- Following field is only to be used for late REL-13 extensions + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +UE-EUTRA-Capability-v920-IEs ::= SEQUENCE { + phyLayerParameters-v920 PhyLayerParameters-v920, + interRAT-ParametersGERAN-v920 IRAT-ParametersGERAN-v920, + interRAT-ParametersUTRA-v920 IRAT-ParametersUTRA-v920 OPTIONAL, + interRAT-ParametersCDMA2000-v920 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL, + deviceType-r9 ENUMERATED {noBenFromBatConsumpOpt} OPTIONAL, + csg-ProximityIndicationParameters-r9 CSG-ProximityIndicationParameters-r9, + neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9, + son-Parameters-r9 SON-Parameters-r9, + nonCriticalExtension UE-EUTRA-Capability-v940-IEs OPTIONAL +} + +UE-EUTRA-Capability-v940-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v9a0-IEs) + OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1020-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1020-IEs ::= SEQUENCE { + ue-Category-v1020 INTEGER (6..8) OPTIONAL, + phyLayerParameters-v1020 PhyLayerParameters-v1020 OPTIONAL, + rf-Parameters-v1020 RF-Parameters-v1020 OPTIONAL, + measParameters-v1020 MeasParameters-v1020 OPTIONAL, + featureGroupIndRel10-r10 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersCDMA2000-v1020 IRAT-ParametersCDMA2000-1XRTT-v1020 OPTIONAL, + ue-BasedNetwPerfMeasParameters-r10 UE-BasedNetwPerfMeasParameters-r10 OPTIONAL, + interRAT-ParametersUTRA-TDD-v1020 IRAT-ParametersUTRA-TDD-v1020 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1060-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1060-IEs ::= SEQUENCE { + fdd-Add-UE-EUTRA-Capabilities-v1060 UE-EUTRA-CapabilityAddXDD-Mode-v1060 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1060 UE-EUTRA-CapabilityAddXDD-Mode-v1060 OPTIONAL, + rf-Parameters-v1060 RF-Parameters-v1060 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1090-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1090-IEs ::= SEQUENCE { + rf-Parameters-v1090 RF-Parameters-v1090 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1130-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1130-IEs ::= SEQUENCE { + pdcp-Parameters-v1130 PDCP-Parameters-v1130, + phyLayerParameters-v1130 PhyLayerParameters-v1130 OPTIONAL, + rf-Parameters-v1130 RF-Parameters-v1130, + measParameters-v1130 MeasParameters-v1130, + interRAT-ParametersCDMA2000-v1130 IRAT-ParametersCDMA2000-v1130, + otherParameters-r11 Other-Parameters-r11, + fdd-Add-UE-EUTRA-Capabilities-v1130 UE-EUTRA-CapabilityAddXDD-Mode-v1130 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1130 UE-EUTRA-CapabilityAddXDD-Mode-v1130 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1170-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1170-IEs ::= SEQUENCE { + phyLayerParameters-v1170 PhyLayerParameters-v1170 OPTIONAL, + ue-Category-v1170 INTEGER (9..10) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1180-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1180-IEs ::= SEQUENCE { + rf-Parameters-v1180 RF-Parameters-v1180 OPTIONAL, + mbms-Parameters-r11 MBMS-Parameters-r11 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1180 UE-EUTRA-CapabilityAddXDD-Mode-v1180 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1180 UE-EUTRA-CapabilityAddXDD-Mode-v1180 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11a0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v11a0-IEs ::= SEQUENCE { + ue-Category-v11a0 INTEGER (11..12) OPTIONAL, + measParameters-v11a0 MeasParameters-v11a0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1250-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1250-IEs ::= SEQUENCE { + phyLayerParameters-v1250 PhyLayerParameters-v1250 OPTIONAL, + rf-Parameters-v1250 RF-Parameters-v1250 OPTIONAL, + rlc-Parameters-r12 RLC-Parameters-r12 OPTIONAL, + ue-BasedNetwPerfMeasParameters-v1250 UE-BasedNetwPerfMeasParameters-v1250 OPTIONAL, + ue-CategoryDL-r12 INTEGER (0..14) OPTIONAL, + ue-CategoryUL-r12 INTEGER (0..13) OPTIONAL, + wlan-IW-Parameters-r12 WLAN-IW-Parameters-r12 OPTIONAL, + measParameters-v1250 MeasParameters-v1250 OPTIONAL, + dc-Parameters-r12 DC-Parameters-r12 OPTIONAL, + mbms-Parameters-v1250 MBMS-Parameters-v1250 OPTIONAL, + mac-Parameters-r12 MAC-Parameters-r12 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1250 UE-EUTRA-CapabilityAddXDD-Mode-v1250 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1250 UE-EUTRA-CapabilityAddXDD-Mode-v1250 OPTIONAL, + sl-Parameters-r12 SL-Parameters-r12 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1260-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1260-IEs ::= SEQUENCE { + ue-CategoryDL-v1260 INTEGER (15..16) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1270-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1270-IEs ::= SEQUENCE { + rf-Parameters-v1270 RF-Parameters-v1270 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1280-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1280-IEs ::= SEQUENCE { + phyLayerParameters-v1280 PhyLayerParameters-v1280 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1310-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1310-IEs ::= SEQUENCE { + ue-CategoryDL-v1310 ENUMERATED {n17, m1} OPTIONAL, + ue-CategoryUL-v1310 ENUMERATED {n14, m1} OPTIONAL, + pdcp-Parameters-v1310 PDCP-Parameters-v1310, + rlc-Parameters-v1310 RLC-Parameters-v1310, + mac-Parameters-v1310 MAC-Parameters-v1310 OPTIONAL, + phyLayerParameters-v1310 PhyLayerParameters-v1310 OPTIONAL, + rf-Parameters-v1310 RF-Parameters-v1310 OPTIONAL, + measParameters-v1310 MeasParameters-v1310 OPTIONAL, + dc-Parameters-v1310 DC-Parameters-v1310 OPTIONAL, + sl-Parameters-v1310 SL-Parameters-v1310 OPTIONAL, + scptm-Parameters-r13 SCPTM-Parameters-r13 OPTIONAL, + ce-Parameters-r13 CE-Parameters-r13 OPTIONAL, + interRAT-ParametersWLAN-r13 IRAT-ParametersWLAN-r13, + laa-Parameters-r13 LAA-Parameters-r13 OPTIONAL, + lwa-Parameters-r13 LWA-Parameters-r13 OPTIONAL, + wlan-IW-Parameters-v1310 WLAN-IW-Parameters-v1310, + lwip-Parameters-r13 LWIP-Parameters-r13, + fdd-Add-UE-EUTRA-Capabilities-v1310 UE-EUTRA-CapabilityAddXDD-Mode-v1310 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1310 UE-EUTRA-CapabilityAddXDD-Mode-v1310 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1320-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1320-IEs ::= SEQUENCE { + ce-Parameters-v1320 CE-Parameters-v1320 OPTIONAL, + phyLayerParameters-v1320 PhyLayerParameters-v1320 OPTIONAL, + rf-Parameters-v1320 RF-Parameters-v1320 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1320 UE-EUTRA-CapabilityAddXDD-Mode-v1320 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1320 UE-EUTRA-CapabilityAddXDD-Mode-v1320 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1330-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1330-IEs ::= SEQUENCE { + ue-CategoryDL-v1330 INTEGER (18..19) OPTIONAL, + phyLayerParameters-v1330 PhyLayerParameters-v1330 OPTIONAL, + ue-CE-NeedULGaps-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1340-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1340-IEs ::= SEQUENCE { + ue-CategoryUL-v1340 INTEGER (15) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1350-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1350-IEs ::= SEQUENCE { + ue-CategoryDL-v1350 ENUMERATED {oneBis} OPTIONAL, + ue-CategoryUL-v1350 ENUMERATED {oneBis} OPTIONAL, + ce-Parameters-v1350 CE-Parameters-v1350, + nonCriticalExtension UE-EUTRA-Capability-v1360-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1360-IEs ::= SEQUENCE { + other-Parameters-v1360 Other-Parameters-v1360 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1430-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1430-IEs ::= SEQUENCE { + phyLayerParameters-v1430 PhyLayerParameters-v1430, + ue-CategoryDL-v1430 ENUMERATED {m2} OPTIONAL, + ue-CategoryUL-v1430 ENUMERATED {n16, n17, n18, n19, n20, m2} OPTIONAL, + ue-CategoryUL-v1430b ENUMERATED {n21} OPTIONAL, + mac-Parameters-v1430 MAC-Parameters-v1430 OPTIONAL, + measParameters-v1430 MeasParameters-v1430 OPTIONAL, + pdcp-Parameters-v1430 PDCP-Parameters-v1430 OPTIONAL, + rlc-Parameters-v1430 RLC-Parameters-v1430, + rf-Parameters-v1430 RF-Parameters-v1430 OPTIONAL, + laa-Parameters-v1430 LAA-Parameters-v1430 OPTIONAL, + lwa-Parameters-v1430 LWA-Parameters-v1430 OPTIONAL, + lwip-Parameters-v1430 LWIP-Parameters-v1430 OPTIONAL, + otherParameters-v1430 Other-Parameters-v1430, + mmtel-Parameters-r14 MMTEL-Parameters-r14 OPTIONAL, + mobilityParameters-r14 MobilityParameters-r14 OPTIONAL, + ce-Parameters-v1430 CE-Parameters-v1430, + fdd-Add-UE-EUTRA-Capabilities-v1430 UE-EUTRA-CapabilityAddXDD-Mode-v1430 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1430 UE-EUTRA-CapabilityAddXDD-Mode-v1430 OPTIONAL, + mbms-Parameters-v1430 MBMS-Parameters-v1430 OPTIONAL, + sl-Parameters-v1430 SL-Parameters-v1430 OPTIONAL, + ue-BasedNetwPerfMeasParameters-v1430 UE-BasedNetwPerfMeasParameters-v1430 OPTIONAL, + highSpeedEnhParameters-r14 HighSpeedEnhParameters-r14 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1440-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1440-IEs ::= SEQUENCE { + lwa-Parameters-v1440 LWA-Parameters-v1440, + mac-Parameters-v1440 MAC-Parameters-v1440, + nonCriticalExtension UE-EUTRA-Capability-v1450-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1450-IEs ::= SEQUENCE { + phyLayerParameters-v1450 PhyLayerParameters-v1450 OPTIONAL, + rf-Parameters-v1450 RF-Parameters-v1450 OPTIONAL, + otherParameters-v1450 OtherParameters-v1450, + ue-CategoryDL-v1450 INTEGER (20) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1460-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1460-IEs ::= SEQUENCE { + ue-CategoryDL-v1460 INTEGER (21) OPTIONAL, + otherParameters-v1460 Other-Parameters-v1460, + nonCriticalExtension UE-EUTRA-Capability-v1510-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1510-IEs ::= SEQUENCE { + irat-ParametersNR-r15 IRAT-ParametersNR-r15 OPTIONAL, + basebandParameters-r15 BasebandParameters-r15 OPTIONAL, + pdcp-ParametersNR-r15 PDCP-ParametersNR-r15 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1510 UE-EUTRA-CapabilityAddXDD-Mode-v1510 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1510 UE-EUTRA-CapabilityAddXDD-Mode-v1510 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-r9 ::= SEQUENCE { + phyLayerParameters-r9 PhyLayerParameters OPTIONAL, + featureGroupIndicators-r9 BIT STRING (SIZE (32)) OPTIONAL, + featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersGERAN-r9 IRAT-ParametersGERAN OPTIONAL, + interRAT-ParametersUTRA-r9 IRAT-ParametersUTRA-v920 OPTIONAL, + interRAT-ParametersCDMA2000-r9 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL, + neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9 OPTIONAL, + ... +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1060 ::= SEQUENCE { + phyLayerParameters-v1060 PhyLayerParameters-v1020 OPTIONAL, + featureGroupIndRel10-v1060 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersCDMA2000-v1060 IRAT-ParametersCDMA2000-1XRTT-v1020 OPTIONAL, + interRAT-ParametersUTRA-TDD-v1060 IRAT-ParametersUTRA-TDD-v1020 OPTIONAL, + ..., + [[ otdoa-PositioningCapabilities-r10 OTDOA-PositioningCapabilities-r10 OPTIONAL + ]] +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1130 ::= SEQUENCE { + phyLayerParameters-v1130 PhyLayerParameters-v1130 OPTIONAL, + measParameters-v1130 MeasParameters-v1130 OPTIONAL, + otherParameters-r11 Other-Parameters-r11 OPTIONAL, + ... +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1180 ::= SEQUENCE { + mbms-Parameters-r11 MBMS-Parameters-r11 +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1250 ::= SEQUENCE { + phyLayerParameters-v1250 PhyLayerParameters-v1250 OPTIONAL, + measParameters-v1250 MeasParameters-v1250 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1310 ::= SEQUENCE { + phyLayerParameters-v1310 PhyLayerParameters-v1310 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1320 ::= SEQUENCE { + phyLayerParameters-v1320 PhyLayerParameters-v1320 OPTIONAL, + scptm-Parameters-r13 SCPTM-Parameters-r13 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1370 ::= SEQUENCE { + ce-Parameters-v1370 CE-Parameters-v1370 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1380 ::= SEQUENCE { + ce-Parameters-v1380 CE-Parameters-v1380 +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1430 ::= SEQUENCE { + phyLayerParameters-v1430 PhyLayerParameters-v1430 OPTIONAL, + mmtel-Parameters-r14 MMTEL-Parameters-r14 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1510 ::= SEQUENCE { + pdcp-ParametersNR-r15 PDCP-ParametersNR-r15 OPTIONAL +} + +AccessStratumRelease ::= ENUMERATED { + rel8, rel9, rel10, rel11, rel12, rel13, + rel14, rel15, ...} + +BasebandParameters-r15 ::= SEQUENCE { + basebandProcessingCombList-r15 BasebandProcessingCombList-r15 + OPTIONAL, + ... +} + +BasebandProcessingCombList-r15 ::= SEQUENCE (SIZE (1..maxBPC-r15)) OF BasebandProcessingComb-r15 + +BasebandProcessingComb-r15 ::= SEQUENCE { + bpc-InfoPerBandList BPC-InfoPerBandList-r15, + supportedNAICS-2CRS-AP-PerBPC-Carriers-r15 BIT STRING (SIZE(1..maxNAICS-Entries-r12)) OPTIONAL, + -- FFS whether to have per CC signalling for NAICS + mimo-CA-ParametersPerBPC-r15 MIMO-CA-ParametersPerBPC-r15 OPTIONAL + -- FFS whether to have per CC signalling for FD-MIMO + +} + +BPC-InfoPerBandList-r15 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BPC-InfoPerBand-r15 + +BPC-InfoPerBand-r15 ::= SEQUENCE { + ca-BandwidthClassDL-r15 CA-BandwidthClass-r10, + ca-BandwidthClassUL-r15 CA-BandwidthClass-r10, + bpc-InfoPerCC-List-r15 SEQUENCE (SIZE (1..maxServCell-r13)) OF BPC-InfoPerCC-r15, + bpc-InfoDefault-r15 BPC-InfoPerCC-r15 + -- Default value for parameters not provided per CC + -- FFS whether supportedBW-PerCC is needed (i.e. ca-BandwidthClass may be sufficient) + -- FFS whether to include additional parameters +} + +BPC-InfoPerCC-r15 ::= SEQUENCE { + supportedCSI-Proc-r15 ENUMERATED {n1, n3, n4} OPTIONAL, + supportedBandwidthPerCC-r15 BW-PerCC-r15, + supportedMIMO-CapabilityDL-r15 MIMO-CapabilityDL-r10 OPTIONAL, + supportedMIMO-CapabilityUL-r15 MIMO-CapabilityUL-r10 OPTIONAL, + modulationOrderDL-r15 ModulationOrderDL-r15 OPTIONAL, + modulationOrderUL-r15 ModulationOrderUL-r15 OPTIONAL + -- FFS if modulationOrder is per Band or per CC + -- FFS whether to include additional parameters +} + +ModulationOrderDL-r15 ::= ENUMERATED {qam64, qam256, qam1024, spare3, spare2, spare1} + +ModulationOrderUL-r15 ::= ENUMERATED {qam16, qam64, qam256, spare3, spare2, spare1} + + +BW-PerCC-r15 ::= SEQUENCE { + -- Actual details FFS +} + +MobilityParameters-r14 ::= SEQUENCE { + makeBeforeBreak-r14 ENUMERATED {supported} OPTIONAL, + rach-Less-r14 ENUMERATED {supported} OPTIONAL +} + +DC-Parameters-r12 ::= SEQUENCE { + drb-TypeSplit-r12 ENUMERATED {supported} OPTIONAL, + drb-TypeSCG-r12 ENUMERATED {supported} OPTIONAL +} + +DC-Parameters-v1310 ::= SEQUENCE { + pdcp-TransferSplitUL-r13 ENUMERATED {supported} OPTIONAL, + ue-SSTD-Meas-r13 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-r12 ::= SEQUENCE { + logicalChannelSR-ProhibitTimer-r12 ENUMERATED {supported} OPTIONAL, + longDRX-Command-r12 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-v1310 ::= SEQUENCE { + extendedMAC-LengthField-r13 ENUMERATED {supported} OPTIONAL, + extendedLongDRX-r13 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-v1430 ::= SEQUENCE { + shortSPS-IntervalFDD-r14 ENUMERATED {supported} OPTIONAL, + shortSPS-IntervalTDD-r14 ENUMERATED {supported} OPTIONAL, + skipUplinkDynamic-r14 ENUMERATED {supported} OPTIONAL, + skipUplinkSPS-r14 ENUMERATED {supported} OPTIONAL, + multipleUplinkSPS-r14 ENUMERATED {supported} OPTIONAL, + dataInactMon-r14 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-v1440 ::= SEQUENCE { + rai-Support-r14 ENUMERATED {supported} OPTIONAL +} + +RLC-Parameters-r12 ::= SEQUENCE { + extended-RLC-LI-Field-r12 ENUMERATED {supported} +} + +RLC-Parameters-v1310 ::= SEQUENCE { + extendedRLC-SN-SO-Field-r13 ENUMERATED {supported} OPTIONAL +} + +RLC-Parameters-v1430 ::= SEQUENCE { + extendedPollByte-r14 ENUMERATED {supported} OPTIONAL +} + +PDCP-Parameters ::= SEQUENCE { + supportedROHC-Profiles ROHC-ProfileSupportList-r15, + maxNumberROHC-ContextSessions ENUMERATED { + cs2, cs4, cs8, cs12, cs16, cs24, cs32, + cs48, cs64, cs128, cs256, cs512, cs1024, + cs16384, spare2, spare1} DEFAULT cs16, + ... +} + +PDCP-Parameters-v1130 ::= SEQUENCE { + pdcp-SN-Extension-r11 ENUMERATED {supported} OPTIONAL, + supportRohcContextContinue-r11 ENUMERATED {supported} OPTIONAL +} + +PDCP-Parameters-v1310 ::= SEQUENCE { + pdcp-SN-Extension-18bits-r13 ENUMERATED {supported} OPTIONAL +} + +PDCP-Parameters-v1430 ::= SEQUENCE { + supportedUplinkOnlyROHC-Profiles-r14 SEQUENCE { + profile0x0006-r14 BOOLEAN + }, + maxNumberROHC-ContextSessions-r14 ENUMERATED { + cs2, cs4, cs8, cs12, cs16, cs24, cs32, + cs48, cs64, cs128, cs256, cs512, cs1024, + cs16384, spare2, spare1} DEFAULT cs16 +} + +PhyLayerParameters ::= SEQUENCE { + ue-TxAntennaSelectionSupported BOOLEAN, + ue-SpecificRefSigsSupported BOOLEAN +} + +PhyLayerParameters-v920 ::= SEQUENCE { + enhancedDualLayerFDD-r9 ENUMERATED {supported} OPTIONAL, + enhancedDualLayerTDD-r9 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v9d0 ::= SEQUENCE { + tm5-FDD-r9 ENUMERATED {supported} OPTIONAL, + tm5-TDD-r9 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1020 ::= SEQUENCE { + twoAntennaPortsForPUCCH-r10 ENUMERATED {supported} OPTIONAL, + tm9-With-8Tx-FDD-r10 ENUMERATED {supported} OPTIONAL, + pmi-Disabling-r10 ENUMERATED {supported} OPTIONAL, + crossCarrierScheduling-r10 ENUMERATED {supported} OPTIONAL, + simultaneousPUCCH-PUSCH-r10 ENUMERATED {supported} OPTIONAL, + multiClusterPUSCH-WithinCC-r10 ENUMERATED {supported} OPTIONAL, + nonContiguousUL-RA-WithinCC-List-r10 NonContiguousUL-RA-WithinCC-List-r10 OPTIONAL +} + +PhyLayerParameters-v1130 ::= SEQUENCE { + crs-InterfHandl-r11 ENUMERATED {supported} OPTIONAL, + ePDCCH-r11 ENUMERATED {supported} OPTIONAL, + multiACK-CSI-Reporting-r11 ENUMERATED {supported} OPTIONAL, + ss-CCH-InterfHandl-r11 ENUMERATED {supported} OPTIONAL, + tdd-SpecialSubframe-r11 ENUMERATED {supported} OPTIONAL, + txDiv-PUCCH1b-ChSelect-r11 ENUMERATED {supported} OPTIONAL, + ul-CoMP-r11 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1170 ::= SEQUENCE { + interBandTDD-CA-WithDifferentConfig-r11 BIT STRING (SIZE (2)) OPTIONAL +} + +PhyLayerParameters-v1250 ::= SEQUENCE { + e-HARQ-Pattern-FDD-r12 ENUMERATED {supported} OPTIONAL, + enhanced-4TxCodebook-r12 ENUMERATED {supported} OPTIONAL, + tdd-FDD-CA-PCellDuplex-r12 BIT STRING (SIZE (2)) OPTIONAL, + phy-TDD-ReConfig-TDD-PCell-r12 ENUMERATED {supported} OPTIONAL, + phy-TDD-ReConfig-FDD-PCell-r12 ENUMERATED {supported} OPTIONAL, + pusch-FeedbackMode-r12 ENUMERATED {supported} OPTIONAL, + pusch-SRS-PowerControl-SubframeSet-r12 ENUMERATED {supported} OPTIONAL, + csi-SubframeSet-r12 ENUMERATED {supported} OPTIONAL, + noResourceRestrictionForTTIBundling-r12 ENUMERATED {supported} OPTIONAL, + discoverySignalsInDeactSCell-r12 ENUMERATED {supported} OPTIONAL, + naics-Capability-List-r12 NAICS-Capability-List-r12 OPTIONAL +} + +PhyLayerParameters-v1280 ::= SEQUENCE { + alternativeTBS-Indices-r12 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1310 ::= SEQUENCE { + aperiodicCSI-Reporting-r13 BIT STRING (SIZE (2)) OPTIONAL, + codebook-HARQ-ACK-r13 BIT STRING (SIZE (2)) OPTIONAL, + crossCarrierScheduling-B5C-r13 ENUMERATED {supported} OPTIONAL, + fdd-HARQ-TimingTDD-r13 ENUMERATED {supported} OPTIONAL, + maxNumberUpdatedCSI-Proc-r13 INTEGER(5..32) OPTIONAL, + pucch-Format4-r13 ENUMERATED {supported} OPTIONAL, + pucch-Format5-r13 ENUMERATED {supported} OPTIONAL, + pucch-SCell-r13 ENUMERATED {supported} OPTIONAL, + spatialBundling-HARQ-ACK-r13 ENUMERATED {supported} OPTIONAL, + supportedBlindDecoding-r13 SEQUENCE { + maxNumberDecoding-r13 INTEGER(1..32) OPTIONAL, + pdcch-CandidateReductions-r13 ENUMERATED {supported} OPTIONAL, + skipMonitoringDCI-Format0-1A-r13 ENUMERATED {supported} OPTIONAL + } OPTIONAL, + uci-PUSCH-Ext-r13 ENUMERATED {supported} OPTIONAL, + crs-InterfMitigationTM10-r13 ENUMERATED {supported} OPTIONAL, + pdsch-CollisionHandling-r13 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1320 ::= SEQUENCE { + mimo-UE-Parameters-r13 MIMO-UE-Parameters-r13 OPTIONAL +} + +PhyLayerParameters-v1330 ::= SEQUENCE { + cch-InterfMitigation-RefRecTypeA-r13 ENUMERATED {supported} OPTIONAL, + cch-InterfMitigation-RefRecTypeB-r13 ENUMERATED {supported} OPTIONAL, + cch-InterfMitigation-MaxNumCCs-r13 INTEGER (1.. maxServCell-r13) OPTIONAL, + crs-InterfMitigationTM1toTM9-r13 INTEGER (1.. maxServCell-r13) OPTIONAL +} + +PhyLayerParameters-v1430 ::= SEQUENCE { + ce-PUSCH-NB-MaxTBS-r14 ENUMERATED {supported} OPTIONAL, + ce-PDSCH-PUSCH-MaxBandwidth-r14 ENUMERATED {bw5, bw20} OPTIONAL, + ce-HARQ-AckBundling-r14 ENUMERATED {supported} OPTIONAL, + ce-PDSCH-TenProcesses-r14 ENUMERATED {supported} OPTIONAL, + ce-RetuningSymbols-r14 ENUMERATED {n0, n1} OPTIONAL, + ce-PDSCH-PUSCH-Enhancement-r14 ENUMERATED {supported} OPTIONAL, + ce-SchedulingEnhancement-r14 ENUMERATED {supported} OPTIONAL, + ce-SRS-Enhancement-r14 ENUMERATED {supported} OPTIONAL, + ce-PUCCH-Enhancement-r14 ENUMERATED {supported} OPTIONAL, + ce-ClosedLoopTxAntennaSelection-r14 ENUMERATED {supported} OPTIONAL, + tdd-SpecialSubframe-r14 ENUMERATED {supported} OPTIONAL, + tdd-TTI-Bundling-r14 ENUMERATED {supported} OPTIONAL, + dmrs-LessUpPTS-r14 ENUMERATED {supported} OPTIONAL, + mimo-UE-Parameters-v1430 MIMO-UE-Parameters-v1430 OPTIONAL, + alternativeTBS-Index-r14 ENUMERATED {supported} OPTIONAL, + feMBMS-Unicast-Parameters-r14 FeMBMS-Unicast-Parameters-r14 OPTIONAL +} + +PhyLayerParameters-v1450 ::= SEQUENCE { + ce-SRS-EnhancementWithoutComb4-r14 ENUMERATED {supported} OPTIONAL, + crs-LessDwPTS-r14 ENUMERATED {supported} OPTIONAL} + +MIMO-UE-Parameters-r13 ::= SEQUENCE { + parametersTM9-r13 MIMO-UE-ParametersPerTM-r13 OPTIONAL, + parametersTM10-r13 MIMO-UE-ParametersPerTM-r13 OPTIONAL, + srs-EnhancementsTDD-r13 ENUMERATED {supported} OPTIONAL, + srs-Enhancements-r13 ENUMERATED {supported} OPTIONAL, + interferenceMeasRestriction-r13 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-Parameters-v1430 ::= SEQUENCE { + parametersTM9-v1430 MIMO-UE-ParametersPerTM-v1430 OPTIONAL, + parametersTM10-v1430 MIMO-UE-ParametersPerTM-v1430 OPTIONAL +} + +MIMO-UE-ParametersPerTM-r13 ::= SEQUENCE { + nonPrecoded-r13 MIMO-NonPrecodedCapabilities-r13 OPTIONAL, + beamformed-r13 MIMO-UE-BeamformedCapabilities-r13 OPTIONAL, + channelMeasRestriction-r13 ENUMERATED {supported} OPTIONAL, + dmrs-Enhancements-r13 ENUMERATED {supported} OPTIONAL, + csi-RS-EnhancementsTDD-r13 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-ParametersPerTM-v1430 ::= SEQUENCE { + nzp-CSI-RS-AperiodicInfo-r14 SEQUENCE { + nMaxProc-r14 INTEGER(5..32), + nMaxResource-r14 ENUMERATED {ffs1, ffs2, ffs3, ffs4} + } OPTIONAL, + nzp-CSI-RS-PeriodicInfo-r14 SEQUENCE { + nMaxResource-r14 ENUMERATED {ffs1, ffs2, ffs3, ffs4} + } OPTIONAL, + zp-CSI-RS-AperiodicInfo-r14 ENUMERATED {supported} OPTIONAL, + ul-dmrs-Enhancements-r14 ENUMERATED {supported} OPTIONAL, + densityReductionNP-r14 ENUMERATED {supported} OPTIONAL, + densityReductionBF-r14 ENUMERATED {supported} OPTIONAL, + hybridCSI-r14 ENUMERATED {supported} OPTIONAL, + semiOL-r14 ENUMERATED {supported} OPTIONAL, + csi-ReportingNP-r14 ENUMERATED {supported} OPTIONAL, + csi-ReportingAdvanced-r14 ENUMERATED {supported} OPTIONAL +} + +MIMO-CA-ParametersPerBoBC-r13 ::= SEQUENCE { + parametersTM9-r13 MIMO-CA-ParametersPerBoBCPerTM-r13 OPTIONAL, + parametersTM10-r13 MIMO-CA-ParametersPerBoBCPerTM-r13 OPTIONAL +} + +MIMO-CA-ParametersPerBPC-r15 ::= SEQUENCE { + parametersTM9-r15 MIMO-CA-ParametersPerBPCPerTM-r15 OPTIONAL, + parametersTM10-r15 MIMO-CA-ParametersPerBPCPerTM-r15 OPTIONAL +} + +MIMO-CA-ParametersPerBoBC-v1430 ::= SEQUENCE { + parametersTM9-v1430 MIMO-CA-ParametersPerBoBCPerTM-v1430 OPTIONAL, + parametersTM10-v1430 MIMO-CA-ParametersPerBoBCPerTM-v1430 OPTIONAL +} + +MIMO-CA-ParametersPerBoBCPerTM-r13 ::= SEQUENCE { + nonPrecoded-r13 MIMO-NonPrecodedCapabilities-r13 OPTIONAL, + beamformed-r13 MIMO-BeamformedCapabilityList-r13 OPTIONAL, + dmrs-Enhancements-r13 ENUMERATED {different} OPTIONAL +} + +MIMO-CA-ParametersPerBoBCPerTM-v1430 ::= SEQUENCE { + csi-ReportingNP-r14 ENUMERATED {different} OPTIONAL, + csi-ReportingAdvanced-r14 ENUMERATED {different} OPTIONAL +} + +MIMO-CA-ParametersPerBPCPerTM-r15 ::= SEQUENCE { + nonPrecoded-r13 MIMO-NonPrecodedCapabilities-r13 OPTIONAL, + beamformed-r13 MIMO-BeamformedCapabilityList-r13 OPTIONAL, + dmrs-Enhancements-r13 ENUMERATED {different} OPTIONAL, + csi-ReportingNP-r14 ENUMERATED {different} OPTIONAL, + csi-ReportingAdvanced-r14 ENUMERATED {different} OPTIONAL +} + +MIMO-NonPrecodedCapabilities-r13 ::= SEQUENCE { + config1-r13 ENUMERATED {supported} OPTIONAL, + config2-r13 ENUMERATED {supported} OPTIONAL, + config3-r13 ENUMERATED {supported} OPTIONAL, + config4-r13 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-BeamformedCapabilities-r13 ::= SEQUENCE { + altCodebook-r13 ENUMERATED {supported} OPTIONAL, + mimo-BeamformedCapabilities-r13 MIMO-BeamformedCapabilityList-r13 +} + +MIMO-BeamformedCapabilityList-r13 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF MIMO-BeamformedCapabilities-r13 + +MIMO-BeamformedCapabilities-r13 ::= SEQUENCE { + k-Max-r13 INTEGER (1..8), + n-MaxList-r13 BIT STRING (SIZE (1..7)) OPTIONAL + } + +NonContiguousUL-RA-WithinCC-List-r10 ::= SEQUENCE (SIZE (1..maxBands)) OF NonContiguousUL-RA-WithinCC-r10 + +NonContiguousUL-RA-WithinCC-r10 ::= SEQUENCE { + nonContiguousUL-RA-WithinCC-Info-r10 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters ::= SEQUENCE { + supportedBandListEUTRA SupportedBandListEUTRA +} + +RF-Parameters-v9e0 ::= SEQUENCE { + supportedBandListEUTRA-v9e0 SupportedBandListEUTRA-v9e0 OPTIONAL +} + +RF-Parameters-v1020 ::= SEQUENCE { + supportedBandCombination-r10 SupportedBandCombination-r10 +} + +RF-Parameters-v1060 ::= SEQUENCE { + supportedBandCombinationExt-r10 SupportedBandCombinationExt-r10 +} + +RF-Parameters-v1090 ::= SEQUENCE { + supportedBandCombination-v1090 SupportedBandCombination-v1090 OPTIONAL +} + +RF-Parameters-v10f0 ::= SEQUENCE { + modifiedMPR-Behavior-r10 BIT STRING (SIZE (32)) OPTIONAL +} + +RF-Parameters-v10i0 ::= SEQUENCE { + supportedBandCombination-v10i0 SupportedBandCombination-v10i0 OPTIONAL +} + +RF-Parameters-v10j0 ::= SEQUENCE { + multiNS-Pmax-r10 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1130 ::= SEQUENCE { + supportedBandCombination-v1130 SupportedBandCombination-v1130 OPTIONAL +} + +RF-Parameters-v1180 ::= SEQUENCE { + freqBandRetrieval-r11 ENUMERATED {supported} OPTIONAL, + requestedBands-r11 SEQUENCE (SIZE (1.. maxBands)) OF FreqBandIndicator-r11 OPTIONAL, + supportedBandCombinationAdd-r11 SupportedBandCombinationAdd-r11 OPTIONAL +} + +RF-Parameters-v11d0 ::= SEQUENCE { + supportedBandCombinationAdd-v11d0 SupportedBandCombinationAdd-v11d0 OPTIONAL +} + +RF-Parameters-v1250 ::= SEQUENCE { + supportedBandListEUTRA-v1250 SupportedBandListEUTRA-v1250 OPTIONAL, + supportedBandCombination-v1250 SupportedBandCombination-v1250 OPTIONAL, + supportedBandCombinationAdd-v1250 SupportedBandCombinationAdd-v1250 OPTIONAL, + freqBandPriorityAdjustment-r12 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1270 ::= SEQUENCE { + supportedBandCombination-v1270 SupportedBandCombination-v1270 OPTIONAL, + supportedBandCombinationAdd-v1270 SupportedBandCombinationAdd-v1270 OPTIONAL +} + +RF-Parameters-v1310 ::= SEQUENCE { + eNB-RequestedParameters-r13 SEQUENCE { + reducedIntNonContCombRequested-r13 ENUMERATED {true} OPTIONAL, + requestedCCsDL-r13 INTEGER (2..32) OPTIONAL, + requestedCCsUL-r13 INTEGER (2..32) OPTIONAL, + skipFallbackCombRequested-r13 ENUMERATED {true} OPTIONAL + } OPTIONAL, + maximumCCsRetrieval-r13 ENUMERATED {supported} OPTIONAL, + skipFallbackCombinations-r13 ENUMERATED {supported} OPTIONAL, + reducedIntNonContComb-r13 ENUMERATED {supported} OPTIONAL, + supportedBandListEUTRA-v1310 SupportedBandListEUTRA-v1310 OPTIONAL, + supportedBandCombinationReduced-r13 SupportedBandCombinationReduced-r13 OPTIONAL +} + +RF-Parameters-v1320 ::= SEQUENCE { + supportedBandListEUTRA-v1320 SupportedBandListEUTRA-v1320 OPTIONAL, + supportedBandCombination-v1320 SupportedBandCombination-v1320 OPTIONAL, + supportedBandCombinationAdd-v1320 SupportedBandCombinationAdd-v1320 OPTIONAL, + supportedBandCombinationReduced-v1320 SupportedBandCombinationReduced-v1320 OPTIONAL +} + +RF-Parameters-v1380 ::= SEQUENCE { + supportedBandCombination-v1380 SupportedBandCombination-v1380 OPTIONAL, + supportedBandCombinationAdd-v1380 SupportedBandCombinationAdd-v1380 OPTIONAL, + supportedBandCombinationReduced-v1380 SupportedBandCombinationReduced-v1380 OPTIONAL +} + +RF-Parameters-v1390 ::= SEQUENCE { + supportedBandCombination-v1390 SupportedBandCombination-v1390 OPTIONAL, + supportedBandCombinationAdd-v1390 SupportedBandCombinationAdd-v1390 OPTIONAL, + supportedBandCombinationReduced-v1390 SupportedBandCombinationReduced-v1390 OPTIONAL +} + +RF-Parameters-v12b0 ::= SEQUENCE { + maxLayersMIMO-Indication-r12 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1430 ::= SEQUENCE { + supportedBandCombination-v1430 SupportedBandCombination-v1430 OPTIONAL, + supportedBandCombinationAdd-v1430 SupportedBandCombinationAdd-v1430 OPTIONAL, + supportedBandCombinationReduced-v1430 SupportedBandCombinationReduced-v1430 OPTIONAL, + eNB-RequestedParameters-v1430 SEQUENCE { + requestedDiffFallbackCombList-r14 BandCombinationList-r14 + } OPTIONAL, + diffFallbackCombReport-r14 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1450 ::= SEQUENCE { + supportedBandCombination-v1450 SupportedBandCombination-v1450 OPTIONAL, + supportedBandCombinationAdd-v1450 SupportedBandCombinationAdd-v1450 OPTIONAL, + supportedBandCombinationReduced-v1450 SupportedBandCombinationReduced-v1450 OPTIONAL +} + +SupportedBandCombination-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-r10 + +SupportedBandCombinationExt-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParametersExt-r10 + +SupportedBandCombination-v1090 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1090 + +SupportedBandCombination-v10i0 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v10i0 + +SupportedBandCombination-v1130 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1130 + +SupportedBandCombination-v1250 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1250 + +SupportedBandCombination-v1270 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1270 + +SupportedBandCombination-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1320 + +SupportedBandCombination-v1380 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1380 + +SupportedBandCombination-v1390 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1390 + +SupportedBandCombination-v1430 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1430 + +SupportedBandCombination-v1450 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1450 + +SupportedBandCombinationAdd-r11 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-r11 + +SupportedBandCombinationAdd-v11d0 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v10i0 + +SupportedBandCombinationAdd-v1250 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1250 + +SupportedBandCombinationAdd-v1270 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1270 + +SupportedBandCombinationAdd-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1320 + +SupportedBandCombinationAdd-v1380 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1380 + +SupportedBandCombinationAdd-v1390 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1390 + +SupportedBandCombinationAdd-v1430 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1430 + +SupportedBandCombinationAdd-v1450 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1450 + +SupportedBandCombinationReduced-r13 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-r13 + +SupportedBandCombinationReduced-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1320 + +SupportedBandCombinationReduced-v1380 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1380 + +SupportedBandCombinationReduced-v1390 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1390 + +SupportedBandCombinationReduced-v1430 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1430 + +SupportedBandCombinationReduced-v1450 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1450 + +BandCombinationParameters-r10 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r10 + +BandCombinationParametersExt-r10 ::= SEQUENCE { + supportedBandwidthCombinationSet-r10 SupportedBandwidthCombinationSet-r10 OPTIONAL +} + +BandCombinationParameters-v1090 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1090 + +BandCombinationParameters-v10i0::= SEQUENCE { + bandParameterList-v10i0 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v10i0 OPTIONAL +} + +BandCombinationParameters-v1130 ::= SEQUENCE { + multipleTimingAdvance-r11 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r11 ENUMERATED {supported} OPTIONAL, + bandParameterList-r11 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1130 OPTIONAL, + ... +} + +BandCombinationParameters-r11 ::= SEQUENCE { + bandParameterList-r11 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-r11, + supportedBandwidthCombinationSet-r11 SupportedBandwidthCombinationSet-r10 OPTIONAL, + multipleTimingAdvance-r11 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r11 ENUMERATED {supported} OPTIONAL, + bandInfoEUTRA-r11 BandInfoEUTRA, + ... +} + +BandCombinationParameters-v1250::= SEQUENCE { + dc-Support-r12 SEQUENCE { + asynchronous-r12 ENUMERATED {supported} OPTIONAL, + supportedCellGrouping-r12 CHOICE { + threeEntries-r12 BIT STRING (SIZE(3)), + fourEntries-r12 BIT STRING (SIZE(7)), + fiveEntries-r12 BIT STRING (SIZE(15)) + } OPTIONAL + } OPTIONAL, + supportedNAICS-2CRS-AP-r12 BIT STRING (SIZE (1..maxNAICS-Entries-r12)) OPTIONAL, + commSupportedBandsPerBC-r12 BIT STRING (SIZE (1.. maxBands)) OPTIONAL, + ... +} + +BandCombinationParameters-v1270 ::= SEQUENCE { + bandParameterList-v1270 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1270 OPTIONAL +} + +BandCombinationParameters-r13 ::= SEQUENCE { + differentFallbackSupported-r13 ENUMERATED {true} OPTIONAL, + bandParameterList-r13 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r13, + supportedBandwidthCombinationSet-r13 SupportedBandwidthCombinationSet-r10 OPTIONAL, + multipleTimingAdvance-r13 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r13 ENUMERATED {supported} OPTIONAL, + bandInfoEUTRA-r13 BandInfoEUTRA, + dc-Support-r13 SEQUENCE { + asynchronous-r13 ENUMERATED {supported} OPTIONAL, + supportedCellGrouping-r13 CHOICE { + threeEntries-r13 BIT STRING (SIZE(3)), + fourEntries-r13 BIT STRING (SIZE(7)), + fiveEntries-r13 BIT STRING (SIZE(15)) + } OPTIONAL + } OPTIONAL, + supportedNAICS-2CRS-AP-r13 BIT STRING (SIZE (1..maxNAICS-Entries-r12)) OPTIONAL, + commSupportedBandsPerBC-r13 BIT STRING (SIZE (1.. maxBands)) OPTIONAL +} + +BandCombinationParameters-v1320 ::= SEQUENCE { + bandParameterList-v1320 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1320 OPTIONAL, + additionalRx-Tx-PerformanceReq-r13 ENUMERATED {supported} OPTIONAL +} + +BandCombinationParameters-v1380 ::= SEQUENCE { + bandParameterList-v1380 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1380 OPTIONAL +} + +BandCombinationParameters-v1390 ::= SEQUENCE { + ue-CA-PowerClass-N-r13 ENUMERATED {class2} OPTIONAL +} + +BandCombinationParameters-v1430 ::= SEQUENCE { + bandParameterList-v1430 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1430 OPTIONAL, + v2x-SupportedTxBandCombListPerBC-r14 BIT STRING (SIZE (1.. maxBandComb-r13)) OPTIONAL, + v2x-SupportedRxBandCombListPerBC-r14 BIT STRING (SIZE (1.. maxBandComb-r13)) OPTIONAL +} + +BandCombinationParameters-v1450 ::= SEQUENCE { + bandParameterList-v1450 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1450 OPTIONAL +} + +SupportedBandwidthCombinationSet-r10 ::= BIT STRING (SIZE (1..maxBandwidthCombSet-r10)) + +BandParameters-r10 ::= SEQUENCE { + bandEUTRA-r10 FreqBandIndicator, + bandParametersUL-r10 BandParametersUL-r10 OPTIONAL, + bandParametersDL-r10 BandParametersDL-r10 OPTIONAL +} + +BandParameters-v1090 ::= SEQUENCE { + bandEUTRA-v1090 FreqBandIndicator-v9e0 OPTIONAL, + ... +} + +BandParameters-v10i0::= SEQUENCE { + bandParametersDL-v10i0 SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-v10i0 +} + +BandParameters-v1130 ::= SEQUENCE { + supportedCSI-Proc-r11 ENUMERATED {n1, n3, n4} +} + +BandParameters-r11 ::= SEQUENCE { + bandEUTRA-r11 FreqBandIndicator-r11, + bandParametersUL-r11 BandParametersUL-r10 OPTIONAL, + bandParametersDL-r11 BandParametersDL-r10 OPTIONAL, + supportedCSI-Proc-r11 ENUMERATED {n1, n3, n4} OPTIONAL +} + +BandParameters-v1270 ::= SEQUENCE { + bandParametersDL-v1270 SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-v1270 +} + +BandParameters-r13 ::= SEQUENCE { + bandEUTRA-r13 FreqBandIndicator-r11, + bandParametersUL-r13 BandParametersUL-r13 OPTIONAL, + bandParametersDL-r13 BandParametersDL-r13 OPTIONAL, + supportedCSI-Proc-r13 ENUMERATED {n1, n3, n4} OPTIONAL +} + +BandParameters-v1320 ::= SEQUENCE { + bandParametersDL-v1320 MIMO-CA-ParametersPerBoBC-r13 +} + +BandParameters-v1380 ::= SEQUENCE { + txAntennaSwitchDL-r13 INTEGER (1..32) OPTIONAL, + txAntennaSwitchUL-r13 INTEGER (1..32) OPTIONAL +} + +BandParameters-v1430 ::= SEQUENCE { + bandParametersDL-v1430 MIMO-CA-ParametersPerBoBC-v1430 OPTIONAL, + ul-256QAM-r14 ENUMERATED {supported} OPTIONAL, + ul-256QAM-perCC-InfoList-r14 SEQUENCE (SIZE (2..maxServCell-r13)) OF UL-256QAM-perCC-Info-r14 OPTIONAL, + retuningTimeInfoBandList-r14 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + RetuningTimeInfo-r14 OPTIONAL +} + +BandParameters-v1450 ::= SEQUENCE { + must-CapabilityPerBand-r14 MUST-Parameters-r14 OPTIONAL +} + +V2X-BandParameters-r14 ::= SEQUENCE { + v2x-FreqBandEUTRA-r14 FreqBandIndicator-r11, + bandParametersTxSL-r14 BandParametersTxSL-r14 OPTIONAL, + bandParametersRxSL-r14 BandParametersRxSL-r14 OPTIONAL +} + +BandParametersTxSL-r14 ::= SEQUENCE { + v2x-BandwidthClassTxSL-r14 V2X-BandwidthClassSL-r14, + v2x-eNB-Scheduled-r14 ENUMERATED {supported} OPTIONAL, + v2x-HighPower-r14 ENUMERATED {supported} OPTIONAL +} + +BandParametersRxSL-r14 ::= SEQUENCE { + v2x-BandwidthClassRxSL-r14 V2X-BandwidthClassSL-r14, + v2x-HighReception-r14 ENUMERATED {supported} OPTIONAL +} + +V2X-BandwidthClassSL-r14 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF V2X-BandwidthClass-r14 + +UL-256QAM-perCC-Info-r14 ::= SEQUENCE { + ul-256QAM-perCC-r14 ENUMERATED {supported} OPTIONAL +} + +BandParametersUL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersUL-r10 + +BandParametersUL-r13 ::= CA-MIMO-ParametersUL-r10 + +CA-MIMO-ParametersUL-r10 ::= SEQUENCE { + ca-BandwidthClassUL-r10 CA-BandwidthClass-r10, + supportedMIMO-CapabilityUL-r10 MIMO-CapabilityUL-r10 OPTIONAL +} + +BandParametersDL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-r10 + +BandParametersDL-r13 ::= CA-MIMO-ParametersDL-r13 + +CA-MIMO-ParametersDL-r10 ::= SEQUENCE { + ca-BandwidthClassDL-r10 CA-BandwidthClass-r10, + supportedMIMO-CapabilityDL-r10 MIMO-CapabilityDL-r10 OPTIONAL +} + +CA-MIMO-ParametersDL-v10i0 ::= SEQUENCE { + fourLayerTM3-TM4-r10 ENUMERATED {supported} OPTIONAL +} + +CA-MIMO-ParametersDL-v1270 ::= SEQUENCE { + intraBandContiguousCC-InfoList-r12 SEQUENCE (SIZE (1..maxServCell-r10)) OF IntraBandContiguousCC-Info-r12 +} + +CA-MIMO-ParametersDL-r13 ::= SEQUENCE { + ca-BandwidthClassDL-r13 CA-BandwidthClass-r10, + supportedMIMO-CapabilityDL-r13 MIMO-CapabilityDL-r10 OPTIONAL, + fourLayerTM3-TM4-r13 ENUMERATED {supported} OPTIONAL, + intraBandContiguousCC-InfoList-r13 SEQUENCE (SIZE (1..maxServCell-r13)) OF IntraBandContiguousCC-Info-r12 +} + +IntraBandContiguousCC-Info-r12 ::= SEQUENCE { + fourLayerTM3-TM4-perCC-r12 ENUMERATED {supported} OPTIONAL, + supportedMIMO-CapabilityDL-r12 MIMO-CapabilityDL-r10 OPTIONAL, + supportedCSI-Proc-r12 ENUMERATED {n1, n3, n4} OPTIONAL +} + +CA-BandwidthClass-r10 ::= ENUMERATED {a, b, c, d, e, f, ...} + +V2X-BandwidthClass-r14 ::= ENUMERATED {a, b, c, d, e, f, ...} + +MIMO-CapabilityUL-r10 ::= ENUMERATED {twoLayers, fourLayers} + +MIMO-CapabilityDL-r10 ::= ENUMERATED {twoLayers, fourLayers, eightLayers} + +MUST-Parameters-r14 ::= SEQUENCE { + must-TM234-UpTo2Tx-r14 ENUMERATED {supported} OPTIONAL, + must-TM89-UpToOneInterferingLayer-r14 ENUMERATED {supported} OPTIONAL, + must-TM10-UpToOneInterferingLayer-r14 ENUMERATED {supported} OPTIONAL, + must-TM89-UpToThreeInterferingLayers-r14 ENUMERATED {supported} OPTIONAL, + must-TM10-UpToThreeInterferingLayers-r14 ENUMERATED {supported} OPTIONAL +} + +SupportedBandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA + +SupportedBandListEUTRA-v9e0::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v9e0 + +SupportedBandListEUTRA-v1250 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1250 + +SupportedBandListEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1310 + +SupportedBandListEUTRA-v1320 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1320 + +SupportedBandEUTRA ::= SEQUENCE { + bandEUTRA FreqBandIndicator, + halfDuplex BOOLEAN +} + +SupportedBandEUTRA-v9e0 ::= SEQUENCE { + bandEUTRA-v9e0 FreqBandIndicator-v9e0 OPTIONAL +} + +SupportedBandEUTRA-v1250 ::= SEQUENCE { + dl-256QAM-r12 ENUMERATED {supported} OPTIONAL, + ul-64QAM-r12 ENUMERATED {supported} OPTIONAL +} + +SupportedBandEUTRA-v1310 ::= SEQUENCE { + ue-PowerClass-5-r13 ENUMERATED {supported} OPTIONAL +} +SupportedBandEUTRA-v1320 ::= SEQUENCE { + intraFreq-CE-NeedForGaps-r13 ENUMERATED {supported} OPTIONAL, + ue-PowerClass-N-r13 ENUMERATED {class1, class2, class4} OPTIONAL +} + +MeasParameters ::= SEQUENCE { + bandListEUTRA BandListEUTRA +} + +MeasParameters-v1020 ::= SEQUENCE { + bandCombinationListEUTRA-r10 BandCombinationListEUTRA-r10 +} + +MeasParameters-v1130 ::= SEQUENCE { + rsrqMeasWideband-r11 ENUMERATED {supported} OPTIONAL +} + +MeasParameters-v11a0 ::= SEQUENCE { + benefitsFromInterruption-r11 ENUMERATED {true} OPTIONAL +} + +MeasParameters-v1250 ::= SEQUENCE { + timerT312-r12 ENUMERATED {supported} OPTIONAL, + alternativeTimeToTrigger-r12 ENUMERATED {supported} OPTIONAL, + incMonEUTRA-r12 ENUMERATED {supported} OPTIONAL, + incMonUTRA-r12 ENUMERATED {supported} OPTIONAL, + extendedMaxMeasId-r12 ENUMERATED {supported} OPTIONAL, + extendedRSRQ-LowerRange-r12 ENUMERATED {supported} OPTIONAL, + rsrq-OnAllSymbols-r12 ENUMERATED {supported} OPTIONAL, + crs-DiscoverySignalsMeas-r12 ENUMERATED {supported} OPTIONAL, + csi-RS-DiscoverySignalsMeas-r12 ENUMERATED {supported} OPTIONAL +} + +MeasParameters-v1310 ::= SEQUENCE { + rs-SINR-Meas-r13 ENUMERATED {supported} OPTIONAL, + whiteCellList-r13 ENUMERATED {supported} OPTIONAL, + extendedMaxObjectId-r13 ENUMERATED {supported} OPTIONAL, + ul-PDCP-Delay-r13 ENUMERATED {supported} OPTIONAL, + extendedFreqPriorities-r13 ENUMERATED {supported} OPTIONAL, + multiBandInfoReport-r13 ENUMERATED {supported} OPTIONAL, + rssi-AndChannelOccupancyReporting-r13 ENUMERATED {supported} OPTIONAL +} + +MeasParameters-v1430 ::= SEQUENCE { + ceMeasurements-r14 ENUMERATED {supported} OPTIONAL, + ncsg-r14 ENUMERATED {supported} OPTIONAL, + shortMeasurementGap-r14 ENUMERATED {supported} OPTIONAL, + perServingCellMeasurementGap-r14 ENUMERATED {supported} OPTIONAL, + nonUniformGap-r14 ENUMERATED {supported} OPTIONAL +} + +BandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF BandInfoEUTRA + +BandCombinationListEUTRA-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandInfoEUTRA + +BandInfoEUTRA ::= SEQUENCE { + interFreqBandList InterFreqBandList, + interRAT-BandList InterRAT-BandList OPTIONAL +} + +InterFreqBandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterFreqBandInfo + +InterFreqBandInfo ::= SEQUENCE { + interFreqNeedForGaps BOOLEAN +} + +InterRAT-BandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterRAT-BandInfo + +InterRAT-BandInfo ::= SEQUENCE { + interRAT-NeedForGaps BOOLEAN +} + +IRAT-ParametersNR-r15 ::= SEQUENCE { + en-DC-r15 ENUMERATED {supported} OPTIONAL, + supportedBandListNR-r15 SupportedBandListNR-r15 OPTIONAL +} + +PDCP-ParametersNR-r15 ::= SEQUENCE { + rohc-Profiles-r15 ROHC-ProfileSupportList-r15, + rohc-ContextMaxSessions-r15 ENUMERATED { + cs2, cs4, cs8, cs12, cs16, cs24, cs32, + cs48, cs64, cs128, cs256, cs512, cs1024, + cs16384, spare2, spare1} DEFAULT cs16, + rohc-ProfilesUL-Only-r15 SEQUENCE { + profile0x0006-r15 BOOLEAN + }, + rohc-ContextContinue-r15 ENUMERATED {supported} OPTIONAL, + outOfOrderDelivery-r15 ENUMERATED {supported} OPTIONAL, + sn-SizeLo-r15 ENUMERATED {supported} OPTIONAL, + ims-VoiceOverNR-PDCP-MCG-Bearer-r15 ENUMERATED {supported} OPTIONAL, + ims-VoiceOverNR-PDCP-SCG-Bearer-r15 ENUMERATED {supported} OPTIONAL +} + +ROHC-ProfileSupportList-r15 ::= SEQUENCE { + profile0x0001-r15 BOOLEAN, + profile0x0002-r15 BOOLEAN, + profile0x0003-r15 BOOLEAN, + profile0x0004-r15 BOOLEAN, + profile0x0006-r15 BOOLEAN, + profile0x0101-r15 BOOLEAN, + profile0x0102-r15 BOOLEAN, + profile0x0103-r15 BOOLEAN, + profile0x0104-r15 BOOLEAN +} + +SupportedBandListNR-r15 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandNR-r15 + +SupportedBandNR-r15 ::= SEQUENCE { + bandNR-r15 FreqBandIndicatorNR-r15 +} + +FreqBandIndicatorNR-r15 ::= INTEGER (1.. maxFBI-NR-r15) + +IRAT-ParametersUTRA-FDD ::= SEQUENCE { + supportedBandListUTRA-FDD SupportedBandListUTRA-FDD +} + +IRAT-ParametersUTRA-v920 ::= SEQUENCE { + e-RedirectionUTRA-r9 ENUMERATED {supported} +} + +IRAT-ParametersUTRA-v9c0 ::= SEQUENCE { + voiceOverPS-HS-UTRA-FDD-r9 ENUMERATED {supported} OPTIONAL, + voiceOverPS-HS-UTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-FDD-ToUTRA-FDD-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-FDD-ToGERAN-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-TDD128-ToUTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-TDD128-ToGERAN-r9 ENUMERATED {supported} OPTIONAL +} + +IRAT-ParametersUTRA-v9h0 ::= SEQUENCE { + mfbi-UTRA-r9 ENUMERATED {supported} +} + +SupportedBandListUTRA-FDD ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-FDD + +SupportedBandUTRA-FDD ::= ENUMERATED { + bandI, bandII, bandIII, bandIV, bandV, bandVI, + bandVII, bandVIII, bandIX, bandX, bandXI, + bandXII, bandXIII, bandXIV, bandXV, bandXVI, ..., + bandXVII-8a0, bandXVIII-8a0, bandXIX-8a0, bandXX-8a0, + bandXXI-8a0, bandXXII-8a0, bandXXIII-8a0, bandXXIV-8a0, + bandXXV-8a0, bandXXVI-8a0, bandXXVII-8a0, bandXXVIII-8a0, + bandXXIX-8a0, bandXXX-8a0, bandXXXI-8a0, bandXXXII-8a0} + +IRAT-ParametersUTRA-TDD128 ::= SEQUENCE { + supportedBandListUTRA-TDD128 SupportedBandListUTRA-TDD128 +} + +SupportedBandListUTRA-TDD128 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD128 + +SupportedBandUTRA-TDD128 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD384 ::= SEQUENCE { + supportedBandListUTRA-TDD384 SupportedBandListUTRA-TDD384 +} + +SupportedBandListUTRA-TDD384 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD384 + +SupportedBandUTRA-TDD384 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD768 ::= SEQUENCE { + supportedBandListUTRA-TDD768 SupportedBandListUTRA-TDD768 +} + +SupportedBandListUTRA-TDD768 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD768 + +SupportedBandUTRA-TDD768 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD-v1020 ::= SEQUENCE { + e-RedirectionUTRA-TDD-r10 ENUMERATED {supported} +} + +IRAT-ParametersGERAN ::= SEQUENCE { + supportedBandListGERAN SupportedBandListGERAN, + interRAT-PS-HO-ToGERAN BOOLEAN +} + +IRAT-ParametersGERAN-v920 ::= SEQUENCE { + dtm-r9 ENUMERATED {supported} OPTIONAL, + e-RedirectionGERAN-r9 ENUMERATED {supported} OPTIONAL +} + +SupportedBandListGERAN ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandGERAN + +SupportedBandGERAN ::= ENUMERATED { + gsm450, gsm480, gsm710, gsm750, gsm810, gsm850, + gsm900P, gsm900E, gsm900R, gsm1800, gsm1900, + spare5, spare4, spare3, spare2, spare1, ...} + +IRAT-ParametersCDMA2000-HRPD ::= SEQUENCE { + supportedBandListHRPD SupportedBandListHRPD, + tx-ConfigHRPD ENUMERATED {single, dual}, + rx-ConfigHRPD ENUMERATED {single, dual} +} + +SupportedBandListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + +IRAT-ParametersCDMA2000-1XRTT ::= SEQUENCE { + supportedBandList1XRTT SupportedBandList1XRTT, + tx-Config1XRTT ENUMERATED {single, dual}, + rx-Config1XRTT ENUMERATED {single, dual} +} + +IRAT-ParametersCDMA2000-1XRTT-v920 ::= SEQUENCE { + e-CSFB-1XRTT-r9 ENUMERATED {supported}, + e-CSFB-ConcPS-Mob1XRTT-r9 ENUMERATED {supported} OPTIONAL +} + +IRAT-ParametersCDMA2000-1XRTT-v1020 ::= SEQUENCE { + e-CSFB-dual-1XRTT-r10 ENUMERATED {supported} +} + +IRAT-ParametersCDMA2000-v1130 ::= SEQUENCE { + cdma2000-NW-Sharing-r11 ENUMERATED {supported} OPTIONAL +} + +SupportedBandList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + +IRAT-ParametersWLAN-r13 ::= SEQUENCE { + supportedBandListWLAN-r13 SEQUENCE (SIZE (1..maxWLAN-Bands-r13)) OF WLAN-BandIndicator-r13 OPTIONAL +} + +CSG-ProximityIndicationParameters-r9 ::= SEQUENCE { + intraFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL, + interFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL, + utran-ProximityIndication-r9 ENUMERATED {supported} OPTIONAL +} + +NeighCellSI-AcquisitionParameters-r9 ::= SEQUENCE { + intraFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL, + interFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL, + utran-SI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL +} + +SON-Parameters-r9 ::= SEQUENCE { + rach-Report-r9 ENUMERATED {supported} OPTIONAL +} + +UE-BasedNetwPerfMeasParameters-r10 ::= SEQUENCE { + loggedMeasurementsIdle-r10 ENUMERATED {supported} OPTIONAL, + standaloneGNSS-Location-r10 ENUMERATED {supported} OPTIONAL +} + +UE-BasedNetwPerfMeasParameters-v1250 ::= SEQUENCE { + loggedMBSFNMeasurements-r12 ENUMERATED {supported} +} + +UE-BasedNetwPerfMeasParameters-v1430 ::= SEQUENCE { + locationReport-r14 ENUMERATED {supported} OPTIONAL +} + +OTDOA-PositioningCapabilities-r10 ::= SEQUENCE { + otdoa-UE-Assisted-r10 ENUMERATED {supported}, + interFreqRSTD-Measurement-r10 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-r11 ::= SEQUENCE { + inDeviceCoexInd-r11 ENUMERATED {supported} OPTIONAL, + powerPrefInd-r11 ENUMERATED {supported} OPTIONAL, + ue-Rx-TxTimeDiffMeasurements-r11 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v11d0 ::= SEQUENCE { + inDeviceCoexInd-UL-CA-r11 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v1360 ::= SEQUENCE { + inDeviceCoexInd-HardwareSharingInd-r13 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v1430 ::= SEQUENCE { + bwPrefInd-r14 ENUMERATED {supported} OPTIONAL, + rlm-ReportSupport-r14 ENUMERATED {supported} OPTIONAL +} + +OtherParameters-v1450 ::= SEQUENCE { + overheatingInd-r14 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v1460 ::= SEQUENCE { + nonCSG-SI-Reporting-r14 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-r11 ::= SEQUENCE { + mbms-SCell-r11 ENUMERATED {supported} OPTIONAL, + mbms-NonServingCell-r11 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-v1250 ::= SEQUENCE { + mbms-AsyncDC-r12 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-v1430 ::= SEQUENCE { + fembmsDedicatedCell-r14 ENUMERATED {supported} OPTIONAL, + fembmsMixedCell-r14 ENUMERATED {supported} OPTIONAL, + subcarrierSpacingMBMS-khz7dot5-r14 ENUMERATED {supported} OPTIONAL, + subcarrierSpacingMBMS-khz1dot25-r14 ENUMERATED {supported} OPTIONAL +} + +FeMBMS-Unicast-Parameters-r14 ::= SEQUENCE { + unicast-fembmsMixedSCell-r14 ENUMERATED {supported} OPTIONAL, + emptyUnicastRegion-r14 ENUMERATED {supported} OPTIONAL +} + +SCPTM-Parameters-r13 ::= SEQUENCE { + scptm-ParallelReception-r13 ENUMERATED {supported} OPTIONAL, + scptm-SCell-r13 ENUMERATED {supported} OPTIONAL, + scptm-NonServingCell-r13 ENUMERATED {supported} OPTIONAL, + scptm-AsyncDC-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-r13 ::= SEQUENCE { + ce-ModeA-r13 ENUMERATED {supported} OPTIONAL, + ce-ModeB-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1320 ::= SEQUENCE { + intraFreqA3-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL, + intraFreqA3-CE-ModeB-r13 ENUMERATED {supported} OPTIONAL, + intraFreqHO-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL, + intraFreqHO-CE-ModeB-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1350 ::= SEQUENCE { + unicastFrequencyHopping-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1370 ::= SEQUENCE { + tm9-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL, + tm9-CE-ModeB-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1380 ::= SEQUENCE { + tm6-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1430 ::= SEQUENCE { + ce-SwitchWithoutHO-r14 ENUMERATED {supported} OPTIONAL +} + +LAA-Parameters-r13 ::= SEQUENCE { + crossCarrierSchedulingLAA-DL-r13 ENUMERATED {supported} OPTIONAL, + csi-RS-DRS-RRM-MeasurementsLAA-r13 ENUMERATED {supported} OPTIONAL, + downlinkLAA-r13 ENUMERATED {supported} OPTIONAL, + endingDwPTS-r13 ENUMERATED {supported} OPTIONAL, + secondSlotStartingPosition-r13 ENUMERATED {supported} OPTIONAL, + tm9-LAA-r13 ENUMERATED {supported} OPTIONAL, + tm10-LAA-r13 ENUMERATED {supported} OPTIONAL +} + +LAA-Parameters-v1430 ::= SEQUENCE { + crossCarrierSchedulingLAA-UL-r14 ENUMERATED {supported} OPTIONAL, + uplinkLAA-r14 ENUMERATED {supported} OPTIONAL, + twoStepSchedulingTimingInfo-r14 ENUMERATED {nPlus1, nPlus2, nPlus3} OPTIONAL, + uss-BlindDecodingAdjustment-r14 ENUMERATED {supported} OPTIONAL, + uss-BlindDecodingReduction-r14 ENUMERATED {supported} OPTIONAL, + outOfSequenceGrantHandling-r14 ENUMERATED {supported} OPTIONAL +} + +WLAN-IW-Parameters-r12 ::= SEQUENCE { + wlan-IW-RAN-Rules-r12 ENUMERATED {supported} OPTIONAL, + wlan-IW-ANDSF-Policies-r12 ENUMERATED {supported} OPTIONAL +} + +LWA-Parameters-r13 ::= SEQUENCE { + lwa-r13 ENUMERATED {supported} OPTIONAL, + lwa-SplitBearer-r13 ENUMERATED {supported} OPTIONAL, + wlan-MAC-Address-r13 OCTET STRING (SIZE (6)) OPTIONAL, + lwa-BufferSize-r13 ENUMERATED {supported} OPTIONAL +} + +LWA-Parameters-v1430 ::= SEQUENCE { + lwa-HO-WithoutWT-Change-r14 ENUMERATED {supported} OPTIONAL, + lwa-UL-r14 ENUMERATED {supported} OPTIONAL, + wlan-PeriodicMeas-r14 ENUMERATED {supported} OPTIONAL, + wlan-ReportAnyWLAN-r14 ENUMERATED {supported} OPTIONAL, + wlan-SupportedDataRate-r14 INTEGER (1..2048) OPTIONAL +} + +LWA-Parameters-v1440 ::= SEQUENCE { + lwa-RLC-UM-r14 ENUMERATED {supported} OPTIONAL +} + +WLAN-IW-Parameters-v1310 ::= SEQUENCE { + rclwi-r13 ENUMERATED {supported} OPTIONAL +} + +LWIP-Parameters-r13 ::= SEQUENCE { + lwip-r13 ENUMERATED {supported} OPTIONAL +} + +LWIP-Parameters-v1430 ::= SEQUENCE { + lwip-Aggregation-DL-r14 ENUMERATED {supported} OPTIONAL, + lwip-Aggregation-UL-r14 ENUMERATED {supported} OPTIONAL +} + +NAICS-Capability-List-r12 ::= SEQUENCE (SIZE (1..maxNAICS-Entries-r12)) OF NAICS-Capability-Entry-r12 + + +NAICS-Capability-Entry-r12 ::= SEQUENCE { + numberOfNAICS-CapableCC-r12 INTEGER(1..5), + numberOfAggregatedPRB-r12 ENUMERATED { + n50, n75, n100, n125, n150, n175, + n200, n225, n250, n275, n300, n350, + n400, n450, n500, spare}, + ... +} + +SL-Parameters-r12 ::= SEQUENCE { + commSimultaneousTx-r12 ENUMERATED {supported} OPTIONAL, + commSupportedBands-r12 FreqBandIndicatorListEUTRA-r12 OPTIONAL, + discSupportedBands-r12 SupportedBandInfoList-r12 OPTIONAL, + discScheduledResourceAlloc-r12 ENUMERATED {supported} OPTIONAL, + disc-UE-SelectedResourceAlloc-r12 ENUMERATED {supported} OPTIONAL, + disc-SLSS-r12 ENUMERATED {supported} OPTIONAL, + discSupportedProc-r12 ENUMERATED {n50, n400} OPTIONAL +} + +SL-Parameters-v1310 ::= SEQUENCE { + discSysInfoReporting-r13 ENUMERATED {supported} OPTIONAL, + commMultipleTx-r13 ENUMERATED {supported} OPTIONAL, + discInterFreqTx-r13 ENUMERATED {supported} OPTIONAL, + discPeriodicSLSS-r13 ENUMERATED {supported} OPTIONAL +} + +SL-Parameters-v1430 ::= SEQUENCE { + zoneBasedPoolSelection-r14 ENUMERATED {supported} OPTIONAL, + ue-AutonomousWithFullSensing-r14 ENUMERATED {supported} OPTIONAL, + ue-AutonomousWithPartialSensing-r14 ENUMERATED {supported} OPTIONAL, + sl-CongestionControl-r14 ENUMERATED {supported} OPTIONAL, + v2x-TxWithShortResvInterval-r14 ENUMERATED {supported} OPTIONAL, + v2x-numberTxRxTiming-r14 INTEGER(1..16) OPTIONAL, + v2x-nonAdjacentPSCCH-PSSCH-r14 ENUMERATED {supported} OPTIONAL, + slss-TxRx-r14 ENUMERATED {supported} OPTIONAL, + v2x-SupportedBandCombinationList-r14 V2X-SupportedBandCombination-r14 OPTIONAL +} + +V2X-SupportedBandCombination-r14 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF V2X-BandCombinationParameters-r14 + +V2X-BandCombinationParameters-r14 ::= SEQUENCE (SIZE (1.. maxSimultaneousBands-r10)) OF V2X-BandParameters-r14 + +SupportedBandInfoList-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandInfo-r12 + +SupportedBandInfo-r12 ::= SEQUENCE { + support-r12 ENUMERATED {supported} OPTIONAL +} + +FreqBandIndicatorListEUTRA-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicator-r11 + +MMTEL-Parameters-r14 ::= SEQUENCE { + delayBudgetReporting-r14 ENUMERATED {supported} OPTIONAL, + pusch-Enhancements-r14 ENUMERATED {supported} OPTIONAL, + recommendedBitRate-r14 ENUMERATED {supported} OPTIONAL, + recommendedBitRateQuery-r14 ENUMERATED {supported} OPTIONAL +} + +RetuningTimeInfo-r14 ::= SEQUENCE { + retuningInfo SEQUENCE { + rf-RetuningTimeDL-r14 ENUMERATED {n0, n0dot5, n1, n1dot5, n2, n2dot5, n3, + n3dot5, n4, n4dot5, n5, n5dot5, n6, n6dot5, + n7, spare1} OPTIONAL, + rf-RetuningTimeUL-r14 ENUMERATED {n0, n0dot5, n1, n1dot5, n2, n2dot5, n3, + n3dot5, n4, n4dot5, n5, n5dot5, n6, n6dot5, + n7, spare1} OPTIONAL + } +} + +HighSpeedEnhParameters-r14 ::= SEQUENCE { + measurementEnhancements-r14 ENUMERATED {supported} OPTIONAL, + demodulationEnhancements-r14 ENUMERATED {supported} OPTIONAL, + prach-Enhancements-r14 ENUMERATED {supported} OPTIONAL +} + + +UE-RadioPagingInfo-r12 ::= SEQUENCE { + ue-Category-v1250 INTEGER (0) OPTIONAL, + ..., + [[ ue-CategoryDL-v1310 ENUMERATED {m1} OPTIONAL, + ce-ModeA-r13 ENUMERATED {true} OPTIONAL, + ce-ModeB-r13 ENUMERATED {true} OPTIONAL + ]] + +} + + +UE-TimersAndConstants ::= SEQUENCE { + t300 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t301 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t310 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n310 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ..., + [[ t300-v1310 ENUMERATED { + ms2500, ms3000, ms3500, ms4000, ms5000, ms6000, ms8000, + ms10000} OPTIONAL, -- Need OR + t301-v1310 ENUMERATED { + ms2500, ms3000, ms3500, ms4000, ms5000, ms6000, ms8000, + ms10000} OPTIONAL -- Need OR + ]], + [[ t310-v1330 ENUMERATED {ms4000, ms6000} + OPTIONAL -- Need OR + ]] +} + + +VisitedCellInfoList-r12 ::= SEQUENCE (SIZE (1..maxCellHistory-r12)) OF VisitedCellInfo-r12 + +VisitedCellInfo-r12 ::= SEQUENCE { + visitedCellId-r12 CHOICE { + cellGlobalId-r12 CellGlobalIdEUTRA, + pci-arfcn-r12 SEQUENCE { + physCellId-r12 PhysCellId, + carrierFreq-r12 ARFCN-ValueEUTRA-r9 + } + } OPTIONAL, + timeSpent-r12 INTEGER (0..4095), + ... +} + + +WLAN-OffloadConfig-r12 ::= SEQUENCE { + thresholdRSRP-r12 SEQUENCE { + thresholdRSRP-Low-r12 RSRP-Range, + thresholdRSRP-High-r12 RSRP-Range + } OPTIONAL, -- Need OR + thresholdRSRQ-r12 SEQUENCE { + thresholdRSRQ-Low-r12 RSRQ-Range, + thresholdRSRQ-High-r12 RSRQ-Range + } OPTIONAL, -- Need OR + thresholdRSRQ-OnAllSymbolsWithWB-r12 SEQUENCE { + thresholdRSRQ-OnAllSymbolsWithWB-Low-r12 RSRQ-Range, + thresholdRSRQ-OnAllSymbolsWithWB-High-r12 RSRQ-Range + } OPTIONAL, -- Need OP + thresholdRSRQ-OnAllSymbols-r12 SEQUENCE { + thresholdRSRQ-OnAllSymbolsLow-r12 RSRQ-Range, + thresholdRSRQ-OnAllSymbolsHigh-r12 RSRQ-Range + } OPTIONAL, -- Need OP + thresholdRSRQ-WB-r12 SEQUENCE { + thresholdRSRQ-WB-Low-r12 RSRQ-Range, + thresholdRSRQ-WB-High-r12 RSRQ-Range + } OPTIONAL, -- Need OP + + thresholdChannelUtilization-r12 SEQUENCE { + thresholdChannelUtilizationLow-r12 INTEGER (0..255), + thresholdChannelUtilizationHigh-r12 INTEGER (0..255) + } OPTIONAL, -- Need OR + thresholdBackhaul-Bandwidth-r12 SEQUENCE { + thresholdBackhaulDL-BandwidthLow-r12 WLAN-backhaulRate-r12, + thresholdBackhaulDL-BandwidthHigh-r12 WLAN-backhaulRate-r12, + thresholdBackhaulUL-BandwidthLow-r12 WLAN-backhaulRate-r12, + thresholdBackhaulUL-BandwidthHigh-r12 WLAN-backhaulRate-r12 + } OPTIONAL, -- Need OR + thresholdWLAN-RSSI-r12 SEQUENCE { + thresholdWLAN-RSSI-Low-r12 INTEGER (0..255), + thresholdWLAN-RSSI-High-r12 INTEGER (0..255) + } OPTIONAL, -- Need OR + offloadPreferenceIndicator-r12 BIT STRING (SIZE (16)) OPTIONAL, -- Need OR + t-SteeringWLAN-r12 T-Reselection OPTIONAL, -- Need OR + ... +} + +WLAN-backhaulRate-r12 ::= ENUMERATED + {r0, r4, r8, r16, r32, r64, r128, r256, r512, + r1024, r2048, r4096, r8192, r16384, r32768, r65536, r131072, + r262144, r524288, r1048576, r2097152, r4194304, r8388608, + r16777216, r33554432, r67108864, r134217728, r268435456, + r536870912, r1073741824, r2147483648, r4294967296} + + +MBMS-NotificationConfig-r9 ::= SEQUENCE { + notificationRepetitionCoeff-r9 ENUMERATED {n2, n4}, + notificationOffset-r9 INTEGER (0..10), + notificationSF-Index-r9 INTEGER (1..6) +} + +MBMS-NotificationConfig-v1430 ::= SEQUENCE { + notificationSF-Index-v1430 INTEGER (7..10) +} + + +MBMS-ServiceList-r13 ::= SEQUENCE (SIZE (0..maxMBMS-ServiceListPerUE-r13)) OF MBMS-ServiceInfo-r13 + +MBMS-ServiceInfo-r13 ::= SEQUENCE { + tmgi-r13 TMGI-r9 +} + + +MBSFN-AreaId-r12 ::= INTEGER (0..255) + + +MBSFN-AreaInfoList-r9 ::= SEQUENCE (SIZE(1..maxMBSFN-Area)) OF MBSFN-AreaInfo-r9 + +MBSFN-AreaInfo-r9 ::= SEQUENCE { + mbsfn-AreaId-r9 MBSFN-AreaId-r12, + non-MBSFNregionLength ENUMERATED {s1, s2}, + notificationIndicator-r9 INTEGER (0..7), + mcch-Config-r9 SEQUENCE { + mcch-RepetitionPeriod-r9 ENUMERATED {rf32, rf64, rf128, rf256}, + mcch-Offset-r9 INTEGER (0..10), + mcch-ModificationPeriod-r9 ENUMERATED {rf512, rf1024}, + sf-AllocInfo-r9 BIT STRING (SIZE(6)), + signallingMCS-r9 ENUMERATED {n2, n7, n13, n19} + }, + ..., + [[ mcch-Config-r14 SEQUENCE { + mcch-RepetitionPeriod-v1430 ENUMERATED {rf1, rf2, rf4, rf8, + rf16 } OPTIONAL, -- Need OR + mcch-ModificationPeriod-v1430 ENUMERATED {rf1, rf2, rf4, rf8, rf16, rf32, rf64, rf128, + rf256, spare7} OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + subcarrierSpacingMBMS-r14 ENUMERATED {khz-7dot5, khz-1dot25} OPTIONAL -- Need OR + ]] +} + + +MBSFN-SubframeConfig ::= SEQUENCE { + radioframeAllocationPeriod ENUMERATED {n1, n2, n4, n8, n16, n32}, + radioframeAllocationOffset INTEGER (0..7), + subframeAllocation CHOICE { + oneFrame BIT STRING (SIZE(6)), + fourFrames BIT STRING (SIZE(24)) + } +} + +MBSFN-SubframeConfig-v1430 ::= SEQUENCE { + subframeAllocation-v1430 CHOICE { + oneFrame-v1430 BIT STRING (SIZE(2)), + fourFrames-v1430 BIT STRING (SIZE(8)) + } +} + + +PMCH-InfoList-r9 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-Info-r9 + +PMCH-InfoListExt-r12 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-InfoExt-r12 + +PMCH-Info-r9 ::= SEQUENCE { + pmch-Config-r9 PMCH-Config-r9, + mbms-SessionInfoList-r9 MBMS-SessionInfoList-r9, + ... +} + +PMCH-InfoExt-r12 ::= SEQUENCE { + pmch-Config-r12 PMCH-Config-r12, + mbms-SessionInfoList-r12 MBMS-SessionInfoList-r9, + ... +} + +MBMS-SessionInfoList-r9 ::= SEQUENCE (SIZE (0..maxSessionPerPMCH)) OF MBMS-SessionInfo-r9 + +MBMS-SessionInfo-r9 ::= SEQUENCE { + tmgi-r9 TMGI-r9, + sessionId-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Need OR + logicalChannelIdentity-r9 INTEGER (0..maxSessionPerPMCH-1), + ... +} + +PMCH-Config-r9 ::= SEQUENCE { + sf-AllocEnd-r9 INTEGER (0..1535), + dataMCS-r9 INTEGER (0..28), + mch-SchedulingPeriod-r9 ENUMERATED { + rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024}, + ... +} + +PMCH-Config-r12 ::= SEQUENCE { + sf-AllocEnd-r12 INTEGER (0..1535), + dataMCS-r12 CHOICE { + normal-r12 INTEGER (0..28), + higerOrder-r12 INTEGER (0..27) + }, + mch-SchedulingPeriod-r12 ENUMERATED { + rf4, rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024}, + ..., + [[ mch-SchedulingPeriod-v1430 ENUMERATED {rf1, rf2} OPTIONAL -- Need OR + ]] +} + +TMGI-r9 ::= SEQUENCE { + plmn-Id-r9 CHOICE { + plmn-Index-r9 INTEGER (1..maxPLMN-r11), + explicitValue-r9 PLMN-Identity + }, + serviceId-r9 OCTET STRING (SIZE (3)) +} + + +SC-MTCH-InfoList-r13 ::= SEQUENCE (SIZE (0..maxSC-MTCH-r13)) OF SC-MTCH-Info-r13 + +SC-MTCH-Info-r13 ::= SEQUENCE { + mbmsSessionInfo-r13 MBMSSessionInfo-r13, + g-RNTI-r13 BIT STRING(SIZE(16)), + sc-mtch-schedulingInfo-r13 SC-MTCH-SchedulingInfo-r13 OPTIONAL, -- Need OP + sc-mtch-neighbourCell-r13 BIT STRING (SIZE(maxNeighCell-SCPTM-r13)) OPTIONAL, -- Need OP + ..., + [[ p-a-r13 ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} OPTIONAL -- Need ON + ]] +} + +MBMSSessionInfo-r13 ::= SEQUENCE { + tmgi-r13 TMGI-r9, + sessionId-r13 OCTET STRING (SIZE (1)) OPTIONAL -- Need OR +} + +SC-MTCH-SchedulingInfo-r13::= SEQUENCE { + onDurationTimerSCPTM-r13 ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200}, + drx-InactivityTimerSCPTM-r13 ENUMERATED { + psf0, psf1, psf2, psf4, psf8, + psf10, psf20, psf40, + psf80, psf160, ps320, + psf640, psf960, + psf1280, psf1920, psf2560}, + schedulingPeriodStartOffsetSCPTM-r13 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2048), + sf4096 INTEGER(0..4096), + sf8192 INTEGER(0..8192) + }, + ... +} + + +SC-MTCH-InfoList-BR-r14 ::= SEQUENCE (SIZE (0..maxSC-MTCH-BR-r14)) OF SC-MTCH-Info-BR-r14 + +SC-MTCH-Info-BR-r14 ::= SEQUENCE { + sc-mtch-CarrierFreq-r14 ARFCN-ValueEUTRA-r9, + mbmsSessionInfo-r14 MBMSSessionInfo-r13, + g-RNTI-r14 BIT STRING(SIZE(16)), + sc-mtch-schedulingInfo-r14 SC-MTCH-SchedulingInfo-BR-r14 OPTIONAL, -- Need OP + sc-mtch-neighbourCell-r14 BIT STRING (SIZE(maxNeighCell-SCPTM-r13)) OPTIONAL, -- Need OP + mpdcch-Narrowband-SC-MTCH-r14 INTEGER (1.. maxAvailNarrowBands-r13), + mpdcch-NumRepetition-SC-MTCH-r14 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + mpdcch-StartSF-SC-MTCH-r14 CHOICE { + fdd-r14 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, + v5, v8, v10}, + tdd-r14 ENUMERATED {v1, v2, v4, v5, v8, v10, + v20} + }, + mpdcch-PDSCH-HoppingConfig-SC-MTCH-r14 ENUMERATED {on, off}, + mpdcch-PDSCH-CEmodeConfig-SC-MTCH-r14 ENUMERATED {ce-ModeA, ce-ModeB}, + mpdcch-PDSCH-MaxBandwidth-SC-MTCH-r14 ENUMERATED {bw1dot4, bw5}, + mpdcch-Offset-SC-MTCH-r14 ENUMERATED {zero, oneEighth, oneQuarter, + threeEighth, oneHalf, fiveEighth, + threeQuarter, sevenEighth}, + + p-a-r14 ENUMERATED { dB-6, dB-4dot77, dB-3, + dB-1dot77, dB0, dB1, dB2, + dB3} OPTIONAL,-- Need OR + ... +} + +SC-MTCH-SchedulingInfo-BR-r14::= SEQUENCE { + onDurationTimerSCPTM-r14 ENUMERATED { + psf300, psf400, psf500, psf600, + psf800, psf1000, psf1200, psf1600}, + drx-InactivityTimerSCPTM-r14 ENUMERATED { + psf0, psf1, psf2, psf4, psf8, psf16, + psf32, psf64, psf128, psf256, ps512, + psf1024, psf2048, psf4096, psf8192, psf16384}, + schedulingPeriodStartOffsetSCPTM-r14 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2047), + sf4096 INTEGER(0..4095), + sf8192 INTEGER(0..8191) + }, + ... +} + + +SCPTM-NeighbourCellList-r13 ::= SEQUENCE (SIZE (1..maxNeighCell-SCPTM-r13)) OF PCI-ARFCN-r13 + +PCI-ARFCN-r13 ::= SEQUENCE { + physCellId-r13 PhysCellId, + carrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL +} + + +SL-AnchorCarrierFreqList-V2X-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF ARFCN-ValueEUTRA-r9 + + +SL-CBR-CommonTxConfigList-r14 ::= SEQUENCE { + cbr-RangeCommonConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-CBRConfig-r14)) OF SL-CBR-Levels-Config-r14, + sl-CBR-PSSCH-TxConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-TxConfig-r14)) OF SL-CBR-PSSCH-TxConfig-r14 +} + +SL-CBR-Levels-Config-r14 ::= SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF SL-CBR-r14 + + +SL-CBR-PSSCH-TxConfig-r14 ::= SEQUENCE { + cr-Limit-r14 INTEGER(0..10000), + tx-Parameters-r14 SL-PSSCH-TxParameters-r14 +} + +SL-CBR-r14 ::= INTEGER(0..100) + + +SL-CBR-PPPP-TxConfigList-r14 ::= SEQUENCE (SIZE (1..8)) OF SL-PPPP-TxConfigIndex-r14 + +SL-PPPP-TxConfigIndex-r14 ::= SEQUENCE { + priorityThreshold-r14 SL-Priority-r13, + defaultTxConfigIndex-r14 INTEGER(0..maxCBR-Level-1-r14), + cbr-ConfigIndex-r14 INTEGER(0..maxSL-V2X-CBRConfig-1-r14), + tx-ConfigIndexList-r14 SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF Tx-ConfigIndex-r14 +} + +Tx-ConfigIndex-r14 ::= INTEGER(0..maxSL-V2X-TxConfig-1-r14) + + +SL-CommConfig-r12 ::= SEQUENCE { + commTxResources-r12 CHOICE { + release NULL, + setup CHOICE { + scheduled-r12 SEQUENCE { + sl-RNTI-r12 C-RNTI, + mac-MainConfig-r12 MAC-MainConfigSL-r12, + sc-CommTxConfig-r12 SL-CommResourcePool-r12, + mcs-r12 INTEGER (0..28) OPTIONAL -- Need OP + }, + ue-Selected-r12 SEQUENCE { + -- Pool for normal usage + commTxPoolNormalDedicated-r12 SEQUENCE { + poolToReleaseList-r12 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r12 SL-CommTxPoolToAddModList-r12 OPTIONAL -- Need ON + } + } + } + } OPTIONAL, -- Need ON + ..., + [[ commTxResources-v1310 CHOICE { + release NULL, + setup CHOICE { + scheduled-v1310 SEQUENCE { + logicalChGroupInfoList-r13 LogicalChGroupInfoList-r13, + multipleTx-r13 BOOLEAN + }, + ue-Selected-v1310 SEQUENCE { + commTxPoolNormalDedicatedExt-r13 SEQUENCE { + poolToReleaseListExt-r13 SL-TxPoolToReleaseListExt-r13 OPTIONAL, -- Need ON + poolToAddModListExt-r13 SL-CommTxPoolToAddModListExt-r13 OPTIONAL -- Need ON + } + } + } + } OPTIONAL, -- Need ON + commTxAllowRelayDedicated-r13 BOOLEAN OPTIONAL -- Need ON + ]] +} + +LogicalChGroupInfoList-r13 ::= SEQUENCE (SIZE (1..maxLCG-r13)) OF SL-PriorityList-r13 + +SL-CommTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-CommTxPoolToAddMod-r12 + +SL-CommTxPoolToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF SL-CommTxPoolToAddModExt-r13 + +SL-CommTxPoolToAddMod-r12 ::= SEQUENCE { + poolIdentity-r12 SL-TxPoolIdentity-r12, + pool-r12 SL-CommResourcePool-r12 +} + +SL-CommTxPoolToAddModExt-r13 ::= SEQUENCE { + poolIdentity-v1310 SL-TxPoolIdentity-v1310, + pool-r13 SL-CommResourcePool-r12 +} + +MAC-MainConfigSL-r12 ::= SEQUENCE { + periodic-BSR-TimerSL PeriodicBSR-Timer-r12 OPTIONAL, -- Need ON + retx-BSR-TimerSL RetxBSR-Timer-r12 +} + + +SL-CommTxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-CommResourcePool-r12 + +SL-CommTxPoolListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF SL-CommResourcePool-r12 + +SL-CommTxPoolListV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-TxPool-r14)) OF SL-CommResourcePoolV2X-r14 + +SL-CommRxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-RxPool-r12)) OF SL-CommResourcePool-r12 + +SL-CommRxPoolListV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-RxPool-r14)) OF SL-CommResourcePoolV2X-r14 + +SL-CommResourcePool-r12 ::= SEQUENCE { + sc-CP-Len-r12 SL-CP-Len-r12, + sc-Period-r12 SL-PeriodComm-r12, + sc-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + data-CP-Len-r12 SL-CP-Len-r12, + dataHoppingConfig-r12 SL-HoppingConfigComm-r12, + ue-SelectedResourceConfig-r12 SEQUENCE { + data-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + trpt-Subset-r12 SL-TRPT-Subset-r12 OPTIONAL -- Need OP + } OPTIONAL, -- Need OR + rxParametersNCell-r12 SEQUENCE { + tdd-Config-r12 TDD-Config OPTIONAL, -- Need OP + syncConfigIndex-r12 INTEGER (0..15) + } OPTIONAL, -- Need OR + txParameters-r12 SEQUENCE { + sc-TxParameters-r12 SL-TxParameters-r12, + dataTxParameters-r12 SL-TxParameters-r12 + } OPTIONAL, -- Cond Tx + ..., + [[ priorityList-r13 SL-PriorityList-r13 OPTIONAL -- Cond Tx + ]] + +} + +SL-CommResourcePoolV2X-r14 ::= SEQUENCE { + sl-OffsetIndicator-r14 SL-OffsetIndicator-r12 OPTIONAL, -- Need OR + sl-Subframe-r14 SubframeBitmapSL-r14, + adjacencyPSCCH-PSSCH-r14 BOOLEAN, + sizeSubchannel-r14 ENUMERATED { + n4, n5, n6, n8, n9, n10, n12, n15, n16, n18, n20, n25, n30, + n48, n50, n72, n75, n96, n100, spare13, spare12, spare11, + spare10, spare9, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1}, + numSubchannel-r14 ENUMERATED {n1, n3, n5, n8, n10, n15, n20, spare1}, + startRB-Subchannel-r14 INTEGER (0..99), + startRB-PSCCH-Pool-r14 INTEGER (0..99) OPTIONAL, -- Need OR + rxParametersNCell-r14 SEQUENCE { + tdd-Config-r14 TDD-Config OPTIONAL, -- Need OP + syncConfigIndex-r14 INTEGER (0..15) + } OPTIONAL, -- Need OR + dataTxParameters-r14 SL-TxParameters-r12 OPTIONAL, -- Cond Tx + zoneID-r14 INTEGER (0..7) OPTIONAL, -- Need OR + threshS-RSSI-CBR-r14 INTEGER (0..45) OPTIONAL, -- Need OR + poolReportId-r14 SL-V2X-TxPoolReportIdentity-r14 OPTIONAL, -- Need OR + cbr-pssch-TxConfigList-r14 SL-CBR-PPPP-TxConfigList-r14 OPTIONAL, -- Need OR + resourceSelectionConfigP2X-r14 SL-P2X-ResourceSelectionConfig-r14 OPTIONAL, -- Cond P2X + syncAllowed-r14 SL-SyncAllowed-r14 OPTIONAL, -- Need OR + restrictResourceReservationPeriod-r14 SL-RestrictResourceReservationPeriodList-r14 OPTIONAL, -- Need OR + ... +} + +SL-TRPT-Subset-r12 ::= BIT STRING (SIZE (3..5)) + +SL-V2X-TxPoolReportIdentity-r14::= INTEGER (1..maxSL-PoolToMeasure-r14) + + +SL-CommTxPoolSensingConfig-r14 ::= SEQUENCE { + pssch-TxConfigList-r14 SL-PSSCH-TxConfigList-r14, + thresPSSCH-RSRP-List-r14 SL-ThresPSSCH-RSRP-List-r14, + restrictResourceReservationPeriod-r14 SL-RestrictResourceReservationPeriodList-r14 OPTIONAL, -- Need OR + probResourceKeep-r14 ENUMERATED {v0, v0dot2, v0dot4, v0dot6, v0dot8, + spare3,spare2, spare1}, + p2x-SensingConfig-r14 SEQUENCE { + minNumCandidateSF-r14 INTEGER (1..13), + gapCandidateSensing-r14 BIT STRING (SIZE (10)) + } OPTIONAL, -- Need OR + sl-ReselectAfter-r14 ENUMERATED {n1, n2, n3, n4, n5, n6, n7, n8, n9, + spare7, spare6, spare5, spare4, spare3, spare2, + spare1} OPTIONAL -- Need OR +} + + +SL-CP-Len-r12 ::= ENUMERATED {normal, extended} + + +SL-DiscConfig-r12 ::= SEQUENCE { + discTxResources-r12 CHOICE { + release NULL, + setup CHOICE { + scheduled-r12 SEQUENCE { + discTxConfig-r12 SL-DiscResourcePool-r12 OPTIONAL, -- Need ON + discTF-IndexList-r12 SL-TF-IndexPairList-r12 OPTIONAL, -- Need ON + discHoppingConfig-r12 SL-HoppingConfigDisc-r12 + OPTIONAL -- Need ON + }, + ue-Selected-r12 SEQUENCE { + discTxPoolDedicated-r12 SEQUENCE { + poolToReleaseList-r12 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r12 SL-DiscTxPoolToAddModList-r12 OPTIONAL -- Need ON + } OPTIONAL -- Need ON + } + } + } OPTIONAL, -- Need ON + ..., + [[ discTF-IndexList-v1260 CHOICE { + release NULL, + setup SEQUENCE { + discTF-IndexList-r12b SL-TF-IndexPairList-r12b + } + } OPTIONAL -- Need ON + ]], + [[ discTxResourcesPS-r13 CHOICE { + release NULL, + setup CHOICE { + scheduled-r13 SL-DiscTxConfigScheduled-r13, + ue-Selected-r13 SEQUENCE { + discTxPoolPS-Dedicated-r13 SL-DiscTxPoolDedicated-r13 + } + } + } OPTIONAL, -- Need ON + discTxInterFreqInfo-r13 CHOICE { + release NULL, + setup SEQUENCE { + discTxCarrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need OR + discTxRefCarrierDedicated-r13 SL-DiscTxRefCarrierDedicated-r13 OPTIONAL, -- Need OR + discTxInfoInterFreqListAdd-r13 SL-DiscTxInfoInterFreqListAdd-r13 OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + gapRequestsAllowedDedicated-r13 BOOLEAN OPTIONAL, -- Need ON + discRxGapConfig-r13 CHOICE { + release NULL, + setup SL-GapConfig-r13 + } OPTIONAL, -- Need ON + discTxGapConfig-r13 CHOICE { + release NULL, + setup SL-GapConfig-r13 + } OPTIONAL, -- Need ON + discSysInfoToReportConfig-r13 CHOICE { + release NULL, + setup SL-DiscSysInfoToReportFreqList-r13 + } OPTIONAL -- Need ON + ]] +} + +SL-DiscSysInfoToReportFreqList-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF ARFCN-ValueEUTRA-r9 + +SL-DiscTxInfoInterFreqListAdd-r13 ::= SEQUENCE { + discTxFreqToAddModList-r13 SEQUENCE (SIZE (1..maxFreq)) OF SL-DiscTxResourceInfoPerFreq-r13 OPTIONAL, -- Need ON + discTxFreqToReleaseList-r13 SEQUENCE (SIZE (1..maxFreq)) OF ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need ON + ... +} + +SL-DiscTxResourceInfoPerFreq-r13 ::= SEQUENCE { + discTxCarrierFreq-r13 ARFCN-ValueEUTRA-r9, + discTxResources-r13 SL-DiscTxResource-r13 OPTIONAL, -- Need OR + discTxResourcesPS-r13 SL-DiscTxResource-r13 OPTIONAL, -- Need OR + discTxRefCarrierDedicated-r13 SL-DiscTxRefCarrierDedicated-r13 OPTIONAL, -- Need OR + discCellSelectionInfo-r13 CellSelectionInfoNFreq-r13 OPTIONAL, -- Need OR + ... +} + +SL-DiscTxResource-r13 ::= CHOICE { + release NULL, + setup CHOICE { + scheduled-r13 SL-DiscTxConfigScheduled-r13, + ue-Selected-r13 SL-DiscTxPoolDedicated-r13 + } +} + +SL-DiscTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-DiscTxPoolToAddMod-r12 + +SL-DiscTxPoolToAddMod-r12 ::= SEQUENCE { + poolIdentity-r12 SL-TxPoolIdentity-r12, + pool-r12 SL-DiscResourcePool-r12 +} + +SL-DiscTxConfigScheduled-r13 ::= SEQUENCE { + discTxConfig-r13 SL-DiscResourcePool-r12 OPTIONAL, -- Need ON + discTF-IndexList-r13 SL-TF-IndexPairList-r12b OPTIONAL, -- Need ON + discHoppingConfig-r13 SL-HoppingConfigDisc-r12 OPTIONAL,-- Need ON + ... +} + +SL-DiscTxPoolDedicated-r13 ::= SEQUENCE { + poolToReleaseList-r13 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r13 SL-DiscTxPoolToAddModList-r12 OPTIONAL -- Need ON +} + +SL-TF-IndexPairList-r12 ::= SEQUENCE (SIZE (1..maxSL-TF-IndexPair-r12)) OF SL-TF-IndexPair-r12 + +SL-TF-IndexPair-r12 ::= SEQUENCE { + discSF-Index-r12 INTEGER (1.. 200) OPTIONAL, -- Need ON + discPRB-Index-r12 INTEGER (1.. 50) OPTIONAL -- Need ON +} + +SL-TF-IndexPairList-r12b ::= SEQUENCE (SIZE (1..maxSL-TF-IndexPair-r12)) OF SL-TF-IndexPair-r12b + +SL-TF-IndexPair-r12b ::= SEQUENCE { + discSF-Index-r12b INTEGER (0..209) OPTIONAL, -- Need ON + discPRB-Index-r12b INTEGER (0..49) OPTIONAL -- Need ON +} + +SL-DiscTxRefCarrierDedicated-r13 ::= CHOICE { + pCell NULL, + sCell SCellIndex-r10 +} + + +SL-DiscTxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-DiscResourcePool-r12 + +SL-DiscRxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-RxPool-r12)) OF SL-DiscResourcePool-r12 + +SL-DiscResourcePool-r12 ::= SEQUENCE { + cp-Len-r12 SL-CP-Len-r12, + discPeriod-r12 ENUMERATED {rf32, rf64, rf128, + rf256, rf512, rf1024, rf16-v1310, spare}, + numRetx-r12 INTEGER (0..3), + numRepetition-r12 INTEGER (1..50), + tf-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + txParameters-r12 SEQUENCE { + txParametersGeneral-r12 SL-TxParameters-r12, + ue-SelectedResourceConfig-r12 SEQUENCE { + poolSelection-r12 CHOICE { + rsrpBased-r12 SL-PoolSelectionConfig-r12, + random-r12 NULL + }, + txProbability-r12 ENUMERATED {p25, p50, p75, p100} + } OPTIONAL -- Need OR + } OPTIONAL, -- Cond Tx + rxParameters-r12 SEQUENCE { + tdd-Config-r12 TDD-Config OPTIONAL, -- Need OR + syncConfigIndex-r12 INTEGER (0..15) + } OPTIONAL, -- Need OR + ..., + [[ discPeriod-v1310 CHOICE { + release NULL, + setup ENUMERATED {rf4, rf6, rf7, rf8, + rf12, rf14, rf24, rf28} + } OPTIONAL, -- Need ON + rxParamsAddNeighFreq-r13 CHOICE { + release NULL, + setup SEQUENCE { + physCellId-r13 PhysCellIdList-r13 + } + } OPTIONAL, -- Need ON + txParamsAddNeighFreq-r13 CHOICE { + release NULL, + setup SEQUENCE { + physCellId-r13 PhysCellIdList-r13, + p-Max P-Max OPTIONAL, -- Need OP + tdd-Config-r13 TDD-Config OPTIONAL, -- Cond TDD-OR + tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD-OR + freqInfo SEQUENCE { + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission + }, + referenceSignalPower INTEGER (-60..50), + syncConfigIndex-r13 INTEGER (0..15) OPTIONAL -- Need OR + } + } OPTIONAL -- Need ON + ]], + [[ txParamsAddNeighFreq-v1370 CHOICE { + release NULL, + setup SEQUENCE { + freqInfo-v1370 SEQUENCE { + additionalSpectrumEmission-v1370 AdditionalSpectrumEmission-v10l0 + } + } + } OPTIONAL -- Need ON + ]] +} + +PhysCellIdList-r13 ::= SEQUENCE (SIZE (1.. maxSL-DiscCells-r13)) OF PhysCellId + +SL-PoolSelectionConfig-r12 ::= SEQUENCE { + threshLow-r12 RSRP-RangeSL2-r12, + threshHigh-r12 RSRP-RangeSL2-r12 +} + + +SL-DiscSysInfoReport-r13 ::= SEQUENCE { + plmn-IdentityList-r13 PLMN-IdentityList OPTIONAL, + cellIdentity-13 CellIdentity OPTIONAL, + carrierFreqInfo-13 ARFCN-ValueEUTRA-r9 OPTIONAL, + discRxResources-r13 SL-DiscRxPoolList-r12 OPTIONAL, + discTxPoolCommon-r13 SL-DiscTxPoolList-r12 OPTIONAL, + discTxPowerInfo-r13 SL-DiscTxPowerInfoList-r12 OPTIONAL, + discSyncConfig-r13 SL-SyncConfigNFreq-r13 OPTIONAL, + discCellSelectionInfo-r13 SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + q-RxLevMinOffset-r13 INTEGER (1..8) OPTIONAL + } OPTIONAL, + cellReselectionInfo-r13 SEQUENCE { + q-Hyst-r13 ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + q-RxLevMin-r13 Q-RxLevMin, + t-ReselectionEUTRA-r13 T-Reselection + } OPTIONAL, + tdd-Config-r13 TDD-Config OPTIONAL, + freqInfo-r13 SEQUENCE { + ul-CarrierFreq-r13 ARFCN-ValueEUTRA OPTIONAL, + ul-Bandwidth-r13 ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, + additionalSpectrumEmission-r13 AdditionalSpectrumEmission OPTIONAL + } OPTIONAL, + p-Max-r13 P-Max OPTIONAL, + referenceSignalPower-r13 INTEGER (-60..50) OPTIONAL, + ..., + [[ + freqInfo-v1370 SEQUENCE { + additionalSpectrumEmission-v1370 AdditionalSpectrumEmission-v10l0 + } OPTIONAL + ]] +} + + +SL-DiscTxPowerInfoList-r12 ::= SEQUENCE (SIZE (maxSL-DiscPowerClass-r12)) OF SL-DiscTxPowerInfo-r12 + +SL-DiscTxPowerInfo-r12 ::= SEQUENCE { + discMaxTxPower-r12 P-Max, + ... +} + + +SL-GapConfig-r13 ::= SEQUENCE { + gapPatternList-r13 SL-GapPatternList-r13 +} + +SL-GapPatternList-r13 ::= SEQUENCE (SIZE (1..maxSL-GP-r13)) OF SL-GapPattern-r13 + +SL-GapPattern-r13 ::= SEQUENCE { + gapPeriod-r13 ENUMERATED {sf40, sf60, sf70, sf80, sf120, sf140, sf160, + sf240, sf280, sf320, sf640, sf1280, sf2560, sf5120, + sf10240}, + gapOffset-r12 SL-OffsetIndicator-r12, + gapSubframeBitmap-r13 BIT STRING (SIZE (1..10240)), + ... +} + + +SL-GapRequest-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-GapFreqInfo-r13 + +SL-GapFreqInfo-r13 ::= SEQUENCE { + carrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL, + gapPatternList-r13 SL-GapPatternList-r13 +} + + +SL-HoppingConfigComm-r12 ::= SEQUENCE { + hoppingParameter-r12 INTEGER (0..504), + numSubbands-r12 ENUMERATED {ns1, ns2, ns4}, + rb-Offset-r12 INTEGER (0..110) +} + +SL-HoppingConfigDisc-r12 ::= SEQUENCE { + a-r12 INTEGER (1..200), + b-r12 INTEGER (1..10), + c-r12 ENUMERATED {n1, n5} +} + + +SL-InterFreqInfoListV2X-r14 ::= SEQUENCE (SIZE (0..maxFreqV2X-1-r14)) OF SL-InterFreqInfoV2X-r14 + +SL-InterFreqInfoV2X-r14 ::= SEQUENCE { + plmn-IdentityList-r14 PLMN-IdentityList OPTIONAL, -- Need OP + v2x-CommCarrierFreq-r14 ARFCN-ValueEUTRA-r9, + sl-MaxTxPower-r14 P-Max OPTIONAL, -- Need OR + sl-Bandwidth-r14 ENUMERATED {n6, n15, n25, n50, n75, n100} OPTIONAL, -- Need OR + v2x-SchedulingPool-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-UE-ConfigList-r14 SL-V2X-UE-ConfigList-r14 OPTIONAL, -- Need OR + ..., + [[ additionalSpectrumEmissionV2X-r14 CHOICE { + additionalSpectrumEmission-r14 AdditionalSpectrumEmission, + additionalSpectrumEmission-v1440 AdditionalSpectrumEmission-v10l0 + } OPTIONAL -- Need ON + ]] +} + + +SL-V2X-UE-ConfigList-r14 ::= SEQUENCE (SIZE (1.. maxCellIntra)) OF SL-V2X-InterFreqUE-Config-r14 + +SL-V2X-InterFreqUE-Config-r14 ::= SEQUENCE { + physCellIdList-r14 PhysCellIdList-r13 OPTIONAL, -- Need OR + typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR + v2x-SyncConfig-r14 SL-SyncConfigListNFreqV2X-r14 OPTIONAL, -- Need OR + v2x-CommRxPool-r14 SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolNormal-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + p2x-CommTxPoolNormal-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolExceptional-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-ResourceSelectionConfig-r14 SL-CommTxPoolSensingConfig-r14 OPTIONAL, -- Need OR + zoneConfig-r14 SL-ZoneConfig-r14 OPTIONAL, -- Need OR + offsetDFN-r14 INTEGER (0..1000) OPTIONAL, -- Need OR + ... +} + + +SL-OffsetIndicator-r12 ::= CHOICE { + small-r12 INTEGER (0..319), + large-r12 INTEGER (0..10239) +} + +SL-OffsetIndicatorSync-r12 ::= INTEGER (0..39) + +SL-OffsetIndicatorSync-v1430 ::= INTEGER (40..159) + +SL-OffsetIndicatorSync-r14 ::= INTEGER (0..159) + + +SL-P2X-ResourceSelectionConfig-r14 ::= SEQUENCE { + partialSensing-r14 ENUMERATED {true} OPTIONAL, -- Need OR + randomSelection-r14 ENUMERATED {true} OPTIONAL -- Need OR +} + + +SL-PeriodComm-r12 ::= ENUMERATED {sf40, sf60, sf70, sf80, sf120, sf140, + sf160, sf240, sf280, sf320, spare6, spare5, + spare4, spare3, spare2, spare} + + +SL-PriorityList-r13 ::= SEQUENCE (SIZE (1..maxSL-Prio-r13)) OF SL-Priority-r13 + +SL-Priority-r13 ::= INTEGER (1..8) + + +SL-PSSCH-TxConfigList-r14 ::= SEQUENCE (SIZE (1..maxPSSCH-TxConfig-r14)) OF SL-PSSCH-TxConfig-r14 + +SL-PSSCH-TxConfig-r14 ::= SEQUENCE { + typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR + thresUE-Speed-r14 ENUMERATED {kmph60, kmph80, kmph100, kmph120, + kmph140, kmph160, kmph180, kmph200}, + parametersAboveThres-r14 SL-PSSCH-TxParameters-r14, + parametersBelowThres-r14 SL-PSSCH-TxParameters-r14, + ... +} + +SL-PSSCH-TxParameters-r14 ::= SEQUENCE { + minMCS-PSSCH-r14 INTEGER (0..31), + maxMCS-PSSCH-r14 INTEGER (0..31), + minSubChannel-NumberPSSCH-r14 INTEGER (1..20), + maxSubchannel-NumberPSSCH-r14 INTEGER (1..20), + allowedRetxNumberPSSCH-r14 ENUMERATED {n0, n1, both, spare1}, + maxTxPower-r14 SL-TxPower-r14 OPTIONAL -- Cond CBR +} + + +SL-RestrictResourceReservationPeriodList-r14 ::= SEQUENCE (SIZE (1..maxReservationPeriod-r14)) OF SL-RestrictResourceReservationPeriod-r14 + +SL-RestrictResourceReservationPeriod-r14 ::= ENUMERATED {v0dot2, v0dot5, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, spare4,spare3, spare2, spare1} + + +SLSSID-r12 ::= INTEGER (0..167) + + +SL-SyncAllowed-r14 ::= SEQUENCE { + gnss-Sync-r14 ENUMERATED {true} OPTIONAL, -- Need OR + enb-Sync-r14 ENUMERATED {true} OPTIONAL, -- Need OR + ue-Sync-r14 ENUMERATED {true} OPTIONAL -- Need OR +} + + +SL-SyncConfigList-r12 ::= SEQUENCE (SIZE (1..maxSL-SyncConfig-r12)) OF SL-SyncConfig-r12 + +SL-SyncConfigListV2X-r14 ::= SEQUENCE (SIZE (1.. maxSL-V2X-SyncConfig-r14)) OF SL-SyncConfig-r12 + +SL-SyncConfig-r12 ::= SEQUENCE { + syncCP-Len-r12 SL-CP-Len-r12, + syncOffsetIndicator-r12 SL-OffsetIndicatorSync-r12, + slssid-r12 SLSSID-r12, + txParameters-r12 SEQUENCE { + syncTxParameters-r12 SL-TxParameters-r12, + syncTxThreshIC-r12 RSRP-RangeSL-r12, + syncInfoReserved-r12 BIT STRING (SIZE (19)) OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + rxParamsNCell-r12 SEQUENCE { + physCellId-r12 PhysCellId, + discSyncWindow-r12 ENUMERATED {w1, w2} + } OPTIONAL, -- Need OR + ..., + [[ syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ syncOffsetIndicator-v1430 SL-OffsetIndicatorSync-v1430 OPTIONAL, -- Need OR + gnss-Sync-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + +SL-SyncConfigListNFreq-r13 ::= SEQUENCE (SIZE (1..maxSL-SyncConfig-r12)) OF SL-SyncConfigNFreq-r13 + +SL-SyncConfigListNFreqV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-SyncConfig-r14)) OF SL-SyncConfigNFreq-r13 + +SL-SyncConfigNFreq-r13 ::= SEQUENCE { + asyncParameters-r13 SEQUENCE { + syncCP-Len-r13 SL-CP-Len-r12, + syncOffsetIndicator-r13 SL-OffsetIndicatorSync-r12, + slssid-r13 SLSSID-r12 + } OPTIONAL, -- Need OR + txParameters-r13 SEQUENCE { + syncTxParameters-r13 SL-TxParameters-r12, + syncTxThreshIC-r13 RSRP-RangeSL-r12, + syncInfoReserved-r13 BIT STRING (SIZE (19)) OPTIONAL, -- Need OR + syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + rxParameters-r13 SEQUENCE { + discSyncWindow-r13 ENUMERATED {w1, w2} + } OPTIONAL, -- Need OR + ..., + [[ syncOffsetIndicator-v1430 SL-OffsetIndicatorSync-v1430 OPTIONAL, -- Need OR + gnss-Sync-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + + +SL-TF-ResourceConfig-r12 ::= SEQUENCE { + prb-Num-r12 INTEGER (1..100), + prb-Start-r12 INTEGER (0..99), + prb-End-r12 INTEGER (0..99), + offsetIndicator-r12 SL-OffsetIndicator-r12, + subframeBitmap-r12 SubframeBitmapSL-r12 +} + +SubframeBitmapSL-r12 ::= CHOICE { + bs4-r12 BIT STRING (SIZE (4)), + bs8-r12 BIT STRING (SIZE (8)), + bs12-r12 BIT STRING (SIZE (12)), + bs16-r12 BIT STRING (SIZE (16)), + bs30-r12 BIT STRING (SIZE (30)), + bs40-r12 BIT STRING (SIZE (40)), + bs42-r12 BIT STRING (SIZE (42)) +} + +SubframeBitmapSL-r14 ::= CHOICE { + bs10-r14 BIT STRING (SIZE (10)), + bs16-r14 BIT STRING (SIZE (16)), + bs20-r14 BIT STRING (SIZE (20)), + bs30-r14 BIT STRING (SIZE (30)), + bs40-r14 BIT STRING (SIZE (40)), + bs50-r14 BIT STRING (SIZE (50)), + bs60-r14 BIT STRING (SIZE (60)), + bs100-r14 BIT STRING (SIZE (100)) +} + + +SL-TxPower-r14 ::= CHOICE { + minusinfinity-r14 NULL, + txPower-r14 INTEGER (-41..31) +} + + +SL-TypeTxSync-r14 ::= ENUMERATED {gnss, enb, ue} + + +SL-ThresPSSCH-RSRP-List-r14 ::= SEQUENCE (SIZE (64)) OF SL-ThresPSSCH-RSRP-r14 + +SL-ThresPSSCH-RSRP-r14 ::= INTEGER (0..66) + + +SL-TxParameters-r12 ::= SEQUENCE { + alpha-r12 Alpha-r12, + p0-r12 P0-SL-r12 +} + +P0-SL-r12 ::= INTEGER (-126..31) + + +SL-TxPoolIdentity-r12 ::= INTEGER (1.. maxSL-TxPool-r12) + +SL-TxPoolIdentity-v1310 ::= INTEGER (maxSL-TxPool-r12Plus1-r13.. maxSL-TxPool-r13) + +SL-V2X-TxPoolIdentity-r14 ::= INTEGER (1.. maxSL-V2X-TxPool-r14) + + +SL-TxPoolToReleaseList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-TxPoolIdentity-r12 + +SL-TxPoolToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF SL-TxPoolIdentity-v1310 + + +SL-V2X-ConfigDedicated-r14 ::= SEQUENCE { + commTxResources-r14 CHOICE { + release NULL, + setup CHOICE { + scheduled-r14 SEQUENCE { + sl-V-RNTI-r14 C-RNTI, + mac-MainConfig-r14 MAC-MainConfigSL-r12, + v2x-SchedulingPool-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need ON + mcs-r14 INTEGER (0..31) OPTIONAL, -- Need OR + logicalChGroupInfoList-r14 LogicalChGroupInfoList-r13 + }, + ue-Selected-r14 SEQUENCE { + -- Pool for normal usage + v2x-CommTxPoolNormalDedicated-r14 SEQUENCE { + poolToReleaseList-r14 SL-TxPoolToReleaseListV2X-r14 OPTIONAL, -- Need ON + poolToAddModList-r14 SL-TxPoolToAddModListV2X-r14 OPTIONAL, -- Need ON + v2x-CommTxPoolSensingConfig-r14 SL-CommTxPoolSensingConfig-r14 + OPTIONAL -- Need ON + } + } + } + } OPTIONAL, -- Need ON + v2x-InterFreqInfoList-r14 SL-InterFreqInfoListV2X-r14 OPTIONAL, -- Need ON + thresSL-TxPrioritization-r14 SL-Priority-r13 OPTIONAL, -- Need OR + typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR + cbr-DedicatedTxConfigList-r14 SL-CBR-CommonTxConfigList-r14 OPTIONAL, -- Need OR + ... +} + +SL-TxPoolToAddModListV2X-r14 ::= SEQUENCE (SIZE (1.. maxSL-V2X-TxPool-r14)) OF SL-TxPoolToAddMod-r14 + +SL-TxPoolToAddMod-r14 ::= SEQUENCE { + poolIdentity-r14 SL-V2X-TxPoolIdentity-r14, + pool-r14 SL-CommResourcePoolV2X-r14 +} + +SL-TxPoolToReleaseListV2X-r14 ::= SEQUENCE (SIZE (1.. maxSL-V2X-TxPool-r14)) OF SL-V2X-TxPoolIdentity-r14 + + +SL-ZoneConfig-r14 ::= SEQUENCE { + zoneLength-r14 ENUMERATED { m5, m10, m20, m50, m100, m200, m500, spare1}, + zoneWidth-r14 ENUMERATED { m5, m10, m20, m50, m100, m200, m500, spare1}, + zoneIdLongiMod-r14 INTEGER (1..4), + zoneIdLatiMod-r14 INTEGER (1..4) +} + + +maxACDC-Cat-r13 INTEGER ::= 16 -- Maximum number of ACDC categories (per PLMN) +maxARFCN-NR-r15 INTEGER ::= 3279167 +maxAvailNarrowBands-r13 INTEGER ::= 16 -- Maximum number of narrowbands +maxBandComb-r10 INTEGER ::= 128 -- Maximum number of band combinations. +maxBandComb-r11 INTEGER ::= 256 -- Maximum number of additional band combinations. +maxBandComb-r13 INTEGER ::= 384 -- Maximum number of band combinations in Rel-13 +maxBands INTEGER ::= 64 -- Maximum number of bands listed in EUTRA UE caps +maxBandwidthClass-r10 INTEGER ::= 16 -- Maximum number of supported CA BW classes per band +maxBandwidthCombSet-r10 INTEGER ::= 32 -- Maximum number of bandwidth combination sets per + -- supported band combination +maxBPC-r15 INTEGER ::= 64 -- Maximum number of baseband processing combinations + -- listed in EUTRA UE caps. FFS Actual value +maxCBR-Level-r14 INTEGER ::= 16 -- Maximum number of CBR levels +maxCBR-Level-1-r14 INTEGER ::= 15 +maxCBR-Report-r14 INTEGER ::= 72 -- Maximum number of CBR results in a report +maxCDMA-BandClass INTEGER ::= 32 -- Maximum value of the CDMA band classes +maxCE-Level-r13 INTEGER ::= 4 -- Maximum number of CE levels +maxCellBlack INTEGER ::= 16 -- Maximum number of blacklisted physical cell identity + -- ranges listed in SIB type 4 and 5 +maxCellHistory-r12 INTEGER ::= 16 -- Maximum number of visited EUTRA cells reported +maxCellInfoGERAN-r9 INTEGER ::= 32 -- Maximum number of GERAN cells for which system in- + -- formation can be provided as redirection assistance +maxCellInfoUTRA-r9 INTEGER ::= 16 -- Maximum number of UTRA cells for which system + -- information can be provided as redirection + -- assistance +maxCombIDC-r11 INTEGER ::= 128 -- Maximum number of reported UL CA combinations +maxCSI-IM-r11 INTEGER ::= 3 -- Maximum number of CSI-IM configurations + -- (per carrier frequency) +maxCSI-IM-r12 INTEGER ::= 4 -- Maximum number of CSI-IM configurations + -- (per carrier frequency) +minCSI-IM-r13 INTEGER ::= 5 -- Minimum number of CSI IM configurations from which + -- REL-13 extension is used +maxCSI-IM-r13 INTEGER ::= 24 -- Maximum number of CSI-IM configurations + -- (per carrier frequency) +maxCSI-IM-v1310 INTEGER ::= 20 -- Maximum number of additional CSI-IM configurations + -- (per carrier frequency) +maxCSI-Proc-r11 INTEGER ::= 4 -- Maximum number of CSI processes (per carrier + -- frequency) +maxCSI-RS-NZP-r11 INTEGER ::= 3 -- Maximum number of CSI RS resource + -- configurations using non-zero Tx power + -- (per carrier frequency) +minCSI-RS-NZP-r13 INTEGER ::= 4 -- Minimum number of CSI RS resource from which + -- REL-13 extension is used +maxCSI-RS-NZP-r13 INTEGER ::= 24 -- Maximum number of CSI RS resource + -- configurations using non-zero Tx power + -- (per carrier frequency) +maxCSI-RS-NZP-v1310 INTEGER ::= 21 -- Maximum number of additional CSI RS resource + -- configurations using non-zero Tx power + -- (per carrier frequency) +maxCSI-RS-ZP-r11 INTEGER ::= 4 -- Maximum number of CSI RS resource + -- configurations using zero Tx power(per carrier + -- frequency) +maxCQI-ProcExt-r11 INTEGER ::= 3 -- Maximum number of additional periodic CQI + -- configurations (per carrier frequency) +maxFreqUTRA-TDD-r10 INTEGER ::= 6 -- Maximum number of UTRA TDD carrier frequencies for + -- which system information can be provided as + -- redirection assistance +maxCellInter INTEGER ::= 16 -- Maximum number of neighbouring inter-frequency + -- cells listed in SIB type 5 +maxCellIntra INTEGER ::= 16 -- Maximum number of neighbouring intra-frequency + -- cells listed in SIB type 4 +maxCellListGERAN INTEGER ::= 3 -- Maximum number of lists of GERAN cells +maxCellMeas INTEGER ::= 32 -- Maximum number of entries in each of the + -- cell lists in a measurement object +maxCellReport INTEGER ::= 8 -- Maximum number of reported cells/CSI-RS resources +maxCellSFTD INTEGER ::= 3 -- Maximum number of cells for SFTD reporting +maxConfigSPS-r14 INTEGER ::= 8 -- Maximum number of simultaneous SPS configurations +maxCSI-RS-Meas-r12 INTEGER ::= 96 -- Maximum number of entries in the CSI-RS list + -- in a measurement object +maxDRB INTEGER ::= 11 -- Maximum number of Data Radio Bearers +maxDS-Duration-r12 INTEGER ::= 5 -- Maximum number of subframes in a discovery signals + -- occasion +maxDS-ZTP-CSI-RS-r12 INTEGER ::= 5 -- Maximum number of zero transmission power CSI-RS for + -- a serving cell concerning discovery signals +maxEARFCN INTEGER ::= 65535 -- Maximum value of EUTRA carrier frequency +maxEARFCN-Plus1 INTEGER ::= 65536 -- Lowest value extended EARFCN range +maxEARFCN2 INTEGER ::= 262143 -- Highest value extended EARFCN range +maxEPDCCH-Set-r11 INTEGER ::= 2 -- Maximum number of EPDCCH sets +maxFBI INTEGER ::= 64 -- Maximum value of fequency band indicator +maxFBI-NR-r15 INTEGER ::= 256 -- Highest value FBI range for NR. FFS actual value +maxFBI-Plus1 INTEGER ::= 65 -- Lowest value extended FBI range +maxFBI2 INTEGER ::= 256 -- Highest value extended FBI range +maxFreq INTEGER ::= 8 -- Maximum number of carrier frequencies +maxFreqIDC-r11 INTEGER ::= 32 -- Maximum number of carrier frequencies that are + -- affected by the IDC problems +maxFreqMBMS-r11 INTEGER ::= 5 -- Maximum number of carrier frequencies for which an + -- MBMS capable UE may indicate an interest +maxFreqNR-r15 INTEGER ::= 5 -- Maximum number of NR carrier frequencies for + -- which a UE may provide measurement results upon + -- SCG failure +maxFreqV2X-r14 INTEGER ::= 8 -- Maximum number of carrier frequencies for which V2X + -- sidelink communication can be configured +maxFreqV2X-1-r14 INTEGER ::= 7 -- Highest index of frequencies +maxGERAN-SI INTEGER ::= 10 -- Maximum number of GERAN SI blocks that can be + -- provided as part of NACC information +maxGNFG INTEGER ::= 16 -- Maximum number of GERAN neighbour freq groups +maxLCG-r13 INTEGER ::= 4 -- Maximum number of logical channel groups +maxLogMeasReport-r10 INTEGER ::= 520 -- Maximum number of logged measurement entries + -- that can be reported by the UE in one message +maxMBSFN-Allocations INTEGER ::= 8 -- Maximum number of MBSFN frame allocations with + -- different offset +maxMBSFN-Area INTEGER ::= 8 +maxMBSFN-Area-1 INTEGER ::= 7 +maxMBMS-ServiceListPerUE-r13 INTEGER ::= 15 -- Maximum number of services which the UE can + -- include in the MBMS interest indication +maxMeasId INTEGER ::= 32 +maxMeasId-Plus1 INTEGER ::= 33 +maxMeasId-r12 INTEGER ::= 64 +maxMultiBands INTEGER ::= 8 -- Maximum number of additional frequency bands + -- that a cell belongs to +maxNS-Pmax-r10 INTEGER ::= 8 -- Maximum number of NS and P-Max values per band +maxNAICS-Entries-r12 INTEGER ::= 8 -- Maximum number of supported NAICS combination(s) +maxNeighCell-r12 INTEGER ::= 8 -- Maximum number of neighbouring cells in NAICS + -- configuration (per carrier frequency) +maxNeighCell-SCPTM-r13 INTEGER ::= 8 -- Maximum number of SCPTM neighbour cells +maxObjectId INTEGER ::= 32 +maxObjectId-Plus1-r13 INTEGER ::= 33 +maxObjectId-r13 INTEGER ::= 64 +maxP-a-PerNeighCell-r12 INTEGER ::= 3 -- Maximum number of power offsets for a neighbour cell + -- in NAICS configuration +maxPageRec INTEGER ::= 16 -- +maxPhysCellIdRange-r9 INTEGER ::= 4 -- Maximum number of physical cell identity ranges +maxPLMN-r11 INTEGER ::= 6 -- Maximum number of PLMNs +maxPLMN-1-r14 INTEGER ::= 5 -- Maximum number of PLMNs minus one +maxPNOffset INTEGER ::= 511 -- Maximum number of CDMA2000 PNOffsets +maxPMCH-PerMBSFN INTEGER ::= 15 +maxPSSCH-TxConfig-r14 INTEGER ::= 16 -- Maximum number of PSSCH TX configurations +maxQuantSetsNR-r15 INTEGER ::= 2 -- Maximum number of NR quantity configuration sets +maxQCI-r13 INTEGER ::= 6 -- Maximum number of QCIs +maxRAT-Capabilities INTEGER ::= 8 -- Maximum number of interworking RATs (incl EUTRA) +maxRE-MapQCL-r11 INTEGER ::= 4 -- Maximum number of PDSCH RE Mapping configurations + -- (per carrier frequency) +maxReportConfigId INTEGER ::= 32 +maxReservationPeriod-r14 INTEGER ::= 16 -- Maximum number of resource reservation periodicities + -- for sidelink V2X communication +maxRS-Index-r15 INTEGER ::= 8 -- Maximum number of RS indices for RRM. FFS actual value +maxRS-IndexReport-r15 INTEGER ::= 7 -- Maximum number of RS indices for RRM. FFS actual value +maxRSTD-Freq-r10 INTEGER ::= 3 -- Maximum number of frequency layers for RSTD + -- measurement +maxSAI-MBMS-r11 INTEGER ::= 64 -- Maximum number of MBMS service area identities + -- broadcast per carrier frequency +maxSCell-r10 INTEGER ::= 4 -- Maximum number of SCells +maxSCell-r13 INTEGER ::= 31 -- Highest value of extended number range of SCells +maxSC-MTCH-r13 INTEGER ::= 1023 -- Maximum number of SC-MTCHs in one cell +maxSC-MTCH-BR-r14 INTEGER ::= 128 -- Maximum number of SC-MTCHs in one cell for feMTC +maxSL-CommRxPoolNFreq-r13 INTEGER ::= 32 -- Maximum number of individual sidelink communication + -- Rx resource pools on neighbouring freq +maxSL-CommRxPoolPreconf-v1310 INTEGER ::= 12 -- Maximum number of additional preconfigured + -- sidelink communication Rx resource pool entries +maxSL-TxPool-r12Plus1-r13 INTEGER ::= 5 -- First additional individual sidelink + -- Tx resource pool +maxSL-TxPool-v1310 INTEGER ::= 4 -- Maximum number of additional sidelink + -- Tx resource pool entries +maxSL-TxPool-r13 INTEGER ::= 8 -- Maximum number of individual sidelink + -- Tx resource pools +maxSL-CommTxPoolPreconf-v1310 INTEGER ::= 7 -- Maximum number of additional preconfigured + -- sidelink Tx resource pool entries +maxSL-Dest-r12 INTEGER ::= 16 -- Maximum number of sidelink destinations +maxSL-DiscCells-r13 INTEGER ::= 16 -- Maximum number of cells with similar sidelink + -- configurations +maxSL-DiscPowerClass-r12 INTEGER ::= 3 -- Maximum number of sidelink power classes +maxSL-DiscRxPoolPreconf-r13 INTEGER ::= 16 -- Maximum number of preconfigured sidelink + -- discovery Rx resource pool entries +maxSL-DiscSysInfoReportFreq-r13 INTEGER ::= 8 -- Maximum number of frequencies to include in a + -- SidelinkUEInformation for SI reporting +maxSL-DiscTxPoolPreconf-r13 INTEGER ::= 4 -- Maximum number of preconfigured sidelink + -- discovery Tx resource pool entries +maxSL-GP-r13 INTEGER ::= 8 -- Maximum number of gap patterns that can be requested + -- for a frequency or assigned +maxSL-PoolToMeasure-r14 INTEGER ::= 72 -- Maximum number of TX resource pools for CBR + -- measurement and report +maxSL-Prio-r13 INTEGER ::= 8 -- Maximum number of entries in sidelink priority list +maxSL-RxPool-r12 INTEGER ::= 16 -- Maximum number of individual sidelink Rx resource pools +maxSL-SyncConfig-r12 INTEGER ::= 16 -- Maximum number of sidelink Sync configurations +maxSL-TF-IndexPair-r12 INTEGER ::= 64 -- Maximum number of sidelink Time Freq resource index + -- pairs +maxSL-TxPool-r12 INTEGER ::= 4 -- Maximum number of individual sidelink Tx resource pools +maxSL-V2X-RxPool-r14 INTEGER ::= 16 -- Maximum number of RX resource pools for + -- V2X sidelink communication +maxSL-V2X-RxPoolPreconf-r14 INTEGER ::= 16 -- Maximum number of RX resource pools for + -- V2X sidelink communication +maxSL-V2X-TxPool-r14 INTEGER ::= 8 -- Maximum number of TX resource pools for + -- V2X sidelink communication +maxSL-V2X-TxPoolPreconf-r14 INTEGER ::= 8 -- Maximum number of TX resource pools for + -- V2X sidelink communication +maxSL-V2X-SyncConfig-r14 INTEGER ::= 16 -- Maximum number of sidelink Sync configurations + -- for V2X sidelink communication +maxSL-V2X-CBRConfig-r14 INTEGER ::= 4 -- Maximum number of CBR range configurations + -- for V2X sidelink communication congestion + -- control +maxSL-V2X-CBRConfig-1-r14 INTEGER ::= 3 +maxSL-V2X-TxConfig-r14 INTEGER ::= 64 -- Maximum number of TX parameter configurations + -- for V2X sidelink communication congestion + -- control +maxSL-V2X-TxConfig-1-r14 INTEGER ::= 63 +maxSL-V2X-CBRConfig2-r14 INTEGER ::= 8 -- Maximum number of CBR range configurations in + -- pre-configuration for V2X sidelink + -- communication congestion control +maxSL-V2X-CBRConfig2-1-r14 INTEGER ::= 7 +maxSL-V2X-TxConfig2-r14 INTEGER ::= 128 -- Maximum number of TX parameter + -- configurations in pre-configuration for V2X + -- sidelink communication congestion control +maxSL-V2X-TxConfig2-1-r14 INTEGER ::= 127 +maxSTAG-r11 INTEGER ::= 3 -- Maximum number of STAGs +maxServCell-r10 INTEGER ::= 5 -- Maximum number of Serving cells +maxServCell-r13 INTEGER ::= 32 -- Highest value of extended number range of Serving cells +maxServiceCount INTEGER ::= 16 -- Maximum number of MBMS services that can be included + -- in an MBMS counting request and response +maxServiceCount-1 INTEGER ::= 15 +maxSessionPerPMCH INTEGER ::= 29 +maxSessionPerPMCH-1 INTEGER ::= 28 +maxSIB INTEGER ::= 32 -- Maximum number of SIBs +maxSIB-1 INTEGER ::= 31 +maxSI-Message INTEGER ::= 32 -- Maximum number of SI messages +maxSimultaneousBands-r10 INTEGER ::= 64 -- Maximum number of simultaneously aggregated bands +maxSubframePatternIDC-r11 INTEGER ::= 8 -- Maximum number of subframe reservation patterns + -- that the UE can simultaneously recommend to the + -- E-UTRAN for use. +maxTrafficPattern-r14 INTEGER ::= 8 -- Maximum number of periodical traffic patterns + -- that the UE can simultaneously report to the + -- E-UTRAN. +maxUTRA-FDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA FDD carrier frequencies +maxUTRA-TDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA TDD carrier frequencies +maxWLAN-Id-r12 INTEGER ::= 16 -- Maximum number of WLAN identifiers +maxWLAN-Bands-r13 INTEGER ::= 8 -- Maximum number of WLAN bands +maxWLAN-Id-r13 INTEGER ::= 32 -- Maximum number of WLAN identifiers +maxWLAN-Channels-r13 INTEGER ::= 16 -- maximum number of WLAN channels used in + -- WLAN-CarrierInfo +maxWLAN-CarrierInfo-r13 INTEGER ::= 8 -- Maximum number of WLAN Carrier Information +maxWLAN-Id-Report-r14 INTEGER ::= 32 -- Maximum number of WLAN IDs to report + + +END + + +PC5-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + TDD-ConfigSL-r12 +FROM EUTRA-RRC-Definitions; + + +SBCCH-SL-BCH-Message ::= SEQUENCE { + message SBCCH-SL-BCH-MessageType +} + +SBCCH-SL-BCH-MessageType ::= MasterInformationBlock-SL + + +SBCCH-SL-BCH-Message-V2X-r14 ::= SEQUENCE { + message SBCCH-SL-BCH-MessageType-V2X-r14 +} + +SBCCH-SL-BCH-MessageType-V2X-r14 ::= MasterInformationBlock-SL-V2X-r14 + + +MasterInformationBlock-SL ::= SEQUENCE { + sl-Bandwidth-r12 ENUMERATED { + n6, n15, n25, n50, n75, n100}, + tdd-ConfigSL-r12 TDD-ConfigSL-r12, + directFrameNumber-r12 BIT STRING (SIZE (10)), + directSubframeNumber-r12 INTEGER (0..9), + inCoverage-r12 BOOLEAN, + reserved-r12 BIT STRING (SIZE (19)) +} + + + +MasterInformationBlock-SL-V2X-r14 ::= SEQUENCE { + sl-Bandwidth-r14 ENUMERATED { + n6, n15, n25, n50, n75, n100}, + tdd-ConfigSL-r14 TDD-ConfigSL-r12, + directFrameNumber-r14 BIT STRING (SIZE (10)), + directSubframeNumber-r14 INTEGER (0..9), + inCoverage-r14 BOOLEAN, + reserved-r14 BIT STRING (SIZE (27)) +} + + + +END + + +NBIOT-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + RRCConnectionReestablishmentReject, + SecurityModeCommand, + SecurityModeComplete, + SecurityModeFailure, + AdditionalSpectrumEmission, + ARFCN-ValueEUTRA-r9, + CellIdentity, + DedicatedInfoNAS, + DRB-Identity, + InitialUE-Identity, + IntraFreqBlackCellList, + IntraFreqNeighCellList, + maxBands, + maxCellBlack, + maxCellInter, + maxFBI2, + maxFreq, + maxMultiBands, + maxPageRec, + maxPLMN-r11, + maxSAI-MBMS-r11, + maxSIB, + maxSIB-1, + MBMS-SAI-r11, + MBMS-SAI-List-r11, + MBMSSessionInfo-r13, + NextHopChainingCount, + PagingUE-Identity, + PLMN-Identity, + P-Max, + PowerRampingParameters, + PreambleTransMax, + PhysCellId, + Q-OffsetRange, + Q-QualMin-r9, + Q-RxLevMin, + ReestabUE-Identity, + RegisteredMME, + ReselectionThreshold, + ResumeIdentity-r13, + RRC-TransactionIdentifier, + RSRP-Range, + ShortMAC-I, + S-TMSI, + SystemInformationBlockType16-r11, + SystemInfoValueTagSI-r13, + T-Reordering, + TimeAlignmentTimer, + TMGI-r9, + TrackingAreaCode, + DataInactivityTimer-r14 + +FROM EUTRA-RRC-Definitions; + + +BCCH-BCH-Message-NB ::= SEQUENCE { + message BCCH-BCH-MessageType-NB +} + + +BCCH-BCH-MessageType-NB::= MasterInformationBlock-NB + + + +BCCH-DL-SCH-Message-NB ::= SEQUENCE { + message BCCH-DL-SCH-MessageType-NB +} + +BCCH-DL-SCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + systemInformation-r13 SystemInformation-NB, + systemInformationBlockType1-r13 SystemInformationBlockType1-NB + }, + messageClassExtension SEQUENCE {} +} + + +PCCH-Message-NB ::= SEQUENCE { + message PCCH-MessageType-NB +} + +PCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + paging-r13 Paging-NB + }, + messageClassExtension SEQUENCE {} +} + + +DL-CCCH-Message-NB ::= SEQUENCE { + message DL-CCCH-MessageType-NB +} + +DL-CCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishment-r13 RRCConnectionReestablishment-NB, + rrcConnectionReestablishmentReject-r13 RRCConnectionReestablishmentReject, + rrcConnectionReject-r13 RRCConnectionReject-NB, + rrcConnectionSetup-r13 RRCConnectionSetup-NB, + spare4 NULL, spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +DL-DCCH-Message-NB ::= SEQUENCE { + message DL-DCCH-MessageType-NB +} + +DL-DCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + dlInformationTransfer-r13 DLInformationTransfer-NB, + rrcConnectionReconfiguration-r13 RRCConnectionReconfiguration-NB, + rrcConnectionRelease-r13 RRCConnectionRelease-NB, + securityModeCommand-r13 SecurityModeCommand, + ueCapabilityEnquiry-r13 UECapabilityEnquiry-NB, + rrcConnectionResume-r13 RRCConnectionResume-NB, + spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + + +UL-CCCH-Message-NB ::= SEQUENCE { + message UL-CCCH-MessageType-NB +} + +UL-CCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishmentRequest-r13 RRCConnectionReestablishmentRequest-NB, + rrcConnectionRequest-r13 RRCConnectionRequest-NB, + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-NB, + spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +SC-MCCH-Message-NB ::= SEQUENCE { + message SC-MCCH-MessageType-NB +} + + +SC-MCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + scptmConfiguration-r14 SCPTMConfiguration-NB-r14 + }, + messageClassExtension SEQUENCE {} +} + + +UL-DCCH-Message-NB ::= SEQUENCE { + message UL-DCCH-MessageType-NB +} + +UL-DCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + rrcConnectionReconfigurationComplete-r13 RRCConnectionReconfigurationComplete-NB, + rrcConnectionReestablishmentComplete-r13 RRCConnectionReestablishmentComplete-NB, + rrcConnectionSetupComplete-r13 RRCConnectionSetupComplete-NB, + securityModeComplete-r13 SecurityModeComplete, + securityModeFailure-r13 SecurityModeFailure, + ueCapabilityInformation-r13 UECapabilityInformation-NB, + ulInformationTransfer-r13 ULInformationTransfer-NB, + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-NB, + spare8 NULL, spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +DLInformationTransfer-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + dlInformationTransfer-r13 DLInformationTransfer-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +DLInformationTransfer-NB-r13-IEs ::= SEQUENCE { + dedicatedInfoNAS-r13 DedicatedInfoNAS, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MasterInformationBlock-NB ::= SEQUENCE { + systemFrameNumber-MSB-r13 BIT STRING (SIZE (4)), + hyperSFN-LSB-r13 BIT STRING (SIZE (2)), + schedulingInfoSIB1-r13 INTEGER (0..15), + systemInfoValueTag-r13 INTEGER (0..31), + ab-Enabled-r13 BOOLEAN, + operationModeInfo-r13 CHOICE { + inband-SamePCI-r13 Inband-SamePCI-NB-r13, + inband-DifferentPCI-r13 Inband-DifferentPCI-NB-r13, + guardband-r13 Guardband-NB-r13, + standalone-r13 Standalone-NB-r13 + }, + spare BIT STRING (SIZE (11)) +} + +ChannelRasterOffset-NB-r13 ::= ENUMERATED {khz-7dot5, khz-2dot5, khz2dot5, khz7dot5} + +Guardband-NB-r13 ::= SEQUENCE { + rasterOffset-r13 ChannelRasterOffset-NB-r13, + spare BIT STRING (SIZE (3)) +} + +Inband-SamePCI-NB-r13 ::= SEQUENCE { + eutra-CRS-SequenceInfo-r13 INTEGER (0..31) +} + +Inband-DifferentPCI-NB-r13 ::= SEQUENCE { + eutra-NumCRS-Ports-r13 ENUMERATED {same, four}, + rasterOffset-r13 ChannelRasterOffset-NB-r13, + spare BIT STRING (SIZE (2)) +} + +Standalone-NB-r13 ::= SEQUENCE { + spare BIT STRING (SIZE (5)) +} + + +Paging-NB ::= SEQUENCE { + pagingRecordList-r13 PagingRecordList-NB-r13 OPTIONAL, -- Need ON + systemInfoModification-r13 ENUMERATED {true} OPTIONAL, -- Need ON + systemInfoModification-eDRX-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PagingRecordList-NB-r13 ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord-NB-r13 + +PagingRecord-NB-r13 ::= SEQUENCE { + ue-Identity-r13 PagingUE-Identity, + ... +} + + +RRCConnectionReconfiguration-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReconfiguration-r13 RRCConnectionReconfiguration-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfiguration-NB-r13-IEs ::= SEQUENCE { + dedicatedInfoNASList-r13 SEQUENCE (SIZE(1..maxDRB-NB-r13)) OF + DedicatedInfoNAS OPTIONAL, -- Need ON + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13 OPTIONAL, -- Need ON + fullConfig-r13 ENUMERATED {true} OPTIONAL, -- Cond Reestab + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReconfigurationComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReconfigurationComplete-r13 RRCConnectionReconfigurationComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfigurationComplete-NB-r13-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + + +RRCConnectionReestablishment-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReestablishment-r13 RRCConnectionReestablishment-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishment-NB-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13, + nextHopChainingCount-r13 NextHopChainingCount, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReestablishment-NB-v1430-IEs OPTIONAL +} + +RRCConnectionReestablishment-NB-v1430-IEs ::= SEQUENCE { + dl-NAS-MAC BIT STRING (SIZE (16)) OPTIONAL, -- Cond Reestablish-CP + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReestablishmentComplete-r13 RRCConnectionReestablishmentComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentComplete-NB-r13-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentRequest-NB ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentRequest-r13 + RRCConnectionReestablishmentRequest-NB-r13-IEs, + later CHOICE { + rrcConnectionReestablishmentRequest-r14 + RRCConnectionReestablishmentRequest-NB-r14-IEs, + criticalExtensionsFuture SEQUENCE {} + } + } +} + +RRCConnectionReestablishmentRequest-NB-r13-IEs ::= SEQUENCE { + ue-Identity-r13 ReestabUE-Identity, + reestablishmentCause-r13 ReestablishmentCause-NB-r13, + spare BIT STRING (SIZE (25)) +} + +RRCConnectionReestablishmentRequest-NB-r14-IEs ::= SEQUENCE { + ue-Identity-r14 ReestabUE-Identity-CP-NB-r14, + reestablishmentCause-r14 ReestablishmentCause-NB-r13, + spare BIT STRING (SIZE (4)) +} + +ReestablishmentCause-NB-r13 ::= ENUMERATED { + reconfigurationFailure, otherFailure, + spare2, spare1} + +ReestabUE-Identity-CP-NB-r14 ::= SEQUENCE { + s-TMSI-r14 S-TMSI, + ul-NAS-MAC-r14 BIT STRING (SIZE (16)), + ul-NAS-Count-r14 BIT STRING (SIZE (5)) +} + + +RRCConnectionReject-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionReject-r13 RRCConnectionReject-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReject-NB-r13-IEs ::= SEQUENCE { + extendedWaitTime-r13 INTEGER (1..1800), + rrc-SuspendIndication-r13 ENUMERATED {true} OPTIONAL, -- Need ON + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionRelease-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionRelease-r13 RRCConnectionRelease-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRelease-NB-r13-IEs ::= SEQUENCE { + releaseCause-r13 ReleaseCause-NB-r13, + resumeIdentity-r13 ResumeIdentity-r13 OPTIONAL, -- Need OR + extendedWaitTime-r13 INTEGER (1..1800) OPTIONAL, -- Need ON + redirectedCarrierInfo-r13 RedirectedCarrierInfo-NB-r13 OPTIONAL, -- Need ON + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionRelease-NB-v1430-IEs OPTIONAL +} + +RRCConnectionRelease-NB-v1430-IEs ::= SEQUENCE { + redirectedCarrierInfo-v1430 RedirectedCarrierInfo-NB-v1430 OPTIONAL, -- Cond Redirection + extendedWaitTime-CPdata-r14 INTEGER (1..1800) OPTIONAL, -- Cond NoExtendedWaitTime + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +ReleaseCause-NB-r13 ::= ENUMERATED {loadBalancingTAUrequired, other, + rrc-Suspend, spare1} +RedirectedCarrierInfo-NB-r13::= CarrierFreq-NB-r13 + +RedirectedCarrierInfo-NB-v1430 ::= SEQUENCE { + redirectedCarrierOffsetDedicated-r14 ENUMERATED{ + dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24, dB26}, + t322-r14 ENUMERATED{ + min5, min10, min20, min30, min60, min120, min180, + spare1} +} + + +RRCConnectionRequest-NB ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionRequest-r13 RRCConnectionRequest-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRequest-NB-r13-IEs ::= SEQUENCE { + ue-Identity-r13 InitialUE-Identity, + establishmentCause-r13 EstablishmentCause-NB-r13, + multiToneSupport-r13 ENUMERATED {true} OPTIONAL, + multiCarrierSupport-r13 ENUMERATED {true} OPTIONAL, + spare BIT STRING (SIZE (22)) +} + + +RRCConnectionResume-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionResume-r13 RRCConnectionResume-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResume-NB-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13 OPTIONAL, -- Need ON + nextHopChainingCount-r13 NextHopChainingCount, + drb-ContinueROHC-r13 ENUMERATED {true} OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeComplete-NB-r13-IEs ::= SEQUENCE { + selectedPLMN-Identity-r13 INTEGER (1..maxPLMN-r11) OPTIONAL, + dedicatedInfoNAS-r13 DedicatedInfoNAS OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeRequest-NB ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeRequest-NB-r13-IEs ::= SEQUENCE { + resumeID-r13 ResumeIdentity-r13, + shortResumeMAC-I-r13 ShortMAC-I, + resumeCause-r13 EstablishmentCause-NB-r13, + spare BIT STRING (SIZE (9)) +} + + +RRCConnectionSetup-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionSetup-r13 RRCConnectionSetup-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetup-NB-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionSetupComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE{ + rrcConnectionSetupComplete-r13 RRCConnectionSetupComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetupComplete-NB-r13-IEs ::= SEQUENCE { + selectedPLMN-Identity-r13 INTEGER (1..maxPLMN-r11), + s-TMSI-r13 S-TMSI OPTIONAL, + registeredMME-r13 RegisteredMME OPTIONAL, + dedicatedInfoNAS-r13 DedicatedInfoNAS, + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL, + up-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-NB-v1430-IEs OPTIONAL +} + +RRCConnectionSetupComplete-NB-v1430-IEs ::= SEQUENCE { + gummei-Type-r14 ENUMERATED { mapped} OPTIONAL, + dcn-ID-r14 INTEGER (0..65535) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCPTMConfiguration-NB-r14 ::= SEQUENCE { + sc-mtch-InfoList-r14 SC-MTCH-InfoList-NB-r14, + scptm-NeighbourCellList-r14 SCPTM-NeighbourCellList-NB-r14 OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + systemInformation-r13 SystemInformation-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} +SystemInformation-NB-r13-IEs ::= SEQUENCE { + sib-TypeAndInfo-r13 SEQUENCE (SIZE (1..maxSIB)) OF CHOICE { + sib2-r13 SystemInformationBlockType2-NB-r13, + sib3-r13 SystemInformationBlockType3-NB-r13, + sib4-r13 SystemInformationBlockType4-NB-r13, + sib5-r13 SystemInformationBlockType5-NB-r13, + sib14-r13 SystemInformationBlockType14-NB-r13, + sib16-r13 SystemInformationBlockType16-NB-r13, + ..., + sib15-v1430 SystemInformationBlockType15-NB-r14, + sib20-v1430 SystemInformationBlockType20-NB-r14, + sib22-v1430 SystemInformationBlockType22-NB-r14 + }, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType1-NB ::= SEQUENCE { + hyperSFN-MSB-r13 BIT STRING (SIZE (8)), + cellAccessRelatedInfo-r13 SEQUENCE { + plmn-IdentityList-r13 PLMN-IdentityList-NB-r13, + trackingAreaCode-r13 TrackingAreaCode, + cellIdentity-r13 CellIdentity, + cellBarred-r13 ENUMERATED {barred, notBarred}, + intraFreqReselection-r13 ENUMERATED {allowed, notAllowed} + }, + cellSelectionInfo-r13 SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + q-QualMin-r13 Q-QualMin-r9 + }, + p-Max-r13 P-Max OPTIONAL, -- Need OP + freqBandIndicator-r13 FreqBandIndicator-NB-r13, + freqBandInfo-r13 NS-PmaxList-NB-r13 OPTIONAL, -- Need OR + multiBandInfoList-r13 MultiBandInfoList-NB-r13 OPTIONAL, -- Need OR + downlinkBitmap-r13 DL-Bitmap-NB-r13 OPTIONAL, -- Need OP, + eutraControlRegionSize-r13 ENUMERATED {n1, n2, n3} OPTIONAL, -- Cond inband + nrs-CRS-PowerOffset-r13 ENUMERATED {dB-6, dB-4dot77, dB-3, + dB-1dot77, dB0, dB1, + dB1dot23, dB2, dB3, + dB4, dB4dot23, dB5, + dB6, dB7, dB8, + dB9} OPTIONAL, -- Cond inband-SamePCI + schedulingInfoList-r13 SchedulingInfoList-NB-r13, + si-WindowLength-r13 ENUMERATED {ms160, ms320, ms480, ms640, + ms960, ms1280, ms1600, spare1}, + si-RadioFrameOffset-r13 INTEGER (1..15) OPTIONAL, -- Need OP + systemInfoValueTagList-r13 SystemInfoValueTagList-NB-r13 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SystemInformationBlockType1-NB-v1350 OPTIONAL +} + +SystemInformationBlockType1-NB-v1350 ::= SEQUENCE { + cellSelectionInfo-v1350 CellSelectionInfo-NB-v1350 OPTIONAL, -- Cond Qrxlevmin + nonCriticalExtension SystemInformationBlockType1-NB-v1430 OPTIONAL +} + +SystemInformationBlockType1-NB-v1430 ::= SEQUENCE { + cellSelectionInfo-v1430 CellSelectionInfo-NB-v1430 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-NB-v1450 OPTIONAL +} + +SystemInformationBlockType1-NB-v1450 ::= SEQUENCE { + nrs-CRS-PowerOffset-v1450 ENUMERATED {dB-6, dB-4dot77, dB-3, + dB-1dot77, dB0, dB1, + dB1dot23, dB2, dB3, + dB4, dB4dot23, dB5, + dB6, dB7, dB8, + dB9} OPTIONAL, -- Cond inband-SamePCI-ExceptAnchor + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PLMN-IdentityList-NB-r13 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo-NB-r13 + +PLMN-IdentityInfo-NB-r13 ::= SEQUENCE { + plmn-Identity-r13 PLMN-Identity, + cellReservedForOperatorUse-r13 ENUMERATED {reserved, notReserved}, + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL -- Need OP +} + +SchedulingInfoList-NB-r13 ::= SEQUENCE (SIZE (1..maxSI-Message-NB-r13)) OF SchedulingInfo-NB-r13 + +SchedulingInfo-NB-r13::= SEQUENCE { + si-Periodicity-r13 ENUMERATED {rf64, rf128, rf256, rf512, + rf1024, rf2048, rf4096, spare}, + si-RepetitionPattern-r13 ENUMERATED {every2ndRF, every4thRF, every8thRF, every16thRF}, + sib-MappingInfo-r13 SIB-MappingInfo-NB-r13, + si-TB-r13 ENUMERATED {b56, b120, b208, b256, b328, b440, b552, b680} +} + +SystemInfoValueTagList-NB-r13 ::= SEQUENCE (SIZE (1.. maxSI-Message-NB-r13)) OF + SystemInfoValueTagSI-r13 + +SIB-MappingInfo-NB-r13 ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type-NB-r13 + +SIB-Type-NB-r13 ::= ENUMERATED { + sibType3-NB-r13, sibType4-NB-r13, sibType5-NB-r13, + sibType14-NB-r13, sibType16-NB-r13, sibType15-NB-r14, + sibType20-NB-r14, sibType22-NB-r14} + +CellSelectionInfo-NB-v1350 ::= SEQUENCE { + delta-RxLevMin-v1350 INTEGER (-8..-1) +} + +CellSelectionInfo-NB-v1430 ::= SEQUENCE { + powerClass14dBm-Offset-r14 ENUMERATED {dB-6, dB-3, dB3, dB6, dB9, dB12} OPTIONAL, -- Need OP + ce-authorisationOffset-r14 ENUMERATED {dB5, dB10, dB15, dB20, dB25, dB30, dB35} OPTIONAL -- Need OP +} + + +UECapabilityEnquiry-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueCapabilityEnquiry-r13 UECapabilityEnquiry-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityEnquiry-NB-r13-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UECapabilityInformation-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE{ + ueCapabilityInformation-r13 UECapabilityInformation-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityInformation-NB-r13-IEs ::= SEQUENCE { + ue-Capability-r13 UE-Capability-NB-r13, + ue-RadioPagingInfo-r13 UE-RadioPagingInfo-NB-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UECapabilityInformation-NB-Ext-r14-IEs OPTIONAL +} + +UECapabilityInformation-NB-Ext-r14-IEs ::= SEQUENCE { + ue-Capability-ContainerExt-r14 OCTET STRING (CONTAINING UE-Capability-NB-Ext-r14-IEs), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +ULInformationTransfer-NB ::= SEQUENCE { + criticalExtensions CHOICE { + ulInformationTransfer-r13 ULInformationTransfer-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULInformationTransfer-NB-r13-IEs ::= SEQUENCE { + dedicatedInfoNAS-r13 DedicatedInfoNAS, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType2-NB-r13 ::= SEQUENCE { + radioResourceConfigCommon-r13 RadioResourceConfigCommonSIB-NB-r13, + ue-TimersAndConstants-r13 UE-TimersAndConstants-NB-r13, + freqInfo-r13 SEQUENCE { + ul-CarrierFreq-r13 CarrierFreq-NB-r13 OPTIONAL, -- Need OP + additionalSpectrumEmission-r13 AdditionalSpectrumEmission + }, + timeAlignmentTimerCommon-r13 TimeAlignmentTimer, + multiBandInfoList-r13 SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ cp-Reestablishment-r14 ENUMERATED {true} OPTIONAL -- Need OP + ]] +} + + +SystemInformationBlockType3-NB-r13 ::= SEQUENCE { + cellReselectionInfoCommon-r13 SEQUENCE { + q-Hyst-r13 ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24 + } + }, + cellReselectionServingFreqInfo-r13 SEQUENCE { + s-NonIntraSearch-r13 ReselectionThreshold + }, + intraFreqCellReselectionInfo-r13 SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + q-QualMin-r13 Q-QualMin-r9 OPTIONAL, -- Need OP + p-Max-r13 P-Max OPTIONAL, -- Need OP + s-IntraSearchP-r13 ReselectionThreshold, + t-Reselection-r13 T-Reselection-NB-r13 + }, + freqBandInfo-r13 NS-PmaxList-NB-r13 OPTIONAL, -- Need OR + multiBandInfoList-r13 SEQUENCE (SIZE (1..maxMultiBands)) OF + NS-PmaxList-NB-r13 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ intraFreqCellReselectionInfo-v1350 IntraFreqCellReselectionInfo-NB-v1350 OPTIONAL -- Cond Qrxlevmin + ]], + [[ intraFreqCellReselectionInfo-v1360 IntraFreqCellReselectionInfo-NB-v1360 OPTIONAL -- Need OR + ]], + [[ intraFreqCellReselectionInfo-v1430 IntraFreqCellReselectionInfo-NB-v1430 OPTIONAL -- Need OR + ]], + [[ cellReselectionInfoCommon-v1450 CellReselectionInfoCommon-NB-v1450 OPTIONAL -- Need OR + ]] +} + +IntraFreqCellReselectionInfo-NB-v1350 ::= SEQUENCE { + delta-RxLevMin-v1350 INTEGER (-8..-1) +} + +IntraFreqCellReselectionInfo-NB-v1360 ::= SEQUENCE { + s-IntraSearchP-v1360 ReselectionThreshold-NB-v1360 +} + +IntraFreqCellReselectionInfo-NB-v1430 ::= SEQUENCE { + powerClass14dBm-Offset-r14 ENUMERATED {dB-6, dB-3, dB3, dB6, dB9, dB12} OPTIONAL, -- Need OP + ce-AuthorisationOffset-r14 ENUMERATED {dB5, dB10, dB15, dB20, dB25, dB30, dB35} OPTIONAL -- Need OP +} + +CellReselectionInfoCommon-NB-v1450 ::= SEQUENCE { + s-SearchDeltaP-r14 ENUMERATED {dB6, dB9, dB12, dB15} +} + + +SystemInformationBlockType4-NB-r13 ::= SEQUENCE { + intraFreqNeighCellList-r13 IntraFreqNeighCellList OPTIONAL, -- Need OR + intraFreqBlackCellList-r13 IntraFreqBlackCellList OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + + +SystemInformationBlockType5-NB-r13 ::= SEQUENCE { + interFreqCarrierFreqList-r13 InterFreqCarrierFreqList-NB-r13, + t-Reselection-r13 T-Reselection-NB-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ scptm-FreqOffset-r14 INTEGER (1..8) OPTIONAL -- Need OP + ]] +} + + +InterFreqCarrierFreqList-NB-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-NB-r13 + + +InterFreqCarrierFreqInfo-NB-r13 ::= SEQUENCE { + dl-CarrierFreq-r13 CarrierFreq-NB-r13, + q-RxLevMin-r13 Q-RxLevMin, + q-QualMin-r13 Q-QualMin-r9 OPTIONAL, -- Need OP + p-Max-r13 P-Max OPTIONAL, -- Need OP + q-OffsetFreq-r13 Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList-r13 InterFreqNeighCellList-NB-r13 OPTIONAL, -- Need OR + interFreqBlackCellList-r13 InterFreqBlackCellList-NB-r13 OPTIONAL, -- Need OR + multiBandInfoList-r13 MultiBandInfoList-NB-r13 OPTIONAL, -- Need OR + ..., + [[ delta-RxLevMin-v1350 INTEGER (-8..-1) OPTIONAL -- Cond Qrxlevmin + ]], + [[ powerClass14dBm-Offset-r14 ENUMERATED {dB-6, dB-3, dB3, dB6, dB9, dB12} +OPTIONAL, -- Need OP + ce-AuthorisationOffset-r14 ENUMERATED {dB5, dB10, dB15, dB20, dB25, dB30, dB35} OPTIONAL -- Need OP + ]] +} + +InterFreqNeighCellList-NB-r13 ::= SEQUENCE (SIZE (1..maxCellInter)) OF PhysCellId + + +InterFreqBlackCellList-NB-r13 ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellId + + + +SystemInformationBlockType14-NB-r13 ::= SEQUENCE { + ab-Param-r13 CHOICE { + ab-Common-r13 AB-Config-NB-r13, + ab-PerPLMN-List-r13 SEQUENCE (SIZE (1..maxPLMN-r11)) OF AB-ConfigPLMN-NB-r13 + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +AB-ConfigPLMN-NB-r13 ::= SEQUENCE { + ab-Config-r13 AB-Config-NB-r13 OPTIONAL -- Need OR +} + +AB-Config-NB-r13 ::= SEQUENCE { + ab-Category-r13 ENUMERATED {a, b, c}, + ab-BarringBitmap-r13 BIT STRING (SIZE(10)), + ab-BarringForExceptionData-r13 ENUMERATED {true} OPTIONAL, -- Need OP + ab-BarringForSpecialAC-r13 BIT STRING (SIZE(5)) +} + + +SystemInformationBlockType15-NB-r14 ::= SEQUENCE { + mbms-SAI-IntraFreq-r14 MBMS-SAI-List-r11 OPTIONAL, -- Need OR + mbms-SAI-InterFreqList-r14 MBMS-SAI-InterFreqList-NB-r14 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +MBMS-SAI-InterFreqList-NB-r14 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-NB-r14 + +MBMS-SAI-InterFreq-NB-r14 ::= SEQUENCE { + dl-CarrierFreq-r14 CarrierFreq-NB-r13, + mbms-SAI-List-r14 MBMS-SAI-List-r11, + multiBandInfoList-r14 AdditionalBandInfoList-NB-r14 OPTIONAL -- Need OR +} + + +SystemInformationBlockType16-NB-r13 ::= SystemInformationBlockType16-r11 + + +SystemInformationBlockType20-NB-r14 ::= SEQUENCE { + npdcch-SC-MCCH-Config-r14 NPDCCH-SC-MCCH-Config-NB-r14, + sc-mcch-CarrierConfig-r14 CHOICE { + dl-CarrierConfig-r14 DL-CarrierConfigCommon-NB-r14, + dl-CarrierIndex-r14 INTEGER (0.. maxNonAnchorCarriers-NB-r14) + }, + sc-mcch-RepetitionPeriod-r14 ENUMERATED {rf32, rf128, rf512, rf1024, + rf2048, rf4096, rf8192, rf16384}, + sc-mcch-Offset-r14 INTEGER (0..10), + sc-mcch-ModificationPeriod-r14 ENUMERATED { rf32, rf128, rf256, rf512, rf1024, + rf2048, rf4096, rf8192, rf16384, rf32768, + rf65536, rf131072, rf262144, rf524288, + rf1048576, spare1}, + sc-mcch-SchedulingInfo-r14 SC-MCCH-SchedulingInfo-NB-r14 OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +NPDCCH-SC-MCCH-Config-NB-r14 ::= SEQUENCE { + npdcch-NumRepetitions-SC-MCCH-r14 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256, + r512, r1024, r2048}, + npdcch-StartSF-SC-MCCH-r14 ENUMERATED {v1dot5, v2, v4, v8, + v16, v32, v48, v64}, + npdcch-Offset-SC-MCCH-r14 ENUMERATED {zero, oneEighth, oneQuarter, + threeEighth, oneHalf, fiveEighth, + threeQuarter, sevenEighth} +} + +SC-MCCH-SchedulingInfo-NB-r14::= SEQUENCE { + onDurationTimerSCPTM-r14 ENUMERATED { + pp1, pp2, pp3, pp4, + pp8, pp16, pp32, spare}, + drx-InactivityTimerSCPTM-r14 ENUMERATED { + pp0, pp1, pp2, pp3, + pp4, pp8, pp16, pp32}, + schedulingPeriodStartOffsetSCPTM-r14 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2047), + sf4096 INTEGER(0..4095), + sf8192 INTEGER(0..8191) + }, + ... +} + + +SystemInformationBlockType22-NB-r14 ::= SEQUENCE { + dl-ConfigList-r14 DL-ConfigCommonList-NB-r14 OPTIONAL, -- Need OR + ul-ConfigList-r14 UL-ConfigCommonList-NB-r14 OPTIONAL, -- Need OR + pagingWeightAnchor-r14 PagingWeight-NB-r14 OPTIONAL, -- Cond pcch-config + nprach-ProbabilityAnchorList-r14 NPRACH-ProbabilityAnchorList-NB-r14 OPTIONAL, -- Cond nprach-config + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +DL-ConfigCommonList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNonAnchorCarriers-NB-r14)) OF + DL-ConfigCommon-NB-r14 + +UL-ConfigCommonList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNonAnchorCarriers-NB-r14)) OF + UL-ConfigCommon-NB-r14 + + +DL-ConfigCommon-NB-r14 ::= SEQUENCE { + dl-CarrierConfig-r14 DL-CarrierConfigCommon-NB-r14, + pcch-Config-r14 PCCH-Config-NB-r14 OPTIONAL, -- Need OR + ... +} + +PCCH-Config-NB-r14 ::= SEQUENCE { + npdcch-NumRepetitionPaging-r14 ENUMERATED { + r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1} OPTIONAL, -- Need OP + pagingWeight-r14 PagingWeight-NB-r14 DEFAULT w1, + ... +} + +PagingWeight-NB-r14 ::= ENUMERATED {w1, w2, w3, w4, w5, w6, w7, w8, + w9, w10, w11, w12, w13, w14, w15, w16} + +UL-ConfigCommon-NB-r14 ::= SEQUENCE { + ul-CarrierFreq-r14 CarrierFreq-NB-r13, + nprach-ParametersList-r14 NPRACH-ParametersList-NB-r14 OPTIONAL, -- Need OR + ... +} + +NPRACH-ParametersList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF + NPRACH-Parameters-NB-r14 + + +NPRACH-Parameters-NB-r14 ::= SEQUENCE { + nprach-Parameters-r14 SEQUENCE { + nprach-Periodicity-r14 ENUMERATED {ms40, ms80, ms160, ms240, + ms320, ms640, ms1280, ms2560} + OPTIONAL, -- NEED OP + nprach-StartTime-r14 ENUMERATED {ms8, ms16, ms32, ms64, + ms128, ms256, ms512, ms1024} + OPTIONAL, -- NEED OP + nprach-SubcarrierOffset-r14 ENUMERATED {n0, n12, n24, n36, n2, n18, n34, spare1} + OPTIONAL, -- NEED OP + nprach-NumSubcarriers-r14 ENUMERATED {n12, n24, n36, n48} + OPTIONAL, -- NEED OP + nprach-SubcarrierMSG3-RangeStart-r14 ENUMERATED {zero, oneThird, twoThird, one} + OPTIONAL, -- NEED OP + npdcch-NumRepetitions-RA-r14 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1} + OPTIONAL, -- NEED OP + npdcch-StartSF-CSS-RA-r14 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64} + OPTIONAL, -- NEED OP + npdcch-Offset-RA-r14 ENUMERATED {zero, oneEighth, oneFourth, threeEighth} + OPTIONAL, -- NEED OP + nprach-NumCBRA-StartSubcarriers-r14 ENUMERATED {n8, n10, n11, n12, n20, n22, n23, n24, + n32, n34, n35, n36, n40, n44, n46, n48} + OPTIONAL, -- NEED OP + npdcch-CarrierIndex-r14 INTEGER (1..maxNonAnchorCarriers-NB-r14) + OPTIONAL, -- Need OP + ... + } OPTIONAL -- Need OR +} + +NPRACH-ProbabilityAnchorList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF + NPRACH-ProbabilityAnchor-NB-r14 + +NPRACH-ProbabilityAnchor-NB-r14 ::= SEQUENCE { + nprach-ProbabilityAnchor-r14 ENUMERATED { + zero, oneSixteenth, oneFifteenth, oneFourteenth, + oneThirteenth, oneTwelfth, oneEleventh, oneTenth, + oneNinth, oneEighth, oneSeventh, oneSixth, + oneFifth, oneFourth, oneThird, oneHalf} + OPTIONAL -- Need OP +} + + +CarrierConfigDedicated-NB-r13 ::= SEQUENCE { + dl-CarrierConfig-r13 DL-CarrierConfigDedicated-NB-r13, + ul-CarrierConfig-r13 UL-CarrierConfigDedicated-NB-r13 +} + +DL-CarrierConfigDedicated-NB-r13 ::= SEQUENCE { + dl-CarrierFreq-r13 CarrierFreq-NB-r13, + downlinkBitmapNonAnchor-r13 CHOICE { + useNoBitmap-r13 NULL, + useAnchorBitmap-r13 NULL, + explicitBitmapConfiguration-r13 DL-Bitmap-NB-r13, + spare NULL + } OPTIONAL, -- Need ON + dl-GapNonAnchor-r13 CHOICE { + useNoGap-r13 NULL, + useAnchorGapConfig-r13 NULL, + explicitGapConfiguration-r13 DL-GapConfig-NB-r13, + spare NULL + } OPTIONAL, -- Need ON + inbandCarrierInfo-r13 SEQUENCE { + samePCI-Indicator-r13 CHOICE { + samePCI-r13 SEQUENCE { + indexToMidPRB-r13 INTEGER (-55..54) + }, + differentPCI-r13 SEQUENCE { + eutra-NumCRS-Ports-r13 ENUMERATED {same, four} + } + } OPTIONAL, -- Cond anchor-guardband + eutraControlRegionSize-r13 ENUMERATED {n1, n2, n3} + } OPTIONAL, -- Cond non-anchor-inband + ..., + [[ nrs-PowerOffsetNonAnchor-v1330 ENUMERATED {dB-12, dB-10, dB-8, dB-6, + dB-4, dB-2, dB0, dB3} + OPTIONAL -- Need ON + ]] +} + +UL-CarrierConfigDedicated-NB-r13 ::= SEQUENCE { + ul-CarrierFreq-r13 CarrierFreq-NB-r13 OPTIONAL, -- Need OP + ... +} + + +CarrierFreq-NB-r13 ::= SEQUENCE { + carrierFreq-r13 ARFCN-ValueEUTRA-r9, + carrierFreqOffset-r13 ENUMERATED { + v-10, v-9, v-8, v-7, v-6, v-5, v-4, v-3, v-2, v-1, v-0dot5, + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9 + } OPTIONAL -- Need ON +} + + +DL-Bitmap-NB-r13 ::= CHOICE { + subframePattern10-r13 BIT STRING (SIZE (10)), + subframePattern40-r13 BIT STRING (SIZE (40)) +} + + +DL-CarrierConfigCommon-NB-r14 ::= SEQUENCE { + dl-CarrierFreq-r14 CarrierFreq-NB-r13, + downlinkBitmapNonAnchor-r14 CHOICE { + useNoBitmap-r14 NULL, + useAnchorBitmap-r14 NULL, + explicitBitmapConfiguration-r14 DL-Bitmap-NB-r13 + }, + dl-GapNonAnchor-r14 CHOICE { + useNoGap-r14 NULL, + useAnchorGapConfig-r14 NULL, + explicitGapConfiguration-r14 DL-GapConfig-NB-r13 + }, + inbandCarrierInfo-r14 SEQUENCE { + samePCI-Indicator-r14 CHOICE { + samePCI-r14 SEQUENCE { + indexToMidPRB-r14 INTEGER (-55..54) + }, + differentPCI-r14 SEQUENCE { + eutra-NumCRS-Ports-r14 ENUMERATED {same, four} + } + } OPTIONAL, -- Cond anchor-guardband + eutraControlRegionSize-r14 ENUMERATED {n1, n2, n3} + } OPTIONAL, -- Cond non-anchor-inband + nrs-PowerOffsetNonAnchor-r14 ENUMERATED {dB-12, dB-10, dB-8, dB-6, + dB-4, dB-2, dB0, dB3} DEFAULT dB0, + ... +} + + + +DL-GapConfig-NB-r13 ::= SEQUENCE { + dl-GapThreshold-r13 ENUMERATED {n32, n64, n128, n256}, + dl-GapPeriodicity-r13 ENUMERATED {sf64, sf128, sf256, sf512}, + dl-GapDurationCoeff-r13 ENUMERATED {oneEighth, oneFourth, threeEighth, oneHalf} +} + + +LogicalChannelConfig-NB-r13 ::= SEQUENCE { + priority-r13 INTEGER (1..16) OPTIONAL, -- Cond UL + logicalChannelSR-Prohibit-r13 BOOLEAN OPTIONAL, -- Need ON + ... +} + + +MAC-MainConfig-NB-r13 ::= SEQUENCE { + ul-SCH-Config-r13 SEQUENCE { + periodicBSR-Timer-r13 PeriodicBSR-Timer-NB-r13 OPTIONAL, -- Need ON + retxBSR-Timer-r13 RetxBSR-Timer-NB-r13 + } OPTIONAL, -- Need ON + drx-Config-r13 DRX-Config-NB-r13 OPTIONAL, -- Need ON + timeAlignmentTimerDedicated-r13 TimeAlignmentTimer, + logicalChannelSR-Config-r13 CHOICE { + release NULL, + setup SEQUENCE { + logicalChannelSR-ProhibitTimer-r13 ENUMERATED { + pp2, pp8, pp32, pp128, pp512, + pp1024, pp2048, spare} + } + } OPTIONAL, -- Need ON + ..., + [[ rai-Activation-r14 ENUMERATED {true} OPTIONAL, -- Need OR + dataInactivityTimerConfig-r14 CHOICE { + release NULL, + setup SEQUENCE { + dataInactivityTimer-r14 DataInactivityTimer-r14 + } + } OPTIONAL -- Need ON + ]], + [[ drx-Cycle-v1430 ENUMERATED { + sf1280, sf2560, sf5120, sf10240} OPTIONAL -- Need ON + ]], + [[ ra-CFRA-Config-r14 ENUMERATED {true} OPTIONAL -- Need ON + ]] +} + +PeriodicBSR-Timer-NB-r13 ::= ENUMERATED { + pp2, pp4, pp8, pp16, pp64, pp128, infinity, spare} + +RetxBSR-Timer-NB-r13 ::= ENUMERATED { + pp4, pp16, pp64, pp128, pp256, pp512, infinity, spare} + +DRX-Config-NB-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + onDurationTimer-r13 ENUMERATED { + pp1, pp2, pp3, pp4, pp8, pp16, pp32, spare}, + drx-InactivityTimer-r13 ENUMERATED { + pp0, pp1, pp2, pp3, pp4, pp8, pp16, pp32}, + drx-RetransmissionTimer-r13 ENUMERATED { + pp0, pp1, pp2, pp4, pp6, pp8, pp16, pp24, + pp33, spare7, spare6, spare5, + spare4, spare3, spare2, spare1}, + drx-Cycle-r13 ENUMERATED { + sf256, sf512, sf1024, sf1536, sf2048, sf3072, + sf4096, sf4608, sf6144, sf7680, sf8192, sf9216, + spare4, spare3, spare2, spare1}, + drx-StartOffset-r13 INTEGER (0..255), + drx-ULRetransmissionTimer-r13 ENUMERATED { + pp0, pp1, pp2, pp4, pp6, pp8, pp16, pp24, + pp33, pp40, pp64, pp80, pp96, + pp112, pp128, pp160, pp320} + } +} + + + +NPDCCH-ConfigDedicated-NB-r13 ::= SEQUENCE { + npdcch-NumRepetitions-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1}, + npdcch-StartSF-USS-r13 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64}, + npdcch-Offset-USS-r13 ENUMERATED {zero, oneEighth, oneFourth, threeEighth} +} + + + +NPDSCH-ConfigCommon-NB-r13 ::= SEQUENCE { + nrs-Power-r13 INTEGER (-60..50) +} + + +NPRACH-ConfigSIB-NB-r13 ::= SEQUENCE { + nprach-CP-Length-r13 ENUMERATED {us66dot7, us266dot7}, + rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsNPRACH-InfoList-NB-r13 OPTIONAL, -- need OR + nprach-ParametersList-r13 NPRACH-ParametersList-NB-r13 +} + +NPRACH-ConfigSIB-NB-v1330 ::= SEQUENCE { + nprach-ParametersList-v1330 NPRACH-ParametersList-NB-v1330 +} + +NPRACH-ConfigSIB-NB-v1450 ::= SEQUENCE { + maxNumPreambleAttemptCE-r14 ENUMERATED {n3, n4, n5, n6, n7, n8, n10, spare1} +} + +NPRACH-ParametersList-NB-r13 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF NPRACH-Parameters-NB-r13 + +NPRACH-ParametersList-NB-v1330 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF NPRACH-Parameters-NB-v1330 + +NPRACH-Parameters-NB-r13::= SEQUENCE { + nprach-Periodicity-r13 ENUMERATED {ms40, ms80, ms160, ms240, + ms320, ms640, ms1280, ms2560}, + nprach-StartTime-r13 ENUMERATED {ms8, ms16, ms32, ms64, + ms128, ms256, ms512, ms1024}, + nprach-SubcarrierOffset-r13 ENUMERATED {n0, n12, n24, n36, n2, n18, n34, spare1}, + nprach-NumSubcarriers-r13 ENUMERATED {n12, n24, n36, n48}, + nprach-SubcarrierMSG3-RangeStart-r13 ENUMERATED {zero, oneThird, twoThird, one}, + maxNumPreambleAttemptCE-r13 ENUMERATED {n3, n4, n5, n6, n7, n8, n10, spare1}, + numRepetitionsPerPreambleAttempt-r13 ENUMERATED {n1, n2, n4, n8, n16, n32, n64, n128}, + npdcch-NumRepetitions-RA-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1}, + npdcch-StartSF-CSS-RA-r13 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64}, + npdcch-Offset-RA-r13 ENUMERATED {zero, oneEighth, oneFourth, threeEighth} +} + +NPRACH-Parameters-NB-v1330 ::= SEQUENCE { + nprach-NumCBRA-StartSubcarriers-r13 ENUMERATED {n8, n10, n11, n12, n20, n22, n23, n24, + n32, n34, n35, n36, n40, n44, n46, n48} +} + +RSRP-ThresholdsNPRACH-InfoList-NB-r13 ::= SEQUENCE (SIZE(1..2)) OF RSRP-Range + + +NPUSCH-ConfigCommon-NB-r13 ::= SEQUENCE { + ack-NACK-NumRepetitions-Msg4-r13 SEQUENCE (SIZE(1.. maxNPRACH-Resources-NB-r13)) OF + ACK-NACK-NumRepetitions-NB-r13, + srs-SubframeConfig-r13 ENUMERATED { + sc0, sc1, sc2, sc3, sc4, sc5, sc6, sc7, + sc8, sc9, sc10, sc11, sc12, sc13, sc14, sc15 + } OPTIONAL, -- Need OR + dmrs-Config-r13 SEQUENCE { + threeTone-BaseSequence-r13 INTEGER (0..12) OPTIONAL, -- Need OP + threeTone-CyclicShift-r13 INTEGER (0..2), + sixTone-BaseSequence-r13 INTEGER (0..14) OPTIONAL, -- Need OP + sixTone-CyclicShift-r13 INTEGER (0..3), + twelveTone-BaseSequence-r13 INTEGER (0..30) OPTIONAL -- Need OP + } OPTIONAL, -- Need OR + ul-ReferenceSignalsNPUSCH-r13 UL-ReferenceSignalsNPUSCH-NB-r13 +} + +UL-ReferenceSignalsNPUSCH-NB-r13 ::= SEQUENCE { + groupHoppingEnabled-r13 BOOLEAN, + groupAssignmentNPUSCH-r13 INTEGER (0..29) +} + +NPUSCH-ConfigDedicated-NB-r13 ::= SEQUENCE { + ack-NACK-NumRepetitions-r13 ACK-NACK-NumRepetitions-NB-r13 OPTIONAL, -- Need ON + npusch-AllSymbols-r13 BOOLEAN OPTIONAL, -- Cond SRS + groupHoppingDisabled-r13 ENUMERATED {true} OPTIONAL -- Need OR +} + +ACK-NACK-NumRepetitions-NB-r13 ::= ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128} + + + +PDCP-Config-NB-r13 ::= SEQUENCE { + discardTimer-r13 ENUMERATED { + ms5120, ms10240, ms20480, ms40960, + ms81920, infinity, spare2, spare1 + } OPTIONAL, -- Cond Setup + headerCompression-r13 CHOICE { + notUsed NULL, + rohc SEQUENCE { + maxCID-r13 INTEGER (1..16383) DEFAULT 15, + profiles-r13 SEQUENCE { + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + ... + } + }, + ... +} + + +PhysicalConfigDedicated-NB-r13 ::= SEQUENCE { + carrierConfigDedicated-r13 CarrierConfigDedicated-NB-r13 OPTIONAL, -- Need ON + npdcch-ConfigDedicated-r13 NPDCCH-ConfigDedicated-NB-r13 OPTIONAL, -- Need ON + npusch-ConfigDedicated-r13 NPUSCH-ConfigDedicated-NB-r13 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-r13 UplinkPowerControlDedicated-NB-r13 OPTIONAL, -- Need ON + ..., + [[ twoHARQ-ProcessesConfig-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ interferenceRandomisationConfig-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + + +RACH-ConfigCommon-NB-r13 ::= SEQUENCE { + preambleTransMax-CE-r13 PreambleTransMax, + powerRampingParameters-r13 PowerRampingParameters, + rach-InfoList-r13 RACH-InfoList-NB-r13, + connEstFailOffset-r13 INTEGER (0..15) OPTIONAL, -- Need OP + ..., + [[ powerRampingParameters-v1450 PowerRampingParameters-NB-v1450 OPTIONAL -- Need OR + ]] +} + +RACH-InfoList-NB-r13 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF RACH-Info-NB-r13 + +RACH-Info-NB-r13 ::= SEQUENCE { + ra-ResponseWindowSize-r13 ENUMERATED { + pp2, pp3, pp4, pp5, pp6, pp7, pp8, pp10}, + mac-ContentionResolutionTimer-r13 ENUMERATED { + pp1, pp2, pp3, pp4, pp8, pp16, pp32, pp64} +} + +PowerRampingParameters-NB-v1450 ::= SEQUENCE { + preambleInitialReceivedTargetPower-v1450 ENUMERATED { + dBm-130, dBm-128, dBm-126, dBm-124, dBm-122, + dBm-88, dBm-86, dBm-84,dBm-82, dBm-80} + OPTIONAL, -- Need OR + powerRampingParametersCE1-r14 SEQUENCE { + powerRampingStepCE1-r14 ENUMERATED {dB0, dB2, dB4, dB6}, + preambleInitialReceivedTargetPowerCE1-r14 ENUMERATED { + dBm-130, dBm-128, dBm-126, dBm-124, dBm-122, + dBm-120, dBm-118, dBm-116, dBm-114, dBm-112, + dBm-110, dBm-108, dBm-106, dBm-104, dBm-102, + dBm-100, dBm-98, dBm-96, dBm-94, dBm-92, + dBm-90, dBm-88, dBm-86, dBm-84, dBm-82, dBm-80} + } OPTIONAL -- Need OR +} + + +RadioResourceConfigCommonSIB-NB-r13 ::= SEQUENCE { + rach-ConfigCommon-r13 RACH-ConfigCommon-NB-r13, + bcch-Config-r13 BCCH-Config-NB-r13, + pcch-Config-r13 PCCH-Config-NB-r13, + nprach-Config-r13 NPRACH-ConfigSIB-NB-r13, + npdsch-ConfigCommon-r13 NPDSCH-ConfigCommon-NB-r13, + npusch-ConfigCommon-r13 NPUSCH-ConfigCommon-NB-r13, + dl-Gap-r13 DL-GapConfig-NB-r13 OPTIONAL, -- Need OP + uplinkPowerControlCommon-r13 UplinkPowerControlCommon-NB-r13, + ..., + [[ nprach-Config-v1330 NPRACH-ConfigSIB-NB-v1330 OPTIONAL -- Need OR + ]], + [[ nprach-Config-v1450 NPRACH-ConfigSIB-NB-v1450 OPTIONAL -- Cond EnhPowerControl + ]] +} + +BCCH-Config-NB-r13 ::= SEQUENCE { + modificationPeriodCoeff-r13 ENUMERATED {n16, n32, n64, n128} +} + + +PCCH-Config-NB-r13 ::= SEQUENCE { + defaultPagingCycle-r13 ENUMERATED {rf128, rf256, rf512, rf1024}, + nB-r13 ENUMERATED { + fourT, twoT, oneT, halfT, quarterT, one8thT, + one16thT, one32ndT, one64thT, + one128thT, one256thT, one512thT, one1024thT, + spare3, spare2, spare1}, + npdcch-NumRepetitionPaging-r13 ENUMERATED { + r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1} +} + + +RadioResourceConfigDedicated-NB-r13 ::= SEQUENCE { + srb-ToAddModList-r13 SRB-ToAddModList-NB-r13 OPTIONAL, -- Need ON + drb-ToAddModList-r13 DRB-ToAddModList-NB-r13 OPTIONAL, -- Need ON + drb-ToReleaseList-r13 DRB-ToReleaseList-NB-r13 OPTIONAL, -- Need ON + mac-MainConfig-r13 CHOICE { + explicitValue-r13 MAC-MainConfig-NB-r13, + defaultValue-r13 NULL + } OPTIONAL, -- Need ON + physicalConfigDedicated-r13 PhysicalConfigDedicated-NB-r13 OPTIONAL, -- Need ON + rlf-TimersAndConstants-r13 RLF-TimersAndConstants-NB-r13 OPTIONAL, -- Need ON + ... +} + +SRB-ToAddModList-NB-r13 ::= SEQUENCE (SIZE (1)) OF SRB-ToAddMod-NB-r13 + +SRB-ToAddMod-NB-r13 ::= SEQUENCE { + rlc-Config-r13 CHOICE { + explicitValue RLC-Config-NB-r13, + defaultValue NULL + } OPTIONAL, -- Cond Setup + logicalChannelConfig-r13 CHOICE { + explicitValue LogicalChannelConfig-NB-r13, + defaultValue NULL + } OPTIONAL, -- Cond Setup + ..., + [[ rlc-Config-v1430 RLC-Config-NB-v1430 OPTIONAL -- Need ON + ]] +} + +DRB-ToAddModList-NB-r13 ::= SEQUENCE (SIZE (1..maxDRB-NB-r13)) OF DRB-ToAddMod-NB-r13 + +DRB-ToAddMod-NB-r13 ::= SEQUENCE { + eps-BearerIdentity-r13 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity-r13 DRB-Identity, + pdcp-Config-r13 PDCP-Config-NB-r13 OPTIONAL, -- Cond Setup + rlc-Config-r13 RLC-Config-NB-r13 OPTIONAL, -- Cond Setup + logicalChannelIdentity-r13 INTEGER (3..10) OPTIONAL, -- Cond DRB-Setup + logicalChannelConfig-r13 LogicalChannelConfig-NB-r13 OPTIONAL, -- Cond Setup + ..., + [[ rlc-Config-v1430 RLC-Config-NB-v1430 OPTIONAL -- Need ON + ]] +} + +DRB-ToReleaseList-NB-r13 ::= SEQUENCE (SIZE (1..maxDRB-NB-r13)) OF DRB-Identity + + +RLC-Config-NB-r13 ::= CHOICE { + am SEQUENCE { + ul-AM-RLC-r13 UL-AM-RLC-NB-r13, + dl-AM-RLC-r13 DL-AM-RLC-NB-r13 + }, + ... +} + +RLC-Config-NB-v1430 ::= SEQUENCE { + t-Reordering-r14 T-Reordering OPTIONAL -- Cond twoHARQ +} + +UL-AM-RLC-NB-r13 ::= SEQUENCE { + t-PollRetransmit-r13 T-PollRetransmit-NB-r13, + maxRetxThreshold-r13 ENUMERATED {t1, t2, t3, t4, t6, t8, t16, t32} +} + +DL-AM-RLC-NB-r13 ::= SEQUENCE { + enableStatusReportSN-Gap-r13 ENUMERATED {true} OPTIONAL +} + +T-PollRetransmit-NB-r13 ::= ENUMERATED { + ms250, ms500, ms1000, ms2000, ms3000, ms4000, + ms6000, ms10000, ms15000, ms25000, ms40000, ms60000, + ms90000, ms120000, ms180000, spare1} + + + + +RLF-TimersAndConstants-NB-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + t301-r13 ENUMERATED { + ms2500, ms4000, ms6000, ms10000, + ms15000, ms25000, ms40000, ms60000}, + t310-r13 ENUMERATED { + ms0, ms200, ms500, ms1000, ms2000, ms4000, ms8000}, + n310-r13 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311-r13 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311-r13 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ..., + [[ t311-v1350 ENUMERATED { + ms40000, ms60000, ms90000, ms120000} + OPTIONAL -- Need OR + ]] + } +} + + + +UplinkPowerControlCommon-NB-r13 ::= SEQUENCE { + p0-NominalNPUSCH-r13 INTEGER (-126..24), + alpha-r13 ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1}, + deltaPreambleMsg3-r13 INTEGER (-1..6) +} + +UplinkPowerControlDedicated-NB-r13 ::= SEQUENCE { + p0-UE-NPUSCH-r13 INTEGER (-8..7) +} + + +AdditionalBandInfoList-NB-r14 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-NB-r13 + + +FreqBandIndicator-NB-r13 ::= INTEGER (1.. maxFBI2) + + +MultiBandInfoList-NB-r13 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF MultiBandInfo-NB-r13 + +MultiBandInfo-NB-r13 ::= SEQUENCE { + freqBandIndicator-r13 FreqBandIndicator-NB-r13 OPTIONAL, -- Need OR + freqBandInfo-r13 NS-PmaxList-NB-r13 OPTIONAL -- Need OR +} + + +NS-PmaxList-NB-r13 ::= SEQUENCE (SIZE (1..maxNS-Pmax-NB-r13)) OF NS-PmaxValue-NB-r13 + +NS-PmaxValue-NB-r13 ::= SEQUENCE { + additionalPmax-r13 P-Max OPTIONAL, -- Need OR + additionalSpectrumEmission-r13 AdditionalSpectrumEmission +} + + +ReselectionThreshold-NB-v1360 ::= INTEGER (32..63) + + +T-Reselection-NB-r13 ::= ENUMERATED {s0, s3, s6, s9, s12, s15, s18, s21} + + +EstablishmentCause-NB-r13 ::= ENUMERATED { + mt-Access, mo-Signalling, mo-Data, mo-ExceptionData, + delayTolerantAccess-v1330, spare3, spare2, spare1} + + +UE-Capability-NB-r13 ::= SEQUENCE { + accessStratumRelease-r13 AccessStratumRelease-NB-r13, + ue-Category-NB-r13 ENUMERATED {nb1} OPTIONAL, + multipleDRB-r13 ENUMERATED {supported} OPTIONAL, + pdcp-Parameters-r13 PDCP-Parameters-NB-r13 OPTIONAL, + phyLayerParameters-r13 PhyLayerParameters-NB-r13, + rf-Parameters-r13 RF-Parameters-NB-r13, + dummy SEQUENCE {} OPTIONAL +} + +UE-Capability-NB-Ext-r14-IEs ::= SEQUENCE { + ue-Category-NB-r14 ENUMERATED {nb2} OPTIONAL, + mac-Parameters-r14 MAC-Parameters-NB-r14 OPTIONAL, + phyLayerParameters-v1430 PhyLayerParameters-NB-v1430 OPTIONAL, + rf-Parameters-v1430 RF-Parameters-NB-v1430, + nonCriticalExtension UE-Capability-NB-v1440-IEs OPTIONAL +} + +UE-Capability-NB-v1440-IEs ::= SEQUENCE { + phyLayerParameters-v1440 PhyLayerParameters-NB-v1440 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AccessStratumRelease-NB-r13 ::= ENUMERATED {rel13, rel14, spare6, spare5, spare4, spare3, spare2, spare1, ...} + +PDCP-Parameters-NB-r13 ::= SEQUENCE { + supportedROHC-Profiles-r13 SEQUENCE { + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + maxNumberROHC-ContextSessions-r13 ENUMERATED {cs2, cs4, cs8, cs12} DEFAULT cs2, + ... +} + +MAC-Parameters-NB-r14 ::= SEQUENCE { + dataInactMon-r14 ENUMERATED {supported} OPTIONAL, + rai-Support-r14 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-NB-r13 ::= SEQUENCE { + multiTone-r13 ENUMERATED {supported} OPTIONAL, + multiCarrier-r13 ENUMERATED {supported} OPTIONAL + } + +PhyLayerParameters-NB-v1430 ::= SEQUENCE { + multiCarrier-NPRACH-r14 ENUMERATED {supported} OPTIONAL, + twoHARQ-Processes-r14 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-NB-v1440 ::= SEQUENCE { + interferenceRandomisation-r14 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-NB-r13 ::= SEQUENCE { + supportedBandList-r13 SupportedBandList-NB-r13, + multiNS-Pmax-r13 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-NB-v1430 ::= SEQUENCE { + powerClassNB-14dBm-r14 ENUMERATED {supported} OPTIONAL +} + +SupportedBandList-NB-r13 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBand-NB-r13 + +SupportedBand-NB-r13 ::= SEQUENCE { + band-r13 FreqBandIndicator-NB-r13, + powerClassNB-20dBm-r13 ENUMERATED {supported} OPTIONAL +} + + +UE-RadioPagingInfo-NB-r13 ::= SEQUENCE { + ue-Category-NB-r13 ENUMERATED {nb1} OPTIONAL, + ..., + [[ multiCarrierPaging-r14 ENUMERATED {true} OPTIONAL + ]] +} + + +UE-TimersAndConstants-NB-r13 ::= SEQUENCE { + t300-r13 ENUMERATED { + ms2500, ms4000, ms6000, ms10000, + ms15000, ms25000, ms40000, ms60000}, + t301-r13 ENUMERATED { + ms2500, ms4000, ms6000, ms10000, + ms15000, ms25000, ms40000, ms60000}, + t310-r13 ENUMERATED { + ms0, ms200, ms500, ms1000, ms2000, ms4000, ms8000}, + n310-r13 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311-r13 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311-r13 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ..., + [[ t311-v1350 ENUMERATED { + ms40000, ms60000, ms90000, ms120000} + OPTIONAL -- Need OR + ]] +} + + +SC-MTCH-InfoList-NB-r14 ::= SEQUENCE (SIZE (0.. maxSC-MTCH-NB-r14)) OF SC-MTCH-Info-NB-r14 + +SC-MTCH-Info-NB-r14 ::= SEQUENCE { + sc-mtch-CarrierConfig-r14 CHOICE { + dl-CarrierConfig-r14 DL-CarrierConfigCommon-NB-r14, + dl-CarrierIndex-r14 INTEGER (0.. maxNonAnchorCarriers-NB-r14) + }, + mbmsSessionInfo-r14 MBMSSessionInfo-r13, + g-RNTI-r14 BIT STRING(SIZE(16)), + sc-mtch-SchedulingInfo-r14 SC-MTCH-SchedulingInfo-NB-r14 OPTIONAL, -- Need OP + sc-mtch-NeighbourCell-r14 BIT STRING (SIZE(maxNeighCell-SCPTM-NB-r14)) OPTIONAL, -- Need OP + npdcch-NPDSCH-MaxTBS-SC-MTCH-r14 ENUMERATED {n680, n2536}, + npdcch-NumRepetitions-SC-MTCH-r14 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256, + r512, r1024, r2048, spare4, + spare3, spare2, spare1}, + npdcch-StartSF-SC-MTCH-r14 ENUMERATED {v1dot5, v2, v4, v8, + v16, v32, v48, v64}, + npdcch-Offset-SC-MTCH-r14 ENUMERATED {zero, oneEighth, oneQuarter, + threeEighth, oneHalf, fiveEighth, + threeQuarter, sevenEighth}, + ... +} + +SC-MTCH-SchedulingInfo-NB-r14 ::= SEQUENCE { + onDurationTimerSCPTM-r14 ENUMERATED { + pp1, pp2, pp3, pp4, + pp8, pp16, pp32, spare}, + drx-InactivityTimerSCPTM-r14 ENUMERATED { + pp0, pp1, pp2, pp3, + pp4, pp8, pp16, pp32}, + schedulingPeriodStartOffsetSCPTM-r14 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2047), + sf4096 INTEGER(0..4095), + sf8192 INTEGER(0..8191) + }, + ... +} + + +SCPTM-NeighbourCellList-NB-r14 ::= SEQUENCE (SIZE (1..maxNeighCell-SCPTM-NB-r14)) OF PCI-ARFCN-NB-r14 + +PCI-ARFCN-NB-r14 ::= SEQUENCE { + physCellId-r14 PhysCellId, + carrierFreq-r14 CarrierFreq-NB-r13 OPTIONAL -- Need OP +} + + +maxNPRACH-Resources-NB-r13 INTEGER ::= 3 -- Maximum number of NPRACH resources for NB-IoT +maxNonAnchorCarriers-NB-r14 INTEGER ::= 15 -- Maximum number of non-anchor carriers for NB-IoT +maxDRB-NB-r13 INTEGER ::= 2 -- Maximum number of Data Radio Bearers for NB-IoT +maxNeighCell-SCPTM-NB-r14 INTEGER ::= 8 -- Maximum number of SCPTM neighbour cells +maxNS-Pmax-NB-r13 INTEGER ::= 4 -- Maximum number of NS and P-Max values per band +maxSC-MTCH-NB-r14 INTEGER ::= 64 -- Maximum number of SC-MTCHs in one cell for NB-IoT +maxSI-Message-NB-r13 INTEGER ::= 8 -- Maximum number of SI messages for NB-IoT + + +END + + +EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AbsoluteTimeInfo-r10, + AreaConfiguration-r10, + AreaConfiguration-v1130, + ARFCN-ValueNR-r15, + CarrierFreqGERAN, + CellIdentity, + ConnEstFailReport-r11, + SpeedStateScaleFactors, + C-RNTI, + LoggingDuration-r10, + LoggingInterval-r10, + LogMeasInfo-r10, + MeasCSI-RS-Id-r12, + MeasId, + MeasId-v1250, + MeasIdToAddModList, + MeasIdToAddModListExt-r12, + MeasIdToAddModList-v1310, + MeasIdToAddModListExt-v1310, + MeasObjectToAddModList, + MeasObjectToAddModList-v9e0, + MeasObjectToAddModListExt-r13, + MeasScaleFactor-r12, + MobilityStateParameters, + NeighCellConfig, + PhysCellId, + PhysCellIdCDMA2000, + PhysCellIdGERAN, + PhysCellIdUTRA-FDD, + PhysCellIdUTRA-TDD, + PLMN-Identity, + PLMN-IdentityList3-r11, + QuantityConfig, + ReportConfigToAddModList, + RLF-Report-r9, + TargetMBSFN-AreaList-r12, + TraceReference-r10, + Tx-ResourcePoolMeasList-r14, + VisitedCellInfoList-r12, + maxCellMeas, + maxCSI-RS-Meas-r12, + maxMeasId, + maxMeasId-r12, + maxRS-Index-r15, + PhysCellIdNR-r15, + RS-IndexNR-r15, + UL-DelayConfig-r13, + WLAN-CarrierInfo-r13, + WLAN-Identifiers-r12, + WLAN-Id-List-r13, + WLAN-Status-r13, + WLAN-Status-v1430, + WLAN-SuspendConfig-r14 + +FROM EUTRA-RRC-Definitions; + + +VarConnEstFailReport-r11 ::= SEQUENCE { + connEstFailReport-r11 ConnEstFailReport-r11, + plmn-Identity-r11 PLMN-Identity +} + + +VarLogMeasConfig-r10 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10 +} + +VarLogMeasConfig-r11 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10 +} + +VarLogMeasConfig-r12 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10, + targetMBSFN-AreaList-r12 TargetMBSFN-AreaList-r12 OPTIONAL +} + + +VarLogMeasReport-r10 ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + plmn-Identity-r10 PLMN-Identity, + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + logMeasInfoList-r10 LogMeasInfoList2-r10 +} + +VarLogMeasReport-r11 ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + plmn-IdentityList-r11 PLMN-IdentityList3-r11, + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + logMeasInfoList-r10 LogMeasInfoList2-r10 +} + +LogMeasInfoList2-r10 ::= SEQUENCE (SIZE (1..maxLogMeas-r10)) OF LogMeasInfo-r10 + + +VarMeasConfig ::= SEQUENCE { + -- Measurement identities + measIdList MeasIdToAddModList OPTIONAL, + measIdListExt-r12 MeasIdToAddModListExt-r12 OPTIONAL, + measIdList-v1310 MeasIdToAddModList-v1310 OPTIONAL, + measIdListExt-v1310 MeasIdToAddModListExt-v1310 OPTIONAL, + -- Measurement objects + measObjectList MeasObjectToAddModList OPTIONAL, + measObjectListExt-r13 MeasObjectToAddModListExt-r13 OPTIONAL, + measObjectList-v9i0 MeasObjectToAddModList-v9e0 OPTIONAL, + -- Reporting configurations + reportConfigList ReportConfigToAddModList OPTIONAL, + -- Other parameters + quantityConfig QuantityConfig OPTIONAL, + measScaleFactor-r12 MeasScaleFactor-r12 OPTIONAL, + s-Measure INTEGER (-140..-44) OPTIONAL, + speedStatePars CHOICE { + release NULL, + setup SEQUENCE { + mobilityStateParameters MobilityStateParameters, + timeToTrigger-SF SpeedStateScaleFactors + } + } OPTIONAL, + allowInterruptions-r11 BOOLEAN OPTIONAL +} + + +VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport +VarMeasReportList-r12 ::= SEQUENCE (SIZE (1..maxMeasId-r12)) OF VarMeasReport + +VarMeasReport ::= SEQUENCE { + -- List of measurement that have been triggered + measId MeasId, + measId-v1250 MeasId-v1250 OPTIONAL, + cellsTriggeredList CellsTriggeredList OPTIONAL, + csi-RS-TriggeredList-r12 CSI-RS-TriggeredList-r12 OPTIONAL, + poolsTriggeredList-r14 Tx-ResourcePoolMeasList-r14 OPTIONAL, + numberOfReportsSent INTEGER +} + +CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CHOICE { + physCellIdEUTRA PhysCellId, + physCellIdUTRA CHOICE { + fdd PhysCellIdUTRA-FDD, + tdd PhysCellIdUTRA-TDD + }, + physCellIdGERAN SEQUENCE { + carrierFreq CarrierFreqGERAN, + physCellId PhysCellIdGERAN + }, + physCellIdCDMA2000 PhysCellIdCDMA2000, + wlan-Identifiers-r13 WLAN-Identifiers-r12, + physCellIdNR-r15 SEQUENCE { + carrierFreq ARFCN-ValueNR-r15, + physCellId PhysCellIdNR-r15, + rs-IndexList-r15 SSB-IndexList-r15 OPTIONAL + } +} + +CSI-RS-TriggeredList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Id-r12 + +SSB-IndexList-r15::= SEQUENCE (SIZE (1..maxRS-Index-r15)) OF RS-IndexNR-r15 + +VarMobilityHistoryReport-r12 ::= VisitedCellInfoList-r12 + + +VarRLF-Report-r10 ::= SEQUENCE { + rlf-Report-r10 RLF-Report-r9, + plmn-Identity-r10 PLMN-Identity +} + +VarRLF-Report-r11 ::= SEQUENCE { + rlf-Report-r10 RLF-Report-r9, + plmn-IdentityList-r11 PLMN-IdentityList3-r11 +} + + +VarShortMAC-Input ::= SEQUENCE { + cellIdentity CellIdentity, + physCellId PhysCellId, + c-RNTI C-RNTI +} + + +VarShortResumeMAC-Input-r13 ::= SEQUENCE { + cellIdentity-r13 CellIdentity, + physCellId-r13 PhysCellId, + c-RNTI-r13 C-RNTI, + resumeDiscriminator-r13 BIT STRING(SIZE(1)) +} + + +VarWLAN-MobilityConfig ::= SEQUENCE { + wlan-MobilitySet-r13 WLAN-Id-List-r13 OPTIONAL, + successReportRequested ENUMERATED {true} OPTIONAL, + wlan-SuspendConfig-r14 WLAN-SuspendConfig-r14 OPTIONAL +} + + +VarWLAN-Status-r13 ::= SEQUENCE { + status-r13 WLAN-Status-r13, + status-r14 WLAN-Status-v1430 OPTIONAL +} + + +maxLogMeas-r10 INTEGER ::= 4060-- Maximum number of logged measurement entries + -- that can be stored by the UE + + +END + + +NBIOT-UE-Variables DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + VarShortMAC-Input, + VarShortResumeMAC-Input-r13 + +FROM EUTRA-UE-Variables; + +VarShortMAC-Input-NB-r13 ::= VarShortMAC-Input + +VarShortResumeMAC-Input-NB-r13 ::= VarShortResumeMAC-Input-r13 + + +END + + +EUTRA-Sidelink-Preconf DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AdditionalSpectrumEmission, + AdditionalSpectrumEmission-v10l0, + ARFCN-ValueEUTRA-r9, + FilterCoefficient, + maxCBR-Level-r14, + maxCBR-Level-1-r14, + maxFreq, + maxFreqV2X-r14, + maxSL-TxPool-r12, + maxSL-CommRxPoolPreconf-v1310, + maxSL-CommTxPoolPreconf-v1310, + maxSL-DiscRxPoolPreconf-r13, + maxSL-DiscTxPoolPreconf-r13, + maxSL-V2X-CBRConfig2-r14, + maxSL-V2X-CBRConfig2-1-r14, + maxSL-V2X-RxPoolPreconf-r14, + maxSL-V2X-TxConfig2-r14, + maxSL-V2X-TxConfig2-1-r14, + maxSL-V2X-TxPoolPreconf-r14, + P-Max, + ReselectionInfoRelay-r13, + SL-AnchorCarrierFreqList-V2X-r14, + SL-CBR-Levels-Config-r14, + SL-CBR-PSSCH-TxConfig-r14, + SL-CommTxPoolSensingConfig-r14, + SL-CP-Len-r12, + SL-HoppingConfigComm-r12, + SL-OffsetIndicator-r12, + SL-OffsetIndicatorSync-r12, + SL-OffsetIndicatorSync-v1430, + SL-PeriodComm-r12, + RSRP-RangeSL3-r12, + SL-PriorityList-r13, + SL-TF-ResourceConfig-r12, + SL-TRPT-Subset-r12, + SL-TxParameters-r12, + SL-ZoneConfig-r14, + P0-SL-r12, + TDD-ConfigSL-r12, + SubframeBitmapSL-r14, + SL-P2X-ResourceSelectionConfig-r14, + SL-RestrictResourceReservationPeriodList-r14, + SL-SyncAllowed-r14, + SL-OffsetIndicatorSync-r14, + SL-Priority-r13 +FROM EUTRA-RRC-Definitions; + + +SL-Preconfiguration-r12 ::= SEQUENCE { + preconfigGeneral-r12 SL-PreconfigGeneral-r12, + preconfigSync-r12 SL-PreconfigSync-r12, + preconfigComm-r12 SL-PreconfigCommPoolList4-r12, + ..., + [[ preconfigComm-v1310 SEQUENCE { + commRxPoolList-r13 SL-PreconfigCommRxPoolList-r13, + commTxPoolList-r13 SL-PreconfigCommTxPoolList-r13 OPTIONAL + } OPTIONAL, + preconfigDisc-r13 SEQUENCE { + discRxPoolList-r13 SL-PreconfigDiscRxPoolList-r13, + discTxPoolList-r13 SL-PreconfigDiscTxPoolList-r13 OPTIONAL + } OPTIONAL, + preconfigRelay-r13 SL-PreconfigRelay-r13 OPTIONAL + ]] + +} + +SL-PreconfigGeneral-r12 ::= SEQUENCE { + -- PDCP configuration + rohc-Profiles-r12 SEQUENCE { + profile0x0001-r12 BOOLEAN, + profile0x0002-r12 BOOLEAN, + profile0x0004-r12 BOOLEAN, + profile0x0006-r12 BOOLEAN, + profile0x0101-r12 BOOLEAN, + profile0x0102-r12 BOOLEAN, + profile0x0104-r12 BOOLEAN + }, + -- Physical configuration + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + maxTxPower-r12 P-Max, + additionalSpectrumEmission-r12 AdditionalSpectrumEmission, + sl-bandwidth-r12 ENUMERATED {n6, n15, n25, n50, n75, n100}, + tdd-ConfigSL-r12 TDD-ConfigSL-r12, + reserved-r12 BIT STRING (SIZE (19)), + ..., + [[ additionalSpectrumEmission-v1440 AdditionalSpectrumEmission-v10l0 OPTIONAL + ]] +} + +SL-PreconfigSync-r12 ::= SEQUENCE { + syncCP-Len-r12 SL-CP-Len-r12, + syncOffsetIndicator1-r12 SL-OffsetIndicatorSync-r12, + syncOffsetIndicator2-r12 SL-OffsetIndicatorSync-r12, + syncTxParameters-r12 P0-SL-r12, + syncTxThreshOoC-r12 RSRP-RangeSL3-r12, + filterCoefficient-r12 FilterCoefficient, + syncRefMinHyst-r12 ENUMERATED {dB0, dB3, dB6, dB9, dB12}, + syncRefDiffHyst-r12 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf}, + ..., + [[ syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL + ]] +} + +SL-PreconfigCommPoolList4-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-PreconfigCommPool-r12 + +SL-PreconfigCommRxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-CommRxPoolPreconf-v1310)) OF SL-PreconfigCommPool-r12 + +SL-PreconfigCommTxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-CommTxPoolPreconf-v1310)) OF SL-PreconfigCommPool-r12 + +SL-PreconfigCommPool-r12 ::= SEQUENCE { +-- This IE is same as SL-CommResourcePool with rxParametersNCell absent + sc-CP-Len-r12 SL-CP-Len-r12, + sc-Period-r12 SL-PeriodComm-r12, + sc-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + sc-TxParameters-r12 P0-SL-r12, + data-CP-Len-r12 SL-CP-Len-r12, + data-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + dataHoppingConfig-r12 SL-HoppingConfigComm-r12, + dataTxParameters-r12 P0-SL-r12, + trpt-Subset-r12 SL-TRPT-Subset-r12, + ..., + [[ priorityList-r13 SL-PriorityList-r13 OPTIONAL -- For Tx + ]] +} + +SL-PreconfigDiscRxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-DiscRxPoolPreconf-r13)) OF SL-PreconfigDiscPool-r13 + +SL-PreconfigDiscTxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-DiscTxPoolPreconf-r13)) OF SL-PreconfigDiscPool-r13 + +SL-PreconfigDiscPool-r13 ::= SEQUENCE { +-- This IE is same as SL-DiscResourcePool with rxParameters absent + cp-Len-r13 SL-CP-Len-r12, + discPeriod-r13 ENUMERATED {rf4, rf6, rf7, rf8, rf12, rf14, rf16, rf24, rf28, + rf32, rf64, rf128, rf256, rf512, rf1024, spare}, + numRetx-r13 INTEGER (0..3), + numRepetition-r13 INTEGER (1..50), + tf-ResourceConfig-r13 SL-TF-ResourceConfig-r12, + txParameters-r13 SEQUENCE { + txParametersGeneral-r13 P0-SL-r12, + txProbability-r13 ENUMERATED {p25, p50, p75, p100} + } OPTIONAL, + ... +} + +SL-PreconfigRelay-r13 ::= SEQUENCE { + reselectionInfoOoC-r13 ReselectionInfoRelay-r13 +} + + +SL-V2X-Preconfiguration-r14 ::= SEQUENCE { + v2x-PreconfigFreqList-r14 SL-V2X-PreconfigFreqList-r14, + anchorCarrierFreqList-r14 SL-AnchorCarrierFreqList-V2X-r14 OPTIONAL, + cbr-PreconfigList-r14 SL-CBR-PreconfigTxConfigList-r14 OPTIONAL, + ... +} + +SL-CBR-PreconfigTxConfigList-r14 ::= SEQUENCE { + cbr-RangeCommonConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-CBRConfig2-r14)) OF SL-CBR-Levels-Config-r14, + sl-CBR-PSSCH-TxConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-TxConfig2-r14)) OF SL-CBR-PSSCH-TxConfig-r14 +} + +SL-V2X-PreconfigFreqList-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF SL-V2X-PreconfigFreqInfo-r14 + +SL-V2X-PreconfigFreqInfo-r14 ::= SEQUENCE { + v2x-CommPreconfigGeneral-r14 SL-PreconfigGeneral-r12, + v2x-CommPreconfigSync-r14 SL-PreconfigV2X-Sync-r14 OPTIONAL, + v2x-CommRxPoolList-r14 SL-PreconfigV2X-RxPoolList-r14, + v2x-CommTxPoolList-r14 SL-PreconfigV2X-TxPoolList-r14, + p2x-CommTxPoolList-r14 SL-PreconfigV2X-TxPoolList-r14, + v2x-ResourceSelectionConfig-r14 SL-CommTxPoolSensingConfig-r14 OPTIONAL, + zoneConfig-r14 SL-ZoneConfig-r14 OPTIONAL, + syncPriority-r14 ENUMERATED {gnss, enb}, + thresSL-TxPrioritization-r14 SL-Priority-r13 OPTIONAL, + offsetDFN-r14 INTEGER (0..1000) OPTIONAL, + ... +} + +SL-PreconfigV2X-RxPoolList-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-RxPoolPreconf-r14)) OF SL-V2X-PreconfigCommPool-r14 + +SL-PreconfigV2X-TxPoolList-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-TxPoolPreconf-r14)) OF SL-V2X-PreconfigCommPool-r14 + +SL-V2X-PreconfigCommPool-r14 ::= SEQUENCE { +-- This IE is same as SL-CommResourcePoolV2X with rxParametersNCell absent + sl-OffsetIndicator-r14 SL-OffsetIndicator-r12 OPTIONAL, + sl-Subframe-r14 SubframeBitmapSL-r14, + adjacencyPSCCH-PSSCH-r14 BOOLEAN, + sizeSubchannel-r14 ENUMERATED { + n4, n5, n6, n8, n9, n10, n12, n15, n16, n18, n20, n25, n30, + n48, n50, n72, n75, n96, n100, spare13, spare12, spare11, + spare10, spare9, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1}, + numSubchannel-r14 ENUMERATED {n1, n3, n5, n8, n10, n15, n20, spare1}, + startRB-Subchannel-r14 INTEGER (0..99), + startRB-PSCCH-Pool-r14 INTEGER (0..99) OPTIONAL, + dataTxParameters-r14 P0-SL-r12, + zoneID-r14 INTEGER (0..7) OPTIONAL, + threshS-RSSI-CBR-r14 INTEGER (0..45) OPTIONAL, + cbr-pssch-TxConfigList-r14 SL-CBR-PPPP-TxPreconfigList-r14 OPTIONAL, + resourceSelectionConfigP2X-r14 SL-P2X-ResourceSelectionConfig-r14 OPTIONAL, + syncAllowed-r14 SL-SyncAllowed-r14 OPTIONAL, + restrictResourceReservationPeriod-r14 SL-RestrictResourceReservationPeriodList-r14 OPTIONAL, -- Need OR + ... +} + +SL-PreconfigV2X-Sync-r14 ::= SEQUENCE { + syncOffsetIndicators-r14 SL-V2X-SyncOffsetIndicators-r14, + syncTxParameters-r14 P0-SL-r12, + syncTxThreshOoC-r14 RSRP-RangeSL3-r12, + filterCoefficient-r14 FilterCoefficient, + syncRefMinHyst-r14 ENUMERATED {dB0, dB3, dB6, dB9, dB12}, + syncRefDiffHyst-r14 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf}, + ... +} + +SL-V2X-SyncOffsetIndicators-r14 ::= SEQUENCE { + syncOffsetIndicator1-r14 SL-OffsetIndicatorSync-r14, + syncOffsetIndicator2-r14 SL-OffsetIndicatorSync-r14, + syncOffsetIndicator3-r14 SL-OffsetIndicatorSync-r14 OPTIONAL +} + +SL-CBR-PPPP-TxPreconfigList-r14 ::= SEQUENCE (SIZE (1..8)) OF SL-PPPP-TxPreconfigIndex-r14 + +SL-PPPP-TxPreconfigIndex-r14 ::= SEQUENCE { + priorityThreshold-r14 SL-Priority-r13, + defaultTxConfigIndex-r14 INTEGER(0..maxCBR-Level-1-r14), + cbr-ConfigIndex-r14 INTEGER(0..maxSL-V2X-CBRConfig2-1-r14), + tx-ConfigIndexList-r14 SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF Tx-PreconfigIndex-r14 +} + +Tx-PreconfigIndex-r14 ::= INTEGER(0..maxSL-V2X-TxConfig2-1-r14) + +END + + +EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AntennaInfoCommon, + AntennaInfoDedicated-v10i0, + ARFCN-ValueEUTRA, + ARFCN-ValueEUTRA-v9e0, + ARFCN-ValueEUTRA-r9, + CellIdentity, + C-RNTI, + DL-DCCH-Message, + DRB-Identity, + DRB-ToReleaseList, + FreqBandIndicator-r11, + InDeviceCoexIndication-r11, + LWA-Config-r13, + MasterInformationBlock, + maxBands, + maxFreq, + maxDRB, + maxSCell-r10, + maxSCell-r13, + maxServCell-r10, + maxServCell-r13, + MBMSInterestIndication-r11, + MeasConfig, + MeasGapConfig, + MeasGapConfigPerCC-List-r14, + MeasResultForRSSI-r13, + MeasResultListWLAN-r13, + OtherConfig-r9, + PhysCellId, + P-Max, + PowerCoordinationInfo-r12, + SidelinkUEInformation-r12, + SL-CommConfig-r12, + SL-DiscConfig-r12, + RadioResourceConfigDedicated, + RCLWI-Configuration-r13, + RSRP-Range, + RSRQ-Range, + RSRQ-Range-v1250, + RS-SINR-Range-r13, + SCellToAddModList-r10, + SCellToAddModListExt-r13, + SCG-ConfigPartSCG-r12, + SecurityAlgorithmConfig, + SCellIndex-r10, + SCellIndex-r13, + SCellToReleaseList-r10, + SCellToReleaseListExt-r13, + ServCellIndex-r10, + ServCellIndex-r13, + ShortMAC-I, + MeasResultServFreqListNR-r15, + MeasResultSSTD-r13, + SL-V2X-ConfigDedicated-r14, + SystemInformationBlockType1, + SystemInformationBlockType1-v890-IEs, + SystemInformationBlockType2, + UEAssistanceInformation-r11, + UECapabilityInformation, + UE-CapabilityRAT-ContainerList, + UE-RadioPagingInfo-r12, + WLANConnectionStatusReport-r13, + WLAN-OffloadConfig-r12 +FROM EUTRA-RRC-Definitions; + + +HandoverCommand ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverCommand-r8 HandoverCommand-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverCommand-r8-IEs ::= SEQUENCE { + handoverCommandMessage OCTET STRING (CONTAINING DL-DCCH-Message), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +HandoverPreparationInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverPreparationInformation-r8 HandoverPreparationInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverPreparationInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo UE-CapabilityRAT-ContainerList, + as-Config AS-Config OPTIONAL, -- Cond HO + rrm-Config RRM-Config OPTIONAL, + as-Context AS-Context OPTIONAL, -- Cond HO + nonCriticalExtension HandoverPreparationInformation-v920-IEs OPTIONAL +} + +HandoverPreparationInformation-v920-IEs ::= SEQUENCE { + ue-ConfigRelease-r9 ENUMERATED { + rel9, rel10, rel11, rel12, v10j0, v11e0, + v1280, rel13, ..., rel14, rel15} OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v9d0-IEs OPTIONAL +} + +HandoverPreparationInformation-v9d0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING HandoverPreparationInformation-v9j0-IEs) OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-v9e0-IEs OPTIONAL +} + +-- Late non-critical extensions: +HandoverPreparationInformation-v9j0-IEs ::= SEQUENCE { + -- Following field is only for pre REL-10 late non-critical extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-v10j0-IEs OPTIONAL +} + +HandoverPreparationInformation-v10j0-IEs ::= SEQUENCE { + as-Config-v10j0 AS-Config-v10j0 OPTIONAL, + -- Following field is only for late non-critical extensions from REL-10 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +HandoverPreparationInformation-v9e0-IEs ::= SEQUENCE { + as-Config-v9e0 AS-Config-v9e0 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1130-IEs OPTIONAL +} + +HandoverPreparationInformation-v1130-IEs ::= SEQUENCE { + as-Context-v1130 AS-Context-v1130 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1250-IEs OPTIONAL +} + +HandoverPreparationInformation-v1250-IEs ::= SEQUENCE { + ue-SupportedEARFCN-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Cond HO3 + as-Config-v1250 AS-Config-v1250 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1320-IEs OPTIONAL +} + +HandoverPreparationInformation-v1320-IEs ::= SEQUENCE { + as-Config-v1320 AS-Config-v1320 OPTIONAL, -- Cond HO2 + as-Context-v1320 AS-Context-v1320 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1430-IEs OPTIONAL +} + +HandoverPreparationInformation-v1430-IEs ::= SEQUENCE { + as-Config-v1430 AS-Config-v1430 OPTIONAL, -- Cond HO2 + makeBeforeBreakReq-r14 ENUMERATED {true} OPTIONAL, -- Cond HO2 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCG-Config-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + scg-Config-r12 SCG-Config-r12-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCG-Config-r12-IEs ::= SEQUENCE { + scg-RadioConfig-r12 SCG-ConfigPartSCG-r12 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCG-ConfigInfo-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + scg-ConfigInfo-r12 SCG-ConfigInfo-r12-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCG-ConfigInfo-r12-IEs ::= SEQUENCE { + radioResourceConfigDedMCG-r12 RadioResourceConfigDedicated OPTIONAL, + sCellToAddModListMCG-r12 SCellToAddModList-r10 OPTIONAL, + measGapConfig-r12 MeasGapConfig OPTIONAL, + powerCoordinationInfo-r12 PowerCoordinationInfo-r12 OPTIONAL, + scg-RadioConfig-r12 SCG-ConfigPartSCG-r12 OPTIONAL, + eutra-CapabilityInfo-r12 OCTET STRING (CONTAINING UECapabilityInformation) OPTIONAL, + scg-ConfigRestrictInfo-r12 SCG-ConfigRestrictInfo-r12 OPTIONAL, + mbmsInterestIndication-r12 OCTET STRING (CONTAINING + MBMSInterestIndication-r11) OPTIONAL, + measResultServCellListSCG-r12 MeasResultServCellListSCG-r12 OPTIONAL, + drb-ToAddModListSCG-r12 DRB-InfoListSCG-r12 OPTIONAL, + drb-ToReleaseListSCG-r12 DRB-ToReleaseList OPTIONAL, + sCellToAddModListSCG-r12 SCellToAddModListSCG-r12 OPTIONAL, + sCellToReleaseListSCG-r12 SCellToReleaseList-r10 OPTIONAL, + p-Max-r12 P-Max OPTIONAL, + nonCriticalExtension SCG-ConfigInfo-v1310-IEs OPTIONAL +} + +SCG-ConfigInfo-v1310-IEs ::= SEQUENCE { + measResultSSTD-r13 MeasResultSSTD-r13 OPTIONAL, sCellToAddModListMCG-Ext-r13 SCellToAddModListExt-r13 OPTIONAL, + measResultServCellListSCG-Ext-r13 MeasResultServCellListSCG-Ext-r13 OPTIONAL, + sCellToAddModListSCG-Ext-r13 SCellToAddModListSCG-Ext-r13 OPTIONAL, + sCellToReleaseListSCG-Ext-r13 SCellToReleaseListExt-r13 OPTIONAL, + nonCriticalExtension SCG-ConfigInfo-v1330-IEs OPTIONAL +} + +SCG-ConfigInfo-v1330-IEs ::= SEQUENCE { + measResultListRSSI-SCG-r13 MeasResultListRSSI-SCG-r13 OPTIONAL, + nonCriticalExtension SCG-ConfigInfo-v1430-IEs OPTIONAL +} + +SCG-ConfigInfo-v1430-IEs ::= SEQUENCE { + makeBeforeBreakSCG-Req-r14 ENUMERATED {true} OPTIONAL, + measGapConfigPerCC-List MeasGapConfigPerCC-List-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-InfoListSCG-r12 ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-InfoSCG-r12 + +DRB-InfoSCG-r12 ::= SEQUENCE { + eps-BearerIdentity-r12 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity-r12 DRB-Identity, + drb-Type-r12 ENUMERATED {split, scg} OPTIONAL, -- Cond DRB-Setup + ... +} + +SCellToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF Cell-ToAddMod-r12 + +SCellToAddModListSCG-Ext-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF Cell-ToAddMod-r12 + +Cell-ToAddMod-r12 ::= SEQUENCE { + sCellIndex-r12 SCellIndex-r10, + cellIdentification-r12 SEQUENCE { + physCellId-r12 PhysCellId, + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + measResultCellToAdd-r12 SEQUENCE { + rsrpResult-r12 RSRP-Range, + rsrqResult-r12 RSRQ-Range + } OPTIONAL, -- Cond SCellAdd2 + ..., + [[ sCellIndex-r13 SCellIndex-r13 OPTIONAL, + measResultCellToAdd-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL -- Cond SCellAdd2 + ]] +} + +MeasResultServCellListSCG-r12 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF MeasResultServCellSCG-r12 + +MeasResultServCellListSCG-Ext-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultServCellSCG-r12 + +MeasResultServCellSCG-r12 ::= SEQUENCE { + servCellId-r12 ServCellIndex-r10, + measResultSCell-r12 SEQUENCE { + rsrpResultSCell-r12 RSRP-Range, + rsrqResultSCell-r12 RSRQ-Range + }, + ..., + [[ servCellId-r13 ServCellIndex-r13 OPTIONAL, + measResultSCell-v1310 SEQUENCE { + rs-sinr-ResultSCell-r13 RS-SINR-Range-r13 + } OPTIONAL + ]] +} + +MeasResultListRSSI-SCG-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultRSSI-SCG-r13 + +MeasResultRSSI-SCG-r13 ::= SEQUENCE { + servCellId-r13 ServCellIndex-r13, + measResultForRSSI-r13 MeasResultForRSSI-r13 +} + +SCG-ConfigRestrictInfo-r12 ::= SEQUENCE { + maxSCH-TB-BitsDL-r12 INTEGER (1..100), + maxSCH-TB-BitsUL-r12 INTEGER (1..100) +} + + +UEPagingCoverageInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + uePagingCoverageInformation-r13 UEPagingCoverageInformation-r13-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEPagingCoverageInformation-r13-IEs ::= SEQUENCE { + mpdcch-NumRepetition-r13 INTEGER (1..256) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioAccessCapabilityInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioAccessCapabilityInformation-r8 + UERadioAccessCapabilityInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioPagingInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioPagingInformation-r12 UERadioPagingInformation-r12-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioPagingInformation-r12-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r12 OCTET STRING (CONTAINING UE-RadioPagingInfo-r12), + nonCriticalExtension UERadioPagingInformation-v1310-IEs OPTIONAL +} + +UERadioPagingInformation-v1310-IEs ::= SEQUENCE { + supportedBandListEUTRAForPaging-r13 SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicator-r11 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL + +} + + +AS-Config ::= SEQUENCE { + sourceMeasConfig MeasConfig, + sourceRadioResourceConfig RadioResourceConfigDedicated, + sourceSecurityAlgorithmConfig SecurityAlgorithmConfig, + sourceUE-Identity C-RNTI, + sourceMasterInformationBlock MasterInformationBlock, + sourceSystemInformationBlockType1 SystemInformationBlockType1(WITH COMPONENTS + {..., nonCriticalExtension ABSENT}), + sourceSystemInformationBlockType2 SystemInformationBlockType2, + antennaInfoCommon AntennaInfoCommon, + sourceDl-CarrierFreq ARFCN-ValueEUTRA, + ..., + [[ sourceSystemInformationBlockType1Ext OCTET STRING (CONTAINING + SystemInformationBlockType1-v890-IEs) OPTIONAL, + sourceOtherConfig-r9 OtherConfig-r9 + -- sourceOtherConfig-r9 should have been optional. A target eNB compliant with this transfer + -- syntax should support receiving an AS-Config not including this extension addition group + -- e.g. from a legacy source eNB + ]], + [[ sourceSCellConfigList-r10 SCellToAddModList-r10 OPTIONAL + ]], + [[ sourceConfigSCG-r12 SCG-Config-r12 OPTIONAL + ]], + [[ as-ConfigNR-r15 AS-ConfigNR-r15 OPTIONAL + ]] +} + +AS-Config-v9e0 ::= SEQUENCE { + sourceDl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +AS-Config-v10j0 ::= SEQUENCE { + antennaInfoDedicatedPCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL +} + +AS-Config-v1250 ::= SEQUENCE { + sourceWlan-OffloadConfig-r12 WLAN-OffloadConfig-r12 OPTIONAL, + sourceSL-CommConfig-r12 SL-CommConfig-r12 OPTIONAL, + sourceSL-DiscConfig-r12 SL-DiscConfig-r12 OPTIONAL +} + +AS-Config-v1320 ::= SEQUENCE { + sourceSCellConfigList-r13 SCellToAddModListExt-r13 OPTIONAL, + sourceRCLWI-Configuration-r13 RCLWI-Configuration-r13 OPTIONAL +} + +AS-Config-v1430 ::= SEQUENCE { + sourceSL-V2X-CommConfig-r14 SL-V2X-ConfigDedicated-r14 OPTIONAL, + sourceLWA-Config-r14 LWA-Config-r13 OPTIONAL, + sourceWLAN-MeasResult-r14 MeasResultListWLAN-r13 OPTIONAL +} + +AS-ConfigNR-r15 ::= SEQUENCE { + sourceRB-ConfigNR-r15 OCTET STRING OPTIONAL, + sourceRB-ConfigSN-NR-r15 OCTET STRING OPTIONAL, + sourceOtherConfigSN-NR-r15 OCTET STRING OPTIONAL +} + + +AS-Context ::= SEQUENCE { + reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO +} + +AS-Context-v1130 ::= SEQUENCE { + idc-Indication-r11 OCTET STRING (CONTAINING + InDeviceCoexIndication-r11) OPTIONAL, -- Cond HO2 + mbmsInterestIndication-r11 OCTET STRING (CONTAINING + MBMSInterestIndication-r11) OPTIONAL, -- Cond HO2 + powerPrefIndication-r11 OCTET STRING (CONTAINING + UEAssistanceInformation-r11) OPTIONAL, -- Cond HO2 + ..., + [[ sidelinkUEInformation-r12 OCTET STRING (CONTAINING + SidelinkUEInformation-r12) OPTIONAL -- Cond HO2 + ]], + [[ sourceContextENDC-r15 OCTET STRING OPTIONAL -- Cond HO2 + ]] +} + +AS-Context-v1320 ::= SEQUENCE { + wlanConnectionStatusReport-r13 OCTET STRING (CONTAINING + WLANConnectionStatusReport-r13) OPTIONAL -- Cond HO2 +} + + +ReestablishmentInfo ::= SEQUENCE { + sourcePhysCellId PhysCellId, + targetCellShortMAC-I ShortMAC-I, + additionalReestabInfoList AdditionalReestabInfoList OPTIONAL, + ... +} + +AdditionalReestabInfoList ::= SEQUENCE ( SIZE (1..maxReestabInfo) ) OF AdditionalReestabInfo + +AdditionalReestabInfo ::= SEQUENCE{ + cellIdentity CellIdentity, + key-eNodeB-Star Key-eNodeB-Star, + shortMAC-I ShortMAC-I +} + +Key-eNodeB-Star ::= BIT STRING (SIZE (256)) + + +RRM-Config ::= SEQUENCE { + ue-InactiveTime ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, + s25, s30, s40, s50, min1, min1s20c, min1s40, + min2, min2s30, min3, min3s30, min4, min5, min6, + min7, min8, min9, min10, min12, min14, min17, min20, + min24, min28, min33, min38, min44, min50, hr1, + hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6, + hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2, + day2hr12, day3, day4, day5, day7, day10, day14, day19, + day24, day30, dayMoreThan30} OPTIONAL, + ..., + [[ candidateCellInfoList-r10 CandidateCellInfoList-r10 OPTIONAL + ]], + [[ candidateCellInfoListNR-r15 MeasResultServFreqListNR-r15 OPTIONAL + ]] +} + +CandidateCellInfoList-r10 ::= SEQUENCE (SIZE (1..maxFreq)) OF CandidateCellInfo-r10 + +CandidateCellInfo-r10 ::= SEQUENCE { + -- cellIdentification + physCellId-r10 PhysCellId, + dl-CarrierFreq-r10 ARFCN-ValueEUTRA, + -- available measurement results + rsrpResult-r10 RSRP-Range OPTIONAL, + rsrqResult-r10 RSRQ-Range OPTIONAL, + ..., + [[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL + ]], + [[ rsrqResult-v1250 RSRQ-Range-v1250 OPTIONAL + ]], + [[ rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL + ]] +} + + +maxReestabInfo INTEGER ::= 32 -- Maximum number of KeNB* and shortMAC-I forwarded + -- at handover for re-establishment preparation + + +END + + +NBIOT-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + C-RNTI, + PhysCellId, + SecurityAlgorithmConfig, + ShortMAC-I +FROM EUTRA-RRC-Definitions + + AdditionalReestabInfoList +FROM EUTRA-InterNodeDefinitions + + CarrierFreq-NB-r13, + RadioResourceConfigDedicated-NB-r13, + UECapabilityInformation-NB, + UE-Capability-NB-r13, + UE-Capability-NB-Ext-r14-IEs, + UE-RadioPagingInfo-NB-r13 +FROM NBIOT-RRC-Definitions; + + +HandoverPreparationInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverPreparationInformation-r13 HandoverPreparationInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverPreparationInformation-NB-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo-r13 UE-Capability-NB-r13, + as-Config-r13 AS-Config-NB, + rrm-Config-r13 RRM-Config-NB OPTIONAL, + as-Context-r13 AS-Context-NB OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-NB-v1380-IEs OPTIONAL +} + +HandoverPreparationInformation-NB-v1380-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-NB-Ext-r14-IEs OPTIONAL +} + +HandoverPreparationInformation-NB-Ext-r14-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfoExt-r14 OCTET STRING (CONTAINING UE-Capability-NB-Ext-r14-IEs) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEPagingCoverageInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + uePagingCoverageInformation-r13 UEPagingCoverageInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEPagingCoverageInformation-NB-IEs ::= SEQUENCE { +-- the possible value(s) can differ from those sent on Uu + npdcch-NumRepetitionPaging-r13 INTEGER (1..2048) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioAccessCapabilityInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioAccessCapabilityInformation-r13 + UERadioAccessCapabilityInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioAccessCapabilityInformation-NB-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo-r13 OCTET STRING (CONTAINING UE-Capability-NB-r13), + nonCriticalExtension UERadioAccessCapabilityInformation-NB-v1380-IEs OPTIONAL +} + +UERadioAccessCapabilityInformation-NB-v1380-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UERadioAccessCapabilityInformation-NB-r14-IEs OPTIONAL +} + +UERadioAccessCapabilityInformation-NB-r14-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo-r14 OCTET STRING (CONTAINING UECapabilityInformation-NB) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioPagingInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioPagingInformation-r13 UERadioPagingInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioPagingInformation-NB-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r13 OCTET STRING (CONTAINING UE-RadioPagingInfo-NB-r13), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +AS-Config-NB ::= SEQUENCE { + sourceRadioResourceConfig-r13 RadioResourceConfigDedicated-NB-r13, + sourceSecurityAlgorithmConfig-r13 SecurityAlgorithmConfig, + sourceUE-Identity-r13 C-RNTI, + sourceDl-CarrierFreq-r13 CarrierFreq-NB-r13, + ... +} + + +AS-Context-NB ::= SEQUENCE { + reestablishmentInfo-r13 ReestablishmentInfo-NB OPTIONAL, + ... +} + + +ReestablishmentInfo-NB ::= SEQUENCE { + sourcePhysCellId-r13 PhysCellId, + targetCellShortMAC-I-r13 ShortMAC-I, + additionalReestabInfoList-r13 AdditionalReestabInfoList OPTIONAL, + ... +} + + + + +RRM-Config-NB ::= SEQUENCE { + ue-InactiveTime ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, + s25, s30, s40, s50, min1, min1s20, min1s40, + min2, min2s30, min3, min3s30, min4, min5, min6, + min7, min8, min9, min10, min12, min14, min17, min20, + min24, min28, min33, min38, min44, min50, hr1, + hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6, + hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2, + day2hr12, day3, day4, day5, day7, day10, day14, day19, + day24, day30, dayMoreThan30} OPTIONAL, + ... +} + + +END + + diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.2.1.asn1 b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.2.1.asn1 new file mode 100755 index 0000000000..881cef49c1 --- /dev/null +++ b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.2.1.asn1 @@ -0,0 +1,14828 @@ + +EUTRA-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + + +BCCH-BCH-Message ::= SEQUENCE { + message BCCH-BCH-MessageType +} + +BCCH-BCH-MessageType ::= MasterInformationBlock + + +BCCH-BCH-Message-MBMS::= SEQUENCE { + message BCCH-BCH-MessageType-MBMS-r14 +} + +BCCH-BCH-MessageType-MBMS-r14 ::= MasterInformationBlock-MBMS-r14 + + +BCCH-DL-SCH-Message ::= SEQUENCE { + message BCCH-DL-SCH-MessageType +} + +BCCH-DL-SCH-MessageType ::= CHOICE { + c1 CHOICE { + systemInformation SystemInformation, + systemInformationBlockType1 SystemInformationBlockType1 + }, + messageClassExtension SEQUENCE {} +} + + +BCCH-DL-SCH-Message-BR ::= SEQUENCE { + message BCCH-DL-SCH-MessageType-BR-r13 +} + +BCCH-DL-SCH-MessageType-BR-r13 ::= CHOICE { + c1 CHOICE { + systemInformation-BR-r13 SystemInformation-BR-r13, + systemInformationBlockType1-BR-r13 SystemInformationBlockType1-BR-r13 + }, + messageClassExtension SEQUENCE {} +} + + +BCCH-DL-SCH-Message-MBMS ::= SEQUENCE { + message BCCH-DL-SCH-MessageType-MBMS-r14 +} + +BCCH-DL-SCH-MessageType-MBMS-r14 ::= CHOICE { + c1 CHOICE { + systemInformation-MBMS-r14 SystemInformation-MBMS-r14, + systemInformationBlockType1-MBMS-r14 SystemInformationBlockType1-MBMS-r14 + }, + messageClassExtension SEQUENCE {} +} + + +MCCH-Message ::= SEQUENCE { + message MCCH-MessageType +} + +MCCH-MessageType ::= CHOICE { + c1 CHOICE { + mbsfnAreaConfiguration-r9 MBSFNAreaConfiguration-r9 + }, + later CHOICE { + c2 CHOICE{ + mbmsCountingRequest-r10 MBMSCountingRequest-r10 + }, + messageClassExtension SEQUENCE {} + } +} + + +PCCH-Message ::= SEQUENCE { + message PCCH-MessageType +} + +PCCH-MessageType ::= CHOICE { + c1 CHOICE { + paging Paging + }, + messageClassExtension SEQUENCE {} +} + + +DL-CCCH-Message ::= SEQUENCE { + message DL-CCCH-MessageType +} + +DL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishment RRCConnectionReestablishment, + rrcConnectionReestablishmentReject RRCConnectionReestablishmentReject, + rrcConnectionReject RRCConnectionReject, + rrcConnectionSetup RRCConnectionSetup + }, + messageClassExtension SEQUENCE {} +} + + +DL-DCCH-Message ::= SEQUENCE { + message DL-DCCH-MessageType +} + +DL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + csfbParametersResponseCDMA2000 CSFBParametersResponseCDMA2000, + dlInformationTransfer DLInformationTransfer, + handoverFromEUTRAPreparationRequest HandoverFromEUTRAPreparationRequest, + mobilityFromEUTRACommand MobilityFromEUTRACommand, + rrcConnectionReconfiguration RRCConnectionReconfiguration, + rrcConnectionRelease RRCConnectionRelease, + securityModeCommand SecurityModeCommand, + ueCapabilityEnquiry UECapabilityEnquiry, + counterCheck CounterCheck, + ueInformationRequest-r9 UEInformationRequest-r9, + loggedMeasurementConfiguration-r10 LoggedMeasurementConfiguration-r10, + rnReconfiguration-r10 RNReconfiguration-r10, + rrcConnectionResume-r13 RRCConnectionResume-r13, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +UL-CCCH-Message ::= SEQUENCE { + message UL-CCCH-MessageType +} + +UL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishmentRequest RRCConnectionReestablishmentRequest, + rrcConnectionRequest RRCConnectionRequest + }, + messageClassExtension CHOICE { + c2 CHOICE { + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-r13 + }, + messageClassExtensionFuture-r13 SEQUENCE {} + } +} + + +UL-DCCH-Message ::= SEQUENCE { + message UL-DCCH-MessageType +} + +UL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + csfbParametersRequestCDMA2000 CSFBParametersRequestCDMA2000, + measurementReport MeasurementReport, + rrcConnectionReconfigurationComplete RRCConnectionReconfigurationComplete, + rrcConnectionReestablishmentComplete RRCConnectionReestablishmentComplete, + rrcConnectionSetupComplete RRCConnectionSetupComplete, + securityModeComplete SecurityModeComplete, + securityModeFailure SecurityModeFailure, + ueCapabilityInformation UECapabilityInformation, + ulHandoverPreparationTransfer ULHandoverPreparationTransfer, + ulInformationTransfer ULInformationTransfer, + counterCheckResponse CounterCheckResponse, + ueInformationResponse-r9 UEInformationResponse-r9, + proximityIndication-r9 ProximityIndication-r9, + rnReconfigurationComplete-r10 RNReconfigurationComplete-r10, + mbmsCountingResponse-r10 MBMSCountingResponse-r10, + interFreqRSTDMeasurementIndication-r10 InterFreqRSTDMeasurementIndication-r10 + }, + messageClassExtension CHOICE { + c2 CHOICE { + ueAssistanceInformation-r11 UEAssistanceInformation-r11, + inDeviceCoexIndication-r11 InDeviceCoexIndication-r11, + mbmsInterestIndication-r11 MBMSInterestIndication-r11, + scgFailureInformation-r12 SCGFailureInformation-r12, + sidelinkUEInformation-r12 SidelinkUEInformation-r12, + wlanConnectionStatusReport-r13 WLANConnectionStatusReport-r13, + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-r13, + ulInformationTransferMRDC-r15 ULInformationTransferMRDC-r15, + scgFailureInformationNR-r15 SCGFailureInformationNR-r15, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtensionFuture-r11 SEQUENCE {} + } +} + + +SC-MCCH-Message-r13 ::= SEQUENCE { + message SC-MCCH-MessageType-r13 +} + + +SC-MCCH-MessageType-r13 ::= CHOICE { + c1 CHOICE { + scptmConfiguration-r13 SCPTMConfiguration-r13 + }, + messageClassExtension CHOICE { + c2 CHOICE { + scptmConfiguration-BR-r14 SCPTMConfiguration-BR-r14, + spare NULL + }, + messageClassExtensionFuture-r14 SEQUENCE {} + } +} + + +CounterCheck ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + counterCheck-r8 CounterCheck-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheck-r8-IEs ::= SEQUENCE { + drb-CountMSB-InfoList DRB-CountMSB-InfoList, + nonCriticalExtension CounterCheck-v8a0-IEs OPTIONAL +} + +CounterCheck-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-CountMSB-InfoList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-CountMSB-Info + +DRB-CountMSB-Info ::= SEQUENCE { + drb-Identity DRB-Identity, + countMSB-Uplink INTEGER(0..33554431), + countMSB-Downlink INTEGER(0..33554431) +} + + +CounterCheckResponse ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + counterCheckResponse-r8 CounterCheckResponse-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheckResponse-r8-IEs ::= SEQUENCE { + drb-CountInfoList DRB-CountInfoList, + nonCriticalExtension CounterCheckResponse-v8a0-IEs OPTIONAL +} + +CounterCheckResponse-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-CountInfoList ::= SEQUENCE (SIZE (0..maxDRB)) OF DRB-CountInfo + +DRB-CountInfo ::= SEQUENCE { + drb-Identity DRB-Identity, + count-Uplink INTEGER(0..4294967295), + count-Downlink INTEGER(0..4294967295) +} + + +CSFBParametersRequestCDMA2000 ::= SEQUENCE { + criticalExtensions CHOICE { + csfbParametersRequestCDMA2000-r8 CSFBParametersRequestCDMA2000-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CSFBParametersRequestCDMA2000-r8-IEs ::= SEQUENCE { + nonCriticalExtension CSFBParametersRequestCDMA2000-v8a0-IEs OPTIONAL +} + +CSFBParametersRequestCDMA2000-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +CSFBParametersResponseCDMA2000 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + csfbParametersResponseCDMA2000-r8 CSFBParametersResponseCDMA2000-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CSFBParametersResponseCDMA2000-r8-IEs ::= SEQUENCE { + rand RAND-CDMA2000, + mobilityParameters MobilityParametersCDMA2000, + nonCriticalExtension CSFBParametersResponseCDMA2000-v8a0-IEs OPTIONAL +} + +CSFBParametersResponseCDMA2000-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +DLInformationTransfer ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + dlInformationTransfer-r8 DLInformationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +DLInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType CHOICE { + dedicatedInfoNAS DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000 + }, + nonCriticalExtension DLInformationTransfer-v8a0-IEs OPTIONAL +} + +DLInformationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +HandoverFromEUTRAPreparationRequest ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + handoverFromEUTRAPreparationRequest-r8 + HandoverFromEUTRAPreparationRequest-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverFromEUTRAPreparationRequest-r8-IEs ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + rand RAND-CDMA2000 OPTIONAL, -- Cond cdma2000-Type + mobilityParameters MobilityParametersCDMA2000 OPTIONAL, -- Cond cdma2000-Type + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v890-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v920-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v920-IEs ::= SEQUENCE { + concurrPrepCDMA2000-HRPD-r9 BOOLEAN OPTIONAL, -- Cond cdma2000-Type + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v1020-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v1020-IEs ::= SEQUENCE { + dualRxTxRedirectIndicator-r10 ENUMERATED {true} OPTIONAL, -- Cond cdma2000-1XRTT + redirectCarrierCDMA2000-1XRTT-r10 CarrierFreqCDMA2000 OPTIONAL, -- Cond dualRxTxRedirect + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +InDeviceCoexIndication-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + inDeviceCoexIndication-r11 InDeviceCoexIndication-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +InDeviceCoexIndication-r11-IEs ::= SEQUENCE { + affectedCarrierFreqList-r11 AffectedCarrierFreqList-r11 OPTIONAL, + tdm-AssistanceInfo-r11 TDM-AssistanceInfo-r11 OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension InDeviceCoexIndication-v11d0-IEs OPTIONAL +} + +InDeviceCoexIndication-v11d0-IEs ::= SEQUENCE { + ul-CA-AssistanceInfo-r11 SEQUENCE { + affectedCarrierFreqCombList-r11 AffectedCarrierFreqCombList-r11 OPTIONAL, + victimSystemType-r11 VictimSystemType-r11 + } OPTIONAL, + nonCriticalExtension InDeviceCoexIndication-v1310-IEs OPTIONAL +} + +InDeviceCoexIndication-v1310-IEs ::= SEQUENCE { + affectedCarrierFreqList-v1310 AffectedCarrierFreqList-v1310 OPTIONAL, + affectedCarrierFreqCombList-r13 AffectedCarrierFreqCombList-r13 OPTIONAL, + nonCriticalExtension InDeviceCoexIndication-v1360-IEs OPTIONAL +} + +InDeviceCoexIndication-v1360-IEs ::= SEQUENCE { + hardwareSharingProblem-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AffectedCarrierFreqList-r11 ::= SEQUENCE (SIZE (1..maxFreqIDC-r11)) OF AffectedCarrierFreq-r11 + +AffectedCarrierFreqList-v1310 ::= SEQUENCE (SIZE (1..maxFreqIDC-r11)) OF AffectedCarrierFreq-v1310 + +AffectedCarrierFreq-r11 ::= SEQUENCE { + carrierFreq-r11 MeasObjectId, + interferenceDirection-r11 ENUMERATED {eutra, other, both, spare} +} + +AffectedCarrierFreq-v1310 ::= SEQUENCE { + carrierFreq-v1310 MeasObjectId-v1310 OPTIONAL +} + +AffectedCarrierFreqCombList-r11 ::= SEQUENCE (SIZE (1..maxCombIDC-r11)) OF AffectedCarrierFreqComb-r11 + +AffectedCarrierFreqCombList-r13 ::= SEQUENCE (SIZE (1..maxCombIDC-r11)) OF AffectedCarrierFreqComb-r13 + +AffectedCarrierFreqComb-r11 ::= SEQUENCE (SIZE (2..maxServCell-r10)) OF MeasObjectId + +AffectedCarrierFreqComb-r13 ::= SEQUENCE (SIZE (2..maxServCell-r13)) OF MeasObjectId-r13 + +TDM-AssistanceInfo-r11 ::= CHOICE { + drx-AssistanceInfo-r11 SEQUENCE { + drx-CycleLength-r11 ENUMERATED {sf40, sf64, sf80, sf128, sf160, + sf256, spare2, spare1}, + drx-Offset-r11 INTEGER (0..255) OPTIONAL, + drx-ActiveTime-r11 ENUMERATED {sf20, sf30, sf40, sf60, sf80, + sf100, spare2, spare1} + }, + idc-SubframePatternList-r11 IDC-SubframePatternList-r11, + ... +} + +IDC-SubframePatternList-r11 ::= SEQUENCE (SIZE (1..maxSubframePatternIDC-r11)) OF IDC-SubframePattern-r11 + +IDC-SubframePattern-r11 ::= CHOICE { + subframePatternFDD-r11 BIT STRING (SIZE (4)), + subframePatternTDD-r11 CHOICE { + subframeConfig0-r11 BIT STRING (SIZE (70)), + subframeConfig1-5-r11 BIT STRING (SIZE (10)), + subframeConfig6-r11 BIT STRING (SIZE (60)) + }, + ... +} + +VictimSystemType-r11 ::= SEQUENCE { + gps-r11 ENUMERATED {true} OPTIONAL, + glonass-r11 ENUMERATED {true} OPTIONAL, + bds-r11 ENUMERATED {true} OPTIONAL, + galileo-r11 ENUMERATED {true} OPTIONAL, + wlan-r11 ENUMERATED {true} OPTIONAL, + bluetooth-r11 ENUMERATED {true} OPTIONAL +} + + +InterFreqRSTDMeasurementIndication-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + interFreqRSTDMeasurementIndication-r10 InterFreqRSTDMeasurementIndication-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +InterFreqRSTDMeasurementIndication-r10-IEs ::= SEQUENCE { + rstd-InterFreqIndication-r10 CHOICE { + start SEQUENCE { + rstd-InterFreqInfoList-r10 RSTD-InterFreqInfoList-r10 + }, + stop NULL + }, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RSTD-InterFreqInfoList-r10 ::= SEQUENCE (SIZE(1..maxRSTD-Freq-r10)) OF RSTD-InterFreqInfo-r10 + +RSTD-InterFreqInfo-r10 ::= SEQUENCE { + carrierFreq-r10 ARFCN-ValueEUTRA, + measPRS-Offset-r10 INTEGER (0..39), + ..., + [[ carrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL + ]] +} + + +LoggedMeasurementConfiguration-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + loggedMeasurementConfiguration-r10 LoggedMeasurementConfiguration-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + + +LoggedMeasurementConfiguration-r10-IEs ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, -- Need OR + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10, + nonCriticalExtension LoggedMeasurementConfiguration-v1080-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1080-IEs ::= SEQUENCE { + lateNonCriticalExtension-r10 OCTET STRING OPTIONAL, + nonCriticalExtension LoggedMeasurementConfiguration-v1130-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1130-IEs ::= SEQUENCE { + plmn-IdentityList-r11 PLMN-IdentityList3-r11 OPTIONAL, -- Need OR + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, -- Need OR + nonCriticalExtension LoggedMeasurementConfiguration-v1250-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1250-IEs ::= SEQUENCE { + targetMBSFN-AreaList-r12 TargetMBSFN-AreaList-r12 OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +TargetMBSFN-AreaList-r12 ::= SEQUENCE (SIZE (0..maxMBSFN-Area)) OF TargetMBSFN-Area-r12 + +TargetMBSFN-Area-r12 ::= SEQUENCE { + mbsfn-AreaId-r12 MBSFN-AreaId-r12 OPTIONAL, -- Need OR + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + ... +} + + +MasterInformationBlock ::= SEQUENCE { + dl-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100}, + phich-Config PHICH-Config, + systemFrameNumber BIT STRING (SIZE (8)), + schedulingInfoSIB1-BR-r13 INTEGER (0..31), + spare BIT STRING (SIZE (5)) +} + + + +MasterInformationBlock-MBMS-r14 ::= SEQUENCE { + dl-Bandwidth-MBMS-r14 ENUMERATED { + n6, n15, n25, n50, n75, n100}, + systemFrameNumber-r14 BIT STRING (SIZE (6)), + additionalNonMBSFNSubframes-r14 INTEGER (0..3), + spare BIT STRING (SIZE (13)) +} + + +MBMSCountingRequest-r10 ::= SEQUENCE { + countingRequestList-r10 CountingRequestList-r10, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CountingRequestList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingRequestInfo-r10 + +CountingRequestInfo-r10 ::= SEQUENCE { + tmgi-r10 TMGI-r9, + ... +} + + +MBMSCountingResponse-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + countingResponse-r10 MBMSCountingResponse-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MBMSCountingResponse-r10-IEs ::= SEQUENCE { + mbsfn-AreaIndex-r10 INTEGER (0..maxMBSFN-Area-1) OPTIONAL, + countingResponseList-r10 CountingResponseList-r10 OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CountingResponseList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingResponseInfo-r10 + +CountingResponseInfo-r10 ::= SEQUENCE { + countingResponseService-r10 INTEGER (0..maxServiceCount-1), + ... +} + + +MBMSInterestIndication-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + interestIndication-r11 MBMSInterestIndication-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MBMSInterestIndication-r11-IEs ::= SEQUENCE { + mbms-FreqList-r11 CarrierFreqListMBMS-r11 OPTIONAL, + mbms-Priority-r11 ENUMERATED {true} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MBMSInterestIndication-v1310-IEs OPTIONAL +} + +MBMSInterestIndication-v1310-IEs ::= SEQUENCE { + mbms-Services-r13 MBMS-ServiceList-r13 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MBSFNAreaConfiguration-r9 ::= SEQUENCE { + commonSF-Alloc-r9 CommonSF-AllocPatternList-r9, + commonSF-AllocPeriod-r9 ENUMERATED { + rf4, rf8, rf16, rf32, rf64, rf128, rf256}, + pmch-InfoList-r9 PMCH-InfoList-r9, + nonCriticalExtension MBSFNAreaConfiguration-v930-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MBSFNAreaConfiguration-v1250-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v1250-IEs ::= SEQUENCE { + pmch-InfoListExt-r12 PMCH-InfoListExt-r12 OPTIONAL, -- Need OR + nonCriticalExtension MBSFNAreaConfiguration-v1430-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v1430-IEs ::= SEQUENCE { + commonSF-Alloc-r14 CommonSF-AllocPatternList-r14, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CommonSF-AllocPatternList-r9 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig + +CommonSF-AllocPatternList-r14 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig-v1430 + + +MeasurementReport ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + measurementReport-r8 MeasurementReport-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MeasurementReport-r8-IEs ::= SEQUENCE { + measResults MeasResults, + nonCriticalExtension MeasurementReport-v8a0-IEs OPTIONAL +} + +MeasurementReport-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MobilityFromEUTRACommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + mobilityFromEUTRACommand-r8 MobilityFromEUTRACommand-r8-IEs, + mobilityFromEUTRACommand-r9 MobilityFromEUTRACommand-r9-IEs, + spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MobilityFromEUTRACommand-r8-IEs ::= SEQUENCE { + cs-FallbackIndicator BOOLEAN, + purpose CHOICE{ + handover Handover, + cellChangeOrder CellChangeOrder + }, + nonCriticalExtension MobilityFromEUTRACommand-v8a0-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MobilityFromEUTRACommand-v8d0-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v8d0-IEs ::= SEQUENCE { + bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +MobilityFromEUTRACommand-r9-IEs ::= SEQUENCE { + cs-FallbackIndicator BOOLEAN, + purpose CHOICE{ + handover Handover, + cellChangeOrder CellChangeOrder, + e-CSFB-r9 E-CSFB-r9, + ... + }, + nonCriticalExtension MobilityFromEUTRACommand-v930-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MobilityFromEUTRACommand-v960-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v960-IEs ::= SEQUENCE { + bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +Handover ::= SEQUENCE { + targetRAT-Type ENUMERATED { + utra, geran, cdma2000-1XRTT, cdma2000-HRPD, + spare4, spare3, spare2, spare1, ...}, + targetRAT-MessageContainer OCTET STRING, + nas-SecurityParamFromEUTRA OCTET STRING (SIZE (1)) OPTIONAL, -- Cond UTRAGERAN + systemInformation SI-OrPSI-GERAN OPTIONAL -- Cond PSHO +} + +CellChangeOrder ::= SEQUENCE { + t304 ENUMERATED { + ms100, ms200, ms500, ms1000, + ms2000, ms4000, ms8000, ms10000-v1310}, + targetRAT-Type CHOICE { + geran SEQUENCE { + physCellId PhysCellIdGERAN, + carrierFreq CarrierFreqGERAN, + networkControlOrder BIT STRING (SIZE (2)) OPTIONAL, -- Need OP + systemInformation SI-OrPSI-GERAN OPTIONAL -- Need OP + }, + ... + } +} + +SI-OrPSI-GERAN ::= CHOICE { + si SystemInfoListGERAN, + psi SystemInfoListGERAN +} + +E-CSFB-r9 ::= SEQUENCE { + messageContCDMA2000-1XRTT-r9 OCTET STRING OPTIONAL, -- Need ON + mobilityCDMA2000-HRPD-r9 ENUMERATED { + handover, redirection + } OPTIONAL, -- Need OP + messageContCDMA2000-HRPD-r9 OCTET STRING OPTIONAL, -- Cond concHO + redirectCarrierCDMA2000-HRPD-r9 CarrierFreqCDMA2000 OPTIONAL -- Cond concRedir +} + + +Paging ::= SEQUENCE { + pagingRecordList PagingRecordList OPTIONAL, -- Need ON + systemInfoModification ENUMERATED {true} OPTIONAL, -- Need ON + etws-Indication ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v890-IEs OPTIONAL +} + +Paging-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension Paging-v920-IEs OPTIONAL +} + +Paging-v920-IEs ::= SEQUENCE { + cmas-Indication-r9 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v1130-IEs OPTIONAL +} + +Paging-v1130-IEs ::= SEQUENCE { + eab-ParamModification-r11 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v1310-IEs OPTIONAL +} + +Paging-v1310-IEs ::= SEQUENCE { + redistributionIndication-r13 ENUMERATED {true} OPTIONAL, --Need ON + systemInfoModification-eDRX-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PagingRecordList ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord + +PagingRecord ::= SEQUENCE { + ue-Identity PagingUE-Identity, + cn-Domain ENUMERATED {ps, cs}, + ... +} + +PagingUE-Identity ::= CHOICE { + s-TMSI S-TMSI, + imsi IMSI, + ... +} + +IMSI ::= SEQUENCE (SIZE (6..21)) OF IMSI-Digit + +IMSI-Digit ::= INTEGER (0..9) + + +ProximityIndication-r9 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + proximityIndication-r9 ProximityIndication-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ProximityIndication-r9-IEs ::= SEQUENCE { + type-r9 ENUMERATED {entering, leaving}, + carrierFreq-r9 CHOICE { + eutra-r9 ARFCN-ValueEUTRA, + utra-r9 ARFCN-ValueUTRA, + ..., + eutra2-v9e0 ARFCN-ValueEUTRA-v9e0 + }, + nonCriticalExtension ProximityIndication-v930-IEs OPTIONAL +} + +ProximityIndication-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RNReconfiguration-r10 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rnReconfiguration-r10 RNReconfiguration-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RNReconfiguration-r10-IEs ::= SEQUENCE { + rn-SystemInfo-r10 RN-SystemInfo-r10 OPTIONAL, -- Need ON + rn-SubframeConfig-r10 RN-SubframeConfig-r10 OPTIONAL, -- Need ON + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RN-SystemInfo-r10 ::= SEQUENCE { + systemInformationBlockType1-r10 OCTET STRING (CONTAINING SystemInformationBlockType1) OPTIONAL, -- Need ON + systemInformationBlockType2-r10 SystemInformationBlockType2 OPTIONAL, -- Need ON + ... +} + + +RNReconfigurationComplete-r10 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rnReconfigurationComplete-r10 RNReconfigurationComplete-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RNReconfigurationComplete-r10-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReconfiguration ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReconfiguration-r8 RRCConnectionReconfiguration-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfiguration-r8-IEs ::= SEQUENCE { + measConfig MeasConfig OPTIONAL, -- Need ON + mobilityControlInfo MobilityControlInfo OPTIONAL, -- Cond HO + dedicatedInfoNASList SEQUENCE (SIZE(1..maxDRB)) OF + DedicatedInfoNAS OPTIONAL, -- Cond nonHO + radioResourceConfigDedicated RadioResourceConfigDedicated OPTIONAL, -- Cond HO-toEUTRA + securityConfigHO SecurityConfigHO OPTIONAL, -- Cond HO + nonCriticalExtension RRCConnectionReconfiguration-v890-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING RRCConnectionReconfiguration-v8m0-IEs) OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v920-IEs OPTIONAL +} + +-- Late non-critical extensions: +RRCConnectionReconfiguration-v8m0-IEs ::= SEQUENCE { + -- Following field is only for pre REL-10 late non-critical extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v10i0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v10i0-IEs ::= SEQUENCE { + antennaInfoDedicatedPCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v10l0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v10l0-IEs ::= SEQUENCE { + mobilityControlInfo-v10l0 MobilityControlInfo-v10l0 OPTIONAL, + sCellToAddModList-v10l0 SCellToAddModList-v10l0 OPTIONAL, -- Need ON + -- Following field is only for late non-critical extensions from REL-10 to REL-11 + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v12f0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v12f0-IEs ::= SEQUENCE { + scg-Configuration-v12f0 SCG-Configuration-v12f0 OPTIONAL, -- Cond nonFullConfig + -- Following field is only for late non-critical extensions from REL-12 + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v1370-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1370-IEs ::= SEQUENCE { + radioResourceConfigDedicated-v1370 RadioResourceConfigDedicated-v1370 OPTIONAL, -- Need ON + sCellToAddModListExt-v1370 SCellToAddModListExt-v1370 OPTIONAL, -- Need ON + -- Following field is only for late non-critical extensions from REL-13 onwards + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +RRCConnectionReconfiguration-v920-IEs ::= SEQUENCE { + otherConfig-r9 OtherConfig-r9 OPTIONAL, -- Need ON + fullConfig-r9 ENUMERATED {true} OPTIONAL, -- Cond HO-Reestab + nonCriticalExtension RRCConnectionReconfiguration-v1020-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1020-IEs ::= SEQUENCE { + sCellToReleaseList-r10 SCellToReleaseList-r10 OPTIONAL, -- Need ON + sCellToAddModList-r10 SCellToAddModList-r10 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1130-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1130-IEs ::= SEQUENCE { + systemInformationBlockType1Dedicated-r11 OCTET STRING (CONTAINING SystemInformationBlockType1) OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1250-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1250-IEs ::= SEQUENCE { + wlan-OffloadInfo-r12 CHOICE { + release NULL, + setup SEQUENCE { + wlan-OffloadConfigDedicated-r12 WLAN-OffloadConfig-r12, + t350-r12 ENUMERATED {min5, min10, min20, min30, min60, + min120, min180, spare1} OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + scg-Configuration-r12 SCG-Configuration-r12 OPTIONAL, -- Cond nonFullConfig + sl-SyncTxControl-r12 SL-SyncTxControl-r12 OPTIONAL, -- Need ON + sl-DiscConfig-r12 SL-DiscConfig-r12 OPTIONAL, -- Need ON + sl-CommConfig-r12 SL-CommConfig-r12 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1310-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1310-IEs ::= SEQUENCE { + sCellToReleaseListExt-r13 SCellToReleaseListExt-r13 OPTIONAL, -- Need ON + sCellToAddModListExt-r13 SCellToAddModListExt-r13 OPTIONAL, -- Need ON + lwa-Configuration-r13 LWA-Configuration-r13 OPTIONAL, -- Need ON + lwip-Configuration-r13 LWIP-Configuration-r13 OPTIONAL, -- Need ON + rclwi-Configuration-r13 RCLWI-Configuration-r13 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1430-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1430-IEs ::= SEQUENCE { + sl-V2X-ConfigDedicated-r14 SL-V2X-ConfigDedicated-r14 OPTIONAL, -- Need ON + sCellToAddModListExt-v1430 SCellToAddModListExt-v1430 OPTIONAL, -- Need ON + perCC-GapIndicationRequest-r14 ENUMERATED{true} OPTIONAL, -- Need ON + systemInformationBlockType2Dedicated-r14 OCTET STRING (CONTAINING SystemInformationBlockType2) OPTIONAL, -- Cond nonHO + nonCriticalExtension RRCConnectionReconfiguration-v1510-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1510-IEs ::= SEQUENCE { + nr-Config-r15 CHOICE { + release NULL, + setup SEQUENCE { + endc-ReleaseAndAdd-r15 BOOLEAN, + nr-SecondaryCellGroupConfig-r15 OCTET STRING OPTIONAL, -- Need ON + p-MaxEUTRA-r15 P-Max OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + sk-Counter-r15 INTEGER (0.. 65535) OPTIONAL, -- Need ON + nr-RadioBearerConfig1-r15 OCTET STRING OPTIONAL, -- Need ON + nr-RadioBearerConfig2-r15 OCTET STRING OPTIONAL, -- Need ON + tdm-PatternConfig-r15 CHOICE { + release NULL, + setup SEQUENCE { + subframeAssignment-r15 SubframeAssignment-r15, + harq-Offset-r15 INTEGER (0.. 9) + } + } OPTIONAL, -- Cond FDD-PCell + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SL-SyncTxControl-r12 ::= SEQUENCE { + networkControlledSyncTx-r12 ENUMERATED {on, off} OPTIONAL -- Need OP +} + +PSCellToAddMod-r12 ::= SEQUENCE { + sCellIndex-r12 SCellIndex-r10, + cellIdentification-r12 SEQUENCE { + physCellId-r12 PhysCellId, + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonPSCell-r12 RadioResourceConfigCommonPSCell-r12 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedPSCell-r12 RadioResourceConfigDedicatedPSCell-r12 OPTIONAL, -- Cond SCellAdd2 + ..., + [[ antennaInfoDedicatedPSCell-v1280 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON + ]], + [[ sCellIndex-r13 SCellIndex-r13 OPTIONAL -- Need ON + ]], + [[ radioResourceConfigDedicatedPSCell-v1370 RadioResourceConfigDedicatedPSCell-v1370 OPTIONAL -- Need ON + ]] +} + +PSCellToAddMod-v12f0 ::= SEQUENCE { + radioResourceConfigCommonPSCell-r12 RadioResourceConfigCommonPSCell-v12f0 OPTIONAL +} + +PSCellToAddMod-v1440 ::= SEQUENCE { + radioResourceConfigCommonPSCell-r14 RadioResourceConfigCommonPSCell-v1440 OPTIONAL +} + +PowerCoordinationInfo-r12 ::= SEQUENCE { + p-MeNB-r12 INTEGER (1..16), + p-SeNB-r12 INTEGER (1..16), + powerControlMode-r12 INTEGER (1..2) +} + +SCellToAddModList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-r10 + +SCellToAddModList-v10l0 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-v10l0 + +SCellToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-r13 + +SCellToAddModListExt-v1370 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-v1370 + +SCellToAddModListExt-v1430 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-v1430 + +SCellToAddMod-r10 ::= SEQUENCE { + sCellIndex-r10 SCellIndex-r10, + cellIdentification-r10 SEQUENCE { + physCellId-r10 PhysCellId, + dl-CarrierFreq-r10 ARFCN-ValueEUTRA + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonSCell-r10 RadioResourceConfigCommonSCell-r10 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedSCell-r10 RadioResourceConfigDedicatedSCell-r10 OPTIONAL, -- Cond SCellAdd2 + ..., + [[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max + ]], + [[ antennaInfoDedicatedSCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON + ]], + [[ srs-SwitchFromServCellIndex-r14 INTEGER (0.. 31) OPTIONAL -- Need ON + ]] +} + +SCellToAddMod-v10l0 ::= SEQUENCE { + radioResourceConfigCommonSCell-v10l0 RadioResourceConfigCommonSCell-v10l0 OPTIONAL +} + +SCellToAddModExt-r13 ::= SEQUENCE { + sCellIndex-r13 SCellIndex-r13, + cellIdentification-r13 SEQUENCE { + physCellId-r13 PhysCellId, + dl-CarrierFreq-r13 ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonSCell-r13 RadioResourceConfigCommonSCell-r10 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedSCell-r13 RadioResourceConfigDedicatedSCell-r10 OPTIONAL, -- Cond SCellAdd2 + antennaInfoDedicatedSCell-r13 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON +} + +SCellToAddModExt-v1370 ::= SEQUENCE { + radioResourceConfigCommonSCell-v1370 RadioResourceConfigCommonSCell-v10l0 OPTIONAL +} + +SCellToAddModExt-v1430 ::= SEQUENCE { + srs-SwitchFromServCellIndex-r14 INTEGER (0.. 31) OPTIONAL, -- Need ON + ... +} + +SCellToReleaseList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellIndex-r10 + +SCellToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellIndex-r13 + +SCG-Configuration-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + scg-ConfigPartMCG-r12 SEQUENCE { + scg-Counter-r12 INTEGER (0.. 65535) OPTIONAL, -- Need ON + powerCoordinationInfo-r12 PowerCoordinationInfo-r12 OPTIONAL, -- Need ON + ... + } OPTIONAL, -- Need ON + scg-ConfigPartSCG-r12 SCG-ConfigPartSCG-r12 OPTIONAL -- Need ON + } +} + +SCG-Configuration-v12f0 ::= CHOICE { + release NULL, + setup SEQUENCE { + scg-ConfigPartSCG-v12f0 SCG-ConfigPartSCG-v12f0 OPTIONAL -- Need ON + } +} + +SCG-ConfigPartSCG-r12 ::= SEQUENCE { + radioResourceConfigDedicatedSCG-r12 RadioResourceConfigDedicatedSCG-r12 OPTIONAL, -- Need ON + sCellToReleaseListSCG-r12 SCellToReleaseList-r10 OPTIONAL, -- Need ON + pSCellToAddMod-r12 PSCellToAddMod-r12 OPTIONAL, -- Need ON + sCellToAddModListSCG-r12 SCellToAddModList-r10 OPTIONAL, -- Need ON + mobilityControlInfoSCG-r12 MobilityControlInfoSCG-r12 OPTIONAL, -- Need ON + ..., + [[ + sCellToReleaseListSCG-Ext-r13 SCellToReleaseListExt-r13 OPTIONAL, -- Need ON + sCellToAddModListSCG-Ext-r13 SCellToAddModListExt-r13 OPTIONAL -- Need ON + ]], + [[ + sCellToAddModListSCG-Ext-v1370 SCellToAddModListExt-v1370 OPTIONAL -- Need ON + ]], + [[ + pSCellToAddMod-v1440 PSCellToAddMod-v1440 OPTIONAL -- Need ON + ]] +} + +SCG-ConfigPartSCG-v12f0 ::= SEQUENCE { + pSCellToAddMod-v12f0 PSCellToAddMod-v12f0 OPTIONAL, -- Need ON + sCellToAddModListSCG-v12f0 SCellToAddModList-v10l0 OPTIONAL -- Need ON +} + +SecurityConfigHO ::= SEQUENCE { + handoverType CHOICE { + intraLTE SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig OPTIONAL, -- Cond fullConfig + keyChangeIndicator BOOLEAN, + nextHopChainingCount NextHopChainingCount + }, + interRAT SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig, + nas-SecurityParamToEUTRA OCTET STRING (SIZE(6)) + } + }, + ... +} + + + +RRCConnectionReconfigurationComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReconfigurationComplete-r8 + RRCConnectionReconfigurationComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfigurationComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReconfigurationComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1020-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1020-IEs ::= SEQUENCE { + rlf-InfoAvailable-r10 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1130-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1250-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1250-IEs ::= SEQUENCE { + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1430-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1430-IEs ::= SEQUENCE { + perCC-GapIndicationList-r14 PerCC-GapIndicationList-r14 OPTIONAL, + numFreqEffective-r14 INTEGER (1..12) OPTIONAL, + numFreqEffectiveReduced-r14 INTEGER (1..12) OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1510-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1510-IEs ::= SEQUENCE { + scg-ConfigResponseNR-r15 OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishment ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReestablishment-r8 RRCConnectionReestablishment-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishment-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated RadioResourceConfigDedicated, + nextHopChainingCount NextHopChainingCount, + nonCriticalExtension RRCConnectionReestablishment-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishment-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReestablishmentComplete-r8 + RRCConnectionReestablishmentComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReestablishmentComplete-v920-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v920-IEs ::= SEQUENCE { + rlf-InfoAvailable-r9 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1020-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1020-IEs ::= SEQUENCE { + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1130-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1250-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1250-IEs ::= SEQUENCE { + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentReject ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentReject-r8 + RRCConnectionReestablishmentReject-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentReject-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReestablishmentReject-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishmentReject-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentRequest ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentRequest-r8 + RRCConnectionReestablishmentRequest-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentRequest-r8-IEs ::= SEQUENCE { + ue-Identity ReestabUE-Identity, + reestablishmentCause ReestablishmentCause, + spare BIT STRING (SIZE (2)) +} + +ReestabUE-Identity ::= SEQUENCE { + c-RNTI C-RNTI, + physCellId PhysCellId, + shortMAC-I ShortMAC-I +} + +ReestablishmentCause ::= ENUMERATED { + reconfigurationFailure, handoverFailure, + otherFailure, spare1} + + +RRCConnectionReject ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionReject-r8 RRCConnectionReject-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReject-r8-IEs ::= SEQUENCE { + waitTime INTEGER (1..16), + nonCriticalExtension RRCConnectionReject-v8a0-IEs OPTIONAL +} + +RRCConnectionReject-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReject-v1020-IEs OPTIONAL +} + +RRCConnectionReject-v1020-IEs ::= SEQUENCE { + extendedWaitTime-r10 INTEGER (1..1800) OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReject-v1130-IEs OPTIONAL +} + +RRCConnectionReject-v1130-IEs ::= SEQUENCE { + deprioritisationReq-r11 SEQUENCE { + deprioritisationType-r11 ENUMERATED {frequency, e-utra}, + deprioritisationTimer-r11 ENUMERATED {min5, min10, min15, min30} + } OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReject-v1320-IEs OPTIONAL +} + +RRCConnectionReject-v1320-IEs ::= SEQUENCE { + rrc-SuspendIndication-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionRelease ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionRelease-r8 RRCConnectionRelease-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRelease-r8-IEs ::= SEQUENCE { + releaseCause ReleaseCause, + redirectedCarrierInfo RedirectedCarrierInfo OPTIONAL, -- Need ON + idleModeMobilityControlInfo IdleModeMobilityControlInfo OPTIONAL, -- Need OP + nonCriticalExtension RRCConnectionRelease-v890-IEs OPTIONAL +} + +RRCConnectionRelease-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING RRCConnectionRelease-v9e0-IEs) OPTIONAL, + nonCriticalExtension RRCConnectionRelease-v920-IEs OPTIONAL +} + +-- Late non critical extensions +RRCConnectionRelease-v9e0-IEs ::= SEQUENCE { + redirectedCarrierInfo-v9e0 RedirectedCarrierInfo-v9e0 OPTIONAL, -- Cond NoRedirect-r8 + idleModeMobilityControlInfo-v9e0 IdleModeMobilityControlInfo-v9e0 OPTIONAL, -- Cond IdleInfoEUTRA + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +RRCConnectionRelease-v920-IEs ::= SEQUENCE { + cellInfoList-r9 CHOICE { + geran-r9 CellInfoListGERAN-r9, + utra-FDD-r9 CellInfoListUTRA-FDD-r9, + utra-TDD-r9 CellInfoListUTRA-TDD-r9, + ..., + utra-TDD-r10 CellInfoListUTRA-TDD-r10 + } OPTIONAL, -- Cond Redirection + nonCriticalExtension RRCConnectionRelease-v1020-IEs OPTIONAL +} + +RRCConnectionRelease-v1020-IEs ::= SEQUENCE { + extendedWaitTime-r10 INTEGER (1..1800) OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionRelease-v1320-IEs OPTIONAL +} + +RRCConnectionRelease-v1320-IEs::= SEQUENCE { + resumeIdentity-r13 ResumeIdentity-r13 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +ReleaseCause ::= ENUMERATED {loadBalancingTAUrequired, + other, cs-FallbackHighPriority-v1020, rrc-Suspend-v1320} + +RedirectedCarrierInfo ::= CHOICE { + eutra ARFCN-ValueEUTRA, + geran CarrierFreqsGERAN, + utra-FDD ARFCN-ValueUTRA, + utra-TDD ARFCN-ValueUTRA, + cdma2000-HRPD CarrierFreqCDMA2000, + cdma2000-1xRTT CarrierFreqCDMA2000, + ..., + utra-TDD-r10 CarrierFreqListUTRA-TDD-r10 +} + +RedirectedCarrierInfo-v9e0 ::= SEQUENCE { + eutra-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +CarrierFreqListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxFreqUTRA-TDD-r10)) OF ARFCN-ValueUTRA + +IdleModeMobilityControlInfo ::= SEQUENCE { + freqPriorityListEUTRA FreqPriorityListEUTRA OPTIONAL, -- Need ON + freqPriorityListGERAN FreqsPriorityListGERAN OPTIONAL, -- Need ON + freqPriorityListUTRA-FDD FreqPriorityListUTRA-FDD OPTIONAL, -- Need ON + freqPriorityListUTRA-TDD FreqPriorityListUTRA-TDD OPTIONAL, -- Need ON + bandClassPriorityListHRPD BandClassPriorityListHRPD OPTIONAL, -- Need ON + bandClassPriorityList1XRTT BandClassPriorityList1XRTT OPTIONAL, -- Need ON + t320 ENUMERATED { + min5, min10, min20, min30, min60, min120, min180, + spare1} OPTIONAL, -- Need OR + ..., + [[ freqPriorityListExtEUTRA-r12 FreqPriorityListExtEUTRA-r12 OPTIONAL -- Need ON + ]], + [[ freqPriorityListEUTRA-v1310 FreqPriorityListEUTRA-v1310 OPTIONAL, -- Need ON + freqPriorityListExtEUTRA-v1310 FreqPriorityListExtEUTRA-v1310 OPTIONAL -- Need ON + ]] +} + +IdleModeMobilityControlInfo-v9e0 ::= SEQUENCE { + freqPriorityListEUTRA-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v9e0 +} + +FreqPriorityListEUTRA ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA + +FreqPriorityListExtEUTRA-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-r12 + +FreqPriorityListEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v1310 + +FreqPriorityListExtEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v1310 + +FreqPriorityEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityEUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max +} + +FreqPriorityEUTRA-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + cellReselectionPriority-r12 CellReselectionPriority +} + +FreqPriorityEUTRA-v1310 ::= SEQUENCE { + cellReselectionSubPriority-r13 CellReselectionSubPriority-r13 OPTIONAL -- Need ON +} + +FreqsPriorityListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF FreqsPriorityGERAN + +FreqsPriorityGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF FreqPriorityUTRA-FDD + +FreqPriorityUTRA-FDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF FreqPriorityUTRA-TDD + +FreqPriorityUTRA-TDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority +} + +BandClassPriorityListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriorityHRPD + +BandClassPriorityHRPD ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority +} + +BandClassPriorityList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriority1XRTT + +BandClassPriority1XRTT ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority +} + +CellInfoListGERAN-r9 ::= SEQUENCE (SIZE (1..maxCellInfoGERAN-r9)) OF CellInfoGERAN-r9 + +CellInfoGERAN-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdGERAN, + carrierFreq-r9 CarrierFreqGERAN, + systemInformation-r9 SystemInfoListGERAN +} + +CellInfoListUTRA-FDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-FDD-r9 + +CellInfoUTRA-FDD-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdUTRA-FDD, + utra-BCCH-Container-r9 OCTET STRING +} + +CellInfoListUTRA-TDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r9 + +CellInfoUTRA-TDD-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdUTRA-TDD, + utra-BCCH-Container-r9 OCTET STRING +} + +CellInfoListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r10 + +CellInfoUTRA-TDD-r10 ::= SEQUENCE { + physCellId-r10 PhysCellIdUTRA-TDD, + carrierFreq-r10 ARFCN-ValueUTRA, + utra-BCCH-Container-r10 OCTET STRING +} + + +RRCConnectionRequest ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionRequest-r8 RRCConnectionRequest-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRequest-r8-IEs ::= SEQUENCE { + ue-Identity InitialUE-Identity, + establishmentCause EstablishmentCause, + spare BIT STRING (SIZE (1)) +} + +InitialUE-Identity ::= CHOICE { + s-TMSI S-TMSI, + randomValue BIT STRING (SIZE (40)) +} + +EstablishmentCause ::= ENUMERATED { + emergency, highPriorityAccess, mt-Access, mo-Signalling, + mo-Data, delayTolerantAccess-v1020, mo-VoiceCall-v1280, spare1} + + +RRCConnectionResume-r13 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionResume-r13 RRCConnectionResume-r13-IEs, + spare3 NULL, + spare2 NULL, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResume-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated OPTIONAL, -- Need ON + nextHopChainingCount-r13 NextHopChainingCount, + measConfig-r13 MeasConfig OPTIONAL, -- Need ON + antennaInfoDedicatedPCell-r13 AntennaInfoDedicated-v10i0 OPTIONAL, -- Need ON + drb-ContinueROHC-r13 ENUMERATED {true} OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + rrcConnectionResume-v1430-IEs RRCConnectionResume-v1430-IEs OPTIONAL +} + +RRCConnectionResume-v1430-IEs ::= SEQUENCE { + otherConfig-r14 OtherConfig-r9 OPTIONAL, -- Need ON + rrcConnectionResume-v1510-IEs RRCConnectionResume-v1510-IEs OPTIONAL +} + +RRCConnectionResume-v1510-IEs ::= SEQUENCE { + sk-Counter-r15 INTEGER (0.. 65535) OPTIONAL, -- Need ON + nr-RadioBearerConfig1-r15 OCTET STRING OPTIONAL, -- Need ON + nr-RadioBearerConfig2-r15 OCTET STRING OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeComplete-r13 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeComplete-r13-IEs ::= SEQUENCE { + selectedPLMN-Identity-r13 INTEGER (1..maxPLMN-r11) OPTIONAL, + dedicatedInfoNAS-r13 DedicatedInfoNAS OPTIONAL, + rlf-InfoAvailable-r13 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r13 ENUMERATED {true} OPTIONAL, + connEstFailInfoAvailable-r13 ENUMERATED {true} OPTIONAL, + mobilityState-r13 ENUMERATED {normal, medium, high, spare} OPTIONAL, + mobilityHistoryAvail-r13 ENUMERATED {true} OPTIONAL, + logMeasAvailableMBSFN-r13 ENUMERATED {true} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeRequest-r13 ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeRequest-r13-IEs ::= SEQUENCE { + resumeIdentity-r13 CHOICE { + resumeID-r13 ResumeIdentity-r13, + truncatedResumeID-r13 BIT STRING (SIZE (24)) + }, + shortResumeMAC-I-r13 BIT STRING (SIZE (16)), + resumeCause-r13 ResumeCause, + spare BIT STRING (SIZE (1)) +} + +ResumeCause ::= ENUMERATED { + emergency, highPriorityAccess, mt-Access, mo-Signalling, + mo-Data, delayTolerantAccess-v1020, mo-VoiceCall-v1280, spare1} + + + +RRCConnectionSetup ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionSetup-r8 RRCConnectionSetup-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetup-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated RadioResourceConfigDedicated, + nonCriticalExtension RRCConnectionSetup-v8a0-IEs OPTIONAL +} + +RRCConnectionSetup-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionSetupComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionSetupComplete-r8 RRCConnectionSetupComplete-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetupComplete-r8-IEs ::= SEQUENCE { + selectedPLMN-Identity INTEGER (1..maxPLMN-r11), + registeredMME RegisteredMME OPTIONAL, + dedicatedInfoNAS DedicatedInfoNAS, + nonCriticalExtension RRCConnectionSetupComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1020-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1020-IEs ::= SEQUENCE { + gummei-Type-r10 ENUMERATED {native, mapped} OPTIONAL, + rlf-InfoAvailable-r10 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + rn-SubframeConfigReq-r10 ENUMERATED {required, notRequired} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1130-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1250-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1250-IEs ::= SEQUENCE { + mobilityState-r12 ENUMERATED {normal, medium, high, spare} OPTIONAL, + mobilityHistoryAvail-r12 ENUMERATED {true} OPTIONAL, + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1320-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1320-IEs ::= SEQUENCE { + ce-ModeB-r13 ENUMERATED {supported} OPTIONAL, + s-TMSI-r13 S-TMSI OPTIONAL, + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL, + up-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, + cp-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1330-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1330-IEs ::= SEQUENCE { + ue-CE-NeedULGaps-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1430-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1430-IEs ::= SEQUENCE { + dcn-ID-r14 INTEGER (0..65535) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RegisteredMME ::= SEQUENCE { + plmn-Identity PLMN-Identity OPTIONAL, + mmegi BIT STRING (SIZE (16)), + mmec MMEC +} + + +SCGFailureInformation-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + scgFailureInformation-r12 SCGFailureInformation-r12-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCGFailureInformation-r12-IEs ::= SEQUENCE { + failureReportSCG-r12 FailureReportSCG-r12 OPTIONAL, + nonCriticalExtension SCGFailureInformation-v1310-IEs OPTIONAL +} + +SCGFailureInformation-v1310-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING SCGFailureInformation-v12d0-IEs) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Late non-critical extensions: +SCGFailureInformation-v12d0-IEs ::= SEQUENCE { + failureReportSCG-v12d0 FailureReportSCG-v12d0 OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +FailureReportSCG-r12 ::= SEQUENCE { + failureType-r12 ENUMERATED {t313-Expiry, randomAccessProblem, + rlc-MaxNumRetx, scg-ChangeFailure }, + measResultServFreqList-r12 MeasResultServFreqList-r10 OPTIONAL, + measResultNeighCells-r12 MeasResultList2EUTRA-r9 OPTIONAL, + ..., + [[ failureType-v1290 ENUMERATED {maxUL-TimingDiff-v1290} OPTIONAL + ]], + [[ measResultServFreqListExt-r13 MeasResultServFreqListExt-r13 OPTIONAL + ]] +} + +FailureReportSCG-v12d0 ::= SEQUENCE { + measResultNeighCells-v12d0 MeasResultList2EUTRA-v9e0 OPTIONAL +} + + +SCGFailureInformationNR-r15 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + scgFailureInformationNR-r15 SCGFailureInformationNR-r15-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCGFailureInformationNR-r15-IEs ::= SEQUENCE { + failureReportSCG-NR-r15 FailureReportSCG-NR-r15 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +FailureReportSCG-NR-r15 ::= SEQUENCE { + failureType-r15 ENUMERATED { + t310-Expiry, randomAccessProblem, + rlc-MaxNumRetx, + scg-ChangeFailure, scg-reconfigFailure, + srb3-IntegrityFailure}, + measResultFreqListNR-r15 MeasResultFreqListFailNR-r15 OPTIONAL, + measResultSCG-r15 OCTET STRING OPTIONAL, + ... +} + +MeasResultFreqListFailNR-r15 ::= SEQUENCE (SIZE (1..maxFreqNR-r15)) OF MeasResultFreqFailNR-r15 + +MeasResultFreqFailNR-r15 ::= SEQUENCE { + carrierFreq-r15 ARFCN-ValueNR-r15, + measResultCellList-r15 MeasResultCellListNR-r15 OPTIONAL, + ... +} + + +SCPTMConfiguration-r13 ::= SEQUENCE { + sc-mtch-InfoList-r13 SC-MTCH-InfoList-r13, + scptm-NeighbourCellList-r13 SCPTM-NeighbourCellList-r13 OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SCPTMConfiguration-v1340 OPTIONAL +} + +SCPTMConfiguration-v1340 ::= SEQUENCE { + p-b-r13 INTEGER (0..3) OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCPTMConfiguration-BR-r14 ::= SEQUENCE { + sc-mtch-InfoList-r14 SC-MTCH-InfoList-BR-r14, + scptm-NeighbourCellList-r14 SCPTM-NeighbourCellList-r13 OPTIONAL, -- Need OP + p-b-r14 INTEGER (0..3) OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SecurityModeCommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + securityModeCommand-r8 SecurityModeCommand-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeCommand-r8-IEs ::= SEQUENCE { + securityConfigSMC SecurityConfigSMC, + nonCriticalExtension SecurityModeCommand-v8a0-IEs OPTIONAL +} + +SecurityModeCommand-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SecurityConfigSMC ::= SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig, + ... +} + + +SecurityModeComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeComplete-r8 SecurityModeComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension SecurityModeComplete-v8a0-IEs OPTIONAL +} + +SecurityModeComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SecurityModeFailure ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeFailure-r8 SecurityModeFailure-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeFailure-r8-IEs ::= SEQUENCE { + nonCriticalExtension SecurityModeFailure-v8a0-IEs OPTIONAL +} + +SecurityModeFailure-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SidelinkUEInformation-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + sidelinkUEInformation-r12 SidelinkUEInformation-r12-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SidelinkUEInformation-r12-IEs ::= SEQUENCE { + commRxInterestedFreq-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, + commTxResourceReq-r12 SL-CommTxResourceReq-r12 OPTIONAL, + discRxInterest-r12 ENUMERATED {true} OPTIONAL, + discTxResourceReq-r12 INTEGER (1..63) OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SidelinkUEInformation-v1310-IEs OPTIONAL +} + +SidelinkUEInformation-v1310-IEs ::= SEQUENCE { + commTxResourceReqUC-r13 SL-CommTxResourceReq-r12 OPTIONAL, + commTxResourceInfoReqRelay-r13 SEQUENCE { + commTxResourceReqRelay-r13 SL-CommTxResourceReq-r12 OPTIONAL, + commTxResourceReqRelayUC-r13 SL-CommTxResourceReq-r12 OPTIONAL, + ue-Type-r13 ENUMERATED {relayUE, remoteUE} + } OPTIONAL, + discTxResourceReq-v1310 SEQUENCE { + carrierFreqDiscTx-r13 INTEGER (1..maxFreq) OPTIONAL, + discTxResourceReqAddFreq-r13 SL-DiscTxResourceReqPerFreqList-r13 OPTIONAL + } OPTIONAL, + discTxResourceReqPS-r13 SL-DiscTxResourceReq-r13 OPTIONAL, + discRxGapReq-r13 SL-GapRequest-r13 OPTIONAL, + discTxGapReq-r13 SL-GapRequest-r13 OPTIONAL, + discSysInfoReportFreqList-r13 SL-DiscSysInfoReportFreqList-r13 OPTIONAL, + nonCriticalExtension SidelinkUEInformation-v1430-IEs OPTIONAL +} + +SidelinkUEInformation-v1430-IEs ::= SEQUENCE { + v2x-CommRxInterestedFreqList-r14 SL-V2X-CommFreqList-r14 OPTIONAL, + p2x-CommTxType-r14 ENUMERATED {true} OPTIONAL, + v2x-CommTxResourceReq-r14 SL-V2X-CommTxFreqList-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SL-CommTxResourceReq-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, + destinationInfoList-r12 SL-DestinationInfoList-r12 +} + +SL-DiscTxResourceReqPerFreqList-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-DiscTxResourceReq-r13 + +SL-DiscTxResourceReq-r13 ::= SEQUENCE { + carrierFreqDiscTx-r13 INTEGER (1..maxFreq) OPTIONAL, + discTxResourceReq-r13 INTEGER (1..63) +} + +SL-DestinationInfoList-r12 ::= SEQUENCE (SIZE (1..maxSL-Dest-r12)) OF SL-DestinationIdentity-r12 + +SL-DestinationIdentity-r12 ::= BIT STRING (SIZE (24)) + +SL-DiscSysInfoReportFreqList-r13 ::= SEQUENCE (SIZE (1.. maxSL-DiscSysInfoReportFreq-r13)) OF SL-DiscSysInfoReport-r13 + +SL-V2X-CommFreqList-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF INTEGER (0..maxFreqV2X-1-r14) + +SL-V2X-CommTxFreqList-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF SL-V2X-CommTxResourceReq-r14 + +SL-V2X-CommTxResourceReq-r14 ::= SEQUENCE { + carrierFreqCommTx-r14 INTEGER (0.. maxFreqV2X-1-r14) OPTIONAL, + v2x-TypeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, + v2x-DestinationInfoList-r14 SL-DestinationInfoList-r12 OPTIONAL +} + + +SystemInformation-BR-r13 ::= SystemInformation + +SystemInformation-MBMS-r14 ::= SystemInformation + +SystemInformation ::= SEQUENCE { + criticalExtensions CHOICE { + systemInformation-r8 SystemInformation-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} +SystemInformation-r8-IEs ::= SEQUENCE { + sib-TypeAndInfo SEQUENCE (SIZE (1..maxSIB)) OF CHOICE { + sib2 SystemInformationBlockType2, + sib3 SystemInformationBlockType3, + sib4 SystemInformationBlockType4, + sib5 SystemInformationBlockType5, + sib6 SystemInformationBlockType6, + sib7 SystemInformationBlockType7, + sib8 SystemInformationBlockType8, + sib9 SystemInformationBlockType9, + sib10 SystemInformationBlockType10, + sib11 SystemInformationBlockType11, + ..., + sib12-v920 SystemInformationBlockType12-r9, + sib13-v920 SystemInformationBlockType13-r9, + sib14-v1130 SystemInformationBlockType14-r11, + sib15-v1130 SystemInformationBlockType15-r11, + sib16-v1130 SystemInformationBlockType16-r11, + sib17-v1250 SystemInformationBlockType17-r12, + sib18-v1250 SystemInformationBlockType18-r12, + sib19-v1250 SystemInformationBlockType19-r12, + sib20-v1310 SystemInformationBlockType20-r13, + sib21-v1430 SystemInformationBlockType21-r14 + }, + nonCriticalExtension SystemInformation-v8a0-IEs OPTIONAL +} + +SystemInformation-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType1-BR-r13 ::= SystemInformationBlockType1 + +SystemInformationBlockType1 ::= SEQUENCE { + cellAccessRelatedInfo SEQUENCE { + plmn-IdentityList PLMN-IdentityList, + trackingAreaCode TrackingAreaCode, + cellIdentity CellIdentity, + cellBarred ENUMERATED {barred, notBarred}, + intraFreqReselection ENUMERATED {allowed, notAllowed}, + csg-Indication BOOLEAN, + csg-Identity CSG-Identity OPTIONAL -- Need OR + }, + cellSelectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + q-RxLevMinOffset INTEGER (1..8) OPTIONAL -- Need OP + }, + p-Max P-Max OPTIONAL, -- Need OP + freqBandIndicator FreqBandIndicator, + schedulingInfoList SchedulingInfoList, + tdd-Config TDD-Config OPTIONAL, -- Cond TDD + si-WindowLength ENUMERATED { + ms1, ms2, ms5, ms10, ms15, ms20, + ms40}, + systemInfoValueTag INTEGER (0..31), + nonCriticalExtension SystemInformationBlockType1-v890-IEs OPTIONAL +} + +SystemInformationBlockType1-v890-IEs::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType1-v8h0-IEs) OPTIONAL, + nonCriticalExtension SystemInformationBlockType1-v920-IEs OPTIONAL +} + +-- Late non critical extensions +SystemInformationBlockType1-v8h0-IEs ::= SEQUENCE { + multiBandInfoList MultiBandInfoList OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType1-v9e0-IEs ::= SEQUENCE { + freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL, -- Cond FBI-max + multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL, -- Cond mFBI-max + nonCriticalExtension SystemInformationBlockType1-v10j0-IEs OPTIONAL +} + +SystemInformationBlockType1-v10j0-IEs ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType1-v10l0-IEs ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +SystemInformationBlockType1-v920-IEs ::= SEQUENCE { + ims-EmergencySupport-r9 ENUMERATED {true} OPTIONAL, -- Need OR + cellSelectionInfo-v920 CellSelectionInfo-v920 OPTIONAL, -- Cond RSRQ + nonCriticalExtension SystemInformationBlockType1-v1130-IEs OPTIONAL +} + +SystemInformationBlockType1-v1130-IEs ::= SEQUENCE { + tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD-OR + cellSelectionInfo-v1130 CellSelectionInfo-v1130 OPTIONAL, -- Cond WB-RSRQ + nonCriticalExtension SystemInformationBlockType1-v1250-IEs OPTIONAL +} + +SystemInformationBlockType1-v1250-IEs ::= SEQUENCE { + cellAccessRelatedInfo-v1250 SEQUENCE { + category0Allowed-r12 ENUMERATED {true} OPTIONAL -- Need OP + }, + cellSelectionInfo-v1250 CellSelectionInfo-v1250 OPTIONAL, -- Cond RSRQ2 + freqBandIndicatorPriority-r12 ENUMERATED {true} OPTIONAL, -- Cond mFBI + nonCriticalExtension SystemInformationBlockType1-v1310-IEs OPTIONAL +} + +SystemInformationBlockType1-v1310-IEs ::= SEQUENCE { + hyperSFN-r13 BIT STRING (SIZE (10)) OPTIONAL, -- Need OR + eDRX-Allowed-r13 ENUMERATED {true} OPTIONAL, -- Need OR + cellSelectionInfoCE-r13 CellSelectionInfoCE-r13 OPTIONAL, -- Need OP + bandwidthReducedAccessRelatedInfo-r13 SEQUENCE { + si-WindowLength-BR-r13 ENUMERATED { + ms20, ms40, ms60, ms80, ms120, + ms160, ms200, spare}, + si-RepetitionPattern-r13 ENUMERATED {everyRF, every2ndRF, every4thRF, + every8thRF}, + schedulingInfoList-BR-r13 SchedulingInfoList-BR-r13 OPTIONAL, -- Cond SI-BR + fdd-DownlinkOrTddSubframeBitmapBR-r13 CHOICE { + subframePattern10-r13 BIT STRING (SIZE (10)), + subframePattern40-r13 BIT STRING (SIZE (40)) + } OPTIONAL, -- Need OP + fdd-UplinkSubframeBitmapBR-r13 BIT STRING (SIZE (10)) OPTIONAL, -- Need OP + startSymbolBR-r13 INTEGER (1..4), + si-HoppingConfigCommon-r13 ENUMERATED {on,off}, + si-ValidityTime-r13 ENUMERATED {true} OPTIONAL, -- Need OP + systemInfoValueTagList-r13 SystemInfoValueTagList-r13 OPTIONAL -- Need OR + } OPTIONAL, -- Cond BW-reduced + nonCriticalExtension SystemInformationBlockType1-v1320-IEs OPTIONAL +} + +SystemInformationBlockType1-v1320-IEs ::= SEQUENCE { + freqHoppingParametersDL-r13 SEQUENCE { + mpdcch-pdsch-HoppingNB-r13 ENUMERATED {nb2, nb4} OPTIONAL, -- Need OR + interval-DLHoppingConfigCommonModeA-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-r13 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL, -- Need OR + interval-DLHoppingConfigCommonModeB-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int2, int4, int8, int16}, + interval-TDD-r13 ENUMERATED { int5, int10, int20, int40} + } OPTIONAL, -- Need OR + mpdcch-pdsch-HoppingOffset-r13 INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL -- Need OR + } OPTIONAL, -- Cond Hopping + nonCriticalExtension SystemInformationBlockType1-v1350-IEs OPTIONAL +} + +SystemInformationBlockType1-v1350-IEs ::= SEQUENCE { + cellSelectionInfoCE1-r13 CellSelectionInfoCE1-r13 OPTIONAL, -- Need OP + nonCriticalExtension SystemInformationBlockType1-v1360-IEs OPTIONAL +} + +SystemInformationBlockType1-v1360-IEs ::= SEQUENCE { + cellSelectionInfoCE1-v1360 CellSelectionInfoCE1-v1360 OPTIONAL, -- Cond QrxlevminCE1 + nonCriticalExtension SystemInformationBlockType1-v1430-IEs OPTIONAL +} + +SystemInformationBlockType1-v1430-IEs ::= SEQUENCE { + eCallOverIMS-Support-r14 ENUMERATED {true} OPTIONAL, -- Need OR + tdd-Config-v1430 TDD-Config-v1430 OPTIONAL, -- Cond TDD-OR + cellAccessRelatedInfoList-r14 SEQUENCE (SIZE (1..maxPLMN-1-r14)) OF + CellAccessRelatedInfo-r14 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v1450-IEs OPTIONAL +} + +SystemInformationBlockType1-v1450-IEs ::= SEQUENCE { + tdd-Config-v1450 TDD-Config-v1450 OPTIONAL, -- Cond TDD-OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PLMN-IdentityList ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo + +PLMN-IdentityInfo ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellReservedForOperatorUse ENUMERATED {reserved, notReserved} +} + +SchedulingInfoList ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo + +SchedulingInfo ::= SEQUENCE { + si-Periodicity ENUMERATED { + rf8, rf16, rf32, rf64, rf128, rf256, rf512}, + sib-MappingInfo SIB-MappingInfo +} + +SchedulingInfoList-BR-r13 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo-BR-r13 + +SchedulingInfo-BR-r13 ::= SEQUENCE { + si-Narrowband-r13 INTEGER (1..maxAvailNarrowBands-r13), + si-TBS-r13 ENUMERATED {b152, b208, b256, b328, b408, b504, b600, b712, + b808, b936} +} + +SIB-MappingInfo ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type + +SIB-Type ::= ENUMERATED { + sibType3, sibType4, sibType5, sibType6, + sibType7, sibType8, sibType9, sibType10, + sibType11, sibType12-v920, sibType13-v920, + sibType14-v1130, sibType15-v1130, + sibType16-v1130, sibType17-v1250, sibType18-v1250, + ..., sibType19-v1250, sibType20-v1310, sibType21-v1430} + +SystemInfoValueTagList-r13 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SystemInfoValueTagSI-r13 + +SystemInfoValueTagSI-r13 ::= INTEGER (0..3) + +CellSelectionInfo-v920 ::= SEQUENCE { + q-QualMin-r9 Q-QualMin-r9, + q-QualMinOffset-r9 INTEGER (1..8) OPTIONAL -- Need OP +} + +CellSelectionInfo-v1130 ::= SEQUENCE { + q-QualMinWB-r11 Q-QualMin-r9 +} + +CellSelectionInfo-v1250 ::= SEQUENCE { + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 +} + +CellAccessRelatedInfo-r14 ::= SEQUENCE { + plmn-IdentityList-r14 PLMN-IdentityList, + trackingAreaCode-r14 TrackingAreaCode, + cellIdentity-r14 CellIdentity +} + + +SystemInformationBlockType1-MBMS-r14 ::= SEQUENCE { + cellAccessRelatedInfo-r14 SEQUENCE { + plmn-IdentityList-r14 PLMN-IdentityList-MBMS-r14, + trackingAreaCode-r14 TrackingAreaCode, + cellIdentity-r14 CellIdentity + }, + freqBandIndicator-r14 FreqBandIndicator-r11, + multiBandInfoList-r14 MultiBandInfoList-r11 OPTIONAL, -- Need OR + schedulingInfoList-MBMS-r14 SchedulingInfoList-MBMS-r14, + si-WindowLength-r14 ENUMERATED { + ms1, ms2, ms5, ms10, ms15, ms20,ms40, ms80}, + systemInfoValueTag-r14 INTEGER (0..31), + nonMBSFN-SubframeConfig-r14 NonMBSFN-SubframeConfig-r14 OPTIONAL, --Need OR + pdsch-ConfigCommon-r14 PDSCH-ConfigCommon, + systemInformationBlockType13-r14 SystemInformationBlockType13-r9 OPTIONAL, --Need OR + cellAccessRelatedInfoList-r14 SEQUENCE (SIZE (1..maxPLMN-1-r14)) OF + CellAccessRelatedInfo-r14 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PLMN-IdentityList-MBMS-r14 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-Identity + +SchedulingInfoList-MBMS-r14 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo-MBMS-r14 + +SchedulingInfo-MBMS-r14 ::= SEQUENCE { + si-Periodicity-r14 ENUMERATED { + rf16, rf32, rf64, rf128, rf256, rf512}, + sib-MappingInfo-r14 SIB-MappingInfo-MBMS-r14 +} + +SIB-MappingInfo-MBMS-r14 ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type-MBMS-r14 + +SIB-Type-MBMS-r14 ::= ENUMERATED { + sibType10, sibType11, sibType12-v920, sibType13-v920, + sibType15-v1130, sibType16-v1130, ...} + + +NonMBSFN-SubframeConfig-r14 ::= SEQUENCE { + radioFrameAllocationPeriod-r14 ENUMERATED {rf4, rf8, rf16, rf32, rf64, rf128, rf512}, + radioFrameAllocationOffset-r14 INTEGER (0..7), + subframeAllocation-r14 BIT STRING (SIZE(9)) +} + + +UEAssistanceInformation-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ueAssistanceInformation-r11 UEAssistanceInformation-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEAssistanceInformation-r11-IEs ::= SEQUENCE { + powerPrefIndication-r11 ENUMERATED {normal, lowPowerConsumption} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UEAssistanceInformation-v1430-IEs OPTIONAL +} + +UEAssistanceInformation-v1430-IEs ::= SEQUENCE { + bw-Preference-r14 BW-Preference-r14 OPTIONAL, + sps-AssistanceInformation-r14 SEQUENCE { + trafficPatternInfoListSL-r14 TrafficPatternInfoList-r14 OPTIONAL, + trafficPatternInfoListUL-r14 TrafficPatternInfoList-r14 OPTIONAL + } OPTIONAL, + rlm-Report-r14 SEQUENCE { + rlm-Event-r14 ENUMERATED {earlyOutOfSync, earlyInSync}, + excessRep-MPDCCH-r14 ENUMERATED {excessRep1, excessRep2} OPTIONAL + } OPTIONAL, delayBudgetReport-r14 DelayBudgetReport-r14 OPTIONAL, + nonCriticalExtension UEAssistanceInformation-v1450-IEs OPTIONAL +} + +UEAssistanceInformation-v1450-IEs ::= SEQUENCE { + overheatingAssistance-r14 OverheatingAssistance-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +BW-Preference-r14 ::= SEQUENCE { + dl-Preference-r14 ENUMERATED {mhz1dot4, mhz5, mhz20 } OPTIONAL, + ul-Preference-r14 ENUMERATED {mhz1dot4, mhz5} OPTIONAL +} + +TrafficPatternInfoList-r14 ::= SEQUENCE (SIZE (1..maxTrafficPattern-r14)) OF TrafficPatternInfo-r14 + +TrafficPatternInfo-r14 ::= SEQUENCE { + trafficPeriodicity-r14 ENUMERATED { + sf20, sf50, sf100, sf200, sf300, sf400, sf500, + sf600, sf700, sf800, sf900, sf1000}, + timingOffset-r14 INTEGER (0..10239), + priorityInfoSL-r14 SL-Priority-r13 OPTIONAL, + logicalChannelIdentityUL-r14 INTEGER (3..10) OPTIONAL, + messageSize-r14 BIT STRING (SIZE (6)) +} + +DelayBudgetReport-r14::= CHOICE { + type1 ENUMERATED { + msMinus1280, msMinus640, msMinus320, msMinus160, + msMinus80, msMinus60, msMinus40, msMinus20, ms0, ms20, ms40, ms60, ms80, ms160, ms320, ms640, ms1280}, + + type2 ENUMERATED { + msMinus192, msMinus168,msMinus144, msMinus120, + msMinus96, msMinus72, msMinus48, msMinus24, ms0, ms24, ms48, ms72, ms96, ms120, ms144, ms168, ms192} +} + +OverheatingAssistance-r14 ::= SEQUENCE { + reducedUE-Category SEQUENCE { + reducedUE-CategoryDL INTEGER (0..19), + reducedUE-CategoryUL INTEGER (0..21) + } OPTIONAL, + reducedMaxCCs SEQUENCE { + reducedCCsDL INTEGER (0..31), + reducedCCsUL INTEGER (0..31) + } OPTIONAL +} + + +UECapabilityEnquiry ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueCapabilityEnquiry-r8 UECapabilityEnquiry-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityEnquiry-r8-IEs ::= SEQUENCE { + ue-CapabilityRequest UE-CapabilityRequest, + nonCriticalExtension UECapabilityEnquiry-v8a0-IEs OPTIONAL +} + +UECapabilityEnquiry-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UECapabilityEnquiry-v1180-IEs OPTIONAL +} + +UECapabilityEnquiry-v1180-IEs ::= SEQUENCE { + requestedFrequencyBands-r11 SEQUENCE (SIZE (1..16)) OF FreqBandIndicator-r11 OPTIONAL, + nonCriticalExtension UECapabilityEnquiry-v1310-IEs OPTIONAL +} + +UECapabilityEnquiry-v1310-IEs ::= SEQUENCE { + requestReducedFormat-r13 ENUMERATED {true} OPTIONAL, -- Need ON + requestSkipFallbackComb-r13 ENUMERATED {true} OPTIONAL, -- Need ON + requestedMaxCCsDL-r13 INTEGER (2..32) OPTIONAL, -- Need ON + requestedMaxCCsUL-r13 INTEGER (2..32) OPTIONAL, -- Need ON + requestReducedIntNonContComb-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension UECapabilityEnquiry-v1430-IEs OPTIONAL +} + +UECapabilityEnquiry-v1430-IEs ::= SEQUENCE { + requestDiffFallbackCombList-r14 BandCombinationList-r14 OPTIONAL, -- Need ON + nonCriticalExtension UECapabilityEnquiry-v1510-IEs OPTIONAL +} + +UECapabilityEnquiry-v1510-IEs ::= SEQUENCE { + requestedFreqBandsNR-MRDC-r15 OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-CapabilityRequest ::= SEQUENCE (SIZE (1..maxRAT-Capabilities)) OF RAT-Type + + +UECapabilityInformation ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + ueCapabilityInformation-r8 UECapabilityInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityInformation-r8-IEs ::= SEQUENCE { + ue-CapabilityRAT-ContainerList UE-CapabilityRAT-ContainerList, + nonCriticalExtension UECapabilityInformation-v8a0-IEs OPTIONAL +} + +UECapabilityInformation-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UECapabilityInformation-v1250-IEs OPTIONAL +} + +UECapabilityInformation-v1250-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r12 UE-RadioPagingInfo-r12 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEInformationRequest-r9 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueInformationRequest-r9 UEInformationRequest-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEInformationRequest-r9-IEs ::= SEQUENCE { + rach-ReportReq-r9 BOOLEAN, + rlf-ReportReq-r9 BOOLEAN, + nonCriticalExtension UEInformationRequest-v930-IEs OPTIONAL +} + +UEInformationRequest-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UEInformationRequest-v1020-IEs OPTIONAL +} + +UEInformationRequest-v1020-IEs ::= SEQUENCE { + logMeasReportReq-r10 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension UEInformationRequest-v1130-IEs OPTIONAL +} + +UEInformationRequest-v1130-IEs ::= SEQUENCE { + connEstFailReportReq-r11 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension UEInformationRequest-v1250-IEs OPTIONAL +} + +UEInformationRequest-v1250-IEs ::= SEQUENCE { + mobilityHistoryReportReq-r12 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEInformationResponse-r9 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueInformationResponse-r9 UEInformationResponse-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEInformationResponse-r9-IEs ::= SEQUENCE { + rach-Report-r9 SEQUENCE { + numberOfPreamblesSent-r9 NumberOfPreamblesSent-r11, + contentionDetected-r9 BOOLEAN + } OPTIONAL, + rlf-Report-r9 RLF-Report-r9 OPTIONAL, + nonCriticalExtension UEInformationResponse-v930-IEs OPTIONAL +} + +-- Late non critical extensions +UEInformationResponse-v9e0-IEs ::= SEQUENCE { + rlf-Report-v9e0 RLF-Report-v9e0 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +UEInformationResponse-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING UEInformationResponse-v9e0-IEs) OPTIONAL, + nonCriticalExtension UEInformationResponse-v1020-IEs OPTIONAL +} + +UEInformationResponse-v1020-IEs ::= SEQUENCE { + logMeasReport-r10 LogMeasReport-r10 OPTIONAL, + nonCriticalExtension UEInformationResponse-v1130-IEs OPTIONAL +} + +UEInformationResponse-v1130-IEs ::= SEQUENCE { + connEstFailReport-r11 ConnEstFailReport-r11 OPTIONAL, + nonCriticalExtension UEInformationResponse-v1250-IEs OPTIONAL +} + +UEInformationResponse-v1250-IEs ::= SEQUENCE { + mobilityHistoryReport-r12 MobilityHistoryReport-r12 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RLF-Report-r9 ::= SEQUENCE { + measResultLastServCell-r9 SEQUENCE { + rsrpResult-r9 RSRP-Range, + rsrqResult-r9 RSRQ-Range OPTIONAL + }, + measResultNeighCells-r9 SEQUENCE { + measResultListEUTRA-r9 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r9 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r9 MeasResultListGERAN OPTIONAL, + measResultsCDMA2000-r9 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + ..., + [[ locationInfo-r10 LocationInfo-r10 OPTIONAL, + failedPCellId-r10 CHOICE { + cellGlobalId-r10 CellGlobalIdEUTRA, + pci-arfcn-r10 SEQUENCE { + physCellId-r10 PhysCellId, + carrierFreq-r10 ARFCN-ValueEUTRA + } + } OPTIONAL, + reestablishmentCellId-r10 CellGlobalIdEUTRA OPTIONAL, + timeConnFailure-r10 INTEGER (0..1023) OPTIONAL, + connectionFailureType-r10 ENUMERATED {rlf, hof} OPTIONAL, + previousPCellId-r10 CellGlobalIdEUTRA OPTIONAL + ]], + [[ failedPCellId-v1090 SEQUENCE { + carrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 + } OPTIONAL + ]], + [[ basicFields-r11 SEQUENCE { + c-RNTI-r11 C-RNTI, + rlf-Cause-r11 ENUMERATED { + t310-Expiry, randomAccessProblem, + rlc-MaxNumRetx, t312-Expiry-r12}, + timeSinceFailure-r11 TimeSinceFailure-r11 + } OPTIONAL, + previousUTRA-CellId-r11 SEQUENCE { + carrierFreq-r11 ARFCN-ValueUTRA, + physCellId-r11 CHOICE { + fdd-r11 PhysCellIdUTRA-FDD, + tdd-r11 PhysCellIdUTRA-TDD + }, + cellGlobalId-r11 CellGlobalIdUTRA OPTIONAL + } OPTIONAL, + selectedUTRA-CellId-r11 SEQUENCE { + carrierFreq-r11 ARFCN-ValueUTRA, + physCellId-r11 CHOICE { + fdd-r11 PhysCellIdUTRA-FDD, + tdd-r11 PhysCellIdUTRA-TDD + } + } OPTIONAL + ]], + [[ failedPCellId-v1250 SEQUENCE { + tac-FailedPCell-r12 TrackingAreaCode + } OPTIONAL, + measResultLastServCell-v1250 RSRQ-Range-v1250 OPTIONAL, + lastServCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL + ]], + [[ drb-EstablishedWithQCI-1-r13 ENUMERATED {qci1} OPTIONAL + ]], + [[ measResultLastServCell-v1360 RSRP-Range-v1360 OPTIONAL + ]] +} + +RLF-Report-v9e0 ::= SEQUENCE { + measResultListEUTRA-v9e0 MeasResultList2EUTRA-v9e0 +} + +MeasResultList2EUTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-r9 + +MeasResultList2EUTRA-v9e0 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v9e0 + +MeasResultList2EUTRA-v1250 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v1250 + +MeasResult2EUTRA-r9 ::= SEQUENCE { + carrierFreq-r9 ARFCN-ValueEUTRA, + measResultList-r9 MeasResultListEUTRA +} + +MeasResult2EUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL +} + +MeasResult2EUTRA-v1250 ::= SEQUENCE { + rsrq-Type-r12 RSRQ-Type-r12 OPTIONAL +} + +MeasResultList2UTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2UTRA-r9 + +MeasResult2UTRA-r9 ::= SEQUENCE { + carrierFreq-r9 ARFCN-ValueUTRA, + measResultList-r9 MeasResultListUTRA +} + +MeasResultList2CDMA2000-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2CDMA2000-r9 + +MeasResult2CDMA2000-r9 ::= SEQUENCE { + carrierFreq-r9 CarrierFreqCDMA2000, + measResultList-r9 MeasResultsCDMA2000 +} + +LogMeasReport-r10 ::= SEQUENCE { + absoluteTimeStamp-r10 AbsoluteTimeInfo-r10, + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + logMeasInfoList-r10 LogMeasInfoList-r10, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + ... +} + +LogMeasInfoList-r10 ::= SEQUENCE (SIZE (1..maxLogMeasReport-r10)) OF LogMeasInfo-r10 + +LogMeasInfo-r10 ::= SEQUENCE { + locationInfo-r10 LocationInfo-r10 OPTIONAL, + relativeTimeStamp-r10 INTEGER (0..7200), + servCellIdentity-r10 CellGlobalIdEUTRA, + measResultServCell-r10 SEQUENCE { + rsrpResult-r10 RSRP-Range, + rsrqResult-r10 RSRQ-Range + }, + measResultNeighCells-r10 SEQUENCE { + measResultListEUTRA-r10 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r10 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r10 MeasResultList2GERAN-r10 OPTIONAL, + measResultListCDMA2000-r10 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + ..., + [[ measResultListEUTRA-v1090 MeasResultList2EUTRA-v9e0 OPTIONAL + ]], + [[ measResultListMBSFN-r12 MeasResultListMBSFN-r12 OPTIONAL, + measResultServCell-v1250 RSRQ-Range-v1250 OPTIONAL, + servCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL + ]], + [[ inDeviceCoexDetected-r13 ENUMERATED {true} OPTIONAL + ]], + [[ measResultServCell-v1360 RSRP-Range-v1360 OPTIONAL + ]] +} + +MeasResultListMBSFN-r12 ::= SEQUENCE (SIZE (1..maxMBSFN-Area)) OF MeasResultMBSFN-r12 + +MeasResultMBSFN-r12 ::= SEQUENCE { + mbsfn-Area-r12 SEQUENCE { + mbsfn-AreaId-r12 MBSFN-AreaId-r12, + carrierFreq-r12 ARFCN-ValueEUTRA-r9 + }, + rsrpResultMBSFN-r12 RSRP-Range, + rsrqResultMBSFN-r12 MBSFN-RSRQ-Range-r12, + signallingBLER-Result-r12 BLER-Result-r12 OPTIONAL, + dataBLER-MCH-ResultList-r12 DataBLER-MCH-ResultList-r12 OPTIONAL, + ... +} + +DataBLER-MCH-ResultList-r12 ::= SEQUENCE (SIZE (1.. maxPMCH-PerMBSFN)) OF DataBLER-MCH-Result-r12 + +DataBLER-MCH-Result-r12 ::= SEQUENCE { + mch-Index-r12 INTEGER (1..maxPMCH-PerMBSFN), + dataBLER-Result-r12 BLER-Result-r12 +} + +BLER-Result-r12 ::= SEQUENCE { + bler-r12 BLER-Range-r12, + blocksReceived-r12 SEQUENCE { + n-r12 BIT STRING (SIZE (3)), + m-r12 BIT STRING (SIZE (8)) + } +} + +BLER-Range-r12 ::= INTEGER(0..31) + +MeasResultList2GERAN-r10 ::= SEQUENCE (SIZE (1..maxCellListGERAN)) OF MeasResultListGERAN + +ConnEstFailReport-r11 ::= SEQUENCE { + failedCellId-r11 CellGlobalIdEUTRA, + locationInfo-r11 LocationInfo-r10 OPTIONAL, + measResultFailedCell-r11 SEQUENCE { + rsrpResult-r11 RSRP-Range, + rsrqResult-r11 RSRQ-Range OPTIONAL + }, + measResultNeighCells-r11 SEQUENCE { + measResultListEUTRA-r11 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r11 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r11 MeasResultListGERAN OPTIONAL, + measResultsCDMA2000-r11 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + numberOfPreamblesSent-r11 NumberOfPreamblesSent-r11, + contentionDetected-r11 BOOLEAN, + maxTxPowerReached-r11 BOOLEAN, + timeSinceFailure-r11 TimeSinceFailure-r11, + measResultListEUTRA-v1130 MeasResultList2EUTRA-v9e0 OPTIONAL, + ..., + [[ measResultFailedCell-v1250 RSRQ-Range-v1250 OPTIONAL, + failedCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL + ]], + [[ measResultFailedCell-v1360 RSRP-Range-v1360 OPTIONAL + ]] +} + +NumberOfPreamblesSent-r11::= INTEGER (1..200) + +TimeSinceFailure-r11 ::= INTEGER (0..172800) + +MobilityHistoryReport-r12 ::= VisitedCellInfoList-r12 + + +ULHandoverPreparationTransfer ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulHandoverPreparationTransfer-r8 ULHandoverPreparationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULHandoverPreparationTransfer-r8-IEs ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + meid BIT STRING (SIZE (56)) OPTIONAL, + dedicatedInfo DedicatedInfoCDMA2000, + nonCriticalExtension ULHandoverPreparationTransfer-v8a0-IEs OPTIONAL +} + +ULHandoverPreparationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +ULInformationTransfer ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulInformationTransfer-r8 ULInformationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType CHOICE { + dedicatedInfoNAS DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000 + }, + nonCriticalExtension ULInformationTransfer-v8a0-IEs OPTIONAL +} + +ULInformationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +ULInformationTransferMRDC-r15 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulInformationTransferMRDC-r15 ULInformationTransferMRDC-r15-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULInformationTransferMRDC-r15-IEs ::= SEQUENCE { + ul-DCCH-MessageNR-r15 OCTET STRING OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +WLANConnectionStatusReport-r13 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + wlanConnectionStatusReport-r13 WLANConnectionStatusReport-r13-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +WLANConnectionStatusReport-r13-IEs ::= SEQUENCE { + wlan-Status-r13 WLAN-Status-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension WLANConnectionStatusReport-v1430-IEs OPTIONAL +} + +WLANConnectionStatusReport-v1430-IEs ::= SEQUENCE { + wlan-Status-v1430 WLAN-Status-v1430, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType2 ::= SEQUENCE { + ac-BarringInfo SEQUENCE { + ac-BarringForEmergency BOOLEAN, + ac-BarringForMO-Signalling AC-BarringConfig OPTIONAL, -- Need OP + ac-BarringForMO-Data AC-BarringConfig OPTIONAL -- Need OP + } OPTIONAL, -- Need OP + radioResourceConfigCommon RadioResourceConfigCommonSIB, + ue-TimersAndConstants UE-TimersAndConstants, + freqInfo SEQUENCE { + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission + }, + mbsfn-SubframeConfigList MBSFN-SubframeConfigList OPTIONAL, -- Need OR + timeAlignmentTimerCommon TimeAlignmentTimer, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType2-v8h0-IEs) OPTIONAL, + [[ ssac-BarringForMMTEL-Voice-r9 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Video-r9 AC-BarringConfig OPTIONAL -- Need OP + ]], + [[ ac-BarringForCSFB-r10 AC-BarringConfig OPTIONAL -- Need OP + ]], + [[ ac-BarringSkipForMMTELVoice-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVideo-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForSMS-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringPerPLMN-List-r12 AC-BarringPerPLMN-List-r12 OPTIONAL -- Need OP + ]], + [[ voiceServiceCauseIndication-r12 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ acdc-BarringForCommon-r13 ACDC-BarringForCommon-r13 OPTIONAL, -- Need OP + acdc-BarringPerPLMN-List-r13 ACDC-BarringPerPLMN-List-r13 OPTIONAL -- Need OP + ]], + [[ + udt-RestrictingForCommon-r13 UDT-Restricting-r13 OPTIONAL, -- Need OR + udt-RestrictingPerPLMN-List-r13 UDT-RestrictingPerPLMN-List-r13 OPTIONAL, -- Need OR + cIoT-EPS-OptimisationInfo-r13 CIOT-EPS-OptimisationInfo-r13 OPTIONAL, -- Need OP + useFullResumeID-r13 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ unicastFreqHoppingInd-r13 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL, -- Need OP + videoServiceCauseIndication-r14 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ plmn-InfoList-r15 PLMN-InfoList-r15 OPTIONAL -- Need OP + ]] +} + +SystemInformationBlockType2-v8h0-IEs ::= SEQUENCE { + multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType2-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType2-v9e0-IEs ::= SEQUENCE { + ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond ul-FreqMax + nonCriticalExtension SystemInformationBlockType2-v9i0-IEs OPTIONAL +} + +SystemInformationBlockType2-v9i0-IEs ::= SEQUENCE { +-- Following field is for any non-critical extensions from REL-9 + nonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType2-v10m0-IEs) OPTIONAL, + dummy SEQUENCE {} OPTIONAL +} + +SystemInformationBlockType2-v10m0-IEs ::= SEQUENCE { + freqInfo-v10l0 SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 + } OPTIONAL, + multiBandInfoList-v10l0 SEQUENCE (SIZE (1..maxMultiBands)) OF + AdditionalSpectrumEmission-v10l0 OPTIONAL, +-- Following field is for non-critical extensions from REL-10 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AC-BarringConfig ::= SEQUENCE { + ac-BarringFactor ENUMERATED { + p00, p05, p10, p15, p20, p25, p30, p40, + p50, p60, p70, p75, p80, p85, p90, p95}, + ac-BarringTime ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512}, + ac-BarringForSpecialAC BIT STRING (SIZE(5)) +} + +MBSFN-SubframeConfigList ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig + +MBSFN-SubframeConfigList-v1430 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig-v1430 + +AC-BarringPerPLMN-List-r12 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF AC-BarringPerPLMN-r12 + +AC-BarringPerPLMN-r12 ::= SEQUENCE { + plmn-IdentityIndex-r12 INTEGER (1..maxPLMN-r11), + ac-BarringInfo-r12 SEQUENCE { + ac-BarringForEmergency-r12 BOOLEAN, + ac-BarringForMO-Signalling-r12 AC-BarringConfig OPTIONAL, -- Need OP + ac-BarringForMO-Data-r12 AC-BarringConfig OPTIONAL -- Need OP + } OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVoice-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVideo-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForSMS-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringForCSFB-r12 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Voice-r12 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Video-r12 AC-BarringConfig OPTIONAL -- Need OP +} + +ACDC-BarringForCommon-r13 ::= SEQUENCE { + acdc-HPLMNonly-r13 BOOLEAN, + barringPerACDC-CategoryList-r13 BarringPerACDC-CategoryList-r13 +} + +ACDC-BarringPerPLMN-List-r13 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF ACDC-BarringPerPLMN-r13 + +ACDC-BarringPerPLMN-r13 ::= SEQUENCE { + plmn-IdentityIndex-r13 INTEGER (1..maxPLMN-r11), + acdc-OnlyForHPLMN-r13 BOOLEAN, + barringPerACDC-CategoryList-r13 BarringPerACDC-CategoryList-r13 +} + +BarringPerACDC-CategoryList-r13 ::= SEQUENCE (SIZE (1..maxACDC-Cat-r13)) OF BarringPerACDC-Category-r13 + +BarringPerACDC-Category-r13 ::= SEQUENCE { + acdc-Category-r13 INTEGER (1..maxACDC-Cat-r13), + acdc-BarringConfig-r13 SEQUENCE { + ac-BarringFactor-r13 ENUMERATED { + p00, p05, p10, p15, p20, p25, p30, p40, + p50, p60, p70, p75, p80, p85, p90, p95}, + ac-BarringTime-r13 ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512} + } OPTIONAL -- Need OP +} + +UDT-Restricting-r13 ::= SEQUENCE { + udt-Restricting-r13 ENUMERATED {true} OPTIONAL, --Need OR + udt-RestrictingTime-r13 ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512} OPTIONAL --Need OR +} + +UDT-RestrictingPerPLMN-List-r13 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF UDT-RestrictingPerPLMN-r13 + +UDT-RestrictingPerPLMN-r13 ::= SEQUENCE { + plmn-IdentityIndex-r13 INTEGER (1..maxPLMN-r11), + udt-Restricting-r13 UDT-Restricting-r13 OPTIONAL --Need OR +} + +CIOT-EPS-OptimisationInfo-r13 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF CIOT-OptimisationPLMN-r13 + +CIOT-OptimisationPLMN-r13::= SEQUENCE { + up-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, -- Need OP + cp-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, -- Need OP + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL -- Need OP +} + +PLMN-InfoList-r15 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-Info-r15 + +PLMN-Info-r15 ::= SEQUENCE { + upperLayerIndication-r15 ENUMERATED {true} OPTIONAL -- Need OR +} + + +SystemInformationBlockType3 ::= SEQUENCE { + cellReselectionInfoCommon SEQUENCE { + q-Hyst ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + speedStateReselectionPars SEQUENCE { + mobilityStateParameters MobilityStateParameters, + q-HystSF SEQUENCE { + sf-Medium ENUMERATED { + dB-6, dB-4, dB-2, dB0}, + sf-High ENUMERATED { + dB-6, dB-4, dB-2, dB0} + } + } OPTIONAL -- Need OP + }, + cellReselectionServingFreqInfo SEQUENCE { + s-NonIntraSearch ReselectionThreshold OPTIONAL, -- Need OP + threshServingLow ReselectionThreshold, + cellReselectionPriority CellReselectionPriority + }, + intraFreqCellReselectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + p-Max P-Max OPTIONAL, -- Need OP + s-IntraSearch ReselectionThreshold OPTIONAL, -- Need OP + allowedMeasBandwidth AllowedMeasBandwidth OPTIONAL, -- Need OP + presenceAntennaPort1 PresenceAntennaPort1, + neighCellConfig NeighCellConfig, + t-ReselectionEUTRA T-Reselection, + t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL -- Need OP + }, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType3-v10j0-IEs) OPTIONAL, + [[ s-IntraSearch-v920 SEQUENCE { + s-IntraSearchP-r9 ReselectionThreshold, + s-IntraSearchQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL, -- Need OP + s-NonIntraSearch-v920 SEQUENCE { + s-NonIntraSearchP-r9 ReselectionThreshold, + s-NonIntraSearchQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL, -- Need OP + q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP + threshServingLowQ-r9 ReselectionThresholdQ-r9 OPTIONAL -- Need OP + ]], + [[ q-QualMinWB-r11 Q-QualMin-r9 OPTIONAL -- Cond WB-RSRQ + ]], + [[ q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL -- Cond RSRQ + ]], + [[ cellReselectionServingFreqInfo-v1310 CellReselectionServingFreqInfo-v1310 OPTIONAL, -- Need OP + redistributionServingInfo-r13 RedistributionServingInfo-r13 OPTIONAL, --Need OR + cellSelectionInfoCE-r13 CellSelectionInfoCE-r13 OPTIONAL, -- Need OP + t-ReselectionEUTRA-CE-r13 T-ReselectionEUTRA-CE-r13 OPTIONAL -- Need OP + ]], + [[ cellSelectionInfoCE1-r13 CellSelectionInfoCE1-r13 OPTIONAL -- Need OP + ]], + [[ cellSelectionInfoCE1-v1360 CellSelectionInfoCE1-v1360 OPTIONAL -- Cond QrxlevminCE1 + ]], + [[ cellReselectionInfoCommon-v1460 CellReselectionInfoCommon-v1460 OPTIONAL -- Need OR + ]] +} + +RedistributionServingInfo-r13 ::= SEQUENCE { + redistributionFactorServing-r13 INTEGER(0..10), + redistributionFactorCell-r13 ENUMERATED{true} OPTIONAL, --Need OP + t360-r13 ENUMERATED {min4, min8, min16, min32,infinity, + spare3,spare2,spare1}, + redistrOnPagingOnly-r13 ENUMERATED {true} OPTIONAL --Need OP +} + +CellReselectionServingFreqInfo-v1310 ::= SEQUENCE { + cellReselectionSubPriority-r13 CellReselectionSubPriority-r13 +} + +-- Late non critical extensions +SystemInformationBlockType3-v10j0-IEs ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType3-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType3-v10l0-IEs ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CellReselectionInfoCommon-v1460 ::= SEQUENCE { + s-SearchDeltaP-r14 ENUMERATED {dB6, dB9, dB12, dB15} +} + + +SystemInformationBlockType4 ::= SEQUENCE { + intraFreqNeighCellList IntraFreqNeighCellList OPTIONAL, -- Need OR + intraFreqBlackCellList IntraFreqBlackCellList OPTIONAL, -- Need OR + csg-PhysCellIdRange PhysCellIdRange OPTIONAL, -- Cond CSG + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + +IntraFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellIntra)) OF IntraFreqNeighCellInfo + +IntraFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange, + ... +} + +IntraFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange + + +SystemInformationBlockType5 ::= SEQUENCE { + interFreqCarrierFreqList InterFreqCarrierFreqList, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType5-v8h0-IEs) OPTIONAL, + [[ interFreqCarrierFreqList-v1250 InterFreqCarrierFreqList-v1250 OPTIONAL, -- Need OR + interFreqCarrierFreqListExt-r12 InterFreqCarrierFreqListExt-r12 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqListExt-v1280 InterFreqCarrierFreqListExt-v1280 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqList-v1310 InterFreqCarrierFreqList-v1310 OPTIONAL, -- Need OR + interFreqCarrierFreqListExt-v1310 InterFreqCarrierFreqListExt-v1310 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqList-v1350 InterFreqCarrierFreqList-v1350 OPTIONAL, -- Need OR + interFreqCarrierFreqListExt-v1350 InterFreqCarrierFreqListExt-v1350 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqListExt-v1360 InterFreqCarrierFreqListExt-v1360 OPTIONAL -- Need OR + ]], + [[ scptm-FreqOffset-r14 INTEGER (1..8) OPTIONAL -- Need OP + ]], + [[ interFreqCarrierFreqList-v13a0 InterFreqCarrierFreqList-v13a0 OPTIONAL -- Need OR + ]] +} + +SystemInformationBlockType5-v8h0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v8h0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v8h0 OPTIONAL, -- Need OP + nonCriticalExtension SystemInformationBlockType5-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType5-v9e0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v9e0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType5-v10j0-IEs OPTIONAL +} + +SystemInformationBlockType5-v10j0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v10j0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType5-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType5-v10l0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v10l0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +InterFreqCarrierFreqList ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo + +InterFreqCarrierFreqList-v1250 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1250 + +InterFreqCarrierFreqList-v1310 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1310 + +InterFreqCarrierFreqList-v1350 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1350 + +InterFreqCarrierFreqList-v13a0 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1360 + +InterFreqCarrierFreqListExt-r12 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-r12 + +InterFreqCarrierFreqListExt-v1280 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v10j0 + +InterFreqCarrierFreqListExt-v1310 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1310 + +InterFreqCarrierFreqListExt-v1350 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1350 + +InterFreqCarrierFreqListExt-v1360 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v1360 + +InterFreqCarrierFreqInfo ::= SEQUENCE { + dl-CarrierFreq ARFCN-ValueEUTRA, + q-RxLevMin Q-RxLevMin, + p-Max P-Max OPTIONAL, -- Need OP + t-ReselectionEUTRA T-Reselection, + t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + allowedMeasBandwidth AllowedMeasBandwidth, + presenceAntennaPort1 PresenceAntennaPort1, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + neighCellConfig NeighCellConfig, + q-OffsetFreq Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList InterFreqNeighCellList OPTIONAL, -- Need OR + interFreqBlackCellList InterFreqBlackCellList OPTIONAL, -- Need OR + ..., + [[ q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP + threshX-Q-r9 SEQUENCE { + threshX-HighQ-r9 ReselectionThresholdQ-r9, + threshX-LowQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL -- Cond RSRQ + ]], + [[ q-QualMinWB-r11 Q-QualMin-r9 OPTIONAL -- Cond WB-RSRQ + ]] +} + +InterFreqCarrierFreqInfo-v8h0 ::= SEQUENCE { + multiBandInfoList MultiBandInfoList OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v9e0 ::= SEQUENCE { + dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond dl-FreqMax + multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v10j0 ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v10l0 ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v1250 ::= SEQUENCE { + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL -- Cond RSRQ2 +} + +InterFreqCarrierFreqInfo-r12 ::= SEQUENCE { + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9, + q-RxLevMin-r12 Q-RxLevMin, + p-Max-r12 P-Max OPTIONAL, -- Need OP + t-ReselectionEUTRA-r12 T-Reselection, + t-ReselectionEUTRA-SF-r12 SpeedStateScaleFactors OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + allowedMeasBandwidth-r12 AllowedMeasBandwidth, + presenceAntennaPort1-r12 PresenceAntennaPort1, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + neighCellConfig-r12 NeighCellConfig, + q-OffsetFreq-r12 Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList-r12 InterFreqNeighCellList OPTIONAL, -- Need OR + interFreqBlackCellList-r12 InterFreqBlackCellList OPTIONAL, -- Need OR + q-QualMin-r12 Q-QualMin-r9 OPTIONAL, -- Need OP + threshX-Q-r12 SEQUENCE { + threshX-HighQ-r12 ReselectionThresholdQ-r9, + threshX-LowQ-r12 ReselectionThresholdQ-r9 + } OPTIONAL, -- Cond RSRQ + q-QualMinWB-r12 Q-QualMin-r9 OPTIONAL, -- Cond WB-RSRQ + multiBandInfoList-r12 MultiBandInfoList-r11 OPTIONAL, -- Need OR + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL, -- Cond RSRQ2 +... +} + +InterFreqCarrierFreqInfo-v1310 ::= SEQUENCE { + cellReselectionSubPriority-r13 CellReselectionSubPriority-r13 OPTIONAL, -- Need OP + redistributionInterFreqInfo-r13 RedistributionInterFreqInfo-r13 OPTIONAL, --Need OP + cellSelectionInfoCE-r13 CellSelectionInfoCE-r13 OPTIONAL, -- Need OP + t-ReselectionEUTRA-CE-r13 T-ReselectionEUTRA-CE-r13 OPTIONAL -- Need OP +} + +InterFreqCarrierFreqInfo-v1350 ::= SEQUENCE { + cellSelectionInfoCE1-r13 CellSelectionInfoCE1-r13 OPTIONAL -- Need OP +} + +InterFreqCarrierFreqInfo-v1360 ::= SEQUENCE { + cellSelectionInfoCE1-v1360 CellSelectionInfoCE1-v1360 OPTIONAL -- Cond QrxlevminCE1 +} + +InterFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo + +InterFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange +} + +InterFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange + +RedistributionInterFreqInfo-r13 ::= SEQUENCE { + redistributionFactorFreq-r13 RedistributionFactor-r13 OPTIONAL, --Need OP + redistributionNeighCellList-r13 RedistributionNeighCellList-r13 OPTIONAL --Need OP +} + +RedistributionNeighCellList-r13 ::= SEQUENCE (SIZE (1..maxCellInter)) OF RedistributionNeighCell-r13 + +RedistributionNeighCell-r13 ::= SEQUENCE { + physCellId-r13 PhysCellId, + redistributionFactorCell-r13 RedistributionFactor-r13 +} + +RedistributionFactor-r13 ::= INTEGER(1..10) + + +SystemInformationBlockType6 ::= SEQUENCE { + carrierFreqListUTRA-FDD CarrierFreqListUTRA-FDD OPTIONAL, -- Need OR + carrierFreqListUTRA-TDD CarrierFreqListUTRA-TDD OPTIONAL, -- Need OR + t-ReselectionUTRA T-Reselection, + t-ReselectionUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType6-v8h0-IEs) OPTIONAL, + [[ carrierFreqListUTRA-FDD-v1250 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF + CarrierFreqInfoUTRA-v1250 OPTIONAL, -- Cond UTRA-FDD + carrierFreqListUTRA-TDD-v1250 SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF + CarrierFreqInfoUTRA-v1250 OPTIONAL, -- Cond UTRA-TDD + carrierFreqListUTRA-FDD-Ext-r12 CarrierFreqListUTRA-FDD-Ext-r12 OPTIONAL, -- Cond UTRA-FDD + carrierFreqListUTRA-TDD-Ext-r12 CarrierFreqListUTRA-TDD-Ext-r12 OPTIONAL -- Cond UTRA-TDD + ]] +} + +SystemInformationBlockType6-v8h0-IEs ::= SEQUENCE { + carrierFreqListUTRA-FDD-v8h0 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqInfoUTRA-FDD-v8h0 OPTIONAL, -- Cond UTRA-FDD + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CarrierFreqInfoUTRA-v1250 ::= SEQUENCE { + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL -- Need OP +} + +CarrierFreqListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqUTRA-FDD + +CarrierFreqUTRA-FDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + q-RxLevMin INTEGER (-60..-13), + p-MaxUTRA INTEGER (-50..33), + q-QualMin INTEGER (-24..0), + ..., + [[ threshX-Q-r9 SEQUENCE { + threshX-HighQ-r9 ReselectionThresholdQ-r9, + threshX-LowQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL -- Cond RSRQ + ]] +} + +CarrierFreqInfoUTRA-FDD-v8h0 ::= SEQUENCE { + multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL -- Need OR +} + +CarrierFreqListUTRA-FDD-Ext-r12 ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF + CarrierFreqUTRA-FDD-Ext-r12 + +CarrierFreqUTRA-FDD-Ext-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueUTRA, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + q-RxLevMin-r12 INTEGER (-60..-13), + p-MaxUTRA-r12 INTEGER (-50..33), + q-QualMin-r12 INTEGER (-24..0), + threshX-Q-r12 SEQUENCE { + threshX-HighQ-r12 ReselectionThresholdQ-r9, + threshX-LowQ-r12 ReselectionThresholdQ-r9 + } OPTIONAL, -- Cond RSRQ + multiBandInfoList-r12 SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL, -- Need OR + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ... +} + +CarrierFreqListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF CarrierFreqUTRA-TDD + +CarrierFreqUTRA-TDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + q-RxLevMin INTEGER (-60..-13), + p-MaxUTRA INTEGER (-50..33), + ... +} + +CarrierFreqListUTRA-TDD-Ext-r12 ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF + CarrierFreqUTRA-TDD-r12 + +CarrierFreqUTRA-TDD-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueUTRA, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + q-RxLevMin-r12 INTEGER (-60..-13), + p-MaxUTRA-r12 INTEGER (-50..33), + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ... +} + +FreqBandIndicator-UTRA-FDD ::= INTEGER (1..86) + + +SystemInformationBlockType7 ::= SEQUENCE { + t-ReselectionGERAN T-Reselection, + t-ReselectionGERAN-SF SpeedStateScaleFactors OPTIONAL, -- Need OR + carrierFreqsInfoList CarrierFreqsInfoListGERAN OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + +CarrierFreqsInfoListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF CarrierFreqsInfoGERAN + +CarrierFreqsInfoGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + commonInfo SEQUENCE { + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + ncc-Permitted BIT STRING (SIZE (8)), + q-RxLevMin INTEGER (0..45), + p-MaxGERAN INTEGER (0..39) OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold + }, + ... +} + + +SystemInformationBlockType8 ::= SEQUENCE { + systemTimeInfo SystemTimeInfoCDMA2000 OPTIONAL, -- Need OR + searchWindowSize INTEGER (0..15) OPTIONAL, -- Need OR + parametersHRPD SEQUENCE { + preRegistrationInfoHRPD PreRegistrationInfoHRPD, + cellReselectionParametersHRPD CellReselectionParametersCDMA2000 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + parameters1XRTT SEQUENCE { + csfb-RegistrationParam1XRTT CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP + longCodeState1XRTT BIT STRING (SIZE (42)) OPTIONAL, -- Need OR + cellReselectionParameters1XRTT CellReselectionParametersCDMA2000 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL, + [[ csfb-SupportForDualRxUEs-r9 BOOLEAN OPTIONAL, -- Need OR + cellReselectionParametersHRPD-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-HRPD + cellReselectionParameters1XRTT-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-1XRTT + csfb-RegistrationParam1XRTT-v920 CSFB-RegistrationParam1XRTT-v920 OPTIONAL, -- Cond REG-1XRTT + ac-BarringConfig1XRTT-r9 AC-BarringConfig1XRTT-r9 OPTIONAL -- Cond REG-1XRTT + ]], + [[ csfb-DualRxTxSupport-r10 ENUMERATED {true} OPTIONAL -- Cond REG-1XRTT + ]], + [[ sib8-PerPLMN-List-r11 SIB8-PerPLMN-List-r11 OPTIONAL -- Need OR + ]] +} + +CellReselectionParametersCDMA2000 ::= SEQUENCE { + bandClassList BandClassListCDMA2000, + neighCellList NeighCellListCDMA2000, + t-ReselectionCDMA2000 T-Reselection, + t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP +} + +CellReselectionParametersCDMA2000-r11 ::= SEQUENCE { + bandClassList BandClassListCDMA2000, + neighCellList-r11 SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-r11, + t-ReselectionCDMA2000 T-Reselection, + t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP +} + +CellReselectionParametersCDMA2000-v920 ::= SEQUENCE { + neighCellList-v920 NeighCellListCDMA2000-v920 +} + +NeighCellListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000 + +NeighCellCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + neighCellsPerFreqList NeighCellsPerBandclassListCDMA2000 +} + +NeighCellCDMA2000-r11 ::= SEQUENCE { + bandClass BandclassCDMA2000, + neighFreqInfoList-r11 SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-r11 +} + +NeighCellsPerBandclassListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000 + +NeighCellsPerBandclassCDMA2000 ::= SEQUENCE { + arfcn ARFCN-ValueCDMA2000, + physCellIdList PhysCellIdListCDMA2000 +} + +NeighCellsPerBandclassCDMA2000-r11 ::= SEQUENCE { + arfcn ARFCN-ValueCDMA2000, + physCellIdList-r11 SEQUENCE (SIZE (1..40)) OF PhysCellIdCDMA2000 +} + +NeighCellListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-v920 + +NeighCellCDMA2000-v920 ::= SEQUENCE { + neighCellsPerFreqList-v920 NeighCellsPerBandclassListCDMA2000-v920 +} + +NeighCellsPerBandclassListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-v920 + +NeighCellsPerBandclassCDMA2000-v920 ::= SEQUENCE { + physCellIdList-v920 PhysCellIdListCDMA2000-v920 +} + +PhysCellIdListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdCDMA2000 + +PhysCellIdListCDMA2000-v920 ::= SEQUENCE (SIZE (0..24)) OF PhysCellIdCDMA2000 + +BandClassListCDMA2000 ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassInfoCDMA2000 + +BandClassInfoCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High INTEGER (0..63), + threshX-Low INTEGER (0..63), + ... +} + +AC-BarringConfig1XRTT-r9 ::= SEQUENCE { + ac-Barring0to9-r9 INTEGER (0..63), + ac-Barring10-r9 INTEGER (0..7), + ac-Barring11-r9 INTEGER (0..7), + ac-Barring12-r9 INTEGER (0..7), + ac-Barring13-r9 INTEGER (0..7), + ac-Barring14-r9 INTEGER (0..7), + ac-Barring15-r9 INTEGER (0..7), + ac-BarringMsg-r9 INTEGER (0..7), + ac-BarringReg-r9 INTEGER (0..7), + ac-BarringEmg-r9 INTEGER (0..7) +} + +SIB8-PerPLMN-List-r11 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF SIB8-PerPLMN-r11 + +SIB8-PerPLMN-r11 ::= SEQUENCE { + plmn-Identity-r11 INTEGER (1..maxPLMN-r11), + parametersCDMA2000-r11 CHOICE { + explicitValue ParametersCDMA2000-r11, + defaultValue NULL + } +} + +ParametersCDMA2000-r11 ::= SEQUENCE { + systemTimeInfo-r11 CHOICE { + explicitValue SystemTimeInfoCDMA2000, + defaultValue NULL + } OPTIONAL, -- Need OR + searchWindowSize-r11 INTEGER (0..15), + parametersHRPD-r11 SEQUENCE { + preRegistrationInfoHRPD-r11 PreRegistrationInfoHRPD, + cellReselectionParametersHRPD-r11 CellReselectionParametersCDMA2000-r11 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + parameters1XRTT-r11 SEQUENCE { + csfb-RegistrationParam1XRTT-r11 CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP + csfb-RegistrationParam1XRTT-Ext-r11 CSFB-RegistrationParam1XRTT-v920 OPTIONAL, -- Cond REG-1XRTT-PerPLMN + longCodeState1XRTT-r11 BIT STRING (SIZE (42)) OPTIONAL, -- Cond PerPLMN-LC + cellReselectionParameters1XRTT-r11 CellReselectionParametersCDMA2000-r11 OPTIONAL, -- Need OR + ac-BarringConfig1XRTT-r11 AC-BarringConfig1XRTT-r9 OPTIONAL, -- Cond REG-1XRTT-PerPLMN + csfb-SupportForDualRxUEs-r11 BOOLEAN OPTIONAL, -- Need OR + csfb-DualRxTxSupport-r11 ENUMERATED {true} OPTIONAL -- Cond REG-1XRTT-PerPLMN + } OPTIONAL, -- Need OR + ... +} + + +SystemInformationBlockType9 ::= SEQUENCE { + hnb-Name OCTET STRING (SIZE(1..48)) OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType10 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningType OCTET STRING (SIZE (2)), + dummy OCTET STRING (SIZE (50)) OPTIONAL, -- Need OP + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType11 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningMessageSegmentType ENUMERATED {notLastSegment, lastSegment}, + warningMessageSegmentNumber INTEGER (0..63), + warningMessageSegment OCTET STRING, + dataCodingScheme OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType12-r9 ::= SEQUENCE { + messageIdentifier-r9 BIT STRING (SIZE (16)), + serialNumber-r9 BIT STRING (SIZE (16)), + warningMessageSegmentType-r9 ENUMERATED {notLastSegment, lastSegment}, + warningMessageSegmentNumber-r9 INTEGER (0..63), + warningMessageSegment-r9 OCTET STRING, + dataCodingScheme-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +SystemInformationBlockType13-r9 ::= SEQUENCE { + mbsfn-AreaInfoList-r9 MBSFN-AreaInfoList-r9, + notificationConfig-r9 MBMS-NotificationConfig-r9, + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ + notificationConfig-v1430 MBMS-NotificationConfig-v1430 OPTIONAL + ]] +} + + +SystemInformationBlockType14-r11 ::= SEQUENCE { + eab-Param-r11 CHOICE { + eab-Common-r11 EAB-Config-r11, + eab-PerPLMN-List-r11 SEQUENCE (SIZE (1..maxPLMN-r11)) OF EAB-ConfigPLMN-r11 + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +EAB-ConfigPLMN-r11 ::= SEQUENCE { + eab-Config-r11 EAB-Config-r11 OPTIONAL -- Need OR +} + +EAB-Config-r11 ::= SEQUENCE { + eab-Category-r11 ENUMERATED {a, b, c}, + eab-BarringBitmap-r11 BIT STRING (SIZE (10)) +} + + +SystemInformationBlockType15-r11 ::= SEQUENCE { + mbms-SAI-IntraFreq-r11 MBMS-SAI-List-r11 OPTIONAL, -- Need OR + mbms-SAI-InterFreqList-r11 MBMS-SAI-InterFreqList-r11 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ mbms-SAI-InterFreqList-v1140 MBMS-SAI-InterFreqList-v1140 OPTIONAL -- Cond InterFreq + ]], + [[ mbms-IntraFreqCarrierType-r14 MBMS-CarrierType-r14 OPTIONAL, -- Need OR + mbms-InterFreqCarrierTypeList-r14 + MBMS-InterFreqCarrierTypeList-r14 OPTIONAL -- Need OR + ]] +} + +MBMS-SAI-List-r11 ::= SEQUENCE (SIZE (1..maxSAI-MBMS-r11)) OF MBMS-SAI-r11 + +MBMS-SAI-r11 ::= INTEGER (0..65535) + +MBMS-SAI-InterFreqList-r11 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-r11 + +MBMS-SAI-InterFreqList-v1140 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-v1140 + +MBMS-SAI-InterFreq-r11 ::= SEQUENCE { + dl-CarrierFreq-r11 ARFCN-ValueEUTRA-r9, + mbms-SAI-List-r11 MBMS-SAI-List-r11 +} + +MBMS-SAI-InterFreq-v1140 ::= SEQUENCE { + multiBandInfoList-r11 MultiBandInfoList-r11 OPTIONAL -- Need OR +} + +MBMS-InterFreqCarrierTypeList-r14 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-CarrierType-r14 + +MBMS-CarrierType-r14 ::= SEQUENCE { + carrierType-r14 ENUMERATED {mbms, fembmsMixed, fembmsDedicated}, + frameOffset-r14 INTEGER (0..3) OPTIONAL -- Need OR +} + + +SystemInformationBlockType16-r11 ::= SEQUENCE { + timeInfo-r11 SEQUENCE { + timeInfoUTC-r11 INTEGER (0..549755813887), + dayLightSavingTime-r11 BIT STRING (SIZE (2)) OPTIONAL, -- Need OR + leapSeconds-r11 INTEGER (-127..128) OPTIONAL, -- Need OR + localTimeOffset-r11 INTEGER (-63..64) OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +SystemInformationBlockType17-r12 ::= SEQUENCE { + wlan-OffloadInfoPerPLMN-List-r12 SEQUENCE (SIZE (1..maxPLMN-r11)) OF + WLAN-OffloadInfoPerPLMN-r12 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +WLAN-OffloadInfoPerPLMN-r12 ::= SEQUENCE { + wlan-OffloadConfigCommon-r12 WLAN-OffloadConfig-r12 OPTIONAL, -- Need OR + wlan-Id-List-r12 WLAN-Id-List-r12 OPTIONAL, -- Need OR + ... +} + +WLAN-Id-List-r12 ::= SEQUENCE (SIZE (1..maxWLAN-Id-r12)) OF WLAN-Identifiers-r12 + +WLAN-Identifiers-r12 ::= SEQUENCE { + ssid-r12 OCTET STRING (SIZE (1..32)) OPTIONAL, -- Need OR + bssid-r12 OCTET STRING (SIZE (6)) OPTIONAL, -- Need OR + hessid-r12 OCTET STRING (SIZE (6)) OPTIONAL, -- Need OR + ... +} + + +SystemInformationBlockType18-r12 ::= SEQUENCE { + commConfig-r12 SEQUENCE { + commRxPool-r12 SL-CommRxPoolList-r12, + commTxPoolNormalCommon-r12 SL-CommTxPoolList-r12 OPTIONAL, -- Need OR + commTxPoolExceptional-r12 SL-CommTxPoolList-r12 OPTIONAL, -- Need OR + commSyncConfig-r12 SL-SyncConfigList-r12 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ commTxPoolNormalCommonExt-r13 SL-CommTxPoolListExt-r13 OPTIONAL, -- Need OR + commTxResourceUC-ReqAllowed-r13 ENUMERATED {true} OPTIONAL, -- Need OR + commTxAllowRelayCommon-r13 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + + +SystemInformationBlockType19-r12 ::= SEQUENCE { + discConfig-r12 SEQUENCE { + discRxPool-r12 SL-DiscRxPoolList-r12, + discTxPoolCommon-r12 SL-DiscTxPoolList-r12 OPTIONAL, -- Need OR + discTxPowerInfo-r12 SL-DiscTxPowerInfoList-r12 OPTIONAL, -- Cond Tx + discSyncConfig-r12 SL-SyncConfigList-r12 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + discInterFreqList-r12 SL-CarrierFreqInfoList-r12 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ discConfig-v1310 SEQUENCE { + discInterFreqList-v1310 SL-CarrierFreqInfoList-v1310 OPTIONAL, -- Need OR + gapRequestsAllowedCommon ENUMERATED {true} OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + discConfigRelay-r13 SEQUENCE { + relayUE-Config-r13 SL-DiscConfigRelayUE-r13, + remoteUE-Config-r13 SL-DiscConfigRemoteUE-r13 + } OPTIONAL, -- Need OR + discConfigPS-13 SEQUENCE { + discRxPoolPS-r13 SL-DiscRxPoolList-r12, + discTxPoolPS-Common-r13 SL-DiscTxPoolList-r12 OPTIONAL -- Need OR + } OPTIONAL -- Need OR + ]] +} + +SL-CarrierFreqInfoList-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-CarrierFreqInfo-r12 + +SL-CarrierFreqInfoList-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-CarrierFreqInfo-v1310 + +SL-CarrierFreqInfo-r12::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + plmn-IdentityList-r12 PLMN-IdentityList4-r12 OPTIONAL -- Need OP +} + +SL-DiscConfigRelayUE-r13 ::= SEQUENCE { + threshHigh-r13 RSRP-RangeSL4-r13 OPTIONAL, -- Need OR + threshLow-r13 RSRP-RangeSL4-r13 OPTIONAL, -- Need OR + hystMax-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf} OPTIONAL, -- Cond ThreshHigh + hystMin-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12} OPTIONAL -- Cond ThreshLow +} + +SL-DiscConfigRemoteUE-r13 ::= SEQUENCE { + threshHigh-r13 RSRP-RangeSL4-r13 OPTIONAL, -- Need OR + hystMax-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12} OPTIONAL, -- Cond ThreshHigh + reselectionInfoIC-r13 ReselectionInfoRelay-r13 +} + +ReselectionInfoRelay-r13 ::= SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + -- Note that the mapping of invidual values may be different for PC5, but the granularity/ + -- number of values is same as for Uu + filterCoefficient-r13 FilterCoefficient, + minHyst-r13 ENUMERATED {dB0, dB3, + dB6, dB9, dB12, dBinf} OPTIONAL -- Need OR +} + +SL-CarrierFreqInfo-v1310::= SEQUENCE { + discResourcesNonPS-r13 SL-ResourcesInterFreq-r13 OPTIONAL, -- Need OR + discResourcesPS-r13 SL-ResourcesInterFreq-r13 OPTIONAL, -- Need OR + discConfigOther-r13 SL-DiscConfigOtherInterFreq-r13 OPTIONAL, -- Need OR + ... +} + +PLMN-IdentityList4-r12 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo2-r12 + +PLMN-IdentityInfo2-r12 ::= CHOICE { + plmn-Index-r12 INTEGER (1..maxPLMN-r11), + plmnIdentity-r12 PLMN-Identity +} + +SL-DiscTxResourcesInterFreq-r13 ::= CHOICE { + acquireSI-FromCarrier-r13 NULL, + discTxPoolCommon-r13 SL-DiscTxPoolList-r12, + requestDedicated-r13 NULL, + noTxOnCarrier-r13 NULL +} + +SL-DiscConfigOtherInterFreq-r13::= SEQUENCE { + txPowerInfo-r13 SL-DiscTxPowerInfoList-r12 OPTIONAL, -- Cond Tx + refCarrierCommon-r13 ENUMERATED {pCell} OPTIONAL, -- Need OR + discSyncConfig-r13 SL-SyncConfigListNFreq-r13 OPTIONAL, -- Need OR + discCellSelectionInfo-r13 CellSelectionInfoNFreq-r13 OPTIONAL -- Need OR +} + +SL-ResourcesInterFreq-r13 ::= SEQUENCE { + discRxResourcesInterFreq-r13 SL-DiscRxPoolList-r12 OPTIONAL, -- Need OR + discTxResourcesInterFreq-r13 SL-DiscTxResourcesInterFreq-r13 OPTIONAL -- Need OR +} + + +SystemInformationBlockType20-r13 ::= SEQUENCE { + sc-mcch-RepetitionPeriod-r13 ENUMERATED {rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256}, + sc-mcch-Offset-r13 INTEGER (0..10), + sc-mcch-FirstSubframe-r13 INTEGER (0..9), + sc-mcch-duration-r13 INTEGER (2..9) OPTIONAL, + sc-mcch-ModificationPeriod-r13 ENUMERATED {rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256, + rf512, rf1024, r2048, rf4096, rf8192, rf16384, rf32768, rf65536}, + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ br-BCCH-Config-r14 SEQUENCE { + dummy ENUMERATED {rf1}, + dummy2 ENUMERATED {rf1}, + mpdcch-Narrowband-SC-MCCH-r14 INTEGER (1..maxAvailNarrowBands-r13), + mpdcch-NumRepetition-SC-MCCH-r14 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + mpdcch-StartSF-SC-MCCH-r14 CHOICE { + fdd-r14 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, + v5, v8, v10}, + tdd-r14 ENUMERATED {v1, v2, v4, v5, v8, v10, v20} + }, + mpdcch-PDSCH-HoppingConfig-SC-MCCH-r14 ENUMERATED {off, ce-ModeA, ce-ModeB}, + sc-mcch-CarrierFreq-r14 ARFCN-ValueEUTRA-r9, + sc-mcch-Offset-BR-r14 INTEGER (0..10), + sc-mcch-RepetitionPeriod-BR-r14 ENUMERATED {rf32, rf128, rf512, rf1024, + rf2048, rf4096, rf8192, rf16384}, + sc-mcch-ModificationPeriod-BR-r14 ENUMERATED { rf32, rf128, rf256, rf512, rf1024, + rf2048, rf4096, rf8192, rf16384, rf32768, + rf65536, rf131072, rf262144, rf524288, + rf1048576} + } OPTIONAL, -- Need OR + sc-mcch-SchedulingInfo-r14 SC-MCCH-SchedulingInfo-r14 OPTIONAL, -- Need OP + pdsch-maxNumRepetitionCEmodeA-SC-MTCH-r14 + ENUMERATED { r16, r32 } OPTIONAL, -- Need OR + pdsch-maxNumRepetitionCEmodeB-SC-MTCH-r14 + ENUMERATED { + r192, r256, r384, r512, r768, r1024, + r1536, r2048} OPTIONAL -- Need OR + ]], + [[ sc-mcch-RepetitionPeriod-v1470 ENUMERATED {rf1} OPTIONAL, -- Need OR + sc-mcch-ModificationPeriod-v1470 ENUMERATED {rf1} OPTIONAL -- Need OR + ]] + +} + +SC-MCCH-SchedulingInfo-r14::= SEQUENCE { + onDurationTimerSCPTM-r14 ENUMERATED {psf10, psf20, psf100, psf300, + psf500, psf1000, psf1200, psf1600}, + drx-InactivityTimerSCPTM-r14 ENUMERATED {psf0, psf1, psf2, psf4, psf8, psf16, + psf32, psf64, psf128, psf256, ps512, + psf1024, psf2048, psf4096, psf8192, psf16384}, + schedulingPeriodStartOffsetSCPTM-r14 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2047), + sf4096 INTEGER(0..4095), + sf8192 INTEGER(0..8191) + }, + ... +} + + +SystemInformationBlockType21-r14 ::= SEQUENCE { + sl-V2X-ConfigCommon-r14 SL-V2X-ConfigCommon-r14 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +SL-V2X-ConfigCommon-r14 ::= SEQUENCE { + v2x-CommRxPool-r14 SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolNormalCommon-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + p2x-CommTxPoolNormalCommon-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolExceptional-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-SyncConfig-r14 SL-SyncConfigListV2X-r14 OPTIONAL, -- Need OR + v2x-InterFreqInfoList-r14 SL-InterFreqInfoListV2X-r14 OPTIONAL, -- Need OR + v2x-ResourceSelectionConfig-r14 SL-CommTxPoolSensingConfig-r14 OPTIONAL, -- Need OR + zoneConfig-r14 SL-ZoneConfig-r14 OPTIONAL, -- Need OR + typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR + thresSL-TxPrioritization-r14 SL-Priority-r13 OPTIONAL, -- Need OR + anchorCarrierFreqList-r14 SL-AnchorCarrierFreqList-V2X-r14 OPTIONAL, -- Need OR + offsetDFN-r14 INTEGER (0..1000) OPTIONAL, -- Need OR + cbr-CommonTxConfigList-r14 SL-CBR-CommonTxConfigList-r14 OPTIONAL -- Need OR +} + + + +AntennaInfoCommon ::= SEQUENCE { + antennaPortsCount ENUMERATED {an1, an2, an4, spare1} +} + +AntennaInfoDedicated ::= SEQUENCE { + transmissionMode ENUMERATED { + tm1, tm2, tm3, tm4, tm5, tm6, + tm7, tm8-v920}, + codebookSubsetRestriction CHOICE { + n2TxAntenna-tm3 BIT STRING (SIZE (2)), + n4TxAntenna-tm3 BIT STRING (SIZE (4)), + n2TxAntenna-tm4 BIT STRING (SIZE (6)), + n4TxAntenna-tm4 BIT STRING (SIZE (64)), + n2TxAntenna-tm5 BIT STRING (SIZE (4)), + n4TxAntenna-tm5 BIT STRING (SIZE (16)), + n2TxAntenna-tm6 BIT STRING (SIZE (4)), + n4TxAntenna-tm6 BIT STRING (SIZE (16)) + } OPTIONAL, -- Cond TM + ue-TransmitAntennaSelection CHOICE{ + release NULL, + setup ENUMERATED {closedLoop, openLoop} + } +} + +AntennaInfoDedicated-v920 ::= SEQUENCE { + codebookSubsetRestriction-v920 CHOICE { + n2TxAntenna-tm8-r9 BIT STRING (SIZE (6)), + n4TxAntenna-tm8-r9 BIT STRING (SIZE (32)) + } OPTIONAL -- Cond TM8 +} + +AntennaInfoDedicated-r10 ::= SEQUENCE { + transmissionMode-r10 ENUMERATED { + tm1, tm2, tm3, tm4, tm5, tm6, tm7, tm8-v920, + tm9-v1020, tm10-v1130, spare6, spare5, spare4, + spare3, spare2, spare1}, + codebookSubsetRestriction-r10 BIT STRING OPTIONAL, -- Cond TMX + ue-TransmitAntennaSelection CHOICE{ + release NULL, + setup ENUMERATED {closedLoop, openLoop} + } +} + +AntennaInfoDedicated-v10i0::= SEQUENCE { + maxLayersMIMO-r10 ENUMERATED {twoLayers, fourLayers, eightLayers} OPTIONAL -- Need OR +} + +AntennaInfoDedicated-v1250 ::= SEQUENCE { + alternativeCodebookEnabledFor4TX-r12 BOOLEAN +} + +AntennaInfoDedicated-v1430 ::= SEQUENCE { + ce-UE-TxAntennaSelection-config-r14 ENUMERATED {on} OPTIONAL -- Need OR +} + + +AntennaInfoUL-r10 ::= SEQUENCE { + transmissionModeUL-r10 ENUMERATED {tm1, tm2, spare6, spare5, + spare4, spare3, spare2, spare1} OPTIONAL, -- Need OR + fourAntennaPortActivated-r10 ENUMERATED {setup} OPTIONAL -- Need OR +} + + +CQI-ReportAperiodic-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-ReportModeAperiodic-r10 CQI-ReportModeAperiodic, + aperiodicCSI-Trigger-r10 SEQUENCE { + trigger1-r10 BIT STRING (SIZE (8)), + trigger2-r10 BIT STRING (SIZE (8)) + } OPTIONAL -- Need OR + } +} + +CQI-ReportAperiodic-v1250 ::= CHOICE { + release NULL, + setup SEQUENCE { + aperiodicCSI-Trigger-v1250 SEQUENCE { + trigger-SubframeSetIndicator-r12 ENUMERATED {s1, s2}, + trigger1-SubframeSetIndicator-r12 BIT STRING (SIZE (8)), + trigger2-SubframeSetIndicator-r12 BIT STRING (SIZE (8)) + } + } +} + +CQI-ReportAperiodic-v1310 ::= CHOICE { + release NULL, + setup SEQUENCE { + aperiodicCSI-Trigger-v1310 SEQUENCE { + trigger1-r13 BIT STRING (SIZE (32)), + trigger2-r13 BIT STRING (SIZE (32)), + trigger3-r13 BIT STRING (SIZE (32)), + trigger4-r13 BIT STRING (SIZE (32)), + trigger5-r13 BIT STRING (SIZE (32)), + trigger6-r13 BIT STRING (SIZE (32)) + } OPTIONAL, -- Need ON + aperiodicCSI-Trigger2-r13 CHOICE { + release NULL, + setup SEQUENCE { + trigger1-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger2-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger3-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger4-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger5-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger6-SubframeSetIndicator-r13 BIT STRING (SIZE (32)) + } + } OPTIONAL -- Need ON + } +} + +CQI-ReportAperiodicProc-r11 ::= SEQUENCE { + cqi-ReportModeAperiodic-r11 CQI-ReportModeAperiodic, + trigger01-r11 BOOLEAN, + trigger10-r11 BOOLEAN, + trigger11-r11 BOOLEAN +} + +CQI-ReportAperiodicProc-v1310 ::= SEQUENCE { + trigger001-r13 BOOLEAN, + trigger010-r13 BOOLEAN, + trigger011-r13 BOOLEAN, + trigger100-r13 BOOLEAN, + trigger101-r13 BOOLEAN, + trigger110-r13 BOOLEAN, + trigger111-r13 BOOLEAN +} + +CQI-ReportAperiodicHybrid-r14 ::= SEQUENCE { + triggers-r14 CHOICE { + oneBit-r14 SEQUENCE { + trigger1-Indicator-r14 BIT STRING (SIZE (8)) + }, + twoBit-r14 SEQUENCE { + trigger01-Indicator-r14 BIT STRING (SIZE (8)), + trigger10-Indicator-r14 BIT STRING (SIZE (8)), + trigger11-Indicator-r14 BIT STRING (SIZE (8)) + }, + threeBit-r14 SEQUENCE { + trigger001-Indicator-r14 BIT STRING (SIZE (32)), + trigger010-Indicator-r14 BIT STRING (SIZE (32)), + trigger011-Indicator-r14 BIT STRING (SIZE (32)), + trigger100-Indicator-r14 BIT STRING (SIZE (32)) , + trigger101-Indicator-r14 BIT STRING (SIZE (32)), + trigger110-Indicator-r14 BIT STRING (SIZE (32)), + trigger111-Indicator-r14 BIT STRING (SIZE (32)) + } + } OPTIONAL -- Need OR +} + +CQI-ReportModeAperiodic ::= ENUMERATED { + rm12, rm20, rm22, rm30, rm31, + rm32-v1250, rm10-v1310, rm11-v1310 +} + + +CQI-ReportBoth-r11 ::= SEQUENCE { + csi-IM-ConfigToReleaseList-r11 CSI-IM-ConfigToReleaseList-r11 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModList-r11 CSI-IM-ConfigToAddModList-r11 OPTIONAL, -- Need ON + csi-ProcessToReleaseList-r11 CSI-ProcessToReleaseList-r11 OPTIONAL, -- Need ON + csi-ProcessToAddModList-r11 CSI-ProcessToAddModList-r11 OPTIONAL -- Need ON +} + +CQI-ReportBoth-v1250 ::= SEQUENCE { + csi-IM-ConfigToReleaseListExt-r12 CSI-IM-ConfigId-v1250 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModListExt-r12 CSI-IM-ConfigExt-r12 OPTIONAL -- Need ON +} + +CQI-ReportBoth-v1310 ::= SEQUENCE { + csi-IM-ConfigToReleaseListExt-r13 CSI-IM-ConfigToReleaseListExt-r13 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModListExt-r13 CSI-IM-ConfigToAddModListExt-r13 OPTIONAL -- Need ON +} + +CSI-IM-ConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-Config-r11 + +CSI-IM-ConfigToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-IM-v1310)) OF CSI-IM-ConfigExt-r12 + +CSI-IM-ConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-ConfigId-r11 + +CSI-IM-ConfigToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-IM-v1310)) OF CSI-IM-ConfigId-v1310 + +CSI-ProcessToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF CSI-Process-r11 + +CSI-ProcessToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF CSI-ProcessId-r11 + +CQI-ReportBothProc-r11 ::= SEQUENCE { + ri-Ref-CSI-ProcessId-r11 CSI-ProcessId-r11 OPTIONAL, -- Need OR + pmi-RI-Report-r11 ENUMERATED {setup} OPTIONAL -- Need OR +} + + +CQI-ReportConfig ::= SEQUENCE { + cqi-ReportModeAperiodic CQI-ReportModeAperiodic OPTIONAL, -- Need OR + nomPDSCH-RS-EPRE-Offset INTEGER (-1..6), + cqi-ReportPeriodic CQI-ReportPeriodic OPTIONAL -- Need ON +} + +CQI-ReportConfig-v920 ::= SEQUENCE { + cqi-Mask-r9 ENUMERATED {setup} OPTIONAL, -- Cond cqi-Setup + pmi-RI-Report-r9 ENUMERATED {setup} OPTIONAL -- Cond PMIRI +} + +CQI-ReportConfig-r10 ::= SEQUENCE { + cqi-ReportAperiodic-r10 CQI-ReportAperiodic-r10 OPTIONAL, -- Need ON + nomPDSCH-RS-EPRE-Offset INTEGER (-1..6), + cqi-ReportPeriodic-r10 CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON + pmi-RI-Report-r9 ENUMERATED {setup} OPTIONAL, -- Cond PMIRIPCell + csi-SubframePatternConfig-r10 CHOICE { + release NULL, + setup SEQUENCE { + csi-MeasSubframeSet1-r10 MeasSubframePattern-r10, + csi-MeasSubframeSet2-r10 MeasSubframePattern-r10 + } + } OPTIONAL -- Need ON +} + +CQI-ReportConfig-v1130 ::= SEQUENCE { + cqi-ReportPeriodic-v1130 CQI-ReportPeriodic-v1130, + cqi-ReportBoth-r11 CQI-ReportBoth-r11 +} + +CQI-ReportConfig-v1250 ::= SEQUENCE { + csi-SubframePatternConfig-r12 CHOICE { + release NULL, + setup SEQUENCE { + csi-MeasSubframeSets-r12 BIT STRING (SIZE (10)) + } + } OPTIONAL, -- Need ON + cqi-ReportBoth-v1250 CQI-ReportBoth-v1250 OPTIONAL, -- Need ON + cqi-ReportAperiodic-v1250 CQI-ReportAperiodic-v1250 OPTIONAL, -- Need ON + altCQI-Table-r12 ENUMERATED { + allSubframes, csi-SubframeSet1, + csi-SubframeSet2, spare1} OPTIONAL -- Need OP +} + +CQI-ReportConfig-v1310 ::= SEQUENCE { + cqi-ReportBoth-v1310 CQI-ReportBoth-v1310 OPTIONAL, -- Need ON + cqi-ReportAperiodic-v1310 CQI-ReportAperiodic-v1310 OPTIONAL, -- Need ON + cqi-ReportPeriodic-v1310 CQI-ReportPeriodic-v1310 OPTIONAL -- Need ON +} + +CQI-ReportConfig-v1320 ::= SEQUENCE { + cqi-ReportPeriodic-v1320 CQI-ReportPeriodic-v1320 OPTIONAL -- Need ON +} + +CQI-ReportConfig-v1430 ::= SEQUENCE { + cqi-ReportAperiodicHybrid-r14 CQI-ReportAperiodicHybrid-r14 OPTIONAL -- Need ON +} + +CQI-ReportConfigSCell-r10 ::= SEQUENCE { + cqi-ReportModeAperiodic-r10 CQI-ReportModeAperiodic OPTIONAL, -- Need OR + nomPDSCH-RS-EPRE-Offset-r10 INTEGER (-1..6), + cqi-ReportPeriodicSCell-r10 CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON + pmi-RI-Report-r10 ENUMERATED {setup} OPTIONAL -- Cond PMIRISCell +} + + + +CQI-ReportPeriodic ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-PUCCH-ResourceIndex INTEGER (0..1185), + cqi-pmi-ConfigIndex INTEGER (0..1023), + cqi-FormatIndicatorPeriodic CHOICE { + widebandCQI NULL, + subbandCQI SEQUENCE { + k INTEGER (1..4) + } + }, + ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR + simultaneousAckNackAndCQI BOOLEAN + } +} + +CQI-ReportPeriodic-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-PUCCH-ResourceIndex-r10 INTEGER (0..1184), + cqi-PUCCH-ResourceIndexP1-r10 INTEGER (0..1184) OPTIONAL, -- Need OR + cqi-pmi-ConfigIndex INTEGER (0..1023), + cqi-FormatIndicatorPeriodic-r10 CHOICE { + widebandCQI-r10 SEQUENCE { + csi-ReportMode-r10 ENUMERATED {submode1, submode2} OPTIONAL -- Need OR + }, + subbandCQI-r10 SEQUENCE { + k INTEGER (1..4), + periodicityFactor-r10 ENUMERATED {n2, n4} + } + }, + ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR + simultaneousAckNackAndCQI BOOLEAN, + cqi-Mask-r9 ENUMERATED {setup} OPTIONAL, -- Need OR + csi-ConfigIndex-r10 CHOICE { + release NULL, + setup SEQUENCE { + cqi-pmi-ConfigIndex2-r10 INTEGER (0..1023), + ri-ConfigIndex2-r10 INTEGER (0..1023) OPTIONAL -- Need OR + } + } OPTIONAL -- Need ON + } +} + + +CQI-ReportPeriodic-v1130 ::= SEQUENCE { + simultaneousAckNackAndCQI-Format3-r11 ENUMERATED {setup} OPTIONAL, -- Need OR + cqi-ReportPeriodicProcExtToReleaseList-r11 CQI-ReportPeriodicProcExtToReleaseList-r11 OPTIONAL, -- Need ON + cqi-ReportPeriodicProcExtToAddModList-r11 CQI-ReportPeriodicProcExtToAddModList-r11 OPTIONAL -- Need ON +} + +CQI-ReportPeriodic-v1310 ::= SEQUENCE { + cri-ReportConfig-r13 CRI-ReportConfig-r13 OPTIONAL, -- Need OR + simultaneousAckNackAndCQI-Format4-Format5-r13 ENUMERATED {setup} OPTIONAL-- Need OR +} + +CQI-ReportPeriodic-v1320 ::= SEQUENCE { + periodicityFactorWB-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR +} + +CQI-ReportPeriodicProcExtToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCQI-ProcExt-r11)) OF CQI-ReportPeriodicProcExt-r11 + +CQI-ReportPeriodicProcExtToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCQI-ProcExt-r11)) OF CQI-ReportPeriodicProcExtId-r11 + +CQI-ReportPeriodicProcExt-r11 ::= SEQUENCE { + cqi-ReportPeriodicProcExtId-r11 CQI-ReportPeriodicProcExtId-r11, + cqi-pmi-ConfigIndex-r11 INTEGER (0..1023), + cqi-FormatIndicatorPeriodic-r11 CHOICE { + widebandCQI-r11 SEQUENCE { + csi-ReportMode-r11 ENUMERATED {submode1, submode2} OPTIONAL -- Need OR + }, + subbandCQI-r11 SEQUENCE { + k INTEGER (1..4), + periodicityFactor-r11 ENUMERATED {n2, n4} + } + }, + ri-ConfigIndex-r11 INTEGER (0..1023) OPTIONAL, -- Need OR + csi-ConfigIndex-r11 CHOICE { + release NULL, + setup SEQUENCE { + cqi-pmi-ConfigIndex2-r11 INTEGER (0..1023), + ri-ConfigIndex2-r11 INTEGER (0..1023) OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + ..., + [[ cri-ReportConfig-r13 CRI-ReportConfig-r13 OPTIONAL -- Need ON + ]], + [[ periodicityFactorWB-r13 ENUMERATED {n2, n4} OPTIONAL -- Need ON + ]] +} + +CRI-ReportConfig-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + cri-ConfigIndex-r13 CRI-ConfigIndex-r13, + cri-ConfigIndex2-r13 CRI-ConfigIndex-r13 OPTIONAL -- Need OR + } +} + +CRI-ConfigIndex-r13 ::= INTEGER (0..1023) + + +CQI-ReportPeriodicProcExtId-r11 ::= INTEGER (1..maxCQI-ProcExt-r11) + + +CrossCarrierSchedulingConfig-r10 ::= SEQUENCE { + schedulingCellInfo-r10 CHOICE { + own-r10 SEQUENCE { -- No cross carrier scheduling + cif-Presence-r10 BOOLEAN + }, + other-r10 SEQUENCE { -- Cross carrier scheduling + schedulingCellId-r10 ServCellIndex-r10, + pdsch-Start-r10 INTEGER (1..4) + } + } +} + +CrossCarrierSchedulingConfig-r13 ::= SEQUENCE { + schedulingCellInfo-r13 CHOICE { + own-r13 SEQUENCE { -- No cross carrier scheduling + cif-Presence-r13 BOOLEAN + }, + other-r13 SEQUENCE { -- Cross carrier scheduling + schedulingCellId-r13 ServCellIndex-r13, + pdsch-Start-r13 INTEGER (1..4), + cif-InSchedulingCell-r13 INTEGER (1..7) + } + } +} + +CrossCarrierSchedulingConfigLAA-UL-r14 ::= SEQUENCE { + schedulingCellId-r14 ServCellIndex-r13, + cif-InSchedulingCell-r14 INTEGER (1..7) +} + +CSI-IM-Config-r11 ::= SEQUENCE { + csi-IM-ConfigId-r11 CSI-IM-ConfigId-r11, + resourceConfig-r11 INTEGER (0..31), + subframeConfig-r11 INTEGER (0..154), + ..., + [[ interferenceMeasRestriction-r13 BOOLEAN OPTIONAL -- Need ON + ]] +} + +CSI-IM-ConfigExt-r12 ::= SEQUENCE { + csi-IM-ConfigId-v1250 CSI-IM-ConfigId-v1250, + resourceConfig-r12 INTEGER (0..31), + subframeConfig-r12 INTEGER (0..154), + ..., + [[ interferenceMeasRestriction-r13 BOOLEAN OPTIONAL, -- Need ON + csi-IM-ConfigId-v1310 CSI-IM-ConfigId-v1310 OPTIONAL -- Need ON + ]] +} + + +CSI-IM-ConfigId-r11 ::= INTEGER (1..maxCSI-IM-r11) +CSI-IM-ConfigId-r12 ::= INTEGER (1..maxCSI-IM-r12) +CSI-IM-ConfigId-v1250 ::= INTEGER (maxCSI-IM-r12) +CSI-IM-ConfigId-v1310 ::= INTEGER (minCSI-IM-r13..maxCSI-IM-r13) +CSI-IM-ConfigId-r13 ::= INTEGER (1..maxCSI-IM-r13) + + +CSI-Process-r11 ::= SEQUENCE { + csi-ProcessId-r11 CSI-ProcessId-r11, + csi-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11, + csi-IM-ConfigId-r11 CSI-IM-ConfigId-r11, + p-C-AndCBSRList-r11 P-C-AndCBSR-Pair-r13a, + cqi-ReportBothProc-r11 CQI-ReportBothProc-r11 OPTIONAL, -- Need OR + cqi-ReportPeriodicProcId-r11 INTEGER (0..maxCQI-ProcExt-r11) OPTIONAL, -- Need OR + cqi-ReportAperiodicProc-r11 CQI-ReportAperiodicProc-r11 OPTIONAL, -- Need OR + ..., + [[ alternativeCodebookEnabledFor4TXProc-r12 ENUMERATED {true} OPTIONAL, -- Need ON + csi-IM-ConfigIdList-r12 CHOICE { + release NULL, + setup SEQUENCE (SIZE (1..2)) OF CSI-IM-ConfigId-r12 + } OPTIONAL, -- Need ON + cqi-ReportAperiodicProc2-r12 CHOICE { + release NULL, + setup CQI-ReportAperiodicProc-r11 + } OPTIONAL -- Need ON + ]], + [[ cqi-ReportAperiodicProc-v1310 CHOICE { + release NULL, + setup CQI-ReportAperiodicProc-v1310 + } OPTIONAL, -- Need ON + cqi-ReportAperiodicProc2-v1310 CHOICE { + release NULL, + setup CQI-ReportAperiodicProc-v1310 + } OPTIONAL, -- Need ON + eMIMO-Type-r13 CSI-RS-ConfigEMIMO-r13 OPTIONAL -- Need ON + ]], + [[ eMIMO-Type-v1430 CSI-RS-ConfigEMIMO-v1430 OPTIONAL, -- Need ON + eMIMO-Hybrid-r14 CSI-RS-ConfigEMIMO-Hybrid-r14 OPTIONAL, -- Need ON + advancedCodebookEnabled-r14 BOOLEAN OPTIONAL -- Need ON + ]] +} + + +CSI-ProcessId-r11 ::= INTEGER (1..maxCSI-Proc-r11) + + +CSI-RS-Config-r10 ::= SEQUENCE { + csi-RS-r10 CHOICE { + release NULL, + setup SEQUENCE { + antennaPortsCount-r10 ENUMERATED {an1, an2, an4, an8}, + resourceConfig-r10 INTEGER (0..31), + subframeConfig-r10 INTEGER (0..154), + p-C-r10 INTEGER (-8..15) + } + } OPTIONAL, -- Need ON + zeroTxPowerCSI-RS-r10 ZeroTxPowerCSI-RS-Conf-r12 OPTIONAL -- Need ON +} + +CSI-RS-Config-v1250 ::= SEQUENCE { + zeroTxPowerCSI-RS2-r12 ZeroTxPowerCSI-RS-Conf-r12 OPTIONAL, -- Need ON + ds-ZeroTxPowerCSI-RS-r12 CHOICE { + release NULL, + setup SEQUENCE { + zeroTxPowerCSI-RS-List-r12 SEQUENCE (SIZE (1..maxDS-ZTP-CSI-RS-r12)) OF ZeroTxPowerCSI-RS-r12 + } + } OPTIONAL -- Need ON +} + +CSI-RS-Config-v1310 ::= SEQUENCE { + eMIMO-Type-r13 CSI-RS-ConfigEMIMO-r13 OPTIONAL -- Need ON +} + +CSI-RS-Config-v1430 ::= SEQUENCE { + eMIMO-Type-v1430 CSI-RS-ConfigEMIMO-v1430 OPTIONAL, -- Need ON + eMIMO-Hybrid-r14 CSI-RS-ConfigEMIMO-Hybrid-r14 OPTIONAL, -- Need ON + advancedCodebookEnabled-r14 BOOLEAN OPTIONAL -- Need ON +} + +ZeroTxPowerCSI-RS-Conf-r12 ::= CHOICE { + release NULL, + setup ZeroTxPowerCSI-RS-r12 +} + +ZeroTxPowerCSI-RS-r12 ::= SEQUENCE { + zeroTxPowerResourceConfigList-r12 BIT STRING (SIZE (16)), + zeroTxPowerSubframeConfig-r12 INTEGER (0..154) +} + + +CSI-RS-ConfigBeamformed-r13 ::= SEQUENCE { + csi-RS-ConfigNZPIdListExt-r13 SEQUENCE (SIZE (1..7)) OF CSI-RS-ConfigNZPId-r13 OPTIONAL, -- Need OR + csi-IM-ConfigIdList-r13 SEQUENCE (SIZE (1..8)) OF CSI-IM-ConfigId-r13 OPTIONAL, -- Need OR + p-C-AndCBSR-PerResourceConfigList-r13 SEQUENCE (SIZE (1..8)) OF P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR + ace-For4Tx-PerResourceConfigList-r13 SEQUENCE (SIZE (1..7)) OF BOOLEAN OPTIONAL, -- Need OR + alternativeCodebookEnabledBeamformed-r13 ENUMERATED {true} OPTIONAL, -- Need OR + channelMeasRestriction-r13 ENUMERATED {on} OPTIONAL -- Need OR +} + +CSI-RS-ConfigBeamformed-r14 ::= SEQUENCE { + csi-RS-ConfigNZPIdListExt-r14 SEQUENCE (SIZE (1..7)) OF CSI-RS-ConfigNZPId-r13 OPTIONAL, -- Need OR + csi-IM-ConfigIdList-r14 SEQUENCE (SIZE (1..8)) OF CSI-IM-ConfigId-r13 OPTIONAL, -- Need OR + p-C-AndCBSR-PerResourceConfigList-r14 SEQUENCE (SIZE (1..8)) OF P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR + ace-For4Tx-PerResourceConfigList-r14 SEQUENCE (SIZE (1..7)) OF BOOLEAN OPTIONAL, -- Need OR + alternativeCodebookEnabledBeamformed-r14 ENUMERATED {true} OPTIONAL, -- Need OR + channelMeasRestriction-r14 ENUMERATED {on} OPTIONAL, -- Need OR + csi-RS-ConfigNZP-ApList-r14 SEQUENCE (SIZE (1..8)) OF CSI-RS-ConfigNZP-r11 + OPTIONAL, -- Need OR + nzp-ResourceConfigOriginal-v1430 CSI-RS-Config-NZP-v1430 OPTIONAL, -- Need OR + csi-RS-NZP-Activation-r14 CSI-RS-ConfigNZP-Activation-r14 OPTIONAL -- Need OR +} + +CSI-RS-ConfigBeamformed-v1430::= SEQUENCE { + csi-RS-ConfigNZP-ApList-r14 SEQUENCE (SIZE (1..8)) OF CSI-RS-ConfigNZP-r11 + OPTIONAL, -- Need OR + nzp-ResourceConfigOriginal-v1430 CSI-RS-Config-NZP-v1430 OPTIONAL, -- Need OR + csi-RS-NZP-Activation-r14 CSI-RS-ConfigNZP-Activation-r14 OPTIONAL -- Need OR +} + +CSI-RS-Config-NZP-v1430::= SEQUENCE { + transmissionComb-r14 NZP-TransmissionComb-r14 OPTIONAL, -- Need OR + frequencyDensity-r14 NZP-FrequencyDensity-r14 OPTIONAL -- Need OR +} + +CSI-RS-ConfigNZP-Activation-r14::= SEQUENCE { + csi-RS-NZP-mode-r14 ENUMERATED {semiPersistent, aperiodic}, + activatedResources-r14 INTEGER (0..4) +} + + +CSI-RS-ConfigEMIMO-r13 ::= CHOICE { + release NULL, + setup CHOICE { + nonPrecoded-r13 CSI-RS-ConfigNonPrecoded-r13, + beamformed-r13 CSI-RS-ConfigBeamformed-r13 + } +} + +CSI-RS-ConfigEMIMO-v1430 ::= CHOICE { + release NULL, + setup CHOICE { + nonPrecoded-v1430 CSI-RS-ConfigNonPrecoded-v1430, + beamformed-v1430 CSI-RS-ConfigBeamformed-v1430 + } +} + +CSI-RS-ConfigEMIMO2-r14 ::= CHOICE { + release NULL, + setup CSI-RS-ConfigBeamformed-r14 +} + +CSI-RS-ConfigEMIMO-Hybrid-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + periodicityOffsetIndex-r14 INTEGER (0..1023) OPTIONAL, -- Need OR + eMIMO-Type2-r14 CSI-RS-ConfigEMIMO2-r14 OPTIONAL -- Need ON + } +} + + + +CSI-RS-ConfigNonPrecoded-r13 ::= SEQUENCE { + p-C-AndCBSRList-r13 P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR + codebookConfigN1-r13 ENUMERATED {n1, n2, n3, n4, n8}, + codebookConfigN2-r13 ENUMERATED {n1, n2, n3, n4, n8}, + codebookOverSamplingRateConfig-O1-r13 ENUMERATED {n4, n8} OPTIONAL, -- Need OR + codebookOverSamplingRateConfig-O2-r13 ENUMERATED {n4, n8} OPTIONAL, -- Need OR + codebookConfig-r13 INTEGER (1..4), + csi-IM-ConfigIdList-r13 SEQUENCE (SIZE (1..2)) OF CSI-IM-ConfigId-r13 OPTIONAL, -- Need OR + csi-RS-ConfigNZP-EMIMO-r13 CSI-RS-ConfigNZP-EMIMO-r13 OPTIONAL -- Need ON +} + +CSI-RS-ConfigNonPrecoded-v1430::= SEQUENCE { + csi-RS-ConfigNZP-EMIMO-v1430 CSI-RS-ConfigNZP-EMIMO-v1430 OPTIONAL, -- Need ON + codebookConfigN1-v1430 ENUMERATED {n5, n6, n7, n10, n12, n14, n16}, + codebookConfigN2-r1430 ENUMERATED {n5, n6, n7 }, + nzp-ResourceConfigTM9-Original-v1430 CSI-RS-Config-NZP-v1430 +} + + +CSI-RS-ConfigNZP-r11 ::= SEQUENCE { + csi-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11, + antennaPortsCount-r11 ENUMERATED {an1, an2, an4, an8}, + resourceConfig-r11 INTEGER (0..31), + subframeConfig-r11 INTEGER (0..154), + scramblingIdentity-r11 INTEGER (0..503), + qcl-CRS-Info-r11 SEQUENCE { + qcl-ScramblingIdentity-r11 INTEGER (0..503), + crs-PortsCount-r11 ENUMERATED {n1, n2, n4, spare1}, + mbsfn-SubframeConfigList-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList MBSFN-SubframeConfigList + } + } OPTIONAL -- Need ON + } OPTIONAL, -- Need OR + ..., + [[ csi-RS-ConfigNZPId-v1310 CSI-RS-ConfigNZPId-v1310 OPTIONAL -- Need ON + ]], + [[ transmissionComb-r14 NZP-TransmissionComb-r14 OPTIONAL, -- Need OR + frequencyDensity-r14 NZP-FrequencyDensity-r14 OPTIONAL -- Need OR + ]], + [[ mbsfn-SubframeConfigList-v1430 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 + } + } OPTIONAL -- Need OP + ]] +} + +CSI-RS-ConfigNZP-EMIMO-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + nzp-resourceConfigList-r13 SEQUENCE (SIZE (1..2)) OF NZP-ResourceConfig-r13, + cdmType-r13 ENUMERATED {cdm2, cdm4} OPTIONAL -- Need OR + } +} + +CSI-RS-ConfigNZP-EMIMO-v1430 ::= SEQUENCE { + -- All extensions are for Non-Precoded so could be grouped by setup/ release choice + nzp-resourceConfigListExt-r14 SEQUENCE (SIZE (0..4)) OF NZP-ResourceConfig-r13, + cdmType-v1430 ENUMERATED {cdm8 } OPTIONAL -- Need OR +} + +NZP-ResourceConfig-r13 ::= SEQUENCE { + resourceConfig-r13 ResourceConfig-r13, + ..., + [[ transmissionComb-r14 NZP-TransmissionComb-r14 OPTIONAL, -- Need OR + frequencyDensity-r14 NZP-FrequencyDensity-r14 OPTIONAL -- Need OR + ]] +} + +ResourceConfig-r13 ::= INTEGER (0..31) + +NZP-TransmissionComb-r14 ::= INTEGER (0..2) +NZP-FrequencyDensity-r14 ::= ENUMERATED {d1, d2, d3} + + +CSI-RS-ConfigNZPId-r11 ::= INTEGER (1..maxCSI-RS-NZP-r11) +CSI-RS-ConfigNZPId-v1310 ::= INTEGER (minCSI-RS-NZP-r13..maxCSI-RS-NZP-r13) +CSI-RS-ConfigNZPId-r13 ::= INTEGER (1..maxCSI-RS-NZP-r13) + + +CSI-RS-ConfigZP-r11 ::= SEQUENCE { + csi-RS-ConfigZPId-r11 CSI-RS-ConfigZPId-r11, + resourceConfigList-r11 BIT STRING (SIZE (16)), + subframeConfig-r11 INTEGER (0..154), + ... +} + +CSI-RS-ConfigZP-ApList-r14 ::= CHOICE { + release NULL, + setup SEQUENCE (SIZE (1.. maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZP-r11 +} + + +CSI-RS-ConfigZPId-r11 ::= INTEGER (1..maxCSI-RS-ZP-r11) + + +DataInactivityTimer-r14 ::= ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, s40, s50, s60, + s80, s100, s120, s150, s180} + + +DMRS-Config-r11 ::= CHOICE { + release NULL, + setup SEQUENCE { + scramblingIdentity-r11 INTEGER (0..503), + scramblingIdentity2-r11 INTEGER (0..503) + } +} +DMRS-Config-v1310 ::= SEQUENCE { + dmrs-tableAlt-r13 ENUMERATED {true} OPTIONAL -- Need OR +} + + +DRB-Identity ::= INTEGER (1..32) + + +EPDCCH-Config-r11 ::= SEQUENCE{ + config-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframePatternConfig-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframePattern-r11 MeasSubframePattern-r10 + } + } OPTIONAL, -- Need ON + startSymbol-r11 INTEGER (1..4) OPTIONAL, -- Need OP + setConfigToReleaseList-r11 EPDCCH-SetConfigToReleaseList-r11 OPTIONAL, -- Need ON + setConfigToAddModList-r11 EPDCCH-SetConfigToAddModList-r11 OPTIONAL -- Need ON + } + } +} + +EPDCCH-SetConfigToAddModList-r11 ::= SEQUENCE (SIZE(1..maxEPDCCH-Set-r11)) OF EPDCCH-SetConfig-r11 + +EPDCCH-SetConfigToReleaseList-r11 ::= SEQUENCE (SIZE(1..maxEPDCCH-Set-r11)) OF EPDCCH-SetConfigId-r11 + +EPDCCH-SetConfig-r11 ::= SEQUENCE { + setConfigId-r11 EPDCCH-SetConfigId-r11, + transmissionType-r11 ENUMERATED {localised, distributed}, + resourceBlockAssignment-r11 SEQUENCE{ + numberPRB-Pairs-r11 ENUMERATED {n2, n4, n8}, + resourceBlockAssignment-r11 BIT STRING (SIZE(4..38)) + }, + dmrs-ScramblingSequenceInt-r11 INTEGER (0..503), + pucch-ResourceStartOffset-r11 INTEGER (0..2047), + re-MappingQCL-ConfigId-r11 PDSCH-RE-MappingQCL-ConfigId-r11 OPTIONAL, -- Need OR + ..., + [[ csi-RS-ConfigZPId2-r12 CHOICE { + release NULL, + setup CSI-RS-ConfigZPId-r11 + } OPTIONAL -- Need ON + ]], + [[ numberPRB-Pairs-v1310 CHOICE { + release NULL, + setup ENUMERATED {n6} + } OPTIONAL, -- Need ON + mpdcch-config-r13 CHOICE { + release NULL, + setup SEQUENCE { + csi-NumRepetitionCE-r13 ENUMERATED {sf1, sf2, sf4, sf8, sf16, sf32}, + mpdcch-pdsch-HoppingConfig-r13 ENUMERATED {on,off}, + mpdcch-StartSF-UESS-r13 CHOICE { + fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, + v5, v8, v10}, tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10, + v20, spare1} + }, + mpdcch-NumRepetition-r13 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + mpdcch-Narrowband-r13 INTEGER (1.. maxAvailNarrowBands-r13) + } + } OPTIONAL -- Need ON + ]] +} + +EPDCCH-SetConfigId-r11 ::= INTEGER (0..1) + + +EIMTA-MainConfig-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + eimta-RNTI-r12 C-RNTI, + eimta-CommandPeriodicity-r12 ENUMERATED {sf10, sf20, sf40, sf80}, + eimta-CommandSubframeSet-r12 BIT STRING (SIZE(10)) + } +} + +EIMTA-MainConfigServCell-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + eimta-UL-DL-ConfigIndex-r12 INTEGER (1..5), + eimta-HARQ-ReferenceConfig-r12 ENUMERATED {sa2, sa4, sa5}, + mbsfn-SubframeConfigList-v1250 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList-r12 MBSFN-SubframeConfigList + } + } + } +} + + +LogicalChannelConfig ::= SEQUENCE { + ul-SpecificParameters SEQUENCE { + priority INTEGER (1..16), + prioritisedBitRate ENUMERATED { + kBps0, kBps8, kBps16, kBps32, kBps64, kBps128, + kBps256, infinity, kBps512-v1020, kBps1024-v1020, + kBps2048-v1020, spare5, spare4, spare3, spare2, + spare1}, + bucketSizeDuration ENUMERATED { + ms50, ms100, ms150, ms300, ms500, ms1000, spare2, + spare1}, + logicalChannelGroup INTEGER (0..3) OPTIONAL -- Need OR + } OPTIONAL, -- Cond UL + ..., + [[ logicalChannelSR-Mask-r9 ENUMERATED {setup} OPTIONAL -- Cond SRmask + ]], + [[ logicalChannelSR-Prohibit-r12 BOOLEAN OPTIONAL -- Need ON + ]], + [[ laa-UL-Allowed-r14 BOOLEAN OPTIONAL, -- Need ON + bitRateQueryProhibitTimer-r14 ENUMERATED { + s0, s0dot4, s0dot8, s1dot6, s3, s6, s12, + s30} OPTIONAL --Need OR + ]] +} + + +LWA-Configuration-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + lwa-Config-r13 LWA-Config-r13 + } +} + +LWA-Config-r13 ::= SEQUENCE { + lwa-MobilityConfig-r13 WLAN-MobilityConfig-r13 OPTIONAL, -- Need ON + lwa-WT-Counter-r13 INTEGER (0..65535) OPTIONAL, -- Need ON + ..., + [[ wt-MAC-Address-r14 OCTET STRING (SIZE (6)) OPTIONAL -- Need ON + ]] +} + + +LWIP-Configuration-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + lwip-Config-r13 LWIP-Config-r13 + } +} + +LWIP-Config-r13 ::= SEQUENCE { + lwip-MobilityConfig-r13 WLAN-MobilityConfig-r13 OPTIONAL, -- Need ON + tunnelConfigLWIP-r13 TunnelConfigLWIP-r13 OPTIONAL, -- Need ON + ... +} + + +MAC-MainConfig ::= SEQUENCE { + ul-SCH-Config SEQUENCE { + maxHARQ-Tx ENUMERATED { + n1, n2, n3, n4, n5, n6, n7, n8, + n10, n12, n16, n20, n24, n28, + spare2, spare1} OPTIONAL, -- Need ON + periodicBSR-Timer PeriodicBSR-Timer-r12 OPTIONAL, -- Need ON + retxBSR-Timer RetxBSR-Timer-r12, + ttiBundling BOOLEAN + } OPTIONAL, -- Need ON + drx-Config DRX-Config OPTIONAL, -- Need ON + timeAlignmentTimerDedicated TimeAlignmentTimer, + phr-Config CHOICE { + release NULL, + setup SEQUENCE { + periodicPHR-Timer ENUMERATED {sf10, sf20, sf50, sf100, sf200, + sf500, sf1000, infinity}, + prohibitPHR-Timer ENUMERATED {sf0, sf10, sf20, sf50, sf100, + sf200, sf500, sf1000}, + dl-PathlossChange ENUMERATED {dB1, dB3, dB6, infinity} + } + } OPTIONAL, -- Need ON + ..., + [[ sr-ProhibitTimer-r9 INTEGER (0..7) OPTIONAL -- Need ON + ]], + [[ mac-MainConfig-v1020 SEQUENCE { + sCellDeactivationTimer-r10 ENUMERATED { + rf2, rf4, rf8, rf16, rf32, rf64, rf128, + spare} OPTIONAL, -- Need OP + extendedBSR-Sizes-r10 ENUMERATED {setup} OPTIONAL, -- Need OR + extendedPHR-r10 ENUMERATED {setup} OPTIONAL -- Need OR + } OPTIONAL -- Need ON + ]], + [[ stag-ToReleaseList-r11 STAG-ToReleaseList-r11 OPTIONAL, -- Need ON + stag-ToAddModList-r11 STAG-ToAddModList-r11 OPTIONAL, -- Need ON + drx-Config-v1130 DRX-Config-v1130 OPTIONAL -- Need ON + ]], + [[ e-HARQ-Pattern-r12 BOOLEAN OPTIONAL, -- Need ON + dualConnectivityPHR CHOICE { + release NULL, + setup SEQUENCE { + phr-ModeOtherCG-r12 ENUMERATED {real, virtual} + } + } OPTIONAL, -- Need ON + logicalChannelSR-Config-r12 CHOICE { + release NULL, + setup SEQUENCE { + logicalChannelSR-ProhibitTimer-r12 ENUMERATED {sf20, sf40, sf64, sf128, sf512, sf1024, sf2560, spare1} + } + } OPTIONAL -- Need ON + ]], + [[ drx-Config-v1310 DRX-Config-v1310 OPTIONAL, -- Need ON + extendedPHR2-r13 BOOLEAN OPTIONAL, -- Need ON + eDRX-Config-CycleStartOffset-r13 CHOICE { + release NULL, + setup + CHOICE { + sf5120 INTEGER(0..1), + sf10240 INTEGER(0..3) + } + } OPTIONAL -- Need ON + ]], + [[ drx-Config-r13 CHOICE { + release NULL, + setup DRX-Config-r13 + } OPTIONAL -- Need ON + ]], + [[ skipUplinkTx-r14 CHOICE { + release NULL, + setup SEQUENCE { + skipUplinkTxSPS-r14 ENUMERATED {true} OPTIONAL, -- Need OR + skipUplinkTxDynamic-r14 ENUMERATED {true} OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + dataInactivityTimerConfig-r14 CHOICE { + release NULL, + setup SEQUENCE { + dataInactivityTimer-r14 DataInactivityTimer-r14 + } + } OPTIONAL -- Need ON + ]], + [[ rai-Activation-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + +MAC-MainConfigSCell-r11 ::= SEQUENCE { + stag-Id-r11 STAG-Id-r11 OPTIONAL, -- Need OP + ... +} + +DRX-Config ::= CHOICE { + release NULL, + setup SEQUENCE { + onDurationTimer ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200}, + drx-InactivityTimer ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200, psf300, psf500, psf750, + psf1280, psf1920, psf2560, psf0-v1020, + spare9, spare8, spare7, spare6, + spare5, spare4, spare3, spare2, + spare1}, + drx-RetransmissionTimer ENUMERATED { + psf1, psf2, psf4, psf6, psf8, psf16, + psf24, psf33}, + longDRX-CycleStartOffset CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf1280 INTEGER(0..1279), + sf2048 INTEGER(0..2047), + sf2560 INTEGER(0..2559) + }, + shortDRX SEQUENCE { + shortDRX-Cycle ENUMERATED { + sf2, sf5, sf8, sf10, sf16, sf20, + sf32, sf40, sf64, sf80, sf128, sf160, + sf256, sf320, sf512, sf640}, + drxShortCycleTimer INTEGER (1..16) + } OPTIONAL -- Need OR + } +} + +DRX-Config-v1130 ::= SEQUENCE { + drx-RetransmissionTimer-v1130 ENUMERATED {psf0-v1130} OPTIONAL, --Need OR + longDRX-CycleStartOffset-v1130 CHOICE { + sf60-v1130 INTEGER(0..59), + sf70-v1130 INTEGER(0..69) + } OPTIONAL, --Need OR + shortDRX-Cycle-v1130 ENUMERATED {sf4-v1130} OPTIONAL --Need OR +} +DRX-Config-v1310 ::= SEQUENCE { + longDRX-CycleStartOffset-v1310 SEQUENCE { + sf60-v1310 INTEGER(0..59) + } OPTIONAL --Need OR +} + +DRX-Config-r13 ::= SEQUENCE { + onDurationTimer-v1310 ENUMERATED {psf300, psf400, psf500, psf600, + psf800, psf1000, psf1200, psf1600} OPTIONAL, --Need OR + drx-RetransmissionTimer-v1310 ENUMERATED {psf40, psf64, psf80, psf96, psf112, + psf128, psf160, psf320} + OPTIONAL, --Need OR + drx-ULRetransmissionTimer-r13 ENUMERATED {psf0, psf1, psf2, psf4, psf6, psf8, psf16, + psf24, psf33, psf40, psf64, psf80, psf96, + psf112, psf128, psf160, psf320} + OPTIONAL --Need OR +} + +PeriodicBSR-Timer-r12 ::= ENUMERATED { + sf5, sf10, sf16, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, sf1280, sf2560, + infinity, spare1} + +RetxBSR-Timer-r12 ::= ENUMERATED { + sf320, sf640, sf1280, sf2560, sf5120, + sf10240, spare2, spare1} + +STAG-ToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-Id-r11 + +STAG-ToAddModList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-ToAddMod-r11 + +STAG-ToAddMod-r11 ::= SEQUENCE { + stag-Id-r11 STAG-Id-r11, + timeAlignmentTimerSTAG-r11 TimeAlignmentTimer, + ... +} + +STAG-Id-r11::= INTEGER (1..maxSTAG-r11) + + +P-C-AndCBSR-r11 ::= SEQUENCE { + p-C-r11 INTEGER (-8..15), + codebookSubsetRestriction-r11 BIT STRING +} + +P-C-AndCBSR-r13 ::= SEQUENCE { + p-C-r13 INTEGER (-8..15), + cbsr-Selection-r13 CHOICE{ + nonPrecoded-r13 SEQUENCE { + codebookSubsetRestriction1-r13 BIT STRING, + codebookSubsetRestriction2-r13 BIT STRING + }, + beamformedK1a-r13 SEQUENCE { + codebookSubsetRestriction3-r13 BIT STRING + }, + beamformedKN-r13 SEQUENCE { + codebookSubsetRestriction-r13 BIT STRING + } + }, + ... +} + +P-C-AndCBSR-Pair-r13a ::= SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r11 + +P-C-AndCBSR-Pair-r13 ::= SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r13 + + +PDCCH-ConfigSCell-r13 ::= SEQUENCE { + skipMonitoringDCI-format0-1A-r13 ENUMERATED {true} OPTIONAL -- Need OR +} + +PDCCH-ConfigLAA-r14 ::= SEQUENCE { + maxNumberOfSchedSubframes-Format0B-r14 ENUMERATED {sf2, sf3, sf4} OPTIONAL, -- Need OR + maxNumberOfSchedSubframes-Format4B-r14 ENUMERATED {sf2, sf3, sf4} OPTIONAL, -- Need OR + skipMonitoringDCI-Format0A-r14 ENUMERATED {true} OPTIONAL, -- Need OR + skipMonitoringDCI-Format4A-r14 ENUMERATED {true} OPTIONAL, -- Need OR + pdcch-CandidateReductions-Format0A-r14 + PDCCH-CandidateReductions-r13 OPTIONAL, -- Need ON + pdcch-CandidateReductions-Format4A-r14 + PDCCH-CandidateReductionsLAA-UL-r14 OPTIONAL, -- Need ON + pdcch-CandidateReductions-Format0B-r14 + PDCCH-CandidateReductionsLAA-UL-r14 OPTIONAL, -- Need ON + pdcch-CandidateReductions-Format4B-r14 + PDCCH-CandidateReductionsLAA-UL-r14 OPTIONAL -- Need ON +} + +PDCCH-CandidateReductionValue-r13 ::= ENUMERATED {n0, n33, n66, n100} + +PDCCH-CandidateReductionValue-r14 ::= ENUMERATED {n0, n50, n100, n150} + +PDCCH-CandidateReductions-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + pdcch-candidateReductionAL1-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL2-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL3-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL4-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL5-r13 PDCCH-CandidateReductionValue-r13 + } +} + +PDCCH-CandidateReductionsLAA-UL-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + pdcch-candidateReductionAL1-r14 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL2-r14 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL3-r14 PDCCH-CandidateReductionValue-r14, + pdcch-candidateReductionAL4-r14 PDCCH-CandidateReductionValue-r14, + pdcch-candidateReductionAL5-r14 PDCCH-CandidateReductionValue-r14 + } +} + + +PDCP-Config ::= SEQUENCE { + discardTimer ENUMERATED { + ms50, ms100, ms150, ms300, ms500, + ms750, ms1500, infinity + } OPTIONAL, -- Cond Setup + rlc-AM SEQUENCE { + statusReportRequired BOOLEAN + } OPTIONAL, -- Cond Rlc-AM + rlc-UM SEQUENCE { + pdcp-SN-Size ENUMERATED {len7bits, len12bits} + } OPTIONAL, -- Cond Rlc-UM + headerCompression CHOICE { + notUsed NULL, + rohc SEQUENCE { + maxCID INTEGER (1..16383) DEFAULT 15, + profiles SEQUENCE { + profile0x0001 BOOLEAN, + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0101 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + ... + } + }, + ..., + [[ rn-IntegrityProtection-r10 ENUMERATED {enabled} OPTIONAL -- Cond RN + ]], + [[ pdcp-SN-Size-v1130 ENUMERATED {len15bits} OPTIONAL -- Cond Rlc-AM2 + ]], + [[ ul-DataSplitDRB-ViaSCG-r12 BOOLEAN OPTIONAL, -- Need ON + t-Reordering-r12 ENUMERATED { + ms0, ms20, ms40, ms60, ms80, ms100, ms120, ms140, + ms160, ms180, ms200, ms220, ms240, ms260, ms280, ms300, + ms500, ms750, spare14, spare13, spare12, spare11, spare10, + spare9, spare8, spare7, spare6, spare5, spare4, spare3, + spare2, spare1} OPTIONAL -- Cond SetupS + ]], + [[ ul-DataSplitThreshold-r13 CHOICE { + release NULL, + setup ENUMERATED { + b0, b100, b200, b400, b800, b1600, b3200, b6400, b12800, + b25600, b51200, b102400, b204800, b409600, b819200, + spare1} + } OPTIONAL, -- Need ON + pdcp-SN-Size-v1310 ENUMERATED {len18bits} OPTIONAL, -- Cond Rlc-AM3 + statusFeedback-r13 CHOICE { + release NULL, + setup SEQUENCE { + statusPDU-TypeForPolling-r13 ENUMERATED {type1, type2} OPTIONAL, -- Need ON + statusPDU-Periodicity-Type1-r13 ENUMERATED { + ms5, ms10, ms20, ms30, ms40, ms50, ms60, ms70, ms80, ms90, + ms100, ms150, ms200, ms300, ms500, ms1000, ms2000, ms5000, + ms10000, ms20000, ms50000} OPTIONAL, -- Need ON + statusPDU-Periodicity-Type2-r13 ENUMERATED { + ms5, ms10, ms20, ms30, ms40, ms50, ms60, ms70, ms80, ms90, + ms100, ms150, ms200, ms300, ms500, ms1000, ms2000, ms5000, + ms10000, ms20000, ms50000} OPTIONAL, -- Need ON + statusPDU-Periodicity-Offset-r13 ENUMERATED { + ms1, ms2, ms5, ms10, ms25, ms50, ms100, ms250, ms500, + ms2500, ms5000, ms25000} OPTIONAL -- Need ON + } + } OPTIONAL -- Need ON + ]], + [[ ul-LWA-Config-r14 CHOICE { + release NULL, + setup SEQUENCE { + ul-LWA-DRB-ViaWLAN-r14 BOOLEAN, + ul-LWA-DataSplitThreshold-r14 ENUMERATED { + b0, b100, b200, b400, b800, b1600, b3200, b6400, + b12800, b25600, b51200, b102400, b204800, b409600, + b819200 } OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + uplinkOnlyHeaderCompression-r14 CHOICE { + notUsed-r14 NULL, + rohc-r14 SEQUENCE { + maxCID-r14 INTEGER (1..16383) DEFAULT 15, + profiles-r14 SEQUENCE { + profile0x0006-r14 BOOLEAN + }, + ... + } + } OPTIONAL -- Need ON + ]] +} + + +PDSCH-ConfigCommon ::= SEQUENCE { + referenceSignalPower INTEGER (-60..50), + p-b INTEGER (0..3) +} + +PDSCH-ConfigCommon-v1310 ::= SEQUENCE { + pdsch-maxNumRepetitionCEmodeA-r13 ENUMERATED { + r16, r32 } OPTIONAL, -- Need OR + pdsch-maxNumRepetitionCEmodeB-r13 ENUMERATED { + r192, r256, r384, r512, r768, r1024, + r1536, r2048} OPTIONAL -- Need OR +} + +PDSCH-ConfigDedicated::= SEQUENCE { + p-a ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} +} + +PDSCH-ConfigDedicated-v1130 ::= SEQUENCE { + dmrs-ConfigPDSCH-r11 DMRS-Config-r11 OPTIONAL, -- Need ON + qcl-Operation ENUMERATED {typeA, typeB} OPTIONAL, -- Need OR + re-MappingQCLConfigToReleaseList-r11 RE-MappingQCLConfigToReleaseList-r11 OPTIONAL, -- Need ON + re-MappingQCLConfigToAddModList-r11 RE-MappingQCLConfigToAddModList-r11 OPTIONAL -- Need ON +} + +PDSCH-ConfigDedicated-v1280 ::= SEQUENCE { + tbsIndexAlt-r12 ENUMERATED {a26, a33} OPTIONAL -- Need OR +} + +PDSCH-ConfigDedicated-v1310 ::= SEQUENCE { + dmrs-ConfigPDSCH-v1310 DMRS-Config-v1310 OPTIONAL -- Need ON +} + +PDSCH-ConfigDedicated-v1430 ::= SEQUENCE { + ce-PDSCH-MaxBandwidth-r14 ENUMERATED {bw5, bw20} OPTIONAL, -- Need OP + ce-PDSCH-TenProcesses-r14 ENUMERATED {on} OPTIONAL, -- Need OR + ce-HARQ-AckBundling-r14 ENUMERATED {on} OPTIONAL, -- Need OR + ce-SchedulingEnhancement-r14 ENUMERATED {range1, range2} OPTIONAL, -- Need OR + tbsIndexAlt2-r14 ENUMERATED {b33} OPTIONAL -- Need OR +} + +PDSCH-ConfigDedicatedSCell-v1430 ::= SEQUENCE { + tbsIndexAlt2-r14 ENUMERATED {b33} OPTIONAL -- Need OR +} + +RE-MappingQCLConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxRE-MapQCL-r11)) OF PDSCH-RE-MappingQCL-Config-r11 + +RE-MappingQCLConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxRE-MapQCL-r11)) OF PDSCH-RE-MappingQCL-ConfigId-r11 + +PDSCH-RE-MappingQCL-Config-r11 ::= SEQUENCE { + pdsch-RE-MappingQCL-ConfigId-r11 PDSCH-RE-MappingQCL-ConfigId-r11, + optionalSetOfFields-r11 SEQUENCE { + crs-PortsCount-r11 ENUMERATED {n1, n2, n4, spare1}, + crs-FreqShift-r11 INTEGER (0..5), + mbsfn-SubframeConfigList-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList MBSFN-SubframeConfigList + } + } OPTIONAL, -- Need ON + pdsch-Start-r11 ENUMERATED {reserved, n1, n2, n3, n4, assigned} + } OPTIONAL, -- Need OP + csi-RS-ConfigZPId-r11 CSI-RS-ConfigZPId-r11, + qcl-CSI-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11 OPTIONAL, -- Need OR + ..., + [[ mbsfn-SubframeConfigList-v1430 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 + } + } OPTIONAL -- Need OP + ]] +} + + +PDSCH-RE-MappingQCL-ConfigId-r11 ::= INTEGER (1..maxRE-MapQCL-r11) + +PerCC-GapIndicationList-r14 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF PerCC-GapIndication-r14 + +PerCC-GapIndication-r14 ::= SEQUENCE { + servCellId-r14 ServCellIndex-r13, + gapIndication-r14 ENUMERATED {gap, ncsg, nogap-noNcsg} +} + + +PHICH-Config ::= SEQUENCE { + phich-Duration ENUMERATED {normal, extended}, + phich-Resource ENUMERATED {oneSixth, half, one, two} +} + + +PhysicalConfigDedicated ::= SEQUENCE { + pdsch-ConfigDedicated PDSCH-ConfigDedicated OPTIONAL, -- Need ON + pucch-ConfigDedicated PUCCH-ConfigDedicated OPTIONAL, -- Need ON + pusch-ConfigDedicated PUSCH-ConfigDedicated OPTIONAL, -- Need ON + uplinkPowerControlDedicated UplinkPowerControlDedicated OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUCCH TPC-PDCCH-Config OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUSCH TPC-PDCCH-Config OPTIONAL, -- Need ON + cqi-ReportConfig CQI-ReportConfig OPTIONAL, -- Cond CQI-r8 + soundingRS-UL-ConfigDedicated SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON + antennaInfo CHOICE { + explicitValue AntennaInfoDedicated, + defaultValue NULL + } OPTIONAL, -- Cond AI-r8 + schedulingRequestConfig SchedulingRequestConfig OPTIONAL, -- Need ON + ..., + [[ cqi-ReportConfig-v920 CQI-ReportConfig-v920 OPTIONAL, -- Cond CQI-r8 + antennaInfo-v920 AntennaInfoDedicated-v920 OPTIONAL -- Cond AI-r8 + ]], + [[ antennaInfo-r10 CHOICE { + explicitValue-r10 AntennaInfoDedicated-r10, + defaultValue NULL + } OPTIONAL, -- Cond AI-r10 + antennaInfoUL-r10 AntennaInfoUL-r10 OPTIONAL, -- Need ON + cif-Presence-r10 BOOLEAN OPTIONAL, -- Need ON + cqi-ReportConfig-r10 CQI-ReportConfig-r10 OPTIONAL, -- Cond CQI-r10 + csi-RS-Config-r10 CSI-RS-Config-r10 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1020 PUCCH-ConfigDedicated-v1020 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1020 PUSCH-ConfigDedicated-v1020 OPTIONAL, -- Need ON + schedulingRequestConfig-v1020 SchedulingRequestConfig-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1020 + SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-r10 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1020 + UplinkPowerControlDedicated-v1020 OPTIONAL -- Need ON + ]], + [[ additionalSpectrumEmissionCA-r10 CHOICE { + release NULL, + setup SEQUENCE { + additionalSpectrumEmissionPCell-r10 AdditionalSpectrumEmission + } + } OPTIONAL -- Need ON + ]], + [[ -- DL configuration as well as configuration applicable for DL and UL + csi-RS-ConfigNZPToReleaseList-r11 + CSI-RS-ConfigNZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModList-r11 + CSI-RS-ConfigNZPToAddModList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToReleaseList-r11 + CSI-RS-ConfigZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToAddModList-r11 CSI-RS-ConfigZPToAddModList-r11 OPTIONAL, -- Need ON + epdcch-Config-r11 EPDCCH-Config-r11 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1130 PDSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + -- UL configuration + cqi-ReportConfig-v1130 CQI-ReportConfig-v1130 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1130 PUCCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1130 PUSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1130 + UplinkPowerControlDedicated-v1130 OPTIONAL -- Need ON + ]], + [[ antennaInfo-v1250 AntennaInfoDedicated-v1250 OPTIONAL, -- Cond AI-r10 + eimta-MainConfig-r12 EIMTA-MainConfig-r12 OPTIONAL, -- Need ON + eimta-MainConfigPCell-r12 EIMTA-MainConfigServCell-r12 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1250 PUCCH-ConfigDedicated-v1250 OPTIONAL, -- Need ON + cqi-ReportConfigPCell-v1250 CQI-ReportConfig-v1250 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1250 + UplinkPowerControlDedicated-v1250 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1250 PUSCH-ConfigDedicated-v1250 OPTIONAL, -- Need ON + csi-RS-Config-v1250 CSI-RS-Config-v1250 OPTIONAL -- Need ON + ]], + [[ pdsch-ConfigDedicated-v1280 PDSCH-ConfigDedicated-v1280 OPTIONAL -- Need ON + ]], + [[ pdsch-ConfigDedicated-v1310 PDSCH-ConfigDedicated-v1310 OPTIONAL, -- Need ON + pucch-ConfigDedicated-r13 PUCCH-ConfigDedicated-r13 OPTIONAL, -- Need ON + pusch-ConfigDedicated-r13 PUSCH-ConfigDedicated-r13 OPTIONAL, -- Need ON + pdcch-CandidateReductions-r13 + PDCCH-CandidateReductions-r13 OPTIONAL, -- Need ON + cqi-ReportConfig-v1310 CQI-ReportConfig-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1310 + SoundingRS-UL-ConfigDedicated-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-v1310 + SoundingRS-UL-ConfigDedicatedAperiodic-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, -- Need ON + csi-RS-Config-v1310 CSI-RS-Config-v1310 OPTIONAL, -- Need ON + ce-Mode-r13 CHOICE { + release NULL, + setup ENUMERATED {ce-ModeA,ce-ModeB} + } OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModListExt-r13 CSI-RS-ConfigNZPToAddModListExt-r13 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToReleaseListExt-r13 CSI-RS-ConfigNZPToReleaseListExt-r13 OPTIONAL -- Need ON + ]], + [[ cqi-ReportConfig-v1320 CQI-ReportConfig-v1320 OPTIONAL -- Need ON + ]], + [[ typeA-SRS-TPC-PDCCH-Group-r14 CHOICE { + release NULL, + setup SEQUENCE (SIZE (1..32)) OF SRS-TPC-PDCCH-Config-r14 + } OPTIONAL, -- Need ON + must-Config-r14 CHOICE{ + release NULL, + setup SEQUENCE { + k-max-r14 ENUMERATED {l1, l3}, + p-a-must-r14 ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + pusch-EnhancementsConfig-r14 PUSCH-EnhancementsConfig-r14 OPTIONAL, -- Need ON + ce-pdsch-pusch-EnhancementConfig-r14 ENUMERATED {on} OPTIONAL, -- Need OR + antennaInfo-v1430 AntennaInfoDedicated-v1430 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1430 PUCCH-ConfigDedicated-v1430 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1430 PDSCH-ConfigDedicated-v1430 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1430 PUSCH-ConfigDedicated-v1430 OPTIONAL, -- Need ON + soundingRS-UL-PeriodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-UL-ConfigDedicated OPTIONAL, -- Cond PeriodicSRSPCell + soundingRS-UL-PeriodicConfigDedicatedUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Cond PeriodicSRSExt + soundingRS-UL-AperiodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL, -- Cond AperiodicSRS + soundingRS-UL-ConfigDedicatedApUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, -- Cond AperiodicSRSExt + csi-RS-Config-v1430 CSI-RS-Config-v1430 OPTIONAL, -- Need ON + csi-RS-ConfigZP-ApList-r14 CSI-RS-ConfigZP-ApList-r14 OPTIONAL, -- Need ON + cqi-ReportConfig-v1430 CQI-ReportConfig-v1430 OPTIONAL, -- Need ON + semiOpenLoop-r14 BOOLEAN OPTIONAL -- Need ON + ]] +} + +PhysicalConfigDedicated-v1370 ::= SEQUENCE { + pucch-ConfigDedicated-v1370 PUCCH-ConfigDedicated-v1370 OPTIONAL -- Cond PUCCH-Format4or5 +} + +PhysicalConfigDedicatedSCell-r10 ::= SEQUENCE { + -- DL configuration as well as configuration applicable for DL and UL + nonUL-Configuration-r10 SEQUENCE { + antennaInfo-r10 + AntennaInfoDedicated-r10 OPTIONAL, -- Need ON + crossCarrierSchedulingConfig-r10 + CrossCarrierSchedulingConfig-r10 OPTIONAL, -- Need ON + csi-RS-Config-r10 CSI-RS-Config-r10 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-r10 PDSCH-ConfigDedicated OPTIONAL -- Need ON + } OPTIONAL, -- Cond SCellAdd + -- UL configuration + ul-Configuration-r10 SEQUENCE { + antennaInfoUL-r10 AntennaInfoUL-r10 OPTIONAL, -- Need ON + pusch-ConfigDedicatedSCell-r10 + PUSCH-ConfigDedicatedSCell-r10 OPTIONAL, -- Cond PUSCH-SCell1 + uplinkPowerControlDedicatedSCell-r10 + UplinkPowerControlDedicatedSCell-r10 OPTIONAL, -- Need ON + cqi-ReportConfigSCell-r10 CQI-ReportConfigSCell-r10 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-r10 + SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1020 + SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-r10 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL -- Need ON + } OPTIONAL, -- Cond CommonUL + ..., + [[ -- DL configuration as well as configuration applicable for DL and UL + csi-RS-ConfigNZPToReleaseList-r11 + CSI-RS-ConfigNZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModList-r11 + CSI-RS-ConfigNZPToAddModList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToReleaseList-r11 + CSI-RS-ConfigZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToAddModList-r11 + CSI-RS-ConfigZPToAddModList-r11 OPTIONAL, -- Need ON + epdcch-Config-r11 EPDCCH-Config-r11 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1130 PDSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + -- UL configuration + cqi-ReportConfig-v1130 CQI-ReportConfig-v1130 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1130 + PUSCH-ConfigDedicated-v1130 OPTIONAL, -- Cond PUSCH-SCell1 + uplinkPowerControlDedicatedSCell-v1130 + UplinkPowerControlDedicated-v1130 OPTIONAL -- Need ON + ]], + [[ antennaInfo-v1250 AntennaInfoDedicated-v1250 OPTIONAL, -- Need ON + eimta-MainConfigSCell-r12 + EIMTA-MainConfigServCell-r12 OPTIONAL, -- Need ON + cqi-ReportConfigSCell-v1250 CQI-ReportConfig-v1250 OPTIONAL, -- Need ON + uplinkPowerControlDedicatedSCell-v1250 + UplinkPowerControlDedicated-v1250 OPTIONAL, -- Need ON + csi-RS-Config-v1250 CSI-RS-Config-v1250 OPTIONAL -- Need ON + ]], + [[ pdsch-ConfigDedicated-v1280 PDSCH-ConfigDedicated-v1280 OPTIONAL -- Need ON + ]], + [[ pucch-Cell-r13 ENUMERATED {true} OPTIONAL, -- Cond PUCCH-SCell1 + pucch-SCell CHOICE{ + release NULL, + setup SEQUENCE { + pucch-ConfigDedicated-r13 + PUCCH-ConfigDedicated-r13 OPTIONAL, -- Need ON + schedulingRequestConfig-r13 + SchedulingRequestConfigSCell-r13 OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUCCH-SCell-r13 + TPC-PDCCH-ConfigSCell-r13 OPTIONAL, -- Need ON + pusch-ConfigDedicated-r13 + PUSCH-ConfigDedicated-r13 OPTIONAL, -- Cond PUSCH-SCell + uplinkPowerControlDedicated-r13 + UplinkPowerControlDedicatedSCell-v1310 OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + crossCarrierSchedulingConfig-r13 + CrossCarrierSchedulingConfig-r13 OPTIONAL, -- Cond Cross-Carrier-Config + pdcch-ConfigSCell-r13 PDCCH-ConfigSCell-r13 OPTIONAL, -- Need ON + cqi-ReportConfig-v1310 CQI-ReportConfig-v1310 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1310 PDSCH-ConfigDedicated-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1310 + SoundingRS-UL-ConfigDedicated-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-v1310 + SoundingRS-UL-ConfigDedicatedAperiodic-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, -- Need ON + csi-RS-Config-v1310 CSI-RS-Config-v1310 OPTIONAL, -- Need ON + laa-SCellConfiguration-r13 LAA-SCellConfiguration-r13 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModListExt-r13 CSI-RS-ConfigNZPToAddModListExt-r13 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToReleaseListExt-r13 CSI-RS-ConfigNZPToReleaseListExt-r13 OPTIONAL -- Need ON + ]], + [[ cqi-ReportConfig-v1320 CQI-ReportConfig-v1320 OPTIONAL -- Need ON + ]], + [[ laa-SCellConfiguration-v1430 LAA-SCellConfiguration-v1430 + OPTIONAL, -- Need ON + typeB-SRS-TPC-PDCCH-Config-r14 SRS-TPC-PDCCH-Config-r14 OPTIONAL, -- Need ON + + uplinkPUSCH-LessPowerControlDedicated-v1430 UplinkPUSCH-LessPowerControlDedicated-v1430 OPTIONAL, -- Need ON + soundingRS-UL-PeriodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-UL-ConfigDedicated OPTIONAL, -- Cond PeriodicSRS + soundingRS-UL-PeriodicConfigDedicatedUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Cond PeriodicSRSExt + soundingRS-UL-AperiodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-AperiodicSet-r14 OPTIONAL, -- Cond AperiodicSRS + soundingRS-UL-ConfigDedicatedApUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-AperiodicSetUpPTsExt-r14 OPTIONAL, -- Cond AperiodicSRSExt + must-Config-r14 CHOICE{ + release NULL, + setup SEQUENCE { + k-max-r14 ENUMERATED {l1, l3}, + p-a-must-r14 ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1430 PUSCH-ConfigDedicatedSCell-v1430 OPTIONAL, -- Need ON + csi-RS-Config-v1430 CSI-RS-Config-v1430 OPTIONAL, -- Need ON + csi-RS-ConfigZP-ApList-r14 CSI-RS-ConfigZP-ApList-r14 OPTIONAL, -- Need ON + cqi-ReportConfig-v1430 CQI-ReportConfig-v1430 OPTIONAL, -- Need ON + semiOpenLoop-r14 BOOLEAN OPTIONAL, -- Need ON + pdsch-ConfigDedicatedSCell-v1430 PDSCH-ConfigDedicatedSCell-v1430 OPTIONAL -- Need ON + ]] +} + +PhysicalConfigDedicatedSCell-v1370 ::= SEQUENCE { + pucch-SCell-v1370 CHOICE{ + release NULL, + setup SEQUENCE { + pucch-ConfigDedicated-v1370 PUCCH-ConfigDedicated-v1370 OPTIONAL -- Cond PUCCH-Format4or5 + } + } +} + +LAA-SCellConfiguration-r13 ::= SEQUENCE { + subframeStartPosition-r13 ENUMERATED {s0, s07}, + laa-SCellSubframeConfig-r13 BIT STRING (SIZE(8)) +} + +LAA-SCellConfiguration-v1430 ::= SEQUENCE { + crossCarrierSchedulingConfig-UL-r14 CHOICE { + release NULL, + setup SEQUENCE { + crossCarrierSchedulingConfigLAA-UL-r14 CrossCarrierSchedulingConfigLAA-UL-r14 + } + } OPTIONAL, -- Cond Cross-Carrier-ConfigUL + lbt-Config-r14 LBT-Config-r14 OPTIONAL, -- Need ON + pdcch-ConfigLAA-r14 PDCCH-ConfigLAA-r14 OPTIONAL, -- Need ON + absenceOfAnyOtherTechnology-r14 ENUMERATED {true} OPTIONAL, -- Need OR + soundingRS-UL-ConfigDedicatedAperiodic-v1430 + SoundingRS-UL-ConfigDedicatedAperiodic-v1430 OPTIONAL -- Need ON +} + +LBT-Config-r14 ::= CHOICE{ + maxEnergyDetectionThreshold-r14 INTEGER(-85..-52), + energyDetectionThresholdOffset-r14 INTEGER(-13..20) +} + +CSI-RS-ConfigNZPToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r11)) OF CSI-RS-ConfigNZP-r11 + +CSI-RS-ConfigNZPToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-v1310)) OF CSI-RS-ConfigNZP-r11 + +CSI-RS-ConfigNZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r11)) OF CSI-RS-ConfigNZPId-r11 + +CSI-RS-ConfigNZPToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-v1310)) OF CSI-RS-ConfigNZPId-v1310 + +CSI-RS-ConfigZPToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZP-r11 + +CSI-RS-ConfigZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZPId-r11 + +SoundingRS-AperiodicSet-r14 ::= SEQUENCE{ + srs-CC-SetIndexList-r14 + SEQUENCE (SIZE (1..4)) OF SRS-CC-SetIndex-r14 + OPTIONAL, -- Cond SRS-Trigger-TypeA + soundingRS-UL-ConfigDedicatedAperiodic-r14 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 +} + +SoundingRS-AperiodicSetUpPTsExt-r14 ::= SEQUENCE{ + srs-CC-SetIndexList-r14 + SEQUENCE (SIZE (1..4)) OF SRS-CC-SetIndex-r14 + OPTIONAL, -- Cond SRS-Trigger-TypeA + soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r14 + SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 +} + + +P-Max ::= INTEGER (-30..33) + + +PRACH-ConfigSIB ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + prach-ConfigInfo PRACH-ConfigInfo +} + +PRACH-ConfigSIB-v1310 ::= SEQUENCE { + rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsPrachInfoList-r13, + mpdcch-startSF-CSS-RA-r13 CHOICE { + fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, v5, v8, + v10}, + tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10, v20, spare} + } OPTIONAL, -- Cond MP + prach-HoppingOffset-r13 INTEGER (0..94) OPTIONAL, -- Need OR + prach-ParametersListCE-r13 PRACH-ParametersListCE-r13 +} + +PRACH-Config ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + prach-ConfigInfo PRACH-ConfigInfo OPTIONAL -- Need ON +} + +PRACH-Config-v1310 ::= SEQUENCE { + rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsPrachInfoList-r13 OPTIONAL, -- Cond MP + mpdcch-startSF-CSS-RA-r13 CHOICE { + fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, v5, v8, + v10}, + tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10, v20, spare} + } OPTIONAL, -- Cond MP + prach-HoppingOffset-r13 INTEGER (0..94) OPTIONAL, -- Need OR + prach-ParametersListCE-r13 PRACH-ParametersListCE-r13 OPTIONAL, -- Cond MP + initial-CE-level-r13 INTEGER (0..3) OPTIONAL -- Need OR +} + +PRACH-Config-v1430 ::= SEQUENCE { + rootSequenceIndexHighSpeed-r14 INTEGER (0..837), + zeroCorrelationZoneConfigHighSpeed-r14 INTEGER (0..12), + prach-ConfigIndexHighSpeed-r14 INTEGER (0..63), + prach-FreqOffsetHighSpeed-r14 INTEGER (0..94) +} + +PRACH-ConfigSCell-r10 ::= SEQUENCE { + prach-ConfigIndex-r10 INTEGER (0..63) +} + +PRACH-ConfigInfo ::= SEQUENCE { + prach-ConfigIndex INTEGER (0..63), + highSpeedFlag BOOLEAN, + zeroCorrelationZoneConfig INTEGER (0..15), + prach-FreqOffset INTEGER (0..94) +} + +PRACH-ParametersListCE-r13 ::= SEQUENCE (SIZE(1..maxCE-Level-r13)) OF PRACH-ParametersCE-r13 + +PRACH-ParametersCE-r13 ::= SEQUENCE { + prach-ConfigIndex-r13 INTEGER (0..63), + prach-FreqOffset-r13 INTEGER (0..94), + prach-StartingSubframe-r13 ENUMERATED {sf2, sf4, sf8, sf16, sf32, sf64, sf128, + sf256} OPTIONAL, -- Need OP + maxNumPreambleAttemptCE-r13 + ENUMERATED {n3, n4, n5, n6, n7, n8, n10} OPTIONAL, -- Need OP + numRepetitionPerPreambleAttempt-r13 ENUMERATED {n1,n2,n4,n8,n16,n32,n64,n128}, + mpdcch-NarrowbandsToMonitor-r13 SEQUENCE (SIZE(1..2)) OF + INTEGER (1..maxAvailNarrowBands-r13), + mpdcch-NumRepetition-RA-r13 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + prach-HoppingConfig-r13 ENUMERATED {on,off} +} + +RSRP-ThresholdsPrachInfoList-r13 ::= SEQUENCE (SIZE(1..3)) OF RSRP-Range + + +PresenceAntennaPort1 ::= BOOLEAN + + +PUCCH-ConfigCommon ::= SEQUENCE { + deltaPUCCH-Shift ENUMERATED {ds1, ds2, ds3}, + nRB-CQI INTEGER (0..98), + nCS-AN INTEGER (0..7), + n1PUCCH-AN INTEGER (0..2047) +} + +PUCCH-ConfigCommon-v1310 ::= SEQUENCE { + n1PUCCH-AN-InfoList-r13 N1PUCCH-AN-InfoList-r13 OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level0-r13 ENUMERATED {n1, n2, n4, n8} OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level1-r13 ENUMERATED {n1, n2, n4, n8} OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level2-r13 ENUMERATED {n4, n8, n16, n32} OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level3-r13 ENUMERATED {n4, n8, n16, n32} OPTIONAL -- Need OR +} + +PUCCH-ConfigCommon-v1430 ::= SEQUENCE { + pucch-NumRepetitionCE-Msg4-Level3-r14 ENUMERATED {n64, n128} OPTIONAL -- Need OR +} + +PUCCH-ConfigDedicated ::= SEQUENCE { + ackNackRepetition CHOICE{ + release NULL, + setup SEQUENCE { + repetitionFactor ENUMERATED {n2, n4, n6, spare1}, + n1PUCCH-AN-Rep INTEGER (0..2047) + } + }, + tdd-AckNackFeedbackMode ENUMERATED {bundling, multiplexing} OPTIONAL -- Cond TDD +} + +PUCCH-ConfigDedicated-v1020 ::= SEQUENCE { + pucch-Format-r10 CHOICE { + format3-r10 PUCCH-Format3-Conf-r13, + channelSelection-r10 SEQUENCE { + n1PUCCH-AN-CS-r10 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-List-r10 SEQUENCE (SIZE (1..2)) OF N1PUCCH-AN-CS-r10 + } + } OPTIONAL -- Need ON + } + } OPTIONAL, -- Need OR + twoAntennaPortActivatedPUCCH-Format1a1b-r10 ENUMERATED {true} OPTIONAL, -- Need OR + simultaneousPUCCH-PUSCH-r10 ENUMERATED {true} OPTIONAL, -- Need OR + n1PUCCH-AN-RepP1-r10 INTEGER (0..2047) OPTIONAL -- Need OR +} + +PUCCH-ConfigDedicated-v1130 ::= SEQUENCE { + n1PUCCH-AN-CS-v1130 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-ListP1-r11 SEQUENCE (SIZE (2..4)) OF INTEGER (0..2047) + } + } OPTIONAL, -- Need ON + nPUCCH-Param-r11 CHOICE { + release NULL, + setup SEQUENCE { + nPUCCH-Identity-r11 INTEGER (0..503), + n1PUCCH-AN-r11 INTEGER (0..2047) + } + } OPTIONAL -- Need ON +} + +PUCCH-ConfigDedicated-v1250 ::= SEQUENCE { + nkaPUCCH-Param-r12 CHOICE { + release NULL, + setup SEQUENCE { + nkaPUCCH-AN-r12 INTEGER (0..2047) + } + } +} + +PUCCH-ConfigDedicated-r13 ::= SEQUENCE { +--Release 8 + ackNackRepetition-r13 CHOICE{ + release NULL, + setup SEQUENCE { + repetitionFactor-r13 ENUMERATED {n2, n4, n6, spare1}, + n1PUCCH-AN-Rep-r13 INTEGER (0..2047) + } + }, + tdd-AckNackFeedbackMode-r13 ENUMERATED {bundling, multiplexing} OPTIONAL, -- Cond TDD +--Release 10 + pucch-Format-r13 CHOICE { + format3-r13 SEQUENCE { + n3PUCCH-AN-List-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) OPTIONAL, -- Need ON + twoAntennaPortActivatedPUCCH-Format3-r13 CHOICE { + release NULL, + setup SEQUENCE { + n3PUCCH-AN-ListP1-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) + } + } OPTIONAL -- Need ON + }, + channelSelection-r13 SEQUENCE { + n1PUCCH-AN-CS-r13 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-List-r13 SEQUENCE (SIZE (1..2)) OF N1PUCCH-AN-CS-r10, + n1PUCCH-AN-CS-ListP1-r13 SEQUENCE (SIZE (2..4)) OF INTEGER (0..2047) + } + } OPTIONAL -- Need ON + }, + format4-r13 SEQUENCE { + format4-resourceConfiguration-r13 SEQUENCE (SIZE (4)) OF Format4-resource-r13, + format4-MultiCSI-resourceConfiguration-r13 SEQUENCE (SIZE (1..2)) OF Format4-resource-r13 OPTIONAL -- Need OR + }, + format5-r13 SEQUENCE { + format5-resourceConfiguration-r13 SEQUENCE (SIZE (4)) OF Format5-resource-r13, + format5-MultiCSI-resourceConfiguration-r13 Format5-resource-r13 OPTIONAL -- Need OR + } + } OPTIONAL, -- Need OR + twoAntennaPortActivatedPUCCH-Format1a1b-r13 ENUMERATED {true} OPTIONAL, -- Need OR + simultaneousPUCCH-PUSCH-r13 ENUMERATED {true} OPTIONAL, -- Need OR + n1PUCCH-AN-RepP1-r13 INTEGER (0..2047) OPTIONAL, -- Need OR +--Release 11 + nPUCCH-Param-r13 CHOICE { + release NULL, + setup SEQUENCE { + nPUCCH-Identity-r13 INTEGER (0..503), + n1PUCCH-AN-r13 INTEGER (0..2047) + } + } OPTIONAL, -- Need ON +--Release 12 + nkaPUCCH-Param-r13 CHOICE { + release NULL, + setup SEQUENCE { + nkaPUCCH-AN-r13 INTEGER (0..2047) + } + } OPTIONAL, -- Need ON +--Release 13 + spatialBundlingPUCCH-r13 BOOLEAN, + spatialBundlingPUSCH-r13 BOOLEAN, + harq-TimingTDD-r13 BOOLEAN, + codebooksizeDetermination-r13 ENUMERATED {dai,cc} OPTIONAL, -- Need OR + maximumPayloadCoderate-r13 INTEGER (0..7) OPTIONAL, -- Need OR + pucch-NumRepetitionCE-r13 CHOICE { + release NULL, + setup CHOICE { + modeA SEQUENCE { + pucch-NumRepetitionCE-format1-r13 ENUMERATED {r1, r2, r4, r8}, + pucch-NumRepetitionCE-format2-r13 ENUMERATED {r1, r2, r4, r8} + }, + modeB SEQUENCE { + pucch-NumRepetitionCE-format1-r13 ENUMERATED {r4, r8, r16, r32}, + pucch-NumRepetitionCE-format2-r13 ENUMERATED {r4, r8, r16, r32} + } + } + } OPTIONAL --Need ON +} + +PUCCH-ConfigDedicated-v1370 ::= SEQUENCE { + pucch-Format-v1370 CHOICE { + release NULL, + setup PUCCH-Format3-Conf-r13 + } +} + +PUCCH-Format3-Conf-r13 ::= SEQUENCE { + n3PUCCH-AN-List-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) OPTIONAL, -- Need ON + twoAntennaPortActivatedPUCCH-Format3-r13 CHOICE { + release NULL, + setup SEQUENCE { + n3PUCCH-AN-ListP1-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) + } + } OPTIONAL -- Need ON +} + +PUCCH-ConfigDedicated-v1430 ::= SEQUENCE { + pucch-NumRepetitionCE-format1-r14 ENUMERATED {r64,r128} OPTIONAL -- Need OR +} + +Format4-resource-r13 ::= SEQUENCE { + startingPRB-format4-r13 INTEGER (0..109), + numberOfPRB-format4-r13 INTEGER (0..7) +} + +Format5-resource-r13 ::= SEQUENCE { + startingPRB-format5-r13 INTEGER (0..109), + cdm-index-format5-r13 INTEGER (0..1) +} + + + +N1PUCCH-AN-CS-r10 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + +N1PUCCH-AN-InfoList-r13 ::= SEQUENCE (SIZE(1..maxCE-Level-r13)) OF INTEGER (0..2047) + + +PUSCH-ConfigCommon ::= SEQUENCE { + pusch-ConfigBasic SEQUENCE { + n-SB INTEGER (1..4), + hoppingMode ENUMERATED {interSubFrame, intraAndInterSubFrame}, + pusch-HoppingOffset INTEGER (0..98), + enable64QAM BOOLEAN + }, + ul-ReferenceSignalsPUSCH UL-ReferenceSignalsPUSCH +} + +PUSCH-ConfigCommon-v1270 ::= SEQUENCE { + enable64QAM-v1270 ENUMERATED {true} +} + +PUSCH-ConfigCommon-v1310 ::= SEQUENCE { + pusch-maxNumRepetitionCEmodeA-r13 ENUMERATED { + r8, r16, r32 } OPTIONAL, -- Need OR + pusch-maxNumRepetitionCEmodeB-r13 ENUMERATED { + r192, r256, r384, r512, r768, r1024, + r1536, r2048} OPTIONAL, -- Need OR + pusch-HoppingOffset-v1310 + INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicated ::= SEQUENCE { + betaOffset-ACK-Index INTEGER (0..15), + betaOffset-RI-Index INTEGER (0..15), + betaOffset-CQI-Index INTEGER (0..15) +} + +PUSCH-ConfigDedicated-v1020 ::= SEQUENCE { + betaOffsetMC-r10 SEQUENCE { + betaOffset-ACK-Index-MC-r10 INTEGER (0..15), + betaOffset-RI-Index-MC-r10 INTEGER (0..15), + betaOffset-CQI-Index-MC-r10 INTEGER (0..15) + } OPTIONAL, -- Need OR + groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicated-v1130 ::= SEQUENCE { + pusch-DMRS-r11 CHOICE { + release NULL, + setup SEQUENCE { + nPUSCH-Identity-r11 INTEGER (0..509), + nDMRS-CSH-Identity-r11 INTEGER (0..509) + } + } +} + +PUSCH-ConfigDedicated-v1250::= SEQUENCE { + uciOnPUSCH CHOICE { + release NULL, + setup SEQUENCE { + betaOffset-ACK-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffset-RI-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffset-CQI-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffsetMC-r12 SEQUENCE { + betaOffset-ACK-Index-MC-SubframeSet2-r12 INTEGER (0..15), + betaOffset-RI-Index-MC-SubframeSet2-r12 INTEGER (0..15), + betaOffset-CQI-Index-MC-SubframeSet2-r12 INTEGER (0..15) + } OPTIONAL -- Need OR + } + } +} +PUSCH-ConfigDedicated-r13 ::= SEQUENCE { + betaOffset-ACK-Index-r13 INTEGER (0..15), + betaOffset2-ACK-Index-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-r13 INTEGER (0..15), + betaOffset-CQI-Index-r13 INTEGER (0..15), + betaOffsetMC-r13 SEQUENCE { + betaOffset-ACK-Index-MC-r13 INTEGER (0..15), + betaOffset2-ACK-Index-MC-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-MC-r13 INTEGER (0..15), + betaOffset-CQI-Index-MC-r13 INTEGER (0..15) + } OPTIONAL, -- Need OR + groupHoppingDisabled-r13 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r13 ENUMERATED {true} OPTIONAL, -- Need OR + pusch-DMRS-r11 CHOICE { + release NULL, + setup SEQUENCE { + nPUSCH-Identity-r13 INTEGER (0..509), + nDMRS-CSH-Identity-r13 INTEGER (0..509) + } + } OPTIONAL, -- Need ON + uciOnPUSCH CHOICE { + release NULL, + setup SEQUENCE { + betaOffset-ACK-Index-SubframeSet2-r13 INTEGER (0..15), + betaOffset2-ACK-Index-SubframeSet2-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-SubframeSet2-r13 INTEGER (0..15), + betaOffset-CQI-Index-SubframeSet2-r13 INTEGER (0..15), + betaOffsetMC-r12 SEQUENCE { + betaOffset-ACK-Index-MC-SubframeSet2-r13 INTEGER (0..15), + betaOffset2-ACK-Index-MC-SubframeSet2-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-MC-SubframeSet2-r13 INTEGER (0..15), + betaOffset-CQI-Index-MC-SubframeSet2-r13 INTEGER (0..15) + } OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + pusch-HoppingConfig-r13 ENUMERATED {on} OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicated-v1430 ::= SEQUENCE { + ce-PUSCH-NB-MaxTBS-r14 ENUMERATED {on} OPTIONAL, -- Need OR + ce-PUSCH-MaxBandwidth-r14 ENUMERATED {bw5} OPTIONAL, -- Need OR + tdd-PUSCH-UpPTS-r14 TDD-PUSCH-UpPTS-r14 OPTIONAL, -- Need ON + ul-DMRS-IFDMA-r14 BOOLEAN, + enable256QAM-r14 Enable256QAM-r14 OPTIONAL -- Need ON +} + +PUSCH-ConfigDedicatedSCell-r10 ::= SEQUENCE { + groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicatedSCell-v1430 ::= SEQUENCE { + enable256QAM-r14 Enable256QAM-r14 OPTIONAL -- Need OR +} + +TDD-PUSCH-UpPTS-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + symPUSCH-UpPTS-r14 ENUMERATED {sym1, sym2, sym3, sym4, sym5, sym6} OPTIONAL, -- Need ON + dmrs-LessUpPTS-Config-r14 ENUMERATED {true} OPTIONAL -- Need OR + } +} + +Enable256QAM-r14 ::= CHOICE { + release NULL, + setup CHOICE { + tpc-SubframeSet-Configured-r14 SEQUENCE { + subframeSet1-DCI-Format0-r14 BOOLEAN, + subframeSet1-DCI-Format4-r14 BOOLEAN, + subframeSet2-DCI-Format0-r14 BOOLEAN, + subframeSet2-DCI-Format4-r14 BOOLEAN + }, + tpc-SubframeSet-NotConfigured-r14 SEQUENCE { + dci-Format0-r14 BOOLEAN, + dci-Format4-r14 BOOLEAN + } + } +} + +PUSCH-EnhancementsConfig-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + pusch-HoppingOffsetPUSCH-Enh-r14 INTEGER (1..100) OPTIONAL, -- Need ON + interval-ULHoppingPUSCH-Enh-r14 CHOICE { + interval-FDD-PUSCH-Enh-r14 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-PUSCH-Enh-r14 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL -- Need ON + } +} + +UL-ReferenceSignalsPUSCH ::= SEQUENCE { + groupHoppingEnabled BOOLEAN, + groupAssignmentPUSCH INTEGER (0..29), + sequenceHoppingEnabled BOOLEAN, + cyclicShift INTEGER (0..7) +} + + +RACH-ConfigCommon ::= SEQUENCE { + preambleInfo SEQUENCE { + numberOfRA-Preambles ENUMERATED { + n4, n8, n12, n16, n20, n24, n28, + n32, n36, n40, n44, n48, n52, n56, + n60, n64}, + preamblesGroupAConfig SEQUENCE { + sizeOfRA-PreamblesGroupA ENUMERATED { + n4, n8, n12, n16, n20, n24, n28, + n32, n36, n40, n44, n48, n52, n56, + n60}, + messageSizeGroupA ENUMERATED {b56, b144, b208, b256}, + messagePowerOffsetGroupB ENUMERATED { + minusinfinity, dB0, dB5, dB8, dB10, dB12, + dB15, dB18}, + ... + } OPTIONAL -- Need OP + }, + powerRampingParameters PowerRampingParameters, + ra-SupervisionInfo SEQUENCE { + preambleTransMax PreambleTransMax, + ra-ResponseWindowSize ENUMERATED { + sf2, sf3, sf4, sf5, sf6, sf7, + sf8, sf10}, + mac-ContentionResolutionTimer ENUMERATED { + sf8, sf16, sf24, sf32, sf40, sf48, + sf56, sf64} + }, + maxHARQ-Msg3Tx INTEGER (1..8), + ..., + [[ preambleTransMax-CE-r13 PreambleTransMax OPTIONAL, -- Need OR + rach-CE-LevelInfoList-r13 RACH-CE-LevelInfoList-r13 OPTIONAL -- Need OR + ]] +} + +RACH-ConfigCommon-v1250 ::= SEQUENCE { + txFailParams-r12 SEQUENCE { + connEstFailCount-r12 ENUMERATED {n1, n2, n3, n4}, + connEstFailOffsetValidity-r12 ENUMERATED {s30, s60, s120, s240, + s300, s420, s600, s900}, + connEstFailOffset-r12 INTEGER (0..15) OPTIONAL -- Need OP + } +} + +RACH-ConfigCommonSCell-r11 ::= SEQUENCE { + powerRampingParameters-r11 PowerRampingParameters, + ra-SupervisionInfo-r11 SEQUENCE { + preambleTransMax-r11 PreambleTransMax + }, + ... +} + +RACH-CE-LevelInfoList-r13 ::= SEQUENCE (SIZE (1..maxCE-Level-r13)) OF RACH-CE-LevelInfo-r13 + +RACH-CE-LevelInfo-r13 ::= SEQUENCE { + preambleMappingInfo-r13 SEQUENCE { + firstPreamble-r13 INTEGER(0..63), + lastPreamble-r13 INTEGER(0..63) + }, + ra-ResponseWindowSize-r13 ENUMERATED {sf20, sf50, sf80, sf120, sf180, + sf240, sf320, sf400}, + + mac-ContentionResolutionTimer-r13 ENUMERATED {sf80, sf100, sf120, + sf160, sf200, sf240, sf480, sf960}, + rar-HoppingConfig-r13 ENUMERATED {on,off}, + ... +} + +PowerRampingParameters ::= SEQUENCE { + powerRampingStep ENUMERATED {dB0, dB2,dB4, dB6}, + preambleInitialReceivedTargetPower ENUMERATED { + dBm-120, dBm-118, dBm-116, dBm-114, dBm-112, + dBm-110, dBm-108, dBm-106, dBm-104, dBm-102, + dBm-100, dBm-98, dBm-96, dBm-94, + dBm-92, dBm-90} +} + +PreambleTransMax ::= ENUMERATED { + n3, n4, n5, n6, n7, n8, n10, n20, n50, + n100, n200} + + +RACH-ConfigDedicated ::= SEQUENCE { + ra-PreambleIndex INTEGER (0..63), + ra-PRACH-MaskIndex INTEGER (0..15) +} + + +RadioResourceConfigCommonSIB ::= SEQUENCE { + rach-ConfigCommon RACH-ConfigCommon, + bcch-Config BCCH-Config, + pcch-Config PCCH-Config, + prach-Config PRACH-ConfigSIB, + pdsch-ConfigCommon PDSCH-ConfigCommon, + pusch-ConfigCommon PUSCH-ConfigCommon, + pucch-ConfigCommon PUCCH-ConfigCommon, + soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon, + uplinkPowerControlCommon UplinkPowerControlCommon, + ul-CyclicPrefixLength UL-CyclicPrefixLength, + ..., + [[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need OR + ]], + [[ rach-ConfigCommon-v1250 RACH-ConfigCommon-v1250 OPTIONAL -- Need OR + ]], + [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR + ]], + [[ bcch-Config-v1310 BCCH-Config-v1310 OPTIONAL, -- Need OR + pcch-Config-v1310 PCCH-Config-v1310 OPTIONAL, -- Need OR + freqHoppingParameters-r13 FreqHoppingParameters-r13 OPTIONAL, -- Need OR + pdsch-ConfigCommon-v1310 PDSCH-ConfigCommon-v1310 OPTIONAL, -- Need OR + pusch-ConfigCommon-v1310 PUSCH-ConfigCommon-v1310 OPTIONAL, -- Need OR + prach-ConfigCommon-v1310 PRACH-ConfigSIB-v1310 OPTIONAL, -- Need OR + pucch-ConfigCommon-v1310 PUCCH-ConfigCommon-v1310 OPTIONAL -- Need OR + ]], + [[ highSpeedConfig-r14 HighSpeedConfig-r14 OPTIONAL, -- Need OR + prach-Config-v1430 PRACH-Config-v1430 OPTIONAL, -- Need OR + pucch-ConfigCommon-v1430 PUCCH-ConfigCommon-v1430 OPTIONAL -- Need OR + ]] +} + +RadioResourceConfigCommon ::= SEQUENCE { + rach-ConfigCommon RACH-ConfigCommon OPTIONAL, -- Need ON + prach-Config PRACH-Config, + pdsch-ConfigCommon PDSCH-ConfigCommon OPTIONAL, -- Need ON + pusch-ConfigCommon PUSCH-ConfigCommon, + phich-Config PHICH-Config OPTIONAL, -- Need ON + pucch-ConfigCommon PUCCH-ConfigCommon OPTIONAL, -- Need ON + soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon OPTIONAL, -- Need ON + uplinkPowerControlCommon UplinkPowerControlCommon OPTIONAL, -- Need ON + antennaInfoCommon AntennaInfoCommon OPTIONAL, -- Need ON + p-Max P-Max OPTIONAL, -- Need OP + tdd-Config TDD-Config OPTIONAL, -- Cond TDD + ul-CyclicPrefixLength UL-CyclicPrefixLength, + ..., + [[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need ON + ]], + [[ tdd-Config-v1130 TDD-Config-v1130 OPTIONAL -- Cond TDD3 + ]], + [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR + ]], + [[ + prach-Config-v1310 PRACH-Config-v1310 OPTIONAL, -- Need ON + freqHoppingParameters-r13 FreqHoppingParameters-r13 OPTIONAL, -- Need ON + pdsch-ConfigCommon-v1310 PDSCH-ConfigCommon-v1310 OPTIONAL, -- Need ON + pucch-ConfigCommon-v1310 PUCCH-ConfigCommon-v1310 OPTIONAL, -- Need ON + pusch-ConfigCommon-v1310 PUSCH-ConfigCommon-v1310 OPTIONAL, -- Need ON + uplinkPowerControlCommon-v1310 UplinkPowerControlCommon-v1310 OPTIONAL -- Need ON + ]], + [[ highSpeedConfig-r14 HighSpeedConfig-r14 OPTIONAL, -- Need OR + prach-Config-v1430 PRACH-Config-v1430 OPTIONAL, -- Need OR + pucch-ConfigCommon-v1430 PUCCH-ConfigCommon-v1430 OPTIONAL, -- Need OR + tdd-Config-v1430 TDD-Config-v1430 OPTIONAL -- Cond TDD3 + ]], + [[ + tdd-Config-v1450 TDD-Config-v1450 OPTIONAL -- Cond TDD3 + ]] +} + +RadioResourceConfigCommonPSCell-r12 ::= SEQUENCE { + basicFields-r12 RadioResourceConfigCommonSCell-r10, + pucch-ConfigCommon-r12 PUCCH-ConfigCommon, + rach-ConfigCommon-r12 RACH-ConfigCommon, + uplinkPowerControlCommonPSCell-r12 UplinkPowerControlCommonPSCell-r12, + ..., + [[ uplinkPowerControlCommonPSCell-v1310 + UplinkPowerControlCommon-v1310 OPTIONAL -- Need ON + ]] +} + +RadioResourceConfigCommonPSCell-v12f0 ::= SEQUENCE { + basicFields-v12f0 RadioResourceConfigCommonSCell-v10l0 +} + +RadioResourceConfigCommonPSCell-v1440 ::= SEQUENCE { + basicFields-v1440 RadioResourceConfigCommonSCell-v1440 +} + +RadioResourceConfigCommonSCell-r10 ::= SEQUENCE { + -- DL configuration as well as configuration applicable for DL and UL + nonUL-Configuration-r10 SEQUENCE { + -- 1: Cell characteristics + dl-Bandwidth-r10 ENUMERATED {n6, n15, n25, n50, n75, n100}, + -- 2: Physical configuration, general + antennaInfoCommon-r10 AntennaInfoCommon, + mbsfn-SubframeConfigList-r10 MBSFN-SubframeConfigList OPTIONAL, -- Need OR + -- 3: Physical configuration, control + phich-Config-r10 PHICH-Config, + -- 4: Physical configuration, physical channels + pdsch-ConfigCommon-r10 PDSCH-ConfigCommon, + tdd-Config-r10 TDD-Config OPTIONAL -- Cond TDDSCell + }, + -- UL configuration + ul-Configuration-r10 SEQUENCE { + ul-FreqInfo-r10 SEQUENCE { + ul-CarrierFreq-r10 ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth-r10 ENUMERATED {n6, n15, + n25, n50, n75, n100} OPTIONAL, -- Need OP + additionalSpectrumEmissionSCell-r10 AdditionalSpectrumEmission + }, + p-Max-r10 P-Max OPTIONAL, -- Need OP + uplinkPowerControlCommonSCell-r10 UplinkPowerControlCommonSCell-r10, + -- A special version of IE UplinkPowerControlCommon may be introduced + -- 3: Physical configuration, control + soundingRS-UL-ConfigCommon-r10 SoundingRS-UL-ConfigCommon, + ul-CyclicPrefixLength-r10 UL-CyclicPrefixLength, + -- 4: Physical configuration, physical channels + prach-ConfigSCell-r10 PRACH-ConfigSCell-r10 OPTIONAL, -- Cond TDD-OR-NoR11 + pusch-ConfigCommon-r10 PUSCH-ConfigCommon + } OPTIONAL, -- Need OR + ..., + [[ ul-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Need OP + ]], + [[ rach-ConfigCommonSCell-r11 RACH-ConfigCommonSCell-r11 OPTIONAL, -- Cond ULSCell + prach-ConfigSCell-r11 PRACH-Config OPTIONAL, -- Cond UL + tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD2 + uplinkPowerControlCommonSCell-v1130 + UplinkPowerControlCommonSCell-v1130 OPTIONAL -- Cond UL + ]], + [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR + ]], + [[ pucch-ConfigCommon-r13 PUCCH-ConfigCommon OPTIONAL, -- Cond UL + uplinkPowerControlCommonSCell-v1310 + UplinkPowerControlCommonSCell-v1310 OPTIONAL -- Cond UL + ]], + [[ highSpeedConfigSCell-r14 HighSpeedConfigSCell-r14 OPTIONAL, -- Need OR + prach-Config-v1430 PRACH-Config-v1430 OPTIONAL, -- Cond UL + ul-Configuration-r14 SEQUENCE { + ul-FreqInfo-r14 SEQUENCE { + ul-CarrierFreq-r14 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need OP + ul-Bandwidth-r14 ENUMERATED {n6, n15, + n25, n50, n75, n100} OPTIONAL, -- Need OP + additionalSpectrumEmissionSCell-r14 AdditionalSpectrumEmission + }, + p-Max-r14 P-Max OPTIONAL, -- Need OP + soundingRS-UL-ConfigCommon-r14 SoundingRS-UL-ConfigCommon, + ul-CyclicPrefixLength-r14 UL-CyclicPrefixLength, + prach-ConfigSCell-r14 PRACH-ConfigSCell-r10 OPTIONAL, -- Cond TDD-OR-NoR11 + uplinkPowerControlCommonPUSCH-LessCell-v1430 UplinkPowerControlCommonPUSCH-LessCell-v1430 OPTIONAL -- Need OR +} OPTIONAL, -- Cond ULSRS + harq-ReferenceConfig-r14 ENUMERATED {sa2,sa4,sa5} OPTIONAL, -- Need OR + soundingRS-FlexibleTiming-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL-- Need ON + ]] +} + +RadioResourceConfigCommonSCell-v10l0 ::= SEQUENCE { + -- UL configuration + ul-Configuration-v10l0 SEQUENCE { + additionalSpectrumEmissionSCell-v10l0 AdditionalSpectrumEmission-v10l0 + } +} + +RadioResourceConfigCommonSCell-v1440 ::= SEQUENCE { + ul-Configuration-v1440 SEQUENCE { + ul-FreqInfo-v1440 SEQUENCE { + additionalSpectrumEmissionSCell-v1440 AdditionalSpectrumEmission-v10l0 + } + } +} + +BCCH-Config ::= SEQUENCE { + modificationPeriodCoeff ENUMERATED {n2, n4, n8, n16} +} + +BCCH-Config-v1310 ::= SEQUENCE { + modificationPeriodCoeff-v1310 ENUMERATED {n64} +} + +FreqHoppingParameters-r13 ::= SEQUENCE { + dummy ENUMERATED {nb2, nb4} OPTIONAL, + dummy2 CHOICE { + interval-FDD-r13 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-r13 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL, + dummy3 CHOICE { + interval-FDD-r13 ENUMERATED {int2, int4, int8, int16}, + interval-TDD-r13 ENUMERATED { int5, int10, int20, int40} + } OPTIONAL, + interval-ULHoppingConfigCommonModeA-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-r13 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL, -- Cond MP-A + interval-ULHoppingConfigCommonModeB-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int2, int4, int8, int16}, + interval-TDD-r13 ENUMERATED { int5, int10, int20, int40} + } OPTIONAL, -- Cond MP-B + dummy4 INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL +} + +PCCH-Config ::= SEQUENCE { + defaultPagingCycle ENUMERATED { + rf32, rf64, rf128, rf256}, + nB ENUMERATED { + fourT, twoT, oneT, halfT, quarterT, oneEighthT, + oneSixteenthT, oneThirtySecondT} +} + +PCCH-Config-v1310 ::= SEQUENCE { + paging-narrowBands-r13 INTEGER (1..maxAvailNarrowBands-r13), + mpdcch-NumRepetition-Paging-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, r256}, + nB-v1310 ENUMERATED {one64thT, one128thT, one256thT} + OPTIONAL -- Need OR +} + +UL-CyclicPrefixLength ::= ENUMERATED {len1, len2} + +HighSpeedConfig-r14 ::= SEQUENCE { + highSpeedEnhancedMeasFlag-r14 ENUMERATED {true} OPTIONAL, -- Need OR + highSpeedEnhancedDemodulationFlag-r14 ENUMERATED {true} OPTIONAL -- Need OR +} + +HighSpeedConfigSCell-r14 ::= SEQUENCE { + highSpeedEnhancedDemodulationFlag-r14 ENUMERATED {true} OPTIONAL -- Need OR +} + + +RadioResourceConfigDedicated ::= SEQUENCE { + srb-ToAddModList SRB-ToAddModList OPTIONAL, -- Cond HO-Conn + drb-ToAddModList DRB-ToAddModList OPTIONAL, -- Cond HO-toEUTRA + drb-ToReleaseList DRB-ToReleaseList OPTIONAL, -- Need ON + mac-MainConfig CHOICE { + explicitValue MAC-MainConfig, + defaultValue NULL + } OPTIONAL, -- Cond HO-toEUTRA2 + sps-Config SPS-Config OPTIONAL, -- Need ON + physicalConfigDedicated PhysicalConfigDedicated OPTIONAL, -- Need ON + ..., + [[ rlf-TimersAndConstants-r9 RLF-TimersAndConstants-r9 OPTIONAL -- Need ON + ]], + [[ measSubframePatternPCell-r10 MeasSubframePatternPCell-r10 OPTIONAL -- Need ON + ]], + [[ neighCellsCRS-Info-r11 NeighCellsCRS-Info-r11 OPTIONAL -- Need ON + ]], + [[ naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL -- Need ON + ]], + [[ neighCellsCRS-Info-r13 NeighCellsCRS-Info-r13 OPTIONAL, -- Cond CRSIM + rlf-TimersAndConstants-r13 RLF-TimersAndConstants-r13 OPTIONAL -- Need ON + ]], + [[ sps-Config-v1430 SPS-Config-v1430 OPTIONAL -- Cond SPS + ]] +} + +RadioResourceConfigDedicated-v1370 ::= SEQUENCE { + physicalConfigDedicated-v1370 PhysicalConfigDedicated-v1370 OPTIONAL -- Need ON +} + +RadioResourceConfigDedicatedPSCell-r12 ::= SEQUENCE { + -- UE specific configuration extensions applicable for an PSCell + physicalConfigDedicatedPSCell-r12 PhysicalConfigDedicated OPTIONAL, -- Need ON + sps-Config-r12 SPS-Config OPTIONAL, -- Need ON + naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL, -- Need ON + ..., + [[ neighCellsCRS-InfoPSCell-r13 NeighCellsCRS-Info-r13 OPTIONAL -- Need ON + ]], + [[ sps-Config-v1430 SPS-Config-v1430 OPTIONAL -- Cond SPS2 + ]] +} + +RadioResourceConfigDedicatedPSCell-v1370 ::= SEQUENCE { + physicalConfigDedicatedPSCell-v1370 PhysicalConfigDedicated-v1370 OPTIONAL -- Need ON +} + +RadioResourceConfigDedicatedSCG-r12 ::= SEQUENCE { + drb-ToAddModListSCG-r12 DRB-ToAddModListSCG-r12 OPTIONAL, -- Need ON + mac-MainConfigSCG-r12 MAC-MainConfig OPTIONAL, -- Need ON + rlf-TimersAndConstantsSCG-r12 RLF-TimersAndConstantsSCG-r12 OPTIONAL, -- Need ON + ... +} + +RadioResourceConfigDedicatedSCell-r10 ::= SEQUENCE { + -- UE specific configuration extensions applicable for an SCell + physicalConfigDedicatedSCell-r10 PhysicalConfigDedicatedSCell-r10 OPTIONAL, -- Need ON + ..., + [[ mac-MainConfigSCell-r11 MAC-MainConfigSCell-r11 OPTIONAL -- Cond SCellAdd + ]], + [[ naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL -- Need ON + ]], + [[ neighCellsCRS-InfoSCell-r13 NeighCellsCRS-Info-r13 OPTIONAL -- Need ON + ]], + [[ physicalConfigDedicatedSCell-v1370 PhysicalConfigDedicatedSCell-v1370 OPTIONAL -- Need ON + ]] +} + +SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod + +SRB-ToAddMod ::= SEQUENCE { + srb-Identity INTEGER (1..2), + rlc-Config CHOICE { + explicitValue RLC-Config, + defaultValue NULL + } OPTIONAL, -- Cond Setup + logicalChannelConfig CHOICE { + explicitValue LogicalChannelConfig, + defaultValue NULL + } OPTIONAL, -- Cond Setup + ..., + [[ pdcp-verChange-r15 ENUMERATED {true} OPTIONAL -- Cond NR-PDCP + ]] +} + +DRB-ToAddModList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod + +DRB-ToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddModSCG-r12 + +DRB-ToAddMod ::= SEQUENCE { + eps-BearerIdentity INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity DRB-Identity, + pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP + rlc-Config RLC-Config OPTIONAL, -- Cond SetupM + logicalChannelIdentity INTEGER (3..10) OPTIONAL, -- Cond DRB-SetupM + logicalChannelConfig LogicalChannelConfig OPTIONAL, -- Cond SetupM + ..., + [[ drb-TypeChange-r12 ENUMERATED {toMCG} OPTIONAL, -- Need OP + rlc-Config-v1250 RLC-Config-v1250 OPTIONAL -- Need ON + ]], + [[ rlc-Config-v1310 RLC-Config-v1310 OPTIONAL, -- Need ON + drb-TypeLWA-r13 BOOLEAN OPTIONAL, -- Need ON + drb-TypeLWIP-r13 ENUMERATED {lwip, lwip-DL-only, + lwip-UL-only, eutran} OPTIONAL -- Need ON + ]], + [[ rlc-Config-v1430 RLC-Config-v1430 OPTIONAL, -- Need ON + lwip-UL-Aggregation-r14 BOOLEAN OPTIONAL, -- Cond LWIP + lwip-DL-Aggregation-r14 BOOLEAN OPTIONAL, -- Cond LWIP + lwa-WLAN-AC-r14 ENUMERATED {ac-bk, ac-be, ac-vi, ac-vo} OPTIONAL -- Cond UL-LWA + ]], + [[ rlc-Config-v1510 RLC-Config-v1510 OPTIONAL -- Need ON + ]] +} + +DRB-ToAddModSCG-r12 ::= SEQUENCE { + drb-Identity-r12 DRB-Identity, + drb-Type-r12 CHOICE { + split-r12 NULL, + scg-r12 SEQUENCE { + eps-BearerIdentity-r12 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + pdcp-Config-r12 PDCP-Config OPTIONAL -- Cond PDCP-S + } + } OPTIONAL, -- Cond SetupS2 + rlc-ConfigSCG-r12 RLC-Config OPTIONAL, -- Cond SetupS + rlc-Config-v1250 RLC-Config-v1250 OPTIONAL, -- Need ON + logicalChannelIdentitySCG-r12 INTEGER (3..10) OPTIONAL, -- Cond DRB-SetupS + logicalChannelConfigSCG-r12 LogicalChannelConfig OPTIONAL, -- Cond SetupS + ..., + [[ rlc-Config-v1430 RLC-Config-v1430 OPTIONAL -- Need ON + ]] +} + +DRB-ToReleaseList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity + +MeasSubframePatternPCell-r10 ::= CHOICE { + release NULL, + setup MeasSubframePattern-r10 +} + +NeighCellsCRS-Info-r11 ::= CHOICE { + release NULL, + setup CRS-AssistanceInfoList-r11 +} + +CRS-AssistanceInfoList-r11 ::= SEQUENCE (SIZE (1..maxCellReport)) OF CRS-AssistanceInfo-r11 + +CRS-AssistanceInfo-r11 ::= SEQUENCE { + physCellId-r11 PhysCellId, + antennaPortsCount-r11 ENUMERATED {an1, an2, an4, spare1}, + mbsfn-SubframeConfigList-r11 MBSFN-SubframeConfigList, + ..., + [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL -- Need ON + ]] +} + +NeighCellsCRS-Info-r13 ::= CHOICE { + release NULL, + setup CRS-AssistanceInfoList-r13 +} + +CRS-AssistanceInfoList-r13 ::= SEQUENCE (SIZE (1..maxCellReport)) OF CRS-AssistanceInfo-r13 + +CRS-AssistanceInfo-r13 ::= SEQUENCE { + physCellId-r13 PhysCellId, + antennaPortsCount-r13 ENUMERATED {an1, an2, an4, spare1}, + mbsfn-SubframeConfigList-r13 MBSFN-SubframeConfigList OPTIONAL, -- Need ON + ..., + [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL -- Need ON + ]] +} + +NAICS-AssistanceInfo-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + neighCellsToReleaseList-r12 NeighCellsToReleaseList-r12 OPTIONAL , -- Need ON + neighCellsToAddModList-r12 NeighCellsToAddModList-r12 OPTIONAL, -- Need ON + servCellp-a-r12 P-a OPTIONAL -- Need ON + } +} + +NeighCellsToReleaseList-r12 ::= SEQUENCE (SIZE (1..maxNeighCell-r12)) OF PhysCellId + +NeighCellsToAddModList-r12 ::= SEQUENCE (SIZE (1..maxNeighCell-r12)) OF NeighCellsInfo-r12 + +NeighCellsInfo-r12 ::= SEQUENCE { + physCellId-r12 PhysCellId, + p-b-r12 INTEGER (0..3), + crs-PortsCount-r12 ENUMERATED {n1, n2, n4, spare}, + mbsfn-SubframeConfig-r12 MBSFN-SubframeConfigList OPTIONAL, -- Need ON + p-aList-r12 SEQUENCE (SIZE (1..maxP-a-PerNeighCell-r12)) OF P-a, + transmissionModeList-r12 BIT STRING (SIZE(8)), + resAllocGranularity-r12 INTEGER (1..4), + ... +} +P-a ::= ENUMERATED { dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} + + +RCLWI-Configuration-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + rclwi-Config-r13 RCLWI-Config-r13 + } +} + +RCLWI-Config-r13 ::= SEQUENCE { + command CHOICE { + steerToWLAN-r13 SEQUENCE { + mobilityConfig-r13 WLAN-Id-List-r12 + }, + steerToLTE-r13 NULL + }, + ... +} + + +RLC-Config ::= CHOICE { + am SEQUENCE { + ul-AM-RLC UL-AM-RLC, + dl-AM-RLC DL-AM-RLC + }, + um-Bi-Directional SEQUENCE { + ul-UM-RLC UL-UM-RLC, + dl-UM-RLC DL-UM-RLC + }, + um-Uni-Directional-UL SEQUENCE { + ul-UM-RLC UL-UM-RLC + }, + um-Uni-Directional-DL SEQUENCE { + dl-UM-RLC DL-UM-RLC + }, + ... +} + +RLC-Config-v1250 ::= SEQUENCE { + ul-extended-RLC-LI-Field-r12 BOOLEAN, + dl-extended-RLC-LI-Field-r12 BOOLEAN +} + +RLC-Config-v1310 ::= SEQUENCE { + ul-extended-RLC-AM-SN-r13 BOOLEAN, + dl-extended-RLC-AM-SN-r13 BOOLEAN, + pollPDU-v1310 PollPDU-v1310 OPTIONAL -- Need OR +} + +RLC-Config-v1430 ::= CHOICE { + release NULL, + setup SEQUENCE { + pollByte-r14 PollByte-r14 + } +} + +RLC-Config-v1510 ::= SEQUENCE { + reestablishRLC-r15 ENUMERATED {true} +} + +UL-AM-RLC ::= SEQUENCE { + t-PollRetransmit T-PollRetransmit, + pollPDU PollPDU, + pollByte PollByte, + maxRetxThreshold ENUMERATED { + t1, t2, t3, t4, t6, t8, t16, t32} +} + +DL-AM-RLC ::= SEQUENCE { + t-Reordering T-Reordering, + t-StatusProhibit T-StatusProhibit +} + +UL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength +} + +DL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength, + t-Reordering T-Reordering +} + +SN-FieldLength ::= ENUMERATED {size5, size10} + +T-PollRetransmit ::= ENUMERATED { + ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, ms800-v1310, + ms1000-v1310, ms2000-v1310, ms4000-v1310, + spare5, spare4, spare3, spare2, spare1} + +PollPDU ::= ENUMERATED { + p4, p8, p16, p32, p64, p128, p256, pInfinity} + +PollPDU-v1310 ::= ENUMERATED { + p512, p1024, p2048, p4096, p6144, p8192, p12288, p16384} + +PollByte ::= ENUMERATED { + kB25, kB50, kB75, kB100, kB125, kB250, kB375, + kB500, kB750, kB1000, kB1250, kB1500, kB2000, + kB3000, kBinfinity, spare1} + +PollByte-r14 ::= ENUMERATED { + kB1, kB2, kB5, kB8, kB10, kB15, kB3500, + kB4000, kB4500, kB5000, kB5500, kB6000, kB6500, + kB7000, kB7500, kB8000, kB9000, kB10000, kB11000, kB12000, + kB13000, kB14000, kB15000, kB16000, kB17000, kB18000, + kB19000, kB20000, kB25000, kB30000, kB35000, kB40000} + +T-Reordering ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms110, + ms120, ms130, ms140, ms150, ms160, ms170, + ms180, ms190, ms200, ms1600-v1310} + +T-StatusProhibit ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, ms800-v1310, + ms1000-v1310, ms1200-v1310, ms1600-v1310, ms2000-v1310, ms2400-v1310, spare2, + spare1} + + +RLF-TimersAndConstants-r9 ::= CHOICE { + release NULL, + setup SEQUENCE { + t301-r9 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t310-r9 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n310-r9 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311-r9 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311-r9 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ... + } +} + +RLF-TimersAndConstants-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + t301-v1310 ENUMERATED { + ms2500, ms3000, ms3500, ms4000, ms5000, + ms6000, ms8000, ms10000}, + ..., + [[ t310-v1330 ENUMERATED {ms4000, ms6000} OPTIONAL -- Need ON + ]] + } +} + +RLF-TimersAndConstantsSCG-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + t313-r12 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n313-r12 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + n314-r12 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ... + } +} + + +RN-SubframeConfig-r10 ::= SEQUENCE { + subframeConfigPattern-r10 CHOICE { + subframeConfigPatternFDD-r10 BIT STRING (SIZE(8)), + subframeConfigPatternTDD-r10 INTEGER (0..31) + } OPTIONAL, -- Need ON + rpdcch-Config-r10 SEQUENCE { + resourceAllocationType-r10 ENUMERATED {type0, type1, type2Localized, type2Distributed, + spare4, spare3, spare2, spare1}, + resourceBlockAssignment-r10 CHOICE { + type01-r10 CHOICE { + nrb6-r10 BIT STRING (SIZE(6)), + nrb15-r10 BIT STRING (SIZE(8)), + nrb25-r10 BIT STRING (SIZE(13)), + nrb50-r10 BIT STRING (SIZE(17)), + nrb75-r10 BIT STRING (SIZE(19)), + nrb100-r10 BIT STRING (SIZE(25)) + }, + type2-r10 CHOICE { + nrb6-r10 BIT STRING (SIZE(5)), + nrb15-r10 BIT STRING (SIZE(7)), + nrb25-r10 BIT STRING (SIZE(9)), + nrb50-r10 BIT STRING (SIZE(11)), + nrb75-r10 BIT STRING (SIZE(12)), + nrb100-r10 BIT STRING (SIZE(13)) + }, + ... + }, + demodulationRS-r10 CHOICE { + interleaving-r10 ENUMERATED {crs}, + noInterleaving-r10 ENUMERATED {crs, dmrs} + }, + pdsch-Start-r10 INTEGER (1..3), + pucch-Config-r10 CHOICE { + tdd CHOICE { + channelSelectionMultiplexingBundling SEQUENCE { + n1PUCCH-AN-List-r10 SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + }, + fallbackForFormat3 SEQUENCE { + n1PUCCH-AN-P0-r10 INTEGER (0..2047), + n1PUCCH-AN-P1-r10 INTEGER (0..2047) OPTIONAL -- Need OR + } + }, + fdd SEQUENCE { + n1PUCCH-AN-P0-r10 INTEGER (0..2047), + n1PUCCH-AN-P1-r10 INTEGER (0..2047) OPTIONAL -- Need OR + } + }, + ... + } OPTIONAL, -- Need ON + ... +} + + +SchedulingRequestConfig ::= CHOICE { + release NULL, + setup SEQUENCE { + sr-PUCCH-ResourceIndex INTEGER (0..2047), + sr-ConfigIndex INTEGER (0..157), + dsr-TransMax ENUMERATED { + n4, n8, n16, n32, n64, spare3, spare2, spare1} + } +} + +SchedulingRequestConfig-v1020 ::= SEQUENCE { + sr-PUCCH-ResourceIndexP1-r10 INTEGER (0..2047) OPTIONAL -- Need OR +} + +SchedulingRequestConfigSCell-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + sr-PUCCH-ResourceIndex-r13 INTEGER (0..2047), + sr-PUCCH-ResourceIndexP1-r13 INTEGER (0..2047) OPTIONAL, -- Need OR + sr-ConfigIndex-r13 INTEGER (0..157), + dsr-TransMax-r13 ENUMERATED { + n4, n8, n16, n32, n64, spare3, spare2, spare1} + } + +} + + +SoundingRS-UL-ConfigCommon ::= CHOICE { + release NULL, + setup SEQUENCE { + srs-BandwidthConfig ENUMERATED {bw0, bw1, bw2, bw3, bw4, bw5, bw6, bw7}, + srs-SubframeConfig ENUMERATED { + sc0, sc1, sc2, sc3, sc4, sc5, sc6, sc7, + sc8, sc9, sc10, sc11, sc12, sc13, sc14, sc15}, + ackNackSRS-SimultaneousTransmission BOOLEAN, + srs-MaxUpPts ENUMERATED {true} OPTIONAL -- Cond TDD + } +} + +SoundingRS-UL-ConfigDedicated ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-Bandwidth ENUMERATED {bw0, bw1, bw2, bw3}, + srs-HoppingBandwidth ENUMERATED {hbw0, hbw1, hbw2, hbw3}, + freqDomainPosition INTEGER (0..23), + duration BOOLEAN, + srs-ConfigIndex INTEGER (0..1023), + transmissionComb INTEGER (0..1), + cyclicShift ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7} + } +} + +SoundingRS-UL-ConfigDedicated-v1020 ::= SEQUENCE { + srs-AntennaPort-r10 SRS-AntennaPort +} + +SoundingRS-UL-ConfigDedicated-v1310 ::= CHOICE{ + release NULL, + setup SEQUENCE { + transmissionComb-v1310 INTEGER (2..3) OPTIONAL, -- Need OR + cyclicShift-v1310 ENUMERATED {cs8, cs9, cs10, cs11} OPTIONAL, -- Need OR + transmissionCombNum-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR + } +} + +SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-UpPtsAdd-r13 ENUMERATED {sym2, sym4}, + srs-Bandwidth-r13 ENUMERATED {bw0, bw1, bw2, bw3}, + srs-HoppingBandwidth-r13 ENUMERATED {hbw0, hbw1, hbw2, hbw3}, + freqDomainPosition-r13 INTEGER (0..23), + duration-r13 BOOLEAN, + srs-ConfigIndex-r13 INTEGER (0..1023), + transmissionComb-r13 INTEGER (0..3), + cyclicShift-r13 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, + cs8, cs9, cs10, cs11}, + srs-AntennaPort-r13 SRS-AntennaPort, + transmissionCombNum-r13 ENUMERATED {n2, n4} + } +} + +SoundingRS-UL-ConfigDedicatedAperiodic-r10 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-ConfigIndexAp-r10 INTEGER (0..31), + srs-ConfigApDCI-Format4-r10 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-r10 OPTIONAL,--Need ON + srs-ActivateAp-r10 CHOICE { + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format0-r10 SRS-ConfigAp-r10, + srs-ConfigApDCI-Format1a2b2c-r10 SRS-ConfigAp-r10, + ... + } + } OPTIONAL -- Need ON + } +} + +SoundingRS-UL-ConfigDedicatedAperiodic-v1310 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format4-v1310 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-v1310 OPTIONAL,--Need ON + srs-ActivateAp-v1310 CHOICE { + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format0-v1310 SRS-ConfigAp-v1310 OPTIONAL, -- Need ON + srs-ConfigApDCI-Format1a2b2c-v1310 SRS-ConfigAp-v1310 OPTIONAL -- Need ON + } + } OPTIONAL -- Need ON + } +} + +SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-UpPtsAdd-r13 ENUMERATED {sym2, sym4}, + srs-ConfigIndexAp-r13 INTEGER (0..31), + srs-ConfigApDCI-Format4-r13 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-r13 OPTIONAL,--Need ON + srs-ActivateAp-r13 CHOICE { + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format0-r13 SRS-ConfigAp-r13, + srs-ConfigApDCI-Format1a2b2c-r13 SRS-ConfigAp-r13 + } + } OPTIONAL -- Need ON + } +} + +SoundingRS-UL-ConfigDedicatedAperiodic-v1430 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-SubframeIndication-r14 INTEGER (1..4) OPTIONAL -- Need ON + } +} + +SRS-ConfigAp-r10 ::= SEQUENCE { + srs-AntennaPortAp-r10 SRS-AntennaPort, + srs-BandwidthAp-r10 ENUMERATED {bw0, bw1, bw2, bw3}, + freqDomainPositionAp-r10 INTEGER (0..23), + transmissionCombAp-r10 INTEGER (0..1), + cyclicShiftAp-r10 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7} +} + +SRS-ConfigAp-v1310 ::= SEQUENCE { + transmissionCombAp-v1310 INTEGER (2..3) OPTIONAL, -- Need OR + cyclicShiftAp-v1310 ENUMERATED {cs8, cs9, cs10, cs11} OPTIONAL, -- Need OR + transmissionCombNum-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR +} + +SRS-ConfigAp-r13 ::= SEQUENCE { + srs-AntennaPortAp-r13 SRS-AntennaPort, + srs-BandwidthAp-r13 ENUMERATED {bw0, bw1, bw2, bw3}, + freqDomainPositionAp-r13 INTEGER (0..23), + transmissionCombAp-r13 INTEGER (0..3), + cyclicShiftAp-r13 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, + cs8, cs9, cs10, cs11}, + transmissionCombNum-r13 ENUMERATED {n2, n4} +} + +SRS-AntennaPort ::= ENUMERATED {an1, an2, an4, spare1} + + +SPS-Config ::= SEQUENCE { + semiPersistSchedC-RNTI C-RNTI OPTIONAL, -- Need OR + sps-ConfigDL SPS-ConfigDL OPTIONAL, -- Need ON + sps-ConfigUL SPS-ConfigUL OPTIONAL -- Need ON +} + +SPS-Config-v1430 ::= SEQUENCE { + ul-SPS-V-RNTI-r14 C-RNTI OPTIONAL, -- Need OR + sl-SPS-V-RNTI-r14 C-RNTI OPTIONAL, -- Need OR + sps-ConfigUL-ToAddModList-r14 SPS-ConfigUL-ToAddModList-r14 OPTIONAL, -- Need ON + sps-ConfigUL-ToReleaseList-r14 SPS-ConfigUL-ToReleaseList-r14 OPTIONAL, -- Need ON + sps-ConfigSL-ToAddModList-r14 SPS-ConfigSL-ToAddModList-r14 OPTIONAL, -- Need ON + sps-ConfigSL-ToReleaseList-r14 SPS-ConfigSL-ToReleaseList-r14 OPTIONAL -- Need ON +} + +SPS-ConfigUL-ToAddModList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigUL + +SPS-ConfigUL-ToReleaseList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigIndex-r14 + +SPS-ConfigSL-ToAddModList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigSL-r14 + +SPS-ConfigSL-ToReleaseList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigIndex-r14 + +SPS-ConfigDL ::= CHOICE{ + release NULL, + setup SEQUENCE { + semiPersistSchedIntervalDL ENUMERATED { + sf10, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, spare6, + spare5, spare4, spare3, spare2, + spare1}, + numberOfConfSPS-Processes INTEGER (1..8), + n1PUCCH-AN-PersistentList N1PUCCH-AN-PersistentList, + ..., + [[ twoAntennaPortActivated-r10 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-PersistentListP1-r10 N1PUCCH-AN-PersistentList + } + } OPTIONAL -- Need ON + ]] + } +} + +SPS-ConfigUL ::= CHOICE { + release NULL, + setup SEQUENCE { + semiPersistSchedIntervalUL ENUMERATED { + sf10, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, sf1-v1430, + sf2-v1430, sf3-v1430, sf4-v1430, sf5-v1430, + spare1}, + implicitReleaseAfter ENUMERATED {e2, e3, e4, e8}, + p0-Persistent SEQUENCE { + p0-NominalPUSCH-Persistent INTEGER (-126..24), + p0-UE-PUSCH-Persistent INTEGER (-8..7) + } OPTIONAL, -- Need OP + twoIntervalsConfig ENUMERATED {true} OPTIONAL, -- Cond TDD + ..., + [[ p0-PersistentSubframeSet2-r12 CHOICE { + release NULL, + setup SEQUENCE { + p0-NominalPUSCH-PersistentSubframeSet2-r12 INTEGER (-126..24), + p0-UE-PUSCH-PersistentSubframeSet2-r12 INTEGER (-8..7) + } + } OPTIONAL -- Need ON + ]], + [[ numberOfConfUlSPS-Processes-r13 INTEGER (1..8) OPTIONAL -- Need OR + ]], + [[ fixedRV-NonAdaptive-r14 ENUMERATED {true} OPTIONAL, -- Need OR + sps-ConfigIndex-r14 SPS-ConfigIndex-r14 OPTIONAL, -- Need OR + semiPersistSchedIntervalUL-v1430 ENUMERATED { + sf50, sf100, sf200, sf300, sf400, sf500, + sf600, sf700, sf800, sf900, sf1000, spare5, + spare4, spare3, spare2, spare1} OPTIONAL -- Need OR + + ]] + } +} + +SPS-ConfigSL-r14 ::= SEQUENCE { + sps-ConfigIndex-r14 SPS-ConfigIndex-r14, + semiPersistSchedIntervalSL-r14 ENUMERATED { + sf20, sf50, sf100, sf200, sf300, sf400, + sf500, sf600, sf700, sf800, sf900, sf1000, + spare4, spare3, spare2, spare1} +} + +SPS-ConfigIndex-r14 ::= INTEGER (1..maxConfigSPS-r14) + +N1PUCCH-AN-PersistentList ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + + +SRS-TPC-PDCCH-Config-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + srs-TPC-RNTI-r14 BIT STRING (SIZE (16)), + startingBitOfFormat3B-r14 INTEGER (0..31), fieldTypeFormat3B-r14 INTEGER (1..4), + srs-CC-SetIndexlist-r14 SEQUENCE (SIZE(1..4)) OF SRS-CC-SetIndex-r14 OPTIONAL -- Cond SRS-Trigger-TypeA + + } +} + +SRS-CC-SetIndex-r14 ::= SEQUENCE { + cc-SetIndex-r14 INTEGER (0..3), + cc-IndexInOneCC-Set-r14 INTEGER (0..7) +} + + +TDD-Config ::= SEQUENCE { + subframeAssignment ENUMERATED { + sa0, sa1, sa2, sa3, sa4, sa5, sa6}, + specialSubframePatterns ENUMERATED { + ssp0, ssp1, ssp2, ssp3, ssp4,ssp5, ssp6, ssp7, + ssp8} +} + +TDD-Config-v1130 ::= SEQUENCE { + specialSubframePatterns-v1130 ENUMERATED {ssp7,ssp9} +} + +TDD-Config-v1430 ::= SEQUENCE { + specialSubframePatterns-v1430 ENUMERATED {ssp10} +} + +TDD-Config-v1450 ::= SEQUENCE { + specialSubframePatterns-v1450 ENUMERATED {ssp10-CRS-LessDwPTS} +} + +TDD-ConfigSL-r12 ::= SEQUENCE { + subframeAssignmentSL-r12 ENUMERATED { + none, sa0, sa1, sa2, sa3, sa4, sa5, sa6} +} + +SubframeAssignment-r15 ::= ENUMERATED {sa0, sa1, sa2, sa3, sa4, sa5, sa6} + + +TimeAlignmentTimer ::= ENUMERATED { + sf500, sf750, sf1280, sf1920, sf2560, sf5120, + sf10240, infinity} + +TPC-PDCCH-Config ::= CHOICE { + release NULL, + setup SEQUENCE { + tpc-RNTI BIT STRING (SIZE (16)), + tpc-Index TPC-Index + } +} + +TPC-PDCCH-ConfigSCell-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + tpc-Index-PUCCH-SCell-r13 TPC-Index + } +} + +TPC-Index ::= CHOICE { + indexOfFormat3 INTEGER (1..15), + indexOfFormat3A INTEGER (1..31) +} + + +TunnelConfigLWIP-r13 ::= SEQUENCE { + ip-Address-r13 IP-Address-r13, + ike-Identity-r13 IKE-Identity-r13, + ..., + [[ lwip-Counter-r13 INTEGER (0..65535) OPTIONAL -- Cond LWIP-Setup + ]] +} + +IKE-Identity-r13 ::= SEQUENCE { + idI-r13 OCTET STRING +} + +IP-Address-r13 ::= CHOICE { + ipv4-r13 BIT STRING (SIZE (32)), + ipv6-r13 BIT STRING (SIZE (128)) +} + + +UplinkPowerControlCommon ::= SEQUENCE { + p0-NominalPUSCH INTEGER (-126..24), + alpha Alpha-r12, + p0-NominalPUCCH INTEGER (-127..-96), + deltaFList-PUCCH DeltaFList-PUCCH, + deltaPreambleMsg3 INTEGER (-1..6) +} + +UplinkPowerControlCommon-v1020 ::= SEQUENCE { + deltaF-PUCCH-Format3-r10 ENUMERATED {deltaF-1, deltaF0, deltaF1, deltaF2, + deltaF3, deltaF4, deltaF5, deltaF6}, + deltaF-PUCCH-Format1bCS-r10 ENUMERATED {deltaF1, deltaF2, spare2, spare1} +} + +UplinkPowerControlCommon-v1310 ::= SEQUENCE { + deltaF-PUCCH-Format4-r13 ENUMERATED {deltaF16, deltaF15, deltaF14,deltaF13, deltaF12, + deltaF11, deltaF10, spare1} OPTIONAL, -- Need OR + deltaF-PUCCH-Format5-13 ENUMERATED { deltaF13, deltaF12, deltaF11, deltaF10, deltaF9, + deltaF8, deltaF7, spare1} OPTIONAL -- Need OR +} + +UplinkPowerControlCommonPSCell-r12 ::= SEQUENCE { +-- For uplink power control the additional/ missing fields are signalled (compared to SCell) + deltaF-PUCCH-Format3-r12 ENUMERATED {deltaF-1, deltaF0, deltaF1, deltaF2, + deltaF3, deltaF4, deltaF5, deltaF6}, + deltaF-PUCCH-Format1bCS-r12 ENUMERATED {deltaF1, deltaF2, spare2, spare1}, + p0-NominalPUCCH-r12 INTEGER (-127..-96), + deltaFList-PUCCH-r12 DeltaFList-PUCCH +} + + +UplinkPowerControlCommonSCell-r10 ::= SEQUENCE { + p0-NominalPUSCH-r10 INTEGER (-126..24), + alpha-r10 Alpha-r12 +} + +UplinkPowerControlCommonSCell-v1130 ::= SEQUENCE { + deltaPreambleMsg3-r11 INTEGER (-1..6) +} + +UplinkPowerControlCommonSCell-v1310 ::= SEQUENCE { +-- For uplink power control the additional/ missing fields are signalled (compared to SCell) + p0-NominalPUCCH INTEGER (-127..-96), + deltaFList-PUCCH DeltaFList-PUCCH, + deltaF-PUCCH-Format3-r12 ENUMERATED {deltaF-1, deltaF0, deltaF1, + deltaF2, deltaF3, deltaF4, deltaF5, + deltaF6} OPTIONAL, -- Need OR + deltaF-PUCCH-Format1bCS-r12 ENUMERATED {deltaF1, deltaF2, + spare2, spare1} OPTIONAL, -- Need OR + deltaF-PUCCH-Format4-r13 ENUMERATED {deltaF16, deltaF15, deltaF14, + deltaF13, deltaF12, deltaF11, deltaF10, + spare1} OPTIONAL, -- Need OR + deltaF-PUCCH-Format5-13 ENUMERATED { deltaF13, deltaF12, deltaF11, + deltaF10, deltaF9, deltaF8, deltaF7, + spare1} OPTIONAL -- Need OR +} +UplinkPowerControlCommonPUSCH-LessCell-v1430 ::= SEQUENCE { + p0-Nominal-PeriodicSRS-r14 INTEGER (-126..24) OPTIONAL, -- Need OR + p0-Nominal-AperiodicSRS-r14 INTEGER (-126..24) OPTIONAL, -- Need OR + alpha-SRS-r14 Alpha-r12 OPTIONAL -- Need OR +} + +UplinkPowerControlDedicated ::= SEQUENCE { + p0-UE-PUSCH INTEGER (-8..7), + deltaMCS-Enabled ENUMERATED {en0, en1}, + accumulationEnabled BOOLEAN, + p0-UE-PUCCH INTEGER (-8..7), + pSRS-Offset INTEGER (0..15), + filterCoefficient FilterCoefficient DEFAULT fc4 +} + +UplinkPowerControlDedicated-v1020 ::= SEQUENCE { + deltaTxD-OffsetListPUCCH-r10 DeltaTxD-OffsetListPUCCH-r10 OPTIONAL, -- Need OR + pSRS-OffsetAp-r10 INTEGER (0..15) OPTIONAL -- Need OR +} + +UplinkPowerControlDedicated-v1130 ::= SEQUENCE { + pSRS-Offset-v1130 INTEGER (16..31) OPTIONAL, -- Need OR + pSRS-OffsetAp-v1130 INTEGER (16..31) OPTIONAL, -- Need OR + deltaTxD-OffsetListPUCCH-v1130 DeltaTxD-OffsetListPUCCH-v1130 OPTIONAL -- Need OR +} + +UplinkPowerControlDedicated-v1250 ::= SEQUENCE { + set2PowerControlParameter CHOICE { + release NULL, + setup SEQUENCE { + tpc-SubframeSet-r12 BIT STRING (SIZE(10)), + p0-NominalPUSCH-SubframeSet2-r12 INTEGER (-126..24), + alpha-SubframeSet2-r12 Alpha-r12, + p0-UE-PUSCH-SubframeSet2-r12 INTEGER (-8..7) + } + } +} + +UplinkPUSCH-LessPowerControlDedicated-v1430 ::= SEQUENCE { + p0-UE-PeriodicSRS-r14 INTEGER (-8..7) OPTIONAL, -- Need OR + p0-UE-AperiodicSRS-r14 INTEGER (-8..7) OPTIONAL, -- Need OR + accumulationEnabled-r14 BOOLEAN +} + +UplinkPowerControlDedicatedSCell-r10 ::= SEQUENCE { + p0-UE-PUSCH-r10 INTEGER (-8..7), + deltaMCS-Enabled-r10 ENUMERATED {en0, en1}, + accumulationEnabled-r10 BOOLEAN, + pSRS-Offset-r10 INTEGER (0..15), + pSRS-OffsetAp-r10 INTEGER (0..15) OPTIONAL, -- Need OR + filterCoefficient-r10 FilterCoefficient DEFAULT fc4, + pathlossReferenceLinking-r10 ENUMERATED {pCell, sCell} +} + +UplinkPowerControlDedicatedSCell-v1310 ::= SEQUENCE { +--Release 8 + p0-UE-PUCCH INTEGER (-8..7), +--Release 10 + deltaTxD-OffsetListPUCCH-r10 DeltaTxD-OffsetListPUCCH-r10 OPTIONAL -- Need OR +} + +Alpha-r12 ::= ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1} + +DeltaFList-PUCCH ::= SEQUENCE { + deltaF-PUCCH-Format1 ENUMERATED {deltaF-2, deltaF0, deltaF2}, + deltaF-PUCCH-Format1b ENUMERATED {deltaF1, deltaF3, deltaF5}, + deltaF-PUCCH-Format2 ENUMERATED {deltaF-2, deltaF0, deltaF1, deltaF2}, + deltaF-PUCCH-Format2a ENUMERATED {deltaF-2, deltaF0, deltaF2}, + deltaF-PUCCH-Format2b ENUMERATED {deltaF-2, deltaF0, deltaF2} +} + +DeltaTxD-OffsetListPUCCH-r10 ::= SEQUENCE { + deltaTxD-OffsetPUCCH-Format1-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format1a1b-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format22a2b-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format3-r10 ENUMERATED {dB0, dB-2}, + ... + +} + +DeltaTxD-OffsetListPUCCH-v1130 ::= SEQUENCE { + deltaTxD-OffsetPUCCH-Format1bCS-r11 ENUMERATED {dB0, dB-1} +} + + +WLAN-Id-List-r13 ::= SEQUENCE (SIZE (1..maxWLAN-Id-r13)) OF WLAN-Identifiers-r12 + + +WLAN-MobilityConfig-r13 ::= SEQUENCE { + wlan-ToReleaseList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + wlan-ToAddList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + associationTimer-r13 ENUMERATED {s10, s30, + s60, s120, s240} OPTIONAL, -- Need OR + successReportRequested-r13 ENUMERATED {true} OPTIONAL, -- Need OR + ..., + [[ wlan-SuspendConfig-r14 WLAN-SuspendConfig-r14 OPTIONAL -- Need ON + ]] +} + + +NextHopChainingCount ::= INTEGER (0..7) + + +SecurityAlgorithmConfig ::= SEQUENCE { + cipheringAlgorithm CipheringAlgorithm-r12, + integrityProtAlgorithm ENUMERATED { + eia0-v920, eia1, eia2, eia3-v1130, spare4, spare3, + spare2, spare1, ...} +} + +CipheringAlgorithm-r12 ::= ENUMERATED { + eea0, eea1, eea2, eea3-v1130, spare4, spare3, + spare2, spare1, ...} + + +ShortMAC-I ::= BIT STRING (SIZE (16)) + + +AdditionalSpectrumEmission ::= INTEGER (1..32) + +AdditionalSpectrumEmission-v10l0 ::= INTEGER (33..288) + + +ARFCN-ValueCDMA2000 ::= INTEGER (0..2047) + + +ARFCN-ValueEUTRA ::= INTEGER (0..maxEARFCN) + +ARFCN-ValueEUTRA-v9e0 ::= INTEGER (maxEARFCN-Plus1..maxEARFCN2) + +ARFCN-ValueEUTRA-r9 ::= INTEGER (0..maxEARFCN2) + + +ARFCN-ValueGERAN ::= INTEGER (0..1023) + + +ARFCN-ValueNR-r15 ::= INTEGER (0.. 3279165) + + +ARFCN-ValueUTRA ::= INTEGER (0..16383) + + +BandclassCDMA2000 ::= ENUMERATED { + bc0, bc1, bc2, bc3, bc4, bc5, bc6, bc7, bc8, + bc9, bc10, bc11, bc12, bc13, bc14, bc15, bc16, + bc17, bc18-v9a0, bc19-v9a0, bc20-v9a0, bc21-v9a0, + spare10, spare9, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1, ...} + + +BandIndicatorGERAN ::= ENUMERATED {dcs1800, pcs1900} + + +CarrierFreqCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + arfcn ARFCN-ValueCDMA2000 +} + + +CarrierFreqGERAN ::= SEQUENCE { + arfcn ARFCN-ValueGERAN, + bandIndicator BandIndicatorGERAN +} + + +CarrierFreqsGERAN ::= SEQUENCE { + startingARFCN ARFCN-ValueGERAN, + bandIndicator BandIndicatorGERAN, + followingARFCNs CHOICE { + explicitListOfARFCNs ExplicitListOfARFCNs, + equallySpacedARFCNs SEQUENCE { + arfcn-Spacing INTEGER (1..8), + numberOfFollowingARFCNs INTEGER (0..31) + }, + variableBitMapOfARFCNs OCTET STRING (SIZE (1..16)) + } +} + +ExplicitListOfARFCNs ::= SEQUENCE (SIZE (0..31)) OF ARFCN-ValueGERAN + + +CarrierFreqListMBMS-r11 ::= SEQUENCE (SIZE (1..maxFreqMBMS-r11)) OF ARFCN-ValueEUTRA-r9 + + +CDMA2000-Type ::= ENUMERATED {type1XRTT, typeHRPD} + + +CellIdentity ::= BIT STRING (SIZE (28)) + + +CellIndexList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellIndex + +CellIndex ::= INTEGER (1..maxCellMeas) + + +CellReselectionPriority ::= INTEGER (0..7) + + +CellSelectionInfoCE-r13 ::= SEQUENCE { + q-RxLevMinCE-r13 Q-RxLevMin, + q-QualMinRSRQ-CE-r13 Q-QualMin-r9 OPTIONAL -- Need OR +} + + +CellSelectionInfoCE1-r13 ::= SEQUENCE { + q-RxLevMinCE1-r13 Q-RxLevMin, + q-QualMinRSRQ-CE1-r13 Q-QualMin-r9 OPTIONAL -- Need OR +} + +CellSelectionInfoCE1-v1360 ::= SEQUENCE { + delta-RxLevMinCE1-v1360 INTEGER (-8..-1) +} + +CellReselectionSubPriority-r13 ::= ENUMERATED {oDot2, oDot4, oDot6, oDot8} + + +CSFB-RegistrationParam1XRTT ::= SEQUENCE { + sid BIT STRING (SIZE (15)), + nid BIT STRING (SIZE (16)), + multipleSID BOOLEAN, + multipleNID BOOLEAN, + homeReg BOOLEAN, + foreignSIDReg BOOLEAN, + foreignNIDReg BOOLEAN, + parameterReg BOOLEAN, + powerUpReg BOOLEAN, + registrationPeriod BIT STRING (SIZE (7)), + registrationZone BIT STRING (SIZE (12)), + totalZone BIT STRING (SIZE (3)), + zoneTimer BIT STRING (SIZE (3)) +} + +CSFB-RegistrationParam1XRTT-v920 ::= SEQUENCE { + powerDownReg-r9 ENUMERATED {true} +} + + +CellGlobalIdEUTRA ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellIdentity CellIdentity +} + + +CellGlobalIdUTRA ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellIdentity BIT STRING (SIZE (28)) +} + + +CellGlobalIdGERAN ::= SEQUENCE { + plmn-Identity PLMN-Identity, + locationAreaCode BIT STRING (SIZE (16)), + cellIdentity BIT STRING (SIZE (16)) +} + + +CellGlobalIdCDMA2000 ::= CHOICE { + cellGlobalId1XRTT BIT STRING (SIZE (47)), + cellGlobalIdHRPD BIT STRING (SIZE (128)) +} + + +CellSelectionInfoNFreq-r13 ::= SEQUENCE { + -- Cell selection information as in SIB1 + q-RxLevMin-r13 Q-RxLevMin, + q-RxLevMinOffset INTEGER (1..8) OPTIONAL, -- Need OP + -- Cell re-selection information as in SIB3 + q-Hyst-r13 ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + q-RxLevMinReselection-r13 Q-RxLevMin, + t-ReselectionEUTRA-r13 T-Reselection +} + + +CSG-Identity ::= BIT STRING (SIZE (27)) + + +FreqBandIndicator ::= INTEGER (1..maxFBI) + +FreqBandIndicator-v9e0 ::= INTEGER (maxFBI-Plus1..maxFBI2) + +FreqBandIndicator-r11 ::= INTEGER (1..maxFBI2) + + +MobilityControlInfo ::= SEQUENCE { + targetPhysCellId PhysCellId, + carrierFreq CarrierFreqEUTRA OPTIONAL, -- Cond HO-toEUTRA2 + carrierBandwidth CarrierBandwidthEUTRA OPTIONAL, -- Cond HO-toEUTRA + additionalSpectrumEmission AdditionalSpectrumEmission OPTIONAL, -- Cond HO-toEUTRA + t304 ENUMERATED { + ms50, ms100, ms150, ms200, ms500, ms1000, + ms2000, ms10000-v1310}, + newUE-Identity C-RNTI, + radioResourceConfigCommon RadioResourceConfigCommon, + rach-ConfigDedicated RACH-ConfigDedicated OPTIONAL, -- Need OP + ..., + [[ carrierFreq-v9e0 CarrierFreqEUTRA-v9e0 OPTIONAL -- Need ON + ]], + [[ drb-ContinueROHC-r11 ENUMERATED {true} OPTIONAL -- Cond HO + ]], + [[ mobilityControlInfoV2X-r14 MobilityControlInfoV2X-r14 OPTIONAL, -- Need ON + handoverWithoutWT-Change-r14 ENUMERATED {keepLWA-Config, sendEndMarker} OPTIONAL, -- Cond HO + makeBeforeBreak-r14 ENUMERATED {true} OPTIONAL, -- Need OR + rach-Skip-r14 RACH-Skip-r14 OPTIONAL, -- Need OR + sameSFN-Indication-r14 ENUMERATED {true} OPTIONAL -- Cond HO-SFNsynced + ]], + [[ + mib-RepetitionStatus-r14 BOOLEAN OPTIONAL, -- Need OR + schedulingInfoSIB1-BR-r14 INTEGER (0..31) OPTIONAL -- Cond HO-SFNsynced + ]] +} + +MobilityControlInfo-v10l0 ::= SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 OPTIONAL -- Need ON +} + +MobilityControlInfoSCG-r12 ::= SEQUENCE { + t307-r12 ENUMERATED { + ms50, ms100, ms150, ms200, ms500, ms1000, + ms2000, spare1}, + ue-IdentitySCG-r12 C-RNTI OPTIONAL, -- Cond SCGEst, + rach-ConfigDedicated-r12 RACH-ConfigDedicated OPTIONAL, -- Need OP + cipheringAlgorithmSCG-r12 CipheringAlgorithm-r12 OPTIONAL, -- Need ON + ..., + [[ makeBeforeBreakSCG-r14 ENUMERATED {true} OPTIONAL, -- Need OR + rach-SkipSCG-r14 RACH-Skip-r14 OPTIONAL -- Need OR + ]] +} + +MobilityControlInfoV2X-r14 ::= SEQUENCE { + v2x-CommTxPoolExceptional-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-CommRxPool-r14 SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommSyncConfig-r14 SL-SyncConfigListV2X-r14 OPTIONAL, -- Need OR + cbr-MobilityTxConfigList-r14 SL-CBR-CommonTxConfigList-r14 OPTIONAL -- Need OR +} + +CarrierBandwidthEUTRA ::= SEQUENCE { + dl-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100, spare10, + spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1}, + ul-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100, spare10, + spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1} OPTIONAL -- Need OP +} + +CarrierFreqEUTRA ::= SEQUENCE { + dl-CarrierFreq ARFCN-ValueEUTRA, + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL -- Cond FDD +} + +CarrierFreqEUTRA-v9e0 ::= SEQUENCE { + dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9, + ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9 OPTIONAL -- Cond FDD +} + +RACH-Skip-r14 ::= SEQUENCE { + targetTA-r14 CHOICE { + ta0-r14 NULL, + mcg-PTAG-r14 NULL, + scg-PTAG-r14 NULL, + mcg-STAG-r14 STAG-Id-r11, + scg-STAG-r14 STAG-Id-r11 + }, + ul-ConfigInfo-r14 SEQUENCE { + numberOfConfUL-Processes-r14 INTEGER (1..8), + ul-SchedInterval-r14 ENUMERATED {sf2, sf5, sf10}, + ul-StartSubframe-r14 INTEGER (0..9), + ul-Grant-r14 BIT STRING (SIZE (16)) + } OPTIONAL -- Need OR +} + + +MobilityParametersCDMA2000 ::= OCTET STRING + + +MobilityStateParameters ::= SEQUENCE { + t-Evaluation ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + t-HystNormal ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + n-CellChangeMedium INTEGER (1..16), + n-CellChangeHigh INTEGER (1..16) +} + + +MultiBandInfoList ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator + +MultiBandInfoList-v9e0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF MultiBandInfo-v9e0 + +MultiBandInfoList-v10j0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF NS-PmaxList-r10 + +MultiBandInfoList-v10l0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF NS-PmaxList-v10l0 + +MultiBandInfoList-r11 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-r11 + +MultiBandInfo-v9e0 ::= SEQUENCE { + freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL -- Need OP +} + + +NS-PmaxList-r10 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-r10 + +NS-PmaxList-v10l0 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-v10l0 + +NS-PmaxValue-r10 ::= SEQUENCE { + additionalPmax-r10 P-Max OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission +} + +NS-PmaxValue-v10l0 ::= SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 OPTIONAL -- Need OP +} + + +PhysCellId ::= INTEGER (0..503) + + +PhysCellIdRange ::= SEQUENCE { + start PhysCellId, + range ENUMERATED { + n4, n8, n12, n16, n24, n32, n48, n64, n84, + n96, n128, n168, n252, n504, spare2, + spare1} OPTIONAL -- Need OP +} + + +PhysCellIdRangeUTRA-FDDList-r9::= SEQUENCE (SIZE (1..maxPhysCellIdRange-r9)) OF PhysCellIdRangeUTRA-FDD-r9 + +PhysCellIdRangeUTRA-FDD-r9 ::= SEQUENCE { + start-r9 PhysCellIdUTRA-FDD, + range-r9 INTEGER (2..512) OPTIONAL -- Need OP +} + + +PhysCellIdCDMA2000 ::= INTEGER (0..maxPNOffset) + + +PhysCellIdGERAN ::= SEQUENCE { + networkColourCode BIT STRING (SIZE (3)), + baseStationColourCode BIT STRING (SIZE (3)) +} + + +PhysCellIdNR-r15 ::= INTEGER (0.. 1007) + + +PhysCellIdUTRA-FDD ::= INTEGER (0..511) + + +PhysCellIdUTRA-TDD ::= INTEGER (0..127) + + +PLMN-Identity ::= SEQUENCE { + mcc MCC OPTIONAL, -- Cond MCC + mnc MNC +} + +MCC ::= SEQUENCE (SIZE (3)) OF + MCC-MNC-Digit + +MNC ::= SEQUENCE (SIZE (2..3)) OF + MCC-MNC-Digit + +MCC-MNC-Digit ::= INTEGER (0..9) + + + +PLMN-IdentityList3-r11 ::= SEQUENCE (SIZE (1..16)) OF PLMN-Identity + + +PreRegistrationInfoHRPD ::= SEQUENCE { + preRegistrationAllowed BOOLEAN, + preRegistrationZoneId PreRegistrationZoneIdHRPD OPTIONAL, -- cond PreRegAllowed + secondaryPreRegistrationZoneIdList SecondaryPreRegistrationZoneIdListHRPD OPTIONAL -- Need OR +} + +SecondaryPreRegistrationZoneIdListHRPD ::= SEQUENCE (SIZE (1..2)) OF PreRegistrationZoneIdHRPD + +PreRegistrationZoneIdHRPD ::= INTEGER (0..255) + + +Q-QualMin-r9 ::= INTEGER (-34..-3) + + +Q-RxLevMin ::= INTEGER (-70..-22) + + +Q-OffsetRange ::= ENUMERATED { + dB-24, dB-22, dB-20, dB-18, dB-16, dB-14, + dB-12, dB-10, dB-8, dB-6, dB-5, dB-4, dB-3, + dB-2, dB-1, dB0, dB1, dB2, dB3, dB4, dB5, + dB6, dB8, dB10, dB12, dB14, dB16, dB18, + dB20, dB22, dB24} + + +Q-OffsetRangeInterRAT ::= INTEGER (-15..15) + + +ReselectionThreshold ::= INTEGER (0..31) + + +ReselectionThresholdQ-r9 ::= INTEGER (0..31) + + +SCellIndex-r10 ::= INTEGER (1..7) +SCellIndex-r13 ::= INTEGER (1..31) + + +ServCellIndex-r10 ::= INTEGER (0..7) +ServCellIndex-r13 ::= INTEGER (0..31) + + +SpeedStateScaleFactors ::= SEQUENCE { + sf-Medium ENUMERATED {oDot25, oDot5, oDot75, lDot0}, + sf-High ENUMERATED {oDot25, oDot5, oDot75, lDot0} +} + +SystemInfoListGERAN ::= SEQUENCE (SIZE (1..maxGERAN-SI)) OF + OCTET STRING (SIZE (1..23)) + + +SystemTimeInfoCDMA2000 ::= SEQUENCE { + cdma-EUTRA-Synchronisation BOOLEAN, + cdma-SystemTime CHOICE { + synchronousSystemTime BIT STRING (SIZE (39)), + asynchronousSystemTime BIT STRING (SIZE (49)) + } +} + + +ThresholdNR-r15 ::= CHOICE{ + nr-RSRP-r15 RSRP-RangeNR-r15, + nr-RSRQ-r15 RSRQ-RangeNR-r15, + nr-SINR-r15 RS-SINR-RangeNR-r15 +} + +ThresholdListNR-r15 ::= SEQUENCE{ + nr-RSRP-r15 RSRP-RangeNR-r15 OPTIONAL, + nr-RSRQ-r15 RSRQ-RangeNR-r15 OPTIONAL, + nr-SINR-r15 RS-SINR-RangeNR-r15 OPTIONAL +} + + +TrackingAreaCode ::= BIT STRING (SIZE (16)) + + +T-Reselection ::= INTEGER (0..7) + + +T-ReselectionEUTRA-CE-r13 ::= INTEGER (0..15) + + +AllowedMeasBandwidth ::= ENUMERATED {mbw6, mbw15, mbw25, mbw50, mbw75, mbw100} + + +CSI-RSRP-Range-r12 ::= INTEGER(0..97) + + +Hysteresis ::= INTEGER (0..30) + + +LocationInfo-r10 ::= SEQUENCE { + locationCoordinates-r10 CHOICE { + ellipsoid-Point-r10 OCTET STRING, + ellipsoidPointWithAltitude-r10 OCTET STRING, + ..., + ellipsoidPointWithUncertaintyCircle-r11 OCTET STRING, + ellipsoidPointWithUncertaintyEllipse-r11 OCTET STRING, + ellipsoidPointWithAltitudeAndUncertaintyEllipsoid-r11 OCTET STRING, + ellipsoidArc-r11 OCTET STRING, + polygon-r11 OCTET STRING + }, + horizontalVelocity-r10 OCTET STRING OPTIONAL, + gnss-TOD-msec-r10 OCTET STRING OPTIONAL, + ... +} + + +MBSFN-RSRQ-Range-r12 ::= INTEGER(0..31) + +MeasConfig ::= SEQUENCE { + -- Measurement objects + measObjectToRemoveList MeasObjectToRemoveList OPTIONAL, -- Need ON + measObjectToAddModList MeasObjectToAddModList OPTIONAL, -- Need ON + -- Reporting configurations + reportConfigToRemoveList ReportConfigToRemoveList OPTIONAL, -- Need ON + reportConfigToAddModList ReportConfigToAddModList OPTIONAL, -- Need ON + -- Measurement identities + measIdToRemoveList MeasIdToRemoveList OPTIONAL, -- Need ON + measIdToAddModList MeasIdToAddModList OPTIONAL, -- Need ON + -- Other parameters + quantityConfig QuantityConfig OPTIONAL, -- Need ON + measGapConfig MeasGapConfig OPTIONAL, -- Need ON + s-Measure RSRP-Range OPTIONAL, -- Need ON + preRegistrationInfoHRPD PreRegistrationInfoHRPD OPTIONAL, -- Need OP + speedStatePars CHOICE { + release NULL, + setup SEQUENCE { + mobilityStateParameters MobilityStateParameters, + timeToTrigger-SF SpeedStateScaleFactors + } + } OPTIONAL, -- Need ON + ..., + [[ measObjectToAddModList-v9e0 MeasObjectToAddModList-v9e0 OPTIONAL -- Need ON + ]], + [[ allowInterruptions-r11 BOOLEAN OPTIONAL -- Need ON + ]], + [[ measScaleFactor-r12 CHOICE { + release NULL, + setup MeasScaleFactor-r12 + } OPTIONAL, -- Need ON + measIdToRemoveListExt-r12 MeasIdToRemoveListExt-r12 OPTIONAL, -- Need ON + measIdToAddModListExt-r12 MeasIdToAddModListExt-r12 OPTIONAL, -- Need ON + measRSRQ-OnAllSymbols-r12 BOOLEAN OPTIONAL -- Need ON + ]], + [[ + measObjectToRemoveListExt-r13 MeasObjectToRemoveListExt-r13 OPTIONAL, -- Need ON + measObjectToAddModListExt-r13 MeasObjectToAddModListExt-r13 OPTIONAL, -- Need ON + measIdToAddModList-v1310 MeasIdToAddModList-v1310 OPTIONAL, -- Need ON + measIdToAddModListExt-v1310 MeasIdToAddModListExt-v1310 OPTIONAL -- Need ON + ]], + [[ measGapConfigPerCC-List-r14 MeasGapConfigPerCC-List-r14 OPTIONAL, -- Need ON + measGapSharingConfig-r14 MeasGapSharingConfig-r14 OPTIONAL -- Need ON + ]], + [[ fr1-Gap-r15 BOOLEAN OPTIONAL, -- Need ON + mgta-r15 BOOLEAN OPTIONAL -- Need ON + ]] +} + +MeasIdToRemoveList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId + +MeasIdToRemoveListExt-r12 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId-v1250 + +MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId + +MeasObjectToRemoveListExt-r13 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId-v1310 + +ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigId + + +MeasDS-Config-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + dmtc-PeriodOffset-r12 CHOICE { + ms40-r12 INTEGER(0..39), + ms80-r12 INTEGER(0..79), + ms160-r12 INTEGER(0..159), + ... + }, + ds-OccasionDuration-r12 CHOICE { + durationFDD-r12 INTEGER(1..maxDS-Duration-r12), + durationTDD-r12 INTEGER(2..maxDS-Duration-r12) + }, + measCSI-RS-ToRemoveList-r12 MeasCSI-RS-ToRemoveList-r12 OPTIONAL, -- Need ON + measCSI-RS-ToAddModList-r12 MeasCSI-RS-ToAddModList-r12 OPTIONAL, -- Need ON + ... + } +} + +MeasCSI-RS-ToRemoveList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Id-r12 + +MeasCSI-RS-ToAddModList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Config-r12 + +MeasCSI-RS-Id-r12 ::= INTEGER (1..maxCSI-RS-Meas-r12) + +MeasCSI-RS-Config-r12 ::= SEQUENCE { + measCSI-RS-Id-r12 MeasCSI-RS-Id-r12, + physCellId-r12 INTEGER (0..503), + scramblingIdentity-r12 INTEGER (0..503), + resourceConfig-r12 INTEGER (0..31), + subframeOffset-r12 INTEGER (0..4), + csi-RS-IndividualOffset-r12 Q-OffsetRange, + ... +} + + +MeasGapConfig ::= CHOICE { + release NULL, + setup SEQUENCE { + gapOffset CHOICE { + gp0 INTEGER (0..39), + gp1 INTEGER (0..79), + + ..., + gp2-r14 INTEGER (0..39), + gp3-r14 INTEGER (0..79), + gp-ncsg0-r14 INTEGER (0..39), + gp-ncsg1-r14 INTEGER (0..79), + gp-ncsg2-r14 INTEGER (0..39), + gp-ncsg3-r14 INTEGER (0..79), + gp-nonUniform1-r14 INTEGER (0..1279), + gp-nonUniform2-r14 INTEGER (0..2559), + gp-nonUniform3-r14 INTEGER (0..5119), + gp-nonUniform4-r14 INTEGER (0..10239), + gp4-r15 INTEGER (0..19), + gp5-r15 INTEGER (0..159), + gp6-r15 INTEGER (0..19), + gp7-r15 INTEGER (0..39), + gp8-r15 INTEGER (0..79), + gp9-r15 INTEGER (0..159), + gp10-r15 INTEGER (0..19), + gp11-r15 INTEGER (0..159) + } + } +} + + + +MeasGapConfigPerCC-List-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + measGapConfigToRemoveList-r14 MeasGapConfigToRemoveList-r14 OPTIONAL, -- Need ON + measGapConfigToAddModList-r14 MeasGapConfigToAddModList-r14 OPTIONAL -- Need ON + } +} + +MeasGapConfigToRemoveList-r14 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF ServCellIndex-r13 + +MeasGapConfigToAddModList-r14 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasGapConfigPerCC-r14 + +MeasGapConfigPerCC-r14 ::= SEQUENCE { + servCellId-r14 ServCellIndex-r13, + measGapConfigCC-r14 MeasGapConfig +} + + +MeasGapSharingConfig-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + measGapSharingScheme-r14 ENUMERATED {scheme00, scheme01, scheme10, scheme11} + } +} + + +MeasId ::= INTEGER (1..maxMeasId) + +MeasId-v1250 ::= INTEGER (maxMeasId-Plus1..maxMeasId-r12) + + +MeasIdToAddModList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod + +MeasIdToAddModList-v1310 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod-v1310 + +MeasIdToAddModListExt-r12 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddModExt-r12 + +MeasIdToAddModListExt-v1310 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod-v1310 + +MeasIdToAddMod ::= SEQUENCE { + measId MeasId, + measObjectId MeasObjectId, + reportConfigId ReportConfigId +} + +MeasIdToAddModExt-r12 ::= SEQUENCE { + measId-v1250 MeasId-v1250, + measObjectId-r12 MeasObjectId, + reportConfigId-r12 ReportConfigId +} + +MeasIdToAddMod-v1310 ::= SEQUENCE { + measObjectId-v1310 MeasObjectId-v1310 OPTIONAL +} + + +MeasObjectCDMA2000 ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + carrierFreq CarrierFreqCDMA2000, + searchWindowSize INTEGER (0..15) OPTIONAL, -- Need ON + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CellsToAddModListCDMA2000 OPTIONAL, -- Need ON + cellForWhichToReportCGI PhysCellIdCDMA2000 OPTIONAL, -- Need ON + ... +} + +CellsToAddModListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModCDMA2000 + +CellsToAddModCDMA2000 ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdCDMA2000 +} + + +MeasObjectEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + allowedMeasBandwidth AllowedMeasBandwidth, + presenceAntennaPort1 PresenceAntennaPort1, + neighCellConfig NeighCellConfig, + offsetFreq Q-OffsetRange DEFAULT dB0, + -- Cell list + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CellsToAddModList OPTIONAL, -- Need ON + -- Black list + blackCellsToRemoveList CellIndexList OPTIONAL, -- Need ON + blackCellsToAddModList BlackCellsToAddModList OPTIONAL, -- Need ON + cellForWhichToReportCGI PhysCellId OPTIONAL, -- Need ON + ..., + [[measCycleSCell-r10 MeasCycleSCell-r10 OPTIONAL, -- Need ON + measSubframePatternConfigNeigh-r10 MeasSubframePatternConfigNeigh-r10 OPTIONAL -- Need ON + ]], + [[widebandRSRQ-Meas-r11 BOOLEAN OPTIONAL -- Cond WB-RSRQ + ]], + [[ altTTT-CellsToRemoveList-r12 CellIndexList OPTIONAL, -- Need ON + altTTT-CellsToAddModList-r12 AltTTT-CellsToAddModList-r12 OPTIONAL, -- Need ON + t312-r12 CHOICE { + release NULL, + setup ENUMERATED {ms0, ms50, ms100, ms200, + ms300, ms400, ms500, ms1000} + } OPTIONAL, -- Need ON + reducedMeasPerformance-r12 BOOLEAN OPTIONAL, -- Need ON + measDS-Config-r12 MeasDS-Config-r12 OPTIONAL -- Need ON + ]], + [[ + whiteCellsToRemoveList-r13 CellIndexList OPTIONAL, -- Need ON + whiteCellsToAddModList-r13 WhiteCellsToAddModList-r13 OPTIONAL, -- Need ON + rmtc-Config-r13 RMTC-Config-r13 OPTIONAL, -- Need ON + carrierFreq-r13 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Need ON + ]], + [[ + tx-ResourcePoolToRemoveList-r14 Tx-ResourcePoolMeasList-r14 OPTIONAL, -- Need ON + tx-ResourcePoolToAddList-r14 Tx-ResourcePoolMeasList-r14 OPTIONAL, -- Need ON + fembms-MixedCarrier-r14 BOOLEAN OPTIONAL -- Need ON + ]] +} + +MeasObjectEUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +CellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddMod + +CellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellId, + cellIndividualOffset Q-OffsetRange +} + +BlackCellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF BlackCellsToAddMod + +BlackCellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellIdRange PhysCellIdRange +} + +MeasCycleSCell-r10 ::= ENUMERATED {sf160, sf256, sf320, sf512, + sf640, sf1024, sf1280, spare1} + +MeasSubframePatternConfigNeigh-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + measSubframePatternNeigh-r10 MeasSubframePattern-r10, + measSubframeCellList-r10 MeasSubframeCellList-r10 OPTIONAL -- Cond always + } +} + +MeasSubframeCellList-r10 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF PhysCellIdRange + +AltTTT-CellsToAddModList-r12 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF AltTTT-CellsToAddMod-r12 + +AltTTT-CellsToAddMod-r12 ::= SEQUENCE { + cellIndex-r12 INTEGER (1..maxCellMeas), + physCellIdRange-r12 PhysCellIdRange +} + +WhiteCellsToAddModList-r13 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF WhiteCellsToAddMod-r13 + +WhiteCellsToAddMod-r13 ::= SEQUENCE { + cellIndex-r13 INTEGER (1..maxCellMeas), + physCellIdRange-r13 PhysCellIdRange +} + +RMTC-Config-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + rmtc-Period-r13 ENUMERATED {ms40, ms80, ms160, ms320, ms640}, + rmtc-SubframeOffset-r13 INTEGER(0..639) OPTIONAL, -- Need ON + measDuration-r13 ENUMERATED {sym1, sym14, sym28, sym42, sym70}, + ... + } +} + +Tx-ResourcePoolMeasList-r14 ::= SEQUENCE (SIZE (1..maxSL-PoolToMeasure-r14)) OF SL-V2X-TxPoolReportIdentity-r14 + + +MeasObjectGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + ncc-Permitted BIT STRING(SIZE (8)) DEFAULT '11111111'B, + cellForWhichToReportCGI PhysCellIdGERAN OPTIONAL, -- Need ON + ... +} + + +MeasObjectId ::= INTEGER (1..maxObjectId) + +MeasObjectId-v1310 ::= INTEGER (maxObjectId-Plus1-r13..maxObjectId-r13) + +MeasObjectId-r13 ::= INTEGER (1..maxObjectId-r13) + + +MeasObjectNR-r15 ::= SEQUENCE { + carrierFreq-r15 ARFCN-ValueNR-r15, + rs-ConfigSSB-r15 RS-ConfigSSB-NR-r15, + threshRS-Index-r15 ThresholdListNR-r15 OPTIONAL, -- Need OR + maxRS-IndexCellQual-r15 INTEGER (1.. maxRS-IndexCellQual-r15) OPTIONAL, -- Need OR + offsetFreq-r15 Q-OffsetRangeInterRAT DEFAULT 0, + blackCellsToRemoveList-r15 CellIndexList OPTIONAL, -- Need ON + blackCellsToAddModList-r15 CellsToAddModListNR-r15 OPTIONAL, -- Need ON + quantityConfigSet-r15 INTEGER (1.. maxQuantSetsNR-r15), + cellsForWhichToReportSFTD-r15 SEQUENCE (SIZE (1..maxCellSFTD)) OF PhysCellIdNR-r15 OPTIONAL, -- Need OR + ... +} + +RS-ConfigSSB-NR-r15 ::= SEQUENCE { + measTimingConfig-r15 MTC-SSB-NR-r15, + + subcarrierSpacingSSB-r15 ENUMERATED {kHz15, kHz30, kHz120, kHz240}, + ... +} + +CellsToAddModListNR-r15 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModNR-r15 + +CellsToAddModNR-r15 ::= SEQUENCE { + cellIndex-r15 INTEGER (1..maxCellMeas), + physCellId-r15 PhysCellIdNR-r15 +} + +MTC-SSB-NR-r15 ::= SEQUENCE { + periodicityAndOffset-r15 CHOICE { + sf5-r15 INTEGER (0..4), + sf10-r15 INTEGER (0..9), + sf20-r15 INTEGER (0..19), + sf40-r15 INTEGER (0..39), + sf80-r15 INTEGER (0..79), + sf160-r15 INTEGER (0..159) + }, + ssb-Duration-r15 ENUMERATED {sf1, sf2, sf3, sf4, sf5 } +} + + +MeasObjectToAddModList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod + +MeasObjectToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddModExt-r13 + +MeasObjectToAddModList-v9e0 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod-v9e0 + +MeasObjectToAddMod ::= SEQUENCE { + measObjectId MeasObjectId, + measObject CHOICE { + measObjectEUTRA MeasObjectEUTRA, + measObjectUTRA MeasObjectUTRA, + measObjectGERAN MeasObjectGERAN, + measObjectCDMA2000 MeasObjectCDMA2000, + ..., + measObjectWLAN-r13 MeasObjectWLAN-r13, + measObjectNR-r15 MeasObjectNR-r15 + } +} + +MeasObjectToAddModExt-r13 ::= SEQUENCE { + measObjectId-r13 MeasObjectId-v1310, + measObject-r13 CHOICE { + measObjectEUTRA-r13 MeasObjectEUTRA, + measObjectUTRA-r13 MeasObjectUTRA, + measObjectGERAN-r13 MeasObjectGERAN, + measObjectCDMA2000-r13 MeasObjectCDMA2000, + ..., + measObjectWLAN-v1320 MeasObjectWLAN-r13, + measObjectNR-r15 MeasObjectNR-r15 + } +} + +MeasObjectToAddMod-v9e0 ::= SEQUENCE { + measObjectEUTRA-v9e0 MeasObjectEUTRA-v9e0 OPTIONAL -- Cond eutra +} + + +MeasObjectUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CHOICE { + cellsToAddModListUTRA-FDD CellsToAddModListUTRA-FDD, + cellsToAddModListUTRA-TDD CellsToAddModListUTRA-TDD + } OPTIONAL, -- Need ON + cellForWhichToReportCGI CHOICE { + utra-FDD PhysCellIdUTRA-FDD, + utra-TDD PhysCellIdUTRA-TDD + } OPTIONAL, -- Need ON + ..., + [[ csg-allowedReportingCells-v930 CSG-AllowedReportingCells-r9 OPTIONAL -- Need ON + ]], + [[ reducedMeasPerformance-r12 BOOLEAN OPTIONAL -- Need ON + ]] +} + +CellsToAddModListUTRA-FDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-FDD + +CellsToAddModUTRA-FDD ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdUTRA-FDD +} + +CellsToAddModListUTRA-TDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-TDD + +CellsToAddModUTRA-TDD ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdUTRA-TDD +} + +CSG-AllowedReportingCells-r9 ::= SEQUENCE { + physCellIdRangeUTRA-FDDList-r9 PhysCellIdRangeUTRA-FDDList-r9 OPTIONAL -- Need OR +} + +MeasObjectWLAN-r13 ::= SEQUENCE { + carrierFreq-r13 CHOICE { + bandIndicatorListWLAN-r13 SEQUENCE (SIZE (1..maxWLAN-Bands-r13)) OF WLAN-BandIndicator-r13, + carrierInfoListWLAN-r13 SEQUENCE (SIZE (1..maxWLAN-CarrierInfo-r13)) OF WLAN-CarrierInfo-r13 + } OPTIONAL, -- Need ON + wlan-ToAddModList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + wlan-ToRemoveList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + ... +} + +WLAN-BandIndicator-r13 ::= ENUMERATED {band2dot4, band5, band60-v1430, spare5, spare4, spare3, spare2, spare1, ...} + + +MeasResults ::= SEQUENCE { + measId MeasId, + measResultPCell SEQUENCE { + rsrpResult RSRP-Range, + rsrqResult RSRQ-Range + }, + measResultNeighCells CHOICE { + measResultListEUTRA MeasResultListEUTRA, + measResultListUTRA MeasResultListUTRA, + measResultListGERAN MeasResultListGERAN, + measResultsCDMA2000 MeasResultsCDMA2000, + ..., + measResultNeighCellListNR-r15 MeasResultCellListNR-r15 + } OPTIONAL, + ..., + [[ measResultForECID-r9 MeasResultForECID-r9 OPTIONAL + ]], + [[ locationInfo-r10 LocationInfo-r10 OPTIONAL, + measResultServFreqList-r10 MeasResultServFreqList-r10 OPTIONAL + ]], + [[ measId-v1250 MeasId-v1250 OPTIONAL, + measResultPCell-v1250 RSRQ-Range-v1250 OPTIONAL, + measResultCSI-RS-List-r12 MeasResultCSI-RS-List-r12 OPTIONAL + ]], + [[ measResultForRSSI-r13 MeasResultForRSSI-r13 OPTIONAL, + measResultServFreqListExt-r13 MeasResultServFreqListExt-r13 OPTIONAL, + measResultSSTD-r13 MeasResultSSTD-r13 OPTIONAL, + measResultPCell-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL, + ul-PDCP-DelayResultList-r13 UL-PDCP-DelayResultList-r13 OPTIONAL, + measResultListWLAN-r13 MeasResultListWLAN-r13 OPTIONAL + ]], + [[ measResultPCell-v1360 RSRP-Range-v1360 OPTIONAL + ]], + [[ measResultListCBR-r14 MeasResultListCBR-r14 OPTIONAL, + measResultListWLAN-r14 MeasResultListWLAN-r14 OPTIONAL + ]], + [[ measResultServFreqListNR-r15 MeasResultServFreqListNR-r15 OPTIONAL, + measResultCellListSFTD-r15 MeasResultCellListSFTD-r15 OPTIONAL + ]] +} + +MeasResultListEUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultEUTRA + +MeasResultEUTRA ::= SEQUENCE { + physCellId PhysCellId, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdEUTRA, + trackingAreaCode TrackingAreaCode, + plmn-IdentityList PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + rsrpResult RSRP-Range OPTIONAL, + rsrqResult RSRQ-Range OPTIONAL, + ..., + [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL + ]], + [[ primaryPLMN-Suitable-r12 ENUMERATED {true} OPTIONAL, + measResult-v1250 RSRQ-Range-v1250 OPTIONAL + ]], + [[ rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL, + cgi-Info-v1310 SEQUENCE { + freqBandIndicator-r13 FreqBandIndicator-r11 OPTIONAL, + multiBandInfoList-r13 MultiBandInfoList-r11 OPTIONAL, + freqBandIndicatorPriority-r13 ENUMERATED {true} OPTIONAL + } OPTIONAL + ]], + [[ + measResult-v1360 RSRP-Range-v1360 OPTIONAL + ]] + } +} + +MeasResultServFreqListNR-r15 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultServFreqNR-r15 + +MeasResultServFreqNR-r15 ::= SEQUENCE { + carrierFreq-r15 ARFCN-ValueNR-r15, + measResultSCell-r15 MeasResultCellNR-r15 OPTIONAL, + measResultBestNeighCell-r15 MeasResultCellNR-r15 OPTIONAL, + ... +} + +MeasResultCellListNR-r15::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCellNR-r15 + +MeasResultCellNR-r15 ::= SEQUENCE { + pci-r15 PhysCellIdNR-r15, + measResultCell-r15 MeasResultNR-r15, + measResultRS-IndexList-r15 MeasResultSSB-IndexList-r15 OPTIONAL, + ... +} + +MeasResultNR-r15 ::= SEQUENCE { + rsrpResult-r15 RSRP-RangeNR-r15 OPTIONAL, + rsrqResult-r15 RSRQ-RangeNR-r15 OPTIONAL, + rs-sinr-Result-r15 RS-SINR-RangeNR-r15 OPTIONAL, + ... +} + +MeasResultSSB-IndexList-r15::= SEQUENCE (SIZE (1..maxRS-IndexReport-r15)) OF MeasResultSSB-Index-r15 + +MeasResultSSB-Index-r15 ::= SEQUENCE { + ssb-Index-r15 RS-IndexNR-r15, + measResultSSB-Index-r15 MeasResultNR-r15 OPTIONAL, + ... +} + +RS-IndexNR-r15 ::= INTEGER (0.. maxRS-Index-1-r15) + +MeasResultServFreqList-r10 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF MeasResultServFreq-r10 + +MeasResultServFreqListExt-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultServFreq-r13 + +MeasResultServFreq-r10 ::= SEQUENCE { + servFreqId-r10 ServCellIndex-r10, + measResultSCell-r10 SEQUENCE { + rsrpResultSCell-r10 RSRP-Range, + rsrqResultSCell-r10 RSRQ-Range + } OPTIONAL, + measResultBestNeighCell-r10 SEQUENCE { + physCellId-r10 PhysCellId, + rsrpResultNCell-r10 RSRP-Range, + rsrqResultNCell-r10 RSRQ-Range + } OPTIONAL, + ..., + [[ measResultSCell-v1250 RSRQ-Range-v1250 OPTIONAL, + measResultBestNeighCell-v1250 RSRQ-Range-v1250 OPTIONAL + ]], + [[ measResultSCell-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL, + measResultBestNeighCell-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL + ]] +} + +MeasResultServFreq-r13 ::= SEQUENCE { + servFreqId-r13 ServCellIndex-r13, + measResultSCell-r13 SEQUENCE { + rsrpResultSCell-r13 RSRP-Range, + rsrqResultSCell-r13 RSRQ-Range-r13, + rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL + } OPTIONAL, + measResultBestNeighCell-r13 SEQUENCE { + physCellId-r13 PhysCellId, + rsrpResultNCell-r13 RSRP-Range, + rsrqResultNCell-r13 RSRQ-Range-r13, + rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL + } OPTIONAL, + ..., + [[ measResultBestNeighCell-v1360 SEQUENCE { + rsrpResultNCell-v1360 RSRP-Range-v1360 + } OPTIONAL + ]] +} + +MeasResultCSI-RS-List-r12 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCSI-RS-r12 + +MeasResultCSI-RS-r12 ::= SEQUENCE { + measCSI-RS-Id-r12 MeasCSI-RS-Id-r12, + csi-RSRP-Result-r12 CSI-RSRP-Range-r12, + ... +} + +MeasResultListUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultUTRA + +MeasResultUTRA ::= SEQUENCE { + physCellId CHOICE { + fdd PhysCellIdUTRA-FDD, + tdd PhysCellIdUTRA-TDD + }, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdUTRA, + locationAreaCode BIT STRING (SIZE (16)) OPTIONAL, + routingAreaCode BIT STRING (SIZE (8)) OPTIONAL, + plmn-IdentityList PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + utra-RSCP INTEGER (-5..91) OPTIONAL, + utra-EcN0 INTEGER (0..49) OPTIONAL, + ..., + [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL + ]], + [[ primaryPLMN-Suitable-r12 ENUMERATED {true} OPTIONAL + ]] + } +} + +MeasResultListGERAN ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultGERAN + +MeasResultGERAN ::= SEQUENCE { + carrierFreq CarrierFreqGERAN, + physCellId PhysCellIdGERAN, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdGERAN, + routingAreaCode BIT STRING (SIZE (8)) OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + rssi INTEGER (0..63), + ... + } +} + +MeasResultsCDMA2000 ::= SEQUENCE { + preRegistrationStatusHRPD BOOLEAN, + measResultListCDMA2000 MeasResultListCDMA2000 +} + +MeasResultListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCDMA2000 + +MeasResultCDMA2000 ::= SEQUENCE { + physCellId PhysCellIdCDMA2000, + cgi-Info CellGlobalIdCDMA2000 OPTIONAL, + measResult SEQUENCE { + pilotPnPhase INTEGER (0..32767) OPTIONAL, + pilotStrength INTEGER (0..63), + ... + } +} + +MeasResultListWLAN-r13 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultWLAN-r13 + +MeasResultListWLAN-r14 ::= SEQUENCE (SIZE (1..maxWLAN-Id-Report-r14)) OF MeasResultWLAN-r13 + +MeasResultWLAN-r13 ::= SEQUENCE { + wlan-Identifiers-r13 WLAN-Identifiers-r12, + carrierInfoWLAN-r13 WLAN-CarrierInfo-r13 OPTIONAL, + bandWLAN-r13 WLAN-BandIndicator-r13 OPTIONAL, + rssiWLAN-r13 WLAN-RSSI-Range-r13, + availableAdmissionCapacityWLAN-r13 INTEGER (0..31250) OPTIONAL, + backhaulDL-BandwidthWLAN-r13 WLAN-backhaulRate-r12 OPTIONAL, + backhaulUL-BandwidthWLAN-r13 WLAN-backhaulRate-r12 OPTIONAL, + channelUtilizationWLAN-r13 INTEGER (0..255) OPTIONAL, + stationCountWLAN-r13 INTEGER (0..65535) OPTIONAL, + connectedWLAN-r13 ENUMERATED {true} OPTIONAL, + ... +} + +MeasResultListCBR-r14 ::= SEQUENCE (SIZE (1..maxCBR-Report-r14)) OF MeasResultCBR-r14 + +MeasResultCBR-r14 ::= SEQUENCE { + poolIdentity-r14 SL-V2X-TxPoolReportIdentity-r14, + cbr-PSSCH-r14 SL-CBR-r14, + cbr-PSCCH-r14 SL-CBR-r14 OPTIONAL +} + +MeasResultForECID-r9 ::= SEQUENCE { + ue-RxTxTimeDiffResult-r9 INTEGER (0..4095), + currentSFN-r9 BIT STRING (SIZE (10)) +} + +PLMN-IdentityList2 ::= SEQUENCE (SIZE (1..5)) OF PLMN-Identity + +AdditionalSI-Info-r9 ::= SEQUENCE { + csg-MemberStatus-r9 ENUMERATED {member} OPTIONAL, + csg-Identity-r9 CSG-Identity OPTIONAL +} +MeasResultForRSSI-r13 ::= SEQUENCE { + rssi-Result-r13 RSSI-Range-r13, + channelOccupancy-r13 INTEGER (0..100), + ... +} + +UL-PDCP-DelayResultList-r13 ::= SEQUENCE (SIZE (1..maxQCI-r13)) OF UL-PDCP-DelayResult-r13 + + +UL-PDCP-DelayResult-r13 ::= SEQUENCE { + qci-Id-r13 ENUMERATED {qci1, qci2, qci3, qci4, spare4, spare3, spare2, spare1}, + excessDelay-r13 INTEGER (0..31), + ... +} + + +MeasResultCellListSFTD-r15 ::= SEQUENCE (SIZE (1..maxCellSFTD)) OF MeasResultCellSFTD-r15 + +MeasResultCellSFTD-r15 ::= SEQUENCE { + physCellId-r15 PhysCellIdNR-r15, + sfn-OffsetResult-r15 INTEGER (0..1023), + frameBoundaryOffsetResult-r15 INTEGER (-30720..30719), + rsrpResult-r15 RSRP-RangeNR-r15 OPTIONAL +} + + +MeasResultSSTD-r13 ::= SEQUENCE { + sfn-OffsetResult-r13 INTEGER (0..1023), + frameBoundaryOffsetResult-r13 INTEGER (-5..4), + subframeBoundaryOffsetResult-r13 INTEGER (0..127) +} + + +MeasScaleFactor-r12 ::= ENUMERATED {sf-EUTRA-cf1, sf-EUTRA-cf2} + + +QuantityConfig ::= SEQUENCE { + quantityConfigEUTRA QuantityConfigEUTRA OPTIONAL, -- Need ON + quantityConfigUTRA QuantityConfigUTRA OPTIONAL, -- Need ON + quantityConfigGERAN QuantityConfigGERAN OPTIONAL, -- Need ON + quantityConfigCDMA2000 QuantityConfigCDMA2000 OPTIONAL, -- Need ON + ..., + [[ quantityConfigUTRA-v1020 QuantityConfigUTRA-v1020 OPTIONAL -- Need ON + ]], + [[ quantityConfigEUTRA-v1250 QuantityConfigEUTRA-v1250 OPTIONAL -- Need ON + ]], + [[ quantityConfigEUTRA-v1310 QuantityConfigEUTRA-v1310 OPTIONAL, -- Need ON + quantityConfigWLAN-r13 QuantityConfigWLAN-r13 OPTIONAL -- Need ON + ]], + [[ quantityConfigNRList-r15 QuantityConfigNRList-r15 OPTIONAL -- Need ON + ]] +} + +QuantityConfigEUTRA ::= SEQUENCE { + filterCoefficientRSRP FilterCoefficient DEFAULT fc4, + filterCoefficientRSRQ FilterCoefficient DEFAULT fc4 +} + +QuantityConfigEUTRA-v1250 ::= SEQUENCE { + filterCoefficientCSI-RSRP-r12 FilterCoefficient OPTIONAL -- Need OR +} + +QuantityConfigEUTRA-v1310 ::= SEQUENCE { + filterCoefficientRS-SINR-r13 FilterCoefficient DEFAULT fc4 +} + +QuantityConfigUTRA ::= SEQUENCE { + measQuantityUTRA-FDD ENUMERATED {cpich-RSCP, cpich-EcN0}, + measQuantityUTRA-TDD ENUMERATED {pccpch-RSCP}, + filterCoefficient FilterCoefficient DEFAULT fc4 +} + +QuantityConfigUTRA-v1020 ::= SEQUENCE { + filterCoefficient2-FDD-r10 FilterCoefficient DEFAULT fc4 +} + +QuantityConfigGERAN ::= SEQUENCE { + measQuantityGERAN ENUMERATED {rssi}, + filterCoefficient FilterCoefficient DEFAULT fc2 +} + +QuantityConfigCDMA2000 ::= SEQUENCE { + measQuantityCDMA2000 ENUMERATED {pilotStrength, pilotPnPhaseAndPilotStrength} +} + +QuantityConfigNRList-r15 ::= SEQUENCE (SIZE (1..maxQuantSetsNR-r15)) OF QuantityConfigNR-r15 + +QuantityConfigNR-r15 ::= SEQUENCE { + measQuantityCellNR-r15 QuantityConfigRS-NR-r15, + measQuantityRS-IndexNR-r15 QuantityConfigRS-NR-r15 OPTIONAL +} + +QuantityConfigRS-NR-r15 ::= SEQUENCE { + filterCoeff-RSRP-r15 FilterCoefficient DEFAULT fc4, + filterCoeff-RSRQ-r15 FilterCoefficient DEFAULT fc4, + filterCoefficient-SINR-r13 FilterCoefficient DEFAULT fc4 +} + +QuantityConfigWLAN-r13 ::= SEQUENCE { + measQuantityWLAN-r13 ENUMERATED {rssiWLAN}, + filterCoefficient-r13 FilterCoefficient DEFAULT fc4 +} + + +ReportConfigEUTRA ::= SEQUENCE { + triggerType CHOICE { + event SEQUENCE { + eventId CHOICE { + eventA1 SEQUENCE { + a1-Threshold ThresholdEUTRA + }, + eventA2 SEQUENCE { + a2-Threshold ThresholdEUTRA + }, + eventA3 SEQUENCE { + a3-Offset INTEGER (-30..30), + reportOnLeave BOOLEAN + }, + eventA4 SEQUENCE { + a4-Threshold ThresholdEUTRA + }, + eventA5 SEQUENCE { + a5-Threshold1 ThresholdEUTRA, + a5-Threshold2 ThresholdEUTRA + }, + ..., + eventA6-r10 SEQUENCE { + a6-Offset-r10 INTEGER (-30..30), + a6-ReportOnLeave-r10 BOOLEAN + }, + eventC1-r12 SEQUENCE { + c1-Threshold-r12 ThresholdEUTRA-v1250, + c1-ReportOnLeave-r12 BOOLEAN + }, + eventC2-r12 SEQUENCE { + c2-RefCSI-RS-r12 MeasCSI-RS-Id-r12, + c2-Offset-r12 INTEGER (-30..30), + c2-ReportOnLeave-r12 BOOLEAN + }, + eventV1-r14 SEQUENCE { + v1-Threshold-r14 SL-CBR-r14 + }, + eventV2-r14 SEQUENCE { + v2-Threshold-r14 SL-CBR-r14 + } + }, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + periodical SEQUENCE { + purpose ENUMERATED { + reportStrongestCells, reportCGI} + } + }, + triggerQuantity ENUMERATED {rsrp, rsrq}, + reportQuantity ENUMERATED {sameAsTriggerQuantity, both}, + maxReportCells INTEGER (1..maxCellReport), + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + ..., + [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL, -- Cond reportCGI + ue-RxTxTimeDiffPeriodical-r9 ENUMERATED {setup} OPTIONAL -- Need OR + ]], + [[ includeLocationInfo-r10 ENUMERATED {true} OPTIONAL, -- Need OR + reportAddNeighMeas-r10 ENUMERATED {setup} OPTIONAL -- Need OR + ]], + [[ alternativeTimeToTrigger-r12 CHOICE { + release NULL, + setup TimeToTrigger + } OPTIONAL, -- Need ON + useT312-r12 BOOLEAN OPTIONAL, -- Need ON + usePSCell-r12 BOOLEAN OPTIONAL, -- Need ON + aN-Threshold1-v1250 RSRQ-RangeConfig-r12 OPTIONAL, -- Need ON + a5-Threshold2-v1250 RSRQ-RangeConfig-r12 OPTIONAL, -- Need ON + reportStrongestCSI-RSs-r12 BOOLEAN OPTIONAL, -- Need ON + reportCRS-Meas-r12 BOOLEAN OPTIONAL, -- Need ON + triggerQuantityCSI-RS-r12 BOOLEAN OPTIONAL -- Need ON + ]], + [[ reportSSTD-Meas-r13 BOOLEAN OPTIONAL, -- Need ON + rs-sinr-Config-r13 CHOICE { + release NULL, + setup SEQUENCE { + triggerQuantity-v1310 ENUMERATED {sinr} OPTIONAL, -- Need ON + aN-Threshold1-r13 RS-SINR-Range-r13 OPTIONAL, -- Need ON + a5-Threshold2-r13 RS-SINR-Range-r13 OPTIONAL, -- Need ON + reportQuantity-v1310 ENUMERATED {rsrpANDsinr, rsrqANDsinr, all} + } + } OPTIONAL, -- Need ON + useWhiteCellList-r13 BOOLEAN OPTIONAL, -- Need ON + measRSSI-ReportConfig-r13 MeasRSSI-ReportConfig-r13 OPTIONAL, -- Need ON + includeMultiBandInfo-r13 ENUMERATED {true} OPTIONAL, -- Cond reportCGI + ul-DelayConfig-r13 UL-DelayConfig-r13 OPTIONAL -- Need ON + ]], + [[ ue-RxTxTimeDiffPeriodicalTDD-r13 BOOLEAN OPTIONAL -- Need ON + ]], + [[ + purpose-v1430 ENUMERATED {reportLocation, sidelink, spare2, spare1} + OPTIONAL -- Need ON + ]], + [[ + maxReportRS-Index-r15 INTEGER (0..maxRS-IndexReport-r15) OPTIONAL -- Need ON + ]] +} + +RSRQ-RangeConfig-r12 ::= CHOICE { + release NULL, + setup RSRQ-Range-v1250 +} + +ThresholdEUTRA ::= CHOICE{ + threshold-RSRP RSRP-Range, + threshold-RSRQ RSRQ-Range +} + +ThresholdEUTRA-v1250 ::= CSI-RSRP-Range-r12 + +MeasRSSI-ReportConfig-r13 ::= SEQUENCE { + channelOccupancyThreshold-r13 RSSI-Range-r13 OPTIONAL -- Need OR +} + + +ReportConfigId ::= INTEGER (1..maxReportConfigId) + + +ReportConfigInterRAT ::= SEQUENCE { + triggerType CHOICE { + event SEQUENCE { + eventId CHOICE { + eventB1 SEQUENCE { + b1-Threshold CHOICE { + b1-ThresholdUTRA ThresholdUTRA, + b1-ThresholdGERAN ThresholdGERAN, + b1-ThresholdCDMA2000 ThresholdCDMA2000 + } + }, + eventB2 SEQUENCE { + b2-Threshold1 ThresholdEUTRA, + b2-Threshold2 CHOICE { + b2-Threshold2UTRA ThresholdUTRA, + b2-Threshold2GERAN ThresholdGERAN, + b2-Threshold2CDMA2000 ThresholdCDMA2000 + } + }, + ..., + eventW1-r13 SEQUENCE { + w1-Threshold-r13 WLAN-RSSI-Range-r13 + }, + eventW2-r13 SEQUENCE { + w2-Threshold1-r13 WLAN-RSSI-Range-r13, + w2-Threshold2-r13 WLAN-RSSI-Range-r13 + }, + eventW3-r13 SEQUENCE { + w3-Threshold-r13 WLAN-RSSI-Range-r13 + }, + eventB1-NR-r15 SEQUENCE { + b1-ThresholdNR-r15 ThresholdNR-r15, + reportOnLeave-r15 BOOLEAN + }, + eventB2-NR-r15 SEQUENCE { + b2-Threshold1-r15 ThresholdEUTRA, + b2-Threshold2NR-r15 ThresholdNR-r15, + reportOnLeave-r15 BOOLEAN + } + }, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + periodical SEQUENCE { + purpose ENUMERATED { + reportStrongestCells, + reportStrongestCellsForSON, + reportCGI} + } + }, + maxReportCells INTEGER (1..maxCellReport), + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + ..., + [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL -- Cond reportCGI + ]], + [[ reportQuantityUTRA-FDD-r10 ENUMERATED {both} OPTIONAL -- Need OR + ]], + [[ includeLocationInfo-r11 BOOLEAN OPTIONAL -- Need ON + ]], + [[ b2-Threshold1-v1250 CHOICE { + release NULL, + setup RSRQ-Range-v1250 + } OPTIONAL -- Need ON + ]], + [[ reportQuantityWLAN-r13 ReportQuantityWLAN-r13 OPTIONAL -- Need ON + ]], + [[ reportAnyWLAN-r14 BOOLEAN OPTIONAL -- Need ON + ]], + [[ reportQuantityCellNR-r15 ReportQuantityNR-r15 OPTIONAL, -- Need ON + maxReportRS-Index-r15 INTEGER (0..maxRS-IndexReport-r15) OPTIONAL, -- Need ON, + reportQuantityRS-IndexNR-r15 ReportQuantityNR-r15 OPTIONAL, -- Need ON + reportRS-IndexResultsNR BOOLEAN OPTIONAL, -- Need ON + reportSFTD-Meas-r15 ENUMERATED {pSCell, neighborCells } OPTIONAL -- Need ON + ]] +} + +ThresholdUTRA ::= CHOICE{ + utra-RSCP INTEGER (-5..91), + utra-EcN0 INTEGER (0..49) +} + +ThresholdGERAN ::= INTEGER (0..63) + +ThresholdCDMA2000 ::= INTEGER (0..63) + +ReportQuantityNR-r15::= SEQUENCE { + ss-rsrp BOOLEAN, + ss-rsrq BOOLEAN, + ss-sinr BOOLEAN +} + +ReportQuantityWLAN-r13 ::= SEQUENCE { + bandRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + carrierInfoRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + availableAdmissionCapacityRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + backhaulDL-BandwidthRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + backhaulUL-BandwidthRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + channelUtilizationRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + stationCountRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + ... +} + + +ReportConfigToAddModList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigToAddMod + +ReportConfigToAddMod ::= SEQUENCE { + reportConfigId ReportConfigId, + reportConfig CHOICE { + reportConfigEUTRA ReportConfigEUTRA, + reportConfigInterRAT ReportConfigInterRAT + } +} + + + +ReportInterval ::= ENUMERATED { + ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, + min1, min6, min12, min30, min60, spare3, spare2, spare1} + + +RSRP-Range ::= INTEGER(0..97) + +RSRP-Range-v1360 ::= INTEGER(-17..-1) + +RSRP-RangeSL-r12 ::= INTEGER(0..13) + +RSRP-RangeSL2-r12 ::= INTEGER(0..7) + +RSRP-RangeSL3-r12 ::= INTEGER(0..11) + +RSRP-RangeSL4-r13 ::= INTEGER(0..49) + + +RSRP-RangeNR-r15 ::= INTEGER (0..127) + + +RSRQ-Range ::= INTEGER(0..34) + +RSRQ-Range-v1250 ::= INTEGER(-30..46) + +RSRQ-Range-r13 ::= INTEGER(-30..46) + + +RSRQ-RangeNR-r15 ::= INTEGER (0..127) + + +RSRQ-Type-r12 ::= SEQUENCE { + allSymbols-r12 BOOLEAN, + wideBand-r12 BOOLEAN +} + + +RS-SINR-Range-r13 ::= INTEGER(0..127) + + +RS-SINR-RangeNR-r15 ::= INTEGER (0..127) + + +RSSI-Range-r13 ::= INTEGER(0..76) + + +TimeToTrigger ::= ENUMERATED { + ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256, + ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560, + ms5120} + + +UL-DelayConfig-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + delayThreshold-r13 ENUMERATED { + ms30, ms40, ms50, ms60, ms70, ms80, + ms90,ms100, ms150, ms300, ms500, ms750, spare4, spare3, spare2, spare1} + } +} + + +WLAN-CarrierInfo-r13 ::= SEQUENCE { + operatingClass-r13 INTEGER (0..255) OPTIONAL, -- Need ON + countryCode-r13 ENUMERATED {unitedStates, europe, japan, global, ...} OPTIONAL, -- Need ON + channelNumbers-r13 WLAN-ChannelList-r13 OPTIONAL, -- Need ON + ... +} + +WLAN-ChannelList-r13 ::= SEQUENCE (SIZE (1..maxWLAN-Channels-r13)) OF WLAN-Channel-r13 + +WLAN-Channel-r13 ::= INTEGER(0..255) + + +WLAN-RSSI-Range-r13 ::= INTEGER(0..141) + + +WLAN-Status-r13 ::= ENUMERATED {successfulAssociation, failureWlanRadioLink, failureWlanUnavailable, failureTimeout} + +WLAN-Status-v1430 ::= ENUMERATED {suspended, resumed} + + +WLAN-SuspendConfig-r14 ::= SEQUENCE { + wlan-SuspendResumeAllowed-r14 BOOLEAN OPTIONAL, -- Need ON + wlan-SuspendTriggersStatusReport-r14 BOOLEAN OPTIONAL -- Need ON +} + + +AbsoluteTimeInfo-r10 ::= BIT STRING (SIZE (48)) + + +AreaConfiguration-r10 ::= CHOICE { + cellGlobalIdList-r10 CellGlobalIdList-r10, + trackingAreaCodeList-r10 TrackingAreaCodeList-r10 +} + +AreaConfiguration-v1130 ::= SEQUENCE { + trackingAreaCodeList-v1130 TrackingAreaCodeList-v1130 +} + +CellGlobalIdList-r10 ::= SEQUENCE (SIZE (1..32)) OF CellGlobalIdEUTRA + +TrackingAreaCodeList-r10 ::= SEQUENCE (SIZE (1..8)) OF TrackingAreaCode + +TrackingAreaCodeList-v1130 ::= SEQUENCE { + plmn-Identity-perTAC-List-r11 SEQUENCE (SIZE (1..8)) OF PLMN-Identity +} + + +BandCombinationList-r14 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombination-r14 + +BandCombination-r14 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandIndication-r14 + +BandIndication-r14 ::= SEQUENCE { + bandEUTRA-r14 FreqBandIndicator-r11, + ca-BandwidthClassDL-r14 CA-BandwidthClass-r10, + ca-BandwidthClassUL-r14 CA-BandwidthClass-r10 OPTIONAL +} + + +C-RNTI ::= BIT STRING (SIZE (16)) + + +DedicatedInfoCDMA2000 ::= OCTET STRING + + +DedicatedInfoNAS ::= OCTET STRING + + +FilterCoefficient ::= ENUMERATED { + fc0, fc1, fc2, fc3, fc4, fc5, + fc6, fc7, fc8, fc9, fc11, fc13, + fc15, fc17, fc19, spare1, ...} + + +LoggingDuration-r10 ::= ENUMERATED { + min10, min20, min40, min60, min90, min120, spare2, spare1} + + +LoggingInterval-r10 ::= ENUMERATED { + ms1280, ms2560, ms5120, ms10240, ms20480, + ms30720, ms40960, ms61440} + + +MeasSubframePattern-r10 ::= CHOICE { + subframePatternFDD-r10 BIT STRING (SIZE (40)), + subframePatternTDD-r10 CHOICE { + subframeConfig1-5-r10 BIT STRING (SIZE (20)), + subframeConfig0-r10 BIT STRING (SIZE (70)), + subframeConfig6-r10 BIT STRING (SIZE (60)), + ... + }, + ... +} + + +MMEC ::= BIT STRING (SIZE (8)) + + +NeighCellConfig ::= BIT STRING (SIZE (2)) + + +OtherConfig-r9 ::= SEQUENCE { + reportProximityConfig-r9 ReportProximityConfig-r9 OPTIONAL, -- Need ON + ..., + [[ idc-Config-r11 IDC-Config-r11 OPTIONAL, -- Need ON + powerPrefIndicationConfig-r11 PowerPrefIndicationConfig-r11 OPTIONAL, -- Need ON + obtainLocationConfig-r11 ObtainLocationConfig-r11 OPTIONAL -- Need ON + ]], + [[ bw-PreferenceIndicationTimer-r14 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, + s30, s60, s90, s120, s300, s600, spare3, + spare2, spare1} OPTIONAL, -- Need OR + sps-AssistanceInfoReport-r14 BOOLEAN OPTIONAL, -- Need ON + delayBudgetReportingConfig-r14 CHOICE{ + release NULL, + setup SEQUENCE{ + delayBudgetReportingProhibitTimer-r14 ENUMERATED { + s0, s0dot4, s0dot8, + s1dot6, s3, s6, s12, s30} + } + } OPTIONAL, -- Need ON + rlm-ReportConfig-r14 CHOICE { + release NULL, + setup SEQUENCE{ + rlmReportTimer-r14 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, s30, + s60, s90, s120, s300, s600, spare3, spare2, spare1}, + rlmReportRep-MPDCCH-r14 ENUMERATED {setup} OPTIONAL -- Need OR + } + } OPTIONAL -- Need ON + ]], + [[ overheatingAssistanceConfig-r14 CHOICE{ + release NULL, + setup SEQUENCE{ + overheatingIndicationProhibitTimer-r14 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, + s20, s30, s60, s90, s120, s300, s600, + spare3, spare2, spare1} + } + } OPTIONAL -- Need ON + ]] +} + +IDC-Config-r11 ::= SEQUENCE { + idc-Indication-r11 ENUMERATED {setup} OPTIONAL, -- Need OR + autonomousDenialParameters-r11 SEQUENCE { + autonomousDenialSubframes-r11 ENUMERATED {n2, n5, n10, n15, + n20, n30, spare2, spare1}, + autonomousDenialValidity-r11 ENUMERATED { + sf200, sf500, sf1000, sf2000, + spare4, spare3, spare2, spare1} + } OPTIONAL, -- Need OR + ..., + [[ idc-Indication-UL-CA-r11 ENUMERATED {setup} OPTIONAL -- Cond idc-Ind + ]], + [[ idc-HardwareSharingIndication-r13 ENUMERATED {setup} OPTIONAL -- Need OR + ]] +} + +ObtainLocationConfig-r11 ::= SEQUENCE { + obtainLocation-r11 ENUMERATED {setup} OPTIONAL -- Need OR +} + +PowerPrefIndicationConfig-r11 ::= CHOICE{ + release NULL, + setup SEQUENCE{ + powerPrefIndicationTimer-r11 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, + s30, s60, s90, s120, s300, s600, spare3, + spare2, spare1} + } +} + +ReportProximityConfig-r9 ::= SEQUENCE { + proximityIndicationEUTRA-r9 ENUMERATED {enabled} OPTIONAL, -- Need OR + proximityIndicationUTRA-r9 ENUMERATED {enabled} OPTIONAL -- Need OR +} + + +RAND-CDMA2000 ::= BIT STRING (SIZE (32)) + + +RAT-Type ::= ENUMERATED { + eutra, utra, geran-cs, geran-ps, cdma2000-1XRTT, + nr, eutra-nr, spare1, ...} + + +ResumeIdentity-r13 ::= BIT STRING (SIZE(40)) + + +RRC-TransactionIdentifier ::= INTEGER (0..3) + + +S-TMSI ::= SEQUENCE { + mmec MMEC, + m-TMSI BIT STRING (SIZE (32)) +} + + +TraceReference-r10 ::= SEQUENCE { + plmn-Identity-r10 PLMN-Identity, + traceId-r10 OCTET STRING (SIZE (3)) +} + + +UE-CapabilityRAT-ContainerList ::=SEQUENCE (SIZE (0..maxRAT-Capabilities)) OF UE-CapabilityRAT-Container + +UE-CapabilityRAT-Container ::= SEQUENCE { + rat-Type RAT-Type, + ueCapabilityRAT-Container OCTET STRING +} + + +UE-EUTRA-Capability ::= SEQUENCE { + accessStratumRelease AccessStratumRelease, + ue-Category INTEGER (1..5), + pdcp-Parameters PDCP-Parameters, + phyLayerParameters PhyLayerParameters, + rf-Parameters RF-Parameters, + measParameters MeasParameters, + featureGroupIndicators BIT STRING (SIZE (32)) OPTIONAL, + interRAT-Parameters SEQUENCE { + utraFDD IRAT-ParametersUTRA-FDD OPTIONAL, + utraTDD128 IRAT-ParametersUTRA-TDD128 OPTIONAL, + utraTDD384 IRAT-ParametersUTRA-TDD384 OPTIONAL, + utraTDD768 IRAT-ParametersUTRA-TDD768 OPTIONAL, + geran IRAT-ParametersGERAN OPTIONAL, + cdma2000-HRPD IRAT-ParametersCDMA2000-HRPD OPTIONAL, + cdma2000-1xRTT IRAT-ParametersCDMA2000-1XRTT OPTIONAL + }, + nonCriticalExtension UE-EUTRA-Capability-v920-IEs OPTIONAL +} + +-- Late non critical extensions +UE-EUTRA-Capability-v9a0-IEs ::= SEQUENCE { + featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9c0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9c0-IEs ::= SEQUENCE { + interRAT-ParametersUTRA-v9c0 IRAT-ParametersUTRA-v9c0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9d0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9d0-IEs ::= SEQUENCE { + phyLayerParameters-v9d0 PhyLayerParameters-v9d0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9e0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9e0-IEs ::= SEQUENCE { + rf-Parameters-v9e0 RF-Parameters-v9e0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9h0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9h0-IEs ::= SEQUENCE { + interRAT-ParametersUTRA-v9h0 IRAT-ParametersUTRA-v9h0 OPTIONAL, + -- Following field is only to be used for late REL-9 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10c0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10c0-IEs ::= SEQUENCE { + otdoa-PositioningCapabilities-r10 OTDOA-PositioningCapabilities-r10 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10f0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10f0-IEs ::= SEQUENCE { + rf-Parameters-v10f0 RF-Parameters-v10f0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10i0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10i0-IEs ::= SEQUENCE { + rf-Parameters-v10i0 RF-Parameters-v10i0 OPTIONAL, + -- Following field is only to be used for late REL-10 extensions + lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v10j0-IEs) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11d0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10j0-IEs ::= SEQUENCE { + rf-Parameters-v10j0 RF-Parameters-v10j0 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-EUTRA-Capability-v11d0-IEs ::= SEQUENCE { + rf-Parameters-v11d0 RF-Parameters-v11d0 OPTIONAL, + otherParameters-v11d0 Other-Parameters-v11d0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11x0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v11x0-IEs ::= SEQUENCE { + -- Following field is only to be used for late REL-11 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v12b0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v12b0-IEs ::= SEQUENCE { + rf-Parameters-v12b0 RF-Parameters-v12b0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v12x0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v12x0-IEs ::= SEQUENCE { + -- Following field is only to be used for late REL-12 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1370-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1370-IEs ::= SEQUENCE { + ce-Parameters-v1370 CE-Parameters-v1370 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1370 UE-EUTRA-CapabilityAddXDD-Mode-v1370 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1370 UE-EUTRA-CapabilityAddXDD-Mode-v1370 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1380-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1380-IEs ::= SEQUENCE { + rf-Parameters-v1380 RF-Parameters-v1380 OPTIONAL, + ce-Parameters-v1380 CE-Parameters-v1380, + fdd-Add-UE-EUTRA-Capabilities-v1380 UE-EUTRA-CapabilityAddXDD-Mode-v1380, + tdd-Add-UE-EUTRA-Capabilities-v1380 UE-EUTRA-CapabilityAddXDD-Mode-v1380, + nonCriticalExtension UE-EUTRA-Capability-v1390-IEs OPTIONAL +} +   +UE-EUTRA-Capability-v1390-IEs ::= SEQUENCE { + rf-Parameters-v1390 RF-Parameters-v1390 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v13x0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v13x0-IEs ::= SEQUENCE { + -- Following field is only to be used for late REL-13 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1470-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1470-IEs ::= SEQUENCE { + mbms-Parameters-v1470 MBMS-Parameters-v1470 OPTIONAL, + phyLayerParameters-v1470 PhyLayerParameters-v1470 OPTIONAL, + rf-Parameters-v1470 RF-Parameters-v1470 OPTIONAL, + -- Following field is only to be used for late REL-14 extensions + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +UE-EUTRA-Capability-v920-IEs ::= SEQUENCE { + phyLayerParameters-v920 PhyLayerParameters-v920, + interRAT-ParametersGERAN-v920 IRAT-ParametersGERAN-v920, + interRAT-ParametersUTRA-v920 IRAT-ParametersUTRA-v920 OPTIONAL, + interRAT-ParametersCDMA2000-v920 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL, + deviceType-r9 ENUMERATED {noBenFromBatConsumpOpt} OPTIONAL, + csg-ProximityIndicationParameters-r9 CSG-ProximityIndicationParameters-r9, + neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9, + son-Parameters-r9 SON-Parameters-r9, + nonCriticalExtension UE-EUTRA-Capability-v940-IEs OPTIONAL +} + +UE-EUTRA-Capability-v940-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v9a0-IEs) + OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1020-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1020-IEs ::= SEQUENCE { + ue-Category-v1020 INTEGER (6..8) OPTIONAL, + phyLayerParameters-v1020 PhyLayerParameters-v1020 OPTIONAL, + rf-Parameters-v1020 RF-Parameters-v1020 OPTIONAL, + measParameters-v1020 MeasParameters-v1020 OPTIONAL, + featureGroupIndRel10-r10 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersCDMA2000-v1020 IRAT-ParametersCDMA2000-1XRTT-v1020 OPTIONAL, + ue-BasedNetwPerfMeasParameters-r10 UE-BasedNetwPerfMeasParameters-r10 OPTIONAL, + interRAT-ParametersUTRA-TDD-v1020 IRAT-ParametersUTRA-TDD-v1020 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1060-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1060-IEs ::= SEQUENCE { + fdd-Add-UE-EUTRA-Capabilities-v1060 UE-EUTRA-CapabilityAddXDD-Mode-v1060 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1060 UE-EUTRA-CapabilityAddXDD-Mode-v1060 OPTIONAL, + rf-Parameters-v1060 RF-Parameters-v1060 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1090-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1090-IEs ::= SEQUENCE { + rf-Parameters-v1090 RF-Parameters-v1090 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1130-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1130-IEs ::= SEQUENCE { + pdcp-Parameters-v1130 PDCP-Parameters-v1130, + phyLayerParameters-v1130 PhyLayerParameters-v1130 OPTIONAL, + rf-Parameters-v1130 RF-Parameters-v1130, + measParameters-v1130 MeasParameters-v1130, + interRAT-ParametersCDMA2000-v1130 IRAT-ParametersCDMA2000-v1130, + otherParameters-r11 Other-Parameters-r11, + fdd-Add-UE-EUTRA-Capabilities-v1130 UE-EUTRA-CapabilityAddXDD-Mode-v1130 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1130 UE-EUTRA-CapabilityAddXDD-Mode-v1130 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1170-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1170-IEs ::= SEQUENCE { + phyLayerParameters-v1170 PhyLayerParameters-v1170 OPTIONAL, + ue-Category-v1170 INTEGER (9..10) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1180-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1180-IEs ::= SEQUENCE { + rf-Parameters-v1180 RF-Parameters-v1180 OPTIONAL, + mbms-Parameters-r11 MBMS-Parameters-r11 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1180 UE-EUTRA-CapabilityAddXDD-Mode-v1180 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1180 UE-EUTRA-CapabilityAddXDD-Mode-v1180 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11a0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v11a0-IEs ::= SEQUENCE { + ue-Category-v11a0 INTEGER (11..12) OPTIONAL, + measParameters-v11a0 MeasParameters-v11a0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1250-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1250-IEs ::= SEQUENCE { + phyLayerParameters-v1250 PhyLayerParameters-v1250 OPTIONAL, + rf-Parameters-v1250 RF-Parameters-v1250 OPTIONAL, + rlc-Parameters-r12 RLC-Parameters-r12 OPTIONAL, + ue-BasedNetwPerfMeasParameters-v1250 UE-BasedNetwPerfMeasParameters-v1250 OPTIONAL, + ue-CategoryDL-r12 INTEGER (0..14) OPTIONAL, + ue-CategoryUL-r12 INTEGER (0..13) OPTIONAL, + wlan-IW-Parameters-r12 WLAN-IW-Parameters-r12 OPTIONAL, + measParameters-v1250 MeasParameters-v1250 OPTIONAL, + dc-Parameters-r12 DC-Parameters-r12 OPTIONAL, + mbms-Parameters-v1250 MBMS-Parameters-v1250 OPTIONAL, + mac-Parameters-r12 MAC-Parameters-r12 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1250 UE-EUTRA-CapabilityAddXDD-Mode-v1250 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1250 UE-EUTRA-CapabilityAddXDD-Mode-v1250 OPTIONAL, + sl-Parameters-r12 SL-Parameters-r12 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1260-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1260-IEs ::= SEQUENCE { + ue-CategoryDL-v1260 INTEGER (15..16) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1270-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1270-IEs ::= SEQUENCE { + rf-Parameters-v1270 RF-Parameters-v1270 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1280-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1280-IEs ::= SEQUENCE { + phyLayerParameters-v1280 PhyLayerParameters-v1280 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1310-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1310-IEs ::= SEQUENCE { + ue-CategoryDL-v1310 ENUMERATED {n17, m1} OPTIONAL, + ue-CategoryUL-v1310 ENUMERATED {n14, m1} OPTIONAL, + pdcp-Parameters-v1310 PDCP-Parameters-v1310, + rlc-Parameters-v1310 RLC-Parameters-v1310, + mac-Parameters-v1310 MAC-Parameters-v1310 OPTIONAL, + phyLayerParameters-v1310 PhyLayerParameters-v1310 OPTIONAL, + rf-Parameters-v1310 RF-Parameters-v1310 OPTIONAL, + measParameters-v1310 MeasParameters-v1310 OPTIONAL, + dc-Parameters-v1310 DC-Parameters-v1310 OPTIONAL, + sl-Parameters-v1310 SL-Parameters-v1310 OPTIONAL, + scptm-Parameters-r13 SCPTM-Parameters-r13 OPTIONAL, + ce-Parameters-r13 CE-Parameters-r13 OPTIONAL, + interRAT-ParametersWLAN-r13 IRAT-ParametersWLAN-r13, + laa-Parameters-r13 LAA-Parameters-r13 OPTIONAL, + lwa-Parameters-r13 LWA-Parameters-r13 OPTIONAL, + wlan-IW-Parameters-v1310 WLAN-IW-Parameters-v1310, + lwip-Parameters-r13 LWIP-Parameters-r13, + fdd-Add-UE-EUTRA-Capabilities-v1310 UE-EUTRA-CapabilityAddXDD-Mode-v1310 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1310 UE-EUTRA-CapabilityAddXDD-Mode-v1310 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1320-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1320-IEs ::= SEQUENCE { + ce-Parameters-v1320 CE-Parameters-v1320 OPTIONAL, + phyLayerParameters-v1320 PhyLayerParameters-v1320 OPTIONAL, + rf-Parameters-v1320 RF-Parameters-v1320 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1320 UE-EUTRA-CapabilityAddXDD-Mode-v1320 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1320 UE-EUTRA-CapabilityAddXDD-Mode-v1320 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1330-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1330-IEs ::= SEQUENCE { + ue-CategoryDL-v1330 INTEGER (18..19) OPTIONAL, + phyLayerParameters-v1330 PhyLayerParameters-v1330 OPTIONAL, + ue-CE-NeedULGaps-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1340-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1340-IEs ::= SEQUENCE { + ue-CategoryUL-v1340 INTEGER (15) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1350-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1350-IEs ::= SEQUENCE { + ue-CategoryDL-v1350 ENUMERATED {oneBis} OPTIONAL, + ue-CategoryUL-v1350 ENUMERATED {oneBis} OPTIONAL, + ce-Parameters-v1350 CE-Parameters-v1350, + nonCriticalExtension UE-EUTRA-Capability-v1360-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1360-IEs ::= SEQUENCE { + other-Parameters-v1360 Other-Parameters-v1360 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1430-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1430-IEs ::= SEQUENCE { + phyLayerParameters-v1430 PhyLayerParameters-v1430, + ue-CategoryDL-v1430 ENUMERATED {m2} OPTIONAL, + ue-CategoryUL-v1430 ENUMERATED {n16, n17, n18, n19, n20, m2} OPTIONAL, + ue-CategoryUL-v1430b ENUMERATED {n21} OPTIONAL, + mac-Parameters-v1430 MAC-Parameters-v1430 OPTIONAL, + measParameters-v1430 MeasParameters-v1430 OPTIONAL, + pdcp-Parameters-v1430 PDCP-Parameters-v1430 OPTIONAL, + rlc-Parameters-v1430 RLC-Parameters-v1430, + rf-Parameters-v1430 RF-Parameters-v1430 OPTIONAL, + laa-Parameters-v1430 LAA-Parameters-v1430 OPTIONAL, + lwa-Parameters-v1430 LWA-Parameters-v1430 OPTIONAL, + lwip-Parameters-v1430 LWIP-Parameters-v1430 OPTIONAL, + otherParameters-v1430 Other-Parameters-v1430, + mmtel-Parameters-r14 MMTEL-Parameters-r14 OPTIONAL, + mobilityParameters-r14 MobilityParameters-r14 OPTIONAL, + ce-Parameters-v1430 CE-Parameters-v1430, + fdd-Add-UE-EUTRA-Capabilities-v1430 UE-EUTRA-CapabilityAddXDD-Mode-v1430 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1430 UE-EUTRA-CapabilityAddXDD-Mode-v1430 OPTIONAL, + mbms-Parameters-v1430 MBMS-Parameters-v1430 OPTIONAL, + sl-Parameters-v1430 SL-Parameters-v1430 OPTIONAL, + ue-BasedNetwPerfMeasParameters-v1430 UE-BasedNetwPerfMeasParameters-v1430 OPTIONAL, + highSpeedEnhParameters-r14 HighSpeedEnhParameters-r14 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1440-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1440-IEs ::= SEQUENCE { + lwa-Parameters-v1440 LWA-Parameters-v1440, + mac-Parameters-v1440 MAC-Parameters-v1440, + nonCriticalExtension UE-EUTRA-Capability-v1450-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1450-IEs ::= SEQUENCE { + phyLayerParameters-v1450 PhyLayerParameters-v1450 OPTIONAL, + rf-Parameters-v1450 RF-Parameters-v1450 OPTIONAL, + otherParameters-v1450 OtherParameters-v1450, + ue-CategoryDL-v1450 INTEGER (20) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1460-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1460-IEs ::= SEQUENCE { + ue-CategoryDL-v1460 INTEGER (21) OPTIONAL, + otherParameters-v1460 Other-Parameters-v1460, + nonCriticalExtension UE-EUTRA-Capability-v1510-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1510-IEs ::= SEQUENCE { + irat-ParametersNR-r15 IRAT-ParametersNR-r15 OPTIONAL, + featureSetsEUTRA-r15 FeatureSetsEUTRA-r15 OPTIONAL, + pdcp-ParametersNR-r15 PDCP-ParametersNR-r15 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1510 UE-EUTRA-CapabilityAddXDD-Mode-v1510 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1510 UE-EUTRA-CapabilityAddXDD-Mode-v1510 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1520-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1520-IEs ::= SEQUENCE { + measParameters-v1520 MeasParameters-v1520, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-r9 ::= SEQUENCE { + phyLayerParameters-r9 PhyLayerParameters OPTIONAL, + featureGroupIndicators-r9 BIT STRING (SIZE (32)) OPTIONAL, + featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersGERAN-r9 IRAT-ParametersGERAN OPTIONAL, + interRAT-ParametersUTRA-r9 IRAT-ParametersUTRA-v920 OPTIONAL, + interRAT-ParametersCDMA2000-r9 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL, + neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9 OPTIONAL, + ... +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1060 ::= SEQUENCE { + phyLayerParameters-v1060 PhyLayerParameters-v1020 OPTIONAL, + featureGroupIndRel10-v1060 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersCDMA2000-v1060 IRAT-ParametersCDMA2000-1XRTT-v1020 OPTIONAL, + interRAT-ParametersUTRA-TDD-v1060 IRAT-ParametersUTRA-TDD-v1020 OPTIONAL, + ..., + [[ otdoa-PositioningCapabilities-r10 OTDOA-PositioningCapabilities-r10 OPTIONAL + ]] +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1130 ::= SEQUENCE { + phyLayerParameters-v1130 PhyLayerParameters-v1130 OPTIONAL, + measParameters-v1130 MeasParameters-v1130 OPTIONAL, + otherParameters-r11 Other-Parameters-r11 OPTIONAL, + ... +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1180 ::= SEQUENCE { + mbms-Parameters-r11 MBMS-Parameters-r11 +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1250 ::= SEQUENCE { + phyLayerParameters-v1250 PhyLayerParameters-v1250 OPTIONAL, + measParameters-v1250 MeasParameters-v1250 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1310 ::= SEQUENCE { + phyLayerParameters-v1310 PhyLayerParameters-v1310 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1320 ::= SEQUENCE { + phyLayerParameters-v1320 PhyLayerParameters-v1320 OPTIONAL, + scptm-Parameters-r13 SCPTM-Parameters-r13 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1370 ::= SEQUENCE { + ce-Parameters-v1370 CE-Parameters-v1370 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1380 ::= SEQUENCE { + ce-Parameters-v1380 CE-Parameters-v1380 +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1430 ::= SEQUENCE { + phyLayerParameters-v1430 PhyLayerParameters-v1430 OPTIONAL, + mmtel-Parameters-r14 MMTEL-Parameters-r14 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1510 ::= SEQUENCE { + pdcp-ParametersNR-r15 PDCP-ParametersNR-r15 OPTIONAL +} + +AccessStratumRelease ::= ENUMERATED { + rel8, rel9, rel10, rel11, rel12, rel13, + rel14, rel15, ...} + +FeatureSetsEUTRA-r15 ::= SEQUENCE { + featureSetsDL-r15 SEQUENCE (SIZE (1..maxFeatureSets-r15)) OF FeatureSetDL-r15 OPTIONAL, + featureSetsDL-PerCC-r15 SEQUENCE (SIZE (1..maxPerCC-FeatureSets-r15)) OF FeatureSetDL-PerCC-r15 OPTIONAL, + featureSetsUL-r15 SEQUENCE (SIZE (1..maxFeatureSets-r15)) OF FeatureSetUL-r15 OPTIONAL, + featureSetsUL-PerCC-r15 SEQUENCE (SIZE (1..maxPerCC-FeatureSets-r15)) OF FeatureSetUL-PerCC-r15 OPTIONAL, + ... +} + +MobilityParameters-r14 ::= SEQUENCE { + makeBeforeBreak-r14 ENUMERATED {supported} OPTIONAL, + rach-Less-r14 ENUMERATED {supported} OPTIONAL +} + +DC-Parameters-r12 ::= SEQUENCE { + drb-TypeSplit-r12 ENUMERATED {supported} OPTIONAL, + drb-TypeSCG-r12 ENUMERATED {supported} OPTIONAL +} + +DC-Parameters-v1310 ::= SEQUENCE { + pdcp-TransferSplitUL-r13 ENUMERATED {supported} OPTIONAL, + ue-SSTD-Meas-r13 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-r12 ::= SEQUENCE { + logicalChannelSR-ProhibitTimer-r12 ENUMERATED {supported} OPTIONAL, + longDRX-Command-r12 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-v1310 ::= SEQUENCE { + extendedMAC-LengthField-r13 ENUMERATED {supported} OPTIONAL, + extendedLongDRX-r13 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-v1430 ::= SEQUENCE { + shortSPS-IntervalFDD-r14 ENUMERATED {supported} OPTIONAL, + shortSPS-IntervalTDD-r14 ENUMERATED {supported} OPTIONAL, + skipUplinkDynamic-r14 ENUMERATED {supported} OPTIONAL, + skipUplinkSPS-r14 ENUMERATED {supported} OPTIONAL, + multipleUplinkSPS-r14 ENUMERATED {supported} OPTIONAL, + dataInactMon-r14 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-v1440 ::= SEQUENCE { + rai-Support-r14 ENUMERATED {supported} OPTIONAL +} + +RLC-Parameters-r12 ::= SEQUENCE { + extended-RLC-LI-Field-r12 ENUMERATED {supported} +} + +RLC-Parameters-v1310 ::= SEQUENCE { + extendedRLC-SN-SO-Field-r13 ENUMERATED {supported} OPTIONAL +} + +RLC-Parameters-v1430 ::= SEQUENCE { + extendedPollByte-r14 ENUMERATED {supported} OPTIONAL +} + +PDCP-Parameters ::= SEQUENCE { + supportedROHC-Profiles ROHC-ProfileSupportList-r15, + maxNumberROHC-ContextSessions ENUMERATED { + cs2, cs4, cs8, cs12, cs16, cs24, cs32, + cs48, cs64, cs128, cs256, cs512, cs1024, + cs16384, spare2, spare1} DEFAULT cs16, + ... +} + +PDCP-Parameters-v1130 ::= SEQUENCE { + pdcp-SN-Extension-r11 ENUMERATED {supported} OPTIONAL, + supportRohcContextContinue-r11 ENUMERATED {supported} OPTIONAL +} + +PDCP-Parameters-v1310 ::= SEQUENCE { + pdcp-SN-Extension-18bits-r13 ENUMERATED {supported} OPTIONAL +} + +PDCP-Parameters-v1430 ::= SEQUENCE { + supportedUplinkOnlyROHC-Profiles-r14 SEQUENCE { + profile0x0006-r14 BOOLEAN + }, + maxNumberROHC-ContextSessions-r14 ENUMERATED { + cs2, cs4, cs8, cs12, cs16, cs24, cs32, + cs48, cs64, cs128, cs256, cs512, cs1024, + cs16384, spare2, spare1} DEFAULT cs16 +} + +PhyLayerParameters ::= SEQUENCE { + ue-TxAntennaSelectionSupported BOOLEAN, + ue-SpecificRefSigsSupported BOOLEAN +} + +PhyLayerParameters-v920 ::= SEQUENCE { + enhancedDualLayerFDD-r9 ENUMERATED {supported} OPTIONAL, + enhancedDualLayerTDD-r9 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v9d0 ::= SEQUENCE { + tm5-FDD-r9 ENUMERATED {supported} OPTIONAL, + tm5-TDD-r9 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1020 ::= SEQUENCE { + twoAntennaPortsForPUCCH-r10 ENUMERATED {supported} OPTIONAL, + tm9-With-8Tx-FDD-r10 ENUMERATED {supported} OPTIONAL, + pmi-Disabling-r10 ENUMERATED {supported} OPTIONAL, + crossCarrierScheduling-r10 ENUMERATED {supported} OPTIONAL, + simultaneousPUCCH-PUSCH-r10 ENUMERATED {supported} OPTIONAL, + multiClusterPUSCH-WithinCC-r10 ENUMERATED {supported} OPTIONAL, + nonContiguousUL-RA-WithinCC-List-r10 NonContiguousUL-RA-WithinCC-List-r10 OPTIONAL +} + +PhyLayerParameters-v1130 ::= SEQUENCE { + crs-InterfHandl-r11 ENUMERATED {supported} OPTIONAL, + ePDCCH-r11 ENUMERATED {supported} OPTIONAL, + multiACK-CSI-Reporting-r11 ENUMERATED {supported} OPTIONAL, + ss-CCH-InterfHandl-r11 ENUMERATED {supported} OPTIONAL, + tdd-SpecialSubframe-r11 ENUMERATED {supported} OPTIONAL, + txDiv-PUCCH1b-ChSelect-r11 ENUMERATED {supported} OPTIONAL, + ul-CoMP-r11 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1170 ::= SEQUENCE { + interBandTDD-CA-WithDifferentConfig-r11 BIT STRING (SIZE (2)) OPTIONAL +} + +PhyLayerParameters-v1250 ::= SEQUENCE { + e-HARQ-Pattern-FDD-r12 ENUMERATED {supported} OPTIONAL, + enhanced-4TxCodebook-r12 ENUMERATED {supported} OPTIONAL, + tdd-FDD-CA-PCellDuplex-r12 BIT STRING (SIZE (2)) OPTIONAL, + phy-TDD-ReConfig-TDD-PCell-r12 ENUMERATED {supported} OPTIONAL, + phy-TDD-ReConfig-FDD-PCell-r12 ENUMERATED {supported} OPTIONAL, + pusch-FeedbackMode-r12 ENUMERATED {supported} OPTIONAL, + pusch-SRS-PowerControl-SubframeSet-r12 ENUMERATED {supported} OPTIONAL, + csi-SubframeSet-r12 ENUMERATED {supported} OPTIONAL, + noResourceRestrictionForTTIBundling-r12 ENUMERATED {supported} OPTIONAL, + discoverySignalsInDeactSCell-r12 ENUMERATED {supported} OPTIONAL, + naics-Capability-List-r12 NAICS-Capability-List-r12 OPTIONAL +} + +PhyLayerParameters-v1280 ::= SEQUENCE { + alternativeTBS-Indices-r12 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1310 ::= SEQUENCE { + aperiodicCSI-Reporting-r13 BIT STRING (SIZE (2)) OPTIONAL, + codebook-HARQ-ACK-r13 BIT STRING (SIZE (2)) OPTIONAL, + crossCarrierScheduling-B5C-r13 ENUMERATED {supported} OPTIONAL, + fdd-HARQ-TimingTDD-r13 ENUMERATED {supported} OPTIONAL, + maxNumberUpdatedCSI-Proc-r13 INTEGER(5..32) OPTIONAL, + pucch-Format4-r13 ENUMERATED {supported} OPTIONAL, + pucch-Format5-r13 ENUMERATED {supported} OPTIONAL, + pucch-SCell-r13 ENUMERATED {supported} OPTIONAL, + spatialBundling-HARQ-ACK-r13 ENUMERATED {supported} OPTIONAL, + supportedBlindDecoding-r13 SEQUENCE { + maxNumberDecoding-r13 INTEGER(1..32) OPTIONAL, + pdcch-CandidateReductions-r13 ENUMERATED {supported} OPTIONAL, + skipMonitoringDCI-Format0-1A-r13 ENUMERATED {supported} OPTIONAL + } OPTIONAL, + uci-PUSCH-Ext-r13 ENUMERATED {supported} OPTIONAL, + crs-InterfMitigationTM10-r13 ENUMERATED {supported} OPTIONAL, + pdsch-CollisionHandling-r13 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1320 ::= SEQUENCE { + mimo-UE-Parameters-r13 MIMO-UE-Parameters-r13 OPTIONAL +} + +PhyLayerParameters-v1330 ::= SEQUENCE { + cch-InterfMitigation-RefRecTypeA-r13 ENUMERATED {supported} OPTIONAL, + cch-InterfMitigation-RefRecTypeB-r13 ENUMERATED {supported} OPTIONAL, + cch-InterfMitigation-MaxNumCCs-r13 INTEGER (1.. maxServCell-r13) OPTIONAL, + crs-InterfMitigationTM1toTM9-r13 INTEGER (1.. maxServCell-r13) OPTIONAL +} + +PhyLayerParameters-v1430 ::= SEQUENCE { + ce-PUSCH-NB-MaxTBS-r14 ENUMERATED {supported} OPTIONAL, + ce-PDSCH-PUSCH-MaxBandwidth-r14 ENUMERATED {bw5, bw20} OPTIONAL, + ce-HARQ-AckBundling-r14 ENUMERATED {supported} OPTIONAL, + ce-PDSCH-TenProcesses-r14 ENUMERATED {supported} OPTIONAL, + ce-RetuningSymbols-r14 ENUMERATED {n0, n1} OPTIONAL, + ce-PDSCH-PUSCH-Enhancement-r14 ENUMERATED {supported} OPTIONAL, + ce-SchedulingEnhancement-r14 ENUMERATED {supported} OPTIONAL, + ce-SRS-Enhancement-r14 ENUMERATED {supported} OPTIONAL, + ce-PUCCH-Enhancement-r14 ENUMERATED {supported} OPTIONAL, + ce-ClosedLoopTxAntennaSelection-r14 ENUMERATED {supported} OPTIONAL, + tdd-SpecialSubframe-r14 ENUMERATED {supported} OPTIONAL, + tdd-TTI-Bundling-r14 ENUMERATED {supported} OPTIONAL, + dmrs-LessUpPTS-r14 ENUMERATED {supported} OPTIONAL, + mimo-UE-Parameters-v1430 MIMO-UE-Parameters-v1430 OPTIONAL, + alternativeTBS-Index-r14 ENUMERATED {supported} OPTIONAL, + feMBMS-Unicast-Parameters-r14 FeMBMS-Unicast-Parameters-r14 OPTIONAL +} + +PhyLayerParameters-v1450 ::= SEQUENCE { + ce-SRS-EnhancementWithoutComb4-r14 ENUMERATED {supported} OPTIONAL, + crs-LessDwPTS-r14 ENUMERATED {supported} OPTIONAL} + +PhyLayerParameters-v1470 ::= SEQUENCE { + mimo-UE-Parameters-v1470 MIMO-UE-Parameters-v1470 OPTIONAL, + srs-UpPTS-6sym-r14 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-Parameters-r13 ::= SEQUENCE { + parametersTM9-r13 MIMO-UE-ParametersPerTM-r13 OPTIONAL, + parametersTM10-r13 MIMO-UE-ParametersPerTM-r13 OPTIONAL, + srs-EnhancementsTDD-r13 ENUMERATED {supported} OPTIONAL, + srs-Enhancements-r13 ENUMERATED {supported} OPTIONAL, + interferenceMeasRestriction-r13 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-Parameters-v1430 ::= SEQUENCE { + parametersTM9-v1430 MIMO-UE-ParametersPerTM-v1430 OPTIONAL, + parametersTM10-v1430 MIMO-UE-ParametersPerTM-v1430 OPTIONAL +} + +MIMO-UE-Parameters-v1470 ::= SEQUENCE { + parametersTM9-v1470 MIMO-UE-ParametersPerTM-v1470, + parametersTM10-v1470 MIMO-UE-ParametersPerTM-v1470 +} + +MIMO-UE-ParametersPerTM-r13 ::= SEQUENCE { + nonPrecoded-r13 MIMO-NonPrecodedCapabilities-r13 OPTIONAL, + beamformed-r13 MIMO-UE-BeamformedCapabilities-r13 OPTIONAL, + channelMeasRestriction-r13 ENUMERATED {supported} OPTIONAL, + dmrs-Enhancements-r13 ENUMERATED {supported} OPTIONAL, + csi-RS-EnhancementsTDD-r13 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-ParametersPerTM-v1430 ::= SEQUENCE { + nzp-CSI-RS-AperiodicInfo-r14 SEQUENCE { + nMaxProc-r14 INTEGER(5..32), + nMaxResource-r14 ENUMERATED {ffs1, ffs2, ffs3, ffs4} + } OPTIONAL, + nzp-CSI-RS-PeriodicInfo-r14 SEQUENCE { + nMaxResource-r14 ENUMERATED {ffs1, ffs2, ffs3, ffs4} + } OPTIONAL, + zp-CSI-RS-AperiodicInfo-r14 ENUMERATED {supported} OPTIONAL, + ul-dmrs-Enhancements-r14 ENUMERATED {supported} OPTIONAL, + densityReductionNP-r14 ENUMERATED {supported} OPTIONAL, + densityReductionBF-r14 ENUMERATED {supported} OPTIONAL, + hybridCSI-r14 ENUMERATED {supported} OPTIONAL, + semiOL-r14 ENUMERATED {supported} OPTIONAL, + csi-ReportingNP-r14 ENUMERATED {supported} OPTIONAL, + csi-ReportingAdvanced-r14 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-ParametersPerTM-v1470 ::= SEQUENCE { + csi-ReportingAdvancedMaxPorts-r14 ENUMERATED {n8, n12, n16, n20, n24, n28} OPTIONAL +} + +MIMO-CA-ParametersPerBoBC-r13 ::= SEQUENCE { + parametersTM9-r13 MIMO-CA-ParametersPerBoBCPerTM-r13 OPTIONAL, + parametersTM10-r13 MIMO-CA-ParametersPerBoBCPerTM-r13 OPTIONAL +} + +MIMO-CA-ParametersPerBoBC-r15 ::= SEQUENCE { + parametersTM9-r15 MIMO-CA-ParametersPerBoBCPerTM-r15 OPTIONAL, + parametersTM10-r15 MIMO-CA-ParametersPerBoBCPerTM-r15 OPTIONAL +} + +MIMO-CA-ParametersPerBoBC-v1430 ::= SEQUENCE { + parametersTM9-v1430 MIMO-CA-ParametersPerBoBCPerTM-v1430 OPTIONAL, + parametersTM10-v1430 MIMO-CA-ParametersPerBoBCPerTM-v1430 OPTIONAL +} + +MIMO-CA-ParametersPerBoBC-v1470 ::= SEQUENCE { + parametersTM9-v1470 MIMO-CA-ParametersPerBoBCPerTM-v1470 , + parametersTM10-v1470 MIMO-CA-ParametersPerBoBCPerTM-v1470 +} + +MIMO-CA-ParametersPerBoBCPerTM-r13 ::= SEQUENCE { + nonPrecoded-r13 MIMO-NonPrecodedCapabilities-r13 OPTIONAL, + beamformed-r13 MIMO-BeamformedCapabilityList-r13 OPTIONAL, + dmrs-Enhancements-r13 ENUMERATED {different} OPTIONAL +} + +MIMO-CA-ParametersPerBoBCPerTM-v1430 ::= SEQUENCE { + csi-ReportingNP-r14 ENUMERATED {different} OPTIONAL, + csi-ReportingAdvanced-r14 ENUMERATED {different} OPTIONAL +} + +MIMO-CA-ParametersPerBoBCPerTM-v1470 ::= SEQUENCE { + csi-ReportingAdvancedMaxPorts-r14 ENUMERATED {n8, n12, n16, n20, n24, n28} OPTIONAL +} + +MIMO-CA-ParametersPerBoBCPerTM-r15 ::= SEQUENCE { + nonPrecoded-r13 MIMO-NonPrecodedCapabilities-r13 OPTIONAL, + beamformed-r13 MIMO-BeamformedCapabilityList-r13 OPTIONAL, + dmrs-Enhancements-r13 ENUMERATED {different} OPTIONAL, + csi-ReportingNP-r14 ENUMERATED {different} OPTIONAL, + csi-ReportingAdvanced-r14 ENUMERATED {different} OPTIONAL +} + +MIMO-NonPrecodedCapabilities-r13 ::= SEQUENCE { + config1-r13 ENUMERATED {supported} OPTIONAL, + config2-r13 ENUMERATED {supported} OPTIONAL, + config3-r13 ENUMERATED {supported} OPTIONAL, + config4-r13 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-BeamformedCapabilities-r13 ::= SEQUENCE { + altCodebook-r13 ENUMERATED {supported} OPTIONAL, + mimo-BeamformedCapabilities-r13 MIMO-BeamformedCapabilityList-r13 +} + +MIMO-BeamformedCapabilityList-r13 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF MIMO-BeamformedCapabilities-r13 + +MIMO-BeamformedCapabilities-r13 ::= SEQUENCE { + k-Max-r13 INTEGER (1..8), + n-MaxList-r13 BIT STRING (SIZE (1..7)) OPTIONAL + } + +NonContiguousUL-RA-WithinCC-List-r10 ::= SEQUENCE (SIZE (1..maxBands)) OF NonContiguousUL-RA-WithinCC-r10 + +NonContiguousUL-RA-WithinCC-r10 ::= SEQUENCE { + nonContiguousUL-RA-WithinCC-Info-r10 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters ::= SEQUENCE { + supportedBandListEUTRA SupportedBandListEUTRA +} + +RF-Parameters-v9e0 ::= SEQUENCE { + supportedBandListEUTRA-v9e0 SupportedBandListEUTRA-v9e0 OPTIONAL +} + +RF-Parameters-v1020 ::= SEQUENCE { + supportedBandCombination-r10 SupportedBandCombination-r10 +} + +RF-Parameters-v1060 ::= SEQUENCE { + supportedBandCombinationExt-r10 SupportedBandCombinationExt-r10 +} + +RF-Parameters-v1090 ::= SEQUENCE { + supportedBandCombination-v1090 SupportedBandCombination-v1090 OPTIONAL +} + +RF-Parameters-v10f0 ::= SEQUENCE { + modifiedMPR-Behavior-r10 BIT STRING (SIZE (32)) OPTIONAL +} + +RF-Parameters-v10i0 ::= SEQUENCE { + supportedBandCombination-v10i0 SupportedBandCombination-v10i0 OPTIONAL +} + +RF-Parameters-v10j0 ::= SEQUENCE { + multiNS-Pmax-r10 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1130 ::= SEQUENCE { + supportedBandCombination-v1130 SupportedBandCombination-v1130 OPTIONAL +} + +RF-Parameters-v1180 ::= SEQUENCE { + freqBandRetrieval-r11 ENUMERATED {supported} OPTIONAL, + requestedBands-r11 SEQUENCE (SIZE (1.. maxBands)) OF FreqBandIndicator-r11 OPTIONAL, + supportedBandCombinationAdd-r11 SupportedBandCombinationAdd-r11 OPTIONAL +} + +RF-Parameters-v11d0 ::= SEQUENCE { + supportedBandCombinationAdd-v11d0 SupportedBandCombinationAdd-v11d0 OPTIONAL +} + +RF-Parameters-v1250 ::= SEQUENCE { + supportedBandListEUTRA-v1250 SupportedBandListEUTRA-v1250 OPTIONAL, + supportedBandCombination-v1250 SupportedBandCombination-v1250 OPTIONAL, + supportedBandCombinationAdd-v1250 SupportedBandCombinationAdd-v1250 OPTIONAL, + freqBandPriorityAdjustment-r12 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1270 ::= SEQUENCE { + supportedBandCombination-v1270 SupportedBandCombination-v1270 OPTIONAL, + supportedBandCombinationAdd-v1270 SupportedBandCombinationAdd-v1270 OPTIONAL +} + +RF-Parameters-v1310 ::= SEQUENCE { + eNB-RequestedParameters-r13 SEQUENCE { + reducedIntNonContCombRequested-r13 ENUMERATED {true} OPTIONAL, + requestedCCsDL-r13 INTEGER (2..32) OPTIONAL, + requestedCCsUL-r13 INTEGER (2..32) OPTIONAL, + skipFallbackCombRequested-r13 ENUMERATED {true} OPTIONAL + } OPTIONAL, + maximumCCsRetrieval-r13 ENUMERATED {supported} OPTIONAL, + skipFallbackCombinations-r13 ENUMERATED {supported} OPTIONAL, + reducedIntNonContComb-r13 ENUMERATED {supported} OPTIONAL, + supportedBandListEUTRA-v1310 SupportedBandListEUTRA-v1310 OPTIONAL, + supportedBandCombinationReduced-r13 SupportedBandCombinationReduced-r13 OPTIONAL +} + +RF-Parameters-v1320 ::= SEQUENCE { + supportedBandListEUTRA-v1320 SupportedBandListEUTRA-v1320 OPTIONAL, + supportedBandCombination-v1320 SupportedBandCombination-v1320 OPTIONAL, + supportedBandCombinationAdd-v1320 SupportedBandCombinationAdd-v1320 OPTIONAL, + supportedBandCombinationReduced-v1320 SupportedBandCombinationReduced-v1320 OPTIONAL +} + +RF-Parameters-v1380 ::= SEQUENCE { + supportedBandCombination-v1380 SupportedBandCombination-v1380 OPTIONAL, + supportedBandCombinationAdd-v1380 SupportedBandCombinationAdd-v1380 OPTIONAL, + supportedBandCombinationReduced-v1380 SupportedBandCombinationReduced-v1380 OPTIONAL +} + +RF-Parameters-v1390 ::= SEQUENCE { + supportedBandCombination-v1390 SupportedBandCombination-v1390 OPTIONAL, + supportedBandCombinationAdd-v1390 SupportedBandCombinationAdd-v1390 OPTIONAL, + supportedBandCombinationReduced-v1390 SupportedBandCombinationReduced-v1390 OPTIONAL +} + +RF-Parameters-v12b0 ::= SEQUENCE { + maxLayersMIMO-Indication-r12 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1430 ::= SEQUENCE { + supportedBandCombination-v1430 SupportedBandCombination-v1430 OPTIONAL, + supportedBandCombinationAdd-v1430 SupportedBandCombinationAdd-v1430 OPTIONAL, + supportedBandCombinationReduced-v1430 SupportedBandCombinationReduced-v1430 OPTIONAL, + eNB-RequestedParameters-v1430 SEQUENCE { + requestedDiffFallbackCombList-r14 BandCombinationList-r14 + } OPTIONAL, + diffFallbackCombReport-r14 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1450 ::= SEQUENCE { + supportedBandCombination-v1450 SupportedBandCombination-v1450 OPTIONAL, + supportedBandCombinationAdd-v1450 SupportedBandCombinationAdd-v1450 OPTIONAL, + supportedBandCombinationReduced-v1450 SupportedBandCombinationReduced-v1450 OPTIONAL +} + +RF-Parameters-v1470 ::= SEQUENCE { + supportedBandCombination-v1470 SupportedBandCombination-v1470 OPTIONAL, + supportedBandCombinationAdd-v1470 SupportedBandCombinationAdd-v1470 OPTIONAL, + supportedBandCombinationReduced-v1470 SupportedBandCombinationReduced-v1470 OPTIONAL +} + +SupportedBandCombination-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-r10 + +SupportedBandCombinationExt-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParametersExt-r10 + +SupportedBandCombination-v1090 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1090 + +SupportedBandCombination-v10i0 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v10i0 + +SupportedBandCombination-v1130 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1130 + +SupportedBandCombination-v1250 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1250 + +SupportedBandCombination-v1270 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1270 + +SupportedBandCombination-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1320 + +SupportedBandCombination-v1380 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1380 + +SupportedBandCombination-v1390 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1390 + +SupportedBandCombination-v1430 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1430 + +SupportedBandCombination-v1450 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1450 + +SupportedBandCombination-v1470 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1470 + +SupportedBandCombinationAdd-r11 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-r11 + +SupportedBandCombinationAdd-v11d0 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v10i0 + +SupportedBandCombinationAdd-v1250 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1250 + +SupportedBandCombinationAdd-v1270 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1270 + +SupportedBandCombinationAdd-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1320 + +SupportedBandCombinationAdd-v1380 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1380 + +SupportedBandCombinationAdd-v1390 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1390 + +SupportedBandCombinationAdd-v1430 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1430 + +SupportedBandCombinationAdd-v1450 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1450 + +SupportedBandCombinationAdd-v1470 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1470 + +SupportedBandCombinationReduced-r13 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-r13 + +SupportedBandCombinationReduced-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1320 + +SupportedBandCombinationReduced-v1380 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1380 + +SupportedBandCombinationReduced-v1390 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1390 + +SupportedBandCombinationReduced-v1430 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1430 + +SupportedBandCombinationReduced-v1450 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1450 + +SupportedBandCombinationReduced-v1470 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1470 + +BandCombinationParameters-r10 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r10 + +BandCombinationParametersExt-r10 ::= SEQUENCE { + supportedBandwidthCombinationSet-r10 SupportedBandwidthCombinationSet-r10 OPTIONAL +} + +BandCombinationParameters-v1090 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1090 + +BandCombinationParameters-v10i0::= SEQUENCE { + bandParameterList-v10i0 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v10i0 OPTIONAL +} + +BandCombinationParameters-v1130 ::= SEQUENCE { + multipleTimingAdvance-r11 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r11 ENUMERATED {supported} OPTIONAL, + bandParameterList-r11 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1130 OPTIONAL, + ... +} + +BandCombinationParameters-r11 ::= SEQUENCE { + bandParameterList-r11 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-r11, + supportedBandwidthCombinationSet-r11 SupportedBandwidthCombinationSet-r10 OPTIONAL, + multipleTimingAdvance-r11 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r11 ENUMERATED {supported} OPTIONAL, + bandInfoEUTRA-r11 BandInfoEUTRA, + ... +} + +BandCombinationParameters-v1250::= SEQUENCE { + dc-Support-r12 SEQUENCE { + asynchronous-r12 ENUMERATED {supported} OPTIONAL, + supportedCellGrouping-r12 CHOICE { + threeEntries-r12 BIT STRING (SIZE(3)), + fourEntries-r12 BIT STRING (SIZE(7)), + fiveEntries-r12 BIT STRING (SIZE(15)) + } OPTIONAL + } OPTIONAL, + supportedNAICS-2CRS-AP-r12 BIT STRING (SIZE (1..maxNAICS-Entries-r12)) OPTIONAL, + commSupportedBandsPerBC-r12 BIT STRING (SIZE (1.. maxBands)) OPTIONAL, + ... +} + +BandCombinationParameters-v1270 ::= SEQUENCE { + bandParameterList-v1270 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1270 OPTIONAL +} + +BandCombinationParameters-r13 ::= SEQUENCE { + differentFallbackSupported-r13 ENUMERATED {true} OPTIONAL, + bandParameterList-r13 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r13, + supportedBandwidthCombinationSet-r13 SupportedBandwidthCombinationSet-r10 OPTIONAL, + multipleTimingAdvance-r13 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r13 ENUMERATED {supported} OPTIONAL, + bandInfoEUTRA-r13 BandInfoEUTRA, + dc-Support-r13 SEQUENCE { + asynchronous-r13 ENUMERATED {supported} OPTIONAL, + supportedCellGrouping-r13 CHOICE { + threeEntries-r13 BIT STRING (SIZE(3)), + fourEntries-r13 BIT STRING (SIZE(7)), + fiveEntries-r13 BIT STRING (SIZE(15)) + } OPTIONAL + } OPTIONAL, + supportedNAICS-2CRS-AP-r13 BIT STRING (SIZE (1..maxNAICS-Entries-r12)) OPTIONAL, + commSupportedBandsPerBC-r13 BIT STRING (SIZE (1.. maxBands)) OPTIONAL +} + +BandCombinationParameters-v1320 ::= SEQUENCE { + bandParameterList-v1320 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1320 OPTIONAL, + additionalRx-Tx-PerformanceReq-r13 ENUMERATED {supported} OPTIONAL +} + +BandCombinationParameters-v1380 ::= SEQUENCE { + bandParameterList-v1380 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1380 OPTIONAL +} + +BandCombinationParameters-v1390 ::= SEQUENCE { + ue-CA-PowerClass-N-r13 ENUMERATED {class2} OPTIONAL +} + +BandCombinationParameters-v1430 ::= SEQUENCE { + bandParameterList-v1430 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1430 OPTIONAL, + v2x-SupportedTxBandCombListPerBC-r14 BIT STRING (SIZE (1.. maxBandComb-r13)) OPTIONAL, + v2x-SupportedRxBandCombListPerBC-r14 BIT STRING (SIZE (1.. maxBandComb-r13)) OPTIONAL +} + +BandCombinationParameters-v1450 ::= SEQUENCE { + bandParameterList-v1450 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1450 OPTIONAL +} + +BandCombinationParameters-v1470 ::= SEQUENCE { + bandParameterList-v1470 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1470 OPTIONAL, + srs-MaxSimultaneousCCs-r14 INTEGER (1..31) OPTIONAL +} + +-- If an additional band combination parameter is defined, which are supported for EN-DC, it shall be defined in the IE CA-ParametersEUTRA in TS 38.331 [82]. + +SupportedBandwidthCombinationSet-r10 ::= BIT STRING (SIZE (1..maxBandwidthCombSet-r10)) + +BandParameters-r10 ::= SEQUENCE { + bandEUTRA-r10 FreqBandIndicator, + bandParametersUL-r10 BandParametersUL-r10 OPTIONAL, + bandParametersDL-r10 BandParametersDL-r10 OPTIONAL +} + +BandParameters-v1090 ::= SEQUENCE { + bandEUTRA-v1090 FreqBandIndicator-v9e0 OPTIONAL, + ... +} + +BandParameters-v10i0::= SEQUENCE { + bandParametersDL-v10i0 SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-v10i0 +} + +BandParameters-v1130 ::= SEQUENCE { + supportedCSI-Proc-r11 ENUMERATED {n1, n3, n4} +} + +BandParameters-r11 ::= SEQUENCE { + bandEUTRA-r11 FreqBandIndicator-r11, + bandParametersUL-r11 BandParametersUL-r10 OPTIONAL, + bandParametersDL-r11 BandParametersDL-r10 OPTIONAL, + supportedCSI-Proc-r11 ENUMERATED {n1, n3, n4} OPTIONAL +} + +BandParameters-v1270 ::= SEQUENCE { + bandParametersDL-v1270 SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-v1270 +} + +BandParameters-r13 ::= SEQUENCE { + bandEUTRA-r13 FreqBandIndicator-r11, + bandParametersUL-r13 BandParametersUL-r13 OPTIONAL, + bandParametersDL-r13 BandParametersDL-r13 OPTIONAL, + supportedCSI-Proc-r13 ENUMERATED {n1, n3, n4} OPTIONAL +} + +BandParameters-v1320 ::= SEQUENCE { + bandParametersDL-v1320 MIMO-CA-ParametersPerBoBC-r13 +} + +BandParameters-v1380 ::= SEQUENCE { + txAntennaSwitchDL-r13 INTEGER (1..32) OPTIONAL, + txAntennaSwitchUL-r13 INTEGER (1..32) OPTIONAL +} + +BandParameters-v1430 ::= SEQUENCE { + bandParametersDL-v1430 MIMO-CA-ParametersPerBoBC-v1430 OPTIONAL, + ul-256QAM-r14 ENUMERATED {supported} OPTIONAL, + ul-256QAM-perCC-InfoList-r14 SEQUENCE (SIZE (2..maxServCell-r13)) OF UL-256QAM-perCC-Info-r14 OPTIONAL, + retuningTimeInfoBandList-r14 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + RetuningTimeInfo-r14 OPTIONAL +} + +BandParameters-v1450 ::= SEQUENCE { + must-CapabilityPerBand-r14 MUST-Parameters-r14 OPTIONAL +} + +BandParameters-v1470 ::= SEQUENCE { + bandParametersDL-v1470 MIMO-CA-ParametersPerBoBC-v1470 OPTIONAL +} + +V2X-BandParameters-r14 ::= SEQUENCE { + v2x-FreqBandEUTRA-r14 FreqBandIndicator-r11, + bandParametersTxSL-r14 BandParametersTxSL-r14 OPTIONAL, + bandParametersRxSL-r14 BandParametersRxSL-r14 OPTIONAL +} + +BandParametersTxSL-r14 ::= SEQUENCE { + v2x-BandwidthClassTxSL-r14 V2X-BandwidthClassSL-r14, + v2x-eNB-Scheduled-r14 ENUMERATED {supported} OPTIONAL, + v2x-HighPower-r14 ENUMERATED {supported} OPTIONAL +} + +BandParametersRxSL-r14 ::= SEQUENCE { + v2x-BandwidthClassRxSL-r14 V2X-BandwidthClassSL-r14, + v2x-HighReception-r14 ENUMERATED {supported} OPTIONAL +} + +V2X-BandwidthClassSL-r14 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF V2X-BandwidthClass-r14 + +UL-256QAM-perCC-Info-r14 ::= SEQUENCE { + ul-256QAM-perCC-r14 ENUMERATED {supported} OPTIONAL +} + +FeatureSetDL-r15 ::= SEQUENCE { + mimo-CA-ParametersPerBoBC-r15 MIMO-CA-ParametersPerBoBC-r15 OPTIONAL, + featureSetPerCC-ListDL-r15 SEQUENCE (SIZE (1..maxServCell-r13)) OF FeatureSetDL-PerCC-Id-r15 +} + +FeatureSetDL-PerCC-r15 ::= SEQUENCE { + fourLayerTM3-TM4-r15 ENUMERATED {supported} OPTIONAL, + supportedMIMO-CapabilityDL-r15 MIMO-CapabilityDL-r10 OPTIONAL, + supportedCSI-Proc-r15 ENUMERATED {n1, n3, n4} OPTIONAL +} + +FeatureSetUL-r15 ::= SEQUENCE { + featureSetPerCC-ListUL-r15 SEQUENCE (SIZE(1..maxServCell-r13)) OF FeatureSetUL-PerCC-Id-r15 +} + +FeatureSetUL-PerCC-r15 ::= SEQUENCE { + supportedMIMO-CapabilityUL-r15 MIMO-CapabilityUL-r10 OPTIONAL, + ul-256QAM-r15 ENUMERATED {supported} OPTIONAL +} + +FeatureSetDL-PerCC-Id-r15 ::= INTEGER (0..maxPerCC-FeatureSets-r15) + +FeatureSetUL-PerCC-Id-r15 ::= INTEGER (0..maxPerCC-FeatureSets-r15) + +BandParametersUL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersUL-r10 + +BandParametersUL-r13 ::= CA-MIMO-ParametersUL-r10 + +CA-MIMO-ParametersUL-r10 ::= SEQUENCE { + ca-BandwidthClassUL-r10 CA-BandwidthClass-r10, + supportedMIMO-CapabilityUL-r10 MIMO-CapabilityUL-r10 OPTIONAL +} + +BandParametersDL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-r10 + +BandParametersDL-r13 ::= CA-MIMO-ParametersDL-r13 + +CA-MIMO-ParametersDL-r10 ::= SEQUENCE { + ca-BandwidthClassDL-r10 CA-BandwidthClass-r10, + supportedMIMO-CapabilityDL-r10 MIMO-CapabilityDL-r10 OPTIONAL +} + +CA-MIMO-ParametersDL-v10i0 ::= SEQUENCE { + fourLayerTM3-TM4-r10 ENUMERATED {supported} OPTIONAL +} + +CA-MIMO-ParametersDL-v1270 ::= SEQUENCE { + intraBandContiguousCC-InfoList-r12 SEQUENCE (SIZE (1..maxServCell-r10)) OF IntraBandContiguousCC-Info-r12 +} + +CA-MIMO-ParametersDL-r13 ::= SEQUENCE { + ca-BandwidthClassDL-r13 CA-BandwidthClass-r10, + supportedMIMO-CapabilityDL-r13 MIMO-CapabilityDL-r10 OPTIONAL, + fourLayerTM3-TM4-r13 ENUMERATED {supported} OPTIONAL, + intraBandContiguousCC-InfoList-r13 SEQUENCE (SIZE (1..maxServCell-r13)) OF IntraBandContiguousCC-Info-r12 +} + +IntraBandContiguousCC-Info-r12 ::= SEQUENCE { + fourLayerTM3-TM4-perCC-r12 ENUMERATED {supported} OPTIONAL, + supportedMIMO-CapabilityDL-r12 MIMO-CapabilityDL-r10 OPTIONAL, + supportedCSI-Proc-r12 ENUMERATED {n1, n3, n4} OPTIONAL +} + +CA-BandwidthClass-r10 ::= ENUMERATED {a, b, c, d, e, f, ...} + +V2X-BandwidthClass-r14 ::= ENUMERATED {a, b, c, d, e, f, ...} + +MIMO-CapabilityUL-r10 ::= ENUMERATED {twoLayers, fourLayers} + +MIMO-CapabilityDL-r10 ::= ENUMERATED {twoLayers, fourLayers, eightLayers} + +MUST-Parameters-r14 ::= SEQUENCE { + must-TM234-UpTo2Tx-r14 ENUMERATED {supported} OPTIONAL, + must-TM89-UpToOneInterferingLayer-r14 ENUMERATED {supported} OPTIONAL, + must-TM10-UpToOneInterferingLayer-r14 ENUMERATED {supported} OPTIONAL, + must-TM89-UpToThreeInterferingLayers-r14 ENUMERATED {supported} OPTIONAL, + must-TM10-UpToThreeInterferingLayers-r14 ENUMERATED {supported} OPTIONAL +} + +SupportedBandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA + +SupportedBandListEUTRA-v9e0::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v9e0 + +SupportedBandListEUTRA-v1250 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1250 + +SupportedBandListEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1310 + +SupportedBandListEUTRA-v1320 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1320 + +SupportedBandEUTRA ::= SEQUENCE { + bandEUTRA FreqBandIndicator, + halfDuplex BOOLEAN +} + +SupportedBandEUTRA-v9e0 ::= SEQUENCE { + bandEUTRA-v9e0 FreqBandIndicator-v9e0 OPTIONAL +} + +SupportedBandEUTRA-v1250 ::= SEQUENCE { + dl-256QAM-r12 ENUMERATED {supported} OPTIONAL, + ul-64QAM-r12 ENUMERATED {supported} OPTIONAL +} + +SupportedBandEUTRA-v1310 ::= SEQUENCE { + ue-PowerClass-5-r13 ENUMERATED {supported} OPTIONAL +} +SupportedBandEUTRA-v1320 ::= SEQUENCE { + intraFreq-CE-NeedForGaps-r13 ENUMERATED {supported} OPTIONAL, + ue-PowerClass-N-r13 ENUMERATED {class1, class2, class4} OPTIONAL +} + +MeasParameters ::= SEQUENCE { + bandListEUTRA BandListEUTRA +} + +MeasParameters-v1020 ::= SEQUENCE { + bandCombinationListEUTRA-r10 BandCombinationListEUTRA-r10 +} + +MeasParameters-v1130 ::= SEQUENCE { + rsrqMeasWideband-r11 ENUMERATED {supported} OPTIONAL +} + +MeasParameters-v11a0 ::= SEQUENCE { + benefitsFromInterruption-r11 ENUMERATED {true} OPTIONAL +} + +MeasParameters-v1250 ::= SEQUENCE { + timerT312-r12 ENUMERATED {supported} OPTIONAL, + alternativeTimeToTrigger-r12 ENUMERATED {supported} OPTIONAL, + incMonEUTRA-r12 ENUMERATED {supported} OPTIONAL, + incMonUTRA-r12 ENUMERATED {supported} OPTIONAL, + extendedMaxMeasId-r12 ENUMERATED {supported} OPTIONAL, + extendedRSRQ-LowerRange-r12 ENUMERATED {supported} OPTIONAL, + rsrq-OnAllSymbols-r12 ENUMERATED {supported} OPTIONAL, + crs-DiscoverySignalsMeas-r12 ENUMERATED {supported} OPTIONAL, + csi-RS-DiscoverySignalsMeas-r12 ENUMERATED {supported} OPTIONAL +} + +MeasParameters-v1310 ::= SEQUENCE { + rs-SINR-Meas-r13 ENUMERATED {supported} OPTIONAL, + whiteCellList-r13 ENUMERATED {supported} OPTIONAL, + extendedMaxObjectId-r13 ENUMERATED {supported} OPTIONAL, + ul-PDCP-Delay-r13 ENUMERATED {supported} OPTIONAL, + extendedFreqPriorities-r13 ENUMERATED {supported} OPTIONAL, + multiBandInfoReport-r13 ENUMERATED {supported} OPTIONAL, + rssi-AndChannelOccupancyReporting-r13 ENUMERATED {supported} OPTIONAL +} + +MeasParameters-v1430 ::= SEQUENCE { + ceMeasurements-r14 ENUMERATED {supported} OPTIONAL, + ncsg-r14 ENUMERATED {supported} OPTIONAL, + shortMeasurementGap-r14 ENUMERATED {supported} OPTIONAL, + perServingCellMeasurementGap-r14 ENUMERATED {supported} OPTIONAL, + nonUniformGap-r14 ENUMERATED {supported} OPTIONAL +} + +MeasParameters-v1520 ::= SEQUENCE { + measGapPatterns-v1520 BIT STRING (SIZE (8)) OPTIONAL +} + +BandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF BandInfoEUTRA + +BandCombinationListEUTRA-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandInfoEUTRA + +BandInfoEUTRA ::= SEQUENCE { + interFreqBandList InterFreqBandList, + interRAT-BandList InterRAT-BandList OPTIONAL +} + +InterFreqBandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterFreqBandInfo + +InterFreqBandInfo ::= SEQUENCE { + interFreqNeedForGaps BOOLEAN +} + +InterRAT-BandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterRAT-BandInfo + +InterRAT-BandInfo ::= SEQUENCE { + interRAT-NeedForGaps BOOLEAN +} + +IRAT-ParametersNR-r15 ::= SEQUENCE { + en-DC-r15 ENUMERATED {supported} OPTIONAL, + eventB2-r15 ENUMERATED {supported} OPTIONAL, + supportedBandListNR-r15 SupportedBandListNR-r15 OPTIONAL +} + +PDCP-ParametersNR-r15 ::= SEQUENCE { + rohc-Profiles-r15 ROHC-ProfileSupportList-r15, + rohc-ContextMaxSessions-r15 ENUMERATED { + cs2, cs4, cs8, cs12, cs16, cs24, cs32, + cs48, cs64, cs128, cs256, cs512, cs1024, + cs16384, spare2, spare1} DEFAULT cs16, + rohc-ProfilesUL-Only-r15 SEQUENCE { + profile0x0006-r15 BOOLEAN + }, + rohc-ContextContinue-r15 ENUMERATED {supported} OPTIONAL, + outOfOrderDelivery-r15 ENUMERATED {supported} OPTIONAL, + sn-SizeLo-r15 ENUMERATED {supported} OPTIONAL, + ims-VoiceOverNR-PDCP-MCG-Bearer-r15 ENUMERATED {supported} OPTIONAL, + ims-VoiceOverNR-PDCP-SCG-Bearer-r15 ENUMERATED {supported} OPTIONAL +} + +ROHC-ProfileSupportList-r15 ::= SEQUENCE { + profile0x0001-r15 BOOLEAN, + profile0x0002-r15 BOOLEAN, + profile0x0003-r15 BOOLEAN, + profile0x0004-r15 BOOLEAN, + profile0x0006-r15 BOOLEAN, + profile0x0101-r15 BOOLEAN, + profile0x0102-r15 BOOLEAN, + profile0x0103-r15 BOOLEAN, + profile0x0104-r15 BOOLEAN +} + +SupportedBandListNR-r15 ::= SEQUENCE (SIZE (1..maxBandsNR-r15)) OF SupportedBandNR-r15 + +SupportedBandNR-r15 ::= SEQUENCE { + bandNR-r15 FreqBandIndicatorNR-r15 +} + +FreqBandIndicatorNR-r15 ::= INTEGER (1.. maxFBI-NR-r15) + +IRAT-ParametersUTRA-FDD ::= SEQUENCE { + supportedBandListUTRA-FDD SupportedBandListUTRA-FDD +} + +IRAT-ParametersUTRA-v920 ::= SEQUENCE { + e-RedirectionUTRA-r9 ENUMERATED {supported} +} + +IRAT-ParametersUTRA-v9c0 ::= SEQUENCE { + voiceOverPS-HS-UTRA-FDD-r9 ENUMERATED {supported} OPTIONAL, + voiceOverPS-HS-UTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-FDD-ToUTRA-FDD-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-FDD-ToGERAN-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-TDD128-ToUTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-TDD128-ToGERAN-r9 ENUMERATED {supported} OPTIONAL +} + +IRAT-ParametersUTRA-v9h0 ::= SEQUENCE { + mfbi-UTRA-r9 ENUMERATED {supported} +} + +SupportedBandListUTRA-FDD ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-FDD + +SupportedBandUTRA-FDD ::= ENUMERATED { + bandI, bandII, bandIII, bandIV, bandV, bandVI, + bandVII, bandVIII, bandIX, bandX, bandXI, + bandXII, bandXIII, bandXIV, bandXV, bandXVI, ..., + bandXVII-8a0, bandXVIII-8a0, bandXIX-8a0, bandXX-8a0, + bandXXI-8a0, bandXXII-8a0, bandXXIII-8a0, bandXXIV-8a0, + bandXXV-8a0, bandXXVI-8a0, bandXXVII-8a0, bandXXVIII-8a0, + bandXXIX-8a0, bandXXX-8a0, bandXXXI-8a0, bandXXXII-8a0} + +IRAT-ParametersUTRA-TDD128 ::= SEQUENCE { + supportedBandListUTRA-TDD128 SupportedBandListUTRA-TDD128 +} + +SupportedBandListUTRA-TDD128 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD128 + +SupportedBandUTRA-TDD128 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD384 ::= SEQUENCE { + supportedBandListUTRA-TDD384 SupportedBandListUTRA-TDD384 +} + +SupportedBandListUTRA-TDD384 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD384 + +SupportedBandUTRA-TDD384 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD768 ::= SEQUENCE { + supportedBandListUTRA-TDD768 SupportedBandListUTRA-TDD768 +} + +SupportedBandListUTRA-TDD768 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD768 + +SupportedBandUTRA-TDD768 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD-v1020 ::= SEQUENCE { + e-RedirectionUTRA-TDD-r10 ENUMERATED {supported} +} + +IRAT-ParametersGERAN ::= SEQUENCE { + supportedBandListGERAN SupportedBandListGERAN, + interRAT-PS-HO-ToGERAN BOOLEAN +} + +IRAT-ParametersGERAN-v920 ::= SEQUENCE { + dtm-r9 ENUMERATED {supported} OPTIONAL, + e-RedirectionGERAN-r9 ENUMERATED {supported} OPTIONAL +} + +SupportedBandListGERAN ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandGERAN + +SupportedBandGERAN ::= ENUMERATED { + gsm450, gsm480, gsm710, gsm750, gsm810, gsm850, + gsm900P, gsm900E, gsm900R, gsm1800, gsm1900, + spare5, spare4, spare3, spare2, spare1, ...} + +IRAT-ParametersCDMA2000-HRPD ::= SEQUENCE { + supportedBandListHRPD SupportedBandListHRPD, + tx-ConfigHRPD ENUMERATED {single, dual}, + rx-ConfigHRPD ENUMERATED {single, dual} +} + +SupportedBandListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + +IRAT-ParametersCDMA2000-1XRTT ::= SEQUENCE { + supportedBandList1XRTT SupportedBandList1XRTT, + tx-Config1XRTT ENUMERATED {single, dual}, + rx-Config1XRTT ENUMERATED {single, dual} +} + +IRAT-ParametersCDMA2000-1XRTT-v920 ::= SEQUENCE { + e-CSFB-1XRTT-r9 ENUMERATED {supported}, + e-CSFB-ConcPS-Mob1XRTT-r9 ENUMERATED {supported} OPTIONAL +} + +IRAT-ParametersCDMA2000-1XRTT-v1020 ::= SEQUENCE { + e-CSFB-dual-1XRTT-r10 ENUMERATED {supported} +} + +IRAT-ParametersCDMA2000-v1130 ::= SEQUENCE { + cdma2000-NW-Sharing-r11 ENUMERATED {supported} OPTIONAL +} + +SupportedBandList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + +IRAT-ParametersWLAN-r13 ::= SEQUENCE { + supportedBandListWLAN-r13 SEQUENCE (SIZE (1..maxWLAN-Bands-r13)) OF WLAN-BandIndicator-r13 OPTIONAL +} + +CSG-ProximityIndicationParameters-r9 ::= SEQUENCE { + intraFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL, + interFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL, + utran-ProximityIndication-r9 ENUMERATED {supported} OPTIONAL +} + +NeighCellSI-AcquisitionParameters-r9 ::= SEQUENCE { + intraFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL, + interFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL, + utran-SI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL +} + +SON-Parameters-r9 ::= SEQUENCE { + rach-Report-r9 ENUMERATED {supported} OPTIONAL +} + +UE-BasedNetwPerfMeasParameters-r10 ::= SEQUENCE { + loggedMeasurementsIdle-r10 ENUMERATED {supported} OPTIONAL, + standaloneGNSS-Location-r10 ENUMERATED {supported} OPTIONAL +} + +UE-BasedNetwPerfMeasParameters-v1250 ::= SEQUENCE { + loggedMBSFNMeasurements-r12 ENUMERATED {supported} +} + +UE-BasedNetwPerfMeasParameters-v1430 ::= SEQUENCE { + locationReport-r14 ENUMERATED {supported} OPTIONAL +} + +OTDOA-PositioningCapabilities-r10 ::= SEQUENCE { + otdoa-UE-Assisted-r10 ENUMERATED {supported}, + interFreqRSTD-Measurement-r10 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-r11 ::= SEQUENCE { + inDeviceCoexInd-r11 ENUMERATED {supported} OPTIONAL, + powerPrefInd-r11 ENUMERATED {supported} OPTIONAL, + ue-Rx-TxTimeDiffMeasurements-r11 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v11d0 ::= SEQUENCE { + inDeviceCoexInd-UL-CA-r11 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v1360 ::= SEQUENCE { + inDeviceCoexInd-HardwareSharingInd-r13 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v1430 ::= SEQUENCE { + bwPrefInd-r14 ENUMERATED {supported} OPTIONAL, + rlm-ReportSupport-r14 ENUMERATED {supported} OPTIONAL +} + +OtherParameters-v1450 ::= SEQUENCE { + overheatingInd-r14 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v1460 ::= SEQUENCE { + nonCSG-SI-Reporting-r14 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-r11 ::= SEQUENCE { + mbms-SCell-r11 ENUMERATED {supported} OPTIONAL, + mbms-NonServingCell-r11 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-v1250 ::= SEQUENCE { + mbms-AsyncDC-r12 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-v1430 ::= SEQUENCE { + fembmsDedicatedCell-r14 ENUMERATED {supported} OPTIONAL, + fembmsMixedCell-r14 ENUMERATED {supported} OPTIONAL, + subcarrierSpacingMBMS-khz7dot5-r14 ENUMERATED {supported} OPTIONAL, + subcarrierSpacingMBMS-khz1dot25-r14 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-v1470 ::= SEQUENCE { + mbms-MaxBW-r14 CHOICE { + implicitValue NULL, + explicitValue INTEGER(2..20) + }, + mbms-ScalingFactor1dot25-r14 ENUMERATED {n3, n6, n9, n12} OPTIONAL, + mbms-ScalingFactor7dot5-r14 ENUMERATED {n1, n2, n3, n4} OPTIONAL +} + +FeMBMS-Unicast-Parameters-r14 ::= SEQUENCE { + unicast-fembmsMixedSCell-r14 ENUMERATED {supported} OPTIONAL, + emptyUnicastRegion-r14 ENUMERATED {supported} OPTIONAL +} + +SCPTM-Parameters-r13 ::= SEQUENCE { + scptm-ParallelReception-r13 ENUMERATED {supported} OPTIONAL, + scptm-SCell-r13 ENUMERATED {supported} OPTIONAL, + scptm-NonServingCell-r13 ENUMERATED {supported} OPTIONAL, + scptm-AsyncDC-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-r13 ::= SEQUENCE { + ce-ModeA-r13 ENUMERATED {supported} OPTIONAL, + ce-ModeB-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1320 ::= SEQUENCE { + intraFreqA3-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL, + intraFreqA3-CE-ModeB-r13 ENUMERATED {supported} OPTIONAL, + intraFreqHO-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL, + intraFreqHO-CE-ModeB-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1350 ::= SEQUENCE { + unicastFrequencyHopping-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1370 ::= SEQUENCE { + tm9-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL, + tm9-CE-ModeB-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1380 ::= SEQUENCE { + tm6-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1430 ::= SEQUENCE { + ce-SwitchWithoutHO-r14 ENUMERATED {supported} OPTIONAL +} + +LAA-Parameters-r13 ::= SEQUENCE { + crossCarrierSchedulingLAA-DL-r13 ENUMERATED {supported} OPTIONAL, + csi-RS-DRS-RRM-MeasurementsLAA-r13 ENUMERATED {supported} OPTIONAL, + downlinkLAA-r13 ENUMERATED {supported} OPTIONAL, + endingDwPTS-r13 ENUMERATED {supported} OPTIONAL, + secondSlotStartingPosition-r13 ENUMERATED {supported} OPTIONAL, + tm9-LAA-r13 ENUMERATED {supported} OPTIONAL, + tm10-LAA-r13 ENUMERATED {supported} OPTIONAL +} + +LAA-Parameters-v1430 ::= SEQUENCE { + crossCarrierSchedulingLAA-UL-r14 ENUMERATED {supported} OPTIONAL, + uplinkLAA-r14 ENUMERATED {supported} OPTIONAL, + twoStepSchedulingTimingInfo-r14 ENUMERATED {nPlus1, nPlus2, nPlus3} OPTIONAL, + uss-BlindDecodingAdjustment-r14 ENUMERATED {supported} OPTIONAL, + uss-BlindDecodingReduction-r14 ENUMERATED {supported} OPTIONAL, + outOfSequenceGrantHandling-r14 ENUMERATED {supported} OPTIONAL +} + +WLAN-IW-Parameters-r12 ::= SEQUENCE { + wlan-IW-RAN-Rules-r12 ENUMERATED {supported} OPTIONAL, + wlan-IW-ANDSF-Policies-r12 ENUMERATED {supported} OPTIONAL +} + +LWA-Parameters-r13 ::= SEQUENCE { + lwa-r13 ENUMERATED {supported} OPTIONAL, + lwa-SplitBearer-r13 ENUMERATED {supported} OPTIONAL, + wlan-MAC-Address-r13 OCTET STRING (SIZE (6)) OPTIONAL, + lwa-BufferSize-r13 ENUMERATED {supported} OPTIONAL +} + +LWA-Parameters-v1430 ::= SEQUENCE { + lwa-HO-WithoutWT-Change-r14 ENUMERATED {supported} OPTIONAL, + lwa-UL-r14 ENUMERATED {supported} OPTIONAL, + wlan-PeriodicMeas-r14 ENUMERATED {supported} OPTIONAL, + wlan-ReportAnyWLAN-r14 ENUMERATED {supported} OPTIONAL, + wlan-SupportedDataRate-r14 INTEGER (1..2048) OPTIONAL +} + +LWA-Parameters-v1440 ::= SEQUENCE { + lwa-RLC-UM-r14 ENUMERATED {supported} OPTIONAL +} + +WLAN-IW-Parameters-v1310 ::= SEQUENCE { + rclwi-r13 ENUMERATED {supported} OPTIONAL +} + +LWIP-Parameters-r13 ::= SEQUENCE { + lwip-r13 ENUMERATED {supported} OPTIONAL +} + +LWIP-Parameters-v1430 ::= SEQUENCE { + lwip-Aggregation-DL-r14 ENUMERATED {supported} OPTIONAL, + lwip-Aggregation-UL-r14 ENUMERATED {supported} OPTIONAL +} + +NAICS-Capability-List-r12 ::= SEQUENCE (SIZE (1..maxNAICS-Entries-r12)) OF NAICS-Capability-Entry-r12 + + +NAICS-Capability-Entry-r12 ::= SEQUENCE { + numberOfNAICS-CapableCC-r12 INTEGER(1..5), + numberOfAggregatedPRB-r12 ENUMERATED { + n50, n75, n100, n125, n150, n175, + n200, n225, n250, n275, n300, n350, + n400, n450, n500, spare}, + ... +} + +SL-Parameters-r12 ::= SEQUENCE { + commSimultaneousTx-r12 ENUMERATED {supported} OPTIONAL, + commSupportedBands-r12 FreqBandIndicatorListEUTRA-r12 OPTIONAL, + discSupportedBands-r12 SupportedBandInfoList-r12 OPTIONAL, + discScheduledResourceAlloc-r12 ENUMERATED {supported} OPTIONAL, + disc-UE-SelectedResourceAlloc-r12 ENUMERATED {supported} OPTIONAL, + disc-SLSS-r12 ENUMERATED {supported} OPTIONAL, + discSupportedProc-r12 ENUMERATED {n50, n400} OPTIONAL +} + +SL-Parameters-v1310 ::= SEQUENCE { + discSysInfoReporting-r13 ENUMERATED {supported} OPTIONAL, + commMultipleTx-r13 ENUMERATED {supported} OPTIONAL, + discInterFreqTx-r13 ENUMERATED {supported} OPTIONAL, + discPeriodicSLSS-r13 ENUMERATED {supported} OPTIONAL +} + +SL-Parameters-v1430 ::= SEQUENCE { + zoneBasedPoolSelection-r14 ENUMERATED {supported} OPTIONAL, + ue-AutonomousWithFullSensing-r14 ENUMERATED {supported} OPTIONAL, + ue-AutonomousWithPartialSensing-r14 ENUMERATED {supported} OPTIONAL, + sl-CongestionControl-r14 ENUMERATED {supported} OPTIONAL, + v2x-TxWithShortResvInterval-r14 ENUMERATED {supported} OPTIONAL, + v2x-numberTxRxTiming-r14 INTEGER(1..16) OPTIONAL, + v2x-nonAdjacentPSCCH-PSSCH-r14 ENUMERATED {supported} OPTIONAL, + slss-TxRx-r14 ENUMERATED {supported} OPTIONAL, + v2x-SupportedBandCombinationList-r14 V2X-SupportedBandCombination-r14 OPTIONAL +} + +V2X-SupportedBandCombination-r14 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF V2X-BandCombinationParameters-r14 + +V2X-BandCombinationParameters-r14 ::= SEQUENCE (SIZE (1.. maxSimultaneousBands-r10)) OF V2X-BandParameters-r14 + +SupportedBandInfoList-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandInfo-r12 + +SupportedBandInfo-r12 ::= SEQUENCE { + support-r12 ENUMERATED {supported} OPTIONAL +} + +FreqBandIndicatorListEUTRA-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicator-r11 + +MMTEL-Parameters-r14 ::= SEQUENCE { + delayBudgetReporting-r14 ENUMERATED {supported} OPTIONAL, + pusch-Enhancements-r14 ENUMERATED {supported} OPTIONAL, + recommendedBitRate-r14 ENUMERATED {supported} OPTIONAL, + recommendedBitRateQuery-r14 ENUMERATED {supported} OPTIONAL +} + +RetuningTimeInfo-r14 ::= SEQUENCE { + retuningInfo SEQUENCE { + rf-RetuningTimeDL-r14 ENUMERATED {n0, n0dot5, n1, n1dot5, n2, n2dot5, n3, + n3dot5, n4, n4dot5, n5, n5dot5, n6, n6dot5, + n7, spare1} OPTIONAL, + rf-RetuningTimeUL-r14 ENUMERATED {n0, n0dot5, n1, n1dot5, n2, n2dot5, n3, + n3dot5, n4, n4dot5, n5, n5dot5, n6, n6dot5, + n7, spare1} OPTIONAL + } +} + +HighSpeedEnhParameters-r14 ::= SEQUENCE { + measurementEnhancements-r14 ENUMERATED {supported} OPTIONAL, + demodulationEnhancements-r14 ENUMERATED {supported} OPTIONAL, + prach-Enhancements-r14 ENUMERATED {supported} OPTIONAL +} + + +UE-RadioPagingInfo-r12 ::= SEQUENCE { + ue-Category-v1250 INTEGER (0) OPTIONAL, + ..., + [[ ue-CategoryDL-v1310 ENUMERATED {m1} OPTIONAL, + ce-ModeA-r13 ENUMERATED {true} OPTIONAL, + ce-ModeB-r13 ENUMERATED {true} OPTIONAL + ]] + +} + + +UE-TimersAndConstants ::= SEQUENCE { + t300 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t301 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t310 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n310 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ..., + [[ t300-v1310 ENUMERATED { + ms2500, ms3000, ms3500, ms4000, ms5000, ms6000, ms8000, + ms10000} OPTIONAL, -- Need OR + t301-v1310 ENUMERATED { + ms2500, ms3000, ms3500, ms4000, ms5000, ms6000, ms8000, + ms10000} OPTIONAL -- Need OR + ]], + [[ t310-v1330 ENUMERATED {ms4000, ms6000} + OPTIONAL -- Need OR + ]] +} + + +VisitedCellInfoList-r12 ::= SEQUENCE (SIZE (1..maxCellHistory-r12)) OF VisitedCellInfo-r12 + +VisitedCellInfo-r12 ::= SEQUENCE { + visitedCellId-r12 CHOICE { + cellGlobalId-r12 CellGlobalIdEUTRA, + pci-arfcn-r12 SEQUENCE { + physCellId-r12 PhysCellId, + carrierFreq-r12 ARFCN-ValueEUTRA-r9 + } + } OPTIONAL, + timeSpent-r12 INTEGER (0..4095), + ... +} + + +WLAN-OffloadConfig-r12 ::= SEQUENCE { + thresholdRSRP-r12 SEQUENCE { + thresholdRSRP-Low-r12 RSRP-Range, + thresholdRSRP-High-r12 RSRP-Range + } OPTIONAL, -- Need OR + thresholdRSRQ-r12 SEQUENCE { + thresholdRSRQ-Low-r12 RSRQ-Range, + thresholdRSRQ-High-r12 RSRQ-Range + } OPTIONAL, -- Need OR + thresholdRSRQ-OnAllSymbolsWithWB-r12 SEQUENCE { + thresholdRSRQ-OnAllSymbolsWithWB-Low-r12 RSRQ-Range, + thresholdRSRQ-OnAllSymbolsWithWB-High-r12 RSRQ-Range + } OPTIONAL, -- Need OP + thresholdRSRQ-OnAllSymbols-r12 SEQUENCE { + thresholdRSRQ-OnAllSymbolsLow-r12 RSRQ-Range, + thresholdRSRQ-OnAllSymbolsHigh-r12 RSRQ-Range + } OPTIONAL, -- Need OP + thresholdRSRQ-WB-r12 SEQUENCE { + thresholdRSRQ-WB-Low-r12 RSRQ-Range, + thresholdRSRQ-WB-High-r12 RSRQ-Range + } OPTIONAL, -- Need OP + + thresholdChannelUtilization-r12 SEQUENCE { + thresholdChannelUtilizationLow-r12 INTEGER (0..255), + thresholdChannelUtilizationHigh-r12 INTEGER (0..255) + } OPTIONAL, -- Need OR + thresholdBackhaul-Bandwidth-r12 SEQUENCE { + thresholdBackhaulDL-BandwidthLow-r12 WLAN-backhaulRate-r12, + thresholdBackhaulDL-BandwidthHigh-r12 WLAN-backhaulRate-r12, + thresholdBackhaulUL-BandwidthLow-r12 WLAN-backhaulRate-r12, + thresholdBackhaulUL-BandwidthHigh-r12 WLAN-backhaulRate-r12 + } OPTIONAL, -- Need OR + thresholdWLAN-RSSI-r12 SEQUENCE { + thresholdWLAN-RSSI-Low-r12 INTEGER (0..255), + thresholdWLAN-RSSI-High-r12 INTEGER (0..255) + } OPTIONAL, -- Need OR + offloadPreferenceIndicator-r12 BIT STRING (SIZE (16)) OPTIONAL, -- Need OR + t-SteeringWLAN-r12 T-Reselection OPTIONAL, -- Need OR + ... +} + +WLAN-backhaulRate-r12 ::= ENUMERATED + {r0, r4, r8, r16, r32, r64, r128, r256, r512, + r1024, r2048, r4096, r8192, r16384, r32768, r65536, r131072, + r262144, r524288, r1048576, r2097152, r4194304, r8388608, + r16777216, r33554432, r67108864, r134217728, r268435456, + r536870912, r1073741824, r2147483648, r4294967296} + + +MBMS-NotificationConfig-r9 ::= SEQUENCE { + notificationRepetitionCoeff-r9 ENUMERATED {n2, n4}, + notificationOffset-r9 INTEGER (0..10), + notificationSF-Index-r9 INTEGER (1..6) +} + +MBMS-NotificationConfig-v1430 ::= SEQUENCE { + notificationSF-Index-v1430 INTEGER (7..10) +} + + +MBMS-ServiceList-r13 ::= SEQUENCE (SIZE (0..maxMBMS-ServiceListPerUE-r13)) OF MBMS-ServiceInfo-r13 + +MBMS-ServiceInfo-r13 ::= SEQUENCE { + tmgi-r13 TMGI-r9 +} + + +MBSFN-AreaId-r12 ::= INTEGER (0..255) + + +MBSFN-AreaInfoList-r9 ::= SEQUENCE (SIZE(1..maxMBSFN-Area)) OF MBSFN-AreaInfo-r9 + +MBSFN-AreaInfo-r9 ::= SEQUENCE { + mbsfn-AreaId-r9 MBSFN-AreaId-r12, + non-MBSFNregionLength ENUMERATED {s1, s2}, + notificationIndicator-r9 INTEGER (0..7), + mcch-Config-r9 SEQUENCE { + mcch-RepetitionPeriod-r9 ENUMERATED {rf32, rf64, rf128, rf256}, + mcch-Offset-r9 INTEGER (0..10), + mcch-ModificationPeriod-r9 ENUMERATED {rf512, rf1024}, + sf-AllocInfo-r9 BIT STRING (SIZE(6)), + signallingMCS-r9 ENUMERATED {n2, n7, n13, n19} + }, + ..., + [[ mcch-Config-r14 SEQUENCE { + mcch-RepetitionPeriod-v1430 ENUMERATED {rf1, rf2, rf4, rf8, + rf16 } OPTIONAL, -- Need OR + mcch-ModificationPeriod-v1430 ENUMERATED {rf1, rf2, rf4, rf8, rf16, rf32, rf64, rf128, + rf256, spare7} OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + subcarrierSpacingMBMS-r14 ENUMERATED {khz-7dot5, khz-1dot25} OPTIONAL -- Need OR + ]] +} + + +MBSFN-SubframeConfig ::= SEQUENCE { + radioframeAllocationPeriod ENUMERATED {n1, n2, n4, n8, n16, n32}, + radioframeAllocationOffset INTEGER (0..7), + subframeAllocation CHOICE { + oneFrame BIT STRING (SIZE(6)), + fourFrames BIT STRING (SIZE(24)) + } +} + +MBSFN-SubframeConfig-v1430 ::= SEQUENCE { + subframeAllocation-v1430 CHOICE { + oneFrame-v1430 BIT STRING (SIZE(2)), + fourFrames-v1430 BIT STRING (SIZE(8)) + } +} + + +PMCH-InfoList-r9 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-Info-r9 + +PMCH-InfoListExt-r12 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-InfoExt-r12 + +PMCH-Info-r9 ::= SEQUENCE { + pmch-Config-r9 PMCH-Config-r9, + mbms-SessionInfoList-r9 MBMS-SessionInfoList-r9, + ... +} + +PMCH-InfoExt-r12 ::= SEQUENCE { + pmch-Config-r12 PMCH-Config-r12, + mbms-SessionInfoList-r12 MBMS-SessionInfoList-r9, + ... +} + +MBMS-SessionInfoList-r9 ::= SEQUENCE (SIZE (0..maxSessionPerPMCH)) OF MBMS-SessionInfo-r9 + +MBMS-SessionInfo-r9 ::= SEQUENCE { + tmgi-r9 TMGI-r9, + sessionId-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Need OR + logicalChannelIdentity-r9 INTEGER (0..maxSessionPerPMCH-1), + ... +} + +PMCH-Config-r9 ::= SEQUENCE { + sf-AllocEnd-r9 INTEGER (0..1535), + dataMCS-r9 INTEGER (0..28), + mch-SchedulingPeriod-r9 ENUMERATED { + rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024}, + ... +} + +PMCH-Config-r12 ::= SEQUENCE { + sf-AllocEnd-r12 INTEGER (0..1535), + dataMCS-r12 CHOICE { + normal-r12 INTEGER (0..28), + higerOrder-r12 INTEGER (0..27) + }, + mch-SchedulingPeriod-r12 ENUMERATED { + rf4, rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024}, + ..., + [[ mch-SchedulingPeriod-v1430 ENUMERATED {rf1, rf2} OPTIONAL -- Need OR + ]] +} + +TMGI-r9 ::= SEQUENCE { + plmn-Id-r9 CHOICE { + plmn-Index-r9 INTEGER (1..maxPLMN-r11), + explicitValue-r9 PLMN-Identity + }, + serviceId-r9 OCTET STRING (SIZE (3)) +} + + +SC-MTCH-InfoList-r13 ::= SEQUENCE (SIZE (0..maxSC-MTCH-r13)) OF SC-MTCH-Info-r13 + +SC-MTCH-Info-r13 ::= SEQUENCE { + mbmsSessionInfo-r13 MBMSSessionInfo-r13, + g-RNTI-r13 BIT STRING(SIZE(16)), + sc-mtch-schedulingInfo-r13 SC-MTCH-SchedulingInfo-r13 OPTIONAL, -- Need OP + sc-mtch-neighbourCell-r13 BIT STRING (SIZE(maxNeighCell-SCPTM-r13)) OPTIONAL, -- Need OP + ..., + [[ p-a-r13 ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} OPTIONAL -- Need ON + ]] +} + +MBMSSessionInfo-r13 ::= SEQUENCE { + tmgi-r13 TMGI-r9, + sessionId-r13 OCTET STRING (SIZE (1)) OPTIONAL -- Need OR +} + +SC-MTCH-SchedulingInfo-r13::= SEQUENCE { + onDurationTimerSCPTM-r13 ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200}, + drx-InactivityTimerSCPTM-r13 ENUMERATED { + psf0, psf1, psf2, psf4, psf8, + psf10, psf20, psf40, + psf80, psf160, ps320, + psf640, psf960, + psf1280, psf1920, psf2560}, + schedulingPeriodStartOffsetSCPTM-r13 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2048), + sf4096 INTEGER(0..4096), + sf8192 INTEGER(0..8192) + }, + ... +} + + +SC-MTCH-InfoList-BR-r14 ::= SEQUENCE (SIZE (0..maxSC-MTCH-BR-r14)) OF SC-MTCH-Info-BR-r14 + +SC-MTCH-Info-BR-r14 ::= SEQUENCE { + sc-mtch-CarrierFreq-r14 ARFCN-ValueEUTRA-r9, + mbmsSessionInfo-r14 MBMSSessionInfo-r13, + g-RNTI-r14 BIT STRING(SIZE(16)), + sc-mtch-schedulingInfo-r14 SC-MTCH-SchedulingInfo-BR-r14 OPTIONAL, -- Need OP + sc-mtch-neighbourCell-r14 BIT STRING (SIZE(maxNeighCell-SCPTM-r13)) OPTIONAL, -- Need OP + mpdcch-Narrowband-SC-MTCH-r14 INTEGER (1.. maxAvailNarrowBands-r13), + mpdcch-NumRepetition-SC-MTCH-r14 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + mpdcch-StartSF-SC-MTCH-r14 CHOICE { + fdd-r14 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, + v5, v8, v10}, + tdd-r14 ENUMERATED {v1, v2, v4, v5, v8, v10, + v20} + }, + mpdcch-PDSCH-HoppingConfig-SC-MTCH-r14 ENUMERATED {on, off}, + mpdcch-PDSCH-CEmodeConfig-SC-MTCH-r14 ENUMERATED {ce-ModeA, ce-ModeB}, + mpdcch-PDSCH-MaxBandwidth-SC-MTCH-r14 ENUMERATED {bw1dot4, bw5}, + mpdcch-Offset-SC-MTCH-r14 ENUMERATED {zero, oneEighth, oneQuarter, + threeEighth, oneHalf, fiveEighth, + threeQuarter, sevenEighth}, + + p-a-r14 ENUMERATED { dB-6, dB-4dot77, dB-3, + dB-1dot77, dB0, dB1, dB2, + dB3} OPTIONAL,-- Need OR + ... +} + +SC-MTCH-SchedulingInfo-BR-r14::= SEQUENCE { + onDurationTimerSCPTM-r14 ENUMERATED { + psf300, psf400, psf500, psf600, + psf800, psf1000, psf1200, psf1600}, + drx-InactivityTimerSCPTM-r14 ENUMERATED { + psf0, psf1, psf2, psf4, psf8, psf16, + psf32, psf64, psf128, psf256, ps512, + psf1024, psf2048, psf4096, psf8192, psf16384}, + schedulingPeriodStartOffsetSCPTM-r14 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2047), + sf4096 INTEGER(0..4095), + sf8192 INTEGER(0..8191) + }, + ... +} + + +SCPTM-NeighbourCellList-r13 ::= SEQUENCE (SIZE (1..maxNeighCell-SCPTM-r13)) OF PCI-ARFCN-r13 + +PCI-ARFCN-r13 ::= SEQUENCE { + physCellId-r13 PhysCellId, + carrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL +} + + +SL-AnchorCarrierFreqList-V2X-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF ARFCN-ValueEUTRA-r9 + + +SL-CBR-CommonTxConfigList-r14 ::= SEQUENCE { + cbr-RangeCommonConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-CBRConfig-r14)) OF SL-CBR-Levels-Config-r14, + sl-CBR-PSSCH-TxConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-TxConfig-r14)) OF SL-CBR-PSSCH-TxConfig-r14 +} + +SL-CBR-Levels-Config-r14 ::= SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF SL-CBR-r14 + + +SL-CBR-PSSCH-TxConfig-r14 ::= SEQUENCE { + cr-Limit-r14 INTEGER(0..10000), + tx-Parameters-r14 SL-PSSCH-TxParameters-r14 +} + +SL-CBR-r14 ::= INTEGER(0..100) + + +SL-CBR-PPPP-TxConfigList-r14 ::= SEQUENCE (SIZE (1..8)) OF SL-PPPP-TxConfigIndex-r14 + +SL-PPPP-TxConfigIndex-r14 ::= SEQUENCE { + priorityThreshold-r14 SL-Priority-r13, + defaultTxConfigIndex-r14 INTEGER(0..maxCBR-Level-1-r14), + cbr-ConfigIndex-r14 INTEGER(0..maxSL-V2X-CBRConfig-1-r14), + tx-ConfigIndexList-r14 SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF Tx-ConfigIndex-r14 +} + +Tx-ConfigIndex-r14 ::= INTEGER(0..maxSL-V2X-TxConfig-1-r14) + + +SL-CommConfig-r12 ::= SEQUENCE { + commTxResources-r12 CHOICE { + release NULL, + setup CHOICE { + scheduled-r12 SEQUENCE { + sl-RNTI-r12 C-RNTI, + mac-MainConfig-r12 MAC-MainConfigSL-r12, + sc-CommTxConfig-r12 SL-CommResourcePool-r12, + mcs-r12 INTEGER (0..28) OPTIONAL -- Need OP + }, + ue-Selected-r12 SEQUENCE { + -- Pool for normal usage + commTxPoolNormalDedicated-r12 SEQUENCE { + poolToReleaseList-r12 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r12 SL-CommTxPoolToAddModList-r12 OPTIONAL -- Need ON + } + } + } + } OPTIONAL, -- Need ON + ..., + [[ commTxResources-v1310 CHOICE { + release NULL, + setup CHOICE { + scheduled-v1310 SEQUENCE { + logicalChGroupInfoList-r13 LogicalChGroupInfoList-r13, + multipleTx-r13 BOOLEAN + }, + ue-Selected-v1310 SEQUENCE { + commTxPoolNormalDedicatedExt-r13 SEQUENCE { + poolToReleaseListExt-r13 SL-TxPoolToReleaseListExt-r13 OPTIONAL, -- Need ON + poolToAddModListExt-r13 SL-CommTxPoolToAddModListExt-r13 OPTIONAL -- Need ON + } + } + } + } OPTIONAL, -- Need ON + commTxAllowRelayDedicated-r13 BOOLEAN OPTIONAL -- Need ON + ]] +} + +LogicalChGroupInfoList-r13 ::= SEQUENCE (SIZE (1..maxLCG-r13)) OF SL-PriorityList-r13 + +SL-CommTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-CommTxPoolToAddMod-r12 + +SL-CommTxPoolToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF SL-CommTxPoolToAddModExt-r13 + +SL-CommTxPoolToAddMod-r12 ::= SEQUENCE { + poolIdentity-r12 SL-TxPoolIdentity-r12, + pool-r12 SL-CommResourcePool-r12 +} + +SL-CommTxPoolToAddModExt-r13 ::= SEQUENCE { + poolIdentity-v1310 SL-TxPoolIdentity-v1310, + pool-r13 SL-CommResourcePool-r12 +} + +MAC-MainConfigSL-r12 ::= SEQUENCE { + periodic-BSR-TimerSL PeriodicBSR-Timer-r12 OPTIONAL, -- Need ON + retx-BSR-TimerSL RetxBSR-Timer-r12 +} + + +SL-CommTxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-CommResourcePool-r12 + +SL-CommTxPoolListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF SL-CommResourcePool-r12 + +SL-CommTxPoolListV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-TxPool-r14)) OF SL-CommResourcePoolV2X-r14 + +SL-CommRxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-RxPool-r12)) OF SL-CommResourcePool-r12 + +SL-CommRxPoolListV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-RxPool-r14)) OF SL-CommResourcePoolV2X-r14 + +SL-CommResourcePool-r12 ::= SEQUENCE { + sc-CP-Len-r12 SL-CP-Len-r12, + sc-Period-r12 SL-PeriodComm-r12, + sc-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + data-CP-Len-r12 SL-CP-Len-r12, + dataHoppingConfig-r12 SL-HoppingConfigComm-r12, + ue-SelectedResourceConfig-r12 SEQUENCE { + data-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + trpt-Subset-r12 SL-TRPT-Subset-r12 OPTIONAL -- Need OP + } OPTIONAL, -- Need OR + rxParametersNCell-r12 SEQUENCE { + tdd-Config-r12 TDD-Config OPTIONAL, -- Need OP + syncConfigIndex-r12 INTEGER (0..15) + } OPTIONAL, -- Need OR + txParameters-r12 SEQUENCE { + sc-TxParameters-r12 SL-TxParameters-r12, + dataTxParameters-r12 SL-TxParameters-r12 + } OPTIONAL, -- Cond Tx + ..., + [[ priorityList-r13 SL-PriorityList-r13 OPTIONAL -- Cond Tx + ]] + +} + +SL-CommResourcePoolV2X-r14 ::= SEQUENCE { + sl-OffsetIndicator-r14 SL-OffsetIndicator-r12 OPTIONAL, -- Need OR + sl-Subframe-r14 SubframeBitmapSL-r14, + adjacencyPSCCH-PSSCH-r14 BOOLEAN, + sizeSubchannel-r14 ENUMERATED { + n4, n5, n6, n8, n9, n10, n12, n15, n16, n18, n20, n25, n30, + n48, n50, n72, n75, n96, n100, spare13, spare12, spare11, + spare10, spare9, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1}, + numSubchannel-r14 ENUMERATED {n1, n3, n5, n8, n10, n15, n20, spare1}, + startRB-Subchannel-r14 INTEGER (0..99), + startRB-PSCCH-Pool-r14 INTEGER (0..99) OPTIONAL, -- Need OR + rxParametersNCell-r14 SEQUENCE { + tdd-Config-r14 TDD-Config OPTIONAL, -- Need OP + syncConfigIndex-r14 INTEGER (0..15) + } OPTIONAL, -- Need OR + dataTxParameters-r14 SL-TxParameters-r12 OPTIONAL, -- Cond Tx + zoneID-r14 INTEGER (0..7) OPTIONAL, -- Need OR + threshS-RSSI-CBR-r14 INTEGER (0..45) OPTIONAL, -- Need OR + poolReportId-r14 SL-V2X-TxPoolReportIdentity-r14 OPTIONAL, -- Need OR + cbr-pssch-TxConfigList-r14 SL-CBR-PPPP-TxConfigList-r14 OPTIONAL, -- Need OR + resourceSelectionConfigP2X-r14 SL-P2X-ResourceSelectionConfig-r14 OPTIONAL, -- Cond P2X + syncAllowed-r14 SL-SyncAllowed-r14 OPTIONAL, -- Need OR + restrictResourceReservationPeriod-r14 SL-RestrictResourceReservationPeriodList-r14 OPTIONAL, -- Need OR + ... +} + +SL-TRPT-Subset-r12 ::= BIT STRING (SIZE (3..5)) + +SL-V2X-TxPoolReportIdentity-r14::= INTEGER (1..maxSL-PoolToMeasure-r14) + + +SL-CommTxPoolSensingConfig-r14 ::= SEQUENCE { + pssch-TxConfigList-r14 SL-PSSCH-TxConfigList-r14, + thresPSSCH-RSRP-List-r14 SL-ThresPSSCH-RSRP-List-r14, + restrictResourceReservationPeriod-r14 SL-RestrictResourceReservationPeriodList-r14 OPTIONAL, -- Need OR + probResourceKeep-r14 ENUMERATED {v0, v0dot2, v0dot4, v0dot6, v0dot8, + spare3,spare2, spare1}, + p2x-SensingConfig-r14 SEQUENCE { + minNumCandidateSF-r14 INTEGER (1..13), + gapCandidateSensing-r14 BIT STRING (SIZE (10)) + } OPTIONAL, -- Need OR + sl-ReselectAfter-r14 ENUMERATED {n1, n2, n3, n4, n5, n6, n7, n8, n9, + spare7, spare6, spare5, spare4, spare3, spare2, + spare1} OPTIONAL -- Need OR +} + + +SL-CP-Len-r12 ::= ENUMERATED {normal, extended} + + +SL-DiscConfig-r12 ::= SEQUENCE { + discTxResources-r12 CHOICE { + release NULL, + setup CHOICE { + scheduled-r12 SEQUENCE { + discTxConfig-r12 SL-DiscResourcePool-r12 OPTIONAL, -- Need ON + discTF-IndexList-r12 SL-TF-IndexPairList-r12 OPTIONAL, -- Need ON + discHoppingConfig-r12 SL-HoppingConfigDisc-r12 + OPTIONAL -- Need ON + }, + ue-Selected-r12 SEQUENCE { + discTxPoolDedicated-r12 SEQUENCE { + poolToReleaseList-r12 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r12 SL-DiscTxPoolToAddModList-r12 OPTIONAL -- Need ON + } OPTIONAL -- Need ON + } + } + } OPTIONAL, -- Need ON + ..., + [[ discTF-IndexList-v1260 CHOICE { + release NULL, + setup SEQUENCE { + discTF-IndexList-r12b SL-TF-IndexPairList-r12b + } + } OPTIONAL -- Need ON + ]], + [[ discTxResourcesPS-r13 CHOICE { + release NULL, + setup CHOICE { + scheduled-r13 SL-DiscTxConfigScheduled-r13, + ue-Selected-r13 SEQUENCE { + discTxPoolPS-Dedicated-r13 SL-DiscTxPoolDedicated-r13 + } + } + } OPTIONAL, -- Need ON + discTxInterFreqInfo-r13 CHOICE { + release NULL, + setup SEQUENCE { + discTxCarrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need OR + discTxRefCarrierDedicated-r13 SL-DiscTxRefCarrierDedicated-r13 OPTIONAL, -- Need OR + discTxInfoInterFreqListAdd-r13 SL-DiscTxInfoInterFreqListAdd-r13 OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + gapRequestsAllowedDedicated-r13 BOOLEAN OPTIONAL, -- Need ON + discRxGapConfig-r13 CHOICE { + release NULL, + setup SL-GapConfig-r13 + } OPTIONAL, -- Need ON + discTxGapConfig-r13 CHOICE { + release NULL, + setup SL-GapConfig-r13 + } OPTIONAL, -- Need ON + discSysInfoToReportConfig-r13 CHOICE { + release NULL, + setup SL-DiscSysInfoToReportFreqList-r13 + } OPTIONAL -- Need ON + ]] +} + +SL-DiscSysInfoToReportFreqList-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF ARFCN-ValueEUTRA-r9 + +SL-DiscTxInfoInterFreqListAdd-r13 ::= SEQUENCE { + discTxFreqToAddModList-r13 SEQUENCE (SIZE (1..maxFreq)) OF SL-DiscTxResourceInfoPerFreq-r13 OPTIONAL, -- Need ON + discTxFreqToReleaseList-r13 SEQUENCE (SIZE (1..maxFreq)) OF ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need ON + ... +} + +SL-DiscTxResourceInfoPerFreq-r13 ::= SEQUENCE { + discTxCarrierFreq-r13 ARFCN-ValueEUTRA-r9, + discTxResources-r13 SL-DiscTxResource-r13 OPTIONAL, -- Need OR + discTxResourcesPS-r13 SL-DiscTxResource-r13 OPTIONAL, -- Need OR + discTxRefCarrierDedicated-r13 SL-DiscTxRefCarrierDedicated-r13 OPTIONAL, -- Need OR + discCellSelectionInfo-r13 CellSelectionInfoNFreq-r13 OPTIONAL, -- Need OR + ... +} + +SL-DiscTxResource-r13 ::= CHOICE { + release NULL, + setup CHOICE { + scheduled-r13 SL-DiscTxConfigScheduled-r13, + ue-Selected-r13 SL-DiscTxPoolDedicated-r13 + } +} + +SL-DiscTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-DiscTxPoolToAddMod-r12 + +SL-DiscTxPoolToAddMod-r12 ::= SEQUENCE { + poolIdentity-r12 SL-TxPoolIdentity-r12, + pool-r12 SL-DiscResourcePool-r12 +} + +SL-DiscTxConfigScheduled-r13 ::= SEQUENCE { + discTxConfig-r13 SL-DiscResourcePool-r12 OPTIONAL, -- Need ON + discTF-IndexList-r13 SL-TF-IndexPairList-r12b OPTIONAL, -- Need ON + discHoppingConfig-r13 SL-HoppingConfigDisc-r12 OPTIONAL,-- Need ON + ... +} + +SL-DiscTxPoolDedicated-r13 ::= SEQUENCE { + poolToReleaseList-r13 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r13 SL-DiscTxPoolToAddModList-r12 OPTIONAL -- Need ON +} + +SL-TF-IndexPairList-r12 ::= SEQUENCE (SIZE (1..maxSL-TF-IndexPair-r12)) OF SL-TF-IndexPair-r12 + +SL-TF-IndexPair-r12 ::= SEQUENCE { + discSF-Index-r12 INTEGER (1.. 200) OPTIONAL, -- Need ON + discPRB-Index-r12 INTEGER (1.. 50) OPTIONAL -- Need ON +} + +SL-TF-IndexPairList-r12b ::= SEQUENCE (SIZE (1..maxSL-TF-IndexPair-r12)) OF SL-TF-IndexPair-r12b + +SL-TF-IndexPair-r12b ::= SEQUENCE { + discSF-Index-r12b INTEGER (0..209) OPTIONAL, -- Need ON + discPRB-Index-r12b INTEGER (0..49) OPTIONAL -- Need ON +} + +SL-DiscTxRefCarrierDedicated-r13 ::= CHOICE { + pCell NULL, + sCell SCellIndex-r10 +} + + +SL-DiscTxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-DiscResourcePool-r12 + +SL-DiscRxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-RxPool-r12)) OF SL-DiscResourcePool-r12 + +SL-DiscResourcePool-r12 ::= SEQUENCE { + cp-Len-r12 SL-CP-Len-r12, + discPeriod-r12 ENUMERATED {rf32, rf64, rf128, + rf256, rf512, rf1024, rf16-v1310, spare}, + numRetx-r12 INTEGER (0..3), + numRepetition-r12 INTEGER (1..50), + tf-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + txParameters-r12 SEQUENCE { + txParametersGeneral-r12 SL-TxParameters-r12, + ue-SelectedResourceConfig-r12 SEQUENCE { + poolSelection-r12 CHOICE { + rsrpBased-r12 SL-PoolSelectionConfig-r12, + random-r12 NULL + }, + txProbability-r12 ENUMERATED {p25, p50, p75, p100} + } OPTIONAL -- Need OR + } OPTIONAL, -- Cond Tx + rxParameters-r12 SEQUENCE { + tdd-Config-r12 TDD-Config OPTIONAL, -- Need OR + syncConfigIndex-r12 INTEGER (0..15) + } OPTIONAL, -- Need OR + ..., + [[ discPeriod-v1310 CHOICE { + release NULL, + setup ENUMERATED {rf4, rf6, rf7, rf8, + rf12, rf14, rf24, rf28} + } OPTIONAL, -- Need ON + rxParamsAddNeighFreq-r13 CHOICE { + release NULL, + setup SEQUENCE { + physCellId-r13 PhysCellIdList-r13 + } + } OPTIONAL, -- Need ON + txParamsAddNeighFreq-r13 CHOICE { + release NULL, + setup SEQUENCE { + physCellId-r13 PhysCellIdList-r13, + p-Max P-Max OPTIONAL, -- Need OP + tdd-Config-r13 TDD-Config OPTIONAL, -- Cond TDD-OR + tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD-OR + freqInfo SEQUENCE { + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission + }, + referenceSignalPower INTEGER (-60..50), + syncConfigIndex-r13 INTEGER (0..15) OPTIONAL -- Need OR + } + } OPTIONAL -- Need ON + ]], + [[ txParamsAddNeighFreq-v1370 CHOICE { + release NULL, + setup SEQUENCE { + freqInfo-v1370 SEQUENCE { + additionalSpectrumEmission-v1370 AdditionalSpectrumEmission-v10l0 + } + } + } OPTIONAL -- Need ON + ]] +} + +PhysCellIdList-r13 ::= SEQUENCE (SIZE (1.. maxSL-DiscCells-r13)) OF PhysCellId + +SL-PoolSelectionConfig-r12 ::= SEQUENCE { + threshLow-r12 RSRP-RangeSL2-r12, + threshHigh-r12 RSRP-RangeSL2-r12 +} + + +SL-DiscSysInfoReport-r13 ::= SEQUENCE { + plmn-IdentityList-r13 PLMN-IdentityList OPTIONAL, + cellIdentity-13 CellIdentity OPTIONAL, + carrierFreqInfo-13 ARFCN-ValueEUTRA-r9 OPTIONAL, + discRxResources-r13 SL-DiscRxPoolList-r12 OPTIONAL, + discTxPoolCommon-r13 SL-DiscTxPoolList-r12 OPTIONAL, + discTxPowerInfo-r13 SL-DiscTxPowerInfoList-r12 OPTIONAL, + discSyncConfig-r13 SL-SyncConfigNFreq-r13 OPTIONAL, + discCellSelectionInfo-r13 SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + q-RxLevMinOffset-r13 INTEGER (1..8) OPTIONAL + } OPTIONAL, + cellReselectionInfo-r13 SEQUENCE { + q-Hyst-r13 ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + q-RxLevMin-r13 Q-RxLevMin, + t-ReselectionEUTRA-r13 T-Reselection + } OPTIONAL, + tdd-Config-r13 TDD-Config OPTIONAL, + freqInfo-r13 SEQUENCE { + ul-CarrierFreq-r13 ARFCN-ValueEUTRA OPTIONAL, + ul-Bandwidth-r13 ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, + additionalSpectrumEmission-r13 AdditionalSpectrumEmission OPTIONAL + } OPTIONAL, + p-Max-r13 P-Max OPTIONAL, + referenceSignalPower-r13 INTEGER (-60..50) OPTIONAL, + ..., + [[ + freqInfo-v1370 SEQUENCE { + additionalSpectrumEmission-v1370 AdditionalSpectrumEmission-v10l0 + } OPTIONAL + ]] +} + + +SL-DiscTxPowerInfoList-r12 ::= SEQUENCE (SIZE (maxSL-DiscPowerClass-r12)) OF SL-DiscTxPowerInfo-r12 + +SL-DiscTxPowerInfo-r12 ::= SEQUENCE { + discMaxTxPower-r12 P-Max, + ... +} + + +SL-GapConfig-r13 ::= SEQUENCE { + gapPatternList-r13 SL-GapPatternList-r13 +} + +SL-GapPatternList-r13 ::= SEQUENCE (SIZE (1..maxSL-GP-r13)) OF SL-GapPattern-r13 + +SL-GapPattern-r13 ::= SEQUENCE { + gapPeriod-r13 ENUMERATED {sf40, sf60, sf70, sf80, sf120, sf140, sf160, + sf240, sf280, sf320, sf640, sf1280, sf2560, sf5120, + sf10240}, + gapOffset-r12 SL-OffsetIndicator-r12, + gapSubframeBitmap-r13 BIT STRING (SIZE (1..10240)), + ... +} + + +SL-GapRequest-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-GapFreqInfo-r13 + +SL-GapFreqInfo-r13 ::= SEQUENCE { + carrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL, + gapPatternList-r13 SL-GapPatternList-r13 +} + + +SL-HoppingConfigComm-r12 ::= SEQUENCE { + hoppingParameter-r12 INTEGER (0..504), + numSubbands-r12 ENUMERATED {ns1, ns2, ns4}, + rb-Offset-r12 INTEGER (0..110) +} + +SL-HoppingConfigDisc-r12 ::= SEQUENCE { + a-r12 INTEGER (1..200), + b-r12 INTEGER (1..10), + c-r12 ENUMERATED {n1, n5} +} + + +SL-InterFreqInfoListV2X-r14 ::= SEQUENCE (SIZE (0..maxFreqV2X-1-r14)) OF SL-InterFreqInfoV2X-r14 + +SL-InterFreqInfoV2X-r14 ::= SEQUENCE { + plmn-IdentityList-r14 PLMN-IdentityList OPTIONAL, -- Need OP + v2x-CommCarrierFreq-r14 ARFCN-ValueEUTRA-r9, + sl-MaxTxPower-r14 P-Max OPTIONAL, -- Need OR + sl-Bandwidth-r14 ENUMERATED {n6, n15, n25, n50, n75, n100} OPTIONAL, -- Need OR + v2x-SchedulingPool-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-UE-ConfigList-r14 SL-V2X-UE-ConfigList-r14 OPTIONAL, -- Need OR + ..., + [[ additionalSpectrumEmissionV2X-r14 CHOICE { + additionalSpectrumEmission-r14 AdditionalSpectrumEmission, + additionalSpectrumEmission-v1440 AdditionalSpectrumEmission-v10l0 + } OPTIONAL -- Need ON + ]] +} + + +SL-V2X-UE-ConfigList-r14 ::= SEQUENCE (SIZE (1.. maxCellIntra)) OF SL-V2X-InterFreqUE-Config-r14 + +SL-V2X-InterFreqUE-Config-r14 ::= SEQUENCE { + physCellIdList-r14 PhysCellIdList-r13 OPTIONAL, -- Need OR + typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR + v2x-SyncConfig-r14 SL-SyncConfigListNFreqV2X-r14 OPTIONAL, -- Need OR + v2x-CommRxPool-r14 SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolNormal-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + p2x-CommTxPoolNormal-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolExceptional-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-ResourceSelectionConfig-r14 SL-CommTxPoolSensingConfig-r14 OPTIONAL, -- Need OR + zoneConfig-r14 SL-ZoneConfig-r14 OPTIONAL, -- Need OR + offsetDFN-r14 INTEGER (0..1000) OPTIONAL, -- Need OR + ... +} + + +SL-OffsetIndicator-r12 ::= CHOICE { + small-r12 INTEGER (0..319), + large-r12 INTEGER (0..10239) +} + +SL-OffsetIndicatorSync-r12 ::= INTEGER (0..39) + +SL-OffsetIndicatorSync-v1430 ::= INTEGER (40..159) + +SL-OffsetIndicatorSync-r14 ::= INTEGER (0..159) + + +SL-P2X-ResourceSelectionConfig-r14 ::= SEQUENCE { + partialSensing-r14 ENUMERATED {true} OPTIONAL, -- Need OR + randomSelection-r14 ENUMERATED {true} OPTIONAL -- Need OR +} + + +SL-PeriodComm-r12 ::= ENUMERATED {sf40, sf60, sf70, sf80, sf120, sf140, + sf160, sf240, sf280, sf320, spare6, spare5, + spare4, spare3, spare2, spare} + + +SL-PriorityList-r13 ::= SEQUENCE (SIZE (1..maxSL-Prio-r13)) OF SL-Priority-r13 + +SL-Priority-r13 ::= INTEGER (1..8) + + +SL-PSSCH-TxConfigList-r14 ::= SEQUENCE (SIZE (1..maxPSSCH-TxConfig-r14)) OF SL-PSSCH-TxConfig-r14 + +SL-PSSCH-TxConfig-r14 ::= SEQUENCE { + typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR + thresUE-Speed-r14 ENUMERATED {kmph60, kmph80, kmph100, kmph120, + kmph140, kmph160, kmph180, kmph200}, + parametersAboveThres-r14 SL-PSSCH-TxParameters-r14, + parametersBelowThres-r14 SL-PSSCH-TxParameters-r14, + ... +} + +SL-PSSCH-TxParameters-r14 ::= SEQUENCE { + minMCS-PSSCH-r14 INTEGER (0..31), + maxMCS-PSSCH-r14 INTEGER (0..31), + minSubChannel-NumberPSSCH-r14 INTEGER (1..20), + maxSubchannel-NumberPSSCH-r14 INTEGER (1..20), + allowedRetxNumberPSSCH-r14 ENUMERATED {n0, n1, both, spare1}, + maxTxPower-r14 SL-TxPower-r14 OPTIONAL -- Cond CBR +} + + +SL-RestrictResourceReservationPeriodList-r14 ::= SEQUENCE (SIZE (1..maxReservationPeriod-r14)) OF SL-RestrictResourceReservationPeriod-r14 + +SL-RestrictResourceReservationPeriod-r14 ::= ENUMERATED {v0dot2, v0dot5, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, spare4,spare3, spare2, spare1} + + +SLSSID-r12 ::= INTEGER (0..167) + + +SL-SyncAllowed-r14 ::= SEQUENCE { + gnss-Sync-r14 ENUMERATED {true} OPTIONAL, -- Need OR + enb-Sync-r14 ENUMERATED {true} OPTIONAL, -- Need OR + ue-Sync-r14 ENUMERATED {true} OPTIONAL -- Need OR +} + + +SL-SyncConfigList-r12 ::= SEQUENCE (SIZE (1..maxSL-SyncConfig-r12)) OF SL-SyncConfig-r12 + +SL-SyncConfigListV2X-r14 ::= SEQUENCE (SIZE (1.. maxSL-V2X-SyncConfig-r14)) OF SL-SyncConfig-r12 + +SL-SyncConfig-r12 ::= SEQUENCE { + syncCP-Len-r12 SL-CP-Len-r12, + syncOffsetIndicator-r12 SL-OffsetIndicatorSync-r12, + slssid-r12 SLSSID-r12, + txParameters-r12 SEQUENCE { + syncTxParameters-r12 SL-TxParameters-r12, + syncTxThreshIC-r12 RSRP-RangeSL-r12, + syncInfoReserved-r12 BIT STRING (SIZE (19)) OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + rxParamsNCell-r12 SEQUENCE { + physCellId-r12 PhysCellId, + discSyncWindow-r12 ENUMERATED {w1, w2} + } OPTIONAL, -- Need OR + ..., + [[ syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ syncOffsetIndicator-v1430 SL-OffsetIndicatorSync-v1430 OPTIONAL, -- Need OR + gnss-Sync-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ syncOffsetIndicator2-r14 SL-OffsetIndicatorSync-r14 OPTIONAL, -- Need OR + syncOffsetIndicator3-r14 SL-OffsetIndicatorSync-r14 OPTIONAL -- Need OR + ]] +} + +SL-SyncConfigListNFreq-r13 ::= SEQUENCE (SIZE (1..maxSL-SyncConfig-r12)) OF SL-SyncConfigNFreq-r13 + +SL-SyncConfigListNFreqV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-SyncConfig-r14)) OF SL-SyncConfigNFreq-r13 + +SL-SyncConfigNFreq-r13 ::= SEQUENCE { + asyncParameters-r13 SEQUENCE { + syncCP-Len-r13 SL-CP-Len-r12, + syncOffsetIndicator-r13 SL-OffsetIndicatorSync-r12, + slssid-r13 SLSSID-r12 + } OPTIONAL, -- Need OR + txParameters-r13 SEQUENCE { + syncTxParameters-r13 SL-TxParameters-r12, + syncTxThreshIC-r13 RSRP-RangeSL-r12, + syncInfoReserved-r13 BIT STRING (SIZE (19)) OPTIONAL, -- Need OR + syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + rxParameters-r13 SEQUENCE { + discSyncWindow-r13 ENUMERATED {w1, w2} + } OPTIONAL, -- Need OR + ..., + [[ syncOffsetIndicator-v1430 SL-OffsetIndicatorSync-v1430 OPTIONAL, -- Need OR + gnss-Sync-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ syncOffsetIndicator2-r14 SL-OffsetIndicatorSync-r14 OPTIONAL, -- Need OR + syncOffsetIndicator3-r14 SL-OffsetIndicatorSync-r14 OPTIONAL -- Need OR + ]] +} + + +SL-TF-ResourceConfig-r12 ::= SEQUENCE { + prb-Num-r12 INTEGER (1..100), + prb-Start-r12 INTEGER (0..99), + prb-End-r12 INTEGER (0..99), + offsetIndicator-r12 SL-OffsetIndicator-r12, + subframeBitmap-r12 SubframeBitmapSL-r12 +} + +SubframeBitmapSL-r12 ::= CHOICE { + bs4-r12 BIT STRING (SIZE (4)), + bs8-r12 BIT STRING (SIZE (8)), + bs12-r12 BIT STRING (SIZE (12)), + bs16-r12 BIT STRING (SIZE (16)), + bs30-r12 BIT STRING (SIZE (30)), + bs40-r12 BIT STRING (SIZE (40)), + bs42-r12 BIT STRING (SIZE (42)) +} + +SubframeBitmapSL-r14 ::= CHOICE { + bs10-r14 BIT STRING (SIZE (10)), + bs16-r14 BIT STRING (SIZE (16)), + bs20-r14 BIT STRING (SIZE (20)), + bs30-r14 BIT STRING (SIZE (30)), + bs40-r14 BIT STRING (SIZE (40)), + bs50-r14 BIT STRING (SIZE (50)), + bs60-r14 BIT STRING (SIZE (60)), + bs100-r14 BIT STRING (SIZE (100)) +} + + +SL-TxPower-r14 ::= CHOICE { + minusinfinity-r14 NULL, + txPower-r14 INTEGER (-41..31) +} + + +SL-TypeTxSync-r14 ::= ENUMERATED {gnss, enb, ue} + + +SL-ThresPSSCH-RSRP-List-r14 ::= SEQUENCE (SIZE (64)) OF SL-ThresPSSCH-RSRP-r14 + +SL-ThresPSSCH-RSRP-r14 ::= INTEGER (0..66) + + +SL-TxParameters-r12 ::= SEQUENCE { + alpha-r12 Alpha-r12, + p0-r12 P0-SL-r12 +} + +P0-SL-r12 ::= INTEGER (-126..31) + + +SL-TxPoolIdentity-r12 ::= INTEGER (1.. maxSL-TxPool-r12) + +SL-TxPoolIdentity-v1310 ::= INTEGER (maxSL-TxPool-r12Plus1-r13.. maxSL-TxPool-r13) + +SL-V2X-TxPoolIdentity-r14 ::= INTEGER (1.. maxSL-V2X-TxPool-r14) + + +SL-TxPoolToReleaseList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-TxPoolIdentity-r12 + +SL-TxPoolToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF SL-TxPoolIdentity-v1310 + + +SL-V2X-ConfigDedicated-r14 ::= SEQUENCE { + commTxResources-r14 CHOICE { + release NULL, + setup CHOICE { + scheduled-r14 SEQUENCE { + sl-V-RNTI-r14 C-RNTI, + mac-MainConfig-r14 MAC-MainConfigSL-r12, + v2x-SchedulingPool-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need ON + mcs-r14 INTEGER (0..31) OPTIONAL, -- Need OR + logicalChGroupInfoList-r14 LogicalChGroupInfoList-r13 + }, + ue-Selected-r14 SEQUENCE { + -- Pool for normal usage + v2x-CommTxPoolNormalDedicated-r14 SEQUENCE { + poolToReleaseList-r14 SL-TxPoolToReleaseListV2X-r14 OPTIONAL, -- Need ON + poolToAddModList-r14 SL-TxPoolToAddModListV2X-r14 OPTIONAL, -- Need ON + v2x-CommTxPoolSensingConfig-r14 SL-CommTxPoolSensingConfig-r14 + OPTIONAL -- Need ON + } + } + } + } OPTIONAL, -- Need ON + v2x-InterFreqInfoList-r14 SL-InterFreqInfoListV2X-r14 OPTIONAL, -- Need ON + thresSL-TxPrioritization-r14 SL-Priority-r13 OPTIONAL, -- Need OR + typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR + cbr-DedicatedTxConfigList-r14 SL-CBR-CommonTxConfigList-r14 OPTIONAL, -- Need OR + ... +} + +SL-TxPoolToAddModListV2X-r14 ::= SEQUENCE (SIZE (1.. maxSL-V2X-TxPool-r14)) OF SL-TxPoolToAddMod-r14 + +SL-TxPoolToAddMod-r14 ::= SEQUENCE { + poolIdentity-r14 SL-V2X-TxPoolIdentity-r14, + pool-r14 SL-CommResourcePoolV2X-r14 +} + +SL-TxPoolToReleaseListV2X-r14 ::= SEQUENCE (SIZE (1.. maxSL-V2X-TxPool-r14)) OF SL-V2X-TxPoolIdentity-r14 + + +SL-ZoneConfig-r14 ::= SEQUENCE { + zoneLength-r14 ENUMERATED { m5, m10, m20, m50, m100, m200, m500, spare1}, + zoneWidth-r14 ENUMERATED { m5, m10, m20, m50, m100, m200, m500, spare1}, + zoneIdLongiMod-r14 INTEGER (1..4), + zoneIdLatiMod-r14 INTEGER (1..4) +} + + +maxACDC-Cat-r13 INTEGER ::= 16 -- Maximum number of ACDC categories (per PLMN) +maxAvailNarrowBands-r13 INTEGER ::= 16 -- Maximum number of narrowbands +maxBandComb-r10 INTEGER ::= 128 -- Maximum number of band combinations. +maxBandComb-r11 INTEGER ::= 256 -- Maximum number of additional band combinations. +maxBandComb-r13 INTEGER ::= 384 -- Maximum number of band combinations in Rel-13 +maxBands INTEGER ::= 64 -- Maximum number of bands listed in EUTRA UE caps +maxBandsNR-r15 INTEGER ::= 1024 -- Maximum number of NR bands listed in EUTRA UE caps +maxBandwidthClass-r10 INTEGER ::= 16 -- Maximum number of supported CA BW classes per band +maxBandwidthCombSet-r10 INTEGER ::= 32 -- Maximum number of bandwidth combination sets per + -- supported band combination +maxCBR-Level-r14 INTEGER ::= 16 -- Maximum number of CBR levels +maxCBR-Level-1-r14 INTEGER ::= 15 +maxCBR-Report-r14 INTEGER ::= 72 -- Maximum number of CBR results in a report +maxCDMA-BandClass INTEGER ::= 32 -- Maximum value of the CDMA band classes +maxCE-Level-r13 INTEGER ::= 4 -- Maximum number of CE levels +maxCellBlack INTEGER ::= 16 -- Maximum number of blacklisted physical cell identity + -- ranges listed in SIB type 4 and 5 +maxCellHistory-r12 INTEGER ::= 16 -- Maximum number of visited EUTRA cells reported +maxCellInfoGERAN-r9 INTEGER ::= 32 -- Maximum number of GERAN cells for which system in- + -- formation can be provided as redirection assistance +maxCellInfoUTRA-r9 INTEGER ::= 16 -- Maximum number of UTRA cells for which system + -- information can be provided as redirection + -- assistance +maxCombIDC-r11 INTEGER ::= 128 -- Maximum number of reported UL CA combinations +maxCSI-IM-r11 INTEGER ::= 3 -- Maximum number of CSI-IM configurations + -- (per carrier frequency) +maxCSI-IM-r12 INTEGER ::= 4 -- Maximum number of CSI-IM configurations + -- (per carrier frequency) +minCSI-IM-r13 INTEGER ::= 5 -- Minimum number of CSI IM configurations from which + -- REL-13 extension is used +maxCSI-IM-r13 INTEGER ::= 24 -- Maximum number of CSI-IM configurations + -- (per carrier frequency) +maxCSI-IM-v1310 INTEGER ::= 20 -- Maximum number of additional CSI-IM configurations + -- (per carrier frequency) +maxCSI-Proc-r11 INTEGER ::= 4 -- Maximum number of CSI processes (per carrier + -- frequency) +maxCSI-RS-NZP-r11 INTEGER ::= 3 -- Maximum number of CSI RS resource + -- configurations using non-zero Tx power + -- (per carrier frequency) +minCSI-RS-NZP-r13 INTEGER ::= 4 -- Minimum number of CSI RS resource from which + -- REL-13 extension is used +maxCSI-RS-NZP-r13 INTEGER ::= 24 -- Maximum number of CSI RS resource + -- configurations using non-zero Tx power + -- (per carrier frequency) +maxCSI-RS-NZP-v1310 INTEGER ::= 21 -- Maximum number of additional CSI RS resource + -- configurations using non-zero Tx power + -- (per carrier frequency) +maxCSI-RS-ZP-r11 INTEGER ::= 4 -- Maximum number of CSI RS resource + -- configurations using zero Tx power(per carrier + -- frequency) +maxCQI-ProcExt-r11 INTEGER ::= 3 -- Maximum number of additional periodic CQI + -- configurations (per carrier frequency) +maxFreqUTRA-TDD-r10 INTEGER ::= 6 -- Maximum number of UTRA TDD carrier frequencies for + -- which system information can be provided as + -- redirection assistance +maxCellInter INTEGER ::= 16 -- Maximum number of neighbouring inter-frequency + -- cells listed in SIB type 5 +maxCellIntra INTEGER ::= 16 -- Maximum number of neighbouring intra-frequency + -- cells listed in SIB type 4 +maxCellListGERAN INTEGER ::= 3 -- Maximum number of lists of GERAN cells +maxCellMeas INTEGER ::= 32 -- Maximum number of entries in each of the + -- cell lists in a measurement object +maxCellReport INTEGER ::= 8 -- Maximum number of reported cells/CSI-RS resources +maxCellSFTD INTEGER ::= 3 -- Maximum number of cells for SFTD reporting +maxConfigSPS-r14 INTEGER ::= 8 -- Maximum number of simultaneous SPS configurations +maxCSI-RS-Meas-r12 INTEGER ::= 96 -- Maximum number of entries in the CSI-RS list + -- in a measurement object +maxDRB INTEGER ::= 11 -- Maximum number of Data Radio Bearers +maxDS-Duration-r12 INTEGER ::= 5 -- Maximum number of subframes in a discovery signals + -- occasion +maxDS-ZTP-CSI-RS-r12 INTEGER ::= 5 -- Maximum number of zero transmission power CSI-RS for + -- a serving cell concerning discovery signals +maxEARFCN INTEGER ::= 65535 -- Maximum value of EUTRA carrier frequency +maxEARFCN-Plus1 INTEGER ::= 65536 -- Lowest value extended EARFCN range +maxEARFCN2 INTEGER ::= 262143 -- Highest value extended EARFCN range +maxEPDCCH-Set-r11 INTEGER ::= 2 -- Maximum number of EPDCCH sets +maxFBI INTEGER ::= 64 -- Maximum value of fequency band indicator +maxFBI-NR-r15 INTEGER ::= 1024 -- Highest value FBI range for NR. +maxFBI-Plus1 INTEGER ::= 65 -- Lowest value extended FBI range +maxFBI2 INTEGER ::= 256 -- Highest value extended FBI range +maxFeatureSets-r15 INTEGER ::= 256 -- Total number of feature sets (size of pool) +maxPerCC-FeatureSets-r15 INTEGER ::= 32 -- Total number of CC-specific feature sets + -- (size of the pool) +maxFreq INTEGER ::= 8 -- Maximum number of carrier frequencies +maxFreqIDC-r11 INTEGER ::= 32 -- Maximum number of carrier frequencies that are + -- affected by the IDC problems +maxFreqMBMS-r11 INTEGER ::= 5 -- Maximum number of carrier frequencies for which an + -- MBMS capable UE may indicate an interest +maxFreqNR-r15 INTEGER ::= 5 -- Maximum number of NR carrier frequencies for + -- which a UE may provide measurement results upon + -- SCG failure +maxFreqV2X-r14 INTEGER ::= 8 -- Maximum number of carrier frequencies for which V2X + -- sidelink communication can be configured +maxFreqV2X-1-r14 INTEGER ::= 7 -- Highest index of frequencies +maxGERAN-SI INTEGER ::= 10 -- Maximum number of GERAN SI blocks that can be + -- provided as part of NACC information +maxGNFG INTEGER ::= 16 -- Maximum number of GERAN neighbour freq groups +maxLCG-r13 INTEGER ::= 4 -- Maximum number of logical channel groups +maxLogMeasReport-r10 INTEGER ::= 520 -- Maximum number of logged measurement entries + -- that can be reported by the UE in one message +maxMBSFN-Allocations INTEGER ::= 8 -- Maximum number of MBSFN frame allocations with + -- different offset +maxMBSFN-Area INTEGER ::= 8 +maxMBSFN-Area-1 INTEGER ::= 7 +maxMBMS-ServiceListPerUE-r13 INTEGER ::= 15 -- Maximum number of services which the UE can + -- include in the MBMS interest indication +maxMeasId INTEGER ::= 32 +maxMeasId-Plus1 INTEGER ::= 33 +maxMeasId-r12 INTEGER ::= 64 +maxMultiBands INTEGER ::= 8 -- Maximum number of additional frequency bands + -- that a cell belongs to +maxNS-Pmax-r10 INTEGER ::= 8 -- Maximum number of NS and P-Max values per band +maxNAICS-Entries-r12 INTEGER ::= 8 -- Maximum number of supported NAICS combination(s) +maxNeighCell-r12 INTEGER ::= 8 -- Maximum number of neighbouring cells in NAICS + -- configuration (per carrier frequency) +maxNeighCell-SCPTM-r13 INTEGER ::= 8 -- Maximum number of SCPTM neighbour cells +maxObjectId INTEGER ::= 32 +maxObjectId-Plus1-r13 INTEGER ::= 33 +maxObjectId-r13 INTEGER ::= 64 +maxP-a-PerNeighCell-r12 INTEGER ::= 3 -- Maximum number of power offsets for a neighbour cell + -- in NAICS configuration +maxPageRec INTEGER ::= 16 -- +maxPhysCellIdRange-r9 INTEGER ::= 4 -- Maximum number of physical cell identity ranges +maxPLMN-r11 INTEGER ::= 6 -- Maximum number of PLMNs +maxPLMN-1-r14 INTEGER ::= 5 -- Maximum number of PLMNs minus one +maxPNOffset INTEGER ::= 511 -- Maximum number of CDMA2000 PNOffsets +maxPMCH-PerMBSFN INTEGER ::= 15 +maxPSSCH-TxConfig-r14 INTEGER ::= 16 -- Maximum number of PSSCH TX configurations +maxQuantSetsNR-r15 INTEGER ::= 2 -- Maximum number of NR quantity configuration sets +maxQCI-r13 INTEGER ::= 6 -- Maximum number of QCIs +maxRAT-Capabilities INTEGER ::= 8 -- Maximum number of interworking RATs (incl EUTRA) +maxRE-MapQCL-r11 INTEGER ::= 4 -- Maximum number of PDSCH RE Mapping configurations + -- (per carrier frequency) +maxReportConfigId INTEGER ::= 32 +maxReservationPeriod-r14 INTEGER ::= 16 -- Maximum number of resource reservation periodicities + -- for sidelink V2X communication +maxRS-Index-r15 INTEGER ::= 64 -- Maximum number of RS indices +maxRS-Index-1-r15 INTEGER ::= 63 -- Highest value of RS index as used to identify + -- RS index in RRM reports. +maxRS-IndexCellQual-r15 INTEGER ::= 16 -- Maximum number of RS indices averaged to derive + -- cell quality for RRM. +maxRS-IndexReport-r15 INTEGER ::= 32 -- Maximum number of RS indices for RRM. +maxRSTD-Freq-r10 INTEGER ::= 3 -- Maximum number of frequency layers for RSTD + -- measurement +maxSAI-MBMS-r11 INTEGER ::= 64 -- Maximum number of MBMS service area identities + -- broadcast per carrier frequency +maxSCell-r10 INTEGER ::= 4 -- Maximum number of SCells +maxSCell-r13 INTEGER ::= 31 -- Highest value of extended number range of SCells +maxSC-MTCH-r13 INTEGER ::= 1023 -- Maximum number of SC-MTCHs in one cell +maxSC-MTCH-BR-r14 INTEGER ::= 128 -- Maximum number of SC-MTCHs in one cell for feMTC +maxSL-CommRxPoolNFreq-r13 INTEGER ::= 32 -- Maximum number of individual sidelink communication + -- Rx resource pools on neighbouring freq +maxSL-CommRxPoolPreconf-v1310 INTEGER ::= 12 -- Maximum number of additional preconfigured + -- sidelink communication Rx resource pool entries +maxSL-TxPool-r12Plus1-r13 INTEGER ::= 5 -- First additional individual sidelink + -- Tx resource pool +maxSL-TxPool-v1310 INTEGER ::= 4 -- Maximum number of additional sidelink + -- Tx resource pool entries +maxSL-TxPool-r13 INTEGER ::= 8 -- Maximum number of individual sidelink + -- Tx resource pools +maxSL-CommTxPoolPreconf-v1310 INTEGER ::= 7 -- Maximum number of additional preconfigured + -- sidelink Tx resource pool entries +maxSL-Dest-r12 INTEGER ::= 16 -- Maximum number of sidelink destinations +maxSL-DiscCells-r13 INTEGER ::= 16 -- Maximum number of cells with similar sidelink + -- configurations +maxSL-DiscPowerClass-r12 INTEGER ::= 3 -- Maximum number of sidelink power classes +maxSL-DiscRxPoolPreconf-r13 INTEGER ::= 16 -- Maximum number of preconfigured sidelink + -- discovery Rx resource pool entries +maxSL-DiscSysInfoReportFreq-r13 INTEGER ::= 8 -- Maximum number of frequencies to include in a + -- SidelinkUEInformation for SI reporting +maxSL-DiscTxPoolPreconf-r13 INTEGER ::= 4 -- Maximum number of preconfigured sidelink + -- discovery Tx resource pool entries +maxSL-GP-r13 INTEGER ::= 8 -- Maximum number of gap patterns that can be requested + -- for a frequency or assigned +maxSL-PoolToMeasure-r14 INTEGER ::= 72 -- Maximum number of TX resource pools for CBR + -- measurement and report +maxSL-Prio-r13 INTEGER ::= 8 -- Maximum number of entries in sidelink priority list +maxSL-RxPool-r12 INTEGER ::= 16 -- Maximum number of individual sidelink Rx resource pools +maxSL-SyncConfig-r12 INTEGER ::= 16 -- Maximum number of sidelink Sync configurations +maxSL-TF-IndexPair-r12 INTEGER ::= 64 -- Maximum number of sidelink Time Freq resource index + -- pairs +maxSL-TxPool-r12 INTEGER ::= 4 -- Maximum number of individual sidelink Tx resource pools +maxSL-V2X-RxPool-r14 INTEGER ::= 16 -- Maximum number of RX resource pools for + -- V2X sidelink communication +maxSL-V2X-RxPoolPreconf-r14 INTEGER ::= 16 -- Maximum number of RX resource pools for + -- V2X sidelink communication +maxSL-V2X-TxPool-r14 INTEGER ::= 8 -- Maximum number of TX resource pools for + -- V2X sidelink communication +maxSL-V2X-TxPoolPreconf-r14 INTEGER ::= 8 -- Maximum number of TX resource pools for + -- V2X sidelink communication +maxSL-V2X-SyncConfig-r14 INTEGER ::= 16 -- Maximum number of sidelink Sync configurations + -- for V2X sidelink communication +maxSL-V2X-CBRConfig-r14 INTEGER ::= 4 -- Maximum number of CBR range configurations + -- for V2X sidelink communication congestion + -- control +maxSL-V2X-CBRConfig-1-r14 INTEGER ::= 3 +maxSL-V2X-TxConfig-r14 INTEGER ::= 64 -- Maximum number of TX parameter configurations + -- for V2X sidelink communication congestion + -- control +maxSL-V2X-TxConfig-1-r14 INTEGER ::= 63 +maxSL-V2X-CBRConfig2-r14 INTEGER ::= 8 -- Maximum number of CBR range configurations in + -- pre-configuration for V2X sidelink + -- communication congestion control +maxSL-V2X-CBRConfig2-1-r14 INTEGER ::= 7 +maxSL-V2X-TxConfig2-r14 INTEGER ::= 128 -- Maximum number of TX parameter + -- configurations in pre-configuration for V2X + -- sidelink communication congestion control +maxSL-V2X-TxConfig2-1-r14 INTEGER ::= 127 +maxSTAG-r11 INTEGER ::= 3 -- Maximum number of STAGs +maxServCell-r10 INTEGER ::= 5 -- Maximum number of Serving cells +maxServCell-r13 INTEGER ::= 32 -- Highest value of extended number range of Serving cells +maxServiceCount INTEGER ::= 16 -- Maximum number of MBMS services that can be included + -- in an MBMS counting request and response +maxServiceCount-1 INTEGER ::= 15 +maxSessionPerPMCH INTEGER ::= 29 +maxSessionPerPMCH-1 INTEGER ::= 28 +maxSIB INTEGER ::= 32 -- Maximum number of SIBs +maxSIB-1 INTEGER ::= 31 +maxSI-Message INTEGER ::= 32 -- Maximum number of SI messages +maxSimultaneousBands-r10 INTEGER ::= 64 -- Maximum number of simultaneously aggregated bands +maxSubframePatternIDC-r11 INTEGER ::= 8 -- Maximum number of subframe reservation patterns + -- that the UE can simultaneously recommend to the + -- E-UTRAN for use. +maxTrafficPattern-r14 INTEGER ::= 8 -- Maximum number of periodical traffic patterns + -- that the UE can simultaneously report to the + -- E-UTRAN. +maxUTRA-FDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA FDD carrier frequencies +maxUTRA-TDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA TDD carrier frequencies +maxWLAN-Id-r12 INTEGER ::= 16 -- Maximum number of WLAN identifiers +maxWLAN-Bands-r13 INTEGER ::= 8 -- Maximum number of WLAN bands +maxWLAN-Id-r13 INTEGER ::= 32 -- Maximum number of WLAN identifiers +maxWLAN-Channels-r13 INTEGER ::= 16 -- maximum number of WLAN channels used in + -- WLAN-CarrierInfo +maxWLAN-CarrierInfo-r13 INTEGER ::= 8 -- Maximum number of WLAN Carrier Information +maxWLAN-Id-Report-r14 INTEGER ::= 32 -- Maximum number of WLAN IDs to report + + +END + + +PC5-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + TDD-ConfigSL-r12 +FROM EUTRA-RRC-Definitions; + + +SBCCH-SL-BCH-Message ::= SEQUENCE { + message SBCCH-SL-BCH-MessageType +} + +SBCCH-SL-BCH-MessageType ::= MasterInformationBlock-SL + + +SBCCH-SL-BCH-Message-V2X-r14 ::= SEQUENCE { + message SBCCH-SL-BCH-MessageType-V2X-r14 +} + +SBCCH-SL-BCH-MessageType-V2X-r14 ::= MasterInformationBlock-SL-V2X-r14 + + +MasterInformationBlock-SL ::= SEQUENCE { + sl-Bandwidth-r12 ENUMERATED { + n6, n15, n25, n50, n75, n100}, + tdd-ConfigSL-r12 TDD-ConfigSL-r12, + directFrameNumber-r12 BIT STRING (SIZE (10)), + directSubframeNumber-r12 INTEGER (0..9), + inCoverage-r12 BOOLEAN, + reserved-r12 BIT STRING (SIZE (19)) +} + + + +MasterInformationBlock-SL-V2X-r14 ::= SEQUENCE { + sl-Bandwidth-r14 ENUMERATED { + n6, n15, n25, n50, n75, n100}, + tdd-ConfigSL-r14 TDD-ConfigSL-r12, + directFrameNumber-r14 BIT STRING (SIZE (10)), + directSubframeNumber-r14 INTEGER (0..9), + inCoverage-r14 BOOLEAN, + reserved-r14 BIT STRING (SIZE (27)) +} + + + +END + + +NBIOT-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + RRCConnectionReestablishmentReject, + SecurityModeCommand, + SecurityModeComplete, + SecurityModeFailure, + AdditionalSpectrumEmission, + ARFCN-ValueEUTRA-r9, + CellIdentity, + DedicatedInfoNAS, + DRB-Identity, + InitialUE-Identity, + IntraFreqBlackCellList, + IntraFreqNeighCellList, + maxBands, + maxCellBlack, + maxCellInter, + maxFBI2, + maxFreq, + maxMultiBands, + maxPageRec, + maxPLMN-r11, + maxSAI-MBMS-r11, + maxSIB, + maxSIB-1, + MBMS-SAI-r11, + MBMS-SAI-List-r11, + MBMSSessionInfo-r13, + NextHopChainingCount, + PagingUE-Identity, + PLMN-Identity, + P-Max, + PowerRampingParameters, + PreambleTransMax, + PhysCellId, + Q-OffsetRange, + Q-QualMin-r9, + Q-RxLevMin, + ReestabUE-Identity, + RegisteredMME, + ReselectionThreshold, + ResumeIdentity-r13, + RRC-TransactionIdentifier, + RSRP-Range, + ShortMAC-I, + S-TMSI, + SystemInformationBlockType16-r11, + SystemInfoValueTagSI-r13, + T-Reordering, + TimeAlignmentTimer, + TMGI-r9, + TrackingAreaCode, + DataInactivityTimer-r14 + +FROM EUTRA-RRC-Definitions; + + +BCCH-BCH-Message-NB ::= SEQUENCE { + message BCCH-BCH-MessageType-NB +} + + +BCCH-BCH-MessageType-NB::= MasterInformationBlock-NB + + + +BCCH-DL-SCH-Message-NB ::= SEQUENCE { + message BCCH-DL-SCH-MessageType-NB +} + +BCCH-DL-SCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + systemInformation-r13 SystemInformation-NB, + systemInformationBlockType1-r13 SystemInformationBlockType1-NB + }, + messageClassExtension SEQUENCE {} +} + + +PCCH-Message-NB ::= SEQUENCE { + message PCCH-MessageType-NB +} + +PCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + paging-r13 Paging-NB + }, + messageClassExtension SEQUENCE {} +} + + +DL-CCCH-Message-NB ::= SEQUENCE { + message DL-CCCH-MessageType-NB +} + +DL-CCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishment-r13 RRCConnectionReestablishment-NB, + rrcConnectionReestablishmentReject-r13 RRCConnectionReestablishmentReject, + rrcConnectionReject-r13 RRCConnectionReject-NB, + rrcConnectionSetup-r13 RRCConnectionSetup-NB, + spare4 NULL, spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +DL-DCCH-Message-NB ::= SEQUENCE { + message DL-DCCH-MessageType-NB +} + +DL-DCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + dlInformationTransfer-r13 DLInformationTransfer-NB, + rrcConnectionReconfiguration-r13 RRCConnectionReconfiguration-NB, + rrcConnectionRelease-r13 RRCConnectionRelease-NB, + securityModeCommand-r13 SecurityModeCommand, + ueCapabilityEnquiry-r13 UECapabilityEnquiry-NB, + rrcConnectionResume-r13 RRCConnectionResume-NB, + spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + + +UL-CCCH-Message-NB ::= SEQUENCE { + message UL-CCCH-MessageType-NB +} + +UL-CCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishmentRequest-r13 RRCConnectionReestablishmentRequest-NB, + rrcConnectionRequest-r13 RRCConnectionRequest-NB, + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-NB, + spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +SC-MCCH-Message-NB ::= SEQUENCE { + message SC-MCCH-MessageType-NB +} + + +SC-MCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + scptmConfiguration-r14 SCPTMConfiguration-NB-r14 + }, + messageClassExtension SEQUENCE {} +} + + +UL-DCCH-Message-NB ::= SEQUENCE { + message UL-DCCH-MessageType-NB +} + +UL-DCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + rrcConnectionReconfigurationComplete-r13 RRCConnectionReconfigurationComplete-NB, + rrcConnectionReestablishmentComplete-r13 RRCConnectionReestablishmentComplete-NB, + rrcConnectionSetupComplete-r13 RRCConnectionSetupComplete-NB, + securityModeComplete-r13 SecurityModeComplete, + securityModeFailure-r13 SecurityModeFailure, + ueCapabilityInformation-r13 UECapabilityInformation-NB, + ulInformationTransfer-r13 ULInformationTransfer-NB, + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-NB, + spare8 NULL, spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +DLInformationTransfer-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + dlInformationTransfer-r13 DLInformationTransfer-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +DLInformationTransfer-NB-r13-IEs ::= SEQUENCE { + dedicatedInfoNAS-r13 DedicatedInfoNAS, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MasterInformationBlock-NB ::= SEQUENCE { + systemFrameNumber-MSB-r13 BIT STRING (SIZE (4)), + hyperSFN-LSB-r13 BIT STRING (SIZE (2)), + schedulingInfoSIB1-r13 INTEGER (0..15), + systemInfoValueTag-r13 INTEGER (0..31), + ab-Enabled-r13 BOOLEAN, + operationModeInfo-r13 CHOICE { + inband-SamePCI-r13 Inband-SamePCI-NB-r13, + inband-DifferentPCI-r13 Inband-DifferentPCI-NB-r13, + guardband-r13 Guardband-NB-r13, + standalone-r13 Standalone-NB-r13 + }, + spare BIT STRING (SIZE (11)) +} + +ChannelRasterOffset-NB-r13 ::= ENUMERATED {khz-7dot5, khz-2dot5, khz2dot5, khz7dot5} + +Guardband-NB-r13 ::= SEQUENCE { + rasterOffset-r13 ChannelRasterOffset-NB-r13, + spare BIT STRING (SIZE (3)) +} + +Inband-SamePCI-NB-r13 ::= SEQUENCE { + eutra-CRS-SequenceInfo-r13 INTEGER (0..31) +} + +Inband-DifferentPCI-NB-r13 ::= SEQUENCE { + eutra-NumCRS-Ports-r13 ENUMERATED {same, four}, + rasterOffset-r13 ChannelRasterOffset-NB-r13, + spare BIT STRING (SIZE (2)) +} + +Standalone-NB-r13 ::= SEQUENCE { + spare BIT STRING (SIZE (5)) +} + + +Paging-NB ::= SEQUENCE { + pagingRecordList-r13 PagingRecordList-NB-r13 OPTIONAL, -- Need ON + systemInfoModification-r13 ENUMERATED {true} OPTIONAL, -- Need ON + systemInfoModification-eDRX-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PagingRecordList-NB-r13 ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord-NB-r13 + +PagingRecord-NB-r13 ::= SEQUENCE { + ue-Identity-r13 PagingUE-Identity, + ... +} + + +RRCConnectionReconfiguration-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReconfiguration-r13 RRCConnectionReconfiguration-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfiguration-NB-r13-IEs ::= SEQUENCE { + dedicatedInfoNASList-r13 SEQUENCE (SIZE(1..maxDRB-NB-r13)) OF + DedicatedInfoNAS OPTIONAL, -- Need ON + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13 OPTIONAL, -- Need ON + fullConfig-r13 ENUMERATED {true} OPTIONAL, -- Cond Reestab + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReconfigurationComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReconfigurationComplete-r13 RRCConnectionReconfigurationComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfigurationComplete-NB-r13-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + + +RRCConnectionReestablishment-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReestablishment-r13 RRCConnectionReestablishment-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishment-NB-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13, + nextHopChainingCount-r13 NextHopChainingCount, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReestablishment-NB-v1430-IEs OPTIONAL +} + +RRCConnectionReestablishment-NB-v1430-IEs ::= SEQUENCE { + dl-NAS-MAC BIT STRING (SIZE (16)) OPTIONAL, -- Cond Reestablish-CP + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReestablishmentComplete-r13 RRCConnectionReestablishmentComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentComplete-NB-r13-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-NB-v1470-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-NB-v1470-IEs ::= SEQUENCE { + measResultServCell-r14 MeasResultServCell-NB-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentRequest-NB ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentRequest-r13 + RRCConnectionReestablishmentRequest-NB-r13-IEs, + later CHOICE { + rrcConnectionReestablishmentRequest-r14 + RRCConnectionReestablishmentRequest-NB-r14-IEs, + criticalExtensionsFuture SEQUENCE {} + } + } +} + +RRCConnectionReestablishmentRequest-NB-r13-IEs ::= SEQUENCE { + ue-Identity-r13 ReestabUE-Identity, + reestablishmentCause-r13 ReestablishmentCause-NB-r13, + cqi-NPDCCH-r14 CQI-NPDCCH-NB-r14, + earlyContentionResolution-r14 BOOLEAN, + spare BIT STRING (SIZE (20)) +} + +RRCConnectionReestablishmentRequest-NB-r14-IEs ::= SEQUENCE { + ue-Identity-r14 ReestabUE-Identity-CP-NB-r14, + reestablishmentCause-r14 ReestablishmentCause-NB-r13, + cqi-NPDCCH-r14 CQI-NPDCCH-Short-NB-r14, + earlyContentionResolution-r14 BOOLEAN, + spare BIT STRING (SIZE (1)) +} + +ReestablishmentCause-NB-r13 ::= ENUMERATED { + reconfigurationFailure, otherFailure, + spare2, spare1} + +ReestabUE-Identity-CP-NB-r14 ::= SEQUENCE { + s-TMSI-r14 S-TMSI, + ul-NAS-MAC-r14 BIT STRING (SIZE (16)), + ul-NAS-Count-r14 BIT STRING (SIZE (5)) +} + + +RRCConnectionReject-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionReject-r13 RRCConnectionReject-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReject-NB-r13-IEs ::= SEQUENCE { + extendedWaitTime-r13 INTEGER (1..1800), + rrc-SuspendIndication-r13 ENUMERATED {true} OPTIONAL, -- Need ON + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionRelease-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionRelease-r13 RRCConnectionRelease-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRelease-NB-r13-IEs ::= SEQUENCE { + releaseCause-r13 ReleaseCause-NB-r13, + resumeIdentity-r13 ResumeIdentity-r13 OPTIONAL, -- Need OR + extendedWaitTime-r13 INTEGER (1..1800) OPTIONAL, -- Need ON + redirectedCarrierInfo-r13 RedirectedCarrierInfo-NB-r13 OPTIONAL, -- Need ON + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionRelease-NB-v1430-IEs OPTIONAL +} + +RRCConnectionRelease-NB-v1430-IEs ::= SEQUENCE { + redirectedCarrierInfo-v1430 RedirectedCarrierInfo-NB-v1430 OPTIONAL, -- Cond Redirection + extendedWaitTime-CPdata-r14 INTEGER (1..1800) OPTIONAL, -- Cond NoExtendedWaitTime + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +ReleaseCause-NB-r13 ::= ENUMERATED {loadBalancingTAUrequired, other, + rrc-Suspend, spare1} +RedirectedCarrierInfo-NB-r13::= CarrierFreq-NB-r13 + +RedirectedCarrierInfo-NB-v1430 ::= SEQUENCE { + redirectedCarrierOffsetDedicated-r14 ENUMERATED{ + dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24, dB26}, + t322-r14 ENUMERATED{ + min5, min10, min20, min30, min60, min120, min180, + spare1} +} + + +RRCConnectionRequest-NB ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionRequest-r13 RRCConnectionRequest-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRequest-NB-r13-IEs ::= SEQUENCE { + ue-Identity-r13 InitialUE-Identity, + establishmentCause-r13 EstablishmentCause-NB-r13, + multiToneSupport-r13 ENUMERATED {true} OPTIONAL, + multiCarrierSupport-r13 ENUMERATED {true} OPTIONAL, + cqi-NPDCCH-r14 CQI-NPDCCH-NB-r14, + earlyContentionResolution-r14 BOOLEAN, + spare BIT STRING (SIZE (17)) +} + + +RRCConnectionResume-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionResume-r13 RRCConnectionResume-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResume-NB-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13 OPTIONAL, -- Need ON + nextHopChainingCount-r13 NextHopChainingCount, + drb-ContinueROHC-r13 ENUMERATED {true} OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeComplete-NB-r13-IEs ::= SEQUENCE { + selectedPLMN-Identity-r13 INTEGER (1..maxPLMN-r11) OPTIONAL, + dedicatedInfoNAS-r13 DedicatedInfoNAS OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionResumeComplete-NB-v1470-IEs OPTIONAL +} + +RRCConnectionResumeComplete-NB-v1470-IEs ::= SEQUENCE { + measResultServCell-r14 MeasResultServCell-NB-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeRequest-NB ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeRequest-NB-r13-IEs ::= SEQUENCE { + resumeID-r13 ResumeIdentity-r13, + shortResumeMAC-I-r13 ShortMAC-I, + resumeCause-r13 EstablishmentCause-NB-r13, + cqi-NPDCCH-r14 CQI-NPDCCH-NB-r14, + earlyContentionResolution-r14 BOOLEAN, + spare BIT STRING (SIZE (4)) +} + + +RRCConnectionSetup-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionSetup-r13 RRCConnectionSetup-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetup-NB-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionSetupComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE{ + rrcConnectionSetupComplete-r13 RRCConnectionSetupComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetupComplete-NB-r13-IEs ::= SEQUENCE { + selectedPLMN-Identity-r13 INTEGER (1..maxPLMN-r11), + s-TMSI-r13 S-TMSI OPTIONAL, + registeredMME-r13 RegisteredMME OPTIONAL, + dedicatedInfoNAS-r13 DedicatedInfoNAS, + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL, + up-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-NB-v1430-IEs OPTIONAL +} + +RRCConnectionSetupComplete-NB-v1430-IEs ::= SEQUENCE { + gummei-Type-r14 ENUMERATED { mapped} OPTIONAL, + dcn-ID-r14 INTEGER (0..65535) OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-NB-v1470-IEs OPTIONAL +} + +RRCConnectionSetupComplete-NB-v1470-IEs ::= SEQUENCE { + measResultServCell-r14 MeasResultServCell-NB-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCPTMConfiguration-NB-r14 ::= SEQUENCE { + sc-mtch-InfoList-r14 SC-MTCH-InfoList-NB-r14, + scptm-NeighbourCellList-r14 SCPTM-NeighbourCellList-NB-r14 OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + systemInformation-r13 SystemInformation-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} +SystemInformation-NB-r13-IEs ::= SEQUENCE { + sib-TypeAndInfo-r13 SEQUENCE (SIZE (1..maxSIB)) OF CHOICE { + sib2-r13 SystemInformationBlockType2-NB-r13, + sib3-r13 SystemInformationBlockType3-NB-r13, + sib4-r13 SystemInformationBlockType4-NB-r13, + sib5-r13 SystemInformationBlockType5-NB-r13, + sib14-r13 SystemInformationBlockType14-NB-r13, + sib16-r13 SystemInformationBlockType16-NB-r13, + ..., + sib15-v1430 SystemInformationBlockType15-NB-r14, + sib20-v1430 SystemInformationBlockType20-NB-r14, + sib22-v1430 SystemInformationBlockType22-NB-r14 + }, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType1-NB ::= SEQUENCE { + hyperSFN-MSB-r13 BIT STRING (SIZE (8)), + cellAccessRelatedInfo-r13 SEQUENCE { + plmn-IdentityList-r13 PLMN-IdentityList-NB-r13, + trackingAreaCode-r13 TrackingAreaCode, + cellIdentity-r13 CellIdentity, + cellBarred-r13 ENUMERATED {barred, notBarred}, + intraFreqReselection-r13 ENUMERATED {allowed, notAllowed} + }, + cellSelectionInfo-r13 SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + q-QualMin-r13 Q-QualMin-r9 + }, + p-Max-r13 P-Max OPTIONAL, -- Need OP + freqBandIndicator-r13 FreqBandIndicator-NB-r13, + freqBandInfo-r13 NS-PmaxList-NB-r13 OPTIONAL, -- Need OR + multiBandInfoList-r13 MultiBandInfoList-NB-r13 OPTIONAL, -- Need OR + downlinkBitmap-r13 DL-Bitmap-NB-r13 OPTIONAL, -- Need OP, + eutraControlRegionSize-r13 ENUMERATED {n1, n2, n3} OPTIONAL, -- Cond inband + nrs-CRS-PowerOffset-r13 ENUMERATED {dB-6, dB-4dot77, dB-3, + dB-1dot77, dB0, dB1, + dB1dot23, dB2, dB3, + dB4, dB4dot23, dB5, + dB6, dB7, dB8, + dB9} OPTIONAL, -- Cond inband-SamePCI + schedulingInfoList-r13 SchedulingInfoList-NB-r13, + si-WindowLength-r13 ENUMERATED {ms160, ms320, ms480, ms640, + ms960, ms1280, ms1600, spare1}, + si-RadioFrameOffset-r13 INTEGER (1..15) OPTIONAL, -- Need OP + systemInfoValueTagList-r13 SystemInfoValueTagList-NB-r13 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SystemInformationBlockType1-NB-v1350 OPTIONAL +} + +SystemInformationBlockType1-NB-v1350 ::= SEQUENCE { + cellSelectionInfo-v1350 CellSelectionInfo-NB-v1350 OPTIONAL, -- Cond Qrxlevmin + nonCriticalExtension SystemInformationBlockType1-NB-v1430 OPTIONAL +} + +SystemInformationBlockType1-NB-v1430 ::= SEQUENCE { + cellSelectionInfo-v1430 CellSelectionInfo-NB-v1430 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-NB-v1450 OPTIONAL +} + +SystemInformationBlockType1-NB-v1450 ::= SEQUENCE { + nrs-CRS-PowerOffset-v1450 ENUMERATED {dB-6, dB-4dot77, dB-3, + dB-1dot77, dB0, dB1, + dB1dot23, dB2, dB3, + dB4, dB4dot23, dB5, + dB6, dB7, dB8, + dB9} OPTIONAL, -- Cond inband-SamePCI-ExceptAnchor + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PLMN-IdentityList-NB-r13 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo-NB-r13 + +PLMN-IdentityInfo-NB-r13 ::= SEQUENCE { + plmn-Identity-r13 PLMN-Identity, + cellReservedForOperatorUse-r13 ENUMERATED {reserved, notReserved}, + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL -- Need OP +} + +SchedulingInfoList-NB-r13 ::= SEQUENCE (SIZE (1..maxSI-Message-NB-r13)) OF SchedulingInfo-NB-r13 + +SchedulingInfo-NB-r13::= SEQUENCE { + si-Periodicity-r13 ENUMERATED {rf64, rf128, rf256, rf512, + rf1024, rf2048, rf4096, spare}, + si-RepetitionPattern-r13 ENUMERATED {every2ndRF, every4thRF, every8thRF, every16thRF}, + sib-MappingInfo-r13 SIB-MappingInfo-NB-r13, + si-TB-r13 ENUMERATED {b56, b120, b208, b256, b328, b440, b552, b680} +} + +SystemInfoValueTagList-NB-r13 ::= SEQUENCE (SIZE (1.. maxSI-Message-NB-r13)) OF + SystemInfoValueTagSI-r13 + +SIB-MappingInfo-NB-r13 ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type-NB-r13 + +SIB-Type-NB-r13 ::= ENUMERATED { + sibType3-NB-r13, sibType4-NB-r13, sibType5-NB-r13, + sibType14-NB-r13, sibType16-NB-r13, sibType15-NB-r14, + sibType20-NB-r14, sibType22-NB-r14} + +CellSelectionInfo-NB-v1350 ::= SEQUENCE { + delta-RxLevMin-v1350 INTEGER (-8..-1) +} + +CellSelectionInfo-NB-v1430 ::= SEQUENCE { + powerClass14dBm-Offset-r14 ENUMERATED {dB-6, dB-3, dB3, dB6, dB9, dB12} OPTIONAL, -- Need OP + ce-authorisationOffset-r14 ENUMERATED {dB5, dB10, dB15, dB20, dB25, dB30, dB35} OPTIONAL -- Need OP +} + + +UECapabilityEnquiry-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueCapabilityEnquiry-r13 UECapabilityEnquiry-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityEnquiry-NB-r13-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UECapabilityInformation-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE{ + ueCapabilityInformation-r13 UECapabilityInformation-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityInformation-NB-r13-IEs ::= SEQUENCE { + ue-Capability-r13 UE-Capability-NB-r13, + ue-RadioPagingInfo-r13 UE-RadioPagingInfo-NB-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UECapabilityInformation-NB-Ext-r14-IEs OPTIONAL +} + +UECapabilityInformation-NB-Ext-r14-IEs ::= SEQUENCE { + ue-Capability-ContainerExt-r14 OCTET STRING (CONTAINING UE-Capability-NB-Ext-r14-IEs), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +ULInformationTransfer-NB ::= SEQUENCE { + criticalExtensions CHOICE { + ulInformationTransfer-r13 ULInformationTransfer-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULInformationTransfer-NB-r13-IEs ::= SEQUENCE { + dedicatedInfoNAS-r13 DedicatedInfoNAS, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType2-NB-r13 ::= SEQUENCE { + radioResourceConfigCommon-r13 RadioResourceConfigCommonSIB-NB-r13, + ue-TimersAndConstants-r13 UE-TimersAndConstants-NB-r13, + freqInfo-r13 SEQUENCE { + ul-CarrierFreq-r13 CarrierFreq-NB-r13 OPTIONAL, -- Need OP + additionalSpectrumEmission-r13 AdditionalSpectrumEmission + }, + timeAlignmentTimerCommon-r13 TimeAlignmentTimer, + multiBandInfoList-r13 SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ cp-Reestablishment-r14 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ cqi-Reporting-r14 ENUMERATED {true} OPTIONAL, -- Need OR + servingCellMeasInfo-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + + +SystemInformationBlockType3-NB-r13 ::= SEQUENCE { + cellReselectionInfoCommon-r13 SEQUENCE { + q-Hyst-r13 ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24 + } + }, + cellReselectionServingFreqInfo-r13 SEQUENCE { + s-NonIntraSearch-r13 ReselectionThreshold + }, + intraFreqCellReselectionInfo-r13 SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + q-QualMin-r13 Q-QualMin-r9 OPTIONAL, -- Need OP + p-Max-r13 P-Max OPTIONAL, -- Need OP + s-IntraSearchP-r13 ReselectionThreshold, + t-Reselection-r13 T-Reselection-NB-r13 + }, + freqBandInfo-r13 NS-PmaxList-NB-r13 OPTIONAL, -- Need OR + multiBandInfoList-r13 SEQUENCE (SIZE (1..maxMultiBands)) OF + NS-PmaxList-NB-r13 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ intraFreqCellReselectionInfo-v1350 IntraFreqCellReselectionInfo-NB-v1350 OPTIONAL -- Cond Qrxlevmin + ]], + [[ intraFreqCellReselectionInfo-v1360 IntraFreqCellReselectionInfo-NB-v1360 OPTIONAL -- Need OR + ]], + [[ intraFreqCellReselectionInfo-v1430 IntraFreqCellReselectionInfo-NB-v1430 OPTIONAL -- Need OR + ]], + [[ cellReselectionInfoCommon-v1450 CellReselectionInfoCommon-NB-v1450 OPTIONAL -- Need OR + ]] +} + +IntraFreqCellReselectionInfo-NB-v1350 ::= SEQUENCE { + delta-RxLevMin-v1350 INTEGER (-8..-1) +} + +IntraFreqCellReselectionInfo-NB-v1360 ::= SEQUENCE { + s-IntraSearchP-v1360 ReselectionThreshold-NB-v1360 +} + +IntraFreqCellReselectionInfo-NB-v1430 ::= SEQUENCE { + powerClass14dBm-Offset-r14 ENUMERATED {dB-6, dB-3, dB3, dB6, dB9, dB12} OPTIONAL, -- Need OP + ce-AuthorisationOffset-r14 ENUMERATED {dB5, dB10, dB15, dB20, dB25, dB30, dB35} OPTIONAL -- Need OP +} + +CellReselectionInfoCommon-NB-v1450 ::= SEQUENCE { + s-SearchDeltaP-r14 ENUMERATED {dB6, dB9, dB12, dB15} +} + + +SystemInformationBlockType4-NB-r13 ::= SEQUENCE { + intraFreqNeighCellList-r13 IntraFreqNeighCellList OPTIONAL, -- Need OR + intraFreqBlackCellList-r13 IntraFreqBlackCellList OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + + +SystemInformationBlockType5-NB-r13 ::= SEQUENCE { + interFreqCarrierFreqList-r13 InterFreqCarrierFreqList-NB-r13, + t-Reselection-r13 T-Reselection-NB-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ scptm-FreqOffset-r14 INTEGER (1..8) OPTIONAL -- Need OP + ]] +} + + +InterFreqCarrierFreqList-NB-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-NB-r13 + + +InterFreqCarrierFreqInfo-NB-r13 ::= SEQUENCE { + dl-CarrierFreq-r13 CarrierFreq-NB-r13, + q-RxLevMin-r13 Q-RxLevMin, + q-QualMin-r13 Q-QualMin-r9 OPTIONAL, -- Need OP + p-Max-r13 P-Max OPTIONAL, -- Need OP + q-OffsetFreq-r13 Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList-r13 InterFreqNeighCellList-NB-r13 OPTIONAL, -- Need OR + interFreqBlackCellList-r13 InterFreqBlackCellList-NB-r13 OPTIONAL, -- Need OR + multiBandInfoList-r13 MultiBandInfoList-NB-r13 OPTIONAL, -- Need OR + ..., + [[ delta-RxLevMin-v1350 INTEGER (-8..-1) OPTIONAL -- Cond Qrxlevmin + ]], + [[ powerClass14dBm-Offset-r14 ENUMERATED {dB-6, dB-3, dB3, dB6, dB9, dB12} +OPTIONAL, -- Need OP + ce-AuthorisationOffset-r14 ENUMERATED {dB5, dB10, dB15, dB20, dB25, dB30, dB35} OPTIONAL -- Need OP + ]] +} + +InterFreqNeighCellList-NB-r13 ::= SEQUENCE (SIZE (1..maxCellInter)) OF PhysCellId + + +InterFreqBlackCellList-NB-r13 ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellId + + + +SystemInformationBlockType14-NB-r13 ::= SEQUENCE { + ab-Param-r13 CHOICE { + ab-Common-r13 AB-Config-NB-r13, + ab-PerPLMN-List-r13 SEQUENCE (SIZE (1..maxPLMN-r11)) OF AB-ConfigPLMN-NB-r13 + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +AB-ConfigPLMN-NB-r13 ::= SEQUENCE { + ab-Config-r13 AB-Config-NB-r13 OPTIONAL -- Need OR +} + +AB-Config-NB-r13 ::= SEQUENCE { + ab-Category-r13 ENUMERATED {a, b, c}, + ab-BarringBitmap-r13 BIT STRING (SIZE(10)), + ab-BarringForExceptionData-r13 ENUMERATED {true} OPTIONAL, -- Need OP + ab-BarringForSpecialAC-r13 BIT STRING (SIZE(5)) +} + + +SystemInformationBlockType15-NB-r14 ::= SEQUENCE { + mbms-SAI-IntraFreq-r14 MBMS-SAI-List-r11 OPTIONAL, -- Need OR + mbms-SAI-InterFreqList-r14 MBMS-SAI-InterFreqList-NB-r14 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +MBMS-SAI-InterFreqList-NB-r14 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-NB-r14 + +MBMS-SAI-InterFreq-NB-r14 ::= SEQUENCE { + dl-CarrierFreq-r14 CarrierFreq-NB-r13, + mbms-SAI-List-r14 MBMS-SAI-List-r11, + multiBandInfoList-r14 AdditionalBandInfoList-NB-r14 OPTIONAL -- Need OR +} + + +SystemInformationBlockType16-NB-r13 ::= SystemInformationBlockType16-r11 + + +SystemInformationBlockType20-NB-r14 ::= SEQUENCE { + npdcch-SC-MCCH-Config-r14 NPDCCH-SC-MCCH-Config-NB-r14, + sc-mcch-CarrierConfig-r14 CHOICE { + dl-CarrierConfig-r14 DL-CarrierConfigCommon-NB-r14, + dl-CarrierIndex-r14 INTEGER (0.. maxNonAnchorCarriers-NB-r14) + }, + sc-mcch-RepetitionPeriod-r14 ENUMERATED {rf32, rf128, rf512, rf1024, + rf2048, rf4096, rf8192, rf16384}, + sc-mcch-Offset-r14 INTEGER (0..10), + sc-mcch-ModificationPeriod-r14 ENUMERATED { rf32, rf128, rf256, rf512, rf1024, + rf2048, rf4096, rf8192, rf16384, rf32768, + rf65536, rf131072, rf262144, rf524288, + rf1048576, spare1}, + sc-mcch-SchedulingInfo-r14 SC-MCCH-SchedulingInfo-NB-r14 OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +NPDCCH-SC-MCCH-Config-NB-r14 ::= SEQUENCE { + npdcch-NumRepetitions-SC-MCCH-r14 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256, + r512, r1024, r2048}, + npdcch-StartSF-SC-MCCH-r14 ENUMERATED {v1dot5, v2, v4, v8, + v16, v32, v48, v64}, + npdcch-Offset-SC-MCCH-r14 ENUMERATED {zero, oneEighth, oneQuarter, + threeEighth, oneHalf, fiveEighth, + threeQuarter, sevenEighth} +} + +SC-MCCH-SchedulingInfo-NB-r14::= SEQUENCE { + onDurationTimerSCPTM-r14 ENUMERATED { + pp1, pp2, pp3, pp4, + pp8, pp16, pp32, spare}, + drx-InactivityTimerSCPTM-r14 ENUMERATED { + pp0, pp1, pp2, pp3, + pp4, pp8, pp16, pp32}, + schedulingPeriodStartOffsetSCPTM-r14 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2047), + sf4096 INTEGER(0..4095), + sf8192 INTEGER(0..8191) + }, + ... +} + + +SystemInformationBlockType22-NB-r14 ::= SEQUENCE { + dl-ConfigList-r14 DL-ConfigCommonList-NB-r14 OPTIONAL, -- Need OR + ul-ConfigList-r14 UL-ConfigCommonList-NB-r14 OPTIONAL, -- Need OR + pagingWeightAnchor-r14 PagingWeight-NB-r14 OPTIONAL, -- Cond pcch-config + nprach-ProbabilityAnchorList-r14 NPRACH-ProbabilityAnchorList-NB-r14 OPTIONAL, -- Cond nprach-config + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +DL-ConfigCommonList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNonAnchorCarriers-NB-r14)) OF + DL-ConfigCommon-NB-r14 + +UL-ConfigCommonList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNonAnchorCarriers-NB-r14)) OF + UL-ConfigCommon-NB-r14 + + +DL-ConfigCommon-NB-r14 ::= SEQUENCE { + dl-CarrierConfig-r14 DL-CarrierConfigCommon-NB-r14, + pcch-Config-r14 PCCH-Config-NB-r14 OPTIONAL, -- Need OR + ... +} + +PCCH-Config-NB-r14 ::= SEQUENCE { + npdcch-NumRepetitionPaging-r14 ENUMERATED { + r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1} OPTIONAL, -- Need OP + pagingWeight-r14 PagingWeight-NB-r14 DEFAULT w1, + ... +} + +PagingWeight-NB-r14 ::= ENUMERATED {w1, w2, w3, w4, w5, w6, w7, w8, + w9, w10, w11, w12, w13, w14, w15, w16} + +UL-ConfigCommon-NB-r14 ::= SEQUENCE { + ul-CarrierFreq-r14 CarrierFreq-NB-r13, + nprach-ParametersList-r14 NPRACH-ParametersList-NB-r14 OPTIONAL, -- Need OR + ... +} + +NPRACH-ParametersList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF + NPRACH-Parameters-NB-r14 + + +NPRACH-Parameters-NB-r14 ::= SEQUENCE { + nprach-Parameters-r14 SEQUENCE { + nprach-Periodicity-r14 ENUMERATED {ms40, ms80, ms160, ms240, + ms320, ms640, ms1280, ms2560} + OPTIONAL, -- NEED OP + nprach-StartTime-r14 ENUMERATED {ms8, ms16, ms32, ms64, + ms128, ms256, ms512, ms1024} + OPTIONAL, -- NEED OP + nprach-SubcarrierOffset-r14 ENUMERATED {n0, n12, n24, n36, n2, n18, n34, spare1} + OPTIONAL, -- NEED OP + nprach-NumSubcarriers-r14 ENUMERATED {n12, n24, n36, n48} + OPTIONAL, -- NEED OP + nprach-SubcarrierMSG3-RangeStart-r14 ENUMERATED {zero, oneThird, twoThird, one} + OPTIONAL, -- NEED OP + npdcch-NumRepetitions-RA-r14 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1} + OPTIONAL, -- NEED OP + npdcch-StartSF-CSS-RA-r14 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64} + OPTIONAL, -- NEED OP + npdcch-Offset-RA-r14 ENUMERATED {zero, oneEighth, oneFourth, threeEighth} + OPTIONAL, -- NEED OP + nprach-NumCBRA-StartSubcarriers-r14 ENUMERATED {n8, n10, n11, n12, n20, n22, n23, n24, + n32, n34, n35, n36, n40, n44, n46, n48} + OPTIONAL, -- NEED OP + npdcch-CarrierIndex-r14 INTEGER (1..maxNonAnchorCarriers-NB-r14) + OPTIONAL, -- Need OP + ... + } OPTIONAL -- Need OR +} + +NPRACH-ProbabilityAnchorList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF + NPRACH-ProbabilityAnchor-NB-r14 + +NPRACH-ProbabilityAnchor-NB-r14 ::= SEQUENCE { + nprach-ProbabilityAnchor-r14 ENUMERATED { + zero, oneSixteenth, oneFifteenth, oneFourteenth, + oneThirteenth, oneTwelfth, oneEleventh, oneTenth, + oneNinth, oneEighth, oneSeventh, oneSixth, + oneFifth, oneFourth, oneThird, oneHalf} + OPTIONAL -- Need OP +} + + +CarrierConfigDedicated-NB-r13 ::= SEQUENCE { + dl-CarrierConfig-r13 DL-CarrierConfigDedicated-NB-r13, + ul-CarrierConfig-r13 UL-CarrierConfigDedicated-NB-r13 +} + +DL-CarrierConfigDedicated-NB-r13 ::= SEQUENCE { + dl-CarrierFreq-r13 CarrierFreq-NB-r13, + downlinkBitmapNonAnchor-r13 CHOICE { + useNoBitmap-r13 NULL, + useAnchorBitmap-r13 NULL, + explicitBitmapConfiguration-r13 DL-Bitmap-NB-r13, + spare NULL + } OPTIONAL, -- Need ON + dl-GapNonAnchor-r13 CHOICE { + useNoGap-r13 NULL, + useAnchorGapConfig-r13 NULL, + explicitGapConfiguration-r13 DL-GapConfig-NB-r13, + spare NULL + } OPTIONAL, -- Need ON + inbandCarrierInfo-r13 SEQUENCE { + samePCI-Indicator-r13 CHOICE { + samePCI-r13 SEQUENCE { + indexToMidPRB-r13 INTEGER (-55..54) + }, + differentPCI-r13 SEQUENCE { + eutra-NumCRS-Ports-r13 ENUMERATED {same, four} + } + } OPTIONAL, -- Cond anchor-guardband + eutraControlRegionSize-r13 ENUMERATED {n1, n2, n3} + } OPTIONAL, -- Cond non-anchor-inband + ..., + [[ nrs-PowerOffsetNonAnchor-v1330 ENUMERATED {dB-12, dB-10, dB-8, dB-6, + dB-4, dB-2, dB0, dB3} + OPTIONAL -- Need ON + ]] +} + +UL-CarrierConfigDedicated-NB-r13 ::= SEQUENCE { + ul-CarrierFreq-r13 CarrierFreq-NB-r13 OPTIONAL, -- Need OP + ... +} + + +CarrierFreq-NB-r13 ::= SEQUENCE { + carrierFreq-r13 ARFCN-ValueEUTRA-r9, + carrierFreqOffset-r13 ENUMERATED { + v-10, v-9, v-8, v-7, v-6, v-5, v-4, v-3, v-2, v-1, v-0dot5, + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9 + } OPTIONAL -- Need ON +} + + +DL-Bitmap-NB-r13 ::= CHOICE { + subframePattern10-r13 BIT STRING (SIZE (10)), + subframePattern40-r13 BIT STRING (SIZE (40)) +} + + +DL-CarrierConfigCommon-NB-r14 ::= SEQUENCE { + dl-CarrierFreq-r14 CarrierFreq-NB-r13, + downlinkBitmapNonAnchor-r14 CHOICE { + useNoBitmap-r14 NULL, + useAnchorBitmap-r14 NULL, + explicitBitmapConfiguration-r14 DL-Bitmap-NB-r13 + }, + dl-GapNonAnchor-r14 CHOICE { + useNoGap-r14 NULL, + useAnchorGapConfig-r14 NULL, + explicitGapConfiguration-r14 DL-GapConfig-NB-r13 + }, + inbandCarrierInfo-r14 SEQUENCE { + samePCI-Indicator-r14 CHOICE { + samePCI-r14 SEQUENCE { + indexToMidPRB-r14 INTEGER (-55..54) + }, + differentPCI-r14 SEQUENCE { + eutra-NumCRS-Ports-r14 ENUMERATED {same, four} + } + } OPTIONAL, -- Cond anchor-guardband + eutraControlRegionSize-r14 ENUMERATED {n1, n2, n3} + } OPTIONAL, -- Cond non-anchor-inband + nrs-PowerOffsetNonAnchor-r14 ENUMERATED {dB-12, dB-10, dB-8, dB-6, + dB-4, dB-2, dB0, dB3} DEFAULT dB0, + ... +} + + + +DL-GapConfig-NB-r13 ::= SEQUENCE { + dl-GapThreshold-r13 ENUMERATED {n32, n64, n128, n256}, + dl-GapPeriodicity-r13 ENUMERATED {sf64, sf128, sf256, sf512}, + dl-GapDurationCoeff-r13 ENUMERATED {oneEighth, oneFourth, threeEighth, oneHalf} +} + + +LogicalChannelConfig-NB-r13 ::= SEQUENCE { + priority-r13 INTEGER (1..16) OPTIONAL, -- Cond UL + logicalChannelSR-Prohibit-r13 BOOLEAN OPTIONAL, -- Need ON + ... +} + + +MAC-MainConfig-NB-r13 ::= SEQUENCE { + ul-SCH-Config-r13 SEQUENCE { + periodicBSR-Timer-r13 PeriodicBSR-Timer-NB-r13 OPTIONAL, -- Need ON + retxBSR-Timer-r13 RetxBSR-Timer-NB-r13 + } OPTIONAL, -- Need ON + drx-Config-r13 DRX-Config-NB-r13 OPTIONAL, -- Need ON + timeAlignmentTimerDedicated-r13 TimeAlignmentTimer, + logicalChannelSR-Config-r13 CHOICE { + release NULL, + setup SEQUENCE { + logicalChannelSR-ProhibitTimer-r13 ENUMERATED { + pp2, pp8, pp32, pp128, pp512, + pp1024, pp2048, spare} + } + } OPTIONAL, -- Need ON + ..., + [[ rai-Activation-r14 ENUMERATED {true} OPTIONAL, -- Need OR + dataInactivityTimerConfig-r14 CHOICE { + release NULL, + setup SEQUENCE { + dataInactivityTimer-r14 DataInactivityTimer-r14 + } + } OPTIONAL -- Need ON + ]], + [[ drx-Cycle-v1430 ENUMERATED { + sf1280, sf2560, sf5120, sf10240} OPTIONAL -- Need ON + ]], + [[ ra-CFRA-Config-r14 ENUMERATED {true} OPTIONAL -- Need ON + ]] +} + +PeriodicBSR-Timer-NB-r13 ::= ENUMERATED { + pp2, pp4, pp8, pp16, pp64, pp128, infinity, spare} + +RetxBSR-Timer-NB-r13 ::= ENUMERATED { + pp4, pp16, pp64, pp128, pp256, pp512, infinity, spare} + +DRX-Config-NB-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + onDurationTimer-r13 ENUMERATED { + pp1, pp2, pp3, pp4, pp8, pp16, pp32, spare}, + drx-InactivityTimer-r13 ENUMERATED { + pp0, pp1, pp2, pp3, pp4, pp8, pp16, pp32}, + drx-RetransmissionTimer-r13 ENUMERATED { + pp0, pp1, pp2, pp4, pp6, pp8, pp16, pp24, + pp33, spare7, spare6, spare5, + spare4, spare3, spare2, spare1}, + drx-Cycle-r13 ENUMERATED { + sf256, sf512, sf1024, sf1536, sf2048, sf3072, + sf4096, sf4608, sf6144, sf7680, sf8192, sf9216, + spare4, spare3, spare2, spare1}, + drx-StartOffset-r13 INTEGER (0..255), + drx-ULRetransmissionTimer-r13 ENUMERATED { + pp0, pp1, pp2, pp4, pp6, pp8, pp16, pp24, + pp33, pp40, pp64, pp80, pp96, + pp112, pp128, pp160, pp320} + } +} + + + +NPDCCH-ConfigDedicated-NB-r13 ::= SEQUENCE { + npdcch-NumRepetitions-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1}, + npdcch-StartSF-USS-r13 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64}, + npdcch-Offset-USS-r13 ENUMERATED {zero, oneEighth, oneFourth, threeEighth} +} + + + +NPDSCH-ConfigCommon-NB-r13 ::= SEQUENCE { + nrs-Power-r13 INTEGER (-60..50) +} + + +NPRACH-ConfigSIB-NB-r13 ::= SEQUENCE { + nprach-CP-Length-r13 ENUMERATED {us66dot7, us266dot7}, + rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsNPRACH-InfoList-NB-r13 OPTIONAL, -- need OR + nprach-ParametersList-r13 NPRACH-ParametersList-NB-r13 +} + +NPRACH-ConfigSIB-NB-v1330 ::= SEQUENCE { + nprach-ParametersList-v1330 NPRACH-ParametersList-NB-v1330 +} + +NPRACH-ConfigSIB-NB-v1450 ::= SEQUENCE { + maxNumPreambleAttemptCE-r14 ENUMERATED {n3, n4, n5, n6, n7, n8, n10, spare1} +} + +NPRACH-ParametersList-NB-r13 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF NPRACH-Parameters-NB-r13 + +NPRACH-ParametersList-NB-v1330 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF NPRACH-Parameters-NB-v1330 + +NPRACH-Parameters-NB-r13::= SEQUENCE { + nprach-Periodicity-r13 ENUMERATED {ms40, ms80, ms160, ms240, + ms320, ms640, ms1280, ms2560}, + nprach-StartTime-r13 ENUMERATED {ms8, ms16, ms32, ms64, + ms128, ms256, ms512, ms1024}, + nprach-SubcarrierOffset-r13 ENUMERATED {n0, n12, n24, n36, n2, n18, n34, spare1}, + nprach-NumSubcarriers-r13 ENUMERATED {n12, n24, n36, n48}, + nprach-SubcarrierMSG3-RangeStart-r13 ENUMERATED {zero, oneThird, twoThird, one}, + maxNumPreambleAttemptCE-r13 ENUMERATED {n3, n4, n5, n6, n7, n8, n10, spare1}, + numRepetitionsPerPreambleAttempt-r13 ENUMERATED {n1, n2, n4, n8, n16, n32, n64, n128}, + npdcch-NumRepetitions-RA-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1}, + npdcch-StartSF-CSS-RA-r13 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64}, + npdcch-Offset-RA-r13 ENUMERATED {zero, oneEighth, oneFourth, threeEighth} +} + +NPRACH-Parameters-NB-v1330 ::= SEQUENCE { + nprach-NumCBRA-StartSubcarriers-r13 ENUMERATED {n8, n10, n11, n12, n20, n22, n23, n24, + n32, n34, n35, n36, n40, n44, n46, n48} +} + +RSRP-ThresholdsNPRACH-InfoList-NB-r13 ::= SEQUENCE (SIZE(1..2)) OF RSRP-Range + + +NPUSCH-ConfigCommon-NB-r13 ::= SEQUENCE { + ack-NACK-NumRepetitions-Msg4-r13 SEQUENCE (SIZE(1.. maxNPRACH-Resources-NB-r13)) OF + ACK-NACK-NumRepetitions-NB-r13, + srs-SubframeConfig-r13 ENUMERATED { + sc0, sc1, sc2, sc3, sc4, sc5, sc6, sc7, + sc8, sc9, sc10, sc11, sc12, sc13, sc14, sc15 + } OPTIONAL, -- Need OR + dmrs-Config-r13 SEQUENCE { + threeTone-BaseSequence-r13 INTEGER (0..12) OPTIONAL, -- Need OP + threeTone-CyclicShift-r13 INTEGER (0..2), + sixTone-BaseSequence-r13 INTEGER (0..14) OPTIONAL, -- Need OP + sixTone-CyclicShift-r13 INTEGER (0..3), + twelveTone-BaseSequence-r13 INTEGER (0..30) OPTIONAL -- Need OP + } OPTIONAL, -- Need OR + ul-ReferenceSignalsNPUSCH-r13 UL-ReferenceSignalsNPUSCH-NB-r13 +} + +UL-ReferenceSignalsNPUSCH-NB-r13 ::= SEQUENCE { + groupHoppingEnabled-r13 BOOLEAN, + groupAssignmentNPUSCH-r13 INTEGER (0..29) +} + +NPUSCH-ConfigDedicated-NB-r13 ::= SEQUENCE { + ack-NACK-NumRepetitions-r13 ACK-NACK-NumRepetitions-NB-r13 OPTIONAL, -- Need ON + npusch-AllSymbols-r13 BOOLEAN OPTIONAL, -- Cond SRS + groupHoppingDisabled-r13 ENUMERATED {true} OPTIONAL -- Need OR +} + +ACK-NACK-NumRepetitions-NB-r13 ::= ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128} + + + +PDCP-Config-NB-r13 ::= SEQUENCE { + discardTimer-r13 ENUMERATED { + ms5120, ms10240, ms20480, ms40960, + ms81920, infinity, spare2, spare1 + } OPTIONAL, -- Cond Setup + headerCompression-r13 CHOICE { + notUsed NULL, + rohc SEQUENCE { + maxCID-r13 INTEGER (1..16383) DEFAULT 15, + profiles-r13 SEQUENCE { + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + ... + } + }, + ... +} + + +PhysicalConfigDedicated-NB-r13 ::= SEQUENCE { + carrierConfigDedicated-r13 CarrierConfigDedicated-NB-r13 OPTIONAL, -- Need ON + npdcch-ConfigDedicated-r13 NPDCCH-ConfigDedicated-NB-r13 OPTIONAL, -- Need ON + npusch-ConfigDedicated-r13 NPUSCH-ConfigDedicated-NB-r13 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-r13 UplinkPowerControlDedicated-NB-r13 OPTIONAL, -- Need ON + ..., + [[ twoHARQ-ProcessesConfig-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ interferenceRandomisationConfig-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + + +RACH-ConfigCommon-NB-r13 ::= SEQUENCE { + preambleTransMax-CE-r13 PreambleTransMax, + powerRampingParameters-r13 PowerRampingParameters, + rach-InfoList-r13 RACH-InfoList-NB-r13, + connEstFailOffset-r13 INTEGER (0..15) OPTIONAL, -- Need OP + ..., + [[ powerRampingParameters-v1450 PowerRampingParameters-NB-v1450 OPTIONAL -- Need OR + ]] +} + +RACH-InfoList-NB-r13 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF RACH-Info-NB-r13 + +RACH-Info-NB-r13 ::= SEQUENCE { + ra-ResponseWindowSize-r13 ENUMERATED { + pp2, pp3, pp4, pp5, pp6, pp7, pp8, pp10}, + mac-ContentionResolutionTimer-r13 ENUMERATED { + pp1, pp2, pp3, pp4, pp8, pp16, pp32, pp64} +} + +PowerRampingParameters-NB-v1450 ::= SEQUENCE { + preambleInitialReceivedTargetPower-v1450 ENUMERATED { + dBm-130, dBm-128, dBm-126, dBm-124, dBm-122, + dBm-88, dBm-86, dBm-84,dBm-82, dBm-80} + OPTIONAL, -- Need OR + powerRampingParametersCE1-r14 SEQUENCE { + powerRampingStepCE1-r14 ENUMERATED {dB0, dB2, dB4, dB6}, + preambleInitialReceivedTargetPowerCE1-r14 ENUMERATED { + dBm-130, dBm-128, dBm-126, dBm-124, dBm-122, + dBm-120, dBm-118, dBm-116, dBm-114, dBm-112, + dBm-110, dBm-108, dBm-106, dBm-104, dBm-102, + dBm-100, dBm-98, dBm-96, dBm-94, dBm-92, + dBm-90, dBm-88, dBm-86, dBm-84, dBm-82, dBm-80} + } OPTIONAL -- Need OR +} + + +RadioResourceConfigCommonSIB-NB-r13 ::= SEQUENCE { + rach-ConfigCommon-r13 RACH-ConfigCommon-NB-r13, + bcch-Config-r13 BCCH-Config-NB-r13, + pcch-Config-r13 PCCH-Config-NB-r13, + nprach-Config-r13 NPRACH-ConfigSIB-NB-r13, + npdsch-ConfigCommon-r13 NPDSCH-ConfigCommon-NB-r13, + npusch-ConfigCommon-r13 NPUSCH-ConfigCommon-NB-r13, + dl-Gap-r13 DL-GapConfig-NB-r13 OPTIONAL, -- Need OP + uplinkPowerControlCommon-r13 UplinkPowerControlCommon-NB-r13, + ..., + [[ nprach-Config-v1330 NPRACH-ConfigSIB-NB-v1330 OPTIONAL -- Need OR + ]], + [[ nprach-Config-v1450 NPRACH-ConfigSIB-NB-v1450 OPTIONAL -- Cond EnhPowerControl + ]] +} + +BCCH-Config-NB-r13 ::= SEQUENCE { + modificationPeriodCoeff-r13 ENUMERATED {n16, n32, n64, n128} +} + + +PCCH-Config-NB-r13 ::= SEQUENCE { + defaultPagingCycle-r13 ENUMERATED {rf128, rf256, rf512, rf1024}, + nB-r13 ENUMERATED { + fourT, twoT, oneT, halfT, quarterT, one8thT, + one16thT, one32ndT, one64thT, + one128thT, one256thT, one512thT, one1024thT, + spare3, spare2, spare1}, + npdcch-NumRepetitionPaging-r13 ENUMERATED { + r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1} +} + + +RadioResourceConfigDedicated-NB-r13 ::= SEQUENCE { + srb-ToAddModList-r13 SRB-ToAddModList-NB-r13 OPTIONAL, -- Need ON + drb-ToAddModList-r13 DRB-ToAddModList-NB-r13 OPTIONAL, -- Need ON + drb-ToReleaseList-r13 DRB-ToReleaseList-NB-r13 OPTIONAL, -- Need ON + mac-MainConfig-r13 CHOICE { + explicitValue-r13 MAC-MainConfig-NB-r13, + defaultValue-r13 NULL + } OPTIONAL, -- Need ON + physicalConfigDedicated-r13 PhysicalConfigDedicated-NB-r13 OPTIONAL, -- Need ON + rlf-TimersAndConstants-r13 RLF-TimersAndConstants-NB-r13 OPTIONAL, -- Need ON + ... +} + +SRB-ToAddModList-NB-r13 ::= SEQUENCE (SIZE (1)) OF SRB-ToAddMod-NB-r13 + +SRB-ToAddMod-NB-r13 ::= SEQUENCE { + rlc-Config-r13 CHOICE { + explicitValue RLC-Config-NB-r13, + defaultValue NULL + } OPTIONAL, -- Cond Setup + logicalChannelConfig-r13 CHOICE { + explicitValue LogicalChannelConfig-NB-r13, + defaultValue NULL + } OPTIONAL, -- Cond Setup + ..., + [[ rlc-Config-v1430 RLC-Config-NB-v1430 OPTIONAL -- Need ON + ]] +} + +DRB-ToAddModList-NB-r13 ::= SEQUENCE (SIZE (1..maxDRB-NB-r13)) OF DRB-ToAddMod-NB-r13 + +DRB-ToAddMod-NB-r13 ::= SEQUENCE { + eps-BearerIdentity-r13 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity-r13 DRB-Identity, + pdcp-Config-r13 PDCP-Config-NB-r13 OPTIONAL, -- Cond Setup + rlc-Config-r13 RLC-Config-NB-r13 OPTIONAL, -- Cond Setup + logicalChannelIdentity-r13 INTEGER (3..10) OPTIONAL, -- Cond DRB-Setup + logicalChannelConfig-r13 LogicalChannelConfig-NB-r13 OPTIONAL, -- Cond Setup + ..., + [[ rlc-Config-v1430 RLC-Config-NB-v1430 OPTIONAL -- Need ON + ]] +} + +DRB-ToReleaseList-NB-r13 ::= SEQUENCE (SIZE (1..maxDRB-NB-r13)) OF DRB-Identity + + +RLC-Config-NB-r13 ::= CHOICE { + am SEQUENCE { + ul-AM-RLC-r13 UL-AM-RLC-NB-r13, + dl-AM-RLC-r13 DL-AM-RLC-NB-r13 + }, + ... +} + +RLC-Config-NB-v1430 ::= SEQUENCE { + t-Reordering-r14 T-Reordering OPTIONAL -- Cond twoHARQ +} + +UL-AM-RLC-NB-r13 ::= SEQUENCE { + t-PollRetransmit-r13 T-PollRetransmit-NB-r13, + maxRetxThreshold-r13 ENUMERATED {t1, t2, t3, t4, t6, t8, t16, t32} +} + +DL-AM-RLC-NB-r13 ::= SEQUENCE { + enableStatusReportSN-Gap-r13 ENUMERATED {true} OPTIONAL +} + +T-PollRetransmit-NB-r13 ::= ENUMERATED { + ms250, ms500, ms1000, ms2000, ms3000, ms4000, + ms6000, ms10000, ms15000, ms25000, ms40000, ms60000, + ms90000, ms120000, ms180000, spare1} + + + + +RLF-TimersAndConstants-NB-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + t301-r13 ENUMERATED { + ms2500, ms4000, ms6000, ms10000, + ms15000, ms25000, ms40000, ms60000}, + t310-r13 ENUMERATED { + ms0, ms200, ms500, ms1000, ms2000, ms4000, ms8000}, + n310-r13 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311-r13 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311-r13 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ..., + [[ t311-v1350 ENUMERATED { + ms40000, ms60000, ms90000, ms120000} + OPTIONAL -- Need OR + ]] + } +} + + + +UplinkPowerControlCommon-NB-r13 ::= SEQUENCE { + p0-NominalNPUSCH-r13 INTEGER (-126..24), + alpha-r13 ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1}, + deltaPreambleMsg3-r13 INTEGER (-1..6) +} +   +UplinkPowerControlDedicated-NB-r13 ::= SEQUENCE { + p0-UE-NPUSCH-r13 INTEGER (-8..7) +} + + +AdditionalBandInfoList-NB-r14 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-NB-r13 + + +FreqBandIndicator-NB-r13 ::= INTEGER (1.. maxFBI2) + + +MultiBandInfoList-NB-r13 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF MultiBandInfo-NB-r13 + +MultiBandInfo-NB-r13 ::= SEQUENCE { + freqBandIndicator-r13 FreqBandIndicator-NB-r13 OPTIONAL, -- Need OR + freqBandInfo-r13 NS-PmaxList-NB-r13 OPTIONAL -- Need OR +} + + +NS-PmaxList-NB-r13 ::= SEQUENCE (SIZE (1..maxNS-Pmax-NB-r13)) OF NS-PmaxValue-NB-r13 + +NS-PmaxValue-NB-r13 ::= SEQUENCE { + additionalPmax-r13 P-Max OPTIONAL, -- Need OR + additionalSpectrumEmission-r13 AdditionalSpectrumEmission +} + + +ReselectionThreshold-NB-v1360 ::= INTEGER (32..63) + + +T-Reselection-NB-r13 ::= ENUMERATED {s0, s3, s6, s9, s12, s15, s18, s21} + + +CQI-NPDCCH-NB-r14 ::= ENUMERATED { + noMeasurements, candidateRep-A, candidateRep-B, candidateRep-C, + candidateRep-D, candidateRep-E, candidateRep-F, candidateRep-G, + candidateRep-H, candidateRep-I, candidateRep-J, candidateRep-K, + candidateRep-L} + + +CQI-NPDCCH-Short-NB-r14 ::= ENUMERATED { + noMeasurements, candidateRep-1, candidateRep-2, candidateRep-3} + + +MeasResultServCell-NB-r14 ::= SEQUENCE { + nrsrpResult-r14 NRSRP-Range-NB-r14, + nrsrqResult-r14 NRSRQ-Range-NB-r14 +} + + +NRSRP-Range-NB-r14 ::= INTEGER(0..113) + + +NRSRQ-Range-NB-r14 ::= INTEGER(-30..46) + + +EstablishmentCause-NB-r13 ::= ENUMERATED { + mt-Access, mo-Signalling, mo-Data, mo-ExceptionData, + delayTolerantAccess-v1330, spare3, spare2, spare1} + + +UE-Capability-NB-r13 ::= SEQUENCE { + accessStratumRelease-r13 AccessStratumRelease-NB-r13, + ue-Category-NB-r13 ENUMERATED {nb1} OPTIONAL, + multipleDRB-r13 ENUMERATED {supported} OPTIONAL, + pdcp-Parameters-r13 PDCP-Parameters-NB-r13 OPTIONAL, + phyLayerParameters-r13 PhyLayerParameters-NB-r13, + rf-Parameters-r13 RF-Parameters-NB-r13, + dummy SEQUENCE {} OPTIONAL +} + +UE-Capability-NB-Ext-r14-IEs ::= SEQUENCE { + ue-Category-NB-r14 ENUMERATED {nb2} OPTIONAL, + mac-Parameters-r14 MAC-Parameters-NB-r14 OPTIONAL, + phyLayerParameters-v1430 PhyLayerParameters-NB-v1430 OPTIONAL, + rf-Parameters-v1430 RF-Parameters-NB-v1430, + nonCriticalExtension UE-Capability-NB-v1440-IEs OPTIONAL +} + +UE-Capability-NB-v1440-IEs ::= SEQUENCE { + phyLayerParameters-v1440 PhyLayerParameters-NB-v1440 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AccessStratumRelease-NB-r13 ::= ENUMERATED {rel13, rel14, spare6, spare5, spare4, spare3, spare2, spare1, ...} + +PDCP-Parameters-NB-r13 ::= SEQUENCE { + supportedROHC-Profiles-r13 SEQUENCE { + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + maxNumberROHC-ContextSessions-r13 ENUMERATED {cs2, cs4, cs8, cs12} DEFAULT cs2, + ... +} + +MAC-Parameters-NB-r14 ::= SEQUENCE { + dataInactMon-r14 ENUMERATED {supported} OPTIONAL, + rai-Support-r14 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-NB-r13 ::= SEQUENCE { + multiTone-r13 ENUMERATED {supported} OPTIONAL, + multiCarrier-r13 ENUMERATED {supported} OPTIONAL + } + +PhyLayerParameters-NB-v1430 ::= SEQUENCE { + multiCarrier-NPRACH-r14 ENUMERATED {supported} OPTIONAL, + twoHARQ-Processes-r14 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-NB-v1440 ::= SEQUENCE { + interferenceRandomisation-r14 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-NB-r13 ::= SEQUENCE { + supportedBandList-r13 SupportedBandList-NB-r13, + multiNS-Pmax-r13 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-NB-v1430 ::= SEQUENCE { + powerClassNB-14dBm-r14 ENUMERATED {supported} OPTIONAL +} + +SupportedBandList-NB-r13 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBand-NB-r13 + +SupportedBand-NB-r13 ::= SEQUENCE { + band-r13 FreqBandIndicator-NB-r13, + powerClassNB-20dBm-r13 ENUMERATED {supported} OPTIONAL +} + + +UE-RadioPagingInfo-NB-r13 ::= SEQUENCE { + ue-Category-NB-r13 ENUMERATED {nb1} OPTIONAL, + ..., + [[ multiCarrierPaging-r14 ENUMERATED {true} OPTIONAL + ]] +} + + +UE-TimersAndConstants-NB-r13 ::= SEQUENCE { + t300-r13 ENUMERATED { + ms2500, ms4000, ms6000, ms10000, + ms15000, ms25000, ms40000, ms60000}, + t301-r13 ENUMERATED { + ms2500, ms4000, ms6000, ms10000, + ms15000, ms25000, ms40000, ms60000}, + t310-r13 ENUMERATED { + ms0, ms200, ms500, ms1000, ms2000, ms4000, ms8000}, + n310-r13 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311-r13 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311-r13 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ..., + [[ t311-v1350 ENUMERATED { + ms40000, ms60000, ms90000, ms120000} + OPTIONAL -- Need OR + ]] +} + + +SC-MTCH-InfoList-NB-r14 ::= SEQUENCE (SIZE (0.. maxSC-MTCH-NB-r14)) OF SC-MTCH-Info-NB-r14 + +SC-MTCH-Info-NB-r14 ::= SEQUENCE { + sc-mtch-CarrierConfig-r14 CHOICE { + dl-CarrierConfig-r14 DL-CarrierConfigCommon-NB-r14, + dl-CarrierIndex-r14 INTEGER (0.. maxNonAnchorCarriers-NB-r14) + }, + mbmsSessionInfo-r14 MBMSSessionInfo-r13, + g-RNTI-r14 BIT STRING(SIZE(16)), + sc-mtch-SchedulingInfo-r14 SC-MTCH-SchedulingInfo-NB-r14 OPTIONAL, -- Need OP + sc-mtch-NeighbourCell-r14 BIT STRING (SIZE(maxNeighCell-SCPTM-NB-r14)) OPTIONAL, -- Need OP + npdcch-NPDSCH-MaxTBS-SC-MTCH-r14 ENUMERATED {n680, n2536}, + npdcch-NumRepetitions-SC-MTCH-r14 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256, + r512, r1024, r2048, spare4, + spare3, spare2, spare1}, + npdcch-StartSF-SC-MTCH-r14 ENUMERATED {v1dot5, v2, v4, v8, + v16, v32, v48, v64}, + npdcch-Offset-SC-MTCH-r14 ENUMERATED {zero, oneEighth, oneQuarter, + threeEighth, oneHalf, fiveEighth, + threeQuarter, sevenEighth}, + ... +} + +SC-MTCH-SchedulingInfo-NB-r14 ::= SEQUENCE { + onDurationTimerSCPTM-r14 ENUMERATED { + pp1, pp2, pp3, pp4, + pp8, pp16, pp32, spare}, + drx-InactivityTimerSCPTM-r14 ENUMERATED { + pp0, pp1, pp2, pp3, + pp4, pp8, pp16, pp32}, + schedulingPeriodStartOffsetSCPTM-r14 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2047), + sf4096 INTEGER(0..4095), + sf8192 INTEGER(0..8191) + }, + ... +} + + +SCPTM-NeighbourCellList-NB-r14 ::= SEQUENCE (SIZE (1..maxNeighCell-SCPTM-NB-r14)) OF PCI-ARFCN-NB-r14 + +PCI-ARFCN-NB-r14 ::= SEQUENCE { + physCellId-r14 PhysCellId, + carrierFreq-r14 CarrierFreq-NB-r13 OPTIONAL -- Need OP +} + + +maxNPRACH-Resources-NB-r13 INTEGER ::= 3 -- Maximum number of NPRACH resources for NB-IoT +maxNonAnchorCarriers-NB-r14 INTEGER ::= 15 -- Maximum number of non-anchor carriers for NB-IoT +maxDRB-NB-r13 INTEGER ::= 2 -- Maximum number of Data Radio Bearers for NB-IoT +maxNeighCell-SCPTM-NB-r14 INTEGER ::= 8 -- Maximum number of SCPTM neighbour cells +maxNS-Pmax-NB-r13 INTEGER ::= 4 -- Maximum number of NS and P-Max values per band +maxSC-MTCH-NB-r14 INTEGER ::= 64 -- Maximum number of SC-MTCHs in one cell for NB-IoT +maxSI-Message-NB-r13 INTEGER ::= 8 -- Maximum number of SI messages for NB-IoT + + +END + + +EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AbsoluteTimeInfo-r10, + AreaConfiguration-r10, + AreaConfiguration-v1130, + ARFCN-ValueNR-r15, + CarrierFreqGERAN, + CellIdentity, + ConnEstFailReport-r11, + SpeedStateScaleFactors, + C-RNTI, + LoggingDuration-r10, + LoggingInterval-r10, + LogMeasInfo-r10, + MeasCSI-RS-Id-r12, + MeasId, + MeasId-v1250, + MeasIdToAddModList, + MeasIdToAddModListExt-r12, + MeasIdToAddModList-v1310, + MeasIdToAddModListExt-v1310, + MeasObjectToAddModList, + MeasObjectToAddModList-v9e0, + MeasObjectToAddModListExt-r13, + MeasScaleFactor-r12, + MobilityStateParameters, + NeighCellConfig, + PhysCellId, + PhysCellIdCDMA2000, + PhysCellIdGERAN, + PhysCellIdUTRA-FDD, + PhysCellIdUTRA-TDD, + PLMN-Identity, + PLMN-IdentityList3-r11, + QuantityConfig, + ReportConfigToAddModList, + RLF-Report-r9, + TargetMBSFN-AreaList-r12, + TraceReference-r10, + Tx-ResourcePoolMeasList-r14, + VisitedCellInfoList-r12, + maxCellMeas, + maxCSI-RS-Meas-r12, + maxMeasId, + maxMeasId-r12, + maxRS-Index-r15, + PhysCellIdNR-r15, + RS-IndexNR-r15, + UL-DelayConfig-r13, + WLAN-CarrierInfo-r13, + WLAN-Identifiers-r12, + WLAN-Id-List-r13, + WLAN-Status-r13, + WLAN-Status-v1430, + WLAN-SuspendConfig-r14 + +FROM EUTRA-RRC-Definitions; + + +VarConnEstFailReport-r11 ::= SEQUENCE { + connEstFailReport-r11 ConnEstFailReport-r11, + plmn-Identity-r11 PLMN-Identity +} + + +VarLogMeasConfig-r10 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10 +} + +VarLogMeasConfig-r11 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10 +} + +VarLogMeasConfig-r12 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10, + targetMBSFN-AreaList-r12 TargetMBSFN-AreaList-r12 OPTIONAL +} + + +VarLogMeasReport-r10 ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + plmn-Identity-r10 PLMN-Identity, + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + logMeasInfoList-r10 LogMeasInfoList2-r10 +} + +VarLogMeasReport-r11 ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + plmn-IdentityList-r11 PLMN-IdentityList3-r11, + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + logMeasInfoList-r10 LogMeasInfoList2-r10 +} + +LogMeasInfoList2-r10 ::= SEQUENCE (SIZE (1..maxLogMeas-r10)) OF LogMeasInfo-r10 + + +VarMeasConfig ::= SEQUENCE { + -- Measurement identities + measIdList MeasIdToAddModList OPTIONAL, + measIdListExt-r12 MeasIdToAddModListExt-r12 OPTIONAL, + measIdList-v1310 MeasIdToAddModList-v1310 OPTIONAL, + measIdListExt-v1310 MeasIdToAddModListExt-v1310 OPTIONAL, + -- Measurement objects + measObjectList MeasObjectToAddModList OPTIONAL, + measObjectListExt-r13 MeasObjectToAddModListExt-r13 OPTIONAL, + measObjectList-v9i0 MeasObjectToAddModList-v9e0 OPTIONAL, + -- Reporting configurations + reportConfigList ReportConfigToAddModList OPTIONAL, + -- Other parameters + quantityConfig QuantityConfig OPTIONAL, + measScaleFactor-r12 MeasScaleFactor-r12 OPTIONAL, + s-Measure INTEGER (-140..-44) OPTIONAL, + speedStatePars CHOICE { + release NULL, + setup SEQUENCE { + mobilityStateParameters MobilityStateParameters, + timeToTrigger-SF SpeedStateScaleFactors + } + } OPTIONAL, + allowInterruptions-r11 BOOLEAN OPTIONAL +} + + +VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport +VarMeasReportList-r12 ::= SEQUENCE (SIZE (1..maxMeasId-r12)) OF VarMeasReport + +VarMeasReport ::= SEQUENCE { + -- List of measurement that have been triggered + measId MeasId, + measId-v1250 MeasId-v1250 OPTIONAL, + cellsTriggeredList CellsTriggeredList OPTIONAL, + csi-RS-TriggeredList-r12 CSI-RS-TriggeredList-r12 OPTIONAL, + poolsTriggeredList-r14 Tx-ResourcePoolMeasList-r14 OPTIONAL, + numberOfReportsSent INTEGER +} + +CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CHOICE { + physCellIdEUTRA PhysCellId, + physCellIdUTRA CHOICE { + fdd PhysCellIdUTRA-FDD, + tdd PhysCellIdUTRA-TDD + }, + physCellIdGERAN SEQUENCE { + carrierFreq CarrierFreqGERAN, + physCellId PhysCellIdGERAN + }, + physCellIdCDMA2000 PhysCellIdCDMA2000, + wlan-Identifiers-r13 WLAN-Identifiers-r12, + physCellIdNR-r15 SEQUENCE { + carrierFreq ARFCN-ValueNR-r15, + physCellId PhysCellIdNR-r15, + rs-IndexList-r15 SSB-IndexList-r15 OPTIONAL + } +} + +CSI-RS-TriggeredList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Id-r12 + +SSB-IndexList-r15::= SEQUENCE (SIZE (1..maxRS-Index-r15)) OF RS-IndexNR-r15 + +VarMobilityHistoryReport-r12 ::= VisitedCellInfoList-r12 + + +VarRLF-Report-r10 ::= SEQUENCE { + rlf-Report-r10 RLF-Report-r9, + plmn-Identity-r10 PLMN-Identity +} + +VarRLF-Report-r11 ::= SEQUENCE { + rlf-Report-r10 RLF-Report-r9, + plmn-IdentityList-r11 PLMN-IdentityList3-r11 +} + + +VarShortMAC-Input ::= SEQUENCE { + cellIdentity CellIdentity, + physCellId PhysCellId, + c-RNTI C-RNTI +} + + +VarShortResumeMAC-Input-r13 ::= SEQUENCE { + cellIdentity-r13 CellIdentity, + physCellId-r13 PhysCellId, + c-RNTI-r13 C-RNTI, + resumeDiscriminator-r13 BIT STRING(SIZE(1)) +} + + +VarWLAN-MobilityConfig ::= SEQUENCE { + wlan-MobilitySet-r13 WLAN-Id-List-r13 OPTIONAL, + successReportRequested ENUMERATED {true} OPTIONAL, + wlan-SuspendConfig-r14 WLAN-SuspendConfig-r14 OPTIONAL +} + + +VarWLAN-Status-r13 ::= SEQUENCE { + status-r13 WLAN-Status-r13, + status-r14 WLAN-Status-v1430 OPTIONAL +} + + +maxLogMeas-r10 INTEGER ::= 4060-- Maximum number of logged measurement entries + -- that can be stored by the UE + + +END + + +NBIOT-UE-Variables DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + VarShortMAC-Input, + VarShortResumeMAC-Input-r13 + +FROM EUTRA-UE-Variables; + +VarShortMAC-Input-NB-r13 ::= VarShortMAC-Input + +VarShortResumeMAC-Input-NB-r13 ::= VarShortResumeMAC-Input-r13 + + +END + + +EUTRA-Sidelink-Preconf DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AdditionalSpectrumEmission, + AdditionalSpectrumEmission-v10l0, + ARFCN-ValueEUTRA-r9, + FilterCoefficient, + maxCBR-Level-r14, + maxCBR-Level-1-r14, + maxFreq, + maxFreqV2X-r14, + maxSL-TxPool-r12, + maxSL-CommRxPoolPreconf-v1310, + maxSL-CommTxPoolPreconf-v1310, + maxSL-DiscRxPoolPreconf-r13, + maxSL-DiscTxPoolPreconf-r13, + maxSL-V2X-CBRConfig2-r14, + maxSL-V2X-CBRConfig2-1-r14, + maxSL-V2X-RxPoolPreconf-r14, + maxSL-V2X-TxConfig2-r14, + maxSL-V2X-TxConfig2-1-r14, + maxSL-V2X-TxPoolPreconf-r14, + P-Max, + ReselectionInfoRelay-r13, + SL-AnchorCarrierFreqList-V2X-r14, + SL-CBR-Levels-Config-r14, + SL-CBR-PSSCH-TxConfig-r14, + SL-CommTxPoolSensingConfig-r14, + SL-CP-Len-r12, + SL-HoppingConfigComm-r12, + SL-OffsetIndicator-r12, + SL-OffsetIndicatorSync-r12, + SL-OffsetIndicatorSync-v1430, + SL-PeriodComm-r12, + RSRP-RangeSL3-r12, + SL-PriorityList-r13, + SL-TF-ResourceConfig-r12, + SL-TRPT-Subset-r12, + SL-TxParameters-r12, + SL-ZoneConfig-r14, + P0-SL-r12, + TDD-ConfigSL-r12, + SubframeBitmapSL-r14, + SL-P2X-ResourceSelectionConfig-r14, + SL-RestrictResourceReservationPeriodList-r14, + SL-SyncAllowed-r14, + SL-OffsetIndicatorSync-r14, + SL-Priority-r13 +FROM EUTRA-RRC-Definitions; + + +SL-Preconfiguration-r12 ::= SEQUENCE { + preconfigGeneral-r12 SL-PreconfigGeneral-r12, + preconfigSync-r12 SL-PreconfigSync-r12, + preconfigComm-r12 SL-PreconfigCommPoolList4-r12, + ..., + [[ preconfigComm-v1310 SEQUENCE { + commRxPoolList-r13 SL-PreconfigCommRxPoolList-r13, + commTxPoolList-r13 SL-PreconfigCommTxPoolList-r13 OPTIONAL + } OPTIONAL, + preconfigDisc-r13 SEQUENCE { + discRxPoolList-r13 SL-PreconfigDiscRxPoolList-r13, + discTxPoolList-r13 SL-PreconfigDiscTxPoolList-r13 OPTIONAL + } OPTIONAL, + preconfigRelay-r13 SL-PreconfigRelay-r13 OPTIONAL + ]] + +} + +SL-PreconfigGeneral-r12 ::= SEQUENCE { + -- PDCP configuration + rohc-Profiles-r12 SEQUENCE { + profile0x0001-r12 BOOLEAN, + profile0x0002-r12 BOOLEAN, + profile0x0004-r12 BOOLEAN, + profile0x0006-r12 BOOLEAN, + profile0x0101-r12 BOOLEAN, + profile0x0102-r12 BOOLEAN, + profile0x0104-r12 BOOLEAN + }, + -- Physical configuration + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + maxTxPower-r12 P-Max, + additionalSpectrumEmission-r12 AdditionalSpectrumEmission, + sl-bandwidth-r12 ENUMERATED {n6, n15, n25, n50, n75, n100}, + tdd-ConfigSL-r12 TDD-ConfigSL-r12, + reserved-r12 BIT STRING (SIZE (19)), + ..., + [[ additionalSpectrumEmission-v1440 AdditionalSpectrumEmission-v10l0 OPTIONAL + ]] +} + +SL-PreconfigSync-r12 ::= SEQUENCE { + syncCP-Len-r12 SL-CP-Len-r12, + syncOffsetIndicator1-r12 SL-OffsetIndicatorSync-r12, + syncOffsetIndicator2-r12 SL-OffsetIndicatorSync-r12, + syncTxParameters-r12 P0-SL-r12, + syncTxThreshOoC-r12 RSRP-RangeSL3-r12, + filterCoefficient-r12 FilterCoefficient, + syncRefMinHyst-r12 ENUMERATED {dB0, dB3, dB6, dB9, dB12}, + syncRefDiffHyst-r12 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf}, + ..., + [[ syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL + ]] +} + +SL-PreconfigCommPoolList4-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-PreconfigCommPool-r12 + +SL-PreconfigCommRxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-CommRxPoolPreconf-v1310)) OF SL-PreconfigCommPool-r12 + +SL-PreconfigCommTxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-CommTxPoolPreconf-v1310)) OF SL-PreconfigCommPool-r12 + +SL-PreconfigCommPool-r12 ::= SEQUENCE { +-- This IE is same as SL-CommResourcePool with rxParametersNCell absent + sc-CP-Len-r12 SL-CP-Len-r12, + sc-Period-r12 SL-PeriodComm-r12, + sc-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + sc-TxParameters-r12 P0-SL-r12, + data-CP-Len-r12 SL-CP-Len-r12, + data-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + dataHoppingConfig-r12 SL-HoppingConfigComm-r12, + dataTxParameters-r12 P0-SL-r12, + trpt-Subset-r12 SL-TRPT-Subset-r12, + ..., + [[ priorityList-r13 SL-PriorityList-r13 OPTIONAL -- For Tx + ]] +} + +SL-PreconfigDiscRxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-DiscRxPoolPreconf-r13)) OF SL-PreconfigDiscPool-r13 + +SL-PreconfigDiscTxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-DiscTxPoolPreconf-r13)) OF SL-PreconfigDiscPool-r13 + +SL-PreconfigDiscPool-r13 ::= SEQUENCE { +-- This IE is same as SL-DiscResourcePool with rxParameters absent + cp-Len-r13 SL-CP-Len-r12, + discPeriod-r13 ENUMERATED {rf4, rf6, rf7, rf8, rf12, rf14, rf16, rf24, rf28, + rf32, rf64, rf128, rf256, rf512, rf1024, spare}, + numRetx-r13 INTEGER (0..3), + numRepetition-r13 INTEGER (1..50), + tf-ResourceConfig-r13 SL-TF-ResourceConfig-r12, + txParameters-r13 SEQUENCE { + txParametersGeneral-r13 P0-SL-r12, + txProbability-r13 ENUMERATED {p25, p50, p75, p100} + } OPTIONAL, + ... +} + +SL-PreconfigRelay-r13 ::= SEQUENCE { + reselectionInfoOoC-r13 ReselectionInfoRelay-r13 +} + + +SL-V2X-Preconfiguration-r14 ::= SEQUENCE { + v2x-PreconfigFreqList-r14 SL-V2X-PreconfigFreqList-r14, + anchorCarrierFreqList-r14 SL-AnchorCarrierFreqList-V2X-r14 OPTIONAL, + cbr-PreconfigList-r14 SL-CBR-PreconfigTxConfigList-r14 OPTIONAL, + ... +} + +SL-CBR-PreconfigTxConfigList-r14 ::= SEQUENCE { + cbr-RangeCommonConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-CBRConfig2-r14)) OF SL-CBR-Levels-Config-r14, + sl-CBR-PSSCH-TxConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-TxConfig2-r14)) OF SL-CBR-PSSCH-TxConfig-r14 +} + +SL-V2X-PreconfigFreqList-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF SL-V2X-PreconfigFreqInfo-r14 + +SL-V2X-PreconfigFreqInfo-r14 ::= SEQUENCE { + v2x-CommPreconfigGeneral-r14 SL-PreconfigGeneral-r12, + v2x-CommPreconfigSync-r14 SL-PreconfigV2X-Sync-r14 OPTIONAL, + v2x-CommRxPoolList-r14 SL-PreconfigV2X-RxPoolList-r14, + v2x-CommTxPoolList-r14 SL-PreconfigV2X-TxPoolList-r14, + p2x-CommTxPoolList-r14 SL-PreconfigV2X-TxPoolList-r14, + v2x-ResourceSelectionConfig-r14 SL-CommTxPoolSensingConfig-r14 OPTIONAL, + zoneConfig-r14 SL-ZoneConfig-r14 OPTIONAL, + syncPriority-r14 ENUMERATED {gnss, enb}, + thresSL-TxPrioritization-r14 SL-Priority-r13 OPTIONAL, + offsetDFN-r14 INTEGER (0..1000) OPTIONAL, + ... +} + +SL-PreconfigV2X-RxPoolList-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-RxPoolPreconf-r14)) OF SL-V2X-PreconfigCommPool-r14 + +SL-PreconfigV2X-TxPoolList-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-TxPoolPreconf-r14)) OF SL-V2X-PreconfigCommPool-r14 + +SL-V2X-PreconfigCommPool-r14 ::= SEQUENCE { +-- This IE is same as SL-CommResourcePoolV2X with rxParametersNCell absent + sl-OffsetIndicator-r14 SL-OffsetIndicator-r12 OPTIONAL, + sl-Subframe-r14 SubframeBitmapSL-r14, + adjacencyPSCCH-PSSCH-r14 BOOLEAN, + sizeSubchannel-r14 ENUMERATED { + n4, n5, n6, n8, n9, n10, n12, n15, n16, n18, n20, n25, n30, + n48, n50, n72, n75, n96, n100, spare13, spare12, spare11, + spare10, spare9, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1}, + numSubchannel-r14 ENUMERATED {n1, n3, n5, n8, n10, n15, n20, spare1}, + startRB-Subchannel-r14 INTEGER (0..99), + startRB-PSCCH-Pool-r14 INTEGER (0..99) OPTIONAL, + dataTxParameters-r14 P0-SL-r12, + zoneID-r14 INTEGER (0..7) OPTIONAL, + threshS-RSSI-CBR-r14 INTEGER (0..45) OPTIONAL, + cbr-pssch-TxConfigList-r14 SL-CBR-PPPP-TxPreconfigList-r14 OPTIONAL, + resourceSelectionConfigP2X-r14 SL-P2X-ResourceSelectionConfig-r14 OPTIONAL, + syncAllowed-r14 SL-SyncAllowed-r14 OPTIONAL, + restrictResourceReservationPeriod-r14 SL-RestrictResourceReservationPeriodList-r14 OPTIONAL, -- Need OR + ... +} + +SL-PreconfigV2X-Sync-r14 ::= SEQUENCE { + syncOffsetIndicators-r14 SL-V2X-SyncOffsetIndicators-r14, + syncTxParameters-r14 P0-SL-r12, + syncTxThreshOoC-r14 RSRP-RangeSL3-r12, + filterCoefficient-r14 FilterCoefficient, + syncRefMinHyst-r14 ENUMERATED {dB0, dB3, dB6, dB9, dB12}, + syncRefDiffHyst-r14 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf}, + ... +} + +SL-V2X-SyncOffsetIndicators-r14 ::= SEQUENCE { + syncOffsetIndicator1-r14 SL-OffsetIndicatorSync-r14, + syncOffsetIndicator2-r14 SL-OffsetIndicatorSync-r14, + syncOffsetIndicator3-r14 SL-OffsetIndicatorSync-r14 OPTIONAL +} + +SL-CBR-PPPP-TxPreconfigList-r14 ::= SEQUENCE (SIZE (1..8)) OF SL-PPPP-TxPreconfigIndex-r14 + +SL-PPPP-TxPreconfigIndex-r14 ::= SEQUENCE { + priorityThreshold-r14 SL-Priority-r13, + defaultTxConfigIndex-r14 INTEGER(0..maxCBR-Level-1-r14), + cbr-ConfigIndex-r14 INTEGER(0..maxSL-V2X-CBRConfig2-1-r14), + tx-ConfigIndexList-r14 SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF Tx-PreconfigIndex-r14 +} + +Tx-PreconfigIndex-r14 ::= INTEGER(0..maxSL-V2X-TxConfig2-1-r14) + +END + + +EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AntennaInfoCommon, + AntennaInfoDedicated-v10i0, + ARFCN-ValueEUTRA, + ARFCN-ValueEUTRA-v9e0, + ARFCN-ValueEUTRA-r9, + CellIdentity, + C-RNTI, + DL-DCCH-Message, + DRB-Identity, + DRB-ToReleaseList, + FreqBandIndicator-r11, + InDeviceCoexIndication-r11, + LWA-Config-r13, + MasterInformationBlock, + maxBands, + maxFreq, + maxDRB, + maxSCell-r10, + maxSCell-r13, + maxServCell-r10, + maxServCell-r13, + MBMSInterestIndication-r11, + MeasConfig, + MeasGapConfig, + MeasGapConfigPerCC-List-r14, + MeasResultForRSSI-r13, + MeasResultListWLAN-r13, + OtherConfig-r9, + PhysCellId, + P-Max, + PowerCoordinationInfo-r12, + SidelinkUEInformation-r12, + SL-CommConfig-r12, + SL-DiscConfig-r12, + RadioResourceConfigDedicated, + RCLWI-Configuration-r13, + RSRP-Range, + RSRQ-Range, + RSRQ-Range-v1250, + RS-SINR-Range-r13, + SCellToAddModList-r10, + SCellToAddModListExt-r13, + SCG-ConfigPartSCG-r12, + SecurityAlgorithmConfig, + SCellIndex-r10, + SCellIndex-r13, + SCellToReleaseList-r10, + SCellToReleaseListExt-r13, + ServCellIndex-r10, + ServCellIndex-r13, + ShortMAC-I, + MeasResultServFreqListNR-r15, + MeasResultSSTD-r13, + SL-V2X-ConfigDedicated-r14, + SystemInformationBlockType1, + SystemInformationBlockType1-v890-IEs, + SystemInformationBlockType2, + UEAssistanceInformation-r11, + UECapabilityInformation, + UE-CapabilityRAT-ContainerList, + UE-RadioPagingInfo-r12, + WLANConnectionStatusReport-r13, + WLAN-OffloadConfig-r12 +FROM EUTRA-RRC-Definitions; + + +HandoverCommand ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverCommand-r8 HandoverCommand-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverCommand-r8-IEs ::= SEQUENCE { + handoverCommandMessage OCTET STRING (CONTAINING DL-DCCH-Message), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +HandoverPreparationInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverPreparationInformation-r8 HandoverPreparationInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverPreparationInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo UE-CapabilityRAT-ContainerList, + as-Config AS-Config OPTIONAL, -- Cond HO + rrm-Config RRM-Config OPTIONAL, + as-Context AS-Context OPTIONAL, -- Cond HO + nonCriticalExtension HandoverPreparationInformation-v920-IEs OPTIONAL +} + +HandoverPreparationInformation-v920-IEs ::= SEQUENCE { + ue-ConfigRelease-r9 ENUMERATED { + rel9, rel10, rel11, rel12, v10j0, v11e0, + v1280, rel13, ..., rel14, rel15} OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v9d0-IEs OPTIONAL +} + +HandoverPreparationInformation-v9d0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING HandoverPreparationInformation-v9j0-IEs) OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-v9e0-IEs OPTIONAL +} + +-- Late non-critical extensions: +HandoverPreparationInformation-v9j0-IEs ::= SEQUENCE { + -- Following field is only for pre REL-10 late non-critical extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-v10j0-IEs OPTIONAL +} + +HandoverPreparationInformation-v10j0-IEs ::= SEQUENCE { + as-Config-v10j0 AS-Config-v10j0 OPTIONAL, + -- Following field is only for late non-critical extensions from REL-10 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +HandoverPreparationInformation-v9e0-IEs ::= SEQUENCE { + as-Config-v9e0 AS-Config-v9e0 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1130-IEs OPTIONAL +} + +HandoverPreparationInformation-v1130-IEs ::= SEQUENCE { + as-Context-v1130 AS-Context-v1130 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1250-IEs OPTIONAL +} + +HandoverPreparationInformation-v1250-IEs ::= SEQUENCE { + ue-SupportedEARFCN-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Cond HO3 + as-Config-v1250 AS-Config-v1250 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1320-IEs OPTIONAL +} + +HandoverPreparationInformation-v1320-IEs ::= SEQUENCE { + as-Config-v1320 AS-Config-v1320 OPTIONAL, -- Cond HO2 + as-Context-v1320 AS-Context-v1320 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1430-IEs OPTIONAL +} + +HandoverPreparationInformation-v1430-IEs ::= SEQUENCE { + as-Config-v1430 AS-Config-v1430 OPTIONAL, -- Cond HO2 + makeBeforeBreakReq-r14 ENUMERATED {true} OPTIONAL, -- Cond HO2 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCG-Config-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + scg-Config-r12 SCG-Config-r12-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCG-Config-r12-IEs ::= SEQUENCE { + scg-RadioConfig-r12 SCG-ConfigPartSCG-r12 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCG-ConfigInfo-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + scg-ConfigInfo-r12 SCG-ConfigInfo-r12-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCG-ConfigInfo-r12-IEs ::= SEQUENCE { + radioResourceConfigDedMCG-r12 RadioResourceConfigDedicated OPTIONAL, + sCellToAddModListMCG-r12 SCellToAddModList-r10 OPTIONAL, + measGapConfig-r12 MeasGapConfig OPTIONAL, + powerCoordinationInfo-r12 PowerCoordinationInfo-r12 OPTIONAL, + scg-RadioConfig-r12 SCG-ConfigPartSCG-r12 OPTIONAL, + eutra-CapabilityInfo-r12 OCTET STRING (CONTAINING UECapabilityInformation) OPTIONAL, + scg-ConfigRestrictInfo-r12 SCG-ConfigRestrictInfo-r12 OPTIONAL, + mbmsInterestIndication-r12 OCTET STRING (CONTAINING + MBMSInterestIndication-r11) OPTIONAL, + measResultServCellListSCG-r12 MeasResultServCellListSCG-r12 OPTIONAL, + drb-ToAddModListSCG-r12 DRB-InfoListSCG-r12 OPTIONAL, + drb-ToReleaseListSCG-r12 DRB-ToReleaseList OPTIONAL, + sCellToAddModListSCG-r12 SCellToAddModListSCG-r12 OPTIONAL, + sCellToReleaseListSCG-r12 SCellToReleaseList-r10 OPTIONAL, + p-Max-r12 P-Max OPTIONAL, + nonCriticalExtension SCG-ConfigInfo-v1310-IEs OPTIONAL +} + +SCG-ConfigInfo-v1310-IEs ::= SEQUENCE { + measResultSSTD-r13 MeasResultSSTD-r13 OPTIONAL, sCellToAddModListMCG-Ext-r13 SCellToAddModListExt-r13 OPTIONAL, + measResultServCellListSCG-Ext-r13 MeasResultServCellListSCG-Ext-r13 OPTIONAL, + sCellToAddModListSCG-Ext-r13 SCellToAddModListSCG-Ext-r13 OPTIONAL, + sCellToReleaseListSCG-Ext-r13 SCellToReleaseListExt-r13 OPTIONAL, + nonCriticalExtension SCG-ConfigInfo-v1330-IEs OPTIONAL +} + +SCG-ConfigInfo-v1330-IEs ::= SEQUENCE { + measResultListRSSI-SCG-r13 MeasResultListRSSI-SCG-r13 OPTIONAL, + nonCriticalExtension SCG-ConfigInfo-v1430-IEs OPTIONAL +} + +SCG-ConfigInfo-v1430-IEs ::= SEQUENCE { + makeBeforeBreakSCG-Req-r14 ENUMERATED {true} OPTIONAL, + measGapConfigPerCC-List MeasGapConfigPerCC-List-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-InfoListSCG-r12 ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-InfoSCG-r12 + +DRB-InfoSCG-r12 ::= SEQUENCE { + eps-BearerIdentity-r12 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity-r12 DRB-Identity, + drb-Type-r12 ENUMERATED {split, scg} OPTIONAL, -- Cond DRB-Setup + ... +} + +SCellToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF Cell-ToAddMod-r12 + +SCellToAddModListSCG-Ext-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF Cell-ToAddMod-r12 + +Cell-ToAddMod-r12 ::= SEQUENCE { + sCellIndex-r12 SCellIndex-r10, + cellIdentification-r12 SEQUENCE { + physCellId-r12 PhysCellId, + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + measResultCellToAdd-r12 SEQUENCE { + rsrpResult-r12 RSRP-Range, + rsrqResult-r12 RSRQ-Range + } OPTIONAL, -- Cond SCellAdd2 + ..., + [[ sCellIndex-r13 SCellIndex-r13 OPTIONAL, + measResultCellToAdd-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL -- Cond SCellAdd2 + ]] +} + +MeasResultServCellListSCG-r12 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF MeasResultServCellSCG-r12 + +MeasResultServCellListSCG-Ext-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultServCellSCG-r12 + +MeasResultServCellSCG-r12 ::= SEQUENCE { + servCellId-r12 ServCellIndex-r10, + measResultSCell-r12 SEQUENCE { + rsrpResultSCell-r12 RSRP-Range, + rsrqResultSCell-r12 RSRQ-Range + }, + ..., + [[ servCellId-r13 ServCellIndex-r13 OPTIONAL, + measResultSCell-v1310 SEQUENCE { + rs-sinr-ResultSCell-r13 RS-SINR-Range-r13 + } OPTIONAL + ]] +} + +MeasResultListRSSI-SCG-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultRSSI-SCG-r13 + +MeasResultRSSI-SCG-r13 ::= SEQUENCE { + servCellId-r13 ServCellIndex-r13, + measResultForRSSI-r13 MeasResultForRSSI-r13 +} + +SCG-ConfigRestrictInfo-r12 ::= SEQUENCE { + maxSCH-TB-BitsDL-r12 INTEGER (1..100), + maxSCH-TB-BitsUL-r12 INTEGER (1..100) +} + + +UEPagingCoverageInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + uePagingCoverageInformation-r13 UEPagingCoverageInformation-r13-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEPagingCoverageInformation-r13-IEs ::= SEQUENCE { + mpdcch-NumRepetition-r13 INTEGER (1..256) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioAccessCapabilityInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioAccessCapabilityInformation-r8 + UERadioAccessCapabilityInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioPagingInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioPagingInformation-r12 UERadioPagingInformation-r12-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioPagingInformation-r12-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r12 OCTET STRING (CONTAINING UE-RadioPagingInfo-r12), + nonCriticalExtension UERadioPagingInformation-v1310-IEs OPTIONAL +} + +UERadioPagingInformation-v1310-IEs ::= SEQUENCE { + supportedBandListEUTRAForPaging-r13 SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicator-r11 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL + +} + + +AS-Config ::= SEQUENCE { + sourceMeasConfig MeasConfig, + sourceRadioResourceConfig RadioResourceConfigDedicated, + sourceSecurityAlgorithmConfig SecurityAlgorithmConfig, + sourceUE-Identity C-RNTI, + sourceMasterInformationBlock MasterInformationBlock, + sourceSystemInformationBlockType1 SystemInformationBlockType1(WITH COMPONENTS + {..., nonCriticalExtension ABSENT}), + sourceSystemInformationBlockType2 SystemInformationBlockType2, + antennaInfoCommon AntennaInfoCommon, + sourceDl-CarrierFreq ARFCN-ValueEUTRA, + ..., + [[ sourceSystemInformationBlockType1Ext OCTET STRING (CONTAINING + SystemInformationBlockType1-v890-IEs) OPTIONAL, + sourceOtherConfig-r9 OtherConfig-r9 + -- sourceOtherConfig-r9 should have been optional. A target eNB compliant with this transfer + -- syntax should support receiving an AS-Config not including this extension addition group + -- e.g. from a legacy source eNB + ]], + [[ sourceSCellConfigList-r10 SCellToAddModList-r10 OPTIONAL + ]], + [[ sourceConfigSCG-r12 SCG-Config-r12 OPTIONAL + ]], + [[ as-ConfigNR-r15 AS-ConfigNR-r15 OPTIONAL + ]] +} + +AS-Config-v9e0 ::= SEQUENCE { + sourceDl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +AS-Config-v10j0 ::= SEQUENCE { + antennaInfoDedicatedPCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL +} + +AS-Config-v1250 ::= SEQUENCE { + sourceWlan-OffloadConfig-r12 WLAN-OffloadConfig-r12 OPTIONAL, + sourceSL-CommConfig-r12 SL-CommConfig-r12 OPTIONAL, + sourceSL-DiscConfig-r12 SL-DiscConfig-r12 OPTIONAL +} + +AS-Config-v1320 ::= SEQUENCE { + sourceSCellConfigList-r13 SCellToAddModListExt-r13 OPTIONAL, + sourceRCLWI-Configuration-r13 RCLWI-Configuration-r13 OPTIONAL +} + +AS-Config-v1430 ::= SEQUENCE { + sourceSL-V2X-CommConfig-r14 SL-V2X-ConfigDedicated-r14 OPTIONAL, + sourceLWA-Config-r14 LWA-Config-r13 OPTIONAL, + sourceWLAN-MeasResult-r14 MeasResultListWLAN-r13 OPTIONAL +} + +AS-ConfigNR-r15 ::= SEQUENCE { + sourceRB-ConfigNR-r15 OCTET STRING OPTIONAL, + sourceRB-ConfigSN-NR-r15 OCTET STRING OPTIONAL, + sourceOtherConfigSN-NR-r15 OCTET STRING OPTIONAL +} + + +AS-Context ::= SEQUENCE { + reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO +} + +AS-Context-v1130 ::= SEQUENCE { + idc-Indication-r11 OCTET STRING (CONTAINING + InDeviceCoexIndication-r11) OPTIONAL, -- Cond HO2 + mbmsInterestIndication-r11 OCTET STRING (CONTAINING + MBMSInterestIndication-r11) OPTIONAL, -- Cond HO2 + powerPrefIndication-r11 OCTET STRING (CONTAINING + UEAssistanceInformation-r11) OPTIONAL, -- Cond HO2 + ..., + [[ sidelinkUEInformation-r12 OCTET STRING (CONTAINING + SidelinkUEInformation-r12) OPTIONAL -- Cond HO2 + ]], + [[ sourceContextENDC-r15 OCTET STRING OPTIONAL -- Cond HO2 + ]] +} + +AS-Context-v1320 ::= SEQUENCE { + wlanConnectionStatusReport-r13 OCTET STRING (CONTAINING + WLANConnectionStatusReport-r13) OPTIONAL -- Cond HO2 +} + + +ReestablishmentInfo ::= SEQUENCE { + sourcePhysCellId PhysCellId, + targetCellShortMAC-I ShortMAC-I, + additionalReestabInfoList AdditionalReestabInfoList OPTIONAL, + ... +} + +AdditionalReestabInfoList ::= SEQUENCE ( SIZE (1..maxReestabInfo) ) OF AdditionalReestabInfo + +AdditionalReestabInfo ::= SEQUENCE{ + cellIdentity CellIdentity, + key-eNodeB-Star Key-eNodeB-Star, + shortMAC-I ShortMAC-I +} + +Key-eNodeB-Star ::= BIT STRING (SIZE (256)) + + +RRM-Config ::= SEQUENCE { + ue-InactiveTime ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, + s25, s30, s40, s50, min1, min1s20c, min1s40, + min2, min2s30, min3, min3s30, min4, min5, min6, + min7, min8, min9, min10, min12, min14, min17, min20, + min24, min28, min33, min38, min44, min50, hr1, + hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6, + hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2, + day2hr12, day3, day4, day5, day7, day10, day14, day19, + day24, day30, dayMoreThan30} OPTIONAL, + ..., + [[ candidateCellInfoList-r10 CandidateCellInfoList-r10 OPTIONAL + ]], + [[ candidateCellInfoListNR-r15 MeasResultServFreqListNR-r15 OPTIONAL + ]] +} + +CandidateCellInfoList-r10 ::= SEQUENCE (SIZE (1..maxFreq)) OF CandidateCellInfo-r10 + +CandidateCellInfo-r10 ::= SEQUENCE { + -- cellIdentification + physCellId-r10 PhysCellId, + dl-CarrierFreq-r10 ARFCN-ValueEUTRA, + -- available measurement results + rsrpResult-r10 RSRP-Range OPTIONAL, + rsrqResult-r10 RSRQ-Range OPTIONAL, + ..., + [[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL + ]], + [[ rsrqResult-v1250 RSRQ-Range-v1250 OPTIONAL + ]], + [[ rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL + ]] +} + + +maxReestabInfo INTEGER ::= 32 -- Maximum number of KeNB* and shortMAC-I forwarded + -- at handover for re-establishment preparation + + +END + + +NBIOT-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + C-RNTI, + PhysCellId, + SecurityAlgorithmConfig, + ShortMAC-I +FROM EUTRA-RRC-Definitions + + AdditionalReestabInfoList +FROM EUTRA-InterNodeDefinitions + + CarrierFreq-NB-r13, + RadioResourceConfigDedicated-NB-r13, + UECapabilityInformation-NB, + UE-Capability-NB-r13, + UE-Capability-NB-Ext-r14-IEs, + UE-RadioPagingInfo-NB-r13 +FROM NBIOT-RRC-Definitions; + + +HandoverPreparationInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverPreparationInformation-r13 HandoverPreparationInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverPreparationInformation-NB-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo-r13 UE-Capability-NB-r13, + as-Config-r13 AS-Config-NB, + rrm-Config-r13 RRM-Config-NB OPTIONAL, + as-Context-r13 AS-Context-NB OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-NB-v1380-IEs OPTIONAL +} + +HandoverPreparationInformation-NB-v1380-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-NB-Ext-r14-IEs OPTIONAL +} + +HandoverPreparationInformation-NB-Ext-r14-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfoExt-r14 OCTET STRING (CONTAINING UE-Capability-NB-Ext-r14-IEs) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEPagingCoverageInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + uePagingCoverageInformation-r13 UEPagingCoverageInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEPagingCoverageInformation-NB-IEs ::= SEQUENCE { +-- the possible value(s) can differ from those sent on Uu + npdcch-NumRepetitionPaging-r13 INTEGER (1..2048) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioAccessCapabilityInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioAccessCapabilityInformation-r13 + UERadioAccessCapabilityInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioAccessCapabilityInformation-NB-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo-r13 OCTET STRING (CONTAINING UE-Capability-NB-r13), + nonCriticalExtension UERadioAccessCapabilityInformation-NB-v1380-IEs OPTIONAL +} + +UERadioAccessCapabilityInformation-NB-v1380-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UERadioAccessCapabilityInformation-NB-r14-IEs OPTIONAL +} + +UERadioAccessCapabilityInformation-NB-r14-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo-r14 OCTET STRING (CONTAINING UECapabilityInformation-NB) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioPagingInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioPagingInformation-r13 UERadioPagingInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioPagingInformation-NB-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r13 OCTET STRING (CONTAINING UE-RadioPagingInfo-NB-r13), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +AS-Config-NB ::= SEQUENCE { + sourceRadioResourceConfig-r13 RadioResourceConfigDedicated-NB-r13, + sourceSecurityAlgorithmConfig-r13 SecurityAlgorithmConfig, + sourceUE-Identity-r13 C-RNTI, + sourceDl-CarrierFreq-r13 CarrierFreq-NB-r13, + ... +} + + +AS-Context-NB ::= SEQUENCE { + reestablishmentInfo-r13 ReestablishmentInfo-NB OPTIONAL, + ... +} + + +ReestablishmentInfo-NB ::= SEQUENCE { + sourcePhysCellId-r13 PhysCellId, + targetCellShortMAC-I-r13 ShortMAC-I, + additionalReestabInfoList-r13 AdditionalReestabInfoList OPTIONAL, + ... +} + + + + +RRM-Config-NB ::= SEQUENCE { + ue-InactiveTime ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, + s25, s30, s40, s50, min1, min1s20, min1s40, + min2, min2s30, min3, min3s30, min4, min5, min6, + min7, min8, min9, min10, min12, min14, min17, min20, + min24, min28, min33, min38, min44, min50, hr1, + hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6, + hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2, + day2hr12, day3, day4, day5, day7, day10, day14, day19, + day24, day30, dayMoreThan30} OPTIONAL, + ... +} + + +END + + diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.2.2.asn1 b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.2.2.asn1 new file mode 100755 index 0000000000..1d7ab647c1 --- /dev/null +++ b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.2.2.asn1 @@ -0,0 +1,14834 @@ + +EUTRA-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + + +BCCH-BCH-Message ::= SEQUENCE { + message BCCH-BCH-MessageType +} + +BCCH-BCH-MessageType ::= MasterInformationBlock + + +BCCH-BCH-Message-MBMS::= SEQUENCE { + message BCCH-BCH-MessageType-MBMS-r14 +} + +BCCH-BCH-MessageType-MBMS-r14 ::= MasterInformationBlock-MBMS-r14 + + +BCCH-DL-SCH-Message ::= SEQUENCE { + message BCCH-DL-SCH-MessageType +} + +BCCH-DL-SCH-MessageType ::= CHOICE { + c1 CHOICE { + systemInformation SystemInformation, + systemInformationBlockType1 SystemInformationBlockType1 + }, + messageClassExtension SEQUENCE {} +} + + +BCCH-DL-SCH-Message-BR ::= SEQUENCE { + message BCCH-DL-SCH-MessageType-BR-r13 +} + +BCCH-DL-SCH-MessageType-BR-r13 ::= CHOICE { + c1 CHOICE { + systemInformation-BR-r13 SystemInformation-BR-r13, + systemInformationBlockType1-BR-r13 SystemInformationBlockType1-BR-r13 + }, + messageClassExtension SEQUENCE {} +} + + +BCCH-DL-SCH-Message-MBMS ::= SEQUENCE { + message BCCH-DL-SCH-MessageType-MBMS-r14 +} + +BCCH-DL-SCH-MessageType-MBMS-r14 ::= CHOICE { + c1 CHOICE { + systemInformation-MBMS-r14 SystemInformation-MBMS-r14, + systemInformationBlockType1-MBMS-r14 SystemInformationBlockType1-MBMS-r14 + }, + messageClassExtension SEQUENCE {} +} + + +MCCH-Message ::= SEQUENCE { + message MCCH-MessageType +} + +MCCH-MessageType ::= CHOICE { + c1 CHOICE { + mbsfnAreaConfiguration-r9 MBSFNAreaConfiguration-r9 + }, + later CHOICE { + c2 CHOICE{ + mbmsCountingRequest-r10 MBMSCountingRequest-r10 + }, + messageClassExtension SEQUENCE {} + } +} + + +PCCH-Message ::= SEQUENCE { + message PCCH-MessageType +} + +PCCH-MessageType ::= CHOICE { + c1 CHOICE { + paging Paging + }, + messageClassExtension SEQUENCE {} +} + + +DL-CCCH-Message ::= SEQUENCE { + message DL-CCCH-MessageType +} + +DL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishment RRCConnectionReestablishment, + rrcConnectionReestablishmentReject RRCConnectionReestablishmentReject, + rrcConnectionReject RRCConnectionReject, + rrcConnectionSetup RRCConnectionSetup + }, + messageClassExtension SEQUENCE {} +} + + +DL-DCCH-Message ::= SEQUENCE { + message DL-DCCH-MessageType +} + +DL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + csfbParametersResponseCDMA2000 CSFBParametersResponseCDMA2000, + dlInformationTransfer DLInformationTransfer, + handoverFromEUTRAPreparationRequest HandoverFromEUTRAPreparationRequest, + mobilityFromEUTRACommand MobilityFromEUTRACommand, + rrcConnectionReconfiguration RRCConnectionReconfiguration, + rrcConnectionRelease RRCConnectionRelease, + securityModeCommand SecurityModeCommand, + ueCapabilityEnquiry UECapabilityEnquiry, + counterCheck CounterCheck, + ueInformationRequest-r9 UEInformationRequest-r9, + loggedMeasurementConfiguration-r10 LoggedMeasurementConfiguration-r10, + rnReconfiguration-r10 RNReconfiguration-r10, + rrcConnectionResume-r13 RRCConnectionResume-r13, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +UL-CCCH-Message ::= SEQUENCE { + message UL-CCCH-MessageType +} + +UL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishmentRequest RRCConnectionReestablishmentRequest, + rrcConnectionRequest RRCConnectionRequest + }, + messageClassExtension CHOICE { + c2 CHOICE { + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-r13 + }, + messageClassExtensionFuture-r13 SEQUENCE {} + } +} + + +UL-DCCH-Message ::= SEQUENCE { + message UL-DCCH-MessageType +} + +UL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + csfbParametersRequestCDMA2000 CSFBParametersRequestCDMA2000, + measurementReport MeasurementReport, + rrcConnectionReconfigurationComplete RRCConnectionReconfigurationComplete, + rrcConnectionReestablishmentComplete RRCConnectionReestablishmentComplete, + rrcConnectionSetupComplete RRCConnectionSetupComplete, + securityModeComplete SecurityModeComplete, + securityModeFailure SecurityModeFailure, + ueCapabilityInformation UECapabilityInformation, + ulHandoverPreparationTransfer ULHandoverPreparationTransfer, + ulInformationTransfer ULInformationTransfer, + counterCheckResponse CounterCheckResponse, + ueInformationResponse-r9 UEInformationResponse-r9, + proximityIndication-r9 ProximityIndication-r9, + rnReconfigurationComplete-r10 RNReconfigurationComplete-r10, + mbmsCountingResponse-r10 MBMSCountingResponse-r10, + interFreqRSTDMeasurementIndication-r10 InterFreqRSTDMeasurementIndication-r10 + }, + messageClassExtension CHOICE { + c2 CHOICE { + ueAssistanceInformation-r11 UEAssistanceInformation-r11, + inDeviceCoexIndication-r11 InDeviceCoexIndication-r11, + mbmsInterestIndication-r11 MBMSInterestIndication-r11, + scgFailureInformation-r12 SCGFailureInformation-r12, + sidelinkUEInformation-r12 SidelinkUEInformation-r12, + wlanConnectionStatusReport-r13 WLANConnectionStatusReport-r13, + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-r13, + ulInformationTransferMRDC-r15 ULInformationTransferMRDC-r15, + scgFailureInformationNR-r15 SCGFailureInformationNR-r15, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtensionFuture-r11 SEQUENCE {} + } +} + + +SC-MCCH-Message-r13 ::= SEQUENCE { + message SC-MCCH-MessageType-r13 +} + + +SC-MCCH-MessageType-r13 ::= CHOICE { + c1 CHOICE { + scptmConfiguration-r13 SCPTMConfiguration-r13 + }, + messageClassExtension CHOICE { + c2 CHOICE { + scptmConfiguration-BR-r14 SCPTMConfiguration-BR-r14, + spare NULL + }, + messageClassExtensionFuture-r14 SEQUENCE {} + } +} + + +CounterCheck ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + counterCheck-r8 CounterCheck-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheck-r8-IEs ::= SEQUENCE { + drb-CountMSB-InfoList DRB-CountMSB-InfoList, + nonCriticalExtension CounterCheck-v8a0-IEs OPTIONAL +} + +CounterCheck-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-CountMSB-InfoList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-CountMSB-Info + +DRB-CountMSB-Info ::= SEQUENCE { + drb-Identity DRB-Identity, + countMSB-Uplink INTEGER(0..33554431), + countMSB-Downlink INTEGER(0..33554431) +} + + +CounterCheckResponse ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + counterCheckResponse-r8 CounterCheckResponse-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheckResponse-r8-IEs ::= SEQUENCE { + drb-CountInfoList DRB-CountInfoList, + nonCriticalExtension CounterCheckResponse-v8a0-IEs OPTIONAL +} + +CounterCheckResponse-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-CountInfoList ::= SEQUENCE (SIZE (0..maxDRB)) OF DRB-CountInfo + +DRB-CountInfo ::= SEQUENCE { + drb-Identity DRB-Identity, + count-Uplink INTEGER(0..4294967295), + count-Downlink INTEGER(0..4294967295) +} + + +CSFBParametersRequestCDMA2000 ::= SEQUENCE { + criticalExtensions CHOICE { + csfbParametersRequestCDMA2000-r8 CSFBParametersRequestCDMA2000-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CSFBParametersRequestCDMA2000-r8-IEs ::= SEQUENCE { + nonCriticalExtension CSFBParametersRequestCDMA2000-v8a0-IEs OPTIONAL +} + +CSFBParametersRequestCDMA2000-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +CSFBParametersResponseCDMA2000 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + csfbParametersResponseCDMA2000-r8 CSFBParametersResponseCDMA2000-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CSFBParametersResponseCDMA2000-r8-IEs ::= SEQUENCE { + rand RAND-CDMA2000, + mobilityParameters MobilityParametersCDMA2000, + nonCriticalExtension CSFBParametersResponseCDMA2000-v8a0-IEs OPTIONAL +} + +CSFBParametersResponseCDMA2000-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +DLInformationTransfer ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + dlInformationTransfer-r8 DLInformationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +DLInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType CHOICE { + dedicatedInfoNAS DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000 + }, + nonCriticalExtension DLInformationTransfer-v8a0-IEs OPTIONAL +} + +DLInformationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +HandoverFromEUTRAPreparationRequest ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + handoverFromEUTRAPreparationRequest-r8 + HandoverFromEUTRAPreparationRequest-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverFromEUTRAPreparationRequest-r8-IEs ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + rand RAND-CDMA2000 OPTIONAL, -- Cond cdma2000-Type + mobilityParameters MobilityParametersCDMA2000 OPTIONAL, -- Cond cdma2000-Type + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v890-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v920-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v920-IEs ::= SEQUENCE { + concurrPrepCDMA2000-HRPD-r9 BOOLEAN OPTIONAL, -- Cond cdma2000-Type + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v1020-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v1020-IEs ::= SEQUENCE { + dualRxTxRedirectIndicator-r10 ENUMERATED {true} OPTIONAL, -- Cond cdma2000-1XRTT + redirectCarrierCDMA2000-1XRTT-r10 CarrierFreqCDMA2000 OPTIONAL, -- Cond dualRxTxRedirect + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +InDeviceCoexIndication-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + inDeviceCoexIndication-r11 InDeviceCoexIndication-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +InDeviceCoexIndication-r11-IEs ::= SEQUENCE { + affectedCarrierFreqList-r11 AffectedCarrierFreqList-r11 OPTIONAL, + tdm-AssistanceInfo-r11 TDM-AssistanceInfo-r11 OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension InDeviceCoexIndication-v11d0-IEs OPTIONAL +} + +InDeviceCoexIndication-v11d0-IEs ::= SEQUENCE { + ul-CA-AssistanceInfo-r11 SEQUENCE { + affectedCarrierFreqCombList-r11 AffectedCarrierFreqCombList-r11 OPTIONAL, + victimSystemType-r11 VictimSystemType-r11 + } OPTIONAL, + nonCriticalExtension InDeviceCoexIndication-v1310-IEs OPTIONAL +} + +InDeviceCoexIndication-v1310-IEs ::= SEQUENCE { + affectedCarrierFreqList-v1310 AffectedCarrierFreqList-v1310 OPTIONAL, + affectedCarrierFreqCombList-r13 AffectedCarrierFreqCombList-r13 OPTIONAL, + nonCriticalExtension InDeviceCoexIndication-v1360-IEs OPTIONAL +} + +InDeviceCoexIndication-v1360-IEs ::= SEQUENCE { + hardwareSharingProblem-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AffectedCarrierFreqList-r11 ::= SEQUENCE (SIZE (1..maxFreqIDC-r11)) OF AffectedCarrierFreq-r11 + +AffectedCarrierFreqList-v1310 ::= SEQUENCE (SIZE (1..maxFreqIDC-r11)) OF AffectedCarrierFreq-v1310 + +AffectedCarrierFreq-r11 ::= SEQUENCE { + carrierFreq-r11 MeasObjectId, + interferenceDirection-r11 ENUMERATED {eutra, other, both, spare} +} + +AffectedCarrierFreq-v1310 ::= SEQUENCE { + carrierFreq-v1310 MeasObjectId-v1310 OPTIONAL +} + +AffectedCarrierFreqCombList-r11 ::= SEQUENCE (SIZE (1..maxCombIDC-r11)) OF AffectedCarrierFreqComb-r11 + +AffectedCarrierFreqCombList-r13 ::= SEQUENCE (SIZE (1..maxCombIDC-r11)) OF AffectedCarrierFreqComb-r13 + +AffectedCarrierFreqComb-r11 ::= SEQUENCE (SIZE (2..maxServCell-r10)) OF MeasObjectId + +AffectedCarrierFreqComb-r13 ::= SEQUENCE (SIZE (2..maxServCell-r13)) OF MeasObjectId-r13 + +TDM-AssistanceInfo-r11 ::= CHOICE { + drx-AssistanceInfo-r11 SEQUENCE { + drx-CycleLength-r11 ENUMERATED {sf40, sf64, sf80, sf128, sf160, + sf256, spare2, spare1}, + drx-Offset-r11 INTEGER (0..255) OPTIONAL, + drx-ActiveTime-r11 ENUMERATED {sf20, sf30, sf40, sf60, sf80, + sf100, spare2, spare1} + }, + idc-SubframePatternList-r11 IDC-SubframePatternList-r11, + ... +} + +IDC-SubframePatternList-r11 ::= SEQUENCE (SIZE (1..maxSubframePatternIDC-r11)) OF IDC-SubframePattern-r11 + +IDC-SubframePattern-r11 ::= CHOICE { + subframePatternFDD-r11 BIT STRING (SIZE (4)), + subframePatternTDD-r11 CHOICE { + subframeConfig0-r11 BIT STRING (SIZE (70)), + subframeConfig1-5-r11 BIT STRING (SIZE (10)), + subframeConfig6-r11 BIT STRING (SIZE (60)) + }, + ... +} + +VictimSystemType-r11 ::= SEQUENCE { + gps-r11 ENUMERATED {true} OPTIONAL, + glonass-r11 ENUMERATED {true} OPTIONAL, + bds-r11 ENUMERATED {true} OPTIONAL, + galileo-r11 ENUMERATED {true} OPTIONAL, + wlan-r11 ENUMERATED {true} OPTIONAL, + bluetooth-r11 ENUMERATED {true} OPTIONAL +} + + +InterFreqRSTDMeasurementIndication-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + interFreqRSTDMeasurementIndication-r10 InterFreqRSTDMeasurementIndication-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +InterFreqRSTDMeasurementIndication-r10-IEs ::= SEQUENCE { + rstd-InterFreqIndication-r10 CHOICE { + start SEQUENCE { + rstd-InterFreqInfoList-r10 RSTD-InterFreqInfoList-r10 + }, + stop NULL + }, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RSTD-InterFreqInfoList-r10 ::= SEQUENCE (SIZE(1..maxRSTD-Freq-r10)) OF RSTD-InterFreqInfo-r10 + +RSTD-InterFreqInfo-r10 ::= SEQUENCE { + carrierFreq-r10 ARFCN-ValueEUTRA, + measPRS-Offset-r10 INTEGER (0..39), + ..., + [[ carrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL + ]] +} + + +LoggedMeasurementConfiguration-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + loggedMeasurementConfiguration-r10 LoggedMeasurementConfiguration-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + + +LoggedMeasurementConfiguration-r10-IEs ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, -- Need OR + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10, + nonCriticalExtension LoggedMeasurementConfiguration-v1080-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1080-IEs ::= SEQUENCE { + lateNonCriticalExtension-r10 OCTET STRING OPTIONAL, + nonCriticalExtension LoggedMeasurementConfiguration-v1130-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1130-IEs ::= SEQUENCE { + plmn-IdentityList-r11 PLMN-IdentityList3-r11 OPTIONAL, -- Need OR + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, -- Need OR + nonCriticalExtension LoggedMeasurementConfiguration-v1250-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1250-IEs ::= SEQUENCE { + targetMBSFN-AreaList-r12 TargetMBSFN-AreaList-r12 OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +TargetMBSFN-AreaList-r12 ::= SEQUENCE (SIZE (0..maxMBSFN-Area)) OF TargetMBSFN-Area-r12 + +TargetMBSFN-Area-r12 ::= SEQUENCE { + mbsfn-AreaId-r12 MBSFN-AreaId-r12 OPTIONAL, -- Need OR + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + ... +} + + +MasterInformationBlock ::= SEQUENCE { + dl-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100}, + phich-Config PHICH-Config, + systemFrameNumber BIT STRING (SIZE (8)), + schedulingInfoSIB1-BR-r13 INTEGER (0..31), + spare BIT STRING (SIZE (5)) +} + + + +MasterInformationBlock-MBMS-r14 ::= SEQUENCE { + dl-Bandwidth-MBMS-r14 ENUMERATED { + n6, n15, n25, n50, n75, n100}, + systemFrameNumber-r14 BIT STRING (SIZE (6)), + additionalNonMBSFNSubframes-r14 INTEGER (0..3), + spare BIT STRING (SIZE (13)) +} + + +MBMSCountingRequest-r10 ::= SEQUENCE { + countingRequestList-r10 CountingRequestList-r10, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CountingRequestList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingRequestInfo-r10 + +CountingRequestInfo-r10 ::= SEQUENCE { + tmgi-r10 TMGI-r9, + ... +} + + +MBMSCountingResponse-r10 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + countingResponse-r10 MBMSCountingResponse-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MBMSCountingResponse-r10-IEs ::= SEQUENCE { + mbsfn-AreaIndex-r10 INTEGER (0..maxMBSFN-Area-1) OPTIONAL, + countingResponseList-r10 CountingResponseList-r10 OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CountingResponseList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingResponseInfo-r10 + +CountingResponseInfo-r10 ::= SEQUENCE { + countingResponseService-r10 INTEGER (0..maxServiceCount-1), + ... +} + + +MBMSInterestIndication-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + interestIndication-r11 MBMSInterestIndication-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MBMSInterestIndication-r11-IEs ::= SEQUENCE { + mbms-FreqList-r11 CarrierFreqListMBMS-r11 OPTIONAL, + mbms-Priority-r11 ENUMERATED {true} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MBMSInterestIndication-v1310-IEs OPTIONAL +} + +MBMSInterestIndication-v1310-IEs ::= SEQUENCE { + mbms-Services-r13 MBMS-ServiceList-r13 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MBSFNAreaConfiguration-r9 ::= SEQUENCE { + commonSF-Alloc-r9 CommonSF-AllocPatternList-r9, + commonSF-AllocPeriod-r9 ENUMERATED { + rf4, rf8, rf16, rf32, rf64, rf128, rf256}, + pmch-InfoList-r9 PMCH-InfoList-r9, + nonCriticalExtension MBSFNAreaConfiguration-v930-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MBSFNAreaConfiguration-v1250-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v1250-IEs ::= SEQUENCE { + pmch-InfoListExt-r12 PMCH-InfoListExt-r12 OPTIONAL, -- Need OR + nonCriticalExtension MBSFNAreaConfiguration-v1430-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v1430-IEs ::= SEQUENCE { + commonSF-Alloc-r14 CommonSF-AllocPatternList-r14, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CommonSF-AllocPatternList-r9 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig + +CommonSF-AllocPatternList-r14 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig-v1430 + + +MeasurementReport ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + measurementReport-r8 MeasurementReport-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MeasurementReport-r8-IEs ::= SEQUENCE { + measResults MeasResults, + nonCriticalExtension MeasurementReport-v8a0-IEs OPTIONAL +} + +MeasurementReport-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MobilityFromEUTRACommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + mobilityFromEUTRACommand-r8 MobilityFromEUTRACommand-r8-IEs, + mobilityFromEUTRACommand-r9 MobilityFromEUTRACommand-r9-IEs, + spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MobilityFromEUTRACommand-r8-IEs ::= SEQUENCE { + cs-FallbackIndicator BOOLEAN, + purpose CHOICE{ + handover Handover, + cellChangeOrder CellChangeOrder + }, + nonCriticalExtension MobilityFromEUTRACommand-v8a0-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MobilityFromEUTRACommand-v8d0-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v8d0-IEs ::= SEQUENCE { + bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +MobilityFromEUTRACommand-r9-IEs ::= SEQUENCE { + cs-FallbackIndicator BOOLEAN, + purpose CHOICE{ + handover Handover, + cellChangeOrder CellChangeOrder, + e-CSFB-r9 E-CSFB-r9, + ... + }, + nonCriticalExtension MobilityFromEUTRACommand-v930-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MobilityFromEUTRACommand-v960-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v960-IEs ::= SEQUENCE { + bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +Handover ::= SEQUENCE { + targetRAT-Type ENUMERATED { + utra, geran, cdma2000-1XRTT, cdma2000-HRPD, + spare4, spare3, spare2, spare1, ...}, + targetRAT-MessageContainer OCTET STRING, + nas-SecurityParamFromEUTRA OCTET STRING (SIZE (1)) OPTIONAL, -- Cond UTRAGERAN + systemInformation SI-OrPSI-GERAN OPTIONAL -- Cond PSHO +} + +CellChangeOrder ::= SEQUENCE { + t304 ENUMERATED { + ms100, ms200, ms500, ms1000, + ms2000, ms4000, ms8000, ms10000-v1310}, + targetRAT-Type CHOICE { + geran SEQUENCE { + physCellId PhysCellIdGERAN, + carrierFreq CarrierFreqGERAN, + networkControlOrder BIT STRING (SIZE (2)) OPTIONAL, -- Need OP + systemInformation SI-OrPSI-GERAN OPTIONAL -- Need OP + }, + ... + } +} + +SI-OrPSI-GERAN ::= CHOICE { + si SystemInfoListGERAN, + psi SystemInfoListGERAN +} + +E-CSFB-r9 ::= SEQUENCE { + messageContCDMA2000-1XRTT-r9 OCTET STRING OPTIONAL, -- Need ON + mobilityCDMA2000-HRPD-r9 ENUMERATED { + handover, redirection + } OPTIONAL, -- Need OP + messageContCDMA2000-HRPD-r9 OCTET STRING OPTIONAL, -- Cond concHO + redirectCarrierCDMA2000-HRPD-r9 CarrierFreqCDMA2000 OPTIONAL -- Cond concRedir +} + + +Paging ::= SEQUENCE { + pagingRecordList PagingRecordList OPTIONAL, -- Need ON + systemInfoModification ENUMERATED {true} OPTIONAL, -- Need ON + etws-Indication ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v890-IEs OPTIONAL +} + +Paging-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension Paging-v920-IEs OPTIONAL +} + +Paging-v920-IEs ::= SEQUENCE { + cmas-Indication-r9 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v1130-IEs OPTIONAL +} + +Paging-v1130-IEs ::= SEQUENCE { + eab-ParamModification-r11 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v1310-IEs OPTIONAL +} + +Paging-v1310-IEs ::= SEQUENCE { + redistributionIndication-r13 ENUMERATED {true} OPTIONAL, --Need ON + systemInfoModification-eDRX-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PagingRecordList ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord + +PagingRecord ::= SEQUENCE { + ue-Identity PagingUE-Identity, + cn-Domain ENUMERATED {ps, cs}, + ... +} + +PagingUE-Identity ::= CHOICE { + s-TMSI S-TMSI, + imsi IMSI, + ... +} + +IMSI ::= SEQUENCE (SIZE (6..21)) OF IMSI-Digit + +IMSI-Digit ::= INTEGER (0..9) + + +ProximityIndication-r9 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + proximityIndication-r9 ProximityIndication-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ProximityIndication-r9-IEs ::= SEQUENCE { + type-r9 ENUMERATED {entering, leaving}, + carrierFreq-r9 CHOICE { + eutra-r9 ARFCN-ValueEUTRA, + utra-r9 ARFCN-ValueUTRA, + ..., + eutra2-v9e0 ARFCN-ValueEUTRA-v9e0 + }, + nonCriticalExtension ProximityIndication-v930-IEs OPTIONAL +} + +ProximityIndication-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RNReconfiguration-r10 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rnReconfiguration-r10 RNReconfiguration-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RNReconfiguration-r10-IEs ::= SEQUENCE { + rn-SystemInfo-r10 RN-SystemInfo-r10 OPTIONAL, -- Need ON + rn-SubframeConfig-r10 RN-SubframeConfig-r10 OPTIONAL, -- Need ON + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RN-SystemInfo-r10 ::= SEQUENCE { + systemInformationBlockType1-r10 OCTET STRING (CONTAINING SystemInformationBlockType1) OPTIONAL, -- Need ON + systemInformationBlockType2-r10 SystemInformationBlockType2 OPTIONAL, -- Need ON + ... +} + + +RNReconfigurationComplete-r10 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rnReconfigurationComplete-r10 RNReconfigurationComplete-r10-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RNReconfigurationComplete-r10-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReconfiguration ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReconfiguration-r8 RRCConnectionReconfiguration-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfiguration-r8-IEs ::= SEQUENCE { + measConfig MeasConfig OPTIONAL, -- Need ON + mobilityControlInfo MobilityControlInfo OPTIONAL, -- Cond HO + dedicatedInfoNASList SEQUENCE (SIZE(1..maxDRB)) OF + DedicatedInfoNAS OPTIONAL, -- Cond nonHO + radioResourceConfigDedicated RadioResourceConfigDedicated OPTIONAL, -- Cond HO-toEUTRA + securityConfigHO SecurityConfigHO OPTIONAL, -- Cond HO + nonCriticalExtension RRCConnectionReconfiguration-v890-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING RRCConnectionReconfiguration-v8m0-IEs) OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v920-IEs OPTIONAL +} + +-- Late non-critical extensions: +RRCConnectionReconfiguration-v8m0-IEs ::= SEQUENCE { + -- Following field is only for pre REL-10 late non-critical extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v10i0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v10i0-IEs ::= SEQUENCE { + antennaInfoDedicatedPCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v10l0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v10l0-IEs ::= SEQUENCE { + mobilityControlInfo-v10l0 MobilityControlInfo-v10l0 OPTIONAL, + sCellToAddModList-v10l0 SCellToAddModList-v10l0 OPTIONAL, -- Need ON + -- Following field is only for late non-critical extensions from REL-10 to REL-11 + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v12f0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v12f0-IEs ::= SEQUENCE { + scg-Configuration-v12f0 SCG-Configuration-v12f0 OPTIONAL, -- Cond nonFullConfig + -- Following field is only for late non-critical extensions from REL-12 + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfiguration-v1370-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1370-IEs ::= SEQUENCE { + radioResourceConfigDedicated-v1370 RadioResourceConfigDedicated-v1370 OPTIONAL, -- Need ON + sCellToAddModListExt-v1370 SCellToAddModListExt-v1370 OPTIONAL, -- Need ON + -- Following field is only for late non-critical extensions from REL-13 onwards + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +RRCConnectionReconfiguration-v920-IEs ::= SEQUENCE { + otherConfig-r9 OtherConfig-r9 OPTIONAL, -- Need ON + fullConfig-r9 ENUMERATED {true} OPTIONAL, -- Cond HO-Reestab + nonCriticalExtension RRCConnectionReconfiguration-v1020-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1020-IEs ::= SEQUENCE { + sCellToReleaseList-r10 SCellToReleaseList-r10 OPTIONAL, -- Need ON + sCellToAddModList-r10 SCellToAddModList-r10 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1130-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1130-IEs ::= SEQUENCE { + systemInformationBlockType1Dedicated-r11 OCTET STRING (CONTAINING SystemInformationBlockType1) OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1250-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1250-IEs ::= SEQUENCE { + wlan-OffloadInfo-r12 CHOICE { + release NULL, + setup SEQUENCE { + wlan-OffloadConfigDedicated-r12 WLAN-OffloadConfig-r12, + t350-r12 ENUMERATED {min5, min10, min20, min30, min60, + min120, min180, spare1} OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + scg-Configuration-r12 SCG-Configuration-r12 OPTIONAL, -- Cond nonFullConfig + sl-SyncTxControl-r12 SL-SyncTxControl-r12 OPTIONAL, -- Need ON + sl-DiscConfig-r12 SL-DiscConfig-r12 OPTIONAL, -- Need ON + sl-CommConfig-r12 SL-CommConfig-r12 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1310-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1310-IEs ::= SEQUENCE { + sCellToReleaseListExt-r13 SCellToReleaseListExt-r13 OPTIONAL, -- Need ON + sCellToAddModListExt-r13 SCellToAddModListExt-r13 OPTIONAL, -- Need ON + lwa-Configuration-r13 LWA-Configuration-r13 OPTIONAL, -- Need ON + lwip-Configuration-r13 LWIP-Configuration-r13 OPTIONAL, -- Need ON + rclwi-Configuration-r13 RCLWI-Configuration-r13 OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1430-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1430-IEs ::= SEQUENCE { + sl-V2X-ConfigDedicated-r14 SL-V2X-ConfigDedicated-r14 OPTIONAL, -- Need ON + sCellToAddModListExt-v1430 SCellToAddModListExt-v1430 OPTIONAL, -- Need ON + perCC-GapIndicationRequest-r14 ENUMERATED{true} OPTIONAL, -- Need ON + systemInformationBlockType2Dedicated-r14 OCTET STRING (CONTAINING SystemInformationBlockType2) OPTIONAL, -- Cond nonHO + nonCriticalExtension RRCConnectionReconfiguration-v1510-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1510-IEs ::= SEQUENCE { + nr-Config-r15 CHOICE { + release NULL, + setup SEQUENCE { + endc-ReleaseAndAdd-r15 BOOLEAN, + nr-SecondaryCellGroupConfig-r15 OCTET STRING OPTIONAL, -- Need ON + p-MaxEUTRA-r15 P-Max OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + sk-Counter-r15 INTEGER (0.. 65535) OPTIONAL, -- Need ON + nr-RadioBearerConfig1-r15 OCTET STRING OPTIONAL, -- Need ON + nr-RadioBearerConfig2-r15 OCTET STRING OPTIONAL, -- Need ON + tdm-PatternConfig-r15 CHOICE { + release NULL, + setup SEQUENCE { + subframeAssignment-r15 SubframeAssignment-r15, + harq-Offset-r15 INTEGER (0.. 9) + } + } OPTIONAL, -- Cond FDD-PCell + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SL-SyncTxControl-r12 ::= SEQUENCE { + networkControlledSyncTx-r12 ENUMERATED {on, off} OPTIONAL -- Need OP +} + +PSCellToAddMod-r12 ::= SEQUENCE { + sCellIndex-r12 SCellIndex-r10, + cellIdentification-r12 SEQUENCE { + physCellId-r12 PhysCellId, + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonPSCell-r12 RadioResourceConfigCommonPSCell-r12 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedPSCell-r12 RadioResourceConfigDedicatedPSCell-r12 OPTIONAL, -- Cond SCellAdd2 + ..., + [[ antennaInfoDedicatedPSCell-v1280 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON + ]], + [[ sCellIndex-r13 SCellIndex-r13 OPTIONAL -- Need ON + ]], + [[ radioResourceConfigDedicatedPSCell-v1370 RadioResourceConfigDedicatedPSCell-v1370 OPTIONAL -- Need ON + ]] +} + +PSCellToAddMod-v12f0 ::= SEQUENCE { + radioResourceConfigCommonPSCell-r12 RadioResourceConfigCommonPSCell-v12f0 OPTIONAL +} + +PSCellToAddMod-v1440 ::= SEQUENCE { + radioResourceConfigCommonPSCell-r14 RadioResourceConfigCommonPSCell-v1440 OPTIONAL +} + +PowerCoordinationInfo-r12 ::= SEQUENCE { + p-MeNB-r12 INTEGER (1..16), + p-SeNB-r12 INTEGER (1..16), + powerControlMode-r12 INTEGER (1..2) +} + +SCellToAddModList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-r10 + +SCellToAddModList-v10l0 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-v10l0 + +SCellToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-r13 + +SCellToAddModListExt-v1370 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-v1370 + +SCellToAddModListExt-v1430 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-v1430 + +SCellToAddMod-r10 ::= SEQUENCE { + sCellIndex-r10 SCellIndex-r10, + cellIdentification-r10 SEQUENCE { + physCellId-r10 PhysCellId, + dl-CarrierFreq-r10 ARFCN-ValueEUTRA + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonSCell-r10 RadioResourceConfigCommonSCell-r10 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedSCell-r10 RadioResourceConfigDedicatedSCell-r10 OPTIONAL, -- Cond SCellAdd2 + ..., + [[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max + ]], + [[ antennaInfoDedicatedSCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON + ]], + [[ srs-SwitchFromServCellIndex-r14 INTEGER (0.. 31) OPTIONAL -- Need ON + ]] +} + +SCellToAddMod-v10l0 ::= SEQUENCE { + radioResourceConfigCommonSCell-v10l0 RadioResourceConfigCommonSCell-v10l0 OPTIONAL +} + +SCellToAddModExt-r13 ::= SEQUENCE { + sCellIndex-r13 SCellIndex-r13, + cellIdentification-r13 SEQUENCE { + physCellId-r13 PhysCellId, + dl-CarrierFreq-r13 ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonSCell-r13 RadioResourceConfigCommonSCell-r10 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedSCell-r13 RadioResourceConfigDedicatedSCell-r10 OPTIONAL, -- Cond SCellAdd2 + antennaInfoDedicatedSCell-r13 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON +} + +SCellToAddModExt-v1370 ::= SEQUENCE { + radioResourceConfigCommonSCell-v1370 RadioResourceConfigCommonSCell-v10l0 OPTIONAL +} + +SCellToAddModExt-v1430 ::= SEQUENCE { + srs-SwitchFromServCellIndex-r14 INTEGER (0.. 31) OPTIONAL, -- Need ON + ... +} + +SCellToReleaseList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellIndex-r10 + +SCellToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellIndex-r13 + +SCG-Configuration-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + scg-ConfigPartMCG-r12 SEQUENCE { + scg-Counter-r12 INTEGER (0.. 65535) OPTIONAL, -- Need ON + powerCoordinationInfo-r12 PowerCoordinationInfo-r12 OPTIONAL, -- Need ON + ... + } OPTIONAL, -- Need ON + scg-ConfigPartSCG-r12 SCG-ConfigPartSCG-r12 OPTIONAL -- Need ON + } +} + +SCG-Configuration-v12f0 ::= CHOICE { + release NULL, + setup SEQUENCE { + scg-ConfigPartSCG-v12f0 SCG-ConfigPartSCG-v12f0 OPTIONAL -- Need ON + } +} + +SCG-ConfigPartSCG-r12 ::= SEQUENCE { + radioResourceConfigDedicatedSCG-r12 RadioResourceConfigDedicatedSCG-r12 OPTIONAL, -- Need ON + sCellToReleaseListSCG-r12 SCellToReleaseList-r10 OPTIONAL, -- Need ON + pSCellToAddMod-r12 PSCellToAddMod-r12 OPTIONAL, -- Need ON + sCellToAddModListSCG-r12 SCellToAddModList-r10 OPTIONAL, -- Need ON + mobilityControlInfoSCG-r12 MobilityControlInfoSCG-r12 OPTIONAL, -- Need ON + ..., + [[ + sCellToReleaseListSCG-Ext-r13 SCellToReleaseListExt-r13 OPTIONAL, -- Need ON + sCellToAddModListSCG-Ext-r13 SCellToAddModListExt-r13 OPTIONAL -- Need ON + ]], + [[ + sCellToAddModListSCG-Ext-v1370 SCellToAddModListExt-v1370 OPTIONAL -- Need ON + ]], + [[ + pSCellToAddMod-v1440 PSCellToAddMod-v1440 OPTIONAL -- Need ON + ]] +} + +SCG-ConfigPartSCG-v12f0 ::= SEQUENCE { + pSCellToAddMod-v12f0 PSCellToAddMod-v12f0 OPTIONAL, -- Need ON + sCellToAddModListSCG-v12f0 SCellToAddModList-v10l0 OPTIONAL -- Need ON +} + +SecurityConfigHO ::= SEQUENCE { + handoverType CHOICE { + intraLTE SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig OPTIONAL, -- Cond fullConfig + keyChangeIndicator BOOLEAN, + nextHopChainingCount NextHopChainingCount + }, + interRAT SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig, + nas-SecurityParamToEUTRA OCTET STRING (SIZE(6)) + } + }, + ... +} + + + +RRCConnectionReconfigurationComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReconfigurationComplete-r8 + RRCConnectionReconfigurationComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfigurationComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReconfigurationComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1020-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1020-IEs ::= SEQUENCE { + rlf-InfoAvailable-r10 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1130-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1250-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1250-IEs ::= SEQUENCE { + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1430-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1430-IEs ::= SEQUENCE { + perCC-GapIndicationList-r14 PerCC-GapIndicationList-r14 OPTIONAL, + numFreqEffective-r14 INTEGER (1..12) OPTIONAL, + numFreqEffectiveReduced-r14 INTEGER (1..12) OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1510-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1510-IEs ::= SEQUENCE { + scg-ConfigResponseNR-r15 OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishment ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReestablishment-r8 RRCConnectionReestablishment-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishment-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated RadioResourceConfigDedicated, + nextHopChainingCount NextHopChainingCount, + nonCriticalExtension RRCConnectionReestablishment-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishment-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReestablishmentComplete-r8 + RRCConnectionReestablishmentComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReestablishmentComplete-v920-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v920-IEs ::= SEQUENCE { + rlf-InfoAvailable-r9 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1020-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1020-IEs ::= SEQUENCE { + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1130-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1250-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1250-IEs ::= SEQUENCE { + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentReject ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentReject-r8 + RRCConnectionReestablishmentReject-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentReject-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReestablishmentReject-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishmentReject-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentRequest ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentRequest-r8 + RRCConnectionReestablishmentRequest-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentRequest-r8-IEs ::= SEQUENCE { + ue-Identity ReestabUE-Identity, + reestablishmentCause ReestablishmentCause, + spare BIT STRING (SIZE (2)) +} + +ReestabUE-Identity ::= SEQUENCE { + c-RNTI C-RNTI, + physCellId PhysCellId, + shortMAC-I ShortMAC-I +} + +ReestablishmentCause ::= ENUMERATED { + reconfigurationFailure, handoverFailure, + otherFailure, spare1} + + +RRCConnectionReject ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionReject-r8 RRCConnectionReject-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReject-r8-IEs ::= SEQUENCE { + waitTime INTEGER (1..16), + nonCriticalExtension RRCConnectionReject-v8a0-IEs OPTIONAL +} + +RRCConnectionReject-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReject-v1020-IEs OPTIONAL +} + +RRCConnectionReject-v1020-IEs ::= SEQUENCE { + extendedWaitTime-r10 INTEGER (1..1800) OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReject-v1130-IEs OPTIONAL +} + +RRCConnectionReject-v1130-IEs ::= SEQUENCE { + deprioritisationReq-r11 SEQUENCE { + deprioritisationType-r11 ENUMERATED {frequency, e-utra}, + deprioritisationTimer-r11 ENUMERATED {min5, min10, min15, min30} + } OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReject-v1320-IEs OPTIONAL +} + +RRCConnectionReject-v1320-IEs ::= SEQUENCE { + rrc-SuspendIndication-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionRelease ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionRelease-r8 RRCConnectionRelease-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRelease-r8-IEs ::= SEQUENCE { + releaseCause ReleaseCause, + redirectedCarrierInfo RedirectedCarrierInfo OPTIONAL, -- Need ON + idleModeMobilityControlInfo IdleModeMobilityControlInfo OPTIONAL, -- Need OP + nonCriticalExtension RRCConnectionRelease-v890-IEs OPTIONAL +} + +RRCConnectionRelease-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING RRCConnectionRelease-v9e0-IEs) OPTIONAL, + nonCriticalExtension RRCConnectionRelease-v920-IEs OPTIONAL +} + +-- Late non critical extensions +RRCConnectionRelease-v9e0-IEs ::= SEQUENCE { + redirectedCarrierInfo-v9e0 RedirectedCarrierInfo-v9e0 OPTIONAL, -- Cond NoRedirect-r8 + idleModeMobilityControlInfo-v9e0 IdleModeMobilityControlInfo-v9e0 OPTIONAL, -- Cond IdleInfoEUTRA + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +RRCConnectionRelease-v920-IEs ::= SEQUENCE { + cellInfoList-r9 CHOICE { + geran-r9 CellInfoListGERAN-r9, + utra-FDD-r9 CellInfoListUTRA-FDD-r9, + utra-TDD-r9 CellInfoListUTRA-TDD-r9, + ..., + utra-TDD-r10 CellInfoListUTRA-TDD-r10 + } OPTIONAL, -- Cond Redirection + nonCriticalExtension RRCConnectionRelease-v1020-IEs OPTIONAL +} + +RRCConnectionRelease-v1020-IEs ::= SEQUENCE { + extendedWaitTime-r10 INTEGER (1..1800) OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionRelease-v1320-IEs OPTIONAL +} + +RRCConnectionRelease-v1320-IEs::= SEQUENCE { + resumeIdentity-r13 ResumeIdentity-r13 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +ReleaseCause ::= ENUMERATED {loadBalancingTAUrequired, + other, cs-FallbackHighPriority-v1020, rrc-Suspend-v1320} + +RedirectedCarrierInfo ::= CHOICE { + eutra ARFCN-ValueEUTRA, + geran CarrierFreqsGERAN, + utra-FDD ARFCN-ValueUTRA, + utra-TDD ARFCN-ValueUTRA, + cdma2000-HRPD CarrierFreqCDMA2000, + cdma2000-1xRTT CarrierFreqCDMA2000, + ..., + utra-TDD-r10 CarrierFreqListUTRA-TDD-r10 +} + +RedirectedCarrierInfo-v9e0 ::= SEQUENCE { + eutra-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +CarrierFreqListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxFreqUTRA-TDD-r10)) OF ARFCN-ValueUTRA + +IdleModeMobilityControlInfo ::= SEQUENCE { + freqPriorityListEUTRA FreqPriorityListEUTRA OPTIONAL, -- Need ON + freqPriorityListGERAN FreqsPriorityListGERAN OPTIONAL, -- Need ON + freqPriorityListUTRA-FDD FreqPriorityListUTRA-FDD OPTIONAL, -- Need ON + freqPriorityListUTRA-TDD FreqPriorityListUTRA-TDD OPTIONAL, -- Need ON + bandClassPriorityListHRPD BandClassPriorityListHRPD OPTIONAL, -- Need ON + bandClassPriorityList1XRTT BandClassPriorityList1XRTT OPTIONAL, -- Need ON + t320 ENUMERATED { + min5, min10, min20, min30, min60, min120, min180, + spare1} OPTIONAL, -- Need OR + ..., + [[ freqPriorityListExtEUTRA-r12 FreqPriorityListExtEUTRA-r12 OPTIONAL -- Need ON + ]], + [[ freqPriorityListEUTRA-v1310 FreqPriorityListEUTRA-v1310 OPTIONAL, -- Need ON + freqPriorityListExtEUTRA-v1310 FreqPriorityListExtEUTRA-v1310 OPTIONAL -- Need ON + ]] +} + +IdleModeMobilityControlInfo-v9e0 ::= SEQUENCE { + freqPriorityListEUTRA-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v9e0 +} + +FreqPriorityListEUTRA ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA + +FreqPriorityListExtEUTRA-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-r12 + +FreqPriorityListEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v1310 + +FreqPriorityListExtEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v1310 + +FreqPriorityEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityEUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max +} + +FreqPriorityEUTRA-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + cellReselectionPriority-r12 CellReselectionPriority +} + +FreqPriorityEUTRA-v1310 ::= SEQUENCE { + cellReselectionSubPriority-r13 CellReselectionSubPriority-r13 OPTIONAL -- Need ON +} + +FreqsPriorityListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF FreqsPriorityGERAN + +FreqsPriorityGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF FreqPriorityUTRA-FDD + +FreqPriorityUTRA-FDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF FreqPriorityUTRA-TDD + +FreqPriorityUTRA-TDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority +} + +BandClassPriorityListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriorityHRPD + +BandClassPriorityHRPD ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority +} + +BandClassPriorityList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriority1XRTT + +BandClassPriority1XRTT ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority +} + +CellInfoListGERAN-r9 ::= SEQUENCE (SIZE (1..maxCellInfoGERAN-r9)) OF CellInfoGERAN-r9 + +CellInfoGERAN-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdGERAN, + carrierFreq-r9 CarrierFreqGERAN, + systemInformation-r9 SystemInfoListGERAN +} + +CellInfoListUTRA-FDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-FDD-r9 + +CellInfoUTRA-FDD-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdUTRA-FDD, + utra-BCCH-Container-r9 OCTET STRING +} + +CellInfoListUTRA-TDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r9 + +CellInfoUTRA-TDD-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdUTRA-TDD, + utra-BCCH-Container-r9 OCTET STRING +} + +CellInfoListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r10 + +CellInfoUTRA-TDD-r10 ::= SEQUENCE { + physCellId-r10 PhysCellIdUTRA-TDD, + carrierFreq-r10 ARFCN-ValueUTRA, + utra-BCCH-Container-r10 OCTET STRING +} + + +RRCConnectionRequest ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionRequest-r8 RRCConnectionRequest-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRequest-r8-IEs ::= SEQUENCE { + ue-Identity InitialUE-Identity, + establishmentCause EstablishmentCause, + spare BIT STRING (SIZE (1)) +} + +InitialUE-Identity ::= CHOICE { + s-TMSI S-TMSI, + randomValue BIT STRING (SIZE (40)) +} + +EstablishmentCause ::= ENUMERATED { + emergency, highPriorityAccess, mt-Access, mo-Signalling, + mo-Data, delayTolerantAccess-v1020, mo-VoiceCall-v1280, spare1} + + +RRCConnectionResume-r13 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionResume-r13 RRCConnectionResume-r13-IEs, + spare3 NULL, + spare2 NULL, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResume-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated OPTIONAL, -- Need ON + nextHopChainingCount-r13 NextHopChainingCount, + measConfig-r13 MeasConfig OPTIONAL, -- Need ON + antennaInfoDedicatedPCell-r13 AntennaInfoDedicated-v10i0 OPTIONAL, -- Need ON + drb-ContinueROHC-r13 ENUMERATED {true} OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + rrcConnectionResume-v1430-IEs RRCConnectionResume-v1430-IEs OPTIONAL +} + +RRCConnectionResume-v1430-IEs ::= SEQUENCE { + otherConfig-r14 OtherConfig-r9 OPTIONAL, -- Need ON + rrcConnectionResume-v1510-IEs RRCConnectionResume-v1510-IEs OPTIONAL +} + +RRCConnectionResume-v1510-IEs ::= SEQUENCE { + sk-Counter-r15 INTEGER (0.. 65535) OPTIONAL, -- Need ON + nr-RadioBearerConfig1-r15 OCTET STRING OPTIONAL, -- Need ON + nr-RadioBearerConfig2-r15 OCTET STRING OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeComplete-r13 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeComplete-r13-IEs ::= SEQUENCE { + selectedPLMN-Identity-r13 INTEGER (1..maxPLMN-r11) OPTIONAL, + dedicatedInfoNAS-r13 DedicatedInfoNAS OPTIONAL, + rlf-InfoAvailable-r13 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r13 ENUMERATED {true} OPTIONAL, + connEstFailInfoAvailable-r13 ENUMERATED {true} OPTIONAL, + mobilityState-r13 ENUMERATED {normal, medium, high, spare} OPTIONAL, + mobilityHistoryAvail-r13 ENUMERATED {true} OPTIONAL, + logMeasAvailableMBSFN-r13 ENUMERATED {true} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeRequest-r13 ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeRequest-r13-IEs ::= SEQUENCE { + resumeIdentity-r13 CHOICE { + resumeID-r13 ResumeIdentity-r13, + truncatedResumeID-r13 BIT STRING (SIZE (24)) + }, + shortResumeMAC-I-r13 BIT STRING (SIZE (16)), + resumeCause-r13 ResumeCause, + spare BIT STRING (SIZE (1)) +} + +ResumeCause ::= ENUMERATED { + emergency, highPriorityAccess, mt-Access, mo-Signalling, + mo-Data, delayTolerantAccess-v1020, mo-VoiceCall-v1280, spare1} + + + +RRCConnectionSetup ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionSetup-r8 RRCConnectionSetup-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetup-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated RadioResourceConfigDedicated, + nonCriticalExtension RRCConnectionSetup-v8a0-IEs OPTIONAL +} + +RRCConnectionSetup-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionSetupComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionSetupComplete-r8 RRCConnectionSetupComplete-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetupComplete-r8-IEs ::= SEQUENCE { + selectedPLMN-Identity INTEGER (1..maxPLMN-r11), + registeredMME RegisteredMME OPTIONAL, + dedicatedInfoNAS DedicatedInfoNAS, + nonCriticalExtension RRCConnectionSetupComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1020-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1020-IEs ::= SEQUENCE { + gummei-Type-r10 ENUMERATED {native, mapped} OPTIONAL, + rlf-InfoAvailable-r10 ENUMERATED {true} OPTIONAL, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + rn-SubframeConfigReq-r10 ENUMERATED {required, notRequired} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1130-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1250-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1250-IEs ::= SEQUENCE { + mobilityState-r12 ENUMERATED {normal, medium, high, spare} OPTIONAL, + mobilityHistoryAvail-r12 ENUMERATED {true} OPTIONAL, + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1320-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1320-IEs ::= SEQUENCE { + ce-ModeB-r13 ENUMERATED {supported} OPTIONAL, + s-TMSI-r13 S-TMSI OPTIONAL, + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL, + up-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, + cp-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1330-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1330-IEs ::= SEQUENCE { + ue-CE-NeedULGaps-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1430-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1430-IEs ::= SEQUENCE { + dcn-ID-r14 INTEGER (0..65535) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RegisteredMME ::= SEQUENCE { + plmn-Identity PLMN-Identity OPTIONAL, + mmegi BIT STRING (SIZE (16)), + mmec MMEC +} + + +SCGFailureInformation-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + scgFailureInformation-r12 SCGFailureInformation-r12-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCGFailureInformation-r12-IEs ::= SEQUENCE { + failureReportSCG-r12 FailureReportSCG-r12 OPTIONAL, + nonCriticalExtension SCGFailureInformation-v1310-IEs OPTIONAL +} + +SCGFailureInformation-v1310-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING SCGFailureInformation-v12d0-IEs) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Late non-critical extensions: +SCGFailureInformation-v12d0-IEs ::= SEQUENCE { + failureReportSCG-v12d0 FailureReportSCG-v12d0 OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +FailureReportSCG-r12 ::= SEQUENCE { + failureType-r12 ENUMERATED {t313-Expiry, randomAccessProblem, + rlc-MaxNumRetx, scg-ChangeFailure }, + measResultServFreqList-r12 MeasResultServFreqList-r10 OPTIONAL, + measResultNeighCells-r12 MeasResultList2EUTRA-r9 OPTIONAL, + ..., + [[ failureType-v1290 ENUMERATED {maxUL-TimingDiff-v1290} OPTIONAL + ]], + [[ measResultServFreqListExt-r13 MeasResultServFreqListExt-r13 OPTIONAL + ]] +} + +FailureReportSCG-v12d0 ::= SEQUENCE { + measResultNeighCells-v12d0 MeasResultList2EUTRA-v9e0 OPTIONAL +} + + +SCGFailureInformationNR-r15 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + scgFailureInformationNR-r15 SCGFailureInformationNR-r15-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCGFailureInformationNR-r15-IEs ::= SEQUENCE { + failureReportSCG-NR-r15 FailureReportSCG-NR-r15 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +FailureReportSCG-NR-r15 ::= SEQUENCE { + failureType-r15 ENUMERATED { + t310-Expiry, randomAccessProblem, + rlc-MaxNumRetx, + scg-ChangeFailure, scg-reconfigFailure, + srb3-IntegrityFailure}, + measResultFreqListNR-r15 MeasResultFreqListFailNR-r15 OPTIONAL, + measResultSCG-r15 OCTET STRING OPTIONAL, + ... +} + +MeasResultFreqListFailNR-r15 ::= SEQUENCE (SIZE (1..maxFreqNR-r15)) OF MeasResultFreqFailNR-r15 + +MeasResultFreqFailNR-r15 ::= SEQUENCE { + carrierFreq-r15 ARFCN-ValueNR-r15, + measResultCellList-r15 MeasResultCellListNR-r15 OPTIONAL, + ... +} + + +SCPTMConfiguration-r13 ::= SEQUENCE { + sc-mtch-InfoList-r13 SC-MTCH-InfoList-r13, + scptm-NeighbourCellList-r13 SCPTM-NeighbourCellList-r13 OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SCPTMConfiguration-v1340 OPTIONAL +} + +SCPTMConfiguration-v1340 ::= SEQUENCE { + p-b-r13 INTEGER (0..3) OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCPTMConfiguration-BR-r14 ::= SEQUENCE { + sc-mtch-InfoList-r14 SC-MTCH-InfoList-BR-r14, + scptm-NeighbourCellList-r14 SCPTM-NeighbourCellList-r13 OPTIONAL, -- Need OP + p-b-r14 INTEGER (0..3) OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SecurityModeCommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + securityModeCommand-r8 SecurityModeCommand-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeCommand-r8-IEs ::= SEQUENCE { + securityConfigSMC SecurityConfigSMC, + nonCriticalExtension SecurityModeCommand-v8a0-IEs OPTIONAL +} + +SecurityModeCommand-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SecurityConfigSMC ::= SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig, + ... +} + + +SecurityModeComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeComplete-r8 SecurityModeComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension SecurityModeComplete-v8a0-IEs OPTIONAL +} + +SecurityModeComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SecurityModeFailure ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeFailure-r8 SecurityModeFailure-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeFailure-r8-IEs ::= SEQUENCE { + nonCriticalExtension SecurityModeFailure-v8a0-IEs OPTIONAL +} + +SecurityModeFailure-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SidelinkUEInformation-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + sidelinkUEInformation-r12 SidelinkUEInformation-r12-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SidelinkUEInformation-r12-IEs ::= SEQUENCE { + commRxInterestedFreq-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, + commTxResourceReq-r12 SL-CommTxResourceReq-r12 OPTIONAL, + discRxInterest-r12 ENUMERATED {true} OPTIONAL, + discTxResourceReq-r12 INTEGER (1..63) OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SidelinkUEInformation-v1310-IEs OPTIONAL +} + +SidelinkUEInformation-v1310-IEs ::= SEQUENCE { + commTxResourceReqUC-r13 SL-CommTxResourceReq-r12 OPTIONAL, + commTxResourceInfoReqRelay-r13 SEQUENCE { + commTxResourceReqRelay-r13 SL-CommTxResourceReq-r12 OPTIONAL, + commTxResourceReqRelayUC-r13 SL-CommTxResourceReq-r12 OPTIONAL, + ue-Type-r13 ENUMERATED {relayUE, remoteUE} + } OPTIONAL, + discTxResourceReq-v1310 SEQUENCE { + carrierFreqDiscTx-r13 INTEGER (1..maxFreq) OPTIONAL, + discTxResourceReqAddFreq-r13 SL-DiscTxResourceReqPerFreqList-r13 OPTIONAL + } OPTIONAL, + discTxResourceReqPS-r13 SL-DiscTxResourceReq-r13 OPTIONAL, + discRxGapReq-r13 SL-GapRequest-r13 OPTIONAL, + discTxGapReq-r13 SL-GapRequest-r13 OPTIONAL, + discSysInfoReportFreqList-r13 SL-DiscSysInfoReportFreqList-r13 OPTIONAL, + nonCriticalExtension SidelinkUEInformation-v1430-IEs OPTIONAL +} + +SidelinkUEInformation-v1430-IEs ::= SEQUENCE { + v2x-CommRxInterestedFreqList-r14 SL-V2X-CommFreqList-r14 OPTIONAL, + p2x-CommTxType-r14 ENUMERATED {true} OPTIONAL, + v2x-CommTxResourceReq-r14 SL-V2X-CommTxFreqList-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SL-CommTxResourceReq-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, + destinationInfoList-r12 SL-DestinationInfoList-r12 +} + +SL-DiscTxResourceReqPerFreqList-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-DiscTxResourceReq-r13 + +SL-DiscTxResourceReq-r13 ::= SEQUENCE { + carrierFreqDiscTx-r13 INTEGER (1..maxFreq) OPTIONAL, + discTxResourceReq-r13 INTEGER (1..63) +} + +SL-DestinationInfoList-r12 ::= SEQUENCE (SIZE (1..maxSL-Dest-r12)) OF SL-DestinationIdentity-r12 + +SL-DestinationIdentity-r12 ::= BIT STRING (SIZE (24)) + +SL-DiscSysInfoReportFreqList-r13 ::= SEQUENCE (SIZE (1.. maxSL-DiscSysInfoReportFreq-r13)) OF SL-DiscSysInfoReport-r13 + +SL-V2X-CommFreqList-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF INTEGER (0..maxFreqV2X-1-r14) + +SL-V2X-CommTxFreqList-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF SL-V2X-CommTxResourceReq-r14 + +SL-V2X-CommTxResourceReq-r14 ::= SEQUENCE { + carrierFreqCommTx-r14 INTEGER (0.. maxFreqV2X-1-r14) OPTIONAL, + v2x-TypeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, + v2x-DestinationInfoList-r14 SL-DestinationInfoList-r12 OPTIONAL +} + + +SystemInformation-BR-r13 ::= SystemInformation + +SystemInformation-MBMS-r14 ::= SystemInformation + +SystemInformation ::= SEQUENCE { + criticalExtensions CHOICE { + systemInformation-r8 SystemInformation-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} +SystemInformation-r8-IEs ::= SEQUENCE { + sib-TypeAndInfo SEQUENCE (SIZE (1..maxSIB)) OF CHOICE { + sib2 SystemInformationBlockType2, + sib3 SystemInformationBlockType3, + sib4 SystemInformationBlockType4, + sib5 SystemInformationBlockType5, + sib6 SystemInformationBlockType6, + sib7 SystemInformationBlockType7, + sib8 SystemInformationBlockType8, + sib9 SystemInformationBlockType9, + sib10 SystemInformationBlockType10, + sib11 SystemInformationBlockType11, + ..., + sib12-v920 SystemInformationBlockType12-r9, + sib13-v920 SystemInformationBlockType13-r9, + sib14-v1130 SystemInformationBlockType14-r11, + sib15-v1130 SystemInformationBlockType15-r11, + sib16-v1130 SystemInformationBlockType16-r11, + sib17-v1250 SystemInformationBlockType17-r12, + sib18-v1250 SystemInformationBlockType18-r12, + sib19-v1250 SystemInformationBlockType19-r12, + sib20-v1310 SystemInformationBlockType20-r13, + sib21-v1430 SystemInformationBlockType21-r14 + }, + nonCriticalExtension SystemInformation-v8a0-IEs OPTIONAL +} + +SystemInformation-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType1-BR-r13 ::= SystemInformationBlockType1 + +SystemInformationBlockType1 ::= SEQUENCE { + cellAccessRelatedInfo SEQUENCE { + plmn-IdentityList PLMN-IdentityList, + trackingAreaCode TrackingAreaCode, + cellIdentity CellIdentity, + cellBarred ENUMERATED {barred, notBarred}, + intraFreqReselection ENUMERATED {allowed, notAllowed}, + csg-Indication BOOLEAN, + csg-Identity CSG-Identity OPTIONAL -- Need OR + }, + cellSelectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + q-RxLevMinOffset INTEGER (1..8) OPTIONAL -- Need OP + }, + p-Max P-Max OPTIONAL, -- Need OP + freqBandIndicator FreqBandIndicator, + schedulingInfoList SchedulingInfoList, + tdd-Config TDD-Config OPTIONAL, -- Cond TDD + si-WindowLength ENUMERATED { + ms1, ms2, ms5, ms10, ms15, ms20, + ms40}, + systemInfoValueTag INTEGER (0..31), + nonCriticalExtension SystemInformationBlockType1-v890-IEs OPTIONAL +} + +SystemInformationBlockType1-v890-IEs::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType1-v8h0-IEs) OPTIONAL, + nonCriticalExtension SystemInformationBlockType1-v920-IEs OPTIONAL +} + +-- Late non critical extensions +SystemInformationBlockType1-v8h0-IEs ::= SEQUENCE { + multiBandInfoList MultiBandInfoList OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType1-v9e0-IEs ::= SEQUENCE { + freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL, -- Cond FBI-max + multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL, -- Cond mFBI-max + nonCriticalExtension SystemInformationBlockType1-v10j0-IEs OPTIONAL +} + +SystemInformationBlockType1-v10j0-IEs ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType1-v10l0-IEs ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +SystemInformationBlockType1-v920-IEs ::= SEQUENCE { + ims-EmergencySupport-r9 ENUMERATED {true} OPTIONAL, -- Need OR + cellSelectionInfo-v920 CellSelectionInfo-v920 OPTIONAL, -- Cond RSRQ + nonCriticalExtension SystemInformationBlockType1-v1130-IEs OPTIONAL +} + +SystemInformationBlockType1-v1130-IEs ::= SEQUENCE { + tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD-OR + cellSelectionInfo-v1130 CellSelectionInfo-v1130 OPTIONAL, -- Cond WB-RSRQ + nonCriticalExtension SystemInformationBlockType1-v1250-IEs OPTIONAL +} + +SystemInformationBlockType1-v1250-IEs ::= SEQUENCE { + cellAccessRelatedInfo-v1250 SEQUENCE { + category0Allowed-r12 ENUMERATED {true} OPTIONAL -- Need OP + }, + cellSelectionInfo-v1250 CellSelectionInfo-v1250 OPTIONAL, -- Cond RSRQ2 + freqBandIndicatorPriority-r12 ENUMERATED {true} OPTIONAL, -- Cond mFBI + nonCriticalExtension SystemInformationBlockType1-v1310-IEs OPTIONAL +} + +SystemInformationBlockType1-v1310-IEs ::= SEQUENCE { + hyperSFN-r13 BIT STRING (SIZE (10)) OPTIONAL, -- Need OR + eDRX-Allowed-r13 ENUMERATED {true} OPTIONAL, -- Need OR + cellSelectionInfoCE-r13 CellSelectionInfoCE-r13 OPTIONAL, -- Need OP + bandwidthReducedAccessRelatedInfo-r13 SEQUENCE { + si-WindowLength-BR-r13 ENUMERATED { + ms20, ms40, ms60, ms80, ms120, + ms160, ms200, spare}, + si-RepetitionPattern-r13 ENUMERATED {everyRF, every2ndRF, every4thRF, + every8thRF}, + schedulingInfoList-BR-r13 SchedulingInfoList-BR-r13 OPTIONAL, -- Cond SI-BR + fdd-DownlinkOrTddSubframeBitmapBR-r13 CHOICE { + subframePattern10-r13 BIT STRING (SIZE (10)), + subframePattern40-r13 BIT STRING (SIZE (40)) + } OPTIONAL, -- Need OP + fdd-UplinkSubframeBitmapBR-r13 BIT STRING (SIZE (10)) OPTIONAL, -- Need OP + startSymbolBR-r13 INTEGER (1..4), + si-HoppingConfigCommon-r13 ENUMERATED {on,off}, + si-ValidityTime-r13 ENUMERATED {true} OPTIONAL, -- Need OP + systemInfoValueTagList-r13 SystemInfoValueTagList-r13 OPTIONAL -- Need OR + } OPTIONAL, -- Cond BW-reduced + nonCriticalExtension SystemInformationBlockType1-v1320-IEs OPTIONAL +} + +SystemInformationBlockType1-v1320-IEs ::= SEQUENCE { + freqHoppingParametersDL-r13 SEQUENCE { + mpdcch-pdsch-HoppingNB-r13 ENUMERATED {nb2, nb4} OPTIONAL, -- Need OR + interval-DLHoppingConfigCommonModeA-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-r13 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL, -- Need OR + interval-DLHoppingConfigCommonModeB-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int2, int4, int8, int16}, + interval-TDD-r13 ENUMERATED { int5, int10, int20, int40} + } OPTIONAL, -- Need OR + mpdcch-pdsch-HoppingOffset-r13 INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL -- Need OR + } OPTIONAL, -- Cond Hopping + nonCriticalExtension SystemInformationBlockType1-v1350-IEs OPTIONAL +} + +SystemInformationBlockType1-v1350-IEs ::= SEQUENCE { + cellSelectionInfoCE1-r13 CellSelectionInfoCE1-r13 OPTIONAL, -- Need OP + nonCriticalExtension SystemInformationBlockType1-v1360-IEs OPTIONAL +} + +SystemInformationBlockType1-v1360-IEs ::= SEQUENCE { + cellSelectionInfoCE1-v1360 CellSelectionInfoCE1-v1360 OPTIONAL, -- Cond QrxlevminCE1 + nonCriticalExtension SystemInformationBlockType1-v1430-IEs OPTIONAL +} + +SystemInformationBlockType1-v1430-IEs ::= SEQUENCE { + eCallOverIMS-Support-r14 ENUMERATED {true} OPTIONAL, -- Need OR + tdd-Config-v1430 TDD-Config-v1430 OPTIONAL, -- Cond TDD-OR + cellAccessRelatedInfoList-r14 SEQUENCE (SIZE (1..maxPLMN-1-r14)) OF + CellAccessRelatedInfo-r14 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v1450-IEs OPTIONAL +} + +SystemInformationBlockType1-v1450-IEs ::= SEQUENCE { + tdd-Config-v1450 TDD-Config-v1450 OPTIONAL, -- Cond TDD-OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PLMN-IdentityList ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo + +PLMN-IdentityInfo ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellReservedForOperatorUse ENUMERATED {reserved, notReserved} +} + +SchedulingInfoList ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo + +SchedulingInfo ::= SEQUENCE { + si-Periodicity ENUMERATED { + rf8, rf16, rf32, rf64, rf128, rf256, rf512}, + sib-MappingInfo SIB-MappingInfo +} + +SchedulingInfoList-BR-r13 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo-BR-r13 + +SchedulingInfo-BR-r13 ::= SEQUENCE { + si-Narrowband-r13 INTEGER (1..maxAvailNarrowBands-r13), + si-TBS-r13 ENUMERATED {b152, b208, b256, b328, b408, b504, b600, b712, + b808, b936} +} + +SIB-MappingInfo ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type + +SIB-Type ::= ENUMERATED { + sibType3, sibType4, sibType5, sibType6, + sibType7, sibType8, sibType9, sibType10, + sibType11, sibType12-v920, sibType13-v920, + sibType14-v1130, sibType15-v1130, + sibType16-v1130, sibType17-v1250, sibType18-v1250, + ..., sibType19-v1250, sibType20-v1310, sibType21-v1430} + +SystemInfoValueTagList-r13 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SystemInfoValueTagSI-r13 + +SystemInfoValueTagSI-r13 ::= INTEGER (0..3) + +CellSelectionInfo-v920 ::= SEQUENCE { + q-QualMin-r9 Q-QualMin-r9, + q-QualMinOffset-r9 INTEGER (1..8) OPTIONAL -- Need OP +} + +CellSelectionInfo-v1130 ::= SEQUENCE { + q-QualMinWB-r11 Q-QualMin-r9 +} + +CellSelectionInfo-v1250 ::= SEQUENCE { + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 +} + +CellAccessRelatedInfo-r14 ::= SEQUENCE { + plmn-IdentityList-r14 PLMN-IdentityList, + trackingAreaCode-r14 TrackingAreaCode, + cellIdentity-r14 CellIdentity +} + + +SystemInformationBlockType1-MBMS-r14 ::= SEQUENCE { + cellAccessRelatedInfo-r14 SEQUENCE { + plmn-IdentityList-r14 PLMN-IdentityList-MBMS-r14, + trackingAreaCode-r14 TrackingAreaCode, + cellIdentity-r14 CellIdentity + }, + freqBandIndicator-r14 FreqBandIndicator-r11, + multiBandInfoList-r14 MultiBandInfoList-r11 OPTIONAL, -- Need OR + schedulingInfoList-MBMS-r14 SchedulingInfoList-MBMS-r14, + si-WindowLength-r14 ENUMERATED { + ms1, ms2, ms5, ms10, ms15, ms20,ms40, ms80}, + systemInfoValueTag-r14 INTEGER (0..31), + nonMBSFN-SubframeConfig-r14 NonMBSFN-SubframeConfig-r14 OPTIONAL, --Need OR + pdsch-ConfigCommon-r14 PDSCH-ConfigCommon, + systemInformationBlockType13-r14 SystemInformationBlockType13-r9 OPTIONAL, --Need OR + cellAccessRelatedInfoList-r14 SEQUENCE (SIZE (1..maxPLMN-1-r14)) OF + CellAccessRelatedInfo-r14 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PLMN-IdentityList-MBMS-r14 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-Identity + +SchedulingInfoList-MBMS-r14 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo-MBMS-r14 + +SchedulingInfo-MBMS-r14 ::= SEQUENCE { + si-Periodicity-r14 ENUMERATED { + rf16, rf32, rf64, rf128, rf256, rf512}, + sib-MappingInfo-r14 SIB-MappingInfo-MBMS-r14 +} + +SIB-MappingInfo-MBMS-r14 ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type-MBMS-r14 + +SIB-Type-MBMS-r14 ::= ENUMERATED { + sibType10, sibType11, sibType12-v920, sibType13-v920, + sibType15-v1130, sibType16-v1130, ...} + + +NonMBSFN-SubframeConfig-r14 ::= SEQUENCE { + radioFrameAllocationPeriod-r14 ENUMERATED {rf4, rf8, rf16, rf32, rf64, rf128, rf512}, + radioFrameAllocationOffset-r14 INTEGER (0..7), + subframeAllocation-r14 BIT STRING (SIZE(9)) +} + + +UEAssistanceInformation-r11 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ueAssistanceInformation-r11 UEAssistanceInformation-r11-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEAssistanceInformation-r11-IEs ::= SEQUENCE { + powerPrefIndication-r11 ENUMERATED {normal, lowPowerConsumption} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UEAssistanceInformation-v1430-IEs OPTIONAL +} + +UEAssistanceInformation-v1430-IEs ::= SEQUENCE { + bw-Preference-r14 BW-Preference-r14 OPTIONAL, + sps-AssistanceInformation-r14 SEQUENCE { + trafficPatternInfoListSL-r14 TrafficPatternInfoList-r14 OPTIONAL, + trafficPatternInfoListUL-r14 TrafficPatternInfoList-r14 OPTIONAL + } OPTIONAL, + rlm-Report-r14 SEQUENCE { + rlm-Event-r14 ENUMERATED {earlyOutOfSync, earlyInSync}, + excessRep-MPDCCH-r14 ENUMERATED {excessRep1, excessRep2} OPTIONAL + } OPTIONAL, delayBudgetReport-r14 DelayBudgetReport-r14 OPTIONAL, + nonCriticalExtension UEAssistanceInformation-v1450-IEs OPTIONAL +} + +UEAssistanceInformation-v1450-IEs ::= SEQUENCE { + overheatingAssistance-r14 OverheatingAssistance-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +BW-Preference-r14 ::= SEQUENCE { + dl-Preference-r14 ENUMERATED {mhz1dot4, mhz5, mhz20 } OPTIONAL, + ul-Preference-r14 ENUMERATED {mhz1dot4, mhz5} OPTIONAL +} + +TrafficPatternInfoList-r14 ::= SEQUENCE (SIZE (1..maxTrafficPattern-r14)) OF TrafficPatternInfo-r14 + +TrafficPatternInfo-r14 ::= SEQUENCE { + trafficPeriodicity-r14 ENUMERATED { + sf20, sf50, sf100, sf200, sf300, sf400, sf500, + sf600, sf700, sf800, sf900, sf1000}, + timingOffset-r14 INTEGER (0..10239), + priorityInfoSL-r14 SL-Priority-r13 OPTIONAL, + logicalChannelIdentityUL-r14 INTEGER (3..10) OPTIONAL, + messageSize-r14 BIT STRING (SIZE (6)) +} + +DelayBudgetReport-r14::= CHOICE { + type1 ENUMERATED { + msMinus1280, msMinus640, msMinus320, msMinus160, + msMinus80, msMinus60, msMinus40, msMinus20, ms0, ms20, ms40, ms60, ms80, ms160, ms320, ms640, ms1280}, + + type2 ENUMERATED { + msMinus192, msMinus168,msMinus144, msMinus120, + msMinus96, msMinus72, msMinus48, msMinus24, ms0, ms24, ms48, ms72, ms96, ms120, ms144, ms168, ms192} +} + +OverheatingAssistance-r14 ::= SEQUENCE { + reducedUE-Category SEQUENCE { + reducedUE-CategoryDL INTEGER (0..19), + reducedUE-CategoryUL INTEGER (0..21) + } OPTIONAL, + reducedMaxCCs SEQUENCE { + reducedCCsDL INTEGER (0..31), + reducedCCsUL INTEGER (0..31) + } OPTIONAL +} + + +UECapabilityEnquiry ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueCapabilityEnquiry-r8 UECapabilityEnquiry-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityEnquiry-r8-IEs ::= SEQUENCE { + ue-CapabilityRequest UE-CapabilityRequest, + nonCriticalExtension UECapabilityEnquiry-v8a0-IEs OPTIONAL +} + +UECapabilityEnquiry-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UECapabilityEnquiry-v1180-IEs OPTIONAL +} + +UECapabilityEnquiry-v1180-IEs ::= SEQUENCE { + requestedFrequencyBands-r11 SEQUENCE (SIZE (1..16)) OF FreqBandIndicator-r11 OPTIONAL, + nonCriticalExtension UECapabilityEnquiry-v1310-IEs OPTIONAL +} + +UECapabilityEnquiry-v1310-IEs ::= SEQUENCE { + requestReducedFormat-r13 ENUMERATED {true} OPTIONAL, -- Need ON + requestSkipFallbackComb-r13 ENUMERATED {true} OPTIONAL, -- Need ON + requestedMaxCCsDL-r13 INTEGER (2..32) OPTIONAL, -- Need ON + requestedMaxCCsUL-r13 INTEGER (2..32) OPTIONAL, -- Need ON + requestReducedIntNonContComb-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension UECapabilityEnquiry-v1430-IEs OPTIONAL +} + +UECapabilityEnquiry-v1430-IEs ::= SEQUENCE { + requestDiffFallbackCombList-r14 BandCombinationList-r14 OPTIONAL, -- Need ON + nonCriticalExtension UECapabilityEnquiry-v1510-IEs OPTIONAL +} + +UECapabilityEnquiry-v1510-IEs ::= SEQUENCE { + requestedFreqBandsNR-MRDC-r15 OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-CapabilityRequest ::= SEQUENCE (SIZE (1..maxRAT-Capabilities)) OF RAT-Type + + +UECapabilityInformation ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + ueCapabilityInformation-r8 UECapabilityInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityInformation-r8-IEs ::= SEQUENCE { + ue-CapabilityRAT-ContainerList UE-CapabilityRAT-ContainerList, + nonCriticalExtension UECapabilityInformation-v8a0-IEs OPTIONAL +} + +UECapabilityInformation-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UECapabilityInformation-v1250-IEs OPTIONAL +} + +UECapabilityInformation-v1250-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r12 UE-RadioPagingInfo-r12 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEInformationRequest-r9 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueInformationRequest-r9 UEInformationRequest-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEInformationRequest-r9-IEs ::= SEQUENCE { + rach-ReportReq-r9 BOOLEAN, + rlf-ReportReq-r9 BOOLEAN, + nonCriticalExtension UEInformationRequest-v930-IEs OPTIONAL +} + +UEInformationRequest-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UEInformationRequest-v1020-IEs OPTIONAL +} + +UEInformationRequest-v1020-IEs ::= SEQUENCE { + logMeasReportReq-r10 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension UEInformationRequest-v1130-IEs OPTIONAL +} + +UEInformationRequest-v1130-IEs ::= SEQUENCE { + connEstFailReportReq-r11 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension UEInformationRequest-v1250-IEs OPTIONAL +} + +UEInformationRequest-v1250-IEs ::= SEQUENCE { + mobilityHistoryReportReq-r12 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEInformationResponse-r9 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueInformationResponse-r9 UEInformationResponse-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEInformationResponse-r9-IEs ::= SEQUENCE { + rach-Report-r9 SEQUENCE { + numberOfPreamblesSent-r9 NumberOfPreamblesSent-r11, + contentionDetected-r9 BOOLEAN + } OPTIONAL, + rlf-Report-r9 RLF-Report-r9 OPTIONAL, + nonCriticalExtension UEInformationResponse-v930-IEs OPTIONAL +} + +-- Late non critical extensions +UEInformationResponse-v9e0-IEs ::= SEQUENCE { + rlf-Report-v9e0 RLF-Report-v9e0 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +UEInformationResponse-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING UEInformationResponse-v9e0-IEs) OPTIONAL, + nonCriticalExtension UEInformationResponse-v1020-IEs OPTIONAL +} + +UEInformationResponse-v1020-IEs ::= SEQUENCE { + logMeasReport-r10 LogMeasReport-r10 OPTIONAL, + nonCriticalExtension UEInformationResponse-v1130-IEs OPTIONAL +} + +UEInformationResponse-v1130-IEs ::= SEQUENCE { + connEstFailReport-r11 ConnEstFailReport-r11 OPTIONAL, + nonCriticalExtension UEInformationResponse-v1250-IEs OPTIONAL +} + +UEInformationResponse-v1250-IEs ::= SEQUENCE { + mobilityHistoryReport-r12 MobilityHistoryReport-r12 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RLF-Report-r9 ::= SEQUENCE { + measResultLastServCell-r9 SEQUENCE { + rsrpResult-r9 RSRP-Range, + rsrqResult-r9 RSRQ-Range OPTIONAL + }, + measResultNeighCells-r9 SEQUENCE { + measResultListEUTRA-r9 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r9 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r9 MeasResultListGERAN OPTIONAL, + measResultsCDMA2000-r9 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + ..., + [[ locationInfo-r10 LocationInfo-r10 OPTIONAL, + failedPCellId-r10 CHOICE { + cellGlobalId-r10 CellGlobalIdEUTRA, + pci-arfcn-r10 SEQUENCE { + physCellId-r10 PhysCellId, + carrierFreq-r10 ARFCN-ValueEUTRA + } + } OPTIONAL, + reestablishmentCellId-r10 CellGlobalIdEUTRA OPTIONAL, + timeConnFailure-r10 INTEGER (0..1023) OPTIONAL, + connectionFailureType-r10 ENUMERATED {rlf, hof} OPTIONAL, + previousPCellId-r10 CellGlobalIdEUTRA OPTIONAL + ]], + [[ failedPCellId-v1090 SEQUENCE { + carrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 + } OPTIONAL + ]], + [[ basicFields-r11 SEQUENCE { + c-RNTI-r11 C-RNTI, + rlf-Cause-r11 ENUMERATED { + t310-Expiry, randomAccessProblem, + rlc-MaxNumRetx, t312-Expiry-r12}, + timeSinceFailure-r11 TimeSinceFailure-r11 + } OPTIONAL, + previousUTRA-CellId-r11 SEQUENCE { + carrierFreq-r11 ARFCN-ValueUTRA, + physCellId-r11 CHOICE { + fdd-r11 PhysCellIdUTRA-FDD, + tdd-r11 PhysCellIdUTRA-TDD + }, + cellGlobalId-r11 CellGlobalIdUTRA OPTIONAL + } OPTIONAL, + selectedUTRA-CellId-r11 SEQUENCE { + carrierFreq-r11 ARFCN-ValueUTRA, + physCellId-r11 CHOICE { + fdd-r11 PhysCellIdUTRA-FDD, + tdd-r11 PhysCellIdUTRA-TDD + } + } OPTIONAL + ]], + [[ failedPCellId-v1250 SEQUENCE { + tac-FailedPCell-r12 TrackingAreaCode + } OPTIONAL, + measResultLastServCell-v1250 RSRQ-Range-v1250 OPTIONAL, + lastServCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL + ]], + [[ drb-EstablishedWithQCI-1-r13 ENUMERATED {qci1} OPTIONAL + ]], + [[ measResultLastServCell-v1360 RSRP-Range-v1360 OPTIONAL + ]] +} + +RLF-Report-v9e0 ::= SEQUENCE { + measResultListEUTRA-v9e0 MeasResultList2EUTRA-v9e0 +} + +MeasResultList2EUTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-r9 + +MeasResultList2EUTRA-v9e0 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v9e0 + +MeasResultList2EUTRA-v1250 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v1250 + +MeasResult2EUTRA-r9 ::= SEQUENCE { + carrierFreq-r9 ARFCN-ValueEUTRA, + measResultList-r9 MeasResultListEUTRA +} + +MeasResult2EUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL +} + +MeasResult2EUTRA-v1250 ::= SEQUENCE { + rsrq-Type-r12 RSRQ-Type-r12 OPTIONAL +} + +MeasResultList2UTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2UTRA-r9 + +MeasResult2UTRA-r9 ::= SEQUENCE { + carrierFreq-r9 ARFCN-ValueUTRA, + measResultList-r9 MeasResultListUTRA +} + +MeasResultList2CDMA2000-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2CDMA2000-r9 + +MeasResult2CDMA2000-r9 ::= SEQUENCE { + carrierFreq-r9 CarrierFreqCDMA2000, + measResultList-r9 MeasResultsCDMA2000 +} + +LogMeasReport-r10 ::= SEQUENCE { + absoluteTimeStamp-r10 AbsoluteTimeInfo-r10, + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + logMeasInfoList-r10 LogMeasInfoList-r10, + logMeasAvailable-r10 ENUMERATED {true} OPTIONAL, + ... +} + +LogMeasInfoList-r10 ::= SEQUENCE (SIZE (1..maxLogMeasReport-r10)) OF LogMeasInfo-r10 + +LogMeasInfo-r10 ::= SEQUENCE { + locationInfo-r10 LocationInfo-r10 OPTIONAL, + relativeTimeStamp-r10 INTEGER (0..7200), + servCellIdentity-r10 CellGlobalIdEUTRA, + measResultServCell-r10 SEQUENCE { + rsrpResult-r10 RSRP-Range, + rsrqResult-r10 RSRQ-Range + }, + measResultNeighCells-r10 SEQUENCE { + measResultListEUTRA-r10 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r10 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r10 MeasResultList2GERAN-r10 OPTIONAL, + measResultListCDMA2000-r10 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + ..., + [[ measResultListEUTRA-v1090 MeasResultList2EUTRA-v9e0 OPTIONAL + ]], + [[ measResultListMBSFN-r12 MeasResultListMBSFN-r12 OPTIONAL, + measResultServCell-v1250 RSRQ-Range-v1250 OPTIONAL, + servCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL + ]], + [[ inDeviceCoexDetected-r13 ENUMERATED {true} OPTIONAL + ]], + [[ measResultServCell-v1360 RSRP-Range-v1360 OPTIONAL + ]] +} + +MeasResultListMBSFN-r12 ::= SEQUENCE (SIZE (1..maxMBSFN-Area)) OF MeasResultMBSFN-r12 + +MeasResultMBSFN-r12 ::= SEQUENCE { + mbsfn-Area-r12 SEQUENCE { + mbsfn-AreaId-r12 MBSFN-AreaId-r12, + carrierFreq-r12 ARFCN-ValueEUTRA-r9 + }, + rsrpResultMBSFN-r12 RSRP-Range, + rsrqResultMBSFN-r12 MBSFN-RSRQ-Range-r12, + signallingBLER-Result-r12 BLER-Result-r12 OPTIONAL, + dataBLER-MCH-ResultList-r12 DataBLER-MCH-ResultList-r12 OPTIONAL, + ... +} + +DataBLER-MCH-ResultList-r12 ::= SEQUENCE (SIZE (1.. maxPMCH-PerMBSFN)) OF DataBLER-MCH-Result-r12 + +DataBLER-MCH-Result-r12 ::= SEQUENCE { + mch-Index-r12 INTEGER (1..maxPMCH-PerMBSFN), + dataBLER-Result-r12 BLER-Result-r12 +} + +BLER-Result-r12 ::= SEQUENCE { + bler-r12 BLER-Range-r12, + blocksReceived-r12 SEQUENCE { + n-r12 BIT STRING (SIZE (3)), + m-r12 BIT STRING (SIZE (8)) + } +} + +BLER-Range-r12 ::= INTEGER(0..31) + +MeasResultList2GERAN-r10 ::= SEQUENCE (SIZE (1..maxCellListGERAN)) OF MeasResultListGERAN + +ConnEstFailReport-r11 ::= SEQUENCE { + failedCellId-r11 CellGlobalIdEUTRA, + locationInfo-r11 LocationInfo-r10 OPTIONAL, + measResultFailedCell-r11 SEQUENCE { + rsrpResult-r11 RSRP-Range, + rsrqResult-r11 RSRQ-Range OPTIONAL + }, + measResultNeighCells-r11 SEQUENCE { + measResultListEUTRA-r11 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r11 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r11 MeasResultListGERAN OPTIONAL, + measResultsCDMA2000-r11 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + numberOfPreamblesSent-r11 NumberOfPreamblesSent-r11, + contentionDetected-r11 BOOLEAN, + maxTxPowerReached-r11 BOOLEAN, + timeSinceFailure-r11 TimeSinceFailure-r11, + measResultListEUTRA-v1130 MeasResultList2EUTRA-v9e0 OPTIONAL, + ..., + [[ measResultFailedCell-v1250 RSRQ-Range-v1250 OPTIONAL, + failedCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL + ]], + [[ measResultFailedCell-v1360 RSRP-Range-v1360 OPTIONAL + ]] +} + +NumberOfPreamblesSent-r11::= INTEGER (1..200) + +TimeSinceFailure-r11 ::= INTEGER (0..172800) + +MobilityHistoryReport-r12 ::= VisitedCellInfoList-r12 + + +ULHandoverPreparationTransfer ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulHandoverPreparationTransfer-r8 ULHandoverPreparationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULHandoverPreparationTransfer-r8-IEs ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + meid BIT STRING (SIZE (56)) OPTIONAL, + dedicatedInfo DedicatedInfoCDMA2000, + nonCriticalExtension ULHandoverPreparationTransfer-v8a0-IEs OPTIONAL +} + +ULHandoverPreparationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +ULInformationTransfer ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulInformationTransfer-r8 ULInformationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType CHOICE { + dedicatedInfoNAS DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000 + }, + nonCriticalExtension ULInformationTransfer-v8a0-IEs OPTIONAL +} + +ULInformationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +ULInformationTransferMRDC-r15 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulInformationTransferMRDC-r15 ULInformationTransferMRDC-r15-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULInformationTransferMRDC-r15-IEs ::= SEQUENCE { + ul-DCCH-MessageNR-r15 OCTET STRING OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +WLANConnectionStatusReport-r13 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + wlanConnectionStatusReport-r13 WLANConnectionStatusReport-r13-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +WLANConnectionStatusReport-r13-IEs ::= SEQUENCE { + wlan-Status-r13 WLAN-Status-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension WLANConnectionStatusReport-v1430-IEs OPTIONAL +} + +WLANConnectionStatusReport-v1430-IEs ::= SEQUENCE { + wlan-Status-v1430 WLAN-Status-v1430, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType2 ::= SEQUENCE { + ac-BarringInfo SEQUENCE { + ac-BarringForEmergency BOOLEAN, + ac-BarringForMO-Signalling AC-BarringConfig OPTIONAL, -- Need OP + ac-BarringForMO-Data AC-BarringConfig OPTIONAL -- Need OP + } OPTIONAL, -- Need OP + radioResourceConfigCommon RadioResourceConfigCommonSIB, + ue-TimersAndConstants UE-TimersAndConstants, + freqInfo SEQUENCE { + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission + }, + mbsfn-SubframeConfigList MBSFN-SubframeConfigList OPTIONAL, -- Need OR + timeAlignmentTimerCommon TimeAlignmentTimer, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType2-v8h0-IEs) OPTIONAL, + [[ ssac-BarringForMMTEL-Voice-r9 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Video-r9 AC-BarringConfig OPTIONAL -- Need OP + ]], + [[ ac-BarringForCSFB-r10 AC-BarringConfig OPTIONAL -- Need OP + ]], + [[ ac-BarringSkipForMMTELVoice-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVideo-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForSMS-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringPerPLMN-List-r12 AC-BarringPerPLMN-List-r12 OPTIONAL -- Need OP + ]], + [[ voiceServiceCauseIndication-r12 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ acdc-BarringForCommon-r13 ACDC-BarringForCommon-r13 OPTIONAL, -- Need OP + acdc-BarringPerPLMN-List-r13 ACDC-BarringPerPLMN-List-r13 OPTIONAL -- Need OP + ]], + [[ + udt-RestrictingForCommon-r13 UDT-Restricting-r13 OPTIONAL, -- Need OR + udt-RestrictingPerPLMN-List-r13 UDT-RestrictingPerPLMN-List-r13 OPTIONAL, -- Need OR + cIoT-EPS-OptimisationInfo-r13 CIOT-EPS-OptimisationInfo-r13 OPTIONAL, -- Need OP + useFullResumeID-r13 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ unicastFreqHoppingInd-r13 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL, -- Need OP + videoServiceCauseIndication-r14 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ plmn-InfoList-r15 PLMN-InfoList-r15 OPTIONAL -- Need OP + ]] +} + +SystemInformationBlockType2-v8h0-IEs ::= SEQUENCE { + multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType2-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType2-v9e0-IEs ::= SEQUENCE { + ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond ul-FreqMax + nonCriticalExtension SystemInformationBlockType2-v9i0-IEs OPTIONAL +} + +SystemInformationBlockType2-v9i0-IEs ::= SEQUENCE { +-- Following field is for any non-critical extensions from REL-9 + nonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType2-v10m0-IEs) OPTIONAL, + dummy SEQUENCE {} OPTIONAL +} + +SystemInformationBlockType2-v10m0-IEs ::= SEQUENCE { + freqInfo-v10l0 SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 + } OPTIONAL, + multiBandInfoList-v10l0 SEQUENCE (SIZE (1..maxMultiBands)) OF + AdditionalSpectrumEmission-v10l0 OPTIONAL, +-- Following field is for non-critical extensions from REL-10 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AC-BarringConfig ::= SEQUENCE { + ac-BarringFactor ENUMERATED { + p00, p05, p10, p15, p20, p25, p30, p40, + p50, p60, p70, p75, p80, p85, p90, p95}, + ac-BarringTime ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512}, + ac-BarringForSpecialAC BIT STRING (SIZE(5)) +} + +MBSFN-SubframeConfigList ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig + +MBSFN-SubframeConfigList-v1430 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig-v1430 + +AC-BarringPerPLMN-List-r12 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF AC-BarringPerPLMN-r12 + +AC-BarringPerPLMN-r12 ::= SEQUENCE { + plmn-IdentityIndex-r12 INTEGER (1..maxPLMN-r11), + ac-BarringInfo-r12 SEQUENCE { + ac-BarringForEmergency-r12 BOOLEAN, + ac-BarringForMO-Signalling-r12 AC-BarringConfig OPTIONAL, -- Need OP + ac-BarringForMO-Data-r12 AC-BarringConfig OPTIONAL -- Need OP + } OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVoice-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVideo-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForSMS-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringForCSFB-r12 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Voice-r12 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Video-r12 AC-BarringConfig OPTIONAL -- Need OP +} + +ACDC-BarringForCommon-r13 ::= SEQUENCE { + acdc-HPLMNonly-r13 BOOLEAN, + barringPerACDC-CategoryList-r13 BarringPerACDC-CategoryList-r13 +} + +ACDC-BarringPerPLMN-List-r13 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF ACDC-BarringPerPLMN-r13 + +ACDC-BarringPerPLMN-r13 ::= SEQUENCE { + plmn-IdentityIndex-r13 INTEGER (1..maxPLMN-r11), + acdc-OnlyForHPLMN-r13 BOOLEAN, + barringPerACDC-CategoryList-r13 BarringPerACDC-CategoryList-r13 +} + +BarringPerACDC-CategoryList-r13 ::= SEQUENCE (SIZE (1..maxACDC-Cat-r13)) OF BarringPerACDC-Category-r13 + +BarringPerACDC-Category-r13 ::= SEQUENCE { + acdc-Category-r13 INTEGER (1..maxACDC-Cat-r13), + acdc-BarringConfig-r13 SEQUENCE { + ac-BarringFactor-r13 ENUMERATED { + p00, p05, p10, p15, p20, p25, p30, p40, + p50, p60, p70, p75, p80, p85, p90, p95}, + ac-BarringTime-r13 ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512} + } OPTIONAL -- Need OP +} + +UDT-Restricting-r13 ::= SEQUENCE { + udt-Restricting-r13 ENUMERATED {true} OPTIONAL, --Need OR + udt-RestrictingTime-r13 ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512} OPTIONAL --Need OR +} + +UDT-RestrictingPerPLMN-List-r13 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF UDT-RestrictingPerPLMN-r13 + +UDT-RestrictingPerPLMN-r13 ::= SEQUENCE { + plmn-IdentityIndex-r13 INTEGER (1..maxPLMN-r11), + udt-Restricting-r13 UDT-Restricting-r13 OPTIONAL --Need OR +} + +CIOT-EPS-OptimisationInfo-r13 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF CIOT-OptimisationPLMN-r13 + +CIOT-OptimisationPLMN-r13::= SEQUENCE { + up-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, -- Need OP + cp-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, -- Need OP + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL -- Need OP +} + +PLMN-InfoList-r15 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-Info-r15 + +PLMN-Info-r15 ::= SEQUENCE { + upperLayerIndication-r15 ENUMERATED {true} OPTIONAL -- Need OR +} + + +SystemInformationBlockType3 ::= SEQUENCE { + cellReselectionInfoCommon SEQUENCE { + q-Hyst ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + speedStateReselectionPars SEQUENCE { + mobilityStateParameters MobilityStateParameters, + q-HystSF SEQUENCE { + sf-Medium ENUMERATED { + dB-6, dB-4, dB-2, dB0}, + sf-High ENUMERATED { + dB-6, dB-4, dB-2, dB0} + } + } OPTIONAL -- Need OP + }, + cellReselectionServingFreqInfo SEQUENCE { + s-NonIntraSearch ReselectionThreshold OPTIONAL, -- Need OP + threshServingLow ReselectionThreshold, + cellReselectionPriority CellReselectionPriority + }, + intraFreqCellReselectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + p-Max P-Max OPTIONAL, -- Need OP + s-IntraSearch ReselectionThreshold OPTIONAL, -- Need OP + allowedMeasBandwidth AllowedMeasBandwidth OPTIONAL, -- Need OP + presenceAntennaPort1 PresenceAntennaPort1, + neighCellConfig NeighCellConfig, + t-ReselectionEUTRA T-Reselection, + t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL -- Need OP + }, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType3-v10j0-IEs) OPTIONAL, + [[ s-IntraSearch-v920 SEQUENCE { + s-IntraSearchP-r9 ReselectionThreshold, + s-IntraSearchQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL, -- Need OP + s-NonIntraSearch-v920 SEQUENCE { + s-NonIntraSearchP-r9 ReselectionThreshold, + s-NonIntraSearchQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL, -- Need OP + q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP + threshServingLowQ-r9 ReselectionThresholdQ-r9 OPTIONAL -- Need OP + ]], + [[ q-QualMinWB-r11 Q-QualMin-r9 OPTIONAL -- Cond WB-RSRQ + ]], + [[ q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL -- Cond RSRQ + ]], + [[ cellReselectionServingFreqInfo-v1310 CellReselectionServingFreqInfo-v1310 OPTIONAL, -- Need OP + redistributionServingInfo-r13 RedistributionServingInfo-r13 OPTIONAL, --Need OR + cellSelectionInfoCE-r13 CellSelectionInfoCE-r13 OPTIONAL, -- Need OP + t-ReselectionEUTRA-CE-r13 T-ReselectionEUTRA-CE-r13 OPTIONAL -- Need OP + ]], + [[ cellSelectionInfoCE1-r13 CellSelectionInfoCE1-r13 OPTIONAL -- Need OP + ]], + [[ cellSelectionInfoCE1-v1360 CellSelectionInfoCE1-v1360 OPTIONAL -- Cond QrxlevminCE1 + ]], + [[ cellReselectionInfoCommon-v1460 CellReselectionInfoCommon-v1460 OPTIONAL -- Need OR + ]] +} + +RedistributionServingInfo-r13 ::= SEQUENCE { + redistributionFactorServing-r13 INTEGER(0..10), + redistributionFactorCell-r13 ENUMERATED{true} OPTIONAL, --Need OP + t360-r13 ENUMERATED {min4, min8, min16, min32,infinity, + spare3,spare2,spare1}, + redistrOnPagingOnly-r13 ENUMERATED {true} OPTIONAL --Need OP +} + +CellReselectionServingFreqInfo-v1310 ::= SEQUENCE { + cellReselectionSubPriority-r13 CellReselectionSubPriority-r13 +} + +-- Late non critical extensions +SystemInformationBlockType3-v10j0-IEs ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType3-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType3-v10l0-IEs ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CellReselectionInfoCommon-v1460 ::= SEQUENCE { + s-SearchDeltaP-r14 ENUMERATED {dB6, dB9, dB12, dB15} +} + + +SystemInformationBlockType4 ::= SEQUENCE { + intraFreqNeighCellList IntraFreqNeighCellList OPTIONAL, -- Need OR + intraFreqBlackCellList IntraFreqBlackCellList OPTIONAL, -- Need OR + csg-PhysCellIdRange PhysCellIdRange OPTIONAL, -- Cond CSG + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + +IntraFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellIntra)) OF IntraFreqNeighCellInfo + +IntraFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange, + ... +} + +IntraFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange + + +SystemInformationBlockType5 ::= SEQUENCE { + interFreqCarrierFreqList InterFreqCarrierFreqList, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType5-v8h0-IEs) OPTIONAL, + [[ interFreqCarrierFreqList-v1250 InterFreqCarrierFreqList-v1250 OPTIONAL, -- Need OR + interFreqCarrierFreqListExt-r12 InterFreqCarrierFreqListExt-r12 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqListExt-v1280 InterFreqCarrierFreqListExt-v1280 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqList-v1310 InterFreqCarrierFreqList-v1310 OPTIONAL, -- Need OR + interFreqCarrierFreqListExt-v1310 InterFreqCarrierFreqListExt-v1310 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqList-v1350 InterFreqCarrierFreqList-v1350 OPTIONAL, -- Need OR + interFreqCarrierFreqListExt-v1350 InterFreqCarrierFreqListExt-v1350 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqListExt-v1360 InterFreqCarrierFreqListExt-v1360 OPTIONAL -- Need OR + ]], + [[ scptm-FreqOffset-r14 INTEGER (1..8) OPTIONAL -- Need OP + ]] +} + +-- Late non critical extensions +SystemInformationBlockType5-v8h0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v8h0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v8h0 OPTIONAL, -- Need OP + nonCriticalExtension SystemInformationBlockType5-v9e0-IEs OPTIONAL +} + +SystemInformationBlockType5-v9e0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v9e0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType5-v10j0-IEs OPTIONAL +} + +SystemInformationBlockType5-v10j0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v10j0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType5-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType5-v10l0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v10l0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType5-v13a0-IEs OPTIONAL +} + +SystemInformationBlockType5-v13a0-IEs ::= SEQUENCE { + -- Late non critical extensions from REL-10 upto REL-12 + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OR + interFreqCarrierFreqList-v13a0 InterFreqCarrierFreqList-v13a0 OPTIONAL, -- Need OR + -- Late non critical extensions from REL-13 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +InterFreqCarrierFreqList ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo + +InterFreqCarrierFreqList-v1250 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1250 + +InterFreqCarrierFreqList-v1310 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1310 + +InterFreqCarrierFreqList-v1350 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1350 + +InterFreqCarrierFreqList-v13a0 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1360 + +InterFreqCarrierFreqListExt-r12 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-r12 + +InterFreqCarrierFreqListExt-v1280 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v10j0 + +InterFreqCarrierFreqListExt-v1310 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1310 + +InterFreqCarrierFreqListExt-v1350 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1350 + +InterFreqCarrierFreqListExt-v1360 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v1360 + +InterFreqCarrierFreqInfo ::= SEQUENCE { + dl-CarrierFreq ARFCN-ValueEUTRA, + q-RxLevMin Q-RxLevMin, + p-Max P-Max OPTIONAL, -- Need OP + t-ReselectionEUTRA T-Reselection, + t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + allowedMeasBandwidth AllowedMeasBandwidth, + presenceAntennaPort1 PresenceAntennaPort1, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + neighCellConfig NeighCellConfig, + q-OffsetFreq Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList InterFreqNeighCellList OPTIONAL, -- Need OR + interFreqBlackCellList InterFreqBlackCellList OPTIONAL, -- Need OR + ..., + [[ q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP + threshX-Q-r9 SEQUENCE { + threshX-HighQ-r9 ReselectionThresholdQ-r9, + threshX-LowQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL -- Cond RSRQ + ]], + [[ q-QualMinWB-r11 Q-QualMin-r9 OPTIONAL -- Cond WB-RSRQ + ]] +} + +InterFreqCarrierFreqInfo-v8h0 ::= SEQUENCE { + multiBandInfoList MultiBandInfoList OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v9e0 ::= SEQUENCE { + dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond dl-FreqMax + multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v10j0 ::= SEQUENCE { + freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v10l0 ::= SEQUENCE { + freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v1250 ::= SEQUENCE { + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL -- Cond RSRQ2 +} + +InterFreqCarrierFreqInfo-r12 ::= SEQUENCE { + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9, + q-RxLevMin-r12 Q-RxLevMin, + p-Max-r12 P-Max OPTIONAL, -- Need OP + t-ReselectionEUTRA-r12 T-Reselection, + t-ReselectionEUTRA-SF-r12 SpeedStateScaleFactors OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + allowedMeasBandwidth-r12 AllowedMeasBandwidth, + presenceAntennaPort1-r12 PresenceAntennaPort1, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + neighCellConfig-r12 NeighCellConfig, + q-OffsetFreq-r12 Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList-r12 InterFreqNeighCellList OPTIONAL, -- Need OR + interFreqBlackCellList-r12 InterFreqBlackCellList OPTIONAL, -- Need OR + q-QualMin-r12 Q-QualMin-r9 OPTIONAL, -- Need OP + threshX-Q-r12 SEQUENCE { + threshX-HighQ-r12 ReselectionThresholdQ-r9, + threshX-LowQ-r12 ReselectionThresholdQ-r9 + } OPTIONAL, -- Cond RSRQ + q-QualMinWB-r12 Q-QualMin-r9 OPTIONAL, -- Cond WB-RSRQ + multiBandInfoList-r12 MultiBandInfoList-r11 OPTIONAL, -- Need OR + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL, -- Cond RSRQ2 +... +} + +InterFreqCarrierFreqInfo-v1310 ::= SEQUENCE { + cellReselectionSubPriority-r13 CellReselectionSubPriority-r13 OPTIONAL, -- Need OP + redistributionInterFreqInfo-r13 RedistributionInterFreqInfo-r13 OPTIONAL, --Need OP + cellSelectionInfoCE-r13 CellSelectionInfoCE-r13 OPTIONAL, -- Need OP + t-ReselectionEUTRA-CE-r13 T-ReselectionEUTRA-CE-r13 OPTIONAL -- Need OP +} + +InterFreqCarrierFreqInfo-v1350 ::= SEQUENCE { + cellSelectionInfoCE1-r13 CellSelectionInfoCE1-r13 OPTIONAL -- Need OP +} + +InterFreqCarrierFreqInfo-v1360 ::= SEQUENCE { + cellSelectionInfoCE1-v1360 CellSelectionInfoCE1-v1360 OPTIONAL -- Cond QrxlevminCE1 +} + +InterFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo + +InterFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange +} + +InterFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange + +RedistributionInterFreqInfo-r13 ::= SEQUENCE { + redistributionFactorFreq-r13 RedistributionFactor-r13 OPTIONAL, --Need OP + redistributionNeighCellList-r13 RedistributionNeighCellList-r13 OPTIONAL --Need OP +} + +RedistributionNeighCellList-r13 ::= SEQUENCE (SIZE (1..maxCellInter)) OF RedistributionNeighCell-r13 + +RedistributionNeighCell-r13 ::= SEQUENCE { + physCellId-r13 PhysCellId, + redistributionFactorCell-r13 RedistributionFactor-r13 +} + +RedistributionFactor-r13 ::= INTEGER(1..10) + + +SystemInformationBlockType6 ::= SEQUENCE { + carrierFreqListUTRA-FDD CarrierFreqListUTRA-FDD OPTIONAL, -- Need OR + carrierFreqListUTRA-TDD CarrierFreqListUTRA-TDD OPTIONAL, -- Need OR + t-ReselectionUTRA T-Reselection, + t-ReselectionUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType6-v8h0-IEs) OPTIONAL, + [[ carrierFreqListUTRA-FDD-v1250 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF + CarrierFreqInfoUTRA-v1250 OPTIONAL, -- Cond UTRA-FDD + carrierFreqListUTRA-TDD-v1250 SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF + CarrierFreqInfoUTRA-v1250 OPTIONAL, -- Cond UTRA-TDD + carrierFreqListUTRA-FDD-Ext-r12 CarrierFreqListUTRA-FDD-Ext-r12 OPTIONAL, -- Cond UTRA-FDD + carrierFreqListUTRA-TDD-Ext-r12 CarrierFreqListUTRA-TDD-Ext-r12 OPTIONAL -- Cond UTRA-TDD + ]] +} + +SystemInformationBlockType6-v8h0-IEs ::= SEQUENCE { + carrierFreqListUTRA-FDD-v8h0 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqInfoUTRA-FDD-v8h0 OPTIONAL, -- Cond UTRA-FDD + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CarrierFreqInfoUTRA-v1250 ::= SEQUENCE { + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL -- Need OP +} + +CarrierFreqListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqUTRA-FDD + +CarrierFreqUTRA-FDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + q-RxLevMin INTEGER (-60..-13), + p-MaxUTRA INTEGER (-50..33), + q-QualMin INTEGER (-24..0), + ..., + [[ threshX-Q-r9 SEQUENCE { + threshX-HighQ-r9 ReselectionThresholdQ-r9, + threshX-LowQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL -- Cond RSRQ + ]] +} + +CarrierFreqInfoUTRA-FDD-v8h0 ::= SEQUENCE { + multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL -- Need OR +} + +CarrierFreqListUTRA-FDD-Ext-r12 ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF + CarrierFreqUTRA-FDD-Ext-r12 + +CarrierFreqUTRA-FDD-Ext-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueUTRA, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + q-RxLevMin-r12 INTEGER (-60..-13), + p-MaxUTRA-r12 INTEGER (-50..33), + q-QualMin-r12 INTEGER (-24..0), + threshX-Q-r12 SEQUENCE { + threshX-HighQ-r12 ReselectionThresholdQ-r9, + threshX-LowQ-r12 ReselectionThresholdQ-r9 + } OPTIONAL, -- Cond RSRQ + multiBandInfoList-r12 SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL, -- Need OR + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ... +} + +CarrierFreqListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF CarrierFreqUTRA-TDD + +CarrierFreqUTRA-TDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + q-RxLevMin INTEGER (-60..-13), + p-MaxUTRA INTEGER (-50..33), + ... +} + +CarrierFreqListUTRA-TDD-Ext-r12 ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF + CarrierFreqUTRA-TDD-r12 + +CarrierFreqUTRA-TDD-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueUTRA, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + q-RxLevMin-r12 INTEGER (-60..-13), + p-MaxUTRA-r12 INTEGER (-50..33), + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ... +} + +FreqBandIndicator-UTRA-FDD ::= INTEGER (1..86) + + +SystemInformationBlockType7 ::= SEQUENCE { + t-ReselectionGERAN T-Reselection, + t-ReselectionGERAN-SF SpeedStateScaleFactors OPTIONAL, -- Need OR + carrierFreqsInfoList CarrierFreqsInfoListGERAN OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + +CarrierFreqsInfoListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF CarrierFreqsInfoGERAN + +CarrierFreqsInfoGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + commonInfo SEQUENCE { + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + ncc-Permitted BIT STRING (SIZE (8)), + q-RxLevMin INTEGER (0..45), + p-MaxGERAN INTEGER (0..39) OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold + }, + ... +} + + +SystemInformationBlockType8 ::= SEQUENCE { + systemTimeInfo SystemTimeInfoCDMA2000 OPTIONAL, -- Need OR + searchWindowSize INTEGER (0..15) OPTIONAL, -- Need OR + parametersHRPD SEQUENCE { + preRegistrationInfoHRPD PreRegistrationInfoHRPD, + cellReselectionParametersHRPD CellReselectionParametersCDMA2000 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + parameters1XRTT SEQUENCE { + csfb-RegistrationParam1XRTT CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP + longCodeState1XRTT BIT STRING (SIZE (42)) OPTIONAL, -- Need OR + cellReselectionParameters1XRTT CellReselectionParametersCDMA2000 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL, + [[ csfb-SupportForDualRxUEs-r9 BOOLEAN OPTIONAL, -- Need OR + cellReselectionParametersHRPD-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-HRPD + cellReselectionParameters1XRTT-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-1XRTT + csfb-RegistrationParam1XRTT-v920 CSFB-RegistrationParam1XRTT-v920 OPTIONAL, -- Cond REG-1XRTT + ac-BarringConfig1XRTT-r9 AC-BarringConfig1XRTT-r9 OPTIONAL -- Cond REG-1XRTT + ]], + [[ csfb-DualRxTxSupport-r10 ENUMERATED {true} OPTIONAL -- Cond REG-1XRTT + ]], + [[ sib8-PerPLMN-List-r11 SIB8-PerPLMN-List-r11 OPTIONAL -- Need OR + ]] +} + +CellReselectionParametersCDMA2000 ::= SEQUENCE { + bandClassList BandClassListCDMA2000, + neighCellList NeighCellListCDMA2000, + t-ReselectionCDMA2000 T-Reselection, + t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP +} + +CellReselectionParametersCDMA2000-r11 ::= SEQUENCE { + bandClassList BandClassListCDMA2000, + neighCellList-r11 SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-r11, + t-ReselectionCDMA2000 T-Reselection, + t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP +} + +CellReselectionParametersCDMA2000-v920 ::= SEQUENCE { + neighCellList-v920 NeighCellListCDMA2000-v920 +} + +NeighCellListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000 + +NeighCellCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + neighCellsPerFreqList NeighCellsPerBandclassListCDMA2000 +} + +NeighCellCDMA2000-r11 ::= SEQUENCE { + bandClass BandclassCDMA2000, + neighFreqInfoList-r11 SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-r11 +} + +NeighCellsPerBandclassListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000 + +NeighCellsPerBandclassCDMA2000 ::= SEQUENCE { + arfcn ARFCN-ValueCDMA2000, + physCellIdList PhysCellIdListCDMA2000 +} + +NeighCellsPerBandclassCDMA2000-r11 ::= SEQUENCE { + arfcn ARFCN-ValueCDMA2000, + physCellIdList-r11 SEQUENCE (SIZE (1..40)) OF PhysCellIdCDMA2000 +} + +NeighCellListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-v920 + +NeighCellCDMA2000-v920 ::= SEQUENCE { + neighCellsPerFreqList-v920 NeighCellsPerBandclassListCDMA2000-v920 +} + +NeighCellsPerBandclassListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-v920 + +NeighCellsPerBandclassCDMA2000-v920 ::= SEQUENCE { + physCellIdList-v920 PhysCellIdListCDMA2000-v920 +} + +PhysCellIdListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdCDMA2000 + +PhysCellIdListCDMA2000-v920 ::= SEQUENCE (SIZE (0..24)) OF PhysCellIdCDMA2000 + +BandClassListCDMA2000 ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassInfoCDMA2000 + +BandClassInfoCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High INTEGER (0..63), + threshX-Low INTEGER (0..63), + ... +} + +AC-BarringConfig1XRTT-r9 ::= SEQUENCE { + ac-Barring0to9-r9 INTEGER (0..63), + ac-Barring10-r9 INTEGER (0..7), + ac-Barring11-r9 INTEGER (0..7), + ac-Barring12-r9 INTEGER (0..7), + ac-Barring13-r9 INTEGER (0..7), + ac-Barring14-r9 INTEGER (0..7), + ac-Barring15-r9 INTEGER (0..7), + ac-BarringMsg-r9 INTEGER (0..7), + ac-BarringReg-r9 INTEGER (0..7), + ac-BarringEmg-r9 INTEGER (0..7) +} + +SIB8-PerPLMN-List-r11 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF SIB8-PerPLMN-r11 + +SIB8-PerPLMN-r11 ::= SEQUENCE { + plmn-Identity-r11 INTEGER (1..maxPLMN-r11), + parametersCDMA2000-r11 CHOICE { + explicitValue ParametersCDMA2000-r11, + defaultValue NULL + } +} + +ParametersCDMA2000-r11 ::= SEQUENCE { + systemTimeInfo-r11 CHOICE { + explicitValue SystemTimeInfoCDMA2000, + defaultValue NULL + } OPTIONAL, -- Need OR + searchWindowSize-r11 INTEGER (0..15), + parametersHRPD-r11 SEQUENCE { + preRegistrationInfoHRPD-r11 PreRegistrationInfoHRPD, + cellReselectionParametersHRPD-r11 CellReselectionParametersCDMA2000-r11 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + parameters1XRTT-r11 SEQUENCE { + csfb-RegistrationParam1XRTT-r11 CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP + csfb-RegistrationParam1XRTT-Ext-r11 CSFB-RegistrationParam1XRTT-v920 OPTIONAL, -- Cond REG-1XRTT-PerPLMN + longCodeState1XRTT-r11 BIT STRING (SIZE (42)) OPTIONAL, -- Cond PerPLMN-LC + cellReselectionParameters1XRTT-r11 CellReselectionParametersCDMA2000-r11 OPTIONAL, -- Need OR + ac-BarringConfig1XRTT-r11 AC-BarringConfig1XRTT-r9 OPTIONAL, -- Cond REG-1XRTT-PerPLMN + csfb-SupportForDualRxUEs-r11 BOOLEAN OPTIONAL, -- Need OR + csfb-DualRxTxSupport-r11 ENUMERATED {true} OPTIONAL -- Cond REG-1XRTT-PerPLMN + } OPTIONAL, -- Need OR + ... +} + + +SystemInformationBlockType9 ::= SEQUENCE { + hnb-Name OCTET STRING (SIZE(1..48)) OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType10 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningType OCTET STRING (SIZE (2)), + dummy OCTET STRING (SIZE (50)) OPTIONAL, -- Need OP + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType11 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningMessageSegmentType ENUMERATED {notLastSegment, lastSegment}, + warningMessageSegmentNumber INTEGER (0..63), + warningMessageSegment OCTET STRING, + dataCodingScheme OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL +} + + +SystemInformationBlockType12-r9 ::= SEQUENCE { + messageIdentifier-r9 BIT STRING (SIZE (16)), + serialNumber-r9 BIT STRING (SIZE (16)), + warningMessageSegmentType-r9 ENUMERATED {notLastSegment, lastSegment}, + warningMessageSegmentNumber-r9 INTEGER (0..63), + warningMessageSegment-r9 OCTET STRING, + dataCodingScheme-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +SystemInformationBlockType13-r9 ::= SEQUENCE { + mbsfn-AreaInfoList-r9 MBSFN-AreaInfoList-r9, + notificationConfig-r9 MBMS-NotificationConfig-r9, + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ + notificationConfig-v1430 MBMS-NotificationConfig-v1430 OPTIONAL + ]] +} + + +SystemInformationBlockType14-r11 ::= SEQUENCE { + eab-Param-r11 CHOICE { + eab-Common-r11 EAB-Config-r11, + eab-PerPLMN-List-r11 SEQUENCE (SIZE (1..maxPLMN-r11)) OF EAB-ConfigPLMN-r11 + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +EAB-ConfigPLMN-r11 ::= SEQUENCE { + eab-Config-r11 EAB-Config-r11 OPTIONAL -- Need OR +} + +EAB-Config-r11 ::= SEQUENCE { + eab-Category-r11 ENUMERATED {a, b, c}, + eab-BarringBitmap-r11 BIT STRING (SIZE (10)) +} + + +SystemInformationBlockType15-r11 ::= SEQUENCE { + mbms-SAI-IntraFreq-r11 MBMS-SAI-List-r11 OPTIONAL, -- Need OR + mbms-SAI-InterFreqList-r11 MBMS-SAI-InterFreqList-r11 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ mbms-SAI-InterFreqList-v1140 MBMS-SAI-InterFreqList-v1140 OPTIONAL -- Cond InterFreq + ]], + [[ mbms-IntraFreqCarrierType-r14 MBMS-CarrierType-r14 OPTIONAL, -- Need OR + mbms-InterFreqCarrierTypeList-r14 + MBMS-InterFreqCarrierTypeList-r14 OPTIONAL -- Need OR + ]] +} + +MBMS-SAI-List-r11 ::= SEQUENCE (SIZE (1..maxSAI-MBMS-r11)) OF MBMS-SAI-r11 + +MBMS-SAI-r11 ::= INTEGER (0..65535) + +MBMS-SAI-InterFreqList-r11 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-r11 + +MBMS-SAI-InterFreqList-v1140 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-v1140 + +MBMS-SAI-InterFreq-r11 ::= SEQUENCE { + dl-CarrierFreq-r11 ARFCN-ValueEUTRA-r9, + mbms-SAI-List-r11 MBMS-SAI-List-r11 +} + +MBMS-SAI-InterFreq-v1140 ::= SEQUENCE { + multiBandInfoList-r11 MultiBandInfoList-r11 OPTIONAL -- Need OR +} + +MBMS-InterFreqCarrierTypeList-r14 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-CarrierType-r14 + +MBMS-CarrierType-r14 ::= SEQUENCE { + carrierType-r14 ENUMERATED {mbms, fembmsMixed, fembmsDedicated}, + frameOffset-r14 INTEGER (0..3) OPTIONAL -- Need OR +} + + +SystemInformationBlockType16-r11 ::= SEQUENCE { + timeInfo-r11 SEQUENCE { + timeInfoUTC-r11 INTEGER (0..549755813887), + dayLightSavingTime-r11 BIT STRING (SIZE (2)) OPTIONAL, -- Need OR + leapSeconds-r11 INTEGER (-127..128) OPTIONAL, -- Need OR + localTimeOffset-r11 INTEGER (-63..64) OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +SystemInformationBlockType17-r12 ::= SEQUENCE { + wlan-OffloadInfoPerPLMN-List-r12 SEQUENCE (SIZE (1..maxPLMN-r11)) OF + WLAN-OffloadInfoPerPLMN-r12 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +WLAN-OffloadInfoPerPLMN-r12 ::= SEQUENCE { + wlan-OffloadConfigCommon-r12 WLAN-OffloadConfig-r12 OPTIONAL, -- Need OR + wlan-Id-List-r12 WLAN-Id-List-r12 OPTIONAL, -- Need OR + ... +} + +WLAN-Id-List-r12 ::= SEQUENCE (SIZE (1..maxWLAN-Id-r12)) OF WLAN-Identifiers-r12 + +WLAN-Identifiers-r12 ::= SEQUENCE { + ssid-r12 OCTET STRING (SIZE (1..32)) OPTIONAL, -- Need OR + bssid-r12 OCTET STRING (SIZE (6)) OPTIONAL, -- Need OR + hessid-r12 OCTET STRING (SIZE (6)) OPTIONAL, -- Need OR + ... +} + + +SystemInformationBlockType18-r12 ::= SEQUENCE { + commConfig-r12 SEQUENCE { + commRxPool-r12 SL-CommRxPoolList-r12, + commTxPoolNormalCommon-r12 SL-CommTxPoolList-r12 OPTIONAL, -- Need OR + commTxPoolExceptional-r12 SL-CommTxPoolList-r12 OPTIONAL, -- Need OR + commSyncConfig-r12 SL-SyncConfigList-r12 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ commTxPoolNormalCommonExt-r13 SL-CommTxPoolListExt-r13 OPTIONAL, -- Need OR + commTxResourceUC-ReqAllowed-r13 ENUMERATED {true} OPTIONAL, -- Need OR + commTxAllowRelayCommon-r13 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + + +SystemInformationBlockType19-r12 ::= SEQUENCE { + discConfig-r12 SEQUENCE { + discRxPool-r12 SL-DiscRxPoolList-r12, + discTxPoolCommon-r12 SL-DiscTxPoolList-r12 OPTIONAL, -- Need OR + discTxPowerInfo-r12 SL-DiscTxPowerInfoList-r12 OPTIONAL, -- Cond Tx + discSyncConfig-r12 SL-SyncConfigList-r12 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + discInterFreqList-r12 SL-CarrierFreqInfoList-r12 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ discConfig-v1310 SEQUENCE { + discInterFreqList-v1310 SL-CarrierFreqInfoList-v1310 OPTIONAL, -- Need OR + gapRequestsAllowedCommon ENUMERATED {true} OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + discConfigRelay-r13 SEQUENCE { + relayUE-Config-r13 SL-DiscConfigRelayUE-r13, + remoteUE-Config-r13 SL-DiscConfigRemoteUE-r13 + } OPTIONAL, -- Need OR + discConfigPS-13 SEQUENCE { + discRxPoolPS-r13 SL-DiscRxPoolList-r12, + discTxPoolPS-Common-r13 SL-DiscTxPoolList-r12 OPTIONAL -- Need OR + } OPTIONAL -- Need OR + ]] +} + +SL-CarrierFreqInfoList-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-CarrierFreqInfo-r12 + +SL-CarrierFreqInfoList-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-CarrierFreqInfo-v1310 + +SL-CarrierFreqInfo-r12::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + plmn-IdentityList-r12 PLMN-IdentityList4-r12 OPTIONAL -- Need OP +} + +SL-DiscConfigRelayUE-r13 ::= SEQUENCE { + threshHigh-r13 RSRP-RangeSL4-r13 OPTIONAL, -- Need OR + threshLow-r13 RSRP-RangeSL4-r13 OPTIONAL, -- Need OR + hystMax-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf} OPTIONAL, -- Cond ThreshHigh + hystMin-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12} OPTIONAL -- Cond ThreshLow +} + +SL-DiscConfigRemoteUE-r13 ::= SEQUENCE { + threshHigh-r13 RSRP-RangeSL4-r13 OPTIONAL, -- Need OR + hystMax-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12} OPTIONAL, -- Cond ThreshHigh + reselectionInfoIC-r13 ReselectionInfoRelay-r13 +} + +ReselectionInfoRelay-r13 ::= SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + -- Note that the mapping of invidual values may be different for PC5, but the granularity/ + -- number of values is same as for Uu + filterCoefficient-r13 FilterCoefficient, + minHyst-r13 ENUMERATED {dB0, dB3, + dB6, dB9, dB12, dBinf} OPTIONAL -- Need OR +} + +SL-CarrierFreqInfo-v1310::= SEQUENCE { + discResourcesNonPS-r13 SL-ResourcesInterFreq-r13 OPTIONAL, -- Need OR + discResourcesPS-r13 SL-ResourcesInterFreq-r13 OPTIONAL, -- Need OR + discConfigOther-r13 SL-DiscConfigOtherInterFreq-r13 OPTIONAL, -- Need OR + ... +} + +PLMN-IdentityList4-r12 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo2-r12 + +PLMN-IdentityInfo2-r12 ::= CHOICE { + plmn-Index-r12 INTEGER (1..maxPLMN-r11), + plmnIdentity-r12 PLMN-Identity +} + +SL-DiscTxResourcesInterFreq-r13 ::= CHOICE { + acquireSI-FromCarrier-r13 NULL, + discTxPoolCommon-r13 SL-DiscTxPoolList-r12, + requestDedicated-r13 NULL, + noTxOnCarrier-r13 NULL +} + +SL-DiscConfigOtherInterFreq-r13::= SEQUENCE { + txPowerInfo-r13 SL-DiscTxPowerInfoList-r12 OPTIONAL, -- Cond Tx + refCarrierCommon-r13 ENUMERATED {pCell} OPTIONAL, -- Need OR + discSyncConfig-r13 SL-SyncConfigListNFreq-r13 OPTIONAL, -- Need OR + discCellSelectionInfo-r13 CellSelectionInfoNFreq-r13 OPTIONAL -- Need OR +} + +SL-ResourcesInterFreq-r13 ::= SEQUENCE { + discRxResourcesInterFreq-r13 SL-DiscRxPoolList-r12 OPTIONAL, -- Need OR + discTxResourcesInterFreq-r13 SL-DiscTxResourcesInterFreq-r13 OPTIONAL -- Need OR +} + + +SystemInformationBlockType20-r13 ::= SEQUENCE { + sc-mcch-RepetitionPeriod-r13 ENUMERATED {rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256}, + sc-mcch-Offset-r13 INTEGER (0..10), + sc-mcch-FirstSubframe-r13 INTEGER (0..9), + sc-mcch-duration-r13 INTEGER (2..9) OPTIONAL, + sc-mcch-ModificationPeriod-r13 ENUMERATED {rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256, + rf512, rf1024, r2048, rf4096, rf8192, rf16384, rf32768, rf65536}, + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ br-BCCH-Config-r14 SEQUENCE { + dummy ENUMERATED {rf1}, + dummy2 ENUMERATED {rf1}, + mpdcch-Narrowband-SC-MCCH-r14 INTEGER (1..maxAvailNarrowBands-r13), + mpdcch-NumRepetition-SC-MCCH-r14 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + mpdcch-StartSF-SC-MCCH-r14 CHOICE { + fdd-r14 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, + v5, v8, v10}, + tdd-r14 ENUMERATED {v1, v2, v4, v5, v8, v10, v20} + }, + mpdcch-PDSCH-HoppingConfig-SC-MCCH-r14 ENUMERATED {off, ce-ModeA, ce-ModeB}, + sc-mcch-CarrierFreq-r14 ARFCN-ValueEUTRA-r9, + sc-mcch-Offset-BR-r14 INTEGER (0..10), + sc-mcch-RepetitionPeriod-BR-r14 ENUMERATED {rf32, rf128, rf512, rf1024, + rf2048, rf4096, rf8192, rf16384}, + sc-mcch-ModificationPeriod-BR-r14 ENUMERATED { rf32, rf128, rf256, rf512, rf1024, + rf2048, rf4096, rf8192, rf16384, rf32768, + rf65536, rf131072, rf262144, rf524288, + rf1048576} + } OPTIONAL, -- Need OR + sc-mcch-SchedulingInfo-r14 SC-MCCH-SchedulingInfo-r14 OPTIONAL, -- Need OP + pdsch-maxNumRepetitionCEmodeA-SC-MTCH-r14 + ENUMERATED { r16, r32 } OPTIONAL, -- Need OR + pdsch-maxNumRepetitionCEmodeB-SC-MTCH-r14 + ENUMERATED { + r192, r256, r384, r512, r768, r1024, + r1536, r2048} OPTIONAL -- Need OR + ]], + [[ sc-mcch-RepetitionPeriod-v1470 ENUMERATED {rf1} OPTIONAL, -- Need OR + sc-mcch-ModificationPeriod-v1470 ENUMERATED {rf1} OPTIONAL -- Need OR + ]] + +} + +SC-MCCH-SchedulingInfo-r14::= SEQUENCE { + onDurationTimerSCPTM-r14 ENUMERATED {psf10, psf20, psf100, psf300, + psf500, psf1000, psf1200, psf1600}, + drx-InactivityTimerSCPTM-r14 ENUMERATED {psf0, psf1, psf2, psf4, psf8, psf16, + psf32, psf64, psf128, psf256, ps512, + psf1024, psf2048, psf4096, psf8192, psf16384}, + schedulingPeriodStartOffsetSCPTM-r14 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2047), + sf4096 INTEGER(0..4095), + sf8192 INTEGER(0..8191) + }, + ... +} + + +SystemInformationBlockType21-r14 ::= SEQUENCE { + sl-V2X-ConfigCommon-r14 SL-V2X-ConfigCommon-r14 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +SL-V2X-ConfigCommon-r14 ::= SEQUENCE { + v2x-CommRxPool-r14 SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolNormalCommon-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + p2x-CommTxPoolNormalCommon-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolExceptional-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-SyncConfig-r14 SL-SyncConfigListV2X-r14 OPTIONAL, -- Need OR + v2x-InterFreqInfoList-r14 SL-InterFreqInfoListV2X-r14 OPTIONAL, -- Need OR + v2x-ResourceSelectionConfig-r14 SL-CommTxPoolSensingConfig-r14 OPTIONAL, -- Need OR + zoneConfig-r14 SL-ZoneConfig-r14 OPTIONAL, -- Need OR + typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR + thresSL-TxPrioritization-r14 SL-Priority-r13 OPTIONAL, -- Need OR + anchorCarrierFreqList-r14 SL-AnchorCarrierFreqList-V2X-r14 OPTIONAL, -- Need OR + offsetDFN-r14 INTEGER (0..1000) OPTIONAL, -- Need OR + cbr-CommonTxConfigList-r14 SL-CBR-CommonTxConfigList-r14 OPTIONAL -- Need OR +} + + + +AntennaInfoCommon ::= SEQUENCE { + antennaPortsCount ENUMERATED {an1, an2, an4, spare1} +} + +AntennaInfoDedicated ::= SEQUENCE { + transmissionMode ENUMERATED { + tm1, tm2, tm3, tm4, tm5, tm6, + tm7, tm8-v920}, + codebookSubsetRestriction CHOICE { + n2TxAntenna-tm3 BIT STRING (SIZE (2)), + n4TxAntenna-tm3 BIT STRING (SIZE (4)), + n2TxAntenna-tm4 BIT STRING (SIZE (6)), + n4TxAntenna-tm4 BIT STRING (SIZE (64)), + n2TxAntenna-tm5 BIT STRING (SIZE (4)), + n4TxAntenna-tm5 BIT STRING (SIZE (16)), + n2TxAntenna-tm6 BIT STRING (SIZE (4)), + n4TxAntenna-tm6 BIT STRING (SIZE (16)) + } OPTIONAL, -- Cond TM + ue-TransmitAntennaSelection CHOICE{ + release NULL, + setup ENUMERATED {closedLoop, openLoop} + } +} + +AntennaInfoDedicated-v920 ::= SEQUENCE { + codebookSubsetRestriction-v920 CHOICE { + n2TxAntenna-tm8-r9 BIT STRING (SIZE (6)), + n4TxAntenna-tm8-r9 BIT STRING (SIZE (32)) + } OPTIONAL -- Cond TM8 +} + +AntennaInfoDedicated-r10 ::= SEQUENCE { + transmissionMode-r10 ENUMERATED { + tm1, tm2, tm3, tm4, tm5, tm6, tm7, tm8-v920, + tm9-v1020, tm10-v1130, spare6, spare5, spare4, + spare3, spare2, spare1}, + codebookSubsetRestriction-r10 BIT STRING OPTIONAL, -- Cond TMX + ue-TransmitAntennaSelection CHOICE{ + release NULL, + setup ENUMERATED {closedLoop, openLoop} + } +} + +AntennaInfoDedicated-v10i0::= SEQUENCE { + maxLayersMIMO-r10 ENUMERATED {twoLayers, fourLayers, eightLayers} OPTIONAL -- Need OR +} + +AntennaInfoDedicated-v1250 ::= SEQUENCE { + alternativeCodebookEnabledFor4TX-r12 BOOLEAN +} + +AntennaInfoDedicated-v1430 ::= SEQUENCE { + ce-UE-TxAntennaSelection-config-r14 ENUMERATED {on} OPTIONAL -- Need OR +} + + +AntennaInfoUL-r10 ::= SEQUENCE { + transmissionModeUL-r10 ENUMERATED {tm1, tm2, spare6, spare5, + spare4, spare3, spare2, spare1} OPTIONAL, -- Need OR + fourAntennaPortActivated-r10 ENUMERATED {setup} OPTIONAL -- Need OR +} + + +CQI-ReportAperiodic-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-ReportModeAperiodic-r10 CQI-ReportModeAperiodic, + aperiodicCSI-Trigger-r10 SEQUENCE { + trigger1-r10 BIT STRING (SIZE (8)), + trigger2-r10 BIT STRING (SIZE (8)) + } OPTIONAL -- Need OR + } +} + +CQI-ReportAperiodic-v1250 ::= CHOICE { + release NULL, + setup SEQUENCE { + aperiodicCSI-Trigger-v1250 SEQUENCE { + trigger-SubframeSetIndicator-r12 ENUMERATED {s1, s2}, + trigger1-SubframeSetIndicator-r12 BIT STRING (SIZE (8)), + trigger2-SubframeSetIndicator-r12 BIT STRING (SIZE (8)) + } + } +} + +CQI-ReportAperiodic-v1310 ::= CHOICE { + release NULL, + setup SEQUENCE { + aperiodicCSI-Trigger-v1310 SEQUENCE { + trigger1-r13 BIT STRING (SIZE (32)), + trigger2-r13 BIT STRING (SIZE (32)), + trigger3-r13 BIT STRING (SIZE (32)), + trigger4-r13 BIT STRING (SIZE (32)), + trigger5-r13 BIT STRING (SIZE (32)), + trigger6-r13 BIT STRING (SIZE (32)) + } OPTIONAL, -- Need ON + aperiodicCSI-Trigger2-r13 CHOICE { + release NULL, + setup SEQUENCE { + trigger1-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger2-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger3-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger4-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger5-SubframeSetIndicator-r13 BIT STRING (SIZE (32)), + trigger6-SubframeSetIndicator-r13 BIT STRING (SIZE (32)) + } + } OPTIONAL -- Need ON + } +} + +CQI-ReportAperiodicProc-r11 ::= SEQUENCE { + cqi-ReportModeAperiodic-r11 CQI-ReportModeAperiodic, + trigger01-r11 BOOLEAN, + trigger10-r11 BOOLEAN, + trigger11-r11 BOOLEAN +} + +CQI-ReportAperiodicProc-v1310 ::= SEQUENCE { + trigger001-r13 BOOLEAN, + trigger010-r13 BOOLEAN, + trigger011-r13 BOOLEAN, + trigger100-r13 BOOLEAN, + trigger101-r13 BOOLEAN, + trigger110-r13 BOOLEAN, + trigger111-r13 BOOLEAN +} + +CQI-ReportAperiodicHybrid-r14 ::= SEQUENCE { + triggers-r14 CHOICE { + oneBit-r14 SEQUENCE { + trigger1-Indicator-r14 BIT STRING (SIZE (8)) + }, + twoBit-r14 SEQUENCE { + trigger01-Indicator-r14 BIT STRING (SIZE (8)), + trigger10-Indicator-r14 BIT STRING (SIZE (8)), + trigger11-Indicator-r14 BIT STRING (SIZE (8)) + }, + threeBit-r14 SEQUENCE { + trigger001-Indicator-r14 BIT STRING (SIZE (32)), + trigger010-Indicator-r14 BIT STRING (SIZE (32)), + trigger011-Indicator-r14 BIT STRING (SIZE (32)), + trigger100-Indicator-r14 BIT STRING (SIZE (32)) , + trigger101-Indicator-r14 BIT STRING (SIZE (32)), + trigger110-Indicator-r14 BIT STRING (SIZE (32)), + trigger111-Indicator-r14 BIT STRING (SIZE (32)) + } + } OPTIONAL -- Need OR +} + +CQI-ReportModeAperiodic ::= ENUMERATED { + rm12, rm20, rm22, rm30, rm31, + rm32-v1250, rm10-v1310, rm11-v1310 +} + + +CQI-ReportBoth-r11 ::= SEQUENCE { + csi-IM-ConfigToReleaseList-r11 CSI-IM-ConfigToReleaseList-r11 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModList-r11 CSI-IM-ConfigToAddModList-r11 OPTIONAL, -- Need ON + csi-ProcessToReleaseList-r11 CSI-ProcessToReleaseList-r11 OPTIONAL, -- Need ON + csi-ProcessToAddModList-r11 CSI-ProcessToAddModList-r11 OPTIONAL -- Need ON +} + +CQI-ReportBoth-v1250 ::= SEQUENCE { + csi-IM-ConfigToReleaseListExt-r12 CSI-IM-ConfigId-v1250 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModListExt-r12 CSI-IM-ConfigExt-r12 OPTIONAL -- Need ON +} + +CQI-ReportBoth-v1310 ::= SEQUENCE { + csi-IM-ConfigToReleaseListExt-r13 CSI-IM-ConfigToReleaseListExt-r13 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModListExt-r13 CSI-IM-ConfigToAddModListExt-r13 OPTIONAL -- Need ON +} + +CSI-IM-ConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-Config-r11 + +CSI-IM-ConfigToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-IM-v1310)) OF CSI-IM-ConfigExt-r12 + +CSI-IM-ConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-ConfigId-r11 + +CSI-IM-ConfigToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-IM-v1310)) OF CSI-IM-ConfigId-v1310 + +CSI-ProcessToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF CSI-Process-r11 + +CSI-ProcessToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF CSI-ProcessId-r11 + +CQI-ReportBothProc-r11 ::= SEQUENCE { + ri-Ref-CSI-ProcessId-r11 CSI-ProcessId-r11 OPTIONAL, -- Need OR + pmi-RI-Report-r11 ENUMERATED {setup} OPTIONAL -- Need OR +} + + +CQI-ReportConfig ::= SEQUENCE { + cqi-ReportModeAperiodic CQI-ReportModeAperiodic OPTIONAL, -- Need OR + nomPDSCH-RS-EPRE-Offset INTEGER (-1..6), + cqi-ReportPeriodic CQI-ReportPeriodic OPTIONAL -- Need ON +} + +CQI-ReportConfig-v920 ::= SEQUENCE { + cqi-Mask-r9 ENUMERATED {setup} OPTIONAL, -- Cond cqi-Setup + pmi-RI-Report-r9 ENUMERATED {setup} OPTIONAL -- Cond PMIRI +} + +CQI-ReportConfig-r10 ::= SEQUENCE { + cqi-ReportAperiodic-r10 CQI-ReportAperiodic-r10 OPTIONAL, -- Need ON + nomPDSCH-RS-EPRE-Offset INTEGER (-1..6), + cqi-ReportPeriodic-r10 CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON + pmi-RI-Report-r9 ENUMERATED {setup} OPTIONAL, -- Cond PMIRIPCell + csi-SubframePatternConfig-r10 CHOICE { + release NULL, + setup SEQUENCE { + csi-MeasSubframeSet1-r10 MeasSubframePattern-r10, + csi-MeasSubframeSet2-r10 MeasSubframePattern-r10 + } + } OPTIONAL -- Need ON +} + +CQI-ReportConfig-v1130 ::= SEQUENCE { + cqi-ReportPeriodic-v1130 CQI-ReportPeriodic-v1130, + cqi-ReportBoth-r11 CQI-ReportBoth-r11 +} + +CQI-ReportConfig-v1250 ::= SEQUENCE { + csi-SubframePatternConfig-r12 CHOICE { + release NULL, + setup SEQUENCE { + csi-MeasSubframeSets-r12 BIT STRING (SIZE (10)) + } + } OPTIONAL, -- Need ON + cqi-ReportBoth-v1250 CQI-ReportBoth-v1250 OPTIONAL, -- Need ON + cqi-ReportAperiodic-v1250 CQI-ReportAperiodic-v1250 OPTIONAL, -- Need ON + altCQI-Table-r12 ENUMERATED { + allSubframes, csi-SubframeSet1, + csi-SubframeSet2, spare1} OPTIONAL -- Need OP +} + +CQI-ReportConfig-v1310 ::= SEQUENCE { + cqi-ReportBoth-v1310 CQI-ReportBoth-v1310 OPTIONAL, -- Need ON + cqi-ReportAperiodic-v1310 CQI-ReportAperiodic-v1310 OPTIONAL, -- Need ON + cqi-ReportPeriodic-v1310 CQI-ReportPeriodic-v1310 OPTIONAL -- Need ON +} + +CQI-ReportConfig-v1320 ::= SEQUENCE { + cqi-ReportPeriodic-v1320 CQI-ReportPeriodic-v1320 OPTIONAL -- Need ON +} + +CQI-ReportConfig-v1430 ::= SEQUENCE { + cqi-ReportAperiodicHybrid-r14 CQI-ReportAperiodicHybrid-r14 OPTIONAL -- Need ON +} + +CQI-ReportConfigSCell-r10 ::= SEQUENCE { + cqi-ReportModeAperiodic-r10 CQI-ReportModeAperiodic OPTIONAL, -- Need OR + nomPDSCH-RS-EPRE-Offset-r10 INTEGER (-1..6), + cqi-ReportPeriodicSCell-r10 CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON + pmi-RI-Report-r10 ENUMERATED {setup} OPTIONAL -- Cond PMIRISCell +} + + + +CQI-ReportPeriodic ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-PUCCH-ResourceIndex INTEGER (0..1185), + cqi-pmi-ConfigIndex INTEGER (0..1023), + cqi-FormatIndicatorPeriodic CHOICE { + widebandCQI NULL, + subbandCQI SEQUENCE { + k INTEGER (1..4) + } + }, + ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR + simultaneousAckNackAndCQI BOOLEAN + } +} + +CQI-ReportPeriodic-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-PUCCH-ResourceIndex-r10 INTEGER (0..1184), + cqi-PUCCH-ResourceIndexP1-r10 INTEGER (0..1184) OPTIONAL, -- Need OR + cqi-pmi-ConfigIndex INTEGER (0..1023), + cqi-FormatIndicatorPeriodic-r10 CHOICE { + widebandCQI-r10 SEQUENCE { + csi-ReportMode-r10 ENUMERATED {submode1, submode2} OPTIONAL -- Need OR + }, + subbandCQI-r10 SEQUENCE { + k INTEGER (1..4), + periodicityFactor-r10 ENUMERATED {n2, n4} + } + }, + ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR + simultaneousAckNackAndCQI BOOLEAN, + cqi-Mask-r9 ENUMERATED {setup} OPTIONAL, -- Need OR + csi-ConfigIndex-r10 CHOICE { + release NULL, + setup SEQUENCE { + cqi-pmi-ConfigIndex2-r10 INTEGER (0..1023), + ri-ConfigIndex2-r10 INTEGER (0..1023) OPTIONAL -- Need OR + } + } OPTIONAL -- Need ON + } +} + + +CQI-ReportPeriodic-v1130 ::= SEQUENCE { + simultaneousAckNackAndCQI-Format3-r11 ENUMERATED {setup} OPTIONAL, -- Need OR + cqi-ReportPeriodicProcExtToReleaseList-r11 CQI-ReportPeriodicProcExtToReleaseList-r11 OPTIONAL, -- Need ON + cqi-ReportPeriodicProcExtToAddModList-r11 CQI-ReportPeriodicProcExtToAddModList-r11 OPTIONAL -- Need ON +} + +CQI-ReportPeriodic-v1310 ::= SEQUENCE { + cri-ReportConfig-r13 CRI-ReportConfig-r13 OPTIONAL, -- Need OR + simultaneousAckNackAndCQI-Format4-Format5-r13 ENUMERATED {setup} OPTIONAL-- Need OR +} + +CQI-ReportPeriodic-v1320 ::= SEQUENCE { + periodicityFactorWB-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR +} + +CQI-ReportPeriodicProcExtToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCQI-ProcExt-r11)) OF CQI-ReportPeriodicProcExt-r11 + +CQI-ReportPeriodicProcExtToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCQI-ProcExt-r11)) OF CQI-ReportPeriodicProcExtId-r11 + +CQI-ReportPeriodicProcExt-r11 ::= SEQUENCE { + cqi-ReportPeriodicProcExtId-r11 CQI-ReportPeriodicProcExtId-r11, + cqi-pmi-ConfigIndex-r11 INTEGER (0..1023), + cqi-FormatIndicatorPeriodic-r11 CHOICE { + widebandCQI-r11 SEQUENCE { + csi-ReportMode-r11 ENUMERATED {submode1, submode2} OPTIONAL -- Need OR + }, + subbandCQI-r11 SEQUENCE { + k INTEGER (1..4), + periodicityFactor-r11 ENUMERATED {n2, n4} + } + }, + ri-ConfigIndex-r11 INTEGER (0..1023) OPTIONAL, -- Need OR + csi-ConfigIndex-r11 CHOICE { + release NULL, + setup SEQUENCE { + cqi-pmi-ConfigIndex2-r11 INTEGER (0..1023), + ri-ConfigIndex2-r11 INTEGER (0..1023) OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + ..., + [[ cri-ReportConfig-r13 CRI-ReportConfig-r13 OPTIONAL -- Need ON + ]], + [[ periodicityFactorWB-r13 ENUMERATED {n2, n4} OPTIONAL -- Need ON + ]] +} + +CRI-ReportConfig-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + cri-ConfigIndex-r13 CRI-ConfigIndex-r13, + cri-ConfigIndex2-r13 CRI-ConfigIndex-r13 OPTIONAL -- Need OR + } +} + +CRI-ConfigIndex-r13 ::= INTEGER (0..1023) + + +CQI-ReportPeriodicProcExtId-r11 ::= INTEGER (1..maxCQI-ProcExt-r11) + + +CrossCarrierSchedulingConfig-r10 ::= SEQUENCE { + schedulingCellInfo-r10 CHOICE { + own-r10 SEQUENCE { -- No cross carrier scheduling + cif-Presence-r10 BOOLEAN + }, + other-r10 SEQUENCE { -- Cross carrier scheduling + schedulingCellId-r10 ServCellIndex-r10, + pdsch-Start-r10 INTEGER (1..4) + } + } +} + +CrossCarrierSchedulingConfig-r13 ::= SEQUENCE { + schedulingCellInfo-r13 CHOICE { + own-r13 SEQUENCE { -- No cross carrier scheduling + cif-Presence-r13 BOOLEAN + }, + other-r13 SEQUENCE { -- Cross carrier scheduling + schedulingCellId-r13 ServCellIndex-r13, + pdsch-Start-r13 INTEGER (1..4), + cif-InSchedulingCell-r13 INTEGER (1..7) + } + } +} + +CrossCarrierSchedulingConfigLAA-UL-r14 ::= SEQUENCE { + schedulingCellId-r14 ServCellIndex-r13, + cif-InSchedulingCell-r14 INTEGER (1..7) +} + +CSI-IM-Config-r11 ::= SEQUENCE { + csi-IM-ConfigId-r11 CSI-IM-ConfigId-r11, + resourceConfig-r11 INTEGER (0..31), + subframeConfig-r11 INTEGER (0..154), + ..., + [[ interferenceMeasRestriction-r13 BOOLEAN OPTIONAL -- Need ON + ]] +} + +CSI-IM-ConfigExt-r12 ::= SEQUENCE { + csi-IM-ConfigId-v1250 CSI-IM-ConfigId-v1250, + resourceConfig-r12 INTEGER (0..31), + subframeConfig-r12 INTEGER (0..154), + ..., + [[ interferenceMeasRestriction-r13 BOOLEAN OPTIONAL, -- Need ON + csi-IM-ConfigId-v1310 CSI-IM-ConfigId-v1310 OPTIONAL -- Need ON + ]] +} + + +CSI-IM-ConfigId-r11 ::= INTEGER (1..maxCSI-IM-r11) +CSI-IM-ConfigId-r12 ::= INTEGER (1..maxCSI-IM-r12) +CSI-IM-ConfigId-v1250 ::= INTEGER (maxCSI-IM-r12) +CSI-IM-ConfigId-v1310 ::= INTEGER (minCSI-IM-r13..maxCSI-IM-r13) +CSI-IM-ConfigId-r13 ::= INTEGER (1..maxCSI-IM-r13) + + +CSI-Process-r11 ::= SEQUENCE { + csi-ProcessId-r11 CSI-ProcessId-r11, + csi-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11, + csi-IM-ConfigId-r11 CSI-IM-ConfigId-r11, + p-C-AndCBSRList-r11 P-C-AndCBSR-Pair-r13a, + cqi-ReportBothProc-r11 CQI-ReportBothProc-r11 OPTIONAL, -- Need OR + cqi-ReportPeriodicProcId-r11 INTEGER (0..maxCQI-ProcExt-r11) OPTIONAL, -- Need OR + cqi-ReportAperiodicProc-r11 CQI-ReportAperiodicProc-r11 OPTIONAL, -- Need OR + ..., + [[ alternativeCodebookEnabledFor4TXProc-r12 ENUMERATED {true} OPTIONAL, -- Need ON + csi-IM-ConfigIdList-r12 CHOICE { + release NULL, + setup SEQUENCE (SIZE (1..2)) OF CSI-IM-ConfigId-r12 + } OPTIONAL, -- Need ON + cqi-ReportAperiodicProc2-r12 CHOICE { + release NULL, + setup CQI-ReportAperiodicProc-r11 + } OPTIONAL -- Need ON + ]], + [[ cqi-ReportAperiodicProc-v1310 CHOICE { + release NULL, + setup CQI-ReportAperiodicProc-v1310 + } OPTIONAL, -- Need ON + cqi-ReportAperiodicProc2-v1310 CHOICE { + release NULL, + setup CQI-ReportAperiodicProc-v1310 + } OPTIONAL, -- Need ON + eMIMO-Type-r13 CSI-RS-ConfigEMIMO-r13 OPTIONAL -- Need ON + ]], + [[ eMIMO-Type-v1430 CSI-RS-ConfigEMIMO-v1430 OPTIONAL, -- Need ON + eMIMO-Hybrid-r14 CSI-RS-ConfigEMIMO-Hybrid-r14 OPTIONAL, -- Need ON + advancedCodebookEnabled-r14 BOOLEAN OPTIONAL -- Need ON + ]] +} + + +CSI-ProcessId-r11 ::= INTEGER (1..maxCSI-Proc-r11) + + +CSI-RS-Config-r10 ::= SEQUENCE { + csi-RS-r10 CHOICE { + release NULL, + setup SEQUENCE { + antennaPortsCount-r10 ENUMERATED {an1, an2, an4, an8}, + resourceConfig-r10 INTEGER (0..31), + subframeConfig-r10 INTEGER (0..154), + p-C-r10 INTEGER (-8..15) + } + } OPTIONAL, -- Need ON + zeroTxPowerCSI-RS-r10 ZeroTxPowerCSI-RS-Conf-r12 OPTIONAL -- Need ON +} + +CSI-RS-Config-v1250 ::= SEQUENCE { + zeroTxPowerCSI-RS2-r12 ZeroTxPowerCSI-RS-Conf-r12 OPTIONAL, -- Need ON + ds-ZeroTxPowerCSI-RS-r12 CHOICE { + release NULL, + setup SEQUENCE { + zeroTxPowerCSI-RS-List-r12 SEQUENCE (SIZE (1..maxDS-ZTP-CSI-RS-r12)) OF ZeroTxPowerCSI-RS-r12 + } + } OPTIONAL -- Need ON +} + +CSI-RS-Config-v1310 ::= SEQUENCE { + eMIMO-Type-r13 CSI-RS-ConfigEMIMO-r13 OPTIONAL -- Need ON +} + +CSI-RS-Config-v1430 ::= SEQUENCE { + eMIMO-Type-v1430 CSI-RS-ConfigEMIMO-v1430 OPTIONAL, -- Need ON + eMIMO-Hybrid-r14 CSI-RS-ConfigEMIMO-Hybrid-r14 OPTIONAL, -- Need ON + advancedCodebookEnabled-r14 BOOLEAN OPTIONAL -- Need ON +} + +ZeroTxPowerCSI-RS-Conf-r12 ::= CHOICE { + release NULL, + setup ZeroTxPowerCSI-RS-r12 +} + +ZeroTxPowerCSI-RS-r12 ::= SEQUENCE { + zeroTxPowerResourceConfigList-r12 BIT STRING (SIZE (16)), + zeroTxPowerSubframeConfig-r12 INTEGER (0..154) +} + + +CSI-RS-ConfigBeamformed-r13 ::= SEQUENCE { + csi-RS-ConfigNZPIdListExt-r13 SEQUENCE (SIZE (1..7)) OF CSI-RS-ConfigNZPId-r13 OPTIONAL, -- Need OR + csi-IM-ConfigIdList-r13 SEQUENCE (SIZE (1..8)) OF CSI-IM-ConfigId-r13 OPTIONAL, -- Need OR + p-C-AndCBSR-PerResourceConfigList-r13 SEQUENCE (SIZE (1..8)) OF P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR + ace-For4Tx-PerResourceConfigList-r13 SEQUENCE (SIZE (1..7)) OF BOOLEAN OPTIONAL, -- Need OR + alternativeCodebookEnabledBeamformed-r13 ENUMERATED {true} OPTIONAL, -- Need OR + channelMeasRestriction-r13 ENUMERATED {on} OPTIONAL -- Need OR +} + +CSI-RS-ConfigBeamformed-r14 ::= SEQUENCE { + csi-RS-ConfigNZPIdListExt-r14 SEQUENCE (SIZE (1..7)) OF CSI-RS-ConfigNZPId-r13 OPTIONAL, -- Need OR + csi-IM-ConfigIdList-r14 SEQUENCE (SIZE (1..8)) OF CSI-IM-ConfigId-r13 OPTIONAL, -- Need OR + p-C-AndCBSR-PerResourceConfigList-r14 SEQUENCE (SIZE (1..8)) OF P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR + ace-For4Tx-PerResourceConfigList-r14 SEQUENCE (SIZE (1..7)) OF BOOLEAN OPTIONAL, -- Need OR + alternativeCodebookEnabledBeamformed-r14 ENUMERATED {true} OPTIONAL, -- Need OR + channelMeasRestriction-r14 ENUMERATED {on} OPTIONAL, -- Need OR + csi-RS-ConfigNZP-ApList-r14 SEQUENCE (SIZE (1..8)) OF CSI-RS-ConfigNZP-r11 + OPTIONAL, -- Need OR + nzp-ResourceConfigOriginal-v1430 CSI-RS-Config-NZP-v1430 OPTIONAL, -- Need OR + csi-RS-NZP-Activation-r14 CSI-RS-ConfigNZP-Activation-r14 OPTIONAL -- Need OR +} + +CSI-RS-ConfigBeamformed-v1430::= SEQUENCE { + csi-RS-ConfigNZP-ApList-r14 SEQUENCE (SIZE (1..8)) OF CSI-RS-ConfigNZP-r11 + OPTIONAL, -- Need OR + nzp-ResourceConfigOriginal-v1430 CSI-RS-Config-NZP-v1430 OPTIONAL, -- Need OR + csi-RS-NZP-Activation-r14 CSI-RS-ConfigNZP-Activation-r14 OPTIONAL -- Need OR +} + +CSI-RS-Config-NZP-v1430::= SEQUENCE { + transmissionComb-r14 NZP-TransmissionComb-r14 OPTIONAL, -- Need OR + frequencyDensity-r14 NZP-FrequencyDensity-r14 OPTIONAL -- Need OR +} + +CSI-RS-ConfigNZP-Activation-r14::= SEQUENCE { + csi-RS-NZP-mode-r14 ENUMERATED {semiPersistent, aperiodic}, + activatedResources-r14 INTEGER (0..4) +} + + +CSI-RS-ConfigEMIMO-r13 ::= CHOICE { + release NULL, + setup CHOICE { + nonPrecoded-r13 CSI-RS-ConfigNonPrecoded-r13, + beamformed-r13 CSI-RS-ConfigBeamformed-r13 + } +} + +CSI-RS-ConfigEMIMO-v1430 ::= CHOICE { + release NULL, + setup CHOICE { + nonPrecoded-v1430 CSI-RS-ConfigNonPrecoded-v1430, + beamformed-v1430 CSI-RS-ConfigBeamformed-v1430 + } +} + +CSI-RS-ConfigEMIMO2-r14 ::= CHOICE { + release NULL, + setup CSI-RS-ConfigBeamformed-r14 +} + +CSI-RS-ConfigEMIMO-Hybrid-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + periodicityOffsetIndex-r14 INTEGER (0..1023) OPTIONAL, -- Need OR + eMIMO-Type2-r14 CSI-RS-ConfigEMIMO2-r14 OPTIONAL -- Need ON + } +} + + + +CSI-RS-ConfigNonPrecoded-r13 ::= SEQUENCE { + p-C-AndCBSRList-r13 P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR + codebookConfigN1-r13 ENUMERATED {n1, n2, n3, n4, n8}, + codebookConfigN2-r13 ENUMERATED {n1, n2, n3, n4, n8}, + codebookOverSamplingRateConfig-O1-r13 ENUMERATED {n4, n8} OPTIONAL, -- Need OR + codebookOverSamplingRateConfig-O2-r13 ENUMERATED {n4, n8} OPTIONAL, -- Need OR + codebookConfig-r13 INTEGER (1..4), + csi-IM-ConfigIdList-r13 SEQUENCE (SIZE (1..2)) OF CSI-IM-ConfigId-r13 OPTIONAL, -- Need OR + csi-RS-ConfigNZP-EMIMO-r13 CSI-RS-ConfigNZP-EMIMO-r13 OPTIONAL -- Need ON +} + +CSI-RS-ConfigNonPrecoded-v1430::= SEQUENCE { + csi-RS-ConfigNZP-EMIMO-v1430 CSI-RS-ConfigNZP-EMIMO-v1430 OPTIONAL, -- Need ON + codebookConfigN1-v1430 ENUMERATED {n5, n6, n7, n10, n12, n14, n16}, + codebookConfigN2-r1430 ENUMERATED {n5, n6, n7 }, + nzp-ResourceConfigTM9-Original-v1430 CSI-RS-Config-NZP-v1430 +} + + +CSI-RS-ConfigNZP-r11 ::= SEQUENCE { + csi-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11, + antennaPortsCount-r11 ENUMERATED {an1, an2, an4, an8}, + resourceConfig-r11 INTEGER (0..31), + subframeConfig-r11 INTEGER (0..154), + scramblingIdentity-r11 INTEGER (0..503), + qcl-CRS-Info-r11 SEQUENCE { + qcl-ScramblingIdentity-r11 INTEGER (0..503), + crs-PortsCount-r11 ENUMERATED {n1, n2, n4, spare1}, + mbsfn-SubframeConfigList-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList MBSFN-SubframeConfigList + } + } OPTIONAL -- Need ON + } OPTIONAL, -- Need OR + ..., + [[ csi-RS-ConfigNZPId-v1310 CSI-RS-ConfigNZPId-v1310 OPTIONAL -- Need ON + ]], + [[ transmissionComb-r14 NZP-TransmissionComb-r14 OPTIONAL, -- Need OR + frequencyDensity-r14 NZP-FrequencyDensity-r14 OPTIONAL -- Need OR + ]], + [[ mbsfn-SubframeConfigList-v1430 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 + } + } OPTIONAL -- Need OP + ]] +} + +CSI-RS-ConfigNZP-EMIMO-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + nzp-resourceConfigList-r13 SEQUENCE (SIZE (1..2)) OF NZP-ResourceConfig-r13, + cdmType-r13 ENUMERATED {cdm2, cdm4} OPTIONAL -- Need OR + } +} + +CSI-RS-ConfigNZP-EMIMO-v1430 ::= SEQUENCE { + -- All extensions are for Non-Precoded so could be grouped by setup/ release choice + nzp-resourceConfigListExt-r14 SEQUENCE (SIZE (0..4)) OF NZP-ResourceConfig-r13, + cdmType-v1430 ENUMERATED {cdm8 } OPTIONAL -- Need OR +} + +NZP-ResourceConfig-r13 ::= SEQUENCE { + resourceConfig-r13 ResourceConfig-r13, + ..., + [[ transmissionComb-r14 NZP-TransmissionComb-r14 OPTIONAL, -- Need OR + frequencyDensity-r14 NZP-FrequencyDensity-r14 OPTIONAL -- Need OR + ]] +} + +ResourceConfig-r13 ::= INTEGER (0..31) + +NZP-TransmissionComb-r14 ::= INTEGER (0..2) +NZP-FrequencyDensity-r14 ::= ENUMERATED {d1, d2, d3} + + +CSI-RS-ConfigNZPId-r11 ::= INTEGER (1..maxCSI-RS-NZP-r11) +CSI-RS-ConfigNZPId-v1310 ::= INTEGER (minCSI-RS-NZP-r13..maxCSI-RS-NZP-r13) +CSI-RS-ConfigNZPId-r13 ::= INTEGER (1..maxCSI-RS-NZP-r13) + + +CSI-RS-ConfigZP-r11 ::= SEQUENCE { + csi-RS-ConfigZPId-r11 CSI-RS-ConfigZPId-r11, + resourceConfigList-r11 BIT STRING (SIZE (16)), + subframeConfig-r11 INTEGER (0..154), + ... +} + +CSI-RS-ConfigZP-ApList-r14 ::= CHOICE { + release NULL, + setup SEQUENCE (SIZE (1.. maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZP-r11 +} + + +CSI-RS-ConfigZPId-r11 ::= INTEGER (1..maxCSI-RS-ZP-r11) + + +DataInactivityTimer-r14 ::= ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, s40, s50, s60, + s80, s100, s120, s150, s180} + + +DMRS-Config-r11 ::= CHOICE { + release NULL, + setup SEQUENCE { + scramblingIdentity-r11 INTEGER (0..503), + scramblingIdentity2-r11 INTEGER (0..503) + } +} +DMRS-Config-v1310 ::= SEQUENCE { + dmrs-tableAlt-r13 ENUMERATED {true} OPTIONAL -- Need OR +} + + +DRB-Identity ::= INTEGER (1..32) + + +EPDCCH-Config-r11 ::= SEQUENCE{ + config-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframePatternConfig-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframePattern-r11 MeasSubframePattern-r10 + } + } OPTIONAL, -- Need ON + startSymbol-r11 INTEGER (1..4) OPTIONAL, -- Need OP + setConfigToReleaseList-r11 EPDCCH-SetConfigToReleaseList-r11 OPTIONAL, -- Need ON + setConfigToAddModList-r11 EPDCCH-SetConfigToAddModList-r11 OPTIONAL -- Need ON + } + } +} + +EPDCCH-SetConfigToAddModList-r11 ::= SEQUENCE (SIZE(1..maxEPDCCH-Set-r11)) OF EPDCCH-SetConfig-r11 + +EPDCCH-SetConfigToReleaseList-r11 ::= SEQUENCE (SIZE(1..maxEPDCCH-Set-r11)) OF EPDCCH-SetConfigId-r11 + +EPDCCH-SetConfig-r11 ::= SEQUENCE { + setConfigId-r11 EPDCCH-SetConfigId-r11, + transmissionType-r11 ENUMERATED {localised, distributed}, + resourceBlockAssignment-r11 SEQUENCE{ + numberPRB-Pairs-r11 ENUMERATED {n2, n4, n8}, + resourceBlockAssignment-r11 BIT STRING (SIZE(4..38)) + }, + dmrs-ScramblingSequenceInt-r11 INTEGER (0..503), + pucch-ResourceStartOffset-r11 INTEGER (0..2047), + re-MappingQCL-ConfigId-r11 PDSCH-RE-MappingQCL-ConfigId-r11 OPTIONAL, -- Need OR + ..., + [[ csi-RS-ConfigZPId2-r12 CHOICE { + release NULL, + setup CSI-RS-ConfigZPId-r11 + } OPTIONAL -- Need ON + ]], + [[ numberPRB-Pairs-v1310 CHOICE { + release NULL, + setup ENUMERATED {n6} + } OPTIONAL, -- Need ON + mpdcch-config-r13 CHOICE { + release NULL, + setup SEQUENCE { + csi-NumRepetitionCE-r13 ENUMERATED {sf1, sf2, sf4, sf8, sf16, sf32}, + mpdcch-pdsch-HoppingConfig-r13 ENUMERATED {on,off}, + mpdcch-StartSF-UESS-r13 CHOICE { + fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, + v5, v8, v10}, tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10, + v20, spare1} + }, + mpdcch-NumRepetition-r13 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + mpdcch-Narrowband-r13 INTEGER (1.. maxAvailNarrowBands-r13) + } + } OPTIONAL -- Need ON + ]] +} + +EPDCCH-SetConfigId-r11 ::= INTEGER (0..1) + + +EIMTA-MainConfig-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + eimta-RNTI-r12 C-RNTI, + eimta-CommandPeriodicity-r12 ENUMERATED {sf10, sf20, sf40, sf80}, + eimta-CommandSubframeSet-r12 BIT STRING (SIZE(10)) + } +} + +EIMTA-MainConfigServCell-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + eimta-UL-DL-ConfigIndex-r12 INTEGER (1..5), + eimta-HARQ-ReferenceConfig-r12 ENUMERATED {sa2, sa4, sa5}, + mbsfn-SubframeConfigList-v1250 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList-r12 MBSFN-SubframeConfigList + } + } + } +} + + +LogicalChannelConfig ::= SEQUENCE { + ul-SpecificParameters SEQUENCE { + priority INTEGER (1..16), + prioritisedBitRate ENUMERATED { + kBps0, kBps8, kBps16, kBps32, kBps64, kBps128, + kBps256, infinity, kBps512-v1020, kBps1024-v1020, + kBps2048-v1020, spare5, spare4, spare3, spare2, + spare1}, + bucketSizeDuration ENUMERATED { + ms50, ms100, ms150, ms300, ms500, ms1000, spare2, + spare1}, + logicalChannelGroup INTEGER (0..3) OPTIONAL -- Need OR + } OPTIONAL, -- Cond UL + ..., + [[ logicalChannelSR-Mask-r9 ENUMERATED {setup} OPTIONAL -- Cond SRmask + ]], + [[ logicalChannelSR-Prohibit-r12 BOOLEAN OPTIONAL -- Need ON + ]], + [[ laa-UL-Allowed-r14 BOOLEAN OPTIONAL, -- Need ON + bitRateQueryProhibitTimer-r14 ENUMERATED { + s0, s0dot4, s0dot8, s1dot6, s3, s6, s12, + s30} OPTIONAL --Need OR + ]] +} + + +LWA-Configuration-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + lwa-Config-r13 LWA-Config-r13 + } +} + +LWA-Config-r13 ::= SEQUENCE { + lwa-MobilityConfig-r13 WLAN-MobilityConfig-r13 OPTIONAL, -- Need ON + lwa-WT-Counter-r13 INTEGER (0..65535) OPTIONAL, -- Need ON + ..., + [[ wt-MAC-Address-r14 OCTET STRING (SIZE (6)) OPTIONAL -- Need ON + ]] +} + + +LWIP-Configuration-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + lwip-Config-r13 LWIP-Config-r13 + } +} + +LWIP-Config-r13 ::= SEQUENCE { + lwip-MobilityConfig-r13 WLAN-MobilityConfig-r13 OPTIONAL, -- Need ON + tunnelConfigLWIP-r13 TunnelConfigLWIP-r13 OPTIONAL, -- Need ON + ... +} + + +MAC-MainConfig ::= SEQUENCE { + ul-SCH-Config SEQUENCE { + maxHARQ-Tx ENUMERATED { + n1, n2, n3, n4, n5, n6, n7, n8, + n10, n12, n16, n20, n24, n28, + spare2, spare1} OPTIONAL, -- Need ON + periodicBSR-Timer PeriodicBSR-Timer-r12 OPTIONAL, -- Need ON + retxBSR-Timer RetxBSR-Timer-r12, + ttiBundling BOOLEAN + } OPTIONAL, -- Need ON + drx-Config DRX-Config OPTIONAL, -- Need ON + timeAlignmentTimerDedicated TimeAlignmentTimer, + phr-Config CHOICE { + release NULL, + setup SEQUENCE { + periodicPHR-Timer ENUMERATED {sf10, sf20, sf50, sf100, sf200, + sf500, sf1000, infinity}, + prohibitPHR-Timer ENUMERATED {sf0, sf10, sf20, sf50, sf100, + sf200, sf500, sf1000}, + dl-PathlossChange ENUMERATED {dB1, dB3, dB6, infinity} + } + } OPTIONAL, -- Need ON + ..., + [[ sr-ProhibitTimer-r9 INTEGER (0..7) OPTIONAL -- Need ON + ]], + [[ mac-MainConfig-v1020 SEQUENCE { + sCellDeactivationTimer-r10 ENUMERATED { + rf2, rf4, rf8, rf16, rf32, rf64, rf128, + spare} OPTIONAL, -- Need OP + extendedBSR-Sizes-r10 ENUMERATED {setup} OPTIONAL, -- Need OR + extendedPHR-r10 ENUMERATED {setup} OPTIONAL -- Need OR + } OPTIONAL -- Need ON + ]], + [[ stag-ToReleaseList-r11 STAG-ToReleaseList-r11 OPTIONAL, -- Need ON + stag-ToAddModList-r11 STAG-ToAddModList-r11 OPTIONAL, -- Need ON + drx-Config-v1130 DRX-Config-v1130 OPTIONAL -- Need ON + ]], + [[ e-HARQ-Pattern-r12 BOOLEAN OPTIONAL, -- Need ON + dualConnectivityPHR CHOICE { + release NULL, + setup SEQUENCE { + phr-ModeOtherCG-r12 ENUMERATED {real, virtual} + } + } OPTIONAL, -- Need ON + logicalChannelSR-Config-r12 CHOICE { + release NULL, + setup SEQUENCE { + logicalChannelSR-ProhibitTimer-r12 ENUMERATED {sf20, sf40, sf64, sf128, sf512, sf1024, sf2560, spare1} + } + } OPTIONAL -- Need ON + ]], + [[ drx-Config-v1310 DRX-Config-v1310 OPTIONAL, -- Need ON + extendedPHR2-r13 BOOLEAN OPTIONAL, -- Need ON + eDRX-Config-CycleStartOffset-r13 CHOICE { + release NULL, + setup + CHOICE { + sf5120 INTEGER(0..1), + sf10240 INTEGER(0..3) + } + } OPTIONAL -- Need ON + ]], + [[ drx-Config-r13 CHOICE { + release NULL, + setup DRX-Config-r13 + } OPTIONAL -- Need ON + ]], + [[ skipUplinkTx-r14 CHOICE { + release NULL, + setup SEQUENCE { + skipUplinkTxSPS-r14 ENUMERATED {true} OPTIONAL, -- Need OR + skipUplinkTxDynamic-r14 ENUMERATED {true} OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + dataInactivityTimerConfig-r14 CHOICE { + release NULL, + setup SEQUENCE { + dataInactivityTimer-r14 DataInactivityTimer-r14 + } + } OPTIONAL -- Need ON + ]], + [[ rai-Activation-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + +MAC-MainConfigSCell-r11 ::= SEQUENCE { + stag-Id-r11 STAG-Id-r11 OPTIONAL, -- Need OP + ... +} + +DRX-Config ::= CHOICE { + release NULL, + setup SEQUENCE { + onDurationTimer ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200}, + drx-InactivityTimer ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200, psf300, psf500, psf750, + psf1280, psf1920, psf2560, psf0-v1020, + spare9, spare8, spare7, spare6, + spare5, spare4, spare3, spare2, + spare1}, + drx-RetransmissionTimer ENUMERATED { + psf1, psf2, psf4, psf6, psf8, psf16, + psf24, psf33}, + longDRX-CycleStartOffset CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf1280 INTEGER(0..1279), + sf2048 INTEGER(0..2047), + sf2560 INTEGER(0..2559) + }, + shortDRX SEQUENCE { + shortDRX-Cycle ENUMERATED { + sf2, sf5, sf8, sf10, sf16, sf20, + sf32, sf40, sf64, sf80, sf128, sf160, + sf256, sf320, sf512, sf640}, + drxShortCycleTimer INTEGER (1..16) + } OPTIONAL -- Need OR + } +} + +DRX-Config-v1130 ::= SEQUENCE { + drx-RetransmissionTimer-v1130 ENUMERATED {psf0-v1130} OPTIONAL, --Need OR + longDRX-CycleStartOffset-v1130 CHOICE { + sf60-v1130 INTEGER(0..59), + sf70-v1130 INTEGER(0..69) + } OPTIONAL, --Need OR + shortDRX-Cycle-v1130 ENUMERATED {sf4-v1130} OPTIONAL --Need OR +} +DRX-Config-v1310 ::= SEQUENCE { + longDRX-CycleStartOffset-v1310 SEQUENCE { + sf60-v1310 INTEGER(0..59) + } OPTIONAL --Need OR +} + +DRX-Config-r13 ::= SEQUENCE { + onDurationTimer-v1310 ENUMERATED {psf300, psf400, psf500, psf600, + psf800, psf1000, psf1200, psf1600} OPTIONAL, --Need OR + drx-RetransmissionTimer-v1310 ENUMERATED {psf40, psf64, psf80, psf96, psf112, + psf128, psf160, psf320} + OPTIONAL, --Need OR + drx-ULRetransmissionTimer-r13 ENUMERATED {psf0, psf1, psf2, psf4, psf6, psf8, psf16, + psf24, psf33, psf40, psf64, psf80, psf96, + psf112, psf128, psf160, psf320} + OPTIONAL --Need OR +} + +PeriodicBSR-Timer-r12 ::= ENUMERATED { + sf5, sf10, sf16, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, sf1280, sf2560, + infinity, spare1} + +RetxBSR-Timer-r12 ::= ENUMERATED { + sf320, sf640, sf1280, sf2560, sf5120, + sf10240, spare2, spare1} + +STAG-ToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-Id-r11 + +STAG-ToAddModList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-ToAddMod-r11 + +STAG-ToAddMod-r11 ::= SEQUENCE { + stag-Id-r11 STAG-Id-r11, + timeAlignmentTimerSTAG-r11 TimeAlignmentTimer, + ... +} + +STAG-Id-r11::= INTEGER (1..maxSTAG-r11) + + +P-C-AndCBSR-r11 ::= SEQUENCE { + p-C-r11 INTEGER (-8..15), + codebookSubsetRestriction-r11 BIT STRING +} + +P-C-AndCBSR-r13 ::= SEQUENCE { + p-C-r13 INTEGER (-8..15), + cbsr-Selection-r13 CHOICE{ + nonPrecoded-r13 SEQUENCE { + codebookSubsetRestriction1-r13 BIT STRING, + codebookSubsetRestriction2-r13 BIT STRING + }, + beamformedK1a-r13 SEQUENCE { + codebookSubsetRestriction3-r13 BIT STRING + }, + beamformedKN-r13 SEQUENCE { + codebookSubsetRestriction-r13 BIT STRING + } + }, + ... +} + +P-C-AndCBSR-Pair-r13a ::= SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r11 + +P-C-AndCBSR-Pair-r13 ::= SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r13 + + +PDCCH-ConfigSCell-r13 ::= SEQUENCE { + skipMonitoringDCI-format0-1A-r13 ENUMERATED {true} OPTIONAL -- Need OR +} + +PDCCH-ConfigLAA-r14 ::= SEQUENCE { + maxNumberOfSchedSubframes-Format0B-r14 ENUMERATED {sf2, sf3, sf4} OPTIONAL, -- Need OR + maxNumberOfSchedSubframes-Format4B-r14 ENUMERATED {sf2, sf3, sf4} OPTIONAL, -- Need OR + skipMonitoringDCI-Format0A-r14 ENUMERATED {true} OPTIONAL, -- Need OR + skipMonitoringDCI-Format4A-r14 ENUMERATED {true} OPTIONAL, -- Need OR + pdcch-CandidateReductions-Format0A-r14 + PDCCH-CandidateReductions-r13 OPTIONAL, -- Need ON + pdcch-CandidateReductions-Format4A-r14 + PDCCH-CandidateReductionsLAA-UL-r14 OPTIONAL, -- Need ON + pdcch-CandidateReductions-Format0B-r14 + PDCCH-CandidateReductionsLAA-UL-r14 OPTIONAL, -- Need ON + pdcch-CandidateReductions-Format4B-r14 + PDCCH-CandidateReductionsLAA-UL-r14 OPTIONAL -- Need ON +} + +PDCCH-CandidateReductionValue-r13 ::= ENUMERATED {n0, n33, n66, n100} + +PDCCH-CandidateReductionValue-r14 ::= ENUMERATED {n0, n50, n100, n150} + +PDCCH-CandidateReductions-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + pdcch-candidateReductionAL1-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL2-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL3-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL4-r13 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL5-r13 PDCCH-CandidateReductionValue-r13 + } +} + +PDCCH-CandidateReductionsLAA-UL-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + pdcch-candidateReductionAL1-r14 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL2-r14 PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL3-r14 PDCCH-CandidateReductionValue-r14, + pdcch-candidateReductionAL4-r14 PDCCH-CandidateReductionValue-r14, + pdcch-candidateReductionAL5-r14 PDCCH-CandidateReductionValue-r14 + } +} + + +PDCP-Config ::= SEQUENCE { + discardTimer ENUMERATED { + ms50, ms100, ms150, ms300, ms500, + ms750, ms1500, infinity + } OPTIONAL, -- Cond Setup + rlc-AM SEQUENCE { + statusReportRequired BOOLEAN + } OPTIONAL, -- Cond Rlc-AM + rlc-UM SEQUENCE { + pdcp-SN-Size ENUMERATED {len7bits, len12bits} + } OPTIONAL, -- Cond Rlc-UM + headerCompression CHOICE { + notUsed NULL, + rohc SEQUENCE { + maxCID INTEGER (1..16383) DEFAULT 15, + profiles SEQUENCE { + profile0x0001 BOOLEAN, + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0101 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + ... + } + }, + ..., + [[ rn-IntegrityProtection-r10 ENUMERATED {enabled} OPTIONAL -- Cond RN + ]], + [[ pdcp-SN-Size-v1130 ENUMERATED {len15bits} OPTIONAL -- Cond Rlc-AM2 + ]], + [[ ul-DataSplitDRB-ViaSCG-r12 BOOLEAN OPTIONAL, -- Need ON + t-Reordering-r12 ENUMERATED { + ms0, ms20, ms40, ms60, ms80, ms100, ms120, ms140, + ms160, ms180, ms200, ms220, ms240, ms260, ms280, ms300, + ms500, ms750, spare14, spare13, spare12, spare11, spare10, + spare9, spare8, spare7, spare6, spare5, spare4, spare3, + spare2, spare1} OPTIONAL -- Cond SetupS + ]], + [[ ul-DataSplitThreshold-r13 CHOICE { + release NULL, + setup ENUMERATED { + b0, b100, b200, b400, b800, b1600, b3200, b6400, b12800, + b25600, b51200, b102400, b204800, b409600, b819200, + spare1} + } OPTIONAL, -- Need ON + pdcp-SN-Size-v1310 ENUMERATED {len18bits} OPTIONAL, -- Cond Rlc-AM3 + statusFeedback-r13 CHOICE { + release NULL, + setup SEQUENCE { + statusPDU-TypeForPolling-r13 ENUMERATED {type1, type2} OPTIONAL, -- Need ON + statusPDU-Periodicity-Type1-r13 ENUMERATED { + ms5, ms10, ms20, ms30, ms40, ms50, ms60, ms70, ms80, ms90, + ms100, ms150, ms200, ms300, ms500, ms1000, ms2000, ms5000, + ms10000, ms20000, ms50000} OPTIONAL, -- Need ON + statusPDU-Periodicity-Type2-r13 ENUMERATED { + ms5, ms10, ms20, ms30, ms40, ms50, ms60, ms70, ms80, ms90, + ms100, ms150, ms200, ms300, ms500, ms1000, ms2000, ms5000, + ms10000, ms20000, ms50000} OPTIONAL, -- Need ON + statusPDU-Periodicity-Offset-r13 ENUMERATED { + ms1, ms2, ms5, ms10, ms25, ms50, ms100, ms250, ms500, + ms2500, ms5000, ms25000} OPTIONAL -- Need ON + } + } OPTIONAL -- Need ON + ]], + [[ ul-LWA-Config-r14 CHOICE { + release NULL, + setup SEQUENCE { + ul-LWA-DRB-ViaWLAN-r14 BOOLEAN, + ul-LWA-DataSplitThreshold-r14 ENUMERATED { + b0, b100, b200, b400, b800, b1600, b3200, b6400, + b12800, b25600, b51200, b102400, b204800, b409600, + b819200 } OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + uplinkOnlyHeaderCompression-r14 CHOICE { + notUsed-r14 NULL, + rohc-r14 SEQUENCE { + maxCID-r14 INTEGER (1..16383) DEFAULT 15, + profiles-r14 SEQUENCE { + profile0x0006-r14 BOOLEAN + }, + ... + } + } OPTIONAL -- Need ON + ]] +} + + +PDSCH-ConfigCommon ::= SEQUENCE { + referenceSignalPower INTEGER (-60..50), + p-b INTEGER (0..3) +} + +PDSCH-ConfigCommon-v1310 ::= SEQUENCE { + pdsch-maxNumRepetitionCEmodeA-r13 ENUMERATED { + r16, r32 } OPTIONAL, -- Need OR + pdsch-maxNumRepetitionCEmodeB-r13 ENUMERATED { + r192, r256, r384, r512, r768, r1024, + r1536, r2048} OPTIONAL -- Need OR +} + +PDSCH-ConfigDedicated::= SEQUENCE { + p-a ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} +} + +PDSCH-ConfigDedicated-v1130 ::= SEQUENCE { + dmrs-ConfigPDSCH-r11 DMRS-Config-r11 OPTIONAL, -- Need ON + qcl-Operation ENUMERATED {typeA, typeB} OPTIONAL, -- Need OR + re-MappingQCLConfigToReleaseList-r11 RE-MappingQCLConfigToReleaseList-r11 OPTIONAL, -- Need ON + re-MappingQCLConfigToAddModList-r11 RE-MappingQCLConfigToAddModList-r11 OPTIONAL -- Need ON +} + +PDSCH-ConfigDedicated-v1280 ::= SEQUENCE { + tbsIndexAlt-r12 ENUMERATED {a26, a33} OPTIONAL -- Need OR +} + +PDSCH-ConfigDedicated-v1310 ::= SEQUENCE { + dmrs-ConfigPDSCH-v1310 DMRS-Config-v1310 OPTIONAL -- Need ON +} + +PDSCH-ConfigDedicated-v1430 ::= SEQUENCE { + ce-PDSCH-MaxBandwidth-r14 ENUMERATED {bw5, bw20} OPTIONAL, -- Need OP + ce-PDSCH-TenProcesses-r14 ENUMERATED {on} OPTIONAL, -- Need OR + ce-HARQ-AckBundling-r14 ENUMERATED {on} OPTIONAL, -- Need OR + ce-SchedulingEnhancement-r14 ENUMERATED {range1, range2} OPTIONAL, -- Need OR + tbsIndexAlt2-r14 ENUMERATED {b33} OPTIONAL -- Need OR +} + +PDSCH-ConfigDedicatedSCell-v1430 ::= SEQUENCE { + tbsIndexAlt2-r14 ENUMERATED {b33} OPTIONAL -- Need OR +} + +RE-MappingQCLConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxRE-MapQCL-r11)) OF PDSCH-RE-MappingQCL-Config-r11 + +RE-MappingQCLConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxRE-MapQCL-r11)) OF PDSCH-RE-MappingQCL-ConfigId-r11 + +PDSCH-RE-MappingQCL-Config-r11 ::= SEQUENCE { + pdsch-RE-MappingQCL-ConfigId-r11 PDSCH-RE-MappingQCL-ConfigId-r11, + optionalSetOfFields-r11 SEQUENCE { + crs-PortsCount-r11 ENUMERATED {n1, n2, n4, spare1}, + crs-FreqShift-r11 INTEGER (0..5), + mbsfn-SubframeConfigList-r11 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList MBSFN-SubframeConfigList + } + } OPTIONAL, -- Need ON + pdsch-Start-r11 ENUMERATED {reserved, n1, n2, n3, n4, assigned} + } OPTIONAL, -- Need OP + csi-RS-ConfigZPId-r11 CSI-RS-ConfigZPId-r11, + qcl-CSI-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11 OPTIONAL, -- Need OR + ..., + [[ mbsfn-SubframeConfigList-v1430 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 + } + } OPTIONAL -- Need OP + ]] +} + + +PDSCH-RE-MappingQCL-ConfigId-r11 ::= INTEGER (1..maxRE-MapQCL-r11) + +PerCC-GapIndicationList-r14 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF PerCC-GapIndication-r14 + +PerCC-GapIndication-r14 ::= SEQUENCE { + servCellId-r14 ServCellIndex-r13, + gapIndication-r14 ENUMERATED {gap, ncsg, nogap-noNcsg} +} + + +PHICH-Config ::= SEQUENCE { + phich-Duration ENUMERATED {normal, extended}, + phich-Resource ENUMERATED {oneSixth, half, one, two} +} + + +PhysicalConfigDedicated ::= SEQUENCE { + pdsch-ConfigDedicated PDSCH-ConfigDedicated OPTIONAL, -- Need ON + pucch-ConfigDedicated PUCCH-ConfigDedicated OPTIONAL, -- Need ON + pusch-ConfigDedicated PUSCH-ConfigDedicated OPTIONAL, -- Need ON + uplinkPowerControlDedicated UplinkPowerControlDedicated OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUCCH TPC-PDCCH-Config OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUSCH TPC-PDCCH-Config OPTIONAL, -- Need ON + cqi-ReportConfig CQI-ReportConfig OPTIONAL, -- Cond CQI-r8 + soundingRS-UL-ConfigDedicated SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON + antennaInfo CHOICE { + explicitValue AntennaInfoDedicated, + defaultValue NULL + } OPTIONAL, -- Cond AI-r8 + schedulingRequestConfig SchedulingRequestConfig OPTIONAL, -- Need ON + ..., + [[ cqi-ReportConfig-v920 CQI-ReportConfig-v920 OPTIONAL, -- Cond CQI-r8 + antennaInfo-v920 AntennaInfoDedicated-v920 OPTIONAL -- Cond AI-r8 + ]], + [[ antennaInfo-r10 CHOICE { + explicitValue-r10 AntennaInfoDedicated-r10, + defaultValue NULL + } OPTIONAL, -- Cond AI-r10 + antennaInfoUL-r10 AntennaInfoUL-r10 OPTIONAL, -- Need ON + cif-Presence-r10 BOOLEAN OPTIONAL, -- Need ON + cqi-ReportConfig-r10 CQI-ReportConfig-r10 OPTIONAL, -- Cond CQI-r10 + csi-RS-Config-r10 CSI-RS-Config-r10 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1020 PUCCH-ConfigDedicated-v1020 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1020 PUSCH-ConfigDedicated-v1020 OPTIONAL, -- Need ON + schedulingRequestConfig-v1020 SchedulingRequestConfig-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1020 + SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-r10 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1020 + UplinkPowerControlDedicated-v1020 OPTIONAL -- Need ON + ]], + [[ additionalSpectrumEmissionCA-r10 CHOICE { + release NULL, + setup SEQUENCE { + additionalSpectrumEmissionPCell-r10 AdditionalSpectrumEmission + } + } OPTIONAL -- Need ON + ]], + [[ -- DL configuration as well as configuration applicable for DL and UL + csi-RS-ConfigNZPToReleaseList-r11 + CSI-RS-ConfigNZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModList-r11 + CSI-RS-ConfigNZPToAddModList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToReleaseList-r11 + CSI-RS-ConfigZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToAddModList-r11 CSI-RS-ConfigZPToAddModList-r11 OPTIONAL, -- Need ON + epdcch-Config-r11 EPDCCH-Config-r11 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1130 PDSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + -- UL configuration + cqi-ReportConfig-v1130 CQI-ReportConfig-v1130 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1130 PUCCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1130 PUSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1130 + UplinkPowerControlDedicated-v1130 OPTIONAL -- Need ON + ]], + [[ antennaInfo-v1250 AntennaInfoDedicated-v1250 OPTIONAL, -- Cond AI-r10 + eimta-MainConfig-r12 EIMTA-MainConfig-r12 OPTIONAL, -- Need ON + eimta-MainConfigPCell-r12 EIMTA-MainConfigServCell-r12 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1250 PUCCH-ConfigDedicated-v1250 OPTIONAL, -- Need ON + cqi-ReportConfigPCell-v1250 CQI-ReportConfig-v1250 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1250 + UplinkPowerControlDedicated-v1250 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1250 PUSCH-ConfigDedicated-v1250 OPTIONAL, -- Need ON + csi-RS-Config-v1250 CSI-RS-Config-v1250 OPTIONAL -- Need ON + ]], + [[ pdsch-ConfigDedicated-v1280 PDSCH-ConfigDedicated-v1280 OPTIONAL -- Need ON + ]], + [[ pdsch-ConfigDedicated-v1310 PDSCH-ConfigDedicated-v1310 OPTIONAL, -- Need ON + pucch-ConfigDedicated-r13 PUCCH-ConfigDedicated-r13 OPTIONAL, -- Need ON + pusch-ConfigDedicated-r13 PUSCH-ConfigDedicated-r13 OPTIONAL, -- Need ON + pdcch-CandidateReductions-r13 + PDCCH-CandidateReductions-r13 OPTIONAL, -- Need ON + cqi-ReportConfig-v1310 CQI-ReportConfig-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1310 + SoundingRS-UL-ConfigDedicated-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-v1310 + SoundingRS-UL-ConfigDedicatedAperiodic-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, -- Need ON + csi-RS-Config-v1310 CSI-RS-Config-v1310 OPTIONAL, -- Need ON + ce-Mode-r13 CHOICE { + release NULL, + setup ENUMERATED {ce-ModeA,ce-ModeB} + } OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModListExt-r13 CSI-RS-ConfigNZPToAddModListExt-r13 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToReleaseListExt-r13 CSI-RS-ConfigNZPToReleaseListExt-r13 OPTIONAL -- Need ON + ]], + [[ cqi-ReportConfig-v1320 CQI-ReportConfig-v1320 OPTIONAL -- Need ON + ]], + [[ typeA-SRS-TPC-PDCCH-Group-r14 CHOICE { + release NULL, + setup SEQUENCE (SIZE (1..32)) OF SRS-TPC-PDCCH-Config-r14 + } OPTIONAL, -- Need ON + must-Config-r14 CHOICE{ + release NULL, + setup SEQUENCE { + k-max-r14 ENUMERATED {l1, l3}, + p-a-must-r14 ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + pusch-EnhancementsConfig-r14 PUSCH-EnhancementsConfig-r14 OPTIONAL, -- Need ON + ce-pdsch-pusch-EnhancementConfig-r14 ENUMERATED {on} OPTIONAL, -- Need OR + antennaInfo-v1430 AntennaInfoDedicated-v1430 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1430 PUCCH-ConfigDedicated-v1430 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1430 PDSCH-ConfigDedicated-v1430 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1430 PUSCH-ConfigDedicated-v1430 OPTIONAL, -- Need ON + soundingRS-UL-PeriodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-UL-ConfigDedicated OPTIONAL, -- Cond PeriodicSRSPCell + soundingRS-UL-PeriodicConfigDedicatedUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Cond PeriodicSRSExt + soundingRS-UL-AperiodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL, -- Cond AperiodicSRS + soundingRS-UL-ConfigDedicatedApUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, -- Cond AperiodicSRSExt + csi-RS-Config-v1430 CSI-RS-Config-v1430 OPTIONAL, -- Need ON + csi-RS-ConfigZP-ApList-r14 CSI-RS-ConfigZP-ApList-r14 OPTIONAL, -- Need ON + cqi-ReportConfig-v1430 CQI-ReportConfig-v1430 OPTIONAL, -- Need ON + semiOpenLoop-r14 BOOLEAN OPTIONAL -- Need ON + ]] +} + +PhysicalConfigDedicated-v1370 ::= SEQUENCE { + pucch-ConfigDedicated-v1370 PUCCH-ConfigDedicated-v1370 OPTIONAL -- Cond PUCCH-Format4or5 +} + +PhysicalConfigDedicatedSCell-r10 ::= SEQUENCE { + -- DL configuration as well as configuration applicable for DL and UL + nonUL-Configuration-r10 SEQUENCE { + antennaInfo-r10 + AntennaInfoDedicated-r10 OPTIONAL, -- Need ON + crossCarrierSchedulingConfig-r10 + CrossCarrierSchedulingConfig-r10 OPTIONAL, -- Need ON + csi-RS-Config-r10 CSI-RS-Config-r10 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-r10 PDSCH-ConfigDedicated OPTIONAL -- Need ON + } OPTIONAL, -- Cond SCellAdd + -- UL configuration + ul-Configuration-r10 SEQUENCE { + antennaInfoUL-r10 AntennaInfoUL-r10 OPTIONAL, -- Need ON + pusch-ConfigDedicatedSCell-r10 + PUSCH-ConfigDedicatedSCell-r10 OPTIONAL, -- Cond PUSCH-SCell1 + uplinkPowerControlDedicatedSCell-r10 + UplinkPowerControlDedicatedSCell-r10 OPTIONAL, -- Need ON + cqi-ReportConfigSCell-r10 CQI-ReportConfigSCell-r10 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-r10 + SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1020 + SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-r10 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL -- Need ON + } OPTIONAL, -- Cond CommonUL + ..., + [[ -- DL configuration as well as configuration applicable for DL and UL + csi-RS-ConfigNZPToReleaseList-r11 + CSI-RS-ConfigNZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModList-r11 + CSI-RS-ConfigNZPToAddModList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToReleaseList-r11 + CSI-RS-ConfigZPToReleaseList-r11 OPTIONAL, -- Need ON + csi-RS-ConfigZPToAddModList-r11 + CSI-RS-ConfigZPToAddModList-r11 OPTIONAL, -- Need ON + epdcch-Config-r11 EPDCCH-Config-r11 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1130 PDSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON + -- UL configuration + cqi-ReportConfig-v1130 CQI-ReportConfig-v1130 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1130 + PUSCH-ConfigDedicated-v1130 OPTIONAL, -- Cond PUSCH-SCell1 + uplinkPowerControlDedicatedSCell-v1130 + UplinkPowerControlDedicated-v1130 OPTIONAL -- Need ON + ]], + [[ antennaInfo-v1250 AntennaInfoDedicated-v1250 OPTIONAL, -- Need ON + eimta-MainConfigSCell-r12 + EIMTA-MainConfigServCell-r12 OPTIONAL, -- Need ON + cqi-ReportConfigSCell-v1250 CQI-ReportConfig-v1250 OPTIONAL, -- Need ON + uplinkPowerControlDedicatedSCell-v1250 + UplinkPowerControlDedicated-v1250 OPTIONAL, -- Need ON + csi-RS-Config-v1250 CSI-RS-Config-v1250 OPTIONAL -- Need ON + ]], + [[ pdsch-ConfigDedicated-v1280 PDSCH-ConfigDedicated-v1280 OPTIONAL -- Need ON + ]], + [[ pucch-Cell-r13 ENUMERATED {true} OPTIONAL, -- Cond PUCCH-SCell1 + pucch-SCell CHOICE{ + release NULL, + setup SEQUENCE { + pucch-ConfigDedicated-r13 + PUCCH-ConfigDedicated-r13 OPTIONAL, -- Need ON + schedulingRequestConfig-r13 + SchedulingRequestConfigSCell-r13 OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUCCH-SCell-r13 + TPC-PDCCH-ConfigSCell-r13 OPTIONAL, -- Need ON + pusch-ConfigDedicated-r13 + PUSCH-ConfigDedicated-r13 OPTIONAL, -- Cond PUSCH-SCell + uplinkPowerControlDedicated-r13 + UplinkPowerControlDedicatedSCell-v1310 OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + crossCarrierSchedulingConfig-r13 + CrossCarrierSchedulingConfig-r13 OPTIONAL, -- Cond Cross-Carrier-Config + pdcch-ConfigSCell-r13 PDCCH-ConfigSCell-r13 OPTIONAL, -- Need ON + cqi-ReportConfig-v1310 CQI-ReportConfig-v1310 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-v1310 PDSCH-ConfigDedicated-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1310 + SoundingRS-UL-ConfigDedicated-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-v1310 + SoundingRS-UL-ConfigDedicatedAperiodic-v1310 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 + SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, -- Need ON + csi-RS-Config-v1310 CSI-RS-Config-v1310 OPTIONAL, -- Need ON + laa-SCellConfiguration-r13 LAA-SCellConfiguration-r13 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModListExt-r13 CSI-RS-ConfigNZPToAddModListExt-r13 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToReleaseListExt-r13 CSI-RS-ConfigNZPToReleaseListExt-r13 OPTIONAL -- Need ON + ]], + [[ cqi-ReportConfig-v1320 CQI-ReportConfig-v1320 OPTIONAL -- Need ON + ]], + [[ laa-SCellConfiguration-v1430 LAA-SCellConfiguration-v1430 + OPTIONAL, -- Need ON + typeB-SRS-TPC-PDCCH-Config-r14 SRS-TPC-PDCCH-Config-r14 OPTIONAL, -- Need ON + + uplinkPUSCH-LessPowerControlDedicated-v1430 UplinkPUSCH-LessPowerControlDedicated-v1430 OPTIONAL, -- Need ON + soundingRS-UL-PeriodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-UL-ConfigDedicated OPTIONAL, -- Cond PeriodicSRS + soundingRS-UL-PeriodicConfigDedicatedUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Cond PeriodicSRSExt + soundingRS-UL-AperiodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-AperiodicSet-r14 OPTIONAL, -- Cond AperiodicSRS + soundingRS-UL-ConfigDedicatedApUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-AperiodicSetUpPTsExt-r14 OPTIONAL, -- Cond AperiodicSRSExt + must-Config-r14 CHOICE{ + release NULL, + setup SEQUENCE { + k-max-r14 ENUMERATED {l1, l3}, + p-a-must-r14 ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1430 PUSCH-ConfigDedicatedSCell-v1430 OPTIONAL, -- Need ON + csi-RS-Config-v1430 CSI-RS-Config-v1430 OPTIONAL, -- Need ON + csi-RS-ConfigZP-ApList-r14 CSI-RS-ConfigZP-ApList-r14 OPTIONAL, -- Need ON + cqi-ReportConfig-v1430 CQI-ReportConfig-v1430 OPTIONAL, -- Need ON + semiOpenLoop-r14 BOOLEAN OPTIONAL, -- Need ON + pdsch-ConfigDedicatedSCell-v1430 PDSCH-ConfigDedicatedSCell-v1430 OPTIONAL -- Need ON + ]] +} + +PhysicalConfigDedicatedSCell-v1370 ::= SEQUENCE { + pucch-SCell-v1370 CHOICE{ + release NULL, + setup SEQUENCE { + pucch-ConfigDedicated-v1370 PUCCH-ConfigDedicated-v1370 OPTIONAL -- Cond PUCCH-Format4or5 + } + } +} + +LAA-SCellConfiguration-r13 ::= SEQUENCE { + subframeStartPosition-r13 ENUMERATED {s0, s07}, + laa-SCellSubframeConfig-r13 BIT STRING (SIZE(8)) +} + +LAA-SCellConfiguration-v1430 ::= SEQUENCE { + crossCarrierSchedulingConfig-UL-r14 CHOICE { + release NULL, + setup SEQUENCE { + crossCarrierSchedulingConfigLAA-UL-r14 CrossCarrierSchedulingConfigLAA-UL-r14 + } + } OPTIONAL, -- Cond Cross-Carrier-ConfigUL + lbt-Config-r14 LBT-Config-r14 OPTIONAL, -- Need ON + pdcch-ConfigLAA-r14 PDCCH-ConfigLAA-r14 OPTIONAL, -- Need ON + absenceOfAnyOtherTechnology-r14 ENUMERATED {true} OPTIONAL, -- Need OR + soundingRS-UL-ConfigDedicatedAperiodic-v1430 + SoundingRS-UL-ConfigDedicatedAperiodic-v1430 OPTIONAL -- Need ON +} + +LBT-Config-r14 ::= CHOICE{ + maxEnergyDetectionThreshold-r14 INTEGER(-85..-52), + energyDetectionThresholdOffset-r14 INTEGER(-13..20) +} + +CSI-RS-ConfigNZPToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r11)) OF CSI-RS-ConfigNZP-r11 + +CSI-RS-ConfigNZPToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-v1310)) OF CSI-RS-ConfigNZP-r11 + +CSI-RS-ConfigNZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r11)) OF CSI-RS-ConfigNZPId-r11 + +CSI-RS-ConfigNZPToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-v1310)) OF CSI-RS-ConfigNZPId-v1310 + +CSI-RS-ConfigZPToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZP-r11 + +CSI-RS-ConfigZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZPId-r11 + +SoundingRS-AperiodicSet-r14 ::= SEQUENCE{ + srs-CC-SetIndexList-r14 + SEQUENCE (SIZE (1..4)) OF SRS-CC-SetIndex-r14 + OPTIONAL, -- Cond SRS-Trigger-TypeA + soundingRS-UL-ConfigDedicatedAperiodic-r14 + SoundingRS-UL-ConfigDedicatedAperiodic-r10 +} + +SoundingRS-AperiodicSetUpPTsExt-r14 ::= SEQUENCE{ + srs-CC-SetIndexList-r14 + SEQUENCE (SIZE (1..4)) OF SRS-CC-SetIndex-r14 + OPTIONAL, -- Cond SRS-Trigger-TypeA + soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r14 + SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 +} + + +P-Max ::= INTEGER (-30..33) + + +PRACH-ConfigSIB ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + prach-ConfigInfo PRACH-ConfigInfo +} + +PRACH-ConfigSIB-v1310 ::= SEQUENCE { + rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsPrachInfoList-r13, + mpdcch-startSF-CSS-RA-r13 CHOICE { + fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, v5, v8, + v10}, + tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10, v20, spare} + } OPTIONAL, -- Cond MP + prach-HoppingOffset-r13 INTEGER (0..94) OPTIONAL, -- Need OR + prach-ParametersListCE-r13 PRACH-ParametersListCE-r13 +} + +PRACH-Config ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + prach-ConfigInfo PRACH-ConfigInfo OPTIONAL -- Need ON +} + +PRACH-Config-v1310 ::= SEQUENCE { + rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsPrachInfoList-r13 OPTIONAL, -- Cond MP + mpdcch-startSF-CSS-RA-r13 CHOICE { + fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, v5, v8, + v10}, + tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10, v20, spare} + } OPTIONAL, -- Cond MP + prach-HoppingOffset-r13 INTEGER (0..94) OPTIONAL, -- Need OR + prach-ParametersListCE-r13 PRACH-ParametersListCE-r13 OPTIONAL, -- Cond MP + initial-CE-level-r13 INTEGER (0..3) OPTIONAL -- Need OR +} + +PRACH-Config-v1430 ::= SEQUENCE { + rootSequenceIndexHighSpeed-r14 INTEGER (0..837), + zeroCorrelationZoneConfigHighSpeed-r14 INTEGER (0..12), + prach-ConfigIndexHighSpeed-r14 INTEGER (0..63), + prach-FreqOffsetHighSpeed-r14 INTEGER (0..94) +} + +PRACH-ConfigSCell-r10 ::= SEQUENCE { + prach-ConfigIndex-r10 INTEGER (0..63) +} + +PRACH-ConfigInfo ::= SEQUENCE { + prach-ConfigIndex INTEGER (0..63), + highSpeedFlag BOOLEAN, + zeroCorrelationZoneConfig INTEGER (0..15), + prach-FreqOffset INTEGER (0..94) +} + +PRACH-ParametersListCE-r13 ::= SEQUENCE (SIZE(1..maxCE-Level-r13)) OF PRACH-ParametersCE-r13 + +PRACH-ParametersCE-r13 ::= SEQUENCE { + prach-ConfigIndex-r13 INTEGER (0..63), + prach-FreqOffset-r13 INTEGER (0..94), + prach-StartingSubframe-r13 ENUMERATED {sf2, sf4, sf8, sf16, sf32, sf64, sf128, + sf256} OPTIONAL, -- Need OP + maxNumPreambleAttemptCE-r13 + ENUMERATED {n3, n4, n5, n6, n7, n8, n10} OPTIONAL, -- Need OP + numRepetitionPerPreambleAttempt-r13 ENUMERATED {n1,n2,n4,n8,n16,n32,n64,n128}, + mpdcch-NarrowbandsToMonitor-r13 SEQUENCE (SIZE(1..2)) OF + INTEGER (1..maxAvailNarrowBands-r13), + mpdcch-NumRepetition-RA-r13 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + prach-HoppingConfig-r13 ENUMERATED {on,off} +} + +RSRP-ThresholdsPrachInfoList-r13 ::= SEQUENCE (SIZE(1..3)) OF RSRP-Range + + +PresenceAntennaPort1 ::= BOOLEAN + + +PUCCH-ConfigCommon ::= SEQUENCE { + deltaPUCCH-Shift ENUMERATED {ds1, ds2, ds3}, + nRB-CQI INTEGER (0..98), + nCS-AN INTEGER (0..7), + n1PUCCH-AN INTEGER (0..2047) +} + +PUCCH-ConfigCommon-v1310 ::= SEQUENCE { + n1PUCCH-AN-InfoList-r13 N1PUCCH-AN-InfoList-r13 OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level0-r13 ENUMERATED {n1, n2, n4, n8} OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level1-r13 ENUMERATED {n1, n2, n4, n8} OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level2-r13 ENUMERATED {n4, n8, n16, n32} OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level3-r13 ENUMERATED {n4, n8, n16, n32} OPTIONAL -- Need OR +} + +PUCCH-ConfigCommon-v1430 ::= SEQUENCE { + pucch-NumRepetitionCE-Msg4-Level3-r14 ENUMERATED {n64, n128} OPTIONAL -- Need OR +} + +PUCCH-ConfigDedicated ::= SEQUENCE { + ackNackRepetition CHOICE{ + release NULL, + setup SEQUENCE { + repetitionFactor ENUMERATED {n2, n4, n6, spare1}, + n1PUCCH-AN-Rep INTEGER (0..2047) + } + }, + tdd-AckNackFeedbackMode ENUMERATED {bundling, multiplexing} OPTIONAL -- Cond TDD +} + +PUCCH-ConfigDedicated-v1020 ::= SEQUENCE { + pucch-Format-r10 CHOICE { + format3-r10 PUCCH-Format3-Conf-r13, + channelSelection-r10 SEQUENCE { + n1PUCCH-AN-CS-r10 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-List-r10 SEQUENCE (SIZE (1..2)) OF N1PUCCH-AN-CS-r10 + } + } OPTIONAL -- Need ON + } + } OPTIONAL, -- Need OR + twoAntennaPortActivatedPUCCH-Format1a1b-r10 ENUMERATED {true} OPTIONAL, -- Need OR + simultaneousPUCCH-PUSCH-r10 ENUMERATED {true} OPTIONAL, -- Need OR + n1PUCCH-AN-RepP1-r10 INTEGER (0..2047) OPTIONAL -- Need OR +} + +PUCCH-ConfigDedicated-v1130 ::= SEQUENCE { + n1PUCCH-AN-CS-v1130 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-ListP1-r11 SEQUENCE (SIZE (2..4)) OF INTEGER (0..2047) + } + } OPTIONAL, -- Need ON + nPUCCH-Param-r11 CHOICE { + release NULL, + setup SEQUENCE { + nPUCCH-Identity-r11 INTEGER (0..503), + n1PUCCH-AN-r11 INTEGER (0..2047) + } + } OPTIONAL -- Need ON +} + +PUCCH-ConfigDedicated-v1250 ::= SEQUENCE { + nkaPUCCH-Param-r12 CHOICE { + release NULL, + setup SEQUENCE { + nkaPUCCH-AN-r12 INTEGER (0..2047) + } + } +} + +PUCCH-ConfigDedicated-r13 ::= SEQUENCE { +--Release 8 + ackNackRepetition-r13 CHOICE{ + release NULL, + setup SEQUENCE { + repetitionFactor-r13 ENUMERATED {n2, n4, n6, spare1}, + n1PUCCH-AN-Rep-r13 INTEGER (0..2047) + } + }, + tdd-AckNackFeedbackMode-r13 ENUMERATED {bundling, multiplexing} OPTIONAL, -- Cond TDD +--Release 10 + pucch-Format-r13 CHOICE { + format3-r13 SEQUENCE { + n3PUCCH-AN-List-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) OPTIONAL, -- Need ON + twoAntennaPortActivatedPUCCH-Format3-r13 CHOICE { + release NULL, + setup SEQUENCE { + n3PUCCH-AN-ListP1-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) + } + } OPTIONAL -- Need ON + }, + channelSelection-r13 SEQUENCE { + n1PUCCH-AN-CS-r13 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-CS-List-r13 SEQUENCE (SIZE (1..2)) OF N1PUCCH-AN-CS-r10, + n1PUCCH-AN-CS-ListP1-r13 SEQUENCE (SIZE (2..4)) OF INTEGER (0..2047) + } + } OPTIONAL -- Need ON + }, + format4-r13 SEQUENCE { + format4-resourceConfiguration-r13 SEQUENCE (SIZE (4)) OF Format4-resource-r13, + format4-MultiCSI-resourceConfiguration-r13 SEQUENCE (SIZE (1..2)) OF Format4-resource-r13 OPTIONAL -- Need OR + }, + format5-r13 SEQUENCE { + format5-resourceConfiguration-r13 SEQUENCE (SIZE (4)) OF Format5-resource-r13, + format5-MultiCSI-resourceConfiguration-r13 Format5-resource-r13 OPTIONAL -- Need OR + } + } OPTIONAL, -- Need OR + twoAntennaPortActivatedPUCCH-Format1a1b-r13 ENUMERATED {true} OPTIONAL, -- Need OR + simultaneousPUCCH-PUSCH-r13 ENUMERATED {true} OPTIONAL, -- Need OR + n1PUCCH-AN-RepP1-r13 INTEGER (0..2047) OPTIONAL, -- Need OR +--Release 11 + nPUCCH-Param-r13 CHOICE { + release NULL, + setup SEQUENCE { + nPUCCH-Identity-r13 INTEGER (0..503), + n1PUCCH-AN-r13 INTEGER (0..2047) + } + } OPTIONAL, -- Need ON +--Release 12 + nkaPUCCH-Param-r13 CHOICE { + release NULL, + setup SEQUENCE { + nkaPUCCH-AN-r13 INTEGER (0..2047) + } + } OPTIONAL, -- Need ON +--Release 13 + spatialBundlingPUCCH-r13 BOOLEAN, + spatialBundlingPUSCH-r13 BOOLEAN, + harq-TimingTDD-r13 BOOLEAN, + codebooksizeDetermination-r13 ENUMERATED {dai,cc} OPTIONAL, -- Need OR + maximumPayloadCoderate-r13 INTEGER (0..7) OPTIONAL, -- Need OR + pucch-NumRepetitionCE-r13 CHOICE { + release NULL, + setup CHOICE { + modeA SEQUENCE { + pucch-NumRepetitionCE-format1-r13 ENUMERATED {r1, r2, r4, r8}, + pucch-NumRepetitionCE-format2-r13 ENUMERATED {r1, r2, r4, r8} + }, + modeB SEQUENCE { + pucch-NumRepetitionCE-format1-r13 ENUMERATED {r4, r8, r16, r32}, + pucch-NumRepetitionCE-format2-r13 ENUMERATED {r4, r8, r16, r32} + } + } + } OPTIONAL --Need ON +} + +PUCCH-ConfigDedicated-v1370 ::= SEQUENCE { + pucch-Format-v1370 CHOICE { + release NULL, + setup PUCCH-Format3-Conf-r13 + } +} + +PUCCH-Format3-Conf-r13 ::= SEQUENCE { + n3PUCCH-AN-List-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) OPTIONAL, -- Need ON + twoAntennaPortActivatedPUCCH-Format3-r13 CHOICE { + release NULL, + setup SEQUENCE { + n3PUCCH-AN-ListP1-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) + } + } OPTIONAL -- Need ON +} + +PUCCH-ConfigDedicated-v1430 ::= SEQUENCE { + pucch-NumRepetitionCE-format1-r14 ENUMERATED {r64,r128} OPTIONAL -- Need OR +} + +Format4-resource-r13 ::= SEQUENCE { + startingPRB-format4-r13 INTEGER (0..109), + numberOfPRB-format4-r13 INTEGER (0..7) +} + +Format5-resource-r13 ::= SEQUENCE { + startingPRB-format5-r13 INTEGER (0..109), + cdm-index-format5-r13 INTEGER (0..1) +} + + + +N1PUCCH-AN-CS-r10 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + +N1PUCCH-AN-InfoList-r13 ::= SEQUENCE (SIZE(1..maxCE-Level-r13)) OF INTEGER (0..2047) + + +PUSCH-ConfigCommon ::= SEQUENCE { + pusch-ConfigBasic SEQUENCE { + n-SB INTEGER (1..4), + hoppingMode ENUMERATED {interSubFrame, intraAndInterSubFrame}, + pusch-HoppingOffset INTEGER (0..98), + enable64QAM BOOLEAN + }, + ul-ReferenceSignalsPUSCH UL-ReferenceSignalsPUSCH +} + +PUSCH-ConfigCommon-v1270 ::= SEQUENCE { + enable64QAM-v1270 ENUMERATED {true} +} + +PUSCH-ConfigCommon-v1310 ::= SEQUENCE { + pusch-maxNumRepetitionCEmodeA-r13 ENUMERATED { + r8, r16, r32 } OPTIONAL, -- Need OR + pusch-maxNumRepetitionCEmodeB-r13 ENUMERATED { + r192, r256, r384, r512, r768, r1024, + r1536, r2048} OPTIONAL, -- Need OR + pusch-HoppingOffset-v1310 + INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicated ::= SEQUENCE { + betaOffset-ACK-Index INTEGER (0..15), + betaOffset-RI-Index INTEGER (0..15), + betaOffset-CQI-Index INTEGER (0..15) +} + +PUSCH-ConfigDedicated-v1020 ::= SEQUENCE { + betaOffsetMC-r10 SEQUENCE { + betaOffset-ACK-Index-MC-r10 INTEGER (0..15), + betaOffset-RI-Index-MC-r10 INTEGER (0..15), + betaOffset-CQI-Index-MC-r10 INTEGER (0..15) + } OPTIONAL, -- Need OR + groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicated-v1130 ::= SEQUENCE { + pusch-DMRS-r11 CHOICE { + release NULL, + setup SEQUENCE { + nPUSCH-Identity-r11 INTEGER (0..509), + nDMRS-CSH-Identity-r11 INTEGER (0..509) + } + } +} + +PUSCH-ConfigDedicated-v1250::= SEQUENCE { + uciOnPUSCH CHOICE { + release NULL, + setup SEQUENCE { + betaOffset-ACK-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffset-RI-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffset-CQI-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffsetMC-r12 SEQUENCE { + betaOffset-ACK-Index-MC-SubframeSet2-r12 INTEGER (0..15), + betaOffset-RI-Index-MC-SubframeSet2-r12 INTEGER (0..15), + betaOffset-CQI-Index-MC-SubframeSet2-r12 INTEGER (0..15) + } OPTIONAL -- Need OR + } + } +} +PUSCH-ConfigDedicated-r13 ::= SEQUENCE { + betaOffset-ACK-Index-r13 INTEGER (0..15), + betaOffset2-ACK-Index-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-r13 INTEGER (0..15), + betaOffset-CQI-Index-r13 INTEGER (0..15), + betaOffsetMC-r13 SEQUENCE { + betaOffset-ACK-Index-MC-r13 INTEGER (0..15), + betaOffset2-ACK-Index-MC-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-MC-r13 INTEGER (0..15), + betaOffset-CQI-Index-MC-r13 INTEGER (0..15) + } OPTIONAL, -- Need OR + groupHoppingDisabled-r13 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r13 ENUMERATED {true} OPTIONAL, -- Need OR + pusch-DMRS-r11 CHOICE { + release NULL, + setup SEQUENCE { + nPUSCH-Identity-r13 INTEGER (0..509), + nDMRS-CSH-Identity-r13 INTEGER (0..509) + } + } OPTIONAL, -- Need ON + uciOnPUSCH CHOICE { + release NULL, + setup SEQUENCE { + betaOffset-ACK-Index-SubframeSet2-r13 INTEGER (0..15), + betaOffset2-ACK-Index-SubframeSet2-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-SubframeSet2-r13 INTEGER (0..15), + betaOffset-CQI-Index-SubframeSet2-r13 INTEGER (0..15), + betaOffsetMC-r12 SEQUENCE { + betaOffset-ACK-Index-MC-SubframeSet2-r13 INTEGER (0..15), + betaOffset2-ACK-Index-MC-SubframeSet2-r13 INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-MC-SubframeSet2-r13 INTEGER (0..15), + betaOffset-CQI-Index-MC-SubframeSet2-r13 INTEGER (0..15) + } OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + pusch-HoppingConfig-r13 ENUMERATED {on} OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicated-v1430 ::= SEQUENCE { + ce-PUSCH-NB-MaxTBS-r14 ENUMERATED {on} OPTIONAL, -- Need OR + ce-PUSCH-MaxBandwidth-r14 ENUMERATED {bw5} OPTIONAL, -- Need OR + tdd-PUSCH-UpPTS-r14 TDD-PUSCH-UpPTS-r14 OPTIONAL, -- Need ON + ul-DMRS-IFDMA-r14 BOOLEAN, + enable256QAM-r14 Enable256QAM-r14 OPTIONAL -- Need ON +} + +PUSCH-ConfigDedicatedSCell-r10 ::= SEQUENCE { + groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicatedSCell-v1430 ::= SEQUENCE { + enable256QAM-r14 Enable256QAM-r14 OPTIONAL -- Need OR +} + +TDD-PUSCH-UpPTS-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + symPUSCH-UpPTS-r14 ENUMERATED {sym1, sym2, sym3, sym4, sym5, sym6} OPTIONAL, -- Need ON + dmrs-LessUpPTS-Config-r14 ENUMERATED {true} OPTIONAL -- Need OR + } +} + +Enable256QAM-r14 ::= CHOICE { + release NULL, + setup CHOICE { + tpc-SubframeSet-Configured-r14 SEQUENCE { + subframeSet1-DCI-Format0-r14 BOOLEAN, + subframeSet1-DCI-Format4-r14 BOOLEAN, + subframeSet2-DCI-Format0-r14 BOOLEAN, + subframeSet2-DCI-Format4-r14 BOOLEAN + }, + tpc-SubframeSet-NotConfigured-r14 SEQUENCE { + dci-Format0-r14 BOOLEAN, + dci-Format4-r14 BOOLEAN + } + } +} + +PUSCH-EnhancementsConfig-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + pusch-HoppingOffsetPUSCH-Enh-r14 INTEGER (1..100) OPTIONAL, -- Need ON + interval-ULHoppingPUSCH-Enh-r14 CHOICE { + interval-FDD-PUSCH-Enh-r14 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-PUSCH-Enh-r14 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL -- Need ON + } +} + +UL-ReferenceSignalsPUSCH ::= SEQUENCE { + groupHoppingEnabled BOOLEAN, + groupAssignmentPUSCH INTEGER (0..29), + sequenceHoppingEnabled BOOLEAN, + cyclicShift INTEGER (0..7) +} + + +RACH-ConfigCommon ::= SEQUENCE { + preambleInfo SEQUENCE { + numberOfRA-Preambles ENUMERATED { + n4, n8, n12, n16, n20, n24, n28, + n32, n36, n40, n44, n48, n52, n56, + n60, n64}, + preamblesGroupAConfig SEQUENCE { + sizeOfRA-PreamblesGroupA ENUMERATED { + n4, n8, n12, n16, n20, n24, n28, + n32, n36, n40, n44, n48, n52, n56, + n60}, + messageSizeGroupA ENUMERATED {b56, b144, b208, b256}, + messagePowerOffsetGroupB ENUMERATED { + minusinfinity, dB0, dB5, dB8, dB10, dB12, + dB15, dB18}, + ... + } OPTIONAL -- Need OP + }, + powerRampingParameters PowerRampingParameters, + ra-SupervisionInfo SEQUENCE { + preambleTransMax PreambleTransMax, + ra-ResponseWindowSize ENUMERATED { + sf2, sf3, sf4, sf5, sf6, sf7, + sf8, sf10}, + mac-ContentionResolutionTimer ENUMERATED { + sf8, sf16, sf24, sf32, sf40, sf48, + sf56, sf64} + }, + maxHARQ-Msg3Tx INTEGER (1..8), + ..., + [[ preambleTransMax-CE-r13 PreambleTransMax OPTIONAL, -- Need OR + rach-CE-LevelInfoList-r13 RACH-CE-LevelInfoList-r13 OPTIONAL -- Need OR + ]] +} + +RACH-ConfigCommon-v1250 ::= SEQUENCE { + txFailParams-r12 SEQUENCE { + connEstFailCount-r12 ENUMERATED {n1, n2, n3, n4}, + connEstFailOffsetValidity-r12 ENUMERATED {s30, s60, s120, s240, + s300, s420, s600, s900}, + connEstFailOffset-r12 INTEGER (0..15) OPTIONAL -- Need OP + } +} + +RACH-ConfigCommonSCell-r11 ::= SEQUENCE { + powerRampingParameters-r11 PowerRampingParameters, + ra-SupervisionInfo-r11 SEQUENCE { + preambleTransMax-r11 PreambleTransMax + }, + ... +} + +RACH-CE-LevelInfoList-r13 ::= SEQUENCE (SIZE (1..maxCE-Level-r13)) OF RACH-CE-LevelInfo-r13 + +RACH-CE-LevelInfo-r13 ::= SEQUENCE { + preambleMappingInfo-r13 SEQUENCE { + firstPreamble-r13 INTEGER(0..63), + lastPreamble-r13 INTEGER(0..63) + }, + ra-ResponseWindowSize-r13 ENUMERATED {sf20, sf50, sf80, sf120, sf180, + sf240, sf320, sf400}, + + mac-ContentionResolutionTimer-r13 ENUMERATED {sf80, sf100, sf120, + sf160, sf200, sf240, sf480, sf960}, + rar-HoppingConfig-r13 ENUMERATED {on,off}, + ... +} + +PowerRampingParameters ::= SEQUENCE { + powerRampingStep ENUMERATED {dB0, dB2,dB4, dB6}, + preambleInitialReceivedTargetPower ENUMERATED { + dBm-120, dBm-118, dBm-116, dBm-114, dBm-112, + dBm-110, dBm-108, dBm-106, dBm-104, dBm-102, + dBm-100, dBm-98, dBm-96, dBm-94, + dBm-92, dBm-90} +} + +PreambleTransMax ::= ENUMERATED { + n3, n4, n5, n6, n7, n8, n10, n20, n50, + n100, n200} + + +RACH-ConfigDedicated ::= SEQUENCE { + ra-PreambleIndex INTEGER (0..63), + ra-PRACH-MaskIndex INTEGER (0..15) +} + + +RadioResourceConfigCommonSIB ::= SEQUENCE { + rach-ConfigCommon RACH-ConfigCommon, + bcch-Config BCCH-Config, + pcch-Config PCCH-Config, + prach-Config PRACH-ConfigSIB, + pdsch-ConfigCommon PDSCH-ConfigCommon, + pusch-ConfigCommon PUSCH-ConfigCommon, + pucch-ConfigCommon PUCCH-ConfigCommon, + soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon, + uplinkPowerControlCommon UplinkPowerControlCommon, + ul-CyclicPrefixLength UL-CyclicPrefixLength, + ..., + [[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need OR + ]], + [[ rach-ConfigCommon-v1250 RACH-ConfigCommon-v1250 OPTIONAL -- Need OR + ]], + [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR + ]], + [[ bcch-Config-v1310 BCCH-Config-v1310 OPTIONAL, -- Need OR + pcch-Config-v1310 PCCH-Config-v1310 OPTIONAL, -- Need OR + freqHoppingParameters-r13 FreqHoppingParameters-r13 OPTIONAL, -- Need OR + pdsch-ConfigCommon-v1310 PDSCH-ConfigCommon-v1310 OPTIONAL, -- Need OR + pusch-ConfigCommon-v1310 PUSCH-ConfigCommon-v1310 OPTIONAL, -- Need OR + prach-ConfigCommon-v1310 PRACH-ConfigSIB-v1310 OPTIONAL, -- Need OR + pucch-ConfigCommon-v1310 PUCCH-ConfigCommon-v1310 OPTIONAL -- Need OR + ]], + [[ highSpeedConfig-r14 HighSpeedConfig-r14 OPTIONAL, -- Need OR + prach-Config-v1430 PRACH-Config-v1430 OPTIONAL, -- Need OR + pucch-ConfigCommon-v1430 PUCCH-ConfigCommon-v1430 OPTIONAL -- Need OR + ]] +} + +RadioResourceConfigCommon ::= SEQUENCE { + rach-ConfigCommon RACH-ConfigCommon OPTIONAL, -- Need ON + prach-Config PRACH-Config, + pdsch-ConfigCommon PDSCH-ConfigCommon OPTIONAL, -- Need ON + pusch-ConfigCommon PUSCH-ConfigCommon, + phich-Config PHICH-Config OPTIONAL, -- Need ON + pucch-ConfigCommon PUCCH-ConfigCommon OPTIONAL, -- Need ON + soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon OPTIONAL, -- Need ON + uplinkPowerControlCommon UplinkPowerControlCommon OPTIONAL, -- Need ON + antennaInfoCommon AntennaInfoCommon OPTIONAL, -- Need ON + p-Max P-Max OPTIONAL, -- Need OP + tdd-Config TDD-Config OPTIONAL, -- Cond TDD + ul-CyclicPrefixLength UL-CyclicPrefixLength, + ..., + [[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need ON + ]], + [[ tdd-Config-v1130 TDD-Config-v1130 OPTIONAL -- Cond TDD3 + ]], + [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR + ]], + [[ + prach-Config-v1310 PRACH-Config-v1310 OPTIONAL, -- Need ON + freqHoppingParameters-r13 FreqHoppingParameters-r13 OPTIONAL, -- Need ON + pdsch-ConfigCommon-v1310 PDSCH-ConfigCommon-v1310 OPTIONAL, -- Need ON + pucch-ConfigCommon-v1310 PUCCH-ConfigCommon-v1310 OPTIONAL, -- Need ON + pusch-ConfigCommon-v1310 PUSCH-ConfigCommon-v1310 OPTIONAL, -- Need ON + uplinkPowerControlCommon-v1310 UplinkPowerControlCommon-v1310 OPTIONAL -- Need ON + ]], + [[ highSpeedConfig-r14 HighSpeedConfig-r14 OPTIONAL, -- Need OR + prach-Config-v1430 PRACH-Config-v1430 OPTIONAL, -- Need OR + pucch-ConfigCommon-v1430 PUCCH-ConfigCommon-v1430 OPTIONAL, -- Need OR + tdd-Config-v1430 TDD-Config-v1430 OPTIONAL -- Cond TDD3 + ]], + [[ + tdd-Config-v1450 TDD-Config-v1450 OPTIONAL -- Cond TDD3 + ]] +} + +RadioResourceConfigCommonPSCell-r12 ::= SEQUENCE { + basicFields-r12 RadioResourceConfigCommonSCell-r10, + pucch-ConfigCommon-r12 PUCCH-ConfigCommon, + rach-ConfigCommon-r12 RACH-ConfigCommon, + uplinkPowerControlCommonPSCell-r12 UplinkPowerControlCommonPSCell-r12, + ..., + [[ uplinkPowerControlCommonPSCell-v1310 + UplinkPowerControlCommon-v1310 OPTIONAL -- Need ON + ]] +} + +RadioResourceConfigCommonPSCell-v12f0 ::= SEQUENCE { + basicFields-v12f0 RadioResourceConfigCommonSCell-v10l0 +} + +RadioResourceConfigCommonPSCell-v1440 ::= SEQUENCE { + basicFields-v1440 RadioResourceConfigCommonSCell-v1440 +} + +RadioResourceConfigCommonSCell-r10 ::= SEQUENCE { + -- DL configuration as well as configuration applicable for DL and UL + nonUL-Configuration-r10 SEQUENCE { + -- 1: Cell characteristics + dl-Bandwidth-r10 ENUMERATED {n6, n15, n25, n50, n75, n100}, + -- 2: Physical configuration, general + antennaInfoCommon-r10 AntennaInfoCommon, + mbsfn-SubframeConfigList-r10 MBSFN-SubframeConfigList OPTIONAL, -- Need OR + -- 3: Physical configuration, control + phich-Config-r10 PHICH-Config, + -- 4: Physical configuration, physical channels + pdsch-ConfigCommon-r10 PDSCH-ConfigCommon, + tdd-Config-r10 TDD-Config OPTIONAL -- Cond TDDSCell + }, + -- UL configuration + ul-Configuration-r10 SEQUENCE { + ul-FreqInfo-r10 SEQUENCE { + ul-CarrierFreq-r10 ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth-r10 ENUMERATED {n6, n15, + n25, n50, n75, n100} OPTIONAL, -- Need OP + additionalSpectrumEmissionSCell-r10 AdditionalSpectrumEmission + }, + p-Max-r10 P-Max OPTIONAL, -- Need OP + uplinkPowerControlCommonSCell-r10 UplinkPowerControlCommonSCell-r10, + -- A special version of IE UplinkPowerControlCommon may be introduced + -- 3: Physical configuration, control + soundingRS-UL-ConfigCommon-r10 SoundingRS-UL-ConfigCommon, + ul-CyclicPrefixLength-r10 UL-CyclicPrefixLength, + -- 4: Physical configuration, physical channels + prach-ConfigSCell-r10 PRACH-ConfigSCell-r10 OPTIONAL, -- Cond TDD-OR-NoR11 + pusch-ConfigCommon-r10 PUSCH-ConfigCommon + } OPTIONAL, -- Need OR + ..., + [[ ul-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Need OP + ]], + [[ rach-ConfigCommonSCell-r11 RACH-ConfigCommonSCell-r11 OPTIONAL, -- Cond ULSCell + prach-ConfigSCell-r11 PRACH-Config OPTIONAL, -- Cond UL + tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD2 + uplinkPowerControlCommonSCell-v1130 + UplinkPowerControlCommonSCell-v1130 OPTIONAL -- Cond UL + ]], + [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR + ]], + [[ pucch-ConfigCommon-r13 PUCCH-ConfigCommon OPTIONAL, -- Cond UL + uplinkPowerControlCommonSCell-v1310 + UplinkPowerControlCommonSCell-v1310 OPTIONAL -- Cond UL + ]], + [[ highSpeedConfigSCell-r14 HighSpeedConfigSCell-r14 OPTIONAL, -- Need OR + prach-Config-v1430 PRACH-Config-v1430 OPTIONAL, -- Cond UL + ul-Configuration-r14 SEQUENCE { + ul-FreqInfo-r14 SEQUENCE { + ul-CarrierFreq-r14 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need OP + ul-Bandwidth-r14 ENUMERATED {n6, n15, + n25, n50, n75, n100} OPTIONAL, -- Need OP + additionalSpectrumEmissionSCell-r14 AdditionalSpectrumEmission + }, + p-Max-r14 P-Max OPTIONAL, -- Need OP + soundingRS-UL-ConfigCommon-r14 SoundingRS-UL-ConfigCommon, + ul-CyclicPrefixLength-r14 UL-CyclicPrefixLength, + prach-ConfigSCell-r14 PRACH-ConfigSCell-r10 OPTIONAL, -- Cond TDD-OR-NoR11 + uplinkPowerControlCommonPUSCH-LessCell-v1430 UplinkPowerControlCommonPUSCH-LessCell-v1430 OPTIONAL -- Need OR +} OPTIONAL, -- Cond ULSRS + harq-ReferenceConfig-r14 ENUMERATED {sa2,sa4,sa5} OPTIONAL, -- Need OR + soundingRS-FlexibleTiming-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL-- Need ON + ]] +} + +RadioResourceConfigCommonSCell-v10l0 ::= SEQUENCE { + -- UL configuration + ul-Configuration-v10l0 SEQUENCE { + additionalSpectrumEmissionSCell-v10l0 AdditionalSpectrumEmission-v10l0 + } +} + +RadioResourceConfigCommonSCell-v1440 ::= SEQUENCE { + ul-Configuration-v1440 SEQUENCE { + ul-FreqInfo-v1440 SEQUENCE { + additionalSpectrumEmissionSCell-v1440 AdditionalSpectrumEmission-v10l0 + } + } +} + +BCCH-Config ::= SEQUENCE { + modificationPeriodCoeff ENUMERATED {n2, n4, n8, n16} +} + +BCCH-Config-v1310 ::= SEQUENCE { + modificationPeriodCoeff-v1310 ENUMERATED {n64} +} + +FreqHoppingParameters-r13 ::= SEQUENCE { + dummy ENUMERATED {nb2, nb4} OPTIONAL, + dummy2 CHOICE { + interval-FDD-r13 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-r13 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL, + dummy3 CHOICE { + interval-FDD-r13 ENUMERATED {int2, int4, int8, int16}, + interval-TDD-r13 ENUMERATED { int5, int10, int20, int40} + } OPTIONAL, + interval-ULHoppingConfigCommonModeA-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int1, int2, int4, int8}, + interval-TDD-r13 ENUMERATED {int1, int5, int10, int20} + } OPTIONAL, -- Cond MP-A + interval-ULHoppingConfigCommonModeB-r13 CHOICE { + interval-FDD-r13 ENUMERATED {int2, int4, int8, int16}, + interval-TDD-r13 ENUMERATED { int5, int10, int20, int40} + } OPTIONAL, -- Cond MP-B + dummy4 INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL +} + +PCCH-Config ::= SEQUENCE { + defaultPagingCycle ENUMERATED { + rf32, rf64, rf128, rf256}, + nB ENUMERATED { + fourT, twoT, oneT, halfT, quarterT, oneEighthT, + oneSixteenthT, oneThirtySecondT} +} + +PCCH-Config-v1310 ::= SEQUENCE { + paging-narrowBands-r13 INTEGER (1..maxAvailNarrowBands-r13), + mpdcch-NumRepetition-Paging-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, r256}, + nB-v1310 ENUMERATED {one64thT, one128thT, one256thT} + OPTIONAL -- Need OR +} + +UL-CyclicPrefixLength ::= ENUMERATED {len1, len2} + +HighSpeedConfig-r14 ::= SEQUENCE { + highSpeedEnhancedMeasFlag-r14 ENUMERATED {true} OPTIONAL, -- Need OR + highSpeedEnhancedDemodulationFlag-r14 ENUMERATED {true} OPTIONAL -- Need OR +} + +HighSpeedConfigSCell-r14 ::= SEQUENCE { + highSpeedEnhancedDemodulationFlag-r14 ENUMERATED {true} OPTIONAL -- Need OR +} + + +RadioResourceConfigDedicated ::= SEQUENCE { + srb-ToAddModList SRB-ToAddModList OPTIONAL, -- Cond HO-Conn + drb-ToAddModList DRB-ToAddModList OPTIONAL, -- Cond HO-toEUTRA + drb-ToReleaseList DRB-ToReleaseList OPTIONAL, -- Need ON + mac-MainConfig CHOICE { + explicitValue MAC-MainConfig, + defaultValue NULL + } OPTIONAL, -- Cond HO-toEUTRA2 + sps-Config SPS-Config OPTIONAL, -- Need ON + physicalConfigDedicated PhysicalConfigDedicated OPTIONAL, -- Need ON + ..., + [[ rlf-TimersAndConstants-r9 RLF-TimersAndConstants-r9 OPTIONAL -- Need ON + ]], + [[ measSubframePatternPCell-r10 MeasSubframePatternPCell-r10 OPTIONAL -- Need ON + ]], + [[ neighCellsCRS-Info-r11 NeighCellsCRS-Info-r11 OPTIONAL -- Need ON + ]], + [[ naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL -- Need ON + ]], + [[ neighCellsCRS-Info-r13 NeighCellsCRS-Info-r13 OPTIONAL, -- Cond CRSIM + rlf-TimersAndConstants-r13 RLF-TimersAndConstants-r13 OPTIONAL -- Need ON + ]], + [[ sps-Config-v1430 SPS-Config-v1430 OPTIONAL -- Cond SPS + ]] +} + +RadioResourceConfigDedicated-v1370 ::= SEQUENCE { + physicalConfigDedicated-v1370 PhysicalConfigDedicated-v1370 OPTIONAL -- Need ON +} + +RadioResourceConfigDedicatedPSCell-r12 ::= SEQUENCE { + -- UE specific configuration extensions applicable for an PSCell + physicalConfigDedicatedPSCell-r12 PhysicalConfigDedicated OPTIONAL, -- Need ON + sps-Config-r12 SPS-Config OPTIONAL, -- Need ON + naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL, -- Need ON + ..., + [[ neighCellsCRS-InfoPSCell-r13 NeighCellsCRS-Info-r13 OPTIONAL -- Need ON + ]], + [[ sps-Config-v1430 SPS-Config-v1430 OPTIONAL -- Cond SPS2 + ]] +} + +RadioResourceConfigDedicatedPSCell-v1370 ::= SEQUENCE { + physicalConfigDedicatedPSCell-v1370 PhysicalConfigDedicated-v1370 OPTIONAL -- Need ON +} + +RadioResourceConfigDedicatedSCG-r12 ::= SEQUENCE { + drb-ToAddModListSCG-r12 DRB-ToAddModListSCG-r12 OPTIONAL, -- Need ON + mac-MainConfigSCG-r12 MAC-MainConfig OPTIONAL, -- Need ON + rlf-TimersAndConstantsSCG-r12 RLF-TimersAndConstantsSCG-r12 OPTIONAL, -- Need ON + ... +} + +RadioResourceConfigDedicatedSCell-r10 ::= SEQUENCE { + -- UE specific configuration extensions applicable for an SCell + physicalConfigDedicatedSCell-r10 PhysicalConfigDedicatedSCell-r10 OPTIONAL, -- Need ON + ..., + [[ mac-MainConfigSCell-r11 MAC-MainConfigSCell-r11 OPTIONAL -- Cond SCellAdd + ]], + [[ naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL -- Need ON + ]], + [[ neighCellsCRS-InfoSCell-r13 NeighCellsCRS-Info-r13 OPTIONAL -- Need ON + ]], + [[ physicalConfigDedicatedSCell-v1370 PhysicalConfigDedicatedSCell-v1370 OPTIONAL -- Need ON + ]] +} + +SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod + +SRB-ToAddMod ::= SEQUENCE { + srb-Identity INTEGER (1..2), + rlc-Config CHOICE { + explicitValue RLC-Config, + defaultValue NULL + } OPTIONAL, -- Cond Setup + logicalChannelConfig CHOICE { + explicitValue LogicalChannelConfig, + defaultValue NULL + } OPTIONAL, -- Cond Setup + ..., + [[ pdcp-verChange-r15 ENUMERATED {true} OPTIONAL -- Cond NR-PDCP + ]] +} + +DRB-ToAddModList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod + +DRB-ToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddModSCG-r12 + +DRB-ToAddMod ::= SEQUENCE { + eps-BearerIdentity INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity DRB-Identity, + pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP + rlc-Config RLC-Config OPTIONAL, -- Cond SetupM + logicalChannelIdentity INTEGER (3..10) OPTIONAL, -- Cond DRB-SetupM + logicalChannelConfig LogicalChannelConfig OPTIONAL, -- Cond SetupM + ..., + [[ drb-TypeChange-r12 ENUMERATED {toMCG} OPTIONAL, -- Need OP + rlc-Config-v1250 RLC-Config-v1250 OPTIONAL -- Need ON + ]], + [[ rlc-Config-v1310 RLC-Config-v1310 OPTIONAL, -- Need ON + drb-TypeLWA-r13 BOOLEAN OPTIONAL, -- Need ON + drb-TypeLWIP-r13 ENUMERATED {lwip, lwip-DL-only, + lwip-UL-only, eutran} OPTIONAL -- Need ON + ]], + [[ rlc-Config-v1430 RLC-Config-v1430 OPTIONAL, -- Need ON + lwip-UL-Aggregation-r14 BOOLEAN OPTIONAL, -- Cond LWIP + lwip-DL-Aggregation-r14 BOOLEAN OPTIONAL, -- Cond LWIP + lwa-WLAN-AC-r14 ENUMERATED {ac-bk, ac-be, ac-vi, ac-vo} OPTIONAL -- Cond UL-LWA + ]], + [[ rlc-Config-v1510 RLC-Config-v1510 OPTIONAL -- Need ON + ]] +} + +DRB-ToAddModSCG-r12 ::= SEQUENCE { + drb-Identity-r12 DRB-Identity, + drb-Type-r12 CHOICE { + split-r12 NULL, + scg-r12 SEQUENCE { + eps-BearerIdentity-r12 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + pdcp-Config-r12 PDCP-Config OPTIONAL -- Cond PDCP-S + } + } OPTIONAL, -- Cond SetupS2 + rlc-ConfigSCG-r12 RLC-Config OPTIONAL, -- Cond SetupS + rlc-Config-v1250 RLC-Config-v1250 OPTIONAL, -- Need ON + logicalChannelIdentitySCG-r12 INTEGER (3..10) OPTIONAL, -- Cond DRB-SetupS + logicalChannelConfigSCG-r12 LogicalChannelConfig OPTIONAL, -- Cond SetupS + ..., + [[ rlc-Config-v1430 RLC-Config-v1430 OPTIONAL -- Need ON + ]] +} + +DRB-ToReleaseList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity + +MeasSubframePatternPCell-r10 ::= CHOICE { + release NULL, + setup MeasSubframePattern-r10 +} + +NeighCellsCRS-Info-r11 ::= CHOICE { + release NULL, + setup CRS-AssistanceInfoList-r11 +} + +CRS-AssistanceInfoList-r11 ::= SEQUENCE (SIZE (1..maxCellReport)) OF CRS-AssistanceInfo-r11 + +CRS-AssistanceInfo-r11 ::= SEQUENCE { + physCellId-r11 PhysCellId, + antennaPortsCount-r11 ENUMERATED {an1, an2, an4, spare1}, + mbsfn-SubframeConfigList-r11 MBSFN-SubframeConfigList, + ..., + [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL -- Need ON + ]] +} + +NeighCellsCRS-Info-r13 ::= CHOICE { + release NULL, + setup CRS-AssistanceInfoList-r13 +} + +CRS-AssistanceInfoList-r13 ::= SEQUENCE (SIZE (1..maxCellReport)) OF CRS-AssistanceInfo-r13 + +CRS-AssistanceInfo-r13 ::= SEQUENCE { + physCellId-r13 PhysCellId, + antennaPortsCount-r13 ENUMERATED {an1, an2, an4, spare1}, + mbsfn-SubframeConfigList-r13 MBSFN-SubframeConfigList OPTIONAL, -- Need ON + ..., + [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL -- Need ON + ]] +} + +NAICS-AssistanceInfo-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + neighCellsToReleaseList-r12 NeighCellsToReleaseList-r12 OPTIONAL , -- Need ON + neighCellsToAddModList-r12 NeighCellsToAddModList-r12 OPTIONAL, -- Need ON + servCellp-a-r12 P-a OPTIONAL -- Need ON + } +} + +NeighCellsToReleaseList-r12 ::= SEQUENCE (SIZE (1..maxNeighCell-r12)) OF PhysCellId + +NeighCellsToAddModList-r12 ::= SEQUENCE (SIZE (1..maxNeighCell-r12)) OF NeighCellsInfo-r12 + +NeighCellsInfo-r12 ::= SEQUENCE { + physCellId-r12 PhysCellId, + p-b-r12 INTEGER (0..3), + crs-PortsCount-r12 ENUMERATED {n1, n2, n4, spare}, + mbsfn-SubframeConfig-r12 MBSFN-SubframeConfigList OPTIONAL, -- Need ON + p-aList-r12 SEQUENCE (SIZE (1..maxP-a-PerNeighCell-r12)) OF P-a, + transmissionModeList-r12 BIT STRING (SIZE(8)), + resAllocGranularity-r12 INTEGER (1..4), + ... +} +P-a ::= ENUMERATED { dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} + + +RCLWI-Configuration-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + rclwi-Config-r13 RCLWI-Config-r13 + } +} + +RCLWI-Config-r13 ::= SEQUENCE { + command CHOICE { + steerToWLAN-r13 SEQUENCE { + mobilityConfig-r13 WLAN-Id-List-r12 + }, + steerToLTE-r13 NULL + }, + ... +} + + +RLC-Config ::= CHOICE { + am SEQUENCE { + ul-AM-RLC UL-AM-RLC, + dl-AM-RLC DL-AM-RLC + }, + um-Bi-Directional SEQUENCE { + ul-UM-RLC UL-UM-RLC, + dl-UM-RLC DL-UM-RLC + }, + um-Uni-Directional-UL SEQUENCE { + ul-UM-RLC UL-UM-RLC + }, + um-Uni-Directional-DL SEQUENCE { + dl-UM-RLC DL-UM-RLC + }, + ... +} + +RLC-Config-v1250 ::= SEQUENCE { + ul-extended-RLC-LI-Field-r12 BOOLEAN, + dl-extended-RLC-LI-Field-r12 BOOLEAN +} + +RLC-Config-v1310 ::= SEQUENCE { + ul-extended-RLC-AM-SN-r13 BOOLEAN, + dl-extended-RLC-AM-SN-r13 BOOLEAN, + pollPDU-v1310 PollPDU-v1310 OPTIONAL -- Need OR +} + +RLC-Config-v1430 ::= CHOICE { + release NULL, + setup SEQUENCE { + pollByte-r14 PollByte-r14 + } +} + +RLC-Config-v1510 ::= SEQUENCE { + reestablishRLC-r15 ENUMERATED {true} +} + +UL-AM-RLC ::= SEQUENCE { + t-PollRetransmit T-PollRetransmit, + pollPDU PollPDU, + pollByte PollByte, + maxRetxThreshold ENUMERATED { + t1, t2, t3, t4, t6, t8, t16, t32} +} + +DL-AM-RLC ::= SEQUENCE { + t-Reordering T-Reordering, + t-StatusProhibit T-StatusProhibit +} + +UL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength +} + +DL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength, + t-Reordering T-Reordering +} + +SN-FieldLength ::= ENUMERATED {size5, size10} + +T-PollRetransmit ::= ENUMERATED { + ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, ms800-v1310, + ms1000-v1310, ms2000-v1310, ms4000-v1310, + spare5, spare4, spare3, spare2, spare1} + +PollPDU ::= ENUMERATED { + p4, p8, p16, p32, p64, p128, p256, pInfinity} + +PollPDU-v1310 ::= ENUMERATED { + p512, p1024, p2048, p4096, p6144, p8192, p12288, p16384} + +PollByte ::= ENUMERATED { + kB25, kB50, kB75, kB100, kB125, kB250, kB375, + kB500, kB750, kB1000, kB1250, kB1500, kB2000, + kB3000, kBinfinity, spare1} + +PollByte-r14 ::= ENUMERATED { + kB1, kB2, kB5, kB8, kB10, kB15, kB3500, + kB4000, kB4500, kB5000, kB5500, kB6000, kB6500, + kB7000, kB7500, kB8000, kB9000, kB10000, kB11000, kB12000, + kB13000, kB14000, kB15000, kB16000, kB17000, kB18000, + kB19000, kB20000, kB25000, kB30000, kB35000, kB40000} + +T-Reordering ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms110, + ms120, ms130, ms140, ms150, ms160, ms170, + ms180, ms190, ms200, ms1600-v1310} + +T-StatusProhibit ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, ms800-v1310, + ms1000-v1310, ms1200-v1310, ms1600-v1310, ms2000-v1310, ms2400-v1310, spare2, + spare1} + + +RLF-TimersAndConstants-r9 ::= CHOICE { + release NULL, + setup SEQUENCE { + t301-r9 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t310-r9 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n310-r9 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311-r9 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311-r9 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ... + } +} + +RLF-TimersAndConstants-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + t301-v1310 ENUMERATED { + ms2500, ms3000, ms3500, ms4000, ms5000, + ms6000, ms8000, ms10000}, + ..., + [[ t310-v1330 ENUMERATED {ms4000, ms6000} OPTIONAL -- Need ON + ]] + } +} + +RLF-TimersAndConstantsSCG-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + t313-r12 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n313-r12 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + n314-r12 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ... + } +} + + +RN-SubframeConfig-r10 ::= SEQUENCE { + subframeConfigPattern-r10 CHOICE { + subframeConfigPatternFDD-r10 BIT STRING (SIZE(8)), + subframeConfigPatternTDD-r10 INTEGER (0..31) + } OPTIONAL, -- Need ON + rpdcch-Config-r10 SEQUENCE { + resourceAllocationType-r10 ENUMERATED {type0, type1, type2Localized, type2Distributed, + spare4, spare3, spare2, spare1}, + resourceBlockAssignment-r10 CHOICE { + type01-r10 CHOICE { + nrb6-r10 BIT STRING (SIZE(6)), + nrb15-r10 BIT STRING (SIZE(8)), + nrb25-r10 BIT STRING (SIZE(13)), + nrb50-r10 BIT STRING (SIZE(17)), + nrb75-r10 BIT STRING (SIZE(19)), + nrb100-r10 BIT STRING (SIZE(25)) + }, + type2-r10 CHOICE { + nrb6-r10 BIT STRING (SIZE(5)), + nrb15-r10 BIT STRING (SIZE(7)), + nrb25-r10 BIT STRING (SIZE(9)), + nrb50-r10 BIT STRING (SIZE(11)), + nrb75-r10 BIT STRING (SIZE(12)), + nrb100-r10 BIT STRING (SIZE(13)) + }, + ... + }, + demodulationRS-r10 CHOICE { + interleaving-r10 ENUMERATED {crs}, + noInterleaving-r10 ENUMERATED {crs, dmrs} + }, + pdsch-Start-r10 INTEGER (1..3), + pucch-Config-r10 CHOICE { + tdd CHOICE { + channelSelectionMultiplexingBundling SEQUENCE { + n1PUCCH-AN-List-r10 SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + }, + fallbackForFormat3 SEQUENCE { + n1PUCCH-AN-P0-r10 INTEGER (0..2047), + n1PUCCH-AN-P1-r10 INTEGER (0..2047) OPTIONAL -- Need OR + } + }, + fdd SEQUENCE { + n1PUCCH-AN-P0-r10 INTEGER (0..2047), + n1PUCCH-AN-P1-r10 INTEGER (0..2047) OPTIONAL -- Need OR + } + }, + ... + } OPTIONAL, -- Need ON + ... +} + + +SchedulingRequestConfig ::= CHOICE { + release NULL, + setup SEQUENCE { + sr-PUCCH-ResourceIndex INTEGER (0..2047), + sr-ConfigIndex INTEGER (0..157), + dsr-TransMax ENUMERATED { + n4, n8, n16, n32, n64, spare3, spare2, spare1} + } +} + +SchedulingRequestConfig-v1020 ::= SEQUENCE { + sr-PUCCH-ResourceIndexP1-r10 INTEGER (0..2047) OPTIONAL -- Need OR +} + +SchedulingRequestConfigSCell-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + sr-PUCCH-ResourceIndex-r13 INTEGER (0..2047), + sr-PUCCH-ResourceIndexP1-r13 INTEGER (0..2047) OPTIONAL, -- Need OR + sr-ConfigIndex-r13 INTEGER (0..157), + dsr-TransMax-r13 ENUMERATED { + n4, n8, n16, n32, n64, spare3, spare2, spare1} + } + +} + + +SoundingRS-UL-ConfigCommon ::= CHOICE { + release NULL, + setup SEQUENCE { + srs-BandwidthConfig ENUMERATED {bw0, bw1, bw2, bw3, bw4, bw5, bw6, bw7}, + srs-SubframeConfig ENUMERATED { + sc0, sc1, sc2, sc3, sc4, sc5, sc6, sc7, + sc8, sc9, sc10, sc11, sc12, sc13, sc14, sc15}, + ackNackSRS-SimultaneousTransmission BOOLEAN, + srs-MaxUpPts ENUMERATED {true} OPTIONAL -- Cond TDD + } +} + +SoundingRS-UL-ConfigDedicated ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-Bandwidth ENUMERATED {bw0, bw1, bw2, bw3}, + srs-HoppingBandwidth ENUMERATED {hbw0, hbw1, hbw2, hbw3}, + freqDomainPosition INTEGER (0..23), + duration BOOLEAN, + srs-ConfigIndex INTEGER (0..1023), + transmissionComb INTEGER (0..1), + cyclicShift ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7} + } +} + +SoundingRS-UL-ConfigDedicated-v1020 ::= SEQUENCE { + srs-AntennaPort-r10 SRS-AntennaPort +} + +SoundingRS-UL-ConfigDedicated-v1310 ::= CHOICE{ + release NULL, + setup SEQUENCE { + transmissionComb-v1310 INTEGER (2..3) OPTIONAL, -- Need OR + cyclicShift-v1310 ENUMERATED {cs8, cs9, cs10, cs11} OPTIONAL, -- Need OR + transmissionCombNum-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR + } +} + +SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-UpPtsAdd-r13 ENUMERATED {sym2, sym4}, + srs-Bandwidth-r13 ENUMERATED {bw0, bw1, bw2, bw3}, + srs-HoppingBandwidth-r13 ENUMERATED {hbw0, hbw1, hbw2, hbw3}, + freqDomainPosition-r13 INTEGER (0..23), + duration-r13 BOOLEAN, + srs-ConfigIndex-r13 INTEGER (0..1023), + transmissionComb-r13 INTEGER (0..3), + cyclicShift-r13 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, + cs8, cs9, cs10, cs11}, + srs-AntennaPort-r13 SRS-AntennaPort, + transmissionCombNum-r13 ENUMERATED {n2, n4} + } +} + +SoundingRS-UL-ConfigDedicatedAperiodic-r10 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-ConfigIndexAp-r10 INTEGER (0..31), + srs-ConfigApDCI-Format4-r10 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-r10 OPTIONAL,--Need ON + srs-ActivateAp-r10 CHOICE { + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format0-r10 SRS-ConfigAp-r10, + srs-ConfigApDCI-Format1a2b2c-r10 SRS-ConfigAp-r10, + ... + } + } OPTIONAL -- Need ON + } +} + +SoundingRS-UL-ConfigDedicatedAperiodic-v1310 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format4-v1310 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-v1310 OPTIONAL,--Need ON + srs-ActivateAp-v1310 CHOICE { + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format0-v1310 SRS-ConfigAp-v1310 OPTIONAL, -- Need ON + srs-ConfigApDCI-Format1a2b2c-v1310 SRS-ConfigAp-v1310 OPTIONAL -- Need ON + } + } OPTIONAL -- Need ON + } +} + +SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-UpPtsAdd-r13 ENUMERATED {sym2, sym4}, + srs-ConfigIndexAp-r13 INTEGER (0..31), + srs-ConfigApDCI-Format4-r13 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-r13 OPTIONAL,--Need ON + srs-ActivateAp-r13 CHOICE { + release NULL, + setup SEQUENCE { + srs-ConfigApDCI-Format0-r13 SRS-ConfigAp-r13, + srs-ConfigApDCI-Format1a2b2c-r13 SRS-ConfigAp-r13 + } + } OPTIONAL -- Need ON + } +} + +SoundingRS-UL-ConfigDedicatedAperiodic-v1430 ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-SubframeIndication-r14 INTEGER (1..4) OPTIONAL -- Need ON + } +} + +SRS-ConfigAp-r10 ::= SEQUENCE { + srs-AntennaPortAp-r10 SRS-AntennaPort, + srs-BandwidthAp-r10 ENUMERATED {bw0, bw1, bw2, bw3}, + freqDomainPositionAp-r10 INTEGER (0..23), + transmissionCombAp-r10 INTEGER (0..1), + cyclicShiftAp-r10 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7} +} + +SRS-ConfigAp-v1310 ::= SEQUENCE { + transmissionCombAp-v1310 INTEGER (2..3) OPTIONAL, -- Need OR + cyclicShiftAp-v1310 ENUMERATED {cs8, cs9, cs10, cs11} OPTIONAL, -- Need OR + transmissionCombNum-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR +} + +SRS-ConfigAp-r13 ::= SEQUENCE { + srs-AntennaPortAp-r13 SRS-AntennaPort, + srs-BandwidthAp-r13 ENUMERATED {bw0, bw1, bw2, bw3}, + freqDomainPositionAp-r13 INTEGER (0..23), + transmissionCombAp-r13 INTEGER (0..3), + cyclicShiftAp-r13 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, + cs8, cs9, cs10, cs11}, + transmissionCombNum-r13 ENUMERATED {n2, n4} +} + +SRS-AntennaPort ::= ENUMERATED {an1, an2, an4, spare1} + + +SPS-Config ::= SEQUENCE { + semiPersistSchedC-RNTI C-RNTI OPTIONAL, -- Need OR + sps-ConfigDL SPS-ConfigDL OPTIONAL, -- Need ON + sps-ConfigUL SPS-ConfigUL OPTIONAL -- Need ON +} + +SPS-Config-v1430 ::= SEQUENCE { + ul-SPS-V-RNTI-r14 C-RNTI OPTIONAL, -- Need OR + sl-SPS-V-RNTI-r14 C-RNTI OPTIONAL, -- Need OR + sps-ConfigUL-ToAddModList-r14 SPS-ConfigUL-ToAddModList-r14 OPTIONAL, -- Need ON + sps-ConfigUL-ToReleaseList-r14 SPS-ConfigUL-ToReleaseList-r14 OPTIONAL, -- Need ON + sps-ConfigSL-ToAddModList-r14 SPS-ConfigSL-ToAddModList-r14 OPTIONAL, -- Need ON + sps-ConfigSL-ToReleaseList-r14 SPS-ConfigSL-ToReleaseList-r14 OPTIONAL -- Need ON +} + +SPS-ConfigUL-ToAddModList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigUL + +SPS-ConfigUL-ToReleaseList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigIndex-r14 + +SPS-ConfigSL-ToAddModList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigSL-r14 + +SPS-ConfigSL-ToReleaseList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigIndex-r14 + +SPS-ConfigDL ::= CHOICE{ + release NULL, + setup SEQUENCE { + semiPersistSchedIntervalDL ENUMERATED { + sf10, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, spare6, + spare5, spare4, spare3, spare2, + spare1}, + numberOfConfSPS-Processes INTEGER (1..8), + n1PUCCH-AN-PersistentList N1PUCCH-AN-PersistentList, + ..., + [[ twoAntennaPortActivated-r10 CHOICE { + release NULL, + setup SEQUENCE { + n1PUCCH-AN-PersistentListP1-r10 N1PUCCH-AN-PersistentList + } + } OPTIONAL -- Need ON + ]] + } +} + +SPS-ConfigUL ::= CHOICE { + release NULL, + setup SEQUENCE { + semiPersistSchedIntervalUL ENUMERATED { + sf10, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, sf1-v1430, + sf2-v1430, sf3-v1430, sf4-v1430, sf5-v1430, + spare1}, + implicitReleaseAfter ENUMERATED {e2, e3, e4, e8}, + p0-Persistent SEQUENCE { + p0-NominalPUSCH-Persistent INTEGER (-126..24), + p0-UE-PUSCH-Persistent INTEGER (-8..7) + } OPTIONAL, -- Need OP + twoIntervalsConfig ENUMERATED {true} OPTIONAL, -- Cond TDD + ..., + [[ p0-PersistentSubframeSet2-r12 CHOICE { + release NULL, + setup SEQUENCE { + p0-NominalPUSCH-PersistentSubframeSet2-r12 INTEGER (-126..24), + p0-UE-PUSCH-PersistentSubframeSet2-r12 INTEGER (-8..7) + } + } OPTIONAL -- Need ON + ]], + [[ numberOfConfUlSPS-Processes-r13 INTEGER (1..8) OPTIONAL -- Need OR + ]], + [[ fixedRV-NonAdaptive-r14 ENUMERATED {true} OPTIONAL, -- Need OR + sps-ConfigIndex-r14 SPS-ConfigIndex-r14 OPTIONAL, -- Need OR + semiPersistSchedIntervalUL-v1430 ENUMERATED { + sf50, sf100, sf200, sf300, sf400, sf500, + sf600, sf700, sf800, sf900, sf1000, spare5, + spare4, spare3, spare2, spare1} OPTIONAL -- Need OR + + ]] + } +} + +SPS-ConfigSL-r14 ::= SEQUENCE { + sps-ConfigIndex-r14 SPS-ConfigIndex-r14, + semiPersistSchedIntervalSL-r14 ENUMERATED { + sf20, sf50, sf100, sf200, sf300, sf400, + sf500, sf600, sf700, sf800, sf900, sf1000, + spare4, spare3, spare2, spare1} +} + +SPS-ConfigIndex-r14 ::= INTEGER (1..maxConfigSPS-r14) + +N1PUCCH-AN-PersistentList ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + + +SRS-TPC-PDCCH-Config-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + srs-TPC-RNTI-r14 BIT STRING (SIZE (16)), + startingBitOfFormat3B-r14 INTEGER (0..31), fieldTypeFormat3B-r14 INTEGER (1..4), + srs-CC-SetIndexlist-r14 SEQUENCE (SIZE(1..4)) OF SRS-CC-SetIndex-r14 OPTIONAL -- Cond SRS-Trigger-TypeA + + } +} + +SRS-CC-SetIndex-r14 ::= SEQUENCE { + cc-SetIndex-r14 INTEGER (0..3), + cc-IndexInOneCC-Set-r14 INTEGER (0..7) +} + + +TDD-Config ::= SEQUENCE { + subframeAssignment ENUMERATED { + sa0, sa1, sa2, sa3, sa4, sa5, sa6}, + specialSubframePatterns ENUMERATED { + ssp0, ssp1, ssp2, ssp3, ssp4,ssp5, ssp6, ssp7, + ssp8} +} + +TDD-Config-v1130 ::= SEQUENCE { + specialSubframePatterns-v1130 ENUMERATED {ssp7,ssp9} +} + +TDD-Config-v1430 ::= SEQUENCE { + specialSubframePatterns-v1430 ENUMERATED {ssp10} +} + +TDD-Config-v1450 ::= SEQUENCE { + specialSubframePatterns-v1450 ENUMERATED {ssp10-CRS-LessDwPTS} +} + +TDD-ConfigSL-r12 ::= SEQUENCE { + subframeAssignmentSL-r12 ENUMERATED { + none, sa0, sa1, sa2, sa3, sa4, sa5, sa6} +} + +SubframeAssignment-r15 ::= ENUMERATED {sa0, sa1, sa2, sa3, sa4, sa5, sa6} + + +TimeAlignmentTimer ::= ENUMERATED { + sf500, sf750, sf1280, sf1920, sf2560, sf5120, + sf10240, infinity} + +TPC-PDCCH-Config ::= CHOICE { + release NULL, + setup SEQUENCE { + tpc-RNTI BIT STRING (SIZE (16)), + tpc-Index TPC-Index + } +} + +TPC-PDCCH-ConfigSCell-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + tpc-Index-PUCCH-SCell-r13 TPC-Index + } +} + +TPC-Index ::= CHOICE { + indexOfFormat3 INTEGER (1..15), + indexOfFormat3A INTEGER (1..31) +} + + +TunnelConfigLWIP-r13 ::= SEQUENCE { + ip-Address-r13 IP-Address-r13, + ike-Identity-r13 IKE-Identity-r13, + ..., + [[ lwip-Counter-r13 INTEGER (0..65535) OPTIONAL -- Cond LWIP-Setup + ]] +} + +IKE-Identity-r13 ::= SEQUENCE { + idI-r13 OCTET STRING +} + +IP-Address-r13 ::= CHOICE { + ipv4-r13 BIT STRING (SIZE (32)), + ipv6-r13 BIT STRING (SIZE (128)) +} + + +UplinkPowerControlCommon ::= SEQUENCE { + p0-NominalPUSCH INTEGER (-126..24), + alpha Alpha-r12, + p0-NominalPUCCH INTEGER (-127..-96), + deltaFList-PUCCH DeltaFList-PUCCH, + deltaPreambleMsg3 INTEGER (-1..6) +} + +UplinkPowerControlCommon-v1020 ::= SEQUENCE { + deltaF-PUCCH-Format3-r10 ENUMERATED {deltaF-1, deltaF0, deltaF1, deltaF2, + deltaF3, deltaF4, deltaF5, deltaF6}, + deltaF-PUCCH-Format1bCS-r10 ENUMERATED {deltaF1, deltaF2, spare2, spare1} +} + +UplinkPowerControlCommon-v1310 ::= SEQUENCE { + deltaF-PUCCH-Format4-r13 ENUMERATED {deltaF16, deltaF15, deltaF14,deltaF13, deltaF12, + deltaF11, deltaF10, spare1} OPTIONAL, -- Need OR + deltaF-PUCCH-Format5-13 ENUMERATED { deltaF13, deltaF12, deltaF11, deltaF10, deltaF9, + deltaF8, deltaF7, spare1} OPTIONAL -- Need OR +} + +UplinkPowerControlCommonPSCell-r12 ::= SEQUENCE { +-- For uplink power control the additional/ missing fields are signalled (compared to SCell) + deltaF-PUCCH-Format3-r12 ENUMERATED {deltaF-1, deltaF0, deltaF1, deltaF2, + deltaF3, deltaF4, deltaF5, deltaF6}, + deltaF-PUCCH-Format1bCS-r12 ENUMERATED {deltaF1, deltaF2, spare2, spare1}, + p0-NominalPUCCH-r12 INTEGER (-127..-96), + deltaFList-PUCCH-r12 DeltaFList-PUCCH +} + + +UplinkPowerControlCommonSCell-r10 ::= SEQUENCE { + p0-NominalPUSCH-r10 INTEGER (-126..24), + alpha-r10 Alpha-r12 +} + +UplinkPowerControlCommonSCell-v1130 ::= SEQUENCE { + deltaPreambleMsg3-r11 INTEGER (-1..6) +} + +UplinkPowerControlCommonSCell-v1310 ::= SEQUENCE { +-- For uplink power control the additional/ missing fields are signalled (compared to SCell) + p0-NominalPUCCH INTEGER (-127..-96), + deltaFList-PUCCH DeltaFList-PUCCH, + deltaF-PUCCH-Format3-r12 ENUMERATED {deltaF-1, deltaF0, deltaF1, + deltaF2, deltaF3, deltaF4, deltaF5, + deltaF6} OPTIONAL, -- Need OR + deltaF-PUCCH-Format1bCS-r12 ENUMERATED {deltaF1, deltaF2, + spare2, spare1} OPTIONAL, -- Need OR + deltaF-PUCCH-Format4-r13 ENUMERATED {deltaF16, deltaF15, deltaF14, + deltaF13, deltaF12, deltaF11, deltaF10, + spare1} OPTIONAL, -- Need OR + deltaF-PUCCH-Format5-13 ENUMERATED { deltaF13, deltaF12, deltaF11, + deltaF10, deltaF9, deltaF8, deltaF7, + spare1} OPTIONAL -- Need OR +} +UplinkPowerControlCommonPUSCH-LessCell-v1430 ::= SEQUENCE { + p0-Nominal-PeriodicSRS-r14 INTEGER (-126..24) OPTIONAL, -- Need OR + p0-Nominal-AperiodicSRS-r14 INTEGER (-126..24) OPTIONAL, -- Need OR + alpha-SRS-r14 Alpha-r12 OPTIONAL -- Need OR +} + +UplinkPowerControlDedicated ::= SEQUENCE { + p0-UE-PUSCH INTEGER (-8..7), + deltaMCS-Enabled ENUMERATED {en0, en1}, + accumulationEnabled BOOLEAN, + p0-UE-PUCCH INTEGER (-8..7), + pSRS-Offset INTEGER (0..15), + filterCoefficient FilterCoefficient DEFAULT fc4 +} + +UplinkPowerControlDedicated-v1020 ::= SEQUENCE { + deltaTxD-OffsetListPUCCH-r10 DeltaTxD-OffsetListPUCCH-r10 OPTIONAL, -- Need OR + pSRS-OffsetAp-r10 INTEGER (0..15) OPTIONAL -- Need OR +} + +UplinkPowerControlDedicated-v1130 ::= SEQUENCE { + pSRS-Offset-v1130 INTEGER (16..31) OPTIONAL, -- Need OR + pSRS-OffsetAp-v1130 INTEGER (16..31) OPTIONAL, -- Need OR + deltaTxD-OffsetListPUCCH-v1130 DeltaTxD-OffsetListPUCCH-v1130 OPTIONAL -- Need OR +} + +UplinkPowerControlDedicated-v1250 ::= SEQUENCE { + set2PowerControlParameter CHOICE { + release NULL, + setup SEQUENCE { + tpc-SubframeSet-r12 BIT STRING (SIZE(10)), + p0-NominalPUSCH-SubframeSet2-r12 INTEGER (-126..24), + alpha-SubframeSet2-r12 Alpha-r12, + p0-UE-PUSCH-SubframeSet2-r12 INTEGER (-8..7) + } + } +} + +UplinkPUSCH-LessPowerControlDedicated-v1430 ::= SEQUENCE { + p0-UE-PeriodicSRS-r14 INTEGER (-8..7) OPTIONAL, -- Need OR + p0-UE-AperiodicSRS-r14 INTEGER (-8..7) OPTIONAL, -- Need OR + accumulationEnabled-r14 BOOLEAN +} + +UplinkPowerControlDedicatedSCell-r10 ::= SEQUENCE { + p0-UE-PUSCH-r10 INTEGER (-8..7), + deltaMCS-Enabled-r10 ENUMERATED {en0, en1}, + accumulationEnabled-r10 BOOLEAN, + pSRS-Offset-r10 INTEGER (0..15), + pSRS-OffsetAp-r10 INTEGER (0..15) OPTIONAL, -- Need OR + filterCoefficient-r10 FilterCoefficient DEFAULT fc4, + pathlossReferenceLinking-r10 ENUMERATED {pCell, sCell} +} + +UplinkPowerControlDedicatedSCell-v1310 ::= SEQUENCE { +--Release 8 + p0-UE-PUCCH INTEGER (-8..7), +--Release 10 + deltaTxD-OffsetListPUCCH-r10 DeltaTxD-OffsetListPUCCH-r10 OPTIONAL -- Need OR +} + +Alpha-r12 ::= ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1} + +DeltaFList-PUCCH ::= SEQUENCE { + deltaF-PUCCH-Format1 ENUMERATED {deltaF-2, deltaF0, deltaF2}, + deltaF-PUCCH-Format1b ENUMERATED {deltaF1, deltaF3, deltaF5}, + deltaF-PUCCH-Format2 ENUMERATED {deltaF-2, deltaF0, deltaF1, deltaF2}, + deltaF-PUCCH-Format2a ENUMERATED {deltaF-2, deltaF0, deltaF2}, + deltaF-PUCCH-Format2b ENUMERATED {deltaF-2, deltaF0, deltaF2} +} + +DeltaTxD-OffsetListPUCCH-r10 ::= SEQUENCE { + deltaTxD-OffsetPUCCH-Format1-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format1a1b-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format22a2b-r10 ENUMERATED {dB0, dB-2}, + deltaTxD-OffsetPUCCH-Format3-r10 ENUMERATED {dB0, dB-2}, + ... + +} + +DeltaTxD-OffsetListPUCCH-v1130 ::= SEQUENCE { + deltaTxD-OffsetPUCCH-Format1bCS-r11 ENUMERATED {dB0, dB-1} +} + + +WLAN-Id-List-r13 ::= SEQUENCE (SIZE (1..maxWLAN-Id-r13)) OF WLAN-Identifiers-r12 + + +WLAN-MobilityConfig-r13 ::= SEQUENCE { + wlan-ToReleaseList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + wlan-ToAddList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + associationTimer-r13 ENUMERATED {s10, s30, + s60, s120, s240} OPTIONAL, -- Need OR + successReportRequested-r13 ENUMERATED {true} OPTIONAL, -- Need OR + ..., + [[ wlan-SuspendConfig-r14 WLAN-SuspendConfig-r14 OPTIONAL -- Need ON + ]] +} + + +NextHopChainingCount ::= INTEGER (0..7) + + +SecurityAlgorithmConfig ::= SEQUENCE { + cipheringAlgorithm CipheringAlgorithm-r12, + integrityProtAlgorithm ENUMERATED { + eia0-v920, eia1, eia2, eia3-v1130, spare4, spare3, + spare2, spare1, ...} +} + +CipheringAlgorithm-r12 ::= ENUMERATED { + eea0, eea1, eea2, eea3-v1130, spare4, spare3, + spare2, spare1, ...} + + +ShortMAC-I ::= BIT STRING (SIZE (16)) + + +AdditionalSpectrumEmission ::= INTEGER (1..32) + +AdditionalSpectrumEmission-v10l0 ::= INTEGER (33..288) + + +ARFCN-ValueCDMA2000 ::= INTEGER (0..2047) + + +ARFCN-ValueEUTRA ::= INTEGER (0..maxEARFCN) + +ARFCN-ValueEUTRA-v9e0 ::= INTEGER (maxEARFCN-Plus1..maxEARFCN2) + +ARFCN-ValueEUTRA-r9 ::= INTEGER (0..maxEARFCN2) + + +ARFCN-ValueGERAN ::= INTEGER (0..1023) + + +ARFCN-ValueNR-r15 ::= INTEGER (0.. 3279165) + + +ARFCN-ValueUTRA ::= INTEGER (0..16383) + + +BandclassCDMA2000 ::= ENUMERATED { + bc0, bc1, bc2, bc3, bc4, bc5, bc6, bc7, bc8, + bc9, bc10, bc11, bc12, bc13, bc14, bc15, bc16, + bc17, bc18-v9a0, bc19-v9a0, bc20-v9a0, bc21-v9a0, + spare10, spare9, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1, ...} + + +BandIndicatorGERAN ::= ENUMERATED {dcs1800, pcs1900} + + +CarrierFreqCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + arfcn ARFCN-ValueCDMA2000 +} + + +CarrierFreqGERAN ::= SEQUENCE { + arfcn ARFCN-ValueGERAN, + bandIndicator BandIndicatorGERAN +} + + +CarrierFreqsGERAN ::= SEQUENCE { + startingARFCN ARFCN-ValueGERAN, + bandIndicator BandIndicatorGERAN, + followingARFCNs CHOICE { + explicitListOfARFCNs ExplicitListOfARFCNs, + equallySpacedARFCNs SEQUENCE { + arfcn-Spacing INTEGER (1..8), + numberOfFollowingARFCNs INTEGER (0..31) + }, + variableBitMapOfARFCNs OCTET STRING (SIZE (1..16)) + } +} + +ExplicitListOfARFCNs ::= SEQUENCE (SIZE (0..31)) OF ARFCN-ValueGERAN + + +CarrierFreqListMBMS-r11 ::= SEQUENCE (SIZE (1..maxFreqMBMS-r11)) OF ARFCN-ValueEUTRA-r9 + + +CDMA2000-Type ::= ENUMERATED {type1XRTT, typeHRPD} + + +CellIdentity ::= BIT STRING (SIZE (28)) + + +CellIndexList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellIndex + +CellIndex ::= INTEGER (1..maxCellMeas) + + +CellReselectionPriority ::= INTEGER (0..7) + + +CellSelectionInfoCE-r13 ::= SEQUENCE { + q-RxLevMinCE-r13 Q-RxLevMin, + q-QualMinRSRQ-CE-r13 Q-QualMin-r9 OPTIONAL -- Need OR +} + + +CellSelectionInfoCE1-r13 ::= SEQUENCE { + q-RxLevMinCE1-r13 Q-RxLevMin, + q-QualMinRSRQ-CE1-r13 Q-QualMin-r9 OPTIONAL -- Need OR +} + +CellSelectionInfoCE1-v1360 ::= SEQUENCE { + delta-RxLevMinCE1-v1360 INTEGER (-8..-1) +} + +CellReselectionSubPriority-r13 ::= ENUMERATED {oDot2, oDot4, oDot6, oDot8} + + +CSFB-RegistrationParam1XRTT ::= SEQUENCE { + sid BIT STRING (SIZE (15)), + nid BIT STRING (SIZE (16)), + multipleSID BOOLEAN, + multipleNID BOOLEAN, + homeReg BOOLEAN, + foreignSIDReg BOOLEAN, + foreignNIDReg BOOLEAN, + parameterReg BOOLEAN, + powerUpReg BOOLEAN, + registrationPeriod BIT STRING (SIZE (7)), + registrationZone BIT STRING (SIZE (12)), + totalZone BIT STRING (SIZE (3)), + zoneTimer BIT STRING (SIZE (3)) +} + +CSFB-RegistrationParam1XRTT-v920 ::= SEQUENCE { + powerDownReg-r9 ENUMERATED {true} +} + + +CellGlobalIdEUTRA ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellIdentity CellIdentity +} + + +CellGlobalIdUTRA ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellIdentity BIT STRING (SIZE (28)) +} + + +CellGlobalIdGERAN ::= SEQUENCE { + plmn-Identity PLMN-Identity, + locationAreaCode BIT STRING (SIZE (16)), + cellIdentity BIT STRING (SIZE (16)) +} + + +CellGlobalIdCDMA2000 ::= CHOICE { + cellGlobalId1XRTT BIT STRING (SIZE (47)), + cellGlobalIdHRPD BIT STRING (SIZE (128)) +} + + +CellSelectionInfoNFreq-r13 ::= SEQUENCE { + -- Cell selection information as in SIB1 + q-RxLevMin-r13 Q-RxLevMin, + q-RxLevMinOffset INTEGER (1..8) OPTIONAL, -- Need OP + -- Cell re-selection information as in SIB3 + q-Hyst-r13 ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + q-RxLevMinReselection-r13 Q-RxLevMin, + t-ReselectionEUTRA-r13 T-Reselection +} + + +CSG-Identity ::= BIT STRING (SIZE (27)) + + +FreqBandIndicator ::= INTEGER (1..maxFBI) + +FreqBandIndicator-v9e0 ::= INTEGER (maxFBI-Plus1..maxFBI2) + +FreqBandIndicator-r11 ::= INTEGER (1..maxFBI2) + + +MobilityControlInfo ::= SEQUENCE { + targetPhysCellId PhysCellId, + carrierFreq CarrierFreqEUTRA OPTIONAL, -- Cond HO-toEUTRA2 + carrierBandwidth CarrierBandwidthEUTRA OPTIONAL, -- Cond HO-toEUTRA + additionalSpectrumEmission AdditionalSpectrumEmission OPTIONAL, -- Cond HO-toEUTRA + t304 ENUMERATED { + ms50, ms100, ms150, ms200, ms500, ms1000, + ms2000, ms10000-v1310}, + newUE-Identity C-RNTI, + radioResourceConfigCommon RadioResourceConfigCommon, + rach-ConfigDedicated RACH-ConfigDedicated OPTIONAL, -- Need OP + ..., + [[ carrierFreq-v9e0 CarrierFreqEUTRA-v9e0 OPTIONAL -- Need ON + ]], + [[ drb-ContinueROHC-r11 ENUMERATED {true} OPTIONAL -- Cond HO + ]], + [[ mobilityControlInfoV2X-r14 MobilityControlInfoV2X-r14 OPTIONAL, -- Need ON + handoverWithoutWT-Change-r14 ENUMERATED {keepLWA-Config, sendEndMarker} OPTIONAL, -- Cond HO + makeBeforeBreak-r14 ENUMERATED {true} OPTIONAL, -- Need OR + rach-Skip-r14 RACH-Skip-r14 OPTIONAL, -- Need OR + sameSFN-Indication-r14 ENUMERATED {true} OPTIONAL -- Cond HO-SFNsynced + ]], + [[ + mib-RepetitionStatus-r14 BOOLEAN OPTIONAL, -- Need OR + schedulingInfoSIB1-BR-r14 INTEGER (0..31) OPTIONAL -- Cond HO-SFNsynced + ]] +} + +MobilityControlInfo-v10l0 ::= SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 OPTIONAL -- Need ON +} + +MobilityControlInfoSCG-r12 ::= SEQUENCE { + t307-r12 ENUMERATED { + ms50, ms100, ms150, ms200, ms500, ms1000, + ms2000, spare1}, + ue-IdentitySCG-r12 C-RNTI OPTIONAL, -- Cond SCGEst, + rach-ConfigDedicated-r12 RACH-ConfigDedicated OPTIONAL, -- Need OP + cipheringAlgorithmSCG-r12 CipheringAlgorithm-r12 OPTIONAL, -- Need ON + ..., + [[ makeBeforeBreakSCG-r14 ENUMERATED {true} OPTIONAL, -- Need OR + rach-SkipSCG-r14 RACH-Skip-r14 OPTIONAL -- Need OR + ]] +} + +MobilityControlInfoV2X-r14 ::= SEQUENCE { + v2x-CommTxPoolExceptional-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-CommRxPool-r14 SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommSyncConfig-r14 SL-SyncConfigListV2X-r14 OPTIONAL, -- Need OR + cbr-MobilityTxConfigList-r14 SL-CBR-CommonTxConfigList-r14 OPTIONAL -- Need OR +} + +CarrierBandwidthEUTRA ::= SEQUENCE { + dl-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100, spare10, + spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1}, + ul-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100, spare10, + spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1} OPTIONAL -- Need OP +} + +CarrierFreqEUTRA ::= SEQUENCE { + dl-CarrierFreq ARFCN-ValueEUTRA, + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL -- Cond FDD +} + +CarrierFreqEUTRA-v9e0 ::= SEQUENCE { + dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9, + ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9 OPTIONAL -- Cond FDD +} + +RACH-Skip-r14 ::= SEQUENCE { + targetTA-r14 CHOICE { + ta0-r14 NULL, + mcg-PTAG-r14 NULL, + scg-PTAG-r14 NULL, + mcg-STAG-r14 STAG-Id-r11, + scg-STAG-r14 STAG-Id-r11 + }, + ul-ConfigInfo-r14 SEQUENCE { + numberOfConfUL-Processes-r14 INTEGER (1..8), + ul-SchedInterval-r14 ENUMERATED {sf2, sf5, sf10}, + ul-StartSubframe-r14 INTEGER (0..9), + ul-Grant-r14 BIT STRING (SIZE (16)) + } OPTIONAL -- Need OR +} + + +MobilityParametersCDMA2000 ::= OCTET STRING + + +MobilityStateParameters ::= SEQUENCE { + t-Evaluation ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + t-HystNormal ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + n-CellChangeMedium INTEGER (1..16), + n-CellChangeHigh INTEGER (1..16) +} + + +MultiBandInfoList ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator + +MultiBandInfoList-v9e0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF MultiBandInfo-v9e0 + +MultiBandInfoList-v10j0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF NS-PmaxList-r10 + +MultiBandInfoList-v10l0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF NS-PmaxList-v10l0 + +MultiBandInfoList-r11 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-r11 + +MultiBandInfo-v9e0 ::= SEQUENCE { + freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL -- Need OP +} + + +NS-PmaxList-r10 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-r10 + +NS-PmaxList-v10l0 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-v10l0 + +NS-PmaxValue-r10 ::= SEQUENCE { + additionalPmax-r10 P-Max OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission +} + +NS-PmaxValue-v10l0 ::= SEQUENCE { + additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 OPTIONAL -- Need OP +} + + +PhysCellId ::= INTEGER (0..503) + + +PhysCellIdRange ::= SEQUENCE { + start PhysCellId, + range ENUMERATED { + n4, n8, n12, n16, n24, n32, n48, n64, n84, + n96, n128, n168, n252, n504, spare2, + spare1} OPTIONAL -- Need OP +} + + +PhysCellIdRangeUTRA-FDDList-r9::= SEQUENCE (SIZE (1..maxPhysCellIdRange-r9)) OF PhysCellIdRangeUTRA-FDD-r9 + +PhysCellIdRangeUTRA-FDD-r9 ::= SEQUENCE { + start-r9 PhysCellIdUTRA-FDD, + range-r9 INTEGER (2..512) OPTIONAL -- Need OP +} + + +PhysCellIdCDMA2000 ::= INTEGER (0..maxPNOffset) + + +PhysCellIdGERAN ::= SEQUENCE { + networkColourCode BIT STRING (SIZE (3)), + baseStationColourCode BIT STRING (SIZE (3)) +} + + +PhysCellIdNR-r15 ::= INTEGER (0.. 1007) + + +PhysCellIdUTRA-FDD ::= INTEGER (0..511) + + +PhysCellIdUTRA-TDD ::= INTEGER (0..127) + + +PLMN-Identity ::= SEQUENCE { + mcc MCC OPTIONAL, -- Cond MCC + mnc MNC +} + +MCC ::= SEQUENCE (SIZE (3)) OF + MCC-MNC-Digit + +MNC ::= SEQUENCE (SIZE (2..3)) OF + MCC-MNC-Digit + +MCC-MNC-Digit ::= INTEGER (0..9) + + + +PLMN-IdentityList3-r11 ::= SEQUENCE (SIZE (1..16)) OF PLMN-Identity + + +PreRegistrationInfoHRPD ::= SEQUENCE { + preRegistrationAllowed BOOLEAN, + preRegistrationZoneId PreRegistrationZoneIdHRPD OPTIONAL, -- cond PreRegAllowed + secondaryPreRegistrationZoneIdList SecondaryPreRegistrationZoneIdListHRPD OPTIONAL -- Need OR +} + +SecondaryPreRegistrationZoneIdListHRPD ::= SEQUENCE (SIZE (1..2)) OF PreRegistrationZoneIdHRPD + +PreRegistrationZoneIdHRPD ::= INTEGER (0..255) + + +Q-QualMin-r9 ::= INTEGER (-34..-3) + + +Q-RxLevMin ::= INTEGER (-70..-22) + + +Q-OffsetRange ::= ENUMERATED { + dB-24, dB-22, dB-20, dB-18, dB-16, dB-14, + dB-12, dB-10, dB-8, dB-6, dB-5, dB-4, dB-3, + dB-2, dB-1, dB0, dB1, dB2, dB3, dB4, dB5, + dB6, dB8, dB10, dB12, dB14, dB16, dB18, + dB20, dB22, dB24} + + +Q-OffsetRangeInterRAT ::= INTEGER (-15..15) + + +ReselectionThreshold ::= INTEGER (0..31) + + +ReselectionThresholdQ-r9 ::= INTEGER (0..31) + + +SCellIndex-r10 ::= INTEGER (1..7) +SCellIndex-r13 ::= INTEGER (1..31) + + +ServCellIndex-r10 ::= INTEGER (0..7) +ServCellIndex-r13 ::= INTEGER (0..31) + + +SpeedStateScaleFactors ::= SEQUENCE { + sf-Medium ENUMERATED {oDot25, oDot5, oDot75, lDot0}, + sf-High ENUMERATED {oDot25, oDot5, oDot75, lDot0} +} + +SystemInfoListGERAN ::= SEQUENCE (SIZE (1..maxGERAN-SI)) OF + OCTET STRING (SIZE (1..23)) + + +SystemTimeInfoCDMA2000 ::= SEQUENCE { + cdma-EUTRA-Synchronisation BOOLEAN, + cdma-SystemTime CHOICE { + synchronousSystemTime BIT STRING (SIZE (39)), + asynchronousSystemTime BIT STRING (SIZE (49)) + } +} + + +ThresholdNR-r15 ::= CHOICE{ + nr-RSRP-r15 RSRP-RangeNR-r15, + nr-RSRQ-r15 RSRQ-RangeNR-r15, + nr-SINR-r15 RS-SINR-RangeNR-r15 +} + +ThresholdListNR-r15 ::= SEQUENCE{ + nr-RSRP-r15 RSRP-RangeNR-r15 OPTIONAL, + nr-RSRQ-r15 RSRQ-RangeNR-r15 OPTIONAL, + nr-SINR-r15 RS-SINR-RangeNR-r15 OPTIONAL +} + + +TrackingAreaCode ::= BIT STRING (SIZE (16)) + + +T-Reselection ::= INTEGER (0..7) + + +T-ReselectionEUTRA-CE-r13 ::= INTEGER (0..15) + + +AllowedMeasBandwidth ::= ENUMERATED {mbw6, mbw15, mbw25, mbw50, mbw75, mbw100} + + +CSI-RSRP-Range-r12 ::= INTEGER(0..97) + + +Hysteresis ::= INTEGER (0..30) + + +LocationInfo-r10 ::= SEQUENCE { + locationCoordinates-r10 CHOICE { + ellipsoid-Point-r10 OCTET STRING, + ellipsoidPointWithAltitude-r10 OCTET STRING, + ..., + ellipsoidPointWithUncertaintyCircle-r11 OCTET STRING, + ellipsoidPointWithUncertaintyEllipse-r11 OCTET STRING, + ellipsoidPointWithAltitudeAndUncertaintyEllipsoid-r11 OCTET STRING, + ellipsoidArc-r11 OCTET STRING, + polygon-r11 OCTET STRING + }, + horizontalVelocity-r10 OCTET STRING OPTIONAL, + gnss-TOD-msec-r10 OCTET STRING OPTIONAL, + ... +} + + +MBSFN-RSRQ-Range-r12 ::= INTEGER(0..31) + +MeasConfig ::= SEQUENCE { + -- Measurement objects + measObjectToRemoveList MeasObjectToRemoveList OPTIONAL, -- Need ON + measObjectToAddModList MeasObjectToAddModList OPTIONAL, -- Need ON + -- Reporting configurations + reportConfigToRemoveList ReportConfigToRemoveList OPTIONAL, -- Need ON + reportConfigToAddModList ReportConfigToAddModList OPTIONAL, -- Need ON + -- Measurement identities + measIdToRemoveList MeasIdToRemoveList OPTIONAL, -- Need ON + measIdToAddModList MeasIdToAddModList OPTIONAL, -- Need ON + -- Other parameters + quantityConfig QuantityConfig OPTIONAL, -- Need ON + measGapConfig MeasGapConfig OPTIONAL, -- Need ON + s-Measure RSRP-Range OPTIONAL, -- Need ON + preRegistrationInfoHRPD PreRegistrationInfoHRPD OPTIONAL, -- Need OP + speedStatePars CHOICE { + release NULL, + setup SEQUENCE { + mobilityStateParameters MobilityStateParameters, + timeToTrigger-SF SpeedStateScaleFactors + } + } OPTIONAL, -- Need ON + ..., + [[ measObjectToAddModList-v9e0 MeasObjectToAddModList-v9e0 OPTIONAL -- Need ON + ]], + [[ allowInterruptions-r11 BOOLEAN OPTIONAL -- Need ON + ]], + [[ measScaleFactor-r12 CHOICE { + release NULL, + setup MeasScaleFactor-r12 + } OPTIONAL, -- Need ON + measIdToRemoveListExt-r12 MeasIdToRemoveListExt-r12 OPTIONAL, -- Need ON + measIdToAddModListExt-r12 MeasIdToAddModListExt-r12 OPTIONAL, -- Need ON + measRSRQ-OnAllSymbols-r12 BOOLEAN OPTIONAL -- Need ON + ]], + [[ + measObjectToRemoveListExt-r13 MeasObjectToRemoveListExt-r13 OPTIONAL, -- Need ON + measObjectToAddModListExt-r13 MeasObjectToAddModListExt-r13 OPTIONAL, -- Need ON + measIdToAddModList-v1310 MeasIdToAddModList-v1310 OPTIONAL, -- Need ON + measIdToAddModListExt-v1310 MeasIdToAddModListExt-v1310 OPTIONAL -- Need ON + ]], + [[ measGapConfigPerCC-List-r14 MeasGapConfigPerCC-List-r14 OPTIONAL, -- Need ON + measGapSharingConfig-r14 MeasGapSharingConfig-r14 OPTIONAL -- Need ON + ]], + [[ fr1-Gap-r15 BOOLEAN OPTIONAL, -- Need ON + mgta-r15 BOOLEAN OPTIONAL -- Need ON + ]] +} + +MeasIdToRemoveList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId + +MeasIdToRemoveListExt-r12 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId-v1250 + +MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId + +MeasObjectToRemoveListExt-r13 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId-v1310 + +ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigId + + +MeasDS-Config-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + dmtc-PeriodOffset-r12 CHOICE { + ms40-r12 INTEGER(0..39), + ms80-r12 INTEGER(0..79), + ms160-r12 INTEGER(0..159), + ... + }, + ds-OccasionDuration-r12 CHOICE { + durationFDD-r12 INTEGER(1..maxDS-Duration-r12), + durationTDD-r12 INTEGER(2..maxDS-Duration-r12) + }, + measCSI-RS-ToRemoveList-r12 MeasCSI-RS-ToRemoveList-r12 OPTIONAL, -- Need ON + measCSI-RS-ToAddModList-r12 MeasCSI-RS-ToAddModList-r12 OPTIONAL, -- Need ON + ... + } +} + +MeasCSI-RS-ToRemoveList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Id-r12 + +MeasCSI-RS-ToAddModList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Config-r12 + +MeasCSI-RS-Id-r12 ::= INTEGER (1..maxCSI-RS-Meas-r12) + +MeasCSI-RS-Config-r12 ::= SEQUENCE { + measCSI-RS-Id-r12 MeasCSI-RS-Id-r12, + physCellId-r12 INTEGER (0..503), + scramblingIdentity-r12 INTEGER (0..503), + resourceConfig-r12 INTEGER (0..31), + subframeOffset-r12 INTEGER (0..4), + csi-RS-IndividualOffset-r12 Q-OffsetRange, + ... +} + + +MeasGapConfig ::= CHOICE { + release NULL, + setup SEQUENCE { + gapOffset CHOICE { + gp0 INTEGER (0..39), + gp1 INTEGER (0..79), + + ..., + gp2-r14 INTEGER (0..39), + gp3-r14 INTEGER (0..79), + gp-ncsg0-r14 INTEGER (0..39), + gp-ncsg1-r14 INTEGER (0..79), + gp-ncsg2-r14 INTEGER (0..39), + gp-ncsg3-r14 INTEGER (0..79), + gp-nonUniform1-r14 INTEGER (0..1279), + gp-nonUniform2-r14 INTEGER (0..2559), + gp-nonUniform3-r14 INTEGER (0..5119), + gp-nonUniform4-r14 INTEGER (0..10239), + gp4-r15 INTEGER (0..19), + gp5-r15 INTEGER (0..159), + gp6-r15 INTEGER (0..19), + gp7-r15 INTEGER (0..39), + gp8-r15 INTEGER (0..79), + gp9-r15 INTEGER (0..159), + gp10-r15 INTEGER (0..19), + gp11-r15 INTEGER (0..159) + } + } +} + + + +MeasGapConfigPerCC-List-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + measGapConfigToRemoveList-r14 MeasGapConfigToRemoveList-r14 OPTIONAL, -- Need ON + measGapConfigToAddModList-r14 MeasGapConfigToAddModList-r14 OPTIONAL -- Need ON + } +} + +MeasGapConfigToRemoveList-r14 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF ServCellIndex-r13 + +MeasGapConfigToAddModList-r14 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasGapConfigPerCC-r14 + +MeasGapConfigPerCC-r14 ::= SEQUENCE { + servCellId-r14 ServCellIndex-r13, + measGapConfigCC-r14 MeasGapConfig +} + + +MeasGapSharingConfig-r14 ::= CHOICE { + release NULL, + setup SEQUENCE { + measGapSharingScheme-r14 ENUMERATED {scheme00, scheme01, scheme10, scheme11} + } +} + + +MeasId ::= INTEGER (1..maxMeasId) + +MeasId-v1250 ::= INTEGER (maxMeasId-Plus1..maxMeasId-r12) + + +MeasIdToAddModList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod + +MeasIdToAddModList-v1310 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod-v1310 + +MeasIdToAddModListExt-r12 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddModExt-r12 + +MeasIdToAddModListExt-v1310 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod-v1310 + +MeasIdToAddMod ::= SEQUENCE { + measId MeasId, + measObjectId MeasObjectId, + reportConfigId ReportConfigId +} + +MeasIdToAddModExt-r12 ::= SEQUENCE { + measId-v1250 MeasId-v1250, + measObjectId-r12 MeasObjectId, + reportConfigId-r12 ReportConfigId +} + +MeasIdToAddMod-v1310 ::= SEQUENCE { + measObjectId-v1310 MeasObjectId-v1310 OPTIONAL +} + + +MeasObjectCDMA2000 ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + carrierFreq CarrierFreqCDMA2000, + searchWindowSize INTEGER (0..15) OPTIONAL, -- Need ON + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CellsToAddModListCDMA2000 OPTIONAL, -- Need ON + cellForWhichToReportCGI PhysCellIdCDMA2000 OPTIONAL, -- Need ON + ... +} + +CellsToAddModListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModCDMA2000 + +CellsToAddModCDMA2000 ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdCDMA2000 +} + + +MeasObjectEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + allowedMeasBandwidth AllowedMeasBandwidth, + presenceAntennaPort1 PresenceAntennaPort1, + neighCellConfig NeighCellConfig, + offsetFreq Q-OffsetRange DEFAULT dB0, + -- Cell list + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CellsToAddModList OPTIONAL, -- Need ON + -- Black list + blackCellsToRemoveList CellIndexList OPTIONAL, -- Need ON + blackCellsToAddModList BlackCellsToAddModList OPTIONAL, -- Need ON + cellForWhichToReportCGI PhysCellId OPTIONAL, -- Need ON + ..., + [[measCycleSCell-r10 MeasCycleSCell-r10 OPTIONAL, -- Need ON + measSubframePatternConfigNeigh-r10 MeasSubframePatternConfigNeigh-r10 OPTIONAL -- Need ON + ]], + [[widebandRSRQ-Meas-r11 BOOLEAN OPTIONAL -- Cond WB-RSRQ + ]], + [[ altTTT-CellsToRemoveList-r12 CellIndexList OPTIONAL, -- Need ON + altTTT-CellsToAddModList-r12 AltTTT-CellsToAddModList-r12 OPTIONAL, -- Need ON + t312-r12 CHOICE { + release NULL, + setup ENUMERATED {ms0, ms50, ms100, ms200, + ms300, ms400, ms500, ms1000} + } OPTIONAL, -- Need ON + reducedMeasPerformance-r12 BOOLEAN OPTIONAL, -- Need ON + measDS-Config-r12 MeasDS-Config-r12 OPTIONAL -- Need ON + ]], + [[ + whiteCellsToRemoveList-r13 CellIndexList OPTIONAL, -- Need ON + whiteCellsToAddModList-r13 WhiteCellsToAddModList-r13 OPTIONAL, -- Need ON + rmtc-Config-r13 RMTC-Config-r13 OPTIONAL, -- Need ON + carrierFreq-r13 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Need ON + ]], + [[ + tx-ResourcePoolToRemoveList-r14 Tx-ResourcePoolMeasList-r14 OPTIONAL, -- Need ON + tx-ResourcePoolToAddList-r14 Tx-ResourcePoolMeasList-r14 OPTIONAL, -- Need ON + fembms-MixedCarrier-r14 BOOLEAN OPTIONAL -- Need ON + ]] +} + +MeasObjectEUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +CellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddMod + +CellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellId, + cellIndividualOffset Q-OffsetRange +} + +BlackCellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF BlackCellsToAddMod + +BlackCellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellIdRange PhysCellIdRange +} + +MeasCycleSCell-r10 ::= ENUMERATED {sf160, sf256, sf320, sf512, + sf640, sf1024, sf1280, spare1} + +MeasSubframePatternConfigNeigh-r10 ::= CHOICE { + release NULL, + setup SEQUENCE { + measSubframePatternNeigh-r10 MeasSubframePattern-r10, + measSubframeCellList-r10 MeasSubframeCellList-r10 OPTIONAL -- Cond always + } +} + +MeasSubframeCellList-r10 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF PhysCellIdRange + +AltTTT-CellsToAddModList-r12 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF AltTTT-CellsToAddMod-r12 + +AltTTT-CellsToAddMod-r12 ::= SEQUENCE { + cellIndex-r12 INTEGER (1..maxCellMeas), + physCellIdRange-r12 PhysCellIdRange +} + +WhiteCellsToAddModList-r13 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF WhiteCellsToAddMod-r13 + +WhiteCellsToAddMod-r13 ::= SEQUENCE { + cellIndex-r13 INTEGER (1..maxCellMeas), + physCellIdRange-r13 PhysCellIdRange +} + +RMTC-Config-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + rmtc-Period-r13 ENUMERATED {ms40, ms80, ms160, ms320, ms640}, + rmtc-SubframeOffset-r13 INTEGER(0..639) OPTIONAL, -- Need ON + measDuration-r13 ENUMERATED {sym1, sym14, sym28, sym42, sym70}, + ... + } +} + +Tx-ResourcePoolMeasList-r14 ::= SEQUENCE (SIZE (1..maxSL-PoolToMeasure-r14)) OF SL-V2X-TxPoolReportIdentity-r14 + + +MeasObjectGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + ncc-Permitted BIT STRING(SIZE (8)) DEFAULT '11111111'B, + cellForWhichToReportCGI PhysCellIdGERAN OPTIONAL, -- Need ON + ... +} + + +MeasObjectId ::= INTEGER (1..maxObjectId) + +MeasObjectId-v1310 ::= INTEGER (maxObjectId-Plus1-r13..maxObjectId-r13) + +MeasObjectId-r13 ::= INTEGER (1..maxObjectId-r13) + + +MeasObjectNR-r15 ::= SEQUENCE { + carrierFreq-r15 ARFCN-ValueNR-r15, + rs-ConfigSSB-r15 RS-ConfigSSB-NR-r15, + threshRS-Index-r15 ThresholdListNR-r15 OPTIONAL, -- Need OR + maxRS-IndexCellQual-r15 INTEGER (1.. maxRS-IndexCellQual-r15) OPTIONAL, -- Need OR + offsetFreq-r15 Q-OffsetRangeInterRAT DEFAULT 0, + blackCellsToRemoveList-r15 CellIndexList OPTIONAL, -- Need ON + blackCellsToAddModList-r15 CellsToAddModListNR-r15 OPTIONAL, -- Need ON + quantityConfigSet-r15 INTEGER (1.. maxQuantSetsNR-r15), + cellsForWhichToReportSFTD-r15 SEQUENCE (SIZE (1..maxCellSFTD)) OF PhysCellIdNR-r15 OPTIONAL, -- Need OR + ... +} + +RS-ConfigSSB-NR-r15 ::= SEQUENCE { + measTimingConfig-r15 MTC-SSB-NR-r15, + + subcarrierSpacingSSB-r15 ENUMERATED {kHz15, kHz30, kHz120, kHz240}, + ... +} + +CellsToAddModListNR-r15 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModNR-r15 + +CellsToAddModNR-r15 ::= SEQUENCE { + cellIndex-r15 INTEGER (1..maxCellMeas), + physCellId-r15 PhysCellIdNR-r15 +} + +MTC-SSB-NR-r15 ::= SEQUENCE { + periodicityAndOffset-r15 CHOICE { + sf5-r15 INTEGER (0..4), + sf10-r15 INTEGER (0..9), + sf20-r15 INTEGER (0..19), + sf40-r15 INTEGER (0..39), + sf80-r15 INTEGER (0..79), + sf160-r15 INTEGER (0..159) + }, + ssb-Duration-r15 ENUMERATED {sf1, sf2, sf3, sf4, sf5 } +} + + +MeasObjectToAddModList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod + +MeasObjectToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddModExt-r13 + +MeasObjectToAddModList-v9e0 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod-v9e0 + +MeasObjectToAddMod ::= SEQUENCE { + measObjectId MeasObjectId, + measObject CHOICE { + measObjectEUTRA MeasObjectEUTRA, + measObjectUTRA MeasObjectUTRA, + measObjectGERAN MeasObjectGERAN, + measObjectCDMA2000 MeasObjectCDMA2000, + ..., + measObjectWLAN-r13 MeasObjectWLAN-r13, + measObjectNR-r15 MeasObjectNR-r15 + } +} + +MeasObjectToAddModExt-r13 ::= SEQUENCE { + measObjectId-r13 MeasObjectId-v1310, + measObject-r13 CHOICE { + measObjectEUTRA-r13 MeasObjectEUTRA, + measObjectUTRA-r13 MeasObjectUTRA, + measObjectGERAN-r13 MeasObjectGERAN, + measObjectCDMA2000-r13 MeasObjectCDMA2000, + ..., + measObjectWLAN-v1320 MeasObjectWLAN-r13, + measObjectNR-r15 MeasObjectNR-r15 + } +} + +MeasObjectToAddMod-v9e0 ::= SEQUENCE { + measObjectEUTRA-v9e0 MeasObjectEUTRA-v9e0 OPTIONAL -- Cond eutra +} + + +MeasObjectUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CHOICE { + cellsToAddModListUTRA-FDD CellsToAddModListUTRA-FDD, + cellsToAddModListUTRA-TDD CellsToAddModListUTRA-TDD + } OPTIONAL, -- Need ON + cellForWhichToReportCGI CHOICE { + utra-FDD PhysCellIdUTRA-FDD, + utra-TDD PhysCellIdUTRA-TDD + } OPTIONAL, -- Need ON + ..., + [[ csg-allowedReportingCells-v930 CSG-AllowedReportingCells-r9 OPTIONAL -- Need ON + ]], + [[ reducedMeasPerformance-r12 BOOLEAN OPTIONAL -- Need ON + ]] +} + +CellsToAddModListUTRA-FDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-FDD + +CellsToAddModUTRA-FDD ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdUTRA-FDD +} + +CellsToAddModListUTRA-TDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-TDD + +CellsToAddModUTRA-TDD ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdUTRA-TDD +} + +CSG-AllowedReportingCells-r9 ::= SEQUENCE { + physCellIdRangeUTRA-FDDList-r9 PhysCellIdRangeUTRA-FDDList-r9 OPTIONAL -- Need OR +} + +MeasObjectWLAN-r13 ::= SEQUENCE { + carrierFreq-r13 CHOICE { + bandIndicatorListWLAN-r13 SEQUENCE (SIZE (1..maxWLAN-Bands-r13)) OF WLAN-BandIndicator-r13, + carrierInfoListWLAN-r13 SEQUENCE (SIZE (1..maxWLAN-CarrierInfo-r13)) OF WLAN-CarrierInfo-r13 + } OPTIONAL, -- Need ON + wlan-ToAddModList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + wlan-ToRemoveList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON + ... +} + +WLAN-BandIndicator-r13 ::= ENUMERATED {band2dot4, band5, band60-v1430, spare5, spare4, spare3, spare2, spare1, ...} + + +MeasResults ::= SEQUENCE { + measId MeasId, + measResultPCell SEQUENCE { + rsrpResult RSRP-Range, + rsrqResult RSRQ-Range + }, + measResultNeighCells CHOICE { + measResultListEUTRA MeasResultListEUTRA, + measResultListUTRA MeasResultListUTRA, + measResultListGERAN MeasResultListGERAN, + measResultsCDMA2000 MeasResultsCDMA2000, + ..., + measResultNeighCellListNR-r15 MeasResultCellListNR-r15 + } OPTIONAL, + ..., + [[ measResultForECID-r9 MeasResultForECID-r9 OPTIONAL + ]], + [[ locationInfo-r10 LocationInfo-r10 OPTIONAL, + measResultServFreqList-r10 MeasResultServFreqList-r10 OPTIONAL + ]], + [[ measId-v1250 MeasId-v1250 OPTIONAL, + measResultPCell-v1250 RSRQ-Range-v1250 OPTIONAL, + measResultCSI-RS-List-r12 MeasResultCSI-RS-List-r12 OPTIONAL + ]], + [[ measResultForRSSI-r13 MeasResultForRSSI-r13 OPTIONAL, + measResultServFreqListExt-r13 MeasResultServFreqListExt-r13 OPTIONAL, + measResultSSTD-r13 MeasResultSSTD-r13 OPTIONAL, + measResultPCell-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL, + ul-PDCP-DelayResultList-r13 UL-PDCP-DelayResultList-r13 OPTIONAL, + measResultListWLAN-r13 MeasResultListWLAN-r13 OPTIONAL + ]], + [[ measResultPCell-v1360 RSRP-Range-v1360 OPTIONAL + ]], + [[ measResultListCBR-r14 MeasResultListCBR-r14 OPTIONAL, + measResultListWLAN-r14 MeasResultListWLAN-r14 OPTIONAL + ]], + [[ measResultServFreqListNR-r15 MeasResultServFreqListNR-r15 OPTIONAL, + measResultCellListSFTD-r15 MeasResultCellListSFTD-r15 OPTIONAL + ]] +} + +MeasResultListEUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultEUTRA + +MeasResultEUTRA ::= SEQUENCE { + physCellId PhysCellId, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdEUTRA, + trackingAreaCode TrackingAreaCode, + plmn-IdentityList PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + rsrpResult RSRP-Range OPTIONAL, + rsrqResult RSRQ-Range OPTIONAL, + ..., + [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL + ]], + [[ primaryPLMN-Suitable-r12 ENUMERATED {true} OPTIONAL, + measResult-v1250 RSRQ-Range-v1250 OPTIONAL + ]], + [[ rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL, + cgi-Info-v1310 SEQUENCE { + freqBandIndicator-r13 FreqBandIndicator-r11 OPTIONAL, + multiBandInfoList-r13 MultiBandInfoList-r11 OPTIONAL, + freqBandIndicatorPriority-r13 ENUMERATED {true} OPTIONAL + } OPTIONAL + ]], + [[ + measResult-v1360 RSRP-Range-v1360 OPTIONAL + ]] + } +} + +MeasResultServFreqListNR-r15 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultServFreqNR-r15 + +MeasResultServFreqNR-r15 ::= SEQUENCE { + carrierFreq-r15 ARFCN-ValueNR-r15, + measResultSCell-r15 MeasResultCellNR-r15 OPTIONAL, + measResultBestNeighCell-r15 MeasResultCellNR-r15 OPTIONAL, + ... +} + +MeasResultCellListNR-r15::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCellNR-r15 + +MeasResultCellNR-r15 ::= SEQUENCE { + pci-r15 PhysCellIdNR-r15, + measResultCell-r15 MeasResultNR-r15, + measResultRS-IndexList-r15 MeasResultSSB-IndexList-r15 OPTIONAL, + ... +} + +MeasResultNR-r15 ::= SEQUENCE { + rsrpResult-r15 RSRP-RangeNR-r15 OPTIONAL, + rsrqResult-r15 RSRQ-RangeNR-r15 OPTIONAL, + rs-sinr-Result-r15 RS-SINR-RangeNR-r15 OPTIONAL, + ... +} + +MeasResultSSB-IndexList-r15::= SEQUENCE (SIZE (1..maxRS-IndexReport-r15)) OF MeasResultSSB-Index-r15 + +MeasResultSSB-Index-r15 ::= SEQUENCE { + ssb-Index-r15 RS-IndexNR-r15, + measResultSSB-Index-r15 MeasResultNR-r15 OPTIONAL, + ... +} + +RS-IndexNR-r15 ::= INTEGER (0.. maxRS-Index-1-r15) + +MeasResultServFreqList-r10 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF MeasResultServFreq-r10 + +MeasResultServFreqListExt-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultServFreq-r13 + +MeasResultServFreq-r10 ::= SEQUENCE { + servFreqId-r10 ServCellIndex-r10, + measResultSCell-r10 SEQUENCE { + rsrpResultSCell-r10 RSRP-Range, + rsrqResultSCell-r10 RSRQ-Range + } OPTIONAL, + measResultBestNeighCell-r10 SEQUENCE { + physCellId-r10 PhysCellId, + rsrpResultNCell-r10 RSRP-Range, + rsrqResultNCell-r10 RSRQ-Range + } OPTIONAL, + ..., + [[ measResultSCell-v1250 RSRQ-Range-v1250 OPTIONAL, + measResultBestNeighCell-v1250 RSRQ-Range-v1250 OPTIONAL + ]], + [[ measResultSCell-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL, + measResultBestNeighCell-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL + ]] +} + +MeasResultServFreq-r13 ::= SEQUENCE { + servFreqId-r13 ServCellIndex-r13, + measResultSCell-r13 SEQUENCE { + rsrpResultSCell-r13 RSRP-Range, + rsrqResultSCell-r13 RSRQ-Range-r13, + rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL + } OPTIONAL, + measResultBestNeighCell-r13 SEQUENCE { + physCellId-r13 PhysCellId, + rsrpResultNCell-r13 RSRP-Range, + rsrqResultNCell-r13 RSRQ-Range-r13, + rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL + } OPTIONAL, + ..., + [[ measResultBestNeighCell-v1360 SEQUENCE { + rsrpResultNCell-v1360 RSRP-Range-v1360 + } OPTIONAL + ]] +} + +MeasResultCSI-RS-List-r12 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCSI-RS-r12 + +MeasResultCSI-RS-r12 ::= SEQUENCE { + measCSI-RS-Id-r12 MeasCSI-RS-Id-r12, + csi-RSRP-Result-r12 CSI-RSRP-Range-r12, + ... +} + +MeasResultListUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultUTRA + +MeasResultUTRA ::= SEQUENCE { + physCellId CHOICE { + fdd PhysCellIdUTRA-FDD, + tdd PhysCellIdUTRA-TDD + }, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdUTRA, + locationAreaCode BIT STRING (SIZE (16)) OPTIONAL, + routingAreaCode BIT STRING (SIZE (8)) OPTIONAL, + plmn-IdentityList PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + utra-RSCP INTEGER (-5..91) OPTIONAL, + utra-EcN0 INTEGER (0..49) OPTIONAL, + ..., + [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL + ]], + [[ primaryPLMN-Suitable-r12 ENUMERATED {true} OPTIONAL + ]] + } +} + +MeasResultListGERAN ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultGERAN + +MeasResultGERAN ::= SEQUENCE { + carrierFreq CarrierFreqGERAN, + physCellId PhysCellIdGERAN, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdGERAN, + routingAreaCode BIT STRING (SIZE (8)) OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + rssi INTEGER (0..63), + ... + } +} + +MeasResultsCDMA2000 ::= SEQUENCE { + preRegistrationStatusHRPD BOOLEAN, + measResultListCDMA2000 MeasResultListCDMA2000 +} + +MeasResultListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCDMA2000 + +MeasResultCDMA2000 ::= SEQUENCE { + physCellId PhysCellIdCDMA2000, + cgi-Info CellGlobalIdCDMA2000 OPTIONAL, + measResult SEQUENCE { + pilotPnPhase INTEGER (0..32767) OPTIONAL, + pilotStrength INTEGER (0..63), + ... + } +} + +MeasResultListWLAN-r13 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultWLAN-r13 + +MeasResultListWLAN-r14 ::= SEQUENCE (SIZE (1..maxWLAN-Id-Report-r14)) OF MeasResultWLAN-r13 + +MeasResultWLAN-r13 ::= SEQUENCE { + wlan-Identifiers-r13 WLAN-Identifiers-r12, + carrierInfoWLAN-r13 WLAN-CarrierInfo-r13 OPTIONAL, + bandWLAN-r13 WLAN-BandIndicator-r13 OPTIONAL, + rssiWLAN-r13 WLAN-RSSI-Range-r13, + availableAdmissionCapacityWLAN-r13 INTEGER (0..31250) OPTIONAL, + backhaulDL-BandwidthWLAN-r13 WLAN-backhaulRate-r12 OPTIONAL, + backhaulUL-BandwidthWLAN-r13 WLAN-backhaulRate-r12 OPTIONAL, + channelUtilizationWLAN-r13 INTEGER (0..255) OPTIONAL, + stationCountWLAN-r13 INTEGER (0..65535) OPTIONAL, + connectedWLAN-r13 ENUMERATED {true} OPTIONAL, + ... +} + +MeasResultListCBR-r14 ::= SEQUENCE (SIZE (1..maxCBR-Report-r14)) OF MeasResultCBR-r14 + +MeasResultCBR-r14 ::= SEQUENCE { + poolIdentity-r14 SL-V2X-TxPoolReportIdentity-r14, + cbr-PSSCH-r14 SL-CBR-r14, + cbr-PSCCH-r14 SL-CBR-r14 OPTIONAL +} + +MeasResultForECID-r9 ::= SEQUENCE { + ue-RxTxTimeDiffResult-r9 INTEGER (0..4095), + currentSFN-r9 BIT STRING (SIZE (10)) +} + +PLMN-IdentityList2 ::= SEQUENCE (SIZE (1..5)) OF PLMN-Identity + +AdditionalSI-Info-r9 ::= SEQUENCE { + csg-MemberStatus-r9 ENUMERATED {member} OPTIONAL, + csg-Identity-r9 CSG-Identity OPTIONAL +} +MeasResultForRSSI-r13 ::= SEQUENCE { + rssi-Result-r13 RSSI-Range-r13, + channelOccupancy-r13 INTEGER (0..100), + ... +} + +UL-PDCP-DelayResultList-r13 ::= SEQUENCE (SIZE (1..maxQCI-r13)) OF UL-PDCP-DelayResult-r13 + + +UL-PDCP-DelayResult-r13 ::= SEQUENCE { + qci-Id-r13 ENUMERATED {qci1, qci2, qci3, qci4, spare4, spare3, spare2, spare1}, + excessDelay-r13 INTEGER (0..31), + ... +} + + +MeasResultCellListSFTD-r15 ::= SEQUENCE (SIZE (1..maxCellSFTD)) OF MeasResultCellSFTD-r15 + +MeasResultCellSFTD-r15 ::= SEQUENCE { + physCellId-r15 PhysCellIdNR-r15, + sfn-OffsetResult-r15 INTEGER (0..1023), + frameBoundaryOffsetResult-r15 INTEGER (-30720..30719), + rsrpResult-r15 RSRP-RangeNR-r15 OPTIONAL +} + + +MeasResultSSTD-r13 ::= SEQUENCE { + sfn-OffsetResult-r13 INTEGER (0..1023), + frameBoundaryOffsetResult-r13 INTEGER (-5..4), + subframeBoundaryOffsetResult-r13 INTEGER (0..127) +} + + +MeasScaleFactor-r12 ::= ENUMERATED {sf-EUTRA-cf1, sf-EUTRA-cf2} + + +QuantityConfig ::= SEQUENCE { + quantityConfigEUTRA QuantityConfigEUTRA OPTIONAL, -- Need ON + quantityConfigUTRA QuantityConfigUTRA OPTIONAL, -- Need ON + quantityConfigGERAN QuantityConfigGERAN OPTIONAL, -- Need ON + quantityConfigCDMA2000 QuantityConfigCDMA2000 OPTIONAL, -- Need ON + ..., + [[ quantityConfigUTRA-v1020 QuantityConfigUTRA-v1020 OPTIONAL -- Need ON + ]], + [[ quantityConfigEUTRA-v1250 QuantityConfigEUTRA-v1250 OPTIONAL -- Need ON + ]], + [[ quantityConfigEUTRA-v1310 QuantityConfigEUTRA-v1310 OPTIONAL, -- Need ON + quantityConfigWLAN-r13 QuantityConfigWLAN-r13 OPTIONAL -- Need ON + ]], + [[ quantityConfigNRList-r15 QuantityConfigNRList-r15 OPTIONAL -- Need ON + ]] +} + +QuantityConfigEUTRA ::= SEQUENCE { + filterCoefficientRSRP FilterCoefficient DEFAULT fc4, + filterCoefficientRSRQ FilterCoefficient DEFAULT fc4 +} + +QuantityConfigEUTRA-v1250 ::= SEQUENCE { + filterCoefficientCSI-RSRP-r12 FilterCoefficient OPTIONAL -- Need OR +} + +QuantityConfigEUTRA-v1310 ::= SEQUENCE { + filterCoefficientRS-SINR-r13 FilterCoefficient DEFAULT fc4 +} + +QuantityConfigUTRA ::= SEQUENCE { + measQuantityUTRA-FDD ENUMERATED {cpich-RSCP, cpich-EcN0}, + measQuantityUTRA-TDD ENUMERATED {pccpch-RSCP}, + filterCoefficient FilterCoefficient DEFAULT fc4 +} + +QuantityConfigUTRA-v1020 ::= SEQUENCE { + filterCoefficient2-FDD-r10 FilterCoefficient DEFAULT fc4 +} + +QuantityConfigGERAN ::= SEQUENCE { + measQuantityGERAN ENUMERATED {rssi}, + filterCoefficient FilterCoefficient DEFAULT fc2 +} + +QuantityConfigCDMA2000 ::= SEQUENCE { + measQuantityCDMA2000 ENUMERATED {pilotStrength, pilotPnPhaseAndPilotStrength} +} + +QuantityConfigNRList-r15 ::= SEQUENCE (SIZE (1..maxQuantSetsNR-r15)) OF QuantityConfigNR-r15 + +QuantityConfigNR-r15 ::= SEQUENCE { + measQuantityCellNR-r15 QuantityConfigRS-NR-r15, + measQuantityRS-IndexNR-r15 QuantityConfigRS-NR-r15 OPTIONAL +} + +QuantityConfigRS-NR-r15 ::= SEQUENCE { + filterCoeff-RSRP-r15 FilterCoefficient DEFAULT fc4, + filterCoeff-RSRQ-r15 FilterCoefficient DEFAULT fc4, + filterCoefficient-SINR-r13 FilterCoefficient DEFAULT fc4 +} + +QuantityConfigWLAN-r13 ::= SEQUENCE { + measQuantityWLAN-r13 ENUMERATED {rssiWLAN}, + filterCoefficient-r13 FilterCoefficient DEFAULT fc4 +} + + +ReportConfigEUTRA ::= SEQUENCE { + triggerType CHOICE { + event SEQUENCE { + eventId CHOICE { + eventA1 SEQUENCE { + a1-Threshold ThresholdEUTRA + }, + eventA2 SEQUENCE { + a2-Threshold ThresholdEUTRA + }, + eventA3 SEQUENCE { + a3-Offset INTEGER (-30..30), + reportOnLeave BOOLEAN + }, + eventA4 SEQUENCE { + a4-Threshold ThresholdEUTRA + }, + eventA5 SEQUENCE { + a5-Threshold1 ThresholdEUTRA, + a5-Threshold2 ThresholdEUTRA + }, + ..., + eventA6-r10 SEQUENCE { + a6-Offset-r10 INTEGER (-30..30), + a6-ReportOnLeave-r10 BOOLEAN + }, + eventC1-r12 SEQUENCE { + c1-Threshold-r12 ThresholdEUTRA-v1250, + c1-ReportOnLeave-r12 BOOLEAN + }, + eventC2-r12 SEQUENCE { + c2-RefCSI-RS-r12 MeasCSI-RS-Id-r12, + c2-Offset-r12 INTEGER (-30..30), + c2-ReportOnLeave-r12 BOOLEAN + }, + eventV1-r14 SEQUENCE { + v1-Threshold-r14 SL-CBR-r14 + }, + eventV2-r14 SEQUENCE { + v2-Threshold-r14 SL-CBR-r14 + } + }, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + periodical SEQUENCE { + purpose ENUMERATED { + reportStrongestCells, reportCGI} + } + }, + triggerQuantity ENUMERATED {rsrp, rsrq}, + reportQuantity ENUMERATED {sameAsTriggerQuantity, both}, + maxReportCells INTEGER (1..maxCellReport), + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + ..., + [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL, -- Cond reportCGI + ue-RxTxTimeDiffPeriodical-r9 ENUMERATED {setup} OPTIONAL -- Need OR + ]], + [[ includeLocationInfo-r10 ENUMERATED {true} OPTIONAL, -- Need OR + reportAddNeighMeas-r10 ENUMERATED {setup} OPTIONAL -- Need OR + ]], + [[ alternativeTimeToTrigger-r12 CHOICE { + release NULL, + setup TimeToTrigger + } OPTIONAL, -- Need ON + useT312-r12 BOOLEAN OPTIONAL, -- Need ON + usePSCell-r12 BOOLEAN OPTIONAL, -- Need ON + aN-Threshold1-v1250 RSRQ-RangeConfig-r12 OPTIONAL, -- Need ON + a5-Threshold2-v1250 RSRQ-RangeConfig-r12 OPTIONAL, -- Need ON + reportStrongestCSI-RSs-r12 BOOLEAN OPTIONAL, -- Need ON + reportCRS-Meas-r12 BOOLEAN OPTIONAL, -- Need ON + triggerQuantityCSI-RS-r12 BOOLEAN OPTIONAL -- Need ON + ]], + [[ reportSSTD-Meas-r13 BOOLEAN OPTIONAL, -- Need ON + rs-sinr-Config-r13 CHOICE { + release NULL, + setup SEQUENCE { + triggerQuantity-v1310 ENUMERATED {sinr} OPTIONAL, -- Need ON + aN-Threshold1-r13 RS-SINR-Range-r13 OPTIONAL, -- Need ON + a5-Threshold2-r13 RS-SINR-Range-r13 OPTIONAL, -- Need ON + reportQuantity-v1310 ENUMERATED {rsrpANDsinr, rsrqANDsinr, all} + } + } OPTIONAL, -- Need ON + useWhiteCellList-r13 BOOLEAN OPTIONAL, -- Need ON + measRSSI-ReportConfig-r13 MeasRSSI-ReportConfig-r13 OPTIONAL, -- Need ON + includeMultiBandInfo-r13 ENUMERATED {true} OPTIONAL, -- Cond reportCGI + ul-DelayConfig-r13 UL-DelayConfig-r13 OPTIONAL -- Need ON + ]], + [[ ue-RxTxTimeDiffPeriodicalTDD-r13 BOOLEAN OPTIONAL -- Need ON + ]], + [[ + purpose-v1430 ENUMERATED {reportLocation, sidelink, spare2, spare1} + OPTIONAL -- Need ON + ]], + [[ + maxReportRS-Index-r15 INTEGER (0..maxRS-IndexReport-r15) OPTIONAL -- Need ON + ]] +} + +RSRQ-RangeConfig-r12 ::= CHOICE { + release NULL, + setup RSRQ-Range-v1250 +} + +ThresholdEUTRA ::= CHOICE{ + threshold-RSRP RSRP-Range, + threshold-RSRQ RSRQ-Range +} + +ThresholdEUTRA-v1250 ::= CSI-RSRP-Range-r12 + +MeasRSSI-ReportConfig-r13 ::= SEQUENCE { + channelOccupancyThreshold-r13 RSSI-Range-r13 OPTIONAL -- Need OR +} + + +ReportConfigId ::= INTEGER (1..maxReportConfigId) + + +ReportConfigInterRAT ::= SEQUENCE { + triggerType CHOICE { + event SEQUENCE { + eventId CHOICE { + eventB1 SEQUENCE { + b1-Threshold CHOICE { + b1-ThresholdUTRA ThresholdUTRA, + b1-ThresholdGERAN ThresholdGERAN, + b1-ThresholdCDMA2000 ThresholdCDMA2000 + } + }, + eventB2 SEQUENCE { + b2-Threshold1 ThresholdEUTRA, + b2-Threshold2 CHOICE { + b2-Threshold2UTRA ThresholdUTRA, + b2-Threshold2GERAN ThresholdGERAN, + b2-Threshold2CDMA2000 ThresholdCDMA2000 + } + }, + ..., + eventW1-r13 SEQUENCE { + w1-Threshold-r13 WLAN-RSSI-Range-r13 + }, + eventW2-r13 SEQUENCE { + w2-Threshold1-r13 WLAN-RSSI-Range-r13, + w2-Threshold2-r13 WLAN-RSSI-Range-r13 + }, + eventW3-r13 SEQUENCE { + w3-Threshold-r13 WLAN-RSSI-Range-r13 + }, + eventB1-NR-r15 SEQUENCE { + b1-ThresholdNR-r15 ThresholdNR-r15, + reportOnLeave-r15 BOOLEAN + }, + eventB2-NR-r15 SEQUENCE { + b2-Threshold1-r15 ThresholdEUTRA, + b2-Threshold2NR-r15 ThresholdNR-r15, + reportOnLeave-r15 BOOLEAN + } + }, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + periodical SEQUENCE { + purpose ENUMERATED { + reportStrongestCells, + reportStrongestCellsForSON, + reportCGI} + } + }, + maxReportCells INTEGER (1..maxCellReport), + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + ..., + [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL -- Cond reportCGI + ]], + [[ reportQuantityUTRA-FDD-r10 ENUMERATED {both} OPTIONAL -- Need OR + ]], + [[ includeLocationInfo-r11 BOOLEAN OPTIONAL -- Need ON + ]], + [[ b2-Threshold1-v1250 CHOICE { + release NULL, + setup RSRQ-Range-v1250 + } OPTIONAL -- Need ON + ]], + [[ reportQuantityWLAN-r13 ReportQuantityWLAN-r13 OPTIONAL -- Need ON + ]], + [[ reportAnyWLAN-r14 BOOLEAN OPTIONAL -- Need ON + ]], + [[ reportQuantityCellNR-r15 ReportQuantityNR-r15 OPTIONAL, -- Need ON + maxReportRS-Index-r15 INTEGER (0..maxRS-IndexReport-r15) OPTIONAL, -- Need ON, + reportQuantityRS-IndexNR-r15 ReportQuantityNR-r15 OPTIONAL, -- Need ON + reportRS-IndexResultsNR BOOLEAN OPTIONAL, -- Need ON + reportSFTD-Meas-r15 ENUMERATED {pSCell, neighborCells } OPTIONAL -- Need ON + ]] +} + +ThresholdUTRA ::= CHOICE{ + utra-RSCP INTEGER (-5..91), + utra-EcN0 INTEGER (0..49) +} + +ThresholdGERAN ::= INTEGER (0..63) + +ThresholdCDMA2000 ::= INTEGER (0..63) + +ReportQuantityNR-r15::= SEQUENCE { + ss-rsrp BOOLEAN, + ss-rsrq BOOLEAN, + ss-sinr BOOLEAN +} + +ReportQuantityWLAN-r13 ::= SEQUENCE { + bandRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + carrierInfoRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + availableAdmissionCapacityRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + backhaulDL-BandwidthRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + backhaulUL-BandwidthRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + channelUtilizationRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + stationCountRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR + ... +} + + +ReportConfigToAddModList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigToAddMod + +ReportConfigToAddMod ::= SEQUENCE { + reportConfigId ReportConfigId, + reportConfig CHOICE { + reportConfigEUTRA ReportConfigEUTRA, + reportConfigInterRAT ReportConfigInterRAT + } +} + + + +ReportInterval ::= ENUMERATED { + ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, + min1, min6, min12, min30, min60, spare3, spare2, spare1} + + +RSRP-Range ::= INTEGER(0..97) + +RSRP-Range-v1360 ::= INTEGER(-17..-1) + +RSRP-RangeSL-r12 ::= INTEGER(0..13) + +RSRP-RangeSL2-r12 ::= INTEGER(0..7) + +RSRP-RangeSL3-r12 ::= INTEGER(0..11) + +RSRP-RangeSL4-r13 ::= INTEGER(0..49) + + +RSRP-RangeNR-r15 ::= INTEGER (0..127) + + +RSRQ-Range ::= INTEGER(0..34) + +RSRQ-Range-v1250 ::= INTEGER(-30..46) + +RSRQ-Range-r13 ::= INTEGER(-30..46) + + +RSRQ-RangeNR-r15 ::= INTEGER (0..127) + + +RSRQ-Type-r12 ::= SEQUENCE { + allSymbols-r12 BOOLEAN, + wideBand-r12 BOOLEAN +} + + +RS-SINR-Range-r13 ::= INTEGER(0..127) + + +RS-SINR-RangeNR-r15 ::= INTEGER (0..127) + + +RSSI-Range-r13 ::= INTEGER(0..76) + + +TimeToTrigger ::= ENUMERATED { + ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256, + ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560, + ms5120} + + +UL-DelayConfig-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + delayThreshold-r13 ENUMERATED { + ms30, ms40, ms50, ms60, ms70, ms80, + ms90,ms100, ms150, ms300, ms500, ms750, spare4, spare3, spare2, spare1} + } +} + + +WLAN-CarrierInfo-r13 ::= SEQUENCE { + operatingClass-r13 INTEGER (0..255) OPTIONAL, -- Need ON + countryCode-r13 ENUMERATED {unitedStates, europe, japan, global, ...} OPTIONAL, -- Need ON + channelNumbers-r13 WLAN-ChannelList-r13 OPTIONAL, -- Need ON + ... +} + +WLAN-ChannelList-r13 ::= SEQUENCE (SIZE (1..maxWLAN-Channels-r13)) OF WLAN-Channel-r13 + +WLAN-Channel-r13 ::= INTEGER(0..255) + + +WLAN-RSSI-Range-r13 ::= INTEGER(0..141) + + +WLAN-Status-r13 ::= ENUMERATED {successfulAssociation, failureWlanRadioLink, failureWlanUnavailable, failureTimeout} + +WLAN-Status-v1430 ::= ENUMERATED {suspended, resumed} + + +WLAN-SuspendConfig-r14 ::= SEQUENCE { + wlan-SuspendResumeAllowed-r14 BOOLEAN OPTIONAL, -- Need ON + wlan-SuspendTriggersStatusReport-r14 BOOLEAN OPTIONAL -- Need ON +} + + +AbsoluteTimeInfo-r10 ::= BIT STRING (SIZE (48)) + + +AreaConfiguration-r10 ::= CHOICE { + cellGlobalIdList-r10 CellGlobalIdList-r10, + trackingAreaCodeList-r10 TrackingAreaCodeList-r10 +} + +AreaConfiguration-v1130 ::= SEQUENCE { + trackingAreaCodeList-v1130 TrackingAreaCodeList-v1130 +} + +CellGlobalIdList-r10 ::= SEQUENCE (SIZE (1..32)) OF CellGlobalIdEUTRA + +TrackingAreaCodeList-r10 ::= SEQUENCE (SIZE (1..8)) OF TrackingAreaCode + +TrackingAreaCodeList-v1130 ::= SEQUENCE { + plmn-Identity-perTAC-List-r11 SEQUENCE (SIZE (1..8)) OF PLMN-Identity +} + + +BandCombinationList-r14 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombination-r14 + +BandCombination-r14 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandIndication-r14 + +BandIndication-r14 ::= SEQUENCE { + bandEUTRA-r14 FreqBandIndicator-r11, + ca-BandwidthClassDL-r14 CA-BandwidthClass-r10, + ca-BandwidthClassUL-r14 CA-BandwidthClass-r10 OPTIONAL +} + + +C-RNTI ::= BIT STRING (SIZE (16)) + + +DedicatedInfoCDMA2000 ::= OCTET STRING + + +DedicatedInfoNAS ::= OCTET STRING + + +FilterCoefficient ::= ENUMERATED { + fc0, fc1, fc2, fc3, fc4, fc5, + fc6, fc7, fc8, fc9, fc11, fc13, + fc15, fc17, fc19, spare1, ...} + + +LoggingDuration-r10 ::= ENUMERATED { + min10, min20, min40, min60, min90, min120, spare2, spare1} + + +LoggingInterval-r10 ::= ENUMERATED { + ms1280, ms2560, ms5120, ms10240, ms20480, + ms30720, ms40960, ms61440} + + +MeasSubframePattern-r10 ::= CHOICE { + subframePatternFDD-r10 BIT STRING (SIZE (40)), + subframePatternTDD-r10 CHOICE { + subframeConfig1-5-r10 BIT STRING (SIZE (20)), + subframeConfig0-r10 BIT STRING (SIZE (70)), + subframeConfig6-r10 BIT STRING (SIZE (60)), + ... + }, + ... +} + + +MMEC ::= BIT STRING (SIZE (8)) + + +NeighCellConfig ::= BIT STRING (SIZE (2)) + + +OtherConfig-r9 ::= SEQUENCE { + reportProximityConfig-r9 ReportProximityConfig-r9 OPTIONAL, -- Need ON + ..., + [[ idc-Config-r11 IDC-Config-r11 OPTIONAL, -- Need ON + powerPrefIndicationConfig-r11 PowerPrefIndicationConfig-r11 OPTIONAL, -- Need ON + obtainLocationConfig-r11 ObtainLocationConfig-r11 OPTIONAL -- Need ON + ]], + [[ bw-PreferenceIndicationTimer-r14 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, + s30, s60, s90, s120, s300, s600, spare3, + spare2, spare1} OPTIONAL, -- Need OR + sps-AssistanceInfoReport-r14 BOOLEAN OPTIONAL, -- Need ON + delayBudgetReportingConfig-r14 CHOICE{ + release NULL, + setup SEQUENCE{ + delayBudgetReportingProhibitTimer-r14 ENUMERATED { + s0, s0dot4, s0dot8, + s1dot6, s3, s6, s12, s30} + } + } OPTIONAL, -- Need ON + rlm-ReportConfig-r14 CHOICE { + release NULL, + setup SEQUENCE{ + rlmReportTimer-r14 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, s30, + s60, s90, s120, s300, s600, spare3, spare2, spare1}, + rlmReportRep-MPDCCH-r14 ENUMERATED {setup} OPTIONAL -- Need OR + } + } OPTIONAL -- Need ON + ]], + [[ overheatingAssistanceConfig-r14 CHOICE{ + release NULL, + setup SEQUENCE{ + overheatingIndicationProhibitTimer-r14 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, + s20, s30, s60, s90, s120, s300, s600, + spare3, spare2, spare1} + } + } OPTIONAL -- Need ON + ]] +} + +IDC-Config-r11 ::= SEQUENCE { + idc-Indication-r11 ENUMERATED {setup} OPTIONAL, -- Need OR + autonomousDenialParameters-r11 SEQUENCE { + autonomousDenialSubframes-r11 ENUMERATED {n2, n5, n10, n15, + n20, n30, spare2, spare1}, + autonomousDenialValidity-r11 ENUMERATED { + sf200, sf500, sf1000, sf2000, + spare4, spare3, spare2, spare1} + } OPTIONAL, -- Need OR + ..., + [[ idc-Indication-UL-CA-r11 ENUMERATED {setup} OPTIONAL -- Cond idc-Ind + ]], + [[ idc-HardwareSharingIndication-r13 ENUMERATED {setup} OPTIONAL -- Need OR + ]] +} + +ObtainLocationConfig-r11 ::= SEQUENCE { + obtainLocation-r11 ENUMERATED {setup} OPTIONAL -- Need OR +} + +PowerPrefIndicationConfig-r11 ::= CHOICE{ + release NULL, + setup SEQUENCE{ + powerPrefIndicationTimer-r11 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, + s30, s60, s90, s120, s300, s600, spare3, + spare2, spare1} + } +} + +ReportProximityConfig-r9 ::= SEQUENCE { + proximityIndicationEUTRA-r9 ENUMERATED {enabled} OPTIONAL, -- Need OR + proximityIndicationUTRA-r9 ENUMERATED {enabled} OPTIONAL -- Need OR +} + + +RAND-CDMA2000 ::= BIT STRING (SIZE (32)) + + +RAT-Type ::= ENUMERATED { + eutra, utra, geran-cs, geran-ps, cdma2000-1XRTT, + nr, eutra-nr, spare1, ...} + + +ResumeIdentity-r13 ::= BIT STRING (SIZE(40)) + + +RRC-TransactionIdentifier ::= INTEGER (0..3) + + +S-TMSI ::= SEQUENCE { + mmec MMEC, + m-TMSI BIT STRING (SIZE (32)) +} + + +TraceReference-r10 ::= SEQUENCE { + plmn-Identity-r10 PLMN-Identity, + traceId-r10 OCTET STRING (SIZE (3)) +} + + +UE-CapabilityRAT-ContainerList ::=SEQUENCE (SIZE (0..maxRAT-Capabilities)) OF UE-CapabilityRAT-Container + +UE-CapabilityRAT-Container ::= SEQUENCE { + rat-Type RAT-Type, + ueCapabilityRAT-Container OCTET STRING +} + + +UE-EUTRA-Capability ::= SEQUENCE { + accessStratumRelease AccessStratumRelease, + ue-Category INTEGER (1..5), + pdcp-Parameters PDCP-Parameters, + phyLayerParameters PhyLayerParameters, + rf-Parameters RF-Parameters, + measParameters MeasParameters, + featureGroupIndicators BIT STRING (SIZE (32)) OPTIONAL, + interRAT-Parameters SEQUENCE { + utraFDD IRAT-ParametersUTRA-FDD OPTIONAL, + utraTDD128 IRAT-ParametersUTRA-TDD128 OPTIONAL, + utraTDD384 IRAT-ParametersUTRA-TDD384 OPTIONAL, + utraTDD768 IRAT-ParametersUTRA-TDD768 OPTIONAL, + geran IRAT-ParametersGERAN OPTIONAL, + cdma2000-HRPD IRAT-ParametersCDMA2000-HRPD OPTIONAL, + cdma2000-1xRTT IRAT-ParametersCDMA2000-1XRTT OPTIONAL + }, + nonCriticalExtension UE-EUTRA-Capability-v920-IEs OPTIONAL +} + +-- Late non critical extensions +UE-EUTRA-Capability-v9a0-IEs ::= SEQUENCE { + featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9c0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9c0-IEs ::= SEQUENCE { + interRAT-ParametersUTRA-v9c0 IRAT-ParametersUTRA-v9c0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9d0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9d0-IEs ::= SEQUENCE { + phyLayerParameters-v9d0 PhyLayerParameters-v9d0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9e0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9e0-IEs ::= SEQUENCE { + rf-Parameters-v9e0 RF-Parameters-v9e0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9h0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9h0-IEs ::= SEQUENCE { + interRAT-ParametersUTRA-v9h0 IRAT-ParametersUTRA-v9h0 OPTIONAL, + -- Following field is only to be used for late REL-9 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10c0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10c0-IEs ::= SEQUENCE { + otdoa-PositioningCapabilities-r10 OTDOA-PositioningCapabilities-r10 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10f0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10f0-IEs ::= SEQUENCE { + rf-Parameters-v10f0 RF-Parameters-v10f0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v10i0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10i0-IEs ::= SEQUENCE { + rf-Parameters-v10i0 RF-Parameters-v10i0 OPTIONAL, + -- Following field is only to be used for late REL-10 extensions + lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v10j0-IEs) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11d0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10j0-IEs ::= SEQUENCE { + rf-Parameters-v10j0 RF-Parameters-v10j0 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-EUTRA-Capability-v11d0-IEs ::= SEQUENCE { + rf-Parameters-v11d0 RF-Parameters-v11d0 OPTIONAL, + otherParameters-v11d0 Other-Parameters-v11d0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11x0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v11x0-IEs ::= SEQUENCE { + -- Following field is only to be used for late REL-11 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v12b0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v12b0-IEs ::= SEQUENCE { + rf-Parameters-v12b0 RF-Parameters-v12b0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v12x0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v12x0-IEs ::= SEQUENCE { + -- Following field is only to be used for late REL-12 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1370-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1370-IEs ::= SEQUENCE { + ce-Parameters-v1370 CE-Parameters-v1370 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1370 UE-EUTRA-CapabilityAddXDD-Mode-v1370 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1370 UE-EUTRA-CapabilityAddXDD-Mode-v1370 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1380-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1380-IEs ::= SEQUENCE { + rf-Parameters-v1380 RF-Parameters-v1380 OPTIONAL, + ce-Parameters-v1380 CE-Parameters-v1380, + fdd-Add-UE-EUTRA-Capabilities-v1380 UE-EUTRA-CapabilityAddXDD-Mode-v1380, + tdd-Add-UE-EUTRA-Capabilities-v1380 UE-EUTRA-CapabilityAddXDD-Mode-v1380, + nonCriticalExtension UE-EUTRA-Capability-v1390-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1390-IEs ::= SEQUENCE { + rf-Parameters-v1390 RF-Parameters-v1390 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v13x0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v13x0-IEs ::= SEQUENCE { + -- Following field is only to be used for late REL-13 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1470-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1470-IEs ::= SEQUENCE { + mbms-Parameters-v1470 MBMS-Parameters-v1470 OPTIONAL, + phyLayerParameters-v1470 PhyLayerParameters-v1470 OPTIONAL, + rf-Parameters-v1470 RF-Parameters-v1470 OPTIONAL, + -- Following field is only to be used for late REL-14 extensions + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non critical extensions +UE-EUTRA-Capability-v920-IEs ::= SEQUENCE { + phyLayerParameters-v920 PhyLayerParameters-v920, + interRAT-ParametersGERAN-v920 IRAT-ParametersGERAN-v920, + interRAT-ParametersUTRA-v920 IRAT-ParametersUTRA-v920 OPTIONAL, + interRAT-ParametersCDMA2000-v920 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL, + deviceType-r9 ENUMERATED {noBenFromBatConsumpOpt} OPTIONAL, + csg-ProximityIndicationParameters-r9 CSG-ProximityIndicationParameters-r9, + neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9, + son-Parameters-r9 SON-Parameters-r9, + nonCriticalExtension UE-EUTRA-Capability-v940-IEs OPTIONAL +} + +UE-EUTRA-Capability-v940-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v9a0-IEs) + OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1020-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1020-IEs ::= SEQUENCE { + ue-Category-v1020 INTEGER (6..8) OPTIONAL, + phyLayerParameters-v1020 PhyLayerParameters-v1020 OPTIONAL, + rf-Parameters-v1020 RF-Parameters-v1020 OPTIONAL, + measParameters-v1020 MeasParameters-v1020 OPTIONAL, + featureGroupIndRel10-r10 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersCDMA2000-v1020 IRAT-ParametersCDMA2000-1XRTT-v1020 OPTIONAL, + ue-BasedNetwPerfMeasParameters-r10 UE-BasedNetwPerfMeasParameters-r10 OPTIONAL, + interRAT-ParametersUTRA-TDD-v1020 IRAT-ParametersUTRA-TDD-v1020 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1060-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1060-IEs ::= SEQUENCE { + fdd-Add-UE-EUTRA-Capabilities-v1060 UE-EUTRA-CapabilityAddXDD-Mode-v1060 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1060 UE-EUTRA-CapabilityAddXDD-Mode-v1060 OPTIONAL, + rf-Parameters-v1060 RF-Parameters-v1060 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1090-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1090-IEs ::= SEQUENCE { + rf-Parameters-v1090 RF-Parameters-v1090 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1130-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1130-IEs ::= SEQUENCE { + pdcp-Parameters-v1130 PDCP-Parameters-v1130, + phyLayerParameters-v1130 PhyLayerParameters-v1130 OPTIONAL, + rf-Parameters-v1130 RF-Parameters-v1130, + measParameters-v1130 MeasParameters-v1130, + interRAT-ParametersCDMA2000-v1130 IRAT-ParametersCDMA2000-v1130, + otherParameters-r11 Other-Parameters-r11, + fdd-Add-UE-EUTRA-Capabilities-v1130 UE-EUTRA-CapabilityAddXDD-Mode-v1130 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1130 UE-EUTRA-CapabilityAddXDD-Mode-v1130 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1170-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1170-IEs ::= SEQUENCE { + phyLayerParameters-v1170 PhyLayerParameters-v1170 OPTIONAL, + ue-Category-v1170 INTEGER (9..10) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1180-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1180-IEs ::= SEQUENCE { + rf-Parameters-v1180 RF-Parameters-v1180 OPTIONAL, + mbms-Parameters-r11 MBMS-Parameters-r11 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1180 UE-EUTRA-CapabilityAddXDD-Mode-v1180 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1180 UE-EUTRA-CapabilityAddXDD-Mode-v1180 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11a0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v11a0-IEs ::= SEQUENCE { + ue-Category-v11a0 INTEGER (11..12) OPTIONAL, + measParameters-v11a0 MeasParameters-v11a0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1250-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1250-IEs ::= SEQUENCE { + phyLayerParameters-v1250 PhyLayerParameters-v1250 OPTIONAL, + rf-Parameters-v1250 RF-Parameters-v1250 OPTIONAL, + rlc-Parameters-r12 RLC-Parameters-r12 OPTIONAL, + ue-BasedNetwPerfMeasParameters-v1250 UE-BasedNetwPerfMeasParameters-v1250 OPTIONAL, + ue-CategoryDL-r12 INTEGER (0..14) OPTIONAL, + ue-CategoryUL-r12 INTEGER (0..13) OPTIONAL, + wlan-IW-Parameters-r12 WLAN-IW-Parameters-r12 OPTIONAL, + measParameters-v1250 MeasParameters-v1250 OPTIONAL, + dc-Parameters-r12 DC-Parameters-r12 OPTIONAL, + mbms-Parameters-v1250 MBMS-Parameters-v1250 OPTIONAL, + mac-Parameters-r12 MAC-Parameters-r12 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1250 UE-EUTRA-CapabilityAddXDD-Mode-v1250 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1250 UE-EUTRA-CapabilityAddXDD-Mode-v1250 OPTIONAL, + sl-Parameters-r12 SL-Parameters-r12 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1260-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1260-IEs ::= SEQUENCE { + ue-CategoryDL-v1260 INTEGER (15..16) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1270-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1270-IEs ::= SEQUENCE { + rf-Parameters-v1270 RF-Parameters-v1270 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1280-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1280-IEs ::= SEQUENCE { + phyLayerParameters-v1280 PhyLayerParameters-v1280 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1310-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1310-IEs ::= SEQUENCE { + ue-CategoryDL-v1310 ENUMERATED {n17, m1} OPTIONAL, + ue-CategoryUL-v1310 ENUMERATED {n14, m1} OPTIONAL, + pdcp-Parameters-v1310 PDCP-Parameters-v1310, + rlc-Parameters-v1310 RLC-Parameters-v1310, + mac-Parameters-v1310 MAC-Parameters-v1310 OPTIONAL, + phyLayerParameters-v1310 PhyLayerParameters-v1310 OPTIONAL, + rf-Parameters-v1310 RF-Parameters-v1310 OPTIONAL, + measParameters-v1310 MeasParameters-v1310 OPTIONAL, + dc-Parameters-v1310 DC-Parameters-v1310 OPTIONAL, + sl-Parameters-v1310 SL-Parameters-v1310 OPTIONAL, + scptm-Parameters-r13 SCPTM-Parameters-r13 OPTIONAL, + ce-Parameters-r13 CE-Parameters-r13 OPTIONAL, + interRAT-ParametersWLAN-r13 IRAT-ParametersWLAN-r13, + laa-Parameters-r13 LAA-Parameters-r13 OPTIONAL, + lwa-Parameters-r13 LWA-Parameters-r13 OPTIONAL, + wlan-IW-Parameters-v1310 WLAN-IW-Parameters-v1310, + lwip-Parameters-r13 LWIP-Parameters-r13, + fdd-Add-UE-EUTRA-Capabilities-v1310 UE-EUTRA-CapabilityAddXDD-Mode-v1310 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1310 UE-EUTRA-CapabilityAddXDD-Mode-v1310 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1320-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1320-IEs ::= SEQUENCE { + ce-Parameters-v1320 CE-Parameters-v1320 OPTIONAL, + phyLayerParameters-v1320 PhyLayerParameters-v1320 OPTIONAL, + rf-Parameters-v1320 RF-Parameters-v1320 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1320 UE-EUTRA-CapabilityAddXDD-Mode-v1320 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1320 UE-EUTRA-CapabilityAddXDD-Mode-v1320 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1330-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1330-IEs ::= SEQUENCE { + ue-CategoryDL-v1330 INTEGER (18..19) OPTIONAL, + phyLayerParameters-v1330 PhyLayerParameters-v1330 OPTIONAL, + ue-CE-NeedULGaps-r13 ENUMERATED {true} OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1340-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1340-IEs ::= SEQUENCE { + ue-CategoryUL-v1340 INTEGER (15) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1350-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1350-IEs ::= SEQUENCE { + ue-CategoryDL-v1350 ENUMERATED {oneBis} OPTIONAL, + ue-CategoryUL-v1350 ENUMERATED {oneBis} OPTIONAL, + ce-Parameters-v1350 CE-Parameters-v1350, + nonCriticalExtension UE-EUTRA-Capability-v1360-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1360-IEs ::= SEQUENCE { + other-Parameters-v1360 Other-Parameters-v1360 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1430-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1430-IEs ::= SEQUENCE { + phyLayerParameters-v1430 PhyLayerParameters-v1430, + ue-CategoryDL-v1430 ENUMERATED {m2} OPTIONAL, + ue-CategoryUL-v1430 ENUMERATED {n16, n17, n18, n19, n20, m2} OPTIONAL, + ue-CategoryUL-v1430b ENUMERATED {n21} OPTIONAL, + mac-Parameters-v1430 MAC-Parameters-v1430 OPTIONAL, + measParameters-v1430 MeasParameters-v1430 OPTIONAL, + pdcp-Parameters-v1430 PDCP-Parameters-v1430 OPTIONAL, + rlc-Parameters-v1430 RLC-Parameters-v1430, + rf-Parameters-v1430 RF-Parameters-v1430 OPTIONAL, + laa-Parameters-v1430 LAA-Parameters-v1430 OPTIONAL, + lwa-Parameters-v1430 LWA-Parameters-v1430 OPTIONAL, + lwip-Parameters-v1430 LWIP-Parameters-v1430 OPTIONAL, + otherParameters-v1430 Other-Parameters-v1430, + mmtel-Parameters-r14 MMTEL-Parameters-r14 OPTIONAL, + mobilityParameters-r14 MobilityParameters-r14 OPTIONAL, + ce-Parameters-v1430 CE-Parameters-v1430, + fdd-Add-UE-EUTRA-Capabilities-v1430 UE-EUTRA-CapabilityAddXDD-Mode-v1430 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1430 UE-EUTRA-CapabilityAddXDD-Mode-v1430 OPTIONAL, + mbms-Parameters-v1430 MBMS-Parameters-v1430 OPTIONAL, + sl-Parameters-v1430 SL-Parameters-v1430 OPTIONAL, + ue-BasedNetwPerfMeasParameters-v1430 UE-BasedNetwPerfMeasParameters-v1430 OPTIONAL, + highSpeedEnhParameters-r14 HighSpeedEnhParameters-r14 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1440-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1440-IEs ::= SEQUENCE { + lwa-Parameters-v1440 LWA-Parameters-v1440, + mac-Parameters-v1440 MAC-Parameters-v1440, + nonCriticalExtension UE-EUTRA-Capability-v1450-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1450-IEs ::= SEQUENCE { + phyLayerParameters-v1450 PhyLayerParameters-v1450 OPTIONAL, + rf-Parameters-v1450 RF-Parameters-v1450 OPTIONAL, + otherParameters-v1450 OtherParameters-v1450, + ue-CategoryDL-v1450 INTEGER (20) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1460-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1460-IEs ::= SEQUENCE { + ue-CategoryDL-v1460 INTEGER (21) OPTIONAL, + otherParameters-v1460 Other-Parameters-v1460, + nonCriticalExtension UE-EUTRA-Capability-v1510-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1510-IEs ::= SEQUENCE { + irat-ParametersNR-r15 IRAT-ParametersNR-r15 OPTIONAL, + featureSetsEUTRA-r15 FeatureSetsEUTRA-r15 OPTIONAL, + pdcp-ParametersNR-r15 PDCP-ParametersNR-r15 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1510 UE-EUTRA-CapabilityAddXDD-Mode-v1510 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1510 UE-EUTRA-CapabilityAddXDD-Mode-v1510 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1520-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1520-IEs ::= SEQUENCE { + measParameters-v1520 MeasParameters-v1520, nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-r9 ::= SEQUENCE { + phyLayerParameters-r9 PhyLayerParameters OPTIONAL, + featureGroupIndicators-r9 BIT STRING (SIZE (32)) OPTIONAL, + featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersGERAN-r9 IRAT-ParametersGERAN OPTIONAL, + interRAT-ParametersUTRA-r9 IRAT-ParametersUTRA-v920 OPTIONAL, + interRAT-ParametersCDMA2000-r9 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL, + neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9 OPTIONAL, + ... +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1060 ::= SEQUENCE { + phyLayerParameters-v1060 PhyLayerParameters-v1020 OPTIONAL, + featureGroupIndRel10-v1060 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersCDMA2000-v1060 IRAT-ParametersCDMA2000-1XRTT-v1020 OPTIONAL, + interRAT-ParametersUTRA-TDD-v1060 IRAT-ParametersUTRA-TDD-v1020 OPTIONAL, + ..., + [[ otdoa-PositioningCapabilities-r10 OTDOA-PositioningCapabilities-r10 OPTIONAL + ]] +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1130 ::= SEQUENCE { + phyLayerParameters-v1130 PhyLayerParameters-v1130 OPTIONAL, + measParameters-v1130 MeasParameters-v1130 OPTIONAL, + otherParameters-r11 Other-Parameters-r11 OPTIONAL, + ... +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1180 ::= SEQUENCE { + mbms-Parameters-r11 MBMS-Parameters-r11 +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1250 ::= SEQUENCE { + phyLayerParameters-v1250 PhyLayerParameters-v1250 OPTIONAL, + measParameters-v1250 MeasParameters-v1250 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1310 ::= SEQUENCE { + phyLayerParameters-v1310 PhyLayerParameters-v1310 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1320 ::= SEQUENCE { + phyLayerParameters-v1320 PhyLayerParameters-v1320 OPTIONAL, + scptm-Parameters-r13 SCPTM-Parameters-r13 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1370 ::= SEQUENCE { + ce-Parameters-v1370 CE-Parameters-v1370 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1380 ::= SEQUENCE { + ce-Parameters-v1380 CE-Parameters-v1380 +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1430 ::= SEQUENCE { + phyLayerParameters-v1430 PhyLayerParameters-v1430 OPTIONAL, + mmtel-Parameters-r14 MMTEL-Parameters-r14 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1510 ::= SEQUENCE { + pdcp-ParametersNR-r15 PDCP-ParametersNR-r15 OPTIONAL +} + +AccessStratumRelease ::= ENUMERATED { + rel8, rel9, rel10, rel11, rel12, rel13, + rel14, rel15, ...} + +FeatureSetsEUTRA-r15 ::= SEQUENCE { + featureSetsDL-r15 SEQUENCE (SIZE (1..maxFeatureSets-r15)) OF FeatureSetDL-r15 OPTIONAL, + featureSetsDL-PerCC-r15 SEQUENCE (SIZE (1..maxPerCC-FeatureSets-r15)) OF FeatureSetDL-PerCC-r15 OPTIONAL, + featureSetsUL-r15 SEQUENCE (SIZE (1..maxFeatureSets-r15)) OF FeatureSetUL-r15 OPTIONAL, + featureSetsUL-PerCC-r15 SEQUENCE (SIZE (1..maxPerCC-FeatureSets-r15)) OF FeatureSetUL-PerCC-r15 OPTIONAL, + ... +} + +MobilityParameters-r14 ::= SEQUENCE { + makeBeforeBreak-r14 ENUMERATED {supported} OPTIONAL, + rach-Less-r14 ENUMERATED {supported} OPTIONAL +} + +DC-Parameters-r12 ::= SEQUENCE { + drb-TypeSplit-r12 ENUMERATED {supported} OPTIONAL, + drb-TypeSCG-r12 ENUMERATED {supported} OPTIONAL +} + +DC-Parameters-v1310 ::= SEQUENCE { + pdcp-TransferSplitUL-r13 ENUMERATED {supported} OPTIONAL, + ue-SSTD-Meas-r13 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-r12 ::= SEQUENCE { + logicalChannelSR-ProhibitTimer-r12 ENUMERATED {supported} OPTIONAL, + longDRX-Command-r12 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-v1310 ::= SEQUENCE { + extendedMAC-LengthField-r13 ENUMERATED {supported} OPTIONAL, + extendedLongDRX-r13 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-v1430 ::= SEQUENCE { + shortSPS-IntervalFDD-r14 ENUMERATED {supported} OPTIONAL, + shortSPS-IntervalTDD-r14 ENUMERATED {supported} OPTIONAL, + skipUplinkDynamic-r14 ENUMERATED {supported} OPTIONAL, + skipUplinkSPS-r14 ENUMERATED {supported} OPTIONAL, + multipleUplinkSPS-r14 ENUMERATED {supported} OPTIONAL, + dataInactMon-r14 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-v1440 ::= SEQUENCE { + rai-Support-r14 ENUMERATED {supported} OPTIONAL +} + +RLC-Parameters-r12 ::= SEQUENCE { + extended-RLC-LI-Field-r12 ENUMERATED {supported} +} + +RLC-Parameters-v1310 ::= SEQUENCE { + extendedRLC-SN-SO-Field-r13 ENUMERATED {supported} OPTIONAL +} + +RLC-Parameters-v1430 ::= SEQUENCE { + extendedPollByte-r14 ENUMERATED {supported} OPTIONAL +} + +PDCP-Parameters ::= SEQUENCE { + supportedROHC-Profiles ROHC-ProfileSupportList-r15, + maxNumberROHC-ContextSessions ENUMERATED { + cs2, cs4, cs8, cs12, cs16, cs24, cs32, + cs48, cs64, cs128, cs256, cs512, cs1024, + cs16384, spare2, spare1} DEFAULT cs16, + ... +} + +PDCP-Parameters-v1130 ::= SEQUENCE { + pdcp-SN-Extension-r11 ENUMERATED {supported} OPTIONAL, + supportRohcContextContinue-r11 ENUMERATED {supported} OPTIONAL +} + +PDCP-Parameters-v1310 ::= SEQUENCE { + pdcp-SN-Extension-18bits-r13 ENUMERATED {supported} OPTIONAL +} + +PDCP-Parameters-v1430 ::= SEQUENCE { + supportedUplinkOnlyROHC-Profiles-r14 SEQUENCE { + profile0x0006-r14 BOOLEAN + }, + maxNumberROHC-ContextSessions-r14 ENUMERATED { + cs2, cs4, cs8, cs12, cs16, cs24, cs32, + cs48, cs64, cs128, cs256, cs512, cs1024, + cs16384, spare2, spare1} DEFAULT cs16 +} + +PhyLayerParameters ::= SEQUENCE { + ue-TxAntennaSelectionSupported BOOLEAN, + ue-SpecificRefSigsSupported BOOLEAN +} + +PhyLayerParameters-v920 ::= SEQUENCE { + enhancedDualLayerFDD-r9 ENUMERATED {supported} OPTIONAL, + enhancedDualLayerTDD-r9 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v9d0 ::= SEQUENCE { + tm5-FDD-r9 ENUMERATED {supported} OPTIONAL, + tm5-TDD-r9 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1020 ::= SEQUENCE { + twoAntennaPortsForPUCCH-r10 ENUMERATED {supported} OPTIONAL, + tm9-With-8Tx-FDD-r10 ENUMERATED {supported} OPTIONAL, + pmi-Disabling-r10 ENUMERATED {supported} OPTIONAL, + crossCarrierScheduling-r10 ENUMERATED {supported} OPTIONAL, + simultaneousPUCCH-PUSCH-r10 ENUMERATED {supported} OPTIONAL, + multiClusterPUSCH-WithinCC-r10 ENUMERATED {supported} OPTIONAL, + nonContiguousUL-RA-WithinCC-List-r10 NonContiguousUL-RA-WithinCC-List-r10 OPTIONAL +} + +PhyLayerParameters-v1130 ::= SEQUENCE { + crs-InterfHandl-r11 ENUMERATED {supported} OPTIONAL, + ePDCCH-r11 ENUMERATED {supported} OPTIONAL, + multiACK-CSI-Reporting-r11 ENUMERATED {supported} OPTIONAL, + ss-CCH-InterfHandl-r11 ENUMERATED {supported} OPTIONAL, + tdd-SpecialSubframe-r11 ENUMERATED {supported} OPTIONAL, + txDiv-PUCCH1b-ChSelect-r11 ENUMERATED {supported} OPTIONAL, + ul-CoMP-r11 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1170 ::= SEQUENCE { + interBandTDD-CA-WithDifferentConfig-r11 BIT STRING (SIZE (2)) OPTIONAL +} + +PhyLayerParameters-v1250 ::= SEQUENCE { + e-HARQ-Pattern-FDD-r12 ENUMERATED {supported} OPTIONAL, + enhanced-4TxCodebook-r12 ENUMERATED {supported} OPTIONAL, + tdd-FDD-CA-PCellDuplex-r12 BIT STRING (SIZE (2)) OPTIONAL, + phy-TDD-ReConfig-TDD-PCell-r12 ENUMERATED {supported} OPTIONAL, + phy-TDD-ReConfig-FDD-PCell-r12 ENUMERATED {supported} OPTIONAL, + pusch-FeedbackMode-r12 ENUMERATED {supported} OPTIONAL, + pusch-SRS-PowerControl-SubframeSet-r12 ENUMERATED {supported} OPTIONAL, + csi-SubframeSet-r12 ENUMERATED {supported} OPTIONAL, + noResourceRestrictionForTTIBundling-r12 ENUMERATED {supported} OPTIONAL, + discoverySignalsInDeactSCell-r12 ENUMERATED {supported} OPTIONAL, + naics-Capability-List-r12 NAICS-Capability-List-r12 OPTIONAL +} + +PhyLayerParameters-v1280 ::= SEQUENCE { + alternativeTBS-Indices-r12 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1310 ::= SEQUENCE { + aperiodicCSI-Reporting-r13 BIT STRING (SIZE (2)) OPTIONAL, + codebook-HARQ-ACK-r13 BIT STRING (SIZE (2)) OPTIONAL, + crossCarrierScheduling-B5C-r13 ENUMERATED {supported} OPTIONAL, + fdd-HARQ-TimingTDD-r13 ENUMERATED {supported} OPTIONAL, + maxNumberUpdatedCSI-Proc-r13 INTEGER(5..32) OPTIONAL, + pucch-Format4-r13 ENUMERATED {supported} OPTIONAL, + pucch-Format5-r13 ENUMERATED {supported} OPTIONAL, + pucch-SCell-r13 ENUMERATED {supported} OPTIONAL, + spatialBundling-HARQ-ACK-r13 ENUMERATED {supported} OPTIONAL, + supportedBlindDecoding-r13 SEQUENCE { + maxNumberDecoding-r13 INTEGER(1..32) OPTIONAL, + pdcch-CandidateReductions-r13 ENUMERATED {supported} OPTIONAL, + skipMonitoringDCI-Format0-1A-r13 ENUMERATED {supported} OPTIONAL + } OPTIONAL, + uci-PUSCH-Ext-r13 ENUMERATED {supported} OPTIONAL, + crs-InterfMitigationTM10-r13 ENUMERATED {supported} OPTIONAL, + pdsch-CollisionHandling-r13 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v1320 ::= SEQUENCE { + mimo-UE-Parameters-r13 MIMO-UE-Parameters-r13 OPTIONAL +} + +PhyLayerParameters-v1330 ::= SEQUENCE { + cch-InterfMitigation-RefRecTypeA-r13 ENUMERATED {supported} OPTIONAL, + cch-InterfMitigation-RefRecTypeB-r13 ENUMERATED {supported} OPTIONAL, + cch-InterfMitigation-MaxNumCCs-r13 INTEGER (1.. maxServCell-r13) OPTIONAL, + crs-InterfMitigationTM1toTM9-r13 INTEGER (1.. maxServCell-r13) OPTIONAL +} + +PhyLayerParameters-v1430 ::= SEQUENCE { + ce-PUSCH-NB-MaxTBS-r14 ENUMERATED {supported} OPTIONAL, + ce-PDSCH-PUSCH-MaxBandwidth-r14 ENUMERATED {bw5, bw20} OPTIONAL, + ce-HARQ-AckBundling-r14 ENUMERATED {supported} OPTIONAL, + ce-PDSCH-TenProcesses-r14 ENUMERATED {supported} OPTIONAL, + ce-RetuningSymbols-r14 ENUMERATED {n0, n1} OPTIONAL, + ce-PDSCH-PUSCH-Enhancement-r14 ENUMERATED {supported} OPTIONAL, + ce-SchedulingEnhancement-r14 ENUMERATED {supported} OPTIONAL, + ce-SRS-Enhancement-r14 ENUMERATED {supported} OPTIONAL, + ce-PUCCH-Enhancement-r14 ENUMERATED {supported} OPTIONAL, + ce-ClosedLoopTxAntennaSelection-r14 ENUMERATED {supported} OPTIONAL, + tdd-SpecialSubframe-r14 ENUMERATED {supported} OPTIONAL, + tdd-TTI-Bundling-r14 ENUMERATED {supported} OPTIONAL, + dmrs-LessUpPTS-r14 ENUMERATED {supported} OPTIONAL, + mimo-UE-Parameters-v1430 MIMO-UE-Parameters-v1430 OPTIONAL, + alternativeTBS-Index-r14 ENUMERATED {supported} OPTIONAL, + feMBMS-Unicast-Parameters-r14 FeMBMS-Unicast-Parameters-r14 OPTIONAL +} + +PhyLayerParameters-v1450 ::= SEQUENCE { + ce-SRS-EnhancementWithoutComb4-r14 ENUMERATED {supported} OPTIONAL, + crs-LessDwPTS-r14 ENUMERATED {supported} OPTIONAL} + +PhyLayerParameters-v1470 ::= SEQUENCE { + mimo-UE-Parameters-v1470 MIMO-UE-Parameters-v1470 OPTIONAL, + srs-UpPTS-6sym-r14 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-Parameters-r13 ::= SEQUENCE { + parametersTM9-r13 MIMO-UE-ParametersPerTM-r13 OPTIONAL, + parametersTM10-r13 MIMO-UE-ParametersPerTM-r13 OPTIONAL, + srs-EnhancementsTDD-r13 ENUMERATED {supported} OPTIONAL, + srs-Enhancements-r13 ENUMERATED {supported} OPTIONAL, + interferenceMeasRestriction-r13 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-Parameters-v1430 ::= SEQUENCE { + parametersTM9-v1430 MIMO-UE-ParametersPerTM-v1430 OPTIONAL, + parametersTM10-v1430 MIMO-UE-ParametersPerTM-v1430 OPTIONAL +} + +MIMO-UE-Parameters-v1470 ::= SEQUENCE { + parametersTM9-v1470 MIMO-UE-ParametersPerTM-v1470, + parametersTM10-v1470 MIMO-UE-ParametersPerTM-v1470 +} + +MIMO-UE-ParametersPerTM-r13 ::= SEQUENCE { + nonPrecoded-r13 MIMO-NonPrecodedCapabilities-r13 OPTIONAL, + beamformed-r13 MIMO-UE-BeamformedCapabilities-r13 OPTIONAL, + channelMeasRestriction-r13 ENUMERATED {supported} OPTIONAL, + dmrs-Enhancements-r13 ENUMERATED {supported} OPTIONAL, + csi-RS-EnhancementsTDD-r13 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-ParametersPerTM-v1430 ::= SEQUENCE { + nzp-CSI-RS-AperiodicInfo-r14 SEQUENCE { + nMaxProc-r14 INTEGER(5..32), + nMaxResource-r14 ENUMERATED {ffs1, ffs2, ffs3, ffs4} + } OPTIONAL, + nzp-CSI-RS-PeriodicInfo-r14 SEQUENCE { + nMaxResource-r14 ENUMERATED {ffs1, ffs2, ffs3, ffs4} + } OPTIONAL, + zp-CSI-RS-AperiodicInfo-r14 ENUMERATED {supported} OPTIONAL, + ul-dmrs-Enhancements-r14 ENUMERATED {supported} OPTIONAL, + densityReductionNP-r14 ENUMERATED {supported} OPTIONAL, + densityReductionBF-r14 ENUMERATED {supported} OPTIONAL, + hybridCSI-r14 ENUMERATED {supported} OPTIONAL, + semiOL-r14 ENUMERATED {supported} OPTIONAL, + csi-ReportingNP-r14 ENUMERATED {supported} OPTIONAL, + csi-ReportingAdvanced-r14 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-ParametersPerTM-v1470 ::= SEQUENCE { + csi-ReportingAdvancedMaxPorts-r14 ENUMERATED {n8, n12, n16, n20, n24, n28} OPTIONAL +} + +MIMO-CA-ParametersPerBoBC-r13 ::= SEQUENCE { + parametersTM9-r13 MIMO-CA-ParametersPerBoBCPerTM-r13 OPTIONAL, + parametersTM10-r13 MIMO-CA-ParametersPerBoBCPerTM-r13 OPTIONAL +} + +MIMO-CA-ParametersPerBoBC-r15 ::= SEQUENCE { + parametersTM9-r15 MIMO-CA-ParametersPerBoBCPerTM-r15 OPTIONAL, + parametersTM10-r15 MIMO-CA-ParametersPerBoBCPerTM-r15 OPTIONAL +} + +MIMO-CA-ParametersPerBoBC-v1430 ::= SEQUENCE { + parametersTM9-v1430 MIMO-CA-ParametersPerBoBCPerTM-v1430 OPTIONAL, + parametersTM10-v1430 MIMO-CA-ParametersPerBoBCPerTM-v1430 OPTIONAL +} + +MIMO-CA-ParametersPerBoBC-v1470 ::= SEQUENCE { + parametersTM9-v1470 MIMO-CA-ParametersPerBoBCPerTM-v1470 , + parametersTM10-v1470 MIMO-CA-ParametersPerBoBCPerTM-v1470 +} + +MIMO-CA-ParametersPerBoBCPerTM-r13 ::= SEQUENCE { + nonPrecoded-r13 MIMO-NonPrecodedCapabilities-r13 OPTIONAL, + beamformed-r13 MIMO-BeamformedCapabilityList-r13 OPTIONAL, + dmrs-Enhancements-r13 ENUMERATED {different} OPTIONAL +} + +MIMO-CA-ParametersPerBoBCPerTM-v1430 ::= SEQUENCE { + csi-ReportingNP-r14 ENUMERATED {different} OPTIONAL, + csi-ReportingAdvanced-r14 ENUMERATED {different} OPTIONAL +} + +MIMO-CA-ParametersPerBoBCPerTM-v1470 ::= SEQUENCE { + csi-ReportingAdvancedMaxPorts-r14 ENUMERATED {n8, n12, n16, n20, n24, n28} OPTIONAL +} + +MIMO-CA-ParametersPerBoBCPerTM-r15 ::= SEQUENCE { + nonPrecoded-r13 MIMO-NonPrecodedCapabilities-r13 OPTIONAL, + beamformed-r13 MIMO-BeamformedCapabilityList-r13 OPTIONAL, + dmrs-Enhancements-r13 ENUMERATED {different} OPTIONAL, + csi-ReportingNP-r14 ENUMERATED {different} OPTIONAL, + csi-ReportingAdvanced-r14 ENUMERATED {different} OPTIONAL +} + +MIMO-NonPrecodedCapabilities-r13 ::= SEQUENCE { + config1-r13 ENUMERATED {supported} OPTIONAL, + config2-r13 ENUMERATED {supported} OPTIONAL, + config3-r13 ENUMERATED {supported} OPTIONAL, + config4-r13 ENUMERATED {supported} OPTIONAL +} + +MIMO-UE-BeamformedCapabilities-r13 ::= SEQUENCE { + altCodebook-r13 ENUMERATED {supported} OPTIONAL, + mimo-BeamformedCapabilities-r13 MIMO-BeamformedCapabilityList-r13 +} + +MIMO-BeamformedCapabilityList-r13 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF MIMO-BeamformedCapabilities-r13 + +MIMO-BeamformedCapabilities-r13 ::= SEQUENCE { + k-Max-r13 INTEGER (1..8), + n-MaxList-r13 BIT STRING (SIZE (1..7)) OPTIONAL + } + +NonContiguousUL-RA-WithinCC-List-r10 ::= SEQUENCE (SIZE (1..maxBands)) OF NonContiguousUL-RA-WithinCC-r10 + +NonContiguousUL-RA-WithinCC-r10 ::= SEQUENCE { + nonContiguousUL-RA-WithinCC-Info-r10 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters ::= SEQUENCE { + supportedBandListEUTRA SupportedBandListEUTRA +} + +RF-Parameters-v9e0 ::= SEQUENCE { + supportedBandListEUTRA-v9e0 SupportedBandListEUTRA-v9e0 OPTIONAL +} + +RF-Parameters-v1020 ::= SEQUENCE { + supportedBandCombination-r10 SupportedBandCombination-r10 +} + +RF-Parameters-v1060 ::= SEQUENCE { + supportedBandCombinationExt-r10 SupportedBandCombinationExt-r10 +} + +RF-Parameters-v1090 ::= SEQUENCE { + supportedBandCombination-v1090 SupportedBandCombination-v1090 OPTIONAL +} + +RF-Parameters-v10f0 ::= SEQUENCE { + modifiedMPR-Behavior-r10 BIT STRING (SIZE (32)) OPTIONAL +} + +RF-Parameters-v10i0 ::= SEQUENCE { + supportedBandCombination-v10i0 SupportedBandCombination-v10i0 OPTIONAL +} + +RF-Parameters-v10j0 ::= SEQUENCE { + multiNS-Pmax-r10 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1130 ::= SEQUENCE { + supportedBandCombination-v1130 SupportedBandCombination-v1130 OPTIONAL +} + +RF-Parameters-v1180 ::= SEQUENCE { + freqBandRetrieval-r11 ENUMERATED {supported} OPTIONAL, + requestedBands-r11 SEQUENCE (SIZE (1.. maxBands)) OF FreqBandIndicator-r11 OPTIONAL, + supportedBandCombinationAdd-r11 SupportedBandCombinationAdd-r11 OPTIONAL +} + +RF-Parameters-v11d0 ::= SEQUENCE { + supportedBandCombinationAdd-v11d0 SupportedBandCombinationAdd-v11d0 OPTIONAL +} + +RF-Parameters-v1250 ::= SEQUENCE { + supportedBandListEUTRA-v1250 SupportedBandListEUTRA-v1250 OPTIONAL, + supportedBandCombination-v1250 SupportedBandCombination-v1250 OPTIONAL, + supportedBandCombinationAdd-v1250 SupportedBandCombinationAdd-v1250 OPTIONAL, + freqBandPriorityAdjustment-r12 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1270 ::= SEQUENCE { + supportedBandCombination-v1270 SupportedBandCombination-v1270 OPTIONAL, + supportedBandCombinationAdd-v1270 SupportedBandCombinationAdd-v1270 OPTIONAL +} + +RF-Parameters-v1310 ::= SEQUENCE { + eNB-RequestedParameters-r13 SEQUENCE { + reducedIntNonContCombRequested-r13 ENUMERATED {true} OPTIONAL, + requestedCCsDL-r13 INTEGER (2..32) OPTIONAL, + requestedCCsUL-r13 INTEGER (2..32) OPTIONAL, + skipFallbackCombRequested-r13 ENUMERATED {true} OPTIONAL + } OPTIONAL, + maximumCCsRetrieval-r13 ENUMERATED {supported} OPTIONAL, + skipFallbackCombinations-r13 ENUMERATED {supported} OPTIONAL, + reducedIntNonContComb-r13 ENUMERATED {supported} OPTIONAL, + supportedBandListEUTRA-v1310 SupportedBandListEUTRA-v1310 OPTIONAL, + supportedBandCombinationReduced-r13 SupportedBandCombinationReduced-r13 OPTIONAL +} + +RF-Parameters-v1320 ::= SEQUENCE { + supportedBandListEUTRA-v1320 SupportedBandListEUTRA-v1320 OPTIONAL, + supportedBandCombination-v1320 SupportedBandCombination-v1320 OPTIONAL, + supportedBandCombinationAdd-v1320 SupportedBandCombinationAdd-v1320 OPTIONAL, + supportedBandCombinationReduced-v1320 SupportedBandCombinationReduced-v1320 OPTIONAL +} + +RF-Parameters-v1380 ::= SEQUENCE { + supportedBandCombination-v1380 SupportedBandCombination-v1380 OPTIONAL, + supportedBandCombinationAdd-v1380 SupportedBandCombinationAdd-v1380 OPTIONAL, + supportedBandCombinationReduced-v1380 SupportedBandCombinationReduced-v1380 OPTIONAL +} + +RF-Parameters-v1390 ::= SEQUENCE { + supportedBandCombination-v1390 SupportedBandCombination-v1390 OPTIONAL, + supportedBandCombinationAdd-v1390 SupportedBandCombinationAdd-v1390 OPTIONAL, + supportedBandCombinationReduced-v1390 SupportedBandCombinationReduced-v1390 OPTIONAL +} + +RF-Parameters-v12b0 ::= SEQUENCE { + maxLayersMIMO-Indication-r12 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1430 ::= SEQUENCE { + supportedBandCombination-v1430 SupportedBandCombination-v1430 OPTIONAL, + supportedBandCombinationAdd-v1430 SupportedBandCombinationAdd-v1430 OPTIONAL, + supportedBandCombinationReduced-v1430 SupportedBandCombinationReduced-v1430 OPTIONAL, + eNB-RequestedParameters-v1430 SEQUENCE { + requestedDiffFallbackCombList-r14 BandCombinationList-r14 + } OPTIONAL, + diffFallbackCombReport-r14 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-v1450 ::= SEQUENCE { + supportedBandCombination-v1450 SupportedBandCombination-v1450 OPTIONAL, + supportedBandCombinationAdd-v1450 SupportedBandCombinationAdd-v1450 OPTIONAL, + supportedBandCombinationReduced-v1450 SupportedBandCombinationReduced-v1450 OPTIONAL +} + +RF-Parameters-v1470 ::= SEQUENCE { + supportedBandCombination-v1470 SupportedBandCombination-v1470 OPTIONAL, + supportedBandCombinationAdd-v1470 SupportedBandCombinationAdd-v1470 OPTIONAL, + supportedBandCombinationReduced-v1470 SupportedBandCombinationReduced-v1470 OPTIONAL +} + +SupportedBandCombination-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-r10 + +SupportedBandCombinationExt-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParametersExt-r10 + +SupportedBandCombination-v1090 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1090 + +SupportedBandCombination-v10i0 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v10i0 + +SupportedBandCombination-v1130 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1130 + +SupportedBandCombination-v1250 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1250 + +SupportedBandCombination-v1270 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1270 + +SupportedBandCombination-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1320 + +SupportedBandCombination-v1380 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1380 + +SupportedBandCombination-v1390 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1390 + +SupportedBandCombination-v1430 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1430 + +SupportedBandCombination-v1450 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1450 + +SupportedBandCombination-v1470 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1470 + +SupportedBandCombinationAdd-r11 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-r11 + +SupportedBandCombinationAdd-v11d0 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v10i0 + +SupportedBandCombinationAdd-v1250 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1250 + +SupportedBandCombinationAdd-v1270 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1270 + +SupportedBandCombinationAdd-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1320 + +SupportedBandCombinationAdd-v1380 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1380 + +SupportedBandCombinationAdd-v1390 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1390 + +SupportedBandCombinationAdd-v1430 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1430 + +SupportedBandCombinationAdd-v1450 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1450 + +SupportedBandCombinationAdd-v1470 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1470 + +SupportedBandCombinationReduced-r13 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-r13 + +SupportedBandCombinationReduced-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1320 + +SupportedBandCombinationReduced-v1380 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1380 + +SupportedBandCombinationReduced-v1390 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1390 + +SupportedBandCombinationReduced-v1430 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1430 + +SupportedBandCombinationReduced-v1450 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1450 + +SupportedBandCombinationReduced-v1470 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1470 + +BandCombinationParameters-r10 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r10 + +BandCombinationParametersExt-r10 ::= SEQUENCE { + supportedBandwidthCombinationSet-r10 SupportedBandwidthCombinationSet-r10 OPTIONAL +} + +BandCombinationParameters-v1090 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1090 + +BandCombinationParameters-v10i0::= SEQUENCE { + bandParameterList-v10i0 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v10i0 OPTIONAL +} + +BandCombinationParameters-v1130 ::= SEQUENCE { + multipleTimingAdvance-r11 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r11 ENUMERATED {supported} OPTIONAL, + bandParameterList-r11 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1130 OPTIONAL, + ... +} + +BandCombinationParameters-r11 ::= SEQUENCE { + bandParameterList-r11 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-r11, + supportedBandwidthCombinationSet-r11 SupportedBandwidthCombinationSet-r10 OPTIONAL, + multipleTimingAdvance-r11 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r11 ENUMERATED {supported} OPTIONAL, + bandInfoEUTRA-r11 BandInfoEUTRA, + ... +} + +BandCombinationParameters-v1250::= SEQUENCE { + dc-Support-r12 SEQUENCE { + asynchronous-r12 ENUMERATED {supported} OPTIONAL, + supportedCellGrouping-r12 CHOICE { + threeEntries-r12 BIT STRING (SIZE(3)), + fourEntries-r12 BIT STRING (SIZE(7)), + fiveEntries-r12 BIT STRING (SIZE(15)) + } OPTIONAL + } OPTIONAL, + supportedNAICS-2CRS-AP-r12 BIT STRING (SIZE (1..maxNAICS-Entries-r12)) OPTIONAL, + commSupportedBandsPerBC-r12 BIT STRING (SIZE (1.. maxBands)) OPTIONAL, + ... +} + +BandCombinationParameters-v1270 ::= SEQUENCE { + bandParameterList-v1270 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1270 OPTIONAL +} + +BandCombinationParameters-r13 ::= SEQUENCE { + differentFallbackSupported-r13 ENUMERATED {true} OPTIONAL, + bandParameterList-r13 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r13, + supportedBandwidthCombinationSet-r13 SupportedBandwidthCombinationSet-r10 OPTIONAL, + multipleTimingAdvance-r13 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r13 ENUMERATED {supported} OPTIONAL, + bandInfoEUTRA-r13 BandInfoEUTRA, + dc-Support-r13 SEQUENCE { + asynchronous-r13 ENUMERATED {supported} OPTIONAL, + supportedCellGrouping-r13 CHOICE { + threeEntries-r13 BIT STRING (SIZE(3)), + fourEntries-r13 BIT STRING (SIZE(7)), + fiveEntries-r13 BIT STRING (SIZE(15)) + } OPTIONAL + } OPTIONAL, + supportedNAICS-2CRS-AP-r13 BIT STRING (SIZE (1..maxNAICS-Entries-r12)) OPTIONAL, + commSupportedBandsPerBC-r13 BIT STRING (SIZE (1.. maxBands)) OPTIONAL +} + +BandCombinationParameters-v1320 ::= SEQUENCE { + bandParameterList-v1320 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1320 OPTIONAL, + additionalRx-Tx-PerformanceReq-r13 ENUMERATED {supported} OPTIONAL +} + +BandCombinationParameters-v1380 ::= SEQUENCE { + bandParameterList-v1380 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1380 OPTIONAL +} + +BandCombinationParameters-v1390 ::= SEQUENCE { + ue-CA-PowerClass-N-r13 ENUMERATED {class2} OPTIONAL +} + +BandCombinationParameters-v1430 ::= SEQUENCE { + bandParameterList-v1430 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1430 OPTIONAL, + v2x-SupportedTxBandCombListPerBC-r14 BIT STRING (SIZE (1.. maxBandComb-r13)) OPTIONAL, + v2x-SupportedRxBandCombListPerBC-r14 BIT STRING (SIZE (1.. maxBandComb-r13)) OPTIONAL +} + +BandCombinationParameters-v1450 ::= SEQUENCE { + bandParameterList-v1450 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1450 OPTIONAL +} + +BandCombinationParameters-v1470 ::= SEQUENCE { + bandParameterList-v1470 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1470 OPTIONAL, + srs-MaxSimultaneousCCs-r14 INTEGER (1..31) OPTIONAL +} + +-- If an additional band combination parameter is defined, which are supported for EN-DC, it shall be defined in the IE CA-ParametersEUTRA in TS 38.331 [82]. + +SupportedBandwidthCombinationSet-r10 ::= BIT STRING (SIZE (1..maxBandwidthCombSet-r10)) + +BandParameters-r10 ::= SEQUENCE { + bandEUTRA-r10 FreqBandIndicator, + bandParametersUL-r10 BandParametersUL-r10 OPTIONAL, + bandParametersDL-r10 BandParametersDL-r10 OPTIONAL +} + +BandParameters-v1090 ::= SEQUENCE { + bandEUTRA-v1090 FreqBandIndicator-v9e0 OPTIONAL, + ... +} + +BandParameters-v10i0::= SEQUENCE { + bandParametersDL-v10i0 SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-v10i0 +} + +BandParameters-v1130 ::= SEQUENCE { + supportedCSI-Proc-r11 ENUMERATED {n1, n3, n4} +} + +BandParameters-r11 ::= SEQUENCE { + bandEUTRA-r11 FreqBandIndicator-r11, + bandParametersUL-r11 BandParametersUL-r10 OPTIONAL, + bandParametersDL-r11 BandParametersDL-r10 OPTIONAL, + supportedCSI-Proc-r11 ENUMERATED {n1, n3, n4} OPTIONAL +} + +BandParameters-v1270 ::= SEQUENCE { + bandParametersDL-v1270 SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-v1270 +} + +BandParameters-r13 ::= SEQUENCE { + bandEUTRA-r13 FreqBandIndicator-r11, + bandParametersUL-r13 BandParametersUL-r13 OPTIONAL, + bandParametersDL-r13 BandParametersDL-r13 OPTIONAL, + supportedCSI-Proc-r13 ENUMERATED {n1, n3, n4} OPTIONAL +} + +BandParameters-v1320 ::= SEQUENCE { + bandParametersDL-v1320 MIMO-CA-ParametersPerBoBC-r13 +} + +BandParameters-v1380 ::= SEQUENCE { + txAntennaSwitchDL-r13 INTEGER (1..32) OPTIONAL, + txAntennaSwitchUL-r13 INTEGER (1..32) OPTIONAL +} + +BandParameters-v1430 ::= SEQUENCE { + bandParametersDL-v1430 MIMO-CA-ParametersPerBoBC-v1430 OPTIONAL, + ul-256QAM-r14 ENUMERATED {supported} OPTIONAL, + ul-256QAM-perCC-InfoList-r14 SEQUENCE (SIZE (2..maxServCell-r13)) OF UL-256QAM-perCC-Info-r14 OPTIONAL, + retuningTimeInfoBandList-r14 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + RetuningTimeInfo-r14 OPTIONAL +} + +BandParameters-v1450 ::= SEQUENCE { + must-CapabilityPerBand-r14 MUST-Parameters-r14 OPTIONAL +} + +BandParameters-v1470 ::= SEQUENCE { + bandParametersDL-v1470 MIMO-CA-ParametersPerBoBC-v1470 OPTIONAL +} + +V2X-BandParameters-r14 ::= SEQUENCE { + v2x-FreqBandEUTRA-r14 FreqBandIndicator-r11, + bandParametersTxSL-r14 BandParametersTxSL-r14 OPTIONAL, + bandParametersRxSL-r14 BandParametersRxSL-r14 OPTIONAL +} + +BandParametersTxSL-r14 ::= SEQUENCE { + v2x-BandwidthClassTxSL-r14 V2X-BandwidthClassSL-r14, + v2x-eNB-Scheduled-r14 ENUMERATED {supported} OPTIONAL, + v2x-HighPower-r14 ENUMERATED {supported} OPTIONAL +} + +BandParametersRxSL-r14 ::= SEQUENCE { + v2x-BandwidthClassRxSL-r14 V2X-BandwidthClassSL-r14, + v2x-HighReception-r14 ENUMERATED {supported} OPTIONAL +} + +V2X-BandwidthClassSL-r14 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF V2X-BandwidthClass-r14 + +UL-256QAM-perCC-Info-r14 ::= SEQUENCE { + ul-256QAM-perCC-r14 ENUMERATED {supported} OPTIONAL +} + +FeatureSetDL-r15 ::= SEQUENCE { + mimo-CA-ParametersPerBoBC-r15 MIMO-CA-ParametersPerBoBC-r15 OPTIONAL, + featureSetPerCC-ListDL-r15 SEQUENCE (SIZE (1..maxServCell-r13)) OF FeatureSetDL-PerCC-Id-r15 +} + +FeatureSetDL-PerCC-r15 ::= SEQUENCE { + fourLayerTM3-TM4-r15 ENUMERATED {supported} OPTIONAL, + supportedMIMO-CapabilityDL-r15 MIMO-CapabilityDL-r10 OPTIONAL, + supportedCSI-Proc-r15 ENUMERATED {n1, n3, n4} OPTIONAL +} + +FeatureSetUL-r15 ::= SEQUENCE { + featureSetPerCC-ListUL-r15 SEQUENCE (SIZE(1..maxServCell-r13)) OF FeatureSetUL-PerCC-Id-r15 +} + +FeatureSetUL-PerCC-r15 ::= SEQUENCE { + supportedMIMO-CapabilityUL-r15 MIMO-CapabilityUL-r10 OPTIONAL, + ul-256QAM-r15 ENUMERATED {supported} OPTIONAL +} + +FeatureSetDL-PerCC-Id-r15 ::= INTEGER (0..maxPerCC-FeatureSets-r15) + +FeatureSetUL-PerCC-Id-r15 ::= INTEGER (0..maxPerCC-FeatureSets-r15) + +BandParametersUL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersUL-r10 + +BandParametersUL-r13 ::= CA-MIMO-ParametersUL-r10 + +CA-MIMO-ParametersUL-r10 ::= SEQUENCE { + ca-BandwidthClassUL-r10 CA-BandwidthClass-r10, + supportedMIMO-CapabilityUL-r10 MIMO-CapabilityUL-r10 OPTIONAL +} + +BandParametersDL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-r10 + +BandParametersDL-r13 ::= CA-MIMO-ParametersDL-r13 + +CA-MIMO-ParametersDL-r10 ::= SEQUENCE { + ca-BandwidthClassDL-r10 CA-BandwidthClass-r10, + supportedMIMO-CapabilityDL-r10 MIMO-CapabilityDL-r10 OPTIONAL +} + +CA-MIMO-ParametersDL-v10i0 ::= SEQUENCE { + fourLayerTM3-TM4-r10 ENUMERATED {supported} OPTIONAL +} + +CA-MIMO-ParametersDL-v1270 ::= SEQUENCE { + intraBandContiguousCC-InfoList-r12 SEQUENCE (SIZE (1..maxServCell-r10)) OF IntraBandContiguousCC-Info-r12 +} + +CA-MIMO-ParametersDL-r13 ::= SEQUENCE { + ca-BandwidthClassDL-r13 CA-BandwidthClass-r10, + supportedMIMO-CapabilityDL-r13 MIMO-CapabilityDL-r10 OPTIONAL, + fourLayerTM3-TM4-r13 ENUMERATED {supported} OPTIONAL, + intraBandContiguousCC-InfoList-r13 SEQUENCE (SIZE (1..maxServCell-r13)) OF IntraBandContiguousCC-Info-r12 +} + +IntraBandContiguousCC-Info-r12 ::= SEQUENCE { + fourLayerTM3-TM4-perCC-r12 ENUMERATED {supported} OPTIONAL, + supportedMIMO-CapabilityDL-r12 MIMO-CapabilityDL-r10 OPTIONAL, + supportedCSI-Proc-r12 ENUMERATED {n1, n3, n4} OPTIONAL +} + +CA-BandwidthClass-r10 ::= ENUMERATED {a, b, c, d, e, f, ...} + +V2X-BandwidthClass-r14 ::= ENUMERATED {a, b, c, d, e, f, ...} + +MIMO-CapabilityUL-r10 ::= ENUMERATED {twoLayers, fourLayers} + +MIMO-CapabilityDL-r10 ::= ENUMERATED {twoLayers, fourLayers, eightLayers} + +MUST-Parameters-r14 ::= SEQUENCE { + must-TM234-UpTo2Tx-r14 ENUMERATED {supported} OPTIONAL, + must-TM89-UpToOneInterferingLayer-r14 ENUMERATED {supported} OPTIONAL, + must-TM10-UpToOneInterferingLayer-r14 ENUMERATED {supported} OPTIONAL, + must-TM89-UpToThreeInterferingLayers-r14 ENUMERATED {supported} OPTIONAL, + must-TM10-UpToThreeInterferingLayers-r14 ENUMERATED {supported} OPTIONAL +} + +SupportedBandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA + +SupportedBandListEUTRA-v9e0::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v9e0 + +SupportedBandListEUTRA-v1250 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1250 + +SupportedBandListEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1310 + +SupportedBandListEUTRA-v1320 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1320 + +SupportedBandEUTRA ::= SEQUENCE { + bandEUTRA FreqBandIndicator, + halfDuplex BOOLEAN +} + +SupportedBandEUTRA-v9e0 ::= SEQUENCE { + bandEUTRA-v9e0 FreqBandIndicator-v9e0 OPTIONAL +} + +SupportedBandEUTRA-v1250 ::= SEQUENCE { + dl-256QAM-r12 ENUMERATED {supported} OPTIONAL, + ul-64QAM-r12 ENUMERATED {supported} OPTIONAL +} + +SupportedBandEUTRA-v1310 ::= SEQUENCE { + ue-PowerClass-5-r13 ENUMERATED {supported} OPTIONAL +} +SupportedBandEUTRA-v1320 ::= SEQUENCE { + intraFreq-CE-NeedForGaps-r13 ENUMERATED {supported} OPTIONAL, + ue-PowerClass-N-r13 ENUMERATED {class1, class2, class4} OPTIONAL +} + +MeasParameters ::= SEQUENCE { + bandListEUTRA BandListEUTRA +} + +MeasParameters-v1020 ::= SEQUENCE { + bandCombinationListEUTRA-r10 BandCombinationListEUTRA-r10 +} + +MeasParameters-v1130 ::= SEQUENCE { + rsrqMeasWideband-r11 ENUMERATED {supported} OPTIONAL +} + +MeasParameters-v11a0 ::= SEQUENCE { + benefitsFromInterruption-r11 ENUMERATED {true} OPTIONAL +} + +MeasParameters-v1250 ::= SEQUENCE { + timerT312-r12 ENUMERATED {supported} OPTIONAL, + alternativeTimeToTrigger-r12 ENUMERATED {supported} OPTIONAL, + incMonEUTRA-r12 ENUMERATED {supported} OPTIONAL, + incMonUTRA-r12 ENUMERATED {supported} OPTIONAL, + extendedMaxMeasId-r12 ENUMERATED {supported} OPTIONAL, + extendedRSRQ-LowerRange-r12 ENUMERATED {supported} OPTIONAL, + rsrq-OnAllSymbols-r12 ENUMERATED {supported} OPTIONAL, + crs-DiscoverySignalsMeas-r12 ENUMERATED {supported} OPTIONAL, + csi-RS-DiscoverySignalsMeas-r12 ENUMERATED {supported} OPTIONAL +} + +MeasParameters-v1310 ::= SEQUENCE { + rs-SINR-Meas-r13 ENUMERATED {supported} OPTIONAL, + whiteCellList-r13 ENUMERATED {supported} OPTIONAL, + extendedMaxObjectId-r13 ENUMERATED {supported} OPTIONAL, + ul-PDCP-Delay-r13 ENUMERATED {supported} OPTIONAL, + extendedFreqPriorities-r13 ENUMERATED {supported} OPTIONAL, + multiBandInfoReport-r13 ENUMERATED {supported} OPTIONAL, + rssi-AndChannelOccupancyReporting-r13 ENUMERATED {supported} OPTIONAL +} + +MeasParameters-v1430 ::= SEQUENCE { + ceMeasurements-r14 ENUMERATED {supported} OPTIONAL, + ncsg-r14 ENUMERATED {supported} OPTIONAL, + shortMeasurementGap-r14 ENUMERATED {supported} OPTIONAL, + perServingCellMeasurementGap-r14 ENUMERATED {supported} OPTIONAL, + nonUniformGap-r14 ENUMERATED {supported} OPTIONAL +} + +MeasParameters-v1520 ::= SEQUENCE { + measGapPatterns-v1520 BIT STRING (SIZE (8)) OPTIONAL +} + +BandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF BandInfoEUTRA + +BandCombinationListEUTRA-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandInfoEUTRA + +BandInfoEUTRA ::= SEQUENCE { + interFreqBandList InterFreqBandList, + interRAT-BandList InterRAT-BandList OPTIONAL +} + +InterFreqBandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterFreqBandInfo + +InterFreqBandInfo ::= SEQUENCE { + interFreqNeedForGaps BOOLEAN +} + +InterRAT-BandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterRAT-BandInfo + +InterRAT-BandInfo ::= SEQUENCE { + interRAT-NeedForGaps BOOLEAN +} + +IRAT-ParametersNR-r15 ::= SEQUENCE { + en-DC-r15 ENUMERATED {supported} OPTIONAL, + eventB2-r15 ENUMERATED {supported} OPTIONAL, + supportedBandListNR-r15 SupportedBandListNR-r15 OPTIONAL +} + +PDCP-ParametersNR-r15 ::= SEQUENCE { + rohc-Profiles-r15 ROHC-ProfileSupportList-r15, + rohc-ContextMaxSessions-r15 ENUMERATED { + cs2, cs4, cs8, cs12, cs16, cs24, cs32, + cs48, cs64, cs128, cs256, cs512, cs1024, + cs16384, spare2, spare1} DEFAULT cs16, + rohc-ProfilesUL-Only-r15 SEQUENCE { + profile0x0006-r15 BOOLEAN + }, + rohc-ContextContinue-r15 ENUMERATED {supported} OPTIONAL, + outOfOrderDelivery-r15 ENUMERATED {supported} OPTIONAL, + sn-SizeLo-r15 ENUMERATED {supported} OPTIONAL, + ims-VoiceOverNR-PDCP-MCG-Bearer-r15 ENUMERATED {supported} OPTIONAL, + ims-VoiceOverNR-PDCP-SCG-Bearer-r15 ENUMERATED {supported} OPTIONAL +} + +ROHC-ProfileSupportList-r15 ::= SEQUENCE { + profile0x0001-r15 BOOLEAN, + profile0x0002-r15 BOOLEAN, + profile0x0003-r15 BOOLEAN, + profile0x0004-r15 BOOLEAN, + profile0x0006-r15 BOOLEAN, + profile0x0101-r15 BOOLEAN, + profile0x0102-r15 BOOLEAN, + profile0x0103-r15 BOOLEAN, + profile0x0104-r15 BOOLEAN +} + +SupportedBandListNR-r15 ::= SEQUENCE (SIZE (1..maxBandsNR-r15)) OF SupportedBandNR-r15 + +SupportedBandNR-r15 ::= SEQUENCE { + bandNR-r15 FreqBandIndicatorNR-r15 +} + +FreqBandIndicatorNR-r15 ::= INTEGER (1.. maxFBI-NR-r15) + +IRAT-ParametersUTRA-FDD ::= SEQUENCE { + supportedBandListUTRA-FDD SupportedBandListUTRA-FDD +} + +IRAT-ParametersUTRA-v920 ::= SEQUENCE { + e-RedirectionUTRA-r9 ENUMERATED {supported} +} + +IRAT-ParametersUTRA-v9c0 ::= SEQUENCE { + voiceOverPS-HS-UTRA-FDD-r9 ENUMERATED {supported} OPTIONAL, + voiceOverPS-HS-UTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-FDD-ToUTRA-FDD-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-FDD-ToGERAN-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-TDD128-ToUTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-TDD128-ToGERAN-r9 ENUMERATED {supported} OPTIONAL +} + +IRAT-ParametersUTRA-v9h0 ::= SEQUENCE { + mfbi-UTRA-r9 ENUMERATED {supported} +} + +SupportedBandListUTRA-FDD ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-FDD + +SupportedBandUTRA-FDD ::= ENUMERATED { + bandI, bandII, bandIII, bandIV, bandV, bandVI, + bandVII, bandVIII, bandIX, bandX, bandXI, + bandXII, bandXIII, bandXIV, bandXV, bandXVI, ..., + bandXVII-8a0, bandXVIII-8a0, bandXIX-8a0, bandXX-8a0, + bandXXI-8a0, bandXXII-8a0, bandXXIII-8a0, bandXXIV-8a0, + bandXXV-8a0, bandXXVI-8a0, bandXXVII-8a0, bandXXVIII-8a0, + bandXXIX-8a0, bandXXX-8a0, bandXXXI-8a0, bandXXXII-8a0} + +IRAT-ParametersUTRA-TDD128 ::= SEQUENCE { + supportedBandListUTRA-TDD128 SupportedBandListUTRA-TDD128 +} + +SupportedBandListUTRA-TDD128 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD128 + +SupportedBandUTRA-TDD128 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD384 ::= SEQUENCE { + supportedBandListUTRA-TDD384 SupportedBandListUTRA-TDD384 +} + +SupportedBandListUTRA-TDD384 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD384 + +SupportedBandUTRA-TDD384 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD768 ::= SEQUENCE { + supportedBandListUTRA-TDD768 SupportedBandListUTRA-TDD768 +} + +SupportedBandListUTRA-TDD768 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD768 + +SupportedBandUTRA-TDD768 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD-v1020 ::= SEQUENCE { + e-RedirectionUTRA-TDD-r10 ENUMERATED {supported} +} + +IRAT-ParametersGERAN ::= SEQUENCE { + supportedBandListGERAN SupportedBandListGERAN, + interRAT-PS-HO-ToGERAN BOOLEAN +} + +IRAT-ParametersGERAN-v920 ::= SEQUENCE { + dtm-r9 ENUMERATED {supported} OPTIONAL, + e-RedirectionGERAN-r9 ENUMERATED {supported} OPTIONAL +} + +SupportedBandListGERAN ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandGERAN + +SupportedBandGERAN ::= ENUMERATED { + gsm450, gsm480, gsm710, gsm750, gsm810, gsm850, + gsm900P, gsm900E, gsm900R, gsm1800, gsm1900, + spare5, spare4, spare3, spare2, spare1, ...} + +IRAT-ParametersCDMA2000-HRPD ::= SEQUENCE { + supportedBandListHRPD SupportedBandListHRPD, + tx-ConfigHRPD ENUMERATED {single, dual}, + rx-ConfigHRPD ENUMERATED {single, dual} +} + +SupportedBandListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + +IRAT-ParametersCDMA2000-1XRTT ::= SEQUENCE { + supportedBandList1XRTT SupportedBandList1XRTT, + tx-Config1XRTT ENUMERATED {single, dual}, + rx-Config1XRTT ENUMERATED {single, dual} +} + +IRAT-ParametersCDMA2000-1XRTT-v920 ::= SEQUENCE { + e-CSFB-1XRTT-r9 ENUMERATED {supported}, + e-CSFB-ConcPS-Mob1XRTT-r9 ENUMERATED {supported} OPTIONAL +} + +IRAT-ParametersCDMA2000-1XRTT-v1020 ::= SEQUENCE { + e-CSFB-dual-1XRTT-r10 ENUMERATED {supported} +} + +IRAT-ParametersCDMA2000-v1130 ::= SEQUENCE { + cdma2000-NW-Sharing-r11 ENUMERATED {supported} OPTIONAL +} + +SupportedBandList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + +IRAT-ParametersWLAN-r13 ::= SEQUENCE { + supportedBandListWLAN-r13 SEQUENCE (SIZE (1..maxWLAN-Bands-r13)) OF WLAN-BandIndicator-r13 OPTIONAL +} + +CSG-ProximityIndicationParameters-r9 ::= SEQUENCE { + intraFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL, + interFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL, + utran-ProximityIndication-r9 ENUMERATED {supported} OPTIONAL +} + +NeighCellSI-AcquisitionParameters-r9 ::= SEQUENCE { + intraFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL, + interFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL, + utran-SI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL +} + +SON-Parameters-r9 ::= SEQUENCE { + rach-Report-r9 ENUMERATED {supported} OPTIONAL +} + +UE-BasedNetwPerfMeasParameters-r10 ::= SEQUENCE { + loggedMeasurementsIdle-r10 ENUMERATED {supported} OPTIONAL, + standaloneGNSS-Location-r10 ENUMERATED {supported} OPTIONAL +} + +UE-BasedNetwPerfMeasParameters-v1250 ::= SEQUENCE { + loggedMBSFNMeasurements-r12 ENUMERATED {supported} +} + +UE-BasedNetwPerfMeasParameters-v1430 ::= SEQUENCE { + locationReport-r14 ENUMERATED {supported} OPTIONAL +} + +OTDOA-PositioningCapabilities-r10 ::= SEQUENCE { + otdoa-UE-Assisted-r10 ENUMERATED {supported}, + interFreqRSTD-Measurement-r10 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-r11 ::= SEQUENCE { + inDeviceCoexInd-r11 ENUMERATED {supported} OPTIONAL, + powerPrefInd-r11 ENUMERATED {supported} OPTIONAL, + ue-Rx-TxTimeDiffMeasurements-r11 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v11d0 ::= SEQUENCE { + inDeviceCoexInd-UL-CA-r11 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v1360 ::= SEQUENCE { + inDeviceCoexInd-HardwareSharingInd-r13 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v1430 ::= SEQUENCE { + bwPrefInd-r14 ENUMERATED {supported} OPTIONAL, + rlm-ReportSupport-r14 ENUMERATED {supported} OPTIONAL +} + +OtherParameters-v1450 ::= SEQUENCE { + overheatingInd-r14 ENUMERATED {supported} OPTIONAL +} + +Other-Parameters-v1460 ::= SEQUENCE { + nonCSG-SI-Reporting-r14 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-r11 ::= SEQUENCE { + mbms-SCell-r11 ENUMERATED {supported} OPTIONAL, + mbms-NonServingCell-r11 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-v1250 ::= SEQUENCE { + mbms-AsyncDC-r12 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-v1430 ::= SEQUENCE { + fembmsDedicatedCell-r14 ENUMERATED {supported} OPTIONAL, + fembmsMixedCell-r14 ENUMERATED {supported} OPTIONAL, + subcarrierSpacingMBMS-khz7dot5-r14 ENUMERATED {supported} OPTIONAL, + subcarrierSpacingMBMS-khz1dot25-r14 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-v1470 ::= SEQUENCE { + mbms-MaxBW-r14 CHOICE { + implicitValue NULL, + explicitValue INTEGER(2..20) + }, + mbms-ScalingFactor1dot25-r14 ENUMERATED {n3, n6, n9, n12} OPTIONAL, + mbms-ScalingFactor7dot5-r14 ENUMERATED {n1, n2, n3, n4} OPTIONAL +} + +FeMBMS-Unicast-Parameters-r14 ::= SEQUENCE { + unicast-fembmsMixedSCell-r14 ENUMERATED {supported} OPTIONAL, + emptyUnicastRegion-r14 ENUMERATED {supported} OPTIONAL +} + +SCPTM-Parameters-r13 ::= SEQUENCE { + scptm-ParallelReception-r13 ENUMERATED {supported} OPTIONAL, + scptm-SCell-r13 ENUMERATED {supported} OPTIONAL, + scptm-NonServingCell-r13 ENUMERATED {supported} OPTIONAL, + scptm-AsyncDC-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-r13 ::= SEQUENCE { + ce-ModeA-r13 ENUMERATED {supported} OPTIONAL, + ce-ModeB-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1320 ::= SEQUENCE { + intraFreqA3-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL, + intraFreqA3-CE-ModeB-r13 ENUMERATED {supported} OPTIONAL, + intraFreqHO-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL, + intraFreqHO-CE-ModeB-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1350 ::= SEQUENCE { + unicastFrequencyHopping-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1370 ::= SEQUENCE { + tm9-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL, + tm9-CE-ModeB-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1380 ::= SEQUENCE { + tm6-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL +} + +CE-Parameters-v1430 ::= SEQUENCE { + ce-SwitchWithoutHO-r14 ENUMERATED {supported} OPTIONAL +} + +LAA-Parameters-r13 ::= SEQUENCE { + crossCarrierSchedulingLAA-DL-r13 ENUMERATED {supported} OPTIONAL, + csi-RS-DRS-RRM-MeasurementsLAA-r13 ENUMERATED {supported} OPTIONAL, + downlinkLAA-r13 ENUMERATED {supported} OPTIONAL, + endingDwPTS-r13 ENUMERATED {supported} OPTIONAL, + secondSlotStartingPosition-r13 ENUMERATED {supported} OPTIONAL, + tm9-LAA-r13 ENUMERATED {supported} OPTIONAL, + tm10-LAA-r13 ENUMERATED {supported} OPTIONAL +} + +LAA-Parameters-v1430 ::= SEQUENCE { + crossCarrierSchedulingLAA-UL-r14 ENUMERATED {supported} OPTIONAL, + uplinkLAA-r14 ENUMERATED {supported} OPTIONAL, + twoStepSchedulingTimingInfo-r14 ENUMERATED {nPlus1, nPlus2, nPlus3} OPTIONAL, + uss-BlindDecodingAdjustment-r14 ENUMERATED {supported} OPTIONAL, + uss-BlindDecodingReduction-r14 ENUMERATED {supported} OPTIONAL, + outOfSequenceGrantHandling-r14 ENUMERATED {supported} OPTIONAL +} + +WLAN-IW-Parameters-r12 ::= SEQUENCE { + wlan-IW-RAN-Rules-r12 ENUMERATED {supported} OPTIONAL, + wlan-IW-ANDSF-Policies-r12 ENUMERATED {supported} OPTIONAL +} + +LWA-Parameters-r13 ::= SEQUENCE { + lwa-r13 ENUMERATED {supported} OPTIONAL, + lwa-SplitBearer-r13 ENUMERATED {supported} OPTIONAL, + wlan-MAC-Address-r13 OCTET STRING (SIZE (6)) OPTIONAL, + lwa-BufferSize-r13 ENUMERATED {supported} OPTIONAL +} + +LWA-Parameters-v1430 ::= SEQUENCE { + lwa-HO-WithoutWT-Change-r14 ENUMERATED {supported} OPTIONAL, + lwa-UL-r14 ENUMERATED {supported} OPTIONAL, + wlan-PeriodicMeas-r14 ENUMERATED {supported} OPTIONAL, + wlan-ReportAnyWLAN-r14 ENUMERATED {supported} OPTIONAL, + wlan-SupportedDataRate-r14 INTEGER (1..2048) OPTIONAL +} + +LWA-Parameters-v1440 ::= SEQUENCE { + lwa-RLC-UM-r14 ENUMERATED {supported} OPTIONAL +} + +WLAN-IW-Parameters-v1310 ::= SEQUENCE { + rclwi-r13 ENUMERATED {supported} OPTIONAL +} + +LWIP-Parameters-r13 ::= SEQUENCE { + lwip-r13 ENUMERATED {supported} OPTIONAL +} + +LWIP-Parameters-v1430 ::= SEQUENCE { + lwip-Aggregation-DL-r14 ENUMERATED {supported} OPTIONAL, + lwip-Aggregation-UL-r14 ENUMERATED {supported} OPTIONAL +} + +NAICS-Capability-List-r12 ::= SEQUENCE (SIZE (1..maxNAICS-Entries-r12)) OF NAICS-Capability-Entry-r12 + + +NAICS-Capability-Entry-r12 ::= SEQUENCE { + numberOfNAICS-CapableCC-r12 INTEGER(1..5), + numberOfAggregatedPRB-r12 ENUMERATED { + n50, n75, n100, n125, n150, n175, + n200, n225, n250, n275, n300, n350, + n400, n450, n500, spare}, + ... +} + +SL-Parameters-r12 ::= SEQUENCE { + commSimultaneousTx-r12 ENUMERATED {supported} OPTIONAL, + commSupportedBands-r12 FreqBandIndicatorListEUTRA-r12 OPTIONAL, + discSupportedBands-r12 SupportedBandInfoList-r12 OPTIONAL, + discScheduledResourceAlloc-r12 ENUMERATED {supported} OPTIONAL, + disc-UE-SelectedResourceAlloc-r12 ENUMERATED {supported} OPTIONAL, + disc-SLSS-r12 ENUMERATED {supported} OPTIONAL, + discSupportedProc-r12 ENUMERATED {n50, n400} OPTIONAL +} + +SL-Parameters-v1310 ::= SEQUENCE { + discSysInfoReporting-r13 ENUMERATED {supported} OPTIONAL, + commMultipleTx-r13 ENUMERATED {supported} OPTIONAL, + discInterFreqTx-r13 ENUMERATED {supported} OPTIONAL, + discPeriodicSLSS-r13 ENUMERATED {supported} OPTIONAL +} + +SL-Parameters-v1430 ::= SEQUENCE { + zoneBasedPoolSelection-r14 ENUMERATED {supported} OPTIONAL, + ue-AutonomousWithFullSensing-r14 ENUMERATED {supported} OPTIONAL, + ue-AutonomousWithPartialSensing-r14 ENUMERATED {supported} OPTIONAL, + sl-CongestionControl-r14 ENUMERATED {supported} OPTIONAL, + v2x-TxWithShortResvInterval-r14 ENUMERATED {supported} OPTIONAL, + v2x-numberTxRxTiming-r14 INTEGER(1..16) OPTIONAL, + v2x-nonAdjacentPSCCH-PSSCH-r14 ENUMERATED {supported} OPTIONAL, + slss-TxRx-r14 ENUMERATED {supported} OPTIONAL, + v2x-SupportedBandCombinationList-r14 V2X-SupportedBandCombination-r14 OPTIONAL +} + +V2X-SupportedBandCombination-r14 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF V2X-BandCombinationParameters-r14 + +V2X-BandCombinationParameters-r14 ::= SEQUENCE (SIZE (1.. maxSimultaneousBands-r10)) OF V2X-BandParameters-r14 + +SupportedBandInfoList-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandInfo-r12 + +SupportedBandInfo-r12 ::= SEQUENCE { + support-r12 ENUMERATED {supported} OPTIONAL +} + +FreqBandIndicatorListEUTRA-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicator-r11 + +MMTEL-Parameters-r14 ::= SEQUENCE { + delayBudgetReporting-r14 ENUMERATED {supported} OPTIONAL, + pusch-Enhancements-r14 ENUMERATED {supported} OPTIONAL, + recommendedBitRate-r14 ENUMERATED {supported} OPTIONAL, + recommendedBitRateQuery-r14 ENUMERATED {supported} OPTIONAL +} + +RetuningTimeInfo-r14 ::= SEQUENCE { + retuningInfo SEQUENCE { + rf-RetuningTimeDL-r14 ENUMERATED {n0, n0dot5, n1, n1dot5, n2, n2dot5, n3, + n3dot5, n4, n4dot5, n5, n5dot5, n6, n6dot5, + n7, spare1} OPTIONAL, + rf-RetuningTimeUL-r14 ENUMERATED {n0, n0dot5, n1, n1dot5, n2, n2dot5, n3, + n3dot5, n4, n4dot5, n5, n5dot5, n6, n6dot5, + n7, spare1} OPTIONAL + } +} + +HighSpeedEnhParameters-r14 ::= SEQUENCE { + measurementEnhancements-r14 ENUMERATED {supported} OPTIONAL, + demodulationEnhancements-r14 ENUMERATED {supported} OPTIONAL, + prach-Enhancements-r14 ENUMERATED {supported} OPTIONAL +} + + +UE-RadioPagingInfo-r12 ::= SEQUENCE { + ue-Category-v1250 INTEGER (0) OPTIONAL, + ..., + [[ ue-CategoryDL-v1310 ENUMERATED {m1} OPTIONAL, + ce-ModeA-r13 ENUMERATED {true} OPTIONAL, + ce-ModeB-r13 ENUMERATED {true} OPTIONAL + ]] + +} + + +UE-TimersAndConstants ::= SEQUENCE { + t300 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t301 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t310 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n310 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ..., + [[ t300-v1310 ENUMERATED { + ms2500, ms3000, ms3500, ms4000, ms5000, ms6000, ms8000, + ms10000} OPTIONAL, -- Need OR + t301-v1310 ENUMERATED { + ms2500, ms3000, ms3500, ms4000, ms5000, ms6000, ms8000, + ms10000} OPTIONAL -- Need OR + ]], + [[ t310-v1330 ENUMERATED {ms4000, ms6000} + OPTIONAL -- Need OR + ]] +} + + +VisitedCellInfoList-r12 ::= SEQUENCE (SIZE (1..maxCellHistory-r12)) OF VisitedCellInfo-r12 + +VisitedCellInfo-r12 ::= SEQUENCE { + visitedCellId-r12 CHOICE { + cellGlobalId-r12 CellGlobalIdEUTRA, + pci-arfcn-r12 SEQUENCE { + physCellId-r12 PhysCellId, + carrierFreq-r12 ARFCN-ValueEUTRA-r9 + } + } OPTIONAL, + timeSpent-r12 INTEGER (0..4095), + ... +} + + +WLAN-OffloadConfig-r12 ::= SEQUENCE { + thresholdRSRP-r12 SEQUENCE { + thresholdRSRP-Low-r12 RSRP-Range, + thresholdRSRP-High-r12 RSRP-Range + } OPTIONAL, -- Need OR + thresholdRSRQ-r12 SEQUENCE { + thresholdRSRQ-Low-r12 RSRQ-Range, + thresholdRSRQ-High-r12 RSRQ-Range + } OPTIONAL, -- Need OR + thresholdRSRQ-OnAllSymbolsWithWB-r12 SEQUENCE { + thresholdRSRQ-OnAllSymbolsWithWB-Low-r12 RSRQ-Range, + thresholdRSRQ-OnAllSymbolsWithWB-High-r12 RSRQ-Range + } OPTIONAL, -- Need OP + thresholdRSRQ-OnAllSymbols-r12 SEQUENCE { + thresholdRSRQ-OnAllSymbolsLow-r12 RSRQ-Range, + thresholdRSRQ-OnAllSymbolsHigh-r12 RSRQ-Range + } OPTIONAL, -- Need OP + thresholdRSRQ-WB-r12 SEQUENCE { + thresholdRSRQ-WB-Low-r12 RSRQ-Range, + thresholdRSRQ-WB-High-r12 RSRQ-Range + } OPTIONAL, -- Need OP + + thresholdChannelUtilization-r12 SEQUENCE { + thresholdChannelUtilizationLow-r12 INTEGER (0..255), + thresholdChannelUtilizationHigh-r12 INTEGER (0..255) + } OPTIONAL, -- Need OR + thresholdBackhaul-Bandwidth-r12 SEQUENCE { + thresholdBackhaulDL-BandwidthLow-r12 WLAN-backhaulRate-r12, + thresholdBackhaulDL-BandwidthHigh-r12 WLAN-backhaulRate-r12, + thresholdBackhaulUL-BandwidthLow-r12 WLAN-backhaulRate-r12, + thresholdBackhaulUL-BandwidthHigh-r12 WLAN-backhaulRate-r12 + } OPTIONAL, -- Need OR + thresholdWLAN-RSSI-r12 SEQUENCE { + thresholdWLAN-RSSI-Low-r12 INTEGER (0..255), + thresholdWLAN-RSSI-High-r12 INTEGER (0..255) + } OPTIONAL, -- Need OR + offloadPreferenceIndicator-r12 BIT STRING (SIZE (16)) OPTIONAL, -- Need OR + t-SteeringWLAN-r12 T-Reselection OPTIONAL, -- Need OR + ... +} + +WLAN-backhaulRate-r12 ::= ENUMERATED + {r0, r4, r8, r16, r32, r64, r128, r256, r512, + r1024, r2048, r4096, r8192, r16384, r32768, r65536, r131072, + r262144, r524288, r1048576, r2097152, r4194304, r8388608, + r16777216, r33554432, r67108864, r134217728, r268435456, + r536870912, r1073741824, r2147483648, r4294967296} + + +MBMS-NotificationConfig-r9 ::= SEQUENCE { + notificationRepetitionCoeff-r9 ENUMERATED {n2, n4}, + notificationOffset-r9 INTEGER (0..10), + notificationSF-Index-r9 INTEGER (1..6) +} + +MBMS-NotificationConfig-v1430 ::= SEQUENCE { + notificationSF-Index-v1430 INTEGER (7..10) +} + + +MBMS-ServiceList-r13 ::= SEQUENCE (SIZE (0..maxMBMS-ServiceListPerUE-r13)) OF MBMS-ServiceInfo-r13 + +MBMS-ServiceInfo-r13 ::= SEQUENCE { + tmgi-r13 TMGI-r9 +} + + +MBSFN-AreaId-r12 ::= INTEGER (0..255) + + +MBSFN-AreaInfoList-r9 ::= SEQUENCE (SIZE(1..maxMBSFN-Area)) OF MBSFN-AreaInfo-r9 + +MBSFN-AreaInfo-r9 ::= SEQUENCE { + mbsfn-AreaId-r9 MBSFN-AreaId-r12, + non-MBSFNregionLength ENUMERATED {s1, s2}, + notificationIndicator-r9 INTEGER (0..7), + mcch-Config-r9 SEQUENCE { + mcch-RepetitionPeriod-r9 ENUMERATED {rf32, rf64, rf128, rf256}, + mcch-Offset-r9 INTEGER (0..10), + mcch-ModificationPeriod-r9 ENUMERATED {rf512, rf1024}, + sf-AllocInfo-r9 BIT STRING (SIZE(6)), + signallingMCS-r9 ENUMERATED {n2, n7, n13, n19} + }, + ..., + [[ mcch-Config-r14 SEQUENCE { + mcch-RepetitionPeriod-v1430 ENUMERATED {rf1, rf2, rf4, rf8, + rf16 } OPTIONAL, -- Need OR + mcch-ModificationPeriod-v1430 ENUMERATED {rf1, rf2, rf4, rf8, rf16, rf32, rf64, rf128, + rf256, spare7} OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + subcarrierSpacingMBMS-r14 ENUMERATED {khz-7dot5, khz-1dot25} OPTIONAL -- Need OR + ]] +} + + +MBSFN-SubframeConfig ::= SEQUENCE { + radioframeAllocationPeriod ENUMERATED {n1, n2, n4, n8, n16, n32}, + radioframeAllocationOffset INTEGER (0..7), + subframeAllocation CHOICE { + oneFrame BIT STRING (SIZE(6)), + fourFrames BIT STRING (SIZE(24)) + } +} + +MBSFN-SubframeConfig-v1430 ::= SEQUENCE { + subframeAllocation-v1430 CHOICE { + oneFrame-v1430 BIT STRING (SIZE(2)), + fourFrames-v1430 BIT STRING (SIZE(8)) + } +} + + +PMCH-InfoList-r9 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-Info-r9 + +PMCH-InfoListExt-r12 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-InfoExt-r12 + +PMCH-Info-r9 ::= SEQUENCE { + pmch-Config-r9 PMCH-Config-r9, + mbms-SessionInfoList-r9 MBMS-SessionInfoList-r9, + ... +} + +PMCH-InfoExt-r12 ::= SEQUENCE { + pmch-Config-r12 PMCH-Config-r12, + mbms-SessionInfoList-r12 MBMS-SessionInfoList-r9, + ... +} + +MBMS-SessionInfoList-r9 ::= SEQUENCE (SIZE (0..maxSessionPerPMCH)) OF MBMS-SessionInfo-r9 + +MBMS-SessionInfo-r9 ::= SEQUENCE { + tmgi-r9 TMGI-r9, + sessionId-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Need OR + logicalChannelIdentity-r9 INTEGER (0..maxSessionPerPMCH-1), + ... +} + +PMCH-Config-r9 ::= SEQUENCE { + sf-AllocEnd-r9 INTEGER (0..1535), + dataMCS-r9 INTEGER (0..28), + mch-SchedulingPeriod-r9 ENUMERATED { + rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024}, + ... +} + +PMCH-Config-r12 ::= SEQUENCE { + sf-AllocEnd-r12 INTEGER (0..1535), + dataMCS-r12 CHOICE { + normal-r12 INTEGER (0..28), + higerOrder-r12 INTEGER (0..27) + }, + mch-SchedulingPeriod-r12 ENUMERATED { + rf4, rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024}, + ..., + [[ mch-SchedulingPeriod-v1430 ENUMERATED {rf1, rf2} OPTIONAL -- Need OR + ]] +} + +TMGI-r9 ::= SEQUENCE { + plmn-Id-r9 CHOICE { + plmn-Index-r9 INTEGER (1..maxPLMN-r11), + explicitValue-r9 PLMN-Identity + }, + serviceId-r9 OCTET STRING (SIZE (3)) +} + + +SC-MTCH-InfoList-r13 ::= SEQUENCE (SIZE (0..maxSC-MTCH-r13)) OF SC-MTCH-Info-r13 + +SC-MTCH-Info-r13 ::= SEQUENCE { + mbmsSessionInfo-r13 MBMSSessionInfo-r13, + g-RNTI-r13 BIT STRING(SIZE(16)), + sc-mtch-schedulingInfo-r13 SC-MTCH-SchedulingInfo-r13 OPTIONAL, -- Need OP + sc-mtch-neighbourCell-r13 BIT STRING (SIZE(maxNeighCell-SCPTM-r13)) OPTIONAL, -- Need OP + ..., + [[ p-a-r13 ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} OPTIONAL -- Need ON + ]] +} + +MBMSSessionInfo-r13 ::= SEQUENCE { + tmgi-r13 TMGI-r9, + sessionId-r13 OCTET STRING (SIZE (1)) OPTIONAL -- Need OR +} + +SC-MTCH-SchedulingInfo-r13::= SEQUENCE { + onDurationTimerSCPTM-r13 ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200}, + drx-InactivityTimerSCPTM-r13 ENUMERATED { + psf0, psf1, psf2, psf4, psf8, + psf10, psf20, psf40, + psf80, psf160, ps320, + psf640, psf960, + psf1280, psf1920, psf2560}, + schedulingPeriodStartOffsetSCPTM-r13 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2048), + sf4096 INTEGER(0..4096), + sf8192 INTEGER(0..8192) + }, + ... +} + + +SC-MTCH-InfoList-BR-r14 ::= SEQUENCE (SIZE (0..maxSC-MTCH-BR-r14)) OF SC-MTCH-Info-BR-r14 + +SC-MTCH-Info-BR-r14 ::= SEQUENCE { + sc-mtch-CarrierFreq-r14 ARFCN-ValueEUTRA-r9, + mbmsSessionInfo-r14 MBMSSessionInfo-r13, + g-RNTI-r14 BIT STRING(SIZE(16)), + sc-mtch-schedulingInfo-r14 SC-MTCH-SchedulingInfo-BR-r14 OPTIONAL, -- Need OP + sc-mtch-neighbourCell-r14 BIT STRING (SIZE(maxNeighCell-SCPTM-r13)) OPTIONAL, -- Need OP + mpdcch-Narrowband-SC-MTCH-r14 INTEGER (1.. maxAvailNarrowBands-r13), + mpdcch-NumRepetition-SC-MTCH-r14 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256}, + mpdcch-StartSF-SC-MTCH-r14 CHOICE { + fdd-r14 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, + v5, v8, v10}, + tdd-r14 ENUMERATED {v1, v2, v4, v5, v8, v10, + v20} + }, + mpdcch-PDSCH-HoppingConfig-SC-MTCH-r14 ENUMERATED {on, off}, + mpdcch-PDSCH-CEmodeConfig-SC-MTCH-r14 ENUMERATED {ce-ModeA, ce-ModeB}, + mpdcch-PDSCH-MaxBandwidth-SC-MTCH-r14 ENUMERATED {bw1dot4, bw5}, + mpdcch-Offset-SC-MTCH-r14 ENUMERATED {zero, oneEighth, oneQuarter, + threeEighth, oneHalf, fiveEighth, + threeQuarter, sevenEighth}, + + p-a-r14 ENUMERATED { dB-6, dB-4dot77, dB-3, + dB-1dot77, dB0, dB1, dB2, + dB3} OPTIONAL,-- Need OR + ... +} + +SC-MTCH-SchedulingInfo-BR-r14::= SEQUENCE { + onDurationTimerSCPTM-r14 ENUMERATED { + psf300, psf400, psf500, psf600, + psf800, psf1000, psf1200, psf1600}, + drx-InactivityTimerSCPTM-r14 ENUMERATED { + psf0, psf1, psf2, psf4, psf8, psf16, + psf32, psf64, psf128, psf256, ps512, + psf1024, psf2048, psf4096, psf8192, psf16384}, + schedulingPeriodStartOffsetSCPTM-r14 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2047), + sf4096 INTEGER(0..4095), + sf8192 INTEGER(0..8191) + }, + ... +} + + +SCPTM-NeighbourCellList-r13 ::= SEQUENCE (SIZE (1..maxNeighCell-SCPTM-r13)) OF PCI-ARFCN-r13 + +PCI-ARFCN-r13 ::= SEQUENCE { + physCellId-r13 PhysCellId, + carrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL +} + + +SL-AnchorCarrierFreqList-V2X-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF ARFCN-ValueEUTRA-r9 + + +SL-CBR-CommonTxConfigList-r14 ::= SEQUENCE { + cbr-RangeCommonConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-CBRConfig-r14)) OF SL-CBR-Levels-Config-r14, + sl-CBR-PSSCH-TxConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-TxConfig-r14)) OF SL-CBR-PSSCH-TxConfig-r14 +} + +SL-CBR-Levels-Config-r14 ::= SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF SL-CBR-r14 + + +SL-CBR-PSSCH-TxConfig-r14 ::= SEQUENCE { + cr-Limit-r14 INTEGER(0..10000), + tx-Parameters-r14 SL-PSSCH-TxParameters-r14 +} + +SL-CBR-r14 ::= INTEGER(0..100) + + +SL-CBR-PPPP-TxConfigList-r14 ::= SEQUENCE (SIZE (1..8)) OF SL-PPPP-TxConfigIndex-r14 + +SL-PPPP-TxConfigIndex-r14 ::= SEQUENCE { + priorityThreshold-r14 SL-Priority-r13, + defaultTxConfigIndex-r14 INTEGER(0..maxCBR-Level-1-r14), + cbr-ConfigIndex-r14 INTEGER(0..maxSL-V2X-CBRConfig-1-r14), + tx-ConfigIndexList-r14 SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF Tx-ConfigIndex-r14 +} + +Tx-ConfigIndex-r14 ::= INTEGER(0..maxSL-V2X-TxConfig-1-r14) + + +SL-CommConfig-r12 ::= SEQUENCE { + commTxResources-r12 CHOICE { + release NULL, + setup CHOICE { + scheduled-r12 SEQUENCE { + sl-RNTI-r12 C-RNTI, + mac-MainConfig-r12 MAC-MainConfigSL-r12, + sc-CommTxConfig-r12 SL-CommResourcePool-r12, + mcs-r12 INTEGER (0..28) OPTIONAL -- Need OP + }, + ue-Selected-r12 SEQUENCE { + -- Pool for normal usage + commTxPoolNormalDedicated-r12 SEQUENCE { + poolToReleaseList-r12 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r12 SL-CommTxPoolToAddModList-r12 OPTIONAL -- Need ON + } + } + } + } OPTIONAL, -- Need ON + ..., + [[ commTxResources-v1310 CHOICE { + release NULL, + setup CHOICE { + scheduled-v1310 SEQUENCE { + logicalChGroupInfoList-r13 LogicalChGroupInfoList-r13, + multipleTx-r13 BOOLEAN + }, + ue-Selected-v1310 SEQUENCE { + commTxPoolNormalDedicatedExt-r13 SEQUENCE { + poolToReleaseListExt-r13 SL-TxPoolToReleaseListExt-r13 OPTIONAL, -- Need ON + poolToAddModListExt-r13 SL-CommTxPoolToAddModListExt-r13 OPTIONAL -- Need ON + } + } + } + } OPTIONAL, -- Need ON + commTxAllowRelayDedicated-r13 BOOLEAN OPTIONAL -- Need ON + ]] +} + +LogicalChGroupInfoList-r13 ::= SEQUENCE (SIZE (1..maxLCG-r13)) OF SL-PriorityList-r13 + +SL-CommTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-CommTxPoolToAddMod-r12 + +SL-CommTxPoolToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF SL-CommTxPoolToAddModExt-r13 + +SL-CommTxPoolToAddMod-r12 ::= SEQUENCE { + poolIdentity-r12 SL-TxPoolIdentity-r12, + pool-r12 SL-CommResourcePool-r12 +} + +SL-CommTxPoolToAddModExt-r13 ::= SEQUENCE { + poolIdentity-v1310 SL-TxPoolIdentity-v1310, + pool-r13 SL-CommResourcePool-r12 +} + +MAC-MainConfigSL-r12 ::= SEQUENCE { + periodic-BSR-TimerSL PeriodicBSR-Timer-r12 OPTIONAL, -- Need ON + retx-BSR-TimerSL RetxBSR-Timer-r12 +} + + +SL-CommTxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-CommResourcePool-r12 + +SL-CommTxPoolListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF SL-CommResourcePool-r12 + +SL-CommTxPoolListV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-TxPool-r14)) OF SL-CommResourcePoolV2X-r14 + +SL-CommRxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-RxPool-r12)) OF SL-CommResourcePool-r12 + +SL-CommRxPoolListV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-RxPool-r14)) OF SL-CommResourcePoolV2X-r14 + +SL-CommResourcePool-r12 ::= SEQUENCE { + sc-CP-Len-r12 SL-CP-Len-r12, + sc-Period-r12 SL-PeriodComm-r12, + sc-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + data-CP-Len-r12 SL-CP-Len-r12, + dataHoppingConfig-r12 SL-HoppingConfigComm-r12, + ue-SelectedResourceConfig-r12 SEQUENCE { + data-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + trpt-Subset-r12 SL-TRPT-Subset-r12 OPTIONAL -- Need OP + } OPTIONAL, -- Need OR + rxParametersNCell-r12 SEQUENCE { + tdd-Config-r12 TDD-Config OPTIONAL, -- Need OP + syncConfigIndex-r12 INTEGER (0..15) + } OPTIONAL, -- Need OR + txParameters-r12 SEQUENCE { + sc-TxParameters-r12 SL-TxParameters-r12, + dataTxParameters-r12 SL-TxParameters-r12 + } OPTIONAL, -- Cond Tx + ..., + [[ priorityList-r13 SL-PriorityList-r13 OPTIONAL -- Cond Tx + ]] + +} + +SL-CommResourcePoolV2X-r14 ::= SEQUENCE { + sl-OffsetIndicator-r14 SL-OffsetIndicator-r12 OPTIONAL, -- Need OR + sl-Subframe-r14 SubframeBitmapSL-r14, + adjacencyPSCCH-PSSCH-r14 BOOLEAN, + sizeSubchannel-r14 ENUMERATED { + n4, n5, n6, n8, n9, n10, n12, n15, n16, n18, n20, n25, n30, + n48, n50, n72, n75, n96, n100, spare13, spare12, spare11, + spare10, spare9, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1}, + numSubchannel-r14 ENUMERATED {n1, n3, n5, n8, n10, n15, n20, spare1}, + startRB-Subchannel-r14 INTEGER (0..99), + startRB-PSCCH-Pool-r14 INTEGER (0..99) OPTIONAL, -- Need OR + rxParametersNCell-r14 SEQUENCE { + tdd-Config-r14 TDD-Config OPTIONAL, -- Need OP + syncConfigIndex-r14 INTEGER (0..15) + } OPTIONAL, -- Need OR + dataTxParameters-r14 SL-TxParameters-r12 OPTIONAL, -- Cond Tx + zoneID-r14 INTEGER (0..7) OPTIONAL, -- Need OR + threshS-RSSI-CBR-r14 INTEGER (0..45) OPTIONAL, -- Need OR + poolReportId-r14 SL-V2X-TxPoolReportIdentity-r14 OPTIONAL, -- Need OR + cbr-pssch-TxConfigList-r14 SL-CBR-PPPP-TxConfigList-r14 OPTIONAL, -- Need OR + resourceSelectionConfigP2X-r14 SL-P2X-ResourceSelectionConfig-r14 OPTIONAL, -- Cond P2X + syncAllowed-r14 SL-SyncAllowed-r14 OPTIONAL, -- Need OR + restrictResourceReservationPeriod-r14 SL-RestrictResourceReservationPeriodList-r14 OPTIONAL, -- Need OR + ... +} + +SL-TRPT-Subset-r12 ::= BIT STRING (SIZE (3..5)) + +SL-V2X-TxPoolReportIdentity-r14::= INTEGER (1..maxSL-PoolToMeasure-r14) + + +SL-CommTxPoolSensingConfig-r14 ::= SEQUENCE { + pssch-TxConfigList-r14 SL-PSSCH-TxConfigList-r14, + thresPSSCH-RSRP-List-r14 SL-ThresPSSCH-RSRP-List-r14, + restrictResourceReservationPeriod-r14 SL-RestrictResourceReservationPeriodList-r14 OPTIONAL, -- Need OR + probResourceKeep-r14 ENUMERATED {v0, v0dot2, v0dot4, v0dot6, v0dot8, + spare3,spare2, spare1}, + p2x-SensingConfig-r14 SEQUENCE { + minNumCandidateSF-r14 INTEGER (1..13), + gapCandidateSensing-r14 BIT STRING (SIZE (10)) + } OPTIONAL, -- Need OR + sl-ReselectAfter-r14 ENUMERATED {n1, n2, n3, n4, n5, n6, n7, n8, n9, + spare7, spare6, spare5, spare4, spare3, spare2, + spare1} OPTIONAL -- Need OR +} + + +SL-CP-Len-r12 ::= ENUMERATED {normal, extended} + + +SL-DiscConfig-r12 ::= SEQUENCE { + discTxResources-r12 CHOICE { + release NULL, + setup CHOICE { + scheduled-r12 SEQUENCE { + discTxConfig-r12 SL-DiscResourcePool-r12 OPTIONAL, -- Need ON + discTF-IndexList-r12 SL-TF-IndexPairList-r12 OPTIONAL, -- Need ON + discHoppingConfig-r12 SL-HoppingConfigDisc-r12 + OPTIONAL -- Need ON + }, + ue-Selected-r12 SEQUENCE { + discTxPoolDedicated-r12 SEQUENCE { + poolToReleaseList-r12 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r12 SL-DiscTxPoolToAddModList-r12 OPTIONAL -- Need ON + } OPTIONAL -- Need ON + } + } + } OPTIONAL, -- Need ON + ..., + [[ discTF-IndexList-v1260 CHOICE { + release NULL, + setup SEQUENCE { + discTF-IndexList-r12b SL-TF-IndexPairList-r12b + } + } OPTIONAL -- Need ON + ]], + [[ discTxResourcesPS-r13 CHOICE { + release NULL, + setup CHOICE { + scheduled-r13 SL-DiscTxConfigScheduled-r13, + ue-Selected-r13 SEQUENCE { + discTxPoolPS-Dedicated-r13 SL-DiscTxPoolDedicated-r13 + } + } + } OPTIONAL, -- Need ON + discTxInterFreqInfo-r13 CHOICE { + release NULL, + setup SEQUENCE { + discTxCarrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need OR + discTxRefCarrierDedicated-r13 SL-DiscTxRefCarrierDedicated-r13 OPTIONAL, -- Need OR + discTxInfoInterFreqListAdd-r13 SL-DiscTxInfoInterFreqListAdd-r13 OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + gapRequestsAllowedDedicated-r13 BOOLEAN OPTIONAL, -- Need ON + discRxGapConfig-r13 CHOICE { + release NULL, + setup SL-GapConfig-r13 + } OPTIONAL, -- Need ON + discTxGapConfig-r13 CHOICE { + release NULL, + setup SL-GapConfig-r13 + } OPTIONAL, -- Need ON + discSysInfoToReportConfig-r13 CHOICE { + release NULL, + setup SL-DiscSysInfoToReportFreqList-r13 + } OPTIONAL -- Need ON + ]] +} + +SL-DiscSysInfoToReportFreqList-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF ARFCN-ValueEUTRA-r9 + +SL-DiscTxInfoInterFreqListAdd-r13 ::= SEQUENCE { + discTxFreqToAddModList-r13 SEQUENCE (SIZE (1..maxFreq)) OF SL-DiscTxResourceInfoPerFreq-r13 OPTIONAL, -- Need ON + discTxFreqToReleaseList-r13 SEQUENCE (SIZE (1..maxFreq)) OF ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need ON + ... +} + +SL-DiscTxResourceInfoPerFreq-r13 ::= SEQUENCE { + discTxCarrierFreq-r13 ARFCN-ValueEUTRA-r9, + discTxResources-r13 SL-DiscTxResource-r13 OPTIONAL, -- Need OR + discTxResourcesPS-r13 SL-DiscTxResource-r13 OPTIONAL, -- Need OR + discTxRefCarrierDedicated-r13 SL-DiscTxRefCarrierDedicated-r13 OPTIONAL, -- Need OR + discCellSelectionInfo-r13 CellSelectionInfoNFreq-r13 OPTIONAL, -- Need OR + ... +} + +SL-DiscTxResource-r13 ::= CHOICE { + release NULL, + setup CHOICE { + scheduled-r13 SL-DiscTxConfigScheduled-r13, + ue-Selected-r13 SL-DiscTxPoolDedicated-r13 + } +} + +SL-DiscTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-DiscTxPoolToAddMod-r12 + +SL-DiscTxPoolToAddMod-r12 ::= SEQUENCE { + poolIdentity-r12 SL-TxPoolIdentity-r12, + pool-r12 SL-DiscResourcePool-r12 +} + +SL-DiscTxConfigScheduled-r13 ::= SEQUENCE { + discTxConfig-r13 SL-DiscResourcePool-r12 OPTIONAL, -- Need ON + discTF-IndexList-r13 SL-TF-IndexPairList-r12b OPTIONAL, -- Need ON + discHoppingConfig-r13 SL-HoppingConfigDisc-r12 OPTIONAL,-- Need ON + ... +} + +SL-DiscTxPoolDedicated-r13 ::= SEQUENCE { + poolToReleaseList-r13 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r13 SL-DiscTxPoolToAddModList-r12 OPTIONAL -- Need ON +} + +SL-TF-IndexPairList-r12 ::= SEQUENCE (SIZE (1..maxSL-TF-IndexPair-r12)) OF SL-TF-IndexPair-r12 + +SL-TF-IndexPair-r12 ::= SEQUENCE { + discSF-Index-r12 INTEGER (1.. 200) OPTIONAL, -- Need ON + discPRB-Index-r12 INTEGER (1.. 50) OPTIONAL -- Need ON +} + +SL-TF-IndexPairList-r12b ::= SEQUENCE (SIZE (1..maxSL-TF-IndexPair-r12)) OF SL-TF-IndexPair-r12b + +SL-TF-IndexPair-r12b ::= SEQUENCE { + discSF-Index-r12b INTEGER (0..209) OPTIONAL, -- Need ON + discPRB-Index-r12b INTEGER (0..49) OPTIONAL -- Need ON +} + +SL-DiscTxRefCarrierDedicated-r13 ::= CHOICE { + pCell NULL, + sCell SCellIndex-r10 +} + + +SL-DiscTxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-DiscResourcePool-r12 + +SL-DiscRxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-RxPool-r12)) OF SL-DiscResourcePool-r12 + +SL-DiscResourcePool-r12 ::= SEQUENCE { + cp-Len-r12 SL-CP-Len-r12, + discPeriod-r12 ENUMERATED {rf32, rf64, rf128, + rf256, rf512, rf1024, rf16-v1310, spare}, + numRetx-r12 INTEGER (0..3), + numRepetition-r12 INTEGER (1..50), + tf-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + txParameters-r12 SEQUENCE { + txParametersGeneral-r12 SL-TxParameters-r12, + ue-SelectedResourceConfig-r12 SEQUENCE { + poolSelection-r12 CHOICE { + rsrpBased-r12 SL-PoolSelectionConfig-r12, + random-r12 NULL + }, + txProbability-r12 ENUMERATED {p25, p50, p75, p100} + } OPTIONAL -- Need OR + } OPTIONAL, -- Cond Tx + rxParameters-r12 SEQUENCE { + tdd-Config-r12 TDD-Config OPTIONAL, -- Need OR + syncConfigIndex-r12 INTEGER (0..15) + } OPTIONAL, -- Need OR + ..., + [[ discPeriod-v1310 CHOICE { + release NULL, + setup ENUMERATED {rf4, rf6, rf7, rf8, + rf12, rf14, rf24, rf28} + } OPTIONAL, -- Need ON + rxParamsAddNeighFreq-r13 CHOICE { + release NULL, + setup SEQUENCE { + physCellId-r13 PhysCellIdList-r13 + } + } OPTIONAL, -- Need ON + txParamsAddNeighFreq-r13 CHOICE { + release NULL, + setup SEQUENCE { + physCellId-r13 PhysCellIdList-r13, + p-Max P-Max OPTIONAL, -- Need OP + tdd-Config-r13 TDD-Config OPTIONAL, -- Cond TDD-OR + tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD-OR + freqInfo SEQUENCE { + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission + }, + referenceSignalPower INTEGER (-60..50), + syncConfigIndex-r13 INTEGER (0..15) OPTIONAL -- Need OR + } + } OPTIONAL -- Need ON + ]], + [[ txParamsAddNeighFreq-v1370 CHOICE { + release NULL, + setup SEQUENCE { + freqInfo-v1370 SEQUENCE { + additionalSpectrumEmission-v1370 AdditionalSpectrumEmission-v10l0 + } + } + } OPTIONAL -- Need ON + ]] +} + +PhysCellIdList-r13 ::= SEQUENCE (SIZE (1.. maxSL-DiscCells-r13)) OF PhysCellId + +SL-PoolSelectionConfig-r12 ::= SEQUENCE { + threshLow-r12 RSRP-RangeSL2-r12, + threshHigh-r12 RSRP-RangeSL2-r12 +} + + +SL-DiscSysInfoReport-r13 ::= SEQUENCE { + plmn-IdentityList-r13 PLMN-IdentityList OPTIONAL, + cellIdentity-13 CellIdentity OPTIONAL, + carrierFreqInfo-13 ARFCN-ValueEUTRA-r9 OPTIONAL, + discRxResources-r13 SL-DiscRxPoolList-r12 OPTIONAL, + discTxPoolCommon-r13 SL-DiscTxPoolList-r12 OPTIONAL, + discTxPowerInfo-r13 SL-DiscTxPowerInfoList-r12 OPTIONAL, + discSyncConfig-r13 SL-SyncConfigNFreq-r13 OPTIONAL, + discCellSelectionInfo-r13 SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + q-RxLevMinOffset-r13 INTEGER (1..8) OPTIONAL + } OPTIONAL, + cellReselectionInfo-r13 SEQUENCE { + q-Hyst-r13 ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + q-RxLevMin-r13 Q-RxLevMin, + t-ReselectionEUTRA-r13 T-Reselection + } OPTIONAL, + tdd-Config-r13 TDD-Config OPTIONAL, + freqInfo-r13 SEQUENCE { + ul-CarrierFreq-r13 ARFCN-ValueEUTRA OPTIONAL, + ul-Bandwidth-r13 ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, + additionalSpectrumEmission-r13 AdditionalSpectrumEmission OPTIONAL + } OPTIONAL, + p-Max-r13 P-Max OPTIONAL, + referenceSignalPower-r13 INTEGER (-60..50) OPTIONAL, + ..., + [[ + freqInfo-v1370 SEQUENCE { + additionalSpectrumEmission-v1370 AdditionalSpectrumEmission-v10l0 + } OPTIONAL + ]] +} + + +SL-DiscTxPowerInfoList-r12 ::= SEQUENCE (SIZE (maxSL-DiscPowerClass-r12)) OF SL-DiscTxPowerInfo-r12 + +SL-DiscTxPowerInfo-r12 ::= SEQUENCE { + discMaxTxPower-r12 P-Max, + ... +} + + +SL-GapConfig-r13 ::= SEQUENCE { + gapPatternList-r13 SL-GapPatternList-r13 +} + +SL-GapPatternList-r13 ::= SEQUENCE (SIZE (1..maxSL-GP-r13)) OF SL-GapPattern-r13 + +SL-GapPattern-r13 ::= SEQUENCE { + gapPeriod-r13 ENUMERATED {sf40, sf60, sf70, sf80, sf120, sf140, sf160, + sf240, sf280, sf320, sf640, sf1280, sf2560, sf5120, + sf10240}, + gapOffset-r12 SL-OffsetIndicator-r12, + gapSubframeBitmap-r13 BIT STRING (SIZE (1..10240)), + ... +} + + +SL-GapRequest-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-GapFreqInfo-r13 + +SL-GapFreqInfo-r13 ::= SEQUENCE { + carrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL, + gapPatternList-r13 SL-GapPatternList-r13 +} + + +SL-HoppingConfigComm-r12 ::= SEQUENCE { + hoppingParameter-r12 INTEGER (0..504), + numSubbands-r12 ENUMERATED {ns1, ns2, ns4}, + rb-Offset-r12 INTEGER (0..110) +} + +SL-HoppingConfigDisc-r12 ::= SEQUENCE { + a-r12 INTEGER (1..200), + b-r12 INTEGER (1..10), + c-r12 ENUMERATED {n1, n5} +} + + +SL-InterFreqInfoListV2X-r14 ::= SEQUENCE (SIZE (0..maxFreqV2X-1-r14)) OF SL-InterFreqInfoV2X-r14 + +SL-InterFreqInfoV2X-r14 ::= SEQUENCE { + plmn-IdentityList-r14 PLMN-IdentityList OPTIONAL, -- Need OP + v2x-CommCarrierFreq-r14 ARFCN-ValueEUTRA-r9, + sl-MaxTxPower-r14 P-Max OPTIONAL, -- Need OR + sl-Bandwidth-r14 ENUMERATED {n6, n15, n25, n50, n75, n100} OPTIONAL, -- Need OR + v2x-SchedulingPool-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-UE-ConfigList-r14 SL-V2X-UE-ConfigList-r14 OPTIONAL, -- Need OR + ..., + [[ additionalSpectrumEmissionV2X-r14 CHOICE { + additionalSpectrumEmission-r14 AdditionalSpectrumEmission, + additionalSpectrumEmission-v1440 AdditionalSpectrumEmission-v10l0 + } OPTIONAL -- Need ON + ]] +} + + +SL-V2X-UE-ConfigList-r14 ::= SEQUENCE (SIZE (1.. maxCellIntra)) OF SL-V2X-InterFreqUE-Config-r14 + +SL-V2X-InterFreqUE-Config-r14 ::= SEQUENCE { + physCellIdList-r14 PhysCellIdList-r13 OPTIONAL, -- Need OR + typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR + v2x-SyncConfig-r14 SL-SyncConfigListNFreqV2X-r14 OPTIONAL, -- Need OR + v2x-CommRxPool-r14 SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolNormal-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + p2x-CommTxPoolNormal-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolExceptional-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-ResourceSelectionConfig-r14 SL-CommTxPoolSensingConfig-r14 OPTIONAL, -- Need OR + zoneConfig-r14 SL-ZoneConfig-r14 OPTIONAL, -- Need OR + offsetDFN-r14 INTEGER (0..1000) OPTIONAL, -- Need OR + ... +} + + +SL-OffsetIndicator-r12 ::= CHOICE { + small-r12 INTEGER (0..319), + large-r12 INTEGER (0..10239) +} + +SL-OffsetIndicatorSync-r12 ::= INTEGER (0..39) + +SL-OffsetIndicatorSync-v1430 ::= INTEGER (40..159) + +SL-OffsetIndicatorSync-r14 ::= INTEGER (0..159) + + +SL-P2X-ResourceSelectionConfig-r14 ::= SEQUENCE { + partialSensing-r14 ENUMERATED {true} OPTIONAL, -- Need OR + randomSelection-r14 ENUMERATED {true} OPTIONAL -- Need OR +} + + +SL-PeriodComm-r12 ::= ENUMERATED {sf40, sf60, sf70, sf80, sf120, sf140, + sf160, sf240, sf280, sf320, spare6, spare5, + spare4, spare3, spare2, spare} + + +SL-PriorityList-r13 ::= SEQUENCE (SIZE (1..maxSL-Prio-r13)) OF SL-Priority-r13 + +SL-Priority-r13 ::= INTEGER (1..8) + + +SL-PSSCH-TxConfigList-r14 ::= SEQUENCE (SIZE (1..maxPSSCH-TxConfig-r14)) OF SL-PSSCH-TxConfig-r14 + +SL-PSSCH-TxConfig-r14 ::= SEQUENCE { + typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR + thresUE-Speed-r14 ENUMERATED {kmph60, kmph80, kmph100, kmph120, + kmph140, kmph160, kmph180, kmph200}, + parametersAboveThres-r14 SL-PSSCH-TxParameters-r14, + parametersBelowThres-r14 SL-PSSCH-TxParameters-r14, + ... +} + +SL-PSSCH-TxParameters-r14 ::= SEQUENCE { + minMCS-PSSCH-r14 INTEGER (0..31), + maxMCS-PSSCH-r14 INTEGER (0..31), + minSubChannel-NumberPSSCH-r14 INTEGER (1..20), + maxSubchannel-NumberPSSCH-r14 INTEGER (1..20), + allowedRetxNumberPSSCH-r14 ENUMERATED {n0, n1, both, spare1}, + maxTxPower-r14 SL-TxPower-r14 OPTIONAL -- Cond CBR +} + + +SL-RestrictResourceReservationPeriodList-r14 ::= SEQUENCE (SIZE (1..maxReservationPeriod-r14)) OF SL-RestrictResourceReservationPeriod-r14 + +SL-RestrictResourceReservationPeriod-r14 ::= ENUMERATED {v0dot2, v0dot5, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, spare4,spare3, spare2, spare1} + + +SLSSID-r12 ::= INTEGER (0..167) + + +SL-SyncAllowed-r14 ::= SEQUENCE { + gnss-Sync-r14 ENUMERATED {true} OPTIONAL, -- Need OR + enb-Sync-r14 ENUMERATED {true} OPTIONAL, -- Need OR + ue-Sync-r14 ENUMERATED {true} OPTIONAL -- Need OR +} + + +SL-SyncConfigList-r12 ::= SEQUENCE (SIZE (1..maxSL-SyncConfig-r12)) OF SL-SyncConfig-r12 + +SL-SyncConfigListV2X-r14 ::= SEQUENCE (SIZE (1.. maxSL-V2X-SyncConfig-r14)) OF SL-SyncConfig-r12 + +SL-SyncConfig-r12 ::= SEQUENCE { + syncCP-Len-r12 SL-CP-Len-r12, + syncOffsetIndicator-r12 SL-OffsetIndicatorSync-r12, + slssid-r12 SLSSID-r12, + txParameters-r12 SEQUENCE { + syncTxParameters-r12 SL-TxParameters-r12, + syncTxThreshIC-r12 RSRP-RangeSL-r12, + syncInfoReserved-r12 BIT STRING (SIZE (19)) OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + rxParamsNCell-r12 SEQUENCE { + physCellId-r12 PhysCellId, + discSyncWindow-r12 ENUMERATED {w1, w2} + } OPTIONAL, -- Need OR + ..., + [[ syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ syncOffsetIndicator-v1430 SL-OffsetIndicatorSync-v1430 OPTIONAL, -- Need OR + gnss-Sync-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ syncOffsetIndicator2-r14 SL-OffsetIndicatorSync-r14 OPTIONAL, -- Need OR + syncOffsetIndicator3-r14 SL-OffsetIndicatorSync-r14 OPTIONAL -- Need OR + ]] +} + +SL-SyncConfigListNFreq-r13 ::= SEQUENCE (SIZE (1..maxSL-SyncConfig-r12)) OF SL-SyncConfigNFreq-r13 + +SL-SyncConfigListNFreqV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-SyncConfig-r14)) OF SL-SyncConfigNFreq-r13 + +SL-SyncConfigNFreq-r13 ::= SEQUENCE { + asyncParameters-r13 SEQUENCE { + syncCP-Len-r13 SL-CP-Len-r12, + syncOffsetIndicator-r13 SL-OffsetIndicatorSync-r12, + slssid-r13 SLSSID-r12 + } OPTIONAL, -- Need OR + txParameters-r13 SEQUENCE { + syncTxParameters-r13 SL-TxParameters-r12, + syncTxThreshIC-r13 RSRP-RangeSL-r12, + syncInfoReserved-r13 BIT STRING (SIZE (19)) OPTIONAL, -- Need OR + syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + rxParameters-r13 SEQUENCE { + discSyncWindow-r13 ENUMERATED {w1, w2} + } OPTIONAL, -- Need OR + ..., + [[ syncOffsetIndicator-v1430 SL-OffsetIndicatorSync-v1430 OPTIONAL, -- Need OR + gnss-Sync-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ syncOffsetIndicator2-r14 SL-OffsetIndicatorSync-r14 OPTIONAL, -- Need OR + syncOffsetIndicator3-r14 SL-OffsetIndicatorSync-r14 OPTIONAL -- Need OR + ]] +} + + +SL-TF-ResourceConfig-r12 ::= SEQUENCE { + prb-Num-r12 INTEGER (1..100), + prb-Start-r12 INTEGER (0..99), + prb-End-r12 INTEGER (0..99), + offsetIndicator-r12 SL-OffsetIndicator-r12, + subframeBitmap-r12 SubframeBitmapSL-r12 +} + +SubframeBitmapSL-r12 ::= CHOICE { + bs4-r12 BIT STRING (SIZE (4)), + bs8-r12 BIT STRING (SIZE (8)), + bs12-r12 BIT STRING (SIZE (12)), + bs16-r12 BIT STRING (SIZE (16)), + bs30-r12 BIT STRING (SIZE (30)), + bs40-r12 BIT STRING (SIZE (40)), + bs42-r12 BIT STRING (SIZE (42)) +} + +SubframeBitmapSL-r14 ::= CHOICE { + bs10-r14 BIT STRING (SIZE (10)), + bs16-r14 BIT STRING (SIZE (16)), + bs20-r14 BIT STRING (SIZE (20)), + bs30-r14 BIT STRING (SIZE (30)), + bs40-r14 BIT STRING (SIZE (40)), + bs50-r14 BIT STRING (SIZE (50)), + bs60-r14 BIT STRING (SIZE (60)), + bs100-r14 BIT STRING (SIZE (100)) +} + + +SL-TxPower-r14 ::= CHOICE { + minusinfinity-r14 NULL, + txPower-r14 INTEGER (-41..31) +} + + +SL-TypeTxSync-r14 ::= ENUMERATED {gnss, enb, ue} + + +SL-ThresPSSCH-RSRP-List-r14 ::= SEQUENCE (SIZE (64)) OF SL-ThresPSSCH-RSRP-r14 + +SL-ThresPSSCH-RSRP-r14 ::= INTEGER (0..66) + + +SL-TxParameters-r12 ::= SEQUENCE { + alpha-r12 Alpha-r12, + p0-r12 P0-SL-r12 +} + +P0-SL-r12 ::= INTEGER (-126..31) + + +SL-TxPoolIdentity-r12 ::= INTEGER (1.. maxSL-TxPool-r12) + +SL-TxPoolIdentity-v1310 ::= INTEGER (maxSL-TxPool-r12Plus1-r13.. maxSL-TxPool-r13) + +SL-V2X-TxPoolIdentity-r14 ::= INTEGER (1.. maxSL-V2X-TxPool-r14) + + +SL-TxPoolToReleaseList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-TxPoolIdentity-r12 + +SL-TxPoolToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF SL-TxPoolIdentity-v1310 + + +SL-V2X-ConfigDedicated-r14 ::= SEQUENCE { + commTxResources-r14 CHOICE { + release NULL, + setup CHOICE { + scheduled-r14 SEQUENCE { + sl-V-RNTI-r14 C-RNTI, + mac-MainConfig-r14 MAC-MainConfigSL-r12, + v2x-SchedulingPool-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need ON + mcs-r14 INTEGER (0..31) OPTIONAL, -- Need OR + logicalChGroupInfoList-r14 LogicalChGroupInfoList-r13 + }, + ue-Selected-r14 SEQUENCE { + -- Pool for normal usage + v2x-CommTxPoolNormalDedicated-r14 SEQUENCE { + poolToReleaseList-r14 SL-TxPoolToReleaseListV2X-r14 OPTIONAL, -- Need ON + poolToAddModList-r14 SL-TxPoolToAddModListV2X-r14 OPTIONAL, -- Need ON + v2x-CommTxPoolSensingConfig-r14 SL-CommTxPoolSensingConfig-r14 + OPTIONAL -- Need ON + } + } + } + } OPTIONAL, -- Need ON + v2x-InterFreqInfoList-r14 SL-InterFreqInfoListV2X-r14 OPTIONAL, -- Need ON + thresSL-TxPrioritization-r14 SL-Priority-r13 OPTIONAL, -- Need OR + typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR + cbr-DedicatedTxConfigList-r14 SL-CBR-CommonTxConfigList-r14 OPTIONAL, -- Need OR + ... +} + +SL-TxPoolToAddModListV2X-r14 ::= SEQUENCE (SIZE (1.. maxSL-V2X-TxPool-r14)) OF SL-TxPoolToAddMod-r14 + +SL-TxPoolToAddMod-r14 ::= SEQUENCE { + poolIdentity-r14 SL-V2X-TxPoolIdentity-r14, + pool-r14 SL-CommResourcePoolV2X-r14 +} + +SL-TxPoolToReleaseListV2X-r14 ::= SEQUENCE (SIZE (1.. maxSL-V2X-TxPool-r14)) OF SL-V2X-TxPoolIdentity-r14 + + +SL-ZoneConfig-r14 ::= SEQUENCE { + zoneLength-r14 ENUMERATED { m5, m10, m20, m50, m100, m200, m500, spare1}, + zoneWidth-r14 ENUMERATED { m5, m10, m20, m50, m100, m200, m500, spare1}, + zoneIdLongiMod-r14 INTEGER (1..4), + zoneIdLatiMod-r14 INTEGER (1..4) +} + + +maxACDC-Cat-r13 INTEGER ::= 16 -- Maximum number of ACDC categories (per PLMN) +maxAvailNarrowBands-r13 INTEGER ::= 16 -- Maximum number of narrowbands +maxBandComb-r10 INTEGER ::= 128 -- Maximum number of band combinations. +maxBandComb-r11 INTEGER ::= 256 -- Maximum number of additional band combinations. +maxBandComb-r13 INTEGER ::= 384 -- Maximum number of band combinations in Rel-13 +maxBands INTEGER ::= 64 -- Maximum number of bands listed in EUTRA UE caps +maxBandsNR-r15 INTEGER ::= 1024 -- Maximum number of NR bands listed in EUTRA UE caps +maxBandwidthClass-r10 INTEGER ::= 16 -- Maximum number of supported CA BW classes per band +maxBandwidthCombSet-r10 INTEGER ::= 32 -- Maximum number of bandwidth combination sets per + -- supported band combination +maxCBR-Level-r14 INTEGER ::= 16 -- Maximum number of CBR levels +maxCBR-Level-1-r14 INTEGER ::= 15 +maxCBR-Report-r14 INTEGER ::= 72 -- Maximum number of CBR results in a report +maxCDMA-BandClass INTEGER ::= 32 -- Maximum value of the CDMA band classes +maxCE-Level-r13 INTEGER ::= 4 -- Maximum number of CE levels +maxCellBlack INTEGER ::= 16 -- Maximum number of blacklisted physical cell identity + -- ranges listed in SIB type 4 and 5 +maxCellHistory-r12 INTEGER ::= 16 -- Maximum number of visited EUTRA cells reported +maxCellInfoGERAN-r9 INTEGER ::= 32 -- Maximum number of GERAN cells for which system in- + -- formation can be provided as redirection assistance +maxCellInfoUTRA-r9 INTEGER ::= 16 -- Maximum number of UTRA cells for which system + -- information can be provided as redirection + -- assistance +maxCombIDC-r11 INTEGER ::= 128 -- Maximum number of reported UL CA combinations +maxCSI-IM-r11 INTEGER ::= 3 -- Maximum number of CSI-IM configurations + -- (per carrier frequency) +maxCSI-IM-r12 INTEGER ::= 4 -- Maximum number of CSI-IM configurations + -- (per carrier frequency) +minCSI-IM-r13 INTEGER ::= 5 -- Minimum number of CSI IM configurations from which + -- REL-13 extension is used +maxCSI-IM-r13 INTEGER ::= 24 -- Maximum number of CSI-IM configurations + -- (per carrier frequency) +maxCSI-IM-v1310 INTEGER ::= 20 -- Maximum number of additional CSI-IM configurations + -- (per carrier frequency) +maxCSI-Proc-r11 INTEGER ::= 4 -- Maximum number of CSI processes (per carrier + -- frequency) +maxCSI-RS-NZP-r11 INTEGER ::= 3 -- Maximum number of CSI RS resource + -- configurations using non-zero Tx power + -- (per carrier frequency) +minCSI-RS-NZP-r13 INTEGER ::= 4 -- Minimum number of CSI RS resource from which + -- REL-13 extension is used +maxCSI-RS-NZP-r13 INTEGER ::= 24 -- Maximum number of CSI RS resource + -- configurations using non-zero Tx power + -- (per carrier frequency) +maxCSI-RS-NZP-v1310 INTEGER ::= 21 -- Maximum number of additional CSI RS resource + -- configurations using non-zero Tx power + -- (per carrier frequency) +maxCSI-RS-ZP-r11 INTEGER ::= 4 -- Maximum number of CSI RS resource + -- configurations using zero Tx power(per carrier + -- frequency) +maxCQI-ProcExt-r11 INTEGER ::= 3 -- Maximum number of additional periodic CQI + -- configurations (per carrier frequency) +maxFreqUTRA-TDD-r10 INTEGER ::= 6 -- Maximum number of UTRA TDD carrier frequencies for + -- which system information can be provided as + -- redirection assistance +maxCellInter INTEGER ::= 16 -- Maximum number of neighbouring inter-frequency + -- cells listed in SIB type 5 +maxCellIntra INTEGER ::= 16 -- Maximum number of neighbouring intra-frequency + -- cells listed in SIB type 4 +maxCellListGERAN INTEGER ::= 3 -- Maximum number of lists of GERAN cells +maxCellMeas INTEGER ::= 32 -- Maximum number of entries in each of the + -- cell lists in a measurement object +maxCellReport INTEGER ::= 8 -- Maximum number of reported cells/CSI-RS resources +maxCellSFTD INTEGER ::= 3 -- Maximum number of cells for SFTD reporting +maxConfigSPS-r14 INTEGER ::= 8 -- Maximum number of simultaneous SPS configurations +maxCSI-RS-Meas-r12 INTEGER ::= 96 -- Maximum number of entries in the CSI-RS list + -- in a measurement object +maxDRB INTEGER ::= 11 -- Maximum number of Data Radio Bearers +maxDS-Duration-r12 INTEGER ::= 5 -- Maximum number of subframes in a discovery signals + -- occasion +maxDS-ZTP-CSI-RS-r12 INTEGER ::= 5 -- Maximum number of zero transmission power CSI-RS for + -- a serving cell concerning discovery signals +maxEARFCN INTEGER ::= 65535 -- Maximum value of EUTRA carrier frequency +maxEARFCN-Plus1 INTEGER ::= 65536 -- Lowest value extended EARFCN range +maxEARFCN2 INTEGER ::= 262143 -- Highest value extended EARFCN range +maxEPDCCH-Set-r11 INTEGER ::= 2 -- Maximum number of EPDCCH sets +maxFBI INTEGER ::= 64 -- Maximum value of fequency band indicator +maxFBI-NR-r15 INTEGER ::= 1024 -- Highest value FBI range for NR. +maxFBI-Plus1 INTEGER ::= 65 -- Lowest value extended FBI range +maxFBI2 INTEGER ::= 256 -- Highest value extended FBI range +maxFeatureSets-r15 INTEGER ::= 256 -- Total number of feature sets (size of pool) +maxPerCC-FeatureSets-r15 INTEGER ::= 32 -- Total number of CC-specific feature sets + -- (size of the pool) +maxFreq INTEGER ::= 8 -- Maximum number of carrier frequencies +maxFreqIDC-r11 INTEGER ::= 32 -- Maximum number of carrier frequencies that are + -- affected by the IDC problems +maxFreqMBMS-r11 INTEGER ::= 5 -- Maximum number of carrier frequencies for which an + -- MBMS capable UE may indicate an interest +maxFreqNR-r15 INTEGER ::= 5 -- Maximum number of NR carrier frequencies for + -- which a UE may provide measurement results upon + -- SCG failure +maxFreqV2X-r14 INTEGER ::= 8 -- Maximum number of carrier frequencies for which V2X + -- sidelink communication can be configured +maxFreqV2X-1-r14 INTEGER ::= 7 -- Highest index of frequencies +maxGERAN-SI INTEGER ::= 10 -- Maximum number of GERAN SI blocks that can be + -- provided as part of NACC information +maxGNFG INTEGER ::= 16 -- Maximum number of GERAN neighbour freq groups +maxLCG-r13 INTEGER ::= 4 -- Maximum number of logical channel groups +maxLogMeasReport-r10 INTEGER ::= 520 -- Maximum number of logged measurement entries + -- that can be reported by the UE in one message +maxMBSFN-Allocations INTEGER ::= 8 -- Maximum number of MBSFN frame allocations with + -- different offset +maxMBSFN-Area INTEGER ::= 8 +maxMBSFN-Area-1 INTEGER ::= 7 +maxMBMS-ServiceListPerUE-r13 INTEGER ::= 15 -- Maximum number of services which the UE can + -- include in the MBMS interest indication +maxMeasId INTEGER ::= 32 +maxMeasId-Plus1 INTEGER ::= 33 +maxMeasId-r12 INTEGER ::= 64 +maxMultiBands INTEGER ::= 8 -- Maximum number of additional frequency bands + -- that a cell belongs to +maxNS-Pmax-r10 INTEGER ::= 8 -- Maximum number of NS and P-Max values per band +maxNAICS-Entries-r12 INTEGER ::= 8 -- Maximum number of supported NAICS combination(s) +maxNeighCell-r12 INTEGER ::= 8 -- Maximum number of neighbouring cells in NAICS + -- configuration (per carrier frequency) +maxNeighCell-SCPTM-r13 INTEGER ::= 8 -- Maximum number of SCPTM neighbour cells +maxObjectId INTEGER ::= 32 +maxObjectId-Plus1-r13 INTEGER ::= 33 +maxObjectId-r13 INTEGER ::= 64 +maxP-a-PerNeighCell-r12 INTEGER ::= 3 -- Maximum number of power offsets for a neighbour cell + -- in NAICS configuration +maxPageRec INTEGER ::= 16 -- +maxPhysCellIdRange-r9 INTEGER ::= 4 -- Maximum number of physical cell identity ranges +maxPLMN-r11 INTEGER ::= 6 -- Maximum number of PLMNs +maxPLMN-1-r14 INTEGER ::= 5 -- Maximum number of PLMNs minus one +maxPNOffset INTEGER ::= 511 -- Maximum number of CDMA2000 PNOffsets +maxPMCH-PerMBSFN INTEGER ::= 15 +maxPSSCH-TxConfig-r14 INTEGER ::= 16 -- Maximum number of PSSCH TX configurations +maxQuantSetsNR-r15 INTEGER ::= 2 -- Maximum number of NR quantity configuration sets +maxQCI-r13 INTEGER ::= 6 -- Maximum number of QCIs +maxRAT-Capabilities INTEGER ::= 8 -- Maximum number of interworking RATs (incl EUTRA) +maxRE-MapQCL-r11 INTEGER ::= 4 -- Maximum number of PDSCH RE Mapping configurations + -- (per carrier frequency) +maxReportConfigId INTEGER ::= 32 +maxReservationPeriod-r14 INTEGER ::= 16 -- Maximum number of resource reservation periodicities + -- for sidelink V2X communication +maxRS-Index-r15 INTEGER ::= 64 -- Maximum number of RS indices +maxRS-Index-1-r15 INTEGER ::= 63 -- Highest value of RS index as used to identify + -- RS index in RRM reports. +maxRS-IndexCellQual-r15 INTEGER ::= 16 -- Maximum number of RS indices averaged to derive + -- cell quality for RRM. +maxRS-IndexReport-r15 INTEGER ::= 32 -- Maximum number of RS indices for RRM. +maxRSTD-Freq-r10 INTEGER ::= 3 -- Maximum number of frequency layers for RSTD + -- measurement +maxSAI-MBMS-r11 INTEGER ::= 64 -- Maximum number of MBMS service area identities + -- broadcast per carrier frequency +maxSCell-r10 INTEGER ::= 4 -- Maximum number of SCells +maxSCell-r13 INTEGER ::= 31 -- Highest value of extended number range of SCells +maxSC-MTCH-r13 INTEGER ::= 1023 -- Maximum number of SC-MTCHs in one cell +maxSC-MTCH-BR-r14 INTEGER ::= 128 -- Maximum number of SC-MTCHs in one cell for feMTC +maxSL-CommRxPoolNFreq-r13 INTEGER ::= 32 -- Maximum number of individual sidelink communication + -- Rx resource pools on neighbouring freq +maxSL-CommRxPoolPreconf-v1310 INTEGER ::= 12 -- Maximum number of additional preconfigured + -- sidelink communication Rx resource pool entries +maxSL-TxPool-r12Plus1-r13 INTEGER ::= 5 -- First additional individual sidelink + -- Tx resource pool +maxSL-TxPool-v1310 INTEGER ::= 4 -- Maximum number of additional sidelink + -- Tx resource pool entries +maxSL-TxPool-r13 INTEGER ::= 8 -- Maximum number of individual sidelink + -- Tx resource pools +maxSL-CommTxPoolPreconf-v1310 INTEGER ::= 7 -- Maximum number of additional preconfigured + -- sidelink Tx resource pool entries +maxSL-Dest-r12 INTEGER ::= 16 -- Maximum number of sidelink destinations +maxSL-DiscCells-r13 INTEGER ::= 16 -- Maximum number of cells with similar sidelink + -- configurations +maxSL-DiscPowerClass-r12 INTEGER ::= 3 -- Maximum number of sidelink power classes +maxSL-DiscRxPoolPreconf-r13 INTEGER ::= 16 -- Maximum number of preconfigured sidelink + -- discovery Rx resource pool entries +maxSL-DiscSysInfoReportFreq-r13 INTEGER ::= 8 -- Maximum number of frequencies to include in a + -- SidelinkUEInformation for SI reporting +maxSL-DiscTxPoolPreconf-r13 INTEGER ::= 4 -- Maximum number of preconfigured sidelink + -- discovery Tx resource pool entries +maxSL-GP-r13 INTEGER ::= 8 -- Maximum number of gap patterns that can be requested + -- for a frequency or assigned +maxSL-PoolToMeasure-r14 INTEGER ::= 72 -- Maximum number of TX resource pools for CBR + -- measurement and report +maxSL-Prio-r13 INTEGER ::= 8 -- Maximum number of entries in sidelink priority list +maxSL-RxPool-r12 INTEGER ::= 16 -- Maximum number of individual sidelink Rx resource pools +maxSL-SyncConfig-r12 INTEGER ::= 16 -- Maximum number of sidelink Sync configurations +maxSL-TF-IndexPair-r12 INTEGER ::= 64 -- Maximum number of sidelink Time Freq resource index + -- pairs +maxSL-TxPool-r12 INTEGER ::= 4 -- Maximum number of individual sidelink Tx resource pools +maxSL-V2X-RxPool-r14 INTEGER ::= 16 -- Maximum number of RX resource pools for + -- V2X sidelink communication +maxSL-V2X-RxPoolPreconf-r14 INTEGER ::= 16 -- Maximum number of RX resource pools for + -- V2X sidelink communication +maxSL-V2X-TxPool-r14 INTEGER ::= 8 -- Maximum number of TX resource pools for + -- V2X sidelink communication +maxSL-V2X-TxPoolPreconf-r14 INTEGER ::= 8 -- Maximum number of TX resource pools for + -- V2X sidelink communication +maxSL-V2X-SyncConfig-r14 INTEGER ::= 16 -- Maximum number of sidelink Sync configurations + -- for V2X sidelink communication +maxSL-V2X-CBRConfig-r14 INTEGER ::= 4 -- Maximum number of CBR range configurations + -- for V2X sidelink communication congestion + -- control +maxSL-V2X-CBRConfig-1-r14 INTEGER ::= 3 +maxSL-V2X-TxConfig-r14 INTEGER ::= 64 -- Maximum number of TX parameter configurations + -- for V2X sidelink communication congestion + -- control +maxSL-V2X-TxConfig-1-r14 INTEGER ::= 63 +maxSL-V2X-CBRConfig2-r14 INTEGER ::= 8 -- Maximum number of CBR range configurations in + -- pre-configuration for V2X sidelink + -- communication congestion control +maxSL-V2X-CBRConfig2-1-r14 INTEGER ::= 7 +maxSL-V2X-TxConfig2-r14 INTEGER ::= 128 -- Maximum number of TX parameter + -- configurations in pre-configuration for V2X + -- sidelink communication congestion control +maxSL-V2X-TxConfig2-1-r14 INTEGER ::= 127 +maxSTAG-r11 INTEGER ::= 3 -- Maximum number of STAGs +maxServCell-r10 INTEGER ::= 5 -- Maximum number of Serving cells +maxServCell-r13 INTEGER ::= 32 -- Highest value of extended number range of Serving cells +maxServiceCount INTEGER ::= 16 -- Maximum number of MBMS services that can be included + -- in an MBMS counting request and response +maxServiceCount-1 INTEGER ::= 15 +maxSessionPerPMCH INTEGER ::= 29 +maxSessionPerPMCH-1 INTEGER ::= 28 +maxSIB INTEGER ::= 32 -- Maximum number of SIBs +maxSIB-1 INTEGER ::= 31 +maxSI-Message INTEGER ::= 32 -- Maximum number of SI messages +maxSimultaneousBands-r10 INTEGER ::= 64 -- Maximum number of simultaneously aggregated bands +maxSubframePatternIDC-r11 INTEGER ::= 8 -- Maximum number of subframe reservation patterns + -- that the UE can simultaneously recommend to the + -- E-UTRAN for use. +maxTrafficPattern-r14 INTEGER ::= 8 -- Maximum number of periodical traffic patterns + -- that the UE can simultaneously report to the + -- E-UTRAN. +maxUTRA-FDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA FDD carrier frequencies +maxUTRA-TDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA TDD carrier frequencies +maxWLAN-Id-r12 INTEGER ::= 16 -- Maximum number of WLAN identifiers +maxWLAN-Bands-r13 INTEGER ::= 8 -- Maximum number of WLAN bands +maxWLAN-Id-r13 INTEGER ::= 32 -- Maximum number of WLAN identifiers +maxWLAN-Channels-r13 INTEGER ::= 16 -- maximum number of WLAN channels used in + -- WLAN-CarrierInfo +maxWLAN-CarrierInfo-r13 INTEGER ::= 8 -- Maximum number of WLAN Carrier Information +maxWLAN-Id-Report-r14 INTEGER ::= 32 -- Maximum number of WLAN IDs to report + + +END + + +PC5-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + TDD-ConfigSL-r12 +FROM EUTRA-RRC-Definitions; + + +SBCCH-SL-BCH-Message ::= SEQUENCE { + message SBCCH-SL-BCH-MessageType +} + +SBCCH-SL-BCH-MessageType ::= MasterInformationBlock-SL + + +SBCCH-SL-BCH-Message-V2X-r14 ::= SEQUENCE { + message SBCCH-SL-BCH-MessageType-V2X-r14 +} + +SBCCH-SL-BCH-MessageType-V2X-r14 ::= MasterInformationBlock-SL-V2X-r14 + + +MasterInformationBlock-SL ::= SEQUENCE { + sl-Bandwidth-r12 ENUMERATED { + n6, n15, n25, n50, n75, n100}, + tdd-ConfigSL-r12 TDD-ConfigSL-r12, + directFrameNumber-r12 BIT STRING (SIZE (10)), + directSubframeNumber-r12 INTEGER (0..9), + inCoverage-r12 BOOLEAN, + reserved-r12 BIT STRING (SIZE (19)) +} + + + +MasterInformationBlock-SL-V2X-r14 ::= SEQUENCE { + sl-Bandwidth-r14 ENUMERATED { + n6, n15, n25, n50, n75, n100}, + tdd-ConfigSL-r14 TDD-ConfigSL-r12, + directFrameNumber-r14 BIT STRING (SIZE (10)), + directSubframeNumber-r14 INTEGER (0..9), + inCoverage-r14 BOOLEAN, + reserved-r14 BIT STRING (SIZE (27)) +} + + + +END + + +NBIOT-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + RRCConnectionReestablishmentReject, + SecurityModeCommand, + SecurityModeComplete, + SecurityModeFailure, + AdditionalSpectrumEmission, + ARFCN-ValueEUTRA-r9, + CellIdentity, + DedicatedInfoNAS, + DRB-Identity, + InitialUE-Identity, + IntraFreqBlackCellList, + IntraFreqNeighCellList, + maxBands, + maxCellBlack, + maxCellInter, + maxFBI2, + maxFreq, + maxMultiBands, + maxPageRec, + maxPLMN-r11, + maxSAI-MBMS-r11, + maxSIB, + maxSIB-1, + MBMS-SAI-r11, + MBMS-SAI-List-r11, + MBMSSessionInfo-r13, + NextHopChainingCount, + PagingUE-Identity, + PLMN-Identity, + P-Max, + PowerRampingParameters, + PreambleTransMax, + PhysCellId, + Q-OffsetRange, + Q-QualMin-r9, + Q-RxLevMin, + ReestabUE-Identity, + RegisteredMME, + ReselectionThreshold, + ResumeIdentity-r13, + RRC-TransactionIdentifier, + RSRP-Range, + ShortMAC-I, + S-TMSI, + SystemInformationBlockType16-r11, + SystemInfoValueTagSI-r13, + T-Reordering, + TimeAlignmentTimer, + TMGI-r9, + TrackingAreaCode, + DataInactivityTimer-r14 + +FROM EUTRA-RRC-Definitions; + + +BCCH-BCH-Message-NB ::= SEQUENCE { + message BCCH-BCH-MessageType-NB +} + + +BCCH-BCH-MessageType-NB::= MasterInformationBlock-NB + + + +BCCH-DL-SCH-Message-NB ::= SEQUENCE { + message BCCH-DL-SCH-MessageType-NB +} + +BCCH-DL-SCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + systemInformation-r13 SystemInformation-NB, + systemInformationBlockType1-r13 SystemInformationBlockType1-NB + }, + messageClassExtension SEQUENCE {} +} + + +PCCH-Message-NB ::= SEQUENCE { + message PCCH-MessageType-NB +} + +PCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + paging-r13 Paging-NB + }, + messageClassExtension SEQUENCE {} +} + + +DL-CCCH-Message-NB ::= SEQUENCE { + message DL-CCCH-MessageType-NB +} + +DL-CCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishment-r13 RRCConnectionReestablishment-NB, + rrcConnectionReestablishmentReject-r13 RRCConnectionReestablishmentReject, + rrcConnectionReject-r13 RRCConnectionReject-NB, + rrcConnectionSetup-r13 RRCConnectionSetup-NB, + spare4 NULL, spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +DL-DCCH-Message-NB ::= SEQUENCE { + message DL-DCCH-MessageType-NB +} + +DL-DCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + dlInformationTransfer-r13 DLInformationTransfer-NB, + rrcConnectionReconfiguration-r13 RRCConnectionReconfiguration-NB, + rrcConnectionRelease-r13 RRCConnectionRelease-NB, + securityModeCommand-r13 SecurityModeCommand, + ueCapabilityEnquiry-r13 UECapabilityEnquiry-NB, + rrcConnectionResume-r13 RRCConnectionResume-NB, + spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + + +UL-CCCH-Message-NB ::= SEQUENCE { + message UL-CCCH-MessageType-NB +} + +UL-CCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishmentRequest-r13 RRCConnectionReestablishmentRequest-NB, + rrcConnectionRequest-r13 RRCConnectionRequest-NB, + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-NB, + spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +SC-MCCH-Message-NB ::= SEQUENCE { + message SC-MCCH-MessageType-NB +} + + +SC-MCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + scptmConfiguration-r14 SCPTMConfiguration-NB-r14 + }, + messageClassExtension SEQUENCE {} +} + + +UL-DCCH-Message-NB ::= SEQUENCE { + message UL-DCCH-MessageType-NB +} + +UL-DCCH-MessageType-NB ::= CHOICE { + c1 CHOICE { + rrcConnectionReconfigurationComplete-r13 RRCConnectionReconfigurationComplete-NB, + rrcConnectionReestablishmentComplete-r13 RRCConnectionReestablishmentComplete-NB, + rrcConnectionSetupComplete-r13 RRCConnectionSetupComplete-NB, + securityModeComplete-r13 SecurityModeComplete, + securityModeFailure-r13 SecurityModeFailure, + ueCapabilityInformation-r13 UECapabilityInformation-NB, + ulInformationTransfer-r13 ULInformationTransfer-NB, + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-NB, + spare8 NULL, spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +DLInformationTransfer-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + dlInformationTransfer-r13 DLInformationTransfer-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +DLInformationTransfer-NB-r13-IEs ::= SEQUENCE { + dedicatedInfoNAS-r13 DedicatedInfoNAS, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MasterInformationBlock-NB ::= SEQUENCE { + systemFrameNumber-MSB-r13 BIT STRING (SIZE (4)), + hyperSFN-LSB-r13 BIT STRING (SIZE (2)), + schedulingInfoSIB1-r13 INTEGER (0..15), + systemInfoValueTag-r13 INTEGER (0..31), + ab-Enabled-r13 BOOLEAN, + operationModeInfo-r13 CHOICE { + inband-SamePCI-r13 Inband-SamePCI-NB-r13, + inband-DifferentPCI-r13 Inband-DifferentPCI-NB-r13, + guardband-r13 Guardband-NB-r13, + standalone-r13 Standalone-NB-r13 + }, + spare BIT STRING (SIZE (11)) +} + +ChannelRasterOffset-NB-r13 ::= ENUMERATED {khz-7dot5, khz-2dot5, khz2dot5, khz7dot5} + +Guardband-NB-r13 ::= SEQUENCE { + rasterOffset-r13 ChannelRasterOffset-NB-r13, + spare BIT STRING (SIZE (3)) +} + +Inband-SamePCI-NB-r13 ::= SEQUENCE { + eutra-CRS-SequenceInfo-r13 INTEGER (0..31) +} + +Inband-DifferentPCI-NB-r13 ::= SEQUENCE { + eutra-NumCRS-Ports-r13 ENUMERATED {same, four}, + rasterOffset-r13 ChannelRasterOffset-NB-r13, + spare BIT STRING (SIZE (2)) +} + +Standalone-NB-r13 ::= SEQUENCE { + spare BIT STRING (SIZE (5)) +} + + +Paging-NB ::= SEQUENCE { + pagingRecordList-r13 PagingRecordList-NB-r13 OPTIONAL, -- Need ON + systemInfoModification-r13 ENUMERATED {true} OPTIONAL, -- Need ON + systemInfoModification-eDRX-r13 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PagingRecordList-NB-r13 ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord-NB-r13 + +PagingRecord-NB-r13 ::= SEQUENCE { + ue-Identity-r13 PagingUE-Identity, + ... +} + + +RRCConnectionReconfiguration-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReconfiguration-r13 RRCConnectionReconfiguration-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfiguration-NB-r13-IEs ::= SEQUENCE { + dedicatedInfoNASList-r13 SEQUENCE (SIZE(1..maxDRB-NB-r13)) OF + DedicatedInfoNAS OPTIONAL, -- Need ON + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13 OPTIONAL, -- Need ON + fullConfig-r13 ENUMERATED {true} OPTIONAL, -- Cond Reestab + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReconfigurationComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReconfigurationComplete-r13 RRCConnectionReconfigurationComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfigurationComplete-NB-r13-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + + +RRCConnectionReestablishment-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReestablishment-r13 RRCConnectionReestablishment-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishment-NB-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13, + nextHopChainingCount-r13 NextHopChainingCount, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReestablishment-NB-v1430-IEs OPTIONAL +} + +RRCConnectionReestablishment-NB-v1430-IEs ::= SEQUENCE { + dl-NAS-MAC BIT STRING (SIZE (16)) OPTIONAL, -- Cond Reestablish-CP + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReestablishmentComplete-r13 RRCConnectionReestablishmentComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentComplete-NB-r13-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-NB-v1470-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-NB-v1470-IEs ::= SEQUENCE { + measResultServCell-r14 MeasResultServCell-NB-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentRequest-NB ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentRequest-r13 + RRCConnectionReestablishmentRequest-NB-r13-IEs, + later CHOICE { + rrcConnectionReestablishmentRequest-r14 + RRCConnectionReestablishmentRequest-NB-r14-IEs, + criticalExtensionsFuture SEQUENCE {} + } + } +} + +RRCConnectionReestablishmentRequest-NB-r13-IEs ::= SEQUENCE { + ue-Identity-r13 ReestabUE-Identity, + reestablishmentCause-r13 ReestablishmentCause-NB-r13, + cqi-NPDCCH-r14 CQI-NPDCCH-NB-r14, + earlyContentionResolution-r14 BOOLEAN, + spare BIT STRING (SIZE (20)) +} + +RRCConnectionReestablishmentRequest-NB-r14-IEs ::= SEQUENCE { + ue-Identity-r14 ReestabUE-Identity-CP-NB-r14, + reestablishmentCause-r14 ReestablishmentCause-NB-r13, + cqi-NPDCCH-r14 CQI-NPDCCH-Short-NB-r14, + earlyContentionResolution-r14 BOOLEAN, + spare BIT STRING (SIZE (1)) +} + +ReestablishmentCause-NB-r13 ::= ENUMERATED { + reconfigurationFailure, otherFailure, + spare2, spare1} + +ReestabUE-Identity-CP-NB-r14 ::= SEQUENCE { + s-TMSI-r14 S-TMSI, + ul-NAS-MAC-r14 BIT STRING (SIZE (16)), + ul-NAS-Count-r14 BIT STRING (SIZE (5)) +} + + +RRCConnectionReject-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionReject-r13 RRCConnectionReject-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReject-NB-r13-IEs ::= SEQUENCE { + extendedWaitTime-r13 INTEGER (1..1800), + rrc-SuspendIndication-r13 ENUMERATED {true} OPTIONAL, -- Need ON + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionRelease-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionRelease-r13 RRCConnectionRelease-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRelease-NB-r13-IEs ::= SEQUENCE { + releaseCause-r13 ReleaseCause-NB-r13, + resumeIdentity-r13 ResumeIdentity-r13 OPTIONAL, -- Need OR + extendedWaitTime-r13 INTEGER (1..1800) OPTIONAL, -- Need ON + redirectedCarrierInfo-r13 RedirectedCarrierInfo-NB-r13 OPTIONAL, -- Need ON + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionRelease-NB-v1430-IEs OPTIONAL +} + +RRCConnectionRelease-NB-v1430-IEs ::= SEQUENCE { + redirectedCarrierInfo-v1430 RedirectedCarrierInfo-NB-v1430 OPTIONAL, -- Cond Redirection + extendedWaitTime-CPdata-r14 INTEGER (1..1800) OPTIONAL, -- Cond NoExtendedWaitTime + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +ReleaseCause-NB-r13 ::= ENUMERATED {loadBalancingTAUrequired, other, + rrc-Suspend, spare1} +RedirectedCarrierInfo-NB-r13::= CarrierFreq-NB-r13 + +RedirectedCarrierInfo-NB-v1430 ::= SEQUENCE { + redirectedCarrierOffsetDedicated-r14 ENUMERATED{ + dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24, dB26}, + t322-r14 ENUMERATED{ + min5, min10, min20, min30, min60, min120, min180, + spare1} +} + + +RRCConnectionRequest-NB ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionRequest-r13 RRCConnectionRequest-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRequest-NB-r13-IEs ::= SEQUENCE { + ue-Identity-r13 InitialUE-Identity, + establishmentCause-r13 EstablishmentCause-NB-r13, + multiToneSupport-r13 ENUMERATED {true} OPTIONAL, + multiCarrierSupport-r13 ENUMERATED {true} OPTIONAL, + cqi-NPDCCH-r14 CQI-NPDCCH-NB-r14, + earlyContentionResolution-r14 BOOLEAN, + spare BIT STRING (SIZE (17)) +} + + +RRCConnectionResume-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionResume-r13 RRCConnectionResume-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResume-NB-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13 OPTIONAL, -- Need ON + nextHopChainingCount-r13 NextHopChainingCount, + drb-ContinueROHC-r13 ENUMERATED {true} OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeComplete-NB-r13-IEs ::= SEQUENCE { + selectedPLMN-Identity-r13 INTEGER (1..maxPLMN-r11) OPTIONAL, + dedicatedInfoNAS-r13 DedicatedInfoNAS OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionResumeComplete-NB-v1470-IEs OPTIONAL +} + +RRCConnectionResumeComplete-NB-v1470-IEs ::= SEQUENCE { + measResultServCell-r14 MeasResultServCell-NB-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionResumeRequest-NB ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionResumeRequest-NB-r13-IEs ::= SEQUENCE { + resumeID-r13 ResumeIdentity-r13, + shortResumeMAC-I-r13 ShortMAC-I, + resumeCause-r13 EstablishmentCause-NB-r13, + cqi-NPDCCH-r14 CQI-NPDCCH-NB-r14, + earlyContentionResolution-r14 BOOLEAN, + spare BIT STRING (SIZE (4)) +} + + +RRCConnectionSetup-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionSetup-r13 RRCConnectionSetup-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetup-NB-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionSetupComplete-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE{ + rrcConnectionSetupComplete-r13 RRCConnectionSetupComplete-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetupComplete-NB-r13-IEs ::= SEQUENCE { + selectedPLMN-Identity-r13 INTEGER (1..maxPLMN-r11), + s-TMSI-r13 S-TMSI OPTIONAL, + registeredMME-r13 RegisteredMME OPTIONAL, + dedicatedInfoNAS-r13 DedicatedInfoNAS, + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL, + up-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-NB-v1430-IEs OPTIONAL +} + +RRCConnectionSetupComplete-NB-v1430-IEs ::= SEQUENCE { + gummei-Type-r14 ENUMERATED { mapped} OPTIONAL, + dcn-ID-r14 INTEGER (0..65535) OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-NB-v1470-IEs OPTIONAL +} + +RRCConnectionSetupComplete-NB-v1470-IEs ::= SEQUENCE { + measResultServCell-r14 MeasResultServCell-NB-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCPTMConfiguration-NB-r14 ::= SEQUENCE { + sc-mtch-InfoList-r14 SC-MTCH-InfoList-NB-r14, + scptm-NeighbourCellList-r14 SCPTM-NeighbourCellList-NB-r14 OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + systemInformation-r13 SystemInformation-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} +SystemInformation-NB-r13-IEs ::= SEQUENCE { + sib-TypeAndInfo-r13 SEQUENCE (SIZE (1..maxSIB)) OF CHOICE { + sib2-r13 SystemInformationBlockType2-NB-r13, + sib3-r13 SystemInformationBlockType3-NB-r13, + sib4-r13 SystemInformationBlockType4-NB-r13, + sib5-r13 SystemInformationBlockType5-NB-r13, + sib14-r13 SystemInformationBlockType14-NB-r13, + sib16-r13 SystemInformationBlockType16-NB-r13, + ..., + sib15-v1430 SystemInformationBlockType15-NB-r14, + sib20-v1430 SystemInformationBlockType20-NB-r14, + sib22-v1430 SystemInformationBlockType22-NB-r14 + }, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType1-NB ::= SEQUENCE { + hyperSFN-MSB-r13 BIT STRING (SIZE (8)), + cellAccessRelatedInfo-r13 SEQUENCE { + plmn-IdentityList-r13 PLMN-IdentityList-NB-r13, + trackingAreaCode-r13 TrackingAreaCode, + cellIdentity-r13 CellIdentity, + cellBarred-r13 ENUMERATED {barred, notBarred}, + intraFreqReselection-r13 ENUMERATED {allowed, notAllowed} + }, + cellSelectionInfo-r13 SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + q-QualMin-r13 Q-QualMin-r9 + }, + p-Max-r13 P-Max OPTIONAL, -- Need OP + freqBandIndicator-r13 FreqBandIndicator-NB-r13, + freqBandInfo-r13 NS-PmaxList-NB-r13 OPTIONAL, -- Need OR + multiBandInfoList-r13 MultiBandInfoList-NB-r13 OPTIONAL, -- Need OR + downlinkBitmap-r13 DL-Bitmap-NB-r13 OPTIONAL, -- Need OP, + eutraControlRegionSize-r13 ENUMERATED {n1, n2, n3} OPTIONAL, -- Cond inband + nrs-CRS-PowerOffset-r13 ENUMERATED {dB-6, dB-4dot77, dB-3, + dB-1dot77, dB0, dB1, + dB1dot23, dB2, dB3, + dB4, dB4dot23, dB5, + dB6, dB7, dB8, + dB9} OPTIONAL, -- Cond inband-SamePCI + schedulingInfoList-r13 SchedulingInfoList-NB-r13, + si-WindowLength-r13 ENUMERATED {ms160, ms320, ms480, ms640, + ms960, ms1280, ms1600, spare1}, + si-RadioFrameOffset-r13 INTEGER (1..15) OPTIONAL, -- Need OP + systemInfoValueTagList-r13 SystemInfoValueTagList-NB-r13 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SystemInformationBlockType1-NB-v1350 OPTIONAL +} + +SystemInformationBlockType1-NB-v1350 ::= SEQUENCE { + cellSelectionInfo-v1350 CellSelectionInfo-NB-v1350 OPTIONAL, -- Cond Qrxlevmin + nonCriticalExtension SystemInformationBlockType1-NB-v1430 OPTIONAL +} + +SystemInformationBlockType1-NB-v1430 ::= SEQUENCE { + cellSelectionInfo-v1430 CellSelectionInfo-NB-v1430 OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-NB-v1450 OPTIONAL +} + +SystemInformationBlockType1-NB-v1450 ::= SEQUENCE { + nrs-CRS-PowerOffset-v1450 ENUMERATED {dB-6, dB-4dot77, dB-3, + dB-1dot77, dB0, dB1, + dB1dot23, dB2, dB3, + dB4, dB4dot23, dB5, + dB6, dB7, dB8, + dB9} OPTIONAL, -- Cond inband-SamePCI-ExceptAnchor + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PLMN-IdentityList-NB-r13 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo-NB-r13 + +PLMN-IdentityInfo-NB-r13 ::= SEQUENCE { + plmn-Identity-r13 PLMN-Identity, + cellReservedForOperatorUse-r13 ENUMERATED {reserved, notReserved}, + attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL -- Need OP +} + +SchedulingInfoList-NB-r13 ::= SEQUENCE (SIZE (1..maxSI-Message-NB-r13)) OF SchedulingInfo-NB-r13 + +SchedulingInfo-NB-r13::= SEQUENCE { + si-Periodicity-r13 ENUMERATED {rf64, rf128, rf256, rf512, + rf1024, rf2048, rf4096, spare}, + si-RepetitionPattern-r13 ENUMERATED {every2ndRF, every4thRF, every8thRF, every16thRF}, + sib-MappingInfo-r13 SIB-MappingInfo-NB-r13, + si-TB-r13 ENUMERATED {b56, b120, b208, b256, b328, b440, b552, b680} +} + +SystemInfoValueTagList-NB-r13 ::= SEQUENCE (SIZE (1.. maxSI-Message-NB-r13)) OF + SystemInfoValueTagSI-r13 + +SIB-MappingInfo-NB-r13 ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type-NB-r13 + +SIB-Type-NB-r13 ::= ENUMERATED { + sibType3-NB-r13, sibType4-NB-r13, sibType5-NB-r13, + sibType14-NB-r13, sibType16-NB-r13, sibType15-NB-r14, + sibType20-NB-r14, sibType22-NB-r14} + +CellSelectionInfo-NB-v1350 ::= SEQUENCE { + delta-RxLevMin-v1350 INTEGER (-8..-1) +} + +CellSelectionInfo-NB-v1430 ::= SEQUENCE { + powerClass14dBm-Offset-r14 ENUMERATED {dB-6, dB-3, dB3, dB6, dB9, dB12} OPTIONAL, -- Need OP + ce-authorisationOffset-r14 ENUMERATED {dB5, dB10, dB15, dB20, dB25, dB30, dB35} OPTIONAL -- Need OP +} + + +UECapabilityEnquiry-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueCapabilityEnquiry-r13 UECapabilityEnquiry-NB-r13-IEs, + spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityEnquiry-NB-r13-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UECapabilityInformation-NB ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE{ + ueCapabilityInformation-r13 UECapabilityInformation-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityInformation-NB-r13-IEs ::= SEQUENCE { + ue-Capability-r13 UE-Capability-NB-r13, + ue-RadioPagingInfo-r13 UE-RadioPagingInfo-NB-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UECapabilityInformation-NB-Ext-r14-IEs OPTIONAL +} + +UECapabilityInformation-NB-Ext-r14-IEs ::= SEQUENCE { + ue-Capability-ContainerExt-r14 OCTET STRING (CONTAINING UE-Capability-NB-Ext-r14-IEs), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +ULInformationTransfer-NB ::= SEQUENCE { + criticalExtensions CHOICE { + ulInformationTransfer-r13 ULInformationTransfer-NB-r13-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULInformationTransfer-NB-r13-IEs ::= SEQUENCE { + dedicatedInfoNAS-r13 DedicatedInfoNAS, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType2-NB-r13 ::= SEQUENCE { + radioResourceConfigCommon-r13 RadioResourceConfigCommonSIB-NB-r13, + ue-TimersAndConstants-r13 UE-TimersAndConstants-NB-r13, + freqInfo-r13 SEQUENCE { + ul-CarrierFreq-r13 CarrierFreq-NB-r13 OPTIONAL, -- Need OP + additionalSpectrumEmission-r13 AdditionalSpectrumEmission + }, + timeAlignmentTimerCommon-r13 TimeAlignmentTimer, + multiBandInfoList-r13 SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ cp-Reestablishment-r14 ENUMERATED {true} OPTIONAL -- Need OP + ]], + [[ cqi-Reporting-r14 ENUMERATED {true} OPTIONAL, -- Need OR + servingCellMeasInfo-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + + +SystemInformationBlockType3-NB-r13 ::= SEQUENCE { + cellReselectionInfoCommon-r13 SEQUENCE { + q-Hyst-r13 ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24 + } + }, + cellReselectionServingFreqInfo-r13 SEQUENCE { + s-NonIntraSearch-r13 ReselectionThreshold + }, + intraFreqCellReselectionInfo-r13 SEQUENCE { + q-RxLevMin-r13 Q-RxLevMin, + q-QualMin-r13 Q-QualMin-r9 OPTIONAL, -- Need OP + p-Max-r13 P-Max OPTIONAL, -- Need OP + s-IntraSearchP-r13 ReselectionThreshold, + t-Reselection-r13 T-Reselection-NB-r13 + }, + freqBandInfo-r13 NS-PmaxList-NB-r13 OPTIONAL, -- Need OR + multiBandInfoList-r13 SEQUENCE (SIZE (1..maxMultiBands)) OF + NS-PmaxList-NB-r13 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ intraFreqCellReselectionInfo-v1350 IntraFreqCellReselectionInfo-NB-v1350 OPTIONAL -- Cond Qrxlevmin + ]], + [[ intraFreqCellReselectionInfo-v1360 IntraFreqCellReselectionInfo-NB-v1360 OPTIONAL -- Need OR + ]], + [[ intraFreqCellReselectionInfo-v1430 IntraFreqCellReselectionInfo-NB-v1430 OPTIONAL -- Need OR + ]], + [[ cellReselectionInfoCommon-v1450 CellReselectionInfoCommon-NB-v1450 OPTIONAL -- Need OR + ]] +} + +IntraFreqCellReselectionInfo-NB-v1350 ::= SEQUENCE { + delta-RxLevMin-v1350 INTEGER (-8..-1) +} + +IntraFreqCellReselectionInfo-NB-v1360 ::= SEQUENCE { + s-IntraSearchP-v1360 ReselectionThreshold-NB-v1360 +} + +IntraFreqCellReselectionInfo-NB-v1430 ::= SEQUENCE { + powerClass14dBm-Offset-r14 ENUMERATED {dB-6, dB-3, dB3, dB6, dB9, dB12} OPTIONAL, -- Need OP + ce-AuthorisationOffset-r14 ENUMERATED {dB5, dB10, dB15, dB20, dB25, dB30, dB35} OPTIONAL -- Need OP +} + +CellReselectionInfoCommon-NB-v1450 ::= SEQUENCE { + s-SearchDeltaP-r14 ENUMERATED {dB6, dB9, dB12, dB15} +} + + +SystemInformationBlockType4-NB-r13 ::= SEQUENCE { + intraFreqNeighCellList-r13 IntraFreqNeighCellList OPTIONAL, -- Need OR + intraFreqBlackCellList-r13 IntraFreqBlackCellList OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + + +SystemInformationBlockType5-NB-r13 ::= SEQUENCE { + interFreqCarrierFreqList-r13 InterFreqCarrierFreqList-NB-r13, + t-Reselection-r13 T-Reselection-NB-r13, + lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ scptm-FreqOffset-r14 INTEGER (1..8) OPTIONAL -- Need OP + ]] +} + + +InterFreqCarrierFreqList-NB-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-NB-r13 + + +InterFreqCarrierFreqInfo-NB-r13 ::= SEQUENCE { + dl-CarrierFreq-r13 CarrierFreq-NB-r13, + q-RxLevMin-r13 Q-RxLevMin, + q-QualMin-r13 Q-QualMin-r9 OPTIONAL, -- Need OP + p-Max-r13 P-Max OPTIONAL, -- Need OP + q-OffsetFreq-r13 Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList-r13 InterFreqNeighCellList-NB-r13 OPTIONAL, -- Need OR + interFreqBlackCellList-r13 InterFreqBlackCellList-NB-r13 OPTIONAL, -- Need OR + multiBandInfoList-r13 MultiBandInfoList-NB-r13 OPTIONAL, -- Need OR + ..., + [[ delta-RxLevMin-v1350 INTEGER (-8..-1) OPTIONAL -- Cond Qrxlevmin + ]], + [[ powerClass14dBm-Offset-r14 ENUMERATED {dB-6, dB-3, dB3, dB6, dB9, dB12} +OPTIONAL, -- Need OP + ce-AuthorisationOffset-r14 ENUMERATED {dB5, dB10, dB15, dB20, dB25, dB30, dB35} OPTIONAL -- Need OP + ]] +} + +InterFreqNeighCellList-NB-r13 ::= SEQUENCE (SIZE (1..maxCellInter)) OF PhysCellId + + +InterFreqBlackCellList-NB-r13 ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellId + + + +SystemInformationBlockType14-NB-r13 ::= SEQUENCE { + ab-Param-r13 CHOICE { + ab-Common-r13 AB-Config-NB-r13, + ab-PerPLMN-List-r13 SEQUENCE (SIZE (1..maxPLMN-r11)) OF AB-ConfigPLMN-NB-r13 + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +AB-ConfigPLMN-NB-r13 ::= SEQUENCE { + ab-Config-r13 AB-Config-NB-r13 OPTIONAL -- Need OR +} + +AB-Config-NB-r13 ::= SEQUENCE { + ab-Category-r13 ENUMERATED {a, b, c}, + ab-BarringBitmap-r13 BIT STRING (SIZE(10)), + ab-BarringForExceptionData-r13 ENUMERATED {true} OPTIONAL, -- Need OP + ab-BarringForSpecialAC-r13 BIT STRING (SIZE(5)) +} + + +SystemInformationBlockType15-NB-r14 ::= SEQUENCE { + mbms-SAI-IntraFreq-r14 MBMS-SAI-List-r11 OPTIONAL, -- Need OR + mbms-SAI-InterFreqList-r14 MBMS-SAI-InterFreqList-NB-r14 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +MBMS-SAI-InterFreqList-NB-r14 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-NB-r14 + +MBMS-SAI-InterFreq-NB-r14 ::= SEQUENCE { + dl-CarrierFreq-r14 CarrierFreq-NB-r13, + mbms-SAI-List-r14 MBMS-SAI-List-r11, + multiBandInfoList-r14 AdditionalBandInfoList-NB-r14 OPTIONAL -- Need OR +} + + +SystemInformationBlockType16-NB-r13 ::= SystemInformationBlockType16-r11 + + +SystemInformationBlockType20-NB-r14 ::= SEQUENCE { + npdcch-SC-MCCH-Config-r14 NPDCCH-SC-MCCH-Config-NB-r14, + sc-mcch-CarrierConfig-r14 CHOICE { + dl-CarrierConfig-r14 DL-CarrierConfigCommon-NB-r14, + dl-CarrierIndex-r14 INTEGER (0.. maxNonAnchorCarriers-NB-r14) + }, + sc-mcch-RepetitionPeriod-r14 ENUMERATED {rf32, rf128, rf512, rf1024, + rf2048, rf4096, rf8192, rf16384}, + sc-mcch-Offset-r14 INTEGER (0..10), + sc-mcch-ModificationPeriod-r14 ENUMERATED { rf32, rf128, rf256, rf512, rf1024, + rf2048, rf4096, rf8192, rf16384, rf32768, + rf65536, rf131072, rf262144, rf524288, + rf1048576, spare1}, + sc-mcch-SchedulingInfo-r14 SC-MCCH-SchedulingInfo-NB-r14 OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +NPDCCH-SC-MCCH-Config-NB-r14 ::= SEQUENCE { + npdcch-NumRepetitions-SC-MCCH-r14 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256, + r512, r1024, r2048}, + npdcch-StartSF-SC-MCCH-r14 ENUMERATED {v1dot5, v2, v4, v8, + v16, v32, v48, v64}, + npdcch-Offset-SC-MCCH-r14 ENUMERATED {zero, oneEighth, oneQuarter, + threeEighth, oneHalf, fiveEighth, + threeQuarter, sevenEighth} +} + +SC-MCCH-SchedulingInfo-NB-r14::= SEQUENCE { + onDurationTimerSCPTM-r14 ENUMERATED { + pp1, pp2, pp3, pp4, + pp8, pp16, pp32, spare}, + drx-InactivityTimerSCPTM-r14 ENUMERATED { + pp0, pp1, pp2, pp3, + pp4, pp8, pp16, pp32}, + schedulingPeriodStartOffsetSCPTM-r14 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2047), + sf4096 INTEGER(0..4095), + sf8192 INTEGER(0..8191) + }, + ... +} + + +SystemInformationBlockType22-NB-r14 ::= SEQUENCE { + dl-ConfigList-r14 DL-ConfigCommonList-NB-r14 OPTIONAL, -- Need OR + ul-ConfigList-r14 UL-ConfigCommonList-NB-r14 OPTIONAL, -- Need OR + pagingWeightAnchor-r14 PagingWeight-NB-r14 OPTIONAL, -- Cond pcch-config + nprach-ProbabilityAnchorList-r14 NPRACH-ProbabilityAnchorList-NB-r14 OPTIONAL, -- Cond nprach-config + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +DL-ConfigCommonList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNonAnchorCarriers-NB-r14)) OF + DL-ConfigCommon-NB-r14 + +UL-ConfigCommonList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNonAnchorCarriers-NB-r14)) OF + UL-ConfigCommon-NB-r14 + + +DL-ConfigCommon-NB-r14 ::= SEQUENCE { + dl-CarrierConfig-r14 DL-CarrierConfigCommon-NB-r14, + pcch-Config-r14 PCCH-Config-NB-r14 OPTIONAL, -- Need OR + ... +} + +PCCH-Config-NB-r14 ::= SEQUENCE { + npdcch-NumRepetitionPaging-r14 ENUMERATED { + r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1} OPTIONAL, -- Need OP + pagingWeight-r14 PagingWeight-NB-r14 DEFAULT w1, + ... +} + +PagingWeight-NB-r14 ::= ENUMERATED {w1, w2, w3, w4, w5, w6, w7, w8, + w9, w10, w11, w12, w13, w14, w15, w16} + +UL-ConfigCommon-NB-r14 ::= SEQUENCE { + ul-CarrierFreq-r14 CarrierFreq-NB-r13, + nprach-ParametersList-r14 NPRACH-ParametersList-NB-r14 OPTIONAL, -- Need OR + ... +} + +NPRACH-ParametersList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF + NPRACH-Parameters-NB-r14 + + +NPRACH-Parameters-NB-r14 ::= SEQUENCE { + nprach-Parameters-r14 SEQUENCE { + nprach-Periodicity-r14 ENUMERATED {ms40, ms80, ms160, ms240, + ms320, ms640, ms1280, ms2560} + OPTIONAL, -- NEED OP + nprach-StartTime-r14 ENUMERATED {ms8, ms16, ms32, ms64, + ms128, ms256, ms512, ms1024} + OPTIONAL, -- NEED OP + nprach-SubcarrierOffset-r14 ENUMERATED {n0, n12, n24, n36, n2, n18, n34, spare1} + OPTIONAL, -- NEED OP + nprach-NumSubcarriers-r14 ENUMERATED {n12, n24, n36, n48} + OPTIONAL, -- NEED OP + nprach-SubcarrierMSG3-RangeStart-r14 ENUMERATED {zero, oneThird, twoThird, one} + OPTIONAL, -- NEED OP + npdcch-NumRepetitions-RA-r14 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1} + OPTIONAL, -- NEED OP + npdcch-StartSF-CSS-RA-r14 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64} + OPTIONAL, -- NEED OP + npdcch-Offset-RA-r14 ENUMERATED {zero, oneEighth, oneFourth, threeEighth} + OPTIONAL, -- NEED OP + nprach-NumCBRA-StartSubcarriers-r14 ENUMERATED {n8, n10, n11, n12, n20, n22, n23, n24, + n32, n34, n35, n36, n40, n44, n46, n48} + OPTIONAL, -- NEED OP + npdcch-CarrierIndex-r14 INTEGER (1..maxNonAnchorCarriers-NB-r14) + OPTIONAL, -- Need OP + ... + } OPTIONAL -- Need OR +} + +NPRACH-ProbabilityAnchorList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF + NPRACH-ProbabilityAnchor-NB-r14 + +NPRACH-ProbabilityAnchor-NB-r14 ::= SEQUENCE { + nprach-ProbabilityAnchor-r14 ENUMERATED { + zero, oneSixteenth, oneFifteenth, oneFourteenth, + oneThirteenth, oneTwelfth, oneEleventh, oneTenth, + oneNinth, oneEighth, oneSeventh, oneSixth, + oneFifth, oneFourth, oneThird, oneHalf} + OPTIONAL -- Need OP +} + + +CarrierConfigDedicated-NB-r13 ::= SEQUENCE { + dl-CarrierConfig-r13 DL-CarrierConfigDedicated-NB-r13, + ul-CarrierConfig-r13 UL-CarrierConfigDedicated-NB-r13 +} + +DL-CarrierConfigDedicated-NB-r13 ::= SEQUENCE { + dl-CarrierFreq-r13 CarrierFreq-NB-r13, + downlinkBitmapNonAnchor-r13 CHOICE { + useNoBitmap-r13 NULL, + useAnchorBitmap-r13 NULL, + explicitBitmapConfiguration-r13 DL-Bitmap-NB-r13, + spare NULL + } OPTIONAL, -- Need ON + dl-GapNonAnchor-r13 CHOICE { + useNoGap-r13 NULL, + useAnchorGapConfig-r13 NULL, + explicitGapConfiguration-r13 DL-GapConfig-NB-r13, + spare NULL + } OPTIONAL, -- Need ON + inbandCarrierInfo-r13 SEQUENCE { + samePCI-Indicator-r13 CHOICE { + samePCI-r13 SEQUENCE { + indexToMidPRB-r13 INTEGER (-55..54) + }, + differentPCI-r13 SEQUENCE { + eutra-NumCRS-Ports-r13 ENUMERATED {same, four} + } + } OPTIONAL, -- Cond anchor-guardband + eutraControlRegionSize-r13 ENUMERATED {n1, n2, n3} + } OPTIONAL, -- Cond non-anchor-inband + ..., + [[ nrs-PowerOffsetNonAnchor-v1330 ENUMERATED {dB-12, dB-10, dB-8, dB-6, + dB-4, dB-2, dB0, dB3} + OPTIONAL -- Need ON + ]] +} + +UL-CarrierConfigDedicated-NB-r13 ::= SEQUENCE { + ul-CarrierFreq-r13 CarrierFreq-NB-r13 OPTIONAL, -- Need OP + ... +} + + +CarrierFreq-NB-r13 ::= SEQUENCE { + carrierFreq-r13 ARFCN-ValueEUTRA-r9, + carrierFreqOffset-r13 ENUMERATED { + v-10, v-9, v-8, v-7, v-6, v-5, v-4, v-3, v-2, v-1, v-0dot5, + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9 + } OPTIONAL -- Need ON +} + + +DL-Bitmap-NB-r13 ::= CHOICE { + subframePattern10-r13 BIT STRING (SIZE (10)), + subframePattern40-r13 BIT STRING (SIZE (40)) +} + + +DL-CarrierConfigCommon-NB-r14 ::= SEQUENCE { + dl-CarrierFreq-r14 CarrierFreq-NB-r13, + downlinkBitmapNonAnchor-r14 CHOICE { + useNoBitmap-r14 NULL, + useAnchorBitmap-r14 NULL, + explicitBitmapConfiguration-r14 DL-Bitmap-NB-r13 + }, + dl-GapNonAnchor-r14 CHOICE { + useNoGap-r14 NULL, + useAnchorGapConfig-r14 NULL, + explicitGapConfiguration-r14 DL-GapConfig-NB-r13 + }, + inbandCarrierInfo-r14 SEQUENCE { + samePCI-Indicator-r14 CHOICE { + samePCI-r14 SEQUENCE { + indexToMidPRB-r14 INTEGER (-55..54) + }, + differentPCI-r14 SEQUENCE { + eutra-NumCRS-Ports-r14 ENUMERATED {same, four} + } + } OPTIONAL, -- Cond anchor-guardband + eutraControlRegionSize-r14 ENUMERATED {n1, n2, n3} + } OPTIONAL, -- Cond non-anchor-inband + nrs-PowerOffsetNonAnchor-r14 ENUMERATED {dB-12, dB-10, dB-8, dB-6, + dB-4, dB-2, dB0, dB3} DEFAULT dB0, + ... +} + + + +DL-GapConfig-NB-r13 ::= SEQUENCE { + dl-GapThreshold-r13 ENUMERATED {n32, n64, n128, n256}, + dl-GapPeriodicity-r13 ENUMERATED {sf64, sf128, sf256, sf512}, + dl-GapDurationCoeff-r13 ENUMERATED {oneEighth, oneFourth, threeEighth, oneHalf} +} + + +LogicalChannelConfig-NB-r13 ::= SEQUENCE { + priority-r13 INTEGER (1..16) OPTIONAL, -- Cond UL + logicalChannelSR-Prohibit-r13 BOOLEAN OPTIONAL, -- Need ON + ... +} + + +MAC-MainConfig-NB-r13 ::= SEQUENCE { + ul-SCH-Config-r13 SEQUENCE { + periodicBSR-Timer-r13 PeriodicBSR-Timer-NB-r13 OPTIONAL, -- Need ON + retxBSR-Timer-r13 RetxBSR-Timer-NB-r13 + } OPTIONAL, -- Need ON + drx-Config-r13 DRX-Config-NB-r13 OPTIONAL, -- Need ON + timeAlignmentTimerDedicated-r13 TimeAlignmentTimer, + logicalChannelSR-Config-r13 CHOICE { + release NULL, + setup SEQUENCE { + logicalChannelSR-ProhibitTimer-r13 ENUMERATED { + pp2, pp8, pp32, pp128, pp512, + pp1024, pp2048, spare} + } + } OPTIONAL, -- Need ON + ..., + [[ rai-Activation-r14 ENUMERATED {true} OPTIONAL, -- Need OR + dataInactivityTimerConfig-r14 CHOICE { + release NULL, + setup SEQUENCE { + dataInactivityTimer-r14 DataInactivityTimer-r14 + } + } OPTIONAL -- Need ON + ]], + [[ drx-Cycle-v1430 ENUMERATED { + sf1280, sf2560, sf5120, sf10240} OPTIONAL -- Need ON + ]], + [[ ra-CFRA-Config-r14 ENUMERATED {true} OPTIONAL -- Need ON + ]] +} + +PeriodicBSR-Timer-NB-r13 ::= ENUMERATED { + pp2, pp4, pp8, pp16, pp64, pp128, infinity, spare} + +RetxBSR-Timer-NB-r13 ::= ENUMERATED { + pp4, pp16, pp64, pp128, pp256, pp512, infinity, spare} + +DRX-Config-NB-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + onDurationTimer-r13 ENUMERATED { + pp1, pp2, pp3, pp4, pp8, pp16, pp32, spare}, + drx-InactivityTimer-r13 ENUMERATED { + pp0, pp1, pp2, pp3, pp4, pp8, pp16, pp32}, + drx-RetransmissionTimer-r13 ENUMERATED { + pp0, pp1, pp2, pp4, pp6, pp8, pp16, pp24, + pp33, spare7, spare6, spare5, + spare4, spare3, spare2, spare1}, + drx-Cycle-r13 ENUMERATED { + sf256, sf512, sf1024, sf1536, sf2048, sf3072, + sf4096, sf4608, sf6144, sf7680, sf8192, sf9216, + spare4, spare3, spare2, spare1}, + drx-StartOffset-r13 INTEGER (0..255), + drx-ULRetransmissionTimer-r13 ENUMERATED { + pp0, pp1, pp2, pp4, pp6, pp8, pp16, pp24, + pp33, pp40, pp64, pp80, pp96, + pp112, pp128, pp160, pp320} + } +} + + + +NPDCCH-ConfigDedicated-NB-r13 ::= SEQUENCE { + npdcch-NumRepetitions-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1}, + npdcch-StartSF-USS-r13 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64}, + npdcch-Offset-USS-r13 ENUMERATED {zero, oneEighth, oneFourth, threeEighth} +} + + + +NPDSCH-ConfigCommon-NB-r13 ::= SEQUENCE { + nrs-Power-r13 INTEGER (-60..50) +} + + +NPRACH-ConfigSIB-NB-r13 ::= SEQUENCE { + nprach-CP-Length-r13 ENUMERATED {us66dot7, us266dot7}, + rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsNPRACH-InfoList-NB-r13 OPTIONAL, -- need OR + nprach-ParametersList-r13 NPRACH-ParametersList-NB-r13 +} + +NPRACH-ConfigSIB-NB-v1330 ::= SEQUENCE { + nprach-ParametersList-v1330 NPRACH-ParametersList-NB-v1330 +} + +NPRACH-ConfigSIB-NB-v1450 ::= SEQUENCE { + maxNumPreambleAttemptCE-r14 ENUMERATED {n3, n4, n5, n6, n7, n8, n10, spare1} +} + +NPRACH-ParametersList-NB-r13 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF NPRACH-Parameters-NB-r13 + +NPRACH-ParametersList-NB-v1330 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF NPRACH-Parameters-NB-v1330 + +NPRACH-Parameters-NB-r13::= SEQUENCE { + nprach-Periodicity-r13 ENUMERATED {ms40, ms80, ms160, ms240, + ms320, ms640, ms1280, ms2560}, + nprach-StartTime-r13 ENUMERATED {ms8, ms16, ms32, ms64, + ms128, ms256, ms512, ms1024}, + nprach-SubcarrierOffset-r13 ENUMERATED {n0, n12, n24, n36, n2, n18, n34, spare1}, + nprach-NumSubcarriers-r13 ENUMERATED {n12, n24, n36, n48}, + nprach-SubcarrierMSG3-RangeStart-r13 ENUMERATED {zero, oneThird, twoThird, one}, + maxNumPreambleAttemptCE-r13 ENUMERATED {n3, n4, n5, n6, n7, n8, n10, spare1}, + numRepetitionsPerPreambleAttempt-r13 ENUMERATED {n1, n2, n4, n8, n16, n32, n64, n128}, + npdcch-NumRepetitions-RA-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1}, + npdcch-StartSF-CSS-RA-r13 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64}, + npdcch-Offset-RA-r13 ENUMERATED {zero, oneEighth, oneFourth, threeEighth} +} + +NPRACH-Parameters-NB-v1330 ::= SEQUENCE { + nprach-NumCBRA-StartSubcarriers-r13 ENUMERATED {n8, n10, n11, n12, n20, n22, n23, n24, + n32, n34, n35, n36, n40, n44, n46, n48} +} + +RSRP-ThresholdsNPRACH-InfoList-NB-r13 ::= SEQUENCE (SIZE(1..2)) OF RSRP-Range + + +NPUSCH-ConfigCommon-NB-r13 ::= SEQUENCE { + ack-NACK-NumRepetitions-Msg4-r13 SEQUENCE (SIZE(1.. maxNPRACH-Resources-NB-r13)) OF + ACK-NACK-NumRepetitions-NB-r13, + srs-SubframeConfig-r13 ENUMERATED { + sc0, sc1, sc2, sc3, sc4, sc5, sc6, sc7, + sc8, sc9, sc10, sc11, sc12, sc13, sc14, sc15 + } OPTIONAL, -- Need OR + dmrs-Config-r13 SEQUENCE { + threeTone-BaseSequence-r13 INTEGER (0..12) OPTIONAL, -- Need OP + threeTone-CyclicShift-r13 INTEGER (0..2), + sixTone-BaseSequence-r13 INTEGER (0..14) OPTIONAL, -- Need OP + sixTone-CyclicShift-r13 INTEGER (0..3), + twelveTone-BaseSequence-r13 INTEGER (0..30) OPTIONAL -- Need OP + } OPTIONAL, -- Need OR + ul-ReferenceSignalsNPUSCH-r13 UL-ReferenceSignalsNPUSCH-NB-r13 +} + +UL-ReferenceSignalsNPUSCH-NB-r13 ::= SEQUENCE { + groupHoppingEnabled-r13 BOOLEAN, + groupAssignmentNPUSCH-r13 INTEGER (0..29) +} + +NPUSCH-ConfigDedicated-NB-r13 ::= SEQUENCE { + ack-NACK-NumRepetitions-r13 ACK-NACK-NumRepetitions-NB-r13 OPTIONAL, -- Need ON + npusch-AllSymbols-r13 BOOLEAN OPTIONAL, -- Cond SRS + groupHoppingDisabled-r13 ENUMERATED {true} OPTIONAL -- Need OR +} + +ACK-NACK-NumRepetitions-NB-r13 ::= ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128} + + + +PDCP-Config-NB-r13 ::= SEQUENCE { + discardTimer-r13 ENUMERATED { + ms5120, ms10240, ms20480, ms40960, + ms81920, infinity, spare2, spare1 + } OPTIONAL, -- Cond Setup + headerCompression-r13 CHOICE { + notUsed NULL, + rohc SEQUENCE { + maxCID-r13 INTEGER (1..16383) DEFAULT 15, + profiles-r13 SEQUENCE { + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + ... + } + }, + ... +} + + +PhysicalConfigDedicated-NB-r13 ::= SEQUENCE { + carrierConfigDedicated-r13 CarrierConfigDedicated-NB-r13 OPTIONAL, -- Need ON + npdcch-ConfigDedicated-r13 NPDCCH-ConfigDedicated-NB-r13 OPTIONAL, -- Need ON + npusch-ConfigDedicated-r13 NPUSCH-ConfigDedicated-NB-r13 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-r13 UplinkPowerControlDedicated-NB-r13 OPTIONAL, -- Need ON + ..., + [[ twoHARQ-ProcessesConfig-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ interferenceRandomisationConfig-r14 ENUMERATED {true} OPTIONAL -- Need OR + ]] +} + + +RACH-ConfigCommon-NB-r13 ::= SEQUENCE { + preambleTransMax-CE-r13 PreambleTransMax, + powerRampingParameters-r13 PowerRampingParameters, + rach-InfoList-r13 RACH-InfoList-NB-r13, + connEstFailOffset-r13 INTEGER (0..15) OPTIONAL, -- Need OP + ..., + [[ powerRampingParameters-v1450 PowerRampingParameters-NB-v1450 OPTIONAL -- Need OR + ]] +} + +RACH-InfoList-NB-r13 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF RACH-Info-NB-r13 + +RACH-Info-NB-r13 ::= SEQUENCE { + ra-ResponseWindowSize-r13 ENUMERATED { + pp2, pp3, pp4, pp5, pp6, pp7, pp8, pp10}, + mac-ContentionResolutionTimer-r13 ENUMERATED { + pp1, pp2, pp3, pp4, pp8, pp16, pp32, pp64} +} + +PowerRampingParameters-NB-v1450 ::= SEQUENCE { + preambleInitialReceivedTargetPower-v1450 ENUMERATED { + dBm-130, dBm-128, dBm-126, dBm-124, dBm-122, + dBm-88, dBm-86, dBm-84,dBm-82, dBm-80} + OPTIONAL, -- Need OR + powerRampingParametersCE1-r14 SEQUENCE { + powerRampingStepCE1-r14 ENUMERATED {dB0, dB2, dB4, dB6}, + preambleInitialReceivedTargetPowerCE1-r14 ENUMERATED { + dBm-130, dBm-128, dBm-126, dBm-124, dBm-122, + dBm-120, dBm-118, dBm-116, dBm-114, dBm-112, + dBm-110, dBm-108, dBm-106, dBm-104, dBm-102, + dBm-100, dBm-98, dBm-96, dBm-94, dBm-92, + dBm-90, dBm-88, dBm-86, dBm-84, dBm-82, dBm-80} + } OPTIONAL -- Need OR +} + + +RadioResourceConfigCommonSIB-NB-r13 ::= SEQUENCE { + rach-ConfigCommon-r13 RACH-ConfigCommon-NB-r13, + bcch-Config-r13 BCCH-Config-NB-r13, + pcch-Config-r13 PCCH-Config-NB-r13, + nprach-Config-r13 NPRACH-ConfigSIB-NB-r13, + npdsch-ConfigCommon-r13 NPDSCH-ConfigCommon-NB-r13, + npusch-ConfigCommon-r13 NPUSCH-ConfigCommon-NB-r13, + dl-Gap-r13 DL-GapConfig-NB-r13 OPTIONAL, -- Need OP + uplinkPowerControlCommon-r13 UplinkPowerControlCommon-NB-r13, + ..., + [[ nprach-Config-v1330 NPRACH-ConfigSIB-NB-v1330 OPTIONAL -- Need OR + ]], + [[ nprach-Config-v1450 NPRACH-ConfigSIB-NB-v1450 OPTIONAL -- Cond EnhPowerControl + ]] +} + +BCCH-Config-NB-r13 ::= SEQUENCE { + modificationPeriodCoeff-r13 ENUMERATED {n16, n32, n64, n128} +} + + +PCCH-Config-NB-r13 ::= SEQUENCE { + defaultPagingCycle-r13 ENUMERATED {rf128, rf256, rf512, rf1024}, + nB-r13 ENUMERATED { + fourT, twoT, oneT, halfT, quarterT, one8thT, + one16thT, one32ndT, one64thT, + one128thT, one256thT, one512thT, one1024thT, + spare3, spare2, spare1}, + npdcch-NumRepetitionPaging-r13 ENUMERATED { + r1, r2, r4, r8, r16, r32, r64, r128, + r256, r512, r1024, r2048, + spare4, spare3, spare2, spare1} +} + + +RadioResourceConfigDedicated-NB-r13 ::= SEQUENCE { + srb-ToAddModList-r13 SRB-ToAddModList-NB-r13 OPTIONAL, -- Need ON + drb-ToAddModList-r13 DRB-ToAddModList-NB-r13 OPTIONAL, -- Need ON + drb-ToReleaseList-r13 DRB-ToReleaseList-NB-r13 OPTIONAL, -- Need ON + mac-MainConfig-r13 CHOICE { + explicitValue-r13 MAC-MainConfig-NB-r13, + defaultValue-r13 NULL + } OPTIONAL, -- Need ON + physicalConfigDedicated-r13 PhysicalConfigDedicated-NB-r13 OPTIONAL, -- Need ON + rlf-TimersAndConstants-r13 RLF-TimersAndConstants-NB-r13 OPTIONAL, -- Need ON + ... +} + +SRB-ToAddModList-NB-r13 ::= SEQUENCE (SIZE (1)) OF SRB-ToAddMod-NB-r13 + +SRB-ToAddMod-NB-r13 ::= SEQUENCE { + rlc-Config-r13 CHOICE { + explicitValue RLC-Config-NB-r13, + defaultValue NULL + } OPTIONAL, -- Cond Setup + logicalChannelConfig-r13 CHOICE { + explicitValue LogicalChannelConfig-NB-r13, + defaultValue NULL + } OPTIONAL, -- Cond Setup + ..., + [[ rlc-Config-v1430 RLC-Config-NB-v1430 OPTIONAL -- Need ON + ]] +} + +DRB-ToAddModList-NB-r13 ::= SEQUENCE (SIZE (1..maxDRB-NB-r13)) OF DRB-ToAddMod-NB-r13 + +DRB-ToAddMod-NB-r13 ::= SEQUENCE { + eps-BearerIdentity-r13 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity-r13 DRB-Identity, + pdcp-Config-r13 PDCP-Config-NB-r13 OPTIONAL, -- Cond Setup + rlc-Config-r13 RLC-Config-NB-r13 OPTIONAL, -- Cond Setup + logicalChannelIdentity-r13 INTEGER (3..10) OPTIONAL, -- Cond DRB-Setup + logicalChannelConfig-r13 LogicalChannelConfig-NB-r13 OPTIONAL, -- Cond Setup + ..., + [[ rlc-Config-v1430 RLC-Config-NB-v1430 OPTIONAL -- Need ON + ]] +} + +DRB-ToReleaseList-NB-r13 ::= SEQUENCE (SIZE (1..maxDRB-NB-r13)) OF DRB-Identity + + +RLC-Config-NB-r13 ::= CHOICE { + am SEQUENCE { + ul-AM-RLC-r13 UL-AM-RLC-NB-r13, + dl-AM-RLC-r13 DL-AM-RLC-NB-r13 + }, + ... +} + +RLC-Config-NB-v1430 ::= SEQUENCE { + t-Reordering-r14 T-Reordering OPTIONAL -- Cond twoHARQ +} + +UL-AM-RLC-NB-r13 ::= SEQUENCE { + t-PollRetransmit-r13 T-PollRetransmit-NB-r13, + maxRetxThreshold-r13 ENUMERATED {t1, t2, t3, t4, t6, t8, t16, t32} +} + +DL-AM-RLC-NB-r13 ::= SEQUENCE { + enableStatusReportSN-Gap-r13 ENUMERATED {true} OPTIONAL +} + +T-PollRetransmit-NB-r13 ::= ENUMERATED { + ms250, ms500, ms1000, ms2000, ms3000, ms4000, + ms6000, ms10000, ms15000, ms25000, ms40000, ms60000, + ms90000, ms120000, ms180000, spare1} + + + + +RLF-TimersAndConstants-NB-r13 ::= CHOICE { + release NULL, + setup SEQUENCE { + t301-r13 ENUMERATED { + ms2500, ms4000, ms6000, ms10000, + ms15000, ms25000, ms40000, ms60000}, + t310-r13 ENUMERATED { + ms0, ms200, ms500, ms1000, ms2000, ms4000, ms8000}, + n310-r13 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311-r13 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311-r13 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ..., + [[ t311-v1350 ENUMERATED { + ms40000, ms60000, ms90000, ms120000} + OPTIONAL -- Need OR + ]] + } +} + + + +UplinkPowerControlCommon-NB-r13 ::= SEQUENCE { + p0-NominalNPUSCH-r13 INTEGER (-126..24), + alpha-r13 ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1}, + deltaPreambleMsg3-r13 INTEGER (-1..6) +} + +UplinkPowerControlDedicated-NB-r13 ::= SEQUENCE { + p0-UE-NPUSCH-r13 INTEGER (-8..7) +} + + +AdditionalBandInfoList-NB-r14 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-NB-r13 + + +FreqBandIndicator-NB-r13 ::= INTEGER (1.. maxFBI2) + + +MultiBandInfoList-NB-r13 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF MultiBandInfo-NB-r13 + +MultiBandInfo-NB-r13 ::= SEQUENCE { + freqBandIndicator-r13 FreqBandIndicator-NB-r13 OPTIONAL, -- Need OR + freqBandInfo-r13 NS-PmaxList-NB-r13 OPTIONAL -- Need OR +} + + +NS-PmaxList-NB-r13 ::= SEQUENCE (SIZE (1..maxNS-Pmax-NB-r13)) OF NS-PmaxValue-NB-r13 + +NS-PmaxValue-NB-r13 ::= SEQUENCE { + additionalPmax-r13 P-Max OPTIONAL, -- Need OR + additionalSpectrumEmission-r13 AdditionalSpectrumEmission +} + + +ReselectionThreshold-NB-v1360 ::= INTEGER (32..63) + + +T-Reselection-NB-r13 ::= ENUMERATED {s0, s3, s6, s9, s12, s15, s18, s21} + + +CQI-NPDCCH-NB-r14 ::= ENUMERATED { + noMeasurements, candidateRep-A, candidateRep-B, candidateRep-C, + candidateRep-D, candidateRep-E, candidateRep-F, candidateRep-G, + candidateRep-H, candidateRep-I, candidateRep-J, candidateRep-K, + candidateRep-L} + + +CQI-NPDCCH-Short-NB-r14 ::= ENUMERATED { + noMeasurements, candidateRep-1, candidateRep-2, candidateRep-3} + + +MeasResultServCell-NB-r14 ::= SEQUENCE { + nrsrpResult-r14 NRSRP-Range-NB-r14, + nrsrqResult-r14 NRSRQ-Range-NB-r14 +} + + +NRSRP-Range-NB-r14 ::= INTEGER(0..113) + + +NRSRQ-Range-NB-r14 ::= INTEGER(-30..46) + + +EstablishmentCause-NB-r13 ::= ENUMERATED { + mt-Access, mo-Signalling, mo-Data, mo-ExceptionData, + delayTolerantAccess-v1330, spare3, spare2, spare1} + + +UE-Capability-NB-r13 ::= SEQUENCE { + accessStratumRelease-r13 AccessStratumRelease-NB-r13, + ue-Category-NB-r13 ENUMERATED {nb1} OPTIONAL, + multipleDRB-r13 ENUMERATED {supported} OPTIONAL, + pdcp-Parameters-r13 PDCP-Parameters-NB-r13 OPTIONAL, + phyLayerParameters-r13 PhyLayerParameters-NB-r13, + rf-Parameters-r13 RF-Parameters-NB-r13, + dummy SEQUENCE {} OPTIONAL +} + +UE-Capability-NB-Ext-r14-IEs ::= SEQUENCE { + ue-Category-NB-r14 ENUMERATED {nb2} OPTIONAL, + mac-Parameters-r14 MAC-Parameters-NB-r14 OPTIONAL, + phyLayerParameters-v1430 PhyLayerParameters-NB-v1430 OPTIONAL, + rf-Parameters-v1430 RF-Parameters-NB-v1430, + nonCriticalExtension UE-Capability-NB-v1440-IEs OPTIONAL +} + +UE-Capability-NB-v1440-IEs ::= SEQUENCE { + phyLayerParameters-v1440 PhyLayerParameters-NB-v1440 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AccessStratumRelease-NB-r13 ::= ENUMERATED {rel13, rel14, spare6, spare5, spare4, spare3, spare2, spare1, ...} + +PDCP-Parameters-NB-r13 ::= SEQUENCE { + supportedROHC-Profiles-r13 SEQUENCE { + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + maxNumberROHC-ContextSessions-r13 ENUMERATED {cs2, cs4, cs8, cs12} DEFAULT cs2, + ... +} + +MAC-Parameters-NB-r14 ::= SEQUENCE { + dataInactMon-r14 ENUMERATED {supported} OPTIONAL, + rai-Support-r14 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-NB-r13 ::= SEQUENCE { + multiTone-r13 ENUMERATED {supported} OPTIONAL, + multiCarrier-r13 ENUMERATED {supported} OPTIONAL + } + +PhyLayerParameters-NB-v1430 ::= SEQUENCE { + multiCarrier-NPRACH-r14 ENUMERATED {supported} OPTIONAL, + twoHARQ-Processes-r14 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-NB-v1440 ::= SEQUENCE { + interferenceRandomisation-r14 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-NB-r13 ::= SEQUENCE { + supportedBandList-r13 SupportedBandList-NB-r13, + multiNS-Pmax-r13 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters-NB-v1430 ::= SEQUENCE { + powerClassNB-14dBm-r14 ENUMERATED {supported} OPTIONAL +} + +SupportedBandList-NB-r13 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBand-NB-r13 + +SupportedBand-NB-r13 ::= SEQUENCE { + band-r13 FreqBandIndicator-NB-r13, + powerClassNB-20dBm-r13 ENUMERATED {supported} OPTIONAL +} + + +UE-RadioPagingInfo-NB-r13 ::= SEQUENCE { + ue-Category-NB-r13 ENUMERATED {nb1} OPTIONAL, + ..., + [[ multiCarrierPaging-r14 ENUMERATED {true} OPTIONAL + ]] +} + + +UE-TimersAndConstants-NB-r13 ::= SEQUENCE { + t300-r13 ENUMERATED { + ms2500, ms4000, ms6000, ms10000, + ms15000, ms25000, ms40000, ms60000}, + t301-r13 ENUMERATED { + ms2500, ms4000, ms6000, ms10000, + ms15000, ms25000, ms40000, ms60000}, + t310-r13 ENUMERATED { + ms0, ms200, ms500, ms1000, ms2000, ms4000, ms8000}, + n310-r13 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311-r13 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311-r13 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ..., + [[ t311-v1350 ENUMERATED { + ms40000, ms60000, ms90000, ms120000} + OPTIONAL -- Need OR + ]] +} + + +SC-MTCH-InfoList-NB-r14 ::= SEQUENCE (SIZE (0.. maxSC-MTCH-NB-r14)) OF SC-MTCH-Info-NB-r14 + +SC-MTCH-Info-NB-r14 ::= SEQUENCE { + sc-mtch-CarrierConfig-r14 CHOICE { + dl-CarrierConfig-r14 DL-CarrierConfigCommon-NB-r14, + dl-CarrierIndex-r14 INTEGER (0.. maxNonAnchorCarriers-NB-r14) + }, + mbmsSessionInfo-r14 MBMSSessionInfo-r13, + g-RNTI-r14 BIT STRING(SIZE(16)), + sc-mtch-SchedulingInfo-r14 SC-MTCH-SchedulingInfo-NB-r14 OPTIONAL, -- Need OP + sc-mtch-NeighbourCell-r14 BIT STRING (SIZE(maxNeighCell-SCPTM-NB-r14)) OPTIONAL, -- Need OP + npdcch-NPDSCH-MaxTBS-SC-MTCH-r14 ENUMERATED {n680, n2536}, + npdcch-NumRepetitions-SC-MTCH-r14 ENUMERATED {r1, r2, r4, r8, r16, + r32, r64, r128, r256, + r512, r1024, r2048, spare4, + spare3, spare2, spare1}, + npdcch-StartSF-SC-MTCH-r14 ENUMERATED {v1dot5, v2, v4, v8, + v16, v32, v48, v64}, + npdcch-Offset-SC-MTCH-r14 ENUMERATED {zero, oneEighth, oneQuarter, + threeEighth, oneHalf, fiveEighth, + threeQuarter, sevenEighth}, + ... +} + +SC-MTCH-SchedulingInfo-NB-r14 ::= SEQUENCE { + onDurationTimerSCPTM-r14 ENUMERATED { + pp1, pp2, pp3, pp4, + pp8, pp16, pp32, spare}, + drx-InactivityTimerSCPTM-r14 ENUMERATED { + pp0, pp1, pp2, pp3, + pp4, pp8, pp16, pp32}, + schedulingPeriodStartOffsetSCPTM-r14 CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf2048 INTEGER(0..2047), + sf4096 INTEGER(0..4095), + sf8192 INTEGER(0..8191) + }, + ... +} + + +SCPTM-NeighbourCellList-NB-r14 ::= SEQUENCE (SIZE (1..maxNeighCell-SCPTM-NB-r14)) OF PCI-ARFCN-NB-r14 + +PCI-ARFCN-NB-r14 ::= SEQUENCE { + physCellId-r14 PhysCellId, + carrierFreq-r14 CarrierFreq-NB-r13 OPTIONAL -- Need OP +} + + +maxNPRACH-Resources-NB-r13 INTEGER ::= 3 -- Maximum number of NPRACH resources for NB-IoT +maxNonAnchorCarriers-NB-r14 INTEGER ::= 15 -- Maximum number of non-anchor carriers for NB-IoT +maxDRB-NB-r13 INTEGER ::= 2 -- Maximum number of Data Radio Bearers for NB-IoT +maxNeighCell-SCPTM-NB-r14 INTEGER ::= 8 -- Maximum number of SCPTM neighbour cells +maxNS-Pmax-NB-r13 INTEGER ::= 4 -- Maximum number of NS and P-Max values per band +maxSC-MTCH-NB-r14 INTEGER ::= 64 -- Maximum number of SC-MTCHs in one cell for NB-IoT +maxSI-Message-NB-r13 INTEGER ::= 8 -- Maximum number of SI messages for NB-IoT + + +END + + +EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AbsoluteTimeInfo-r10, + AreaConfiguration-r10, + AreaConfiguration-v1130, + ARFCN-ValueNR-r15, + CarrierFreqGERAN, + CellIdentity, + ConnEstFailReport-r11, + SpeedStateScaleFactors, + C-RNTI, + LoggingDuration-r10, + LoggingInterval-r10, + LogMeasInfo-r10, + MeasCSI-RS-Id-r12, + MeasId, + MeasId-v1250, + MeasIdToAddModList, + MeasIdToAddModListExt-r12, + MeasIdToAddModList-v1310, + MeasIdToAddModListExt-v1310, + MeasObjectToAddModList, + MeasObjectToAddModList-v9e0, + MeasObjectToAddModListExt-r13, + MeasScaleFactor-r12, + MobilityStateParameters, + NeighCellConfig, + PhysCellId, + PhysCellIdCDMA2000, + PhysCellIdGERAN, + PhysCellIdUTRA-FDD, + PhysCellIdUTRA-TDD, + PLMN-Identity, + PLMN-IdentityList3-r11, + QuantityConfig, + ReportConfigToAddModList, + RLF-Report-r9, + TargetMBSFN-AreaList-r12, + TraceReference-r10, + Tx-ResourcePoolMeasList-r14, + VisitedCellInfoList-r12, + maxCellMeas, + maxCSI-RS-Meas-r12, + maxMeasId, + maxMeasId-r12, + maxRS-Index-r15, + PhysCellIdNR-r15, + RS-IndexNR-r15, + UL-DelayConfig-r13, + WLAN-CarrierInfo-r13, + WLAN-Identifiers-r12, + WLAN-Id-List-r13, + WLAN-Status-r13, + WLAN-Status-v1430, + WLAN-SuspendConfig-r14 + +FROM EUTRA-RRC-Definitions; + + +VarConnEstFailReport-r11 ::= SEQUENCE { + connEstFailReport-r11 ConnEstFailReport-r11, + plmn-Identity-r11 PLMN-Identity +} + + +VarLogMeasConfig-r10 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10 +} + +VarLogMeasConfig-r11 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10 +} + +VarLogMeasConfig-r12 ::= SEQUENCE { + areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, + areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, + loggingDuration-r10 LoggingDuration-r10, + loggingInterval-r10 LoggingInterval-r10, + targetMBSFN-AreaList-r12 TargetMBSFN-AreaList-r12 OPTIONAL +} + + +VarLogMeasReport-r10 ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + plmn-Identity-r10 PLMN-Identity, + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + logMeasInfoList-r10 LogMeasInfoList2-r10 +} + +VarLogMeasReport-r11 ::= SEQUENCE { + traceReference-r10 TraceReference-r10, + traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)), + tce-Id-r10 OCTET STRING (SIZE (1)), + plmn-IdentityList-r11 PLMN-IdentityList3-r11, + absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, + logMeasInfoList-r10 LogMeasInfoList2-r10 +} + +LogMeasInfoList2-r10 ::= SEQUENCE (SIZE (1..maxLogMeas-r10)) OF LogMeasInfo-r10 + + +VarMeasConfig ::= SEQUENCE { + -- Measurement identities + measIdList MeasIdToAddModList OPTIONAL, + measIdListExt-r12 MeasIdToAddModListExt-r12 OPTIONAL, + measIdList-v1310 MeasIdToAddModList-v1310 OPTIONAL, + measIdListExt-v1310 MeasIdToAddModListExt-v1310 OPTIONAL, + -- Measurement objects + measObjectList MeasObjectToAddModList OPTIONAL, + measObjectListExt-r13 MeasObjectToAddModListExt-r13 OPTIONAL, + measObjectList-v9i0 MeasObjectToAddModList-v9e0 OPTIONAL, + -- Reporting configurations + reportConfigList ReportConfigToAddModList OPTIONAL, + -- Other parameters + quantityConfig QuantityConfig OPTIONAL, + measScaleFactor-r12 MeasScaleFactor-r12 OPTIONAL, + s-Measure INTEGER (-140..-44) OPTIONAL, + speedStatePars CHOICE { + release NULL, + setup SEQUENCE { + mobilityStateParameters MobilityStateParameters, + timeToTrigger-SF SpeedStateScaleFactors + } + } OPTIONAL, + allowInterruptions-r11 BOOLEAN OPTIONAL +} + + +VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport +VarMeasReportList-r12 ::= SEQUENCE (SIZE (1..maxMeasId-r12)) OF VarMeasReport + +VarMeasReport ::= SEQUENCE { + -- List of measurement that have been triggered + measId MeasId, + measId-v1250 MeasId-v1250 OPTIONAL, + cellsTriggeredList CellsTriggeredList OPTIONAL, + csi-RS-TriggeredList-r12 CSI-RS-TriggeredList-r12 OPTIONAL, + poolsTriggeredList-r14 Tx-ResourcePoolMeasList-r14 OPTIONAL, + numberOfReportsSent INTEGER +} + +CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CHOICE { + physCellIdEUTRA PhysCellId, + physCellIdUTRA CHOICE { + fdd PhysCellIdUTRA-FDD, + tdd PhysCellIdUTRA-TDD + }, + physCellIdGERAN SEQUENCE { + carrierFreq CarrierFreqGERAN, + physCellId PhysCellIdGERAN + }, + physCellIdCDMA2000 PhysCellIdCDMA2000, + wlan-Identifiers-r13 WLAN-Identifiers-r12, + physCellIdNR-r15 SEQUENCE { + carrierFreq ARFCN-ValueNR-r15, + physCellId PhysCellIdNR-r15, + rs-IndexList-r15 SSB-IndexList-r15 OPTIONAL + } +} + +CSI-RS-TriggeredList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Id-r12 + +SSB-IndexList-r15::= SEQUENCE (SIZE (1..maxRS-Index-r15)) OF RS-IndexNR-r15 + +VarMobilityHistoryReport-r12 ::= VisitedCellInfoList-r12 + + +VarRLF-Report-r10 ::= SEQUENCE { + rlf-Report-r10 RLF-Report-r9, + plmn-Identity-r10 PLMN-Identity +} + +VarRLF-Report-r11 ::= SEQUENCE { + rlf-Report-r10 RLF-Report-r9, + plmn-IdentityList-r11 PLMN-IdentityList3-r11 +} + + +VarShortMAC-Input ::= SEQUENCE { + cellIdentity CellIdentity, + physCellId PhysCellId, + c-RNTI C-RNTI +} + + +VarShortResumeMAC-Input-r13 ::= SEQUENCE { + cellIdentity-r13 CellIdentity, + physCellId-r13 PhysCellId, + c-RNTI-r13 C-RNTI, + resumeDiscriminator-r13 BIT STRING(SIZE(1)) +} + + +VarWLAN-MobilityConfig ::= SEQUENCE { + wlan-MobilitySet-r13 WLAN-Id-List-r13 OPTIONAL, + successReportRequested ENUMERATED {true} OPTIONAL, + wlan-SuspendConfig-r14 WLAN-SuspendConfig-r14 OPTIONAL +} + + +VarWLAN-Status-r13 ::= SEQUENCE { + status-r13 WLAN-Status-r13, + status-r14 WLAN-Status-v1430 OPTIONAL +} + + +maxLogMeas-r10 INTEGER ::= 4060-- Maximum number of logged measurement entries + -- that can be stored by the UE + + +END + + +NBIOT-UE-Variables DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + VarShortMAC-Input, + VarShortResumeMAC-Input-r13 + +FROM EUTRA-UE-Variables; + +VarShortMAC-Input-NB-r13 ::= VarShortMAC-Input + +VarShortResumeMAC-Input-NB-r13 ::= VarShortResumeMAC-Input-r13 + + +END + + +EUTRA-Sidelink-Preconf DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AdditionalSpectrumEmission, + AdditionalSpectrumEmission-v10l0, + ARFCN-ValueEUTRA-r9, + FilterCoefficient, + maxCBR-Level-r14, + maxCBR-Level-1-r14, + maxFreq, + maxFreqV2X-r14, + maxSL-TxPool-r12, + maxSL-CommRxPoolPreconf-v1310, + maxSL-CommTxPoolPreconf-v1310, + maxSL-DiscRxPoolPreconf-r13, + maxSL-DiscTxPoolPreconf-r13, + maxSL-V2X-CBRConfig2-r14, + maxSL-V2X-CBRConfig2-1-r14, + maxSL-V2X-RxPoolPreconf-r14, + maxSL-V2X-TxConfig2-r14, + maxSL-V2X-TxConfig2-1-r14, + maxSL-V2X-TxPoolPreconf-r14, + P-Max, + ReselectionInfoRelay-r13, + SL-AnchorCarrierFreqList-V2X-r14, + SL-CBR-Levels-Config-r14, + SL-CBR-PSSCH-TxConfig-r14, + SL-CommTxPoolSensingConfig-r14, + SL-CP-Len-r12, + SL-HoppingConfigComm-r12, + SL-OffsetIndicator-r12, + SL-OffsetIndicatorSync-r12, + SL-OffsetIndicatorSync-v1430, + SL-PeriodComm-r12, + RSRP-RangeSL3-r12, + SL-PriorityList-r13, + SL-TF-ResourceConfig-r12, + SL-TRPT-Subset-r12, + SL-TxParameters-r12, + SL-ZoneConfig-r14, + P0-SL-r12, + TDD-ConfigSL-r12, + SubframeBitmapSL-r14, + SL-P2X-ResourceSelectionConfig-r14, + SL-RestrictResourceReservationPeriodList-r14, + SL-SyncAllowed-r14, + SL-OffsetIndicatorSync-r14, + SL-Priority-r13 +FROM EUTRA-RRC-Definitions; + + +SL-Preconfiguration-r12 ::= SEQUENCE { + preconfigGeneral-r12 SL-PreconfigGeneral-r12, + preconfigSync-r12 SL-PreconfigSync-r12, + preconfigComm-r12 SL-PreconfigCommPoolList4-r12, + ..., + [[ preconfigComm-v1310 SEQUENCE { + commRxPoolList-r13 SL-PreconfigCommRxPoolList-r13, + commTxPoolList-r13 SL-PreconfigCommTxPoolList-r13 OPTIONAL + } OPTIONAL, + preconfigDisc-r13 SEQUENCE { + discRxPoolList-r13 SL-PreconfigDiscRxPoolList-r13, + discTxPoolList-r13 SL-PreconfigDiscTxPoolList-r13 OPTIONAL + } OPTIONAL, + preconfigRelay-r13 SL-PreconfigRelay-r13 OPTIONAL + ]] + +} + +SL-PreconfigGeneral-r12 ::= SEQUENCE { + -- PDCP configuration + rohc-Profiles-r12 SEQUENCE { + profile0x0001-r12 BOOLEAN, + profile0x0002-r12 BOOLEAN, + profile0x0004-r12 BOOLEAN, + profile0x0006-r12 BOOLEAN, + profile0x0101-r12 BOOLEAN, + profile0x0102-r12 BOOLEAN, + profile0x0104-r12 BOOLEAN + }, + -- Physical configuration + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + maxTxPower-r12 P-Max, + additionalSpectrumEmission-r12 AdditionalSpectrumEmission, + sl-bandwidth-r12 ENUMERATED {n6, n15, n25, n50, n75, n100}, + tdd-ConfigSL-r12 TDD-ConfigSL-r12, + reserved-r12 BIT STRING (SIZE (19)), + ..., + [[ additionalSpectrumEmission-v1440 AdditionalSpectrumEmission-v10l0 OPTIONAL + ]] +} + +SL-PreconfigSync-r12 ::= SEQUENCE { + syncCP-Len-r12 SL-CP-Len-r12, + syncOffsetIndicator1-r12 SL-OffsetIndicatorSync-r12, + syncOffsetIndicator2-r12 SL-OffsetIndicatorSync-r12, + syncTxParameters-r12 P0-SL-r12, + syncTxThreshOoC-r12 RSRP-RangeSL3-r12, + filterCoefficient-r12 FilterCoefficient, + syncRefMinHyst-r12 ENUMERATED {dB0, dB3, dB6, dB9, dB12}, + syncRefDiffHyst-r12 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf}, + ..., + [[ syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL + ]] +} + +SL-PreconfigCommPoolList4-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-PreconfigCommPool-r12 + +SL-PreconfigCommRxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-CommRxPoolPreconf-v1310)) OF SL-PreconfigCommPool-r12 + +SL-PreconfigCommTxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-CommTxPoolPreconf-v1310)) OF SL-PreconfigCommPool-r12 + +SL-PreconfigCommPool-r12 ::= SEQUENCE { +-- This IE is same as SL-CommResourcePool with rxParametersNCell absent + sc-CP-Len-r12 SL-CP-Len-r12, + sc-Period-r12 SL-PeriodComm-r12, + sc-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + sc-TxParameters-r12 P0-SL-r12, + data-CP-Len-r12 SL-CP-Len-r12, + data-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + dataHoppingConfig-r12 SL-HoppingConfigComm-r12, + dataTxParameters-r12 P0-SL-r12, + trpt-Subset-r12 SL-TRPT-Subset-r12, + ..., + [[ priorityList-r13 SL-PriorityList-r13 OPTIONAL -- For Tx + ]] +} + +SL-PreconfigDiscRxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-DiscRxPoolPreconf-r13)) OF SL-PreconfigDiscPool-r13 + +SL-PreconfigDiscTxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-DiscTxPoolPreconf-r13)) OF SL-PreconfigDiscPool-r13 + +SL-PreconfigDiscPool-r13 ::= SEQUENCE { +-- This IE is same as SL-DiscResourcePool with rxParameters absent + cp-Len-r13 SL-CP-Len-r12, + discPeriod-r13 ENUMERATED {rf4, rf6, rf7, rf8, rf12, rf14, rf16, rf24, rf28, + rf32, rf64, rf128, rf256, rf512, rf1024, spare}, + numRetx-r13 INTEGER (0..3), + numRepetition-r13 INTEGER (1..50), + tf-ResourceConfig-r13 SL-TF-ResourceConfig-r12, + txParameters-r13 SEQUENCE { + txParametersGeneral-r13 P0-SL-r12, + txProbability-r13 ENUMERATED {p25, p50, p75, p100} + } OPTIONAL, + ... +} + +SL-PreconfigRelay-r13 ::= SEQUENCE { + reselectionInfoOoC-r13 ReselectionInfoRelay-r13 +} + + +SL-V2X-Preconfiguration-r14 ::= SEQUENCE { + v2x-PreconfigFreqList-r14 SL-V2X-PreconfigFreqList-r14, + anchorCarrierFreqList-r14 SL-AnchorCarrierFreqList-V2X-r14 OPTIONAL, + cbr-PreconfigList-r14 SL-CBR-PreconfigTxConfigList-r14 OPTIONAL, + ... +} + +SL-CBR-PreconfigTxConfigList-r14 ::= SEQUENCE { + cbr-RangeCommonConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-CBRConfig2-r14)) OF SL-CBR-Levels-Config-r14, + sl-CBR-PSSCH-TxConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-TxConfig2-r14)) OF SL-CBR-PSSCH-TxConfig-r14 +} + +SL-V2X-PreconfigFreqList-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF SL-V2X-PreconfigFreqInfo-r14 + +SL-V2X-PreconfigFreqInfo-r14 ::= SEQUENCE { + v2x-CommPreconfigGeneral-r14 SL-PreconfigGeneral-r12, + v2x-CommPreconfigSync-r14 SL-PreconfigV2X-Sync-r14 OPTIONAL, + v2x-CommRxPoolList-r14 SL-PreconfigV2X-RxPoolList-r14, + v2x-CommTxPoolList-r14 SL-PreconfigV2X-TxPoolList-r14, + p2x-CommTxPoolList-r14 SL-PreconfigV2X-TxPoolList-r14, + v2x-ResourceSelectionConfig-r14 SL-CommTxPoolSensingConfig-r14 OPTIONAL, + zoneConfig-r14 SL-ZoneConfig-r14 OPTIONAL, + syncPriority-r14 ENUMERATED {gnss, enb}, + thresSL-TxPrioritization-r14 SL-Priority-r13 OPTIONAL, + offsetDFN-r14 INTEGER (0..1000) OPTIONAL, + ... +} + +SL-PreconfigV2X-RxPoolList-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-RxPoolPreconf-r14)) OF SL-V2X-PreconfigCommPool-r14 + +SL-PreconfigV2X-TxPoolList-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-TxPoolPreconf-r14)) OF SL-V2X-PreconfigCommPool-r14 + +SL-V2X-PreconfigCommPool-r14 ::= SEQUENCE { +-- This IE is same as SL-CommResourcePoolV2X with rxParametersNCell absent + sl-OffsetIndicator-r14 SL-OffsetIndicator-r12 OPTIONAL, + sl-Subframe-r14 SubframeBitmapSL-r14, + adjacencyPSCCH-PSSCH-r14 BOOLEAN, + sizeSubchannel-r14 ENUMERATED { + n4, n5, n6, n8, n9, n10, n12, n15, n16, n18, n20, n25, n30, + n48, n50, n72, n75, n96, n100, spare13, spare12, spare11, + spare10, spare9, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1}, + numSubchannel-r14 ENUMERATED {n1, n3, n5, n8, n10, n15, n20, spare1}, + startRB-Subchannel-r14 INTEGER (0..99), + startRB-PSCCH-Pool-r14 INTEGER (0..99) OPTIONAL, + dataTxParameters-r14 P0-SL-r12, + zoneID-r14 INTEGER (0..7) OPTIONAL, + threshS-RSSI-CBR-r14 INTEGER (0..45) OPTIONAL, + cbr-pssch-TxConfigList-r14 SL-CBR-PPPP-TxPreconfigList-r14 OPTIONAL, + resourceSelectionConfigP2X-r14 SL-P2X-ResourceSelectionConfig-r14 OPTIONAL, + syncAllowed-r14 SL-SyncAllowed-r14 OPTIONAL, + restrictResourceReservationPeriod-r14 SL-RestrictResourceReservationPeriodList-r14 OPTIONAL, -- Need OR + ... +} + +SL-PreconfigV2X-Sync-r14 ::= SEQUENCE { + syncOffsetIndicators-r14 SL-V2X-SyncOffsetIndicators-r14, + syncTxParameters-r14 P0-SL-r12, + syncTxThreshOoC-r14 RSRP-RangeSL3-r12, + filterCoefficient-r14 FilterCoefficient, + syncRefMinHyst-r14 ENUMERATED {dB0, dB3, dB6, dB9, dB12}, + syncRefDiffHyst-r14 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf}, + ... +} + +SL-V2X-SyncOffsetIndicators-r14 ::= SEQUENCE { + syncOffsetIndicator1-r14 SL-OffsetIndicatorSync-r14, + syncOffsetIndicator2-r14 SL-OffsetIndicatorSync-r14, + syncOffsetIndicator3-r14 SL-OffsetIndicatorSync-r14 OPTIONAL +} + +SL-CBR-PPPP-TxPreconfigList-r14 ::= SEQUENCE (SIZE (1..8)) OF SL-PPPP-TxPreconfigIndex-r14 + +SL-PPPP-TxPreconfigIndex-r14 ::= SEQUENCE { + priorityThreshold-r14 SL-Priority-r13, + defaultTxConfigIndex-r14 INTEGER(0..maxCBR-Level-1-r14), + cbr-ConfigIndex-r14 INTEGER(0..maxSL-V2X-CBRConfig2-1-r14), + tx-ConfigIndexList-r14 SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF Tx-PreconfigIndex-r14 +} + +Tx-PreconfigIndex-r14 ::= INTEGER(0..maxSL-V2X-TxConfig2-1-r14) + +END + + +EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AntennaInfoCommon, + AntennaInfoDedicated-v10i0, + ARFCN-ValueEUTRA, + ARFCN-ValueEUTRA-v9e0, + ARFCN-ValueEUTRA-r9, + CellIdentity, + C-RNTI, + DL-DCCH-Message, + DRB-Identity, + DRB-ToReleaseList, + FreqBandIndicator-r11, + InDeviceCoexIndication-r11, + LWA-Config-r13, + MasterInformationBlock, + maxBands, + maxFreq, + maxDRB, + maxSCell-r10, + maxSCell-r13, + maxServCell-r10, + maxServCell-r13, + MBMSInterestIndication-r11, + MeasConfig, + MeasGapConfig, + MeasGapConfigPerCC-List-r14, + MeasResultForRSSI-r13, + MeasResultListWLAN-r13, + OtherConfig-r9, + PhysCellId, + P-Max, + PowerCoordinationInfo-r12, + SidelinkUEInformation-r12, + SL-CommConfig-r12, + SL-DiscConfig-r12, + RadioResourceConfigDedicated, + RCLWI-Configuration-r13, + RSRP-Range, + RSRQ-Range, + RSRQ-Range-v1250, + RS-SINR-Range-r13, + SCellToAddModList-r10, + SCellToAddModListExt-r13, + SCG-ConfigPartSCG-r12, + SecurityAlgorithmConfig, + SCellIndex-r10, + SCellIndex-r13, + SCellToReleaseList-r10, + SCellToReleaseListExt-r13, + ServCellIndex-r10, + ServCellIndex-r13, + ShortMAC-I, + MeasResultServFreqListNR-r15, + MeasResultSSTD-r13, + SL-V2X-ConfigDedicated-r14, + SystemInformationBlockType1, + SystemInformationBlockType1-v890-IEs, + SystemInformationBlockType2, + UEAssistanceInformation-r11, + UECapabilityInformation, + UE-CapabilityRAT-ContainerList, + UE-RadioPagingInfo-r12, + WLANConnectionStatusReport-r13, + WLAN-OffloadConfig-r12 +FROM EUTRA-RRC-Definitions; + + +HandoverCommand ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverCommand-r8 HandoverCommand-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverCommand-r8-IEs ::= SEQUENCE { + handoverCommandMessage OCTET STRING (CONTAINING DL-DCCH-Message), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +HandoverPreparationInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverPreparationInformation-r8 HandoverPreparationInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverPreparationInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo UE-CapabilityRAT-ContainerList, + as-Config AS-Config OPTIONAL, -- Cond HO + rrm-Config RRM-Config OPTIONAL, + as-Context AS-Context OPTIONAL, -- Cond HO + nonCriticalExtension HandoverPreparationInformation-v920-IEs OPTIONAL +} + +HandoverPreparationInformation-v920-IEs ::= SEQUENCE { + ue-ConfigRelease-r9 ENUMERATED { + rel9, rel10, rel11, rel12, v10j0, v11e0, + v1280, rel13, ..., rel14, rel15} OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v9d0-IEs OPTIONAL +} + +HandoverPreparationInformation-v9d0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING HandoverPreparationInformation-v9j0-IEs) OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-v9e0-IEs OPTIONAL +} + +-- Late non-critical extensions: +HandoverPreparationInformation-v9j0-IEs ::= SEQUENCE { + -- Following field is only for pre REL-10 late non-critical extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-v10j0-IEs OPTIONAL +} + +HandoverPreparationInformation-v10j0-IEs ::= SEQUENCE { + as-Config-v10j0 AS-Config-v10j0 OPTIONAL, + -- Following field is only for late non-critical extensions from REL-10 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions: +HandoverPreparationInformation-v9e0-IEs ::= SEQUENCE { + as-Config-v9e0 AS-Config-v9e0 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1130-IEs OPTIONAL +} + +HandoverPreparationInformation-v1130-IEs ::= SEQUENCE { + as-Context-v1130 AS-Context-v1130 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1250-IEs OPTIONAL +} + +HandoverPreparationInformation-v1250-IEs ::= SEQUENCE { + ue-SupportedEARFCN-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Cond HO3 + as-Config-v1250 AS-Config-v1250 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1320-IEs OPTIONAL +} + +HandoverPreparationInformation-v1320-IEs ::= SEQUENCE { + as-Config-v1320 AS-Config-v1320 OPTIONAL, -- Cond HO2 + as-Context-v1320 AS-Context-v1320 OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v1430-IEs OPTIONAL +} + +HandoverPreparationInformation-v1430-IEs ::= SEQUENCE { + as-Config-v1430 AS-Config-v1430 OPTIONAL, -- Cond HO2 + makeBeforeBreakReq-r14 ENUMERATED {true} OPTIONAL, -- Cond HO2 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCG-Config-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + scg-Config-r12 SCG-Config-r12-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCG-Config-r12-IEs ::= SEQUENCE { + scg-RadioConfig-r12 SCG-ConfigPartSCG-r12 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SCG-ConfigInfo-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + scg-ConfigInfo-r12 SCG-ConfigInfo-r12-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCG-ConfigInfo-r12-IEs ::= SEQUENCE { + radioResourceConfigDedMCG-r12 RadioResourceConfigDedicated OPTIONAL, + sCellToAddModListMCG-r12 SCellToAddModList-r10 OPTIONAL, + measGapConfig-r12 MeasGapConfig OPTIONAL, + powerCoordinationInfo-r12 PowerCoordinationInfo-r12 OPTIONAL, + scg-RadioConfig-r12 SCG-ConfigPartSCG-r12 OPTIONAL, + eutra-CapabilityInfo-r12 OCTET STRING (CONTAINING UECapabilityInformation) OPTIONAL, + scg-ConfigRestrictInfo-r12 SCG-ConfigRestrictInfo-r12 OPTIONAL, + mbmsInterestIndication-r12 OCTET STRING (CONTAINING + MBMSInterestIndication-r11) OPTIONAL, + measResultServCellListSCG-r12 MeasResultServCellListSCG-r12 OPTIONAL, + drb-ToAddModListSCG-r12 DRB-InfoListSCG-r12 OPTIONAL, + drb-ToReleaseListSCG-r12 DRB-ToReleaseList OPTIONAL, + sCellToAddModListSCG-r12 SCellToAddModListSCG-r12 OPTIONAL, + sCellToReleaseListSCG-r12 SCellToReleaseList-r10 OPTIONAL, + p-Max-r12 P-Max OPTIONAL, + nonCriticalExtension SCG-ConfigInfo-v1310-IEs OPTIONAL +} + +SCG-ConfigInfo-v1310-IEs ::= SEQUENCE { + measResultSSTD-r13 MeasResultSSTD-r13 OPTIONAL, sCellToAddModListMCG-Ext-r13 SCellToAddModListExt-r13 OPTIONAL, + measResultServCellListSCG-Ext-r13 MeasResultServCellListSCG-Ext-r13 OPTIONAL, + sCellToAddModListSCG-Ext-r13 SCellToAddModListSCG-Ext-r13 OPTIONAL, + sCellToReleaseListSCG-Ext-r13 SCellToReleaseListExt-r13 OPTIONAL, + nonCriticalExtension SCG-ConfigInfo-v1330-IEs OPTIONAL +} + +SCG-ConfigInfo-v1330-IEs ::= SEQUENCE { + measResultListRSSI-SCG-r13 MeasResultListRSSI-SCG-r13 OPTIONAL, + nonCriticalExtension SCG-ConfigInfo-v1430-IEs OPTIONAL +} + +SCG-ConfigInfo-v1430-IEs ::= SEQUENCE { + makeBeforeBreakSCG-Req-r14 ENUMERATED {true} OPTIONAL, + measGapConfigPerCC-List MeasGapConfigPerCC-List-r14 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-InfoListSCG-r12 ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-InfoSCG-r12 + +DRB-InfoSCG-r12 ::= SEQUENCE { + eps-BearerIdentity-r12 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity-r12 DRB-Identity, + drb-Type-r12 ENUMERATED {split, scg} OPTIONAL, -- Cond DRB-Setup + ... +} + +SCellToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF Cell-ToAddMod-r12 + +SCellToAddModListSCG-Ext-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF Cell-ToAddMod-r12 + +Cell-ToAddMod-r12 ::= SEQUENCE { + sCellIndex-r12 SCellIndex-r10, + cellIdentification-r12 SEQUENCE { + physCellId-r12 PhysCellId, + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + measResultCellToAdd-r12 SEQUENCE { + rsrpResult-r12 RSRP-Range, + rsrqResult-r12 RSRQ-Range + } OPTIONAL, -- Cond SCellAdd2 + ..., + [[ sCellIndex-r13 SCellIndex-r13 OPTIONAL, + measResultCellToAdd-v1310 SEQUENCE { + rs-sinr-Result-r13 RS-SINR-Range-r13 + } OPTIONAL -- Cond SCellAdd2 + ]] +} + +MeasResultServCellListSCG-r12 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF MeasResultServCellSCG-r12 + +MeasResultServCellListSCG-Ext-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultServCellSCG-r12 + +MeasResultServCellSCG-r12 ::= SEQUENCE { + servCellId-r12 ServCellIndex-r10, + measResultSCell-r12 SEQUENCE { + rsrpResultSCell-r12 RSRP-Range, + rsrqResultSCell-r12 RSRQ-Range + }, + ..., + [[ servCellId-r13 ServCellIndex-r13 OPTIONAL, + measResultSCell-v1310 SEQUENCE { + rs-sinr-ResultSCell-r13 RS-SINR-Range-r13 + } OPTIONAL + ]] +} + +MeasResultListRSSI-SCG-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultRSSI-SCG-r13 + +MeasResultRSSI-SCG-r13 ::= SEQUENCE { + servCellId-r13 ServCellIndex-r13, + measResultForRSSI-r13 MeasResultForRSSI-r13 +} + +SCG-ConfigRestrictInfo-r12 ::= SEQUENCE { + maxSCH-TB-BitsDL-r12 INTEGER (1..100), + maxSCH-TB-BitsUL-r12 INTEGER (1..100) +} + + +UEPagingCoverageInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + uePagingCoverageInformation-r13 UEPagingCoverageInformation-r13-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEPagingCoverageInformation-r13-IEs ::= SEQUENCE { + mpdcch-NumRepetition-r13 INTEGER (1..256) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioAccessCapabilityInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioAccessCapabilityInformation-r8 + UERadioAccessCapabilityInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioPagingInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioPagingInformation-r12 UERadioPagingInformation-r12-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioPagingInformation-r12-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r12 OCTET STRING (CONTAINING UE-RadioPagingInfo-r12), + nonCriticalExtension UERadioPagingInformation-v1310-IEs OPTIONAL +} + +UERadioPagingInformation-v1310-IEs ::= SEQUENCE { + supportedBandListEUTRAForPaging-r13 SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicator-r11 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL + +} + + +AS-Config ::= SEQUENCE { + sourceMeasConfig MeasConfig, + sourceRadioResourceConfig RadioResourceConfigDedicated, + sourceSecurityAlgorithmConfig SecurityAlgorithmConfig, + sourceUE-Identity C-RNTI, + sourceMasterInformationBlock MasterInformationBlock, + sourceSystemInformationBlockType1 SystemInformationBlockType1(WITH COMPONENTS + {..., nonCriticalExtension ABSENT}), + sourceSystemInformationBlockType2 SystemInformationBlockType2, + antennaInfoCommon AntennaInfoCommon, + sourceDl-CarrierFreq ARFCN-ValueEUTRA, + ..., + [[ sourceSystemInformationBlockType1Ext OCTET STRING (CONTAINING + SystemInformationBlockType1-v890-IEs) OPTIONAL, + sourceOtherConfig-r9 OtherConfig-r9 + -- sourceOtherConfig-r9 should have been optional. A target eNB compliant with this transfer + -- syntax should support receiving an AS-Config not including this extension addition group + -- e.g. from a legacy source eNB + ]], + [[ sourceSCellConfigList-r10 SCellToAddModList-r10 OPTIONAL + ]], + [[ sourceConfigSCG-r12 SCG-Config-r12 OPTIONAL + ]], + [[ as-ConfigNR-r15 AS-ConfigNR-r15 OPTIONAL + ]] +} + +AS-Config-v9e0 ::= SEQUENCE { + sourceDl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +AS-Config-v10j0 ::= SEQUENCE { + antennaInfoDedicatedPCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL +} + +AS-Config-v1250 ::= SEQUENCE { + sourceWlan-OffloadConfig-r12 WLAN-OffloadConfig-r12 OPTIONAL, + sourceSL-CommConfig-r12 SL-CommConfig-r12 OPTIONAL, + sourceSL-DiscConfig-r12 SL-DiscConfig-r12 OPTIONAL +} + +AS-Config-v1320 ::= SEQUENCE { + sourceSCellConfigList-r13 SCellToAddModListExt-r13 OPTIONAL, + sourceRCLWI-Configuration-r13 RCLWI-Configuration-r13 OPTIONAL +} + +AS-Config-v1430 ::= SEQUENCE { + sourceSL-V2X-CommConfig-r14 SL-V2X-ConfigDedicated-r14 OPTIONAL, + sourceLWA-Config-r14 LWA-Config-r13 OPTIONAL, + sourceWLAN-MeasResult-r14 MeasResultListWLAN-r13 OPTIONAL +} + +AS-ConfigNR-r15 ::= SEQUENCE { + sourceRB-ConfigNR-r15 OCTET STRING OPTIONAL, + sourceRB-ConfigSN-NR-r15 OCTET STRING OPTIONAL, + sourceOtherConfigSN-NR-r15 OCTET STRING OPTIONAL +} + + +AS-Context ::= SEQUENCE { + reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO +} + +AS-Context-v1130 ::= SEQUENCE { + idc-Indication-r11 OCTET STRING (CONTAINING + InDeviceCoexIndication-r11) OPTIONAL, -- Cond HO2 + mbmsInterestIndication-r11 OCTET STRING (CONTAINING + MBMSInterestIndication-r11) OPTIONAL, -- Cond HO2 + powerPrefIndication-r11 OCTET STRING (CONTAINING + UEAssistanceInformation-r11) OPTIONAL, -- Cond HO2 + ..., + [[ sidelinkUEInformation-r12 OCTET STRING (CONTAINING + SidelinkUEInformation-r12) OPTIONAL -- Cond HO2 + ]], + [[ sourceContextENDC-r15 OCTET STRING OPTIONAL -- Cond HO2 + ]] +} + +AS-Context-v1320 ::= SEQUENCE { + wlanConnectionStatusReport-r13 OCTET STRING (CONTAINING + WLANConnectionStatusReport-r13) OPTIONAL -- Cond HO2 +} + + +ReestablishmentInfo ::= SEQUENCE { + sourcePhysCellId PhysCellId, + targetCellShortMAC-I ShortMAC-I, + additionalReestabInfoList AdditionalReestabInfoList OPTIONAL, + ... +} + +AdditionalReestabInfoList ::= SEQUENCE ( SIZE (1..maxReestabInfo) ) OF AdditionalReestabInfo + +AdditionalReestabInfo ::= SEQUENCE{ + cellIdentity CellIdentity, + key-eNodeB-Star Key-eNodeB-Star, + shortMAC-I ShortMAC-I +} + +Key-eNodeB-Star ::= BIT STRING (SIZE (256)) + + +RRM-Config ::= SEQUENCE { + ue-InactiveTime ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, + s25, s30, s40, s50, min1, min1s20c, min1s40, + min2, min2s30, min3, min3s30, min4, min5, min6, + min7, min8, min9, min10, min12, min14, min17, min20, + min24, min28, min33, min38, min44, min50, hr1, + hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6, + hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2, + day2hr12, day3, day4, day5, day7, day10, day14, day19, + day24, day30, dayMoreThan30} OPTIONAL, + ..., + [[ candidateCellInfoList-r10 CandidateCellInfoList-r10 OPTIONAL + ]], + [[ candidateCellInfoListNR-r15 MeasResultServFreqListNR-r15 OPTIONAL + ]] +} + +CandidateCellInfoList-r10 ::= SEQUENCE (SIZE (1..maxFreq)) OF CandidateCellInfo-r10 + +CandidateCellInfo-r10 ::= SEQUENCE { + -- cellIdentification + physCellId-r10 PhysCellId, + dl-CarrierFreq-r10 ARFCN-ValueEUTRA, + -- available measurement results + rsrpResult-r10 RSRP-Range OPTIONAL, + rsrqResult-r10 RSRQ-Range OPTIONAL, + ..., + [[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL + ]], + [[ rsrqResult-v1250 RSRQ-Range-v1250 OPTIONAL + ]], + [[ rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL + ]] +} + + +maxReestabInfo INTEGER ::= 32 -- Maximum number of KeNB* and shortMAC-I forwarded + -- at handover for re-establishment preparation + + +END + + +NBIOT-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + C-RNTI, + PhysCellId, + SecurityAlgorithmConfig, + ShortMAC-I +FROM EUTRA-RRC-Definitions + + AdditionalReestabInfoList +FROM EUTRA-InterNodeDefinitions + + CarrierFreq-NB-r13, + RadioResourceConfigDedicated-NB-r13, + UECapabilityInformation-NB, + UE-Capability-NB-r13, + UE-Capability-NB-Ext-r14-IEs, + UE-RadioPagingInfo-NB-r13 +FROM NBIOT-RRC-Definitions; + + +HandoverPreparationInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverPreparationInformation-r13 HandoverPreparationInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverPreparationInformation-NB-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo-r13 UE-Capability-NB-r13, + as-Config-r13 AS-Config-NB, + rrm-Config-r13 RRM-Config-NB OPTIONAL, + as-Context-r13 AS-Context-NB OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-NB-v1380-IEs OPTIONAL +} + +HandoverPreparationInformation-NB-v1380-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-NB-Ext-r14-IEs OPTIONAL +} + +HandoverPreparationInformation-NB-Ext-r14-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfoExt-r14 OCTET STRING (CONTAINING UE-Capability-NB-Ext-r14-IEs) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEPagingCoverageInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + uePagingCoverageInformation-r13 UEPagingCoverageInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEPagingCoverageInformation-NB-IEs ::= SEQUENCE { +-- the possible value(s) can differ from those sent on Uu + npdcch-NumRepetitionPaging-r13 INTEGER (1..2048) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioAccessCapabilityInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioAccessCapabilityInformation-r13 + UERadioAccessCapabilityInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioAccessCapabilityInformation-NB-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo-r13 OCTET STRING (CONTAINING UE-Capability-NB-r13), + nonCriticalExtension UERadioAccessCapabilityInformation-NB-v1380-IEs OPTIONAL +} + +UERadioAccessCapabilityInformation-NB-v1380-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UERadioAccessCapabilityInformation-NB-r14-IEs OPTIONAL +} + +UERadioAccessCapabilityInformation-NB-r14-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo-r14 OCTET STRING (CONTAINING UECapabilityInformation-NB) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioPagingInformation-NB ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioPagingInformation-r13 UERadioPagingInformation-NB-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioPagingInformation-NB-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r13 OCTET STRING (CONTAINING UE-RadioPagingInfo-NB-r13), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +AS-Config-NB ::= SEQUENCE { + sourceRadioResourceConfig-r13 RadioResourceConfigDedicated-NB-r13, + sourceSecurityAlgorithmConfig-r13 SecurityAlgorithmConfig, + sourceUE-Identity-r13 C-RNTI, + sourceDl-CarrierFreq-r13 CarrierFreq-NB-r13, + ... +} + + +AS-Context-NB ::= SEQUENCE { + reestablishmentInfo-r13 ReestablishmentInfo-NB OPTIONAL, + ... +} + + +ReestablishmentInfo-NB ::= SEQUENCE { + sourcePhysCellId-r13 PhysCellId, + targetCellShortMAC-I-r13 ShortMAC-I, + additionalReestabInfoList-r13 AdditionalReestabInfoList OPTIONAL, + ... +} + + + + +RRM-Config-NB ::= SEQUENCE { + ue-InactiveTime ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, + s25, s30, s40, s50, min1, min1s20, min1s40, + min2, min2s30, min3, min3s30, min4, min5, min6, + min7, min8, min9, min10, min12, min14, min17, min20, + min24, min28, min33, min38, min44, min50, hr1, + hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6, + hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2, + day2hr12, day3, day4, day5, day7, day10, day14, day19, + day24, day30, dayMoreThan30} OPTIONAL, + ... +} + + +END + + diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-8.21.0.asn1 b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-8.21.0.asn1 new file mode 100755 index 0000000000..55d59f3e8f --- /dev/null +++ b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-8.21.0.asn1 @@ -0,0 +1,2905 @@ + +EUTRA-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + + +BCCH-BCH-Message ::= SEQUENCE { + message BCCH-BCH-MessageType +} + +BCCH-BCH-MessageType ::= MasterInformationBlock + + +BCCH-DL-SCH-Message ::= SEQUENCE { + message BCCH-DL-SCH-MessageType +} + +BCCH-DL-SCH-MessageType ::= CHOICE { + c1 CHOICE { + systemInformation SystemInformation, + systemInformationBlockType1 SystemInformationBlockType1 + }, + messageClassExtension SEQUENCE {} +} + + +PCCH-Message ::= SEQUENCE { + message PCCH-MessageType +} + +PCCH-MessageType ::= CHOICE { + c1 CHOICE { + paging Paging + }, + messageClassExtension SEQUENCE {} +} + + +DL-CCCH-Message ::= SEQUENCE { + message DL-CCCH-MessageType +} + +DL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishment RRCConnectionReestablishment, + rrcConnectionReestablishmentReject RRCConnectionReestablishmentReject, + rrcConnectionReject RRCConnectionReject, + rrcConnectionSetup RRCConnectionSetup + }, + messageClassExtension SEQUENCE {} +} + + +DL-DCCH-Message ::= SEQUENCE { + message DL-DCCH-MessageType +} + +DL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + csfbParametersResponseCDMA2000 CSFBParametersResponseCDMA2000, + dlInformationTransfer DLInformationTransfer, + handoverFromEUTRAPreparationRequest HandoverFromEUTRAPreparationRequest, + mobilityFromEUTRACommand MobilityFromEUTRACommand, + rrcConnectionReconfiguration RRCConnectionReconfiguration, + rrcConnectionRelease RRCConnectionRelease, + securityModeCommand SecurityModeCommand, + ueCapabilityEnquiry UECapabilityEnquiry, + counterCheck CounterCheck, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +UL-CCCH-Message ::= SEQUENCE { + message UL-CCCH-MessageType +} + +UL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishmentRequest RRCConnectionReestablishmentRequest, + rrcConnectionRequest RRCConnectionRequest + }, + messageClassExtension SEQUENCE {} +} + + +UL-DCCH-Message ::= SEQUENCE { + message UL-DCCH-MessageType +} + +UL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + csfbParametersRequestCDMA2000 CSFBParametersRequestCDMA2000, + measurementReport MeasurementReport, + rrcConnectionReconfigurationComplete RRCConnectionReconfigurationComplete, + rrcConnectionReestablishmentComplete RRCConnectionReestablishmentComplete, + rrcConnectionSetupComplete RRCConnectionSetupComplete, + securityModeComplete SecurityModeComplete, + securityModeFailure SecurityModeFailure, + ueCapabilityInformation UECapabilityInformation, + ulHandoverPreparationTransfer ULHandoverPreparationTransfer, + ulInformationTransfer ULInformationTransfer, + counterCheckResponse CounterCheckResponse, + spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +CounterCheck ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + counterCheck-r8 CounterCheck-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheck-r8-IEs ::= SEQUENCE { + drb-CountMSB-InfoList DRB-CountMSB-InfoList, + nonCriticalExtension SEQUENCE {} OPTIONAL --Need OP +} + +DRB-CountMSB-InfoList::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-CountMSB-Info + +DRB-CountMSB-Info ::= SEQUENCE { + drb-Identity DRB-Identity, + countMSB-Uplink INTEGER(0..33554431), + countMSB-Downlink INTEGER(0..33554431) +} + + +CounterCheckResponse ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + counterCheckResponse-r8 CounterCheckResponse-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheckResponse-r8-IEs ::= SEQUENCE { + drb-CountInfoList DRB-CountInfoList, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-CountInfoList ::= SEQUENCE (SIZE (0..maxDRB)) OF DRB-CountInfo + +DRB-CountInfo ::= SEQUENCE { + drb-Identity DRB-Identity, + count-Uplink INTEGER(0..4294967295), + count-Downlink INTEGER(0..4294967295) +} + + +CSFBParametersRequestCDMA2000 ::= SEQUENCE { + criticalExtensions CHOICE { + csfbParametersRequestCDMA2000-r8 CSFBParametersRequestCDMA2000-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CSFBParametersRequestCDMA2000-r8-IEs ::= SEQUENCE { + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +CSFBParametersResponseCDMA2000 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + csfbParametersResponseCDMA2000-r8 CSFBParametersResponseCDMA2000-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CSFBParametersResponseCDMA2000-r8-IEs ::= SEQUENCE { + rand RAND-CDMA2000, + mobilityParameters MobilityParametersCDMA2000, + nonCriticalExtension SEQUENCE {} OPTIONAL --Need OP +} + + +DLInformationTransfer ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + dlInformationTransfer-r8 DLInformationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +DLInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType CHOICE { + dedicatedInfoNAS DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000 + }, + nonCriticalExtension SEQUENCE {} OPTIONAL --Need OP +} + + +HandoverFromEUTRAPreparationRequest ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + handoverFromEUTRAPreparationRequest-r8 + HandoverFromEUTRAPreparationRequest-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverFromEUTRAPreparationRequest-r8-IEs ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + rand RAND-CDMA2000 OPTIONAL, -- Cond cdma2000-Type + mobilityParameters MobilityParametersCDMA2000 OPTIONAL, -- Cond cdma2000-Type + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + + +MasterInformationBlock ::= SEQUENCE { + dl-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100}, + phich-Config PHICH-Config, + systemFrameNumber BIT STRING (SIZE (8)), + spare BIT STRING (SIZE (10)) +} + + + +MeasurementReport ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + measurementReport-r8 MeasurementReport-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MeasurementReport-r8-IEs ::= SEQUENCE { + measResults MeasResults, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MobilityFromEUTRACommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + mobilityFromEUTRACommand-r8 MobilityFromEUTRACommand-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MobilityFromEUTRACommand-r8-IEs ::= SEQUENCE { + cs-FallbackIndicator BOOLEAN, + purpose CHOICE{ + handover Handover, + cellChangeOrder CellChangeOrder + }, + nonCriticalExtension MobilityFromEUTRACommand-v8a0-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension MobilityFromEUTRACommand-v8d0-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v8d0-IEs ::= SEQUENCE { + bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +Handover ::= SEQUENCE { + targetRAT-Type ENUMERATED { + utra, geran, cdma2000-1XRTT, cdma2000-HRPD, + spare4, spare3, spare2, spare1, ...}, + targetRAT-MessageContainer OCTET STRING, + nas-SecurityParamFromEUTRA OCTET STRING (SIZE (1)) OPTIONAL, -- Cond UTRAGERAN + systemInformation SI-OrPSI-GERAN OPTIONAL -- Cond PSHO +} + +CellChangeOrder ::= SEQUENCE { + t304 ENUMERATED { + ms100, ms200, ms500, ms1000, + ms2000, ms4000, ms8000, spare1}, + targetRAT-Type CHOICE { + geran SEQUENCE { + physCellId PhysCellIdGERAN, + carrierFreq CarrierFreqGERAN, + networkControlOrder BIT STRING (SIZE (2)) OPTIONAL, -- Need OP + systemInformation SI-OrPSI-GERAN OPTIONAL -- Need OP + }, + ... + } +} + +SI-OrPSI-GERAN ::= CHOICE { + si SystemInfoListGERAN, + psi SystemInfoListGERAN +} + +SystemInfoListGERAN ::= SEQUENCE (SIZE (1..maxGERAN-SI)) OF + OCTET STRING (SIZE (1..23)) + + +Paging ::= SEQUENCE { + pagingRecordList PagingRecordList OPTIONAL, -- Need ON + systemInfoModification ENUMERATED {true} OPTIONAL, -- Need ON + etws-Indication ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +PagingRecordList ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord + +PagingRecord ::= SEQUENCE { + ue-Identity PagingUE-Identity, + cn-Domain ENUMERATED {ps, cs}, + ... +} + +PagingUE-Identity ::= CHOICE { + s-TMSI S-TMSI, + imsi IMSI, + ... +} + +IMSI ::= SEQUENCE (SIZE (6..21)) OF IMSI-Digit + +IMSI-Digit::= INTEGER (0..9) + + +RRCConnectionReconfiguration ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReconfiguration-r8 RRCConnectionReconfiguration-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfiguration-r8-IEs ::= SEQUENCE { + measConfig MeasConfig OPTIONAL, -- Need ON + mobilityControlInfo MobilityControlInfo OPTIONAL, -- Cond HO + dedicatedInfoNASList SEQUENCE (SIZE(1..maxDRB)) OF + DedicatedInfoNAS OPTIONAL, -- Cond nonHO + radioResourceConfigDedicated RadioResourceConfigDedicated OPTIONAL, -- Cond HO-toEUTRA + securityConfigHO SecurityConfigHO OPTIONAL, -- Cond HO + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +SecurityConfigHO ::= SEQUENCE { + handoverType CHOICE { + intraLTE SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig OPTIONAL, -- Need OP + keyChangeIndicator BOOLEAN, + nextHopChainingCount NextHopChainingCount + }, + interRAT SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig, + nas-SecurityParamToEUTRA OCTET STRING (SIZE(6)) + } + }, + ... +} + + +RRCConnectionReconfigurationComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReconfigurationComplete-r8 + RRCConnectionReconfigurationComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfigurationComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishment ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReestablishment-r8 RRCConnectionReestablishment-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishment-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated RadioResourceConfigDedicated, + nextHopChainingCount NextHopChainingCount, + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + + +RRCConnectionReestablishmentComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReestablishmentComplete-r8 + RRCConnectionReestablishmentComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentReject ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentReject-r8 + RRCConnectionReestablishmentReject-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentReject-r8-IEs ::= SEQUENCE { + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + + +RRCConnectionReestablishmentRequest ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentRequest-r8 + RRCConnectionReestablishmentRequest-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentRequest-r8-IEs ::= SEQUENCE { + ue-Identity ReestabUE-Identity, + reestablishmentCause ReestablishmentCause, + spare BIT STRING (SIZE (2)) +} + +ReestabUE-Identity ::= SEQUENCE { + c-RNTI C-RNTI, + physCellId PhysCellId, + shortMAC-I ShortMAC-I +} + +ReestablishmentCause ::= ENUMERATED { + reconfigurationFailure, handoverFailure, + otherFailure, spare1} + + +RRCConnectionReject ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionReject-r8 RRCConnectionReject-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReject-r8-IEs ::= SEQUENCE { + waitTime INTEGER (1..16), + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + + +RRCConnectionRelease ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionRelease-r8 RRCConnectionRelease-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRelease-r8-IEs ::= SEQUENCE { + releaseCause ReleaseCause, + redirectedCarrierInfo RedirectedCarrierInfo OPTIONAL, -- Need ON + idleModeMobilityControlInfo IdleModeMobilityControlInfo OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +ReleaseCause ::= ENUMERATED {loadBalancingTAUrequired, + other,spare2, spare1 } + +RedirectedCarrierInfo ::= CHOICE { + eutra ARFCN-ValueEUTRA, + geran CarrierFreqsGERAN, + utra-FDD ARFCN-ValueUTRA, + utra-TDD ARFCN-ValueUTRA, + cdma2000-HRPD CarrierFreqCDMA2000, + cdma2000-1xRTT CarrierFreqCDMA2000, + ... +} + +IdleModeMobilityControlInfo ::= SEQUENCE { + freqPriorityListEUTRA FreqPriorityListEUTRA OPTIONAL, -- Need ON + freqPriorityListGERAN FreqsPriorityListGERAN OPTIONAL, -- Need ON + freqPriorityListUTRA-FDD FreqPriorityListUTRA-FDD OPTIONAL, -- Need ON + freqPriorityListUTRA-TDD FreqPriorityListUTRA-TDD OPTIONAL, -- Need ON + bandClassPriorityListHRPD BandClassPriorityListHRPD OPTIONAL, -- Need ON + bandClassPriorityList1XRTT BandClassPriorityList1XRTT OPTIONAL, -- Need ON + t320 ENUMERATED { + min5, min10, min20, min30, min60, min120, min180, + spare1} OPTIONAL, -- Need OR + ... +} + +FreqPriorityListEUTRA ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA + +FreqPriorityEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + cellReselectionPriority CellReselectionPriority +} + +FreqsPriorityListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF FreqsPriorityGERAN + +FreqsPriorityGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF FreqPriorityUTRA-FDD + +FreqPriorityUTRA-FDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF FreqPriorityUTRA-TDD + +FreqPriorityUTRA-TDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority +} + +BandClassPriorityListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriorityHRPD + +BandClassPriorityHRPD ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority +} + +BandClassPriorityList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriority1XRTT + +BandClassPriority1XRTT ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority +} + +RRCConnectionRequest ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionRequest-r8 RRCConnectionRequest-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRequest-r8-IEs ::= SEQUENCE { + ue-Identity InitialUE-Identity, + establishmentCause EstablishmentCause, + spare BIT STRING (SIZE (1)) +} + +InitialUE-Identity ::= CHOICE { + s-TMSI S-TMSI, + randomValue BIT STRING (SIZE (40)) +} + +EstablishmentCause ::= ENUMERATED { + emergency, highPriorityAccess, mt-Access, mo-Signalling, + mo-Data, spare3, spare2, spare1} + + +RRCConnectionSetup ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionSetup-r8 RRCConnectionSetup-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetup-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated RadioResourceConfigDedicated, + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + + +RRCConnectionSetupComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionSetupComplete-r8 RRCConnectionSetupComplete-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetupComplete-r8-IEs ::= SEQUENCE { + selectedPLMN-Identity INTEGER (1..6), + registeredMME RegisteredMME OPTIONAL, + dedicatedInfoNAS DedicatedInfoNAS, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RegisteredMME ::= SEQUENCE { + plmn-Identity PLMN-Identity OPTIONAL, + mmegi BIT STRING (SIZE (16)), + mmec MMEC +} + + +SecurityModeCommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + securityModeCommand-r8 SecurityModeCommand-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeCommand-r8-IEs ::= SEQUENCE { + securityConfigSMC SecurityConfigSMC, + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +SecurityConfigSMC ::= SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig, + ... +} + + +SecurityModeComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeComplete-r8 SecurityModeComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SecurityModeFailure ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeFailure-r8 SecurityModeFailure-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeFailure-r8-IEs ::= SEQUENCE { + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformation ::= SEQUENCE { + criticalExtensions CHOICE { + systemInformation-r8 SystemInformation-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} +SystemInformation-r8-IEs ::= SEQUENCE { + sib-TypeAndInfo SEQUENCE (SIZE (1..maxSIB)) OF CHOICE { + sib2 SystemInformationBlockType2, + sib3 SystemInformationBlockType3, + sib4 SystemInformationBlockType4, + sib5 SystemInformationBlockType5, + sib6 SystemInformationBlockType6, + sib7 SystemInformationBlockType7, + sib8 SystemInformationBlockType8, + sib9 SystemInformationBlockType9, + sib10 SystemInformationBlockType10, + sib11 SystemInformationBlockType11, + ... + }, + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + + +SystemInformationBlockType1 ::= SEQUENCE { + cellAccessRelatedInfo SEQUENCE { + plmn-IdentityList PLMN-IdentityList, + trackingAreaCode TrackingAreaCode, + cellIdentity CellIdentity, + cellBarred ENUMERATED {barred, notBarred}, + intraFreqReselection ENUMERATED {allowed, notAllowed}, + csg-Indication BOOLEAN, + csg-Identity BIT STRING (SIZE (27)) OPTIONAL -- Need OR + }, + cellSelectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + q-RxLevMinOffset INTEGER (1..8) OPTIONAL -- Need OP + }, + p-Max P-Max OPTIONAL, -- Need OP + freqBandIndicator FreqBandIndicator, + schedulingInfoList SchedulingInfoList, + tdd-Config TDD-Config OPTIONAL, -- Cond TDD + si-WindowLength ENUMERATED { + ms1, ms2, ms5, ms10, ms15, ms20, + ms40}, + systemInfoValueTag INTEGER (0..31), + nonCriticalExtension SystemInformationBlockType1-v890-IEs OPTIONAL -- Need OP +} + +SystemInformationBlockType1-v890-IEs::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType1-v8h0-IEs) OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SystemInformationBlockType1-v8h0-IEs ::= SEQUENCE { + multiBandInfoList MultiBandInfoList OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +PLMN-IdentityList ::= SEQUENCE (SIZE (1..6)) OF PLMN-IdentityInfo + +PLMN-IdentityInfo ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellReservedForOperatorUse ENUMERATED {reserved, notReserved} +} + +SchedulingInfoList ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo + +SchedulingInfo ::= SEQUENCE { + si-Periodicity ENUMERATED { + rf8, rf16, rf32, rf64, rf128, rf256, rf512}, + sib-MappingInfo SIB-MappingInfo +} + +SIB-MappingInfo ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type + +SIB-Type ::= ENUMERATED { + sibType3, sibType4, sibType5, sibType6, + sibType7, sibType8, sibType9, sibType10, + sibType11, spare7, spare6, spare5, + spare4, spare3, spare2, spare1, ...} + + +UECapabilityEnquiry ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueCapabilityEnquiry-r8 UECapabilityEnquiry-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityEnquiry-r8-IEs ::= SEQUENCE { + ue-CapabilityRequest UE-CapabilityRequest, + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +UE-CapabilityRequest ::= SEQUENCE (SIZE (1..maxRAT-Capabilities)) OF RAT-Type + + +UECapabilityInformation ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + ueCapabilityInformation-r8 UECapabilityInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityInformation-r8-IEs ::= SEQUENCE { + ue-CapabilityRAT-ContainerList UE-CapabilityRAT-ContainerList, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +ULHandoverPreparationTransfer ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulHandoverPreparationTransfer-r8 ULHandoverPreparationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULHandoverPreparationTransfer-r8-IEs ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + meid BIT STRING (SIZE (56)) OPTIONAL, + dedicatedInfo DedicatedInfoCDMA2000, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +ULInformationTransfer ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulInformationTransfer-r8 ULInformationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType CHOICE { + dedicatedInfoNAS DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000 + }, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType2 ::= SEQUENCE { + ac-BarringInfo SEQUENCE { + ac-BarringForEmergency BOOLEAN, + ac-BarringForMO-Signalling AC-BarringConfig OPTIONAL, -- Need OP + ac-BarringForMO-Data AC-BarringConfig OPTIONAL -- Need OP + } OPTIONAL, -- Need OP + radioResourceConfigCommon RadioResourceConfigCommonSIB, + ue-TimersAndConstants UE-TimersAndConstants, + freqInfo SEQUENCE { + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission + }, + mbsfn-SubframeConfigList MBSFN-SubframeConfigList OPTIONAL, -- Need OR + timeAlignmentTimerCommon TimeAlignmentTimer, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType2-v8h0-IEs) OPTIONAL -- Need OP +} + +SystemInformationBlockType2-v8h0-IEs ::= SEQUENCE { + multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +AC-BarringConfig ::= SEQUENCE { + ac-BarringFactor ENUMERATED { + p00, p05, p10, p15, p20, p25, p30, p40, + p50, p60, p70, p75, p80, p85, p90, p95}, + ac-BarringTime ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512}, + ac-BarringForSpecialAC BIT STRING (SIZE(5)) +} + +MBSFN-SubframeConfigList ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig + +MBSFN-SubframeConfig ::= SEQUENCE { + radioframeAllocationPeriod ENUMERATED {n1, n2, n4, n8, n16, n32}, + radioframeAllocationOffset INTEGER (0..7), + subframeAllocation CHOICE { + oneFrame BIT STRING (SIZE(6)), + fourFrames BIT STRING (SIZE(24)) + } +} + +SystemInformationBlockType3 ::= SEQUENCE { + cellReselectionInfoCommon SEQUENCE { + q-Hyst ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + speedStateReselectionPars SEQUENCE { + mobilityStateParameters MobilityStateParameters, + q-HystSF SEQUENCE { + sf-Medium ENUMERATED { + dB-6, dB-4, dB-2, dB0}, + sf-High ENUMERATED { + dB-6, dB-4, dB-2, dB0} + } + } OPTIONAL -- Need OP + }, + cellReselectionServingFreqInfo SEQUENCE { + s-NonIntraSearch ReselectionThreshold OPTIONAL, -- Need OP + threshServingLow ReselectionThreshold, + cellReselectionPriority CellReselectionPriority + }, + intraFreqCellReselectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + p-Max P-Max OPTIONAL, -- Need OP + s-IntraSearch ReselectionThreshold OPTIONAL, -- Need OP + allowedMeasBandwidth AllowedMeasBandwidth OPTIONAL, -- Need OP + presenceAntennaPort1 PresenceAntennaPort1, + neighCellConfig NeighCellConfig, + t-ReselectionEUTRA T-Reselection, + t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL -- Need OP + }, + ... +} + + +SystemInformationBlockType4 ::= SEQUENCE { + intraFreqNeighCellList IntraFreqNeighCellList OPTIONAL, -- Need OR + intraFreqBlackCellList IntraFreqBlackCellList OPTIONAL, -- Need OR + csg-PhysCellIdRange PhysCellIdRange OPTIONAL, -- Cond CSG + ... +} + +IntraFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellIntra)) OF IntraFreqNeighCellInfo + +IntraFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange, + ... +} + +IntraFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange + + +SystemInformationBlockType5 ::= SEQUENCE { + interFreqCarrierFreqList InterFreqCarrierFreqList, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType5-v8h0-IEs) OPTIONAL -- Need OP +} + +SystemInformationBlockType5-v8h0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v8h0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v8h0 OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +InterFreqCarrierFreqList ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo + +InterFreqCarrierFreqInfo ::= SEQUENCE { + dl-CarrierFreq ARFCN-ValueEUTRA, + q-RxLevMin Q-RxLevMin, + p-Max P-Max OPTIONAL, -- Need OP + t-ReselectionEUTRA T-Reselection, + t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + allowedMeasBandwidth AllowedMeasBandwidth, + presenceAntennaPort1 PresenceAntennaPort1, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + neighCellConfig NeighCellConfig, + q-OffsetFreq Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList InterFreqNeighCellList OPTIONAL, -- Need OR + interFreqBlackCellList InterFreqBlackCellList OPTIONAL, -- Need OR + ... +} + +InterFreqCarrierFreqInfo-v8h0 ::= SEQUENCE { + multiBandInfoList MultiBandInfoList OPTIONAL -- Need OR +} + +InterFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo + +InterFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange +} + +InterFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange + + +SystemInformationBlockType6 ::= SEQUENCE { + carrierFreqListUTRA-FDD CarrierFreqListUTRA-FDD OPTIONAL, -- Need OR + carrierFreqListUTRA-TDD CarrierFreqListUTRA-TDD OPTIONAL, -- Need OR + t-ReselectionUTRA T-Reselection, + t-ReselectionUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType6-v8h0-IEs) OPTIONAL -- Need OP +} + +SystemInformationBlockType6-v8h0-IEs ::= SEQUENCE { + carrierFreqListUTRA-FDD-v8h0 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqInfoUTRA-FDD-v8h0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +CarrierFreqListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqUTRA-FDD + +CarrierFreqUTRA-FDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + q-RxLevMin INTEGER (-60..-13), + p-MaxUTRA INTEGER (-50..33), + q-QualMin INTEGER (-24..0), + ... +} + +CarrierFreqInfoUTRA-FDD-v8h0 ::= SEQUENCE { + multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL -- Need OR +} + +CarrierFreqListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF CarrierFreqUTRA-TDD + +CarrierFreqUTRA-TDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + q-RxLevMin INTEGER (-60..-13), + p-MaxUTRA INTEGER (-50..33), + ... +} + +FreqBandIndicator-UTRA-FDD ::= INTEGER (1..86) + + +SystemInformationBlockType7 ::= SEQUENCE { + t-ReselectionGERAN T-Reselection, + t-ReselectionGERAN-SF SpeedStateScaleFactors OPTIONAL, -- Need OR + carrierFreqsInfoList CarrierFreqsInfoListGERAN OPTIONAL, -- Need OR + ... +} + +CarrierFreqsInfoListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF CarrierFreqsInfoGERAN + +CarrierFreqsInfoGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + commonInfo SEQUENCE { + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + ncc-Permitted BIT STRING (SIZE (8)), + q-RxLevMin INTEGER (0..45), + p-MaxGERAN INTEGER (0..39) OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold + }, + ... +} + + +SystemInformationBlockType8 ::= SEQUENCE { + systemTimeInfo SystemTimeInfoCDMA2000 OPTIONAL, -- Need OR + searchWindowSize INTEGER (0..15) OPTIONAL, -- Need OR + parametersHRPD SEQUENCE { + preRegistrationInfoHRPD PreRegistrationInfoHRPD, + cellReselectionParametersHRPD CellReselectionParametersCDMA2000 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + parameters1XRTT SEQUENCE { + csfb-RegistrationParam1XRTT CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP + longCodeState1XRTT BIT STRING (SIZE (42)) OPTIONAL, -- Need OR + cellReselectionParameters1XRTT CellReselectionParametersCDMA2000 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + ... +} + +CellReselectionParametersCDMA2000 ::= SEQUENCE { + bandClassList BandClassListCDMA2000, + neighCellList NeighCellListCDMA2000, + t-ReselectionCDMA2000 T-Reselection, + t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP +} +NeighCellListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000 + +NeighCellCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + neighCellsPerFreqList NeighCellsPerBandclassListCDMA2000 +} + +NeighCellsPerBandclassListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000 + +NeighCellsPerBandclassCDMA2000 ::= SEQUENCE { + arfcn ARFCN-ValueCDMA2000, + physCellIdList PhysCellIdListCDMA2000 +} + +PhysCellIdListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdCDMA2000 + +BandClassListCDMA2000 ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassInfoCDMA2000 + +BandClassInfoCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High INTEGER (0..63), + threshX-Low INTEGER (0..63), + ... +} + + +SystemInformationBlockType9 ::= SEQUENCE { + hnb-Name OCTET STRING (SIZE(1..48)) OPTIONAL, -- Need OR + ... +} + + +SystemInformationBlockType10 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningType OCTET STRING (SIZE (2)), + dummy OCTET STRING (SIZE (50)) OPTIONAL, -- Need OP + ... +} + + +SystemInformationBlockType11 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningMessageSegmentType ENUMERATED {notLastSegment, lastSegment}, + warningMessageSegmentNumber INTEGER (0..63), + warningMessageSegment OCTET STRING, + dataCodingScheme OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + ... +} + + +AntennaInfoCommon ::= SEQUENCE { + antennaPortsCount ENUMERATED {an1, an2, an4, spare1} +} + +AntennaInfoDedicated ::= SEQUENCE { + transmissionMode ENUMERATED { + tm1, tm2, tm3, tm4, tm5, tm6, + tm7, spare1}, + codebookSubsetRestriction CHOICE { + n2TxAntenna-tm3 BIT STRING (SIZE (2)), + n4TxAntenna-tm3 BIT STRING (SIZE (4)), + n2TxAntenna-tm4 BIT STRING (SIZE (6)), + n4TxAntenna-tm4 BIT STRING (SIZE (64)), + n2TxAntenna-tm5 BIT STRING (SIZE (4)), + n4TxAntenna-tm5 BIT STRING (SIZE (16)), + n2TxAntenna-tm6 BIT STRING (SIZE (4)), + n4TxAntenna-tm6 BIT STRING (SIZE (16)) + } OPTIONAL, -- Cond TM + ue-TransmitAntennaSelection CHOICE{ + release NULL, + setup ENUMERATED {closedLoop, openLoop} + } +} + + +CQI-ReportConfig ::= SEQUENCE { + cqi-ReportModeAperiodic ENUMERATED { + rm12, rm20, rm22, rm30, rm31, + spare3, spare2, spare1} OPTIONAL, -- Need OR + nomPDSCH-RS-EPRE-Offset INTEGER (-1..6), + cqi-ReportPeriodic CQI-ReportPeriodic OPTIONAL -- Need ON +} + +CQI-ReportPeriodic ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-PUCCH-ResourceIndex INTEGER (0.. 1185), + cqi-pmi-ConfigIndex INTEGER (0..1023), + cqi-FormatIndicatorPeriodic CHOICE { + widebandCQI NULL, + subbandCQI SEQUENCE { + k INTEGER (1..4) + } + }, + ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR + simultaneousAckNackAndCQI BOOLEAN + } +} + + +DRB-Identity ::= INTEGER (1..32) + + +LogicalChannelConfig ::= SEQUENCE { + ul-SpecificParameters SEQUENCE { + priority INTEGER (1..16), + prioritisedBitRate ENUMERATED { + kBps0, kBps8, kBps16, kBps32, kBps64, kBps128, + kBps256, infinity, spare8, spare7, spare6, + spare5, spare4, spare3, spare2, spare1}, + bucketSizeDuration ENUMERATED { + ms50, ms100, ms150, ms300, ms500, ms1000, spare2, + spare1}, + logicalChannelGroup INTEGER (0..3) OPTIONAL -- Need OR + } OPTIONAL, -- Cond UL + ... +} + + +MAC-MainConfig ::= SEQUENCE { + ul-SCH-Config SEQUENCE { + maxHARQ-Tx ENUMERATED { + n1, n2, n3, n4, n5, n6, n7, n8, + n10, n12, n16, n20, n24, n28, + spare2, spare1} OPTIONAL, -- Need ON + periodicBSR-Timer ENUMERATED { + sf5, sf10, sf16, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, sf1280, sf2560, + infinity, spare1} OPTIONAL, -- Need ON + retxBSR-Timer ENUMERATED { + sf320, sf640, sf1280, sf2560, sf5120, + sf10240, spare2, spare1}, + ttiBundling BOOLEAN + } OPTIONAL, -- Need ON + drx-Config DRX-Config OPTIONAL, -- Need ON + timeAlignmentTimerDedicated TimeAlignmentTimer, + phr-Config CHOICE { + release NULL, + setup SEQUENCE { + periodicPHR-Timer ENUMERATED {sf10, sf20, sf50, sf100, sf200, + sf500, sf1000, infinity}, + prohibitPHR-Timer ENUMERATED {sf0, sf10, sf20, sf50, sf100, + sf200, sf500, sf1000}, + dl-PathlossChange ENUMERATED {dB1, dB3, dB6, infinity} + } + } OPTIONAL, -- Need ON + ... +} + +DRX-Config ::= CHOICE { + release NULL, + setup SEQUENCE { + onDurationTimer ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200}, + drx-InactivityTimer ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200, psf300, psf500, psf750, + psf1280, psf1920, psf2560, spare10, + spare9, spare8, spare7, spare6, + spare5, spare4, spare3, spare2, + spare1}, + drx-RetransmissionTimer ENUMERATED { + psf1, psf2, psf4, psf6, psf8, psf16, + psf24, psf33}, + longDRX-CycleStartOffset CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf1280 INTEGER(0..1279), + sf2048 INTEGER(0..2047), + sf2560 INTEGER(0..2559) + }, + shortDRX SEQUENCE { + shortDRX-Cycle ENUMERATED { + sf2, sf5, sf8, sf10, sf16, sf20, + sf32, sf40, sf64, sf80, sf128, sf160, + sf256, sf320, sf512, sf640}, + drxShortCycleTimer INTEGER (1..16) + } OPTIONAL -- Need OR + } +} + + +PDCP-Config ::= SEQUENCE { + discardTimer ENUMERATED { + ms50, ms100, ms150, ms300, ms500, + ms750, ms1500, infinity + } OPTIONAL, -- Cond Setup + rlc-AM SEQUENCE { + statusReportRequired BOOLEAN + } OPTIONAL, -- Cond Rlc-AM + rlc-UM SEQUENCE { + pdcp-SN-Size ENUMERATED {len7bits, len12bits} + } OPTIONAL, -- Cond Rlc-UM + headerCompression CHOICE { + notUsed NULL, + rohc SEQUENCE { + maxCID INTEGER (1..16383) DEFAULT 15, + profiles SEQUENCE { + profile0x0001 BOOLEAN, + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0101 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + ... + } + }, + ... +} + + +PDSCH-ConfigCommon::= SEQUENCE { + referenceSignalPower INTEGER (-60..50), + p-b INTEGER (0..3) +} + +PDSCH-ConfigDedicated::= SEQUENCE { + p-a ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3 } +} + + +PHICH-Config ::= SEQUENCE { + phich-Duration ENUMERATED {normal, extended}, + phich-Resource ENUMERATED {oneSixth, half, one, two} +} + + +PhysicalConfigDedicated ::= SEQUENCE { + pdsch-ConfigDedicated PDSCH-ConfigDedicated OPTIONAL, -- Need ON + pucch-ConfigDedicated PUCCH-ConfigDedicated OPTIONAL, -- Need ON + pusch-ConfigDedicated PUSCH-ConfigDedicated OPTIONAL, -- Need ON + uplinkPowerControlDedicated UplinkPowerControlDedicated OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUCCH TPC-PDCCH-Config OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUSCH TPC-PDCCH-Config OPTIONAL, -- Need ON + cqi-ReportConfig CQI-ReportConfig OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON + antennaInfo CHOICE { + explicitValue AntennaInfoDedicated, + defaultValue NULL + } OPTIONAL, -- Need ON + schedulingRequestConfig SchedulingRequestConfig OPTIONAL, -- Need ON + ... +} + + +P-Max ::= INTEGER (-30..33) + + +PRACH-ConfigSIB ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + prach-ConfigInfo PRACH-ConfigInfo +} + +PRACH-Config ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + prach-ConfigInfo PRACH-ConfigInfo OPTIONAL -- Need ON +} + +PRACH-ConfigInfo ::= SEQUENCE { + prach-ConfigIndex INTEGER (0..63), + highSpeedFlag BOOLEAN, + zeroCorrelationZoneConfig INTEGER (0..15), + prach-FreqOffset INTEGER (0..94) +} + + +PresenceAntennaPort1 ::= BOOLEAN + + +PUCCH-ConfigCommon ::= SEQUENCE { + deltaPUCCH-Shift ENUMERATED {ds1, ds2, ds3}, + nRB-CQI INTEGER (0..98), + nCS-AN INTEGER (0..7), + n1PUCCH-AN INTEGER (0..2047) +} + +PUCCH-ConfigDedicated ::= SEQUENCE { + ackNackRepetition CHOICE{ + release NULL, + setup SEQUENCE { + repetitionFactor ENUMERATED { n2, n4, n6, spare1}, + n1PUCCH-AN-Rep INTEGER (0..2047) + } + }, + tdd-AckNackFeedbackMode ENUMERATED {bundling, multiplexing} OPTIONAL -- Cond TDD +} + + +PUSCH-ConfigCommon ::= SEQUENCE { + pusch-ConfigBasic SEQUENCE { + n-SB INTEGER (1..4), + hoppingMode ENUMERATED {interSubFrame, intraAndInterSubFrame}, + pusch-HoppingOffset INTEGER (0..98), + enable64QAM BOOLEAN + }, + ul-ReferenceSignalsPUSCH UL-ReferenceSignalsPUSCH +} + +PUSCH-ConfigDedicated ::= SEQUENCE { + betaOffset-ACK-Index INTEGER (0..15), + betaOffset-RI-Index INTEGER (0..15), + betaOffset-CQI-Index INTEGER (0..15) +} + +UL-ReferenceSignalsPUSCH ::= SEQUENCE { + groupHoppingEnabled BOOLEAN, + groupAssignmentPUSCH INTEGER (0..29), + sequenceHoppingEnabled BOOLEAN, + cyclicShift INTEGER (0..7) +} + + +RACH-ConfigCommon ::= SEQUENCE { + preambleInfo SEQUENCE { + numberOfRA-Preambles ENUMERATED { + n4, n8, n12, n16 ,n20, n24, n28, + n32, n36, n40, n44, n48, n52, n56, + n60, n64}, + preamblesGroupAConfig SEQUENCE { + sizeOfRA-PreamblesGroupA ENUMERATED { + n4, n8, n12, n16 ,n20, n24, n28, + n32, n36, n40, n44, n48, n52, n56, + n60}, + messageSizeGroupA ENUMERATED {b56, b144, b208, b256}, + messagePowerOffsetGroupB ENUMERATED { + minusinfinity, dB0, dB5, dB8, dB10, dB12, + dB15, dB18}, + ... + } OPTIONAL -- Need OP + }, + powerRampingParameters SEQUENCE { + powerRampingStep ENUMERATED {dB0, dB2,dB4, dB6}, + preambleInitialReceivedTargetPower ENUMERATED { + dBm-120, dBm-118, dBm-116, dBm-114, dBm-112, + dBm-110, dBm-108, dBm-106, dBm-104, dBm-102, + dBm-100, dBm-98, dBm-96, dBm-94, + dBm-92, dBm-90} + }, + ra-SupervisionInfo SEQUENCE { + preambleTransMax ENUMERATED { + n3, n4, n5, n6, n7, n8, n10, n20, n50, + n100, n200}, + ra-ResponseWindowSize ENUMERATED { + sf2, sf3, sf4, sf5, sf6, sf7, + sf8, sf10}, + mac-ContentionResolutionTimer ENUMERATED { + sf8, sf16, sf24, sf32, sf40, sf48, + sf56, sf64} + }, + maxHARQ-Msg3Tx INTEGER (1..8), + ... +} + + +RACH-ConfigDedicated ::= SEQUENCE { + ra-PreambleIndex INTEGER (0..63), + ra-PRACH-MaskIndex INTEGER (0..15) +} + + +RadioResourceConfigCommonSIB ::= SEQUENCE { + rach-ConfigCommon RACH-ConfigCommon, + bcch-Config BCCH-Config, + pcch-Config PCCH-Config, + prach-Config PRACH-ConfigSIB, + pdsch-ConfigCommon PDSCH-ConfigCommon, + pusch-ConfigCommon PUSCH-ConfigCommon, + pucch-ConfigCommon PUCCH-ConfigCommon, + soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon, + uplinkPowerControlCommon UplinkPowerControlCommon, + ul-CyclicPrefixLength UL-CyclicPrefixLength, + ... +} + +RadioResourceConfigCommon ::= SEQUENCE { + rach-ConfigCommon RACH-ConfigCommon OPTIONAL, -- Need ON + prach-Config PRACH-Config, + pdsch-ConfigCommon PDSCH-ConfigCommon OPTIONAL, -- Need ON + pusch-ConfigCommon PUSCH-ConfigCommon, + phich-Config PHICH-Config OPTIONAL, -- Need ON + pucch-ConfigCommon PUCCH-ConfigCommon OPTIONAL, -- Need ON + soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon OPTIONAL, -- Need ON + uplinkPowerControlCommon UplinkPowerControlCommon OPTIONAL, -- Need ON + antennaInfoCommon AntennaInfoCommon OPTIONAL, -- Need ON + p-Max P-Max OPTIONAL, -- Need OP + tdd-Config TDD-Config OPTIONAL, -- Cond TDD + ul-CyclicPrefixLength UL-CyclicPrefixLength, + ... +} + +BCCH-Config ::= SEQUENCE { + modificationPeriodCoeff ENUMERATED {n2, n4, n8, n16} +} + +PCCH-Config ::= SEQUENCE { + defaultPagingCycle ENUMERATED { + rf32, rf64, rf128, rf256}, + nB ENUMERATED { + fourT, twoT, oneT, halfT, quarterT, oneEighthT, + oneSixteenthT, oneThirtySecondT} +} + +UL-CyclicPrefixLength ::= ENUMERATED {len1, len2} + + +RadioResourceConfigDedicated ::= SEQUENCE { + srb-ToAddModList SRB-ToAddModList OPTIONAL, -- Cond HO-Conn + drb-ToAddModList DRB-ToAddModList OPTIONAL, -- Cond HO-toEUTRA + drb-ToReleaseList DRB-ToReleaseList OPTIONAL, -- Need ON + mac-MainConfig CHOICE { + explicitValue MAC-MainConfig, + defaultValue NULL + } OPTIONAL, -- Cond HO-toEUTRA2 + sps-Config SPS-Config OPTIONAL, -- Need ON + physicalConfigDedicated PhysicalConfigDedicated OPTIONAL, -- Need ON + ... +} + +SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod + +SRB-ToAddMod ::= SEQUENCE { + srb-Identity INTEGER (1..2), + rlc-Config CHOICE { + explicitValue RLC-Config, + defaultValue NULL + } OPTIONAL, -- Cond Setup + logicalChannelConfig CHOICE { + explicitValue LogicalChannelConfig, + defaultValue NULL + } OPTIONAL, -- Cond Setup + ... +} + +DRB-ToAddModList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod + +DRB-ToAddMod ::= SEQUENCE { + eps-BearerIdentity INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity DRB-Identity, + pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP + rlc-Config RLC-Config OPTIONAL, -- Cond Setup + logicalChannelIdentity INTEGER (3..10) OPTIONAL, -- Cond DRB-Setup + logicalChannelConfig LogicalChannelConfig OPTIONAL, -- Cond Setup + ... +} + +DRB-ToReleaseList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity + + +RLC-Config ::= CHOICE { + am SEQUENCE { + ul-AM-RLC UL-AM-RLC, + dl-AM-RLC DL-AM-RLC + }, + um-Bi-Directional SEQUENCE { + ul-UM-RLC UL-UM-RLC, + dl-UM-RLC DL-UM-RLC + }, + um-Uni-Directional-UL SEQUENCE { + ul-UM-RLC UL-UM-RLC + }, + um-Uni-Directional-DL SEQUENCE { + dl-UM-RLC DL-UM-RLC + }, + ... +} + +UL-AM-RLC ::= SEQUENCE { + t-PollRetransmit T-PollRetransmit, + pollPDU PollPDU, + pollByte PollByte, + maxRetxThreshold ENUMERATED { + t1, t2, t3, t4, t6, t8, t16, t32} +} + +DL-AM-RLC ::= SEQUENCE { + t-Reordering T-Reordering, + t-StatusProhibit T-StatusProhibit +} + +UL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength +} + +DL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength, + t-Reordering T-Reordering +} + +SN-FieldLength ::= ENUMERATED {size5, size10} + +T-PollRetransmit ::= ENUMERATED { + ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, spare9, spare8, + spare7, spare6, spare5, spare4, spare3, + spare2, spare1} + +PollPDU ::= ENUMERATED { + p4, p8, p16, p32, p64, p128, p256, pInfinity} + +PollByte ::= ENUMERATED { + kB25, kB50, kB75, kB100, kB125, kB250, kB375, + kB500, kB750, kB1000, kB1250, kB1500, kB2000, + kB3000, kBinfinity, spare1} + +T-Reordering ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms110, + ms120, ms130, ms140, ms150, ms160, ms170, + ms180, ms190, ms200, spare1} + +T-StatusProhibit ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, spare8, spare7, + spare6, spare5, spare4, spare3, spare2, + spare1} + + +SchedulingRequestConfig ::= CHOICE { + release NULL, + setup SEQUENCE { + sr-PUCCH-ResourceIndex INTEGER (0..2047), + sr-ConfigIndex INTEGER (0..155), + dsr-TransMax ENUMERATED { + n4, n8, n16, n32, n64, spare3, spare2, spare1} + } +} + + +SoundingRS-UL-ConfigCommon ::= CHOICE { + release NULL, + setup SEQUENCE { + srs-BandwidthConfig ENUMERATED {bw0, bw1, bw2, bw3, bw4, bw5, bw6, bw7}, + srs-SubframeConfig ENUMERATED { + sc0, sc1, sc2, sc3, sc4, sc5, sc6, sc7, + sc8, sc9, sc10, sc11, sc12, sc13, sc14, sc15}, + ackNackSRS-SimultaneousTransmission BOOLEAN, + srs-MaxUpPts ENUMERATED {true} OPTIONAL -- Cond TDD + } +} + +SoundingRS-UL-ConfigDedicated ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-Bandwidth ENUMERATED {bw0, bw1, bw2, bw3}, + srs-HoppingBandwidth ENUMERATED {hbw0, hbw1, hbw2, hbw3}, + freqDomainPosition INTEGER (0..23), + duration BOOLEAN, + srs-ConfigIndex INTEGER (0..1023), + transmissionComb INTEGER (0..1), + cyclicShift ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7} + } +} + + + +SPS-Config ::= SEQUENCE { + semiPersistSchedC-RNTI C-RNTI OPTIONAL, -- Need OR + sps-ConfigDL SPS-ConfigDL OPTIONAL, -- Need ON + sps-ConfigUL SPS-ConfigUL OPTIONAL -- Need ON +} + +SPS-ConfigDL ::= CHOICE{ + release NULL, + setup SEQUENCE { + semiPersistSchedIntervalDL ENUMERATED { + sf10, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, spare6, + spare5, spare4, spare3, spare2, + spare1}, + numberOfConfSPS-Processes INTEGER (1..8), + n1-PUCCH-AN-PersistentList N1-PUCCH-AN-PersistentList, + ... + } +} + +SPS-ConfigUL ::= CHOICE { + release NULL, + setup SEQUENCE { + semiPersistSchedIntervalUL ENUMERATED { + sf10, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, spare6, + spare5, spare4, spare3, spare2, + spare1}, + implicitReleaseAfter ENUMERATED {e2, e3, e4, e8}, + p0-Persistent SEQUENCE { + p0-NominalPUSCH-Persistent INTEGER (-126..24), + p0-UE-PUSCH-Persistent INTEGER (-8..7) + } OPTIONAL, -- Need OP + twoIntervalsConfig ENUMERATED {true} OPTIONAL, -- Cond TDD + ... + } +} + +N1-PUCCH-AN-PersistentList ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + + +TDD-Config ::= SEQUENCE { + subframeAssignment ENUMERATED { + sa0, sa1, sa2, sa3, sa4, sa5, sa6}, + specialSubframePatterns ENUMERATED { + ssp0, ssp1, ssp2, ssp3, ssp4,ssp5, ssp6, ssp7, + ssp8} +} + + +TimeAlignmentTimer ::= ENUMERATED { + sf500, sf750, sf1280, sf1920, sf2560, sf5120, + sf10240, infinity} + +TPC-PDCCH-Config::= CHOICE { + release NULL, + setup SEQUENCE { + tpc-RNTI BIT STRING (SIZE (16)), + tpc-Index TPC-Index + } +} + +TPC-Index ::= CHOICE { + indexOfFormat3 INTEGER (1..15), + indexOfFormat3A INTEGER (1..31) +} + + +UplinkPowerControlCommon ::= SEQUENCE { + p0-NominalPUSCH INTEGER (-126..24), + alpha ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1}, + p0-NominalPUCCH INTEGER (-127..-96), + deltaFList-PUCCH DeltaFList-PUCCH, + deltaPreambleMsg3 INTEGER (-1..6) +} + +UplinkPowerControlDedicated ::= SEQUENCE { + p0-UE-PUSCH INTEGER (-8..7), + deltaMCS-Enabled ENUMERATED {en0, en1}, + accumulationEnabled BOOLEAN, + p0-UE-PUCCH INTEGER (-8..7), + pSRS-Offset INTEGER (0..15), + filterCoefficient FilterCoefficient DEFAULT fc4 +} + +DeltaFList-PUCCH ::= SEQUENCE { + deltaF-PUCCH-Format1 ENUMERATED {deltaF-2, deltaF0, deltaF2}, + deltaF-PUCCH-Format1b ENUMERATED {deltaF1, deltaF3, deltaF5}, + deltaF-PUCCH-Format2 ENUMERATED {deltaF-2, deltaF0, deltaF1, deltaF2}, + deltaF-PUCCH-Format2a ENUMERATED {deltaF-2, deltaF0, deltaF2}, + deltaF-PUCCH-Format2b ENUMERATED {deltaF-2, deltaF0, deltaF2} +} + + +NextHopChainingCount ::= INTEGER (0..7) + + +SecurityAlgorithmConfig ::= SEQUENCE { + cipheringAlgorithm ENUMERATED { + eea0, eea1, eea2, spare5, spare4, spare3, + spare2, spare1, ...}, + integrityProtAlgorithm ENUMERATED { + reserved, eia1, eia2, spare5, spare4, spare3, + spare2, spare1, ...} +} + + +ShortMAC-I ::= BIT STRING (SIZE (16)) + + +AdditionalSpectrumEmission ::= INTEGER (1..32) + + +ARFCN-ValueCDMA2000 ::= INTEGER (0..2047) + + +ARFCN-ValueEUTRA ::= INTEGER (0..maxEARFCN) + + +ARFCN-ValueGERAN ::= INTEGER (0..1023) + + +ARFCN-ValueUTRA ::= INTEGER (0..16383) + + +BandclassCDMA2000 ::= ENUMERATED { + bc0, bc1, bc2, bc3, bc4, bc5, bc6, bc7, bc8, + bc9, bc10, bc11, bc12, bc13, bc14, bc15, bc16, + bc17, spare14, spare13, spare12, spare11, spare10, + spare9, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1, ...} + + +BandIndicatorGERAN ::= ENUMERATED {dcs1800, pcs1900} + + +CarrierFreqCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + arfcn ARFCN-ValueCDMA2000 +} + + +CarrierFreqGERAN ::= SEQUENCE { + arfcn ARFCN-ValueGERAN, + bandIndicator BandIndicatorGERAN +} + + +CarrierFreqsGERAN ::= SEQUENCE { + startingARFCN ARFCN-ValueGERAN, + bandIndicator BandIndicatorGERAN, + followingARFCNs CHOICE { + explicitListOfARFCNs ExplicitListOfARFCNs, + equallySpacedARFCNs SEQUENCE { + arfcn-Spacing INTEGER (1..8), + numberOfFollowingARFCNs INTEGER (0..31) + }, + variableBitMapOfARFCNs OCTET STRING (SIZE (1..16)) + } +} + +ExplicitListOfARFCNs ::= SEQUENCE (SIZE (0..31)) OF ARFCN-ValueGERAN + + +CDMA2000-Type ::= ENUMERATED {type1XRTT, typeHRPD} + + +CellIdentity ::= BIT STRING (SIZE (28)) + + +CellIndexList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellIndex + +CellIndex ::= INTEGER (1..maxCellMeas) + + +CellReselectionPriority ::= INTEGER (0..7) + + +CSFB-RegistrationParam1XRTT ::= SEQUENCE { + sid BIT STRING (SIZE (15)), + nid BIT STRING (SIZE (16)), + multipleSID BOOLEAN, + multipleNID BOOLEAN, + homeReg BOOLEAN, + foreignSIDReg BOOLEAN, + foreignNIDReg BOOLEAN, + parameterReg BOOLEAN, + powerUpReg BOOLEAN, + registrationPeriod BIT STRING (SIZE (7)), + registrationZone BIT STRING (SIZE (12)), + totalZone BIT STRING (SIZE (3)), + zoneTimer BIT STRING (SIZE (3)) +} + + +CellGlobalIdEUTRA ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellIdentity CellIdentity +} + + +CellGlobalIdUTRA ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellIdentity BIT STRING (SIZE (28)) +} + + +CellGlobalIdGERAN ::= SEQUENCE { + plmn-Identity PLMN-Identity, + locationAreaCode BIT STRING (SIZE (16)), + cellIdentity BIT STRING (SIZE (16)) +} + + +CellGlobalIdCDMA2000 ::= CHOICE { + cellGlobalId1XRTT BIT STRING (SIZE (47)), + cellGlobalIdHRPD BIT STRING (SIZE (128)) +} + + +FreqBandIndicator ::= INTEGER (1..64) + + +MobilityControlInfo ::= SEQUENCE { + targetPhysCellId PhysCellId, + carrierFreq CarrierFreqEUTRA OPTIONAL, -- Cond HO-toEUTRA + carrierBandwidth CarrierBandwidthEUTRA OPTIONAL, -- Cond HO-toEUTRA + additionalSpectrumEmission AdditionalSpectrumEmission OPTIONAL, -- Cond HO-toEUTRA + t304 ENUMERATED { + ms50, ms100, ms150, ms200, ms500, ms1000, + ms2000, spare1}, + newUE-Identity C-RNTI, + radioResourceConfigCommon RadioResourceConfigCommon, + rach-ConfigDedicated RACH-ConfigDedicated OPTIONAL, -- Need OP + ... +} + +CarrierBandwidthEUTRA ::= SEQUENCE { + dl-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100, spare10, + spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1}, + ul-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100, spare10, + spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1} OPTIONAL -- Need OP +} + +CarrierFreqEUTRA ::= SEQUENCE { + dl-CarrierFreq ARFCN-ValueEUTRA, + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL -- Cond FDD +} + + +MobilityParametersCDMA2000 ::= OCTET STRING + + +MobilityStateParameters ::= SEQUENCE { + t-Evaluation ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + t-HystNormal ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + n-CellChangeMedium INTEGER (1..16), + n-CellChangeHigh INTEGER (1..16) +} + + +MultiBandInfoList ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator + + +PhysCellId ::= INTEGER (0..503) + + +PhysCellIdRange ::= SEQUENCE { + start PhysCellId, + range ENUMERATED { + n4, n8, n12, n16, n24, n32, n48, n64, n84, + n96, n128, n168, n252, n504, spare2, + spare1} OPTIONAL -- Need OP +} + + +PhysCellIdCDMA2000 ::= INTEGER (0..maxPNOffset) + + +PhysCellIdGERAN ::= SEQUENCE { + networkColourCode BIT STRING (SIZE (3)), + baseStationColourCode BIT STRING (SIZE (3)) +} + + +PhysCellIdUTRA-FDD ::= INTEGER (0..511) + + +PhysCellIdUTRA-TDD ::= INTEGER (0..127) + + +PLMN-Identity ::= SEQUENCE { + mcc MCC OPTIONAL, -- Cond MCC + mnc MNC +} + +MCC ::= SEQUENCE (SIZE (3)) OF + MCC-MNC-Digit + +MNC ::= SEQUENCE (SIZE (2..3)) OF + MCC-MNC-Digit + +MCC-MNC-Digit ::= INTEGER (0..9) + + + +PreRegistrationInfoHRPD ::= SEQUENCE { + preRegistrationAllowed BOOLEAN, + preRegistrationZoneId PreRegistrationZoneIdHRPD OPTIONAL, -- cond PreRegAllowed + secondaryPreRegistrationZoneIdList SecondaryPreRegistrationZoneIdListHRPD OPTIONAL -- Need OR +} + +SecondaryPreRegistrationZoneIdListHRPD ::= SEQUENCE (SIZE (1..2)) OF PreRegistrationZoneIdHRPD + +PreRegistrationZoneIdHRPD ::= INTEGER (0..255) + + +Q-RxLevMin ::= INTEGER (-70..-22) + + +Q-OffsetRange ::= ENUMERATED { + dB-24, dB-22, dB-20, dB-18, dB-16, dB-14, + dB-12, dB-10, dB-8, dB-6, dB-5, dB-4, dB-3, + dB-2, dB-1, dB0, dB1, dB2, dB3, dB4, dB5, + dB6, dB8, dB10, dB12, dB14, dB16, dB18, + dB20, dB22, dB24} + + +Q-OffsetRangeInterRAT ::= INTEGER (-15..15) + + +ReselectionThreshold ::= INTEGER (0..31) + + +SpeedStateScaleFactors ::= SEQUENCE { + sf-Medium ENUMERATED {oDot25, oDot5, oDot75, lDot0}, + sf-High ENUMERATED {oDot25, oDot5, oDot75, lDot0} +} + +SystemTimeInfoCDMA2000 ::= SEQUENCE { + cdma-EUTRA-Synchronisation BOOLEAN, + cdma-SystemTime CHOICE { + synchronousSystemTime BIT STRING (SIZE (39)), + asynchronousSystemTime BIT STRING (SIZE (49)) + } +} + + +TrackingAreaCode ::= BIT STRING (SIZE (16)) + + +T-Reselection ::= INTEGER (0..7) + + +AllowedMeasBandwidth ::= ENUMERATED {mbw6, mbw15, mbw25, mbw50, mbw75, mbw100} + + +Hysteresis ::= INTEGER (0..30) + + +MeasConfig ::= SEQUENCE { + -- Measurement objects + measObjectToRemoveList MeasObjectToRemoveList OPTIONAL, -- Need ON + measObjectToAddModList MeasObjectToAddModList OPTIONAL, -- Need ON + -- Reporting configurations + reportConfigToRemoveList ReportConfigToRemoveList OPTIONAL, -- Need ON + reportConfigToAddModList ReportConfigToAddModList OPTIONAL, -- Need ON + -- Measurement identities + measIdToRemoveList MeasIdToRemoveList OPTIONAL, -- Need ON + measIdToAddModList MeasIdToAddModList OPTIONAL, -- Need ON + -- Other parameters + quantityConfig QuantityConfig OPTIONAL, -- Need ON + measGapConfig MeasGapConfig OPTIONAL, -- Need ON + s-Measure RSRP-Range OPTIONAL, -- Need ON + preRegistrationInfoHRPD PreRegistrationInfoHRPD OPTIONAL, -- Need OP + speedStatePars CHOICE { + release NULL, + setup SEQUENCE { + mobilityStateParameters MobilityStateParameters, + timeToTrigger-SF SpeedStateScaleFactors + } + } OPTIONAL, -- Need ON + ... +} + +MeasIdToRemoveList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId + +MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId + +ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigId + + +MeasGapConfig ::= CHOICE { + release NULL, + setup SEQUENCE { + gapOffset CHOICE { + gp0 INTEGER (0..39), + gp1 INTEGER (0..79), + ... + } + } +} + + +MeasId ::= INTEGER (1..maxMeasId) + + +MeasIdToAddModList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod + +MeasIdToAddMod ::= SEQUENCE { + measId MeasId, + measObjectId MeasObjectId, + reportConfigId ReportConfigId +} + + +MeasObjectCDMA2000 ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + carrierFreq CarrierFreqCDMA2000, + searchWindowSize INTEGER (0..15) OPTIONAL, -- Need ON + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CellsToAddModListCDMA2000 OPTIONAL, -- Need ON + cellForWhichToReportCGI PhysCellIdCDMA2000 OPTIONAL, -- Need ON + ... +} + +CellsToAddModListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModCDMA2000 + +CellsToAddModCDMA2000 ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdCDMA2000 +} + + +MeasObjectEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + allowedMeasBandwidth AllowedMeasBandwidth, + presenceAntennaPort1 PresenceAntennaPort1, + neighCellConfig NeighCellConfig, + offsetFreq Q-OffsetRange DEFAULT dB0, + -- Neighbour cell list + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CellsToAddModList OPTIONAL, -- Need ON + -- Black list + blackCellsToRemoveList CellIndexList OPTIONAL, -- Need ON + blackCellsToAddModList BlackCellsToAddModList OPTIONAL, -- Need ON + cellForWhichToReportCGI PhysCellId OPTIONAL, -- Need ON + ... +} + +CellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddMod + +CellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellId, + cellIndividualOffset Q-OffsetRange +} + +BlackCellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF BlackCellsToAddMod + +BlackCellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellIdRange PhysCellIdRange +} + + +MeasObjectGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + ncc-Permitted BIT STRING(SIZE (8)) DEFAULT '11111111'B, + cellForWhichToReportCGI PhysCellIdGERAN OPTIONAL, -- Need ON + ... +} + + +MeasObjectId ::= INTEGER (1..maxObjectId) + + +MeasObjectToAddModList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod + +MeasObjectToAddMod ::= SEQUENCE { + measObjectId MeasObjectId, + measObject CHOICE { + measObjectEUTRA MeasObjectEUTRA, + measObjectUTRA MeasObjectUTRA, + measObjectGERAN MeasObjectGERAN, + measObjectCDMA2000 MeasObjectCDMA2000, + ... + } +} + + +MeasObjectUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CHOICE { + cellsToAddModListUTRA-FDD CellsToAddModListUTRA-FDD, + cellsToAddModListUTRA-TDD CellsToAddModListUTRA-TDD + } OPTIONAL, -- Need ON + cellForWhichToReportCGI CHOICE { + utra-FDD PhysCellIdUTRA-FDD, + utra-TDD PhysCellIdUTRA-TDD + } OPTIONAL, -- Need ON + ... +} + +CellsToAddModListUTRA-FDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-FDD + +CellsToAddModUTRA-FDD ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdUTRA-FDD +} + +CellsToAddModListUTRA-TDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-TDD + +CellsToAddModUTRA-TDD ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdUTRA-TDD +} + + +MeasResults ::= SEQUENCE { + measId MeasId, + measResultServCell SEQUENCE { + rsrpResult RSRP-Range, + rsrqResult RSRQ-Range + }, + measResultNeighCells CHOICE { + measResultListEUTRA MeasResultListEUTRA, + measResultListUTRA MeasResultListUTRA, + measResultListGERAN MeasResultListGERAN, + measResultsCDMA2000 MeasResultsCDMA2000, + ... + } OPTIONAL, + ... +} + +MeasResultListEUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultEUTRA + +MeasResultEUTRA ::= SEQUENCE { + physCellId PhysCellId, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdEUTRA, + trackingAreaCode TrackingAreaCode, + plmn-IdentityList PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + rsrpResult RSRP-Range OPTIONAL, + rsrqResult RSRQ-Range OPTIONAL, + ... + } +} + +MeasResultListUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultUTRA + +MeasResultUTRA ::= SEQUENCE { + physCellId CHOICE { + fdd PhysCellIdUTRA-FDD, + tdd PhysCellIdUTRA-TDD + }, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdUTRA, + locationAreaCode BIT STRING (SIZE (16)) OPTIONAL, + routingAreaCode BIT STRING (SIZE (8)) OPTIONAL, + plmn-IdentityList PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + utra-RSCP INTEGER (-5..91) OPTIONAL, + utra-EcN0 INTEGER (0..49) OPTIONAL, + ... + } +} + +MeasResultListGERAN ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultGERAN + +MeasResultGERAN ::= SEQUENCE { + carrierFreq CarrierFreqGERAN, + physCellId PhysCellIdGERAN, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdGERAN, + routingAreaCode BIT STRING (SIZE (8)) OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + rssi INTEGER (0..63), + ... + } +} + +MeasResultsCDMA2000 ::= SEQUENCE { + preRegistrationStatusHRPD BOOLEAN, + measResultListCDMA2000 MeasResultListCDMA2000 +} + +MeasResultListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCDMA2000 + +MeasResultCDMA2000 ::= SEQUENCE { + physCellId PhysCellIdCDMA2000, + cgi-Info CellGlobalIdCDMA2000 OPTIONAL, + measResult SEQUENCE { + pilotPnPhase INTEGER (0..32767) OPTIONAL, + pilotStrength INTEGER (0..63), + ... + } +} + +PLMN-IdentityList2 ::= SEQUENCE (SIZE (1..5)) OF PLMN-Identity + + +QuantityConfig ::= SEQUENCE { + quantityConfigEUTRA QuantityConfigEUTRA OPTIONAL, -- Need ON + quantityConfigUTRA QuantityConfigUTRA OPTIONAL, -- Need ON + quantityConfigGERAN QuantityConfigGERAN OPTIONAL, -- Need ON + quantityConfigCDMA2000 QuantityConfigCDMA2000 OPTIONAL, -- Need ON + ... +} + +QuantityConfigEUTRA ::= SEQUENCE { + filterCoefficientRSRP FilterCoefficient DEFAULT fc4, + filterCoefficientRSRQ FilterCoefficient DEFAULT fc4 +} + +QuantityConfigUTRA ::= SEQUENCE { + measQuantityUTRA-FDD ENUMERATED {cpich-RSCP, cpich-EcN0}, + measQuantityUTRA-TDD ENUMERATED {pccpch-RSCP}, + filterCoefficient FilterCoefficient DEFAULT fc4 +} + +QuantityConfigGERAN ::= SEQUENCE { + measQuantityGERAN ENUMERATED {rssi}, + filterCoefficient FilterCoefficient DEFAULT fc2 +} + +QuantityConfigCDMA2000 ::= SEQUENCE { + measQuantityCDMA2000 ENUMERATED {pilotStrength, pilotPnPhaseAndPilotStrength} +} + + +ReportConfigEUTRA ::= SEQUENCE { + triggerType CHOICE { + event SEQUENCE { + eventId CHOICE { + eventA1 SEQUENCE { + a1-Threshold ThresholdEUTRA + }, + eventA2 SEQUENCE { + a2-Threshold ThresholdEUTRA + }, + eventA3 SEQUENCE { + a3-Offset INTEGER (-30..30), + reportOnLeave BOOLEAN + }, + eventA4 SEQUENCE { + a4-Threshold ThresholdEUTRA + }, + eventA5 SEQUENCE { + a5-Threshold1 ThresholdEUTRA, + a5-Threshold2 ThresholdEUTRA + }, + ... + }, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + periodical SEQUENCE { + purpose ENUMERATED { + reportStrongestCells, reportCGI} + } + }, + triggerQuantity ENUMERATED {rsrp, rsrq}, + reportQuantity ENUMERATED {sameAsTriggerQuantity, both}, + maxReportCells INTEGER (1..maxCellReport), + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + ... +} + +ThresholdEUTRA ::= CHOICE{ + threshold-RSRP RSRP-Range, + threshold-RSRQ RSRQ-Range +} + + +ReportConfigId ::= INTEGER (1..maxReportConfigId) + + +ReportConfigInterRAT ::= SEQUENCE { + triggerType CHOICE { + event SEQUENCE { + eventId CHOICE { + eventB1 SEQUENCE { + b1-Threshold CHOICE { + b1-ThresholdUTRA ThresholdUTRA, + b1-ThresholdGERAN ThresholdGERAN, + b1-ThresholdCDMA2000 ThresholdCDMA2000 + } + }, + eventB2 SEQUENCE { + b2-Threshold1 ThresholdEUTRA, + b2-Threshold2 CHOICE { + b2-Threshold2UTRA ThresholdUTRA, + b2-Threshold2GERAN ThresholdGERAN, + b2-Threshold2CDMA2000 ThresholdCDMA2000 + } + }, + ... + }, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + periodical SEQUENCE { + purpose ENUMERATED { + reportStrongestCells, + reportStrongestCellsForSON, + reportCGI} + } + }, + maxReportCells INTEGER (1..maxCellReport), + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + ... +} + +ThresholdUTRA ::= CHOICE{ + utra-RSCP INTEGER (-5..91), + utra-EcN0 INTEGER (0..49) +} + +ThresholdGERAN ::= INTEGER (0..63) + +ThresholdCDMA2000 ::= INTEGER (0..63) + + +ReportConfigToAddModList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigToAddMod + +ReportConfigToAddMod ::= SEQUENCE { + reportConfigId ReportConfigId, + reportConfig CHOICE { + reportConfigEUTRA ReportConfigEUTRA, + reportConfigInterRAT ReportConfigInterRAT + } +} + + + +ReportInterval ::= ENUMERATED { + ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, + min1, min6, min12, min30, min60, spare3, spare2, spare1} + + +RSRP-Range ::= INTEGER(0..97) + + +RSRQ-Range ::= INTEGER(0..34) + + +TimeToTrigger ::= ENUMERATED { + ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256, + ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560, + ms5120} + + +C-RNTI ::= BIT STRING (SIZE (16)) + + +DedicatedInfoCDMA2000 ::= OCTET STRING + + +DedicatedInfoNAS ::= OCTET STRING + + +FilterCoefficient ::= ENUMERATED { + fc0, fc1, fc2, fc3, fc4, fc5, + fc6, fc7, fc8, fc9, fc11, fc13, + fc15, fc17, fc19, spare1, ...} + + +MMEC ::= BIT STRING (SIZE (8)) + + +NeighCellConfig ::= BIT STRING (SIZE (2)) + + +RAND-CDMA2000 ::= BIT STRING (SIZE (32)) + + +RAT-Type ::= ENUMERATED { + eutra, utra, geran-cs, geran-ps, cdma2000-1XRTT, + spare3, spare2, spare1, ...} + + +RRC-TransactionIdentifier ::= INTEGER (0..3) + + +S-TMSI ::= SEQUENCE { + mmec MMEC, + m-TMSI BIT STRING (SIZE (32)) +} + + +UE-CapabilityRAT-ContainerList ::=SEQUENCE (SIZE (0..maxRAT-Capabilities)) OF UE-CapabilityRAT-Container + +UE-CapabilityRAT-Container ::= SEQUENCE { + rat-Type RAT-Type, + ueCapabilityRAT-Container OCTET STRING +} + + +UE-EUTRA-Capability ::= SEQUENCE { + accessStratumRelease AccessStratumRelease, + ue-Category INTEGER (1..5), + pdcp-Parameters PDCP-Parameters, + phyLayerParameters PhyLayerParameters, + rf-Parameters RF-Parameters, + measParameters MeasParameters, + featureGroupIndicators BIT STRING (SIZE (32)) OPTIONAL, + interRAT-Parameters SEQUENCE { + utraFDD IRAT-ParametersUTRA-FDD OPTIONAL, + utraTDD128 IRAT-ParametersUTRA-TDD128 OPTIONAL, + utraTDD384 IRAT-ParametersUTRA-TDD384 OPTIONAL, + utraTDD768 IRAT-ParametersUTRA-TDD768 OPTIONAL, + geran IRAT-ParametersGERAN OPTIONAL, + cdma2000-HRPD IRAT-ParametersCDMA2000-HRPD OPTIONAL, + cdma2000-1xRTT IRAT-ParametersCDMA2000-1XRTT OPTIONAL + }, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AccessStratumRelease ::= ENUMERATED { + rel8, spare7, spare6, spare5, spare4, spare3, + spare2, spare1, ...} + +PDCP-Parameters ::= SEQUENCE { + supportedROHC-Profiles SEQUENCE { + profile0x0001 BOOLEAN, + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0101 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + maxNumberROHC-ContextSessions ENUMERATED { + cs2, cs4, cs8, cs12, cs16, cs24, cs32, + cs48, cs64, cs128, cs256, cs512, cs1024, + cs16384, spare2, spare1} DEFAULT cs16, + ... +} + +PhyLayerParameters ::= SEQUENCE { + ue-TxAntennaSelectionSupported BOOLEAN, + ue-SpecificRefSigsSupported BOOLEAN +} + +RF-Parameters ::= SEQUENCE { + supportedBandListEUTRA SupportedBandListEUTRA +} + +SupportedBandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA + +SupportedBandEUTRA ::= SEQUENCE { + bandEUTRA INTEGER (1..64), + halfDuplex BOOLEAN +} + +MeasParameters ::= SEQUENCE { + bandListEUTRA BandListEUTRA +} + +BandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF BandInfoEUTRA + +BandInfoEUTRA ::= SEQUENCE { + interFreqBandList InterFreqBandList, + interRAT-BandList InterRAT-BandList OPTIONAL +} + +InterFreqBandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterFreqBandInfo + +InterFreqBandInfo ::= SEQUENCE { + interFreqNeedForGaps BOOLEAN +} + +InterRAT-BandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterRAT-BandInfo + +InterRAT-BandInfo ::= SEQUENCE { + interRAT-NeedForGaps BOOLEAN +} + +IRAT-ParametersUTRA-FDD ::= SEQUENCE { + supportedBandListUTRA-FDD SupportedBandListUTRA-FDD +} + +SupportedBandListUTRA-FDD ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-FDD + +SupportedBandUTRA-FDD ::= ENUMERATED { + bandI, bandII, bandIII, bandIV, bandV, bandVI, + bandVII, bandVIII, bandIX, bandX, bandXI, + bandXII, bandXIII, bandXIV, bandXV, bandXVI, ..., + bandXVII-8a0, bandXVIII-8a0, bandXIX-8a0, bandXX-8a0, + bandXXI-8a0, bandXXII-8a0, bandXXIII-8a0, bandXXIV-8a0, + bandXXV-8a0, bandXXVI-8a0, bandXXVII-8a0, bandXXVIII-8a0, + bandXXIX-8a0, bandXXX-8a0, bandXXXI-8a0, bandXXXII-8a0} + +IRAT-ParametersUTRA-TDD128 ::= SEQUENCE { + supportedBandListUTRA-TDD128 SupportedBandListUTRA-TDD128 +} + +SupportedBandListUTRA-TDD128 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD128 + +SupportedBandUTRA-TDD128 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD384 ::= SEQUENCE { + supportedBandListUTRA-TDD384 SupportedBandListUTRA-TDD384 +} + +SupportedBandListUTRA-TDD384 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD384 + +SupportedBandUTRA-TDD384 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD768 ::= SEQUENCE { + supportedBandListUTRA-TDD768 SupportedBandListUTRA-TDD768 +} + +SupportedBandListUTRA-TDD768 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD768 + +SupportedBandUTRA-TDD768 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersGERAN ::= SEQUENCE { + supportedBandListGERAN SupportedBandListGERAN, + interRAT-PS-HO-ToGERAN BOOLEAN +} + +SupportedBandListGERAN ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandGERAN + +SupportedBandGERAN ::= ENUMERATED { + gsm450, gsm480, gsm710, gsm750, gsm810, gsm850, + gsm900P, gsm900E, gsm900R, gsm1800, gsm1900, + spare5, spare4, spare3, spare2, spare1, ...} + +IRAT-ParametersCDMA2000-HRPD ::= SEQUENCE { + supportedBandListHRPD SupportedBandListHRPD, + tx-ConfigHRPD ENUMERATED {single, dual}, + rx-ConfigHRPD ENUMERATED {single, dual} +} + +SupportedBandListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + +IRAT-ParametersCDMA2000-1XRTT ::= SEQUENCE { + supportedBandList1XRTT SupportedBandList1XRTT, + tx-Config1XRTT ENUMERATED {single, dual}, + rx-Config1XRTT ENUMERATED {single, dual} +} + +SupportedBandList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + + +UE-TimersAndConstants ::= SEQUENCE { + t300 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t301 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t310 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n310 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ... +} + + +maxBands INTEGER ::= 64 -- Maximum number of bands listed in EUTRA UE caps +maxCDMA-BandClass INTEGER ::= 32 -- Maximum value of the CDMA band classes +maxCellBlack INTEGER ::= 16 -- Maximum number of blacklisted cells + -- listed in SIB type 4 and 5 +maxCellInter INTEGER ::= 16 -- Maximum number of neighbouring inter-frequency + -- cells listed in SIB type 5 +maxCellIntra INTEGER ::= 16 -- Maximum number of neighbouring intra-frequency + -- cells listed in SIB type 4 +maxCellMeas INTEGER ::= 32 -- Maximum number of entries in each of the neighbour + -- cell lists in a measurement object +maxCellReport INTEGER ::= 8 -- Maximum number of reported cells +maxDRB INTEGER ::= 11 -- Maximum number of Data Radio Bearers +maxEARFCN INTEGER ::= 65535 -- Maximum value of EUTRA carrier fequency +maxFreq INTEGER ::= 8 -- Maximum number of EUTRA carrier frequencies +maxGERAN-SI INTEGER ::= 10 -- Maximum number of GERAN SI blocks that can be + -- provided as part of NACC information +maxGNFG INTEGER ::= 16 -- Maximum number of GERAN neighbour freq groups +maxMBSFN-Allocations INTEGER ::= 8 -- Maximum number of MBSFN frame allocations with + -- different offset +maxMCS-1 INTEGER ::= 16 -- Maximum number of PUCCH formats (MCS) +maxMeasId INTEGER ::= 32 +maxMultiBands INTEGER ::= 8 -- Maximum number of additional frequency bands + -- that a cell belongs to +maxObjectId INTEGER ::= 32 +maxPageRec INTEGER ::= 16 -- +maxPNOffset INTEGER ::= 511 -- Maximum number of CDMA2000 PNOffsets +maxRAT-Capabilities INTEGER ::= 8 -- Maximum number of interworking RATs (incl EUTRA) +maxReportConfigId INTEGER ::= 32 +maxSIB INTEGER ::= 32 -- Maximum number of SIBs +maxSIB-1 INTEGER ::= 31 +maxSI-Message INTEGER ::= 32 -- Maximum number of SI messages +maxUTRA-FDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA FDD carrier frequencies +maxUTRA-TDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA TDD carrier frequencies + + +END + + +EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + CellIdentity, + SpeedStateScaleFactors, + C-RNTI, + MeasId, + MeasIdToAddModList, + MeasObjectToAddModList, + MobilityStateParameters, + NeighCellConfig, + PhysCellId, + QuantityConfig, + ReportConfigToAddModList, + RSRP-Range, + maxCellMeas, + maxMeasId +FROM EUTRA-RRC-Definitions; + + +VarMeasConfig ::= SEQUENCE { + -- Measurement identities + measIdList MeasIdToAddModList OPTIONAL, + -- Measurement objects + measObjectList MeasObjectToAddModList OPTIONAL, + -- Reporting configurations + reportConfigList ReportConfigToAddModList OPTIONAL, + -- Other parameters + quantityConfig QuantityConfig OPTIONAL, + s-Measure RSRP-Range OPTIONAL, + speedStatePars CHOICE { + release NULL, + setup SEQUENCE { + mobilityStateParameters MobilityStateParameters, + timeToTrigger-SF SpeedStateScaleFactors + } + } OPTIONAL +} + + +VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport + +VarMeasReport ::= SEQUENCE { + -- List of measurement that have been triggered + measId MeasId, + cellsTriggeredList CellsTriggeredList OPTIONAL, + numberOfReportsSent INTEGER +} + +CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF PhysCellId + + +VarShortMAC-Input ::= SEQUENCE { + cellIdentity CellIdentity, + physCellId PhysCellId, + c-RNTI C-RNTI +} + + + +END + + +EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AntennaInfoCommon, + CellIdentity, + C-RNTI, + DL-DCCH-Message, + ARFCN-ValueEUTRA, + MasterInformationBlock, + MeasConfig, + PhysCellId, + RadioResourceConfigDedicated, + SecurityAlgorithmConfig, + ShortMAC-I, + SystemInformationBlockType1, + SystemInformationBlockType2, + UECapabilityInformation, + UE-CapabilityRAT-ContainerList +FROM EUTRA-RRC-Definitions; + + +HandoverCommand ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverCommand-r8 HandoverCommand-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverCommand-r8-IEs ::= SEQUENCE { + handoverCommandMessage OCTET STRING (CONTAINING DL-DCCH-Message), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +HandoverPreparationInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverPreparationInformation-r8 HandoverPreparationInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverPreparationInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo UE-CapabilityRAT-ContainerList, + as-Config AS-Config OPTIONAL, -- Cond HO + rrm-Config RRM-Config OPTIONAL, + as-Context AS-Context OPTIONAL, -- Cond HO + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioAccessCapabilityInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioAccessCapabilityInformation-r8 + UERadioAccessCapabilityInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +AS-Config ::= SEQUENCE { + sourceMeasConfig MeasConfig, + sourceRadioResourceConfig RadioResourceConfigDedicated, + sourceSecurityAlgorithmConfig SecurityAlgorithmConfig, + sourceUE-Identity C-RNTI, + sourceMasterInformationBlock MasterInformationBlock, + sourceSystemInformationBlockType1 SystemInformationBlockType1, + sourceSystemInformationBlockType2 SystemInformationBlockType2, + antennaInfoCommon AntennaInfoCommon, + sourceDl-CarrierFreq ARFCN-ValueEUTRA, + ... +} + + +AS-Context ::= SEQUENCE { + reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO +} + + +ReestablishmentInfo ::= SEQUENCE { + sourcePhysCellId PhysCellId, + targetCellShortMAC-I ShortMAC-I, + additionalReestabInfoList AdditionalReestabInfoList OPTIONAL, + ... +} + +AdditionalReestabInfoList ::= SEQUENCE ( SIZE (1..maxReestabInfo) ) OF AdditionalReestabInfo + +AdditionalReestabInfo ::= SEQUENCE{ + cellIdentity CellIdentity, + key-eNodeB-Star Key-eNodeB-Star, + shortMAC-I ShortMAC-I +} + +Key-eNodeB-Star ::= BIT STRING (SIZE (256)) + + +RRM-Config ::= SEQUENCE { + ue-InactiveTime ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, + s25, s30, s40, s50, min1, min1s20c, min1s40, + min2, min2s30, min3, min3s30, min4, min5, min6, + min7, min8, min9, min10, min12, min14, min17, min20, + min24, min28, min33, min38, min44, min50, hr1, + hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6, + hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2, + day2hr12, day3, day4, day5, day7, day10, day14, day19, + day24, day30, dayMoreThan30} OPTIONAL, + ... +} + + +maxReestabInfo INTEGER ::= 32 -- Maximum number of KeNB* and shortMAC-I forwarded + -- at handover for re-establishment preparation + + +END + + diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-9.18.0.asn1 b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-9.18.0.asn1 new file mode 100755 index 0000000000..c24681eaba --- /dev/null +++ b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-9.18.0.asn1 @@ -0,0 +1,3787 @@ + +EUTRA-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + + +BCCH-BCH-Message ::= SEQUENCE { + message BCCH-BCH-MessageType +} + +BCCH-BCH-MessageType ::= MasterInformationBlock + + +BCCH-DL-SCH-Message ::= SEQUENCE { + message BCCH-DL-SCH-MessageType +} + +BCCH-DL-SCH-MessageType ::= CHOICE { + c1 CHOICE { + systemInformation SystemInformation, + systemInformationBlockType1 SystemInformationBlockType1 + }, + messageClassExtension SEQUENCE {} +} + + +MCCH-Message ::= SEQUENCE { + message MCCH-MessageType +} + +MCCH-MessageType ::= CHOICE { + c1 CHOICE { + mbsfnAreaConfiguration-r9 MBSFNAreaConfiguration-r9 + }, + messageClassExtension SEQUENCE {} +} + + +PCCH-Message ::= SEQUENCE { + message PCCH-MessageType +} + +PCCH-MessageType ::= CHOICE { + c1 CHOICE { + paging Paging + }, + messageClassExtension SEQUENCE {} +} + + +DL-CCCH-Message ::= SEQUENCE { + message DL-CCCH-MessageType +} + +DL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishment RRCConnectionReestablishment, + rrcConnectionReestablishmentReject RRCConnectionReestablishmentReject, + rrcConnectionReject RRCConnectionReject, + rrcConnectionSetup RRCConnectionSetup + }, + messageClassExtension SEQUENCE {} +} + + +DL-DCCH-Message ::= SEQUENCE { + message DL-DCCH-MessageType +} + +DL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + csfbParametersResponseCDMA2000 CSFBParametersResponseCDMA2000, + dlInformationTransfer DLInformationTransfer, + handoverFromEUTRAPreparationRequest HandoverFromEUTRAPreparationRequest, + mobilityFromEUTRACommand MobilityFromEUTRACommand, + rrcConnectionReconfiguration RRCConnectionReconfiguration, + rrcConnectionRelease RRCConnectionRelease, + securityModeCommand SecurityModeCommand, + ueCapabilityEnquiry UECapabilityEnquiry, + counterCheck CounterCheck, + ueInformationRequest-r9 UEInformationRequest-r9, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +UL-CCCH-Message ::= SEQUENCE { + message UL-CCCH-MessageType +} + +UL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcConnectionReestablishmentRequest RRCConnectionReestablishmentRequest, + rrcConnectionRequest RRCConnectionRequest + }, + messageClassExtension SEQUENCE {} +} + + +UL-DCCH-Message ::= SEQUENCE { + message UL-DCCH-MessageType +} + +UL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + csfbParametersRequestCDMA2000 CSFBParametersRequestCDMA2000, + measurementReport MeasurementReport, + rrcConnectionReconfigurationComplete RRCConnectionReconfigurationComplete, + rrcConnectionReestablishmentComplete RRCConnectionReestablishmentComplete, + rrcConnectionSetupComplete RRCConnectionSetupComplete, + securityModeComplete SecurityModeComplete, + securityModeFailure SecurityModeFailure, + ueCapabilityInformation UECapabilityInformation, +ulHandoverPreparationTransfer ULHandoverPreparationTransfer, + ulInformationTransfer ULInformationTransfer, + counterCheckResponse CounterCheckResponse, + ueInformationResponse-r9 UEInformationResponse-r9, + proximityIndication-r9 ProximityIndication-r9, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + + +CounterCheck ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + counterCheck-r8 CounterCheck-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheck-r8-IEs ::= SEQUENCE { + drb-CountMSB-InfoList DRB-CountMSB-InfoList, + nonCriticalExtension CounterCheck-v8a0-IEs OPTIONAL +} + +CounterCheck-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +DRB-CountMSB-InfoList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-CountMSB-Info + +DRB-CountMSB-Info ::= SEQUENCE { + drb-Identity DRB-Identity, + countMSB-Uplink INTEGER(0..33554431), + countMSB-Downlink INTEGER(0..33554431) +} + + +CounterCheckResponse ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + counterCheckResponse-r8 CounterCheckResponse-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheckResponse-r8-IEs ::= SEQUENCE { + drb-CountInfoList DRB-CountInfoList, + nonCriticalExtension CounterCheckResponse-v8a0-IEs OPTIONAL +} + +CounterCheckResponse-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-CountInfoList ::= SEQUENCE (SIZE (0..maxDRB)) OF DRB-CountInfo + +DRB-CountInfo ::= SEQUENCE { + drb-Identity DRB-Identity, + count-Uplink INTEGER(0..4294967295), + count-Downlink INTEGER(0..4294967295) +} + + +CSFBParametersRequestCDMA2000 ::= SEQUENCE { + criticalExtensions CHOICE { + csfbParametersRequestCDMA2000-r8 CSFBParametersRequestCDMA2000-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CSFBParametersRequestCDMA2000-r8-IEs ::= SEQUENCE { + nonCriticalExtension CSFBParametersRequestCDMA2000-v8a0-IEs OPTIONAL +} + +CSFBParametersRequestCDMA2000-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +CSFBParametersResponseCDMA2000 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + csfbParametersResponseCDMA2000-r8 CSFBParametersResponseCDMA2000-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CSFBParametersResponseCDMA2000-r8-IEs ::= SEQUENCE { + rand RAND-CDMA2000, + mobilityParameters MobilityParametersCDMA2000, + nonCriticalExtension CSFBParametersResponseCDMA2000-v8a0-IEs OPTIONAL +} + +CSFBParametersResponseCDMA2000-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + + +DLInformationTransfer ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + dlInformationTransfer-r8 DLInformationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +DLInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType CHOICE { + dedicatedInfoNAS DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000 + }, + nonCriticalExtension DLInformationTransfer-v8a0-IEs OPTIONAL +} + +DLInformationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + + +HandoverFromEUTRAPreparationRequest ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + handoverFromEUTRAPreparationRequest-r8 + HandoverFromEUTRAPreparationRequest-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverFromEUTRAPreparationRequest-r8-IEs ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + rand RAND-CDMA2000 OPTIONAL, -- Cond cdma2000-Type + mobilityParameters MobilityParametersCDMA2000 OPTIONAL, -- Cond cdma2000-Type + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v890-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension HandoverFromEUTRAPreparationRequest-v920-IEs OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v920-IEs ::= SEQUENCE { + concurrPrepCDMA2000-HRPD-r9 BOOLEAN OPTIONAL, -- Cond cdma2000-Type + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + + +MasterInformationBlock ::= SEQUENCE { + dl-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100}, + phich-Config PHICH-Config, + systemFrameNumber BIT STRING (SIZE (8)), + spare BIT STRING (SIZE (10)) +} + + + +MBSFNAreaConfiguration-r9 ::= SEQUENCE { + commonSF-Alloc-r9 CommonSF-AllocPatternList-r9, + commonSF-AllocPeriod-r9 ENUMERATED { + rf4, rf8, rf16, rf32, rf64, rf128, rf256}, + pmch-InfoList-r9 PMCH-InfoList-r9, + nonCriticalExtension MBSFNAreaConfiguration-v930-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +CommonSF-AllocPatternList-r9 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig + + +MeasurementReport ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + measurementReport-r8 MeasurementReport-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MeasurementReport-r8-IEs ::= SEQUENCE { + measResults MeasResults, + nonCriticalExtension MeasurementReport-v8a0-IEs OPTIONAL +} + +MeasurementReport-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +MobilityFromEUTRACommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + mobilityFromEUTRACommand-r8 MobilityFromEUTRACommand-r8-IEs, + mobilityFromEUTRACommand-r9 MobilityFromEUTRACommand-r9-IEs, + spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MobilityFromEUTRACommand-r8-IEs ::= SEQUENCE { + cs-FallbackIndicator BOOLEAN, + purpose CHOICE{ + handover Handover, + cellChangeOrder CellChangeOrder + }, + nonCriticalExtension MobilityFromEUTRACommand-v8a0-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension MobilityFromEUTRACommand-v8d0-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v8d0-IEs ::= SEQUENCE { + bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +MobilityFromEUTRACommand-r9-IEs ::= SEQUENCE { + cs-FallbackIndicator BOOLEAN, + purpose CHOICE{ + handover Handover, + cellChangeOrder CellChangeOrder, + e-CSFB-r9 E-CSFB-r9, + ... + }, + nonCriticalExtension MobilityFromEUTRACommand-v930-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension MobilityFromEUTRACommand-v960-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v960-IEs ::= SEQUENCE { + bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +Handover ::= SEQUENCE { + targetRAT-Type ENUMERATED { + utra, geran, cdma2000-1XRTT, cdma2000-HRPD, + spare4, spare3, spare2, spare1, ...}, + targetRAT-MessageContainer OCTET STRING, + nas-SecurityParamFromEUTRA OCTET STRING (SIZE (1)) OPTIONAL, -- Cond UTRAGERAN + systemInformation SI-OrPSI-GERAN OPTIONAL -- Cond PSHO +} + +CellChangeOrder ::= SEQUENCE { + t304 ENUMERATED { + ms100, ms200, ms500, ms1000, + ms2000, ms4000, ms8000, spare1}, + targetRAT-Type CHOICE { + geran SEQUENCE { + physCellId PhysCellIdGERAN, + carrierFreq CarrierFreqGERAN, + networkControlOrder BIT STRING (SIZE (2)) OPTIONAL, -- Need OP + systemInformation SI-OrPSI-GERAN OPTIONAL -- Need OP + }, + ... + } +} + +SI-OrPSI-GERAN ::= CHOICE { + si SystemInfoListGERAN, + psi SystemInfoListGERAN +} + +E-CSFB-r9 ::= SEQUENCE { + messageContCDMA2000-1XRTT-r9 OCTET STRING OPTIONAL, -- Need ON + mobilityCDMA2000-HRPD-r9 ENUMERATED { + handover, redirection + } OPTIONAL, -- Need OP + messageContCDMA2000-HRPD-r9 OCTET STRING OPTIONAL, -- Cond concHO + redirectCarrierCDMA2000-HRPD-r9 CarrierFreqCDMA2000 OPTIONAL -- Cond concRedir +} + + +Paging ::= SEQUENCE { + pagingRecordList PagingRecordList OPTIONAL, -- Need ON + systemInfoModification ENUMERATED {true} OPTIONAL, -- Need ON + etws-Indication ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension Paging-v890-IEs OPTIONAL +} + +Paging-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension Paging-v920-IEs OPTIONAL +} + +Paging-v920-IEs ::= SEQUENCE { + cmas-Indication-r9 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +PagingRecordList ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord + +PagingRecord ::= SEQUENCE { + ue-Identity PagingUE-Identity, + cn-Domain ENUMERATED {ps, cs}, + ... +} + +PagingUE-Identity ::= CHOICE { + s-TMSI S-TMSI, + imsi IMSI, + ... +} + +IMSI ::= SEQUENCE (SIZE (6..21)) OF IMSI-Digit + +IMSI-Digit ::= INTEGER (0..9) + + +ProximityIndication-r9 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + proximityIndication-r9 ProximityIndication-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ProximityIndication-r9-IEs ::= SEQUENCE { + type-r9 ENUMERATED {entering, leaving}, + carrierFreq-r9 CHOICE { + eutra-r9 ARFCN-ValueEUTRA, + utra-r9 ARFCN-ValueUTRA, + ..., + eutra2-v9e0 ARFCN-ValueEUTRA-v9e0 + }, + nonCriticalExtension ProximityIndication-v930-IEs OPTIONAL +} + +ProximityIndication-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReconfiguration ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReconfiguration-r8 RRCConnectionReconfiguration-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfiguration-r8-IEs ::= SEQUENCE { + measConfig MeasConfig OPTIONAL, -- Need ON + mobilityControlInfo MobilityControlInfo OPTIONAL, -- Cond HO + dedicatedInfoNASList SEQUENCE (SIZE(1..maxDRB)) OF + DedicatedInfoNAS OPTIONAL, -- Cond nonHO + radioResourceConfigDedicated RadioResourceConfigDedicated OPTIONAL, -- Cond HO-toEUTRA + securityConfigHO SecurityConfigHO OPTIONAL, -- Cond HO + nonCriticalExtension RRCConnectionReconfiguration-v890-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension RRCConnectionReconfiguration-v920-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v920-IEs ::= SEQUENCE { + otherConfig-r9 OtherConfig-r9 OPTIONAL, -- Need ON + fullConfig-r9 ENUMERATED {true} OPTIONAL, -- Cond HO-Reestab + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +SecurityConfigHO ::= SEQUENCE { + handoverType CHOICE { + intraLTE SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig OPTIONAL, -- Cond fullConfig + keyChangeIndicator BOOLEAN, + nextHopChainingCount NextHopChainingCount + }, + interRAT SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig, + nas-SecurityParamToEUTRA OCTET STRING (SIZE(6)) + } + }, + ... +} + + + +RRCConnectionReconfigurationComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReconfigurationComplete-r8 + RRCConnectionReconfigurationComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReconfigurationComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReconfigurationComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishment ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionReestablishment-r8 RRCConnectionReestablishment-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishment-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated RadioResourceConfigDedicated, + nextHopChainingCount NextHopChainingCount, + nonCriticalExtension RRCConnectionReestablishment-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishment-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + + +RRCConnectionReestablishmentComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcConnectionReestablishmentComplete-r8 + RRCConnectionReestablishmentComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReestablishmentComplete-v920-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v920-IEs ::= SEQUENCE { + rlf-InfoAvailable-r9 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +RRCConnectionReestablishmentReject ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentReject-r8 + RRCConnectionReestablishmentReject-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentReject-r8-IEs ::= SEQUENCE { + nonCriticalExtension RRCConnectionReestablishmentReject-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishmentReject-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + + +RRCConnectionReestablishmentRequest ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionReestablishmentRequest-r8 + RRCConnectionReestablishmentRequest-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReestablishmentRequest-r8-IEs ::= SEQUENCE { + ue-Identity ReestabUE-Identity, + reestablishmentCause ReestablishmentCause, + spare BIT STRING (SIZE (2)) +} + +ReestabUE-Identity ::= SEQUENCE { + c-RNTI C-RNTI, + physCellId PhysCellId, + shortMAC-I ShortMAC-I +} + +ReestablishmentCause ::= ENUMERATED { + reconfigurationFailure, handoverFailure, + otherFailure, spare1} + + +RRCConnectionReject ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionReject-r8 RRCConnectionReject-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionReject-r8-IEs ::= SEQUENCE { + waitTime INTEGER (1..16), + nonCriticalExtension RRCConnectionReject-v8a0-IEs OPTIONAL +} + +RRCConnectionReject-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + + +RRCConnectionRelease ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionRelease-r8 RRCConnectionRelease-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRelease-r8-IEs ::= SEQUENCE { + releaseCause ReleaseCause, + redirectedCarrierInfo RedirectedCarrierInfo OPTIONAL, -- Need ON + idleModeMobilityControlInfo IdleModeMobilityControlInfo OPTIONAL, -- Need OP + nonCriticalExtension RRCConnectionRelease-v890-IEs OPTIONAL +} + +RRCConnectionRelease-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING RRCConnectionRelease-v9e0-IEs) OPTIONAL, -- Need OP + nonCriticalExtension RRCConnectionRelease-v920-IEs OPTIONAL +} + +RRCConnectionRelease-v9e0-IEs ::= SEQUENCE { + redirectedCarrierInfo-v9e0 RedirectedCarrierInfo-v9e0 OPTIONAL, -- Cond NoRedirect-r8 + idleModeMobilityControlInfo-v9e0 IdleModeMobilityControlInfo-v9e0 OPTIONAL, -- Cond IdleInfoEUTRA + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +RRCConnectionRelease-v920-IEs ::= SEQUENCE { + cellInfoList-r9 CHOICE { + geran-r9 CellInfoListGERAN-r9, + utra-FDD-r9 CellInfoListUTRA-FDD-r9, + utra-TDD-r9 CellInfoListUTRA-TDD-r9, + ... + } OPTIONAL, -- Cond Redirection + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +ReleaseCause ::= ENUMERATED {loadBalancingTAUrequired, + other,spare2,spare1} + +RedirectedCarrierInfo ::= CHOICE { + eutra ARFCN-ValueEUTRA, + geran CarrierFreqsGERAN, + utra-FDD ARFCN-ValueUTRA, + utra-TDD ARFCN-ValueUTRA, + cdma2000-HRPD CarrierFreqCDMA2000, + cdma2000-1xRTT CarrierFreqCDMA2000, + ... +} + +RedirectedCarrierInfo-v9e0 ::= SEQUENCE { + eutra-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +IdleModeMobilityControlInfo ::= SEQUENCE { + freqPriorityListEUTRA FreqPriorityListEUTRA OPTIONAL, -- Need ON + freqPriorityListGERAN FreqsPriorityListGERAN OPTIONAL, -- Need ON + freqPriorityListUTRA-FDD FreqPriorityListUTRA-FDD OPTIONAL, -- Need ON + freqPriorityListUTRA-TDD FreqPriorityListUTRA-TDD OPTIONAL, -- Need ON + bandClassPriorityListHRPD BandClassPriorityListHRPD OPTIONAL, -- Need ON + bandClassPriorityList1XRTT BandClassPriorityList1XRTT OPTIONAL, -- Need ON + t320 ENUMERATED { + min5, min10, min20, min30, min60, min120, min180, + spare1} OPTIONAL, -- Need OR + ... +} + +IdleModeMobilityControlInfo-v9e0 ::= SEQUENCE { + freqPriorityListEUTRA-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v9e0 +} + +FreqPriorityListEUTRA ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA + +FreqPriorityEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityEUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max +} + +FreqsPriorityListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF FreqsPriorityGERAN + +FreqsPriorityGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF FreqPriorityUTRA-FDD + +FreqPriorityUTRA-FDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority +} + +FreqPriorityListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF FreqPriorityUTRA-TDD + +FreqPriorityUTRA-TDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority +} + +BandClassPriorityListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriorityHRPD + +BandClassPriorityHRPD ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority +} + +BandClassPriorityList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriority1XRTT + +BandClassPriority1XRTT ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority +} + +CellInfoListGERAN-r9 ::= SEQUENCE (SIZE (1..maxCellInfoGERAN-r9)) OF CellInfoGERAN-r9 + +CellInfoGERAN-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdGERAN, + carrierFreq-r9 CarrierFreqGERAN, + systemInformation-r9 SystemInfoListGERAN +} + +CellInfoListUTRA-FDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-FDD-r9 + +CellInfoUTRA-FDD-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdUTRA-FDD, + utra-BCCH-Container-r9 OCTET STRING +} + +CellInfoListUTRA-TDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r9 + +CellInfoUTRA-TDD-r9 ::= SEQUENCE { + physCellId-r9 PhysCellIdUTRA-TDD, + utra-BCCH-Container-r9 OCTET STRING +} + + +RRCConnectionRequest ::= SEQUENCE { + criticalExtensions CHOICE { + rrcConnectionRequest-r8 RRCConnectionRequest-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionRequest-r8-IEs ::= SEQUENCE { + ue-Identity InitialUE-Identity, + establishmentCause EstablishmentCause, + spare BIT STRING (SIZE (1)) +} + +InitialUE-Identity ::= CHOICE { + s-TMSI S-TMSI, + randomValue BIT STRING (SIZE (40)) +} + +EstablishmentCause ::= ENUMERATED { + emergency, highPriorityAccess, mt-Access, mo-Signalling, + mo-Data, spare3, spare2, spare1} + + +RRCConnectionSetup ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + rrcConnectionSetup-r8 RRCConnectionSetup-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetup-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated RadioResourceConfigDedicated, + nonCriticalExtension RRCConnectionSetup-v8a0-IEs OPTIONAL +} + +RRCConnectionSetup-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + + +RRCConnectionSetupComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + rrcConnectionSetupComplete-r8 RRCConnectionSetupComplete-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCConnectionSetupComplete-r8-IEs ::= SEQUENCE { + selectedPLMN-Identity INTEGER (1..6), + registeredMME RegisteredMME OPTIONAL, + dedicatedInfoNAS DedicatedInfoNAS, + nonCriticalExtension RRCConnectionSetupComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RegisteredMME ::= SEQUENCE { + plmn-Identity PLMN-Identity OPTIONAL, + mmegi BIT STRING (SIZE (16)), + mmec MMEC +} + + +SecurityModeCommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + securityModeCommand-r8 SecurityModeCommand-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeCommand-r8-IEs ::= SEQUENCE { + securityConfigSMC SecurityConfigSMC, + nonCriticalExtension SecurityModeCommand-v8a0-IEs OPTIONAL +} + +SecurityModeCommand-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +SecurityConfigSMC ::= SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig, + ... +} + + +SecurityModeComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeComplete-r8 SecurityModeComplete-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension SecurityModeComplete-v8a0-IEs OPTIONAL +} + +SecurityModeComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SecurityModeFailure ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeFailure-r8 SecurityModeFailure-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeFailure-r8-IEs ::= SEQUENCE { + nonCriticalExtension SecurityModeFailure-v8a0-IEs OPTIONAL +} + +SecurityModeFailure-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformation ::= SEQUENCE { + criticalExtensions CHOICE { + systemInformation-r8 SystemInformation-r8-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} +SystemInformation-r8-IEs ::= SEQUENCE { + sib-TypeAndInfo SEQUENCE (SIZE (1..maxSIB)) OF CHOICE { + sib2 SystemInformationBlockType2, + sib3 SystemInformationBlockType3, + sib4 SystemInformationBlockType4, + sib5 SystemInformationBlockType5, + sib6 SystemInformationBlockType6, + sib7 SystemInformationBlockType7, + sib8 SystemInformationBlockType8, + sib9 SystemInformationBlockType9, + sib10 SystemInformationBlockType10, + sib11 SystemInformationBlockType11, + ..., + sib12-v920 SystemInformationBlockType12-r9, + sib13-v920 SystemInformationBlockType13-r9 + }, + nonCriticalExtension SystemInformation-v8a0-IEs OPTIONAL +} + +SystemInformation-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + + +SystemInformationBlockType1 ::= SEQUENCE { + cellAccessRelatedInfo SEQUENCE { + plmn-IdentityList PLMN-IdentityList, + trackingAreaCode TrackingAreaCode, + cellIdentity CellIdentity, + cellBarred ENUMERATED {barred, notBarred}, + intraFreqReselection ENUMERATED {allowed, notAllowed}, + csg-Indication BOOLEAN, + csg-Identity CSG-Identity OPTIONAL -- Need OR + }, + cellSelectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + q-RxLevMinOffset INTEGER (1..8) OPTIONAL -- Need OP + }, + p-Max P-Max OPTIONAL, -- Need OP + freqBandIndicator FreqBandIndicator, + schedulingInfoList SchedulingInfoList, + tdd-Config TDD-Config OPTIONAL, -- Cond TDD + si-WindowLength ENUMERATED { + ms1, ms2, ms5, ms10, ms15, ms20, + ms40}, + systemInfoValueTag INTEGER (0..31), + nonCriticalExtension SystemInformationBlockType1-v890-IEs OPTIONAL +} + +SystemInformationBlockType1-v890-IEs::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType1-v8h0-IEs) OPTIONAL, -- Need OP + nonCriticalExtension SystemInformationBlockType1-v920-IEs OPTIONAL +} + +SystemInformationBlockType1-v8h0-IEs ::= SEQUENCE { + multiBandInfoList MultiBandInfoList OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType1-v9e0-IEs OPTIONAL -- Need OP +} + +SystemInformationBlockType1-v9e0-IEs ::= SEQUENCE { + freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL, -- Cond FBI-max + multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL, -- Cond mFBI-max + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +SystemInformationBlockType1-v920-IEs ::= SEQUENCE { + ims-EmergencySupport-r9 ENUMERATED {true} OPTIONAL, -- Need OR + cellSelectionInfo-v920 CellSelectionInfo-v920 OPTIONAL, -- Cond RSRQ + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +PLMN-IdentityList ::= SEQUENCE (SIZE (1..6)) OF PLMN-IdentityInfo + +PLMN-IdentityInfo ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellReservedForOperatorUse ENUMERATED {reserved, notReserved} +} + +SchedulingInfoList ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo + +SchedulingInfo ::= SEQUENCE { + si-Periodicity ENUMERATED { + rf8, rf16, rf32, rf64, rf128, rf256, rf512}, + sib-MappingInfo SIB-MappingInfo +} + +SIB-MappingInfo ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type + +SIB-Type ::= ENUMERATED { + sibType3, sibType4, sibType5, sibType6, + sibType7, sibType8, sibType9, sibType10, + sibType11, sibType12-v920, sibType13-v920, spare5, + spare4, spare3, spare2, spare1, ...} + +CellSelectionInfo-v920 ::= SEQUENCE { + q-QualMin-r9 Q-QualMin-r9, + q-QualMinOffset-r9 INTEGER (1..8) OPTIONAL -- Need OP +} + + +UECapabilityEnquiry ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueCapabilityEnquiry-r8 UECapabilityEnquiry-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityEnquiry-r8-IEs ::= SEQUENCE { + ue-CapabilityRequest UE-CapabilityRequest, + nonCriticalExtension UECapabilityEnquiry-v8a0-IEs OPTIONAL +} + +UECapabilityEnquiry-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +UE-CapabilityRequest ::= SEQUENCE (SIZE (1..maxRAT-Capabilities)) OF RAT-Type + + +UECapabilityInformation ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE{ + ueCapabilityInformation-r8 UECapabilityInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityInformation-r8-IEs ::= SEQUENCE { + ue-CapabilityRAT-ContainerList UE-CapabilityRAT-ContainerList, + nonCriticalExtension UECapabilityInformation-v8a0-IEs OPTIONAL +} + +UECapabilityInformation-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UEInformationRequest-r9 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueInformationRequest-r9 UEInformationRequest-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEInformationRequest-r9-IEs ::= SEQUENCE { + rach-ReportReq-r9 BOOLEAN, + rlf-ReportReq-r9 BOOLEAN, + nonCriticalExtension UEInformationRequest-v930-IEs OPTIONAL +} + +UEInformationRequest-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + + +UEInformationResponse-r9 ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + c1 CHOICE { + ueInformationResponse-r9 UEInformationResponse-r9-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEInformationResponse-r9-IEs ::= SEQUENCE { + rach-Report-r9 SEQUENCE { + numberOfPreamblesSent-r9 INTEGER (1..200), + contentionDetected-r9 BOOLEAN + } OPTIONAL, + rlfReport-r9 RLF-Report-r9 OPTIONAL, + nonCriticalExtension UEInformationResponse-v930-IEs OPTIONAL +} + +UEInformationResponse-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING UEInformationResponse-v9e0-IEs) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UEInformationResponse-v9e0-IEs ::= SEQUENCE { + rlf-Report-v9e0 RLF-Report-v9e0 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +RLF-Report-r9 ::= SEQUENCE { + measResultLastServCell-r9 SEQUENCE { + rsrpResult-r9 RSRP-Range, + rsrqResult-r9 RSRQ-Range OPTIONAL + }, + measResultNeighCells-r9 SEQUENCE { + measResultListEUTRA-r9 MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r9 MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r9 MeasResultListGERAN OPTIONAL, + measResultsCDMA2000-r9 MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + ... +} + +RLF-Report-v9e0 ::= SEQUENCE { + measResultListEUTRA-v9e0 MeasResultList2EUTRA-v9e0 +} + +MeasResultList2EUTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-r9 + +MeasResultList2EUTRA-v9e0 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v9e0 + +MeasResult2EUTRA-r9 ::= SEQUENCE { + carrierFreq-r9 ARFCN-ValueEUTRA, + measResultList-r9 MeasResultListEUTRA +} + +MeasResult2EUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL +} + +MeasResultList2UTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2UTRA-r9 + +MeasResult2UTRA-r9 ::= SEQUENCE { + carrierFreq-r9 ARFCN-ValueUTRA, + measResultList-r9 MeasResultListUTRA +} + +MeasResultList2CDMA2000-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2CDMA2000-r9 + +MeasResult2CDMA2000-r9 ::= SEQUENCE { + carrierFreq-r9 CarrierFreqCDMA2000, + measResultList-r9 MeasResultsCDMA2000 +} + + +ULHandoverPreparationTransfer ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulHandoverPreparationTransfer-r8 ULHandoverPreparationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULHandoverPreparationTransfer-r8-IEs ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + meid BIT STRING (SIZE (56)) OPTIONAL, + dedicatedInfo DedicatedInfoCDMA2000, + nonCriticalExtension ULHandoverPreparationTransfer-v8a0-IEs OPTIONAL +} + +ULHandoverPreparationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +ULInformationTransfer ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + ulInformationTransfer-r8 ULInformationTransfer-r8-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType CHOICE { + dedicatedInfoNAS DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000 + }, + nonCriticalExtension ULInformationTransfer-v8a0-IEs OPTIONAL +} + +ULInformationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +SystemInformationBlockType2 ::= SEQUENCE { + ac-BarringInfo SEQUENCE { + ac-BarringForEmergency BOOLEAN, + ac-BarringForMO-Signalling AC-BarringConfig OPTIONAL, -- Need OP + ac-BarringForMO-Data AC-BarringConfig OPTIONAL -- Need OP + } OPTIONAL, -- Need OP + radioResourceConfigCommon RadioResourceConfigCommonSIB, + ue-TimersAndConstants UE-TimersAndConstants, + freqInfo SEQUENCE { + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100} + OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission + }, + mbsfn-SubframeConfigList MBSFN-SubframeConfigList OPTIONAL, -- Need OR + timeAlignmentTimerCommon TimeAlignmentTimer, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType2-v8h0-IEs) OPTIONAL, -- Need OP + [[ ssac-BarringForMMTEL-Voice-r9 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Video-r9 AC-BarringConfig OPTIONAL -- Need OP + ]] +} + +SystemInformationBlockType2-v8h0-IEs ::= SEQUENCE { + multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission OPTIONAL, -- Need OR + nonCriticalExtension SystemInformationBlockType2-v9e0-IEs OPTIONAL -- Need OP +} + +SystemInformationBlockType2-v9e0-IEs ::= SEQUENCE { + ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond ul-FreqMax + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +AC-BarringConfig ::= SEQUENCE { + ac-BarringFactor ENUMERATED { + p00, p05, p10, p15, p20, p25, p30, p40, + p50, p60, p70, p75, p80, p85, p90, p95}, + ac-BarringTime ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512}, + ac-BarringForSpecialAC BIT STRING (SIZE(5)) +} + +MBSFN-SubframeConfigList ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig + + +SystemInformationBlockType3 ::= SEQUENCE { + cellReselectionInfoCommon SEQUENCE { + q-Hyst ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + speedStateReselectionPars SEQUENCE { + mobilityStateParameters MobilityStateParameters, + q-HystSF SEQUENCE { + sf-Medium ENUMERATED { + dB-6, dB-4, dB-2, dB0}, + sf-High ENUMERATED { + dB-6, dB-4, dB-2, dB0} + } + } OPTIONAL -- Need OP + }, + cellReselectionServingFreqInfo SEQUENCE { + s-NonIntraSearch ReselectionThreshold OPTIONAL, -- Need OP + threshServingLow ReselectionThreshold, + cellReselectionPriority CellReselectionPriority + }, + intraFreqCellReselectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + p-Max P-Max OPTIONAL, -- Need OP + s-IntraSearch ReselectionThreshold OPTIONAL, -- Need OP + allowedMeasBandwidth AllowedMeasBandwidth OPTIONAL, -- Need OP + presenceAntennaPort1 PresenceAntennaPort1, + neighCellConfig NeighCellConfig, + t-ReselectionEUTRA T-Reselection, + t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL -- Need OP + }, + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + [[ s-IntraSearch-v920 SEQUENCE { + s-IntraSearchP-r9 ReselectionThreshold, + s-IntraSearchQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL, -- Need OP + s-NonIntraSearch-v920 SEQUENCE { + s-NonIntraSearchP-r9 ReselectionThreshold, + s-NonIntraSearchQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL, -- Need OP + q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP + threshServingLowQ-r9 ReselectionThresholdQ-r9 OPTIONAL -- Need OP + ]] +} + + +SystemInformationBlockType4 ::= SEQUENCE { + intraFreqNeighCellList IntraFreqNeighCellList OPTIONAL, -- Need OR + intraFreqBlackCellList IntraFreqBlackCellList OPTIONAL, -- Need OR + csg-PhysCellIdRange PhysCellIdRange OPTIONAL, -- Cond CSG + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL -- Need OP +} + +IntraFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellIntra)) OF IntraFreqNeighCellInfo + +IntraFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange, + ... +} + +IntraFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange + + +SystemInformationBlockType5 ::= SEQUENCE { + interFreqCarrierFreqList InterFreqCarrierFreqList, + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType5-v8h0-IEs) OPTIONAL -- Need OP +} + +SystemInformationBlockType5-v8h0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v8h0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v8h0 OPTIONAL, -- Need OP + nonCriticalExtension SystemInformationBlockType5-v9e0-IEs OPTIONAL -- Need OP +} + +SystemInformationBlockType5-v9e0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v9e0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +InterFreqCarrierFreqList ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo + +InterFreqCarrierFreqInfo ::= SEQUENCE { + dl-CarrierFreq ARFCN-ValueEUTRA, + q-RxLevMin Q-RxLevMin, + p-Max P-Max OPTIONAL, -- Need OP + t-ReselectionEUTRA T-Reselection, + t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + allowedMeasBandwidth AllowedMeasBandwidth, + presenceAntennaPort1 PresenceAntennaPort1, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + neighCellConfig NeighCellConfig, + q-OffsetFreq Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList InterFreqNeighCellList OPTIONAL, -- Need OR + interFreqBlackCellList InterFreqBlackCellList OPTIONAL, -- Need OR + ..., + [[ q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP + threshX-Q-r9 SEQUENCE { + threshX-HighQ-r9 ReselectionThresholdQ-r9, + threshX-LowQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL -- Cond RSRQ + ]] +} + +InterFreqCarrierFreqInfo-v8h0 ::= SEQUENCE { + multiBandInfoList MultiBandInfoList OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v9e0 ::= SEQUENCE { + dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond dl-FreqMax + multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL -- Need OR +} + +InterFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo + +InterFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange +} + +InterFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange + + +SystemInformationBlockType6 ::= SEQUENCE { + carrierFreqListUTRA-FDD CarrierFreqListUTRA-FDD OPTIONAL, -- Need OR + carrierFreqListUTRA-TDD CarrierFreqListUTRA-TDD OPTIONAL, -- Need OR + t-ReselectionUTRA T-Reselection, + t-ReselectionUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP + ..., + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType6-v8h0-IEs) OPTIONAL -- Need OP +} + +SystemInformationBlockType6-v8h0-IEs ::= SEQUENCE { + carrierFreqListUTRA-FDD-v8h0 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqInfoUTRA-FDD-v8h0 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP +} + +CarrierFreqListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqUTRA-FDD + +CarrierFreqUTRA-FDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + q-RxLevMin INTEGER (-60..-13), + p-MaxUTRA INTEGER (-50..33), + q-QualMin INTEGER (-24..0), + ..., + [[ threshX-Q-r9 SEQUENCE { + threshX-HighQ-r9 ReselectionThresholdQ-r9, + threshX-LowQ-r9 ReselectionThresholdQ-r9 + } OPTIONAL -- Cond RSRQ + ]] +} + +CarrierFreqInfoUTRA-FDD-v8h0 ::= SEQUENCE { + multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL -- Need OR +} + + +CarrierFreqListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF CarrierFreqUTRA-TDD + +CarrierFreqUTRA-TDD ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + q-RxLevMin INTEGER (-60..-13), + p-MaxUTRA INTEGER (-50..33), + ... +} + +FreqBandIndicator-UTRA-FDD ::= INTEGER (1..86) + + +SystemInformationBlockType7 ::= SEQUENCE { + t-ReselectionGERAN T-Reselection, + t-ReselectionGERAN-SF SpeedStateScaleFactors OPTIONAL, -- Need OR + carrierFreqsInfoList CarrierFreqsInfoListGERAN OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL -- Need OP +} + +CarrierFreqsInfoListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF CarrierFreqsInfoGERAN + +CarrierFreqsInfoGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + commonInfo SEQUENCE { + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + ncc-Permitted BIT STRING (SIZE (8)), + q-RxLevMin INTEGER (0..45), + p-MaxGERAN INTEGER (0..39) OPTIONAL, -- Need OP + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold + }, + ... +} + + +SystemInformationBlockType8 ::= SEQUENCE { + systemTimeInfo SystemTimeInfoCDMA2000 OPTIONAL, -- Need OR + searchWindowSize INTEGER (0..15) OPTIONAL, -- Need OR + parametersHRPD SEQUENCE { + preRegistrationInfoHRPD PreRegistrationInfoHRPD, + cellReselectionParametersHRPD CellReselectionParametersCDMA2000 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + parameters1XRTT SEQUENCE { + csfb-RegistrationParam1XRTT CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP + longCodeState1XRTT BIT STRING (SIZE (42)) OPTIONAL, -- Need OR + cellReselectionParameters1XRTT CellReselectionParametersCDMA2000 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + [[ csfb-SupportForDualRxUEs-r9 BOOLEAN OPTIONAL, -- Need OR + cellReselectionParametersHRPD-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-HRPD + cellReselectionParameters1XRTT-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-1XRTT + csfb-RegistrationParam1XRTT-v920 CSFB-RegistrationParam1XRTT-v920 OPTIONAL, -- Cond REG-1XRTT + ac-BarringConfig1XRTT-r9 AC-BarringConfig1XRTT-r9 OPTIONAL -- Cond REG-1XRTT + ]] +} + +CellReselectionParametersCDMA2000 ::= SEQUENCE { + bandClassList BandClassListCDMA2000, + neighCellList NeighCellListCDMA2000, + t-ReselectionCDMA2000 T-Reselection, + t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP +} + +CellReselectionParametersCDMA2000-v920 ::= SEQUENCE { + neighCellList-v920 NeighCellListCDMA2000-v920 +} + +NeighCellListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000 + +NeighCellCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + neighCellsPerFreqList NeighCellsPerBandclassListCDMA2000 +} + +NeighCellsPerBandclassListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000 + +NeighCellsPerBandclassCDMA2000 ::= SEQUENCE { + arfcn ARFCN-ValueCDMA2000, + physCellIdList PhysCellIdListCDMA2000 +} + +NeighCellListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-v920 + +NeighCellCDMA2000-v920 ::= SEQUENCE { + neighCellsPerFreqList-v920 NeighCellsPerBandclassListCDMA2000-v920 +} + +NeighCellsPerBandclassListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-v920 + +NeighCellsPerBandclassCDMA2000-v920 ::= SEQUENCE { + physCellIdList-v920 PhysCellIdListCDMA2000-v920 +} + +PhysCellIdListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdCDMA2000 + +PhysCellIdListCDMA2000-v920 ::= SEQUENCE (SIZE (0..24)) OF PhysCellIdCDMA2000 + +BandClassListCDMA2000 ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassInfoCDMA2000 + +BandClassInfoCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP + threshX-High INTEGER (0..63), + threshX-Low INTEGER (0..63), + ... +} + +AC-BarringConfig1XRTT-r9 ::= SEQUENCE { + ac-Barring0to9-r9 INTEGER (0..63), + ac-Barring10-r9 INTEGER (0..7), + ac-Barring11-r9 INTEGER (0..7), + ac-Barring12-r9 INTEGER (0..7), + ac-Barring13-r9 INTEGER (0..7), + ac-Barring14-r9 INTEGER (0..7), + ac-Barring15-r9 INTEGER (0..7), + ac-BarringMsg-r9 INTEGER (0..7), + ac-BarringReg-r9 INTEGER (0..7), + ac-BarringEmg-r9 INTEGER (0..7) +} + + +SystemInformationBlockType9 ::= SEQUENCE { + hnb-Name OCTET STRING (SIZE(1..48)) OPTIONAL, -- Need OR + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL -- Need OP +} + + +SystemInformationBlockType10 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningType OCTET STRING (SIZE (2)), + dummy OCTET STRING (SIZE (50)) OPTIONAL, -- Need OP + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL -- Need OP +} + + +SystemInformationBlockType11 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningMessageSegmentType ENUMERATED {notLastSegment, lastSegment}, + warningMessageSegmentNumber INTEGER (0..63), + warningMessageSegment OCTET STRING, + dataCodingScheme OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + ..., + lateNonCriticalExtension OCTET STRING OPTIONAL -- Need OP +} + + +SystemInformationBlockType12-r9 ::= SEQUENCE { + messageIdentifier-r9 BIT STRING (SIZE (16)), + serialNumber-r9 BIT STRING (SIZE (16)), + warningMessageSegmentType-r9 ENUMERATED {notLastSegment, lastSegment}, + warningMessageSegmentNumber-r9 INTEGER (0..63), + warningMessageSegment-r9 OCTET STRING, + dataCodingScheme-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + ... +} + + +SystemInformationBlockType13-r9 ::= SEQUENCE { + mbsfn-AreaInfoList-r9 MBSFN-AreaInfoList-r9, + notificationConfig-r9 MBMS-NotificationConfig-r9, + lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP + ... +} + + +AntennaInfoCommon ::= SEQUENCE { + antennaPortsCount ENUMERATED {an1, an2, an4, spare1} +} + +AntennaInfoDedicated ::= SEQUENCE { + transmissionMode ENUMERATED { + tm1, tm2, tm3, tm4, tm5, tm6, + tm7, tm8-v920}, + codebookSubsetRestriction CHOICE { + n2TxAntenna-tm3 BIT STRING (SIZE (2)), + n4TxAntenna-tm3 BIT STRING (SIZE (4)), + n2TxAntenna-tm4 BIT STRING (SIZE (6)), + n4TxAntenna-tm4 BIT STRING (SIZE (64)), + n2TxAntenna-tm5 BIT STRING (SIZE (4)), + n4TxAntenna-tm5 BIT STRING (SIZE (16)), + n2TxAntenna-tm6 BIT STRING (SIZE (4)), + n4TxAntenna-tm6 BIT STRING (SIZE (16)) + } OPTIONAL, -- Cond TM + ue-TransmitAntennaSelection CHOICE{ + release NULL, + setup ENUMERATED {closedLoop, openLoop} + } +} + +AntennaInfoDedicated-v920 ::= SEQUENCE { + codebookSubsetRestriction-v920 CHOICE { + n2TxAntenna-tm8-r9 BIT STRING (SIZE (6)), + n4TxAntenna-tm8-r9 BIT STRING (SIZE (32)) + } OPTIONAL -- Cond TM8 +} + + +CQI-ReportConfig ::= SEQUENCE { + cqi-ReportModeAperiodic ENUMERATED { + rm12, rm20, rm22, rm30, rm31, + spare3, spare2, spare1} OPTIONAL, -- Need OR + nomPDSCH-RS-EPRE-Offset INTEGER (-1..6), + cqi-ReportPeriodic CQI-ReportPeriodic OPTIONAL -- Need ON +} + +CQI-ReportConfig-v920 ::= SEQUENCE { + cqi-Mask-r9 ENUMERATED {setup} OPTIONAL, -- Cond cqi-Setup + pmi-RI-Report-r9 ENUMERATED {setup} OPTIONAL -- Cond PMIRI +} + +CQI-ReportPeriodic ::= CHOICE { + release NULL, + setup SEQUENCE { + cqi-PUCCH-ResourceIndex INTEGER (0.. 1185), + cqi-pmi-ConfigIndex INTEGER (0..1023), + cqi-FormatIndicatorPeriodic CHOICE { + widebandCQI NULL, + subbandCQI SEQUENCE { + k INTEGER (1..4) + } + }, + ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR + simultaneousAckNackAndCQI BOOLEAN + } +} + + +DRB-Identity ::= INTEGER (1..32) + + +LogicalChannelConfig ::= SEQUENCE { + ul-SpecificParameters SEQUENCE { + priority INTEGER (1..16), + prioritisedBitRate ENUMERATED { + kBps0, kBps8, kBps16, kBps32, kBps64, kBps128, + kBps256, infinity, spare8, spare7, spare6, + spare5, spare4, spare3, spare2, spare1}, + bucketSizeDuration ENUMERATED { + ms50, ms100, ms150, ms300, ms500, ms1000, spare2, + spare1}, + logicalChannelGroup INTEGER (0..3) OPTIONAL -- Need OR + } OPTIONAL, -- Cond UL + ..., + [[ logicalChannelSR-Mask-r9 ENUMERATED {setup} OPTIONAL -- Cond SRmask + ]] +} + + +MAC-MainConfig ::= SEQUENCE { + ul-SCH-Config SEQUENCE { + maxHARQ-Tx ENUMERATED { + n1, n2, n3, n4, n5, n6, n7, n8, + n10, n12, n16, n20, n24, n28, + spare2, spare1} OPTIONAL, -- Need ON + periodicBSR-Timer ENUMERATED { + sf5, sf10, sf16, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, sf1280, sf2560, + infinity, spare1} OPTIONAL, -- Need ON + retxBSR-Timer ENUMERATED { + sf320, sf640, sf1280, sf2560, sf5120, + sf10240, spare2, spare1}, + ttiBundling BOOLEAN + } OPTIONAL, -- Need ON + drx-Config DRX-Config OPTIONAL, -- Need ON + timeAlignmentTimerDedicated TimeAlignmentTimer, + phr-Config CHOICE { + release NULL, + setup SEQUENCE { + periodicPHR-Timer ENUMERATED {sf10, sf20, sf50, sf100, sf200, + sf500, sf1000, infinity}, + prohibitPHR-Timer ENUMERATED {sf0, sf10, sf20, sf50, sf100, + sf200, sf500, sf1000}, + dl-PathlossChange ENUMERATED {dB1, dB3, dB6, infinity} + } + } OPTIONAL, -- Need ON + ..., + [[ sr-ProhibitTimer-r9 INTEGER (0..7) OPTIONAL -- Need ON + ]] +} + +DRX-Config ::= CHOICE { + release NULL, + setup SEQUENCE { + onDurationTimer ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200}, + drx-InactivityTimer ENUMERATED { + psf1, psf2, psf3, psf4, psf5, psf6, + psf8, psf10, psf20, psf30, psf40, + psf50, psf60, psf80, psf100, + psf200, psf300, psf500, psf750, + psf1280, psf1920, psf2560, spare10, + spare9, spare8, spare7, spare6, + spare5, spare4, spare3, spare2, + spare1}, + drx-RetransmissionTimer ENUMERATED { + psf1, psf2, psf4, psf6, psf8, psf16, + psf24, psf33}, + longDRX-CycleStartOffset CHOICE { + sf10 INTEGER(0..9), + sf20 INTEGER(0..19), + sf32 INTEGER(0..31), + sf40 INTEGER(0..39), + sf64 INTEGER(0..63), + sf80 INTEGER(0..79), + sf128 INTEGER(0..127), + sf160 INTEGER(0..159), + sf256 INTEGER(0..255), + sf320 INTEGER(0..319), + sf512 INTEGER(0..511), + sf640 INTEGER(0..639), + sf1024 INTEGER(0..1023), + sf1280 INTEGER(0..1279), + sf2048 INTEGER(0..2047), + sf2560 INTEGER(0..2559) + }, + shortDRX SEQUENCE { + shortDRX-Cycle ENUMERATED { + sf2, sf5, sf8, sf10, sf16, sf20, + sf32, sf40, sf64, sf80, sf128, sf160, + sf256, sf320, sf512, sf640}, + drxShortCycleTimer INTEGER (1..16) + } OPTIONAL -- Need OR + } +} + + +PDCP-Config ::= SEQUENCE { + discardTimer ENUMERATED { + ms50, ms100, ms150, ms300, ms500, + ms750, ms1500, infinity + } OPTIONAL, -- Cond Setup + rlc-AM SEQUENCE { + statusReportRequired BOOLEAN + } OPTIONAL, -- Cond Rlc-AM + rlc-UM SEQUENCE { + pdcp-SN-Size ENUMERATED {len7bits, len12bits} + } OPTIONAL, -- Cond Rlc-UM + headerCompression CHOICE { + notUsed NULL, + rohc SEQUENCE { + maxCID INTEGER (1..16383) DEFAULT 15, + profiles SEQUENCE { + profile0x0001 BOOLEAN, + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0101 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + ... + } + }, + ... +} + + +PDSCH-ConfigCommon ::= SEQUENCE { + referenceSignalPower INTEGER (-60..50), + p-b INTEGER (0..3) +} + +PDSCH-ConfigDedicated::= SEQUENCE { + p-a ENUMERATED { + dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} +} + + +PHICH-Config ::= SEQUENCE { + phich-Duration ENUMERATED {normal, extended}, + phich-Resource ENUMERATED {oneSixth, half, one, two} +} + + +PhysicalConfigDedicated ::= SEQUENCE { + pdsch-ConfigDedicated PDSCH-ConfigDedicated OPTIONAL, -- Need ON + pucch-ConfigDedicated PUCCH-ConfigDedicated OPTIONAL, -- Need ON + pusch-ConfigDedicated PUSCH-ConfigDedicated OPTIONAL, -- Need ON + uplinkPowerControlDedicated UplinkPowerControlDedicated OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUCCH TPC-PDCCH-Config OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUSCH TPC-PDCCH-Config OPTIONAL, -- Need ON + cqi-ReportConfig CQI-ReportConfig OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON + antennaInfo CHOICE { + explicitValue AntennaInfoDedicated, + defaultValue NULL + } OPTIONAL, -- Need ON + schedulingRequestConfig SchedulingRequestConfig OPTIONAL, -- Need ON + ..., + [[ cqi-ReportConfig-v920 CQI-ReportConfig-v920 OPTIONAL, -- Need ON + antennaInfo-v920 AntennaInfoDedicated-v920 OPTIONAL -- Need ON + ]] +} + + +P-Max ::= INTEGER (-30..33) + + +PRACH-ConfigSIB ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + prach-ConfigInfo PRACH-ConfigInfo +} + +PRACH-Config ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + prach-ConfigInfo PRACH-ConfigInfo OPTIONAL -- Need ON +} + +PRACH-ConfigInfo ::= SEQUENCE { + prach-ConfigIndex INTEGER (0..63), + highSpeedFlag BOOLEAN, + zeroCorrelationZoneConfig INTEGER (0..15), + prach-FreqOffset INTEGER (0..94) +} + + +PresenceAntennaPort1 ::= BOOLEAN + + +PUCCH-ConfigCommon ::= SEQUENCE { + deltaPUCCH-Shift ENUMERATED {ds1, ds2, ds3}, + nRB-CQI INTEGER (0..98), + nCS-AN INTEGER (0..7), + n1PUCCH-AN INTEGER (0..2047) +} + +PUCCH-ConfigDedicated ::= SEQUENCE { + ackNackRepetition CHOICE{ + release NULL, + setup SEQUENCE { + repetitionFactor ENUMERATED {n2, n4, n6, spare1}, + n1PUCCH-AN-Rep INTEGER (0..2047) + } + }, + tdd-AckNackFeedbackMode ENUMERATED {bundling, multiplexing} OPTIONAL -- Cond TDD +} + + +PUSCH-ConfigCommon ::= SEQUENCE { + pusch-ConfigBasic SEQUENCE { + n-SB INTEGER (1..4), + hoppingMode ENUMERATED {interSubFrame, intraAndInterSubFrame}, + pusch-HoppingOffset INTEGER (0..98), + enable64QAM BOOLEAN + }, + ul-ReferenceSignalsPUSCH UL-ReferenceSignalsPUSCH +} + +PUSCH-ConfigDedicated ::= SEQUENCE { + betaOffset-ACK-Index INTEGER (0..15), + betaOffset-RI-Index INTEGER (0..15), + betaOffset-CQI-Index INTEGER (0..15) +} + +UL-ReferenceSignalsPUSCH ::= SEQUENCE { + groupHoppingEnabled BOOLEAN, + groupAssignmentPUSCH INTEGER (0..29), + sequenceHoppingEnabled BOOLEAN, + cyclicShift INTEGER (0..7) +} + + +RACH-ConfigCommon ::= SEQUENCE { + preambleInfo SEQUENCE { + numberOfRA-Preambles ENUMERATED { + n4, n8, n12, n16 ,n20, n24, n28, + n32, n36, n40, n44, n48, n52, n56, + n60, n64}, + preamblesGroupAConfig SEQUENCE { + sizeOfRA-PreamblesGroupA ENUMERATED { + n4, n8, n12, n16 ,n20, n24, n28, + n32, n36, n40, n44, n48, n52, n56, + n60}, + messageSizeGroupA ENUMERATED {b56, b144, b208, b256}, + messagePowerOffsetGroupB ENUMERATED { + minusinfinity, dB0, dB5, dB8, dB10, dB12, + dB15, dB18}, + ... + } OPTIONAL -- Need OP + }, + powerRampingParameters SEQUENCE { + powerRampingStep ENUMERATED {dB0, dB2,dB4, dB6}, + preambleInitialReceivedTargetPower ENUMERATED { + dBm-120, dBm-118, dBm-116, dBm-114, dBm-112, + dBm-110, dBm-108, dBm-106, dBm-104, dBm-102, + dBm-100, dBm-98, dBm-96, dBm-94, + dBm-92, dBm-90} + }, + ra-SupervisionInfo SEQUENCE { + preambleTransMax ENUMERATED { + n3, n4, n5, n6, n7, n8, n10, n20, n50, + n100, n200}, + ra-ResponseWindowSize ENUMERATED { + sf2, sf3, sf4, sf5, sf6, sf7, + sf8, sf10}, + mac-ContentionResolutionTimer ENUMERATED { + sf8, sf16, sf24, sf32, sf40, sf48, + sf56, sf64} + }, + maxHARQ-Msg3Tx INTEGER (1..8), + ... +} + + +RACH-ConfigDedicated ::= SEQUENCE { + ra-PreambleIndex INTEGER (0..63), + ra-PRACH-MaskIndex INTEGER (0..15) +} + + +RadioResourceConfigCommonSIB ::= SEQUENCE { + rach-ConfigCommon RACH-ConfigCommon, + bcch-Config BCCH-Config, + pcch-Config PCCH-Config, + prach-Config PRACH-ConfigSIB, + pdsch-ConfigCommon PDSCH-ConfigCommon, + pusch-ConfigCommon PUSCH-ConfigCommon, + pucch-ConfigCommon PUCCH-ConfigCommon, + soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon, + uplinkPowerControlCommon UplinkPowerControlCommon, + ul-CyclicPrefixLength UL-CyclicPrefixLength, + ... +} + +RadioResourceConfigCommon ::= SEQUENCE { + rach-ConfigCommon RACH-ConfigCommon OPTIONAL, -- Need ON + prach-Config PRACH-Config, + pdsch-ConfigCommon PDSCH-ConfigCommon OPTIONAL, -- Need ON + pusch-ConfigCommon PUSCH-ConfigCommon, + phich-Config PHICH-Config OPTIONAL, -- Need ON + pucch-ConfigCommon PUCCH-ConfigCommon OPTIONAL, -- Need ON + soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon OPTIONAL, -- Need ON + uplinkPowerControlCommon UplinkPowerControlCommon OPTIONAL, -- Need ON + antennaInfoCommon AntennaInfoCommon OPTIONAL, -- Need ON + p-Max P-Max OPTIONAL, -- Need OP + tdd-Config TDD-Config OPTIONAL, -- Cond TDD + ul-CyclicPrefixLength UL-CyclicPrefixLength, + ... +} + +BCCH-Config ::= SEQUENCE { + modificationPeriodCoeff ENUMERATED {n2, n4, n8, n16} +} + +PCCH-Config ::= SEQUENCE { + defaultPagingCycle ENUMERATED { + rf32, rf64, rf128, rf256}, + nB ENUMERATED { + fourT, twoT, oneT, halfT, quarterT, oneEighthT, + oneSixteenthT, oneThirtySecondT} +} + +UL-CyclicPrefixLength ::= ENUMERATED {len1, len2} + + +RadioResourceConfigDedicated ::= SEQUENCE { + srb-ToAddModList SRB-ToAddModList OPTIONAL, -- Cond HO-Conn + drb-ToAddModList DRB-ToAddModList OPTIONAL, -- Cond HO-toEUTRA + drb-ToReleaseList DRB-ToReleaseList OPTIONAL, -- Need ON + mac-MainConfig CHOICE { + explicitValue MAC-MainConfig, + defaultValue NULL + } OPTIONAL, -- Cond HO-toEUTRA2 + sps-Config SPS-Config OPTIONAL, -- Need ON + physicalConfigDedicated PhysicalConfigDedicated OPTIONAL, -- Need ON + ..., + [[ rlf-TimersAndConstants-r9 RLF-TimersAndConstants-r9 OPTIONAL -- Need ON + ]] +} + +SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod + +SRB-ToAddMod ::= SEQUENCE { + srb-Identity INTEGER (1..2), + rlc-Config CHOICE { + explicitValue RLC-Config, + defaultValue NULL + } OPTIONAL, -- Cond Setup + logicalChannelConfig CHOICE { + explicitValue LogicalChannelConfig, + defaultValue NULL + } OPTIONAL, -- Cond Setup + ... +} + +DRB-ToAddModList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod + +DRB-ToAddMod ::= SEQUENCE { + eps-BearerIdentity INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity DRB-Identity, + pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP + rlc-Config RLC-Config OPTIONAL, -- Cond Setup + logicalChannelIdentity INTEGER (3..10) OPTIONAL, -- Cond DRB-Setup + logicalChannelConfig LogicalChannelConfig OPTIONAL, -- Cond Setup + ... +} + +DRB-ToReleaseList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity + + +RLC-Config ::= CHOICE { + am SEQUENCE { + ul-AM-RLC UL-AM-RLC, + dl-AM-RLC DL-AM-RLC + }, + um-Bi-Directional SEQUENCE { + ul-UM-RLC UL-UM-RLC, + dl-UM-RLC DL-UM-RLC + }, + um-Uni-Directional-UL SEQUENCE { + ul-UM-RLC UL-UM-RLC + }, + um-Uni-Directional-DL SEQUENCE { + dl-UM-RLC DL-UM-RLC + }, + ... +} + +UL-AM-RLC ::= SEQUENCE { + t-PollRetransmit T-PollRetransmit, + pollPDU PollPDU, + pollByte PollByte, + maxRetxThreshold ENUMERATED { + t1, t2, t3, t4, t6, t8, t16, t32} +} + +DL-AM-RLC ::= SEQUENCE { + t-Reordering T-Reordering, + t-StatusProhibit T-StatusProhibit +} + +UL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength +} + +DL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength, + t-Reordering T-Reordering +} + +SN-FieldLength ::= ENUMERATED {size5, size10} + +T-PollRetransmit ::= ENUMERATED { + ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, spare9, spare8, + spare7, spare6, spare5, spare4, spare3, + spare2, spare1} + +PollPDU ::= ENUMERATED { + p4, p8, p16, p32, p64, p128, p256, pInfinity} + +PollByte ::= ENUMERATED { + kB25, kB50, kB75, kB100, kB125, kB250, kB375, + kB500, kB750, kB1000, kB1250, kB1500, kB2000, + kB3000, kBinfinity, spare1} + +T-Reordering ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms110, + ms120, ms130, ms140, ms150, ms160, ms170, + ms180, ms190, ms200, spare1} + +T-StatusProhibit ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, spare8, spare7, + spare6, spare5, spare4, spare3, spare2, + spare1} + + +RLF-TimersAndConstants-r9 ::= CHOICE { + release NULL, + setup SEQUENCE { + t301-r9 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t310-r9 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n310-r9 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311-r9 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311-r9 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ... + } +} + + +SchedulingRequestConfig ::= CHOICE { + release NULL, + setup SEQUENCE { + sr-PUCCH-ResourceIndex INTEGER (0..2047), + sr-ConfigIndex INTEGER (0..157), + dsr-TransMax ENUMERATED { + n4, n8, n16, n32, n64, spare3, spare2, spare1} + } +} + + +SoundingRS-UL-ConfigCommon ::= CHOICE { + release NULL, + setup SEQUENCE { + srs-BandwidthConfig ENUMERATED {bw0, bw1, bw2, bw3, bw4, bw5, bw6, bw7}, + srs-SubframeConfig ENUMERATED { + sc0, sc1, sc2, sc3, sc4, sc5, sc6, sc7, + sc8, sc9, sc10, sc11, sc12, sc13, sc14, sc15}, + ackNackSRS-SimultaneousTransmission BOOLEAN, + srs-MaxUpPts ENUMERATED {true} OPTIONAL -- Cond TDD + } +} + +SoundingRS-UL-ConfigDedicated ::= CHOICE{ + release NULL, + setup SEQUENCE { + srs-Bandwidth ENUMERATED {bw0, bw1, bw2, bw3}, + srs-HoppingBandwidth ENUMERATED {hbw0, hbw1, hbw2, hbw3}, + freqDomainPosition INTEGER (0..23), + duration BOOLEAN, + srs-ConfigIndex INTEGER (0..1023), + transmissionComb INTEGER (0..1), + cyclicShift ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7} + } +} + + + +SPS-Config ::= SEQUENCE { + semiPersistSchedC-RNTI C-RNTI OPTIONAL, -- Need OR + sps-ConfigDL SPS-ConfigDL OPTIONAL, -- Need ON + sps-ConfigUL SPS-ConfigUL OPTIONAL -- Need ON +} + +SPS-ConfigDL ::= CHOICE{ + release NULL, + setup SEQUENCE { + semiPersistSchedIntervalDL ENUMERATED { + sf10, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, spare6, + spare5, spare4, spare3, spare2, + spare1}, + numberOfConfSPS-Processes INTEGER (1..8), + n1-PUCCH-AN-PersistentList N1-PUCCH-AN-PersistentList, + ... + } +} + +SPS-ConfigUL ::= CHOICE { + release NULL, + setup SEQUENCE { + semiPersistSchedIntervalUL ENUMERATED { + sf10, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, spare6, + spare5, spare4, spare3, spare2, + spare1}, + implicitReleaseAfter ENUMERATED {e2, e3, e4, e8}, + p0-Persistent SEQUENCE { + p0-NominalPUSCH-Persistent INTEGER (-126..24), + p0-UE-PUSCH-Persistent INTEGER (-8..7) + } OPTIONAL, -- Need OP + twoIntervalsConfig ENUMERATED {true} OPTIONAL, -- Cond TDD + ... + } +} + +N1-PUCCH-AN-PersistentList ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + + +TDD-Config ::= SEQUENCE { + subframeAssignment ENUMERATED { + sa0, sa1, sa2, sa3, sa4, sa5, sa6}, + specialSubframePatterns ENUMERATED { + ssp0, ssp1, ssp2, ssp3, ssp4,ssp5, ssp6, ssp7, + ssp8} +} + + +TimeAlignmentTimer ::= ENUMERATED { + sf500, sf750, sf1280, sf1920, sf2560, sf5120, + sf10240, infinity} + +TPC-PDCCH-Config ::= CHOICE { + release NULL, + setup SEQUENCE { + tpc-RNTI BIT STRING (SIZE (16)), + tpc-Index TPC-Index + } +} + +TPC-Index ::= CHOICE { + indexOfFormat3 INTEGER (1..15), + indexOfFormat3A INTEGER (1..31) +} + + +UplinkPowerControlCommon ::= SEQUENCE { + p0-NominalPUSCH INTEGER (-126..24), + alpha ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1}, + p0-NominalPUCCH INTEGER (-127..-96), + deltaFList-PUCCH DeltaFList-PUCCH, + deltaPreambleMsg3 INTEGER (-1..6) +} + +UplinkPowerControlDedicated ::= SEQUENCE { + p0-UE-PUSCH INTEGER (-8..7), + deltaMCS-Enabled ENUMERATED {en0, en1}, + accumulationEnabled BOOLEAN, + p0-UE-PUCCH INTEGER (-8..7), + pSRS-Offset INTEGER (0..15), + filterCoefficient FilterCoefficient DEFAULT fc4 +} + +DeltaFList-PUCCH ::= SEQUENCE { + deltaF-PUCCH-Format1 ENUMERATED {deltaF-2, deltaF0, deltaF2}, + deltaF-PUCCH-Format1b ENUMERATED {deltaF1, deltaF3, deltaF5}, + deltaF-PUCCH-Format2 ENUMERATED {deltaF-2, deltaF0, deltaF1, deltaF2}, + deltaF-PUCCH-Format2a ENUMERATED {deltaF-2, deltaF0, deltaF2}, + deltaF-PUCCH-Format2b ENUMERATED {deltaF-2, deltaF0, deltaF2} +} + + +NextHopChainingCount ::= INTEGER (0..7) + + +SecurityAlgorithmConfig ::= SEQUENCE { + cipheringAlgorithm ENUMERATED { + eea0, eea1, eea2, spare5, spare4, spare3, + spare2, spare1, ...}, + integrityProtAlgorithm ENUMERATED { + eia0-v920, eia1, eia2, spare5, spare4, spare3, + spare2, spare1, ...} +} + + +ShortMAC-I ::= BIT STRING (SIZE (16)) + + +AdditionalSpectrumEmission ::= INTEGER (1..32) + + +ARFCN-ValueCDMA2000 ::= INTEGER (0..2047) + + +ARFCN-ValueEUTRA ::= INTEGER (0..maxEARFCN) + +ARFCN-ValueEUTRA-v9e0 ::= INTEGER (maxEARFCN-Plus1..maxEARFCN2) + +ARFCN-ValueEUTRA-r9 ::= INTEGER (0..maxEARFCN2) + + +ARFCN-ValueGERAN ::= INTEGER (0..1023) + + +ARFCN-ValueUTRA ::= INTEGER (0..16383) + + +BandclassCDMA2000 ::= ENUMERATED { + bc0, bc1, bc2, bc3, bc4, bc5, bc6, bc7, bc8, + bc9, bc10, bc11, bc12, bc13, bc14, bc15, bc16, + bc17, bc18-v9a0, bc19-v9a0, bc20-v9a0, bc21-v9a0, + spare10, spare9, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1, ...} + + +BandIndicatorGERAN ::= ENUMERATED {dcs1800, pcs1900} + + +CarrierFreqCDMA2000 ::= SEQUENCE { + bandClass BandclassCDMA2000, + arfcn ARFCN-ValueCDMA2000 +} + + +CarrierFreqGERAN ::= SEQUENCE { + arfcn ARFCN-ValueGERAN, + bandIndicator BandIndicatorGERAN +} + + +CarrierFreqsGERAN ::= SEQUENCE { + startingARFCN ARFCN-ValueGERAN, + bandIndicator BandIndicatorGERAN, + followingARFCNs CHOICE { + explicitListOfARFCNs ExplicitListOfARFCNs, + equallySpacedARFCNs SEQUENCE { + arfcn-Spacing INTEGER (1..8), + numberOfFollowingARFCNs INTEGER (0..31) + }, + variableBitMapOfARFCNs OCTET STRING (SIZE (1..16)) + } +} + +ExplicitListOfARFCNs ::= SEQUENCE (SIZE (0..31)) OF ARFCN-ValueGERAN + + +CDMA2000-Type ::= ENUMERATED {type1XRTT, typeHRPD} + + +CellIdentity ::= BIT STRING (SIZE (28)) + + +CellIndexList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellIndex + +CellIndex ::= INTEGER (1..maxCellMeas) + + +CellReselectionPriority ::= INTEGER (0..7) + + +CSFB-RegistrationParam1XRTT ::= SEQUENCE { + sid BIT STRING (SIZE (15)), + nid BIT STRING (SIZE (16)), + multipleSID BOOLEAN, + multipleNID BOOLEAN, + homeReg BOOLEAN, + foreignSIDReg BOOLEAN, + foreignNIDReg BOOLEAN, + parameterReg BOOLEAN, + powerUpReg BOOLEAN, + registrationPeriod BIT STRING (SIZE (7)), + registrationZone BIT STRING (SIZE (12)), + totalZone BIT STRING (SIZE (3)), + zoneTimer BIT STRING (SIZE (3)) +} + +CSFB-RegistrationParam1XRTT-v920 ::= SEQUENCE { + powerDownReg-r9 ENUMERATED {true} +} + + +CellGlobalIdEUTRA ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellIdentity CellIdentity +} + + +CellGlobalIdUTRA ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellIdentity BIT STRING (SIZE (28)) +} + + +CellGlobalIdGERAN ::= SEQUENCE { + plmn-Identity PLMN-Identity, + locationAreaCode BIT STRING (SIZE (16)), + cellIdentity BIT STRING (SIZE (16)) +} + + +CellGlobalIdCDMA2000 ::= CHOICE { + cellGlobalId1XRTT BIT STRING (SIZE (47)), + cellGlobalIdHRPD BIT STRING (SIZE (128)) +} + + +CSG-Identity ::= BIT STRING (SIZE (27)) + + +FreqBandIndicator ::= INTEGER (1..maxFBI) + +FreqBandIndicator-v9e0 ::= INTEGER (maxFBI-Plus1..maxFBI2) + + +MobilityControlInfo ::= SEQUENCE { + targetPhysCellId PhysCellId, + carrierFreq CarrierFreqEUTRA OPTIONAL, -- Cond HO-toEUTRA2 + carrierBandwidth CarrierBandwidthEUTRA OPTIONAL, -- Cond HO-toEUTRA + additionalSpectrumEmission AdditionalSpectrumEmission OPTIONAL, -- Cond HO-toEUTRA + t304 ENUMERATED { + ms50, ms100, ms150, ms200, ms500, ms1000, + ms2000, spare1}, + newUE-Identity C-RNTI, + radioResourceConfigCommon RadioResourceConfigCommon, + rach-ConfigDedicated RACH-ConfigDedicated OPTIONAL, -- Need OP + ..., + [[ carrierFreq-v9e0 CarrierFreqEUTRA-v9e0 OPTIONAL -- Need ON + ]] +} + +CarrierBandwidthEUTRA ::= SEQUENCE { + dl-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100, spare10, + spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1}, + ul-Bandwidth ENUMERATED { + n6, n15, n25, n50, n75, n100, spare10, + spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1} OPTIONAL -- Need OP +} + +CarrierFreqEUTRA ::= SEQUENCE { + dl-CarrierFreq ARFCN-ValueEUTRA, + ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL -- Cond FDD +} + +CarrierFreqEUTRA-v9e0 ::= SEQUENCE { + dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9, + ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9 OPTIONAL -- Cond FDD +} + + +MobilityParametersCDMA2000 ::= OCTET STRING + + +MobilityStateParameters ::= SEQUENCE { + t-Evaluation ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + t-HystNormal ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + n-CellChangeMedium INTEGER (1..16), + n-CellChangeHigh INTEGER (1..16) +} + + +MultiBandInfoList ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator + +MultiBandInfoList-v9e0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF MultiBandInfo-v9e0 + +MultiBandInfo-v9e0 ::= SEQUENCE { + freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL -- Need OP +} + + +PhysCellId ::= INTEGER (0..503) + + +PhysCellIdRange ::= SEQUENCE { + start PhysCellId, + range ENUMERATED { + n4, n8, n12, n16, n24, n32, n48, n64, n84, + n96, n128, n168, n252, n504, spare2, + spare1} OPTIONAL -- Need OP +} + + +PhysCellIdRangeUTRA-FDDList-r9::= SEQUENCE (SIZE (1.. maxPhysCellIdRange-r9)) OF PhysCellIdRangeUTRA-FDD-r9 + +PhysCellIdRangeUTRA-FDD-r9 ::= SEQUENCE { + start-r9 PhysCellIdUTRA-FDD, + range-r9 INTEGER (2..512) OPTIONAL -- Need OP +} + + +PhysCellIdCDMA2000 ::= INTEGER (0..maxPNOffset) + + +PhysCellIdGERAN ::= SEQUENCE { + networkColourCode BIT STRING (SIZE (3)), + baseStationColourCode BIT STRING (SIZE (3)) +} + + +PhysCellIdUTRA-FDD ::= INTEGER (0..511) + + +PhysCellIdUTRA-TDD ::= INTEGER (0..127) + + +PLMN-Identity ::= SEQUENCE { + mcc MCC OPTIONAL, -- Cond MCC + mnc MNC +} + +MCC ::= SEQUENCE (SIZE (3)) OF + MCC-MNC-Digit + +MNC ::= SEQUENCE (SIZE (2..3)) OF + MCC-MNC-Digit + +MCC-MNC-Digit ::= INTEGER (0..9) + + + +PreRegistrationInfoHRPD ::= SEQUENCE { + preRegistrationAllowed BOOLEAN, + preRegistrationZoneId PreRegistrationZoneIdHRPD OPTIONAL, -- cond PreRegAllowed + secondaryPreRegistrationZoneIdList SecondaryPreRegistrationZoneIdListHRPD OPTIONAL -- Need OR +} + +SecondaryPreRegistrationZoneIdListHRPD ::= SEQUENCE (SIZE (1..2)) OF PreRegistrationZoneIdHRPD + +PreRegistrationZoneIdHRPD ::= INTEGER (0..255) + + +Q-QualMin-r9 ::= INTEGER (-34..-3) + + +Q-RxLevMin ::= INTEGER (-70..-22) + + +Q-OffsetRange ::= ENUMERATED { + dB-24, dB-22, dB-20, dB-18, dB-16, dB-14, + dB-12, dB-10, dB-8, dB-6, dB-5, dB-4, dB-3, + dB-2, dB-1, dB0, dB1, dB2, dB3, dB4, dB5, + dB6, dB8, dB10, dB12, dB14, dB16, dB18, + dB20, dB22, dB24} + + +Q-OffsetRangeInterRAT ::= INTEGER (-15..15) + + +ReselectionThreshold ::= INTEGER (0..31) + + +ReselectionThresholdQ-r9 ::= INTEGER (0..31) + + +SpeedStateScaleFactors ::= SEQUENCE { + sf-Medium ENUMERATED {oDot25, oDot5, oDot75, lDot0}, + sf-High ENUMERATED {oDot25, oDot5, oDot75, lDot0} +} + +SystemInfoListGERAN ::= SEQUENCE (SIZE (1..maxGERAN-SI)) OF + OCTET STRING (SIZE (1..23)) + + +SystemTimeInfoCDMA2000 ::= SEQUENCE { + cdma-EUTRA-Synchronisation BOOLEAN, + cdma-SystemTime CHOICE { + synchronousSystemTime BIT STRING (SIZE (39)), + asynchronousSystemTime BIT STRING (SIZE (49)) + } +} + + +TrackingAreaCode ::= BIT STRING (SIZE (16)) + + +T-Reselection ::= INTEGER (0..7) + + +AllowedMeasBandwidth ::= ENUMERATED {mbw6, mbw15, mbw25, mbw50, mbw75, mbw100} + + +Hysteresis ::= INTEGER (0..30) + + +MeasConfig ::= SEQUENCE { + -- Measurement objects + measObjectToRemoveList MeasObjectToRemoveList OPTIONAL, -- Need ON + measObjectToAddModList MeasObjectToAddModList OPTIONAL, -- Need ON + -- Reporting configurations + reportConfigToRemoveList ReportConfigToRemoveList OPTIONAL, -- Need ON + reportConfigToAddModList ReportConfigToAddModList OPTIONAL, -- Need ON + -- Measurement identities + measIdToRemoveList MeasIdToRemoveList OPTIONAL, -- Need ON + measIdToAddModList MeasIdToAddModList OPTIONAL, -- Need ON + -- Other parameters + quantityConfig QuantityConfig OPTIONAL, -- Need ON + measGapConfig MeasGapConfig OPTIONAL, -- Need ON + s-Measure RSRP-Range OPTIONAL, -- Need ON + preRegistrationInfoHRPD PreRegistrationInfoHRPD OPTIONAL, -- Need OP + speedStatePars CHOICE { + release NULL, + setup SEQUENCE { + mobilityStateParameters MobilityStateParameters, + timeToTrigger-SF SpeedStateScaleFactors + } + } OPTIONAL, -- Need ON + ..., + [[ measObjectToAddModList-v9e0 MeasObjectToAddModList-v9e0 OPTIONAL -- Need ON + ]] +} + +MeasIdToRemoveList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId + +MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId + +ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigId + + +MeasGapConfig ::= CHOICE { + release NULL, + setup SEQUENCE { + gapOffset CHOICE { + gp0 INTEGER (0..39), + gp1 INTEGER (0..79), + ... + } + } +} + + +MeasId ::= INTEGER (1..maxMeasId) + + +MeasIdToAddModList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod + +MeasIdToAddMod ::= SEQUENCE { + measId MeasId, + measObjectId MeasObjectId, + reportConfigId ReportConfigId +} + + +MeasObjectCDMA2000 ::= SEQUENCE { + cdma2000-Type CDMA2000-Type, + carrierFreq CarrierFreqCDMA2000, + searchWindowSize INTEGER (0..15) OPTIONAL, -- Need ON + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CellsToAddModListCDMA2000 OPTIONAL, -- Need ON + cellForWhichToReportCGI PhysCellIdCDMA2000 OPTIONAL, -- Need ON + ... +} + +CellsToAddModListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModCDMA2000 + +CellsToAddModCDMA2000 ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdCDMA2000 +} + + +MeasObjectEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + allowedMeasBandwidth AllowedMeasBandwidth, + presenceAntennaPort1 PresenceAntennaPort1, + neighCellConfig NeighCellConfig, + offsetFreq Q-OffsetRange DEFAULT dB0, + -- Cell list + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CellsToAddModList OPTIONAL, -- Need ON + -- Black list + blackCellsToRemoveList CellIndexList OPTIONAL, -- Need ON + blackCellsToAddModList BlackCellsToAddModList OPTIONAL, -- Need ON + cellForWhichToReportCGI PhysCellId OPTIONAL, -- Need ON + ... +} + +MeasObjectEUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 +} + +CellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddMod + +CellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellId, + cellIndividualOffset Q-OffsetRange +} + +BlackCellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF BlackCellsToAddMod + +BlackCellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellIdRange PhysCellIdRange +} + + +MeasObjectGERAN ::= SEQUENCE { + carrierFreqs CarrierFreqsGERAN, + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + ncc-Permitted BIT STRING(SIZE (8)) DEFAULT '11111111'B, + cellForWhichToReportCGI PhysCellIdGERAN OPTIONAL, -- Need ON + ... +} + + +MeasObjectId ::= INTEGER (1..maxObjectId) + + +MeasObjectToAddModList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod + +MeasObjectToAddModList-v9e0 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod-v9e0 + +MeasObjectToAddMod ::= SEQUENCE { + measObjectId MeasObjectId, + measObject CHOICE { + measObjectEUTRA MeasObjectEUTRA, + measObjectUTRA MeasObjectUTRA, + measObjectGERAN MeasObjectGERAN, + measObjectCDMA2000 MeasObjectCDMA2000, + ... + } +} + +MeasObjectToAddMod-v9e0 ::= SEQUENCE { + measObjectEUTRA-v9e0 MeasObjectEUTRA-v9e0 OPTIONAL -- Cond eutra +} + + +MeasObjectUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueUTRA, + offsetFreq Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList CellIndexList OPTIONAL, -- Need ON + cellsToAddModList CHOICE { + cellsToAddModListUTRA-FDD CellsToAddModListUTRA-FDD, + cellsToAddModListUTRA-TDD CellsToAddModListUTRA-TDD + } OPTIONAL, -- Need ON + cellForWhichToReportCGI CHOICE { + utra-FDD PhysCellIdUTRA-FDD, + utra-TDD PhysCellIdUTRA-TDD + } OPTIONAL, -- Need ON + ..., + [[ csg-allowedReportingCells-v930 CSG-AllowedReportingCells-r9 OPTIONAL -- Need ON + ]] +} + +CellsToAddModListUTRA-FDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-FDD + +CellsToAddModUTRA-FDD ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdUTRA-FDD +} + +CellsToAddModListUTRA-TDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-TDD + +CellsToAddModUTRA-TDD ::= SEQUENCE { + cellIndex INTEGER (1..maxCellMeas), + physCellId PhysCellIdUTRA-TDD +} + +CSG-AllowedReportingCells-r9 ::= SEQUENCE { + physCellIdRangeUTRA-FDDList-r9 PhysCellIdRangeUTRA-FDDList-r9 OPTIONAL -- Need OR +} + +MeasResults ::= SEQUENCE { + measId MeasId, + measResultServCell SEQUENCE { + rsrpResult RSRP-Range, + rsrqResult RSRQ-Range + }, + measResultNeighCells CHOICE { + measResultListEUTRA MeasResultListEUTRA, + measResultListUTRA MeasResultListUTRA, + measResultListGERAN MeasResultListGERAN, + measResultsCDMA2000 MeasResultsCDMA2000, + ... + } OPTIONAL, + ..., + [[ measResultForECID-r9 MeasResultForECID-r9 OPTIONAL + ]] +} + +MeasResultListEUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultEUTRA + +MeasResultEUTRA ::= SEQUENCE { + physCellId PhysCellId, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdEUTRA, + trackingAreaCode TrackingAreaCode, + plmn-IdentityList PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + rsrpResult RSRP-Range OPTIONAL, + rsrqResult RSRQ-Range OPTIONAL, + ..., + [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL + ]] + } +} + +MeasResultListUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultUTRA + +MeasResultUTRA ::= SEQUENCE { + physCellId CHOICE { + fdd PhysCellIdUTRA-FDD, + tdd PhysCellIdUTRA-TDD + }, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdUTRA, + locationAreaCode BIT STRING (SIZE (16)) OPTIONAL, + routingAreaCode BIT STRING (SIZE (8)) OPTIONAL, + plmn-IdentityList PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + utra-RSCP INTEGER (-5..91) OPTIONAL, + utra-EcN0 INTEGER (0..49) OPTIONAL, + ..., + [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL + ]] + } +} + +MeasResultListGERAN ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultGERAN + +MeasResultGERAN ::= SEQUENCE { + carrierFreq CarrierFreqGERAN, + physCellId PhysCellIdGERAN, + cgi-Info SEQUENCE { + cellGlobalId CellGlobalIdGERAN, + routingAreaCode BIT STRING (SIZE (8)) OPTIONAL + } OPTIONAL, + measResult SEQUENCE { + rssi INTEGER (0..63), + ... + } +} + +MeasResultsCDMA2000 ::= SEQUENCE { + preRegistrationStatusHRPD BOOLEAN, + measResultListCDMA2000 MeasResultListCDMA2000 +} + +MeasResultListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCDMA2000 + +MeasResultCDMA2000 ::= SEQUENCE { + physCellId PhysCellIdCDMA2000, + cgi-Info CellGlobalIdCDMA2000 OPTIONAL, + measResult SEQUENCE { + pilotPnPhase INTEGER (0..32767) OPTIONAL, + pilotStrength INTEGER (0..63), + ... + } +} + +MeasResultForECID-r9 ::= SEQUENCE { + ue-RxTxTimeDiffResult-r9 INTEGER (0..4095), + currentSFN-r9 BIT STRING (SIZE (10)) +} + +PLMN-IdentityList2 ::= SEQUENCE (SIZE (1..5)) OF PLMN-Identity + +AdditionalSI-Info-r9 ::= SEQUENCE { + csg-MemberStatus-r9 ENUMERATED {member} OPTIONAL, + csg-Identity-r9 CSG-Identity OPTIONAL +} + + +QuantityConfig ::= SEQUENCE { + quantityConfigEUTRA QuantityConfigEUTRA OPTIONAL, -- Need ON + quantityConfigUTRA QuantityConfigUTRA OPTIONAL, -- Need ON + quantityConfigGERAN QuantityConfigGERAN OPTIONAL, -- Need ON + quantityConfigCDMA2000 QuantityConfigCDMA2000 OPTIONAL, -- Need ON + ... +} + +QuantityConfigEUTRA ::= SEQUENCE { + filterCoefficientRSRP FilterCoefficient DEFAULT fc4, + filterCoefficientRSRQ FilterCoefficient DEFAULT fc4 +} + +QuantityConfigUTRA ::= SEQUENCE { + measQuantityUTRA-FDD ENUMERATED {cpich-RSCP, cpich-EcN0}, + measQuantityUTRA-TDD ENUMERATED {pccpch-RSCP}, + filterCoefficient FilterCoefficient DEFAULT fc4 +} + +QuantityConfigGERAN ::= SEQUENCE { + measQuantityGERAN ENUMERATED {rssi}, + filterCoefficient FilterCoefficient DEFAULT fc2 +} + +QuantityConfigCDMA2000 ::= SEQUENCE { + measQuantityCDMA2000 ENUMERATED {pilotStrength, pilotPnPhaseAndPilotStrength} +} + + +ReportConfigEUTRA ::= SEQUENCE { + triggerType CHOICE { + event SEQUENCE { + eventId CHOICE { + eventA1 SEQUENCE { + a1-Threshold ThresholdEUTRA + }, + eventA2 SEQUENCE { + a2-Threshold ThresholdEUTRA + }, + eventA3 SEQUENCE { + a3-Offset INTEGER (-30..30), + reportOnLeave BOOLEAN + }, + eventA4 SEQUENCE { + a4-Threshold ThresholdEUTRA + }, + eventA5 SEQUENCE { + a5-Threshold1 ThresholdEUTRA, + a5-Threshold2 ThresholdEUTRA + }, + ... + }, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + periodical SEQUENCE { + purpose ENUMERATED { + reportStrongestCells, reportCGI} + } + }, + triggerQuantity ENUMERATED {rsrp, rsrq}, + reportQuantity ENUMERATED {sameAsTriggerQuantity, both}, + maxReportCells INTEGER (1..maxCellReport), + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + ..., + [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL, -- Cond reportCGI + ue-RxTxTimeDiffPeriodical-r9 ENUMERATED {setup} OPTIONAL -- Need OR + ]] +} + +ThresholdEUTRA ::= CHOICE{ + threshold-RSRP RSRP-Range, + threshold-RSRQ RSRQ-Range +} + + +ReportConfigId ::= INTEGER (1..maxReportConfigId) + + +ReportConfigInterRAT ::= SEQUENCE { + triggerType CHOICE { + event SEQUENCE { + eventId CHOICE { + eventB1 SEQUENCE { + b1-Threshold CHOICE { + b1-ThresholdUTRA ThresholdUTRA, + b1-ThresholdGERAN ThresholdGERAN, + b1-ThresholdCDMA2000 ThresholdCDMA2000 + } + }, + eventB2 SEQUENCE { + b2-Threshold1 ThresholdEUTRA, + b2-Threshold2 CHOICE { + b2-Threshold2UTRA ThresholdUTRA, + b2-Threshold2GERAN ThresholdGERAN, + b2-Threshold2CDMA2000 ThresholdCDMA2000 + } + }, + ... + }, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + periodical SEQUENCE { + purpose ENUMERATED { + reportStrongestCells, + reportStrongestCellsForSON, + reportCGI} + } + }, + maxReportCells INTEGER (1..maxCellReport), + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + ..., + [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL -- Cond reportCGI + ]] +} + +ThresholdUTRA ::= CHOICE{ + utra-RSCP INTEGER (-5..91), + utra-EcN0 INTEGER (0..49) +} + +ThresholdGERAN ::= INTEGER (0..63) + +ThresholdCDMA2000 ::= INTEGER (0..63) + + +ReportConfigToAddModList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigToAddMod + +ReportConfigToAddMod ::= SEQUENCE { + reportConfigId ReportConfigId, + reportConfig CHOICE { + reportConfigEUTRA ReportConfigEUTRA, + reportConfigInterRAT ReportConfigInterRAT + } +} + + + +ReportInterval ::= ENUMERATED { + ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, + min1, min6, min12, min30, min60, spare3, spare2, spare1} + + +RSRP-Range ::= INTEGER(0..97) + + +RSRQ-Range ::= INTEGER(0..34) + + +TimeToTrigger ::= ENUMERATED { + ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256, + ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560, + ms5120} + + +C-RNTI ::= BIT STRING (SIZE (16)) + + +DedicatedInfoCDMA2000 ::= OCTET STRING + + +DedicatedInfoNAS ::= OCTET STRING + + +FilterCoefficient ::= ENUMERATED { + fc0, fc1, fc2, fc3, fc4, fc5, + fc6, fc7, fc8, fc9, fc11, fc13, + fc15, fc17, fc19, spare1, ...} + + +MMEC ::= BIT STRING (SIZE (8)) + + +NeighCellConfig ::= BIT STRING (SIZE (2)) + + +OtherConfig-r9 ::= SEQUENCE { + reportProximityConfig-r9 ReportProximityConfig-r9 OPTIONAL, -- Need ON + ... +} + +ReportProximityConfig-r9 ::= SEQUENCE { + proximityIndicationEUTRA-r9 ENUMERATED {enabled} OPTIONAL, -- Need OR + proximityIndicationUTRA-r9 ENUMERATED {enabled} OPTIONAL -- Need OR +} + + +RAND-CDMA2000 ::= BIT STRING (SIZE (32)) + + +RAT-Type ::= ENUMERATED { + eutra, utra, geran-cs, geran-ps, cdma2000-1XRTT, + spare3, spare2, spare1, ...} + + +RRC-TransactionIdentifier ::= INTEGER (0..3) + + +S-TMSI ::= SEQUENCE { + mmec MMEC, + m-TMSI BIT STRING (SIZE (32)) +} + + +UE-CapabilityRAT-ContainerList ::=SEQUENCE (SIZE (0..maxRAT-Capabilities)) OF UE-CapabilityRAT-Container + +UE-CapabilityRAT-Container ::= SEQUENCE { + rat-Type RAT-Type, + ueCapabilityRAT-Container OCTET STRING +} + + +UE-EUTRA-Capability ::= SEQUENCE { + accessStratumRelease AccessStratumRelease, + ue-Category INTEGER (1..5), + pdcp-Parameters PDCP-Parameters, + phyLayerParameters PhyLayerParameters, + rf-Parameters RF-Parameters, + measParameters MeasParameters, + featureGroupIndicators BIT STRING (SIZE (32)) OPTIONAL, + interRAT-Parameters SEQUENCE { + utraFDD IRAT-ParametersUTRA-FDD OPTIONAL, + utraTDD128 IRAT-ParametersUTRA-TDD128 OPTIONAL, + utraTDD384 IRAT-ParametersUTRA-TDD384 OPTIONAL, + utraTDD768 IRAT-ParametersUTRA-TDD768 OPTIONAL, + geran IRAT-ParametersGERAN OPTIONAL, + cdma2000-HRPD IRAT-ParametersCDMA2000-HRPD OPTIONAL, + cdma2000-1xRTT IRAT-ParametersCDMA2000-1XRTT OPTIONAL + }, + nonCriticalExtension UE-EUTRA-Capability-v920-IEs OPTIONAL +} + +UE-EUTRA-Capability-v920-IEs ::= SEQUENCE { + phyLayerParameters-v920 PhyLayerParameters-v920, + interRAT-ParametersGERAN-v920 IRAT-ParametersGERAN-v920, + interRAT-ParametersUTRA-v920 IRAT-ParametersUTRA-v920 OPTIONAL, + interRAT-ParametersCDMA2000-v920 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL, + deviceType-r9 ENUMERATED {noBenFromBatConsumpOpt} OPTIONAL, + csg-ProximityIndicationParameters-r9 CSG-ProximityIndicationParameters-r9, + neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9, + son-Parameters-r9 SON-Parameters-r9, + nonCriticalExtension UE-EUTRA-Capability-v940-IEs OPTIONAL +} + +UE-EUTRA-Capability-v940-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v9a0-IEs) + OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-EUTRA-Capability-v9a0-IEs ::= SEQUENCE { + featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9c0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9c0-IEs ::= SEQUENCE { + interRAT-ParametersUTRA-v9c0 IRAT-ParametersUTRA-v9c0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9d0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9d0-IEs ::= SEQUENCE { + phyLayerParameters-v9d0 PhyLayerParameters-v9d0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9e0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9e0-IEs ::= SEQUENCE { + rf-Parameters-v9e0 RF-Parameters-v9e0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v9h0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9h0-IEs ::= SEQUENCE { + interRAT-ParametersUTRA-v9h0 IRAT-ParametersUTRA-v9h0 OPTIONAL, + -- Following field is only to be used for late REL-9 extensions + lateNonCriticalExtension OCTET STRING OPTIONAL, + -- Following field is only to be used for late extensions from REL-10 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-r9 ::= SEQUENCE { + phyLayerParameters-r9 PhyLayerParameters OPTIONAL, + featureGroupIndicators-r9 BIT STRING (SIZE (32)) OPTIONAL, + featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersGERAN-r9 IRAT-ParametersGERAN OPTIONAL, + interRAT-ParametersUTRA-r9 IRAT-ParametersUTRA-v920 OPTIONAL, + interRAT-ParametersCDMA2000-r9 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL, + neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9 OPTIONAL, + ... +} + +AccessStratumRelease ::= ENUMERATED { + rel8, rel9, spare6, spare5, spare4, spare3, + spare2, spare1, ...} + +PDCP-Parameters ::= SEQUENCE { + supportedROHC-Profiles SEQUENCE { + profile0x0001 BOOLEAN, + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0101 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + maxNumberROHC-ContextSessions ENUMERATED { + cs2, cs4, cs8, cs12, cs16, cs24, cs32, + cs48, cs64, cs128, cs256, cs512, cs1024, + cs16384, spare2, spare1} DEFAULT cs16, + ... +} + +PhyLayerParameters ::= SEQUENCE { + ue-TxAntennaSelectionSupported BOOLEAN, + ue-SpecificRefSigsSupported BOOLEAN +} + +PhyLayerParameters-v920 ::= SEQUENCE { + enhancedDualLayerFDD-r9 ENUMERATED {supported} OPTIONAL, + enhancedDualLayerTDD-r9 ENUMERATED {supported} OPTIONAL +} + +PhyLayerParameters-v9d0 ::= SEQUENCE { + tm5-FDD-r9 ENUMERATED {supported} OPTIONAL, + tm5-TDD-r9 ENUMERATED {supported} OPTIONAL +} + +RF-Parameters ::= SEQUENCE { + supportedBandListEUTRA SupportedBandListEUTRA +} + +RF-Parameters-v9e0 ::= SEQUENCE { + supportedBandListEUTRA-v9e0 SupportedBandListEUTRA-v9e0 OPTIONAL +} + +SupportedBandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA + +SupportedBandListEUTRA-v9e0::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v9e0 + +SupportedBandEUTRA ::= SEQUENCE { + bandEUTRA INTEGER (1..64), + halfDuplex BOOLEAN +} + +SupportedBandEUTRA-v9e0 ::= SEQUENCE { + bandEUTRA-v9e0 FreqBandIndicator-v9e0 OPTIONAL +} + +MeasParameters ::= SEQUENCE { + bandListEUTRA BandListEUTRA +} + +BandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF BandInfoEUTRA + +BandInfoEUTRA ::= SEQUENCE { + interFreqBandList InterFreqBandList, + interRAT-BandList InterRAT-BandList OPTIONAL +} + +InterFreqBandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterFreqBandInfo + +InterFreqBandInfo ::= SEQUENCE { + interFreqNeedForGaps BOOLEAN +} + +InterRAT-BandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterRAT-BandInfo + +InterRAT-BandInfo ::= SEQUENCE { + interRAT-NeedForGaps BOOLEAN +} + +IRAT-ParametersUTRA-FDD ::= SEQUENCE { + supportedBandListUTRA-FDD SupportedBandListUTRA-FDD +} + +IRAT-ParametersUTRA-v920 ::= SEQUENCE { + e-RedirectionUTRA-r9 ENUMERATED {supported} +} + +IRAT-ParametersUTRA-v9c0 ::= SEQUENCE { + voiceOverPS-HS-UTRA-FDD-r9 ENUMERATED {supported} OPTIONAL, + voiceOverPS-HS-UTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-FDD-ToUTRA-FDD-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-FDD-ToGERAN-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-TDD128-ToUTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL, + srvcc-FromUTRA-TDD128-ToGERAN-r9 ENUMERATED {supported} OPTIONAL +} + +IRAT-ParametersUTRA-v9h0 ::= SEQUENCE { + mfbi-UTRA-r9 ENUMERATED {supported} +} + +SupportedBandListUTRA-FDD ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-FDD + +SupportedBandUTRA-FDD ::= ENUMERATED { + bandI, bandII, bandIII, bandIV, bandV, bandVI, + bandVII, bandVIII, bandIX, bandX, bandXI, + bandXII, bandXIII, bandXIV, bandXV, bandXVI, ..., + bandXVII-8a0, bandXVIII-8a0, bandXIX-8a0, bandXX-8a0, + bandXXI-8a0, bandXXII-8a0, bandXXIII-8a0, bandXXIV-8a0, + bandXXV-8a0, bandXXVI-8a0, bandXXVII-8a0, bandXXVIII-8a0, + bandXXIX-8a0, bandXXX-8a0, bandXXXI-8a0, bandXXXII-8a0} + +IRAT-ParametersUTRA-TDD128 ::= SEQUENCE { + supportedBandListUTRA-TDD128 SupportedBandListUTRA-TDD128 +} + +SupportedBandListUTRA-TDD128 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD128 + +SupportedBandUTRA-TDD128 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD384 ::= SEQUENCE { + supportedBandListUTRA-TDD384 SupportedBandListUTRA-TDD384 +} + +SupportedBandListUTRA-TDD384 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD384 + +SupportedBandUTRA-TDD384 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersUTRA-TDD768 ::= SEQUENCE { + supportedBandListUTRA-TDD768 SupportedBandListUTRA-TDD768 +} + +SupportedBandListUTRA-TDD768 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD768 + +SupportedBandUTRA-TDD768 ::= ENUMERATED { + a, b, c, d, e, f, g, h, i, j, k, l, m, n, + o, p, ...} + +IRAT-ParametersGERAN ::= SEQUENCE { + supportedBandListGERAN SupportedBandListGERAN, + interRAT-PS-HO-ToGERAN BOOLEAN +} + +IRAT-ParametersGERAN-v920 ::= SEQUENCE { + dtm-r9 ENUMERATED {supported} OPTIONAL, + e-RedirectionGERAN-r9 ENUMERATED {supported} OPTIONAL +} + +SupportedBandListGERAN ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandGERAN + +SupportedBandGERAN ::= ENUMERATED { + gsm450, gsm480, gsm710, gsm750, gsm810, gsm850, + gsm900P, gsm900E, gsm900R, gsm1800, gsm1900, + spare5, spare4, spare3, spare2, spare1, ...} + +IRAT-ParametersCDMA2000-HRPD ::= SEQUENCE { + supportedBandListHRPD SupportedBandListHRPD, + tx-ConfigHRPD ENUMERATED {single, dual}, + rx-ConfigHRPD ENUMERATED {single, dual} +} + +SupportedBandListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + +IRAT-ParametersCDMA2000-1XRTT ::= SEQUENCE { + supportedBandList1XRTT SupportedBandList1XRTT, + tx-Config1XRTT ENUMERATED {single, dual}, + rx-Config1XRTT ENUMERATED {single, dual} +} + +IRAT-ParametersCDMA2000-1XRTT-v920 ::= SEQUENCE { + e-CSFB-1XRTT-r9 ENUMERATED {supported}, + e-CSFB-ConcPS-Mob1XRTT-r9 ENUMERATED {supported} OPTIONAL +} + +SupportedBandList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + +CSG-ProximityIndicationParameters-r9 ::= SEQUENCE { + intraFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL, + interFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL, + utran-ProximityIndication-r9 ENUMERATED {supported} OPTIONAL +} + +NeighCellSI-AcquisitionParameters-r9 ::= SEQUENCE { + intraFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL, + interFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL, + utran-SI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL +} + +SON-Parameters-r9 ::= SEQUENCE { + rach-Report-r9 ENUMERATED {supported} OPTIONAL +} + + +UE-TimersAndConstants ::= SEQUENCE { + t300 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t301 ENUMERATED { + ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, + ms2000}, + t310 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n310 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + t311 ENUMERATED { + ms1000, ms3000, ms5000, ms10000, ms15000, + ms20000, ms30000}, + n311 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ... +} + + +MBMS-NotificationConfig-r9 ::= SEQUENCE { + notificationRepetitionCoeff-r9 ENUMERATED {n2, n4}, + notificationOffset-r9 INTEGER (0..10), + notificationSF-Index-r9 INTEGER (1..6) +} + + +MBSFN-AreaInfoList-r9 ::= SEQUENCE (SIZE(1..maxMBSFN-Area)) OF MBSFN-AreaInfo-r9 + +MBSFN-AreaInfo-r9 ::= SEQUENCE { + mbsfn-AreaId-r9 INTEGER (0..255), + non-MBSFNregionLength ENUMERATED {s1, s2}, + notificationIndicator-r9 INTEGER (0..7), + mcch-Config-r9 SEQUENCE { + mcch-RepetitionPeriod-r9 ENUMERATED {rf32, rf64, rf128, rf256}, + mcch-Offset-r9 INTEGER (0..10), + mcch-ModificationPeriod-r9 ENUMERATED {rf512, rf1024}, + sf-AllocInfo-r9 BIT STRING (SIZE(6)), + signallingMCS-r9 ENUMERATED {n2, n7, n13, n19} + }, + ... +} + + +MBSFN-SubframeConfig ::= SEQUENCE { + radioframeAllocationPeriod ENUMERATED {n1, n2, n4, n8, n16, n32}, + radioframeAllocationOffset INTEGER (0..7), + subframeAllocation CHOICE { + oneFrame BIT STRING (SIZE(6)), + fourFrames BIT STRING (SIZE(24)) + } +} + +PMCH-InfoList-r9 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-Info-r9 + +PMCH-Info-r9 ::= SEQUENCE { + pmch-Config-r9 PMCH-Config-r9, + mbms-SessionInfoList-r9 MBMS-SessionInfoList-r9, + ... +} + +MBMS-SessionInfoList-r9 ::= SEQUENCE (SIZE (0..maxSessionPerPMCH)) OF MBMS-SessionInfo-r9 + +MBMS-SessionInfo-r9 ::= SEQUENCE { + tmgi-r9 TMGI-r9, + sessionId-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Need OR + logicalChannelIdentity-r9 INTEGER (0..maxSessionPerPMCH-1), + ... +} + +PMCH-Config-r9 ::= SEQUENCE { + sf-AllocEnd-r9 INTEGER (0..1535), + dataMCS-r9 INTEGER (0..28), + mch-SchedulingPeriod-r9 ENUMERATED { + rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024}, + ... +} + +TMGI-r9 ::= SEQUENCE { + plmn-Id-r9 CHOICE { + plmn-Index-r9 INTEGER (1..6), + explicitValue-r9 PLMN-Identity + }, + serviceId-r9 OCTET STRING (SIZE (3)) +} + + +maxBands INTEGER ::= 64 -- Maximum number of bands listed in EUTRA UE caps +maxCDMA-BandClass INTEGER ::= 32 -- Maximum value of the CDMA band classes +maxCellBlack INTEGER ::= 16 -- Maximum number of blacklisted cells + -- listed in SIB type 4 and 5 +maxCellInfoGERAN-r9 INTEGER ::= 32 -- Maximum number of GERAN cells for which system in- + -- formation can be provided as redirection assistance +maxCellInfoUTRA-r9 INTEGER ::= 16 -- Maximum number of UTRA cells for which system + -- information can be provided as redirection + -- assistance +maxCellInter INTEGER ::= 16 -- Maximum number of neighbouring inter-frequency + -- cells listed in SIB type 5 +maxCellIntra INTEGER ::= 16 -- Maximum number of neighbouring intra-frequency + -- cells listed in SIB type 4 +maxCellMeas INTEGER ::= 32 -- Maximum number of entries in each of the + -- cell lists in a measurement object +maxCellReport INTEGER ::= 8 -- Maximum number of reported cells +maxDRB INTEGER ::= 11 -- Maximum number of Data Radio Bearers +maxEARFCN INTEGER ::= 65535 -- Maximum value of EUTRA carrier frequency +maxEARFCN-Plus1 INTEGER ::= 65536 -- Lowest value extended EARFCN range +maxEARFCN2 INTEGER ::= 262143 -- Highest value extended EARFCN range +maxFBI INTEGER ::= 64 -- Maximum value of fequency band indicator +maxFBI-Plus1 INTEGER ::= 65 -- Lowest value extended FBI range +maxFBI2 INTEGER ::= 256 -- Highest value extended FBI range +maxFreq INTEGER ::= 8 -- Maximum number of EUTRA carrier frequencies +maxGERAN-SI INTEGER ::= 10 -- Maximum number of GERAN SI blocks that can be + -- provided as part of NACC information +maxGNFG INTEGER ::= 16 -- Maximum number of GERAN neighbour freq groups +maxMBSFN-Allocations INTEGER ::= 8 -- Maximum number of MBSFN frame allocations with + -- different offset +maxMBSFN-Area INTEGER ::= 8 +maxMeasId INTEGER ::= 32 +maxMultiBands INTEGER ::= 8 -- Maximum number of additional frequency bands + -- that a cell belongs to +maxObjectId INTEGER ::= 32 +maxPageRec INTEGER ::= 16 -- +maxPhysCellIdRange-r9 INTEGER ::= 4 -- Maximum number of physical cell identity ranges +maxPNOffset INTEGER ::= 511 -- Maximum number of CDMA2000 PNOffsets +maxPMCH-PerMBSFN INTEGER ::= 15 +maxRAT-Capabilities INTEGER ::= 8 -- Maximum number of interworking RATs (incl EUTRA) +maxReportConfigId INTEGER ::= 32 +maxSessionPerPMCH INTEGER ::= 29 +maxSessionPerPMCH-1 INTEGER ::= 28 +maxSIB INTEGER ::= 32 -- Maximum number of SIBs +maxSIB-1 INTEGER ::= 31 +maxSI-Message INTEGER ::= 32 -- Maximum number of SI messages +maxUTRA-FDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA FDD carrier frequencies +maxUTRA-TDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA TDD carrier frequencies + + +END + + +EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + CarrierFreqGERAN, + CellIdentity, + SpeedStateScaleFactors, + C-RNTI, + MeasId, + MeasIdToAddModList, + MeasObjectToAddModList, + MeasObjectToAddModList-v9e0, + MobilityStateParameters, + NeighCellConfig, + PhysCellId, + PhysCellIdCDMA2000, + PhysCellIdGERAN, + PhysCellIdUTRA-FDD, + PhysCellIdUTRA-TDD, + QuantityConfig, + ReportConfigToAddModList, + RSRP-Range, + maxCellMeas, + maxMeasId +FROM EUTRA-RRC-Definitions; + + +VarMeasConfig ::= SEQUENCE { + -- Measurement identities + measIdList MeasIdToAddModList OPTIONAL, + -- Measurement objects + measObjectList MeasObjectToAddModList OPTIONAL, + measObjectList-v9i0 MeasObjectToAddModList-v9e0 OPTIONAL, + -- Reporting configurations + reportConfigList ReportConfigToAddModList OPTIONAL, + -- Other parameters + quantityConfig QuantityConfig OPTIONAL, + s-Measure RSRP-Range OPTIONAL, + speedStatePars CHOICE { + release NULL, + setup SEQUENCE { + mobilityStateParameters MobilityStateParameters, + timeToTrigger-SF SpeedStateScaleFactors + } + } OPTIONAL +} + + +VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport + +VarMeasReport ::= SEQUENCE { + -- List of measurement that have been triggered + measId MeasId, + cellsTriggeredList CellsTriggeredList OPTIONAL, + numberOfReportsSent INTEGER +} + +CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CHOICE { + physCellIdEUTRA PhysCellId, + physCellIdUTRA CHOICE { + fdd PhysCellIdUTRA-FDD, + tdd PhysCellIdUTRA-TDD + }, + physCellIdGERAN SEQUENCE { + carrierFreq CarrierFreqGERAN, + physCellId PhysCellIdGERAN + }, + physCellIdCDMA2000 PhysCellIdCDMA2000 +} + +VarShortMAC-Input ::= SEQUENCE { + cellIdentity CellIdentity, + physCellId PhysCellId, + c-RNTI C-RNTI +} + + + +END + + +EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + AntennaInfoCommon, + CellIdentity, + C-RNTI, + DL-DCCH-Message, + ARFCN-ValueEUTRA, + ARFCN-ValueEUTRA-v9e0, + MasterInformationBlock, + MeasConfig, + OtherConfig-r9, + PhysCellId, + RadioResourceConfigDedicated, + SecurityAlgorithmConfig, + ShortMAC-I, + SystemInformationBlockType1, + SystemInformationBlockType1-v890-IEs, + SystemInformationBlockType2, + UECapabilityInformation, + UE-CapabilityRAT-ContainerList +FROM EUTRA-RRC-Definitions; + + +HandoverCommand ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverCommand-r8 HandoverCommand-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverCommand-r8-IEs ::= SEQUENCE { + handoverCommandMessage OCTET STRING (CONTAINING DL-DCCH-Message), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +HandoverPreparationInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverPreparationInformation-r8 HandoverPreparationInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverPreparationInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo UE-CapabilityRAT-ContainerList, + as-Config AS-Config OPTIONAL, -- Cond HO + rrm-Config RRM-Config OPTIONAL, + as-Context AS-Context OPTIONAL, -- Cond HO + nonCriticalExtension HandoverPreparationInformation-v920-IEs OPTIONAL +} + +HandoverPreparationInformation-v920-IEs ::= SEQUENCE { + ue-ConfigRelease-r9 ENUMERATED { + rel9, spare7, spare6, spare5, spare4, spare3, + spare2, spare1, ...} OPTIONAL, -- Cond HO2 + nonCriticalExtension HandoverPreparationInformation-v9d0-IEs OPTIONAL +} + +HandoverPreparationInformation-v9d0-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension HandoverPreparationInformation-v9e0-IEs OPTIONAL +} + +HandoverPreparationInformation-v9e0-IEs ::= SEQUENCE { + as-Config-v9e0 AS-Config-v9e0 OPTIONAL, -- Cond HO2 + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +UERadioAccessCapabilityInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioAccessCapabilityInformation-r8 + UERadioAccessCapabilityInformation-r8-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +AS-Config ::= SEQUENCE { + sourceMeasConfig MeasConfig, + sourceRadioResourceConfig RadioResourceConfigDedicated, + sourceSecurityAlgorithmConfig SecurityAlgorithmConfig, + sourceUE-Identity C-RNTI, + sourceMasterInformationBlock MasterInformationBlock, + sourceSystemInformationBlockType1 SystemInformationBlockType1(WITH COMPONENTS + {..., nonCriticalExtension ABSENT}), + sourceSystemInformationBlockType2 SystemInformationBlockType2, + antennaInfoCommon AntennaInfoCommon, + sourceDl-CarrierFreq ARFCN-ValueEUTRA, + ..., + [[ sourceSystemInformationBlockType1Ext OCTET STRING (CONTAINING + SystemInformationBlockType1-v890-IEs) OPTIONAL, + sourceOtherConfig-r9 OtherConfig-r9 + ]] +} + +AS-Config-v9e0 ::= SEQUENCE { + sourceDl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 +} + + +AS-Context ::= SEQUENCE { + reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO +} + + +ReestablishmentInfo ::= SEQUENCE { + sourcePhysCellId PhysCellId, + targetCellShortMAC-I ShortMAC-I, + additionalReestabInfoList AdditionalReestabInfoList OPTIONAL, + ... +} + +AdditionalReestabInfoList ::= SEQUENCE ( SIZE (1..maxReestabInfo) ) OF AdditionalReestabInfo + +AdditionalReestabInfo ::= SEQUENCE{ + cellIdentity CellIdentity, + key-eNodeB-Star Key-eNodeB-Star, + shortMAC-I ShortMAC-I +} + +Key-eNodeB-Star ::= BIT STRING (SIZE (256)) + + +RRM-Config ::= SEQUENCE { + ue-InactiveTime ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, + s25, s30, s40, s50, min1, min1s20c, min1s40, + min2, min2s30, min3, min3s30, min4, min5, min6, + min7, min8, min9, min10, min12, min14, min17, min20, + min24, min28, min33, min38, min44, min50, hr1, + hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6, + hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2, + day2hr12, day3, day4, day5, day7, day10, day14, day19, + day24, day30, dayMoreThan30} OPTIONAL, + ... +} + + +maxReestabInfo INTEGER ::= 32 -- Maximum number of KeNB* and shortMAC-I forwarded + -- at handover for re-establishment preparation + + +END + + diff --git a/openair2/RRC/LTE/defs_NB_IoT.h b/openair2/RRC/LTE/defs_NB_IoT.h index 7da9c014f1..0cc8a37bc0 100644 --- a/openair2/RRC/LTE/defs_NB_IoT.h +++ b/openair2/RRC/LTE/defs_NB_IoT.h @@ -18,7 +18,7 @@ * contact@openairinterface.org */ -/*! \file RRC/LITE/defs_NB_IoT.h +/*! \file RRC/LTE/defs_NB_IoT.h * \brief NB-IoT RRC struct definitions and function prototypes * \author Navid Nikaein, Raymond Knopp and Michele Paffetti * \date 2010 - 2014, 2017 diff --git a/openair2/RRC/LTE/rrc_UE.c b/openair2/RRC/LTE/rrc_UE.c index c51a55a144..c23bf12d52 100644 --- a/openair2/RRC/LTE/rrc_UE.c +++ b/openair2/RRC/LTE/rrc_UE.c @@ -41,8 +41,8 @@ #include "openair1/PHY/LTE_ESTIMATION/lte_estimation.h" #include "LAYER2/RLC/rlc.h" #include "COMMON/mac_rrc_primitives.h" -#include "UTIL/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #ifndef CELLULAR #include "RRC/LTE/MESSAGES/asn1_msg.h" #endif @@ -85,7 +85,7 @@ #include "openair2/LAYER2/MAC/mac_extern.h" -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #include "SL-Preconfiguration-r12.h" //for D2D @@ -138,7 +138,7 @@ static void rrc_ue_generate_RRCConnectionReconfigurationComplete( const protocol static void rrc_ue_generate_MeasurementReport(protocol_ctxt_t* const ctxt_pP, uint8_t eNB_index ); static uint8_t check_trigger_meas_event( - uint8_t module_idP, + module_id_t module_idP, frame_t frameP, uint8_t eNB_index, uint8_t ue_cnx_index, @@ -454,7 +454,7 @@ void init_SL_preconfig(UE_RRC_INST *UE, const uint8_t eNB_index ) UE->DRB_configList, (DRB_ToReleaseList_t*) NULL, 0xff, NULL, NULL, NULL -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) , (PMCH_InfoList_r9_t *) NULL #endif ,NULL); @@ -463,7 +463,7 @@ void init_SL_preconfig(UE_RRC_INST *UE, const uint8_t eNB_index ) (SRB_ToAddModList_t*)NULL, UE->DRB_configList, (DRB_ToReleaseList_t*)NULL -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) ,(PMCH_InfoList_r9_t *)NULL #endif ); @@ -472,24 +472,6 @@ void init_SL_preconfig(UE_RRC_INST *UE, const uint8_t eNB_index ) #endif -#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) -//----------------------------------------------------------------------------- -#if 0 -void init_MCCH_UE(module_id_t ue_mod_idP, uint8_t eNB_index) -{ - int i; - UE_rrc_inst[ue_mod_idP].sizeof_MCCH_MESSAGE[eNB_index] = 0; - UE_rrc_inst[ue_mod_idP].MCCH_MESSAGE[eNB_index] = (uint8_t *)malloc16(32); - UE_rrc_inst[ue_mod_idP].mcch_message[eNB_index] = (MBSFNAreaConfiguration_r9_t *)malloc16(sizeof(MBSFNAreaConfiguration_r9_t)); - - for (i=0; i<8; i++) { // MAX MBSFN Area - UE_rrc_inst[ue_mod_idP].Info[eNB_index].MCCHStatus[i] = 0; - - } -} -#endif -#endif - //----------------------------------------------------------------------------- void openair_rrc_ue_init_security( const protocol_ctxt_t* const ctxt_pP ) { @@ -630,22 +612,6 @@ static const char const nas_attach_req_imsi[] = { }; #endif /* !(defined(ENABLE_ITTI) && defined(ENABLE_USE_MME)) */ -#if 0 -/* NAS Attach request with GUTI */ -static const char const nas_attach_req_guti[] = { - 0x07, 0x41, - /* EPS Mobile identity = GUTI */ - 0x71, 0x0B, 0xF6, 0x12, 0xF2, 0x01, 0x80, 0x00, 0x01, 0xE0, 0x00, - 0xDA, 0x1F, - /* End of EPS Mobile Identity */ - 0x02, 0xE0, 0xE0, 0x00, 0x20, 0x02, 0x03, - 0xD0, 0x11, 0x27, 0x1A, 0x80, 0x80, 0x21, 0x10, 0x01, 0x00, 0x00, - 0x10, 0x81, 0x06, 0x00, 0x00, 0x00, 0x00, 0x83, 0x06, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x0A, 0x00, 0x52, 0x12, 0xF2, - 0x01, 0x27, 0x11, -}; -#endif - //----------------------------------------------------------------------------- void rrc_t310_expiration( @@ -786,7 +752,6 @@ int rrc_ue_decode_ccch( const protocol_ctxt_t* const ctxt_pP, const SRB_INFO* co char message_string[10000]; size_t message_string_size; - //LOG_I(RRC, "Panos-D: rrc_ue_decode_ccch, Before xer_sprint() \n"); if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_DL_CCCH_Message, (void *)dl_ccch_msg)) > 0) { MessageDef *msg_p; @@ -895,7 +860,6 @@ rrc_ue_establish_srb1( { // add descriptor from RRC PDU - uint8_t lchan_id = DCCH; UE_rrc_inst[ue_mod_idP].Srb1[eNB_index].Active = 1; UE_rrc_inst[ue_mod_idP].Srb1[eNB_index].Status = RADIO_CONFIG_OK;//RADIO CFG @@ -906,7 +870,7 @@ rrc_ue_establish_srb1( // memcpy(&UE_rrc_inst[ue_mod_idP].Srb1[eNB_index].Srb_info.Lchan_desc[1],&DCCH_LCHAN_DESC,LCHAN_DESC_SIZE); - LOG_I(RRC,"[UE %d], CONFIG_SRB1 %d corresponding to eNB_index %d\n", ue_mod_idP,lchan_id,eNB_index); + LOG_I(RRC,"[UE %d], CONFIG_SRB1 %d corresponding to eNB_index %d\n", ue_mod_idP,DCCH,eNB_index); //rrc_pdcp_config_req (ue_mod_idP+NB_eNB_INST, frameP, 0, CONFIG_ACTION_ADD, lchan_id,UNDEF_SECURITY_MODE); // rrc_rlc_config_req(ue_mod_idP+NB_eNB_INST,frameP,0,CONFIG_ACTION_ADD,lchan_id,SIGNALLING_RADIO_BEARER,Rlc_info_am_config); @@ -929,7 +893,6 @@ rrc_ue_establish_srb2( { // add descriptor from RRC PDU - uint8_t lchan_id = DCCH1; UE_rrc_inst[ue_mod_idP].Srb2[eNB_index].Active = 1; UE_rrc_inst[ue_mod_idP].Srb2[eNB_index].Status = RADIO_CONFIG_OK;//RADIO CFG @@ -940,7 +903,7 @@ rrc_ue_establish_srb2( // memcpy(&UE_rrc_inst[ue_mod_idP].Srb2[eNB_index].Srb_info.Lchan_desc[1],&DCCH_LCHAN_DESC,LCHAN_DESC_SIZE); - LOG_I(RRC,"[UE %d], CONFIG_SRB2 %d corresponding to eNB_index %d\n",ue_mod_idP,lchan_id,eNB_index); + LOG_I(RRC,"[UE %d], CONFIG_SRB2 %d corresponding to eNB_index %d\n",ue_mod_idP,DCCH1,eNB_index); //rrc_pdcp_config_req (ue_mod_idP+NB_eNB_INST, frameP, 0, CONFIG_ACTION_ADD, lchan_id, UNDEF_SECURITY_MODE); // rrc_rlc_config_req(ue_mod_idP+NB_eNB_INST,frameP,0,CONFIG_ACTION_ADD,lchan_id,SIGNALLING_RADIO_BEARER,Rlc_info_am_config); @@ -1094,7 +1057,7 @@ rrc_ue_process_measConfig( 0, 0 #endif -#if defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) , 0, NULL, @@ -1613,7 +1576,7 @@ rrc_ue_process_radioResourceConfigDedicated( 0, 0 #endif -#if defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) , 0, NULL, @@ -1678,7 +1641,7 @@ rrc_ue_process_radioResourceConfigDedicated( 0, 0 #endif -#if defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) , 0, NULL, @@ -1792,7 +1755,7 @@ rrc_ue_process_radioResourceConfigDedicated( UE_rrc_inst[ue_mod_idP].num_active_cba_groups, // UE_rrc_inst[ue_mod_idP].cba_rnti[0] #endif -#if defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) , 0, NULL, @@ -1961,6 +1924,7 @@ rrc_ue_process_securityModeCommand( ctxt_pP->module_id,ctxt_pP->frame, ctxt_pP->subframe, eNB_index, securityModeCommand->rrc_TransactionIdentifier); enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message, + NULL, (void*)&ul_dcch_msg, buffer, 100); @@ -1977,7 +1941,6 @@ rrc_ue_process_securityModeCommand( char message_string[20000]; size_t message_string_size; - //LOG_I(RRC, "Panos-D: rrc_ue_process_securityModeCommand, Before xer_sprint() \n"); if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_UL_DCCH_Message, (void *) &ul_dcch_msg)) > 0) { MessageDef *msg_p; @@ -2075,7 +2038,7 @@ rrc_ue_process_ueCapabilityEnquiry( &ul_dcch_msg.message.choice.c1.choice.ueCapabilityInformation.criticalExtensions.choice.c1.choice.ueCapabilityInformation_r8.ue_CapabilityRAT_ContainerList.list, &ue_CapabilityRAT_Container); - enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message, (void*) &ul_dcch_msg, buffer, 100); + enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message, NULL, (void*) &ul_dcch_msg, buffer, 100); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %jd)!\n", enc_rval.failed_type->name, enc_rval.encoded); @@ -2089,7 +2052,6 @@ rrc_ue_process_ueCapabilityEnquiry( char message_string[20000]; size_t message_string_size; - //LOG_I(RRC, "Panos-D: rrc_ue_process_ueCapabilityEnquiry, Before xer_sprint() \n"); if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_UL_DCCH_Message, (void *) &ul_dcch_msg)) > 0) { MessageDef *msg_p; @@ -2290,7 +2252,7 @@ rrc_ue_process_mobilityControlInfo( DRB_ToReleaseList_t* drb2release_list; DRB_Identity_t *lcid; */ - LOG_N(RRC,"Note: This function needs some updates\n"); + LOG_I(RRC,"Note: This function needs some updates\n"); if(UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].T310_active == 1) { UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].T310_active = 0; @@ -2308,7 +2270,7 @@ rrc_ue_process_mobilityControlInfo( } */ //Removing SRB1 and SRB2 and DRB0 - LOG_N(RRC,"[UE %d] : Update needed for rrc_pdcp_config_req (deprecated) and rrc_rlc_config_req commands(deprecated)\n", ctxt_pP->module_id); + LOG_I(RRC,"[UE %d] : Update needed for rrc_pdcp_config_req (deprecated) and rrc_rlc_config_req commands(deprecated)\n", ctxt_pP->module_id); rrc_pdcp_config_req (ctxt_pP, SRB_FLAG_YES, CONFIG_ACTION_REMOVE, DCCH,UNDEF_SECURITY_MODE); rrc_rlc_config_req(ctxt_pP, SRB_FLAG_YES, MBMS_FLAG_NO, CONFIG_ACTION_REMOVE,ctxt_pP->module_id+DCCH,Rlc_info_am_config); rrc_pdcp_config_req (ctxt_pP, SRB_FLAG_YES, CONFIG_ACTION_REMOVE, DCCH1,UNDEF_SECURITY_MODE); @@ -2348,7 +2310,7 @@ rrc_ue_process_mobilityControlInfo( memcpy((void *)UE_rrc_inst[ue_mod_idP].DRB_config[~(7<= MAKE_VERSION(14, 0, 0)) , 0, NULL, @@ -2484,7 +2446,6 @@ rrc_ue_decode_dcch( char message_string[30000]; size_t message_string_size; - //LOG_I(RRC, "Panos-D: rrc_ue_decode_dcch, Before xer_sprint() \n"); if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_DL_DCCH_Message, (void *)dl_dcch_msg)) > 0) { msg_p = itti_alloc_new_message_sized (TASK_RRC_UE, RRC_DL_DCCH, message_string_size + sizeof (IttiMsgText)); msg_p->ittiMsg.rrc_dl_dcch.size = message_string_size; @@ -3020,7 +2981,6 @@ int decode_BCCH_DLSCH_Message( char message_string[15000]; size_t message_string_size; - LOG_I(RRC, "Panos-D: decode_BCCH_DLSCH_Message, Before xer_sprint() SI_status %d\n", UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus); if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_BCCH_DL_SCH_Message, (void *)bcch_message)) > 0) { MessageDef *msg_p; @@ -3046,8 +3006,6 @@ int decode_BCCH_DLSCH_Message( sizeof(SystemInformationBlockType1_t) ); LOG_D( RRC, "[UE %"PRIu8"] Decoding First SIB1\n", ctxt_pP->module_id ); - //LOG_I( RRC, "Panos-D: decode_BCCH_DLSCH_Message1 BEFORE decode_SIB1"); - //printf("Panos-D: decode_BCCH_DLSCH_Message1 BEFORE decode_SIB1"); decode_SIB1( ctxt_pP, eNB_index, rsrq, rsrp ); } } @@ -3066,8 +3024,6 @@ int decode_BCCH_DLSCH_Message( LOG_I( RRC, "[UE %"PRIu8"] Decoding SI for frameP %"PRIu32"\n", ctxt_pP->module_id, ctxt_pP->frame ); - //LOG_I( RRC, "Panos-D: decode_BCCH_DLSCH_Message1 BEFORE OTHER decode_SI"); - //printf("Panos-D: decode_BCCH_DLSCH_Message1 BEFORE OTHER decode_SI"); decode_SI( ctxt_pP, eNB_index ); //if (nfapi_mode == 3) UE_mac_inst[ctxt_pP->module_id].SI_Decoded = 1; @@ -3159,15 +3115,9 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, mnc = *PLMN_identity->mnc.list.array[0]*100 + *PLMN_identity->mnc.list.array[1]*10 + *PLMN_identity->mnc.list.array[2]; } - int tac = 0; - - if (sib1->cellAccessRelatedInfo.trackingAreaCode.size == 2) { - tac = (sib1->cellAccessRelatedInfo.trackingAreaCode.buf[0]<<8) + sib1->cellAccessRelatedInfo.trackingAreaCode.buf[1]; - } - - LOG_I( RRC, "PLMN MCC %0*d, MNC %0*d, TAC 0x%04x\n", mccdigits, mcc, mncdigits, mnc, tac ); - long cellReservedForOperatorUse = sib1->cellAccessRelatedInfo.plmn_IdentityList.list.array[0]->cellReservedForOperatorUse; - LOG_I( RRC, "cellReservedForOperatorUse : raw:%ld decoded:%s\n", cellReservedForOperatorUse, SIBreserved(cellReservedForOperatorUse) ); + LOG_I( RRC, "PLMN MCC %0*d, MNC %0*d, TAC 0x%04x\n", mccdigits, mcc, mncdigits, mnc, + ((sib1->cellAccessRelatedInfo.trackingAreaCode.size == 2)?((sib1->cellAccessRelatedInfo.trackingAreaCode.buf[0]<<8) + sib1->cellAccessRelatedInfo.trackingAreaCode.buf[1]):0)); + LOG_I( RRC, "cellReservedForOperatorUse : raw:%ld decoded:%s\n", sib1->cellAccessRelatedInfo.plmn_IdentityList.list.array[0]->cellReservedForOperatorUse, SIBreserved(sib1->cellAccessRelatedInfo.plmn_IdentityList.list.array[0]->cellReservedForOperatorUse) ); // search internal table for provider name int plmn_ind = 0; @@ -3192,10 +3142,8 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, sib1->cellAccessRelatedInfo.cellIdentity.buf[2], sib1->cellAccessRelatedInfo.cellIdentity.buf[3] >> sib1->cellAccessRelatedInfo.cellIdentity.bits_unused); - long cellBarred = sib1->cellAccessRelatedInfo.cellBarred; - LOG_I( RRC, "cellAccessRelatedInfo.cellBarred : raw:%ld decoded:%s\n", cellBarred, SIBbarred(cellBarred) ); - long intraFreqReselection = sib1->cellAccessRelatedInfo.intraFreqReselection; - LOG_I( RRC, "cellAccessRelatedInfo.intraFreqReselection : raw:%ld decoded:%s\n", intraFreqReselection, SIBallowed(intraFreqReselection) ); + LOG_I( RRC, "cellAccessRelatedInfo.cellBarred : raw:%ld decoded:%s\n", sib1->cellAccessRelatedInfo.cellBarred, SIBbarred(sib1->cellAccessRelatedInfo.cellBarred) ); + LOG_I( RRC, "cellAccessRelatedInfo.intraFreqReselection : raw:%ld decoded:%s\n", sib1->cellAccessRelatedInfo.intraFreqReselection, SIBallowed(sib1->cellAccessRelatedInfo.intraFreqReselection) ); LOG_I( RRC, "cellAccessRelatedInfo.csg_Indication : %d\n", sib1->cellAccessRelatedInfo.csg_Indication ); if (sib1->cellAccessRelatedInfo.csg_Identity) @@ -3282,7 +3230,7 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, 0, 0 #endif -#if defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) , 0, NULL, @@ -3632,12 +3580,10 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, sib3->cellReselectionInfoCommon.speedStateReselectionPars->mobilityStateParameters.n_CellChangeMedium ); LOG_I( RRC, "cellReselectionInfoCommon.speedStateReselectionPars->mobilityStateParameters.n_CellChangeHigh : %ld\n", sib3->cellReselectionInfoCommon.speedStateReselectionPars->mobilityStateParameters.n_CellChangeHigh ); - int q_HystSF_Medium = 6 - 2 * sib3->cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_Medium; - int q_HystSF_High = 6 - 2 * sib3->cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_High; - LOG_I( RRC, "cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_Medium : raw:%ld decoded:%d dB\n", sib3->cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_Medium, - q_HystSF_Medium ); - LOG_I( RRC, "cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_High : raw:%ld decoded:%d dB\n", sib3->cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_High, - q_HystSF_High ); + LOG_I( RRC, "cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_Medium : raw:%ld decoded:%ld dB\n", sib3->cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_Medium, + 6 - 2 * sib3->cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_Medium ); + LOG_I( RRC, "cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_High : raw:%ld decoded:%ld dB\n", sib3->cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_High, + 6 - 2 * sib3->cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_High ); } else { LOG_I( RRC, "cellReselectionInfoCommon.speedStateReselectionPars : not defined\n" ); } @@ -3916,12 +3862,10 @@ uint64_t arfcn_to_freq(long arfcn) { //----------------------------------------------------------------------------- int decode_SI( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index ) { - //LOG_D( RRC, "Panos-D: decode_SI 1 \n"); SystemInformation_t** si = &UE_rrc_inst[ctxt_pP->module_id].si[eNB_index]; int new_sib = 0; SystemInformationBlockType1_t* sib1 = UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index]; - //LOG_D( RRC, "Panos-D: decode_SI 2 \n"); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_UE_DECODE_SI, VCD_FUNCTION_IN ); // Dump contents @@ -3930,20 +3874,16 @@ uint64_t arfcn_to_freq(long arfcn) { LOG_D( RRC, "[UE] (*si)->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.count %d\n", (*si)->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.count ); } else { - //LOG_D( RRC, "Panos-D: decode_SI 2.3 \n"); LOG_D( RRC, "[UE] Unknown criticalExtension version (not Rel8)\n" ); return -1; } - LOG_D( RRC, "Panos-D: decode_SI 3 \n"); for (int i=0; i<(*si)->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.count; i++) { - //LOG_I( RRC, "Panos-D: SI count %d\n", i ); struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member *typeandinfo; typeandinfo = (*si)->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.array[i]; switch(typeandinfo->present) { case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2: - //LOG_D( RRC, "Panos-D: decode_SI 4 \n"); if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&2) == 0) { UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=2; new_sib=1; @@ -3982,7 +3922,7 @@ uint64_t arfcn_to_freq(long arfcn) { ,0, 0 #endif -#if defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) , 0, NULL, @@ -4033,7 +3973,6 @@ uint64_t arfcn_to_freq(long arfcn) { break; // case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2 case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib3: - //LOG_D( RRC, "Panos-D: decode_SI 5 \n"); if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&4) == 0) { UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=4; new_sib=1; @@ -4168,7 +4107,7 @@ uint64_t arfcn_to_freq(long arfcn) { ,0, 0 #endif -#if defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) , 0, NULL, @@ -4179,7 +4118,7 @@ uint64_t arfcn_to_freq(long arfcn) { } #endif -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) //SIB18 case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib18_v1250: if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&8192) == 0) { @@ -4337,7 +4276,7 @@ void ue_meas_filtering( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_ uint8_t i; uint8_t target_eNB_offset; MeasId_t measId; - PhysCellId_t cellId, targetCellId; + PhysCellId_t targetCellId; long rsrp_t,rsrq_t; long rsrp_s,rsrq_s; long nElem, nElem1; @@ -4381,25 +4320,24 @@ void ue_meas_filtering( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_ UE_rrc_inst[ctxt_pP->module_id].rsrq_db_filtered[target_eNB_offset]); // if (measFlag == 1) { - cellId = get_adjacent_cell_id(ctxt_pP->module_id, eNB_index); //PhycellId of serving cell targetCellId = UE_rrc_inst[ctxt_pP->module_id].HandoverInfoUe.targetCellId ;//get_adjacent_cell_id(ue_mod_idP,target_eNB_offset); //PhycellId of target cell if (pframe!=ctxt_pP->frame) { pframe=ctxt_pP->frame; - LOG_D(RRC, "[UE %d] Frame %d: doing MeasReport: servingCell(%ld) targetCell(%ld) rsrp_s(%ld) rsrq_s(%ld) rsrp_t(%ld) rsrq_t(%ld) \n", + LOG_D(RRC, "[UE %d] Frame %ld: doing MeasReport: servingCell(%ld) targetCell(%ld) rsrp_s(%ld) rsrq_s(%ld) rsrp_t(%ld) rsrq_t(%ld) \n", ctxt_pP->module_id, - ctxt_pP->frame, - cellId, - targetCellId, - rsrp_s, - rsrq_s, - rsrp_t, - rsrq_t); + (long int)ctxt_pP->frame, + (long int)get_adjacent_cell_id(ctxt_pP->module_id, eNB_index), + (long int)targetCellId, + (long int)rsrp_s, + (long int)rsrq_s, + (long int)rsrp_t, + (long int)rsrq_t); size = do_MeasurementReport(ctxt_pP->module_id, buffer,measId,targetCellId,rsrp_s,rsrq_s,rsrp_t,rsrq_t); LOG_I(RRC, "[UE %d] Frame %d : Generating Measurement Report for eNB %d\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index); result = pdcp_data_req(ctxt_pP, SRB_FLAG_YES, DCCH, rrc_mui++, 0, size, buffer, PDCP_TRANSMISSION_MODE_DATA -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,NULL, NULL #endif ); @@ -4445,7 +4383,6 @@ void ue_measurement_report_triggering(protocol_ctxt_t* const ctxt_pP, const uint (UE_rrc_inst[ctxt_pP->module_id].ReportConfig[i][reportConfigId-1]->reportConfig.choice.reportConfigEUTRA.triggerType.present == ReportConfigEUTRA__triggerType_PR_event)) { hys = UE_rrc_inst[ctxt_pP->module_id].ReportConfig[i][reportConfigId-1]->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.hysteresis; - //LOG_N(RRC,"[UE%d] Frame %d Check below lines for segfault :), Fix me \n",ctxt_pP->module_id, frameP); ttt_ms = timeToTrigger_ms[UE_rrc_inst[ctxt_pP->module_id].ReportConfig[i][reportConfigId -1]->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.timeToTrigger]; // Freq specific offset of neighbor cell freq @@ -4695,7 +4632,7 @@ int decode_MCCH_Message( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB 0, 0 #endif -#if defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) , 0, NULL, @@ -4741,7 +4678,6 @@ int decode_MCCH_Message( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB void *rrc_ue_task( void *args_p ) { MessageDef *msg_p; - const char *msg_name; instance_t instance; unsigned int ue_mod_id; int result; @@ -4754,7 +4690,6 @@ void *rrc_ue_task( void *args_p ) // Wait for a message itti_receive_msg (TASK_RRC_UE, &msg_p); - msg_name = ITTI_MSG_NAME (msg_p); instance = ITTI_MSG_INSTANCE (msg_p); ue_mod_id = UE_INSTANCE_TO_MODULE_ID(instance); @@ -4765,12 +4700,12 @@ void *rrc_ue_task( void *args_p ) break; case MESSAGE_TEST: - LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, msg_name); + LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p)); break; /* MAC messages */ case RRC_MAC_IN_SYNC_IND: - LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, msg_name, + LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), RRC_MAC_IN_SYNC_IND (msg_p).frame, RRC_MAC_IN_SYNC_IND (msg_p).enb_index); UE_rrc_inst[ue_mod_id].Info[RRC_MAC_IN_SYNC_IND (msg_p).enb_index].N310_cnt = 0; @@ -4782,14 +4717,14 @@ void *rrc_ue_task( void *args_p ) break; case RRC_MAC_OUT_OF_SYNC_IND: - LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, msg_name, + LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), RRC_MAC_OUT_OF_SYNC_IND (msg_p).frame, RRC_MAC_OUT_OF_SYNC_IND (msg_p).enb_index); UE_rrc_inst[ue_mod_id].Info[RRC_MAC_OUT_OF_SYNC_IND (msg_p).enb_index].N310_cnt ++; break; case RRC_MAC_BCCH_DATA_IND: - LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, msg_name, + LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), RRC_MAC_BCCH_DATA_IND (msg_p).frame, RRC_MAC_BCCH_DATA_IND (msg_p).enb_index); // PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, NOT_A_RNTI, RRC_MAC_BCCH_DATA_IND (msg_p).frame, 0); @@ -4803,7 +4738,7 @@ void *rrc_ue_task( void *args_p ) break; case RRC_MAC_CCCH_DATA_CNF: - LOG_D(RRC, "[UE %d] Received %s: eNB %d\n", ue_mod_id, msg_name, + LOG_D(RRC, "[UE %d] Received %s: eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), RRC_MAC_CCCH_DATA_CNF (msg_p).enb_index); // reset the tx buffer to indicate RRC that ccch was successfully transmitted (for example if contention resolution succeeds) @@ -4814,7 +4749,7 @@ void *rrc_ue_task( void *args_p ) LOG_D(RRC, "[UE %d] RNTI %x Received %s: frameP %d, eNB %d\n", ue_mod_id, RRC_MAC_CCCH_DATA_IND (msg_p).rnti, - msg_name, + ITTI_MSG_NAME (msg_p), RRC_MAC_CCCH_DATA_IND (msg_p).frame, RRC_MAC_CCCH_DATA_IND (msg_p).enb_index); @@ -4833,7 +4768,7 @@ void *rrc_ue_task( void *args_p ) #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) case RRC_MAC_MCCH_DATA_IND: - LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d, mbsfn SA %d\n", ue_mod_id, msg_name, + LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d, mbsfn SA %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), RRC_MAC_MCCH_DATA_IND (msg_p).frame, RRC_MAC_MCCH_DATA_IND (msg_p).enb_index, RRC_MAC_MCCH_DATA_IND (msg_p).mbsfn_sync_area); //PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, M_RNTI, RRC_MAC_MCCH_DATA_IND (msg_p).frame, 0); @@ -4848,7 +4783,7 @@ void *rrc_ue_task( void *args_p ) /* //TTN (for D2D) case RRC_MAC_SL_DISCOVERY_DATA_IND: - LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, msg_name, + LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).frame, RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).enb_index); PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, M_RNTI, RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).frame, 0,RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).enb_index); //send to ProSeApp @@ -4861,14 +4796,14 @@ void *rrc_ue_task( void *args_p ) PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, RRC_DCCH_DATA_IND (msg_p).module_id, ENB_FLAG_NO, RRC_DCCH_DATA_IND (msg_p).rnti, RRC_DCCH_DATA_IND (msg_p).frame, 0,RRC_DCCH_DATA_IND (msg_p).eNB_index); LOG_D(RRC, "[UE %d] Received %s: frameP %d, DCCH %d, eNB %d\n", RRC_DCCH_DATA_IND (msg_p).module_id, - msg_name, + ITTI_MSG_NAME (msg_p), RRC_DCCH_DATA_IND (msg_p).frame, RRC_DCCH_DATA_IND (msg_p).dcch_index, RRC_DCCH_DATA_IND (msg_p).eNB_index); LOG_D(RRC, PROTOCOL_RRC_CTXT_UE_FMT"Received %s DCCH %d, eNB %d\n", PROTOCOL_RRC_CTXT_UE_ARGS(&ctxt), - msg_name, + ITTI_MSG_NAME (msg_p), RRC_DCCH_DATA_IND (msg_p).dcch_index, RRC_DCCH_DATA_IND (msg_p).eNB_index); rrc_ue_decode_dcch ( @@ -4895,7 +4830,7 @@ void *rrc_ue_task( void *args_p ) "%02x%02x%02x%02x" "%02x%02x%02x%02x" "%02x%02x%02x%02x\n", - ue_mod_id, msg_name, + ue_mod_id, ITTI_MSG_NAME (msg_p), UE_rrc_inst[ue_mod_id].kenb[0], UE_rrc_inst[ue_mod_id].kenb[1], UE_rrc_inst[ue_mod_id].kenb[2], UE_rrc_inst[ue_mod_id].kenb[3], UE_rrc_inst[ue_mod_id].kenb[4], UE_rrc_inst[ue_mod_id].kenb[5], UE_rrc_inst[ue_mod_id].kenb[6], UE_rrc_inst[ue_mod_id].kenb[7], UE_rrc_inst[ue_mod_id].kenb[8], UE_rrc_inst[ue_mod_id].kenb[9], UE_rrc_inst[ue_mod_id].kenb[10], UE_rrc_inst[ue_mod_id].kenb[11], @@ -4910,7 +4845,7 @@ void *rrc_ue_task( void *args_p ) /* NAS messages */ case NAS_CELL_SELECTION_REQ: - LOG_D(RRC, "[UE %d] Received %s: state %d, plmnID (%d%d%d.%d%d%d), rat %x\n", ue_mod_id, msg_name, rrc_get_state(ue_mod_id), + LOG_D(RRC, "[UE %d] Received %s: state %d, plmnID (%d%d%d.%d%d%d), rat %x\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id), NAS_CELL_SELECTION_REQ (msg_p).plmnID.MCCdigit1, NAS_CELL_SELECTION_REQ (msg_p).plmnID.MCCdigit2, NAS_CELL_SELECTION_REQ (msg_p).plmnID.MCCdigit3, @@ -4969,18 +4904,18 @@ void *rrc_ue_task( void *args_p ) case RRC_STATE_CONNECTED: /* should not happen */ - LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, msg_name, rrc_get_state(ue_mod_id)); + LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id)); break; default: - LOG_C(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id)); + LOG_E(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id)); break; } break; case NAS_CONN_ESTABLI_REQ: - LOG_D(RRC, "[UE %d] Received %s: cause %d, type %d, s_tmsi (mme code %"PRIu8", m-tmsi %"PRIu32"), plmnID (%d%d%d.%d%d%d)\n", ue_mod_id, msg_name, NAS_CONN_ESTABLI_REQ (msg_p).cause, + LOG_D(RRC, "[UE %d] Received %s: cause %d, type %d, s_tmsi (mme code %"PRIu8", m-tmsi %"PRIu32"), plmnID (%d%d%d.%d%d%d)\n", ue_mod_id, ITTI_MSG_NAME (msg_p), NAS_CONN_ESTABLI_REQ (msg_p).cause, NAS_CONN_ESTABLI_REQ (msg_p).type, NAS_CONN_ESTABLI_REQ (msg_p).s_tmsi.MMEcode, NAS_CONN_ESTABLI_REQ (msg_p).s_tmsi.m_tmsi, @@ -5011,11 +4946,11 @@ void *rrc_ue_task( void *args_p ) case RRC_STATE_INACTIVE: case RRC_STATE_CONNECTED: /* should not happen */ - LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, msg_name, rrc_get_state(ue_mod_id)); + LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id)); break; default: - LOG_C(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id)); + LOG_E(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id)); break; } @@ -5025,7 +4960,7 @@ void *rrc_ue_task( void *args_p ) uint32_t length; uint8_t *buffer; - LOG_D(RRC, "[UE %d] Received %s: UEid %d\n", ue_mod_id, msg_name, NAS_UPLINK_DATA_REQ (msg_p).UEid); + LOG_D(RRC, "[UE %d] Received %s: UEid %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), NAS_UPLINK_DATA_REQ (msg_p).UEid); /* Create message for PDCP (ULInformationTransfer_t) */ length = do_ULInformationTransfer(&buffer, NAS_UPLINK_DATA_REQ (msg_p).nasMsg.length, NAS_UPLINK_DATA_REQ (msg_p).nasMsg.data); @@ -5060,7 +4995,7 @@ void *rrc_ue_task( void *args_p ) # if ENABLE_RAL case RRC_RAL_SCAN_REQ: - LOG_D(RRC, "[UE %d] Received %s: state %d\n", ue_mod_id, msg_name); + LOG_D(RRC, "[UE %d] Received %s: state %d\n", ue_mod_id,ITTI_MSG_NAME (msg_p) ); switch (rrc_get_state(ue_mod_id)) { case RRC_STATE_INACTIVE: { @@ -5096,18 +5031,18 @@ void *rrc_ue_task( void *args_p ) case RRC_STATE_CONNECTED: /* should not happen */ - LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, msg_name, rrc_get_state(ue_mod_id)); + LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id)); break; default: - LOG_C(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id)); + LOG_E(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id)); break; } break; case PHY_FIND_CELL_IND: - LOG_D(RRC, "[UE %d] Received %s: state %d\n", ue_mod_id, msg_name, rrc_get_state(ue_mod_id)); + LOG_D(RRC, "[UE %d] Received %s: state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id)); switch (rrc_get_state(ue_mod_id)) { case RRC_STATE_IDLE: @@ -5138,7 +5073,7 @@ void *rrc_ue_task( void *args_p ) } default: - LOG_C(RRC, "[UE %d] Invalid RRC state %d substate %d\n", + LOG_E(RRC, "[UE %d] Invalid RRC state %d substate %d\n", ue_mod_id, rrc_get_state(ue_mod_id), rrc_get_sub_state(ue_mod_id)); @@ -5149,11 +5084,11 @@ void *rrc_ue_task( void *args_p ) case RRC_STATE_INACTIVE: case RRC_STATE_CONNECTED: /* should not happen */ - LOG_E(RRC, "[UE %d] indication %s in RRC state %d\n", ue_mod_id, msg_name, rrc_get_state(ue_mod_id)); + LOG_E(RRC, "[UE %d] indication %s in RRC state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id)); break; default: - LOG_C(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id)); + LOG_E(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id)); break; } @@ -5181,7 +5116,7 @@ void *rrc_ue_task( void *args_p ) break; case RRC_RAL_CONNECTION_ESTABLISHMENT_REQ: - LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, msg_name); + LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p)); switch (rrc_get_state(ue_mod_id)) { case RRC_STATE_IDLE: { @@ -5198,23 +5133,23 @@ void *rrc_ue_task( void *args_p ) case RRC_STATE_INACTIVE: case RRC_STATE_CONNECTED: /* should not happen */ - LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, msg_name, rrc_get_state(ue_mod_id)); + LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id)); break; default: - LOG_C(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id)); + LOG_E(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id)); break; } break; case RRC_RAL_CONNECTION_RELEASE_REQ: - LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, msg_name); + LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p)); break; #endif default: - LOG_E(RRC, "[UE %d] Received unexpected message %s\n", ue_mod_id, msg_name); + LOG_E(RRC, "[UE %d] Received unexpected message %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p)); break; } @@ -5271,7 +5206,7 @@ openair_rrc_top_init_ue( #endif -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /* TODO: this is disabled for the moment because the standard UE * crashes when calling this function. */ @@ -5429,7 +5364,7 @@ rrc_ue_process_sidelink_radioResourceConfig( case SL_CommConfig_r12__commTxResources_r12_PR_setup: if (sl_CommConfig->commTxResources_r12->choice.setup.present == SL_CommConfig_r12__commTxResources_r12__setup_PR_scheduled_r12 ){ - LOG_I(RRC,"[UE %d][RRC_UE] scheduled resource for SL, sl_RNTI size %d \n", + LOG_I(RRC,"[UE %d][RRC_UE] scheduled resource for SL, sl_RNTI size %lu \n", Mod_idP, sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.sl_RNTI_r12.size ); LOG_I(RRC,"[UE %d][RRC_UE] scheduled resource for SL, sl_RNTI buf 0x%p \n", Mod_idP, sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.sl_RNTI_r12.buf ); @@ -5517,7 +5452,7 @@ rrc_ue_process_sidelink_radioResourceConfig( } } -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) //----------------------------------------------------------- void rrc_control_socket_init(){ @@ -5623,9 +5558,9 @@ void *rrc_control_socket_thread_fct(void *arg) //process the message switch (sl_ctrl_msg_recv->type) { case SESSION_INIT_REQ: -#ifdef DEBUG_CTRL_SOCKET - LOG_I(RRC,"Received SessionInitializationRequest on socket from ProSe App (msg type: %d)\n", sl_ctrl_msg_recv->type); -#endif +LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET) + LOG_UI(RRC,"Received SessionInitializationRequest on socket from ProSe App (msg type: %d)\n", sl_ctrl_msg_recv->type); +LOG_DEBUG_END //TODO: get SL_UE_STATE from lower layer LOG_I(RRC,"Send UEStateInformation to ProSe App \n"); @@ -5644,14 +5579,12 @@ void *rrc_control_socket_thread_fct(void *arg) exit(EXIT_FAILURE); } - -#ifdef DEBUG_CTRL_SOCKET +LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET) struct sidelink_ctrl_element *ptr_ctrl_msg = NULL; ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf; - LOG_I(RRC,"[UEStateInformation] msg type: %d\n",ptr_ctrl_msg->type); - LOG_I(RRC,"[UEStateInformation] UE state: %d\n",ptr_ctrl_msg->sidelinkPrimitive.ue_state); -#endif - + LOG_UI(RRC,"[UEStateInformation] msg type: %d\n",ptr_ctrl_msg->type); + LOG_UI(RRC,"[UEStateInformation] UE state: %d\n",ptr_ctrl_msg->sidelinkPrimitive.ue_state); +LOG_DEBUG_END /* if (enable_notification > 0) { //create thread to send status notification (for testing purpose, status notification will be sent e.g., every 20 seconds) pthread_t notification_thread; @@ -5666,12 +5599,12 @@ void *rrc_control_socket_thread_fct(void *arg) sourceL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id; groupL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id; -#ifdef DEBUG_CTRL_SOCKET - LOG_I(RRC,"[GroupCommunicationEstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type); - LOG_I(RRC,"[GroupCommunicationEstablishReq] source Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id); - LOG_I(RRC,"[GroupCommunicationEstablishReq] group Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id); - LOG_I(RRC,"[GroupCommunicationEstablishReq] group IP Address: " IPV4_ADDR "\n",IPV4_ADDR_FORMAT(sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupIpAddress)); -#endif +LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET) + LOG_UI(RRC,"[GroupCommunicationEstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type); + LOG_UI(RRC,"[GroupCommunicationEstablishReq] source Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id); + LOG_UI(RRC,"[GroupCommunicationEstablishReq] group Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id); + LOG_UI(RRC,"[GroupCommunicationEstablishReq] group IP Address: " IPV4_ADDR "\n",IPV4_ADDR_FORMAT(sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupIpAddress)); +LOG_DEBUG_END //store sourceL2Id/groupL2Id UE_rrc_inst[module_id].sourceL2Id = sourceL2Id; @@ -5749,7 +5682,7 @@ void *rrc_control_socket_thread_fct(void *arg) UE->DRB_configList, (DRB_ToReleaseList_t*) NULL, 0xff, NULL, NULL, NULL -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) , (PMCH_InfoList_r9_t *) NULL #endif ,NULL); @@ -5759,7 +5692,7 @@ void *rrc_control_socket_thread_fct(void *arg) (SRB_ToAddModList_t*)NULL, UE->DRB_configList, (DRB_ToReleaseList_t*)NULL -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) ,(PMCH_InfoList_r9_t *)NULL , 0, 0 #endif @@ -5769,7 +5702,7 @@ void *rrc_control_socket_thread_fct(void *arg) (SRB_ToAddModList_t*)NULL, UE->DRB_configList, (DRB_ToReleaseList_t*)NULL -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,(PMCH_InfoList_r9_t *)NULL , sourceL2Id, groupL2Id #endif @@ -5780,7 +5713,7 @@ void *rrc_control_socket_thread_fct(void *arg) rrc_mac_config_req_ue(module_id,0,0, //eNB_index =0 (RadioResourceConfigCommonSIB_t *)NULL, (struct PhysicalConfigDedicated *)NULL, -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) (SCellToAddMod_r10_t *)NULL, //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, #endif @@ -5797,7 +5730,7 @@ void *rrc_control_socket_thread_fct(void *arg) NULL, NULL, NULL -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) ,0, (MBSFN_AreaInfoList_r9_t *)NULL, (PMCH_InfoList_r9_t *)NULL @@ -5808,7 +5741,7 @@ void *rrc_control_socket_thread_fct(void *arg) 0, 0 #endif -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) ,CONFIG_ACTION_ADD, &sourceL2Id, &groupL2Id @@ -5831,20 +5764,20 @@ void *rrc_control_socket_thread_fct(void *arg) exit(EXIT_FAILURE); } - -#ifdef DEBUG_CTRL_SOCKET +LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET) + struct sidelink_ctrl_element *ptr_ctrl_msg = NULL; ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf; - LOG_I(RRC,"[GroupCommunicationEstablishResponse] msg type: %d\n",ptr_ctrl_msg->type); - LOG_I(RRC,"[GroupCommunicationEstablishResponse] slrb_id: %d\n",ptr_ctrl_msg->sidelinkPrimitive.slrb_id); -#endif + LOG_UI(RRC,"[GroupCommunicationEstablishResponse] msg type: %d\n",ptr_ctrl_msg->type); + LOG_UI(RRC,"[GroupCommunicationEstablishResponse] slrb_id: %d\n",ptr_ctrl_msg->sidelinkPrimitive.slrb_id); +LOG_DEBUG_END break; case GROUP_COMMUNICATION_RELEASE_REQ: printf("-----------------------------------\n"); -#ifdef DEBUG_CTRL_SOCKET - LOG_I(RRC,"[GroupCommunicationReleaseRequest] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type); - LOG_I(RRC,"[GroupCommunicationReleaseRequest] Slrb Id: %i\n",sl_ctrl_msg_recv->sidelinkPrimitive.slrb_id); -#endif +LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET) + LOG_UI(RRC,"[GroupCommunicationReleaseRequest] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type); + LOG_UI(RRC,"[GroupCommunicationReleaseRequest] Slrb Id: %i\n",sl_ctrl_msg_recv->sidelinkPrimitive.slrb_id); +LOG_DEBUG_END //reset groupL2ID from MAC LAYER UE_rrc_inst[module_id].groupL2Id = 0x00000000; sourceL2Id = UE_rrc_inst[module_id].sourceL2Id; @@ -5852,7 +5785,7 @@ void *rrc_control_socket_thread_fct(void *arg) rrc_mac_config_req_ue(module_id,0,0, //eNB_index =0 (RadioResourceConfigCommonSIB_t *)NULL, (struct PhysicalConfigDedicated *)NULL, - #if defined(Rel10) || defined(Rel14) + #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) (SCellToAddMod_r10_t *)NULL, //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, #endif @@ -5869,7 +5802,7 @@ void *rrc_control_socket_thread_fct(void *arg) NULL, NULL, NULL - #if defined(Rel10) || defined(Rel14) + #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) ,0, (MBSFN_AreaInfoList_r9_t *)NULL, (PMCH_InfoList_r9_t *)NULL @@ -5880,7 +5813,7 @@ void *rrc_control_socket_thread_fct(void *arg) 0, 0 #endif - #if defined(Rel10) || defined(Rel14) + #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) ,CONFIG_ACTION_REMOVE, &sourceL2Id, &destinationL2Id @@ -5916,11 +5849,11 @@ void *rrc_control_socket_thread_fct(void *arg) sourceL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.direct_comm_establish_req.sourceL2Id; destinationL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.direct_comm_establish_req.destinationL2Id; -#ifdef DEBUG_CTRL_SOCKET - LOG_I(RRC,"[DirectCommunicationEstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type); - LOG_I(RRC,"[DirectCommunicationEstablishReq] source Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id); - LOG_I(RRC,"[DirectCommunicationEstablishReq] destination Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id); -#endif +LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET) + LOG_UI(RRC,"[DirectCommunicationEstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type); + LOG_UI(RRC,"[DirectCommunicationEstablishReq] source Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id); + LOG_UI(RRC,"[DirectCommunicationEstablishReq] destination Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id); +LOG_DEBUG_END //store sourceL2Id/destinationL2Id UE_rrc_inst[module_id].sourceL2Id = sourceL2Id; @@ -5997,7 +5930,7 @@ void *rrc_control_socket_thread_fct(void *arg) UE->DRB_configList, (DRB_ToReleaseList_t*) NULL, 0xff, NULL, NULL, NULL -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) , (PMCH_InfoList_r9_t *) NULL #endif ,NULL); @@ -6007,7 +5940,7 @@ void *rrc_control_socket_thread_fct(void *arg) (SRB_ToAddModList_t*)NULL, UE->DRB_configList, (DRB_ToReleaseList_t*)NULL -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) ,(PMCH_InfoList_r9_t *)NULL , 0, 0 #endif @@ -6017,7 +5950,7 @@ void *rrc_control_socket_thread_fct(void *arg) (SRB_ToAddModList_t*)NULL, UE->DRB_configList, (DRB_ToReleaseList_t*)NULL -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,(PMCH_InfoList_r9_t *)NULL , sourceL2Id, destinationL2Id #endif @@ -6028,7 +5961,7 @@ void *rrc_control_socket_thread_fct(void *arg) rrc_mac_config_req_ue(module_id,0,0, //eNB_index =0 (RadioResourceConfigCommonSIB_t *)NULL, (struct PhysicalConfigDedicated *)NULL, -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) (SCellToAddMod_r10_t *)NULL, //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, #endif @@ -6045,7 +5978,7 @@ void *rrc_control_socket_thread_fct(void *arg) NULL, NULL, NULL -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) ,0, (MBSFN_AreaInfoList_r9_t *)NULL, (PMCH_InfoList_r9_t *)NULL @@ -6056,7 +5989,7 @@ void *rrc_control_socket_thread_fct(void *arg) 0, 0 #endif -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) ,CONFIG_ACTION_ADD, &sourceL2Id, &destinationL2Id @@ -6080,26 +6013,27 @@ void *rrc_control_socket_thread_fct(void *arg) } -#ifdef DEBUG_CTRL_SOCKET +LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET) + struct sidelink_ctrl_element *ptr_ctrl_msg = NULL; ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf; - LOG_I(RRC,"[DirectCommunicationEstablishResponse] msg type: %d\n",ptr_ctrl_msg->type); - LOG_I(RRC,"[DirectCommunicationEstablishResponse] slrb_id: %d\n",ptr_ctrl_msg->sidelinkPrimitive.slrb_id); -#endif + LOG_UI(RRC,"[DirectCommunicationEstablishResponse] msg type: %d\n",ptr_ctrl_msg->type); + LOG_UI(RRC,"[DirectCommunicationEstablishResponse] slrb_id: %d\n",ptr_ctrl_msg->sidelinkPrimitive.slrb_id); +LOG_DEBUG_END break; case PC5S_ESTABLISH_REQ: type = sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.type; sourceL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.sourceL2Id; -#ifdef DEBUG_CTRL_SOCKET - LOG_I(RRC,"[PC5EstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type); - LOG_I(RRC,"[PC5EstablishReq] type: %d\n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.type); //RX/TX - LOG_I(RRC,"[PC5EstablishReq] source Id: 0x%08x \n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.sourceL2Id); -#endif +LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET) + LOG_UI(RRC,"[PC5EstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type); + LOG_UI(RRC,"[PC5EstablishReq] type: %d\n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.type); //RX/TX + LOG_UI(RRC,"[PC5EstablishReq] source Id: 0x%08x \n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.sourceL2Id); +LOG_DEBUG_END if (type > 0) { destinationL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.destinationL2Id; -#ifdef DEBUG_CTRL_SOCKET - LOG_I(RRC,"[PC5EstablishReq] destination Id: 0x%08x \n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.destinationL2Id); -#endif +LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET) + LOG_UI(RRC,"[PC5EstablishReq] destination Id: 0x%08x \n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.destinationL2Id); +LOG_DEBUG_END } //store sourceL2Id/destinationL2Id @@ -6181,7 +6115,7 @@ void *rrc_control_socket_thread_fct(void *arg) UE->DRB_configList, (DRB_ToReleaseList_t*) NULL, 0xff, NULL, NULL, NULL -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) , (PMCH_InfoList_r9_t *) NULL #endif ,NULL); @@ -6191,7 +6125,7 @@ void *rrc_control_socket_thread_fct(void *arg) (SRB_ToAddModList_t*)NULL, UE->DRB_configList, (DRB_ToReleaseList_t*)NULL -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) ,(PMCH_InfoList_r9_t *)NULL , 0, 0 #endif @@ -6203,7 +6137,7 @@ void *rrc_control_socket_thread_fct(void *arg) (SRB_ToAddModList_t*)NULL, UE->DRB_configList, (DRB_ToReleaseList_t*)NULL -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,(PMCH_InfoList_r9_t *)NULL , sourceL2Id, destinationL2Id #endif @@ -6213,7 +6147,7 @@ void *rrc_control_socket_thread_fct(void *arg) rrc_mac_config_req_ue(module_id,0,0, //eNB_index =0 (RadioResourceConfigCommonSIB_t *)NULL, (struct PhysicalConfigDedicated *)NULL, -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) (SCellToAddMod_r10_t *)NULL, //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, #endif @@ -6230,7 +6164,7 @@ void *rrc_control_socket_thread_fct(void *arg) NULL, NULL, NULL -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) ,0, (MBSFN_AreaInfoList_r9_t *)NULL, (PMCH_InfoList_r9_t *)NULL @@ -6241,7 +6175,7 @@ void *rrc_control_socket_thread_fct(void *arg) 0, 0 #endif -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) ,CONFIG_ACTION_ADD, &sourceL2Id, &destinationL2Id @@ -6252,7 +6186,7 @@ void *rrc_control_socket_thread_fct(void *arg) rrc_mac_config_req_ue(module_id,0,0, //eNB_index =0 (RadioResourceConfigCommonSIB_t *)NULL, (struct PhysicalConfigDedicated *)NULL, -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) (SCellToAddMod_r10_t *)NULL, //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, #endif @@ -6269,7 +6203,7 @@ void *rrc_control_socket_thread_fct(void *arg) NULL, NULL, NULL -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) ,0, (MBSFN_AreaInfoList_r9_t *)NULL, (PMCH_InfoList_r9_t *)NULL @@ -6280,7 +6214,7 @@ void *rrc_control_socket_thread_fct(void *arg) 0, 0 #endif -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) ,CONFIG_ACTION_ADD, &sourceL2Id, NULL @@ -6310,9 +6244,9 @@ void *rrc_control_socket_thread_fct(void *arg) case PC5_DISCOVERY_MESSAGE: - #ifdef DEBUG_CTRL_SOCKET - LOG_I(RRC,"[PC5DiscoveryMessage] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type); - #endif +LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET) + LOG_UI(RRC,"[PC5DiscoveryMessage] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type); +LOG_DEBUG_END //prepare SL_Discovery buffer if (UE_rrc_inst) { memcpy((void*)&UE_rrc_inst[module_id].SL_Discovery[0].Tx_buffer.Payload[0], (void*)&sl_ctrl_msg_recv->sidelinkPrimitive.pc5_discovery_message.payload[0], PC5_DISCOVERY_PAYLOAD_SIZE); diff --git a/openair2/RRC/LTE/rrc_UE_ral.c b/openair2/RRC/LTE/rrc_UE_ral.c index 0cb0943fcb..c972d280d5 100644 --- a/openair2/RRC/LTE/rrc_UE_ral.c +++ b/openair2/RRC/LTE/rrc_UE_ral.c @@ -33,8 +33,8 @@ #include "rrc_UE_ral.h" #include "assertions.h" #include "collection/hashtable/obj_hashtable.h" -#include "RRC/LITE/defs.h" -#include "RRC/LITE/extern.h" +#include "RRC/LTE/defs.h" +#include "RRC/LTE/extern.h" //----------------------------------------------------------------------------- diff --git a/openair2/RRC/LTE/rrc_UE_ral.h b/openair2/RRC/LTE/rrc_UE_ral.h index e2b4a3dadb..dfa971d28c 100644 --- a/openair2/RRC/LTE/rrc_UE_ral.h +++ b/openair2/RRC/LTE/rrc_UE_ral.h @@ -30,21 +30,6 @@ #ifndef __RRC_UE_RAL_H__ # define __RRC_UE_RAL_H__ //----------------------------------------------------------------------------- -# ifdef RRC_UE_RAL_C -# define private_rrc_ue_ral(x) x -# define protected_rrc_ue_ral(x) x -# define public_rrc_ue_ral(x) x -# else -# ifdef RRC_UE -# define private_rrc_ue_ral(x) -# define protected_rrc_ue_ral(x) extern x -# define public_rrc_ue_ral(x) extern x -# else -# define private_rrc_ue_ral(x) -# define protected_rrc_ue_ral(x) -# define public_rrc_ue_ral(x) extern x -# endif -# endif //----------------------------------------------------------------------------- #include #include @@ -58,7 +43,7 @@ #include "ral_messages_types.h" #include "defs.h" -private_rrc_ue_ral( int rrc_ue_ral_delete_all_thresholds_type (unsigned int mod_idP, ral_link_param_type_t *param_type_pP);) -private_rrc_ue_ral( int rrc_ue_ral_delete_threshold (unsigned int mod_idP, ral_link_param_type_t *param_type_pP, ral_threshold_t *threshold_pP);) -protected_rrc_ue_ral(int rrc_ue_ral_handle_configure_threshold_request(unsigned int mod_idP, MessageDef *msg_pP);) +int rrc_ue_ral_delete_all_thresholds_type (unsigned int mod_idP, ral_link_param_type_t *param_type_pP); +int rrc_ue_ral_delete_threshold (unsigned int mod_idP, ral_link_param_type_t *param_type_pP, ral_threshold_t *threshold_pP); +int rrc_ue_ral_handle_configure_threshold_request(unsigned int mod_idP, MessageDef *msg_pP); #endif diff --git a/openair2/RRC/LTE/rrc_common.c b/openair2/RRC/LTE/rrc_common.c index 0acb0d7701..d18c43d6cf 100644 --- a/openair2/RRC/LTE/rrc_common.c +++ b/openair2/RRC/LTE/rrc_common.c @@ -36,10 +36,10 @@ #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h" #include "LAYER2/RLC/rlc.h" #include "COMMON/mac_rrc_primitives.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "asn1_msg.h" #include "pdcp.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "rrc_eNB_UE_context.h" #include "common/ran_context.h" diff --git a/openair2/RRC/LTE/rrc_defs.h b/openair2/RRC/LTE/rrc_defs.h index 4719eebd61..e21cb9255a 100644 --- a/openair2/RRC/LTE/rrc_defs.h +++ b/openair2/RRC/LTE/rrc_defs.h @@ -192,7 +192,9 @@ void *send_UE_status_notification(void *); #include "AS-Context.h" #include "UE-EUTRA-Capability.h" #include "MeasResults.h" +#if (RRC_VERSION >= MAKE_VERSION(12, 0, 0)) #include "SidelinkUEInformation-r12.h" +#endif /* for ImsiMobileIdentity_t */ #include "MobileIdentity.h" @@ -382,11 +384,7 @@ typedef enum SL_TRIGGER_e { // #define NUM_MAX_CBA_GROUP 4 // in the platform_constants /* TS 36.331: RRC-TransactionIdentifier ::= INTEGER (0..3) */ -#if defined(USRP_REC_PLAY) -#define RRC_TRANSACTION_IDENTIFIER_NUMBER 1 -#else #define RRC_TRANSACTION_IDENTIFIER_NUMBER 3 -#endif typedef struct { unsigned short transport_block_size; /*!< \brief Minimum PDU size in bytes provided by RLC to MAC layer interface */ @@ -602,6 +600,7 @@ typedef struct eNB_RRC_UE_s { uint32_t ue_reestablishment_timer; uint32_t ue_reestablishment_timer_thres; uint8_t e_rab_release_command_flag; + int8_t reestablishment_xid; } eNB_RRC_UE_t; typedef uid_t ue_uid_t; @@ -760,7 +759,7 @@ typedef struct UE_RRC_INST_s { SystemInformationBlockType10_t *sib10[NB_CNX_UE]; SystemInformationBlockType11_t *sib11[NB_CNX_UE]; uint8_t *MIB; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) //SIB18 SystemInformationBlockType18_r12_t *sib18[NB_CNX_UE]; SystemInformationBlockType19_r12_t *sib19[NB_CNX_UE]; @@ -828,7 +827,7 @@ typedef struct UE_RRC_INST_s { CipheringAlgorithm_r12_t ciphering_algorithm; e_SecurityAlgorithmConfig__integrityProtAlgorithm integrity_algorithm; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// Used for Sidelink Preconfiguration DRB_ToAddModList_t *DRB_configList; #endif diff --git a/openair2/RRC/LTE/rrc_eNB.c b/openair2/RRC/LTE/rrc_eNB.c index d66f7207f1..b0b444084c 100644 --- a/openair2/RRC/LTE/rrc_eNB.c +++ b/openair2/RRC/LTE/rrc_eNB.c @@ -41,7 +41,7 @@ #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h" #include "LAYER2/RLC/rlc.h" #include "LAYER2/MAC/mac_proto.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "COMMON/mac_rrc_primitives.h" #include "RRC/LTE/MESSAGES/asn1_msg.h" #include "RRCConnectionRequest.h" @@ -61,7 +61,7 @@ #include "SL-CommConfig-r12.h" #include "PeriodicBSR-Timer-r12.h" #include "RetxBSR-Timer-r12.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "T.h" @@ -558,7 +558,7 @@ static void init_MBMS( NULL, // DRB_ToReleaseList &(RC.rrc[enb_mod_idP]->carrier[CC_id].mcch_message->pmch_InfoList_r9) -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0, 0 #endif ); @@ -674,18 +674,6 @@ rrc_eNB_get_next_free_ue_context( ctxt_pP->rnti); if (ue_context_p == NULL) { -#if 0 - RB_FOREACH(ue_context_p, rrc_ue_tree_s, &(RC.rrc[ctxt_pP->module_id]->rrc_ue_head)) { - if (ue_context_p->ue_context.random_ue_identity == ue_identityP) { - LOG_D(RRC, - PROTOCOL_RRC_CTXT_UE_FMT" Cannot create new UE context, already exist rand UE id 0x%"PRIx64", uid %u\n", - PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP), - ue_identityP, - ue_context_p->local_uid); - return NULL; - } - } -#endif ue_context_p = rrc_eNB_allocate_new_UE_context(RC.rrc[ctxt_pP->module_id]); if (ue_context_p == NULL) { @@ -713,55 +701,6 @@ rrc_eNB_get_next_free_ue_context( } } -#if 0 //!defined(ENABLE_USE_MME) -void rrc_eNB_emulation_notify_ue_module_id( - const module_id_t ue_module_idP, - const rnti_t rntiP, - const uint8_t cell_identity_byte0P, - const uint8_t cell_identity_byte1P, - const uint8_t cell_identity_byte2P, - const uint8_t cell_identity_byte3P) -{ - LOG_I(RRC, "Panos-D: rrc_eNB_emulation_notify_ue_module_id 1 \n"); - module_id_t enb_module_id; - struct rrc_eNB_ue_context_s* ue_context_p = NULL; - int CC_id; - - // find enb_module_id - for (enb_module_id = 0; enb_module_id < NUMBER_OF_eNB_MAX; enb_module_id++) { - if(enb_module_id>0){ /*FIX LATER*/ - return; - } - for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { - if (&RC.rrc[enb_module_id]->carrier[CC_id].sib1 != NULL) { - if ( - (&RC.rrc[enb_module_id]->carrier[CC_id].sib1->cellAccessRelatedInfo.cellIdentity.buf[0] == cell_identity_byte0P) && - (&RC.rrc[enb_module_id]->carrier[CC_id].sib1->cellAccessRelatedInfo.cellIdentity.buf[1] == cell_identity_byte1P) && - (&RC.rrc[enb_module_id]->carrier[CC_id].sib1->cellAccessRelatedInfo.cellIdentity.buf[2] == cell_identity_byte2P) && - (&RC.rrc[enb_module_id]->carrier[CC_id].sib1->cellAccessRelatedInfo.cellIdentity.buf[3] == cell_identity_byte3P) - ) { - ue_context_p = rrc_eNB_get_ue_context( - RC.rrc[enb_module_id], - rntiP - ); - - if (NULL != ue_context_p) { - oai_emulation.info.eNB_ue_local_uid_to_ue_module_id[enb_module_id][ue_context_p->local_uid] = ue_module_idP; - } - - //return; - } - } - } - oai_emulation.info.eNB_ue_module_id_to_rnti[enb_module_id][ue_module_idP] = rntiP; - } - - AssertFatal(enb_module_id == NUMBER_OF_eNB_MAX, - "Cell identity not found for ue module id %u rnti %x", - ue_module_idP, rntiP); -} -#endif - //----------------------------------------------------------------------------- void rrc_eNB_free_mem_UE_context( @@ -906,14 +845,10 @@ rrc_eNB_free_UE(const module_id_t enb_mod_idP,const struct rrc_eNB_ue_context_s* (void)ue_module_id; #endif rnti_t rnti = ue_context_pP->ue_context.rnti; - int i, j , CC_id, pdu_number; - LTE_eNB_ULSCH_t *ulsch = NULL; - LTE_eNB_DLSCH_t *dlsch = NULL; - nfapi_ul_config_request_body_t *ul_req_tmp = NULL; - PHY_VARS_eNB *eNB_PHY = NULL; - eNB_MAC_INST *eNB_MAC = RC.mac[enb_mod_idP]; - - AssertFatal(enb_mod_idP < NB_eNB_INST, "eNB inst invalid (%d/%d) for UE %x!", enb_mod_idP, NB_eNB_INST, rnti); + if (enb_mod_idP >= NB_eNB_INST) { + LOG_I(RRC, "eNB inst invalid (%d/%d) for UE %x!\n",enb_mod_idP, NB_eNB_INST,rnti); + return; + } /* ue_context_p = rrc_eNB_get_ue_context( &RC.rrc[enb_mod_idP], rntiP @@ -924,8 +859,9 @@ rrc_eNB_free_UE(const module_id_t enb_mod_idP,const struct rrc_eNB_ue_context_s* LOG_W(RRC, "[eNB %d] Removing UE RNTI %x\n", enb_mod_idP, rnti); #if defined(ENABLE_USE_MME) - if( ue_context_pP->ue_context.ul_failure_timer >= 8 ) { - LOG_I(RRC, "[eNB %d] S1AP_UE_CONTEXT_RELEASE_REQ RNTI %x\n", enb_mod_idP, rnti); + if((ue_context_pP->ue_context.ul_failure_timer >= 20000) && + (mac_eNB_get_rrc_status(enb_mod_idP,rnti) >= RRC_CONNECTED)) { + LOG_I(RRC, "[eNB %d] S1AP_UE_CONTEXT_RELEASE_REQ RNTI %x\n", enb_mod_idP, rnti); rrc_eNB_send_S1AP_UE_CONTEXT_RELEASE_REQ(enb_mod_idP, ue_context_pP, S1AP_CAUSE_RADIO_NETWORK, 21); // send cause 21: connection with ue lost /* From 3GPP 36300v10 p129 : 19.2.2.2.2 S1 UE Context Release Request (eNB triggered) * If the E-UTRAN internal reason is a radio link failure detected in the eNB, the eNB shall wait a sufficient time before @@ -936,57 +872,135 @@ rrc_eNB_free_UE(const module_id_t enb_mod_idP,const struct rrc_eNB_ue_context_s* return; } #endif - for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { - eNB_PHY = RC.eNB[enb_mod_idP][CC_id]; - for (i=0; iulsch[i]; - if((ulsch != NULL) && (ulsch->rnti == rnti)){ - void clean_eNb_ulsch(LTE_eNB_ULSCH_t *ulsch); - LOG_I(RRC, "clean_eNb_ulsch UE %x \n", rnti); - clean_eNb_ulsch(ulsch); - } - } - for (i=0; idlsch[i][0]; - if((dlsch != NULL) && (dlsch->rnti == rnti)){ - void clean_eNb_dlsch(LTE_eNB_DLSCH_t *dlsch); - LOG_I(RRC, "clean_eNb_dlsch UE %x \n", rnti); - clean_eNb_dlsch(dlsch); - } - } - - if (rrc_agent_registered[enb_mod_idP]) { - agent_rrc_xface[enb_mod_idP]->flexran_agent_notify_ue_state_change(enb_mod_idP, - rnti, PROTOCOL__FLEX_UE_STATE_CHANGE_TYPE__FLUESC_DEACTIVATED); - } - - for(j = 0; j < 10; j++){ - ul_req_tmp = &eNB_MAC->UL_req_tmp[CC_id][j].ul_config_request_body; - if(ul_req_tmp){ - pdu_number = ul_req_tmp->number_of_pdus; - for(int pdu_index = pdu_number-1; pdu_index >= 0; pdu_index--){ - if(ul_req_tmp->ul_config_pdu_list[pdu_index].ulsch_pdu.ulsch_pdu_rel8.rnti == rnti){ - LOG_I(RRC, "remove UE %x from ul_config_pdu_list %d/%d\n", rnti, pdu_index, pdu_number); - if(pdu_index < pdu_number -1){ - memcpy(&ul_req_tmp->ul_config_pdu_list[pdu_index], &ul_req_tmp->ul_config_pdu_list[pdu_index+1], (pdu_number-1-pdu_index) * sizeof(nfapi_ul_config_request_pdu_t)); - } - ul_req_tmp->number_of_pdus--; - } - } - } - } - } - rrc_mac_remove_ue(enb_mod_idP,rnti); - rrc_rlc_remove_ue(&ctxt); - pdcp_remove_UE(&ctxt); - - rrc_eNB_remove_ue_context( - &ctxt, - RC.rrc[enb_mod_idP], - (struct rrc_eNB_ue_context_s*) ue_context_pP); + // add UE info to freeList + LOG_I(RRC, "put UE %x into freeList\n", rnti); + put_UE_in_freelist(enb_mod_idP, rnti, 1); } } +void remove_UE_from_freelist(module_id_t mod_id, rnti_t rnti) +{ + + eNB_MAC_INST *eNB_MAC = RC.mac[mod_id]; + pthread_mutex_lock(&lock_ue_freelist); + UE_free_list_t *free_list = &eNB_MAC->UE_free_list; + free_list->UE_free_ctrl[free_list->head_freelist].rnti = 0; + free_list->head_freelist = (free_list->head_freelist + 1) % (NUMBER_OF_UE_MAX+1); + free_list->num_UEs--; + pthread_mutex_unlock(&lock_ue_freelist); +} + +void put_UE_in_freelist(module_id_t mod_id, rnti_t rnti, boolean_t removeFlag) +{ + UE_free_list_t *free_list = NULL; + eNB_MAC_INST *eNB_MAC = RC.mac[mod_id]; + pthread_mutex_lock(&lock_ue_freelist); + free_list = &eNB_MAC->UE_free_list; + free_list->UE_free_ctrl[free_list->tail_freelist].rnti = rnti; + free_list->UE_free_ctrl[free_list->tail_freelist].removeContextFlg = removeFlag; + free_list->num_UEs++; + free_list->tail_freelist = (free_list->tail_freelist + 1) % (NUMBER_OF_UE_MAX+1); + pthread_mutex_unlock(&lock_ue_freelist); +} + +void release_UE_in_freeList(module_id_t mod_id) +{ + int i, j , CC_id, pdu_number; + protocol_ctxt_t ctxt; + LTE_eNB_ULSCH_t *ulsch = NULL; + LTE_eNB_DLSCH_t *dlsch = NULL; + nfapi_ul_config_request_body_t *ul_req_tmp = NULL; + PHY_VARS_eNB *eNB_PHY = NULL; + struct rrc_eNB_ue_context_s *ue_context_pP = NULL; + eNB_MAC_INST *eNB_MAC = RC.mac[mod_id]; + boolean_t remove_UEContext; + rnti_t rnti; + int head, tail, ue_num; + + pthread_mutex_lock(&lock_ue_freelist); + head = eNB_MAC->UE_free_list.head_freelist; + tail = eNB_MAC->UE_free_list.tail_freelist; + if(head == tail){ + pthread_mutex_unlock(&lock_ue_freelist); + return; + } + if(tail < head){ + tail = head + eNB_MAC->UE_free_list.num_UEs; + } + pthread_mutex_unlock(&lock_ue_freelist); + + for(ue_num = head; ue_num < tail; ue_num++){ + ue_num = ue_num % (NUMBER_OF_UE_MAX+1); + rnti = eNB_MAC->UE_free_list.UE_free_ctrl[ue_num].rnti; + if(rnti != 0){ + remove_UEContext = eNB_MAC->UE_free_list.UE_free_ctrl[ue_num].removeContextFlg; + PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, mod_id, ENB_FLAG_YES, rnti, 0, 0,mod_id); + for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { + eNB_PHY = RC.eNB[mod_id][CC_id]; + for (i=0; iulsch[i]; + if((ulsch != NULL) && (ulsch->rnti == rnti)){ + void clean_eNb_ulsch(LTE_eNB_ULSCH_t *ulsch); + LOG_I(RRC, "clean_eNb_ulsch ulsch[%d] UE %x\n", i, rnti); + clean_eNb_ulsch(ulsch); + } + if(eNB_PHY->uci_vars[i].rnti == rnti){ + LOG_I(MAC, "clean eNb uci_vars[%d] UE %x \n",i, rnti); + memset(&eNB_PHY->uci_vars[i],0,sizeof(LTE_eNB_UCI)); + } + } + for (i=0; idlsch[i][0]; + if((dlsch != NULL) && (dlsch->rnti == rnti)){ + void clean_eNb_dlsch(LTE_eNB_DLSCH_t *dlsch); + LOG_I(RRC, "clean_eNb_dlsch dlsch[%d] UE %x \n", i, rnti); + clean_eNb_dlsch(dlsch); + } + } + + if (rrc_agent_registered[mod_id]) { + agent_rrc_xface[mod_id]->flexran_agent_notify_ue_state_change(mod_id, + rnti, PROTOCOL__FLEX_UE_STATE_CHANGE_TYPE__FLUESC_DEACTIVATED); + } + + for(j = 0; j < 10; j++){ + ul_req_tmp = &eNB_MAC->UL_req_tmp[CC_id][j].ul_config_request_body; + if(ul_req_tmp){ + pdu_number = ul_req_tmp->number_of_pdus; + for(int pdu_index = pdu_number-1; pdu_index >= 0; pdu_index--){ + if((ul_req_tmp->ul_config_pdu_list[pdu_index].ulsch_pdu.ulsch_pdu_rel8.rnti == rnti) || + (ul_req_tmp->ul_config_pdu_list[pdu_index].uci_harq_pdu.ue_information.ue_information_rel8.rnti == rnti) || + (ul_req_tmp->ul_config_pdu_list[pdu_index].uci_cqi_pdu.ue_information.ue_information_rel8.rnti == rnti) || + (ul_req_tmp->ul_config_pdu_list[pdu_index].uci_sr_pdu.ue_information.ue_information_rel8.rnti == rnti) || + (ul_req_tmp->ul_config_pdu_list[pdu_index].srs_pdu.srs_pdu_rel8.rnti == rnti)){ + LOG_I(RRC, "remove UE %x from ul_config_pdu_list %d/%d\n", rnti, pdu_index, pdu_number); + if(pdu_index < pdu_number -1){ + memcpy(&ul_req_tmp->ul_config_pdu_list[pdu_index], &ul_req_tmp->ul_config_pdu_list[pdu_index+1], (pdu_number-1-pdu_index) * sizeof(nfapi_ul_config_request_pdu_t)); + } + ul_req_tmp->number_of_pdus--; + } + } + } + } + } + rrc_mac_remove_ue(mod_id,rnti); + rrc_rlc_remove_ue(&ctxt); + pdcp_remove_UE(&ctxt); + + if(remove_UEContext){ + ue_context_pP = rrc_eNB_get_ue_context( + RC.rrc[mod_id],rnti); + if(ue_context_pP){ + rrc_eNB_remove_ue_context(&ctxt,RC.rrc[mod_id], + (struct rrc_eNB_ue_context_s*) ue_context_pP); + } + } + LOG_I(RRC, "[release_UE_in_freeList] remove UE %x from freeList\n", rnti); + remove_UE_from_freelist(mod_id, rnti); + } + } +} + //----------------------------------------------------------------------------- void rrc_eNB_process_RRCConnectionSetupComplete( @@ -1295,21 +1309,26 @@ rrc_eNB_generate_RRCConnectionReestablishment( ue_context_pP->ue_context.rnti, RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.payload_size); - LOG_I(RRC, PROTOCOL_RRC_CTXT_UE_FMT" [RAPROC] Logical Channel DL-CCCH, Generating RRCConnectionReestablishment (bytes %d)\n", PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP), RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.payload_size); - // activate release timer, if RRCComplete not received after 10 frames, remove UE - //ue_context_pP->ue_context.ue_release_timer = 1; - // remove UE after 10 frames after RRCConnectionReestablishmentRelease is triggered - //ue_context_pP->ue_context.ue_release_timer_thres = 100; - // activate release timer, if RRCComplete not received after 100 frames, remove UE int UE_id = find_UE_id(ctxt_pP->module_id, ctxt_pP->rnti); - RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer = 1; + if(UE_id != -1){ + // activate release timer, if RRCComplete not received after 100 frames, remove UE + RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer = 1; + // remove UE after 100 frames after RRCConnectionReestablishmentRelease is triggered + RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer_thres = 1000; + }else{ + LOG_E(RRC, + PROTOCOL_RRC_CTXT_UE_FMT" Generating RRCConnectionReestablishment without UE_id(MAC) rnti %x\n", + PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),ctxt_pP->rnti); + } + // activate release timer, if RRCComplete not received after 100 frames, remove UE + ue_context_pP->ue_context.ue_reestablishment_timer = 1; // remove UE after 100 frames after RRCConnectionReestablishmentRelease is triggered - RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer_thres = 1000; + ue_context_pP->ue_context.ue_reestablishment_timer_thres = 1000; } //----------------------------------------------------------------------------- @@ -1363,12 +1382,15 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete( uint8_t next_xid = rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id); ue_context_pP->ue_context.Status = RRC_CONNECTED; + ue_context_pP->ue_context.reestablishment_xid = next_xid; SRB_configList2 = &ue_context_pP->ue_context.SRB_configList2[xid]; // get old configuration of SRB2 if (*SRB_configList2 != NULL) { - LOG_D(RRC, "SRB_configList2(%p) count is %d\n SRB_configList2->list.array[0] addr is %p", + if((*SRB_configList2)->list.count!=0){ + LOG_D(RRC, "SRB_configList2(%p) count is %d\n SRB_configList2->list.array[0] addr is %p", SRB_configList2, (*SRB_configList2)->list.count, (*SRB_configList2)->list.array[0]); + } for (i = 0; (i < (*SRB_configList2)->list.count) && (i < 3); i++) { if ((*SRB_configList2)->list.array[i]->srb_Identity == 2 ){ LOG_D(RRC, "get SRB2_config from (ue_context_pP->ue_context.SRB_configList2[%d])\n", xid); @@ -1380,9 +1402,13 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete( SRB_configList2 = &ue_context_pP->ue_context.SRB_configList2[next_xid]; DRB_configList2 = &ue_context_pP->ue_context.DRB_configList2[next_xid]; - if (*SRB_configList2) { - free(*SRB_configList2); - LOG_D(RRC, "free(ue_context_pP->ue_context.SRB_configList2[%d])\n", next_xid); + if(SRB_configList2!=NULL){ + if (*SRB_configList2) { + free(*SRB_configList2); + LOG_D(RRC, "free(ue_context_pP->ue_context.SRB_configList2[%d])\n", next_xid); + } + }else{ + LOG_E(RRC, "SRB_configList2 is null\n"); } *SRB_configList2 = CALLOC(1, sizeof(**SRB_configList2)); if (SRB2_config != NULL) { @@ -1402,9 +1428,13 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete( - if (*DRB_configList2) { - free(*DRB_configList2); - LOG_D(RRC, "free(ue_context_pP->ue_context.DRB_configList2[%d])\n", next_xid); + if(DRB_configList2!=NULL){ + if (*DRB_configList2) { + free(*DRB_configList2); + LOG_D(RRC, "free(ue_context_pP->ue_context.DRB_configList2[%d])\n", next_xid); + } + }else{ + LOG_E(RRC, "DRB_configList2 is null\n"); } *DRB_configList2 = CALLOC(1, sizeof(**DRB_configList2)); @@ -1444,7 +1474,7 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete( memset(&create_tunnel_req, 0 , sizeof(create_tunnel_req)); for (j = 0, i = 0; i < NB_RB_MAX; i++) { - if (ue_context_pP->ue_context.e_rab[i].status == E_RAB_STATUS_ESTABLISHED) { + if (ue_context_pP->ue_context.e_rab[i].status == E_RAB_STATUS_ESTABLISHED || ue_context_pP->ue_context.e_rab[i].status == E_RAB_STATUS_DONE) { create_tunnel_req.eps_bearer_id[j] = ue_context_pP->ue_context.e_rab[i].param.e_rab_id; create_tunnel_req.sgw_S1u_teid[j] = ue_context_pP->ue_context.e_rab[i].param.gtp_teid; @@ -1861,74 +1891,81 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete( } #endif + if(size==65535){ + LOG_E(RRC,"RRC decode err!!! do_RRCConnectionReconfiguration\n"); + put_UE_in_freelist(ctxt_pP->module_id, reestablish_rnti, 0); + return; + }else{ + LOG_I(RRC, + "[eNB %d] Frame %d, Logical Channel DL-DCCH, Generate RRCConnectionReconfiguration (bytes %d, UE id %x)\n", + ctxt_pP->module_id, ctxt_pP->frame, size, ue_context_pP->ue_context.rnti); - LOG_I(RRC, - "[eNB %d] Frame %d, Logical Channel DL-DCCH, Generate RRCConnectionReconfiguration (bytes %d, UE id %x)\n", - ctxt_pP->module_id, ctxt_pP->frame, size, ue_context_pP->ue_context.rnti); + LOG_D(RRC, + "[FRAME %05d][RRC_eNB][MOD %u][][--- PDCP_DATA_REQ/%d Bytes (rrcConnectionReconfiguration to UE %x MUI %d) --->][PDCP][MOD %u][RB %u]\n", + ctxt_pP->frame, ctxt_pP->module_id, size, ue_context_pP->ue_context.rnti, rrc_eNB_mui, ctxt_pP->module_id, DCCH); - LOG_D(RRC, - "[FRAME %05d][RRC_eNB][MOD %u][][--- PDCP_DATA_REQ/%d Bytes (rrcConnectionReconfiguration to UE %x MUI %d) --->][PDCP][MOD %u][RB %u]\n", - ctxt_pP->frame, ctxt_pP->module_id, size, ue_context_pP->ue_context.rnti, rrc_eNB_mui, ctxt_pP->module_id, DCCH); + MSC_LOG_TX_MESSAGE( + MSC_RRC_ENB, + MSC_RRC_UE, + buffer, + size, + MSC_AS_TIME_FMT" rrcConnectionReconfiguration UE %x MUI %d size %u", + MSC_AS_TIME_ARGS(ctxt_pP), + ue_context_pP->ue_context.rnti, + rrc_eNB_mui, + size); - MSC_LOG_TX_MESSAGE( - MSC_RRC_ENB, - MSC_RRC_UE, - buffer, - size, - MSC_AS_TIME_FMT" rrcConnectionReconfiguration UE %x MUI %d size %u", - MSC_AS_TIME_ARGS(ctxt_pP), - ue_context_pP->ue_context.rnti, - rrc_eNB_mui, - size); - - rrc_data_req( - ctxt_pP, - DCCH, - rrc_eNB_mui++, - SDU_CONFIRM_NO, - size, - buffer, - PDCP_TRANSMISSION_MODE_CONTROL); - - // delete UE data of prior RNTI. UE use current RNTI. - protocol_ctxt_t ctxt_prior = *ctxt_pP; - ctxt_prior.rnti = reestablish_rnti; - - LTE_eNB_ULSCH_t *ulsch = NULL; - nfapi_ul_config_request_body_t *ul_req_tmp = NULL; - PHY_VARS_eNB *eNB_PHY = NULL; - eNB_MAC_INST *eNB_MAC = RC.mac[ctxt_prior.module_id]; - for (int CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { - eNB_PHY = RC.eNB[ctxt_prior.module_id][CC_id]; - for (int i=0; iulsch[i]; - if((ulsch != NULL) && (ulsch->rnti == ctxt_prior.rnti)){ - void clean_eNb_ulsch(LTE_eNB_ULSCH_t *ulsch); - LOG_I(RRC, "clean_eNb_ulsch UE %x \n", ctxt_prior.rnti); - clean_eNb_ulsch(ulsch); - break; - } - } - - for(int j = 0; j < 10; j++){ - ul_req_tmp = &eNB_MAC->UL_req_tmp[CC_id][j].ul_config_request_body; - if(ul_req_tmp){ - int pdu_number = ul_req_tmp->number_of_pdus; - for(int pdu_index = pdu_number-1; pdu_index >= 0; pdu_index--){ - if(ul_req_tmp->ul_config_pdu_list[pdu_index].ulsch_pdu.ulsch_pdu_rel8.rnti == ctxt_prior.rnti){ - LOG_I(RRC, "remove UE %x from ul_config_pdu_list %d/%d\n", ctxt_prior.rnti, pdu_index, pdu_number); - if(pdu_index < pdu_number -1){ - memcpy(&ul_req_tmp->ul_config_pdu_list[pdu_index], &ul_req_tmp->ul_config_pdu_list[pdu_index+1], (pdu_number-1-pdu_index) * sizeof(nfapi_ul_config_request_pdu_t)); - } - ul_req_tmp->number_of_pdus--; - } - } - } - } + rrc_data_req( + ctxt_pP, + DCCH, + rrc_eNB_mui++, + SDU_CONFIRM_NO, + size, + buffer, + PDCP_TRANSMISSION_MODE_CONTROL); } - rrc_mac_remove_ue(ctxt_prior.module_id, ctxt_prior.rnti); - rrc_rlc_remove_ue(&ctxt_prior); - pdcp_remove_UE(&ctxt_prior); + // delete UE data of prior RNTI. UE use current RNTI. +// protocol_ctxt_t ctxt_prior = *ctxt_pP; +// ctxt_prior.rnti = reestablish_rnti; +// +// LTE_eNB_ULSCH_t *ulsch = NULL; +// nfapi_ul_config_request_body_t *ul_req_tmp = NULL; +// PHY_VARS_eNB *eNB_PHY = NULL; +// eNB_MAC_INST *eNB_MAC = RC.mac[ctxt_prior.module_id]; +// for (int CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { +// eNB_PHY = RC.eNB[ctxt_prior.module_id][CC_id]; +// for (int i=0; iulsch[i]; +// if((ulsch != NULL) && (ulsch->rnti == ctxt_prior.rnti)){ +// void clean_eNb_ulsch(LTE_eNB_ULSCH_t *ulsch); +// LOG_I(RRC, "clean_eNb_ulsch UE %x \n", ctxt_prior.rnti); +// clean_eNb_ulsch(ulsch); +// break; +// } +// } +// +// for(int j = 0; j < 10; j++){ +// ul_req_tmp = &eNB_MAC->UL_req_tmp[CC_id][j].ul_config_request_body; +// if(ul_req_tmp){ +// int pdu_number = ul_req_tmp->number_of_pdus; +// for(int pdu_index = pdu_number-1; pdu_index >= 0; pdu_index--){ +// if(ul_req_tmp->ul_config_pdu_list[pdu_index].ulsch_pdu.ulsch_pdu_rel8.rnti == ctxt_prior.rnti){ +// LOG_I(RRC, "remove UE %x from ul_config_pdu_list %d/%d\n", ctxt_prior.rnti, pdu_index, pdu_number); +// if(pdu_index < pdu_number -1){ +// memcpy(&ul_req_tmp->ul_config_pdu_list[pdu_index], &ul_req_tmp->ul_config_pdu_list[pdu_index+1], (pdu_number-1-pdu_index) * sizeof(nfapi_ul_config_request_pdu_t)); +// } +// ul_req_tmp->number_of_pdus--; +// } +// } +// } +// } +// } +// rrc_mac_remove_ue(ctxt_prior.module_id, ctxt_prior.rnti); +// rrc_rlc_remove_ue(&ctxt_prior); +// pdcp_remove_UE(&ctxt_prior); + // add UE info to freeList for RU_thread to remove the UE instead of remove it here + LOG_I(RRC, "[RRCConnectionReestablishment]put UE %x into freeList\n", reestablish_rnti); + put_UE_in_freelist(ctxt_pP->module_id, reestablish_rnti, 0); } //----------------------------------------------------------------------------- @@ -1944,8 +1981,14 @@ rrc_eNB_generate_RRCConnectionReestablishmentReject( int cnt; #endif int UE_id = find_UE_id(ctxt_pP->module_id, ctxt_pP->rnti); - RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer = 1; - RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer_thres = 20; + if(UE_id != -1){ + RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer = 1; + RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer_thres = 20; + }else{ + LOG_E(RRC, + PROTOCOL_RRC_CTXT_UE_FMT" Generating RRCConnectionReestablishmentReject without UE_id(MAC) rnti %x\n", + PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),ctxt_pP->rnti); + } T(T_ENB_RRC_CONNECTION_REESTABLISHMENT_REJECT, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame), T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti)); @@ -1996,19 +2039,18 @@ rrc_eNB_generate_RRCConnectionRelease( T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti)); memset(buffer, 0, RRC_BUF_SIZE); - size = do_RRCConnectionRelease(ctxt_pP->module_id, buffer,rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id)); // set release timer //ue_context_pP->ue_context.ue_release_timer=1; // remove UE after 10 frames after RRCConnectionRelease is triggered //ue_context_pP->ue_context.ue_release_timer_thres=100; // set release timer - ue_context_pP->ue_context.ue_release_timer_rrc = 1; +// ue_context_pP->ue_context.ue_release_timer_rrc = 1; // remove UE after 10 frames after RRCConnectionRelease is triggered - ue_context_pP->ue_context.ue_release_timer_thres_rrc = 100; +// ue_context_pP->ue_context.ue_release_timer_thres_rrc = 100; ue_context_pP->ue_context.ue_reestablishment_timer = 0; ue_context_pP->ue_context.ue_release_timer = 0; - ue_context_pP->ue_context.ue_release_timer_s1 = 0; + //ue_context_pP->ue_context.ue_release_timer_s1 = 0; LOG_I(RRC, PROTOCOL_RRC_CTXT_UE_FMT" Logical Channel DL-DCCH, Generate RRCConnectionRelease (bytes %d)\n", PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP), @@ -2031,7 +2073,23 @@ rrc_eNB_generate_RRCConnectionRelease( ue_context_pP->ue_context.rnti, rrc_eNB_mui, size); - + pthread_mutex_lock(&rrc_release_freelist); + for(uint16_t release_num = 0;release_num < NUMBER_OF_UE_MAX;release_num++){ + if(rrc_release_info.RRC_release_ctrl[release_num].flag == 0){ + if(ue_context_pP->ue_context.ue_release_timer_s1 > 0){ + rrc_release_info.RRC_release_ctrl[release_num].flag = 1; + }else{ + rrc_release_info.RRC_release_ctrl[release_num].flag = 2; + } + rrc_release_info.RRC_release_ctrl[release_num].rnti = ctxt_pP->rnti; + rrc_release_info.RRC_release_ctrl[release_num].rrc_eNB_mui = rrc_eNB_mui; + rrc_release_info.num_UEs++; + LOG_D(RRC,"Generate DLSCH Release send: index %d rnti %x mui %d flag %d \n",release_num, + ctxt_pP->rnti, rrc_eNB_mui,rrc_release_info.RRC_release_ctrl[release_num].flag); + break; + } + } + pthread_mutex_unlock(&rrc_release_freelist); rrc_data_req( ctxt_pP, DCCH, @@ -4282,7 +4340,7 @@ rrc_eNB_generate_HandoverPreparationInformation( ue_context_target_p = rrc_eNB_allocate_new_UE_context(RC.rrc[ctxt_pP->module_id]); ue_context_target_p->ue_id_rnti = ue_context_pP->ue_context.rnti; // LG: should not be the same ue_context_target_p->ue_context.rnti = ue_context_target_p->ue_id_rnti; // idem - LOG_N(RRC, + LOG_I(RRC, "[eNB %d] Frame %d : Emulate sending HandoverPreparationInformation msg from eNB source %d to eNB target %ld: source UE_id %x target UE_id %x source_modId: %d target_modId: %d\n", ctxt_pP->module_id, ctxt_pP->frame, @@ -4386,11 +4444,16 @@ check_handovers( ue_context_p->ue_context.handover_info->size, ue_context_p->ue_context.handover_info->buf, PDCP_TRANSMISSION_MODE_CONTROL -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,NULL, NULL #endif ); - AssertFatal(result == TRUE, "PDCP data request failed!\n"); + //AssertFatal(result == TRUE, "PDCP data request failed!\n"); + if(result != TRUE) + { + LOG_I(RRC, "PDCP data request failed!\n"); + return; + } ue_context_p->ue_context.handover_info->ho_complete = 0xF2; } } @@ -4413,7 +4476,6 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover( uint8_t buffer[RRC_BUF_SIZE]; - uint16_t size; int i; uint8_t rv[2]; uint16_t Idx; @@ -5224,7 +5286,7 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover( // rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->reportConfigToAddModList = ReportConfig_list; memset(buffer, 0, RRC_BUF_SIZE); - size = do_RRCConnectionReconfiguration( + int size=do_RRCConnectionReconfiguration( ctxt_pP, buffer, rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id), //Transaction_id, @@ -5250,7 +5312,11 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover( , NULL // SCellToAddMod_r10_t #endif ); - + if (size <= 0) + LOG_E(RRC, + "[eNB %d] Frame %d, Logical Channel DL-DCCH, Generate RRCConnectionReconfiguration for handover (bytes %d, UE rnti %x) failed\n", + ctxt_pP->module_id, ctxt_pP->frame, size, ue_context_pP->ue_context.rnti); + else LOG_I(RRC, "[eNB %d] Frame %d, Logical Channel DL-DCCH, Generate RRCConnectionReconfiguration for handover (bytes %d, UE rnti %x)\n", ctxt_pP->module_id, ctxt_pP->frame, size, ue_context_pP->ue_context.rnti); @@ -5776,9 +5842,6 @@ rrc_eNB_generate_RRCConnectionSetup( PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP), RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.payload_size); - // activate release timer, if RRCSetupComplete not received after 10 frames, remove UE - //ue_context_pP->ue_context.ue_release_timer=1; - // remove UE after 10 frames after RRCConnectionRelease is triggered //ue_context_pP->ue_context.ue_release_timer_thres=100; // activate release timer, if RRCSetupComplete not received after 100 frames, remove UE ue_context_pP->ue_context.ue_release_timer=1; @@ -6128,26 +6191,57 @@ rrc_eNB_decode_ccch( break; } int UE_id = find_UE_id(ctxt_pP->module_id, c_rnti); - if(ue_context_p->ue_context.ue_reestablishment_timer > 0 || RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer > 0){ - LOG_I(RRC, - PROTOCOL_RRC_CTXT_UE_FMT" RRCConnectionReestablishment(Previous) don't complete, let's reject the UE\n", - PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP)); + if(UE_id == -1){ + LOG_E(RRC, + PROTOCOL_RRC_CTXT_UE_FMT" RRCConnectionReestablishmentRequest without UE_id(MAC) rnti %x, let's reject the UE\n", + PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),c_rnti); rrc_eNB_generate_RRCConnectionReestablishmentReject(ctxt_pP, ue_context_p, CC_id); break; } + + if((RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer > 0) && + (RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer_thres > 20)){ + LOG_E(RRC, + PROTOCOL_RRC_CTXT_UE_FMT" RCConnectionReestablishmentComplete(Previous) don't receive, delete the Previous UE\n", + PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP)); + RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer = 1000; + ue_context_p->ue_context.ue_reestablishment_timer = 0; + } + + if(ue_context_p->ue_context.ue_reestablishment_timer > 0){ + LOG_E(RRC, + PROTOCOL_RRC_CTXT_UE_FMT" RRRCConnectionReconfigurationComplete(Previous) don't receive, delete the Previous UE\n", + PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP)); + ue_context_p->ue_context.Status = RRC_RECONFIGURED; + protocol_ctxt_t ctxt_old_p; + PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt_old_p, + ctxt_pP->instance, + ENB_FLAG_YES, + c_rnti, + ctxt_pP->frame, + ctxt_pP->subframe); + rrc_eNB_process_RRCConnectionReconfigurationComplete(&ctxt_old_p, + ue_context_p, + ue_context_p->ue_context.reestablishment_xid); + for (uint8_t e_rab = 0; e_rab < ue_context_p->ue_context.nb_of_e_rabs; e_rab++) { + if (ue_context_p->ue_context.e_rab[e_rab].status == E_RAB_STATUS_DONE) { + ue_context_p->ue_context.e_rab[e_rab].status = E_RAB_STATUS_ESTABLISHED; + } else { + ue_context_p->ue_context.e_rab[e_rab].status = E_RAB_STATUS_FAILED; + } + } + } LOG_D(RRC, PROTOCOL_RRC_CTXT_UE_FMT" UE context: %p\n", PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP), ue_context_p); + /* reset timers */ ue_context_p->ue_context.ul_failure_timer = 0; ue_context_p->ue_context.ue_release_timer = 0; ue_context_p->ue_context.ue_reestablishment_timer = 0; ue_context_p->ue_context.ue_release_timer_s1 = 0; ue_context_p->ue_context.ue_release_timer_rrc = 0; - - /* reset timers */ - ue_context_p->ue_context.ul_failure_timer = 0; - ue_context_p->ue_context.ue_release_timer = 0; + ue_context_p->ue_context.reestablishment_xid = -1; // insert C-RNTI to map for (i = 0; i < MAX_MOBILES_PER_ENB; i++) { @@ -6275,26 +6369,18 @@ rrc_eNB_decode_ccch( rrcConnectionRequest = &ul_ccch_msg->message.choice.c1.choice.rrcConnectionRequest.criticalExtensions.choice.rrcConnectionRequest_r8; { if (InitialUE_Identity_PR_randomValue == rrcConnectionRequest->ue_Identity.present) { - AssertFatal(rrcConnectionRequest->ue_Identity.choice.randomValue.size == 5, - "wrong InitialUE-Identity randomValue size, expected 5, provided %d", - rrcConnectionRequest->ue_Identity.choice.randomValue.size); + if(rrcConnectionRequest->ue_Identity.choice.randomValue.size != 5) + { + LOG_I(RRC, "wrong InitialUE-Identity randomValue size, expected 5, provided %lu", + (long unsigned int)rrcConnectionRequest->ue_Identity.choice.randomValue.size); + return -1; + } memcpy(((uint8_t*) & random_value) + 3, rrcConnectionRequest->ue_Identity.choice.randomValue.buf, rrcConnectionRequest->ue_Identity.choice.randomValue.size); /* if there is already a registered UE (with another RNTI) with this random_value, * the current one must be removed from MAC/PHY (zombie UE) */ -#if 0 - if ((ue_context_p = rrc_eNB_ue_context_random_exist(ctxt_pP, random_value))) { - LOG_W(RRC, "new UE rnti %x (coming with random value) is already there as UE %x, removing %x from MAC/PHY\n", - ctxt_pP->rnti, ue_context_p->ue_context.rnti, ctxt_pP->rnti); - rrc_mac_remove_ue(ctxt_pP->module_id, ctxt_pP->rnti); - ue_context_p = NULL; - return 0; - } else { - ue_context_p = rrc_eNB_get_next_free_ue_context(ctxt_pP, random_value); - } -#endif if ((ue_context_p = rrc_eNB_ue_context_random_exist(ctxt_pP, random_value))) { LOG_W(RRC, "new UE rnti %x (coming with random value) is already there as UE %x, removing %x from MAC/PHY\n", ctxt_pP->rnti, ue_context_p->ue_context.rnti, ue_context_p->ue_context.rnti); @@ -6324,6 +6410,7 @@ rrc_eNB_decode_ccch( ue_context_p->ue_context.ue_reestablishment_timer = 0; ue_context_p->ue_context.ue_release_timer_s1 = 0; ue_context_p->ue_context.ue_release_timer_rrc = 0; + ue_context_p->ue_context.reestablishment_xid = -1; } else { LOG_I(RRC," S-TMSI doesn't exist, setting Initialue_identity_s_TMSI.m_tmsi to %p => %x\n",ue_context_p,m_tmsi); // ue_context_p = rrc_eNB_get_next_free_ue_context(ctxt_pP, NOT_A_RANDOM_UE_IDENTITY); @@ -6603,6 +6690,11 @@ rrc_eNB_decode_dcch( break; case UL_DCCH_MessageType__c1_PR_measurementReport: + // to avoid segmentation fault + if(!ue_context_p){ + LOG_I(RRC, "Processing measurementReport UE %x, ue_context_p is NULL\n", ctxt_pP->rnti); + break; + } LOG_D(RRC, PROTOCOL_RRC_CTXT_UE_FMT" RLC RB %02d --- RLC_DATA_IND " "%d bytes (measurementReport) ---> RRC_eNB\n", @@ -6617,6 +6709,11 @@ rrc_eNB_decode_dcch( break; case UL_DCCH_MessageType__c1_PR_rrcConnectionReconfigurationComplete: + // to avoid segmentation fault + if(!ue_context_p){ + LOG_I(RRC, "Processing RRCConnectionReconfigurationComplete UE %x, ue_context_p is NULL\n", ctxt_pP->rnti); + break; + } #ifdef RRC_MSG_PRINT LOG_F(RRC,"[MSG] RRC Connection Reconfiguration Complete\n"); @@ -6647,18 +6744,44 @@ rrc_eNB_decode_dcch( present == RRCConnectionReconfigurationComplete__criticalExtensions_PR_rrcConnectionReconfigurationComplete_r8) { /*NN: revise the condition */ + /*FK: left the condition as is for the case MME is used (S1 mode) but setting dedicated_DRB = 1 otherwise (noS1 mode) so that no second RRCReconfiguration message activationg more DRB is sent as this causes problems with the nasmesh driver.*/ +#if defined(ENABLE_USE_MME) if (ue_context_p->ue_context.Status == RRC_RECONFIGURED){ dedicated_DRB = 1; LOG_I(RRC, PROTOCOL_RRC_CTXT_UE_FMT" UE State = RRC_RECONFIGURED (dedicated DRB, xid %ld)\n", PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.rrc_TransactionIdentifier); - }else { + //clear + int16_t UE_id = find_UE_id(ctxt_pP->module_id, ctxt_pP->rnti); + if(UE_id == -1){ + LOG_E(RRC, + PROTOCOL_RRC_CTXT_UE_FMT" RRCConnectionReconfigurationComplete without rnti %x, fault\n", + PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),ctxt_pP->rnti); + break; + } + if(RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].crnti_reconfigurationcomplete_flag == 1){ + LOG_I(RRC, + PROTOCOL_RRC_CTXT_UE_FMT" UE State = RRC_RECONFIGURED (dedicated DRB, xid %ld) C-RNTI Complete\n", + PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.rrc_TransactionIdentifier); + dedicated_DRB = 2; + RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].crnti_reconfigurationcomplete_flag = 0; + } + } else { dedicated_DRB = 0; ue_context_p->ue_context.Status = RRC_RECONFIGURED; - LOG_I(RRC, - PROTOCOL_RRC_CTXT_UE_FMT" UE State = RRC_RECONFIGURED (default DRB, xid %ld)\n", - PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.rrc_TransactionIdentifier); + LOG_I(RRC, + PROTOCOL_RRC_CTXT_UE_FMT" UE State = RRC_RECONFIGURED (default DRB, xid %ld)\n", + PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.rrc_TransactionIdentifier); } + ue_context_p->ue_context.reestablishment_xid = -1; +#else + dedicated_DRB = 1; + ue_context_p->ue_context.Status = RRC_RECONFIGURED; + LOG_I(RRC, + PROTOCOL_RRC_CTXT_UE_FMT" UE State = RRC_RECONFIGURED (dedicated DRB, xid %ld)\n", + PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.rrc_TransactionIdentifier); +#endif + rrc_eNB_process_RRCConnectionReconfigurationComplete( ctxt_pP, ue_context_p, @@ -6715,7 +6838,7 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) { ue_context_p, ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.rrc_TransactionIdentifier); } - }else { + }else if(dedicated_DRB == 0){ if(ue_context_p->ue_context.reestablishment_cause == ReestablishmentCause_spare1){ rrc_eNB_send_S1AP_INITIAL_CONTEXT_SETUP_RESP(ctxt_pP, ue_context_p); @@ -6729,7 +6852,15 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) { } } } - } + }else if(dedicated_DRB == 2){ + for (uint8_t e_rab = 0; e_rab < ue_context_p->ue_context.nb_of_e_rabs; e_rab++) { + if (ue_context_p->ue_context.e_rab[e_rab].status == E_RAB_STATUS_DONE) { + ue_context_p->ue_context.e_rab[e_rab].status = E_RAB_STATUS_ESTABLISHED; + } else { + ue_context_p->ue_context.e_rab[e_rab].status = E_RAB_STATUS_FAILED; + } + } + } } #else // establish a dedicated bearer if (dedicated_DRB == 0 ) { @@ -6772,8 +6903,6 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) { DCCH, sdu_sizeP); { - int UE_id = find_UE_id(ctxt_pP->module_id, ctxt_pP->rnti); - RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer = 0; rnti_t reestablish_rnti = 0; // select C-RNTI from map for (i = 0; i < MAX_MOBILES_PER_ENB; i++) { @@ -6797,6 +6926,16 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) { PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP)); break; } + //clear + int UE_id = find_UE_id(ctxt_pP->module_id, ctxt_pP->rnti); + if(UE_id == -1){ + LOG_E(RRC, + PROTOCOL_RRC_CTXT_UE_FMT" RRCConnectionReestablishmentComplete without UE_id(MAC) rnti %x, fault\n", + PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),ctxt_pP->rnti); + break; + } + RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer = 0; + ue_context_p->ue_context.ue_reestablishment_timer = 0; if (ul_dcch_msg->message.choice.c1.choice.rrcConnectionReestablishmentComplete.criticalExtensions.present == RRCConnectionReestablishmentComplete__criticalExtensions_PR_rrcConnectionReestablishmentComplete_r8) { @@ -6819,6 +6958,11 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) { break; case UL_DCCH_MessageType__c1_PR_rrcConnectionSetupComplete: + // to avoid segmentation fault + if(!ue_context_p){ + LOG_I(RRC, "Processing RRCConnectionSetupComplete UE %x, ue_context_p is NULL\n", ctxt_pP->rnti); + break; + } #ifdef RRC_MSG_PRINT LOG_F(RRC,"[MSG] RRC Connection SetupComplete\n"); @@ -6874,7 +7018,11 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) { case UL_DCCH_MessageType__c1_PR_securityModeComplete: T(T_ENB_RRC_SECURITY_MODE_COMPLETE, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame), T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti)); - + // to avoid segmentation fault + if(!ue_context_p){ + LOG_I(RRC, "Processing securityModeComplete UE %x, ue_context_p is NULL\n", ctxt_pP->rnti); + break; + } #ifdef RRC_MSG_PRINT LOG_F(RRC,"[MSG] RRC Security Mode Complete\n"); @@ -6959,7 +7107,11 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) { case UL_DCCH_MessageType__c1_PR_ueCapabilityInformation: T(T_ENB_RRC_UE_CAPABILITY_INFORMATION, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame), T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti)); - + // to avoid segmentation fault + if(!ue_context_p){ + LOG_I(RRC, "Processing ueCapabilityInformation UE %x, ue_context_p is NULL\n", ctxt_pP->rnti); + break; + } #ifdef RRC_MSG_PRINT LOG_F(RRC,"[MSG] RRC UECapablility Information \n"); @@ -6996,8 +7148,8 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) { LOG_I(RRC, "got UE capabilities for UE %x\n", ctxt_pP->rnti); if (ue_context_p->ue_context.UE_Capability) { LOG_I(RRC, "freeing old UE capabilities for UE %x\n", ctxt_pP->rnti); - asn_DEF_UE_EUTRA_Capability.free_struct(&asn_DEF_UE_EUTRA_Capability, - ue_context_p->ue_context.UE_Capability, 0); + ASN_STRUCT_FREE(asn_DEF_UE_EUTRA_Capability, + ue_context_p->ue_context.UE_Capability); ue_context_p->ue_context.UE_Capability = 0; } dec_rval = uper_decode(NULL, @@ -7017,8 +7169,8 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) { LOG_E(RRC, PROTOCOL_RRC_CTXT_UE_FMT" Failed to decode UE capabilities (%zu bytes)\n", PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP), dec_rval.consumed); - asn_DEF_UE_EUTRA_Capability.free_struct(&asn_DEF_UE_EUTRA_Capability, - ue_context_p->ue_context.UE_Capability, 0); + ASN_STRUCT_FREE(asn_DEF_UE_EUTRA_Capability, + ue_context_p->ue_context.UE_Capability); ue_context_p->ue_context.UE_Capability = 0; } @@ -7053,6 +7205,11 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) { case UL_DCCH_MessageType__c1_PR_ulInformationTransfer: T(T_ENB_RRC_UL_INFORMATION_TRANSFER, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame), T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti)); + // to avoid segmentation fault + if(!ue_context_p){ + LOG_I(RRC, "Processing ulInformationTransfer UE %x, ue_context_p is NULL\n", ctxt_pP->rnti); + break; + } LOG_D(RRC,"[MSG] RRC UL Information Transfer \n"); #ifdef RRC_MSG_PRINT @@ -7246,6 +7403,10 @@ rrc_enb_task( int CC_id; protocol_ctxt_t ctxt; + + pthread_mutex_init(&lock_ue_freelist, NULL); + pthread_mutex_init(&rrc_release_freelist, NULL); + memset(&rrc_release_info,0,sizeof(RRC_release_list_t)); itti_mark_task_ready(TASK_RRC_ENB); LOG_I(RRC,"Entering main loop of RRC message task\n"); while (1) { @@ -7283,9 +7444,10 @@ rrc_enb_task( LOG_I(RRC,"Decoding CCCH : inst %d, CC_id %d, ctxt %p, sib_info_p->Rx_buffer.payload_size %d\n", instance,CC_id,&ctxt, RRC_MAC_CCCH_DATA_IND(msg_p).sdu_size); - AssertFatal(RRC_MAC_CCCH_DATA_IND(msg_p).sdu_size < RRC_BUFFER_SIZE_MAX, - "CCCH message has size %d > %d\n", - RRC_MAC_CCCH_DATA_IND(msg_p).sdu_size,RRC_BUFFER_SIZE_MAX); + if (RRC_MAC_CCCH_DATA_IND(msg_p).sdu_size >= RRC_BUFFER_SIZE_MAX) { + LOG_I(RRC, "CCCH message has size %d > %d\n",RRC_MAC_CCCH_DATA_IND(msg_p).sdu_size,RRC_BUFFER_SIZE_MAX); + break; + } memcpy(srb_info_p->Rx_buffer.Payload, RRC_MAC_CCCH_DATA_IND(msg_p).sdu, RRC_MAC_CCCH_DATA_IND(msg_p).sdu_size); @@ -7313,7 +7475,10 @@ rrc_enb_task( // Message buffer has been processed, free it now. result = itti_free(ITTI_MSG_ORIGIN_ID(msg_p), RRC_DCCH_DATA_IND(msg_p).sdu_p); - AssertFatal(result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result); + if (result != EXIT_SUCCESS) { + LOG_I(RRC, "Failed to free memory (%d)!\n",result); + break; + } break; # if defined(ENABLE_USE_MME) @@ -7361,8 +7526,8 @@ rrc_enb_task( /* Nothing to do. Apparently everything is done in S1AP processing */ //LOG_I(RRC, "[eNB %d] Received message %s, not processed because procedure not synched\n", //instance, msg_name_p); - if (rrc_eNB_get_ue_context(RC.rrc[instance], GTPV1U_ENB_DELETE_TUNNEL_RESP(msg_p).rnti) - && rrc_eNB_get_ue_context(RC.rrc[instance], GTPV1U_ENB_DELETE_TUNNEL_RESP(msg_p).rnti)->ue_context.ue_release_timer_rrc > 0) { + if (rrc_eNB_get_ue_context(RC.rrc[instance], GTPV1U_ENB_DELETE_TUNNEL_RESP(msg_p).rnti) + && rrc_eNB_get_ue_context(RC.rrc[instance], GTPV1U_ENB_DELETE_TUNNEL_RESP(msg_p).rnti)->ue_context.ue_release_timer_rrc > 0) { rrc_eNB_get_ue_context(RC.rrc[instance], GTPV1U_ENB_DELETE_TUNNEL_RESP(msg_p).rnti)->ue_context.ue_release_timer_rrc = rrc_eNB_get_ue_context(RC.rrc[instance], GTPV1U_ENB_DELETE_TUNNEL_RESP(msg_p).rnti)->ue_context.ue_release_timer_thres_rrc; } @@ -7382,7 +7547,10 @@ rrc_enb_task( } result = itti_free(ITTI_MSG_ORIGIN_ID(msg_p), msg_p); - AssertFatal(result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result); + if (result != EXIT_SUCCESS) { + LOG_I(RRC, "Failed to free memory (%d)!\n",result); + continue; + } msg_p = NULL; } } @@ -7458,7 +7626,6 @@ rrc_eNB_process_SidelinkUEInformation( { SL_DestinationInfoList_r12_t *destinationInfoList; int n_destinations = 0; - int ue_type = 0; int n_discoveryMessages = 0; LOG_I(RRC, @@ -7506,7 +7673,6 @@ rrc_eNB_process_SidelinkUEInformation( if ((sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension != NULL) &&(sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->commTxResourceReqRelayUC_r13 != NULL)) { if (sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->commTxResourceReqRelayUC_r13->destinationInfoList_r12.list.count > 0) { n_destinations = sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->commTxResourceReqRelayUC_r13->destinationInfoList_r12.list.count; - ue_type = sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->ue_Type_r13; destinationInfoList = CALLOC(1, sizeof(SL_DestinationInfoList_r12_t)); for (int i=0; i< n_destinations; i++ ){ //sl_DestinationIdentityList[i] = *(sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->commTxResourceReqRelayUC_r13->destinationInfoList_r12.list.array[i]); @@ -7522,7 +7688,6 @@ rrc_eNB_process_SidelinkUEInformation( if ((sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension != NULL) && (sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13 != NULL)) { if (sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->commTxResourceReqRelay_r13->destinationInfoList_r12.list.count > 0){ n_destinations = sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->commTxResourceReqRelay_r13->destinationInfoList_r12.list.count; - ue_type = sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->ue_Type_r13; destinationInfoList = CALLOC(1, sizeof(SL_DestinationInfoList_r12_t)); for (int i=0; i< n_destinations; i++ ){ //sl_DestinationIdentityList[i] = *(sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->commTxResourceReqRelay_r13->destinationInfoList_r12.list.array[i]); @@ -7595,7 +7760,7 @@ rrc_eNB_generate_RRCConnectionReconfiguration_Sidelink( (struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList*)NULL, (SL_CommConfig_r12_t*)&sl_CommConfig, (SL_DiscConfig_r12_t*)NULL - #if defined(Rel10) || defined(Rel14) + #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) , (SCellToAddMod_r10_t*)NULL #endif ); @@ -7618,7 +7783,7 @@ rrc_eNB_generate_RRCConnectionReconfiguration_Sidelink( (struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList*)NULL, (SL_CommConfig_r12_t*)NULL, (SL_DiscConfig_r12_t*)&sl_DiscConfig - #if defined(Rel10) || defined(Rel14) + #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) , (SCellToAddMod_r10_t*)NULL #endif ); @@ -7747,6 +7912,7 @@ rrc_rx_tx( // check for UL failure RB_FOREACH(ue_context_p, rrc_ue_tree_s, &(RC.rrc[ctxt_pP->module_id]->rrc_ue_head)) { + ctxt_pP->rnti = ue_context_p->ue_id_rnti; if ((ctxt_pP->frame == 0) && (ctxt_pP->subframe==0)) { if (ue_context_p->ue_context.Initialue_identity_s_TMSI.presence == TRUE) { LOG_I(RRC,"UE rnti %x:S-TMSI %x failure timer %d/8\n", @@ -7762,7 +7928,7 @@ rrc_rx_tx( } if (ue_context_p->ue_context.ul_failure_timer>0) { ue_context_p->ue_context.ul_failure_timer++; - if (ue_context_p->ue_context.ul_failure_timer >= 8) { + if (ue_context_p->ue_context.ul_failure_timer >= 20000) { // remove UE after 20 seconds after MAC has indicated UL failure LOG_I(RRC,"Removing UE %x instance\n",ue_context_p->ue_context.rnti); ue_to_be_removed = ue_context_p; @@ -7775,7 +7941,15 @@ rrc_rx_tx( ue_context_p->ue_context.ue_release_timer_thres_s1) { LOG_I(RRC,"Removing UE %x instance Because of UE_CONTEXT_RELEASE_COMMAND not received after %d ms from sending request\n", ue_context_p->ue_context.rnti, ue_context_p->ue_context.ue_release_timer_thres_s1); +// ue_context_p->ue_context.ue_release_timer_s1 = 0; +#if defined(ENABLE_USE_MME) +#if defined(ENABLE_ITTI) + rrc_eNB_generate_RRCConnectionRelease(ctxt_pP, ue_context_p); +#endif +#else ue_to_be_removed = ue_context_p; +#endif + ue_context_p->ue_context.ue_release_timer_s1 = 0; break; } } @@ -7785,10 +7959,75 @@ rrc_rx_tx( if (ue_context_p->ue_context.ue_release_timer_rrc >= ue_context_p->ue_context.ue_release_timer_thres_rrc) { LOG_I(RRC,"Removing UE %x instance After UE_CONTEXT_RELEASE_Complete\n", ue_context_p->ue_context.rnti); + ue_context_p->ue_context.ue_release_timer_rrc = 0; ue_to_be_removed = ue_context_p; + ue_context_p->ue_context.ue_release_timer_rrc = 0; break; } } + pthread_mutex_lock(&rrc_release_freelist); + if(rrc_release_info.num_UEs > 0){ + uint16_t release_total = 0; + for(uint16_t release_num = 0;release_num < NUMBER_OF_UE_MAX;release_num++){ + if(rrc_release_info.RRC_release_ctrl[release_num].flag > 0){ + release_total++; + } + if( (rrc_release_info.RRC_release_ctrl[release_num].flag > 2) && + (rrc_release_info.RRC_release_ctrl[release_num].rnti == ue_context_p->ue_context.rnti)){ + ue_context_p->ue_context.ue_release_timer_rrc = 1; + ue_context_p->ue_context.ue_release_timer_thres_rrc = 100; +#if defined(ENABLE_USE_MME) +#if defined(ENABLE_ITTI) + int e_rab; + MessageDef *msg_complete_p = NULL; + MessageDef *msg_delete_tunnels_p = NULL; + uint32_t eNB_ue_s1ap_id = ue_context_p->ue_context.eNB_ue_s1ap_id; + if(rrc_release_info.RRC_release_ctrl[release_num].flag == 4){ + MSC_LOG_TX_MESSAGE( + MSC_RRC_ENB, + MSC_S1AP_ENB, + NULL,0, + "0 S1AP_UE_CONTEXT_RELEASE_COMPLETE eNB_ue_s1ap_id 0x%06"PRIX32" ", + eNB_ue_s1ap_id); + msg_complete_p = itti_alloc_new_message(TASK_RRC_ENB, S1AP_UE_CONTEXT_RELEASE_COMPLETE); + S1AP_UE_CONTEXT_RELEASE_COMPLETE(msg_complete_p).eNB_ue_s1ap_id = eNB_ue_s1ap_id; + itti_send_msg_to_task(TASK_S1AP, ctxt_pP->module_id, msg_complete_p); + } + MSC_LOG_TX_MESSAGE(MSC_RRC_ENB, MSC_GTPU_ENB, NULL,0, "0 GTPV1U_ENB_DELETE_TUNNEL_REQ rnti %x ", eNB_ue_s1ap_id); + msg_delete_tunnels_p = itti_alloc_new_message(TASK_RRC_ENB, GTPV1U_ENB_DELETE_TUNNEL_REQ); + memset(>PV1U_ENB_DELETE_TUNNEL_REQ(msg_delete_tunnels_p), 0, sizeof(GTPV1U_ENB_DELETE_TUNNEL_REQ(msg_delete_tunnels_p))); + // do not wait response + GTPV1U_ENB_DELETE_TUNNEL_REQ(msg_delete_tunnels_p).rnti = ue_context_p->ue_context.rnti; + for (e_rab = 0; e_rab < ue_context_p->ue_context.nb_of_e_rabs; e_rab++) { + GTPV1U_ENB_DELETE_TUNNEL_REQ(msg_delete_tunnels_p).eps_bearer_id[GTPV1U_ENB_DELETE_TUNNEL_REQ(msg_delete_tunnels_p).num_erab++] = + ue_context_p->ue_context.enb_gtp_ebi[e_rab]; + // erase data + ue_context_p->ue_context.enb_gtp_teid[e_rab] = 0; + memset(&ue_context_p->ue_context.enb_gtp_addrs[e_rab], 0, sizeof(ue_context_p->ue_context.enb_gtp_addrs[e_rab])); + ue_context_p->ue_context.enb_gtp_ebi[e_rab] = 0; + } + itti_send_msg_to_task(TASK_GTPV1_U, ctxt_pP->module_id, msg_delete_tunnels_p); + struct rrc_ue_s1ap_ids_s *rrc_ue_s1ap_ids = NULL; + rrc_ue_s1ap_ids = rrc_eNB_S1AP_get_ue_ids( + RC.rrc[ctxt_pP->module_id], + 0, + eNB_ue_s1ap_id); + if (NULL != rrc_ue_s1ap_ids) { + rrc_eNB_S1AP_remove_ue_ids( + RC.rrc[ctxt_pP->module_id], + rrc_ue_s1ap_ids); + } +#endif +#endif + rrc_release_info.RRC_release_ctrl[release_num].flag = 0; + rrc_release_info.num_UEs--; + break; + } + if(release_total >= rrc_release_info.num_UEs) + break; + } + } + pthread_mutex_unlock(&rrc_release_freelist); if (ue_context_p->ue_context.ue_reestablishment_timer>0) { ue_context_p->ue_context.ue_reestablishment_timer++; @@ -7801,25 +8040,27 @@ rrc_rx_tx( break; } } + if (ue_context_p->ue_context.ue_release_timer>0) { ue_context_p->ue_context.ue_release_timer++; if (ue_context_p->ue_context.ue_release_timer >= ue_context_p->ue_context.ue_release_timer_thres) { - LOG_I(RRC,"Removing UE %x instance, Release timer: %d, Release timer thres.: %d \n",ue_context_p->ue_context.rnti, ue_context_p->ue_context.ue_release_timer, ue_context_p->ue_context.ue_release_timer_thres); + LOG_I(RRC,"Removing UE %x instance\n",ue_context_p->ue_context.rnti); ue_to_be_removed = ue_context_p; + ue_context_p->ue_context.ue_release_timer = 0; break; } } } if (ue_to_be_removed) { - if(ue_to_be_removed->ue_context.ul_failure_timer >= 8) { + if(ue_to_be_removed->ue_context.ul_failure_timer >= 20000) { ue_to_be_removed->ue_context.ue_release_timer_s1 = 1; ue_to_be_removed->ue_context.ue_release_timer_thres_s1 = 100; ue_to_be_removed->ue_context.ue_release_timer = 0; ue_to_be_removed->ue_context.ue_reestablishment_timer = 0; } rrc_eNB_free_UE(ctxt_pP->module_id,ue_to_be_removed); - if(ue_to_be_removed->ue_context.ul_failure_timer >= 8){ + if(ue_to_be_removed->ue_context.ul_failure_timer >= 20000){ ue_to_be_removed->ue_context.ul_failure_timer = 0; } } diff --git a/openair2/RRC/LTE/rrc_eNB_S1AP.c b/openair2/RRC/LTE/rrc_eNB_S1AP.c index a250151a80..36e0645795 100644 --- a/openair2/RRC/LTE/rrc_eNB_S1AP.c +++ b/openair2/RRC/LTE/rrc_eNB_S1AP.c @@ -58,7 +58,7 @@ #include "RRC/LTE/rrc_eNB_GTPV1U.h" #include "TLVDecoder.h" -#include "S1ap-NAS-PDU.h" +#include "S1AP_NAS-PDU.h" #include "flexran_agent_common_internal.h" extern RAN_CONTEXT_t RC; @@ -678,7 +678,8 @@ void rrc_eNB_send_S1AP_UE_CAPABILITIES_IND( return; } - asn_enc_rval_t ret = uper_encode_to_buffer(&asn_DEF_UECapabilityInformation, ueCapabilityInformation, buf, 4096); + asn_enc_rval_t ret = uper_encode_to_buffer(&asn_DEF_UECapabilityInformation, NULL, ueCapabilityInformation, buf, 4096); + if (ret.encoded == -1) abort(); memset(&rac, 0, sizeof(UERadioAccessCapabilityInformation_t)); @@ -692,7 +693,9 @@ void rrc_eNB_send_S1AP_UE_CAPABILITIES_IND( /* 8192 is arbitrary, should be big enough */ buf2 = malloc16(8192); if (buf2 == NULL) abort(); - ret = uper_encode_to_buffer(&asn_DEF_UERadioAccessCapabilityInformation, &rac, buf2, 8192); + + ret = uper_encode_to_buffer(&asn_DEF_UERadioAccessCapabilityInformation, NULL, &rac, buf2, 8192); + if (ret.encoded == -1) abort(); MessageDef *msg_p; @@ -1289,62 +1292,6 @@ int rrc_eNB_process_S1AP_UE_CONTEXT_RELEASE_COMMAND (MessageDef *msg_p, const ch instance, eNB_ue_s1ap_id); */ - { - int e_rab; - //int mod_id = 0; - MessageDef *msg_delete_tunnels_p = NULL; - - MSC_LOG_TX_MESSAGE( - MSC_RRC_ENB, - MSC_GTPU_ENB, - NULL,0, - "0 GTPV1U_ENB_DELETE_TUNNEL_REQ rnti %x ", - eNB_ue_s1ap_id); - - msg_delete_tunnels_p = itti_alloc_new_message(TASK_RRC_ENB, GTPV1U_ENB_DELETE_TUNNEL_REQ); - memset(>PV1U_ENB_DELETE_TUNNEL_REQ(msg_delete_tunnels_p), - 0, - sizeof(GTPV1U_ENB_DELETE_TUNNEL_REQ(msg_delete_tunnels_p))); - - // do not wait response - GTPV1U_ENB_DELETE_TUNNEL_REQ(msg_delete_tunnels_p).rnti = ue_context_p->ue_context.rnti; - - for (e_rab = 0; e_rab < ue_context_p->ue_context.nb_of_e_rabs; e_rab++) { - GTPV1U_ENB_DELETE_TUNNEL_REQ(msg_delete_tunnels_p).eps_bearer_id[GTPV1U_ENB_DELETE_TUNNEL_REQ(msg_delete_tunnels_p).num_erab++] = - ue_context_p->ue_context.enb_gtp_ebi[e_rab]; - // erase data - ue_context_p->ue_context.enb_gtp_teid[e_rab] = 0; - memset(&ue_context_p->ue_context.enb_gtp_addrs[e_rab], 0, sizeof(ue_context_p->ue_context.enb_gtp_addrs[e_rab])); - ue_context_p->ue_context.enb_gtp_ebi[e_rab] = 0; - } - - itti_send_msg_to_task(TASK_GTPV1_U, instance, msg_delete_tunnels_p); - - - MSC_LOG_TX_MESSAGE( - MSC_RRC_ENB, - MSC_S1AP_ENB, - NULL,0, - "0 S1AP_UE_CONTEXT_RELEASE_COMPLETE eNB_ue_s1ap_id 0x%06"PRIX32" ", - eNB_ue_s1ap_id); - - MessageDef *msg_complete_p = NULL; - msg_complete_p = itti_alloc_new_message(TASK_RRC_ENB, S1AP_UE_CONTEXT_RELEASE_COMPLETE); - S1AP_UE_CONTEXT_RELEASE_COMPLETE(msg_complete_p).eNB_ue_s1ap_id = eNB_ue_s1ap_id; - itti_send_msg_to_task(TASK_S1AP, instance, msg_complete_p); - - rrc_ue_s1ap_ids = rrc_eNB_S1AP_get_ue_ids( - RC.rrc[instance], - UE_INITIAL_ID_INVALID, - eNB_ue_s1ap_id); - - if (NULL != rrc_ue_s1ap_ids) { - rrc_eNB_S1AP_remove_ue_ids( - RC.rrc[instance], - rrc_ue_s1ap_ids); - } - } - return (0); } } @@ -1788,7 +1735,6 @@ MSC_LOG_TX_MESSAGE( return 0; } int rrc_eNB_process_S1AP_E_RAB_RELEASE_COMMAND(MessageDef *msg_p, const char *msg_name, instance_t instance){ - uint16_t mme_ue_s1ap_id; uint32_t eNB_ue_s1ap_id; struct rrc_eNB_ue_context_s* ue_context_p = NULL; protocol_ctxt_t ctxt; @@ -1803,7 +1749,6 @@ int rrc_eNB_process_S1AP_E_RAB_RELEASE_COMMAND(MessageDef *msg_p, const char *ms e_rab_release_drb = 0; memcpy(&e_rab_release_params[0], &(S1AP_E_RAB_RELEASE_COMMAND (msg_p).e_rab_release_params[0]), sizeof(e_rab_release_t)*S1AP_MAX_E_RAB); - mme_ue_s1ap_id = S1AP_E_RAB_RELEASE_COMMAND (msg_p).mme_ue_s1ap_id; eNB_ue_s1ap_id = S1AP_E_RAB_RELEASE_COMMAND (msg_p).eNB_ue_s1ap_id; nb_e_rabs_torelease = S1AP_E_RAB_RELEASE_COMMAND (msg_p).nb_e_rabs_torelease; ue_context_p = rrc_eNB_get_ue_context_from_s1ap_ids(instance, UE_INITIAL_ID_INVALID, eNB_ue_s1ap_id); @@ -1813,7 +1758,7 @@ int rrc_eNB_process_S1AP_E_RAB_RELEASE_COMMAND(MessageDef *msg_p, const char *ms xid = rrc_eNB_get_next_transaction_identifier(ctxt.module_id); LOG_D(RRC,"S1AP-E-RAB Release Command: MME_UE_S1AP_ID %d ENB_UE_S1AP_ID %d release_e_rabs %d \n", - mme_ue_s1ap_id, eNB_ue_s1ap_id,nb_e_rabs_torelease); + S1AP_E_RAB_RELEASE_COMMAND (msg_p).mme_ue_s1ap_id, eNB_ue_s1ap_id,nb_e_rabs_torelease); for(erab = 0; erab < nb_e_rabs_torelease; erab++){ b_existed = 0; is_existed = 0; @@ -1993,7 +1938,7 @@ int rrc_eNB_process_PAGING_IND(MessageDef *msg_p, const char *msg_name, instance /* insert data to UE_PF_PO or update data in UE_PF_PO */ pthread_mutex_lock(&ue_pf_po_mutex); - uint8_t i = 0; + uint16_t i = 0; for (i = 0; i < MAX_MOBILES_PER_ENB; i++) { if ((UE_PF_PO[CC_id][i].enable_flag == TRUE && UE_PF_PO[CC_id][i].ue_index_value == (uint16_t)(S1AP_PAGING_IND(msg_p).ue_index_value)) || (UE_PF_PO[CC_id][i].enable_flag != TRUE)) { @@ -2039,6 +1984,11 @@ int rrc_eNB_process_PAGING_IND(MessageDef *msg_p, const char *msg_name, instance buffer, S1AP_PAGING_IND(msg_p).ue_paging_identity, S1AP_PAGING_IND(msg_p).cn_domain); + if(length == -1) + { + LOG_I(RRC, "do_Paging error"); + return -1; + } message_buffer = itti_malloc (TASK_RRC_ENB, TASK_PDCP_ENB, length); /* Uses a new buffer to avoid issue with PDCP buffer content that could be changed by PDCP (asynchronous message handling). */ memcpy (message_buffer, buffer, length); diff --git a/openair2/RRC/LTE/rrc_eNB_UE_context.c b/openair2/RRC/LTE/rrc_eNB_UE_context.c index 0ae3d7ca15..646939b8dc 100644 --- a/openair2/RRC/LTE/rrc_eNB_UE_context.c +++ b/openair2/RRC/LTE/rrc_eNB_UE_context.c @@ -33,7 +33,7 @@ #include #include -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "rrc_eNB_UE_context.h" #include "msc.h" @@ -155,9 +155,6 @@ rrc_eNB_get_ue_context( memset(&temp, 0, sizeof(struct rrc_eNB_ue_context_s)); /* eNB ue rrc id = 24 bits wide */ temp.ue_id_rnti = rntiP; -#if 0 - return RB_FIND(rrc_ue_tree_s, &rrc_instance_pP->rrc_ue_head, &temp); -#endif struct rrc_eNB_ue_context_s *ue_context_p = NULL; ue_context_p = RB_FIND(rrc_ue_tree_s, &rrc_instance_pP->rrc_ue_head, &temp); if ( ue_context_p != NULL) { diff --git a/openair2/RRC/LTE/rrc_eNB_ral.c b/openair2/RRC/LTE/rrc_eNB_ral.c index 94e25a6eeb..db20eb4a28 100644 --- a/openair2/RRC/LTE/rrc_eNB_ral.c +++ b/openair2/RRC/LTE/rrc_eNB_ral.c @@ -33,8 +33,8 @@ #include "rrc_eNB_ral.h" #include "assertions.h" #include "collection/hashtable/obj_hashtable.h" -#include "RRC/LITE/defs.h" -#include "RRC/LITE/extern.h" +#include "RRC/LTE/defs.h" +#include "RRC/LTE/extern.h" //----------------------------------------------------------------------------- diff --git a/openair2/RRC/LTE/rrc_eNB_ral.h b/openair2/RRC/LTE/rrc_eNB_ral.h index 143537e45c..bfdcdc1d53 100644 --- a/openair2/RRC/LTE/rrc_eNB_ral.h +++ b/openair2/RRC/LTE/rrc_eNB_ral.h @@ -30,21 +30,6 @@ #ifndef __RRC_ENB_RAL_H__ # define __RRC_ENB_RAL_H__ //----------------------------------------------------------------------------- -# ifdef RRC_ENB_RAL_C -# define private_rrc_enb_ral(x) x -# define protected_rrc_enb_ral(x) x -# define public_rrc_enb_ral(x) x -# else -# ifdef RRC_ENB -# define private_rrc_enb_ral(x) -# define protected_rrc_enb_ral(x) extern x -# define public_rrc_enb_ral(x) extern x -# else -# define private_rrc_enb_ral(x) -# define protected_rrc_enb_ral(x) -# define public_rrc_enb_ral(x) extern x -# endif -# endif //----------------------------------------------------------------------------- #include #include @@ -59,9 +44,9 @@ #include "defs.h" -private_rrc_enb_ral( int rrc_enb_ral_delete_all_thresholds_type (unsigned int mod_idP, ral_link_param_type_t *param_type_pP);) -private_rrc_enb_ral( int rrc_enb_ral_delete_threshold (unsigned int mod_idP, ral_link_param_type_t* param_type_pP, - ral_threshold_t* threshold_pP);) -protected_rrc_enb_ral(int rrc_enb_ral_handle_configure_threshold_request(unsigned int mod_idP, MessageDef *msg_pP);) +int rrc_enb_ral_delete_all_thresholds_type (unsigned int mod_idP, ral_link_param_type_t *param_type_pP); +int rrc_enb_ral_delete_threshold (unsigned int mod_idP, ral_link_param_type_t* param_type_pP, + ral_threshold_t* threshold_pP); +int rrc_enb_ral_handle_configure_threshold_request(unsigned int mod_idP, MessageDef *msg_pP); #endif diff --git a/openair2/RRC/LTE/rrc_proto.h b/openair2/RRC/LTE/rrc_proto.h index 0218456ccb..e16391aef1 100644 --- a/openair2/RRC/LTE/rrc_proto.h +++ b/openair2/RRC/LTE/rrc_proto.h @@ -106,7 +106,7 @@ rrc_ue_decode_dcch( const uint8_t eNB_indexP ); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) int decode_SL_Discovery_Message( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, @@ -628,5 +628,11 @@ void openair_rrc_top_init_ue( uint8_t cba_group_active, uint8_t HO_active ); +pthread_mutex_t rrc_release_freelist; +RRC_release_list_t rrc_release_info; +pthread_mutex_t lock_ue_freelist; +void remove_UE_from_freelist(module_id_t mod_id, rnti_t rnti); +void put_UE_in_freelist(module_id_t mod_id, rnti_t rnti, boolean_t removeFlag); +void release_UE_in_freeList(module_id_t mod_id); /** @}*/ diff --git a/openair2/RRC/NAS/nas_config.c b/openair2/RRC/NAS/nas_config.c index 3f825760da..c0f6d622aa 100644 --- a/openair2/RRC/NAS/nas_config.c +++ b/openair2/RRC/NAS/nas_config.c @@ -43,7 +43,7 @@ #include #include "nas_config.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" //default values according to the examples, diff --git a/openair2/RRC/NAS/rb_config.c b/openair2/RRC/NAS/rb_config.c index 3431137f74..fd5c82787f 100644 --- a/openair2/RRC/NAS/rb_config.c +++ b/openair2/RRC/NAS/rb_config.c @@ -33,7 +33,7 @@ #include #include "nas_config.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "NETWORK_DRIVER/MESH/rrc_nas_primitives.h" #include "NETWORK_DRIVER/MESH/ioctl.h" diff --git a/openair2/UTIL/ASYNC_IF/link_manager.c b/openair2/UTIL/ASYNC_IF/link_manager.c index 52a4f90ce0..c1ce742d0b 100644 --- a/openair2/UTIL/ASYNC_IF/link_manager.c +++ b/openair2/UTIL/ASYNC_IF/link_manager.c @@ -29,7 +29,7 @@ */ #include "link_manager.h" -#include "log.h" +#include "common/utils/LOG/log.h" #include #include diff --git a/openair2/UTIL/ASYNC_IF/message_queue.c b/openair2/UTIL/ASYNC_IF/message_queue.c index 55b7a104cd..5a33fbfabe 100644 --- a/openair2/UTIL/ASYNC_IF/message_queue.c +++ b/openair2/UTIL/ASYNC_IF/message_queue.c @@ -29,7 +29,7 @@ */ #include "message_queue.h" -#include "log.h" +#include "common/utils/LOG/log.h" #include #include diff --git a/openair2/UTIL/ASYNC_IF/ringbuffer_queue.c b/openair2/UTIL/ASYNC_IF/ringbuffer_queue.c index b178d3a5d6..201603e0c5 100644 --- a/openair2/UTIL/ASYNC_IF/ringbuffer_queue.c +++ b/openair2/UTIL/ASYNC_IF/ringbuffer_queue.c @@ -29,7 +29,7 @@ */ #include "ringbuffer_queue.h" -#include "log.h" +#include "common/utils/LOG/log.h" message_queue_t * new_message_queue(int size) { diff --git a/openair2/UTIL/ASYNC_IF/socket_link.c b/openair2/UTIL/ASYNC_IF/socket_link.c index 60b03d7d43..edfa2bde81 100644 --- a/openair2/UTIL/ASYNC_IF/socket_link.c +++ b/openair2/UTIL/ASYNC_IF/socket_link.c @@ -29,7 +29,7 @@ */ #include "socket_link.h" -#include "log.h" +#include "common/utils/LOG/log.h" #include #include diff --git a/openair2/UTIL/CLI/cli_if.h b/openair2/UTIL/CLI/cli_if.h index 539ecd465a..858cb6bc76 100644 --- a/openair2/UTIL/CLI/cli_if.h +++ b/openair2/UTIL/CLI/cli_if.h @@ -38,30 +38,14 @@ extern "C" { #endif -# ifdef COMPONENT_CLI -# ifdef COMPONENT_CLI_IF -# define private_cli_if(x) x -# define friend_cli_if(x) x -# define public_cli_if(x) x -# else -# define private_cli_if(x) -# define friend_cli_if(x) extern x -# define public_cli_if(x) extern x -# endif -# else -# define private_cli_if(x) -# define friend_cli_if(x) -# define public_cli_if(x) extern x -# endif - /** @defgroup _cli_if Interfaces of CLI * @{*/ -public_cli_if( void cli_init (void); ) -public_cli_if( int cli_server_init(cli_handler_t handler); ) -public_cli_if(void cli_server_cleanup(void);) -public_cli_if(void cli_server_recv(const void * data, socklen_t len);) +void cli_init (void); +int cli_server_init(cli_handler_t handler); +void cli_server_cleanup(void); +void cli_server_recv(const void * data, socklen_t len); /* @}*/ #ifdef __cplusplus diff --git a/openair2/UTIL/FIFO/pad_list.h b/openair2/UTIL/FIFO/pad_list.h index ecafed7cc4..2a9ef9893f 100644 --- a/openair2/UTIL/FIFO/pad_list.h +++ b/openair2/UTIL/FIFO/pad_list.h @@ -32,21 +32,6 @@ #include "types.h" //----------------------------------------------------------------------------- -# ifdef list_C -# define private_list(x) x -# define public_list(x) x -# else -# define private_list(x) -# define public_list(x) extern x -# endif -# ifdef LIST2_C -# define private_list2(x) x -# define public_list2(x) x -# else -# define private_list2(x) -# define public_list2(x) extern x -# endif -//----------------------------------------------------------------------------- typedef struct Job_List_s { Job_elt_t *head; @@ -67,36 +52,36 @@ typedef struct Packet_OTG_List_s { } Packet_OTG_List_t; //----------------------------------------------------------------------------- -public_list( void job_list_init (Job_List_t*);) -public_list( void job_list_free (Job_List_t* listP);) -public_list( Job_elt_t* job_list_get_head (Job_List_t*);) -public_list( Job_elt_t* job_list_remove_head (Job_List_t* );) -public_list( Job_elt_t* job_list_remove_element (Job_elt_t*, Job_List_t*);) -public_list( void job_list_add_head (Job_elt_t* , Job_List_t* );) -public_list( void job_list_add_tail_eurecom (Job_elt_t* , Job_List_t* );) -public_list( void job_list_add_list (Job_List_t* , Job_List_t* );) -public_list( void job_list_display (Job_List_t* );) +void job_list_init (Job_List_t*); +void job_list_free (Job_List_t* listP); +Job_elt_t* job_list_get_head (Job_List_t*); +Job_elt_t* job_list_remove_head (Job_List_t* ); +Job_elt_t* job_list_remove_element (Job_elt_t*, Job_List_t*); +void job_list_add_head (Job_elt_t* , Job_List_t* ); +void job_list_add_tail_eurecom (Job_elt_t* , Job_List_t* ); +void job_list_add_list (Job_List_t* , Job_List_t* ); +void job_list_display (Job_List_t* ); -public_list( void event_list_init (Event_List_t*);) -public_list( void event_list_free (Event_List_t* listP);) -public_list( Event_elt_t* event_list_get_head (Event_List_t*);) -public_list( Event_elt_t* event_list_remove_head (Event_List_t* );) -public_list( Event_elt_t* event_list_remove_element (Event_elt_t*, Event_List_t*);) -public_list( void event_list_add_head (Event_elt_t* , Event_List_t* );) -public_list( void event_list_add_element (Event_elt_t* , Event_elt_t* , Event_List_t* );) -public_list( void event_list_add_tail_eurecom (Event_elt_t* , Event_List_t* );) -public_list( void event_list_add_list (Event_List_t* , Event_List_t* );) -public_list( void event_list_display (Event_List_t* );) +void event_list_init (Event_List_t*); +void event_list_free (Event_List_t* listP); +Event_elt_t* event_list_get_head (Event_List_t*); +Event_elt_t* event_list_remove_head (Event_List_t* ); +Event_elt_t* event_list_remove_element (Event_elt_t*, Event_List_t*); +void event_list_add_head (Event_elt_t* , Event_List_t* ); +void event_list_add_element (Event_elt_t* , Event_elt_t* , Event_List_t* ); +void event_list_add_tail_eurecom (Event_elt_t* , Event_List_t* ); +void event_list_add_list (Event_List_t* , Event_List_t* ); +void event_list_display (Event_List_t* ); -public_list( void pkt_list_init (Packet_OTG_List_t*);) -public_list( void pkt_list_free (Packet_OTG_List_t* listP);) -public_list( Packet_otg_elt_t* pkt_list_get_head (Packet_OTG_List_t*);) -public_list( Packet_otg_elt_t* pkt_list_remove_head (Packet_OTG_List_t* );) -public_list( Packet_otg_elt_t* pkt_list_remove_element (Packet_otg_elt_t*, Packet_OTG_List_t*);) -public_list( void pkt_list_add_head (Packet_otg_elt_t* , Packet_OTG_List_t* );) -public_list( void pkt_list_add_element (Packet_otg_elt_t* , Packet_otg_elt_t* , Packet_OTG_List_t* );) -public_list( void pkt_list_add_tail_eurecom (Packet_otg_elt_t* , Packet_OTG_List_t* );) -public_list( void pkt_list_add_list (Packet_OTG_List_t* , Packet_OTG_List_t* );) -public_list( void pkt_list_display (Packet_OTG_List_t* );) +void pkt_list_init (Packet_OTG_List_t*); +void pkt_list_free (Packet_OTG_List_t* listP); +Packet_otg_elt_t* pkt_list_get_head (Packet_OTG_List_t*); +Packet_otg_elt_t* pkt_list_remove_head (Packet_OTG_List_t* ); +Packet_otg_elt_t* pkt_list_remove_element (Packet_otg_elt_t*, Packet_OTG_List_t*); +void pkt_list_add_head (Packet_otg_elt_t* , Packet_OTG_List_t* ); +void pkt_list_add_element (Packet_otg_elt_t* , Packet_otg_elt_t* , Packet_OTG_List_t* ); +void pkt_list_add_tail_eurecom (Packet_otg_elt_t* , Packet_OTG_List_t* ); +void pkt_list_add_list (Packet_OTG_List_t* , Packet_OTG_List_t* ); +void pkt_list_display (Packet_OTG_List_t* ); #endif diff --git a/openair2/UTIL/LISTS/list.h b/openair2/UTIL/LISTS/list.h index 864804c591..bf4d7e7580 100644 --- a/openair2/UTIL/LISTS/list.h +++ b/openair2/UTIL/LISTS/list.h @@ -39,66 +39,36 @@ #ifndef __LIST_H__ # define __LIST_H__ -# include "UTIL/MEM/mem_block.h" //----------------------------------------------------------------------------- -# ifdef LIST_C -# define private_list(x) x -# define public_list(x) x -# else -# define private_list(x) -# define public_list(x) extern x -# endif -# ifdef LIST2_C -# define private_list2(x) x -# define public_list2(x) x -# else -# define private_list2(x) -# define public_list2(x) extern x -# endif //----------------------------------------------------------------------------- -#include "platform_constants.h" #include #include #include -#define LIST_NAME_MAX_CHAR 32 +#include "UTIL/MEM/mem_block.h" - -typedef struct { - struct mem_block_t *head; - struct mem_block_t *tail; - int nb_elements; - char name[LIST_NAME_MAX_CHAR]; -} list2_t; //----------------------------------------------------------------------------- -typedef struct { - struct mem_block_t *head; - struct mem_block_t *tail; - int nb_elements; - char name[LIST_NAME_MAX_CHAR]; -} list_t; +void list_init (list_t* , char *); +void list_free (list_t* listP); +mem_block_t* list_get_head (list_t*); +mem_block_t* list_remove_head (list_t* ); +mem_block_t* list_remove_element (mem_block_t*, list_t*); +void list_add_head (mem_block_t* , list_t* ); +void list_add_tail_eurecom (mem_block_t* , list_t* ); +void list_add_list (list_t* , list_t* ); +void list_display (list_t* ); //----------------------------------------------------------------------------- -public_list( void list_init (list_t* , char *);) -public_list( void list_free (list_t* listP);) -public_list( mem_block_t* list_get_head (list_t*);) -public_list( mem_block_t* list_remove_head (list_t* );) -public_list( mem_block_t* list_remove_element (mem_block_t*, list_t*);) -public_list( void list_add_head (mem_block_t* , list_t* );) -public_list( void list_add_tail_eurecom (mem_block_t* , list_t* );) -public_list( void list_add_list (list_t* , list_t* );) -public_list( void list_display (list_t* );) -//----------------------------------------------------------------------------- -public_list2( void list2_init (list2_t*, char*);) -public_list2( void list2_free (list2_t* );) -public_list2( mem_block_t* list2_get_head (list2_t*);) -public_list2( mem_block_t* list2_get_tail (list2_t*);) -public_list2( mem_block_t* list2_remove_element (mem_block_t* , list2_t* );) -public_list2( mem_block_t* list2_remove_head (list2_t* );) -public_list2( mem_block_t* list2_remove_tail (list2_t* );) -public_list2( void list2_add_head (mem_block_t* , list2_t* );) -public_list2( void list2_add_tail (mem_block_t* , list2_t* );) -public_list2( void list2_add_list (list2_t* , list2_t* );) -public_list2( void list2_display (list2_t* );) +void list2_init (list2_t*, char*); +void list2_free (list2_t* ); +mem_block_t* list2_get_head (list2_t*); +mem_block_t* list2_get_tail (list2_t*); +mem_block_t* list2_remove_element (mem_block_t* , list2_t* ); +mem_block_t* list2_remove_head (list2_t* ); +mem_block_t* list2_remove_tail (list2_t* ); +void list2_add_head (mem_block_t* , list2_t* ); +void list2_add_tail (mem_block_t* , list2_t* ); +void list2_add_list (list2_t* , list2_t* ); +void list2_display (list2_t* ); //----------------------------------------------------------------------------- /* The following lists are used for sorting numbers */ #ifndef LINUX_LIST @@ -126,11 +96,11 @@ struct list { }; #endif //----------------------------------------------------------------------------- -public_list2( void push_front (struct list*, double); ) -public_list2( void initialize (struct list*); ) -public_list2( void del (struct list*); ) -public_list2( void totable (double*, struct list*);) -public_list2( int compare (const void * a, const void * b);) -public_list2( int32_t calculate_median(struct list *loc_list);) +void push_front (struct list*, double); +void initialize (struct list*); +void del (struct list*); +void totable (double*, struct list*); +int compare (const void * a, const void * b); +int32_t calculate_median(struct list *loc_list); #endif diff --git a/openair2/UTIL/LOG/log.c b/openair2/UTIL/LOG/log.c deleted file mode 100644 index dcdf3bad86..0000000000 --- a/openair2/UTIL/LOG/log.c +++ /dev/null @@ -1,1805 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*! \file log.c -* \brief log implementaion -* \author Navid Nikaein -* \date 2009 - 2014 -* \version 0.5 -* @ingroup util - -*/ - -#define _GNU_SOURCE /* required for pthread_getname_np */ -//#define LOG_TEST 1 - -#define COMPONENT_LOG -#define COMPONENT_LOG_IF -#include -#define LOG_MAIN -#include "log.h" -#include "vcd_signal_dumper.h" -#include "assertions.h" - -#if defined(ENABLE_ITTI) -# include "intertask_interface.h" -#endif - -# include -# include -#include "common/config/config_userapi.h" -// main log variables - - -mapping log_level_names[] = { - {"emerg", LOG_EMERG}, - {"alert", LOG_ALERT}, - {"crit", LOG_CRIT}, - {"error", LOG_ERR}, - {"warn", LOG_WARNING}, - {"notice", LOG_NOTICE}, - {"info", LOG_INFO}, - {"debug", LOG_DEBUG}, - {"file", LOG_FILE}, - {"trace", LOG_TRACE}, - {NULL, -1} -}; -mapping log_verbosity_names[] = { - {"none", 0x0}, - {"low", 0x5}, - {"medium", 0x15}, - {"high", 0x35}, - {"full", 0x75}, - {NULL, -1} -}; - -// vars for the log thread -LOG_params log_list[2000]; -int log_list_tail = 0; -int log_list_nb_elements = 0; - -pthread_mutex_t log_lock; -pthread_cond_t log_notify; - -#if !defined(LOG_NO_THREAD) -int log_list_head = 0; -int log_shutdown; -#endif - -static int gfd; - -static char *log_level_highlight_start[] = {LOG_RED, LOG_RED, LOG_RED, LOG_RED, LOG_ORANGE, LOG_BLUE, "", ""}; /*!< \brief Optional start-format strings for highlighting */ -static char *log_level_highlight_end[] = {LOG_RESET, LOG_RESET, LOG_RESET, LOG_RESET, LOG_RESET,LOG_RESET, "",""}; /*!< \brief Optional end-format strings for highlighting */ - -#if defined(ENABLE_ITTI) -static log_instance_type_t log_instance_type; -#endif - -/* get log parameters from configuration file */ -void log_getconfig(log_t *g_log) { - char *gloglevel = NULL; - char *glogverbo = NULL; - int level,verbosity; - paramdef_t logparams_defaults[] = LOG_GLOBALPARAMS_DESC; - paramdef_t logparams_level[MAX_LOG_COMPONENTS]; - paramdef_t logparams_verbosity[MAX_LOG_COMPONENTS]; - paramdef_t logparams_logfile[MAX_LOG_COMPONENTS]; - - int ret = config_get( logparams_defaults,sizeof(logparams_defaults)/sizeof(paramdef_t),CONFIG_STRING_LOG_PREFIX); - if (ret <0) { - fprintf(stderr,"[LOG] init aborted, configuration couldn't be performed"); - return; - } - memset(logparams_level, 0, sizeof(paramdef_t)*MAX_LOG_COMPONENTS); - memset(logparams_verbosity,0, sizeof(paramdef_t)*MAX_LOG_COMPONENTS); - memset(logparams_logfile, 0, sizeof(paramdef_t)*MAX_LOG_COMPONENTS); - for (int i=MIN_LOG_COMPONENTS; i < MAX_LOG_COMPONENTS; i++) { - if(g_log->log_component[i].name == NULL) { - g_log->log_component[i].name = malloc(16); - sprintf((char *)g_log->log_component[i].name,"comp%i?",i); - logparams_logfile[i].paramflags = PARAMFLAG_DONOTREAD; - logparams_level[i].paramflags = PARAMFLAG_DONOTREAD; - logparams_verbosity[i].paramflags = PARAMFLAG_DONOTREAD; - } - sprintf(logparams_level[i].optname, LOG_CONFIG_LEVEL_FORMAT, g_log->log_component[i].name); - sprintf(logparams_verbosity[i].optname,LOG_CONFIG_VERBOSITY_FORMAT, g_log->log_component[i].name); - sprintf(logparams_logfile[i].optname, LOG_CONFIG_LOGFILE_FORMAT, g_log->log_component[i].name); -/* workaround: all log options in existing configuration files use lower case component names - where component names include uppercase char in log.h.... */ - for (int j=0 ; jlog_component[PHY].name = "PHY"; - g_log->log_component[PHY].level = LOG_EMERG; - g_log->log_component[PHY].flag = LOG_MED; - g_log->log_component[PHY].interval = 1; - g_log->log_component[PHY].fd = 0; - g_log->log_component[PHY].filelog = 0; - g_log->log_component[PHY].filelog_name = "/tmp/phy.log"; - - g_log->log_component[MAC].name = "MAC"; - g_log->log_component[MAC].level = LOG_EMERG; - g_log->log_component[MAC].flag = LOG_MED; - g_log->log_component[MAC].interval = 1; - g_log->log_component[MAC].fd = 0; - g_log->log_component[MAC].filelog = 0; - g_log->log_component[MAC].filelog_name = "/tmp/mac.log"; - - g_log->log_component[OPT].name = "OPT"; - g_log->log_component[OPT].level = LOG_EMERG; - g_log->log_component[OPT].flag = LOG_MED; - g_log->log_component[OPT].interval = 1; - g_log->log_component[OPT].fd = 0; - g_log->log_component[OPT].filelog = 0; - g_log->log_component[OPT].filelog_name = ""; - - g_log->log_component[RLC].name = "RLC"; - g_log->log_component[RLC].level = LOG_INFO; - g_log->log_component[RLC].flag = LOG_MED; - g_log->log_component[RLC].interval = 1; - g_log->log_component[RLC].fd = 0; - g_log->log_component[RLC].filelog = 0; - g_log->log_component[RLC].filelog_name = "/tmp/rlc.log"; - - g_log->log_component[PDCP].name = "PDCP"; - g_log->log_component[PDCP].level = LOG_INFO; - g_log->log_component[PDCP].flag = LOG_MED; - g_log->log_component[PDCP].interval = 1; - g_log->log_component[PDCP].fd = 0; - g_log->log_component[PDCP].filelog = 0; - g_log->log_component[PDCP].filelog_name = "/tmp/pdcp.log"; - - g_log->log_component[RRC].name = "RRC"; - g_log->log_component[RRC].level = LOG_TRACE; - g_log->log_component[RRC].flag = LOG_MED; - g_log->log_component[RRC].interval = 1; - g_log->log_component[RRC].fd = 0; - g_log->log_component[RRC].filelog = 0; - g_log->log_component[RRC].filelog_name = "/tmp/rrc.log"; - - g_log->log_component[SIM].name = "SIM"; - g_log->log_component[SIM].level = LOG_EMERG; - g_log->log_component[SIM].flag = LOG_MED; - g_log->log_component[SIM].interval = 1; - g_log->log_component[SIM].fd = 0; - g_log->log_component[SIM].filelog = 0; - g_log->log_component[SIM].filelog_name = ""; - - g_log->log_component[OMG].name = "OMG"; - g_log->log_component[OMG].level = LOG_EMERG; - g_log->log_component[OMG].flag = LOG_MED; - g_log->log_component[OMG].interval = 1; - g_log->log_component[OMG].fd = 0; - g_log->log_component[OMG].filelog = 0; - g_log->log_component[OMG].filelog_name = "/tmp/omg.csv"; - - g_log->log_component[OTG].name = "OTG"; - g_log->log_component[OTG].level = LOG_EMERG; - g_log->log_component[OTG].flag = LOG_MED; - g_log->log_component[OTG].interval = 1; - g_log->log_component[OTG].fd = 0; - g_log->log_component[OTG].filelog = 0; - g_log->log_component[OTG].filelog_name = "/tmp/otg.log"; - - g_log->log_component[OTG_LATENCY].name = "OTG_LATENCY"; - g_log->log_component[OTG_LATENCY].level = LOG_EMERG; - g_log->log_component[OTG_LATENCY].flag = LOG_MED; - g_log->log_component[OTG_LATENCY].interval = 1; - g_log->log_component[OTG_LATENCY].fd = 0; - g_log->log_component[OTG_LATENCY].filelog = 0; - g_log->log_component[OTG_LATENCY].filelog_name = "/tmp/otg_latency.dat"; - - g_log->log_component[OTG_LATENCY_BG].name = "OTG_LATENCY_BG"; - g_log->log_component[OTG_LATENCY_BG].level = LOG_EMERG; - g_log->log_component[OTG_LATENCY_BG].flag = LOG_MED; - g_log->log_component[OTG_LATENCY_BG].interval = 1; - g_log->log_component[OTG_LATENCY_BG].fd = 0; - g_log->log_component[OTG_LATENCY_BG].filelog = 0; - g_log->log_component[OTG_LATENCY_BG].filelog_name = "/tmp/otg_latency_bg.dat"; - - g_log->log_component[OTG_GP].name = "OTG_GP"; - g_log->log_component[OTG_GP].level = LOG_EMERG; - g_log->log_component[OTG_GP].flag = LOG_MED; - g_log->log_component[OTG_GP].interval = 1; - g_log->log_component[OTG_GP].fd = 0; - g_log->log_component[OTG_GP].filelog = 0; - g_log->log_component[OTG_GP].filelog_name = "/tmp/otg_goodput.dat"; - - g_log->log_component[OTG_GP_BG].name = "OTG_GP_BG"; - g_log->log_component[OTG_GP_BG].level = LOG_EMERG; - g_log->log_component[OTG_GP_BG].flag = LOG_MED; - g_log->log_component[OTG_GP_BG].interval = 1; - g_log->log_component[OTG_GP_BG].fd = 0; - g_log->log_component[OTG_GP_BG].filelog = 0; - g_log->log_component[OTG_GP_BG].filelog_name = "/tmp/otg_goodput_bg.dat"; - - g_log->log_component[OTG_JITTER].name = "OTG_JITTER"; - g_log->log_component[OTG_JITTER].level = LOG_EMERG; - g_log->log_component[OTG_JITTER].flag = LOG_MED; - g_log->log_component[OTG_JITTER].interval = 1; - g_log->log_component[OTG_JITTER].fd = 0; - g_log->log_component[OTG_JITTER].filelog = 0; - g_log->log_component[OTG_JITTER].filelog_name = "/tmp/otg_jitter.dat"; - - g_log->log_component[OCG].name = "OCG"; - g_log->log_component[OCG].level = LOG_EMERG; - g_log->log_component[OCG].flag = LOG_MED; - g_log->log_component[OCG].interval = 1; - g_log->log_component[OCG].fd = 0; - g_log->log_component[OCG].filelog = 0; - g_log->log_component[OCG].filelog_name = ""; - - g_log->log_component[PERF].name = "PERF"; - g_log->log_component[PERF].level = LOG_EMERG; - g_log->log_component[PERF].flag = LOG_MED; - g_log->log_component[PERF].interval = 1; - g_log->log_component[PERF].fd = 0; - g_log->log_component[PERF].filelog = 0; - g_log->log_component[PERF].filelog_name = ""; - - g_log->log_component[OIP].name = "OIP"; - g_log->log_component[OIP].level = LOG_EMERG; - g_log->log_component[OIP].flag = LOG_MED; - g_log->log_component[OIP].interval = 1; - g_log->log_component[OIP].fd = 0; - g_log->log_component[OIP].filelog = 0; - g_log->log_component[OIP].filelog_name = ""; - - g_log->log_component[CLI].name = "CLI"; - g_log->log_component[CLI].level = LOG_EMERG; - g_log->log_component[CLI].flag = LOG_MED; - g_log->log_component[CLI].interval = 1; - g_log->log_component[CLI].fd = 0; - g_log->log_component[CLI].filelog = 0; - g_log->log_component[CLI].filelog_name = ""; - - g_log->log_component[MSC].name = "MSC"; - g_log->log_component[MSC].level = LOG_EMERG; - g_log->log_component[MSC].flag = LOG_MED; - g_log->log_component[MSC].interval = 1; - g_log->log_component[MSC].fd = 0; - g_log->log_component[MSC].filelog = 0; - g_log->log_component[MSC].filelog_name = "/tmp/msc.log"; - - g_log->log_component[OCM].name = "OCM"; - g_log->log_component[OCM].level = LOG_EMERG; - g_log->log_component[OCM].flag = LOG_MED; - g_log->log_component[OCM].interval = 1; - g_log->log_component[OCM].fd = 0; - g_log->log_component[OCM].filelog = 0; - g_log->log_component[OCM].filelog_name = "/tmp/ocm.log"; - - g_log->log_component[HW].name = "HW"; - g_log->log_component[HW].level = LOG_EMERG; - g_log->log_component[HW].flag = LOG_MED; - g_log->log_component[HW].interval = 1; - g_log->log_component[HW].fd = 0; - g_log->log_component[HW].filelog = 0; - g_log->log_component[HW].filelog_name = ""; - - g_log->log_component[OSA].name = "OSA"; - g_log->log_component[OSA].level = LOG_EMERG; - g_log->log_component[OSA].flag = LOG_MED; - g_log->log_component[OSA].interval = 1; - g_log->log_component[OSA].fd = 0; - g_log->log_component[OSA].filelog = 0; - g_log->log_component[OSA].filelog_name = ""; - - g_log->log_component[RAL_ENB].name = "eRAL"; - g_log->log_component[RAL_ENB].level = LOG_EMERG; - g_log->log_component[RAL_ENB].flag = LOG_MED; - g_log->log_component[RAL_ENB].interval = 1; - g_log->log_component[RAL_ENB].fd = 0; - g_log->log_component[RAL_ENB].filelog = 0; - g_log->log_component[RAL_ENB].filelog_name = ""; - - g_log->log_component[RAL_UE].name = "mRAL"; - g_log->log_component[RAL_UE].level = LOG_EMERG; - g_log->log_component[RAL_UE].flag = LOG_MED; - g_log->log_component[RAL_UE].interval = 1; - g_log->log_component[RAL_UE].fd = 0; - g_log->log_component[RAL_UE].filelog = 0; - g_log->log_component[RAL_UE].filelog_name = ""; - - g_log->log_component[ENB_APP].name = "ENB_APP"; - g_log->log_component[ENB_APP].level = LOG_EMERG; - g_log->log_component[ENB_APP].flag = LOG_MED; - g_log->log_component[ENB_APP].interval = 1; - g_log->log_component[ENB_APP].fd = 0; - g_log->log_component[ENB_APP].filelog = 0; - g_log->log_component[ENB_APP].filelog_name = ""; - - g_log->log_component[FLEXRAN_AGENT].name = "FLEXRAN_AGENT"; - g_log->log_component[FLEXRAN_AGENT].level = LOG_DEBUG; - g_log->log_component[FLEXRAN_AGENT].flag = LOG_MED; - g_log->log_component[FLEXRAN_AGENT].interval = 1; - g_log->log_component[FLEXRAN_AGENT].fd = 0; - g_log->log_component[FLEXRAN_AGENT].filelog = 0; - g_log->log_component[FLEXRAN_AGENT].filelog_name = ""; - - g_log->log_component[TMR].name = "TMR"; - g_log->log_component[TMR].level = LOG_EMERG; - g_log->log_component[TMR].flag = LOG_MED; - g_log->log_component[TMR].interval = 1; - g_log->log_component[TMR].fd = 0; - g_log->log_component[TMR].filelog = 0; - g_log->log_component[TMR].filelog_name = ""; - - g_log->log_component[USIM].name = "USIM"; - g_log->log_component[USIM].level = LOG_DEBUG; - g_log->log_component[USIM].flag = LOG_NONE; - g_log->log_component[USIM].interval = 1; - g_log->log_component[USIM].fd = 0; - g_log->log_component[USIM].filelog = 0; - g_log->log_component[USIM].filelog_name = "/tmp/usim.txt"; - - /* following log component are used for the localization*/ - g_log->log_component[LOCALIZE].name = "LOCALIZE"; - g_log->log_component[LOCALIZE].level = LOG_EMERG; - g_log->log_component[LOCALIZE].flag = LOG_MED; - g_log->log_component[LOCALIZE].interval = 1; - g_log->log_component[LOCALIZE].fd = 0; - g_log->log_component[LOCALIZE].filelog = 0; - g_log->log_component[LOCALIZE].filelog_name = "/tmp/localize.log"; -#endif // ! defined(CN_BUILD) - - g_log->log_component[NAS].name = "NAS"; - g_log->log_component[NAS].level = LOG_TRACE; - g_log->log_component[NAS].flag = LOG_MED; - g_log->log_component[NAS].interval = 1; - g_log->log_component[NAS].fd = 0; - g_log->log_component[NAS].filelog = 0; - g_log->log_component[NAS].filelog_name = "/tmp/nas.log"; - - g_log->log_component[UDP_].name = "UDP"; - g_log->log_component[UDP_].level = LOG_EMERG; - g_log->log_component[UDP_].flag = LOG_FULL; - g_log->log_component[UDP_].interval = 1; - g_log->log_component[UDP_].fd = 0; - g_log->log_component[UDP_].filelog = 0; - g_log->log_component[UDP_].filelog_name = ""; - - g_log->log_component[GTPU].name = "GTPV1U"; - g_log->log_component[GTPU].level = LOG_EMERG; - g_log->log_component[GTPU].flag = LOG_FULL; - g_log->log_component[GTPU].interval = 1; - g_log->log_component[GTPU].fd = 0; - g_log->log_component[GTPU].filelog = 0; - g_log->log_component[GTPU].filelog_name = ""; - - g_log->log_component[S1AP].name = "S1AP"; - g_log->log_component[S1AP].level = LOG_EMERG; - g_log->log_component[S1AP].flag = LOG_FULL; - g_log->log_component[S1AP].interval = 1; - g_log->log_component[S1AP].fd = 0; - g_log->log_component[S1AP].filelog = 0; - g_log->log_component[S1AP].filelog_name = ""; - - g_log->log_component[SCTP].name = "SCTP"; - g_log->log_component[SCTP].level = LOG_EMERG; - g_log->log_component[SCTP].flag = LOG_MED; - g_log->log_component[SCTP].interval = 1; - g_log->log_component[SCTP].fd = 0; - g_log->log_component[SCTP].filelog = 0; - g_log->log_component[SCTP].filelog_name = ""; - - g_log->log_component[RRH].name = "RRH"; - g_log->log_component[RRH].level = LOG_EMERG; - g_log->log_component[RRH].flag = LOG_MED; - g_log->log_component[RRH].interval = 1; - g_log->log_component[RRH].fd = 0; - g_log->log_component[RRH].filelog = 0; - g_log->log_component[RRH].filelog_name = ""; - - g_log->level2string[LOG_EMERG] = "G"; //EMERG - g_log->level2string[LOG_ALERT] = "A"; // ALERT - g_log->level2string[LOG_CRIT] = "C"; // CRITIC - g_log->level2string[LOG_ERR] = "E"; // ERROR - g_log->level2string[LOG_WARNING] = "W"; // WARNING - g_log->level2string[LOG_NOTICE] = "N"; // NOTICE - g_log->level2string[LOG_INFO] = "I"; //INFO - g_log->level2string[LOG_DEBUG] = "D"; // DEBUG - g_log->level2string[LOG_FILE] = "F"; // file - g_log->level2string[LOG_TRACE] = "T"; // TRACE - - g_log->onlinelog = 1; //online log file - g_log->syslog = 0; - g_log->filelog = 0; - g_log->level = LOG_TRACE; - g_log->flag = LOG_LOW; - - g_log->config.remote_ip = 0; - g_log->config.remote_level = LOG_EMERG; - g_log->config.facility = LOG_LOCAL7; - g_log->config.audit_ip = 0; - g_log->config.audit_facility = LOG_LOCAL6; - g_log->config.format = 0x00; // online debug inactive - - g_log->filelog_name = "/tmp/openair.log"; - - if (g_log->syslog) { -#if ! defined(CN_BUILD) - openlog(g_log->log_component[SIM].name, LOG_PID, g_log->config.facility); -#endif // ! defined(CN_BUILD) - } - log_getconfig(g_log); - if (g_log->filelog) { - gfd = open(g_log->filelog_name, O_WRONLY | O_CREAT, 0666); - } - - // could put a loop here to check for all comps - for (i=MIN_LOG_COMPONENTS; i < MAX_LOG_COMPONENTS; i++) { - if (g_log->log_component[i].filelog == 1 ) { - g_log->log_component[i].fd = open(g_log->log_component[i].filelog_name, - O_WRONLY | O_CREAT | O_APPEND, 0666); - } - } - - printf("log init done\n"); - - return 0; -} - -void nfapi_log(char *file, char *func, int line, int comp, int level, const char* format, va_list args) -{ - //logRecord_mt(file,func,line, pthread_self(), comp, level, format, ##args) - int len = 0; - log_component_t *c; - char *log_start; - char *log_end; - /* The main difference with the version above is the use of this local log_buffer. - * The other difference is the return value of snprintf which was not used - * correctly. It was not a big problem because in practice MAX_LOG_TOTAL is - * big enough so that the buffer is never full. - */ - char log_buffer[MAX_LOG_TOTAL]; - - /* for no gcc warnings */ - (void)log_start; - (void)log_end; - - c = &g_log->log_component[comp]; - - // do not apply filtering for LOG_F - // only log messages which are enabled and are below the global log level and component's level threshold - if ((level != LOG_FILE) && ((level > c->level) || (level > g_log->level))) { - /* if ((level != LOG_FILE) && - ((level > c->level) || - (level > g_log->level) || - ( c->level > g_log->level))) { - */ - return; - } - - //VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_LOG_RECORD, VCD_FUNCTION_IN); - - // adjust syslog level for TRACE messages - if (g_log->syslog) { - if (g_log->level > LOG_DEBUG) { - g_log->level = LOG_DEBUG; - } - } - - // make sure that for log trace the extra info is only printed once, reset when the level changes - if ((level == LOG_FILE) || (c->flag == LOG_NONE) || (level == LOG_TRACE)) { - log_start = log_buffer; - len = vsnprintf(log_buffer, MAX_LOG_TOTAL, format, args); - if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL; - log_end = log_buffer + len; - } else { - if ( (g_log->flag & FLAG_COLOR) || (c->flag & FLAG_COLOR) ) { - len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "%s", - log_level_highlight_start[level]); - if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL; - } - - log_start = log_buffer + len; - - if ( (g_log->flag & FLAG_COMP) || (c->flag & FLAG_COMP) ) { - len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%s]", - g_log->log_component[comp].name); - if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL; - } - - if ( (g_log->flag & FLAG_LEVEL) || (c->flag & FLAG_LEVEL) ) { - len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%s]", - g_log->level2string[level]); - if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL; - } - - if ( (g_log->flag & FLAG_THREAD) || (c->flag & FLAG_THREAD) ) { -# define THREAD_NAME_LEN 128 - char threadname[THREAD_NAME_LEN]; - if (pthread_getname_np(pthread_self(), threadname, THREAD_NAME_LEN) != 0) - { - perror("pthread_getname_np : "); - } else { - len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%s]", threadname); - if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL; - } -# undef THREAD_NAME_LEN - } - - if ( (g_log->flag & FLAG_FUNCT) || (c->flag & FLAG_FUNCT) ) { - len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%s] ", - func); - if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL; - } - - if ( (g_log->flag & FLAG_FILE_LINE) || (c->flag & FLAG_FILE_LINE) ) { - len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%s:%d]", - file, line); - if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL; - } - - //len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%08lx]", thread_id); - //if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL; - - len += vsnprintf(&log_buffer[len], MAX_LOG_TOTAL - len, format, args); - if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL; - log_end = log_buffer + len; - - if ( (g_log->flag & FLAG_COLOR) || (c->flag & FLAG_COLOR) ) { - len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "%s", - log_level_highlight_end[level]); - if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL; - } - } - - va_end(args); - - // OAI printf compatibility - if ((g_log->onlinelog == 1) && (level != LOG_FILE)) -#ifdef RTAI - if (len > MAX_LOG_TOTAL) { - rt_printk ("[OPENAIR] FIFO_PRINTF WROTE OUTSIDE ITS MEMORY BOUNDARY : ERRORS WILL OCCUR\n"); - } - - if (len > 0) { - rtf_put (FIFO_PRINTF_NO, log_buffer, len); - } - -#else - fwrite(log_buffer, len, 1, stdout); -#endif - -#ifndef RTAI - - if (g_log->syslog) { - syslog(g_log->level, "%s", log_buffer); - } - - if (g_log->filelog) { - if (write(gfd, log_buffer, len) < len) { - // TODO assert ? - } - } - - if ((g_log->log_component[comp].filelog) && (level == LOG_FILE)) { - if (write(g_log->log_component[comp].fd, log_buffer, len) < len) { - // TODO assert ? - } - } - -#else - - // online print messges - if ((g_log->log_component[comp].filelog) && (level == LOG_FILE)) { - printf(log_buffer); - } - -#endif - -#if defined(ENABLE_ITTI) - - if (level <= LOG_DEBUG) { - task_id_t origin_task_id = TASK_UNKNOWN; - MessagesIds messages_id; - MessageDef *message_p; - size_t message_string_size; - char *message_msg_p; - - message_string_size = log_end - log_start; - -#if !defined(DISABLE_ITTI_DETECT_SUB_TASK_ID) - - /* Try to identify sub task ID from log information (comp, log_instance_type) */ - switch (comp) { - case PHY: - switch (log_instance_type) { - case LOG_INSTANCE_ENB: - origin_task_id = TASK_PHY_ENB; - break; - - case LOG_INSTANCE_UE: - origin_task_id = TASK_PHY_UE; - break; - - default: - break; - } - - break; - - case MAC: - switch (log_instance_type) { - case LOG_INSTANCE_ENB: - origin_task_id = TASK_MAC_ENB; - break; - - case LOG_INSTANCE_UE: - origin_task_id = TASK_MAC_UE; - - default: - break; - } - - break; - - case RLC: - switch (log_instance_type) { - case LOG_INSTANCE_ENB: - origin_task_id = TASK_RLC_ENB; - break; - - case LOG_INSTANCE_UE: - origin_task_id = TASK_RLC_UE; - - default: - break; - } - - break; - - case PDCP: - switch (log_instance_type) { - case LOG_INSTANCE_ENB: - origin_task_id = TASK_PDCP_ENB; - break; - - case LOG_INSTANCE_UE: - origin_task_id = TASK_PDCP_UE; - - default: - break; - } - - break; - - default: - break; - } - -#endif - - switch (level) { - case LOG_EMERG: - case LOG_ALERT: - case LOG_CRIT: - case LOG_ERR: - messages_id = ERROR_LOG; - break; - - case LOG_WARNING: - messages_id = WARNING_LOG; - break; - - case LOG_NOTICE: - messages_id = NOTICE_LOG; - break; - - case LOG_INFO: - messages_id = INFO_LOG; - break; - - default: - messages_id = DEBUG_LOG; - break; - } - - message_p = itti_alloc_new_message_sized(origin_task_id, messages_id, message_string_size); - - switch (level) { - case LOG_EMERG: - case LOG_ALERT: - case LOG_CRIT: - case LOG_ERR: - message_msg_p = (char *) &message_p->ittiMsg.error_log; - break; - - case LOG_WARNING: - message_msg_p = (char *) &message_p->ittiMsg.warning_log; - break; - - case LOG_NOTICE: - message_msg_p = (char *) &message_p->ittiMsg.notice_log; - break; - - case LOG_INFO: - message_msg_p = (char *) &message_p->ittiMsg.info_log; - break; - - default: - message_msg_p = (char *) &message_p->ittiMsg.debug_log; - break; - } - - memcpy(message_msg_p, log_start, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); - } - -#endif -#if 0 - LOG_params log_params; - int len; - - len = vsnprintf(log_params.l_buff_info, MAX_LOG_INFO-1, format, args); - - //2 first parameters must be passed as 'const' to the thread function - log_params.file = strdup(file); - log_params.func = strdup(func); - log_params.line = line; - log_params.comp = PHY;//comp; - log_params.level = 6; // INFO - level; - log_params.format = format; - log_params.len = len; - - if (pthread_mutex_lock(&log_lock) != 0) { - return; - } - - log_list_tail++; - log_list[log_list_tail - 1] = log_params; - - if (log_list_tail >= 1000) { - log_list_tail = 0; - } - - if (log_list_nb_elements < 1000) { - log_list_nb_elements++; - } - - if(pthread_cond_signal(&log_notify) != 0) { - pthread_mutex_unlock(&log_lock); - return; - } - - if(pthread_mutex_unlock(&log_lock) != 0) { - return; - } - -#endif -} - -//log record: add to a list -void logRecord(const char *file, const char *func, int line, int comp, - int level, const char *format, ...) -{ - va_list args; - LOG_params log_params; - int len; - - va_start(args, format); - len = vsnprintf(log_params.l_buff_info, MAX_LOG_INFO-1, format, args); - va_end(args); - - //2 first parameters must be passed as 'const' to the thread function - log_params.file = strdup(file); - log_params.func = strdup(func); - log_params.line = line; - log_params.comp = comp; - log_params.level = level; - log_params.format = format; - log_params.len = len; - - if (pthread_mutex_lock(&log_lock) != 0) { - return; - } - - log_list_tail++; - log_list[log_list_tail - 1] = log_params; - - if (log_list_tail >= 1000) { - log_list_tail = 0; - } - - if (log_list_nb_elements < 1000) { - log_list_nb_elements++; - } - - if(pthread_cond_signal(&log_notify) != 0) { - pthread_mutex_unlock(&log_lock); - return; - } - - if(pthread_mutex_unlock(&log_lock) != 0) { - return; - } - - //log = malloc(sizeof(LOG_elt)); - //log->next = NULL; - //log->log_params = log_params; - /* Add log task to queue */ - //log_list_add_tail_eurecom(log, &log_list); - -} - -void logRecord_thread_safe(const char *file, const char *func, - int line, int comp, int level, - int len, const char *params_string) -{ - log_component_t *c; - int total_len = 0; - char log_buffer[MAX_LOG_TOTAL]; - - c = &g_log->log_component[comp]; - - // do not apply filtering for LOG_F - // only log messages which are enabled and are below the global log level and component's level threshold - if ((level != LOG_FILE) && ((c->level > g_log->level) || - (level > c->level) || (level > g_log->level))) { - return; - } - - - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_LOG_RECORD, - VCD_FUNCTION_IN); - - // adjust syslog level for TRACE messages - if (g_log->syslog) { - if (g_log->level > LOG_DEBUG) { - g_log->level = LOG_DEBUG; - } - } - - // make sure that for log trace the extra info is only printed once, reset when the level changes - if ((level == LOG_FILE) || (c->flag == LOG_NONE) || (level ==LOG_TRACE )) { - total_len = snprintf(&log_buffer[total_len], MAX_LOG_TOTAL - 1, "%s", - params_string); - } else { - if ((g_log->flag & FLAG_COLOR) || (c->flag & FLAG_COLOR)) { - total_len += snprintf(&log_buffer[total_len], MAX_LOG_TOTAL - total_len, "%s", - log_level_highlight_start[level]); - } - - if ((g_log->flag & FLAG_COMP) || (c->flag & FLAG_COMP) ) { - total_len += snprintf(&log_buffer[total_len], MAX_LOG_TOTAL - total_len, "[%s]", - g_log->log_component[comp].name); - } - - if ((g_log->flag & FLAG_LEVEL) || (c->flag & FLAG_LEVEL)) { - total_len += snprintf(&log_buffer[total_len], MAX_LOG_TOTAL - total_len, "[%s]", - g_log->level2string[level]); - } - - if ((g_log->flag & FLAG_FUNCT) || (c->flag & FLAG_FUNCT)) { - total_len += snprintf(&log_buffer[total_len], MAX_LOG_TOTAL - total_len, "[%s] ", - func); - } - - if ((g_log->flag & FLAG_FILE_LINE) || (c->flag & FLAG_FILE_LINE) ) { - total_len += snprintf(&log_buffer[total_len], MAX_LOG_TOTAL - total_len, "[%s:%d]", - file, line); - } - - len += snprintf(&log_buffer[total_len], MAX_LOG_TOTAL - len, "%s", - params_string); - - if ((g_log->flag & FLAG_COLOR) || (c->flag & FLAG_COLOR)) { - total_len += snprintf(&log_buffer[total_len], MAX_LOG_TOTAL - total_len, "%s", - log_level_highlight_end[level]); - } - } - - // OAI printf compatibility - if ((g_log->onlinelog == 1) && (level != LOG_FILE)) { - fprintf(stdout, "%s", log_buffer); - } - - if (g_log->syslog) { - syslog(g_log->level, "%s", log_buffer); - } - - if (g_log->filelog) { - if (write(gfd, log_buffer, total_len) < total_len) { - // TODO assert ? - } - } - - if ((g_log->log_component[comp].filelog) && (level == LOG_FILE)) { - if (write(g_log->log_component[comp].fd, log_buffer, total_len) < total_len) { - // TODO assert ? - } - } - - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_LOG_RECORD, - VCD_FUNCTION_OUT); -} - -#if !defined(LOG_NO_THREAD) -void *log_thread_function(void *list) -{ - - LOG_params log_params; - - for(;;) { - - //log_elt = NULL; - - /* Lock must be taken to wait on conditional variable */ - pthread_mutex_lock(&log_lock); - - /* Wait on condition variable, check for spurious wakeups. - When returning from pthread_cond_wait(), we own the lock. */ - - // sleep - while((log_list_nb_elements == 0) && (log_shutdown == 0)) { - pthread_cond_wait(&log_notify, &log_lock); - } - - // exit - if ((log_shutdown==1) && (log_list_nb_elements == 0)) { - break; - } - - /* Grab our task */ - //log_elt = log_list_remove_head(&log_list); - log_params = log_list[log_list_head]; - log_list_head++; - log_list_nb_elements--; - - if (log_list_head >= 1000) { - log_list_head = 0; - } - - - /* Unlock */ - pthread_mutex_unlock(&log_lock); - - /* Get to work */ - logRecord_thread_safe(log_params.file, - log_params.func, - log_params.line, - log_params.comp, - log_params.level, - log_params.len, - log_params.l_buff_info); - - //free(log_elt); - } -} -#endif - -#if 0 -/* This function does not work. When multiple threads call it at the same time - * for the same component, both threads end up using the same buffer. - * The output is the completely messed up/wrong. - * Kept in case the fix below is not correct or acceptable. - */ -//log record, format, and print: executed in the main thread (mt) -void logRecord_mt(const char *file, const char *func, int line, int comp, - int level, const char *format, ...) -{ - int len = 0; - va_list args; - log_component_t *c; - char *log_start; - char *log_end; - - /* for no gcc warnings */ - (void)log_start; - (void)log_end; - - c = &g_log->log_component[comp]; - - // do not apply filtering for LOG_F - // only log messages which are enabled and are below the global log level and component's level threshold - if ((level != LOG_FILE) && ((level > c->level) || (level > g_log->level))) { - /* if ((level != LOG_FILE) && - ((level > c->level) || - (level > g_log->level) || - ( c->level > g_log->level))) { - */ - return; - } - - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_LOG_RECORD, - VCD_FUNCTION_IN); - - va_start(args, format); - - // adjust syslog level for TRACE messages - if (g_log->syslog) { - if (g_log->level > LOG_DEBUG) { - g_log->level = LOG_DEBUG; - } - } - - // make sure that for log trace the extra info is only printed once, reset when the level changes - if ((level == LOG_FILE) || (c->flag == LOG_NONE) || (level == LOG_TRACE)) { - log_start = c->log_buffer; - len = vsnprintf(c->log_buffer, MAX_LOG_TOTAL-1, format, args); - log_end = c->log_buffer + len; - } else { - if ( (g_log->flag & FLAG_COLOR) || (c->flag & FLAG_COLOR) ) { - len += snprintf(&c->log_buffer[len], MAX_LOG_TOTAL - len, "%s", - log_level_highlight_start[level]); - } - - log_start = c->log_buffer + len; - - if ( (g_log->flag & FLAG_COMP) || (c->flag & FLAG_COMP) ) { - len += snprintf(&c->log_buffer[len], MAX_LOG_TOTAL - len, "[%s]", - g_log->log_component[comp].name); - } - - if ( (g_log->flag & FLAG_LEVEL) || (c->flag & FLAG_LEVEL) ) { - len += snprintf(&c->log_buffer[len], MAX_LOG_TOTAL - len, "[%s]", - g_log->level2string[level]); - } - - if ( (g_log->flag & FLAG_FUNCT) || (c->flag & FLAG_FUNCT) ) { - len += snprintf(&c->log_buffer[len], MAX_LOG_TOTAL - len, "[%s] ", - func); - } - - if ( (g_log->flag & FLAG_FILE_LINE) || (c->flag & FLAG_FILE_LINE) ) { - len += snprintf(&c->log_buffer[len], MAX_LOG_TOTAL - len, "[%s:%d]", - file, line); - } - - len += vsnprintf(&c->log_buffer[len], MAX_LOG_TOTAL - len, format, args); - log_end = c->log_buffer + len; - - if ( (g_log->flag & FLAG_COLOR) || (c->flag & FLAG_COLOR) ) { - len += snprintf(&c->log_buffer[len], MAX_LOG_TOTAL - len, "%s", - log_level_highlight_end[level]); - } - } - - va_end(args); - - // OAI printf compatibility - if ((g_log->onlinelog == 1) && (level != LOG_FILE)) - fwrite(c->log_buffer, len, 1, stdout); - - if (g_log->syslog) { - syslog(g_log->level, "%s", c->log_buffer); - } - - if (g_log->filelog) { - if (write(gfd, c->log_buffer, len) < len) { - // TODO assert ? - } - } - - if ((g_log->log_component[comp].filelog) && (level == LOG_FILE)) { - if (write(g_log->log_component[comp].fd, c->log_buffer, len) < len) { - // TODO assert ? - } - } - -#if defined(ENABLE_ITTI) - - if (level <= LOG_DEBUG) { - task_id_t origin_task_id = TASK_UNKNOWN; - MessagesIds messages_id; - MessageDef *message_p; - size_t message_string_size; - char *message_msg_p; - - message_string_size = log_end - log_start; - -#if !defined(DISABLE_ITTI_DETECT_SUB_TASK_ID) - - /* Try to identify sub task ID from log information (comp, log_instance_type) */ - switch (comp) { - case PHY: - switch (log_instance_type) { - case LOG_INSTANCE_ENB: - origin_task_id = TASK_PHY_ENB; - break; - - case LOG_INSTANCE_UE: - origin_task_id = TASK_PHY_UE; - break; - - default: - break; - } - - break; - - case MAC: - switch (log_instance_type) { - case LOG_INSTANCE_ENB: - origin_task_id = TASK_MAC_ENB; - break; - - case LOG_INSTANCE_UE: - origin_task_id = TASK_MAC_UE; - - default: - break; - } - - break; - - case RLC: - switch (log_instance_type) { - case LOG_INSTANCE_ENB: - origin_task_id = TASK_RLC_ENB; - break; - - case LOG_INSTANCE_UE: - origin_task_id = TASK_RLC_UE; - - default: - break; - } - - break; - - case PDCP: - switch (log_instance_type) { - case LOG_INSTANCE_ENB: - origin_task_id = TASK_PDCP_ENB; - break; - - case LOG_INSTANCE_UE: - origin_task_id = TASK_PDCP_UE; - - default: - break; - } - - break; - - default: - break; - } - -#endif - - switch (level) { - case LOG_EMERG: - case LOG_ALERT: - case LOG_CRIT: - case LOG_ERR: - messages_id = ERROR_LOG; - break; - - case LOG_WARNING: - messages_id = WARNING_LOG; - break; - - case LOG_NOTICE: - messages_id = NOTICE_LOG; - break; - - case LOG_INFO: - messages_id = INFO_LOG; - break; - - default: - messages_id = DEBUG_LOG; - break; - } - - message_p = itti_alloc_new_message_sized(origin_task_id, messages_id, message_string_size); - - switch (level) { - case LOG_EMERG: - case LOG_ALERT: - case LOG_CRIT: - case LOG_ERR: - message_msg_p = (char *) &message_p->ittiMsg.error_log; - break; - - case LOG_WARNING: - message_msg_p = (char *) &message_p->ittiMsg.warning_log; - break; - - case LOG_NOTICE: - message_msg_p = (char *) &message_p->ittiMsg.notice_log; - break; - - case LOG_INFO: - message_msg_p = (char *) &message_p->ittiMsg.info_log; - break; - - default: - message_msg_p = (char *) &message_p->ittiMsg.debug_log; - break; - } - - memcpy(message_msg_p, log_start, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); - } - -#endif - - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_LOG_RECORD, - VCD_FUNCTION_OUT); -} -#endif /* #if 0 */ - -//log record, format, and print: executed in the main thread (mt) -void logRecord_mt(const char *file, const char *func, int line, int comp, - int level, const char *format, ...) -{ - int len = 0; - va_list args; - log_component_t *c; - char *log_start; - char *log_end; - /* The main difference with the version above is the use of this local log_buffer. - * The other difference is the return value of snprintf which was not used - * correctly. It was not a big problem because in practice MAX_LOG_TOTAL is - * big enough so that the buffer is never full. - */ - char log_buffer[MAX_LOG_TOTAL]; - - /* for no gcc warnings */ - (void)log_start; - (void)log_end; - - c = &g_log->log_component[comp]; - - // do not apply filtering for LOG_F - // only log messages which are enabled and are below the global log level and component's level threshold - if ((level != LOG_FILE) && ((level > c->level) || (level > g_log->level))) { - /* if ((level != LOG_FILE) && - ((level > c->level) || - (level > g_log->level) || - ( c->level > g_log->level))) { - */ - return; - } - - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_LOG_RECORD, - VCD_FUNCTION_IN); - - va_start(args, format); - - // adjust syslog level for TRACE messages - if (g_log->syslog) { - if (g_log->level > LOG_DEBUG) { - g_log->level = LOG_DEBUG; - } - } - - // make sure that for log trace the extra info is only printed once, reset when the level changes - if ((level == LOG_FILE) || (c->flag == LOG_NONE) || (level == LOG_TRACE)) { - log_start = log_buffer; - len = vsnprintf(log_buffer, MAX_LOG_TOTAL, format, args); - if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL; - log_end = log_buffer + len; - } else { - if ( (g_log->flag & FLAG_COLOR) || (c->flag & FLAG_COLOR) ) { - len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "%s", - log_level_highlight_start[level]); - if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL; - } - - log_start = log_buffer + len; - - if ( (g_log->flag & FLAG_COMP) || (c->flag & FLAG_COMP) ) { - len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%s]", - g_log->log_component[comp].name); - if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL; - } - - if ( (g_log->flag & FLAG_LEVEL) || (c->flag & FLAG_LEVEL) ) { - len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%s]", - g_log->level2string[level]); - if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL; - } - - if ( (g_log->flag & FLAG_THREAD) || (c->flag & FLAG_THREAD) ) { -# define THREAD_NAME_LEN 128 - char threadname[THREAD_NAME_LEN]; - if (pthread_getname_np(pthread_self(), threadname, THREAD_NAME_LEN) != 0) - { - perror("pthread_getname_np : "); - } else { - len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%s]", threadname); - if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL; - } -# undef THREAD_NAME_LEN - } - - if ( (g_log->flag & FLAG_FUNCT) || (c->flag & FLAG_FUNCT) ) { - len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%s] ", - func); - if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL; - } - - if ( (g_log->flag & FLAG_FILE_LINE) || (c->flag & FLAG_FILE_LINE) ) { - len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%s:%d]", - file, line); - if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL; - } - - len += vsnprintf(&log_buffer[len], MAX_LOG_TOTAL - len, format, args); - if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL; - log_end = log_buffer + len; - - if ( (g_log->flag & FLAG_COLOR) || (c->flag & FLAG_COLOR) ) { - len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "%s", - log_level_highlight_end[level]); - if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL; - } - } - - va_end(args); - - // OAI printf compatibility - if ((g_log->onlinelog == 1) && (level != LOG_FILE)) - fwrite(log_buffer, len, 1, stdout); - - if (g_log->syslog) { - syslog(g_log->level, "%s", log_buffer); - } - - if (g_log->filelog) { - if (write(gfd, log_buffer, len) < len) { - // TODO assert ? - } - } - - if ((g_log->log_component[comp].filelog) && (level == LOG_FILE)) { - if (write(g_log->log_component[comp].fd, log_buffer, len) < len) { - // TODO assert ? - } - } - -#if defined(ENABLE_ITTI) - - if (level <= LOG_DEBUG) { - task_id_t origin_task_id = TASK_UNKNOWN; - MessagesIds messages_id; - MessageDef *message_p; - size_t message_string_size; - char *message_msg_p; - - message_string_size = log_end - log_start; - -#if !defined(DISABLE_ITTI_DETECT_SUB_TASK_ID) - - /* Try to identify sub task ID from log information (comp, log_instance_type) */ - switch (comp) { - case PHY: - switch (log_instance_type) { - case LOG_INSTANCE_ENB: - origin_task_id = TASK_PHY_ENB; - break; - - case LOG_INSTANCE_UE: - origin_task_id = TASK_PHY_UE; - break; - - default: - break; - } - - break; - - case MAC: - switch (log_instance_type) { - case LOG_INSTANCE_ENB: - origin_task_id = TASK_MAC_ENB; - break; - - case LOG_INSTANCE_UE: - origin_task_id = TASK_MAC_UE; - - default: - break; - } - - break; - - case RLC: - switch (log_instance_type) { - case LOG_INSTANCE_ENB: - origin_task_id = TASK_RLC_ENB; - break; - - case LOG_INSTANCE_UE: - origin_task_id = TASK_RLC_UE; - - default: - break; - } - - break; - - case PDCP: - switch (log_instance_type) { - case LOG_INSTANCE_ENB: - origin_task_id = TASK_PDCP_ENB; - break; - - case LOG_INSTANCE_UE: - origin_task_id = TASK_PDCP_UE; - - default: - break; - } - - break; - - default: - break; - } - -#endif - - switch (level) { - case LOG_EMERG: - case LOG_ALERT: - case LOG_CRIT: - case LOG_ERR: - messages_id = ERROR_LOG; - break; - - case LOG_WARNING: - messages_id = WARNING_LOG; - break; - - case LOG_NOTICE: - messages_id = NOTICE_LOG; - break; - - case LOG_INFO: - messages_id = INFO_LOG; - break; - - default: - messages_id = DEBUG_LOG; - break; - } - - message_p = itti_alloc_new_message_sized(origin_task_id, messages_id, message_string_size); - - switch (level) { - case LOG_EMERG: - case LOG_ALERT: - case LOG_CRIT: - case LOG_ERR: - message_msg_p = (char *) &message_p->ittiMsg.error_log; - break; - - case LOG_WARNING: - message_msg_p = (char *) &message_p->ittiMsg.warning_log; - break; - - case LOG_NOTICE: - message_msg_p = (char *) &message_p->ittiMsg.notice_log; - break; - - case LOG_INFO: - message_msg_p = (char *) &message_p->ittiMsg.info_log; - break; - - default: - message_msg_p = (char *) &message_p->ittiMsg.debug_log; - break; - } - - memcpy(message_msg_p, log_start, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); - } - -#endif - - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_LOG_RECORD, - VCD_FUNCTION_OUT); -} - -int set_log(int component, int level, int interval) -{ - /* Checking parameters */ - DevCheck((component >= MIN_LOG_COMPONENTS) && (component < MAX_LOG_COMPONENTS), - component, MIN_LOG_COMPONENTS, MAX_LOG_COMPONENTS); - DevCheck((level <= LOG_TRACE) && (level >= LOG_EMERG), level, LOG_TRACE, - LOG_EMERG); - DevCheck((interval >= 0) && (interval <= 0xFF), interval, 0, 0xFF); - - g_log->log_component[component].level = level; - - switch (level) { - case LOG_TRACE: - g_log->log_component[component].flag = LOG_MED ; - break; - - case LOG_DEBUG: - g_log->log_component[component].flag = LOG_MED ; - break; - - case LOG_INFO: - g_log->log_component[component].flag = LOG_LOW ; - break; - - default: - g_log->log_component[component].flag = LOG_NONE ; - break; - } - - g_log->log_component[component].interval = interval; - - return 0; -} - -int set_comp_log(int component, int level, int verbosity, int interval) -{ - /* Checking parameters */ - DevCheck((component >= MIN_LOG_COMPONENTS) && (component < MAX_LOG_COMPONENTS), - component, MIN_LOG_COMPONENTS, MAX_LOG_COMPONENTS); - DevCheck((level <= LOG_TRACE) && (level >= LOG_EMERG), level, LOG_TRACE, - LOG_EMERG); - DevCheck((interval >= 0) && (interval <= 0xFF), interval, 0, 0xFF); - -#if 0 - if ((verbosity == LOG_NONE) || (verbosity == LOG_LOW) || - (verbosity == LOG_MED) || (verbosity == LOG_FULL) || - (verbosity == LOG_HIGH)) { - g_log->log_component[component].flag = verbosity; - } -#else - g_log->log_component[component].flag = verbosity; -#endif - - g_log->log_component[component].level = level; - g_log->log_component[component].interval = interval; - - return 0; -} - -void set_glog(int level, int verbosity) -{ - if( g_log->level >= 0) g_log->level = level; - if( g_log->flag >= 0) g_log->flag = verbosity; -} -void set_glog_syslog(int enable) -{ - g_log->syslog = enable; -} -void set_glog_onlinelog(int enable) -{ - g_log->onlinelog = enable; -} -void set_glog_filelog(int enable) -{ - g_log->filelog = enable; -} - -void set_component_filelog(int comp) -{ - if (g_log->log_component[comp].filelog == 0) { - g_log->log_component[comp].filelog = 1; - - if (g_log->log_component[comp].fd == 0) { - g_log->log_component[comp].fd = open(g_log->log_component[comp].filelog_name, - O_WRONLY | O_CREAT | O_TRUNC, 0666); - } - } -} - -/* - * for the two functions below, the passed array must have a final entry - * with string value NULL - */ -/* map a string to an int. Takes a mapping array and a string as arg */ -int map_str_to_int(mapping *map, const char *str) -{ - while (1) { - if (map->name == NULL) { - return(-1); - } - - if (!strcmp(map->name, str)) { - return(map->value); - } - - map++; - } -} - -/* map an int to a string. Takes a mapping array and a value */ -char *map_int_to_str(mapping *map, int val) -{ - while (1) { - if (map->name == NULL) { - return NULL; - } - - if (map->value == val) { - return map->name; - } - - map++; - } -} - -int is_newline( char *str, int size) -{ - int i; - - for ( i = 0; i < size; i++ ) { - if ( str[i] == '\n' ) { - return 1; - } - } - - /* if we get all the way to here, there must not have been a newline! */ - return 0; -} - -void logClean (void) -{ - int i; - - if (g_log->syslog) { - closelog(); - } - - if (g_log->filelog) { - close(gfd); - } - - for (i=MIN_LOG_COMPONENTS; i < MAX_LOG_COMPONENTS; i++) { - if (g_log->log_component[i].filelog) { - close(g_log->log_component[i].fd); - } - } -} - -#if defined(ENABLE_ITTI) -void log_set_instance_type (log_instance_type_t instance) -{ - log_instance_type = instance; -} -#endif - -#ifdef LOG_TEST - -int main(int argc, char *argv[]) -{ - - logInit(); - - //set_log_syslog(1); - test_log(); - - return 1; -} - -int test_log(void) -{ - LOG_ENTER(MAC); // because the default level is DEBUG - LOG_I(SIM, "1 Starting OAI logs version %s Build date: %s on %s\n", - BUILD_VERSION, BUILD_DATE, BUILD_HOST); - LOG_D(MAC, "1 debug MAC \n"); - LOG_N(MAC, "1 notice MAC \n"); - LOG_W(MAC, "1 warning MAC \n"); - - set_comp_log(SIM, LOG_INFO, FLAG_ONLINE); - set_comp_log(MAC, LOG_WARNING, 0); - - LOG_I(SIM, "2 Starting OAI logs version %s Build date: %s on %s\n", - BUILD_VERSION, BUILD_DATE, BUILD_HOST); - LOG_E(MAC, "2 emerge MAC\n"); - LOG_D(MAC, "2 debug MAC \n"); - LOG_N(MAC, "2 notice MAC \n"); - LOG_W(MAC, "2 warning MAC \n"); - LOG_I(MAC, "2 info MAC \n"); - - - set_comp_log(MAC, LOG_NOTICE, 1); - - LOG_ENTER(MAC); - LOG_I(SIM, "3 Starting OAI logs version %s Build date: %s on %s\n", - BUILD_VERSION, BUILD_DATE, BUILD_HOST); - LOG_D(MAC, "3 debug MAC \n"); - LOG_N(MAC, "3 notice MAC \n"); - LOG_W(MAC, "3 warning MAC \n"); - LOG_I(MAC, "3 info MAC \n"); - - set_comp_log(MAC, LOG_DEBUG,1); - set_comp_log(SIM, LOG_DEBUG,1); - - LOG_ENTER(MAC); - LOG_I(SIM, "4 Starting OAI logs version %s Build date: %s on %s\n", - BUILD_VERSION, BUILD_DATE, BUILD_HOST); - LOG_D(MAC, "4 debug MAC \n"); - LOG_N(MAC, "4 notice MAC \n"); - LOG_W(MAC, "4 warning MAC \n"); - LOG_I(MAC, "4 info MAC \n"); - - - set_comp_log(MAC, LOG_DEBUG,0); - set_comp_log(SIM, LOG_DEBUG,0); - - LOG_I(LOG, "5 Starting OAI logs version %s Build date: %s on %s\n", - BUILD_VERSION, BUILD_DATE, BUILD_HOST); - LOG_D(MAC, "5 debug MAC \n"); - LOG_N(MAC, "5 notice MAC \n"); - LOG_W(MAC, "5 warning MAC \n"); - LOG_I(MAC, "5 info MAC \n"); - - - set_comp_log(MAC, LOG_TRACE,0X07F); - set_comp_log(SIM, LOG_TRACE,0X07F); - - LOG_ENTER(MAC); - LOG_I(LOG, "6 Starting OAI logs version %s Build date: %s on %s\n", - BUILD_VERSION, BUILD_DATE, BUILD_HOST); - LOG_D(MAC, "6 debug MAC \n"); - LOG_N(MAC, "6 notice MAC \n"); - LOG_W(MAC, "6 warning MAC \n"); - LOG_I(MAC, "6 info MAC \n"); - LOG_EXIT(MAC); - - return 0; -} -#endif diff --git a/openair2/UTIL/MEM/mem_block.c b/openair2/UTIL/MEM/mem_block.c index 39447001fa..6d1a289f08 100644 --- a/openair2/UTIL/MEM/mem_block.c +++ b/openair2/UTIL/MEM/mem_block.c @@ -275,9 +275,9 @@ get_free_mem_block (uint32_t sizeP, const char* caller) } while (pool_selected++ < 12); LOG_E(PHY, "[MEM_MNGT][ERROR][FATAL] failed allocating MEM_BLOCK size %d byes (pool_selected=%d size=%d)\n", sizeP, pool_selected, size); - display_mem_load(); - AssertFatal(1==0,"get_free_mem_block failed"); - +// display_mem_load(); +// AssertFatal(1==0,"get_free_mem_block failed"); + LOG_E(MAC,"[MEM_MNGT][ERROR][FATAL] get_free_mem_block failed!!!\n"); #ifdef MEMBLOCK_BIG_LOCK if (pthread_mutex_unlock(&mtex)) abort(); #endif diff --git a/openair2/UTIL/MEM/mem_block.h b/openair2/UTIL/MEM/mem_block.h index e967380269..a0455899e3 100644 --- a/openair2/UTIL/MEM/mem_block.h +++ b/openair2/UTIL/MEM/mem_block.h @@ -32,13 +32,7 @@ # define __MEM_BLOCK_H__ #include -#ifdef MEM_BLOCK_C -# define public_mem_block(x) x -# define private_mem_block(x) x -#else -# define public_mem_block(x) extern x -# define private_mem_block(x) -#endif +#include "openair2/COMMON/platform_constants.h" //----------------------------------------------------------------------------- typedef struct mem_block_t { @@ -47,21 +41,20 @@ typedef struct mem_block_t { unsigned char pool_id; unsigned char *data; } mem_block_t; -#include "UTIL/LISTS/list.h" //----------------------------------------------------------------------------- -public_mem_block(void *pool_buffer_init (void);) -public_mem_block(void *pool_buffer_clean (void *arg);) -public_mem_block(void free_mem_block (mem_block_t * leP, const char* caller);) -public_mem_block(mem_block_t* get_free_mem_block (uint32_t sizeP, const char* caller);) -public_mem_block(mem_block_t *get_free_copy_mem_block (void);) -public_mem_block(mem_block_t *get_free_copy_mem_block_up (void);) -public_mem_block(mem_block_t *copy_mem_block (mem_block_t * leP, mem_block_t * destP);) -public_mem_block(void display_mem_load (void);) +void *pool_buffer_init (void); +void *pool_buffer_clean (void *arg); +void free_mem_block (mem_block_t * leP, const char* caller); +mem_block_t* get_free_mem_block (uint32_t sizeP, const char* caller); +mem_block_t *get_free_copy_mem_block (void); +mem_block_t *get_free_copy_mem_block_up (void); +mem_block_t *copy_mem_block (mem_block_t * leP, mem_block_t * destP); +void display_mem_load (void); -public_mem_block(void check_mem_area (void);) -private_mem_block(void check_free_mem_block (mem_block_t * leP);) +void check_mem_area (void); +void check_free_mem_block (mem_block_t * leP); # define MEM_SCALE MAX_MOBILES_PER_ENB // definition of the size of the allocated memory area # define MEM_MNGT_MB0_BLOCK_SIZE 64 @@ -139,9 +132,26 @@ private_mem_block(void check_free_mem_block (mem_block_t * leP);) # define MEM_MNGT_NB_ELEMENTS MEM_MNGT_MB0_NB_BLOCKS + MEM_MNGT_MB1_NB_BLOCKS + MEM_MNGT_MB2_NB_BLOCKS + MEM_MNGT_MB3_NB_BLOCKS + MEM_MNGT_MB4_NB_BLOCKS + MEM_MNGT_MB5_NB_BLOCKS + MEM_MNGT_MB6_NB_BLOCKS + MEM_MNGT_MB7_NB_BLOCKS + MEM_MNGT_MB8_NB_BLOCKS + MEM_MNGT_MB9_NB_BLOCKS + MEM_MNGT_MB10_NB_BLOCKS + MEM_MNGT_MB11_NB_BLOCKS + MEM_MNGT_MB12_NB_BLOCKS + MEM_MNGT_MBCOPY_NB_BLOCKS # define MEM_MNGT_POOL_ID_COPY 13 +#define LIST_NAME_MAX_CHAR 32 -private_mem_block(typedef struct { +typedef struct { + struct mem_block_t *head; + struct mem_block_t *tail; + int nb_elements; + char name[LIST_NAME_MAX_CHAR]; +} list2_t; +//----------------------------------------------------------------------------- +typedef struct { + struct mem_block_t *head; + struct mem_block_t *tail; + int nb_elements; + char name[LIST_NAME_MAX_CHAR]; +} list_t; + + + +typedef struct { //----------------------------------------------------------- // basic memory management //----------------------------------------------------------- @@ -161,9 +171,9 @@ private_mem_block(typedef struct { mem_block_t mem_blocks[MEM_MNGT_NB_ELEMENTS]; list_t mem_lists[14]; -} mem_pool;) +} mem_pool; -private_mem_block(mem_pool mem_block_var;) +mem_pool mem_block_var; #endif diff --git a/openair2/UTIL/OMG/omg.c b/openair2/UTIL/OMG/omg.c index 83f38f13d5..6a1ada0156 100644 --- a/openair2/UTIL/OMG/omg.c +++ b/openair2/UTIL/OMG/omg.c @@ -121,7 +121,7 @@ init_mobility_generator (omg_global_param omg_param_list[]) break; default: - LOG_N (OMG, "Unsupported generator\n"); + LOG_W (OMG, "Unsupported generator\n"); } @@ -161,7 +161,7 @@ stop_mobility_generator (omg_global_param * omg_param_list) break; #endif default: - LOG_N (OMG, "Unsupported generator\n"); + LOG_W (OMG, "Unsupported generator\n"); } } @@ -211,8 +211,7 @@ update_node_vector (int mobility_type, double cur_time) break; default: - //printf("STATIC or Unsupported generator %d \n", omg_param_list.mobility_type); - LOG_N (OMG, "STATIC or Unsupported generator\n"); + LOG_W (OMG, "STATIC or Unsupported generator\n"); } } diff --git a/openair2/UTIL/OPT/opt.h b/openair2/UTIL/OPT/opt.h index b131d80539..c9340f258e 100644 --- a/openair2/UTIL/OPT/opt.h +++ b/openair2/UTIL/OPT/opt.h @@ -48,7 +48,7 @@ This header file must be included */ #endif #ifndef project_include #define project_include -#include "UTIL/LOG/log_if.h" +#include "common/utils/LOG/log_if.h" // #include "UTIL/LOG/log_extern.h" //#include "PHY/defs.h" //#include "PHY/extern.h" diff --git a/openair2/UTIL/OPT/packet-mac-lte.h b/openair2/UTIL/OPT/packet-mac-lte.h index 84c6254d9f..d0bb60f6b5 100644 --- a/openair2/UTIL/OPT/packet-mac-lte.h +++ b/openair2/UTIL/OPT/packet-mac-lte.h @@ -46,17 +46,6 @@ #define DIRECTION_DOWNLINK 1 /* SR: no need to declare following part: */ -#if 0 -/* rntiType */ -#define NO_RNTI 0 -#define P_RNTI 1 -#define RA_RNTI 2 -#define C_RNTI 3 -#define SI_RNTI 4 -#define SPS_RNTI 5 -#define M_RNTI 6 -#endif - typedef enum mac_lte_oob_event { ltemac_send_preamble, ltemac_send_sr, @@ -153,35 +142,6 @@ typedef struct mac_lte_info { guint16 oob_rnti[MAX_SRs]; } mac_lte_info; -/* SR: no need to declare following part: */ -#if 0 -typedef struct mac_lte_tap_info { - /* Info from context */ - guint16 rnti; - guint16 ueid; - guint8 rntiType; - guint8 isPredefinedData; - guint8 crcStatusValid; - mac_lte_crc_status crcStatus; - guint8 direction; - - guint8 isPHYRetx; - guint16 ueInTTI; - - nstime_t time; - - /* Number of bytes (which part is used depends upon context settings) */ - guint32 single_number_of_bytes; - guint32 bytes_for_lcid[11]; - guint32 sdus_for_lcid[11]; - guint8 number_of_rars; - - /* Number of padding bytes includes padding subheaders and trailing padding */ - guint16 padding_bytes; - guint16 raw_length; -} mac_lte_tap_info; -#endif - /* Accessor function to check if a frame was considered to be ReTx */ //int is_mac_lte_frame_retx(packet_info *pinfo, guint8 direction); diff --git a/openair2/UTIL/OPT/probe.c b/openair2/UTIL/OPT/probe.c index ebc52bb1e0..2f7dac3d1e 100644 --- a/openair2/UTIL/OPT/probe.c +++ b/openair2/UTIL/OPT/probe.c @@ -543,11 +543,11 @@ int init_opt(char *path, char *ip, char *port, radio_type_t radio_type_p) } if ( opt_type == OPT_WIRESHARK ) - LOG_G(OPT,"mode Wireshark: ip %s port %d\n", in_ip, in_port); + LOG_E(OPT,"mode Wireshark: ip %s port %d\n", in_ip, in_port); else if (opt_type == OPT_PCAP) - LOG_G(OPT,"mode PCAB : path is %s \n",in_path); + LOG_E(OPT,"mode PCAB : path is %s \n",in_path); else - LOG_G(OPT,"Unsupported or unknown mode %d \n", opt_type); + LOG_E(OPT,"Unsupported or unknown mode %d \n", opt_type); // mac_info = (mac_info*)malloc16(sizeof(mac_lte_info)); // memset(mac_info, 0, sizeof(mac_lte_info)+pdu_buffer_size + 8); diff --git a/openair2/UTIL/OSA/osa_key_deriver.c b/openair2/UTIL/OSA/osa_key_deriver.c index cf181b7a99..237592bd17 100644 --- a/openair2/UTIL/OSA/osa_key_deriver.c +++ b/openair2/UTIL/OSA/osa_key_deriver.c @@ -25,7 +25,7 @@ #include "osa_defs.h" #include "osa_internal.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" static inline void kdf(const uint8_t *s, const uint32_t s_length, const uint8_t *key, diff --git a/openair2/UTIL/OSA/osa_stream_eea.c b/openair2/UTIL/OSA/osa_stream_eea.c index e922ed3c86..03e95008ca 100644 --- a/openair2/UTIL/OSA/osa_stream_eea.c +++ b/openair2/UTIL/OSA/osa_stream_eea.c @@ -28,7 +28,7 @@ #include #include -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "assertions.h" #include "osa_defs.h" diff --git a/openair2/UTIL/OSA/osa_stream_eia.c b/openair2/UTIL/OSA/osa_stream_eia.c index e58e280ef7..980a4ae3c1 100644 --- a/openair2/UTIL/OSA/osa_stream_eia.c +++ b/openair2/UTIL/OSA/osa_stream_eia.c @@ -31,7 +31,7 @@ #include #include -#include "UTIL/LOG/log.h" +#include "common/utils//LOG/log.h" #include "osa_defs.h" #include "osa_snow3g.h" diff --git a/openair2/UTIL/OTG/otg.h b/openair2/UTIL/OTG/otg.h index 7938a2a0d7..b95091881b 100644 --- a/openair2/UTIL/OTG/otg.h +++ b/openair2/UTIL/OTG/otg.h @@ -58,7 +58,7 @@ #define LOG_T(c, x...) printf(x) typedef enum {MIN_NUM_COMPS=0, PHY, OMG, OCM, OTG, MAX_NUM_COMPS} comp_t; #else -#include "../UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #endif diff --git a/openair2/UTIL/OTG/otg_rx.c b/openair2/UTIL/OTG/otg_rx.c index bcdcc5e35c..46cad30cb8 100644 --- a/openair2/UTIL/OTG/otg_rx.c +++ b/openair2/UTIL/OTG/otg_rx.c @@ -185,7 +185,7 @@ int otg_rx_pkt(const int dst_instanceP, const int ctime, const char * const buff otg_info->radio_access_delay[src_instance][dst_instance]=(float) (ctime- otg_hdr_rx->time); otg_multicast_info->radio_access_delay[src_instance][dst_instance]=(float) (ctime- otg_hdr_rx->time); } else { - LOG_N(OTG,"received packet has tx time %d greater than the current time %d\n",otg_hdr_rx->time,ctime ); + LOG_I(OTG,"received packet has tx time %d greater than the current time %d\n",otg_hdr_rx->time,ctime ); otg_info->radio_access_delay[src_instance][dst_instance] = 0; otg_multicast_info->radio_access_delay[src_instance][dst_instance]=0; } diff --git a/openair2/UTIL/TIMER/umts_timer.c b/openair2/UTIL/TIMER/umts_timer.c index 9bbb6c2df9..1691fac363 100644 --- a/openair2/UTIL/TIMER/umts_timer.c +++ b/openair2/UTIL/TIMER/umts_timer.c @@ -94,6 +94,7 @@ umts_add_timer_list_up (list2_t * atimer_listP, void (*procP) (void *, void *), uint8_t inserted = 0; mb = get_free_mem_block (sizeof (struct timer_unit), __func__); + if(mb==NULL) return NULL; ((struct timer_unit *) (mb->data))->proc = procP; ((struct timer_unit *) (mb->data))->protocol = protocolP; ((struct timer_unit *) (mb->data))->timer_id = timer_idP; diff --git a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/Makefile b/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/Makefile deleted file mode 100755 index 265a3d9e24..0000000000 --- a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/Makefile +++ /dev/null @@ -1,81 +0,0 @@ -include Makefile.inc -OBJS=$(addprefix MESSAGES/,${ASN_MODULE_SOURCES:.c=.o}) - -CFLAGS += -DEMIT_ASN_DEBUG=1 -CFLAGS += -Wall -CFLAGS += -g - - -OBJS += x2ap_decoder.o -OBJS += x2ap_encoder.o -OBJS += x2ap_common.o - -#X2AP_SERVER_SRC = sctp_primitives_server.c -#X2AP_SERVER_SRC += x2ap_server_main.c -#X2AP_SERVER_OBJS = $(X2AP_SERVER_SRC:.c=.o) - -X2AP_CLIENT_SRC = sctp_primitives_client.c -X2AP_CLIENT_SRC += x2ap_client_main.c -X2AP_CLIENT_OBJS = $(X2AP_CLIENT_SRC:.c=.o) - - -libx2ap_messages.a:$(OBJS) - $(AR) rcsv libx2ap_messages.a $(OBJS) - -asn1fromtool: - asn1c -gen-PER -fnative-types -fskeletons-copy X2AP-CommonDataTypes.asn X2AP-Constants.asn X2AP-IEs.asn \ - X2AP-PDU.asn - - -asn1fromscript: - python ../asn1tostruct.py -f X2AP-PDU-Contents.asn -d - -all: server x2ap_client_main - -server: server.o libx2ap_messages.a generating_messages.o sctp_primitives_client.o x2ap_pdu_decoder.o - $(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) -o $@ $^ -lsctp -lpthread libx2ap_messages.a - - -$(OBJS): %.o : %.c - $(CC) $(CFLAGS) -I. -o $@ -c $< - - -$(X2AP_SERVER_OBJS): %.o : %.c - $(CC) -c $(CFLAGS) -I. $< -o $@ - -$(X2AP_CLIENT_OBJS): %.o : %.c - $(CC) -c $(CFLAGS) $< -o $@ - -x2ap_server_main.o: x2ap_server_main.c - $(CC) $(CFLAGS) -I. $^ -o $@ -lsctp \ - -lpthread - -x2ap_client_main: $(X2AP_CLIENT_OBJS) - $(CC) $(CFLAGS) $^ -o $@ -lsctp \ - -lpthread - -server.o: server.c - $(CC) $(CFLAGS) -I. $^ -o $@ -lsctp \ - -lpthread - - - -x2ap_pdu_decoder.o: x2ap_pdu_decoder.c - $(CC) $(CFLAGS) -I. -o $@ -c $< - -x2ap_pdu_encoder.o: x2ap_pdu_encoder.c - $(CC) $(CFLAGS) -I. -o $@ -c $< - -sctp_primitives_server.o: sctp_primitives_server.c - $(CC) $(CFLAGS) -o $@ -c $< - - -generating_messages.o: generating_messages.c - $(CC) $(CFLAGS) -I. -o $@ -c $< - - - -clean: - rm -f $(OBJS) - - diff --git a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/Makefile.inc b/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/Makefile.inc deleted file mode 100644 index 2b7ddb97b9..0000000000 --- a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/Makefile.inc +++ /dev/null @@ -1,462 +0,0 @@ -ASN_MODULE_SOURCES= \ - Criticality.c \ - Presence.c \ - PrivateIE-ID.c \ - ProcedureCode.c \ - ProtocolIE-ID.c \ - TriggeringMessage.c \ - IE-Extensions.c \ - AS-SecurityInformation.c \ - AllocationAndRetentionPriority.c \ - ActivatedCellList.c \ - ActivatedCellList-Item.c \ - BitRate.c \ - BroadcastPLMNs-Item.c \ - CapacityValue.c \ - CellCapacityClassValue.c \ - CellToReport-List.c \ - CellToReport-Item.c \ - CellMeasurementResult-List.c \ - CellMeasurementResult-Item.c \ - ReportingPeriodicity.c \ - Cause.c \ - CauseMisc.c \ - CauseProtocol.c \ - CauseRadioNetwork.c \ - CauseTransport.c \ - Cell-Size.c \ - CellInformation-List.c \ - CellInformation-Item.c \ - CellType.c \ - CompositeAvailableCapacityGroup.c \ - CompositeAvailableCapacity.c \ - COUNTvalue.c \ - CriticalityDiagnostics.c \ - CriticalityDiagnostics-IE-List.c \ - CriticalityDiagnostics-IE-Elm.c \ - CRNTI.c \ - CyclicPrefixDL.c \ - CyclicPrefixUL.c \ - DeactivationIndication.c \ - DL-Forwarding.c \ - E-RABs-Admitted-List.c \ - E-RABs-Admitted-Item.c \ - E-RABs-ToBeSetup-List.c \ - E-RABs-ToBeSetup-Item.c \ - E-RABs-SubjectToStatusTransfer-List.c \ - E-RABs-SubjectToStatusTransfer-Item.c \ - EARFCN.c \ - FDD-Info.c \ - TDD-Info.c \ - EUTRA-Mode-Info.c \ - ECGI.c \ - ENB-ID.c \ - EncryptionAlgorithms.c \ - EPLMNs.c \ - E-RAB-ID.c \ - E-RAB-Level-QoS-Parameters.c \ - E-RAB-List.c \ - E-RAB-Item.c \ - EUTRANCellIdentifier.c \ - EUTRANTraceID.c \ - EventType.c \ - ForbiddenInterRATs.c \ - ForbiddenTAs.c \ - ForbiddenTAs-Item.c \ - ForbiddenTACs.c \ - ForbiddenLAs.c \ - ForbiddenLAs-Item.c \ - ForbiddenLACs.c \ - Fourframes.c \ - GBR-QosInformation.c \ - GlobalENB-ID.c \ - GTPtunnelEndpoint.c \ - GTP-TEI.c \ - GUGroupIDList.c \ - GU-Group-ID.c \ - GUMMEI.c \ - HandoverReportType.c \ - HandoverRestrictionList.c \ - HFN.c \ - HWLoadIndicator.c \ - IntegrityProtectionAlgorithms.c \ - InterfacesToTrace.c \ - Key-eNodeB-Star.c \ - LAC.c \ - LastVisitedCell-Item.c \ - LastVisitedEUTRANCellInformation.c \ - LastVisitedUTRANCellInformation.c \ - LastVisitedGERANCellInformation.c \ - LoadIndicator.c \ - LocationReportingInformation.c \ - MME-Group-ID.c \ - MME-Code.c \ - Measurement-ID.c \ - MBSFN-Subframe-Infolist.c \ - MBSFN-Subframe-Info.c \ - MobilityParametersModificationRange.c \ - MobilityParametersInformation.c \ - Neighbour-Information.c \ - Neighbour-Information-Elm.c \ - NextHopChainingCount.c \ - Number-of-Antennaports.c \ - Oneframe.c \ - PDCP-SN.c \ - PCI.c \ - PLMN-Identity.c \ - PRACH-Configuration.c \ - Pre-emptionCapability.c \ - Pre-emptionVulnerability.c \ - PriorityLevel.c \ - QCI.c \ - ReceiveStatusofULPDCPSDUs.c \ - Registration-Request.c \ - RelativeNarrowbandTxPower.c \ - ReportArea.c \ - ReportCharacteristics.c \ - RNTP-Threshold.c \ - RRC-Context.c \ - RadioResourceStatus.c \ - DL-GBR-PRB-usage.c \ - UL-GBR-PRB-usage.c \ - DL-non-GBR-PRB-usage.c \ - UL-non-GBR-PRB-usage.c \ - DL-Total-PRB-usage.c \ - UL-Total-PRB-usage.c \ - RadioframeAllocationPeriod.c \ - RadioframeAllocationOffset.c \ - S1TNLLoadIndicator.c \ - ServedCellsToActivate.c \ - ServedCellsToActivate-Item.c \ - ServedCellsToModify.c \ - ServedCellsToModify-Item.c \ - Old-ECGIs.c \ - ServedCells.c \ - ServedCellItem.c \ - ServedCell-Information.c \ - ShortMAC-I.c \ - SRVCCOperationPossible.c \ - SubframeAssignment.c \ - SpecialSubframe-Info.c \ - SpecialSubframePatterns.c \ - SubscriberProfileIDforRFP.c \ - SubframeAllocation.c \ - TAC.c \ - TargeteNBtoSource-eNBTransparentContainer.c \ - TimeToWait.c \ - Time-UE-StayedInCell.c \ - TraceActivation.c \ - TraceCollectionEntityIPAddress.c \ - TraceDepth.c \ - Transmission-Bandwidth.c \ - TransportLayerAddress.c \ - TypeOfError.c \ - UE-HistoryInformation.c \ - UE-S1AP-ID.c \ - UE-ID.c \ - UEAggregateMaximumBitRate.c \ - UESecurityCapabilities.c \ - UE-ContextInformation.c \ - UL-InterferenceOverloadIndication.c \ - UL-InterferenceOverloadIndication-Item.c \ - UL-HighInterferenceIndicationInfo.c \ - UL-HighInterferenceIndicationInfo-Item.c \ - UL-HighInterferenceIndication.c \ - UE-RLF-Report-Container.c \ - IE.c \ - PDU.c \ - InitiatingMessage.c \ - SuccessfulOutcome.c \ - UnsuccessfulOutcome.c \ - HandoverRequest.c \ - HandoverRequestAcknowledge.c \ - HandoverPreparationFailure.c \ - SNStatusTransfer.c \ - UEContextRelease.c \ - HandoverCancel.c \ - HandoverReport.c \ - ErrorIndication.c \ - ResetRequest.c \ - ResetResponse.c \ - X2SetupRequest.c \ - X2SetupResponse.c \ - X2SetupFailure.c \ - LoadInformation.c \ - ENBConfigurationUpdate.c \ - ENBConfigurationUpdateAcknowledge.c \ - ENBConfigurationUpdateFailure.c \ - ResourceStatusRequest.c \ - ResourceStatusResponse.c \ - ResourceStatusFailure.c \ - ResourceStatusUpdate.c \ - RLFIndication.c \ - PrivateMessage.c \ - MobilityChangeRequest.c \ - MobilityChangeAcknowledge.c \ - MobilityChangeFailure.c \ - CellActivationRequest.c \ - CellActivationResponse.c \ - CellActivationFailure.c - -ASN_MODULE_HEADERS= \ - Criticality.h \ - Presence.h \ - PrivateIE-ID.h \ - ProcedureCode.h \ - ProtocolIE-ID.h \ - TriggeringMessage.h \ - IE-Extensions.h \ - AS-SecurityInformation.h \ - AllocationAndRetentionPriority.h \ - ActivatedCellList.h \ - ActivatedCellList-Item.h \ - BitRate.h \ - BroadcastPLMNs-Item.h \ - CapacityValue.h \ - CellCapacityClassValue.h \ - CellToReport-List.h \ - CellToReport-Item.h \ - CellMeasurementResult-List.h \ - CellMeasurementResult-Item.h \ - ReportingPeriodicity.h \ - Cause.h \ - CauseMisc.h \ - CauseProtocol.h \ - CauseRadioNetwork.h \ - CauseTransport.h \ - Cell-Size.h \ - CellInformation-List.h \ - CellInformation-Item.h \ - CellType.h \ - CompositeAvailableCapacityGroup.h \ - CompositeAvailableCapacity.h \ - COUNTvalue.h \ - CriticalityDiagnostics.h \ - CriticalityDiagnostics-IE-List.h \ - CriticalityDiagnostics-IE-Elm.h \ - CRNTI.h \ - CyclicPrefixDL.h \ - CyclicPrefixUL.h \ - DeactivationIndication.h \ - DL-Forwarding.h \ - E-RABs-Admitted-List.h \ - E-RABs-Admitted-Item.h \ - E-RABs-ToBeSetup-List.h \ - E-RABs-ToBeSetup-Item.h \ - E-RABs-SubjectToStatusTransfer-List.h \ - E-RABs-SubjectToStatusTransfer-Item.h \ - EARFCN.h \ - FDD-Info.h \ - TDD-Info.h \ - EUTRA-Mode-Info.h \ - ECGI.h \ - ENB-ID.h \ - EncryptionAlgorithms.h \ - EPLMNs.h \ - E-RAB-ID.h \ - E-RAB-Level-QoS-Parameters.h \ - E-RAB-List.h \ - E-RAB-Item.h \ - EUTRANCellIdentifier.h \ - EUTRANTraceID.h \ - EventType.h \ - ForbiddenInterRATs.h \ - ForbiddenTAs.h \ - ForbiddenTAs-Item.h \ - ForbiddenTACs.h \ - ForbiddenLAs.h \ - ForbiddenLAs-Item.h \ - ForbiddenLACs.h \ - Fourframes.h \ - GBR-QosInformation.h \ - GlobalENB-ID.h \ - GTPtunnelEndpoint.h \ - GTP-TEI.h \ - GUGroupIDList.h \ - GU-Group-ID.h \ - GUMMEI.h \ - HandoverReportType.h \ - HandoverRestrictionList.h \ - HFN.h \ - HWLoadIndicator.h \ - IntegrityProtectionAlgorithms.h \ - InterfacesToTrace.h \ - Key-eNodeB-Star.h \ - LAC.h \ - LastVisitedCell-Item.h \ - LastVisitedEUTRANCellInformation.h \ - LastVisitedUTRANCellInformation.h \ - LastVisitedGERANCellInformation.h \ - LoadIndicator.h \ - LocationReportingInformation.h \ - MME-Group-ID.h \ - MME-Code.h \ - Measurement-ID.h \ - MBSFN-Subframe-Infolist.h \ - MBSFN-Subframe-Info.h \ - MobilityParametersModificationRange.h \ - MobilityParametersInformation.h \ - Neighbour-Information.h \ - Neighbour-Information-Elm.h \ - NextHopChainingCount.h \ - Number-of-Antennaports.h \ - Oneframe.h \ - PDCP-SN.h \ - PCI.h \ - PLMN-Identity.h \ - PRACH-Configuration.h \ - Pre-emptionCapability.h \ - Pre-emptionVulnerability.h \ - PriorityLevel.h \ - QCI.h \ - ReceiveStatusofULPDCPSDUs.h \ - Registration-Request.h \ - RelativeNarrowbandTxPower.h \ - ReportArea.h \ - ReportCharacteristics.h \ - RNTP-Threshold.h \ - RRC-Context.h \ - RadioResourceStatus.h \ - DL-GBR-PRB-usage.h \ - UL-GBR-PRB-usage.h \ - DL-non-GBR-PRB-usage.h \ - UL-non-GBR-PRB-usage.h \ - DL-Total-PRB-usage.h \ - vUL-Total-PRB-usage.h \ - RadioframeAllocationPeriod.h \ - RadioframeAllocationOffset.h \ - S1TNLLoadIndicator.h \ - ServedCellsToActivate.h \ - ServedCellsToActivate-Item.h \ - ServedCellsToModify.h \ - ServedCellsToModify-Item.h \ - Old-ECGIs.h \ - ServedCells.h \ - ServedCellItem.h \ - ServedCell-Information.h \ - ShortMAC-I.h \ - SRVCCOperationPossible.h \ - SubframeAssignment.h \ - SpecialSubframe-Info.h \ - SpecialSubframePatterns.h \ - SubscriberProfileIDforRFP.h \ - SubframeAllocation.h \ - TAC.h \ - TargeteNBtoSource-eNBTransparentContainer.h \ - TimeToWait.h \ - Time-UE-StayedInCell.h \ - TraceActivation.h \ - TraceCollectionEntityIPAddress.h \ - TraceDepth.h \ - Transmission-Bandwidth.h \ - TransportLayerAddress.h \ - TypeOfError.h \ - UE-HistoryInformation.h \ - UE-S1AP-ID.h \ - UE-ID.h \ - UEAggregateMaximumBitRate.h \ - UESecurityCapabilities.h \ - UE-ContextInformation.h \ - UL-InterferenceOverloadIndication.h \ - UL-InterferenceOverloadIndication-Item.h \ - UL-HighInterferenceIndicationInfo.h \ - UL-HighInterferenceIndicationInfo-Item.h \ - UL-HighInterferenceIndication.h \ - UE-RLF-Report-Container.h \ - IE.h \ - PDU.h \ - InitiatingMessage.h \ - SuccessfulOutcome.h \ - UnsuccessfulOutcome.h \ - HandoverRequest.h \ - HandoverRequestAcknowledge.h \ - HandoverPreparationFailure.h \ - SNStatusTransfer.h \ - UEContextRelease.h \ - HandoverCancel.h \ - HandoverReport.h \ - ErrorIndication.h \ - ResetRequest.h \ - ResetResponse.h \ - X2SetupRequest.h \ - X2SetupResponse.h \ - X2SetupFailure.h \ - LoadInformation.h \ - ENBConfigurationUpdate.h \ - ENBConfigurationUpdateAcknowledge.h \ - ENBConfigurationUpdateFailure.h \ - ResourceStatusRequest.h \ - ResourceStatusResponse.h \ - ResourceStatusFailure.h \ - ResourceStatusUpdate.h \ - RLFIndication.h \ - PrivateMessage.h \ - MobilityChangeRequest.h \ - MobilityChangeAcknowledge.h \ - MobilityChangeFailure.h \ - CellActivationRequest.h \ - CellActivationResponse.h \ - CellActivationFailure.h - -ASN_MODULE_HEADERS+=ANY.h -ASN_MODULE_SOURCES+=ANY.c -ASN_MODULE_HEADERS+=BOOLEAN.h -ASN_MODULE_SOURCES+=BOOLEAN.c -ASN_MODULE_HEADERS+=INTEGER.h -ASN_MODULE_HEADERS+=NativeEnumerated.h -ASN_MODULE_SOURCES+=INTEGER.c -ASN_MODULE_HEADERS+=NULL.h -ASN_MODULE_SOURCES+=NULL.c -ASN_MODULE_SOURCES+=NativeEnumerated.c -ASN_MODULE_HEADERS+=NativeInteger.h -ASN_MODULE_SOURCES+=NativeInteger.c -ASN_MODULE_HEADERS+=OBJECT_IDENTIFIER.h -ASN_MODULE_SOURCES+=OBJECT_IDENTIFIER.c -ASN_MODULE_HEADERS+=asn_SEQUENCE_OF.h -ASN_MODULE_SOURCES+=asn_SEQUENCE_OF.c -ASN_MODULE_HEADERS+=asn_SET_OF.h -ASN_MODULE_SOURCES+=asn_SET_OF.c -ASN_MODULE_HEADERS+=constr_CHOICE.h -ASN_MODULE_SOURCES+=constr_CHOICE.c -ASN_MODULE_HEADERS+=constr_SEQUENCE.h -ASN_MODULE_SOURCES+=constr_SEQUENCE.c -ASN_MODULE_HEADERS+=constr_SEQUENCE_OF.h -ASN_MODULE_SOURCES+=constr_SEQUENCE_OF.c -ASN_MODULE_HEADERS+=constr_SET_OF.h -ASN_MODULE_SOURCES+=constr_SET_OF.c -ASN_MODULE_HEADERS+=asn_application.h -ASN_MODULE_HEADERS+=asn_system.h -ASN_MODULE_HEADERS+=asn_codecs.h -ASN_MODULE_HEADERS+=asn_internal.h -ASN_MODULE_HEADERS+=OCTET_STRING.h -ASN_MODULE_SOURCES+=OCTET_STRING.c -ASN_MODULE_HEADERS+=BIT_STRING.h -ASN_MODULE_SOURCES+=BIT_STRING.c -ASN_MODULE_SOURCES+=asn_codecs_prim.c -ASN_MODULE_HEADERS+=asn_codecs_prim.h -ASN_MODULE_HEADERS+=ber_tlv_length.h -ASN_MODULE_SOURCES+=ber_tlv_length.c -ASN_MODULE_HEADERS+=ber_tlv_tag.h -ASN_MODULE_SOURCES+=ber_tlv_tag.c -ASN_MODULE_HEADERS+=ber_decoder.h -ASN_MODULE_SOURCES+=ber_decoder.c -ASN_MODULE_HEADERS+=der_encoder.h -ASN_MODULE_SOURCES+=der_encoder.c -ASN_MODULE_HEADERS+=constr_TYPE.h -ASN_MODULE_SOURCES+=constr_TYPE.c -ASN_MODULE_HEADERS+=constraints.h -ASN_MODULE_SOURCES+=constraints.c -ASN_MODULE_HEADERS+=xer_support.h -ASN_MODULE_SOURCES+=xer_support.c -ASN_MODULE_HEADERS+=xer_decoder.h -ASN_MODULE_SOURCES+=xer_decoder.c -ASN_MODULE_HEADERS+=xer_encoder.h -ASN_MODULE_SOURCES+=xer_encoder.c -ASN_MODULE_HEADERS+=per_support.h -ASN_MODULE_SOURCES+=per_support.c -ASN_MODULE_HEADERS+=per_decoder.h -ASN_MODULE_SOURCES+=per_decoder.c -ASN_MODULE_HEADERS+=per_encoder.h -ASN_MODULE_SOURCES+=per_encoder.c -ASN_MODULE_HEADERS+=per_opentype.h -ASN_MODULE_SOURCES+=per_opentype.c diff --git a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-CommonDataTypes.asn b/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-CommonDataTypes.asn deleted file mode 100644 index da628fd3eb..0000000000 --- a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-CommonDataTypes.asn +++ /dev/null @@ -1,126 +0,0 @@ --- ************************************************************** --- --- Common definitions --- --- ************************************************************** - -X2AP-CommonDataTypes { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-CommonDataTypes (3) } - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - --- ************************************************************** --- --- Extension constants --- --- ************************************************************** - -maxPrivateIEs INTEGER ::= 65535 -maxProtocolExtensions INTEGER ::= 65535 -maxProtocolIEs INTEGER ::= 65535 - --- ************************************************************** --- --- Common Data Types --- --- ************************************************************** - -Criticality ::= ENUMERATED { reject, ignore, notify } - -Presence ::= ENUMERATED { optional, conditional, mandatory } - -PrivateIE-ID ::= CHOICE { - local INTEGER (0.. maxPrivateIEs), - global OBJECT IDENTIFIER -} - -ProcedureCode ::= INTEGER { - id-handoverPreparation (0), - id-handoverCancel (1), - id-loadIndication (2), - id-errorIndication (3), - id-snStatusTransfer (4), - id-uEContextRelease (5), - id-x2Setup (6), - id-reset (7), - id-eNBConfigurationUpdate (8), - id-resourceStatusReportingInitiation (9), - id-resourceStatusReporting (10), - id-privateMessage (11), - id-mobilitySettingsChange (12), - id-rLFIndication (13), - id-handoverReport (14), - id-cellActivation (15) -} (0..255) - - -ProtocolIE-ID ::= INTEGER { - id-E-RABs-Admitted-Item (0), - id-E-RABs-Admitted-List (1), - id-E-RAB-Item (2), - id-E-RABs-NotAdmitted-List (3), - id-E-RABs-ToBeSetup-Item (4), - id-Cause (5), - id-CellInformation (6), - id-CellInformation-Item (7), - id-New-eNB-UE-X2AP-ID (9), - id-Old-eNB-UE-X2AP-ID (10), - id-TargetCell-ID (11), - id-TargeteNBtoSource-eNBTransparentContainer (12), - id-TraceActivation (13), - id-UE-ContextInformation (14), - id-UE-HistoryInformation (15), - id-UE-X2AP-ID (16), - id-CriticalityDiagnostics (17), - id-E-RABs-SubjectToStatusTransfer-List (18), - id-E-RABs-SubjectToStatusTransfer-Item (19), - id-ServedCells (20), - id-GlobalENB-ID (21), - id-TimeToWait (22), - id-GUMMEI-ID (23), - id-GUGroupIDList (24), - id-ServedCellsToAdd (25), - id-ServedCellsToModify (26), - id-ServedCellsToDelete (27), - id-Registration-Request (28), - id-CellToReport (29), - id-ReportingPeriodicity (30), - id-CellToReport-Item (31), - id-CellMeasurementResult (32), - id-CellMeasurementResult-Item (33), - id-GUGroupIDToAddList (34), - id-GUGroupIDToDeleteList (35), - id-SRVCCOperationPossible (36), - id-Measurement-ID (37), - id-ReportCharacteristics (38), - id-ENB1-Measurement-ID (39), - id-ENB2-Measurement-ID (40), - id-Number-of-Antennaports (41), - id-CompositeAvailableCapacityGroup (42), - id-ENB1-Cell-ID (43), - id-ENB2-Cell-ID (44), - id-ENB2-Proposed-Mobility-Parameters (45), - id-ENB1-Mobility-Parameters (46), - id-ENB2-Mobility-Parameters-Modification-Range (47), - id-FailureCellPCI (48), - id-Re-establishmentCellECGI (49), - id-FailureCellCRNTI (50), - id-ShortMAC-I (51), - id-SourceCellECGI (52), - id-FailureCellECGI (53), - id-HandoverReportType (54), - id-PRACH-Configuration (55), - id-MBSFN-Subframe-Info (56), - id-ServedCellsToActivate (57), - id-ActivatedCellList (58), - id-DeactivationIndication (59), - id-UE-RLF-Report-Container (60) -} (0..maxProtocolIEs) - - -TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome} - -END \ No newline at end of file diff --git a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-Constants.asn b/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-Constants.asn deleted file mode 100644 index 62a80cfc64..0000000000 --- a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-Constants.asn +++ /dev/null @@ -1,138 +0,0 @@ --- ************************************************************** --- --- Constant definitions --- --- ************************************************************** - -X2AP-Constants { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Constants (4) } - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - -IMPORTS - ProcedureCode, - ProtocolIE-ID -FROM X2AP-CommonDataTypes; - --- ************************************************************** --- --- Elementary Procedures --- --- ************************************************************** - -id-handoverPreparation ProcedureCode ::= 0 -id-handoverCancel ProcedureCode ::= 1 -id-loadIndication ProcedureCode ::= 2 -id-errorIndication ProcedureCode ::= 3 -id-snStatusTransfer ProcedureCode ::= 4 -id-uEContextRelease ProcedureCode ::= 5 -id-x2Setup ProcedureCode ::= 6 -id-reset ProcedureCode ::= 7 -id-eNBConfigurationUpdate ProcedureCode ::= 8 -id-resourceStatusReportingInitiation ProcedureCode ::= 9 -id-resourceStatusReporting ProcedureCode ::= 10 -id-privateMessage ProcedureCode ::= 11 -id-mobilitySettingsChange ProcedureCode ::= 12 -id-rLFIndication ProcedureCode ::= 13 -id-handoverReport ProcedureCode ::= 14 -id-cellActivation ProcedureCode ::= 15 - - - --- ************************************************************** --- --- Lists --- --- ************************************************************** - -maxEARFCN INTEGER ::= 65535 -maxInterfaces INTEGER ::= 16 -maxCellineNB INTEGER ::= 256 -maxnoofBearers INTEGER ::= 256 -maxNrOfErrors INTEGER ::= 256 -maxnoofPDCP-SN INTEGER ::= 16 -- FFS Value to be checked -maxnoofEPLMNs INTEGER ::= 15 -maxnoofEPLMNsPlusOne INTEGER ::= 16 -maxnoofForbLACs INTEGER ::= 4096 -maxnoofForbTACs INTEGER ::= 4096 -maxnoofBPLMNs INTEGER ::= 6 -maxnoofNeighbours INTEGER ::= 512 -maxnoofPRBs INTEGER ::= 110 -maxPools INTEGER ::= 16 -maxnoofCells INTEGER ::= 16 -maxnoofMBSFN INTEGER ::= 8 - - - - --- ************************************************************** --- --- IEs --- --- ************************************************************** - -id-E-RABs-Admitted-Item ProtocolIE-ID ::= 0 -id-E-RABs-Admitted-List ProtocolIE-ID ::= 1 -id-E-RAB-Item ProtocolIE-ID ::= 2 -id-E-RABs-NotAdmitted-List ProtocolIE-ID ::= 3 -id-E-RABs-ToBeSetup-Item ProtocolIE-ID ::= 4 -id-Cause ProtocolIE-ID ::= 5 -id-CellInformation ProtocolIE-ID ::= 6 -id-CellInformation-Item ProtocolIE-ID ::= 7 -id-New-eNB-UE-X2AP-ID ProtocolIE-ID ::= 9 -id-Old-eNB-UE-X2AP-ID ProtocolIE-ID ::= 10 -id-TargetCell-ID ProtocolIE-ID ::= 11 -id-TargeteNBtoSource-eNBTransparentContainer ProtocolIE-ID ::= 12 -id-TraceActivation ProtocolIE-ID ::= 13 -id-UE-ContextInformation ProtocolIE-ID ::= 14 -id-UE-HistoryInformation ProtocolIE-ID ::= 15 -id-UE-X2AP-ID ProtocolIE-ID ::= 16 -id-CriticalityDiagnostics ProtocolIE-ID ::= 17 -id-E-RABs-SubjectToStatusTransfer-List ProtocolIE-ID ::= 18 -id-E-RABs-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 19 -id-ServedCells ProtocolIE-ID ::= 20 -id-GlobalENB-ID ProtocolIE-ID ::= 21 -id-TimeToWait ProtocolIE-ID ::= 22 -id-GUMMEI-ID ProtocolIE-ID ::= 23 -id-GUGroupIDList ProtocolIE-ID ::= 24 -id-ServedCellsToAdd ProtocolIE-ID ::= 25 -id-ServedCellsToModify ProtocolIE-ID ::= 26 -id-ServedCellsToDelete ProtocolIE-ID ::= 27 -id-Registration-Request ProtocolIE-ID ::= 28 -id-CellToReport ProtocolIE-ID ::= 29 -id-ReportingPeriodicity ProtocolIE-ID ::= 30 -id-CellToReport-Item ProtocolIE-ID ::= 31 -id-CellMeasurementResult ProtocolIE-ID ::= 32 -id-CellMeasurementResult-Item ProtocolIE-ID ::= 33 -id-GUGroupIDToAddList ProtocolIE-ID ::= 34 -id-GUGroupIDToDeleteList ProtocolIE-ID ::= 35 -id-SRVCCOperationPossible ProtocolIE-ID ::= 36 -id-Measurement-ID ProtocolIE-ID ::= 37 -id-ReportCharacteristics ProtocolIE-ID ::= 38 -id-ENB1-Measurement-ID ProtocolIE-ID ::= 39 -id-ENB2-Measurement-ID ProtocolIE-ID ::= 40 -id-Number-of-Antennaports ProtocolIE-ID ::= 41 -id-CompositeAvailableCapacityGroup ProtocolIE-ID ::= 42 -id-ENB1-Cell-ID ProtocolIE-ID ::= 43 -id-ENB2-Cell-ID ProtocolIE-ID ::= 44 -id-ENB2-Proposed-Mobility-Parameters ProtocolIE-ID ::= 45 -id-ENB1-Mobility-Parameters ProtocolIE-ID ::= 46 -id-ENB2-Mobility-Parameters-Modification-Range ProtocolIE-ID ::= 47 -id-FailureCellPCI ProtocolIE-ID ::= 48 -id-Re-establishmentCellECGI ProtocolIE-ID ::= 49 -id-FailureCellCRNTI ProtocolIE-ID ::= 50 -id-ShortMAC-I ProtocolIE-ID ::= 51 -id-SourceCellECGI ProtocolIE-ID ::= 52 -id-FailureCellECGI ProtocolIE-ID ::= 53 -id-HandoverReportType ProtocolIE-ID ::= 54 -id-PRACH-Configuration ProtocolIE-ID ::= 55 -id-MBSFN-Subframe-Info ProtocolIE-ID ::= 56 -id-ServedCellsToActivate ProtocolIE-ID ::= 57 -id-ActivatedCellList ProtocolIE-ID ::= 58 -id-DeactivationIndication ProtocolIE-ID ::= 59 -id-UE-RLF-Report-Container ProtocolIE-ID ::= 60 - -END \ No newline at end of file diff --git a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-Containers.asn b/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-Containers.asn deleted file mode 100644 index 7cf4220142..0000000000 --- a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-Containers.asn +++ /dev/null @@ -1,194 +0,0 @@ --- ************************************************************** --- --- Container definitions --- --- ************************************************************** - -X2AP-Containers { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Containers (5) } - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - --- ************************************************************** --- --- IE parameter types from other modules. --- --- ************************************************************** - -IMPORTS - maxPrivateIEs, - maxProtocolExtensions, - maxProtocolIEs, - Criticality, - Presence, - PrivateIE-ID, - ProtocolIE-ID -FROM X2AP-CommonDataTypes; - --- ************************************************************** --- --- Class Definition for Protocol IEs --- --- ************************************************************** - -X2AP-PROTOCOL-IES ::= CLASS { - &id ProtocolIE-ID UNIQUE, - &criticality Criticality, - &Value, - &presence Presence -} -WITH SYNTAX { - ID &id - CRITICALITY &criticality - TYPE &Value - PRESENCE &presence -} - --- ************************************************************** --- --- Class Definition for Protocol IEs --- --- ************************************************************** - -X2AP-PROTOCOL-IES-PAIR ::= CLASS { - &id ProtocolIE-ID UNIQUE, - &firstCriticality Criticality, - &FirstValue, - &secondCriticality Criticality, - &SecondValue, - &presence Presence -} -WITH SYNTAX { - ID &id - FIRST CRITICALITY &firstCriticality - FIRST TYPE &FirstValue - SECOND CRITICALITY &secondCriticality - SECOND TYPE &SecondValue - PRESENCE &presence -} - --- ************************************************************** --- --- Class Definition for Protocol Extensions --- --- ************************************************************** - -X2AP-PROTOCOL-EXTENSION ::= CLASS { - &id ProtocolIE-ID UNIQUE, - &criticality Criticality, - &Extension, - &presence Presence -} -WITH SYNTAX { - ID &id - CRITICALITY &criticality - EXTENSION &Extension - PRESENCE &presence -} - --- ************************************************************** --- --- Class Definition for Private IEs --- --- ************************************************************** - -X2AP-PRIVATE-IES ::= CLASS { - &id PrivateIE-ID, - &criticality Criticality, - &Value, - &presence Presence -} -WITH SYNTAX { - ID &id - CRITICALITY &criticality - TYPE &Value - PRESENCE &presence -} - --- ************************************************************** --- --- Container for Protocol IEs --- --- ************************************************************** - -ProtocolIE-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= - SEQUENCE (SIZE (0..maxProtocolIEs)) OF - ProtocolIE-Field {{IEsSetParam}} - -ProtocolIE-Single-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= - ProtocolIE-Field {{IEsSetParam}} - -ProtocolIE-Field {X2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { - id X2AP-PROTOCOL-IES.&id ({IEsSetParam}), - criticality X2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), - value X2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) -} - --- ************************************************************** --- --- Container for Protocol IE Pairs --- --- ************************************************************** - -ProtocolIE-ContainerPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= - SEQUENCE (SIZE (0..maxProtocolIEs)) OF - ProtocolIE-FieldPair {{IEsSetParam}} - -ProtocolIE-FieldPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { - id X2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), - firstCriticality X2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), - firstValue X2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), - secondCriticality X2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), - secondValue X2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) -} - --- ************************************************************** --- --- Container Lists for Protocol IE Containers --- --- ************************************************************** - -ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES : IEsSetParam} ::= - SEQUENCE (SIZE (lowerBound..upperBound)) OF - ProtocolIE-Container {{IEsSetParam}} - -ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= - SEQUENCE (SIZE (lowerBound..upperBound)) OF - ProtocolIE-ContainerPair {{IEsSetParam}} - --- ************************************************************** --- --- Container for Protocol Extensions --- --- ************************************************************** - -ProtocolExtensionContainer {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= - SEQUENCE (SIZE (1..maxProtocolExtensions)) OF - ProtocolExtensionField {{ExtensionSetParam}} - -ProtocolExtensionField {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { - id X2AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), - criticality X2AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), - extensionValue X2AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) -} - --- ************************************************************** --- --- Container for Private IEs --- --- ************************************************************** - -PrivateIE-Container {X2AP-PRIVATE-IES : IEsSetParam} ::= - SEQUENCE (SIZE (1..maxPrivateIEs)) OF - PrivateIE-Field {{IEsSetParam}} - -PrivateIE-Field {X2AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { - id X2AP-PRIVATE-IES.&id ({IEsSetParam}), - criticality X2AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), - value X2AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) -} - -END \ No newline at end of file diff --git a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-IEs.asn b/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-IEs.asn deleted file mode 100644 index 26cb154fc4..0000000000 --- a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-IEs.asn +++ /dev/null @@ -1,989 +0,0 @@ --- ************************************************************** --- --- Information Element Definitions --- --- ************************************************************** - -X2AP-IEs { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-IEs (2) } - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - -IMPORTS - - id-E-RAB-Item, - id-Number-of-Antennaports, - id-MBSFN-Subframe-Info, - id-PRACH-Configuration, - - maxnoofBearers, - maxCellineNB, - maxEARFCN, - maxInterfaces, - - maxnoofBPLMNs, - maxnoofCells, - maxnoofEPLMNs, - maxnoofEPLMNsPlusOne, - maxnoofForbLACs, - maxnoofForbTACs, - maxnoofNeighbours, - maxnoofPRBs, - maxNrOfErrors, - maxPools, - maxnoofMBSFN - -FROM X2AP-Constants - - Criticality, - ProcedureCode, - ProtocolIE-ID, - TriggeringMessage, - maxProtocolExtensions - -FROM X2AP-CommonDataTypes - - IE -FROM X2AP-PDU; - -IE-Extensions ::= SEQUENCE (SIZE (1..maxProtocolExtensions)) OF IE - --- A - -AS-SecurityInformation ::= SEQUENCE { - key-eNodeB-star Key-eNodeB-Star, - nextHopChainingCount NextHopChainingCount, - -- iE-Extensions ProtocolExtensionContainer { { AS-SecurityInformation-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -AllocationAndRetentionPriority ::= SEQUENCE { - priorityLevel PriorityLevel, - pre-emptionCapability Pre-emptionCapability, - pre-emptionVulnerability Pre-emptionVulnerability, - -- iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -ActivatedCellList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ActivatedCellList-Item - -ActivatedCellList-Item::= SEQUENCE { - ecgi ECGI, - -- iE-Extensions ProtocolExtensionContainer { { ActivatedCellList-Item-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - --- B - - -BitRate ::= INTEGER (0..10000000000) -BroadcastPLMNs-Item ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF PLMN-Identity - - --- C - -CapacityValue ::= INTEGER (0..100) - -CellCapacityClassValue ::= INTEGER (1..100, ...) - -CellToReport-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF IE - -CellToReport-Item ::= SEQUENCE { - cell-ID ECGI, - -- iE-Extensions ProtocolExtensionContainer { {CellToReport-Item-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -CellMeasurementResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF IE - -CellMeasurementResult-Item ::= SEQUENCE { - cell-ID ECGI, - hWOverLoadIndicator HWLoadIndicator OPTIONAL, - s1TNLOverLoadIndicator S1TNLLoadIndicator OPTIONAL, - radioResourceStatus RadioResourceStatus OPTIONAL, - -- iE-Extensions ProtocolExtensionContainer { {CellMeasurementResult-Item-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -ReportingPeriodicity ::= ENUMERATED { - one-thousand-ms, - two-thousand-ms, - five-thousand-ms, - ten-thousand-ms, - ... -} - -Cause ::= CHOICE { - radioNetwork CauseRadioNetwork, - transport CauseTransport, - protocol CauseProtocol, - misc CauseMisc, - ... -} - -CauseMisc ::= ENUMERATED { - control-processing-overload, - hardware-failure, - om-intervention, - not-enough-user-plane-processing-resources, - unspecified, - ... -} - -CauseProtocol ::= ENUMERATED { - transfer-syntax-error, - abstract-syntax-error-reject, - abstract-syntax-error-ignore-and-notify, - message-not-compatible-with-receiver-state, - semantic-error, - unspecified, - abstract-syntax-error-falsely-constructed-message, - ... -} - -CauseRadioNetwork ::= ENUMERATED { - handover-desirable-for-radio-reasons, - time-critical-handover, - resource-optimisation-handover, - reduce-load-in-serving-cell, - partial-handover, - unknown-new-eNB-UE-X2AP-ID, - unknown-old-eNB-UE-X2AP-ID, - unknown-pair-of-UE-X2AP-ID, - ho-target-not-allowed, - tx2relocoverall-expiry, - trelocprep-expiry, - cell-not-available, - no-radio-resources-available-in-target-cell, - invalid-MME-GroupID, - unknown-MME-Code, - encryption-and-or-integrity-protection-algorithms-not-supported, - reportCharacteristicsEmpty, - noReportPeriodicity, - existingMeasurementID, - unknown-eNB-Measurement-ID, - measurement-temporarily-not-available, - unspecified, - ..., - load-balancing, - handover-optimisation, - value-out-of-allowed-range, - multiple-E-RAB-ID-instances, - switch-off-ongoing, - not-supported-QCI-value - -} - -CauseTransport ::= ENUMERATED { - transport-resource-unavailable, - unspecified, - ... -} - -Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ... } - -CellInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF IE - -CellInformation-Item ::= SEQUENCE { - cell-ID ECGI, - ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication OPTIONAL, - ul-HighInterferenceIndicationInfo UL-HighInterferenceIndicationInfo OPTIONAL, - relativeNarrowbandTxPower RelativeNarrowbandTxPower OPTIONAL, - -- iE-Extensions ProtocolExtensionContainer { {CellInformation-Item-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -CellType ::= SEQUENCE { - cell-Size Cell-Size, - -- iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -CompositeAvailableCapacityGroup ::= SEQUENCE { - dL-CompositeAvailableCapacity CompositeAvailableCapacity, - uL-CompositeAvailableCapacity CompositeAvailableCapacity, - -- iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacityGroup-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -CompositeAvailableCapacity ::= SEQUENCE { - cellCapacityClassValue CellCapacityClassValue OPTIONAL, - capacityValue CapacityValue, - -- iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacity-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -COUNTvalue ::= SEQUENCE { - pDCP-SN PDCP-SN, - hFN HFN, - -- iE-Extensions ProtocolExtensionContainer { { COUNTvalue-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -CriticalityDiagnostics ::= SEQUENCE { - procedureCode ProcedureCode OPTIONAL, - triggeringMessage TriggeringMessage OPTIONAL, - procedureCriticality Criticality OPTIONAL, - iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, - -- iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF CriticalityDiagnostics-IE-Elm - -CriticalityDiagnostics-IE-Elm ::= SEQUENCE { - iECriticality Criticality, - iE-ID ProtocolIE-ID, - typeOfError TypeOfError, - -- iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -CRNTI ::= BIT STRING (SIZE (16)) - -CyclicPrefixDL ::= ENUMERATED { - normal, - extended, - ... -} - -CyclicPrefixUL ::= ENUMERATED { - normal, - extended, - ... -} - - --- D - -DeactivationIndication::= ENUMERATED { - deactivated, - ... -} - -DL-Forwarding ::= ENUMERATED { - dL-forwardingProposed, - ... -} - --- E - -E-RABs-Admitted-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF IE - -E-RABs-Admitted-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - uL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, - dL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, - -- iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-Item-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABs-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF IE - -E-RABs-ToBeSetup-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - dL-Forwarding DL-Forwarding OPTIONAL, - uL-GTPtunnelEndpoint GTPtunnelEndpoint, - -- iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetup-ItemExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABs-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF IE - -E-RABs-SubjectToStatusTransfer-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, - uL-COUNTvalue COUNTvalue, - dL-COUNTvalue COUNTvalue, - -- iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -EARFCN ::= INTEGER (0..maxEARFCN) - -FDD-Info ::= SEQUENCE { - uL-EARFCN EARFCN, - dL-EARFCN EARFCN, - uL-Transmission-Bandwidth Transmission-Bandwidth, - dL-Transmission-Bandwidth Transmission-Bandwidth, - -- iE-Extensions ProtocolExtensionContainer { {FDD-Info-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -TDD-Info ::= SEQUENCE { - eARFCN EARFCN, - transmission-Bandwidth Transmission-Bandwidth, - subframeAssignment SubframeAssignment, - specialSubframe-Info SpecialSubframe-Info, - -- iE-Extensions ProtocolExtensionContainer { {TDD-Info-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -EUTRA-Mode-Info ::= CHOICE { - fDD FDD-Info, - tDD TDD-Info, - ... -} - -ECGI ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - eUTRANcellIdentifier EUTRANCellIdentifier, - -- iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -ENB-ID ::= CHOICE { - macro-eNB-ID BIT STRING (SIZE (20)), - home-eNB-ID BIT STRING (SIZE (28)), - ... -} - -EncryptionAlgorithms ::= BIT STRING (SIZE (16, ...)) - -EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMN-Identity - -E-RAB-ID ::= INTEGER (0..15, ...) - -E-RAB-Level-QoS-Parameters ::= SEQUENCE { - qCI QCI, - allocationAndRetentionPriority AllocationAndRetentionPriority, - gbrQosInformation GBR-QosInformation OPTIONAL, - -- iE-Extensions ProtocolExtensionContainer { { E-RAB-Level-QoS-Parameters-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RAB-List ::= SEQUENCE (SIZE(1.. maxnoofBearers)) OF IE - -E-RAB-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - cause Cause, - -- iE-Extensions ProtocolExtensionContainer { {E-RAB-Item-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -EUTRANCellIdentifier ::= BIT STRING (SIZE (28)) - -EUTRANTraceID ::= OCTET STRING (SIZE (8)) - - -EventType ::= ENUMERATED{ - change-of-serving-cell, - ... -} - - --- F - -ForbiddenInterRATs ::= ENUMERATED { - all, - geran, - utran, - cdma2000, - ..., - geranandutran, - cdma2000andutran - -} - -ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item - -ForbiddenTAs-Item ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - forbiddenTACs ForbiddenTACs, - -- iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC - -ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item - -ForbiddenLAs-Item ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - forbiddenLACs ForbiddenLACs, - -- iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC - -Fourframes ::= BIT STRING (SIZE (24)) - --- G - -GBR-QosInformation ::= SEQUENCE { - e-RAB-MaximumBitrateDL BitRate, - e-RAB-MaximumBitrateUL BitRate, - e-RAB-GuaranteedBitrateDL BitRate, - e-RAB-GuaranteedBitrateUL BitRate, - -- iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -GlobalENB-ID ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - eNB-ID ENB-ID, - -- iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -GTPtunnelEndpoint ::= SEQUENCE { - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEI, - -- iE-Extensions ProtocolExtensionContainer { {GTPtunnelEndpoint-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -GTP-TEI ::= OCTET STRING (SIZE (4)) - -GUGroupIDList ::= SEQUENCE (SIZE (1..maxPools)) OF GU-Group-ID - - -GU-Group-ID ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - mME-Group-ID MME-Group-ID, - -- iE-Extensions ProtocolExtensionContainer { {GU-Group-ID-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -GUMMEI ::= SEQUENCE { - - gU-Group-ID GU-Group-ID, - mME-Code MME-Code, - -- iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - --- H - -HandoverReportType ::= ENUMERATED { - hoTooEarly, - hoToWrongCell, - ... -} - -HandoverRestrictionList ::= SEQUENCE { - servingPLMN PLMN-Identity, - equivalentPLMNs EPLMNs OPTIONAL, - forbiddenTAs ForbiddenTAs OPTIONAL, - forbiddenLAs ForbiddenLAs OPTIONAL, - forbiddenInterRATs ForbiddenInterRATs OPTIONAL, - -- iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -HFN ::= INTEGER (0..1048575) - -HWLoadIndicator ::= SEQUENCE { - dLHWLoadIndicator LoadIndicator, - uLHWLoadIndicator LoadIndicator, - -- iE-Extensions ProtocolExtensionContainer { { HWLoadIndicator-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - --- I - -IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16, ...)) - -InterfacesToTrace ::= BIT STRING (SIZE (8)) --- J --- K - - -Key-eNodeB-Star ::= BIT STRING (SIZE(256)) - --- L - - -LAC ::= OCTET STRING (SIZE (2)) --(EXCEPT ('0000'H|'FFFE'H)) - -LastVisitedCell-Item ::= CHOICE { - e-UTRAN-Cell LastVisitedEUTRANCellInformation, - uTRAN-Cell LastVisitedUTRANCellInformation, - gERAN-Cell LastVisitedGERANCellInformation, - ... -} - -LastVisitedEUTRANCellInformation ::= SEQUENCE { - global-Cell-ID ECGI, - cellType CellType, - time-UE-StayedInCell Time-UE-StayedInCell, - -- iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -LastVisitedUTRANCellInformation ::= OCTET STRING - -LastVisitedGERANCellInformation ::= CHOICE { - undefined NULL, - ... -} - - -LoadIndicator ::= ENUMERATED { - lowLoad, - mediumLoad, - highLoad, - overLoad, - ... -} - - - -LocationReportingInformation ::= SEQUENCE { - eventType EventType, - reportArea ReportArea, - -- iE-Extensions ProtocolExtensionContainer { {LocationReportingInformation-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - --- M - - -MME-Group-ID ::= OCTET STRING (SIZE (2)) - -MME-Code ::= OCTET STRING (SIZE (1)) - -Measurement-ID ::= INTEGER (1..4095, ...) - -MBSFN-Subframe-Infolist::= SEQUENCE (SIZE(1.. maxnoofMBSFN)) OF MBSFN-Subframe-Info - -MBSFN-Subframe-Info ::= SEQUENCE { - radioframeAllocationPeriod RadioframeAllocationPeriod, - radioframeAllocationOffset RadioframeAllocationOffset, - subframeAllocation SubframeAllocation, - -- iE-Extensions ProtocolExtensionContainer { { MBSFN-Subframe-Info-ExtIEs } } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -MobilityParametersModificationRange ::= SEQUENCE { - handoverTriggerChangeLowerLimit INTEGER (-20..20), - handoverTriggerChangeUpperLimit INTEGER (-20..20), - ... -} - -MobilityParametersInformation ::= SEQUENCE { - handoverTriggerChange INTEGER (-20..20), - ... -} - - --- N - -Neighbour-Information ::= SEQUENCE (SIZE (0..maxnoofNeighbours)) OF Neighbour-Information-Elm - -Neighbour-Information-Elm ::= SEQUENCE { - eCGI ECGI, - pCI PCI, - eARFCN EARFCN, - -- iE-Extensions ProtocolExtensionContainer { {Neighbour-Information-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -NextHopChainingCount ::= INTEGER (0..7) - -Number-of-Antennaports ::= ENUMERATED { - an1, - an2, - an4, - ... -} - --- O - -Oneframe ::= BIT STRING (SIZE (6)) - --- P - -PDCP-SN ::= INTEGER (0..4095) - -PCI ::= INTEGER (0..503, ...) - - -PLMN-Identity ::= OCTET STRING (SIZE(3)) - -PRACH-Configuration ::= SEQUENCE { - rootSequenceIndex INTEGER (0..837), - zeroCorrelationIndex INTEGER (0..15), - highSpeedFlag BOOLEAN, - prach-FreqOffset INTEGER (0..94), - prach-ConfigIndex INTEGER (0..63) OPTIONAL, -- present for TDD -- - -- iE-Extensions ProtocolExtensionContainer { {PRACH-Configuration-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -Pre-emptionCapability ::= ENUMERATED { - shall-not-trigger-pre-emption, - may-trigger-pre-emption -} - -Pre-emptionVulnerability ::= ENUMERATED { - not-pre-emptable, - pre-emptable -} - -PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) - --- Q - -QCI ::= INTEGER (0..255) - --- R - - -ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) - -Registration-Request ::= ENUMERATED { - start, - stop, - ... -} - -RelativeNarrowbandTxPower ::= SEQUENCE { - - rNTP-PerPRB BIT STRING (SIZE(6..110, ...)), - rNTP-Threshold RNTP-Threshold, - numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, - p-B INTEGER (0..3,...), - pDCCH-InterferenceImpact INTEGER (0..4,...), - -- iE-Extensions ProtocolExtensionContainer { { RelativeNarrowbandTxPower-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -ReportArea ::= ENUMERATED{ - ecgi, - ... -} - -ReportCharacteristics ::= BIT STRING (SIZE (32)) - -RNTP-Threshold ::= ENUMERATED { - minusInfinity, - minusEleven, - minusTen, - minusNine, - minusEight, - minusSeven, - minusSix, - minusFive, - minusFour, - minusThree, - minusTwo, - minusOne, - zero, - one, - two, - three, - ... -} - -RRC-Context ::= OCTET STRING - - -RadioResourceStatus ::= SEQUENCE { - dL-GBR-PRB-usage DL-GBR-PRB-usage, - uL-GBR-PRB-usage UL-GBR-PRB-usage, - dL-non-GBR-PRB-usage DL-non-GBR-PRB-usage, - uL-non-GBR-PRB-usage UL-non-GBR-PRB-usage, - dL-Total-PRB-usage DL-Total-PRB-usage, - uL-Total-PRB-usage UL-Total-PRB-usage, - -- iE-Extensions ProtocolExtensionContainer { {RadioResourceStatus-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -DL-GBR-PRB-usage::= INTEGER (0..100) - -UL-GBR-PRB-usage::= INTEGER (0..100) - -DL-non-GBR-PRB-usage::= INTEGER (0..100) - -UL-non-GBR-PRB-usage::= INTEGER (0..100) - -DL-Total-PRB-usage::= INTEGER (0..100) - -UL-Total-PRB-usage::= INTEGER (0..100) - -RadioframeAllocationPeriod ::= ENUMERATED{ - n1, - n2, - n4, - n8, - n16, - n32, - ... -} - -RadioframeAllocationOffset ::= INTEGER (0..7, ...) - --- S - -S1TNLLoadIndicator ::= SEQUENCE { - dLS1TNLLoadIndicator LoadIndicator, - uLS1TNLLoadIndicator LoadIndicator, - -- iE-Extensions ProtocolExtensionContainer { { S1TNLLoadIndicator-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -ServedCellsToActivate::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToActivate-Item - -ServedCellsToActivate-Item::= SEQUENCE { - ecgi ECGI, - -- iE-Extensions ProtocolExtensionContainer { { ServedCellsToActivate-Item-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -ServedCellsToModify::= SEQUENCE (SIZE (1..maxCellineNB)) OF IE - -ServedCellsToModify-Item::= SEQUENCE { - old-ecgi ECGI, - servedCellInfo ServedCell-Information, - neighbour-Info Neighbour-Information OPTIONAL, - -- iE-Extensions ProtocolExtensionContainer { { ServedCellsToModify-Item-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -Old-ECGIs::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI - -ServedCells ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF ServedCellItem - -ServedCellItem ::= SEQUENCE { - servedCellInfo ServedCell-Information, - neighbour-Info Neighbour-Information OPTIONAL, - -- iE-Extensions ProtocolExtensionContainer { {ServedCell-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -ServedCell-Information ::= SEQUENCE { - pCI PCI, - cellId ECGI, - tAC TAC, - broadcastPLMNs BroadcastPLMNs-Item, - eUTRA-Mode-Info EUTRA-Mode-Info, - -- iE-Extensions ProtocolExtensionContainer { {ServedCell-Information-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -ShortMAC-I ::= BIT STRING (SIZE(16)) - -SRVCCOperationPossible ::= ENUMERATED { - possible, - ... -} - -SubframeAssignment ::= ENUMERATED { - sa0, - sa1, - sa2, - sa3, - sa4, - sa5, - sa6, - ... -} - -SpecialSubframe-Info ::= SEQUENCE { - specialSubframePatterns SpecialSubframePatterns, - cyclicPrefixDL CyclicPrefixDL, - cyclicPrefixUL CyclicPrefixUL, - -- iE-Extensions ProtocolExtensionContainer { { SpecialSubframe-Info-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -SpecialSubframePatterns ::= ENUMERATED { - ssp0, - ssp1, - ssp2, - ssp3, - ssp4, - ssp5, - ssp6, - ssp7, - ssp8, - ... -} - -SubscriberProfileIDforRFP ::= INTEGER (1..256) - -SubframeAllocation ::= CHOICE { - oneframe Oneframe, - fourframes Fourframes, - ... -} - --- T - -TAC ::= OCTET STRING (SIZE (2)) - -TargeteNBtoSource-eNBTransparentContainer ::= OCTET STRING - - -TimeToWait ::= ENUMERATED { - v1s, - v2s, - v5s, - v10s, - v20s, - v60s, - ... -} - -Time-UE-StayedInCell ::= INTEGER (0..4095) - - -TraceActivation ::= SEQUENCE { - eUTRANTraceID EUTRANTraceID, - interfacesToTrace InterfacesToTrace, - traceDepth TraceDepth, - traceCollectionEntityIPAddress TraceCollectionEntityIPAddress, - -- iE-Extensions ProtocolExtensionContainer { {TraceActivation-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -TraceCollectionEntityIPAddress ::= BIT STRING (SIZE(1..160, ...)) - -TraceDepth ::= ENUMERATED { - minimum, - medium, - maximum, - minimumWithoutVendorSpecificExtension, - mediumWithoutVendorSpecificExtension, - maximumWithoutVendorSpecificExtension, - ... -} - -Transmission-Bandwidth ::= ENUMERATED { - bw6, - bw15, - bw25, - bw50, - bw75, - bw100, - ... -} - -TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) - -TypeOfError ::= ENUMERATED { - not-understood, - missing, - ... -} - --- U - -UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item - - -UE-S1AP-ID ::= INTEGER (0.. 4294967295) - -UE-X2AP-ID ::= INTEGER (0..4095) -- Value FFS - -UEAggregateMaximumBitRate ::= SEQUENCE { - uEaggregateMaximumBitRateDownlink BitRate, - uEaggregateMaximumBitRateUplink BitRate, - -- iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrate-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -UESecurityCapabilities ::= SEQUENCE { - encryptionAlgorithms EncryptionAlgorithms, - integrityProtectionAlgorithms IntegrityProtectionAlgorithms, - -- iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -UE-ContextInformation ::= SEQUENCE { - mME-UE-S1AP-ID UE-S1AP-ID, - uESecurityCapabilities UESecurityCapabilities, - aS-SecurityInformation AS-SecurityInformation, - uEaggregateMaximumBitRate UEAggregateMaximumBitRate, - subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, - e-RABs-ToBeSetup-List E-RABs-ToBeSetup-List, - rRC-Context RRC-Context, - handoverRestrictionList HandoverRestrictionList OPTIONAL, - locationReportingInformation LocationReportingInformation OPTIONAL, - -- iE-Extensions ProtocolExtensionContainer { {UE-ContextInformation-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -UL-InterferenceOverloadIndication ::= SEQUENCE (SIZE(1..maxnoofPRBs)) OF UL-InterferenceOverloadIndication-Item - -UL-InterferenceOverloadIndication-Item ::= ENUMERATED { - high-interference, - medium-interference, - low-interference, - ... -} - -UL-HighInterferenceIndicationInfo ::= SEQUENCE (SIZE(1..maxCellineNB)) OF UL-HighInterferenceIndicationInfo-Item - -UL-HighInterferenceIndicationInfo-Item ::= SEQUENCE { - target-Cell-ID ECGI, - ul-interferenceindication UL-HighInterferenceIndication, - -- iE-Extensions ProtocolExtensionContainer { { UL-HighInterferenceIndicationInfo-Item-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -UL-HighInterferenceIndication ::= BIT STRING (SIZE(1..110, ...)) - -UE-RLF-Report-Container::= OCTET STRING --- This IE is a transparent container and shall be encoded as the rlfReport field contained in the UEInformationResponse message as defined in TS 36.331 [9] - --- V --- W --- X --- Y --- Z - -END diff --git a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Contents.asn b/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Contents.asn deleted file mode 100644 index 69d32f8085..0000000000 --- a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Contents.asn +++ /dev/null @@ -1,951 +0,0 @@ --- ************************************************************** --- --- PDU definitions for X2AP. --- --- ************************************************************** - -X2AP-PDU-Contents { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Contents (1) } - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - --- ************************************************************** --- --- IE parameter types from other modules. --- --- ************************************************************** - -IMPORTS - - AS-SecurityInformation, - Cause, - CompositeAvailableCapacityGroup, - COUNTvalue, - CriticalityDiagnostics, - CRNTI, - DeactivationIndication, - DL-Forwarding, - ECGI, - E-RAB-ID, - E-RAB-Level-QoS-Parameters, - E-RAB-List, - EUTRANTraceID, - GlobalENB-ID, - GTPtunnelEndpoint, - GUGroupIDList, - GUMMEI, - HandoverReportType, - HandoverRestrictionList, - LocationReportingInformation, - Neighbour-Information, - PCI, - PDCP-SN, - PLMN-Identity, - ReceiveStatusofULPDCPSDUs, - Registration-Request, - RelativeNarrowbandTxPower, - RadioResourceStatus, - UE-RLF-Report-Container, - RRC-Context, - ServedCell-Information, - ServedCells, - ShortMAC-I, - SRVCCOperationPossible, - SubscriberProfileIDforRFP, - TargeteNBtoSource-eNBTransparentContainer, - TimeToWait, - TraceActivation, - TraceDepth, - - TransportLayerAddress, - UEAggregateMaximumBitRate, - UE-HistoryInformation, - UE-S1AP-ID, - UESecurityCapabilities, - UE-X2AP-ID, - UL-HighInterferenceIndicationInfo, - UL-InterferenceOverloadIndication, - HWLoadIndicator, - S1TNLLoadIndicator, - Measurement-ID, - ReportCharacteristics, - MobilityParametersInformation, - MobilityParametersModificationRange - - - - -FROM X2AP-IEs - - PrivateIE-Container{}, - ProtocolExtensionContainer{}, - ProtocolIE-Container{}, - ProtocolIE-ContainerList{}, - ProtocolIE-ContainerPair{}, - ProtocolIE-ContainerPairList{}, - ProtocolIE-Single-Container{}, - X2AP-PRIVATE-IES, - X2AP-PROTOCOL-EXTENSION, - X2AP-PROTOCOL-IES, - X2AP-PROTOCOL-IES-PAIR -FROM X2AP-Containers - - - id-ActivatedCellList, - id-Cause, - id-CellInformation, - id-CellInformation-Item, - id-CellMeasurementResult, - id-CellMeasurementResult-Item, - id-CellToReport, - id-CellToReport-Item, - id-CompositeAvailableCapacityGroup, - id-CriticalityDiagnostics, - id-DeactivationIndication, - id-E-RABs-Admitted-Item, - id-E-RABs-Admitted-List, - id-E-RABs-NotAdmitted-List, - id-E-RABs-SubjectToStatusTransfer-List, - id-E-RABs-SubjectToStatusTransfer-Item, - id-E-RABs-ToBeSetup-Item, - id-GlobalENB-ID, - id-GUGroupIDList, - id-GUGroupIDToAddList, - id-GUGroupIDToDeleteList, - id-GUMMEI-ID, - id-New-eNB-UE-X2AP-ID, - id-Old-eNB-UE-X2AP-ID, - id-Registration-Request, - id-ReportingPeriodicity, - id-ServedCells, - id-ServedCellsToActivate, - id-ServedCellsToAdd, - id-ServedCellsToModify, - id-ServedCellsToDelete, - id-SRVCCOperationPossible, - id-TargetCell-ID, - id-TargeteNBtoSource-eNBTransparentContainer, - id-TimeToWait, - id-TraceActivation, - id-UE-ContextInformation, - id-UE-HistoryInformation, - id-UE-X2AP-ID, - id-Measurement-ID, - id-ReportCharacteristics, - id-ENB1-Measurement-ID, - id-ENB2-Measurement-ID, - id-ENB1-Cell-ID, - id-ENB2-Cell-ID, - id-ENB2-Proposed-Mobility-Parameters, - id-ENB1-Mobility-Parameters, - id-ENB2-Mobility-Parameters-Modification-Range, - id-FailureCellPCI, - id-Re-establishmentCellECGI, - id-FailureCellCRNTI, - id-ShortMAC-I, - id-SourceCellECGI, - id-FailureCellECGI, - id-HandoverReportType, - id-UE-RLF-Report-Container, - - - maxCellineNB, - maxnoofBearers, - maxnoofPDCP-SN - -FROM X2AP-Constants; - --- ************************************************************** --- --- HANDOVER REQUEST --- --- ************************************************************** - -HandoverRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{HandoverRequest-IEs}}, - ... -} - -HandoverRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory } | - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } | - { ID id-TargetCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory } | - { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory } | - { ID id-UE-ContextInformation CRITICALITY reject TYPE UE-ContextInformation PRESENCE mandatory } | - { ID id-UE-HistoryInformation CRITICALITY ignore TYPE UE-HistoryInformation PRESENCE mandatory } | - { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional } | - { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional }, - ... -} - -UE-ContextInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -E-RABs-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetup-ItemIEs} } - -E-RABs-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeSetup-Item CRITICALITY ignore TYPE E-RABs-ToBeSetup-Item PRESENCE mandatory }, - ... -} - -E-RABs-ToBeSetup-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - - - --- ************************************************************** --- --- HANDOVER REQUEST ACKNOWLEDGE --- --- ************************************************************** - -HandoverRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{HandoverRequestAcknowledge-IEs}}, - ... -} - -HandoverRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} | - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} | - { ID id-E-RABs-Admitted-List CRITICALITY ignore TYPE E-RABs-Admitted-List PRESENCE mandatory} | - { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional} | - { ID id-TargeteNBtoSource-eNBTransparentContainer CRITICALITY ignore TYPE TargeteNBtoSource-eNBTransparentContainer PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - -E-RAB-List ::= SEQUENCE (SIZE(1.. maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RAB-ItemIEs} } - -E-RABs-Admitted-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ItemIEs} } - -E-RABs-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-Item CRITICALITY ignore TYPE E-RABs-Admitted-Item PRESENCE mandatory } -} - -E-RABs-Admitted-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - - - --- ************************************************************** --- --- HANDOVER PREPARATION FAILURE --- --- ************************************************************** - -HandoverPreparationFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{HandoverPreparationFailure-IEs}}, - ... -} - -HandoverPreparationFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} | - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - - ... -} - --- ************************************************************** --- --- Handover Report --- --- ************************************************************** - -HandoverReport ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{HandoverReport-IEs}}, - ... -} - -HandoverReport-IEs X2AP-PROTOCOL-IES ::= { - { ID id-HandoverReportType CRITICALITY ignore TYPE HandoverReportType PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | - { ID id-SourceCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| - { ID id-FailureCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory} | - { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to “HO to Wrong Cell” -- , - ... -} - --- ************************************************************** --- --- SN Status Transfer --- --- ************************************************************** - -SNStatusTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SNStatusTransfer-IEs}}, - ... -} - -SNStatusTransfer-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} | - { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} | - { ID id-E-RABs-SubjectToStatusTransfer-List CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-List PRESENCE mandatory} , - ... -} - -E-RABs-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { { E-RABs-SubjectToStatusTransfer-ItemIEs} } - -E-RABs-SubjectToStatusTransfer-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-Item PRESENCE mandatory } -} - -E-RABs-SubjectToStatusTransfer-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - --- ************************************************************** --- --- UE Context Release --- --- ************************************************************** - -UEContextRelease ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{UEContextRelease-IEs}}, - ... -} - -UEContextRelease-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} | - { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} , - ... -} - - --- ************************************************************** --- --- HANDOVER CANCEL --- --- ************************************************************** - -HandoverCancel ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{HandoverCancel-IEs}}, - ... -} - -HandoverCancel-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} | - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} | - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} , - ... -} - --- ************************************************************** --- --- ERROR INDICATION --- --- ************************************************************** - -ErrorIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}}, - ... -} - -ErrorIndication-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} | - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} | - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional} | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional} , - ... -} - --- ************************************************************** --- --- Reset Request --- --- ************************************************************** - -ResetRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResetRequest-IEs}}, - ... -} - -ResetRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, - ... -} - --- ************************************************************** --- --- Reset Response --- --- ************************************************************** - -ResetResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResetResponse-IEs}}, - ... -} - -ResetResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- X2 SETUP REQUEST --- --- ************************************************************** - -X2SetupRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2SetupRequest-IEs}}, - ... -} - -X2SetupRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory} | - { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory} | - { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}, -... -} - - - --- ************************************************************** --- --- X2 SETUP RESPONSE --- --- ************************************************************** - -X2SetupResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2SetupResponse-IEs}}, - ... -} - -X2SetupResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory} | - { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory} | - { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - - - --- ************************************************************** --- --- X2 SETUP FAILURE --- --- ************************************************************** - -X2SetupFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2SetupFailure-IEs}}, - ... -} - -X2SetupFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | - { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional} | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - - ... -} - --- ************************************************************** --- --- LOAD INFORMATION --- --- ************************************************************** - -LoadInformation ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{LoadInformation-IEs}}, - ... -} - -LoadInformation-IEs X2AP-PROTOCOL-IES ::= { - { ID id-CellInformation CRITICALITY ignore TYPE CellInformation-List PRESENCE mandatory} , - ... -} - -CellInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellInformation-ItemIEs} } - -CellInformation-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-CellInformation-Item CRITICALITY ignore TYPE CellInformation-Item PRESENCE mandatory } -} - -CellInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - --- ************************************************************** --- --- ENB CONFIGURATION UPDATE --- --- ************************************************************** - -ENBConfigurationUpdate ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENBConfigurationUpdate-IEs}}, - ... -} - -ENBConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ServedCellsToAdd CRITICALITY reject TYPE ServedCells PRESENCE optional} | - { ID id-ServedCellsToModify CRITICALITY reject TYPE ServedCellsToModify PRESENCE optional} | - { ID id-ServedCellsToDelete CRITICALITY reject TYPE Old-ECGIs PRESENCE optional} | - { ID id-GUGroupIDToAddList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional} | - { ID id-GUGroupIDToDeleteList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}, - ... -} - -ServedCellsToModify::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToModify-Item - -ServedCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { -{ ID id-DeactivationIndication CRITICALITY ignore EXTENSION DeactivationIndication PRESENCE optional }, - ... -} - --- ************************************************************** --- --- ENB CONFIGURATION UPDATE ACKNOWLEDGE --- --- ************************************************************** - -ENBConfigurationUpdateAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateAcknowledge-IEs}}, - ... -} - -ENBConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, -... -} - --- ************************************************************** --- --- ENB CONFIGURATION UPDATE FAIURE --- --- ************************************************************** - -ENBConfigurationUpdateFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateFailure-IEs}}, - ... -} - -ENBConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| - { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - - - --- ************************************************************** --- --- Resource Status Request --- --- ************************************************************** - -ResourceStatusRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResourceStatusRequest-IEs}}, - ... -} - -ResourceStatusRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY ignore TYPE Measurement-ID PRESENCE conditional}|-- The IE shall be present if the Registration Request IE is set to “Stop”-- - { ID id-Registration-Request CRITICALITY reject TYPE Registration-Request PRESENCE mandatory} | - { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE optional} | - { ID id-CellToReport CRITICALITY ignore TYPE CellToReport-List PRESENCE mandatory} | - { ID id-ReportingPeriodicity CRITICALITY ignore TYPE ReportingPeriodicity PRESENCE optional} , - ... -} - - -CellToReport-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellToReport-ItemIEs} } - -CellToReport-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-CellToReport-Item CRITICALITY ignore TYPE CellToReport-Item PRESENCE mandatory } -} - -CellToReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - --- ************************************************************** --- --- Resource Status Response --- --- ************************************************************** - -ResourceStatusResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResourceStatusResponse-IEs}}, - ... -} - -ResourceStatusResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - - --- ************************************************************** --- --- Resource Status Failure --- --- ************************************************************** - -ResourceStatusFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResourceStatusFailure-IEs}}, - ... -} - -ResourceStatusFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - - --- ************************************************************** --- --- Resource Status Update --- --- ************************************************************** - -ResourceStatusUpdate ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResourceStatusUpdate-IEs}}, - ... -} - -ResourceStatusUpdate-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-CellMeasurementResult CRITICALITY ignore TYPE CellMeasurementResult-List PRESENCE mandatory}, - ... -} - -CellMeasurementResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellMeasurementResult-ItemIEs} } - -CellMeasurementResult-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-CellMeasurementResult-Item CRITICALITY ignore TYPE CellMeasurementResult-Item PRESENCE mandatory } -} - -CellMeasurementResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { -{ - ID id-CompositeAvailableCapacityGroup CRITICALITY ignore EXTENSION CompositeAvailableCapacityGroup PRESENCE optional }, - ... -} - --- ************************************************************** --- --- PRIVATE MESSAGE --- --- ************************************************************** - -PrivateMessage ::= SEQUENCE { - privateIEs PrivateIE-Container {{PrivateMessage-IEs}}, - ... -} - -PrivateMessage-IEs X2AP-PRIVATE-IES ::= { - ... -} - --- ************************************************************** --- --- MOBILITY CHANGE REQUEST --- --- ************************************************************** - -MobilityChangeRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{MobilityChangeRequest-IEs}}, - ... -} - -MobilityChangeRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }| - { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }| - { ID id-ENB1-Mobility-Parameters CRITICALITY ignore TYPE MobilityParametersInformation PRESENCE optional }| - { ID id-ENB2-Proposed-Mobility-Parameters CRITICALITY reject TYPE MobilityParametersInformation PRESENCE mandatory }| - { ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory }, - ... -} - --- ************************************************************** --- --- MOBILITY CHANGE ACKNOWLEDGE --- --- ************************************************************** - -MobilityChangeAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{MobilityChangeAcknowledge-IEs}}, - ... -} - -MobilityChangeAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }| - { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - - --- ************************************************************** --- --- MOBILITY CHANGE FAILURE --- --- ************************************************************** - -MobilityChangeFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{MobilityChangeFailure-IEs}}, - ... -} - -MobilityChangeFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory }| - { ID id-ENB2-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory }| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| - { ID id-ENB2-Mobility-Parameters-Modification-Range CRITICALITY ignore TYPE MobilityParametersModificationRange PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- Radio Link Failure Indication --- --- ************************************************************** - -RLFIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RLFIndication-IEs}}, - ... -} - -RLFIndication-IEs X2AP-PROTOCOL-IES ::= { - { ID id-FailureCellPCI CRITICALITY ignore TYPE PCI PRESENCE mandatory}| - { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| - { ID id-FailureCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE mandatory}| - { ID id-ShortMAC-I CRITICALITY ignore TYPE ShortMAC-I PRESENCE optional}| - { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}, - ... -} - - --- ************************************************************** --- --- Cell Activation Request --- --- ************************************************************** - -CellActivationRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{CellActivationRequest-IEs}}, - ... -} - -CellActivationRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ServedCellsToActivate CRITICALITY reject TYPE ServedCellsToActivate PRESENCE mandatory }, - ... -} - -ServedCellsToActivate::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToActivate-Item - -ServedCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - --- ************************************************************** --- --- Cell Activation Response --- --- ************************************************************** - -CellActivationResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{CellActivationResponse-IEs}}, - ... -} - -CellActivationResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ActivatedCellList CRITICALITY ignore TYPE ActivatedCellList PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - -ActivatedCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - ---************************************************************** --- --- CELL ACTIVATION FAILURE --- --- ************************************************************** - -CellActivationFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{CellActivationFailure-IEs}}, - ... -} - -CellActivationFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - -AS-SecurityInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -AllocationAndRetentionPriority-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -CellType-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -CompositeAvailableCapacityGroup-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -CompositeAvailableCapacity-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -COUNTvalue-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -CriticalityDiagnostics-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -CriticalityDiagnostics-IE-List-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -FDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -TDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -ECGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -E-RAB-Level-QoS-Parameters-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -E-RAB-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -ForbiddenTAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -ForbiddenLAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -GBR-QosInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -GlobalENB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -GTPtunnelEndpoint-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -GU-Group-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -GUMMEI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -HandoverRestrictionList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -HWLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -LastVisitedEUTRANCellInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -LocationReportingInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::={ - ... -} - -MBSFN-Subframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -Neighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -PRACH-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -RelativeNarrowbandTxPower-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -RadioResourceStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1TNLLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -ServedCell-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -SpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -TraceActivation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -UEAggregate-MaximumBitrate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -UESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -UL-HighInterferenceIndicationInfo-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -E-RAB-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RAB-Item CRITICALITY ignore TYPE E-RAB-Item PRESENCE mandatory }, - ... -} - -ServedCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-Number-of-Antennaports CRITICALITY ignore EXTENSION Number-of-Antennaports PRESENCE optional }| - { ID id-PRACH-Configuration CRITICALITY ignore EXTENSION PRACH-Configuration PRESENCE optional }| - { ID id-MBSFN-Subframe-Info CRITICALITY ignore EXTENSION MBSFN-Subframe-Infolist PRESENCE optional }, - ... -} - -END \ No newline at end of file diff --git a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Definitions.asn b/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Definitions.asn deleted file mode 100755 index f722d5a146..0000000000 --- a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Definitions.asn +++ /dev/null @@ -1,240 +0,0 @@ --- ************************************************************** --- --- Elementary Procedure definitions --- --- ************************************************************** -X2AP-PDU-Descriptions { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Descriptions (0) } -DEFINITIONS AUTOMATIC TAGS ::= -BEGIN --- ************************************************************** --- --- IE parameter types from other modules. --- --- ************************************************************** -IMPORTS -Criticality, -ProcedureCode -FROM X2AP-CommonDataTypes -CellActivationRequest, -CellActivationResponse, -CellActivationFailure, -ENBConfigurationUpdate, -ENBConfigurationUpdateAcknowledge, -ENBConfigurationUpdateFailure, -ErrorIndication, -HandoverCancel, -HandoverReport, -HandoverPreparationFailure, -HandoverRequest, -HandoverRequestAcknowledge, -LoadInformation, -PrivateMessage, -ResetRequest, -ResetResponse, -ResourceStatusFailure, -ResourceStatusRequest, -ResourceStatusResponse, -ResourceStatusUpdate, -RLFIndication, -SNStatusTransfer, -UEContextRelease, -X2SetupFailure, X2SetupRequest, -X2SetupResponse, -MobilityChangeRequest, -MobilityChangeAcknowledge, -MobilityChangeFailure -FROM X2AP-PDU-Contents -id-cellActivation, -id-eNBConfigurationUpdate, -id-errorIndication, -id-handoverCancel, -id-handoverReport, -id-handoverPreparation, -id-loadIndication, -id-privateMessage, -id-reset, -id-resourceStatusReporting, -id-resourceStatusReportingInitiation, -id-rLFIndication, -id-snStatusTransfer, -id-uEContextRelease, -id-x2Setup, -id-mobilitySettingsChange -FROM X2AP-Constants; --- ************************************************************** --- --- Interface Elementary Procedure Class --- --- ************************************************************** -X2AP-ELEMENTARY-PROCEDURE ::= CLASS { -&InitiatingMessage , -&SuccessfulOutcome OPTIONAL, -&UnsuccessfulOutcome OPTIONAL, -&procedureCode ProcedureCode UNIQUE, -&criticality Criticality DEFAULT ignore -} -WITH SYNTAX { -INITIATING MESSAGE &InitiatingMessage -[SUCCESSFUL OUTCOME &SuccessfulOutcome] -[UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] -PROCEDURE CODE &procedureCode -[CRITICALITY &criticality] -} --- ************************************************************** --- --- Interface PDU Definition --- --- ************************************************************** -X2AP-PDU ::= CHOICE { -initiatingMessage InitiatingMessage, -successfulOutcome SuccessfulOutcome, -unsuccessfulOutcome UnsuccessfulOutcome, -... -} -InitiatingMessage ::= SEQUENCE { -procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), -criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), -value X2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -SuccessfulOutcome ::= SEQUENCE { -procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), -criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), -value X2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -UnsuccessfulOutcome ::= SEQUENCE { -procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), -criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), -value X2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} --- ************************************************************** --- --- Interface Elementary Procedure List --- --- ************************************************************** -X2AP-ELEMENTARY-PROCEDURES X2AP-ELEMENTARY-PROCEDURE ::= { -X2AP-ELEMENTARY-PROCEDURES-CLASS-1 | -X2AP-ELEMENTARY-PROCEDURES-CLASS-2 , -... -} -X2AP-ELEMENTARY-PROCEDURES-CLASS-1 X2AP-ELEMENTARY-PROCEDURE ::= { -handoverPreparation | -reset | -x2Setup | -resourceStatusReportingInitiation | -eNBConfigurationUpdate | -mobilitySettingsChange | -cellActivation , -... -} -X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= { -snStatusTransfer | -uEContextRelease | -handoverCancel | -errorIndication | -resourceStatusReporting | -loadIndication | -privateMessage | -rLFIndication | handoverReport, -... -} --- ************************************************************** --- --- Interface Elementary Procedures --- --- ************************************************************** -handoverPreparation X2AP-ELEMENTARY-PROCEDURE ::= { -INITIATING MESSAGE HandoverRequest -SUCCESSFUL OUTCOME HandoverRequestAcknowledge -UNSUCCESSFUL OUTCOME HandoverPreparationFailure -PROCEDURE CODE id-handoverPreparation -CRITICALITY reject -} -snStatusTransfer X2AP-ELEMENTARY-PROCEDURE ::= { -INITIATING MESSAGE SNStatusTransfer -PROCEDURE CODE id-snStatusTransfer -CRITICALITY ignore -} -uEContextRelease X2AP-ELEMENTARY-PROCEDURE ::= { -INITIATING MESSAGE UEContextRelease -PROCEDURE CODE id-uEContextRelease -CRITICALITY ignore -} -handoverCancel X2AP-ELEMENTARY-PROCEDURE ::= { -INITIATING MESSAGE HandoverCancel -PROCEDURE CODE id-handoverCancel -CRITICALITY ignore -} -handoverReport X2AP-ELEMENTARY-PROCEDURE ::= { -INITIATING MESSAGE HandoverReport -PROCEDURE CODE id-handoverReport -CRITICALITY ignore -} -errorIndication X2AP-ELEMENTARY-PROCEDURE ::= { -INITIATING MESSAGE ErrorIndication -PROCEDURE CODE id-errorIndication -CRITICALITY ignore -} -reset X2AP-ELEMENTARY-PROCEDURE ::= { -INITIATING MESSAGE ResetRequest -SUCCESSFUL OUTCOME ResetResponse -PROCEDURE CODE id-reset -CRITICALITY reject -} -x2Setup X2AP-ELEMENTARY-PROCEDURE ::= { -INITIATING MESSAGE X2SetupRequest -SUCCESSFUL OUTCOME X2SetupResponse -UNSUCCESSFUL OUTCOME X2SetupFailure -PROCEDURE CODE id-x2Setup -CRITICALITY reject -} -loadIndication X2AP-ELEMENTARY-PROCEDURE ::= { -INITIATING MESSAGE LoadInformation -PROCEDURE CODE id-loadIndication -CRITICALITY ignore -} -eNBConfigurationUpdate X2AP-ELEMENTARY-PROCEDURE ::= { -INITIATING MESSAGE ENBConfigurationUpdate -SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge -UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure -PROCEDURE CODE id-eNBConfigurationUpdate -CRITICALITY reject -} -resourceStatusReportingInitiation X2AP-ELEMENTARY-PROCEDURE ::= { -INITIATING MESSAGE ResourceStatusRequest -SUCCESSFUL OUTCOME ResourceStatusResponse -UNSUCCESSFUL OUTCOME ResourceStatusFailure -PROCEDURE CODE id-resourceStatusReportingInitiation -CRITICALITY reject -} -resourceStatusReporting X2AP-ELEMENTARY-PROCEDURE ::= { -INITIATING MESSAGE ResourceStatusUpdate -PROCEDURE CODE id-resourceStatusReporting -CRITICALITY ignore -} -rLFIndication X2AP-ELEMENTARY-PROCEDURE ::= { -INITIATING MESSAGE RLFIndication -PROCEDURE CODE id-rLFIndication -CRITICALITY ignore -} -privateMessage X2AP-ELEMENTARY-PROCEDURE ::= { -INITIATING MESSAGE PrivateMessage -PROCEDURE CODE id-privateMessage -CRITICALITY ignore -} -mobilitySettingsChange X2AP-ELEMENTARY-PROCEDURE ::= { -INITIATING MESSAGE MobilityChangeRequest -SUCCESSFUL OUTCOME MobilityChangeAcknowledge -UNSUCCESSFUL OUTCOME MobilityChangeFailure -PROCEDURE CODE id-mobilitySettingsChange -CRITICALITY reject -} -cellActivation X2AP-ELEMENTARY-PROCEDURE ::= { -INITIATING MESSAGE CellActivationRequest -SUCCESSFUL OUTCOME CellActivationResponse -UNSUCCESSFUL OUTCOME CellActivationFailure -PROCEDURE CODE id-cellActivation -CRITICALITY reject -} -END \ No newline at end of file diff --git a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Descriptions.asn b/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Descriptions.asn deleted file mode 100644 index 2a28a5b1d8..0000000000 --- a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Descriptions.asn +++ /dev/null @@ -1,241 +0,0 @@ --- ************************************************************** --- --- Elementary Procedure definitions --- --- ************************************************************** -X2AP-PDU-Descriptions { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Descriptions (0) } -DEFINITIONS AUTOMATIC TAGS ::= -BEGIN --- ************************************************************** --- --- IE parameter types from other modules. --- --- ************************************************************** -IMPORTS - Criticality, - ProcedureCode - FROM X2AP-CommonDataTypes - CellActivationRequest, - CellActivationResponse, - CellActivationFailure, - ENBConfigurationUpdate, - ENBConfigurationUpdateAcknowledge, - ENBConfigurationUpdateFailure, - ErrorIndication, - HandoverCancel, - HandoverReport, - HandoverPreparationFailure, - HandoverRequest, - HandoverRequestAcknowledge, - LoadInformation, - PrivateMessage, - ResetRequest, - ResetResponse, - ResourceStatusFailure, - ResourceStatusRequest, - ResourceStatusResponse, - ResourceStatusUpdate, - RLFIndication, - SNStatusTransfer, - UEContextRelease, - X2SetupFailure, X2SetupRequest, - X2SetupResponse, - MobilityChangeRequest, - MobilityChangeAcknowledge, - MobilityChangeFailure - FROM X2AP-PDU-Contents - id-cellActivation, - id-eNBConfigurationUpdate, - id-errorIndication, - id-handoverCancel, - id-handoverReport, - id-handoverPreparation, - id-loadIndication, - id-privateMessage, - id-reset, - id-resourceStatusReporting, - id-resourceStatusReportingInitiation, - id-rLFIndication, - id-snStatusTransfer, - id-uEContextRelease, - id-x2Setup, - id-mobilitySettingsChange - FROM X2AP-Constants; - --- ************************************************************** --- --- Interface Elementary Procedure Class --- --- ************************************************************** -X2AP-ELEMENTARY-PROCEDURE ::= CLASS { - &InitiatingMessage , - &SuccessfulOutcome OPTIONAL, - &UnsuccessfulOutcome OPTIONAL, - &procedureCode ProcedureCode UNIQUE, - &criticality Criticality DEFAULT ignore -} -WITH SYNTAX { - INITIATING MESSAGE &InitiatingMessage - [SUCCESSFUL OUTCOME &SuccessfulOutcome] - [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] - PROCEDURE CODE &procedureCode - [CRITICALITY &criticality] -} --- ************************************************************** --- --- Interface PDU Definition --- --- ************************************************************** -X2AP-PDU ::= CHOICE { - initiatingMessage InitiatingMessage, - successfulOutcome SuccessfulOutcome, - unsuccessfulOutcome UnsuccessfulOutcome, - ... -} -InitiatingMessage ::= SEQUENCE { - procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), - criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value X2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -SuccessfulOutcome ::= SEQUENCE { - procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), - criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value X2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -UnsuccessfulOutcome ::= SEQUENCE { - procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), - criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value X2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} --- ************************************************************** --- --- Interface Elementary Procedure List --- --- ************************************************************** -X2AP-ELEMENTARY-PROCEDURES X2AP-ELEMENTARY-PROCEDURE ::= { - X2AP-ELEMENTARY-PROCEDURES-CLASS-1 | - X2AP-ELEMENTARY-PROCEDURES-CLASS-2 , - ... -} -X2AP-ELEMENTARY-PROCEDURES-CLASS-1 X2AP-ELEMENTARY-PROCEDURE ::= { - handoverPreparation | - reset | - x2Setup | - resourceStatusReportingInitiation | - eNBConfigurationUpdate | - mobilitySettingsChange | - cellActivation , - ... -} -X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= { - snStatusTransfer | - uEContextRelease | - handoverCancel | - errorIndication | - resourceStatusReporting | - loadIndication | - privateMessage | - rLFIndication | handoverReport, - ... -} --- ************************************************************** --- --- Interface Elementary Procedures --- --- ************************************************************** -handoverPreparation X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE HandoverRequest - SUCCESSFUL OUTCOME HandoverRequestAcknowledge - UNSUCCESSFUL OUTCOME HandoverPreparationFailure - PROCEDURE CODE id-handoverPreparation - CRITICALITY reject -} -snStatusTransfer X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE SNStatusTransfer - PROCEDURE CODE id-snStatusTransfer - CRITICALITY ignore -} -uEContextRelease X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE UEContextRelease - PROCEDURE CODE id-uEContextRelease - CRITICALITY ignore -} -handoverCancel X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE HandoverCancel - PROCEDURE CODE id-handoverCancel - CRITICALITY ignore -} -handoverReport X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE HandoverReport - PROCEDURE CODE id-handoverReport - CRITICALITY ignore -} -errorIndication X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE ErrorIndication - PROCEDURE CODE id-errorIndication - CRITICALITY ignore -} -reset X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE ResetRequest - SUCCESSFUL OUTCOME ResetResponse - PROCEDURE CODE id-reset - CRITICALITY reject -} -x2Setup X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE X2SetupRequest - SUCCESSFUL OUTCOME X2SetupResponse - UNSUCCESSFUL OUTCOME X2SetupFailure - PROCEDURE CODE id-x2Setup - CRITICALITY reject -} -loadIndication X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE LoadInformation - PROCEDURE CODE id-loadIndication - CRITICALITY ignore -} -eNBConfigurationUpdate X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE ENBConfigurationUpdate - SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge - UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure - PROCEDURE CODE id-eNBConfigurationUpdate - CRITICALITY reject -} -resourceStatusReportingInitiation X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE ResourceStatusRequest - SUCCESSFUL OUTCOME ResourceStatusResponse - UNSUCCESSFUL OUTCOME ResourceStatusFailure - PROCEDURE CODE id-resourceStatusReportingInitiation - CRITICALITY reject -} -resourceStatusReporting X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE ResourceStatusUpdate - PROCEDURE CODE id-resourceStatusReporting - CRITICALITY ignore -} -rLFIndication X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE RLFIndication - PROCEDURE CODE id-rLFIndication - CRITICALITY ignore -} -privateMessage X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE PrivateMessage - PROCEDURE CODE id-privateMessage - CRITICALITY ignore -} -mobilitySettingsChange X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE MobilityChangeRequest - SUCCESSFUL OUTCOME MobilityChangeAcknowledge - UNSUCCESSFUL OUTCOME MobilityChangeFailure - PROCEDURE CODE id-mobilitySettingsChange - CRITICALITY reject -} -cellActivation X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE CellActivationRequest - SUCCESSFUL OUTCOME CellActivationResponse - UNSUCCESSFUL OUTCOME CellActivationFailure - PROCEDURE CODE id-cellActivation - CRITICALITY reject -} -END diff --git a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU.asn b/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU.asn deleted file mode 100644 index 326987472e..0000000000 --- a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU.asn +++ /dev/null @@ -1,199 +0,0 @@ --- ************************************************************** --- --- PDU definitions for X2AP. --- --- ************************************************************** - -X2AP-PDU { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU (1) } - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - -IMPORTS - - maxProtocolIEs, - Criticality, - ProcedureCode, - ProtocolIE-ID -FROM X2AP-CommonDataTypes; - -IE ::= SEQUENCE { - id ProtocolIE-ID, - criticality Criticality, - value ANY -} - -X2AP-PDU ::= CHOICE { - initiatingMessage InitiatingMessage, - successfulOutcome SuccessfulOutcome, - unsuccessfulOutcome UnsuccessfulOutcome, - ... -} - -InitiatingMessage ::= SEQUENCE { - procedureCode ProcedureCode, - criticality Criticality, - value ANY -} - -SuccessfulOutcome ::= SEQUENCE { - procedureCode ProcedureCode, - criticality Criticality, - value ANY -} - -UnsuccessfulOutcome ::= SEQUENCE { - procedureCode ProcedureCode, - criticality Criticality, - value ANY -} - -HandoverRequest ::= SEQUENCE { - handoverRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -HandoverRequestAcknowledge ::= SEQUENCE { - handoverRequestAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -HandoverPreparationFailure ::= SEQUENCE { - handoverPreparationFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -SNStatusTransfer ::= SEQUENCE { - snStatusTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -UEContextRelease ::= SEQUENCE { - ueContextRelease-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -HandoverCancel ::= SEQUENCE { - handoverCancel-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -HandoverReport ::= SEQUENCE { - handoverReport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ErrorIndication ::= SEQUENCE { - errorIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ResetRequest ::= SEQUENCE { - resetRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ResetResponse ::= SEQUENCE { - resetResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -X2SetupRequest ::= SEQUENCE { - x2SetupRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -X2SetupResponse ::= SEQUENCE { - x2SetupResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -X2SetupFailure ::= SEQUENCE { - x2SetupFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -LoadInformation ::= SEQUENCE { - loadInformation-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ENBConfigurationUpdate ::= SEQUENCE { - eNBConfigurationUpdate-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ENBConfigurationUpdateAcknowledge ::= SEQUENCE { - eNBConfigurationUpdateAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ENBConfigurationUpdateFailure ::= SEQUENCE { - eNBConfigurationUpdateFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ResourceStatusRequest ::= SEQUENCE { - resourceStatusRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ResourceStatusResponse ::= SEQUENCE { - resourceStatusResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ResourceStatusFailure ::= SEQUENCE { - resourceStatusFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ResourceStatusUpdate ::= SEQUENCE { - resourceStatusUpdate-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -RLFIndication ::= SEQUENCE { - rlfIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -PrivateMessage ::= SEQUENCE { - privateMessage-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -MobilityChangeRequest ::= SEQUENCE { - mobilityChangeRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -MobilityChangeAcknowledge ::= SEQUENCE { - mobilityChangeAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -MobilityChangeFailure ::= SEQUENCE { - mobilityChangeFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -CellActivationRequest ::= SEQUENCE { - cellActivationRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -CellActivationResponse ::= SEQUENCE { - cellActivationResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -CellActivationFailure ::= SEQUENCE { - cellActivationFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -END \ No newline at end of file diff --git a/openair2/X2AP/MESSAGES/ASN1/R10/x2ap-10.7.0.asn1 b/openair2/X2AP/MESSAGES/ASN1/R10/x2ap-10.7.0.asn1 new file mode 100755 index 0000000000..bf87d22d23 --- /dev/null +++ b/openair2/X2AP/MESSAGES/ASN1/R10/x2ap-10.7.0.asn1 @@ -0,0 +1,2866 @@ +-- ************************************************************** +-- +-- Elementary Procedure definitions +-- +-- ************************************************************** + +X2AP-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Descriptions (0) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + ProcedureCode +FROM X2AP-CommonDataTypes + + + CellActivationRequest, + CellActivationResponse, + CellActivationFailure, + ENBConfigurationUpdate, + ENBConfigurationUpdateAcknowledge, + ENBConfigurationUpdateFailure, + ErrorIndication, + HandoverCancel, + HandoverReport, + HandoverPreparationFailure, + HandoverRequest, + HandoverRequestAcknowledge, + LoadInformation, + PrivateMessage, + ResetRequest, + ResetResponse, + ResourceStatusFailure, + ResourceStatusRequest, + ResourceStatusResponse, + ResourceStatusUpdate, + RLFIndication, + SNStatusTransfer, + UEContextRelease, + X2SetupFailure, + X2SetupRequest, + X2SetupResponse, + MobilityChangeRequest, + MobilityChangeAcknowledge, + MobilityChangeFailure + + + +FROM X2AP-PDU-Contents + + id-cellActivation, + id-eNBConfigurationUpdate, + id-errorIndication, + id-handoverCancel, + id-handoverReport, + id-handoverPreparation, + + id-loadIndication, + id-privateMessage, + id-reset, + + id-resourceStatusReporting, + id-resourceStatusReportingInitiation, + id-rLFIndication, + id-snStatusTransfer, + id-uEContextRelease, + id-x2Setup, + id-mobilitySettingsChange + + + + +FROM X2AP-Constants; + +-- ************************************************************** +-- +-- Interface Elementary Procedure Class +-- +-- ************************************************************** + +X2AP-ELEMENTARY-PROCEDURE ::= CLASS { + &InitiatingMessage , + &SuccessfulOutcome OPTIONAL, + &UnsuccessfulOutcome OPTIONAL, + &procedureCode ProcedureCode UNIQUE, + &criticality Criticality DEFAULT ignore +} +WITH SYNTAX { + INITIATING MESSAGE &InitiatingMessage + [SUCCESSFUL OUTCOME &SuccessfulOutcome] + [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] + PROCEDURE CODE &procedureCode + [CRITICALITY &criticality] +} + +-- ************************************************************** +-- +-- Interface PDU Definition +-- +-- ************************************************************** + +X2AP-PDU ::= CHOICE { + initiatingMessage InitiatingMessage, + successfulOutcome SuccessfulOutcome, + unsuccessfulOutcome UnsuccessfulOutcome, + ... +} + +InitiatingMessage ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +SuccessfulOutcome ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +UnsuccessfulOutcome ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + + +-- ************************************************************** +-- +-- Interface Elementary Procedure List +-- +-- ************************************************************** + +X2AP-ELEMENTARY-PROCEDURES X2AP-ELEMENTARY-PROCEDURE ::= { + X2AP-ELEMENTARY-PROCEDURES-CLASS-1 | + X2AP-ELEMENTARY-PROCEDURES-CLASS-2 , + ... +} + +X2AP-ELEMENTARY-PROCEDURES-CLASS-1 X2AP-ELEMENTARY-PROCEDURE ::= { + handoverPreparation | + reset | + x2Setup | + resourceStatusReportingInitiation | + eNBConfigurationUpdate | + mobilitySettingsChange | + cellActivation , + ... +} + +X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= { + snStatusTransfer | + uEContextRelease | + handoverCancel | + errorIndication | + resourceStatusReporting | + loadIndication | + privateMessage | + rLFIndication | handoverReport, + ... + +} + + +-- ************************************************************** +-- +-- Interface Elementary Procedures +-- +-- ************************************************************** + +handoverPreparation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequest + SUCCESSFUL OUTCOME HandoverRequestAcknowledge + UNSUCCESSFUL OUTCOME HandoverPreparationFailure + PROCEDURE CODE id-handoverPreparation + CRITICALITY reject +} + +snStatusTransfer X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SNStatusTransfer + PROCEDURE CODE id-snStatusTransfer + CRITICALITY ignore +} + +uEContextRelease X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextRelease + PROCEDURE CODE id-uEContextRelease + CRITICALITY ignore +} + + +handoverCancel X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverCancel + PROCEDURE CODE id-handoverCancel + CRITICALITY ignore +} + +handoverReport X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverReport + PROCEDURE CODE id-handoverReport + CRITICALITY ignore +} + +errorIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ErrorIndication + PROCEDURE CODE id-errorIndication + CRITICALITY ignore +} + +reset X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResetRequest + SUCCESSFUL OUTCOME ResetResponse + PROCEDURE CODE id-reset + CRITICALITY reject +} + +x2Setup X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE X2SetupRequest + SUCCESSFUL OUTCOME X2SetupResponse + UNSUCCESSFUL OUTCOME X2SetupFailure + PROCEDURE CODE id-x2Setup + CRITICALITY reject +} + + +loadIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LoadInformation + PROCEDURE CODE id-loadIndication + CRITICALITY ignore +} + +eNBConfigurationUpdate X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationUpdate + SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure + PROCEDURE CODE id-eNBConfigurationUpdate + CRITICALITY reject +} + +resourceStatusReportingInitiation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResourceStatusRequest + SUCCESSFUL OUTCOME ResourceStatusResponse + UNSUCCESSFUL OUTCOME ResourceStatusFailure + PROCEDURE CODE id-resourceStatusReportingInitiation + CRITICALITY reject +} + +resourceStatusReporting X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResourceStatusUpdate + PROCEDURE CODE id-resourceStatusReporting + CRITICALITY ignore +} + +rLFIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RLFIndication + PROCEDURE CODE id-rLFIndication + CRITICALITY ignore +} + +privateMessage X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PrivateMessage + PROCEDURE CODE id-privateMessage + CRITICALITY ignore +} + +mobilitySettingsChange X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MobilityChangeRequest + SUCCESSFUL OUTCOME MobilityChangeAcknowledge + UNSUCCESSFUL OUTCOME MobilityChangeFailure + PROCEDURE CODE id-mobilitySettingsChange + CRITICALITY reject +} + +cellActivation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE CellActivationRequest + SUCCESSFUL OUTCOME CellActivationResponse + UNSUCCESSFUL OUTCOME CellActivationFailure + PROCEDURE CODE id-cellActivation + CRITICALITY reject +} + + +END + + +-- ************************************************************** +-- +-- PDU definitions for X2AP. +-- +-- ************************************************************** + +X2AP-PDU-Contents { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Contents (1) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + ABSInformation, + ABS-Status, + AS-SecurityInformation, + Cause, + CompositeAvailableCapacityGroup, + COUNTvalue, + CriticalityDiagnostics, + CRNTI, + CSGMembershipStatus, + CSG-Id, + DeactivationIndication, + DL-Forwarding, + ECGI, + E-RAB-ID, + E-RAB-Level-QoS-Parameters, + E-RAB-List, + EUTRANTraceID, + GlobalENB-ID, + GTPtunnelEndpoint, + GUGroupIDList, + GUMMEI, + HandoverReportType, + HandoverRestrictionList, + InvokeIndication, + LocationReportingInformation, + MDT-Configuration, + ManagementBasedMDTallowed, + Neighbour-Information, + PCI, + PDCP-SN, + PLMN-Identity, + ReceiveStatusofULPDCPSDUs, + Registration-Request, + RelativeNarrowbandTxPower, + RadioResourceStatus, + RRCConnSetupIndicator, + UE-RLF-Report-Container, + RRC-Context, + ServedCell-Information, + ServedCells, + ShortMAC-I, + SRVCCOperationPossible, + SubscriberProfileIDforRFP, + TargeteNBtoSource-eNBTransparentContainer, + TimeToWait, + TraceActivation, + TraceDepth, + + TransportLayerAddress, + UEAggregateMaximumBitRate, + UE-HistoryInformation, + UE-S1AP-ID, + UESecurityCapabilities, + UE-X2AP-ID, + UL-HighInterferenceIndicationInfo, + UL-InterferenceOverloadIndication, + HWLoadIndicator, + S1TNLLoadIndicator, + Measurement-ID, + ReportCharacteristics, + MobilityParametersInformation, + MobilityParametersModificationRange + + + + +FROM X2AP-IEs + + PrivateIE-Container{}, + ProtocolExtensionContainer{}, + ProtocolIE-Container{}, + ProtocolIE-ContainerList{}, + ProtocolIE-ContainerPair{}, + ProtocolIE-ContainerPairList{}, + ProtocolIE-Single-Container{}, + X2AP-PRIVATE-IES, + X2AP-PROTOCOL-EXTENSION, + X2AP-PROTOCOL-IES, + X2AP-PROTOCOL-IES-PAIR +FROM X2AP-Containers + + id-ABSInformation, + id-ActivatedCellList, + id-Cause, + id-CellInformation, + id-CellInformation-Item, + id-CellMeasurementResult, + id-CellMeasurementResult-Item, + id-CellToReport, + id-CellToReport-Item, + id-CompositeAvailableCapacityGroup, + id-CriticalityDiagnostics, + id-DeactivationIndication, + id-E-RABs-Admitted-Item, + id-E-RABs-Admitted-List, + id-E-RABs-NotAdmitted-List, + id-E-RABs-SubjectToStatusTransfer-List, + id-E-RABs-SubjectToStatusTransfer-Item, + id-E-RABs-ToBeSetup-Item, + id-GlobalENB-ID, + id-GUGroupIDList, + id-GUGroupIDToAddList, + id-GUGroupIDToDeleteList, + id-GUMMEI-ID, + id-InvokeIndication, + id-New-eNB-UE-X2AP-ID, + id-Old-eNB-UE-X2AP-ID, + id-Registration-Request, + id-ReportingPeriodicity, + id-ServedCells, + id-ServedCellsToActivate, + id-ServedCellsToAdd, + id-ServedCellsToModify, + id-ServedCellsToDelete, + id-SRVCCOperationPossible, + id-TargetCell-ID, + id-TargeteNBtoSource-eNBTransparentContainer, + id-TimeToWait, + id-TraceActivation, + id-UE-ContextInformation, + id-UE-HistoryInformation, + id-UE-X2AP-ID, + id-Measurement-ID, + id-ReportCharacteristics, + id-ENB1-Measurement-ID, + id-ENB2-Measurement-ID, + id-ENB1-Cell-ID, + id-ENB2-Cell-ID, + id-ENB2-Proposed-Mobility-Parameters, + id-ENB1-Mobility-Parameters, + id-ENB2-Mobility-Parameters-Modification-Range, + id-FailureCellPCI, + id-Re-establishmentCellECGI, + id-FailureCellCRNTI, + id-ShortMAC-I, + id-SourceCellECGI, + id-FailureCellECGI, + id-HandoverReportType, + id-UE-RLF-Report-Container, + id-PartialSuccessIndicator, + id-MeasurementInitiationResult-List, + id-MeasurementInitiationResult-Item, + id-MeasurementFailureCause-Item, + id-CompleteFailureCauseInformation-List, + id-CompleteFailureCauseInformation-Item, + id-CSGMembershipStatus, + id-CSG-Id, + id-MDTConfiguration, + id-ManagementBasedMDTallowed, + id-ABS-Status, + id-RRCConnSetupIndicator, + + maxCellineNB, + maxnoofBearers, + maxnoofPDCP-SN, + maxFailedMeasObjects, + maxnoofCellIDforMDT, + maxnoofTAforMDT + +FROM X2AP-Constants; + +-- ************************************************************** +-- +-- HANDOVER REQUEST +-- +-- ************************************************************** + +HandoverRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverRequest-IEs}}, + ... +} + +HandoverRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TargetCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }| + { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory }| + { ID id-UE-ContextInformation CRITICALITY reject TYPE UE-ContextInformation PRESENCE mandatory }| + { ID id-UE-HistoryInformation CRITICALITY ignore TYPE UE-HistoryInformation PRESENCE mandatory }| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}, + ... +} + +UE-ContextInformation ::= SEQUENCE { + mME-UE-S1AP-ID UE-S1AP-ID, + uESecurityCapabilities UESecurityCapabilities, + aS-SecurityInformation AS-SecurityInformation, + uEaggregateMaximumBitRate UEAggregateMaximumBitRate, + subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, + e-RABs-ToBeSetup-List E-RABs-ToBeSetup-List, + rRC-Context RRC-Context, + handoverRestrictionList HandoverRestrictionList OPTIONAL, + locationReportingInformation LocationReportingInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {UE-ContextInformation-ExtIEs} } OPTIONAL, + ... +} + +UE-ContextInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-ManagementBasedMDTallowed CRITICALITY ignore EXTENSION ManagementBasedMDTallowed PRESENCE optional }, + ... +} + +E-RABs-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetup-ItemIEs} } + +E-RABs-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeSetup-Item CRITICALITY ignore TYPE E-RABs-ToBeSetup-Item PRESENCE mandatory }, + ... +} + +E-RABs-ToBeSetup-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + dL-Forwarding DL-Forwarding OPTIONAL, + uL-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetup-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeSetup-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- HANDOVER REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +HandoverRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverRequestAcknowledge-IEs}}, + ... +} + +HandoverRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-E-RABs-Admitted-List CRITICALITY ignore TYPE E-RABs-Admitted-List PRESENCE mandatory} | + { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional} | + { ID id-TargeteNBtoSource-eNBTransparentContainer CRITICALITY ignore TYPE TargeteNBtoSource-eNBTransparentContainer PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +E-RABs-Admitted-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ItemIEs} } + +E-RABs-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-Item CRITICALITY ignore TYPE E-RABs-Admitted-Item PRESENCE mandatory } +} + +E-RABs-Admitted-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, + dL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-Item-ExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- HANDOVER PREPARATION FAILURE +-- +-- ************************************************************** + +HandoverPreparationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverPreparationFailure-IEs}}, + ... +} + +HandoverPreparationFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + + ... +} + +-- ************************************************************** +-- +-- Handover Report +-- +-- ************************************************************** + +HandoverReport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverReport-IEs}}, + ... +} + +HandoverReport-IEs X2AP-PROTOCOL-IES ::= { + { ID id-HandoverReportType CRITICALITY ignore TYPE HandoverReportType PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | + { ID id-SourceCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-FailureCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory} | + { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to “HO to Wrong Cell” -- , + ... +} + +-- ************************************************************** +-- +-- SN Status Transfer +-- +-- ************************************************************** + +SNStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SNStatusTransfer-IEs}}, + ... +} + +SNStatusTransfer-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-E-RABs-SubjectToStatusTransfer-List CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-List PRESENCE mandatory} , + ... +} + +E-RABs-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { { E-RABs-SubjectToStatusTransfer-ItemIEs} } + +E-RABs-SubjectToStatusTransfer-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-Item PRESENCE mandatory } +} + +E-RABs-SubjectToStatusTransfer-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + + receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, + uL-COUNTvalue COUNTvalue, + dL-COUNTvalue COUNTvalue, + iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-SubjectToStatusTransfer-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + + + +-- ************************************************************** +-- +-- UE Context Release +-- +-- ************************************************************** + +UEContextRelease ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextRelease-IEs}}, + ... +} + +UEContextRelease-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} , + ... +} + + +-- ************************************************************** +-- +-- HANDOVER CANCEL +-- +-- ************************************************************** + +HandoverCancel ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverCancel-IEs}}, + ... +} + +HandoverCancel-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} , + ... +} + +-- ************************************************************** +-- +-- ERROR INDICATION +-- +-- ************************************************************** + +ErrorIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}}, + ... +} + +ErrorIndication-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} | + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional} , + ... +} + +-- ************************************************************** +-- +-- Reset Request +-- +-- ************************************************************** + +ResetRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResetRequest-IEs}}, + ... +} + +ResetRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Reset Response +-- +-- ************************************************************** + +ResetResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResetResponse-IEs}}, + ... +} + +ResetResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- X2 SETUP REQUEST +-- +-- ************************************************************** + +X2SetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupRequest-IEs}}, + ... +} + +X2SetupRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory} | + { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory} | + { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}, +... +} + + + +-- ************************************************************** +-- +-- X2 SETUP RESPONSE +-- +-- ************************************************************** + +X2SetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupResponse-IEs}}, + ... +} + +X2SetupResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory} | + { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory} | + { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + + +-- ************************************************************** +-- +-- X2 SETUP FAILURE +-- +-- ************************************************************** + +X2SetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupFailure-IEs}}, + ... +} + +X2SetupFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + + ... +} + + + +-- ************************************************************** +-- +-- LOAD INFORMATION +-- +-- ************************************************************** + +LoadInformation ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{LoadInformation-IEs}}, + ... +} + +LoadInformation-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CellInformation CRITICALITY ignore TYPE CellInformation-List PRESENCE mandatory} , + ... +} + +CellInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellInformation-ItemIEs} } + +CellInformation-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellInformation-Item CRITICALITY ignore TYPE CellInformation-Item PRESENCE mandatory } +} + +CellInformation-Item ::= SEQUENCE { + cell-ID ECGI, + ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication OPTIONAL, + ul-HighInterferenceIndicationInfo UL-HighInterferenceIndicationInfo OPTIONAL, + relativeNarrowbandTxPower RelativeNarrowbandTxPower OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CellInformation-Item-ExtIEs} } OPTIONAL, + ... +} + +CellInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-ABSInformation CRITICALITY ignore EXTENSION ABSInformation PRESENCE optional }| +{ ID id-InvokeIndication CRITICALITY ignore EXTENSION InvokeIndication PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE +-- +-- ************************************************************** + +ENBConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdate-IEs}}, + ... +} + +ENBConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ServedCellsToAdd CRITICALITY reject TYPE ServedCells PRESENCE optional} | + { ID id-ServedCellsToModify CRITICALITY reject TYPE ServedCellsToModify PRESENCE optional} | + { ID id-ServedCellsToDelete CRITICALITY reject TYPE Old-ECGIs PRESENCE optional} | + { ID id-GUGroupIDToAddList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional} | + { ID id-GUGroupIDToDeleteList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}, + ... +} + +ServedCellsToModify::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToModify-Item + +ServedCellsToModify-Item::= SEQUENCE { + old-ecgi ECGI, + servedCellInfo ServedCell-Information, + neighbour-Info Neighbour-Information OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ServedCellsToModify-Item-ExtIEs} } OPTIONAL, + ... +} + +ServedCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-DeactivationIndication CRITICALITY ignore EXTENSION DeactivationIndication PRESENCE optional }, + ... +} + + +Old-ECGIs::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE ACKNOWLEDGE +-- +-- ************************************************************** + +ENBConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateAcknowledge-IEs}}, + ... +} + +ENBConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, +... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE FAIURE +-- +-- ************************************************************** + +ENBConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateFailure-IEs}}, + ... +} + +ENBConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + + +-- ************************************************************** +-- +-- Resource Status Request +-- +-- ************************************************************** + +ResourceStatusRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusRequest-IEs}}, + ... +} + +ResourceStatusRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY ignore TYPE Measurement-ID PRESENCE conditional}|-- The IE shall be present if the Registration Request IE is set to “Stop”-- + { ID id-Registration-Request CRITICALITY reject TYPE Registration-Request PRESENCE mandatory}| + { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE optional}| + { ID id-CellToReport CRITICALITY ignore TYPE CellToReport-List PRESENCE mandatory}| + { ID id-ReportingPeriodicity CRITICALITY ignore TYPE ReportingPeriodicity PRESENCE optional}| + { ID id-PartialSuccessIndicator CRITICALITY ignore TYPE PartialSuccessIndicator PRESENCE optional}, + ... +} + + +CellToReport-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellToReport-ItemIEs} } + +CellToReport-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellToReport-Item CRITICALITY ignore TYPE CellToReport-Item PRESENCE mandatory } +} + +CellToReport-Item ::= SEQUENCE { + cell-ID ECGI, + iE-Extensions ProtocolExtensionContainer { {CellToReport-Item-ExtIEs} } OPTIONAL, + ... +} + +CellToReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +ReportingPeriodicity ::= ENUMERATED { + one-thousand-ms, + two-thousand-ms, + five-thousand-ms, + ten-thousand-ms, +... +} + +PartialSuccessIndicator ::= ENUMERATED { + partial-success-allowed, +... +} + +-- ************************************************************** +-- +-- Resource Status Response +-- +-- ************************************************************** + +ResourceStatusResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusResponse-IEs}}, + ... +} + +ResourceStatusResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeasurementInitiationResult-List CRITICALITY ignore TYPE MeasurementInitiationResult-List PRESENCE optional}, + ... +} + + +MeasurementInitiationResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { { MeasurementInitiationResult-ItemIEs} } + +MeasurementInitiationResult-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-MeasurementInitiationResult-Item CRITICALITY ignore TYPE MeasurementInitiationResult-Item PRESENCE mandatory} +} + +MeasurementInitiationResult-Item ::= SEQUENCE { + cell-ID ECGI, + measurementFailureCause-List MeasurementFailureCause-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { MeasurementInitiationResult-Item-ExtIEs} } OPTIONAL, + ... +} + +MeasurementInitiationResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +MeasurementFailureCause-List ::= SEQUENCE (SIZE (1..maxFailedMeasObjects)) OF ProtocolIE-Single-Container { { MeasurementFailureCause-ItemIEs} } + +MeasurementFailureCause-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-MeasurementFailureCause-Item CRITICALITY ignore TYPE MeasurementFailureCause-Item PRESENCE mandatory} +} + +MeasurementFailureCause-Item ::= SEQUENCE { + measurementFailedReportCharacteristics ReportCharacteristics, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { MeasurementFailureCause-Item-ExtIEs} } OPTIONAL, + ... +} + +MeasurementFailureCause-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Resource Status Failure +-- +-- ************************************************************** + +ResourceStatusFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusFailure-IEs}}, + ... +} + +ResourceStatusFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-CompleteFailureCauseInformation-List CRITICALITY ignore TYPE CompleteFailureCauseInformation-List PRESENCE optional}, + ... +} + +CompleteFailureCauseInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CompleteFailureCauseInformation-ItemIEs} } + +CompleteFailureCauseInformation-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CompleteFailureCauseInformation-Item CRITICALITY ignore TYPE CompleteFailureCauseInformation-Item PRESENCE mandatory} +} + +CompleteFailureCauseInformation-Item ::= SEQUENCE { + cell-ID ECGI, + measurementFailureCause-List MeasurementFailureCause-List, + iE-Extensions ProtocolExtensionContainer { { CompleteFailureCauseInformation-Item-ExtIEs} } OPTIONAL, + ... +} + +CompleteFailureCauseInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Resource Status Update +-- +-- ************************************************************** + +ResourceStatusUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusUpdate-IEs}}, + ... +} + +ResourceStatusUpdate-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-CellMeasurementResult CRITICALITY ignore TYPE CellMeasurementResult-List PRESENCE mandatory}, + ... +} + +CellMeasurementResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellMeasurementResult-ItemIEs} } + +CellMeasurementResult-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellMeasurementResult-Item CRITICALITY ignore TYPE CellMeasurementResult-Item PRESENCE mandatory } +} + +CellMeasurementResult-Item ::= SEQUENCE { + cell-ID ECGI, + hWLoadIndicator HWLoadIndicator OPTIONAL, + s1TNLLoadIndicator S1TNLLoadIndicator OPTIONAL, + radioResourceStatus RadioResourceStatus OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CellMeasurementResult-Item-ExtIEs} } OPTIONAL, + ... +} + +CellMeasurementResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-CompositeAvailableCapacityGroup CRITICALITY ignore EXTENSION CompositeAvailableCapacityGroup PRESENCE optional}| + { ID id-ABS-Status CRITICALITY ignore EXTENSION ABS-Status PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- PRIVATE MESSAGE +-- +-- ************************************************************** + +PrivateMessage ::= SEQUENCE { + privateIEs PrivateIE-Container {{PrivateMessage-IEs}}, + ... +} + +PrivateMessage-IEs X2AP-PRIVATE-IES ::= { + ... +} + +-- ************************************************************** +-- +-- MOBILITY CHANGE REQUEST +-- +-- ************************************************************** + +MobilityChangeRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{MobilityChangeRequest-IEs}}, + ... +} + +MobilityChangeRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }| + { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }| + { ID id-ENB1-Mobility-Parameters CRITICALITY ignore TYPE MobilityParametersInformation PRESENCE optional }| + { ID id-ENB2-Proposed-Mobility-Parameters CRITICALITY reject TYPE MobilityParametersInformation PRESENCE mandatory }| + { ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- MOBILITY CHANGE ACKNOWLEDGE +-- +-- ************************************************************** + +MobilityChangeAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{MobilityChangeAcknowledge-IEs}}, + ... +} + +MobilityChangeAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }| + { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- MOBILITY CHANGE FAILURE +-- +-- ************************************************************** + +MobilityChangeFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{MobilityChangeFailure-IEs}}, + ... +} + +MobilityChangeFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory }| + { ID id-ENB2-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-ENB2-Mobility-Parameters-Modification-Range CRITICALITY ignore TYPE MobilityParametersModificationRange PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- Radio Link Failure Indication +-- +-- ************************************************************** + +RLFIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RLFIndication-IEs}}, + ... +} + +RLFIndication-IEs X2AP-PROTOCOL-IES ::= { + { ID id-FailureCellPCI CRITICALITY ignore TYPE PCI PRESENCE mandatory}| + { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-FailureCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE mandatory}| + { ID id-ShortMAC-I CRITICALITY ignore TYPE ShortMAC-I PRESENCE optional}| + { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}| + { ID id-RRCConnSetupIndicator CRITICALITY reject TYPE RRCConnSetupIndicator PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- Cell Activation Request +-- +-- ************************************************************** + +CellActivationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationRequest-IEs}}, + ... +} + +CellActivationRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ServedCellsToActivate CRITICALITY reject TYPE ServedCellsToActivate PRESENCE mandatory }, + ... +} + +ServedCellsToActivate::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToActivate-Item + +ServedCellsToActivate-Item::= SEQUENCE { + ecgi ECGI, + iE-Extensions ProtocolExtensionContainer { { ServedCellsToActivate-Item-ExtIEs} } OPTIONAL, + ... +} + +ServedCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Cell Activation Response +-- +-- ************************************************************** + +CellActivationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationResponse-IEs}}, + ... +} + +CellActivationResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ActivatedCellList CRITICALITY ignore TYPE ActivatedCellList PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +ActivatedCellList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ActivatedCellList-Item + +ActivatedCellList-Item::= SEQUENCE { + ecgi ECGI, + iE-Extensions ProtocolExtensionContainer { { ActivatedCellList-Item-ExtIEs} } OPTIONAL, + ... +} + +ActivatedCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +--************************************************************** +-- +-- CELL ACTIVATION FAILURE +-- +-- ************************************************************** + +CellActivationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationFailure-IEs}}, + ... +} + +CellActivationFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +END + + +-- ************************************************************** +-- +-- Information Element Definitions +-- +-- ************************************************************** + +X2AP-IEs { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-IEs (2) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + + id-E-RAB-Item, + id-Number-of-Antennaports, + id-MBSFN-Subframe-Info, + id-PRACH-Configuration, + id-CSG-Id, + id-MDTConfiguration, + maxnoofBearers, + maxCellineNB, + maxEARFCN, + maxInterfaces, + + maxnoofBPLMNs, + maxnoofCells, + maxnoofEPLMNs, + maxnoofEPLMNsPlusOne, + maxnoofForbLACs, + maxnoofForbTACs, + maxnoofNeighbours, + maxnoofPRBs, + maxNrOfErrors, + maxPools, + maxnoofMBSFN, + maxnoofTAforMDT, + maxnoofCellIDforMDT + +FROM X2AP-Constants + + Criticality, + ProcedureCode, + ProtocolIE-ID, + TriggeringMessage +FROM X2AP-CommonDataTypes + + ProtocolExtensionContainer{}, + ProtocolIE-Single-Container{}, + + X2AP-PROTOCOL-EXTENSION, + X2AP-PROTOCOL-IES +FROM X2AP-Containers; + +-- A + +ABSInformation ::= CHOICE { + fdd ABSInformationFDD, + tdd ABSInformationTDD, + abs-inactive NULL, + ... +} + +ABSInformationFDD ::= SEQUENCE { + abs-pattern-info BIT STRING (SIZE(40)), + numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, + measurement-subset BIT STRING (SIZE(40)), + iE-Extensions ProtocolExtensionContainer { { ABSInformationFDD-ExtIEs} } OPTIONAL, + ... +} + +ABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ABSInformationTDD ::= SEQUENCE { + abs-pattern-info BIT STRING (SIZE(1..70, ...)), + numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, + measurement-subset BIT STRING (SIZE(1..70, ...)), + iE-Extensions ProtocolExtensionContainer { { ABSInformationTDD-ExtIEs} } OPTIONAL, + ... +} + +ABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ABS-Status ::= SEQUENCE { + dL-ABS-status DL-ABS-status, + usableABSInformation UsableABSInformation, + iE-Extensions ProtocolExtensionContainer { {ABS-Status-ExtIEs} } OPTIONAL, + ... +} + +ABS-Status-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +DL-ABS-status::= INTEGER (0..100) + +AS-SecurityInformation ::= SEQUENCE { + key-eNodeB-star Key-eNodeB-Star, + nextHopChainingCount NextHopChainingCount, + iE-Extensions ProtocolExtensionContainer { { AS-SecurityInformation-ExtIEs} } OPTIONAL, + ... +} + +AS-SecurityInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +AllocationAndRetentionPriority ::= SEQUENCE { + priorityLevel PriorityLevel, + pre-emptionCapability Pre-emptionCapability, + pre-emptionVulnerability Pre-emptionVulnerability, + iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, + ... +} + +AllocationAndRetentionPriority-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +AreaScopeOfMDT ::= CHOICE { + cellBased CellBasedMDT, + tABased TABasedMDT, + pLMNWide NULL, + ... +} + +-- B + + +BitRate ::= INTEGER (0..10000000000) +BroadcastPLMNs-Item ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF PLMN-Identity + + +-- C + +CapacityValue ::= INTEGER (0..100) + +CellCapacityClassValue ::= INTEGER (1..100, ...) + +Cause ::= CHOICE { + radioNetwork CauseRadioNetwork, + transport CauseTransport, + protocol CauseProtocol, + misc CauseMisc, + ... +} + +CauseMisc ::= ENUMERATED { + control-processing-overload, + hardware-failure, + om-intervention, + not-enough-user-plane-processing-resources, + unspecified, + ... +} + +CauseProtocol ::= ENUMERATED { + transfer-syntax-error, + abstract-syntax-error-reject, + abstract-syntax-error-ignore-and-notify, + message-not-compatible-with-receiver-state, + semantic-error, + unspecified, + abstract-syntax-error-falsely-constructed-message, + ... +} + +CauseRadioNetwork ::= ENUMERATED { + handover-desirable-for-radio-reasons, + time-critical-handover, + resource-optimisation-handover, + reduce-load-in-serving-cell, + partial-handover, + unknown-new-eNB-UE-X2AP-ID, + unknown-old-eNB-UE-X2AP-ID, + unknown-pair-of-UE-X2AP-ID, + ho-target-not-allowed, + tx2relocoverall-expiry, + trelocprep-expiry, + cell-not-available, + no-radio-resources-available-in-target-cell, + invalid-MME-GroupID, + unknown-MME-Code, + encryption-and-or-integrity-protection-algorithms-not-supported, + reportCharacteristicsEmpty, + noReportPeriodicity, + existingMeasurementID, + unknown-eNB-Measurement-ID, + measurement-temporarily-not-available, + unspecified, + ..., + load-balancing, + handover-optimisation, + value-out-of-allowed-range, + multiple-E-RAB-ID-instances, + switch-off-ongoing, + not-supported-QCI-value, + measurement-not-supported-for-the-object + +} + +CauseTransport ::= ENUMERATED { + transport-resource-unavailable, + unspecified, + ... +} + +CellBasedMDT::= SEQUENCE { + cellIdListforMDT CellIdListforMDT, + iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +CellBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF ECGI + +Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ... } + + +CellType ::= SEQUENCE { + cell-Size Cell-Size, + iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL, + ... +} + +CellType-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompositeAvailableCapacityGroup ::= SEQUENCE { + dL-CompositeAvailableCapacity CompositeAvailableCapacity, + uL-CompositeAvailableCapacity CompositeAvailableCapacity, + iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacityGroup-ExtIEs} } OPTIONAL, + ... +} + +CompositeAvailableCapacityGroup-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompositeAvailableCapacity ::= SEQUENCE { + cellCapacityClassValue CellCapacityClassValue OPTIONAL, + capacityValue CapacityValue, + iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacity-ExtIEs} } OPTIONAL, + ... +} + +CompositeAvailableCapacity-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTvalue ::= SEQUENCE { + pDCP-SN PDCP-SN, + hFN HFN, + iE-Extensions ProtocolExtensionContainer { { COUNTvalue-ExtIEs} } OPTIONAL, + ... +} + +COUNTvalue-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +CriticalityDiagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL, + ... +} + + +CriticalityDiagnostics-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF + SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-List-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CRNTI ::= BIT STRING (SIZE (16)) + +CSGMembershipStatus ::= ENUMERATED { + member, + not-member +} + +CSG-Id ::= BIT STRING (SIZE (27)) + +CyclicPrefixDL ::= ENUMERATED { + normal, + extended, + ... +} + +CyclicPrefixUL ::= ENUMERATED { + normal, + extended, + ... +} + + +-- D + +DeactivationIndication::= ENUMERATED { + deactivated, + ... +} + +DL-Forwarding ::= ENUMERATED { + dL-forwardingProposed, + ... +} + +DL-GBR-PRB-usage::= INTEGER (0..100) + +DL-non-GBR-PRB-usage::= INTEGER (0..100) + +DL-Total-PRB-usage::= INTEGER (0..100) + +-- E + +EARFCN ::= INTEGER (0..maxEARFCN) + +FDD-Info ::= SEQUENCE { + uL-EARFCN EARFCN, + dL-EARFCN EARFCN, + uL-Transmission-Bandwidth Transmission-Bandwidth, + dL-Transmission-Bandwidth Transmission-Bandwidth, + iE-Extensions ProtocolExtensionContainer { {FDD-Info-ExtIEs} } OPTIONAL, + ... +} + +FDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TDD-Info ::= SEQUENCE { + eARFCN EARFCN, + transmission-Bandwidth Transmission-Bandwidth, + subframeAssignment SubframeAssignment, + specialSubframe-Info SpecialSubframe-Info, + iE-Extensions ProtocolExtensionContainer { {TDD-Info-ExtIEs} } OPTIONAL, + ... +} +TDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +EUTRA-Mode-Info ::= CHOICE { + fDD FDD-Info, + tDD TDD-Info, + ... +} + +ECGI ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + eUTRANcellIdentifier EUTRANCellIdentifier, + iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL, + ... +} + +ECGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENB-ID ::= CHOICE { + macro-eNB-ID BIT STRING (SIZE (20)), + home-eNB-ID BIT STRING (SIZE (28)), + ... +} + +EncryptionAlgorithms ::= BIT STRING (SIZE (16, ...)) + +EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMN-Identity + +E-RAB-ID ::= INTEGER (0..15, ...) + +E-RAB-Level-QoS-Parameters ::= SEQUENCE { + qCI QCI, + allocationAndRetentionPriority AllocationAndRetentionPriority, + gbrQosInformation GBR-QosInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { E-RAB-Level-QoS-Parameters-ExtIEs} } OPTIONAL, + ... +} + +E-RAB-Level-QoS-Parameters-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RAB-List ::= SEQUENCE (SIZE(1.. maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RAB-ItemIEs} } + +E-RAB-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RAB-Item CRITICALITY ignore TYPE E-RAB-Item PRESENCE mandatory }, + ... +} + +E-RAB-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RAB-Item-ExtIEs} } OPTIONAL, + ... +} + +E-RAB-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +EUTRANCellIdentifier ::= BIT STRING (SIZE (28)) + +EUTRANTraceID ::= OCTET STRING (SIZE (8)) + + +EventType ::= ENUMERATED{ + change-of-serving-cell, + ... +} + + +-- F + +ForbiddenInterRATs ::= ENUMERATED { + all, + geran, + utran, + cdma2000, + ..., + geranandutran, + cdma2000andutran + +} + +ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item + +ForbiddenTAs-Item ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + forbiddenTACs ForbiddenTACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenTAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC + +ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item + +ForbiddenLAs-Item ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + forbiddenLACs ForbiddenLACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenLAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC + +Fourframes ::= BIT STRING (SIZE (24)) + +-- G + +GBR-QosInformation ::= SEQUENCE { + e-RAB-MaximumBitrateDL BitRate, + e-RAB-MaximumBitrateUL BitRate, + e-RAB-GuaranteedBitrateDL BitRate, + e-RAB-GuaranteedBitrateUL BitRate, + iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL, + ... +} + +GBR-QosInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GlobalENB-ID ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + eNB-ID ENB-ID, + iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL, + ... +} + +GlobalENB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GTPtunnelEndpoint ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEI, + iE-Extensions ProtocolExtensionContainer { {GTPtunnelEndpoint-ExtIEs} } OPTIONAL, + ... +} + +GTPtunnelEndpoint-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GTP-TEI ::= OCTET STRING (SIZE (4)) + +GUGroupIDList ::= SEQUENCE (SIZE (1..maxPools)) OF GU-Group-ID + + +GU-Group-ID ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + mME-Group-ID MME-Group-ID, + iE-Extensions ProtocolExtensionContainer { {GU-Group-ID-ExtIEs} } OPTIONAL, + ... +} + +GU-Group-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +GUMMEI ::= SEQUENCE { + + gU-Group-ID GU-Group-ID, + mME-Code MME-Code, + iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, + ... +} + +GUMMEI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- H + +HandoverReportType ::= ENUMERATED { + hoTooEarly, + hoToWrongCell, + ... +} + +HandoverRestrictionList ::= SEQUENCE { + servingPLMN PLMN-Identity, + equivalentPLMNs EPLMNs OPTIONAL, + forbiddenTAs ForbiddenTAs OPTIONAL, + forbiddenLAs ForbiddenLAs OPTIONAL, + forbiddenInterRATs ForbiddenInterRATs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, + ... +} + +HandoverRestrictionList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +HFN ::= INTEGER (0..1048575) + +HWLoadIndicator ::= SEQUENCE { + dLHWLoadIndicator LoadIndicator, + uLHWLoadIndicator LoadIndicator, + iE-Extensions ProtocolExtensionContainer { { HWLoadIndicator-ExtIEs} } OPTIONAL, + ... +} + +HWLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- I + +InvokeIndication ::= ENUMERATED{ + abs-information, + ... +} + +IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16, ...)) + +InterfacesToTrace ::= BIT STRING (SIZE (8)) +-- J +-- K + + +Key-eNodeB-Star ::= BIT STRING (SIZE(256)) + +-- L + + +LAC ::= OCTET STRING (SIZE (2)) --(EXCEPT ('0000'H|'FFFE'H)) + +LastVisitedCell-Item ::= CHOICE { + e-UTRAN-Cell LastVisitedEUTRANCellInformation, + uTRAN-Cell LastVisitedUTRANCellInformation, + gERAN-Cell LastVisitedGERANCellInformation, + ... +} + +LastVisitedEUTRANCellInformation ::= SEQUENCE { + global-Cell-ID ECGI, + cellType CellType, + time-UE-StayedInCell Time-UE-StayedInCell, + iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, + ... +} + +LastVisitedEUTRANCellInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +LastVisitedUTRANCellInformation ::= OCTET STRING + +LastVisitedGERANCellInformation ::= CHOICE { + undefined NULL, + ... +} + + +LoadIndicator ::= ENUMERATED { + lowLoad, + mediumLoad, + highLoad, + overLoad, + ... +} + + + +LocationReportingInformation ::= SEQUENCE { + eventType EventType, + reportArea ReportArea, + iE-Extensions ProtocolExtensionContainer { {LocationReportingInformation-ExtIEs} } OPTIONAL, + ... +} + +LocationReportingInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::={ + ... +} + +-- M + +MDT-Activation ::= ENUMERATED { + immediate-MDT-only, + immediate-MDT-and-Trace, + ... +} + +MDT-Configuration ::= SEQUENCE { + mdt-Activation MDT-Activation, + areaScopeOfMDT AreaScopeOfMDT, + measurementsToActivate MeasurementsToActivate, + reportingTriggerMDT ReportingTriggerMDT, + thresholdeventA2 ThresholdEventA2 OPTIONAL, +-- Included in case of event-triggered reporting for measurement M1 + periodicReportingMDT PeriodicReportingMDT OPTIONAL, +-- Included in case of periodic reporting + iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTIONAL, + ... +} + +MDT-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +MeasurementsToActivate::= BIT STRING (SIZE (8)) + +MeasurementThresholdA2 ::= CHOICE { + threshold-RSRP Threshold-RSRP, + threshold-RSRQ Threshold-RSRQ, + ... +} + +MME-Group-ID ::= OCTET STRING (SIZE (2)) + +MME-Code ::= OCTET STRING (SIZE (1)) + +Measurement-ID ::= INTEGER (1..4095, ...) + +MBSFN-Subframe-Infolist::= SEQUENCE (SIZE(1.. maxnoofMBSFN)) OF MBSFN-Subframe-Info + +MBSFN-Subframe-Info ::= SEQUENCE { + radioframeAllocationPeriod RadioframeAllocationPeriod, + radioframeAllocationOffset RadioframeAllocationOffset, + subframeAllocation SubframeAllocation, + iE-Extensions ProtocolExtensionContainer { { MBSFN-Subframe-Info-ExtIEs } } OPTIONAL, + ... +} + +MBSFN-Subframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ManagementBasedMDTallowed ::= ENUMERATED {allowed, ...} + +MobilityParametersModificationRange ::= SEQUENCE { + handoverTriggerChangeLowerLimit INTEGER (-20..20), + handoverTriggerChangeUpperLimit INTEGER (-20..20), + ... +} + +MobilityParametersInformation ::= SEQUENCE { + handoverTriggerChange INTEGER (-20..20), + ... +} + + +-- N + +Neighbour-Information ::= SEQUENCE (SIZE (0..maxnoofNeighbours)) OF SEQUENCE { + eCGI ECGI, + pCI PCI, + eARFCN EARFCN, + iE-Extensions ProtocolExtensionContainer { {Neighbour-Information-ExtIEs} } OPTIONAL, + ... +} + +Neighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +NextHopChainingCount ::= INTEGER (0..7) + +Number-of-Antennaports ::= ENUMERATED { + an1, + an2, + an4, + ... +} + +-- O + +Oneframe ::= BIT STRING (SIZE (6)) + +-- P + +PDCP-SN ::= INTEGER (0..4095) + +PCI ::= INTEGER (0..503, ...) + +PeriodicReportingMDT ::= SEQUENCE { + reportInterval ReportIntervalMDT, + reportAmount ReportAmountMDT, + iE-Extensions ProtocolExtensionContainer { { PeriodicReportingMDT-ExtIEs} } OPTIONAL, + ... +} + +PeriodicReportingMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +PLMN-Identity ::= OCTET STRING (SIZE(3)) + +PRACH-Configuration ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + zeroCorrelationIndex INTEGER (0..15), + highSpeedFlag BOOLEAN, + prach-FreqOffset INTEGER (0..94), + prach-ConfigIndex INTEGER (0..63) OPTIONAL, -- present for TDD -- + iE-Extensions ProtocolExtensionContainer { {PRACH-Configuration-ExtIEs} } OPTIONAL, + ... +} + +PRACH-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +Pre-emptionCapability ::= ENUMERATED { + shall-not-trigger-pre-emption, + may-trigger-pre-emption +} + +Pre-emptionVulnerability ::= ENUMERATED { + not-pre-emptable, + pre-emptable +} + +PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) + +-- Q + +QCI ::= INTEGER (0..255) + +-- R + +RadioframeAllocationOffset ::= INTEGER (0..7, ...) + +RadioframeAllocationPeriod ::= ENUMERATED{ + n1, + n2, + n4, + n8, + n16, + n32, + ... +} + + +RadioResourceStatus ::= SEQUENCE { + dL-GBR-PRB-usage DL-GBR-PRB-usage, + uL-GBR-PRB-usage UL-GBR-PRB-usage, + dL-non-GBR-PRB-usage DL-non-GBR-PRB-usage, + uL-non-GBR-PRB-usage UL-non-GBR-PRB-usage, + dL-Total-PRB-usage DL-Total-PRB-usage, + uL-Total-PRB-usage UL-Total-PRB-usage, + iE-Extensions ProtocolExtensionContainer { {RadioResourceStatus-ExtIEs} } OPTIONAL, + ... +} + +RadioResourceStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) + +Registration-Request ::= ENUMERATED { + start, + stop, + ... +} + +RelativeNarrowbandTxPower ::= SEQUENCE { + + rNTP-PerPRB BIT STRING (SIZE(6..110, ...)), + rNTP-Threshold RNTP-Threshold, + numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, + p-B INTEGER (0..3,...), + pDCCH-InterferenceImpact INTEGER (0..4,...), + iE-Extensions ProtocolExtensionContainer { { RelativeNarrowbandTxPower-ExtIEs} } OPTIONAL, + ... +} + +RelativeNarrowbandTxPower-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity} + +ReportArea ::= ENUMERATED{ + ecgi, + ... +} + +ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60} + +ReportCharacteristics ::= BIT STRING (SIZE (32)) + +ReportingTriggerMDT::= ENUMERATED{ + periodic, + a2eventtriggered, + ... +} + +RNTP-Threshold ::= ENUMERATED { + minusInfinity, + minusEleven, + minusTen, + minusNine, + minusEight, + minusSeven, + minusSix, + minusFive, + minusFour, + minusThree, + minusTwo, + minusOne, + zero, + one, + two, + three, + ... +} + +RRC-Context ::= OCTET STRING + +RRCConnSetupIndicator::= ENUMERATED { + rrcConnSetup, + ... +} + +-- S + +S1TNLLoadIndicator ::= SEQUENCE { + dLS1TNLLoadIndicator LoadIndicator, + uLS1TNLLoadIndicator LoadIndicator, + iE-Extensions ProtocolExtensionContainer { { S1TNLLoadIndicator-ExtIEs} } OPTIONAL, + ... +} + +S1TNLLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + + +ServedCells ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { + servedCellInfo ServedCell-Information, + neighbour-Info Neighbour-Information OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ServedCell-ExtIEs} } OPTIONAL, + ... +} + +ServedCell-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedCell-Information ::= SEQUENCE { + pCI PCI, + cellId ECGI, + tAC TAC, + broadcastPLMNs BroadcastPLMNs-Item, + eUTRA-Mode-Info EUTRA-Mode-Info, + iE-Extensions ProtocolExtensionContainer { {ServedCell-Information-ExtIEs} } OPTIONAL, + ... +} + +ServedCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-Number-of-Antennaports CRITICALITY ignore EXTENSION Number-of-Antennaports PRESENCE optional }| + { ID id-PRACH-Configuration CRITICALITY ignore EXTENSION PRACH-Configuration PRESENCE optional }| + { ID id-MBSFN-Subframe-Info CRITICALITY ignore EXTENSION MBSFN-Subframe-Infolist PRESENCE optional }| + { ID id-CSG-Id CRITICALITY ignore EXTENSION CSG-Id PRESENCE optional }, + ... +} + +ShortMAC-I ::= BIT STRING (SIZE(16)) + +SRVCCOperationPossible ::= ENUMERATED { + possible, + ... +} + +SubframeAssignment ::= ENUMERATED { + sa0, + sa1, + sa2, + sa3, + sa4, + sa5, + sa6, + ... +} + +SpecialSubframe-Info ::= SEQUENCE { + specialSubframePatterns SpecialSubframePatterns, + cyclicPrefixDL CyclicPrefixDL, + cyclicPrefixUL CyclicPrefixUL, + iE-Extensions ProtocolExtensionContainer { { SpecialSubframe-Info-ExtIEs} } OPTIONAL, + ... +} + +SpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +SpecialSubframePatterns ::= ENUMERATED { + ssp0, + ssp1, + ssp2, + ssp3, + ssp4, + ssp5, + ssp6, + ssp7, + ssp8, + ... +} + +SubscriberProfileIDforRFP ::= INTEGER (1..256) + +SubframeAllocation ::= CHOICE { + oneframe Oneframe, + fourframes Fourframes, + ... +} + +-- T + +TAC ::= OCTET STRING (SIZE (2)) + +TABasedMDT::= SEQUENCE { + tAListforMDT TAListforMDT, + iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TABasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC + +ThresholdEventA2 ::= SEQUENCE { + measurementThreshold MeasurementThresholdA2, + iE-Extensions ProtocolExtensionContainer { { ThresholdEventA2-ExtIEs} } OPTIONAL, + ... +} + +ThresholdEventA2-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TargeteNBtoSource-eNBTransparentContainer ::= OCTET STRING + +Threshold-RSRP ::= INTEGER(0..97) + +Threshold-RSRQ ::= INTEGER(0..34) + +TimeToWait ::= ENUMERATED { + v1s, + v2s, + v5s, + v10s, + v20s, + v60s, + ... +} + +Time-UE-StayedInCell ::= INTEGER (0..4095) + + +TraceActivation ::= SEQUENCE { + eUTRANTraceID EUTRANTraceID, + interfacesToTrace InterfacesToTrace, + traceDepth TraceDepth, + traceCollectionEntityIPAddress TraceCollectionEntityIPAddress, + iE-Extensions ProtocolExtensionContainer { {TraceActivation-ExtIEs} } OPTIONAL, + ... +} + +TraceActivation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional}, + ... +} + +TraceCollectionEntityIPAddress ::= BIT STRING (SIZE(1..160, ...)) + +TraceDepth ::= ENUMERATED { + minimum, + medium, + maximum, + minimumWithoutVendorSpecificExtension, + mediumWithoutVendorSpecificExtension, + maximumWithoutVendorSpecificExtension, + ... +} + + + + +Transmission-Bandwidth ::= ENUMERATED { + bw6, + bw15, + bw25, + bw50, + bw75, + bw100, + ... +} + +TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) + +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + + +-- U + +UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item + + +UE-S1AP-ID ::= INTEGER (0.. 4294967295) + +UE-X2AP-ID ::= INTEGER (0..4095) + +UEAggregateMaximumBitRate ::= SEQUENCE { + uEaggregateMaximumBitRateDownlink BitRate, + uEaggregateMaximumBitRateUplink BitRate, + iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrate-ExtIEs} } OPTIONAL, + ... +} + +UEAggregate-MaximumBitrate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UESecurityCapabilities ::= SEQUENCE { + encryptionAlgorithms EncryptionAlgorithms, + integrityProtectionAlgorithms IntegrityProtectionAlgorithms, + iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL, +... +} + +UESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UL-GBR-PRB-usage::= INTEGER (0..100) + +UL-non-GBR-PRB-usage::= INTEGER (0..100) + +UL-Total-PRB-usage::= INTEGER (0..100) + +UL-InterferenceOverloadIndication ::= SEQUENCE (SIZE(1..maxnoofPRBs)) OF UL-InterferenceOverloadIndication-Item + +UL-InterferenceOverloadIndication-Item ::= ENUMERATED { + high-interference, + medium-interference, + low-interference, + ... +} + +UL-HighInterferenceIndicationInfo ::= SEQUENCE (SIZE(1..maxCellineNB)) OF UL-HighInterferenceIndicationInfo-Item + +UL-HighInterferenceIndicationInfo-Item ::= SEQUENCE { + target-Cell-ID ECGI, + ul-interferenceindication UL-HighInterferenceIndication, + iE-Extensions ProtocolExtensionContainer { { UL-HighInterferenceIndicationInfo-Item-ExtIEs} } OPTIONAL, + ... +} + +UL-HighInterferenceIndicationInfo-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UL-HighInterferenceIndication ::= BIT STRING (SIZE(1..110, ...)) + +UE-RLF-Report-Container::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the rlfReport field contained in the UEInformationResponse message as defined in TS 36.331 [9] + +UsableABSInformation ::= CHOICE { + fdd UsableABSInformationFDD, + tdd UsableABSInformationTDD, + ... +} + +UsableABSInformationFDD ::= SEQUENCE { + usable-abs-pattern-info BIT STRING (SIZE(40)), + iE-Extensions ProtocolExtensionContainer { { UsableABSInformationFDD-ExtIEs} } OPTIONAL, + ... +} + +UsableABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UsableABSInformationTDD ::= SEQUENCE { + usaable-abs-pattern-info BIT STRING (SIZE(1..70, ...)), + iE-Extensions ProtocolExtensionContainer { { UsableABSInformationTDD-ExtIEs} } OPTIONAL, + ... +} + +UsableABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- V +-- W +-- X +-- Y +-- Z + +END + + +-- ************************************************************** +-- +-- Common definitions +-- +-- ************************************************************** + +X2AP-CommonDataTypes { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-CommonDataTypes (3) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- Extension constants +-- +-- ************************************************************** + +maxPrivateIEs INTEGER ::= 65535 +maxProtocolExtensions INTEGER ::= 65535 +maxProtocolIEs INTEGER ::= 65535 + +-- ************************************************************** +-- +-- Common Data Types +-- +-- ************************************************************** + +Criticality ::= ENUMERATED { reject, ignore, notify } + +Presence ::= ENUMERATED { optional, conditional, mandatory } + +PrivateIE-ID ::= CHOICE { + local INTEGER (0.. maxPrivateIEs), + global OBJECT IDENTIFIER +} + +ProcedureCode ::= INTEGER (0..255) + + +ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs) + + +TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome} + +END + + +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +X2AP-Constants { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Constants (4) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + ProcedureCode, + ProtocolIE-ID +FROM X2AP-CommonDataTypes; + +-- ************************************************************** +-- +-- Elementary Procedures +-- +-- ************************************************************** + +id-handoverPreparation ProcedureCode ::= 0 +id-handoverCancel ProcedureCode ::= 1 +id-loadIndication ProcedureCode ::= 2 +id-errorIndication ProcedureCode ::= 3 +id-snStatusTransfer ProcedureCode ::= 4 +id-uEContextRelease ProcedureCode ::= 5 +id-x2Setup ProcedureCode ::= 6 +id-reset ProcedureCode ::= 7 +id-eNBConfigurationUpdate ProcedureCode ::= 8 +id-resourceStatusReportingInitiation ProcedureCode ::= 9 +id-resourceStatusReporting ProcedureCode ::= 10 +id-privateMessage ProcedureCode ::= 11 +id-mobilitySettingsChange ProcedureCode ::= 12 +id-rLFIndication ProcedureCode ::= 13 +id-handoverReport ProcedureCode ::= 14 +id-cellActivation ProcedureCode ::= 15 + + + +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** + +maxEARFCN INTEGER ::= 65535 +maxInterfaces INTEGER ::= 16 +maxCellineNB INTEGER ::= 256 +maxnoofBearers INTEGER ::= 256 +maxNrOfErrors INTEGER ::= 256 +maxnoofPDCP-SN INTEGER ::= 16 +maxnoofEPLMNs INTEGER ::= 15 +maxnoofEPLMNsPlusOne INTEGER ::= 16 +maxnoofForbLACs INTEGER ::= 4096 +maxnoofForbTACs INTEGER ::= 4096 +maxnoofBPLMNs INTEGER ::= 6 +maxnoofNeighbours INTEGER ::= 512 +maxnoofPRBs INTEGER ::= 110 +maxPools INTEGER ::= 16 +maxnoofCells INTEGER ::= 16 +maxnoofMBSFN INTEGER ::= 8 +maxFailedMeasObjects INTEGER ::= 32 +maxnoofCellIDforMDT INTEGER ::= 32 +maxnoofTAforMDT INTEGER ::= 8 + + +-- ************************************************************** +-- +-- IEs +-- +-- ************************************************************** + +id-E-RABs-Admitted-Item ProtocolIE-ID ::= 0 +id-E-RABs-Admitted-List ProtocolIE-ID ::= 1 +id-E-RAB-Item ProtocolIE-ID ::= 2 +id-E-RABs-NotAdmitted-List ProtocolIE-ID ::= 3 +id-E-RABs-ToBeSetup-Item ProtocolIE-ID ::= 4 +id-Cause ProtocolIE-ID ::= 5 +id-CellInformation ProtocolIE-ID ::= 6 +id-CellInformation-Item ProtocolIE-ID ::= 7 +id-New-eNB-UE-X2AP-ID ProtocolIE-ID ::= 9 +id-Old-eNB-UE-X2AP-ID ProtocolIE-ID ::= 10 +id-TargetCell-ID ProtocolIE-ID ::= 11 +id-TargeteNBtoSource-eNBTransparentContainer ProtocolIE-ID ::= 12 +id-TraceActivation ProtocolIE-ID ::= 13 +id-UE-ContextInformation ProtocolIE-ID ::= 14 +id-UE-HistoryInformation ProtocolIE-ID ::= 15 +id-UE-X2AP-ID ProtocolIE-ID ::= 16 +id-CriticalityDiagnostics ProtocolIE-ID ::= 17 +id-E-RABs-SubjectToStatusTransfer-List ProtocolIE-ID ::= 18 +id-E-RABs-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 19 +id-ServedCells ProtocolIE-ID ::= 20 +id-GlobalENB-ID ProtocolIE-ID ::= 21 +id-TimeToWait ProtocolIE-ID ::= 22 +id-GUMMEI-ID ProtocolIE-ID ::= 23 +id-GUGroupIDList ProtocolIE-ID ::= 24 +id-ServedCellsToAdd ProtocolIE-ID ::= 25 +id-ServedCellsToModify ProtocolIE-ID ::= 26 +id-ServedCellsToDelete ProtocolIE-ID ::= 27 +id-Registration-Request ProtocolIE-ID ::= 28 +id-CellToReport ProtocolIE-ID ::= 29 +id-ReportingPeriodicity ProtocolIE-ID ::= 30 +id-CellToReport-Item ProtocolIE-ID ::= 31 +id-CellMeasurementResult ProtocolIE-ID ::= 32 +id-CellMeasurementResult-Item ProtocolIE-ID ::= 33 +id-GUGroupIDToAddList ProtocolIE-ID ::= 34 +id-GUGroupIDToDeleteList ProtocolIE-ID ::= 35 +id-SRVCCOperationPossible ProtocolIE-ID ::= 36 +id-Measurement-ID ProtocolIE-ID ::= 37 +id-ReportCharacteristics ProtocolIE-ID ::= 38 +id-ENB1-Measurement-ID ProtocolIE-ID ::= 39 +id-ENB2-Measurement-ID ProtocolIE-ID ::= 40 +id-Number-of-Antennaports ProtocolIE-ID ::= 41 +id-CompositeAvailableCapacityGroup ProtocolIE-ID ::= 42 +id-ENB1-Cell-ID ProtocolIE-ID ::= 43 +id-ENB2-Cell-ID ProtocolIE-ID ::= 44 +id-ENB2-Proposed-Mobility-Parameters ProtocolIE-ID ::= 45 +id-ENB1-Mobility-Parameters ProtocolIE-ID ::= 46 +id-ENB2-Mobility-Parameters-Modification-Range ProtocolIE-ID ::= 47 +id-FailureCellPCI ProtocolIE-ID ::= 48 +id-Re-establishmentCellECGI ProtocolIE-ID ::= 49 +id-FailureCellCRNTI ProtocolIE-ID ::= 50 +id-ShortMAC-I ProtocolIE-ID ::= 51 +id-SourceCellECGI ProtocolIE-ID ::= 52 +id-FailureCellECGI ProtocolIE-ID ::= 53 +id-HandoverReportType ProtocolIE-ID ::= 54 +id-PRACH-Configuration ProtocolIE-ID ::= 55 +id-MBSFN-Subframe-Info ProtocolIE-ID ::= 56 +id-ServedCellsToActivate ProtocolIE-ID ::= 57 +id-ActivatedCellList ProtocolIE-ID ::= 58 +id-DeactivationIndication ProtocolIE-ID ::= 59 +id-UE-RLF-Report-Container ProtocolIE-ID ::= 60 +id-ABSInformation ProtocolIE-ID ::= 61 +id-InvokeIndication ProtocolIE-ID ::= 62 +id-ABS-Status ProtocolIE-ID ::= 63 +id-PartialSuccessIndicator ProtocolIE-ID ::= 64 +id-MeasurementInitiationResult-List ProtocolIE-ID ::= 65 +id-MeasurementInitiationResult-Item ProtocolIE-ID ::= 66 +id-MeasurementFailureCause-Item ProtocolIE-ID ::= 67 +id-CompleteFailureCauseInformation-List ProtocolIE-ID ::= 68 +id-CompleteFailureCauseInformation-Item ProtocolIE-ID ::= 69 +id-CSG-Id ProtocolIE-ID ::= 70 +id-CSGMembershipStatus ProtocolIE-ID ::= 71 +id-MDTConfiguration ProtocolIE-ID ::= 72 +id-ManagementBasedMDTallowed ProtocolIE-ID ::= 74 +id-RRCConnSetupIndicator ProtocolIE-ID ::= 75 + +END + + +-- ************************************************************** +-- +-- Container definitions +-- +-- ************************************************************** + +X2AP-Containers { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Containers (5) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + maxPrivateIEs, + maxProtocolExtensions, + maxProtocolIEs, + Criticality, + Presence, + PrivateIE-ID, + ProtocolIE-ID +FROM X2AP-CommonDataTypes; + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +X2AP-PROTOCOL-IES ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +X2AP-PROTOCOL-IES-PAIR ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &firstCriticality Criticality, + &FirstValue, + &secondCriticality Criticality, + &SecondValue, + &presence Presence +} +WITH SYNTAX { + ID &id + FIRST CRITICALITY &firstCriticality + FIRST TYPE &FirstValue + SECOND CRITICALITY &secondCriticality + SECOND TYPE &SecondValue + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol Extensions +-- +-- ************************************************************** + +X2AP-PROTOCOL-EXTENSION ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Extension, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + EXTENSION &Extension + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Private IEs +-- +-- ************************************************************** + +X2AP-PRIVATE-IES ::= CLASS { + &id PrivateIE-ID, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Container for Protocol IEs +-- +-- ************************************************************** + +ProtocolIE-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Single-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Field {X2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-IES.&id ({IEsSetParam}), + criticality X2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), + value X2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Protocol IE Pairs +-- +-- ************************************************************** + +ProtocolIE-ContainerPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-FieldPair {{IEsSetParam}} + +ProtocolIE-FieldPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), + firstCriticality X2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), + firstValue X2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), + secondCriticality X2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), + secondValue X2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container Lists for Protocol IE Containers +-- +-- ************************************************************** + +ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-Container {{IEsSetParam}} + +ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-ContainerPair {{IEsSetParam}} + +-- ************************************************************** +-- +-- Container for Protocol Extensions +-- +-- ************************************************************** + +ProtocolExtensionContainer {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= + SEQUENCE (SIZE (1..maxProtocolExtensions)) OF + ProtocolExtensionField {{ExtensionSetParam}} + +ProtocolExtensionField {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), + criticality X2AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), + extensionValue X2AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Private IEs +-- +-- ************************************************************** + +PrivateIE-Container {X2AP-PRIVATE-IES : IEsSetParam} ::= + SEQUENCE (SIZE (1..maxPrivateIEs)) OF + PrivateIE-Field {{IEsSetParam}} + +PrivateIE-Field {X2AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { + id X2AP-PRIVATE-IES.&id ({IEsSetParam}), + criticality X2AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), + value X2AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) +} + +END diff --git a/openair2/X2AP/MESSAGES/ASN1/R11.2/Makefile.inc b/openair2/X2AP/MESSAGES/ASN1/R11.2/Makefile.inc deleted file mode 100755 index 8dd84743c8..0000000000 --- a/openair2/X2AP/MESSAGES/ASN1/R11.2/Makefile.inc +++ /dev/null @@ -1,462 +0,0 @@ -X2AP_ASN_MODULE_SOURCES= \ - X2ap-Criticality.c \ - X2ap-Presence.c \ - X2ap-PrivateIE-ID.c \ - X2ap-ProcedureCode.c \ - X2ap-ProtocolIE-ID.c \ - X2ap-TriggeringMessage.c \ - X2ap-IE-Extensions.c \ - X2ap-AS-SecurityInformation.c \ - X2ap-AllocationAndRetentionPriority.c \ - X2ap-ActivatedCellList.c \ - X2ap-ActivatedCellList-Item.c \ - X2ap-BitRate.c \ - X2ap-BroadcastPLMNs-Item.c \ - X2ap-CapacityValue.c \ - X2ap-CellCapacityClassValue.c \ - X2ap-CellToReport-List.c \ - X2ap-CellToReport-Item.c \ - X2ap-CellMeasurementResult-List.c \ - X2ap-CellMeasurementResult-Item.c \ - X2ap-ReportingPeriodicity.c \ - X2ap-Cause.c \ - X2ap-CauseMisc.c \ - X2ap-CauseProtocol.c \ - X2ap-CauseRadioNetwork.c \ - X2ap-CauseTransport.c \ - X2ap-Cell-Size.c \ - X2ap-CellInformation-List.c \ - X2ap-CellInformation-Item.c \ - X2ap-CellType.c \ - X2ap-CompositeAvailableCapacityGroup.c \ - X2ap-CompositeAvailableCapacity.c \ - X2ap-COUNTvalue.c \ - X2ap-CriticalityDiagnostics.c \ - X2ap-CriticalityDiagnostics-IE-List.c \ - X2ap-CriticalityDiagnostics-IE-Elm.c \ - X2ap-CRNTI.c \ - X2ap-CyclicPrefixDL.c \ - X2ap-CyclicPrefixUL.c \ - X2ap-DeactivationIndication.c \ - X2ap-DL-Forwarding.c \ - X2ap-E-RABs-Admitted-List.c \ - X2ap-E-RABs-Admitted-Item.c \ - X2ap-E-RABs-ToBeSetup-List.c \ - X2ap-E-RABs-ToBeSetup-Item.c \ - X2ap-E-RABs-SubjectToStatusTransfer-List.c \ - X2ap-E-RABs-SubjectToStatusTransfer-Item.c \ - X2ap-EARFCN.c \ - X2ap-FDD-Info.c \ - X2ap-TDD-Info.c \ - X2ap-EUTRA-Mode-Info.c \ - X2ap-ECGI.c \ - X2ap-ENB-ID.c \ - X2ap-EncryptionAlgorithms.c \ - X2ap-EPLMNs.c \ - X2ap-E-RAB-ID.c \ - X2ap-E-RAB-Level-QoS-Parameters.c \ - X2ap-E-RAB-List.c \ - X2ap-E-RAB-Item.c \ - X2ap-EUTRANCellIdentifier.c \ - X2ap-EUTRANTraceID.c \ - X2ap-EventType.c \ - X2ap-ForbiddenInterRATs.c \ - X2ap-ForbiddenTAs.c \ - X2ap-ForbiddenTAs-Item.c \ - X2ap-ForbiddenTACs.c \ - X2ap-ForbiddenLAs.c \ - X2ap-ForbiddenLAs-Item.c \ - X2ap-ForbiddenLACs.c \ - X2ap-Fourframes.c \ - X2ap-GBR-QosInformation.c \ - X2ap-GlobalENB-ID.c \ - X2ap-GTPtunnelEndpoint.c \ - X2ap-GTP-TEI.c \ - X2ap-GUGroupIDList.c \ - X2ap-GU-Group-ID.c \ - X2ap-GUMMEI.c \ - X2ap-HandoverReportType.c \ - X2ap-HandoverRestrictionList.c \ - X2ap-HFN.c \ - X2ap-HWLoadIndicator.c \ - X2ap-IntegrityProtectionAlgorithms.c \ - X2ap-InterfacesToTrace.c \ - X2ap-Key-eNodeB-Star.c \ - X2ap-LAC.c \ - X2ap-LastVisitedCell-Item.c \ - X2ap-LastVisitedEUTRANCellInformation.c \ - X2ap-LastVisitedUTRANCellInformation.c \ - X2ap-LastVisitedGERANCellInformation.c \ - X2ap-LoadIndicator.c \ - X2ap-LocationReportingInformation.c \ - X2ap-MME-Group-ID.c \ - X2ap-MME-Code.c \ - X2ap-Measurement-ID.c \ - X2ap-MBSFN-Subframe-Infolist.c \ - X2ap-MBSFN-Subframe-Info.c \ - X2ap-MobilityParametersModificationRange.c \ - X2ap-MobilityParametersInformation.c \ - X2ap-Neighbour-Information.c \ - X2ap-Neighbour-Information-Elm.c \ - X2ap-NextHopChainingCount.c \ - X2ap-Number-of-Antennaports.c \ - X2ap-Oneframe.c \ - X2ap-PDCP-SN.c \ - X2ap-PCI.c \ - X2ap-PLMN-Identity.c \ - X2ap-PRACH-Configuration.c \ - X2ap-Pre-emptionCapability.c \ - X2ap-Pre-emptionVulnerability.c \ - X2ap-PriorityLevel.c \ - X2ap-QCI.c \ - X2ap-ReceiveStatusofULPDCPSDUs.c \ - X2ap-Registration-Request.c \ - X2ap-RelativeNarrowbandTxPower.c \ - X2ap-ReportArea.c \ - X2ap-ReportCharacteristics.c \ - X2ap-RNTP-Threshold.c \ - X2ap-RRC-Context.c \ - X2ap-RadioResourceStatus.c \ - X2ap-DL-GBR-PRB-usage.c \ - X2ap-UL-GBR-PRB-usage.c \ - X2ap-DL-non-GBR-PRB-usage.c \ - X2ap-UL-non-GBR-PRB-usage.c \ - X2ap-DL-Total-PRB-usage.c \ - X2ap-UL-Total-PRB-usage.c \ - X2ap-RadioframeAllocationPeriod.c \ - X2ap-RadioframeAllocationOffset.c \ - X2ap-S1TNLLoadIndicator.c \ - X2ap-ServedCellsToActivate.c \ - X2ap-ServedCellsToActivate-Item.c \ - X2ap-ServedCellsToModify.c \ - X2ap-ServedCellsToModify-Item.c \ - X2ap-Old-ECGIs.c \ - X2ap-ServedCells.c \ - X2ap-ServedCellItem.c \ - X2ap-ServedCell-Information.c \ - X2ap-ShortMAC-I.c \ - X2ap-SRVCCOperationPossible.c \ - X2ap-SubframeAssignment.c \ - X2ap-SpecialSubframe-Info.c \ - X2ap-SpecialSubframePatterns.c \ - X2ap-SubscriberProfileIDforRFP.c \ - X2ap-SubframeAllocation.c \ - X2ap-TAC.c \ - X2ap-TargeteNBtoSource-eNBTransparentContainer.c \ - X2ap-TimeToWait.c \ - X2ap-Time-UE-StayedInCell.c \ - X2ap-TraceActivation.c \ - X2ap-TraceCollectionEntityIPAddress.c \ - X2ap-TraceDepth.c \ - X2ap-Transmission-Bandwidth.c \ - X2ap-TransportLayerAddress.c \ - X2ap-TypeOfError.c \ - X2ap-UE-HistoryInformation.c \ - X2ap-UE-S1AP-ID.c \ - X2ap-UE-X2AP-ID.c \ - X2ap-UEAggregateMaximumBitRate.c \ - X2ap-UESecurityCapabilities.c \ - X2ap-UE-ContextInformation.c \ - X2ap-UL-InterferenceOverloadIndication.c \ - X2ap-UL-InterferenceOverloadIndication-Item.c \ - X2ap-UL-HighInterferenceIndicationInfo.c \ - X2ap-UL-HighInterferenceIndicationInfo-Item.c \ - X2ap-UL-HighInterferenceIndication.c \ - X2ap-UE-RLF-Report-Container.c \ - X2ap-IE.c \ - X2AP-PDU.c \ - X2ap-InitiatingMessage.c \ - X2ap-SuccessfulOutcome.c \ - X2ap-UnsuccessfulOutcome.c \ - X2ap-HandoverRequest.c \ - X2ap-HandoverRequestAcknowledge.c \ - X2ap-HandoverPreparationFailure.c \ - X2ap-SNStatusTransfer.c \ - X2ap-UEContextRelease.c \ - X2ap-HandoverCancel.c \ - X2ap-HandoverReport.c \ - X2ap-ErrorIndication.c \ - X2ap-ResetRequest.c \ - X2ap-ResetResponse.c \ - X2ap-X2SetupRequest.c \ - X2ap-X2SetupResponse.c \ - X2ap-X2SetupFailure.c \ - X2ap-LoadInformation.c \ - X2ap-ENBConfigurationUpdate.c \ - X2ap-ENBConfigurationUpdateAcknowledge.c \ - X2ap-ENBConfigurationUpdateFailure.c \ - X2ap-ResourceStatusRequest.c \ - X2ap-ResourceStatusResponse.c \ - X2ap-ResourceStatusFailure.c \ - X2ap-ResourceStatusUpdate.c \ - X2ap-RLFIndication.c \ - X2ap-PrivateMessage.c \ - X2ap-MobilityChangeRequest.c \ - X2ap-MobilityChangeAcknowledge.c \ - X2ap-MobilityChangeFailure.c \ - X2ap-CellActivationRequest.c \ - X2ap-CellActivationResponse.c \ - X2ap-CellActivationFailure.c - -X2AP_ASN_MODULE_HEADERS= \ - X2ap-Criticality.h \ - X2ap-Presence.h \ - X2ap-PrivateIE-ID.h \ - X2ap-ProcedureCode.h \ - X2ap-ProtocolIE-ID.h \ - X2ap-TriggeringMessage.h \ - X2ap-IE-Extensions.h \ - X2ap-AS-SecurityInformation.h \ - X2ap-AllocationAndRetentionPriority.h \ - X2ap-ActivatedCellList.h \ - X2ap-ActivatedCellList-Item.h \ - X2ap-BitRate.h \ - X2ap-BroadcastPLMNs-Item.h \ - X2ap-CapacityValue.h \ - X2ap-CellCapacityClassValue.h \ - X2ap-CellToReport-List.h \ - X2ap-CellToReport-Item.h \ - X2ap-CellMeasurementResult-List.h \ - X2ap-CellMeasurementResult-Item.h \ - X2ap-ReportingPeriodicity.h \ - X2ap-Cause.h \ - X2ap-CauseMisc.h \ - X2ap-CauseProtocol.h \ - X2ap-CauseRadioNetwork.h \ - X2ap-CauseTransport.h \ - X2ap-Cell-Size.h \ - X2ap-CellInformation-List.h \ - X2ap-CellInformation-Item.h \ - X2ap-CellType.h \ - X2ap-CompositeAvailableCapacityGroup.h \ - X2ap-CompositeAvailableCapacity.h \ - X2ap-COUNTvalue.h \ - X2ap-CriticalityDiagnostics.h \ - X2ap-CriticalityDiagnostics-IE-List.h \ - X2ap-CriticalityDiagnostics-IE-Elm.h \ - X2ap-CRNTI.h \ - X2ap-CyclicPrefixDL.h \ - X2ap-CyclicPrefixUL.h \ - X2ap-DeactivationIndication.h \ - X2ap-DL-Forwarding.h \ - X2ap-E-RABs-Admitted-List.h \ - X2ap-E-RABs-Admitted-Item.h \ - X2ap-E-RABs-ToBeSetup-List.h \ - X2ap-E-RABs-ToBeSetup-Item.h \ - X2ap-E-RABs-SubjectToStatusTransfer-List.h \ - X2ap-E-RABs-SubjectToStatusTransfer-Item.h \ - X2ap-EARFCN.h \ - X2ap-FDD-Info.h \ - X2ap-TDD-Info.h \ - X2ap-EUTRA-Mode-Info.h \ - X2ap-ECGI.h \ - X2ap-ENB-ID.h \ - X2ap-EncryptionAlgorithms.h \ - X2ap-EPLMNs.h \ - X2ap-E-RAB-ID.h \ - X2ap-E-RAB-Level-QoS-Parameters.h \ - X2ap-E-RAB-List.h \ - X2ap-E-RAB-Item.h \ - X2ap-EUTRANCellIdentifier.h \ - X2ap-EUTRANTraceID.h \ - X2ap-EventType.h \ - X2ap-ForbiddenInterRATs.h \ - X2ap-ForbiddenTAs.h \ - X2ap-ForbiddenTAs-Item.h \ - X2ap-ForbiddenTACs.h \ - X2ap-ForbiddenLAs.h \ - X2ap-ForbiddenLAs-Item.h \ - X2ap-ForbiddenLACs.h \ - X2ap-Fourframes.h \ - X2ap-GBR-QosInformation.h \ - X2ap-GlobalENB-ID.h \ - X2ap-GTPtunnelEndpoint.h \ - X2ap-GTP-TEI.h \ - X2ap-GUGroupIDList.h \ - X2ap-GU-Group-ID.h \ - X2ap-GUMMEI.h \ - X2ap-HandoverReportType.h \ - X2ap-HandoverRestrictionList.h \ - X2ap-HFN.h \ - X2ap-HWLoadIndicator.h \ - X2ap-IntegrityProtectionAlgorithms.h \ - X2ap-InterfacesToTrace.h \ - X2ap-Key-eNodeB-Star.h \ - X2ap-LAC.h \ - X2ap-LastVisitedCell-Item.h \ - X2ap-LastVisitedEUTRANCellInformation.h \ - X2ap-LastVisitedUTRANCellInformation.h \ - X2ap-LastVisitedGERANCellInformation.h \ - X2ap-LoadIndicator.h \ - X2ap-LocationReportingInformation.h \ - X2ap-MME-Group-ID.h \ - X2ap-MME-Code.h \ - X2ap-Measurement-ID.h \ - X2ap-MBSFN-Subframe-Infolist.h \ - X2ap-MBSFN-Subframe-Info.h \ - X2ap-MobilityParametersModificationRange.h \ - X2ap-MobilityParametersInformation.h \ - X2ap-Neighbour-Information.h \ - X2ap-Neighbour-Information-Elm.h \ - X2ap-NextHopChainingCount.h \ - X2ap-Number-of-Antennaports.h \ - X2ap-Oneframe.h \ - X2ap-PDCP-SN.h \ - X2ap-PCI.h \ - X2ap-PLMN-Identity.h \ - X2ap-PRACH-Configuration.h \ - X2ap-Pre-emptionCapability.h \ - X2ap-Pre-emptionVulnerability.h \ - X2ap-PriorityLevel.h \ - X2ap-QCI.h \ - X2ap-ReceiveStatusofULPDCPSDUs.h \ - X2ap-Registration-Request.h \ - X2ap-RelativeNarrowbandTxPower.h \ - X2ap-ReportArea.h \ - X2ap-ReportCharacteristics.h \ - X2ap-RNTP-Threshold.h \ - X2ap-RRC-Context.h \ - X2ap-RadioResourceStatus.h \ - X2ap-DL-GBR-PRB-usage.h \ - X2ap-UL-GBR-PRB-usage.h \ - X2ap-DL-non-GBR-PRB-usage.h \ - X2ap-UL-non-GBR-PRB-usage.h \ - X2ap-DL-Total-PRB-usage.h \ - vUL-Total-PRB-usage.h \ - X2ap-RadioframeAllocationPeriod.h \ - X2ap-RadioframeAllocationOffset.h \ - X2ap-S1TNLLoadIndicator.h \ - X2ap-ServedCellsToActivate.h \ - X2ap-ServedCellsToActivate-Item.h \ - X2ap-ServedCellsToModify.h \ - X2ap-ServedCellsToModify-Item.h \ - X2ap-Old-ECGIs.h \ - X2ap-ServedCells.h \ - X2ap-ServedCellItem.h \ - X2ap-ServedCell-Information.h \ - X2ap-ShortMAC-I.h \ - X2ap-SRVCCOperationPossible.h \ - X2ap-SubframeAssignment.h \ - X2ap-SpecialSubframe-Info.h \ - X2ap-SpecialSubframePatterns.h \ - X2ap-SubscriberProfileIDforRFP.h \ - X2ap-SubframeAllocation.h \ - X2ap-TAC.h \ - X2ap-TargeteNBtoSource-eNBTransparentContainer.h \ - X2ap-TimeToWait.h \ - X2ap-Time-UE-StayedInCell.h \ - X2ap-TraceActivation.h \ - X2ap-TraceCollectionEntityIPAddress.h \ - X2ap-TraceDepth.h \ - X2ap-Transmission-Bandwidth.h \ - X2ap-TransportLayerAddress.h \ - X2ap-TypeOfError.h \ - X2ap-UE-HistoryInformation.h \ - X2ap-UE-S1AP-ID.h \ - X2ap-UE-X2AP-ID.h \ - X2ap-UEAggregateMaximumBitRate.h \ - X2ap-UESecurityCapabilities.h \ - X2ap-UE-ContextInformation.h \ - X2ap-UL-InterferenceOverloadIndication.h \ - X2ap-UL-InterferenceOverloadIndication-Item.h \ - X2ap-UL-HighInterferenceIndicationInfo.h \ - X2ap-UL-HighInterferenceIndicationInfo-Item.h \ - X2ap-UL-HighInterferenceIndication.h \ - X2ap-UE-RLF-Report-Container.h \ - X2ap-IE.h \ - X2ap-X2AP-PDU.h \ - X2ap-InitiatingMessage.h \ - X2ap-SuccessfulOutcome.h \ - X2ap-UnsuccessfulOutcome.h \ - X2ap-HandoverRequest.h \ - X2ap-HandoverRequestAcknowledge.h \ - X2ap-HandoverPreparationFailure.h \ - X2ap-SNStatusTransfer.h \ - X2ap-UEContextRelease.h \ - X2ap-HandoverCancel.h \ - X2ap-HandoverReport.h \ - X2ap-ErrorIndication.h \ - X2ap-ResetRequest.h \ - X2ap-ResetResponse.h \ - X2ap-X2SetupRequest.h \ - X2ap-X2SetupResponse.h \ - X2ap-X2SetupFailure.h \ - X2ap-LoadInformation.h \ - X2ap-ENBConfigurationUpdate.h \ - X2ap-ENBConfigurationUpdateAcknowledge.h \ - X2ap-ENBConfigurationUpdateFailure.h \ - X2ap-ResourceStatusRequest.h \ - X2ap-ResourceStatusResponse.h \ - X2ap-ResourceStatusFailure.h \ - X2ap-ResourceStatusUpdate.h \ - X2ap-RLFIndication.h \ - X2ap-PrivateMessage.h \ - X2ap-MobilityChangeRequest.h \ - X2ap-MobilityChangeAcknowledge.h \ - X2ap-MobilityChangeFailure.h \ - X2ap-CellActivationRequest.h \ - X2ap-CellActivationResponse.h \ - X2ap-CellActivationFailure.h - -X2AP_ASN_MODULE_HEADERS+=ANY.h -X2AP_ASN_MODULE_SOURCES+=ANY.o -X2AP_ASN_MODULE_HEADERS+=BOOLEAN.h -X2AP_ASN_MODULE_SOURCES+=BOOLEAN.o -X2AP_ASN_MODULE_HEADERS+=INTEGER.h -X2AP_ASN_MODULE_HEADERS+=NativeEnumerated.h -X2AP_ASN_MODULE_SOURCES+=INTEGER.o -X2AP_ASN_MODULE_HEADERS+=NULL.h -X2AP_ASN_MODULE_SOURCES+=NULL.o -X2AP_ASN_MODULE_SOURCES+=NativeEnumerated.o -X2AP_ASN_MODULE_HEADERS+=NativeInteger.h -X2AP_ASN_MODULE_SOURCES+=NativeInteger.o -X2AP_ASN_MODULE_HEADERS+=OBJECT_IDENTIFIER.h -X2AP_ASN_MODULE_SOURCES+=OBJECT_IDENTIFIER.o -X2AP_ASN_MODULE_HEADERS+=asn_SEQUENCE_OF.h -X2AP_ASN_MODULE_SOURCES+=asn_SEQUENCE_OF.o -X2AP_ASN_MODULE_HEADERS+=asn_SET_OF.h -X2AP_ASN_MODULE_SOURCES+=asn_SET_OF.o -X2AP_ASN_MODULE_HEADERS+=constr_CHOICE.h -X2AP_ASN_MODULE_SOURCES+=constr_CHOICE.o -X2AP_ASN_MODULE_HEADERS+=constr_SEQUENCE.h -X2AP_ASN_MODULE_SOURCES+=constr_SEQUENCE.o -X2AP_ASN_MODULE_HEADERS+=constr_SEQUENCE_OF.h -X2AP_ASN_MODULE_SOURCES+=constr_SEQUENCE_OF.o -X2AP_ASN_MODULE_HEADERS+=constr_SET_OF.h -X2AP_ASN_MODULE_SOURCES+=constr_SET_OF.o -X2AP_ASN_MODULE_HEADERS+=asn_application.h -X2AP_ASN_MODULE_HEADERS+=asn_system.h -X2AP_ASN_MODULE_HEADERS+=asn_codecs.h -X2AP_ASN_MODULE_HEADERS+=asn_internal.h -X2AP_ASN_MODULE_HEADERS+=OCTET_STRING.h -X2AP_ASN_MODULE_SOURCES+=OCTET_STRING.o -X2AP_ASN_MODULE_HEADERS+=BIT_STRING.h -X2AP_ASN_MODULE_SOURCES+=BIT_STRING.o -X2AP_ASN_MODULE_SOURCES+=asn_codecs_prim.o -X2AP_ASN_MODULE_HEADERS+=asn_codecs_prim.h -X2AP_ASN_MODULE_HEADERS+=ber_tlv_length.h -X2AP_ASN_MODULE_SOURCES+=ber_tlv_length.o -X2AP_ASN_MODULE_HEADERS+=ber_tlv_tag.h -X2AP_ASN_MODULE_SOURCES+=ber_tlv_tag.o -X2AP_ASN_MODULE_HEADERS+=ber_decoder.h -X2AP_ASN_MODULE_SOURCES+=ber_decoder.o -X2AP_ASN_MODULE_HEADERS+=der_encoder.h -X2AP_ASN_MODULE_SOURCES+=der_encoder.o -X2AP_ASN_MODULE_HEADERS+=constr_TYPE.h -X2AP_ASN_MODULE_SOURCES+=constr_TYPE.o -X2AP_ASN_MODULE_HEADERS+=constraints.h -X2AP_ASN_MODULE_SOURCES+=constraints.o -X2AP_ASN_MODULE_HEADERS+=xer_support.h -X2AP_ASN_MODULE_SOURCES+=xer_support.o -X2AP_ASN_MODULE_HEADERS+=xer_decoder.h -X2AP_ASN_MODULE_SOURCES+=xer_decoder.o -X2AP_ASN_MODULE_HEADERS+=xer_encoder.h -X2AP_ASN_MODULE_SOURCES+=xer_encoder.o -X2AP_ASN_MODULE_HEADERS+=per_support.h -X2AP_ASN_MODULE_SOURCES+=per_support.o -X2AP_ASN_MODULE_HEADERS+=per_decoder.h -X2AP_ASN_MODULE_SOURCES+=per_decoder.o -X2AP_ASN_MODULE_HEADERS+=per_encoder.h -X2AP_ASN_MODULE_SOURCES+=per_encoder.o -X2AP_ASN_MODULE_HEADERS+=per_opentype.h -X2AP_ASN_MODULE_SOURCES+=per_opentype.o diff --git a/openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-CommonDataTypes.asn b/openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-CommonDataTypes.asn deleted file mode 100755 index 410a7d19dd..0000000000 --- a/openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-CommonDataTypes.asn +++ /dev/null @@ -1,142 +0,0 @@ -X2AP-CommonDataTypes { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-CommonDataTypes (3) } - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - --- ************************************************************** --- --- Extension constants --- --- ************************************************************** - -x2ap-maxPrivateIEs INTEGER ::= 65535 -x2ap-maxProtocolExtensions INTEGER ::= 65535 -x2ap-maxProtocolIEs INTEGER ::= 65535 - --- ************************************************************** --- --- Common Data Types --- --- ************************************************************** - -X2ap-Criticality ::= ENUMERATED { reject, ignore, notify } - -X2ap-Presence ::= ENUMERATED { optional, conditional, mandatory } - -X2ap-PrivateIE-ID ::= CHOICE { - local INTEGER (0.. x2ap-maxPrivateIEs), - global OBJECT IDENTIFIER -} - ---X2ap-ProcedureCode ::= INTEGER (0..255) -X2ap-ProcedureCode ::= INTEGER { - id-handoverPreparation (0), - id-handoverCancel (1), - id-loadIndication (2), - id-errorIndication (3), - id-snStatusTransfer (4), - id-uEContextRelease (5), - id-x2Setup (6), - id-reset (7), - id-eNBConfigurationUpdate (8), - id-resourceStatusReportingInitiation (9), - id-resourceStatusReporting (10), - id-privateMessage (11), - id-mobilitySettingsChange (12), - id-rLFIndication (13), - id-handoverReport (14), - id-cellActivation (15) -} (0..255) - ---X2ap-ProtocolIE-ID ::= INTEGER (0..x2ap-maxProtocolIEs) -X2ap-ProtocolIE-ID ::= INTEGER { - id-E-RABs-Admitted-Item (0), - id-E-RABs-Admitted-List (1), - id-E-RAB-Item (2), - id-E-RABs-NotAdmitted-List (3), - id-E-RABs-ToBeSetup-Item (4), - id-Cause (5), - id-CellInformation (6), - id-CellInformation-Item (7), - id-New-eNB-UE-X2AP-ID (9), - id-Old-eNB-UE-X2AP-ID (10), - id-TargetCell-ID (11), - id-TargeteNBtoSource-eNBTransparentContainer (12), - id-TraceActivation (13), - id-UE-ContextInformation (14), - id-UE-HistoryInformation (15), - id-UE-X2AP-ID (16), - id-CriticalityDiagnostics (17), - id-E-RABs-SubjectToStatusTransfer-List (18), - id-E-RABs-SubjectToStatusTransfer-Item (19), - id-ServedCells (20), - id-GlobalENB-ID (21), - id-TimeToWait (22), - id-GUMMEI-ID (23), - id-GUGroupIDList (24), - id-ServedCellsToAdd (25), - id-ServedCellsToModify (26), - id-ServedCellsToDelete (27), - id-Registration-Request (28), - id-CellToReport (29), - id-ReportingPeriodicity (30), - id-CellToReport-Item (31), - id-CellMeasurementResult (32), - id-CellMeasurementResult-Item (33), - id-GUGroupIDToAddList (34), - id-GUGroupIDToDeleteList (35), - id-SRVCCOperationPossible (36), - id-Measurement-ID (37), - id-ReportCharacteristics (38), - id-ENB1-Measurement-ID (39), - id-ENB2-Measurement-ID (40), - id-Number-of-Antennaports (41), - id-CompositeAvailableCapacityGroup (42), - id-ENB1-Cell-ID (43), - id-ENB2-Cell-ID (44), - id-ENB2-Proposed-Mobility-Parameters (45), - id-ENB1-Mobility-Parameters (46), - id-ENB2-Mobility-Parameters-Modification-Range (47), - id-FailureCellPCI (48), - id-Re-establishmentCellECGI (49), - id-FailureCellCRNTI (50), - id-ShortMAC-I (51), - id-SourceCellECGI (52), - id-FailureCellECGI (53), - id-HandoverReportType (54), - id-PRACH-Configuration (55), - id-MBSFN-Subframe-Info (56), - id-ServedCellsToActivate (57), - id-ActivatedCellList (58), - id-DeactivationIndication (59), - id-UE-RLF-Report-Container (60), - id-ABSInformation (61), - id-InvokeIndication (62), - id-ABS-Status (63), - id-PartialSuccessIndicator (64), - id-MeasurementInitiationResult-List (65), - id-MeasurementInitiationResult-Item (66), - id-MeasurementFailureCause-Item (67), - id-CompleteFailureCauseInformation-List (68), - id-CompleteFailureCauseInformation-Item (69), - id-CSG-Id (70), - id-CSGMembershipStatus (71), - id-MDTConfiguration (72), - id-ManagementBasedMDTallowed (74), - id-RRCConnSetupIndicator (75), - id-NeighbourTAC (76), - id-Time-UE-StayedInCell-EnhancedGranularity (77), - id-RRCConnReestabIndicator (78), - id-MBMS-Service-Area-List (79), - id-HO-cause (80), - id-TargetCellInUTRAN (81), - id-MultibandInfoList (84) -} (0..x2ap-maxProtocolIEs) - - -X2ap-TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome} - -END diff --git a/openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-Constants.asn b/openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-Constants.asn deleted file mode 100755 index 4740da1949..0000000000 --- a/openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-Constants.asn +++ /dev/null @@ -1,162 +0,0 @@ --- ************************************************************** --- --- Constant definitions --- --- ************************************************************** - -X2AP-Constants { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Constants (4) } - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - -IMPORTS - X2ap-ProcedureCode, - X2ap-ProtocolIE-ID -FROM X2AP-CommonDataTypes; - --- ************************************************************** --- --- Elementary Procedures --- --- ************************************************************** - -id-handoverPreparation X2ap-ProcedureCode ::= 0 -id-handoverCancel X2ap-ProcedureCode ::= 1 -id-loadIndication X2ap-ProcedureCode ::= 2 -id-errorIndication X2ap-ProcedureCode ::= 3 -id-snStatusTransfer X2ap-ProcedureCode ::= 4 -id-uEContextRelease X2ap-ProcedureCode ::= 5 -id-x2Setup X2ap-ProcedureCode ::= 6 -id-reset X2ap-ProcedureCode ::= 7 -id-eNBConfigurationUpdate X2ap-ProcedureCode ::= 8 -id-resourceStatusReportingInitiation X2ap-ProcedureCode ::= 9 -id-resourceStatusReporting X2ap-ProcedureCode ::= 10 -id-privateMessage X2ap-ProcedureCode ::= 11 -id-mobilitySettingsChange X2ap-ProcedureCode ::= 12 -id-rLFIndication X2ap-ProcedureCode ::= 13 -id-handoverReport X2ap-ProcedureCode ::= 14 -id-cellActivation X2ap-ProcedureCode ::= 15 - - - --- ************************************************************** --- --- Lists --- --- ************************************************************** - -x2ap-maxEARFCN INTEGER ::= 65535 -x2ap-maxInterfaces INTEGER ::= 16 -x2ap-maxCellineNB INTEGER ::= 256 -x2ap-maxnoofBands INTEGER ::= 16 -x2ap-maxnoofBearers INTEGER ::= 256 -x2ap-maxNrOfErrors INTEGER ::= 256 -x2ap-maxnoofPDCP-SN INTEGER ::= 16 -x2ap-maxnoofEPLMNs INTEGER ::= 15 -x2ap-maxnoofEPLMNsPlusOne INTEGER ::= 16 -x2ap-maxnoofForbLACs INTEGER ::= 4096 -x2ap-maxnoofForbTACs INTEGER ::= 4096 -x2ap-maxnoofBPLMNs INTEGER ::= 6 -x2ap-maxnoofNeighbours INTEGER ::= 512 -x2ap-maxnoofPRBs INTEGER ::= 110 -x2ap-maxPools INTEGER ::= 16 -x2ap-maxnoofCells INTEGER ::= 16 -x2ap-maxnoofMBSFN INTEGER ::= 8 -x2ap-maxFailedMeasObjects INTEGER ::= 32 -x2ap-maxnoofCellIDforMDT INTEGER ::= 32 -x2ap-maxnoofTAforMDT INTEGER ::= 8 -x2ap-maxnoofMBMSServiceAreaIdentities INTEGER ::= 256 - - --- ************************************************************** --- --- IEs --- --- ************************************************************** - -id-E-RABs-Admitted-Item X2ap-ProtocolIE-ID ::= 0 -id-E-RABs-Admitted-List X2ap-ProtocolIE-ID ::= 1 -id-E-RAB-Item X2ap-ProtocolIE-ID ::= 2 -id-E-RABs-NotAdmitted-List X2ap-ProtocolIE-ID ::= 3 -id-E-RABs-ToBeSetup-Item X2ap-ProtocolIE-ID ::= 4 -id-Cause X2ap-ProtocolIE-ID ::= 5 -id-CellInformation X2ap-ProtocolIE-ID ::= 6 -id-CellInformation-Item X2ap-ProtocolIE-ID ::= 7 -id-New-eNB-UE-X2AP-ID X2ap-ProtocolIE-ID ::= 9 -id-Old-eNB-UE-X2AP-ID X2ap-ProtocolIE-ID ::= 10 -id-TargetCell-ID X2ap-ProtocolIE-ID ::= 11 -id-TargeteNBtoSource-eNBTransparentContainer X2ap-ProtocolIE-ID ::= 12 -id-TraceActivation X2ap-ProtocolIE-ID ::= 13 -id-UE-ContextInformation X2ap-ProtocolIE-ID ::= 14 -id-UE-HistoryInformation X2ap-ProtocolIE-ID ::= 15 -id-UE-X2AP-ID X2ap-ProtocolIE-ID ::= 16 -id-CriticalityDiagnostics X2ap-ProtocolIE-ID ::= 17 -id-E-RABs-SubjectToStatusTransfer-List X2ap-ProtocolIE-ID ::= 18 -id-E-RABs-SubjectToStatusTransfer-Item X2ap-ProtocolIE-ID ::= 19 -id-ServedCells X2ap-ProtocolIE-ID ::= 20 -id-GlobalENB-ID X2ap-ProtocolIE-ID ::= 21 -id-TimeToWait X2ap-ProtocolIE-ID ::= 22 -id-GUMMEI-ID X2ap-ProtocolIE-ID ::= 23 -id-GUGroupIDList X2ap-ProtocolIE-ID ::= 24 -id-ServedCellsToAdd X2ap-ProtocolIE-ID ::= 25 -id-ServedCellsToModify X2ap-ProtocolIE-ID ::= 26 -id-ServedCellsToDelete X2ap-ProtocolIE-ID ::= 27 -id-Registration-Request X2ap-ProtocolIE-ID ::= 28 -id-CellToReport X2ap-ProtocolIE-ID ::= 29 -id-ReportingPeriodicity X2ap-ProtocolIE-ID ::= 30 -id-CellToReport-Item X2ap-ProtocolIE-ID ::= 31 -id-CellMeasurementResult X2ap-ProtocolIE-ID ::= 32 -id-CellMeasurementResult-Item X2ap-ProtocolIE-ID ::= 33 -id-GUGroupIDToAddList X2ap-ProtocolIE-ID ::= 34 -id-GUGroupIDToDeleteList X2ap-ProtocolIE-ID ::= 35 -id-SRVCCOperationPossible X2ap-ProtocolIE-ID ::= 36 -id-Measurement-ID X2ap-ProtocolIE-ID ::= 37 -id-ReportCharacteristics X2ap-ProtocolIE-ID ::= 38 -id-ENB1-Measurement-ID X2ap-ProtocolIE-ID ::= 39 -id-ENB2-Measurement-ID X2ap-ProtocolIE-ID ::= 40 -id-Number-of-Antennaports X2ap-ProtocolIE-ID ::= 41 -id-CompositeAvailableCapacityGroup X2ap-ProtocolIE-ID ::= 42 -id-ENB1-Cell-ID X2ap-ProtocolIE-ID ::= 43 -id-ENB2-Cell-ID X2ap-ProtocolIE-ID ::= 44 -id-ENB2-Proposed-Mobility-Parameters X2ap-ProtocolIE-ID ::= 45 -id-ENB1-Mobility-Parameters X2ap-ProtocolIE-ID ::= 46 -id-ENB2-Mobility-Parameters-Modification-Range X2ap-ProtocolIE-ID ::= 47 -id-FailureCellPCI X2ap-ProtocolIE-ID ::= 48 -id-Re-establishmentCellECGI X2ap-ProtocolIE-ID ::= 49 -id-FailureCellCRNTI X2ap-ProtocolIE-ID ::= 50 -id-ShortMAC-I X2ap-ProtocolIE-ID ::= 51 -id-SourceCellECGI X2ap-ProtocolIE-ID ::= 52 -id-FailureCellECGI X2ap-ProtocolIE-ID ::= 53 -id-HandoverReportType X2ap-ProtocolIE-ID ::= 54 -id-PRACH-Configuration X2ap-ProtocolIE-ID ::= 55 -id-MBSFN-Subframe-Info X2ap-ProtocolIE-ID ::= 56 -id-ServedCellsToActivate X2ap-ProtocolIE-ID ::= 57 -id-ActivatedCellList X2ap-ProtocolIE-ID ::= 58 -id-DeactivationIndication X2ap-ProtocolIE-ID ::= 59 -id-UE-RLF-Report-Container X2ap-ProtocolIE-ID ::= 60 -id-ABSInformation X2ap-ProtocolIE-ID ::= 61 -id-InvokeIndication X2ap-ProtocolIE-ID ::= 62 -id-ABS-Status X2ap-ProtocolIE-ID ::= 63 -id-PartialSuccessIndicator X2ap-ProtocolIE-ID ::= 64 -id-MeasurementInitiationResult-List X2ap-ProtocolIE-ID ::= 65 -id-MeasurementInitiationResult-Item X2ap-ProtocolIE-ID ::= 66 -id-MeasurementFailureCause-Item X2ap-ProtocolIE-ID ::= 67 -id-CompleteFailureCauseInformation-List X2ap-ProtocolIE-ID ::= 68 -id-CompleteFailureCauseInformation-Item X2ap-ProtocolIE-ID ::= 69 -id-CSG-Id X2ap-ProtocolIE-ID ::= 70 -id-CSGMembershipStatus X2ap-ProtocolIE-ID ::= 71 -id-MDTConfiguration X2ap-ProtocolIE-ID ::= 72 -id-ManagementBasedMDTallowed X2ap-ProtocolIE-ID ::= 74 -id-RRCConnSetupIndicator X2ap-ProtocolIE-ID ::= 75 -id-NeighbourTAC X2ap-ProtocolIE-ID ::= 76 -id-Time-UE-StayedInCell-EnhancedGranularity X2ap-ProtocolIE-ID ::= 77 -id-RRCConnReestabIndicator X2ap-ProtocolIE-ID ::= 78 -id-MBMS-Service-Area-List X2ap-ProtocolIE-ID ::= 79 -id-HO-cause X2ap-ProtocolIE-ID ::= 80 -id-TargetCellInUTRAN X2ap-ProtocolIE-ID ::= 81 -id-MultibandInfoList X2ap-ProtocolIE-ID ::= 84 - -END diff --git a/openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-Containers.asn b/openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-Containers.asn deleted file mode 100755 index 020eeccf9d..0000000000 --- a/openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-Containers.asn +++ /dev/null @@ -1,195 +0,0 @@ --- ************************************************************** --- --- Container definitions --- --- ************************************************************** - -X2AP-Containers { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Containers (5) } - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - --- ************************************************************** --- --- IE parameter types from other modules. --- --- ************************************************************** - -IMPORTS - x2ap-maxPrivateIEs, - x2ap-maxProtocolExtensions, - x2ap-maxProtocolIEs, - X2ap-Criticality, - X2ap-Presence, - X2ap-PrivateIE-ID, - X2ap-ProtocolIE-ID -FROM X2AP-CommonDataTypes; - --- ************************************************************** --- --- Class Definition for Protocol IEs --- --- ************************************************************** - -X2AP-PROTOCOL-IES ::= CLASS { - &id X2ap-ProtocolIE-ID UNIQUE, - &criticality X2ap-Criticality, - &Value, - &presence X2ap-Presence -} -WITH SYNTAX { - ID &id - CRITICALITY &criticality - TYPE &Value - PRESENCE &presence -} - --- ************************************************************** --- --- Class Definition for Protocol IEs --- --- ************************************************************** - -X2AP-PROTOCOL-IES-PAIR ::= CLASS { - &id X2ap-ProtocolIE-ID UNIQUE, - &firstCriticality X2ap-Criticality, - &FirstValue, - &secondCriticality X2ap-Criticality, - &SecondValue, - &presence X2ap-Presence -} -WITH SYNTAX { - ID &id - FIRST CRITICALITY &firstCriticality - FIRST TYPE &FirstValue - SECOND CRITICALITY &secondCriticality - SECOND TYPE &SecondValue - PRESENCE &presence -} - --- ************************************************************** --- --- Class Definition for Protocol Extensions --- --- ************************************************************** - -X2AP-PROTOCOL-EXTENSION ::= CLASS { - &id X2ap-ProtocolIE-ID UNIQUE, - &criticality X2ap-Criticality, - &Extension, - &presence X2ap-Presence -} -WITH SYNTAX { - ID &id - CRITICALITY &criticality - EXTENSION &Extension - PRESENCE &presence -} - --- ************************************************************** --- --- Class Definition for Private IEs --- --- ************************************************************** - -X2AP-PRIVATE-IES ::= CLASS { - &id X2ap-PrivateIE-ID, - &criticality X2ap-Criticality, - &Value, - &presence X2ap-Presence -} -WITH SYNTAX { - ID &id - CRITICALITY &criticality - TYPE &Value - PRESENCE &presence -} - --- ************************************************************** --- --- Container for Protocol IEs --- --- ************************************************************** - -ProtocolIE-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= - SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF - ProtocolIE-Field {{IEsSetParam}} - -ProtocolIE-Single-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= - ProtocolIE-Field {{IEsSetParam}} - -ProtocolIE-Field {X2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { - id X2AP-PROTOCOL-IES.&id ({IEsSetParam}), - criticality X2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), - value X2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) -} - --- ************************************************************** --- --- Container for Protocol IE Pairs --- --- ************************************************************** - -ProtocolIE-ContainerPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= - SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF - ProtocolIE-FieldPair {{IEsSetParam}} - -ProtocolIE-FieldPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { - id X2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), - firstCriticality X2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), - firstValue X2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), - secondCriticality X2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), - secondValue X2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) -} - --- ************************************************************** --- --- Container Lists for Protocol IE Containers --- --- ************************************************************** - -ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES : IEsSetParam} ::= - SEQUENCE (SIZE (lowerBound..upperBound)) OF - ProtocolIE-Container {{IEsSetParam}} - -ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= - SEQUENCE (SIZE (lowerBound..upperBound)) OF - ProtocolIE-ContainerPair {{IEsSetParam}} - --- ************************************************************** --- --- Container for Protocol Extensions --- --- ************************************************************** - -ProtocolExtensionContainer {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= - SEQUENCE (SIZE (1..x2ap-maxProtocolExtensions)) OF - ProtocolExtensionField {{ExtensionSetParam}} - -ProtocolExtensionField {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { - id X2AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), - criticality X2AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), - extensionValue X2AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) -} - - --- ************************************************************** --- --- Container for Private IEs --- --- ************************************************************** - -PrivateIE-Container {X2AP-PRIVATE-IES : IEsSetParam} ::= - SEQUENCE (SIZE (1..x2ap-maxPrivateIEs)) OF - PrivateIE-Field {{IEsSetParam}} - -PrivateIE-Field {X2AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { - id X2AP-PRIVATE-IES.&id ({IEsSetParam}), - criticality X2AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), - value X2AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) -} - -END diff --git a/openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-IEs.asn b/openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-IEs.asn deleted file mode 100755 index c76319bb71..0000000000 --- a/openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-IEs.asn +++ /dev/null @@ -1,1447 +0,0 @@ --- ************************************************************** --- --- Information Element Definitions --- --- ************************************************************** - -X2AP-IEs { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-IEs (2) } - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - -IMPORTS - id-E-RAB-Item, - id-Number-of-Antennaports, - id-MBSFN-Subframe-Info, - id-PRACH-Configuration, - id-CSG-Id, - id-MDTConfiguration, - id-MultibandInfoList, - id-NeighbourTAC, - id-Time-UE-StayedInCell-EnhancedGranularity, - id-MBMS-Service-Area-List, - id-HO-cause, - x2ap-maxCellineNB, - x2ap-maxEARFCN, - x2ap-maxInterfaces, - x2ap-maxFailedMeasObjects, - x2ap-maxnoofBands, - x2ap-maxnoofBearers, - x2ap-maxnoofBPLMNs, - x2ap-maxnoofCells, - x2ap-maxnoofEPLMNs, - x2ap-maxnoofEPLMNsPlusOne, - x2ap-maxnoofForbLACs, - x2ap-maxnoofForbTACs, - x2ap-maxnoofNeighbours, - x2ap-maxnoofPRBs, - x2ap-maxNrOfErrors, - x2ap-maxPools, - x2ap-maxnoofMBSFN, - x2ap-maxnoofTAforMDT, - x2ap-maxnoofCellIDforMDT, - x2ap-maxnoofMBMSServiceAreaIdentities -FROM X2AP-Constants - - x2ap-maxProtocolExtensions, - X2ap-Criticality, - X2ap-ProcedureCode, - X2ap-ProtocolIE-ID, - X2ap-TriggeringMessage -FROM X2AP-CommonDataTypes - --- ProtocolExtensionContainer{}, --- ProtocolIE-Single-Container{}, - X2AP-PROTOCOL-EXTENSION --- X2AP-PROTOCOL-IES -FROM X2AP-Containers - - X2ap-IE -FROM X2AP-PDU; - ---EURECOM ADD -X2ap-IE-Extensions ::= SEQUENCE (SIZE (1..x2ap-maxProtocolExtensions)) OF X2ap-IE - --- A -X2ap-ActivatedCellList ::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF X2ap-ActivatedCellList-Item -X2ap-ActivatedCellList-Item ::= SEQUENCE { - ecgi X2ap-ECGI, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { X2ap-ActivatedCellList-Item-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-ABSInformation ::= CHOICE { - fdd X2ap-ABSInformationFDD, - tdd X2ap-ABSInformationTDD, - abs-inactive NULL, - ... -} - -X2ap-ABSInformationFDD ::= SEQUENCE { - abs-pattern-info BIT STRING (SIZE(40)), - numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, - measurement-subset BIT STRING (SIZE(40)), --- iE-Extensions ProtocolExtensionContainer { { X2ap-ABSInformationFDD-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-ABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-ABSInformationTDD ::= SEQUENCE { - abs-pattern-info BIT STRING (SIZE(1..70, ...)), ---EURECOM COMMENT numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, - numberOfCellSpecificAntennaPortsTDD ENUMERATED {one, two, four, ...}, - measurement-subset BIT STRING (SIZE(1..70, ...)), ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { X2ap-ABSInformationTDD-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-ABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-ABS-Status ::= SEQUENCE { - dL-ABS-status X2ap-DL-ABS-status, - usableABSInformation X2ap-UsableABSInformation, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {X2ap-ABS-Status-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-ABS-Status-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-DL-ABS-status::= INTEGER (0..100) - -X2ap-AS-SecurityInformation ::= SEQUENCE { - key-eNodeB-star X2ap-Key-eNodeB-Star, - nextHopChainingCount X2ap-NextHopChainingCount, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { X2ap-AS-SecurityInformation-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-AS-SecurityInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - - -X2ap-AllocationAndRetentionPriority ::= SEQUENCE { - priorityLevel X2ap-PriorityLevel, - pre-emptionCapability X2ap-Pre-emptionCapability, - pre-emptionVulnerability X2ap-Pre-emptionVulnerability, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {X2ap-AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-AllocationAndRetentionPriority-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-AreaScopeOfMDT ::= CHOICE { - cellBased X2ap-CellBasedMDT, - tABased X2ap-TABasedMDT, - pLMNWide NULL, - ... -} - --- B - - -X2ap-BitRate ::= INTEGER (0..10000000000) -X2ap-BroadcastPLMNs-Item ::= SEQUENCE (SIZE(1..x2ap-maxnoofBPLMNs)) OF X2ap-PLMN-Identity - - --- C - -X2ap-CapacityValue ::= INTEGER (0..100) - -X2ap-CellCapacityClassValue ::= INTEGER (1..100, ...) - -X2ap-Cause ::= CHOICE { - radioNetwork X2ap-CauseRadioNetwork, - transport X2ap-CauseTransport, - protocol X2ap-CauseProtocol, - misc X2ap-CauseMisc, - ... -} - -X2ap-CauseMisc ::= ENUMERATED { - control-processing-overload, - hardware-failure, - om-intervention, - not-enough-user-plane-processing-resources, - unspecified, - ... -} - -X2ap-CauseProtocol ::= ENUMERATED { - transfer-syntax-error, - abstract-syntax-error-reject, - abstract-syntax-error-ignore-and-notify, - message-not-compatible-with-receiver-state, - semantic-error, - unspecified, - abstract-syntax-error-falsely-constructed-message, - ... -} - -X2ap-CauseRadioNetwork ::= ENUMERATED { - handover-desirable-for-radio-reasons, - time-critical-handover, - resource-optimisation-handover, - reduce-load-in-serving-cell, - partial-handover, - unknown-new-eNB-UE-X2AP-ID, - unknown-old-eNB-UE-X2AP-ID, - unknown-pair-of-UE-X2AP-ID, - ho-target-not-allowed, - tx2relocoverall-expiry, - trelocprep-expiry, - cell-not-available, - no-radio-resources-available-in-target-cell, - invalid-MME-GroupID, - unknown-MME-Code, - encryption-and-or-integrity-protection-algorithms-not-supported, - reportCharacteristicsEmpty, - noReportPeriodicity, - existingMeasurementID, - unknown-eNB-Measurement-ID, - measurement-temporarily-not-available, - unspecified, - ..., - load-balancing, - handover-optimisation, - value-out-of-allowed-range, - multiple-E-RAB-ID-instances, - switch-off-ongoing, - not-supported-QCI-value, - measurement-not-supported-for-the-object - -} - -X2ap-CauseTransport ::= ENUMERATED { - transport-resource-unavailable, - unspecified, - ... -} - -X2ap-CellBasedMDT::= SEQUENCE { - cellIdListforMDT X2ap-CellIdListforMDT, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {X2ap-CellBasedMDT-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-CellBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-CellIdListforMDT ::= SEQUENCE (SIZE(1..x2ap-maxnoofCellIDforMDT)) OF X2ap-ECGI - -X2ap-Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ... } - - -X2ap-CellType ::= SEQUENCE { - cell-Size X2ap-Cell-Size, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { X2ap-CellType-ExtIEs}} OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-CellType-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -X2ap-CellToReport-List ::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF X2ap-IE ---ProtocolIE-Single-Container { {X2ap-CellToReport-ItemIEs} } - -X2ap-CellToReport-Item ::= SEQUENCE { - cell-ID X2ap-ECGI, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions X2ap-ProtocolExtensionContainer { {CellToReport-Item-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-MeasurementFailureCause-List ::= SEQUENCE (SIZE (1..x2ap-maxFailedMeasObjects)) OF X2ap-IE - -X2ap-MeasurementFailureCause-Item ::= SEQUENCE { - measurementFailedReportCharacteristics X2ap-ReportCharacteristics, - cause X2ap-Cause, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { X2ap-MeasurementFailureCause-Item-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-CellInformation-List ::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF X2ap-IE ---ProtocolIE-Single-Container { {X2ap-CellInformation-ItemIEs} } - -X2ap-CellInformation-Item ::= SEQUENCE { - cell-ID X2ap-ECGI, - ul-InterferenceOverloadIndication X2ap-UL-InterferenceOverloadIndication OPTIONAL, - ul-HighInterferenceIndicationInfo X2ap-UL-HighInterferenceIndicationInfo OPTIONAL, - relativeNarrowbandTxPower X2ap-RelativeNarrowbandTxPower OPTIONAL, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {X2ap-CellInformation-Item-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-CompositeAvailableCapacityGroup ::= SEQUENCE { - dL-CompositeAvailableCapacity X2ap-CompositeAvailableCapacity, - uL-CompositeAvailableCapacity X2ap-CompositeAvailableCapacity, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { X2ap-CompositeAvailableCapacityGroup-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-CompositeAvailableCapacityGroup-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-CompositeAvailableCapacity ::= SEQUENCE { - cellCapacityClassValue X2ap-CellCapacityClassValue OPTIONAL, - capacityValue X2ap-CapacityValue, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { X2ap-CompositeAvailableCapacity-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-CompositeAvailableCapacity-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-COUNTvalue ::= SEQUENCE { - pDCP-SN X2ap-PDCP-SN, - hFN X2ap-HFN, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { X2ap-COUNTvalue-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-COUNTvalue-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-CompleteFailureCauseInformation-List ::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF X2ap-IE ---ProtocolIE-Single-Container { {X2ap-CompleteFailureCauseInformation-ItemIEs} } - -X2ap-CompleteFailureCauseInformation-Item ::= SEQUENCE { - cell-ID X2ap-ECGI, - measurementFailureCause-List X2ap-MeasurementFailureCause-List, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { X2ap-CompleteFailureCauseInformation-Item-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-CellMeasurementResult-List ::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF X2ap-IE ---ProtocolIE-Single-Container { {X2ap-CellMeasurementResult-ItemIEs} } - -X2ap-CellMeasurementResult-Item ::= SEQUENCE { - cell-ID X2ap-ECGI, - hWLoadIndicator X2ap-HWLoadIndicator OPTIONAL, - s1TNLLoadIndicator X2ap-S1TNLLoadIndicator OPTIONAL, - radioResourceStatus X2ap-RadioResourceStatus OPTIONAL, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions X2ap-ProtocolExtensionContainer { {X2ap-CellMeasurementResult-Item-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-CriticalityDiagnostics ::= SEQUENCE { - procedureCode X2ap-ProcedureCode OPTIONAL, - triggeringMessage X2ap-TriggeringMessage OPTIONAL, - procedureCriticality X2ap-Criticality OPTIONAL, - iEsCriticalityDiagnostics X2ap-CriticalityDiagnostics-IE-List OPTIONAL, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {X2ap-CriticalityDiagnostics-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - - -X2ap-CriticalityDiagnostics-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..x2ap-maxNrOfErrors)) OF - SEQUENCE { - iECriticality X2ap-Criticality, - iE-ID X2ap-ProtocolIE-ID, - typeOfError X2ap-TypeOfError, - --EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {X2ap-CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-CriticalityDiagnostics-IE-List-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-CRNTI ::= BIT STRING (SIZE (16)) - -X2ap-CSGMembershipStatus ::= ENUMERATED { - member, - not-member -} - -X2ap-CSG-Id ::= BIT STRING (SIZE (27)) - -X2ap-CyclicPrefixDL ::= ENUMERATED { - normal, - extended, - ... -} - -X2ap-CyclicPrefixUL ::= ENUMERATED { - normal, - extended, - ... -} - - --- D - -X2ap-DeactivationIndication::= ENUMERATED { - deactivated, - ... -} - -X2ap-DL-Forwarding ::= ENUMERATED { - dL-forwardingProposed, - ... -} - -X2ap-DL-GBR-PRB-usage::= INTEGER (0..100) - -X2ap-DL-non-GBR-PRB-usage::= INTEGER (0..100) - -X2ap-DL-Total-PRB-usage::= INTEGER (0..100) - --- E - -X2ap-EARFCN ::= INTEGER (0..x2ap-maxEARFCN) - -X2ap-FDD-Info ::= SEQUENCE { - uL-EARFCN X2ap-EARFCN, - dL-EARFCN X2ap-EARFCN, - uL-Transmission-Bandwidth X2ap-Transmission-Bandwidth, - dL-Transmission-Bandwidth X2ap-Transmission-Bandwidth, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {X2ap-FDD-Info-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-FDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-TDD-Info ::= SEQUENCE { - eARFCN X2ap-EARFCN, - transmission-Bandwidth X2ap-Transmission-Bandwidth, - subframeAssignment X2ap-SubframeAssignment, - specialSubframe-Info X2ap-SpecialSubframe-Info, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {X2ap-TDD-Info-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} -X2ap-TDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-EUTRA-Mode-Info ::= CHOICE { - fDD X2ap-FDD-Info, - tDD X2ap-TDD-Info, - ... -} - -X2ap-ECGI ::= SEQUENCE { - pLMN-Identity X2ap-PLMN-Identity, - eUTRANcellIdentifier X2ap-EUTRANCellIdentifier, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {X2ap-ECGI-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-ECGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-ENB-ID ::= CHOICE { - macro-eNB-ID BIT STRING (SIZE (20)), - home-eNB-ID BIT STRING (SIZE (28)), - ... -} - -X2ap-EncryptionAlgorithms ::= BIT STRING (SIZE (16, ...)) - -X2ap-EPLMNs ::= SEQUENCE (SIZE(1..x2ap-maxnoofEPLMNs)) OF X2ap-PLMN-Identity - -X2ap-E-RAB-ID ::= INTEGER (0..15, ...) - -X2ap-E-RAB-Level-QoS-Parameters ::= SEQUENCE { - qCI X2ap-QCI, - allocationAndRetentionPriority X2ap-AllocationAndRetentionPriority, - gbrQosInformation X2ap-GBR-QosInformation OPTIONAL, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { X2ap-E-RAB-Level-QoS-Parameters-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-E-RAB-Level-QoS-Parameters-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - ---EURECOM X2ap-E-RAB-List ::= SEQUENCE (SIZE(1.. x2ap-maxnoofBearers)) OF ProtocolIE-Single-Container { {X2ap-E-RAB-ItemIEs} } -X2ap-E-RAB-List ::= SEQUENCE (SIZE (1.. x2ap-maxnoofBearers)) OF X2ap-IE - ---EURECOMX2ap-E-RAB-ItemIEs X2AP-PROTOCOL-IES ::= { ---EURECOM { ID id-E-RAB-Item CRITICALITY ignore TYPE X2ap-E-RAB-Item PRESENCE mandatory }, ---EURECOM ... ---EURECOM} - -X2ap-E-RAB-Item ::= SEQUENCE { - e-RAB-ID X2ap-E-RAB-ID, - cause X2ap-Cause, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {X2ap-E-RAB-Item-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-E-RAB-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-E-RABs-ToBeSetup-List ::= SEQUENCE (SIZE(1..x2ap-maxnoofBearers)) OF X2ap-IE - -X2ap-E-RABs-ToBeSetup-Item ::= SEQUENCE { - e-RAB-ID X2ap-E-RAB-ID, - e-RAB-Level-QoS-Parameters X2ap-E-RAB-Level-QoS-Parameters, - dL-Forwarding X2ap-DL-Forwarding OPTIONAL, - uL-GTPtunnelEndpoint X2ap-GTPtunnelEndpoint, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {X2ap-E-RABs-ToBeSetup-ItemExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-E-RABs-Admitted-List ::= SEQUENCE (SIZE (1..x2ap-maxnoofBearers)) OF X2ap-IE ---ProtocolIE-Single-Container { {X2ap-E-RABs-Admitted-ItemIEs} } - -X2ap-E-RABs-Admitted-Item ::= SEQUENCE { - e-RAB-ID X2ap-E-RAB-ID, - uL-GTP-TunnelEndpoint X2ap-GTPtunnelEndpoint OPTIONAL, - dL-GTP-TunnelEndpoint X2ap-GTPtunnelEndpoint OPTIONAL, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {X2ap-E-RABs-Admitted-Item-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-E-RABs-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..x2ap-maxnoofBearers)) OF X2ap-IE ---ProtocolIE-Single-Container { { X2ap-E-RABs-SubjectToStatusTransfer-ItemIEs} } - -X2ap-E-RABs-SubjectToStatusTransfer-Item ::= SEQUENCE { - e-RAB-ID X2ap-E-RAB-ID, - - receiveStatusofULPDCPSDUs X2ap-ReceiveStatusofULPDCPSDUs OPTIONAL, - uL-COUNTvalue X2ap-COUNTvalue, - dL-COUNTvalue X2ap-COUNTvalue, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {X2ap-E-RABs-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-EUTRANCellIdentifier ::= BIT STRING (SIZE (28)) - -X2ap-EUTRANTraceID ::= OCTET STRING (SIZE (8)) - - -X2ap-EventType ::= ENUMERATED{ - change-of-serving-cell, - ... -} - - --- F - -X2ap-ForbiddenInterRATs ::= ENUMERATED { - all, - geran, - utran, - cdma2000, - ..., - geranandutran, - cdma2000andutran - -} - -X2ap-ForbiddenTAs ::= SEQUENCE (SIZE(1.. x2ap-maxnoofEPLMNsPlusOne)) OF X2ap-ForbiddenTAs-Item - -X2ap-ForbiddenTAs-Item ::= SEQUENCE { - pLMN-Identity X2ap-PLMN-Identity, - forbiddenTACs X2ap-ForbiddenTACs, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {X2ap-ForbiddenTAs-Item-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-ForbiddenTAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-ForbiddenTACs ::= SEQUENCE (SIZE(1..x2ap-maxnoofForbTACs)) OF X2ap-TAC - -X2ap-ForbiddenLAs ::= SEQUENCE (SIZE(1..x2ap-maxnoofEPLMNsPlusOne)) OF X2ap-ForbiddenLAs-Item - -X2ap-ForbiddenLAs-Item ::= SEQUENCE { - pLMN-Identity X2ap-PLMN-Identity, - forbiddenLACs X2ap-ForbiddenLACs, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {X2ap-ForbiddenLAs-Item-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-ForbiddenLAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-ForbiddenLACs ::= SEQUENCE (SIZE(1..x2ap-maxnoofForbLACs)) OF X2ap-LAC - -X2ap-Fourframes ::= BIT STRING (SIZE (24)) - -X2ap-FreqBandIndicator ::= INTEGER (1..64) - --- G - -X2ap-GBR-QosInformation ::= SEQUENCE { - e-RAB-MaximumBitrateDL X2ap-BitRate, - e-RAB-MaximumBitrateUL X2ap-BitRate, - e-RAB-GuaranteedBitrateDL X2ap-BitRate, - e-RAB-GuaranteedBitrateUL X2ap-BitRate, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { X2ap-GBR-QosInformation-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-GBR-QosInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-GlobalENB-ID ::= SEQUENCE { - pLMN-Identity X2ap-PLMN-Identity, - eNB-ID X2ap-ENB-ID, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {X2ap-GlobalENB-ID-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-GlobalENB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-GTPtunnelEndpoint ::= SEQUENCE { - transportLayerAddress X2ap-TransportLayerAddress, - gTP-TEID X2ap-GTP-TEI, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {X2ap-GTPtunnelEndpoint-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-GTPtunnelEndpoint-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-GTP-TEI ::= OCTET STRING (SIZE (4)) - -X2ap-GUGroupIDList ::= SEQUENCE (SIZE (1..x2ap-maxPools)) OF X2ap-GU-Group-ID - - -X2ap-GU-Group-ID ::= SEQUENCE { - pLMN-Identity X2ap-PLMN-Identity, - mME-Group-ID X2ap-MME-Group-ID, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {X2ap-GU-Group-ID-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-GU-Group-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - - -X2ap-GUMMEI ::= SEQUENCE { - - gU-Group-ID X2ap-GU-Group-ID, - mME-Code X2ap-MME-Code, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {X2ap-GUMMEI-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-GUMMEI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - - - --- H - -X2ap-HandoverReportType ::= ENUMERATED { - hoTooEarly, - hoToWrongCell, - ..., - interRATpingpong -} - -X2ap-HandoverRestrictionList ::= SEQUENCE { - servingPLMN X2ap-PLMN-Identity, - equivalentPLMNs X2ap-EPLMNs OPTIONAL, - forbiddenTAs X2ap-ForbiddenTAs OPTIONAL, - forbiddenLAs X2ap-ForbiddenLAs OPTIONAL, - forbiddenInterRATs X2ap-ForbiddenInterRATs OPTIONAL, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-HandoverRestrictionList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-HFN ::= INTEGER (0..1048575) - -X2ap-HWLoadIndicator ::= SEQUENCE { - dLHWLoadIndicator X2ap-LoadIndicator, - uLHWLoadIndicator X2ap-LoadIndicator, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { X2ap-HWLoadIndicator-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-HWLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - - --- I - -X2ap-InvokeIndication ::= ENUMERATED{ - abs-information, - ... -} - -X2ap-IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16, ...)) - -X2ap-InterfacesToTrace ::= BIT STRING (SIZE (8)) --- J --- K - - -X2ap-Key-eNodeB-Star ::= BIT STRING (SIZE(256)) - --- L - - -X2ap-LAC ::= OCTET STRING (SIZE (2)) --(EXCEPT ('0000'H|'FFFE'H)) - -X2ap-LastVisitedCell-Item ::= CHOICE { - e-UTRAN-Cell X2ap-LastVisitedEUTRANCellInformation, - uTRAN-Cell X2ap-LastVisitedUTRANCellInformation, - gERAN-Cell X2ap-LastVisitedGERANCellInformation, - ... -} - -X2ap-LastVisitedEUTRANCellInformation ::= SEQUENCE { - global-Cell-ID X2ap-ECGI, - cellType X2ap-CellType, - time-UE-StayedInCell X2ap-Time-UE-StayedInCell, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-LastVisitedEUTRANCellInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { --- Extension for Rel-11 to support enhanced granularity for time UE stayed in cell -- ---EURECOM { ID id-Time-UE-StayedInCell-EnhancedGranularity CRITICALITY ignore EXTENSION X2ap-Time-UE-StayedInCell-EnhancedGranularity PRESENCE optional}| ---EURECOM { ID id-HO-cause CRITICALITY ignore EXTENSION X2ap-Cause PRESENCE optional}, - ... -} - -X2ap-LastVisitedUTRANCellInformation ::= OCTET STRING - -X2ap-LastVisitedGERANCellInformation ::= CHOICE { - undefined NULL, - ... -} - - -X2ap-LoadIndicator ::= ENUMERATED { - lowLoad, - mediumLoad, - highLoad, - overLoad, - ... -} - - - -X2ap-LocationReportingInformation ::= SEQUENCE { - eventType X2ap-EventType, - reportArea X2ap-ReportArea, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {LocationReportingInformation-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-LocationReportingInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::={ - ... -} - --- M - -X2ap-MDT-Activation ::= ENUMERATED { - immediate-MDT-only, - immediate-MDT-and-Trace, - ... -} - - -X2ap-MeasurementInitiationResult-List ::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF X2ap-IE ---ProtocolIE-Single-Container { { X2ap-MeasurementInitiationResult-ItemIEs} } - -X2ap-MeasurementInitiationResult-Item ::= SEQUENCE { - cell-ID X2ap-ECGI, - measurementFailureCause-List X2ap-MeasurementFailureCause-List OPTIONAL, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { X2ap-MeasurementInitiationResult-Item-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-MDT-Configuration ::= SEQUENCE { - mdt-Activation X2ap-MDT-Activation, - areaScopeOfMDT X2ap-AreaScopeOfMDT, - measurementsToActivate X2ap-MeasurementsToActivate, - reportingTriggerMDT X2ap-ReportingTriggerMDT, - thresholdeventA2 X2ap-ThresholdEventA2 OPTIONAL, --- Included in case of event-triggered reporting for measurement M1 - periodicReportingMDT X2ap-PeriodicReportingMDT OPTIONAL, --- Included in case of periodic reporting ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-MDT-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-MeasurementsToActivate::= BIT STRING (SIZE (8)) - -X2ap-MeasurementThresholdA2 ::= CHOICE { - threshold-RSRP X2ap-Threshold-RSRP, - threshold-RSRQ X2ap-Threshold-RSRQ, - ... -} - -X2ap-MME-Group-ID ::= OCTET STRING (SIZE (2)) - -X2ap-MME-Code ::= OCTET STRING (SIZE (1)) - -X2ap-Measurement-ID ::= INTEGER (1..4095, ...) - -X2ap-MBMS-Service-Area-Identity-List ::= SEQUENCE (SIZE(1.. x2ap-maxnoofMBMSServiceAreaIdentities)) OF X2ap-MBMS-Service-Area-Identity - -X2ap-MBMS-Service-Area-Identity ::= OCTET STRING (SIZE (2)) - -X2ap-MBSFN-Subframe-Infolist::= SEQUENCE (SIZE(1.. x2ap-maxnoofMBSFN)) OF X2ap-MBSFN-Subframe-Info - -X2ap-MBSFN-Subframe-Info ::= SEQUENCE { - radioframeAllocationPeriod X2ap-RadioframeAllocationPeriod, - radioframeAllocationOffset X2ap-RadioframeAllocationOffset, - subframeAllocation X2ap-SubframeAllocation, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { MBSFN-Subframe-Info-ExtIEs } } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-MBSFN-Subframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-ManagementBasedMDTallowed ::= ENUMERATED {allowed, ...} - -X2ap-MobilityParametersModificationRange ::= SEQUENCE { - handoverTriggerChangeLowerLimit INTEGER (-20..20), - handoverTriggerChangeUpperLimit INTEGER (-20..20), - ... -} - -X2ap-MobilityParametersInformation ::= SEQUENCE { - handoverTriggerChange INTEGER (-20..20), - ... -} - -X2ap-MultibandInfoList ::= SEQUENCE (SIZE(1..x2ap-maxnoofBands)) OF X2ap-BandInfo - - -X2ap-BandInfo ::= SEQUENCE { - freqBandIndicator X2ap-FreqBandIndicator, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { BandInfo-ExtIEs } } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-BandInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - --- N - -X2ap-Neighbour-Information ::= SEQUENCE (SIZE (0..x2ap-maxnoofNeighbours)) OF X2ap-Neighbour-Information-Elm - -X2ap-Neighbour-Information-Elm ::= SEQUENCE { - eCGI X2ap-ECGI, - pCI X2ap-PCI, - eARFCN X2ap-EARFCN, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {X2ap-Neighbour-Information-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-Neighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { ---LG { ID id-NeighbourTAC CRITICALITY ignore EXTENSION TAC PRESENCE optional}, - ... -} - -X2ap-NextHopChainingCount ::= INTEGER (0..7) - -X2ap-Number-of-Antennaports ::= ENUMERATED { - an1, - an2, - an4, - ... -} - --- O - -X2ap-Old-ECGIs::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF X2ap-ECGI - -X2ap-Oneframe ::= BIT STRING (SIZE (6)) - --- P -X2ap-PartialSuccessIndicator ::= ENUMERATED { - partial-success-allowed, -... -} - -X2ap-PDCP-SN ::= INTEGER (0..4095) - -X2ap-PCI ::= INTEGER (0..503, ...) - -X2ap-PeriodicReportingMDT ::= SEQUENCE { - reportInterval X2ap-ReportIntervalMDT, - reportAmount X2ap-ReportAmountMDT, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { PeriodicReportingMDT-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-PeriodicReportingMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-PLMN-Identity ::= OCTET STRING (SIZE(3)) - -X2ap-PRACH-Configuration ::= SEQUENCE { - rootSequenceIndex INTEGER (0..837), - zeroCorrelationIndex INTEGER (0..15), - highSpeedFlag BOOLEAN, - prach-FreqOffset INTEGER (0..94), - prach-ConfigIndex INTEGER (0..63) OPTIONAL, -- present for TDD -- ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {PRACH-Configuration-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-PRACH-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-Pre-emptionCapability ::= ENUMERATED { - shall-not-trigger-pre-emption, - may-trigger-pre-emption -} - -X2ap-Pre-emptionVulnerability ::= ENUMERATED { - not-pre-emptable, - pre-emptable -} - -X2ap-PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) - --- Q - -X2ap-QCI ::= INTEGER (0..255) - --- R - -X2ap-ReportingPeriodicity ::= ENUMERATED { - one-thousand-ms, - two-thousand-ms, - five-thousand-ms, - ten-thousand-ms, -... -} - -X2ap-RadioframeAllocationOffset ::= INTEGER (0..7, ...) - -X2ap-RadioframeAllocationPeriod ::= ENUMERATED{ - n1, - n2, - n4, - n8, - n16, - n32, - ... -} - - -X2ap-RadioResourceStatus ::= SEQUENCE { - dL-GBR-PRB-usage X2ap-DL-GBR-PRB-usage, - uL-GBR-PRB-usage X2ap-UL-GBR-PRB-usage, - dL-non-GBR-PRB-usage X2ap-DL-non-GBR-PRB-usage, - uL-non-GBR-PRB-usage X2ap-UL-non-GBR-PRB-usage, - dL-Total-PRB-usage X2ap-DL-Total-PRB-usage, - uL-Total-PRB-usage X2ap-UL-Total-PRB-usage, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {RadioResourceStatus-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-RadioResourceStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) - -X2ap-Registration-Request ::= ENUMERATED { - start, - stop, - ... -} - -X2ap-RelativeNarrowbandTxPower ::= SEQUENCE { - - rNTP-PerPRB BIT STRING (SIZE(6..110, ...)), - rNTP-Threshold X2ap-RNTP-Threshold, ---EURECOM COMMENT numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, - numberOfCellSpecificAntennaPortsTxPower ENUMERATED {one, two, four, ...}, - p-B INTEGER (0..3,...), - pDCCH-InterferenceImpact INTEGER (0..4,...), ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { RelativeNarrowbandTxPower-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-RelativeNarrowbandTxPower-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity} - -X2ap-ReportArea ::= ENUMERATED{ - ecgi, - ... -} - -X2ap-ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60} - -X2ap-ReportCharacteristics ::= BIT STRING (SIZE (32)) - -X2ap-ReportingTriggerMDT::= ENUMERATED{ - periodic, - a2eventtriggered, - ... -} - -X2ap-RNTP-Threshold ::= ENUMERATED { - minusInfinity, - minusEleven, - minusTen, - minusNine, - minusEight, - minusSeven, - minusSix, - minusFive, - minusFour, - minusThree, - minusTwo, - minusOne, - zero, - one, - two, - three, - ... -} - -X2ap-RRC-Context ::= OCTET STRING - -X2ap-RRCConnReestabIndicator ::= ENUMERATED { - reconfigurationFailure, handoverFailure, otherFailure, ... -} --- The values correspond to the values of ReestablishmentCause reported from the UE in the RRCConnectionReestablishmentRequest, as defined in TS 36.331 [9] - -X2ap-RRCConnSetupIndicator::= ENUMERATED { - rrcConnSetup, - ... -} - --- S -X2ap-ServedCellsToActivate::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF X2ap-ServedCellsToActivate-Item - -X2ap-ServedCellsToActivate-Item ::= SEQUENCE { - ecgi X2ap-ECGI, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { X2ap-ServedCellsToActivate-Item-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-S1TNLLoadIndicator ::= SEQUENCE { - dLS1TNLLoadIndicator X2ap-LoadIndicator, - uLS1TNLLoadIndicator X2ap-LoadIndicator, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { S1TNLLoadIndicator-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-S1TNLLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - - - - -X2ap-ServedCells ::= SEQUENCE (SIZE (1.. x2ap-maxCellineNB)) OF X2ap-ServedCellItem - - -X2ap-ServedCellItem ::= SEQUENCE { - servedCellInfo X2ap-ServedCell-Information, - neighbour-Info X2ap-Neighbour-Information OPTIONAL, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {ServedCell-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-ServedCell-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-ServedCellsToModify::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF X2ap-ServedCellsToModify-Item - -X2ap-ServedCellsToModify-Item ::= SEQUENCE { - old-ecgi X2ap-ECGI, - servedCellInfo X2ap-ServedCell-Information, - neighbour-Info X2ap-Neighbour-Information OPTIONAL, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { X2ap-ServedCellsToModify-Item-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-ServedCell-Information ::= SEQUENCE { - pCI X2ap-PCI, - cellId X2ap-ECGI, - tAC X2ap-TAC, - broadcastPLMNs X2ap-BroadcastPLMNs-Item, - eUTRA-Mode-Info X2ap-EUTRA-Mode-Info, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {X2ap-ServedCell-Information-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-ServedCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { ---EURECOM { ID id-Number-of-Antennaports CRITICALITY ignore EXTENSION X2ap-Number-of-Antennaports PRESENCE optional }| ---EURECOM { ID id-PRACH-Configuration CRITICALITY ignore EXTENSION X2ap-PRACH-Configuration PRESENCE optional }| ---EURECOM { ID id-MBSFN-Subframe-Info CRITICALITY ignore EXTENSION X2ap-MBSFN-Subframe-Infolist PRESENCE optional }| ---EURECOM { ID id-CSG-Id CRITICALITY ignore EXTENSION X2ap-CSG-Id PRESENCE optional }| ---EURECOM { ID id-MBMS-Service-Area-List CRITICALITY ignore EXTENSION X2ap-MBMS-Service-Area-Identity-List PRESENCE optional }| ---EURECOM { ID id-MultibandInfoList CRITICALITY ignore EXTENSION X2ap-MultibandInfoList PRESENCE optional }, - ... -} - -X2ap-ShortMAC-I ::= BIT STRING (SIZE(16)) - -X2ap-SRVCCOperationPossible ::= ENUMERATED { - possible, - ... -} - -X2ap-SubframeAssignment ::= ENUMERATED { - sa0, - sa1, - sa2, - sa3, - sa4, - sa5, - sa6, - ... -} - -X2ap-SpecialSubframe-Info ::= SEQUENCE { - specialSubframePatterns X2ap-SpecialSubframePatterns, - cyclicPrefixDL X2ap-CyclicPrefixDL, - cyclicPrefixUL X2ap-CyclicPrefixUL, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { SpecialSubframe-Info-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-SpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - - -X2ap-SpecialSubframePatterns ::= ENUMERATED { - ssp0, - ssp1, - ssp2, - ssp3, - ssp4, - ssp5, - ssp6, - ssp7, - ssp8, - ..., - ssp9 -} - -X2ap-SubscriberProfileIDforRFP ::= INTEGER (1..256) - -X2ap-SubframeAllocation ::= CHOICE { - oneframe X2ap-Oneframe, - fourframes X2ap-Fourframes, - ... -} - --- T - -X2ap-TAC ::= OCTET STRING (SIZE (2)) - -X2ap-TABasedMDT::= SEQUENCE { - tAListforMDT X2ap-TAListforMDT, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-TABasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-TAListforMDT ::= SEQUENCE (SIZE(1..x2ap-maxnoofTAforMDT)) OF X2ap-TAC - -X2ap-TargetCellInUTRAN ::= OCTET STRING -- This IE is to be encoded according to the UTRAN Cell ID in the Last Visited UTRAN Cell Information IE in TS 25.413 [24] - -X2ap-ThresholdEventA2 ::= SEQUENCE { - measurementThreshold X2ap-MeasurementThresholdA2, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { ThresholdEventA2-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-ThresholdEventA2-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-TargeteNBtoSource-eNBTransparentContainer ::= OCTET STRING - -X2ap-Threshold-RSRP ::= INTEGER(0..97) - -X2ap-Threshold-RSRQ ::= INTEGER(0..34) - -X2ap-TimeToWait ::= ENUMERATED { - v1s, - v2s, - v5s, - v10s, - v20s, - v60s, - ... -} - -X2ap-Time-UE-StayedInCell ::= INTEGER (0..4095) - -X2ap-Time-UE-StayedInCell-EnhancedGranularity ::= INTEGER (0..40950) - - -X2ap-TraceActivation ::= SEQUENCE { - eUTRANTraceID X2ap-EUTRANTraceID, - interfacesToTrace X2ap-InterfacesToTrace, -traceDepth X2ap-TraceDepth, -traceCollectionEntityIPAddress X2ap-TraceCollectionEntityIPAddress, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {TraceActivation-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-TraceActivation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { ---EURECOM { ID id-MDTConfiguration CRITICALITY ignore EXTENSION X2ap-MDT-Configuration PRESENCE optional}, - ... -} - -X2ap-TraceCollectionEntityIPAddress ::= BIT STRING (SIZE(1..160, ...)) - -X2ap-TraceDepth ::= ENUMERATED { - minimum, - medium, - maximum, - minimumWithoutVendorSpecificExtension, - mediumWithoutVendorSpecificExtension, - maximumWithoutVendorSpecificExtension, - ... -} - - - - -X2ap-Transmission-Bandwidth ::= ENUMERATED { - bw6, - bw15, - bw25, - bw50, - bw75, - bw100, - ... -} - -X2ap-TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) - -X2ap-TypeOfError ::= ENUMERATED { - not-understood, - missing, - ... -} - - --- U - -X2ap-UE-HistoryInformation ::= SEQUENCE (SIZE(1..x2ap-maxnoofCells)) OF X2ap-LastVisitedCell-Item - - -X2ap-UE-S1AP-ID ::= INTEGER (0.. 4294967295) - -X2ap-UE-X2AP-ID ::= INTEGER (0..4095) - -X2ap-UEAggregateMaximumBitRate ::= SEQUENCE { - uEaggregateMaximumBitRateDownlink X2ap-BitRate, - uEaggregateMaximumBitRateUplink X2ap-BitRate, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrate-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-UEAggregate-MaximumBitrate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-UESecurityCapabilities ::= SEQUENCE { - encryptionAlgorithms X2ap-EncryptionAlgorithms, - integrityProtectionAlgorithms X2ap-IntegrityProtectionAlgorithms, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, -... -} - -X2ap-UESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-UE-ContextInformation ::= SEQUENCE { - mME-UE-S1AP-ID X2ap-UE-S1AP-ID, - uESecurityCapabilities X2ap-UESecurityCapabilities, - aS-SecurityInformation X2ap-AS-SecurityInformation, - uEaggregateMaximumBitRate X2ap-UEAggregateMaximumBitRate, - subscriberProfileIDforRFP X2ap-SubscriberProfileIDforRFP OPTIONAL, - e-RABs-ToBeSetup-List X2ap-E-RABs-ToBeSetup-List, - rRC-Context X2ap-RRC-Context, - handoverRestrictionList X2ap-HandoverRestrictionList OPTIONAL, - locationReportingInformation X2ap-LocationReportingInformation OPTIONAL, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { {X2ap-UE-ContextInformation-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-UL-GBR-PRB-usage::= INTEGER (0..100) - -X2ap-UL-non-GBR-PRB-usage::= INTEGER (0..100) - -X2ap-UL-Total-PRB-usage::= INTEGER (0..100) - -X2ap-UL-InterferenceOverloadIndication ::= SEQUENCE (SIZE(1..x2ap-maxnoofPRBs)) OF X2ap-UL-InterferenceOverloadIndication-Item - -X2ap-UL-InterferenceOverloadIndication-Item ::= ENUMERATED { - high-interference, - medium-interference, - low-interference, - ... -} - -X2ap-UL-HighInterferenceIndicationInfo ::= SEQUENCE (SIZE(1..x2ap-maxCellineNB)) OF X2ap-UL-HighInterferenceIndicationInfo-Item - -X2ap-UL-HighInterferenceIndicationInfo-Item ::= SEQUENCE { - target-Cell-ID X2ap-ECGI, - ul-interferenceindication X2ap-UL-HighInterferenceIndication, ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { UL-HighInterferenceIndicationInfo-Item-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-UL-HighInterferenceIndicationInfo-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-UL-HighInterferenceIndication ::= BIT STRING (SIZE(1..110, ...)) - -X2ap-UE-RLF-Report-Container::= OCTET STRING --- This IE is a transparent container and shall be encoded as the rlfReport field contained in the UEInformationResponse message as defined in TS 36.331 [9] - -X2ap-UsableABSInformation ::= CHOICE { - fdd X2ap-UsableABSInformationFDD, - tdd X2ap-UsableABSInformationTDD, - ... -} - -X2ap-UsableABSInformationFDD ::= SEQUENCE { - usable-abs-pattern-info BIT STRING (SIZE(40)), ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { UsableABSInformationFDD-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-UsableABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-UsableABSInformationTDD ::= SEQUENCE { - usaable-abs-pattern-info BIT STRING (SIZE(1..70, ...)), ---EURECOM COMMENT, ADDED NEXT LINE iE-Extensions ProtocolExtensionContainer { { UsableABSInformationTDD-ExtIEs} } OPTIONAL, - iE-Extensions X2ap-IE-Extensions OPTIONAL, - ... -} - -X2ap-UsableABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - --- V --- W --- X --- Y --- Z - -END - diff --git a/openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU-Contents.asn b/openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU-Contents.asn deleted file mode 100755 index d0a3546a15..0000000000 --- a/openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU-Contents.asn +++ /dev/null @@ -1,892 +0,0 @@ --- ************************************************************** --- --- PDU definitions for X2AP. --- --- ************************************************************** - -X2AP-PDU-Contents { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Contents (1) } - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - --- ************************************************************** --- --- IE parameter types from other modules. --- --- ************************************************************** - -IMPORTS - X2ap-ABSInformation, - X2ap-ABS-Status, - X2ap-AS-SecurityInformation, - X2ap-Cause, - X2ap-CompositeAvailableCapacityGroup, - X2ap-COUNTvalue, - X2ap-CriticalityDiagnostics, - X2ap-CRNTI, - X2ap-CSGMembershipStatus, - X2ap-CSG-Id, - X2ap-DeactivationIndication, - X2ap-DL-Forwarding, - X2ap-ECGI, - X2ap-E-RAB-ID, - X2ap-E-RAB-Level-QoS-Parameters, - X2ap-E-RAB-List, - X2ap-EUTRANTraceID, - X2ap-GlobalENB-ID, - X2ap-GTPtunnelEndpoint, - X2ap-GUGroupIDList, - X2ap-GUMMEI, - X2ap-HandoverReportType, - X2ap-HandoverRestrictionList, - X2ap-InvokeIndication, - X2ap-LocationReportingInformation, - X2ap-MDT-Configuration, - X2ap-ManagementBasedMDTallowed, - X2ap-Neighbour-Information, - X2ap-PCI, - X2ap-PDCP-SN, - X2ap-PLMN-Identity, - X2ap-ReceiveStatusofULPDCPSDUs, - X2ap-Registration-Request, - X2ap-RelativeNarrowbandTxPower, - X2ap-RadioResourceStatus, - X2ap-RRCConnReestabIndicator, - X2ap-RRCConnSetupIndicator, - X2ap-UE-RLF-Report-Container, - X2ap-RRC-Context, - X2ap-ServedCell-Information, - X2ap-ServedCells, - X2ap-ShortMAC-I, - X2ap-SRVCCOperationPossible, - X2ap-SubscriberProfileIDforRFP, - X2ap-TargetCellInUTRAN, - X2ap-TargeteNBtoSource-eNBTransparentContainer, - X2ap-TimeToWait, - X2ap-TraceActivation, - X2ap-TraceDepth, - - X2ap-TransportLayerAddress, - X2ap-UEAggregateMaximumBitRate, - X2ap-UE-HistoryInformation, - X2ap-UE-S1AP-ID, - X2ap-UESecurityCapabilities, - X2ap-UE-X2AP-ID, - X2ap-UL-HighInterferenceIndicationInfo, - X2ap-UL-InterferenceOverloadIndication, - X2ap-HWLoadIndicator, - X2ap-S1TNLLoadIndicator, - X2ap-Measurement-ID, - X2ap-ReportCharacteristics, - X2ap-MobilityParametersInformation, - X2ap-MobilityParametersModificationRange - - - - -FROM X2AP-IEs - - PrivateIE-Container{}, - ProtocolExtensionContainer{}, - ProtocolIE-Container{}, - ProtocolIE-ContainerList{}, - ProtocolIE-ContainerPair{}, - ProtocolIE-ContainerPairList{}, - ProtocolIE-Single-Container{}, - X2AP-PRIVATE-IES, - X2AP-PROTOCOL-EXTENSION, - X2AP-PROTOCOL-IES, - X2AP-PROTOCOL-IES-PAIR -FROM X2AP-Containers - - id-ABSInformation, - id-ActivatedCellList, - id-Cause, - id-CellInformation, - id-CellInformation-Item, - id-CellMeasurementResult, - id-CellMeasurementResult-Item, - id-CellToReport, - id-CellToReport-Item, - id-CompositeAvailableCapacityGroup, - id-CriticalityDiagnostics, - id-DeactivationIndication, - id-E-RABs-Admitted-Item, - id-E-RABs-Admitted-List, - id-E-RABs-NotAdmitted-List, - id-E-RABs-SubjectToStatusTransfer-List, - id-E-RABs-SubjectToStatusTransfer-Item, - id-E-RABs-ToBeSetup-Item, - id-GlobalENB-ID, - id-GUGroupIDList, - id-GUGroupIDToAddList, - id-GUGroupIDToDeleteList, - id-GUMMEI-ID, - id-InvokeIndication, - id-New-eNB-UE-X2AP-ID, - id-Old-eNB-UE-X2AP-ID, - id-Registration-Request, - id-ReportingPeriodicity, - id-ServedCells, - id-ServedCellsToActivate, - id-ServedCellsToAdd, - id-ServedCellsToModify, - id-ServedCellsToDelete, - id-SRVCCOperationPossible, - id-TargetCell-ID, - id-TargeteNBtoSource-eNBTransparentContainer, - id-TimeToWait, - id-TraceActivation, - id-UE-ContextInformation, - id-UE-HistoryInformation, - id-UE-X2AP-ID, - id-Measurement-ID, - id-ReportCharacteristics, - id-ENB1-Measurement-ID, - id-ENB2-Measurement-ID, - id-ENB1-Cell-ID, - id-ENB2-Cell-ID, - id-ENB2-Proposed-Mobility-Parameters, - id-ENB1-Mobility-Parameters, - id-ENB2-Mobility-Parameters-Modification-Range, - id-FailureCellPCI, - id-Re-establishmentCellECGI, - id-FailureCellCRNTI, - id-ShortMAC-I, - id-SourceCellECGI, - id-FailureCellECGI, - id-HandoverReportType, - id-UE-RLF-Report-Container, - id-PartialSuccessIndicator, - id-MeasurementInitiationResult-List, - id-MeasurementInitiationResult-Item, - id-MeasurementFailureCause-Item, - id-CompleteFailureCauseInformation-List, - id-CompleteFailureCauseInformation-Item, - id-CSGMembershipStatus, - id-CSG-Id, - id-MDTConfiguration, - id-ManagementBasedMDTallowed, - id-ABS-Status, - id-RRCConnSetupIndicator, - id-RRCConnReestabIndicator, - id-TargetCellInUTRAN, - - x2ap-maxCellineNB, - x2ap-maxnoofBearers, - x2ap-maxnoofPDCP-SN, - x2ap-maxFailedMeasObjects, - x2ap-maxnoofCellIDforMDT, - x2ap-maxnoofTAforMDT - -FROM X2AP-Constants; - --- ************************************************************** --- --- HANDOVER REQUEST --- --- ************************************************************** - -X2ap-HandoverRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2ap-HandoverRequest-IEs}}, - ... -} - -X2ap-HandoverRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE X2ap-UE-X2AP-ID PRESENCE mandatory }| - { ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory }| - { ID id-TargetCell-ID CRITICALITY reject TYPE X2ap-ECGI PRESENCE mandatory }| - { ID id-GUMMEI-ID CRITICALITY reject TYPE X2ap-GUMMEI PRESENCE mandatory }| - { ID id-UE-ContextInformation CRITICALITY reject TYPE X2ap-UE-ContextInformation PRESENCE mandatory }| - { ID id-UE-HistoryInformation CRITICALITY ignore TYPE X2ap-UE-HistoryInformation PRESENCE mandatory }| - { ID id-TraceActivation CRITICALITY ignore TYPE X2ap-TraceActivation PRESENCE optional}| - { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE X2ap-SRVCCOperationPossible PRESENCE optional}| - { ID id-CSGMembershipStatus CRITICALITY reject TYPE X2ap-CSGMembershipStatus PRESENCE optional}, - ... -} - - -X2ap-UE-ContextInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { -{ ID id-ManagementBasedMDTallowed CRITICALITY ignore EXTENSION X2ap-ManagementBasedMDTallowed PRESENCE optional }, - ... -} - -X2ap-E-RABs-ToBeSetup-List ::= SEQUENCE (SIZE(1..x2ap-maxnoofBearers)) OF ProtocolIE-Single-Container { {X2ap-E-RABs-ToBeSetup-ItemIEs} } - -X2ap-E-RABs-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeSetup-Item CRITICALITY ignore TYPE X2ap-E-RABs-ToBeSetup-Item PRESENCE mandatory }, - ... -} - -X2ap-E-RABs-ToBeSetup-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - - - --- ************************************************************** --- --- HANDOVER REQUEST ACKNOWLEDGE --- --- ************************************************************** - -X2ap-HandoverRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2ap-HandoverRequestAcknowledge-IEs}}, - ... -} - -X2ap-HandoverRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE X2ap-UE-X2AP-ID PRESENCE mandatory} | - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE X2ap-UE-X2AP-ID PRESENCE mandatory} | - { ID id-E-RABs-Admitted-List CRITICALITY ignore TYPE X2ap-E-RABs-Admitted-List PRESENCE mandatory} | - { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE X2ap-E-RAB-List PRESENCE optional} | - { ID id-TargeteNBtoSource-eNBTransparentContainer CRITICALITY ignore TYPE X2ap-TargeteNBtoSource-eNBTransparentContainer PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - -X2ap-E-RABs-Admitted-List ::= SEQUENCE (SIZE (1..x2ap-maxnoofBearers)) OF ProtocolIE-Single-Container { {X2ap-E-RABs-Admitted-ItemIEs} } - -X2ap-E-RABs-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-Item CRITICALITY ignore TYPE X2ap-E-RABs-Admitted-Item PRESENCE mandatory } -} - -X2ap-E-RABs-Admitted-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - - - --- ************************************************************** --- --- HANDOVER PREPARATION FAILURE --- --- ************************************************************** - -X2ap-HandoverPreparationFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2ap-HandoverPreparationFailure-IEs}}, - ... -} - -X2ap-HandoverPreparationFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE X2ap-UE-X2AP-ID PRESENCE mandatory} | - { ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory} | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional }, - - ... -} - --- ************************************************************** --- --- Handover Report --- --- ************************************************************** - -X2ap-HandoverReport ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2ap-HandoverReport-IEs}}, - ... -} - -X2ap-HandoverReport-IEs X2AP-PROTOCOL-IES ::= { - { ID id-HandoverReportType CRITICALITY ignore TYPE X2ap-HandoverReportTYPE X2ap-PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory} | - { ID id-SourceCellECGI CRITICALITY ignore TYPE X2ap-ECGI PRESENCE mandatory}| - { ID id-FailureCellECGI CRITICALITY ignore TYPE X2ap-ECGI PRESENCE mandatory} | - { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE X2ap-ECGI PRESENCE conditional} -- The IE shall be present if the Handover Report TYPE X2ap-IE is set to “HO to Wrong Cell” -- | - { ID id-TargetCellInUTRAN CRITICALITY ignore TYPE X2ap-TargetCellInUTRAN PRESENCE conditional} -- The IE shall be present if the Handover Report TYPE X2ap-IE is set to "InterRAT ping-pong" --, - ... -} - --- ************************************************************** --- --- SN Status Transfer --- --- ************************************************************** - -X2ap-SNStatusTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2ap-SNStatusTransfer-IEs}}, - ... -} - -X2ap-SNStatusTransfer-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE X2ap-UE-X2AP-ID PRESENCE mandatory} | - { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE X2ap-UE-X2AP-ID PRESENCE mandatory} | - { ID id-E-RABs-SubjectToStatusTransfer-List CRITICALITY ignore TYPE X2ap-E-RABs-SubjectToStatusTransfer-List PRESENCE mandatory} , - ... -} - -X2ap-E-RABs-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..x2ap-maxnoofBearers)) OF ProtocolIE-Single-Container { { X2ap-E-RABs-SubjectToStatusTransfer-ItemIEs} } - -X2ap-E-RABs-SubjectToStatusTransfer-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE X2ap-E-RABs-SubjectToStatusTransfer-Item PRESENCE mandatory } -} - -X2ap-E-RABs-SubjectToStatusTransfer-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - - - - - --- ************************************************************** --- --- UE Context Release --- --- ************************************************************** - -X2ap-UEContextRelease ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2ap-UEContextRelease-IEs}}, - ... -} - -X2ap-UEContextRelease-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE X2ap-UE-X2AP-ID PRESENCE mandatory} | - { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE X2ap-UE-X2AP-ID PRESENCE mandatory} , - ... -} - - --- ************************************************************** --- --- HANDOVER CANCEL --- --- ************************************************************** - -X2ap-HandoverCancel ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2ap-HandoverCancel-IEs}}, - ... -} - -X2ap-HandoverCancel-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE X2ap-UE-X2AP-ID PRESENCE mandatory} | - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE X2ap-UE-X2AP-ID PRESENCE optional} | - { ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory} , - ... -} - --- ************************************************************** --- --- ERROR INDICATION --- --- ************************************************************** - -X2ap-ErrorIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2ap-ErrorIndication-IEs}}, - ... -} - -X2ap-ErrorIndication-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE X2ap-UE-X2AP-ID PRESENCE optional} | - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE X2ap-UE-X2AP-ID PRESENCE optional} | - { ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE optional} | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional} , - ... -} - --- ************************************************************** --- --- Reset Request --- --- ************************************************************** - -X2ap-ResetRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2ap-ResetRequest-IEs}}, - ... -} - -X2ap-ResetRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory }, - ... -} - --- ************************************************************** --- --- Reset Response --- --- ************************************************************** - -X2ap-ResetResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2ap-ResetResponse-IEs}}, - ... -} - -X2ap-ResetResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- X2 SETUP REQUEST --- --- ************************************************************** - -X2SetupRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2SetupRequest-IEs}}, - ... -} - -X2SetupRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE X2ap-GlobalENB-ID PRESENCE mandatory} | - { ID id-ServedCells CRITICALITY reject TYPE X2ap-ServedCells PRESENCE mandatory} | - { ID id-GUGroupIDList CRITICALITY reject TYPE X2ap-GUGroupIDList PRESENCE optional}, -... -} - - - --- ************************************************************** --- --- X2 SETUP RESPONSE --- --- ************************************************************** - -X2SetupResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2SetupResponse-IEs}}, - ... -} - -X2SetupResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE X2ap-GlobalENB-ID PRESENCE mandatory} | - { ID id-ServedCells CRITICALITY reject TYPE X2ap-ServedCells PRESENCE mandatory} | - { ID id-GUGroupIDList CRITICALITY reject TYPE X2ap-GUGroupIDList PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - - - --- ************************************************************** --- --- X2 SETUP FAILURE --- --- ************************************************************** - -X2SetupFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2SetupFailure-IEs}}, - ... -} - -X2SetupFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory} | - { ID id-TimeToWait CRITICALITY ignore TYPE X2ap-TimeToWait PRESENCE optional} | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional }, - - ... -} - - - --- ************************************************************** --- --- LOAD INFORMATION --- --- ************************************************************** - -X2ap-LoadInformation ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2ap-LoadInformation-IEs}}, - ... -} - -X2ap-LoadInformation-IEs X2AP-PROTOCOL-IES ::= { - { ID id-CellInformation CRITICALITY ignore TYPE X2ap-CellInformation-List PRESENCE mandatory} , - ... -} - -X2ap-CellInformation-List ::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF ProtocolIE-Single-Container { {X2ap-CellInformation-ItemIEs} } - -X2ap-CellInformation-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-CellInformation-Item CRITICALITY ignore TYPE X2ap-CellInformation-Item PRESENCE mandatory } -} - - -X2ap-CellInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { -{ ID id-ABSInformation CRITICALITY ignore EXTENSION X2ap-ABSInformation PRESENCE optional }| -{ ID id-InvokeIndication CRITICALITY ignore EXTENSION X2ap-InvokeIndication PRESENCE optional }, - ... -} - --- ************************************************************** --- --- ENB CONFIGURATION UPDATE --- --- ************************************************************** - -X2ap-ENBConfigurationUpdate ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2ap-ENBConfigurationUpdate-IEs}}, - ... -} - -X2ap-ENBConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ServedCellsToAdd CRITICALITY reject TYPE X2ap-ServedCells PRESENCE optional} | - { ID id-ServedCellsToModify CRITICALITY reject TYPE X2ap-ServedCellsToModify PRESENCE optional} | - { ID id-ServedCellsToDelete CRITICALITY reject TYPE X2ap-Old-ECGIs PRESENCE optional} | - { ID id-GUGroupIDToAddList CRITICALITY reject TYPE X2ap-GUGroupIDList PRESENCE optional} | - { ID id-GUGroupIDToDeleteList CRITICALITY reject TYPE X2ap-GUGroupIDList PRESENCE optional}, - ... -} - -X2ap-ServedCellsToModify::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF X2ap-ServedCellsToModify-Item - - -ServedCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { -{ ID id-DeactivationIndication CRITICALITY ignore EXTENSION X2ap-DeactivationIndication PRESENCE optional }, - ... -} - --- ************************************************************** --- --- ENB CONFIGURATION UPDATE ACKNOWLEDGE --- --- ************************************************************** - -X2ap-ENBConfigurationUpdateAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2ap-ENBConfigurationUpdateAcknowledge-IEs}}, - ... -} - -X2ap-ENBConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional }, -... -} - --- ************************************************************** --- --- ENB CONFIGURATION UPDATE FAIURE --- --- ************************************************************** - -X2ap-ENBConfigurationUpdateFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2ap-ENBConfigurationUpdateFailure-IEs}}, - ... -} - -X2ap-ENBConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory }| - { ID id-TimeToWait CRITICALITY ignore TYPE X2ap-TimeToWait PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - - - --- ************************************************************** --- --- Resource Status Request --- --- ************************************************************** - -X2ap-ResourceStatusRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2ap-ResourceStatusRequest-IEs}}, - ... -} - -X2ap-ResourceStatusRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE X2ap-Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY ignore TYPE X2ap-Measurement-ID PRESENCE conditional}|-- The IE shall be present if the Registration Request IE is set to “Stop”-- - { ID id-Registration-Request CRITICALITY reject TYPE X2ap-Registration-Request PRESENCE mandatory}| - { ID id-ReportCharacteristics CRITICALITY reject TYPE X2ap-ReportCharacteristics PRESENCE optional}| - { ID id-CellToReport CRITICALITY ignore TYPE X2ap-CellToReport-List PRESENCE mandatory}| - { ID id-ReportingPeriodicity CRITICALITY ignore TYPE X2ap-ReportingPeriodicity PRESENCE optional}| - { ID id-PartialSuccessIndicator CRITICALITY ignore TYPE X2ap-PartialSuccessIndicator PRESENCE optional}, - ... -} - - -X2ap-CellToReport-List ::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF ProtocolIE-Single-Container { {X2ap-CellToReport-ItemIEs} } - -X2ap-CellToReport-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-CellToReport-Item CRITICALITY ignore TYPE X2ap-CellToReport-Item PRESENCE mandatory } -} - - - -X2ap-CellToReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - - -X2ap-ReportingPeriodicity ::= ENUMERATED { - one-thousand-ms, - two-thousand-ms, - five-thousand-ms, - ten-thousand-ms, -... -} - -X2ap-PartialSuccessIndicator ::= ENUMERATED { - partial-success-allowed, -... -} - --- ************************************************************** --- --- Resource Status Response --- --- ************************************************************** - -X2ap-ResourceStatusResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2ap-ResourceStatusResponse-IEs}}, - ... -} - -X2ap-ResourceStatusResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE X2ap-Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE X2ap-Measurement-ID PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional}| - { ID id-MeasurementInitiationResult-List CRITICALITY ignore TYPE X2ap-MeasurementInitiationResult-List PRESENCE optional}, - ... -} - - -X2ap-MeasurementInitiationResult-List ::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF ProtocolIE-Single-Container { { X2ap-MeasurementInitiationResult-ItemIEs} } - -X2ap-MeasurementInitiationResult-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-MeasurementInitiationResult-Item CRITICALITY ignore TYPE X2ap-MeasurementInitiationResult-Item PRESENCE mandatory} -} - - - -X2ap-MeasurementInitiationResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2ap-MeasurementFailureCause-List ::= SEQUENCE (SIZE (1..x2ap-maxFailedMeasObjects)) OF ProtocolIE-Single-Container { { X2ap-MeasurementFailureCause-ItemIEs} } - -X2ap-MeasurementFailureCause-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-MeasurementFailureCause-Item CRITICALITY ignore TYPE X2ap-MeasurementFailureCause-Item PRESENCE mandatory} -} - - -X2ap-MeasurementFailureCause-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - --- ************************************************************** --- --- Resource Status Failure --- --- ************************************************************** - -X2ap-ResourceStatusFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2ap-ResourceStatusFailure-IEs}}, - ... -} - -X2ap-ResourceStatusFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE X2ap-Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE X2ap-Measurement-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional}| - { ID id-CompleteFailureCauseInformation-List CRITICALITY ignore TYPE X2ap-CompleteFailureCauseInformation-List PRESENCE optional}, - ... -} - -X2ap-CompleteFailureCauseInformation-List ::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF ProtocolIE-Single-Container { {X2ap-CompleteFailureCauseInformation-ItemIEs} } - -X2ap-CompleteFailureCauseInformation-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-CompleteFailureCauseInformation-Item CRITICALITY ignore TYPE X2ap-CompleteFailureCauseInformation-Item PRESENCE mandatory} -} - -X2ap-CompleteFailureCauseInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - --- ************************************************************** --- --- Resource Status Update --- --- ************************************************************** - -X2ap-ResourceStatusUpdate ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2ap-ResourceStatusUpdate-IEs}}, - ... -} - -X2ap-ResourceStatusUpdate-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE X2ap-Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE X2ap-Measurement-ID PRESENCE mandatory}| - { ID id-CellMeasurementResult CRITICALITY ignore TYPE X2ap-CellMeasurementResult-List PRESENCE mandatory}, - ... -} - -X2ap-CellMeasurementResult-List ::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF ProtocolIE-Single-Container { {X2ap-CellMeasurementResult-ItemIEs} } - -X2ap-CellMeasurementResult-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-CellMeasurementResult-Item CRITICALITY ignore TYPE X2ap-CellMeasurementResult-Item PRESENCE mandatory } -} - -X2ap-CellMeasurementResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-CompositeAvailableCapacityGroup CRITICALITY ignore EXTENSION X2ap-CompositeAvailableCapacityGroup PRESENCE optional}| - { ID id-ABS-Status CRITICALITY ignore EXTENSION X2ap-ABS-Status PRESENCE optional}, - ... -} - - --- ************************************************************** --- --- PRIVATE MESSAGE --- --- ************************************************************** - -X2ap-PrivateMessage ::= SEQUENCE { - privateIEs PrivateIE-Container {{X2ap-PrivateMessage-IEs}}, - ... -} - -X2ap-PrivateMessage-IEs X2AP-PRIVATE-IES ::= { - ... -} - --- ************************************************************** --- --- MOBILITY CHANGE REQUEST --- --- ************************************************************** - -X2ap-MobilityChangeRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2ap-MobilityChangeRequest-IEs}}, - ... -} - -X2ap-MobilityChangeRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Cell-ID CRITICALITY reject TYPE X2ap-ECGI PRESENCE mandatory }| - { ID id-ENB2-Cell-ID CRITICALITY reject TYPE X2ap-ECGI PRESENCE mandatory }| - { ID id-ENB1-Mobility-Parameters CRITICALITY ignore TYPE X2ap-MobilityParametersInformation PRESENCE optional }| - { ID id-ENB2-Proposed-Mobility-Parameters CRITICALITY reject TYPE X2ap-MobilityParametersInformation PRESENCE mandatory }| - { ID id-Cause CRITICALITY reject TYPE X2ap-Cause PRESENCE mandatory }, - ... -} - --- ************************************************************** --- --- MOBILITY CHANGE ACKNOWLEDGE --- --- ************************************************************** - -X2ap-MobilityChangeAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2ap-MobilityChangeAcknowledge-IEs}}, - ... -} - -X2ap-MobilityChangeAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Cell-ID CRITICALITY reject TYPE X2ap-ECGI PRESENCE mandatory }| - { ID id-ENB2-Cell-ID CRITICALITY reject TYPE X2ap-ECGI PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - - --- ************************************************************** --- --- MOBILITY CHANGE FAILURE --- --- ************************************************************** - -X2ap-MobilityChangeFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2ap-MobilityChangeFailure-IEs}}, - ... -} - -X2ap-MobilityChangeFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Cell-ID CRITICALITY ignore TYPE X2ap-ECGI PRESENCE mandatory }| - { ID id-ENB2-Cell-ID CRITICALITY ignore TYPE X2ap-ECGI PRESENCE mandatory }| - { ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory }| - { ID id-ENB2-Mobility-Parameters-Modification-Range CRITICALITY ignore TYPE X2ap-MobilityParametersModificationRange PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- Radio Link Failure Indication --- --- ************************************************************** - -X2ap-RLFIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2ap-RLFIndication-IEs}}, - ... -} - -X2ap-RLFIndication-IEs X2AP-PROTOCOL-IES ::= { - { ID id-FailureCellPCI CRITICALITY ignore TYPE X2ap-PCI PRESENCE mandatory}| - { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE X2ap-ECGI PRESENCE mandatory}| - { ID id-FailureCellCRNTI CRITICALITY ignore TYPE X2ap-CRNTI PRESENCE mandatory}| - { ID id-ShortMAC-I CRITICALITY ignore TYPE X2ap-ShortMAC-I PRESENCE optional}| - { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE X2ap-UE-RLF-Report-Container PRESENCE optional}| - { ID id-RRCConnSetupIndicator CRITICALITY reject TYPE X2ap-RRCConnSetupIndicator PRESENCE optional}| - { ID id-RRCConnReestabIndicator CRITICALITY ignore TYPE X2ap-RRCConnReestabIndicator PRESENCE optional}, - ... -} - - --- ************************************************************** --- --- Cell Activation Request --- --- ************************************************************** - -X2ap-CellActivationRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2ap-CellActivationRequest-IEs}}, - ... -} - -X2ap-CellActivationRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ServedCellsToActivate CRITICALITY reject TYPE X2ap-ServedCellsToActivate PRESENCE mandatory }, - ... -} - -X2ap-ServedCellsToActivate::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF X2ap-ServedCellsToActivate-Item - - -X2ap-ServedCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - --- ************************************************************** --- --- Cell Activation Response --- --- ************************************************************** - -X2ap-CellActivationResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2ap-CellActivationResponse-IEs}}, - ... -} - -X2ap-CellActivationResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ActivatedCellList CRITICALITY ignore TYPE X2ap-ActivatedCellList PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - -X2ap-ActivatedCellList ::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF X2ap-ActivatedCellList-Item - - - -X2ap-ActivatedCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} - ---************************************************************** --- --- CELL ACTIVATION FAILURE --- --- ************************************************************** - -X2ap-CellActivationFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2ap-CellActivationFailure-IEs}}, - ... -} - -X2ap-CellActivationFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - -END diff --git a/openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU-Descriptions.asn b/openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU-Descriptions.asn deleted file mode 100755 index 9722ec8559..0000000000 --- a/openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU-Descriptions.asn +++ /dev/null @@ -1,243 +0,0 @@ --- ************************************************************** --- --- Elementary Procedure definitions --- --- ************************************************************** -X2AP-PDU-Descriptions { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Descriptions (0) } -DEFINITIONS AUTOMATIC TAGS ::= -BEGIN --- ************************************************************** --- --- IE parameter types from other modules. --- --- ************************************************************** -IMPORTS - X2ap-Criticality, - X2ap-ProcedureCode -FROM X2AP-CommonDataTypes - - X2ap-CellActivationRequest, - X2ap-CellActivationResponse, - X2ap-CellActivationFailure, - X2ap-ENBConfigurationUpdate, - X2ap-ENBConfigurationUpdateAcknowledge, - X2ap-ENBConfigurationUpdateFailure, - X2ap-ErrorIndication, - X2ap-HandoverCancel, - X2ap-HandoverReport, - X2ap-HandoverPreparationFailure, - X2ap-HandoverRequest, - X2ap-HandoverRequestAcknowledge, - X2ap-LoadInformation, - X2ap-PrivateMessage, - X2ap-ResetRequest, - X2ap-ResetResponse, - X2ap-ResourceStatusFailure, - X2ap-ResourceStatusRequest, - X2ap-ResourceStatusResponse, - X2ap-ResourceStatusUpdate, - X2ap-RLFIndication, - X2ap-SNStatusTransfer, - X2ap-UEContextRelease, - X2SetupFailure, X2SetupRequest, - X2SetupResponse, - X2ap-MobilityChangeRequest, - X2ap-MobilityChangeAcknowledge, - X2ap-MobilityChangeFailure -FROM X2AP-PDU-Contents - - id-cellActivation, - id-eNBConfigurationUpdate, - id-errorIndication, - id-handoverCancel, - id-handoverReport, - id-handoverPreparation, - id-loadIndication, - id-privateMessage, - id-reset, - id-resourceStatusReporting, - id-resourceStatusReportingInitiation, - id-rLFIndication, - id-snStatusTransfer, - id-uEContextRelease, - id-x2Setup, - id-mobilitySettingsChange -FROM X2AP-Constants; - --- ************************************************************** --- --- Interface Elementary Procedure Class --- --- ************************************************************** -X2AP-ELEMENTARY-PROCEDURE ::= CLASS { - &InitiatingMessage , - &SuccessfulOutcome OPTIONAL, - &UnsuccessfulOutcome OPTIONAL, - &procedureCode ProcedureCode UNIQUE, - &criticality Criticality DEFAULT ignore -} -WITH SYNTAX { - INITIATING MESSAGE &InitiatingMessage - [SUCCESSFUL OUTCOME &SuccessfulOutcome] - [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] - PROCEDURE CODE &procedureCode - [CRITICALITY &criticality] -} --- ************************************************************** --- --- Interface PDU Definition --- --- ************************************************************** -X2AP-PDU ::= CHOICE { - initiatingMessage InitiatingMessage, - successfulOutcome SuccessfulOutcome, - unsuccessfulOutcome UnsuccessfulOutcome, - ... -} -InitiatingMessage ::= SEQUENCE { - procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), - criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value X2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -SuccessfulOutcome ::= SEQUENCE { - procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), - criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value X2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -UnsuccessfulOutcome ::= SEQUENCE { - procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), - criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value X2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} --- ************************************************************** --- --- Interface Elementary Procedure List --- --- ************************************************************** -X2AP-ELEMENTARY-PROCEDURES X2AP-ELEMENTARY-PROCEDURE ::= { - X2AP-ELEMENTARY-PROCEDURES-CLASS-1 | - X2AP-ELEMENTARY-PROCEDURES-CLASS-2 , - ... -} -X2AP-ELEMENTARY-PROCEDURES-CLASS-1 X2AP-ELEMENTARY-PROCEDURE ::= { - handoverPreparation | - reset | - x2Setup | - resourceStatusReportingInitiation | - eNBConfigurationUpdate | - mobilitySettingsChange | - cellActivation , - ... -} -X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= { - snStatusTransfer | - uEContextRelease | - handoverCancel | - errorIndication | - resourceStatusReporting | - loadIndication | - privateMessage | - rLFIndication | handoverReport, - ... -} --- ************************************************************** --- --- Interface Elementary Procedures --- --- ************************************************************** -handoverPreparation X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE HandoverRequest - SUCCESSFUL OUTCOME HandoverRequestAcknowledge - UNSUCCESSFUL OUTCOME HandoverPreparationFailure - PROCEDURE CODE id-handoverPreparation - CRITICALITY reject -} -snStatusTransfer X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE SNStatusTransfer - PROCEDURE CODE id-snStatusTransfer - CRITICALITY ignore -} -uEContextRelease X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE UEContextRelease - PROCEDURE CODE id-uEContextRelease - CRITICALITY ignore -} -handoverCancel X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE HandoverCancel - PROCEDURE CODE id-handoverCancel - CRITICALITY ignore -} -handoverReport X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE HandoverReport - PROCEDURE CODE id-handoverReport - CRITICALITY ignore -} -errorIndication X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE ErrorIndication - PROCEDURE CODE id-errorIndication - CRITICALITY ignore -} -reset X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE ResetRequest - SUCCESSFUL OUTCOME ResetResponse - PROCEDURE CODE id-reset - CRITICALITY reject -} -x2Setup X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE X2SetupRequest - SUCCESSFUL OUTCOME X2SetupResponse - UNSUCCESSFUL OUTCOME X2SetupFailure - PROCEDURE CODE id-x2Setup - CRITICALITY reject -} -loadIndication X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE LoadInformation - PROCEDURE CODE id-loadIndication - CRITICALITY ignore -} -eNBConfigurationUpdate X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE ENBConfigurationUpdate - SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge - UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure - PROCEDURE CODE id-eNBConfigurationUpdate - CRITICALITY reject -} -resourceStatusReportingInitiation X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE ResourceStatusRequest - SUCCESSFUL OUTCOME ResourceStatusResponse - UNSUCCESSFUL OUTCOME ResourceStatusFailure - PROCEDURE CODE id-resourceStatusReportingInitiation - CRITICALITY reject -} -resourceStatusReporting X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE ResourceStatusUpdate - PROCEDURE CODE id-resourceStatusReporting - CRITICALITY ignore -} -rLFIndication X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE RLFIndication - PROCEDURE CODE id-rLFIndication - CRITICALITY ignore -} -privateMessage X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE PrivateMessage - PROCEDURE CODE id-privateMessage - CRITICALITY ignore -} -mobilitySettingsChange X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE MobilityChangeRequest - SUCCESSFUL OUTCOME MobilityChangeAcknowledge - UNSUCCESSFUL OUTCOME MobilityChangeFailure - PROCEDURE CODE id-mobilitySettingsChange - CRITICALITY reject -} -cellActivation X2AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE CellActivationRequest - SUCCESSFUL OUTCOME CellActivationResponse - UNSUCCESSFUL OUTCOME CellActivationFailure - PROCEDURE CODE id-cellActivation - CRITICALITY reject -} -END diff --git a/openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU.asn b/openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU.asn deleted file mode 100755 index 330c19b279..0000000000 --- a/openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU.asn +++ /dev/null @@ -1,199 +0,0 @@ --- ************************************************************** --- --- PDU definitions for X2AP. --- --- ************************************************************** - -X2AP-PDU { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU (1) } - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - -IMPORTS - - x2ap-maxProtocolIEs, - X2ap-Criticality, - X2ap-ProcedureCode, - X2ap-ProtocolIE-ID -FROM X2AP-CommonDataTypes; - -X2ap-IE ::= SEQUENCE { - id X2ap-ProtocolIE-ID, - criticality X2ap-Criticality, - value ANY -} - -X2AP-PDU ::= CHOICE { - initiatingMessage X2ap-InitiatingMessage, - successfulOutcome X2ap-SuccessfulOutcome, - unsuccessfulOutcome X2ap-UnsuccessfulOutcome, - ... -} - -X2ap-InitiatingMessage ::= SEQUENCE { - procedureCode X2ap-ProcedureCode, - criticality X2ap-Criticality, - value ANY -} - -X2ap-SuccessfulOutcome ::= SEQUENCE { - procedureCode X2ap-ProcedureCode, - criticality X2ap-Criticality, - value ANY -} - -X2ap-UnsuccessfulOutcome ::= SEQUENCE { - procedureCode X2ap-ProcedureCode, - criticality X2ap-Criticality, - value ANY -} - -X2ap-HandoverRequest ::= SEQUENCE { - x2ap-HandoverRequest-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2ap-HandoverRequestAcknowledge ::= SEQUENCE { - x2ap-HandoverRequestAcknowledge-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2ap-HandoverPreparationFailure ::= SEQUENCE { - x2ap-HandoverPreparationFailure-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2ap-SNStatusTransfer ::= SEQUENCE { - x2ap-SNStatusTransfer-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2ap-UEContextRelease ::= SEQUENCE { - x2ap-UEContextRelease-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2ap-HandoverCancel ::= SEQUENCE { - x2ap-HandoverCancel-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2ap-HandoverReport ::= SEQUENCE { - x2ap-HandoverReport-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2ap-ErrorIndication ::= SEQUENCE { - x2ap-ErrorIndication-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2ap-ResetRequest ::= SEQUENCE { - x2ap-ResetRequest-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2ap-ResetResponse ::= SEQUENCE { - x2ap-ResetResponse-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2SetupRequest ::= SEQUENCE { - x2SetupRequest-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2SetupResponse ::= SEQUENCE { - x2SetupResponse-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2SetupFailure ::= SEQUENCE { - x2SetupFailure-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2ap-LoadInformation ::= SEQUENCE { - x2ap-LoadInformation-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2ap-ENBConfigurationUpdate ::= SEQUENCE { - x2ap-ENBConfigurationUpdate-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2ap-ENBConfigurationUpdateAcknowledge ::= SEQUENCE { - x2ap-ENBConfigurationUpdateAcknowledge-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2ap-ENBConfigurationUpdateFailure ::= SEQUENCE { - x2ap-ENBConfigurationUpdateFailure-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2ap-ResourceStatusRequest ::= SEQUENCE { - x2ap-ResourceStatusRequest-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2ap-ResourceStatusResponse ::= SEQUENCE { - x2ap-ResourceStatusResponse-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2ap-ResourceStatusFailure ::= SEQUENCE { - x2ap-ResourceStatusFailure-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2ap-ResourceStatusUpdate ::= SEQUENCE { - x2ap-ResourceStatusUpdate-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2ap-RLFIndication ::= SEQUENCE { - x2ap-RLFIndication-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2ap-PrivateMessage ::= SEQUENCE { - x2ap-PrivateMessage-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2ap-MobilityChangeRequest ::= SEQUENCE { - x2ap-MobilityChangeRequest-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2ap-MobilityChangeAcknowledge ::= SEQUENCE { - x2ap-MobilityChangeAcknowledge-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2ap-MobilityChangeFailure ::= SEQUENCE { - x2ap-MobilityChangeFailure-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2ap-CellActivationRequest ::= SEQUENCE { - x2ap-CellActivationRequest-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2ap-CellActivationResponse ::= SEQUENCE { - x2ap-CellActivationResponse-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -X2ap-CellActivationFailure ::= SEQUENCE { - x2ap-CellActivationFailure-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE, - ... -} - -END diff --git a/openair2/X2AP/MESSAGES/ASN1/R11/x2ap-11.9.0.asn1 b/openair2/X2AP/MESSAGES/ASN1/R11/x2ap-11.9.0.asn1 new file mode 100755 index 0000000000..ad91af5453 --- /dev/null +++ b/openair2/X2AP/MESSAGES/ASN1/R11/x2ap-11.9.0.asn1 @@ -0,0 +1,3096 @@ +-- ************************************************************** +-- +-- Elementary Procedure definitions +-- +-- ************************************************************** + +X2AP-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Descriptions (0) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + ProcedureCode +FROM X2AP-CommonDataTypes + + + CellActivationRequest, + CellActivationResponse, + CellActivationFailure, + ENBConfigurationUpdate, + ENBConfigurationUpdateAcknowledge, + ENBConfigurationUpdateFailure, + ErrorIndication, + HandoverCancel, + HandoverReport, + HandoverPreparationFailure, + HandoverRequest, + HandoverRequestAcknowledge, + LoadInformation, + PrivateMessage, + ResetRequest, + ResetResponse, + ResourceStatusFailure, + ResourceStatusRequest, + ResourceStatusResponse, + ResourceStatusUpdate, + RLFIndication, + SNStatusTransfer, + UEContextRelease, + X2SetupFailure, + X2SetupRequest, + X2SetupResponse, + MobilityChangeRequest, + MobilityChangeAcknowledge, + MobilityChangeFailure + + + +FROM X2AP-PDU-Contents + + id-cellActivation, + id-eNBConfigurationUpdate, + id-errorIndication, + id-handoverCancel, + id-handoverReport, + id-handoverPreparation, + + id-loadIndication, + id-privateMessage, + id-reset, + + id-resourceStatusReporting, + id-resourceStatusReportingInitiation, + id-rLFIndication, + id-snStatusTransfer, + id-uEContextRelease, + id-x2Setup, + id-mobilitySettingsChange + + + + +FROM X2AP-Constants; + +-- ************************************************************** +-- +-- Interface Elementary Procedure Class +-- +-- ************************************************************** + +X2AP-ELEMENTARY-PROCEDURE ::= CLASS { + &InitiatingMessage , + &SuccessfulOutcome OPTIONAL, + &UnsuccessfulOutcome OPTIONAL, + &procedureCode ProcedureCode UNIQUE, + &criticality Criticality DEFAULT ignore +} +WITH SYNTAX { + INITIATING MESSAGE &InitiatingMessage + [SUCCESSFUL OUTCOME &SuccessfulOutcome] + [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] + PROCEDURE CODE &procedureCode + [CRITICALITY &criticality] +} + +-- ************************************************************** +-- +-- Interface PDU Definition +-- +-- ************************************************************** + +X2AP-PDU ::= CHOICE { + initiatingMessage InitiatingMessage, + successfulOutcome SuccessfulOutcome, + unsuccessfulOutcome UnsuccessfulOutcome, + ... +} + +InitiatingMessage ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +SuccessfulOutcome ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +UnsuccessfulOutcome ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + + +-- ************************************************************** +-- +-- Interface Elementary Procedure List +-- +-- ************************************************************** + +X2AP-ELEMENTARY-PROCEDURES X2AP-ELEMENTARY-PROCEDURE ::= { + X2AP-ELEMENTARY-PROCEDURES-CLASS-1 | + X2AP-ELEMENTARY-PROCEDURES-CLASS-2 , + ... +} + +X2AP-ELEMENTARY-PROCEDURES-CLASS-1 X2AP-ELEMENTARY-PROCEDURE ::= { + handoverPreparation | + reset | + x2Setup | + resourceStatusReportingInitiation | + eNBConfigurationUpdate | + mobilitySettingsChange | + cellActivation , + ... +} + +X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= { + snStatusTransfer | + uEContextRelease | + handoverCancel | + errorIndication | + resourceStatusReporting | + loadIndication | + privateMessage | + rLFIndication | handoverReport, + ... + +} + + +-- ************************************************************** +-- +-- Interface Elementary Procedures +-- +-- ************************************************************** + +handoverPreparation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequest + SUCCESSFUL OUTCOME HandoverRequestAcknowledge + UNSUCCESSFUL OUTCOME HandoverPreparationFailure + PROCEDURE CODE id-handoverPreparation + CRITICALITY reject +} + +snStatusTransfer X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SNStatusTransfer + PROCEDURE CODE id-snStatusTransfer + CRITICALITY ignore +} + +uEContextRelease X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextRelease + PROCEDURE CODE id-uEContextRelease + CRITICALITY ignore +} + + +handoverCancel X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverCancel + PROCEDURE CODE id-handoverCancel + CRITICALITY ignore +} + +handoverReport X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverReport + PROCEDURE CODE id-handoverReport + CRITICALITY ignore +} + +errorIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ErrorIndication + PROCEDURE CODE id-errorIndication + CRITICALITY ignore +} + +reset X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResetRequest + SUCCESSFUL OUTCOME ResetResponse + PROCEDURE CODE id-reset + CRITICALITY reject +} + +x2Setup X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE X2SetupRequest + SUCCESSFUL OUTCOME X2SetupResponse + UNSUCCESSFUL OUTCOME X2SetupFailure + PROCEDURE CODE id-x2Setup + CRITICALITY reject +} + + +loadIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LoadInformation + PROCEDURE CODE id-loadIndication + CRITICALITY ignore +} + +eNBConfigurationUpdate X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationUpdate + SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure + PROCEDURE CODE id-eNBConfigurationUpdate + CRITICALITY reject +} + +resourceStatusReportingInitiation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResourceStatusRequest + SUCCESSFUL OUTCOME ResourceStatusResponse + UNSUCCESSFUL OUTCOME ResourceStatusFailure + PROCEDURE CODE id-resourceStatusReportingInitiation + CRITICALITY reject +} + +resourceStatusReporting X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResourceStatusUpdate + PROCEDURE CODE id-resourceStatusReporting + CRITICALITY ignore +} + +rLFIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RLFIndication + PROCEDURE CODE id-rLFIndication + CRITICALITY ignore +} + +privateMessage X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PrivateMessage + PROCEDURE CODE id-privateMessage + CRITICALITY ignore +} + +mobilitySettingsChange X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MobilityChangeRequest + SUCCESSFUL OUTCOME MobilityChangeAcknowledge + UNSUCCESSFUL OUTCOME MobilityChangeFailure + PROCEDURE CODE id-mobilitySettingsChange + CRITICALITY reject +} + +cellActivation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE CellActivationRequest + SUCCESSFUL OUTCOME CellActivationResponse + UNSUCCESSFUL OUTCOME CellActivationFailure + PROCEDURE CODE id-cellActivation + CRITICALITY reject +} + + +END + + +-- ************************************************************** +-- +-- PDU definitions for X2AP. +-- +-- ************************************************************** + +X2AP-PDU-Contents { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Contents (1) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + ABSInformation, + ABS-Status, + AS-SecurityInformation, + Cause, + CompositeAvailableCapacityGroup, + COUNTvalue, + CriticalityDiagnostics, + CRNTI, + CSGMembershipStatus, + CSG-Id, + DeactivationIndication, + DL-Forwarding, + ECGI, + E-RAB-ID, + E-RAB-Level-QoS-Parameters, + E-RAB-List, + EUTRANTraceID, + GlobalENB-ID, + GTPtunnelEndpoint, + GUGroupIDList, + GUMMEI, + HandoverReportType, + HandoverRestrictionList, + InvokeIndication, + LocationReportingInformation, + MDT-Configuration, + ManagementBasedMDTallowed, + MDTPLMNList, + Neighbour-Information, + PCI, + PDCP-SN, + PLMN-Identity, + ReceiveStatusofULPDCPSDUs, + Registration-Request, + RelativeNarrowbandTxPower, + RadioResourceStatus, + RRCConnReestabIndicator, + RRCConnSetupIndicator, + UE-RLF-Report-Container, + RRC-Context, + ServedCell-Information, + ServedCells, + ShortMAC-I, + SRVCCOperationPossible, + SubscriberProfileIDforRFP, + TargetCellInUTRAN, + TargeteNBtoSource-eNBTransparentContainer, + TimeToWait, + TraceActivation, + TraceDepth, + + TransportLayerAddress, + UEAggregateMaximumBitRate, + UE-HistoryInformation, + UE-S1AP-ID, + UESecurityCapabilities, + UE-X2AP-ID, + UL-HighInterferenceIndicationInfo, + UL-InterferenceOverloadIndication, + HWLoadIndicator, + S1TNLLoadIndicator, + Measurement-ID, + ReportCharacteristics, + MobilityParametersInformation, + MobilityParametersModificationRange, + ReceiveStatusOfULPDCPSDUsExtended, + COUNTValueExtended + + + + +FROM X2AP-IEs + + PrivateIE-Container{}, + ProtocolExtensionContainer{}, + ProtocolIE-Container{}, + ProtocolIE-ContainerList{}, + ProtocolIE-ContainerPair{}, + ProtocolIE-ContainerPairList{}, + ProtocolIE-Single-Container{}, + X2AP-PRIVATE-IES, + X2AP-PROTOCOL-EXTENSION, + X2AP-PROTOCOL-IES, + X2AP-PROTOCOL-IES-PAIR +FROM X2AP-Containers + + id-ABSInformation, + id-ActivatedCellList, + id-Cause, + id-CellInformation, + id-CellInformation-Item, + id-CellMeasurementResult, + id-CellMeasurementResult-Item, + id-CellToReport, + id-CellToReport-Item, + id-CompositeAvailableCapacityGroup, + id-CriticalityDiagnostics, + id-DeactivationIndication, + id-E-RABs-Admitted-Item, + id-E-RABs-Admitted-List, + id-E-RABs-NotAdmitted-List, + id-E-RABs-SubjectToStatusTransfer-List, + id-E-RABs-SubjectToStatusTransfer-Item, + id-E-RABs-ToBeSetup-Item, + id-GlobalENB-ID, + id-GUGroupIDList, + id-GUGroupIDToAddList, + id-GUGroupIDToDeleteList, + id-GUMMEI-ID, + id-InvokeIndication, + id-New-eNB-UE-X2AP-ID, + id-Old-eNB-UE-X2AP-ID, + id-Registration-Request, + id-ReportingPeriodicity, + id-ServedCells, + id-ServedCellsToActivate, + id-ServedCellsToAdd, + id-ServedCellsToModify, + id-ServedCellsToDelete, + id-SRVCCOperationPossible, + id-TargetCell-ID, + id-TargeteNBtoSource-eNBTransparentContainer, + id-TimeToWait, + id-TraceActivation, + id-UE-ContextInformation, + id-UE-HistoryInformation, + id-UE-X2AP-ID, + id-Measurement-ID, + id-ReportCharacteristics, + id-ENB1-Measurement-ID, + id-ENB2-Measurement-ID, + id-ENB1-Cell-ID, + id-ENB2-Cell-ID, + id-ENB2-Proposed-Mobility-Parameters, + id-ENB1-Mobility-Parameters, + id-ENB2-Mobility-Parameters-Modification-Range, + id-FailureCellPCI, + id-Re-establishmentCellECGI, + id-FailureCellCRNTI, + id-ShortMAC-I, + id-SourceCellECGI, + id-FailureCellECGI, + id-HandoverReportType, + id-UE-RLF-Report-Container, + id-PartialSuccessIndicator, + id-MeasurementInitiationResult-List, + id-MeasurementInitiationResult-Item, + id-MeasurementFailureCause-Item, + id-CompleteFailureCauseInformation-List, + id-CompleteFailureCauseInformation-Item, + id-CSGMembershipStatus, + id-CSG-Id, + id-MDTConfiguration, + id-ManagementBasedMDTallowed, + id-ABS-Status, + id-RRCConnSetupIndicator, + id-RRCConnReestabIndicator, + id-TargetCellInUTRAN, + id-MobilityInformation, + id-SourceCellCRNTI, + id-ManagementBasedMDTPLMNList, + id-ReceiveStatusOfULPDCPSDUsExtended, + id-ULCOUNTValueExtended, + id-DLCOUNTValueExtended, + + maxCellineNB, + maxnoofBearers, + maxnoofPDCP-SN, + maxFailedMeasObjects, + maxnoofCellIDforMDT, + maxnoofTAforMDT + +FROM X2AP-Constants; + +-- ************************************************************** +-- +-- HANDOVER REQUEST +-- +-- ************************************************************** + +HandoverRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverRequest-IEs}}, + ... +} + +HandoverRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-TargetCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory}| + { ID id-UE-ContextInformation CRITICALITY reject TYPE UE-ContextInformation PRESENCE mandatory}| + { ID id-UE-HistoryInformation CRITICALITY ignore TYPE UE-HistoryInformation PRESENCE mandatory}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-MobilityInformation CRITICALITY ignore TYPE MobilityInformation PRESENCE optional}, + ... +} + +UE-ContextInformation ::= SEQUENCE { + mME-UE-S1AP-ID UE-S1AP-ID, + uESecurityCapabilities UESecurityCapabilities, + aS-SecurityInformation AS-SecurityInformation, + uEaggregateMaximumBitRate UEAggregateMaximumBitRate, + subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, + e-RABs-ToBeSetup-List E-RABs-ToBeSetup-List, + rRC-Context RRC-Context, + handoverRestrictionList HandoverRestrictionList OPTIONAL, + locationReportingInformation LocationReportingInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {UE-ContextInformation-ExtIEs} } OPTIONAL, + ... +} + +UE-ContextInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-ManagementBasedMDTallowed CRITICALITY ignore EXTENSION ManagementBasedMDTallowed PRESENCE optional }| +{ ID id-ManagementBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional }, + ... +} + +E-RABs-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetup-ItemIEs} } + +E-RABs-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeSetup-Item CRITICALITY ignore TYPE E-RABs-ToBeSetup-Item PRESENCE mandatory }, + ... +} + +E-RABs-ToBeSetup-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + dL-Forwarding DL-Forwarding OPTIONAL, + uL-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetup-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeSetup-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +MobilityInformation ::= BIT STRING (SIZE(32)) + + +-- ************************************************************** +-- +-- HANDOVER REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +HandoverRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverRequestAcknowledge-IEs}}, + ... +} + +HandoverRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-E-RABs-Admitted-List CRITICALITY ignore TYPE E-RABs-Admitted-List PRESENCE mandatory} | + { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional} | + { ID id-TargeteNBtoSource-eNBTransparentContainer CRITICALITY ignore TYPE TargeteNBtoSource-eNBTransparentContainer PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +E-RABs-Admitted-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ItemIEs} } + +E-RABs-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-Item CRITICALITY ignore TYPE E-RABs-Admitted-Item PRESENCE mandatory } +} + +E-RABs-Admitted-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, + dL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-Item-ExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- HANDOVER PREPARATION FAILURE +-- +-- ************************************************************** + +HandoverPreparationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverPreparationFailure-IEs}}, + ... +} + +HandoverPreparationFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + + ... +} + +-- ************************************************************** +-- +-- Handover Report +-- +-- ************************************************************** + +HandoverReport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverReport-IEs}}, + ... +} + +HandoverReport-IEs X2AP-PROTOCOL-IES ::= { + { ID id-HandoverReportType CRITICALITY ignore TYPE HandoverReportType PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-SourceCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-FailureCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to “HO to Wrong Cell” -- | + { ID id-TargetCellInUTRAN CRITICALITY ignore TYPE TargetCellInUTRAN PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to "InterRAT ping-pong" --| + { ID id-SourceCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE optional}| + { ID id-MobilityInformation CRITICALITY ignore TYPE MobilityInformation PRESENCE optional}| + { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SN Status Transfer +-- +-- ************************************************************** + +SNStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SNStatusTransfer-IEs}}, + ... +} + +SNStatusTransfer-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-E-RABs-SubjectToStatusTransfer-List CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-List PRESENCE mandatory} , + ... +} + +E-RABs-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { { E-RABs-SubjectToStatusTransfer-ItemIEs} } + +E-RABs-SubjectToStatusTransfer-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-Item PRESENCE mandatory } +} + +E-RABs-SubjectToStatusTransfer-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + + receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, + uL-COUNTvalue COUNTvalue, + dL-COUNTvalue COUNTvalue, + iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-SubjectToStatusTransfer-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-ReceiveStatusOfULPDCPSDUsExtended CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsExtended PRESENCE optional}| + { ID id-ULCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| + { ID id-DLCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}, + ... +} + + + + + +-- ************************************************************** +-- +-- UE Context Release +-- +-- ************************************************************** + +UEContextRelease ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextRelease-IEs}}, + ... +} + +UEContextRelease-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} , + ... +} + + +-- ************************************************************** +-- +-- HANDOVER CANCEL +-- +-- ************************************************************** + +HandoverCancel ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverCancel-IEs}}, + ... +} + +HandoverCancel-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} , + ... +} + +-- ************************************************************** +-- +-- ERROR INDICATION +-- +-- ************************************************************** + +ErrorIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}}, + ... +} + +ErrorIndication-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} | + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional} , + ... +} + +-- ************************************************************** +-- +-- Reset Request +-- +-- ************************************************************** + +ResetRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResetRequest-IEs}}, + ... +} + +ResetRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Reset Response +-- +-- ************************************************************** + +ResetResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResetResponse-IEs}}, + ... +} + +ResetResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- X2 SETUP REQUEST +-- +-- ************************************************************** + +X2SetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupRequest-IEs}}, + ... +} + +X2SetupRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory} | + { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory} | + { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}, +... +} + + + +-- ************************************************************** +-- +-- X2 SETUP RESPONSE +-- +-- ************************************************************** + +X2SetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupResponse-IEs}}, + ... +} + +X2SetupResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory} | + { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory} | + { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + + +-- ************************************************************** +-- +-- X2 SETUP FAILURE +-- +-- ************************************************************** + +X2SetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupFailure-IEs}}, + ... +} + +X2SetupFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + + ... +} + + + +-- ************************************************************** +-- +-- LOAD INFORMATION +-- +-- ************************************************************** + +LoadInformation ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{LoadInformation-IEs}}, + ... +} + +LoadInformation-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CellInformation CRITICALITY ignore TYPE CellInformation-List PRESENCE mandatory} , + ... +} + +CellInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellInformation-ItemIEs} } + +CellInformation-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellInformation-Item CRITICALITY ignore TYPE CellInformation-Item PRESENCE mandatory } +} + +CellInformation-Item ::= SEQUENCE { + cell-ID ECGI, + ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication OPTIONAL, + ul-HighInterferenceIndicationInfo UL-HighInterferenceIndicationInfo OPTIONAL, + relativeNarrowbandTxPower RelativeNarrowbandTxPower OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CellInformation-Item-ExtIEs} } OPTIONAL, + ... +} + +CellInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-ABSInformation CRITICALITY ignore EXTENSION ABSInformation PRESENCE optional }| +{ ID id-InvokeIndication CRITICALITY ignore EXTENSION InvokeIndication PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE +-- +-- ************************************************************** + +ENBConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdate-IEs}}, + ... +} + +ENBConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ServedCellsToAdd CRITICALITY reject TYPE ServedCells PRESENCE optional} | + { ID id-ServedCellsToModify CRITICALITY reject TYPE ServedCellsToModify PRESENCE optional} | + { ID id-ServedCellsToDelete CRITICALITY reject TYPE Old-ECGIs PRESENCE optional} | + { ID id-GUGroupIDToAddList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional} | + { ID id-GUGroupIDToDeleteList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}, + ... +} + +ServedCellsToModify::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToModify-Item + +ServedCellsToModify-Item::= SEQUENCE { + old-ecgi ECGI, + servedCellInfo ServedCell-Information, + neighbour-Info Neighbour-Information OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ServedCellsToModify-Item-ExtIEs} } OPTIONAL, + ... +} + +ServedCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-DeactivationIndication CRITICALITY ignore EXTENSION DeactivationIndication PRESENCE optional }, + ... +} + + +Old-ECGIs::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE ACKNOWLEDGE +-- +-- ************************************************************** + +ENBConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateAcknowledge-IEs}}, + ... +} + +ENBConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, +... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE FAIURE +-- +-- ************************************************************** + +ENBConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateFailure-IEs}}, + ... +} + +ENBConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + + +-- ************************************************************** +-- +-- Resource Status Request +-- +-- ************************************************************** + +ResourceStatusRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusRequest-IEs}}, + ... +} + +ResourceStatusRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY ignore TYPE Measurement-ID PRESENCE conditional}|-- The IE shall be present if the Registration Request IE is set to “Stop”-- + { ID id-Registration-Request CRITICALITY reject TYPE Registration-Request PRESENCE mandatory}| + { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE optional}| + { ID id-CellToReport CRITICALITY ignore TYPE CellToReport-List PRESENCE mandatory}| + { ID id-ReportingPeriodicity CRITICALITY ignore TYPE ReportingPeriodicity PRESENCE optional}| + { ID id-PartialSuccessIndicator CRITICALITY ignore TYPE PartialSuccessIndicator PRESENCE optional}, + ... +} + + +CellToReport-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellToReport-ItemIEs} } + +CellToReport-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellToReport-Item CRITICALITY ignore TYPE CellToReport-Item PRESENCE mandatory } +} + +CellToReport-Item ::= SEQUENCE { + cell-ID ECGI, + iE-Extensions ProtocolExtensionContainer { {CellToReport-Item-ExtIEs} } OPTIONAL, + ... +} + +CellToReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +ReportingPeriodicity ::= ENUMERATED { + one-thousand-ms, + two-thousand-ms, + five-thousand-ms, + ten-thousand-ms, +... +} + +PartialSuccessIndicator ::= ENUMERATED { + partial-success-allowed, +... +} + +-- ************************************************************** +-- +-- Resource Status Response +-- +-- ************************************************************** + +ResourceStatusResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusResponse-IEs}}, + ... +} + +ResourceStatusResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeasurementInitiationResult-List CRITICALITY ignore TYPE MeasurementInitiationResult-List PRESENCE optional}, + ... +} + + +MeasurementInitiationResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { { MeasurementInitiationResult-ItemIEs} } + +MeasurementInitiationResult-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-MeasurementInitiationResult-Item CRITICALITY ignore TYPE MeasurementInitiationResult-Item PRESENCE mandatory} +} + +MeasurementInitiationResult-Item ::= SEQUENCE { + cell-ID ECGI, + measurementFailureCause-List MeasurementFailureCause-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { MeasurementInitiationResult-Item-ExtIEs} } OPTIONAL, + ... +} + +MeasurementInitiationResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +MeasurementFailureCause-List ::= SEQUENCE (SIZE (1..maxFailedMeasObjects)) OF ProtocolIE-Single-Container { { MeasurementFailureCause-ItemIEs} } + +MeasurementFailureCause-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-MeasurementFailureCause-Item CRITICALITY ignore TYPE MeasurementFailureCause-Item PRESENCE mandatory} +} + +MeasurementFailureCause-Item ::= SEQUENCE { + measurementFailedReportCharacteristics ReportCharacteristics, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { MeasurementFailureCause-Item-ExtIEs} } OPTIONAL, + ... +} + +MeasurementFailureCause-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Resource Status Failure +-- +-- ************************************************************** + +ResourceStatusFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusFailure-IEs}}, + ... +} + +ResourceStatusFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-CompleteFailureCauseInformation-List CRITICALITY ignore TYPE CompleteFailureCauseInformation-List PRESENCE optional}, + ... +} + +CompleteFailureCauseInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CompleteFailureCauseInformation-ItemIEs} } + +CompleteFailureCauseInformation-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CompleteFailureCauseInformation-Item CRITICALITY ignore TYPE CompleteFailureCauseInformation-Item PRESENCE mandatory} +} + +CompleteFailureCauseInformation-Item ::= SEQUENCE { + cell-ID ECGI, + measurementFailureCause-List MeasurementFailureCause-List, + iE-Extensions ProtocolExtensionContainer { { CompleteFailureCauseInformation-Item-ExtIEs} } OPTIONAL, + ... +} + +CompleteFailureCauseInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Resource Status Update +-- +-- ************************************************************** + +ResourceStatusUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusUpdate-IEs}}, + ... +} + +ResourceStatusUpdate-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-CellMeasurementResult CRITICALITY ignore TYPE CellMeasurementResult-List PRESENCE mandatory}, + ... +} + +CellMeasurementResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellMeasurementResult-ItemIEs} } + +CellMeasurementResult-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellMeasurementResult-Item CRITICALITY ignore TYPE CellMeasurementResult-Item PRESENCE mandatory } +} + +CellMeasurementResult-Item ::= SEQUENCE { + cell-ID ECGI, + hWLoadIndicator HWLoadIndicator OPTIONAL, + s1TNLLoadIndicator S1TNLLoadIndicator OPTIONAL, + radioResourceStatus RadioResourceStatus OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CellMeasurementResult-Item-ExtIEs} } OPTIONAL, + ... +} + +CellMeasurementResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-CompositeAvailableCapacityGroup CRITICALITY ignore EXTENSION CompositeAvailableCapacityGroup PRESENCE optional}| + { ID id-ABS-Status CRITICALITY ignore EXTENSION ABS-Status PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- PRIVATE MESSAGE +-- +-- ************************************************************** + +PrivateMessage ::= SEQUENCE { + privateIEs PrivateIE-Container {{PrivateMessage-IEs}}, + ... +} + +PrivateMessage-IEs X2AP-PRIVATE-IES ::= { + ... +} + +-- ************************************************************** +-- +-- MOBILITY CHANGE REQUEST +-- +-- ************************************************************** + +MobilityChangeRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{MobilityChangeRequest-IEs}}, + ... +} + +MobilityChangeRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }| + { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }| + { ID id-ENB1-Mobility-Parameters CRITICALITY ignore TYPE MobilityParametersInformation PRESENCE optional }| + { ID id-ENB2-Proposed-Mobility-Parameters CRITICALITY reject TYPE MobilityParametersInformation PRESENCE mandatory }| + { ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- MOBILITY CHANGE ACKNOWLEDGE +-- +-- ************************************************************** + +MobilityChangeAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{MobilityChangeAcknowledge-IEs}}, + ... +} + +MobilityChangeAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }| + { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- MOBILITY CHANGE FAILURE +-- +-- ************************************************************** + +MobilityChangeFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{MobilityChangeFailure-IEs}}, + ... +} + +MobilityChangeFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory }| + { ID id-ENB2-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-ENB2-Mobility-Parameters-Modification-Range CRITICALITY ignore TYPE MobilityParametersModificationRange PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- Radio Link Failure Indication +-- +-- ************************************************************** + +RLFIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RLFIndication-IEs}}, + ... +} + +RLFIndication-IEs X2AP-PROTOCOL-IES ::= { + { ID id-FailureCellPCI CRITICALITY ignore TYPE PCI PRESENCE mandatory}| + { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-FailureCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE mandatory}| + { ID id-ShortMAC-I CRITICALITY ignore TYPE ShortMAC-I PRESENCE optional}| + { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}| + { ID id-RRCConnSetupIndicator CRITICALITY reject TYPE RRCConnSetupIndicator PRESENCE optional}| + { ID id-RRCConnReestabIndicator CRITICALITY ignore TYPE RRCConnReestabIndicator PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- Cell Activation Request +-- +-- ************************************************************** + +CellActivationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationRequest-IEs}}, + ... +} + +CellActivationRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ServedCellsToActivate CRITICALITY reject TYPE ServedCellsToActivate PRESENCE mandatory }, + ... +} + +ServedCellsToActivate::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToActivate-Item + +ServedCellsToActivate-Item::= SEQUENCE { + ecgi ECGI, + iE-Extensions ProtocolExtensionContainer { { ServedCellsToActivate-Item-ExtIEs} } OPTIONAL, + ... +} + +ServedCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Cell Activation Response +-- +-- ************************************************************** + +CellActivationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationResponse-IEs}}, + ... +} + +CellActivationResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ActivatedCellList CRITICALITY ignore TYPE ActivatedCellList PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +ActivatedCellList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ActivatedCellList-Item + +ActivatedCellList-Item::= SEQUENCE { + ecgi ECGI, + iE-Extensions ProtocolExtensionContainer { { ActivatedCellList-Item-ExtIEs} } OPTIONAL, + ... +} + +ActivatedCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +--************************************************************** +-- +-- CELL ACTIVATION FAILURE +-- +-- ************************************************************** + +CellActivationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationFailure-IEs}}, + ... +} + +CellActivationFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +END + + +-- ************************************************************** +-- +-- Information Element Definitions +-- +-- ************************************************************** + +X2AP-IEs { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-IEs (2) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + + id-E-RAB-Item, + id-Number-of-Antennaports, + id-MBSFN-Subframe-Info, + id-PRACH-Configuration, + id-CSG-Id, + id-MDTConfiguration, + id-SignallingBasedMDTPLMNList, + id-MultibandInfoList, + id-NeighbourTAC, + id-Time-UE-StayedInCell-EnhancedGranularity, + id-MBMS-Service-Area-List, + id-HO-cause, + id-eARFCNExtension, + id-DL-EARFCNExtension, + id-UL-EARFCNExtension, + id-M3Configuration, + id-M4Configuration, + id-M5Configuration, + id-MDT-Location-Info, + id-AdditionalSpecialSubframe-Info, + maxnoofBearers, + maxCellineNB, + maxEARFCN, + maxEARFCNPlusOne, + newmaxEARFCN, + maxInterfaces, + + maxnoofBands, + maxnoofBPLMNs, + maxnoofCells, + maxnoofEPLMNs, + maxnoofEPLMNsPlusOne, + maxnoofForbLACs, + maxnoofForbTACs, + maxnoofNeighbours, + maxnoofPRBs, + maxNrOfErrors, + maxPools, + maxnoofMBSFN, + maxnoofTAforMDT, + maxnoofCellIDforMDT, + maxnoofMBMSServiceAreaIdentities, + maxnoofMDTPLMNs + +FROM X2AP-Constants + + Criticality, + ProcedureCode, + ProtocolIE-ID, + TriggeringMessage +FROM X2AP-CommonDataTypes + + ProtocolExtensionContainer{}, + ProtocolIE-Single-Container{}, + + X2AP-PROTOCOL-EXTENSION, + X2AP-PROTOCOL-IES +FROM X2AP-Containers; + +-- A + +ABSInformation ::= CHOICE { + fdd ABSInformationFDD, + tdd ABSInformationTDD, + abs-inactive NULL, + ... +} + +ABSInformationFDD ::= SEQUENCE { + abs-pattern-info BIT STRING (SIZE(40)), + numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, + measurement-subset BIT STRING (SIZE(40)), + iE-Extensions ProtocolExtensionContainer { { ABSInformationFDD-ExtIEs} } OPTIONAL, + ... +} + +ABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ABSInformationTDD ::= SEQUENCE { + abs-pattern-info BIT STRING (SIZE(1..70, ...)), + numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, + measurement-subset BIT STRING (SIZE(1..70, ...)), + iE-Extensions ProtocolExtensionContainer { { ABSInformationTDD-ExtIEs} } OPTIONAL, + ... +} + +ABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ABS-Status ::= SEQUENCE { + dL-ABS-status DL-ABS-status, + usableABSInformation UsableABSInformation, + iE-Extensions ProtocolExtensionContainer { {ABS-Status-ExtIEs} } OPTIONAL, + ... +} + +ABS-Status-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +DL-ABS-status::= INTEGER (0..100) + +AdditionalSpecialSubframe-Info ::= SEQUENCE { + additionalspecialSubframePatterns AdditionalSpecialSubframePatterns, + cyclicPrefixDL CyclicPrefixDL, + cyclicPrefixUL CyclicPrefixUL, + iE-Extensions ProtocolExtensionContainer { { AdditionalSpecialSubframe-Info-ExtIEs} } OPTIONAL, + ... +} + +AdditionalSpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +AdditionalSpecialSubframePatterns ::= ENUMERATED { + ssp0, + ssp1, + ssp2, + ssp3, + ssp4, + ssp5, + ssp6, + ssp7, + ssp8, + ssp9, + ... +} + +AS-SecurityInformation ::= SEQUENCE { + key-eNodeB-star Key-eNodeB-Star, + nextHopChainingCount NextHopChainingCount, + iE-Extensions ProtocolExtensionContainer { { AS-SecurityInformation-ExtIEs} } OPTIONAL, + ... +} + +AS-SecurityInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +AllocationAndRetentionPriority ::= SEQUENCE { + priorityLevel PriorityLevel, + pre-emptionCapability Pre-emptionCapability, + pre-emptionVulnerability Pre-emptionVulnerability, + iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, + ... +} + +AllocationAndRetentionPriority-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +AreaScopeOfMDT ::= CHOICE { + cellBased CellBasedMDT, + tABased TABasedMDT, + pLMNWide NULL, + ..., + tAIBased TAIBasedMDT +} + +-- B + + +BitRate ::= INTEGER (0..10000000000) +BroadcastPLMNs-Item ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF PLMN-Identity + + +-- C + +CapacityValue ::= INTEGER (0..100) + +CellCapacityClassValue ::= INTEGER (1..100, ...) + +Cause ::= CHOICE { + radioNetwork CauseRadioNetwork, + transport CauseTransport, + protocol CauseProtocol, + misc CauseMisc, + ... +} + +CauseMisc ::= ENUMERATED { + control-processing-overload, + hardware-failure, + om-intervention, + not-enough-user-plane-processing-resources, + unspecified, + ... +} + +CauseProtocol ::= ENUMERATED { + transfer-syntax-error, + abstract-syntax-error-reject, + abstract-syntax-error-ignore-and-notify, + message-not-compatible-with-receiver-state, + semantic-error, + unspecified, + abstract-syntax-error-falsely-constructed-message, + ... +} + +CauseRadioNetwork ::= ENUMERATED { + handover-desirable-for-radio-reasons, + time-critical-handover, + resource-optimisation-handover, + reduce-load-in-serving-cell, + partial-handover, + unknown-new-eNB-UE-X2AP-ID, + unknown-old-eNB-UE-X2AP-ID, + unknown-pair-of-UE-X2AP-ID, + ho-target-not-allowed, + tx2relocoverall-expiry, + trelocprep-expiry, + cell-not-available, + no-radio-resources-available-in-target-cell, + invalid-MME-GroupID, + unknown-MME-Code, + encryption-and-or-integrity-protection-algorithms-not-supported, + reportCharacteristicsEmpty, + noReportPeriodicity, + existingMeasurementID, + unknown-eNB-Measurement-ID, + measurement-temporarily-not-available, + unspecified, + ..., + load-balancing, + handover-optimisation, + value-out-of-allowed-range, + multiple-E-RAB-ID-instances, + switch-off-ongoing, + not-supported-QCI-value, + measurement-not-supported-for-the-object + +} + +CauseTransport ::= ENUMERATED { + transport-resource-unavailable, + unspecified, + ... +} + +CellBasedMDT::= SEQUENCE { + cellIdListforMDT CellIdListforMDT, + iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +CellBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF ECGI + +Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ... } + + +CellType ::= SEQUENCE { + cell-Size Cell-Size, + iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL, + ... +} + +CellType-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompositeAvailableCapacityGroup ::= SEQUENCE { + dL-CompositeAvailableCapacity CompositeAvailableCapacity, + uL-CompositeAvailableCapacity CompositeAvailableCapacity, + iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacityGroup-ExtIEs} } OPTIONAL, + ... +} + +CompositeAvailableCapacityGroup-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompositeAvailableCapacity ::= SEQUENCE { + cellCapacityClassValue CellCapacityClassValue OPTIONAL, + capacityValue CapacityValue, + iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacity-ExtIEs} } OPTIONAL, + ... +} + +CompositeAvailableCapacity-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTvalue ::= SEQUENCE { + pDCP-SN PDCP-SN, + hFN HFN, + iE-Extensions ProtocolExtensionContainer { { COUNTvalue-ExtIEs} } OPTIONAL, + ... +} + +COUNTvalue-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTValueExtended ::= SEQUENCE { + pDCP-SNExtended PDCP-SNExtended, + hFNModified HFNModified, + iE-Extensions ProtocolExtensionContainer { { COUNTValueExtended-ExtIEs} } OPTIONAL, + ... +} + +COUNTValueExtended-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL, + ... +} + + +CriticalityDiagnostics-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF + SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-List-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CRNTI ::= BIT STRING (SIZE (16)) + +CSGMembershipStatus ::= ENUMERATED { + member, + not-member +} + +CSG-Id ::= BIT STRING (SIZE (27)) + +CyclicPrefixDL ::= ENUMERATED { + normal, + extended, + ... +} + +CyclicPrefixUL ::= ENUMERATED { + normal, + extended, + ... +} + + +-- D + +DeactivationIndication::= ENUMERATED { + deactivated, + ... +} + +DL-Forwarding ::= ENUMERATED { + dL-forwardingProposed, + ... +} + +DL-GBR-PRB-usage::= INTEGER (0..100) + +DL-non-GBR-PRB-usage::= INTEGER (0..100) + +DL-Total-PRB-usage::= INTEGER (0..100) + +-- E + +EARFCN ::= INTEGER (0..maxEARFCN) + +EARFCNExtension ::= INTEGER(maxEARFCNPlusOne..newmaxEARFCN, ...) + +FDD-Info ::= SEQUENCE { + uL-EARFCN EARFCN, + dL-EARFCN EARFCN, + uL-Transmission-Bandwidth Transmission-Bandwidth, + dL-Transmission-Bandwidth Transmission-Bandwidth, + iE-Extensions ProtocolExtensionContainer { {FDD-Info-ExtIEs} } OPTIONAL, + ... +} + +FDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-UL-EARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}| + { ID id-DL-EARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}, + ... +} + +TDD-Info ::= SEQUENCE { + eARFCN EARFCN, + transmission-Bandwidth Transmission-Bandwidth, + subframeAssignment SubframeAssignment, + specialSubframe-Info SpecialSubframe-Info, + iE-Extensions ProtocolExtensionContainer { {TDD-Info-ExtIEs} } OPTIONAL, + ... +} +TDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-AdditionalSpecialSubframe-Info CRITICALITY ignore EXTENSION AdditionalSpecialSubframe-Info PRESENCE optional}| + { ID id-eARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}, + ... +} + +EUTRA-Mode-Info ::= CHOICE { + fDD FDD-Info, + tDD TDD-Info, + ... +} + +ECGI ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + eUTRANcellIdentifier EUTRANCellIdentifier, + iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL, + ... +} + +ECGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENB-ID ::= CHOICE { + macro-eNB-ID BIT STRING (SIZE (20)), + home-eNB-ID BIT STRING (SIZE (28)), + ... +} + +EncryptionAlgorithms ::= BIT STRING (SIZE (16, ...)) + +EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMN-Identity + +E-RAB-ID ::= INTEGER (0..15, ...) + +E-RAB-Level-QoS-Parameters ::= SEQUENCE { + qCI QCI, + allocationAndRetentionPriority AllocationAndRetentionPriority, + gbrQosInformation GBR-QosInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { E-RAB-Level-QoS-Parameters-ExtIEs} } OPTIONAL, + ... +} + +E-RAB-Level-QoS-Parameters-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RAB-List ::= SEQUENCE (SIZE(1.. maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RAB-ItemIEs} } + +E-RAB-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RAB-Item CRITICALITY ignore TYPE E-RAB-Item PRESENCE mandatory }, + ... +} + +E-RAB-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RAB-Item-ExtIEs} } OPTIONAL, + ... +} + +E-RAB-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +EUTRANCellIdentifier ::= BIT STRING (SIZE (28)) + +EUTRANTraceID ::= OCTET STRING (SIZE (8)) + + +EventType ::= ENUMERATED{ + change-of-serving-cell, + ... +} + + +-- F + +ForbiddenInterRATs ::= ENUMERATED { + all, + geran, + utran, + cdma2000, + ..., + geranandutran, + cdma2000andutran + +} + +ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item + +ForbiddenTAs-Item ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + forbiddenTACs ForbiddenTACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenTAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC + +ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item + +ForbiddenLAs-Item ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + forbiddenLACs ForbiddenLACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenLAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC + +Fourframes ::= BIT STRING (SIZE (24)) + +FreqBandIndicator ::= INTEGER (1..256, ...) + +-- G + +GBR-QosInformation ::= SEQUENCE { + e-RAB-MaximumBitrateDL BitRate, + e-RAB-MaximumBitrateUL BitRate, + e-RAB-GuaranteedBitrateDL BitRate, + e-RAB-GuaranteedBitrateUL BitRate, + iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL, + ... +} + +GBR-QosInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GlobalENB-ID ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + eNB-ID ENB-ID, + iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL, + ... +} + +GlobalENB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GTPtunnelEndpoint ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEI, + iE-Extensions ProtocolExtensionContainer { {GTPtunnelEndpoint-ExtIEs} } OPTIONAL, + ... +} + +GTPtunnelEndpoint-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GTP-TEI ::= OCTET STRING (SIZE (4)) + +GUGroupIDList ::= SEQUENCE (SIZE (1..maxPools)) OF GU-Group-ID + + +GU-Group-ID ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + mME-Group-ID MME-Group-ID, + iE-Extensions ProtocolExtensionContainer { {GU-Group-ID-ExtIEs} } OPTIONAL, + ... +} + +GU-Group-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +GUMMEI ::= SEQUENCE { + + gU-Group-ID GU-Group-ID, + mME-Code MME-Code, + iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, + ... +} + +GUMMEI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- H + +HandoverReportType ::= ENUMERATED { + hoTooEarly, + hoToWrongCell, + ..., + interRATpingpong +} + +HandoverRestrictionList ::= SEQUENCE { + servingPLMN PLMN-Identity, + equivalentPLMNs EPLMNs OPTIONAL, + forbiddenTAs ForbiddenTAs OPTIONAL, + forbiddenLAs ForbiddenLAs OPTIONAL, + forbiddenInterRATs ForbiddenInterRATs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, + ... +} + +HandoverRestrictionList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +HFN ::= INTEGER (0..1048575) + +HFNModified ::= INTEGER (0..131071) + +HWLoadIndicator ::= SEQUENCE { + dLHWLoadIndicator LoadIndicator, + uLHWLoadIndicator LoadIndicator, + iE-Extensions ProtocolExtensionContainer { { HWLoadIndicator-ExtIEs} } OPTIONAL, + ... +} + +HWLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- I + +InvokeIndication ::= ENUMERATED{ + abs-information, + ... +} + +IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16, ...)) + +InterfacesToTrace ::= BIT STRING (SIZE (8)) +-- J +-- K + + +Key-eNodeB-Star ::= BIT STRING (SIZE(256)) + +-- L + + +LAC ::= OCTET STRING (SIZE (2)) --(EXCEPT ('0000'H|'FFFE'H)) + +LastVisitedCell-Item ::= CHOICE { + e-UTRAN-Cell LastVisitedEUTRANCellInformation, + uTRAN-Cell LastVisitedUTRANCellInformation, + gERAN-Cell LastVisitedGERANCellInformation, + ... +} + +LastVisitedEUTRANCellInformation ::= SEQUENCE { + global-Cell-ID ECGI, + cellType CellType, + time-UE-StayedInCell Time-UE-StayedInCell, + iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, + ... +} + +LastVisitedEUTRANCellInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +-- Extension for Rel-11 to support enhanced granularity for time UE stayed in cell -- + { ID id-Time-UE-StayedInCell-EnhancedGranularity CRITICALITY ignore EXTENSION Time-UE-StayedInCell-EnhancedGranularity PRESENCE optional}| + { ID id-HO-cause CRITICALITY ignore EXTENSION Cause PRESENCE optional}, + ... +} + +LastVisitedUTRANCellInformation ::= OCTET STRING + +LastVisitedGERANCellInformation ::= CHOICE { + undefined NULL, + ... +} + +Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...} + +LoadIndicator ::= ENUMERATED { + lowLoad, + mediumLoad, + highLoad, + overLoad, + ... +} + + + +LocationReportingInformation ::= SEQUENCE { + eventType EventType, + reportArea ReportArea, + iE-Extensions ProtocolExtensionContainer { {LocationReportingInformation-ExtIEs} } OPTIONAL, + ... +} + +LocationReportingInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::={ + ... +} + +-- M + +M3Configuration ::= SEQUENCE { + m3period M3period, + iE-Extensions ProtocolExtensionContainer { { M3Configuration-ExtIEs} } OPTIONAL, + ... +} + +M3Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M3period ::= ENUMERATED {ms100, ms1000, ms10000, ... } + +M4Configuration ::= SEQUENCE { + m4period M4period, + m4-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M4Configuration-ExtIEs} } OPTIONAL, + ... +} + +M4Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + + +M5Configuration ::= SEQUENCE { + m5period M5period, + m5-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M5Configuration-ExtIEs} } OPTIONAL, + ... +} + +M5Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + +MDT-Activation ::= ENUMERATED { + immediate-MDT-only, + immediate-MDT-and-Trace, + ... +} + +MDT-Configuration ::= SEQUENCE { + mdt-Activation MDT-Activation, + areaScopeOfMDT AreaScopeOfMDT, + measurementsToActivate MeasurementsToActivate, + m1reportingTrigger M1ReportingTrigger, + m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL, +-- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1 + m1periodicReporting M1PeriodicReporting OPTIONAL, +-- Included in case of periodic, or event-triggered periodic reporting for measurement M1 + iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTIONAL, + ... +} + +MDT-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + {ID id-M3Configuration CRITICALITY ignore EXTENSION M3Configuration PRESENCE conditional}| + {ID id-M4Configuration CRITICALITY ignore EXTENSION M4Configuration PRESENCE conditional}| + {ID id-M5Configuration CRITICALITY ignore EXTENSION M5Configuration PRESENCE conditional}| + {ID id-MDT-Location-Info CRITICALITY ignore EXTENSION MDT-Location-Info PRESENCE optional}| + {ID id-SignallingBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional}, + ... +} + +MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMN-Identity + +MDT-Location-Info ::= BIT STRING (SIZE (8)) + +MeasurementsToActivate::= BIT STRING (SIZE (8)) + +MeasurementThresholdA2 ::= CHOICE { + threshold-RSRP Threshold-RSRP, + threshold-RSRQ Threshold-RSRQ, + ... +} + +MME-Group-ID ::= OCTET STRING (SIZE (2)) + +MME-Code ::= OCTET STRING (SIZE (1)) + +Measurement-ID ::= INTEGER (1..4095, ...) + +MBMS-Service-Area-Identity-List ::= SEQUENCE (SIZE(1.. maxnoofMBMSServiceAreaIdentities)) OF MBMS-Service-Area-Identity + +MBMS-Service-Area-Identity ::= OCTET STRING (SIZE (2)) + +MBSFN-Subframe-Infolist::= SEQUENCE (SIZE(1.. maxnoofMBSFN)) OF MBSFN-Subframe-Info + +MBSFN-Subframe-Info ::= SEQUENCE { + radioframeAllocationPeriod RadioframeAllocationPeriod, + radioframeAllocationOffset RadioframeAllocationOffset, + subframeAllocation SubframeAllocation, + iE-Extensions ProtocolExtensionContainer { { MBSFN-Subframe-Info-ExtIEs } } OPTIONAL, + ... +} + +MBSFN-Subframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ManagementBasedMDTallowed ::= ENUMERATED {allowed, ...} + +MobilityParametersModificationRange ::= SEQUENCE { + handoverTriggerChangeLowerLimit INTEGER (-20..20), + handoverTriggerChangeUpperLimit INTEGER (-20..20), + ... +} + +MobilityParametersInformation ::= SEQUENCE { + handoverTriggerChange INTEGER (-20..20), + ... +} + +MultibandInfoList ::= SEQUENCE (SIZE(1..maxnoofBands)) OF BandInfo + + +BandInfo ::= SEQUENCE { + freqBandIndicator FreqBandIndicator, + iE-Extensions ProtocolExtensionContainer { { BandInfo-ExtIEs } } OPTIONAL, + ... +} + +BandInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- N + +Neighbour-Information ::= SEQUENCE (SIZE (0..maxnoofNeighbours)) OF SEQUENCE { + eCGI ECGI, + pCI PCI, + eARFCN EARFCN, + iE-Extensions ProtocolExtensionContainer { {Neighbour-Information-ExtIEs} } OPTIONAL, + ... +} + +Neighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-NeighbourTAC CRITICALITY ignore EXTENSION TAC PRESENCE optional}| + { ID id-eARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}, + ... +} + +NextHopChainingCount ::= INTEGER (0..7) + +Number-of-Antennaports ::= ENUMERATED { + an1, + an2, + an4, + ... +} + +-- O + +Oneframe ::= BIT STRING (SIZE (6)) + +-- P + +PDCP-SN ::= INTEGER (0..4095) + +PDCP-SNExtended ::= INTEGER (0..32767) + +PCI ::= INTEGER (0..503, ...) + +M1PeriodicReporting ::= SEQUENCE { + reportInterval ReportIntervalMDT, + reportAmount ReportAmountMDT, + iE-Extensions ProtocolExtensionContainer { { M1PeriodicReporting-ExtIEs} } OPTIONAL, + ... +} + +M1PeriodicReporting-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +PLMN-Identity ::= OCTET STRING (SIZE(3)) + +PRACH-Configuration ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + zeroCorrelationIndex INTEGER (0..15), + highSpeedFlag BOOLEAN, + prach-FreqOffset INTEGER (0..94), + prach-ConfigIndex INTEGER (0..63) OPTIONAL, -- present for TDD -- + iE-Extensions ProtocolExtensionContainer { {PRACH-Configuration-ExtIEs} } OPTIONAL, + ... +} + +PRACH-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +Pre-emptionCapability ::= ENUMERATED { + shall-not-trigger-pre-emption, + may-trigger-pre-emption +} + +Pre-emptionVulnerability ::= ENUMERATED { + not-pre-emptable, + pre-emptable +} + +PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) + +-- Q + +QCI ::= INTEGER (0..255) + +-- R + +RadioframeAllocationOffset ::= INTEGER (0..7, ...) + +RadioframeAllocationPeriod ::= ENUMERATED{ + n1, + n2, + n4, + n8, + n16, + n32, + ... +} + + +RadioResourceStatus ::= SEQUENCE { + dL-GBR-PRB-usage DL-GBR-PRB-usage, + uL-GBR-PRB-usage UL-GBR-PRB-usage, + dL-non-GBR-PRB-usage DL-non-GBR-PRB-usage, + uL-non-GBR-PRB-usage UL-non-GBR-PRB-usage, + dL-Total-PRB-usage DL-Total-PRB-usage, + uL-Total-PRB-usage UL-Total-PRB-usage, + iE-Extensions ProtocolExtensionContainer { {RadioResourceStatus-ExtIEs} } OPTIONAL, + ... +} + +RadioResourceStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) + +ReceiveStatusOfULPDCPSDUsExtended ::= BIT STRING (SIZE(1..16384)) + +Registration-Request ::= ENUMERATED { + start, + stop, + ... +} + +RelativeNarrowbandTxPower ::= SEQUENCE { + + rNTP-PerPRB BIT STRING (SIZE(6..110, ...)), + rNTP-Threshold RNTP-Threshold, + numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, + p-B INTEGER (0..3,...), + pDCCH-InterferenceImpact INTEGER (0..4,...), + iE-Extensions ProtocolExtensionContainer { { RelativeNarrowbandTxPower-ExtIEs} } OPTIONAL, + ... +} + +RelativeNarrowbandTxPower-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity} + +ReportArea ::= ENUMERATED{ + ecgi, + ... +} + +ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60} + +ReportCharacteristics ::= BIT STRING (SIZE (32)) + +M1ReportingTrigger::= ENUMERATED{ + periodic, + a2eventtriggered, + ..., + a2eventtriggered-periodic +} + +RNTP-Threshold ::= ENUMERATED { + minusInfinity, + minusEleven, + minusTen, + minusNine, + minusEight, + minusSeven, + minusSix, + minusFive, + minusFour, + minusThree, + minusTwo, + minusOne, + zero, + one, + two, + three, + ... +} + +RRC-Context ::= OCTET STRING + +RRCConnReestabIndicator ::= ENUMERATED { + reconfigurationFailure, handoverFailure, otherFailure, ... +} +-- The values correspond to the values of ReestablishmentCause reported from the UE in the RRCConnectionReestablishmentRequest, as defined in TS 36.331 [9] + +RRCConnSetupIndicator::= ENUMERATED { + rrcConnSetup, + ... +} + +-- S + +S1TNLLoadIndicator ::= SEQUENCE { + dLS1TNLLoadIndicator LoadIndicator, + uLS1TNLLoadIndicator LoadIndicator, + iE-Extensions ProtocolExtensionContainer { { S1TNLLoadIndicator-ExtIEs} } OPTIONAL, + ... +} + +S1TNLLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + + +ServedCells ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { + servedCellInfo ServedCell-Information, + neighbour-Info Neighbour-Information OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ServedCell-ExtIEs} } OPTIONAL, + ... +} + +ServedCell-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedCell-Information ::= SEQUENCE { + pCI PCI, + cellId ECGI, + tAC TAC, + broadcastPLMNs BroadcastPLMNs-Item, + eUTRA-Mode-Info EUTRA-Mode-Info, + iE-Extensions ProtocolExtensionContainer { {ServedCell-Information-ExtIEs} } OPTIONAL, + ... +} + +ServedCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-Number-of-Antennaports CRITICALITY ignore EXTENSION Number-of-Antennaports PRESENCE optional }| + { ID id-PRACH-Configuration CRITICALITY ignore EXTENSION PRACH-Configuration PRESENCE optional }| + { ID id-MBSFN-Subframe-Info CRITICALITY ignore EXTENSION MBSFN-Subframe-Infolist PRESENCE optional }| + { ID id-CSG-Id CRITICALITY ignore EXTENSION CSG-Id PRESENCE optional }| + { ID id-MBMS-Service-Area-List CRITICALITY ignore EXTENSION MBMS-Service-Area-Identity-List PRESENCE optional }| + { ID id-MultibandInfoList CRITICALITY ignore EXTENSION MultibandInfoList PRESENCE optional }, + ... +} + +ShortMAC-I ::= BIT STRING (SIZE(16)) + +SRVCCOperationPossible ::= ENUMERATED { + possible, + ... +} + +SubframeAssignment ::= ENUMERATED { + sa0, + sa1, + sa2, + sa3, + sa4, + sa5, + sa6, + ... +} + +SpecialSubframe-Info ::= SEQUENCE { + specialSubframePatterns SpecialSubframePatterns, + cyclicPrefixDL CyclicPrefixDL, + cyclicPrefixUL CyclicPrefixUL, + iE-Extensions ProtocolExtensionContainer { { SpecialSubframe-Info-ExtIEs} } OPTIONAL, + ... +} + +SpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +SpecialSubframePatterns ::= ENUMERATED { + ssp0, + ssp1, + ssp2, + ssp3, + ssp4, + ssp5, + ssp6, + ssp7, + ssp8, + ... +} + +SubscriberProfileIDforRFP ::= INTEGER (1..256) + +SubframeAllocation ::= CHOICE { + oneframe Oneframe, + fourframes Fourframes, + ... +} + +-- T + +TAC ::= OCTET STRING (SIZE (2)) + +TABasedMDT::= SEQUENCE { + tAListforMDT TAListforMDT, + iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TABasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC + +TAIBasedMDT ::= SEQUENCE { + tAIListforMDT TAIListforMDT, + iE-Extensions ProtocolExtensionContainer { {TAIBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TAIBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAIListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAI-Item + +TAI-Item ::= SEQUENCE { + tAC TAC, + pLMN-Identity PLMN-Identity, + iE-Extensions ProtocolExtensionContainer { { TAI-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TargetCellInUTRAN ::= OCTET STRING -- This IE is to be encoded according to the UTRAN Cell ID in the Last Visited UTRAN Cell Information IE in TS 25.413 [24] + +M1ThresholdEventA2 ::= SEQUENCE { + measurementThreshold MeasurementThresholdA2, + iE-Extensions ProtocolExtensionContainer { { M1ThresholdEventA2-ExtIEs} } OPTIONAL, + ... +} + +M1ThresholdEventA2-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TargeteNBtoSource-eNBTransparentContainer ::= OCTET STRING + +Threshold-RSRP ::= INTEGER(0..97) + +Threshold-RSRQ ::= INTEGER(0..34) + +TimeToWait ::= ENUMERATED { + v1s, + v2s, + v5s, + v10s, + v20s, + v60s, + ... +} + +Time-UE-StayedInCell ::= INTEGER (0..4095) + +Time-UE-StayedInCell-EnhancedGranularity ::= INTEGER (0..40950) + + +TraceActivation ::= SEQUENCE { + eUTRANTraceID EUTRANTraceID, + interfacesToTrace InterfacesToTrace, + traceDepth TraceDepth, + traceCollectionEntityIPAddress TraceCollectionEntityIPAddress, + iE-Extensions ProtocolExtensionContainer { {TraceActivation-ExtIEs} } OPTIONAL, + ... +} + +TraceActivation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional}, + ... +} + +TraceCollectionEntityIPAddress ::= BIT STRING (SIZE(1..160, ...)) + +TraceDepth ::= ENUMERATED { + minimum, + medium, + maximum, + minimumWithoutVendorSpecificExtension, + mediumWithoutVendorSpecificExtension, + maximumWithoutVendorSpecificExtension, + ... +} + + + + +Transmission-Bandwidth ::= ENUMERATED { + bw6, + bw15, + bw25, + bw50, + bw75, + bw100, + ... +} + +TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) + +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + + +-- U + +UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item + + +UE-S1AP-ID ::= INTEGER (0.. 4294967295) + +UE-X2AP-ID ::= INTEGER (0..4095) + +UEAggregateMaximumBitRate ::= SEQUENCE { + uEaggregateMaximumBitRateDownlink BitRate, + uEaggregateMaximumBitRateUplink BitRate, + iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrate-ExtIEs} } OPTIONAL, + ... +} + +UEAggregate-MaximumBitrate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UESecurityCapabilities ::= SEQUENCE { + encryptionAlgorithms EncryptionAlgorithms, + integrityProtectionAlgorithms IntegrityProtectionAlgorithms, + iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL, +... +} + +UESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UL-GBR-PRB-usage::= INTEGER (0..100) + +UL-non-GBR-PRB-usage::= INTEGER (0..100) + +UL-Total-PRB-usage::= INTEGER (0..100) + +UL-InterferenceOverloadIndication ::= SEQUENCE (SIZE(1..maxnoofPRBs)) OF UL-InterferenceOverloadIndication-Item + +UL-InterferenceOverloadIndication-Item ::= ENUMERATED { + high-interference, + medium-interference, + low-interference, + ... +} + +UL-HighInterferenceIndicationInfo ::= SEQUENCE (SIZE(1..maxCellineNB)) OF UL-HighInterferenceIndicationInfo-Item + +UL-HighInterferenceIndicationInfo-Item ::= SEQUENCE { + target-Cell-ID ECGI, + ul-interferenceindication UL-HighInterferenceIndication, + iE-Extensions ProtocolExtensionContainer { { UL-HighInterferenceIndicationInfo-Item-ExtIEs} } OPTIONAL, + ... +} + +UL-HighInterferenceIndicationInfo-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UL-HighInterferenceIndication ::= BIT STRING (SIZE(1..110, ...)) + +UE-RLF-Report-Container::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the rlfReport field contained in the UEInformationResponse message as defined in TS 36.331 [9] + +UsableABSInformation ::= CHOICE { + fdd UsableABSInformationFDD, + tdd UsableABSInformationTDD, + ... +} + +UsableABSInformationFDD ::= SEQUENCE { + usable-abs-pattern-info BIT STRING (SIZE(40)), + iE-Extensions ProtocolExtensionContainer { { UsableABSInformationFDD-ExtIEs} } OPTIONAL, + ... +} + +UsableABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UsableABSInformationTDD ::= SEQUENCE { + usaable-abs-pattern-info BIT STRING (SIZE(1..70, ...)), + iE-Extensions ProtocolExtensionContainer { { UsableABSInformationTDD-ExtIEs} } OPTIONAL, + ... +} + +UsableABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- V +-- W +-- X +-- Y +-- Z + +END + + +-- ************************************************************** +-- +-- Common definitions +-- +-- ************************************************************** + +X2AP-CommonDataTypes { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-CommonDataTypes (3) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- Extension constants +-- +-- ************************************************************** + +maxPrivateIEs INTEGER ::= 65535 +maxProtocolExtensions INTEGER ::= 65535 +maxProtocolIEs INTEGER ::= 65535 + +-- ************************************************************** +-- +-- Common Data Types +-- +-- ************************************************************** + +Criticality ::= ENUMERATED { reject, ignore, notify } + +Presence ::= ENUMERATED { optional, conditional, mandatory } + +PrivateIE-ID ::= CHOICE { + local INTEGER (0.. maxPrivateIEs), + global OBJECT IDENTIFIER +} + +ProcedureCode ::= INTEGER (0..255) + + +ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs) + + +TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome} + +END + + +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +X2AP-Constants { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Constants (4) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + ProcedureCode, + ProtocolIE-ID +FROM X2AP-CommonDataTypes; + +-- ************************************************************** +-- +-- Elementary Procedures +-- +-- ************************************************************** + +id-handoverPreparation ProcedureCode ::= 0 +id-handoverCancel ProcedureCode ::= 1 +id-loadIndication ProcedureCode ::= 2 +id-errorIndication ProcedureCode ::= 3 +id-snStatusTransfer ProcedureCode ::= 4 +id-uEContextRelease ProcedureCode ::= 5 +id-x2Setup ProcedureCode ::= 6 +id-reset ProcedureCode ::= 7 +id-eNBConfigurationUpdate ProcedureCode ::= 8 +id-resourceStatusReportingInitiation ProcedureCode ::= 9 +id-resourceStatusReporting ProcedureCode ::= 10 +id-privateMessage ProcedureCode ::= 11 +id-mobilitySettingsChange ProcedureCode ::= 12 +id-rLFIndication ProcedureCode ::= 13 +id-handoverReport ProcedureCode ::= 14 +id-cellActivation ProcedureCode ::= 15 + + + +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** + +maxEARFCN INTEGER ::= 65535 +maxEARFCNPlusOne INTEGER ::= 65536 +newmaxEARFCN INTEGER ::= 262143 +maxInterfaces INTEGER ::= 16 +maxCellineNB INTEGER ::= 256 +maxnoofBands INTEGER ::= 16 +maxnoofBearers INTEGER ::= 256 +maxNrOfErrors INTEGER ::= 256 +maxnoofPDCP-SN INTEGER ::= 16 +maxnoofEPLMNs INTEGER ::= 15 +maxnoofEPLMNsPlusOne INTEGER ::= 16 +maxnoofForbLACs INTEGER ::= 4096 +maxnoofForbTACs INTEGER ::= 4096 +maxnoofBPLMNs INTEGER ::= 6 +maxnoofNeighbours INTEGER ::= 512 +maxnoofPRBs INTEGER ::= 110 +maxPools INTEGER ::= 16 +maxnoofCells INTEGER ::= 16 +maxnoofMBSFN INTEGER ::= 8 +maxFailedMeasObjects INTEGER ::= 32 +maxnoofCellIDforMDT INTEGER ::= 32 +maxnoofTAforMDT INTEGER ::= 8 +maxnoofMBMSServiceAreaIdentities INTEGER ::= 256 +maxnoofMDTPLMNs INTEGER ::= 16 + + +-- ************************************************************** +-- +-- IEs +-- +-- ************************************************************** + +id-E-RABs-Admitted-Item ProtocolIE-ID ::= 0 +id-E-RABs-Admitted-List ProtocolIE-ID ::= 1 +id-E-RAB-Item ProtocolIE-ID ::= 2 +id-E-RABs-NotAdmitted-List ProtocolIE-ID ::= 3 +id-E-RABs-ToBeSetup-Item ProtocolIE-ID ::= 4 +id-Cause ProtocolIE-ID ::= 5 +id-CellInformation ProtocolIE-ID ::= 6 +id-CellInformation-Item ProtocolIE-ID ::= 7 +id-New-eNB-UE-X2AP-ID ProtocolIE-ID ::= 9 +id-Old-eNB-UE-X2AP-ID ProtocolIE-ID ::= 10 +id-TargetCell-ID ProtocolIE-ID ::= 11 +id-TargeteNBtoSource-eNBTransparentContainer ProtocolIE-ID ::= 12 +id-TraceActivation ProtocolIE-ID ::= 13 +id-UE-ContextInformation ProtocolIE-ID ::= 14 +id-UE-HistoryInformation ProtocolIE-ID ::= 15 +id-UE-X2AP-ID ProtocolIE-ID ::= 16 +id-CriticalityDiagnostics ProtocolIE-ID ::= 17 +id-E-RABs-SubjectToStatusTransfer-List ProtocolIE-ID ::= 18 +id-E-RABs-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 19 +id-ServedCells ProtocolIE-ID ::= 20 +id-GlobalENB-ID ProtocolIE-ID ::= 21 +id-TimeToWait ProtocolIE-ID ::= 22 +id-GUMMEI-ID ProtocolIE-ID ::= 23 +id-GUGroupIDList ProtocolIE-ID ::= 24 +id-ServedCellsToAdd ProtocolIE-ID ::= 25 +id-ServedCellsToModify ProtocolIE-ID ::= 26 +id-ServedCellsToDelete ProtocolIE-ID ::= 27 +id-Registration-Request ProtocolIE-ID ::= 28 +id-CellToReport ProtocolIE-ID ::= 29 +id-ReportingPeriodicity ProtocolIE-ID ::= 30 +id-CellToReport-Item ProtocolIE-ID ::= 31 +id-CellMeasurementResult ProtocolIE-ID ::= 32 +id-CellMeasurementResult-Item ProtocolIE-ID ::= 33 +id-GUGroupIDToAddList ProtocolIE-ID ::= 34 +id-GUGroupIDToDeleteList ProtocolIE-ID ::= 35 +id-SRVCCOperationPossible ProtocolIE-ID ::= 36 +id-Measurement-ID ProtocolIE-ID ::= 37 +id-ReportCharacteristics ProtocolIE-ID ::= 38 +id-ENB1-Measurement-ID ProtocolIE-ID ::= 39 +id-ENB2-Measurement-ID ProtocolIE-ID ::= 40 +id-Number-of-Antennaports ProtocolIE-ID ::= 41 +id-CompositeAvailableCapacityGroup ProtocolIE-ID ::= 42 +id-ENB1-Cell-ID ProtocolIE-ID ::= 43 +id-ENB2-Cell-ID ProtocolIE-ID ::= 44 +id-ENB2-Proposed-Mobility-Parameters ProtocolIE-ID ::= 45 +id-ENB1-Mobility-Parameters ProtocolIE-ID ::= 46 +id-ENB2-Mobility-Parameters-Modification-Range ProtocolIE-ID ::= 47 +id-FailureCellPCI ProtocolIE-ID ::= 48 +id-Re-establishmentCellECGI ProtocolIE-ID ::= 49 +id-FailureCellCRNTI ProtocolIE-ID ::= 50 +id-ShortMAC-I ProtocolIE-ID ::= 51 +id-SourceCellECGI ProtocolIE-ID ::= 52 +id-FailureCellECGI ProtocolIE-ID ::= 53 +id-HandoverReportType ProtocolIE-ID ::= 54 +id-PRACH-Configuration ProtocolIE-ID ::= 55 +id-MBSFN-Subframe-Info ProtocolIE-ID ::= 56 +id-ServedCellsToActivate ProtocolIE-ID ::= 57 +id-ActivatedCellList ProtocolIE-ID ::= 58 +id-DeactivationIndication ProtocolIE-ID ::= 59 +id-UE-RLF-Report-Container ProtocolIE-ID ::= 60 +id-ABSInformation ProtocolIE-ID ::= 61 +id-InvokeIndication ProtocolIE-ID ::= 62 +id-ABS-Status ProtocolIE-ID ::= 63 +id-PartialSuccessIndicator ProtocolIE-ID ::= 64 +id-MeasurementInitiationResult-List ProtocolIE-ID ::= 65 +id-MeasurementInitiationResult-Item ProtocolIE-ID ::= 66 +id-MeasurementFailureCause-Item ProtocolIE-ID ::= 67 +id-CompleteFailureCauseInformation-List ProtocolIE-ID ::= 68 +id-CompleteFailureCauseInformation-Item ProtocolIE-ID ::= 69 +id-CSG-Id ProtocolIE-ID ::= 70 +id-CSGMembershipStatus ProtocolIE-ID ::= 71 +id-MDTConfiguration ProtocolIE-ID ::= 72 +id-ManagementBasedMDTallowed ProtocolIE-ID ::= 74 +id-RRCConnSetupIndicator ProtocolIE-ID ::= 75 +id-NeighbourTAC ProtocolIE-ID ::= 76 +id-Time-UE-StayedInCell-EnhancedGranularity ProtocolIE-ID ::= 77 +id-RRCConnReestabIndicator ProtocolIE-ID ::= 78 +id-MBMS-Service-Area-List ProtocolIE-ID ::= 79 +id-HO-cause ProtocolIE-ID ::= 80 +id-TargetCellInUTRAN ProtocolIE-ID ::= 81 +id-MobilityInformation ProtocolIE-ID ::= 82 +id-SourceCellCRNTI ProtocolIE-ID ::= 83 +id-MultibandInfoList ProtocolIE-ID ::= 84 +id-M3Configuration ProtocolIE-ID ::= 85 +id-M4Configuration ProtocolIE-ID ::= 86 +id-M5Configuration ProtocolIE-ID ::= 87 +id-MDT-Location-Info ProtocolIE-ID ::= 88 +id-ManagementBasedMDTPLMNList ProtocolIE-ID ::= 89 +id-SignallingBasedMDTPLMNList ProtocolIE-ID ::= 90 +id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID ::= 91 +id-ULCOUNTValueExtended ProtocolIE-ID ::= 92 +id-DLCOUNTValueExtended ProtocolIE-ID ::= 93 +id-eARFCNExtension ProtocolIE-ID ::= 94 +id-UL-EARFCNExtension ProtocolIE-ID ::= 95 +id-DL-EARFCNExtension ProtocolIE-ID ::= 96 +id-AdditionalSpecialSubframe-Info ProtocolIE-ID ::= 97 + +END + + +-- ************************************************************** +-- +-- Container definitions +-- +-- ************************************************************** + +X2AP-Containers { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Containers (5) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + maxPrivateIEs, + maxProtocolExtensions, + maxProtocolIEs, + Criticality, + Presence, + PrivateIE-ID, + ProtocolIE-ID +FROM X2AP-CommonDataTypes; + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +X2AP-PROTOCOL-IES ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +X2AP-PROTOCOL-IES-PAIR ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &firstCriticality Criticality, + &FirstValue, + &secondCriticality Criticality, + &SecondValue, + &presence Presence +} +WITH SYNTAX { + ID &id + FIRST CRITICALITY &firstCriticality + FIRST TYPE &FirstValue + SECOND CRITICALITY &secondCriticality + SECOND TYPE &SecondValue + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol Extensions +-- +-- ************************************************************** + +X2AP-PROTOCOL-EXTENSION ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Extension, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + EXTENSION &Extension + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Private IEs +-- +-- ************************************************************** + +X2AP-PRIVATE-IES ::= CLASS { + &id PrivateIE-ID, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Container for Protocol IEs +-- +-- ************************************************************** + +ProtocolIE-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Single-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Field {X2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-IES.&id ({IEsSetParam}), + criticality X2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), + value X2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Protocol IE Pairs +-- +-- ************************************************************** + +ProtocolIE-ContainerPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-FieldPair {{IEsSetParam}} + +ProtocolIE-FieldPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), + firstCriticality X2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), + firstValue X2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), + secondCriticality X2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), + secondValue X2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container Lists for Protocol IE Containers +-- +-- ************************************************************** + +ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-Container {{IEsSetParam}} + +ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-ContainerPair {{IEsSetParam}} + +-- ************************************************************** +-- +-- Container for Protocol Extensions +-- +-- ************************************************************** + +ProtocolExtensionContainer {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= + SEQUENCE (SIZE (1..maxProtocolExtensions)) OF + ProtocolExtensionField {{ExtensionSetParam}} + +ProtocolExtensionField {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), + criticality X2AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), + extensionValue X2AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Private IEs +-- +-- ************************************************************** + +PrivateIE-Container {X2AP-PRIVATE-IES : IEsSetParam} ::= + SEQUENCE (SIZE (1..maxPrivateIEs)) OF + PrivateIE-Field {{IEsSetParam}} + +PrivateIE-Field {X2AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { + id X2AP-PRIVATE-IES.&id ({IEsSetParam}), + criticality X2AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), + value X2AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) +} + +END + + + diff --git a/openair2/X2AP/MESSAGES/ASN1/R12/x2ap-12.8.0.asn1 b/openair2/X2AP/MESSAGES/ASN1/R12/x2ap-12.8.0.asn1 new file mode 100755 index 0000000000..f100019f3b --- /dev/null +++ b/openair2/X2AP/MESSAGES/ASN1/R12/x2ap-12.8.0.asn1 @@ -0,0 +1,4358 @@ +-- ************************************************************** +-- +-- Elementary Procedure definitions +-- +-- ************************************************************** + +X2AP-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Descriptions (0) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + ProcedureCode + +FROM X2AP-CommonDataTypes + + CellActivationRequest, + CellActivationResponse, + CellActivationFailure, + ENBConfigurationUpdate, + ENBConfigurationUpdateAcknowledge, + ENBConfigurationUpdateFailure, + ErrorIndication, + HandoverCancel, + HandoverReport, + HandoverPreparationFailure, + HandoverRequest, + HandoverRequestAcknowledge, + LoadInformation, + PrivateMessage, + ResetRequest, + ResetResponse, + ResourceStatusFailure, + ResourceStatusRequest, + ResourceStatusResponse, + ResourceStatusUpdate, + RLFIndication, + SNStatusTransfer, + UEContextRelease, + X2SetupFailure, + X2SetupRequest, + X2SetupResponse, + MobilityChangeRequest, + MobilityChangeAcknowledge, + MobilityChangeFailure, + X2Release, + X2APMessageTransfer, + SeNBAdditionRequest, + SeNBAdditionRequestAcknowledge, + SeNBAdditionRequestReject, + SeNBReconfigurationComplete, + SeNBModificationRequest, + SeNBModificationRequestAcknowledge, + SeNBModificationRequestReject, + SeNBModificationRequired, + SeNBModificationConfirm, + SeNBModificationRefuse, + SeNBReleaseRequest, + SeNBReleaseRequired, + SeNBReleaseConfirm, + SeNBCounterCheckRequest, + X2RemovalFailure, + X2RemovalRequest, + X2RemovalResponse + +FROM X2AP-PDU-Contents + + id-cellActivation, + id-eNBConfigurationUpdate, + id-errorIndication, + id-handoverCancel, + id-handoverReport, + id-handoverPreparation, + + id-loadIndication, + id-privateMessage, + id-reset, + + id-resourceStatusReporting, + id-resourceStatusReportingInitiation, + id-rLFIndication, + id-snStatusTransfer, + id-uEContextRelease, + id-x2Setup, + id-mobilitySettingsChange, + id-x2Release, + id-x2APMessageTransfer, + id-seNBAdditionPreparation, + id-seNBReconfigurationCompletion, + id-meNBinitiatedSeNBModificationPreparation, + id-seNBinitiatedSeNBModification, + id-meNBinitiatedSeNBRelease, + id-seNBinitiatedSeNBRelease, + id-seNBCounterCheck, + id-x2Removal + +FROM X2AP-Constants; + +-- ************************************************************** +-- +-- Interface Elementary Procedure Class +-- +-- ************************************************************** + +X2AP-ELEMENTARY-PROCEDURE ::= CLASS { + &InitiatingMessage , + &SuccessfulOutcome OPTIONAL, + &UnsuccessfulOutcome OPTIONAL, + &procedureCode ProcedureCode UNIQUE, + &criticality Criticality DEFAULT ignore +} +WITH SYNTAX { + INITIATING MESSAGE &InitiatingMessage + [SUCCESSFUL OUTCOME &SuccessfulOutcome] + [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] + PROCEDURE CODE &procedureCode + [CRITICALITY &criticality] +} + +-- ************************************************************** +-- +-- Interface PDU Definition +-- +-- ************************************************************** + +X2AP-PDU ::= CHOICE { + initiatingMessage InitiatingMessage, + successfulOutcome SuccessfulOutcome, + unsuccessfulOutcome UnsuccessfulOutcome, + ... +} + +InitiatingMessage ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +SuccessfulOutcome ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +UnsuccessfulOutcome ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +-- ************************************************************** +-- +-- Interface Elementary Procedure List +-- +-- ************************************************************** + +X2AP-ELEMENTARY-PROCEDURES X2AP-ELEMENTARY-PROCEDURE ::= { + X2AP-ELEMENTARY-PROCEDURES-CLASS-1 | + X2AP-ELEMENTARY-PROCEDURES-CLASS-2 , + ... +} + +X2AP-ELEMENTARY-PROCEDURES-CLASS-1 X2AP-ELEMENTARY-PROCEDURE ::= { + handoverPreparation | + reset | + x2Setup | + resourceStatusReportingInitiation | + eNBConfigurationUpdate | + mobilitySettingsChange | + cellActivation | + seNBAdditionPreparation | + meNBinitiatedSeNBModificationPreparation | + seNBinitiatedSeNBModification | + seNBinitiatedSeNBRelease | + x2Removal , + ... +} + +X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= { + snStatusTransfer | + uEContextRelease | + handoverCancel | + errorIndication | + resourceStatusReporting | + loadIndication | + privateMessage | + rLFIndication | + handoverReport | + x2Release | + x2APMessageTransfer | + seNBReconfigurationCompletion | + meNBinitiatedSeNBRelease | + seNBCounterCheck, + ... + +} + +-- ************************************************************** +-- +-- Interface Elementary Procedures +-- +-- ************************************************************** + +handoverPreparation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequest + SUCCESSFUL OUTCOME HandoverRequestAcknowledge + UNSUCCESSFUL OUTCOME HandoverPreparationFailure + PROCEDURE CODE id-handoverPreparation + CRITICALITY reject +} + +snStatusTransfer X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SNStatusTransfer + PROCEDURE CODE id-snStatusTransfer + CRITICALITY ignore +} + +uEContextRelease X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextRelease + PROCEDURE CODE id-uEContextRelease + CRITICALITY ignore +} + + +handoverCancel X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverCancel + PROCEDURE CODE id-handoverCancel + CRITICALITY ignore +} + +handoverReport X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverReport + PROCEDURE CODE id-handoverReport + CRITICALITY ignore +} + +errorIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ErrorIndication + PROCEDURE CODE id-errorIndication + CRITICALITY ignore +} + +reset X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResetRequest + SUCCESSFUL OUTCOME ResetResponse + PROCEDURE CODE id-reset + CRITICALITY reject +} + +x2Setup X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE X2SetupRequest + SUCCESSFUL OUTCOME X2SetupResponse + UNSUCCESSFUL OUTCOME X2SetupFailure + PROCEDURE CODE id-x2Setup + CRITICALITY reject +} + + +loadIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LoadInformation + PROCEDURE CODE id-loadIndication + CRITICALITY ignore +} + +eNBConfigurationUpdate X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationUpdate + SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure + PROCEDURE CODE id-eNBConfigurationUpdate + CRITICALITY reject +} + +resourceStatusReportingInitiation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResourceStatusRequest + SUCCESSFUL OUTCOME ResourceStatusResponse + UNSUCCESSFUL OUTCOME ResourceStatusFailure + PROCEDURE CODE id-resourceStatusReportingInitiation + CRITICALITY reject +} + +resourceStatusReporting X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResourceStatusUpdate + PROCEDURE CODE id-resourceStatusReporting + CRITICALITY ignore +} + +rLFIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RLFIndication + PROCEDURE CODE id-rLFIndication + CRITICALITY ignore +} + +privateMessage X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PrivateMessage + PROCEDURE CODE id-privateMessage + CRITICALITY ignore +} + +mobilitySettingsChange X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MobilityChangeRequest + SUCCESSFUL OUTCOME MobilityChangeAcknowledge + UNSUCCESSFUL OUTCOME MobilityChangeFailure + PROCEDURE CODE id-mobilitySettingsChange + CRITICALITY reject +} + +cellActivation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE CellActivationRequest + SUCCESSFUL OUTCOME CellActivationResponse + UNSUCCESSFUL OUTCOME CellActivationFailure + PROCEDURE CODE id-cellActivation + CRITICALITY reject +} + +x2Release X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE X2Release + PROCEDURE CODE id-x2Release + CRITICALITY reject +} + +x2APMessageTransfer X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE X2APMessageTransfer + PROCEDURE CODE id-x2APMessageTransfer + CRITICALITY reject +} + +seNBAdditionPreparation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBAdditionRequest + SUCCESSFUL OUTCOME SeNBAdditionRequestAcknowledge + UNSUCCESSFUL OUTCOME SeNBAdditionRequestReject + PROCEDURE CODE id-seNBAdditionPreparation + CRITICALITY reject +} + +seNBReconfigurationCompletion X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBReconfigurationComplete + PROCEDURE CODE id-seNBReconfigurationCompletion + CRITICALITY ignore +} + +meNBinitiatedSeNBModificationPreparation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBModificationRequest + SUCCESSFUL OUTCOME SeNBModificationRequestAcknowledge + UNSUCCESSFUL OUTCOME SeNBModificationRequestReject + PROCEDURE CODE id-meNBinitiatedSeNBModificationPreparation + CRITICALITY reject +} + +seNBinitiatedSeNBModification X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBModificationRequired + SUCCESSFUL OUTCOME SeNBModificationConfirm + UNSUCCESSFUL OUTCOME SeNBModificationRefuse + PROCEDURE CODE id-seNBinitiatedSeNBModification + CRITICALITY reject +} + +meNBinitiatedSeNBRelease X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBReleaseRequest + PROCEDURE CODE id-meNBinitiatedSeNBRelease + CRITICALITY ignore +} + +seNBinitiatedSeNBRelease X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBReleaseRequired + SUCCESSFUL OUTCOME SeNBReleaseConfirm + PROCEDURE CODE id-seNBinitiatedSeNBRelease + CRITICALITY reject +} + +seNBCounterCheck X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBCounterCheckRequest + PROCEDURE CODE id-seNBCounterCheck + CRITICALITY reject +} + +x2Removal X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE X2RemovalRequest + SUCCESSFUL OUTCOME X2RemovalResponse + UNSUCCESSFUL OUTCOME X2RemovalFailure + PROCEDURE CODE id-x2Removal + CRITICALITY reject +} + +END + + +-- ************************************************************** +-- +-- PDU definitions for X2AP. +-- +-- ************************************************************** + +X2AP-PDU-Contents { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Contents (1) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + ABSInformation, + ABS-Status, + AS-SecurityInformation, + Cause, + CompositeAvailableCapacityGroup, + COUNTvalue, + CriticalityDiagnostics, + CRNTI, + CSGMembershipStatus, + CSG-Id, + DeactivationIndication, + DL-Forwarding, + DynamicDLTransmissionInformation, + ECGI, + E-RAB-ID, + E-RAB-Level-QoS-Parameters, + E-RAB-List, + EUTRANTraceID, + GlobalENB-ID, + GTPtunnelEndpoint, + GUGroupIDList, + GUMMEI, + HandoverReportType, + HandoverRestrictionList, + Masked-IMEISV, + InvokeIndication, + LocationReportingInformation, + MDT-Configuration, + ManagementBasedMDTallowed, + MDTPLMNList, + Neighbour-Information, + PCI, + PDCP-SN, + PLMN-Identity, + ReceiveStatusofULPDCPSDUs, + Registration-Request, + RelativeNarrowbandTxPower, + RadioResourceStatus, + RRCConnReestabIndicator, + RRCConnSetupIndicator, + UE-RLF-Report-Container, + RRC-Context, + ServedCell-Information, + ServedCells, + ShortMAC-I, + SRVCCOperationPossible, + SubscriberProfileIDforRFP, + TargetCellInUTRAN, + TargeteNBtoSource-eNBTransparentContainer, + TimeToWait, + TraceActivation, + TraceDepth, + TransportLayerAddress, + UEAggregateMaximumBitRate, + UE-HistoryInformation, + UE-HistoryInformationFromTheUE, + UE-S1AP-ID, + UESecurityCapabilities, + UE-X2AP-ID, + UL-HighInterferenceIndicationInfo, + UL-InterferenceOverloadIndication, + HWLoadIndicator, + S1TNLLoadIndicator, + Measurement-ID, + ReportCharacteristics, + MobilityParametersInformation, + MobilityParametersModificationRange, + ReceiveStatusOfULPDCPSDUsExtended, + COUNTValueExtended, + SubframeAssignment, + ExtendedULInterferenceOverloadInfo, + ExpectedUEBehaviour, + SeNBSecurityKey, + MeNBtoSeNBContainer, + SeNBtoMeNBContainer, + SCGChangeIndication, + CoMPInformation, + ReportingPeriodicityRSRPMR, + RSRPMRList, + UE-RLF-Report-Container-for-extended-bands, + ProSeAuthorized +FROM X2AP-IEs + + PrivateIE-Container{}, + ProtocolExtensionContainer{}, + ProtocolIE-Container{}, + ProtocolIE-ContainerList{}, + ProtocolIE-ContainerPair{}, + ProtocolIE-ContainerPairList{}, + ProtocolIE-Single-Container{}, + X2AP-PRIVATE-IES, + X2AP-PROTOCOL-EXTENSION, + X2AP-PROTOCOL-IES, + X2AP-PROTOCOL-IES-PAIR +FROM X2AP-Containers + + id-ABSInformation, + id-ActivatedCellList, + id-Cause, + id-CellInformation, + id-CellInformation-Item, + id-CellMeasurementResult, + id-CellMeasurementResult-Item, + id-CellToReport, + id-CellToReport-Item, + id-CompositeAvailableCapacityGroup, + id-CriticalityDiagnostics, + id-DeactivationIndication, + id-DynamicDLTransmissionInformation, + id-E-RABs-Admitted-Item, + id-E-RABs-Admitted-List, + id-E-RABs-NotAdmitted-List, + id-E-RABs-SubjectToStatusTransfer-List, + id-E-RABs-SubjectToStatusTransfer-Item, + id-E-RABs-ToBeSetup-Item, + id-GlobalENB-ID, + id-GUGroupIDList, + id-GUGroupIDToAddList, + id-GUGroupIDToDeleteList, + id-GUMMEI-ID, + id-Masked-IMEISV, + id-InvokeIndication, + id-New-eNB-UE-X2AP-ID, + id-Old-eNB-UE-X2AP-ID, + id-Registration-Request, + id-ReportingPeriodicity, + id-ServedCells, + id-ServedCellsToActivate, + id-ServedCellsToAdd, + id-ServedCellsToModify, + id-ServedCellsToDelete, + id-SRVCCOperationPossible, + id-TargetCell-ID, + id-TargeteNBtoSource-eNBTransparentContainer, + id-TimeToWait, + id-TraceActivation, + id-UE-ContextInformation, + id-UE-HistoryInformation, + id-UE-X2AP-ID, + id-Measurement-ID, + id-ReportCharacteristics, + id-ENB1-Measurement-ID, + id-ENB2-Measurement-ID, + id-ENB1-Cell-ID, + id-ENB2-Cell-ID, + id-ENB2-Proposed-Mobility-Parameters, + id-ENB1-Mobility-Parameters, + id-ENB2-Mobility-Parameters-Modification-Range, + id-FailureCellPCI, + id-Re-establishmentCellECGI, + id-FailureCellCRNTI, + id-ShortMAC-I, + id-SourceCellECGI, + id-FailureCellECGI, + id-HandoverReportType, + id-UE-RLF-Report-Container, + id-PartialSuccessIndicator, + id-MeasurementInitiationResult-List, + id-MeasurementInitiationResult-Item, + id-MeasurementFailureCause-Item, + id-CompleteFailureCauseInformation-List, + id-CompleteFailureCauseInformation-Item, + id-CSGMembershipStatus, + id-CSG-Id, + id-MDTConfiguration, + id-ManagementBasedMDTallowed, + id-ABS-Status, + id-RRCConnSetupIndicator, + id-RRCConnReestabIndicator, + id-TargetCellInUTRAN, + id-MobilityInformation, + id-SourceCellCRNTI, + id-ManagementBasedMDTPLMNList, + id-ReceiveStatusOfULPDCPSDUsExtended, + id-ULCOUNTValueExtended, + id-DLCOUNTValueExtended, + id-IntendedULDLConfiguration, + id-ExtendedULInterferenceOverloadInfo, + id-RNL-Header, + id-x2APMessage, + id-UE-HistoryInformationFromTheUE, + id-ExpectedUEBehaviour, + id-MeNB-UE-X2AP-ID, + id-SeNB-UE-X2AP-ID, + id-UE-SecurityCapabilities, + id-SeNBSecurityKey, + id-SeNBUEAggregateMaximumBitRate, + id-ServingPLMN, + id-E-RABs-ToBeAdded-List, + id-E-RABs-ToBeAdded-Item, + id-MeNBtoSeNBContainer, + id-E-RABs-Admitted-ToBeAdded-List, + id-E-RABs-Admitted-ToBeAdded-Item, + id-SeNBtoMeNBContainer, + id-ResponseInformationSeNBReconfComp, + id-UE-ContextInformationSeNBModReq, + id-E-RABs-ToBeAdded-ModReqItem, + id-E-RABs-ToBeModified-ModReqItem, + id-E-RABs-ToBeReleased-ModReqItem, + id-E-RABs-Admitted-ToBeAdded-ModAckList, + id-E-RABs-Admitted-ToBeModified-ModAckList, + id-E-RABs-Admitted-ToBeReleased-ModAckList, + id-E-RABs-Admitted-ToBeAdded-ModAckItem, + id-E-RABs-Admitted-ToBeModified-ModAckItem, + id-E-RABs-Admitted-ToBeReleased-ModAckItem, + id-SCGChangeIndication, + id-E-RABs-ToBeReleased-ModReqd, + id-E-RABs-ToBeReleased-ModReqdItem, + id-E-RABs-ToBeReleased-List-RelReq, + id-E-RABs-ToBeReleased-RelReqItem, + id-E-RABs-ToBeReleased-List-RelConf, + id-E-RABs-ToBeReleased-RelConfItem, + id-E-RABs-SubjectToCounterCheck-List, + id-E-RABs-SubjectToCounterCheckItem, + id-CoMPInformation, + id-ReportingPeriodicityRSRPMR, + id-RSRPMRList, + id-UE-RLF-Report-Container-for-extended-bands, + id-ProSeAuthorized, + + maxCellineNB, + maxnoofBearers, + maxnoofPDCP-SN, + maxFailedMeasObjects, + maxnoofCellIDforMDT, + maxnoofTAforMDT +FROM X2AP-Constants; + +-- ************************************************************** +-- +-- HANDOVER REQUEST +-- +-- ************************************************************** + +HandoverRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverRequest-IEs}}, + ... +} + +HandoverRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-TargetCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory}| + { ID id-UE-ContextInformation CRITICALITY reject TYPE UE-ContextInformation PRESENCE mandatory}| + { ID id-UE-HistoryInformation CRITICALITY ignore TYPE UE-HistoryInformation PRESENCE mandatory}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-MobilityInformation CRITICALITY ignore TYPE MobilityInformation PRESENCE optional}| + { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| + { ID id-UE-HistoryInformationFromTheUE CRITICALITY ignore TYPE UE-HistoryInformationFromTheUE PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}, + ... +} + +UE-ContextInformation ::= SEQUENCE { + mME-UE-S1AP-ID UE-S1AP-ID, + uESecurityCapabilities UESecurityCapabilities, + aS-SecurityInformation AS-SecurityInformation, + uEaggregateMaximumBitRate UEAggregateMaximumBitRate, + subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, + e-RABs-ToBeSetup-List E-RABs-ToBeSetup-List, + rRC-Context RRC-Context, + handoverRestrictionList HandoverRestrictionList OPTIONAL, + locationReportingInformation LocationReportingInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {UE-ContextInformation-ExtIEs} } OPTIONAL, + ... +} + +UE-ContextInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-ManagementBasedMDTallowed CRITICALITY ignore EXTENSION ManagementBasedMDTallowed PRESENCE optional }| +{ ID id-ManagementBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional }, + ... +} + +E-RABs-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetup-ItemIEs} } + +E-RABs-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeSetup-Item CRITICALITY ignore TYPE E-RABs-ToBeSetup-Item PRESENCE mandatory }, + ... +} + +E-RABs-ToBeSetup-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + dL-Forwarding DL-Forwarding OPTIONAL, + uL-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetup-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeSetup-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +MobilityInformation ::= BIT STRING (SIZE(32)) + +-- ************************************************************** +-- +-- HANDOVER REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +HandoverRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverRequestAcknowledge-IEs}}, + ... +} + +HandoverRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-E-RABs-Admitted-List CRITICALITY ignore TYPE E-RABs-Admitted-List PRESENCE mandatory} | + { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional} | + { ID id-TargeteNBtoSource-eNBTransparentContainer CRITICALITY ignore TYPE TargeteNBtoSource-eNBTransparentContainer PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +E-RABs-Admitted-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ItemIEs} } + +E-RABs-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-Item CRITICALITY ignore TYPE E-RABs-Admitted-Item PRESENCE mandatory } +} + +E-RABs-Admitted-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, + dL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-Item-ExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- HANDOVER PREPARATION FAILURE +-- +-- ************************************************************** + +HandoverPreparationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverPreparationFailure-IEs}}, + ... +} + +HandoverPreparationFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + + ... +} + +-- ************************************************************** +-- +-- Handover Report +-- +-- ************************************************************** + +HandoverReport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverReport-IEs}}, + ... +} + +HandoverReport-IEs X2AP-PROTOCOL-IES ::= { + { ID id-HandoverReportType CRITICALITY ignore TYPE HandoverReportType PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-SourceCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-FailureCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to “HO to Wrong Cell” -- | + { ID id-TargetCellInUTRAN CRITICALITY ignore TYPE TargetCellInUTRAN PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to "InterRAT ping-pong" --| + { ID id-SourceCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE optional}| + { ID id-MobilityInformation CRITICALITY ignore TYPE MobilityInformation PRESENCE optional}| + { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}| + { ID id-UE-RLF-Report-Container-for-extended-bands CRITICALITY ignore TYPE UE-RLF-Report-Container-for-extended-bands PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SN Status Transfer +-- +-- ************************************************************** + +SNStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SNStatusTransfer-IEs}}, + ... +} + +SNStatusTransfer-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-E-RABs-SubjectToStatusTransfer-List CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-List PRESENCE mandatory} , + ... +} + +E-RABs-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { { E-RABs-SubjectToStatusTransfer-ItemIEs} } + +E-RABs-SubjectToStatusTransfer-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-Item PRESENCE mandatory } +} + +E-RABs-SubjectToStatusTransfer-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + + receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, + uL-COUNTvalue COUNTvalue, + dL-COUNTvalue COUNTvalue, + iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-SubjectToStatusTransfer-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-ReceiveStatusOfULPDCPSDUsExtended CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsExtended PRESENCE optional}| + { ID id-ULCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| + { ID id-DLCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- UE Context Release +-- +-- ************************************************************** + +UEContextRelease ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextRelease-IEs}}, + ... +} + +UEContextRelease-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} , + ... +} + + +-- ************************************************************** +-- +-- HANDOVER CANCEL +-- +-- ************************************************************** + +HandoverCancel ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverCancel-IEs}}, + ... +} + +HandoverCancel-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} , + ... +} + +-- ************************************************************** +-- +-- ERROR INDICATION +-- +-- ************************************************************** + +ErrorIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}}, + ... +} + +ErrorIndication-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} | + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional} , + ... +} + +-- ************************************************************** +-- +-- Reset Request +-- +-- ************************************************************** + +ResetRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResetRequest-IEs}}, + ... +} + +ResetRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- Reset Response +-- +-- ************************************************************** + +ResetResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResetResponse-IEs}}, + ... +} + +ResetResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- X2 SETUP REQUEST +-- +-- ************************************************************** + +X2SetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupRequest-IEs}}, + ... +} + +X2SetupRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory} | + { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory} | + { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}, +... +} + + + +-- ************************************************************** +-- +-- X2 SETUP RESPONSE +-- +-- ************************************************************** + +X2SetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupResponse-IEs}}, + ... +} + +X2SetupResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory} | + { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory} | + { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + + +-- ************************************************************** +-- +-- X2 SETUP FAILURE +-- +-- ************************************************************** + +X2SetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupFailure-IEs}}, + ... +} + +X2SetupFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + + ... +} + + + +-- ************************************************************** +-- +-- LOAD INFORMATION +-- +-- ************************************************************** + +LoadInformation ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{LoadInformation-IEs}}, + ... +} + +LoadInformation-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CellInformation CRITICALITY ignore TYPE CellInformation-List PRESENCE mandatory} , + ... +} + +CellInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellInformation-ItemIEs} } + +CellInformation-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellInformation-Item CRITICALITY ignore TYPE CellInformation-Item PRESENCE mandatory } +} + +CellInformation-Item ::= SEQUENCE { + cell-ID ECGI, + ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication OPTIONAL, + ul-HighInterferenceIndicationInfo UL-HighInterferenceIndicationInfo OPTIONAL, + relativeNarrowbandTxPower RelativeNarrowbandTxPower OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CellInformation-Item-ExtIEs} } OPTIONAL, + ... +} + +CellInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-ABSInformation CRITICALITY ignore EXTENSION ABSInformation PRESENCE optional }| +{ ID id-InvokeIndication CRITICALITY ignore EXTENSION InvokeIndication PRESENCE optional }| +{ ID id-IntendedULDLConfiguration CRITICALITY ignore EXTENSION SubframeAssignment PRESENCE optional }| +{ ID id-ExtendedULInterferenceOverloadInfo CRITICALITY ignore EXTENSION ExtendedULInterferenceOverloadInfo PRESENCE optional }| +{ ID id-CoMPInformation CRITICALITY ignore EXTENSION CoMPInformation PRESENCE optional }| +{ ID id-DynamicDLTransmissionInformation CRITICALITY ignore EXTENSION DynamicDLTransmissionInformation PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE +-- +-- ************************************************************** + +ENBConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdate-IEs}}, + ... +} + +ENBConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ServedCellsToAdd CRITICALITY reject TYPE ServedCells PRESENCE optional}| + { ID id-ServedCellsToModify CRITICALITY reject TYPE ServedCellsToModify PRESENCE optional}| + { ID id-ServedCellsToDelete CRITICALITY reject TYPE Old-ECGIs PRESENCE optional}| + { ID id-GUGroupIDToAddList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| + { ID id-GUGroupIDToDeleteList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}, + ... +} + +ServedCellsToModify::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToModify-Item + +ServedCellsToModify-Item::= SEQUENCE { + old-ecgi ECGI, + servedCellInfo ServedCell-Information, + neighbour-Info Neighbour-Information OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ServedCellsToModify-Item-ExtIEs} } OPTIONAL, + ... +} + +ServedCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-DeactivationIndication CRITICALITY ignore EXTENSION DeactivationIndication PRESENCE optional }, + ... +} + + +Old-ECGIs::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE ACKNOWLEDGE +-- +-- ************************************************************** + +ENBConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateAcknowledge-IEs}}, + ... +} + +ENBConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, +... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE FAIURE +-- +-- ************************************************************** + +ENBConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateFailure-IEs}}, + ... +} + +ENBConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + + + +-- ************************************************************** +-- +-- Resource Status Request +-- +-- ************************************************************** + +ResourceStatusRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusRequest-IEs}}, + ... +} + +ResourceStatusRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY ignore TYPE Measurement-ID PRESENCE conditional}|-- The IE shall be present if the Registration Request IE is set to “Stop”-- + { ID id-Registration-Request CRITICALITY reject TYPE Registration-Request PRESENCE mandatory}| + { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE optional}| + { ID id-CellToReport CRITICALITY ignore TYPE CellToReport-List PRESENCE mandatory}| + { ID id-ReportingPeriodicity CRITICALITY ignore TYPE ReportingPeriodicity PRESENCE optional}| + { ID id-PartialSuccessIndicator CRITICALITY ignore TYPE PartialSuccessIndicator PRESENCE optional}| + { ID id-ReportingPeriodicityRSRPMR CRITICALITY ignore TYPE ReportingPeriodicityRSRPMR PRESENCE optional}, + ... +} + + +CellToReport-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellToReport-ItemIEs} } + +CellToReport-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellToReport-Item CRITICALITY ignore TYPE CellToReport-Item PRESENCE mandatory} +} + +CellToReport-Item ::= SEQUENCE { + cell-ID ECGI, + iE-Extensions ProtocolExtensionContainer { {CellToReport-Item-ExtIEs} } OPTIONAL, + ... +} + +CellToReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +ReportingPeriodicity ::= ENUMERATED { + one-thousand-ms, + two-thousand-ms, + five-thousand-ms, + ten-thousand-ms, +... +} + +PartialSuccessIndicator ::= ENUMERATED { + partial-success-allowed, +... +} + +-- ************************************************************** +-- +-- Resource Status Response +-- +-- ************************************************************** + +ResourceStatusResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusResponse-IEs}}, + ... +} + +ResourceStatusResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeasurementInitiationResult-List CRITICALITY ignore TYPE MeasurementInitiationResult-List PRESENCE optional}, + ... +} + + +MeasurementInitiationResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { { MeasurementInitiationResult-ItemIEs} } + +MeasurementInitiationResult-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-MeasurementInitiationResult-Item CRITICALITY ignore TYPE MeasurementInitiationResult-Item PRESENCE mandatory} +} + +MeasurementInitiationResult-Item ::= SEQUENCE { + cell-ID ECGI, + measurementFailureCause-List MeasurementFailureCause-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { MeasurementInitiationResult-Item-ExtIEs} } OPTIONAL, + ... +} + +MeasurementInitiationResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +MeasurementFailureCause-List ::= SEQUENCE (SIZE (1..maxFailedMeasObjects)) OF ProtocolIE-Single-Container { { MeasurementFailureCause-ItemIEs} } + +MeasurementFailureCause-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-MeasurementFailureCause-Item CRITICALITY ignore TYPE MeasurementFailureCause-Item PRESENCE mandatory} +} + +MeasurementFailureCause-Item ::= SEQUENCE { + measurementFailedReportCharacteristics ReportCharacteristics, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { MeasurementFailureCause-Item-ExtIEs} } OPTIONAL, + ... +} + +MeasurementFailureCause-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Resource Status Failure +-- +-- ************************************************************** + +ResourceStatusFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusFailure-IEs}}, + ... +} + +ResourceStatusFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-CompleteFailureCauseInformation-List CRITICALITY ignore TYPE CompleteFailureCauseInformation-List PRESENCE optional}, + ... +} + +CompleteFailureCauseInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CompleteFailureCauseInformation-ItemIEs} } + +CompleteFailureCauseInformation-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CompleteFailureCauseInformation-Item CRITICALITY ignore TYPE CompleteFailureCauseInformation-Item PRESENCE mandatory} +} + +CompleteFailureCauseInformation-Item ::= SEQUENCE { + cell-ID ECGI, + measurementFailureCause-List MeasurementFailureCause-List, + iE-Extensions ProtocolExtensionContainer { { CompleteFailureCauseInformation-Item-ExtIEs} } OPTIONAL, + ... +} + +CompleteFailureCauseInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Resource Status Update +-- +-- ************************************************************** + +ResourceStatusUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusUpdate-IEs}}, + ... +} + +ResourceStatusUpdate-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-CellMeasurementResult CRITICALITY ignore TYPE CellMeasurementResult-List PRESENCE mandatory}, + ... +} + +CellMeasurementResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellMeasurementResult-ItemIEs} } + +CellMeasurementResult-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellMeasurementResult-Item CRITICALITY ignore TYPE CellMeasurementResult-Item PRESENCE mandatory} +} + +CellMeasurementResult-Item ::= SEQUENCE { + cell-ID ECGI, + hWLoadIndicator HWLoadIndicator OPTIONAL, + s1TNLLoadIndicator S1TNLLoadIndicator OPTIONAL, + radioResourceStatus RadioResourceStatus OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CellMeasurementResult-Item-ExtIEs} } OPTIONAL, + ... +} + +CellMeasurementResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-CompositeAvailableCapacityGroup CRITICALITY ignore EXTENSION CompositeAvailableCapacityGroup PRESENCE optional}| + { ID id-ABS-Status CRITICALITY ignore EXTENSION ABS-Status PRESENCE optional}| + { ID id-RSRPMRList CRITICALITY ignore EXTENSION RSRPMRList PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- PRIVATE MESSAGE +-- +-- ************************************************************** + +PrivateMessage ::= SEQUENCE { + privateIEs PrivateIE-Container {{PrivateMessage-IEs}}, + ... +} + +PrivateMessage-IEs X2AP-PRIVATE-IES ::= { + ... +} + +-- ************************************************************** +-- +-- MOBILITY CHANGE REQUEST +-- +-- ************************************************************** + +MobilityChangeRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{MobilityChangeRequest-IEs}}, + ... +} + +MobilityChangeRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-ENB1-Mobility-Parameters CRITICALITY ignore TYPE MobilityParametersInformation PRESENCE optional}| + { ID id-ENB2-Proposed-Mobility-Parameters CRITICALITY reject TYPE MobilityParametersInformation PRESENCE mandatory}| + { ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- MOBILITY CHANGE ACKNOWLEDGE +-- +-- ************************************************************** + +MobilityChangeAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{MobilityChangeAcknowledge-IEs}}, + ... +} + +MobilityChangeAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- MOBILITY CHANGE FAILURE +-- +-- ************************************************************** + +MobilityChangeFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{MobilityChangeFailure-IEs}}, + ... +} + +MobilityChangeFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-ENB2-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-ENB2-Mobility-Parameters-Modification-Range CRITICALITY ignore TYPE MobilityParametersModificationRange PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Radio Link Failure Indication +-- +-- ************************************************************** + +RLFIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RLFIndication-IEs}}, + ... +} + +RLFIndication-IEs X2AP-PROTOCOL-IES ::= { + { ID id-FailureCellPCI CRITICALITY ignore TYPE PCI PRESENCE mandatory}| + { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-FailureCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE mandatory}| + { ID id-ShortMAC-I CRITICALITY ignore TYPE ShortMAC-I PRESENCE optional}| + { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}| + { ID id-RRCConnSetupIndicator CRITICALITY reject TYPE RRCConnSetupIndicator PRESENCE optional}| + { ID id-RRCConnReestabIndicator CRITICALITY ignore TYPE RRCConnReestabIndicator PRESENCE optional}| + { ID id-UE-RLF-Report-Container-for-extended-bands CRITICALITY ignore TYPE UE-RLF-Report-Container-for-extended-bands PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- Cell Activation Request +-- +-- ************************************************************** + +CellActivationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationRequest-IEs}}, + ... +} + +CellActivationRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ServedCellsToActivate CRITICALITY reject TYPE ServedCellsToActivate PRESENCE mandatory}, + ... +} + +ServedCellsToActivate::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToActivate-Item + +ServedCellsToActivate-Item::= SEQUENCE { + ecgi ECGI, + iE-Extensions ProtocolExtensionContainer { { ServedCellsToActivate-Item-ExtIEs} } OPTIONAL, + ... +} + +ServedCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Cell Activation Response +-- +-- ************************************************************** + +CellActivationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationResponse-IEs}}, + ... +} + +CellActivationResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ActivatedCellList CRITICALITY ignore TYPE ActivatedCellList PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +ActivatedCellList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ActivatedCellList-Item + +ActivatedCellList-Item::= SEQUENCE { + ecgi ECGI, + iE-Extensions ProtocolExtensionContainer { { ActivatedCellList-Item-ExtIEs} } OPTIONAL, + ... +} + +ActivatedCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +--************************************************************** +-- +-- CELL ACTIVATION FAILURE +-- +-- ************************************************************** + +CellActivationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationFailure-IEs}}, + ... +} + +CellActivationFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- X2 RELEASE +-- +-- ************************************************************** + +X2Release ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2Release-IEs}}, + ... +} + +X2Release-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}, +... +} + +-- ************************************************************** +-- +-- X2AP Message Transfer +-- +-- ************************************************************** + +X2APMessageTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2APMessageTransfer-IEs}}, + ... +} + +X2APMessageTransfer-IEs X2AP-PROTOCOL-IES ::= { + { ID id-RNL-Header CRITICALITY reject TYPE RNL-Header PRESENCE mandatory}| + { ID id-x2APMessage CRITICALITY reject TYPE X2AP-Message PRESENCE optional}, + ... +} + +RNL-Header ::= SEQUENCE { + source-GlobalENB-ID GlobalENB-ID, + target-GlobalENB-ID GlobalENB-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { RNL-Header-Item-ExtIEs} } OPTIONAL, + ... +} + +RNL-Header-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +X2AP-Message ::= OCTET STRING + +-- ************************************************************** +-- +-- SENB ADDITION REQUEST +-- +-- ************************************************************** + +SeNBAdditionRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBAdditionRequest-IEs}}, + ... +} + +SeNBAdditionRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-UE-SecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE conditional}| + -- This IE shall be present if the Bearer Option IE is set to the value “SCG bearer” -- + { ID id-SeNBSecurityKey CRITICALITY reject TYPE SeNBSecurityKey PRESENCE conditional}| + -- This IE shall be present if the Bearer Option IE is set to the value “SCG bearer” -- + { ID id-SeNBUEAggregateMaximumBitRate CRITICALITY reject TYPE UEAggregateMaximumBitRate PRESENCE mandatory}| + { ID id-ServingPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| + { ID id-E-RABs-ToBeAdded-List CRITICALITY reject TYPE E-RABs-ToBeAdded-List PRESENCE mandatory}| + { ID id-MeNBtoSeNBContainer CRITICALITY reject TYPE MeNBtoSeNBContainer PRESENCE mandatory}, + ... +} + +E-RABs-ToBeAdded-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { { E-RABs-ToBeAdded-ItemIEs} } + +E-RABs-ToBeAdded-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeAdded-Item CRITICALITY reject TYPE E-RABs-ToBeAdded-Item PRESENCE mandatory}, + ... +} + +E-RABs-ToBeAdded-Item ::= CHOICE { + sCG-Bearer E-RABs-ToBeAdded-Item-SCG-Bearer, + split-Bearer E-RABs-ToBeAdded-Item-Split-Bearer, + ... +} + +E-RABs-ToBeAdded-Item-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + dL-Forwarding DL-Forwarding OPTIONAL, + s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-Item-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-Item-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeAdded-Item-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + meNB-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-Item-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-Item-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB ADDITION REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +SeNBAdditionRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBAdditionRequestAcknowledge-IEs}}, + ... +} + +SeNBAdditionRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-Admitted-ToBeAdded-List CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-List PRESENCE mandatory}| + { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| + { ID id-SeNBtoMeNBContainer CRITICALITY reject TYPE SeNBtoMeNBContainer PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +E-RABs-Admitted-ToBeAdded-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-ItemIEs} } + +E-RABs-Admitted-ToBeAdded-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeAdded-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-Item PRESENCE mandatory} +} + +E-RABs-Admitted-ToBeAdded-Item ::= CHOICE { + sCG-Bearer E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer, + split-Bearer E-RABs-Admitted-ToBeAdded-Item-Split-Bearer, + ... +} + +E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-Item-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-Item-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeAdded-Item-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + seNB-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-Item-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-Item-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB ADDITION REQUEST REJECT +-- +-- ************************************************************** + +SeNBAdditionRequestReject ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBAdditionRequestReject-IEs}}, + ... +} + +SeNBAdditionRequestReject-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SENB RECONFIGURATION COMPLETE +-- +-- ************************************************************** + +SeNBReconfigurationComplete ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBReconfigurationComplete-IEs}}, + ... +} + +SeNBReconfigurationComplete-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-ResponseInformationSeNBReconfComp CRITICALITY ignore TYPE ResponseInformationSeNBReconfComp PRESENCE mandatory}, + ... +} + +ResponseInformationSeNBReconfComp ::= CHOICE { + success ResponseInformationSeNBReconfComp-SuccessItem, + reject-by-MeNB ResponseInformationSeNBReconfComp-RejectByMeNBItem, + ... +} + +ResponseInformationSeNBReconfComp-SuccessItem ::= SEQUENCE { + meNBtoSeNBContainer MeNBtoSeNBContainer OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ResponseInformationSeNBReconfComp-SuccessItemExtIEs} } OPTIONAL, + ... +} + +ResponseInformationSeNBReconfComp-SuccessItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ResponseInformationSeNBReconfComp-RejectByMeNBItem ::= SEQUENCE { + cause Cause, + meNBtoSeNBContainer MeNBtoSeNBContainer OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ResponseInformationSeNBReconfComp-RejectByMeNBItemExtIEs} } OPTIONAL, + ... +} + +ResponseInformationSeNBReconfComp-RejectByMeNBItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION REQUEST +-- +-- ************************************************************** + +SeNBModificationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SeNBModificationRequest-IEs}}, + ... +} + +SeNBModificationRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-SCGChangeIndication CRITICALITY ignore TYPE SCGChangeIndication PRESENCE optional}| + { ID id-ServingPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| + { ID id-UE-ContextInformationSeNBModReq CRITICALITY reject TYPE UE-ContextInformationSeNBModReq PRESENCE optional}| + { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}, + ... +} + +UE-ContextInformationSeNBModReq ::= SEQUENCE { + uE-SecurityCapabilities UESecurityCapabilities OPTIONAL, + seNB-SecurityKey SeNBSecurityKey OPTIONAL, + seNBUEAggregateMaximumBitRate UEAggregateMaximumBitRate OPTIONAL, + e-RABs-ToBeAdded E-RABs-ToBeAdded-List-ModReq OPTIONAL, + e-RABs-ToBeModified E-RABs-ToBeModified-List-ModReq OPTIONAL, + e-RABs-ToBeReleased E-RABs-ToBeReleased-List-ModReq OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { UE-ContextInformationSeNBModReqExtIEs} } OPTIONAL, + ... +} + +UE-ContextInformationSeNBModReqExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeAdded-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-ModReqItemIEs} } + +E-RABs-ToBeAdded-ModReqItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeAdded-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeAdded-ModReqItem PRESENCE mandatory}, + ... +} + +E-RABs-ToBeAdded-ModReqItem ::= CHOICE { + sCG-Bearer E-RABs-ToBeAdded-ModReqItem-SCG-Bearer, + split-Bearer E-RABs-ToBeAdded-ModReqItem-Split-Bearer, + ... +} + +E-RABs-ToBeAdded-ModReqItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + dL-Forwarding DL-Forwarding OPTIONAL, + s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeAdded-ModReqItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + meNB-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-ModReqItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeModified-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeModified-ModReqItemIEs} } + +E-RABs-ToBeModified-ModReqItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeModified-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeModified-ModReqItem PRESENCE mandatory}, + ... +} + + +E-RABs-ToBeModified-ModReqItem ::= CHOICE { + sCG-Bearer E-RABs-ToBeModified-ModReqItem-SCG-Bearer, + split-Bearer E-RABs-ToBeModified-ModReqItem-Split-Bearer, + ... +} + +E-RABs-ToBeModified-ModReqItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, + s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeModified-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeModified-ModReqItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, + meNB-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-ModReqItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeModified-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-ModReqItemIEs} } + +E-RABs-ToBeReleased-ModReqItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqItem PRESENCE mandatory}, + ... +} + +E-RABs-ToBeReleased-ModReqItem ::= CHOICE { + sCG-Bearer E-RABs-ToBeReleased-ModReqItem-SCG-Bearer, + split-Bearer E-RABs-ToBeReleased-ModReqItem-Split-Bearer, + ... +} + +E-RABs-ToBeReleased-ModReqItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-ModReqItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +SeNBModificationRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBModificationRequestAcknowledge-IEs}}, + ... +} + +SeNBModificationRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-Admitted-ToBeAdded-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-ModAckList PRESENCE optional}| + { ID id-E-RABs-Admitted-ToBeModified-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-ModAckList PRESENCE optional}| + { ID id-E-RABs-Admitted-ToBeReleased-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeReleased-ModAckList PRESENCE optional}| + { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| + { ID id-SeNBtoMeNBContainer CRITICALITY ignore TYPE SeNBtoMeNBContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +E-RABs-Admitted-ToBeAdded-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-ModAckItemIEs} } + +E-RABs-Admitted-ToBeAdded-ModAckItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeAdded-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-ModAckItem PRESENCE mandatory} +} + +E-RABs-Admitted-ToBeAdded-ModAckItem ::= CHOICE { + sCG-Bearer E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer, + split-Bearer E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer, + ... +} + +E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + seNB-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-ModAckItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} +E-RABs-Admitted-ToBeModified-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeModified-ModAckItemIEs} } + +E-RABs-Admitted-ToBeModified-ModAckItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeModified-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-ModAckItem PRESENCE mandatory} +} + +E-RABs-Admitted-ToBeModified-ModAckItem ::= CHOICE { + sCG-Bearer E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer, + split-Bearer E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer, + ... +} + +E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeModified-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + seNB-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-ModAckItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeModified-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeReleased-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeReleased-ModAckItemIEs} } + +E-RABs-Admitted-ToBeReleased-ModAckItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeReleased-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToReleased-ModAckItem PRESENCE mandatory} +} + +E-RABs-Admitted-ToReleased-ModAckItem ::= CHOICE { + sCG-Bearer E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer, + split-Bearer E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer, + ... +} + +E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-ModAckItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeReleased-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION REQUEST REJECT +-- +-- ************************************************************** + +SeNBModificationRequestReject ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBModificationRequestReject-IEs}}, + ... +} + +SeNBModificationRequestReject-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION REQUIRED +-- +-- ************************************************************** + +SeNBModificationRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBModificationRequired-IEs}}, + ... +} + +SeNBModificationRequired-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-SCGChangeIndication CRITICALITY ignore TYPE SCGChangeIndication PRESENCE optional}| + { ID id-E-RABs-ToBeReleased-ModReqd CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqd PRESENCE optional}| + { ID id-SeNBtoMeNBContainer CRITICALITY ignore TYPE SeNBtoMeNBContainer PRESENCE optional}, + ... +} + + +E-RABs-ToBeReleased-ModReqd ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-ModReqdItemIEs} } + +E-RABs-ToBeReleased-ModReqdItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-ModReqdItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqdItem PRESENCE mandatory }, + ... +} + +E-RABs-ToBeReleased-ModReqdItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqdItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-ModReqdItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION CONFIRM +-- +-- ************************************************************** + +SeNBModificationConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBModificationConfirm-IEs}}, + ... +} + +SeNBModificationConfirm-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION REFUSE +-- +-- ************************************************************** + +SeNBModificationRefuse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBModificationRefuse-IEs}}, + ... +} + +SeNBModificationRefuse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SENB RELEASE REQUEST +-- +-- ************************************************************** + +SeNBReleaseRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBReleaseRequest-IEs}}, + ... +} + +SeNBReleaseRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE optional}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional}| + { ID id-E-RABs-ToBeReleased-List-RelReq CRITICALITY ignore TYPE E-RABs-ToBeReleased-List-RelReq PRESENCE optional}, + ... +} +E-RABs-ToBeReleased-List-RelReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-RelReqItemIEs} } + +E-RABs-ToBeReleased-RelReqItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-RelReqItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-RelReqItem PRESENCE mandatory}, + ... +} + +E-RABs-ToBeReleased-RelReqItem ::= CHOICE { + sCG-Bearer E-RABs-ToBeReleased-RelReqItem-SCG-Bearer, + split-Bearer E-RABs-ToBeReleased-RelReqItem-Split-Bearer, + ... +} + +E-RABs-ToBeReleased-RelReqItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelReqItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-RelReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-RelReqItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelReqItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-RelReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB RELEASE REQUIRED +-- +-- ************************************************************** + +SeNBReleaseRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBReleaseRequired-IEs}}, + ... +} + +SeNBReleaseRequired-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- SENB RELEASE CONFIRM +-- +-- ************************************************************** + +SeNBReleaseConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBReleaseConfirm-IEs}}, + ... +} + +SeNBReleaseConfirm-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-ToBeReleased-List-RelConf CRITICALITY ignore TYPE E-RABs-ToBeReleased-List-RelConf PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} +E-RABs-ToBeReleased-List-RelConf ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-RelConfItemIEs} } + +E-RABs-ToBeReleased-RelConfItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-RelConfItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-RelConfItem PRESENCE mandatory}, + ... +} + +E-RABs-ToBeReleased-RelConfItem ::= CHOICE { + sCG-Bearer E-RABs-ToBeReleased-RelConfItem-SCG-Bearer, + split-Bearer E-RABs-ToBeReleased-RelConfItem-Split-Bearer, + ... +} + +E-RABs-ToBeReleased-RelConfItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelConfItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-RelConfItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-RelConfItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelConfItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-RelConfItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB COUNTER CHECK REQUEST +-- +-- ************************************************************** + +SeNBCounterCheckRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBCounterCheckRequest-IEs}}, + ... +} + +SeNBCounterCheckRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-SubjectToCounterCheck-List CRITICALITY ignore TYPE E-RABs-SubjectToCounterCheck-List PRESENCE mandatory}, + ... +} +E-RABs-SubjectToCounterCheck-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-SubjectToCounterCheckItemIEs} } + +E-RABs-SubjectToCounterCheckItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-SubjectToCounterCheckItem CRITICALITY ignore TYPE E-RABs-SubjectToCounterCheckItem PRESENCE mandatory}, + ... +} + +E-RABs-SubjectToCounterCheckItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-Count INTEGER (0..4294967295), + dL-Count INTEGER (0..4294967295), + iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToCounterCheckItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-SubjectToCounterCheckItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- X2 REMOVAL REQUEST +-- +-- ************************************************************** + +X2RemovalRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2RemovalRequest-IEs}}, + ... +} + +X2RemovalRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}, +... +} + + + +-- ************************************************************** +-- +-- X2 REMOVAL RESPONSE +-- +-- ************************************************************** + +X2RemovalResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2RemovalResponse-IEs}}, + ... +} + +X2RemovalResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + + + +-- ************************************************************** +-- +-- X2 REMOVAL FAILURE +-- +-- ************************************************************** + +X2RemovalFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2RemovalFailure-IEs}}, + ... +} + +X2RemovalFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +END + + +-- ************************************************************** +-- +-- Information Element Definitions +-- +-- ************************************************************** + +X2AP-IEs { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-IEs (2) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + + id-E-RAB-Item, + id-Number-of-Antennaports, + id-MBSFN-Subframe-Info, + id-PRACH-Configuration, + id-CSG-Id, + id-MDTConfiguration, + id-SignallingBasedMDTPLMNList, + id-MultibandInfoList, + id-FreqBandIndicatorPriority, + id-NeighbourTAC, + id-Time-UE-StayedInCell-EnhancedGranularity, + id-MBMS-Service-Area-List, + id-HO-cause, + id-eARFCNExtension, + id-DL-EARFCNExtension, + id-UL-EARFCNExtension, + id-M3Configuration, + id-M4Configuration, + id-M5Configuration, + id-MDT-Location-Info, + id-AdditionalSpecialSubframe-Info, + maxnoofBearers, + maxCellineNB, + maxEARFCN, + maxEARFCNPlusOne, + newmaxEARFCN, + maxInterfaces, + + maxnoofBands, + maxnoofBPLMNs, + maxnoofCells, + maxnoofEPLMNs, + maxnoofEPLMNsPlusOne, + maxnoofForbLACs, + maxnoofForbTACs, + maxnoofNeighbours, + maxnoofPRBs, + maxNrOfErrors, + maxPools, + maxnoofMBSFN, + maxnoofTAforMDT, + maxnoofCellIDforMDT, + maxnoofMBMSServiceAreaIdentities, + maxnoofMDTPLMNs, + maxnoofCoMPHypothesisSet, + maxnoofCoMPCells, + maxUEReport, + maxCellReport, + maxnoofPA + +FROM X2AP-Constants + + Criticality, + ProcedureCode, + ProtocolIE-ID, + TriggeringMessage +FROM X2AP-CommonDataTypes + + ProtocolExtensionContainer{}, + ProtocolIE-Single-Container{}, + + X2AP-PROTOCOL-EXTENSION, + X2AP-PROTOCOL-IES +FROM X2AP-Containers; + +-- A + +ABSInformation ::= CHOICE { + fdd ABSInformationFDD, + tdd ABSInformationTDD, + abs-inactive NULL, + ... +} + +ABSInformationFDD ::= SEQUENCE { + abs-pattern-info BIT STRING (SIZE(40)), + numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, + measurement-subset BIT STRING (SIZE(40)), + iE-Extensions ProtocolExtensionContainer { { ABSInformationFDD-ExtIEs} } OPTIONAL, + ... +} + +ABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ABSInformationTDD ::= SEQUENCE { + abs-pattern-info BIT STRING (SIZE(1..70, ...)), + numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, + measurement-subset BIT STRING (SIZE(1..70, ...)), + iE-Extensions ProtocolExtensionContainer { { ABSInformationTDD-ExtIEs} } OPTIONAL, + ... +} + +ABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ABS-Status ::= SEQUENCE { + dL-ABS-status DL-ABS-status, + usableABSInformation UsableABSInformation, + iE-Extensions ProtocolExtensionContainer { {ABS-Status-ExtIEs} } OPTIONAL, + ... +} + +ABS-Status-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +DL-ABS-status::= INTEGER (0..100) + +AdditionalSpecialSubframe-Info ::= SEQUENCE { + additionalspecialSubframePatterns AdditionalSpecialSubframePatterns, + cyclicPrefixDL CyclicPrefixDL, + cyclicPrefixUL CyclicPrefixUL, + iE-Extensions ProtocolExtensionContainer { { AdditionalSpecialSubframe-Info-ExtIEs} } OPTIONAL, + ... +} + +AdditionalSpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +AdditionalSpecialSubframePatterns ::= ENUMERATED { + ssp0, + ssp1, + ssp2, + ssp3, + ssp4, + ssp5, + ssp6, + ssp7, + ssp8, + ssp9, + ... +} + +AS-SecurityInformation ::= SEQUENCE { + key-eNodeB-star Key-eNodeB-Star, + nextHopChainingCount NextHopChainingCount, + iE-Extensions ProtocolExtensionContainer { { AS-SecurityInformation-ExtIEs} } OPTIONAL, + ... +} + +AS-SecurityInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +AllocationAndRetentionPriority ::= SEQUENCE { + priorityLevel PriorityLevel, + pre-emptionCapability Pre-emptionCapability, + pre-emptionVulnerability Pre-emptionVulnerability, + iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, + ... +} + +AllocationAndRetentionPriority-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +AreaScopeOfMDT ::= CHOICE { + cellBased CellBasedMDT, + tABased TABasedMDT, + pLMNWide NULL, + ..., + tAIBased TAIBasedMDT +} + +-- B + +BenefitMetric ::= INTEGER (-101..100, ...) + +BitRate ::= INTEGER (0..10000000000) +BroadcastPLMNs-Item ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF PLMN-Identity + + +-- C + +CapacityValue ::= INTEGER (0..100) + +CellCapacityClassValue ::= INTEGER (1..100, ...) + +Cause ::= CHOICE { + radioNetwork CauseRadioNetwork, + transport CauseTransport, + protocol CauseProtocol, + misc CauseMisc, + ... +} + +CauseMisc ::= ENUMERATED { + control-processing-overload, + hardware-failure, + om-intervention, + not-enough-user-plane-processing-resources, + unspecified, + ... +} + +CauseProtocol ::= ENUMERATED { + transfer-syntax-error, + abstract-syntax-error-reject, + abstract-syntax-error-ignore-and-notify, + message-not-compatible-with-receiver-state, + semantic-error, + unspecified, + abstract-syntax-error-falsely-constructed-message, + ... +} + +CauseRadioNetwork ::= ENUMERATED { + handover-desirable-for-radio-reasons, + time-critical-handover, + resource-optimisation-handover, + reduce-load-in-serving-cell, + partial-handover, + unknown-new-eNB-UE-X2AP-ID, + unknown-old-eNB-UE-X2AP-ID, + unknown-pair-of-UE-X2AP-ID, + ho-target-not-allowed, + tx2relocoverall-expiry, + trelocprep-expiry, + cell-not-available, + no-radio-resources-available-in-target-cell, + invalid-MME-GroupID, + unknown-MME-Code, + encryption-and-or-integrity-protection-algorithms-not-supported, + reportCharacteristicsEmpty, + noReportPeriodicity, + existingMeasurementID, + unknown-eNB-Measurement-ID, + measurement-temporarily-not-available, + unspecified, + ..., + load-balancing, + handover-optimisation, + value-out-of-allowed-range, + multiple-E-RAB-ID-instances, + switch-off-ongoing, + not-supported-QCI-value, + measurement-not-supported-for-the-object, + tDCoverall-expiry, + tDCprep-expiry, + action-desirable-for-radio-reasons, + reduce-load, + resource-optimisation, + time-critical-action, + target-not-allowed, + no-radio-resources-available, + invalid-QoS-combination, + encryption-algorithms-not-aupported, + procedure-cancelled, + rRM-purpose, + improve-user-bit-rate, + user-inactivity, + radio-connection-with-UE-lost, + failure-in-the-radio-interface-procedure, + bearer-option-not-supported + +} + +CauseTransport ::= ENUMERATED { + transport-resource-unavailable, + unspecified, + ... +} + +CellBasedMDT::= SEQUENCE { + cellIdListforMDT CellIdListforMDT, + iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +CellBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF ECGI + +Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ... } + + +CellType ::= SEQUENCE { + cell-Size Cell-Size, + iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL, + ... +} + +CellType-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CoMPHypothesisSet ::= SEQUENCE (SIZE(1..maxnoofCoMPCells)) OF CoMPHypothesisSetItem + +CoMPHypothesisSetItem ::= SEQUENCE { + coMPCellID ECGI, + coMPHypothesis BIT STRING (SIZE(6..4400, ...)), + iE-Extensions ProtocolExtensionContainer { { CoMPHypothesisSetItem-ExtIEs} } OPTIONAL, + ... +} + +CoMPHypothesisSetItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CoMPInformation ::= SEQUENCE { + coMPInformationItem CoMPInformationItem, + coMPInformationStartTime CoMPInformationStartTime, + iE-Extensions ProtocolExtensionContainer { { CoMPInformation-ExtIEs} } OPTIONAL, + ... +} + +CoMPInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CoMPInformationItem ::= SEQUENCE (SIZE(1..maxnoofCoMPHypothesisSet)) OF + SEQUENCE { + coMPHypothesisSet CoMPHypothesisSet, + benefitMetric BenefitMetric, + iE-Extensions ProtocolExtensionContainer { { CoMPInformationItem-ExtIEs} } OPTIONAL, + ... + } + +CoMPInformationItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CoMPInformationStartTime ::= SEQUENCE (SIZE(0..1)) OF + SEQUENCE { + startSFN INTEGER (0..1023, ...), + startSubframeNumber INTEGER (0..9, ...), + iE-Extensions ProtocolExtensionContainer { { CoMPInformationStartTime-ExtIEs} } OPTIONAL, + ... + } + +CoMPInformationStartTime-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompositeAvailableCapacityGroup ::= SEQUENCE { + dL-CompositeAvailableCapacity CompositeAvailableCapacity, + uL-CompositeAvailableCapacity CompositeAvailableCapacity, + iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacityGroup-ExtIEs} } OPTIONAL, + ... +} + +CompositeAvailableCapacityGroup-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompositeAvailableCapacity ::= SEQUENCE { + cellCapacityClassValue CellCapacityClassValue OPTIONAL, + capacityValue CapacityValue, + iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacity-ExtIEs} } OPTIONAL, + ... +} + +CompositeAvailableCapacity-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTvalue ::= SEQUENCE { + pDCP-SN PDCP-SN, + hFN HFN, + iE-Extensions ProtocolExtensionContainer { { COUNTvalue-ExtIEs} } OPTIONAL, + ... +} + +COUNTvalue-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTValueExtended ::= SEQUENCE { + pDCP-SNExtended PDCP-SNExtended, + hFNModified HFNModified, + iE-Extensions ProtocolExtensionContainer { { COUNTValueExtended-ExtIEs} } OPTIONAL, + ... +} + +COUNTValueExtended-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL, + ... +} + + +CriticalityDiagnostics-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF + SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-List-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CRNTI ::= BIT STRING (SIZE (16)) + +CSGMembershipStatus ::= ENUMERATED { + member, + not-member +} + +CSG-Id ::= BIT STRING (SIZE (27)) + +CyclicPrefixDL ::= ENUMERATED { + normal, + extended, + ... +} + +CyclicPrefixUL ::= ENUMERATED { + normal, + extended, + ... +} + + +-- D + +DeactivationIndication::= ENUMERATED { + deactivated, + ... +} + +DL-Forwarding ::= ENUMERATED { + dL-forwardingProposed, + ... +} + +DL-GBR-PRB-usage::= INTEGER (0..100) + +DL-non-GBR-PRB-usage::= INTEGER (0..100) + +DL-Total-PRB-usage::= INTEGER (0..100) + +DynamicDLTransmissionInformation ::= CHOICE { + naics-active DynamicNAICSInformation, + naics-inactive NULL, + ... +} + +DynamicNAICSInformation ::= SEQUENCE { + transmissionModes BIT STRING (SIZE(8)) OPTIONAL, + pB-information INTEGER(0..3) OPTIONAL, + pA-list SEQUENCE (SIZE(0..maxnoofPA)) OF PA-Values, + iE-Extensions ProtocolExtensionContainer { {DynamicNAICSInformation-ExtIEs} } OPTIONAL, + ... +} + +DynamicNAICSInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- E + +EARFCN ::= INTEGER (0..maxEARFCN) + +EARFCNExtension ::= INTEGER(maxEARFCNPlusOne..newmaxEARFCN, ...) + +FDD-Info ::= SEQUENCE { + uL-EARFCN EARFCN, + dL-EARFCN EARFCN, + uL-Transmission-Bandwidth Transmission-Bandwidth, + dL-Transmission-Bandwidth Transmission-Bandwidth, + iE-Extensions ProtocolExtensionContainer { {FDD-Info-ExtIEs} } OPTIONAL, + ... +} + +FDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-UL-EARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}| + { ID id-DL-EARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}, + ... +} + +TDD-Info ::= SEQUENCE { + eARFCN EARFCN, + transmission-Bandwidth Transmission-Bandwidth, + subframeAssignment SubframeAssignment, + specialSubframe-Info SpecialSubframe-Info, + iE-Extensions ProtocolExtensionContainer { {TDD-Info-ExtIEs} } OPTIONAL, + ... +} +TDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-AdditionalSpecialSubframe-Info CRITICALITY ignore EXTENSION AdditionalSpecialSubframe-Info PRESENCE optional}| + { ID id-eARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}, + ... +} + +EUTRA-Mode-Info ::= CHOICE { + fDD FDD-Info, + tDD TDD-Info, + ... +} + +ECGI ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + eUTRANcellIdentifier EUTRANCellIdentifier, + iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL, + ... +} + +ECGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENB-ID ::= CHOICE { + macro-eNB-ID BIT STRING (SIZE (20)), + home-eNB-ID BIT STRING (SIZE (28)), + ... +} + +EncryptionAlgorithms ::= BIT STRING (SIZE (16, ...)) + +EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMN-Identity + +E-RAB-ID ::= INTEGER (0..15, ...) + +E-RAB-Level-QoS-Parameters ::= SEQUENCE { + qCI QCI, + allocationAndRetentionPriority AllocationAndRetentionPriority, + gbrQosInformation GBR-QosInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { E-RAB-Level-QoS-Parameters-ExtIEs} } OPTIONAL, + ... +} + +E-RAB-Level-QoS-Parameters-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RAB-List ::= SEQUENCE (SIZE(1.. maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RAB-ItemIEs} } + +E-RAB-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RAB-Item CRITICALITY ignore TYPE E-RAB-Item PRESENCE mandatory }, + ... +} + +E-RAB-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RAB-Item-ExtIEs} } OPTIONAL, + ... +} + +E-RAB-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +EUTRANCellIdentifier ::= BIT STRING (SIZE (28)) + +EUTRANTraceID ::= OCTET STRING (SIZE (8)) + + +EventType ::= ENUMERATED{ + change-of-serving-cell, + ... +} + +ExpectedUEBehaviour ::= SEQUENCE { + expectedActivity ExpectedUEActivityBehaviour OPTIONAL, + expectedHOInterval ExpectedHOInterval OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ExpectedUEBehaviour-ExtIEs} } OPTIONAL, + ... +} + +ExpectedUEBehaviour-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ExpectedUEActivityBehaviour ::= SEQUENCE { + expectedActivityPeriod ExpectedActivityPeriod OPTIONAL, + expectedIdlePeriod ExpectedIdlePeriod OPTIONAL, + sourceofUEActivityBehaviourInformation SourceOfUEActivityBehaviourInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ExpectedUEActivityBehaviour-ExtIEs} } OPTIONAL, + ... +} + +ExpectedUEActivityBehaviour-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ExpectedActivityPeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) + +ExpectedIdlePeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) + +SourceOfUEActivityBehaviourInformation ::= ENUMERATED { + subscription-information, + statistics, + ... +} + +ExpectedHOInterval ::= ENUMERATED { + sec15, sec30, sec60, sec90, sec120, sec180, long-time, + ... +} + +ExtendedULInterferenceOverloadInfo ::= SEQUENCE { + associatedSubframes BIT STRING (SIZE (5)), + extended-ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication, + iE-Extensions ProtocolExtensionContainer { { ExtendedULInterferenceOverloadInfo-ExtIEs} } OPTIONAL, + ... +} + +ExtendedULInterferenceOverloadInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- F + +ForbiddenInterRATs ::= ENUMERATED { + all, + geran, + utran, + cdma2000, + ..., + geranandutran, + cdma2000andutran + +} + +ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item + +ForbiddenTAs-Item ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + forbiddenTACs ForbiddenTACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenTAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC + +ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item + +ForbiddenLAs-Item ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + forbiddenLACs ForbiddenLACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenLAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC + +Fourframes ::= BIT STRING (SIZE (24)) + +FreqBandIndicator ::= INTEGER (1..256, ...) + +FreqBandIndicatorPriority ::= ENUMERATED { + not-broadcasted, + broadcasted, + ... +} + +-- G + +GBR-QosInformation ::= SEQUENCE { + e-RAB-MaximumBitrateDL BitRate, + e-RAB-MaximumBitrateUL BitRate, + e-RAB-GuaranteedBitrateDL BitRate, + e-RAB-GuaranteedBitrateUL BitRate, + iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL, + ... +} + +GBR-QosInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GlobalENB-ID ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + eNB-ID ENB-ID, + iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL, + ... +} + +GlobalENB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GTPtunnelEndpoint ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEI, + iE-Extensions ProtocolExtensionContainer { {GTPtunnelEndpoint-ExtIEs} } OPTIONAL, + ... +} + +GTPtunnelEndpoint-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GTP-TEI ::= OCTET STRING (SIZE (4)) + +GUGroupIDList ::= SEQUENCE (SIZE (1..maxPools)) OF GU-Group-ID + + +GU-Group-ID ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + mME-Group-ID MME-Group-ID, + iE-Extensions ProtocolExtensionContainer { {GU-Group-ID-ExtIEs} } OPTIONAL, + ... +} + +GU-Group-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +GUMMEI ::= SEQUENCE { + + gU-Group-ID GU-Group-ID, + mME-Code MME-Code, + iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, + ... +} + +GUMMEI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- H + +HandoverReportType ::= ENUMERATED { + hoTooEarly, + hoToWrongCell, + ..., + interRATpingpong +} + +HandoverRestrictionList ::= SEQUENCE { + servingPLMN PLMN-Identity, + equivalentPLMNs EPLMNs OPTIONAL, + forbiddenTAs ForbiddenTAs OPTIONAL, + forbiddenLAs ForbiddenLAs OPTIONAL, + forbiddenInterRATs ForbiddenInterRATs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, + ... +} + +HandoverRestrictionList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +HFN ::= INTEGER (0..1048575) + +HFNModified ::= INTEGER (0..131071) + +HWLoadIndicator ::= SEQUENCE { + dLHWLoadIndicator LoadIndicator, + uLHWLoadIndicator LoadIndicator, + iE-Extensions ProtocolExtensionContainer { { HWLoadIndicator-ExtIEs} } OPTIONAL, + ... +} + +HWLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- I + +Masked-IMEISV ::= BIT STRING (SIZE (64)) + +InvokeIndication ::= ENUMERATED{ + abs-information, + ..., + naics-information-start, + naics-information-stop +} + +IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16, ...)) + +InterfacesToTrace ::= BIT STRING (SIZE (8)) +-- J +-- K + + +Key-eNodeB-Star ::= BIT STRING (SIZE(256)) + +-- L + + +LAC ::= OCTET STRING (SIZE (2)) --(EXCEPT ('0000'H|'FFFE'H)) + +LastVisitedCell-Item ::= CHOICE { + e-UTRAN-Cell LastVisitedEUTRANCellInformation, + uTRAN-Cell LastVisitedUTRANCellInformation, + gERAN-Cell LastVisitedGERANCellInformation, + ... +} + +LastVisitedEUTRANCellInformation ::= SEQUENCE { + global-Cell-ID ECGI, + cellType CellType, + time-UE-StayedInCell Time-UE-StayedInCell, + iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, + ... +} + +LastVisitedEUTRANCellInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +-- Extension for Rel-11 to support enhanced granularity for time UE stayed in cell -- + { ID id-Time-UE-StayedInCell-EnhancedGranularity CRITICALITY ignore EXTENSION Time-UE-StayedInCell-EnhancedGranularity PRESENCE optional}| + { ID id-HO-cause CRITICALITY ignore EXTENSION Cause PRESENCE optional}, + ... +} + +LastVisitedUTRANCellInformation ::= OCTET STRING + +LastVisitedGERANCellInformation ::= CHOICE { + undefined NULL, + ... +} + +Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...} + +LoadIndicator ::= ENUMERATED { + lowLoad, + mediumLoad, + highLoad, + overLoad, + ... +} + + + +LocationReportingInformation ::= SEQUENCE { + eventType EventType, + reportArea ReportArea, + iE-Extensions ProtocolExtensionContainer { {LocationReportingInformation-ExtIEs} } OPTIONAL, + ... +} + +LocationReportingInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::={ + ... +} + +-- M + +M3Configuration ::= SEQUENCE { + m3period M3period, + iE-Extensions ProtocolExtensionContainer { { M3Configuration-ExtIEs} } OPTIONAL, + ... +} + +M3Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M3period ::= ENUMERATED {ms100, ms1000, ms10000, ... } + +M4Configuration ::= SEQUENCE { + m4period M4period, + m4-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M4Configuration-ExtIEs} } OPTIONAL, + ... +} + +M4Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + + +M5Configuration ::= SEQUENCE { + m5period M5period, + m5-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M5Configuration-ExtIEs} } OPTIONAL, + ... +} + +M5Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + +MDT-Activation ::= ENUMERATED { + immediate-MDT-only, + immediate-MDT-and-Trace, + ... +} + +MDT-Configuration ::= SEQUENCE { + mdt-Activation MDT-Activation, + areaScopeOfMDT AreaScopeOfMDT, + measurementsToActivate MeasurementsToActivate, + m1reportingTrigger M1ReportingTrigger, + m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL, +-- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1 + m1periodicReporting M1PeriodicReporting OPTIONAL, +-- Included in case of periodic, or event-triggered periodic reporting for measurement M1 + iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTIONAL, + ... +} + +MDT-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + {ID id-M3Configuration CRITICALITY ignore EXTENSION M3Configuration PRESENCE conditional}| + {ID id-M4Configuration CRITICALITY ignore EXTENSION M4Configuration PRESENCE conditional}| + {ID id-M5Configuration CRITICALITY ignore EXTENSION M5Configuration PRESENCE conditional}| + {ID id-MDT-Location-Info CRITICALITY ignore EXTENSION MDT-Location-Info PRESENCE optional}| + {ID id-SignallingBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional}, + ... +} + +MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMN-Identity + +MDT-Location-Info ::= BIT STRING (SIZE (8)) + +MeasurementsToActivate::= BIT STRING (SIZE (8)) + +MeasurementThresholdA2 ::= CHOICE { + threshold-RSRP Threshold-RSRP, + threshold-RSRQ Threshold-RSRQ, + ... +} + +MeNBtoSeNBContainer ::= OCTET STRING + +MME-Group-ID ::= OCTET STRING (SIZE (2)) + +MME-Code ::= OCTET STRING (SIZE (1)) + +Measurement-ID ::= INTEGER (1..4095, ...) + +MBMS-Service-Area-Identity-List ::= SEQUENCE (SIZE(1.. maxnoofMBMSServiceAreaIdentities)) OF MBMS-Service-Area-Identity + +MBMS-Service-Area-Identity ::= OCTET STRING (SIZE (2)) + +MBSFN-Subframe-Infolist::= SEQUENCE (SIZE(1.. maxnoofMBSFN)) OF MBSFN-Subframe-Info + +MBSFN-Subframe-Info ::= SEQUENCE { + radioframeAllocationPeriod RadioframeAllocationPeriod, + radioframeAllocationOffset RadioframeAllocationOffset, + subframeAllocation SubframeAllocation, + iE-Extensions ProtocolExtensionContainer { { MBSFN-Subframe-Info-ExtIEs } } OPTIONAL, + ... +} + +MBSFN-Subframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ManagementBasedMDTallowed ::= ENUMERATED {allowed, ...} + +MobilityParametersModificationRange ::= SEQUENCE { + handoverTriggerChangeLowerLimit INTEGER (-20..20), + handoverTriggerChangeUpperLimit INTEGER (-20..20), + ... +} + +MobilityParametersInformation ::= SEQUENCE { + handoverTriggerChange INTEGER (-20..20), + ... +} + +MultibandInfoList ::= SEQUENCE (SIZE(1..maxnoofBands)) OF BandInfo + + +BandInfo ::= SEQUENCE { + freqBandIndicator FreqBandIndicator, + iE-Extensions ProtocolExtensionContainer { { BandInfo-ExtIEs } } OPTIONAL, + ... +} + +BandInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- N + +Neighbour-Information ::= SEQUENCE (SIZE (0..maxnoofNeighbours)) OF SEQUENCE { + eCGI ECGI, + pCI PCI, + eARFCN EARFCN, + iE-Extensions ProtocolExtensionContainer { {Neighbour-Information-ExtIEs} } OPTIONAL, + ... +} + +Neighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-NeighbourTAC CRITICALITY ignore EXTENSION TAC PRESENCE optional}| + { ID id-eARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}, + ... +} + +NextHopChainingCount ::= INTEGER (0..7) + +Number-of-Antennaports ::= ENUMERATED { + an1, + an2, + an4, + ... +} + +-- O + +Oneframe ::= BIT STRING (SIZE (6)) + +-- P + +PA-Values ::= ENUMERATED { + dB-6, + dB-4dot77, + dB-3, + dB-1dot77, + dB0, + dB1, + dB2, + dB3, + ... +} + +PDCP-SN ::= INTEGER (0..4095) + +PDCP-SNExtended ::= INTEGER (0..32767) + +PCI ::= INTEGER (0..503, ...) + +M1PeriodicReporting ::= SEQUENCE { + reportInterval ReportIntervalMDT, + reportAmount ReportAmountMDT, + iE-Extensions ProtocolExtensionContainer { { M1PeriodicReporting-ExtIEs} } OPTIONAL, + ... +} + +M1PeriodicReporting-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +PLMN-Identity ::= OCTET STRING (SIZE(3)) + +PRACH-Configuration ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + zeroCorrelationIndex INTEGER (0..15), + highSpeedFlag BOOLEAN, + prach-FreqOffset INTEGER (0..94), + prach-ConfigIndex INTEGER (0..63) OPTIONAL, -- present for TDD -- + iE-Extensions ProtocolExtensionContainer { {PRACH-Configuration-ExtIEs} } OPTIONAL, + ... +} + +PRACH-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +Pre-emptionCapability ::= ENUMERATED { + shall-not-trigger-pre-emption, + may-trigger-pre-emption +} + +Pre-emptionVulnerability ::= ENUMERATED { + not-pre-emptable, + pre-emptable +} + +PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) + +ProSeAuthorized ::= SEQUENCE { + proSeDirectDiscovery ProSeDirectDiscovery OPTIONAL, + proSeDirectCommunication ProSeDirectCommunication OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ProSeAuthorized-ExtIEs} } OPTIONAL, + ... +} + +ProSeAuthorized-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ProSeDirectDiscovery ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +ProSeDirectCommunication ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +-- Q + +QCI ::= INTEGER (0..255) + +-- R + +RadioframeAllocationOffset ::= INTEGER (0..7, ...) + +RadioframeAllocationPeriod ::= ENUMERATED{ + n1, + n2, + n4, + n8, + n16, + n32, + ... +} + + +RadioResourceStatus ::= SEQUENCE { + dL-GBR-PRB-usage DL-GBR-PRB-usage, + uL-GBR-PRB-usage UL-GBR-PRB-usage, + dL-non-GBR-PRB-usage DL-non-GBR-PRB-usage, + uL-non-GBR-PRB-usage UL-non-GBR-PRB-usage, + dL-Total-PRB-usage DL-Total-PRB-usage, + uL-Total-PRB-usage UL-Total-PRB-usage, + iE-Extensions ProtocolExtensionContainer { {RadioResourceStatus-ExtIEs} } OPTIONAL, + ... +} + +RadioResourceStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) + +ReceiveStatusOfULPDCPSDUsExtended ::= BIT STRING (SIZE(1..16384)) + +Registration-Request ::= ENUMERATED { + start, + stop, + ... +} + +RelativeNarrowbandTxPower ::= SEQUENCE { + + rNTP-PerPRB BIT STRING (SIZE(6..110, ...)), + rNTP-Threshold RNTP-Threshold, + numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, + p-B INTEGER (0..3,...), + pDCCH-InterferenceImpact INTEGER (0..4,...), + iE-Extensions ProtocolExtensionContainer { { RelativeNarrowbandTxPower-ExtIEs} } OPTIONAL, + ... +} + +RelativeNarrowbandTxPower-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity} + +ReportArea ::= ENUMERATED{ + ecgi, + ... +} + +ReportingPeriodicityRSRPMR ::= ENUMERATED { + one-hundred-20-ms, + two-hundred-40-ms, + four-hundred-80-ms, + six-hundred-40-ms, +... +} + +ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60} + +ReportCharacteristics ::= BIT STRING (SIZE (32)) + +M1ReportingTrigger::= ENUMERATED{ + periodic, + a2eventtriggered, + ..., + a2eventtriggered-periodic +} + +RNTP-Threshold ::= ENUMERATED { + minusInfinity, + minusEleven, + minusTen, + minusNine, + minusEight, + minusSeven, + minusSix, + minusFive, + minusFour, + minusThree, + minusTwo, + minusOne, + zero, + one, + two, + three, + ... +} + +RRC-Context ::= OCTET STRING + +RRCConnReestabIndicator ::= ENUMERATED { + reconfigurationFailure, handoverFailure, otherFailure, ... +} +-- The values correspond to the values of ReestablishmentCause reported from the UE in the RRCConnectionReestablishmentRequest, as defined in TS 36.331 [9] + +RRCConnSetupIndicator::= ENUMERATED { + rrcConnSetup, + ... +} + +RSRPMeasurementResult ::= SEQUENCE (SIZE(1..maxCellReport)) OF + SEQUENCE { + rSRPCellID ECGI, + rSRPMeasured INTEGER (0..97, ...), + iE-Extensions ProtocolExtensionContainer { { RSRPMeasurementResult-ExtIEs} } OPTIONAL, + ... + } + +RSRPMeasurementResult-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +RSRPMRList ::= SEQUENCE (SIZE(1..maxUEReport)) OF + SEQUENCE { + rSRPMeasurementResult RSRPMeasurementResult, + iE-Extensions ProtocolExtensionContainer { { RSRPMRList-ExtIEs} } OPTIONAL, + ... + } + +RSRPMRList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- S + +S1TNLLoadIndicator ::= SEQUENCE { + dLS1TNLLoadIndicator LoadIndicator, + uLS1TNLLoadIndicator LoadIndicator, + iE-Extensions ProtocolExtensionContainer { { S1TNLLoadIndicator-ExtIEs} } OPTIONAL, + ... +} + +S1TNLLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +SCGChangeIndication ::= ENUMERATED {pDCPCountWrapAround, pSCellChange, other, ...} + +SeNBSecurityKey ::= BIT STRING (SIZE(256)) + +SeNBtoMeNBContainer ::= OCTET STRING + + +ServedCells ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { + servedCellInfo ServedCell-Information, + neighbour-Info Neighbour-Information OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ServedCell-ExtIEs} } OPTIONAL, + ... +} + +ServedCell-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedCell-Information ::= SEQUENCE { + pCI PCI, + cellId ECGI, + tAC TAC, + broadcastPLMNs BroadcastPLMNs-Item, + eUTRA-Mode-Info EUTRA-Mode-Info, + iE-Extensions ProtocolExtensionContainer { {ServedCell-Information-ExtIEs} } OPTIONAL, + ... +} + +ServedCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-Number-of-Antennaports CRITICALITY ignore EXTENSION Number-of-Antennaports PRESENCE optional}| + { ID id-PRACH-Configuration CRITICALITY ignore EXTENSION PRACH-Configuration PRESENCE optional}| + { ID id-MBSFN-Subframe-Info CRITICALITY ignore EXTENSION MBSFN-Subframe-Infolist PRESENCE optional}| + { ID id-CSG-Id CRITICALITY ignore EXTENSION CSG-Id PRESENCE optional}| + { ID id-MBMS-Service-Area-List CRITICALITY ignore EXTENSION MBMS-Service-Area-Identity-List PRESENCE optional}| + { ID id-MultibandInfoList CRITICALITY ignore EXTENSION MultibandInfoList PRESENCE optional}| + { ID id-FreqBandIndicatorPriority CRITICALITY ignore EXTENSION FreqBandIndicatorPriority PRESENCE optional}, + ... +} + +ShortMAC-I ::= BIT STRING (SIZE(16)) + +SRVCCOperationPossible ::= ENUMERATED { + possible, + ... +} + +SubframeAssignment ::= ENUMERATED { + sa0, + sa1, + sa2, + sa3, + sa4, + sa5, + sa6, + ... +} + +SpecialSubframe-Info ::= SEQUENCE { + specialSubframePatterns SpecialSubframePatterns, + cyclicPrefixDL CyclicPrefixDL, + cyclicPrefixUL CyclicPrefixUL, + iE-Extensions ProtocolExtensionContainer { { SpecialSubframe-Info-ExtIEs} } OPTIONAL, + ... +} + +SpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +SpecialSubframePatterns ::= ENUMERATED { + ssp0, + ssp1, + ssp2, + ssp3, + ssp4, + ssp5, + ssp6, + ssp7, + ssp8, + ... +} + +SubscriberProfileIDforRFP ::= INTEGER (1..256) + +SubframeAllocation ::= CHOICE { + oneframe Oneframe, + fourframes Fourframes, + ... +} + +-- T + +TAC ::= OCTET STRING (SIZE (2)) + +TABasedMDT::= SEQUENCE { + tAListforMDT TAListforMDT, + iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TABasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC + +TAIBasedMDT ::= SEQUENCE { + tAIListforMDT TAIListforMDT, + iE-Extensions ProtocolExtensionContainer { {TAIBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TAIBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAIListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAI-Item + +TAI-Item ::= SEQUENCE { + tAC TAC, + pLMN-Identity PLMN-Identity, + iE-Extensions ProtocolExtensionContainer { { TAI-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TargetCellInUTRAN ::= OCTET STRING -- This IE is to be encoded according to the UTRAN Cell ID in the Last Visited UTRAN Cell Information IE in TS 25.413 [24] + +M1ThresholdEventA2 ::= SEQUENCE { + measurementThreshold MeasurementThresholdA2, + iE-Extensions ProtocolExtensionContainer { { M1ThresholdEventA2-ExtIEs} } OPTIONAL, + ... +} + +M1ThresholdEventA2-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TargeteNBtoSource-eNBTransparentContainer ::= OCTET STRING + +Threshold-RSRP ::= INTEGER(0..97) + +Threshold-RSRQ ::= INTEGER(0..34) + +TimeToWait ::= ENUMERATED { + v1s, + v2s, + v5s, + v10s, + v20s, + v60s, + ... +} + +Time-UE-StayedInCell ::= INTEGER (0..4095) + +Time-UE-StayedInCell-EnhancedGranularity ::= INTEGER (0..40950) + + +TraceActivation ::= SEQUENCE { + eUTRANTraceID EUTRANTraceID, + interfacesToTrace InterfacesToTrace, + traceDepth TraceDepth, + traceCollectionEntityIPAddress TraceCollectionEntityIPAddress, + iE-Extensions ProtocolExtensionContainer { {TraceActivation-ExtIEs} } OPTIONAL, + ... +} + +TraceActivation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional}, + ... +} + +TraceCollectionEntityIPAddress ::= BIT STRING (SIZE(1..160, ...)) + +TraceDepth ::= ENUMERATED { + minimum, + medium, + maximum, + minimumWithoutVendorSpecificExtension, + mediumWithoutVendorSpecificExtension, + maximumWithoutVendorSpecificExtension, + ... +} + + + + +Transmission-Bandwidth ::= ENUMERATED { + bw6, + bw15, + bw25, + bw50, + bw75, + bw100, + ... +} + +TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) + +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + + +-- U + +UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item + +UE-HistoryInformationFromTheUE ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the VisitedCellInfoList field contained in the UEInformationResponse message as defined in TS 36.331 [9] + +UE-S1AP-ID ::= INTEGER (0.. 4294967295) + +UE-X2AP-ID ::= INTEGER (0..4095) + +UEAggregateMaximumBitRate ::= SEQUENCE { + uEaggregateMaximumBitRateDownlink BitRate, + uEaggregateMaximumBitRateUplink BitRate, + iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrate-ExtIEs} } OPTIONAL, + ... +} + +UEAggregate-MaximumBitrate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UESecurityCapabilities ::= SEQUENCE { + encryptionAlgorithms EncryptionAlgorithms, + integrityProtectionAlgorithms IntegrityProtectionAlgorithms, + iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL, +... +} + +UESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UL-GBR-PRB-usage::= INTEGER (0..100) + +UL-non-GBR-PRB-usage::= INTEGER (0..100) + +UL-Total-PRB-usage::= INTEGER (0..100) + +UL-InterferenceOverloadIndication ::= SEQUENCE (SIZE(1..maxnoofPRBs)) OF UL-InterferenceOverloadIndication-Item + +UL-InterferenceOverloadIndication-Item ::= ENUMERATED { + high-interference, + medium-interference, + low-interference, + ... +} + +UL-HighInterferenceIndicationInfo ::= SEQUENCE (SIZE(1..maxCellineNB)) OF UL-HighInterferenceIndicationInfo-Item + +UL-HighInterferenceIndicationInfo-Item ::= SEQUENCE { + target-Cell-ID ECGI, + ul-interferenceindication UL-HighInterferenceIndication, + iE-Extensions ProtocolExtensionContainer { { UL-HighInterferenceIndicationInfo-Item-ExtIEs} } OPTIONAL, + ... +} + +UL-HighInterferenceIndicationInfo-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UL-HighInterferenceIndication ::= BIT STRING (SIZE(1..110, ...)) + +UE-RLF-Report-Container::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the RLF-Report-r9 field contained in the UEInformationResponse message as defined in TS 36.331 [9] + +UE-RLF-Report-Container-for-extended-bands ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the RLF-Report-v9e0 field contained in the UEInformationResponse message as defined in TS 36.331 [9] + +UsableABSInformation ::= CHOICE { + fdd UsableABSInformationFDD, + tdd UsableABSInformationTDD, + ... +} + +UsableABSInformationFDD ::= SEQUENCE { + usable-abs-pattern-info BIT STRING (SIZE(40)), + iE-Extensions ProtocolExtensionContainer { { UsableABSInformationFDD-ExtIEs} } OPTIONAL, + ... +} + +UsableABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UsableABSInformationTDD ::= SEQUENCE { + usaable-abs-pattern-info BIT STRING (SIZE(1..70, ...)), + iE-Extensions ProtocolExtensionContainer { { UsableABSInformationTDD-ExtIEs} } OPTIONAL, + ... +} + +UsableABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- V +-- W +-- X +-- Y +-- Z + +END + + +-- ************************************************************** +-- +-- Common definitions +-- +-- ************************************************************** + +X2AP-CommonDataTypes { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-CommonDataTypes (3) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- Extension constants +-- +-- ************************************************************** + +maxPrivateIEs INTEGER ::= 65535 +maxProtocolExtensions INTEGER ::= 65535 +maxProtocolIEs INTEGER ::= 65535 + +-- ************************************************************** +-- +-- Common Data Types +-- +-- ************************************************************** + +Criticality ::= ENUMERATED { reject, ignore, notify } + +Presence ::= ENUMERATED { optional, conditional, mandatory } + +PrivateIE-ID ::= CHOICE { + local INTEGER (0.. maxPrivateIEs), + global OBJECT IDENTIFIER +} + +ProcedureCode ::= INTEGER (0..255) + + +ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs) + + +TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome} + +END + + +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +X2AP-Constants { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Constants (4) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + ProcedureCode, + ProtocolIE-ID +FROM X2AP-CommonDataTypes; + +-- ************************************************************** +-- +-- Elementary Procedures +-- +-- ************************************************************** + +id-handoverPreparation ProcedureCode ::= 0 +id-handoverCancel ProcedureCode ::= 1 +id-loadIndication ProcedureCode ::= 2 +id-errorIndication ProcedureCode ::= 3 +id-snStatusTransfer ProcedureCode ::= 4 +id-uEContextRelease ProcedureCode ::= 5 +id-x2Setup ProcedureCode ::= 6 +id-reset ProcedureCode ::= 7 +id-eNBConfigurationUpdate ProcedureCode ::= 8 +id-resourceStatusReportingInitiation ProcedureCode ::= 9 +id-resourceStatusReporting ProcedureCode ::= 10 +id-privateMessage ProcedureCode ::= 11 +id-mobilitySettingsChange ProcedureCode ::= 12 +id-rLFIndication ProcedureCode ::= 13 +id-handoverReport ProcedureCode ::= 14 +id-cellActivation ProcedureCode ::= 15 +id-x2Release ProcedureCode ::= 16 +id-x2APMessageTransfer ProcedureCode ::= 17 +id-x2Removal ProcedureCode ::= 18 +id-seNBAdditionPreparation ProcedureCode ::= 19 +id-seNBReconfigurationCompletion ProcedureCode ::= 20 +id-meNBinitiatedSeNBModificationPreparation ProcedureCode ::= 21 +id-seNBinitiatedSeNBModification ProcedureCode ::= 22 +id-meNBinitiatedSeNBRelease ProcedureCode ::= 23 +id-seNBinitiatedSeNBRelease ProcedureCode ::= 24 +id-seNBCounterCheck ProcedureCode ::= 25 + + +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** + +maxEARFCN INTEGER ::= 65535 +maxEARFCNPlusOne INTEGER ::= 65536 +newmaxEARFCN INTEGER ::= 262143 +maxInterfaces INTEGER ::= 16 +maxCellineNB INTEGER ::= 256 +maxnoofBands INTEGER ::= 16 +maxnoofBearers INTEGER ::= 256 +maxNrOfErrors INTEGER ::= 256 +maxnoofPDCP-SN INTEGER ::= 16 +maxnoofEPLMNs INTEGER ::= 15 +maxnoofEPLMNsPlusOne INTEGER ::= 16 +maxnoofForbLACs INTEGER ::= 4096 +maxnoofForbTACs INTEGER ::= 4096 +maxnoofBPLMNs INTEGER ::= 6 +maxnoofNeighbours INTEGER ::= 512 +maxnoofPRBs INTEGER ::= 110 +maxPools INTEGER ::= 16 +maxnoofCells INTEGER ::= 16 +maxnoofMBSFN INTEGER ::= 8 +maxFailedMeasObjects INTEGER ::= 32 +maxnoofCellIDforMDT INTEGER ::= 32 +maxnoofTAforMDT INTEGER ::= 8 +maxnoofMBMSServiceAreaIdentities INTEGER ::= 256 +maxnoofMDTPLMNs INTEGER ::= 16 +maxnoofCoMPHypothesisSet INTEGER ::= 256 +maxnoofCoMPCells INTEGER ::= 32 +maxUEReport INTEGER ::= 128 +maxCellReport INTEGER ::= 9 +maxnoofPA INTEGER ::= 3 + + +-- ************************************************************** +-- +-- IEs +-- +-- ************************************************************** + +id-E-RABs-Admitted-Item ProtocolIE-ID ::= 0 +id-E-RABs-Admitted-List ProtocolIE-ID ::= 1 +id-E-RAB-Item ProtocolIE-ID ::= 2 +id-E-RABs-NotAdmitted-List ProtocolIE-ID ::= 3 +id-E-RABs-ToBeSetup-Item ProtocolIE-ID ::= 4 +id-Cause ProtocolIE-ID ::= 5 +id-CellInformation ProtocolIE-ID ::= 6 +id-CellInformation-Item ProtocolIE-ID ::= 7 +id-New-eNB-UE-X2AP-ID ProtocolIE-ID ::= 9 +id-Old-eNB-UE-X2AP-ID ProtocolIE-ID ::= 10 +id-TargetCell-ID ProtocolIE-ID ::= 11 +id-TargeteNBtoSource-eNBTransparentContainer ProtocolIE-ID ::= 12 +id-TraceActivation ProtocolIE-ID ::= 13 +id-UE-ContextInformation ProtocolIE-ID ::= 14 +id-UE-HistoryInformation ProtocolIE-ID ::= 15 +id-UE-X2AP-ID ProtocolIE-ID ::= 16 +id-CriticalityDiagnostics ProtocolIE-ID ::= 17 +id-E-RABs-SubjectToStatusTransfer-List ProtocolIE-ID ::= 18 +id-E-RABs-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 19 +id-ServedCells ProtocolIE-ID ::= 20 +id-GlobalENB-ID ProtocolIE-ID ::= 21 +id-TimeToWait ProtocolIE-ID ::= 22 +id-GUMMEI-ID ProtocolIE-ID ::= 23 +id-GUGroupIDList ProtocolIE-ID ::= 24 +id-ServedCellsToAdd ProtocolIE-ID ::= 25 +id-ServedCellsToModify ProtocolIE-ID ::= 26 +id-ServedCellsToDelete ProtocolIE-ID ::= 27 +id-Registration-Request ProtocolIE-ID ::= 28 +id-CellToReport ProtocolIE-ID ::= 29 +id-ReportingPeriodicity ProtocolIE-ID ::= 30 +id-CellToReport-Item ProtocolIE-ID ::= 31 +id-CellMeasurementResult ProtocolIE-ID ::= 32 +id-CellMeasurementResult-Item ProtocolIE-ID ::= 33 +id-GUGroupIDToAddList ProtocolIE-ID ::= 34 +id-GUGroupIDToDeleteList ProtocolIE-ID ::= 35 +id-SRVCCOperationPossible ProtocolIE-ID ::= 36 +id-Measurement-ID ProtocolIE-ID ::= 37 +id-ReportCharacteristics ProtocolIE-ID ::= 38 +id-ENB1-Measurement-ID ProtocolIE-ID ::= 39 +id-ENB2-Measurement-ID ProtocolIE-ID ::= 40 +id-Number-of-Antennaports ProtocolIE-ID ::= 41 +id-CompositeAvailableCapacityGroup ProtocolIE-ID ::= 42 +id-ENB1-Cell-ID ProtocolIE-ID ::= 43 +id-ENB2-Cell-ID ProtocolIE-ID ::= 44 +id-ENB2-Proposed-Mobility-Parameters ProtocolIE-ID ::= 45 +id-ENB1-Mobility-Parameters ProtocolIE-ID ::= 46 +id-ENB2-Mobility-Parameters-Modification-Range ProtocolIE-ID ::= 47 +id-FailureCellPCI ProtocolIE-ID ::= 48 +id-Re-establishmentCellECGI ProtocolIE-ID ::= 49 +id-FailureCellCRNTI ProtocolIE-ID ::= 50 +id-ShortMAC-I ProtocolIE-ID ::= 51 +id-SourceCellECGI ProtocolIE-ID ::= 52 +id-FailureCellECGI ProtocolIE-ID ::= 53 +id-HandoverReportType ProtocolIE-ID ::= 54 +id-PRACH-Configuration ProtocolIE-ID ::= 55 +id-MBSFN-Subframe-Info ProtocolIE-ID ::= 56 +id-ServedCellsToActivate ProtocolIE-ID ::= 57 +id-ActivatedCellList ProtocolIE-ID ::= 58 +id-DeactivationIndication ProtocolIE-ID ::= 59 +id-UE-RLF-Report-Container ProtocolIE-ID ::= 60 +id-ABSInformation ProtocolIE-ID ::= 61 +id-InvokeIndication ProtocolIE-ID ::= 62 +id-ABS-Status ProtocolIE-ID ::= 63 +id-PartialSuccessIndicator ProtocolIE-ID ::= 64 +id-MeasurementInitiationResult-List ProtocolIE-ID ::= 65 +id-MeasurementInitiationResult-Item ProtocolIE-ID ::= 66 +id-MeasurementFailureCause-Item ProtocolIE-ID ::= 67 +id-CompleteFailureCauseInformation-List ProtocolIE-ID ::= 68 +id-CompleteFailureCauseInformation-Item ProtocolIE-ID ::= 69 +id-CSG-Id ProtocolIE-ID ::= 70 +id-CSGMembershipStatus ProtocolIE-ID ::= 71 +id-MDTConfiguration ProtocolIE-ID ::= 72 +id-ManagementBasedMDTallowed ProtocolIE-ID ::= 74 +id-RRCConnSetupIndicator ProtocolIE-ID ::= 75 +id-NeighbourTAC ProtocolIE-ID ::= 76 +id-Time-UE-StayedInCell-EnhancedGranularity ProtocolIE-ID ::= 77 +id-RRCConnReestabIndicator ProtocolIE-ID ::= 78 +id-MBMS-Service-Area-List ProtocolIE-ID ::= 79 +id-HO-cause ProtocolIE-ID ::= 80 +id-TargetCellInUTRAN ProtocolIE-ID ::= 81 +id-MobilityInformation ProtocolIE-ID ::= 82 +id-SourceCellCRNTI ProtocolIE-ID ::= 83 +id-MultibandInfoList ProtocolIE-ID ::= 84 +id-M3Configuration ProtocolIE-ID ::= 85 +id-M4Configuration ProtocolIE-ID ::= 86 +id-M5Configuration ProtocolIE-ID ::= 87 +id-MDT-Location-Info ProtocolIE-ID ::= 88 +id-ManagementBasedMDTPLMNList ProtocolIE-ID ::= 89 +id-SignallingBasedMDTPLMNList ProtocolIE-ID ::= 90 +id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID ::= 91 +id-ULCOUNTValueExtended ProtocolIE-ID ::= 92 +id-DLCOUNTValueExtended ProtocolIE-ID ::= 93 +id-eARFCNExtension ProtocolIE-ID ::= 94 +id-UL-EARFCNExtension ProtocolIE-ID ::= 95 +id-DL-EARFCNExtension ProtocolIE-ID ::= 96 +id-AdditionalSpecialSubframe-Info ProtocolIE-ID ::= 97 +id-Masked-IMEISV ProtocolIE-ID ::= 98 +id-IntendedULDLConfiguration ProtocolIE-ID ::= 99 +id-ExtendedULInterferenceOverloadInfo ProtocolIE-ID ::= 100 +id-RNL-Header ProtocolIE-ID ::= 101 +id-x2APMessage ProtocolIE-ID ::= 102 +id-ProSeAuthorized ProtocolIE-ID ::= 103 +id-ExpectedUEBehaviour ProtocolIE-ID ::= 104 +id-UE-HistoryInformationFromTheUE ProtocolIE-ID ::= 105 +id-DynamicDLTransmissionInformation ProtocolIE-ID ::= 106 +id-UE-RLF-Report-Container-for-extended-bands ProtocolIE-ID ::= 107 +id-CoMPInformation ProtocolIE-ID ::= 108 +id-ReportingPeriodicityRSRPMR ProtocolIE-ID ::= 109 +id-RSRPMRList ProtocolIE-ID ::= 110 +id-MeNB-UE-X2AP-ID ProtocolIE-ID ::= 111 +id-SeNB-UE-X2AP-ID ProtocolIE-ID ::= 112 +id-UE-SecurityCapabilities ProtocolIE-ID ::= 113 +id-SeNBSecurityKey ProtocolIE-ID ::= 114 +id-SeNBUEAggregateMaximumBitRate ProtocolIE-ID ::= 115 +id-ServingPLMN ProtocolIE-ID ::= 116 +id-E-RABs-ToBeAdded-List ProtocolIE-ID ::= 117 +id-E-RABs-ToBeAdded-Item ProtocolIE-ID ::= 118 +id-MeNBtoSeNBContainer ProtocolIE-ID ::= 119 +id-E-RABs-Admitted-ToBeAdded-List ProtocolIE-ID ::= 120 +id-E-RABs-Admitted-ToBeAdded-Item ProtocolIE-ID ::= 121 +id-SeNBtoMeNBContainer ProtocolIE-ID ::= 122 +id-ResponseInformationSeNBReconfComp ProtocolIE-ID ::= 123 +id-UE-ContextInformationSeNBModReq ProtocolIE-ID ::= 124 +id-E-RABs-ToBeAdded-ModReqItem ProtocolIE-ID ::= 125 +id-E-RABs-ToBeModified-ModReqItem ProtocolIE-ID ::= 126 +id-E-RABs-ToBeReleased-ModReqItem ProtocolIE-ID ::= 127 +id-E-RABs-Admitted-ToBeAdded-ModAckList ProtocolIE-ID ::= 128 +id-E-RABs-Admitted-ToBeModified-ModAckList ProtocolIE-ID ::= 129 +id-E-RABs-Admitted-ToBeReleased-ModAckList ProtocolIE-ID ::= 130 +id-E-RABs-Admitted-ToBeAdded-ModAckItem ProtocolIE-ID ::= 131 +id-E-RABs-Admitted-ToBeModified-ModAckItem ProtocolIE-ID ::= 132 +id-E-RABs-Admitted-ToBeReleased-ModAckItem ProtocolIE-ID ::= 133 +id-E-RABs-ToBeReleased-ModReqd ProtocolIE-ID ::= 134 +id-E-RABs-ToBeReleased-ModReqdItem ProtocolIE-ID ::= 135 +id-SCGChangeIndication ProtocolIE-ID ::= 136 +id-E-RABs-ToBeReleased-List-RelReq ProtocolIE-ID ::= 137 +id-E-RABs-ToBeReleased-RelReqItem ProtocolIE-ID ::= 138 +id-E-RABs-ToBeReleased-List-RelConf ProtocolIE-ID ::= 139 +id-E-RABs-ToBeReleased-RelConfItem ProtocolIE-ID ::= 140 +id-E-RABs-SubjectToCounterCheck-List ProtocolIE-ID ::= 141 +id-E-RABs-SubjectToCounterCheckItem ProtocolIE-ID ::= 142 +id-FreqBandIndicatorPriority ProtocolIE-ID ::= 160 + +END + + +-- ************************************************************** +-- +-- Container definitions +-- +-- ************************************************************** + +X2AP-Containers { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Containers (5) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + maxPrivateIEs, + maxProtocolExtensions, + maxProtocolIEs, + Criticality, + Presence, + PrivateIE-ID, + ProtocolIE-ID +FROM X2AP-CommonDataTypes; + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +X2AP-PROTOCOL-IES ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +X2AP-PROTOCOL-IES-PAIR ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &firstCriticality Criticality, + &FirstValue, + &secondCriticality Criticality, + &SecondValue, + &presence Presence +} +WITH SYNTAX { + ID &id + FIRST CRITICALITY &firstCriticality + FIRST TYPE &FirstValue + SECOND CRITICALITY &secondCriticality + SECOND TYPE &SecondValue + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol Extensions +-- +-- ************************************************************** + +X2AP-PROTOCOL-EXTENSION ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Extension, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + EXTENSION &Extension + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Private IEs +-- +-- ************************************************************** + +X2AP-PRIVATE-IES ::= CLASS { + &id PrivateIE-ID, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Container for Protocol IEs +-- +-- ************************************************************** + +ProtocolIE-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Single-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Field {X2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-IES.&id ({IEsSetParam}), + criticality X2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), + value X2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Protocol IE Pairs +-- +-- ************************************************************** + +ProtocolIE-ContainerPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-FieldPair {{IEsSetParam}} + +ProtocolIE-FieldPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), + firstCriticality X2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), + firstValue X2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), + secondCriticality X2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), + secondValue X2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container Lists for Protocol IE Containers +-- +-- ************************************************************** + +ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-Container {{IEsSetParam}} + +ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-ContainerPair {{IEsSetParam}} + +-- ************************************************************** +-- +-- Container for Protocol Extensions +-- +-- ************************************************************** + +ProtocolExtensionContainer {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= + SEQUENCE (SIZE (1..maxProtocolExtensions)) OF + ProtocolExtensionField {{ExtensionSetParam}} + +ProtocolExtensionField {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), + criticality X2AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), + extensionValue X2AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Private IEs +-- +-- ************************************************************** + +PrivateIE-Container {X2AP-PRIVATE-IES : IEsSetParam} ::= + SEQUENCE (SIZE (1..maxPrivateIEs)) OF + PrivateIE-Field {{IEsSetParam}} + +PrivateIE-Field {X2AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { + id X2AP-PRIVATE-IES.&id ({IEsSetParam}), + criticality X2AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), + value X2AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) +} + +END + + + diff --git a/openair2/X2AP/MESSAGES/ASN1/R13/x2ap-13.7.0.asn1 b/openair2/X2AP/MESSAGES/ASN1/R13/x2ap-13.7.0.asn1 new file mode 100755 index 0000000000..71ac93755a --- /dev/null +++ b/openair2/X2AP/MESSAGES/ASN1/R13/x2ap-13.7.0.asn1 @@ -0,0 +1,4942 @@ +-- ************************************************************** +-- +-- Elementary Procedure definitions +-- +-- ************************************************************** + +X2AP-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Descriptions (0) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + ProcedureCode + +FROM X2AP-CommonDataTypes + + CellActivationRequest, + CellActivationResponse, + CellActivationFailure, + ENBConfigurationUpdate, + ENBConfigurationUpdateAcknowledge, + ENBConfigurationUpdateFailure, + ErrorIndication, + HandoverCancel, + HandoverReport, + HandoverPreparationFailure, + HandoverRequest, + HandoverRequestAcknowledge, + LoadInformation, + PrivateMessage, + ResetRequest, + ResetResponse, + ResourceStatusFailure, + ResourceStatusRequest, + ResourceStatusResponse, + ResourceStatusUpdate, + RLFIndication, + SNStatusTransfer, + UEContextRelease, + X2SetupFailure, + X2SetupRequest, + X2SetupResponse, + MobilityChangeRequest, + MobilityChangeAcknowledge, + MobilityChangeFailure, + X2Release, + X2APMessageTransfer, + SeNBAdditionRequest, + SeNBAdditionRequestAcknowledge, + SeNBAdditionRequestReject, + SeNBReconfigurationComplete, + SeNBModificationRequest, + SeNBModificationRequestAcknowledge, + SeNBModificationRequestReject, + SeNBModificationRequired, + SeNBModificationConfirm, + SeNBModificationRefuse, + SeNBReleaseRequest, + SeNBReleaseRequired, + SeNBReleaseConfirm, + SeNBCounterCheckRequest, + X2RemovalFailure, + X2RemovalRequest, + X2RemovalResponse, + RetrieveUEContextRequest, + RetrieveUEContextResponse, + RetrieveUEContextFailure + +FROM X2AP-PDU-Contents + + id-cellActivation, + id-eNBConfigurationUpdate, + id-errorIndication, + id-handoverCancel, + id-handoverReport, + id-handoverPreparation, + + id-loadIndication, + id-privateMessage, + id-reset, + + id-resourceStatusReporting, + id-resourceStatusReportingInitiation, + id-rLFIndication, + id-snStatusTransfer, + id-uEContextRelease, + id-x2Setup, + id-mobilitySettingsChange, + id-x2Release, + id-x2APMessageTransfer, + id-seNBAdditionPreparation, + id-seNBReconfigurationCompletion, + id-meNBinitiatedSeNBModificationPreparation, + id-seNBinitiatedSeNBModification, + id-meNBinitiatedSeNBRelease, + id-seNBinitiatedSeNBRelease, + id-seNBCounterCheck, + id-x2Removal, + id-retrieveUEContext + +FROM X2AP-Constants; + +-- ************************************************************** +-- +-- Interface Elementary Procedure Class +-- +-- ************************************************************** + +X2AP-ELEMENTARY-PROCEDURE ::= CLASS { + &InitiatingMessage , + &SuccessfulOutcome OPTIONAL, + &UnsuccessfulOutcome OPTIONAL, + &procedureCode ProcedureCode UNIQUE, + &criticality Criticality DEFAULT ignore +} +WITH SYNTAX { + INITIATING MESSAGE &InitiatingMessage + [SUCCESSFUL OUTCOME &SuccessfulOutcome] + [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] + PROCEDURE CODE &procedureCode + [CRITICALITY &criticality] +} + +-- ************************************************************** +-- +-- Interface PDU Definition +-- +-- ************************************************************** + +X2AP-PDU ::= CHOICE { + initiatingMessage InitiatingMessage, + successfulOutcome SuccessfulOutcome, + unsuccessfulOutcome UnsuccessfulOutcome, + ... +} + +InitiatingMessage ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +SuccessfulOutcome ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +UnsuccessfulOutcome ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +-- ************************************************************** +-- +-- Interface Elementary Procedure List +-- +-- ************************************************************** + +X2AP-ELEMENTARY-PROCEDURES X2AP-ELEMENTARY-PROCEDURE ::= { + X2AP-ELEMENTARY-PROCEDURES-CLASS-1 | + X2AP-ELEMENTARY-PROCEDURES-CLASS-2 , + ... +} + +X2AP-ELEMENTARY-PROCEDURES-CLASS-1 X2AP-ELEMENTARY-PROCEDURE ::= { + handoverPreparation | + reset | + x2Setup | + resourceStatusReportingInitiation | + eNBConfigurationUpdate | + mobilitySettingsChange | + cellActivation | + seNBAdditionPreparation | + meNBinitiatedSeNBModificationPreparation | + seNBinitiatedSeNBModification | + seNBinitiatedSeNBRelease | + x2Removal | + retrieveUEContext, + ... +} + +X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= { + snStatusTransfer | + uEContextRelease | + handoverCancel | + errorIndication | + resourceStatusReporting | + loadIndication | + privateMessage | + rLFIndication | + handoverReport | + x2Release | + x2APMessageTransfer | + seNBReconfigurationCompletion | + meNBinitiatedSeNBRelease | + seNBCounterCheck, + ... + +} + +-- ************************************************************** +-- +-- Interface Elementary Procedures +-- +-- ************************************************************** + +handoverPreparation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequest + SUCCESSFUL OUTCOME HandoverRequestAcknowledge + UNSUCCESSFUL OUTCOME HandoverPreparationFailure + PROCEDURE CODE id-handoverPreparation + CRITICALITY reject +} + +snStatusTransfer X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SNStatusTransfer + PROCEDURE CODE id-snStatusTransfer + CRITICALITY ignore +} + +uEContextRelease X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextRelease + PROCEDURE CODE id-uEContextRelease + CRITICALITY ignore +} + + +handoverCancel X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverCancel + PROCEDURE CODE id-handoverCancel + CRITICALITY ignore +} + +handoverReport X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverReport + PROCEDURE CODE id-handoverReport + CRITICALITY ignore +} + +errorIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ErrorIndication + PROCEDURE CODE id-errorIndication + CRITICALITY ignore +} + +reset X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResetRequest + SUCCESSFUL OUTCOME ResetResponse + PROCEDURE CODE id-reset + CRITICALITY reject +} + +x2Setup X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE X2SetupRequest + SUCCESSFUL OUTCOME X2SetupResponse + UNSUCCESSFUL OUTCOME X2SetupFailure + PROCEDURE CODE id-x2Setup + CRITICALITY reject +} + + +loadIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LoadInformation + PROCEDURE CODE id-loadIndication + CRITICALITY ignore +} + +eNBConfigurationUpdate X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationUpdate + SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure + PROCEDURE CODE id-eNBConfigurationUpdate + CRITICALITY reject +} + +resourceStatusReportingInitiation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResourceStatusRequest + SUCCESSFUL OUTCOME ResourceStatusResponse + UNSUCCESSFUL OUTCOME ResourceStatusFailure + PROCEDURE CODE id-resourceStatusReportingInitiation + CRITICALITY reject +} + +resourceStatusReporting X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResourceStatusUpdate + PROCEDURE CODE id-resourceStatusReporting + CRITICALITY ignore +} + +rLFIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RLFIndication + PROCEDURE CODE id-rLFIndication + CRITICALITY ignore +} + +privateMessage X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PrivateMessage + PROCEDURE CODE id-privateMessage + CRITICALITY ignore +} + +mobilitySettingsChange X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MobilityChangeRequest + SUCCESSFUL OUTCOME MobilityChangeAcknowledge + UNSUCCESSFUL OUTCOME MobilityChangeFailure + PROCEDURE CODE id-mobilitySettingsChange + CRITICALITY reject +} + +cellActivation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE CellActivationRequest + SUCCESSFUL OUTCOME CellActivationResponse + UNSUCCESSFUL OUTCOME CellActivationFailure + PROCEDURE CODE id-cellActivation + CRITICALITY reject +} + +x2Release X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE X2Release + PROCEDURE CODE id-x2Release + CRITICALITY reject +} + +x2APMessageTransfer X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE X2APMessageTransfer + PROCEDURE CODE id-x2APMessageTransfer + CRITICALITY reject +} + +seNBAdditionPreparation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBAdditionRequest + SUCCESSFUL OUTCOME SeNBAdditionRequestAcknowledge + UNSUCCESSFUL OUTCOME SeNBAdditionRequestReject + PROCEDURE CODE id-seNBAdditionPreparation + CRITICALITY reject +} + +seNBReconfigurationCompletion X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBReconfigurationComplete + PROCEDURE CODE id-seNBReconfigurationCompletion + CRITICALITY ignore +} + +meNBinitiatedSeNBModificationPreparation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBModificationRequest + SUCCESSFUL OUTCOME SeNBModificationRequestAcknowledge + UNSUCCESSFUL OUTCOME SeNBModificationRequestReject + PROCEDURE CODE id-meNBinitiatedSeNBModificationPreparation + CRITICALITY reject +} + +seNBinitiatedSeNBModification X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBModificationRequired + SUCCESSFUL OUTCOME SeNBModificationConfirm + UNSUCCESSFUL OUTCOME SeNBModificationRefuse + PROCEDURE CODE id-seNBinitiatedSeNBModification + CRITICALITY reject +} + +meNBinitiatedSeNBRelease X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBReleaseRequest + PROCEDURE CODE id-meNBinitiatedSeNBRelease + CRITICALITY ignore +} + +seNBinitiatedSeNBRelease X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBReleaseRequired + SUCCESSFUL OUTCOME SeNBReleaseConfirm + PROCEDURE CODE id-seNBinitiatedSeNBRelease + CRITICALITY reject +} + +seNBCounterCheck X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBCounterCheckRequest + PROCEDURE CODE id-seNBCounterCheck + CRITICALITY reject +} + +x2Removal X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE X2RemovalRequest + SUCCESSFUL OUTCOME X2RemovalResponse + UNSUCCESSFUL OUTCOME X2RemovalFailure + PROCEDURE CODE id-x2Removal + CRITICALITY reject +} + +retrieveUEContext X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RetrieveUEContextRequest + SUCCESSFUL OUTCOME RetrieveUEContextResponse + UNSUCCESSFUL OUTCOME RetrieveUEContextFailure + PROCEDURE CODE id-retrieveUEContext + CRITICALITY reject +} + +END + + +-- ************************************************************** +-- +-- PDU definitions for X2AP. +-- +-- ************************************************************** + +X2AP-PDU-Contents { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Contents (1) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + ABSInformation, + ABS-Status, + AS-SecurityInformation, + BearerType, + Cause, + CompositeAvailableCapacityGroup, + Correlation-ID, + COUNTvalue, + CellReportingIndicator, + CriticalityDiagnostics, + CRNTI, + CSGMembershipStatus, + CSG-Id, + DeactivationIndication, + DL-Forwarding, + DynamicDLTransmissionInformation, + ECGI, + E-RAB-ID, + E-RAB-Level-QoS-Parameters, + E-RAB-List, + EUTRANTraceID, + GlobalENB-ID, + GTPtunnelEndpoint, + GUGroupIDList, + GUMMEI, + HandoverReportType, + HandoverRestrictionList, + Masked-IMEISV, + InvokeIndication, + LocationReportingInformation, + MDT-Configuration, + ManagementBasedMDTallowed, + MDTPLMNList, + Neighbour-Information, + PCI, + PDCP-SN, + PLMN-Identity, + ReceiveStatusofULPDCPSDUs, + Registration-Request, + RelativeNarrowbandTxPower, + RadioResourceStatus, + RRCConnReestabIndicator, + RRCConnSetupIndicator, + UE-RLF-Report-Container, + RRC-Context, + ServedCell-Information, + ServedCells, + ShortMAC-I, + SRVCCOperationPossible, + SubscriberProfileIDforRFP, + TargetCellInUTRAN, + TargeteNBtoSource-eNBTransparentContainer, + TimeToWait, + TraceActivation, + TraceDepth, + TransportLayerAddress, + UEAggregateMaximumBitRate, + UE-HistoryInformation, + UE-HistoryInformationFromTheUE, + UE-S1AP-ID, + UESecurityCapabilities, + UE-X2AP-ID, + UL-HighInterferenceIndicationInfo, + UL-InterferenceOverloadIndication, + HWLoadIndicator, + S1TNLLoadIndicator, + Measurement-ID, + ReportCharacteristics, + MobilityParametersInformation, + MobilityParametersModificationRange, + ReceiveStatusOfULPDCPSDUsExtended, + COUNTValueExtended, + SubframeAssignment, + ExtendedULInterferenceOverloadInfo, + ExpectedUEBehaviour, + SeNBSecurityKey, + MeNBtoSeNBContainer, + SeNBtoMeNBContainer, + SCGChangeIndication, + CoMPInformation, + ReportingPeriodicityRSRPMR, + RSRPMRList, + UE-RLF-Report-Container-for-extended-bands, + ProSeAuthorized, + CoverageModificationList, + ReportingPeriodicityCSIR, + CSIReportList, + ReceiveStatusOfULPDCPSDUsPDCP-SNlength18, + COUNTvaluePDCP-SNlength18, + LHN-ID, + UE-ContextKeptIndicator, + UE-X2AP-ID-Extension, + SIPTOBearerDeactivationIndication, + TunnelInformation, + X2BenefitValue, + ResumeID, + EUTRANCellIdentifier + +FROM X2AP-IEs + + PrivateIE-Container{}, + ProtocolExtensionContainer{}, + ProtocolIE-Container{}, + ProtocolIE-ContainerList{}, + ProtocolIE-ContainerPair{}, + ProtocolIE-ContainerPairList{}, + ProtocolIE-Single-Container{}, + X2AP-PRIVATE-IES, + X2AP-PROTOCOL-EXTENSION, + X2AP-PROTOCOL-IES, + X2AP-PROTOCOL-IES-PAIR +FROM X2AP-Containers + + id-ABSInformation, + id-ActivatedCellList, + id-BearerType, + id-Cause, + id-CellInformation, + id-CellInformation-Item, + id-CellMeasurementResult, + id-CellMeasurementResult-Item, + id-CellToReport, + id-CellToReport-Item, + id-CompositeAvailableCapacityGroup, + id-CriticalityDiagnostics, + id-DeactivationIndication, + id-DynamicDLTransmissionInformation, + id-E-RABs-Admitted-Item, + id-E-RABs-Admitted-List, + id-E-RABs-NotAdmitted-List, + id-E-RABs-SubjectToStatusTransfer-List, + id-E-RABs-SubjectToStatusTransfer-Item, + id-E-RABs-ToBeSetup-Item, + id-GlobalENB-ID, + id-GUGroupIDList, + id-GUGroupIDToAddList, + id-GUGroupIDToDeleteList, + id-GUMMEI-ID, + id-Masked-IMEISV, + id-InvokeIndication, + id-New-eNB-UE-X2AP-ID, + id-Old-eNB-UE-X2AP-ID, + id-Registration-Request, + id-ReportingPeriodicity, + id-ServedCells, + id-ServedCellsToActivate, + id-ServedCellsToAdd, + id-ServedCellsToModify, + id-ServedCellsToDelete, + id-SRVCCOperationPossible, + id-TargetCell-ID, + id-TargeteNBtoSource-eNBTransparentContainer, + id-TimeToWait, + id-TraceActivation, + id-UE-ContextInformation, + id-UE-HistoryInformation, + id-UE-X2AP-ID, + id-Measurement-ID, + id-ReportCharacteristics, + id-ENB1-Measurement-ID, + id-ENB2-Measurement-ID, + id-ENB1-Cell-ID, + id-ENB2-Cell-ID, + id-ENB2-Proposed-Mobility-Parameters, + id-ENB1-Mobility-Parameters, + id-ENB2-Mobility-Parameters-Modification-Range, + id-FailureCellPCI, + id-Re-establishmentCellECGI, + id-FailureCellCRNTI, + id-ShortMAC-I, + id-SourceCellECGI, + id-FailureCellECGI, + id-HandoverReportType, + id-UE-RLF-Report-Container, + id-PartialSuccessIndicator, + id-MeasurementInitiationResult-List, + id-MeasurementInitiationResult-Item, + id-MeasurementFailureCause-Item, + id-CompleteFailureCauseInformation-List, + id-CompleteFailureCauseInformation-Item, + id-CSGMembershipStatus, + id-CSG-Id, + id-MDTConfiguration, + id-ManagementBasedMDTallowed, + id-ABS-Status, + id-RRCConnSetupIndicator, + id-RRCConnReestabIndicator, + id-TargetCellInUTRAN, + id-MobilityInformation, + id-SourceCellCRNTI, + id-ManagementBasedMDTPLMNList, + id-ReceiveStatusOfULPDCPSDUsExtended, + id-ULCOUNTValueExtended, + id-DLCOUNTValueExtended, + id-IntendedULDLConfiguration, + id-ExtendedULInterferenceOverloadInfo, + id-RNL-Header, + id-x2APMessage, + id-UE-HistoryInformationFromTheUE, + id-ExpectedUEBehaviour, + id-MeNB-UE-X2AP-ID, + id-SeNB-UE-X2AP-ID, + id-UE-SecurityCapabilities, + id-SeNBSecurityKey, + id-SeNBUEAggregateMaximumBitRate, + id-ServingPLMN, + id-E-RABs-ToBeAdded-List, + id-E-RABs-ToBeAdded-Item, + id-MeNBtoSeNBContainer, + id-E-RABs-Admitted-ToBeAdded-List, + id-E-RABs-Admitted-ToBeAdded-Item, + id-SeNBtoMeNBContainer, + id-ResponseInformationSeNBReconfComp, + id-UE-ContextInformationSeNBModReq, + id-E-RABs-ToBeAdded-ModReqItem, + id-E-RABs-ToBeModified-ModReqItem, + id-E-RABs-ToBeReleased-ModReqItem, + id-E-RABs-Admitted-ToBeAdded-ModAckList, + id-E-RABs-Admitted-ToBeModified-ModAckList, + id-E-RABs-Admitted-ToBeReleased-ModAckList, + id-E-RABs-Admitted-ToBeAdded-ModAckItem, + id-E-RABs-Admitted-ToBeModified-ModAckItem, + id-E-RABs-Admitted-ToBeReleased-ModAckItem, + id-SCGChangeIndication, + id-E-RABs-ToBeReleased-ModReqd, + id-E-RABs-ToBeReleased-ModReqdItem, + id-E-RABs-ToBeReleased-List-RelReq, + id-E-RABs-ToBeReleased-RelReqItem, + id-E-RABs-ToBeReleased-List-RelConf, + id-E-RABs-ToBeReleased-RelConfItem, + id-E-RABs-SubjectToCounterCheck-List, + id-E-RABs-SubjectToCounterCheckItem, + id-CoMPInformation, + id-ReportingPeriodicityRSRPMR, + id-RSRPMRList, + id-UE-RLF-Report-Container-for-extended-bands, + id-ProSeAuthorized, + id-CoverageModificationList, + id-ReportingPeriodicityCSIR, + id-CSIReportList, + id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18, + id-ULCOUNTValuePDCP-SNlength18, + id-DLCOUNTValuePDCP-SNlength18, + id-LHN-ID, + id-Correlation-ID, + id-SIPTO-Correlation-ID, + id-UE-ContextReferenceAtSeNB, + id-UE-ContextKeptIndicator, + id-New-eNB-UE-X2AP-ID-Extension, + id-Old-eNB-UE-X2AP-ID-Extension, + id-MeNB-UE-X2AP-ID-Extension, + id-SeNB-UE-X2AP-ID-Extension, + id-SIPTO-BearerDeactivationIndication, + id-Tunnel-Information-for-BBF, + id-SIPTO-L-GW-TransportLayerAddress, + id-GW-TransportLayerAddress, + id-X2RemovalThreshold, + id-CellReportingIndicator, + id-resumeID, + id-UE-ContextInformationRetrieve, + id-E-RABs-ToBeSetupRetrieve-Item, + id-NewEUTRANCellIdentifier, + id-uL-GTPtunnelEndpoint, + + maxCellineNB, + maxnoofBearers, + maxnoofPDCP-SN, + maxFailedMeasObjects, + maxnoofCellIDforMDT, + maxnoofTAforMDT +FROM X2AP-Constants; + +-- ************************************************************** +-- +-- HANDOVER REQUEST +-- +-- ************************************************************** + +HandoverRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverRequest-IEs}}, + ... +} + +HandoverRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-TargetCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory}| + { ID id-UE-ContextInformation CRITICALITY reject TYPE UE-ContextInformation PRESENCE mandatory}| + { ID id-UE-HistoryInformation CRITICALITY ignore TYPE UE-HistoryInformation PRESENCE mandatory}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-MobilityInformation CRITICALITY ignore TYPE MobilityInformation PRESENCE optional}| + { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| + { ID id-UE-HistoryInformationFromTheUE CRITICALITY ignore TYPE UE-HistoryInformationFromTheUE PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-UE-ContextReferenceAtSeNB CRITICALITY ignore TYPE UE-ContextReferenceAtSeNB PRESENCE optional}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +UE-ContextInformation ::= SEQUENCE { + mME-UE-S1AP-ID UE-S1AP-ID, + uESecurityCapabilities UESecurityCapabilities, + aS-SecurityInformation AS-SecurityInformation, + uEaggregateMaximumBitRate UEAggregateMaximumBitRate, + subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, + e-RABs-ToBeSetup-List E-RABs-ToBeSetup-List, + rRC-Context RRC-Context, + handoverRestrictionList HandoverRestrictionList OPTIONAL, + locationReportingInformation LocationReportingInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {UE-ContextInformation-ExtIEs} } OPTIONAL, + ... +} + +UE-ContextInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-ManagementBasedMDTallowed CRITICALITY ignore EXTENSION ManagementBasedMDTallowed PRESENCE optional }| +{ ID id-ManagementBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional }, + ... +} + +E-RABs-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetup-ItemIEs} } + +E-RABs-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeSetup-Item CRITICALITY ignore TYPE E-RABs-ToBeSetup-Item PRESENCE mandatory }, + ... +} + +E-RABs-ToBeSetup-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + dL-Forwarding DL-Forwarding OPTIONAL, + uL-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetup-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeSetup-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional}, + ... +} + +MobilityInformation ::= BIT STRING (SIZE(32)) + +UE-ContextReferenceAtSeNB ::= SEQUENCE { + source-GlobalSeNB-ID GlobalENB-ID, + seNB-UE-X2AP-ID UE-X2AP-ID, + seNB-UE-X2AP-ID-Extension UE-X2AP-ID-Extension, + iE-Extensions ProtocolExtensionContainer { {UE-ContextReferenceAtSeNB-ItemExtIEs} } OPTIONAL, + ... +} + +UE-ContextReferenceAtSeNB-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- HANDOVER REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +HandoverRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverRequestAcknowledge-IEs}}, + ... +} + +HandoverRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-Admitted-List CRITICALITY ignore TYPE E-RABs-Admitted-List PRESENCE mandatory}| + { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| + { ID id-TargeteNBtoSource-eNBTransparentContainer CRITICALITY ignore TYPE TargeteNBtoSource-eNBTransparentContainer PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +E-RABs-Admitted-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ItemIEs} } + +E-RABs-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-Item CRITICALITY ignore TYPE E-RABs-Admitted-Item PRESENCE mandatory } +} + +E-RABs-Admitted-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, + dL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-Item-ExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- HANDOVER PREPARATION FAILURE +-- +-- ************************************************************** + +HandoverPreparationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverPreparationFailure-IEs}}, + ... +} + +HandoverPreparationFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + + ... +} + +-- ************************************************************** +-- +-- Handover Report +-- +-- ************************************************************** + +HandoverReport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverReport-IEs}}, + ... +} + +HandoverReport-IEs X2AP-PROTOCOL-IES ::= { + { ID id-HandoverReportType CRITICALITY ignore TYPE HandoverReportType PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-SourceCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-FailureCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to “HO to Wrong Cell” -- | + { ID id-TargetCellInUTRAN CRITICALITY ignore TYPE TargetCellInUTRAN PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to "InterRAT ping-pong" --| + { ID id-SourceCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE optional}| + { ID id-MobilityInformation CRITICALITY ignore TYPE MobilityInformation PRESENCE optional}| + { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}| + { ID id-UE-RLF-Report-Container-for-extended-bands CRITICALITY ignore TYPE UE-RLF-Report-Container-for-extended-bands PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SN Status Transfer +-- +-- ************************************************************** + +SNStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SNStatusTransfer-IEs}}, + ... +} + +SNStatusTransfer-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-SubjectToStatusTransfer-List CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-List PRESENCE mandatory}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +E-RABs-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { { E-RABs-SubjectToStatusTransfer-ItemIEs} } + +E-RABs-SubjectToStatusTransfer-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-Item PRESENCE mandatory } +} + +E-RABs-SubjectToStatusTransfer-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + + receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, + uL-COUNTvalue COUNTvalue, + dL-COUNTvalue COUNTvalue, + iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-SubjectToStatusTransfer-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-ReceiveStatusOfULPDCPSDUsExtended CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsExtended PRESENCE optional}| + { ID id-ULCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| + { ID id-DLCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| + { ID id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 PRESENCE optional}| + { ID id-ULCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}| + { ID id-DLCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- UE Context Release +-- +-- ************************************************************** + +UEContextRelease ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextRelease-IEs}}, + ... +} + +UEContextRelease-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SIPTO-BearerDeactivationIndication CRITICALITY ignore TYPE SIPTOBearerDeactivationIndication PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- HANDOVER CANCEL +-- +-- ************************************************************** + +HandoverCancel ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverCancel-IEs}}, + ... +} + +HandoverCancel-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- ERROR INDICATION +-- +-- ************************************************************** + +ErrorIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}}, + ... +} + +ErrorIndication-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}| + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Reset Request +-- +-- ************************************************************** + +ResetRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResetRequest-IEs}}, + ... +} + +ResetRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- Reset Response +-- +-- ************************************************************** + +ResetResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResetResponse-IEs}}, + ... +} + +ResetResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- X2 SETUP REQUEST +-- +-- ************************************************************** + +X2SetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupRequest-IEs}}, + ... +} + +X2SetupRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| + { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory}| + { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, +... +} + + + +-- ************************************************************** +-- +-- X2 SETUP RESPONSE +-- +-- ************************************************************** + +X2SetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupResponse-IEs}}, + ... +} + +X2SetupResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| + { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory}| + { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, + ... +} + + + +-- ************************************************************** +-- +-- X2 SETUP FAILURE +-- +-- ************************************************************** + +X2SetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupFailure-IEs}}, + ... +} + +X2SetupFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + + ... +} + + + +-- ************************************************************** +-- +-- LOAD INFORMATION +-- +-- ************************************************************** + +LoadInformation ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{LoadInformation-IEs}}, + ... +} + +LoadInformation-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CellInformation CRITICALITY ignore TYPE CellInformation-List PRESENCE mandatory} , + ... +} + +CellInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellInformation-ItemIEs} } + +CellInformation-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellInformation-Item CRITICALITY ignore TYPE CellInformation-Item PRESENCE mandatory } +} + +CellInformation-Item ::= SEQUENCE { + cell-ID ECGI, + ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication OPTIONAL, + ul-HighInterferenceIndicationInfo UL-HighInterferenceIndicationInfo OPTIONAL, + relativeNarrowbandTxPower RelativeNarrowbandTxPower OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CellInformation-Item-ExtIEs} } OPTIONAL, + ... +} + +CellInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-ABSInformation CRITICALITY ignore EXTENSION ABSInformation PRESENCE optional }| +{ ID id-InvokeIndication CRITICALITY ignore EXTENSION InvokeIndication PRESENCE optional }| +{ ID id-IntendedULDLConfiguration CRITICALITY ignore EXTENSION SubframeAssignment PRESENCE optional }| +{ ID id-ExtendedULInterferenceOverloadInfo CRITICALITY ignore EXTENSION ExtendedULInterferenceOverloadInfo PRESENCE optional }| +{ ID id-CoMPInformation CRITICALITY ignore EXTENSION CoMPInformation PRESENCE optional }| +{ ID id-DynamicDLTransmissionInformation CRITICALITY ignore EXTENSION DynamicDLTransmissionInformation PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE +-- +-- ************************************************************** + +ENBConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdate-IEs}}, + ... +} + +ENBConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ServedCellsToAdd CRITICALITY reject TYPE ServedCells PRESENCE optional}| + { ID id-ServedCellsToModify CRITICALITY reject TYPE ServedCellsToModify PRESENCE optional}| + { ID id-ServedCellsToDelete CRITICALITY reject TYPE Old-ECGIs PRESENCE optional}| + { ID id-GUGroupIDToAddList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| + { ID id-GUGroupIDToDeleteList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| + { ID id-CoverageModificationList CRITICALITY reject TYPE CoverageModificationList PRESENCE optional}, + ... +} + +ServedCellsToModify::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToModify-Item + +ServedCellsToModify-Item::= SEQUENCE { + old-ecgi ECGI, + servedCellInfo ServedCell-Information, + neighbour-Info Neighbour-Information OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ServedCellsToModify-Item-ExtIEs} } OPTIONAL, + ... +} + +ServedCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-DeactivationIndication CRITICALITY ignore EXTENSION DeactivationIndication PRESENCE optional }, + ... +} + + +Old-ECGIs::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE ACKNOWLEDGE +-- +-- ************************************************************** + +ENBConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateAcknowledge-IEs}}, + ... +} + +ENBConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, +... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE FAIURE +-- +-- ************************************************************** + +ENBConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateFailure-IEs}}, + ... +} + +ENBConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + + + +-- ************************************************************** +-- +-- Resource Status Request +-- +-- ************************************************************** + +ResourceStatusRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusRequest-IEs}}, + ... +} + +ResourceStatusRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY ignore TYPE Measurement-ID PRESENCE conditional}|-- The IE shall be present if the Registration Request IE is set to “Stop”, “Partial stop” or to “Add”-- + { ID id-Registration-Request CRITICALITY reject TYPE Registration-Request PRESENCE mandatory}| + { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE optional}| + { ID id-CellToReport CRITICALITY ignore TYPE CellToReport-List PRESENCE mandatory}| + { ID id-ReportingPeriodicity CRITICALITY ignore TYPE ReportingPeriodicity PRESENCE optional}| + { ID id-PartialSuccessIndicator CRITICALITY ignore TYPE PartialSuccessIndicator PRESENCE optional}| + { ID id-ReportingPeriodicityRSRPMR CRITICALITY ignore TYPE ReportingPeriodicityRSRPMR PRESENCE optional}| + { ID id-ReportingPeriodicityCSIR CRITICALITY ignore TYPE ReportingPeriodicityCSIR PRESENCE optional}, + ... +} + + +CellToReport-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellToReport-ItemIEs} } + +CellToReport-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellToReport-Item CRITICALITY ignore TYPE CellToReport-Item PRESENCE mandatory} +} + +CellToReport-Item ::= SEQUENCE { + cell-ID ECGI, + iE-Extensions ProtocolExtensionContainer { {CellToReport-Item-ExtIEs} } OPTIONAL, + ... +} + +CellToReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +ReportingPeriodicity ::= ENUMERATED { + one-thousand-ms, + two-thousand-ms, + five-thousand-ms, + ten-thousand-ms, +... +} + +PartialSuccessIndicator ::= ENUMERATED { + partial-success-allowed, +... +} + +-- ************************************************************** +-- +-- Resource Status Response +-- +-- ************************************************************** + +ResourceStatusResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusResponse-IEs}}, + ... +} + +ResourceStatusResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeasurementInitiationResult-List CRITICALITY ignore TYPE MeasurementInitiationResult-List PRESENCE optional}, + ... +} + + +MeasurementInitiationResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { { MeasurementInitiationResult-ItemIEs} } + +MeasurementInitiationResult-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-MeasurementInitiationResult-Item CRITICALITY ignore TYPE MeasurementInitiationResult-Item PRESENCE mandatory} +} + +MeasurementInitiationResult-Item ::= SEQUENCE { + cell-ID ECGI, + measurementFailureCause-List MeasurementFailureCause-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { MeasurementInitiationResult-Item-ExtIEs} } OPTIONAL, + ... +} + +MeasurementInitiationResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +MeasurementFailureCause-List ::= SEQUENCE (SIZE (1..maxFailedMeasObjects)) OF ProtocolIE-Single-Container { { MeasurementFailureCause-ItemIEs} } + +MeasurementFailureCause-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-MeasurementFailureCause-Item CRITICALITY ignore TYPE MeasurementFailureCause-Item PRESENCE mandatory} +} + +MeasurementFailureCause-Item ::= SEQUENCE { + measurementFailedReportCharacteristics ReportCharacteristics, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { MeasurementFailureCause-Item-ExtIEs} } OPTIONAL, + ... +} + +MeasurementFailureCause-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Resource Status Failure +-- +-- ************************************************************** + +ResourceStatusFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusFailure-IEs}}, + ... +} + +ResourceStatusFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-CompleteFailureCauseInformation-List CRITICALITY ignore TYPE CompleteFailureCauseInformation-List PRESENCE optional}, + ... +} + +CompleteFailureCauseInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CompleteFailureCauseInformation-ItemIEs} } + +CompleteFailureCauseInformation-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CompleteFailureCauseInformation-Item CRITICALITY ignore TYPE CompleteFailureCauseInformation-Item PRESENCE mandatory} +} + +CompleteFailureCauseInformation-Item ::= SEQUENCE { + cell-ID ECGI, + measurementFailureCause-List MeasurementFailureCause-List, + iE-Extensions ProtocolExtensionContainer { { CompleteFailureCauseInformation-Item-ExtIEs} } OPTIONAL, + ... +} + +CompleteFailureCauseInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Resource Status Update +-- +-- ************************************************************** + +ResourceStatusUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusUpdate-IEs}}, + ... +} + +ResourceStatusUpdate-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-CellMeasurementResult CRITICALITY ignore TYPE CellMeasurementResult-List PRESENCE mandatory}, + ... +} + +CellMeasurementResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellMeasurementResult-ItemIEs} } + +CellMeasurementResult-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellMeasurementResult-Item CRITICALITY ignore TYPE CellMeasurementResult-Item PRESENCE mandatory} +} + +CellMeasurementResult-Item ::= SEQUENCE { + cell-ID ECGI, + hWLoadIndicator HWLoadIndicator OPTIONAL, + s1TNLLoadIndicator S1TNLLoadIndicator OPTIONAL, + radioResourceStatus RadioResourceStatus OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CellMeasurementResult-Item-ExtIEs} } OPTIONAL, + ... +} + +CellMeasurementResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-CompositeAvailableCapacityGroup CRITICALITY ignore EXTENSION CompositeAvailableCapacityGroup PRESENCE optional}| + { ID id-ABS-Status CRITICALITY ignore EXTENSION ABS-Status PRESENCE optional}| + { ID id-RSRPMRList CRITICALITY ignore EXTENSION RSRPMRList PRESENCE optional}| + { ID id-CSIReportList CRITICALITY ignore EXTENSION CSIReportList PRESENCE optional}| + { ID id-CellReportingIndicator CRITICALITY ignore EXTENSION CellReportingIndicator PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- PRIVATE MESSAGE +-- +-- ************************************************************** + +PrivateMessage ::= SEQUENCE { + privateIEs PrivateIE-Container {{PrivateMessage-IEs}}, + ... +} + +PrivateMessage-IEs X2AP-PRIVATE-IES ::= { + ... +} + +-- ************************************************************** +-- +-- MOBILITY CHANGE REQUEST +-- +-- ************************************************************** + +MobilityChangeRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{MobilityChangeRequest-IEs}}, + ... +} + +MobilityChangeRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-ENB1-Mobility-Parameters CRITICALITY ignore TYPE MobilityParametersInformation PRESENCE optional}| + { ID id-ENB2-Proposed-Mobility-Parameters CRITICALITY reject TYPE MobilityParametersInformation PRESENCE mandatory}| + { ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- MOBILITY CHANGE ACKNOWLEDGE +-- +-- ************************************************************** + +MobilityChangeAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{MobilityChangeAcknowledge-IEs}}, + ... +} + +MobilityChangeAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- MOBILITY CHANGE FAILURE +-- +-- ************************************************************** + +MobilityChangeFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{MobilityChangeFailure-IEs}}, + ... +} + +MobilityChangeFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-ENB2-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-ENB2-Mobility-Parameters-Modification-Range CRITICALITY ignore TYPE MobilityParametersModificationRange PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Radio Link Failure Indication +-- +-- ************************************************************** + +RLFIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RLFIndication-IEs}}, + ... +} + +RLFIndication-IEs X2AP-PROTOCOL-IES ::= { + { ID id-FailureCellPCI CRITICALITY ignore TYPE PCI PRESENCE mandatory}| + { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-FailureCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE mandatory}| + { ID id-ShortMAC-I CRITICALITY ignore TYPE ShortMAC-I PRESENCE optional}| + { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}| + { ID id-RRCConnSetupIndicator CRITICALITY reject TYPE RRCConnSetupIndicator PRESENCE optional}| + { ID id-RRCConnReestabIndicator CRITICALITY ignore TYPE RRCConnReestabIndicator PRESENCE optional}| + { ID id-UE-RLF-Report-Container-for-extended-bands CRITICALITY ignore TYPE UE-RLF-Report-Container-for-extended-bands PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- Cell Activation Request +-- +-- ************************************************************** + +CellActivationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationRequest-IEs}}, + ... +} + +CellActivationRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ServedCellsToActivate CRITICALITY reject TYPE ServedCellsToActivate PRESENCE mandatory}, + ... +} + +ServedCellsToActivate::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToActivate-Item + +ServedCellsToActivate-Item::= SEQUENCE { + ecgi ECGI, + iE-Extensions ProtocolExtensionContainer { { ServedCellsToActivate-Item-ExtIEs} } OPTIONAL, + ... +} + +ServedCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Cell Activation Response +-- +-- ************************************************************** + +CellActivationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationResponse-IEs}}, + ... +} + +CellActivationResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ActivatedCellList CRITICALITY ignore TYPE ActivatedCellList PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +ActivatedCellList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ActivatedCellList-Item + +ActivatedCellList-Item::= SEQUENCE { + ecgi ECGI, + iE-Extensions ProtocolExtensionContainer { { ActivatedCellList-Item-ExtIEs} } OPTIONAL, + ... +} + +ActivatedCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +--************************************************************** +-- +-- CELL ACTIVATION FAILURE +-- +-- ************************************************************** + +CellActivationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationFailure-IEs}}, + ... +} + +CellActivationFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- X2 RELEASE +-- +-- ************************************************************** + +X2Release ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2Release-IEs}}, + ... +} + +X2Release-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}, +... +} + +-- ************************************************************** +-- +-- X2AP Message Transfer +-- +-- ************************************************************** + +X2APMessageTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2APMessageTransfer-IEs}}, + ... +} + +X2APMessageTransfer-IEs X2AP-PROTOCOL-IES ::= { + { ID id-RNL-Header CRITICALITY reject TYPE RNL-Header PRESENCE mandatory}| + { ID id-x2APMessage CRITICALITY reject TYPE X2AP-Message PRESENCE optional}, + ... +} + +RNL-Header ::= SEQUENCE { + source-GlobalENB-ID GlobalENB-ID, + target-GlobalENB-ID GlobalENB-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { RNL-Header-Item-ExtIEs} } OPTIONAL, + ... +} + +RNL-Header-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +X2AP-Message ::= OCTET STRING + +-- ************************************************************** +-- +-- SENB ADDITION REQUEST +-- +-- ************************************************************** + +SeNBAdditionRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBAdditionRequest-IEs}}, + ... +} + +SeNBAdditionRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-UE-SecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE conditional}| + -- This IE shall be present if the Bearer Option IE is set to the value “SCG bearer” -- + { ID id-SeNBSecurityKey CRITICALITY reject TYPE SeNBSecurityKey PRESENCE conditional}| + -- This IE shall be present if the Bearer Option IE is set to the value “SCG bearer” -- + { ID id-SeNBUEAggregateMaximumBitRate CRITICALITY reject TYPE UEAggregateMaximumBitRate PRESENCE mandatory}| + { ID id-ServingPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| + { ID id-E-RABs-ToBeAdded-List CRITICALITY reject TYPE E-RABs-ToBeAdded-List PRESENCE mandatory}| + { ID id-MeNBtoSeNBContainer CRITICALITY reject TYPE MeNBtoSeNBContainer PRESENCE mandatory}| + { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +E-RABs-ToBeAdded-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { { E-RABs-ToBeAdded-ItemIEs} } + +E-RABs-ToBeAdded-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeAdded-Item CRITICALITY reject TYPE E-RABs-ToBeAdded-Item PRESENCE mandatory}, + ... +} + +E-RABs-ToBeAdded-Item ::= CHOICE { + sCG-Bearer E-RABs-ToBeAdded-Item-SCG-Bearer, + split-Bearer E-RABs-ToBeAdded-Item-Split-Bearer, + ... +} + +E-RABs-ToBeAdded-Item-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + dL-Forwarding DL-Forwarding OPTIONAL, + s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-Item-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-Item-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}, + ... +} + +E-RABs-ToBeAdded-Item-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + meNB-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-Item-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-Item-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB ADDITION REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +SeNBAdditionRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBAdditionRequestAcknowledge-IEs}}, + ... +} + +SeNBAdditionRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-Admitted-ToBeAdded-List CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-List PRESENCE mandatory}| + { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| + { ID id-SeNBtoMeNBContainer CRITICALITY reject TYPE SeNBtoMeNBContainer PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}, + ... +} + +E-RABs-Admitted-ToBeAdded-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-ItemIEs} } + +E-RABs-Admitted-ToBeAdded-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeAdded-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-Item PRESENCE mandatory} +} + +E-RABs-Admitted-ToBeAdded-Item ::= CHOICE { + sCG-Bearer E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer, + split-Bearer E-RABs-Admitted-ToBeAdded-Item-Split-Bearer, + ... +} + +E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-Item-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-Item-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeAdded-Item-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + seNB-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-Item-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-Item-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB ADDITION REQUEST REJECT +-- +-- ************************************************************** + +SeNBAdditionRequestReject ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBAdditionRequestReject-IEs}}, + ... +} + +SeNBAdditionRequestReject-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SENB RECONFIGURATION COMPLETE +-- +-- ************************************************************** + +SeNBReconfigurationComplete ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBReconfigurationComplete-IEs}}, + ... +} + +SeNBReconfigurationComplete-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-ResponseInformationSeNBReconfComp CRITICALITY ignore TYPE ResponseInformationSeNBReconfComp PRESENCE mandatory}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +ResponseInformationSeNBReconfComp ::= CHOICE { + success ResponseInformationSeNBReconfComp-SuccessItem, + reject-by-MeNB ResponseInformationSeNBReconfComp-RejectByMeNBItem, + ... +} + +ResponseInformationSeNBReconfComp-SuccessItem ::= SEQUENCE { + meNBtoSeNBContainer MeNBtoSeNBContainer OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ResponseInformationSeNBReconfComp-SuccessItemExtIEs} } OPTIONAL, + ... +} + +ResponseInformationSeNBReconfComp-SuccessItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ResponseInformationSeNBReconfComp-RejectByMeNBItem ::= SEQUENCE { + cause Cause, + meNBtoSeNBContainer MeNBtoSeNBContainer OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ResponseInformationSeNBReconfComp-RejectByMeNBItemExtIEs} } OPTIONAL, + ... +} + +ResponseInformationSeNBReconfComp-RejectByMeNBItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION REQUEST +-- +-- ************************************************************** + +SeNBModificationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SeNBModificationRequest-IEs}}, + ... +} + +SeNBModificationRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-SCGChangeIndication CRITICALITY ignore TYPE SCGChangeIndication PRESENCE optional}| + { ID id-ServingPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| + { ID id-UE-ContextInformationSeNBModReq CRITICALITY reject TYPE UE-ContextInformationSeNBModReq PRESENCE optional}| + { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +UE-ContextInformationSeNBModReq ::= SEQUENCE { + uE-SecurityCapabilities UESecurityCapabilities OPTIONAL, + seNB-SecurityKey SeNBSecurityKey OPTIONAL, + seNBUEAggregateMaximumBitRate UEAggregateMaximumBitRate OPTIONAL, + e-RABs-ToBeAdded E-RABs-ToBeAdded-List-ModReq OPTIONAL, + e-RABs-ToBeModified E-RABs-ToBeModified-List-ModReq OPTIONAL, + e-RABs-ToBeReleased E-RABs-ToBeReleased-List-ModReq OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { UE-ContextInformationSeNBModReqExtIEs} } OPTIONAL, + ... +} + +UE-ContextInformationSeNBModReqExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeAdded-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-ModReqItemIEs} } + +E-RABs-ToBeAdded-ModReqItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeAdded-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeAdded-ModReqItem PRESENCE mandatory}, + ... +} + +E-RABs-ToBeAdded-ModReqItem ::= CHOICE { + sCG-Bearer E-RABs-ToBeAdded-ModReqItem-SCG-Bearer, + split-Bearer E-RABs-ToBeAdded-ModReqItem-Split-Bearer, + ... +} + +E-RABs-ToBeAdded-ModReqItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + dL-Forwarding DL-Forwarding OPTIONAL, + s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}, + ... +} + +E-RABs-ToBeAdded-ModReqItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + meNB-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-ModReqItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeModified-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeModified-ModReqItemIEs} } + +E-RABs-ToBeModified-ModReqItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeModified-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeModified-ModReqItem PRESENCE mandatory}, + ... +} + + +E-RABs-ToBeModified-ModReqItem ::= CHOICE { + sCG-Bearer E-RABs-ToBeModified-ModReqItem-SCG-Bearer, + split-Bearer E-RABs-ToBeModified-ModReqItem-Split-Bearer, + ... +} + +E-RABs-ToBeModified-ModReqItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, + s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeModified-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeModified-ModReqItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, + meNB-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-ModReqItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeModified-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-ModReqItemIEs} } + +E-RABs-ToBeReleased-ModReqItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqItem PRESENCE mandatory}, + ... +} + +E-RABs-ToBeReleased-ModReqItem ::= CHOICE { + sCG-Bearer E-RABs-ToBeReleased-ModReqItem-SCG-Bearer, + split-Bearer E-RABs-ToBeReleased-ModReqItem-Split-Bearer, + ... +} + +E-RABs-ToBeReleased-ModReqItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-ModReqItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +SeNBModificationRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBModificationRequestAcknowledge-IEs}}, + ... +} + +SeNBModificationRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-Admitted-ToBeAdded-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-ModAckList PRESENCE optional}| + { ID id-E-RABs-Admitted-ToBeModified-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-ModAckList PRESENCE optional}| + { ID id-E-RABs-Admitted-ToBeReleased-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeReleased-ModAckList PRESENCE optional}| + { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| + { ID id-SeNBtoMeNBContainer CRITICALITY ignore TYPE SeNBtoMeNBContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +E-RABs-Admitted-ToBeAdded-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-ModAckItemIEs} } + +E-RABs-Admitted-ToBeAdded-ModAckItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeAdded-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-ModAckItem PRESENCE mandatory} +} + +E-RABs-Admitted-ToBeAdded-ModAckItem ::= CHOICE { + sCG-Bearer E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer, + split-Bearer E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer, + ... +} + +E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + seNB-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-ModAckItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} +E-RABs-Admitted-ToBeModified-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeModified-ModAckItemIEs} } + +E-RABs-Admitted-ToBeModified-ModAckItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeModified-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-ModAckItem PRESENCE mandatory} +} + +E-RABs-Admitted-ToBeModified-ModAckItem ::= CHOICE { + sCG-Bearer E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer, + split-Bearer E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer, + ... +} + +E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeModified-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + seNB-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-ModAckItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeModified-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeReleased-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeReleased-ModAckItemIEs} } + +E-RABs-Admitted-ToBeReleased-ModAckItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeReleased-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToReleased-ModAckItem PRESENCE mandatory} +} + +E-RABs-Admitted-ToReleased-ModAckItem ::= CHOICE { + sCG-Bearer E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer, + split-Bearer E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer, + ... +} + +E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-ModAckItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeReleased-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION REQUEST REJECT +-- +-- ************************************************************** + +SeNBModificationRequestReject ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBModificationRequestReject-IEs}}, + ... +} + +SeNBModificationRequestReject-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION REQUIRED +-- +-- ************************************************************** + +SeNBModificationRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBModificationRequired-IEs}}, + ... +} + +SeNBModificationRequired-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-SCGChangeIndication CRITICALITY ignore TYPE SCGChangeIndication PRESENCE optional}| + { ID id-E-RABs-ToBeReleased-ModReqd CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqd PRESENCE optional}| + { ID id-SeNBtoMeNBContainer CRITICALITY ignore TYPE SeNBtoMeNBContainer PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + + +E-RABs-ToBeReleased-ModReqd ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-ModReqdItemIEs} } + +E-RABs-ToBeReleased-ModReqdItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-ModReqdItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqdItem PRESENCE mandatory }, + ... +} + +E-RABs-ToBeReleased-ModReqdItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqdItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-ModReqdItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION CONFIRM +-- +-- ************************************************************** + +SeNBModificationConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBModificationConfirm-IEs}}, + ... +} + +SeNBModificationConfirm-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION REFUSE +-- +-- ************************************************************** + +SeNBModificationRefuse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBModificationRefuse-IEs}}, + ... +} + +SeNBModificationRefuse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SENB RELEASE REQUEST +-- +-- ************************************************************** + +SeNBReleaseRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBReleaseRequest-IEs}}, + ... +} + +SeNBReleaseRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE optional}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional}| + { ID id-E-RABs-ToBeReleased-List-RelReq CRITICALITY ignore TYPE E-RABs-ToBeReleased-List-RelReq PRESENCE optional}| + { ID id-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} +E-RABs-ToBeReleased-List-RelReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-RelReqItemIEs} } + +E-RABs-ToBeReleased-RelReqItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-RelReqItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-RelReqItem PRESENCE mandatory}, + ... +} + +E-RABs-ToBeReleased-RelReqItem ::= CHOICE { + sCG-Bearer E-RABs-ToBeReleased-RelReqItem-SCG-Bearer, + split-Bearer E-RABs-ToBeReleased-RelReqItem-Split-Bearer, + ... +} + +E-RABs-ToBeReleased-RelReqItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelReqItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-RelReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-RelReqItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelReqItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-RelReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB RELEASE REQUIRED +-- +-- ************************************************************** + +SeNBReleaseRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBReleaseRequired-IEs}}, + ... +} + +SeNBReleaseRequired-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SENB RELEASE CONFIRM +-- +-- ************************************************************** + +SeNBReleaseConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBReleaseConfirm-IEs}}, + ... +} + +SeNBReleaseConfirm-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-ToBeReleased-List-RelConf CRITICALITY ignore TYPE E-RABs-ToBeReleased-List-RelConf PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} +E-RABs-ToBeReleased-List-RelConf ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-RelConfItemIEs} } + +E-RABs-ToBeReleased-RelConfItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-RelConfItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-RelConfItem PRESENCE mandatory}, + ... +} + +E-RABs-ToBeReleased-RelConfItem ::= CHOICE { + sCG-Bearer E-RABs-ToBeReleased-RelConfItem-SCG-Bearer, + split-Bearer E-RABs-ToBeReleased-RelConfItem-Split-Bearer, + ... +} + +E-RABs-ToBeReleased-RelConfItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelConfItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-RelConfItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-RelConfItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelConfItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-RelConfItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB COUNTER CHECK REQUEST +-- +-- ************************************************************** + +SeNBCounterCheckRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBCounterCheckRequest-IEs}}, + ... +} + +SeNBCounterCheckRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-SubjectToCounterCheck-List CRITICALITY ignore TYPE E-RABs-SubjectToCounterCheck-List PRESENCE mandatory}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} +E-RABs-SubjectToCounterCheck-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-SubjectToCounterCheckItemIEs} } + +E-RABs-SubjectToCounterCheckItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-SubjectToCounterCheckItem CRITICALITY ignore TYPE E-RABs-SubjectToCounterCheckItem PRESENCE mandatory}, + ... +} + +E-RABs-SubjectToCounterCheckItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-Count INTEGER (0..4294967295), + dL-Count INTEGER (0..4294967295), + iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToCounterCheckItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-SubjectToCounterCheckItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- X2 REMOVAL REQUEST +-- +-- ************************************************************** + +X2RemovalRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2RemovalRequest-IEs}}, + ... +} + +X2RemovalRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| + { ID id-X2RemovalThreshold CRITICALITY reject TYPE X2BenefitValue PRESENCE optional}, +... +} + + + +-- ************************************************************** +-- +-- X2 REMOVAL RESPONSE +-- +-- ************************************************************** + +X2RemovalResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2RemovalResponse-IEs}}, + ... +} + +X2RemovalResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + + + +-- ************************************************************** +-- +-- X2 REMOVAL FAILURE +-- +-- ************************************************************** + +X2RemovalFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2RemovalFailure-IEs}}, + ... +} + +X2RemovalFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- RETRIEVE UE CONTEXT REQUEST +-- +-- ************************************************************** + +RetrieveUEContextRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ RetrieveUEContextRequest-IEs}}, + ... +} + +RetrieveUEContextRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-resumeID CRITICALITY reject TYPE ResumeID PRESENCE mandatory}| + { ID id-ShortMAC-I CRITICALITY reject TYPE ShortMAC-I PRESENCE mandatory}| + { ID id-NewEUTRANCellIdentifier CRITICALITY reject TYPE EUTRANCellIdentifier PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- RETRIEVE UE CONTEXT RESPONSE +-- +-- ************************************************************** + +RetrieveUEContextResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ RetrieveUEContextResponse-IEs}}, + ... +} + +RetrieveUEContextResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory}| + { ID id-UE-ContextInformationRetrieve CRITICALITY reject TYPE UE-ContextInformationRetrieve PRESENCE mandatory}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +UE-ContextInformationRetrieve ::= SEQUENCE { + mME-UE-S1AP-ID UE-S1AP-ID, + uESecurityCapabilities UESecurityCapabilities, + aS-SecurityInformation AS-SecurityInformation, + uEaggregateMaximumBitRate UEAggregateMaximumBitRate, + subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, + e-RABs-ToBeSetup-ListRetrieve E-RABs-ToBeSetup-ListRetrieve, + rRC-Context RRC-Context, + handoverRestrictionList HandoverRestrictionList OPTIONAL, + locationReportingInformation LocationReportingInformation OPTIONAL, + managBasedMDTallowed ManagementBasedMDTallowed OPTIONAL, + managBasedMDTPLMNList MDTPLMNList OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {UE-ContextInformationRetrieve-ExtIEs} } OPTIONAL, + ... +} + +UE-ContextInformationRetrieve-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeSetup-ListRetrieve ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetupRetrieve-ItemIEs} } + +E-RABs-ToBeSetupRetrieve-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeSetupRetrieve-Item CRITICALITY ignore TYPE E-RABs-ToBeSetupRetrieve-Item PRESENCE mandatory}, + ... +} + +E-RABs-ToBeSetupRetrieve-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + bearerType BearerType OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetupRetrieve-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeSetupRetrieve-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-uL-GTPtunnelEndpoint CRITICALITY reject EXTENSION GTPtunnelEndpoint PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- RETRIEVE UE CONTEXT FAILURE +-- +-- ************************************************************** + +RetrieveUEContextFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ RetrieveUEContextFailure-IEs}}, + ... +} + +RetrieveUEContextFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +END + + +-- ************************************************************** +-- +-- Information Element Definitions +-- +-- ************************************************************** + +X2AP-IEs { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-IEs (2) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + + id-E-RAB-Item, + id-Number-of-Antennaports, + id-MBSFN-Subframe-Info, + id-PRACH-Configuration, + id-CSG-Id, + id-MDTConfiguration, + id-SignallingBasedMDTPLMNList, + id-MultibandInfoList, + id-FreqBandIndicatorPriority, + id-NeighbourTAC, + id-Time-UE-StayedInCell-EnhancedGranularity, + id-MBMS-Service-Area-List, + id-HO-cause, + id-eARFCNExtension, + id-DL-EARFCNExtension, + id-UL-EARFCNExtension, + id-M3Configuration, + id-M4Configuration, + id-M5Configuration, + id-MDT-Location-Info, + id-AdditionalSpecialSubframe-Info, + id-UEID, + id-enhancedRNTP, + id-ProSeUEtoNetworkRelaying, + id-M6Configuration, + id-M7Configuration, + id-OffsetOfNbiotChannelNumberToDL-EARFCN, + id-OffsetOfNbiotChannelNumberToUL-EARFCN, + maxnoofBearers, + maxCellineNB, + maxEARFCN, + maxEARFCNPlusOne, + newmaxEARFCN, + maxInterfaces, + + maxnoofBands, + maxnoofBPLMNs, + maxnoofCells, + maxnoofEPLMNs, + maxnoofEPLMNsPlusOne, + maxnoofForbLACs, + maxnoofForbTACs, + maxnoofNeighbours, + maxnoofPRBs, + maxNrOfErrors, + maxPools, + maxnoofMBSFN, + maxnoofTAforMDT, + maxnoofCellIDforMDT, + maxnoofMBMSServiceAreaIdentities, + maxnoofMDTPLMNs, + maxnoofCoMPHypothesisSet, + maxnoofCoMPCells, + maxUEReport, + maxCellReport, + maxnoofPA, + maxCSIProcess, + maxCSIReport, + maxSubband + +FROM X2AP-Constants + + Criticality, + ProcedureCode, + ProtocolIE-ID, + TriggeringMessage +FROM X2AP-CommonDataTypes + + ProtocolExtensionContainer{}, + ProtocolIE-Single-Container{}, + + X2AP-PROTOCOL-EXTENSION, + X2AP-PROTOCOL-IES +FROM X2AP-Containers; + +-- A + +ABSInformation ::= CHOICE { + fdd ABSInformationFDD, + tdd ABSInformationTDD, + abs-inactive NULL, + ... +} + +ABSInformationFDD ::= SEQUENCE { + abs-pattern-info BIT STRING (SIZE(40)), + numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, + measurement-subset BIT STRING (SIZE(40)), + iE-Extensions ProtocolExtensionContainer { { ABSInformationFDD-ExtIEs} } OPTIONAL, + ... +} + +ABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ABSInformationTDD ::= SEQUENCE { + abs-pattern-info BIT STRING (SIZE(1..70, ...)), + numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, + measurement-subset BIT STRING (SIZE(1..70, ...)), + iE-Extensions ProtocolExtensionContainer { { ABSInformationTDD-ExtIEs} } OPTIONAL, + ... +} + +ABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ABS-Status ::= SEQUENCE { + dL-ABS-status DL-ABS-status, + usableABSInformation UsableABSInformation, + iE-Extensions ProtocolExtensionContainer { {ABS-Status-ExtIEs} } OPTIONAL, + ... +} + +ABS-Status-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +AdditionalSpecialSubframe-Info ::= SEQUENCE { + additionalspecialSubframePatterns AdditionalSpecialSubframePatterns, + cyclicPrefixDL CyclicPrefixDL, + cyclicPrefixUL CyclicPrefixUL, + iE-Extensions ProtocolExtensionContainer { { AdditionalSpecialSubframe-Info-ExtIEs} } OPTIONAL, + ... +} + +AdditionalSpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +AdditionalSpecialSubframePatterns ::= ENUMERATED { + ssp0, + ssp1, + ssp2, + ssp3, + ssp4, + ssp5, + ssp6, + ssp7, + ssp8, + ssp9, + ... +} + +AllocationAndRetentionPriority ::= SEQUENCE { + priorityLevel PriorityLevel, + pre-emptionCapability Pre-emptionCapability, + pre-emptionVulnerability Pre-emptionVulnerability, + iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, + ... +} + +AllocationAndRetentionPriority-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +AreaScopeOfMDT ::= CHOICE { + cellBased CellBasedMDT, + tABased TABasedMDT, + pLMNWide NULL, + ..., + tAIBased TAIBasedMDT +} + +AS-SecurityInformation ::= SEQUENCE { + key-eNodeB-star Key-eNodeB-Star, + nextHopChainingCount NextHopChainingCount, + iE-Extensions ProtocolExtensionContainer { { AS-SecurityInformation-ExtIEs} } OPTIONAL, + ... +} + +AS-SecurityInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- B + +BearerType ::= ENUMERATED { + non-IP, + ... +} + +BenefitMetric ::= INTEGER (-101..100, ...) + +BitRate ::= INTEGER (0..10000000000) +BroadcastPLMNs-Item ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF PLMN-Identity + + +-- C + +CapacityValue ::= INTEGER (0..100) + +Cause ::= CHOICE { + radioNetwork CauseRadioNetwork, + transport CauseTransport, + protocol CauseProtocol, + misc CauseMisc, + ... +} + +CauseMisc ::= ENUMERATED { + control-processing-overload, + hardware-failure, + om-intervention, + not-enough-user-plane-processing-resources, + unspecified, + ... +} + +CauseProtocol ::= ENUMERATED { + transfer-syntax-error, + abstract-syntax-error-reject, + abstract-syntax-error-ignore-and-notify, + message-not-compatible-with-receiver-state, + semantic-error, + unspecified, + abstract-syntax-error-falsely-constructed-message, + ... +} + +CauseRadioNetwork ::= ENUMERATED { + handover-desirable-for-radio-reasons, + time-critical-handover, + resource-optimisation-handover, + reduce-load-in-serving-cell, + partial-handover, + unknown-new-eNB-UE-X2AP-ID, + unknown-old-eNB-UE-X2AP-ID, + unknown-pair-of-UE-X2AP-ID, + ho-target-not-allowed, + tx2relocoverall-expiry, + trelocprep-expiry, + cell-not-available, + no-radio-resources-available-in-target-cell, + invalid-MME-GroupID, + unknown-MME-Code, + encryption-and-or-integrity-protection-algorithms-not-supported, + reportCharacteristicsEmpty, + noReportPeriodicity, + existingMeasurementID, + unknown-eNB-Measurement-ID, + measurement-temporarily-not-available, + unspecified, + ..., + load-balancing, + handover-optimisation, + value-out-of-allowed-range, + multiple-E-RAB-ID-instances, + switch-off-ongoing, + not-supported-QCI-value, + measurement-not-supported-for-the-object, + tDCoverall-expiry, + tDCprep-expiry, + action-desirable-for-radio-reasons, + reduce-load, + resource-optimisation, + time-critical-action, + target-not-allowed, + no-radio-resources-available, + invalid-QoS-combination, + encryption-algorithms-not-aupported, + procedure-cancelled, + rRM-purpose, + improve-user-bit-rate, + user-inactivity, + radio-connection-with-UE-lost, + failure-in-the-radio-interface-procedure, + bearer-option-not-supported + +} + +CauseTransport ::= ENUMERATED { + transport-resource-unavailable, + unspecified, + ... +} + +CellBasedMDT::= SEQUENCE { + cellIdListforMDT CellIdListforMDT, + iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +CellBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellCapacityClassValue ::= INTEGER (1..100, ...) + +CellDeploymentStatusIndicator ::= ENUMERATED {pre-change-notification, ...} + +CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF ECGI + +CellReplacingInfo ::= SEQUENCE { + replacingCellsList ReplacingCellsList, + iE-Extensions ProtocolExtensionContainer { { CellReplacingInfo-ExtIEs}} OPTIONAL, + ... +} + +CellReplacingInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellReportingIndicator ::= ENUMERATED {stop-request, ... } + +Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ... } + + +CellType ::= SEQUENCE { + cell-Size Cell-Size, + iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL, + ... +} + +CellType-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CoMPHypothesisSet ::= SEQUENCE (SIZE(1..maxnoofCoMPCells)) OF CoMPHypothesisSetItem + +CoMPHypothesisSetItem ::= SEQUENCE { + coMPCellID ECGI, + coMPHypothesis BIT STRING (SIZE(6..4400, ...)), + iE-Extensions ProtocolExtensionContainer { { CoMPHypothesisSetItem-ExtIEs} } OPTIONAL, + ... +} + +CoMPHypothesisSetItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CoMPInformation ::= SEQUENCE { + coMPInformationItem CoMPInformationItem, + coMPInformationStartTime CoMPInformationStartTime, + iE-Extensions ProtocolExtensionContainer { { CoMPInformation-ExtIEs} } OPTIONAL, + ... +} + +CoMPInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CoMPInformationItem ::= SEQUENCE (SIZE(1..maxnoofCoMPHypothesisSet)) OF + SEQUENCE { + coMPHypothesisSet CoMPHypothesisSet, + benefitMetric BenefitMetric, + iE-Extensions ProtocolExtensionContainer { { CoMPInformationItem-ExtIEs} } OPTIONAL, + ... + } + +CoMPInformationItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CoMPInformationStartTime ::= SEQUENCE (SIZE(0..1)) OF + SEQUENCE { + startSFN INTEGER (0..1023, ...), + startSubframeNumber INTEGER (0..9, ...), + iE-Extensions ProtocolExtensionContainer { { CoMPInformationStartTime-ExtIEs} } OPTIONAL, + ... + } + +CoMPInformationStartTime-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompositeAvailableCapacity ::= SEQUENCE { + cellCapacityClassValue CellCapacityClassValue OPTIONAL, + capacityValue CapacityValue, + iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacity-ExtIEs} } OPTIONAL, + ... +} + +CompositeAvailableCapacity-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompositeAvailableCapacityGroup ::= SEQUENCE { + dL-CompositeAvailableCapacity CompositeAvailableCapacity, + uL-CompositeAvailableCapacity CompositeAvailableCapacity, + iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacityGroup-ExtIEs} } OPTIONAL, + ... +} + +CompositeAvailableCapacityGroup-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +Correlation-ID ::= OCTET STRING (SIZE (4)) + +COUNTvalue ::= SEQUENCE { + pDCP-SN PDCP-SN, + hFN HFN, + iE-Extensions ProtocolExtensionContainer { { COUNTvalue-ExtIEs} } OPTIONAL, + ... +} + +COUNTvalue-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTValueExtended ::= SEQUENCE { + pDCP-SNExtended PDCP-SNExtended, + hFNModified HFNModified, + iE-Extensions ProtocolExtensionContainer { { COUNTValueExtended-ExtIEs} } OPTIONAL, + ... +} + +COUNTValueExtended-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTvaluePDCP-SNlength18 ::= SEQUENCE { + pDCP-SNlength18 PDCP-SNlength18, + hFNforPDCP-SNlength18 HFNforPDCP-SNlength18, + iE-Extensions ProtocolExtensionContainer { { COUNTvaluePDCP-SNlength18-ExtIEs} } OPTIONAL, + ... +} + +COUNTvaluePDCP-SNlength18-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CoverageModificationList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF CoverageModification-Item + +CoverageModification-Item ::= SEQUENCE { + eCGI ECGI, + coverageState INTEGER (0..15, ...), + cellDeploymentStatusIndicator CellDeploymentStatusIndicator OPTIONAL, + cellReplacingInfo CellReplacingInfo OPTIONAL, +-- Included in case the Cell Deployment Status Indicator IE is present + ... +} + +CriticalityDiagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL, + ... +} + + +CriticalityDiagnostics-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF + SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-List-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CRNTI ::= BIT STRING (SIZE (16)) + +CSGMembershipStatus ::= ENUMERATED { + member, + not-member +} + +CSG-Id ::= BIT STRING (SIZE (27)) + +CSIReportList ::= SEQUENCE (SIZE(1..maxUEReport)) OF + SEQUENCE { + uEID UEID, + cSIReportPerCSIProcess CSIReportPerCSIProcess, + iE-Extensions ProtocolExtensionContainer { { CSIReportList-ExtIEs} } OPTIONAL, + ... + } + +CSIReportList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CSIReportPerCSIProcess ::= SEQUENCE (SIZE(1.. maxCSIProcess)) OF + SEQUENCE { + cSIProcessConfigurationIndex INTEGER (1..7, ...), + cSIReportPerCSIProcessItem CSIReportPerCSIProcessItem, + iE-Extensions ProtocolExtensionContainer { { CSIReportPerCSIProcess-ExtIEs} } OPTIONAL, + ... + } + +CSIReportPerCSIProcess-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CSIReportPerCSIProcessItem ::= SEQUENCE (SIZE(1.. maxCSIReport)) OF + SEQUENCE { + rI INTEGER (1..8, ...), + widebandCQI WidebandCQI, + subbandSize SubbandSize, + subbandCQIList SubbandCQIList OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { CSIReportPerCSIProcessItem-ExtIEs} } OPTIONAL, + ... + } + +CSIReportPerCSIProcessItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CyclicPrefixDL ::= ENUMERATED { + normal, + extended, + ... +} + +CyclicPrefixUL ::= ENUMERATED { + normal, + extended, + ... +} + + +-- D + +DeactivationIndication::= ENUMERATED { + deactivated, + ... +} + +DL-ABS-status::= INTEGER (0..100) + +DL-Forwarding ::= ENUMERATED { + dL-forwardingProposed, + ... +} + +DL-GBR-PRB-usage::= INTEGER (0..100) + +DL-non-GBR-PRB-usage::= INTEGER (0..100) + +DL-Total-PRB-usage::= INTEGER (0..100) + +DynamicDLTransmissionInformation ::= CHOICE { + naics-active DynamicNAICSInformation, + naics-inactive NULL, + ... +} + +DynamicNAICSInformation ::= SEQUENCE { + transmissionModes BIT STRING (SIZE(8)) OPTIONAL, + pB-information INTEGER(0..3) OPTIONAL, + pA-list SEQUENCE (SIZE(0..maxnoofPA)) OF PA-Values, + iE-Extensions ProtocolExtensionContainer { {DynamicNAICSInformation-ExtIEs} } OPTIONAL, + ... +} + +DynamicNAICSInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- E + +EARFCN ::= INTEGER (0..maxEARFCN) + +EARFCNExtension ::= INTEGER(maxEARFCNPlusOne..newmaxEARFCN, ...) + +ECGI ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + eUTRANcellIdentifier EUTRANCellIdentifier, + iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL, + ... +} + +ECGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +EnhancedRNTP ::= SEQUENCE { + enhancedRNTPBitmap BIT STRING (SIZE(12..8800, ...)), + rNTP-High-Power-Threshold RNTP-Threshold, + enhancedRNTPStartTime EnhancedRNTPStartTime OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { EnhancedRNTP-ExtIEs} } OPTIONAL, + ... +} + +EnhancedRNTP-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +EnhancedRNTPStartTime ::= SEQUENCE { + startSFN INTEGER (0..1023, ...), + startSubframeNumber INTEGER (0..9, ...), + iE-Extensions ProtocolExtensionContainer { { EnhancedRNTPStartTime-ExtIEs} } OPTIONAL, + ... + } + +EnhancedRNTPStartTime-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENB-ID ::= CHOICE { + macro-eNB-ID BIT STRING (SIZE (20)), + home-eNB-ID BIT STRING (SIZE (28)), + ... +} + +EncryptionAlgorithms ::= BIT STRING (SIZE (16, ...)) + +EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMN-Identity + +E-RAB-ID ::= INTEGER (0..15, ...) + +E-RAB-Level-QoS-Parameters ::= SEQUENCE { + qCI QCI, + allocationAndRetentionPriority AllocationAndRetentionPriority, + gbrQosInformation GBR-QosInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { E-RAB-Level-QoS-Parameters-ExtIEs} } OPTIONAL, + ... +} + +E-RAB-Level-QoS-Parameters-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RAB-List ::= SEQUENCE (SIZE(1.. maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RAB-ItemIEs} } + +E-RAB-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RAB-Item CRITICALITY ignore TYPE E-RAB-Item PRESENCE mandatory }, + ... +} + +E-RAB-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RAB-Item-ExtIEs} } OPTIONAL, + ... +} + +E-RAB-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +EUTRA-Mode-Info ::= CHOICE { + fDD FDD-Info, + tDD TDD-Info, + ... +} + +EUTRANCellIdentifier ::= BIT STRING (SIZE (28)) + +EUTRANTraceID ::= OCTET STRING (SIZE (8)) + +EventType ::= ENUMERATED{ + change-of-serving-cell, + ... +} + +ExpectedUEBehaviour ::= SEQUENCE { + expectedActivity ExpectedUEActivityBehaviour OPTIONAL, + expectedHOInterval ExpectedHOInterval OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ExpectedUEBehaviour-ExtIEs} } OPTIONAL, + ... +} + +ExpectedUEBehaviour-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ExpectedUEActivityBehaviour ::= SEQUENCE { + expectedActivityPeriod ExpectedActivityPeriod OPTIONAL, + expectedIdlePeriod ExpectedIdlePeriod OPTIONAL, + sourceofUEActivityBehaviourInformation SourceOfUEActivityBehaviourInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ExpectedUEActivityBehaviour-ExtIEs} } OPTIONAL, + ... +} + +ExpectedUEActivityBehaviour-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ExpectedActivityPeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) + +ExpectedIdlePeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) + +ExpectedHOInterval ::= ENUMERATED { + sec15, sec30, sec60, sec90, sec120, sec180, long-time, + ... +} + +ExtendedULInterferenceOverloadInfo ::= SEQUENCE { + associatedSubframes BIT STRING (SIZE (5)), + extended-ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication, + iE-Extensions ProtocolExtensionContainer { { ExtendedULInterferenceOverloadInfo-ExtIEs} } OPTIONAL, + ... +} + +ExtendedULInterferenceOverloadInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- F + +FDD-Info ::= SEQUENCE { + uL-EARFCN EARFCN, + dL-EARFCN EARFCN, + uL-Transmission-Bandwidth Transmission-Bandwidth, + dL-Transmission-Bandwidth Transmission-Bandwidth, + iE-Extensions ProtocolExtensionContainer { {FDD-Info-ExtIEs} } OPTIONAL, + ... +} + +FDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-UL-EARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}| + { ID id-DL-EARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}| + { ID id-OffsetOfNbiotChannelNumberToDL-EARFCN CRITICALITY reject EXTENSION OffsetOfNbiotChannelNumberToEARFCN PRESENCE optional}| + { ID id-OffsetOfNbiotChannelNumberToUL-EARFCN CRITICALITY reject EXTENSION OffsetOfNbiotChannelNumberToEARFCN PRESENCE optional}, + ... +} + +ForbiddenInterRATs ::= ENUMERATED { + all, + geran, + utran, + cdma2000, + ..., + geranandutran, + cdma2000andutran + +} + +ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item + +ForbiddenTAs-Item ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + forbiddenTACs ForbiddenTACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenTAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC + +ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item + +ForbiddenLAs-Item ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + forbiddenLACs ForbiddenLACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenLAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC + +Fourframes ::= BIT STRING (SIZE (24)) + +FreqBandIndicator ::= INTEGER (1..256, ...) + +FreqBandIndicatorPriority ::= ENUMERATED { + not-broadcasted, + broadcasted, + ... +} + +-- G + +GBR-QosInformation ::= SEQUENCE { + e-RAB-MaximumBitrateDL BitRate, + e-RAB-MaximumBitrateUL BitRate, + e-RAB-GuaranteedBitrateDL BitRate, + e-RAB-GuaranteedBitrateUL BitRate, + iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL, + ... +} + +GBR-QosInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GlobalENB-ID ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + eNB-ID ENB-ID, + iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL, + ... +} + +GlobalENB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GTPtunnelEndpoint ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEI, + iE-Extensions ProtocolExtensionContainer { {GTPtunnelEndpoint-ExtIEs} } OPTIONAL, + ... +} + +GTPtunnelEndpoint-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GTP-TEI ::= OCTET STRING (SIZE (4)) + +GUGroupIDList ::= SEQUENCE (SIZE (1..maxPools)) OF GU-Group-ID + + +GU-Group-ID ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + mME-Group-ID MME-Group-ID, + iE-Extensions ProtocolExtensionContainer { {GU-Group-ID-ExtIEs} } OPTIONAL, + ... +} + +GU-Group-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +GUMMEI ::= SEQUENCE { + + gU-Group-ID GU-Group-ID, + mME-Code MME-Code, + iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, + ... +} + +GUMMEI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- H + +HandoverReportType ::= ENUMERATED { + hoTooEarly, + hoToWrongCell, + ..., + interRATpingpong +} + +HandoverRestrictionList ::= SEQUENCE { + servingPLMN PLMN-Identity, + equivalentPLMNs EPLMNs OPTIONAL, + forbiddenTAs ForbiddenTAs OPTIONAL, + forbiddenLAs ForbiddenLAs OPTIONAL, + forbiddenInterRATs ForbiddenInterRATs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, + ... +} + +HandoverRestrictionList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +HFN ::= INTEGER (0..1048575) + +HFNModified ::= INTEGER (0..131071) + +HFNforPDCP-SNlength18 ::= INTEGER (0..16383) + +HWLoadIndicator ::= SEQUENCE { + dLHWLoadIndicator LoadIndicator, + uLHWLoadIndicator LoadIndicator, + iE-Extensions ProtocolExtensionContainer { { HWLoadIndicator-ExtIEs} } OPTIONAL, + ... +} + +HWLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- I + +IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16, ...)) + +InterfacesToTrace ::= BIT STRING (SIZE (8)) + +InvokeIndication ::= ENUMERATED{ + abs-information, + ..., + naics-information-start, + naics-information-stop +} + +-- J +-- K + +Key-eNodeB-Star ::= BIT STRING (SIZE(256)) + +-- L + +LAC ::= OCTET STRING (SIZE (2)) --(EXCEPT ('0000'H|'FFFE'H)) + +LastVisitedCell-Item ::= CHOICE { + e-UTRAN-Cell LastVisitedEUTRANCellInformation, + uTRAN-Cell LastVisitedUTRANCellInformation, + gERAN-Cell LastVisitedGERANCellInformation, + ... +} + +LastVisitedEUTRANCellInformation ::= SEQUENCE { + global-Cell-ID ECGI, + cellType CellType, + time-UE-StayedInCell Time-UE-StayedInCell, + iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, + ... +} + +LastVisitedEUTRANCellInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +-- Extension for Rel-11 to support enhanced granularity for time UE stayed in cell -- + { ID id-Time-UE-StayedInCell-EnhancedGranularity CRITICALITY ignore EXTENSION Time-UE-StayedInCell-EnhancedGranularity PRESENCE optional}| + { ID id-HO-cause CRITICALITY ignore EXTENSION Cause PRESENCE optional}, + ... +} + +LastVisitedGERANCellInformation ::= CHOICE { + undefined NULL, + ... +} + +LastVisitedUTRANCellInformation ::= OCTET STRING + +LHN-ID ::= OCTET STRING(SIZE (32..256)) + +Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...} + +LoadIndicator ::= ENUMERATED { + lowLoad, + mediumLoad, + highLoad, + overLoad, + ... +} + +LocationReportingInformation ::= SEQUENCE { + eventType EventType, + reportArea ReportArea, + iE-Extensions ProtocolExtensionContainer { {LocationReportingInformation-ExtIEs} } OPTIONAL, + ... +} + +LocationReportingInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::={ + ... +} + +-- M + +M1PeriodicReporting ::= SEQUENCE { + reportInterval ReportIntervalMDT, + reportAmount ReportAmountMDT, + iE-Extensions ProtocolExtensionContainer { { M1PeriodicReporting-ExtIEs} } OPTIONAL, + ... +} + +M1PeriodicReporting-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M1ReportingTrigger::= ENUMERATED{ + periodic, + a2eventtriggered, + ..., + a2eventtriggered-periodic +} + +M1ThresholdEventA2 ::= SEQUENCE { + measurementThreshold MeasurementThresholdA2, + iE-Extensions ProtocolExtensionContainer { { M1ThresholdEventA2-ExtIEs} } OPTIONAL, + ... +} + +M1ThresholdEventA2-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M3Configuration ::= SEQUENCE { + m3period M3period, + iE-Extensions ProtocolExtensionContainer { { M3Configuration-ExtIEs} } OPTIONAL, + ... +} + +M3Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M3period ::= ENUMERATED {ms100, ms1000, ms10000, ... } + +M4Configuration ::= SEQUENCE { + m4period M4period, + m4-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M4Configuration-ExtIEs} } OPTIONAL, + ... +} + +M4Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + + +M5Configuration ::= SEQUENCE { + m5period M5period, + m5-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M5Configuration-ExtIEs} } OPTIONAL, + ... +} + +M5Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + +M6Configuration ::= SEQUENCE { + m6report-interval M6report-interval, + m6delay-threshold M6delay-threshold OPTIONAL, +-- This IE shall be present if the M6 Links to log IE is set to “uplink” or to “both-uplink-and-downlink” -- + m6-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M6Configuration-ExtIEs} } OPTIONAL, + ... +} + +M6Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M6report-interval ::= ENUMERATED { ms1024, ms2048, ms5120, ms10240, ... } + +M6delay-threshold ::= ENUMERATED { ms30, ms40, ms50, ms60, ms70, ms80, ms90, ms100, ms150, ms300, ms500, ms750, ... } + +M7Configuration ::= SEQUENCE { + m7period M7period, + m7-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M7Configuration-ExtIEs} } OPTIONAL, + ... +} + +M7Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M7period ::= INTEGER(1..60, ...) + +ManagementBasedMDTallowed ::= ENUMERATED {allowed, ...} + +Masked-IMEISV ::= BIT STRING (SIZE (64)) + +MDT-Activation ::= ENUMERATED { + immediate-MDT-only, + immediate-MDT-and-Trace, + ... +} + +MDT-Configuration ::= SEQUENCE { + mdt-Activation MDT-Activation, + areaScopeOfMDT AreaScopeOfMDT, + measurementsToActivate MeasurementsToActivate, + m1reportingTrigger M1ReportingTrigger, + m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL, +-- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1 + m1periodicReporting M1PeriodicReporting OPTIONAL, +-- Included in case of periodic, or event-triggered periodic reporting for measurement M1 + iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTIONAL, + ... +} + +MDT-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + {ID id-M3Configuration CRITICALITY ignore EXTENSION M3Configuration PRESENCE conditional}| + {ID id-M4Configuration CRITICALITY ignore EXTENSION M4Configuration PRESENCE conditional}| + {ID id-M5Configuration CRITICALITY ignore EXTENSION M5Configuration PRESENCE conditional}| + {ID id-MDT-Location-Info CRITICALITY ignore EXTENSION MDT-Location-Info PRESENCE optional}| + {ID id-SignallingBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional}| + {ID id-M6Configuration CRITICALITY ignore EXTENSION M6Configuration PRESENCE conditional}| + {ID id-M7Configuration CRITICALITY ignore EXTENSION M7Configuration PRESENCE conditional}, + ... +} + +MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMN-Identity + +MDT-Location-Info ::= BIT STRING (SIZE (8)) + +Measurement-ID ::= INTEGER (1..4095, ...) + +MeasurementsToActivate::= BIT STRING (SIZE (8)) + +MeasurementThresholdA2 ::= CHOICE { + threshold-RSRP Threshold-RSRP, + threshold-RSRQ Threshold-RSRQ, + ... +} + +MeNBtoSeNBContainer ::= OCTET STRING + +MME-Group-ID ::= OCTET STRING (SIZE (2)) + +MME-Code ::= OCTET STRING (SIZE (1)) + +MBMS-Service-Area-Identity-List ::= SEQUENCE (SIZE(1.. maxnoofMBMSServiceAreaIdentities)) OF MBMS-Service-Area-Identity + +MBMS-Service-Area-Identity ::= OCTET STRING (SIZE (2)) + +MBSFN-Subframe-Infolist::= SEQUENCE (SIZE(1.. maxnoofMBSFN)) OF MBSFN-Subframe-Info + +MBSFN-Subframe-Info ::= SEQUENCE { + radioframeAllocationPeriod RadioframeAllocationPeriod, + radioframeAllocationOffset RadioframeAllocationOffset, + subframeAllocation SubframeAllocation, + iE-Extensions ProtocolExtensionContainer { { MBSFN-Subframe-Info-ExtIEs } } OPTIONAL, + ... +} + +MBSFN-Subframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +MobilityParametersModificationRange ::= SEQUENCE { + handoverTriggerChangeLowerLimit INTEGER (-20..20), + handoverTriggerChangeUpperLimit INTEGER (-20..20), + ... +} + +MobilityParametersInformation ::= SEQUENCE { + handoverTriggerChange INTEGER (-20..20), + ... +} + +MultibandInfoList ::= SEQUENCE (SIZE(1..maxnoofBands)) OF BandInfo + + +BandInfo ::= SEQUENCE { + freqBandIndicator FreqBandIndicator, + iE-Extensions ProtocolExtensionContainer { { BandInfo-ExtIEs } } OPTIONAL, + ... +} + +BandInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- N + +Neighbour-Information ::= SEQUENCE (SIZE (0..maxnoofNeighbours)) OF SEQUENCE { + eCGI ECGI, + pCI PCI, + eARFCN EARFCN, + iE-Extensions ProtocolExtensionContainer { {Neighbour-Information-ExtIEs} } OPTIONAL, + ... +} + +Neighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-NeighbourTAC CRITICALITY ignore EXTENSION TAC PRESENCE optional}| + { ID id-eARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}, + ... +} + +NextHopChainingCount ::= INTEGER (0..7) + +Number-of-Antennaports ::= ENUMERATED { + an1, + an2, + an4, + ... +} + +-- O + +OffsetOfNbiotChannelNumberToEARFCN ::= ENUMERATED { + minusTen, + minusNine, + minusEight, + minusSeven, + minusSix, + minusFive, + minusFour, + minusThree, + minusTwo, + minusOne, + minusZeroDotFive, + zero, + one, + two, + three, + four, + five, + six, + seven, + eight, + nine, + ... +} + +Oneframe ::= BIT STRING (SIZE (6)) + +-- P + +PA-Values ::= ENUMERATED { + dB-6, + dB-4dot77, + dB-3, + dB-1dot77, + dB0, + dB1, + dB2, + dB3, + ... +} + +PDCP-SN ::= INTEGER (0..4095) + +PDCP-SNExtended ::= INTEGER (0..32767) + +PDCP-SNlength18 ::= INTEGER (0..262143) + +PCI ::= INTEGER (0..503, ...) + +PLMN-Identity ::= OCTET STRING (SIZE(3)) + +Port-Number ::= OCTET STRING (SIZE (2)) + +PRACH-Configuration ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + zeroCorrelationIndex INTEGER (0..15), + highSpeedFlag BOOLEAN, + prach-FreqOffset INTEGER (0..94), + prach-ConfigIndex INTEGER (0..63) OPTIONAL, -- present for TDD -- + iE-Extensions ProtocolExtensionContainer { {PRACH-Configuration-ExtIEs} } OPTIONAL, + ... +} + +PRACH-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +Pre-emptionCapability ::= ENUMERATED { + shall-not-trigger-pre-emption, + may-trigger-pre-emption +} + +Pre-emptionVulnerability ::= ENUMERATED { + not-pre-emptable, + pre-emptable +} + +PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) + +ProSeAuthorized ::= SEQUENCE { + proSeDirectDiscovery ProSeDirectDiscovery OPTIONAL, + proSeDirectCommunication ProSeDirectCommunication OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ProSeAuthorized-ExtIEs} } OPTIONAL, + ... +} + +ProSeAuthorized-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-ProSeUEtoNetworkRelaying CRITICALITY ignore EXTENSION ProSeUEtoNetworkRelaying PRESENCE optional}, + ... +} + +ProSeDirectDiscovery ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +ProSeDirectCommunication ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +ProSeUEtoNetworkRelaying ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +-- Q + +QCI ::= INTEGER (0..255) + +-- R + +RadioframeAllocationOffset ::= INTEGER (0..7, ...) + +RadioframeAllocationPeriod ::= ENUMERATED{ + n1, + n2, + n4, + n8, + n16, + n32, + ... +} + + +RadioResourceStatus ::= SEQUENCE { + dL-GBR-PRB-usage DL-GBR-PRB-usage, + uL-GBR-PRB-usage UL-GBR-PRB-usage, + dL-non-GBR-PRB-usage DL-non-GBR-PRB-usage, + uL-non-GBR-PRB-usage UL-non-GBR-PRB-usage, + dL-Total-PRB-usage DL-Total-PRB-usage, + uL-Total-PRB-usage UL-Total-PRB-usage, + iE-Extensions ProtocolExtensionContainer { {RadioResourceStatus-ExtIEs} } OPTIONAL, + ... +} + +RadioResourceStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) + +ReceiveStatusOfULPDCPSDUsExtended ::= BIT STRING (SIZE(1..16384)) + +ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ::= BIT STRING (SIZE(1..131072)) + +Registration-Request ::= ENUMERATED { + start, + stop, + ..., + partial-stop, + add +} + +RelativeNarrowbandTxPower ::= SEQUENCE { + + rNTP-PerPRB BIT STRING (SIZE(6..110, ...)), + rNTP-Threshold RNTP-Threshold, + numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, + p-B INTEGER (0..3,...), + pDCCH-InterferenceImpact INTEGER (0..4,...), + iE-Extensions ProtocolExtensionContainer { { RelativeNarrowbandTxPower-ExtIEs} } OPTIONAL, + ... +} + +RelativeNarrowbandTxPower-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-enhancedRNTP CRITICALITY ignore EXTENSION EnhancedRNTP PRESENCE optional }, + ... +} + +ReplacingCellsList ::= SEQUENCE (SIZE(0.. maxCellineNB)) OF ReplacingCellsList-Item + +ReplacingCellsList-Item ::= SEQUENCE { + eCGI ECGI, + ... +} + +ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity} + +ReportArea ::= ENUMERATED{ + ecgi, + ... +} + +ReportCharacteristics ::= BIT STRING (SIZE (32)) + +ReportingPeriodicityCSIR ::= ENUMERATED { + ms5, + ms10, + ms20, + ms40, + ms80, +... +} + +ReportingPeriodicityRSRPMR ::= ENUMERATED { + one-hundred-20-ms, + two-hundred-40-ms, + four-hundred-80-ms, + six-hundred-40-ms, +... +} + +ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60} + +ResumeID ::= CHOICE { + non-truncated BIT STRING(SIZE(40)), + truncated BIT STRING(SIZE(24)), + ... +} + +RNTP-Threshold ::= ENUMERATED { + minusInfinity, + minusEleven, + minusTen, + minusNine, + minusEight, + minusSeven, + minusSix, + minusFive, + minusFour, + minusThree, + minusTwo, + minusOne, + zero, + one, + two, + three, + ... +} + +RRC-Context ::= OCTET STRING + +RRCConnReestabIndicator ::= ENUMERATED { + reconfigurationFailure, handoverFailure, otherFailure, ... +} +-- The values correspond to the values of ReestablishmentCause reported from the UE in the RRCConnectionReestablishmentRequest, as defined in TS 36.331 [9] + +RRCConnSetupIndicator::= ENUMERATED { + rrcConnSetup, + ... +} + +RSRPMeasurementResult ::= SEQUENCE (SIZE(1..maxCellReport)) OF + SEQUENCE { + rSRPCellID ECGI, + rSRPMeasured INTEGER (0..97, ...), + iE-Extensions ProtocolExtensionContainer { { RSRPMeasurementResult-ExtIEs} } OPTIONAL, + ... + } + +RSRPMeasurementResult-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +RSRPMRList ::= SEQUENCE (SIZE(1..maxUEReport)) OF + SEQUENCE { + rSRPMeasurementResult RSRPMeasurementResult, + iE-Extensions ProtocolExtensionContainer { { RSRPMRList-ExtIEs} } OPTIONAL, + ... + } + +RSRPMRList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-UEID CRITICALITY ignore EXTENSION UEID PRESENCE optional}, + ... +} + +-- S + +S1TNLLoadIndicator ::= SEQUENCE { + dLS1TNLLoadIndicator LoadIndicator, + uLS1TNLLoadIndicator LoadIndicator, + iE-Extensions ProtocolExtensionContainer { { S1TNLLoadIndicator-ExtIEs} } OPTIONAL, + ... +} + +S1TNLLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +SCGChangeIndication ::= ENUMERATED {pDCPCountWrapAround, pSCellChange, other, ...} + +SeNBSecurityKey ::= BIT STRING (SIZE(256)) + +SeNBtoMeNBContainer ::= OCTET STRING + + +ServedCells ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { + servedCellInfo ServedCell-Information, + neighbour-Info Neighbour-Information OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ServedCell-ExtIEs} } OPTIONAL, + ... +} + +ServedCell-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedCell-Information ::= SEQUENCE { + pCI PCI, + cellId ECGI, + tAC TAC, + broadcastPLMNs BroadcastPLMNs-Item, + eUTRA-Mode-Info EUTRA-Mode-Info, + iE-Extensions ProtocolExtensionContainer { {ServedCell-Information-ExtIEs} } OPTIONAL, + ... +} + +ServedCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-Number-of-Antennaports CRITICALITY ignore EXTENSION Number-of-Antennaports PRESENCE optional}| + { ID id-PRACH-Configuration CRITICALITY ignore EXTENSION PRACH-Configuration PRESENCE optional}| + { ID id-MBSFN-Subframe-Info CRITICALITY ignore EXTENSION MBSFN-Subframe-Infolist PRESENCE optional}| + { ID id-CSG-Id CRITICALITY ignore EXTENSION CSG-Id PRESENCE optional}| + { ID id-MBMS-Service-Area-List CRITICALITY ignore EXTENSION MBMS-Service-Area-Identity-List PRESENCE optional}| + { ID id-MultibandInfoList CRITICALITY ignore EXTENSION MultibandInfoList PRESENCE optional}| + { ID id-FreqBandIndicatorPriority CRITICALITY ignore EXTENSION FreqBandIndicatorPriority PRESENCE optional}, + ... +} + +SIPTOBearerDeactivationIndication ::= ENUMERATED { + true, + ... +} + +ShortMAC-I ::= BIT STRING (SIZE(16)) + +SourceOfUEActivityBehaviourInformation ::= ENUMERATED { + subscription-information, + statistics, + ... +} + +SpecialSubframe-Info ::= SEQUENCE { + specialSubframePatterns SpecialSubframePatterns, + cyclicPrefixDL CyclicPrefixDL, + cyclicPrefixUL CyclicPrefixUL, + iE-Extensions ProtocolExtensionContainer { { SpecialSubframe-Info-ExtIEs} } OPTIONAL, + ... +} + +SpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +SpecialSubframePatterns ::= ENUMERATED { + ssp0, + ssp1, + ssp2, + ssp3, + ssp4, + ssp5, + ssp6, + ssp7, + ssp8, + ... +} + +SubbandCQI ::= SEQUENCE { + subbandCQICodeword0 SubbandCQICodeword0, + subbandCQICodeword1 SubbandCQICodeword1 OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { SubbandCQI-ExtIEs} } OPTIONAL, + ... +} + +SRVCCOperationPossible ::= ENUMERATED { + possible, + ... +} + +SubbandCQI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +SubbandCQICodeword0 ::= CHOICE { + four-bitCQI INTEGER (0..15, ...), + two-bitSubbandDifferentialCQI INTEGER (0..3, ...), + two-bitDifferentialCQI INTEGER (0..3, ...), + ... +} +SubbandCQICodeword1 ::= CHOICE { + four-bitCQI INTEGER (0..15, ...), + three-bitSpatialDifferentialCQI INTEGER (0..7, ...), + two-bitSubbandDifferentialCQI INTEGER (0..3, ...), + two-bitDifferentialCQI INTEGER (0..3, ...), + ... +} + +SubbandCQIList ::= SEQUENCE (SIZE(1.. maxSubband)) OF SubbandCQIItem + +SubbandCQIItem ::= SEQUENCE { + subbandCQI SubbandCQI, + subbandIndex INTEGER (0..27,...), + iE-Extensions ProtocolExtensionContainer { { SubbandCQIItem-ExtIEs} } OPTIONAL, + ... +} + +SubbandCQIItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +SubbandSize ::= ENUMERATED { + size2, + size3, + size4, + size6, + size8, + ... +} + +SubscriberProfileIDforRFP ::= INTEGER (1..256) + +SubframeAllocation ::= CHOICE { + oneframe Oneframe, + fourframes Fourframes, + ... +} + +SubframeAssignment ::= ENUMERATED { + sa0, + sa1, + sa2, + sa3, + sa4, + sa5, + sa6, + ... +} + + +-- T + +TABasedMDT::= SEQUENCE { + tAListforMDT TAListforMDT, + iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TABasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAC ::= OCTET STRING (SIZE (2)) + +TAIBasedMDT ::= SEQUENCE { + tAIListforMDT TAIListforMDT, + iE-Extensions ProtocolExtensionContainer { {TAIBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TAIBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAIListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAI-Item + +TAI-Item ::= SEQUENCE { + tAC TAC, + pLMN-Identity PLMN-Identity, + iE-Extensions ProtocolExtensionContainer { { TAI-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC + +TargetCellInUTRAN ::= OCTET STRING -- This IE is to be encoded according to the UTRAN Cell ID in the Last Visited UTRAN Cell Information IE in TS 25.413 [24] + +TargeteNBtoSource-eNBTransparentContainer ::= OCTET STRING + +TDD-Info ::= SEQUENCE { + eARFCN EARFCN, + transmission-Bandwidth Transmission-Bandwidth, + subframeAssignment SubframeAssignment, + specialSubframe-Info SpecialSubframe-Info, + iE-Extensions ProtocolExtensionContainer { {TDD-Info-ExtIEs} } OPTIONAL, + ... +} +TDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-AdditionalSpecialSubframe-Info CRITICALITY ignore EXTENSION AdditionalSpecialSubframe-Info PRESENCE optional}| + { ID id-eARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}, + ... +} + +Threshold-RSRP ::= INTEGER(0..97) + +Threshold-RSRQ ::= INTEGER(0..34) + +TimeToWait ::= ENUMERATED { + v1s, + v2s, + v5s, + v10s, + v20s, + v60s, + ... +} + +Time-UE-StayedInCell ::= INTEGER (0..4095) + +Time-UE-StayedInCell-EnhancedGranularity ::= INTEGER (0..40950) + +TraceActivation ::= SEQUENCE { + eUTRANTraceID EUTRANTraceID, + interfacesToTrace InterfacesToTrace, + traceDepth TraceDepth, + traceCollectionEntityIPAddress TraceCollectionEntityIPAddress, + iE-Extensions ProtocolExtensionContainer { {TraceActivation-ExtIEs} } OPTIONAL, + ... +} + +TraceActivation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional}, + ... +} + +TraceCollectionEntityIPAddress ::= BIT STRING (SIZE(1..160, ...)) + +TraceDepth ::= ENUMERATED { + minimum, + medium, + maximum, + minimumWithoutVendorSpecificExtension, + mediumWithoutVendorSpecificExtension, + maximumWithoutVendorSpecificExtension, + ... +} + +Transmission-Bandwidth ::= ENUMERATED { + bw6, + bw15, + bw25, + bw50, + bw75, + bw100, + ..., + bw1 +} + +TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) + +TunnelInformation ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + uDP-Port-Number Port-Number OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {Tunnel-Information-ExtIEs} } OPTIONAL, + ... +} + +Tunnel-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + + +-- U + +UEAggregateMaximumBitRate ::= SEQUENCE { + uEaggregateMaximumBitRateDownlink BitRate, + uEaggregateMaximumBitRateUplink BitRate, + iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrate-ExtIEs} } OPTIONAL, + ... +} + +UEAggregate-MaximumBitrate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UE-ContextKeptIndicator ::= ENUMERATED { + true, + ... +} + +UEID ::= BIT STRING (SIZE (16)) + +UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item + +UE-HistoryInformationFromTheUE ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the VisitedCellInfoList field contained in the UEInformationResponse message as defined in TS 36.331 [9] + +UE-S1AP-ID ::= INTEGER (0.. 4294967295) + +UE-X2AP-ID ::= INTEGER (0..4095) + +UE-X2AP-ID-Extension ::= INTEGER (0..4095, ...) + +UE-RLF-Report-Container::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the RLF-Report-r9 field contained in the UEInformationResponse message as defined in TS 36.331 [9] + +UE-RLF-Report-Container-for-extended-bands ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the RLF-Report-v9e0 field contained in the UEInformationResponse message as defined in TS 36.331 [9] + +UESecurityCapabilities ::= SEQUENCE { + encryptionAlgorithms EncryptionAlgorithms, + integrityProtectionAlgorithms IntegrityProtectionAlgorithms, + iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL, +... +} + +UESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UL-GBR-PRB-usage::= INTEGER (0..100) + +UL-HighInterferenceIndicationInfo ::= SEQUENCE (SIZE(1..maxCellineNB)) OF UL-HighInterferenceIndicationInfo-Item + +UL-HighInterferenceIndicationInfo-Item ::= SEQUENCE { + target-Cell-ID ECGI, + ul-interferenceindication UL-HighInterferenceIndication, + iE-Extensions ProtocolExtensionContainer { { UL-HighInterferenceIndicationInfo-Item-ExtIEs} } OPTIONAL, + ... +} + +UL-HighInterferenceIndicationInfo-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UL-HighInterferenceIndication ::= BIT STRING (SIZE(1..110, ...)) + +UL-InterferenceOverloadIndication ::= SEQUENCE (SIZE(1..maxnoofPRBs)) OF UL-InterferenceOverloadIndication-Item + +UL-InterferenceOverloadIndication-Item ::= ENUMERATED { + high-interference, + medium-interference, + low-interference, + ... +} + +UL-non-GBR-PRB-usage::= INTEGER (0..100) + +UL-Total-PRB-usage::= INTEGER (0..100) + +UsableABSInformation ::= CHOICE { + fdd UsableABSInformationFDD, + tdd UsableABSInformationTDD, + ... +} + +UsableABSInformationFDD ::= SEQUENCE { + usable-abs-pattern-info BIT STRING (SIZE(40)), + iE-Extensions ProtocolExtensionContainer { { UsableABSInformationFDD-ExtIEs} } OPTIONAL, + ... +} + +UsableABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UsableABSInformationTDD ::= SEQUENCE { + usaable-abs-pattern-info BIT STRING (SIZE(1..70, ...)), + iE-Extensions ProtocolExtensionContainer { { UsableABSInformationTDD-ExtIEs} } OPTIONAL, + ... +} + +UsableABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- V +-- W + +WidebandCQI ::= SEQUENCE { + widebandCQICodeword0 INTEGER (0..15, ...), + widebandCQICodeword1 WidebandCQICodeword1 OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { WidebandCQI-ExtIEs} } OPTIONAL, + ... +} + +WidebandCQI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +WidebandCQICodeword1::= CHOICE { + four-bitCQI INTEGER (0..15, ...), + three-bitSpatialDifferentialCQI INTEGER (0..7, ...), + ... +} + +-- X + +X2BenefitValue ::= INTEGER (1..8, ...) + +-- Y +-- Z + +END + + +-- ************************************************************** +-- +-- Common definitions +-- +-- ************************************************************** + +X2AP-CommonDataTypes { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-CommonDataTypes (3) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- Extension constants +-- +-- ************************************************************** + +maxPrivateIEs INTEGER ::= 65535 +maxProtocolExtensions INTEGER ::= 65535 +maxProtocolIEs INTEGER ::= 65535 + +-- ************************************************************** +-- +-- Common Data Types +-- +-- ************************************************************** + +Criticality ::= ENUMERATED { reject, ignore, notify } + +Presence ::= ENUMERATED { optional, conditional, mandatory } + +PrivateIE-ID ::= CHOICE { + local INTEGER (0.. maxPrivateIEs), + global OBJECT IDENTIFIER +} + +ProcedureCode ::= INTEGER (0..255) + + +ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs) + + +TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome} + +END + + +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +X2AP-Constants { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Constants (4) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + ProcedureCode, + ProtocolIE-ID +FROM X2AP-CommonDataTypes; + +-- ************************************************************** +-- +-- Elementary Procedures +-- +-- ************************************************************** + +id-handoverPreparation ProcedureCode ::= 0 +id-handoverCancel ProcedureCode ::= 1 +id-loadIndication ProcedureCode ::= 2 +id-errorIndication ProcedureCode ::= 3 +id-snStatusTransfer ProcedureCode ::= 4 +id-uEContextRelease ProcedureCode ::= 5 +id-x2Setup ProcedureCode ::= 6 +id-reset ProcedureCode ::= 7 +id-eNBConfigurationUpdate ProcedureCode ::= 8 +id-resourceStatusReportingInitiation ProcedureCode ::= 9 +id-resourceStatusReporting ProcedureCode ::= 10 +id-privateMessage ProcedureCode ::= 11 +id-mobilitySettingsChange ProcedureCode ::= 12 +id-rLFIndication ProcedureCode ::= 13 +id-handoverReport ProcedureCode ::= 14 +id-cellActivation ProcedureCode ::= 15 +id-x2Release ProcedureCode ::= 16 +id-x2APMessageTransfer ProcedureCode ::= 17 +id-x2Removal ProcedureCode ::= 18 +id-seNBAdditionPreparation ProcedureCode ::= 19 +id-seNBReconfigurationCompletion ProcedureCode ::= 20 +id-meNBinitiatedSeNBModificationPreparation ProcedureCode ::= 21 +id-seNBinitiatedSeNBModification ProcedureCode ::= 22 +id-meNBinitiatedSeNBRelease ProcedureCode ::= 23 +id-seNBinitiatedSeNBRelease ProcedureCode ::= 24 +id-seNBCounterCheck ProcedureCode ::= 25 +id-retrieveUEContext ProcedureCode ::= 26 + + +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** + +maxEARFCN INTEGER ::= 65535 +maxEARFCNPlusOne INTEGER ::= 65536 +newmaxEARFCN INTEGER ::= 262143 +maxInterfaces INTEGER ::= 16 +maxCellineNB INTEGER ::= 256 +maxnoofBands INTEGER ::= 16 +maxnoofBearers INTEGER ::= 256 +maxNrOfErrors INTEGER ::= 256 +maxnoofPDCP-SN INTEGER ::= 16 +maxnoofEPLMNs INTEGER ::= 15 +maxnoofEPLMNsPlusOne INTEGER ::= 16 +maxnoofForbLACs INTEGER ::= 4096 +maxnoofForbTACs INTEGER ::= 4096 +maxnoofBPLMNs INTEGER ::= 6 +maxnoofNeighbours INTEGER ::= 512 +maxnoofPRBs INTEGER ::= 110 +maxPools INTEGER ::= 16 +maxnoofCells INTEGER ::= 16 +maxnoofMBSFN INTEGER ::= 8 +maxFailedMeasObjects INTEGER ::= 32 +maxnoofCellIDforMDT INTEGER ::= 32 +maxnoofTAforMDT INTEGER ::= 8 +maxnoofMBMSServiceAreaIdentities INTEGER ::= 256 +maxnoofMDTPLMNs INTEGER ::= 16 +maxnoofCoMPHypothesisSet INTEGER ::= 256 +maxnoofCoMPCells INTEGER ::= 32 +maxUEReport INTEGER ::= 128 +maxCellReport INTEGER ::= 9 +maxnoofPA INTEGER ::= 3 +maxCSIProcess INTEGER ::= 4 +maxCSIReport INTEGER ::= 2 +maxSubband INTEGER ::= 14 + +-- ************************************************************** +-- +-- IEs +-- +-- ************************************************************** + +id-E-RABs-Admitted-Item ProtocolIE-ID ::= 0 +id-E-RABs-Admitted-List ProtocolIE-ID ::= 1 +id-E-RAB-Item ProtocolIE-ID ::= 2 +id-E-RABs-NotAdmitted-List ProtocolIE-ID ::= 3 +id-E-RABs-ToBeSetup-Item ProtocolIE-ID ::= 4 +id-Cause ProtocolIE-ID ::= 5 +id-CellInformation ProtocolIE-ID ::= 6 +id-CellInformation-Item ProtocolIE-ID ::= 7 +id-New-eNB-UE-X2AP-ID ProtocolIE-ID ::= 9 +id-Old-eNB-UE-X2AP-ID ProtocolIE-ID ::= 10 +id-TargetCell-ID ProtocolIE-ID ::= 11 +id-TargeteNBtoSource-eNBTransparentContainer ProtocolIE-ID ::= 12 +id-TraceActivation ProtocolIE-ID ::= 13 +id-UE-ContextInformation ProtocolIE-ID ::= 14 +id-UE-HistoryInformation ProtocolIE-ID ::= 15 +id-UE-X2AP-ID ProtocolIE-ID ::= 16 +id-CriticalityDiagnostics ProtocolIE-ID ::= 17 +id-E-RABs-SubjectToStatusTransfer-List ProtocolIE-ID ::= 18 +id-E-RABs-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 19 +id-ServedCells ProtocolIE-ID ::= 20 +id-GlobalENB-ID ProtocolIE-ID ::= 21 +id-TimeToWait ProtocolIE-ID ::= 22 +id-GUMMEI-ID ProtocolIE-ID ::= 23 +id-GUGroupIDList ProtocolIE-ID ::= 24 +id-ServedCellsToAdd ProtocolIE-ID ::= 25 +id-ServedCellsToModify ProtocolIE-ID ::= 26 +id-ServedCellsToDelete ProtocolIE-ID ::= 27 +id-Registration-Request ProtocolIE-ID ::= 28 +id-CellToReport ProtocolIE-ID ::= 29 +id-ReportingPeriodicity ProtocolIE-ID ::= 30 +id-CellToReport-Item ProtocolIE-ID ::= 31 +id-CellMeasurementResult ProtocolIE-ID ::= 32 +id-CellMeasurementResult-Item ProtocolIE-ID ::= 33 +id-GUGroupIDToAddList ProtocolIE-ID ::= 34 +id-GUGroupIDToDeleteList ProtocolIE-ID ::= 35 +id-SRVCCOperationPossible ProtocolIE-ID ::= 36 +id-Measurement-ID ProtocolIE-ID ::= 37 +id-ReportCharacteristics ProtocolIE-ID ::= 38 +id-ENB1-Measurement-ID ProtocolIE-ID ::= 39 +id-ENB2-Measurement-ID ProtocolIE-ID ::= 40 +id-Number-of-Antennaports ProtocolIE-ID ::= 41 +id-CompositeAvailableCapacityGroup ProtocolIE-ID ::= 42 +id-ENB1-Cell-ID ProtocolIE-ID ::= 43 +id-ENB2-Cell-ID ProtocolIE-ID ::= 44 +id-ENB2-Proposed-Mobility-Parameters ProtocolIE-ID ::= 45 +id-ENB1-Mobility-Parameters ProtocolIE-ID ::= 46 +id-ENB2-Mobility-Parameters-Modification-Range ProtocolIE-ID ::= 47 +id-FailureCellPCI ProtocolIE-ID ::= 48 +id-Re-establishmentCellECGI ProtocolIE-ID ::= 49 +id-FailureCellCRNTI ProtocolIE-ID ::= 50 +id-ShortMAC-I ProtocolIE-ID ::= 51 +id-SourceCellECGI ProtocolIE-ID ::= 52 +id-FailureCellECGI ProtocolIE-ID ::= 53 +id-HandoverReportType ProtocolIE-ID ::= 54 +id-PRACH-Configuration ProtocolIE-ID ::= 55 +id-MBSFN-Subframe-Info ProtocolIE-ID ::= 56 +id-ServedCellsToActivate ProtocolIE-ID ::= 57 +id-ActivatedCellList ProtocolIE-ID ::= 58 +id-DeactivationIndication ProtocolIE-ID ::= 59 +id-UE-RLF-Report-Container ProtocolIE-ID ::= 60 +id-ABSInformation ProtocolIE-ID ::= 61 +id-InvokeIndication ProtocolIE-ID ::= 62 +id-ABS-Status ProtocolIE-ID ::= 63 +id-PartialSuccessIndicator ProtocolIE-ID ::= 64 +id-MeasurementInitiationResult-List ProtocolIE-ID ::= 65 +id-MeasurementInitiationResult-Item ProtocolIE-ID ::= 66 +id-MeasurementFailureCause-Item ProtocolIE-ID ::= 67 +id-CompleteFailureCauseInformation-List ProtocolIE-ID ::= 68 +id-CompleteFailureCauseInformation-Item ProtocolIE-ID ::= 69 +id-CSG-Id ProtocolIE-ID ::= 70 +id-CSGMembershipStatus ProtocolIE-ID ::= 71 +id-MDTConfiguration ProtocolIE-ID ::= 72 +id-ManagementBasedMDTallowed ProtocolIE-ID ::= 74 +id-RRCConnSetupIndicator ProtocolIE-ID ::= 75 +id-NeighbourTAC ProtocolIE-ID ::= 76 +id-Time-UE-StayedInCell-EnhancedGranularity ProtocolIE-ID ::= 77 +id-RRCConnReestabIndicator ProtocolIE-ID ::= 78 +id-MBMS-Service-Area-List ProtocolIE-ID ::= 79 +id-HO-cause ProtocolIE-ID ::= 80 +id-TargetCellInUTRAN ProtocolIE-ID ::= 81 +id-MobilityInformation ProtocolIE-ID ::= 82 +id-SourceCellCRNTI ProtocolIE-ID ::= 83 +id-MultibandInfoList ProtocolIE-ID ::= 84 +id-M3Configuration ProtocolIE-ID ::= 85 +id-M4Configuration ProtocolIE-ID ::= 86 +id-M5Configuration ProtocolIE-ID ::= 87 +id-MDT-Location-Info ProtocolIE-ID ::= 88 +id-ManagementBasedMDTPLMNList ProtocolIE-ID ::= 89 +id-SignallingBasedMDTPLMNList ProtocolIE-ID ::= 90 +id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID ::= 91 +id-ULCOUNTValueExtended ProtocolIE-ID ::= 92 +id-DLCOUNTValueExtended ProtocolIE-ID ::= 93 +id-eARFCNExtension ProtocolIE-ID ::= 94 +id-UL-EARFCNExtension ProtocolIE-ID ::= 95 +id-DL-EARFCNExtension ProtocolIE-ID ::= 96 +id-AdditionalSpecialSubframe-Info ProtocolIE-ID ::= 97 +id-Masked-IMEISV ProtocolIE-ID ::= 98 +id-IntendedULDLConfiguration ProtocolIE-ID ::= 99 +id-ExtendedULInterferenceOverloadInfo ProtocolIE-ID ::= 100 +id-RNL-Header ProtocolIE-ID ::= 101 +id-x2APMessage ProtocolIE-ID ::= 102 +id-ProSeAuthorized ProtocolIE-ID ::= 103 +id-ExpectedUEBehaviour ProtocolIE-ID ::= 104 +id-UE-HistoryInformationFromTheUE ProtocolIE-ID ::= 105 +id-DynamicDLTransmissionInformation ProtocolIE-ID ::= 106 +id-UE-RLF-Report-Container-for-extended-bands ProtocolIE-ID ::= 107 +id-CoMPInformation ProtocolIE-ID ::= 108 +id-ReportingPeriodicityRSRPMR ProtocolIE-ID ::= 109 +id-RSRPMRList ProtocolIE-ID ::= 110 +id-MeNB-UE-X2AP-ID ProtocolIE-ID ::= 111 +id-SeNB-UE-X2AP-ID ProtocolIE-ID ::= 112 +id-UE-SecurityCapabilities ProtocolIE-ID ::= 113 +id-SeNBSecurityKey ProtocolIE-ID ::= 114 +id-SeNBUEAggregateMaximumBitRate ProtocolIE-ID ::= 115 +id-ServingPLMN ProtocolIE-ID ::= 116 +id-E-RABs-ToBeAdded-List ProtocolIE-ID ::= 117 +id-E-RABs-ToBeAdded-Item ProtocolIE-ID ::= 118 +id-MeNBtoSeNBContainer ProtocolIE-ID ::= 119 +id-E-RABs-Admitted-ToBeAdded-List ProtocolIE-ID ::= 120 +id-E-RABs-Admitted-ToBeAdded-Item ProtocolIE-ID ::= 121 +id-SeNBtoMeNBContainer ProtocolIE-ID ::= 122 +id-ResponseInformationSeNBReconfComp ProtocolIE-ID ::= 123 +id-UE-ContextInformationSeNBModReq ProtocolIE-ID ::= 124 +id-E-RABs-ToBeAdded-ModReqItem ProtocolIE-ID ::= 125 +id-E-RABs-ToBeModified-ModReqItem ProtocolIE-ID ::= 126 +id-E-RABs-ToBeReleased-ModReqItem ProtocolIE-ID ::= 127 +id-E-RABs-Admitted-ToBeAdded-ModAckList ProtocolIE-ID ::= 128 +id-E-RABs-Admitted-ToBeModified-ModAckList ProtocolIE-ID ::= 129 +id-E-RABs-Admitted-ToBeReleased-ModAckList ProtocolIE-ID ::= 130 +id-E-RABs-Admitted-ToBeAdded-ModAckItem ProtocolIE-ID ::= 131 +id-E-RABs-Admitted-ToBeModified-ModAckItem ProtocolIE-ID ::= 132 +id-E-RABs-Admitted-ToBeReleased-ModAckItem ProtocolIE-ID ::= 133 +id-E-RABs-ToBeReleased-ModReqd ProtocolIE-ID ::= 134 +id-E-RABs-ToBeReleased-ModReqdItem ProtocolIE-ID ::= 135 +id-SCGChangeIndication ProtocolIE-ID ::= 136 +id-E-RABs-ToBeReleased-List-RelReq ProtocolIE-ID ::= 137 +id-E-RABs-ToBeReleased-RelReqItem ProtocolIE-ID ::= 138 +id-E-RABs-ToBeReleased-List-RelConf ProtocolIE-ID ::= 139 +id-E-RABs-ToBeReleased-RelConfItem ProtocolIE-ID ::= 140 +id-E-RABs-SubjectToCounterCheck-List ProtocolIE-ID ::= 141 +id-E-RABs-SubjectToCounterCheckItem ProtocolIE-ID ::= 142 +id-CoverageModificationList ProtocolIE-ID ::= 143 +id-ReportingPeriodicityCSIR ProtocolIE-ID ::= 145 +id-CSIReportList ProtocolIE-ID ::= 146 +id-UEID ProtocolIE-ID ::= 147 +id-enhancedRNTP ProtocolIE-ID ::= 148 +id-ProSeUEtoNetworkRelaying ProtocolIE-ID ::= 149 +id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ProtocolIE-ID ::= 150 +id-ULCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 151 +id-DLCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 152 +id-UE-ContextReferenceAtSeNB ProtocolIE-ID ::= 153 +id-UE-ContextKeptIndicator ProtocolIE-ID ::= 154 +id-New-eNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 155 +id-Old-eNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 156 +id-MeNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 157 +id-SeNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 158 +id-LHN-ID ProtocolIE-ID ::= 159 +id-FreqBandIndicatorPriority ProtocolIE-ID ::= 160 +id-M6Configuration ProtocolIE-ID ::= 161 +id-M7Configuration ProtocolIE-ID ::= 162 +id-Tunnel-Information-for-BBF ProtocolIE-ID ::= 163 +id-SIPTO-BearerDeactivationIndication ProtocolIE-ID ::= 164 +id-GW-TransportLayerAddress ProtocolIE-ID ::= 165 +id-Correlation-ID ProtocolIE-ID ::= 166 +id-SIPTO-Correlation-ID ProtocolIE-ID ::= 167 +id-SIPTO-L-GW-TransportLayerAddress ProtocolIE-ID ::= 168 +id-X2RemovalThreshold ProtocolIE-ID ::= 169 +id-CellReportingIndicator ProtocolIE-ID ::= 170 +id-BearerType ProtocolIE-ID ::= 171 +id-resumeID ProtocolIE-ID ::= 172 +id-UE-ContextInformationRetrieve ProtocolIE-ID ::= 173 +id-E-RABs-ToBeSetupRetrieve-Item ProtocolIE-ID ::= 174 +id-NewEUTRANCellIdentifier ProtocolIE-ID ::= 175 +id-OffsetOfNbiotChannelNumberToDL-EARFCN ProtocolIE-ID ::= 177 +id-OffsetOfNbiotChannelNumberToUL-EARFCN ProtocolIE-ID ::= 178 +id-uL-GTPtunnelEndpoint ProtocolIE-ID ::= 185 + +END + + +-- ************************************************************** +-- +-- Container definitions +-- +-- ************************************************************** + +X2AP-Containers { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Containers (5) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + maxPrivateIEs, + maxProtocolExtensions, + maxProtocolIEs, + Criticality, + Presence, + PrivateIE-ID, + ProtocolIE-ID +FROM X2AP-CommonDataTypes; + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +X2AP-PROTOCOL-IES ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +X2AP-PROTOCOL-IES-PAIR ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &firstCriticality Criticality, + &FirstValue, + &secondCriticality Criticality, + &SecondValue, + &presence Presence +} +WITH SYNTAX { + ID &id + FIRST CRITICALITY &firstCriticality + FIRST TYPE &FirstValue + SECOND CRITICALITY &secondCriticality + SECOND TYPE &SecondValue + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol Extensions +-- +-- ************************************************************** + +X2AP-PROTOCOL-EXTENSION ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Extension, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + EXTENSION &Extension + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Private IEs +-- +-- ************************************************************** + +X2AP-PRIVATE-IES ::= CLASS { + &id PrivateIE-ID, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Container for Protocol IEs +-- +-- ************************************************************** + +ProtocolIE-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Single-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Field {X2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-IES.&id ({IEsSetParam}), + criticality X2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), + value X2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Protocol IE Pairs +-- +-- ************************************************************** + +ProtocolIE-ContainerPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-FieldPair {{IEsSetParam}} + +ProtocolIE-FieldPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), + firstCriticality X2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), + firstValue X2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), + secondCriticality X2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), + secondValue X2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container Lists for Protocol IE Containers +-- +-- ************************************************************** + +ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-Container {{IEsSetParam}} + +ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-ContainerPair {{IEsSetParam}} + +-- ************************************************************** +-- +-- Container for Protocol Extensions +-- +-- ************************************************************** + +ProtocolExtensionContainer {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= + SEQUENCE (SIZE (1..maxProtocolExtensions)) OF + ProtocolExtensionField {{ExtensionSetParam}} + +ProtocolExtensionField {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), + criticality X2AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), + extensionValue X2AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Private IEs +-- +-- ************************************************************** + +PrivateIE-Container {X2AP-PRIVATE-IES : IEsSetParam} ::= + SEQUENCE (SIZE (1..maxPrivateIEs)) OF + PrivateIE-Field {{IEsSetParam}} + +PrivateIE-Field {X2AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { + id X2AP-PRIVATE-IES.&id ({IEsSetParam}), + criticality X2AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), + value X2AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) +} + +END + + + + diff --git a/openair2/X2AP/MESSAGES/ASN1/R14/x2ap-14.6.0.asn1 b/openair2/X2AP/MESSAGES/ASN1/R14/x2ap-14.6.0.asn1 new file mode 100755 index 0000000000..a172a82a83 --- /dev/null +++ b/openair2/X2AP/MESSAGES/ASN1/R14/x2ap-14.6.0.asn1 @@ -0,0 +1,5064 @@ +-- ************************************************************** +-- +-- Elementary Procedure definitions +-- +-- ************************************************************** + +X2AP-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Descriptions (0) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + ProcedureCode + +FROM X2AP-CommonDataTypes + + CellActivationRequest, + CellActivationResponse, + CellActivationFailure, + ENBConfigurationUpdate, + ENBConfigurationUpdateAcknowledge, + ENBConfigurationUpdateFailure, + ErrorIndication, + HandoverCancel, + HandoverReport, + HandoverPreparationFailure, + HandoverRequest, + HandoverRequestAcknowledge, + LoadInformation, + PrivateMessage, + ResetRequest, + ResetResponse, + ResourceStatusFailure, + ResourceStatusRequest, + ResourceStatusResponse, + ResourceStatusUpdate, + RLFIndication, + SNStatusTransfer, + UEContextRelease, + X2SetupFailure, + X2SetupRequest, + X2SetupResponse, + MobilityChangeRequest, + MobilityChangeAcknowledge, + MobilityChangeFailure, + X2Release, + X2APMessageTransfer, + SeNBAdditionRequest, + SeNBAdditionRequestAcknowledge, + SeNBAdditionRequestReject, + SeNBReconfigurationComplete, + SeNBModificationRequest, + SeNBModificationRequestAcknowledge, + SeNBModificationRequestReject, + SeNBModificationRequired, + SeNBModificationConfirm, + SeNBModificationRefuse, + SeNBReleaseRequest, + SeNBReleaseRequired, + SeNBReleaseConfirm, + SeNBCounterCheckRequest, + X2RemovalFailure, + X2RemovalRequest, + X2RemovalResponse, + RetrieveUEContextRequest, + RetrieveUEContextResponse, + RetrieveUEContextFailure + +FROM X2AP-PDU-Contents + + id-cellActivation, + id-eNBConfigurationUpdate, + id-errorIndication, + id-handoverCancel, + id-handoverReport, + id-handoverPreparation, + + id-loadIndication, + id-privateMessage, + id-reset, + + id-resourceStatusReporting, + id-resourceStatusReportingInitiation, + id-rLFIndication, + id-snStatusTransfer, + id-uEContextRelease, + id-x2Setup, + id-mobilitySettingsChange, + id-x2Release, + id-x2APMessageTransfer, + id-seNBAdditionPreparation, + id-seNBReconfigurationCompletion, + id-meNBinitiatedSeNBModificationPreparation, + id-seNBinitiatedSeNBModification, + id-meNBinitiatedSeNBRelease, + id-seNBinitiatedSeNBRelease, + id-seNBCounterCheck, + id-x2Removal, + id-retrieveUEContext + +FROM X2AP-Constants; + +-- ************************************************************** +-- +-- Interface Elementary Procedure Class +-- +-- ************************************************************** + +X2AP-ELEMENTARY-PROCEDURE ::= CLASS { + &InitiatingMessage , + &SuccessfulOutcome OPTIONAL, + &UnsuccessfulOutcome OPTIONAL, + &procedureCode ProcedureCode UNIQUE, + &criticality Criticality DEFAULT ignore +} +WITH SYNTAX { + INITIATING MESSAGE &InitiatingMessage + [SUCCESSFUL OUTCOME &SuccessfulOutcome] + [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] + PROCEDURE CODE &procedureCode + [CRITICALITY &criticality] +} + +-- ************************************************************** +-- +-- Interface PDU Definition +-- +-- ************************************************************** + +X2AP-PDU ::= CHOICE { + initiatingMessage InitiatingMessage, + successfulOutcome SuccessfulOutcome, + unsuccessfulOutcome UnsuccessfulOutcome, + ... +} + +InitiatingMessage ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +SuccessfulOutcome ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +UnsuccessfulOutcome ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +-- ************************************************************** +-- +-- Interface Elementary Procedure List +-- +-- ************************************************************** + +X2AP-ELEMENTARY-PROCEDURES X2AP-ELEMENTARY-PROCEDURE ::= { + X2AP-ELEMENTARY-PROCEDURES-CLASS-1 | + X2AP-ELEMENTARY-PROCEDURES-CLASS-2 , + ... +} + +X2AP-ELEMENTARY-PROCEDURES-CLASS-1 X2AP-ELEMENTARY-PROCEDURE ::= { + handoverPreparation | + reset | + x2Setup | + resourceStatusReportingInitiation | + eNBConfigurationUpdate | + mobilitySettingsChange | + cellActivation | + seNBAdditionPreparation | + meNBinitiatedSeNBModificationPreparation | + seNBinitiatedSeNBModification | + seNBinitiatedSeNBRelease | + x2Removal | + retrieveUEContext, + ... +} + +X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= { + snStatusTransfer | + uEContextRelease | + handoverCancel | + errorIndication | + resourceStatusReporting | + loadIndication | + privateMessage | + rLFIndication | + handoverReport | + x2Release | + x2APMessageTransfer | + seNBReconfigurationCompletion | + meNBinitiatedSeNBRelease | + seNBCounterCheck, + ... + +} + +-- ************************************************************** +-- +-- Interface Elementary Procedures +-- +-- ************************************************************** + +handoverPreparation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequest + SUCCESSFUL OUTCOME HandoverRequestAcknowledge + UNSUCCESSFUL OUTCOME HandoverPreparationFailure + PROCEDURE CODE id-handoverPreparation + CRITICALITY reject +} + +snStatusTransfer X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SNStatusTransfer + PROCEDURE CODE id-snStatusTransfer + CRITICALITY ignore +} + +uEContextRelease X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextRelease + PROCEDURE CODE id-uEContextRelease + CRITICALITY ignore +} + + +handoverCancel X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverCancel + PROCEDURE CODE id-handoverCancel + CRITICALITY ignore +} + +handoverReport X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverReport + PROCEDURE CODE id-handoverReport + CRITICALITY ignore +} + +errorIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ErrorIndication + PROCEDURE CODE id-errorIndication + CRITICALITY ignore +} + +reset X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResetRequest + SUCCESSFUL OUTCOME ResetResponse + PROCEDURE CODE id-reset + CRITICALITY reject +} + +x2Setup X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE X2SetupRequest + SUCCESSFUL OUTCOME X2SetupResponse + UNSUCCESSFUL OUTCOME X2SetupFailure + PROCEDURE CODE id-x2Setup + CRITICALITY reject +} + + +loadIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LoadInformation + PROCEDURE CODE id-loadIndication + CRITICALITY ignore +} + +eNBConfigurationUpdate X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationUpdate + SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure + PROCEDURE CODE id-eNBConfigurationUpdate + CRITICALITY reject +} + +resourceStatusReportingInitiation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResourceStatusRequest + SUCCESSFUL OUTCOME ResourceStatusResponse + UNSUCCESSFUL OUTCOME ResourceStatusFailure + PROCEDURE CODE id-resourceStatusReportingInitiation + CRITICALITY reject +} + +resourceStatusReporting X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResourceStatusUpdate + PROCEDURE CODE id-resourceStatusReporting + CRITICALITY ignore +} + +rLFIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RLFIndication + PROCEDURE CODE id-rLFIndication + CRITICALITY ignore +} + +privateMessage X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PrivateMessage + PROCEDURE CODE id-privateMessage + CRITICALITY ignore +} + +mobilitySettingsChange X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MobilityChangeRequest + SUCCESSFUL OUTCOME MobilityChangeAcknowledge + UNSUCCESSFUL OUTCOME MobilityChangeFailure + PROCEDURE CODE id-mobilitySettingsChange + CRITICALITY reject +} + +cellActivation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE CellActivationRequest + SUCCESSFUL OUTCOME CellActivationResponse + UNSUCCESSFUL OUTCOME CellActivationFailure + PROCEDURE CODE id-cellActivation + CRITICALITY reject +} + +x2Release X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE X2Release + PROCEDURE CODE id-x2Release + CRITICALITY reject +} + +x2APMessageTransfer X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE X2APMessageTransfer + PROCEDURE CODE id-x2APMessageTransfer + CRITICALITY reject +} + +seNBAdditionPreparation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBAdditionRequest + SUCCESSFUL OUTCOME SeNBAdditionRequestAcknowledge + UNSUCCESSFUL OUTCOME SeNBAdditionRequestReject + PROCEDURE CODE id-seNBAdditionPreparation + CRITICALITY reject +} + +seNBReconfigurationCompletion X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBReconfigurationComplete + PROCEDURE CODE id-seNBReconfigurationCompletion + CRITICALITY ignore +} + +meNBinitiatedSeNBModificationPreparation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBModificationRequest + SUCCESSFUL OUTCOME SeNBModificationRequestAcknowledge + UNSUCCESSFUL OUTCOME SeNBModificationRequestReject + PROCEDURE CODE id-meNBinitiatedSeNBModificationPreparation + CRITICALITY reject +} + +seNBinitiatedSeNBModification X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBModificationRequired + SUCCESSFUL OUTCOME SeNBModificationConfirm + UNSUCCESSFUL OUTCOME SeNBModificationRefuse + PROCEDURE CODE id-seNBinitiatedSeNBModification + CRITICALITY reject +} + +meNBinitiatedSeNBRelease X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBReleaseRequest + PROCEDURE CODE id-meNBinitiatedSeNBRelease + CRITICALITY ignore +} + +seNBinitiatedSeNBRelease X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBReleaseRequired + SUCCESSFUL OUTCOME SeNBReleaseConfirm + PROCEDURE CODE id-seNBinitiatedSeNBRelease + CRITICALITY reject +} + +seNBCounterCheck X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBCounterCheckRequest + PROCEDURE CODE id-seNBCounterCheck + CRITICALITY reject +} + +x2Removal X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE X2RemovalRequest + SUCCESSFUL OUTCOME X2RemovalResponse + UNSUCCESSFUL OUTCOME X2RemovalFailure + PROCEDURE CODE id-x2Removal + CRITICALITY reject +} + +retrieveUEContext X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RetrieveUEContextRequest + SUCCESSFUL OUTCOME RetrieveUEContextResponse + UNSUCCESSFUL OUTCOME RetrieveUEContextFailure + PROCEDURE CODE id-retrieveUEContext + CRITICALITY reject +} + +END + + +-- ************************************************************** +-- +-- PDU definitions for X2AP. +-- +-- ************************************************************** + +X2AP-PDU-Contents { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Contents (1) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + ABSInformation, + ABS-Status, + AS-SecurityInformation, + BearerType, + Cause, + CompositeAvailableCapacityGroup, + Correlation-ID, + COUNTvalue, + CellReportingIndicator, + CriticalityDiagnostics, + CRNTI, + CSGMembershipStatus, + CSG-Id, + DeactivationIndication, + DL-Forwarding, + DynamicDLTransmissionInformation, + ECGI, + E-RAB-ID, + E-RAB-Level-QoS-Parameters, + E-RAB-List, + EUTRANTraceID, + GlobalENB-ID, + GTPtunnelEndpoint, + GUGroupIDList, + GUMMEI, + HandoverReportType, + HandoverRestrictionList, + Masked-IMEISV, + InvokeIndication, + LocationReportingInformation, + MDT-Configuration, + ManagementBasedMDTallowed, + MDTPLMNList, + Neighbour-Information, + PCI, + PDCP-SN, + PLMN-Identity, + ReceiveStatusofULPDCPSDUs, + Registration-Request, + RelativeNarrowbandTxPower, + RadioResourceStatus, + RRCConnReestabIndicator, + RRCConnSetupIndicator, + UE-RLF-Report-Container, + RRC-Context, + ServedCell-Information, + ServedCells, + ShortMAC-I, + SRVCCOperationPossible, + SubscriberProfileIDforRFP, + TargetCellInUTRAN, + TargeteNBtoSource-eNBTransparentContainer, + TimeToWait, + TraceActivation, + TraceDepth, + TransportLayerAddress, + UEAggregateMaximumBitRate, + UE-HistoryInformation, + UE-HistoryInformationFromTheUE, + UE-S1AP-ID, + UESecurityCapabilities, + UE-X2AP-ID, + UL-HighInterferenceIndicationInfo, + UL-InterferenceOverloadIndication, + HWLoadIndicator, + S1TNLLoadIndicator, + Measurement-ID, + ReportCharacteristics, + MobilityParametersInformation, + MobilityParametersModificationRange, + ReceiveStatusOfULPDCPSDUsExtended, + COUNTValueExtended, + SubframeAssignment, + ExtendedULInterferenceOverloadInfo, + ExpectedUEBehaviour, + SeNBSecurityKey, + MeNBtoSeNBContainer, + SeNBtoMeNBContainer, + SCGChangeIndication, + CoMPInformation, + ReportingPeriodicityRSRPMR, + RSRPMRList, + UE-RLF-Report-Container-for-extended-bands, + ProSeAuthorized, + CoverageModificationList, + ReportingPeriodicityCSIR, + CSIReportList, + ReceiveStatusOfULPDCPSDUsPDCP-SNlength18, + COUNTvaluePDCP-SNlength18, + LHN-ID, + UE-ContextKeptIndicator, + UE-X2AP-ID-Extension, + SIPTOBearerDeactivationIndication, + TunnelInformation, + V2XServicesAuthorized, + X2BenefitValue, + ResumeID, + EUTRANCellIdentifier, + MakeBeforeBreakIndicator, + WTID, + WT-UE-XwAP-ID, + UESidelinkAggregateMaximumBitRate + +FROM X2AP-IEs + + PrivateIE-Container{}, + ProtocolExtensionContainer{}, + ProtocolIE-Container{}, + ProtocolIE-ContainerList{}, + ProtocolIE-ContainerPair{}, + ProtocolIE-ContainerPairList{}, + ProtocolIE-Single-Container{}, + X2AP-PRIVATE-IES, + X2AP-PROTOCOL-EXTENSION, + X2AP-PROTOCOL-IES, + X2AP-PROTOCOL-IES-PAIR +FROM X2AP-Containers + + id-ABSInformation, + id-ActivatedCellList, + id-BearerType, + id-Cause, + id-CellInformation, + id-CellInformation-Item, + id-CellMeasurementResult, + id-CellMeasurementResult-Item, + id-CellToReport, + id-CellToReport-Item, + id-CompositeAvailableCapacityGroup, + id-CriticalityDiagnostics, + id-DeactivationIndication, + id-DynamicDLTransmissionInformation, + id-E-RABs-Admitted-Item, + id-E-RABs-Admitted-List, + id-E-RABs-NotAdmitted-List, + id-E-RABs-SubjectToStatusTransfer-List, + id-E-RABs-SubjectToStatusTransfer-Item, + id-E-RABs-ToBeSetup-Item, + id-GlobalENB-ID, + id-GUGroupIDList, + id-GUGroupIDToAddList, + id-GUGroupIDToDeleteList, + id-GUMMEI-ID, + id-Masked-IMEISV, + id-InvokeIndication, + id-New-eNB-UE-X2AP-ID, + id-Old-eNB-UE-X2AP-ID, + id-Registration-Request, + id-ReportingPeriodicity, + id-ServedCells, + id-ServedCellsToActivate, + id-ServedCellsToAdd, + id-ServedCellsToModify, + id-ServedCellsToDelete, + id-SRVCCOperationPossible, + id-TargetCell-ID, + id-TargeteNBtoSource-eNBTransparentContainer, + id-TimeToWait, + id-TraceActivation, + id-UE-ContextInformation, + id-UE-HistoryInformation, + id-UE-X2AP-ID, + id-Measurement-ID, + id-ReportCharacteristics, + id-ENB1-Measurement-ID, + id-ENB2-Measurement-ID, + id-ENB1-Cell-ID, + id-ENB2-Cell-ID, + id-ENB2-Proposed-Mobility-Parameters, + id-ENB1-Mobility-Parameters, + id-ENB2-Mobility-Parameters-Modification-Range, + id-FailureCellPCI, + id-Re-establishmentCellECGI, + id-FailureCellCRNTI, + id-ShortMAC-I, + id-SourceCellECGI, + id-FailureCellECGI, + id-HandoverReportType, + id-UE-RLF-Report-Container, + id-PartialSuccessIndicator, + id-MeasurementInitiationResult-List, + id-MeasurementInitiationResult-Item, + id-MeasurementFailureCause-Item, + id-CompleteFailureCauseInformation-List, + id-CompleteFailureCauseInformation-Item, + id-CSGMembershipStatus, + id-CSG-Id, + id-MDTConfiguration, + id-ManagementBasedMDTallowed, + id-ABS-Status, + id-RRCConnSetupIndicator, + id-RRCConnReestabIndicator, + id-TargetCellInUTRAN, + id-MobilityInformation, + id-SourceCellCRNTI, + id-ManagementBasedMDTPLMNList, + id-ReceiveStatusOfULPDCPSDUsExtended, + id-ULCOUNTValueExtended, + id-DLCOUNTValueExtended, + id-IntendedULDLConfiguration, + id-ExtendedULInterferenceOverloadInfo, + id-RNL-Header, + id-x2APMessage, + id-UE-HistoryInformationFromTheUE, + id-ExpectedUEBehaviour, + id-MeNB-UE-X2AP-ID, + id-SeNB-UE-X2AP-ID, + id-UE-SecurityCapabilities, + id-SeNBSecurityKey, + id-SeNBUEAggregateMaximumBitRate, + id-ServingPLMN, + id-E-RABs-ToBeAdded-List, + id-E-RABs-ToBeAdded-Item, + id-MeNBtoSeNBContainer, + id-E-RABs-Admitted-ToBeAdded-List, + id-E-RABs-Admitted-ToBeAdded-Item, + id-SeNBtoMeNBContainer, + id-ResponseInformationSeNBReconfComp, + id-UE-ContextInformationSeNBModReq, + id-E-RABs-ToBeAdded-ModReqItem, + id-E-RABs-ToBeModified-ModReqItem, + id-E-RABs-ToBeReleased-ModReqItem, + id-E-RABs-Admitted-ToBeAdded-ModAckList, + id-E-RABs-Admitted-ToBeModified-ModAckList, + id-E-RABs-Admitted-ToBeReleased-ModAckList, + id-E-RABs-Admitted-ToBeAdded-ModAckItem, + id-E-RABs-Admitted-ToBeModified-ModAckItem, + id-E-RABs-Admitted-ToBeReleased-ModAckItem, + id-SCGChangeIndication, + id-E-RABs-ToBeReleased-ModReqd, + id-E-RABs-ToBeReleased-ModReqdItem, + id-E-RABs-ToBeReleased-List-RelReq, + id-E-RABs-ToBeReleased-RelReqItem, + id-E-RABs-ToBeReleased-List-RelConf, + id-E-RABs-ToBeReleased-RelConfItem, + id-E-RABs-SubjectToCounterCheck-List, + id-E-RABs-SubjectToCounterCheckItem, + id-CoMPInformation, + id-ReportingPeriodicityRSRPMR, + id-RSRPMRList, + id-UE-RLF-Report-Container-for-extended-bands, + id-ProSeAuthorized, + id-CoverageModificationList, + id-ReportingPeriodicityCSIR, + id-CSIReportList, + id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18, + id-ULCOUNTValuePDCP-SNlength18, + id-DLCOUNTValuePDCP-SNlength18, + id-LHN-ID, + id-Correlation-ID, + id-SIPTO-Correlation-ID, + id-UE-ContextReferenceAtSeNB, + id-UE-ContextReferenceAtWT, + id-UE-ContextKeptIndicator, + id-WT-UE-ContextKeptIndicator, + id-New-eNB-UE-X2AP-ID-Extension, + id-Old-eNB-UE-X2AP-ID-Extension, + id-MeNB-UE-X2AP-ID-Extension, + id-SeNB-UE-X2AP-ID-Extension, + id-SIPTO-BearerDeactivationIndication, + id-Tunnel-Information-for-BBF, + id-SIPTO-L-GW-TransportLayerAddress, + id-GW-TransportLayerAddress, + id-X2RemovalThreshold, + id-CellReportingIndicator, + id-V2XServicesAuthorized, + id-resumeID, + id-UE-ContextInformationRetrieve, + id-E-RABs-ToBeSetupRetrieve-Item, + id-NewEUTRANCellIdentifier, + id-MakeBeforeBreakIndicator, + id-UESidelinkAggregateMaximumBitRate, + id-uL-GTPtunnelEndpoint, + + maxCellineNB, + maxnoofBearers, + maxnoofPDCP-SN, + maxFailedMeasObjects, + maxnoofCellIDforMDT, + maxnoofTAforMDT +FROM X2AP-Constants; + +-- ************************************************************** +-- +-- HANDOVER REQUEST +-- +-- ************************************************************** + +HandoverRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverRequest-IEs}}, + ... +} + +HandoverRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-TargetCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory}| + { ID id-UE-ContextInformation CRITICALITY reject TYPE UE-ContextInformation PRESENCE mandatory}| + { ID id-UE-HistoryInformation CRITICALITY ignore TYPE UE-HistoryInformation PRESENCE mandatory}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-MobilityInformation CRITICALITY ignore TYPE MobilityInformation PRESENCE optional}| + { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| + { ID id-UE-HistoryInformationFromTheUE CRITICALITY ignore TYPE UE-HistoryInformationFromTheUE PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-UE-ContextReferenceAtSeNB CRITICALITY ignore TYPE UE-ContextReferenceAtSeNB PRESENCE optional}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| + { ID id-UE-ContextReferenceAtWT CRITICALITY ignore TYPE UE-ContextReferenceAtWT PRESENCE optional}, + ... +} + +UE-ContextInformation ::= SEQUENCE { + mME-UE-S1AP-ID UE-S1AP-ID, + uESecurityCapabilities UESecurityCapabilities, + aS-SecurityInformation AS-SecurityInformation, + uEaggregateMaximumBitRate UEAggregateMaximumBitRate, + subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, + e-RABs-ToBeSetup-List E-RABs-ToBeSetup-List, + rRC-Context RRC-Context, + handoverRestrictionList HandoverRestrictionList OPTIONAL, + locationReportingInformation LocationReportingInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {UE-ContextInformation-ExtIEs} } OPTIONAL, + ... +} + +UE-ContextInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-ManagementBasedMDTallowed CRITICALITY ignore EXTENSION ManagementBasedMDTallowed PRESENCE optional }| +{ ID id-ManagementBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional }| +{ ID id-UESidelinkAggregateMaximumBitRate CRITICALITY ignore EXTENSION UESidelinkAggregateMaximumBitRate PRESENCE optional}, + ... +} + +E-RABs-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetup-ItemIEs} } + +E-RABs-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeSetup-Item CRITICALITY ignore TYPE E-RABs-ToBeSetup-Item PRESENCE mandatory }, + ... +} + +E-RABs-ToBeSetup-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + dL-Forwarding DL-Forwarding OPTIONAL, + uL-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetup-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeSetup-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional}, + ... +} + +MobilityInformation ::= BIT STRING (SIZE(32)) + +UE-ContextReferenceAtSeNB ::= SEQUENCE { + source-GlobalSeNB-ID GlobalENB-ID, + seNB-UE-X2AP-ID UE-X2AP-ID, + seNB-UE-X2AP-ID-Extension UE-X2AP-ID-Extension, + iE-Extensions ProtocolExtensionContainer { {UE-ContextReferenceAtSeNB-ItemExtIEs} } OPTIONAL, + ... +} + +UE-ContextReferenceAtSeNB-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UE-ContextReferenceAtWT ::= SEQUENCE { + wTID WTID, + wT-UE-XwAP-ID WT-UE-XwAP-ID, + iE-Extensions ProtocolExtensionContainer { {UE-ContextReferenceAtWT-ItemExtIEs} } OPTIONAL, + ... +} + +UE-ContextReferenceAtWT-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- HANDOVER REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +HandoverRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverRequestAcknowledge-IEs}}, + ... +} + +HandoverRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-Admitted-List CRITICALITY ignore TYPE E-RABs-Admitted-List PRESENCE mandatory}| + { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| + { ID id-TargeteNBtoSource-eNBTransparentContainer CRITICALITY ignore TYPE TargeteNBtoSource-eNBTransparentContainer PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-WT-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}, + ... +} + +E-RABs-Admitted-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ItemIEs} } + +E-RABs-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-Item CRITICALITY ignore TYPE E-RABs-Admitted-Item PRESENCE mandatory } +} + +E-RABs-Admitted-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, + dL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-Item-ExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- HANDOVER PREPARATION FAILURE +-- +-- ************************************************************** + +HandoverPreparationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverPreparationFailure-IEs}}, + ... +} + +HandoverPreparationFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + + ... +} + +-- ************************************************************** +-- +-- Handover Report +-- +-- ************************************************************** + +HandoverReport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverReport-IEs}}, + ... +} + +HandoverReport-IEs X2AP-PROTOCOL-IES ::= { + { ID id-HandoverReportType CRITICALITY ignore TYPE HandoverReportType PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-SourceCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-FailureCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to “HO to Wrong Cell” -- | + { ID id-TargetCellInUTRAN CRITICALITY ignore TYPE TargetCellInUTRAN PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to "InterRAT ping-pong" --| + { ID id-SourceCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE optional}| + { ID id-MobilityInformation CRITICALITY ignore TYPE MobilityInformation PRESENCE optional}| + { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}| + { ID id-UE-RLF-Report-Container-for-extended-bands CRITICALITY ignore TYPE UE-RLF-Report-Container-for-extended-bands PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SN Status Transfer +-- +-- ************************************************************** + +SNStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SNStatusTransfer-IEs}}, + ... +} + +SNStatusTransfer-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-SubjectToStatusTransfer-List CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-List PRESENCE mandatory}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +E-RABs-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { { E-RABs-SubjectToStatusTransfer-ItemIEs} } + +E-RABs-SubjectToStatusTransfer-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-Item PRESENCE mandatory } +} + +E-RABs-SubjectToStatusTransfer-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + + receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, + uL-COUNTvalue COUNTvalue, + dL-COUNTvalue COUNTvalue, + iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-SubjectToStatusTransfer-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-ReceiveStatusOfULPDCPSDUsExtended CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsExtended PRESENCE optional}| + { ID id-ULCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| + { ID id-DLCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| + { ID id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 PRESENCE optional}| + { ID id-ULCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}| + { ID id-DLCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- UE Context Release +-- +-- ************************************************************** + +UEContextRelease ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextRelease-IEs}}, + ... +} + +UEContextRelease-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SIPTO-BearerDeactivationIndication CRITICALITY ignore TYPE SIPTOBearerDeactivationIndication PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- HANDOVER CANCEL +-- +-- ************************************************************** + +HandoverCancel ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverCancel-IEs}}, + ... +} + +HandoverCancel-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- ERROR INDICATION +-- +-- ************************************************************** + +ErrorIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}}, + ... +} + +ErrorIndication-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}| + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Reset Request +-- +-- ************************************************************** + +ResetRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResetRequest-IEs}}, + ... +} + +ResetRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- Reset Response +-- +-- ************************************************************** + +ResetResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResetResponse-IEs}}, + ... +} + +ResetResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- X2 SETUP REQUEST +-- +-- ************************************************************** + +X2SetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupRequest-IEs}}, + ... +} + +X2SetupRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| + { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory}| + { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, +... +} + + + +-- ************************************************************** +-- +-- X2 SETUP RESPONSE +-- +-- ************************************************************** + +X2SetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupResponse-IEs}}, + ... +} + +X2SetupResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| + { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory}| + { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, + ... +} + + + +-- ************************************************************** +-- +-- X2 SETUP FAILURE +-- +-- ************************************************************** + +X2SetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupFailure-IEs}}, + ... +} + +X2SetupFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + + ... +} + + + +-- ************************************************************** +-- +-- LOAD INFORMATION +-- +-- ************************************************************** + +LoadInformation ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{LoadInformation-IEs}}, + ... +} + +LoadInformation-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CellInformation CRITICALITY ignore TYPE CellInformation-List PRESENCE mandatory} , + ... +} + +CellInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellInformation-ItemIEs} } + +CellInformation-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellInformation-Item CRITICALITY ignore TYPE CellInformation-Item PRESENCE mandatory } +} + +CellInformation-Item ::= SEQUENCE { + cell-ID ECGI, + ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication OPTIONAL, + ul-HighInterferenceIndicationInfo UL-HighInterferenceIndicationInfo OPTIONAL, + relativeNarrowbandTxPower RelativeNarrowbandTxPower OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CellInformation-Item-ExtIEs} } OPTIONAL, + ... +} + +CellInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-ABSInformation CRITICALITY ignore EXTENSION ABSInformation PRESENCE optional }| +{ ID id-InvokeIndication CRITICALITY ignore EXTENSION InvokeIndication PRESENCE optional }| +{ ID id-IntendedULDLConfiguration CRITICALITY ignore EXTENSION SubframeAssignment PRESENCE optional }| +{ ID id-ExtendedULInterferenceOverloadInfo CRITICALITY ignore EXTENSION ExtendedULInterferenceOverloadInfo PRESENCE optional }| +{ ID id-CoMPInformation CRITICALITY ignore EXTENSION CoMPInformation PRESENCE optional }| +{ ID id-DynamicDLTransmissionInformation CRITICALITY ignore EXTENSION DynamicDLTransmissionInformation PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE +-- +-- ************************************************************** + +ENBConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdate-IEs}}, + ... +} + +ENBConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ServedCellsToAdd CRITICALITY reject TYPE ServedCells PRESENCE optional}| + { ID id-ServedCellsToModify CRITICALITY reject TYPE ServedCellsToModify PRESENCE optional}| + { ID id-ServedCellsToDelete CRITICALITY reject TYPE Old-ECGIs PRESENCE optional}| + { ID id-GUGroupIDToAddList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| + { ID id-GUGroupIDToDeleteList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| + { ID id-CoverageModificationList CRITICALITY reject TYPE CoverageModificationList PRESENCE optional}, + ... +} + +ServedCellsToModify::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToModify-Item + +ServedCellsToModify-Item::= SEQUENCE { + old-ecgi ECGI, + servedCellInfo ServedCell-Information, + neighbour-Info Neighbour-Information OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ServedCellsToModify-Item-ExtIEs} } OPTIONAL, + ... +} + +ServedCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-DeactivationIndication CRITICALITY ignore EXTENSION DeactivationIndication PRESENCE optional }, + ... +} + + +Old-ECGIs::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE ACKNOWLEDGE +-- +-- ************************************************************** + +ENBConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateAcknowledge-IEs}}, + ... +} + +ENBConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, +... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE FAIURE +-- +-- ************************************************************** + +ENBConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateFailure-IEs}}, + ... +} + +ENBConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + + + +-- ************************************************************** +-- +-- Resource Status Request +-- +-- ************************************************************** + +ResourceStatusRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusRequest-IEs}}, + ... +} + +ResourceStatusRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY ignore TYPE Measurement-ID PRESENCE conditional}|-- The IE shall be present if the Registration Request IE is set to “Stop”, “Partial stop” or to “Add”-- + { ID id-Registration-Request CRITICALITY reject TYPE Registration-Request PRESENCE mandatory}| + { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE optional}| + { ID id-CellToReport CRITICALITY ignore TYPE CellToReport-List PRESENCE mandatory}| + { ID id-ReportingPeriodicity CRITICALITY ignore TYPE ReportingPeriodicity PRESENCE optional}| + { ID id-PartialSuccessIndicator CRITICALITY ignore TYPE PartialSuccessIndicator PRESENCE optional}| + { ID id-ReportingPeriodicityRSRPMR CRITICALITY ignore TYPE ReportingPeriodicityRSRPMR PRESENCE optional}| + { ID id-ReportingPeriodicityCSIR CRITICALITY ignore TYPE ReportingPeriodicityCSIR PRESENCE optional}, + ... +} + + +CellToReport-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellToReport-ItemIEs} } + +CellToReport-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellToReport-Item CRITICALITY ignore TYPE CellToReport-Item PRESENCE mandatory} +} + +CellToReport-Item ::= SEQUENCE { + cell-ID ECGI, + iE-Extensions ProtocolExtensionContainer { {CellToReport-Item-ExtIEs} } OPTIONAL, + ... +} + +CellToReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +ReportingPeriodicity ::= ENUMERATED { + one-thousand-ms, + two-thousand-ms, + five-thousand-ms, + ten-thousand-ms, +... +} + +PartialSuccessIndicator ::= ENUMERATED { + partial-success-allowed, +... +} + +-- ************************************************************** +-- +-- Resource Status Response +-- +-- ************************************************************** + +ResourceStatusResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusResponse-IEs}}, + ... +} + +ResourceStatusResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeasurementInitiationResult-List CRITICALITY ignore TYPE MeasurementInitiationResult-List PRESENCE optional}, + ... +} + + +MeasurementInitiationResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { { MeasurementInitiationResult-ItemIEs} } + +MeasurementInitiationResult-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-MeasurementInitiationResult-Item CRITICALITY ignore TYPE MeasurementInitiationResult-Item PRESENCE mandatory} +} + +MeasurementInitiationResult-Item ::= SEQUENCE { + cell-ID ECGI, + measurementFailureCause-List MeasurementFailureCause-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { MeasurementInitiationResult-Item-ExtIEs} } OPTIONAL, + ... +} + +MeasurementInitiationResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +MeasurementFailureCause-List ::= SEQUENCE (SIZE (1..maxFailedMeasObjects)) OF ProtocolIE-Single-Container { { MeasurementFailureCause-ItemIEs} } + +MeasurementFailureCause-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-MeasurementFailureCause-Item CRITICALITY ignore TYPE MeasurementFailureCause-Item PRESENCE mandatory} +} + +MeasurementFailureCause-Item ::= SEQUENCE { + measurementFailedReportCharacteristics ReportCharacteristics, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { MeasurementFailureCause-Item-ExtIEs} } OPTIONAL, + ... +} + +MeasurementFailureCause-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Resource Status Failure +-- +-- ************************************************************** + +ResourceStatusFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusFailure-IEs}}, + ... +} + +ResourceStatusFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-CompleteFailureCauseInformation-List CRITICALITY ignore TYPE CompleteFailureCauseInformation-List PRESENCE optional}, + ... +} + +CompleteFailureCauseInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CompleteFailureCauseInformation-ItemIEs} } + +CompleteFailureCauseInformation-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CompleteFailureCauseInformation-Item CRITICALITY ignore TYPE CompleteFailureCauseInformation-Item PRESENCE mandatory} +} + +CompleteFailureCauseInformation-Item ::= SEQUENCE { + cell-ID ECGI, + measurementFailureCause-List MeasurementFailureCause-List, + iE-Extensions ProtocolExtensionContainer { { CompleteFailureCauseInformation-Item-ExtIEs} } OPTIONAL, + ... +} + +CompleteFailureCauseInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Resource Status Update +-- +-- ************************************************************** + +ResourceStatusUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusUpdate-IEs}}, + ... +} + +ResourceStatusUpdate-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-CellMeasurementResult CRITICALITY ignore TYPE CellMeasurementResult-List PRESENCE mandatory}, + ... +} + +CellMeasurementResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellMeasurementResult-ItemIEs} } + +CellMeasurementResult-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellMeasurementResult-Item CRITICALITY ignore TYPE CellMeasurementResult-Item PRESENCE mandatory} +} + +CellMeasurementResult-Item ::= SEQUENCE { + cell-ID ECGI, + hWLoadIndicator HWLoadIndicator OPTIONAL, + s1TNLLoadIndicator S1TNLLoadIndicator OPTIONAL, + radioResourceStatus RadioResourceStatus OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CellMeasurementResult-Item-ExtIEs} } OPTIONAL, + ... +} + +CellMeasurementResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-CompositeAvailableCapacityGroup CRITICALITY ignore EXTENSION CompositeAvailableCapacityGroup PRESENCE optional}| + { ID id-ABS-Status CRITICALITY ignore EXTENSION ABS-Status PRESENCE optional}| + { ID id-RSRPMRList CRITICALITY ignore EXTENSION RSRPMRList PRESENCE optional}| + { ID id-CSIReportList CRITICALITY ignore EXTENSION CSIReportList PRESENCE optional}| + { ID id-CellReportingIndicator CRITICALITY ignore EXTENSION CellReportingIndicator PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- PRIVATE MESSAGE +-- +-- ************************************************************** + +PrivateMessage ::= SEQUENCE { + privateIEs PrivateIE-Container {{PrivateMessage-IEs}}, + ... +} + +PrivateMessage-IEs X2AP-PRIVATE-IES ::= { + ... +} + +-- ************************************************************** +-- +-- MOBILITY CHANGE REQUEST +-- +-- ************************************************************** + +MobilityChangeRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{MobilityChangeRequest-IEs}}, + ... +} + +MobilityChangeRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-ENB1-Mobility-Parameters CRITICALITY ignore TYPE MobilityParametersInformation PRESENCE optional}| + { ID id-ENB2-Proposed-Mobility-Parameters CRITICALITY reject TYPE MobilityParametersInformation PRESENCE mandatory}| + { ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- MOBILITY CHANGE ACKNOWLEDGE +-- +-- ************************************************************** + +MobilityChangeAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{MobilityChangeAcknowledge-IEs}}, + ... +} + +MobilityChangeAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- MOBILITY CHANGE FAILURE +-- +-- ************************************************************** + +MobilityChangeFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{MobilityChangeFailure-IEs}}, + ... +} + +MobilityChangeFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-ENB2-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-ENB2-Mobility-Parameters-Modification-Range CRITICALITY ignore TYPE MobilityParametersModificationRange PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Radio Link Failure Indication +-- +-- ************************************************************** + +RLFIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RLFIndication-IEs}}, + ... +} + +RLFIndication-IEs X2AP-PROTOCOL-IES ::= { + { ID id-FailureCellPCI CRITICALITY ignore TYPE PCI PRESENCE mandatory}| + { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-FailureCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE mandatory}| + { ID id-ShortMAC-I CRITICALITY ignore TYPE ShortMAC-I PRESENCE optional}| + { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}| + { ID id-RRCConnSetupIndicator CRITICALITY reject TYPE RRCConnSetupIndicator PRESENCE optional}| + { ID id-RRCConnReestabIndicator CRITICALITY ignore TYPE RRCConnReestabIndicator PRESENCE optional}| + { ID id-UE-RLF-Report-Container-for-extended-bands CRITICALITY ignore TYPE UE-RLF-Report-Container-for-extended-bands PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- Cell Activation Request +-- +-- ************************************************************** + +CellActivationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationRequest-IEs}}, + ... +} + +CellActivationRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ServedCellsToActivate CRITICALITY reject TYPE ServedCellsToActivate PRESENCE mandatory}, + ... +} + +ServedCellsToActivate::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToActivate-Item + +ServedCellsToActivate-Item::= SEQUENCE { + ecgi ECGI, + iE-Extensions ProtocolExtensionContainer { { ServedCellsToActivate-Item-ExtIEs} } OPTIONAL, + ... +} + +ServedCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Cell Activation Response +-- +-- ************************************************************** + +CellActivationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationResponse-IEs}}, + ... +} + +CellActivationResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ActivatedCellList CRITICALITY ignore TYPE ActivatedCellList PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +ActivatedCellList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ActivatedCellList-Item + +ActivatedCellList-Item::= SEQUENCE { + ecgi ECGI, + iE-Extensions ProtocolExtensionContainer { { ActivatedCellList-Item-ExtIEs} } OPTIONAL, + ... +} + +ActivatedCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +--************************************************************** +-- +-- CELL ACTIVATION FAILURE +-- +-- ************************************************************** + +CellActivationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationFailure-IEs}}, + ... +} + +CellActivationFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- X2 RELEASE +-- +-- ************************************************************** + +X2Release ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2Release-IEs}}, + ... +} + +X2Release-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}, +... +} + +-- ************************************************************** +-- +-- X2AP Message Transfer +-- +-- ************************************************************** + +X2APMessageTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2APMessageTransfer-IEs}}, + ... +} + +X2APMessageTransfer-IEs X2AP-PROTOCOL-IES ::= { + { ID id-RNL-Header CRITICALITY reject TYPE RNL-Header PRESENCE mandatory}| + { ID id-x2APMessage CRITICALITY reject TYPE X2AP-Message PRESENCE optional}, + ... +} + +RNL-Header ::= SEQUENCE { + source-GlobalENB-ID GlobalENB-ID, + target-GlobalENB-ID GlobalENB-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { RNL-Header-Item-ExtIEs} } OPTIONAL, + ... +} + +RNL-Header-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +X2AP-Message ::= OCTET STRING + +-- ************************************************************** +-- +-- SENB ADDITION REQUEST +-- +-- ************************************************************** + +SeNBAdditionRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBAdditionRequest-IEs}}, + ... +} + +SeNBAdditionRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-UE-SecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE conditional}| + -- This IE shall be present if the Bearer Option IE is set to the value “SCG bearer” -- + { ID id-SeNBSecurityKey CRITICALITY reject TYPE SeNBSecurityKey PRESENCE conditional}| + -- This IE shall be present if the Bearer Option IE is set to the value “SCG bearer” -- + { ID id-SeNBUEAggregateMaximumBitRate CRITICALITY reject TYPE UEAggregateMaximumBitRate PRESENCE mandatory}| + { ID id-ServingPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| + { ID id-E-RABs-ToBeAdded-List CRITICALITY reject TYPE E-RABs-ToBeAdded-List PRESENCE mandatory}| + { ID id-MeNBtoSeNBContainer CRITICALITY reject TYPE MeNBtoSeNBContainer PRESENCE mandatory}| + { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +E-RABs-ToBeAdded-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { { E-RABs-ToBeAdded-ItemIEs} } + +E-RABs-ToBeAdded-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeAdded-Item CRITICALITY reject TYPE E-RABs-ToBeAdded-Item PRESENCE mandatory}, + ... +} + +E-RABs-ToBeAdded-Item ::= CHOICE { + sCG-Bearer E-RABs-ToBeAdded-Item-SCG-Bearer, + split-Bearer E-RABs-ToBeAdded-Item-Split-Bearer, + ... +} + +E-RABs-ToBeAdded-Item-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + dL-Forwarding DL-Forwarding OPTIONAL, + s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-Item-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-Item-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}, + ... +} + +E-RABs-ToBeAdded-Item-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + meNB-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-Item-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-Item-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB ADDITION REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +SeNBAdditionRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBAdditionRequestAcknowledge-IEs}}, + ... +} + +SeNBAdditionRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-Admitted-ToBeAdded-List CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-List PRESENCE mandatory}| + { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| + { ID id-SeNBtoMeNBContainer CRITICALITY reject TYPE SeNBtoMeNBContainer PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}, + ... +} + +E-RABs-Admitted-ToBeAdded-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-ItemIEs} } + +E-RABs-Admitted-ToBeAdded-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeAdded-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-Item PRESENCE mandatory} +} + +E-RABs-Admitted-ToBeAdded-Item ::= CHOICE { + sCG-Bearer E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer, + split-Bearer E-RABs-Admitted-ToBeAdded-Item-Split-Bearer, + ... +} + +E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-Item-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-Item-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeAdded-Item-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + seNB-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-Item-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-Item-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB ADDITION REQUEST REJECT +-- +-- ************************************************************** + +SeNBAdditionRequestReject ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBAdditionRequestReject-IEs}}, + ... +} + +SeNBAdditionRequestReject-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SENB RECONFIGURATION COMPLETE +-- +-- ************************************************************** + +SeNBReconfigurationComplete ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBReconfigurationComplete-IEs}}, + ... +} + +SeNBReconfigurationComplete-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-ResponseInformationSeNBReconfComp CRITICALITY ignore TYPE ResponseInformationSeNBReconfComp PRESENCE mandatory}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +ResponseInformationSeNBReconfComp ::= CHOICE { + success ResponseInformationSeNBReconfComp-SuccessItem, + reject-by-MeNB ResponseInformationSeNBReconfComp-RejectByMeNBItem, + ... +} + +ResponseInformationSeNBReconfComp-SuccessItem ::= SEQUENCE { + meNBtoSeNBContainer MeNBtoSeNBContainer OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ResponseInformationSeNBReconfComp-SuccessItemExtIEs} } OPTIONAL, + ... +} + +ResponseInformationSeNBReconfComp-SuccessItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ResponseInformationSeNBReconfComp-RejectByMeNBItem ::= SEQUENCE { + cause Cause, + meNBtoSeNBContainer MeNBtoSeNBContainer OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ResponseInformationSeNBReconfComp-RejectByMeNBItemExtIEs} } OPTIONAL, + ... +} + +ResponseInformationSeNBReconfComp-RejectByMeNBItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION REQUEST +-- +-- ************************************************************** + +SeNBModificationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SeNBModificationRequest-IEs}}, + ... +} + +SeNBModificationRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-SCGChangeIndication CRITICALITY ignore TYPE SCGChangeIndication PRESENCE optional}| + { ID id-ServingPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| + { ID id-UE-ContextInformationSeNBModReq CRITICALITY reject TYPE UE-ContextInformationSeNBModReq PRESENCE optional}| + { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +UE-ContextInformationSeNBModReq ::= SEQUENCE { + uE-SecurityCapabilities UESecurityCapabilities OPTIONAL, + seNB-SecurityKey SeNBSecurityKey OPTIONAL, + seNBUEAggregateMaximumBitRate UEAggregateMaximumBitRate OPTIONAL, + e-RABs-ToBeAdded E-RABs-ToBeAdded-List-ModReq OPTIONAL, + e-RABs-ToBeModified E-RABs-ToBeModified-List-ModReq OPTIONAL, + e-RABs-ToBeReleased E-RABs-ToBeReleased-List-ModReq OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { UE-ContextInformationSeNBModReqExtIEs} } OPTIONAL, + ... +} + +UE-ContextInformationSeNBModReqExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeAdded-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-ModReqItemIEs} } + +E-RABs-ToBeAdded-ModReqItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeAdded-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeAdded-ModReqItem PRESENCE mandatory}, + ... +} + +E-RABs-ToBeAdded-ModReqItem ::= CHOICE { + sCG-Bearer E-RABs-ToBeAdded-ModReqItem-SCG-Bearer, + split-Bearer E-RABs-ToBeAdded-ModReqItem-Split-Bearer, + ... +} + +E-RABs-ToBeAdded-ModReqItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + dL-Forwarding DL-Forwarding OPTIONAL, + s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}, + ... +} + +E-RABs-ToBeAdded-ModReqItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + meNB-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-ModReqItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeModified-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeModified-ModReqItemIEs} } + +E-RABs-ToBeModified-ModReqItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeModified-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeModified-ModReqItem PRESENCE mandatory}, + ... +} + + +E-RABs-ToBeModified-ModReqItem ::= CHOICE { + sCG-Bearer E-RABs-ToBeModified-ModReqItem-SCG-Bearer, + split-Bearer E-RABs-ToBeModified-ModReqItem-Split-Bearer, + ... +} + +E-RABs-ToBeModified-ModReqItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, + s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeModified-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeModified-ModReqItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, + meNB-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-ModReqItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeModified-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-ModReqItemIEs} } + +E-RABs-ToBeReleased-ModReqItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqItem PRESENCE mandatory}, + ... +} + +E-RABs-ToBeReleased-ModReqItem ::= CHOICE { + sCG-Bearer E-RABs-ToBeReleased-ModReqItem-SCG-Bearer, + split-Bearer E-RABs-ToBeReleased-ModReqItem-Split-Bearer, + ... +} + +E-RABs-ToBeReleased-ModReqItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-ModReqItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +SeNBModificationRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBModificationRequestAcknowledge-IEs}}, + ... +} + +SeNBModificationRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-Admitted-ToBeAdded-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-ModAckList PRESENCE optional}| + { ID id-E-RABs-Admitted-ToBeModified-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-ModAckList PRESENCE optional}| + { ID id-E-RABs-Admitted-ToBeReleased-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeReleased-ModAckList PRESENCE optional}| + { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| + { ID id-SeNBtoMeNBContainer CRITICALITY ignore TYPE SeNBtoMeNBContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +E-RABs-Admitted-ToBeAdded-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-ModAckItemIEs} } + +E-RABs-Admitted-ToBeAdded-ModAckItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeAdded-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-ModAckItem PRESENCE mandatory} +} + +E-RABs-Admitted-ToBeAdded-ModAckItem ::= CHOICE { + sCG-Bearer E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer, + split-Bearer E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer, + ... +} + +E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + seNB-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-ModAckItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} +E-RABs-Admitted-ToBeModified-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeModified-ModAckItemIEs} } + +E-RABs-Admitted-ToBeModified-ModAckItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeModified-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-ModAckItem PRESENCE mandatory} +} + +E-RABs-Admitted-ToBeModified-ModAckItem ::= CHOICE { + sCG-Bearer E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer, + split-Bearer E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer, + ... +} + +E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeModified-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + seNB-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-ModAckItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeModified-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeReleased-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeReleased-ModAckItemIEs} } + +E-RABs-Admitted-ToBeReleased-ModAckItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeReleased-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToReleased-ModAckItem PRESENCE mandatory} +} + +E-RABs-Admitted-ToReleased-ModAckItem ::= CHOICE { + sCG-Bearer E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer, + split-Bearer E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer, + ... +} + +E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-ModAckItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeReleased-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION REQUEST REJECT +-- +-- ************************************************************** + +SeNBModificationRequestReject ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBModificationRequestReject-IEs}}, + ... +} + +SeNBModificationRequestReject-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION REQUIRED +-- +-- ************************************************************** + +SeNBModificationRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBModificationRequired-IEs}}, + ... +} + +SeNBModificationRequired-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-SCGChangeIndication CRITICALITY ignore TYPE SCGChangeIndication PRESENCE optional}| + { ID id-E-RABs-ToBeReleased-ModReqd CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqd PRESENCE optional}| + { ID id-SeNBtoMeNBContainer CRITICALITY ignore TYPE SeNBtoMeNBContainer PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + + +E-RABs-ToBeReleased-ModReqd ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-ModReqdItemIEs} } + +E-RABs-ToBeReleased-ModReqdItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-ModReqdItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqdItem PRESENCE mandatory }, + ... +} + +E-RABs-ToBeReleased-ModReqdItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqdItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-ModReqdItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION CONFIRM +-- +-- ************************************************************** + +SeNBModificationConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBModificationConfirm-IEs}}, + ... +} + +SeNBModificationConfirm-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION REFUSE +-- +-- ************************************************************** + +SeNBModificationRefuse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBModificationRefuse-IEs}}, + ... +} + +SeNBModificationRefuse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SENB RELEASE REQUEST +-- +-- ************************************************************** + +SeNBReleaseRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBReleaseRequest-IEs}}, + ... +} + +SeNBReleaseRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE optional}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional}| + { ID id-E-RABs-ToBeReleased-List-RelReq CRITICALITY ignore TYPE E-RABs-ToBeReleased-List-RelReq PRESENCE optional}| + { ID id-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-MakeBeforeBreakIndicator CRITICALITY ignore TYPE MakeBeforeBreakIndicator PRESENCE optional}, + ... +} +E-RABs-ToBeReleased-List-RelReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-RelReqItemIEs} } + +E-RABs-ToBeReleased-RelReqItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-RelReqItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-RelReqItem PRESENCE mandatory}, + ... +} + +E-RABs-ToBeReleased-RelReqItem ::= CHOICE { + sCG-Bearer E-RABs-ToBeReleased-RelReqItem-SCG-Bearer, + split-Bearer E-RABs-ToBeReleased-RelReqItem-Split-Bearer, + ... +} + +E-RABs-ToBeReleased-RelReqItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelReqItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-RelReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-RelReqItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelReqItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-RelReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB RELEASE REQUIRED +-- +-- ************************************************************** + +SeNBReleaseRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBReleaseRequired-IEs}}, + ... +} + +SeNBReleaseRequired-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SENB RELEASE CONFIRM +-- +-- ************************************************************** + +SeNBReleaseConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBReleaseConfirm-IEs}}, + ... +} + +SeNBReleaseConfirm-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-ToBeReleased-List-RelConf CRITICALITY ignore TYPE E-RABs-ToBeReleased-List-RelConf PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} +E-RABs-ToBeReleased-List-RelConf ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-RelConfItemIEs} } + +E-RABs-ToBeReleased-RelConfItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-RelConfItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-RelConfItem PRESENCE mandatory}, + ... +} + +E-RABs-ToBeReleased-RelConfItem ::= CHOICE { + sCG-Bearer E-RABs-ToBeReleased-RelConfItem-SCG-Bearer, + split-Bearer E-RABs-ToBeReleased-RelConfItem-Split-Bearer, + ... +} + +E-RABs-ToBeReleased-RelConfItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelConfItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-RelConfItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-RelConfItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelConfItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-RelConfItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB COUNTER CHECK REQUEST +-- +-- ************************************************************** + +SeNBCounterCheckRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBCounterCheckRequest-IEs}}, + ... +} + +SeNBCounterCheckRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-SubjectToCounterCheck-List CRITICALITY ignore TYPE E-RABs-SubjectToCounterCheck-List PRESENCE mandatory}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} +E-RABs-SubjectToCounterCheck-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-SubjectToCounterCheckItemIEs} } + +E-RABs-SubjectToCounterCheckItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-SubjectToCounterCheckItem CRITICALITY ignore TYPE E-RABs-SubjectToCounterCheckItem PRESENCE mandatory}, + ... +} + +E-RABs-SubjectToCounterCheckItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-Count INTEGER (0..4294967295), + dL-Count INTEGER (0..4294967295), + iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToCounterCheckItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-SubjectToCounterCheckItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- X2 REMOVAL REQUEST +-- +-- ************************************************************** + +X2RemovalRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2RemovalRequest-IEs}}, + ... +} + +X2RemovalRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| + { ID id-X2RemovalThreshold CRITICALITY reject TYPE X2BenefitValue PRESENCE optional}, +... +} + + + +-- ************************************************************** +-- +-- X2 REMOVAL RESPONSE +-- +-- ************************************************************** + +X2RemovalResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2RemovalResponse-IEs}}, + ... +} + +X2RemovalResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + + + +-- ************************************************************** +-- +-- X2 REMOVAL FAILURE +-- +-- ************************************************************** + +X2RemovalFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2RemovalFailure-IEs}}, + ... +} + +X2RemovalFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- RETRIEVE UE CONTEXT REQUEST +-- +-- ************************************************************** + +RetrieveUEContextRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ RetrieveUEContextRequest-IEs}}, + ... +} + +RetrieveUEContextRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-resumeID CRITICALITY reject TYPE ResumeID PRESENCE mandatory}| + { ID id-ShortMAC-I CRITICALITY reject TYPE ShortMAC-I PRESENCE mandatory}| + { ID id-NewEUTRANCellIdentifier CRITICALITY reject TYPE EUTRANCellIdentifier PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- RETRIEVE UE CONTEXT RESPONSE +-- +-- ************************************************************** + +RetrieveUEContextResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ RetrieveUEContextResponse-IEs}}, + ... +} + +RetrieveUEContextResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory}| + { ID id-UE-ContextInformationRetrieve CRITICALITY reject TYPE UE-ContextInformationRetrieve PRESENCE mandatory}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}, + ... +} + +UE-ContextInformationRetrieve ::= SEQUENCE { + mME-UE-S1AP-ID UE-S1AP-ID, + uESecurityCapabilities UESecurityCapabilities, + aS-SecurityInformation AS-SecurityInformation, + uEaggregateMaximumBitRate UEAggregateMaximumBitRate, + subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, + e-RABs-ToBeSetup-ListRetrieve E-RABs-ToBeSetup-ListRetrieve, + rRC-Context RRC-Context, + handoverRestrictionList HandoverRestrictionList OPTIONAL, + locationReportingInformation LocationReportingInformation OPTIONAL, + managBasedMDTallowed ManagementBasedMDTallowed OPTIONAL, + managBasedMDTPLMNList MDTPLMNList OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {UE-ContextInformationRetrieve-ExtIEs} } OPTIONAL, + ... +} + +UE-ContextInformationRetrieve-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-UESidelinkAggregateMaximumBitRate CRITICALITY ignore EXTENSION UESidelinkAggregateMaximumBitRate PRESENCE optional}, + ... +} + +E-RABs-ToBeSetup-ListRetrieve ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetupRetrieve-ItemIEs} } + +E-RABs-ToBeSetupRetrieve-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeSetupRetrieve-Item CRITICALITY ignore TYPE E-RABs-ToBeSetupRetrieve-Item PRESENCE mandatory}, + ... +} + +E-RABs-ToBeSetupRetrieve-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + bearerType BearerType OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetupRetrieve-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeSetupRetrieve-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-uL-GTPtunnelEndpoint CRITICALITY reject EXTENSION GTPtunnelEndpoint PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- RETRIEVE UE CONTEXT FAILURE +-- +-- ************************************************************** + +RetrieveUEContextFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ RetrieveUEContextFailure-IEs}}, + ... +} + +RetrieveUEContextFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +END + + +-- ************************************************************** +-- +-- Information Element Definitions +-- +-- ************************************************************** + +X2AP-IEs { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-IEs (2) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + + id-E-RAB-Item, + id-Number-of-Antennaports, + id-MBSFN-Subframe-Info, + id-PRACH-Configuration, + id-CSG-Id, + id-MDTConfiguration, + id-SignallingBasedMDTPLMNList, + id-MultibandInfoList, + id-FreqBandIndicatorPriority, + id-NeighbourTAC, + id-Time-UE-StayedInCell-EnhancedGranularity, + id-MBMS-Service-Area-List, + id-HO-cause, + id-eARFCNExtension, + id-DL-EARFCNExtension, + id-UL-EARFCNExtension, + id-M3Configuration, + id-M4Configuration, + id-M5Configuration, + id-MDT-Location-Info, + id-AdditionalSpecialSubframe-Info, + id-UEID, + id-enhancedRNTP, + id-ProSeUEtoNetworkRelaying, + id-M6Configuration, + id-M7Configuration, + id-OffsetOfNbiotChannelNumberToDL-EARFCN, + id-OffsetOfNbiotChannelNumberToUL-EARFCN, + id-AdditionalSpecialSubframeExtension-Info, + id-BandwidthReducedSI, + id-DL-scheduling-PDCCH-CCE-usage, + id-UL-scheduling-PDCCH-CCE-usage, + maxnoofBearers, + maxCellineNB, + maxEARFCN, + maxEARFCNPlusOne, + newmaxEARFCN, + maxInterfaces, + + maxnoofBands, + maxnoofBPLMNs, + maxnoofCells, + maxnoofEPLMNs, + maxnoofEPLMNsPlusOne, + maxnoofForbLACs, + maxnoofForbTACs, + maxnoofNeighbours, + maxnoofPRBs, + maxNrOfErrors, + maxPools, + maxnoofMBSFN, + maxnoofTAforMDT, + maxnoofCellIDforMDT, + maxnoofMBMSServiceAreaIdentities, + maxnoofMDTPLMNs, + maxnoofCoMPHypothesisSet, + maxnoofCoMPCells, + maxUEReport, + maxCellReport, + maxnoofPA, + maxCSIProcess, + maxCSIReport, + maxSubband + +FROM X2AP-Constants + + Criticality, + ProcedureCode, + ProtocolIE-ID, + TriggeringMessage +FROM X2AP-CommonDataTypes + + ProtocolExtensionContainer{}, + ProtocolIE-Single-Container{}, + + X2AP-PROTOCOL-EXTENSION, + X2AP-PROTOCOL-IES +FROM X2AP-Containers; + +-- A + +ABSInformation ::= CHOICE { + fdd ABSInformationFDD, + tdd ABSInformationTDD, + abs-inactive NULL, + ... +} + +ABSInformationFDD ::= SEQUENCE { + abs-pattern-info BIT STRING (SIZE(40)), + numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, + measurement-subset BIT STRING (SIZE(40)), + iE-Extensions ProtocolExtensionContainer { { ABSInformationFDD-ExtIEs} } OPTIONAL, + ... +} + +ABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ABSInformationTDD ::= SEQUENCE { + abs-pattern-info BIT STRING (SIZE(1..70, ...)), + numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, + measurement-subset BIT STRING (SIZE(1..70, ...)), + iE-Extensions ProtocolExtensionContainer { { ABSInformationTDD-ExtIEs} } OPTIONAL, + ... +} + +ABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ABS-Status ::= SEQUENCE { + dL-ABS-status DL-ABS-status, + usableABSInformation UsableABSInformation, + iE-Extensions ProtocolExtensionContainer { {ABS-Status-ExtIEs} } OPTIONAL, + ... +} + +ABS-Status-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +AdditionalSpecialSubframe-Info ::= SEQUENCE { + additionalspecialSubframePatterns AdditionalSpecialSubframePatterns, + cyclicPrefixDL CyclicPrefixDL, + cyclicPrefixUL CyclicPrefixUL, + iE-Extensions ProtocolExtensionContainer { { AdditionalSpecialSubframe-Info-ExtIEs} } OPTIONAL, + ... +} + +AdditionalSpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +AdditionalSpecialSubframePatterns ::= ENUMERATED { + ssp0, + ssp1, + ssp2, + ssp3, + ssp4, + ssp5, + ssp6, + ssp7, + ssp8, + ssp9, + ... +} + +AdditionalSpecialSubframeExtension-Info ::= SEQUENCE { + additionalspecialSubframePatternsExtension AdditionalSpecialSubframePatternsExtension, + cyclicPrefixDL CyclicPrefixDL, + cyclicPrefixUL CyclicPrefixUL, + iE-Extensions ProtocolExtensionContainer { { AdditionalSpecialSubframeExtension-Info-ExtIEs} } OPTIONAL, + ... +} + +AdditionalSpecialSubframeExtension-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +AdditionalSpecialSubframePatternsExtension ::= ENUMERATED { + ssp10, + ... +} + +AllocationAndRetentionPriority ::= SEQUENCE { + priorityLevel PriorityLevel, + pre-emptionCapability Pre-emptionCapability, + pre-emptionVulnerability Pre-emptionVulnerability, + iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, + ... +} + +AllocationAndRetentionPriority-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +AreaScopeOfMDT ::= CHOICE { + cellBased CellBasedMDT, + tABased TABasedMDT, + pLMNWide NULL, + ..., + tAIBased TAIBasedMDT +} + +AS-SecurityInformation ::= SEQUENCE { + key-eNodeB-star Key-eNodeB-Star, + nextHopChainingCount NextHopChainingCount, + iE-Extensions ProtocolExtensionContainer { { AS-SecurityInformation-ExtIEs} } OPTIONAL, + ... +} + +AS-SecurityInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- B + +BandwidthReducedSI::= ENUMERATED { + scheduled, + ... +} + +BearerType ::= ENUMERATED { + non-IP, + ... +} + +BenefitMetric ::= INTEGER (-101..100, ...) + +BitRate ::= INTEGER (0..10000000000) +BroadcastPLMNs-Item ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF PLMN-Identity + + +-- C + +CapacityValue ::= INTEGER (0..100) + +Cause ::= CHOICE { + radioNetwork CauseRadioNetwork, + transport CauseTransport, + protocol CauseProtocol, + misc CauseMisc, + ... +} + +CauseMisc ::= ENUMERATED { + control-processing-overload, + hardware-failure, + om-intervention, + not-enough-user-plane-processing-resources, + unspecified, + ... +} + +CauseProtocol ::= ENUMERATED { + transfer-syntax-error, + abstract-syntax-error-reject, + abstract-syntax-error-ignore-and-notify, + message-not-compatible-with-receiver-state, + semantic-error, + unspecified, + abstract-syntax-error-falsely-constructed-message, + ... +} + +CauseRadioNetwork ::= ENUMERATED { + handover-desirable-for-radio-reasons, + time-critical-handover, + resource-optimisation-handover, + reduce-load-in-serving-cell, + partial-handover, + unknown-new-eNB-UE-X2AP-ID, + unknown-old-eNB-UE-X2AP-ID, + unknown-pair-of-UE-X2AP-ID, + ho-target-not-allowed, + tx2relocoverall-expiry, + trelocprep-expiry, + cell-not-available, + no-radio-resources-available-in-target-cell, + invalid-MME-GroupID, + unknown-MME-Code, + encryption-and-or-integrity-protection-algorithms-not-supported, + reportCharacteristicsEmpty, + noReportPeriodicity, + existingMeasurementID, + unknown-eNB-Measurement-ID, + measurement-temporarily-not-available, + unspecified, + ..., + load-balancing, + handover-optimisation, + value-out-of-allowed-range, + multiple-E-RAB-ID-instances, + switch-off-ongoing, + not-supported-QCI-value, + measurement-not-supported-for-the-object, + tDCoverall-expiry, + tDCprep-expiry, + action-desirable-for-radio-reasons, + reduce-load, + resource-optimisation, + time-critical-action, + target-not-allowed, + no-radio-resources-available, + invalid-QoS-combination, + encryption-algorithms-not-aupported, + procedure-cancelled, + rRM-purpose, + improve-user-bit-rate, + user-inactivity, + radio-connection-with-UE-lost, + failure-in-the-radio-interface-procedure, + bearer-option-not-supported + +} + +CauseTransport ::= ENUMERATED { + transport-resource-unavailable, + unspecified, + ... +} + +CellBasedMDT::= SEQUENCE { + cellIdListforMDT CellIdListforMDT, + iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +CellBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellCapacityClassValue ::= INTEGER (1..100, ...) + +CellDeploymentStatusIndicator ::= ENUMERATED {pre-change-notification, ...} + +CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF ECGI + +CellReplacingInfo ::= SEQUENCE { + replacingCellsList ReplacingCellsList, + iE-Extensions ProtocolExtensionContainer { { CellReplacingInfo-ExtIEs}} OPTIONAL, + ... +} + +CellReplacingInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellReportingIndicator ::= ENUMERATED {stop-request, ... } + +Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ... } + + +CellType ::= SEQUENCE { + cell-Size Cell-Size, + iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL, + ... +} + +CellType-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CoMPHypothesisSet ::= SEQUENCE (SIZE(1..maxnoofCoMPCells)) OF CoMPHypothesisSetItem + +CoMPHypothesisSetItem ::= SEQUENCE { + coMPCellID ECGI, + coMPHypothesis BIT STRING (SIZE(6..4400, ...)), + iE-Extensions ProtocolExtensionContainer { { CoMPHypothesisSetItem-ExtIEs} } OPTIONAL, + ... +} + +CoMPHypothesisSetItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CoMPInformation ::= SEQUENCE { + coMPInformationItem CoMPInformationItem, + coMPInformationStartTime CoMPInformationStartTime, + iE-Extensions ProtocolExtensionContainer { { CoMPInformation-ExtIEs} } OPTIONAL, + ... +} + +CoMPInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CoMPInformationItem ::= SEQUENCE (SIZE(1..maxnoofCoMPHypothesisSet)) OF + SEQUENCE { + coMPHypothesisSet CoMPHypothesisSet, + benefitMetric BenefitMetric, + iE-Extensions ProtocolExtensionContainer { { CoMPInformationItem-ExtIEs} } OPTIONAL, + ... + } + +CoMPInformationItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CoMPInformationStartTime ::= SEQUENCE (SIZE(0..1)) OF + SEQUENCE { + startSFN INTEGER (0..1023, ...), + startSubframeNumber INTEGER (0..9, ...), + iE-Extensions ProtocolExtensionContainer { { CoMPInformationStartTime-ExtIEs} } OPTIONAL, + ... + } + +CoMPInformationStartTime-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompositeAvailableCapacity ::= SEQUENCE { + cellCapacityClassValue CellCapacityClassValue OPTIONAL, + capacityValue CapacityValue, + iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacity-ExtIEs} } OPTIONAL, + ... +} + +CompositeAvailableCapacity-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompositeAvailableCapacityGroup ::= SEQUENCE { + dL-CompositeAvailableCapacity CompositeAvailableCapacity, + uL-CompositeAvailableCapacity CompositeAvailableCapacity, + iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacityGroup-ExtIEs} } OPTIONAL, + ... +} + +CompositeAvailableCapacityGroup-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +Correlation-ID ::= OCTET STRING (SIZE (4)) + +COUNTvalue ::= SEQUENCE { + pDCP-SN PDCP-SN, + hFN HFN, + iE-Extensions ProtocolExtensionContainer { { COUNTvalue-ExtIEs} } OPTIONAL, + ... +} + +COUNTvalue-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTValueExtended ::= SEQUENCE { + pDCP-SNExtended PDCP-SNExtended, + hFNModified HFNModified, + iE-Extensions ProtocolExtensionContainer { { COUNTValueExtended-ExtIEs} } OPTIONAL, + ... +} + +COUNTValueExtended-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTvaluePDCP-SNlength18 ::= SEQUENCE { + pDCP-SNlength18 PDCP-SNlength18, + hFNforPDCP-SNlength18 HFNforPDCP-SNlength18, + iE-Extensions ProtocolExtensionContainer { { COUNTvaluePDCP-SNlength18-ExtIEs} } OPTIONAL, + ... +} + +COUNTvaluePDCP-SNlength18-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CoverageModificationList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF CoverageModification-Item + +CoverageModification-Item ::= SEQUENCE { + eCGI ECGI, + coverageState INTEGER (0..15, ...), + cellDeploymentStatusIndicator CellDeploymentStatusIndicator OPTIONAL, + cellReplacingInfo CellReplacingInfo OPTIONAL, +-- Included in case the Cell Deployment Status Indicator IE is present + ... +} + +CriticalityDiagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL, + ... +} + + +CriticalityDiagnostics-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF + SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-List-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CRNTI ::= BIT STRING (SIZE (16)) + +CSGMembershipStatus ::= ENUMERATED { + member, + not-member +} + +CSG-Id ::= BIT STRING (SIZE (27)) + +CSIReportList ::= SEQUENCE (SIZE(1..maxUEReport)) OF + SEQUENCE { + uEID UEID, + cSIReportPerCSIProcess CSIReportPerCSIProcess, + iE-Extensions ProtocolExtensionContainer { { CSIReportList-ExtIEs} } OPTIONAL, + ... + } + +CSIReportList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CSIReportPerCSIProcess ::= SEQUENCE (SIZE(1.. maxCSIProcess)) OF + SEQUENCE { + cSIProcessConfigurationIndex INTEGER (1..7, ...), + cSIReportPerCSIProcessItem CSIReportPerCSIProcessItem, + iE-Extensions ProtocolExtensionContainer { { CSIReportPerCSIProcess-ExtIEs} } OPTIONAL, + ... + } + +CSIReportPerCSIProcess-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CSIReportPerCSIProcessItem ::= SEQUENCE (SIZE(1.. maxCSIReport)) OF + SEQUENCE { + rI INTEGER (1..8, ...), + widebandCQI WidebandCQI, + subbandSize SubbandSize, + subbandCQIList SubbandCQIList OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { CSIReportPerCSIProcessItem-ExtIEs} } OPTIONAL, + ... + } + +CSIReportPerCSIProcessItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CyclicPrefixDL ::= ENUMERATED { + normal, + extended, + ... +} + +CyclicPrefixUL ::= ENUMERATED { + normal, + extended, + ... +} + + +-- D + +DeactivationIndication::= ENUMERATED { + deactivated, + ... +} + +DL-ABS-status::= INTEGER (0..100) + +DL-Forwarding ::= ENUMERATED { + dL-forwardingProposed, + ... +} + +DL-GBR-PRB-usage::= INTEGER (0..100) + +DL-non-GBR-PRB-usage::= INTEGER (0..100) + +DL-scheduling-PDCCH-CCE-usage::= INTEGER (0..100) + +DL-Total-PRB-usage::= INTEGER (0..100) + +DynamicDLTransmissionInformation ::= CHOICE { + naics-active DynamicNAICSInformation, + naics-inactive NULL, + ... +} + +DynamicNAICSInformation ::= SEQUENCE { + transmissionModes BIT STRING (SIZE(8)) OPTIONAL, + pB-information INTEGER(0..3) OPTIONAL, + pA-list SEQUENCE (SIZE(0..maxnoofPA)) OF PA-Values, + iE-Extensions ProtocolExtensionContainer { {DynamicNAICSInformation-ExtIEs} } OPTIONAL, + ... +} + +DynamicNAICSInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- E + +EARFCN ::= INTEGER (0..maxEARFCN) + +EARFCNExtension ::= INTEGER(maxEARFCNPlusOne..newmaxEARFCN, ...) + +ECGI ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + eUTRANcellIdentifier EUTRANCellIdentifier, + iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL, + ... +} + +ECGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +EnhancedRNTP ::= SEQUENCE { + enhancedRNTPBitmap BIT STRING (SIZE(12..8800, ...)), + rNTP-High-Power-Threshold RNTP-Threshold, + enhancedRNTPStartTime EnhancedRNTPStartTime OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { EnhancedRNTP-ExtIEs} } OPTIONAL, + ... +} + +EnhancedRNTP-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +EnhancedRNTPStartTime ::= SEQUENCE { + startSFN INTEGER (0..1023, ...), + startSubframeNumber INTEGER (0..9, ...), + iE-Extensions ProtocolExtensionContainer { { EnhancedRNTPStartTime-ExtIEs} } OPTIONAL, + ... + } + +EnhancedRNTPStartTime-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENB-ID ::= CHOICE { + macro-eNB-ID BIT STRING (SIZE (20)), + home-eNB-ID BIT STRING (SIZE (28)), + ... , + short-Macro-eNB-ID BIT STRING (SIZE(18)), + long-Macro-eNB-ID BIT STRING (SIZE(21)) +} + +EncryptionAlgorithms ::= BIT STRING (SIZE (16, ...)) + +EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMN-Identity + +E-RAB-ID ::= INTEGER (0..15, ...) + +E-RAB-Level-QoS-Parameters ::= SEQUENCE { + qCI QCI, + allocationAndRetentionPriority AllocationAndRetentionPriority, + gbrQosInformation GBR-QosInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { E-RAB-Level-QoS-Parameters-ExtIEs} } OPTIONAL, + ... +} + +E-RAB-Level-QoS-Parameters-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RAB-List ::= SEQUENCE (SIZE(1.. maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RAB-ItemIEs} } + +E-RAB-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RAB-Item CRITICALITY ignore TYPE E-RAB-Item PRESENCE mandatory }, + ... +} + +E-RAB-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RAB-Item-ExtIEs} } OPTIONAL, + ... +} + +E-RAB-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +EUTRA-Mode-Info ::= CHOICE { + fDD FDD-Info, + tDD TDD-Info, + ... +} + +EUTRANCellIdentifier ::= BIT STRING (SIZE (28)) + +EUTRANTraceID ::= OCTET STRING (SIZE (8)) + +EventType ::= ENUMERATED{ + change-of-serving-cell, + ... +} + +ExpectedUEBehaviour ::= SEQUENCE { + expectedActivity ExpectedUEActivityBehaviour OPTIONAL, + expectedHOInterval ExpectedHOInterval OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ExpectedUEBehaviour-ExtIEs} } OPTIONAL, + ... +} + +ExpectedUEBehaviour-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ExpectedUEActivityBehaviour ::= SEQUENCE { + expectedActivityPeriod ExpectedActivityPeriod OPTIONAL, + expectedIdlePeriod ExpectedIdlePeriod OPTIONAL, + sourceofUEActivityBehaviourInformation SourceOfUEActivityBehaviourInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ExpectedUEActivityBehaviour-ExtIEs} } OPTIONAL, + ... +} + +ExpectedUEActivityBehaviour-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ExpectedActivityPeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) + +ExpectedIdlePeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) + +ExpectedHOInterval ::= ENUMERATED { + sec15, sec30, sec60, sec90, sec120, sec180, long-time, + ... +} + +ExtendedULInterferenceOverloadInfo ::= SEQUENCE { + associatedSubframes BIT STRING (SIZE (5)), + extended-ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication, + iE-Extensions ProtocolExtensionContainer { { ExtendedULInterferenceOverloadInfo-ExtIEs} } OPTIONAL, + ... +} + +ExtendedULInterferenceOverloadInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- F + +FDD-Info ::= SEQUENCE { + uL-EARFCN EARFCN, + dL-EARFCN EARFCN, + uL-Transmission-Bandwidth Transmission-Bandwidth, + dL-Transmission-Bandwidth Transmission-Bandwidth, + iE-Extensions ProtocolExtensionContainer { {FDD-Info-ExtIEs} } OPTIONAL, + ... +} + +FDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-UL-EARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}| + { ID id-DL-EARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}| + { ID id-OffsetOfNbiotChannelNumberToDL-EARFCN CRITICALITY reject EXTENSION OffsetOfNbiotChannelNumberToEARFCN PRESENCE optional}| + { ID id-OffsetOfNbiotChannelNumberToUL-EARFCN CRITICALITY reject EXTENSION OffsetOfNbiotChannelNumberToEARFCN PRESENCE optional}, + ... +} + +ForbiddenInterRATs ::= ENUMERATED { + all, + geran, + utran, + cdma2000, + ..., + geranandutran, + cdma2000andutran + +} + +ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item + +ForbiddenTAs-Item ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + forbiddenTACs ForbiddenTACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenTAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC + +ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item + +ForbiddenLAs-Item ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + forbiddenLACs ForbiddenLACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenLAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC + +Fourframes ::= BIT STRING (SIZE (24)) + +FreqBandIndicator ::= INTEGER (1..256, ...) + +FreqBandIndicatorPriority ::= ENUMERATED { + not-broadcasted, + broadcasted, + ... +} + +-- G + +GBR-QosInformation ::= SEQUENCE { + e-RAB-MaximumBitrateDL BitRate, + e-RAB-MaximumBitrateUL BitRate, + e-RAB-GuaranteedBitrateDL BitRate, + e-RAB-GuaranteedBitrateUL BitRate, + iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL, + ... +} + +GBR-QosInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GlobalENB-ID ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + eNB-ID ENB-ID, + iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL, + ... +} + +GlobalENB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GTPtunnelEndpoint ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEI, + iE-Extensions ProtocolExtensionContainer { {GTPtunnelEndpoint-ExtIEs} } OPTIONAL, + ... +} + +GTPtunnelEndpoint-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GTP-TEI ::= OCTET STRING (SIZE (4)) + +GUGroupIDList ::= SEQUENCE (SIZE (1..maxPools)) OF GU-Group-ID + + +GU-Group-ID ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + mME-Group-ID MME-Group-ID, + iE-Extensions ProtocolExtensionContainer { {GU-Group-ID-ExtIEs} } OPTIONAL, + ... +} + +GU-Group-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +GUMMEI ::= SEQUENCE { + + gU-Group-ID GU-Group-ID, + mME-Code MME-Code, + iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, + ... +} + +GUMMEI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- H + +HandoverReportType ::= ENUMERATED { + hoTooEarly, + hoToWrongCell, + ..., + interRATpingpong +} + +HandoverRestrictionList ::= SEQUENCE { + servingPLMN PLMN-Identity, + equivalentPLMNs EPLMNs OPTIONAL, + forbiddenTAs ForbiddenTAs OPTIONAL, + forbiddenLAs ForbiddenLAs OPTIONAL, + forbiddenInterRATs ForbiddenInterRATs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, + ... +} + +HandoverRestrictionList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +HFN ::= INTEGER (0..1048575) + +HFNModified ::= INTEGER (0..131071) + +HFNforPDCP-SNlength18 ::= INTEGER (0..16383) + +HWLoadIndicator ::= SEQUENCE { + dLHWLoadIndicator LoadIndicator, + uLHWLoadIndicator LoadIndicator, + iE-Extensions ProtocolExtensionContainer { { HWLoadIndicator-ExtIEs} } OPTIONAL, + ... +} + +HWLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- I + +IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16, ...)) + +InterfacesToTrace ::= BIT STRING (SIZE (8)) + +InvokeIndication ::= ENUMERATED{ + abs-information, + ..., + naics-information-start, + naics-information-stop +} + +-- J +-- K + +Key-eNodeB-Star ::= BIT STRING (SIZE(256)) + +-- L + +LAC ::= OCTET STRING (SIZE (2)) --(EXCEPT ('0000'H|'FFFE'H)) + +LastVisitedCell-Item ::= CHOICE { + e-UTRAN-Cell LastVisitedEUTRANCellInformation, + uTRAN-Cell LastVisitedUTRANCellInformation, + gERAN-Cell LastVisitedGERANCellInformation, + ... +} + +LastVisitedEUTRANCellInformation ::= SEQUENCE { + global-Cell-ID ECGI, + cellType CellType, + time-UE-StayedInCell Time-UE-StayedInCell, + iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, + ... +} + +LastVisitedEUTRANCellInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +-- Extension for Rel-11 to support enhanced granularity for time UE stayed in cell -- + { ID id-Time-UE-StayedInCell-EnhancedGranularity CRITICALITY ignore EXTENSION Time-UE-StayedInCell-EnhancedGranularity PRESENCE optional}| + { ID id-HO-cause CRITICALITY ignore EXTENSION Cause PRESENCE optional}, + ... +} + +LastVisitedGERANCellInformation ::= CHOICE { + undefined NULL, + ... +} + +LastVisitedUTRANCellInformation ::= OCTET STRING + +LHN-ID ::= OCTET STRING(SIZE (32..256)) + +Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...} + +LoadIndicator ::= ENUMERATED { + lowLoad, + mediumLoad, + highLoad, + overLoad, + ... +} + +LocationReportingInformation ::= SEQUENCE { + eventType EventType, + reportArea ReportArea, + iE-Extensions ProtocolExtensionContainer { {LocationReportingInformation-ExtIEs} } OPTIONAL, + ... +} + +LocationReportingInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::={ + ... +} + +-- M + +M1PeriodicReporting ::= SEQUENCE { + reportInterval ReportIntervalMDT, + reportAmount ReportAmountMDT, + iE-Extensions ProtocolExtensionContainer { { M1PeriodicReporting-ExtIEs} } OPTIONAL, + ... +} + +M1PeriodicReporting-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M1ReportingTrigger::= ENUMERATED{ + periodic, + a2eventtriggered, + ..., + a2eventtriggered-periodic +} + +M1ThresholdEventA2 ::= SEQUENCE { + measurementThreshold MeasurementThresholdA2, + iE-Extensions ProtocolExtensionContainer { { M1ThresholdEventA2-ExtIEs} } OPTIONAL, + ... +} + +M1ThresholdEventA2-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M3Configuration ::= SEQUENCE { + m3period M3period, + iE-Extensions ProtocolExtensionContainer { { M3Configuration-ExtIEs} } OPTIONAL, + ... +} + +M3Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M3period ::= ENUMERATED {ms100, ms1000, ms10000, ... } + +M4Configuration ::= SEQUENCE { + m4period M4period, + m4-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M4Configuration-ExtIEs} } OPTIONAL, + ... +} + +M4Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + + +M5Configuration ::= SEQUENCE { + m5period M5period, + m5-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M5Configuration-ExtIEs} } OPTIONAL, + ... +} + +M5Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + +M6Configuration ::= SEQUENCE { + m6report-interval M6report-interval, + m6delay-threshold M6delay-threshold OPTIONAL, +-- This IE shall be present if the M6 Links to log IE is set to “uplink” or to “both-uplink-and-downlink” -- + m6-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M6Configuration-ExtIEs} } OPTIONAL, + ... +} + +M6Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M6report-interval ::= ENUMERATED { ms1024, ms2048, ms5120, ms10240, ... } + +M6delay-threshold ::= ENUMERATED { ms30, ms40, ms50, ms60, ms70, ms80, ms90, ms100, ms150, ms300, ms500, ms750, ... } + +M7Configuration ::= SEQUENCE { + m7period M7period, + m7-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M7Configuration-ExtIEs} } OPTIONAL, + ... +} + +M7Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M7period ::= INTEGER(1..60, ...) + +MakeBeforeBreakIndicator::= ENUMERATED {true, ...} + +ManagementBasedMDTallowed ::= ENUMERATED {allowed, ...} + +Masked-IMEISV ::= BIT STRING (SIZE (64)) + +MDT-Activation ::= ENUMERATED { + immediate-MDT-only, + immediate-MDT-and-Trace, + ... +} + +MDT-Configuration ::= SEQUENCE { + mdt-Activation MDT-Activation, + areaScopeOfMDT AreaScopeOfMDT, + measurementsToActivate MeasurementsToActivate, + m1reportingTrigger M1ReportingTrigger, + m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL, +-- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1 + m1periodicReporting M1PeriodicReporting OPTIONAL, +-- Included in case of periodic, or event-triggered periodic reporting for measurement M1 + iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTIONAL, + ... +} + +MDT-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + {ID id-M3Configuration CRITICALITY ignore EXTENSION M3Configuration PRESENCE conditional}| + {ID id-M4Configuration CRITICALITY ignore EXTENSION M4Configuration PRESENCE conditional}| + {ID id-M5Configuration CRITICALITY ignore EXTENSION M5Configuration PRESENCE conditional}| + {ID id-MDT-Location-Info CRITICALITY ignore EXTENSION MDT-Location-Info PRESENCE optional}| + {ID id-SignallingBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional}| + {ID id-M6Configuration CRITICALITY ignore EXTENSION M6Configuration PRESENCE conditional}| + {ID id-M7Configuration CRITICALITY ignore EXTENSION M7Configuration PRESENCE conditional}, + ... +} + +MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMN-Identity + +MDT-Location-Info ::= BIT STRING (SIZE (8)) + +Measurement-ID ::= INTEGER (1..4095, ...) + +MeasurementsToActivate::= BIT STRING (SIZE (8)) + +MeasurementThresholdA2 ::= CHOICE { + threshold-RSRP Threshold-RSRP, + threshold-RSRQ Threshold-RSRQ, + ... +} + +MeNBtoSeNBContainer ::= OCTET STRING + +MME-Group-ID ::= OCTET STRING (SIZE (2)) + +MME-Code ::= OCTET STRING (SIZE (1)) + +MBMS-Service-Area-Identity-List ::= SEQUENCE (SIZE(1.. maxnoofMBMSServiceAreaIdentities)) OF MBMS-Service-Area-Identity + +MBMS-Service-Area-Identity ::= OCTET STRING (SIZE (2)) + +MBSFN-Subframe-Infolist::= SEQUENCE (SIZE(1.. maxnoofMBSFN)) OF MBSFN-Subframe-Info + +MBSFN-Subframe-Info ::= SEQUENCE { + radioframeAllocationPeriod RadioframeAllocationPeriod, + radioframeAllocationOffset RadioframeAllocationOffset, + subframeAllocation SubframeAllocation, + iE-Extensions ProtocolExtensionContainer { { MBSFN-Subframe-Info-ExtIEs } } OPTIONAL, + ... +} + +MBSFN-Subframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +MobilityParametersModificationRange ::= SEQUENCE { + handoverTriggerChangeLowerLimit INTEGER (-20..20), + handoverTriggerChangeUpperLimit INTEGER (-20..20), + ... +} + +MobilityParametersInformation ::= SEQUENCE { + handoverTriggerChange INTEGER (-20..20), + ... +} + +MultibandInfoList ::= SEQUENCE (SIZE(1..maxnoofBands)) OF BandInfo + + +BandInfo ::= SEQUENCE { + freqBandIndicator FreqBandIndicator, + iE-Extensions ProtocolExtensionContainer { { BandInfo-ExtIEs } } OPTIONAL, + ... +} + +BandInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- N + +Neighbour-Information ::= SEQUENCE (SIZE (0..maxnoofNeighbours)) OF SEQUENCE { + eCGI ECGI, + pCI PCI, + eARFCN EARFCN, + iE-Extensions ProtocolExtensionContainer { {Neighbour-Information-ExtIEs} } OPTIONAL, + ... +} + +Neighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-NeighbourTAC CRITICALITY ignore EXTENSION TAC PRESENCE optional}| + { ID id-eARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}, + ... +} + +NextHopChainingCount ::= INTEGER (0..7) + +Number-of-Antennaports ::= ENUMERATED { + an1, + an2, + an4, + ... +} + +-- O + +OffsetOfNbiotChannelNumberToEARFCN ::= ENUMERATED { + minusTen, + minusNine, + minusEight, + minusSeven, + minusSix, + minusFive, + minusFour, + minusThree, + minusTwo, + minusOne, + minusZeroDotFive, + zero, + one, + two, + three, + four, + five, + six, + seven, + eight, + nine, + ... +} + +Oneframe ::= BIT STRING (SIZE (6)) + +-- P + +PA-Values ::= ENUMERATED { + dB-6, + dB-4dot77, + dB-3, + dB-1dot77, + dB0, + dB1, + dB2, + dB3, + ... +} + +PDCP-SN ::= INTEGER (0..4095) + +PDCP-SNExtended ::= INTEGER (0..32767) + +PDCP-SNlength18 ::= INTEGER (0..262143) + +PCI ::= INTEGER (0..503, ...) + +PLMN-Identity ::= OCTET STRING (SIZE(3)) + +Port-Number ::= OCTET STRING (SIZE (2)) + +PRACH-Configuration ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + zeroCorrelationIndex INTEGER (0..15), + highSpeedFlag BOOLEAN, + prach-FreqOffset INTEGER (0..94), + prach-ConfigIndex INTEGER (0..63) OPTIONAL, -- present for TDD -- + iE-Extensions ProtocolExtensionContainer { {PRACH-Configuration-ExtIEs} } OPTIONAL, + ... +} + +PRACH-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +Pre-emptionCapability ::= ENUMERATED { + shall-not-trigger-pre-emption, + may-trigger-pre-emption +} + +Pre-emptionVulnerability ::= ENUMERATED { + not-pre-emptable, + pre-emptable +} + +PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) + +ProSeAuthorized ::= SEQUENCE { + proSeDirectDiscovery ProSeDirectDiscovery OPTIONAL, + proSeDirectCommunication ProSeDirectCommunication OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ProSeAuthorized-ExtIEs} } OPTIONAL, + ... +} + +ProSeAuthorized-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-ProSeUEtoNetworkRelaying CRITICALITY ignore EXTENSION ProSeUEtoNetworkRelaying PRESENCE optional}, + ... +} + +ProSeDirectDiscovery ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +ProSeDirectCommunication ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +ProSeUEtoNetworkRelaying ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +-- Q + +QCI ::= INTEGER (0..255) + +-- R + +RadioframeAllocationOffset ::= INTEGER (0..7, ...) + +RadioframeAllocationPeriod ::= ENUMERATED{ + n1, + n2, + n4, + n8, + n16, + n32, + ... +} + + +RadioResourceStatus ::= SEQUENCE { + dL-GBR-PRB-usage DL-GBR-PRB-usage, + uL-GBR-PRB-usage UL-GBR-PRB-usage, + dL-non-GBR-PRB-usage DL-non-GBR-PRB-usage, + uL-non-GBR-PRB-usage UL-non-GBR-PRB-usage, + dL-Total-PRB-usage DL-Total-PRB-usage, + uL-Total-PRB-usage UL-Total-PRB-usage, + iE-Extensions ProtocolExtensionContainer { {RadioResourceStatus-ExtIEs} } OPTIONAL, + ... +} + +RadioResourceStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + {ID id-DL-scheduling-PDCCH-CCE-usage CRITICALITY ignore EXTENSION DL-scheduling-PDCCH-CCE-usage PRESENCE optional}| + + {ID id-UL-scheduling-PDCCH-CCE-usage CRITICALITY ignore EXTENSION UL-scheduling-PDCCH-CCE-usage PRESENCE optional}, + ... +} + +ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) + +ReceiveStatusOfULPDCPSDUsExtended ::= BIT STRING (SIZE(1..16384)) + +ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ::= BIT STRING (SIZE(1..131072)) + +Registration-Request ::= ENUMERATED { + start, + stop, + ..., + partial-stop, + add +} + +RelativeNarrowbandTxPower ::= SEQUENCE { + + rNTP-PerPRB BIT STRING (SIZE(6..110, ...)), + rNTP-Threshold RNTP-Threshold, + numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, + p-B INTEGER (0..3,...), + pDCCH-InterferenceImpact INTEGER (0..4,...), + iE-Extensions ProtocolExtensionContainer { { RelativeNarrowbandTxPower-ExtIEs} } OPTIONAL, + ... +} + +RelativeNarrowbandTxPower-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-enhancedRNTP CRITICALITY ignore EXTENSION EnhancedRNTP PRESENCE optional }, + ... +} + +ReplacingCellsList ::= SEQUENCE (SIZE(0.. maxCellineNB)) OF ReplacingCellsList-Item + +ReplacingCellsList-Item ::= SEQUENCE { + eCGI ECGI, + ... +} + +ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity} + +ReportArea ::= ENUMERATED{ + ecgi, + ... +} + +ReportCharacteristics ::= BIT STRING (SIZE (32)) + +ReportingPeriodicityCSIR ::= ENUMERATED { + ms5, + ms10, + ms20, + ms40, + ms80, +... +} + +ReportingPeriodicityRSRPMR ::= ENUMERATED { + one-hundred-20-ms, + two-hundred-40-ms, + four-hundred-80-ms, + six-hundred-40-ms, +... +} + +ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60} + +ResumeID ::= CHOICE { + non-truncated BIT STRING(SIZE(40)), + truncated BIT STRING(SIZE(24)), + ... +} + +RNTP-Threshold ::= ENUMERATED { + minusInfinity, + minusEleven, + minusTen, + minusNine, + minusEight, + minusSeven, + minusSix, + minusFive, + minusFour, + minusThree, + minusTwo, + minusOne, + zero, + one, + two, + three, + ... +} + +RRC-Context ::= OCTET STRING + +RRCConnReestabIndicator ::= ENUMERATED { + reconfigurationFailure, handoverFailure, otherFailure, ... +} +-- The values correspond to the values of ReestablishmentCause reported from the UE in the RRCConnectionReestablishmentRequest, as defined in TS 36.331 [9] + +RRCConnSetupIndicator::= ENUMERATED { + rrcConnSetup, + ... +} + +RSRPMeasurementResult ::= SEQUENCE (SIZE(1..maxCellReport)) OF + SEQUENCE { + rSRPCellID ECGI, + rSRPMeasured INTEGER (0..97, ...), + iE-Extensions ProtocolExtensionContainer { { RSRPMeasurementResult-ExtIEs} } OPTIONAL, + ... + } + +RSRPMeasurementResult-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +RSRPMRList ::= SEQUENCE (SIZE(1..maxUEReport)) OF + SEQUENCE { + rSRPMeasurementResult RSRPMeasurementResult, + iE-Extensions ProtocolExtensionContainer { { RSRPMRList-ExtIEs} } OPTIONAL, + ... + } + +RSRPMRList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-UEID CRITICALITY ignore EXTENSION UEID PRESENCE optional}, + ... +} + +-- S + +S1TNLLoadIndicator ::= SEQUENCE { + dLS1TNLLoadIndicator LoadIndicator, + uLS1TNLLoadIndicator LoadIndicator, + iE-Extensions ProtocolExtensionContainer { { S1TNLLoadIndicator-ExtIEs} } OPTIONAL, + ... +} + +S1TNLLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +SCGChangeIndication ::= ENUMERATED {pDCPCountWrapAround, pSCellChange, other, ...} + +SeNBSecurityKey ::= BIT STRING (SIZE(256)) + +SeNBtoMeNBContainer ::= OCTET STRING + + +ServedCells ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { + servedCellInfo ServedCell-Information, + neighbour-Info Neighbour-Information OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ServedCell-ExtIEs} } OPTIONAL, + ... +} + +ServedCell-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedCell-Information ::= SEQUENCE { + pCI PCI, + cellId ECGI, + tAC TAC, + broadcastPLMNs BroadcastPLMNs-Item, + eUTRA-Mode-Info EUTRA-Mode-Info, + iE-Extensions ProtocolExtensionContainer { {ServedCell-Information-ExtIEs} } OPTIONAL, + ... +} + +ServedCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-Number-of-Antennaports CRITICALITY ignore EXTENSION Number-of-Antennaports PRESENCE optional}| + { ID id-PRACH-Configuration CRITICALITY ignore EXTENSION PRACH-Configuration PRESENCE optional}| + { ID id-MBSFN-Subframe-Info CRITICALITY ignore EXTENSION MBSFN-Subframe-Infolist PRESENCE optional}| + { ID id-CSG-Id CRITICALITY ignore EXTENSION CSG-Id PRESENCE optional}| + { ID id-MBMS-Service-Area-List CRITICALITY ignore EXTENSION MBMS-Service-Area-Identity-List PRESENCE optional}| + { ID id-MultibandInfoList CRITICALITY ignore EXTENSION MultibandInfoList PRESENCE optional}| + { ID id-FreqBandIndicatorPriority CRITICALITY ignore EXTENSION FreqBandIndicatorPriority PRESENCE optional}| + { ID id-BandwidthReducedSI CRITICALITY ignore EXTENSION BandwidthReducedSI PRESENCE optional}, + ... +} + +SIPTOBearerDeactivationIndication ::= ENUMERATED { + true, + ... +} + +ShortMAC-I ::= BIT STRING (SIZE(16)) + +SourceOfUEActivityBehaviourInformation ::= ENUMERATED { + subscription-information, + statistics, + ... +} + +SpecialSubframe-Info ::= SEQUENCE { + specialSubframePatterns SpecialSubframePatterns, + cyclicPrefixDL CyclicPrefixDL, + cyclicPrefixUL CyclicPrefixUL, + iE-Extensions ProtocolExtensionContainer { { SpecialSubframe-Info-ExtIEs} } OPTIONAL, + ... +} + +SpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +SpecialSubframePatterns ::= ENUMERATED { + ssp0, + ssp1, + ssp2, + ssp3, + ssp4, + ssp5, + ssp6, + ssp7, + ssp8, + ... +} + +SubbandCQI ::= SEQUENCE { + subbandCQICodeword0 SubbandCQICodeword0, + subbandCQICodeword1 SubbandCQICodeword1 OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { SubbandCQI-ExtIEs} } OPTIONAL, + ... +} + +SRVCCOperationPossible ::= ENUMERATED { + possible, + ... +} + +SubbandCQI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +SubbandCQICodeword0 ::= CHOICE { + four-bitCQI INTEGER (0..15, ...), + two-bitSubbandDifferentialCQI INTEGER (0..3, ...), + two-bitDifferentialCQI INTEGER (0..3, ...), + ... +} +SubbandCQICodeword1 ::= CHOICE { + four-bitCQI INTEGER (0..15, ...), + three-bitSpatialDifferentialCQI INTEGER (0..7, ...), + two-bitSubbandDifferentialCQI INTEGER (0..3, ...), + two-bitDifferentialCQI INTEGER (0..3, ...), + ... +} + +SubbandCQIList ::= SEQUENCE (SIZE(1.. maxSubband)) OF SubbandCQIItem + +SubbandCQIItem ::= SEQUENCE { + subbandCQI SubbandCQI, + subbandIndex INTEGER (0..27,...), + iE-Extensions ProtocolExtensionContainer { { SubbandCQIItem-ExtIEs} } OPTIONAL, + ... +} + +SubbandCQIItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +SubbandSize ::= ENUMERATED { + size2, + size3, + size4, + size6, + size8, + ... +} + +SubscriberProfileIDforRFP ::= INTEGER (1..256) + +SubframeAllocation ::= CHOICE { + oneframe Oneframe, + fourframes Fourframes, + ... +} + +SubframeAssignment ::= ENUMERATED { + sa0, + sa1, + sa2, + sa3, + sa4, + sa5, + sa6, + ... +} + + +-- T + +TABasedMDT::= SEQUENCE { + tAListforMDT TAListforMDT, + iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TABasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAC ::= OCTET STRING (SIZE (2)) + +TAIBasedMDT ::= SEQUENCE { + tAIListforMDT TAIListforMDT, + iE-Extensions ProtocolExtensionContainer { {TAIBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TAIBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAIListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAI-Item + +TAI-Item ::= SEQUENCE { + tAC TAC, + pLMN-Identity PLMN-Identity, + iE-Extensions ProtocolExtensionContainer { { TAI-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC + +TargetCellInUTRAN ::= OCTET STRING -- This IE is to be encoded according to the UTRAN Cell ID in the Last Visited UTRAN Cell Information IE in TS 25.413 [24] + +TargeteNBtoSource-eNBTransparentContainer ::= OCTET STRING + +TDD-Info ::= SEQUENCE { + eARFCN EARFCN, + transmission-Bandwidth Transmission-Bandwidth, + subframeAssignment SubframeAssignment, + specialSubframe-Info SpecialSubframe-Info, + iE-Extensions ProtocolExtensionContainer { {TDD-Info-ExtIEs} } OPTIONAL, + ... +} +TDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-AdditionalSpecialSubframe-Info CRITICALITY ignore EXTENSION AdditionalSpecialSubframe-Info PRESENCE optional}| + { ID id-eARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}| + { ID id-AdditionalSpecialSubframeExtension-Info CRITICALITY ignore EXTENSION AdditionalSpecialSubframeExtension-Info PRESENCE optional}, + ... +} + +Threshold-RSRP ::= INTEGER(0..97) + +Threshold-RSRQ ::= INTEGER(0..34) + +TimeToWait ::= ENUMERATED { + v1s, + v2s, + v5s, + v10s, + v20s, + v60s, + ... +} + +Time-UE-StayedInCell ::= INTEGER (0..4095) + +Time-UE-StayedInCell-EnhancedGranularity ::= INTEGER (0..40950) + +TraceActivation ::= SEQUENCE { + eUTRANTraceID EUTRANTraceID, + interfacesToTrace InterfacesToTrace, + traceDepth TraceDepth, + traceCollectionEntityIPAddress TraceCollectionEntityIPAddress, + iE-Extensions ProtocolExtensionContainer { {TraceActivation-ExtIEs} } OPTIONAL, + ... +} + +TraceActivation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional}, + ... +} + +TraceCollectionEntityIPAddress ::= BIT STRING (SIZE(1..160, ...)) + +TraceDepth ::= ENUMERATED { + minimum, + medium, + maximum, + minimumWithoutVendorSpecificExtension, + mediumWithoutVendorSpecificExtension, + maximumWithoutVendorSpecificExtension, + ... +} + +Transmission-Bandwidth ::= ENUMERATED { + bw6, + bw15, + bw25, + bw50, + bw75, + bw100, + ..., + bw1 +} + +TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) + +TunnelInformation ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + uDP-Port-Number Port-Number OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {Tunnel-Information-ExtIEs} } OPTIONAL, + ... +} + +Tunnel-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + + +-- U + +UEAggregateMaximumBitRate ::= SEQUENCE { + uEaggregateMaximumBitRateDownlink BitRate, + uEaggregateMaximumBitRateUplink BitRate, + iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrate-ExtIEs} } OPTIONAL, + ... +} + +UEAggregate-MaximumBitrate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UE-ContextKeptIndicator ::= ENUMERATED { + true, + ... +} + +UEID ::= BIT STRING (SIZE (16)) + +UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item + +UE-HistoryInformationFromTheUE ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the VisitedCellInfoList field contained in the UEInformationResponse message as defined in TS 36.331 [9] + +UE-S1AP-ID ::= INTEGER (0.. 4294967295) + +UE-X2AP-ID ::= INTEGER (0..4095) + +UE-X2AP-ID-Extension ::= INTEGER (0..4095, ...) + +UE-RLF-Report-Container::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the RLF-Report-r9 field contained in the UEInformationResponse message as defined in TS 36.331 [9] + +UE-RLF-Report-Container-for-extended-bands ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the RLF-Report-v9e0 field contained in the UEInformationResponse message as defined in TS 36.331 [9] + +UESecurityCapabilities ::= SEQUENCE { + encryptionAlgorithms EncryptionAlgorithms, + integrityProtectionAlgorithms IntegrityProtectionAlgorithms, + iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL, +... +} + +UESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UESidelinkAggregateMaximumBitRate ::= SEQUENCE { + uESidelinkAggregateMaximumBitRate BitRate, + iE-Extensions ProtocolExtensionContainer { {UE-Sidelink-Aggregate-MaximumBitRate-ExtIEs} } OPTIONAL, + ... +} + +UE-Sidelink-Aggregate-MaximumBitRate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UL-GBR-PRB-usage::= INTEGER (0..100) + +UL-HighInterferenceIndicationInfo ::= SEQUENCE (SIZE(1..maxCellineNB)) OF UL-HighInterferenceIndicationInfo-Item + +UL-HighInterferenceIndicationInfo-Item ::= SEQUENCE { + target-Cell-ID ECGI, + ul-interferenceindication UL-HighInterferenceIndication, + iE-Extensions ProtocolExtensionContainer { { UL-HighInterferenceIndicationInfo-Item-ExtIEs} } OPTIONAL, + ... +} + +UL-HighInterferenceIndicationInfo-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UL-HighInterferenceIndication ::= BIT STRING (SIZE(1..110, ...)) + +UL-InterferenceOverloadIndication ::= SEQUENCE (SIZE(1..maxnoofPRBs)) OF UL-InterferenceOverloadIndication-Item + +UL-InterferenceOverloadIndication-Item ::= ENUMERATED { + high-interference, + medium-interference, + low-interference, + ... +} + +UL-non-GBR-PRB-usage::= INTEGER (0..100) + +UL-scheduling-PDCCH-CCE-usage::= INTEGER (0..100) + +UL-Total-PRB-usage::= INTEGER (0..100) + +UsableABSInformation ::= CHOICE { + fdd UsableABSInformationFDD, + tdd UsableABSInformationTDD, + ... +} + +UsableABSInformationFDD ::= SEQUENCE { + usable-abs-pattern-info BIT STRING (SIZE(40)), + iE-Extensions ProtocolExtensionContainer { { UsableABSInformationFDD-ExtIEs} } OPTIONAL, + ... +} + +UsableABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UsableABSInformationTDD ::= SEQUENCE { + usaable-abs-pattern-info BIT STRING (SIZE(1..70, ...)), + iE-Extensions ProtocolExtensionContainer { { UsableABSInformationTDD-ExtIEs} } OPTIONAL, + ... +} + +UsableABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- V + +V2XServicesAuthorized ::= SEQUENCE { + vehicleUE VehicleUE OPTIONAL, +pedestrianUE PedestrianUE OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {V2XServicesAuthorized-ExtIEs} } OPTIONAL, + ... +} + +V2XServicesAuthorized-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +VehicleUE ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +PedestrianUE ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +-- W + +WidebandCQI ::= SEQUENCE { + widebandCQICodeword0 INTEGER (0..15, ...), + widebandCQICodeword1 WidebandCQICodeword1 OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { WidebandCQI-ExtIEs} } OPTIONAL, + ... +} + +WidebandCQI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +WidebandCQICodeword1::= CHOICE { + four-bitCQI INTEGER (0..15, ...), + three-bitSpatialDifferentialCQI INTEGER (0..7, ...), + ... +} + +WTID ::= CHOICE { + wTID-Type1 WTID-Type1, + wTID-Type2 WTID-Long-Type2, + ... +} + +WTID-Type1 ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + shortWTID BIT STRING (SIZE(24)), + ... +} + +WTID-Long-Type2 ::= BIT STRING (SIZE(48)) + +WT-UE-XwAP-ID ::= OCTET STRING (SIZE (3)) + +-- X + +X2BenefitValue ::= INTEGER (1..8, ...) + +-- Y +-- Z + +END + + +-- ************************************************************** +-- +-- Common definitions +-- +-- ************************************************************** + +X2AP-CommonDataTypes { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-CommonDataTypes (3) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- Extension constants +-- +-- ************************************************************** + +maxPrivateIEs INTEGER ::= 65535 +maxProtocolExtensions INTEGER ::= 65535 +maxProtocolIEs INTEGER ::= 65535 + +-- ************************************************************** +-- +-- Common Data Types +-- +-- ************************************************************** + +Criticality ::= ENUMERATED { reject, ignore, notify } + +Presence ::= ENUMERATED { optional, conditional, mandatory } + +PrivateIE-ID ::= CHOICE { + local INTEGER (0.. maxPrivateIEs), + global OBJECT IDENTIFIER +} + +ProcedureCode ::= INTEGER (0..255) + + +ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs) + + +TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome} + +END + + +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +X2AP-Constants { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Constants (4) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + ProcedureCode, + ProtocolIE-ID +FROM X2AP-CommonDataTypes; + +-- ************************************************************** +-- +-- Elementary Procedures +-- +-- ************************************************************** + +id-handoverPreparation ProcedureCode ::= 0 +id-handoverCancel ProcedureCode ::= 1 +id-loadIndication ProcedureCode ::= 2 +id-errorIndication ProcedureCode ::= 3 +id-snStatusTransfer ProcedureCode ::= 4 +id-uEContextRelease ProcedureCode ::= 5 +id-x2Setup ProcedureCode ::= 6 +id-reset ProcedureCode ::= 7 +id-eNBConfigurationUpdate ProcedureCode ::= 8 +id-resourceStatusReportingInitiation ProcedureCode ::= 9 +id-resourceStatusReporting ProcedureCode ::= 10 +id-privateMessage ProcedureCode ::= 11 +id-mobilitySettingsChange ProcedureCode ::= 12 +id-rLFIndication ProcedureCode ::= 13 +id-handoverReport ProcedureCode ::= 14 +id-cellActivation ProcedureCode ::= 15 +id-x2Release ProcedureCode ::= 16 +id-x2APMessageTransfer ProcedureCode ::= 17 +id-x2Removal ProcedureCode ::= 18 +id-seNBAdditionPreparation ProcedureCode ::= 19 +id-seNBReconfigurationCompletion ProcedureCode ::= 20 +id-meNBinitiatedSeNBModificationPreparation ProcedureCode ::= 21 +id-seNBinitiatedSeNBModification ProcedureCode ::= 22 +id-meNBinitiatedSeNBRelease ProcedureCode ::= 23 +id-seNBinitiatedSeNBRelease ProcedureCode ::= 24 +id-seNBCounterCheck ProcedureCode ::= 25 +id-retrieveUEContext ProcedureCode ::= 26 + + +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** + +maxEARFCN INTEGER ::= 65535 +maxEARFCNPlusOne INTEGER ::= 65536 +newmaxEARFCN INTEGER ::= 262143 +maxInterfaces INTEGER ::= 16 +maxCellineNB INTEGER ::= 256 +maxnoofBands INTEGER ::= 16 +maxnoofBearers INTEGER ::= 256 +maxNrOfErrors INTEGER ::= 256 +maxnoofPDCP-SN INTEGER ::= 16 +maxnoofEPLMNs INTEGER ::= 15 +maxnoofEPLMNsPlusOne INTEGER ::= 16 +maxnoofForbLACs INTEGER ::= 4096 +maxnoofForbTACs INTEGER ::= 4096 +maxnoofBPLMNs INTEGER ::= 6 +maxnoofNeighbours INTEGER ::= 512 +maxnoofPRBs INTEGER ::= 110 +maxPools INTEGER ::= 16 +maxnoofCells INTEGER ::= 16 +maxnoofMBSFN INTEGER ::= 8 +maxFailedMeasObjects INTEGER ::= 32 +maxnoofCellIDforMDT INTEGER ::= 32 +maxnoofTAforMDT INTEGER ::= 8 +maxnoofMBMSServiceAreaIdentities INTEGER ::= 256 +maxnoofMDTPLMNs INTEGER ::= 16 +maxnoofCoMPHypothesisSet INTEGER ::= 256 +maxnoofCoMPCells INTEGER ::= 32 +maxUEReport INTEGER ::= 128 +maxCellReport INTEGER ::= 9 +maxnoofPA INTEGER ::= 3 +maxCSIProcess INTEGER ::= 4 +maxCSIReport INTEGER ::= 2 +maxSubband INTEGER ::= 14 + +-- ************************************************************** +-- +-- IEs +-- +-- ************************************************************** + +id-E-RABs-Admitted-Item ProtocolIE-ID ::= 0 +id-E-RABs-Admitted-List ProtocolIE-ID ::= 1 +id-E-RAB-Item ProtocolIE-ID ::= 2 +id-E-RABs-NotAdmitted-List ProtocolIE-ID ::= 3 +id-E-RABs-ToBeSetup-Item ProtocolIE-ID ::= 4 +id-Cause ProtocolIE-ID ::= 5 +id-CellInformation ProtocolIE-ID ::= 6 +id-CellInformation-Item ProtocolIE-ID ::= 7 +id-New-eNB-UE-X2AP-ID ProtocolIE-ID ::= 9 +id-Old-eNB-UE-X2AP-ID ProtocolIE-ID ::= 10 +id-TargetCell-ID ProtocolIE-ID ::= 11 +id-TargeteNBtoSource-eNBTransparentContainer ProtocolIE-ID ::= 12 +id-TraceActivation ProtocolIE-ID ::= 13 +id-UE-ContextInformation ProtocolIE-ID ::= 14 +id-UE-HistoryInformation ProtocolIE-ID ::= 15 +id-UE-X2AP-ID ProtocolIE-ID ::= 16 +id-CriticalityDiagnostics ProtocolIE-ID ::= 17 +id-E-RABs-SubjectToStatusTransfer-List ProtocolIE-ID ::= 18 +id-E-RABs-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 19 +id-ServedCells ProtocolIE-ID ::= 20 +id-GlobalENB-ID ProtocolIE-ID ::= 21 +id-TimeToWait ProtocolIE-ID ::= 22 +id-GUMMEI-ID ProtocolIE-ID ::= 23 +id-GUGroupIDList ProtocolIE-ID ::= 24 +id-ServedCellsToAdd ProtocolIE-ID ::= 25 +id-ServedCellsToModify ProtocolIE-ID ::= 26 +id-ServedCellsToDelete ProtocolIE-ID ::= 27 +id-Registration-Request ProtocolIE-ID ::= 28 +id-CellToReport ProtocolIE-ID ::= 29 +id-ReportingPeriodicity ProtocolIE-ID ::= 30 +id-CellToReport-Item ProtocolIE-ID ::= 31 +id-CellMeasurementResult ProtocolIE-ID ::= 32 +id-CellMeasurementResult-Item ProtocolIE-ID ::= 33 +id-GUGroupIDToAddList ProtocolIE-ID ::= 34 +id-GUGroupIDToDeleteList ProtocolIE-ID ::= 35 +id-SRVCCOperationPossible ProtocolIE-ID ::= 36 +id-Measurement-ID ProtocolIE-ID ::= 37 +id-ReportCharacteristics ProtocolIE-ID ::= 38 +id-ENB1-Measurement-ID ProtocolIE-ID ::= 39 +id-ENB2-Measurement-ID ProtocolIE-ID ::= 40 +id-Number-of-Antennaports ProtocolIE-ID ::= 41 +id-CompositeAvailableCapacityGroup ProtocolIE-ID ::= 42 +id-ENB1-Cell-ID ProtocolIE-ID ::= 43 +id-ENB2-Cell-ID ProtocolIE-ID ::= 44 +id-ENB2-Proposed-Mobility-Parameters ProtocolIE-ID ::= 45 +id-ENB1-Mobility-Parameters ProtocolIE-ID ::= 46 +id-ENB2-Mobility-Parameters-Modification-Range ProtocolIE-ID ::= 47 +id-FailureCellPCI ProtocolIE-ID ::= 48 +id-Re-establishmentCellECGI ProtocolIE-ID ::= 49 +id-FailureCellCRNTI ProtocolIE-ID ::= 50 +id-ShortMAC-I ProtocolIE-ID ::= 51 +id-SourceCellECGI ProtocolIE-ID ::= 52 +id-FailureCellECGI ProtocolIE-ID ::= 53 +id-HandoverReportType ProtocolIE-ID ::= 54 +id-PRACH-Configuration ProtocolIE-ID ::= 55 +id-MBSFN-Subframe-Info ProtocolIE-ID ::= 56 +id-ServedCellsToActivate ProtocolIE-ID ::= 57 +id-ActivatedCellList ProtocolIE-ID ::= 58 +id-DeactivationIndication ProtocolIE-ID ::= 59 +id-UE-RLF-Report-Container ProtocolIE-ID ::= 60 +id-ABSInformation ProtocolIE-ID ::= 61 +id-InvokeIndication ProtocolIE-ID ::= 62 +id-ABS-Status ProtocolIE-ID ::= 63 +id-PartialSuccessIndicator ProtocolIE-ID ::= 64 +id-MeasurementInitiationResult-List ProtocolIE-ID ::= 65 +id-MeasurementInitiationResult-Item ProtocolIE-ID ::= 66 +id-MeasurementFailureCause-Item ProtocolIE-ID ::= 67 +id-CompleteFailureCauseInformation-List ProtocolIE-ID ::= 68 +id-CompleteFailureCauseInformation-Item ProtocolIE-ID ::= 69 +id-CSG-Id ProtocolIE-ID ::= 70 +id-CSGMembershipStatus ProtocolIE-ID ::= 71 +id-MDTConfiguration ProtocolIE-ID ::= 72 +id-ManagementBasedMDTallowed ProtocolIE-ID ::= 74 +id-RRCConnSetupIndicator ProtocolIE-ID ::= 75 +id-NeighbourTAC ProtocolIE-ID ::= 76 +id-Time-UE-StayedInCell-EnhancedGranularity ProtocolIE-ID ::= 77 +id-RRCConnReestabIndicator ProtocolIE-ID ::= 78 +id-MBMS-Service-Area-List ProtocolIE-ID ::= 79 +id-HO-cause ProtocolIE-ID ::= 80 +id-TargetCellInUTRAN ProtocolIE-ID ::= 81 +id-MobilityInformation ProtocolIE-ID ::= 82 +id-SourceCellCRNTI ProtocolIE-ID ::= 83 +id-MultibandInfoList ProtocolIE-ID ::= 84 +id-M3Configuration ProtocolIE-ID ::= 85 +id-M4Configuration ProtocolIE-ID ::= 86 +id-M5Configuration ProtocolIE-ID ::= 87 +id-MDT-Location-Info ProtocolIE-ID ::= 88 +id-ManagementBasedMDTPLMNList ProtocolIE-ID ::= 89 +id-SignallingBasedMDTPLMNList ProtocolIE-ID ::= 90 +id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID ::= 91 +id-ULCOUNTValueExtended ProtocolIE-ID ::= 92 +id-DLCOUNTValueExtended ProtocolIE-ID ::= 93 +id-eARFCNExtension ProtocolIE-ID ::= 94 +id-UL-EARFCNExtension ProtocolIE-ID ::= 95 +id-DL-EARFCNExtension ProtocolIE-ID ::= 96 +id-AdditionalSpecialSubframe-Info ProtocolIE-ID ::= 97 +id-Masked-IMEISV ProtocolIE-ID ::= 98 +id-IntendedULDLConfiguration ProtocolIE-ID ::= 99 +id-ExtendedULInterferenceOverloadInfo ProtocolIE-ID ::= 100 +id-RNL-Header ProtocolIE-ID ::= 101 +id-x2APMessage ProtocolIE-ID ::= 102 +id-ProSeAuthorized ProtocolIE-ID ::= 103 +id-ExpectedUEBehaviour ProtocolIE-ID ::= 104 +id-UE-HistoryInformationFromTheUE ProtocolIE-ID ::= 105 +id-DynamicDLTransmissionInformation ProtocolIE-ID ::= 106 +id-UE-RLF-Report-Container-for-extended-bands ProtocolIE-ID ::= 107 +id-CoMPInformation ProtocolIE-ID ::= 108 +id-ReportingPeriodicityRSRPMR ProtocolIE-ID ::= 109 +id-RSRPMRList ProtocolIE-ID ::= 110 +id-MeNB-UE-X2AP-ID ProtocolIE-ID ::= 111 +id-SeNB-UE-X2AP-ID ProtocolIE-ID ::= 112 +id-UE-SecurityCapabilities ProtocolIE-ID ::= 113 +id-SeNBSecurityKey ProtocolIE-ID ::= 114 +id-SeNBUEAggregateMaximumBitRate ProtocolIE-ID ::= 115 +id-ServingPLMN ProtocolIE-ID ::= 116 +id-E-RABs-ToBeAdded-List ProtocolIE-ID ::= 117 +id-E-RABs-ToBeAdded-Item ProtocolIE-ID ::= 118 +id-MeNBtoSeNBContainer ProtocolIE-ID ::= 119 +id-E-RABs-Admitted-ToBeAdded-List ProtocolIE-ID ::= 120 +id-E-RABs-Admitted-ToBeAdded-Item ProtocolIE-ID ::= 121 +id-SeNBtoMeNBContainer ProtocolIE-ID ::= 122 +id-ResponseInformationSeNBReconfComp ProtocolIE-ID ::= 123 +id-UE-ContextInformationSeNBModReq ProtocolIE-ID ::= 124 +id-E-RABs-ToBeAdded-ModReqItem ProtocolIE-ID ::= 125 +id-E-RABs-ToBeModified-ModReqItem ProtocolIE-ID ::= 126 +id-E-RABs-ToBeReleased-ModReqItem ProtocolIE-ID ::= 127 +id-E-RABs-Admitted-ToBeAdded-ModAckList ProtocolIE-ID ::= 128 +id-E-RABs-Admitted-ToBeModified-ModAckList ProtocolIE-ID ::= 129 +id-E-RABs-Admitted-ToBeReleased-ModAckList ProtocolIE-ID ::= 130 +id-E-RABs-Admitted-ToBeAdded-ModAckItem ProtocolIE-ID ::= 131 +id-E-RABs-Admitted-ToBeModified-ModAckItem ProtocolIE-ID ::= 132 +id-E-RABs-Admitted-ToBeReleased-ModAckItem ProtocolIE-ID ::= 133 +id-E-RABs-ToBeReleased-ModReqd ProtocolIE-ID ::= 134 +id-E-RABs-ToBeReleased-ModReqdItem ProtocolIE-ID ::= 135 +id-SCGChangeIndication ProtocolIE-ID ::= 136 +id-E-RABs-ToBeReleased-List-RelReq ProtocolIE-ID ::= 137 +id-E-RABs-ToBeReleased-RelReqItem ProtocolIE-ID ::= 138 +id-E-RABs-ToBeReleased-List-RelConf ProtocolIE-ID ::= 139 +id-E-RABs-ToBeReleased-RelConfItem ProtocolIE-ID ::= 140 +id-E-RABs-SubjectToCounterCheck-List ProtocolIE-ID ::= 141 +id-E-RABs-SubjectToCounterCheckItem ProtocolIE-ID ::= 142 +id-CoverageModificationList ProtocolIE-ID ::= 143 +id-ReportingPeriodicityCSIR ProtocolIE-ID ::= 145 +id-CSIReportList ProtocolIE-ID ::= 146 +id-UEID ProtocolIE-ID ::= 147 +id-enhancedRNTP ProtocolIE-ID ::= 148 +id-ProSeUEtoNetworkRelaying ProtocolIE-ID ::= 149 +id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ProtocolIE-ID ::= 150 +id-ULCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 151 +id-DLCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 152 +id-UE-ContextReferenceAtSeNB ProtocolIE-ID ::= 153 +id-UE-ContextKeptIndicator ProtocolIE-ID ::= 154 +id-New-eNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 155 +id-Old-eNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 156 +id-MeNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 157 +id-SeNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 158 +id-LHN-ID ProtocolIE-ID ::= 159 +id-FreqBandIndicatorPriority ProtocolIE-ID ::= 160 +id-M6Configuration ProtocolIE-ID ::= 161 +id-M7Configuration ProtocolIE-ID ::= 162 +id-Tunnel-Information-for-BBF ProtocolIE-ID ::= 163 +id-SIPTO-BearerDeactivationIndication ProtocolIE-ID ::= 164 +id-GW-TransportLayerAddress ProtocolIE-ID ::= 165 +id-Correlation-ID ProtocolIE-ID ::= 166 +id-SIPTO-Correlation-ID ProtocolIE-ID ::= 167 +id-SIPTO-L-GW-TransportLayerAddress ProtocolIE-ID ::= 168 +id-X2RemovalThreshold ProtocolIE-ID ::= 169 +id-CellReportingIndicator ProtocolIE-ID ::= 170 +id-BearerType ProtocolIE-ID ::= 171 +id-resumeID ProtocolIE-ID ::= 172 +id-UE-ContextInformationRetrieve ProtocolIE-ID ::= 173 +id-E-RABs-ToBeSetupRetrieve-Item ProtocolIE-ID ::= 174 +id-NewEUTRANCellIdentifier ProtocolIE-ID ::= 175 +id-V2XServicesAuthorized ProtocolIE-ID ::= 176 +id-OffsetOfNbiotChannelNumberToDL-EARFCN ProtocolIE-ID ::= 177 +id-OffsetOfNbiotChannelNumberToUL-EARFCN ProtocolIE-ID ::= 178 +id-AdditionalSpecialSubframeExtension-Info ProtocolIE-ID ::= 179 +id-BandwidthReducedSI ProtocolIE-ID ::= 180 +id-MakeBeforeBreakIndicator ProtocolIE-ID ::= 181 +id-UE-ContextReferenceAtWT ProtocolIE-ID ::= 182 +id-WT-UE-ContextKeptIndicator ProtocolIE-ID ::= 183 +id-UESidelinkAggregateMaximumBitRate ProtocolIE-ID ::= 184 +id-uL-GTPtunnelEndpoint ProtocolIE-ID ::= 185 +id-DL-scheduling-PDCCH-CCE-usage ProtocolIE-ID ::= 193 +id-UL-scheduling-PDCCH-CCE-usage ProtocolIE-ID ::= 194 + +END + + +-- ************************************************************** +-- +-- Container definitions +-- +-- ************************************************************** + +X2AP-Containers { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Containers (5) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + maxPrivateIEs, + maxProtocolExtensions, + maxProtocolIEs, + Criticality, + Presence, + PrivateIE-ID, + ProtocolIE-ID +FROM X2AP-CommonDataTypes; + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +X2AP-PROTOCOL-IES ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +X2AP-PROTOCOL-IES-PAIR ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &firstCriticality Criticality, + &FirstValue, + &secondCriticality Criticality, + &SecondValue, + &presence Presence +} +WITH SYNTAX { + ID &id + FIRST CRITICALITY &firstCriticality + FIRST TYPE &FirstValue + SECOND CRITICALITY &secondCriticality + SECOND TYPE &SecondValue + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol Extensions +-- +-- ************************************************************** + +X2AP-PROTOCOL-EXTENSION ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Extension, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + EXTENSION &Extension + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Private IEs +-- +-- ************************************************************** + +X2AP-PRIVATE-IES ::= CLASS { + &id PrivateIE-ID, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Container for Protocol IEs +-- +-- ************************************************************** + +ProtocolIE-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Single-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Field {X2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-IES.&id ({IEsSetParam}), + criticality X2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), + value X2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Protocol IE Pairs +-- +-- ************************************************************** + +ProtocolIE-ContainerPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-FieldPair {{IEsSetParam}} + +ProtocolIE-FieldPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), + firstCriticality X2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), + firstValue X2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), + secondCriticality X2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), + secondValue X2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container Lists for Protocol IE Containers +-- +-- ************************************************************** + +ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-Container {{IEsSetParam}} + +ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-ContainerPair {{IEsSetParam}} + +-- ************************************************************** +-- +-- Container for Protocol Extensions +-- +-- ************************************************************** + +ProtocolExtensionContainer {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= + SEQUENCE (SIZE (1..maxProtocolExtensions)) OF + ProtocolExtensionField {{ExtensionSetParam}} + +ProtocolExtensionField {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), + criticality X2AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), + extensionValue X2AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Private IEs +-- +-- ************************************************************** + +PrivateIE-Container {X2AP-PRIVATE-IES : IEsSetParam} ::= + SEQUENCE (SIZE (1..maxPrivateIEs)) OF + PrivateIE-Field {{IEsSetParam}} + +PrivateIE-Field {X2AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { + id X2AP-PRIVATE-IES.&id ({IEsSetParam}), + criticality X2AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), + value X2AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) +} + +END diff --git a/openair2/X2AP/MESSAGES/ASN1/R15/x2ap-15.1.0.asn1 b/openair2/X2AP/MESSAGES/ASN1/R15/x2ap-15.1.0.asn1 new file mode 100755 index 0000000000..04de5ca5c5 --- /dev/null +++ b/openair2/X2AP/MESSAGES/ASN1/R15/x2ap-15.1.0.asn1 @@ -0,0 +1,7222 @@ +-- ************************************************************** +-- +-- Elementary Procedure definitions +-- +-- ************************************************************** + +X2AP-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Descriptions (0) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + ProcedureCode + +FROM X2AP-CommonDataTypes + + CellActivationRequest, + CellActivationResponse, + CellActivationFailure, + ENBConfigurationUpdate, + ENBConfigurationUpdateAcknowledge, + ENBConfigurationUpdateFailure, + ErrorIndication, + HandoverCancel, + HandoverReport, + HandoverPreparationFailure, + HandoverRequest, + HandoverRequestAcknowledge, + LoadInformation, + PrivateMessage, + ResetRequest, + ResetResponse, + ResourceStatusFailure, + ResourceStatusRequest, + ResourceStatusResponse, + ResourceStatusUpdate, + RLFIndication, + SNStatusTransfer, + UEContextRelease, + X2SetupFailure, + X2SetupRequest, + X2SetupResponse, + MobilityChangeRequest, + MobilityChangeAcknowledge, + MobilityChangeFailure, + X2Release, + X2APMessageTransfer, + SeNBAdditionRequest, + SeNBAdditionRequestAcknowledge, + SeNBAdditionRequestReject, + SeNBReconfigurationComplete, + SeNBModificationRequest, + SeNBModificationRequestAcknowledge, + SeNBModificationRequestReject, + SeNBModificationRequired, + SeNBModificationConfirm, + SeNBModificationRefuse, + SeNBReleaseRequest, + SeNBReleaseRequired, + SeNBReleaseConfirm, + SeNBCounterCheckRequest, + X2RemovalFailure, + X2RemovalRequest, + X2RemovalResponse, + RetrieveUEContextRequest, + RetrieveUEContextResponse, + RetrieveUEContextFailure, + SgNBAdditionRequest, + SgNBAdditionRequestAcknowledge, + SgNBAdditionRequestReject, + SgNBReconfigurationComplete, + SgNBModificationRequest, + SgNBModificationRequestAcknowledge, + SgNBModificationRequestReject, + SgNBModificationRequired, + SgNBModificationConfirm, + SgNBModificationRefuse, + SgNBReleaseRequest, + SgNBReleaseRequestAcknowledge, + SgNBReleaseRequestReject, + SgNBReleaseRequired, + SgNBReleaseConfirm, + SgNBCounterCheckRequest, + SgNBChangeRequired, + SgNBChangeConfirm, + SgNBChangeRefuse, + RRCTransfer, + ENDCX2SetupRequest, + ENDCX2SetupResponse, + ENDCX2SetupFailure, + ENDCConfigurationUpdate, + ENDCConfigurationUpdateAcknowledge, + ENDCConfigurationUpdateFailure, + SecondaryRATDataUsageReport, + ENDCCellActivationRequest, + ENDCCellActivationResponse, + ENDCCellActivationFailure + +FROM X2AP-PDU-Contents + + id-cellActivation, + id-eNBConfigurationUpdate, + id-errorIndication, + id-handoverCancel, + id-handoverReport, + id-handoverPreparation, + + id-loadIndication, + id-privateMessage, + id-reset, + + id-resourceStatusReporting, + id-resourceStatusReportingInitiation, + id-rLFIndication, + id-snStatusTransfer, + id-uEContextRelease, + id-x2Setup, + id-mobilitySettingsChange, + id-x2Release, + id-x2APMessageTransfer, + id-seNBAdditionPreparation, + id-seNBReconfigurationCompletion, + id-meNBinitiatedSeNBModificationPreparation, + id-seNBinitiatedSeNBModification, + id-meNBinitiatedSeNBRelease, + id-seNBinitiatedSeNBRelease, + id-seNBCounterCheck, + id-x2Removal, + id-retrieveUEContext, + id-sgNBAdditionPreparation, + id-sgNBReconfigurationCompletion, + id-meNBinitiatedSgNBModificationPreparation, + id-sgNBinitiatedSgNBModification, + id-meNBinitiatedSgNBRelease, + id-sgNBinitiatedSgNBRelease, + id-sgNBChange, + id-sgNBCounterCheck, + id-rRCTransfer, + id-endcX2Setup, + id-endcConfigurationUpdate, + id-secondaryRATDataUsageReport, + id-endcCellActivation + +FROM X2AP-Constants; + +-- ************************************************************** +-- +-- Interface Elementary Procedure Class +-- +-- ************************************************************** + +X2AP-ELEMENTARY-PROCEDURE ::= CLASS { + &InitiatingMessage , + &SuccessfulOutcome OPTIONAL, + &UnsuccessfulOutcome OPTIONAL, + &procedureCode ProcedureCode UNIQUE, + &criticality Criticality DEFAULT ignore +} +WITH SYNTAX { + INITIATING MESSAGE &InitiatingMessage + [SUCCESSFUL OUTCOME &SuccessfulOutcome] + [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] + PROCEDURE CODE &procedureCode + [CRITICALITY &criticality] +} + +-- ************************************************************** +-- +-- Interface PDU Definition +-- +-- ************************************************************** + +X2AP-PDU ::= CHOICE { + initiatingMessage InitiatingMessage, + successfulOutcome SuccessfulOutcome, + unsuccessfulOutcome UnsuccessfulOutcome, + ... +} + +InitiatingMessage ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +SuccessfulOutcome ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +UnsuccessfulOutcome ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +-- ************************************************************** +-- +-- Interface Elementary Procedure List +-- +-- ************************************************************** + +X2AP-ELEMENTARY-PROCEDURES X2AP-ELEMENTARY-PROCEDURE ::= { + X2AP-ELEMENTARY-PROCEDURES-CLASS-1 | + X2AP-ELEMENTARY-PROCEDURES-CLASS-2 , + ... +} + +X2AP-ELEMENTARY-PROCEDURES-CLASS-1 X2AP-ELEMENTARY-PROCEDURE ::= { + handoverPreparation | + reset | + x2Setup | + resourceStatusReportingInitiation | + eNBConfigurationUpdate | + mobilitySettingsChange | + cellActivation | + seNBAdditionPreparation | + meNBinitiatedSeNBModificationPreparation | + seNBinitiatedSeNBModification | + seNBinitiatedSeNBRelease | + x2Removal | + retrieveUEContext | + sgNBAdditionPreparation | + meNBinitiatedSgNBModificationPreparation | + sgNBinitiatedSgNBModification | + meNBinitiatedSgNBRelease | + sgNBinitiatedSgNBRelease | + sgNBChange | + endcX2Setup | + endcConfigurationUpdate | + endcCellActivation , + ... +} + +X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= { + snStatusTransfer | + uEContextRelease | + handoverCancel | + errorIndication | + resourceStatusReporting | + loadIndication | + privateMessage | + rLFIndication | + handoverReport | + x2Release | + x2APMessageTransfer | + seNBReconfigurationCompletion | + meNBinitiatedSeNBRelease | + seNBCounterCheck | + sgNBReconfigurationCompletion | + sgNBCounterCheck | + rRCTransfer | + secondaryRATDataUsageReport , + ... + +} + +-- ************************************************************** +-- +-- Interface Elementary Procedures +-- +-- ************************************************************** + +handoverPreparation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequest + SUCCESSFUL OUTCOME HandoverRequestAcknowledge + UNSUCCESSFUL OUTCOME HandoverPreparationFailure + PROCEDURE CODE id-handoverPreparation + CRITICALITY reject +} + +snStatusTransfer X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SNStatusTransfer + PROCEDURE CODE id-snStatusTransfer + CRITICALITY ignore +} + +uEContextRelease X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextRelease + PROCEDURE CODE id-uEContextRelease + CRITICALITY ignore +} + + +handoverCancel X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverCancel + PROCEDURE CODE id-handoverCancel + CRITICALITY ignore +} + +handoverReport X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverReport + PROCEDURE CODE id-handoverReport + CRITICALITY ignore +} + +errorIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ErrorIndication + PROCEDURE CODE id-errorIndication + CRITICALITY ignore +} + +reset X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResetRequest + SUCCESSFUL OUTCOME ResetResponse + PROCEDURE CODE id-reset + CRITICALITY reject +} + +x2Setup X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE X2SetupRequest + SUCCESSFUL OUTCOME X2SetupResponse + UNSUCCESSFUL OUTCOME X2SetupFailure + PROCEDURE CODE id-x2Setup + CRITICALITY reject +} + + +loadIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LoadInformation + PROCEDURE CODE id-loadIndication + CRITICALITY ignore +} + +eNBConfigurationUpdate X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationUpdate + SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure + PROCEDURE CODE id-eNBConfigurationUpdate + CRITICALITY reject +} + +resourceStatusReportingInitiation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResourceStatusRequest + SUCCESSFUL OUTCOME ResourceStatusResponse + UNSUCCESSFUL OUTCOME ResourceStatusFailure + PROCEDURE CODE id-resourceStatusReportingInitiation + CRITICALITY reject +} + +resourceStatusReporting X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResourceStatusUpdate + PROCEDURE CODE id-resourceStatusReporting + CRITICALITY ignore +} + +rLFIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RLFIndication + PROCEDURE CODE id-rLFIndication + CRITICALITY ignore +} + +privateMessage X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PrivateMessage + PROCEDURE CODE id-privateMessage + CRITICALITY ignore +} + +mobilitySettingsChange X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MobilityChangeRequest + SUCCESSFUL OUTCOME MobilityChangeAcknowledge + UNSUCCESSFUL OUTCOME MobilityChangeFailure + PROCEDURE CODE id-mobilitySettingsChange + CRITICALITY reject +} + +cellActivation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE CellActivationRequest + SUCCESSFUL OUTCOME CellActivationResponse + UNSUCCESSFUL OUTCOME CellActivationFailure + PROCEDURE CODE id-cellActivation + CRITICALITY reject +} + +x2Release X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE X2Release + PROCEDURE CODE id-x2Release + CRITICALITY reject +} + +x2APMessageTransfer X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE X2APMessageTransfer + PROCEDURE CODE id-x2APMessageTransfer + CRITICALITY reject +} + +seNBAdditionPreparation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBAdditionRequest + SUCCESSFUL OUTCOME SeNBAdditionRequestAcknowledge + UNSUCCESSFUL OUTCOME SeNBAdditionRequestReject + PROCEDURE CODE id-seNBAdditionPreparation + CRITICALITY reject +} + +seNBReconfigurationCompletion X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBReconfigurationComplete + PROCEDURE CODE id-seNBReconfigurationCompletion + CRITICALITY ignore +} + +meNBinitiatedSeNBModificationPreparation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBModificationRequest + SUCCESSFUL OUTCOME SeNBModificationRequestAcknowledge + UNSUCCESSFUL OUTCOME SeNBModificationRequestReject + PROCEDURE CODE id-meNBinitiatedSeNBModificationPreparation + CRITICALITY reject +} + +seNBinitiatedSeNBModification X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBModificationRequired + SUCCESSFUL OUTCOME SeNBModificationConfirm + UNSUCCESSFUL OUTCOME SeNBModificationRefuse + PROCEDURE CODE id-seNBinitiatedSeNBModification + CRITICALITY reject +} + +meNBinitiatedSeNBRelease X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBReleaseRequest + PROCEDURE CODE id-meNBinitiatedSeNBRelease + CRITICALITY ignore +} + +seNBinitiatedSeNBRelease X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBReleaseRequired + SUCCESSFUL OUTCOME SeNBReleaseConfirm + PROCEDURE CODE id-seNBinitiatedSeNBRelease + CRITICALITY reject +} + +seNBCounterCheck X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBCounterCheckRequest + PROCEDURE CODE id-seNBCounterCheck + CRITICALITY reject +} + +x2Removal X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE X2RemovalRequest + SUCCESSFUL OUTCOME X2RemovalResponse + UNSUCCESSFUL OUTCOME X2RemovalFailure + PROCEDURE CODE id-x2Removal + CRITICALITY reject +} + +retrieveUEContext X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RetrieveUEContextRequest + SUCCESSFUL OUTCOME RetrieveUEContextResponse + UNSUCCESSFUL OUTCOME RetrieveUEContextFailure + PROCEDURE CODE id-retrieveUEContext + CRITICALITY reject +} + +sgNBAdditionPreparation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SgNBAdditionRequest + SUCCESSFUL OUTCOME SgNBAdditionRequestAcknowledge + UNSUCCESSFUL OUTCOME SgNBAdditionRequestReject + PROCEDURE CODE id-sgNBAdditionPreparation + CRITICALITY reject +} + +sgNBReconfigurationCompletion X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SgNBReconfigurationComplete + PROCEDURE CODE id-sgNBReconfigurationCompletion + CRITICALITY ignore +} + +meNBinitiatedSgNBModificationPreparation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SgNBModificationRequest + SUCCESSFUL OUTCOME SgNBModificationRequestAcknowledge + UNSUCCESSFUL OUTCOME SgNBModificationRequestReject + PROCEDURE CODE id-meNBinitiatedSgNBModificationPreparation + CRITICALITY reject +} + +sgNBinitiatedSgNBModification X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SgNBModificationRequired + SUCCESSFUL OUTCOME SgNBModificationConfirm + UNSUCCESSFUL OUTCOME SgNBModificationRefuse + PROCEDURE CODE id-sgNBinitiatedSgNBModification + CRITICALITY reject +} + +meNBinitiatedSgNBRelease X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SgNBReleaseRequest + SUCCESSFUL OUTCOME SgNBReleaseRequestAcknowledge + UNSUCCESSFUL OUTCOME SgNBReleaseRequestReject + PROCEDURE CODE id-meNBinitiatedSgNBRelease + CRITICALITY ignore +} + +sgNBinitiatedSgNBRelease X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SgNBReleaseRequired + SUCCESSFUL OUTCOME SgNBReleaseConfirm + PROCEDURE CODE id-sgNBinitiatedSgNBRelease + CRITICALITY reject +} + +sgNBCounterCheck X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SgNBCounterCheckRequest + PROCEDURE CODE id-sgNBCounterCheck + CRITICALITY reject +} + +sgNBChange X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SgNBChangeRequired + SUCCESSFUL OUTCOME SgNBChangeConfirm + UNSUCCESSFUL OUTCOME SgNBChangeRefuse + PROCEDURE CODE id-sgNBChange + CRITICALITY reject +} + +rRCTransfer X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RRCTransfer + PROCEDURE CODE id-rRCTransfer + CRITICALITY reject +} + +endcX2Setup X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENDCX2SetupRequest + SUCCESSFUL OUTCOME ENDCX2SetupResponse + UNSUCCESSFUL OUTCOME ENDCX2SetupFailure + PROCEDURE CODE id-endcX2Setup + CRITICALITY reject +} + + +endcConfigurationUpdate X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENDCConfigurationUpdate + SUCCESSFUL OUTCOME ENDCConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME ENDCConfigurationUpdateFailure + PROCEDURE CODE id-endcConfigurationUpdate + CRITICALITY reject +} + +secondaryRATDataUsageReport X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SecondaryRATDataUsageReport + PROCEDURE CODE id-secondaryRATDataUsageReport + CRITICALITY reject +} + +endcCellActivation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENDCCellActivationRequest + SUCCESSFUL OUTCOME ENDCCellActivationResponse + UNSUCCESSFUL OUTCOME ENDCCellActivationFailure + PROCEDURE CODE id-endcCellActivation + CRITICALITY reject +} + +END + + +-- ************************************************************** +-- +-- PDU definitions for X2AP. +-- +-- ************************************************************** + +X2AP-PDU-Contents { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Contents (1) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + ABSInformation, + ABS-Status, + AS-SecurityInformation, + BearerType, + Cause, + CompositeAvailableCapacityGroup, + Correlation-ID, + COUNTvalue, + CellReportingIndicator, + CriticalityDiagnostics, + CRNTI, + CSGMembershipStatus, + CSG-Id, + DeactivationIndication, + DL-Forwarding, + DynamicDLTransmissionInformation, + ECGI, + E-RAB-ID, + E-RAB-Level-QoS-Parameters, + E-RAB-List, + EUTRANTraceID, + GlobalENB-ID, + GTPtunnelEndpoint, + GUGroupIDList, + GUMMEI, + HandoverReportType, + HandoverRestrictionList, + Masked-IMEISV, + InvokeIndication, + LocationReportingInformation, + MDT-Configuration, + ManagementBasedMDTallowed, + MDTPLMNList, + Neighbour-Information, + PCI, + PDCP-SN, + PLMN-Identity, + ReceiveStatusofULPDCPSDUs, + Registration-Request, + RelativeNarrowbandTxPower, + RadioResourceStatus, + RRCConnReestabIndicator, + RRCConnSetupIndicator, + UE-RLF-Report-Container, + UEAppLayerMeasConfig, + RRC-Context, + ServedCell-Information, + ServedCells, + ShortMAC-I, + SRVCCOperationPossible, + SubscriberProfileIDforRFP, + TargetCellInUTRAN, + TargeteNBtoSource-eNBTransparentContainer, + TimeToWait, + TraceActivation, + TraceDepth, + TransportLayerAddress, + UEAggregateMaximumBitRate, + UE-HistoryInformation, + UE-HistoryInformationFromTheUE, + UE-S1AP-ID, + UESecurityCapabilities, + UE-X2AP-ID, + UL-HighInterferenceIndicationInfo, + UL-InterferenceOverloadIndication, + HWLoadIndicator, + S1TNLLoadIndicator, + Measurement-ID, + ReportCharacteristics, + MobilityParametersInformation, + MobilityParametersModificationRange, + ReceiveStatusOfULPDCPSDUsExtended, + COUNTValueExtended, + SubframeAssignment, + ExtendedULInterferenceOverloadInfo, + ExpectedUEBehaviour, + SeNBSecurityKey, + MeNBtoSeNBContainer, + SeNBtoMeNBContainer, + SCGChangeIndication, + CoMPInformation, + ReportingPeriodicityRSRPMR, + RSRPMRList, + UE-RLF-Report-Container-for-extended-bands, + ProSeAuthorized, + CoverageModificationList, + ReportingPeriodicityCSIR, + CSIReportList, + ReceiveStatusOfULPDCPSDUsPDCP-SNlength18, + COUNTvaluePDCP-SNlength18, + LHN-ID, + UE-ContextKeptIndicator, + UE-X2AP-ID-Extension, + SIPTOBearerDeactivationIndication, + TunnelInformation, + V2XServicesAuthorized, + X2BenefitValue, + ResumeID, + EUTRANCellIdentifier, + MakeBeforeBreakIndicator, + WTID, + WT-UE-XwAP-ID, + UESidelinkAggregateMaximumBitRate, + SgNBSecurityKey, + MeNBtoSgNBContainer, + SgNBtoMeNBContainer, + MCGSplitSRBs, + RRCContainer, + SRBType, + GlobalGNB-ID, + GNB-ID, + SCGConfigurationQuery, + MCGSplitSRB, + UENRMeasurement, + EN-DC-ResourceConfiguration, + TAC, + NRARFCN, + NRCGI, + NRPCI, + NRUESecurityCapabilities, + PDCPChangeIndication, + ULConfiguration, + SgNB-UE-X2AP-ID, + SecondaryRATUsageReportList, + ActivationID, + MeNBResourceCoordinationInformation, + SgNBResourceCoordinationInformation, + NR-TxBW, + BroadcastPLMNs-Item, + RLCMode, + GBR-QosInformation, + DRB-ID, + Extended-TAC, + SULInformation + + +FROM X2AP-IEs + + PrivateIE-Container{}, + ProtocolExtensionContainer{}, + ProtocolIE-Container{}, + ProtocolIE-ContainerList{}, + ProtocolIE-ContainerPair{}, + ProtocolIE-ContainerPairList{}, + ProtocolIE-Single-Container{}, + X2AP-PRIVATE-IES, + X2AP-PROTOCOL-EXTENSION, + X2AP-PROTOCOL-IES, + X2AP-PROTOCOL-IES-PAIR +FROM X2AP-Containers + + id-ABSInformation, + id-ActivatedCellList, + id-BearerType, + id-Cause, + id-CellInformation, + id-CellInformation-Item, + id-CellMeasurementResult, + id-CellMeasurementResult-Item, + id-CellToReport, + id-CellToReport-Item, + id-CompositeAvailableCapacityGroup, + id-CriticalityDiagnostics, + id-DeactivationIndication, + id-DynamicDLTransmissionInformation, + id-E-RABs-Admitted-Item, + id-E-RABs-Admitted-List, + id-E-RABs-NotAdmitted-List, + id-E-RABs-SubjectToStatusTransfer-List, + id-E-RABs-SubjectToStatusTransfer-Item, + id-E-RABs-ToBeSetup-Item, + id-GlobalENB-ID, + id-GUGroupIDList, + id-GUGroupIDToAddList, + id-GUGroupIDToDeleteList, + id-GUMMEI-ID, + id-Masked-IMEISV, + id-InvokeIndication, + id-New-eNB-UE-X2AP-ID, + id-Old-eNB-UE-X2AP-ID, + id-Registration-Request, + id-ReportingPeriodicity, + id-ServedCells, + id-ServedCellsToActivate, + id-ServedCellsToAdd, + id-ServedCellsToModify, + id-ServedCellsToDelete, + id-SRVCCOperationPossible, + id-TargetCell-ID, + id-TargeteNBtoSource-eNBTransparentContainer, + id-TimeToWait, + id-TraceActivation, + id-UE-ContextInformation, + id-UE-HistoryInformation, + id-UE-X2AP-ID, + id-Measurement-ID, + id-ReportCharacteristics, + id-ENB1-Measurement-ID, + id-ENB2-Measurement-ID, + id-ENB1-Cell-ID, + id-ENB2-Cell-ID, + id-ENB2-Proposed-Mobility-Parameters, + id-ENB1-Mobility-Parameters, + id-ENB2-Mobility-Parameters-Modification-Range, + id-FailureCellPCI, + id-Re-establishmentCellECGI, + id-FailureCellCRNTI, + id-ShortMAC-I, + id-SourceCellECGI, + id-FailureCellECGI, + id-HandoverReportType, + id-UE-RLF-Report-Container, + id-PartialSuccessIndicator, + id-MeasurementInitiationResult-List, + id-MeasurementInitiationResult-Item, + id-MeasurementFailureCause-Item, + id-CompleteFailureCauseInformation-List, + id-CompleteFailureCauseInformation-Item, + id-CSGMembershipStatus, + id-CSG-Id, + id-MDTConfiguration, + id-ManagementBasedMDTallowed, + id-ABS-Status, + id-RRCConnSetupIndicator, + id-RRCConnReestabIndicator, + id-TargetCellInUTRAN, + id-MobilityInformation, + id-SourceCellCRNTI, + id-ManagementBasedMDTPLMNList, + id-ReceiveStatusOfULPDCPSDUsExtended, + id-ULCOUNTValueExtended, + id-DLCOUNTValueExtended, + id-IntendedULDLConfiguration, + id-ExtendedULInterferenceOverloadInfo, + id-RNL-Header, + id-x2APMessage, + id-UE-HistoryInformationFromTheUE, + id-ExpectedUEBehaviour, + id-MeNB-UE-X2AP-ID, + id-SeNB-UE-X2AP-ID, + id-UE-SecurityCapabilities, + id-SeNBSecurityKey, + id-SeNBUEAggregateMaximumBitRate, + id-ServingPLMN, + id-E-RABs-ToBeAdded-List, + id-E-RABs-ToBeAdded-Item, + id-MeNBtoSeNBContainer, + id-E-RABs-Admitted-ToBeAdded-List, + id-E-RABs-Admitted-ToBeAdded-Item, + id-SeNBtoMeNBContainer, + id-ResponseInformationSeNBReconfComp, + id-UE-ContextInformationSeNBModReq, + id-E-RABs-ToBeAdded-ModReqItem, + id-E-RABs-ToBeModified-ModReqItem, + id-E-RABs-ToBeReleased-ModReqItem, + id-E-RABs-Admitted-ToBeAdded-ModAckList, + id-E-RABs-Admitted-ToBeModified-ModAckList, + id-E-RABs-Admitted-ToBeReleased-ModAckList, + id-E-RABs-Admitted-ToBeAdded-ModAckItem, + id-E-RABs-Admitted-ToBeModified-ModAckItem, + id-E-RABs-Admitted-ToBeReleased-ModAckItem, + id-SCGChangeIndication, + id-E-RABs-ToBeReleased-ModReqd, + id-E-RABs-ToBeReleased-ModReqdItem, + id-E-RABs-ToBeReleased-List-RelReq, + id-E-RABs-ToBeReleased-RelReqItem, + id-E-RABs-ToBeReleased-List-RelConf, + id-E-RABs-ToBeReleased-RelConfItem, + id-E-RABs-SubjectToCounterCheck-List, + id-E-RABs-SubjectToCounterCheckItem, + id-CoMPInformation, + id-ReportingPeriodicityRSRPMR, + id-RSRPMRList, + id-UE-RLF-Report-Container-for-extended-bands, + id-ProSeAuthorized, + id-CoverageModificationList, + id-ReportingPeriodicityCSIR, + id-CSIReportList, + id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18, + id-ULCOUNTValuePDCP-SNlength18, + id-DLCOUNTValuePDCP-SNlength18, + id-LHN-ID, + id-Correlation-ID, + id-SIPTO-Correlation-ID, + id-UE-ContextReferenceAtSeNB, + id-UE-ContextReferenceAtWT, + id-UE-ContextKeptIndicator, + id-WT-UE-ContextKeptIndicator, + id-New-eNB-UE-X2AP-ID-Extension, + id-Old-eNB-UE-X2AP-ID-Extension, + id-MeNB-UE-X2AP-ID-Extension, + id-SeNB-UE-X2AP-ID-Extension, + id-SIPTO-BearerDeactivationIndication, + id-Tunnel-Information-for-BBF, + id-SIPTO-L-GW-TransportLayerAddress, + id-GW-TransportLayerAddress, + id-X2RemovalThreshold, + id-CellReportingIndicator, + id-V2XServicesAuthorized, + id-resumeID, + id-UE-ContextInformationRetrieve, + id-E-RABs-ToBeSetupRetrieve-Item, + id-NewEUTRANCellIdentifier, + id-MakeBeforeBreakIndicator, + id-UESidelinkAggregateMaximumBitRate, + id-uL-GTPtunnelEndpoint, + id-SgNBSecurityKey, + id-SgNBUEAggregateMaximumBitRate, + id-E-RABs-ToBeAdded-SgNBAddReqList, + id-MeNBtoSgNBContainer, + id-SgNB-UE-X2AP-ID, + id-RequestedMCGSplitSRBs, + id-E-RABs-ToBeAdded-SgNBAddReq-Item, + id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList, + id-SgNBtoMeNBContainer, + id-AdmittedMCGSplitSRBs , + id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item, + id-ResponseInformationSgNBReconfComp, + id-UE-ContextInformation-SgNBModReq, + id-E-RABs-ToBeAdded-SgNBModReq-Item, + id-E-RABs-ToBeModified-SgNBModReq-Item, + id-E-RABs-ToBeReleased-SgNBModReq-Item, + id-E-RABs-Admitted-ToBeAdded-SgNBModAckList, + id-E-RABs-Admitted-ToBeModified-SgNBModAckList, + id-E-RABs-Admitted-ToBeReleased-SgNBModAckList, + id-E-RABs-Admitted-ToBeAdded-SgNBModAck-Item, + id-E-RABs-Admitted-ToBeModified-SgNBModAck-Item, + id-E-RABs-Admitted-ToBeReleased-SgNBModAck-Item, + id-E-RABs-ToBeReleased-SgNBModReqdList, + id-E-RABs-ToBeModified-SgNBModReqdList, + id-E-RABs-ToBeReleased-SgNBModReqd-Item, + id-E-RABs-ToBeModified-SgNBModReqd-Item, + id-E-RABs-ToBeReleased-SgNBChaConfList, + id-E-RABs-ToBeReleased-SgNBChaConf-Item, + id-E-RABs-ToBeReleased-SgNBRelReqList, + id-E-RABs-ToBeReleased-SgNBRelReq-Item, + id-E-RABs-ToBeReleased-SgNBRelConfList, + id-E-RABs-ToBeReleased-SgNBRelConf-Item, + id-E-RABs-SubjectToSgNBCounterCheck-List, + id-E-RABs-SubjectToSgNBCounterCheck-Item, + id-Target-SgNB-ID, + id-RRCContainer, + id-SRBType, + id-HandoverRestrictionList, + id-SCGConfigurationQuery, + id-MCGSplitSRB, + id-UENRMeasurement, + id-InitiatingNodeType-EndcX2Setup, + id-InitiatingNodeType-EndcConfigUpdate, + id-RespondingNodeType-EndcX2Setup, + id-RespondingNodeType-EndcConfigUpdate, + id-NRUESecurityCapabilities, + id-PDCPChangeIndication, + id-ServedEUTRAcellsENDCX2ManagementList, + id-ServedEUTRAcellsToModifyListENDCConfUpd, + id-ServedEUTRAcellsToDeleteListENDCConfUpd, + id-ServedNRcellsToModifyListENDCConfUpd, + id-ServedNRcellsToDeleteListENDCConfUpd, + id-CellAssistanceInformation, + id-Globalen-gNB-ID, + id-ServedNRcellsENDCX2ManagementList, + id-Old-SgNB-UE-X2AP-ID, + id-UE-ContextReferenceAtSgNB, + id-SecondaryRATUsageReportList, + id-ActivationID, + id-ServedNRCellsToActivate, + id-ActivatedNRCellList, + id-MeNBResourceCoordinationInformation, + id-SgNBResourceCoordinationInformation, + id-UEAppLayerMeasConfig, + id-SelectedPLMN, + + maxCellineNB, + maxnoofBearers, + maxnoofPDCP-SN, + maxFailedMeasObjects, + maxnoofCellIDforMDT, + maxnoofTAforMDT, + maxofNRNeighbours, + maxCellinengNB, + maxnoofCellIDforQMC, + maxnoofTAforQMC, + maxnoofPLMNforQMC +FROM X2AP-Constants; + +-- ************************************************************** +-- +-- HANDOVER REQUEST +-- +-- ************************************************************** + +HandoverRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverRequest-IEs}}, + ... +} + +HandoverRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-TargetCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory}| + { ID id-UE-ContextInformation CRITICALITY reject TYPE UE-ContextInformation PRESENCE mandatory}| + { ID id-UE-HistoryInformation CRITICALITY ignore TYPE UE-HistoryInformation PRESENCE mandatory}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-MobilityInformation CRITICALITY ignore TYPE MobilityInformation PRESENCE optional}| + { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| + { ID id-UE-HistoryInformationFromTheUE CRITICALITY ignore TYPE UE-HistoryInformationFromTheUE PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-UE-ContextReferenceAtSeNB CRITICALITY ignore TYPE UE-ContextReferenceAtSeNB PRESENCE optional}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| + { ID id-UE-ContextReferenceAtWT CRITICALITY ignore TYPE UE-ContextReferenceAtWT PRESENCE optional}| + { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}| + { ID id-UE-ContextReferenceAtSgNB CRITICALITY ignore TYPE UE-ContextReferenceAtSgNB PRESENCE optional}, + ... +} + +UE-ContextInformation ::= SEQUENCE { + mME-UE-S1AP-ID UE-S1AP-ID, + uESecurityCapabilities UESecurityCapabilities, + aS-SecurityInformation AS-SecurityInformation, + uEaggregateMaximumBitRate UEAggregateMaximumBitRate, + subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, + e-RABs-ToBeSetup-List E-RABs-ToBeSetup-List, + rRC-Context RRC-Context, + handoverRestrictionList HandoverRestrictionList OPTIONAL, + locationReportingInformation LocationReportingInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {UE-ContextInformation-ExtIEs} } OPTIONAL, + ... +} + +UE-ContextInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-ManagementBasedMDTallowed CRITICALITY ignore EXTENSION ManagementBasedMDTallowed PRESENCE optional }| +{ ID id-ManagementBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional }| +{ ID id-UESidelinkAggregateMaximumBitRate CRITICALITY ignore EXTENSION UESidelinkAggregateMaximumBitRate PRESENCE optional}, + ... +} + +E-RABs-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetup-ItemIEs} } + +E-RABs-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeSetup-Item CRITICALITY ignore TYPE E-RABs-ToBeSetup-Item PRESENCE mandatory }, + ... +} + +E-RABs-ToBeSetup-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + dL-Forwarding DL-Forwarding OPTIONAL, + uL-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetup-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeSetup-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional}, + ... +} + +MobilityInformation ::= BIT STRING (SIZE(32)) + +UE-ContextReferenceAtSeNB ::= SEQUENCE { + source-GlobalSeNB-ID GlobalENB-ID, + seNB-UE-X2AP-ID UE-X2AP-ID, + seNB-UE-X2AP-ID-Extension UE-X2AP-ID-Extension, + iE-Extensions ProtocolExtensionContainer { {UE-ContextReferenceAtSeNB-ItemExtIEs} } OPTIONAL, + ... +} + +UE-ContextReferenceAtSeNB-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UE-ContextReferenceAtWT ::= SEQUENCE { + wTID WTID, + wT-UE-XwAP-ID WT-UE-XwAP-ID, + iE-Extensions ProtocolExtensionContainer { {UE-ContextReferenceAtWT-ItemExtIEs} } OPTIONAL, + ... +} + +UE-ContextReferenceAtWT-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UE-ContextReferenceAtSgNB ::= SEQUENCE { + source-GlobalSgNB-ID GlobalGNB-ID, + sgNB-UE-X2AP-ID SgNB-UE-X2AP-ID, + iE-Extensions ProtocolExtensionContainer { {UE-ContextReferenceAtSgNB-ItemExtIEs} } OPTIONAL, + ... +} + +UE-ContextReferenceAtSgNB-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- HANDOVER REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +HandoverRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverRequestAcknowledge-IEs}}, + ... +} + +HandoverRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-Admitted-List CRITICALITY ignore TYPE E-RABs-Admitted-List PRESENCE mandatory}| + { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| + { ID id-TargeteNBtoSource-eNBTransparentContainer CRITICALITY ignore TYPE TargeteNBtoSource-eNBTransparentContainer PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-WT-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}, + ... +} + +E-RABs-Admitted-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ItemIEs} } + +E-RABs-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-Item CRITICALITY ignore TYPE E-RABs-Admitted-Item PRESENCE mandatory } +} + +E-RABs-Admitted-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, + dL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-Item-ExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- HANDOVER PREPARATION FAILURE +-- +-- ************************************************************** + +HandoverPreparationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverPreparationFailure-IEs}}, + ... +} + +HandoverPreparationFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + + ... +} + +-- ************************************************************** +-- +-- Handover Report +-- +-- ************************************************************** + +HandoverReport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverReport-IEs}}, + ... +} + +HandoverReport-IEs X2AP-PROTOCOL-IES ::= { + { ID id-HandoverReportType CRITICALITY ignore TYPE HandoverReportType PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-SourceCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-FailureCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to “HO to Wrong Cell” -- | + { ID id-TargetCellInUTRAN CRITICALITY ignore TYPE TargetCellInUTRAN PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to "InterRAT ping-pong" --| + { ID id-SourceCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE optional}| + { ID id-MobilityInformation CRITICALITY ignore TYPE MobilityInformation PRESENCE optional}| + { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}| + { ID id-UE-RLF-Report-Container-for-extended-bands CRITICALITY ignore TYPE UE-RLF-Report-Container-for-extended-bands PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SN Status Transfer +-- +-- ************************************************************** + +SNStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SNStatusTransfer-IEs}}, + ... +} + +SNStatusTransfer-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-SubjectToStatusTransfer-List CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-List PRESENCE mandatory}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE optional}, + ... +} + +E-RABs-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { { E-RABs-SubjectToStatusTransfer-ItemIEs} } + +E-RABs-SubjectToStatusTransfer-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-Item PRESENCE mandatory } +} + +E-RABs-SubjectToStatusTransfer-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + + receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, + uL-COUNTvalue COUNTvalue, + dL-COUNTvalue COUNTvalue, + iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-SubjectToStatusTransfer-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-ReceiveStatusOfULPDCPSDUsExtended CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsExtended PRESENCE optional}| + { ID id-ULCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| + { ID id-DLCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| + { ID id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 PRESENCE optional}| + { ID id-ULCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}| + { ID id-DLCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- UE Context Release +-- +-- ************************************************************** + +UEContextRelease ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextRelease-IEs}}, + ... +} + +UEContextRelease-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SIPTO-BearerDeactivationIndication CRITICALITY ignore TYPE SIPTOBearerDeactivationIndication PRESENCE optional}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- HANDOVER CANCEL +-- +-- ************************************************************** + +HandoverCancel ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverCancel-IEs}}, + ... +} + +HandoverCancel-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- ERROR INDICATION +-- +-- ************************************************************** + +ErrorIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}}, + ... +} + +ErrorIndication-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}| + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-Old-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Reset Request +-- +-- ************************************************************** + +ResetRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResetRequest-IEs}}, + ... +} + +ResetRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- Reset Response +-- +-- ************************************************************** + +ResetResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResetResponse-IEs}}, + ... +} + +ResetResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- X2 SETUP REQUEST +-- +-- ************************************************************** + +X2SetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupRequest-IEs}}, + ... +} + +X2SetupRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| + { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory}| + { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, +... +} + + + +-- ************************************************************** +-- +-- X2 SETUP RESPONSE +-- +-- ************************************************************** + +X2SetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupResponse-IEs}}, + ... +} + +X2SetupResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| + { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory}| + { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, + ... +} + + + +-- ************************************************************** +-- +-- X2 SETUP FAILURE +-- +-- ************************************************************** + +X2SetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupFailure-IEs}}, + ... +} + +X2SetupFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + + ... +} + + + +-- ************************************************************** +-- +-- LOAD INFORMATION +-- +-- ************************************************************** + +LoadInformation ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{LoadInformation-IEs}}, + ... +} + +LoadInformation-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CellInformation CRITICALITY ignore TYPE CellInformation-List PRESENCE mandatory} , + ... +} + +CellInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellInformation-ItemIEs} } + +CellInformation-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellInformation-Item CRITICALITY ignore TYPE CellInformation-Item PRESENCE mandatory } +} + +CellInformation-Item ::= SEQUENCE { + cell-ID ECGI, + ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication OPTIONAL, + ul-HighInterferenceIndicationInfo UL-HighInterferenceIndicationInfo OPTIONAL, + relativeNarrowbandTxPower RelativeNarrowbandTxPower OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CellInformation-Item-ExtIEs} } OPTIONAL, + ... +} + +CellInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-ABSInformation CRITICALITY ignore EXTENSION ABSInformation PRESENCE optional }| +{ ID id-InvokeIndication CRITICALITY ignore EXTENSION InvokeIndication PRESENCE optional }| +{ ID id-IntendedULDLConfiguration CRITICALITY ignore EXTENSION SubframeAssignment PRESENCE optional }| +{ ID id-ExtendedULInterferenceOverloadInfo CRITICALITY ignore EXTENSION ExtendedULInterferenceOverloadInfo PRESENCE optional }| +{ ID id-CoMPInformation CRITICALITY ignore EXTENSION CoMPInformation PRESENCE optional }| +{ ID id-DynamicDLTransmissionInformation CRITICALITY ignore EXTENSION DynamicDLTransmissionInformation PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE +-- +-- ************************************************************** + +ENBConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdate-IEs}}, + ... +} + +ENBConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ServedCellsToAdd CRITICALITY reject TYPE ServedCells PRESENCE optional}| + { ID id-ServedCellsToModify CRITICALITY reject TYPE ServedCellsToModify PRESENCE optional}| + { ID id-ServedCellsToDelete CRITICALITY reject TYPE Old-ECGIs PRESENCE optional}| + { ID id-GUGroupIDToAddList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| + { ID id-GUGroupIDToDeleteList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| + { ID id-CoverageModificationList CRITICALITY reject TYPE CoverageModificationList PRESENCE optional}, + ... +} + +ServedCellsToModify::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToModify-Item + +ServedCellsToModify-Item::= SEQUENCE { + old-ecgi ECGI, + servedCellInfo ServedCell-Information, + neighbour-Info Neighbour-Information OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ServedCellsToModify-Item-ExtIEs} } OPTIONAL, + ... +} + +ServedCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-DeactivationIndication CRITICALITY ignore EXTENSION DeactivationIndication PRESENCE optional }, + ... +} + + +Old-ECGIs::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE ACKNOWLEDGE +-- +-- ************************************************************** + +ENBConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateAcknowledge-IEs}}, + ... +} + +ENBConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, +... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE FAIURE +-- +-- ************************************************************** + +ENBConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateFailure-IEs}}, + ... +} + +ENBConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + + + +-- ************************************************************** +-- +-- Resource Status Request +-- +-- ************************************************************** + +ResourceStatusRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusRequest-IEs}}, + ... +} + +ResourceStatusRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY ignore TYPE Measurement-ID PRESENCE conditional}|-- The IE shall be present if the Registration Request IE is set to “Stop”, “Partial stop” or to “Add”-- + { ID id-Registration-Request CRITICALITY reject TYPE Registration-Request PRESENCE mandatory}| + { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE optional}| + { ID id-CellToReport CRITICALITY ignore TYPE CellToReport-List PRESENCE mandatory}| + { ID id-ReportingPeriodicity CRITICALITY ignore TYPE ReportingPeriodicity PRESENCE optional}| + { ID id-PartialSuccessIndicator CRITICALITY ignore TYPE PartialSuccessIndicator PRESENCE optional}| + { ID id-ReportingPeriodicityRSRPMR CRITICALITY ignore TYPE ReportingPeriodicityRSRPMR PRESENCE optional}| + { ID id-ReportingPeriodicityCSIR CRITICALITY ignore TYPE ReportingPeriodicityCSIR PRESENCE optional}, + ... +} + + +CellToReport-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellToReport-ItemIEs} } + +CellToReport-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellToReport-Item CRITICALITY ignore TYPE CellToReport-Item PRESENCE mandatory} +} + +CellToReport-Item ::= SEQUENCE { + cell-ID ECGI, + iE-Extensions ProtocolExtensionContainer { {CellToReport-Item-ExtIEs} } OPTIONAL, + ... +} + +CellToReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +ReportingPeriodicity ::= ENUMERATED { + one-thousand-ms, + two-thousand-ms, + five-thousand-ms, + ten-thousand-ms, +... +} + +PartialSuccessIndicator ::= ENUMERATED { + partial-success-allowed, +... +} + +-- ************************************************************** +-- +-- Resource Status Response +-- +-- ************************************************************** + +ResourceStatusResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusResponse-IEs}}, + ... +} + +ResourceStatusResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeasurementInitiationResult-List CRITICALITY ignore TYPE MeasurementInitiationResult-List PRESENCE optional}, + ... +} + + +MeasurementInitiationResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { { MeasurementInitiationResult-ItemIEs} } + +MeasurementInitiationResult-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-MeasurementInitiationResult-Item CRITICALITY ignore TYPE MeasurementInitiationResult-Item PRESENCE mandatory} +} + +MeasurementInitiationResult-Item ::= SEQUENCE { + cell-ID ECGI, + measurementFailureCause-List MeasurementFailureCause-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { MeasurementInitiationResult-Item-ExtIEs} } OPTIONAL, + ... +} + +MeasurementInitiationResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +MeasurementFailureCause-List ::= SEQUENCE (SIZE (1..maxFailedMeasObjects)) OF ProtocolIE-Single-Container { { MeasurementFailureCause-ItemIEs} } + +MeasurementFailureCause-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-MeasurementFailureCause-Item CRITICALITY ignore TYPE MeasurementFailureCause-Item PRESENCE mandatory} +} + +MeasurementFailureCause-Item ::= SEQUENCE { + measurementFailedReportCharacteristics ReportCharacteristics, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { MeasurementFailureCause-Item-ExtIEs} } OPTIONAL, + ... +} + +MeasurementFailureCause-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Resource Status Failure +-- +-- ************************************************************** + +ResourceStatusFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusFailure-IEs}}, + ... +} + +ResourceStatusFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-CompleteFailureCauseInformation-List CRITICALITY ignore TYPE CompleteFailureCauseInformation-List PRESENCE optional}, + ... +} + +CompleteFailureCauseInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CompleteFailureCauseInformation-ItemIEs} } + +CompleteFailureCauseInformation-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CompleteFailureCauseInformation-Item CRITICALITY ignore TYPE CompleteFailureCauseInformation-Item PRESENCE mandatory} +} + +CompleteFailureCauseInformation-Item ::= SEQUENCE { + cell-ID ECGI, + measurementFailureCause-List MeasurementFailureCause-List, + iE-Extensions ProtocolExtensionContainer { { CompleteFailureCauseInformation-Item-ExtIEs} } OPTIONAL, + ... +} + +CompleteFailureCauseInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Resource Status Update +-- +-- ************************************************************** + +ResourceStatusUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusUpdate-IEs}}, + ... +} + +ResourceStatusUpdate-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-CellMeasurementResult CRITICALITY ignore TYPE CellMeasurementResult-List PRESENCE mandatory}, + ... +} + +CellMeasurementResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellMeasurementResult-ItemIEs} } + +CellMeasurementResult-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellMeasurementResult-Item CRITICALITY ignore TYPE CellMeasurementResult-Item PRESENCE mandatory} +} + +CellMeasurementResult-Item ::= SEQUENCE { + cell-ID ECGI, + hWLoadIndicator HWLoadIndicator OPTIONAL, + s1TNLLoadIndicator S1TNLLoadIndicator OPTIONAL, + radioResourceStatus RadioResourceStatus OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CellMeasurementResult-Item-ExtIEs} } OPTIONAL, + ... +} + +CellMeasurementResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-CompositeAvailableCapacityGroup CRITICALITY ignore EXTENSION CompositeAvailableCapacityGroup PRESENCE optional}| + { ID id-ABS-Status CRITICALITY ignore EXTENSION ABS-Status PRESENCE optional}| + { ID id-RSRPMRList CRITICALITY ignore EXTENSION RSRPMRList PRESENCE optional}| + { ID id-CSIReportList CRITICALITY ignore EXTENSION CSIReportList PRESENCE optional}| + { ID id-CellReportingIndicator CRITICALITY ignore EXTENSION CellReportingIndicator PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- PRIVATE MESSAGE +-- +-- ************************************************************** + +PrivateMessage ::= SEQUENCE { + privateIEs PrivateIE-Container {{PrivateMessage-IEs}}, + ... +} + +PrivateMessage-IEs X2AP-PRIVATE-IES ::= { + ... +} + +-- ************************************************************** +-- +-- MOBILITY CHANGE REQUEST +-- +-- ************************************************************** + +MobilityChangeRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{MobilityChangeRequest-IEs}}, + ... +} + +MobilityChangeRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-ENB1-Mobility-Parameters CRITICALITY ignore TYPE MobilityParametersInformation PRESENCE optional}| + { ID id-ENB2-Proposed-Mobility-Parameters CRITICALITY reject TYPE MobilityParametersInformation PRESENCE mandatory}| + { ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- MOBILITY CHANGE ACKNOWLEDGE +-- +-- ************************************************************** + +MobilityChangeAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{MobilityChangeAcknowledge-IEs}}, + ... +} + +MobilityChangeAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- MOBILITY CHANGE FAILURE +-- +-- ************************************************************** + +MobilityChangeFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{MobilityChangeFailure-IEs}}, + ... +} + +MobilityChangeFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-ENB2-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-ENB2-Mobility-Parameters-Modification-Range CRITICALITY ignore TYPE MobilityParametersModificationRange PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Radio Link Failure Indication +-- +-- ************************************************************** + +RLFIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RLFIndication-IEs}}, + ... +} + +RLFIndication-IEs X2AP-PROTOCOL-IES ::= { + { ID id-FailureCellPCI CRITICALITY ignore TYPE PCI PRESENCE mandatory}| + { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-FailureCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE mandatory}| + { ID id-ShortMAC-I CRITICALITY ignore TYPE ShortMAC-I PRESENCE optional}| + { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}| + { ID id-RRCConnSetupIndicator CRITICALITY reject TYPE RRCConnSetupIndicator PRESENCE optional}| + { ID id-RRCConnReestabIndicator CRITICALITY ignore TYPE RRCConnReestabIndicator PRESENCE optional}| + { ID id-UE-RLF-Report-Container-for-extended-bands CRITICALITY ignore TYPE UE-RLF-Report-Container-for-extended-bands PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- Cell Activation Request +-- +-- ************************************************************** + +CellActivationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationRequest-IEs}}, + ... +} + +CellActivationRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ServedCellsToActivate CRITICALITY reject TYPE ServedCellsToActivate PRESENCE mandatory}, + ... +} + +ServedCellsToActivate::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToActivate-Item + +ServedCellsToActivate-Item::= SEQUENCE { + ecgi ECGI, + iE-Extensions ProtocolExtensionContainer { { ServedCellsToActivate-Item-ExtIEs} } OPTIONAL, + ... +} + +ServedCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Cell Activation Response +-- +-- ************************************************************** + +CellActivationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationResponse-IEs}}, + ... +} + +CellActivationResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ActivatedCellList CRITICALITY ignore TYPE ActivatedCellList PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +ActivatedCellList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ActivatedCellList-Item + +ActivatedCellList-Item::= SEQUENCE { + ecgi ECGI, + iE-Extensions ProtocolExtensionContainer { { ActivatedCellList-Item-ExtIEs} } OPTIONAL, + ... +} + +ActivatedCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +--************************************************************** +-- +-- CELL ACTIVATION FAILURE +-- +-- ************************************************************** + +CellActivationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationFailure-IEs}}, + ... +} + +CellActivationFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- X2 RELEASE +-- +-- ************************************************************** + +X2Release ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2Release-IEs}}, + ... +} + +X2Release-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}, +... +} + +-- ************************************************************** +-- +-- X2AP Message Transfer +-- +-- ************************************************************** + +X2APMessageTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2APMessageTransfer-IEs}}, + ... +} + +X2APMessageTransfer-IEs X2AP-PROTOCOL-IES ::= { + { ID id-RNL-Header CRITICALITY reject TYPE RNL-Header PRESENCE mandatory}| + { ID id-x2APMessage CRITICALITY reject TYPE X2AP-Message PRESENCE optional}, + ... +} + +RNL-Header ::= SEQUENCE { + source-GlobalENB-ID GlobalENB-ID, + target-GlobalENB-ID GlobalENB-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { RNL-Header-Item-ExtIEs} } OPTIONAL, + ... +} + +RNL-Header-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +X2AP-Message ::= OCTET STRING + +-- ************************************************************** +-- +-- SENB ADDITION REQUEST +-- +-- ************************************************************** + +SeNBAdditionRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBAdditionRequest-IEs}}, + ... +} + +SeNBAdditionRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-UE-SecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE conditional}| + -- This IE shall be present if the Bearer Option IE is set to the value “SCG bearer” -- + { ID id-SeNBSecurityKey CRITICALITY reject TYPE SeNBSecurityKey PRESENCE conditional}| + -- This IE shall be present if the Bearer Option IE is set to the value “SCG bearer” -- + { ID id-SeNBUEAggregateMaximumBitRate CRITICALITY reject TYPE UEAggregateMaximumBitRate PRESENCE mandatory}| + { ID id-ServingPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| + { ID id-E-RABs-ToBeAdded-List CRITICALITY reject TYPE E-RABs-ToBeAdded-List PRESENCE mandatory}| + { ID id-MeNBtoSeNBContainer CRITICALITY reject TYPE MeNBtoSeNBContainer PRESENCE mandatory}| + { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +E-RABs-ToBeAdded-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { { E-RABs-ToBeAdded-ItemIEs} } + +E-RABs-ToBeAdded-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeAdded-Item CRITICALITY reject TYPE E-RABs-ToBeAdded-Item PRESENCE mandatory}, + ... +} + +E-RABs-ToBeAdded-Item ::= CHOICE { + sCG-Bearer E-RABs-ToBeAdded-Item-SCG-Bearer, + split-Bearer E-RABs-ToBeAdded-Item-Split-Bearer, + ... +} + +E-RABs-ToBeAdded-Item-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + dL-Forwarding DL-Forwarding OPTIONAL, + s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-Item-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-Item-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}, + ... +} + +E-RABs-ToBeAdded-Item-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + meNB-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-Item-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-Item-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB ADDITION REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +SeNBAdditionRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBAdditionRequestAcknowledge-IEs}}, + ... +} + +SeNBAdditionRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-Admitted-ToBeAdded-List CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-List PRESENCE mandatory}| + { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| + { ID id-SeNBtoMeNBContainer CRITICALITY reject TYPE SeNBtoMeNBContainer PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}, + ... +} + +E-RABs-Admitted-ToBeAdded-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-ItemIEs} } + +E-RABs-Admitted-ToBeAdded-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeAdded-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-Item PRESENCE mandatory} +} + +E-RABs-Admitted-ToBeAdded-Item ::= CHOICE { + sCG-Bearer E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer, + split-Bearer E-RABs-Admitted-ToBeAdded-Item-Split-Bearer, + ... +} + +E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-Item-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-Item-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeAdded-Item-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + seNB-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-Item-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-Item-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB ADDITION REQUEST REJECT +-- +-- ************************************************************** + +SeNBAdditionRequestReject ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBAdditionRequestReject-IEs}}, + ... +} + +SeNBAdditionRequestReject-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SENB RECONFIGURATION COMPLETE +-- +-- ************************************************************** + +SeNBReconfigurationComplete ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBReconfigurationComplete-IEs}}, + ... +} + +SeNBReconfigurationComplete-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-ResponseInformationSeNBReconfComp CRITICALITY ignore TYPE ResponseInformationSeNBReconfComp PRESENCE mandatory}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +ResponseInformationSeNBReconfComp ::= CHOICE { + success ResponseInformationSeNBReconfComp-SuccessItem, + reject-by-MeNB ResponseInformationSeNBReconfComp-RejectByMeNBItem, + ... +} + +ResponseInformationSeNBReconfComp-SuccessItem ::= SEQUENCE { + meNBtoSeNBContainer MeNBtoSeNBContainer OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ResponseInformationSeNBReconfComp-SuccessItemExtIEs} } OPTIONAL, + ... +} + +ResponseInformationSeNBReconfComp-SuccessItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ResponseInformationSeNBReconfComp-RejectByMeNBItem ::= SEQUENCE { + cause Cause, + meNBtoSeNBContainer MeNBtoSeNBContainer OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ResponseInformationSeNBReconfComp-RejectByMeNBItemExtIEs} } OPTIONAL, + ... +} + +ResponseInformationSeNBReconfComp-RejectByMeNBItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION REQUEST +-- +-- ************************************************************** + +SeNBModificationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SeNBModificationRequest-IEs}}, + ... +} + +SeNBModificationRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-SCGChangeIndication CRITICALITY ignore TYPE SCGChangeIndication PRESENCE optional}| + { ID id-ServingPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| + { ID id-UE-ContextInformationSeNBModReq CRITICALITY reject TYPE UE-ContextInformationSeNBModReq PRESENCE optional}| + { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +UE-ContextInformationSeNBModReq ::= SEQUENCE { + uE-SecurityCapabilities UESecurityCapabilities OPTIONAL, + seNB-SecurityKey SeNBSecurityKey OPTIONAL, + seNBUEAggregateMaximumBitRate UEAggregateMaximumBitRate OPTIONAL, + e-RABs-ToBeAdded E-RABs-ToBeAdded-List-ModReq OPTIONAL, + e-RABs-ToBeModified E-RABs-ToBeModified-List-ModReq OPTIONAL, + e-RABs-ToBeReleased E-RABs-ToBeReleased-List-ModReq OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { UE-ContextInformationSeNBModReqExtIEs} } OPTIONAL, + ... +} + +UE-ContextInformationSeNBModReqExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeAdded-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-ModReqItemIEs} } + +E-RABs-ToBeAdded-ModReqItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeAdded-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeAdded-ModReqItem PRESENCE mandatory}, + ... +} + +E-RABs-ToBeAdded-ModReqItem ::= CHOICE { + sCG-Bearer E-RABs-ToBeAdded-ModReqItem-SCG-Bearer, + split-Bearer E-RABs-ToBeAdded-ModReqItem-Split-Bearer, + ... +} + +E-RABs-ToBeAdded-ModReqItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + dL-Forwarding DL-Forwarding OPTIONAL, + s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}, + ... +} + +E-RABs-ToBeAdded-ModReqItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + meNB-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-ModReqItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeModified-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeModified-ModReqItemIEs} } + +E-RABs-ToBeModified-ModReqItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeModified-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeModified-ModReqItem PRESENCE mandatory}, + ... +} + + +E-RABs-ToBeModified-ModReqItem ::= CHOICE { + sCG-Bearer E-RABs-ToBeModified-ModReqItem-SCG-Bearer, + split-Bearer E-RABs-ToBeModified-ModReqItem-Split-Bearer, + ... +} + +E-RABs-ToBeModified-ModReqItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, + s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeModified-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeModified-ModReqItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, + meNB-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-ModReqItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeModified-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-ModReqItemIEs} } + +E-RABs-ToBeReleased-ModReqItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqItem PRESENCE mandatory}, + ... +} + +E-RABs-ToBeReleased-ModReqItem ::= CHOICE { + sCG-Bearer E-RABs-ToBeReleased-ModReqItem-SCG-Bearer, + split-Bearer E-RABs-ToBeReleased-ModReqItem-Split-Bearer, + ... +} + +E-RABs-ToBeReleased-ModReqItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-ModReqItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +SeNBModificationRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBModificationRequestAcknowledge-IEs}}, + ... +} + +SeNBModificationRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-Admitted-ToBeAdded-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-ModAckList PRESENCE optional}| + { ID id-E-RABs-Admitted-ToBeModified-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-ModAckList PRESENCE optional}| + { ID id-E-RABs-Admitted-ToBeReleased-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeReleased-ModAckList PRESENCE optional}| + { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| + { ID id-SeNBtoMeNBContainer CRITICALITY ignore TYPE SeNBtoMeNBContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +E-RABs-Admitted-ToBeAdded-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-ModAckItemIEs} } + +E-RABs-Admitted-ToBeAdded-ModAckItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeAdded-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-ModAckItem PRESENCE mandatory} +} + +E-RABs-Admitted-ToBeAdded-ModAckItem ::= CHOICE { + sCG-Bearer E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer, + split-Bearer E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer, + ... +} + +E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + seNB-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-ModAckItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} +E-RABs-Admitted-ToBeModified-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeModified-ModAckItemIEs} } + +E-RABs-Admitted-ToBeModified-ModAckItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeModified-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-ModAckItem PRESENCE mandatory} +} + +E-RABs-Admitted-ToBeModified-ModAckItem ::= CHOICE { + sCG-Bearer E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer, + split-Bearer E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer, + ... +} + +E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeModified-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + seNB-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-ModAckItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeModified-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeReleased-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeReleased-ModAckItemIEs} } + +E-RABs-Admitted-ToBeReleased-ModAckItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeReleased-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToReleased-ModAckItem PRESENCE mandatory} +} + +E-RABs-Admitted-ToReleased-ModAckItem ::= CHOICE { + sCG-Bearer E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer, + split-Bearer E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer, + ... +} + +E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-ModAckItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeReleased-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION REQUEST REJECT +-- +-- ************************************************************** + +SeNBModificationRequestReject ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBModificationRequestReject-IEs}}, + ... +} + +SeNBModificationRequestReject-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION REQUIRED +-- +-- ************************************************************** + +SeNBModificationRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBModificationRequired-IEs}}, + ... +} + +SeNBModificationRequired-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-SCGChangeIndication CRITICALITY ignore TYPE SCGChangeIndication PRESENCE optional}| + { ID id-E-RABs-ToBeReleased-ModReqd CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqd PRESENCE optional}| + { ID id-SeNBtoMeNBContainer CRITICALITY ignore TYPE SeNBtoMeNBContainer PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + + +E-RABs-ToBeReleased-ModReqd ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-ModReqdItemIEs} } + +E-RABs-ToBeReleased-ModReqdItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-ModReqdItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqdItem PRESENCE mandatory }, + ... +} + +E-RABs-ToBeReleased-ModReqdItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqdItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-ModReqdItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION CONFIRM +-- +-- ************************************************************** + +SeNBModificationConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBModificationConfirm-IEs}}, + ... +} + +SeNBModificationConfirm-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION REFUSE +-- +-- ************************************************************** + +SeNBModificationRefuse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBModificationRefuse-IEs}}, + ... +} + +SeNBModificationRefuse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SENB RELEASE REQUEST +-- +-- ************************************************************** + +SeNBReleaseRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBReleaseRequest-IEs}}, + ... +} + +SeNBReleaseRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE optional}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional}| + { ID id-E-RABs-ToBeReleased-List-RelReq CRITICALITY ignore TYPE E-RABs-ToBeReleased-List-RelReq PRESENCE optional}| + { ID id-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-MakeBeforeBreakIndicator CRITICALITY ignore TYPE MakeBeforeBreakIndicator PRESENCE optional}, + ... +} +E-RABs-ToBeReleased-List-RelReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-RelReqItemIEs} } + +E-RABs-ToBeReleased-RelReqItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-RelReqItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-RelReqItem PRESENCE mandatory}, + ... +} + +E-RABs-ToBeReleased-RelReqItem ::= CHOICE { + sCG-Bearer E-RABs-ToBeReleased-RelReqItem-SCG-Bearer, + split-Bearer E-RABs-ToBeReleased-RelReqItem-Split-Bearer, + ... +} + +E-RABs-ToBeReleased-RelReqItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelReqItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-RelReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-RelReqItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelReqItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-RelReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB RELEASE REQUIRED +-- +-- ************************************************************** + +SeNBReleaseRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBReleaseRequired-IEs}}, + ... +} + +SeNBReleaseRequired-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SENB RELEASE CONFIRM +-- +-- ************************************************************** + +SeNBReleaseConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBReleaseConfirm-IEs}}, + ... +} + +SeNBReleaseConfirm-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-ToBeReleased-List-RelConf CRITICALITY ignore TYPE E-RABs-ToBeReleased-List-RelConf PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} +E-RABs-ToBeReleased-List-RelConf ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-RelConfItemIEs} } + +E-RABs-ToBeReleased-RelConfItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-RelConfItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-RelConfItem PRESENCE mandatory}, + ... +} + +E-RABs-ToBeReleased-RelConfItem ::= CHOICE { + sCG-Bearer E-RABs-ToBeReleased-RelConfItem-SCG-Bearer, + split-Bearer E-RABs-ToBeReleased-RelConfItem-Split-Bearer, + ... +} + +E-RABs-ToBeReleased-RelConfItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelConfItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-RelConfItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-RelConfItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelConfItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-RelConfItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB COUNTER CHECK REQUEST +-- +-- ************************************************************** + +SeNBCounterCheckRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBCounterCheckRequest-IEs}}, + ... +} + +SeNBCounterCheckRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-SubjectToCounterCheck-List CRITICALITY ignore TYPE E-RABs-SubjectToCounterCheck-List PRESENCE mandatory}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} +E-RABs-SubjectToCounterCheck-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-SubjectToCounterCheckItemIEs} } + +E-RABs-SubjectToCounterCheckItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-SubjectToCounterCheckItem CRITICALITY ignore TYPE E-RABs-SubjectToCounterCheckItem PRESENCE mandatory}, + ... +} + +E-RABs-SubjectToCounterCheckItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-Count INTEGER (0..4294967295), + dL-Count INTEGER (0..4294967295), + iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToCounterCheckItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-SubjectToCounterCheckItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- X2 REMOVAL REQUEST +-- +-- ************************************************************** + +X2RemovalRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2RemovalRequest-IEs}}, + ... +} + +X2RemovalRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| + { ID id-X2RemovalThreshold CRITICALITY reject TYPE X2BenefitValue PRESENCE optional}, +... +} + + + +-- ************************************************************** +-- +-- X2 REMOVAL RESPONSE +-- +-- ************************************************************** + +X2RemovalResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2RemovalResponse-IEs}}, + ... +} + +X2RemovalResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + + + +-- ************************************************************** +-- +-- X2 REMOVAL FAILURE +-- +-- ************************************************************** + +X2RemovalFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2RemovalFailure-IEs}}, + ... +} + +X2RemovalFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- RETRIEVE UE CONTEXT REQUEST +-- +-- ************************************************************** + +RetrieveUEContextRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ RetrieveUEContextRequest-IEs}}, + ... +} + +RetrieveUEContextRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-resumeID CRITICALITY reject TYPE ResumeID PRESENCE mandatory}| + { ID id-ShortMAC-I CRITICALITY reject TYPE ShortMAC-I PRESENCE mandatory}| + { ID id-NewEUTRANCellIdentifier CRITICALITY reject TYPE EUTRANCellIdentifier PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- RETRIEVE UE CONTEXT RESPONSE +-- +-- ************************************************************** + +RetrieveUEContextResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ RetrieveUEContextResponse-IEs}}, + ... +} + +RetrieveUEContextResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory}| + { ID id-UE-ContextInformationRetrieve CRITICALITY reject TYPE UE-ContextInformationRetrieve PRESENCE mandatory}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}, + ... +} + +UE-ContextInformationRetrieve ::= SEQUENCE { + mME-UE-S1AP-ID UE-S1AP-ID, + uESecurityCapabilities UESecurityCapabilities, + aS-SecurityInformation AS-SecurityInformation, + uEaggregateMaximumBitRate UEAggregateMaximumBitRate, + subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, + e-RABs-ToBeSetup-ListRetrieve E-RABs-ToBeSetup-ListRetrieve, + rRC-Context RRC-Context, + handoverRestrictionList HandoverRestrictionList OPTIONAL, + locationReportingInformation LocationReportingInformation OPTIONAL, + managBasedMDTallowed ManagementBasedMDTallowed OPTIONAL, + managBasedMDTPLMNList MDTPLMNList OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {UE-ContextInformationRetrieve-ExtIEs} } OPTIONAL, + ... +} + +UE-ContextInformationRetrieve-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-UESidelinkAggregateMaximumBitRate CRITICALITY ignore EXTENSION UESidelinkAggregateMaximumBitRate PRESENCE optional}, + ... +} + +E-RABs-ToBeSetup-ListRetrieve ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetupRetrieve-ItemIEs} } + +E-RABs-ToBeSetupRetrieve-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeSetupRetrieve-Item CRITICALITY ignore TYPE E-RABs-ToBeSetupRetrieve-Item PRESENCE mandatory}, + ... +} + +E-RABs-ToBeSetupRetrieve-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + bearerType BearerType OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetupRetrieve-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeSetupRetrieve-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-uL-GTPtunnelEndpoint CRITICALITY reject EXTENSION GTPtunnelEndpoint PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- RETRIEVE UE CONTEXT FAILURE +-- +-- ************************************************************** + +RetrieveUEContextFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ RetrieveUEContextFailure-IEs}}, + ... +} + +RetrieveUEContextFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SGNB ADDITION REQUEST +-- +-- ************************************************************** + +SgNBAdditionRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBAdditionRequest-IEs}}, + ... +} + +SgNBAdditionRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-NRUESecurityCapabilities CRITICALITY reject TYPE NRUESecurityCapabilities PRESENCE mandatory}| + { ID id-SgNBSecurityKey CRITICALITY reject TYPE SgNBSecurityKey PRESENCE mandatory}| + { ID id-SgNBUEAggregateMaximumBitRate CRITICALITY reject TYPE UEAggregateMaximumBitRate PRESENCE mandatory}| + { ID id-SelectedPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-E-RABs-ToBeAdded-SgNBAddReqList CRITICALITY reject TYPE E-RABs-ToBeAdded-SgNBAddReqList PRESENCE mandatory}| + { ID id-MeNBtoSgNBContainer CRITICALITY reject TYPE MeNBtoSgNBContainer PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-RequestedMCGSplitSRBs CRITICALITY reject TYPE MCGSplitSRBs PRESENCE optional}| + { ID id-MeNBResourceCoordinationInformation CRITICALITY ignore TYPE MeNBResourceCoordinationInformation PRESENCE optional}, + ... +} + +E-RABs-ToBeAdded-SgNBAddReqList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-SgNBAddReq-ItemIEs} } + +E-RABs-ToBeAdded-SgNBAddReq-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeAdded-SgNBAddReq-Item CRITICALITY reject TYPE E-RABs-ToBeAdded-SgNBAddReq-Item PRESENCE mandatory}, + ... +} + +E-RABs-ToBeAdded-SgNBAddReq-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + drb-ID DRB-ID, + en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, + resource-configuration CHOICE { + sgNBPDCPpresent E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent, + sgNBPDCPnotpresent E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent, + ... + }, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReq-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-SgNBAddReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent ::= SEQUENCE { + full-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + max-MCG-admit-E-RAB-Level-QoS-Parameters GBR-QosInformation OPTIONAL, +-- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” and GBR QoS Information IE is present in Full E-RAB Level QoS Parameters IE -- + dL-Forwarding DL-Forwarding OPTIONAL, + meNB-DL-GTP-TEIDatMCG GTPtunnelEndpoint OPTIONAL, +-- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” -- + s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { + requested-SCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint, + rlc-Mode RLCMode, + uL-Configuration ULConfiguration OPTIONAL, +-- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” -- + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SGNB ADDITION REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +SgNBAdditionRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBAdditionRequestAcknowledge-IEs}}, + ... +} + +SgNBAdditionRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList PRESENCE mandatory}| + { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| + { ID id-SgNBtoMeNBContainer CRITICALITY reject TYPE SgNBtoMeNBContainer PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-AdmittedMCGSplitSRBs CRITICALITY reject TYPE MCGSplitSRBs PRESENCE optional}| + { ID id-SgNBResourceCoordinationInformation CRITICALITY ignore TYPE SgNBResourceCoordinationInformation PRESENCE optional}, + ... +} + +E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-ItemIEs} } + +E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item PRESENCE mandatory} +} + +E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, + resource-configuration CHOICE { + sgNBPDCPpresent E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent, + sgNBPDCPnotpresent E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent, + ... + }, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReqAck-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-SgNBAddReqAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent ::= SEQUENCE { + s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, + sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, +-- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” -- + rlc-Mode RLCMode OPTIONAL, +-- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” -- + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + mCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, +-- This IE shall be present if MCG resource and SCG resource IEs in the the EN-DC Resource Configuration IE are set to “present” -- + uL-Configuration ULConfiguration OPTIONAL, +-- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” -- + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent ::= SEQUENCE { + sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- SGNB ADDITION REQUEST REJECT +-- +-- ************************************************************** + +SgNBAdditionRequestReject ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBAdditionRequestReject-IEs}}, + ... +} + +SgNBAdditionRequestReject-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE optional}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- SGNB RECONFIGURATION COMPLETE +-- +-- ************************************************************** + +SgNBReconfigurationComplete ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBReconfigurationComplete-IEs}}, + ... +} + +SgNBReconfigurationComplete-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-ResponseInformationSgNBReconfComp CRITICALITY ignore TYPE ResponseInformationSgNBReconfComp PRESENCE mandatory}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +ResponseInformationSgNBReconfComp ::= CHOICE { + success-SgNBReconfComp ResponseInformationSgNBReconfComp-SuccessItem, + reject-by-MeNB-SgNBReconfComp ResponseInformationSgNBReconfComp-RejectByMeNBItem, + ... +} + +ResponseInformationSgNBReconfComp-SuccessItem ::= SEQUENCE { + meNBtoSgNBContainer MeNBtoSgNBContainer OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ResponseInformationSgNBReconfComp-SuccessItemExtIEs} } OPTIONAL, + ... +} + +ResponseInformationSgNBReconfComp-SuccessItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ResponseInformationSgNBReconfComp-RejectByMeNBItem ::= SEQUENCE { + cause Cause, + iE-Extensions ProtocolExtensionContainer { {ResponseInformationSgNBReconfComp-RejectByMeNBItemExtIEs} } OPTIONAL, + ... +} + +ResponseInformationSgNBReconfComp-RejectByMeNBItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- SGNB MODIFICATION REQUEST +-- +-- ************************************************************** + +SgNBModificationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SgNBModificationRequest-IEs}}, + ... +} + +SgNBModificationRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-SelectedPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-SCGConfigurationQuery CRITICALITY ignore TYPE SCGConfigurationQuery PRESENCE optional}| + { ID id-UE-ContextInformation-SgNBModReq CRITICALITY reject TYPE UE-ContextInformation-SgNBModReq PRESENCE optional}| + { ID id-MeNBtoSgNBContainer CRITICALITY ignore TYPE MeNBtoSgNBContainer PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-MeNBResourceCoordinationInformation CRITICALITY ignore TYPE MeNBResourceCoordinationInformation PRESENCE optional}, + ... +} + +UE-ContextInformation-SgNBModReq ::= SEQUENCE { + nRUE-SecurityCapabilities NRUESecurityCapabilities OPTIONAL, + sgNB-SecurityKey SgNBSecurityKey OPTIONAL, + sgNBUEAggregateMaximumBitRate UEAggregateMaximumBitRate OPTIONAL, + e-RABs-ToBeAdded E-RABs-ToBeAdded-SgNBModReq-List OPTIONAL, + e-RABs-ToBeModified E-RABs-ToBeModified-SgNBModReq-List OPTIONAL, + e-RABs-ToBeReleased E-RABs-ToBeReleased-SgNBModReq-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {UE-ContextInformationSgNBModReqExtIEs} } OPTIONAL, + ... +} + +UE-ContextInformationSgNBModReqExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeAdded-SgNBModReq-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-SgNBModReq-ItemIEs} } + +E-RABs-ToBeAdded-SgNBModReq-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeAdded-SgNBModReq-Item CRITICALITY ignore TYPE E-RABs-ToBeAdded-SgNBModReq-Item PRESENCE mandatory}, + ... +} + +E-RABs-ToBeAdded-SgNBModReq-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + drb-ID DRB-ID, + en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, + resource-configuration CHOICE { + sgNBPDCPpresent E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent, + sgNBPDCPnotpresent E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent, + ... + }, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModReq-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-SgNBModReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent ::= SEQUENCE { + full-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + max-MN-admit-E-RAB-Level-QoS-Parameters GBR-QosInformation OPTIONAL, +-- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” and GBR QoS Information IE is present in Full E-RAB Level QoS Parameters IE -- + dL-Forwarding DL-Forwarding OPTIONAL, + meNB-DL-GTP-TEIDatMCG GTPtunnelEndpoint OPTIONAL, +-- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” -- + s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { + requested-SCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint, + rlc-Mode RLCMode, + uL-Configuration ULConfiguration OPTIONAL, +-- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” -- + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +E-RABs-ToBeModified-SgNBModReq-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeModified-SgNBModReq-ItemIEs} } + +E-RABs-ToBeModified-SgNBModReq-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeModified-SgNBModReq-Item CRITICALITY ignore TYPE E-RABs-ToBeModified-SgNBModReq-Item PRESENCE mandatory}, + ... +} + + +E-RABs-ToBeModified-SgNBModReq-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, + resource-configuration CHOICE { + sgNBPDCPpresent E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent, + sgNBPDCPnotpresent E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent, + ... + }, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReq-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeModified-SgNBModReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent ::= SEQUENCE { + full-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, + max-MN-admit-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, + meNB-DL-GTP-TEIDatMCG GTPtunnelEndpoint OPTIONAL, + s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { + requested-SCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, + meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, + uL-Configuration ULConfiguration OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-SgNBModReq-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBModReq-ItemIEs} } + +E-RABs-ToBeReleased-SgNBModReq-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-SgNBModReq-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBModReq-Item PRESENCE mandatory}, + ... +} + +E-RABs-ToBeReleased-SgNBModReq-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, + resource-configuration CHOICE { + sgNBPDCPpresent E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent, + sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent, + ... + }, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReq-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBModReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent ::= SEQUENCE { + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- SGNB MODIFICATION REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +SgNBModificationRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBModificationRequestAcknowledge-IEs}}, + ... +} + +SgNBModificationRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-Admitted-ToBeAdded-SgNBModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBModAckList PRESENCE optional}| + { ID id-E-RABs-Admitted-ToBeModified-SgNBModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-SgNBModAckList PRESENCE optional}| + { ID id-E-RABs-Admitted-ToBeReleased-SgNBModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeReleased-SgNBModAckList PRESENCE optional}| + { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| + { ID id-SgNBtoMeNBContainer CRITICALITY ignore TYPE SgNBtoMeNBContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SgNBResourceCoordinationInformation CRITICALITY ignore TYPE SgNBResourceCoordinationInformation PRESENCE optional}, + ... +} + +E-RABs-Admitted-ToBeAdded-SgNBModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemIEs} } + +E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeAdded-SgNBModAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBModAck-Item PRESENCE mandatory} +} + +E-RABs-Admitted-ToBeAdded-SgNBModAck-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, + resource-configuration CHOICE { + sgNBPDCPpresent E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent, + sgNBPDCPnotpresent E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent, + ... + }, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent ::= SEQUENCE { + s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, + sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, +-- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE are set to “present” -- + rlc-Mode RLCMode OPTIONAL, +-- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE are set to “present” -- + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + mCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, +-- This IE shall be present if MCG resource and SCG resource IEs in the the EN-DC Resource Configuration IE are set to “present” -- + uL-Configuration ULConfiguration OPTIONAL, +-- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” -- + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent ::= SEQUENCE { + sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeModified-SgNBModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeModified-SgNBModAck-ItemIEs} } + +E-RABs-Admitted-ToBeModified-SgNBModAck-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeModified-SgNBModAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-SgNBModAck-Item PRESENCE mandatory} +} + +E-RABs-Admitted-ToBeModified-SgNBModAck-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, + resource-configuration CHOICE { + sgNBPDCPpresent E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent, + sgNBPDCPnotpresent E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent, + ... + }, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModAck-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-SgNBModAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent ::= SEQUENCE { + s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, + mCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent ::= SEQUENCE { + sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeReleased-SgNBModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeReleased-SgNBModAck-ItemIEs} } + +E-RABs-Admitted-ToBeReleased-SgNBModAck-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeReleased-SgNBModAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToReleased-SgNBModAck-Item PRESENCE mandatory} +} + +E-RABs-Admitted-ToReleased-SgNBModAck-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, + resource-configuration CHOICE { + sgNBPDCPpresent E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent, + sgNBPDCPnotpresent E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent, + ... + }, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModAck-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBModAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent ::= SEQUENCE { + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent ::= SEQUENCE { + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- SGNB MODIFICATION REQUEST REJECT +-- +-- ************************************************************** + +SgNBModificationRequestReject ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBModificationRequestReject-IEs}}, + ... +} + +SgNBModificationRequestReject-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- SGNB MODIFICATION REQUIRED +-- +-- ************************************************************** + +SgNBModificationRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBModificationRequired-IEs}}, + ... +} + +SgNBModificationRequired-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-PDCPChangeIndication CRITICALITY ignore TYPE PDCPChangeIndication PRESENCE optional}| + { ID id-E-RABs-ToBeReleased-SgNBModReqdList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBModReqdList PRESENCE optional}| + { ID id-SgNBtoMeNBContainer CRITICALITY ignore TYPE SgNBtoMeNBContainer PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-E-RABs-ToBeModified-SgNBModReqdList CRITICALITY ignore TYPE E-RABs-ToBeModified-SgNBModReqdList PRESENCE optional}| + { ID id-SgNBResourceCoordinationInformation CRITICALITY ignore TYPE SgNBResourceCoordinationInformation PRESENCE optional}, + ... +} + + +E-RABs-ToBeReleased-SgNBModReqdList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBModReqd-ItemIEs} } + +E-RABs-ToBeReleased-SgNBModReqd-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-SgNBModReqd-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBModReqd-Item PRESENCE mandatory }, + ... +} + +E-RABs-ToBeReleased-SgNBModReqd-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReqd-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBModReqd-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeModified-SgNBModReqdList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeModified-SgNBModReqd-ItemIEs} } + +E-RABs-ToBeModified-SgNBModReqd-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeModified-SgNBModReqd-Item CRITICALITY ignore TYPE E-RABs-ToBeModified-SgNBModReqd-Item PRESENCE mandatory }, + ... +} + +E-RABs-ToBeModified-SgNBModReqd-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, + resource-configuration CHOICE { + sgNBPDCPpresent E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent, + sgNBPDCPnotpresent E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent, + ... + }, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReqd-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeModified-SgNBModReqd-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent ::= SEQUENCE { + requested-MCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, + uL-Configuration ULConfiguration OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent ::= SEQUENCE { + sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- SGNB MODIFICATION CONFIRM +-- +-- ************************************************************** + +SgNBModificationConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBModificationConfirm-IEs}}, + ... +} + +SgNBModificationConfirm-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-MeNBtoSgNBContainer CRITICALITY ignore TYPE MeNBtoSgNBContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-MeNBResourceCoordinationInformation CRITICALITY ignore TYPE MeNBResourceCoordinationInformation PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SGNB MODIFICATION REFUSE +-- +-- ************************************************************** + +SgNBModificationRefuse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBModificationRefuse-IEs}}, + ... +} + +SgNBModificationRefuse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-MeNBtoSgNBContainer CRITICALITY ignore TYPE MeNBtoSgNBContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SGNB RELEASE REQUEST +-- +-- ************************************************************** + +SgNBReleaseRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBReleaseRequest-IEs}}, + ... +} + +SgNBReleaseRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE optional}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-E-RABs-ToBeReleased-SgNBRelReqList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelReqList PRESENCE optional}| + { ID id-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-MeNBtoSgNBContainer CRITICALITY reject TYPE MeNBtoSgNBContainer PRESENCE optional}, + ... +} + +E-RABs-ToBeReleased-SgNBRelReqList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBRelReq-ItemIEs} } + +E-RABs-ToBeReleased-SgNBRelReq-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-SgNBRelReq-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelReq-Item PRESENCE mandatory}, + ... +} + +E-RABs-ToBeReleased-SgNBRelReq-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, + resource-configuration CHOICE { + sgNBPDCPpresent E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent, + sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent, + ... + }, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelReq-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBRelReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent ::= SEQUENCE { + uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SGNB RELEASE REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +SgNBReleaseRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBReleaseRequestAcknowledge-IEs}}, + ... +} + +SgNBReleaseRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SGNB RELEASE REQUEST REJECT +-- +-- ************************************************************** + +SgNBReleaseRequestReject ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBReleaseRequestReject-IEs}}, + ... +} + +SgNBReleaseRequestReject-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SGNB RELEASE REQUIRED +-- +-- ************************************************************** + +SgNBReleaseRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBReleaseRequired-IEs}}, + ... +} + +SgNBReleaseRequired-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SGNB RELEASE CONFIRM +-- +-- ************************************************************** + +SgNBReleaseConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBReleaseConfirm-IEs}}, + ... +} + +SgNBReleaseConfirm-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-ToBeReleased-SgNBRelConfList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelConfList PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +E-RABs-ToBeReleased-SgNBRelConfList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBRelConf-ItemIEs} } + +E-RABs-ToBeReleased-SgNBRelConf-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-SgNBRelConf-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelConf-Item PRESENCE mandatory}, + ... +} + +E-RABs-ToBeReleased-SgNBRelConf-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, + resource-configuration CHOICE { + sgNBPDCPpresent E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent, + sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent, + ... + }, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelConf-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBRelConf-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent ::= SEQUENCE { + uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent ::= SEQUENCE { + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- SGNB COUNTER CHECK REQUEST +-- +-- ************************************************************** + +SgNBCounterCheckRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBCounterCheckRequest-IEs}}, + ... +} + +SgNBCounterCheckRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-SubjectToSgNBCounterCheck-List CRITICALITY ignore TYPE E-RABs-SubjectToSgNBCounterCheck-List PRESENCE mandatory}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} +E-RABs-SubjectToSgNBCounterCheck-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-SubjectToSgNBCounterCheck-ItemIEs} } + +E-RABs-SubjectToSgNBCounterCheck-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-SubjectToSgNBCounterCheck-Item CRITICALITY ignore TYPE E-RABs-SubjectToSgNBCounterCheck-Item PRESENCE mandatory}, + ... +} + +E-RABs-SubjectToSgNBCounterCheck-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-Count INTEGER (0..4294967295), + dL-Count INTEGER (0..4294967295), + iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToSgNBCounterCheck-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-SubjectToSgNBCounterCheck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SGNB CHANGE REQUIRED +-- +-- ************************************************************** + +SgNBChangeRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBChangeRequired-IEs}}, + ... +} + +SgNBChangeRequired-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-Target-SgNB-ID CRITICALITY ignore TYPE GNB-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-SgNBtoMeNBContainer CRITICALITY ignore TYPE SgNBtoMeNBContainer PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SGNB CHANGE CONFIRM +-- +-- ************************************************************** + +SgNBChangeConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBChangeConfirm-IEs}}, + ... +} + +SgNBChangeConfirm-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-ToBeReleased-SgNBChaConfList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBChaConfList PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +E-RABs-ToBeReleased-SgNBChaConfList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBChaConf-ItemIEs} } + +E-RABs-ToBeReleased-SgNBChaConf-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-SgNBChaConf-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBChaConf-Item PRESENCE mandatory}, + ... +} + +E-RABs-ToBeReleased-SgNBChaConf-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, + resource-configuration CHOICE { + sgNBPDCPpresent E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent, + sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent, + ... + }, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBChaConf-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBChaConf-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent ::= SEQUENCE { + uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent ::= SEQUENCE { + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- RRC Transfer +-- +-- ************************************************************** + +RRCTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RRCTransfer-IEs}}, + ... +} + +RRCTransfer-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-MCGSplitSRB CRITICALITY ignore TYPE MCGSplitSRB PRESENCE optional}| + { ID id-UENRMeasurement CRITICALITY ignore TYPE UENRMeasurement PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SGNB CHANGE REFUSE +-- +-- ************************************************************** + +SgNBChangeRefuse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBChangeRefuse-IEs}}, + ... +} + +SgNBChangeRefuse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- EN-DC X2 SETUP REQUEST +-- +-- ************************************************************** + +ENDCX2SetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENDCX2SetupRequest-IEs}}, + ... +} + +ENDCX2SetupRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-InitiatingNodeType-EndcX2Setup CRITICALITY reject TYPE InitiatingNodeType-EndcX2Setup PRESENCE mandatory}, + ... +} + +InitiatingNodeType-EndcX2Setup ::= CHOICE { + init-eNB ProtocolIE-Container {{ENB-ENDCX2SetupReqIEs}}, + init-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2SetupReqIEs}}, + ... +} + +ENB-ENDCX2SetupReqIEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| + { ID id-ServedEUTRAcellsENDCX2ManagementList CRITICALITY reject TYPE ServedEUTRAcellsENDCX2ManagementList PRESENCE mandatory}, + ... +} + +ServedEUTRAcellsENDCX2ManagementList ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { + servedEUTRACellInfo ServedCell-Information, + nrNeighbourInfo NRNeighbour-Information OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ServedEUTRAcellsENDCX2Management-ExtIEs} } OPTIONAL, + ... +} + +ServedEUTRAcellsENDCX2Management-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +En-gNB-ENDCX2SetupReqIEs X2AP-PROTOCOL-IES ::= { + { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}| + { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE mandatory}, + ... +} + +ServedNRcellsENDCX2ManagementList ::= SEQUENCE (SIZE (1.. maxCellinengNB)) OF SEQUENCE { + servedNRCellInfo ServedNRCell-Information, + nRNeighbourInfo NRNeighbour-Information OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { En-gNBServedCells-ExtIEs} } OPTIONAL, + ... +} + +En-gNBServedCells-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedNRCell-Information ::= SEQUENCE { + nrpCI NRPCI, + nrCellID NRCGI, + eXtended-TAC Extended-TAC, + broadcastPLMNs BroadcastPLMNs-Item, + nrModeInfo CHOICE { + fdd FDD-InfoServedNRCell-Information, + tdd TDD-InfoServedNRCell-Information, + ... + }, + measurementTimingConfiguration OCTET STRING, + sULInformation SULInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ServedNRCell-Information-ExtIEs} } OPTIONAL, + ... +} + +ServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +FDD-InfoServedNRCell-Information ::= SEQUENCE { + ul-NR-ARFCN NRARFCN, + dl-NR-ARFCN NRARFCN, + ul-NR-TxBW NR-TxBW, + dl-NR-TxBW NR-TxBW, + iE-Extensions ProtocolExtensionContainer { { FDD-InfoServedNRCell-Information-ExtIEs } } OPTIONAL, + ... +} + +FDD-InfoServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +TDD-InfoServedNRCell-Information ::= SEQUENCE { + nR-ARFCN NRARFCN, + nR-TxBW NR-TxBW, + iE-Extensions ProtocolExtensionContainer { { TDD-InfoServedNRCell-Information-ExtIEs } } OPTIONAL, + ... +} + +TDD-InfoServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +NRNeighbour-Information ::= SEQUENCE (SIZE (1.. maxofNRNeighbours))OF SEQUENCE { + nrpCI NRPCI, + nrCellID NRCGI, + nrARFCN NRARFCN, + eXtended-TAC Extended-TAC, + iE-Extensions ProtocolExtensionContainer { { NRNeighbour-Information-ExtIEs} } OPTIONAL, + ... +} + +NRNeighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellAssistanceInformation ::= CHOICE { + limited-list Limited-list, + full-list ENUMERATED {allServedNRcells, ...}, + ... +} + + +Limited-list ::= SEQUENCE (SIZE (1..maxCellinengNB)) OF SEQUENCE { + nrCellID NRCGI, + ... +} + +-- ************************************************************** +-- +-- EN-DC X2 SETUP RESPONSE +-- +-- ************************************************************** + +ENDCX2SetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENDCX2SetupResponse-IEs}}, + ... +} + +ENDCX2SetupResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-RespondingNodeType-EndcX2Setup CRITICALITY reject TYPE RespondingNodeType-EndcX2Setup PRESENCE mandatory}, + ... +} + +RespondingNodeType-EndcX2Setup ::= CHOICE { + respond-eNB ProtocolIE-Container {{ENB-ENDCX2SetupReqAckIEs}}, + respond-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2SetupReqAckIEs}}, + ... +} + +ENB-ENDCX2SetupReqAckIEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| + { ID id-ServedEUTRAcellsENDCX2ManagementList CRITICALITY reject TYPE ServedEUTRAcellsENDCX2ManagementList PRESENCE mandatory}, + ... +} + + +En-gNB-ENDCX2SetupReqAckIEs X2AP-PROTOCOL-IES ::= { + { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}| + { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- EN-DC X2 SETUP FAILURE +-- +-- ************************************************************** + +ENDCX2SetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENDCX2SetupFailure-IEs}}, + ... +} + +ENDCX2SetupFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- EN-DC CONFIGURATION UPDATE +-- +-- ************************************************************** + +ENDCConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENDCConfigurationUpdate-IEs}}, + ... +} + +ENDCConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= { + { ID id-InitiatingNodeType-EndcConfigUpdate CRITICALITY reject TYPE InitiatingNodeType-EndcConfigUpdate PRESENCE mandatory}, + ... +} + +InitiatingNodeType-EndcConfigUpdate::= CHOICE { + init-eNB ProtocolIE-Container {{ENB-ENDCConfigUpdateIEs}}, + init-en-gNB ProtocolIE-Container {{En-gNB-ENDCConfigUpdateIEs}}, + ... +} + +ENB-ENDCConfigUpdateIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellAssistanceInformation CRITICALITY reject TYPE CellAssistanceInformation PRESENCE optional }| + { ID id-ServedEUTRAcellsENDCX2ManagementList CRITICALITY reject TYPE ServedEUTRAcellsENDCX2ManagementList PRESENCE optional }| + { ID id-ServedEUTRAcellsToModifyListENDCConfUpd CRITICALITY reject TYPE ServedEUTRAcellsToModifyListENDCConfUpd PRESENCE optional }| + { ID id-ServedEUTRAcellsToDeleteListENDCConfUpd CRITICALITY reject TYPE ServedEUTRAcellsToDeleteListENDCConfUpd PRESENCE optional }, + ... +} + +ServedEUTRAcellsToModifyListENDCConfUpd ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { + old-ECGI ECGI, + servedEUTRACellInfo ServedCell-Information, + nrNeighbourInfo NRNeighbour-Information OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ServedEUTRAcellsToModifyListENDCConfUpd-ExtIEs} } OPTIONAL, + ... +} + +ServedEUTRAcellsToModifyListENDCConfUpd-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedEUTRAcellsToDeleteListENDCConfUpd ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI + + +En-gNB-ENDCConfigUpdateIEs X2AP-PROTOCOL-IES ::= { + { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE optional }| + { ID id-ServedNRcellsToModifyListENDCConfUpd CRITICALITY reject TYPE ServedNRcellsToModifyENDCConfUpdList PRESENCE optional }| + { ID id-ServedNRcellsToDeleteListENDCConfUpd CRITICALITY reject TYPE ServedNRcellsToDeleteENDCConfUpdList PRESENCE optional }, + ... +} + +ServedNRcellsToModifyENDCConfUpdList ::= SEQUENCE (SIZE (1..maxCellinengNB)) OF ServedNRCellsToModify-Item + +ServedNRCellsToModify-Item::= SEQUENCE { + old-nrcgi NRCGI, + servedNRCellInformation ServedNRCell-Information, + nrNeighbourInformation NRNeighbour-Information OPTIONAL, + nrDeactivationIndication DeactivationIndication OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ServedNRCellsToModify-Item-ExtIEs} } OPTIONAL, + ... +} + +ServedNRCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedNRcellsToDeleteENDCConfUpdList ::= SEQUENCE (SIZE (1..maxCellinengNB)) OF NRCGI + +-- ************************************************************** +-- +-- EN-DC CONFIGURATION UPDATE ACKNOWLEDGE +-- +-- ************************************************************** + +ENDCConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENDCConfigurationUpdateAcknowledge-IEs}}, + ... +} + +ENDCConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-RespondingNodeType-EndcConfigUpdate CRITICALITY reject TYPE RespondingNodeType-EndcConfigUpdate PRESENCE mandatory}, + ... +} + + +RespondingNodeType-EndcConfigUpdate::= CHOICE { + respond-en-gNB ProtocolIE-Container {{En-gNB-ENDCConfigUpdateAckIEs}}, + ... +} + + +En-gNB-ENDCConfigUpdateAckIEs X2AP-PROTOCOL-IES ::= { + { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- EN-DC CONFIGURATION UPDATE FAILURE +-- +-- ************************************************************** + +ENDCConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENDCConfigurationUpdateFailure-IEs}}, + ... +} + +ENDCConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- EN-DC CELL ACTIVATION REQUEST +-- +-- ************************************************************** + +ENDCCellActivationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENDCCellActivationRequest-IEs}}, + ... +} + +ENDCCellActivationRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ServedNRCellsToActivate CRITICALITY reject TYPE ServedNRCellsToActivate PRESENCE mandatory}| + { ID id-ActivationID CRITICALITY reject TYPE ActivationID PRESENCE mandatory}, + ... +} + +ServedNRCellsToActivate::= SEQUENCE (SIZE (1.. maxCellinengNB)) OF ServedNRCellsToActivate-Item + +ServedNRCellsToActivate-Item::= SEQUENCE { + nrCellID NRCGI, + iE-Extensions ProtocolExtensionContainer { { ServedNRCellsToActivate-Item-ExtIEs} } OPTIONAL, + ... +} + +ServedNRCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- EN-DC CELL ACTIVATION RESPONSE +-- +-- ************************************************************** + +ENDCCellActivationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENDCCellActivationResponse-IEs}}, + ... +} + +ENDCCellActivationResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ActivatedNRCellList CRITICALITY ignore TYPE ActivatedNRCellList PRESENCE mandatory}| + { ID id-ActivationID CRITICALITY reject TYPE ActivationID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +ActivatedNRCellList ::= SEQUENCE (SIZE (1.. maxCellinengNB)) OF ActivatedNRCellList-Item + +ActivatedNRCellList-Item::= SEQUENCE { + nrCellID NRCGI, + iE-Extensions ProtocolExtensionContainer { { ActivatedNRCellList-Item-ExtIEs} } OPTIONAL, + ... +} + +ActivatedNRCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +--************************************************************** +-- +-- EN-DC CELL ACTIVATION FAILURE +-- +-- ************************************************************** + +ENDCCellActivationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENDCCellActivationFailure-IEs}}, + ... +} + +ENDCCellActivationFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ActivationID CRITICALITY reject TYPE ActivationID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- SECONDARY RAT DATA USAGE REPORT +-- +-- ************************************************************** + +SecondaryRATDataUsageReport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SecondaryRATDataUsageReport-IEs}}, + ... +} + +SecondaryRATDataUsageReport-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-SecondaryRATUsageReportList CRITICALITY reject TYPE SecondaryRATUsageReportList PRESENCE mandatory}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + + +END + + +-- ************************************************************** +-- +-- Information Element Definitions +-- +-- ************************************************************** + +X2AP-IEs { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-IEs (2) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + + id-E-RAB-Item, + id-Number-of-Antennaports, + id-MBSFN-Subframe-Info, + id-PRACH-Configuration, + id-CSG-Id, + id-MDTConfiguration, + id-SignallingBasedMDTPLMNList, + id-MultibandInfoList, + id-FreqBandIndicatorPriority, + id-NeighbourTAC, + id-Time-UE-StayedInCell-EnhancedGranularity, + id-MBMS-Service-Area-List, + id-HO-cause, + id-eARFCNExtension, + id-DL-EARFCNExtension, + id-UL-EARFCNExtension, + id-M3Configuration, + id-M4Configuration, + id-M5Configuration, + id-MDT-Location-Info, + id-NRrestriction, + id-AdditionalSpecialSubframe-Info, + id-UEID, + id-enhancedRNTP, + id-ProSeUEtoNetworkRelaying, + id-M6Configuration, + id-M7Configuration, + id-OffsetOfNbiotChannelNumberToDL-EARFCN, + id-OffsetOfNbiotChannelNumberToUL-EARFCN, + id-AdditionalSpecialSubframeExtension-Info, + id-BandwidthReducedSI, + id-extended-e-RAB-MaximumBitrateDL, + id-extended-e-RAB-MaximumBitrateUL, + id-extended-e-RAB-GuaranteedBitrateDL, + id-extended-e-RAB-GuaranteedBitrateUL, + id-extended-uEaggregateMaximumBitRateDownlink, + id-extended-uEaggregateMaximumBitRateUplink, + id-E-RABUsageReport-Item, + id-SecondaryRATUsageReport-Item, + id-UEAppLayerMeasConfig, + id-DL-scheduling-PDCCH-CCE-usage, + id-UL-scheduling-PDCCH-CCE-usage, + + maxnoofBearers, + maxCellineNB, + maxEARFCN, + maxEARFCNPlusOne, + newmaxEARFCN, + maxInterfaces, + + maxnoofBands, + maxnoofBPLMNs, + maxnoofCells, + maxnoofEPLMNs, + maxnoofEPLMNsPlusOne, + maxnoofForbLACs, + maxnoofForbTACs, + maxnoofNeighbours, + maxnoofPRBs, + maxNrOfErrors, + maxPools, + maxnoofMBSFN, + maxnoofTAforMDT, + maxnoofCellIDforMDT, + maxnoofMBMSServiceAreaIdentities, + maxnoofMDTPLMNs, + maxnoofCoMPHypothesisSet, + maxnoofCoMPCells, + maxUEReport, + maxCellReport, + maxnoofPA, + maxCSIProcess, + maxCSIReport, + maxSubband, + maxnooftimeperiods, + maxnoofCellIDforQMC, + maxnoofTAforQMC, + maxnoofPLMNforQMC + +FROM X2AP-Constants + + Criticality, + ProcedureCode, + ProtocolIE-ID, + TriggeringMessage +FROM X2AP-CommonDataTypes + + ProtocolExtensionContainer{}, + ProtocolIE-Single-Container{}, + + X2AP-PROTOCOL-EXTENSION, + X2AP-PROTOCOL-IES +FROM X2AP-Containers; + +-- A + +ABSInformation ::= CHOICE { + fdd ABSInformationFDD, + tdd ABSInformationTDD, + abs-inactive NULL, + ... +} + +ABSInformationFDD ::= SEQUENCE { + abs-pattern-info BIT STRING (SIZE(40)), + numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, + measurement-subset BIT STRING (SIZE(40)), + iE-Extensions ProtocolExtensionContainer { { ABSInformationFDD-ExtIEs} } OPTIONAL, + ... +} + +ABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ABSInformationTDD ::= SEQUENCE { + abs-pattern-info BIT STRING (SIZE(1..70, ...)), + numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, + measurement-subset BIT STRING (SIZE(1..70, ...)), + iE-Extensions ProtocolExtensionContainer { { ABSInformationTDD-ExtIEs} } OPTIONAL, + ... +} + +ABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ABS-Status ::= SEQUENCE { + dL-ABS-status DL-ABS-status, + usableABSInformation UsableABSInformation, + iE-Extensions ProtocolExtensionContainer { {ABS-Status-ExtIEs} } OPTIONAL, + ... +} + +ABS-Status-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ActivationID ::= INTEGER (0..255) + +AdditionalSpecialSubframe-Info ::= SEQUENCE { + additionalspecialSubframePatterns AdditionalSpecialSubframePatterns, + cyclicPrefixDL CyclicPrefixDL, + cyclicPrefixUL CyclicPrefixUL, + iE-Extensions ProtocolExtensionContainer { { AdditionalSpecialSubframe-Info-ExtIEs} } OPTIONAL, + ... +} + +AdditionalSpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +AdditionalSpecialSubframePatterns ::= ENUMERATED { + ssp0, + ssp1, + ssp2, + ssp3, + ssp4, + ssp5, + ssp6, + ssp7, + ssp8, + ssp9, + ... +} + +AdditionalSpecialSubframeExtension-Info ::= SEQUENCE { + additionalspecialSubframePatternsExtension AdditionalSpecialSubframePatternsExtension, + cyclicPrefixDL CyclicPrefixDL, + cyclicPrefixUL CyclicPrefixUL, + iE-Extensions ProtocolExtensionContainer { { AdditionalSpecialSubframeExtension-Info-ExtIEs} } OPTIONAL, + ... +} + +AdditionalSpecialSubframeExtension-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +AdditionalSpecialSubframePatternsExtension ::= ENUMERATED { + ssp10, + ... +} + +AllocationAndRetentionPriority ::= SEQUENCE { + priorityLevel PriorityLevel, + pre-emptionCapability Pre-emptionCapability, + pre-emptionVulnerability Pre-emptionVulnerability, + iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, + ... +} + +AllocationAndRetentionPriority-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +AreaScopeOfMDT ::= CHOICE { + cellBased CellBasedMDT, + tABased TABasedMDT, + pLMNWide NULL, + ..., + tAIBased TAIBasedMDT +} + +AreaScopeOfQMC ::= CHOICE { + cellBased CellBasedQMC, + tABased TABasedQMC, + tAIBased TAIBasedQMC, + pLMNAreaBased PLMNAreaBasedQMC, + ... +} + +AS-SecurityInformation ::= SEQUENCE { + key-eNodeB-star Key-eNodeB-Star, + nextHopChainingCount NextHopChainingCount, + iE-Extensions ProtocolExtensionContainer { { AS-SecurityInformation-ExtIEs} } OPTIONAL, + ... +} + +AS-SecurityInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- B + +BandwidthReducedSI::= ENUMERATED { + scheduled, + ... +} + +BearerType ::= ENUMERATED { + non-IP, + ... +} + +BenefitMetric ::= INTEGER (-101..100, ...) + +BitRate ::= INTEGER (0..10000000000) +BroadcastPLMNs-Item ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF PLMN-Identity + + +-- C + +CapacityValue ::= INTEGER (0..100) + +Cause ::= CHOICE { + radioNetwork CauseRadioNetwork, + transport CauseTransport, + protocol CauseProtocol, + misc CauseMisc, + ... +} + +CauseMisc ::= ENUMERATED { + control-processing-overload, + hardware-failure, + om-intervention, + not-enough-user-plane-processing-resources, + unspecified, + ... +} + +CauseProtocol ::= ENUMERATED { + transfer-syntax-error, + abstract-syntax-error-reject, + abstract-syntax-error-ignore-and-notify, + message-not-compatible-with-receiver-state, + semantic-error, + unspecified, + abstract-syntax-error-falsely-constructed-message, + ... +} + +CauseRadioNetwork ::= ENUMERATED { + handover-desirable-for-radio-reasons, + time-critical-handover, + resource-optimisation-handover, + reduce-load-in-serving-cell, + partial-handover, + unknown-new-eNB-UE-X2AP-ID, + unknown-old-eNB-UE-X2AP-ID, + unknown-pair-of-UE-X2AP-ID, + ho-target-not-allowed, + tx2relocoverall-expiry, + trelocprep-expiry, + cell-not-available, + no-radio-resources-available-in-target-cell, + invalid-MME-GroupID, + unknown-MME-Code, + encryption-and-or-integrity-protection-algorithms-not-supported, + reportCharacteristicsEmpty, + noReportPeriodicity, + existingMeasurementID, + unknown-eNB-Measurement-ID, + measurement-temporarily-not-available, + unspecified, + ..., + load-balancing, + handover-optimisation, + value-out-of-allowed-range, + multiple-E-RAB-ID-instances, + switch-off-ongoing, + not-supported-QCI-value, + measurement-not-supported-for-the-object, + tDCoverall-expiry, + tDCprep-expiry, + action-desirable-for-radio-reasons, + reduce-load, + resource-optimisation, + time-critical-action, + target-not-allowed, + no-radio-resources-available, + invalid-QoS-combination, + encryption-algorithms-not-aupported, + procedure-cancelled, + rRM-purpose, + improve-user-bit-rate, + user-inactivity, + radio-connection-with-UE-lost, + failure-in-the-radio-interface-procedure, + bearer-option-not-supported, + mCG-Mobility, + sCG-Mobility, + count-reaches-max-value, + unknown-old-en-gNB-UE-X2AP-ID + +} + +CauseTransport ::= ENUMERATED { + transport-resource-unavailable, + unspecified, + ... +} + +CellBasedMDT::= SEQUENCE { + cellIdListforMDT CellIdListforMDT, + iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +CellBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellBasedQMC::= SEQUENCE { + cellIdListforQMC CellIdListforQMC, + iE-Extensions ProtocolExtensionContainer { {CellBasedQMC-ExtIEs} } OPTIONAL, + ... +} + +CellBasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellCapacityClassValue ::= INTEGER (1..100, ...) + +CellDeploymentStatusIndicator ::= ENUMERATED {pre-change-notification, ...} + +CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF ECGI + +CellIdListforQMC ::= SEQUENCE (SIZE(1..maxnoofCellIDforQMC)) OF ECGI + +CellReplacingInfo ::= SEQUENCE { + replacingCellsList ReplacingCellsList, + iE-Extensions ProtocolExtensionContainer { { CellReplacingInfo-ExtIEs}} OPTIONAL, + ... +} + +CellReplacingInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellReportingIndicator ::= ENUMERATED {stop-request, ... } + +Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ... } + + +CellType ::= SEQUENCE { + cell-Size Cell-Size, + iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL, + ... +} + +CellType-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CoMPHypothesisSet ::= SEQUENCE (SIZE(1..maxnoofCoMPCells)) OF CoMPHypothesisSetItem + +CoMPHypothesisSetItem ::= SEQUENCE { + coMPCellID ECGI, + coMPHypothesis BIT STRING (SIZE(6..4400, ...)), + iE-Extensions ProtocolExtensionContainer { { CoMPHypothesisSetItem-ExtIEs} } OPTIONAL, + ... +} + +CoMPHypothesisSetItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CoMPInformation ::= SEQUENCE { + coMPInformationItem CoMPInformationItem, + coMPInformationStartTime CoMPInformationStartTime, + iE-Extensions ProtocolExtensionContainer { { CoMPInformation-ExtIEs} } OPTIONAL, + ... +} + +CoMPInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CoMPInformationItem ::= SEQUENCE (SIZE(1..maxnoofCoMPHypothesisSet)) OF + SEQUENCE { + coMPHypothesisSet CoMPHypothesisSet, + benefitMetric BenefitMetric, + iE-Extensions ProtocolExtensionContainer { { CoMPInformationItem-ExtIEs} } OPTIONAL, + ... + } + +CoMPInformationItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CoMPInformationStartTime ::= SEQUENCE (SIZE(0..1)) OF + SEQUENCE { + startSFN INTEGER (0..1023, ...), + startSubframeNumber INTEGER (0..9, ...), + iE-Extensions ProtocolExtensionContainer { { CoMPInformationStartTime-ExtIEs} } OPTIONAL, + ... + } + +CoMPInformationStartTime-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompositeAvailableCapacity ::= SEQUENCE { + cellCapacityClassValue CellCapacityClassValue OPTIONAL, + capacityValue CapacityValue, + iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacity-ExtIEs} } OPTIONAL, + ... +} + +CompositeAvailableCapacity-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompositeAvailableCapacityGroup ::= SEQUENCE { + dL-CompositeAvailableCapacity CompositeAvailableCapacity, + uL-CompositeAvailableCapacity CompositeAvailableCapacity, + iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacityGroup-ExtIEs} } OPTIONAL, + ... +} + +CompositeAvailableCapacityGroup-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +Correlation-ID ::= OCTET STRING (SIZE (4)) + +COUNTvalue ::= SEQUENCE { + pDCP-SN PDCP-SN, + hFN HFN, + iE-Extensions ProtocolExtensionContainer { { COUNTvalue-ExtIEs} } OPTIONAL, + ... +} + +COUNTvalue-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTValueExtended ::= SEQUENCE { + pDCP-SNExtended PDCP-SNExtended, + hFNModified HFNModified, + iE-Extensions ProtocolExtensionContainer { { COUNTValueExtended-ExtIEs} } OPTIONAL, + ... +} + +COUNTValueExtended-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTvaluePDCP-SNlength18 ::= SEQUENCE { + pDCP-SNlength18 PDCP-SNlength18, + hFNforPDCP-SNlength18 HFNforPDCP-SNlength18, + iE-Extensions ProtocolExtensionContainer { { COUNTvaluePDCP-SNlength18-ExtIEs} } OPTIONAL, + ... +} + +COUNTvaluePDCP-SNlength18-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CoverageModificationList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF CoverageModification-Item + +CoverageModification-Item ::= SEQUENCE { + eCGI ECGI, + coverageState INTEGER (0..15, ...), + cellDeploymentStatusIndicator CellDeploymentStatusIndicator OPTIONAL, + cellReplacingInfo CellReplacingInfo OPTIONAL, +-- Included in case the Cell Deployment Status Indicator IE is present + ... +} + +CriticalityDiagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL, + ... +} + + +CriticalityDiagnostics-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF + SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-List-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CRNTI ::= BIT STRING (SIZE (16)) + +CSGMembershipStatus ::= ENUMERATED { + member, + not-member +} + +CSG-Id ::= BIT STRING (SIZE (27)) + +CSIReportList ::= SEQUENCE (SIZE(1..maxUEReport)) OF + SEQUENCE { + uEID UEID, + cSIReportPerCSIProcess CSIReportPerCSIProcess, + iE-Extensions ProtocolExtensionContainer { { CSIReportList-ExtIEs} } OPTIONAL, + ... + } + +CSIReportList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CSIReportPerCSIProcess ::= SEQUENCE (SIZE(1.. maxCSIProcess)) OF + SEQUENCE { + cSIProcessConfigurationIndex INTEGER (1..7, ...), + cSIReportPerCSIProcessItem CSIReportPerCSIProcessItem, + iE-Extensions ProtocolExtensionContainer { { CSIReportPerCSIProcess-ExtIEs} } OPTIONAL, + ... + } + +CSIReportPerCSIProcess-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CSIReportPerCSIProcessItem ::= SEQUENCE (SIZE(1.. maxCSIReport)) OF + SEQUENCE { + rI INTEGER (1..8, ...), + widebandCQI WidebandCQI, + subbandSize SubbandSize, + subbandCQIList SubbandCQIList OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { CSIReportPerCSIProcessItem-ExtIEs} } OPTIONAL, + ... + } + +CSIReportPerCSIProcessItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CyclicPrefixDL ::= ENUMERATED { + normal, + extended, + ... +} + +CyclicPrefixUL ::= ENUMERATED { + normal, + extended, + ... +} + + +-- D + +DeactivationIndication::= ENUMERATED { + deactivated, + ... +} + +DeliveryStatus ::= SEQUENCE { + highestSuccessDeliveredPDCPSN INTEGER (0..4095), + iE-Extensions ProtocolExtensionContainer { {DeliveryStatus-ExtIEs} } OPTIONAL, + ... +} + +DeliveryStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +DL-ABS-status::= INTEGER (0..100) + +DL-Forwarding ::= ENUMERATED { + dL-forwardingProposed, + ... +} + +DL-GBR-PRB-usage::= INTEGER (0..100) + +DL-non-GBR-PRB-usage::= INTEGER (0..100) + +DL-scheduling-PDCCH-CCE-usage::= INTEGER (0..100) + +DL-Total-PRB-usage::= INTEGER (0..100) + +DRB-ID ::= INTEGER (1..32) + +DynamicDLTransmissionInformation ::= CHOICE { + naics-active DynamicNAICSInformation, + naics-inactive NULL, + ... +} + +DynamicNAICSInformation ::= SEQUENCE { + transmissionModes BIT STRING (SIZE(8)) OPTIONAL, + pB-information INTEGER(0..3) OPTIONAL, + pA-list SEQUENCE (SIZE(0..maxnoofPA)) OF PA-Values, + iE-Extensions ProtocolExtensionContainer { {DynamicNAICSInformation-ExtIEs} } OPTIONAL, + ... +} + +DynamicNAICSInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- E + +EARFCN ::= INTEGER (0..maxEARFCN) + +EARFCNExtension ::= INTEGER(maxEARFCNPlusOne..newmaxEARFCN, ...) + +ECGI ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + eUTRANcellIdentifier EUTRANCellIdentifier, + iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL, + ... +} + +ECGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +EnhancedRNTP ::= SEQUENCE { + enhancedRNTPBitmap BIT STRING (SIZE(12..8800, ...)), + rNTP-High-Power-Threshold RNTP-Threshold, + enhancedRNTPStartTime EnhancedRNTPStartTime OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { EnhancedRNTP-ExtIEs} } OPTIONAL, + ... +} + +EnhancedRNTP-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +EnhancedRNTPStartTime ::= SEQUENCE { + startSFN INTEGER (0..1023, ...), + startSubframeNumber INTEGER (0..9, ...), + iE-Extensions ProtocolExtensionContainer { { EnhancedRNTPStartTime-ExtIEs} } OPTIONAL, + ... + } + +EnhancedRNTPStartTime-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENB-ID ::= CHOICE { + macro-eNB-ID BIT STRING (SIZE (20)), + home-eNB-ID BIT STRING (SIZE (28)), + ... , + short-Macro-eNB-ID BIT STRING (SIZE(18)), + long-Macro-eNB-ID BIT STRING (SIZE(21)) +} + +EncryptionAlgorithms ::= BIT STRING (SIZE (16, ...)) + +EN-DC-ResourceConfiguration ::= SEQUENCE { + pDCPatSgNB ENUMERATED {present, not-present, ...}, + mCGresources ENUMERATED {present, not-present, ...}, + sCGresources ENUMERATED {present, not-present, ...}, + iE-Extensions ProtocolExtensionContainer { { EN-DC-ResourceConfigurationExtIEs} } OPTIONAL, + ... +} + +EN-DC-ResourceConfigurationExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMN-Identity + +E-RAB-ID ::= INTEGER (0..15, ...) + +E-RAB-Level-QoS-Parameters ::= SEQUENCE { + qCI QCI, + allocationAndRetentionPriority AllocationAndRetentionPriority, + gbrQosInformation GBR-QosInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { E-RAB-Level-QoS-Parameters-ExtIEs} } OPTIONAL, + ... +} + +E-RAB-Level-QoS-Parameters-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RAB-List ::= SEQUENCE (SIZE(1.. maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RAB-ItemIEs} } + +E-RAB-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RAB-Item CRITICALITY ignore TYPE E-RAB-Item PRESENCE mandatory }, + ... +} + +E-RAB-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RAB-Item-ExtIEs} } OPTIONAL, + ... +} + +E-RAB-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABUsageReportList ::= SEQUENCE (SIZE(1..maxnooftimeperiods)) OF ProtocolIE-Single-Container { {E-RABUsageReport-ItemIEs} } + +E-RABUsageReport-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABUsageReport-Item CRITICALITY ignore TYPE E-RABUsageReport-Item PRESENCE mandatory }, + ... +} + +E-RABUsageReport-Item ::= SEQUENCE { + startTimeStamp OCTET STRING (SIZE(4)), + endTimeStamp OCTET STRING (SIZE(4)), + usageCountUL INTEGER (0..18446744073709551615), + usageCountDL INTEGER (0..18446744073709551615), + iE-Extensions ProtocolExtensionContainer { { E-RABUsageReport-Item-ExtIEs} } OPTIONAL, +... +} + +E-RABUsageReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +EUTRA-Mode-Info ::= CHOICE { + fDD FDD-Info, + tDD TDD-Info, + ... +} + +EUTRANCellIdentifier ::= BIT STRING (SIZE (28)) + +EUTRANTraceID ::= OCTET STRING (SIZE (8)) + +EventType ::= ENUMERATED{ + change-of-serving-cell, + ... +} + +ExpectedUEBehaviour ::= SEQUENCE { + expectedActivity ExpectedUEActivityBehaviour OPTIONAL, + expectedHOInterval ExpectedHOInterval OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ExpectedUEBehaviour-ExtIEs} } OPTIONAL, + ... +} + +ExpectedUEBehaviour-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ExpectedUEActivityBehaviour ::= SEQUENCE { + expectedActivityPeriod ExpectedActivityPeriod OPTIONAL, + expectedIdlePeriod ExpectedIdlePeriod OPTIONAL, + sourceofUEActivityBehaviourInformation SourceOfUEActivityBehaviourInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ExpectedUEActivityBehaviour-ExtIEs} } OPTIONAL, + ... +} + +ExpectedUEActivityBehaviour-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ExpectedActivityPeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) + +ExpectedIdlePeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) + +ExpectedHOInterval ::= ENUMERATED { + sec15, sec30, sec60, sec90, sec120, sec180, long-time, + ... +} + +ExtendedULInterferenceOverloadInfo ::= SEQUENCE { + associatedSubframes BIT STRING (SIZE (5)), + extended-ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication, + iE-Extensions ProtocolExtensionContainer { { ExtendedULInterferenceOverloadInfo-ExtIEs} } OPTIONAL, + ... +} + +ExtendedULInterferenceOverloadInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ExtendedBitRate ::= INTEGER (10000000001..4000000000000,...) + +-- F + +FDD-Info ::= SEQUENCE { + uL-EARFCN EARFCN, + dL-EARFCN EARFCN, + uL-Transmission-Bandwidth Transmission-Bandwidth, + dL-Transmission-Bandwidth Transmission-Bandwidth, + iE-Extensions ProtocolExtensionContainer { {FDD-Info-ExtIEs} } OPTIONAL, + ... +} + +FDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-UL-EARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}| + { ID id-DL-EARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}| + { ID id-OffsetOfNbiotChannelNumberToDL-EARFCN CRITICALITY reject EXTENSION OffsetOfNbiotChannelNumberToEARFCN PRESENCE optional}| + { ID id-OffsetOfNbiotChannelNumberToUL-EARFCN CRITICALITY reject EXTENSION OffsetOfNbiotChannelNumberToEARFCN PRESENCE optional}, + ... +} + +ForbiddenInterRATs ::= ENUMERATED { + all, + geran, + utran, + cdma2000, + ..., + geranandutran, + cdma2000andutran + +} + +ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item + +ForbiddenTAs-Item ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + forbiddenTACs ForbiddenTACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenTAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC + +ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item + +ForbiddenLAs-Item ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + forbiddenLACs ForbiddenLACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenLAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC + +Fourframes ::= BIT STRING (SIZE (24)) + +FreqBandIndicator ::= INTEGER (1..256, ...) + +FreqBandIndicatorPriority ::= ENUMERATED { + not-broadcasted, + broadcasted, + ... +} + +-- G + +GBR-QosInformation ::= SEQUENCE { + e-RAB-MaximumBitrateDL BitRate, + e-RAB-MaximumBitrateUL BitRate, + e-RAB-GuaranteedBitrateDL BitRate, + e-RAB-GuaranteedBitrateUL BitRate, + iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL, + ... +} + +GBR-QosInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +-- Extension for maximum bitrate > 10Gbps -- + { ID id-extended-e-RAB-MaximumBitrateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| + { ID id-extended-e-RAB-MaximumBitrateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| + { ID id-extended-e-RAB-GuaranteedBitrateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| + { ID id-extended-e-RAB-GuaranteedBitrateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}, + ... +} + +GlobalENB-ID ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + eNB-ID ENB-ID, + iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL, + ... +} + +GlobalENB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GlobalGNB-ID ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + gNB-ID GNB-ID, + iE-Extensions ProtocolExtensionContainer { {GlobalGNB-ID-ExtIEs} } OPTIONAL, + ... +} + +GlobalGNB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GTPtunnelEndpoint ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEI, + iE-Extensions ProtocolExtensionContainer { {GTPtunnelEndpoint-ExtIEs} } OPTIONAL, + ... +} + +GTPtunnelEndpoint-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GTP-TEI ::= OCTET STRING (SIZE (4)) + +GUGroupIDList ::= SEQUENCE (SIZE (1..maxPools)) OF GU-Group-ID + + +GU-Group-ID ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + mME-Group-ID MME-Group-ID, + iE-Extensions ProtocolExtensionContainer { {GU-Group-ID-ExtIEs} } OPTIONAL, + ... +} + +GU-Group-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +GUMMEI ::= SEQUENCE { + + gU-Group-ID GU-Group-ID, + mME-Code MME-Code, + iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, + ... +} + +GUMMEI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GNB-ID ::= CHOICE { + gNB-ID BIT STRING (SIZE (22..32)), + ... +} + +-- H + +HandoverReportType ::= ENUMERATED { + hoTooEarly, + hoToWrongCell, + ..., + interRATpingpong +} + +HandoverRestrictionList ::= SEQUENCE { + servingPLMN PLMN-Identity, + equivalentPLMNs EPLMNs OPTIONAL, + forbiddenTAs ForbiddenTAs OPTIONAL, + forbiddenLAs ForbiddenLAs OPTIONAL, + forbiddenInterRATs ForbiddenInterRATs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, + ... +} + +HandoverRestrictionList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-NRrestriction CRITICALITY ignore EXTENSION NRrestriction PRESENCE optional}, + ... +} + +HFN ::= INTEGER (0..1048575) + +HFNModified ::= INTEGER (0..131071) + +HFNforPDCP-SNlength18 ::= INTEGER (0..16383) + +HWLoadIndicator ::= SEQUENCE { + dLHWLoadIndicator LoadIndicator, + uLHWLoadIndicator LoadIndicator, + iE-Extensions ProtocolExtensionContainer { { HWLoadIndicator-ExtIEs} } OPTIONAL, + ... +} + +HWLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- I + +IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16, ...)) + +InterfacesToTrace ::= BIT STRING (SIZE (8)) + +InvokeIndication ::= ENUMERATED{ + abs-information, + ..., + naics-information-start, + naics-information-stop +} + +-- J +-- K + +Key-eNodeB-Star ::= BIT STRING (SIZE(256)) + +-- L + +LAC ::= OCTET STRING (SIZE (2)) --(EXCEPT ('0000'H|'FFFE'H)) + +LastVisitedCell-Item ::= CHOICE { + e-UTRAN-Cell LastVisitedEUTRANCellInformation, + uTRAN-Cell LastVisitedUTRANCellInformation, + gERAN-Cell LastVisitedGERANCellInformation, + ... +} + +LastVisitedEUTRANCellInformation ::= SEQUENCE { + global-Cell-ID ECGI, + cellType CellType, + time-UE-StayedInCell Time-UE-StayedInCell, + iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, + ... +} + +LastVisitedEUTRANCellInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +-- Extension for Rel-11 to support enhanced granularity for time UE stayed in cell -- + { ID id-Time-UE-StayedInCell-EnhancedGranularity CRITICALITY ignore EXTENSION Time-UE-StayedInCell-EnhancedGranularity PRESENCE optional}| + { ID id-HO-cause CRITICALITY ignore EXTENSION Cause PRESENCE optional}, + ... +} + +LastVisitedGERANCellInformation ::= CHOICE { + undefined NULL, + ... +} + +LastVisitedUTRANCellInformation ::= OCTET STRING + +LHN-ID ::= OCTET STRING(SIZE (32..256)) + +Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...} + +LoadIndicator ::= ENUMERATED { + lowLoad, + mediumLoad, + highLoad, + overLoad, + ... +} + +LocationReportingInformation ::= SEQUENCE { + eventType EventType, + reportArea ReportArea, + iE-Extensions ProtocolExtensionContainer { {LocationReportingInformation-ExtIEs} } OPTIONAL, + ... +} + +LocationReportingInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::={ + ... +} + +-- M + +M1PeriodicReporting ::= SEQUENCE { + reportInterval ReportIntervalMDT, + reportAmount ReportAmountMDT, + iE-Extensions ProtocolExtensionContainer { { M1PeriodicReporting-ExtIEs} } OPTIONAL, + ... +} + +M1PeriodicReporting-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M1ReportingTrigger::= ENUMERATED{ + periodic, + a2eventtriggered, + ..., + a2eventtriggered-periodic +} + +M1ThresholdEventA2 ::= SEQUENCE { + measurementThreshold MeasurementThresholdA2, + iE-Extensions ProtocolExtensionContainer { { M1ThresholdEventA2-ExtIEs} } OPTIONAL, + ... +} + +M1ThresholdEventA2-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M3Configuration ::= SEQUENCE { + m3period M3period, + iE-Extensions ProtocolExtensionContainer { { M3Configuration-ExtIEs} } OPTIONAL, + ... +} + +M3Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M3period ::= ENUMERATED {ms100, ms1000, ms10000, ... } + +M4Configuration ::= SEQUENCE { + m4period M4period, + m4-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M4Configuration-ExtIEs} } OPTIONAL, + ... +} + +M4Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + + +M5Configuration ::= SEQUENCE { + m5period M5period, + m5-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M5Configuration-ExtIEs} } OPTIONAL, + ... +} + +M5Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + +M6Configuration ::= SEQUENCE { + m6report-interval M6report-interval, + m6delay-threshold M6delay-threshold OPTIONAL, +-- This IE shall be present if the M6 Links to log IE is set to “uplink” or to “both-uplink-and-downlink” -- + m6-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M6Configuration-ExtIEs} } OPTIONAL, + ... +} + +M6Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M6report-interval ::= ENUMERATED { ms1024, ms2048, ms5120, ms10240, ... } + +M6delay-threshold ::= ENUMERATED { ms30, ms40, ms50, ms60, ms70, ms80, ms90, ms100, ms150, ms300, ms500, ms750, ... } + +M7Configuration ::= SEQUENCE { + m7period M7period, + m7-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M7Configuration-ExtIEs} } OPTIONAL, + ... +} + +M7Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M7period ::= INTEGER(1..60, ...) + +MakeBeforeBreakIndicator::= ENUMERATED {true, ...} + +ManagementBasedMDTallowed ::= ENUMERATED {allowed, ...} + +Masked-IMEISV ::= BIT STRING (SIZE (64)) + +MDT-Activation ::= ENUMERATED { + immediate-MDT-only, + immediate-MDT-and-Trace, + ... +} + +MDT-Configuration ::= SEQUENCE { + mdt-Activation MDT-Activation, + areaScopeOfMDT AreaScopeOfMDT, + measurementsToActivate MeasurementsToActivate, + m1reportingTrigger M1ReportingTrigger, + m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL, +-- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1 + m1periodicReporting M1PeriodicReporting OPTIONAL, +-- Included in case of periodic, or event-triggered periodic reporting for measurement M1 + iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTIONAL, + ... +} + +MDT-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + {ID id-M3Configuration CRITICALITY ignore EXTENSION M3Configuration PRESENCE conditional}| + {ID id-M4Configuration CRITICALITY ignore EXTENSION M4Configuration PRESENCE conditional}| + {ID id-M5Configuration CRITICALITY ignore EXTENSION M5Configuration PRESENCE conditional}| + {ID id-MDT-Location-Info CRITICALITY ignore EXTENSION MDT-Location-Info PRESENCE optional}| + {ID id-SignallingBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional}| + {ID id-M6Configuration CRITICALITY ignore EXTENSION M6Configuration PRESENCE conditional}| + {ID id-M7Configuration CRITICALITY ignore EXTENSION M7Configuration PRESENCE conditional}, + ... +} + +MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMN-Identity + +MDT-Location-Info ::= BIT STRING (SIZE (8)) + +Measurement-ID ::= INTEGER (1..4095, ...) + +MeasurementsToActivate::= BIT STRING (SIZE (8)) + +MeasurementThresholdA2 ::= CHOICE { + threshold-RSRP Threshold-RSRP, + threshold-RSRQ Threshold-RSRQ, + ... +} + +MeNBResourceCoordinationInformation ::= SEQUENCE { + eUTRA-Cell-ID ECGI, + uLCoordinationInformation BIT STRING (SIZE(6..4400, ...)), + dLCoordinationInformation BIT STRING (SIZE(6..4400, ...)), + iE-Extensions ProtocolExtensionContainer { { MeNBResourceCoordinationInformationExtIEs} } OPTIONAL, + ... +} + +MeNBResourceCoordinationInformationExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +MeNBtoSeNBContainer ::= OCTET STRING + +MME-Group-ID ::= OCTET STRING (SIZE (2)) + +MME-Code ::= OCTET STRING (SIZE (1)) + +MBMS-Service-Area-Identity-List ::= SEQUENCE (SIZE(1.. maxnoofMBMSServiceAreaIdentities)) OF MBMS-Service-Area-Identity + +MBMS-Service-Area-Identity ::= OCTET STRING (SIZE (2)) + +MBSFN-Subframe-Infolist::= SEQUENCE (SIZE(1.. maxnoofMBSFN)) OF MBSFN-Subframe-Info + +MBSFN-Subframe-Info ::= SEQUENCE { + radioframeAllocationPeriod RadioframeAllocationPeriod, + radioframeAllocationOffset RadioframeAllocationOffset, + subframeAllocation SubframeAllocation, + iE-Extensions ProtocolExtensionContainer { { MBSFN-Subframe-Info-ExtIEs } } OPTIONAL, + ... +} + +MBSFN-Subframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +MobilityParametersModificationRange ::= SEQUENCE { + handoverTriggerChangeLowerLimit INTEGER (-20..20), + handoverTriggerChangeUpperLimit INTEGER (-20..20), + ... +} + +MobilityParametersInformation ::= SEQUENCE { + handoverTriggerChange INTEGER (-20..20), + ... +} + +MultibandInfoList ::= SEQUENCE (SIZE(1..maxnoofBands)) OF BandInfo + + +BandInfo ::= SEQUENCE { + freqBandIndicator FreqBandIndicator, + iE-Extensions ProtocolExtensionContainer { { BandInfo-ExtIEs } } OPTIONAL, + ... +} + +BandInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +MeNBtoSgNBContainer ::= OCTET STRING + +MCGSplitSRBs ::= ENUMERATED {srb1, srb2, srb1and2, ...} + +MCGSplitSRB ::= SEQUENCE { + rrcContainer RRCContainer OPTIONAL, + srbType SRBType, + deliveryStatus DeliveryStatus OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {MCGSplitSRB-ExtIEs} } OPTIONAL, + ... +} + +MCGSplitSRB-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UENRMeasurement ::= SEQUENCE { + uENRMeasurements RRCContainer, + iE-Extensions ProtocolExtensionContainer { {UENRMeasurement-ExtIEs} } OPTIONAL, + ... +} + +UENRMeasurement-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- N + +Neighbour-Information ::= SEQUENCE (SIZE (0..maxnoofNeighbours)) OF SEQUENCE { + eCGI ECGI, + pCI PCI, + eARFCN EARFCN, + iE-Extensions ProtocolExtensionContainer { {Neighbour-Information-ExtIEs} } OPTIONAL, + ... +} + +Neighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-NeighbourTAC CRITICALITY ignore EXTENSION TAC PRESENCE optional}| + { ID id-eARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}, + ... +} + +NextHopChainingCount ::= INTEGER (0..7) + +Number-of-Antennaports ::= ENUMERATED { + an1, + an2, + an4, + ... +} + +NRARFCN ::= INTEGER (0..3266667) -- This IE may be refined. + +NRCellIdentifier ::= BIT STRING (SIZE (36)) + +NRCGI ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + nRcellIdentifier NRCellIdentifier, + iE-Extensions ProtocolExtensionContainer { {NRCGI-ExtIEs} } OPTIONAL, + ... +} + +NRCGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +NRPCI ::= INTEGER (0..1007) + +NRrestriction ::= ENUMERATED { + nRrestricted, + ... +} + +NRencryptionAlgorithms ::= BIT STRING (SIZE (16,...)) +NRintegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...)) + +NR-TxBW ::= SEQUENCE { + nRSCS NRSCS, + nRNRB NRNRB, + iE-Extensions ProtocolExtensionContainer { { NR-TxBW-ExtIEs} } OPTIONAL, + ... +} + +NR-TxBW-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +NRNRB ::= ENUMERATED { nrb11, nrb18, nrb24, nrb25, nrb31, nrb32, nrb38, nrb51, nrb52, nrb65, nrb66, nrb78, nrb79, nrb93, nrb106, nrb107, nrb121, nrb132, nrb133, nrb135, nrb160, nrb162, nrb189, nrb216, nrb217, nrb245, nrb264, nrb270, nrb273, ...} + +NRSCS ::= ENUMERATED { scs15, scs30, scs60, scs120, ...} + + +Extended-TAC ::= OCTET STRING (SIZE (3)) + +NRUESecurityCapabilities ::= SEQUENCE { + nRencryptionAlgorithms NRencryptionAlgorithms, + nRintegrityProtectionAlgorithms NRintegrityProtectionAlgorithms, + iE-Extensions ProtocolExtensionContainer { { NRUESecurityCapabilities-ExtIEs} } OPTIONAL, +... +} + +NRUESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- O + +OffsetOfNbiotChannelNumberToEARFCN ::= ENUMERATED { + minusTen, + minusNine, + minusEight, + minusSeven, + minusSix, + minusFive, + minusFour, + minusThree, + minusTwo, + minusOne, + minusZeroDotFive, + zero, + one, + two, + three, + four, + five, + six, + seven, + eight, + nine, + ... +} + +Oneframe ::= BIT STRING (SIZE (6)) + +-- P + +PA-Values ::= ENUMERATED { + dB-6, + dB-4dot77, + dB-3, + dB-1dot77, + dB0, + dB1, + dB2, + dB3, + ... +} + +PDCPChangeIndication ::= ENUMERATED {s-KgNB-update-required, pDCP-data-recovery-required,...} + +PDCP-SN ::= INTEGER (0..4095) + +PDCP-SNExtended ::= INTEGER (0..32767) + +PDCP-SNlength18 ::= INTEGER (0..262143) + +PCI ::= INTEGER (0..503, ...) + +PLMN-Identity ::= OCTET STRING (SIZE(3)) + +Port-Number ::= OCTET STRING (SIZE (2)) + +PRACH-Configuration ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + zeroCorrelationIndex INTEGER (0..15), + highSpeedFlag BOOLEAN, + prach-FreqOffset INTEGER (0..94), + prach-ConfigIndex INTEGER (0..63) OPTIONAL, -- present for TDD -- + iE-Extensions ProtocolExtensionContainer { {PRACH-Configuration-ExtIEs} } OPTIONAL, + ... +} + +PLMNAreaBasedQMC ::= SEQUENCE { + plmnListforQMC PLMNListforQMC, + iE-Extensions ProtocolExtensionContainer { {PLMNAreaBasedQMC-ExtIEs} } OPTIONAL, + ... +} + +PLMNAreaBasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +PLMNListforQMC ::= SEQUENCE (SIZE(1..maxnoofPLMNforQMC)) OF PLMN-Identity + + +PRACH-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +Pre-emptionCapability ::= ENUMERATED { + shall-not-trigger-pre-emption, + may-trigger-pre-emption +} + +Pre-emptionVulnerability ::= ENUMERATED { + not-pre-emptable, + pre-emptable +} + +PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) + +ProSeAuthorized ::= SEQUENCE { + proSeDirectDiscovery ProSeDirectDiscovery OPTIONAL, + proSeDirectCommunication ProSeDirectCommunication OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ProSeAuthorized-ExtIEs} } OPTIONAL, + ... +} + +ProSeAuthorized-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-ProSeUEtoNetworkRelaying CRITICALITY ignore EXTENSION ProSeUEtoNetworkRelaying PRESENCE optional}, + ... +} + +ProSeDirectDiscovery ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +ProSeDirectCommunication ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +ProSeUEtoNetworkRelaying ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +-- Q + +QCI ::= INTEGER (0..255) + +-- R + +RadioframeAllocationOffset ::= INTEGER (0..7, ...) + +RadioframeAllocationPeriod ::= ENUMERATED{ + n1, + n2, + n4, + n8, + n16, + n32, + ... +} + + +RadioResourceStatus ::= SEQUENCE { + dL-GBR-PRB-usage DL-GBR-PRB-usage, + uL-GBR-PRB-usage UL-GBR-PRB-usage, + dL-non-GBR-PRB-usage DL-non-GBR-PRB-usage, + uL-non-GBR-PRB-usage UL-non-GBR-PRB-usage, + dL-Total-PRB-usage DL-Total-PRB-usage, + uL-Total-PRB-usage UL-Total-PRB-usage, + iE-Extensions ProtocolExtensionContainer { {RadioResourceStatus-ExtIEs} } OPTIONAL, + ... +} + +RadioResourceStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + {ID id-DL-scheduling-PDCCH-CCE-usage CRITICALITY ignore EXTENSION DL-scheduling-PDCCH-CCE-usage PRESENCE optional}| + + {ID id-UL-scheduling-PDCCH-CCE-usage CRITICALITY ignore EXTENSION UL-scheduling-PDCCH-CCE-usage PRESENCE optional}, + ... +} + +ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) + +ReceiveStatusOfULPDCPSDUsExtended ::= BIT STRING (SIZE(1..16384)) + +ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ::= BIT STRING (SIZE(1..131072)) + +Registration-Request ::= ENUMERATED { + start, + stop, + ..., + partial-stop, + add +} + +RelativeNarrowbandTxPower ::= SEQUENCE { + + rNTP-PerPRB BIT STRING (SIZE(6..110, ...)), + rNTP-Threshold RNTP-Threshold, + numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, + p-B INTEGER (0..3,...), + pDCCH-InterferenceImpact INTEGER (0..4,...), + iE-Extensions ProtocolExtensionContainer { { RelativeNarrowbandTxPower-ExtIEs} } OPTIONAL, + ... +} + +RelativeNarrowbandTxPower-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-enhancedRNTP CRITICALITY ignore EXTENSION EnhancedRNTP PRESENCE optional }, + ... +} + +ReplacingCellsList ::= SEQUENCE (SIZE(0.. maxCellineNB)) OF ReplacingCellsList-Item + +ReplacingCellsList-Item ::= SEQUENCE { + eCGI ECGI, + ... +} + +ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity} + +ReportArea ::= ENUMERATED{ + ecgi, + ... +} + +ReportCharacteristics ::= BIT STRING (SIZE (32)) + +ReportingPeriodicityCSIR ::= ENUMERATED { + ms5, + ms10, + ms20, + ms40, + ms80, +... +} + +ReportingPeriodicityRSRPMR ::= ENUMERATED { + one-hundred-20-ms, + two-hundred-40-ms, + four-hundred-80-ms, + six-hundred-40-ms, +... +} + +ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60} + +ResumeID ::= CHOICE { + non-truncated BIT STRING(SIZE(40)), + truncated BIT STRING(SIZE(24)), + ... +} + +RLCMode ::= ENUMERATED { + rlc-am, + rlc-um +} + +RNTP-Threshold ::= ENUMERATED { + minusInfinity, + minusEleven, + minusTen, + minusNine, + minusEight, + minusSeven, + minusSix, + minusFive, + minusFour, + minusThree, + minusTwo, + minusOne, + zero, + one, + two, + three, + ... +} + +RRC-Context ::= OCTET STRING + +RRCConnReestabIndicator ::= ENUMERATED { + reconfigurationFailure, handoverFailure, otherFailure, ... +} +-- The values correspond to the values of ReestablishmentCause reported from the UE in the RRCConnectionReestablishmentRequest, as defined in TS 36.331 [9] + +RRCConnSetupIndicator::= ENUMERATED { + rrcConnSetup, + ... +} + +RSRPMeasurementResult ::= SEQUENCE (SIZE(1..maxCellReport)) OF + SEQUENCE { + rSRPCellID ECGI, + rSRPMeasured INTEGER (0..97, ...), + iE-Extensions ProtocolExtensionContainer { { RSRPMeasurementResult-ExtIEs} } OPTIONAL, + ... + } + +RSRPMeasurementResult-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +RSRPMRList ::= SEQUENCE (SIZE(1..maxUEReport)) OF + SEQUENCE { + rSRPMeasurementResult RSRPMeasurementResult, + iE-Extensions ProtocolExtensionContainer { { RSRPMRList-ExtIEs} } OPTIONAL, + ... + } + +RSRPMRList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-UEID CRITICALITY ignore EXTENSION UEID PRESENCE optional}, + ... +} + +RRCContainer ::= OCTET STRING + +-- S + +S1TNLLoadIndicator ::= SEQUENCE { + dLS1TNLLoadIndicator LoadIndicator, + uLS1TNLLoadIndicator LoadIndicator, + iE-Extensions ProtocolExtensionContainer { { S1TNLLoadIndicator-ExtIEs} } OPTIONAL, + ... +} + +S1TNLLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +SCGChangeIndication ::= ENUMERATED {pDCPCountWrapAround, pSCellChange, other, ...} + +SecondaryRATUsageReportList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container {{SecondaryRATUsageReport-ItemIEs}} + +SecondaryRATUsageReport-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-SecondaryRATUsageReport-Item CRITICALITY reject TYPE SecondaryRATUsageReport-Item PRESENCE mandatory}, + ... +} + +SecondaryRATUsageReport-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + secondaryRATType ENUMERATED {nr, ...}, + e-RABUsageReportList E-RABUsageReportList, + iE-Extensions ProtocolExtensionContainer { { SecondaryRATUsageReport-Item-ExtIEs} } OPTIONAL, +... +} + +SecondaryRATUsageReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +SeNBSecurityKey ::= BIT STRING (SIZE(256)) + +SeNBtoMeNBContainer ::= OCTET STRING + + +ServedCells ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { + servedCellInfo ServedCell-Information, + neighbour-Info Neighbour-Information OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ServedCell-ExtIEs} } OPTIONAL, + ... +} + +ServedCell-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedCell-Information ::= SEQUENCE { + pCI PCI, + cellId ECGI, + tAC TAC, + broadcastPLMNs BroadcastPLMNs-Item, + eUTRA-Mode-Info EUTRA-Mode-Info, + iE-Extensions ProtocolExtensionContainer { {ServedCell-Information-ExtIEs} } OPTIONAL, + ... +} + +ServedCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-Number-of-Antennaports CRITICALITY ignore EXTENSION Number-of-Antennaports PRESENCE optional}| + { ID id-PRACH-Configuration CRITICALITY ignore EXTENSION PRACH-Configuration PRESENCE optional}| + { ID id-MBSFN-Subframe-Info CRITICALITY ignore EXTENSION MBSFN-Subframe-Infolist PRESENCE optional}| + { ID id-CSG-Id CRITICALITY ignore EXTENSION CSG-Id PRESENCE optional}| + { ID id-MBMS-Service-Area-List CRITICALITY ignore EXTENSION MBMS-Service-Area-Identity-List PRESENCE optional}| + { ID id-MultibandInfoList CRITICALITY ignore EXTENSION MultibandInfoList PRESENCE optional}| + { ID id-FreqBandIndicatorPriority CRITICALITY ignore EXTENSION FreqBandIndicatorPriority PRESENCE optional}| + { ID id-BandwidthReducedSI CRITICALITY ignore EXTENSION BandwidthReducedSI PRESENCE optional}, + ... +} + +SgNBResourceCoordinationInformation ::= SEQUENCE { + nR-CGI NRCGI, + uLCoordinationInformation BIT STRING (SIZE(6..4400, ...)), + dLCoordinationInformation BIT STRING (SIZE(6..4400, ...)), + iE-Extensions ProtocolExtensionContainer { { SgNBResourceCoordinationInformationExtIEs} } OPTIONAL, + ... +} + +SgNBResourceCoordinationInformationExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +SgNB-UE-X2AP-ID ::= INTEGER (0..4294967295) + +SIPTOBearerDeactivationIndication ::= ENUMERATED { + true, + ... +} + +ShortMAC-I ::= BIT STRING (SIZE(16)) + +SourceOfUEActivityBehaviourInformation ::= ENUMERATED { + subscription-information, + statistics, + ... +} + +SpecialSubframe-Info ::= SEQUENCE { + specialSubframePatterns SpecialSubframePatterns, + cyclicPrefixDL CyclicPrefixDL, + cyclicPrefixUL CyclicPrefixUL, + iE-Extensions ProtocolExtensionContainer { { SpecialSubframe-Info-ExtIEs} } OPTIONAL, + ... +} + +SpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +SpecialSubframePatterns ::= ENUMERATED { + ssp0, + ssp1, + ssp2, + ssp3, + ssp4, + ssp5, + ssp6, + ssp7, + ssp8, + ... +} + +SubbandCQI ::= SEQUENCE { + subbandCQICodeword0 SubbandCQICodeword0, + subbandCQICodeword1 SubbandCQICodeword1 OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { SubbandCQI-ExtIEs} } OPTIONAL, + ... +} + +SRVCCOperationPossible ::= ENUMERATED { + possible, + ... +} + +SubbandCQI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +SubbandCQICodeword0 ::= CHOICE { + four-bitCQI INTEGER (0..15, ...), + two-bitSubbandDifferentialCQI INTEGER (0..3, ...), + two-bitDifferentialCQI INTEGER (0..3, ...), + ... +} +SubbandCQICodeword1 ::= CHOICE { + four-bitCQI INTEGER (0..15, ...), + three-bitSpatialDifferentialCQI INTEGER (0..7, ...), + two-bitSubbandDifferentialCQI INTEGER (0..3, ...), + two-bitDifferentialCQI INTEGER (0..3, ...), + ... +} + +SubbandCQIList ::= SEQUENCE (SIZE(1.. maxSubband)) OF SubbandCQIItem + +SubbandCQIItem ::= SEQUENCE { + subbandCQI SubbandCQI, + subbandIndex INTEGER (0..27,...), + iE-Extensions ProtocolExtensionContainer { { SubbandCQIItem-ExtIEs} } OPTIONAL, + ... +} + +SubbandCQIItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +SubbandSize ::= ENUMERATED { + size2, + size3, + size4, + size6, + size8, + ... +} + +SubscriberProfileIDforRFP ::= INTEGER (1..256) + +SubframeAllocation ::= CHOICE { + oneframe Oneframe, + fourframes Fourframes, + ... +} + +SubframeAssignment ::= ENUMERATED { + sa0, + sa1, + sa2, + sa3, + sa4, + sa5, + sa6, + ... +} + +SgNBSecurityKey ::= BIT STRING (SIZE(256)) + +SgNBtoMeNBContainer ::= OCTET STRING + +SRBType ::= ENUMERATED {srb1, srb2, ...} +SCGConfigurationQuery ::= ENUMERATED {true,...} + +SULInformation ::= SEQUENCE { + sUL-ARFCN NRARFCN, + sUL-TxBW NR-TxBW, + iE-Extensions ProtocolExtensionContainer { { SULInformation-ExtIEs } } OPTIONAL, + ... +} + +SULInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- T + +TABasedMDT::= SEQUENCE { + tAListforMDT TAListforMDT, + iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TABasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAC ::= OCTET STRING (SIZE (2)) + +TAIBasedMDT ::= SEQUENCE { + tAIListforMDT TAIListforMDT, + iE-Extensions ProtocolExtensionContainer { {TAIBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TAIBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAIListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAI-Item + +TAI-Item ::= SEQUENCE { + tAC TAC, + pLMN-Identity PLMN-Identity, + iE-Extensions ProtocolExtensionContainer { { TAI-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC + +TABasedQMC ::= SEQUENCE { + tAListforQMC TAListforQMC, + iE-Extensions ProtocolExtensionContainer { {TABasedQMC-ExtIEs} } OPTIONAL, + ... +} + +TABasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAListforQMC ::= SEQUENCE (SIZE(1..maxnoofTAforQMC)) OF TAC + +TAIBasedQMC ::= SEQUENCE { + tAIListforQMC TAIListforQMC, + iE-Extensions ProtocolExtensionContainer { {TAIBasedQMC-ExtIEs} } OPTIONAL, + ... +} + +TAIBasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAIListforQMC ::= SEQUENCE (SIZE(1..maxnoofTAforQMC)) OF TAI-Item + +TargetCellInUTRAN ::= OCTET STRING -- This IE is to be encoded according to the UTRAN Cell ID in the Last Visited UTRAN Cell Information IE in TS 25.413 [24] + +TargeteNBtoSource-eNBTransparentContainer ::= OCTET STRING + +TDD-Info ::= SEQUENCE { + eARFCN EARFCN, + transmission-Bandwidth Transmission-Bandwidth, + subframeAssignment SubframeAssignment, + specialSubframe-Info SpecialSubframe-Info, + iE-Extensions ProtocolExtensionContainer { {TDD-Info-ExtIEs} } OPTIONAL, + ... +} +TDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-AdditionalSpecialSubframe-Info CRITICALITY ignore EXTENSION AdditionalSpecialSubframe-Info PRESENCE optional}| + { ID id-eARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}| + { ID id-AdditionalSpecialSubframeExtension-Info CRITICALITY ignore EXTENSION AdditionalSpecialSubframeExtension-Info PRESENCE optional}, + ... +} + +Threshold-RSRP ::= INTEGER(0..97) + +Threshold-RSRQ ::= INTEGER(0..34) + +TimeToWait ::= ENUMERATED { + v1s, + v2s, + v5s, + v10s, + v20s, + v60s, + ... +} + +Time-UE-StayedInCell ::= INTEGER (0..4095) + +Time-UE-StayedInCell-EnhancedGranularity ::= INTEGER (0..40950) + +TraceActivation ::= SEQUENCE { + eUTRANTraceID EUTRANTraceID, + interfacesToTrace InterfacesToTrace, +traceDepth TraceDepth, +traceCollectionEntityIPAddress TraceCollectionEntityIPAddress, + iE-Extensions ProtocolExtensionContainer { {TraceActivation-ExtIEs} } OPTIONAL, + ... +} + +TraceActivation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional}| + { ID id-UEAppLayerMeasConfig CRITICALITY ignore EXTENSION UEAppLayerMeasConfig PRESENCE optional}, + ... +} + +TraceCollectionEntityIPAddress ::= BIT STRING (SIZE(1..160, ...)) + +TraceDepth ::= ENUMERATED { + minimum, + medium, + maximum, + minimumWithoutVendorSpecificExtension, + mediumWithoutVendorSpecificExtension, + maximumWithoutVendorSpecificExtension, + ... +} + +Transmission-Bandwidth ::= ENUMERATED { + bw6, + bw15, + bw25, + bw50, + bw75, + bw100, + ..., + bw1 +} + +TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) + +TunnelInformation ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + uDP-Port-Number Port-Number OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {Tunnel-Information-ExtIEs} } OPTIONAL, + ... +} + +Tunnel-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + + +-- U + +UEAggregateMaximumBitRate ::= SEQUENCE { + uEaggregateMaximumBitRateDownlink BitRate, + uEaggregateMaximumBitRateUplink BitRate, + iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrate-ExtIEs} } OPTIONAL, + ... +} + +UEAggregate-MaximumBitrate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-extended-uEaggregateMaximumBitRateDownlink CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| + { ID id-extended-uEaggregateMaximumBitRateUplink CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}, + ... +} + +UEAppLayerMeasConfig ::= SEQUENCE { + containerForAppLayerMeasConfig OCTET STRING (SIZE(1..1000)), + areaScopeOfQMC AreaScopeOfQMC, + iE-Extensions ProtocolExtensionContainer { {UEAppLayerMeasConfig-ExtIEs} } OPTIONAL, + ... +} + +UEAppLayerMeasConfig-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UE-ContextKeptIndicator ::= ENUMERATED { + true, + ... +} + +UEID ::= BIT STRING (SIZE (16)) + +UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item + +UE-HistoryInformationFromTheUE ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the VisitedCellInfoList field contained in the UEInformationResponse message as defined in TS 36.331 [9] + +UE-S1AP-ID ::= INTEGER (0.. 4294967295) + +UE-X2AP-ID ::= INTEGER (0..4095) + +UE-X2AP-ID-Extension ::= INTEGER (0..4095, ...) + +UE-RLF-Report-Container::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the RLF-Report-r9 field contained in the UEInformationResponse message as defined in TS 36.331 [9] + +UE-RLF-Report-Container-for-extended-bands ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the RLF-Report-v9e0 field contained in the UEInformationResponse message as defined in TS 36.331 [9] + +UESecurityCapabilities ::= SEQUENCE { + encryptionAlgorithms EncryptionAlgorithms, + integrityProtectionAlgorithms IntegrityProtectionAlgorithms, + iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL, +... +} + +UESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UESidelinkAggregateMaximumBitRate ::= SEQUENCE { + uESidelinkAggregateMaximumBitRate BitRate, + iE-Extensions ProtocolExtensionContainer { {UE-Sidelink-Aggregate-MaximumBitRate-ExtIEs} } OPTIONAL, + ... +} + +UE-Sidelink-Aggregate-MaximumBitRate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ULConfiguration::= SEQUENCE { + uL-PDCP UL-UE-Configuration, + iE-Extensions ProtocolExtensionContainer { { ULConfiguration-ExtIEs} } OPTIONAL, + ... +} + +ULConfiguration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UL-UE-Configuration::= ENUMERATED { no-data, shared, only, ... } + +UL-GBR-PRB-usage::= INTEGER (0..100) + +UL-HighInterferenceIndicationInfo ::= SEQUENCE (SIZE(1..maxCellineNB)) OF UL-HighInterferenceIndicationInfo-Item + +UL-HighInterferenceIndicationInfo-Item ::= SEQUENCE { + target-Cell-ID ECGI, + ul-interferenceindication UL-HighInterferenceIndication, + iE-Extensions ProtocolExtensionContainer { { UL-HighInterferenceIndicationInfo-Item-ExtIEs} } OPTIONAL, + ... +} + +UL-HighInterferenceIndicationInfo-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UL-HighInterferenceIndication ::= BIT STRING (SIZE(1..110, ...)) + +UL-InterferenceOverloadIndication ::= SEQUENCE (SIZE(1..maxnoofPRBs)) OF UL-InterferenceOverloadIndication-Item + +UL-InterferenceOverloadIndication-Item ::= ENUMERATED { + high-interference, + medium-interference, + low-interference, + ... +} + +UL-non-GBR-PRB-usage::= INTEGER (0..100) + +UL-scheduling-PDCCH-CCE-usage::= INTEGER (0..100) + +UL-Total-PRB-usage::= INTEGER (0..100) + +UsableABSInformation ::= CHOICE { + fdd UsableABSInformationFDD, + tdd UsableABSInformationTDD, + ... +} + +UsableABSInformationFDD ::= SEQUENCE { + usable-abs-pattern-info BIT STRING (SIZE(40)), + iE-Extensions ProtocolExtensionContainer { { UsableABSInformationFDD-ExtIEs} } OPTIONAL, + ... +} + +UsableABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UsableABSInformationTDD ::= SEQUENCE { + usaable-abs-pattern-info BIT STRING (SIZE(1..70, ...)), + iE-Extensions ProtocolExtensionContainer { { UsableABSInformationTDD-ExtIEs} } OPTIONAL, + ... +} + +UsableABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- V + +V2XServicesAuthorized ::= SEQUENCE { + vehicleUE VehicleUE OPTIONAL, +pedestrianUE PedestrianUE OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {V2XServicesAuthorized-ExtIEs} } OPTIONAL, + ... +} + +V2XServicesAuthorized-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +VehicleUE ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +PedestrianUE ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +-- W + +WidebandCQI ::= SEQUENCE { + widebandCQICodeword0 INTEGER (0..15, ...), + widebandCQICodeword1 WidebandCQICodeword1 OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { WidebandCQI-ExtIEs} } OPTIONAL, + ... +} + +WidebandCQI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +WidebandCQICodeword1::= CHOICE { + four-bitCQI INTEGER (0..15, ...), + three-bitSpatialDifferentialCQI INTEGER (0..7, ...), + ... +} + +WTID ::= CHOICE { + wTID-Type1 WTID-Type1, + wTID-Type2 WTID-Long-Type2, + ... +} + +WTID-Type1 ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + shortWTID BIT STRING (SIZE(24)), + ... +} + +WTID-Long-Type2 ::= BIT STRING (SIZE(48)) + +WT-UE-XwAP-ID ::= OCTET STRING (SIZE (3)) + +-- X + +X2BenefitValue ::= INTEGER (1..8, ...) + +-- Y +-- Z + +END + + +-- ************************************************************** +-- +-- Common definitions +-- +-- ************************************************************** + +X2AP-CommonDataTypes { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-CommonDataTypes (3) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- Extension constants +-- +-- ************************************************************** + +maxPrivateIEs INTEGER ::= 65535 +maxProtocolExtensions INTEGER ::= 65535 +maxProtocolIEs INTEGER ::= 65535 + +-- ************************************************************** +-- +-- Common Data Types +-- +-- ************************************************************** + +Criticality ::= ENUMERATED { reject, ignore, notify } + +Presence ::= ENUMERATED { optional, conditional, mandatory } + +PrivateIE-ID ::= CHOICE { + local INTEGER (0.. maxPrivateIEs), + global OBJECT IDENTIFIER +} + +ProcedureCode ::= INTEGER (0..255) + + +ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs) + + +TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome} + +END + + +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +X2AP-Constants { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Constants (4) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + ProcedureCode, + ProtocolIE-ID +FROM X2AP-CommonDataTypes; + +-- ************************************************************** +-- +-- Elementary Procedures +-- +-- ************************************************************** + +id-handoverPreparation ProcedureCode ::= 0 +id-handoverCancel ProcedureCode ::= 1 +id-loadIndication ProcedureCode ::= 2 +id-errorIndication ProcedureCode ::= 3 +id-snStatusTransfer ProcedureCode ::= 4 +id-uEContextRelease ProcedureCode ::= 5 +id-x2Setup ProcedureCode ::= 6 +id-reset ProcedureCode ::= 7 +id-eNBConfigurationUpdate ProcedureCode ::= 8 +id-resourceStatusReportingInitiation ProcedureCode ::= 9 +id-resourceStatusReporting ProcedureCode ::= 10 +id-privateMessage ProcedureCode ::= 11 +id-mobilitySettingsChange ProcedureCode ::= 12 +id-rLFIndication ProcedureCode ::= 13 +id-handoverReport ProcedureCode ::= 14 +id-cellActivation ProcedureCode ::= 15 +id-x2Release ProcedureCode ::= 16 +id-x2APMessageTransfer ProcedureCode ::= 17 +id-x2Removal ProcedureCode ::= 18 +id-seNBAdditionPreparation ProcedureCode ::= 19 +id-seNBReconfigurationCompletion ProcedureCode ::= 20 +id-meNBinitiatedSeNBModificationPreparation ProcedureCode ::= 21 +id-seNBinitiatedSeNBModification ProcedureCode ::= 22 +id-meNBinitiatedSeNBRelease ProcedureCode ::= 23 +id-seNBinitiatedSeNBRelease ProcedureCode ::= 24 +id-seNBCounterCheck ProcedureCode ::= 25 +id-retrieveUEContext ProcedureCode ::= 26 +id-sgNBAdditionPreparation ProcedureCode ::= 27 +id-sgNBReconfigurationCompletion ProcedureCode ::= 28 +id-meNBinitiatedSgNBModificationPreparation ProcedureCode ::= 29 +id-sgNBinitiatedSgNBModification ProcedureCode ::= 30 +id-meNBinitiatedSgNBRelease ProcedureCode ::= 31 +id-sgNBinitiatedSgNBRelease ProcedureCode ::= 32 +id-sgNBCounterCheck ProcedureCode ::= 33 +id-sgNBChange ProcedureCode ::= 34 +id-rRCTransfer ProcedureCode ::= 35 +id-endcX2Setup ProcedureCode ::= 36 +id-endcConfigurationUpdate ProcedureCode ::= 37 +id-secondaryRATDataUsageReport ProcedureCode ::= 38 +id-endcCellActivation ProcedureCode ::= 39 + + +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** + +maxEARFCN INTEGER ::= 65535 +maxEARFCNPlusOne INTEGER ::= 65536 +newmaxEARFCN INTEGER ::= 262143 +maxInterfaces INTEGER ::= 16 +maxCellineNB INTEGER ::= 256 +maxnoofBands INTEGER ::= 16 +maxnoofBearers INTEGER ::= 256 +maxNrOfErrors INTEGER ::= 256 +maxnoofPDCP-SN INTEGER ::= 16 +maxnoofEPLMNs INTEGER ::= 15 +maxnoofEPLMNsPlusOne INTEGER ::= 16 +maxnoofForbLACs INTEGER ::= 4096 +maxnoofForbTACs INTEGER ::= 4096 +maxnoofBPLMNs INTEGER ::= 6 +maxnoofNeighbours INTEGER ::= 512 +maxnoofPRBs INTEGER ::= 110 +maxPools INTEGER ::= 16 +maxnoofCells INTEGER ::= 16 +maxnoofMBSFN INTEGER ::= 8 +maxFailedMeasObjects INTEGER ::= 32 +maxnoofCellIDforMDT INTEGER ::= 32 +maxnoofTAforMDT INTEGER ::= 8 +maxnoofMBMSServiceAreaIdentities INTEGER ::= 256 +maxnoofMDTPLMNs INTEGER ::= 16 +maxnoofCoMPHypothesisSet INTEGER ::= 256 +maxnoofCoMPCells INTEGER ::= 32 +maxUEReport INTEGER ::= 128 +maxCellReport INTEGER ::= 9 +maxnoofPA INTEGER ::= 3 +maxCSIProcess INTEGER ::= 4 +maxCSIReport INTEGER ::= 2 +maxSubband INTEGER ::= 14 +maxofNRNeighbours INTEGER ::= 1024 +maxCellinengNB INTEGER ::= 16384 +-- maxnoofNRCarriers INTEGER ::= 32 +maxnooftimeperiods INTEGER ::= 2 +maxnoofCellIDforQMC INTEGER ::= 32 +maxnoofTAforQMC INTEGER ::= 8 +maxnoofPLMNforQMC INTEGER ::= 16 + +-- ************************************************************** +-- +-- IEs +-- +-- ************************************************************** + +id-E-RABs-Admitted-Item ProtocolIE-ID ::= 0 +id-E-RABs-Admitted-List ProtocolIE-ID ::= 1 +id-E-RAB-Item ProtocolIE-ID ::= 2 +id-E-RABs-NotAdmitted-List ProtocolIE-ID ::= 3 +id-E-RABs-ToBeSetup-Item ProtocolIE-ID ::= 4 +id-Cause ProtocolIE-ID ::= 5 +id-CellInformation ProtocolIE-ID ::= 6 +id-CellInformation-Item ProtocolIE-ID ::= 7 +id-New-eNB-UE-X2AP-ID ProtocolIE-ID ::= 9 +id-Old-eNB-UE-X2AP-ID ProtocolIE-ID ::= 10 +id-TargetCell-ID ProtocolIE-ID ::= 11 +id-TargeteNBtoSource-eNBTransparentContainer ProtocolIE-ID ::= 12 +id-TraceActivation ProtocolIE-ID ::= 13 +id-UE-ContextInformation ProtocolIE-ID ::= 14 +id-UE-HistoryInformation ProtocolIE-ID ::= 15 +id-UE-X2AP-ID ProtocolIE-ID ::= 16 +id-CriticalityDiagnostics ProtocolIE-ID ::= 17 +id-E-RABs-SubjectToStatusTransfer-List ProtocolIE-ID ::= 18 +id-E-RABs-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 19 +id-ServedCells ProtocolIE-ID ::= 20 +id-GlobalENB-ID ProtocolIE-ID ::= 21 +id-TimeToWait ProtocolIE-ID ::= 22 +id-GUMMEI-ID ProtocolIE-ID ::= 23 +id-GUGroupIDList ProtocolIE-ID ::= 24 +id-ServedCellsToAdd ProtocolIE-ID ::= 25 +id-ServedCellsToModify ProtocolIE-ID ::= 26 +id-ServedCellsToDelete ProtocolIE-ID ::= 27 +id-Registration-Request ProtocolIE-ID ::= 28 +id-CellToReport ProtocolIE-ID ::= 29 +id-ReportingPeriodicity ProtocolIE-ID ::= 30 +id-CellToReport-Item ProtocolIE-ID ::= 31 +id-CellMeasurementResult ProtocolIE-ID ::= 32 +id-CellMeasurementResult-Item ProtocolIE-ID ::= 33 +id-GUGroupIDToAddList ProtocolIE-ID ::= 34 +id-GUGroupIDToDeleteList ProtocolIE-ID ::= 35 +id-SRVCCOperationPossible ProtocolIE-ID ::= 36 +id-Measurement-ID ProtocolIE-ID ::= 37 +id-ReportCharacteristics ProtocolIE-ID ::= 38 +id-ENB1-Measurement-ID ProtocolIE-ID ::= 39 +id-ENB2-Measurement-ID ProtocolIE-ID ::= 40 +id-Number-of-Antennaports ProtocolIE-ID ::= 41 +id-CompositeAvailableCapacityGroup ProtocolIE-ID ::= 42 +id-ENB1-Cell-ID ProtocolIE-ID ::= 43 +id-ENB2-Cell-ID ProtocolIE-ID ::= 44 +id-ENB2-Proposed-Mobility-Parameters ProtocolIE-ID ::= 45 +id-ENB1-Mobility-Parameters ProtocolIE-ID ::= 46 +id-ENB2-Mobility-Parameters-Modification-Range ProtocolIE-ID ::= 47 +id-FailureCellPCI ProtocolIE-ID ::= 48 +id-Re-establishmentCellECGI ProtocolIE-ID ::= 49 +id-FailureCellCRNTI ProtocolIE-ID ::= 50 +id-ShortMAC-I ProtocolIE-ID ::= 51 +id-SourceCellECGI ProtocolIE-ID ::= 52 +id-FailureCellECGI ProtocolIE-ID ::= 53 +id-HandoverReportType ProtocolIE-ID ::= 54 +id-PRACH-Configuration ProtocolIE-ID ::= 55 +id-MBSFN-Subframe-Info ProtocolIE-ID ::= 56 +id-ServedCellsToActivate ProtocolIE-ID ::= 57 +id-ActivatedCellList ProtocolIE-ID ::= 58 +id-DeactivationIndication ProtocolIE-ID ::= 59 +id-UE-RLF-Report-Container ProtocolIE-ID ::= 60 +id-ABSInformation ProtocolIE-ID ::= 61 +id-InvokeIndication ProtocolIE-ID ::= 62 +id-ABS-Status ProtocolIE-ID ::= 63 +id-PartialSuccessIndicator ProtocolIE-ID ::= 64 +id-MeasurementInitiationResult-List ProtocolIE-ID ::= 65 +id-MeasurementInitiationResult-Item ProtocolIE-ID ::= 66 +id-MeasurementFailureCause-Item ProtocolIE-ID ::= 67 +id-CompleteFailureCauseInformation-List ProtocolIE-ID ::= 68 +id-CompleteFailureCauseInformation-Item ProtocolIE-ID ::= 69 +id-CSG-Id ProtocolIE-ID ::= 70 +id-CSGMembershipStatus ProtocolIE-ID ::= 71 +id-MDTConfiguration ProtocolIE-ID ::= 72 +id-ManagementBasedMDTallowed ProtocolIE-ID ::= 74 +id-RRCConnSetupIndicator ProtocolIE-ID ::= 75 +id-NeighbourTAC ProtocolIE-ID ::= 76 +id-Time-UE-StayedInCell-EnhancedGranularity ProtocolIE-ID ::= 77 +id-RRCConnReestabIndicator ProtocolIE-ID ::= 78 +id-MBMS-Service-Area-List ProtocolIE-ID ::= 79 +id-HO-cause ProtocolIE-ID ::= 80 +id-TargetCellInUTRAN ProtocolIE-ID ::= 81 +id-MobilityInformation ProtocolIE-ID ::= 82 +id-SourceCellCRNTI ProtocolIE-ID ::= 83 +id-MultibandInfoList ProtocolIE-ID ::= 84 +id-M3Configuration ProtocolIE-ID ::= 85 +id-M4Configuration ProtocolIE-ID ::= 86 +id-M5Configuration ProtocolIE-ID ::= 87 +id-MDT-Location-Info ProtocolIE-ID ::= 88 +id-ManagementBasedMDTPLMNList ProtocolIE-ID ::= 89 +id-SignallingBasedMDTPLMNList ProtocolIE-ID ::= 90 +id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID ::= 91 +id-ULCOUNTValueExtended ProtocolIE-ID ::= 92 +id-DLCOUNTValueExtended ProtocolIE-ID ::= 93 +id-eARFCNExtension ProtocolIE-ID ::= 94 +id-UL-EARFCNExtension ProtocolIE-ID ::= 95 +id-DL-EARFCNExtension ProtocolIE-ID ::= 96 +id-AdditionalSpecialSubframe-Info ProtocolIE-ID ::= 97 +id-Masked-IMEISV ProtocolIE-ID ::= 98 +id-IntendedULDLConfiguration ProtocolIE-ID ::= 99 +id-ExtendedULInterferenceOverloadInfo ProtocolIE-ID ::= 100 +id-RNL-Header ProtocolIE-ID ::= 101 +id-x2APMessage ProtocolIE-ID ::= 102 +id-ProSeAuthorized ProtocolIE-ID ::= 103 +id-ExpectedUEBehaviour ProtocolIE-ID ::= 104 +id-UE-HistoryInformationFromTheUE ProtocolIE-ID ::= 105 +id-DynamicDLTransmissionInformation ProtocolIE-ID ::= 106 +id-UE-RLF-Report-Container-for-extended-bands ProtocolIE-ID ::= 107 +id-CoMPInformation ProtocolIE-ID ::= 108 +id-ReportingPeriodicityRSRPMR ProtocolIE-ID ::= 109 +id-RSRPMRList ProtocolIE-ID ::= 110 +id-MeNB-UE-X2AP-ID ProtocolIE-ID ::= 111 +id-SeNB-UE-X2AP-ID ProtocolIE-ID ::= 112 +id-UE-SecurityCapabilities ProtocolIE-ID ::= 113 +id-SeNBSecurityKey ProtocolIE-ID ::= 114 +id-SeNBUEAggregateMaximumBitRate ProtocolIE-ID ::= 115 +id-ServingPLMN ProtocolIE-ID ::= 116 +id-E-RABs-ToBeAdded-List ProtocolIE-ID ::= 117 +id-E-RABs-ToBeAdded-Item ProtocolIE-ID ::= 118 +id-MeNBtoSeNBContainer ProtocolIE-ID ::= 119 +id-E-RABs-Admitted-ToBeAdded-List ProtocolIE-ID ::= 120 +id-E-RABs-Admitted-ToBeAdded-Item ProtocolIE-ID ::= 121 +id-SeNBtoMeNBContainer ProtocolIE-ID ::= 122 +id-ResponseInformationSeNBReconfComp ProtocolIE-ID ::= 123 +id-UE-ContextInformationSeNBModReq ProtocolIE-ID ::= 124 +id-E-RABs-ToBeAdded-ModReqItem ProtocolIE-ID ::= 125 +id-E-RABs-ToBeModified-ModReqItem ProtocolIE-ID ::= 126 +id-E-RABs-ToBeReleased-ModReqItem ProtocolIE-ID ::= 127 +id-E-RABs-Admitted-ToBeAdded-ModAckList ProtocolIE-ID ::= 128 +id-E-RABs-Admitted-ToBeModified-ModAckList ProtocolIE-ID ::= 129 +id-E-RABs-Admitted-ToBeReleased-ModAckList ProtocolIE-ID ::= 130 +id-E-RABs-Admitted-ToBeAdded-ModAckItem ProtocolIE-ID ::= 131 +id-E-RABs-Admitted-ToBeModified-ModAckItem ProtocolIE-ID ::= 132 +id-E-RABs-Admitted-ToBeReleased-ModAckItem ProtocolIE-ID ::= 133 +id-E-RABs-ToBeReleased-ModReqd ProtocolIE-ID ::= 134 +id-E-RABs-ToBeReleased-ModReqdItem ProtocolIE-ID ::= 135 +id-SCGChangeIndication ProtocolIE-ID ::= 136 +id-E-RABs-ToBeReleased-List-RelReq ProtocolIE-ID ::= 137 +id-E-RABs-ToBeReleased-RelReqItem ProtocolIE-ID ::= 138 +id-E-RABs-ToBeReleased-List-RelConf ProtocolIE-ID ::= 139 +id-E-RABs-ToBeReleased-RelConfItem ProtocolIE-ID ::= 140 +id-E-RABs-SubjectToCounterCheck-List ProtocolIE-ID ::= 141 +id-E-RABs-SubjectToCounterCheckItem ProtocolIE-ID ::= 142 +id-CoverageModificationList ProtocolIE-ID ::= 143 +id-ReportingPeriodicityCSIR ProtocolIE-ID ::= 145 +id-CSIReportList ProtocolIE-ID ::= 146 +id-UEID ProtocolIE-ID ::= 147 +id-enhancedRNTP ProtocolIE-ID ::= 148 +id-ProSeUEtoNetworkRelaying ProtocolIE-ID ::= 149 +id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ProtocolIE-ID ::= 150 +id-ULCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 151 +id-DLCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 152 +id-UE-ContextReferenceAtSeNB ProtocolIE-ID ::= 153 +id-UE-ContextKeptIndicator ProtocolIE-ID ::= 154 +id-New-eNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 155 +id-Old-eNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 156 +id-MeNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 157 +id-SeNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 158 +id-LHN-ID ProtocolIE-ID ::= 159 +id-FreqBandIndicatorPriority ProtocolIE-ID ::= 160 +id-M6Configuration ProtocolIE-ID ::= 161 +id-M7Configuration ProtocolIE-ID ::= 162 +id-Tunnel-Information-for-BBF ProtocolIE-ID ::= 163 +id-SIPTO-BearerDeactivationIndication ProtocolIE-ID ::= 164 +id-GW-TransportLayerAddress ProtocolIE-ID ::= 165 +id-Correlation-ID ProtocolIE-ID ::= 166 +id-SIPTO-Correlation-ID ProtocolIE-ID ::= 167 +id-SIPTO-L-GW-TransportLayerAddress ProtocolIE-ID ::= 168 +id-X2RemovalThreshold ProtocolIE-ID ::= 169 +id-CellReportingIndicator ProtocolIE-ID ::= 170 +id-BearerType ProtocolIE-ID ::= 171 +id-resumeID ProtocolIE-ID ::= 172 +id-UE-ContextInformationRetrieve ProtocolIE-ID ::= 173 +id-E-RABs-ToBeSetupRetrieve-Item ProtocolIE-ID ::= 174 +id-NewEUTRANCellIdentifier ProtocolIE-ID ::= 175 +id-V2XServicesAuthorized ProtocolIE-ID ::= 176 +id-OffsetOfNbiotChannelNumberToDL-EARFCN ProtocolIE-ID ::= 177 +id-OffsetOfNbiotChannelNumberToUL-EARFCN ProtocolIE-ID ::= 178 +id-AdditionalSpecialSubframeExtension-Info ProtocolIE-ID ::= 179 +id-BandwidthReducedSI ProtocolIE-ID ::= 180 +id-MakeBeforeBreakIndicator ProtocolIE-ID ::= 181 +id-UE-ContextReferenceAtWT ProtocolIE-ID ::= 182 +id-WT-UE-ContextKeptIndicator ProtocolIE-ID ::= 183 +id-UESidelinkAggregateMaximumBitRate ProtocolIE-ID ::= 184 +id-uL-GTPtunnelEndpoint ProtocolIE-ID ::= 185 +id-DL-scheduling-PDCCH-CCE-usage ProtocolIE-ID ::= 193 +id-UL-scheduling-PDCCH-CCE-usage ProtocolIE-ID ::= 194 +id-UEAppLayerMeasConfig ProtocolIE-ID ::= 195 +id-extended-e-RAB-MaximumBitrateDL ProtocolIE-ID ::= 196 +id-extended-e-RAB-MaximumBitrateUL ProtocolIE-ID ::= 197 +id-extended-e-RAB-GuaranteedBitrateDL ProtocolIE-ID ::= 198 +id-extended-e-RAB-GuaranteedBitrateUL ProtocolIE-ID ::= 199 +id-extended-uEaggregateMaximumBitRateDownlink ProtocolIE-ID ::= 200 +id-extended-uEaggregateMaximumBitRateUplink ProtocolIE-ID ::= 201 +id-NRrestriction ProtocolIE-ID ::= 202 +id-SgNBSecurityKey ProtocolIE-ID ::= 203 +id-SgNBUEAggregateMaximumBitRate ProtocolIE-ID ::= 204 +id-E-RABs-ToBeAdded-SgNBAddReqList ProtocolIE-ID ::= 205 +id-MeNBtoSgNBContainer ProtocolIE-ID ::= 206 +id-SgNB-UE-X2AP-ID ProtocolIE-ID ::= 207 +id-RequestedMCGSplitSRBs ProtocolIE-ID ::= 208 +id-E-RABs-ToBeAdded-SgNBAddReq-Item ProtocolIE-ID ::= 209 +id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList ProtocolIE-ID ::= 210 +id-SgNBtoMeNBContainer ProtocolIE-ID ::= 211 +id-AdmittedMCGSplitSRBs ProtocolIE-ID ::= 212 +id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item ProtocolIE-ID ::= 213 +id-ResponseInformationSgNBReconfComp ProtocolIE-ID ::= 214 +id-UE-ContextInformation-SgNBModReq ProtocolIE-ID ::= 215 +id-E-RABs-ToBeAdded-SgNBModReq-Item ProtocolIE-ID ::= 216 +id-E-RABs-ToBeModified-SgNBModReq-Item ProtocolIE-ID ::= 217 +id-E-RABs-ToBeReleased-SgNBModReq-Item ProtocolIE-ID ::= 218 +id-E-RABs-Admitted-ToBeAdded-SgNBModAckList ProtocolIE-ID ::= 219 +id-E-RABs-Admitted-ToBeModified-SgNBModAckList ProtocolIE-ID ::= 220 +id-E-RABs-Admitted-ToBeReleased-SgNBModAckList ProtocolIE-ID ::= 221 +id-E-RABs-Admitted-ToBeAdded-SgNBModAck-Item ProtocolIE-ID ::= 222 +id-E-RABs-Admitted-ToBeModified-SgNBModAck-Item ProtocolIE-ID ::= 223 +id-E-RABs-Admitted-ToBeReleased-SgNBModAck-Item ProtocolIE-ID ::= 224 +id-E-RABs-ToBeReleased-SgNBModReqdList ProtocolIE-ID ::= 225 +id-E-RABs-ToBeModified-SgNBModReqdList ProtocolIE-ID ::= 226 +id-E-RABs-ToBeReleased-SgNBModReqd-Item ProtocolIE-ID ::= 227 +id-E-RABs-ToBeModified-SgNBModReqd-Item ProtocolIE-ID ::= 228 +id-E-RABs-ToBeReleased-SgNBChaConfList ProtocolIE-ID ::= 229 +id-E-RABs-ToBeReleased-SgNBChaConf-Item ProtocolIE-ID ::= 230 +id-E-RABs-ToBeReleased-SgNBRelReqList ProtocolIE-ID ::= 231 +id-E-RABs-ToBeReleased-SgNBRelReq-Item ProtocolIE-ID ::= 232 +id-E-RABs-ToBeReleased-SgNBRelConfList ProtocolIE-ID ::= 233 +id-E-RABs-ToBeReleased-SgNBRelConf-Item ProtocolIE-ID ::= 234 +id-E-RABs-SubjectToSgNBCounterCheck-List ProtocolIE-ID ::= 235 +id-E-RABs-SubjectToSgNBCounterCheck-Item ProtocolIE-ID ::= 236 +id-RRCContainer ProtocolIE-ID ::= 237 +id-SRBType ProtocolIE-ID ::= 238 +id-Target-SgNB-ID ProtocolIE-ID ::= 239 +id-HandoverRestrictionList ProtocolIE-ID ::= 240 +id-SCGConfigurationQuery ProtocolIE-ID ::= 241 +id-MCGSplitSRB ProtocolIE-ID ::= 242 +id-UENRMeasurement ProtocolIE-ID ::= 243 +id-InitiatingNodeType-EndcX2Setup ProtocolIE-ID ::= 244 +id-InitiatingNodeType-EndcConfigUpdate ProtocolIE-ID ::= 245 +id-RespondingNodeType-EndcX2Setup ProtocolIE-ID ::= 246 +id-RespondingNodeType-EndcConfigUpdate ProtocolIE-ID ::= 247 +id-NRUESecurityCapabilities ProtocolIE-ID ::= 248 +id-PDCPChangeIndication ProtocolIE-ID ::= 249 +id-ServedEUTRAcellsENDCX2ManagementList ProtocolIE-ID ::= 250 +id-CellAssistanceInformation ProtocolIE-ID ::= 251 +id-Globalen-gNB-ID ProtocolIE-ID ::= 252 +id-ServedNRcellsENDCX2ManagementList ProtocolIE-ID ::= 253 +id-UE-ContextReferenceAtSgNB ProtocolIE-ID ::= 254 +id-SecondaryRATUsageReport ProtocolIE-ID ::= 255 +id-ActivationID ProtocolIE-ID ::= 256 +id-MeNBResourceCoordinationInformation ProtocolIE-ID ::= 257 +id-SgNBResourceCoordinationInformation ProtocolIE-ID ::= 258 +id-ServedEUTRAcellsToModifyListENDCConfUpd ProtocolIE-ID ::= 259 +id-ServedEUTRAcellsToDeleteListENDCConfUpd ProtocolIE-ID ::= 260 +id-ServedNRcellsToModifyListENDCConfUpd ProtocolIE-ID ::= 261 +id-ServedNRcellsToDeleteListENDCConfUpd ProtocolIE-ID ::= 262 +id-E-RABUsageReport-Item ProtocolIE-ID ::= 263 +id-Old-SgNB-UE-X2AP-ID ProtocolIE-ID ::= 264 +id-SecondaryRATUsageReportList ProtocolIE-ID ::= 265 +id-SecondaryRATUsageReport-Item ProtocolIE-ID ::= 266 +id-ServedNRCellsToActivate ProtocolIE-ID ::= 267 +id-ActivatedNRCellList ProtocolIE-ID ::= 268 +id-SelectedPLMN ProtocolIE-ID ::= 269 + +END + + +-- ************************************************************** +-- +-- Container definitions +-- +-- ************************************************************** + +X2AP-Containers { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Containers (5) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + maxPrivateIEs, + maxProtocolExtensions, + maxProtocolIEs, + Criticality, + Presence, + PrivateIE-ID, + ProtocolIE-ID +FROM X2AP-CommonDataTypes; + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +X2AP-PROTOCOL-IES ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +X2AP-PROTOCOL-IES-PAIR ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &firstCriticality Criticality, + &FirstValue, + &secondCriticality Criticality, + &SecondValue, + &presence Presence +} +WITH SYNTAX { + ID &id + FIRST CRITICALITY &firstCriticality + FIRST TYPE &FirstValue + SECOND CRITICALITY &secondCriticality + SECOND TYPE &SecondValue + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol Extensions +-- +-- ************************************************************** + +X2AP-PROTOCOL-EXTENSION ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Extension, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + EXTENSION &Extension + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Private IEs +-- +-- ************************************************************** + +X2AP-PRIVATE-IES ::= CLASS { + &id PrivateIE-ID, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Container for Protocol IEs +-- +-- ************************************************************** + +ProtocolIE-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Single-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Field {X2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-IES.&id ({IEsSetParam}), + criticality X2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), + value X2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Protocol IE Pairs +-- +-- ************************************************************** + +ProtocolIE-ContainerPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-FieldPair {{IEsSetParam}} + +ProtocolIE-FieldPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), + firstCriticality X2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), + firstValue X2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), + secondCriticality X2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), + secondValue X2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container Lists for Protocol IE Containers +-- +-- ************************************************************** + +ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-Container {{IEsSetParam}} + +ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-ContainerPair {{IEsSetParam}} + +-- ************************************************************** +-- +-- Container for Protocol Extensions +-- +-- ************************************************************** + +ProtocolExtensionContainer {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= + SEQUENCE (SIZE (1..maxProtocolExtensions)) OF + ProtocolExtensionField {{ExtensionSetParam}} + +ProtocolExtensionField {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), + criticality X2AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), + extensionValue X2AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Private IEs +-- +-- ************************************************************** + +PrivateIE-Container {X2AP-PRIVATE-IES : IEsSetParam} ::= + SEQUENCE (SIZE (1..maxPrivateIEs)) OF + PrivateIE-Field {{IEsSetParam}} + +PrivateIE-Field {X2AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { + id X2AP-PRIVATE-IES.&id ({IEsSetParam}), + criticality X2AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), + value X2AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) +} + +END diff --git a/openair2/X2AP/MESSAGES/ASN1/R15/x2ap-15.2.0.asn1 b/openair2/X2AP/MESSAGES/ASN1/R15/x2ap-15.2.0.asn1 new file mode 100755 index 0000000000..2090a07b4a --- /dev/null +++ b/openair2/X2AP/MESSAGES/ASN1/R15/x2ap-15.2.0.asn1 @@ -0,0 +1,7862 @@ +-- ************************************************************** +-- +-- Elementary Procedure definitions +-- +-- ************************************************************** + +X2AP-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Descriptions (0) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + ProcedureCode + +FROM X2AP-CommonDataTypes + + CellActivationRequest, + CellActivationResponse, + CellActivationFailure, + ENBConfigurationUpdate, + ENBConfigurationUpdateAcknowledge, + ENBConfigurationUpdateFailure, + ErrorIndication, + HandoverCancel, + HandoverReport, + HandoverPreparationFailure, + HandoverRequest, + HandoverRequestAcknowledge, + LoadInformation, + PrivateMessage, + ResetRequest, + ResetResponse, + ResourceStatusFailure, + ResourceStatusRequest, + ResourceStatusResponse, + ResourceStatusUpdate, + RLFIndication, + SNStatusTransfer, + UEContextRelease, + X2SetupFailure, + X2SetupRequest, + X2SetupResponse, + MobilityChangeRequest, + MobilityChangeAcknowledge, + MobilityChangeFailure, + X2Release, + X2APMessageTransfer, + SeNBAdditionRequest, + SeNBAdditionRequestAcknowledge, + SeNBAdditionRequestReject, + SeNBReconfigurationComplete, + SeNBModificationRequest, + SeNBModificationRequestAcknowledge, + SeNBModificationRequestReject, + SeNBModificationRequired, + SeNBModificationConfirm, + SeNBModificationRefuse, + SeNBReleaseRequest, + SeNBReleaseRequired, + SeNBReleaseConfirm, + SeNBCounterCheckRequest, + X2RemovalFailure, + X2RemovalRequest, + X2RemovalResponse, + RetrieveUEContextRequest, + RetrieveUEContextResponse, + RetrieveUEContextFailure, + SgNBAdditionRequest, + SgNBAdditionRequestAcknowledge, + SgNBAdditionRequestReject, + SgNBReconfigurationComplete, + SgNBModificationRequest, + SgNBModificationRequestAcknowledge, + SgNBModificationRequestReject, + SgNBModificationRequired, + SgNBModificationConfirm, + SgNBModificationRefuse, + SgNBReleaseRequest, + SgNBReleaseRequestAcknowledge, + SgNBReleaseRequestReject, + SgNBReleaseRequired, + SgNBReleaseConfirm, + SgNBCounterCheckRequest, + SgNBChangeRequired, + SgNBChangeConfirm, + SgNBChangeRefuse, + RRCTransfer, + ENDCX2SetupRequest, + ENDCX2SetupResponse, + ENDCX2SetupFailure, + ENDCConfigurationUpdate, + ENDCConfigurationUpdateAcknowledge, + ENDCConfigurationUpdateFailure, + SecondaryRATDataUsageReport, + ENDCCellActivationRequest, + ENDCCellActivationResponse, + ENDCCellActivationFailure, + ENDCPartialResetRequired, + ENDCPartialResetConfirm, + EUTRANRCellResourceCoordinationRequest, + EUTRANRCellResourceCoordinationResponse, + SgNBActivityNotification, + ENDCX2RemovalRequest, + ENDCX2RemovalResponse, + ENDCX2RemovalFailure + + +FROM X2AP-PDU-Contents + + id-cellActivation, + id-eNBConfigurationUpdate, + id-errorIndication, + id-handoverCancel, + id-handoverReport, + id-handoverPreparation, + + id-loadIndication, + id-privateMessage, + id-reset, + + id-resourceStatusReporting, + id-resourceStatusReportingInitiation, + id-rLFIndication, + id-snStatusTransfer, + id-uEContextRelease, + id-x2Setup, + id-mobilitySettingsChange, + id-x2Release, + id-x2APMessageTransfer, + id-seNBAdditionPreparation, + id-seNBReconfigurationCompletion, + id-meNBinitiatedSeNBModificationPreparation, + id-seNBinitiatedSeNBModification, + id-meNBinitiatedSeNBRelease, + id-seNBinitiatedSeNBRelease, + id-seNBCounterCheck, + id-x2Removal, + id-retrieveUEContext, + id-sgNBAdditionPreparation, + id-sgNBReconfigurationCompletion, + id-meNBinitiatedSgNBModificationPreparation, + id-sgNBinitiatedSgNBModification, + id-meNBinitiatedSgNBRelease, + id-sgNBinitiatedSgNBRelease, + id-sgNBChange, + id-sgNBCounterCheck, + id-rRCTransfer, + id-endcX2Setup, + id-endcConfigurationUpdate, + id-secondaryRATDataUsageReport, + id-endcCellActivation, + id-endcPartialReset, + id-eUTRANRCellResourceCoordination, + id-SgNBActivityNotification, + id-endcX2Removal + + +FROM X2AP-Constants; + +-- ************************************************************** +-- +-- Interface Elementary Procedure Class +-- +-- ************************************************************** + +X2AP-ELEMENTARY-PROCEDURE ::= CLASS { + &InitiatingMessage , + &SuccessfulOutcome OPTIONAL, + &UnsuccessfulOutcome OPTIONAL, + &procedureCode ProcedureCode UNIQUE, + &criticality Criticality DEFAULT ignore +} +WITH SYNTAX { + INITIATING MESSAGE &InitiatingMessage + [SUCCESSFUL OUTCOME &SuccessfulOutcome] + [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] + PROCEDURE CODE &procedureCode + [CRITICALITY &criticality] +} + +-- ************************************************************** +-- +-- Interface PDU Definition +-- +-- ************************************************************** + +X2AP-PDU ::= CHOICE { + initiatingMessage InitiatingMessage, + successfulOutcome SuccessfulOutcome, + unsuccessfulOutcome UnsuccessfulOutcome, + ... +} + +InitiatingMessage ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +SuccessfulOutcome ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +UnsuccessfulOutcome ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +-- ************************************************************** +-- +-- Interface Elementary Procedure List +-- +-- ************************************************************** + +X2AP-ELEMENTARY-PROCEDURES X2AP-ELEMENTARY-PROCEDURE ::= { + X2AP-ELEMENTARY-PROCEDURES-CLASS-1 | + X2AP-ELEMENTARY-PROCEDURES-CLASS-2 , + ... +} + +X2AP-ELEMENTARY-PROCEDURES-CLASS-1 X2AP-ELEMENTARY-PROCEDURE ::= { + handoverPreparation | + reset | + x2Setup | + resourceStatusReportingInitiation | + eNBConfigurationUpdate | + mobilitySettingsChange | + cellActivation | + seNBAdditionPreparation | + meNBinitiatedSeNBModificationPreparation | + seNBinitiatedSeNBModification | + seNBinitiatedSeNBRelease | + x2Removal | + retrieveUEContext | + sgNBAdditionPreparation | + meNBinitiatedSgNBModificationPreparation | + sgNBinitiatedSgNBModification | + meNBinitiatedSgNBRelease | + sgNBinitiatedSgNBRelease | + sgNBChange | + endcX2Setup | + endcConfigurationUpdate | + endcCellActivation | + endcPartialReset | + eUTRANRCellResourceCoordination | + endcX2Removal , + ... +} + +X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= { + snStatusTransfer | + uEContextRelease | + handoverCancel | + errorIndication | + resourceStatusReporting | + loadIndication | + privateMessage | + rLFIndication | + handoverReport | + x2Release | + x2APMessageTransfer | + seNBReconfigurationCompletion | + meNBinitiatedSeNBRelease | + seNBCounterCheck | + sgNBReconfigurationCompletion | + sgNBCounterCheck | + rRCTransfer | + secondaryRATDataUsageReport | + sgNBActivityNotification +, + ... + +} + +-- ************************************************************** +-- +-- Interface Elementary Procedures +-- +-- ************************************************************** + +handoverPreparation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequest + SUCCESSFUL OUTCOME HandoverRequestAcknowledge + UNSUCCESSFUL OUTCOME HandoverPreparationFailure + PROCEDURE CODE id-handoverPreparation + CRITICALITY reject +} + +snStatusTransfer X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SNStatusTransfer + PROCEDURE CODE id-snStatusTransfer + CRITICALITY ignore +} + +uEContextRelease X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextRelease + PROCEDURE CODE id-uEContextRelease + CRITICALITY ignore +} + + +handoverCancel X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverCancel + PROCEDURE CODE id-handoverCancel + CRITICALITY ignore +} + +handoverReport X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverReport + PROCEDURE CODE id-handoverReport + CRITICALITY ignore +} + +errorIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ErrorIndication + PROCEDURE CODE id-errorIndication + CRITICALITY ignore +} + +reset X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResetRequest + SUCCESSFUL OUTCOME ResetResponse + PROCEDURE CODE id-reset + CRITICALITY reject +} + +x2Setup X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE X2SetupRequest + SUCCESSFUL OUTCOME X2SetupResponse + UNSUCCESSFUL OUTCOME X2SetupFailure + PROCEDURE CODE id-x2Setup + CRITICALITY reject +} + + +loadIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LoadInformation + PROCEDURE CODE id-loadIndication + CRITICALITY ignore +} + +eNBConfigurationUpdate X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationUpdate + SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure + PROCEDURE CODE id-eNBConfigurationUpdate + CRITICALITY reject +} + +resourceStatusReportingInitiation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResourceStatusRequest + SUCCESSFUL OUTCOME ResourceStatusResponse + UNSUCCESSFUL OUTCOME ResourceStatusFailure + PROCEDURE CODE id-resourceStatusReportingInitiation + CRITICALITY reject +} + +resourceStatusReporting X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResourceStatusUpdate + PROCEDURE CODE id-resourceStatusReporting + CRITICALITY ignore +} + +rLFIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RLFIndication + PROCEDURE CODE id-rLFIndication + CRITICALITY ignore +} + +privateMessage X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PrivateMessage + PROCEDURE CODE id-privateMessage + CRITICALITY ignore +} + +mobilitySettingsChange X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MobilityChangeRequest + SUCCESSFUL OUTCOME MobilityChangeAcknowledge + UNSUCCESSFUL OUTCOME MobilityChangeFailure + PROCEDURE CODE id-mobilitySettingsChange + CRITICALITY reject +} + +cellActivation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE CellActivationRequest + SUCCESSFUL OUTCOME CellActivationResponse + UNSUCCESSFUL OUTCOME CellActivationFailure + PROCEDURE CODE id-cellActivation + CRITICALITY reject +} + +x2Release X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE X2Release + PROCEDURE CODE id-x2Release + CRITICALITY reject +} + +x2APMessageTransfer X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE X2APMessageTransfer + PROCEDURE CODE id-x2APMessageTransfer + CRITICALITY reject +} + +seNBAdditionPreparation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBAdditionRequest + SUCCESSFUL OUTCOME SeNBAdditionRequestAcknowledge + UNSUCCESSFUL OUTCOME SeNBAdditionRequestReject + PROCEDURE CODE id-seNBAdditionPreparation + CRITICALITY reject +} + +seNBReconfigurationCompletion X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBReconfigurationComplete + PROCEDURE CODE id-seNBReconfigurationCompletion + CRITICALITY ignore +} + +meNBinitiatedSeNBModificationPreparation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBModificationRequest + SUCCESSFUL OUTCOME SeNBModificationRequestAcknowledge + UNSUCCESSFUL OUTCOME SeNBModificationRequestReject + PROCEDURE CODE id-meNBinitiatedSeNBModificationPreparation + CRITICALITY reject +} + +seNBinitiatedSeNBModification X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBModificationRequired + SUCCESSFUL OUTCOME SeNBModificationConfirm + UNSUCCESSFUL OUTCOME SeNBModificationRefuse + PROCEDURE CODE id-seNBinitiatedSeNBModification + CRITICALITY reject +} + +meNBinitiatedSeNBRelease X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBReleaseRequest + PROCEDURE CODE id-meNBinitiatedSeNBRelease + CRITICALITY ignore +} + +seNBinitiatedSeNBRelease X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBReleaseRequired + SUCCESSFUL OUTCOME SeNBReleaseConfirm + PROCEDURE CODE id-seNBinitiatedSeNBRelease + CRITICALITY reject +} + +seNBCounterCheck X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SeNBCounterCheckRequest + PROCEDURE CODE id-seNBCounterCheck + CRITICALITY reject +} + +x2Removal X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE X2RemovalRequest + SUCCESSFUL OUTCOME X2RemovalResponse + UNSUCCESSFUL OUTCOME X2RemovalFailure + PROCEDURE CODE id-x2Removal + CRITICALITY reject +} + +retrieveUEContext X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RetrieveUEContextRequest + SUCCESSFUL OUTCOME RetrieveUEContextResponse + UNSUCCESSFUL OUTCOME RetrieveUEContextFailure + PROCEDURE CODE id-retrieveUEContext + CRITICALITY reject +} + +sgNBAdditionPreparation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SgNBAdditionRequest + SUCCESSFUL OUTCOME SgNBAdditionRequestAcknowledge + UNSUCCESSFUL OUTCOME SgNBAdditionRequestReject + PROCEDURE CODE id-sgNBAdditionPreparation + CRITICALITY reject +} + +sgNBReconfigurationCompletion X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SgNBReconfigurationComplete + PROCEDURE CODE id-sgNBReconfigurationCompletion + CRITICALITY ignore +} + +meNBinitiatedSgNBModificationPreparation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SgNBModificationRequest + SUCCESSFUL OUTCOME SgNBModificationRequestAcknowledge + UNSUCCESSFUL OUTCOME SgNBModificationRequestReject + PROCEDURE CODE id-meNBinitiatedSgNBModificationPreparation + CRITICALITY reject +} + +sgNBinitiatedSgNBModification X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SgNBModificationRequired + SUCCESSFUL OUTCOME SgNBModificationConfirm + UNSUCCESSFUL OUTCOME SgNBModificationRefuse + PROCEDURE CODE id-sgNBinitiatedSgNBModification + CRITICALITY reject +} + +meNBinitiatedSgNBRelease X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SgNBReleaseRequest + SUCCESSFUL OUTCOME SgNBReleaseRequestAcknowledge + UNSUCCESSFUL OUTCOME SgNBReleaseRequestReject + PROCEDURE CODE id-meNBinitiatedSgNBRelease + CRITICALITY ignore +} + +sgNBinitiatedSgNBRelease X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SgNBReleaseRequired + SUCCESSFUL OUTCOME SgNBReleaseConfirm + PROCEDURE CODE id-sgNBinitiatedSgNBRelease + CRITICALITY reject +} + +sgNBCounterCheck X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SgNBCounterCheckRequest + PROCEDURE CODE id-sgNBCounterCheck + CRITICALITY reject +} + +sgNBChange X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SgNBChangeRequired + SUCCESSFUL OUTCOME SgNBChangeConfirm + UNSUCCESSFUL OUTCOME SgNBChangeRefuse + PROCEDURE CODE id-sgNBChange + CRITICALITY reject +} + +rRCTransfer X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RRCTransfer + PROCEDURE CODE id-rRCTransfer + CRITICALITY reject +} + +endcX2Setup X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENDCX2SetupRequest + SUCCESSFUL OUTCOME ENDCX2SetupResponse + UNSUCCESSFUL OUTCOME ENDCX2SetupFailure + PROCEDURE CODE id-endcX2Setup + CRITICALITY reject +} + + +endcConfigurationUpdate X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENDCConfigurationUpdate + SUCCESSFUL OUTCOME ENDCConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME ENDCConfigurationUpdateFailure + PROCEDURE CODE id-endcConfigurationUpdate + CRITICALITY reject +} + +secondaryRATDataUsageReport X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SecondaryRATDataUsageReport + PROCEDURE CODE id-secondaryRATDataUsageReport + CRITICALITY reject +} + +endcCellActivation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENDCCellActivationRequest + SUCCESSFUL OUTCOME ENDCCellActivationResponse + UNSUCCESSFUL OUTCOME ENDCCellActivationFailure + PROCEDURE CODE id-endcCellActivation + CRITICALITY reject +} + +endcPartialReset X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENDCPartialResetRequired + SUCCESSFUL OUTCOME ENDCPartialResetConfirm + PROCEDURE CODE id-endcPartialReset + CRITICALITY reject +} + +eUTRANRCellResourceCoordination X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE EUTRANRCellResourceCoordinationRequest + SUCCESSFUL OUTCOME EUTRANRCellResourceCoordinationResponse + PROCEDURE CODE id-eUTRANRCellResourceCoordination + CRITICALITY reject +} + +sgNBActivityNotification X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SgNBActivityNotification + PROCEDURE CODE id-SgNBActivityNotification + CRITICALITY reject +} + + +endcX2Removal X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENDCX2RemovalRequest + SUCCESSFUL OUTCOME ENDCX2RemovalResponse + UNSUCCESSFUL OUTCOME ENDCX2RemovalFailure + PROCEDURE CODE id-endcX2Removal + CRITICALITY reject +} + +END + + +-- ************************************************************** +-- +-- PDU definitions for X2AP. +-- +-- ************************************************************** + +X2AP-PDU-Contents { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Contents (1) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + ABSInformation, + ABS-Status, + AS-SecurityInformation, + BearerType, + Cause, + CompositeAvailableCapacityGroup, + Correlation-ID, + COUNTvalue, + CellReportingIndicator, + AerialUEsubscriptionInformation, + CriticalityDiagnostics, + CRNTI, + CSGMembershipStatus, + CSG-Id, + DeactivationIndication, + DL-Forwarding, + DynamicDLTransmissionInformation, + ECGI, + E-RAB-ID, + E-RAB-Level-QoS-Parameters, + E-RAB-List, + EUTRANTraceID, + GlobalENB-ID, + GTPtunnelEndpoint, + GUGroupIDList, + GUMMEI, + HandoverReportType, + HandoverRestrictionList, + Masked-IMEISV, + InvokeIndication, + LocationReportingInformation, + MDT-Configuration, + ManagementBasedMDTallowed, + MDTPLMNList, + Neighbour-Information, + PCI, + PDCP-SN, + PLMN-Identity, + ReceiveStatusofULPDCPSDUs, + Registration-Request, + RelativeNarrowbandTxPower, + RadioResourceStatus, + RRCConnReestabIndicator, + RRCConnSetupIndicator, + UE-RLF-Report-Container, + UEAppLayerMeasConfig, + RRC-Context, + ServedCell-Information, + ServedCells, + ShortMAC-I, + SRVCCOperationPossible, + SubscriberProfileIDforRFP, + TargetCellInUTRAN, + TargeteNBtoSource-eNBTransparentContainer, + TimeToWait, + TraceActivation, + TraceDepth, + TransportLayerAddress, + UEAggregateMaximumBitRate, + UE-HistoryInformation, + UE-HistoryInformationFromTheUE, + UE-S1AP-ID, + UESecurityCapabilities, + UEsToBeResetList, + UE-X2AP-ID, + UL-HighInterferenceIndicationInfo, + UL-InterferenceOverloadIndication, + HWLoadIndicator, + S1TNLLoadIndicator, + Measurement-ID, + ReportCharacteristics, + MobilityParametersInformation, + MobilityParametersModificationRange, + ReceiveStatusOfULPDCPSDUsExtended, + COUNTValueExtended, + SubframeAssignment, + ExtendedULInterferenceOverloadInfo, + ExpectedUEBehaviour, + SeNBSecurityKey, + MeNBtoSeNBContainer, + SeNBtoMeNBContainer, + SCGChangeIndication, + CoMPInformation, + ReportingPeriodicityRSRPMR, + RSRPMRList, + UE-RLF-Report-Container-for-extended-bands, + ProSeAuthorized, + CoverageModificationList, + ReportingPeriodicityCSIR, + CSIReportList, + ReceiveStatusOfULPDCPSDUsPDCP-SNlength18, + COUNTvaluePDCP-SNlength18, + LHN-ID, + UE-ContextKeptIndicator, + UE-X2AP-ID-Extension, + SIPTOBearerDeactivationIndication, + TunnelInformation, + V2XServicesAuthorized, + X2BenefitValue, + ResumeID, + EUTRANCellIdentifier, + MakeBeforeBreakIndicator, + WTID, + WT-UE-XwAP-ID, + UESidelinkAggregateMaximumBitRate, + SgNBSecurityKey, + MeNBtoSgNBContainer, + SgNBtoMeNBContainer, + SplitSRBs, + RRCContainer, + SRBType, + GlobalGNB-ID, + GNB-ID, + SCGConfigurationQuery, + SplitSRB, + UENRMeasurement, + EN-DC-ResourceConfiguration, + TAC, + NRFreqInfo, + NRCGI, + NRPCI, + NRUESecurityCapabilities, + PDCPChangeIndication, + ULConfiguration, + SgNB-UE-X2AP-ID, + SecondaryRATUsageReportList, + ActivationID, + MeNBResourceCoordinationInformation, + SgNBResourceCoordinationInformation, + NR-TxBW, + BroadcastPLMNs-Item, + RLCMode, + GBR-QosInformation, + DRB-ID, + FiveGS-TAC, + SULInformation, + Packet-LossRate, + ResourceType, + DataTrafficResourceIndication, + SpectrumSharingGroupID, + RRC-Config-Ind, + SGNB-Addition-Trigger-Ind, + UserPlaneTrafficActivityReport, + ERABActivityNotifyItemList + + +FROM X2AP-IEs + + PrivateIE-Container{}, + ProtocolExtensionContainer{}, + ProtocolIE-Container{}, + ProtocolIE-ContainerList{}, + ProtocolIE-ContainerPair{}, + ProtocolIE-ContainerPairList{}, + ProtocolIE-Single-Container{}, + X2AP-PRIVATE-IES, + X2AP-PROTOCOL-EXTENSION, + X2AP-PROTOCOL-IES, + X2AP-PROTOCOL-IES-PAIR +FROM X2AP-Containers + + id-ABSInformation, + id-ActivatedCellList, + id-BearerType, + id-Cause, + id-CellInformation, + id-CellInformation-Item, + id-CellMeasurementResult, + id-CellMeasurementResult-Item, + id-CellToReport, + id-CellToReport-Item, + id-CompositeAvailableCapacityGroup, + id-AerialUEsubscriptionInformation, + id-CriticalityDiagnostics, + id-DeactivationIndication, + id-DynamicDLTransmissionInformation, + id-E-RABs-Admitted-Item, + id-E-RABs-Admitted-List, + id-E-RABs-NotAdmitted-List, + id-E-RABs-SubjectToStatusTransfer-List, + id-E-RABs-SubjectToStatusTransfer-Item, + id-E-RABs-ToBeSetup-Item, + id-GlobalENB-ID, + id-GUGroupIDList, + id-GUGroupIDToAddList, + id-GUGroupIDToDeleteList, + id-GUMMEI-ID, + id-Masked-IMEISV, + id-InvokeIndication, + id-New-eNB-UE-X2AP-ID, + id-Old-eNB-UE-X2AP-ID, + id-Registration-Request, + id-ReportingPeriodicity, + id-ServedCells, + id-ServedCellsToActivate, + id-ServedCellsToAdd, + id-ServedCellsToModify, + id-ServedCellsToDelete, + id-SRVCCOperationPossible, + id-TargetCell-ID, + id-TargeteNBtoSource-eNBTransparentContainer, + id-TimeToWait, + id-TraceActivation, + id-UE-ContextInformation, + id-UE-HistoryInformation, + id-UE-X2AP-ID, + id-Measurement-ID, + id-ReportCharacteristics, + id-ENB1-Measurement-ID, + id-ENB2-Measurement-ID, + id-ENB1-Cell-ID, + id-ENB2-Cell-ID, + id-ENB2-Proposed-Mobility-Parameters, + id-ENB1-Mobility-Parameters, + id-ENB2-Mobility-Parameters-Modification-Range, + id-FailureCellPCI, + id-Re-establishmentCellECGI, + id-FailureCellCRNTI, + id-ShortMAC-I, + id-SourceCellECGI, + id-FailureCellECGI, + id-HandoverReportType, + id-UE-RLF-Report-Container, + id-PartialSuccessIndicator, + id-MeasurementInitiationResult-List, + id-MeasurementInitiationResult-Item, + id-MeasurementFailureCause-Item, + id-CompleteFailureCauseInformation-List, + id-CompleteFailureCauseInformation-Item, + id-CSGMembershipStatus, + id-CSG-Id, + id-MDTConfiguration, + id-ManagementBasedMDTallowed, + id-ABS-Status, + id-RRCConnSetupIndicator, + id-RRCConnReestabIndicator, + id-TargetCellInUTRAN, + id-MobilityInformation, + id-SourceCellCRNTI, + id-ManagementBasedMDTPLMNList, + id-ReceiveStatusOfULPDCPSDUsExtended, + id-ULCOUNTValueExtended, + id-DLCOUNTValueExtended, + id-IntendedULDLConfiguration, + id-ExtendedULInterferenceOverloadInfo, + id-RNL-Header, + id-x2APMessage, + id-UE-HistoryInformationFromTheUE, + id-ExpectedUEBehaviour, + id-MeNB-UE-X2AP-ID, + id-SeNB-UE-X2AP-ID, + id-UE-SecurityCapabilities, + id-SeNBSecurityKey, + id-SeNBUEAggregateMaximumBitRate, + id-ServingPLMN, + id-E-RABs-ToBeAdded-List, + id-E-RABs-ToBeAdded-Item, + id-MeNBtoSeNBContainer, + id-E-RABs-Admitted-ToBeAdded-List, + id-E-RABs-Admitted-ToBeAdded-Item, + id-SeNBtoMeNBContainer, + id-ResponseInformationSeNBReconfComp, + id-UE-ContextInformationSeNBModReq, + id-E-RABs-ToBeAdded-ModReqItem, + id-E-RABs-ToBeModified-ModReqItem, + id-E-RABs-ToBeReleased-ModReqItem, + id-E-RABs-Admitted-ToBeAdded-ModAckList, + id-E-RABs-Admitted-ToBeModified-ModAckList, + id-E-RABs-Admitted-ToBeReleased-ModAckList, + id-E-RABs-Admitted-ToBeAdded-ModAckItem, + id-E-RABs-Admitted-ToBeModified-ModAckItem, + id-E-RABs-Admitted-ToBeReleased-ModAckItem, + id-SCGChangeIndication, + id-E-RABs-ToBeReleased-ModReqd, + id-E-RABs-ToBeReleased-ModReqdItem, + id-E-RABs-ToBeReleased-List-RelReq, + id-E-RABs-ToBeReleased-RelReqItem, + id-E-RABs-ToBeReleased-List-RelConf, + id-E-RABs-ToBeReleased-RelConfItem, + id-E-RABs-SubjectToCounterCheck-List, + id-E-RABs-SubjectToCounterCheckItem, + id-CoMPInformation, + id-ReportingPeriodicityRSRPMR, + id-RSRPMRList, + id-UE-RLF-Report-Container-for-extended-bands, + id-ProSeAuthorized, + id-CoverageModificationList, + id-ReportingPeriodicityCSIR, + id-CSIReportList, + id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18, + id-ULCOUNTValuePDCP-SNlength18, + id-DLCOUNTValuePDCP-SNlength18, + id-LHN-ID, + id-Correlation-ID, + id-SIPTO-Correlation-ID, + id-UE-ContextReferenceAtSeNB, + id-UE-ContextReferenceAtWT, + id-UE-ContextKeptIndicator, + id-UEs-ToBeReset, + id-UEs-Admitted-ToBeReset, + id-WT-UE-ContextKeptIndicator, + id-New-eNB-UE-X2AP-ID-Extension, + id-Old-eNB-UE-X2AP-ID-Extension, + id-MeNB-UE-X2AP-ID-Extension, + id-SeNB-UE-X2AP-ID-Extension, + id-SIPTO-BearerDeactivationIndication, + id-Tunnel-Information-for-BBF, + id-SIPTO-L-GW-TransportLayerAddress, + id-GW-TransportLayerAddress, + id-X2RemovalThreshold, + id-CellReportingIndicator, + id-V2XServicesAuthorized, + id-resumeID, + id-UE-ContextInformationRetrieve, + id-E-RABs-ToBeSetupRetrieve-Item, + id-NewEUTRANCellIdentifier, + id-MakeBeforeBreakIndicator, + id-UESidelinkAggregateMaximumBitRate, + id-uL-GTPtunnelEndpoint, + id-SgNBSecurityKey, + id-SgNBUEAggregateMaximumBitRate, + id-E-RABs-ToBeAdded-SgNBAddReqList, + id-MeNBtoSgNBContainer, + id-SgNB-UE-X2AP-ID, + id-RequestedSplitSRBs, + id-E-RABs-ToBeAdded-SgNBAddReq-Item, + id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList, + id-SgNBtoMeNBContainer, + id-AdmittedSplitSRBs , + id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item, + id-ResponseInformationSgNBReconfComp, + id-UE-ContextInformation-SgNBModReq, + id-E-RABs-ToBeAdded-SgNBModReq-Item, + id-E-RABs-ToBeModified-SgNBModReq-Item, + id-E-RABs-ToBeReleased-SgNBModReq-Item, + id-E-RABs-Admitted-ToBeAdded-SgNBModAckList, + id-E-RABs-Admitted-ToBeModified-SgNBModAckList, + id-E-RABs-Admitted-ToBeReleased-SgNBModAckList, + id-E-RABs-Admitted-ToBeAdded-SgNBModAck-Item, + id-E-RABs-Admitted-ToBeModified-SgNBModAck-Item, + id-E-RABs-Admitted-ToBeReleased-SgNBModAck-Item, + id-E-RABs-ToBeReleased-SgNBModReqdList, + id-E-RABs-ToBeModified-SgNBModReqdList, + id-E-RABs-ToBeReleased-SgNBModReqd-Item, + id-E-RABs-ToBeModified-SgNBModReqd-Item, + id-E-RABs-ToBeReleased-SgNBChaConfList, + id-E-RABs-ToBeReleased-SgNBChaConf-Item, + id-E-RABs-ToBeReleased-SgNBRelReqList, + id-E-RABs-ToBeReleased-SgNBRelReq-Item, + id-E-RABs-ToBeReleased-SgNBRelConfList, + id-E-RABs-ToBeReleased-SgNBRelConf-Item, + id-E-RABs-SubjectToSgNBCounterCheck-List, + id-E-RABs-SubjectToSgNBCounterCheck-Item, + id-Target-SgNB-ID, + id-RRCContainer, + id-SRBType, + id-HandoverRestrictionList, + id-SCGConfigurationQuery, + id-SplitSRB, + id-UENRMeasurement, + id-InitiatingNodeType-EndcX2Setup, + id-InitiatingNodeType-EndcConfigUpdate, + id-RespondingNodeType-EndcX2Setup, + id-RespondingNodeType-EndcConfigUpdate, + id-NRUESecurityCapabilities, + id-PDCPChangeIndication, + id-ServedEUTRAcellsENDCX2ManagementList, + id-ServedEUTRAcellsToModifyListENDCConfUpd, + id-ServedEUTRAcellsToDeleteListENDCConfUpd, + id-ServedNRcellsToModifyListENDCConfUpd, + id-ServedNRcellsToDeleteListENDCConfUpd, + id-CellAssistanceInformation, + id-Globalen-gNB-ID, + id-ServedNRcellsENDCX2ManagementList, + id-Old-SgNB-UE-X2AP-ID, + id-UE-ContextReferenceAtSgNB, + id-SecondaryRATUsageReportList, + id-ActivationID, + id-ServedNRCellsToActivate, + id-ActivatedNRCellList, + id-MeNBResourceCoordinationInformation, + id-SgNBResourceCoordinationInformation, + id-UEAppLayerMeasConfig, + id-SelectedPLMN, + id-SubscriberProfileIDforRFP, + id-InitiatingNodeType-EutranrCellResourceCoordination, + id-RespondingNodeType-EutranrCellResourceCoordination, + id-DataTrafficResourceIndication, + id-SpectrumSharingGroupID, + id-ListofEUTRACellsinEUTRACoordinationReq, + id-ListofEUTRACellsinEUTRACoordinationResp, + id-ListofEUTRACellsinNRCoordinationReq, + id-ListofNRCellsinNRCoordinationReq, + id-ListofNRCellsinNRCoordinationResp, + id-RRCConfigIndication, + id-SGNB-Addition-Trigger-Ind, + id-RequestedSplitSRBsrelease, + id-AdmittedSplitSRBsrelease, + id-E-RABs-AdmittedToBeModified-SgNBModConfList, + id-E-RABs-AdmittedToBeModified-SgNBModConf-Item, + id-UEContextLevelUserPlaneActivity, + id-ERABActivityNotifyItemList, + id-MeNBCell-ID, + id-InitiatingNodeType-EndcX2Removal, + id-RespondingNodeType-EndcX2Removal, + + + maxCellineNB, + maxnoofBearers, + maxnoofPDCP-SN, + maxFailedMeasObjects, + maxnoofCellIDforMDT, + maxnoofTAforMDT, + maxofNRNeighbours, + maxCellinengNB, + maxnoofCellIDforQMC, + maxnoofTAforQMC, + maxnoofPLMNforQMC, + maxnoofProtectedResourcePatterns, + maxnoNRcellsSpectrumSharingWithE-UTRA, + maxnoofNrCellBands + +FROM X2AP-Constants; + +-- ************************************************************** +-- +-- HANDOVER REQUEST +-- +-- ************************************************************** + +HandoverRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverRequest-IEs}}, + ... +} + +HandoverRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-TargetCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory}| + { ID id-UE-ContextInformation CRITICALITY reject TYPE UE-ContextInformation PRESENCE mandatory}| + { ID id-UE-HistoryInformation CRITICALITY ignore TYPE UE-HistoryInformation PRESENCE mandatory}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-MobilityInformation CRITICALITY ignore TYPE MobilityInformation PRESENCE optional}| + { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| + { ID id-UE-HistoryInformationFromTheUE CRITICALITY ignore TYPE UE-HistoryInformationFromTheUE PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-UE-ContextReferenceAtSeNB CRITICALITY ignore TYPE UE-ContextReferenceAtSeNB PRESENCE optional}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| + { ID id-UE-ContextReferenceAtWT CRITICALITY ignore TYPE UE-ContextReferenceAtWT PRESENCE optional}| + { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}| + { ID id-UE-ContextReferenceAtSgNB CRITICALITY ignore TYPE UE-ContextReferenceAtSgNB PRESENCE optional}| + { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}, + ... +} + +UE-ContextInformation ::= SEQUENCE { + mME-UE-S1AP-ID UE-S1AP-ID, + uESecurityCapabilities UESecurityCapabilities, + aS-SecurityInformation AS-SecurityInformation, + uEaggregateMaximumBitRate UEAggregateMaximumBitRate, + subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, + e-RABs-ToBeSetup-List E-RABs-ToBeSetup-List, + rRC-Context RRC-Context, + handoverRestrictionList HandoverRestrictionList OPTIONAL, + locationReportingInformation LocationReportingInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {UE-ContextInformation-ExtIEs} } OPTIONAL, + ... +} + +UE-ContextInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-ManagementBasedMDTallowed CRITICALITY ignore EXTENSION ManagementBasedMDTallowed PRESENCE optional }| +{ ID id-ManagementBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional }| +{ ID id-UESidelinkAggregateMaximumBitRate CRITICALITY ignore EXTENSION UESidelinkAggregateMaximumBitRate PRESENCE optional}, + ... +} + +E-RABs-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetup-ItemIEs} } + +E-RABs-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeSetup-Item CRITICALITY ignore TYPE E-RABs-ToBeSetup-Item PRESENCE mandatory }, + ... +} + +E-RABs-ToBeSetup-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + dL-Forwarding DL-Forwarding OPTIONAL, + uL-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetup-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeSetup-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional}, + ... +} + +MobilityInformation ::= BIT STRING (SIZE(32)) + +UE-ContextReferenceAtSeNB ::= SEQUENCE { + source-GlobalSeNB-ID GlobalENB-ID, + seNB-UE-X2AP-ID UE-X2AP-ID, + seNB-UE-X2AP-ID-Extension UE-X2AP-ID-Extension, + iE-Extensions ProtocolExtensionContainer { {UE-ContextReferenceAtSeNB-ItemExtIEs} } OPTIONAL, + ... +} + +UE-ContextReferenceAtSeNB-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UE-ContextReferenceAtWT ::= SEQUENCE { + wTID WTID, + wT-UE-XwAP-ID WT-UE-XwAP-ID, + iE-Extensions ProtocolExtensionContainer { {UE-ContextReferenceAtWT-ItemExtIEs} } OPTIONAL, + ... +} + +UE-ContextReferenceAtWT-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UE-ContextReferenceAtSgNB ::= SEQUENCE { + source-GlobalSgNB-ID GlobalGNB-ID, + sgNB-UE-X2AP-ID SgNB-UE-X2AP-ID, + iE-Extensions ProtocolExtensionContainer { {UE-ContextReferenceAtSgNB-ItemExtIEs} } OPTIONAL, + ... +} + +UE-ContextReferenceAtSgNB-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- HANDOVER REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +HandoverRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverRequestAcknowledge-IEs}}, + ... +} + +HandoverRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-Admitted-List CRITICALITY ignore TYPE E-RABs-Admitted-List PRESENCE mandatory}| + { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| + { ID id-TargeteNBtoSource-eNBTransparentContainer CRITICALITY ignore TYPE TargeteNBtoSource-eNBTransparentContainer PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-WT-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}, + ... +} + +E-RABs-Admitted-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ItemIEs} } + +E-RABs-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-Item CRITICALITY ignore TYPE E-RABs-Admitted-Item PRESENCE mandatory } +} + +E-RABs-Admitted-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, + dL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-Item-ExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- HANDOVER PREPARATION FAILURE +-- +-- ************************************************************** + +HandoverPreparationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverPreparationFailure-IEs}}, + ... +} + +HandoverPreparationFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + + ... +} + +-- ************************************************************** +-- +-- Handover Report +-- +-- ************************************************************** + +HandoverReport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverReport-IEs}}, + ... +} + +HandoverReport-IEs X2AP-PROTOCOL-IES ::= { + { ID id-HandoverReportType CRITICALITY ignore TYPE HandoverReportType PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-SourceCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-FailureCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to “HO to Wrong Cell” -- | + { ID id-TargetCellInUTRAN CRITICALITY ignore TYPE TargetCellInUTRAN PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to "InterRAT ping-pong" --| + { ID id-SourceCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE optional}| + { ID id-MobilityInformation CRITICALITY ignore TYPE MobilityInformation PRESENCE optional}| + { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}| + { ID id-UE-RLF-Report-Container-for-extended-bands CRITICALITY ignore TYPE UE-RLF-Report-Container-for-extended-bands PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SN Status Transfer +-- +-- ************************************************************** + +SNStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SNStatusTransfer-IEs}}, + ... +} + +SNStatusTransfer-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-SubjectToStatusTransfer-List CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-List PRESENCE mandatory}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE optional}, + ... +} + +E-RABs-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { { E-RABs-SubjectToStatusTransfer-ItemIEs} } + +E-RABs-SubjectToStatusTransfer-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-Item PRESENCE mandatory } +} + +E-RABs-SubjectToStatusTransfer-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + + receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, + uL-COUNTvalue COUNTvalue, + dL-COUNTvalue COUNTvalue, + iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-SubjectToStatusTransfer-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-ReceiveStatusOfULPDCPSDUsExtended CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsExtended PRESENCE optional}| + { ID id-ULCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| + { ID id-DLCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| + { ID id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 PRESENCE optional}| + { ID id-ULCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}| + { ID id-DLCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- UE Context Release +-- +-- ************************************************************** + +UEContextRelease ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextRelease-IEs}}, + ... +} + +UEContextRelease-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SIPTO-BearerDeactivationIndication CRITICALITY ignore TYPE SIPTOBearerDeactivationIndication PRESENCE optional}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- HANDOVER CANCEL +-- +-- ************************************************************** + +HandoverCancel ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverCancel-IEs}}, + ... +} + +HandoverCancel-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- ERROR INDICATION +-- +-- ************************************************************** + +ErrorIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}}, + ... +} + +ErrorIndication-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}| + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-Old-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Reset Request +-- +-- ************************************************************** + +ResetRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResetRequest-IEs}}, + ... +} + +ResetRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- Reset Response +-- +-- ************************************************************** + +ResetResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResetResponse-IEs}}, + ... +} + +ResetResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- X2 SETUP REQUEST +-- +-- ************************************************************** + +X2SetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupRequest-IEs}}, + ... +} + +X2SetupRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| + { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory}| + { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, +... +} + + + +-- ************************************************************** +-- +-- X2 SETUP RESPONSE +-- +-- ************************************************************** + +X2SetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupResponse-IEs}}, + ... +} + +X2SetupResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| + { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory}| + { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, + ... +} + + + +-- ************************************************************** +-- +-- X2 SETUP FAILURE +-- +-- ************************************************************** + +X2SetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupFailure-IEs}}, + ... +} + +X2SetupFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + + ... +} + + + +-- ************************************************************** +-- +-- LOAD INFORMATION +-- +-- ************************************************************** + +LoadInformation ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{LoadInformation-IEs}}, + ... +} + +LoadInformation-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CellInformation CRITICALITY ignore TYPE CellInformation-List PRESENCE mandatory} , + ... +} + +CellInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellInformation-ItemIEs} } + +CellInformation-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellInformation-Item CRITICALITY ignore TYPE CellInformation-Item PRESENCE mandatory } +} + +CellInformation-Item ::= SEQUENCE { + cell-ID ECGI, + ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication OPTIONAL, + ul-HighInterferenceIndicationInfo UL-HighInterferenceIndicationInfo OPTIONAL, + relativeNarrowbandTxPower RelativeNarrowbandTxPower OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CellInformation-Item-ExtIEs} } OPTIONAL, + ... +} + +CellInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-ABSInformation CRITICALITY ignore EXTENSION ABSInformation PRESENCE optional }| +{ ID id-InvokeIndication CRITICALITY ignore EXTENSION InvokeIndication PRESENCE optional }| +{ ID id-IntendedULDLConfiguration CRITICALITY ignore EXTENSION SubframeAssignment PRESENCE optional }| +{ ID id-ExtendedULInterferenceOverloadInfo CRITICALITY ignore EXTENSION ExtendedULInterferenceOverloadInfo PRESENCE optional }| +{ ID id-CoMPInformation CRITICALITY ignore EXTENSION CoMPInformation PRESENCE optional }| +{ ID id-DynamicDLTransmissionInformation CRITICALITY ignore EXTENSION DynamicDLTransmissionInformation PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE +-- +-- ************************************************************** + +ENBConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdate-IEs}}, + ... +} + +ENBConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ServedCellsToAdd CRITICALITY reject TYPE ServedCells PRESENCE optional}| + { ID id-ServedCellsToModify CRITICALITY reject TYPE ServedCellsToModify PRESENCE optional}| + { ID id-ServedCellsToDelete CRITICALITY reject TYPE Old-ECGIs PRESENCE optional}| + { ID id-GUGroupIDToAddList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| + { ID id-GUGroupIDToDeleteList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| + { ID id-CoverageModificationList CRITICALITY reject TYPE CoverageModificationList PRESENCE optional}, + ... +} + +ServedCellsToModify::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToModify-Item + +ServedCellsToModify-Item::= SEQUENCE { + old-ecgi ECGI, + servedCellInfo ServedCell-Information, + neighbour-Info Neighbour-Information OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ServedCellsToModify-Item-ExtIEs} } OPTIONAL, + ... +} + +ServedCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-DeactivationIndication CRITICALITY ignore EXTENSION DeactivationIndication PRESENCE optional }, + ... +} + + +Old-ECGIs::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE ACKNOWLEDGE +-- +-- ************************************************************** + +ENBConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateAcknowledge-IEs}}, + ... +} + +ENBConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, +... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE FAIURE +-- +-- ************************************************************** + +ENBConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateFailure-IEs}}, + ... +} + +ENBConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + + + +-- ************************************************************** +-- +-- Resource Status Request +-- +-- ************************************************************** + +ResourceStatusRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusRequest-IEs}}, + ... +} + +ResourceStatusRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY ignore TYPE Measurement-ID PRESENCE conditional}|-- The IE shall be present if the Registration Request IE is set to “Stop”, “Partial stop” or to “Add”-- + { ID id-Registration-Request CRITICALITY reject TYPE Registration-Request PRESENCE mandatory}| + { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE optional}| + { ID id-CellToReport CRITICALITY ignore TYPE CellToReport-List PRESENCE mandatory}| + { ID id-ReportingPeriodicity CRITICALITY ignore TYPE ReportingPeriodicity PRESENCE optional}| + { ID id-PartialSuccessIndicator CRITICALITY ignore TYPE PartialSuccessIndicator PRESENCE optional}| + { ID id-ReportingPeriodicityRSRPMR CRITICALITY ignore TYPE ReportingPeriodicityRSRPMR PRESENCE optional}| + { ID id-ReportingPeriodicityCSIR CRITICALITY ignore TYPE ReportingPeriodicityCSIR PRESENCE optional}, + ... +} + + +CellToReport-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellToReport-ItemIEs} } + +CellToReport-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellToReport-Item CRITICALITY ignore TYPE CellToReport-Item PRESENCE mandatory} +} + +CellToReport-Item ::= SEQUENCE { + cell-ID ECGI, + iE-Extensions ProtocolExtensionContainer { {CellToReport-Item-ExtIEs} } OPTIONAL, + ... +} + +CellToReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +ReportingPeriodicity ::= ENUMERATED { + one-thousand-ms, + two-thousand-ms, + five-thousand-ms, + ten-thousand-ms, +... +} + +PartialSuccessIndicator ::= ENUMERATED { + partial-success-allowed, +... +} + +-- ************************************************************** +-- +-- Resource Status Response +-- +-- ************************************************************** + +ResourceStatusResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusResponse-IEs}}, + ... +} + +ResourceStatusResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeasurementInitiationResult-List CRITICALITY ignore TYPE MeasurementInitiationResult-List PRESENCE optional}, + ... +} + + +MeasurementInitiationResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { { MeasurementInitiationResult-ItemIEs} } + +MeasurementInitiationResult-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-MeasurementInitiationResult-Item CRITICALITY ignore TYPE MeasurementInitiationResult-Item PRESENCE mandatory} +} + +MeasurementInitiationResult-Item ::= SEQUENCE { + cell-ID ECGI, + measurementFailureCause-List MeasurementFailureCause-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { MeasurementInitiationResult-Item-ExtIEs} } OPTIONAL, + ... +} + +MeasurementInitiationResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +MeasurementFailureCause-List ::= SEQUENCE (SIZE (1..maxFailedMeasObjects)) OF ProtocolIE-Single-Container { { MeasurementFailureCause-ItemIEs} } + +MeasurementFailureCause-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-MeasurementFailureCause-Item CRITICALITY ignore TYPE MeasurementFailureCause-Item PRESENCE mandatory} +} + +MeasurementFailureCause-Item ::= SEQUENCE { + measurementFailedReportCharacteristics ReportCharacteristics, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { MeasurementFailureCause-Item-ExtIEs} } OPTIONAL, + ... +} + +MeasurementFailureCause-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Resource Status Failure +-- +-- ************************************************************** + +ResourceStatusFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusFailure-IEs}}, + ... +} + +ResourceStatusFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-CompleteFailureCauseInformation-List CRITICALITY ignore TYPE CompleteFailureCauseInformation-List PRESENCE optional}, + ... +} + +CompleteFailureCauseInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CompleteFailureCauseInformation-ItemIEs} } + +CompleteFailureCauseInformation-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CompleteFailureCauseInformation-Item CRITICALITY ignore TYPE CompleteFailureCauseInformation-Item PRESENCE mandatory} +} + +CompleteFailureCauseInformation-Item ::= SEQUENCE { + cell-ID ECGI, + measurementFailureCause-List MeasurementFailureCause-List, + iE-Extensions ProtocolExtensionContainer { { CompleteFailureCauseInformation-Item-ExtIEs} } OPTIONAL, + ... +} + +CompleteFailureCauseInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Resource Status Update +-- +-- ************************************************************** + +ResourceStatusUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusUpdate-IEs}}, + ... +} + +ResourceStatusUpdate-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-CellMeasurementResult CRITICALITY ignore TYPE CellMeasurementResult-List PRESENCE mandatory}, + ... +} + +CellMeasurementResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellMeasurementResult-ItemIEs} } + +CellMeasurementResult-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellMeasurementResult-Item CRITICALITY ignore TYPE CellMeasurementResult-Item PRESENCE mandatory} +} + +CellMeasurementResult-Item ::= SEQUENCE { + cell-ID ECGI, + hWLoadIndicator HWLoadIndicator OPTIONAL, + s1TNLLoadIndicator S1TNLLoadIndicator OPTIONAL, + radioResourceStatus RadioResourceStatus OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CellMeasurementResult-Item-ExtIEs} } OPTIONAL, + ... +} + +CellMeasurementResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-CompositeAvailableCapacityGroup CRITICALITY ignore EXTENSION CompositeAvailableCapacityGroup PRESENCE optional}| + { ID id-ABS-Status CRITICALITY ignore EXTENSION ABS-Status PRESENCE optional}| + { ID id-RSRPMRList CRITICALITY ignore EXTENSION RSRPMRList PRESENCE optional}| + { ID id-CSIReportList CRITICALITY ignore EXTENSION CSIReportList PRESENCE optional}| + { ID id-CellReportingIndicator CRITICALITY ignore EXTENSION CellReportingIndicator PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- PRIVATE MESSAGE +-- +-- ************************************************************** + +PrivateMessage ::= SEQUENCE { + privateIEs PrivateIE-Container {{PrivateMessage-IEs}}, + ... +} + +PrivateMessage-IEs X2AP-PRIVATE-IES ::= { + ... +} + +-- ************************************************************** +-- +-- MOBILITY CHANGE REQUEST +-- +-- ************************************************************** + +MobilityChangeRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{MobilityChangeRequest-IEs}}, + ... +} + +MobilityChangeRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-ENB1-Mobility-Parameters CRITICALITY ignore TYPE MobilityParametersInformation PRESENCE optional}| + { ID id-ENB2-Proposed-Mobility-Parameters CRITICALITY reject TYPE MobilityParametersInformation PRESENCE mandatory}| + { ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- MOBILITY CHANGE ACKNOWLEDGE +-- +-- ************************************************************** + +MobilityChangeAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{MobilityChangeAcknowledge-IEs}}, + ... +} + +MobilityChangeAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- MOBILITY CHANGE FAILURE +-- +-- ************************************************************** + +MobilityChangeFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{MobilityChangeFailure-IEs}}, + ... +} + +MobilityChangeFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-ENB2-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-ENB2-Mobility-Parameters-Modification-Range CRITICALITY ignore TYPE MobilityParametersModificationRange PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Radio Link Failure Indication +-- +-- ************************************************************** + +RLFIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RLFIndication-IEs}}, + ... +} + +RLFIndication-IEs X2AP-PROTOCOL-IES ::= { + { ID id-FailureCellPCI CRITICALITY ignore TYPE PCI PRESENCE mandatory}| + { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-FailureCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE mandatory}| + { ID id-ShortMAC-I CRITICALITY ignore TYPE ShortMAC-I PRESENCE optional}| + { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}| + { ID id-RRCConnSetupIndicator CRITICALITY reject TYPE RRCConnSetupIndicator PRESENCE optional}| + { ID id-RRCConnReestabIndicator CRITICALITY ignore TYPE RRCConnReestabIndicator PRESENCE optional}| + { ID id-UE-RLF-Report-Container-for-extended-bands CRITICALITY ignore TYPE UE-RLF-Report-Container-for-extended-bands PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- Cell Activation Request +-- +-- ************************************************************** + +CellActivationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationRequest-IEs}}, + ... +} + +CellActivationRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ServedCellsToActivate CRITICALITY reject TYPE ServedCellsToActivate PRESENCE mandatory}, + ... +} + +ServedCellsToActivate::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToActivate-Item + +ServedCellsToActivate-Item::= SEQUENCE { + ecgi ECGI, + iE-Extensions ProtocolExtensionContainer { { ServedCellsToActivate-Item-ExtIEs} } OPTIONAL, + ... +} + +ServedCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Cell Activation Response +-- +-- ************************************************************** + +CellActivationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationResponse-IEs}}, + ... +} + +CellActivationResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ActivatedCellList CRITICALITY ignore TYPE ActivatedCellList PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +ActivatedCellList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ActivatedCellList-Item + +ActivatedCellList-Item::= SEQUENCE { + ecgi ECGI, + iE-Extensions ProtocolExtensionContainer { { ActivatedCellList-Item-ExtIEs} } OPTIONAL, + ... +} + +ActivatedCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +--************************************************************** +-- +-- CELL ACTIVATION FAILURE +-- +-- ************************************************************** + +CellActivationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationFailure-IEs}}, + ... +} + +CellActivationFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- X2 RELEASE +-- +-- ************************************************************** + +X2Release ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2Release-IEs}}, + ... +} + +X2Release-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}, +... +} + +-- ************************************************************** +-- +-- X2AP Message Transfer +-- +-- ************************************************************** + +X2APMessageTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2APMessageTransfer-IEs}}, + ... +} + +X2APMessageTransfer-IEs X2AP-PROTOCOL-IES ::= { + { ID id-RNL-Header CRITICALITY reject TYPE RNL-Header PRESENCE mandatory}| + { ID id-x2APMessage CRITICALITY reject TYPE X2AP-Message PRESENCE optional}, + ... +} + +RNL-Header ::= SEQUENCE { + source-GlobalENB-ID GlobalENB-ID, + target-GlobalENB-ID GlobalENB-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { RNL-Header-Item-ExtIEs} } OPTIONAL, + ... +} + +RNL-Header-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +X2AP-Message ::= OCTET STRING + +-- ************************************************************** +-- +-- SENB ADDITION REQUEST +-- +-- ************************************************************** + +SeNBAdditionRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBAdditionRequest-IEs}}, + ... +} + +SeNBAdditionRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-UE-SecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE conditional}| + -- This IE shall be present if the Bearer Option IE is set to the value “SCG bearer” -- + { ID id-SeNBSecurityKey CRITICALITY reject TYPE SeNBSecurityKey PRESENCE conditional}| + -- This IE shall be present if the Bearer Option IE is set to the value “SCG bearer” -- + { ID id-SeNBUEAggregateMaximumBitRate CRITICALITY reject TYPE UEAggregateMaximumBitRate PRESENCE mandatory}| + { ID id-ServingPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| + { ID id-E-RABs-ToBeAdded-List CRITICALITY reject TYPE E-RABs-ToBeAdded-List PRESENCE mandatory}| + { ID id-MeNBtoSeNBContainer CRITICALITY reject TYPE MeNBtoSeNBContainer PRESENCE mandatory}| + { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +E-RABs-ToBeAdded-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { { E-RABs-ToBeAdded-ItemIEs} } + +E-RABs-ToBeAdded-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeAdded-Item CRITICALITY reject TYPE E-RABs-ToBeAdded-Item PRESENCE mandatory}, + ... +} + +E-RABs-ToBeAdded-Item ::= CHOICE { + sCG-Bearer E-RABs-ToBeAdded-Item-SCG-Bearer, + split-Bearer E-RABs-ToBeAdded-Item-Split-Bearer, + ... +} + +E-RABs-ToBeAdded-Item-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + dL-Forwarding DL-Forwarding OPTIONAL, + s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-Item-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-Item-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}, + ... +} + +E-RABs-ToBeAdded-Item-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + meNB-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-Item-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-Item-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB ADDITION REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +SeNBAdditionRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBAdditionRequestAcknowledge-IEs}}, + ... +} + +SeNBAdditionRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-Admitted-ToBeAdded-List CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-List PRESENCE mandatory}| + { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| + { ID id-SeNBtoMeNBContainer CRITICALITY reject TYPE SeNBtoMeNBContainer PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}, + ... +} + +E-RABs-Admitted-ToBeAdded-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-ItemIEs} } + +E-RABs-Admitted-ToBeAdded-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeAdded-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-Item PRESENCE mandatory} +} + +E-RABs-Admitted-ToBeAdded-Item ::= CHOICE { + sCG-Bearer E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer, + split-Bearer E-RABs-Admitted-ToBeAdded-Item-Split-Bearer, + ... +} + +E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-Item-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-Item-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeAdded-Item-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + seNB-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-Item-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-Item-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB ADDITION REQUEST REJECT +-- +-- ************************************************************** + +SeNBAdditionRequestReject ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBAdditionRequestReject-IEs}}, + ... +} + +SeNBAdditionRequestReject-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SENB RECONFIGURATION COMPLETE +-- +-- ************************************************************** + +SeNBReconfigurationComplete ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBReconfigurationComplete-IEs}}, + ... +} + +SeNBReconfigurationComplete-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-ResponseInformationSeNBReconfComp CRITICALITY ignore TYPE ResponseInformationSeNBReconfComp PRESENCE mandatory}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +ResponseInformationSeNBReconfComp ::= CHOICE { + success ResponseInformationSeNBReconfComp-SuccessItem, + reject-by-MeNB ResponseInformationSeNBReconfComp-RejectByMeNBItem, + ... +} + +ResponseInformationSeNBReconfComp-SuccessItem ::= SEQUENCE { + meNBtoSeNBContainer MeNBtoSeNBContainer OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ResponseInformationSeNBReconfComp-SuccessItemExtIEs} } OPTIONAL, + ... +} + +ResponseInformationSeNBReconfComp-SuccessItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ResponseInformationSeNBReconfComp-RejectByMeNBItem ::= SEQUENCE { + cause Cause, + meNBtoSeNBContainer MeNBtoSeNBContainer OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ResponseInformationSeNBReconfComp-RejectByMeNBItemExtIEs} } OPTIONAL, + ... +} + +ResponseInformationSeNBReconfComp-RejectByMeNBItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION REQUEST +-- +-- ************************************************************** + +SeNBModificationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SeNBModificationRequest-IEs}}, + ... +} + +SeNBModificationRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-SCGChangeIndication CRITICALITY ignore TYPE SCGChangeIndication PRESENCE optional}| + { ID id-ServingPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| + { ID id-UE-ContextInformationSeNBModReq CRITICALITY reject TYPE UE-ContextInformationSeNBModReq PRESENCE optional}| + { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +UE-ContextInformationSeNBModReq ::= SEQUENCE { + uE-SecurityCapabilities UESecurityCapabilities OPTIONAL, + seNB-SecurityKey SeNBSecurityKey OPTIONAL, + seNBUEAggregateMaximumBitRate UEAggregateMaximumBitRate OPTIONAL, + e-RABs-ToBeAdded E-RABs-ToBeAdded-List-ModReq OPTIONAL, + e-RABs-ToBeModified E-RABs-ToBeModified-List-ModReq OPTIONAL, + e-RABs-ToBeReleased E-RABs-ToBeReleased-List-ModReq OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { UE-ContextInformationSeNBModReqExtIEs} } OPTIONAL, + ... +} + +UE-ContextInformationSeNBModReqExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeAdded-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-ModReqItemIEs} } + +E-RABs-ToBeAdded-ModReqItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeAdded-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeAdded-ModReqItem PRESENCE mandatory}, + ... +} + +E-RABs-ToBeAdded-ModReqItem ::= CHOICE { + sCG-Bearer E-RABs-ToBeAdded-ModReqItem-SCG-Bearer, + split-Bearer E-RABs-ToBeAdded-ModReqItem-Split-Bearer, + ... +} + +E-RABs-ToBeAdded-ModReqItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + dL-Forwarding DL-Forwarding OPTIONAL, + s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}, + ... +} + +E-RABs-ToBeAdded-ModReqItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + meNB-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-ModReqItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeModified-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeModified-ModReqItemIEs} } + +E-RABs-ToBeModified-ModReqItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeModified-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeModified-ModReqItem PRESENCE mandatory}, + ... +} + + +E-RABs-ToBeModified-ModReqItem ::= CHOICE { + sCG-Bearer E-RABs-ToBeModified-ModReqItem-SCG-Bearer, + split-Bearer E-RABs-ToBeModified-ModReqItem-Split-Bearer, + ... +} + +E-RABs-ToBeModified-ModReqItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, + s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeModified-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeModified-ModReqItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, + meNB-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-ModReqItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeModified-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-ModReqItemIEs} } + +E-RABs-ToBeReleased-ModReqItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqItem PRESENCE mandatory}, + ... +} + +E-RABs-ToBeReleased-ModReqItem ::= CHOICE { + sCG-Bearer E-RABs-ToBeReleased-ModReqItem-SCG-Bearer, + split-Bearer E-RABs-ToBeReleased-ModReqItem-Split-Bearer, + ... +} + +E-RABs-ToBeReleased-ModReqItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-ModReqItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +SeNBModificationRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBModificationRequestAcknowledge-IEs}}, + ... +} + +SeNBModificationRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-Admitted-ToBeAdded-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-ModAckList PRESENCE optional}| + { ID id-E-RABs-Admitted-ToBeModified-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-ModAckList PRESENCE optional}| + { ID id-E-RABs-Admitted-ToBeReleased-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeReleased-ModAckList PRESENCE optional}| + { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| + { ID id-SeNBtoMeNBContainer CRITICALITY ignore TYPE SeNBtoMeNBContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +E-RABs-Admitted-ToBeAdded-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-ModAckItemIEs} } + +E-RABs-Admitted-ToBeAdded-ModAckItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeAdded-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-ModAckItem PRESENCE mandatory} +} + +E-RABs-Admitted-ToBeAdded-ModAckItem ::= CHOICE { + sCG-Bearer E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer, + split-Bearer E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer, + ... +} + +E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + seNB-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-ModAckItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} +E-RABs-Admitted-ToBeModified-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeModified-ModAckItemIEs} } + +E-RABs-Admitted-ToBeModified-ModAckItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeModified-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-ModAckItem PRESENCE mandatory} +} + +E-RABs-Admitted-ToBeModified-ModAckItem ::= CHOICE { + sCG-Bearer E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer, + split-Bearer E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer, + ... +} + +E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeModified-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + seNB-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-ModAckItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeModified-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeReleased-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeReleased-ModAckItemIEs} } + +E-RABs-Admitted-ToBeReleased-ModAckItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeReleased-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToReleased-ModAckItem PRESENCE mandatory} +} + +E-RABs-Admitted-ToReleased-ModAckItem ::= CHOICE { + sCG-Bearer E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer, + split-Bearer E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer, + ... +} + +E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-ModAckItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeReleased-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION REQUEST REJECT +-- +-- ************************************************************** + +SeNBModificationRequestReject ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBModificationRequestReject-IEs}}, + ... +} + +SeNBModificationRequestReject-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION REQUIRED +-- +-- ************************************************************** + +SeNBModificationRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBModificationRequired-IEs}}, + ... +} + +SeNBModificationRequired-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-SCGChangeIndication CRITICALITY ignore TYPE SCGChangeIndication PRESENCE optional}| + { ID id-E-RABs-ToBeReleased-ModReqd CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqd PRESENCE optional}| + { ID id-SeNBtoMeNBContainer CRITICALITY ignore TYPE SeNBtoMeNBContainer PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + + +E-RABs-ToBeReleased-ModReqd ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-ModReqdItemIEs} } + +E-RABs-ToBeReleased-ModReqdItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-ModReqdItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqdItem PRESENCE mandatory }, + ... +} + +E-RABs-ToBeReleased-ModReqdItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqdItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-ModReqdItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION CONFIRM +-- +-- ************************************************************** + +SeNBModificationConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBModificationConfirm-IEs}}, + ... +} + +SeNBModificationConfirm-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SENB MODIFICATION REFUSE +-- +-- ************************************************************** + +SeNBModificationRefuse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBModificationRefuse-IEs}}, + ... +} + +SeNBModificationRefuse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SENB RELEASE REQUEST +-- +-- ************************************************************** + +SeNBReleaseRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBReleaseRequest-IEs}}, + ... +} + +SeNBReleaseRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE optional}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional}| + { ID id-E-RABs-ToBeReleased-List-RelReq CRITICALITY ignore TYPE E-RABs-ToBeReleased-List-RelReq PRESENCE optional}| + { ID id-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-MakeBeforeBreakIndicator CRITICALITY ignore TYPE MakeBeforeBreakIndicator PRESENCE optional}, + ... +} +E-RABs-ToBeReleased-List-RelReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-RelReqItemIEs} } + +E-RABs-ToBeReleased-RelReqItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-RelReqItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-RelReqItem PRESENCE mandatory}, + ... +} + +E-RABs-ToBeReleased-RelReqItem ::= CHOICE { + sCG-Bearer E-RABs-ToBeReleased-RelReqItem-SCG-Bearer, + split-Bearer E-RABs-ToBeReleased-RelReqItem-Split-Bearer, + ... +} + +E-RABs-ToBeReleased-RelReqItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelReqItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-RelReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-RelReqItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelReqItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-RelReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB RELEASE REQUIRED +-- +-- ************************************************************** + +SeNBReleaseRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBReleaseRequired-IEs}}, + ... +} + +SeNBReleaseRequired-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SENB RELEASE CONFIRM +-- +-- ************************************************************** + +SeNBReleaseConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBReleaseConfirm-IEs}}, + ... +} + +SeNBReleaseConfirm-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-ToBeReleased-List-RelConf CRITICALITY ignore TYPE E-RABs-ToBeReleased-List-RelConf PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} +E-RABs-ToBeReleased-List-RelConf ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-RelConfItemIEs} } + +E-RABs-ToBeReleased-RelConfItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-RelConfItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-RelConfItem PRESENCE mandatory}, + ... +} + +E-RABs-ToBeReleased-RelConfItem ::= CHOICE { + sCG-Bearer E-RABs-ToBeReleased-RelConfItem-SCG-Bearer, + split-Bearer E-RABs-ToBeReleased-RelConfItem-Split-Bearer, + ... +} + +E-RABs-ToBeReleased-RelConfItem-SCG-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelConfItem-SCG-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-RelConfItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-RelConfItem-Split-Bearer ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelConfItem-Split-BearerExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-RelConfItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SENB COUNTER CHECK REQUEST +-- +-- ************************************************************** + +SeNBCounterCheckRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SeNBCounterCheckRequest-IEs}}, + ... +} + +SeNBCounterCheckRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-SubjectToCounterCheck-List CRITICALITY ignore TYPE E-RABs-SubjectToCounterCheck-List PRESENCE mandatory}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} +E-RABs-SubjectToCounterCheck-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-SubjectToCounterCheckItemIEs} } + +E-RABs-SubjectToCounterCheckItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-SubjectToCounterCheckItem CRITICALITY ignore TYPE E-RABs-SubjectToCounterCheckItem PRESENCE mandatory}, + ... +} + +E-RABs-SubjectToCounterCheckItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-Count INTEGER (0..4294967295), + dL-Count INTEGER (0..4294967295), + iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToCounterCheckItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-SubjectToCounterCheckItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- X2 REMOVAL REQUEST +-- +-- ************************************************************** + +X2RemovalRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2RemovalRequest-IEs}}, + ... +} + +X2RemovalRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| + { ID id-X2RemovalThreshold CRITICALITY reject TYPE X2BenefitValue PRESENCE optional}, +... +} + + + +-- ************************************************************** +-- +-- X2 REMOVAL RESPONSE +-- +-- ************************************************************** + +X2RemovalResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2RemovalResponse-IEs}}, + ... +} + +X2RemovalResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + + + +-- ************************************************************** +-- +-- X2 REMOVAL FAILURE +-- +-- ************************************************************** + +X2RemovalFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2RemovalFailure-IEs}}, + ... +} + +X2RemovalFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- RETRIEVE UE CONTEXT REQUEST +-- +-- ************************************************************** + +RetrieveUEContextRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ RetrieveUEContextRequest-IEs}}, + ... +} + +RetrieveUEContextRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-resumeID CRITICALITY reject TYPE ResumeID PRESENCE mandatory}| + { ID id-ShortMAC-I CRITICALITY reject TYPE ShortMAC-I PRESENCE mandatory}| + { ID id-NewEUTRANCellIdentifier CRITICALITY reject TYPE EUTRANCellIdentifier PRESENCE mandatory}| + {ID id-FailureCellCRNTI CRITICALITY reject TYPE CRNTI PRESENCE optional}| + {ID id-FailureCellPCI CRITICALITY reject TYPE PCI PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- RETRIEVE UE CONTEXT RESPONSE +-- +-- ************************************************************** + +RetrieveUEContextResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ RetrieveUEContextResponse-IEs}}, + ... +} + +RetrieveUEContextResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory}| + { ID id-UE-ContextInformationRetrieve CRITICALITY reject TYPE UE-ContextInformationRetrieve PRESENCE mandatory}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| + { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}, + ... +} + +UE-ContextInformationRetrieve ::= SEQUENCE { + mME-UE-S1AP-ID UE-S1AP-ID, + uESecurityCapabilities UESecurityCapabilities, + aS-SecurityInformation AS-SecurityInformation, + uEaggregateMaximumBitRate UEAggregateMaximumBitRate, + subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, + e-RABs-ToBeSetup-ListRetrieve E-RABs-ToBeSetup-ListRetrieve, + rRC-Context RRC-Context, + handoverRestrictionList HandoverRestrictionList OPTIONAL, + locationReportingInformation LocationReportingInformation OPTIONAL, + managBasedMDTallowed ManagementBasedMDTallowed OPTIONAL, + managBasedMDTPLMNList MDTPLMNList OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {UE-ContextInformationRetrieve-ExtIEs} } OPTIONAL, + ... +} + +UE-ContextInformationRetrieve-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-UESidelinkAggregateMaximumBitRate CRITICALITY ignore EXTENSION UESidelinkAggregateMaximumBitRate PRESENCE optional}, + ... +} + +E-RABs-ToBeSetup-ListRetrieve ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetupRetrieve-ItemIEs} } + +E-RABs-ToBeSetupRetrieve-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeSetupRetrieve-Item CRITICALITY ignore TYPE E-RABs-ToBeSetupRetrieve-Item PRESENCE mandatory}, + ... +} + +E-RABs-ToBeSetupRetrieve-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + bearerType BearerType OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetupRetrieve-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeSetupRetrieve-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-uL-GTPtunnelEndpoint CRITICALITY reject EXTENSION GTPtunnelEndpoint PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- RETRIEVE UE CONTEXT FAILURE +-- +-- ************************************************************** + +RetrieveUEContextFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ RetrieveUEContextFailure-IEs}}, + ... +} + +RetrieveUEContextFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SGNB ADDITION REQUEST +-- +-- ************************************************************** + +SgNBAdditionRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBAdditionRequest-IEs}}, + ... +} + +SgNBAdditionRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-NRUESecurityCapabilities CRITICALITY reject TYPE NRUESecurityCapabilities PRESENCE mandatory}| + { ID id-SgNBSecurityKey CRITICALITY reject TYPE SgNBSecurityKey PRESENCE mandatory}| + { ID id-SgNBUEAggregateMaximumBitRate CRITICALITY reject TYPE UEAggregateMaximumBitRate PRESENCE mandatory}| + { ID id-SelectedPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-E-RABs-ToBeAdded-SgNBAddReqList CRITICALITY reject TYPE E-RABs-ToBeAdded-SgNBAddReqList PRESENCE mandatory}| + { ID id-MeNBtoSgNBContainer CRITICALITY reject TYPE MeNBtoSgNBContainer PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-RequestedSplitSRBs CRITICALITY reject TYPE SplitSRBs PRESENCE optional}| + { ID id-MeNBResourceCoordinationInformation CRITICALITY ignore TYPE MeNBResourceCoordinationInformation PRESENCE optional}| + { ID id-SGNB-Addition-Trigger-Ind CRITICALITY reject TYPE SGNB-Addition-Trigger-Ind PRESENCE optional}| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| + { ID id-MeNBCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}, + ... +} + +E-RABs-ToBeAdded-SgNBAddReqList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-SgNBAddReq-ItemIEs} } + +E-RABs-ToBeAdded-SgNBAddReq-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeAdded-SgNBAddReq-Item CRITICALITY reject TYPE E-RABs-ToBeAdded-SgNBAddReq-Item PRESENCE mandatory}, + ... +} + +E-RABs-ToBeAdded-SgNBAddReq-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + drb-ID DRB-ID, + en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, + resource-configuration CHOICE { + sgNBPDCPpresent E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent, + sgNBPDCPnotpresent E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent, + ... + }, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReq-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-SgNBAddReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent ::= SEQUENCE { + full-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + max-MCG-admit-E-RAB-Level-QoS-Parameters GBR-QosInformation OPTIONAL, +-- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” and GBR QoS Information IE is present in Full E-RAB Level QoS Parameters IE -- + dL-Forwarding DL-Forwarding OPTIONAL, + meNB-DL-GTP-TEIDatMCG GTPtunnelEndpoint OPTIONAL, +-- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” -- + s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { + requested-SCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint, + secondary-meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, + rlc-Mode RLCMode, + uL-Configuration ULConfiguration OPTIONAL, +-- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” -- + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SGNB ADDITION REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +SgNBAdditionRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBAdditionRequestAcknowledge-IEs}}, + ... +} + +SgNBAdditionRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList PRESENCE mandatory}| + { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| + { ID id-SgNBtoMeNBContainer CRITICALITY reject TYPE SgNBtoMeNBContainer PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-AdmittedSplitSRBs CRITICALITY reject TYPE SplitSRBs PRESENCE optional}| + { ID id-SgNBResourceCoordinationInformation CRITICALITY ignore TYPE SgNBResourceCoordinationInformation PRESENCE optional}| + { ID id-RRCConfigIndication CRITICALITY reject TYPE RRC-Config-Ind PRESENCE optional}, + ... +} + +E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-ItemIEs} } + +E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item PRESENCE mandatory} +} + +E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, + resource-configuration CHOICE { + sgNBPDCPpresent E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent, + sgNBPDCPnotpresent E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent, + ... + }, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReqAck-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-SgNBAddReqAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent ::= SEQUENCE { + s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, + sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, +-- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” -- + rlc-Mode RLCMode OPTIONAL, +-- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” -- + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + mCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, +-- This IE shall be present if MCG resource and SCG resource IEs in the the EN-DC Resource Configuration IE are set to “present” and the GBR QoS Information IE is present in the Requested MCG E-RAB Level QoS Parameters IE -- + uL-Configuration ULConfiguration OPTIONAL, +-- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” -- + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent ::= SEQUENCE { + sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint, + secondary-sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- SGNB ADDITION REQUEST REJECT +-- +-- ************************************************************** + +SgNBAdditionRequestReject ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBAdditionRequestReject-IEs}}, + ... +} + +SgNBAdditionRequestReject-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE optional}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- SGNB RECONFIGURATION COMPLETE +-- +-- ************************************************************** + +SgNBReconfigurationComplete ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBReconfigurationComplete-IEs}}, + ... +} + +SgNBReconfigurationComplete-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-ResponseInformationSgNBReconfComp CRITICALITY ignore TYPE ResponseInformationSgNBReconfComp PRESENCE mandatory}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +ResponseInformationSgNBReconfComp ::= CHOICE { + success-SgNBReconfComp ResponseInformationSgNBReconfComp-SuccessItem, + reject-by-MeNB-SgNBReconfComp ResponseInformationSgNBReconfComp-RejectByMeNBItem, + ... +} + +ResponseInformationSgNBReconfComp-SuccessItem ::= SEQUENCE { + meNBtoSgNBContainer MeNBtoSgNBContainer OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ResponseInformationSgNBReconfComp-SuccessItemExtIEs} } OPTIONAL, + ... +} + +ResponseInformationSgNBReconfComp-SuccessItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ResponseInformationSgNBReconfComp-RejectByMeNBItem ::= SEQUENCE { + cause Cause, + iE-Extensions ProtocolExtensionContainer { {ResponseInformationSgNBReconfComp-RejectByMeNBItemExtIEs} } OPTIONAL, + ... +} + +ResponseInformationSgNBReconfComp-RejectByMeNBItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- SGNB MODIFICATION REQUEST +-- +-- ************************************************************** + +SgNBModificationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SgNBModificationRequest-IEs}}, + ... +} + +SgNBModificationRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-SelectedPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-SCGConfigurationQuery CRITICALITY ignore TYPE SCGConfigurationQuery PRESENCE optional}| + { ID id-UE-ContextInformation-SgNBModReq CRITICALITY reject TYPE UE-ContextInformation-SgNBModReq PRESENCE optional}| + { ID id-MeNBtoSgNBContainer CRITICALITY ignore TYPE MeNBtoSgNBContainer PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-MeNBResourceCoordinationInformation CRITICALITY ignore TYPE MeNBResourceCoordinationInformation PRESENCE optional}| + { ID id-RequestedSplitSRBs CRITICALITY ignore TYPE SplitSRBs PRESENCE optional}| + { ID id-RequestedSplitSRBsrelease CRITICALITY ignore TYPE SplitSRBs PRESENCE optional}, + ... +} + +UE-ContextInformation-SgNBModReq ::= SEQUENCE { + nRUE-SecurityCapabilities NRUESecurityCapabilities OPTIONAL, + sgNB-SecurityKey SgNBSecurityKey OPTIONAL, + sgNBUEAggregateMaximumBitRate UEAggregateMaximumBitRate OPTIONAL, + e-RABs-ToBeAdded E-RABs-ToBeAdded-SgNBModReq-List OPTIONAL, + e-RABs-ToBeModified E-RABs-ToBeModified-SgNBModReq-List OPTIONAL, + e-RABs-ToBeReleased E-RABs-ToBeReleased-SgNBModReq-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {UE-ContextInformationSgNBModReqExtIEs} } OPTIONAL, + ... +} + +UE-ContextInformationSgNBModReqExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore EXTENSION SubscriberProfileIDforRFP PRESENCE optional}, + ... +} + +E-RABs-ToBeAdded-SgNBModReq-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-SgNBModReq-ItemIEs} } + +E-RABs-ToBeAdded-SgNBModReq-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeAdded-SgNBModReq-Item CRITICALITY ignore TYPE E-RABs-ToBeAdded-SgNBModReq-Item PRESENCE mandatory}, + ... +} + +E-RABs-ToBeAdded-SgNBModReq-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + drb-ID DRB-ID, + en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, + resource-configuration CHOICE { + sgNBPDCPpresent E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent, + sgNBPDCPnotpresent E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent, + ... + }, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModReq-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-SgNBModReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent ::= SEQUENCE { + full-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + max-MN-admit-E-RAB-Level-QoS-Parameters GBR-QosInformation OPTIONAL, +-- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” and GBR QoS Information IE is present in Full E-RAB Level QoS Parameters IE -- + dL-Forwarding DL-Forwarding OPTIONAL, + meNB-DL-GTP-TEIDatMCG GTPtunnelEndpoint OPTIONAL, +-- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” -- + s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { + requested-SCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint, + secondary-meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, + rlc-Mode RLCMode, + uL-Configuration ULConfiguration OPTIONAL, +-- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” -- + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +E-RABs-ToBeModified-SgNBModReq-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeModified-SgNBModReq-ItemIEs} } + +E-RABs-ToBeModified-SgNBModReq-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeModified-SgNBModReq-Item CRITICALITY ignore TYPE E-RABs-ToBeModified-SgNBModReq-Item PRESENCE mandatory}, + ... +} + + +E-RABs-ToBeModified-SgNBModReq-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, + resource-configuration CHOICE { + sgNBPDCPpresent E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent, + sgNBPDCPnotpresent E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent, + ... + }, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReq-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeModified-SgNBModReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent ::= SEQUENCE { + full-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, + max-MN-admit-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, + meNB-DL-GTP-TEIDatMCG GTPtunnelEndpoint OPTIONAL, + s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { + requested-SCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, + meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, + uL-Configuration ULConfiguration OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-SgNBModReq-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBModReq-ItemIEs} } + +E-RABs-ToBeReleased-SgNBModReq-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-SgNBModReq-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBModReq-Item PRESENCE mandatory}, + ... +} + +E-RABs-ToBeReleased-SgNBModReq-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, + resource-configuration CHOICE { + sgNBPDCPpresent E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent, + sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent, + ... + }, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReq-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBModReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent ::= SEQUENCE { + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- SGNB MODIFICATION REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +SgNBModificationRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBModificationRequestAcknowledge-IEs}}, + ... +} + +SgNBModificationRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-Admitted-ToBeAdded-SgNBModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBModAckList PRESENCE optional}| + { ID id-E-RABs-Admitted-ToBeModified-SgNBModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-SgNBModAckList PRESENCE optional}| + { ID id-E-RABs-Admitted-ToBeReleased-SgNBModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeReleased-SgNBModAckList PRESENCE optional}| + { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| + { ID id-SgNBtoMeNBContainer CRITICALITY ignore TYPE SgNBtoMeNBContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-SgNBResourceCoordinationInformation CRITICALITY ignore TYPE SgNBResourceCoordinationInformation PRESENCE optional}| + { ID id-AdmittedSplitSRBs CRITICALITY ignore TYPE SplitSRBs PRESENCE optional}| + { ID id-AdmittedSplitSRBsrelease CRITICALITY ignore TYPE SplitSRBs PRESENCE optional}, + ... +} + +E-RABs-Admitted-ToBeAdded-SgNBModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemIEs} } + +E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeAdded-SgNBModAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBModAck-Item PRESENCE mandatory} +} + +E-RABs-Admitted-ToBeAdded-SgNBModAck-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, + resource-configuration CHOICE { + sgNBPDCPpresent E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent, + sgNBPDCPnotpresent E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent, + ... + }, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent ::= SEQUENCE { + s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, + sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, +-- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE are set to “present” -- + rlc-Mode RLCMode OPTIONAL, +-- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE are set to “present” -- + dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + mCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, +-- This IE shall be present if MCG resource and SCG resource IEs in the the EN-DC Resource Configuration IE are set to “present” and the GBR QoS Information IE is present in the Requested MCG E-RAB Level QoS Parameters IE -- + uL-Configuration ULConfiguration OPTIONAL, +-- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” -- + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent ::= SEQUENCE { + sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint, + secondary-sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeModified-SgNBModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeModified-SgNBModAck-ItemIEs} } + +E-RABs-Admitted-ToBeModified-SgNBModAck-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeModified-SgNBModAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-SgNBModAck-Item PRESENCE mandatory} +} + +E-RABs-Admitted-ToBeModified-SgNBModAck-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, + resource-configuration CHOICE { + sgNBPDCPpresent E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent, + sgNBPDCPnotpresent E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent, + ... + }, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModAck-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeAdded-SgNBModAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent ::= SEQUENCE { + s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, + mCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, + uL-Configuration ULConfiguration OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent ::= SEQUENCE { + sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeReleased-SgNBModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeReleased-SgNBModAck-ItemIEs} } + +E-RABs-Admitted-ToBeReleased-SgNBModAck-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-ToBeReleased-SgNBModAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToReleased-SgNBModAck-Item PRESENCE mandatory} +} + +E-RABs-Admitted-ToReleased-SgNBModAck-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, + resource-configuration CHOICE { + sgNBPDCPpresent E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent, + sgNBPDCPnotpresent E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent, + ... + }, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModAck-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBModAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent ::= SEQUENCE { + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent ::= SEQUENCE { + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- SGNB MODIFICATION REQUEST REJECT +-- +-- ************************************************************** + +SgNBModificationRequestReject ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBModificationRequestReject-IEs}}, + ... +} + +SgNBModificationRequestReject-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- SGNB MODIFICATION REQUIRED +-- +-- ************************************************************** + +SgNBModificationRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBModificationRequired-IEs}}, + ... +} + +SgNBModificationRequired-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-PDCPChangeIndication CRITICALITY ignore TYPE PDCPChangeIndication PRESENCE optional}| + { ID id-E-RABs-ToBeReleased-SgNBModReqdList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBModReqdList PRESENCE optional}| + { ID id-SgNBtoMeNBContainer CRITICALITY ignore TYPE SgNBtoMeNBContainer PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-E-RABs-ToBeModified-SgNBModReqdList CRITICALITY ignore TYPE E-RABs-ToBeModified-SgNBModReqdList PRESENCE optional}| + { ID id-SgNBResourceCoordinationInformation CRITICALITY ignore TYPE SgNBResourceCoordinationInformation PRESENCE optional}, + ... +} + + +E-RABs-ToBeReleased-SgNBModReqdList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBModReqd-ItemIEs} } + +E-RABs-ToBeReleased-SgNBModReqd-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-SgNBModReqd-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBModReqd-Item PRESENCE mandatory }, + ... +} + +E-RABs-ToBeReleased-SgNBModReqd-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReqd-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBModReqd-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeModified-SgNBModReqdList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeModified-SgNBModReqd-ItemIEs} } + +E-RABs-ToBeModified-SgNBModReqd-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeModified-SgNBModReqd-Item CRITICALITY ignore TYPE E-RABs-ToBeModified-SgNBModReqd-Item PRESENCE mandatory }, + ... +} + +E-RABs-ToBeModified-SgNBModReqd-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, + resource-configuration CHOICE { + sgNBPDCPpresent E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent, + sgNBPDCPnotpresent E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent, + ... + }, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReqd-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeModified-SgNBModReqd-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent ::= SEQUENCE { + requested-MCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, + uL-Configuration ULConfiguration OPTIONAL, + sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, + s1-DL-GTP-TEIDatSgNB GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent ::= SEQUENCE { + sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, + secondary-sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- SGNB MODIFICATION CONFIRM +-- +-- ************************************************************** + +SgNBModificationConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBModificationConfirm-IEs}}, + ... +} + +SgNBModificationConfirm-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-AdmittedToBeModified-SgNBModConfList CRITICALITY ignore TYPE E-RABs-AdmittedToBeModified-SgNBModConfList PRESENCE optional}| + { ID id-MeNBtoSgNBContainer CRITICALITY ignore TYPE MeNBtoSgNBContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-MeNBResourceCoordinationInformation CRITICALITY ignore TYPE MeNBResourceCoordinationInformation PRESENCE optional}, + ... +} + +E-RABs-AdmittedToBeModified-SgNBModConfList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container + { {E-RABs-AdmittedToBeModified-SgNBModConf-ItemIEs} } + +E-RABs-AdmittedToBeModified-SgNBModConf-ItemIEs X2AP-PROTOCOL-IES ::= { +{ ID id-E-RABs-AdmittedToBeModified-SgNBModConf-Item CRITICALITY ignore TYPE E-RABs-AdmittedToBeModified-SgNBModConf-Item PRESENCE mandatory }, + ... +} + +E-RABs-AdmittedToBeModified-SgNBModConf-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, + resource-configuration CHOICE { + sgNBPDCPpresent E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent, + sgNBPDCPnotpresent E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent, + ... + }, + iE-Extensions ProtocolExtensionContainer { {E-RABs-AdmittedToBeModified-SgNBModConf-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-AdmittedToBeModified-SgNBModConf-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent ::= SEQUENCE { + iE-Extensions ProtocolExtensionContainer { {E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent ::= SEQUENCE { + secondary-meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SGNB MODIFICATION REFUSE +-- +-- ************************************************************** + +SgNBModificationRefuse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBModificationRefuse-IEs}}, + ... +} + +SgNBModificationRefuse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-MeNBtoSgNBContainer CRITICALITY ignore TYPE MeNBtoSgNBContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SGNB RELEASE REQUEST +-- +-- ************************************************************** + +SgNBReleaseRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBReleaseRequest-IEs}}, + ... +} + +SgNBReleaseRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE optional}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-E-RABs-ToBeReleased-SgNBRelReqList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelReqList PRESENCE optional}| + { ID id-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| + { ID id-MeNBtoSgNBContainer CRITICALITY reject TYPE MeNBtoSgNBContainer PRESENCE optional}, + ... +} + +E-RABs-ToBeReleased-SgNBRelReqList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBRelReq-ItemIEs} } + +E-RABs-ToBeReleased-SgNBRelReq-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-SgNBRelReq-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelReq-Item PRESENCE mandatory}, + ... +} + +E-RABs-ToBeReleased-SgNBRelReq-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, + resource-configuration CHOICE { + sgNBPDCPpresent E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent, + sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent, + ... + }, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelReq-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBRelReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent ::= SEQUENCE { + uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SGNB RELEASE REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +SgNBReleaseRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBReleaseRequestAcknowledge-IEs}}, + ... +} + +SgNBReleaseRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SGNB RELEASE REQUEST REJECT +-- +-- ************************************************************** + +SgNBReleaseRequestReject ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBReleaseRequestReject-IEs}}, + ... +} + +SgNBReleaseRequestReject-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SGNB RELEASE REQUIRED +-- +-- ************************************************************** + +SgNBReleaseRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBReleaseRequired-IEs}}, + ... +} + +SgNBReleaseRequired-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SGNB RELEASE CONFIRM +-- +-- ************************************************************** + +SgNBReleaseConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBReleaseConfirm-IEs}}, + ... +} + +SgNBReleaseConfirm-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-ToBeReleased-SgNBRelConfList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelConfList PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +E-RABs-ToBeReleased-SgNBRelConfList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBRelConf-ItemIEs} } + +E-RABs-ToBeReleased-SgNBRelConf-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-SgNBRelConf-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelConf-Item PRESENCE mandatory}, + ... +} + +E-RABs-ToBeReleased-SgNBRelConf-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, + resource-configuration CHOICE { + sgNBPDCPpresent E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent, + sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent, + ... + }, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelConf-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBRelConf-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent ::= SEQUENCE { + uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent ::= SEQUENCE { + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- SGNB COUNTER CHECK REQUEST +-- +-- ************************************************************** + +SgNBCounterCheckRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBCounterCheckRequest-IEs}}, + ... +} + +SgNBCounterCheckRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-SubjectToSgNBCounterCheck-List CRITICALITY ignore TYPE E-RABs-SubjectToSgNBCounterCheck-List PRESENCE mandatory}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} +E-RABs-SubjectToSgNBCounterCheck-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-SubjectToSgNBCounterCheck-ItemIEs} } + +E-RABs-SubjectToSgNBCounterCheck-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-SubjectToSgNBCounterCheck-Item CRITICALITY ignore TYPE E-RABs-SubjectToSgNBCounterCheck-Item PRESENCE mandatory}, + ... +} + +E-RABs-SubjectToSgNBCounterCheck-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-Count INTEGER (0..4294967295), + dL-Count INTEGER (0..4294967295), + iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToSgNBCounterCheck-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-SubjectToSgNBCounterCheck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- SGNB CHANGE REQUIRED +-- +-- ************************************************************** + +SgNBChangeRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBChangeRequired-IEs}}, + ... +} + +SgNBChangeRequired-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-Target-SgNB-ID CRITICALITY ignore TYPE GNB-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-SgNBtoMeNBContainer CRITICALITY ignore TYPE SgNBtoMeNBContainer PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SGNB CHANGE CONFIRM +-- +-- ************************************************************** + +SgNBChangeConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBChangeConfirm-IEs}}, + ... +} + +SgNBChangeConfirm-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-E-RABs-ToBeReleased-SgNBChaConfList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBChaConfList PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +E-RABs-ToBeReleased-SgNBChaConfList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBChaConf-ItemIEs} } + +E-RABs-ToBeReleased-SgNBChaConf-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeReleased-SgNBChaConf-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBChaConf-Item PRESENCE mandatory}, + ... +} + +E-RABs-ToBeReleased-SgNBChaConf-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, + resource-configuration CHOICE { + sgNBPDCPpresent E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent, + sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent, + ... + }, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBChaConf-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBChaConf-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent ::= SEQUENCE { + uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent ::= SEQUENCE { + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- RRC Transfer +-- +-- ************************************************************** + +RRCTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RRCTransfer-IEs}}, + ... +} + +RRCTransfer-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-SplitSRB CRITICALITY reject TYPE SplitSRB PRESENCE optional}| + { ID id-UENRMeasurement CRITICALITY reject TYPE UENRMeasurement PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- SGNB CHANGE REFUSE +-- +-- ************************************************************** + +SgNBChangeRefuse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBChangeRefuse-IEs}}, + ... +} + +SgNBChangeRefuse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- EN-DC X2 SETUP REQUEST +-- +-- ************************************************************** + +ENDCX2SetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENDCX2SetupRequest-IEs}}, + ... +} + +ENDCX2SetupRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-InitiatingNodeType-EndcX2Setup CRITICALITY reject TYPE InitiatingNodeType-EndcX2Setup PRESENCE mandatory}, + ... +} + +InitiatingNodeType-EndcX2Setup ::= CHOICE { + init-eNB ProtocolIE-Container {{ENB-ENDCX2SetupReqIEs}}, + init-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2SetupReqIEs}}, + ... +} + +ENB-ENDCX2SetupReqIEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| + { ID id-ServedEUTRAcellsENDCX2ManagementList CRITICALITY reject TYPE ServedEUTRAcellsENDCX2ManagementList PRESENCE mandatory}, + ... +} + +ServedEUTRAcellsENDCX2ManagementList ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { + servedEUTRACellInfo ServedCell-Information, + nrNeighbourInfo NRNeighbour-Information OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ServedEUTRAcellsENDCX2Management-ExtIEs} } OPTIONAL, + ... +} + +ServedEUTRAcellsENDCX2Management-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +En-gNB-ENDCX2SetupReqIEs X2AP-PROTOCOL-IES ::= { + { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}| + { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE mandatory}, + ... +} + +ServedNRcellsENDCX2ManagementList ::= SEQUENCE (SIZE (1.. maxCellinengNB)) OF SEQUENCE { + servedNRCellInfo ServedNRCell-Information, + nRNeighbourInfo NRNeighbour-Information OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { En-gNBServedCells-ExtIEs} } OPTIONAL, + ... +} + +En-gNBServedCells-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedNRCell-Information ::= SEQUENCE { + nrpCI NRPCI, + nrCellID NRCGI, + fiveGS-TAC FiveGS-TAC, + configured-TAC TAC OPTIONAL, + broadcastPLMNs BroadcastPLMNs-Item, + nrModeInfo CHOICE { + fdd FDD-InfoServedNRCell-Information, + tdd TDD-InfoServedNRCell-Information, + ... + }, + measurementTimingConfiguration OCTET STRING, + iE-Extensions ProtocolExtensionContainer { { ServedNRCell-Information-ExtIEs} } OPTIONAL, + ... +} + +ServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +FDD-InfoServedNRCell-Information ::= SEQUENCE { + ul-NRFreqInfo NRFreqInfo, + dl-NRFreqInfo NRFreqInfo, + ul-NR-TxBW NR-TxBW, + dl-NR-TxBW NR-TxBW, + iE-Extensions ProtocolExtensionContainer { { FDD-InfoServedNRCell-Information-ExtIEs } } OPTIONAL, + ... +} + +FDD-InfoServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +FDD-InfoNeighbourServedNRCell-Information ::= SEQUENCE { + ul-NRFreqInfo NRFreqInfo, + dl-NRFreqInfo NRFreqInfo, + iE-Extensions ProtocolExtensionContainer { { FDD-InfoNeighbourServedNRCell-Information-ExtIEs } } OPTIONAL, + ... +} + +FDD-InfoNeighbourServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TDD-InfoServedNRCell-Information ::= SEQUENCE { + nRFreqInfo NRFreqInfo, + nR-TxBW NR-TxBW, + iE-Extensions ProtocolExtensionContainer { { TDD-InfoServedNRCell-Information-ExtIEs } } OPTIONAL, + ... +} + +TDD-InfoServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TDD-InfoNeighbourServedNRCell-Information ::= SEQUENCE { + nRFreqInfo NRFreqInfo, + iE-Extensions ProtocolExtensionContainer { { TDD-InfoNeighbourServedNRCell-Information-ExtIEs } } OPTIONAL, + ... +} + +TDD-InfoNeighbourServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +NRNeighbour-Information ::= SEQUENCE (SIZE (1.. maxofNRNeighbours))OF SEQUENCE { + nrpCI NRPCI, + nrCellID NRCGI, + nrFreqInfo NRFreqInfo, + fiveGS-TAC FiveGS-TAC, + configured-TAC TAC OPTIONAL, + measurementTimingConfiguration OCTET STRING, + nRNeighbourModeInfo CHOICE { + fdd FDD-InfoNeighbourServedNRCell-Information, + tdd TDD-InfoNeighbourServedNRCell-Information, + ... + }, + iE-Extensions ProtocolExtensionContainer { { NRNeighbour-Information-ExtIEs} } OPTIONAL, + ... +} + +NRNeighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellAssistanceInformation ::= CHOICE { + limited-list Limited-list, + full-list ENUMERATED {allServedNRcells, ...}, + ... +} + + +Limited-list ::= SEQUENCE (SIZE (1..maxCellinengNB)) OF SEQUENCE { + nrCellID NRCGI, + iE-Extensions ProtocolExtensionContainer { {Limited-list-ExtIEs} } OPTIONAL, + ... +} + +Limited-list-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- EN-DC X2 SETUP RESPONSE +-- +-- ************************************************************** + +ENDCX2SetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENDCX2SetupResponse-IEs}}, + ... +} + +ENDCX2SetupResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-RespondingNodeType-EndcX2Setup CRITICALITY reject TYPE RespondingNodeType-EndcX2Setup PRESENCE mandatory}, + ... +} + +RespondingNodeType-EndcX2Setup ::= CHOICE { + respond-eNB ProtocolIE-Container {{ENB-ENDCX2SetupReqAckIEs}}, + respond-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2SetupReqAckIEs}}, + ... +} + +ENB-ENDCX2SetupReqAckIEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| + { ID id-ServedEUTRAcellsENDCX2ManagementList CRITICALITY reject TYPE ServedEUTRAcellsENDCX2ManagementList PRESENCE mandatory}, + ... +} + + +En-gNB-ENDCX2SetupReqAckIEs X2AP-PROTOCOL-IES ::= { + { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}| + { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- EN-DC X2 SETUP FAILURE +-- +-- ************************************************************** + +ENDCX2SetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENDCX2SetupFailure-IEs}}, + ... +} + +ENDCX2SetupFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- EN-DC CONFIGURATION UPDATE +-- +-- ************************************************************** + +ENDCConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENDCConfigurationUpdate-IEs}}, + ... +} + +ENDCConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= { + { ID id-InitiatingNodeType-EndcConfigUpdate CRITICALITY reject TYPE InitiatingNodeType-EndcConfigUpdate PRESENCE mandatory}, + ... +} + +InitiatingNodeType-EndcConfigUpdate::= CHOICE { + init-eNB ProtocolIE-Container {{ENB-ENDCConfigUpdateIEs}}, + init-en-gNB ProtocolIE-Container {{En-gNB-ENDCConfigUpdateIEs}}, + ... +} + +ENB-ENDCConfigUpdateIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellAssistanceInformation CRITICALITY reject TYPE CellAssistanceInformation PRESENCE optional }| + { ID id-ServedEUTRAcellsENDCX2ManagementList CRITICALITY reject TYPE ServedEUTRAcellsENDCX2ManagementList PRESENCE optional }| + { ID id-ServedEUTRAcellsToModifyListENDCConfUpd CRITICALITY reject TYPE ServedEUTRAcellsToModifyListENDCConfUpd PRESENCE optional }| + { ID id-ServedEUTRAcellsToDeleteListENDCConfUpd CRITICALITY reject TYPE ServedEUTRAcellsToDeleteListENDCConfUpd PRESENCE optional }, + ... +} + +ServedEUTRAcellsToModifyListENDCConfUpd ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { + old-ECGI ECGI, + servedEUTRACellInfo ServedCell-Information, + nrNeighbourInfo NRNeighbour-Information OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ServedEUTRAcellsToModifyListENDCConfUpd-ExtIEs} } OPTIONAL, + ... +} + +ServedEUTRAcellsToModifyListENDCConfUpd-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedEUTRAcellsToDeleteListENDCConfUpd ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI + + +En-gNB-ENDCConfigUpdateIEs X2AP-PROTOCOL-IES ::= { + { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE optional }| + { ID id-ServedNRcellsToModifyListENDCConfUpd CRITICALITY reject TYPE ServedNRcellsToModifyENDCConfUpdList PRESENCE optional }| + { ID id-ServedNRcellsToDeleteListENDCConfUpd CRITICALITY reject TYPE ServedNRcellsToDeleteENDCConfUpdList PRESENCE optional }, + ... +} + +ServedNRcellsToModifyENDCConfUpdList ::= SEQUENCE (SIZE (1..maxCellinengNB)) OF ServedNRCellsToModify-Item + +ServedNRCellsToModify-Item::= SEQUENCE { + old-nrcgi NRCGI, + servedNRCellInformation ServedNRCell-Information, + nrNeighbourInformation NRNeighbour-Information OPTIONAL, + nrDeactivationIndication DeactivationIndication OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ServedNRCellsToModify-Item-ExtIEs} } OPTIONAL, + ... +} + +ServedNRCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedNRcellsToDeleteENDCConfUpdList ::= SEQUENCE (SIZE (1..maxCellinengNB)) OF NRCGI + +-- ************************************************************** +-- +-- EN-DC CONFIGURATION UPDATE ACKNOWLEDGE +-- +-- ************************************************************** + +ENDCConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENDCConfigurationUpdateAcknowledge-IEs}}, + ... +} + +ENDCConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-RespondingNodeType-EndcConfigUpdate CRITICALITY reject TYPE RespondingNodeType-EndcConfigUpdate PRESENCE mandatory}, + ... +} + + +RespondingNodeType-EndcConfigUpdate::= CHOICE { + respond-eNB ProtocolIE-Container {{ENB-ENDCConfigUpdateAckIEs}}, + respond-en-gNB ProtocolIE-Container {{En-gNB-ENDCConfigUpdateAckIEs}}, + ... +} + + +ENB-ENDCConfigUpdateAckIEs X2AP-PROTOCOL-IES ::= { + ... +} + +En-gNB-ENDCConfigUpdateAckIEs X2AP-PROTOCOL-IES ::= { + { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- EN-DC CONFIGURATION UPDATE FAILURE +-- +-- ************************************************************** + +ENDCConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENDCConfigurationUpdateFailure-IEs}}, + ... +} + +ENDCConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- EN-DC CELL ACTIVATION REQUEST +-- +-- ************************************************************** + +ENDCCellActivationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENDCCellActivationRequest-IEs}}, + ... +} + +ENDCCellActivationRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ServedNRCellsToActivate CRITICALITY reject TYPE ServedNRCellsToActivate PRESENCE mandatory}| + { ID id-ActivationID CRITICALITY reject TYPE ActivationID PRESENCE mandatory}, + ... +} + +ServedNRCellsToActivate::= SEQUENCE (SIZE (1.. maxCellinengNB)) OF ServedNRCellsToActivate-Item + +ServedNRCellsToActivate-Item::= SEQUENCE { + nrCellID NRCGI, + iE-Extensions ProtocolExtensionContainer { { ServedNRCellsToActivate-Item-ExtIEs} } OPTIONAL, + ... +} + +ServedNRCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- EN-DC CELL ACTIVATION RESPONSE +-- +-- ************************************************************** + +ENDCCellActivationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENDCCellActivationResponse-IEs}}, + ... +} + +ENDCCellActivationResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ActivatedNRCellList CRITICALITY ignore TYPE ActivatedNRCellList PRESENCE mandatory}| + { ID id-ActivationID CRITICALITY reject TYPE ActivationID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +ActivatedNRCellList ::= SEQUENCE (SIZE (1.. maxCellinengNB)) OF ActivatedNRCellList-Item + +ActivatedNRCellList-Item::= SEQUENCE { + nrCellID NRCGI, + iE-Extensions ProtocolExtensionContainer { { ActivatedNRCellList-Item-ExtIEs} } OPTIONAL, + ... +} + +ActivatedNRCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +--************************************************************** +-- +-- EN-DC CELL ACTIVATION FAILURE +-- +-- ************************************************************** + +ENDCCellActivationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENDCCellActivationFailure-IEs}}, + ... +} + +ENDCCellActivationFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ActivationID CRITICALITY reject TYPE ActivationID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- SECONDARY RAT DATA USAGE REPORT +-- +-- ************************************************************** + +SecondaryRATDataUsageReport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SecondaryRATDataUsageReport-IEs}}, + ... +} + +SecondaryRATDataUsageReport-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-SecondaryRATUsageReportList CRITICALITY reject TYPE SecondaryRATUsageReportList PRESENCE mandatory}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +SgNBActivityNotification ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SgNBActivityNotification-IEs}}, + ... +} + +SgNBActivityNotification-IEs X2AP-PROTOCOL-IES ::= { + { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| + { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| + { ID id-UEContextLevelUserPlaneActivity CRITICALITY reject TYPE UserPlaneTrafficActivityReport PRESENCE mandatory}| + { ID id-ERABActivityNotifyItemList CRITICALITY reject TYPE ERABActivityNotifyItemList PRESENCE mandatory}| + { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- EN-DC PARTIAL RESET REQUIRED +-- +-- ************************************************************** + +ENDCPartialResetRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENDCPartialResetRequired-IEs}}, + ... +} + +ENDCPartialResetRequired-IEs X2AP-PROTOCOL-IES ::= { + { ID id-UEs-ToBeReset CRITICALITY reject TYPE UEsToBeResetList PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- EN-DC PARTIAL RESET CONFIRM +-- +-- ************************************************************** + +ENDCPartialResetConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENDCPartialResetConfirm-IEs}}, + ... +} + +ENDCPartialResetConfirm-IEs X2AP-PROTOCOL-IES ::= { + { ID id-UEs-Admitted-ToBeReset CRITICALITY reject TYPE UEsToBeResetList PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- E-UTRA - NR CELL RESOURCE COORDINATION REQUEST +-- +-- ************************************************************** + +EUTRANRCellResourceCoordinationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{EUTRANRCellResourceCoordinationRequest-IEs}}, + ... +} + +EUTRANRCellResourceCoordinationRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-InitiatingNodeType-EutranrCellResourceCoordination CRITICALITY reject TYPE InitiatingNodeType-EutranrCellResourceCoordination PRESENCE mandatory}, + ... +} + +InitiatingNodeType-EutranrCellResourceCoordination ::= CHOICE { + initiate-eNB ProtocolIE-Container {{ENB-EUTRA-NRCellResourceCoordinationReqIEs}}, + initiate-en-gNB ProtocolIE-Container {{En-gNB-EUTRA-NRCellResourceCoordinationReqIEs}}, + ... +} + + +ENB-EUTRA-NRCellResourceCoordinationReqIEs X2AP-PROTOCOL-IES ::= { + { ID id-DataTrafficResourceIndication CRITICALITY reject TYPE DataTrafficResourceIndication PRESENCE mandatory}| + { ID id-SpectrumSharingGroupID CRITICALITY reject TYPE SpectrumSharingGroupID PRESENCE mandatory}| + { ID id-ListofEUTRACellsinEUTRACoordinationReq CRITICALITY reject TYPE ListofEUTRACellsinEUTRACoordinationReq PRESENCE mandatory }, + ... +} + + +En-gNB-EUTRA-NRCellResourceCoordinationReqIEs X2AP-PROTOCOL-IES ::= { + { ID id-DataTrafficResourceIndication CRITICALITY reject TYPE DataTrafficResourceIndication PRESENCE mandatory}| + { ID id-ListofEUTRACellsinNRCoordinationReq CRITICALITY reject TYPE ListofEUTRACellsinNRCoordinationReq PRESENCE mandatory }| + { ID id-SpectrumSharingGroupID CRITICALITY reject TYPE SpectrumSharingGroupID PRESENCE mandatory}| + { ID id-ListofNRCellsinNRCoordinationReq CRITICALITY reject TYPE ListofNRCellsinNRCoordinationReq PRESENCE mandatory }, + ... +} + + +ListofEUTRACellsinEUTRACoordinationReq ::= SEQUENCE (SIZE (0..maxCellineNB)) OF ECGI +ListofEUTRACellsinNRCoordinationReq ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI +ListofNRCellsinNRCoordinationReq ::= SEQUENCE (SIZE (0..maxnoNRcellsSpectrumSharingWithE-UTRA)) OF NRCGI + +-- ************************************************************** +-- +-- E-UTRA - NR CELL RESOURCE COORDINATION RESPONSE +-- +-- ************************************************************** + +EUTRANRCellResourceCoordinationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{EUTRANRCellResourceCoordinationResponse-IEs}}, + ... +} + +EUTRANRCellResourceCoordinationResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-RespondingNodeType-EutranrCellResourceCoordination CRITICALITY reject TYPE RespondingNodeType-EutranrCellResourceCoordination PRESENCE mandatory}, + ... +} + +RespondingNodeType-EutranrCellResourceCoordination ::= CHOICE { + respond-eNB ProtocolIE-Container {{ENB-EUTRA-NRCellResourceCoordinationReqAckIEs}}, + respond-en-gNB ProtocolIE-Container {{En-gNB-EUTRA-NRCellResourceCoordinationReqAckIEs}}, + ... +} + + +ENB-EUTRA-NRCellResourceCoordinationReqAckIEs X2AP-PROTOCOL-IES ::= { + { ID id-DataTrafficResourceIndication CRITICALITY reject TYPE DataTrafficResourceIndication PRESENCE mandatory}| + { ID id-SpectrumSharingGroupID CRITICALITY reject TYPE SpectrumSharingGroupID PRESENCE mandatory}| + { ID id-ListofEUTRACellsinEUTRACoordinationResp CRITICALITY reject TYPE ListofEUTRACellsinEUTRACoordinationResp PRESENCE mandatory }, + ... +} + + +En-gNB-EUTRA-NRCellResourceCoordinationReqAckIEs X2AP-PROTOCOL-IES ::= { + { ID id-DataTrafficResourceIndication CRITICALITY reject TYPE DataTrafficResourceIndication PRESENCE mandatory}| + { ID id-SpectrumSharingGroupID CRITICALITY reject TYPE SpectrumSharingGroupID PRESENCE mandatory}| + { ID id-ListofNRCellsinNRCoordinationResp CRITICALITY reject TYPE ListofNRCellsinNRCoordinationResp PRESENCE mandatory }, + + + ... +} + +ListofEUTRACellsinEUTRACoordinationResp ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI +ListofNRCellsinNRCoordinationResp ::= SEQUENCE (SIZE (1..maxnoNRcellsSpectrumSharingWithE-UTRA)) OF NRCGI + +-- ************************************************************** +-- +-- EN-DC X2 REMOVAL REQUEST +-- +-- ************************************************************** + +ENDCX2RemovalRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENDCX2RemovalRequest-IEs}}, + ... +} + +ENDCX2RemovalRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-InitiatingNodeType-EndcX2Removal CRITICALITY reject TYPE InitiatingNodeType-EndcX2Removal PRESENCE mandatory}, + ... +} + +InitiatingNodeType-EndcX2Removal ::= CHOICE { + init-eNB ProtocolIE-Container {{ENB-ENDCX2RemovalReqIEs}}, + init-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2RemovalReqIEs}}, + ... +} + +ENB-ENDCX2RemovalReqIEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}, + ... +} + +En-gNB-ENDCX2RemovalReqIEs X2AP-PROTOCOL-IES ::= { + { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- EN-DC X2 REMOVAL RESPONSE +-- +-- ************************************************************** + +ENDCX2RemovalResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENDCX2RemovalResponse-IEs}}, + ... +} + +ENDCX2RemovalResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-RespondingNodeType-EndcX2Removal CRITICALITY reject TYPE RespondingNodeType-EndcX2Removal PRESENCE mandatory}, + ... +} + +RespondingNodeType-EndcX2Removal ::= CHOICE { + respond-eNB ProtocolIE-Container {{ENB-ENDCX2RemovalReqAckIEs}}, + respond-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2RemovalReqAckIEs}}, + ... +} + +ENB-ENDCX2RemovalReqAckIEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}, + ... +} + +En-gNB-ENDCX2RemovalReqAckIEs X2AP-PROTOCOL-IES ::= { + { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- EN-DC X2 REMOVAL FAILURE +-- +-- ************************************************************** + +ENDCX2RemovalFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENDCX2RemovalFailure-IEs}}, + ... +} + +ENDCX2RemovalFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +END + + +-- ************************************************************** +-- +-- Information Element Definitions +-- +-- ************************************************************** + +X2AP-IEs { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-IEs (2) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + + id-E-RAB-Item, + id-Number-of-Antennaports, + id-MBSFN-Subframe-Info, + id-PRACH-Configuration, + id-CSG-Id, + id-MDTConfiguration, + id-SignallingBasedMDTPLMNList, + id-MultibandInfoList, + id-FreqBandIndicatorPriority, + id-NeighbourTAC, + id-Time-UE-StayedInCell-EnhancedGranularity, + id-MBMS-Service-Area-List, + id-HO-cause, + id-eARFCNExtension, + id-DL-EARFCNExtension, + id-UL-EARFCNExtension, + id-M3Configuration, + id-M4Configuration, + id-M5Configuration, + id-MDT-Location-Info, + id-NRrestriction, + id-AdditionalSpecialSubframe-Info, + id-UEID, + id-enhancedRNTP, + id-ProSeUEtoNetworkRelaying, + id-M6Configuration, + id-M7Configuration, + id-OffsetOfNbiotChannelNumberToDL-EARFCN, + id-OffsetOfNbiotChannelNumberToUL-EARFCN, + id-AdditionalSpecialSubframeExtension-Info, + id-BandwidthReducedSI, + id-extended-e-RAB-MaximumBitrateDL, + id-extended-e-RAB-MaximumBitrateUL, + id-extended-e-RAB-GuaranteedBitrateDL, + id-extended-e-RAB-GuaranteedBitrateUL, + id-extended-uEaggregateMaximumBitRateDownlink, + id-extended-uEaggregateMaximumBitRateUplink, + id-E-RABUsageReport-Item, + id-SecondaryRATUsageReport-Item, + id-UEAppLayerMeasConfig, + id-DL-scheduling-PDCCH-CCE-usage, + id-UL-scheduling-PDCCH-CCE-usage, + id-DownlinkPacketLossRate, + id-UplinkPacketLossRate, + id-serviceType, + id-ProtectedEUTRAResourceIndication, + id-NRS-NSSS-PowerOffset, + id-NSSS-NumOccasionDifferentPrecoder, + + + maxnoofBearers, + maxCellineNB, + maxEARFCN, + maxEARFCNPlusOne, + newmaxEARFCN, + maxInterfaces, + + maxnoofBands, + maxnoofBPLMNs, + maxnoofCells, + maxnoofEPLMNs, + maxnoofEPLMNsPlusOne, + maxnoofForbLACs, + maxnoofForbTACs, + maxnoofNeighbours, + maxnoofPRBs, + maxNrOfErrors, + maxPools, + maxnoofMBSFN, + maxnoofTAforMDT, + maxnoofCellIDforMDT, + maxnoofMBMSServiceAreaIdentities, + maxnoofMDTPLMNs, + maxnoofCoMPHypothesisSet, + maxnoofCoMPCells, + maxUEReport, + maxCellReport, + maxnoofPA, + maxCSIProcess, + maxCSIReport, + maxSubband, + maxnooftimeperiods, + maxnoofCellIDforQMC, + maxnoofTAforQMC, + maxnoofPLMNforQMC, + maxUEsinengNBDU, + maxnoofProtectedResourcePatterns, + maxnoNRcellsSpectrumSharingWithE-UTRA, + maxnoofNrCellBands + +FROM X2AP-Constants + + Criticality, + ProcedureCode, + ProtocolIE-ID, + TriggeringMessage +FROM X2AP-CommonDataTypes + + ProtocolExtensionContainer{}, + ProtocolIE-Single-Container{}, + + X2AP-PROTOCOL-EXTENSION, + X2AP-PROTOCOL-IES +FROM X2AP-Containers; + +-- A + +ABSInformation ::= CHOICE { + fdd ABSInformationFDD, + tdd ABSInformationTDD, + abs-inactive NULL, + ... +} + +ABSInformationFDD ::= SEQUENCE { + abs-pattern-info BIT STRING (SIZE(40)), + numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, + measurement-subset BIT STRING (SIZE(40)), + iE-Extensions ProtocolExtensionContainer { { ABSInformationFDD-ExtIEs} } OPTIONAL, + ... +} + +ABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ABSInformationTDD ::= SEQUENCE { + abs-pattern-info BIT STRING (SIZE(1..70, ...)), + numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, + measurement-subset BIT STRING (SIZE(1..70, ...)), + iE-Extensions ProtocolExtensionContainer { { ABSInformationTDD-ExtIEs} } OPTIONAL, + ... +} + +ABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ABS-Status ::= SEQUENCE { + dL-ABS-status DL-ABS-status, + usableABSInformation UsableABSInformation, + iE-Extensions ProtocolExtensionContainer { {ABS-Status-ExtIEs} } OPTIONAL, + ... +} + +ABS-Status-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ActivationID ::= INTEGER (0..255) + +AdditionalSpecialSubframe-Info ::= SEQUENCE { + additionalspecialSubframePatterns AdditionalSpecialSubframePatterns, + cyclicPrefixDL CyclicPrefixDL, + cyclicPrefixUL CyclicPrefixUL, + iE-Extensions ProtocolExtensionContainer { { AdditionalSpecialSubframe-Info-ExtIEs} } OPTIONAL, + ... +} + +AdditionalSpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +AdditionalSpecialSubframePatterns ::= ENUMERATED { + ssp0, + ssp1, + ssp2, + ssp3, + ssp4, + ssp5, + ssp6, + ssp7, + ssp8, + ssp9, + ... +} + +AdditionalSpecialSubframeExtension-Info ::= SEQUENCE { + additionalspecialSubframePatternsExtension AdditionalSpecialSubframePatternsExtension, + cyclicPrefixDL CyclicPrefixDL, + cyclicPrefixUL CyclicPrefixUL, + iE-Extensions ProtocolExtensionContainer { { AdditionalSpecialSubframeExtension-Info-ExtIEs} } OPTIONAL, + ... +} + +AdditionalSpecialSubframeExtension-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +AdditionalSpecialSubframePatternsExtension ::= ENUMERATED { + ssp10, + ... +} + +AerialUEsubscriptionInformation ::= ENUMERATED { + allowed, + not-allowed, + ... +} + +AllocationAndRetentionPriority ::= SEQUENCE { + priorityLevel PriorityLevel, + pre-emptionCapability Pre-emptionCapability, + pre-emptionVulnerability Pre-emptionVulnerability, + iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, + ... +} + +AllocationAndRetentionPriority-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +AreaScopeOfMDT ::= CHOICE { + cellBased CellBasedMDT, + tABased TABasedMDT, + pLMNWide NULL, + ..., + tAIBased TAIBasedMDT +} + +AreaScopeOfQMC ::= CHOICE { + cellBased CellBasedQMC, + tABased TABasedQMC, + tAIBased TAIBasedQMC, + pLMNAreaBased PLMNAreaBasedQMC, + ... +} + +AS-SecurityInformation ::= SEQUENCE { + key-eNodeB-star Key-eNodeB-Star, + nextHopChainingCount NextHopChainingCount, + iE-Extensions ProtocolExtensionContainer { { AS-SecurityInformation-ExtIEs} } OPTIONAL, + ... +} + +AS-SecurityInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- B + +BandwidthReducedSI::= ENUMERATED { + scheduled, + ... +} + +BearerType ::= ENUMERATED { + non-IP, + ... +} + +BenefitMetric ::= INTEGER (-101..100, ...) + +BitRate ::= INTEGER (0..10000000000) +BroadcastPLMNs-Item ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF PLMN-Identity + + +-- C + +CapacityValue ::= INTEGER (0..100) + +Cause ::= CHOICE { + radioNetwork CauseRadioNetwork, + transport CauseTransport, + protocol CauseProtocol, + misc CauseMisc, + ... +} + +CauseMisc ::= ENUMERATED { + control-processing-overload, + hardware-failure, + om-intervention, + not-enough-user-plane-processing-resources, + unspecified, + ... +} + +CauseProtocol ::= ENUMERATED { + transfer-syntax-error, + abstract-syntax-error-reject, + abstract-syntax-error-ignore-and-notify, + message-not-compatible-with-receiver-state, + semantic-error, + unspecified, + abstract-syntax-error-falsely-constructed-message, + ... +} + +CauseRadioNetwork ::= ENUMERATED { + handover-desirable-for-radio-reasons, + time-critical-handover, + resource-optimisation-handover, + reduce-load-in-serving-cell, + partial-handover, + unknown-new-eNB-UE-X2AP-ID, + unknown-old-eNB-UE-X2AP-ID, + unknown-pair-of-UE-X2AP-ID, + ho-target-not-allowed, + tx2relocoverall-expiry, + trelocprep-expiry, + cell-not-available, + no-radio-resources-available-in-target-cell, + invalid-MME-GroupID, + unknown-MME-Code, + encryption-and-or-integrity-protection-algorithms-not-supported, + reportCharacteristicsEmpty, + noReportPeriodicity, + existingMeasurementID, + unknown-eNB-Measurement-ID, + measurement-temporarily-not-available, + unspecified, + ..., + load-balancing, + handover-optimisation, + value-out-of-allowed-range, + multiple-E-RAB-ID-instances, + switch-off-ongoing, + not-supported-QCI-value, + measurement-not-supported-for-the-object, + tDCoverall-expiry, + tDCprep-expiry, + action-desirable-for-radio-reasons, + reduce-load, + resource-optimisation, + time-critical-action, + target-not-allowed, + no-radio-resources-available, + invalid-QoS-combination, + encryption-algorithms-not-aupported, + procedure-cancelled, + rRM-purpose, + improve-user-bit-rate, + user-inactivity, + radio-connection-with-UE-lost, + failure-in-the-radio-interface-procedure, + bearer-option-not-supported, + mCG-Mobility, + sCG-Mobility, + count-reaches-max-value, + unknown-old-en-gNB-UE-X2AP-ID, + pDCP-Overload + +} + +CauseTransport ::= ENUMERATED { + transport-resource-unavailable, + unspecified, + ... +} + +CellBasedMDT::= SEQUENCE { + cellIdListforMDT CellIdListforMDT, + iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +CellBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellBasedQMC::= SEQUENCE { + cellIdListforQMC CellIdListforQMC, + iE-Extensions ProtocolExtensionContainer { {CellBasedQMC-ExtIEs} } OPTIONAL, + ... +} + +CellBasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellCapacityClassValue ::= INTEGER (1..100, ...) + +CellDeploymentStatusIndicator ::= ENUMERATED {pre-change-notification, ...} + +CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF ECGI + +CellIdListforQMC ::= SEQUENCE (SIZE(1..maxnoofCellIDforQMC)) OF ECGI + +CellReplacingInfo ::= SEQUENCE { + replacingCellsList ReplacingCellsList, + iE-Extensions ProtocolExtensionContainer { { CellReplacingInfo-ExtIEs}} OPTIONAL, + ... +} + +CellReplacingInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellReportingIndicator ::= ENUMERATED {stop-request, ... } + +Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ... } + + +CellType ::= SEQUENCE { + cell-Size Cell-Size, + iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL, + ... +} + +CellType-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CoMPHypothesisSet ::= SEQUENCE (SIZE(1..maxnoofCoMPCells)) OF CoMPHypothesisSetItem + +CoMPHypothesisSetItem ::= SEQUENCE { + coMPCellID ECGI, + coMPHypothesis BIT STRING (SIZE(6..4400, ...)), + iE-Extensions ProtocolExtensionContainer { { CoMPHypothesisSetItem-ExtIEs} } OPTIONAL, + ... +} + +CoMPHypothesisSetItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CoMPInformation ::= SEQUENCE { + coMPInformationItem CoMPInformationItem, + coMPInformationStartTime CoMPInformationStartTime, + iE-Extensions ProtocolExtensionContainer { { CoMPInformation-ExtIEs} } OPTIONAL, + ... +} + +CoMPInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CoMPInformationItem ::= SEQUENCE (SIZE(1..maxnoofCoMPHypothesisSet)) OF + SEQUENCE { + coMPHypothesisSet CoMPHypothesisSet, + benefitMetric BenefitMetric, + iE-Extensions ProtocolExtensionContainer { { CoMPInformationItem-ExtIEs} } OPTIONAL, + ... + } + +CoMPInformationItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CoMPInformationStartTime ::= SEQUENCE (SIZE(0..1)) OF + SEQUENCE { + startSFN INTEGER (0..1023, ...), + startSubframeNumber INTEGER (0..9, ...), + iE-Extensions ProtocolExtensionContainer { { CoMPInformationStartTime-ExtIEs} } OPTIONAL, + ... + } + +CoMPInformationStartTime-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompositeAvailableCapacity ::= SEQUENCE { + cellCapacityClassValue CellCapacityClassValue OPTIONAL, + capacityValue CapacityValue, + iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacity-ExtIEs} } OPTIONAL, + ... +} + +CompositeAvailableCapacity-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompositeAvailableCapacityGroup ::= SEQUENCE { + dL-CompositeAvailableCapacity CompositeAvailableCapacity, + uL-CompositeAvailableCapacity CompositeAvailableCapacity, + iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacityGroup-ExtIEs} } OPTIONAL, + ... +} + +CompositeAvailableCapacityGroup-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +Correlation-ID ::= OCTET STRING (SIZE (4)) + +COUNTvalue ::= SEQUENCE { + pDCP-SN PDCP-SN, + hFN HFN, + iE-Extensions ProtocolExtensionContainer { { COUNTvalue-ExtIEs} } OPTIONAL, + ... +} + +COUNTvalue-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTValueExtended ::= SEQUENCE { + pDCP-SNExtended PDCP-SNExtended, + hFNModified HFNModified, + iE-Extensions ProtocolExtensionContainer { { COUNTValueExtended-ExtIEs} } OPTIONAL, + ... +} + +COUNTValueExtended-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTvaluePDCP-SNlength18 ::= SEQUENCE { + pDCP-SNlength18 PDCP-SNlength18, + hFNforPDCP-SNlength18 HFNforPDCP-SNlength18, + iE-Extensions ProtocolExtensionContainer { { COUNTvaluePDCP-SNlength18-ExtIEs} } OPTIONAL, + ... +} + +COUNTvaluePDCP-SNlength18-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CoverageModificationList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF CoverageModification-Item + +CoverageModification-Item ::= SEQUENCE { + eCGI ECGI, + coverageState INTEGER (0..15, ...), + cellDeploymentStatusIndicator CellDeploymentStatusIndicator OPTIONAL, + cellReplacingInfo CellReplacingInfo OPTIONAL, +-- Included in case the Cell Deployment Status Indicator IE is present + ... +} + +CriticalityDiagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL, + ... +} + + +CriticalityDiagnostics-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF + SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-List-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CRNTI ::= BIT STRING (SIZE (16)) + +CSGMembershipStatus ::= ENUMERATED { + member, + not-member +} + +CSG-Id ::= BIT STRING (SIZE (27)) + +CSIReportList ::= SEQUENCE (SIZE(1..maxUEReport)) OF + SEQUENCE { + uEID UEID, + cSIReportPerCSIProcess CSIReportPerCSIProcess, + iE-Extensions ProtocolExtensionContainer { { CSIReportList-ExtIEs} } OPTIONAL, + ... + } + +CSIReportList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CSIReportPerCSIProcess ::= SEQUENCE (SIZE(1.. maxCSIProcess)) OF + SEQUENCE { + cSIProcessConfigurationIndex INTEGER (1..7, ...), + cSIReportPerCSIProcessItem CSIReportPerCSIProcessItem, + iE-Extensions ProtocolExtensionContainer { { CSIReportPerCSIProcess-ExtIEs} } OPTIONAL, + ... + } + +CSIReportPerCSIProcess-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CSIReportPerCSIProcessItem ::= SEQUENCE (SIZE(1.. maxCSIReport)) OF + SEQUENCE { + rI INTEGER (1..8, ...), + widebandCQI WidebandCQI, + subbandSize SubbandSize, + subbandCQIList SubbandCQIList OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { CSIReportPerCSIProcessItem-ExtIEs} } OPTIONAL, + ... + } + +CSIReportPerCSIProcessItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CyclicPrefixDL ::= ENUMERATED { + normal, + extended, + ... +} + +CyclicPrefixUL ::= ENUMERATED { + normal, + extended, + ... +} + + +-- D + + +DataTrafficResources ::= BIT STRING (SIZE(12..8800)) + +DataTrafficResourceIndication ::= SEQUENCE { + activationSFN INTEGER (0..1023), + sharedResourceType SharedResourceType, + reservedSubframePattern ReservedSubframePattern OPTIONAL, +... +} + +DeactivationIndication::= ENUMERATED { + deactivated, + ... +} + +DeliveryStatus ::= SEQUENCE { + highestSuccessDeliveredPDCPSN INTEGER (0..4095), + iE-Extensions ProtocolExtensionContainer { {DeliveryStatus-ExtIEs} } OPTIONAL, + ... +} + +DeliveryStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +DL-ABS-status::= INTEGER (0..100) + +DL-Forwarding ::= ENUMERATED { + dL-forwardingProposed, + ... +} + +DL-GBR-PRB-usage::= INTEGER (0..100) + +DL-non-GBR-PRB-usage::= INTEGER (0..100) + +DLResourceBitmapULandDLSharing ::= DataTrafficResources + +DLResourcesULandDLSharing ::= CHOICE { +unchanged NULL, + changed DLResourceBitmapULandDLSharing, + ... +} + +DL-scheduling-PDCCH-CCE-usage::= INTEGER (0..100) + +DL-Total-PRB-usage::= INTEGER (0..100) + +DRB-ID ::= INTEGER (1..32) + +DynamicDLTransmissionInformation ::= CHOICE { + naics-active DynamicNAICSInformation, + naics-inactive NULL, + ... +} + +DynamicNAICSInformation ::= SEQUENCE { + transmissionModes BIT STRING (SIZE(8)) OPTIONAL, + pB-information INTEGER(0..3) OPTIONAL, + pA-list SEQUENCE (SIZE(0..maxnoofPA)) OF PA-Values, + iE-Extensions ProtocolExtensionContainer { {DynamicNAICSInformation-ExtIEs} } OPTIONAL, + ... +} + +DynamicNAICSInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- E + +EARFCN ::= INTEGER (0..maxEARFCN) + +EARFCNExtension ::= INTEGER(maxEARFCNPlusOne..newmaxEARFCN, ...) + +ECGI ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + eUTRANcellIdentifier EUTRANCellIdentifier, + iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL, + ... +} + +ECGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +EnhancedRNTP ::= SEQUENCE { + enhancedRNTPBitmap BIT STRING (SIZE(12..8800, ...)), + rNTP-High-Power-Threshold RNTP-Threshold, + enhancedRNTPStartTime EnhancedRNTPStartTime OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { EnhancedRNTP-ExtIEs} } OPTIONAL, + ... +} + +EnhancedRNTP-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +EnhancedRNTPStartTime ::= SEQUENCE { + startSFN INTEGER (0..1023, ...), + startSubframeNumber INTEGER (0..9, ...), + iE-Extensions ProtocolExtensionContainer { { EnhancedRNTPStartTime-ExtIEs} } OPTIONAL, + ... + } + +EnhancedRNTPStartTime-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENB-ID ::= CHOICE { + macro-eNB-ID BIT STRING (SIZE (20)), + home-eNB-ID BIT STRING (SIZE (28)), + ... , + short-Macro-eNB-ID BIT STRING (SIZE(18)), + long-Macro-eNB-ID BIT STRING (SIZE(21)) +} + +EncryptionAlgorithms ::= BIT STRING (SIZE (16, ...)) + +EN-DC-ResourceConfiguration ::= SEQUENCE { + pDCPatSgNB ENUMERATED {present, not-present, ...}, + mCGresources ENUMERATED {present, not-present, ...}, + sCGresources ENUMERATED {present, not-present, ...}, + iE-Extensions ProtocolExtensionContainer { { EN-DC-ResourceConfigurationExtIEs} } OPTIONAL, + ... +} + +EN-DC-ResourceConfigurationExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMN-Identity + +ERABActivityNotifyItemList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ERABActivityNotifyItem + +ERABActivityNotifyItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + activityReport UserPlaneTrafficActivityReport, + iE-Extensions ProtocolExtensionContainer { {ERABActivityNotifyItem-ExtIEs} } OPTIONAL, + ... +} + +ERABActivityNotifyItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RAB-ID ::= INTEGER (0..15, ...) + +E-RAB-Level-QoS-Parameters ::= SEQUENCE { + qCI QCI, + allocationAndRetentionPriority AllocationAndRetentionPriority, + gbrQosInformation GBR-QosInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { E-RAB-Level-QoS-Parameters-ExtIEs} } OPTIONAL, + ... +} + +E-RAB-Level-QoS-Parameters-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +-- Extended for introduction of downlink and uplink packet loss rate for enhanced Voice performance – + { ID id-DownlinkPacketLossRate CRITICALITY ignore EXTENSION Packet-LossRate PRESENCE optional}| + { ID id-UplinkPacketLossRate CRITICALITY ignore EXTENSION Packet-LossRate PRESENCE optional}, + ... +} + +E-RAB-List ::= SEQUENCE (SIZE(1.. maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RAB-ItemIEs} } + +E-RAB-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RAB-Item CRITICALITY ignore TYPE E-RAB-Item PRESENCE mandatory }, + ... +} + +E-RAB-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RAB-Item-ExtIEs} } OPTIONAL, + ... +} + +E-RAB-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABUsageReportList ::= SEQUENCE (SIZE(1..maxnooftimeperiods)) OF ProtocolIE-Single-Container { {E-RABUsageReport-ItemIEs} } + +E-RABUsageReport-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABUsageReport-Item CRITICALITY ignore TYPE E-RABUsageReport-Item PRESENCE mandatory }, + ... +} + +E-RABUsageReport-Item ::= SEQUENCE { + startTimeStamp OCTET STRING (SIZE(4)), + endTimeStamp OCTET STRING (SIZE(4)), + usageCountUL INTEGER (0..18446744073709551615), + usageCountDL INTEGER (0..18446744073709551615), + iE-Extensions ProtocolExtensionContainer { { E-RABUsageReport-Item-ExtIEs} } OPTIONAL, +... +} + +E-RABUsageReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +EUTRA-Mode-Info ::= CHOICE { + fDD FDD-Info, + tDD TDD-Info, + ... +} + +EUTRANCellIdentifier ::= BIT STRING (SIZE (28)) + +EUTRANTraceID ::= OCTET STRING (SIZE (8)) + +EventType ::= ENUMERATED{ + change-of-serving-cell, + ... +} + +ExpectedUEBehaviour ::= SEQUENCE { + expectedActivity ExpectedUEActivityBehaviour OPTIONAL, + expectedHOInterval ExpectedHOInterval OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ExpectedUEBehaviour-ExtIEs} } OPTIONAL, + ... +} + +ExpectedUEBehaviour-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ExpectedUEActivityBehaviour ::= SEQUENCE { + expectedActivityPeriod ExpectedActivityPeriod OPTIONAL, + expectedIdlePeriod ExpectedIdlePeriod OPTIONAL, + sourceofUEActivityBehaviourInformation SourceOfUEActivityBehaviourInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ExpectedUEActivityBehaviour-ExtIEs} } OPTIONAL, + ... +} + +ExpectedUEActivityBehaviour-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ExpectedActivityPeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) + +ExpectedIdlePeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) + +ExpectedHOInterval ::= ENUMERATED { + sec15, sec30, sec60, sec90, sec120, sec180, long-time, + ... +} + +ExtendedULInterferenceOverloadInfo ::= SEQUENCE { + associatedSubframes BIT STRING (SIZE (5)), + extended-ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication, + iE-Extensions ProtocolExtensionContainer { { ExtendedULInterferenceOverloadInfo-ExtIEs} } OPTIONAL, + ... +} + +ExtendedULInterferenceOverloadInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ExtendedBitRate ::= INTEGER (10000000001..4000000000000,...) + +-- F + +FDD-Info ::= SEQUENCE { + uL-EARFCN EARFCN, + dL-EARFCN EARFCN, + uL-Transmission-Bandwidth Transmission-Bandwidth, + dL-Transmission-Bandwidth Transmission-Bandwidth, + iE-Extensions ProtocolExtensionContainer { {FDD-Info-ExtIEs} } OPTIONAL, + ... +} + +FDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-UL-EARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}| + { ID id-DL-EARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}| + { ID id-OffsetOfNbiotChannelNumberToDL-EARFCN CRITICALITY reject EXTENSION OffsetOfNbiotChannelNumberToEARFCN PRESENCE optional}| + { ID id-OffsetOfNbiotChannelNumberToUL-EARFCN CRITICALITY reject EXTENSION OffsetOfNbiotChannelNumberToEARFCN PRESENCE optional}| + { ID id-NRS-NSSS-PowerOffset CRITICALITY ignore EXTENSION NRS-NSSS-PowerOffset PRESENCE optional}| + { ID id-NSSS-NumOccasionDifferentPrecoder CRITICALITY ignore EXTENSION NSSS-NumOccasionDifferentPrecoder PRESENCE optional}, + ... +} + +ForbiddenInterRATs ::= ENUMERATED { + all, + geran, + utran, + cdma2000, + ..., + geranandutran, + cdma2000andutran + +} + +ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item + +ForbiddenTAs-Item ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + forbiddenTACs ForbiddenTACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenTAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC + +ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item + +ForbiddenLAs-Item ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + forbiddenLACs ForbiddenLACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenLAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC + +Fourframes ::= BIT STRING (SIZE (24)) + +FreqBandIndicator ::= INTEGER (1..256, ...) + +FreqBandIndicatorPriority ::= ENUMERATED { + not-broadcasted, + broadcasted, + ... +} + + +FreqBandNrItem ::= SEQUENCE { + freqBandIndicatorNr INTEGER (1..1024,...), + supportedSULBandList SEQUENCE (SIZE(0..maxnoofNrCellBands)) OF SupportedSULFreqBandItem, + iE-Extensions ProtocolExtensionContainer { {FreqBandNrItem-ExtIEs} } OPTIONAL, + ... +} + +FreqBandNrItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- G + +GBR-QosInformation ::= SEQUENCE { + e-RAB-MaximumBitrateDL BitRate, + e-RAB-MaximumBitrateUL BitRate, + e-RAB-GuaranteedBitrateDL BitRate, + e-RAB-GuaranteedBitrateUL BitRate, + iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL, + ... +} + +GBR-QosInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +-- Extension for maximum bitrate > 10Gbps -- + { ID id-extended-e-RAB-MaximumBitrateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| + { ID id-extended-e-RAB-MaximumBitrateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| + { ID id-extended-e-RAB-GuaranteedBitrateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| + { ID id-extended-e-RAB-GuaranteedBitrateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}, + ... +} + +GlobalENB-ID ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + eNB-ID ENB-ID, + iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL, + ... +} + +GlobalENB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GlobalGNB-ID ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + gNB-ID GNB-ID, + iE-Extensions ProtocolExtensionContainer { {GlobalGNB-ID-ExtIEs} } OPTIONAL, + ... +} + +GlobalGNB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GTPtunnelEndpoint ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEI, + iE-Extensions ProtocolExtensionContainer { {GTPtunnelEndpoint-ExtIEs} } OPTIONAL, + ... +} + +GTPtunnelEndpoint-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GTP-TEI ::= OCTET STRING (SIZE (4)) + +GUGroupIDList ::= SEQUENCE (SIZE (1..maxPools)) OF GU-Group-ID + + +GU-Group-ID ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + mME-Group-ID MME-Group-ID, + iE-Extensions ProtocolExtensionContainer { {GU-Group-ID-ExtIEs} } OPTIONAL, + ... +} + +GU-Group-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +GUMMEI ::= SEQUENCE { + + gU-Group-ID GU-Group-ID, + mME-Code MME-Code, + iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, + ... +} + +GUMMEI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GNB-ID ::= CHOICE { + gNB-ID BIT STRING (SIZE (22..32)), + ... +} + +-- H + +HandoverReportType ::= ENUMERATED { + hoTooEarly, + hoToWrongCell, + ..., + interRATpingpong +} + +HandoverRestrictionList ::= SEQUENCE { + servingPLMN PLMN-Identity, + equivalentPLMNs EPLMNs OPTIONAL, + forbiddenTAs ForbiddenTAs OPTIONAL, + forbiddenLAs ForbiddenLAs OPTIONAL, + forbiddenInterRATs ForbiddenInterRATs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, + ... +} + +HandoverRestrictionList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-NRrestriction CRITICALITY ignore EXTENSION NRrestriction PRESENCE optional}, + ... +} + +HFN ::= INTEGER (0..1048575) + +HFNModified ::= INTEGER (0..131071) + +HFNforPDCP-SNlength18 ::= INTEGER (0..16383) + +HWLoadIndicator ::= SEQUENCE { + dLHWLoadIndicator LoadIndicator, + uLHWLoadIndicator LoadIndicator, + iE-Extensions ProtocolExtensionContainer { { HWLoadIndicator-ExtIEs} } OPTIONAL, + ... +} + +HWLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- I + +IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16, ...)) + +InterfacesToTrace ::= BIT STRING (SIZE (8)) + +InvokeIndication ::= ENUMERATED{ + abs-information, + ..., + naics-information-start, + naics-information-stop +} + +-- J +-- K + +Key-eNodeB-Star ::= BIT STRING (SIZE(256)) + +-- L + +LAC ::= OCTET STRING (SIZE (2)) --(EXCEPT ('0000'H|'FFFE'H)) + +LastVisitedCell-Item ::= CHOICE { + e-UTRAN-Cell LastVisitedEUTRANCellInformation, + uTRAN-Cell LastVisitedUTRANCellInformation, + gERAN-Cell LastVisitedGERANCellInformation, + ... +} + +LastVisitedEUTRANCellInformation ::= SEQUENCE { + global-Cell-ID ECGI, + cellType CellType, + time-UE-StayedInCell Time-UE-StayedInCell, + iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, + ... +} + +LastVisitedEUTRANCellInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +-- Extension for Rel-11 to support enhanced granularity for time UE stayed in cell -- + { ID id-Time-UE-StayedInCell-EnhancedGranularity CRITICALITY ignore EXTENSION Time-UE-StayedInCell-EnhancedGranularity PRESENCE optional}| + { ID id-HO-cause CRITICALITY ignore EXTENSION Cause PRESENCE optional}, + ... +} + +LastVisitedGERANCellInformation ::= CHOICE { + undefined NULL, + ... +} + +LastVisitedUTRANCellInformation ::= OCTET STRING + +LHN-ID ::= OCTET STRING(SIZE (32..256)) + +Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...} + +LoadIndicator ::= ENUMERATED { + lowLoad, + mediumLoad, + highLoad, + overLoad, + ... +} + +LocationReportingInformation ::= SEQUENCE { + eventType EventType, + reportArea ReportArea, + iE-Extensions ProtocolExtensionContainer { {LocationReportingInformation-ExtIEs} } OPTIONAL, + ... +} + +LocationReportingInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::={ + ... +} + +-- M + +M1PeriodicReporting ::= SEQUENCE { + reportInterval ReportIntervalMDT, + reportAmount ReportAmountMDT, + iE-Extensions ProtocolExtensionContainer { { M1PeriodicReporting-ExtIEs} } OPTIONAL, + ... +} + +M1PeriodicReporting-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M1ReportingTrigger::= ENUMERATED{ + periodic, + a2eventtriggered, + ..., + a2eventtriggered-periodic +} + +M1ThresholdEventA2 ::= SEQUENCE { + measurementThreshold MeasurementThresholdA2, + iE-Extensions ProtocolExtensionContainer { { M1ThresholdEventA2-ExtIEs} } OPTIONAL, + ... +} + +M1ThresholdEventA2-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M3Configuration ::= SEQUENCE { + m3period M3period, + iE-Extensions ProtocolExtensionContainer { { M3Configuration-ExtIEs} } OPTIONAL, + ... +} + +M3Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M3period ::= ENUMERATED {ms100, ms1000, ms10000, ... } + +M4Configuration ::= SEQUENCE { + m4period M4period, + m4-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M4Configuration-ExtIEs} } OPTIONAL, + ... +} + +M4Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + + +M5Configuration ::= SEQUENCE { + m5period M5period, + m5-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M5Configuration-ExtIEs} } OPTIONAL, + ... +} + +M5Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + +M6Configuration ::= SEQUENCE { + m6report-interval M6report-interval, + m6delay-threshold M6delay-threshold OPTIONAL, +-- This IE shall be present if the M6 Links to log IE is set to “uplink” or to “both-uplink-and-downlink” -- + m6-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M6Configuration-ExtIEs} } OPTIONAL, + ... +} + +M6Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M6report-interval ::= ENUMERATED { ms1024, ms2048, ms5120, ms10240, ... } + +M6delay-threshold ::= ENUMERATED { ms30, ms40, ms50, ms60, ms70, ms80, ms90, ms100, ms150, ms300, ms500, ms750, ... } + +M7Configuration ::= SEQUENCE { + m7period M7period, + m7-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M7Configuration-ExtIEs} } OPTIONAL, + ... +} + +M7Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +M7period ::= INTEGER(1..60, ...) + +MakeBeforeBreakIndicator::= ENUMERATED {true, ...} + +ManagementBasedMDTallowed ::= ENUMERATED {allowed, ...} + +Masked-IMEISV ::= BIT STRING (SIZE (64)) + +MDT-Activation ::= ENUMERATED { + immediate-MDT-only, + immediate-MDT-and-Trace, + ... +} + +MDT-Configuration ::= SEQUENCE { + mdt-Activation MDT-Activation, + areaScopeOfMDT AreaScopeOfMDT, + measurementsToActivate MeasurementsToActivate, + m1reportingTrigger M1ReportingTrigger, + m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL, +-- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1 + m1periodicReporting M1PeriodicReporting OPTIONAL, +-- Included in case of periodic, or event-triggered periodic reporting for measurement M1 + iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTIONAL, + ... +} + +MDT-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + {ID id-M3Configuration CRITICALITY ignore EXTENSION M3Configuration PRESENCE conditional}| + {ID id-M4Configuration CRITICALITY ignore EXTENSION M4Configuration PRESENCE conditional}| + {ID id-M5Configuration CRITICALITY ignore EXTENSION M5Configuration PRESENCE conditional}| + {ID id-MDT-Location-Info CRITICALITY ignore EXTENSION MDT-Location-Info PRESENCE optional}| + {ID id-SignallingBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional}| + {ID id-M6Configuration CRITICALITY ignore EXTENSION M6Configuration PRESENCE conditional}| + {ID id-M7Configuration CRITICALITY ignore EXTENSION M7Configuration PRESENCE conditional}, + ... +} + +MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMN-Identity + +MDT-Location-Info ::= BIT STRING (SIZE (8)) + +Measurement-ID ::= INTEGER (1..4095, ...) + +MeasurementsToActivate::= BIT STRING (SIZE (8)) + +MeasurementThresholdA2 ::= CHOICE { + threshold-RSRP Threshold-RSRP, + threshold-RSRQ Threshold-RSRQ, + ... +} + +MeNBResourceCoordinationInformation ::= SEQUENCE { + eUTRA-Cell-ID ECGI, + uLCoordinationInformation BIT STRING (SIZE(6..4400, ...)), + dLCoordinationInformation BIT STRING (SIZE(6..4400, ...)) OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { MeNBResourceCoordinationInformationExtIEs} } OPTIONAL, + ... +} + +MeNBResourceCoordinationInformationExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +MeNBtoSeNBContainer ::= OCTET STRING + +MME-Group-ID ::= OCTET STRING (SIZE (2)) + +MME-Code ::= OCTET STRING (SIZE (1)) + +MBMS-Service-Area-Identity-List ::= SEQUENCE (SIZE(1.. maxnoofMBMSServiceAreaIdentities)) OF MBMS-Service-Area-Identity + +MBMS-Service-Area-Identity ::= OCTET STRING (SIZE (2)) + +MBSFN-Subframe-Infolist::= SEQUENCE (SIZE(1.. maxnoofMBSFN)) OF MBSFN-Subframe-Info + +MBSFN-Subframe-Info ::= SEQUENCE { + radioframeAllocationPeriod RadioframeAllocationPeriod, + radioframeAllocationOffset RadioframeAllocationOffset, + subframeAllocation SubframeAllocation, + iE-Extensions ProtocolExtensionContainer { { MBSFN-Subframe-Info-ExtIEs } } OPTIONAL, + ... +} + +MBSFN-Subframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +MobilityParametersModificationRange ::= SEQUENCE { + handoverTriggerChangeLowerLimit INTEGER (-20..20), + handoverTriggerChangeUpperLimit INTEGER (-20..20), + ... +} + +MobilityParametersInformation ::= SEQUENCE { + handoverTriggerChange INTEGER (-20..20), + ... +} + +MultibandInfoList ::= SEQUENCE (SIZE(1..maxnoofBands)) OF BandInfo + + +BandInfo ::= SEQUENCE { + freqBandIndicator FreqBandIndicator, + iE-Extensions ProtocolExtensionContainer { { BandInfo-ExtIEs } } OPTIONAL, + ... +} + +BandInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +MeNBtoSgNBContainer ::= OCTET STRING + +SplitSRBs ::= ENUMERATED {srb1, srb2, srb1and2, ...} + +SplitSRB ::= SEQUENCE { + rrcContainer RRCContainer OPTIONAL, + srbType SRBType, + deliveryStatus DeliveryStatus OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {SplitSRB-ExtIEs} } OPTIONAL, + ... +} + +SplitSRB-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UENRMeasurement ::= SEQUENCE { + uENRMeasurements RRCContainer, + iE-Extensions ProtocolExtensionContainer { {UENRMeasurement-ExtIEs} } OPTIONAL, + ... +} + +UENRMeasurement-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- N + +Neighbour-Information ::= SEQUENCE (SIZE (0..maxnoofNeighbours)) OF SEQUENCE { + eCGI ECGI, + pCI PCI, + eARFCN EARFCN, + iE-Extensions ProtocolExtensionContainer { {Neighbour-Information-ExtIEs} } OPTIONAL, + ... +} + +Neighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-NeighbourTAC CRITICALITY ignore EXTENSION TAC PRESENCE optional}| + { ID id-eARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}, + ... +} + +NextHopChainingCount ::= INTEGER (0..7) + +Number-of-Antennaports ::= ENUMERATED { + an1, + an2, + an4, + ... +} + +NRFreqInfo ::= SEQUENCE{ + nRARFCN INTEGER (0.. 3279165), + nRARFCN-SUL INTEGER (0.. 3279165) OPTIONAL, + freqBandListNr SEQUENCE (SIZE(1..maxnoofNrCellBands)) OF FreqBandNrItem, + sULInformation SULInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {NRFreqInfo-ExtIEs} } OPTIONAL, + + ... +} + +NRFreqInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +NRCellIdentifier ::= BIT STRING (SIZE (36)) + +NRCGI ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + nRcellIdentifier NRCellIdentifier, + iE-Extensions ProtocolExtensionContainer { {NRCGI-ExtIEs} } OPTIONAL, + ... +} + +NRCGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +NRPCI ::= INTEGER (0..1007) + +NRrestriction ::= ENUMERATED { + nRrestricted, + ... +} + +NRencryptionAlgorithms ::= BIT STRING (SIZE (16,...)) +NRintegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...)) + +NR-TxBW ::= SEQUENCE { + nRSCS NRSCS, + nRNRB NRNRB, + iE-Extensions ProtocolExtensionContainer { { NR-TxBW-ExtIEs} } OPTIONAL, + ... +} + +NR-TxBW-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +NRNRB ::= ENUMERATED { nrb11, nrb18, nrb24, nrb25, nrb31, nrb32, nrb38, nrb51, nrb52, nrb65, nrb66, nrb78, nrb79, nrb93, nrb106, nrb107, nrb121, nrb132, nrb133, nrb135, nrb160, nrb162, nrb189, nrb216, nrb217, nrb245, nrb264, nrb270, nrb273, ...} + +NRSCS ::= ENUMERATED { scs15, scs30, scs60, scs120, ...} + +NRS-NSSS-PowerOffset ::= ENUMERATED { minusThree, zero, three, ...} + +FiveGS-TAC ::= OCTET STRING (SIZE (3)) + +NRUESecurityCapabilities ::= SEQUENCE { + nRencryptionAlgorithms NRencryptionAlgorithms, + nRintegrityProtectionAlgorithms NRintegrityProtectionAlgorithms, + iE-Extensions ProtocolExtensionContainer { { NRUESecurityCapabilities-ExtIEs} } OPTIONAL, +... +} + +NRUESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +NSSS-NumOccasionDifferentPrecoder ::= ENUMERATED { two, four, eight, ...} + +-- O + +OffsetOfNbiotChannelNumberToEARFCN ::= ENUMERATED { + minusTen, + minusNine, + minusEight, + minusSeven, + minusSix, + minusFive, + minusFour, + minusThree, + minusTwo, + minusOne, + minusZeroDotFive, + zero, + one, + two, + three, + four, + five, + six, + seven, + eight, + nine, + ... +} + +Oneframe ::= BIT STRING (SIZE (6)) + +-- P + +Packet-LossRate ::= INTEGER(0..1000) + +PA-Values ::= ENUMERATED { + dB-6, + dB-4dot77, + dB-3, + dB-1dot77, + dB0, + dB1, + dB2, + dB3, + ... +} + +PDCPChangeIndication ::= ENUMERATED {s-KgNB-update-required, pDCP-data-recovery-required,...} + +PDCP-SN ::= INTEGER (0..4095) + +PDCP-SNExtended ::= INTEGER (0..32767) + +PDCP-SNlength18 ::= INTEGER (0..262143) + +PCI ::= INTEGER (0..503, ...) + +PLMN-Identity ::= OCTET STRING (SIZE(3)) + +Port-Number ::= OCTET STRING (SIZE (2)) + +PRACH-Configuration ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + zeroCorrelationIndex INTEGER (0..15), + highSpeedFlag BOOLEAN, + prach-FreqOffset INTEGER (0..94), + prach-ConfigIndex INTEGER (0..63) OPTIONAL, -- present for TDD -- + iE-Extensions ProtocolExtensionContainer { {PRACH-Configuration-ExtIEs} } OPTIONAL, + ... +} + +PLMNAreaBasedQMC ::= SEQUENCE { + plmnListforQMC PLMNListforQMC, + iE-Extensions ProtocolExtensionContainer { {PLMNAreaBasedQMC-ExtIEs} } OPTIONAL, + ... +} + +PLMNAreaBasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +PLMNListforQMC ::= SEQUENCE (SIZE(1..maxnoofPLMNforQMC)) OF PLMN-Identity + + +PRACH-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +Pre-emptionCapability ::= ENUMERATED { + shall-not-trigger-pre-emption, + may-trigger-pre-emption +} + +Pre-emptionVulnerability ::= ENUMERATED { + not-pre-emptable, + pre-emptable +} + +PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) + +ProSeAuthorized ::= SEQUENCE { + proSeDirectDiscovery ProSeDirectDiscovery OPTIONAL, + proSeDirectCommunication ProSeDirectCommunication OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ProSeAuthorized-ExtIEs} } OPTIONAL, + ... +} + +ProSeAuthorized-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-ProSeUEtoNetworkRelaying CRITICALITY ignore EXTENSION ProSeUEtoNetworkRelaying PRESENCE optional}, + ... +} + +ProSeDirectDiscovery ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +ProSeDirectCommunication ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +ProSeUEtoNetworkRelaying ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +ProtectedEUTRAResourceIndication::= SEQUENCE { + activationSFN INTEGER (0..1023), + protectedResourceList ProtectedResourceList, + mBSFNControlRegionLength INTEGER (0..3) OPTIONAL, + pDCCHRegionLength INTEGER (1..3) OPTIONAL, + ... +} + + +ProtectedFootprintTimePattern ::= SEQUENCE { + protectedFootprintTimePeriodicity INTEGER (1..80, ...), + protectedFootprintStartTime INTEGER (1..20, ...), + ... +} + +ProtectedResourceList ::= SEQUENCE (SIZE(1.. maxnoofProtectedResourcePatterns)) OF ProtectedResourceList-Item + +ProtectedResourceList-Item ::= SEQUENCE { + resourceType ResourceType, + intraPRBProtectedResourceFootprint BIT STRING (SIZE(84, ...)), + protectedFootprintFrequencyPattern BIT STRING (SIZE(6..110, ...)), + protectedFootprintTimePattern ProtectedFootprintTimePattern, + ... +} + +-- Q + +QCI ::= INTEGER (0..255) + +-- R + +RadioframeAllocationOffset ::= INTEGER (0..7, ...) + +RadioframeAllocationPeriod ::= ENUMERATED{ + n1, + n2, + n4, + n8, + n16, + n32, + ... +} + + +RadioResourceStatus ::= SEQUENCE { + dL-GBR-PRB-usage DL-GBR-PRB-usage, + uL-GBR-PRB-usage UL-GBR-PRB-usage, + dL-non-GBR-PRB-usage DL-non-GBR-PRB-usage, + uL-non-GBR-PRB-usage UL-non-GBR-PRB-usage, + dL-Total-PRB-usage DL-Total-PRB-usage, + uL-Total-PRB-usage UL-Total-PRB-usage, + iE-Extensions ProtocolExtensionContainer { {RadioResourceStatus-ExtIEs} } OPTIONAL, + ... +} + +RadioResourceStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + {ID id-DL-scheduling-PDCCH-CCE-usage CRITICALITY ignore EXTENSION DL-scheduling-PDCCH-CCE-usage PRESENCE optional}| + + {ID id-UL-scheduling-PDCCH-CCE-usage CRITICALITY ignore EXTENSION UL-scheduling-PDCCH-CCE-usage PRESENCE optional}, + ... +} + +ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) + +ReceiveStatusOfULPDCPSDUsExtended ::= BIT STRING (SIZE(1..16384)) + +ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ::= BIT STRING (SIZE(1..131072)) + +Registration-Request ::= ENUMERATED { + start, + stop, + ..., + partial-stop, + add +} + +RelativeNarrowbandTxPower ::= SEQUENCE { + + rNTP-PerPRB BIT STRING (SIZE(6..110, ...)), + rNTP-Threshold RNTP-Threshold, + numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, + p-B INTEGER (0..3,...), + pDCCH-InterferenceImpact INTEGER (0..4,...), + iE-Extensions ProtocolExtensionContainer { { RelativeNarrowbandTxPower-ExtIEs} } OPTIONAL, + ... +} + +RelativeNarrowbandTxPower-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-enhancedRNTP CRITICALITY ignore EXTENSION EnhancedRNTP PRESENCE optional }, + ... +} + +ReplacingCellsList ::= SEQUENCE (SIZE(0.. maxCellineNB)) OF ReplacingCellsList-Item + +ReplacingCellsList-Item ::= SEQUENCE { + eCGI ECGI, + ... +} + +ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity} + +ReportArea ::= ENUMERATED{ + ecgi, + ... +} + +ReportCharacteristics ::= BIT STRING (SIZE (32)) + +ReportingPeriodicityCSIR ::= ENUMERATED { + ms5, + ms10, + ms20, + ms40, + ms80, +... +} + +ReportingPeriodicityRSRPMR ::= ENUMERATED { + one-hundred-20-ms, + two-hundred-40-ms, + four-hundred-80-ms, + six-hundred-40-ms, +... +} + +ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60} + +ReservedSubframePattern ::= SEQUENCE{ + subframeType SubframeType, + reservedSubframePattern BIT STRING (SIZE(10..40)), + mBSFNControlRegionLength INTEGER (0..3), + ... +} + +ResourceType ::= ENUMERATED { + downlinknonCRS, + cRS, + uplink, + ... +} + +ResumeID ::= CHOICE { + non-truncated BIT STRING(SIZE(40)), + truncated BIT STRING(SIZE(24)), + ... +} + +RLCMode ::= ENUMERATED { + rlc-am, + rlc-um +} + +RNTP-Threshold ::= ENUMERATED { + minusInfinity, + minusEleven, + minusTen, + minusNine, + minusEight, + minusSeven, + minusSix, + minusFive, + minusFour, + minusThree, + minusTwo, + minusOne, + zero, + one, + two, + three, + ... +} + +RRC-Config-Ind ::= ENUMERATED { + full-config, + delta-config, + ... +} + +RRC-Context ::= OCTET STRING + +RRCConnReestabIndicator ::= ENUMERATED { + reconfigurationFailure, handoverFailure, otherFailure, ... +} +-- The values correspond to the values of ReestablishmentCause reported from the UE in the RRCConnectionReestablishmentRequest, as defined in TS 36.331 [9] + +RRCConnSetupIndicator::= ENUMERATED { + rrcConnSetup, + ... +} + +RSRPMeasurementResult ::= SEQUENCE (SIZE(1..maxCellReport)) OF + SEQUENCE { + rSRPCellID ECGI, + rSRPMeasured INTEGER (0..97, ...), + iE-Extensions ProtocolExtensionContainer { { RSRPMeasurementResult-ExtIEs} } OPTIONAL, + ... + } + +RSRPMeasurementResult-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +RSRPMRList ::= SEQUENCE (SIZE(1..maxUEReport)) OF + SEQUENCE { + rSRPMeasurementResult RSRPMeasurementResult, + iE-Extensions ProtocolExtensionContainer { { RSRPMRList-ExtIEs} } OPTIONAL, + ... + } + +RSRPMRList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-UEID CRITICALITY ignore EXTENSION UEID PRESENCE optional}, + ... +} + +RRCContainer ::= OCTET STRING + +-- S + +S1TNLLoadIndicator ::= SEQUENCE { + dLS1TNLLoadIndicator LoadIndicator, + uLS1TNLLoadIndicator LoadIndicator, + iE-Extensions ProtocolExtensionContainer { { S1TNLLoadIndicator-ExtIEs} } OPTIONAL, + ... +} + +S1TNLLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +SCGChangeIndication ::= ENUMERATED {pDCPCountWrapAround, pSCellChange, other, ...} + +SecondaryRATUsageReportList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container {{SecondaryRATUsageReport-ItemIEs}} + +SecondaryRATUsageReport-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-SecondaryRATUsageReport-Item CRITICALITY reject TYPE SecondaryRATUsageReport-Item PRESENCE mandatory}, + ... +} + +SecondaryRATUsageReport-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + secondaryRATType ENUMERATED {nr, ...}, + e-RABUsageReportList E-RABUsageReportList, + iE-Extensions ProtocolExtensionContainer { { SecondaryRATUsageReport-Item-ExtIEs} } OPTIONAL, +... +} + +SecondaryRATUsageReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +SeNBSecurityKey ::= BIT STRING (SIZE(256)) + +SeNBtoMeNBContainer ::= OCTET STRING + + +ServedCells ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { + servedCellInfo ServedCell-Information, + neighbour-Info Neighbour-Information OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ServedCell-ExtIEs} } OPTIONAL, + ... +} + +ServedCell-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedCell-Information ::= SEQUENCE { + pCI PCI, + cellId ECGI, + tAC TAC, + broadcastPLMNs BroadcastPLMNs-Item, + eUTRA-Mode-Info EUTRA-Mode-Info, + iE-Extensions ProtocolExtensionContainer { {ServedCell-Information-ExtIEs} } OPTIONAL, + ... +} + +ServedCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-Number-of-Antennaports CRITICALITY ignore EXTENSION Number-of-Antennaports PRESENCE optional}| + { ID id-PRACH-Configuration CRITICALITY ignore EXTENSION PRACH-Configuration PRESENCE optional}| + { ID id-MBSFN-Subframe-Info CRITICALITY ignore EXTENSION MBSFN-Subframe-Infolist PRESENCE optional}| + { ID id-CSG-Id CRITICALITY ignore EXTENSION CSG-Id PRESENCE optional}| + { ID id-MBMS-Service-Area-List CRITICALITY ignore EXTENSION MBMS-Service-Area-Identity-List PRESENCE optional}| + { ID id-MultibandInfoList CRITICALITY ignore EXTENSION MultibandInfoList PRESENCE optional}| + { ID id-FreqBandIndicatorPriority CRITICALITY ignore EXTENSION FreqBandIndicatorPriority PRESENCE optional}| + { ID id-BandwidthReducedSI CRITICALITY ignore EXTENSION BandwidthReducedSI PRESENCE optional}| + { ID id-ProtectedEUTRAResourceIndication CRITICALITY ignore EXTENSION ProtectedEUTRAResourceIndication PRESENCE optional}, + ... +} + +ServiceType ::= ENUMERATED{ + qMC-for-streaming-service, + qMC-for-MTSI-service, + ... +} + +SgNBResourceCoordinationInformation ::= SEQUENCE { + nR-CGI NRCGI, + uLCoordinationInformation BIT STRING (SIZE(6..4400, ...)), + dLCoordinationInformation BIT STRING (SIZE(6..4400, ...)) OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { SgNBResourceCoordinationInformationExtIEs} } OPTIONAL, + ... +} + +SgNBResourceCoordinationInformationExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +SgNB-UE-X2AP-ID ::= INTEGER (0..4294967295) + +SIPTOBearerDeactivationIndication ::= ENUMERATED { + true, + ... +} + +SharedResourceType ::= CHOICE{ + uLOnlySharing ULOnlySharing, + uLandDLSharing ULandDLSharing, + ... +} + +ShortMAC-I ::= BIT STRING (SIZE(16)) + + +SGNB-Addition-Trigger-Ind ::= ENUMERATED { + sn-change, + inter-eNB-HO, + intra-eNB-HO, + ... +} + +SourceOfUEActivityBehaviourInformation ::= ENUMERATED { + subscription-information, + statistics, + ... +} + +SpecialSubframe-Info ::= SEQUENCE { + specialSubframePatterns SpecialSubframePatterns, + cyclicPrefixDL CyclicPrefixDL, + cyclicPrefixUL CyclicPrefixUL, + iE-Extensions ProtocolExtensionContainer { { SpecialSubframe-Info-ExtIEs} } OPTIONAL, + ... +} + +SpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +SpecialSubframePatterns ::= ENUMERATED { + ssp0, + ssp1, + ssp2, + ssp3, + ssp4, + ssp5, + ssp6, + ssp7, + ssp8, + ... +} + +SpectrumSharingGroupID ::= INTEGER (1..maxCellineNB) + +SubbandCQI ::= SEQUENCE { + subbandCQICodeword0 SubbandCQICodeword0, + subbandCQICodeword1 SubbandCQICodeword1 OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { SubbandCQI-ExtIEs} } OPTIONAL, + ... +} + +SRVCCOperationPossible ::= ENUMERATED { + possible, + ... +} + +SubbandCQI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +SubbandCQICodeword0 ::= CHOICE { + four-bitCQI INTEGER (0..15, ...), + two-bitSubbandDifferentialCQI INTEGER (0..3, ...), + two-bitDifferentialCQI INTEGER (0..3, ...), + ... +} +SubbandCQICodeword1 ::= CHOICE { + four-bitCQI INTEGER (0..15, ...), + three-bitSpatialDifferentialCQI INTEGER (0..7, ...), + two-bitSubbandDifferentialCQI INTEGER (0..3, ...), + two-bitDifferentialCQI INTEGER (0..3, ...), + ... +} + +SubbandCQIList ::= SEQUENCE (SIZE(1.. maxSubband)) OF SubbandCQIItem + +SubbandCQIItem ::= SEQUENCE { + subbandCQI SubbandCQI, + subbandIndex INTEGER (0..27,...), + iE-Extensions ProtocolExtensionContainer { { SubbandCQIItem-ExtIEs} } OPTIONAL, + ... +} + +SubbandCQIItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +SubbandSize ::= ENUMERATED { + size2, + size3, + size4, + size6, + size8, + ... +} + +SubscriberProfileIDforRFP ::= INTEGER (1..256) + +SubframeAllocation ::= CHOICE { + oneframe Oneframe, + fourframes Fourframes, + ... +} + +SubframeAssignment ::= ENUMERATED { + sa0, + sa1, + sa2, + sa3, + sa4, + sa5, + sa6, + ... +} + +SubframeType ::= ENUMERATED{mbsfn,nonmbsfn,...} + +SgNBSecurityKey ::= BIT STRING (SIZE(256)) + +SgNBtoMeNBContainer ::= OCTET STRING + +SRBType ::= ENUMERATED {srb1, srb2, ...} +SCGConfigurationQuery ::= ENUMERATED {true,...} + +SULInformation ::= SEQUENCE { + sUL-ARFCN INTEGER (0.. 3279165), + sUL-TxBW NR-TxBW, + iE-Extensions ProtocolExtensionContainer { { SULInformation-ExtIEs } } OPTIONAL, + ... +} + + +SupportedSULFreqBandItem ::= SEQUENCE { + freqBandIndicatorNr INTEGER (1..1024,...), + ... +} + +SupportedSULFreqBandItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +SULInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- T + +TABasedMDT::= SEQUENCE { + tAListforMDT TAListforMDT, + iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TABasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAC ::= OCTET STRING (SIZE (2)) + +TAIBasedMDT ::= SEQUENCE { + tAIListforMDT TAIListforMDT, + iE-Extensions ProtocolExtensionContainer { {TAIBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TAIBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAIListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAI-Item + +TAI-Item ::= SEQUENCE { + tAC TAC, + pLMN-Identity PLMN-Identity, + iE-Extensions ProtocolExtensionContainer { { TAI-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC + +TABasedQMC ::= SEQUENCE { + tAListforQMC TAListforQMC, + iE-Extensions ProtocolExtensionContainer { {TABasedQMC-ExtIEs} } OPTIONAL, + ... +} + +TABasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAListforQMC ::= SEQUENCE (SIZE(1..maxnoofTAforQMC)) OF TAC + +TAIBasedQMC ::= SEQUENCE { + tAIListforQMC TAIListforQMC, + iE-Extensions ProtocolExtensionContainer { {TAIBasedQMC-ExtIEs} } OPTIONAL, + ... +} + +TAIBasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAIListforQMC ::= SEQUENCE (SIZE(1..maxnoofTAforQMC)) OF TAI-Item + +TargetCellInUTRAN ::= OCTET STRING -- This IE is to be encoded according to the UTRAN Cell ID in the Last Visited UTRAN Cell Information IE in TS 25.413 [24] + +TargeteNBtoSource-eNBTransparentContainer ::= OCTET STRING + +TDD-Info ::= SEQUENCE { + eARFCN EARFCN, + transmission-Bandwidth Transmission-Bandwidth, + subframeAssignment SubframeAssignment, + specialSubframe-Info SpecialSubframe-Info, + iE-Extensions ProtocolExtensionContainer { {TDD-Info-ExtIEs} } OPTIONAL, + ... +} +TDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-AdditionalSpecialSubframe-Info CRITICALITY ignore EXTENSION AdditionalSpecialSubframe-Info PRESENCE optional}| + { ID id-eARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}| + { ID id-AdditionalSpecialSubframeExtension-Info CRITICALITY ignore EXTENSION AdditionalSpecialSubframeExtension-Info PRESENCE optional}, + ... +} + +Threshold-RSRP ::= INTEGER(0..97) + +Threshold-RSRQ ::= INTEGER(0..34) + +TimeToWait ::= ENUMERATED { + v1s, + v2s, + v5s, + v10s, + v20s, + v60s, + ... +} + +Time-UE-StayedInCell ::= INTEGER (0..4095) + +Time-UE-StayedInCell-EnhancedGranularity ::= INTEGER (0..40950) + +TraceActivation ::= SEQUENCE { + eUTRANTraceID EUTRANTraceID, + interfacesToTrace InterfacesToTrace, +traceDepth TraceDepth, +traceCollectionEntityIPAddress TraceCollectionEntityIPAddress, + iE-Extensions ProtocolExtensionContainer { {TraceActivation-ExtIEs} } OPTIONAL, + ... +} + +TraceActivation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional}| + { ID id-UEAppLayerMeasConfig CRITICALITY ignore EXTENSION UEAppLayerMeasConfig PRESENCE optional}, + ... +} + +TraceCollectionEntityIPAddress ::= BIT STRING (SIZE(1..160, ...)) + +TraceDepth ::= ENUMERATED { + minimum, + medium, + maximum, + minimumWithoutVendorSpecificExtension, + mediumWithoutVendorSpecificExtension, + maximumWithoutVendorSpecificExtension, + ... +} + +Transmission-Bandwidth ::= ENUMERATED { + bw6, + bw15, + bw25, + bw50, + bw75, + bw100, + ..., + bw1 +} + +TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) + +TunnelInformation ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + uDP-Port-Number Port-Number OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {Tunnel-Information-ExtIEs} } OPTIONAL, + ... +} + +Tunnel-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + + +-- U + +UEAggregateMaximumBitRate ::= SEQUENCE { + uEaggregateMaximumBitRateDownlink BitRate, + uEaggregateMaximumBitRateUplink BitRate, + iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrate-ExtIEs} } OPTIONAL, + ... +} + +UEAggregate-MaximumBitrate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-extended-uEaggregateMaximumBitRateDownlink CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| + { ID id-extended-uEaggregateMaximumBitRateUplink CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}, + ... +} + +UEAppLayerMeasConfig ::= SEQUENCE { + containerForAppLayerMeasConfig OCTET STRING (SIZE(1..1000)), + areaScopeOfQMC AreaScopeOfQMC, + iE-Extensions ProtocolExtensionContainer { {UEAppLayerMeasConfig-ExtIEs} } OPTIONAL, + ... +} + +UEAppLayerMeasConfig-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + {ID id-serviceType CRITICALITY ignore EXTENSION ServiceType PRESENCE optional}, + ... +} + +UE-ContextKeptIndicator ::= ENUMERATED { + true, + ... +} + +UEID ::= BIT STRING (SIZE (16)) + +UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item + +UE-HistoryInformationFromTheUE ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the VisitedCellInfoList field contained in the UEInformationResponse message as defined in TS 36.331 [9] + +UE-S1AP-ID ::= INTEGER (0.. 4294967295) + +UE-X2AP-ID ::= INTEGER (0..4095) + +UE-X2AP-ID-Extension ::= INTEGER (0..4095, ...) + +UE-RLF-Report-Container::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the RLF-Report-r9 field contained in the UEInformationResponse message as defined in TS 36.331 [9] + +UE-RLF-Report-Container-for-extended-bands ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the RLF-Report-v9e0 field contained in the UEInformationResponse message as defined in TS 36.331 [9] + +UESecurityCapabilities ::= SEQUENCE { + encryptionAlgorithms EncryptionAlgorithms, + integrityProtectionAlgorithms IntegrityProtectionAlgorithms, + iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL, +... +} + +UESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UESidelinkAggregateMaximumBitRate ::= SEQUENCE { + uESidelinkAggregateMaximumBitRate BitRate, + iE-Extensions ProtocolExtensionContainer { {UE-Sidelink-Aggregate-MaximumBitRate-ExtIEs} } OPTIONAL, + ... +} + +UE-Sidelink-Aggregate-MaximumBitRate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UEsToBeResetList ::= SEQUENCE (SIZE (1.. maxUEsinengNBDU)) OF UEsToBeResetList-Item + +UEsToBeResetList-Item::= SEQUENCE { + meNB-ID UE-X2AP-ID, + meNB-ID-ext UE-X2AP-ID-Extension OPTIONAL, + sgNB-ID SgNB-UE-X2AP-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { UEsToBeResetList-Item-ExtIEs} } OPTIONAL, + ... +} + +UEsToBeResetList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ULandDLSharing ::= SEQUENCE{ + uLResourcesULandDLSharing ULResourcesULandDLSharing, + dLResourcesULandDLSharing DLResourcesULandDLSharing, + ... +} + +ULConfiguration::= SEQUENCE { + uL-PDCP UL-UE-Configuration, + iE-Extensions ProtocolExtensionContainer { { ULConfiguration-ExtIEs} } OPTIONAL, + ... +} + +ULConfiguration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UL-UE-Configuration::= ENUMERATED { no-data, shared, only, ... } + +UL-GBR-PRB-usage::= INTEGER (0..100) + +UL-HighInterferenceIndicationInfo ::= SEQUENCE (SIZE(1..maxCellineNB)) OF UL-HighInterferenceIndicationInfo-Item + +UL-HighInterferenceIndicationInfo-Item ::= SEQUENCE { + target-Cell-ID ECGI, + ul-interferenceindication UL-HighInterferenceIndication, + iE-Extensions ProtocolExtensionContainer { { UL-HighInterferenceIndicationInfo-Item-ExtIEs} } OPTIONAL, + ... +} + +UL-HighInterferenceIndicationInfo-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UL-HighInterferenceIndication ::= BIT STRING (SIZE(1..110, ...)) + +UL-InterferenceOverloadIndication ::= SEQUENCE (SIZE(1..maxnoofPRBs)) OF UL-InterferenceOverloadIndication-Item + +UL-InterferenceOverloadIndication-Item ::= ENUMERATED { + high-interference, + medium-interference, + low-interference, + ... +} + +UL-non-GBR-PRB-usage::= INTEGER (0..100) + +ULOnlySharing ::= SEQUENCE{ + uLResourceBitmapULOnlySharing DataTrafficResources, + ... +} + +ULResourceBitmapULandDLSharing ::= DataTrafficResources + + +ULResourcesULandDLSharing ::= CHOICE { + unchanged NULL, + changed ULResourceBitmapULandDLSharing, + ... +} + +UL-scheduling-PDCCH-CCE-usage::= INTEGER (0..100) + +UL-Total-PRB-usage::= INTEGER (0..100) + +UsableABSInformation ::= CHOICE { + fdd UsableABSInformationFDD, + tdd UsableABSInformationTDD, + ... +} + +UsableABSInformationFDD ::= SEQUENCE { + usable-abs-pattern-info BIT STRING (SIZE(40)), + iE-Extensions ProtocolExtensionContainer { { UsableABSInformationFDD-ExtIEs} } OPTIONAL, + ... +} + +UsableABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UsableABSInformationTDD ::= SEQUENCE { + usaable-abs-pattern-info BIT STRING (SIZE(1..70, ...)), + iE-Extensions ProtocolExtensionContainer { { UsableABSInformationTDD-ExtIEs} } OPTIONAL, + ... +} + +UsableABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +UserPlaneTrafficActivityReport ::= ENUMERATED {inactive, re-activated, ...} + +-- V + +V2XServicesAuthorized ::= SEQUENCE { + vehicleUE VehicleUE OPTIONAL, +pedestrianUE PedestrianUE OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {V2XServicesAuthorized-ExtIEs} } OPTIONAL, + ... +} + +V2XServicesAuthorized-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +VehicleUE ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +PedestrianUE ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +-- W + +WidebandCQI ::= SEQUENCE { + widebandCQICodeword0 INTEGER (0..15, ...), + widebandCQICodeword1 WidebandCQICodeword1 OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { WidebandCQI-ExtIEs} } OPTIONAL, + ... +} + +WidebandCQI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +WidebandCQICodeword1::= CHOICE { + four-bitCQI INTEGER (0..15, ...), + three-bitSpatialDifferentialCQI INTEGER (0..7, ...), + ... +} + +WTID ::= CHOICE { + wTID-Type1 WTID-Type1, + wTID-Type2 WTID-Long-Type2, + ... +} + +WTID-Type1 ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + shortWTID BIT STRING (SIZE(24)), + ... +} + +WTID-Long-Type2 ::= BIT STRING (SIZE(48)) + +WT-UE-XwAP-ID ::= OCTET STRING (SIZE (3)) + +-- X + +X2BenefitValue ::= INTEGER (1..8, ...) + +-- Y +-- Z + +END + + +-- ************************************************************** +-- +-- Common definitions +-- +-- ************************************************************** + +X2AP-CommonDataTypes { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-CommonDataTypes (3) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- Extension constants +-- +-- ************************************************************** + +maxPrivateIEs INTEGER ::= 65535 +maxProtocolExtensions INTEGER ::= 65535 +maxProtocolIEs INTEGER ::= 65535 + +-- ************************************************************** +-- +-- Common Data Types +-- +-- ************************************************************** + +Criticality ::= ENUMERATED { reject, ignore, notify } + +Presence ::= ENUMERATED { optional, conditional, mandatory } + +PrivateIE-ID ::= CHOICE { + local INTEGER (0.. maxPrivateIEs), + global OBJECT IDENTIFIER +} + +ProcedureCode ::= INTEGER (0..255) + + +ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs) + + +TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome} + +END + + +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +X2AP-Constants { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Constants (4) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + ProcedureCode, + ProtocolIE-ID +FROM X2AP-CommonDataTypes; + +-- ************************************************************** +-- +-- Elementary Procedures +-- +-- ************************************************************** + +id-handoverPreparation ProcedureCode ::= 0 +id-handoverCancel ProcedureCode ::= 1 +id-loadIndication ProcedureCode ::= 2 +id-errorIndication ProcedureCode ::= 3 +id-snStatusTransfer ProcedureCode ::= 4 +id-uEContextRelease ProcedureCode ::= 5 +id-x2Setup ProcedureCode ::= 6 +id-reset ProcedureCode ::= 7 +id-eNBConfigurationUpdate ProcedureCode ::= 8 +id-resourceStatusReportingInitiation ProcedureCode ::= 9 +id-resourceStatusReporting ProcedureCode ::= 10 +id-privateMessage ProcedureCode ::= 11 +id-mobilitySettingsChange ProcedureCode ::= 12 +id-rLFIndication ProcedureCode ::= 13 +id-handoverReport ProcedureCode ::= 14 +id-cellActivation ProcedureCode ::= 15 +id-x2Release ProcedureCode ::= 16 +id-x2APMessageTransfer ProcedureCode ::= 17 +id-x2Removal ProcedureCode ::= 18 +id-seNBAdditionPreparation ProcedureCode ::= 19 +id-seNBReconfigurationCompletion ProcedureCode ::= 20 +id-meNBinitiatedSeNBModificationPreparation ProcedureCode ::= 21 +id-seNBinitiatedSeNBModification ProcedureCode ::= 22 +id-meNBinitiatedSeNBRelease ProcedureCode ::= 23 +id-seNBinitiatedSeNBRelease ProcedureCode ::= 24 +id-seNBCounterCheck ProcedureCode ::= 25 +id-retrieveUEContext ProcedureCode ::= 26 +id-sgNBAdditionPreparation ProcedureCode ::= 27 +id-sgNBReconfigurationCompletion ProcedureCode ::= 28 +id-meNBinitiatedSgNBModificationPreparation ProcedureCode ::= 29 +id-sgNBinitiatedSgNBModification ProcedureCode ::= 30 +id-meNBinitiatedSgNBRelease ProcedureCode ::= 31 +id-sgNBinitiatedSgNBRelease ProcedureCode ::= 32 +id-sgNBCounterCheck ProcedureCode ::= 33 +id-sgNBChange ProcedureCode ::= 34 +id-rRCTransfer ProcedureCode ::= 35 +id-endcX2Setup ProcedureCode ::= 36 +id-endcConfigurationUpdate ProcedureCode ::= 37 +id-secondaryRATDataUsageReport ProcedureCode ::= 38 +id-endcCellActivation ProcedureCode ::= 39 +id-endcPartialReset ProcedureCode ::= 40 +id-eUTRANRCellResourceCoordination ProcedureCode ::= 41 +id-SgNBActivityNotification ProcedureCode ::= 42 +id-endcX2Removal ProcedureCode ::= 43 + +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** + +maxEARFCN INTEGER ::= 65535 +maxEARFCNPlusOne INTEGER ::= 65536 +newmaxEARFCN INTEGER ::= 262143 +maxInterfaces INTEGER ::= 16 +maxCellineNB INTEGER ::= 256 +maxnoofBands INTEGER ::= 16 +maxnoofBearers INTEGER ::= 256 +maxNrOfErrors INTEGER ::= 256 +maxnoofPDCP-SN INTEGER ::= 16 +maxnoofEPLMNs INTEGER ::= 15 +maxnoofEPLMNsPlusOne INTEGER ::= 16 +maxnoofForbLACs INTEGER ::= 4096 +maxnoofForbTACs INTEGER ::= 4096 +maxnoofBPLMNs INTEGER ::= 6 +maxnoofNeighbours INTEGER ::= 512 +maxnoofPRBs INTEGER ::= 110 +maxPools INTEGER ::= 16 +maxnoofCells INTEGER ::= 16 +maxnoofMBSFN INTEGER ::= 8 +maxFailedMeasObjects INTEGER ::= 32 +maxnoofCellIDforMDT INTEGER ::= 32 +maxnoofTAforMDT INTEGER ::= 8 +maxnoofMBMSServiceAreaIdentities INTEGER ::= 256 +maxnoofMDTPLMNs INTEGER ::= 16 +maxnoofCoMPHypothesisSet INTEGER ::= 256 +maxnoofCoMPCells INTEGER ::= 32 +maxUEReport INTEGER ::= 128 +maxCellReport INTEGER ::= 9 +maxnoofPA INTEGER ::= 3 +maxCSIProcess INTEGER ::= 4 +maxCSIReport INTEGER ::= 2 +maxSubband INTEGER ::= 14 +maxofNRNeighbours INTEGER ::= 1024 +maxCellinengNB INTEGER ::= 16384 +-- maxnoofNRCarriers INTEGER ::= 32 +maxnooftimeperiods INTEGER ::= 2 +maxnoofCellIDforQMC INTEGER ::= 32 +maxnoofTAforQMC INTEGER ::= 8 +maxnoofPLMNforQMC INTEGER ::= 16 +maxUEsinengNBDU INTEGER ::= 8192 +maxnoofProtectedResourcePatterns INTEGER ::= 16 +maxnoNRcellsSpectrumSharingWithE-UTRA INTEGER ::= 64 +maxnoofNrCellBands INTEGER ::= 32 + +-- ************************************************************** +-- +-- IEs +-- +-- ************************************************************** + +id-E-RABs-Admitted-Item ProtocolIE-ID ::= 0 +id-E-RABs-Admitted-List ProtocolIE-ID ::= 1 +id-E-RAB-Item ProtocolIE-ID ::= 2 +id-E-RABs-NotAdmitted-List ProtocolIE-ID ::= 3 +id-E-RABs-ToBeSetup-Item ProtocolIE-ID ::= 4 +id-Cause ProtocolIE-ID ::= 5 +id-CellInformation ProtocolIE-ID ::= 6 +id-CellInformation-Item ProtocolIE-ID ::= 7 +id-New-eNB-UE-X2AP-ID ProtocolIE-ID ::= 9 +id-Old-eNB-UE-X2AP-ID ProtocolIE-ID ::= 10 +id-TargetCell-ID ProtocolIE-ID ::= 11 +id-TargeteNBtoSource-eNBTransparentContainer ProtocolIE-ID ::= 12 +id-TraceActivation ProtocolIE-ID ::= 13 +id-UE-ContextInformation ProtocolIE-ID ::= 14 +id-UE-HistoryInformation ProtocolIE-ID ::= 15 +id-UE-X2AP-ID ProtocolIE-ID ::= 16 +id-CriticalityDiagnostics ProtocolIE-ID ::= 17 +id-E-RABs-SubjectToStatusTransfer-List ProtocolIE-ID ::= 18 +id-E-RABs-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 19 +id-ServedCells ProtocolIE-ID ::= 20 +id-GlobalENB-ID ProtocolIE-ID ::= 21 +id-TimeToWait ProtocolIE-ID ::= 22 +id-GUMMEI-ID ProtocolIE-ID ::= 23 +id-GUGroupIDList ProtocolIE-ID ::= 24 +id-ServedCellsToAdd ProtocolIE-ID ::= 25 +id-ServedCellsToModify ProtocolIE-ID ::= 26 +id-ServedCellsToDelete ProtocolIE-ID ::= 27 +id-Registration-Request ProtocolIE-ID ::= 28 +id-CellToReport ProtocolIE-ID ::= 29 +id-ReportingPeriodicity ProtocolIE-ID ::= 30 +id-CellToReport-Item ProtocolIE-ID ::= 31 +id-CellMeasurementResult ProtocolIE-ID ::= 32 +id-CellMeasurementResult-Item ProtocolIE-ID ::= 33 +id-GUGroupIDToAddList ProtocolIE-ID ::= 34 +id-GUGroupIDToDeleteList ProtocolIE-ID ::= 35 +id-SRVCCOperationPossible ProtocolIE-ID ::= 36 +id-Measurement-ID ProtocolIE-ID ::= 37 +id-ReportCharacteristics ProtocolIE-ID ::= 38 +id-ENB1-Measurement-ID ProtocolIE-ID ::= 39 +id-ENB2-Measurement-ID ProtocolIE-ID ::= 40 +id-Number-of-Antennaports ProtocolIE-ID ::= 41 +id-CompositeAvailableCapacityGroup ProtocolIE-ID ::= 42 +id-ENB1-Cell-ID ProtocolIE-ID ::= 43 +id-ENB2-Cell-ID ProtocolIE-ID ::= 44 +id-ENB2-Proposed-Mobility-Parameters ProtocolIE-ID ::= 45 +id-ENB1-Mobility-Parameters ProtocolIE-ID ::= 46 +id-ENB2-Mobility-Parameters-Modification-Range ProtocolIE-ID ::= 47 +id-FailureCellPCI ProtocolIE-ID ::= 48 +id-Re-establishmentCellECGI ProtocolIE-ID ::= 49 +id-FailureCellCRNTI ProtocolIE-ID ::= 50 +id-ShortMAC-I ProtocolIE-ID ::= 51 +id-SourceCellECGI ProtocolIE-ID ::= 52 +id-FailureCellECGI ProtocolIE-ID ::= 53 +id-HandoverReportType ProtocolIE-ID ::= 54 +id-PRACH-Configuration ProtocolIE-ID ::= 55 +id-MBSFN-Subframe-Info ProtocolIE-ID ::= 56 +id-ServedCellsToActivate ProtocolIE-ID ::= 57 +id-ActivatedCellList ProtocolIE-ID ::= 58 +id-DeactivationIndication ProtocolIE-ID ::= 59 +id-UE-RLF-Report-Container ProtocolIE-ID ::= 60 +id-ABSInformation ProtocolIE-ID ::= 61 +id-InvokeIndication ProtocolIE-ID ::= 62 +id-ABS-Status ProtocolIE-ID ::= 63 +id-PartialSuccessIndicator ProtocolIE-ID ::= 64 +id-MeasurementInitiationResult-List ProtocolIE-ID ::= 65 +id-MeasurementInitiationResult-Item ProtocolIE-ID ::= 66 +id-MeasurementFailureCause-Item ProtocolIE-ID ::= 67 +id-CompleteFailureCauseInformation-List ProtocolIE-ID ::= 68 +id-CompleteFailureCauseInformation-Item ProtocolIE-ID ::= 69 +id-CSG-Id ProtocolIE-ID ::= 70 +id-CSGMembershipStatus ProtocolIE-ID ::= 71 +id-MDTConfiguration ProtocolIE-ID ::= 72 +id-ManagementBasedMDTallowed ProtocolIE-ID ::= 74 +id-RRCConnSetupIndicator ProtocolIE-ID ::= 75 +id-NeighbourTAC ProtocolIE-ID ::= 76 +id-Time-UE-StayedInCell-EnhancedGranularity ProtocolIE-ID ::= 77 +id-RRCConnReestabIndicator ProtocolIE-ID ::= 78 +id-MBMS-Service-Area-List ProtocolIE-ID ::= 79 +id-HO-cause ProtocolIE-ID ::= 80 +id-TargetCellInUTRAN ProtocolIE-ID ::= 81 +id-MobilityInformation ProtocolIE-ID ::= 82 +id-SourceCellCRNTI ProtocolIE-ID ::= 83 +id-MultibandInfoList ProtocolIE-ID ::= 84 +id-M3Configuration ProtocolIE-ID ::= 85 +id-M4Configuration ProtocolIE-ID ::= 86 +id-M5Configuration ProtocolIE-ID ::= 87 +id-MDT-Location-Info ProtocolIE-ID ::= 88 +id-ManagementBasedMDTPLMNList ProtocolIE-ID ::= 89 +id-SignallingBasedMDTPLMNList ProtocolIE-ID ::= 90 +id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID ::= 91 +id-ULCOUNTValueExtended ProtocolIE-ID ::= 92 +id-DLCOUNTValueExtended ProtocolIE-ID ::= 93 +id-eARFCNExtension ProtocolIE-ID ::= 94 +id-UL-EARFCNExtension ProtocolIE-ID ::= 95 +id-DL-EARFCNExtension ProtocolIE-ID ::= 96 +id-AdditionalSpecialSubframe-Info ProtocolIE-ID ::= 97 +id-Masked-IMEISV ProtocolIE-ID ::= 98 +id-IntendedULDLConfiguration ProtocolIE-ID ::= 99 +id-ExtendedULInterferenceOverloadInfo ProtocolIE-ID ::= 100 +id-RNL-Header ProtocolIE-ID ::= 101 +id-x2APMessage ProtocolIE-ID ::= 102 +id-ProSeAuthorized ProtocolIE-ID ::= 103 +id-ExpectedUEBehaviour ProtocolIE-ID ::= 104 +id-UE-HistoryInformationFromTheUE ProtocolIE-ID ::= 105 +id-DynamicDLTransmissionInformation ProtocolIE-ID ::= 106 +id-UE-RLF-Report-Container-for-extended-bands ProtocolIE-ID ::= 107 +id-CoMPInformation ProtocolIE-ID ::= 108 +id-ReportingPeriodicityRSRPMR ProtocolIE-ID ::= 109 +id-RSRPMRList ProtocolIE-ID ::= 110 +id-MeNB-UE-X2AP-ID ProtocolIE-ID ::= 111 +id-SeNB-UE-X2AP-ID ProtocolIE-ID ::= 112 +id-UE-SecurityCapabilities ProtocolIE-ID ::= 113 +id-SeNBSecurityKey ProtocolIE-ID ::= 114 +id-SeNBUEAggregateMaximumBitRate ProtocolIE-ID ::= 115 +id-ServingPLMN ProtocolIE-ID ::= 116 +id-E-RABs-ToBeAdded-List ProtocolIE-ID ::= 117 +id-E-RABs-ToBeAdded-Item ProtocolIE-ID ::= 118 +id-MeNBtoSeNBContainer ProtocolIE-ID ::= 119 +id-E-RABs-Admitted-ToBeAdded-List ProtocolIE-ID ::= 120 +id-E-RABs-Admitted-ToBeAdded-Item ProtocolIE-ID ::= 121 +id-SeNBtoMeNBContainer ProtocolIE-ID ::= 122 +id-ResponseInformationSeNBReconfComp ProtocolIE-ID ::= 123 +id-UE-ContextInformationSeNBModReq ProtocolIE-ID ::= 124 +id-E-RABs-ToBeAdded-ModReqItem ProtocolIE-ID ::= 125 +id-E-RABs-ToBeModified-ModReqItem ProtocolIE-ID ::= 126 +id-E-RABs-ToBeReleased-ModReqItem ProtocolIE-ID ::= 127 +id-E-RABs-Admitted-ToBeAdded-ModAckList ProtocolIE-ID ::= 128 +id-E-RABs-Admitted-ToBeModified-ModAckList ProtocolIE-ID ::= 129 +id-E-RABs-Admitted-ToBeReleased-ModAckList ProtocolIE-ID ::= 130 +id-E-RABs-Admitted-ToBeAdded-ModAckItem ProtocolIE-ID ::= 131 +id-E-RABs-Admitted-ToBeModified-ModAckItem ProtocolIE-ID ::= 132 +id-E-RABs-Admitted-ToBeReleased-ModAckItem ProtocolIE-ID ::= 133 +id-E-RABs-ToBeReleased-ModReqd ProtocolIE-ID ::= 134 +id-E-RABs-ToBeReleased-ModReqdItem ProtocolIE-ID ::= 135 +id-SCGChangeIndication ProtocolIE-ID ::= 136 +id-E-RABs-ToBeReleased-List-RelReq ProtocolIE-ID ::= 137 +id-E-RABs-ToBeReleased-RelReqItem ProtocolIE-ID ::= 138 +id-E-RABs-ToBeReleased-List-RelConf ProtocolIE-ID ::= 139 +id-E-RABs-ToBeReleased-RelConfItem ProtocolIE-ID ::= 140 +id-E-RABs-SubjectToCounterCheck-List ProtocolIE-ID ::= 141 +id-E-RABs-SubjectToCounterCheckItem ProtocolIE-ID ::= 142 +id-CoverageModificationList ProtocolIE-ID ::= 143 +id-ReportingPeriodicityCSIR ProtocolIE-ID ::= 145 +id-CSIReportList ProtocolIE-ID ::= 146 +id-UEID ProtocolIE-ID ::= 147 +id-enhancedRNTP ProtocolIE-ID ::= 148 +id-ProSeUEtoNetworkRelaying ProtocolIE-ID ::= 149 +id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ProtocolIE-ID ::= 150 +id-ULCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 151 +id-DLCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 152 +id-UE-ContextReferenceAtSeNB ProtocolIE-ID ::= 153 +id-UE-ContextKeptIndicator ProtocolIE-ID ::= 154 +id-New-eNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 155 +id-Old-eNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 156 +id-MeNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 157 +id-SeNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 158 +id-LHN-ID ProtocolIE-ID ::= 159 +id-FreqBandIndicatorPriority ProtocolIE-ID ::= 160 +id-M6Configuration ProtocolIE-ID ::= 161 +id-M7Configuration ProtocolIE-ID ::= 162 +id-Tunnel-Information-for-BBF ProtocolIE-ID ::= 163 +id-SIPTO-BearerDeactivationIndication ProtocolIE-ID ::= 164 +id-GW-TransportLayerAddress ProtocolIE-ID ::= 165 +id-Correlation-ID ProtocolIE-ID ::= 166 +id-SIPTO-Correlation-ID ProtocolIE-ID ::= 167 +id-SIPTO-L-GW-TransportLayerAddress ProtocolIE-ID ::= 168 +id-X2RemovalThreshold ProtocolIE-ID ::= 169 +id-CellReportingIndicator ProtocolIE-ID ::= 170 +id-BearerType ProtocolIE-ID ::= 171 +id-resumeID ProtocolIE-ID ::= 172 +id-UE-ContextInformationRetrieve ProtocolIE-ID ::= 173 +id-E-RABs-ToBeSetupRetrieve-Item ProtocolIE-ID ::= 174 +id-NewEUTRANCellIdentifier ProtocolIE-ID ::= 175 +id-V2XServicesAuthorized ProtocolIE-ID ::= 176 +id-OffsetOfNbiotChannelNumberToDL-EARFCN ProtocolIE-ID ::= 177 +id-OffsetOfNbiotChannelNumberToUL-EARFCN ProtocolIE-ID ::= 178 +id-AdditionalSpecialSubframeExtension-Info ProtocolIE-ID ::= 179 +id-BandwidthReducedSI ProtocolIE-ID ::= 180 +id-MakeBeforeBreakIndicator ProtocolIE-ID ::= 181 +id-UE-ContextReferenceAtWT ProtocolIE-ID ::= 182 +id-WT-UE-ContextKeptIndicator ProtocolIE-ID ::= 183 +id-UESidelinkAggregateMaximumBitRate ProtocolIE-ID ::= 184 +id-uL-GTPtunnelEndpoint ProtocolIE-ID ::= 185 +id-DL-scheduling-PDCCH-CCE-usage ProtocolIE-ID ::= 193 +id-UL-scheduling-PDCCH-CCE-usage ProtocolIE-ID ::= 194 +id-UEAppLayerMeasConfig ProtocolIE-ID ::= 195 +id-extended-e-RAB-MaximumBitrateDL ProtocolIE-ID ::= 196 +id-extended-e-RAB-MaximumBitrateUL ProtocolIE-ID ::= 197 +id-extended-e-RAB-GuaranteedBitrateDL ProtocolIE-ID ::= 198 +id-extended-e-RAB-GuaranteedBitrateUL ProtocolIE-ID ::= 199 +id-extended-uEaggregateMaximumBitRateDownlink ProtocolIE-ID ::= 200 +id-extended-uEaggregateMaximumBitRateUplink ProtocolIE-ID ::= 201 +id-NRrestriction ProtocolIE-ID ::= 202 +id-SgNBSecurityKey ProtocolIE-ID ::= 203 +id-SgNBUEAggregateMaximumBitRate ProtocolIE-ID ::= 204 +id-E-RABs-ToBeAdded-SgNBAddReqList ProtocolIE-ID ::= 205 +id-MeNBtoSgNBContainer ProtocolIE-ID ::= 206 +id-SgNB-UE-X2AP-ID ProtocolIE-ID ::= 207 +id-RequestedSplitSRBs ProtocolIE-ID ::= 208 +id-E-RABs-ToBeAdded-SgNBAddReq-Item ProtocolIE-ID ::= 209 +id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList ProtocolIE-ID ::= 210 +id-SgNBtoMeNBContainer ProtocolIE-ID ::= 211 +id-AdmittedSplitSRBs ProtocolIE-ID ::= 212 +id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item ProtocolIE-ID ::= 213 +id-ResponseInformationSgNBReconfComp ProtocolIE-ID ::= 214 +id-UE-ContextInformation-SgNBModReq ProtocolIE-ID ::= 215 +id-E-RABs-ToBeAdded-SgNBModReq-Item ProtocolIE-ID ::= 216 +id-E-RABs-ToBeModified-SgNBModReq-Item ProtocolIE-ID ::= 217 +id-E-RABs-ToBeReleased-SgNBModReq-Item ProtocolIE-ID ::= 218 +id-E-RABs-Admitted-ToBeAdded-SgNBModAckList ProtocolIE-ID ::= 219 +id-E-RABs-Admitted-ToBeModified-SgNBModAckList ProtocolIE-ID ::= 220 +id-E-RABs-Admitted-ToBeReleased-SgNBModAckList ProtocolIE-ID ::= 221 +id-E-RABs-Admitted-ToBeAdded-SgNBModAck-Item ProtocolIE-ID ::= 222 +id-E-RABs-Admitted-ToBeModified-SgNBModAck-Item ProtocolIE-ID ::= 223 +id-E-RABs-Admitted-ToBeReleased-SgNBModAck-Item ProtocolIE-ID ::= 224 +id-E-RABs-ToBeReleased-SgNBModReqdList ProtocolIE-ID ::= 225 +id-E-RABs-ToBeModified-SgNBModReqdList ProtocolIE-ID ::= 226 +id-E-RABs-ToBeReleased-SgNBModReqd-Item ProtocolIE-ID ::= 227 +id-E-RABs-ToBeModified-SgNBModReqd-Item ProtocolIE-ID ::= 228 +id-E-RABs-ToBeReleased-SgNBChaConfList ProtocolIE-ID ::= 229 +id-E-RABs-ToBeReleased-SgNBChaConf-Item ProtocolIE-ID ::= 230 +id-E-RABs-ToBeReleased-SgNBRelReqList ProtocolIE-ID ::= 231 +id-E-RABs-ToBeReleased-SgNBRelReq-Item ProtocolIE-ID ::= 232 +id-E-RABs-ToBeReleased-SgNBRelConfList ProtocolIE-ID ::= 233 +id-E-RABs-ToBeReleased-SgNBRelConf-Item ProtocolIE-ID ::= 234 +id-E-RABs-SubjectToSgNBCounterCheck-List ProtocolIE-ID ::= 235 +id-E-RABs-SubjectToSgNBCounterCheck-Item ProtocolIE-ID ::= 236 +id-RRCContainer ProtocolIE-ID ::= 237 +id-SRBType ProtocolIE-ID ::= 238 +id-Target-SgNB-ID ProtocolIE-ID ::= 239 +id-HandoverRestrictionList ProtocolIE-ID ::= 240 +id-SCGConfigurationQuery ProtocolIE-ID ::= 241 +id-SplitSRB ProtocolIE-ID ::= 242 +id-UENRMeasurement ProtocolIE-ID ::= 243 +id-InitiatingNodeType-EndcX2Setup ProtocolIE-ID ::= 244 +id-InitiatingNodeType-EndcConfigUpdate ProtocolIE-ID ::= 245 +id-RespondingNodeType-EndcX2Setup ProtocolIE-ID ::= 246 +id-RespondingNodeType-EndcConfigUpdate ProtocolIE-ID ::= 247 +id-NRUESecurityCapabilities ProtocolIE-ID ::= 248 +id-PDCPChangeIndication ProtocolIE-ID ::= 249 +id-ServedEUTRAcellsENDCX2ManagementList ProtocolIE-ID ::= 250 +id-CellAssistanceInformation ProtocolIE-ID ::= 251 +id-Globalen-gNB-ID ProtocolIE-ID ::= 252 +id-ServedNRcellsENDCX2ManagementList ProtocolIE-ID ::= 253 +id-UE-ContextReferenceAtSgNB ProtocolIE-ID ::= 254 +id-SecondaryRATUsageReport ProtocolIE-ID ::= 255 +id-ActivationID ProtocolIE-ID ::= 256 +id-MeNBResourceCoordinationInformation ProtocolIE-ID ::= 257 +id-SgNBResourceCoordinationInformation ProtocolIE-ID ::= 258 +id-ServedEUTRAcellsToModifyListENDCConfUpd ProtocolIE-ID ::= 259 +id-ServedEUTRAcellsToDeleteListENDCConfUpd ProtocolIE-ID ::= 260 +id-ServedNRcellsToModifyListENDCConfUpd ProtocolIE-ID ::= 261 +id-ServedNRcellsToDeleteListENDCConfUpd ProtocolIE-ID ::= 262 +id-E-RABUsageReport-Item ProtocolIE-ID ::= 263 +id-Old-SgNB-UE-X2AP-ID ProtocolIE-ID ::= 264 +id-SecondaryRATUsageReportList ProtocolIE-ID ::= 265 +id-SecondaryRATUsageReport-Item ProtocolIE-ID ::= 266 +id-ServedNRCellsToActivate ProtocolIE-ID ::= 267 +id-ActivatedNRCellList ProtocolIE-ID ::= 268 +id-SelectedPLMN ProtocolIE-ID ::= 269 +id-UEs-ToBeReset ProtocolIE-ID ::= 270 +id-UEs-Admitted-ToBeReset ProtocolIE-ID ::= 271 +id-RRCConfigIndication ProtocolIE-ID ::= 272 +id-DownlinkPacketLossRate ProtocolIE-ID ::= 273 +id-UplinkPacketLossRate ProtocolIE-ID ::= 274 +id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 275 +id-serviceType ProtocolIE-ID ::= 276 +id-AerialUEsubscriptionInformation ProtocolIE-ID ::= 277 +id-SGNB-Addition-Trigger-Ind ProtocolIE-ID ::= 278 +id-MeNBCell-ID ProtocolIE-ID ::= 279 +id-RequestedSplitSRBsrelease ProtocolIE-ID ::= 280 +id-AdmittedSplitSRBsrelease ProtocolIE-ID ::= 281 +id-NRS-NSSS-PowerOffset ProtocolIE-ID ::= 282 +id-NSSS-NumOccasionDifferentPrecoder ProtocolIE-ID ::= 283 +id-ProtectedEUTRAResourceIndication ProtocolIE-ID ::= 284 +id-InitiatingNodeType-EutranrCellResourceCoordination ProtocolIE-ID ::= 285 +id-RespondingNodeType-EutranrCellResourceCoordination ProtocolIE-ID ::= 286 +id-DataTrafficResourceIndication ProtocolIE-ID ::= 287 +id-SpectrumSharingGroupID ProtocolIE-ID ::= 288 +id-ListofEUTRACellsinEUTRACoordinationReq ProtocolIE-ID ::= 289 +id-ListofEUTRACellsinEUTRACoordinationResp ProtocolIE-ID ::= 290 +id-ListofEUTRACellsinNRCoordinationReq ProtocolIE-ID ::= 291 +id-ListofNRCellsinNRCoordinationReq ProtocolIE-ID ::= 292 +id-ListofNRCellsinNRCoordinationResp ProtocolIE-ID ::= 293 +id-E-RABs-AdmittedToBeModified-SgNBModConfList ProtocolIE-ID ::= 294 +id-E-RABs-AdmittedToBeModified-SgNBModConf-Item ProtocolIE-ID ::= 295 +id-UEContextLevelUserPlaneActivity ProtocolIE-ID ::= 296 +id-ERABActivityNotifyItemList ProtocolIE-ID ::= 297 +id-InitiatingNodeType-EndcX2Removal ProtocolIE-ID ::= 298 +id-RespondingNodeType-EndcX2Removal ProtocolIE-ID ::= 299 + +END + + +-- ************************************************************** +-- +-- Container definitions +-- +-- ************************************************************** + +X2AP-Containers { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Containers (5) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + maxPrivateIEs, + maxProtocolExtensions, + maxProtocolIEs, + Criticality, + Presence, + PrivateIE-ID, + ProtocolIE-ID +FROM X2AP-CommonDataTypes; + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +X2AP-PROTOCOL-IES ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +X2AP-PROTOCOL-IES-PAIR ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &firstCriticality Criticality, + &FirstValue, + &secondCriticality Criticality, + &SecondValue, + &presence Presence +} +WITH SYNTAX { + ID &id + FIRST CRITICALITY &firstCriticality + FIRST TYPE &FirstValue + SECOND CRITICALITY &secondCriticality + SECOND TYPE &SecondValue + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol Extensions +-- +-- ************************************************************** + +X2AP-PROTOCOL-EXTENSION ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Extension, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + EXTENSION &Extension + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Private IEs +-- +-- ************************************************************** + +X2AP-PRIVATE-IES ::= CLASS { + &id PrivateIE-ID, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Container for Protocol IEs +-- +-- ************************************************************** + +ProtocolIE-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Single-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Field {X2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-IES.&id ({IEsSetParam}), + criticality X2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), + value X2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Protocol IE Pairs +-- +-- ************************************************************** + +ProtocolIE-ContainerPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-FieldPair {{IEsSetParam}} + +ProtocolIE-FieldPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), + firstCriticality X2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), + firstValue X2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), + secondCriticality X2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), + secondValue X2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container Lists for Protocol IE Containers +-- +-- ************************************************************** + +ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-Container {{IEsSetParam}} + +ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-ContainerPair {{IEsSetParam}} + +-- ************************************************************** +-- +-- Container for Protocol Extensions +-- +-- ************************************************************** + +ProtocolExtensionContainer {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= + SEQUENCE (SIZE (1..maxProtocolExtensions)) OF + ProtocolExtensionField {{ExtensionSetParam}} + +ProtocolExtensionField {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), + criticality X2AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), + extensionValue X2AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Private IEs +-- +-- ************************************************************** + +PrivateIE-Container {X2AP-PRIVATE-IES : IEsSetParam} ::= + SEQUENCE (SIZE (1..maxPrivateIEs)) OF + PrivateIE-Field {{IEsSetParam}} + +PrivateIE-Field {X2AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { + id X2AP-PRIVATE-IES.&id ({IEsSetParam}), + criticality X2AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), + value X2AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) +} + +END \ No newline at end of file diff --git a/openair2/X2AP/MESSAGES/ASN1/R8/x2ap-8.9.0.asn1 b/openair2/X2AP/MESSAGES/ASN1/R8/x2ap-8.9.0.asn1 new file mode 100755 index 0000000000..8bcea7bc4a --- /dev/null +++ b/openair2/X2AP/MESSAGES/ASN1/R8/x2ap-8.9.0.asn1 @@ -0,0 +1,2201 @@ +-- ************************************************************** +-- +-- Elementary Procedure definitions +-- +-- ************************************************************** + +X2AP-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Descriptions (0) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + ProcedureCode +FROM X2AP-CommonDataTypes + + + ENBConfigurationUpdate, + ENBConfigurationUpdateAcknowledge, + ENBConfigurationUpdateFailure, + ErrorIndication, + HandoverCancel, + HandoverPreparationFailure, + HandoverRequest, + HandoverRequestAcknowledge, + LoadInformation, + PrivateMessage, + ResetRequest, + ResetResponse, + ResourceStatusFailure, + ResourceStatusRequest, + ResourceStatusResponse, + ResourceStatusUpdate, + SNStatusTransfer, + UEContextRelease, + X2SetupFailure, X2SetupRequest, + X2SetupResponse + + + + +FROM X2AP-PDU-Contents + + id-eNBConfigurationUpdate, + id-errorIndication, + id-handoverCancel, + id-handoverPreparation, + + id-loadIndication, + id-privateMessage, + id-reset, + + id-resourceStatusReporting, + id-resourceStatusReportingInitiation, + id-snStatusTransfer, + id-uEContextRelease, + id-x2Setup + + + + +FROM X2AP-Constants; + +-- ************************************************************** +-- +-- Interface Elementary Procedure Class +-- +-- ************************************************************** + +X2AP-ELEMENTARY-PROCEDURE ::= CLASS { + &InitiatingMessage , + &SuccessfulOutcome OPTIONAL, + &UnsuccessfulOutcome OPTIONAL, + &procedureCode ProcedureCode UNIQUE, + &criticality Criticality DEFAULT ignore +} +WITH SYNTAX { + INITIATING MESSAGE &InitiatingMessage + [SUCCESSFUL OUTCOME &SuccessfulOutcome] + [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] + PROCEDURE CODE &procedureCode + [CRITICALITY &criticality] +} + +-- ************************************************************** +-- +-- Interface PDU Definition +-- +-- ************************************************************** + +X2AP-PDU ::= CHOICE { + initiatingMessage InitiatingMessage, + successfulOutcome SuccessfulOutcome, + unsuccessfulOutcome UnsuccessfulOutcome, + ... +} + +InitiatingMessage ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +SuccessfulOutcome ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +UnsuccessfulOutcome ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + + +-- ************************************************************** +-- +-- Interface Elementary Procedure List +-- +-- ************************************************************** + +X2AP-ELEMENTARY-PROCEDURES X2AP-ELEMENTARY-PROCEDURE ::= { + X2AP-ELEMENTARY-PROCEDURES-CLASS-1 | + X2AP-ELEMENTARY-PROCEDURES-CLASS-2 , + ... +} + +X2AP-ELEMENTARY-PROCEDURES-CLASS-1 X2AP-ELEMENTARY-PROCEDURE ::= { + handoverPreparation | + reset | + x2Setup | + resourceStatusReportingInitiation | + eNBConfigurationUpdate , + ... +} + +X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= { + snStatusTransfer | + uEContextRelease | + handoverCancel | + errorIndication | + resourceStatusReporting | + loadIndication | + privateMessage , + ... + +} + + +-- ************************************************************** +-- +-- Interface Elementary Procedures +-- +-- ************************************************************** + +handoverPreparation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequest + SUCCESSFUL OUTCOME HandoverRequestAcknowledge + UNSUCCESSFUL OUTCOME HandoverPreparationFailure + PROCEDURE CODE id-handoverPreparation + CRITICALITY reject +} + +snStatusTransfer X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SNStatusTransfer + PROCEDURE CODE id-snStatusTransfer + CRITICALITY ignore +} + +uEContextRelease X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextRelease + PROCEDURE CODE id-uEContextRelease + CRITICALITY ignore +} + + +handoverCancel X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverCancel + PROCEDURE CODE id-handoverCancel + CRITICALITY ignore +} + +errorIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ErrorIndication + PROCEDURE CODE id-errorIndication + CRITICALITY ignore +} + +reset X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResetRequest + SUCCESSFUL OUTCOME ResetResponse + PROCEDURE CODE id-reset + CRITICALITY reject +} + +x2Setup X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE X2SetupRequest + SUCCESSFUL OUTCOME X2SetupResponse + UNSUCCESSFUL OUTCOME X2SetupFailure + PROCEDURE CODE id-x2Setup + CRITICALITY reject +} + + +loadIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LoadInformation + PROCEDURE CODE id-loadIndication + CRITICALITY ignore +} + +eNBConfigurationUpdate X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationUpdate + SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure + PROCEDURE CODE id-eNBConfigurationUpdate + CRITICALITY reject +} + +resourceStatusReportingInitiation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResourceStatusRequest + SUCCESSFUL OUTCOME ResourceStatusResponse + UNSUCCESSFUL OUTCOME ResourceStatusFailure + PROCEDURE CODE id-resourceStatusReportingInitiation + CRITICALITY reject +} + +resourceStatusReporting X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResourceStatusUpdate + PROCEDURE CODE id-resourceStatusReporting + CRITICALITY ignore +} + +privateMessage X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PrivateMessage + PROCEDURE CODE id-privateMessage + CRITICALITY ignore +} + +END + + +-- ************************************************************** +-- +-- PDU definitions for X2AP. +-- +-- ************************************************************** + +X2AP-PDU-Contents { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Contents (1) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + + AS-SecurityInformation, + + Cause, + + COUNTvalue, + CriticalityDiagnostics, + DL-Forwarding, + ECGI, + E-RAB-ID, + E-RAB-Level-QoS-Parameters, + E-RAB-List, + EUTRANTraceID, + GlobalENB-ID, + GTPtunnelEndpoint, + GUGroupIDList, + GUMMEI, + HandoverRestrictionList, + LocationReportingInformation, + Neighbour-Information, + PDCP-SN, + PLMN-Identity, + ReceiveStatusofULPDCPSDUs, + Registration-Request, + RelativeNarrowbandTxPower, + RadioResourceStatus, + RRC-Context, + ServedCell-Information, + ServedCells, + SRVCCOperationPossible, + SubscriberProfileIDforRFP, + TargeteNBtoSource-eNBTransparentContainer, + TimeToWait, + TraceActivation, + TraceDepth, + + TransportLayerAddress, + UEAggregateMaximumBitRate, + UE-HistoryInformation, + UE-S1AP-ID, + UESecurityCapabilities, + UE-X2AP-ID, + UL-HighInterferenceIndicationInfo, + UL-InterferenceOverloadIndication, + HWLoadIndicator, + S1TNLLoadIndicator, + Measurement-ID, + ReportCharacteristics + + + +FROM X2AP-IEs + + PrivateIE-Container{}, + ProtocolExtensionContainer{}, + ProtocolIE-Container{}, + ProtocolIE-ContainerList{}, + ProtocolIE-ContainerPair{}, + ProtocolIE-ContainerPairList{}, + ProtocolIE-Single-Container{}, + X2AP-PRIVATE-IES, + X2AP-PROTOCOL-EXTENSION, + X2AP-PROTOCOL-IES, + X2AP-PROTOCOL-IES-PAIR +FROM X2AP-Containers + + + id-Cause, + id-CellInformation, + id-CellInformation-Item, + id-CellMeasurementResult, + id-CellMeasurementResult-Item, + id-CellToReport, + id-CellToReport-Item, + id-CriticalityDiagnostics, + id-E-RABs-Admitted-Item, + id-E-RABs-Admitted-List, + id-E-RABs-NotAdmitted-List, + id-E-RABs-SubjectToStatusTransfer-List, + id-E-RABs-SubjectToStatusTransfer-Item, + id-E-RABs-ToBeSetup-Item, + id-GlobalENB-ID, + id-GUGroupIDList, + id-GUGroupIDToAddList, + id-GUGroupIDToDeleteList, + id-GUMMEI-ID, + id-New-eNB-UE-X2AP-ID, + id-Old-eNB-UE-X2AP-ID, + id-Registration-Request, + id-ReportingPeriodicity, + id-ServedCells, + id-ServedCellsToAdd, + id-ServedCellsToModify, + id-ServedCellsToDelete, + id-SRVCCOperationPossible, + id-TargetCell-ID, + id-TargeteNBtoSource-eNBTransparentContainer, + id-TimeToWait, + id-TraceActivation, + id-UE-ContextInformation, + id-UE-HistoryInformation, + id-UE-X2AP-ID, + id-Measurement-ID, + id-ReportCharacteristics, + id-ENB1-Measurement-ID, + id-ENB2-Measurement-ID, + + + + maxCellineNB, + maxnoofBearers, + maxnoofPDCP-SN + +FROM X2AP-Constants; + +-- ************************************************************** +-- +-- HANDOVER REQUEST +-- +-- ************************************************************** + +HandoverRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverRequest-IEs}}, + ... +} + +HandoverRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory } | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } | + { ID id-TargetCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory } | + { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory } | + { ID id-UE-ContextInformation CRITICALITY reject TYPE UE-ContextInformation PRESENCE mandatory } | + { ID id-UE-HistoryInformation CRITICALITY ignore TYPE UE-HistoryInformation PRESENCE mandatory } | + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional } | + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional }, + ... +} + +UE-ContextInformation ::= SEQUENCE { + mME-UE-S1AP-ID UE-S1AP-ID, + uESecurityCapabilities UESecurityCapabilities, + aS-SecurityInformation AS-SecurityInformation, + uEaggregateMaximumBitRate UEAggregateMaximumBitRate, + subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, + e-RABs-ToBeSetup-List E-RABs-ToBeSetup-List, + rRC-Context RRC-Context, + handoverRestrictionList HandoverRestrictionList OPTIONAL, + locationReportingInformation LocationReportingInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {UE-ContextInformation-ExtIEs} } OPTIONAL, + ... +} + +UE-ContextInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetup-ItemIEs} } + +E-RABs-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeSetup-Item CRITICALITY ignore TYPE E-RABs-ToBeSetup-Item PRESENCE mandatory }, + ... +} + +E-RABs-ToBeSetup-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + dL-Forwarding DL-Forwarding OPTIONAL, + uL-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetup-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeSetup-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- HANDOVER REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +HandoverRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverRequestAcknowledge-IEs}}, + ... +} + +HandoverRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-E-RABs-Admitted-List CRITICALITY ignore TYPE E-RABs-Admitted-List PRESENCE mandatory} | + { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional} | + { ID id-TargeteNBtoSource-eNBTransparentContainer CRITICALITY ignore TYPE TargeteNBtoSource-eNBTransparentContainer PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +E-RABs-Admitted-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ItemIEs} } + +E-RABs-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-Item CRITICALITY ignore TYPE E-RABs-Admitted-Item PRESENCE mandatory } +} + +E-RABs-Admitted-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, + dL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-Item-ExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- HANDOVER PREPARATION FAILURE +-- +-- ************************************************************** + +HandoverPreparationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverPreparationFailure-IEs}}, + ... +} + +HandoverPreparationFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + + ... +} + +-- ************************************************************** +-- +-- SN Status Transfer +-- +-- ************************************************************** + +SNStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SNStatusTransfer-IEs}}, + ... +} + +SNStatusTransfer-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-E-RABs-SubjectToStatusTransfer-List CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-List PRESENCE mandatory} , + ... +} + +E-RABs-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { { E-RABs-SubjectToStatusTransfer-ItemIEs} } + +E-RABs-SubjectToStatusTransfer-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-Item PRESENCE mandatory } +} + +E-RABs-SubjectToStatusTransfer-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + + receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, + uL-COUNTvalue COUNTvalue, + dL-COUNTvalue COUNTvalue, + iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-SubjectToStatusTransfer-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + + + +-- ************************************************************** +-- +-- UE Context Release +-- +-- ************************************************************** + +UEContextRelease ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextRelease-IEs}}, + ... +} + +UEContextRelease-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} , + ... +} + + +-- ************************************************************** +-- +-- HANDOVER CANCEL +-- +-- ************************************************************** + +HandoverCancel ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverCancel-IEs}}, + ... +} + +HandoverCancel-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} , + ... +} + +-- ************************************************************** +-- +-- ERROR INDICATION +-- +-- ************************************************************** + +ErrorIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}}, + ... +} + +ErrorIndication-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} | + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional} , + ... +} + +-- ************************************************************** +-- +-- Reset Request +-- +-- ************************************************************** + +ResetRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResetRequest-IEs}}, + ... +} + +ResetRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Reset Response +-- +-- ************************************************************** + +ResetResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResetResponse-IEs}}, + ... +} + +ResetResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- X2 SETUP REQUEST +-- +-- ************************************************************** + +X2SetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupRequest-IEs}}, + ... +} + +X2SetupRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory} | + { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory} | + { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}, +... +} + + + +-- ************************************************************** +-- +-- X2 SETUP RESPONSE +-- +-- ************************************************************** + +X2SetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupResponse-IEs}}, + ... +} + +X2SetupResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory} | + { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory} | + { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + + +-- ************************************************************** +-- +-- X2 SETUP FAILURE +-- +-- ************************************************************** + +X2SetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupFailure-IEs}}, + ... +} + +X2SetupFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + + ... +} + + + +-- ************************************************************** +-- +-- LOAD INFORMATION +-- +-- ************************************************************** + +LoadInformation ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{LoadInformation-IEs}}, + ... +} + +LoadInformation-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CellInformation CRITICALITY ignore TYPE CellInformation-List PRESENCE mandatory} , + ... +} + +CellInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellInformation-ItemIEs} } + +CellInformation-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellInformation-Item CRITICALITY ignore TYPE CellInformation-Item PRESENCE mandatory } +} + +CellInformation-Item ::= SEQUENCE { + cell-ID ECGI, + ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication OPTIONAL, + ul-HighInterferenceIndicationInfo UL-HighInterferenceIndicationInfo OPTIONAL, + relativeNarrowbandTxPower RelativeNarrowbandTxPower OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CellInformation-Item-ExtIEs} } OPTIONAL, + ... +} + +CellInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE +-- +-- ************************************************************** + +ENBConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdate-IEs}}, + ... +} + +ENBConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ServedCellsToAdd CRITICALITY reject TYPE ServedCells PRESENCE optional} | + { ID id-ServedCellsToModify CRITICALITY reject TYPE ServedCellsToModify PRESENCE optional} | + { ID id-ServedCellsToDelete CRITICALITY reject TYPE Old-ECGIs PRESENCE optional} | + { ID id-GUGroupIDToAddList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional} | + { ID id-GUGroupIDToDeleteList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}, + ... +} + +ServedCellsToModify::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToModify-Item + +ServedCellsToModify-Item::= SEQUENCE { + old-ecgi ECGI, + servedCellInfo ServedCell-Information, + neighbour-Info Neighbour-Information OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ServedCellsToModify-Item-ExtIEs} } OPTIONAL, + ... +} + +ServedCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +Old-ECGIs::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE ACKNOWLEDGE +-- +-- ************************************************************** + +ENBConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateAcknowledge-IEs}}, + ... +} + +ENBConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, +... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE FAIURE +-- +-- ************************************************************** + +ENBConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateFailure-IEs}}, + ... +} + +ENBConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + + +-- ************************************************************** +-- +-- Resource Status Request +-- +-- ************************************************************** + +ResourceStatusRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusRequest-IEs}}, + ... +} + +ResourceStatusRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY ignore TYPE Measurement-ID PRESENCE conditional}|-- The IE shall be present if the Registration Request IE is set to “Stop”-- + { ID id-Registration-Request CRITICALITY reject TYPE Registration-Request PRESENCE mandatory} | + { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE optional} | + { ID id-CellToReport CRITICALITY ignore TYPE CellToReport-List PRESENCE mandatory} | + { ID id-ReportingPeriodicity CRITICALITY ignore TYPE ReportingPeriodicity PRESENCE optional} , + ... +} + + +CellToReport-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellToReport-ItemIEs} } + +CellToReport-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellToReport-Item CRITICALITY ignore TYPE CellToReport-Item PRESENCE mandatory } +} + +CellToReport-Item ::= SEQUENCE { + cell-ID ECGI, + iE-Extensions ProtocolExtensionContainer { {CellToReport-Item-ExtIEs} } OPTIONAL, + ... +} + +CellToReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +ReportingPeriodicity ::= ENUMERATED { + one-thousand-ms, + two-thousand-ms, + five-thousand-ms, + ten-thousand-ms, +... +} + + +-- ************************************************************** +-- +-- Resource Status Response +-- +-- ************************************************************** + +ResourceStatusResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusResponse-IEs}}, + ... +} + +ResourceStatusResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- Resource Status Failure +-- +-- ************************************************************** + +ResourceStatusFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusFailure-IEs}}, + ... +} + +ResourceStatusFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- Resource Status Update +-- +-- ************************************************************** + +ResourceStatusUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusUpdate-IEs}}, + ... +} + +ResourceStatusUpdate-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-CellMeasurementResult CRITICALITY ignore TYPE CellMeasurementResult-List PRESENCE mandatory}, + ... +} + +CellMeasurementResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellMeasurementResult-ItemIEs} } + +CellMeasurementResult-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellMeasurementResult-Item CRITICALITY ignore TYPE CellMeasurementResult-Item PRESENCE mandatory } +} + +CellMeasurementResult-Item ::= SEQUENCE { + cell-ID ECGI, + hWOverLoadIndicator HWLoadIndicator OPTIONAL, + s1TNLOverLoadIndicator S1TNLLoadIndicator OPTIONAL, + radioResourceStatus RadioResourceStatus OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CellMeasurementResult-Item-ExtIEs} } OPTIONAL, + ... +} + +CellMeasurementResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- PRIVATE MESSAGE +-- +-- ************************************************************** + +PrivateMessage ::= SEQUENCE { + privateIEs PrivateIE-Container {{PrivateMessage-IEs}}, + ... +} + +PrivateMessage-IEs X2AP-PRIVATE-IES ::= { + ... +} + +END + + +-- ************************************************************** +-- +-- Information Element Definitions +-- +-- ************************************************************** + +X2AP-IEs { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-IEs (2) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + + id-E-RAB-Item, + id-Number-of-Antennaports, + + + maxnoofBearers, maxCellineNB, + maxEARFCN, + maxInterfaces, + + maxnoofBPLMNs, + maxnoofCells, + maxnoofEPLMNs, + maxnoofEPLMNsPlusOne, + maxnoofForbLACs, + maxnoofForbTACs, + maxnoofNeighbours, + maxnoofPRBs, + maxNrOfErrors, + maxPools + +FROM X2AP-Constants + + Criticality, + ProcedureCode, + ProtocolIE-ID, + TriggeringMessage +FROM X2AP-CommonDataTypes + + ProtocolExtensionContainer{}, + ProtocolIE-Single-Container{}, + + X2AP-PROTOCOL-EXTENSION, + X2AP-PROTOCOL-IES +FROM X2AP-Containers; + +-- A + +AS-SecurityInformation ::= SEQUENCE { + key-eNodeB-star Key-eNodeB-Star, + nextHopChainingCount NextHopChainingCount, + iE-Extensions ProtocolExtensionContainer { { AS-SecurityInformation-ExtIEs} } OPTIONAL, + ... +} + +AS-SecurityInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +AllocationAndRetentionPriority ::= SEQUENCE { + priorityLevel PriorityLevel, + pre-emptionCapability Pre-emptionCapability, + pre-emptionVulnerability Pre-emptionVulnerability, + iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, + ... +} + +AllocationAndRetentionPriority-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- B + + +BitRate ::= INTEGER (0..10000000000) +BroadcastPLMNs-Item ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF PLMN-Identity + + +-- C + +Cause ::= CHOICE { + radioNetwork CauseRadioNetwork, + transport CauseTransport, + protocol CauseProtocol, + misc CauseMisc, + ... +} + +CauseMisc ::= ENUMERATED { + control-processing-overload, + hardware-failure, + om-intervention, + not-enough-user-plane-processing-resources, + unspecified, + ... +} + +CauseProtocol ::= ENUMERATED { + transfer-syntax-error, + abstract-syntax-error-reject, + abstract-syntax-error-ignore-and-notify, + message-not-compatible-with-receiver-state, + semantic-error, + unspecified, + abstract-syntax-error-falsely-constructed-message, + ... +} + +CauseRadioNetwork ::= ENUMERATED { + handover-desirable-for-radio-reasons, + time-critical-handover, + resource-optimisation-handover, + reduce-load-in-serving-cell, + partial-handover, + unknown-new-eNB-UE-X2AP-ID, + unknown-old-eNB-UE-X2AP-ID, + unknown-pair-of-UE-X2AP-ID, + ho-target-not-allowed, + tx2relocoverall-expiry, + trelocprep-expiry, + cell-not-available, + no-radio-resources-available-in-target-cell, + invalid-MME-GroupID, + unknown-MME-Code, + encryption-and-or-integrity-protection-algorithms-not-supported, + reportCharacteristicsEmpty, + noReportPeriodicity, + existingMeasurementID, + unknown-eNB-Measurement-ID, + measurement-temporarily-not-available, + unspecified, + ... + +} + +CauseTransport ::= ENUMERATED { + transport-resource-unavailable, + unspecified, + ... +} + +Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ... } + + + +CellType ::= SEQUENCE { + cell-Size Cell-Size, + iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL, + ... +} + +CellType-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +COUNTvalue ::= SEQUENCE { + pDCP-SN PDCP-SN, + hFN HFN, + iE-Extensions ProtocolExtensionContainer { { COUNTvalue-ExtIEs} } OPTIONAL, + ... +} + +COUNTvalue-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +CriticalityDiagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL, + ... +} + + +CriticalityDiagnostics-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF + SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-List-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CyclicPrefixDL ::= ENUMERATED { + normal, + extended, + ... +} + +CyclicPrefixUL ::= ENUMERATED { + normal, + extended, + ... +} + + +-- D + + +DL-Forwarding ::= ENUMERATED { + dL-forwardingProposed, + ... +} + +-- E + +EARFCN ::= INTEGER (0..maxEARFCN) + +FDD-Info ::= SEQUENCE { + uL-EARFCN EARFCN, + dL-EARFCN EARFCN, + uL-Transmission-Bandwidth Transmission-Bandwidth, + dL-Transmission-Bandwidth Transmission-Bandwidth, + iE-Extensions ProtocolExtensionContainer { {FDD-Info-ExtIEs} } OPTIONAL, + ... +} + +FDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TDD-Info ::= SEQUENCE { + eARFCN EARFCN, + transmission-Bandwidth Transmission-Bandwidth, + subframeAssignment SubframeAssignment, + specialSubframe-Info SpecialSubframe-Info, + iE-Extensions ProtocolExtensionContainer { {TDD-Info-ExtIEs} } OPTIONAL, + ... +} +TDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +EUTRA-Mode-Info ::= CHOICE { + fDD FDD-Info, + tDD TDD-Info, + ... +} + +ECGI ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + eUTRANcellIdentifier EUTRANCellIdentifier, + iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL, + ... +} + +ECGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENB-ID ::= CHOICE { + macro-eNB-ID BIT STRING (SIZE (20)), + home-eNB-ID BIT STRING (SIZE (28)), + ... +} + +EncryptionAlgorithms ::= BIT STRING (SIZE (16, ...)) + +EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMN-Identity + +E-RAB-ID ::= INTEGER (0..15, ...) + +E-RAB-Level-QoS-Parameters ::= SEQUENCE { + qCI QCI, + allocationAndRetentionPriority AllocationAndRetentionPriority, + gbrQosInformation GBR-QosInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { E-RAB-Level-QoS-Parameters-ExtIEs} } OPTIONAL, + ... +} + +E-RAB-Level-QoS-Parameters-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RAB-List ::= SEQUENCE (SIZE(1.. maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RAB-ItemIEs} } + +E-RAB-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RAB-Item CRITICALITY ignore TYPE E-RAB-Item PRESENCE mandatory }, + ... +} + +E-RAB-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RAB-Item-ExtIEs} } OPTIONAL, + ... +} + +E-RAB-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +EUTRANCellIdentifier ::= BIT STRING (SIZE (28)) + +EUTRANTraceID ::= OCTET STRING (SIZE (8)) + + +EventType ::= ENUMERATED{ + change-of-serving-cell, + ... +} + + +-- F + +ForbiddenInterRATs ::= ENUMERATED { + all, + geran, + utran, + cdma2000, + ... +} + +ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item + +ForbiddenTAs-Item ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + forbiddenTACs ForbiddenTACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenTAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC + +ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item + +ForbiddenLAs-Item ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + forbiddenLACs ForbiddenLACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenLAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC + + + +-- G + +GBR-QosInformation ::= SEQUENCE { + e-RAB-MaximumBitrateDL BitRate, + e-RAB-MaximumBitrateUL BitRate, + e-RAB-GuaranteedBitrateDL BitRate, + e-RAB-GuaranteedBitrateUL BitRate, + iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL, + ... +} + +GBR-QosInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GlobalENB-ID ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + eNB-ID ENB-ID, + iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL, + ... +} + +GlobalENB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} +GTPtunnelEndpoint ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEI, + iE-Extensions ProtocolExtensionContainer { {GTPtunnelEndpoint-ExtIEs} } OPTIONAL, + ... +} + +GTPtunnelEndpoint-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GTP-TEI ::= OCTET STRING (SIZE (4)) + +GUGroupIDList ::= SEQUENCE (SIZE (1..maxPools)) OF GU-Group-ID + + +GU-Group-ID ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + mME-Group-ID MME-Group-ID, + iE-Extensions ProtocolExtensionContainer { {GU-Group-ID-ExtIEs} } OPTIONAL, + ... +} + +GU-Group-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +GUMMEI ::= SEQUENCE { + + gU-Group-ID GU-Group-ID, + mME-Code MME-Code, + iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, + ... +} + +GUMMEI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- H + +HandoverRestrictionList ::= SEQUENCE { + servingPLMN PLMN-Identity, + equivalentPLMNs EPLMNs OPTIONAL, + forbiddenTAs ForbiddenTAs OPTIONAL, + forbiddenLAs ForbiddenLAs OPTIONAL, + forbiddenInterRATs ForbiddenInterRATs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, + ... +} + +HandoverRestrictionList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +HFN ::= INTEGER (0..1048575) + +HWLoadIndicator ::= SEQUENCE { + dLHWLoadIndicator LoadIndicator, + uLHWLoadIndicator LoadIndicator, + iE-Extensions ProtocolExtensionContainer { { HWLoadIndicator-ExtIEs} } OPTIONAL, + ... +} + +HWLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- I + +IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16, ...)) + +InterfacesToTrace ::= BIT STRING (SIZE (8)) +-- J +-- K + + +Key-eNodeB-Star ::= BIT STRING (SIZE(256)) + +-- L + + +LAC ::= OCTET STRING (SIZE (2)) --(EXCEPT ('0000'H|'FFFE'H)) + +LastVisitedCell-Item ::= CHOICE { + e-UTRAN-Cell LastVisitedEUTRANCellInformation, + uTRAN-Cell LastVisitedUTRANCellInformation, + gERAN-Cell LastVisitedGERANCellInformation, + ... +} + +LastVisitedEUTRANCellInformation ::= SEQUENCE { + global-Cell-ID ECGI, + cellType CellType, + time-UE-StayedInCell Time-UE-StayedInCell, + iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, + ... +} + +LastVisitedEUTRANCellInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +LastVisitedUTRANCellInformation ::= OCTET STRING + +LastVisitedGERANCellInformation ::= CHOICE { + undefined NULL, + ... +} + + +LoadIndicator ::= ENUMERATED { + lowLoad, + mediumLoad, + highLoad, + overLoad, + ... +} + + + +LocationReportingInformation ::= SEQUENCE { + eventType EventType, + reportArea ReportArea, + iE-Extensions ProtocolExtensionContainer { {LocationReportingInformation-ExtIEs} } OPTIONAL, + ... +} + +LocationReportingInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::={ + ... +} + +-- M + + +MME-Group-ID ::= OCTET STRING (SIZE (2)) + +MME-Code ::= OCTET STRING (SIZE (1)) + +Measurement-ID ::= INTEGER (1..4095, ...) + +-- N + +Neighbour-Information ::= SEQUENCE (SIZE (0..maxnoofNeighbours)) OF SEQUENCE { + eCGI ECGI, + pCI PCI, + eARFCN EARFCN, + iE-Extensions ProtocolExtensionContainer { {Neighbour-Information-ExtIEs} } OPTIONAL, + ... +} + +Neighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +NextHopChainingCount ::= INTEGER (0..7) + +Number-of-Antennaports ::= ENUMERATED { + an1, + an2, + an4, + ... +} + +-- O +-- P + +PDCP-SN ::= INTEGER (0..4095) + +PCI ::= INTEGER (0..503, ...) + + +PLMN-Identity ::= OCTET STRING (SIZE(3)) + +Pre-emptionCapability ::= ENUMERATED { + shall-not-trigger-pre-emption, + may-trigger-pre-emption +} + +Pre-emptionVulnerability ::= ENUMERATED { + not-pre-emptable, + pre-emptable +} + +PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) + +-- Q + +QCI ::= INTEGER (0..255) + +-- R + + +ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) + +Registration-Request ::= ENUMERATED { + start, + stop, + ... +} + +RelativeNarrowbandTxPower ::= SEQUENCE { + + rNTP-PerPRB BIT STRING (SIZE(6..110, ...)), + rNTP-Threshold RNTP-Threshold, + numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, + p-B INTEGER (0..3,...), + pDCCH-InterferenceImpact INTEGER (0..4,...), + iE-Extensions ProtocolExtensionContainer { { RelativeNarrowbandTxPower-ExtIEs} } OPTIONAL, + ... +} + +RelativeNarrowbandTxPower-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ReportArea ::= ENUMERATED{ + ecgi, + ... +} + +ReportCharacteristics ::= BIT STRING (SIZE (32)) + +RNTP-Threshold ::= ENUMERATED { + minusInfinity, + minusEleven, + minusTen, + minusNine, + minusEight, + minusSeven, + minusSix, + minusFive, + minusFour, + minusThree, + minusTwo, + minusOne, + zero, + one, + two, + three, + ... +} + +RRC-Context ::= OCTET STRING + + +RadioResourceStatus ::= SEQUENCE { + dL-GBR-PRB-usage DL-GBR-PRB-usage, + uL-GBR-PRB-usage UL-GBR-PRB-usage, + dL-non-GBR-PRB-usage DL-non-GBR-PRB-usage, + uL-non-GBR-PRB-usage UL-non-GBR-PRB-usage, + dL-Total-PRB-usage DL-Total-PRB-usage, + uL-Total-PRB-usage UL-Total-PRB-usage, + iE-Extensions ProtocolExtensionContainer { {RadioResourceStatus-ExtIEs} } OPTIONAL, + ... +} + +RadioResourceStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +DL-GBR-PRB-usage::= INTEGER (0..100) + +UL-GBR-PRB-usage::= INTEGER (0..100) + +DL-non-GBR-PRB-usage::= INTEGER (0..100) + +UL-non-GBR-PRB-usage::= INTEGER (0..100) + +DL-Total-PRB-usage::= INTEGER (0..100) + +UL-Total-PRB-usage::= INTEGER (0..100) + + +-- S + +S1TNLLoadIndicator ::= SEQUENCE { + dLS1TNLLoadIndicator LoadIndicator, + uLS1TNLLoadIndicator LoadIndicator, + iE-Extensions ProtocolExtensionContainer { { S1TNLLoadIndicator-ExtIEs} } OPTIONAL, + ... +} + +S1TNLLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + + +ServedCells ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { + servedCellInfo ServedCell-Information, + neighbour-Info Neighbour-Information OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ServedCell-ExtIEs} } OPTIONAL, + ... +} + +ServedCell-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedCell-Information ::= SEQUENCE { + pCI PCI, + cellId ECGI, + tAC TAC, + broadcastPLMNs BroadcastPLMNs-Item, + eUTRA-Mode-Info EUTRA-Mode-Info, + iE-Extensions ProtocolExtensionContainer { {ServedCell-Information-ExtIEs} } OPTIONAL, + ... +} + +ServedCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-Number-of-Antennaports CRITICALITY ignore EXTENSION Number-of-Antennaports PRESENCE optional }, + ... +} + +SRVCCOperationPossible ::= ENUMERATED { + possible, + ... +} + +SubframeAssignment ::= ENUMERATED { + sa0, + sa1, + sa2, + sa3, + sa4, + sa5, + sa6, + ... +} + +SpecialSubframe-Info ::= SEQUENCE { + specialSubframePatterns SpecialSubframePatterns, + cyclicPrefixDL CyclicPrefixDL, + cyclicPrefixUL CyclicPrefixUL, + iE-Extensions ProtocolExtensionContainer { { SpecialSubframe-Info-ExtIEs} } OPTIONAL, + ... +} + +SpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +SpecialSubframePatterns ::= ENUMERATED { + ssp0, + ssp1, + ssp2, + ssp3, + ssp4, + ssp5, + ssp6, + ssp7, + ssp8, + ... +} + +SubscriberProfileIDforRFP ::= INTEGER (1..256) + + +-- T + +TAC ::= OCTET STRING (SIZE (2)) + +TargeteNBtoSource-eNBTransparentContainer ::= OCTET STRING + + +TimeToWait ::= ENUMERATED { + v1s, + v2s, + v5s, + v10s, + v20s, + v60s, + ... +} + +Time-UE-StayedInCell ::= INTEGER (0..4095) + + +TraceActivation ::= SEQUENCE { + eUTRANTraceID EUTRANTraceID, + interfacesToTrace InterfacesToTrace, + traceDepth TraceDepth, + traceCollectionEntityIPAddress TraceCollectionEntityIPAddress, + iE-Extensions ProtocolExtensionContainer { {TraceActivation-ExtIEs} } OPTIONAL, + ... +} + +TraceActivation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TraceCollectionEntityIPAddress ::= BIT STRING (SIZE(1..160, ...)) + +TraceDepth ::= ENUMERATED { + minimum, + medium, + maximum, + minimumWithoutVendorSpecificExtension, + mediumWithoutVendorSpecificExtension, + maximumWithoutVendorSpecificExtension, + ... +} + + + + +Transmission-Bandwidth ::= ENUMERATED { + bw6, + bw15, + bw25, + bw50, + bw75, + bw100, + ... +} + +TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) + +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + + +-- U + +UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item + + +UE-S1AP-ID ::= INTEGER (0.. 4294967295) + +UE-X2AP-ID ::= INTEGER (0..4095) -- Value FFS + +UEAggregateMaximumBitRate ::= SEQUENCE { + uEaggregateMaximumBitRateDownlink BitRate, + uEaggregateMaximumBitRateUplink BitRate, + iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrate-ExtIEs} } OPTIONAL, + ... +} + +UEAggregate-MaximumBitrate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UESecurityCapabilities ::= SEQUENCE { + encryptionAlgorithms EncryptionAlgorithms, + integrityProtectionAlgorithms IntegrityProtectionAlgorithms, + iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL, +... +} + +UESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UL-InterferenceOverloadIndication ::= SEQUENCE (SIZE(1..maxnoofPRBs)) OF UL-InterferenceOverloadIndication-Item + +UL-InterferenceOverloadIndication-Item ::= ENUMERATED { + high-interference, + medium-interference, + low-interference, + ... +} + +UL-HighInterferenceIndicationInfo ::= SEQUENCE (SIZE(1..maxCellineNB)) OF UL-HighInterferenceIndicationInfo-Item + +UL-HighInterferenceIndicationInfo-Item ::= SEQUENCE { + target-Cell-ID ECGI, + ul-interferenceindication UL-HighInterferenceIndication, + iE-Extensions ProtocolExtensionContainer { { UL-HighInterferenceIndicationInfo-Item-ExtIEs} } OPTIONAL, + ... +} + +UL-HighInterferenceIndicationInfo-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +UL-HighInterferenceIndication ::= BIT STRING (SIZE(1..110, ...)) + + +-- V +-- W +-- X +-- Y +-- Z + +END + + +-- ************************************************************** +-- +-- Common definitions +-- +-- ************************************************************** + +X2AP-CommonDataTypes { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-CommonDataTypes (3) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- Extension constants +-- +-- ************************************************************** + +maxPrivateIEs INTEGER ::= 65535 +maxProtocolExtensions INTEGER ::= 65535 +maxProtocolIEs INTEGER ::= 65535 + +-- ************************************************************** +-- +-- Common Data Types +-- +-- ************************************************************** + +Criticality ::= ENUMERATED { reject, ignore, notify } + +Presence ::= ENUMERATED { optional, conditional, mandatory } + +PrivateIE-ID ::= CHOICE { + local INTEGER (0.. maxPrivateIEs), + global OBJECT IDENTIFIER +} + +ProcedureCode ::= INTEGER (0..255) + + +ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs) + + +TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome} + +END + + +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +X2AP-Constants { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Constants (4) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + ProcedureCode, + ProtocolIE-ID +FROM X2AP-CommonDataTypes; + +-- ************************************************************** +-- +-- Elementary Procedures +-- +-- ************************************************************** + +id-handoverPreparation ProcedureCode ::= 0 +id-handoverCancel ProcedureCode ::= 1 +id-loadIndication ProcedureCode ::= 2 +id-errorIndication ProcedureCode ::= 3 +id-snStatusTransfer ProcedureCode ::= 4 +id-uEContextRelease ProcedureCode ::= 5 +id-x2Setup ProcedureCode ::= 6 +id-reset ProcedureCode ::= 7 +id-eNBConfigurationUpdate ProcedureCode ::= 8 +id-resourceStatusReportingInitiation ProcedureCode ::= 9 +id-resourceStatusReporting ProcedureCode ::= 10 +id-privateMessage ProcedureCode ::= 11 + + + + +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** + +maxEARFCN INTEGER ::= 65535 +maxInterfaces INTEGER ::= 16 +maxCellineNB INTEGER ::= 256 +maxnoofBearers INTEGER ::= 256 +maxNrOfErrors INTEGER ::= 256 +maxnoofPDCP-SN INTEGER ::= 16 -- FFS Value to be checked +maxnoofEPLMNs INTEGER ::= 15 +maxnoofEPLMNsPlusOne INTEGER ::= 16 +maxnoofForbLACs INTEGER ::= 4096 +maxnoofForbTACs INTEGER ::= 4096 +maxnoofBPLMNs INTEGER ::= 6 +maxnoofNeighbours INTEGER ::= 512 +maxnoofPRBs INTEGER ::= 110 +maxPools INTEGER ::= 16 +maxnoofCells INTEGER ::= 16 + + + + +-- ************************************************************** +-- +-- IEs +-- +-- ************************************************************** + +id-E-RABs-Admitted-Item ProtocolIE-ID ::= 0 +id-E-RABs-Admitted-List ProtocolIE-ID ::= 1 +id-E-RAB-Item ProtocolIE-ID ::= 2 +id-E-RABs-NotAdmitted-List ProtocolIE-ID ::= 3 +id-E-RABs-ToBeSetup-Item ProtocolIE-ID ::= 4 +id-Cause ProtocolIE-ID ::= 5 +id-CellInformation ProtocolIE-ID ::= 6 +id-CellInformation-Item ProtocolIE-ID ::= 7 +id-New-eNB-UE-X2AP-ID ProtocolIE-ID ::= 9 +id-Old-eNB-UE-X2AP-ID ProtocolIE-ID ::= 10 +id-TargetCell-ID ProtocolIE-ID ::= 11 +id-TargeteNBtoSource-eNBTransparentContainer ProtocolIE-ID ::= 12 +id-TraceActivation ProtocolIE-ID ::= 13 +id-UE-ContextInformation ProtocolIE-ID ::= 14 +id-UE-HistoryInformation ProtocolIE-ID ::= 15 +id-UE-X2AP-ID ProtocolIE-ID ::= 16 +id-CriticalityDiagnostics ProtocolIE-ID ::= 17 +id-E-RABs-SubjectToStatusTransfer-List ProtocolIE-ID ::= 18 +id-E-RABs-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 19 +id-ServedCells ProtocolIE-ID ::= 20 +id-GlobalENB-ID ProtocolIE-ID ::= 21 +id-TimeToWait ProtocolIE-ID ::= 22 +id-GUMMEI-ID ProtocolIE-ID ::= 23 +id-GUGroupIDList ProtocolIE-ID ::= 24 +id-ServedCellsToAdd ProtocolIE-ID ::= 25 +id-ServedCellsToModify ProtocolIE-ID ::= 26 +id-ServedCellsToDelete ProtocolIE-ID ::= 27 +id-Registration-Request ProtocolIE-ID ::= 28 +id-CellToReport ProtocolIE-ID ::= 29 +id-ReportingPeriodicity ProtocolIE-ID ::= 30 +id-CellToReport-Item ProtocolIE-ID ::= 31 +id-CellMeasurementResult ProtocolIE-ID ::= 32 +id-CellMeasurementResult-Item ProtocolIE-ID ::= 33 +id-GUGroupIDToAddList ProtocolIE-ID ::= 34 +id-GUGroupIDToDeleteList ProtocolIE-ID ::= 35 +id-SRVCCOperationPossible ProtocolIE-ID ::= 36 +id-Measurement-ID ProtocolIE-ID ::= 37 +id-ReportCharacteristics ProtocolIE-ID ::= 38 +id-ENB1-Measurement-ID ProtocolIE-ID ::= 39 +id-ENB2-Measurement-ID ProtocolIE-ID ::= 40 +id-Number-of-Antennaports ProtocolIE-ID ::= 41 + + + +END + + +-- ************************************************************** +-- +-- Container definitions +-- +-- ************************************************************** + +X2AP-Containers { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Containers (5) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + maxPrivateIEs, + maxProtocolExtensions, + maxProtocolIEs, + Criticality, + Presence, + PrivateIE-ID, + ProtocolIE-ID +FROM X2AP-CommonDataTypes; + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +X2AP-PROTOCOL-IES ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +X2AP-PROTOCOL-IES-PAIR ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &firstCriticality Criticality, + &FirstValue, + &secondCriticality Criticality, + &SecondValue, + &presence Presence +} +WITH SYNTAX { + ID &id + FIRST CRITICALITY &firstCriticality + FIRST TYPE &FirstValue + SECOND CRITICALITY &secondCriticality + SECOND TYPE &SecondValue + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol Extensions +-- +-- ************************************************************** + +X2AP-PROTOCOL-EXTENSION ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Extension, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + EXTENSION &Extension + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Private IEs +-- +-- ************************************************************** + +X2AP-PRIVATE-IES ::= CLASS { + &id PrivateIE-ID, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Container for Protocol IEs +-- +-- ************************************************************** + +ProtocolIE-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Single-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Field {X2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-IES.&id ({IEsSetParam}), + criticality X2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), + value X2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Protocol IE Pairs +-- +-- ************************************************************** + +ProtocolIE-ContainerPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-FieldPair {{IEsSetParam}} + +ProtocolIE-FieldPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), + firstCriticality X2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), + firstValue X2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), + secondCriticality X2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), + secondValue X2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container Lists for Protocol IE Containers +-- +-- ************************************************************** + +ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-Container {{IEsSetParam}} + +ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-ContainerPair {{IEsSetParam}} + +-- ************************************************************** +-- +-- Container for Protocol Extensions +-- +-- ************************************************************** + +ProtocolExtensionContainer {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= + SEQUENCE (SIZE (1..maxProtocolExtensions)) OF + ProtocolExtensionField {{ExtensionSetParam}} + +ProtocolExtensionField {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), + criticality X2AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), + extensionValue X2AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Private IEs +-- +-- ************************************************************** + +PrivateIE-Container {X2AP-PRIVATE-IES : IEsSetParam} ::= + SEQUENCE (SIZE (1..maxPrivateIEs)) OF + PrivateIE-Field {{IEsSetParam}} + +PrivateIE-Field {X2AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { + id X2AP-PRIVATE-IES.&id ({IEsSetParam}), + criticality X2AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), + value X2AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) +} + +END diff --git a/openair2/X2AP/MESSAGES/ASN1/R9/x2ap-9.6.0.asn1 b/openair2/X2AP/MESSAGES/ASN1/R9/x2ap-9.6.0.asn1 new file mode 100755 index 0000000000..5d4fca74a3 --- /dev/null +++ b/openair2/X2AP/MESSAGES/ASN1/R9/x2ap-9.6.0.asn1 @@ -0,0 +1,2579 @@ +-- ************************************************************** +-- +-- Elementary Procedure definitions +-- +-- ************************************************************** + +X2AP-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Descriptions (0) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + ProcedureCode +FROM X2AP-CommonDataTypes + + + CellActivationRequest, + CellActivationResponse, + CellActivationFailure, + ENBConfigurationUpdate, + ENBConfigurationUpdateAcknowledge, + ENBConfigurationUpdateFailure, + ErrorIndication, + HandoverCancel, + HandoverReport, + HandoverPreparationFailure, + HandoverRequest, + HandoverRequestAcknowledge, + LoadInformation, + PrivateMessage, + ResetRequest, + ResetResponse, + ResourceStatusFailure, + ResourceStatusRequest, + ResourceStatusResponse, + ResourceStatusUpdate, + RLFIndication, + SNStatusTransfer, + UEContextRelease, + X2SetupFailure, X2SetupRequest, + X2SetupResponse, + MobilityChangeRequest, + MobilityChangeAcknowledge, + MobilityChangeFailure + + + +FROM X2AP-PDU-Contents + + id-cellActivation, + id-eNBConfigurationUpdate, + id-errorIndication, + id-handoverCancel, + id-handoverReport, + id-handoverPreparation, + + id-loadIndication, + id-privateMessage, + id-reset, + + id-resourceStatusReporting, + id-resourceStatusReportingInitiation, + id-rLFIndication, + id-snStatusTransfer, + id-uEContextRelease, + id-x2Setup, + id-mobilitySettingsChange + + + + +FROM X2AP-Constants; + +-- ************************************************************** +-- +-- Interface Elementary Procedure Class +-- +-- ************************************************************** + +X2AP-ELEMENTARY-PROCEDURE ::= CLASS { + &InitiatingMessage , + &SuccessfulOutcome OPTIONAL, + &UnsuccessfulOutcome OPTIONAL, + &procedureCode ProcedureCode UNIQUE, + &criticality Criticality DEFAULT ignore +} +WITH SYNTAX { + INITIATING MESSAGE &InitiatingMessage + [SUCCESSFUL OUTCOME &SuccessfulOutcome] + [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] + PROCEDURE CODE &procedureCode + [CRITICALITY &criticality] +} + +-- ************************************************************** +-- +-- Interface PDU Definition +-- +-- ************************************************************** + +X2AP-PDU ::= CHOICE { + initiatingMessage InitiatingMessage, + successfulOutcome SuccessfulOutcome, + unsuccessfulOutcome UnsuccessfulOutcome, + ... +} + +InitiatingMessage ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +SuccessfulOutcome ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +UnsuccessfulOutcome ::= SEQUENCE { + procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), + criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value X2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + + +-- ************************************************************** +-- +-- Interface Elementary Procedure List +-- +-- ************************************************************** + +X2AP-ELEMENTARY-PROCEDURES X2AP-ELEMENTARY-PROCEDURE ::= { + X2AP-ELEMENTARY-PROCEDURES-CLASS-1 | + X2AP-ELEMENTARY-PROCEDURES-CLASS-2 , + ... +} + +X2AP-ELEMENTARY-PROCEDURES-CLASS-1 X2AP-ELEMENTARY-PROCEDURE ::= { + handoverPreparation | + reset | + x2Setup | + resourceStatusReportingInitiation | + eNBConfigurationUpdate | + mobilitySettingsChange | + cellActivation , + ... +} + +X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= { + snStatusTransfer | + uEContextRelease | + handoverCancel | + errorIndication | + resourceStatusReporting | + loadIndication | + privateMessage | + rLFIndication | handoverReport, + ... + +} + + +-- ************************************************************** +-- +-- Interface Elementary Procedures +-- +-- ************************************************************** + +handoverPreparation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequest + SUCCESSFUL OUTCOME HandoverRequestAcknowledge + UNSUCCESSFUL OUTCOME HandoverPreparationFailure + PROCEDURE CODE id-handoverPreparation + CRITICALITY reject +} + +snStatusTransfer X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SNStatusTransfer + PROCEDURE CODE id-snStatusTransfer + CRITICALITY ignore +} + +uEContextRelease X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextRelease + PROCEDURE CODE id-uEContextRelease + CRITICALITY ignore +} + + +handoverCancel X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverCancel + PROCEDURE CODE id-handoverCancel + CRITICALITY ignore +} + +handoverReport X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverReport + PROCEDURE CODE id-handoverReport + CRITICALITY ignore +} + +errorIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ErrorIndication + PROCEDURE CODE id-errorIndication + CRITICALITY ignore +} + +reset X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResetRequest + SUCCESSFUL OUTCOME ResetResponse + PROCEDURE CODE id-reset + CRITICALITY reject +} + +x2Setup X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE X2SetupRequest + SUCCESSFUL OUTCOME X2SetupResponse + UNSUCCESSFUL OUTCOME X2SetupFailure + PROCEDURE CODE id-x2Setup + CRITICALITY reject +} + + +loadIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LoadInformation + PROCEDURE CODE id-loadIndication + CRITICALITY ignore +} + +eNBConfigurationUpdate X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationUpdate + SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure + PROCEDURE CODE id-eNBConfigurationUpdate + CRITICALITY reject +} + +resourceStatusReportingInitiation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResourceStatusRequest + SUCCESSFUL OUTCOME ResourceStatusResponse + UNSUCCESSFUL OUTCOME ResourceStatusFailure + PROCEDURE CODE id-resourceStatusReportingInitiation + CRITICALITY reject +} + +resourceStatusReporting X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResourceStatusUpdate + PROCEDURE CODE id-resourceStatusReporting + CRITICALITY ignore +} + +rLFIndication X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RLFIndication + PROCEDURE CODE id-rLFIndication + CRITICALITY ignore +} + +privateMessage X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PrivateMessage + PROCEDURE CODE id-privateMessage + CRITICALITY ignore +} + +mobilitySettingsChange X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MobilityChangeRequest + SUCCESSFUL OUTCOME MobilityChangeAcknowledge + UNSUCCESSFUL OUTCOME MobilityChangeFailure + PROCEDURE CODE id-mobilitySettingsChange + CRITICALITY reject +} + +cellActivation X2AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE CellActivationRequest + SUCCESSFUL OUTCOME CellActivationResponse + UNSUCCESSFUL OUTCOME CellActivationFailure + PROCEDURE CODE id-cellActivation + CRITICALITY reject +} + + +END + + +-- ************************************************************** +-- +-- PDU definitions for X2AP. +-- +-- ************************************************************** + +X2AP-PDU-Contents { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Contents (1) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + + AS-SecurityInformation, + Cause, + CompositeAvailableCapacityGroup, + COUNTvalue, + CriticalityDiagnostics, + CRNTI, + DeactivationIndication, + DL-Forwarding, + ECGI, + E-RAB-ID, + E-RAB-Level-QoS-Parameters, + E-RAB-List, + EUTRANTraceID, + GlobalENB-ID, + GTPtunnelEndpoint, + GUGroupIDList, + GUMMEI, + HandoverReportType, + HandoverRestrictionList, + LocationReportingInformation, + Neighbour-Information, + PCI, + PDCP-SN, + PLMN-Identity, + ReceiveStatusofULPDCPSDUs, + Registration-Request, + RelativeNarrowbandTxPower, + RadioResourceStatus, + UE-RLF-Report-Container, + RRC-Context, + ServedCell-Information, + ServedCells, + ShortMAC-I, + SRVCCOperationPossible, + SubscriberProfileIDforRFP, + TargeteNBtoSource-eNBTransparentContainer, + TimeToWait, + TraceActivation, + TraceDepth, + + TransportLayerAddress, + UEAggregateMaximumBitRate, + UE-HistoryInformation, + UE-S1AP-ID, + UESecurityCapabilities, + UE-X2AP-ID, + UL-HighInterferenceIndicationInfo, + UL-InterferenceOverloadIndication, + HWLoadIndicator, + S1TNLLoadIndicator, + Measurement-ID, + ReportCharacteristics, + MobilityParametersInformation, + MobilityParametersModificationRange + + + + +FROM X2AP-IEs + + PrivateIE-Container{}, + ProtocolExtensionContainer{}, + ProtocolIE-Container{}, + ProtocolIE-ContainerList{}, + ProtocolIE-ContainerPair{}, + ProtocolIE-ContainerPairList{}, + ProtocolIE-Single-Container{}, + X2AP-PRIVATE-IES, + X2AP-PROTOCOL-EXTENSION, + X2AP-PROTOCOL-IES, + X2AP-PROTOCOL-IES-PAIR +FROM X2AP-Containers + + + id-ActivatedCellList, + id-Cause, + id-CellInformation, + id-CellInformation-Item, + id-CellMeasurementResult, + id-CellMeasurementResult-Item, + id-CellToReport, + id-CellToReport-Item, + id-CompositeAvailableCapacityGroup, + id-CriticalityDiagnostics, + id-DeactivationIndication, + id-E-RABs-Admitted-Item, + id-E-RABs-Admitted-List, + id-E-RABs-NotAdmitted-List, + id-E-RABs-SubjectToStatusTransfer-List, + id-E-RABs-SubjectToStatusTransfer-Item, + id-E-RABs-ToBeSetup-Item, + id-GlobalENB-ID, + id-GUGroupIDList, + id-GUGroupIDToAddList, + id-GUGroupIDToDeleteList, + id-GUMMEI-ID, + id-New-eNB-UE-X2AP-ID, + id-Old-eNB-UE-X2AP-ID, + id-Registration-Request, + id-ReportingPeriodicity, + id-ServedCells, + id-ServedCellsToActivate, + id-ServedCellsToAdd, + id-ServedCellsToModify, + id-ServedCellsToDelete, + id-SRVCCOperationPossible, + id-TargetCell-ID, + id-TargeteNBtoSource-eNBTransparentContainer, + id-TimeToWait, + id-TraceActivation, + id-UE-ContextInformation, + id-UE-HistoryInformation, + id-UE-X2AP-ID, + id-Measurement-ID, + id-ReportCharacteristics, + id-ENB1-Measurement-ID, + id-ENB2-Measurement-ID, + id-ENB1-Cell-ID, + id-ENB2-Cell-ID, + id-ENB2-Proposed-Mobility-Parameters, + id-ENB1-Mobility-Parameters, + id-ENB2-Mobility-Parameters-Modification-Range, + id-FailureCellPCI, + id-Re-establishmentCellECGI, + id-FailureCellCRNTI, + id-ShortMAC-I, + id-SourceCellECGI, + id-FailureCellECGI, + id-HandoverReportType, + id-UE-RLF-Report-Container, + + + maxCellineNB, + maxnoofBearers, + maxnoofPDCP-SN + +FROM X2AP-Constants; + +-- ************************************************************** +-- +-- HANDOVER REQUEST +-- +-- ************************************************************** + +HandoverRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverRequest-IEs}}, + ... +} + +HandoverRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory } | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } | + { ID id-TargetCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory } | + { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory } | + { ID id-UE-ContextInformation CRITICALITY reject TYPE UE-ContextInformation PRESENCE mandatory } | + { ID id-UE-HistoryInformation CRITICALITY ignore TYPE UE-HistoryInformation PRESENCE mandatory } | + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional } | + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional }, + ... +} + +UE-ContextInformation ::= SEQUENCE { + mME-UE-S1AP-ID UE-S1AP-ID, + uESecurityCapabilities UESecurityCapabilities, + aS-SecurityInformation AS-SecurityInformation, + uEaggregateMaximumBitRate UEAggregateMaximumBitRate, + subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, + e-RABs-ToBeSetup-List E-RABs-ToBeSetup-List, + rRC-Context RRC-Context, + handoverRestrictionList HandoverRestrictionList OPTIONAL, + locationReportingInformation LocationReportingInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {UE-ContextInformation-ExtIEs} } OPTIONAL, + ... +} + +UE-ContextInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABs-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetup-ItemIEs} } + +E-RABs-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-ToBeSetup-Item CRITICALITY ignore TYPE E-RABs-ToBeSetup-Item PRESENCE mandatory }, + ... +} + +E-RABs-ToBeSetup-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, + dL-Forwarding DL-Forwarding OPTIONAL, + uL-GTPtunnelEndpoint GTPtunnelEndpoint, + iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetup-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-ToBeSetup-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- HANDOVER REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +HandoverRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverRequestAcknowledge-IEs}}, + ... +} + +HandoverRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-E-RABs-Admitted-List CRITICALITY ignore TYPE E-RABs-Admitted-List PRESENCE mandatory} | + { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional} | + { ID id-TargeteNBtoSource-eNBTransparentContainer CRITICALITY ignore TYPE TargeteNBtoSource-eNBTransparentContainer PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +E-RABs-Admitted-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ItemIEs} } + +E-RABs-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-Admitted-Item CRITICALITY ignore TYPE E-RABs-Admitted-Item PRESENCE mandatory } +} + +E-RABs-Admitted-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, + dL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-Item-ExtIEs} } OPTIONAL, + ... +} + +E-RABs-Admitted-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- HANDOVER PREPARATION FAILURE +-- +-- ************************************************************** + +HandoverPreparationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverPreparationFailure-IEs}}, + ... +} + +HandoverPreparationFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + + ... +} + +-- ************************************************************** +-- +-- Handover Report +-- +-- ************************************************************** + +HandoverReport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverReport-IEs}}, + ... +} + +HandoverReport-IEs X2AP-PROTOCOL-IES ::= { + { ID id-HandoverReportType CRITICALITY ignore TYPE HandoverReportType PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | + { ID id-SourceCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-FailureCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory} | + { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to “HO to Wrong Cell” -- , + ... +} + +-- ************************************************************** +-- +-- SN Status Transfer +-- +-- ************************************************************** + +SNStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SNStatusTransfer-IEs}}, + ... +} + +SNStatusTransfer-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-E-RABs-SubjectToStatusTransfer-List CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-List PRESENCE mandatory} , + ... +} + +E-RABs-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { { E-RABs-SubjectToStatusTransfer-ItemIEs} } + +E-RABs-SubjectToStatusTransfer-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RABs-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-Item PRESENCE mandatory } +} + +E-RABs-SubjectToStatusTransfer-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + + receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, + uL-COUNTvalue COUNTvalue, + dL-COUNTvalue COUNTvalue, + iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL, + ... +} + +E-RABs-SubjectToStatusTransfer-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + + + +-- ************************************************************** +-- +-- UE Context Release +-- +-- ************************************************************** + +UEContextRelease ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextRelease-IEs}}, + ... +} + +UEContextRelease-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} , + ... +} + + +-- ************************************************************** +-- +-- HANDOVER CANCEL +-- +-- ************************************************************** + +HandoverCancel ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverCancel-IEs}}, + ... +} + +HandoverCancel-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} | + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} , + ... +} + +-- ************************************************************** +-- +-- ERROR INDICATION +-- +-- ************************************************************** + +ErrorIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}}, + ... +} + +ErrorIndication-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} | + { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional} , + ... +} + +-- ************************************************************** +-- +-- Reset Request +-- +-- ************************************************************** + +ResetRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResetRequest-IEs}}, + ... +} + +ResetRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Reset Response +-- +-- ************************************************************** + +ResetResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResetResponse-IEs}}, + ... +} + +ResetResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- X2 SETUP REQUEST +-- +-- ************************************************************** + +X2SetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupRequest-IEs}}, + ... +} + +X2SetupRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory} | + { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory} | + { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}, +... +} + + + +-- ************************************************************** +-- +-- X2 SETUP RESPONSE +-- +-- ************************************************************** + +X2SetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupResponse-IEs}}, + ... +} + +X2SetupResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory} | + { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory} | + { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + + +-- ************************************************************** +-- +-- X2 SETUP FAILURE +-- +-- ************************************************************** + +X2SetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{X2SetupFailure-IEs}}, + ... +} + +X2SetupFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + + ... +} + + + +-- ************************************************************** +-- +-- LOAD INFORMATION +-- +-- ************************************************************** + +LoadInformation ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{LoadInformation-IEs}}, + ... +} + +LoadInformation-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CellInformation CRITICALITY ignore TYPE CellInformation-List PRESENCE mandatory} , + ... +} + +CellInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellInformation-ItemIEs} } + +CellInformation-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellInformation-Item CRITICALITY ignore TYPE CellInformation-Item PRESENCE mandatory } +} + +CellInformation-Item ::= SEQUENCE { + cell-ID ECGI, + ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication OPTIONAL, + ul-HighInterferenceIndicationInfo UL-HighInterferenceIndicationInfo OPTIONAL, + relativeNarrowbandTxPower RelativeNarrowbandTxPower OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CellInformation-Item-ExtIEs} } OPTIONAL, + ... +} + +CellInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE +-- +-- ************************************************************** + +ENBConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdate-IEs}}, + ... +} + +ENBConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ServedCellsToAdd CRITICALITY reject TYPE ServedCells PRESENCE optional} | + { ID id-ServedCellsToModify CRITICALITY reject TYPE ServedCellsToModify PRESENCE optional} | + { ID id-ServedCellsToDelete CRITICALITY reject TYPE Old-ECGIs PRESENCE optional} | + { ID id-GUGroupIDToAddList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional} | + { ID id-GUGroupIDToDeleteList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}, + ... +} + +ServedCellsToModify::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToModify-Item + +ServedCellsToModify-Item::= SEQUENCE { + old-ecgi ECGI, + servedCellInfo ServedCell-Information, + neighbour-Info Neighbour-Information OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ServedCellsToModify-Item-ExtIEs} } OPTIONAL, + ... +} + +ServedCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-DeactivationIndication CRITICALITY ignore EXTENSION DeactivationIndication PRESENCE optional }, + ... +} + + +Old-ECGIs::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE ACKNOWLEDGE +-- +-- ************************************************************** + +ENBConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateAcknowledge-IEs}}, + ... +} + +ENBConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, +... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE FAIURE +-- +-- ************************************************************** + +ENBConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateFailure-IEs}}, + ... +} + +ENBConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + + +-- ************************************************************** +-- +-- Resource Status Request +-- +-- ************************************************************** + +ResourceStatusRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusRequest-IEs}}, + ... +} + +ResourceStatusRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY ignore TYPE Measurement-ID PRESENCE conditional}|-- The IE shall be present if the Registration Request IE is set to “Stop”-- + { ID id-Registration-Request CRITICALITY reject TYPE Registration-Request PRESENCE mandatory} | + { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE optional} | + { ID id-CellToReport CRITICALITY ignore TYPE CellToReport-List PRESENCE mandatory} | + { ID id-ReportingPeriodicity CRITICALITY ignore TYPE ReportingPeriodicity PRESENCE optional} , + ... +} + + +CellToReport-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellToReport-ItemIEs} } + +CellToReport-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellToReport-Item CRITICALITY ignore TYPE CellToReport-Item PRESENCE mandatory } +} + +CellToReport-Item ::= SEQUENCE { + cell-ID ECGI, + iE-Extensions ProtocolExtensionContainer { {CellToReport-Item-ExtIEs} } OPTIONAL, + ... +} + +CellToReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +ReportingPeriodicity ::= ENUMERATED { + one-thousand-ms, + two-thousand-ms, + five-thousand-ms, + ten-thousand-ms, +... +} + + +-- ************************************************************** +-- +-- Resource Status Response +-- +-- ************************************************************** + +ResourceStatusResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusResponse-IEs}}, + ... +} + +ResourceStatusResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- Resource Status Failure +-- +-- ************************************************************** + +ResourceStatusFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusFailure-IEs}}, + ... +} + +ResourceStatusFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- Resource Status Update +-- +-- ************************************************************** + +ResourceStatusUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResourceStatusUpdate-IEs}}, + ... +} + +ResourceStatusUpdate-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-CellMeasurementResult CRITICALITY ignore TYPE CellMeasurementResult-List PRESENCE mandatory}, + ... +} + +CellMeasurementResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellMeasurementResult-ItemIEs} } + +CellMeasurementResult-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CellMeasurementResult-Item CRITICALITY ignore TYPE CellMeasurementResult-Item PRESENCE mandatory } +} + +CellMeasurementResult-Item ::= SEQUENCE { + cell-ID ECGI, + hWOverLoadIndicator HWLoadIndicator OPTIONAL, + s1TNLOverLoadIndicator S1TNLLoadIndicator OPTIONAL, + radioResourceStatus RadioResourceStatus OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CellMeasurementResult-Item-ExtIEs} } OPTIONAL, + ... +} + +CellMeasurementResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-CompositeAvailableCapacityGroup CRITICALITY ignore EXTENSION CompositeAvailableCapacityGroup PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- PRIVATE MESSAGE +-- +-- ************************************************************** + +PrivateMessage ::= SEQUENCE { + privateIEs PrivateIE-Container {{PrivateMessage-IEs}}, + ... +} + +PrivateMessage-IEs X2AP-PRIVATE-IES ::= { + ... +} + +-- ************************************************************** +-- +-- MOBILITY CHANGE REQUEST +-- +-- ************************************************************** + +MobilityChangeRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{MobilityChangeRequest-IEs}}, + ... +} + +MobilityChangeRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }| + { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }| + { ID id-ENB1-Mobility-Parameters CRITICALITY ignore TYPE MobilityParametersInformation PRESENCE optional }| + { ID id-ENB2-Proposed-Mobility-Parameters CRITICALITY reject TYPE MobilityParametersInformation PRESENCE mandatory }| + { ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- MOBILITY CHANGE ACKNOWLEDGE +-- +-- ************************************************************** + +MobilityChangeAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{MobilityChangeAcknowledge-IEs}}, + ... +} + +MobilityChangeAcknowledge-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }| + { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- MOBILITY CHANGE FAILURE +-- +-- ************************************************************** + +MobilityChangeFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{MobilityChangeFailure-IEs}}, + ... +} + +MobilityChangeFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ENB1-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory }| + { ID id-ENB2-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-ENB2-Mobility-Parameters-Modification-Range CRITICALITY ignore TYPE MobilityParametersModificationRange PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- Radio Link Failure Indication +-- +-- ************************************************************** + +RLFIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RLFIndication-IEs}}, + ... +} + +RLFIndication-IEs X2AP-PROTOCOL-IES ::= { + { ID id-FailureCellPCI CRITICALITY ignore TYPE PCI PRESENCE mandatory}| + { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-FailureCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE mandatory}| + { ID id-ShortMAC-I CRITICALITY ignore TYPE ShortMAC-I PRESENCE optional}| + { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- Cell Activation Request +-- +-- ************************************************************** + +CellActivationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationRequest-IEs}}, + ... +} + +CellActivationRequest-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ServedCellsToActivate CRITICALITY reject TYPE ServedCellsToActivate PRESENCE mandatory }, + ... +} + +ServedCellsToActivate::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToActivate-Item + +ServedCellsToActivate-Item::= SEQUENCE { + ecgi ECGI, + iE-Extensions ProtocolExtensionContainer { { ServedCellsToActivate-Item-ExtIEs} } OPTIONAL, + ... +} + +ServedCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Cell Activation Response +-- +-- ************************************************************** + +CellActivationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationResponse-IEs}}, + ... +} + +CellActivationResponse-IEs X2AP-PROTOCOL-IES ::= { + { ID id-ActivatedCellList CRITICALITY ignore TYPE ActivatedCellList PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +ActivatedCellList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ActivatedCellList-Item + +ActivatedCellList-Item::= SEQUENCE { + ecgi ECGI, + iE-Extensions ProtocolExtensionContainer { { ActivatedCellList-Item-ExtIEs} } OPTIONAL, + ... +} + +ActivatedCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +--************************************************************** +-- +-- CELL ACTIVATION FAILURE +-- +-- ************************************************************** + +CellActivationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationFailure-IEs}}, + ... +} + +CellActivationFailure-IEs X2AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +END + + +-- ************************************************************** +-- +-- Information Element Definitions +-- +-- ************************************************************** + +X2AP-IEs { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-IEs (2) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + + id-E-RAB-Item, + id-Number-of-Antennaports, + id-MBSFN-Subframe-Info, + id-PRACH-Configuration, + + maxnoofBearers, + maxCellineNB, + maxEARFCN, + maxInterfaces, + + maxnoofBPLMNs, + maxnoofCells, + maxnoofEPLMNs, + maxnoofEPLMNsPlusOne, + maxnoofForbLACs, + maxnoofForbTACs, + maxnoofNeighbours, + maxnoofPRBs, + maxNrOfErrors, + maxPools, + maxnoofMBSFN + +FROM X2AP-Constants + + Criticality, + ProcedureCode, + ProtocolIE-ID, + TriggeringMessage +FROM X2AP-CommonDataTypes + + ProtocolExtensionContainer{}, + ProtocolIE-Single-Container{}, + + X2AP-PROTOCOL-EXTENSION, + X2AP-PROTOCOL-IES +FROM X2AP-Containers; + +-- A + +AS-SecurityInformation ::= SEQUENCE { + key-eNodeB-star Key-eNodeB-Star, + nextHopChainingCount NextHopChainingCount, + iE-Extensions ProtocolExtensionContainer { { AS-SecurityInformation-ExtIEs} } OPTIONAL, + ... +} + +AS-SecurityInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +AllocationAndRetentionPriority ::= SEQUENCE { + priorityLevel PriorityLevel, + pre-emptionCapability Pre-emptionCapability, + pre-emptionVulnerability Pre-emptionVulnerability, + iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, + ... +} + +AllocationAndRetentionPriority-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- B + + +BitRate ::= INTEGER (0..10000000000) +BroadcastPLMNs-Item ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF PLMN-Identity + + +-- C + +CapacityValue ::= INTEGER (0..100) + +CellCapacityClassValue ::= INTEGER (1..100, ...) + +Cause ::= CHOICE { + radioNetwork CauseRadioNetwork, + transport CauseTransport, + protocol CauseProtocol, + misc CauseMisc, + ... +} + +CauseMisc ::= ENUMERATED { + control-processing-overload, + hardware-failure, + om-intervention, + not-enough-user-plane-processing-resources, + unspecified, + ... +} + +CauseProtocol ::= ENUMERATED { + transfer-syntax-error, + abstract-syntax-error-reject, + abstract-syntax-error-ignore-and-notify, + message-not-compatible-with-receiver-state, + semantic-error, + unspecified, + abstract-syntax-error-falsely-constructed-message, + ... +} + +CauseRadioNetwork ::= ENUMERATED { + handover-desirable-for-radio-reasons, + time-critical-handover, + resource-optimisation-handover, + reduce-load-in-serving-cell, + partial-handover, + unknown-new-eNB-UE-X2AP-ID, + unknown-old-eNB-UE-X2AP-ID, + unknown-pair-of-UE-X2AP-ID, + ho-target-not-allowed, + tx2relocoverall-expiry, + trelocprep-expiry, + cell-not-available, + no-radio-resources-available-in-target-cell, + invalid-MME-GroupID, + unknown-MME-Code, + encryption-and-or-integrity-protection-algorithms-not-supported, + reportCharacteristicsEmpty, + noReportPeriodicity, + existingMeasurementID, + unknown-eNB-Measurement-ID, + measurement-temporarily-not-available, + unspecified, + ..., + load-balancing, + handover-optimisation, + value-out-of-allowed-range, + multiple-E-RAB-ID-instances, + switch-off-ongoing, + not-supported-QCI-value + +} + +CauseTransport ::= ENUMERATED { + transport-resource-unavailable, + unspecified, + ... +} + +Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ... } + + + +CellType ::= SEQUENCE { + cell-Size Cell-Size, + iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL, + ... +} + +CellType-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompositeAvailableCapacityGroup ::= SEQUENCE { + dL-CompositeAvailableCapacity CompositeAvailableCapacity, + uL-CompositeAvailableCapacity CompositeAvailableCapacity, + iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacityGroup-ExtIEs} } OPTIONAL, + ... +} + +CompositeAvailableCapacityGroup-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompositeAvailableCapacity ::= SEQUENCE { + cellCapacityClassValue CellCapacityClassValue OPTIONAL, + capacityValue CapacityValue, + iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacity-ExtIEs} } OPTIONAL, + ... +} + +CompositeAvailableCapacity-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTvalue ::= SEQUENCE { + pDCP-SN PDCP-SN, + hFN HFN, + iE-Extensions ProtocolExtensionContainer { { COUNTvalue-ExtIEs} } OPTIONAL, + ... +} + +COUNTvalue-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +CriticalityDiagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL, + ... +} + + +CriticalityDiagnostics-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF + SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-List-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +CRNTI ::= BIT STRING (SIZE (16)) + +CyclicPrefixDL ::= ENUMERATED { + normal, + extended, + ... +} + +CyclicPrefixUL ::= ENUMERATED { + normal, + extended, + ... +} + + +-- D + +DeactivationIndication::= ENUMERATED { + deactivated, + ... +} + +DL-Forwarding ::= ENUMERATED { + dL-forwardingProposed, + ... +} + +-- E + +EARFCN ::= INTEGER (0..maxEARFCN) + +FDD-Info ::= SEQUENCE { + uL-EARFCN EARFCN, + dL-EARFCN EARFCN, + uL-Transmission-Bandwidth Transmission-Bandwidth, + dL-Transmission-Bandwidth Transmission-Bandwidth, + iE-Extensions ProtocolExtensionContainer { {FDD-Info-ExtIEs} } OPTIONAL, + ... +} + +FDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TDD-Info ::= SEQUENCE { + eARFCN EARFCN, + transmission-Bandwidth Transmission-Bandwidth, + subframeAssignment SubframeAssignment, + specialSubframe-Info SpecialSubframe-Info, + iE-Extensions ProtocolExtensionContainer { {TDD-Info-ExtIEs} } OPTIONAL, + ... +} +TDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +EUTRA-Mode-Info ::= CHOICE { + fDD FDD-Info, + tDD TDD-Info, + ... +} + +ECGI ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + eUTRANcellIdentifier EUTRANCellIdentifier, + iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL, + ... +} + +ECGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENB-ID ::= CHOICE { + macro-eNB-ID BIT STRING (SIZE (20)), + home-eNB-ID BIT STRING (SIZE (28)), + ... +} + +EncryptionAlgorithms ::= BIT STRING (SIZE (16, ...)) + +EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMN-Identity + +E-RAB-ID ::= INTEGER (0..15, ...) + +E-RAB-Level-QoS-Parameters ::= SEQUENCE { + qCI QCI, + allocationAndRetentionPriority AllocationAndRetentionPriority, + gbrQosInformation GBR-QosInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { E-RAB-Level-QoS-Parameters-ExtIEs} } OPTIONAL, + ... +} + +E-RAB-Level-QoS-Parameters-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RAB-List ::= SEQUENCE (SIZE(1.. maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RAB-ItemIEs} } + +E-RAB-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-E-RAB-Item CRITICALITY ignore TYPE E-RAB-Item PRESENCE mandatory }, + ... +} + +E-RAB-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RAB-Item-ExtIEs} } OPTIONAL, + ... +} + +E-RAB-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +EUTRANCellIdentifier ::= BIT STRING (SIZE (28)) + +EUTRANTraceID ::= OCTET STRING (SIZE (8)) + + +EventType ::= ENUMERATED{ + change-of-serving-cell, + ... +} + + +-- F + +ForbiddenInterRATs ::= ENUMERATED { + all, + geran, + utran, + cdma2000, + ..., + geranandutran, + cdma2000andutran + +} + +ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item + +ForbiddenTAs-Item ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + forbiddenTACs ForbiddenTACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenTAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC + +ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item + +ForbiddenLAs-Item ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + forbiddenLACs ForbiddenLACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenLAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC + +Fourframes ::= BIT STRING (SIZE (24)) + +-- G + +GBR-QosInformation ::= SEQUENCE { + e-RAB-MaximumBitrateDL BitRate, + e-RAB-MaximumBitrateUL BitRate, + e-RAB-GuaranteedBitrateDL BitRate, + e-RAB-GuaranteedBitrateUL BitRate, + iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL, + ... +} + +GBR-QosInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GlobalENB-ID ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + eNB-ID ENB-ID, + iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL, + ... +} + +GlobalENB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GTPtunnelEndpoint ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEI, + iE-Extensions ProtocolExtensionContainer { {GTPtunnelEndpoint-ExtIEs} } OPTIONAL, + ... +} + +GTPtunnelEndpoint-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +GTP-TEI ::= OCTET STRING (SIZE (4)) + +GUGroupIDList ::= SEQUENCE (SIZE (1..maxPools)) OF GU-Group-ID + + +GU-Group-ID ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + mME-Group-ID MME-Group-ID, + iE-Extensions ProtocolExtensionContainer { {GU-Group-ID-ExtIEs} } OPTIONAL, + ... +} + +GU-Group-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +GUMMEI ::= SEQUENCE { + + gU-Group-ID GU-Group-ID, + mME-Code MME-Code, + iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, + ... +} + +GUMMEI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- H + +HandoverReportType ::= ENUMERATED { + hoTooEarly, + hoToWrongCell, + ... +} + +HandoverRestrictionList ::= SEQUENCE { + servingPLMN PLMN-Identity, + equivalentPLMNs EPLMNs OPTIONAL, + forbiddenTAs ForbiddenTAs OPTIONAL, + forbiddenLAs ForbiddenLAs OPTIONAL, + forbiddenInterRATs ForbiddenInterRATs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, + ... +} + +HandoverRestrictionList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +HFN ::= INTEGER (0..1048575) + +HWLoadIndicator ::= SEQUENCE { + dLHWLoadIndicator LoadIndicator, + uLHWLoadIndicator LoadIndicator, + iE-Extensions ProtocolExtensionContainer { { HWLoadIndicator-ExtIEs} } OPTIONAL, + ... +} + +HWLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- I + +IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16, ...)) + +InterfacesToTrace ::= BIT STRING (SIZE (8)) +-- J +-- K + + +Key-eNodeB-Star ::= BIT STRING (SIZE(256)) + +-- L + + +LAC ::= OCTET STRING (SIZE (2)) --(EXCEPT ('0000'H|'FFFE'H)) + +LastVisitedCell-Item ::= CHOICE { + e-UTRAN-Cell LastVisitedEUTRANCellInformation, + uTRAN-Cell LastVisitedUTRANCellInformation, + gERAN-Cell LastVisitedGERANCellInformation, + ... +} + +LastVisitedEUTRANCellInformation ::= SEQUENCE { + global-Cell-ID ECGI, + cellType CellType, + time-UE-StayedInCell Time-UE-StayedInCell, + iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, + ... +} + +LastVisitedEUTRANCellInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +LastVisitedUTRANCellInformation ::= OCTET STRING + +LastVisitedGERANCellInformation ::= CHOICE { + undefined NULL, + ... +} + + +LoadIndicator ::= ENUMERATED { + lowLoad, + mediumLoad, + highLoad, + overLoad, + ... +} + + + +LocationReportingInformation ::= SEQUENCE { + eventType EventType, + reportArea ReportArea, + iE-Extensions ProtocolExtensionContainer { {LocationReportingInformation-ExtIEs} } OPTIONAL, + ... +} + +LocationReportingInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::={ + ... +} + +-- M + + +MME-Group-ID ::= OCTET STRING (SIZE (2)) + +MME-Code ::= OCTET STRING (SIZE (1)) + +Measurement-ID ::= INTEGER (1..4095, ...) + +MBSFN-Subframe-Infolist::= SEQUENCE (SIZE(1.. maxnoofMBSFN)) OF MBSFN-Subframe-Info + +MBSFN-Subframe-Info ::= SEQUENCE { + radioframeAllocationPeriod RadioframeAllocationPeriod, + radioframeAllocationOffset RadioframeAllocationOffset, + subframeAllocation SubframeAllocation, + iE-Extensions ProtocolExtensionContainer { { MBSFN-Subframe-Info-ExtIEs } } OPTIONAL, + ... +} + +MBSFN-Subframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +MobilityParametersModificationRange ::= SEQUENCE { + handoverTriggerChangeLowerLimit INTEGER (-20..20), + handoverTriggerChangeUpperLimit INTEGER (-20..20), + ... +} + +MobilityParametersInformation ::= SEQUENCE { + handoverTriggerChange INTEGER (-20..20), + ... +} + + +-- N + +Neighbour-Information ::= SEQUENCE (SIZE (0..maxnoofNeighbours)) OF SEQUENCE { + eCGI ECGI, + pCI PCI, + eARFCN EARFCN, + iE-Extensions ProtocolExtensionContainer { {Neighbour-Information-ExtIEs} } OPTIONAL, + ... +} + +Neighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +NextHopChainingCount ::= INTEGER (0..7) + +Number-of-Antennaports ::= ENUMERATED { + an1, + an2, + an4, + ... +} + +-- O + +Oneframe ::= BIT STRING (SIZE (6)) + +-- P + +PDCP-SN ::= INTEGER (0..4095) + +PCI ::= INTEGER (0..503, ...) + + +PLMN-Identity ::= OCTET STRING (SIZE(3)) + +PRACH-Configuration ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + zeroCorrelationIndex INTEGER (0..15), + highSpeedFlag BOOLEAN, + prach-FreqOffset INTEGER (0..94), + prach-ConfigIndex INTEGER (0..63) OPTIONAL, -- present for TDD -- + iE-Extensions ProtocolExtensionContainer { {PRACH-Configuration-ExtIEs} } OPTIONAL, + ... +} + +PRACH-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +Pre-emptionCapability ::= ENUMERATED { + shall-not-trigger-pre-emption, + may-trigger-pre-emption +} + +Pre-emptionVulnerability ::= ENUMERATED { + not-pre-emptable, + pre-emptable +} + +PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) + +-- Q + +QCI ::= INTEGER (0..255) + +-- R + + +ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) + +Registration-Request ::= ENUMERATED { + start, + stop, + ... +} + +RelativeNarrowbandTxPower ::= SEQUENCE { + + rNTP-PerPRB BIT STRING (SIZE(6..110, ...)), + rNTP-Threshold RNTP-Threshold, + numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, + p-B INTEGER (0..3,...), + pDCCH-InterferenceImpact INTEGER (0..4,...), + iE-Extensions ProtocolExtensionContainer { { RelativeNarrowbandTxPower-ExtIEs} } OPTIONAL, + ... +} + +RelativeNarrowbandTxPower-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ReportArea ::= ENUMERATED{ + ecgi, + ... +} + +ReportCharacteristics ::= BIT STRING (SIZE (32)) + +RNTP-Threshold ::= ENUMERATED { + minusInfinity, + minusEleven, + minusTen, + minusNine, + minusEight, + minusSeven, + minusSix, + minusFive, + minusFour, + minusThree, + minusTwo, + minusOne, + zero, + one, + two, + three, + ... +} + +RRC-Context ::= OCTET STRING + + +RadioResourceStatus ::= SEQUENCE { + dL-GBR-PRB-usage DL-GBR-PRB-usage, + uL-GBR-PRB-usage UL-GBR-PRB-usage, + dL-non-GBR-PRB-usage DL-non-GBR-PRB-usage, + uL-non-GBR-PRB-usage UL-non-GBR-PRB-usage, + dL-Total-PRB-usage DL-Total-PRB-usage, + uL-Total-PRB-usage UL-Total-PRB-usage, + iE-Extensions ProtocolExtensionContainer { {RadioResourceStatus-ExtIEs} } OPTIONAL, + ... +} + +RadioResourceStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +DL-GBR-PRB-usage::= INTEGER (0..100) + +UL-GBR-PRB-usage::= INTEGER (0..100) + +DL-non-GBR-PRB-usage::= INTEGER (0..100) + +UL-non-GBR-PRB-usage::= INTEGER (0..100) + +DL-Total-PRB-usage::= INTEGER (0..100) + +UL-Total-PRB-usage::= INTEGER (0..100) + +RadioframeAllocationPeriod ::= ENUMERATED{ + n1, + n2, + n4, + n8, + n16, + n32, + ... +} + +RadioframeAllocationOffset ::= INTEGER (0..7, ...) + +-- S + +S1TNLLoadIndicator ::= SEQUENCE { + dLS1TNLLoadIndicator LoadIndicator, + uLS1TNLLoadIndicator LoadIndicator, + iE-Extensions ProtocolExtensionContainer { { S1TNLLoadIndicator-ExtIEs} } OPTIONAL, + ... +} + +S1TNLLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + + + +ServedCells ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { + servedCellInfo ServedCell-Information, + neighbour-Info Neighbour-Information OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ServedCell-ExtIEs} } OPTIONAL, + ... +} + +ServedCell-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedCell-Information ::= SEQUENCE { + pCI PCI, + cellId ECGI, + tAC TAC, + broadcastPLMNs BroadcastPLMNs-Item, + eUTRA-Mode-Info EUTRA-Mode-Info, + iE-Extensions ProtocolExtensionContainer { {ServedCell-Information-ExtIEs} } OPTIONAL, + ... +} + +ServedCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-Number-of-Antennaports CRITICALITY ignore EXTENSION Number-of-Antennaports PRESENCE optional }| + { ID id-PRACH-Configuration CRITICALITY ignore EXTENSION PRACH-Configuration PRESENCE optional }| + { ID id-MBSFN-Subframe-Info CRITICALITY ignore EXTENSION MBSFN-Subframe-Infolist PRESENCE optional }, + ... +} + +ShortMAC-I ::= BIT STRING (SIZE(16)) + +SRVCCOperationPossible ::= ENUMERATED { + possible, + ... +} + +SubframeAssignment ::= ENUMERATED { + sa0, + sa1, + sa2, + sa3, + sa4, + sa5, + sa6, + ... +} + +SpecialSubframe-Info ::= SEQUENCE { + specialSubframePatterns SpecialSubframePatterns, + cyclicPrefixDL CyclicPrefixDL, + cyclicPrefixUL CyclicPrefixUL, + iE-Extensions ProtocolExtensionContainer { { SpecialSubframe-Info-ExtIEs} } OPTIONAL, + ... +} + +SpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + + +SpecialSubframePatterns ::= ENUMERATED { + ssp0, + ssp1, + ssp2, + ssp3, + ssp4, + ssp5, + ssp6, + ssp7, + ssp8, + ... +} + +SubscriberProfileIDforRFP ::= INTEGER (1..256) + +SubframeAllocation ::= CHOICE { + oneframe Oneframe, + fourframes Fourframes, + ... +} + +-- T + +TAC ::= OCTET STRING (SIZE (2)) + +TargeteNBtoSource-eNBTransparentContainer ::= OCTET STRING + + +TimeToWait ::= ENUMERATED { + v1s, + v2s, + v5s, + v10s, + v20s, + v60s, + ... +} + +Time-UE-StayedInCell ::= INTEGER (0..4095) + + +TraceActivation ::= SEQUENCE { + eUTRANTraceID EUTRANTraceID, + interfacesToTrace InterfacesToTrace, + traceDepth TraceDepth, + traceCollectionEntityIPAddress TraceCollectionEntityIPAddress, + iE-Extensions ProtocolExtensionContainer { {TraceActivation-ExtIEs} } OPTIONAL, + ... +} + +TraceActivation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TraceCollectionEntityIPAddress ::= BIT STRING (SIZE(1..160, ...)) + +TraceDepth ::= ENUMERATED { + minimum, + medium, + maximum, + minimumWithoutVendorSpecificExtension, + mediumWithoutVendorSpecificExtension, + maximumWithoutVendorSpecificExtension, + ... +} + + + + +Transmission-Bandwidth ::= ENUMERATED { + bw6, + bw15, + bw25, + bw50, + bw75, + bw100, + ... +} + +TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) + +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + + +-- U + +UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item + + +UE-S1AP-ID ::= INTEGER (0.. 4294967295) + +UE-X2AP-ID ::= INTEGER (0..4095) -- Value FFS + +UEAggregateMaximumBitRate ::= SEQUENCE { + uEaggregateMaximumBitRateDownlink BitRate, + uEaggregateMaximumBitRateUplink BitRate, + iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrate-ExtIEs} } OPTIONAL, + ... +} + +UEAggregate-MaximumBitrate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UESecurityCapabilities ::= SEQUENCE { + encryptionAlgorithms EncryptionAlgorithms, + integrityProtectionAlgorithms IntegrityProtectionAlgorithms, + iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL, +... +} + +UESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UL-InterferenceOverloadIndication ::= SEQUENCE (SIZE(1..maxnoofPRBs)) OF UL-InterferenceOverloadIndication-Item + +UL-InterferenceOverloadIndication-Item ::= ENUMERATED { + high-interference, + medium-interference, + low-interference, + ... +} + +UL-HighInterferenceIndicationInfo ::= SEQUENCE (SIZE(1..maxCellineNB)) OF UL-HighInterferenceIndicationInfo-Item + +UL-HighInterferenceIndicationInfo-Item ::= SEQUENCE { + target-Cell-ID ECGI, + ul-interferenceindication UL-HighInterferenceIndication, + iE-Extensions ProtocolExtensionContainer { { UL-HighInterferenceIndicationInfo-Item-ExtIEs} } OPTIONAL, + ... +} + +UL-HighInterferenceIndicationInfo-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UL-HighInterferenceIndication ::= BIT STRING (SIZE(1..110, ...)) + +UE-RLF-Report-Container::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the rlfReport field contained in the UEInformationResponse message as defined in TS 36.331 [9] + +-- V +-- W +-- X +-- Y +-- Z + +END + + +-- ************************************************************** +-- +-- Common definitions +-- +-- ************************************************************** + +X2AP-CommonDataTypes { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-CommonDataTypes (3) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- Extension constants +-- +-- ************************************************************** + +maxPrivateIEs INTEGER ::= 65535 +maxProtocolExtensions INTEGER ::= 65535 +maxProtocolIEs INTEGER ::= 65535 + +-- ************************************************************** +-- +-- Common Data Types +-- +-- ************************************************************** + +Criticality ::= ENUMERATED { reject, ignore, notify } + +Presence ::= ENUMERATED { optional, conditional, mandatory } + +PrivateIE-ID ::= CHOICE { + local INTEGER (0.. maxPrivateIEs), + global OBJECT IDENTIFIER +} + +ProcedureCode ::= INTEGER (0..255) + + +ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs) + + +TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome} + +END + + +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +X2AP-Constants { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Constants (4) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + ProcedureCode, + ProtocolIE-ID +FROM X2AP-CommonDataTypes; + +-- ************************************************************** +-- +-- Elementary Procedures +-- +-- ************************************************************** + +id-handoverPreparation ProcedureCode ::= 0 +id-handoverCancel ProcedureCode ::= 1 +id-loadIndication ProcedureCode ::= 2 +id-errorIndication ProcedureCode ::= 3 +id-snStatusTransfer ProcedureCode ::= 4 +id-uEContextRelease ProcedureCode ::= 5 +id-x2Setup ProcedureCode ::= 6 +id-reset ProcedureCode ::= 7 +id-eNBConfigurationUpdate ProcedureCode ::= 8 +id-resourceStatusReportingInitiation ProcedureCode ::= 9 +id-resourceStatusReporting ProcedureCode ::= 10 +id-privateMessage ProcedureCode ::= 11 +id-mobilitySettingsChange ProcedureCode ::= 12 +id-rLFIndication ProcedureCode ::= 13 +id-handoverReport ProcedureCode ::= 14 +id-cellActivation ProcedureCode ::= 15 + + + +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** + +maxEARFCN INTEGER ::= 65535 +maxInterfaces INTEGER ::= 16 +maxCellineNB INTEGER ::= 256 +maxnoofBearers INTEGER ::= 256 +maxNrOfErrors INTEGER ::= 256 +maxnoofPDCP-SN INTEGER ::= 16 -- FFS Value to be checked +maxnoofEPLMNs INTEGER ::= 15 +maxnoofEPLMNsPlusOne INTEGER ::= 16 +maxnoofForbLACs INTEGER ::= 4096 +maxnoofForbTACs INTEGER ::= 4096 +maxnoofBPLMNs INTEGER ::= 6 +maxnoofNeighbours INTEGER ::= 512 +maxnoofPRBs INTEGER ::= 110 +maxPools INTEGER ::= 16 +maxnoofCells INTEGER ::= 16 +maxnoofMBSFN INTEGER ::= 8 + + + + +-- ************************************************************** +-- +-- IEs +-- +-- ************************************************************** + +id-E-RABs-Admitted-Item ProtocolIE-ID ::= 0 +id-E-RABs-Admitted-List ProtocolIE-ID ::= 1 +id-E-RAB-Item ProtocolIE-ID ::= 2 +id-E-RABs-NotAdmitted-List ProtocolIE-ID ::= 3 +id-E-RABs-ToBeSetup-Item ProtocolIE-ID ::= 4 +id-Cause ProtocolIE-ID ::= 5 +id-CellInformation ProtocolIE-ID ::= 6 +id-CellInformation-Item ProtocolIE-ID ::= 7 +id-New-eNB-UE-X2AP-ID ProtocolIE-ID ::= 9 +id-Old-eNB-UE-X2AP-ID ProtocolIE-ID ::= 10 +id-TargetCell-ID ProtocolIE-ID ::= 11 +id-TargeteNBtoSource-eNBTransparentContainer ProtocolIE-ID ::= 12 +id-TraceActivation ProtocolIE-ID ::= 13 +id-UE-ContextInformation ProtocolIE-ID ::= 14 +id-UE-HistoryInformation ProtocolIE-ID ::= 15 +id-UE-X2AP-ID ProtocolIE-ID ::= 16 +id-CriticalityDiagnostics ProtocolIE-ID ::= 17 +id-E-RABs-SubjectToStatusTransfer-List ProtocolIE-ID ::= 18 +id-E-RABs-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 19 +id-ServedCells ProtocolIE-ID ::= 20 +id-GlobalENB-ID ProtocolIE-ID ::= 21 +id-TimeToWait ProtocolIE-ID ::= 22 +id-GUMMEI-ID ProtocolIE-ID ::= 23 +id-GUGroupIDList ProtocolIE-ID ::= 24 +id-ServedCellsToAdd ProtocolIE-ID ::= 25 +id-ServedCellsToModify ProtocolIE-ID ::= 26 +id-ServedCellsToDelete ProtocolIE-ID ::= 27 +id-Registration-Request ProtocolIE-ID ::= 28 +id-CellToReport ProtocolIE-ID ::= 29 +id-ReportingPeriodicity ProtocolIE-ID ::= 30 +id-CellToReport-Item ProtocolIE-ID ::= 31 +id-CellMeasurementResult ProtocolIE-ID ::= 32 +id-CellMeasurementResult-Item ProtocolIE-ID ::= 33 +id-GUGroupIDToAddList ProtocolIE-ID ::= 34 +id-GUGroupIDToDeleteList ProtocolIE-ID ::= 35 +id-SRVCCOperationPossible ProtocolIE-ID ::= 36 +id-Measurement-ID ProtocolIE-ID ::= 37 +id-ReportCharacteristics ProtocolIE-ID ::= 38 +id-ENB1-Measurement-ID ProtocolIE-ID ::= 39 +id-ENB2-Measurement-ID ProtocolIE-ID ::= 40 +id-Number-of-Antennaports ProtocolIE-ID ::= 41 +id-CompositeAvailableCapacityGroup ProtocolIE-ID ::= 42 +id-ENB1-Cell-ID ProtocolIE-ID ::= 43 +id-ENB2-Cell-ID ProtocolIE-ID ::= 44 +id-ENB2-Proposed-Mobility-Parameters ProtocolIE-ID ::= 45 +id-ENB1-Mobility-Parameters ProtocolIE-ID ::= 46 +id-ENB2-Mobility-Parameters-Modification-Range ProtocolIE-ID ::= 47 +id-FailureCellPCI ProtocolIE-ID ::= 48 +id-Re-establishmentCellECGI ProtocolIE-ID ::= 49 +id-FailureCellCRNTI ProtocolIE-ID ::= 50 +id-ShortMAC-I ProtocolIE-ID ::= 51 +id-SourceCellECGI ProtocolIE-ID ::= 52 +id-FailureCellECGI ProtocolIE-ID ::= 53 +id-HandoverReportType ProtocolIE-ID ::= 54 +id-PRACH-Configuration ProtocolIE-ID ::= 55 +id-MBSFN-Subframe-Info ProtocolIE-ID ::= 56 +id-ServedCellsToActivate ProtocolIE-ID ::= 57 +id-ActivatedCellList ProtocolIE-ID ::= 58 +id-DeactivationIndication ProtocolIE-ID ::= 59 +id-UE-RLF-Report-Container ProtocolIE-ID ::= 60 + +END + + +-- ************************************************************** +-- +-- Container definitions +-- +-- ************************************************************** + +X2AP-Containers { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Containers (5) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + maxPrivateIEs, + maxProtocolExtensions, + maxProtocolIEs, + Criticality, + Presence, + PrivateIE-ID, + ProtocolIE-ID +FROM X2AP-CommonDataTypes; + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +X2AP-PROTOCOL-IES ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +X2AP-PROTOCOL-IES-PAIR ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &firstCriticality Criticality, + &FirstValue, + &secondCriticality Criticality, + &SecondValue, + &presence Presence +} +WITH SYNTAX { + ID &id + FIRST CRITICALITY &firstCriticality + FIRST TYPE &FirstValue + SECOND CRITICALITY &secondCriticality + SECOND TYPE &SecondValue + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol Extensions +-- +-- ************************************************************** + +X2AP-PROTOCOL-EXTENSION ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Extension, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + EXTENSION &Extension + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Private IEs +-- +-- ************************************************************** + +X2AP-PRIVATE-IES ::= CLASS { + &id PrivateIE-ID, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Container for Protocol IEs +-- +-- ************************************************************** + +ProtocolIE-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Single-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Field {X2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-IES.&id ({IEsSetParam}), + criticality X2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), + value X2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Protocol IE Pairs +-- +-- ************************************************************** + +ProtocolIE-ContainerPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-FieldPair {{IEsSetParam}} + +ProtocolIE-FieldPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), + firstCriticality X2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), + firstValue X2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), + secondCriticality X2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), + secondValue X2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container Lists for Protocol IE Containers +-- +-- ************************************************************** + +ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-Container {{IEsSetParam}} + +ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-ContainerPair {{IEsSetParam}} + +-- ************************************************************** +-- +-- Container for Protocol Extensions +-- +-- ************************************************************** + +ProtocolExtensionContainer {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= + SEQUENCE (SIZE (1..maxProtocolExtensions)) OF + ProtocolExtensionField {{ExtensionSetParam}} + +ProtocolExtensionField {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { + id X2AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), + criticality X2AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), + extensionValue X2AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Private IEs +-- +-- ************************************************************** + +PrivateIE-Container {X2AP-PRIVATE-IES : IEsSetParam} ::= + SEQUENCE (SIZE (1..maxPrivateIEs)) OF + PrivateIE-Field {{IEsSetParam}} + +PrivateIE-Field {X2AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { + id X2AP-PRIVATE-IES.&id ({IEsSetParam}), + criticality X2AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), + value X2AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) +} + +END diff --git a/openair2/X2AP/x2ap_common.c b/openair2/X2AP/x2ap_common.c index d92f2c69bb..2ac875155d 100644 --- a/openair2/X2AP/x2ap_common.c +++ b/openair2/X2AP/x2ap_common.c @@ -29,7 +29,7 @@ #include #include "x2ap_common.h" -#include "X2AP-PDU.h" +#include "X2AP_X2AP-PDU.h" int asn_debug = 0; int asn1_xer_print = 0; @@ -55,29 +55,27 @@ inline void ASN_DEBUG(const char *fmt, ...) ssize_t x2ap_generate_initiating_message( uint8_t **buffer, uint32_t *length, - X2ap_ProcedureCode_t procedureCode, - X2ap_Criticality_t criticality, + X2AP_ProcedureCode_t procedureCode, + X2AP_Criticality_t criticality, asn_TYPE_descriptor_t *td, void *sptr) { - X2AP_PDU_t pdu; + X2AP_X2AP_PDU_t pdu; ssize_t encoded; - - memset(&pdu, 0, sizeof(X2AP_PDU_t)); - - pdu.present = X2AP_PDU_PR_initiatingMessage; + memset(&pdu, 0, sizeof(X2AP_X2AP_PDU_t)); + pdu.present = X2AP_X2AP_PDU_PR_initiatingMessage; pdu.choice.initiatingMessage.procedureCode = procedureCode; pdu.choice.initiatingMessage.criticality = criticality; ANY_fromType_aper(&pdu.choice.initiatingMessage.value, td, sptr); if (asn1_xer_print) { - xer_fprint(stdout, &asn_DEF_X2AP_PDU, (void *)&pdu); + xer_fprint(stdout, &asn_DEF_X2AP_X2AP_PDU, (void *)&pdu); } /* We can safely free list of IE from sptr */ ASN_STRUCT_FREE_CONTENTS_ONLY(*td, sptr); - if ((encoded = aper_encode_to_new_buffer(&asn_DEF_X2AP_PDU, 0, &pdu, + if ((encoded = aper_encode_to_new_buffer(&asn_DEF_X2AP_X2AP_PDU, 0, &pdu, (void **)buffer)) < 0) { return -1; } @@ -89,107 +87,68 @@ ssize_t x2ap_generate_initiating_message( ssize_t x2ap_generate_successfull_outcome( uint8_t **buffer, uint32_t *length, - X2ap_ProcedureCode_t procedureCode, - X2ap_Criticality_t criticality, + X2AP_ProcedureCode_t procedureCode, + X2AP_Criticality_t criticality, asn_TYPE_descriptor_t *td, void *sptr) { - X2AP_PDU_t pdu; + X2AP_X2AP_PDU_t pdu; ssize_t encoded; - - memset(&pdu, 0, sizeof(X2AP_PDU_t)); - - pdu.present = X2AP_PDU_PR_successfulOutcome; + memset(&pdu, 0, sizeof(X2AP_X2AP_PDU_t)); + pdu.present = X2AP_X2AP_PDU_PR_successfulOutcome; pdu.choice.successfulOutcome.procedureCode = procedureCode; pdu.choice.successfulOutcome.criticality = criticality; ANY_fromType_aper(&pdu.choice.successfulOutcome.value, td, sptr); if (asn1_xer_print) { - xer_fprint(stdout, &asn_DEF_X2AP_PDU, (void *)&pdu); + xer_fprint(stdout, &asn_DEF_X2AP_X2AP_PDU, (void *)&pdu); } /* We can safely free list of IE from sptr */ ASN_STRUCT_FREE_CONTENTS_ONLY(*td, sptr); - if ((encoded = aper_encode_to_new_buffer(&asn_DEF_X2AP_PDU, 0, &pdu, + if ((encoded = aper_encode_to_new_buffer(&asn_DEF_X2AP_X2AP_PDU, 0, &pdu, (void **)buffer)) < 0) { return -1; } *length = encoded; - return encoded; } ssize_t x2ap_generate_unsuccessfull_outcome( uint8_t **buffer, uint32_t *length, - X2ap_ProcedureCode_t procedureCode, - X2ap_Criticality_t criticality, + X2AP_ProcedureCode_t procedureCode, + X2AP_Criticality_t criticality, asn_TYPE_descriptor_t *td, void *sptr) { - X2AP_PDU_t pdu; + X2AP_X2AP_PDU_t pdu; ssize_t encoded; - - memset(&pdu, 0, sizeof(X2AP_PDU_t)); - - pdu.present = X2AP_PDU_PR_unsuccessfulOutcome; + memset(&pdu, 0, sizeof(X2AP_X2AP_PDU_t)); + pdu.present = X2AP_X2AP_PDU_PR_unsuccessfulOutcome; pdu.choice.successfulOutcome.procedureCode = procedureCode; pdu.choice.successfulOutcome.criticality = criticality; ANY_fromType_aper(&pdu.choice.successfulOutcome.value, td, sptr); if (asn1_xer_print) { - xer_fprint(stdout, &asn_DEF_X2AP_PDU, (void *)&pdu); + xer_fprint(stdout, &asn_DEF_X2AP_X2AP_PDU, (void *)&pdu); } /* We can safely free list of IE from sptr */ ASN_STRUCT_FREE_CONTENTS_ONLY(*td, sptr); - if ((encoded = aper_encode_to_new_buffer(&asn_DEF_X2AP_PDU, 0, &pdu, + if ((encoded = aper_encode_to_new_buffer(&asn_DEF_X2AP_X2AP_PDU, 0, &pdu, (void **)buffer)) < 0) { return -1; } *length = encoded; - return encoded; } -X2ap_IE_t *x2ap_new_ie( - X2ap_ProtocolIE_ID_t id, - X2ap_Criticality_t criticality, - asn_TYPE_descriptor_t *type, - void *sptr) -{ - X2ap_IE_t *buff; - - if ((buff = malloc(sizeof(X2ap_IE_t))) == NULL) { - // Possible error on malloc - return NULL; - } - - memset((void *)buff, 0, sizeof(X2ap_IE_t)); - - buff->id = id; - buff->criticality = criticality; - - if (ANY_fromType_aper(&buff->value, type, sptr) < 0) { - fprintf(stderr, "Encoding of %s failed\n", type->name); - free(buff); - return NULL; - } - - if (asn1_xer_print) - if (xer_fprint(stdout, &asn_DEF_X2ap_IE, buff) < 0) { - free(buff); - return NULL; - } - - return buff; -} - -void x2ap_handle_criticality(X2ap_Criticality_t criticality) +void x2ap_handle_criticality(X2AP_Criticality_t criticality) { } diff --git a/openair2/X2AP/x2ap_common.h b/openair2/X2AP/x2ap_common.h index b7c9361476..1a4889f0f0 100644 --- a/openair2/X2AP/x2ap_common.h +++ b/openair2/X2AP/x2ap_common.h @@ -23,247 +23,17 @@ # include "config.h" #endif -#include "X2ap-ABSInformationFDD.h" -#include "X2ap-ABSInformation.h" -#include "X2ap-ABSInformationTDD.h" -#include "X2ap-ABS-Status.h" -#include "X2ap-ActivatedCellList.h" -#include "X2ap-AllocationAndRetentionPriority.h" -#include "X2ap-AreaScopeOfMDT.h" -#include "X2ap-AS-SecurityInformation.h" -#include "X2ap-BandInfo.h" -#include "X2ap-BitRate.h" -#include "X2ap-BroadcastPLMNs-Item.h" - -#include "X2ap-CapacityValue.h" -#include "X2ap-Cause.h" -#include "X2ap-CauseMisc.h" -#include "X2ap-CauseProtocol.h" -#include "X2ap-CauseRadioNetwork.h" -#include "X2ap-CauseTransport.h" -#include "X2ap-CellActivationFailure.h" -#include "X2ap-CellActivationRequest.h" -#include "X2ap-CellActivationResponse.h" -#include "X2ap-CellBasedMDT.h" -#include "X2ap-CellCapacityClassValue.h" -#include "X2ap-CellIdListforMDT.h" -#include "X2ap-CellInformation-Item.h" -#include "X2ap-CellInformation-List.h" -#include "X2ap-Cell-Size.h" -#include "X2ap-CellToReport-Item.h" -#include "X2ap-CellToReport-List.h" -#include "X2ap-CellType.h" -#include "X2ap-CellMeasurementResult-Item.h" -#include "X2ap-CellMeasurementResult-List.h" -#include "X2ap-CompleteFailureCauseInformation-Item.h" -#include "X2ap-CompleteFailureCauseInformation-List.h" -#include "X2ap-CompositeAvailableCapacityGroup.h" -#include "X2ap-CompositeAvailableCapacity.h" -#include "X2ap-COUNTvalue.h" -#include "X2ap-CriticalityDiagnostics.h" -#include "X2ap-CriticalityDiagnostics-IE-List.h" -#include "X2ap-Criticality.h" -#include "X2ap-CRNTI.h" -#include "X2ap-CSG-Id.h" -#include "X2ap-CSGMembershipStatus.h" -#include "X2ap-CyclicPrefixDL.h" -#include "X2ap-CyclicPrefixUL.h" -#include "X2ap-DeactivationIndication.h" -#include "X2ap-DL-ABS-status.h" -#include "X2ap-DL-Forwarding.h" -#include "X2ap-DL-GBR-PRB-usage.h" -#include "X2ap-DL-non-GBR-PRB-usage.h" -#include "X2ap-DL-Total-PRB-usage.h" -#include "X2ap-EARFCN.h" -#include "X2ap-ECGI.h" -#include "X2ap-ENB-ID.h" -#include "X2ap-ENBConfigurationUpdateFailure.h" -#include "X2ap-ENBConfigurationUpdateAcknowledge.h" -#include "X2ap-ENBConfigurationUpdate.h" -#include "X2ap-EncryptionAlgorithms.h" -#include "X2ap-EPLMNs.h" -#include "X2ap-E-RAB-ID.h" -#include "X2ap-E-RAB-Item.h" -#include "X2ap-E-RABs-Admitted-List.h" -#include "X2ap-E-RAB-Level-QoS-Parameters.h" -#include "X2ap-E-RAB-List.h" -#include "X2ap-E-RABs-SubjectToStatusTransfer-Item.h" -#include "X2ap-E-RABs-Admitted-Item.h" -#include "X2ap-E-RABs-SubjectToStatusTransfer-List.h" -#include "X2ap-ErrorIndication.h" -#include "X2ap-EUTRA-Mode-Info.h" -#include "X2ap-EUTRANCellIdentifier.h" -#include "X2ap-EUTRANTraceID.h" -#include "X2ap-EventType.h" - -#include "X2ap-FDD-Info.h" -#include "X2ap-ForbiddenInterRATs.h" -#include "X2ap-ForbiddenLACs.h" -#include "X2ap-ForbiddenLAs.h" -#include "X2ap-ForbiddenLAs-Item.h" -#include "X2ap-ForbiddenTACs.h" -#include "X2ap-ForbiddenTAs.h" -#include "X2ap-ForbiddenTAs-Item.h" -#include "X2ap-Fourframes.h" -#include "X2ap-FreqBandIndicator.h" -#include "X2ap-GBR-QosInformation.h" -#include "X2ap-GlobalENB-ID.h" -#include "X2ap-GTP-TEI.h" -#include "X2ap-GTPtunnelEndpoint.h" -#include "X2ap-GU-Group-ID.h" -#include "X2ap-GUGroupIDList.h" -#include "X2ap-GUMMEI.h" -#include "X2ap-HandoverCancel.h" -#include "X2ap-HandoverReportType.h" -#include "X2ap-HandoverRequest.h" -#include "X2ap-HandoverReport.h" -#include "X2ap-HandoverRestrictionList.h" -#include "X2ap-HandoverPreparationFailure.h" -#include "X2ap-HandoverRequestAcknowledge.h" - -#include "X2ap-HFN.h" -#include "X2ap-HWLoadIndicator.h" -#include "X2ap-IE-Extensions.h" -#include "X2ap-IE.h" -#include "X2ap-IntegrityProtectionAlgorithms.h" -#include "X2ap-InterfacesToTrace.h" -#include "X2ap-InvokeIndication.h" -#include "X2ap-Key-eNodeB-Star.h" -#include "X2ap-LAC.h" -#include "X2ap-LastVisitedCell-Item.h" -#include "X2ap-LastVisitedEUTRANCellInformation.h" -#include "X2ap-LastVisitedGERANCellInformation.h" -#include "X2ap-LastVisitedUTRANCellInformation.h" -#include "X2ap-LoadIndicator.h" -#include "X2ap-LoadInformation.h" -#include "X2ap-LocationReportingInformation.h" -#include "X2ap-ManagementBasedMDTallowed.h" -#include "X2ap-MBMS-Service-Area-Identity.h" -#include "X2ap-MBMS-Service-Area-Identity-List.h" -#include "X2ap-MBSFN-Subframe-Info.h" -#include "X2ap-MBSFN-Subframe-Infolist.h" -#include "X2ap-MDT-Activation.h" -#include "X2ap-MDT-Configuration.h" -#include "X2ap-Measurement-ID.h" -#include "X2ap-MeasurementsToActivate.h" -#include "X2ap-MeasurementThresholdA2.h" -#include "X2ap-MeasurementInitiationResult-Item.h" -#include "X2ap-MeasurementInitiationResult-List.h" - -#include "X2ap-MeasurementFailureCause-Item.h" -#include "X2ap-MME-Code.h" -#include "X2ap-MME-Group-ID.h" -#include "X2ap-MobilityChangeAcknowledge.h" -#include "X2ap-MobilityChangeFailure.h" -#include "X2ap-MobilityChangeRequest.h" -#include "X2ap-MobilityParametersInformation.h" -#include "X2ap-MobilityParametersModificationRange.h" -#include "X2ap-MultibandInfoList.h" -#include "X2ap-Neighbour-Information.h" -#include "X2ap-NextHopChainingCount.h" -#include "X2ap-Number-of-Antennaports.h" -#include "X2ap-Oneframe.h" -#include "X2ap-Old-ECGIs.h" -#include "X2ap-PartialSuccessIndicator.h" -#include "X2ap-PCI.h" -#include "X2ap-PDCP-SN.h" -#include "X2AP-PDU.h" -#include "X2ap-PeriodicReportingMDT.h" -#include "X2ap-PLMN-Identity.h" -#include "X2ap-PRACH-Configuration.h" -#include "X2ap-Pre-emptionCapability.h" -#include "X2ap-Pre-emptionVulnerability.h" -#include "X2ap-Presence.h" -#include "X2ap-PriorityLevel.h" -#include "X2ap-PrivateIE-ID.h" -#include "X2ap-ProcedureCode.h" -#include "X2ap-ProtocolIE-ID.h" -#include "X2ap-QCI.h" -#include "X2ap-RadioframeAllocationOffset.h" -#include "X2ap-RadioframeAllocationPeriod.h" -#include "X2ap-RadioResourceStatus.h" -#include "X2ap-ReceiveStatusofULPDCPSDUs.h" -#include "X2ap-Registration-Request.h" -#include "X2ap-RelativeNarrowbandTxPower.h" -#include "X2ap-ReportAmountMDT.h" -#include "X2ap-ReportArea.h" -#include "X2ap-ReportCharacteristics.h" -#include "X2ap-ReportingTriggerMDT.h" -#include "X2ap-ReportIntervalMDT.h" -#include "X2ap-ReportingPeriodicity.h" -#include "X2ap-ResourceStatusFailure.h" -#include "X2ap-ResourceStatusResponse.h" -#include "X2ap-ResourceStatusUpdate.h" - -#include "X2ap-RNTP-Threshold.h" -#include "X2ap-RRCConnReestabIndicator.h" -#include "X2ap-RRCConnSetupIndicator.h" -#include "X2ap-RRC-Context.h" -#include "X2ap-RLFIndication.h" -#include "X2ap-ResourceStatusRequest.h" -#include "X2ap-S1TNLLoadIndicator.h" -//nclude "X2ap-ServedCellInformation.h" -#include "X2ap-ServedCells.h" -#include "X2ap-ServedCellsToModify.h" -#include "X2ap-ServedCellsToActivate.h" -#include "X2ap-ShortMAC-I.h" -#include "X2ap-SpecialSubframe-Info.h" -#include "X2ap-SpecialSubframePatterns.h" -#include "X2ap-SRVCCOperationPossible.h" -#include "X2ap-SubframeAllocation.h" -#include "X2ap-SubframeAssignment.h" -#include "X2ap-SubscriberProfileIDforRFP.h" -#include "X2ap-SNStatusTransfer.h" - -#include "X2ap-TABasedMDT.h" -#include "X2ap-TAC.h" -#include "X2ap-TAListforMDT.h" -#include "X2ap-TargetCellInUTRAN.h" -#include "X2ap-TargeteNBtoSource-eNBTransparentContainer.h" -#include "X2ap-TDD-Info.h" -#include "X2ap-ThresholdEventA2.h" -#include "X2ap-Threshold-RSRP.h" -#include "X2ap-Threshold-RSRQ.h" -#include "X2ap-TimeToWait.h" -#include "X2ap-Time-UE-StayedInCell-EnhancedGranularity.h" -#include "X2ap-Time-UE-StayedInCell.h" -#include "X2ap-E-RABs-ToBeSetup-Item.h" -#include "X2ap-TraceActivation.h" -#include "X2ap-TraceCollectionEntityIPAddress.h" -#include "X2ap-TraceDepth.h" -#include "X2ap-Transmission-Bandwidth.h" -#include "X2ap-TransportLayerAddress.h" -#include "X2ap-TriggeringMessage.h" -#include "X2ap-TypeOfError.h" -#include "X2ap-UEAggregateMaximumBitRate.h" -#include "X2ap-UE-ContextInformation.h" -#include "X2ap-UE-HistoryInformation.h" -#include "X2ap-UE-RLF-Report-Container.h" -#include "X2ap-UE-S1AP-ID.h" -#include "X2ap-UE-X2AP-ID.h" -#include "X2ap-UEContextRelease.h" -#include "X2ap-UESecurityCapabilities.h" -#include "X2ap-UL-GBR-PRB-usage.h" -#include "X2ap-UL-HighInterferenceIndication.h" -#include "X2ap-UL-HighInterferenceIndicationInfo.h" -#include "X2ap-UL-HighInterferenceIndicationInfo-Item.h" -#include "X2ap-UL-InterferenceOverloadIndication.h" -#include "X2ap-UL-InterferenceOverloadIndication-Item.h" -#include "X2ap-UL-non-GBR-PRB-usage.h" -#include "X2ap-UL-Total-PRB-usage.h" -#include "X2ap-UsableABSInformationFDD.h" -#include "X2ap-UsableABSInformation.h" -#include "X2ap-UsableABSInformationTDD.h" - -#include "X2ap-ResetResponse.h" -#include "X2ap-ResetRequest.h" -#include "X2SetupFailure.h" -#include "X2SetupRequest.h" -#include "X2SetupResponse.h" - -#include "X2ap-Old-ECGIs.h" -#include "X2ap-Criticality.h" -#include "X2ap-ProcedureCode.h" +#include "X2AP_ProtocolIE-Field.h" +#include "X2AP_X2AP-PDU.h" +#include "X2AP_InitiatingMessage.h" +#include "X2AP_SuccessfulOutcome.h" +#include "X2AP_UnsuccessfulOutcome.h" +#include "X2AP_ProtocolIE-Field.h" +#include "X2AP_ProtocolIE-FieldPair.h" +#include "X2AP_ProtocolIE-ContainerPair.h" +#include "X2AP_ProtocolExtensionField.h" +#include "X2AP_ProtocolExtensionContainer.h" +#include "X2AP_asn_constant.h" #ifndef X2AP_COMMON_H_ #define X2AP_COMMON_H_ @@ -301,6 +71,21 @@ extern int asn1_xer_print; # define X2AP_DEBUG(x, args...) do { fprintf(stdout, "[X2AP][D]"x, ##args); } while(0) #endif +#define X2AP_FIND_PROTOCOLIE_BY_ID(IE_TYPE, ie, container, IE_ID, mandatory) \ + do {\ + IE_TYPE **ptr; \ + ie = NULL; \ + for (ptr = container->protocolIEs.list.array; \ + ptr < &container->protocolIEs.list.array[container->protocolIEs.list.count]; \ + ptr++) { \ + if((*ptr)->id == IE_ID) { \ + ie = *ptr; \ + break; \ + } \ + } \ + if (mandatory) DevAssert(ie != NULL); \ + } while(0) + //Forward declaration struct x2ap_message_s; @@ -323,8 +108,8 @@ typedef int (*x2ap_message_decoded_callback)( ssize_t x2ap_generate_successfull_outcome( uint8_t **buffer, uint32_t *length, - X2ap_ProcedureCode_t procedureCode, - X2ap_Criticality_t criticality, + X2AP_ProcedureCode_t procedureCode, + X2AP_Criticality_t criticality, asn_TYPE_descriptor_t *td, void *sptr); @@ -340,8 +125,8 @@ ssize_t x2ap_generate_successfull_outcome( ssize_t x2ap_generate_initiating_message( uint8_t **buffer, uint32_t *length, - X2ap_ProcedureCode_t procedureCode, - X2ap_Criticality_t criticality, + X2AP_ProcedureCode_t procedureCode, + X2AP_Criticality_t criticality, asn_TYPE_descriptor_t *td, void *sptr); @@ -357,28 +142,15 @@ ssize_t x2ap_generate_initiating_message( ssize_t x2ap_generate_unsuccessfull_outcome( uint8_t **buffer, uint32_t *length, - X2ap_ProcedureCode_t procedureCode, - X2ap_Criticality_t criticality, + X2AP_ProcedureCode_t procedureCode, + X2AP_Criticality_t criticality, asn_TYPE_descriptor_t *td, void *sptr); -/** \brief Generate a new IE - \param id Protocol ie id of the IE - \param criticality Criticality of the IE - \param type ASN1 type descriptor of the IE value - \param sptr Structure to be encoded in the value field - @returns a pointer to the newly created IE structure or NULL in case of failure - **/ -X2ap_IE_t *x2ap_new_ie( - X2ap_ProtocolIE_ID_t id, - X2ap_Criticality_t criticality, - asn_TYPE_descriptor_t *type, - void *sptr); - /** \brief Handle criticality \param criticality Criticality of the IE @returns void **/ -void x2ap_handle_criticality(X2ap_Criticality_t criticality); +void x2ap_handle_criticality(X2AP_Criticality_t criticality); #endif /* X2AP_COMMON_H_ */ diff --git a/openair3/COMMON/s1ap_messages_def.h b/openair3/COMMON/s1ap_messages_def.h index f0d7ba086f..ffb9aa4236 100644 --- a/openair3/COMMON/s1ap_messages_def.h +++ b/openair3/COMMON/s1ap_messages_def.h @@ -32,6 +32,7 @@ MESSAGE_DEF(S1AP_INITIAL_UE_MESSAGE_LOG , MESSAGE_PRIORITY_MED, IttiMsgText MESSAGE_DEF(S1AP_UE_CONTEXT_RELEASE_REQ_LOG, MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_ue_context_release_req_log) MESSAGE_DEF(S1AP_UE_CONTEXT_RELEASE_COMMAND_LOG, MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_ue_context_release_command_log) MESSAGE_DEF(S1AP_UE_CONTEXT_RELEASE_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_ue_context_release_log) +MESSAGE_DEF(S1AP_ERROR_INDICATION_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_error_indication_log) MESSAGE_DEF(S1AP_UE_CAPABILITIES_IND , MESSAGE_PRIORITY_MED, s1ap_ue_cap_ind_t , s1ap_ue_cap_ind) MESSAGE_DEF(S1AP_ENB_DEREGISTERED_IND , MESSAGE_PRIORITY_MED, s1ap_eNB_deregistered_ind_t , s1ap_eNB_deregistered_ind) diff --git a/openair3/COMMON/security_types.h b/openair3/COMMON/security_types.h index 0eedc6201f..eb55e44d77 100644 --- a/openair3/COMMON/security_types.h +++ b/openair3/COMMON/security_types.h @@ -31,10 +31,6 @@ #include #include -#if 0 -#include "queue.h" -#endif - #ifndef SECURITY_TYPES_H_ #define SECURITY_TYPES_H_ @@ -113,11 +109,6 @@ typedef struct eutran_vector_s { res_t xres; uint8_t autn[AUTN_LENGTH_OCTETS]; uint8_t kasme[KASME_LENGTH_OCTETS]; - - /* one UE can have multiple vectors so use STAILQ lists for easy management */ -#if 0 - STAILQ_ENTRY(eutran_vector_s) entries; -#endif } eutran_vector_t; #define FC_KASME (0x10) diff --git a/openair3/GTPV1-U/gtpv1u_eNB.c b/openair3/GTPV1-U/gtpv1u_eNB.c index 784245c0d3..b9d81602c2 100644 --- a/openair3/GTPV1-U/gtpv1u_eNB.c +++ b/openair3/GTPV1-U/gtpv1u_eNB.c @@ -44,10 +44,10 @@ #include "gtpv1u_eNB_defs.h" #include "gtpv1_u_messages_types.h" #include "udp_eNB_task.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #include "COMMON/platform_types.h" #include "COMMON/platform_constants.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "common/ran_context.h" #include "gtpv1u_eNB_defs.h" @@ -63,7 +63,7 @@ extern boolean_t pdcp_data_req( const sdu_size_t sdu_buffer_sizeP, unsigned char *const sdu_buffer_pP, const pdcp_transmission_mode_t modeP -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,const uint32_t * const sourceL2Id ,const uint32_t * const destinationL2Id #endif @@ -363,7 +363,7 @@ NwGtpv1uRcT gtpv1u_eNB_process_stack_req( buffer_len, buffer, PDCP_TRANSMISSION_MODE_DATA -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,NULL, NULL #endif ); diff --git a/openair3/GTPV1-U/gtpv1u_eNB_defs.h b/openair3/GTPV1-U/gtpv1u_eNB_defs.h index 8f8cff2e87..ddd996625e 100644 --- a/openair3/GTPV1-U/gtpv1u_eNB_defs.h +++ b/openair3/GTPV1-U/gtpv1u_eNB_defs.h @@ -28,7 +28,7 @@ */ #include "hashtable.h" -#include "asn1_constants.h" +#include "asn_constant.h" #ifndef GTPV1U_ENB_DEFS_H_ #define GTPV1U_ENB_DEFS_H_ diff --git a/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c b/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c index cd59028ce3..eb27189a61 100644 --- a/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c +++ b/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c @@ -51,8 +51,8 @@ #include "gtpv1u.h" #if defined(ENB_MODE) -#include "UTIL/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #endif #ifdef __cplusplus diff --git a/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uMsg.c b/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uMsg.c index fe1c509fef..535ab8f1fa 100644 --- a/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uMsg.c +++ b/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uMsg.c @@ -46,7 +46,7 @@ #include "gtpv1u.h" #if defined(ENB_MODE) -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" #endif #define NW_GTPV1U_EPC_SPECIFIC_HEADER_SIZE (12) /**< Size of GTPv1u EPC specific header */ diff --git a/openair3/NAS/COMMON/API/NETWORK/network_api.c b/openair3/NAS/COMMON/API/NETWORK/network_api.c index 160eb78e17..9f8f2125a6 100644 --- a/openair3/NAS/COMMON/API/NETWORK/network_api.c +++ b/openair3/NAS/COMMON/API/NETWORK/network_api.c @@ -144,10 +144,8 @@ int network_api_initialize(const char* host, const char* port) #endif if (_network_api_id.endpoint == NULL) { - const char* error = ( (errno < 0) ? - gai_strerror(errno) : strerror(errno) ); LOG_TRACE(ERROR, "NET-API - Failed to open connection endpoint, %s", - error); + ((errno < 0) ? gai_strerror(errno) : strerror(errno))); LOG_FUNC_RETURN (RETURNerror); } diff --git a/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.c b/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.c index 068ee5db6a..44c12659b8 100644 --- a/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.c +++ b/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.c @@ -290,31 +290,6 @@ int encode_activate_default_eps_bearer_context_request(activate_default_eps_bear encoded += encode_result; } -#if 0 /* LW: force Protocol Configuration Options to be included in the ESM message */ - { -#define CONFIGURATION_PROTOCOL_PPP 0 - -#define PROTOCOL_ID_IPCP 0x8021 -#define PROTOCOL_ID_DNS_SERVER_IPV4_ADDRESS 0x000D - - /* Force this item to be present */ - activate_default_eps_bearer_context_request->presencemask |= ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT; - /* Fill this item with data from PFT trace */ - activate_default_eps_bearer_context_request->protocolconfigurationoptions.configurationprotol = CONFIGURATION_PROTOCOL_PPP; - activate_default_eps_bearer_context_request->protocolconfigurationoptions.protocolid = PROTOCOL_ID_IPCP; - activate_default_eps_bearer_context_request->protocolconfigurationoptions.lengthofprotocolid = 16; /* Size of PROTOCOL_ID_IPCP */ - activate_default_eps_bearer_context_request->protocolconfigurationoptions.protocolidcontents.value = (uint8_t *) - /* PROTOCOL_ID_IPCP data */ - "\x03\x00\x00\x10\x81\x06\xC0\xA8\x0C\x64\x83\x06\xC0\xA8\x6A\x0C"; - /* Additional parameters PROTOCOL_ID_DNS_SERVER_IPV4_ADDRESS data */ - //"\x00\x0d\x04\x52\x61\x00\x78" - /* Additional parameters PROTOCOL_ID_DNS_SERVER_IPV4_ADDRESS data */ - //"\x00\x0d\x04\x52\x61\x01\x78"; - //activate_default_eps_bearer_context_request->protocolconfigurationoptions.protocolidcontents.length = 16 + 7 + 7; - activate_default_eps_bearer_context_request->protocolconfigurationoptions.protocolidcontents.length = 16; - } -#endif - if ((activate_default_eps_bearer_context_request->presencemask & ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT) == ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT) { if ((encode_result = diff --git a/openair3/NAS/COMMON/IES/EsmMessageContainer.c b/openair3/NAS/COMMON/IES/EsmMessageContainer.c index 2268b657f0..e33c06c71d 100644 --- a/openair3/NAS/COMMON/IES/EsmMessageContainer.c +++ b/openair3/NAS/COMMON/IES/EsmMessageContainer.c @@ -86,10 +86,6 @@ int encode_esm_message_container(EsmMessageContainer *esmmessagecontainer, uint8 encoded += encode_result; ENCODE_U16(lenPtr, encode_result, encoded); -#if 0 - lenPtr[1] = (((encoded - 2 - ((iei > 0) ? 1: 0))) & 0x0000ff00) >> 8; - lenPtr[0] = ((encoded - 2 - ((iei > 0) ? 1: 0))) & 0x000000ff; -#endif return encoded; } diff --git a/openair3/NAS/COMMON/IES/MobileIdentity.h b/openair3/NAS/COMMON/IES/MobileIdentity.h index 37f4d4ac30..fd747307de 100644 --- a/openair3/NAS/COMMON/IES/MobileIdentity.h +++ b/openair3/NAS/COMMON/IES/MobileIdentity.h @@ -97,37 +97,6 @@ typedef struct imeisv_s{ uint8_t parity:4; } imeisv_t; -#if 0 -typedef struct imeisv_s { - uint8_t length; - union { - struct { - uint8_t tac2:4; - uint8_t tac1:4; - uint8_t tac4:4; - uint8_t tac3:4; - uint8_t tac6:4; - uint8_t tac5:4; - uint8_t tac8:4; - uint8_t tac7:4; - uint8_t snr2:4; - uint8_t snr1:4; - uint8_t snr4:4; - uint8_t snr3:4; - uint8_t snr6:4; - uint8_t snr5:4; - uint8_t svn2:4; - uint8_t svn1:4; -#define EVEN_PARITY 0 -#define IMEI_ODD_PARITY 0xf - uint8_t parity:4; - } num; -#define IMEISV_BCD8_SIZE 9 - uint8_t value[IMEISV_BCD8_SIZE]; - } u; -} imeisv_t; -#endif - typedef ImsiMobileIdentity_t ImeiMobileIdentity_t; typedef imeisv_t ImeisvMobileIdentity_t; typedef ImsiMobileIdentity_t TmsiMobileIdentity_t; diff --git a/openair3/NAS/COMMON/UTIL/device.c b/openair3/NAS/COMMON/UTIL/device.c index 7ad2879b90..f8f1b9727b 100644 --- a/openair3/NAS/COMMON/UTIL/device.c +++ b/openair3/NAS/COMMON/UTIL/device.c @@ -175,16 +175,6 @@ void device_close(void* id) ssize_t device_read(void* id, char* buffer, size_t len) { const device_id_t* devid = (device_id_t*)(id); -#if 0 - ssize_t rbytes = read(devid->fd, buffer, len); - - if (rbytes < 0) { - return RETURNerror; - } - -#endif - - //#if 0 ssize_t rbytes = 0; do { @@ -198,8 +188,6 @@ ssize_t device_read(void* id, char* buffer, size_t len) } while ( (buffer[rbytes-1] != '\r') && (buffer[rbytes-1] != '\n') && (buffer[rbytes-1] != '\0') ); - //#endif - return rbytes; } diff --git a/openair3/NAS/COMMON/UTIL/nas_log.h b/openair3/NAS/COMMON/UTIL/nas_log.h index 47664c52d0..c36e0795c7 100644 --- a/openair3/NAS/COMMON/UTIL/nas_log.h +++ b/openair3/NAS/COMMON/UTIL/nas_log.h @@ -39,7 +39,7 @@ Description Usefull logging functions #define __NAS_LOG_H__ #if defined(NAS_BUILT_IN_UE) && defined(NAS_UE) -# include "UTIL/LOG/log.h" +# include "common/utils/LOG/log.h" # undef LOG_TRACE #endif diff --git a/openair3/NAS/COMMON/commonDef.h b/openair3/NAS/COMMON/commonDef.h index 84d97fc4a8..e9f769db55 100644 --- a/openair3/NAS/COMMON/commonDef.h +++ b/openair3/NAS/COMMON/commonDef.h @@ -314,17 +314,6 @@ typedef struct { */ #define TAI_LIST_T(SIZE) struct {Byte_t n_tais; tai_t tai[SIZE];} -#if 0 -/* - * User notification callback, executed whenever a change of data with - * respect of network information (e.g. network registration and/or - * location change, new PLMN becomes available) is notified by the - * EPS Mobility Management sublayer - */ -typedef int (*emm_indication_callback_t) (Stat_t, tac_t, ci_t, AcT_t, - const char*, size_t); -#endif - typedef enum eps_protocol_discriminator_e { /* Protocol discriminator identifier for EPS Mobility Management */ EPS_MOBILITY_MANAGEMENT_MESSAGE = 0x7, diff --git a/openair3/NAS/COMMON/networkDef.h b/openair3/NAS/COMMON/networkDef.h index e3e8e1f08b..5390eac2f0 100644 --- a/openair3/NAS/COMMON/networkDef.h +++ b/openair3/NAS/COMMON/networkDef.h @@ -260,15 +260,6 @@ typedef struct { network_pkf_t* pkf[NET_PACKET_FILTER_MAX]; } network_tft_t; -#if 0 -/* - * User notification callback, executed whenever a change of status with - * respect of PDN connection or EPS bearer context is notified by the EPS - * Session Management sublayer - */ -typedef int (*esm_indication_callback_t) (int, network_pdn_state_t); -#endif - /****************************************************************************/ /******************** G L O B A L V A R I A B L E S ********************/ /****************************************************************************/ diff --git a/openair3/NAS/TEST/AS_SIMULATOR/nas_process.c b/openair3/NAS/TEST/AS_SIMULATOR/nas_process.c index 17ad99715b..9b2245acd0 100644 --- a/openair3/NAS/TEST/AS_SIMULATOR/nas_process.c +++ b/openair3/NAS/TEST/AS_SIMULATOR/nas_process.c @@ -338,14 +338,8 @@ _attach_accept( { int index = 0; -#if 0 - /* T3412 timer value */ - index += snprintf(buffer + index, length - index, "T3412 = "); - index += gprsTimer(buffer + index, length - index, &msg->t3412value); - /* TAI list */ - index += snprintf(buffer + index, length - index, ", "); - index += taiList(buffer + index, length - index, &msg->tailist); -#endif + /* T3412 timer value (TBD) */ + /* TAI list (TBD) */ /* GUTI */ if (msg->presencemask & ATTACH_ACCEPT_GUTI_PRESENT) { diff --git a/openair3/NAS/TEST/USER/user_simulator.c b/openair3/NAS/TEST/USER/user_simulator.c index ec16b3453f..fa015df30a 100644 --- a/openair3/NAS/TEST/USER/user_simulator.c +++ b/openair3/NAS/TEST/USER/user_simulator.c @@ -225,23 +225,6 @@ int main (int argc, const char* argv[]) break; } -#if 0 - /* Send the AT command one byte at a time (serial port simulation) */ - const char* pbuffer = _user_simulator_send_buffer; - - while (*pbuffer) { - int sbytes = USER_SEND(pbuffer++, 1); - - if (sbytes == RETURNerror) { - perror("ERROR\t: Failed to send data to the NAS sublayer"); - break; - } - - (void)poll(0, 0, 10); - } - -#endif - (void)poll(0, 0, 100); } diff --git a/openair3/NAS/UE/API/USER/user_api.c b/openair3/NAS/UE/API/USER/user_api.c index 83839a90f3..b3bd976b71 100644 --- a/openair3/NAS/UE/API/USER/user_api.c +++ b/openair3/NAS/UE/API/USER/user_api.c @@ -134,10 +134,8 @@ int user_api_initialize(user_api_id_t *user_api_id, const char* host, const char user_api_id->endpoint = user_api_id->open(SOCKET_SERVER, host, port); if (user_api_id->endpoint == NULL) { - const char* error = ( (errno < 0) ? - gai_strerror(errno) : strerror(errno) ); LOG_TRACE(ERROR, "USR-API - Failed to open connection endpoint, " - "%s", error); + "%s", ( (errno < 0) ?gai_strerror(errno) : strerror(errno) )); LOG_FUNC_RETURN (RETURNerror); } diff --git a/openair3/NAS/UE/EMM/Attach.c b/openair3/NAS/UE/EMM/Attach.c index 4029c8f702..5e7a1f578b 100644 --- a/openair3/NAS/UE/EMM/Attach.c +++ b/openair3/NAS/UE/EMM/Attach.c @@ -79,10 +79,12 @@ Description Defines the attach related EMM procedure executed by the /****************************************************************************/ /* String representation of the EPS attach type */ -static const char *_emm_attach_type_str[] = { +char *emm_attach_type2str(int type) { +static char *_emm_attach_type_str[] = { "EPS", "IMSI", "EMERGENCY", "RESERVED" }; - +return _emm_attach_type_str[type]; +} /* * -------------------------------------------------------------------------- * Internal data handled by the attach procedure in the UE @@ -140,7 +142,7 @@ int emm_proc_attach(nas_user_t *user, emm_proc_attach_type_t type) emm_timers_t *emm_timers = user->emm_data->emm_timers; LOG_TRACE(INFO, "EMM-PROC - Initiate EPS attach type = %s (%d)", - _emm_attach_type_str[type], type); + emm_attach_type2str(type), type); /* Update the emergency bearer service indicator */ if (type == EMM_ATTACH_TYPE_EMERGENCY) { diff --git a/openair3/NAS/UE/EMM/Detach.c b/openair3/NAS/UE/EMM/Detach.c index c18dc0ad28..719e18dd05 100644 --- a/openair3/NAS/UE/EMM/Detach.c +++ b/openair3/NAS/UE/EMM/Detach.c @@ -66,11 +66,13 @@ Description Defines the detach related EMM procedure executed by the /****************************************************************************/ /* String representation of the detach type */ -static const char *_emm_detach_type_str[] = { +char *emm_detach_type2str(int type) { +static char *_emm_detach_type_str[] = { "EPS", "IMSI", "EPS/IMSI", "RE-ATTACH REQUIRED", "RE-ATTACH NOT REQUIRED", "RESERVED" }; - + return _emm_detach_type_str[type]; +} /* * -------------------------------------------------------------------------- * Internal data handled by the detach procedure in the UE @@ -123,7 +125,7 @@ int emm_proc_detach(nas_user_t *user, emm_proc_detach_type_t type, int switch_of int rc; LOG_TRACE(INFO, "EMM-PROC - Initiate EPS detach type = %s (%d)", - _emm_detach_type_str[type], type); + emm_detach_type2str(type), type); /* Initialize the detach procedure internal data */ emm_detach_data->count = 0; diff --git a/openair3/NAS/UE/EMM/Identification.c b/openair3/NAS/UE/EMM/Identification.c index 0d2d6644a1..b5807973a2 100644 --- a/openair3/NAS/UE/EMM/Identification.c +++ b/openair3/NAS/UE/EMM/Identification.c @@ -62,11 +62,13 @@ Description Defines the identification EMM procedure executed by the /******************* L O C A L D E F I N I T I O N S *******************/ /****************************************************************************/ +char *emm_identity_type2str(int id_type) { /* String representation of the requested identity type */ -static const char *_emm_identity_type_str[] = { +static char *_emm_identity_type_str[] = { "NOT AVAILABLE", "IMSI", "IMEI", "IMEISV", "TMSI" }; - + return _emm_identity_type_str[id_type]; +} /* * -------------------------------------------------------------------------- * Internal data handled by the identification procedure in the UE @@ -111,7 +113,7 @@ int emm_proc_identification_request(nas_user_t *user, emm_proc_identity_type_t t emm_sap_t emm_sap; LOG_TRACE(INFO, "EMM-PROC - Identification requested type = %s (%d)", - _emm_identity_type_str[type], type); + emm_identity_type2str(type), type); /* Setup EMM procedure handler to be executed upon receiving * lower layer notification */ diff --git a/openair3/NAS/UE/EMM/SAP/emm_as.c b/openair3/NAS/UE/EMM/SAP/emm_as.c index fbb54d548b..c73fed2fed 100644 --- a/openair3/NAS/UE/EMM/SAP/emm_as.c +++ b/openair3/NAS/UE/EMM/SAP/emm_as.c @@ -74,7 +74,9 @@ Description Defines the EMMAS Service Access Point that provides /* * String representation of EMMAS-SAP primitives */ -static const char *_emm_as_primitive_str[] = { + +char *emmas_to_str(int emmas) { +static char *_emm_as_primitive_str[] = { "EMMAS_SECURITY_REQ", "EMMAS_SECURITY_IND", "EMMAS_SECURITY_RES", @@ -92,7 +94,8 @@ static const char *_emm_as_primitive_str[] = { "EMMAS_CELL_INFO_RES", "EMMAS_CELL_INFO_IND", }; - + return _emm_as_primitive_str[emmas]; +} /* * Functions executed to process EMM procedures upon receiving * data from the network @@ -195,7 +198,7 @@ int emm_as_send(nas_user_t *user, const emm_as_t *msg) emm_as_primitive_t primitive = msg->primitive; LOG_TRACE(INFO, "EMMAS-SAP - Received primitive %s (%d)", - _emm_as_primitive_str[primitive - _EMMAS_START - 1], primitive); + emmas_to_str(primitive - _EMMAS_START - 1), primitive); switch (primitive) { case _EMMAS_DATA_IND: @@ -234,7 +237,7 @@ int emm_as_send(nas_user_t *user, const emm_as_t *msg) if (rc != RETURNok) { LOG_TRACE(ERROR, "EMMAS-SAP - " "Failed to process primitive %s (%d)", - _emm_as_primitive_str[primitive - _EMMAS_START - 1], + emmas_to_str(primitive - _EMMAS_START - 1), primitive); LOG_FUNC_RETURN (RETURNerror); } @@ -266,7 +269,7 @@ int emm_as_send(nas_user_t *user, const emm_as_t *msg) if (rc != RETURNok) { LOG_TRACE(ERROR, "EMMAS-SAP - Failed to process primitive %s (%d)", - _emm_as_primitive_str[primitive - _EMMAS_START - 1], + emmas_to_str(primitive - _EMMAS_START - 1), primitive); } @@ -984,7 +987,7 @@ static int _emm_as_send(const nas_user_t *user, const emm_as_t *msg) LOG_TRACE(DEBUG, "EMMAS-SAP - " "Sending msg with id 0x%x, primitive %s (%d) to RRC layer for transmission", as_msg.msgID, - _emm_as_primitive_str[msg->primitive - _EMMAS_START - 1], + emmas_to_str(msg->primitive - _EMMAS_START - 1), msg->primitive); switch (as_msg.msgID) { diff --git a/openair3/NAS/UE/EMM/SAP/emm_esm.c b/openair3/NAS/UE/EMM/SAP/emm_esm.c index 5d45da8591..4b08d77c1f 100644 --- a/openair3/NAS/UE/EMM/SAP/emm_esm.c +++ b/openair3/NAS/UE/EMM/SAP/emm_esm.c @@ -58,6 +58,7 @@ Description Defines the EMMESM Service Access Point that provides /* * String representation of EMMESM-SAP primitives */ +const char *emm_esm_primitive2str(int esmprim) { static const char *_emm_esm_primitive_str[] = { "EMMESM_ESTABLISH_REQ", "EMMESM_ESTABLISH_CNF", @@ -66,6 +67,8 @@ static const char *_emm_esm_primitive_str[] = { "EMMESM_UNITDATA_REQ", "EMMESM_UNITDATA_IND", }; + return _emm_esm_primitive_str[esmprim]; +} /****************************************************************************/ /****************** E X P O R T E D F U N C T I O N S ******************/ @@ -116,7 +119,7 @@ int emm_esm_send(nas_user_t *user, const emm_esm_t *msg) emm_esm_primitive_t primitive = msg->primitive; LOG_TRACE(INFO, "EMMESM-SAP - Received primitive %s (%d)", - _emm_esm_primitive_str[primitive - _EMMESM_START - 1], primitive); + emm_esm_primitive2str(primitive - _EMMESM_START - 1), primitive); switch (primitive) { @@ -159,7 +162,7 @@ int emm_esm_send(nas_user_t *user, const emm_esm_t *msg) if (rc != RETURNok) { LOG_TRACE(WARNING, "EMMESM-SAP - Failed to process primitive %s (%d)", - _emm_esm_primitive_str[primitive - _EMMESM_START - 1], + emm_esm_primitive2str(primitive - _EMMESM_START - 1), primitive); } diff --git a/openair3/NAS/UE/EMM/SAP/emm_fsm.c b/openair3/NAS/UE/EMM/SAP/emm_fsm.c index a2ede7ae17..d614b9ec7e 100644 --- a/openair3/NAS/UE/EMM/SAP/emm_fsm.c +++ b/openair3/NAS/UE/EMM/SAP/emm_fsm.c @@ -64,6 +64,7 @@ Description Defines the EPS Mobility Management procedures executed at */ /* String representation of EMM events */ +const char *emm_fsm_event2str(int evt) { static const char *_emm_fsm_event_str[] = { "S1_ENABLED", "S1_DISABLED", @@ -93,7 +94,10 @@ static const char *_emm_fsm_event_str[] = { "LOWERLAYER_FAILURE", "LOWERLAYER_RELEASE", }; + return _emm_fsm_event_str[evt]; +} +const char *emm_fsm_status2str(int status) { /* String representation of EMM status */ static const char *_emm_fsm_status_str[EMM_STATE_MAX] = { "INVALID", @@ -120,7 +124,8 @@ static const char *_emm_fsm_status_str[EMM_STATE_MAX] = { "TRACKING-AREA-UPDATING-INITIATED", "SERVICE-REQUEST-INITIATED", }; - + return _emm_fsm_status_str[status]; +} /* * ----------------------------------------------------------------------------- * EPS Mobility Management state machine handlers @@ -229,8 +234,8 @@ int emm_fsm_set_status(nas_user_t *user, if ( status < EMM_STATE_MAX ) { LOG_TRACE(INFO, "EMM-FSM - Status changed: %s ===> %s", - _emm_fsm_status_str[user->emm_fsm_status], - _emm_fsm_status_str[status]); + emm_fsm_status2str(user->emm_fsm_status), + emm_fsm_status2str(status)); if (status != user->emm_fsm_status) { user->emm_fsm_status = status; @@ -280,17 +285,15 @@ int emm_fsm_process(nas_user_t *user, const emm_reg_t *evt) { int rc; emm_fsm_state_t status; - emm_reg_primitive_t primitive; LOG_FUNC_IN; - primitive = evt->primitive; status = user->emm_fsm_status; LOG_TRACE(INFO, "EMM-FSM - Received event %s (%d) in state %s", - _emm_fsm_event_str[primitive - _EMMREG_START - 1], primitive, - _emm_fsm_status_str[status]); + emm_fsm_event2str(evt->primitive - _EMMREG_START - 1), evt->primitive, + emm_fsm_status2str(status)); /* Execute the EMM state machine */ diff --git a/openair3/NAS/UE/ESM/PdnConnectivity.c b/openair3/NAS/UE/ESM/PdnConnectivity.c index 2efed604f0..f0f4efa769 100644 --- a/openair3/NAS/UE/ESM/PdnConnectivity.c +++ b/openair3/NAS/UE/ESM/PdnConnectivity.c @@ -357,7 +357,8 @@ int esm_proc_pdn_connectivity_accept(nas_user_t *user, int pti, esm_proc_pdn_typ int rc; int pid = RETURNerror; char apn_first_char[4]; - char str[128]; + + LOG_VAR(char, str[128]); if (isprint(apn->value[0])) { apn_first_char[0] = '\0'; diff --git a/openair3/NAS/UE/ESM/SAP/esm_sap.c b/openair3/NAS/UE/ESM/SAP/esm_sap.c index 42deac629e..e039f66a3a 100644 --- a/openair3/NAS/UE/ESM/SAP/esm_sap.c +++ b/openair3/NAS/UE/ESM/SAP/esm_sap.c @@ -72,6 +72,8 @@ static int _esm_sap_send(nas_user_t *user, int msg_type, int is_standalone, int /* * String representation of ESM-SAP primitives */ + +const char *esm_sap_primitive2str(int esmsapp) { static const char *_esm_sap_primitive_str[] = { "ESM_DEFAULT_EPS_BEARER_CONTEXT_ACTIVATE_REQ", "ESM_DEFAULT_EPS_BEARER_CONTEXT_ACTIVATE_CNF", @@ -94,7 +96,8 @@ static const char *_esm_sap_primitive_str[] = { "ESM_BEARER_RESOURCE_MODIFY_REJ", "ESM_UNITDATA_IND", }; - + return _esm_sap_primitive_str[esmsapp]; +} /****************************************************************************/ /****************** E X P O R T E D F U N C T I O N S ******************/ @@ -152,7 +155,7 @@ int esm_sap_send(nas_user_t *user, esm_sap_t *msg) assert( (primitive > ESM_START) && (primitive < ESM_END)); LOG_TRACE(INFO, "ESM-SAP - Received primitive %s (%d)", - _esm_sap_primitive_str[primitive - ESM_START - 1], primitive); + esm_sap_primitive2str(primitive - ESM_START - 1), primitive); switch (primitive) { case ESM_PDN_CONNECTIVITY_REQ: diff --git a/openair3/NAS/UE/ESM/esm_ebr.c b/openair3/NAS/UE/ESM/esm_ebr.c index a1d78bc62c..3a62812eca 100644 --- a/openair3/NAS/UE/ESM/esm_ebr.c +++ b/openair3/NAS/UE/ESM/esm_ebr.c @@ -56,10 +56,13 @@ Description Defines functions used to handle state of EPS bearer contexts /****************************************************************************/ /* String representation of EPS bearer context status */ +const char *esm_ebr_state2str(int esmebrstate) { static const char *_esm_ebr_state_str[ESM_EBR_STATE_MAX] = { "BEARER CONTEXT INACTIVE", "BEARER CONTEXT ACTIVE", }; + return _esm_ebr_state_str[esmebrstate]; +} /* * ---------------------- @@ -318,7 +321,7 @@ int esm_ebr_set_status(user_api_id_t *user_api_id, esm_ebr_data_t *esm_ebr_data, if (status < ESM_EBR_STATE_MAX) { LOG_TRACE(INFO, "ESM-FSM - Status of EPS bearer context %d changed:" " %s ===> %s", ebi, - _esm_ebr_state_str[old_status], _esm_ebr_state_str[status]); + esm_ebr_state2str(old_status), esm_ebr_state2str(status)); if (status != old_status) { ebr_ctx->status = status; diff --git a/openair3/NAS/UE/ESM/esm_pt.c b/openair3/NAS/UE/ESM/esm_pt.c index c372ad25f4..f253291fd9 100644 --- a/openair3/NAS/UE/ESM/esm_pt.c +++ b/openair3/NAS/UE/ESM/esm_pt.c @@ -56,10 +56,13 @@ Description Defines functions used to handle ESM procedure transactions. /****************************************************************************/ /* String representation of ESM procedure transaction status */ +const char *esm_pt_state2str( int esmptstate){ static const char *_esm_pt_state_str[ESM_PT_STATE_MAX] = { "PROCEDURE TRANSACTION INACTIVE", "PROCEDURE TRANSACTION PENDING" }; + return _esm_pt_state_str[esmptstate]; +} /* Return the index of the next available entry in the list of procedure * transaction data */ @@ -380,7 +383,7 @@ int esm_pt_set_status(esm_pt_data_t *esm_pt_data, int pti, esm_pt_state status) if (status < ESM_PT_STATE_MAX) { LOG_TRACE(INFO, "ESM-FSM - Status of procedure transaction %d changed:" " %s ===> %s", pti, - _esm_pt_state_str[old_status], _esm_pt_state_str[status]); + esm_pt_state2str(old_status), esm_pt_state2str(status)); if (status != old_status) { ctx->status = status; diff --git a/openair3/NAS/UE/nas_ue_task.c b/openair3/NAS/UE/nas_ue_task.c index e41156d113..529ac5e602 100644 --- a/openair3/NAS/UE/nas_ue_task.c +++ b/openair3/NAS/UE/nas_ue_task.c @@ -24,7 +24,7 @@ # include "assertions.h" # include "intertask_interface.h" # include "nas_ue_task.h" -# include "UTIL/LOG/log.h" +# include "common/utils/LOG/log.h" # include "user_defs.h" # include "user_api.h" @@ -89,7 +89,6 @@ void *nas_ue_task(void *args_p) int nb_events; struct epoll_event *events; MessageDef *msg_p; - const char *msg_name; instance_t instance; unsigned int Mod_id; int result; @@ -147,19 +146,18 @@ void *nas_ue_task(void *args_p) itti_receive_msg (TASK_NAS_UE, &msg_p); if (msg_p != NULL) { - msg_name = ITTI_MSG_NAME (msg_p); instance = ITTI_MSG_INSTANCE (msg_p); Mod_id = instance - NB_eNB_INST; if (instance == INSTANCE_DEFAULT) { printf("%s:%d: FATAL: instance is INSTANCE_DEFAULT, should not happen.\n", __FILE__, __LINE__); - abort(); + exit_fun("exit... \n"); } nas_user_t *user = &users->item[Mod_id]; switch (ITTI_MSG_ID(msg_p)) { case INITIALIZE_MESSAGE: - LOG_I(NAS, "[UE %d] Received %s\n", Mod_id, msg_name); + LOG_I(NAS, "[UE %d] Received %s\n", Mod_id, ITTI_MSG_NAME (msg_p)); #if (NAS_UE_AUTOSTART != 0) { /* Send an activate modem command to NAS like UserProcess should do it */ @@ -175,11 +173,11 @@ void *nas_ue_task(void *args_p) break; case MESSAGE_TEST: - LOG_I(NAS, "[UE %d] Received %s\n", Mod_id, msg_name); + LOG_I(NAS, "[UE %d] Received %s\n", Mod_id, ITTI_MSG_NAME (msg_p)); break; case NAS_CELL_SELECTION_CNF: - LOG_I(NAS, "[UE %d] Received %s: errCode %u, cellID %u, tac %u\n", Mod_id, msg_name, + LOG_I(NAS, "[UE %d] Received %s: errCode %u, cellID %u, tac %u\n", Mod_id, ITTI_MSG_NAME (msg_p), NAS_CELL_SELECTION_CNF (msg_p).errCode, NAS_CELL_SELECTION_CNF (msg_p).cellID, NAS_CELL_SELECTION_CNF (msg_p).tac); { @@ -192,21 +190,21 @@ void *nas_ue_task(void *args_p) break; case NAS_CELL_SELECTION_IND: - LOG_I(NAS, "[UE %d] Received %s: cellID %u, tac %u\n", Mod_id, msg_name, + LOG_I(NAS, "[UE %d] Received %s: cellID %u, tac %u\n", Mod_id, ITTI_MSG_NAME (msg_p), NAS_CELL_SELECTION_IND (msg_p).cellID, NAS_CELL_SELECTION_IND (msg_p).tac); /* TODO not processed by NAS currently */ break; case NAS_PAGING_IND: - LOG_I(NAS, "[UE %d] Received %s: cause %u\n", Mod_id, msg_name, + LOG_I(NAS, "[UE %d] Received %s: cause %u\n", Mod_id, ITTI_MSG_NAME (msg_p), NAS_PAGING_IND (msg_p).cause); /* TODO not processed by NAS currently */ break; case NAS_CONN_ESTABLI_CNF: - LOG_I(NAS, "[UE %d] Received %s: errCode %u, length %u\n", Mod_id, msg_name, + LOG_I(NAS, "[UE %d] Received %s: errCode %u, length %u\n", Mod_id, ITTI_MSG_NAME (msg_p), NAS_CONN_ESTABLI_CNF (msg_p).errCode, NAS_CONN_ESTABLI_CNF (msg_p).nasMsg.length); if ((NAS_CONN_ESTABLI_CNF (msg_p).errCode == AS_SUCCESS) @@ -221,14 +219,14 @@ void *nas_ue_task(void *args_p) break; case NAS_CONN_RELEASE_IND: - LOG_I(NAS, "[UE %d] Received %s: cause %u\n", Mod_id, msg_name, + LOG_I(NAS, "[UE %d] Received %s: cause %u\n", Mod_id, ITTI_MSG_NAME (msg_p), NAS_CONN_RELEASE_IND (msg_p).cause); nas_proc_release_ind (user, NAS_CONN_RELEASE_IND (msg_p).cause); break; case NAS_UPLINK_DATA_CNF: - LOG_I(NAS, "[UE %d] Received %s: UEid %u, errCode %u\n", Mod_id, msg_name, + LOG_I(NAS, "[UE %d] Received %s: UEid %u, errCode %u\n", Mod_id, ITTI_MSG_NAME (msg_p), NAS_UPLINK_DATA_CNF (msg_p).UEid, NAS_UPLINK_DATA_CNF (msg_p).errCode); if (NAS_UPLINK_DATA_CNF (msg_p).errCode == AS_SUCCESS) { @@ -240,7 +238,7 @@ void *nas_ue_task(void *args_p) break; case NAS_DOWNLINK_DATA_IND: - LOG_I(NAS, "[UE %d] Received %s: UEid %u, length %u\n", Mod_id, msg_name, + LOG_I(NAS, "[UE %d] Received %s: UEid %u, length %u\n", Mod_id, ITTI_MSG_NAME (msg_p), NAS_DOWNLINK_DATA_IND (msg_p).UEid, NAS_DOWNLINK_DATA_IND (msg_p).nasMsg.length); nas_proc_dl_transfer_ind (user, NAS_DOWNLINK_DATA_IND(msg_p).nasMsg.data, NAS_DOWNLINK_DATA_IND(msg_p).nasMsg.length); @@ -254,7 +252,7 @@ void *nas_ue_task(void *args_p) break; default: - LOG_E(NAS, "[UE %d] Received unexpected message %s\n", Mod_id, msg_name); + LOG_E(NAS, "[UE %d] Received unexpected message %s\n", Mod_id, ITTI_MSG_NAME (msg_p)); break; } diff --git a/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-CommonDataTypes.asn b/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-CommonDataTypes.asn deleted file mode 100644 index 17ce65521e..0000000000 --- a/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-CommonDataTypes.asn +++ /dev/null @@ -1,232 +0,0 @@ --- ************************************************************** --- --- Common definitions --- --- ************************************************************** - -S1AP-CommonDataTypes { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-CommonDataTypes (3) } - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - -S1ap-Criticality ::= ENUMERATED { reject, ignore, notify } - -S1ap-Presence ::= ENUMERATED { optional, conditional, mandatory } - -S1ap-PrivateIE-ID ::= CHOICE { - local INTEGER (0..65535), - global OBJECT IDENTIFIER -} - -S1ap-ProcedureCode ::= INTEGER { - id-HandoverPreparation(0), - id-HandoverResourceAllocation(1), - id-HandoverNotification(2), - id-PathSwitchRequest(3), - id-HandoverCancel(4), - id-E-RABSetup(5), - id-E-RABModify(6), - id-E-RABRelease(7), - id-E-RABReleaseIndication(8), - id-InitialContextSetup(9), - id-Paging(10), - id-downlinkNASTransport(11), - id-initialUEMessage(12), - id-uplinkNASTransport(13), - id-Reset(14), - id-ErrorIndication(15), - id-NASNonDeliveryIndication(16), - id-S1Setup(17), - id-UEContextReleaseRequest(18), - id-DownlinkS1cdma2000tunneling(19), - id-UplinkS1cdma2000tunneling(20), - id-UEContextModification(21), - id-UECapabilityInfoIndication(22), - id-UEContextRelease(23), - id-eNBStatusTransfer(24), - id-MMEStatusTransfer(25), - id-DeactivateTrace(26), - id-TraceStart(27), - id-TraceFailureIndication(28), - id-ENBConfigurationUpdate(29), - id-MMEConfigurationUpdate(30), - id-LocationReportingControl(31), - id-LocationReportingFailureIndication(32), - id-LocationReport(33), - id-OverloadStart(34), - id-OverloadStop(35), - id-WriteReplaceWarning(36), - id-eNBDirectInformationTransfer(37), - id-MMEDirectInformationTransfer(38), - id-PrivateMessage(39), - id-eNBConfigurationTransfer(40), - id-MMEConfigurationTransfer(41), - id-CellTrafficTrace(42), - id-Kill(43), - id-downlinkUEAssociatedLPPaTransport(44), - id-uplinkUEAssociatedLPPaTransport(45), - id-downlinkNonUEAssociatedLPPaTransport(46), - id-uplinkNonUEAssociatedLPPaTransport(47) -} (0..255) - -S1ap-ProtocolExtensionID ::= INTEGER (0..65535) - -S1ap-ProtocolIE-ID ::= INTEGER { - id-MME-UE-S1AP-ID (0), - id-HandoverType (1), - id-Cause (2), - id-SourceID (3), - id-TargetID (4), - id-eNB-UE-S1AP-ID (8), - id-E-RABSubjecttoDataForwardingList (12), - id-E-RABtoReleaseListHOCmd (13), - id-E-RABDataForwardingItem (14), - id-E-RABReleaseItemBearerRelComp (15), - id-E-RABToBeSetupListBearerSUReq (16), - id-E-RABToBeSetupItemBearerSUReq (17), - id-E-RABAdmittedList (18), - id-E-RABFailedToSetupListHOReqAck (19), - id-E-RABAdmittedItem (20), - id-E-RABFailedToSetupItemHOReqAck (21), - id-E-RABToBeSwitchedDLList (22), - id-E-RABToBeSwitchedDLItem (23), - id-E-RABToBeSetupListCtxtSUReq (24), - id-TraceActivation (25), - id-NAS-PDU (26), - id-E-RABToBeSetupItemHOReq (27), - id-E-RABSetupListBearerSURes (28), - id-E-RABFailedToSetupListBearerSURes (29), - id-E-RABToBeModifiedListBearerModReq (30), - id-E-RABModifyListBearerModRes (31), - id-E-RABFailedToModifyList (32), - id-E-RABToBeReleasedList (33), - id-E-RABFailedToReleaseList (34), - id-E-RABItem (35), - id-E-RABToBeModifiedItemBearerModReq (36), - id-E-RABModifyItemBearerModRes (37), - id-E-RABReleaseItem (38), - id-E-RABSetupItemBearerSURes (39), - id-SecurityContext (40), - id-HandoverRestrictionList (41), - id-UEPagingID (43), - id-pagingDRX (44), - id-TAIList (46), - id-TAIItem (47), - id-E-RABFailedToSetupListCtxtSURes (48), - id-E-RABReleaseItemHOCmd (49), - id-E-RABSetupItemCtxtSURes (50), - id-E-RABSetupListCtxtSURes (51), - id-E-RABToBeSetupItemCtxtSUReq (52), - id-E-RABToBeSetupListHOReq (53), - id-GERANtoLTEHOInformationRes (55), - id-UTRANtoLTEHOInformationRes (57), - id-CriticalityDiagnostics (58), - id-Global-ENB-ID (59), - id-eNBname (60), - id-MMEname (61), - id-ServedPLMNs (63), - id-SupportedTAs (64), - id-TimeToWait (65), - id-uEaggregateMaximumBitrate (66), - id-TAI (67), - id-E-RABReleaseListBearerRelComp (69), - id-cdma2000PDU (70), - id-cdma2000RATType (71), - id-cdma2000SectorID (72), - id-SecurityKey (73), - id-UERadioCapability (74), - id-GUMMEI-ID (75), - id-E-RABInformationListItem (78), - id-Direct-Forwarding-Path-Availability (79), - id-UEIdentityIndexValue (80), - id-cdma2000HOStatus (83), - id-cdma2000HORequiredIndication (84), - id-E-UTRAN-Trace-ID (86), - id-RelativeMMECapacity (87), - id-SourceMME-UE-S1AP-ID (88), - id-Bearers-SubjectToStatusTransfer-Item (89), - id-eNB-StatusTransfer-TransparentContainer (90), - id-UE-associatedLogicalS1-ConnectionItem (91), - id-ResetType (92), - id-UE-associatedLogicalS1-ConnectionListResAck (93), - id-E-RABToBeSwitchedULItem (94), - id-E-RABToBeSwitchedULList (95), - id-S-TMSI (96), - id-cdma2000OneXRAND (97), - id-RequestType (98), - id-UE-S1AP-IDs (99), - id-EUTRAN-CGI (100), - id-OverloadResponse (101), - id-cdma2000OneXSRVCCInfo (102), - id-E-RABFailedToBeReleasedList (103), - id-Source-ToTarget-TransparentContainer (104), - id-ServedGUMMEIs (105), - id-SubscriberProfileIDforRFP (106), - id-UESecurityCapabilities (107), - id-CSFallbackIndicator (108), - id-CNDomain (109), - id-E-RABReleasedList (110), - id-MessageIdentifier (111), - id-SerialNumber (112), - id-WarningAreaList (113), - id-RepetitionPeriod (114), - id-NumberofBroadcastRequest (115), - id-WarningType (116), - id-WarningSecurityInfo (117), - id-DataCodingScheme (118), - id-WarningMessageContents (119), - id-BroadcastCompletedAreaList (120), - id-Inter-SystemInformationTransferTypeEDT (121), - id-Inter-SystemInformationTransferTypeMDT (122), - id-Target-ToSource-TransparentContainer (123), - id-SRVCCOperationPossible (124), - id-SRVCCHOIndication (125), - id-NAS-DownlinkCount (126), - id-CSG-Id (127), - id-CSG-IdList (128), - id-SONConfigurationTransferECT (129), - id-SONConfigurationTransferMCT (130), - id-TraceCollectionEntityIPAddress (131), - id-MSClassmark2 (132), - id-MSClassmark3 (133), - id-RRC-Establishment-Cause (134), - id-NASSecurityParametersfromE-UTRAN (135), - id-NASSecurityParameterstoE-UTRAN (136), - id-DefaultPagingDRX (137), - id-Source-ToTarget-TransparentContainer-Secondary (138), - id-Target-ToSource-TransparentContainer-Secondary (139), - id-EUTRANRoundTripDelayEstimationInfo (140), - id-BroadcastCancelledAreaList (141), - id-ConcurrentWarningMessageIndicator (142), - id-Data-Forwarding-Not-Possible (143), - id-ExtendedRepetitionPeriod (144), - id-CellAccessMode (145), - id-CSGMembershipStatus (146), - id-LPPa-PDU (147), - id-Routing-ID (148), - id-Time-Synchronization-Info (149), - id-PS-ServiceNotAvailable (150), - id-PagingPriority (151), - id-x2TNLConfigurationInfo (152), - id-eNBX2ExtendedTransportLayerAddresses (153), - id-GUMMEIList (154), - id-GW-TransportLayerAddress (155), - id-Correlation-ID (156), - id-SourceMME-GUMMEI (157), - id-MME-UE-S1AP-ID-2 (158), - id-RegisteredLAI (159), - id-RelayNode-Indicator (160), - id-TrafficLoadReductionIndication (161), - id-MDTConfiguration (162), - id-MMERelaySupportIndicator (163), - id-GWContextReleaseIndication (164), - id-ManagementBasedMDTAllowed (165), - id-PrivacyIndicator (166) -} (0..65535) - -S1ap-TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome } - -END diff --git a/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-Constants.asn b/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-Constants.asn deleted file mode 100644 index 98af5fbffb..0000000000 --- a/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-Constants.asn +++ /dev/null @@ -1,283 +0,0 @@ --- ************************************************************** --- --- Constant definitions --- --- ************************************************************** - -S1AP-Constants { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Constants (4) } - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - --- ************************************************************** --- --- IE parameter types from other modules. --- --- ************************************************************** - -IMPORTS - S1ap-ProcedureCode, - S1ap-ProtocolIE-ID - -FROM S1AP-CommonDataTypes; - - --- ************************************************************** --- --- Elementary Procedures --- --- ************************************************************** - -id-HandoverPreparation S1ap-ProcedureCode ::= 0 -id-HandoverResourceAllocation S1ap-ProcedureCode ::= 1 -id-HandoverNotification S1ap-ProcedureCode ::= 2 -id-PathSwitchRequest S1ap-ProcedureCode ::= 3 -id-HandoverCancel S1ap-ProcedureCode ::= 4 -id-E-RABSetup S1ap-ProcedureCode ::= 5 -id-E-RABModify S1ap-ProcedureCode ::= 6 -id-E-RABRelease S1ap-ProcedureCode ::= 7 -id-E-RABReleaseIndication S1ap-ProcedureCode ::= 8 -id-InitialContextSetup S1ap-ProcedureCode ::= 9 -id-Paging S1ap-ProcedureCode ::= 10 -id-downlinkNASTransport S1ap-ProcedureCode ::= 11 -id-initialUEMessage S1ap-ProcedureCode ::= 12 -id-uplinkNASTransport S1ap-ProcedureCode ::= 13 -id-Reset S1ap-ProcedureCode::= 14 -id-ErrorIndication S1ap-ProcedureCode ::= 15 -id-NASNonDeliveryIndication S1ap-ProcedureCode ::= 16 -id-S1Setup S1ap-ProcedureCode ::= 17 -id-UEContextReleaseRequest S1ap-ProcedureCode ::= 18 -id-DownlinkS1cdma2000tunneling S1ap-ProcedureCode ::= 19 -id-UplinkS1cdma2000tunneling S1ap-ProcedureCode ::= 20 -id-UEContextModification S1ap-ProcedureCode ::= 21 -id-UECapabilityInfoIndication S1ap-ProcedureCode ::= 22 -id-UEContextRelease S1ap-ProcedureCode ::= 23 -id-eNBStatusTransfer S1ap-ProcedureCode ::= 24 -id-MMEStatusTransfer S1ap-ProcedureCode ::= 25 -id-DeactivateTrace S1ap-ProcedureCode ::= 26 -id-TraceStart S1ap-ProcedureCode ::= 27 -id-TraceFailureIndication S1ap-ProcedureCode ::= 28 -id-ENBConfigurationUpdate S1ap-ProcedureCode ::= 29 -id-MMEConfigurationUpdate S1ap-ProcedureCode ::= 30 -id-LocationReportingControl S1ap-ProcedureCode ::= 31 -id-LocationReportingFailureIndication S1ap-ProcedureCode ::= 32 -id-LocationReport S1ap-ProcedureCode ::= 33 -id-OverloadStart S1ap-ProcedureCode ::= 34 -id-OverloadStop S1ap-ProcedureCode ::= 35 -id-WriteReplaceWarning S1ap-ProcedureCode ::= 36 -id-eNBDirectInformationTransfer S1ap-ProcedureCode ::= 37 -id-MMEDirectInformationTransfer S1ap-ProcedureCode ::= 38 -id-PrivateMessage S1ap-ProcedureCode ::= 39 -id-eNBConfigurationTransfer S1ap-ProcedureCode ::= 40 -id-MMEConfigurationTransfer S1ap-ProcedureCode ::= 41 -id-CellTrafficTrace S1ap-ProcedureCode ::= 42 -id-Kill S1ap-ProcedureCode ::= 43 -id-downlinkUEAssociatedLPPaTransport S1ap-ProcedureCode ::= 44 -id-uplinkUEAssociatedLPPaTransport S1ap-ProcedureCode ::= 45 -id-downlinkNonUEAssociatedLPPaTransport S1ap-ProcedureCode ::= 46 -id-uplinkNonUEAssociatedLPPaTransport S1ap-ProcedureCode ::= 47 - --- ************************************************************** --- --- Extension constants --- --- ************************************************************** - -s1ap-maxPrivateIEs INTEGER ::= 65535 -s1ap-maxProtocolExtensions INTEGER ::= 65535 -s1ap-maxProtocolIEs INTEGER ::= 65535 --- ************************************************************** --- --- Lists --- --- ************************************************************** - -s1ap-maxNrOfCSGs INTEGER ::= 256 -s1ap-maxNrOfE-RABs INTEGER ::= 256 -s1ap-maxnoofTAIs INTEGER ::= 256 -s1ap-maxnoofTACs INTEGER ::= 256 -s1ap-maxNrOfErrors INTEGER ::= 256 -s1ap-maxnoofBPLMNs INTEGER ::= 6 -s1ap-maxnoofPLMNsPerMME INTEGER ::= 32 -s1ap-maxnoofEPLMNs INTEGER ::= 15 -s1ap-maxnoofEPLMNsPlusOne INTEGER ::= 16 -s1ap-maxnoofForbLACs INTEGER ::= 4096 -s1ap-maxnoofForbTACs INTEGER ::= 4096 -s1ap-maxNrOfIndividualS1ConnectionsToReset INTEGER ::= 256 -s1ap-maxnoofCells INTEGER ::= 16 -s1ap-maxnoofTAIforWarning INTEGER ::= 65535 -s1ap-maxnoofCellID INTEGER ::= 65535 -s1ap-maxnoofEmergencyAreaID INTEGER ::= 65535 -s1ap-maxnoofCellinTAI INTEGER ::= 65535 -s1ap-maxnoofCellinEAI INTEGER ::= 65535 -s1ap-maxnoofeNBX2TLAs INTEGER ::= 2 -s1ap-maxnoofeNBX2ExtTLAs INTEGER ::= 16 -s1ap-maxnoofeNBX2GTPTLAs INTEGER ::= 16 -s1ap-maxnoofRATs INTEGER ::= 8 -s1ap-maxnoofGroupIDs INTEGER ::= 65535 -s1ap-maxnoofMMECs INTEGER ::= 256 -s1ap-maxnoofCellIDforMDT INTEGER ::= 32 -s1ap-maxnoofTAforMDT INTEGER ::= 8 - - --- ************************************************************** --- --- IEs --- --- ************************************************************** - -id-MME-UE-S1AP-ID S1ap-ProtocolIE-ID ::= 0 -id-HandoverType S1ap-ProtocolIE-ID ::= 1 -id-Cause S1ap-ProtocolIE-ID ::= 2 -id-SourceID S1ap-ProtocolIE-ID ::= 3 -id-TargetID S1ap-ProtocolIE-ID ::= 4 -id-eNB-UE-S1AP-ID S1ap-ProtocolIE-ID ::= 8 -id-E-RABSubjecttoDataForwardingList S1ap-ProtocolIE-ID ::= 12 -id-E-RABtoReleaseListHOCmd S1ap-ProtocolIE-ID ::= 13 -id-E-RABDataForwardingItem S1ap-ProtocolIE-ID ::= 14 -id-E-RABReleaseItemBearerRelComp S1ap-ProtocolIE-ID ::= 15 -id-E-RABToBeSetupListBearerSUReq S1ap-ProtocolIE-ID ::= 16 -id-E-RABToBeSetupItemBearerSUReq S1ap-ProtocolIE-ID ::= 17 -id-E-RABAdmittedList S1ap-ProtocolIE-ID ::= 18 -id-E-RABFailedToSetupListHOReqAck S1ap-ProtocolIE-ID ::= 19 -id-E-RABAdmittedItem S1ap-ProtocolIE-ID ::= 20 -id-E-RABFailedtoSetupItemHOReqAck S1ap-ProtocolIE-ID ::= 21 -id-E-RABToBeSwitchedDLList S1ap-ProtocolIE-ID ::= 22 -id-E-RABToBeSwitchedDLItem S1ap-ProtocolIE-ID ::= 23 -id-E-RABToBeSetupListCtxtSUReq S1ap-ProtocolIE-ID ::= 24 -id-TraceActivation S1ap-ProtocolIE-ID ::= 25 -id-NAS-PDU S1ap-ProtocolIE-ID ::= 26 -id-E-RABToBeSetupItemHOReq S1ap-ProtocolIE-ID ::= 27 -id-E-RABSetupListBearerSURes S1ap-ProtocolIE-ID ::= 28 -id-E-RABFailedToSetupListBearerSURes S1ap-ProtocolIE-ID ::= 29 -id-E-RABToBeModifiedListBearerModReq S1ap-ProtocolIE-ID ::= 30 -id-E-RABModifyListBearerModRes S1ap-ProtocolIE-ID ::= 31 -id-E-RABFailedToModifyList S1ap-ProtocolIE-ID ::= 32 -id-E-RABToBeReleasedList S1ap-ProtocolIE-ID ::= 33 -id-E-RABFailedToReleaseList S1ap-ProtocolIE-ID ::= 34 -id-E-RABItem S1ap-ProtocolIE-ID ::= 35 -id-E-RABToBeModifiedItemBearerModReq S1ap-ProtocolIE-ID ::= 36 -id-E-RABModifyItemBearerModRes S1ap-ProtocolIE-ID ::= 37 -id-E-RABReleaseItem S1ap-ProtocolIE-ID ::= 38 -id-E-RABSetupItemBearerSURes S1ap-ProtocolIE-ID ::= 39 -id-SecurityContext S1ap-ProtocolIE-ID ::= 40 -id-HandoverRestrictionList S1ap-ProtocolIE-ID ::= 41 -id-UEPagingID S1ap-ProtocolIE-ID ::= 43 -id-pagingDRX S1ap-ProtocolIE-ID ::= 44 -id-TAIList S1ap-ProtocolIE-ID ::= 46 -id-TAIItem S1ap-ProtocolIE-ID ::= 47 -id-E-RABFailedToSetupListCtxtSURes S1ap-ProtocolIE-ID ::= 48 -id-E-RABReleaseItemHOCmd S1ap-ProtocolIE-ID ::= 49 -id-E-RABSetupItemCtxtSURes S1ap-ProtocolIE-ID ::= 50 -id-E-RABSetupListCtxtSURes S1ap-ProtocolIE-ID ::= 51 -id-E-RABToBeSetupItemCtxtSUReq S1ap-ProtocolIE-ID ::= 52 -id-E-RABToBeSetupListHOReq S1ap-ProtocolIE-ID ::= 53 -id-GERANtoLTEHOInformationRes S1ap-ProtocolIE-ID ::= 55 -id-UTRANtoLTEHOInformationRes S1ap-ProtocolIE-ID ::= 57 -id-CriticalityDiagnostics S1ap-ProtocolIE-ID ::= 58 -id-Global-ENB-ID S1ap-ProtocolIE-ID ::= 59 -id-eNBname S1ap-ProtocolIE-ID ::= 60 -id-MMEname S1ap-ProtocolIE-ID ::= 61 -id-ServedPLMNs S1ap-ProtocolIE-ID ::= 63 -id-SupportedTAs S1ap-ProtocolIE-ID ::= 64 -id-TimeToWait S1ap-ProtocolIE-ID ::= 65 -id-uEaggregateMaximumBitrate S1ap-ProtocolIE-ID ::= 66 -id-TAI S1ap-ProtocolIE-ID ::= 67 -id-E-RABReleaseListBearerRelComp S1ap-ProtocolIE-ID ::= 69 -id-cdma2000PDU S1ap-ProtocolIE-ID ::= 70 -id-cdma2000RATType S1ap-ProtocolIE-ID ::= 71 -id-cdma2000SectorID S1ap-ProtocolIE-ID ::= 72 -id-SecurityKey S1ap-ProtocolIE-ID ::= 73 -id-UERadioCapability S1ap-ProtocolIE-ID ::= 74 -id-GUMMEI-ID S1ap-ProtocolIE-ID ::= 75 -id-E-RABInformationListItem S1ap-ProtocolIE-ID ::= 78 -id-Direct-Forwarding-Path-Availability S1ap-ProtocolIE-ID ::= 79 -id-UEIdentityIndexValue S1ap-ProtocolIE-ID ::= 80 -id-cdma2000HOStatus S1ap-ProtocolIE-ID ::= 83 -id-cdma2000HORequiredIndication S1ap-ProtocolIE-ID ::= 84 -id-E-UTRAN-Trace-ID S1ap-ProtocolIE-ID ::= 86 -id-RelativeMMECapacity S1ap-ProtocolIE-ID ::= 87 -id-SourceMME-UE-S1AP-ID S1ap-ProtocolIE-ID ::= 88 -id-Bearers-SubjectToStatusTransfer-Item S1ap-ProtocolIE-ID ::= 89 -id-eNB-StatusTransfer-TransparentContainer S1ap-ProtocolIE-ID ::= 90 -id-UE-associatedLogicalS1-ConnectionItem S1ap-ProtocolIE-ID ::= 91 -id-ResetType S1ap-ProtocolIE-ID ::= 92 -id-UE-associatedLogicalS1-ConnectionListResAck S1ap-ProtocolIE-ID ::= 93 -id-E-RABToBeSwitchedULItem S1ap-ProtocolIE-ID ::= 94 -id-E-RABToBeSwitchedULList S1ap-ProtocolIE-ID ::= 95 -id-S-TMSI S1ap-ProtocolIE-ID ::= 96 -id-cdma2000OneXRAND S1ap-ProtocolIE-ID ::= 97 -id-RequestType S1ap-ProtocolIE-ID ::= 98 -id-UE-S1AP-IDs S1ap-ProtocolIE-ID ::= 99 -id-EUTRAN-CGI S1ap-ProtocolIE-ID ::= 100 -id-OverloadResponse S1ap-ProtocolIE-ID ::= 101 -id-cdma2000OneXSRVCCInfo S1ap-ProtocolIE-ID ::= 102 -id-E-RABFailedToBeReleasedList S1ap-ProtocolIE-ID ::= 103 -id-Source-ToTarget-TransparentContainer S1ap-ProtocolIE-ID ::= 104 -id-ServedGUMMEIs S1ap-ProtocolIE-ID ::= 105 -id-SubscriberProfileIDforRFP S1ap-ProtocolIE-ID ::= 106 -id-UESecurityCapabilities S1ap-ProtocolIE-ID ::= 107 -id-CSFallbackIndicator S1ap-ProtocolIE-ID ::= 108 -id-CNDomain S1ap-ProtocolIE-ID ::= 109 -id-E-RABReleasedList S1ap-ProtocolIE-ID ::= 110 -id-MessageIdentifier S1ap-ProtocolIE-ID ::= 111 -id-SerialNumber S1ap-ProtocolIE-ID ::= 112 -id-WarningAreaList S1ap-ProtocolIE-ID ::= 113 -id-RepetitionPeriod S1ap-ProtocolIE-ID ::= 114 -id-NumberofBroadcastRequest S1ap-ProtocolIE-ID ::= 115 -id-WarningType S1ap-ProtocolIE-ID ::= 116 -id-WarningSecurityInfo S1ap-ProtocolIE-ID ::= 117 -id-DataCodingScheme S1ap-ProtocolIE-ID ::= 118 -id-WarningMessageContents S1ap-ProtocolIE-ID ::= 119 -id-BroadcastCompletedAreaList S1ap-ProtocolIE-ID ::= 120 -id-Inter-SystemInformationTransferTypeEDT S1ap-ProtocolIE-ID ::= 121 -id-Inter-SystemInformationTransferTypeMDT S1ap-ProtocolIE-ID ::= 122 -id-Target-ToSource-TransparentContainer S1ap-ProtocolIE-ID ::= 123 -id-SRVCCOperationPossible S1ap-ProtocolIE-ID ::= 124 -id-SRVCCHOIndication S1ap-ProtocolIE-ID ::= 125 -id-NAS-DownlinkCount S1ap-ProtocolIE-ID ::= 126 -id-CSG-Id S1ap-ProtocolIE-ID ::= 127 -id-CSG-IdList S1ap-ProtocolIE-ID ::= 128 -id-SONConfigurationTransferECT S1ap-ProtocolIE-ID ::= 129 -id-SONConfigurationTransferMCT S1ap-ProtocolIE-ID ::= 130 -id-TraceCollectionEntityIPAddress S1ap-ProtocolIE-ID ::= 131 -id-MSClassmark2 S1ap-ProtocolIE-ID ::= 132 -id-MSClassmark3 S1ap-ProtocolIE-ID ::= 133 -id-RRC-Establishment-Cause S1ap-ProtocolIE-ID ::= 134 -id-NASSecurityParametersfromE-UTRAN S1ap-ProtocolIE-ID ::= 135 -id-NASSecurityParameterstoE-UTRAN S1ap-ProtocolIE-ID ::= 136 -id-DefaultPagingDRX S1ap-ProtocolIE-ID ::= 137 -id-Source-ToTarget-TransparentContainer-Secondary S1ap-ProtocolIE-ID ::= 138 -id-Target-ToSource-TransparentContainer-Secondary S1ap-ProtocolIE-ID ::= 139 -id-EUTRANRoundTripDelayEstimationInfo S1ap-ProtocolIE-ID ::= 140 -id-BroadcastCancelledAreaList S1ap-ProtocolIE-ID ::= 141 -id-ConcurrentWarningMessageIndicator S1ap-ProtocolIE-ID ::= 142 -id-Data-Forwarding-Not-Possible S1ap-ProtocolIE-ID ::= 143 -id-ExtendedRepetitionPeriod S1ap-ProtocolIE-ID ::= 144 -id-CellAccessMode S1ap-ProtocolIE-ID ::= 145 -id-CSGMembershipStatus S1ap-ProtocolIE-ID ::= 146 -id-LPPa-PDU S1ap-ProtocolIE-ID ::= 147 -id-Routing-ID S1ap-ProtocolIE-ID ::= 148 -id-Time-Synchronization-Info S1ap-ProtocolIE-ID ::= 149 -id-PS-ServiceNotAvailable S1ap-ProtocolIE-ID ::= 150 -id-PagingPriority S1ap-ProtocolIE-ID ::= 151 -id-x2TNLConfigurationInfo S1ap-ProtocolIE-ID ::= 152 -id-eNBX2ExtendedTransportLayerAddresses S1ap-ProtocolIE-ID ::= 153 -id-GUMMEIList S1ap-ProtocolIE-ID ::= 154 -id-GW-TransportLayerAddress S1ap-ProtocolIE-ID ::= 155 -id-Correlation-ID S1ap-ProtocolIE-ID ::= 156 -id-SourceMME-GUMMEI S1ap-ProtocolIE-ID ::= 157 -id-MME-UE-S1AP-ID-2 S1ap-ProtocolIE-ID ::= 158 -id-RegisteredLAI S1ap-ProtocolIE-ID ::= 159 -id-RelayNode-Indicator S1ap-ProtocolIE-ID ::= 160 -id-TrafficLoadReductionIndication S1ap-ProtocolIE-ID ::= 161 -id-MDTConfiguration S1ap-ProtocolIE-ID ::= 162 -id-MMERelaySupportIndicator S1ap-ProtocolIE-ID ::= 163 -id-GWContextReleaseIndication S1ap-ProtocolIE-ID ::= 164 -id-ManagementBasedMDTAllowed S1ap-ProtocolIE-ID ::= 165 -id-PrivacyIndicator S1ap-ProtocolIE-ID ::= 166 - -END diff --git a/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-Containers.asn b/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-Containers.asn deleted file mode 100644 index b3dc098148..0000000000 --- a/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-Containers.asn +++ /dev/null @@ -1,197 +0,0 @@ --- ************************************************************** --- --- Container definitions --- --- ************************************************************** - -S1AP-Containers { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Containers (5) } - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - --- ************************************************************** --- --- IE parameter types from other modules. --- --- ************************************************************** - -IMPORTS - S1ap-Criticality, - S1ap-Presence, - S1ap-PrivateIE-ID, - S1ap-ProtocolExtensionID, - S1ap-ProtocolIE-ID -FROM S1AP-CommonDataTypes - - s1ap-maxPrivateIEs, - s1ap-maxProtocolExtensions, - s1ap-maxProtocolIEs -FROM S1AP-Constants; - --- ************************************************************** --- --- Class Definition for Protocol IEs --- --- ************************************************************** - -S1AP-PROTOCOL-IES ::= CLASS { - &id S1ap-ProtocolIE-ID UNIQUE, - &criticality S1ap-Criticality, - &Value, - &presence S1ap-Presence -} -WITH SYNTAX { - ID &id - CRITICALITY &criticality - TYPE &Value - PRESENCE &presence -} - --- ************************************************************** --- --- Class Definition for Protocol IEs --- --- ************************************************************** - -S1AP-PROTOCOL-IES-PAIR ::= CLASS { - &id S1ap-ProtocolIE-ID UNIQUE, - &firstCriticality S1ap-Criticality, - &FirstValue, - &secondCriticality S1ap-Criticality, - &SecondValue, - &presence S1ap-Presence -} -WITH SYNTAX { - ID &id - FIRST CRITICALITY &firstCriticality - FIRST TYPE &FirstValue - SECOND CRITICALITY &secondCriticality - SECOND TYPE &SecondValue - PRESENCE &presence -} - --- ************************************************************** --- --- Class Definition for Protocol Extensions --- --- ************************************************************** - -S1AP-PROTOCOL-EXTENSION ::= CLASS { - &id S1ap-ProtocolExtensionID UNIQUE, - &criticality S1ap-Criticality, - &Extension, - &presence S1ap-Presence -} -WITH SYNTAX { - ID &id - CRITICALITY &criticality - EXTENSION &Extension - PRESENCE &presence -} - --- ************************************************************** --- --- Class Definition for Private IEs --- --- ************************************************************** - -S1AP-PRIVATE-IES ::= CLASS { - &id S1ap-PrivateIE-ID, - &criticality S1ap-Criticality, - &Value, - &presence S1ap-Presence -} -WITH SYNTAX { - ID &id - CRITICALITY &criticality - TYPE &Value - PRESENCE &presence -} - --- ************************************************************** --- --- Container for Protocol IEs --- --- ************************************************************** - -ProtocolIE-Container {S1AP-PROTOCOL-IES : IEsSetParam} ::= - SEQUENCE (SIZE (0..maxProtocolIEs)) OF - ProtocolIE-Field {{IEsSetParam}} - -ProtocolIE-SingleContainer {S1AP-PROTOCOL-IES : IEsSetParam} ::= - ProtocolIE-Field {{IEsSetParam}} - -ProtocolIE-Field {S1AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { - id S1AP-PROTOCOL-IES.&id ({IEsSetParam}), - criticality S1AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), - value S1AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) -} - --- ************************************************************** --- --- Container for Protocol IE Pairs --- --- ************************************************************** - -ProtocolIE-ContainerPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= - SEQUENCE (SIZE (0..maxProtocolIEs)) OF - ProtocolIE-FieldPair {{IEsSetParam}} - -ProtocolIE-FieldPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { - id S1AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), - firstCriticality S1AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), - firstValue S1AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), - secondCriticality S1AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), - secondValue S1AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) -} - --- ************************************************************** --- --- Container Lists for Protocol IE Containers --- --- ************************************************************** - -ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES : IEsSetParam} ::= - SEQUENCE (SIZE (lowerBound..upperBound)) OF - ProtocolIE-SingleContainer {{IEsSetParam}} - -ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= - SEQUENCE (SIZE (lowerBound..upperBound)) OF - ProtocolIE-ContainerPair {{IEsSetParam}} - --- ************************************************************** --- --- Container for Protocol Extensions --- --- ************************************************************** - -ProtocolExtensionContainer {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= - SEQUENCE (SIZE (1..maxProtocolExtensions)) OF - ProtocolExtensionField {{ExtensionSetParam}} - -ProtocolExtensionField {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { - id S1AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), - criticality S1AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), - extensionValue S1AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) -} - --- ************************************************************** --- --- Container for Private IEs --- --- ************************************************************** - -PrivateIE-Container {S1AP-PRIVATE-IES : IEsSetParam } ::= - SEQUENCE (SIZE (1.. maxPrivateIEs)) OF - PrivateIE-Field {{IEsSetParam}} - -PrivateIE-Field {S1AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { - id S1AP-PRIVATE-IES.&id ({IEsSetParam}), - criticality S1AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), - value S1AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) -} - -END diff --git a/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-IEs.asn b/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-IEs.asn deleted file mode 100644 index 4fa0160c9b..0000000000 --- a/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-IEs.asn +++ /dev/null @@ -1,1422 +0,0 @@ --- ************************************************************** --- --- Information Element Definitions --- --- ************************************************************** - -S1AP-IEs { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-IEs (2) } - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - -IMPORTS - s1ap-id-E-RABInformationListItem, - s1ap-id-E-RABItem, - s1ap-id-Bearers-SubjectToStatusTransfer-Item, - s1ap-id-Time-Synchronization-Info, - s1ap-id-x2TNLConfigurationInfo, - s1ap-id-eNBX2ExtendedTransportLayerAddresses, - s1ap-id-MDTConfiguration, - s1ap-maxNrOfCSGs, - s1ap-maxNrOfE-RABs, - s1ap-maxNrOfErrors, - s1ap-maxnoofBPLMNs, - s1ap-maxnoofPLMNsPerMME, - s1ap-maxnoofTACs, - s1ap-maxnoofEPLMNs, - s1ap-maxnoofEPLMNsPlusOne, - s1ap-maxnoofForbLACs, - s1ap-maxnoofForbTACs, - s1ap-maxnoofCells, - s1ap-maxnoofCellID, - s1ap-maxnoofEmergencyAreaID, - s1ap-maxnoofTAIforWarning, - s1ap-maxnoofCellinTAI, - s1ap-maxnoofCellinEAI, - s1ap-maxnoofeNBX2TLAs, - s1ap-maxnoofeNBX2ExtTLAs, - s1ap-maxnoofeNBX2GTPTLAs, - s1ap-maxnoofRATs, - s1ap-maxnoofGroupIDs, - s1ap-maxnoofMMECs, - s1ap-maxnoofTAforMDT, - s1ap-maxnoofCellIDforMDT, - s1ap-maxProtocolExtensions, - s1ap-maxNrOfIndividualS1ConnectionsToReset, - s1ap-maxnoofTAIs - -FROM S1AP-Constants - - S1ap-IE -FROM S1AP-PDU - - S1ap-Criticality, - S1ap-ProcedureCode, - S1ap-ProtocolIE-ID, - S1ap-TriggeringMessage -FROM S1AP-CommonDataTypes; - -S1ap-IE-Extensions ::= SEQUENCE (SIZE (1..s1ap-maxProtocolExtensions)) OF S1ap-IE - --- A - -S1ap-AreaScopeOfMDT ::= CHOICE { - cellBased S1ap-CellBasedMDT, - tABased S1ap-TABasedMDT, - pLMNWide NULL, - ... -} - -S1ap-AllocationAndRetentionPriority ::= SEQUENCE { - priorityLevel S1ap-PriorityLevel, - pre-emptionCapability S1ap-Pre-emptionCapability, - pre-emptionVulnerability S1ap-Pre-emptionVulnerability, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - --- B - -S1ap-Bearers-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfE-RABs)) OF S1ap-IE - -S1ap-Bearers-SubjectToStatusTransfer-Item ::= SEQUENCE { - e-RAB-ID S1ap-E-RAB-ID, - uL-COUNTvalue S1ap-COUNTvalue, - dL-COUNTvalue S1ap-COUNTvalue, - receiveStatusofULPDCPSDUs S1ap-ReceiveStatusofULPDCPSDUs OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-BitRate ::= INTEGER (0..10000000000) - -S1ap-BPLMNs ::= SEQUENCE (SIZE(1.. s1ap-maxnoofBPLMNs)) OF S1ap-PLMNidentity - -S1ap-BroadcastCancelledAreaList ::= CHOICE { - cellID-Cancelled S1ap-CellID-Cancelled, - tAI-Cancelled S1ap-TAI-Cancelled, - emergencyAreaID-Cancelled S1ap-EmergencyAreaID-Cancelled, - ... -} - -S1ap-BroadcastCompletedAreaList ::= CHOICE { - cellID-Broadcast S1ap-CellID-Broadcast, - tAI-Broadcast S1ap-TAI-Broadcast, - emergencyAreaID-Broadcast S1ap-EmergencyAreaID-Broadcast, - ... -} - - --- C - -S1ap-CancelledCellinEAI ::= SEQUENCE (SIZE(1..s1ap-maxnoofCellinEAI)) OF S1ap-CancelledCellinEAI-Item - -S1ap-CancelledCellinEAI-Item ::= SEQUENCE { - eCGI S1ap-EUTRAN-CGI, - numberOfBroadcasts S1ap-NumberOfBroadcasts, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-CancelledCellinTAI ::= SEQUENCE (SIZE(1..s1ap-maxnoofCellinTAI)) OF S1ap-CancelledCellinTAI-Item - -S1ap-CancelledCellinTAI-Item ::= SEQUENCE{ - eCGI S1ap-EUTRAN-CGI, - numberOfBroadcasts S1ap-NumberOfBroadcasts, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-Cause ::= CHOICE { - radioNetwork S1ap-CauseRadioNetwork, - transport S1ap-CauseTransport, - nas S1ap-CauseNas, - protocol S1ap-CauseProtocol, - misc S1ap-CauseMisc, - ... -} - -S1ap-CauseMisc ::= ENUMERATED { - control-processing-overload, - not-enough-user-plane-processing-resources, - hardware-failure, - om-intervention, - unspecified, - unknown-PLMN, - ... -} - -S1ap-CauseProtocol ::= ENUMERATED { - transfer-syntax-error, - abstract-syntax-error-reject, - abstract-syntax-error-ignore-and-notify, - message-not-compatible-with-receiver-state, - semantic-error, - abstract-syntax-error-falsely-constructed-message, - unspecified, - ... -} - -S1ap-CauseRadioNetwork ::= ENUMERATED { - unspecified, - tx2relocoverall-expiry, - successful-handover, - release-due-to-eutran-generated-reason, - handover-cancelled, - partial-handover, - ho-failure-in-target-EPC-eNB-or-target-system, - ho-target-not-allowed, - tS1relocoverall-expiry, - tS1relocprep-expiry, - cell-not-available, - unknown-targetID, - no-radio-resources-available-in-target-cell, - unknown-mme-ue-s1ap-id, - unknown-enb-ue-s1ap-id, - unknown-pair-ue-s1ap-id, - handover-desirable-for-radio-reason, - time-critical-handover, - resource-optimisation-handover, - reduce-load-in-serving-cell, - user-inactivity, - radio-connection-with-ue-lost, - load-balancing-tau-required, - cs-fallback-triggered, - ue-not-available-for-ps-service, - radio-resources-not-available, - failure-in-radio-interface-procedure, - invals1ap-id-qos-combination, - interrat-redirection, - interaction-with-other-procedure, - unknown-E-RAB-ID, - multiple-E-RAB-ID-instances, - encryption-and-or-integrity-protection-algorithms-not-supported, - s1-intra-system-handover-triggered, - s1-inter-system-handover-triggered, - x2-handover-triggered, - ..., - redirection-towards-1xRTT, - not-supported-QCI-value, - invals1ap-id-CSG-Id - -} - -S1ap-CauseTransport ::= ENUMERATED { - transport-resource-unavailable, - unspecified, - ... -} - -S1ap-CauseNas ::= ENUMERATED { - normal-release, - authentication-failure, - detach, - unspecified, - ..., - csg-subscription-expiry -} - -S1ap-CellAccessMode ::= ENUMERATED { - hybrid, - ... -} - -S1ap-CellIdentity ::= BIT STRING (SIZE (28)) - -S1ap-CellID-Broadcast ::= SEQUENCE (SIZE(1..s1ap-maxnoofCellID)) OF S1ap-CellID-Broadcast-Item - -S1ap-CellID-Broadcast-Item ::= SEQUENCE { - eCGI S1ap-EUTRAN-CGI, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-CellID-Cancelled::= SEQUENCE (SIZE(1..s1ap-maxnoofCellID)) OF S1ap-CellID-Cancelled-Item - -S1ap-CellID-Cancelled-Item ::= SEQUENCE { - eCGI S1ap-EUTRAN-CGI, - numberOfBroadcasts S1ap-NumberOfBroadcasts, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-CellBasedMDT::= SEQUENCE { - cellIdListforMDT S1ap-CellIdListforMDT, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-CellIdListforMDT ::= SEQUENCE (SIZE(1..s1ap-maxnoofCellIDforMDT)) OF S1ap-EUTRAN-CGI - -S1ap-Cdma2000PDU ::= OCTET STRING - -S1ap-Cdma2000RATType ::= ENUMERATED { - hRPD, - onexRTT, - ... -} - -S1ap-Cdma2000SectorID ::= OCTET STRING - -S1ap-Cdma2000HOStatus ::= ENUMERATED { - hOSuccess, - hOFailure, - ... -} - -S1ap-Cdma2000HORequiredIndication ::= ENUMERATED { - true, - ... -} - -S1ap-Cdma2000OneXSRVCCInfo ::= SEQUENCE { - cdma2000OneXMEID S1ap-Cdma2000OneXMEID, - cdma2000OneXMSI S1ap-Cdma2000OneXMSI, - cdma2000OneXPilot S1ap-Cdma2000OneXPilot, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-Cdma2000OneXMEID ::= OCTET STRING - -S1ap-Cdma2000OneXMSI ::= OCTET STRING - -S1ap-Cdma2000OneXPilot ::= OCTET STRING - -S1ap-Cdma2000OneXRAND ::= OCTET STRING - -S1ap-Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ...} - -S1ap-CellType ::= SEQUENCE { - cell-Size S1ap-Cell-Size, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-CGI ::= SEQUENCE { - pLMNidentity S1ap-PLMNidentity, - lAC S1ap-LAC, - cI S1ap-CI, - rAC S1ap-RAC OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-CI ::= OCTET STRING (SIZE (2)) - -S1ap-CNDomain ::= ENUMERATED { - ps, - cs -} - -S1ap-ConcurrentWarningMessageIndicator ::= ENUMERATED { - true -} - -S1ap-Correlation-ID ::= OCTET STRING (SIZE (4)) - -S1ap-CSFallbackIndicator ::= ENUMERATED { - cs-fallback-required, - ..., - cs-fallback-high-priority -} - -S1ap-CSG-Id ::= BIT STRING (SIZE (27)) - - -S1ap-CSG-IdList ::= SEQUENCE (SIZE (1..s1ap-maxNrOfCSGs)) OF S1ap-CSG-IdList-Item - -S1ap-CSG-IdList-Item ::= SEQUENCE { - cSG-Id S1ap-CSG-Id, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-CSGMembershipStatus ::= ENUMERATED { - member, - not-member -} - - -S1ap-COUNTvalue ::= SEQUENCE { - pDCP-SN S1ap-PDCP-SN, - hFN S1ap-HFN, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-CriticalityDiagnostics ::= SEQUENCE { - procedureCode S1ap-ProcedureCode OPTIONAL, - triggeringMessage S1ap-TriggeringMessage OPTIONAL, - procedureCriticality S1ap-Criticality OPTIONAL, - iEsCriticalityDiagnostics S1ap-CriticalityDiagnostics-IE-List OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..s1ap-maxNrOfErrors)) OF S1ap-CriticalityDiagnostics-IE-Item - -S1ap-CriticalityDiagnostics-IE-Item ::= SEQUENCE { - iECriticality S1ap-Criticality, - iE-ID S1ap-ProtocolIE-ID, - typeOfError S1ap-TypeOfError, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - --- D - -S1ap-DataCodingScheme ::= BIT STRING (SIZE (8)) - -S1ap-DL-Forwarding ::= ENUMERATED { - dL-Forwarding-proposed, - ... -} - -S1ap-Direct-Forwarding-Path-Availability ::= ENUMERATED { - directPathAvailable, - ... -} - -S1ap-Data-Forwarding-Not-Possible ::= ENUMERATED { - data-Forwarding-not-Possible, - ... -} - --- E - -S1ap-ECGIList ::= SEQUENCE (SIZE(1..s1ap-maxnoofCellID)) OF S1ap-EUTRAN-CGI - -S1ap-EmergencyAreaIDList ::= SEQUENCE (SIZE(1..s1ap-maxnoofEmergencyAreaID)) OF S1ap-EmergencyAreaID - -S1ap-EmergencyAreaID ::= OCTET STRING (SIZE (3)) - -S1ap-EmergencyAreaID-Broadcast ::= SEQUENCE (SIZE(1..s1ap-maxnoofEmergencyAreaID)) OF S1ap-EmergencyAreaID-Broadcast-Item - -S1ap-EmergencyAreaID-Broadcast-Item ::= SEQUENCE { - emergencyAreaID S1ap-EmergencyAreaID, - completedCellinEAI S1ap-CompletedCellinEAI, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-EmergencyAreaID-Cancelled ::= SEQUENCE (SIZE(1..s1ap-maxnoofEmergencyAreaID)) OF S1ap-EmergencyAreaID-Cancelled-Item - -S1ap-EmergencyAreaID-Cancelled-Item ::= SEQUENCE { - emergencyAreaID S1ap-EmergencyAreaID, - cancelledCellinEAI S1ap-CancelledCellinEAI, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-CompletedCellinEAI ::= SEQUENCE (SIZE(1..s1ap-maxnoofCellinEAI)) OF S1ap-CompletedCellinEAI-Item - -S1ap-CompletedCellinEAI-Item ::= SEQUENCE { - eCGI S1ap-EUTRAN-CGI, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-ENB-ID ::= CHOICE { - macroENB-ID BIT STRING (SIZE(20)), - homeENB-ID BIT STRING (SIZE(28)), - ... -} - -S1ap-GERAN-Cell-ID ::= SEQUENCE { - lAI S1ap-LAI, - rAC S1ap-RAC, - cI S1ap-CI, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-Global-ENB-ID ::= SEQUENCE { - pLMNidentity S1ap-PLMNidentity, - eNB-ID S1ap-ENB-ID, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-GUMMEIList::= SEQUENCE (SIZE (1.. s1ap-maxnoofMMECs)) OF S1ap-GUMMEI - -S1ap-ENB-StatusTransfer-TransparentContainer ::= SEQUENCE { - bearers-SubjectToStatusTransferList S1ap-Bearers-SubjectToStatusTransfer-List, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-ENB-UE-S1AP-ID ::= INTEGER (0..16777215) - -S1ap-ENBname ::= PrintableString (SIZE (1..150,...)) - -S1ap-ENBX2TLAs ::= SEQUENCE (SIZE(1.. s1ap-maxnoofeNBX2TLAs)) OF S1ap-TransportLayerAddress - -S1ap-EncryptionAlgorithms ::= BIT STRING (SIZE (16,...)) - -S1ap-EPLMNs ::= SEQUENCE (SIZE(1..s1ap-maxnoofEPLMNs)) OF S1ap-PLMNidentity - -S1ap-EventType ::= ENUMERATED { - direct, - change-of-serve-cell, - stop-change-of-serve-cell, - ... -} - -S1ap-E-RAB-ID ::= INTEGER (0..15, ...) - -S1ap-E-RABDataForwardingItem ::= SEQUENCE { - e-RAB-ID S1ap-E-RAB-ID, - dL-transportLayerAddress S1ap-TransportLayerAddress OPTIONAL, - dL-gTP-TEID S1ap-GTP-TEID OPTIONAL, - uL-TransportLayerAddress S1ap-TransportLayerAddress OPTIONAL, - uL-GTP-TEID S1ap-GTP-TEID OPTIONAL, --- iE-Extensions ProtocolExtensionContainer { { E-RABDataForwardingItem-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-E-RABToBeSetupItemHOReq ::= SEQUENCE { - e-RAB-ID S1ap-E-RAB-ID, - transportLayerAddress S1ap-TransportLayerAddress, - gTP-TEID S1ap-GTP-TEID, - e-RABlevelQosParameters S1ap-E-RABLevelQoSParameters, - -- iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemHOReq-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-E-RABAdmittedItem ::= SEQUENCE { - e-RAB-ID S1ap-E-RAB-ID, - transportLayerAddress S1ap-TransportLayerAddress, - gTP-TEID S1ap-GTP-TEID, - dL-transportLayerAddress S1ap-TransportLayerAddress OPTIONAL, - dL-gTP-TEID S1ap-GTP-TEID OPTIONAL, - uL-TransportLayerAddress S1ap-TransportLayerAddress OPTIONAL, - uL-GTP-TEID S1ap-GTP-TEID OPTIONAL, - -- iE-Extensions ProtocolExtensionContainer { {E-RABAdmittedItem-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-E-RABToBeSwitchedDLItem ::= SEQUENCE { - e-RAB-ID S1ap-E-RAB-ID, - transportLayerAddress S1ap-TransportLayerAddress, - gTP-TEID S1ap-GTP-TEID, - -- iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedDLItem-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-E-RABToBeSwitchedULItem ::= SEQUENCE { - e-RAB-ID S1ap-E-RAB-ID, - transportLayerAddress S1ap-TransportLayerAddress, - gTP-TEID S1ap-GTP-TEID, - -- iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedULItem-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-E-RABToBeSetupItemBearerSUReq ::= SEQUENCE { - e-RAB-ID S1ap-E-RAB-ID, - e-RABlevelQoSParameters S1ap-E-RABLevelQoSParameters, - transportLayerAddress S1ap-TransportLayerAddress, - gTP-TEID S1ap-GTP-TEID, - nAS-PDU S1ap-NAS-PDU, - -- iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemBearerSUReqExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-E-RABSetupItemBearerSURes ::= SEQUENCE { - e-RAB-ID S1ap-E-RAB-ID, - transportLayerAddress S1ap-TransportLayerAddress, - gTP-TEID S1ap-GTP-TEID, - -- iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemBearerSUResExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-E-RABToBeModifiedItemBearerModReq ::= SEQUENCE { - e-RAB-ID S1ap-E-RAB-ID, - e-RABLevelQoSParameters S1ap-E-RABLevelQoSParameters, - nAS-PDU S1ap-NAS-PDU, - -- iE-Extensions ProtocolExtensionContainer { {E-RABToBeModifyItemBearerModReqExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-E-RABReleaseItemBearerRelComp ::= SEQUENCE { - e-RAB-ID S1ap-E-RAB-ID, - -- iE-Extensions ProtocolExtensionContainer { {E-RABReleaseItemBearerRelCompExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-E-RABToBeSetupItemCtxtSUReq ::= SEQUENCE { - e-RAB-ID S1ap-E-RAB-ID, - e-RABlevelQoSParameters S1ap-E-RABLevelQoSParameters, - transportLayerAddress S1ap-TransportLayerAddress, - gTP-TEID S1ap-GTP-TEID, - nAS-PDU S1ap-NAS-PDU OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-E-RABSetupItemCtxtSURes ::= SEQUENCE { - e-RAB-ID S1ap-E-RAB-ID, - transportLayerAddress S1ap-TransportLayerAddress, - gTP-TEID S1ap-GTP-TEID, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-E-RABToBeModifiedListBearerModReq ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfE-RABs)) OF S1ap-IE -S1ap-E-RABReleaseListBearerRelComp ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfE-RABs)) OF S1ap-IE -S1ap-E-RABInformationList ::= SEQUENCE (SIZE (1.. s1ap-maxNrOfE-RABs)) OF S1ap-IE -S1ap-E-RABToBeSetupListCtxtSUReq ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfE-RABs)) OF S1ap-IE -S1ap-E-RABSetupListCtxtSURes ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfE-RABs)) OF S1ap-IE -S1ap-E-RABDataForwardingList ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfE-RABs)) OF S1ap-IE -S1ap-E-RABSetupListBearerSURes ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfE-RABs)) OF S1ap-IE -S1ap-E-RABFailedToSetupListHOReqAck ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfE-RABs)) OF S1ap-IE -S1ap-E-RABToBeSetupListBearerSUReq ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfE-RABs)) OF S1ap-IE -S1ap-E-RABAdmittedList ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfE-RABs)) OF S1ap-IE -S1ap-E-RABToBeSwitchedDLList ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfE-RABs)) OF S1ap-IE -S1ap-E-RABToBeSwitchedULList ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfE-RABs)) OF S1ap-IE -S1ap-E-RABModifyListBearerModRes ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfE-RABs)) OF S1ap-IE -S1ap-E-RABToBeSetupListHOReq ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfE-RABs)) OF S1ap-IE - -S1ap-TAIList::= SEQUENCE (SIZE(1.. s1ap-maxnoofTAIs)) OF S1ap-IE -S1ap-UE-associatedLogicalS1-ConnectionListRes ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfIndividualS1ConnectionsToReset)) OF S1ap-IE -S1ap-UE-associatedLogicalS1-ConnectionListResAck ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfIndividualS1ConnectionsToReset)) OF S1ap-IE - -S1ap-E-RABModifyItemBearerModRes ::= SEQUENCE { - e-RAB-ID S1ap-E-RAB-ID, - -- iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModResExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-E-RABFailedToSetupItemHOReqAck ::= SEQUENCE { - e-RAB-ID S1ap-E-RAB-ID, - cause S1ap-Cause, - -- iE-Extensions ProtocolExtensionContainer { { E-RABFailedToSetupItemHOReqAckExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-E-RABInformationListItem ::= SEQUENCE { - e-RAB-ID S1ap-E-RAB-ID, - dL-Forwarding S1ap-DL-Forwarding OPTIONAL, - -- iE-Extensions ProtocolExtensionContainer { {E-RABInformationListItem-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - --- E-RABList ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABItemIEs} } -S1ap-E-RABList ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfE-RABs)) OF S1ap-IE - -S1ap-E-RABItem ::= SEQUENCE { - e-RAB-ID S1ap-E-RAB-ID, - cause S1ap-Cause, - -- iE-Extensions ProtocolExtensionContainer { {E-RABItem-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-E-RABLevelQoSParameters ::= SEQUENCE { - qCI S1ap-QCI, - allocationRetentionPriority S1ap-AllocationAndRetentionPriority, - gbrQosInformation S1ap-GBR-QosInformation OPTIONAL, - -- iE-Extensions ProtocolExtensionContainer { {E-RABQoSParameters-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-EUTRAN-CGI ::= SEQUENCE { - pLMNidentity S1ap-PLMNidentity, - cell-ID S1ap-CellIdentity, - -- iE-Extensions ProtocolExtensionContainer { {EUTRAN-CGI-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-EUTRANRoundTripDelayEstimationInfo ::= INTEGER (0..2047) - -S1ap-ExtendedRNC-ID ::= INTEGER (4096..65535) - -S1ap-ExtendedRepetitionPeriod ::= INTEGER (4096..131071) - --- F - -S1ap-ForbiddenInterRATs ::= ENUMERATED { - all, - geran, - utran, - cdma2000, - ..., - geranandutran, - cdma2000andutran - -} - -S1ap-ForbiddenTAs ::= SEQUENCE (SIZE(1.. s1ap-maxnoofEPLMNsPlusOne)) OF S1ap-ForbiddenTAs-Item - -S1ap-ForbiddenTAs-Item ::= SEQUENCE { - pLMN-Identity S1ap-PLMNidentity, - forbiddenTACs S1ap-ForbiddenTACs, - -- iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-ForbiddenTACs ::= SEQUENCE (SIZE(1..s1ap-maxnoofForbTACs)) OF S1ap-TAC - -S1ap-ForbiddenLAs ::= SEQUENCE (SIZE(1..s1ap-maxnoofEPLMNsPlusOne)) OF S1ap-ForbiddenLAs-Item - -S1ap-ForbiddenLAs-Item ::= SEQUENCE { - pLMN-Identity S1ap-PLMNidentity, - forbiddenLACs S1ap-ForbiddenLACs, - -- iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-ForbiddenLACs ::= SEQUENCE (SIZE(1..s1ap-maxnoofForbLACs)) OF S1ap-LAC - --- G - -S1ap-GBR-QosInformation ::= SEQUENCE { - e-RAB-MaximumBitrateDL S1ap-BitRate, - e-RAB-MaximumBitrateUL S1ap-BitRate, - e-RAB-GuaranteedBitrateDL S1ap-BitRate, - e-RAB-GuaranteedBitrateUL S1ap-BitRate, - -- iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-GTP-TEID ::= OCTET STRING (SIZE (4)) - -S1ap-GUMMEI ::= SEQUENCE { - pLMN-Identity S1ap-PLMNidentity, - mME-Group-ID S1ap-MME-Group-ID, - mME-Code S1ap-MME-Code, - -- iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-GWContextReleaseIndication ::= ENUMERATED { - true, - ... -} - --- H - -S1ap-HandoverRestrictionList ::= SEQUENCE { - servingPLMN S1ap-PLMNidentity, - equivalentPLMNs S1ap-EPLMNs OPTIONAL, - forbiddenTAs S1ap-ForbiddenTAs OPTIONAL, - forbiddenLAs S1ap-ForbiddenLAs OPTIONAL, - forbiddenInterRATs S1ap-ForbiddenInterRATs OPTIONAL, - -- iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-HandoverType ::= ENUMERATED { - intralte, - ltetoutran, - ltetogeran, - utrantolte, - gerantolte, - ... -} - -S1ap-HFN ::= INTEGER (0..1048575) - --- I - -S1ap-ImmediateMDT ::= SEQUENCE { - measurementsToActivate S1ap-MeasurementsToActivate, - reportingTriggerMDT S1ap-ReportingTriggerMDT, - thresholdeventA2 S1ap-ThresholdEventA2 OPTIONAL, --- Included in case of event-triggered reporting for measurement M1 - periodicReportingMDT S1ap-PeriodicReportingMDT OPTIONAL, --- Included in case of periodic reporting - -- iE-Extensions ProtocolExtensionContainer { { ImmediateMDT-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-IMSI ::= OCTET STRING (SIZE (3..8)) - -S1ap-IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...)) - -S1ap-InterfacesToTrace ::= BIT STRING (SIZE (8)) - -S1ap-Inter-SystemInformationTransferType ::= CHOICE { - rIMTransfer S1ap-RIMTransfer, - ... -} - --- J --- K --- L - - -S1ap-LAC ::= OCTET STRING (SIZE (2)) - -S1ap-LAI ::= SEQUENCE { - pLMNidentity S1ap-PLMNidentity, - lAC S1ap-LAC, - -- iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-LastVisitedCell-Item ::= CHOICE { - e-UTRAN-Cell S1ap-LastVisitedEUTRANCellInformation, - uTRAN-Cell S1ap-LastVisitedUTRANCellInformation, - gERAN-Cell S1ap-LastVisitedGERANCellInformation, - ... -} - -S1ap-LastVisitedEUTRANCellInformation ::= SEQUENCE { - global-Cell-ID S1ap-EUTRAN-CGI, - cellType S1ap-CellType, - time-UE-StayedInCell S1ap-Time-UE-StayedInCell, - -- iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-LastVisitedUTRANCellInformation ::= OCTET STRING - -S1ap-LastVisitedGERANCellInformation ::= CHOICE { - undefined NULL, - ... -} - -S1ap-L3-Information ::= OCTET STRING --- This is a dummy IE used only as a reference to the actual definition in relevant specification. - -S1ap-LPPa-PDU ::= OCTET STRING - -S1ap-LoggedMDT ::= SEQUENCE { - loggingInterval S1ap-LoggingInterval, - loggingDuration S1ap-LoggingDuration, - -- iE-Extensions ProtocolExtensionContainer { {LoggedMDT-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-LoggingInterval ::= ENUMERATED {ms128, ms256, ms512, ms1024, ms2048, ms3072, ms4096, ms6144} - -S1ap-LoggingDuration ::= ENUMERATED {m10, m20, m40, m60, m90, m120} - --- M - -S1ap-MDT-Activation ::= ENUMERATED { - immediate-MDT-only, - immediate-MDT-and-Trace, - logged-MDT-only, - ... -} - -S1ap-MDT-Configuration ::= SEQUENCE { - mdt-Activation S1ap-MDT-Activation, - areaScopeOfMDT S1ap-AreaScopeOfMDT, - mDTMode S1ap-MDTMode, - -- iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-ManagementBasedMDTAllowed ::= ENUMERATED {allowed, ...} - -S1ap-PrivacyIndicator ::= ENUMERATED { - immediate-MDT, - logged-MDT, - ... -} - -S1ap-MDTMode ::= CHOICE { - immediateMDT S1ap-ImmediateMDT, - loggedMDT S1ap-LoggedMDT, - ... -} - -S1ap-MeasurementsToActivate ::= BIT STRING (SIZE (8)) - -S1ap-MeasurementThresholdA2 ::= CHOICE { - threshold-RSRP S1ap-Threshold-RSRP, - threshold-RSRQ S1ap-Threshold-RSRQ, - ... -} - -S1ap-MessageIdentifier ::= BIT STRING (SIZE (16)) - -S1ap-MMEname ::= PrintableString (SIZE (1..150,...)) - -S1ap-MMERelaySupportIndicator ::= ENUMERATED {true, ...} - -S1ap-MME-Group-ID ::= OCTET STRING (SIZE (2)) - -S1ap-MME-Code ::= OCTET STRING (SIZE (1)) - -S1ap-MME-UE-S1AP-ID ::= INTEGER (0..4294967295) -S1ap-M-TMSI ::= OCTET STRING (SIZE (4)) - -S1ap-MSClassmark2 ::= OCTET STRING -S1ap-MSClassmark3 ::= OCTET STRING - --- N - -S1ap-NAS-PDU ::= OCTET STRING - -S1ap-NASSecurityParametersfromE-UTRAN ::= OCTET STRING - -S1ap-NASSecurityParameterstoE-UTRAN ::= OCTET STRING - -S1ap-NumberofBroadcastRequest ::= INTEGER (0..65535) - -S1ap-NumberOfBroadcasts ::= INTEGER (0..65535) - --- O -S1ap-OldBSS-ToNewBSS-Information ::= OCTET STRING --- This is a dummy IE used only as a reference to the actual definition in relevant specification. - -S1ap-OverloadAction ::= ENUMERATED { - reject-non-emergency-mo-dt, - reject-rrc-cr-signalling, - permit-emergency-sessions-and-mobile-terminated-services-only, - ..., - permit-high-priority-sessions-and-mobile-terminated-services-only, - reject-delay-tolerant-access -} - -S1ap-OverloadResponse ::= CHOICE { - overloadAction S1ap-OverloadAction, - ... -} - - --- P - -S1ap-PagingDRX ::= ENUMERATED { - v32, - v64, - v128, - v256, - ... - } - -S1ap-PagingPriority ::= ENUMERATED { - priolevel1, - priolevel2, - priolevel3, - priolevel4, - priolevel5, - priolevel6, - priolevel7, - priolevel8, - ... -} - -S1ap-PDCP-SN ::= INTEGER (0..4095) - -S1ap-PeriodicReportingMDT ::= SEQUENCE { - reportInterval S1ap-ReportIntervalMDT, - reportAmount S1ap-ReportAmountMDT, - -- iE-Extensions ProtocolExtensionContainer { { PeriodicReportingMDT-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-PLMNidentity ::= S1ap-TBCD-STRING - -S1ap-Pre-emptionCapability ::= ENUMERATED { - shall-not-trigger-pre-emption, - may-trigger-pre-emption -} - -S1ap-Pre-emptionVulnerability ::= ENUMERATED { - not-pre-emptable, - pre-emptable -} - -S1ap-PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) - -S1ap-PS-ServiceNotAvailable ::= ENUMERATED { - ps-service-not-available, - ... -} - --- Q - -S1ap-QCI ::= INTEGER (0..255) - --- R - -S1ap-ResetType ::= CHOICE { - s1-Interface S1ap-ResetAll, - partOfS1-Interface S1ap-UE-associatedLogicalS1-ConnectionListRes, - ... -} - -S1ap-ResetAll ::= ENUMERATED { - reset-all, - ... -} - -S1ap-ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) - -S1ap-RelativeMMECapacity ::= INTEGER (0..255) - -S1ap-RelayNode-Indicator ::= ENUMERATED { - true, - ... -} - -S1ap-RAC ::= OCTET STRING (SIZE (1)) - -S1ap-ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity} - -S1ap-ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60} - -S1ap-ReportingTriggerMDT ::= ENUMERATED{ - periodic, - a2eventtriggered, - ... -} - -S1ap-RequestType ::= SEQUENCE { - eventType S1ap-EventType, - reportArea S1ap-ReportArea, - -- iE-Extensions ProtocolExtensionContainer { { RequestType-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-RIMTransfer ::= SEQUENCE { - rIMInformation S1ap-RIMInformation, - rIMRoutingAddress S1ap-RIMRoutingAddress OPTIONAL, - -- iE-Extensions ProtocolExtensionContainer { { RIMTransfer-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-RIMInformation ::= OCTET STRING - -S1ap-RIMRoutingAddress ::= CHOICE { - gERAN-Cell-ID S1ap-GERAN-Cell-ID, - ..., - targetRNC-ID S1ap-TargetRNC-ID -} - -S1ap-ReportArea ::= ENUMERATED { - ecgi, - ... -} - -S1ap-RepetitionPeriod ::= INTEGER (0..4095) - -S1ap-RNC-ID ::= INTEGER (0..4095) - -S1ap-RRC-Container ::= OCTET STRING - -S1ap-RRC-Establishment-Cause ::= ENUMERATED { - emergency, - highPriorityAccess, - mt-Access, - mo-Signalling, - mo-Data, - ..., - delay-TolerantAccess -} - -S1ap-Routing-ID ::= INTEGER (0..255) - --- S - - -S1ap-SecurityKey ::= BIT STRING (SIZE(256)) - -S1ap-SecurityContext ::= SEQUENCE { - nextHopChainingCount INTEGER (0..7), - nextHopParameter S1ap-SecurityKey, - -- iE-Extensions ProtocolExtensionContainer { { SecurityContext-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-SerialNumber ::= BIT STRING (SIZE (16)) - -S1ap-SONInformation ::= CHOICE{ - sONInformationRequest S1ap-SONInformationRequest, - sONInformationReply S1ap-SONInformationReply, - ... -} - -S1ap-SONInformationRequest ::= ENUMERATED { - x2TNL-Configuration-Info, - ..., - time-Synchronization-Info -} - -S1ap-SONInformationReply ::= SEQUENCE { - x2TNLConfigurationInfo S1ap-X2TNLConfigurationInfo OPTIONAL, - -- iE-Extensions ProtocolExtensionContainer {{SONInformationReply-ExtIEs}} OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-SONConfigurationTransfer ::= SEQUENCE { - targeteNB-ID S1ap-TargeteNB-ID, - sourceeNB-ID S1ap-SourceeNB-ID, - sONInformation S1ap-SONInformation, - -- iE-Extensions ProtocolExtensionContainer { { SONConfigurationTransfer-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-Source-ToTarget-TransparentContainer ::= OCTET STRING --- This IE includes a transparent container from the source RAN node to the target RAN node. --- The octets of the OCTET STRING are encoded according to the specifications of the target system. - -S1ap-SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING --- This is a dummy IE used only as a reference to the actual definition in relevant specification. - -S1ap-SourceeNB-ID ::= SEQUENCE { - global-ENB-ID S1ap-Global-ENB-ID, - selected-TAI S1ap-TAI, - -- iE-Extensions ProtocolExtensionContainer { {SourceeNB-ID-ExtIEs} } OPTIONAL - iE-Extensions S1ap-IE-Extensions OPTIONAL -} - -S1ap-SRVCCOperationPossible ::= ENUMERATED { - possible, - ... -} - -S1ap-SRVCCHOIndication ::= ENUMERATED { - pSandCS, - cSonly, - ... -} - -S1ap-SourceeNB-ToTargeteNB-TransparentContainer ::= SEQUENCE { - rRC-Container S1ap-RRC-Container, - e-RABInformationList S1ap-E-RABInformationList OPTIONAL, - targetCell-ID S1ap-EUTRAN-CGI, - subscriberProfileIDforRFP S1ap-SubscriberProfileIDforRFP OPTIONAL, - uE-HistoryInformation S1ap-UE-HistoryInformation, - -- iE-Extensions ProtocolExtensionContainer { {SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-SourceRNC-ToTargetRNC-TransparentContainer ::= OCTET STRING --- This is a dummy IE used only as a reference to the actual definition in relevant specification. - - -S1ap-ServedGUMMEIs ::= SEQUENCE (SIZE (1.. s1ap-maxnoofRATs)) OF S1ap-ServedGUMMEIsItem - -S1ap-ServedGUMMEIsItem ::= SEQUENCE { - servedPLMNs S1ap-ServedPLMNs, - servedGroupIDs S1ap-ServedGroupIDs, - servedMMECs S1ap-ServedMMECs, - -- iE-Extensions ProtocolExtensionContainer { {ServedGUMMEIsItem-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-ServedGroupIDs ::= SEQUENCE (SIZE(1.. s1ap-maxnoofGroupIDs)) OF S1ap-MME-Group-ID -S1ap-ServedMMECs ::= SEQUENCE (SIZE(1.. s1ap-maxnoofMMECs)) OF S1ap-MME-Code - -S1ap-ServedPLMNs ::= SEQUENCE (SIZE(1.. s1ap-maxnoofPLMNsPerMME)) OF S1ap-PLMNidentity - -S1ap-SubscriberProfileIDforRFP ::= INTEGER (1..256) - -S1ap-SupportedTAs ::= SEQUENCE (SIZE(1.. s1ap-maxnoofTACs)) OF S1ap-SupportedTAs-Item - -S1ap-SupportedTAs-Item ::= SEQUENCE { - tAC S1ap-TAC, - broadcastPLMNs S1ap-BPLMNs, - -- iE-Extensions ProtocolExtensionContainer { {SupportedTAs-Item-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-StratumLevel ::= INTEGER (0..3, ...) - -S1ap-SynchronizationStatus ::= ENUMERATED { synchronous, asynchronous, ... } - -S1ap-TimeSynchronizationInfo ::= SEQUENCE { - stratumLevel S1ap-StratumLevel, - synchronizationStatus S1ap-SynchronizationStatus, - -- iE-Extensions ProtocolExtensionContainer { { TimeSynchronizationInfo-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-S-TMSI ::= SEQUENCE { - mMEC S1ap-MME-Code, - m-TMSI S1ap-M-TMSI, - -- iE-Extensions ProtocolExtensionContainer { {S-TMSI-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - --- T - -S1ap-TAC ::= OCTET STRING (SIZE (2)) - -S1ap-TAIListforWarning ::= SEQUENCE (SIZE(1..s1ap-maxnoofTAIforWarning)) OF S1ap-TAI - -S1ap-TAI ::= SEQUENCE { - pLMNidentity S1ap-PLMNidentity, - tAC S1ap-TAC, - -- iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-TAIItem ::= SEQUENCE { - tAI S1ap-TAI, - -- iE-Extensions ProtocolExtensionContainer { {TAIItemExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-TAI-Broadcast ::= SEQUENCE (SIZE(1..s1ap-maxnoofTAIforWarning)) OF S1ap-TAI-Broadcast-Item - -S1ap-TAI-Broadcast-Item ::= SEQUENCE { - tAI S1ap-TAI, - completedCellinTAI S1ap-CompletedCellinTAI, - -- iE-Extensions ProtocolExtensionContainer { {TAI-Broadcast-Item-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-TAI-Cancelled ::= SEQUENCE (SIZE(1..s1ap-maxnoofTAIforWarning)) OF S1ap-TAI-Cancelled-Item - -S1ap-TAI-Cancelled-Item ::= SEQUENCE { - tAI S1ap-TAI, - cancelledCellinTAI S1ap-CancelledCellinTAI, - -- iE-Extensions ProtocolExtensionContainer { {TAI-Cancelled-Item-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-TABasedMDT ::= SEQUENCE { - tAListforMDT S1ap-TAListforMDT, - -- iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-TAListforMDT ::= SEQUENCE (SIZE(1..s1ap-maxnoofTAforMDT)) OF S1ap-TAC - -S1ap-CompletedCellinTAI ::= SEQUENCE (SIZE(1..s1ap-maxnoofCellinTAI)) OF S1ap-CompletedCellinTAI-Item - -S1ap-CompletedCellinTAI-Item ::= SEQUENCE{ - eCGI S1ap-EUTRAN-CGI, - -- iE-Extensions ProtocolExtensionContainer { {CompletedCellinTAI-Item-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-TBCD-STRING ::= OCTET STRING (SIZE (3)) - -S1ap-TargetID ::= CHOICE { - targeteNB-ID S1ap-TargeteNB-ID, - targetRNC-ID S1ap-TargetRNC-ID, - cGI S1ap-CGI, - ... -} - -S1ap-TargeteNB-ID ::= SEQUENCE { - global-ENB-ID S1ap-Global-ENB-ID, - selected-TAI S1ap-TAI, - -- iE-Extensions ProtocolExtensionContainer { {TargeteNB-ID-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-TargetRNC-ID ::= SEQUENCE { - lAI S1ap-LAI, - rAC S1ap-RAC OPTIONAL, - rNC-ID S1ap-RNC-ID, - extendedRNC-ID S1ap-ExtendedRNC-ID OPTIONAL, - -- iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-TargeteNB-ToSourceeNB-TransparentContainer ::= SEQUENCE { - rRC-Container S1ap-RRC-Container, - -- iE-Extensions ProtocolExtensionContainer { {TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-Target-ToSource-TransparentContainer ::= OCTET STRING --- This IE includes a transparent container from the target RAN node to the source RAN node. --- The octets of the OCTET STRING are coded according to the specifications of the target system. - -S1ap-TargetRNC-ToSourceRNC-TransparentContainer ::= OCTET STRING --- This is a dummy IE used only as a reference to the actual definition in relevant specification. - -S1ap-TargetBSS-ToSourceBSS-TransparentContainer ::= OCTET STRING --- This is a dummy IE used only as a reference to the actual definition in relevant specification. - -S1ap-ThresholdEventA2 ::= SEQUENCE { - measurementThreshold S1ap-MeasurementThresholdA2, - -- iE-Extensions ProtocolExtensionContainer { { ThresholdEventA2-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-Threshold-RSRP ::= INTEGER(0..97) - -S1ap-Threshold-RSRQ ::= INTEGER(0..34) - -S1ap-TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...} - -S1ap-Time-UE-StayedInCell ::= INTEGER (0..4095) - -S1ap-TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) - -S1ap-TraceActivation ::= SEQUENCE { - e-UTRAN-Trace-ID S1ap-E-UTRAN-Trace-ID, - interfacesToTrace S1ap-InterfacesToTrace, - traceDepth S1ap-TraceDepth, - traceCollectionEntityIPAddress S1ap-TransportLayerAddress, - -- iE-Extensions ProtocolExtensionContainer { { TraceActivation-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-TraceDepth ::= ENUMERATED { - minimum, - medium, - s1ap-maximum, - minimumWithoutVendorSpecificExtension, - mediumWithoutVendorSpecificExtension, - s1ap-maximumWithoutVendorSpecificExtension, - ... -} - -S1ap-E-UTRAN-Trace-ID ::= OCTET STRING (SIZE (8)) - -S1ap-TrafficLoadReductionIndication ::= INTEGER (1..99) - -S1ap-TypeOfError ::= ENUMERATED { - not-understood, - missing, - ... -} - --- U - -S1ap-UEAggregateMaximumBitrate ::= SEQUENCE { - uEaggregateMaximumBitRateDL S1ap-BitRate, - uEaggregateMaximumBitRateUL S1ap-BitRate, - -- iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrates-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-UE-S1AP-IDs ::= CHOICE{ - uE-S1AP-ID-pair S1ap-UE-S1AP-ID-pair, - mME-UE-S1AP-ID S1ap-MME-UE-S1AP-ID, - ... -} - -S1ap-UE-S1AP-ID-pair ::= SEQUENCE{ - mME-UE-S1AP-ID S1ap-MME-UE-S1AP-ID, - eNB-UE-S1AP-ID S1ap-ENB-UE-S1AP-ID, - -- iE-Extensions ProtocolExtensionContainer { {S1ap-UE-S1AP-ID-pair-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-UE-associatedLogicalS1-ConnectionItem ::= SEQUENCE { - mME-UE-S1AP-ID S1ap-MME-UE-S1AP-ID OPTIONAL, - eNB-UE-S1AP-ID S1ap-ENB-UE-S1AP-ID OPTIONAL, - -- iE-Extensions ProtocolExtensionContainer { { UE-associatedLogicalS1-ConnectionItemExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-UEIdentityIndexValue ::= BIT STRING (SIZE (10)) - -S1ap-UE-HistoryInformation ::= SEQUENCE (SIZE(1..s1ap-maxnoofCells)) OF S1ap-LastVisitedCell-Item - -S1ap-UEPagingID ::= CHOICE { - s-TMSI S1ap-S-TMSI, - iMSI S1ap-IMSI, - ... -} - -S1ap-UERadioCapability ::= OCTET STRING - -S1ap-UESecurityCapabilities ::= SEQUENCE { - encryptionAlgorithms S1ap-EncryptionAlgorithms, - integrityProtectionAlgorithms S1ap-IntegrityProtectionAlgorithms, - -- iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, -... -} - --- V --- W - -S1ap-WarningAreaList ::= CHOICE { - cellIDList S1ap-ECGIList, - trackingAreaListforWarning S1ap-TAIListforWarning, - emergencyAreaIDList S1ap-EmergencyAreaIDList, - ... -} - - -S1ap-WarningType ::= OCTET STRING (SIZE (2)) - -S1ap-WarningSecurityInfo ::= OCTET STRING (SIZE (50)) - - -S1ap-WarningMessageContents ::= OCTET STRING (SIZE(1..9600)) - - --- X - - -S1ap-X2TNLConfigurationInfo ::= SEQUENCE { - eNBX2TransportLayerAddresses S1ap-ENBX2TLAs, - -- iE-Extensions ProtocolExtensionContainer { { X2TNLConfigurationInfo-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-ENBX2ExtTLAs ::= SEQUENCE (SIZE(1.. s1ap-maxnoofeNBX2ExtTLAs)) OF S1ap-ENBX2ExtTLA - -S1ap-ENBX2ExtTLA ::= SEQUENCE { - iPsecTLA S1ap-TransportLayerAddress OPTIONAL, - gTPTLAa S1ap-ENBX2GTPTLAs OPTIONAL, - -- iE-Extensions ProtocolExtensionContainer { { ENBX2ExtTLA-ExtIEs} } OPTIONAL, - iE-Extensions S1ap-IE-Extensions OPTIONAL, - ... -} - -S1ap-ENBX2GTPTLAs ::= SEQUENCE (SIZE(1.. s1ap-maxnoofeNBX2GTPTLAs)) OF S1ap-TransportLayerAddress - --- Y --- Z - -END diff --git a/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU-Contents.asn b/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU-Contents.asn deleted file mode 100644 index 767466d745..0000000000 --- a/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU-Contents.asn +++ /dev/null @@ -1,2409 +0,0 @@ - - --- ************************************************************** --- --- PDU definitions for S1AP. --- --- ************************************************************** - -S1AP-PDU-Contents { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Contents (1) } - -BEGIN - --- ************************************************************** --- --- IE parameter types from other modules. --- --- ************************************************************** - -IMPORTS - - S1ap-UEAggregateMaximumBitrate, - S1ap-Cause, - S1ap-CellAccessMode, - S1ap-Cdma2000HORequiredIndication, - S1ap-Cdma2000HOStatus, - S1ap-Cdma2000OneXSRVCCInfo, - S1ap-Cdma2000OneXRAND, - S1ap-Cdma2000PDU, - S1ap-Cdma2000RATType, - S1ap-Cdma2000SectorID, - S1ap-EUTRANRoundTripDelayEstimationInfo, - S1ap-CNDomain, - S1ap-ConcurrentWarningMessageIndicator, - S1ap-CriticalityDiagnostics, - S1ap-CSFallbackIndicator, - S1ap-CSG-Id, - S1ap-CSG-IdList, - S1ap-CSGMembershipStatus, - S1ap-Data-Forwarding-Not-Possible, - S1ap-Direct-Forwarding-Path-Availability, - S1ap-Global-ENB-ID, - S1ap-EUTRAN-CGI, - S1ap-ENBname, - S1ap-ENB-StatusTransfer-TransparentContainer, - S1ap-ENB-UE-S1AP-ID, - S1ap-ExtendedRepetitionPeriod, - S1ap-GTP-TEID, - S1ap-GUMMEI, - S1ap-HandoverRestrictionList, - S1ap-HandoverType, - S1ap-LAI, - S1ap-LPPa-PDU, - S1ap-ManagementBasedMDTAllowed, - S1ap-MMEname, - S1ap-MMERelaySupportIndicator, - S1ap-MME-UE-S1AP-ID, - S1ap-MSClassmark2, - S1ap-MSClassmark3, - S1ap-NAS-PDU, - S1ap-NASSecurityParametersfromE-UTRAN, - S1ap-NASSecurityParameterstoE-UTRAN, - S1ap-OverloadResponse, - S1ap-PagingDRX, - S1ap-PagingPriority, - S1ap-PLMNidentity, - S1ap-RIMTransfer, - S1ap-RelativeMMECapacity, - S1ap-RequestType, - S1ap-E-RAB-ID, - S1ap-E-RABLevelQoSParameters, - S1ap-E-RABList, - S1ap-RelayNode-Indicator, - S1ap-Routing-ID, - S1ap-SecurityKey, - S1ap-SecurityContext, - S1ap-ServedGUMMEIs, - S1ap-SONConfigurationTransfer, - S1ap-Source-ToTarget-TransparentContainer, - S1ap-SourceBSS-ToTargetBSS-TransparentContainer, - S1ap-SourceeNB-ToTargeteNB-TransparentContainer, - S1ap-SourceRNC-ToTargetRNC-TransparentContainer, - S1ap-SubscriberProfileIDforRFP, - S1ap-SRVCCOperationPossible, - S1ap-SRVCCHOIndication, - S1ap-SupportedTAs, - S1ap-TAI, - S1ap-Target-ToSource-TransparentContainer, - S1ap-TargetBSS-ToSourceBSS-TransparentContainer, - S1ap-TargeteNB-ToSourceeNB-TransparentContainer, - S1ap-TargetID, - S1ap-TargetRNC-ToSourceRNC-TransparentContainer, - S1ap-TimeToWait, - S1ap-TraceActivation, - S1ap-TrafficLoadReductionIndication, - S1ap-E-UTRAN-Trace-ID, - S1ap-TransportLayerAddress, - S1ap-UEIdentityIndexValue, - S1ap-UEPagingID, - S1ap-UERadioCapability, - S1ap-UE-S1AP-IDs, - S1ap-UE-associatedLogicalS1-ConnectionItem, - S1ap-UESecurityCapabilities, - S1ap-S-TMSI, - S1ap-MessageIdentifier, - S1ap-SerialNumber, - S1ap-WarningAreaList, - S1ap-RepetitionPeriod, - S1ap-NumberofBroadcastRequest, - S1ap-WarningType, - S1ap-WarningSecurityInfo, - S1ap-DataCodingScheme, - S1ap-WarningMessageContents, - S1ap-BroadcastCompletedAreaList, - S1ap-RRC-Establishment-Cause, - S1ap-BroadcastCancelledAreaList, - S1ap-PS-ServiceNotAvailable, - S1ap-GUMMEIList, - S1ap-Correlation-ID, - S1ap-GWContextReleaseIndication, - S1ap-PrivacyIndicator -S1ap-FROM S1AP-IEs - - PrivateIE-Container{}, - ProtocolExtensionContainer{}, - ProtocolIE-Container{}, - ProtocolIE-ContainerList{}, - ProtocolIE-ContainerPair{}, - ProtocolIE-ContainerPairList{}, - ProtocolIE-SingleContainer{}, - S1AP-PRIVATE-IES, - S1AP-PROTOCOL-EXTENSION, - S1AP-PROTOCOL-IES, - S1AP-PROTOCOL-IES-PAIR -S1ap-FROM S1AP-Containers - - id-uEaggregateMaximumBitrate, - id-Cause, - id-CellAccessMode, - id-cdma2000HORequiredIndication, - id-cdma2000HOStatus, - id-cdma2000OneXSRVCCInfo, - id-cdma2000OneXRAND, - id-cdma2000PDU, - id-cdma2000RATType, - id-cdma2000SectorID, - id-EUTRANRoundTripDelayEstimationInfo, - id-CNDomain, - id-ConcurrentWarningMessageIndicator, - id-CriticalityDiagnostics, - id-CSFallbackIndicator, - id-CSG-Id, - id-CSG-IdList, - id-CSGMembershipStatus, - id-Data-Forwarding-Not-Possible, - id-DefaultPagingDRX, - id-Direct-Forwarding-Path-Availability, - id-Global-ENB-ID, - id-EUTRAN-CGI, - id-eNBname, - id-eNB-StatusTransfer-TransparentContainer, - id-eNB-UE-S1AP-ID, - id-GERANtoLTEHOInformationRes, - id-GUMMEI-ID, - id-HandoverRestrictionList, - id-HandoverType, - id-InitialContextSetup, - id-Inter-SystemInformationTransferTypeEDT, - id-Inter-SystemInformationTransferTypeMDT, - id-LPPa-PDU, - id-NAS-DownlinkCount, - id-ManagementBasedMDTAllowed, - id-MMEname, - id-MME-UE-S1AP-ID, - id-MSClassmark2, - id-MSClassmark3, - id-NAS-PDU, - id-NASSecurityParametersfromE-UTRAN, - id-NASSecurityParameterstoE-UTRAN, - id-OverloadResponse, - id-pagingDRX, - id-PagingPriority, - id-RelativeMMECapacity, - id-RequestType, - id-Routing-ID, - id-E-RABAdmittedItem, - id-E-RABAdmittedList, - id-E-RABDataForwardingItem, - id-E-RABFailedToModifyList, - id-E-RABFailedToReleaseList, - id-E-RABFailedToSetupItemHOReqAck, - id-E-RABFailedToSetupListBearerSURes, - id-E-RABFailedToSetupListCtxtSURes, - id-E-RABFailedToSetupListHOReqAck, - id-E-RABFailedToBeReleasedList, - id-E-RABModify, - id-E-RABModifyItemBearerModRes, - id-E-RABModifyListBearerModRes, - id-E-RABRelease, - id-E-RABReleaseItemBearerRelComp, - id-E-RABReleaseItemHOCmd, - id-E-RABReleaseListBearerRelComp, - id-E-RABReleaseIndication, - id-E-RABSetup, - id-E-RABSetupItemBearerSURes, - id-E-RABSetupItemCtxtSURes, - id-E-RABSetupListBearerSURes, - id-E-RABSetupListCtxtSURes, - id-E-RABSubjecttoDataForwardingList, - id-E-RABToBeModifiedItemBearerModReq, - id-E-RABToBeModifiedListBearerModReq, - id-E-RABToBeReleasedList, - id-E-RABReleasedList, - id-E-RABToBeSetupItemBearerSUReq, - id-E-RABToBeSetupItemCtxtSUReq, - id-E-RABToBeSetupItemHOReq, - id-E-RABToBeSetupListBearerSUReq, - id-E-RABToBeSetupListCtxtSUReq, - id-E-RABToBeSetupListHOReq, - id-E-RABToBeSwitchedDLItem, - id-E-RABToBeSwitchedDLList, - id-E-RABToBeSwitchedULList, - id-E-RABToBeSwitchedULItem, - id-E-RABtoReleaseListHOCmd, - id-SecurityKey, - id-SecurityContext, - id-ServedGUMMEIs, - id-SONConfigurationTransferECT, - id-SONConfigurationTransferMCT, - id-Source-ToTarget-TransparentContainer, - id-Source-ToTarget-TransparentContainer-Secondary, - id-SourceMME-UE-S1AP-ID, - id-SRVCCOperationPossible, - id-SRVCCHOIndication, - id-SubscriberProfileIDforRFP, - id-SupportedTAs, - id-S-TMSI, - id-TAI, - id-TAIItem, - id-TAIList, - id-Target-ToSource-TransparentContainer, - id-Target-ToSource-TransparentContainer-Secondary, - id-TargetID, - id-TimeToWait, - id-TraceActivation, - id-TrafficLoadReductionIndication, - id-E-UTRAN-Trace-ID, - id-UEIdentityIndexValue, - id-UEPagingID, - id-UERadioCapability, - id-UTRANtoLTEHOInformationRes, - id-UE-associatedLogicalS1-ConnectionListResAck, - id-UE-associatedLogicalS1-ConnectionItem, - id-UESecurityCapabilities, - id-UE-S1AP-IDs, - id-ResetType, - id-MessageIdentifier, - id-SerialNumber, - id-WarningAreaList, - id-RepetitionPeriod, - id-NumberofBroadcastRequest, - id-WarningType, - id-WarningSecurityInfo, - id-DataCodingScheme, - id-WarningMessageContents, - id-BroadcastCompletedAreaList, - id-BroadcastCancelledAreaList, - id-RRC-Establishment-Cause, - id-TraceCollectionEntityIPAddress, - s1ap-maxnoofTAIs, - s1ap-maxNrOfErrors, - s1ap-maxNrOfE-RABs, - s1ap-maxNrOfIndividualS1ConnectionsToReset, - s1ap-maxnoofEmergencyAreaID, - s1ap-maxnoofCellID, - s1ap-maxnoofTAIforWarning, - s1ap-maxnoofCellinTAI, - s1ap-maxnoofCellinEAI, - id-ExtendedRepetitionPeriod, - id-PS-ServiceNotAvailable, - id-RegisteredLAI, - id-GUMMEIList, - id-SourceMME-GUMMEI, - id-MME-UE-S1AP-ID-2, - id-GW-TransportLayerAddress, - id-RelayNode-Indicator, - id-Correlation-ID, - id-MMERelaySupportIndicator, - id-GWContextReleaseIndication, - id-PrivacyIndicator - - -S1ap-FROM S1AP-Constants; - --- ************************************************************** --- --- Common Container Lists --- --- ************************************************************** - -E-RAB-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, s1ap-maxNrOfE-RABs, {IEsSetParam} } -E-RAB-IE-ContainerPairList { S1AP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, s1ap-maxNrOfE-RABs, {IEsSetParam} } -ProtocolError-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, s1ap-maxNrOfE-RABs, {IEsSetParam} } - --- ************************************************************** --- --- HANDOVER PREPARATION ELEMENTARY PROCEDURE --- --- ************************************************************** - -S1ap-Bearers-SubjectToStatusTransfer-ItemIEs S1AP-PROTOCOL-IES ::= { - { ID id-Bearers-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE S1ap-Bearers-SubjectToStatusTransfer-Item PRESENCE mandatory }, - ... -} - -S1ap-E-RABInformationItemIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABInformationListItem CRITICALITY ignore TYPE S1ap-E-RABInformationListItem PRESENCE mandatory }, - ... -} - -S1ap-E-RABItemIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABItem CRITICALITY ignore TYPE S1ap-E-RABItem PRESENCE mandatory }, - ... -} - -S1ap-SONInformationReply-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - -- Extension for Release 9 to transfer Time synchronization information -- - {ID id-Time-Synchronization-Info CRITICALITY ignore EXTENSION S1ap-TimeSynchronizationInfo PRESENCE optional}, - ... -} - -S1ap-SONConfigurationTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - -- Extension for Release 10 to transfer the IP addresses of the eNB initiating the ANR action -- - {ID id-x2TNLConfigurationInfo CRITICALITY ignore EXTENSION S1ap-X2TNLConfigurationInfo PRESENCE conditional - -- This IE shall be present if the SON Information IE contains the SON Information Request IE and the SON Information Request IE is set to “X2TNL Configuration Info” -- }, - ... -} - -S1ap-SourceeNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-ServedGUMMEIsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-SupportedTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-S-TMSI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-TimeSynchronizationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-TAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-TAI-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-TAI-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-TABasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-CompletedCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-TargeteNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-TargetRNC-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-ThresholdEventA2-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-TraceActivation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - -- Extension for Rel-10 to support MDT -- - { ID id-MDTConfiguration CRITICALITY ignore EXTENSION S1ap-MDT-Configuration PRESENCE optional }, - ... -} - -S1ap-UEAggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-UE-S1AP-ID-pair-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-UE-associatedLogicalS1-ConnectionItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-UESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-X2TNLConfigurationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - -- Extension for Release 10 to transfer the IPsec and U-plane addresses during ANR action -- - {ID id-eNBX2ExtendedTransportLayerAddresses CRITICALITY ignore EXTENSION S1ap-ENBX2ExtTLAs PRESENCE optional}, - ... -} - -S1ap-ENBX2ExtTLA-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-AllocationAndRetentionPriority-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-Bearers-SubjectToStatusTransfer-ItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-CancelledCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-CancelledCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-CellID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-CellID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-CellBasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-Cdma2000OneXSRVCCInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-CellType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-CSG-IdList-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-COUNTvalue-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-CompletedCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-CriticalityDiagnostics-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-CriticalityDiagnostics-IE-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-EmergencyAreaID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-EmergencyAreaID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-ENB-StatusTransfer-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-E-RABInformationListItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-E-RABItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-E-RABQoSParameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-EUTRAN-CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-ForbiddenTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-ForbiddenLAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-GBR-QosInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-GERAN-Cell-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-GlobalENB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-GUMMEI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-HandoverRestrictionList-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-ImmediateMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-LAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-LastVisitedEUTRANCellInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-LoggedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-MDT-Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-PeriodicReportingMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-RequestType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-RIMTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-SecurityContext-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-Bearers-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { { S1ap-Bearers-SubjectToStatusTransfer-ItemIEs } } - -S1ap-E-RABInformationList ::= SEQUENCE (SIZE (1.. s1ap-maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { { S1ap-E-RABInformationItemIEs } } - --- ************************************************************** --- --- Handover Required --- --- ************************************************************** - -S1ap-HandoverRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { S1ap-HandoverRequiredIEs} }, - ... -} - -S1ap-HandoverRequiredIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-HandoverType CRITICALITY reject TYPE S1ap-HandoverType PRESENCE mandatory }| - { ID id-Cause CRITICALITY ignore TYPE S1ap-Cause PRESENCE mandatory }| - { ID id-TargetID CRITICALITY reject TYPE S1ap-TargetID PRESENCE mandatory }| - { ID id-Direct-Forwarding-Path-Availability CRITICALITY ignore TYPE S1ap-Direct-Forwarding-Path-Availability PRESENCE optional }| - { ID id-SRVCCHOIndication CRITICALITY reject TYPE S1ap-SRVCCHOIndication PRESENCE optional }| - { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE S1ap-Source-ToTarget-TransparentContainer PRESENCE mandatory }| - { ID id-Source-ToTarget-TransparentContainer-Secondary CRITICALITY reject TYPE S1ap-Source-ToTarget-TransparentContainer PRESENCE optional }| - { ID id-MSClassmark2 CRITICALITY reject TYPE S1ap-MSClassmark2 PRESENCE conditional }| - { ID id-MSClassmark3 CRITICALITY ignore TYPE S1ap-MSClassmark3 PRESENCE conditional }| - { ID id-CSG-Id CRITICALITY reject TYPE S1ap-CSG-Id PRESENCE optional }| - { ID id-CellAccessMode CRITICALITY reject TYPE S1ap-CellAccessMode PRESENCE optional }| - { ID id-PS-ServiceNotAvailable CRITICALITY ignore TYPE S1ap-PS-ServiceNotAvailable PRESENCE optional }, - ... -} - - --- ************************************************************** --- --- Handover Command --- --- ************************************************************** - -S1ap-HandoverCommand ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { S1ap-HandoverCommandIEs} }, - ... -} - -S1ap-HandoverCommandIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-HandoverType CRITICALITY reject TYPE S1ap-HandoverType PRESENCE mandatory } | - { ID id-NASSecurityParametersfromE-UTRAN CRITICALITY reject TYPE S1ap-NASSecurityParametersfromE-UTRAN PRESENCE conditional - -- This IE shall be present if HandoverType IE is set to value "LTEtoUTRAN" or "LTEtoGERAN" -- }| - { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE S1ap-E-RABDataForwardingList PRESENCE optional } | - { ID id-E-RABtoReleaseListHOCmd CRITICALITY ignore TYPE S1ap-E-RABList PRESENCE optional } | - { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE S1ap-Target-ToSource-TransparentContainer PRESENCE mandatory }| - { ID id-Target-ToSource-TransparentContainer-Secondary CRITICALITY reject TYPE S1ap-Target-ToSource-TransparentContainer PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE S1ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - -S1ap-E-RABDataForwardingList ::= E-RAB-IE-ContainerList { {S1ap-E-RABDataForwardingItemIEs} } - -S1ap-E-RABDataForwardingItemIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABDataForwardingItem CRITICALITY ignore TYPE S1ap-E-RABDataForwardingItem PRESENCE mandatory }, - ... -} - -S1ap-E-RABDataForwardingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-E-RABList ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {S1ap-E-RABItemIEs} } - --- ************************************************************** --- --- Handover Preparation Failure --- --- ************************************************************** - -S1ap-HandoverPreparationFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { S1ap-HandoverPreparationFailureIEs} }, - ... -} - -S1ap-HandoverPreparationFailureIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-Cause CRITICALITY ignore TYPE S1ap-Cause PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE S1ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- HANDOVER RESOURCE ALLOCATION ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- Handover Request --- --- ************************************************************** - -S1ap-HandoverRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-HandoverRequestIEs} }, - ... -} - -S1ap-HandoverRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory}| - { ID id-HandoverType CRITICALITY reject TYPE S1ap-HandoverType PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE S1ap-Cause PRESENCE mandatory}| - { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE S1ap-UEAggregateMaximumBitrate PRESENCE mandatory}| - { ID id-E-RABToBeSetupListHOReq CRITICALITY reject TYPE S1ap-E-RABToBeSetupListHOReq PRESENCE mandatory}| - { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE S1ap-Source-ToTarget-TransparentContainer PRESENCE mandatory}| - { ID id-UESecurityCapabilities CRITICALITY reject TYPE S1ap-UESecurityCapabilities PRESENCE mandatory}| - { ID id-HandoverRestrictionList CRITICALITY ignore TYPE S1ap-HandoverRestrictionList PRESENCE optional}| - { ID id-TraceActivation CRITICALITY ignore TYPE S1ap-TraceActivation PRESENCE optional}| - { ID id-RequestType CRITICALITY ignore TYPE S1ap-RequestType PRESENCE optional}| - { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE S1ap-SRVCCOperationPossible PRESENCE optional}| - { ID id-SecurityContext CRITICALITY reject TYPE S1ap-SecurityContext PRESENCE mandatory}| - { ID id-NASSecurityParameterstoE-UTRAN CRITICALITY reject TYPE S1ap-NASSecurityParameterstoE-UTRAN PRESENCE conditional - -- This IE shall be present if the Handover Type IE is set to the value "UTRANtoLTE" or "GERANtoLTE" --}| - { ID id-CSG-Id CRITICALITY reject TYPE S1ap-CSG-Id PRESENCE optional}| - { ID id-CSGMembershipStatus CRITICALITY ignore TYPE S1ap-CSGMembershipStatus PRESENCE optional}| - { ID id-GUMMEI-ID CRITICALITY ignore TYPE S1ap-GUMMEI PRESENCE optional}| - { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE S1ap-MME-UE-S1AP-ID PRESENCE optional}| - { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE S1ap-ManagementBasedMDTAllowed PRESENCE optional}, - ... -} - -S1ap-E-RABToBeSetupListHOReq ::= E-RAB-IE-ContainerList { {S1ap-E-RABToBeSetupItemHOReqIEs} } - -S1ap-E-RABToBeSetupItemHOReqIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABToBeSetupItemHOReq CRITICALITY reject TYPE S1ap-E-RABToBeSetupItemHOReq PRESENCE mandatory }, - ... -} - -S1ap-E-RABToBeSetupItemHOReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - {ID id-Data-Forwarding-Not-Possible CRITICALITY ignore EXTENSION S1ap-Data-Forwarding-Not-Possible PRESENCE optional}, - ... -} - --- ************************************************************** --- --- Handover Request Acknowledge --- --- ************************************************************** - -S1ap-HandoverRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-HandoverRequestAcknowledgeIEs} }, - ... -} - -S1ap-HandoverRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-E-RABAdmittedList CRITICALITY ignore TYPE S1ap-E-RABAdmittedList PRESENCE mandatory } | - { ID id-E-RABFailedToSetupListHOReqAck CRITICALITY ignore TYPE S1ap-E-RABFailedToSetupListHOReqAck PRESENCE optional } | - { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE S1ap-Target-ToSource-TransparentContainer PRESENCE mandatory }| - { ID id-CSG-Id CRITICALITY ignore TYPE S1ap-CSG-Id PRESENCE optional } | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE S1ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - -S1ap-E-RABAdmittedList ::= E-RAB-IE-ContainerList { {S1ap-E-RABAdmittedItemIEs} } - -S1ap-E-RABAdmittedItemIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABAdmittedItem CRITICALITY ignore TYPE S1ap-E-RABAdmittedItem PRESENCE mandatory }, - ... -} - -S1ap-E-RABAdmittedItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S1ap-E-RABFailedToSetupListHOReqAck ::= E-RAB-IE-ContainerList { {S1ap-E-RABFailedToSetupItemHOReqAckIEs} } - -S1ap-E-RABFailedToSetupItemHOReqAckIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABFailedToSetupItemHOReqAck CRITICALITY ignore TYPE S1ap-E-RABFailedToSetupItemHOReqAck PRESENCE mandatory }, - ... -} - -S1ap-E-RABFailedToSetupItemHOReqAck ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - cause Cause, - iE-Extensions ProtocolExtensionContainer { { S1ap-E-RABFailedToSetupItemHOReqAckExtIEs} } OPTIONAL, - ... -} - -S1ap-E-RABFailedToSetupItemHOReqAckExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - - --- ************************************************************** --- --- Handover Failure --- --- ************************************************************** - -S1ap-HandoverFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { S1ap-HandoverFailureIEs} }, - ... -} - -S1ap-HandoverFailureIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-Cause CRITICALITY ignore TYPE S1ap-Cause PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE S1ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- HANDOVER NOTIFICATION ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- Handover Notify --- --- ************************************************************** - -S1ap-HandoverNotify ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { S1ap-HandoverNotifyIEs} }, - ... -} - -S1ap-HandoverNotifyIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-EUTRAN-CGI CRITICALITY ignore TYPE S1ap-EUTRAN-CGI PRESENCE mandatory}| - { ID id-TAI CRITICALITY ignore TYPE S1ap-TAI PRESENCE mandatory}, - ... -} - --- ************************************************************** --- --- PATH SWITCH REQUEST ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- Path Switch Request --- --- ************************************************************** - -S1ap-PathSwitchRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { S1ap-PathSwitchRequestIEs} }, - ... -} - -S1ap-PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory}| - { ID id-E-RABToBeSwitchedDLList CRITICALITY reject TYPE S1ap-E-RABToBeSwitchedDLList PRESENCE mandatory}| - { ID id-SourceMME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory}| - { ID id-EUTRAN-CGI CRITICALITY ignore TYPE S1ap-EUTRAN-CGI PRESENCE mandatory}| - { ID id-TAI CRITICALITY ignore TYPE S1ap-TAI PRESENCE mandatory}| - { ID id-UESecurityCapabilities CRITICALITY ignore TYPE S1ap-UESecurityCapabilities PRESENCE mandatory}| - { ID id-CSG-Id CRITICALITY ignore TYPE S1ap-CSG-Id PRESENCE optional}| - { ID id-CellAccessMode CRITICALITY ignore TYPE S1ap-CellAccessMode PRESENCE optional}| - { ID id-SourceMME-GUMMEI CRITICALITY ignore TYPE S1ap-GUMMEI PRESENCE optional}, - ... -} - -S1ap-E-RABToBeSwitchedDLList ::= E-RAB-IE-ContainerList { {S1ap-E-RABToBeSwitchedDLItemIEs} } - -S1ap-E-RABToBeSwitchedDLItemIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABToBeSwitchedDLItem CRITICALITY reject TYPE S1ap-E-RABToBeSwitchedDLItem PRESENCE mandatory }, - ... -} - -S1ap-E-RABToBeSwitchedDLItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - --- ************************************************************** --- --- Path Switch Request Acknowledge --- --- ************************************************************** - -S1ap-PathSwitchRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { S1ap-PathSwitchRequestAcknowledgeIEs} }, - ... -} - -S1ap-PathSwitchRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory}| - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory}| - { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE S1ap-UEAggregateMaximumBitrate PRESENCE optional}| - { ID id-E-RABToBeSwitchedULList CRITICALITY ignore TYPE S1ap-E-RABToBeSwitchedULList PRESENCE optional}| - { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE S1ap-E-RABList PRESENCE optional}| - { ID id-SecurityContext CRITICALITY reject TYPE S1ap-SecurityContext PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE S1ap-CriticalityDiagnostics PRESENCE optional}| - { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE S1ap-MME-UE-S1AP-ID PRESENCE optional}, - ... -} - -S1ap-E-RABToBeSwitchedULList ::= E-RAB-IE-ContainerList { {S1ap-E-RABToBeSwitchedULItemIEs} } - -S1ap-E-RABToBeSwitchedULItemIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABToBeSwitchedULItem CRITICALITY ignore TYPE S1ap-E-RABToBeSwitchedULItem PRESENCE mandatory }, - ... -} - -S1ap-E-RABToBeSwitchedULItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - - --- ************************************************************** --- --- Path Switch Request Failure --- --- ************************************************************** - -S1ap-PathSwitchRequestFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { S1ap-PathSwitchRequestFailureIEs} }, - ... -} - -S1ap-PathSwitchRequestFailureIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-Cause CRITICALITY ignore TYPE S1ap-Cause PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE S1ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- HANDOVER CANCEL ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- Handover Cancel --- --- ************************************************************** - -S1ap-HandoverCancel ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { S1ap-HandoverCancelIEs} }, - ... -} - -S1ap-HandoverCancelIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-Cause CRITICALITY ignore TYPE S1ap-Cause PRESENCE mandatory }, - ... -} - --- ************************************************************** --- --- Handover Cancel Request Acknowledge --- --- ************************************************************** - -S1ap-HandoverCancelAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { S1ap-HandoverCancelAcknowledgeIEs} }, - ... -} - -S1ap-HandoverCancelAcknowledgeIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE S1ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- E-RAB SETUP ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- E-RAB Setup Request --- --- ************************************************************** - -S1ap-E-RABSetupRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-E-RABSetupRequestIEs} }, - ... -} - -S1ap-E-RABSetupRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE S1ap-UEAggregateMaximumBitrate PRESENCE optional }| - { ID id-E-RABToBeSetupListBearerSUReq CRITICALITY reject TYPE S1ap-E-RABToBeSetupListBearerSUReq PRESENCE mandatory }, - ... -} - -S1ap-E-RABToBeSetupListBearerSUReq ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {S1ap-E-RABToBeSetupItemBearerSUReqIEs} } - -S1ap-E-RABToBeSetupItemBearerSUReqIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABToBeSetupItemBearerSUReq CRITICALITY reject TYPE S1ap-E-RABToBeSetupItemBearerSUReq PRESENCE mandatory }, - ... -} - -S1ap-E-RABToBeSetupItemBearerSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { - { ID id-Correlation-ID CRITICALITY ignore EXTENSION S1ap-Correlation-ID PRESENCE optional}, - ... -} - - --- ************************************************************** --- --- E-RAB Setup Response --- --- ************************************************************** - -S1ap-E-RABSetupResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-E-RABSetupResponseIEs} }, - ... -} - -S1ap-E-RABSetupResponseIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-E-RABSetupListBearerSURes CRITICALITY ignore TYPE S1ap-E-RABSetupListBearerSURes PRESENCE optional }| - { ID id-E-RABFailedToSetupListBearerSURes CRITICALITY ignore TYPE S1ap-E-RABList PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE S1ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - - -S1ap-E-RABSetupListBearerSURes ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {S1ap-E-RABSetupItemBearerSUResIEs} } - -S1ap-E-RABSetupItemBearerSUResIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABSetupItemBearerSURes CRITICALITY ignore TYPE S1ap-E-RABSetupItemBearerSURes PRESENCE mandatory }, - ... -} - -S1ap-E-RABSetupItemBearerSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - - - --- ************************************************************** --- --- E-RAB MODIFY ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- E-RAB Modify Request --- --- ************************************************************** - -S1ap-E-RABModifyRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-E-RABModifyRequestIEs} }, - ... -} - -S1ap-E-RABModifyRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE S1ap-UEAggregateMaximumBitrate PRESENCE optional }| - { ID id-E-RABToBeModifiedListBearerModReq CRITICALITY reject TYPE S1ap-E-RABToBeModifiedListBearerModReq PRESENCE mandatory }, - ... -} - -S1ap-E-RABToBeModifiedListBearerModReq ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {S1ap-E-RABToBeModifiedItemBearerModReqIEs} } - -S1ap-E-RABToBeModifiedItemBearerModReqIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABToBeModifiedItemBearerModReq CRITICALITY reject TYPE S1ap-E-RABToBeModifiedItemBearerModReq PRESENCE mandatory }, - ... -} - -S1ap-E-RABToBeModifyItemBearerModReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - - - --- ************************************************************** --- --- E-RAB Modify Response --- --- ************************************************************** - -S1ap-E-RABModifyResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-E-RABModifyResponseIEs} }, - ... -} - -S1ap-E-RABModifyResponseIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-E-RABModifyListBearerModRes CRITICALITY ignore TYPE S1ap-E-RABModifyListBearerModRes PRESENCE optional }| - { ID id-E-RABFailedToModifyList CRITICALITY ignore TYPE S1ap-E-RABList PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE S1ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - - -S1ap-E-RABModifyListBearerModRes ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {S1ap-E-RABModifyItemBearerModResIEs} } - -S1ap-E-RABModifyItemBearerModResIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABModifyItemBearerModRes CRITICALITY ignore TYPE S1ap-E-RABModifyItemBearerModRes PRESENCE mandatory }, - ... -} - -S1ap-E-RABModifyItemBearerModResExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - --- ************************************************************** --- --- E-RAB RELEASE ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- E-RAB Release Command --- --- ************************************************************** - -S1ap-E-RABReleaseCommand ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-E-RABReleaseCommandIEs} }, - ... -} - -S1ap-E-RABReleaseCommandIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE S1ap-UEAggregateMaximumBitrate PRESENCE optional }| - { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE S1ap-E-RABList PRESENCE mandatory }| - { ID id-NAS-PDU CRITICALITY ignore TYPE S1ap-NAS-PDU PRESENCE optional }, - ... -} - - --- ************************************************************** --- --- E-RAB Release Response --- --- ************************************************************** - -S1ap-E-RABReleaseResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { S1ap-E-RABReleaseResponseIEs } }, - ... -} - -S1ap-E-RABReleaseResponseIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-E-RABReleaseListBearerRelComp CRITICALITY ignore TYPE S1ap-E-RABReleaseListBearerRelComp PRESENCE optional }| - { ID id-E-RABFailedToReleaseList CRITICALITY ignore TYPE S1ap-E-RABList PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE S1ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - - -S1ap-E-RABReleaseListBearerRelComp ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {S1ap-E-RABReleaseItemBearerRelCompIEs} } - -S1ap-E-RABReleaseItemBearerRelCompIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABReleaseItemBearerRelComp CRITICALITY ignore TYPE S1ap-E-RABReleaseItemBearerRelComp PRESENCE mandatory }, - ... -} - -S1ap-E-RABReleaseItemBearerRelCompExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - --- ************************************************************** --- --- E-RAB RELEASE INDICATION ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- E-RAB Release Indication --- --- ************************************************************** - -S1ap-E-RABReleaseIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-E-RABReleaseIndicationIEs} }, - ... -} - -S1ap-E-RABReleaseIndicationIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-E-RABReleasedList CRITICALITY ignore TYPE S1ap-E-RABList PRESENCE mandatory }, - ... -} --- ************************************************************** --- --- INITIAL CONTEXT SETUP ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- Initial Context Setup Request --- --- ************************************************************** - -S1ap-InitialContextSetupRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-InitialContextSetupRequestIEs} }, - ... -} - -S1ap-InitialContextSetupRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory}| - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory}| - { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE S1ap-UEAggregateMaximumBitrate PRESENCE mandatory}| - { ID id-E-RABToBeSetupListCtxtSUReq CRITICALITY reject TYPE S1ap-E-RABToBeSetupListCtxtSUReq PRESENCE mandatory}| - { ID id-UESecurityCapabilities CRITICALITY reject TYPE S1ap-UESecurityCapabilities PRESENCE mandatory}| - { ID id-SecurityKey CRITICALITY reject TYPE S1ap-SecurityKey PRESENCE mandatory}| - { ID id-TraceActivation CRITICALITY ignore TYPE S1ap-TraceActivation PRESENCE optional}| - { ID id-HandoverRestrictionList CRITICALITY ignore TYPE S1ap-HandoverRestrictionList PRESENCE optional}| - { ID id-UERadioCapability CRITICALITY ignore TYPE S1ap-UERadioCapability PRESENCE optional}| - { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE S1ap-SubscriberProfileIDforRFP PRESENCE optional}| - { ID id-CSFallbackIndicator CRITICALITY reject TYPE S1ap-CSFallbackIndicator PRESENCE optional}| - { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE S1ap-SRVCCOperationPossible PRESENCE optional}| - { ID id-CSGMembershipStatus CRITICALITY ignore TYPE S1ap-CSGMembershipStatus PRESENCE optional}| - { ID id-RegisteredLAI CRITICALITY ignore TYPE S1ap-LAI PRESENCE optional}| - { ID id-GUMMEI-ID CRITICALITY ignore TYPE S1ap-GUMMEI PRESENCE optional}| - { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE S1ap-MME-UE-S1AP-ID PRESENCE optional}| - { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE S1ap-ManagementBasedMDTAllowed PRESENCE optional}, - ... -} - -S1ap-E-RABToBeSetupListCtxtSUReq ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {S1ap-E-RABToBeSetupItemCtxtSUReqIEs} } - -S1ap-E-RABToBeSetupItemCtxtSUReqIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABToBeSetupItemCtxtSUReq CRITICALITY reject TYPE S1ap-E-RABToBeSetupItemCtxtSUReq PRESENCE mandatory }, - ... -} - -S1ap-E-RABToBeSetupItemCtxtSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { - { ID id-Correlation-ID CRITICALITY ignore EXTENSION S1ap-Correlation-ID PRESENCE optional}, - ... -} - - --- ************************************************************** --- --- Initial Context Setup Response --- --- ************************************************************** - -S1ap-InitialContextSetupResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-InitialContextSetupResponseIEs} }, - ... -} - -S1ap-InitialContextSetupResponseIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-E-RABSetupListCtxtSURes CRITICALITY ignore TYPE S1ap-E-RABSetupListCtxtSURes PRESENCE mandatory }| - { ID id-E-RABFailedToSetupListCtxtSURes CRITICALITY ignore TYPE S1ap-E-RABList PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE S1ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - -S1ap-E-RABSetupListCtxtSURes ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {S1ap-E-RABSetupItemCtxtSUResIEs} } - -S1ap-E-RABSetupItemCtxtSUResIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABSetupItemCtxtSURes CRITICALITY ignore TYPE S1ap-E-RABSetupItemCtxtSURes PRESENCE mandatory }, - ... -} - -S1ap-E-RABSetupItemCtxtSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - --- ************************************************************** --- --- Initial Context Setup Failure --- --- ************************************************************** - -S1ap-InitialContextSetupFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-InitialContextSetupFailureIEs} }, - ... -} - -S1ap-InitialContextSetupFailureIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-Cause CRITICALITY ignore TYPE S1ap-Cause PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE S1ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- PAGING ELEMENTARY PROCEDURE --- --- ************************************************************** - - --- ************************************************************** --- --- Paging --- --- ************************************************************** - -S1ap-Paging ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{S1ap-PagingIEs}}, - ... -} - -S1ap-PagingIEs S1AP-PROTOCOL-IES ::= { - { ID id-UEIdentityIndexValue CRITICALITY ignore TYPE S1ap-UEIdentityIndexValue PRESENCE mandatory}| - { ID id-UEPagingID CRITICALITY ignore TYPE S1ap-UEPagingID PRESENCE mandatory}| - { ID id-pagingDRX CRITICALITY ignore TYPE S1ap-PagingDRX PRESENCE optional}| - { ID id-CNDomain CRITICALITY ignore TYPE S1ap-CNDomain PRESENCE mandatory}| - { ID id-TAIList CRITICALITY ignore TYPE S1ap-TAIList PRESENCE mandatory}| - { ID id-CSG-IdList CRITICALITY ignore TYPE S1ap-CSG-IdList PRESENCE optional}| - { ID id-PagingPriority CRITICALITY ignore TYPE S1ap-PagingPriority PRESENCE optional}, - ... -} - -S1ap-TAIList::= SEQUENCE (SIZE(1.. s1ap-maxnoofTAIs)) OF ProtocolIE-SingleContainer {{S1ap-TAIItemIEs}} - -S1ap-TAIItemIEs S1AP-PROTOCOL-IES ::= { - { ID id-TAIItem CRITICALITY ignore TYPE S1ap-TAIItem PRESENCE mandatory }, - ... -} - -S1ap-TAIItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - --- ************************************************************** --- --- UE CONTEXT RELEASE ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- UE CONTEXT RELEASE REQUEST --- --- ************************************************************** - -S1ap-UEContextReleaseRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{S1ap-UEContextReleaseRequest-IEs}}, - ... -} - -S1ap-UEContextReleaseRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory}| - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE S1ap-Cause PRESENCE mandatory}| - { ID id-GWContextReleaseIndication CRITICALITY reject TYPE S1ap-GWContextReleaseIndication PRESENCE optional}, - ... -} - --- ************************************************************** --- --- UE Context Release Command --- --- ************************************************************** - -S1ap-UEContextReleaseCommand ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{S1ap-UEContextReleaseCommand-IEs}}, - ... -} - -S1ap-UEContextReleaseCommandIEs S1AP-PROTOCOL-IES ::= { - { ID id-UE-S1AP-IDs CRITICALITY reject TYPE S1ap-UE-S1AP-IDs PRESENCE mandatory} | - - { ID id-Cause CRITICALITY ignore TYPE S1ap-Cause PRESENCE mandatory} , - ... -} - --- ************************************************************** --- --- UE Context Release Complete --- --- ************************************************************** - -S1ap-UEContextReleaseComplete ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{S1ap-UEContextReleaseComplete-IEs}}, - ... -} - -S1ap-UEContextReleaseCompleteIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE S1ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - - --- ************************************************************** --- --- UE CONTEXT MODIFICATION ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- UE Context Modification Request --- --- ************************************************************** - -S1ap-UEContextModificationRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { S1ap-UEContextModificationRequestIEs} }, - ... -} - -S1ap-UEContextModificationRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory}| - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory}| - { ID id-SecurityKey CRITICALITY reject TYPE S1ap-SecurityKey PRESENCE optional}| - { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE S1ap-SubscriberProfileIDforRFP PRESENCE optional}| - { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE S1ap-UEAggregateMaximumBitrate PRESENCE optional}| - { ID id-CSFallbackIndicator CRITICALITY reject TYPE S1ap-CSFallbackIndicator PRESENCE optional}| - { ID id-UESecurityCapabilities CRITICALITY reject TYPE S1ap-UESecurityCapabilities PRESENCE optional}| - { ID id-CSGMembershipStatus CRITICALITY ignore TYPE S1ap-CSGMembershipStatus PRESENCE optional}| - { ID id-RegisteredLAI CRITICALITY ignore TYPE S1ap-LAI PRESENCE optional}, - ... -} --- ************************************************************** --- --- UE Context Modification Response --- --- ************************************************************** - -S1ap-UEContextModificationResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { S1ap-UEContextModificationResponseIEs} }, - ... -} - -S1ap-UEContextModificationResponseIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE S1ap-CriticalityDiagnostics PRESENCE optional }, - ... -}-- ************************************************************** --- --- UE Context Modification Failure --- --- ************************************************************** - -S1ap-UEContextModificationFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { S1ap-UEContextModificationFailureIEs} }, - ... -} - -S1ap-UEContextModificationFailureIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-Cause CRITICALITY ignore TYPE S1ap-Cause PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE S1ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- NAS TRANSPORT ELEMENTARY PROCEDURES --- --- ************************************************************** - --- ************************************************************** --- --- DOWNLINK NAS TRANSPORT --- --- ************************************************************** - -S1ap-DownlinkNASTransport ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{S1ap-DownlinkNASTransport-IEs}}, - ... -} - -S1ap-DownlinkNASTransportIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-NAS-PDU CRITICALITY reject TYPE S1ap-NAS-PDU PRESENCE mandatory} | - { ID id-HandoverRestrictionList CRITICALITY ignore TYPE S1ap-HandoverRestrictionList PRESENCE optional} | - { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE S1ap-SubscriberProfileIDforRFP PRESENCE optional}, - ... -} - - --- ************************************************************** --- --- INITIAL UE MESSAGE --- --- ************************************************************** - -S1ap-InitialUEMessage ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{S1ap-InitialUEMessage-IEs}}, - ... -} - -S1ap-InitialUEMessageIEs S1AP-PROTOCOL-IES ::= { - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-NAS-PDU CRITICALITY reject TYPE S1ap-NAS-PDU PRESENCE mandatory} | - { ID id-TAI CRITICALITY reject TYPE S1ap-TAI PRESENCE mandatory} | - { ID id-EUTRAN-CGI CRITICALITY ignore TYPE S1ap-EUTRAN-CGI PRESENCE mandatory} | - { ID id-RRC-Establishment-Cause CRITICALITY ignore TYPE S1ap-RRC-Establishment-Cause PRESENCE mandatory} | - { ID id-S-TMSI CRITICALITY reject TYPE S1ap-S-TMSI PRESENCE optional} | - { ID id-CSG-Id CRITICALITY reject TYPE S1ap-CSG-Id PRESENCE optional} | - { ID id-GUMMEI-ID CRITICALITY reject TYPE S1ap-GUMMEI PRESENCE optional} | - { ID id-CellAccessMode CRITICALITY reject TYPE S1ap-CellAccessMode PRESENCE optional} | - { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE S1ap-TransportLayerAddress PRESENCE optional} | - { ID id-RelayNode-Indicator CRITICALITY reject TYPE S1ap-RelayNode-Indicator PRESENCE optional}, - ... -} - - --- ************************************************************** --- --- UPLINK NAS TRANSPORT --- --- ************************************************************** - -S1ap-UplinkNASTransport ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{S1ap-UplinkNASTransport-IEs}}, - ... -} - -S1ap-UplinkNASTransportIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-NAS-PDU CRITICALITY reject TYPE S1ap-NAS-PDU PRESENCE mandatory} | - { ID id-EUTRAN-CGI CRITICALITY ignore TYPE S1ap-EUTRAN-CGI PRESENCE mandatory} | - { ID id-TAI CRITICALITY ignore TYPE S1ap-TAI PRESENCE mandatory} | - { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE S1ap-TransportLayerAddress PRESENCE optional}, - ... -} --- ************************************************************** --- --- NAS NON DELIVERY INDICATION --- --- ************************************************************** - -S1ap-NASNonDeliveryIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{S1ap-NASNonDeliveryIndication-IEs}}, - ... -} - -S1ap-NASNonDeliveryIndication-IEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-NAS-PDU CRITICALITY ignore TYPE S1ap-NAS-PDU PRESENCE mandatory} | - { ID id-Cause CRITICALITY ignore TYPE S1ap-Cause PRESENCE mandatory} , - ... -} - --- ************************************************************** --- --- RESET ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- Reset --- --- ************************************************************** - -S1ap-Reset ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-ResetIEs} }, - ... -} - -S1ap-ResetIEs S1AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE S1ap-Cause PRESENCE mandatory }| - { ID id-ResetType CRITICALITY reject TYPE S1ap-ResetType PRESENCE mandatory }, - ... -} - -S1ap-UE-associatedLogicalS1-ConnectionListRes ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { S1ap-UE-associatedLogicalS1-ConnectionItemRes } } - -S1ap-UE-associatedLogicalS1-ConnectionItemRes S1AP-PROTOCOL-IES ::= { - { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY reject TYPE S1ap-UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory }, - ... -} - - --- ************************************************************** --- --- Reset Acknowledge --- --- ************************************************************** - -S1ap-ResetAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-ResetAcknowledgeIEs} }, - ... -} - -S1ap-ResetAcknowledgeIEs S1AP-PROTOCOL-IES ::= { - { ID id-UE-associatedLogicalS1-ConnectionListResAck CRITICALITY ignore TYPE S1ap-UE-associatedLogicalS1-ConnectionListResAck PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE S1ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - -S1ap-UE-associatedLogicalS1-ConnectionListResAck ::= SEQUENCE (SIZE(1.. s1ap-maxNrOfIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { S1ap-UE-associatedLogicalS1-ConnectionItemResAck } } - -S1ap-UE-associatedLogicalS1-ConnectionItemResAck S1AP-PROTOCOL-IES ::= { - { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY ignore TYPE S1ap-UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory }, - ... -} - --- ************************************************************** --- --- ERROR INDICATION ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- Error Indication --- --- ************************************************************** - -S1ap-ErrorIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{S1ap-ErrorIndicationIEs}}, - ... -} - -S1ap-ErrorIndicationIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-MME-UE-S1AP-ID PRESENCE optional } | - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE S1ap-ENB-UE-S1AP-ID PRESENCE optional } | - { ID id-Cause CRITICALITY ignore TYPE S1ap-Cause PRESENCE optional } | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE S1ap-CriticalityDiagnostics PRESENCE optional } , - ... -} - --- ************************************************************** --- --- S1 SETUP ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- S1 Setup Request --- --- ************************************************************** - -S1ap-S1SetupRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-S1SetupRequestIEs} }, - ... -} - -S1ap-S1SetupRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-Global-ENB-ID CRITICALITY reject TYPE S1ap-Global-ENB-ID PRESENCE mandatory}| - { ID id-eNBname CRITICALITY ignore TYPE S1ap-ENBname PRESENCE optional}| - { ID id-SupportedTAs CRITICALITY reject TYPE S1ap-SupportedTAs PRESENCE mandatory}| - { ID id-DefaultPagingDRX CRITICALITY ignore TYPE S1ap-PagingDRX PRESENCE mandatory}| - { ID id-CSG-IdList CRITICALITY reject TYPE S1ap-CSG-IdList PRESENCE optional}, - ... -} - --- ************************************************************** --- --- S1 Setup Response --- --- ************************************************************** - -S1ap-S1SetupResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-S1SetupResponseIEs} }, - ... -} - - -S1ap-S1SetupResponseIEs S1AP-PROTOCOL-IES ::= { - { ID id-MMEname CRITICALITY ignore TYPE S1ap-MMEname PRESENCE optional}| - { ID id-ServedGUMMEIs CRITICALITY reject TYPE S1ap-ServedGUMMEIs PRESENCE mandatory}| - { ID id-RelativeMMECapacity CRITICALITY ignore TYPE S1ap-RelativeMMECapacity PRESENCE mandatory}| - { ID id-MMERelaySupportIndicator CRITICALITY ignore TYPE S1ap-MMERelaySupportIndicator PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE S1ap-CriticalityDiagnostics PRESENCE optional}, - ... -} - --- ************************************************************** --- --- S1 Setup Failure --- --- ************************************************************** - -S1ap-S1SetupFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-S1SetupFailureIEs} }, - ... -} - -S1ap-S1SetupFailureIEs S1AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE S1ap-Cause PRESENCE mandatory }| - { ID id-TimeToWait CRITICALITY ignore TYPE S1ap-TimeToWait PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE S1ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- ENB CONFIGURATION UPDATE ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- eNB Configuration Update --- --- ************************************************************** - -S1ap-ENBConfigurationUpdate ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-ENBConfigurationUpdateIEs} }, - ... -} - -S1ap-ENBConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= { - { ID id-eNBname CRITICALITY ignore TYPE S1ap-ENBname PRESENCE optional }| - { ID id-SupportedTAs CRITICALITY reject TYPE S1ap-SupportedTAs PRESENCE optional }| - { ID id-CSG-IdList CRITICALITY reject TYPE S1ap-CSG-IdList PRESENCE optional}| - { ID id-DefaultPagingDRX CRITICALITY ignore TYPE S1ap-PagingDRX PRESENCE optional }, - ... -} - --- ************************************************************** --- --- eNB Configuration Update Acknowledge --- --- ************************************************************** - -S1ap-ENBConfigurationUpdateAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-ENBConfigurationUpdateAcknowledgeIEs} }, - ... -} - - -S1ap-ENBConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= { - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE S1ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- eNB Configuration Update Failure --- --- ************************************************************** - -S1ap-ENBConfigurationUpdateFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-ENBConfigurationUpdateFailureIEs} }, - ... -} - -S1ap-ENBConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE S1ap-Cause PRESENCE mandatory }| - { ID id-TimeToWait CRITICALITY ignore TYPE S1ap-TimeToWait PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE S1ap-CriticalityDiagnostics PRESENCE optional }, -... -} - - --- ************************************************************** --- --- MME Configuration UPDATE ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- MME Configuration Update --- --- ************************************************************** - -S1ap-MMEConfigurationUpdate ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-MMEConfigurationUpdateIEs} }, - ... -} - -S1ap-MMEConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= { - { ID id-MMEname CRITICALITY ignore TYPE S1ap-MMEname PRESENCE optional }| - { ID id-ServedGUMMEIs CRITICALITY reject TYPE S1ap-ServedGUMMEIs PRESENCE optional }| - { ID id-RelativeMMECapacity CRITICALITY reject TYPE S1ap-RelativeMMECapacity PRESENCE optional}, - ... -} - --- ************************************************************** --- --- MME Configuration Update Acknowledge --- --- ************************************************************** - -S1ap-MMEConfigurationUpdateAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-MMEConfigurationUpdateAcknowledgeIEs} }, - ... -} - - -S1ap-MMEConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= { - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE S1ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- MME Configuration Update Failure --- --- ************************************************************** - -S1ap-MMEConfigurationUpdateFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-MMEConfigurationUpdateFailureIEs} }, - ... -} - -S1ap-MMEConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE S1ap-Cause PRESENCE mandatory }| - { ID id-TimeToWait CRITICALITY ignore TYPE S1ap-TimeToWait PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE S1ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- DOWNLINK S1 CDMA2000 TUNNELING ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- Downlink S1 CDMA2000 Tunneling --- --- ************************************************************** - -S1ap-DownlinkS1cdma2000tunneling ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-DownlinkS1cdma2000tunnelingIEs} }, - ... -} - -S1ap-DownlinkS1cdma2000tunnelingIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE S1ap-E-RABDataForwardingList PRESENCE optional } | - { ID id-cdma2000HOStatus CRITICALITY ignore TYPE S1ap-Cdma2000HOStatus PRESENCE optional } | - { ID id-cdma2000RATType CRITICALITY reject TYPE S1ap-Cdma2000RATType PRESENCE mandatory } | - { ID id-cdma2000PDU CRITICALITY reject TYPE S1ap-Cdma2000PDU PRESENCE mandatory }, - ... -} - --- ************************************************************** --- --- UPLINK S1 CDMA2000 TUNNELING ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- Uplink S1 CDMA2000 Tunneling --- --- ************************************************************** - -S1ap-UplinkS1cdma2000tunneling ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-UplinkS1cdma2000tunnelingIEs} }, - ... -} - -S1ap-UplinkS1cdma2000tunnelingIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-cdma2000RATType CRITICALITY reject TYPE S1ap-Cdma2000RATType PRESENCE mandatory } | - { ID id-cdma2000SectorID CRITICALITY reject TYPE S1ap-Cdma2000SectorID PRESENCE mandatory } | - { ID id-cdma2000HORequiredIndication CRITICALITY ignore TYPE S1ap-Cdma2000HORequiredIndication PRESENCE optional } | - { ID id-cdma2000OneXSRVCCInfo CRITICALITY reject TYPE S1ap-Cdma2000OneXSRVCCInfo PRESENCE optional } | - { ID id-cdma2000OneXRAND CRITICALITY reject TYPE S1ap-Cdma2000OneXRAND PRESENCE optional } | - { ID id-cdma2000PDU CRITICALITY reject TYPE S1ap-Cdma2000PDU PRESENCE mandatory }| - { ID id-EUTRANRoundTripDelayEstimationInfo CRITICALITY ignore TYPE S1ap-EUTRANRoundTripDelayEstimationInfo PRESENCE optional}, - -- Extension for Release 9 to assist target HRPD access with the acquisition of the UE -- - ... -} - - --- ************************************************************** --- --- UE CAPABILITY INFO INDICATION ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- UE Capability Info Indication --- --- ************************************************************** - -S1ap-UECapabilityInfoIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { S1ap-UECapabilityInfoIndicationIEs} }, - ... -} - -S1ap-UECapabilityInfoIndicationIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-UERadioCapability CRITICALITY ignore TYPE S1ap-UERadioCapability PRESENCE mandatory } , - ... -} - --- ************************************************************** --- --- eNB STATUS TRANSFER ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- eNB Status Transfer --- --- ************************************************************** - -S1ap-ENBStatusTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-ENBStatusTransferIEs} }, - ... -} - -S1ap-ENBStatusTransferIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE S1ap-ENB-StatusTransfer-TransparentContainer PRESENCE mandatory} , - ... -} - - --- ************************************************************** --- --- MME STATUS TRANSFER ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- MME Status Transfer --- --- ************************************************************** - -S1ap-MMEStatusTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-MMEStatusTransferIEs} }, - ... -} - -S1ap-MMEStatusTransferIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE S1ap-ENB-StatusTransfer-TransparentContainer PRESENCE mandatory} , - ... -} - - --- ************************************************************** --- --- TRACE ELEMENTARY PROCEDURES --- --- ************************************************************** --- ************************************************************** --- --- Trace Start --- --- ************************************************************** - -S1ap-TraceStart ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-TraceStartIEs} }, - ... -} - -S1ap-TraceStartIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-TraceActivation CRITICALITY ignore TYPE S1ap-TraceActivation PRESENCE mandatory }, - ... -} - --- ************************************************************** --- --- Trace Failure Indication --- --- ************************************************************** - -S1ap-TraceFailureIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-TraceFailureIndicationIEs} }, - ... -} - -S1ap-TraceFailureIndicationIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE S1ap-E-UTRAN-Trace-ID PRESENCE mandatory} | - { ID id-Cause CRITICALITY ignore TYPE S1ap-Cause PRESENCE mandatory} , - ... -} - --- ************************************************************** --- --- DEACTIVATE TRACE ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- DEACTIVATE TRACE --- --- ************************************************************** - -S1ap-DeactivateTrace ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { S1ap-DeactivateTraceIEs} }, - ... -} - -S1ap-DeactivateTraceIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE S1ap-E-UTRAN-Trace-ID PRESENCE mandatory }, - ... -} - --- ************************************************************** --- --- CELL TRAFFIC TRACE ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- CELL TRAFFIC TRACE --- --- ************************************************************** - -S1ap-CellTrafficTrace ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { S1ap-CellTrafficTraceIEs } }, - ... -} - -S1ap-CellTrafficTraceIEs S1AP-PROTOCOL-IES ::= { - {ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory}| - {ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory}| - {ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE S1ap-E-UTRAN-Trace-ID PRESENCE mandatory}| - {ID id-EUTRAN-CGI CRITICALITY ignore TYPE S1ap-EUTRAN-CGI PRESENCE mandatory}| - {ID id-TraceCollectionEntityIPAddress CRITICALITY ignore TYPE S1ap-TransportLayerAddress PRESENCE mandatory}| - {ID id-PrivacyIndicator CRITICALITY ignore TYPE S1ap-PrivacyIndicator PRESENCE optional}, - ... -} - --- ************************************************************** --- --- LOCATION ELEMENTARY PROCEDURES --- --- ************************************************************** - --- ************************************************************** --- --- Location Reporting Control --- --- ************************************************************** - -S1ap-LocationReportingControl ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { S1ap-LocationReportingControlIEs} }, - ... -} - -S1ap-LocationReportingControlIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-RequestType CRITICALITY ignore TYPE S1ap-RequestType PRESENCE mandatory } , - ... -} - --- ************************************************************** --- --- Location Report Failure Indication --- --- ************************************************************** - -S1ap-LocationReportingFailureIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { S1ap-LocationReportingFailureIndicationIEs} }, - ... -} - -S1ap-LocationReportingFailureIndicationIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-Cause CRITICALITY ignore TYPE S1ap-Cause PRESENCE mandatory}, - ... -} - --- ************************************************************** --- --- Location Report --- --- ************************************************************** - -S1ap-LocationReport ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { S1ap-LocationReportIEs} }, - ... -} - -S1ap-LocationReportIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-EUTRAN-CGI CRITICALITY ignore TYPE S1ap-EUTRAN-CGI PRESENCE mandatory} | - { ID id-TAI CRITICALITY ignore TYPE S1ap-TAI PRESENCE mandatory} | - { ID id-RequestType CRITICALITY ignore TYPE S1ap-RequestType PRESENCE mandatory} , - ... -} - --- ************************************************************** --- --- OVERLOAD ELEMENTARY PROCEDURES --- --- ************************************************************** - --- ************************************************************** --- --- Overload Start --- --- ************************************************************** - -S1ap-OverloadStart ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-OverloadStartIEs} }, - ... -} - -S1ap-OverloadStartIEs S1AP-PROTOCOL-IES ::= { - { ID id-OverloadResponse CRITICALITY reject TYPE S1ap-OverloadResponse PRESENCE mandatory}| - { ID id-GUMMEIList CRITICALITY ignore TYPE S1ap-GUMMEIList PRESENCE optional}| - { ID id-TrafficLoadReductionIndication CRITICALITY ignore TYPE S1ap-TrafficLoadReductionIndication PRESENCE optional}, - ... -} --- ************************************************************** --- --- Overload Stop --- --- ************************************************************** - -S1ap-OverloadStop ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-OverloadStopIEs} }, - ... -} - -S1ap-OverloadStopIEs S1AP-PROTOCOL-IES ::= { -{ ID id-GUMMEIList CRITICALITY ignore TYPE S1ap-GUMMEIList PRESENCE optional }, - ... -} --- ************************************************************** --- --- WRITE-REPLACE WARNING ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- Write-Replace Warning Request --- --- ************************************************************** - - -S1ap-WriteReplaceWarningRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-WriteReplaceWarningRequestIEs} }, - ... -} - -S1ap-WriteReplaceWarningRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-MessageIdentifier CRITICALITY reject TYPE S1ap-MessageIdentifier PRESENCE mandatory }| - { ID id-SerialNumber CRITICALITY reject TYPE S1ap-SerialNumber PRESENCE mandatory }| - { ID id-WarningAreaList CRITICALITY ignore TYPE S1ap-WarningAreaList PRESENCE optional }| - { ID id-RepetitionPeriod CRITICALITY reject TYPE S1ap-RepetitionPeriod PRESENCE mandatory }| - { ID id-ExtendedRepetitionPeriod CRITICALITY reject TYPE S1ap-ExtendedRepetitionPeriod PRESENCE optional }| - { ID id-NumberofBroadcastRequest CRITICALITY reject TYPE S1ap-NumberofBroadcastRequest PRESENCE mandatory }| - { ID id-WarningType CRITICALITY ignore TYPE S1ap-WarningType PRESENCE optional }| - { ID id-WarningSecurityInfo CRITICALITY ignore TYPE S1ap-WarningSecurityInfo PRESENCE optional }| - { ID id-DataCodingScheme CRITICALITY ignore TYPE S1ap-DataCodingScheme PRESENCE optional }| - { ID id-WarningMessageContents CRITICALITY ignore TYPE S1ap-WarningMessageContents PRESENCE optional }| - { ID id-ConcurrentWarningMessageIndicator CRITICALITY reject TYPE S1ap-ConcurrentWarningMessageIndicator PRESENCE optional }, - ... -} --- ************************************************************** --- --- Write-Replace Warning Response --- --- ************************************************************** - -S1ap-WriteReplaceWarningResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-WriteReplaceWarningResponseIEs} }, - ... -} - -S1ap-WriteReplaceWarningResponseIEs S1AP-PROTOCOL-IES ::= { - { ID id-MessageIdentifier CRITICALITY reject TYPE S1ap-MessageIdentifier PRESENCE mandatory }| - { ID id-SerialNumber CRITICALITY reject TYPE S1ap-SerialNumber PRESENCE mandatory }| - { ID id-BroadcastCompletedAreaList CRITICALITY ignore TYPE S1ap-BroadcastCompletedAreaList PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE S1ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- eNB DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- eNB Direct Information Transfer --- --- ************************************************************** - -S1ap-ENBDirectInformationTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ S1ap-ENBDirectInformationTransferIEs}}, - ... -} - -S1ap-ENBDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= { - { ID id-Inter-SystemInformationTransferTypeEDT CRITICALITY reject TYPE S1ap-Inter-SystemInformationTransferType PRESENCE mandatory} , - ... -} - --- ************************************************************** --- --- MME DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- MME Direct Information Transfer --- --- ************************************************************** - -S1ap-MMEDirectInformationTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ S1ap-MMEDirectInformationTransferIEs}}, - ... -} - -S1ap-MMEDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= { - { ID id-Inter-SystemInformationTransferTypeMDT CRITICALITY reject TYPE S1ap-Inter-SystemInformationTransferType PRESENCE mandatory} , - ... -} --- ************************************************************** --- --- eNB CONFIGURATION TRANSFER ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- eNB Configuration Transfer --- --- ************************************************************** - -S1ap-ENBConfigurationTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ S1ap-ENBConfigurationTransferIEs}}, - ... -} - -S1ap-ENBConfigurationTransferIEs S1AP-PROTOCOL-IES ::= { - { ID id-SONConfigurationTransferECT CRITICALITY ignore TYPE S1ap-SONConfigurationTransfer PRESENCE optional} , - ... -} - --- ************************************************************** --- --- MME CONFIGURATION TRANSFER ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- MME Configuration Transfer --- --- ************************************************************** - -S1ap-MMEConfigurationTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ S1ap-MMEConfigurationTransferIEs}}, - ... -} - -S1ap-MMEConfigurationTransferIEs S1AP-PROTOCOL-IES ::= { - { ID id-SONConfigurationTransferMCT CRITICALITY ignore TYPE S1ap-SONConfigurationTransfer PRESENCE optional} , - ... -} - --- ************************************************************** --- --- PRIVATE MESSAGE ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- Private Message --- --- ************************************************************** - -S1ap-PrivateMessage ::= SEQUENCE { - privateIEs PrivateIE-Container {{S1ap-PrivateMessageIEs}}, - ... -} - -S1ap-PrivateMessageIEs S1AP-PRIVATE-IES ::= { - ... -} - --- ************************************************************** --- --- Kill Request --- --- ************************************************************** - - -S1ap-KillRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-KillRequestIEs} }, - ... -} - -S1ap-KillRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-MessageIdentifier CRITICALITY reject TYPE S1ap-MessageIdentifier PRESENCE mandatory }| - { ID id-SerialNumber CRITICALITY reject TYPE S1ap-SerialNumber PRESENCE mandatory }| - { ID id-WarningAreaList CRITICALITY ignore TYPE S1ap-WarningAreaList PRESENCE optional }, - ... -} - --- ************************************************************** --- --- Kill Response --- --- ************************************************************** - -S1ap-KillResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1ap-KillResponseIEs} }, - ... -} - -S1ap-KillResponseIEs S1AP-PROTOCOL-IES ::= { - { ID id-MessageIdentifier CRITICALITY reject TYPE S1ap-MessageIdentifier PRESENCE mandatory }| - { ID id-SerialNumber CRITICALITY reject TYPE S1ap-SerialNumber PRESENCE mandatory }| - { ID id-BroadcastCancelledAreaList CRITICALITY ignore TYPE S1ap-BroadcastCancelledAreaList PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE S1ap-CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- LPPA TRANSPORT ELEMENTARY PROCEDURES --- --- ************************************************************** - --- ************************************************************** --- --- DOWNLINK UE ASSOCIATED LPPA TRANSPORT --- --- ************************************************************** - -S1ap-DownlinkUEAssociatedLPPaTransport ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{S1ap-DownlinkUEAssociatedLPPaTransport-IEs}}, - ... -} - -S1ap-DownlinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-Routing-ID CRITICALITY reject TYPE S1ap-Routing-ID PRESENCE mandatory } | - { ID id-LPPa-PDU CRITICALITY reject TYPE S1ap-LPPa-PDU PRESENCE mandatory } , - ... -} - --- ************************************************************** --- --- UPLINK UE ASSOCIATED LPPA TRANSPORT --- --- ************************************************************** - -S1ap-UplinkUEAssociatedLPPaTransport ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{S1ap-UplinkUEAssociatedLPPaTransport-IEs}}, - ... -} - -S1ap-UplinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE S1ap-MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE S1ap-ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-Routing-ID CRITICALITY reject TYPE S1ap-Routing-ID PRESENCE mandatory} | - { ID id-LPPa-PDU CRITICALITY reject TYPE S1ap-LPPa-PDU PRESENCE mandatory} , - ... -} - --- ************************************************************** --- --- DOWNLINK NON UE ASSOCIATED LPPA TRANSPORT --- --- ************************************************************** - -S1ap-DownlinkNonUEAssociatedLPPaTransport ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{S1ap-DownlinkNonUEAssociatedLPPaTransport-IEs}}, - ... -} - -S1ap-DownlinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { - { ID id-Routing-ID CRITICALITY reject TYPE S1ap-Routing-ID PRESENCE mandatory} | - { ID id-LPPa-PDU CRITICALITY reject TYPE S1ap-LPPa-PDU PRESENCE mandatory} , - ... -} - --- ************************************************************** --- --- UPLINK NON UE ASSOCIATED LPPA TRANSPORT --- --- ************************************************************** - -S1ap-UplinkNonUEAssociatedLPPaTransport ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{S1ap-UplinkNonUEAssociatedLPPaTransport-IEs}}, - ... -} - -S1ap-UplinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { - { ID id-Routing-ID CRITICALITY reject TYPE S1ap-Routing-ID PRESENCE mandatory} | - { ID id-LPPa-PDU CRITICALITY reject TYPE S1ap-LPPa-PDU PRESENCE mandatory} , - ... -} - -END diff --git a/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU-Descriptions.asn b/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU-Descriptions.asn deleted file mode 100644 index 591410de06..0000000000 --- a/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU-Descriptions.asn +++ /dev/null @@ -1,590 +0,0 @@ --- ************************************************************** --- --- Elementary Procedure definitions --- --- ************************************************************** - -S1AP-PDU-Descriptions { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Descriptions (0)} - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - --- ************************************************************** --- --- IE parameter types from other modules. --- --- ************************************************************** - -IMPORTS - S1ap-Criticality, - S1ap-ProcedureCode -FROM S1AP-CommonDataTypes - - S1ap-CellTrafficTrace, - S1ap-DeactivateTrace, - S1ap-DownlinkUEAssociatedLPPaTransport, - S1ap-DownlinkNASTransport, - S1ap-DownlinkNonUEAssociatedLPPaTransport, - S1ap-DownlinkS1cdma2000tunneling, - S1ap-ENBDirectInformationTransfer, - S1ap-ENBStatusTransfer, - S1ap-ENBConfigurationUpdate, - S1ap-ENBConfigurationUpdateAcknowledge, - S1ap-ENBConfigurationUpdateFailure, - S1ap-ErrorIndication, - S1ap-HandoverCancel, - S1ap-HandoverCancelAcknowledge, - S1ap-HandoverCommand, - S1ap-HandoverFailure, - S1ap-HandoverNotify, - S1ap-HandoverPreparationFailure, - S1ap-HandoverRequest, - S1ap-HandoverRequestAcknowledge, - S1ap-HandoverRequired, - S1ap-InitialContextSetupFailure, - S1ap-InitialContextSetupRequest, - S1ap-InitialContextSetupResponse, - S1ap-InitialUEMessage, - S1ap-KillRequest, - S1ap-KillResponse, - S1ap-LocationReportingControl, - S1ap-LocationReportingFailureIndication, - S1ap-LocationReport, - S1ap-MMEConfigurationUpdate, - S1ap-MMEConfigurationUpdateAcknowledge, - S1ap-MMEConfigurationUpdateFailure, - S1ap-MMEDirectInformationTransfer, - S1ap-MMEStatusTransfer, - S1ap-NASNonDeliveryIndication, - S1ap-OverloadStart, - S1ap-OverloadStop, - S1ap-Paging, - S1ap-PathSwitchRequest, - S1ap-PathSwitchRequestAcknowledge, - S1ap-PathSwitchRequestFailure, - S1ap-PrivateMessage, - S1ap-Reset, - S1ap-ResetAcknowledge, - S1ap-S1SetupFailure, - S1ap-S1SetupRequest, - S1ap-S1SetupResponse, - E-S1ap-RABModifyRequest, - E-S1ap-RABModifyResponse, - E-S1ap-RABReleaseCommand, - E-S1ap-RABReleaseResponse, - E-S1ap-RABReleaseIndication, - E-S1ap-RABSetupRequest, - E-S1ap-RABSetupResponse, - S1ap-TraceFailureIndication, - S1ap-TraceStart, - S1ap-UECapabilityInfoIndication, - S1ap-UEContextModificationFailure, - S1ap-UEContextModificationRequest, - S1ap-UEContextModificationResponse, - S1ap-UEContextReleaseCommand, - S1ap-UEContextReleaseComplete, - S1ap-UEContextReleaseRequest, - S1ap-UplinkUEAssociatedLPPaTransport, - S1ap-UplinkNASTransport, - S1ap-UplinkNonUEAssociatedLPPaTransport, - S1ap-UplinkS1cdma2000tunneling, - S1ap-WriteReplaceWarningRequest, - S1ap-WriteReplaceWarningResponse, - S1ap-ENBConfigurationTransfer, - S1ap-MMEConfigurationTransfer - -FROM S1AP-PDU-Contents - - id-CellTrafficTrace, - id-DeactivateTrace, - id-downlinkUEAssociatedLPPaTransport, - id-downlinkNASTransport, - id-downlinkNonUEAssociatedLPPaTransport, - id-DownlinkS1cdma2000tunneling, - id-eNBStatusTransfer, - id-ErrorIndication, - id-HandoverCancel, - id-HandoverNotification, - id-HandoverPreparation, - id-HandoverResourceAllocation, - id-InitialContextSetup, - id-initialUEMessage, - id-ENBConfigurationUpdate, - id-Kill, - id-LocationReportingControl, - id-LocationReportingFailureIndication, - id-LocationReport, - id-eNBDirectInformationTransfer, - id-MMEConfigurationUpdate, - id-MMEDirectInformationTransfer, - id-MMEStatusTransfer, - id-NASNonDeliveryIndication, - id-OverloadStart, - id-OverloadStop, - id-Paging, - id-PathSwitchRequest, - id-PrivateMessage, - id-Reset, - id-S1Setup, - id-E-RABModify, - id-E-RABRelease, - id-E-RABReleaseIndication, - id-E-RABSetup, - id-TraceFailureIndication, - id-TraceStart, - id-UECapabilityInfoIndication, - id-UEContextModification, - id-UEContextRelease, - id-UEContextReleaseRequest, - id-uplinkUEAssociatedLPPaTransport, - id-uplinkNASTransport, - id-uplinkNonUEAssociatedLPPaTransport, - id-UplinkS1cdma2000tunneling, - id-WriteReplaceWarning, - id-eNBConfigurationTransfer, - id-MMEConfigurationTransfer -FROM S1AP-Constants; - - --- ************************************************************** --- --- Interface Elementary Procedure Class --- --- ************************************************************** - -S1AP-ELEMENTARY-PROCEDURE ::= CLASS { - &InitiatingMessage , - &SuccessfulOutcome OPTIONAL, - &UnsuccessfulOutcome OPTIONAL, - &procedureCode ProcedureCode UNIQUE, - &criticality Criticality DEFAULT ignore -} -WITH SYNTAX { - INITIATING MESSAGE &InitiatingMessage - [SUCCESSFUL OUTCOME &SuccessfulOutcome] - [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] - PROCEDURE CODE &procedureCode - [CRITICALITY &criticality] -} - --- ************************************************************** --- --- Interface PDU Definition --- --- ************************************************************** - -S1AP-PDU ::= CHOICE { - initiatingMessage InitiatingMessage, - successfulOutcome SuccessfulOutcome, - unsuccessfulOutcome UnsuccessfulOutcome, - ... -} - -InitiatingMessage ::= SEQUENCE { - procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), - criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value S1AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} - -SuccessfulOutcome ::= SEQUENCE { - procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), - criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value S1AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} - -UnsuccessfulOutcome ::= SEQUENCE { - procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), - criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value S1AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} - --- ************************************************************** --- --- Interface Elementary Procedure List --- --- ************************************************************** - -S1AP-ELEMENTARY-PROCEDURES S1AP-ELEMENTARY-PROCEDURE ::= { - S1AP-ELEMENTARY-PROCEDURES-CLASS-1 | - S1AP-ELEMENTARY-PROCEDURES-CLASS-2, - ... -} - - -S1AP-ELEMENTARY-PROCEDURES-CLASS-1 S1AP-ELEMENTARY-PROCEDURE ::= { - handoverPreparation | - handoverResourceAllocation | - pathSwitchRequest | - e-RABSetup | - e-RABModify | - e-RABRelease | - initialContextSetup | - handoverCancel | - kill | - reset | - s1Setup | - uEContextModification | - uEContextRelease | - eNBConfigurationUpdate | - mMEConfigurationUpdate | - writeReplaceWarning , - ... -} - -S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= { - handoverNotification | - e-RABReleaseIndication | - paging | - downlinkNASTransport | - initialUEMessage | - uplinkNASTransport | - errorIndication | - nASNonDeliveryIndication | - uEContextReleaseRequest | - downlinkS1cdma2000tunneling | - uplinkS1cdma2000tunneling | - uECapabilityInfoIndication | - eNBStatusTransfer | - mMEStatusTransfer | - deactivateTrace | - traceStart | - traceFailureIndication | - cellTrafficTrace | - locationReportingControl | - locationReportingFailureIndication | - locationReport | - overloadStart | - overloadStop | - eNBDirectInformationTransfer | - mMEDirectInformationTransfer | - eNBConfigurationTransfer | - mMEConfigurationTransfer | - privateMessage , - ..., - downlinkUEAssociatedLPPaTransport | - uplinkUEAssociatedLPPaTransport | - downlinkNonUEAssociatedLPPaTransport | - uplinkNonUEAssociatedLPPaTransport -} - --- ************************************************************** --- --- Interface Elementary Procedures --- --- ************************************************************** - -handoverPreparation S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE HandoverRequired - SUCCESSFUL OUTCOME HandoverCommand - UNSUCCESSFUL OUTCOME HandoverPreparationFailure - PROCEDURE CODE id-HandoverPreparation - CRITICALITY reject -} - -handoverResourceAllocation S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE HandoverRequest - SUCCESSFUL OUTCOME HandoverRequestAcknowledge - UNSUCCESSFUL OUTCOME HandoverFailure - PROCEDURE CODE id-HandoverResourceAllocation - CRITICALITY reject -} - -handoverNotification S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE HandoverNotify - PROCEDURE CODE id-HandoverNotification - CRITICALITY ignore -} - -pathSwitchRequest S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE PathSwitchRequest - SUCCESSFUL OUTCOME PathSwitchRequestAcknowledge - UNSUCCESSFUL OUTCOME PathSwitchRequestFailure - PROCEDURE CODE id-PathSwitchRequest - CRITICALITY reject -} - -e-RABSetup S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE E-RABSetupRequest - SUCCESSFUL OUTCOME E-RABSetupResponse - PROCEDURE CODE id-E-RABSetup - CRITICALITY reject -} - -e-RABModify S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE E-RABModifyRequest - SUCCESSFUL OUTCOME E-RABModifyResponse - PROCEDURE CODE id-E-RABModify - CRITICALITY reject -} - -e-RABRelease S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE E-RABReleaseCommand - SUCCESSFUL OUTCOME E-RABReleaseResponse - PROCEDURE CODE id-E-RABRelease - CRITICALITY reject -} - -e-RABReleaseIndication S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE E-RABReleaseIndication - PROCEDURE CODE id-E-RABReleaseIndication - CRITICALITY ignore -} - -initialContextSetup S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE InitialContextSetupRequest - SUCCESSFUL OUTCOME InitialContextSetupResponse - UNSUCCESSFUL OUTCOME InitialContextSetupFailure - PROCEDURE CODE id-InitialContextSetup - CRITICALITY reject -} - -uEContextReleaseRequest S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE UEContextReleaseRequest - PROCEDURE CODE id-UEContextReleaseRequest - CRITICALITY ignore -} - -paging S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE Paging - PROCEDURE CODE id-Paging - CRITICALITY ignore -} - -downlinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE DownlinkNASTransport - PROCEDURE CODE id-downlinkNASTransport - CRITICALITY ignore -} - -initialUEMessage S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE InitialUEMessage - PROCEDURE CODE id-initialUEMessage - CRITICALITY ignore -} - -uplinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE UplinkNASTransport - PROCEDURE CODE id-uplinkNASTransport - CRITICALITY ignore -} -nASNonDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE NASNonDeliveryIndication - PROCEDURE CODE id-NASNonDeliveryIndication - CRITICALITY ignore -} - -handoverCancel S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE HandoverCancel - SUCCESSFUL OUTCOME HandoverCancelAcknowledge - PROCEDURE CODE id-HandoverCancel - CRITICALITY reject -} - -reset S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE Reset - SUCCESSFUL OUTCOME ResetAcknowledge - PROCEDURE CODE id-Reset - CRITICALITY reject -} - -errorIndication S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE ErrorIndication - PROCEDURE CODE id-ErrorIndication - CRITICALITY ignore -} - -s1Setup S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE S1SetupRequest - SUCCESSFUL OUTCOME S1SetupResponse - UNSUCCESSFUL OUTCOME S1SetupFailure - PROCEDURE CODE id-S1Setup - CRITICALITY reject -} - -eNBConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE ENBConfigurationUpdate - SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge - UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure - PROCEDURE CODE id-ENBConfigurationUpdate - CRITICALITY reject -} - -mMEConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE MMEConfigurationUpdate - SUCCESSFUL OUTCOME MMEConfigurationUpdateAcknowledge - UNSUCCESSFUL OUTCOME MMEConfigurationUpdateFailure - PROCEDURE CODE id-MMEConfigurationUpdate - CRITICALITY reject -} - -downlinkS1cdma2000tunneling S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE DownlinkS1cdma2000tunneling - PROCEDURE CODE id-DownlinkS1cdma2000tunneling - CRITICALITY ignore -} - -uplinkS1cdma2000tunneling S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE UplinkS1cdma2000tunneling - PROCEDURE CODE id-UplinkS1cdma2000tunneling - CRITICALITY ignore -} - -uEContextModification S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE UEContextModificationRequest - SUCCESSFUL OUTCOME UEContextModificationResponse - UNSUCCESSFUL OUTCOME UEContextModificationFailure - - PROCEDURE CODE id-UEContextModification - CRITICALITY reject -} - -uECapabilityInfoIndication S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE UECapabilityInfoIndication - PROCEDURE CODE id-UECapabilityInfoIndication - CRITICALITY ignore -} - -uEContextRelease S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE UEContextReleaseCommand - SUCCESSFUL OUTCOME UEContextReleaseComplete - PROCEDURE CODE id-UEContextRelease - CRITICALITY reject -} - -eNBStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE ENBStatusTransfer - PROCEDURE CODE id-eNBStatusTransfer - CRITICALITY ignore -} - -mMEStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE MMEStatusTransfer - PROCEDURE CODE id-MMEStatusTransfer - CRITICALITY ignore -} - -deactivateTrace S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE DeactivateTrace - PROCEDURE CODE id-DeactivateTrace - CRITICALITY ignore -} - -traceStart S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE TraceStart - PROCEDURE CODE id-TraceStart - CRITICALITY ignore -} - -traceFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE TraceFailureIndication - PROCEDURE CODE id-TraceFailureIndication - CRITICALITY ignore -} -cellTrafficTrace S1AP-ELEMENTARY-PROCEDURE ::={ -INITIATING MESSAGE CellTrafficTrace -PROCEDURE CODE id-CellTrafficTrace -CRITICALITY ignore -} - -locationReportingControl S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE LocationReportingControl - PROCEDURE CODE id-LocationReportingControl - CRITICALITY ignore -} - -locationReportingFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE LocationReportingFailureIndication - PROCEDURE CODE id-LocationReportingFailureIndication - CRITICALITY ignore -} - -locationReport S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE LocationReport - PROCEDURE CODE id-LocationReport - CRITICALITY ignore -} - -overloadStart S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE OverloadStart - PROCEDURE CODE id-OverloadStart - CRITICALITY ignore -} - -overloadStop S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE OverloadStop - PROCEDURE CODE id-OverloadStop - CRITICALITY reject -} - -writeReplaceWarning S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE WriteReplaceWarningRequest - SUCCESSFUL OUTCOME WriteReplaceWarningResponse - PROCEDURE CODE id-WriteReplaceWarning - CRITICALITY reject -} - -eNBDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE ENBDirectInformationTransfer - PROCEDURE CODE id-eNBDirectInformationTransfer - CRITICALITY ignore -} - -mMEDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE MMEDirectInformationTransfer - PROCEDURE CODE id-MMEDirectInformationTransfer - CRITICALITY ignore -} - -eNBConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE ENBConfigurationTransfer - PROCEDURE CODE id-eNBConfigurationTransfer - CRITICALITY ignore -} - -mMEConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE MMEConfigurationTransfer - PROCEDURE CODE id-MMEConfigurationTransfer - CRITICALITY ignore -} - - -privateMessage S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE PrivateMessage - PROCEDURE CODE id-PrivateMessage - CRITICALITY ignore -} - -kill S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE KillRequest - SUCCESSFUL OUTCOME KillResponse - PROCEDURE CODE id-Kill - CRITICALITY reject -} - -downlinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE DownlinkUEAssociatedLPPaTransport - PROCEDURE CODE id-downlinkUEAssociatedLPPaTransport - CRITICALITY ignore -} - -uplinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE UplinkUEAssociatedLPPaTransport - PROCEDURE CODE id-uplinkUEAssociatedLPPaTransport - CRITICALITY ignore -} -downlinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE DownlinkNonUEAssociatedLPPaTransport - PROCEDURE CODE id-downlinkNonUEAssociatedLPPaTransport - CRITICALITY ignore -} - -uplinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE UplinkNonUEAssociatedLPPaTransport - PROCEDURE CODE id-uplinkNonUEAssociatedLPPaTransport - CRITICALITY ignore -} - -END diff --git a/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU.asn b/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU.asn deleted file mode 100644 index f0042af1c1..0000000000 --- a/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU.asn +++ /dev/null @@ -1,412 +0,0 @@ -S1AP-PDU { - itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) - eps-Access (21) modules (3) s1ap (1) version1 (1) -} - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - -IMPORTS - S1ap-Criticality, - S1ap-ProcedureCode, - S1ap-ProtocolIE-ID - -FROM S1AP-CommonDataTypes - - s1ap-maxProtocolIEs - -FROM S1AP-Constants; - -S1AP-PDU ::= CHOICE { - initiatingMessage S1ap-InitiatingMessage, - successfulOutcome S1ap-SuccessfulOutcome, - unsuccessfulOutcome S1ap-UnsuccessfulOutcome, - ... -} - -S1ap-InitiatingMessage ::= SEQUENCE { - procedureCode S1ap-ProcedureCode, - criticality S1ap-Criticality, - value ANY -} - -S1ap-SuccessfulOutcome ::= SEQUENCE { - procedureCode S1ap-ProcedureCode, - criticality S1ap-Criticality, - value ANY -} - -S1ap-UnsuccessfulOutcome ::= SEQUENCE { - procedureCode S1ap-ProcedureCode, - criticality S1ap-Criticality, - value ANY -} - -S1ap-HandoverRequired ::= SEQUENCE { - s1ap-HandoverRequired-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-HandoverCommand ::= SEQUENCE { - s1ap-HandoverCommand-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-HandoverPreparationFailure ::= SEQUENCE { - s1ap-HandoverPreparationFailure-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-HandoverRequest ::= SEQUENCE { - s1ap-HandoverRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-HandoverRequestAcknowledge ::= SEQUENCE { - s1ap-HandoverRequestAcknowledge-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-HandoverFailure ::= SEQUENCE { - s1ap-HandoverFailure-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-HandoverNotify ::= SEQUENCE { - s1ap-HandoverNotify-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-PathSwitchRequest ::= SEQUENCE { - s1ap-PathSwitchRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-PathSwitchRequestAcknowledge ::= SEQUENCE { - s1ap-PathSwitchRequestAcknowledge-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-PathSwitchRequestFailure ::= SEQUENCE { - s1ap-PathSwitchRequestFailure-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-E-RABSetupRequest ::= SEQUENCE { - s1ap-E-RABSetupRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-E-RABSetupResponse ::= SEQUENCE { - s1ap-E-RABSetupResponse-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-E-RABModifyRequest ::= SEQUENCE { - s1ap-E-RABModifyRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-E-RABModifyResponse ::= SEQUENCE { - s1ap-E-RABModifyResponse-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-E-RABReleaseIndication ::= SEQUENCE { - s1ap-E-RABReleaseIndication-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-E-RABReleaseCommand ::= SEQUENCE { - s1ap-E-RABReleaseCommand-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-E-RABReleaseResponse ::= SEQUENCE { - s1ap-E-RABReleaseResponse-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-InitialContextSetupRequest ::= SEQUENCE { - s1ap-InitialContextSetupRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-InitialContextSetupResponse ::= SEQUENCE { - s1ap-InitialContextSetupResponse-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-InitialContextSetupFailure ::= SEQUENCE { - s1ap-InitialContextSetupFailure-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-UEContextReleaseRequest ::= SEQUENCE { - s1ap-UEContextReleaseRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-Paging ::= SEQUENCE { - s1ap-Paging-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-DownlinkNASTransport ::= SEQUENCE { - s1ap-DownlinkNASTransport-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-InitialUEMessage ::= SEQUENCE { - s1ap-InitialUEMessage-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-UplinkNASTransport ::= SEQUENCE { - s1ap-UplinkNASTransport-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-NASNonDeliveryIndication ::= SEQUENCE { - s1ap-NASNonDeliveryIndication-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-HandoverCancel ::= SEQUENCE { - s1ap-HandoverCancel-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-HandoverCancelAcknowledge ::= SEQUENCE { - s1ap-HandoverCancelAcknowledge-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-Reset ::= SEQUENCE { - s1ap-Reset-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-ResetAcknowledge ::= SEQUENCE { - s1ap-ResetAcknowledge-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-S1SetupResponse ::= SEQUENCE { - s1ap-S1SetupResponse-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-S1SetupRequest ::= SEQUENCE { - s1ap-S1SetupRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-S1SetupFailure ::= SEQUENCE { - s1ap-S1SetupFailure-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-ErrorIndication ::= SEQUENCE { - s1ap-ErrorIndication-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-ENBConfigurationUpdate ::= SEQUENCE { - s1ap-ENBConfigurationUpdate-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-ENBConfigurationUpdateAcknowledge ::= SEQUENCE { - s1ap-ENBConfigurationUpdateAcknowledge-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-ENBConfigurationUpdateFailure ::= SEQUENCE { - s1ap-ENBConfigurationUpdateFailure-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-MMEConfigurationUpdate ::= SEQUENCE { - s1ap-MMEConfigurationUpdate-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-MMEConfigurationUpdateAcknowledge ::= SEQUENCE { - s1ap-MMEConfigurationUpdateAcknowledge-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-MMEConfigurationUpdateFailure ::= SEQUENCE { - s1ap-MMEConfigurationUpdateFailure-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-DownlinkS1cdma2000tunneling ::= SEQUENCE { - s1ap-DownlinkS1cdma2000tunneling-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-UplinkS1cdma2000tunneling ::= SEQUENCE { - s1ap-UplinkS1cdma2000tunneling-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-UEContextModificationRequest ::= SEQUENCE { - s1ap-UEContextModificationRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-UEContextModificationResponse ::= SEQUENCE { - s1ap-UEContextModificationResponse-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-UEContextModificationFailure ::= SEQUENCE { - s1ap-UEContextModificationFailure-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-UECapabilityInfoIndication ::= SEQUENCE { - s1ap-UECapabilityInfoIndication-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-UEContextReleaseCommand ::= SEQUENCE { - s1ap-UEContextReleaseCommand-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-UEContextReleaseComplete ::= SEQUENCE { - s1ap-UEContextReleaseComplete-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-ENBStatusTransfer ::= SEQUENCE { - s1ap-ENBStatusTransfer-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-MMEStatusTransfer ::= SEQUENCE { - s1ap-MMEStatusTransfer-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-DeactivateTrace ::= SEQUENCE { - s1ap-DeactivateTrace-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-TraceStart ::= SEQUENCE { - s1ap-TraceStart-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-TraceFailureIndication ::= SEQUENCE { - s1ap-TraceFailureIndication-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-CellTrafficTrace ::= SEQUENCE { - s1ap-CellTrafficTrace-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-LocationReportingControl ::= SEQUENCE { - s1ap-LocationReportingControl-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-LocationReportingFailureIndication ::= SEQUENCE { - s1ap-LocationReportingFailureIndication-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-LocationReport ::= SEQUENCE { - s1ap-LocationReport-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-OverloadStart ::= SEQUENCE { - s1ap-OverloadStart-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-OverloadStop ::= SEQUENCE { - s1ap-OverloadStop-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-WriteReplaceWarningRequest ::= SEQUENCE { - s1ap-WriteReplaceWarningRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-WriteReplaceWarningResponse ::= SEQUENCE { - s1ap-WriteReplaceWarningResponse-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-ENBDirectInformationTransfer ::= SEQUENCE { - s1ap-ENBDirectInformationTransfer-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-MMEDirectInformationTransfer ::= SEQUENCE { - s1ap-MMEDirectInformationTransfer-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-ENBConfigurationTransfer ::= SEQUENCE { - s1ap-ENBConfigurationTransfer-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-MMEConfigurationTransfer ::= SEQUENCE { - s1ap-MMEConfigurationTransfer-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-PrivateMessage ::= SEQUENCE { - s1ap-PrivateMessage-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-KillRequest ::= SEQUENCE { - s1ap-KillRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-KillResponse ::= SEQUENCE { - s1ap-KillResponse-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-DownlinkUEAssociatedLPPaTransport ::= SEQUENCE { - s1ap-DownlinkUEAssociatedLPPaTransport-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-UplinkUEAssociatedLPPaTransport ::= SEQUENCE { - s1ap-UplinkUEAssociatedLPPaTransport-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-DownlinkNonUEAssociatedLPPaTransport ::= SEQUENCE { - s1ap-DownlinkNonUEAssociatedLPPaTransport-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-UplinkNonUEAssociatedLPPaTransport ::= SEQUENCE { - s1ap-UplinkNonUEAssociatedLPPaTransport-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE, - ... -} - -S1ap-IE ::= SEQUENCE { - id S1ap-ProtocolIE-ID, - criticality S1ap-Criticality, - value ANY -} - -END \ No newline at end of file diff --git a/openair3/S1AP/MESSAGES/ASN1/R10/s1ap-10.9.0.asn1 b/openair3/S1AP/MESSAGES/ASN1/R10/s1ap-10.9.0.asn1 new file mode 100755 index 0000000000..76ca705a23 --- /dev/null +++ b/openair3/S1AP/MESSAGES/ASN1/R10/s1ap-10.9.0.asn1 @@ -0,0 +1,5097 @@ +-- ************************************************************** +-- +-- Elementary Procedure definitions +-- +-- ************************************************************** + +S1AP-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Descriptions (0)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + ProcedureCode +FROM S1AP-CommonDataTypes + + CellTrafficTrace, + DeactivateTrace, + DownlinkUEAssociatedLPPaTransport, + DownlinkNASTransport, + DownlinkNonUEAssociatedLPPaTransport, + DownlinkS1cdma2000tunneling, + ENBDirectInformationTransfer, + ENBStatusTransfer, + ENBConfigurationUpdate, + ENBConfigurationUpdateAcknowledge, + ENBConfigurationUpdateFailure, + ErrorIndication, + HandoverCancel, + HandoverCancelAcknowledge, + HandoverCommand, + HandoverFailure, + HandoverNotify, + HandoverPreparationFailure, + HandoverRequest, + HandoverRequestAcknowledge, + HandoverRequired, + InitialContextSetupFailure, + InitialContextSetupRequest, + InitialContextSetupResponse, + InitialUEMessage, + KillRequest, + KillResponse, + LocationReportingControl, + LocationReportingFailureIndication, + LocationReport, + MMEConfigurationUpdate, + MMEConfigurationUpdateAcknowledge, + MMEConfigurationUpdateFailure, + MMEDirectInformationTransfer, + MMEStatusTransfer, + NASNonDeliveryIndication, + OverloadStart, + OverloadStop, + Paging, + PathSwitchRequest, + PathSwitchRequestAcknowledge, + PathSwitchRequestFailure, + PrivateMessage, + Reset, + ResetAcknowledge, + S1SetupFailure, + S1SetupRequest, + S1SetupResponse, + E-RABModifyRequest, + E-RABModifyResponse, + E-RABReleaseCommand, + E-RABReleaseResponse, + E-RABReleaseIndication, + E-RABSetupRequest, + E-RABSetupResponse, + TraceFailureIndication, + TraceStart, + UECapabilityInfoIndication, + UEContextModificationFailure, + UEContextModificationRequest, + UEContextModificationResponse, + UEContextReleaseCommand, + UEContextReleaseComplete, + UEContextReleaseRequest, + UplinkUEAssociatedLPPaTransport, + UplinkNASTransport, + UplinkNonUEAssociatedLPPaTransport, + UplinkS1cdma2000tunneling, + WriteReplaceWarningRequest, + WriteReplaceWarningResponse, + ENBConfigurationTransfer, + MMEConfigurationTransfer + + +FROM S1AP-PDU-Contents + + id-CellTrafficTrace, + id-DeactivateTrace, + id-downlinkUEAssociatedLPPaTransport, + id-downlinkNASTransport, + id-downlinkNonUEAssociatedLPPaTransport, + id-DownlinkS1cdma2000tunneling, + id-eNBStatusTransfer, + id-ErrorIndication, + id-HandoverCancel, + id-HandoverNotification, + id-HandoverPreparation, + id-HandoverResourceAllocation, + id-InitialContextSetup, + id-initialUEMessage, + id-ENBConfigurationUpdate, + id-Kill, + id-LocationReportingControl, + id-LocationReportingFailureIndication, + id-LocationReport, + id-eNBDirectInformationTransfer, + id-MMEConfigurationUpdate, + id-MMEDirectInformationTransfer, + id-MMEStatusTransfer, + id-NASNonDeliveryIndication, + id-OverloadStart, + id-OverloadStop, + id-Paging, + id-PathSwitchRequest, + id-PrivateMessage, + id-Reset, + id-S1Setup, + id-E-RABModify, + id-E-RABRelease, + id-E-RABReleaseIndication, + id-E-RABSetup, + id-TraceFailureIndication, + id-TraceStart, + id-UECapabilityInfoIndication, + id-UEContextModification, + id-UEContextRelease, + id-UEContextReleaseRequest, + id-uplinkUEAssociatedLPPaTransport, + id-uplinkNASTransport, + id-uplinkNonUEAssociatedLPPaTransport, + id-UplinkS1cdma2000tunneling, + id-WriteReplaceWarning, + id-eNBConfigurationTransfer, + id-MMEConfigurationTransfer +FROM S1AP-Constants; + + +-- ************************************************************** +-- +-- Interface Elementary Procedure Class +-- +-- ************************************************************** + +S1AP-ELEMENTARY-PROCEDURE ::= CLASS { + &InitiatingMessage , + &SuccessfulOutcome OPTIONAL, + &UnsuccessfulOutcome OPTIONAL, + &procedureCode ProcedureCode UNIQUE, + &criticality Criticality DEFAULT ignore +} +WITH SYNTAX { + INITIATING MESSAGE &InitiatingMessage + [SUCCESSFUL OUTCOME &SuccessfulOutcome] + [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] + PROCEDURE CODE &procedureCode + [CRITICALITY &criticality] +} + +-- ************************************************************** +-- +-- Interface PDU Definition +-- +-- ************************************************************** + +S1AP-PDU ::= CHOICE { + initiatingMessage InitiatingMessage, + successfulOutcome SuccessfulOutcome, + unsuccessfulOutcome UnsuccessfulOutcome, + ... +} + +InitiatingMessage ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +SuccessfulOutcome ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +UnsuccessfulOutcome ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +-- ************************************************************** +-- +-- Interface Elementary Procedure List +-- +-- ************************************************************** + +S1AP-ELEMENTARY-PROCEDURES S1AP-ELEMENTARY-PROCEDURE ::= { + S1AP-ELEMENTARY-PROCEDURES-CLASS-1 | + S1AP-ELEMENTARY-PROCEDURES-CLASS-2, + ... +} + + +S1AP-ELEMENTARY-PROCEDURES-CLASS-1 S1AP-ELEMENTARY-PROCEDURE ::= { + handoverPreparation | + handoverResourceAllocation | + pathSwitchRequest | + e-RABSetup | + e-RABModify | + e-RABRelease | + initialContextSetup | + handoverCancel | + kill | + reset | + s1Setup | + uEContextModification | + uEContextRelease | + eNBConfigurationUpdate | + mMEConfigurationUpdate | + writeReplaceWarning , + ... +} + +S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= { + handoverNotification | + e-RABReleaseIndication | + paging | + downlinkNASTransport | + initialUEMessage | + uplinkNASTransport | + errorIndication | + nASNonDeliveryIndication | + uEContextReleaseRequest | + downlinkS1cdma2000tunneling | + uplinkS1cdma2000tunneling | + uECapabilityInfoIndication | + eNBStatusTransfer | + mMEStatusTransfer | + deactivateTrace | + traceStart | + traceFailureIndication | + cellTrafficTrace | + locationReportingControl | + locationReportingFailureIndication | + locationReport | + overloadStart | + overloadStop | + eNBDirectInformationTransfer | + mMEDirectInformationTransfer | + eNBConfigurationTransfer | + mMEConfigurationTransfer | + privateMessage , + ..., + downlinkUEAssociatedLPPaTransport | + uplinkUEAssociatedLPPaTransport | + downlinkNonUEAssociatedLPPaTransport | + uplinkNonUEAssociatedLPPaTransport +} + +-- ************************************************************** +-- +-- Interface Elementary Procedures +-- +-- ************************************************************** + +handoverPreparation S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequired + SUCCESSFUL OUTCOME HandoverCommand + UNSUCCESSFUL OUTCOME HandoverPreparationFailure + PROCEDURE CODE id-HandoverPreparation + CRITICALITY reject +} + +handoverResourceAllocation S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequest + SUCCESSFUL OUTCOME HandoverRequestAcknowledge + UNSUCCESSFUL OUTCOME HandoverFailure + PROCEDURE CODE id-HandoverResourceAllocation + CRITICALITY reject +} + +handoverNotification S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverNotify + PROCEDURE CODE id-HandoverNotification + CRITICALITY ignore +} + +pathSwitchRequest S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PathSwitchRequest + SUCCESSFUL OUTCOME PathSwitchRequestAcknowledge + UNSUCCESSFUL OUTCOME PathSwitchRequestFailure + PROCEDURE CODE id-PathSwitchRequest + CRITICALITY reject +} + +e-RABSetup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABSetupRequest + SUCCESSFUL OUTCOME E-RABSetupResponse + PROCEDURE CODE id-E-RABSetup + CRITICALITY reject +} + +e-RABModify S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABModifyRequest + SUCCESSFUL OUTCOME E-RABModifyResponse + PROCEDURE CODE id-E-RABModify + CRITICALITY reject +} + +e-RABRelease S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABReleaseCommand + SUCCESSFUL OUTCOME E-RABReleaseResponse + PROCEDURE CODE id-E-RABRelease + CRITICALITY reject +} + +e-RABReleaseIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABReleaseIndication + PROCEDURE CODE id-E-RABReleaseIndication + CRITICALITY ignore +} + +initialContextSetup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE InitialContextSetupRequest + SUCCESSFUL OUTCOME InitialContextSetupResponse + UNSUCCESSFUL OUTCOME InitialContextSetupFailure + PROCEDURE CODE id-InitialContextSetup + CRITICALITY reject +} + +uEContextReleaseRequest S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextReleaseRequest + PROCEDURE CODE id-UEContextReleaseRequest + CRITICALITY ignore +} + +paging S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE Paging + PROCEDURE CODE id-Paging + CRITICALITY ignore +} + +downlinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkNASTransport + PROCEDURE CODE id-downlinkNASTransport + CRITICALITY ignore +} + +initialUEMessage S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE InitialUEMessage + PROCEDURE CODE id-initialUEMessage + CRITICALITY ignore +} + +uplinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkNASTransport + PROCEDURE CODE id-uplinkNASTransport + CRITICALITY ignore +} +nASNonDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE NASNonDeliveryIndication + PROCEDURE CODE id-NASNonDeliveryIndication + CRITICALITY ignore +} + +handoverCancel S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverCancel + SUCCESSFUL OUTCOME HandoverCancelAcknowledge + PROCEDURE CODE id-HandoverCancel + CRITICALITY reject +} + +reset S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE Reset + SUCCESSFUL OUTCOME ResetAcknowledge + PROCEDURE CODE id-Reset + CRITICALITY reject +} + +errorIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ErrorIndication + PROCEDURE CODE id-ErrorIndication + CRITICALITY ignore +} + +s1Setup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE S1SetupRequest + SUCCESSFUL OUTCOME S1SetupResponse + UNSUCCESSFUL OUTCOME S1SetupFailure + PROCEDURE CODE id-S1Setup + CRITICALITY reject +} + +eNBConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationUpdate + SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure + PROCEDURE CODE id-ENBConfigurationUpdate + CRITICALITY reject +} + +mMEConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEConfigurationUpdate + SUCCESSFUL OUTCOME MMEConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME MMEConfigurationUpdateFailure + PROCEDURE CODE id-MMEConfigurationUpdate + CRITICALITY reject +} + +downlinkS1cdma2000tunneling S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkS1cdma2000tunneling + PROCEDURE CODE id-DownlinkS1cdma2000tunneling + CRITICALITY ignore +} + +uplinkS1cdma2000tunneling S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkS1cdma2000tunneling + PROCEDURE CODE id-UplinkS1cdma2000tunneling + CRITICALITY ignore +} + +uEContextModification S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextModificationRequest + SUCCESSFUL OUTCOME UEContextModificationResponse + UNSUCCESSFUL OUTCOME UEContextModificationFailure + + PROCEDURE CODE id-UEContextModification + CRITICALITY reject +} + +uECapabilityInfoIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UECapabilityInfoIndication + PROCEDURE CODE id-UECapabilityInfoIndication + CRITICALITY ignore +} + +uEContextRelease S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextReleaseCommand + SUCCESSFUL OUTCOME UEContextReleaseComplete + PROCEDURE CODE id-UEContextRelease + CRITICALITY reject +} + +eNBStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBStatusTransfer + PROCEDURE CODE id-eNBStatusTransfer + CRITICALITY ignore +} + +mMEStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEStatusTransfer + PROCEDURE CODE id-MMEStatusTransfer + CRITICALITY ignore +} + +deactivateTrace S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DeactivateTrace + PROCEDURE CODE id-DeactivateTrace + CRITICALITY ignore +} + +traceStart S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE TraceStart + PROCEDURE CODE id-TraceStart + CRITICALITY ignore +} + +traceFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE TraceFailureIndication + PROCEDURE CODE id-TraceFailureIndication + CRITICALITY ignore +} +cellTrafficTrace S1AP-ELEMENTARY-PROCEDURE ::={ + INITIATING MESSAGE CellTrafficTrace + PROCEDURE CODE id-CellTrafficTrace + CRITICALITY ignore +} + +locationReportingControl S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReportingControl + PROCEDURE CODE id-LocationReportingControl + CRITICALITY ignore +} + +locationReportingFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReportingFailureIndication + PROCEDURE CODE id-LocationReportingFailureIndication + CRITICALITY ignore +} + +locationReport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReport + PROCEDURE CODE id-LocationReport + CRITICALITY ignore +} + +overloadStart S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE OverloadStart + PROCEDURE CODE id-OverloadStart + CRITICALITY ignore +} + +overloadStop S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE OverloadStop + PROCEDURE CODE id-OverloadStop + CRITICALITY reject +} + +writeReplaceWarning S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE WriteReplaceWarningRequest + SUCCESSFUL OUTCOME WriteReplaceWarningResponse + PROCEDURE CODE id-WriteReplaceWarning + CRITICALITY reject +} + +eNBDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBDirectInformationTransfer + PROCEDURE CODE id-eNBDirectInformationTransfer + CRITICALITY ignore +} + +mMEDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEDirectInformationTransfer + PROCEDURE CODE id-MMEDirectInformationTransfer + CRITICALITY ignore +} + +eNBConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationTransfer + PROCEDURE CODE id-eNBConfigurationTransfer + CRITICALITY ignore +} + +mMEConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEConfigurationTransfer + PROCEDURE CODE id-MMEConfigurationTransfer + CRITICALITY ignore +} + + +privateMessage S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PrivateMessage + PROCEDURE CODE id-PrivateMessage + CRITICALITY ignore +} + +kill S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE KillRequest + SUCCESSFUL OUTCOME KillResponse + PROCEDURE CODE id-Kill + CRITICALITY reject +} + +downlinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkUEAssociatedLPPaTransport + PROCEDURE CODE id-downlinkUEAssociatedLPPaTransport + CRITICALITY ignore +} + +uplinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkUEAssociatedLPPaTransport + PROCEDURE CODE id-uplinkUEAssociatedLPPaTransport + CRITICALITY ignore +} +downlinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkNonUEAssociatedLPPaTransport + PROCEDURE CODE id-downlinkNonUEAssociatedLPPaTransport + CRITICALITY ignore +} + +uplinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkNonUEAssociatedLPPaTransport + PROCEDURE CODE id-uplinkNonUEAssociatedLPPaTransport + CRITICALITY ignore +} + +END + + + +-- ************************************************************** +-- +-- PDU definitions for S1AP. +-- +-- ************************************************************** + +S1AP-PDU-Contents { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Contents (1) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + + UEAggregateMaximumBitrate, + Cause, + CellAccessMode, + Cdma2000HORequiredIndication, + Cdma2000HOStatus, + Cdma2000OneXSRVCCInfo, + Cdma2000OneXRAND, + Cdma2000PDU, + Cdma2000RATType, + Cdma2000SectorID, + EUTRANRoundTripDelayEstimationInfo, + CNDomain, + ConcurrentWarningMessageIndicator, + CriticalityDiagnostics, + CSFallbackIndicator, + CSG-Id, + CSG-IdList, + CSGMembershipStatus, + Data-Forwarding-Not-Possible, + Direct-Forwarding-Path-Availability, + Global-ENB-ID, + EUTRAN-CGI, + ENBname, + ENB-StatusTransfer-TransparentContainer, + ENB-UE-S1AP-ID, + ExtendedRepetitionPeriod, + GTP-TEID, + GUMMEI, + HandoverRestrictionList, + HandoverType, + LAI, + LPPa-PDU, + ManagementBasedMDTAllowed, + MMEname, + MMERelaySupportIndicator, + MME-UE-S1AP-ID, + MSClassmark2, + MSClassmark3, + NAS-PDU, + NASSecurityParametersfromE-UTRAN, + NASSecurityParameterstoE-UTRAN, + OverloadResponse, + PagingDRX, + PagingPriority, + PLMNidentity, + RIMTransfer, + RelativeMMECapacity, + RequestType, + E-RAB-ID, + E-RABLevelQoSParameters, + E-RABList, + RelayNode-Indicator, + Routing-ID, + SecurityKey, + SecurityContext, + ServedGUMMEIs, + SONConfigurationTransfer, + Source-ToTarget-TransparentContainer, + SourceBSS-ToTargetBSS-TransparentContainer, + SourceeNB-ToTargeteNB-TransparentContainer, + SourceRNC-ToTargetRNC-TransparentContainer, + SubscriberProfileIDforRFP, + SRVCCOperationPossible, + SRVCCHOIndication, + SupportedTAs, + TAI, + Target-ToSource-TransparentContainer, + TargetBSS-ToSourceBSS-TransparentContainer, + TargeteNB-ToSourceeNB-TransparentContainer, + TargetID, + TargetRNC-ToSourceRNC-TransparentContainer, + TimeToWait, + TraceActivation, + TrafficLoadReductionIndication, + E-UTRAN-Trace-ID, + TransportLayerAddress, + UEIdentityIndexValue, + UEPagingID, + UERadioCapability, + UE-S1AP-IDs, + UE-associatedLogicalS1-ConnectionItem, + UESecurityCapabilities, + S-TMSI, + MessageIdentifier, + SerialNumber, + WarningAreaList, + RepetitionPeriod, + NumberofBroadcastRequest, + WarningType, + WarningSecurityInfo, + DataCodingScheme, + WarningMessageContents, + BroadcastCompletedAreaList, + RRC-Establishment-Cause, + BroadcastCancelledAreaList, + PS-ServiceNotAvailable, + GUMMEIList, + Correlation-ID, + GWContextReleaseIndication, + PrivacyIndicator + + + +FROM S1AP-IEs + + PrivateIE-Container{}, + ProtocolExtensionContainer{}, + ProtocolIE-Container{}, + ProtocolIE-ContainerList{}, + ProtocolIE-ContainerPair{}, + ProtocolIE-ContainerPairList{}, + ProtocolIE-SingleContainer{}, + S1AP-PRIVATE-IES, + S1AP-PROTOCOL-EXTENSION, + S1AP-PROTOCOL-IES, + S1AP-PROTOCOL-IES-PAIR +FROM S1AP-Containers + + + id-uEaggregateMaximumBitrate, + id-Cause, + id-CellAccessMode, + id-cdma2000HORequiredIndication, + id-cdma2000HOStatus, + id-cdma2000OneXSRVCCInfo, + id-cdma2000OneXRAND, + id-cdma2000PDU, + id-cdma2000RATType, + id-cdma2000SectorID, + id-EUTRANRoundTripDelayEstimationInfo, + id-CNDomain, + id-ConcurrentWarningMessageIndicator, + id-CriticalityDiagnostics, + id-CSFallbackIndicator, + id-CSG-Id, + id-CSG-IdList, + id-CSGMembershipStatus, + id-Data-Forwarding-Not-Possible, + id-DefaultPagingDRX, + id-Direct-Forwarding-Path-Availability, + id-Global-ENB-ID, + id-EUTRAN-CGI, + id-eNBname, + id-eNB-StatusTransfer-TransparentContainer, + id-eNB-UE-S1AP-ID, + id-GERANtoLTEHOInformationRes, + id-GUMMEI-ID, + id-HandoverRestrictionList, + id-HandoverType, + id-InitialContextSetup, + id-Inter-SystemInformationTransferTypeEDT, + id-Inter-SystemInformationTransferTypeMDT, + id-LPPa-PDU, + id-NAS-DownlinkCount, + id-ManagementBasedMDTAllowed, + id-MMEname, + id-MME-UE-S1AP-ID, + id-MSClassmark2, + id-MSClassmark3, + id-NAS-PDU, + id-NASSecurityParametersfromE-UTRAN, + id-NASSecurityParameterstoE-UTRAN, + id-OverloadResponse, + id-pagingDRX, + id-PagingPriority, + id-RelativeMMECapacity, + id-RequestType, + id-Routing-ID, + id-E-RABAdmittedItem, + id-E-RABAdmittedList, + id-E-RABDataForwardingItem, + id-E-RABFailedToModifyList, + id-E-RABFailedToReleaseList, + id-E-RABFailedtoSetupItemHOReqAck, + id-E-RABFailedToSetupListBearerSURes, + id-E-RABFailedToSetupListCtxtSURes, + id-E-RABFailedToSetupListHOReqAck, + id-E-RABFailedToBeReleasedList, + id-E-RABModify, + id-E-RABModifyItemBearerModRes, + id-E-RABModifyListBearerModRes, + id-E-RABRelease, + id-E-RABReleaseItemBearerRelComp, + id-E-RABReleaseItemHOCmd, + id-E-RABReleaseListBearerRelComp, + id-E-RABReleaseIndication, + id-E-RABSetup, + id-E-RABSetupItemBearerSURes, + id-E-RABSetupItemCtxtSURes, + id-E-RABSetupListBearerSURes, + id-E-RABSetupListCtxtSURes, + id-E-RABSubjecttoDataForwardingList, + id-E-RABToBeModifiedItemBearerModReq, + id-E-RABToBeModifiedListBearerModReq, + id-E-RABToBeReleasedList, + id-E-RABReleasedList, + id-E-RABToBeSetupItemBearerSUReq, + id-E-RABToBeSetupItemCtxtSUReq, + id-E-RABToBeSetupItemHOReq, + id-E-RABToBeSetupListBearerSUReq, + id-E-RABToBeSetupListCtxtSUReq, + id-E-RABToBeSetupListHOReq, + id-E-RABToBeSwitchedDLItem, + id-E-RABToBeSwitchedDLList, + id-E-RABToBeSwitchedULList, + id-E-RABToBeSwitchedULItem, + id-E-RABtoReleaseListHOCmd, + id-SecurityKey, + id-SecurityContext, + id-ServedGUMMEIs, + id-SONConfigurationTransferECT, + id-SONConfigurationTransferMCT, + id-Source-ToTarget-TransparentContainer, + id-Source-ToTarget-TransparentContainer-Secondary, + id-SourceMME-UE-S1AP-ID, + id-SRVCCOperationPossible, + id-SRVCCHOIndication, + id-SubscriberProfileIDforRFP, + id-SupportedTAs, + id-S-TMSI, + id-TAI, + id-TAIItem, + id-TAIList, + id-Target-ToSource-TransparentContainer, + id-Target-ToSource-TransparentContainer-Secondary, + id-TargetID, + id-TimeToWait, + id-TraceActivation, + id-TrafficLoadReductionIndication, + id-E-UTRAN-Trace-ID, + id-UEIdentityIndexValue, + id-UEPagingID, + id-UERadioCapability, + id-UTRANtoLTEHOInformationRes, + id-UE-associatedLogicalS1-ConnectionListResAck, + id-UE-associatedLogicalS1-ConnectionItem, + id-UESecurityCapabilities, + id-UE-S1AP-IDs, + id-ResetType, + id-MessageIdentifier, + id-SerialNumber, + id-WarningAreaList, + id-RepetitionPeriod, + id-NumberofBroadcastRequest, + id-WarningType, + id-WarningSecurityInfo, + id-DataCodingScheme, + id-WarningMessageContents, + id-BroadcastCompletedAreaList, + id-BroadcastCancelledAreaList, + id-RRC-Establishment-Cause, + id-TraceCollectionEntityIPAddress, + maxnoofTAIs, + maxNrOfErrors, + maxNrOfE-RABs, + maxNrOfIndividualS1ConnectionsToReset, + maxnoofEmergencyAreaID, + maxnoofCellID, + maxnoofTAIforWarning, + maxnoofCellinTAI, + maxnoofCellinEAI, + id-ExtendedRepetitionPeriod, + id-PS-ServiceNotAvailable, + id-RegisteredLAI, + id-GUMMEIList, + id-SourceMME-GUMMEI, + id-MME-UE-S1AP-ID-2, + id-GW-TransportLayerAddress, + id-RelayNode-Indicator, + id-Correlation-ID, + id-MMERelaySupportIndicator, + id-GWContextReleaseIndication, + id-PrivacyIndicator + + +FROM S1AP-Constants; + +-- ************************************************************** +-- +-- Common Container Lists +-- +-- ************************************************************** + +E-RAB-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfE-RABs, {IEsSetParam} } +E-RAB-IE-ContainerPairList { S1AP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxNrOfE-RABs, {IEsSetParam} } +ProtocolError-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfE-RABs, {IEsSetParam} } + +-- ************************************************************** +-- +-- HANDOVER PREPARATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Required +-- +-- ************************************************************** + +HandoverRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverRequiredIEs} }, + ... +} + +HandoverRequiredIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TargetID CRITICALITY reject TYPE TargetID PRESENCE mandatory }| + { ID id-Direct-Forwarding-Path-Availability CRITICALITY ignore TYPE Direct-Forwarding-Path-Availability PRESENCE optional }| + { ID id-SRVCCHOIndication CRITICALITY reject TYPE SRVCCHOIndication PRESENCE optional }| + { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory }| + { ID id-Source-ToTarget-TransparentContainer-Secondary CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE optional }| + { ID id-MSClassmark2 CRITICALITY reject TYPE MSClassmark2 PRESENCE conditional }| + { ID id-MSClassmark3 CRITICALITY ignore TYPE MSClassmark3 PRESENCE conditional }| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional }| + { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional }| + { ID id-PS-ServiceNotAvailable CRITICALITY ignore TYPE PS-ServiceNotAvailable PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- Handover Command +-- +-- ************************************************************** + +HandoverCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCommandIEs} }, + ... +} + +HandoverCommandIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory } | + { ID id-NASSecurityParametersfromE-UTRAN CRITICALITY reject TYPE NASSecurityParametersfromE-UTRAN PRESENCE conditional + -- This IE shall be present if HandoverType IE is set to value "LTEtoUTRAN" or "LTEtoGERAN" -- }| + { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional } | + { ID id-E-RABtoReleaseListHOCmd CRITICALITY ignore TYPE E-RABList PRESENCE optional } | + { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory }| + { ID id-Target-ToSource-TransparentContainer-Secondary CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +E-RABSubjecttoDataForwardingList ::= E-RAB-IE-ContainerList { {E-RABDataForwardingItemIEs} } + +E-RABDataForwardingItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABDataForwardingItem CRITICALITY ignore TYPE E-RABDataForwardingItem PRESENCE mandatory }, + ... +} + +E-RABDataForwardingItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-transportLayerAddress TransportLayerAddress OPTIONAL, + dL-gTP-TEID GTP-TEID OPTIONAL, + uL-TransportLayerAddress TransportLayerAddress OPTIONAL, + uL-GTP-TEID GTP-TEID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { E-RABDataForwardingItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABDataForwardingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- Handover Preparation Failure +-- +-- ************************************************************** + +HandoverPreparationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverPreparationFailureIEs} }, + ... +} + +HandoverPreparationFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER RESOURCE ALLOCATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Request +-- +-- ************************************************************** + +HandoverRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {HandoverRequestIEs} }, + ... +} + +HandoverRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory}| + { ID id-E-RABToBeSetupListHOReq CRITICALITY reject TYPE E-RABToBeSetupListHOReq PRESENCE mandatory}| + { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}| + { ID id-NASSecurityParameterstoE-UTRAN CRITICALITY reject TYPE NASSecurityParameterstoE-UTRAN PRESENCE conditional + -- This IE shall be present if the Handover Type IE is set to the value "UTRANtoLTE" or "GERANtoLTE" --}| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional}| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional}, + ... +} + +E-RABToBeSetupListHOReq ::= E-RAB-IE-ContainerList { {E-RABToBeSetupItemHOReqIEs} } + +E-RABToBeSetupItemHOReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemHOReq CRITICALITY reject TYPE E-RABToBeSetupItemHOReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemHOReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + e-RABlevelQosParameters E-RABLevelQoSParameters, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemHOReq-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSetupItemHOReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + {ID id-Data-Forwarding-Not-Possible CRITICALITY ignore EXTENSION Data-Forwarding-Not-Possible PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Handover Request Acknowledge +-- +-- ************************************************************** + +HandoverRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {HandoverRequestAcknowledgeIEs} }, + ... +} + +HandoverRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-E-RABAdmittedList CRITICALITY ignore TYPE E-RABAdmittedList PRESENCE mandatory } | + { ID id-E-RABFailedToSetupListHOReqAck CRITICALITY ignore TYPE E-RABFailedtoSetupListHOReqAck PRESENCE optional } | + { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory }| + { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional } | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +E-RABAdmittedList ::= E-RAB-IE-ContainerList { {E-RABAdmittedItemIEs} } + +E-RABAdmittedItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABAdmittedItem CRITICALITY ignore TYPE E-RABAdmittedItem PRESENCE mandatory }, + ... +} + +E-RABAdmittedItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + dL-transportLayerAddress TransportLayerAddress OPTIONAL, + dL-gTP-TEID GTP-TEID OPTIONAL, + uL-TransportLayerAddress TransportLayerAddress OPTIONAL, + uL-GTP-TEID GTP-TEID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABAdmittedItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABAdmittedItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABFailedtoSetupListHOReqAck ::= E-RAB-IE-ContainerList { {E-RABFailedtoSetupItemHOReqAckIEs} } + +E-RABFailedtoSetupItemHOReqAckIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABFailedtoSetupItemHOReqAck CRITICALITY ignore TYPE E-RABFailedToSetupItemHOReqAck PRESENCE mandatory }, + ... +} + +E-RABFailedToSetupItemHOReqAck ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { E-RABFailedToSetupItemHOReqAckExtIEs} } OPTIONAL, + ... +} + +E-RABFailedToSetupItemHOReqAckExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Handover Failure +-- +-- ************************************************************** + +HandoverFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverFailureIEs} }, + ... +} + +HandoverFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER NOTIFICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Notify +-- +-- ************************************************************** + +HandoverNotify ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverNotifyIEs} }, + ... +} + +HandoverNotifyIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- PATH SWITCH REQUEST ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Path Switch Request +-- +-- ************************************************************** + +PathSwitchRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestIEs} }, + ... +} + +PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABToBeSwitchedDLList CRITICALITY reject TYPE E-RABToBeSwitchedDLList PRESENCE mandatory}| + { ID id-SourceMME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY ignore TYPE UESecurityCapabilities PRESENCE mandatory}| + { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional}| + { ID id-SourceMME-GUMMEI CRITICALITY ignore TYPE GUMMEI PRESENCE optional}, + ... +} + +E-RABToBeSwitchedDLList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedDLItemIEs} } + +E-RABToBeSwitchedDLItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSwitchedDLItem CRITICALITY reject TYPE E-RABToBeSwitchedDLItem PRESENCE mandatory }, + ... +} + +E-RABToBeSwitchedDLItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedDLItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSwitchedDLItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Path Switch Request Acknowledge +-- +-- ************************************************************** + +PathSwitchRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestAcknowledgeIEs} }, + ... +} + +PathSwitchRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional}| + { ID id-E-RABToBeSwitchedULList CRITICALITY ignore TYPE E-RABToBeSwitchedULList PRESENCE optional}| + { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}, + ... +} + +E-RABToBeSwitchedULList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedULItemIEs} } + +E-RABToBeSwitchedULItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSwitchedULItem CRITICALITY ignore TYPE E-RABToBeSwitchedULItem PRESENCE mandatory }, + ... +} + +E-RABToBeSwitchedULItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedULItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSwitchedULItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Path Switch Request Failure +-- +-- ************************************************************** + +PathSwitchRequestFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestFailureIEs} }, + ... +} + +PathSwitchRequestFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER CANCEL ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Cancel +-- +-- ************************************************************** + +HandoverCancel ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCancelIEs} }, + ... +} + +HandoverCancelIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Handover Cancel Request Acknowledge +-- +-- ************************************************************** + +HandoverCancelAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCancelAcknowledgeIEs} }, + ... +} + +HandoverCancelAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- E-RAB SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Setup Request +-- +-- ************************************************************** + +E-RABSetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABSetupRequestIEs} }, + ... +} + +E-RABSetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeSetupListBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupListBearerSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupListBearerSUReq ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemBearerSUReqIEs} } + +E-RABToBeSetupItemBearerSUReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupItemBearerSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemBearerSUReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABlevelQoSParameters E-RABLevelQoSParameters, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + nAS-PDU NAS-PDU, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemBearerSUReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeSetupItemBearerSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- E-RAB Setup Response +-- +-- ************************************************************** + +E-RABSetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABSetupResponseIEs} }, + ... +} + +E-RABSetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABSetupListBearerSURes CRITICALITY ignore TYPE E-RABSetupListBearerSURes PRESENCE optional }| + { ID id-E-RABFailedToSetupListBearerSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABSetupListBearerSURes ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemBearerSUResIEs} } + +E-RABSetupItemBearerSUResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABSetupItemBearerSURes CRITICALITY ignore TYPE E-RABSetupItemBearerSURes PRESENCE mandatory }, + ... +} + +E-RABSetupItemBearerSURes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemBearerSUResExtIEs} } OPTIONAL, + ... +} + + +E-RABSetupItemBearerSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- E-RAB MODIFY ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Modify Request +-- +-- ************************************************************** + +E-RABModifyRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABModifyRequestIEs} }, + ... +} + +E-RABModifyRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeModifiedListBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedListBearerModReq PRESENCE mandatory }, + ... +} + +E-RABToBeModifiedListBearerModReq ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeModifiedItemBearerModReqIEs} } + +E-RABToBeModifiedItemBearerModReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeModifiedItemBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModReq PRESENCE mandatory }, + ... +} + +E-RABToBeModifiedItemBearerModReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABLevelQoSParameters E-RABLevelQoSParameters, + nAS-PDU NAS-PDU, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeModifyItemBearerModReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeModifyItemBearerModReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- E-RAB Modify Response +-- +-- ************************************************************** + +E-RABModifyResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABModifyResponseIEs} }, + ... +} + +E-RABModifyResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABModifyListBearerModRes CRITICALITY ignore TYPE E-RABModifyListBearerModRes PRESENCE optional }| + { ID id-E-RABFailedToModifyList CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABModifyListBearerModRes ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModResIEs} } + +E-RABModifyItemBearerModResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABModifyItemBearerModRes CRITICALITY ignore TYPE E-RABModifyItemBearerModRes PRESENCE mandatory }, + ... +} + +E-RABModifyItemBearerModRes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModResExtIEs} } OPTIONAL, + ... +} + + +E-RABModifyItemBearerModResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + + +-- ************************************************************** +-- +-- E-RAB RELEASE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Release Command +-- +-- ************************************************************** + +E-RABReleaseCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABReleaseCommandIEs} }, + ... +} + +E-RABReleaseCommandIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }| + { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- E-RAB Release Response +-- +-- ************************************************************** + +E-RABReleaseResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { E-RABReleaseResponseIEs } }, + ... +} + +E-RABReleaseResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABReleaseListBearerRelComp CRITICALITY ignore TYPE E-RABReleaseListBearerRelComp PRESENCE optional }| + { ID id-E-RABFailedToReleaseList CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABReleaseListBearerRelComp ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABReleaseItemBearerRelCompIEs} } + +E-RABReleaseItemBearerRelCompIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABReleaseItemBearerRelComp CRITICALITY ignore TYPE E-RABReleaseItemBearerRelComp PRESENCE mandatory }, + ... +} + +E-RABReleaseItemBearerRelComp ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABReleaseItemBearerRelCompExtIEs} } OPTIONAL, + ... +} + + +E-RABReleaseItemBearerRelCompExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- E-RAB RELEASE INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Release Indication +-- +-- ************************************************************** + +E-RABReleaseIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABReleaseIndicationIEs} }, + ... +} + +E-RABReleaseIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }, + ... +} +-- ************************************************************** +-- +-- INITIAL CONTEXT SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Initial Context Setup Request +-- +-- ************************************************************** + +InitialContextSetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupRequestIEs} }, + ... +} + +InitialContextSetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory}| + { ID id-E-RABToBeSetupListCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupListCtxtSUReq PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory}| + { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE mandatory}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| + { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional}| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional}, + ... +} + + + + +E-RABToBeSetupListCtxtSUReq ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemCtxtSUReqIEs} } + +E-RABToBeSetupItemCtxtSUReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupItemCtxtSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemCtxtSUReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABlevelQoSParameters E-RABLevelQoSParameters, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + nAS-PDU NAS-PDU OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemCtxtSUReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeSetupItemCtxtSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- Initial Context Setup Response +-- +-- ************************************************************** + +InitialContextSetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupResponseIEs} }, + ... +} + +InitialContextSetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABSetupListCtxtSURes CRITICALITY ignore TYPE E-RABSetupListCtxtSURes PRESENCE mandatory }| + { ID id-E-RABFailedToSetupListCtxtSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABSetupListCtxtSURes ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemCtxtSUResIEs} } + +E-RABSetupItemCtxtSUResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABSetupItemCtxtSURes CRITICALITY ignore TYPE E-RABSetupItemCtxtSURes PRESENCE mandatory }, + ... +} + +E-RABSetupItemCtxtSURes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemCtxtSUResExtIEs} } OPTIONAL, + ... +} + + +E-RABSetupItemCtxtSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Initial Context Setup Failure +-- +-- ************************************************************** + +InitialContextSetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupFailureIEs} }, + ... +} + +InitialContextSetupFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- PAGING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + + +-- ************************************************************** +-- +-- Paging +-- +-- ************************************************************** + +Paging ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{PagingIEs}}, + ... +} + +PagingIEs S1AP-PROTOCOL-IES ::= { + { ID id-UEIdentityIndexValue CRITICALITY ignore TYPE UEIdentityIndexValue PRESENCE mandatory}| + { ID id-UEPagingID CRITICALITY ignore TYPE UEPagingID PRESENCE mandatory}| + { ID id-pagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional}| + { ID id-CNDomain CRITICALITY ignore TYPE CNDomain PRESENCE mandatory}| + { ID id-TAIList CRITICALITY ignore TYPE TAIList PRESENCE mandatory}| + { ID id-CSG-IdList CRITICALITY ignore TYPE CSG-IdList PRESENCE optional}| + { ID id-PagingPriority CRITICALITY ignore TYPE PagingPriority PRESENCE optional}, + ... +} + +TAIList::= SEQUENCE (SIZE(1.. maxnoofTAIs)) OF ProtocolIE-SingleContainer {{TAIItemIEs}} + +TAIItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-TAIItem CRITICALITY ignore TYPE TAIItem PRESENCE mandatory }, + ... +} + +TAIItem ::= SEQUENCE { + tAI TAI, + iE-Extensions ProtocolExtensionContainer { {TAIItemExtIEs} } OPTIONAL, + ... +} + + +TAIItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- UE CONTEXT RELEASE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE CONTEXT RELEASE REQUEST +-- +-- ************************************************************** + +UEContextReleaseRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseRequest-IEs}}, + ... +} + +UEContextReleaseRequest-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-GWContextReleaseIndication CRITICALITY reject TYPE GWContextReleaseIndication PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- UE Context Release Command +-- +-- ************************************************************** + +UEContextReleaseCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseCommand-IEs}}, + ... +} + +UEContextReleaseCommand-IEs S1AP-PROTOCOL-IES ::= { + { ID id-UE-S1AP-IDs CRITICALITY reject TYPE UE-S1AP-IDs PRESENCE mandatory} | + + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} , + ... +} + +-- ************************************************************** +-- +-- UE Context Release Complete +-- +-- ************************************************************** + +UEContextReleaseComplete ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseComplete-IEs}}, + ... +} + +UEContextReleaseComplete-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- UE CONTEXT MODIFICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Modification Request +-- +-- ************************************************************** + +UEContextModificationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationRequestIEs} }, + ... +} + +UEContextModificationRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE optional}| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| + { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional}| + { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}, + ... +} +-- ************************************************************** +-- +-- UE Context Modification Response +-- +-- ************************************************************** + +UEContextModificationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationResponseIEs} }, + ... +} + +UEContextModificationResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +}-- ************************************************************** +-- +-- UE Context Modification Failure +-- +-- ************************************************************** + +UEContextModificationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationFailureIEs} }, + ... +} + +UEContextModificationFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- NAS TRANSPORT ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- DOWNLINK NAS TRANSPORT +-- +-- ************************************************************** + +DownlinkNASTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkNASTransport-IEs}}, + ... +} + +DownlinkNASTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory} | + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional} | + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- INITIAL UE MESSAGE +-- +-- ************************************************************** + +InitialUEMessage ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{InitialUEMessage-IEs}}, + ... +} + +InitialUEMessage-IEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory} | + { ID id-TAI CRITICALITY reject TYPE TAI PRESENCE mandatory} | + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory} | + { ID id-RRC-Establishment-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE mandatory} | + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE optional} | + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional} | + { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE optional} | + { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional} | + { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional} | + { ID id-RelayNode-Indicator CRITICALITY reject TYPE RelayNode-Indicator PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- UPLINK NAS TRANSPORT +-- +-- ************************************************************** + +UplinkNASTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkNASTransport-IEs}}, + ... +} + +UplinkNASTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory} | + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory} | + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory} | + { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}, + ... +} +-- ************************************************************** +-- +-- NAS NON DELIVERY INDICATION +-- +-- ************************************************************** + +NASNonDeliveryIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{NASNonDeliveryIndication-IEs}}, + ... +} + +NASNonDeliveryIndication-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory} | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} , + ... +} + +-- ************************************************************** +-- +-- RESET ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Reset +-- +-- ************************************************************** + +Reset ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ResetIEs} }, + ... +} + +ResetIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-ResetType CRITICALITY reject TYPE ResetType PRESENCE mandatory }, + ... +} + +ResetType ::= CHOICE { + s1-Interface ResetAll, + partOfS1-Interface UE-associatedLogicalS1-ConnectionListRes, + ... +} + + + +ResetAll ::= ENUMERATED { + reset-all, + ... +} + +UE-associatedLogicalS1-ConnectionListRes ::= SEQUENCE (SIZE(1.. maxNrOfIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemRes } } + +UE-associatedLogicalS1-ConnectionItemRes S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY reject TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory }, + ... +} + + +-- ************************************************************** +-- +-- Reset Acknowledge +-- +-- ************************************************************** + +ResetAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} }, + ... +} + +ResetAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionListResAck CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionListResAck PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +UE-associatedLogicalS1-ConnectionListResAck ::= SEQUENCE (SIZE(1.. maxNrOfIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemResAck } } + +UE-associatedLogicalS1-ConnectionItemResAck S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- ERROR INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Error Indication +-- +-- ************************************************************** + +ErrorIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ErrorIndicationIEs}}, + ... +} + +ErrorIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional } | + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE optional } | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } , + ... +} + +-- ************************************************************** +-- +-- S1 SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- S1 Setup Request +-- +-- ************************************************************** + +S1SetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupRequestIEs} }, + ... +} + +S1SetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}| + { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional}| + { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE mandatory}| + { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE mandatory}| + { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- S1 Setup Response +-- +-- ************************************************************** + +S1SetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupResponseIEs} }, + ... +} + + +S1SetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional}| + { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE mandatory}| + { ID id-RelativeMMECapacity CRITICALITY ignore TYPE RelativeMMECapacity PRESENCE mandatory}| + { ID id-MMERelaySupportIndicator CRITICALITY ignore TYPE MMERelaySupportIndicator PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- S1 Setup Failure +-- +-- ************************************************************** + +S1SetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupFailureIEs} }, + ... +} + +S1SetupFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Configuration Update +-- +-- ************************************************************** + +ENBConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateIEs} }, + ... +} + +ENBConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= { + { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional }| + { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE optional }| + { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}| + { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- eNB Configuration Update Acknowledge +-- +-- ************************************************************** + +ENBConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateAcknowledgeIEs} }, + ... +} + + +ENBConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- eNB Configuration Update Failure +-- +-- ************************************************************** + +ENBConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateFailureIEs} }, + ... +} + +ENBConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, +... +} + + +-- ************************************************************** +-- +-- MME Configuration UPDATE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Configuration Update +-- +-- ************************************************************** + +MMEConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateIEs} }, + ... +} + +MMEConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= { + { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }| + { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE optional }| + { ID id-RelativeMMECapacity CRITICALITY reject TYPE RelativeMMECapacity PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- MME Configuration Update Acknowledge +-- +-- ************************************************************** + +MMEConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateAcknowledgeIEs} }, + ... +} + + +MMEConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- MME Configuration Update Failure +-- +-- ************************************************************** + +MMEConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateFailureIEs} }, + ... +} + +MMEConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- DOWNLINK S1 CDMA2000 TUNNELING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Downlink S1 CDMA2000 Tunneling +-- +-- ************************************************************** + +DownlinkS1cdma2000tunneling ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {DownlinkS1cdma2000tunnelingIEs} }, + ... +} + +DownlinkS1cdma2000tunnelingIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional } | + { ID id-cdma2000HOStatus CRITICALITY ignore TYPE Cdma2000HOStatus PRESENCE optional } | + { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory } | + { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UPLINK S1 CDMA2000 TUNNELING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Uplink S1 CDMA2000 Tunneling +-- +-- ************************************************************** + +UplinkS1cdma2000tunneling ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {UplinkS1cdma2000tunnelingIEs} }, + ... +} + +UplinkS1cdma2000tunnelingIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory } | + { ID id-cdma2000SectorID CRITICALITY reject TYPE Cdma2000SectorID PRESENCE mandatory } | + { ID id-cdma2000HORequiredIndication CRITICALITY ignore TYPE Cdma2000HORequiredIndication PRESENCE optional } | + { ID id-cdma2000OneXSRVCCInfo CRITICALITY reject TYPE Cdma2000OneXSRVCCInfo PRESENCE optional } | + { ID id-cdma2000OneXRAND CRITICALITY reject TYPE Cdma2000OneXRAND PRESENCE optional } | + { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory }| + { ID id-EUTRANRoundTripDelayEstimationInfo CRITICALITY ignore TYPE EUTRANRoundTripDelayEstimationInfo PRESENCE optional}, + -- Extension for Release 9 to assist target HRPD access with the acquisition of the UE -- + ... +} + + +-- ************************************************************** +-- +-- UE CAPABILITY INFO INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Capability Info Indication +-- +-- ************************************************************** + +UECapabilityInfoIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UECapabilityInfoIndicationIEs} }, + ... +} + +UECapabilityInfoIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE mandatory } , + ... +} + +-- ************************************************************** +-- +-- eNB STATUS TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Status Transfer +-- +-- ************************************************************** + +ENBStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBStatusTransferIEs} }, + ... +} + +ENBStatusTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory} , + ... +} + + +-- ************************************************************** +-- +-- MME STATUS TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Status Transfer +-- +-- ************************************************************** + +MMEStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEStatusTransferIEs} }, + ... +} + +MMEStatusTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory} , + ... +} + + +-- ************************************************************** +-- +-- TRACE ELEMENTARY PROCEDURES +-- +-- ************************************************************** +-- ************************************************************** +-- +-- Trace Start +-- +-- ************************************************************** + +TraceStart ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {TraceStartIEs} }, + ... +} + +TraceStartIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Trace Failure Indication +-- +-- ************************************************************** + +TraceFailureIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {TraceFailureIndicationIEs} }, + ... +} + +TraceFailureIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory} | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} , + ... +} + +-- ************************************************************** +-- +-- DEACTIVATE TRACE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- DEACTIVATE TRACE +-- +-- ************************************************************** + +DeactivateTrace ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { DeactivateTraceIEs} }, + ... +} + +DeactivateTraceIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- CELL TRAFFIC TRACE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- CELL TRAFFIC TRACE +-- +-- ************************************************************** + +CellTrafficTrace ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { CellTrafficTraceIEs } }, + ... +} + +CellTrafficTraceIEs S1AP-PROTOCOL-IES ::= { + {ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + {ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + {ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory}| + {ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + {ID id-TraceCollectionEntityIPAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE mandatory}| + {ID id-PrivacyIndicator CRITICALITY ignore TYPE PrivacyIndicator PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- LOCATION ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Location Reporting Control +-- +-- ************************************************************** + +LocationReportingControl ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportingControlIEs} }, + ... +} + +LocationReportingControlIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory } , + ... +} + +-- ************************************************************** +-- +-- Location Report Failure Indication +-- +-- ************************************************************** + +LocationReportingFailureIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportingFailureIndicationIEs} }, + ... +} + +LocationReportingFailureIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- Location Report +-- +-- ************************************************************** + +LocationReport ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportIEs} }, + ... +} + +LocationReportIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory} | + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory} | + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory} , + ... +} + +-- ************************************************************** +-- +-- OVERLOAD ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Overload Start +-- +-- ************************************************************** + +OverloadStart ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {OverloadStartIEs} }, + ... +} + +OverloadStartIEs S1AP-PROTOCOL-IES ::= { + { ID id-OverloadResponse CRITICALITY reject TYPE OverloadResponse PRESENCE mandatory}| + { ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional}| + { ID id-TrafficLoadReductionIndication CRITICALITY ignore TYPE TrafficLoadReductionIndication PRESENCE optional}, + ... +} +-- ************************************************************** +-- +-- Overload Stop +-- +-- ************************************************************** + +OverloadStop ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {OverloadStopIEs} }, + ... +} + +OverloadStopIEs S1AP-PROTOCOL-IES ::= { +{ ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- WRITE-REPLACE WARNING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Write-Replace Warning Request +-- +-- ************************************************************** + + +WriteReplaceWarningRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {WriteReplaceWarningRequestIEs} }, + ... +} + +WriteReplaceWarningRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional }| + { ID id-RepetitionPeriod CRITICALITY reject TYPE RepetitionPeriod PRESENCE mandatory }| + { ID id-ExtendedRepetitionPeriod CRITICALITY reject TYPE ExtendedRepetitionPeriod PRESENCE optional }| + { ID id-NumberofBroadcastRequest CRITICALITY reject TYPE NumberofBroadcastRequest PRESENCE mandatory }| + { ID id-WarningType CRITICALITY ignore TYPE WarningType PRESENCE optional }| + { ID id-WarningSecurityInfo CRITICALITY ignore TYPE WarningSecurityInfo PRESENCE optional }| + { ID id-DataCodingScheme CRITICALITY ignore TYPE DataCodingScheme PRESENCE optional }| + { ID id-WarningMessageContents CRITICALITY ignore TYPE WarningMessageContents PRESENCE optional }| + { ID id-ConcurrentWarningMessageIndicator CRITICALITY reject TYPE ConcurrentWarningMessageIndicator PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- Write-Replace Warning Response +-- +-- ************************************************************** + +WriteReplaceWarningResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {WriteReplaceWarningResponseIEs} }, + ... +} + +WriteReplaceWarningResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-BroadcastCompletedAreaList CRITICALITY ignore TYPE BroadcastCompletedAreaList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- eNB DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Direct Information Transfer +-- +-- ************************************************************** + +ENBDirectInformationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ ENBDirectInformationTransferIEs}}, + ... +} + +ENBDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-Inter-SystemInformationTransferTypeEDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory} , + ... +} + +Inter-SystemInformationTransferType ::= CHOICE { + rIMTransfer RIMTransfer, + ... +} + +-- ************************************************************** +-- +-- MME DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Direct Information Transfer +-- +-- ************************************************************** + +MMEDirectInformationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ MMEDirectInformationTransferIEs}}, + ... +} + +MMEDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-Inter-SystemInformationTransferTypeMDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory} , + ... +} +-- ************************************************************** +-- +-- eNB CONFIGURATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Configuration Transfer +-- +-- ************************************************************** + +ENBConfigurationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ ENBConfigurationTransferIEs}}, + ... +} + +ENBConfigurationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-SONConfigurationTransferECT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional} , + ... +} + +-- ************************************************************** +-- +-- MME CONFIGURATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Configuration Transfer +-- +-- ************************************************************** + +MMEConfigurationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ MMEConfigurationTransferIEs}}, + ... +} + +MMEConfigurationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-SONConfigurationTransferMCT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional} , + ... +} + +-- ************************************************************** +-- +-- PRIVATE MESSAGE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Private Message +-- +-- ************************************************************** + +PrivateMessage ::= SEQUENCE { + privateIEs PrivateIE-Container {{PrivateMessageIEs}}, + ... +} + +PrivateMessageIEs S1AP-PRIVATE-IES ::= { + ... +} + +-- ************************************************************** +-- +-- Kill Request +-- +-- ************************************************************** + + +KillRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {KillRequestIEs} }, + ... +} + +KillRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- Kill Response +-- +-- ************************************************************** + +KillResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {KillResponseIEs} }, + ... +} + +KillResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-BroadcastCancelledAreaList CRITICALITY ignore TYPE BroadcastCancelledAreaList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- LPPA TRANSPORT ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- DOWNLINK UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +DownlinkUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkUEAssociatedLPPaTransport-IEs}}, + ... +} + +DownlinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory } | + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory } , + ... +} + +-- ************************************************************** +-- +-- UPLINK UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +UplinkUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkUEAssociatedLPPaTransport-IEs}}, + ... +} + +UplinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory} | + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory} , + ... +} + +-- ************************************************************** +-- +-- DOWNLINK NON UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +DownlinkNonUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkNonUEAssociatedLPPaTransport-IEs}}, + ... +} + +DownlinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory} | + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory} , + ... +} + +-- ************************************************************** +-- +-- UPLINK NON UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +UplinkNonUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkNonUEAssociatedLPPaTransport-IEs}}, + ... +} + +UplinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory} | + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory} , + ... +} + +END + + + +-- ************************************************************** +-- +-- Information Element Definitions +-- +-- ************************************************************** + +S1AP-IEs { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-IEs (2) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + id-E-RABInformationListItem, + id-E-RABItem, + id-Bearers-SubjectToStatusTransfer-Item, + id-Time-Synchronization-Info, + id-x2TNLConfigurationInfo, + id-eNBX2ExtendedTransportLayerAddresses, + id-MDTConfiguration, + maxNrOfCSGs, + maxNrOfE-RABs, + maxNrOfErrors, + maxnoofBPLMNs, + maxnoofPLMNsPerMME, + maxnoofTACs, + maxnoofEPLMNs, + maxnoofEPLMNsPlusOne, + maxnoofForbLACs, + maxnoofForbTACs, + maxnoofCells, + maxnoofCellID, + maxnoofEmergencyAreaID, + maxnoofTAIforWarning, + maxnoofCellinTAI, + maxnoofCellinEAI, + maxnoofeNBX2TLAs, + maxnoofeNBX2ExtTLAs, + maxnoofeNBX2GTPTLAs, + maxnoofRATs, + maxnoofGroupIDs, + maxnoofMMECs, + maxnoofTAforMDT, + maxnoofCellIDforMDT + + + +FROM S1AP-Constants + + Criticality, + ProcedureCode, + ProtocolIE-ID, + TriggeringMessage +FROM S1AP-CommonDataTypes + + ProtocolExtensionContainer{}, + S1AP-PROTOCOL-EXTENSION, + ProtocolIE-SingleContainer{}, + S1AP-PROTOCOL-IES + +FROM S1AP-Containers; + +-- A + +AreaScopeOfMDT ::= CHOICE { + cellBased CellBasedMDT, + tABased TABasedMDT, + pLMNWide NULL, + ... +} + +AllocationAndRetentionPriority ::= SEQUENCE { + priorityLevel PriorityLevel, + pre-emptionCapability Pre-emptionCapability, + pre-emptionVulnerability Pre-emptionVulnerability, + iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, + ... +} + +AllocationAndRetentionPriority-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- B + +Bearers-SubjectToStatusTransferList ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { { Bearers-SubjectToStatusTransfer-ItemIEs } } + +Bearers-SubjectToStatusTransfer-ItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-Bearers-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE Bearers-SubjectToStatusTransfer-Item PRESENCE mandatory }, + ... +} + +Bearers-SubjectToStatusTransfer-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-COUNTvalue COUNTvalue, + dL-COUNTvalue COUNTvalue, + receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {Bearers-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL, + ... +} + +Bearers-SubjectToStatusTransfer-ItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +BitRate ::= INTEGER (0..10000000000) + +BPLMNs ::= SEQUENCE (SIZE(1.. maxnoofBPLMNs)) OF PLMNidentity + +BroadcastCancelledAreaList ::= CHOICE { + cellID-Cancelled CellID-Cancelled, + tAI-Cancelled TAI-Cancelled, + emergencyAreaID-Cancelled EmergencyAreaID-Cancelled, + ... +} + +BroadcastCompletedAreaList ::= CHOICE { + cellID-Broadcast CellID-Broadcast, + tAI-Broadcast TAI-Broadcast, + emergencyAreaID-Broadcast EmergencyAreaID-Broadcast, + ... +} + + +-- C + +CancelledCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CancelledCellinEAI-Item + +CancelledCellinEAI-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CancelledCellinEAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CancelledCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CancelledCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CancelledCellinTAI-Item + +CancelledCellinTAI-Item ::= SEQUENCE{ + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CancelledCellinTAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CancelledCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Cause ::= CHOICE { + radioNetwork CauseRadioNetwork, + transport CauseTransport, + nas CauseNas, + protocol CauseProtocol, + misc CauseMisc, + ... +} + +CauseMisc ::= ENUMERATED { + control-processing-overload, + not-enough-user-plane-processing-resources, + hardware-failure, + om-intervention, + unspecified, + unknown-PLMN, +... +} + +CauseProtocol ::= ENUMERATED { + transfer-syntax-error, + abstract-syntax-error-reject, + abstract-syntax-error-ignore-and-notify, + message-not-compatible-with-receiver-state, + semantic-error, + abstract-syntax-error-falsely-constructed-message, + unspecified, + ... +} + +CauseRadioNetwork ::= ENUMERATED { + unspecified, + tx2relocoverall-expiry, + successful-handover, + release-due-to-eutran-generated-reason, + handover-cancelled, + partial-handover, + ho-failure-in-target-EPC-eNB-or-target-system, + ho-target-not-allowed, + tS1relocoverall-expiry, + tS1relocprep-expiry, + cell-not-available, + unknown-targetID, + no-radio-resources-available-in-target-cell, + unknown-mme-ue-s1ap-id, + unknown-enb-ue-s1ap-id, + unknown-pair-ue-s1ap-id, + handover-desirable-for-radio-reason, + time-critical-handover, + resource-optimisation-handover, + reduce-load-in-serving-cell, + user-inactivity, + radio-connection-with-ue-lost, + load-balancing-tau-required, + cs-fallback-triggered, + ue-not-available-for-ps-service, + radio-resources-not-available, + failure-in-radio-interface-procedure, + invalid-qos-combination, + interrat-redirection, + interaction-with-other-procedure, + unknown-E-RAB-ID, + multiple-E-RAB-ID-instances, + encryption-and-or-integrity-protection-algorithms-not-supported, + s1-intra-system-handover-triggered, + s1-inter-system-handover-triggered, + x2-handover-triggered, + ..., + redirection-towards-1xRTT, + not-supported-QCI-value, + invalid-CSG-Id + +} + +CauseTransport ::= ENUMERATED { + transport-resource-unavailable, + unspecified, + ... +} + +CauseNas ::= ENUMERATED { + normal-release, + authentication-failure, + detach, + unspecified, + ..., + csg-subscription-expiry +} + +CellAccessMode ::= ENUMERATED { + hybrid, + ... +} + +CellIdentity ::= BIT STRING (SIZE (28)) + +CellID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Broadcast-Item + +CellID-Broadcast-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CellID-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +CellID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellID-Cancelled::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Cancelled-Item + +CellID-Cancelled-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CellID-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +CellID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellBasedMDT::= SEQUENCE { + cellIdListforMDT CellIdListforMDT, + iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +CellBasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF EUTRAN-CGI + +Cdma2000PDU ::= OCTET STRING + +Cdma2000RATType ::= ENUMERATED { + hRPD, + onexRTT, + ... +} + +Cdma2000SectorID ::= OCTET STRING + +Cdma2000HOStatus ::= ENUMERATED { + hOSuccess, + hOFailure, + ... +} + +Cdma2000HORequiredIndication ::= ENUMERATED { + true, + ... +} + +Cdma2000OneXSRVCCInfo ::= SEQUENCE { + cdma2000OneXMEID Cdma2000OneXMEID, + cdma2000OneXMSI Cdma2000OneXMSI, + cdma2000OneXPilot Cdma2000OneXPilot, + iE-Extensions ProtocolExtensionContainer { {Cdma2000OneXSRVCCInfo-ExtIEs} } OPTIONAL, + ... +} + +Cdma2000OneXSRVCCInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Cdma2000OneXMEID ::= OCTET STRING + +Cdma2000OneXMSI ::= OCTET STRING + +Cdma2000OneXPilot ::= OCTET STRING + +Cdma2000OneXRAND ::= OCTET STRING + + +Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ...} + +CellType ::= SEQUENCE { + cell-Size Cell-Size, + iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL, + ... +} + +CellType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CGI ::= SEQUENCE { + pLMNidentity PLMNidentity, + lAC LAC, + cI CI, + rAC RAC OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL, + ... + } + +CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CI ::= OCTET STRING (SIZE (2)) + +CNDomain ::= ENUMERATED { + ps, + cs +} + +ConcurrentWarningMessageIndicator ::= ENUMERATED { + true +} + +Correlation-ID ::= OCTET STRING (SIZE (4)) + +CSFallbackIndicator ::= ENUMERATED { + cs-fallback-required, + ..., + cs-fallback-high-priority +} + +CSG-Id ::= BIT STRING (SIZE (27)) + + +CSG-IdList ::= SEQUENCE (SIZE (1..maxNrOfCSGs)) OF CSG-IdList-Item + +CSG-IdList-Item ::= SEQUENCE { + cSG-Id CSG-Id, + iE-Extensions ProtocolExtensionContainer { {CSG-IdList-Item-ExtIEs} } OPTIONAL, + ... +} + +CSG-IdList-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CSGMembershipStatus ::= ENUMERATED { + member, + not-member +} + + +COUNTvalue ::= SEQUENCE { + pDCP-SN PDCP-SN, + hFN HFN, + iE-Extensions ProtocolExtensionContainer { {COUNTvalue-ExtIEs} } OPTIONAL, + ... +} +COUNTvalue-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-ExtIEs}} OPTIONAL, + ... +} + +CriticalityDiagnostics-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF CriticalityDiagnostics-IE-Item + +CriticalityDiagnostics-IE-Item ::= SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-IE-Item-ExtIEs}} OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- D + +DataCodingScheme ::= BIT STRING (SIZE (8)) + +DL-Forwarding ::= ENUMERATED { + dL-Forwarding-proposed, + ... +} + +Direct-Forwarding-Path-Availability ::= ENUMERATED { + directPathAvailable, + ... +} + +Data-Forwarding-Not-Possible ::= ENUMERATED { + data-Forwarding-not-Possible, + ... +} + +-- E + +ECGIList ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF EUTRAN-CGI + +EmergencyAreaIDList ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID + +EmergencyAreaID ::= OCTET STRING (SIZE (3)) + +EmergencyAreaID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Broadcast-Item + +EmergencyAreaID-Broadcast-Item ::= SEQUENCE { + emergencyAreaID EmergencyAreaID, + completedCellinEAI CompletedCellinEAI, + iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +EmergencyAreaID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +EmergencyAreaID-Cancelled ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Cancelled-Item + +EmergencyAreaID-Cancelled-Item ::= SEQUENCE { + emergencyAreaID EmergencyAreaID, + cancelledCellinEAI CancelledCellinEAI, + iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +EmergencyAreaID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompletedCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CompletedCellinEAI-Item + +CompletedCellinEAI-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CompletedCellinEAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CompletedCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENB-ID ::= CHOICE { + macroENB-ID BIT STRING (SIZE(20)), + homeENB-ID BIT STRING (SIZE(28)), + ... +} + +GERAN-Cell-ID ::= SEQUENCE { + lAI LAI, + rAC RAC, + cI CI, + iE-Extensions ProtocolExtensionContainer { { GERAN-Cell-ID-ExtIEs} } OPTIONAL, + ... +} + +GERAN-Cell-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Global-ENB-ID ::= SEQUENCE { + pLMNidentity PLMNidentity, + eNB-ID ENB-ID, + iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL, + ... +} + +GlobalENB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +GUMMEIList::= SEQUENCE (SIZE (1.. maxnoofMMECs)) OF GUMMEI + +ENB-StatusTransfer-TransparentContainer ::= SEQUENCE { + bearers-SubjectToStatusTransferList Bearers-SubjectToStatusTransferList, + iE-Extensions ProtocolExtensionContainer { {ENB-StatusTransfer-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +ENB-StatusTransfer-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENB-UE-S1AP-ID ::= INTEGER (0..16777215) + +ENBname ::= PrintableString (SIZE (1..150,...)) + +ENBX2TLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2TLAs)) OF TransportLayerAddress + +EncryptionAlgorithms ::= BIT STRING (SIZE (16,...)) + +EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMNidentity +EventType ::= ENUMERATED { + direct, + change-of-serve-cell, + stop-change-of-serve-cell, + ... +} + +E-RAB-ID ::= INTEGER (0..15, ...) + +E-RABInformationList ::= SEQUENCE (SIZE (1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { { E-RABInformationListIEs } } + +E-RABInformationListIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABInformationListItem CRITICALITY ignore TYPE E-RABInformationListItem PRESENCE mandatory }, + ... +} + +E-RABInformationListItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-Forwarding DL-Forwarding OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABInformationListItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABInformationListItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABList ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABItemIEs} } + +E-RABItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABItem CRITICALITY ignore TYPE E-RABItem PRESENCE mandatory }, + ... +} + +E-RABItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RABItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +E-RABLevelQoSParameters ::= SEQUENCE { + qCI QCI, + allocationRetentionPriority AllocationAndRetentionPriority, + gbrQosInformation GBR-QosInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABQoSParameters-ExtIEs} } OPTIONAL, + ... +} + +E-RABQoSParameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +EUTRAN-CGI ::= SEQUENCE { + pLMNidentity PLMNidentity, + cell-ID CellIdentity, + iE-Extensions ProtocolExtensionContainer { {EUTRAN-CGI-ExtIEs} } OPTIONAL, + ... +} + +EUTRAN-CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +EUTRANRoundTripDelayEstimationInfo ::= INTEGER (0..2047) + +ExtendedRNC-ID ::= INTEGER (4096..65535) + +ExtendedRepetitionPeriod ::= INTEGER (4096..131071) + +-- F + +ForbiddenInterRATs ::= ENUMERATED { + all, + geran, + utran, + cdma2000, + ..., + geranandutran, + cdma2000andutran + +} + +ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item + +ForbiddenTAs-Item ::= SEQUENCE { + pLMN-Identity PLMNidentity, + forbiddenTACs ForbiddenTACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC + +ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item + +ForbiddenLAs-Item ::= SEQUENCE { + pLMN-Identity PLMNidentity, + forbiddenLACs ForbiddenLACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenLAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC + +-- G + +GBR-QosInformation ::= SEQUENCE { + e-RAB-MaximumBitrateDL BitRate, + e-RAB-MaximumBitrateUL BitRate, + e-RAB-GuaranteedBitrateDL BitRate, + e-RAB-GuaranteedBitrateUL BitRate, + iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL, + ... +} + +GBR-QosInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +GTP-TEID ::= OCTET STRING (SIZE (4)) + +GUMMEI ::= SEQUENCE { + pLMN-Identity PLMNidentity, + mME-Group-ID MME-Group-ID, + mME-Code MME-Code, + iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, + ... +} + +GUMMEI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +GWContextReleaseIndication ::= ENUMERATED { + true, + ... +} + +-- H + +HandoverRestrictionList ::= SEQUENCE { + servingPLMN PLMNidentity, + equivalentPLMNs EPLMNs OPTIONAL, + forbiddenTAs ForbiddenTAs OPTIONAL, + forbiddenLAs ForbiddenLAs OPTIONAL, + forbiddenInterRATs ForbiddenInterRATs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, + ... +} + +HandoverRestrictionList-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +HandoverType ::= ENUMERATED { + intralte, + ltetoutran, + ltetogeran, + utrantolte, + gerantolte, + ... +} + +HFN ::= INTEGER (0..1048575) + +-- I + +ImmediateMDT ::= SEQUENCE { + measurementsToActivate MeasurementsToActivate, + reportingTriggerMDT ReportingTriggerMDT, + thresholdeventA2 ThresholdEventA2 OPTIONAL, +-- Included in case of event-triggered reporting for measurement M1 + periodicReportingMDT PeriodicReportingMDT OPTIONAL, +-- Included in case of periodic reporting + iE-Extensions ProtocolExtensionContainer { { ImmediateMDT-ExtIEs} } OPTIONAL, + ... +} + +ImmediateMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +IMSI ::= OCTET STRING (SIZE (3..8)) + +IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...)) + +InterfacesToTrace ::= BIT STRING (SIZE (8)) + + + +-- J +-- K +-- L + + +LAC ::= OCTET STRING (SIZE (2)) + +LAI ::= SEQUENCE { + pLMNidentity PLMNidentity, + lAC LAC, + iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL, + ... +} + +LAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +LastVisitedCell-Item ::= CHOICE { + e-UTRAN-Cell LastVisitedEUTRANCellInformation, + uTRAN-Cell LastVisitedUTRANCellInformation, + gERAN-Cell LastVisitedGERANCellInformation, + ... +} +LastVisitedEUTRANCellInformation ::= SEQUENCE { + global-Cell-ID EUTRAN-CGI, + cellType CellType, + time-UE-StayedInCell Time-UE-StayedInCell, + iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, + ... +} +LastVisitedEUTRANCellInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} +LastVisitedUTRANCellInformation ::= OCTET STRING + +LastVisitedGERANCellInformation ::= CHOICE { + undefined NULL, + ... +} + +L3-Information ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +LPPa-PDU ::= OCTET STRING + +LoggedMDT ::= SEQUENCE { + loggingInterval LoggingInterval, + loggingDuration LoggingDuration, + iE-Extensions ProtocolExtensionContainer { {LoggedMDT-ExtIEs} } OPTIONAL, + ... +} + +LoggedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +... +} + +LoggingInterval ::= ENUMERATED {ms128, ms256, ms512, ms1024, ms2048, ms3072, ms4096, ms6144} + +LoggingDuration ::= ENUMERATED {m10, m20, m40, m60, m90, m120} + +-- M + +MDT-Activation ::= ENUMERATED { + immediate-MDT-only, + immediate-MDT-and-Trace, + logged-MDT-only, + ... +} + +MDT-Configuration ::= SEQUENCE { + mdt-Activation MDT-Activation, + areaScopeOfMDT AreaScopeOfMDT, + mDTMode MDTMode, + iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTIONAL, + ... +} +MDT-Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ManagementBasedMDTAllowed ::= ENUMERATED {allowed, ...} + +PrivacyIndicator ::= ENUMERATED { + immediate-MDT, + logged-MDT, + ... +} + +MDTMode ::= CHOICE { + immediateMDT ImmediateMDT, + loggedMDT LoggedMDT, + ... +} + +MeasurementsToActivate ::= BIT STRING (SIZE (8)) + +MeasurementThresholdA2 ::= CHOICE { + threshold-RSRP Threshold-RSRP, + threshold-RSRQ Threshold-RSRQ, + ... +} + +MessageIdentifier ::= BIT STRING (SIZE (16)) + +MMEname ::= PrintableString (SIZE (1..150,...)) + +MMERelaySupportIndicator ::= ENUMERATED {true, ...} + +MME-Group-ID ::= OCTET STRING (SIZE (2)) + +MME-Code ::= OCTET STRING (SIZE (1)) + +MME-UE-S1AP-ID ::= INTEGER (0..4294967295) +M-TMSI ::= OCTET STRING (SIZE (4)) + +MSClassmark2 ::= OCTET STRING +MSClassmark3 ::= OCTET STRING + +-- N + +NAS-PDU ::= OCTET STRING + +NASSecurityParametersfromE-UTRAN ::= OCTET STRING + +NASSecurityParameterstoE-UTRAN ::= OCTET STRING + +NumberofBroadcastRequest ::= INTEGER (0..65535) + +NumberOfBroadcasts ::= INTEGER (0..65535) + +-- O +OldBSS-ToNewBSS-Information ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +OverloadAction ::= ENUMERATED { + reject-non-emergency-mo-dt, + reject-rrc-cr-signalling, + permit-emergency-sessions-and-mobile-terminated-services-only, + ..., + permit-high-priority-sessions-and-mobile-terminated-services-only, + reject-delay-tolerant-access +} + +OverloadResponse ::= CHOICE { + overloadAction OverloadAction, + ... +} + + +-- P + +PagingDRX ::= ENUMERATED { + v32, + v64, + v128, + v256, + ... + } + +PagingPriority ::= ENUMERATED { + priolevel1, + priolevel2, + priolevel3, + priolevel4, + priolevel5, + priolevel6, + priolevel7, + priolevel8, + ... +} + +PDCP-SN ::= INTEGER (0..4095) + +PeriodicReportingMDT ::= SEQUENCE { + reportInterval ReportIntervalMDT, + reportAmount ReportAmountMDT, + iE-Extensions ProtocolExtensionContainer { { PeriodicReportingMDT-ExtIEs} } OPTIONAL, + ... +} + +PeriodicReportingMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +PLMNidentity ::= TBCD-STRING + +Pre-emptionCapability ::= ENUMERATED { + shall-not-trigger-pre-emption, + may-trigger-pre-emption +} + +Pre-emptionVulnerability ::= ENUMERATED { + not-pre-emptable, + pre-emptable +} + +PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) + +PS-ServiceNotAvailable ::= ENUMERATED { + ps-service-not-available, + ... +} + +-- Q + +QCI ::= INTEGER (0..255) + +-- R + +ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) + +RelativeMMECapacity ::= INTEGER (0..255) + +RelayNode-Indicator ::= ENUMERATED { + true, + ... +} + +RAC ::= OCTET STRING (SIZE (1)) + +ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity} + +ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60} + +ReportingTriggerMDT ::= ENUMERATED{ + periodic, + a2eventtriggered, + ... +} + +RequestType ::= SEQUENCE { + eventType EventType, + reportArea ReportArea, + iE-Extensions ProtocolExtensionContainer { { RequestType-ExtIEs} } OPTIONAL, + ... +} + + +RequestType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RIMTransfer ::= SEQUENCE { + rIMInformation RIMInformation, + rIMRoutingAddress RIMRoutingAddress OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { RIMTransfer-ExtIEs} } OPTIONAL, + ... +} + +RIMTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RIMInformation ::= OCTET STRING + +RIMRoutingAddress ::= CHOICE { + gERAN-Cell-ID GERAN-Cell-ID, + ..., + targetRNC-ID TargetRNC-ID +} + +ReportArea ::= ENUMERATED { + ecgi, + ... +} + +RepetitionPeriod ::= INTEGER (0..4095) + + +RNC-ID ::= INTEGER (0..4095) + +RRC-Container ::= OCTET STRING + +RRC-Establishment-Cause ::= ENUMERATED { + emergency, + highPriorityAccess, + mt-Access, + mo-Signalling, + mo-Data, + ..., + delay-TolerantAccess +} + +Routing-ID ::= INTEGER (0..255) + +-- S + + +SecurityKey ::= BIT STRING (SIZE(256)) + + + +SecurityContext ::= SEQUENCE { + nextHopChainingCount INTEGER (0..7), + nextHopParameter SecurityKey, + iE-Extensions ProtocolExtensionContainer { { SecurityContext-ExtIEs} } OPTIONAL, + ... +} + + +SecurityContext-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +SerialNumber ::= BIT STRING (SIZE (16)) + +SONInformation ::= CHOICE{ + sONInformationRequest SONInformationRequest, + sONInformationReply SONInformationReply, + ... +} + +SONInformationRequest ::= ENUMERATED { + x2TNL-Configuration-Info, + ..., + time-Synchronization-Info} + +SONInformationReply ::= SEQUENCE { + x2TNLConfigurationInfo X2TNLConfigurationInfo OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{SONInformationReply-ExtIEs}} OPTIONAL, + ... +} + +SONInformationReply-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Release 9 to transfer Time synchronization information -- + {ID id-Time-Synchronization-Info CRITICALITY ignore EXTENSION TimeSynchronizationInfo PRESENCE optional}, + ... +} + + +SONConfigurationTransfer ::= SEQUENCE { + targeteNB-ID TargeteNB-ID, + sourceeNB-ID SourceeNB-ID, + sONInformation SONInformation, + iE-Extensions ProtocolExtensionContainer { { SONConfigurationTransfer-ExtIEs} } OPTIONAL, +... +} + +SONConfigurationTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Release 10 to transfer the IP addresses of the eNB initiating the ANR action -- + {ID id-x2TNLConfigurationInfo CRITICALITY ignore EXTENSION X2TNLConfigurationInfo PRESENCE conditional + -- This IE shall be present if the SON Information IE contains the SON Information Request IE and the SON Information Request IE is set to “X2TNL Configuration Info” -- }, + ... +} + + + +Source-ToTarget-TransparentContainer ::= OCTET STRING +-- This IE includes a transparent container from the source RAN node to the target RAN node. +-- The octets of the OCTET STRING are encoded according to the specifications of the target system. + +SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +SourceeNB-ID ::= SEQUENCE { + global-ENB-ID Global-ENB-ID, + selected-TAI TAI, + iE-Extensions ProtocolExtensionContainer { {SourceeNB-ID-ExtIEs} } OPTIONAL +} + +SourceeNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +SRVCCOperationPossible ::= ENUMERATED { + possible, + ... +} + +SRVCCHOIndication ::= ENUMERATED { + pSandCS, + cSonly, + ... +} + +SourceeNB-ToTargeteNB-TransparentContainer ::= SEQUENCE { + rRC-Container RRC-Container, + e-RABInformationList E-RABInformationList OPTIONAL, + targetCell-ID EUTRAN-CGI, + subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, + uE-HistoryInformation UE-HistoryInformation, + iE-Extensions ProtocolExtensionContainer { {SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +SourceRNC-ToTargetRNC-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + + +ServedGUMMEIs ::= SEQUENCE (SIZE (1.. maxnoofRATs)) OF ServedGUMMEIsItem + +ServedGUMMEIsItem ::= SEQUENCE { + servedPLMNs ServedPLMNs, + servedGroupIDs ServedGroupIDs, + servedMMECs ServedMMECs, + iE-Extensions ProtocolExtensionContainer { {ServedGUMMEIsItem-ExtIEs} } OPTIONAL, + ... +} + +ServedGUMMEIsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedGroupIDs ::= SEQUENCE (SIZE(1.. maxnoofGroupIDs)) OF MME-Group-ID +ServedMMECs ::= SEQUENCE (SIZE(1.. maxnoofMMECs)) OF MME-Code + +ServedPLMNs ::= SEQUENCE (SIZE(1.. maxnoofPLMNsPerMME)) OF PLMNidentity + +SubscriberProfileIDforRFP ::= INTEGER (1..256) + +SupportedTAs ::= SEQUENCE (SIZE(1.. maxnoofTACs)) OF SupportedTAs-Item + +SupportedTAs-Item ::= SEQUENCE { + tAC TAC, + broadcastPLMNs BPLMNs, + iE-Extensions ProtocolExtensionContainer { {SupportedTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +SupportedTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +StratumLevel ::= INTEGER (0..3, ...) + +SynchronizationStatus ::= ENUMERATED { synchronous, asynchronous, ... } + +TimeSynchronizationInfo ::= SEQUENCE { + stratumLevel StratumLevel, + synchronizationStatus SynchronizationStatus, + iE-Extensions ProtocolExtensionContainer { { TimeSynchronizationInfo-ExtIEs} } OPTIONAL, + ... +} + +TimeSynchronizationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +S-TMSI ::= SEQUENCE { + mMEC MME-Code, + m-TMSI M-TMSI, + iE-Extensions ProtocolExtensionContainer { {S-TMSI-ExtIEs} } OPTIONAL, + ... +} + +S-TMSI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- T + +TAC ::= OCTET STRING (SIZE (2)) + +TAIListforWarning ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI + +TAI ::= SEQUENCE { + pLMNidentity PLMNidentity, + tAC TAC, + iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL, + ... +} + +TAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAI-Broadcast ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Broadcast-Item + +TAI-Broadcast-Item ::= SEQUENCE { + tAI TAI, + completedCellinTAI CompletedCellinTAI, + iE-Extensions ProtocolExtensionContainer { {TAI-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAI-Cancelled ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Cancelled-Item + +TAI-Cancelled-Item ::= SEQUENCE { + tAI TAI, + cancelledCellinTAI CancelledCellinTAI, + iE-Extensions ProtocolExtensionContainer { {TAI-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TABasedMDT ::= SEQUENCE { + tAListforMDT TAListforMDT, + iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TABasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC + +CompletedCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CompletedCellinTAI-Item + +CompletedCellinTAI-Item ::= SEQUENCE{ + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CompletedCellinTAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CompletedCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TBCD-STRING ::= OCTET STRING (SIZE (3)) + +TargetID ::= CHOICE { + targeteNB-ID TargeteNB-ID, + targetRNC-ID TargetRNC-ID, + cGI CGI, + ... +} + +TargeteNB-ID ::= SEQUENCE { + global-ENB-ID Global-ENB-ID, + selected-TAI TAI, + iE-Extensions ProtocolExtensionContainer { {TargeteNB-ID-ExtIEs} } OPTIONAL, + ... +} + +TargeteNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TargetRNC-ID ::= SEQUENCE { + lAI LAI, + rAC RAC OPTIONAL, + rNC-ID RNC-ID, + extendedRNC-ID ExtendedRNC-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL, + ... + } + + +TargetRNC-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +TargeteNB-ToSourceeNB-TransparentContainer ::= SEQUENCE { + rRC-Container RRC-Container, + iE-Extensions ProtocolExtensionContainer { {TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Target-ToSource-TransparentContainer ::= OCTET STRING +-- This IE includes a transparent container from the target RAN node to the source RAN node. +-- The octets of the OCTET STRING are coded according to the specifications of the target system. + +TargetRNC-ToSourceRNC-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +TargetBSS-ToSourceBSS-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +ThresholdEventA2 ::= SEQUENCE { + measurementThreshold MeasurementThresholdA2, + iE-Extensions ProtocolExtensionContainer { { ThresholdEventA2-ExtIEs} } OPTIONAL, + ... +} + +ThresholdEventA2-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Threshold-RSRP ::= INTEGER(0..97) + +Threshold-RSRQ ::= INTEGER(0..34) + +TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...} + +Time-UE-StayedInCell ::= INTEGER (0..4095) + +TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) + +TraceActivation ::= SEQUENCE { + e-UTRAN-Trace-ID E-UTRAN-Trace-ID, + interfacesToTrace InterfacesToTrace, + traceDepth TraceDepth, + traceCollectionEntityIPAddress TransportLayerAddress, + iE-Extensions ProtocolExtensionContainer { { TraceActivation-ExtIEs} } OPTIONAL, + ... +} + +TraceActivation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Rel-10 to support MDT -- + { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional }, + ... +} + +TraceDepth ::= ENUMERATED { + minimum, + medium, + maximum, + minimumWithoutVendorSpecificExtension, + mediumWithoutVendorSpecificExtension, + maximumWithoutVendorSpecificExtension, + ... +} + +E-UTRAN-Trace-ID ::= OCTET STRING (SIZE (8)) + +TrafficLoadReductionIndication ::= INTEGER (1..99) + +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + +-- U + +UEAggregateMaximumBitrate ::= SEQUENCE { + uEaggregateMaximumBitRateDL BitRate, + uEaggregateMaximumBitRateUL BitRate, + iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrates-ExtIEs} } OPTIONAL, + ... +} + +UEAggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +UE-S1AP-IDs ::= CHOICE{ + uE-S1AP-ID-pair UE-S1AP-ID-pair, + mME-UE-S1AP-ID MME-UE-S1AP-ID, + ... +} + +UE-S1AP-ID-pair ::= SEQUENCE{ + mME-UE-S1AP-ID MME-UE-S1AP-ID, + eNB-UE-S1AP-ID ENB-UE-S1AP-ID, + iE-Extensions ProtocolExtensionContainer { {UE-S1AP-ID-pair-ExtIEs} } OPTIONAL, + ... +} +UE-S1AP-ID-pair-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +UE-associatedLogicalS1-ConnectionItem ::= SEQUENCE { + mME-UE-S1AP-ID MME-UE-S1AP-ID OPTIONAL, + eNB-UE-S1AP-ID ENB-UE-S1AP-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { UE-associatedLogicalS1-ConnectionItemExtIEs} } OPTIONAL, + ... +} + + +UE-associatedLogicalS1-ConnectionItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UEIdentityIndexValue ::= BIT STRING (SIZE (10)) + +UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item + +UEPagingID ::= CHOICE { + s-TMSI S-TMSI, + iMSI IMSI, + ... + } + +UERadioCapability ::= OCTET STRING + +UESecurityCapabilities ::= SEQUENCE { + encryptionAlgorithms EncryptionAlgorithms, + integrityProtectionAlgorithms IntegrityProtectionAlgorithms, + iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL, +... +} + +UESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- V +-- W + +WarningAreaList ::= CHOICE { + cellIDList ECGIList, + trackingAreaListforWarning TAIListforWarning, + emergencyAreaIDList EmergencyAreaIDList, + ... +} + + +WarningType ::= OCTET STRING (SIZE (2)) + +WarningSecurityInfo ::= OCTET STRING (SIZE (50)) + + +WarningMessageContents ::= OCTET STRING (SIZE(1..9600)) + + +-- X + + +X2TNLConfigurationInfo ::= SEQUENCE { + eNBX2TransportLayerAddresses ENBX2TLAs, + iE-Extensions ProtocolExtensionContainer { { X2TNLConfigurationInfo-ExtIEs} } OPTIONAL, + ... +} + +X2TNLConfigurationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Release 10 to transfer the IPsec and U-plane addresses during ANR action -- + {ID id-eNBX2ExtendedTransportLayerAddresses CRITICALITY ignore EXTENSION ENBX2ExtTLAs PRESENCE optional}, + ... +} + +ENBX2ExtTLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2ExtTLAs)) OF ENBX2ExtTLA + +ENBX2ExtTLA ::= SEQUENCE { + iPsecTLA TransportLayerAddress OPTIONAL, + gTPTLAa ENBX2GTPTLAs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ENBX2ExtTLA-ExtIEs} } OPTIONAL, + ... +} + +ENBX2ExtTLA-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENBX2GTPTLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2GTPTLAs)) OF TransportLayerAddress + +-- Y +-- Z + +END + + + +-- ************************************************************** +-- +-- Common definitions +-- +-- ************************************************************** + +S1AP-CommonDataTypes { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-CommonDataTypes (3) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +Criticality ::= ENUMERATED { reject, ignore, notify } + +Presence ::= ENUMERATED { optional, conditional, mandatory } + +PrivateIE-ID ::= CHOICE { + local INTEGER (0..65535), + global OBJECT IDENTIFIER +} + +ProcedureCode ::= INTEGER (0..255) + +ProtocolExtensionID ::= INTEGER (0..65535) + +ProtocolIE-ID ::= INTEGER (0..65535) + +TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome } + +END + + +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +S1AP-Constants { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Constants (4) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + ProcedureCode, + ProtocolIE-ID + +FROM S1AP-CommonDataTypes; + + +-- ************************************************************** +-- +-- Elementary Procedures +-- +-- ************************************************************** + +id-HandoverPreparation ProcedureCode ::= 0 +id-HandoverResourceAllocation ProcedureCode ::= 1 +id-HandoverNotification ProcedureCode ::= 2 +id-PathSwitchRequest ProcedureCode ::= 3 +id-HandoverCancel ProcedureCode ::= 4 +id-E-RABSetup ProcedureCode ::= 5 +id-E-RABModify ProcedureCode ::= 6 +id-E-RABRelease ProcedureCode ::= 7 +id-E-RABReleaseIndication ProcedureCode ::= 8 +id-InitialContextSetup ProcedureCode ::= 9 +id-Paging ProcedureCode ::= 10 +id-downlinkNASTransport ProcedureCode ::= 11 +id-initialUEMessage ProcedureCode ::= 12 +id-uplinkNASTransport ProcedureCode ::= 13 +id-Reset ProcedureCode::= 14 +id-ErrorIndication ProcedureCode ::= 15 +id-NASNonDeliveryIndication ProcedureCode ::= 16 +id-S1Setup ProcedureCode ::= 17 +id-UEContextReleaseRequest ProcedureCode ::= 18 +id-DownlinkS1cdma2000tunneling ProcedureCode ::= 19 +id-UplinkS1cdma2000tunneling ProcedureCode ::= 20 +id-UEContextModification ProcedureCode ::= 21 +id-UECapabilityInfoIndication ProcedureCode ::= 22 +id-UEContextRelease ProcedureCode ::= 23 +id-eNBStatusTransfer ProcedureCode ::= 24 +id-MMEStatusTransfer ProcedureCode ::= 25 +id-DeactivateTrace ProcedureCode ::= 26 +id-TraceStart ProcedureCode ::= 27 +id-TraceFailureIndication ProcedureCode ::= 28 +id-ENBConfigurationUpdate ProcedureCode ::= 29 +id-MMEConfigurationUpdate ProcedureCode ::= 30 +id-LocationReportingControl ProcedureCode ::= 31 +id-LocationReportingFailureIndication ProcedureCode ::= 32 +id-LocationReport ProcedureCode ::= 33 +id-OverloadStart ProcedureCode ::= 34 +id-OverloadStop ProcedureCode ::= 35 +id-WriteReplaceWarning ProcedureCode ::= 36 +id-eNBDirectInformationTransfer ProcedureCode ::= 37 +id-MMEDirectInformationTransfer ProcedureCode ::= 38 +id-PrivateMessage ProcedureCode ::= 39 +id-eNBConfigurationTransfer ProcedureCode ::= 40 +id-MMEConfigurationTransfer ProcedureCode ::= 41 +id-CellTrafficTrace ProcedureCode ::= 42 +id-Kill ProcedureCode ::= 43 +id-downlinkUEAssociatedLPPaTransport ProcedureCode ::= 44 +id-uplinkUEAssociatedLPPaTransport ProcedureCode ::= 45 +id-downlinkNonUEAssociatedLPPaTransport ProcedureCode ::= 46 +id-uplinkNonUEAssociatedLPPaTransport ProcedureCode ::= 47 + +-- ************************************************************** +-- +-- Extension constants +-- +-- ************************************************************** + +maxPrivateIEs INTEGER ::= 65535 +maxProtocolExtensions INTEGER ::= 65535 +maxProtocolIEs INTEGER ::= 65535 +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** + +maxNrOfCSGs INTEGER ::= 256 +maxNrOfE-RABs INTEGER ::= 256 +maxnoofTAIs INTEGER ::= 256 +maxnoofTACs INTEGER ::= 256 +maxNrOfErrors INTEGER ::= 256 +maxnoofBPLMNs INTEGER ::= 6 +maxnoofPLMNsPerMME INTEGER ::= 32 +maxnoofEPLMNs INTEGER ::= 15 +maxnoofEPLMNsPlusOne INTEGER ::= 16 +maxnoofForbLACs INTEGER ::= 4096 +maxnoofForbTACs INTEGER ::= 4096 +maxNrOfIndividualS1ConnectionsToReset INTEGER ::= 256 +maxnoofCells INTEGER ::= 16 +maxnoofTAIforWarning INTEGER ::= 65535 +maxnoofCellID INTEGER ::= 65535 +maxnoofEmergencyAreaID INTEGER ::= 65535 +maxnoofCellinTAI INTEGER ::= 65535 +maxnoofCellinEAI INTEGER ::= 65535 +maxnoofeNBX2TLAs INTEGER ::= 2 +maxnoofeNBX2ExtTLAs INTEGER ::= 16 +maxnoofeNBX2GTPTLAs INTEGER ::= 16 +maxnoofRATs INTEGER ::= 8 +maxnoofGroupIDs INTEGER ::= 65535 +maxnoofMMECs INTEGER ::= 256 +maxnoofCellIDforMDT INTEGER ::= 32 +maxnoofTAforMDT INTEGER ::= 8 + + +-- ************************************************************** +-- +-- IEs +-- +-- ************************************************************** + +id-MME-UE-S1AP-ID ProtocolIE-ID ::= 0 +id-HandoverType ProtocolIE-ID ::= 1 +id-Cause ProtocolIE-ID ::= 2 +id-SourceID ProtocolIE-ID ::= 3 +id-TargetID ProtocolIE-ID ::= 4 +id-eNB-UE-S1AP-ID ProtocolIE-ID ::= 8 +id-E-RABSubjecttoDataForwardingList ProtocolIE-ID ::= 12 +id-E-RABtoReleaseListHOCmd ProtocolIE-ID ::= 13 +id-E-RABDataForwardingItem ProtocolIE-ID ::= 14 +id-E-RABReleaseItemBearerRelComp ProtocolIE-ID ::= 15 +id-E-RABToBeSetupListBearerSUReq ProtocolIE-ID ::= 16 +id-E-RABToBeSetupItemBearerSUReq ProtocolIE-ID ::= 17 +id-E-RABAdmittedList ProtocolIE-ID ::= 18 +id-E-RABFailedToSetupListHOReqAck ProtocolIE-ID ::= 19 +id-E-RABAdmittedItem ProtocolIE-ID ::= 20 +id-E-RABFailedtoSetupItemHOReqAck ProtocolIE-ID ::= 21 +id-E-RABToBeSwitchedDLList ProtocolIE-ID ::= 22 +id-E-RABToBeSwitchedDLItem ProtocolIE-ID ::= 23 +id-E-RABToBeSetupListCtxtSUReq ProtocolIE-ID ::= 24 +id-TraceActivation ProtocolIE-ID ::= 25 +id-NAS-PDU ProtocolIE-ID ::= 26 +id-E-RABToBeSetupItemHOReq ProtocolIE-ID ::= 27 +id-E-RABSetupListBearerSURes ProtocolIE-ID ::= 28 +id-E-RABFailedToSetupListBearerSURes ProtocolIE-ID ::= 29 +id-E-RABToBeModifiedListBearerModReq ProtocolIE-ID ::= 30 +id-E-RABModifyListBearerModRes ProtocolIE-ID ::= 31 +id-E-RABFailedToModifyList ProtocolIE-ID ::= 32 +id-E-RABToBeReleasedList ProtocolIE-ID ::= 33 +id-E-RABFailedToReleaseList ProtocolIE-ID ::= 34 +id-E-RABItem ProtocolIE-ID ::= 35 +id-E-RABToBeModifiedItemBearerModReq ProtocolIE-ID ::= 36 +id-E-RABModifyItemBearerModRes ProtocolIE-ID ::= 37 +id-E-RABReleaseItem ProtocolIE-ID ::= 38 +id-E-RABSetupItemBearerSURes ProtocolIE-ID ::= 39 +id-SecurityContext ProtocolIE-ID ::= 40 +id-HandoverRestrictionList ProtocolIE-ID ::= 41 +id-UEPagingID ProtocolIE-ID ::= 43 +id-pagingDRX ProtocolIE-ID ::= 44 +id-TAIList ProtocolIE-ID ::= 46 +id-TAIItem ProtocolIE-ID ::= 47 +id-E-RABFailedToSetupListCtxtSURes ProtocolIE-ID ::= 48 +id-E-RABReleaseItemHOCmd ProtocolIE-ID ::= 49 +id-E-RABSetupItemCtxtSURes ProtocolIE-ID ::= 50 +id-E-RABSetupListCtxtSURes ProtocolIE-ID ::= 51 +id-E-RABToBeSetupItemCtxtSUReq ProtocolIE-ID ::= 52 +id-E-RABToBeSetupListHOReq ProtocolIE-ID ::= 53 +id-GERANtoLTEHOInformationRes ProtocolIE-ID ::= 55 +id-UTRANtoLTEHOInformationRes ProtocolIE-ID ::= 57 +id-CriticalityDiagnostics ProtocolIE-ID ::= 58 +id-Global-ENB-ID ProtocolIE-ID ::= 59 +id-eNBname ProtocolIE-ID ::= 60 +id-MMEname ProtocolIE-ID ::= 61 +id-ServedPLMNs ProtocolIE-ID ::= 63 +id-SupportedTAs ProtocolIE-ID ::= 64 +id-TimeToWait ProtocolIE-ID ::= 65 +id-uEaggregateMaximumBitrate ProtocolIE-ID ::= 66 +id-TAI ProtocolIE-ID ::= 67 +id-E-RABReleaseListBearerRelComp ProtocolIE-ID ::= 69 +id-cdma2000PDU ProtocolIE-ID ::= 70 +id-cdma2000RATType ProtocolIE-ID ::= 71 +id-cdma2000SectorID ProtocolIE-ID ::= 72 +id-SecurityKey ProtocolIE-ID ::= 73 +id-UERadioCapability ProtocolIE-ID ::= 74 +id-GUMMEI-ID ProtocolIE-ID ::= 75 +id-E-RABInformationListItem ProtocolIE-ID ::= 78 +id-Direct-Forwarding-Path-Availability ProtocolIE-ID ::= 79 +id-UEIdentityIndexValue ProtocolIE-ID ::= 80 +id-cdma2000HOStatus ProtocolIE-ID ::= 83 +id-cdma2000HORequiredIndication ProtocolIE-ID ::= 84 +id-E-UTRAN-Trace-ID ProtocolIE-ID ::= 86 +id-RelativeMMECapacity ProtocolIE-ID ::= 87 +id-SourceMME-UE-S1AP-ID ProtocolIE-ID ::= 88 +id-Bearers-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 89 +id-eNB-StatusTransfer-TransparentContainer ProtocolIE-ID ::= 90 +id-UE-associatedLogicalS1-ConnectionItem ProtocolIE-ID ::= 91 +id-ResetType ProtocolIE-ID ::= 92 +id-UE-associatedLogicalS1-ConnectionListResAck ProtocolIE-ID ::= 93 +id-E-RABToBeSwitchedULItem ProtocolIE-ID ::= 94 +id-E-RABToBeSwitchedULList ProtocolIE-ID ::= 95 +id-S-TMSI ProtocolIE-ID ::= 96 +id-cdma2000OneXRAND ProtocolIE-ID ::= 97 +id-RequestType ProtocolIE-ID ::= 98 +id-UE-S1AP-IDs ProtocolIE-ID ::= 99 +id-EUTRAN-CGI ProtocolIE-ID ::= 100 +id-OverloadResponse ProtocolIE-ID ::= 101 +id-cdma2000OneXSRVCCInfo ProtocolIE-ID ::= 102 +id-E-RABFailedToBeReleasedList ProtocolIE-ID ::= 103 +id-Source-ToTarget-TransparentContainer ProtocolIE-ID ::= 104 +id-ServedGUMMEIs ProtocolIE-ID ::= 105 +id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 106 +id-UESecurityCapabilities ProtocolIE-ID ::= 107 +id-CSFallbackIndicator ProtocolIE-ID ::= 108 +id-CNDomain ProtocolIE-ID ::= 109 +id-E-RABReleasedList ProtocolIE-ID ::= 110 +id-MessageIdentifier ProtocolIE-ID ::= 111 +id-SerialNumber ProtocolIE-ID ::= 112 +id-WarningAreaList ProtocolIE-ID ::= 113 +id-RepetitionPeriod ProtocolIE-ID ::= 114 +id-NumberofBroadcastRequest ProtocolIE-ID ::= 115 +id-WarningType ProtocolIE-ID ::= 116 +id-WarningSecurityInfo ProtocolIE-ID ::= 117 +id-DataCodingScheme ProtocolIE-ID ::= 118 +id-WarningMessageContents ProtocolIE-ID ::= 119 +id-BroadcastCompletedAreaList ProtocolIE-ID ::= 120 +id-Inter-SystemInformationTransferTypeEDT ProtocolIE-ID ::= 121 +id-Inter-SystemInformationTransferTypeMDT ProtocolIE-ID ::= 122 +id-Target-ToSource-TransparentContainer ProtocolIE-ID ::= 123 +id-SRVCCOperationPossible ProtocolIE-ID ::= 124 +id-SRVCCHOIndication ProtocolIE-ID ::= 125 +id-NAS-DownlinkCount ProtocolIE-ID ::= 126 +id-CSG-Id ProtocolIE-ID ::= 127 +id-CSG-IdList ProtocolIE-ID ::= 128 +id-SONConfigurationTransferECT ProtocolIE-ID ::= 129 +id-SONConfigurationTransferMCT ProtocolIE-ID ::= 130 +id-TraceCollectionEntityIPAddress ProtocolIE-ID ::= 131 +id-MSClassmark2 ProtocolIE-ID ::= 132 +id-MSClassmark3 ProtocolIE-ID ::= 133 +id-RRC-Establishment-Cause ProtocolIE-ID ::= 134 +id-NASSecurityParametersfromE-UTRAN ProtocolIE-ID ::= 135 +id-NASSecurityParameterstoE-UTRAN ProtocolIE-ID ::= 136 +id-DefaultPagingDRX ProtocolIE-ID ::= 137 +id-Source-ToTarget-TransparentContainer-Secondary ProtocolIE-ID ::= 138 +id-Target-ToSource-TransparentContainer-Secondary ProtocolIE-ID ::= 139 +id-EUTRANRoundTripDelayEstimationInfo ProtocolIE-ID ::= 140 +id-BroadcastCancelledAreaList ProtocolIE-ID ::= 141 +id-ConcurrentWarningMessageIndicator ProtocolIE-ID ::= 142 +id-Data-Forwarding-Not-Possible ProtocolIE-ID ::= 143 +id-ExtendedRepetitionPeriod ProtocolIE-ID ::= 144 +id-CellAccessMode ProtocolIE-ID ::= 145 +id-CSGMembershipStatus ProtocolIE-ID ::= 146 +id-LPPa-PDU ProtocolIE-ID ::= 147 +id-Routing-ID ProtocolIE-ID ::= 148 +id-Time-Synchronization-Info ProtocolIE-ID ::= 149 +id-PS-ServiceNotAvailable ProtocolIE-ID ::= 150 +id-PagingPriority ProtocolIE-ID ::= 151 +id-x2TNLConfigurationInfo ProtocolIE-ID ::= 152 +id-eNBX2ExtendedTransportLayerAddresses ProtocolIE-ID ::= 153 +id-GUMMEIList ProtocolIE-ID ::= 154 +id-GW-TransportLayerAddress ProtocolIE-ID ::= 155 +id-Correlation-ID ProtocolIE-ID ::= 156 +id-SourceMME-GUMMEI ProtocolIE-ID ::= 157 +id-MME-UE-S1AP-ID-2 ProtocolIE-ID ::= 158 +id-RegisteredLAI ProtocolIE-ID ::= 159 +id-RelayNode-Indicator ProtocolIE-ID ::= 160 +id-TrafficLoadReductionIndication ProtocolIE-ID ::= 161 +id-MDTConfiguration ProtocolIE-ID ::= 162 +id-MMERelaySupportIndicator ProtocolIE-ID ::= 163 +id-GWContextReleaseIndication ProtocolIE-ID ::= 164 +id-ManagementBasedMDTAllowed ProtocolIE-ID ::= 165 +id-PrivacyIndicator ProtocolIE-ID ::= 166 + +END + + +-- ************************************************************** +-- +-- Container definitions +-- +-- ************************************************************** + +S1AP-Containers { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Containers (5) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + Presence, + PrivateIE-ID, + ProtocolExtensionID, + ProtocolIE-ID +FROM S1AP-CommonDataTypes + + maxPrivateIEs, + maxProtocolExtensions, + maxProtocolIEs +FROM S1AP-Constants; + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +S1AP-PROTOCOL-IES ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +S1AP-PROTOCOL-IES-PAIR ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &firstCriticality Criticality, + &FirstValue, + &secondCriticality Criticality, + &SecondValue, + &presence Presence +} +WITH SYNTAX { + ID &id + FIRST CRITICALITY &firstCriticality + FIRST TYPE &FirstValue + SECOND CRITICALITY &secondCriticality + SECOND TYPE &SecondValue + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol Extensions +-- +-- ************************************************************** + +S1AP-PROTOCOL-EXTENSION ::= CLASS { + &id ProtocolExtensionID UNIQUE, + &criticality Criticality, + &Extension, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + EXTENSION &Extension + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Private IEs +-- +-- ************************************************************** + +S1AP-PRIVATE-IES ::= CLASS { + &id PrivateIE-ID, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Container for Protocol IEs +-- +-- ************************************************************** + +ProtocolIE-Container {S1AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-SingleContainer {S1AP-PROTOCOL-IES : IEsSetParam} ::= + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Field {S1AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-IES.&id ({IEsSetParam}), + criticality S1AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), + value S1AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Protocol IE Pairs +-- +-- ************************************************************** + +ProtocolIE-ContainerPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-FieldPair {{IEsSetParam}} + +ProtocolIE-FieldPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), + firstCriticality S1AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), + firstValue S1AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), + secondCriticality S1AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), + secondValue S1AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container Lists for Protocol IE Containers +-- +-- ************************************************************** + +ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-SingleContainer {{IEsSetParam}} + +ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-ContainerPair {{IEsSetParam}} + +-- ************************************************************** +-- +-- Container for Protocol Extensions +-- +-- ************************************************************** + +ProtocolExtensionContainer {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= + SEQUENCE (SIZE (1..maxProtocolExtensions)) OF + ProtocolExtensionField {{ExtensionSetParam}} + +ProtocolExtensionField {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), + criticality S1AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), + extensionValue S1AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Private IEs +-- +-- ************************************************************** + +PrivateIE-Container {S1AP-PRIVATE-IES : IEsSetParam } ::= + SEQUENCE (SIZE (1.. maxPrivateIEs)) OF + PrivateIE-Field {{IEsSetParam}} + +PrivateIE-Field {S1AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { + id S1AP-PRIVATE-IES.&id ({IEsSetParam}), + criticality S1AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), + value S1AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) +} + +END + +-- ************************************************************** +-- +-- IE definitions for the SON Transfer application +-- The IEs in this ASN.1 module shall be defined and encoded +-- using the same rules as applicable for the S1AP-IEs module. +-- +-- ************************************************************** +SonTransfer-IEs + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- +-- Generic IEs for the SON Transfer application +-- + +SONtransferApplicationIdentity ::= ENUMERATED { + cell-load-reporting, + ..., + multi-cell-load-reporting, + event-triggered-cell-load-reporting, + ho-reporting +} + +SONtransferRequestContainer ::= CHOICE{ + cellLoadReporting NULL, + ..., + multiCellLoadReporting MultiCellLoadReportingRequest, + eventTriggeredCellLoadReporting EventTriggeredCellLoadReportingRequest, + hOReporting HOReport +} + +SONtransferResponseContainer ::= CHOICE{ + cellLoadReporting CellLoadReportingResponse, + ..., + multiCellLoadReporting MultiCellLoadReportingResponse, + eventTriggeredCellLoadReporting EventTriggeredCellLoadReportingResponse, + hOReporting NULL +} + +SONtransferCause ::= CHOICE { + cellLoadReporting CellLoadReportingCause, + ..., + multiCellLoadReporting CellLoadReportingCause, + eventTriggeredCellLoadReporting CellLoadReportingCause, + hOReporting HOReportingCause +} + + +CellLoadReportingCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +HOReportingCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +-- +-- IEs for Cell Load Reporting application +-- + +CellLoadReportingResponse::= CHOICE{ + eUTRAN EUTRANcellLoadReportingResponse, + uTRAN OCTET STRING, + gERAN OCTET STRING, + ... +} + +CompositeAvailableCapacityGroup ::= OCTET STRING + +EUTRANcellLoadReportingResponse ::= SEQUENCE { + compositeAvailableCapacityGroup CompositeAvailableCapacityGroup, + ... +} + +-- +-- IEs for Multi-Cell Load Reporting application +-- + +EUTRANResponse::= SEQUENCE { + cell-ID OCTET STRING, + eUTRANcellLoadReportingResponse EUTRANcellLoadReportingResponse, + ... +} + +IRAT-Cell-ID ::= CHOICE{ + eUTRAN OCTET STRING, + uTRAN OCTET STRING, + gERAN OCTET STRING, + ... +} + +RequestedCellList ::= SEQUENCE (SIZE(1.. maxIRATReportingCells)) OF IRAT-Cell-ID + +MultiCellLoadReportingRequest::= SEQUENCE { + requestedCellList RequestedCellList, + ... +} + +ReportingCellList-Item ::= SEQUENCE { + cell-ID IRAT-Cell-ID, + ... +} + +ReportingCellList ::= SEQUENCE (SIZE(1.. maxIRATReportingCells)) OF ReportingCellList-Item + +MultiCellLoadReportingResponse ::= SEQUENCE (SIZE(1.. maxIRATReportingCells)) OF MultiCellLoadReportingResponse-Item + +MultiCellLoadReportingResponse-Item ::= CHOICE{ + eUTRANResponse EUTRANResponse, + uTRANResponse OCTET STRING, + gERANResponse OCTET STRING, + ... +} + + +-- +-- IEs for Event-triggered Cell Load Reporting application +-- + +NumberOfMeasurementReportingLevels ::= ENUMERATED { + rl2, + rl3, + rl4, + rl5, + rl10, + ... +} + +EventTriggeredCellLoadReportingRequest ::= SEQUENCE { + numberOfMeasurementReportingLevels NumberOfMeasurementReportingLevels, + ... +} + +OverloadFlag ::= ENUMERATED { + overload, + ... +} + +EventTriggeredCellLoadReportingResponse ::= SEQUENCE { + cellLoadReportingResponse CellLoadReportingResponse, + overloadFlag OverloadFlag OPTIONAL, + ... +} + +-- +-- IEs for HO Reporting application +-- + + + +HOReport::= SEQUENCE { + hoType HoType, + hoReportType HoReportType, + hosourceID IRAT-Cell-ID, + hoTargetID IRAT-Cell-ID, + candidateCellList CandidateCellList, + ... +} + +HoType ::= ENUMERATED { + ltetoutran, + ltetogeran, + ... +} + +HoReportType ::= ENUMERATED { + unnecessaryhotoanotherrat, + ... +} + +CandidateCellList ::= SEQUENCE (SIZE(1..maxnoofcandidateCells)) OF IRAT-Cell-ID + +-- ************************************************************** +-- +-- Constants +-- +-- ************************************************************** + +maxIRATReportingCells INTEGER ::= 128 -- Value is FFS +maxnoofcandidateCells INTEGER ::= 16 + +END + + diff --git a/openair3/S1AP/MESSAGES/ASN1/R11/s1ap-11.8.0.asn1 b/openair3/S1AP/MESSAGES/ASN1/R11/s1ap-11.8.0.asn1 new file mode 100755 index 0000000000..159ef7c227 --- /dev/null +++ b/openair3/S1AP/MESSAGES/ASN1/R11/s1ap-11.8.0.asn1 @@ -0,0 +1,5422 @@ +-- ************************************************************** +-- +-- Elementary Procedure definitions +-- +-- ************************************************************** + +S1AP-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Descriptions (0)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + ProcedureCode +FROM S1AP-CommonDataTypes + + CellTrafficTrace, + DeactivateTrace, + DownlinkUEAssociatedLPPaTransport, + DownlinkNASTransport, + DownlinkNonUEAssociatedLPPaTransport, + DownlinkS1cdma2000tunneling, + ENBDirectInformationTransfer, + ENBStatusTransfer, + ENBConfigurationUpdate, + ENBConfigurationUpdateAcknowledge, + ENBConfigurationUpdateFailure, + ErrorIndication, + HandoverCancel, + HandoverCancelAcknowledge, + HandoverCommand, + HandoverFailure, + HandoverNotify, + HandoverPreparationFailure, + HandoverRequest, + HandoverRequestAcknowledge, + HandoverRequired, + InitialContextSetupFailure, + InitialContextSetupRequest, + InitialContextSetupResponse, + InitialUEMessage, + KillRequest, + KillResponse, + LocationReportingControl, + LocationReportingFailureIndication, + LocationReport, + MMEConfigurationUpdate, + MMEConfigurationUpdateAcknowledge, + MMEConfigurationUpdateFailure, + MMEDirectInformationTransfer, + MMEStatusTransfer, + NASNonDeliveryIndication, + OverloadStart, + OverloadStop, + Paging, + PathSwitchRequest, + PathSwitchRequestAcknowledge, + PathSwitchRequestFailure, + PrivateMessage, + Reset, + ResetAcknowledge, + S1SetupFailure, + S1SetupRequest, + S1SetupResponse, + E-RABModifyRequest, + E-RABModifyResponse, + E-RABReleaseCommand, + E-RABReleaseResponse, + E-RABReleaseIndication, + E-RABSetupRequest, + E-RABSetupResponse, + TraceFailureIndication, + TraceStart, + UECapabilityInfoIndication, + UEContextModificationFailure, + UEContextModificationRequest, + UEContextModificationResponse, + UEContextReleaseCommand, + UEContextReleaseComplete, + UEContextReleaseRequest, + UERadioCapabilityMatchRequest, + UERadioCapabilityMatchResponse, + UplinkUEAssociatedLPPaTransport, + UplinkNASTransport, + UplinkNonUEAssociatedLPPaTransport, + UplinkS1cdma2000tunneling, + WriteReplaceWarningRequest, + WriteReplaceWarningResponse, + ENBConfigurationTransfer, + MMEConfigurationTransfer + + +FROM S1AP-PDU-Contents + + id-CellTrafficTrace, + id-DeactivateTrace, + id-downlinkUEAssociatedLPPaTransport, + id-downlinkNASTransport, + id-downlinkNonUEAssociatedLPPaTransport, + id-DownlinkS1cdma2000tunneling, + id-eNBStatusTransfer, + id-ErrorIndication, + id-HandoverCancel, + id-HandoverNotification, + id-HandoverPreparation, + id-HandoverResourceAllocation, + id-InitialContextSetup, + id-initialUEMessage, + id-ENBConfigurationUpdate, + id-Kill, + id-LocationReportingControl, + id-LocationReportingFailureIndication, + id-LocationReport, + id-eNBDirectInformationTransfer, + id-MMEConfigurationUpdate, + id-MMEDirectInformationTransfer, + id-MMEStatusTransfer, + id-NASNonDeliveryIndication, + id-OverloadStart, + id-OverloadStop, + id-Paging, + id-PathSwitchRequest, + id-PrivateMessage, + id-Reset, + id-S1Setup, + id-E-RABModify, + id-E-RABRelease, + id-E-RABReleaseIndication, + id-E-RABSetup, + id-TraceFailureIndication, + id-TraceStart, + id-UECapabilityInfoIndication, + id-UEContextModification, + id-UEContextRelease, + id-UEContextReleaseRequest, + id-UERadioCapabilityMatch, + id-uplinkUEAssociatedLPPaTransport, + id-uplinkNASTransport, + id-uplinkNonUEAssociatedLPPaTransport, + id-UplinkS1cdma2000tunneling, + id-WriteReplaceWarning, + id-eNBConfigurationTransfer, + id-MMEConfigurationTransfer +FROM S1AP-Constants; + + +-- ************************************************************** +-- +-- Interface Elementary Procedure Class +-- +-- ************************************************************** + +S1AP-ELEMENTARY-PROCEDURE ::= CLASS { + &InitiatingMessage , + &SuccessfulOutcome OPTIONAL, + &UnsuccessfulOutcome OPTIONAL, + &procedureCode ProcedureCode UNIQUE, + &criticality Criticality DEFAULT ignore +} +WITH SYNTAX { + INITIATING MESSAGE &InitiatingMessage + [SUCCESSFUL OUTCOME &SuccessfulOutcome] + [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] + PROCEDURE CODE &procedureCode + [CRITICALITY &criticality] +} + +-- ************************************************************** +-- +-- Interface PDU Definition +-- +-- ************************************************************** + +S1AP-PDU ::= CHOICE { + initiatingMessage InitiatingMessage, + successfulOutcome SuccessfulOutcome, + unsuccessfulOutcome UnsuccessfulOutcome, + ... +} + +InitiatingMessage ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +SuccessfulOutcome ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +UnsuccessfulOutcome ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +-- ************************************************************** +-- +-- Interface Elementary Procedure List +-- +-- ************************************************************** + +S1AP-ELEMENTARY-PROCEDURES S1AP-ELEMENTARY-PROCEDURE ::= { + S1AP-ELEMENTARY-PROCEDURES-CLASS-1 | + S1AP-ELEMENTARY-PROCEDURES-CLASS-2, + ... +} + + +S1AP-ELEMENTARY-PROCEDURES-CLASS-1 S1AP-ELEMENTARY-PROCEDURE ::= { + handoverPreparation | + handoverResourceAllocation | + pathSwitchRequest | + e-RABSetup | + e-RABModify | + e-RABRelease | + initialContextSetup | + handoverCancel | + kill | + reset | + s1Setup | + uEContextModification | + uEContextRelease | + eNBConfigurationUpdate | + mMEConfigurationUpdate | + writeReplaceWarning , + ..., + uERadioCapabilityMatch +} + +S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= { + handoverNotification | + e-RABReleaseIndication | + paging | + downlinkNASTransport | + initialUEMessage | + uplinkNASTransport | + errorIndication | + nASNonDeliveryIndication | + uEContextReleaseRequest | + downlinkS1cdma2000tunneling | + uplinkS1cdma2000tunneling | + uECapabilityInfoIndication | + eNBStatusTransfer | + mMEStatusTransfer | + deactivateTrace | + traceStart | + traceFailureIndication | + cellTrafficTrace | + locationReportingControl | + locationReportingFailureIndication | + locationReport | + overloadStart | + overloadStop | + eNBDirectInformationTransfer | + mMEDirectInformationTransfer | + eNBConfigurationTransfer | + mMEConfigurationTransfer | + privateMessage , + ..., + downlinkUEAssociatedLPPaTransport | + uplinkUEAssociatedLPPaTransport | + downlinkNonUEAssociatedLPPaTransport | + uplinkNonUEAssociatedLPPaTransport +} + +-- ************************************************************** +-- +-- Interface Elementary Procedures +-- +-- ************************************************************** + +handoverPreparation S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequired + SUCCESSFUL OUTCOME HandoverCommand + UNSUCCESSFUL OUTCOME HandoverPreparationFailure + PROCEDURE CODE id-HandoverPreparation + CRITICALITY reject +} + +handoverResourceAllocation S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequest + SUCCESSFUL OUTCOME HandoverRequestAcknowledge + UNSUCCESSFUL OUTCOME HandoverFailure + PROCEDURE CODE id-HandoverResourceAllocation + CRITICALITY reject +} + +handoverNotification S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverNotify + PROCEDURE CODE id-HandoverNotification + CRITICALITY ignore +} + +pathSwitchRequest S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PathSwitchRequest + SUCCESSFUL OUTCOME PathSwitchRequestAcknowledge + UNSUCCESSFUL OUTCOME PathSwitchRequestFailure + PROCEDURE CODE id-PathSwitchRequest + CRITICALITY reject +} + +e-RABSetup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABSetupRequest + SUCCESSFUL OUTCOME E-RABSetupResponse + PROCEDURE CODE id-E-RABSetup + CRITICALITY reject +} + +e-RABModify S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABModifyRequest + SUCCESSFUL OUTCOME E-RABModifyResponse + PROCEDURE CODE id-E-RABModify + CRITICALITY reject +} + +e-RABRelease S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABReleaseCommand + SUCCESSFUL OUTCOME E-RABReleaseResponse + PROCEDURE CODE id-E-RABRelease + CRITICALITY reject +} + +e-RABReleaseIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABReleaseIndication + PROCEDURE CODE id-E-RABReleaseIndication + CRITICALITY ignore +} + +initialContextSetup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE InitialContextSetupRequest + SUCCESSFUL OUTCOME InitialContextSetupResponse + UNSUCCESSFUL OUTCOME InitialContextSetupFailure + PROCEDURE CODE id-InitialContextSetup + CRITICALITY reject +} + +uEContextReleaseRequest S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextReleaseRequest + PROCEDURE CODE id-UEContextReleaseRequest + CRITICALITY ignore +} + +paging S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE Paging + PROCEDURE CODE id-Paging + CRITICALITY ignore +} + +downlinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkNASTransport + PROCEDURE CODE id-downlinkNASTransport + CRITICALITY ignore +} + +initialUEMessage S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE InitialUEMessage + PROCEDURE CODE id-initialUEMessage + CRITICALITY ignore +} + +uplinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkNASTransport + PROCEDURE CODE id-uplinkNASTransport + CRITICALITY ignore +} +nASNonDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE NASNonDeliveryIndication + PROCEDURE CODE id-NASNonDeliveryIndication + CRITICALITY ignore +} + +handoverCancel S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverCancel + SUCCESSFUL OUTCOME HandoverCancelAcknowledge + PROCEDURE CODE id-HandoverCancel + CRITICALITY reject +} + +reset S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE Reset + SUCCESSFUL OUTCOME ResetAcknowledge + PROCEDURE CODE id-Reset + CRITICALITY reject +} + +errorIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ErrorIndication + PROCEDURE CODE id-ErrorIndication + CRITICALITY ignore +} + +s1Setup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE S1SetupRequest + SUCCESSFUL OUTCOME S1SetupResponse + UNSUCCESSFUL OUTCOME S1SetupFailure + PROCEDURE CODE id-S1Setup + CRITICALITY reject +} + +eNBConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationUpdate + SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure + PROCEDURE CODE id-ENBConfigurationUpdate + CRITICALITY reject +} + +mMEConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEConfigurationUpdate + SUCCESSFUL OUTCOME MMEConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME MMEConfigurationUpdateFailure + PROCEDURE CODE id-MMEConfigurationUpdate + CRITICALITY reject +} + +downlinkS1cdma2000tunneling S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkS1cdma2000tunneling + PROCEDURE CODE id-DownlinkS1cdma2000tunneling + CRITICALITY ignore +} + +uplinkS1cdma2000tunneling S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkS1cdma2000tunneling + PROCEDURE CODE id-UplinkS1cdma2000tunneling + CRITICALITY ignore +} + +uEContextModification S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextModificationRequest + SUCCESSFUL OUTCOME UEContextModificationResponse + UNSUCCESSFUL OUTCOME UEContextModificationFailure + PROCEDURE CODE id-UEContextModification + CRITICALITY reject +} + +uECapabilityInfoIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UECapabilityInfoIndication + PROCEDURE CODE id-UECapabilityInfoIndication + CRITICALITY ignore +} + +uEContextRelease S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextReleaseCommand + SUCCESSFUL OUTCOME UEContextReleaseComplete + PROCEDURE CODE id-UEContextRelease + CRITICALITY reject +} + +eNBStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBStatusTransfer + PROCEDURE CODE id-eNBStatusTransfer + CRITICALITY ignore +} + +mMEStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEStatusTransfer + PROCEDURE CODE id-MMEStatusTransfer + CRITICALITY ignore +} + +deactivateTrace S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DeactivateTrace + PROCEDURE CODE id-DeactivateTrace + CRITICALITY ignore +} + +traceStart S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE TraceStart + PROCEDURE CODE id-TraceStart + CRITICALITY ignore +} + +traceFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE TraceFailureIndication + PROCEDURE CODE id-TraceFailureIndication + CRITICALITY ignore +} +cellTrafficTrace S1AP-ELEMENTARY-PROCEDURE ::={ + INITIATING MESSAGE CellTrafficTrace + PROCEDURE CODE id-CellTrafficTrace + CRITICALITY ignore +} + +locationReportingControl S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReportingControl + PROCEDURE CODE id-LocationReportingControl + CRITICALITY ignore +} + +locationReportingFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReportingFailureIndication + PROCEDURE CODE id-LocationReportingFailureIndication + CRITICALITY ignore +} + +locationReport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReport + PROCEDURE CODE id-LocationReport + CRITICALITY ignore +} + +overloadStart S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE OverloadStart + PROCEDURE CODE id-OverloadStart + CRITICALITY ignore +} + +overloadStop S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE OverloadStop + PROCEDURE CODE id-OverloadStop + CRITICALITY reject +} + +writeReplaceWarning S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE WriteReplaceWarningRequest + SUCCESSFUL OUTCOME WriteReplaceWarningResponse + PROCEDURE CODE id-WriteReplaceWarning + CRITICALITY reject +} + +eNBDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBDirectInformationTransfer + PROCEDURE CODE id-eNBDirectInformationTransfer + CRITICALITY ignore +} + +mMEDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEDirectInformationTransfer + PROCEDURE CODE id-MMEDirectInformationTransfer + CRITICALITY ignore +} + +eNBConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationTransfer + PROCEDURE CODE id-eNBConfigurationTransfer + CRITICALITY ignore +} + +mMEConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEConfigurationTransfer + PROCEDURE CODE id-MMEConfigurationTransfer + CRITICALITY ignore +} + + +privateMessage S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PrivateMessage + PROCEDURE CODE id-PrivateMessage + CRITICALITY ignore +} + +kill S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE KillRequest + SUCCESSFUL OUTCOME KillResponse + PROCEDURE CODE id-Kill + CRITICALITY reject +} + +downlinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkUEAssociatedLPPaTransport + PROCEDURE CODE id-downlinkUEAssociatedLPPaTransport + CRITICALITY ignore +} + +uplinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkUEAssociatedLPPaTransport + PROCEDURE CODE id-uplinkUEAssociatedLPPaTransport + CRITICALITY ignore +} +downlinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkNonUEAssociatedLPPaTransport + PROCEDURE CODE id-downlinkNonUEAssociatedLPPaTransport + CRITICALITY ignore +} + +uplinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkNonUEAssociatedLPPaTransport + PROCEDURE CODE id-uplinkNonUEAssociatedLPPaTransport + CRITICALITY ignore +} + +uERadioCapabilityMatch S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UERadioCapabilityMatchRequest + SUCCESSFUL OUTCOME UERadioCapabilityMatchResponse + PROCEDURE CODE id-UERadioCapabilityMatch + CRITICALITY reject +} + +END + + +9.3.3 PDU Definitions +-- ************************************************************** +-- +-- PDU definitions for S1AP. +-- +-- ************************************************************** + +S1AP-PDU-Contents { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Contents (1) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + + UEAggregateMaximumBitrate, + Cause, + CellAccessMode, + Cdma2000HORequiredIndication, + Cdma2000HOStatus, + Cdma2000OneXSRVCCInfo, + Cdma2000OneXRAND, + Cdma2000PDU, + Cdma2000RATType, + Cdma2000SectorID, + EUTRANRoundTripDelayEstimationInfo, + CNDomain, + ConcurrentWarningMessageIndicator, + CriticalityDiagnostics, + CSFallbackIndicator, + CSG-Id, + CSG-IdList, + CSGMembershipStatus, + Data-Forwarding-Not-Possible, + Direct-Forwarding-Path-Availability, + Global-ENB-ID, + EUTRAN-CGI, + ENBname, + ENB-StatusTransfer-TransparentContainer, + ENB-UE-S1AP-ID, + ExtendedRepetitionPeriod, + GTP-TEID, + GUMMEI, + GUMMEIType, + HandoverRestrictionList, + HandoverType, + LAI, + LPPa-PDU, + ManagementBasedMDTAllowed, + MDTPLMNList, + MMEname, + MMERelaySupportIndicator, + MME-UE-S1AP-ID, + MSClassmark2, + MSClassmark3, + NAS-PDU, + NASSecurityParametersfromE-UTRAN, + NASSecurityParameterstoE-UTRAN, + OverloadResponse, + PagingDRX, + PagingPriority, + PLMNidentity, + RIMTransfer, + RelativeMMECapacity, + RequestType, + E-RAB-ID, + E-RABLevelQoSParameters, + E-RABList, + RelayNode-Indicator, + Routing-ID, + SecurityKey, + SecurityContext, + ServedGUMMEIs, + SONConfigurationTransfer, + Source-ToTarget-TransparentContainer, + SourceBSS-ToTargetBSS-TransparentContainer, + SourceeNB-ToTargeteNB-TransparentContainer, + SourceRNC-ToTargetRNC-TransparentContainer, + SubscriberProfileIDforRFP, + SRVCCOperationPossible, + SRVCCHOIndication, + SupportedTAs, + TAI, + Target-ToSource-TransparentContainer, + TargetBSS-ToSourceBSS-TransparentContainer, + TargeteNB-ToSourceeNB-TransparentContainer, + TargetID, + TargetRNC-ToSourceRNC-TransparentContainer, + TimeToWait, + TraceActivation, + TrafficLoadReductionIndication, + E-UTRAN-Trace-ID, + TransportLayerAddress, + UEIdentityIndexValue, + UEPagingID, + UERadioCapability, + UE-S1AP-IDs, + UE-associatedLogicalS1-ConnectionItem, + UESecurityCapabilities, + S-TMSI, + MessageIdentifier, + SerialNumber, + WarningAreaList, + RepetitionPeriod, + NumberofBroadcastRequest, + WarningType, + WarningSecurityInfo, + DataCodingScheme, + WarningMessageContents, + BroadcastCompletedAreaList, + RRC-Establishment-Cause, + BroadcastCancelledAreaList, + PS-ServiceNotAvailable, + GUMMEIList, + Correlation-ID, + GWContextReleaseIndication, + PrivacyIndicator, + VoiceSupportMatchIndicator, + TunnelInformation + + + +FROM S1AP-IEs + + PrivateIE-Container{}, + ProtocolExtensionContainer{}, + ProtocolIE-Container{}, + ProtocolIE-ContainerList{}, + ProtocolIE-ContainerPair{}, + ProtocolIE-ContainerPairList{}, + ProtocolIE-SingleContainer{}, + S1AP-PRIVATE-IES, + S1AP-PROTOCOL-EXTENSION, + S1AP-PROTOCOL-IES, + S1AP-PROTOCOL-IES-PAIR +FROM S1AP-Containers + + + id-uEaggregateMaximumBitrate, + id-Cause, + id-CellAccessMode, + id-cdma2000HORequiredIndication, + id-cdma2000HOStatus, + id-cdma2000OneXSRVCCInfo, + id-cdma2000OneXRAND, + id-cdma2000PDU, + id-cdma2000RATType, + id-cdma2000SectorID, + id-EUTRANRoundTripDelayEstimationInfo, + id-CNDomain, + id-ConcurrentWarningMessageIndicator, + id-CriticalityDiagnostics, + id-CSFallbackIndicator, + id-CSG-Id, + id-CSG-IdList, + id-CSGMembershipStatus, + id-Data-Forwarding-Not-Possible, + id-DefaultPagingDRX, + id-Direct-Forwarding-Path-Availability, + id-Global-ENB-ID, + id-EUTRAN-CGI, + id-eNBname, + id-eNB-StatusTransfer-TransparentContainer, + id-eNB-UE-S1AP-ID, + id-GERANtoLTEHOInformationRes, + id-GUMMEI-ID, + id-GUMMEIType, + id-HandoverRestrictionList, + id-HandoverType, + id-InitialContextSetup, + id-Inter-SystemInformationTransferTypeEDT, + id-Inter-SystemInformationTransferTypeMDT, + id-LPPa-PDU, + id-NAS-DownlinkCount, + id-ManagementBasedMDTAllowed, + id-ManagementBasedMDTPLMNList, + id-MMEname, + id-MME-UE-S1AP-ID, + id-MSClassmark2, + id-MSClassmark3, + id-NAS-PDU, + id-NASSecurityParametersfromE-UTRAN, + id-NASSecurityParameterstoE-UTRAN, + id-OverloadResponse, + id-pagingDRX, + id-PagingPriority, + id-RelativeMMECapacity, + id-RequestType, + id-Routing-ID, + id-E-RABAdmittedItem, + id-E-RABAdmittedList, + id-E-RABDataForwardingItem, + id-E-RABFailedToModifyList, + id-E-RABFailedToReleaseList, + id-E-RABFailedtoSetupItemHOReqAck, + id-E-RABFailedToSetupListBearerSURes, + id-E-RABFailedToSetupListCtxtSURes, + id-E-RABFailedToSetupListHOReqAck, + id-E-RABFailedToBeReleasedList, + id-E-RABModify, + id-E-RABModifyItemBearerModRes, + id-E-RABModifyListBearerModRes, + id-E-RABRelease, + id-E-RABReleaseItemBearerRelComp, + id-E-RABReleaseItemHOCmd, + id-E-RABReleaseListBearerRelComp, + id-E-RABReleaseIndication, + id-E-RABSetup, + id-E-RABSetupItemBearerSURes, + id-E-RABSetupItemCtxtSURes, + id-E-RABSetupListBearerSURes, + id-E-RABSetupListCtxtSURes, + id-E-RABSubjecttoDataForwardingList, + id-E-RABToBeModifiedItemBearerModReq, + id-E-RABToBeModifiedListBearerModReq, + id-E-RABToBeReleasedList, + id-E-RABReleasedList, + id-E-RABToBeSetupItemBearerSUReq, + id-E-RABToBeSetupItemCtxtSUReq, + id-E-RABToBeSetupItemHOReq, + id-E-RABToBeSetupListBearerSUReq, + id-E-RABToBeSetupListCtxtSUReq, + id-E-RABToBeSetupListHOReq, + id-E-RABToBeSwitchedDLItem, + id-E-RABToBeSwitchedDLList, + id-E-RABToBeSwitchedULList, + id-E-RABToBeSwitchedULItem, + id-E-RABtoReleaseListHOCmd, + id-SecurityKey, + id-SecurityContext, + id-ServedGUMMEIs, + id-SONConfigurationTransferECT, + id-SONConfigurationTransferMCT, + id-Source-ToTarget-TransparentContainer, + id-Source-ToTarget-TransparentContainer-Secondary, + id-SourceMME-UE-S1AP-ID, + id-SRVCCOperationPossible, + id-SRVCCHOIndication, + id-SubscriberProfileIDforRFP, + id-SupportedTAs, + id-S-TMSI, + id-TAI, + id-TAIItem, + id-TAIList, + id-Target-ToSource-TransparentContainer, + id-Target-ToSource-TransparentContainer-Secondary, + id-TargetID, + id-TimeToWait, + id-TraceActivation, + id-TrafficLoadReductionIndication, + id-E-UTRAN-Trace-ID, + id-UEIdentityIndexValue, + id-UEPagingID, + id-UERadioCapability, + id-UTRANtoLTEHOInformationRes, + id-UE-associatedLogicalS1-ConnectionListResAck, + id-UE-associatedLogicalS1-ConnectionItem, + id-UESecurityCapabilities, + id-UE-S1AP-IDs, + id-ResetType, + id-MessageIdentifier, + id-SerialNumber, + id-WarningAreaList, + id-RepetitionPeriod, + id-NumberofBroadcastRequest, + id-WarningType, + id-WarningSecurityInfo, + id-DataCodingScheme, + id-WarningMessageContents, + id-BroadcastCompletedAreaList, + id-BroadcastCancelledAreaList, + id-RRC-Establishment-Cause, + id-TraceCollectionEntityIPAddress, + maxnoofTAIs, + maxnoofErrors, + maxnoofE-RABs, + maxnoofIndividualS1ConnectionsToReset, + maxnoofEmergencyAreaID, + maxnoofCellID, + maxnoofTAIforWarning, + maxnoofCellinTAI, + maxnoofCellinEAI, + id-ExtendedRepetitionPeriod, + id-PS-ServiceNotAvailable, + id-RegisteredLAI, + id-GUMMEIList, + id-SourceMME-GUMMEI, + id-MME-UE-S1AP-ID-2, + id-GW-TransportLayerAddress, + id-RelayNode-Indicator, + id-Correlation-ID, + id-MMERelaySupportIndicator, + id-GWContextReleaseIndication, + id-PrivacyIndicator, + id-VoiceSupportMatchIndicator, + id-Tunnel-Information-for-BBF + + +FROM S1AP-Constants; + +-- ************************************************************** +-- +-- Common Container Lists +-- +-- ************************************************************** + +E-RAB-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofE-RABs, {IEsSetParam} } +E-RAB-IE-ContainerPairList { S1AP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxnoofE-RABs, {IEsSetParam} } +ProtocolError-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofE-RABs, {IEsSetParam} } + +-- ************************************************************** +-- +-- HANDOVER PREPARATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Required +-- +-- ************************************************************** + +HandoverRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverRequiredIEs} }, + ... +} + +HandoverRequiredIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-TargetID CRITICALITY reject TYPE TargetID PRESENCE mandatory}| + { ID id-Direct-Forwarding-Path-Availability CRITICALITY ignore TYPE Direct-Forwarding-Path-Availability PRESENCE optional}| + { ID id-SRVCCHOIndication CRITICALITY reject TYPE SRVCCHOIndication PRESENCE optional}| + { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory}| + { ID id-Source-ToTarget-TransparentContainer-Secondary CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE optional}| + { ID id-MSClassmark2 CRITICALITY reject TYPE MSClassmark2 PRESENCE conditional}| + { ID id-MSClassmark3 CRITICALITY ignore TYPE MSClassmark3 PRESENCE conditional}| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional}| + { ID id-PS-ServiceNotAvailable CRITICALITY ignore TYPE PS-ServiceNotAvailable PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- Handover Command +-- +-- ************************************************************** + +HandoverCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCommandIEs} }, + ... +} + +HandoverCommandIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}| + { ID id-NASSecurityParametersfromE-UTRAN CRITICALITY reject TYPE NASSecurityParametersfromE-UTRAN PRESENCE conditional + -- This IE shall be present if HandoverType IE is set to value "LTEtoUTRAN" or "LTEtoGERAN" --}| + { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional}| + { ID id-E-RABtoReleaseListHOCmd CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory}| + { ID id-Target-ToSource-TransparentContainer-Secondary CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +E-RABSubjecttoDataForwardingList ::= E-RAB-IE-ContainerList { {E-RABDataForwardingItemIEs} } + +E-RABDataForwardingItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABDataForwardingItem CRITICALITY ignore TYPE E-RABDataForwardingItem PRESENCE mandatory }, + ... +} + +E-RABDataForwardingItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-transportLayerAddress TransportLayerAddress OPTIONAL, + dL-gTP-TEID GTP-TEID OPTIONAL, + uL-TransportLayerAddress TransportLayerAddress OPTIONAL, + uL-GTP-TEID GTP-TEID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { E-RABDataForwardingItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABDataForwardingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- Handover Preparation Failure +-- +-- ************************************************************** + +HandoverPreparationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverPreparationFailureIEs} }, + ... +} + +HandoverPreparationFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER RESOURCE ALLOCATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Request +-- +-- ************************************************************** + +HandoverRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {HandoverRequestIEs} }, + ... +} + +HandoverRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory }| + { ID id-E-RABToBeSetupListHOReq CRITICALITY reject TYPE E-RABToBeSetupListHOReq PRESENCE mandatory }| + { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory }| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory }| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional }| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional }| + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE optional }| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional }| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory }| + { ID id-NASSecurityParameterstoE-UTRAN CRITICALITY reject TYPE NASSecurityParameterstoE-UTRAN PRESENCE conditional + -- This IE shall be present if the Handover Type IE is set to the value "UTRANtoLTE" or "GERANtoLTE" -- }| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional }| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional }| + { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional }| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional }| + { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional }| + { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional }, + ... +} + +E-RABToBeSetupListHOReq ::= E-RAB-IE-ContainerList { {E-RABToBeSetupItemHOReqIEs} } + +E-RABToBeSetupItemHOReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemHOReq CRITICALITY reject TYPE E-RABToBeSetupItemHOReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemHOReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + e-RABlevelQosParameters E-RABLevelQoSParameters, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemHOReq-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSetupItemHOReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-Data-Forwarding-Not-Possible CRITICALITY ignore EXTENSION Data-Forwarding-Not-Possible PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Handover Request Acknowledge +-- +-- ************************************************************** + +HandoverRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {HandoverRequestAcknowledgeIEs} }, + ... +} + +HandoverRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABAdmittedList CRITICALITY ignore TYPE E-RABAdmittedList PRESENCE mandatory }| + { ID id-E-RABFailedToSetupListHOReqAck CRITICALITY ignore TYPE E-RABFailedtoSetupListHOReqAck PRESENCE optional }| + { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory }| + { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }| + { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional }, + ... +} + +E-RABAdmittedList ::= E-RAB-IE-ContainerList { {E-RABAdmittedItemIEs} } + +E-RABAdmittedItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABAdmittedItem CRITICALITY ignore TYPE E-RABAdmittedItem PRESENCE mandatory }, + ... +} + +E-RABAdmittedItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + dL-transportLayerAddress TransportLayerAddress OPTIONAL, + dL-gTP-TEID GTP-TEID OPTIONAL, + uL-TransportLayerAddress TransportLayerAddress OPTIONAL, + uL-GTP-TEID GTP-TEID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABAdmittedItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABAdmittedItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABFailedtoSetupListHOReqAck ::= E-RAB-IE-ContainerList { {E-RABFailedtoSetupItemHOReqAckIEs} } + +E-RABFailedtoSetupItemHOReqAckIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABFailedtoSetupItemHOReqAck CRITICALITY ignore TYPE E-RABFailedToSetupItemHOReqAck PRESENCE mandatory }, + ... +} + +E-RABFailedToSetupItemHOReqAck ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { E-RABFailedToSetupItemHOReqAckExtIEs} } OPTIONAL, + ... +} + +E-RABFailedToSetupItemHOReqAckExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Handover Failure +-- +-- ************************************************************** + +HandoverFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverFailureIEs} }, + ... +} + +HandoverFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER NOTIFICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Notify +-- +-- ************************************************************** + +HandoverNotify ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverNotifyIEs} }, + ... +} + +HandoverNotifyIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory }| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- PATH SWITCH REQUEST ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Path Switch Request +-- +-- ************************************************************** + +PathSwitchRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestIEs} }, + ... +} + +PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABToBeSwitchedDLList CRITICALITY reject TYPE E-RABToBeSwitchedDLList PRESENCE mandatory }| + { ID id-SourceMME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory }| + { ID id-UESecurityCapabilities CRITICALITY ignore TYPE UESecurityCapabilities PRESENCE mandatory }| + { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional }| + { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional }| + { ID id-SourceMME-GUMMEI CRITICALITY ignore TYPE GUMMEI PRESENCE optional }| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional }| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional }, + ... +} + +E-RABToBeSwitchedDLList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedDLItemIEs} } + +E-RABToBeSwitchedDLItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSwitchedDLItem CRITICALITY reject TYPE E-RABToBeSwitchedDLItem PRESENCE mandatory }, + ... +} + +E-RABToBeSwitchedDLItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedDLItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSwitchedDLItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Path Switch Request Acknowledge +-- +-- ************************************************************** + +PathSwitchRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestAcknowledgeIEs} }, + ... +} + +PathSwitchRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeSwitchedULList CRITICALITY ignore TYPE E-RABToBeSwitchedULList PRESENCE optional }| + { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional }| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional }, + ... +} + +E-RABToBeSwitchedULList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedULItemIEs} } + +E-RABToBeSwitchedULItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSwitchedULItem CRITICALITY ignore TYPE E-RABToBeSwitchedULItem PRESENCE mandatory }, + ... +} + +E-RABToBeSwitchedULItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedULItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSwitchedULItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Path Switch Request Failure +-- +-- ************************************************************** + +PathSwitchRequestFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestFailureIEs} }, + ... +} + +PathSwitchRequestFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER CANCEL ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Cancel +-- +-- ************************************************************** + +HandoverCancel ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCancelIEs} }, + ... +} + +HandoverCancelIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Handover Cancel Request Acknowledge +-- +-- ************************************************************** + +HandoverCancelAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCancelAcknowledgeIEs} }, + ... +} + +HandoverCancelAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- E-RAB SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Setup Request +-- +-- ************************************************************** + +E-RABSetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABSetupRequestIEs} }, + ... +} + +E-RABSetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeSetupListBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupListBearerSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupListBearerSUReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemBearerSUReqIEs} } + +E-RABToBeSetupItemBearerSUReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupItemBearerSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemBearerSUReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABlevelQoSParameters E-RABLevelQoSParameters, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + nAS-PDU NAS-PDU, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemBearerSUReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeSetupItemBearerSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- E-RAB Setup Response +-- +-- ************************************************************** + +E-RABSetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABSetupResponseIEs} }, + ... +} + +E-RABSetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABSetupListBearerSURes CRITICALITY ignore TYPE E-RABSetupListBearerSURes PRESENCE optional }| + { ID id-E-RABFailedToSetupListBearerSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABSetupListBearerSURes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemBearerSUResIEs} } + +E-RABSetupItemBearerSUResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABSetupItemBearerSURes CRITICALITY ignore TYPE E-RABSetupItemBearerSURes PRESENCE mandatory }, + ... +} + +E-RABSetupItemBearerSURes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemBearerSUResExtIEs} } OPTIONAL, + ... +} + + +E-RABSetupItemBearerSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- E-RAB MODIFY ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Modify Request +-- +-- ************************************************************** + +E-RABModifyRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABModifyRequestIEs} }, + ... +} + +E-RABModifyRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeModifiedListBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedListBearerModReq PRESENCE mandatory }, + ... +} + +E-RABToBeModifiedListBearerModReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeModifiedItemBearerModReqIEs} } + +E-RABToBeModifiedItemBearerModReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeModifiedItemBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModReq PRESENCE mandatory }, + ... +} + +E-RABToBeModifiedItemBearerModReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABLevelQoSParameters E-RABLevelQoSParameters, + nAS-PDU NAS-PDU, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeModifyItemBearerModReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeModifyItemBearerModReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- E-RAB Modify Response +-- +-- ************************************************************** + +E-RABModifyResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABModifyResponseIEs} }, + ... +} + +E-RABModifyResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABModifyListBearerModRes CRITICALITY ignore TYPE E-RABModifyListBearerModRes PRESENCE optional }| + { ID id-E-RABFailedToModifyList CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABModifyListBearerModRes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModResIEs} } + +E-RABModifyItemBearerModResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABModifyItemBearerModRes CRITICALITY ignore TYPE E-RABModifyItemBearerModRes PRESENCE mandatory}, + ... +} + +E-RABModifyItemBearerModRes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModResExtIEs} } OPTIONAL, + ... +} + + +E-RABModifyItemBearerModResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + + +-- ************************************************************** +-- +-- E-RAB RELEASE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Release Command +-- +-- ************************************************************** + +E-RABReleaseCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABReleaseCommandIEs} }, + ... +} + +E-RABReleaseCommandIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }| + { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- E-RAB Release Response +-- +-- ************************************************************** + +E-RABReleaseResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { E-RABReleaseResponseIEs } }, + ... +} + +E-RABReleaseResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABReleaseListBearerRelComp CRITICALITY ignore TYPE E-RABReleaseListBearerRelComp PRESENCE optional }| + { ID id-E-RABFailedToReleaseList CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABReleaseListBearerRelComp ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABReleaseItemBearerRelCompIEs} } + +E-RABReleaseItemBearerRelCompIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABReleaseItemBearerRelComp CRITICALITY ignore TYPE E-RABReleaseItemBearerRelComp PRESENCE mandatory }, + ... +} + +E-RABReleaseItemBearerRelComp ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABReleaseItemBearerRelCompExtIEs} } OPTIONAL, + ... +} + + +E-RABReleaseItemBearerRelCompExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- E-RAB RELEASE INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Release Indication +-- +-- ************************************************************** + +E-RABReleaseIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABReleaseIndicationIEs} }, + ... +} + +E-RABReleaseIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }, + ... +} +-- ************************************************************** +-- +-- INITIAL CONTEXT SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Initial Context Setup Request +-- +-- ************************************************************** + +InitialContextSetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupRequestIEs} }, + ... +} + +InitialContextSetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory }| + { ID id-E-RABToBeSetupListCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupListCtxtSUReq PRESENCE mandatory }| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory }| + { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE mandatory }| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional }| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional }| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional }| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional }| + { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional }| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional }| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional }| + { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional }| + { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional }| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional }| + { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional }| + { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional }, + ... +} + + + + +E-RABToBeSetupListCtxtSUReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemCtxtSUReqIEs} } + +E-RABToBeSetupItemCtxtSUReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupItemCtxtSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemCtxtSUReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABlevelQoSParameters E-RABLevelQoSParameters, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + nAS-PDU NAS-PDU OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemCtxtSUReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeSetupItemCtxtSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- Initial Context Setup Response +-- +-- ************************************************************** + +InitialContextSetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupResponseIEs} }, + ... +} + +InitialContextSetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABSetupListCtxtSURes CRITICALITY ignore TYPE E-RABSetupListCtxtSURes PRESENCE mandatory }| + { ID id-E-RABFailedToSetupListCtxtSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABSetupListCtxtSURes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemCtxtSUResIEs} } + +E-RABSetupItemCtxtSUResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABSetupItemCtxtSURes CRITICALITY ignore TYPE E-RABSetupItemCtxtSURes PRESENCE mandatory }, + ... +} + +E-RABSetupItemCtxtSURes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemCtxtSUResExtIEs} } OPTIONAL, + ... +} + + +E-RABSetupItemCtxtSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Initial Context Setup Failure +-- +-- ************************************************************** + +InitialContextSetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupFailureIEs} }, + ... +} + +InitialContextSetupFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- PAGING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + + +-- ************************************************************** +-- +-- Paging +-- +-- ************************************************************** + +Paging ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{PagingIEs}}, + ... +} + +PagingIEs S1AP-PROTOCOL-IES ::= { + { ID id-UEIdentityIndexValue CRITICALITY ignore TYPE UEIdentityIndexValue PRESENCE mandatory }| + { ID id-UEPagingID CRITICALITY ignore TYPE UEPagingID PRESENCE mandatory }| + { ID id-pagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional }| + { ID id-CNDomain CRITICALITY ignore TYPE CNDomain PRESENCE mandatory }| + { ID id-TAIList CRITICALITY ignore TYPE TAIList PRESENCE mandatory }| + { ID id-CSG-IdList CRITICALITY ignore TYPE CSG-IdList PRESENCE optional }| + { ID id-PagingPriority CRITICALITY ignore TYPE PagingPriority PRESENCE optional }, + ... +} + +TAIList::= SEQUENCE (SIZE(1.. maxnoofTAIs)) OF ProtocolIE-SingleContainer {{TAIItemIEs}} + +TAIItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-TAIItem CRITICALITY ignore TYPE TAIItem PRESENCE mandatory }, + ... +} + +TAIItem ::= SEQUENCE { + tAI TAI, + iE-Extensions ProtocolExtensionContainer { {TAIItemExtIEs} } OPTIONAL, + ... +} + + +TAIItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- UE CONTEXT RELEASE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Release Request +-- +-- ************************************************************** + +UEContextReleaseRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseRequest-IEs}}, + ... +} + +UEContextReleaseRequest-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-GWContextReleaseIndication CRITICALITY reject TYPE GWContextReleaseIndication PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- UE Context Release Command +-- +-- ************************************************************** + +UEContextReleaseCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseCommand-IEs}}, + ... +} + +UEContextReleaseCommand-IEs S1AP-PROTOCOL-IES ::= { + { ID id-UE-S1AP-IDs CRITICALITY reject TYPE UE-S1AP-IDs PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UE Context Release Complete +-- +-- ************************************************************** + +UEContextReleaseComplete ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseComplete-IEs}}, + ... +} + +UEContextReleaseComplete-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- UE CONTEXT MODIFICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Modification Request +-- +-- ************************************************************** + +UEContextModificationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationRequestIEs} }, + ... +} + +UEContextModificationRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE optional }| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional }| + { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional }| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE optional }| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional }| + { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- UE Context Modification Response +-- +-- ************************************************************** + +UEContextModificationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationResponseIEs} }, + ... +} + +UEContextModificationResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- UE Context Modification Failure +-- +-- ************************************************************** + +UEContextModificationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationFailureIEs} }, + ... +} + +UEContextModificationFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- UE RADIO CAPABILITY MATCH ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Radio Capability Match Request +-- +-- ************************************************************** + +UERadioCapabilityMatchRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UERadioCapabilityMatchRequestIEs} }, + ... +} + +UERadioCapabilityMatchRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- UE Radio Capability Match Response +-- +-- ************************************************************** + +UERadioCapabilityMatchResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UERadioCapabilityMatchResponseIEs} }, + ... +} + +UERadioCapabilityMatchResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-VoiceSupportMatchIndicator CRITICALITY reject TYPE VoiceSupportMatchIndicator PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- NAS TRANSPORT ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- DOWNLINK NAS TRANSPORT +-- +-- ************************************************************** + +DownlinkNASTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkNASTransport-IEs}}, + ... +} + +DownlinkNASTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory }| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional }| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- INITIAL UE MESSAGE +-- +-- ************************************************************** + +InitialUEMessage ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{InitialUEMessage-IEs}}, + ... +} + +InitialUEMessage-IEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory }| + { ID id-TAI CRITICALITY reject TYPE TAI PRESENCE mandatory }| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }| + { ID id-RRC-Establishment-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE mandatory }| + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE optional }| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional }| + { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE optional }| + { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional }| + { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional }| + { ID id-RelayNode-Indicator CRITICALITY reject TYPE RelayNode-Indicator PRESENCE optional }| + { ID id-GUMMEIType CRITICALITY ignore TYPE GUMMEIType PRESENCE optional }| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- UPLINK NAS TRANSPORT +-- +-- ************************************************************** + +UplinkNASTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkNASTransport-IEs}}, + ... +} + +UplinkNASTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory }| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory }| + { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- NAS NON DELIVERY INDICATION +-- +-- ************************************************************** + +NASNonDeliveryIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{NASNonDeliveryIndication-IEs}}, + ... +} + +NASNonDeliveryIndication-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- RESET ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Reset +-- +-- ************************************************************** + +Reset ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ResetIEs} }, + ... +} + +ResetIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-ResetType CRITICALITY reject TYPE ResetType PRESENCE mandatory }, + ... +} + +ResetType ::= CHOICE { + s1-Interface ResetAll, + partOfS1-Interface UE-associatedLogicalS1-ConnectionListRes, + ... +} + + + +ResetAll ::= ENUMERATED { + reset-all, + ... +} + +UE-associatedLogicalS1-ConnectionListRes ::= SEQUENCE (SIZE(1.. maxnoofIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemRes } } + +UE-associatedLogicalS1-ConnectionItemRes S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY reject TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- Reset Acknowledge +-- +-- ************************************************************** + +ResetAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} }, + ... +} + +ResetAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionListResAck CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionListResAck PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +UE-associatedLogicalS1-ConnectionListResAck ::= SEQUENCE (SIZE(1.. maxnoofIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemResAck } } + +UE-associatedLogicalS1-ConnectionItemResAck S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- ERROR INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Error Indication +-- +-- ************************************************************** + +ErrorIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ErrorIndicationIEs}}, + ... +} + +ErrorIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE optional }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- S1 SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- S1 Setup Request +-- +-- ************************************************************** + +S1SetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupRequestIEs} }, + ... +} + +S1SetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory }| + { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional }| + { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE mandatory }| + { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE mandatory }| + { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- S1 Setup Response +-- +-- ************************************************************** + +S1SetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupResponseIEs} }, + ... +} + + +S1SetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }| + { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE mandatory }| + { ID id-RelativeMMECapacity CRITICALITY ignore TYPE RelativeMMECapacity PRESENCE mandatory }| + { ID id-MMERelaySupportIndicator CRITICALITY ignore TYPE MMERelaySupportIndicator PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- S1 Setup Failure +-- +-- ************************************************************** + +S1SetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupFailureIEs} }, + ... +} + +S1SetupFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Configuration Update +-- +-- ************************************************************** + +ENBConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateIEs} }, + ... +} + +ENBConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= { + { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional }| + { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE optional }| + { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional }| + { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- eNB Configuration Update Acknowledge +-- +-- ************************************************************** + +ENBConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateAcknowledgeIEs} }, + ... +} + + +ENBConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- eNB Configuration Update Failure +-- +-- ************************************************************** + +ENBConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateFailureIEs} }, + ... +} + +ENBConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, +... +} + + +-- ************************************************************** +-- +-- MME CONFIGURATION UPDATE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Configuration Update +-- +-- ************************************************************** + +MMEConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateIEs} }, + ... +} + +MMEConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= { + { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }| + { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE optional }| + { ID id-RelativeMMECapacity CRITICALITY reject TYPE RelativeMMECapacity PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- MME Configuration Update Acknowledge +-- +-- ************************************************************** + +MMEConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateAcknowledgeIEs} }, + ... +} + + +MMEConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- MME Configuration Update Failure +-- +-- ************************************************************** + +MMEConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateFailureIEs} }, + ... +} + +MMEConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- DOWNLINK S1 CDMA2000 TUNNELING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Downlink S1 CDMA2000 Tunneling +-- +-- ************************************************************** + +DownlinkS1cdma2000tunneling ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {DownlinkS1cdma2000tunnelingIEs} }, + ... +} + +DownlinkS1cdma2000tunnelingIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional }| + { ID id-cdma2000HOStatus CRITICALITY ignore TYPE Cdma2000HOStatus PRESENCE optional }| + { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory }| + { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UPLINK S1 CDMA2000 TUNNELING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Uplink S1 CDMA2000 Tunneling +-- +-- ************************************************************** + +UplinkS1cdma2000tunneling ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {UplinkS1cdma2000tunnelingIEs} }, + ... +} + +UplinkS1cdma2000tunnelingIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory }| + { ID id-cdma2000SectorID CRITICALITY reject TYPE Cdma2000SectorID PRESENCE mandatory }| + { ID id-cdma2000HORequiredIndication CRITICALITY ignore TYPE Cdma2000HORequiredIndication PRESENCE optional }| + { ID id-cdma2000OneXSRVCCInfo CRITICALITY reject TYPE Cdma2000OneXSRVCCInfo PRESENCE optional }| + { ID id-cdma2000OneXRAND CRITICALITY reject TYPE Cdma2000OneXRAND PRESENCE optional }| + { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory }| + { ID id-EUTRANRoundTripDelayEstimationInfo CRITICALITY ignore TYPE EUTRANRoundTripDelayEstimationInfo PRESENCE optional }, + -- Extension for Release 9 to assist target HRPD access with the acquisition of the UE -- + ... +} + + +-- ************************************************************** +-- +-- UE CAPABILITY INFO INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Capability Info Indication +-- +-- ************************************************************** + +UECapabilityInfoIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UECapabilityInfoIndicationIEs} }, + ... +} + +UECapabilityInfoIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- eNB STATUS TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Status Transfer +-- +-- ************************************************************** + +ENBStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBStatusTransferIEs} }, + ... +} + +ENBStatusTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- MME STATUS TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Status Transfer +-- +-- ************************************************************** + +MMEStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEStatusTransferIEs} }, + ... +} + +MMEStatusTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- TRACE ELEMENTARY PROCEDURES +-- +-- ************************************************************** +-- ************************************************************** +-- +-- Trace Start +-- +-- ************************************************************** + +TraceStart ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {TraceStartIEs} }, + ... +} + +TraceStartIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Trace Failure Indication +-- +-- ************************************************************** + +TraceFailureIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {TraceFailureIndicationIEs} }, + ... +} + +TraceFailureIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- DEACTIVATE TRACE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Deactivate Trace +-- +-- ************************************************************** + +DeactivateTrace ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { DeactivateTraceIEs} }, + ... +} + +DeactivateTraceIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- CELL TRAFFIC TRACE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Cell Traffic Trace +-- +-- ************************************************************** + +CellTrafficTrace ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { CellTrafficTraceIEs } }, + ... +} + +CellTrafficTraceIEs S1AP-PROTOCOL-IES ::= { + {ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + {ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + {ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }| + {ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }| + {ID id-TraceCollectionEntityIPAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE mandatory }| + {ID id-PrivacyIndicator CRITICALITY ignore TYPE PrivacyIndicator PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- LOCATION ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Location Reporting Control +-- +-- ************************************************************** + +LocationReportingControl ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportingControlIEs} }, + ... +} + +LocationReportingControlIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Location Report Failure Indication +-- +-- ************************************************************** + +LocationReportingFailureIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportingFailureIndicationIEs} }, + ... +} + +LocationReportingFailureIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Location Report +-- +-- ************************************************************** + +LocationReport ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportIEs} }, + ... +} + +LocationReportIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory }| + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- OVERLOAD ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Overload Start +-- +-- ************************************************************** + +OverloadStart ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {OverloadStartIEs} }, + ... +} + +OverloadStartIEs S1AP-PROTOCOL-IES ::= { + { ID id-OverloadResponse CRITICALITY reject TYPE OverloadResponse PRESENCE mandatory }| + { ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional }| + { ID id-TrafficLoadReductionIndication CRITICALITY ignore TYPE TrafficLoadReductionIndication PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- Overload Stop +-- +-- ************************************************************** + +OverloadStop ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {OverloadStopIEs} }, + ... +} + +OverloadStopIEs S1AP-PROTOCOL-IES ::= { +{ ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- WRITE-REPLACE WARNING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Write-Replace Warning Request +-- +-- ************************************************************** + + +WriteReplaceWarningRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {WriteReplaceWarningRequestIEs} }, + ... +} + +WriteReplaceWarningRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional }| + { ID id-RepetitionPeriod CRITICALITY reject TYPE RepetitionPeriod PRESENCE mandatory }| + { ID id-ExtendedRepetitionPeriod CRITICALITY reject TYPE ExtendedRepetitionPeriod PRESENCE optional }| + { ID id-NumberofBroadcastRequest CRITICALITY reject TYPE NumberofBroadcastRequest PRESENCE mandatory }| + { ID id-WarningType CRITICALITY ignore TYPE WarningType PRESENCE optional }| + { ID id-WarningSecurityInfo CRITICALITY ignore TYPE WarningSecurityInfo PRESENCE optional }| + { ID id-DataCodingScheme CRITICALITY ignore TYPE DataCodingScheme PRESENCE optional }| + { ID id-WarningMessageContents CRITICALITY ignore TYPE WarningMessageContents PRESENCE optional }| + { ID id-ConcurrentWarningMessageIndicator CRITICALITY reject TYPE ConcurrentWarningMessageIndicator PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- Write-Replace Warning Response +-- +-- ************************************************************** + +WriteReplaceWarningResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {WriteReplaceWarningResponseIEs} }, + ... +} + +WriteReplaceWarningResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-BroadcastCompletedAreaList CRITICALITY ignore TYPE BroadcastCompletedAreaList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- eNB DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Direct Information Transfer +-- +-- ************************************************************** + +ENBDirectInformationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ ENBDirectInformationTransferIEs}}, + ... +} + +ENBDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-Inter-SystemInformationTransferTypeEDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory }, + ... +} + +Inter-SystemInformationTransferType ::= CHOICE { + rIMTransfer RIMTransfer, + ... +} + +-- ************************************************************** +-- +-- MME DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Direct Information Transfer +-- +-- ************************************************************** + +MMEDirectInformationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ MMEDirectInformationTransferIEs}}, + ... +} + +MMEDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-Inter-SystemInformationTransferTypeMDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory }, + ... +} +-- ************************************************************** +-- +-- eNB CONFIGURATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Configuration Transfer +-- +-- ************************************************************** + +ENBConfigurationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ ENBConfigurationTransferIEs}}, + ... +} + +ENBConfigurationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-SONConfigurationTransferECT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- MME CONFIGURATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Configuration Transfer +-- +-- ************************************************************** + +MMEConfigurationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ MMEConfigurationTransferIEs}}, + ... +} + +MMEConfigurationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-SONConfigurationTransferMCT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- PRIVATE MESSAGE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Private Message +-- +-- ************************************************************** + +PrivateMessage ::= SEQUENCE { + privateIEs PrivateIE-Container {{PrivateMessageIEs}}, + ... +} + +PrivateMessageIEs S1AP-PRIVATE-IES ::= { + ... +} + +-- ************************************************************** +-- +-- KILL PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Kill Request +-- +-- ************************************************************** + + +KillRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {KillRequestIEs} }, + ... +} + +KillRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- Kill Response +-- +-- ************************************************************** + +KillResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {KillResponseIEs} }, + ... +} + +KillResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-BroadcastCancelledAreaList CRITICALITY ignore TYPE BroadcastCancelledAreaList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- LPPA TRANSPORT ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- DOWNLINK UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +DownlinkUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkUEAssociatedLPPaTransport-IEs}}, + ... +} + +DownlinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UPLINK UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +UplinkUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkUEAssociatedLPPaTransport-IEs}}, + ... +} + +UplinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- DOWNLINK NON UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +DownlinkNonUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkNonUEAssociatedLPPaTransport-IEs}}, + ... +} + +DownlinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UPLINK NON UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +UplinkNonUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkNonUEAssociatedLPPaTransport-IEs}}, + ... +} + +UplinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + +END + + + +-- ************************************************************** +-- +-- Information Element Definitions +-- +-- ************************************************************** + +S1AP-IEs { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-IEs (2) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + id-E-RABInformationListItem, + id-E-RABItem, + id-Bearers-SubjectToStatusTransfer-Item, + id-Time-Synchronization-Info, + id-x2TNLConfigurationInfo, + id-eNBX2ExtendedTransportLayerAddresses, + id-MDTConfiguration, + id-Time-UE-StayedInCell-EnhancedGranularity, + id-HO-Cause, + id-M3Configuration, + id-M4Configuration, + id-M5Configuration, + id-MDT-Location-Info, + id-SignallingBasedMDTPLMNList, + id-MobilityInformation, + id-ULCOUNTValueExtended, + id-DLCOUNTValueExtended, + id-ReceiveStatusOfULPDCPSDUsExtended, + maxnoofCSGs, + maxnoofE-RABs, + maxnoofErrors, + maxnoofBPLMNs, + maxnoofPLMNsPerMME, + maxnoofTACs, + maxnoofEPLMNs, + maxnoofEPLMNsPlusOne, + maxnoofForbLACs, + maxnoofForbTACs, + maxnoofCells, + maxnoofCellID, + maxnoofEmergencyAreaID, + maxnoofTAIforWarning, + maxnoofCellinTAI, + maxnoofCellinEAI, + maxnoofeNBX2TLAs, + maxnoofeNBX2ExtTLAs, + maxnoofeNBX2GTPTLAs, + maxnoofRATs, + maxnoofGroupIDs, + maxnoofMMECs, + maxnoofTAforMDT, + maxnoofCellIDforMDT, + maxnoofMDTPLMNs + + + +FROM S1AP-Constants + + Criticality, + ProcedureCode, + ProtocolIE-ID, + TriggeringMessage +FROM S1AP-CommonDataTypes + + ProtocolExtensionContainer{}, + S1AP-PROTOCOL-EXTENSION, + ProtocolIE-SingleContainer{}, + S1AP-PROTOCOL-IES + +FROM S1AP-Containers; + +-- A + +AreaScopeOfMDT ::= CHOICE { + cellBased CellBasedMDT, + tABased TABasedMDT, + pLMNWide NULL, + ..., + tAIBased TAIBasedMDT +} + +AllocationAndRetentionPriority ::= SEQUENCE { + priorityLevel PriorityLevel, + pre-emptionCapability Pre-emptionCapability, + pre-emptionVulnerability Pre-emptionVulnerability, + iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, + ... +} + +AllocationAndRetentionPriority-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- B + +Bearers-SubjectToStatusTransferList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { { Bearers-SubjectToStatusTransfer-ItemIEs } } + +Bearers-SubjectToStatusTransfer-ItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-Bearers-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE Bearers-SubjectToStatusTransfer-Item PRESENCE mandatory }, + ... +} + +Bearers-SubjectToStatusTransfer-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-COUNTvalue COUNTvalue, + dL-COUNTvalue COUNTvalue, + receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {Bearers-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL, + ... +} + +Bearers-SubjectToStatusTransfer-ItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-ULCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional }| + { ID id-DLCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional }| + { ID id-ReceiveStatusOfULPDCPSDUsExtended CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsExtended PRESENCE optional }, + ... +} + +BitRate ::= INTEGER (0..10000000000) + +BPLMNs ::= SEQUENCE (SIZE(1.. maxnoofBPLMNs)) OF PLMNidentity + +BroadcastCancelledAreaList ::= CHOICE { + cellID-Cancelled CellID-Cancelled, + tAI-Cancelled TAI-Cancelled, + emergencyAreaID-Cancelled EmergencyAreaID-Cancelled, + ... +} + +BroadcastCompletedAreaList ::= CHOICE { + cellID-Broadcast CellID-Broadcast, + tAI-Broadcast TAI-Broadcast, + emergencyAreaID-Broadcast EmergencyAreaID-Broadcast, + ... +} + + +-- C + +CancelledCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CancelledCellinEAI-Item + +CancelledCellinEAI-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CancelledCellinEAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CancelledCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CancelledCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CancelledCellinTAI-Item + +CancelledCellinTAI-Item ::= SEQUENCE{ + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CancelledCellinTAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CancelledCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Cause ::= CHOICE { + radioNetwork CauseRadioNetwork, + transport CauseTransport, + nas CauseNas, + protocol CauseProtocol, + misc CauseMisc, + ... +} + +CauseMisc ::= ENUMERATED { + control-processing-overload, + not-enough-user-plane-processing-resources, + hardware-failure, + om-intervention, + unspecified, + unknown-PLMN, +... +} + +CauseProtocol ::= ENUMERATED { + transfer-syntax-error, + abstract-syntax-error-reject, + abstract-syntax-error-ignore-and-notify, + message-not-compatible-with-receiver-state, + semantic-error, + abstract-syntax-error-falsely-constructed-message, + unspecified, + ... +} + +CauseRadioNetwork ::= ENUMERATED { + unspecified, + tx2relocoverall-expiry, + successful-handover, + release-due-to-eutran-generated-reason, + handover-cancelled, + partial-handover, + ho-failure-in-target-EPC-eNB-or-target-system, + ho-target-not-allowed, + tS1relocoverall-expiry, + tS1relocprep-expiry, + cell-not-available, + unknown-targetID, + no-radio-resources-available-in-target-cell, + unknown-mme-ue-s1ap-id, + unknown-enb-ue-s1ap-id, + unknown-pair-ue-s1ap-id, + handover-desirable-for-radio-reason, + time-critical-handover, + resource-optimisation-handover, + reduce-load-in-serving-cell, + user-inactivity, + radio-connection-with-ue-lost, + load-balancing-tau-required, + cs-fallback-triggered, + ue-not-available-for-ps-service, + radio-resources-not-available, + failure-in-radio-interface-procedure, + invalid-qos-combination, + interrat-redirection, + interaction-with-other-procedure, + unknown-E-RAB-ID, + multiple-E-RAB-ID-instances, + encryption-and-or-integrity-protection-algorithms-not-supported, + s1-intra-system-handover-triggered, + s1-inter-system-handover-triggered, + x2-handover-triggered, + ..., + redirection-towards-1xRTT, + not-supported-QCI-value, + invalid-CSG-Id + +} + +CauseTransport ::= ENUMERATED { + transport-resource-unavailable, + unspecified, + ... +} + +CauseNas ::= ENUMERATED { + normal-release, + authentication-failure, + detach, + unspecified, + ..., + csg-subscription-expiry +} + +CellAccessMode ::= ENUMERATED { + hybrid, + ... +} + +CellIdentity ::= BIT STRING (SIZE (28)) + +CellID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Broadcast-Item + +CellID-Broadcast-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CellID-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +CellID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellID-Cancelled::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Cancelled-Item + +CellID-Cancelled-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CellID-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +CellID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellBasedMDT::= SEQUENCE { + cellIdListforMDT CellIdListforMDT, + iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +CellBasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF EUTRAN-CGI + +Cdma2000PDU ::= OCTET STRING + +Cdma2000RATType ::= ENUMERATED { + hRPD, + onexRTT, + ... +} + +Cdma2000SectorID ::= OCTET STRING + +Cdma2000HOStatus ::= ENUMERATED { + hOSuccess, + hOFailure, + ... +} + +Cdma2000HORequiredIndication ::= ENUMERATED { + true, + ... +} + +Cdma2000OneXSRVCCInfo ::= SEQUENCE { + cdma2000OneXMEID Cdma2000OneXMEID, + cdma2000OneXMSI Cdma2000OneXMSI, + cdma2000OneXPilot Cdma2000OneXPilot, + iE-Extensions ProtocolExtensionContainer { {Cdma2000OneXSRVCCInfo-ExtIEs} } OPTIONAL, + ... +} + +Cdma2000OneXSRVCCInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Cdma2000OneXMEID ::= OCTET STRING + +Cdma2000OneXMSI ::= OCTET STRING + +Cdma2000OneXPilot ::= OCTET STRING + +Cdma2000OneXRAND ::= OCTET STRING + + +Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ...} + +CellType ::= SEQUENCE { + cell-Size Cell-Size, + iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL, + ... +} + +CellType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CGI ::= SEQUENCE { + pLMNidentity PLMNidentity, + lAC LAC, + cI CI, + rAC RAC OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL, + ... + } + +CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CI ::= OCTET STRING (SIZE (2)) + +CNDomain ::= ENUMERATED { + ps, + cs +} + +ConcurrentWarningMessageIndicator ::= ENUMERATED { + true +} + +Correlation-ID ::= OCTET STRING (SIZE (4)) + +CSFallbackIndicator ::= ENUMERATED { + cs-fallback-required, + ..., + cs-fallback-high-priority +} + +CSG-Id ::= BIT STRING (SIZE (27)) + + +CSG-IdList ::= SEQUENCE (SIZE (1.. maxnoofCSGs)) OF CSG-IdList-Item + +CSG-IdList-Item ::= SEQUENCE { + cSG-Id CSG-Id, + iE-Extensions ProtocolExtensionContainer { {CSG-IdList-Item-ExtIEs} } OPTIONAL, + ... +} + +CSG-IdList-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CSGMembershipStatus ::= ENUMERATED { + member, + not-member +} + + +COUNTvalue ::= SEQUENCE { + pDCP-SN PDCP-SN, + hFN HFN, + iE-Extensions ProtocolExtensionContainer { {COUNTvalue-ExtIEs} } OPTIONAL, + ... +} +COUNTvalue-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTValueExtended ::= SEQUENCE { + pDCP-SNExtended PDCP-SNExtended, + hFNModified HFNModified, + iE-Extensions ProtocolExtensionContainer { {COUNTValueExtended-ExtIEs} } OPTIONAL, + ... +} + +COUNTValueExtended-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-ExtIEs}} OPTIONAL, + ... +} + +CriticalityDiagnostics-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1.. maxnoofErrors)) OF CriticalityDiagnostics-IE-Item + +CriticalityDiagnostics-IE-Item ::= SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-IE-Item-ExtIEs}} OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- D + +DataCodingScheme ::= BIT STRING (SIZE (8)) + +DL-Forwarding ::= ENUMERATED { + dL-Forwarding-proposed, + ... +} + +Direct-Forwarding-Path-Availability ::= ENUMERATED { + directPathAvailable, + ... +} + +Data-Forwarding-Not-Possible ::= ENUMERATED { + data-Forwarding-not-Possible, + ... +} + +-- E + +ECGIList ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF EUTRAN-CGI + +EmergencyAreaIDList ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID + +EmergencyAreaID ::= OCTET STRING (SIZE (3)) + +EmergencyAreaID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Broadcast-Item + +EmergencyAreaID-Broadcast-Item ::= SEQUENCE { + emergencyAreaID EmergencyAreaID, + completedCellinEAI CompletedCellinEAI, + iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +EmergencyAreaID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +EmergencyAreaID-Cancelled ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Cancelled-Item + +EmergencyAreaID-Cancelled-Item ::= SEQUENCE { + emergencyAreaID EmergencyAreaID, + cancelledCellinEAI CancelledCellinEAI, + iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +EmergencyAreaID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompletedCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CompletedCellinEAI-Item + +CompletedCellinEAI-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CompletedCellinEAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CompletedCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENB-ID ::= CHOICE { + macroENB-ID BIT STRING (SIZE(20)), + homeENB-ID BIT STRING (SIZE(28)), + ... +} + +GERAN-Cell-ID ::= SEQUENCE { + lAI LAI, + rAC RAC, + cI CI, + iE-Extensions ProtocolExtensionContainer { { GERAN-Cell-ID-ExtIEs} } OPTIONAL, + ... +} + +GERAN-Cell-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Global-ENB-ID ::= SEQUENCE { + pLMNidentity PLMNidentity, + eNB-ID ENB-ID, + iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL, + ... +} + +GlobalENB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +GUMMEIList::= SEQUENCE (SIZE (1.. maxnoofMMECs)) OF GUMMEI + +ENB-StatusTransfer-TransparentContainer ::= SEQUENCE { + bearers-SubjectToStatusTransferList Bearers-SubjectToStatusTransferList, + iE-Extensions ProtocolExtensionContainer { {ENB-StatusTransfer-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +ENB-StatusTransfer-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENB-UE-S1AP-ID ::= INTEGER (0..16777215) + +ENBname ::= PrintableString (SIZE (1..150,...)) + +ENBX2TLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2TLAs)) OF TransportLayerAddress + +EncryptionAlgorithms ::= BIT STRING (SIZE (16,...)) + +EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMNidentity +EventType ::= ENUMERATED { + direct, + change-of-serve-cell, + stop-change-of-serve-cell, + ... +} + +E-RAB-ID ::= INTEGER (0..15, ...) + +E-RABInformationList ::= SEQUENCE (SIZE (1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { { E-RABInformationListIEs } } + +E-RABInformationListIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABInformationListItem CRITICALITY ignore TYPE E-RABInformationListItem PRESENCE mandatory }, + ... +} + +E-RABInformationListItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-Forwarding DL-Forwarding OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABInformationListItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABInformationListItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABItemIEs} } + +E-RABItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABItem CRITICALITY ignore TYPE E-RABItem PRESENCE mandatory }, + ... +} + +E-RABItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RABItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +E-RABLevelQoSParameters ::= SEQUENCE { + qCI QCI, + allocationRetentionPriority AllocationAndRetentionPriority, + gbrQosInformation GBR-QosInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABQoSParameters-ExtIEs} } OPTIONAL, + ... +} + +E-RABQoSParameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +EUTRAN-CGI ::= SEQUENCE { + pLMNidentity PLMNidentity, + cell-ID CellIdentity, + iE-Extensions ProtocolExtensionContainer { {EUTRAN-CGI-ExtIEs} } OPTIONAL, + ... +} + +EUTRAN-CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +EUTRANRoundTripDelayEstimationInfo ::= INTEGER (0..2047) + +ExtendedRNC-ID ::= INTEGER (4096..65535) + +ExtendedRepetitionPeriod ::= INTEGER (4096..131071) + +-- F + +ForbiddenInterRATs ::= ENUMERATED { + all, + geran, + utran, + cdma2000, + ..., + geranandutran, + cdma2000andutran + +} + +ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item + +ForbiddenTAs-Item ::= SEQUENCE { + pLMN-Identity PLMNidentity, + forbiddenTACs ForbiddenTACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC + +ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item + +ForbiddenLAs-Item ::= SEQUENCE { + pLMN-Identity PLMNidentity, + forbiddenLACs ForbiddenLACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenLAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC + +-- G + +GBR-QosInformation ::= SEQUENCE { + e-RAB-MaximumBitrateDL BitRate, + e-RAB-MaximumBitrateUL BitRate, + e-RAB-GuaranteedBitrateDL BitRate, + e-RAB-GuaranteedBitrateUL BitRate, + iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL, + ... +} + +GBR-QosInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +GTP-TEID ::= OCTET STRING (SIZE (4)) + +GUMMEI ::= SEQUENCE { + pLMN-Identity PLMNidentity, + mME-Group-ID MME-Group-ID, + mME-Code MME-Code, + iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, + ... +} + +GUMMEI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +GUMMEIType ::= ENUMERATED { + native, + mapped, + ... +} + +GWContextReleaseIndication ::= ENUMERATED { + true, + ... +} + +-- H + +HandoverRestrictionList ::= SEQUENCE { + servingPLMN PLMNidentity, + equivalentPLMNs EPLMNs OPTIONAL, + forbiddenTAs ForbiddenTAs OPTIONAL, + forbiddenLAs ForbiddenLAs OPTIONAL, + forbiddenInterRATs ForbiddenInterRATs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, + ... +} + +HandoverRestrictionList-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +HandoverType ::= ENUMERATED { + intralte, + ltetoutran, + ltetogeran, + utrantolte, + gerantolte, + ... +} + +HFN ::= INTEGER (0..1048575) + +HFNModified ::= INTEGER (0..131071) + + +-- I + +ImmediateMDT ::= SEQUENCE { + measurementsToActivate MeasurementsToActivate, + m1reportingTrigger M1ReportingTrigger, + m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL, +-- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1 + m1periodicReporting M1PeriodicReporting OPTIONAL, +-- Included in case of periodic or event-triggered periodic reporting + iE-Extensions ProtocolExtensionContainer { { ImmediateMDT-ExtIEs} } OPTIONAL, + ... +} + +ImmediateMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-M3Configuration CRITICALITY ignore EXTENSION M3Configuration PRESENCE conditional}| + { ID id-M4Configuration CRITICALITY ignore EXTENSION M4Configuration PRESENCE conditional}| + { ID id-M5Configuration CRITICALITY ignore EXTENSION M5Configuration PRESENCE conditional}| + { ID id-MDT-Location-Info CRITICALITY ignore EXTENSION MDT-Location-Info PRESENCE optional}, + ... +} + +IMSI ::= OCTET STRING (SIZE (3..8)) + +IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...)) + +InterfacesToTrace ::= BIT STRING (SIZE (8)) + + + +-- J +-- K +-- L + + +LAC ::= OCTET STRING (SIZE (2)) + +LAI ::= SEQUENCE { + pLMNidentity PLMNidentity, + lAC LAC, + iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL, + ... +} + +LAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +LastVisitedCell-Item ::= CHOICE { + e-UTRAN-Cell LastVisitedEUTRANCellInformation, + uTRAN-Cell LastVisitedUTRANCellInformation, + gERAN-Cell LastVisitedGERANCellInformation, + ... +} +LastVisitedEUTRANCellInformation ::= SEQUENCE { + global-Cell-ID EUTRAN-CGI, + cellType CellType, + time-UE-StayedInCell Time-UE-StayedInCell, + iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, + ... +} +LastVisitedEUTRANCellInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Rel-11 to support enhanced granularity for time UE stayed in cell -- + { ID id-Time-UE-StayedInCell-EnhancedGranularity CRITICALITY ignore EXTENSION Time-UE-StayedInCell-EnhancedGranularity PRESENCE optional}| + { ID id-HO-Cause CRITICALITY ignore EXTENSION Cause PRESENCE optional}, + ... +} +LastVisitedUTRANCellInformation ::= OCTET STRING + +LastVisitedGERANCellInformation ::= CHOICE { + undefined NULL, + ... +} + +L3-Information ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +LPPa-PDU ::= OCTET STRING + +Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...} + +LoggedMDT ::= SEQUENCE { + loggingInterval LoggingInterval, + loggingDuration LoggingDuration, + iE-Extensions ProtocolExtensionContainer { {LoggedMDT-ExtIEs} } OPTIONAL, + ... +} + +LoggedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +... +} + +LoggingInterval ::= ENUMERATED {ms128, ms256, ms512, ms1024, ms2048, ms3072, ms4096, ms6144} + +LoggingDuration ::= ENUMERATED {m10, m20, m40, m60, m90, m120} + +-- M + +M3Configuration ::= SEQUENCE { + m3period M3period, + iE-Extensions ProtocolExtensionContainer { { M3Configuration-ExtIEs} } OPTIONAL, + ... +} + +M3Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M3period ::= ENUMERATED {ms100, ms1000, ms10000, ... } + +M4Configuration ::= SEQUENCE { + m4period M4period, + m4-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M4Configuration-ExtIEs} } OPTIONAL, + ... +} + +M4Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + +M5Configuration ::= SEQUENCE { + m5period M5period, + m5-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M5Configuration-ExtIEs} } OPTIONAL, + ... +} + +M5Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + +MDT-Activation ::= ENUMERATED { + immediate-MDT-only, + immediate-MDT-and-Trace, + logged-MDT-only, + ... +} + +MDT-Location-Info ::= BIT STRING (SIZE (8)) + +MDT-Configuration ::= SEQUENCE { + mdt-Activation MDT-Activation, + areaScopeOfMDT AreaScopeOfMDT, + mDTMode MDTMode, + iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTIONAL, + ... +} +MDT-Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-SignallingBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional }, + ... +} + +ManagementBasedMDTAllowed ::= ENUMERATED {allowed, ...} + +MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMNidentity + +PrivacyIndicator ::= ENUMERATED { + immediate-MDT, + logged-MDT, + ... +} + +MDTMode ::= CHOICE { + immediateMDT ImmediateMDT, + loggedMDT LoggedMDT, + ... +} + +MeasurementsToActivate ::= BIT STRING (SIZE (8)) + +MeasurementThresholdA2 ::= CHOICE { + threshold-RSRP Threshold-RSRP, + threshold-RSRQ Threshold-RSRQ, + ... +} + +MessageIdentifier ::= BIT STRING (SIZE (16)) + +MobilityInformation ::= BIT STRING (SIZE(32)) + +MMEname ::= PrintableString (SIZE (1..150,...)) + +MMERelaySupportIndicator ::= ENUMERATED {true, ...} + +MME-Group-ID ::= OCTET STRING (SIZE (2)) + +MME-Code ::= OCTET STRING (SIZE (1)) + +MME-UE-S1AP-ID ::= INTEGER (0..4294967295) +M-TMSI ::= OCTET STRING (SIZE (4)) + +MSClassmark2 ::= OCTET STRING +MSClassmark3 ::= OCTET STRING + +-- N + +NAS-PDU ::= OCTET STRING + +NASSecurityParametersfromE-UTRAN ::= OCTET STRING + +NASSecurityParameterstoE-UTRAN ::= OCTET STRING + +NumberofBroadcastRequest ::= INTEGER (0..65535) + +NumberOfBroadcasts ::= INTEGER (0..65535) + +-- O +OldBSS-ToNewBSS-Information ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +OverloadAction ::= ENUMERATED { + reject-non-emergency-mo-dt, + reject-rrc-cr-signalling, + permit-emergency-sessions-and-mobile-terminated-services-only, + ..., + permit-high-priority-sessions-and-mobile-terminated-services-only, + reject-delay-tolerant-access +} + +OverloadResponse ::= CHOICE { + overloadAction OverloadAction, + ... +} + + +-- P + +PagingDRX ::= ENUMERATED { + v32, + v64, + v128, + v256, + ... + } + +PagingPriority ::= ENUMERATED { + priolevel1, + priolevel2, + priolevel3, + priolevel4, + priolevel5, + priolevel6, + priolevel7, + priolevel8, + ... +} + +PDCP-SN ::= INTEGER (0..4095) + +PDCP-SNExtended ::= INTEGER (0..32767) + +M1PeriodicReporting ::= SEQUENCE { + reportInterval ReportIntervalMDT, + reportAmount ReportAmountMDT, + iE-Extensions ProtocolExtensionContainer { { M1PeriodicReporting-ExtIEs} } OPTIONAL, + ... +} + +M1PeriodicReporting-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +PLMNidentity ::= TBCD-STRING + +Port-Number ::= OCTET STRING (SIZE (2)) + +Pre-emptionCapability ::= ENUMERATED { + shall-not-trigger-pre-emption, + may-trigger-pre-emption +} + +Pre-emptionVulnerability ::= ENUMERATED { + not-pre-emptable, + pre-emptable +} + +PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) + +PS-ServiceNotAvailable ::= ENUMERATED { + ps-service-not-available, + ... +} + +-- Q + +QCI ::= INTEGER (0..255) + +-- R + +ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) + +ReceiveStatusOfULPDCPSDUsExtended ::= BIT STRING (SIZE(1..16384)) + +RelativeMMECapacity ::= INTEGER (0..255) + +RelayNode-Indicator ::= ENUMERATED { + true, + ... +} + +RAC ::= OCTET STRING (SIZE (1)) + +ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity} + +ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60} + +M1ReportingTrigger ::= ENUMERATED{ + periodic, + a2eventtriggered, + ..., + a2eventtriggered-periodic +} + +RequestType ::= SEQUENCE { + eventType EventType, + reportArea ReportArea, + iE-Extensions ProtocolExtensionContainer { { RequestType-ExtIEs} } OPTIONAL, + ... +} + + +RequestType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RIMTransfer ::= SEQUENCE { + rIMInformation RIMInformation, + rIMRoutingAddress RIMRoutingAddress OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { RIMTransfer-ExtIEs} } OPTIONAL, + ... +} + +RIMTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RIMInformation ::= OCTET STRING + +RIMRoutingAddress ::= CHOICE { + gERAN-Cell-ID GERAN-Cell-ID, + ..., + targetRNC-ID TargetRNC-ID +} + +ReportArea ::= ENUMERATED { + ecgi, + ... +} + +RepetitionPeriod ::= INTEGER (0..4095) + + +RNC-ID ::= INTEGER (0..4095) + +RRC-Container ::= OCTET STRING + +RRC-Establishment-Cause ::= ENUMERATED { + emergency, + highPriorityAccess, + mt-Access, + mo-Signalling, + mo-Data, + ..., + delay-TolerantAccess +} + +Routing-ID ::= INTEGER (0..255) + +-- S + + +SecurityKey ::= BIT STRING (SIZE(256)) + + + +SecurityContext ::= SEQUENCE { + nextHopChainingCount INTEGER (0..7), + nextHopParameter SecurityKey, + iE-Extensions ProtocolExtensionContainer { { SecurityContext-ExtIEs} } OPTIONAL, + ... +} + + +SecurityContext-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +SerialNumber ::= BIT STRING (SIZE (16)) + +SONInformation ::= CHOICE{ + sONInformationRequest SONInformationRequest, + sONInformationReply SONInformationReply, + ... +} + +SONInformationRequest ::= ENUMERATED { + x2TNL-Configuration-Info, + ..., + time-Synchronization-Info} + +SONInformationReply ::= SEQUENCE { + x2TNLConfigurationInfo X2TNLConfigurationInfo OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{SONInformationReply-ExtIEs}} OPTIONAL, + ... +} + +SONInformationReply-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Release 9 to transfer Time synchronization information -- + {ID id-Time-Synchronization-Info CRITICALITY ignore EXTENSION TimeSynchronizationInfo PRESENCE optional }, + ... +} + + +SONConfigurationTransfer ::= SEQUENCE { + targeteNB-ID TargeteNB-ID, + sourceeNB-ID SourceeNB-ID, + sONInformation SONInformation, + iE-Extensions ProtocolExtensionContainer { { SONConfigurationTransfer-ExtIEs} } OPTIONAL, +... +} + +SONConfigurationTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Release 10 to transfer the IP addresses of the eNB initiating the ANR action -- + {ID id-x2TNLConfigurationInfo CRITICALITY ignore EXTENSION X2TNLConfigurationInfo PRESENCE conditional + -- This IE shall be present if the SON Information IE contains the SON Information Request IE and the SON Information Request IE is set to “X2TNL Configuration Info” -- }, + ... +} + + + +Source-ToTarget-TransparentContainer ::= OCTET STRING +-- This IE includes a transparent container from the source RAN node to the target RAN node. +-- The octets of the OCTET STRING are encoded according to the specifications of the target system. + +SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +SourceeNB-ID ::= SEQUENCE { + global-ENB-ID Global-ENB-ID, + selected-TAI TAI, + iE-Extensions ProtocolExtensionContainer { {SourceeNB-ID-ExtIEs} } OPTIONAL +} + +SourceeNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +SRVCCOperationPossible ::= ENUMERATED { + possible, + ... +} + +SRVCCHOIndication ::= ENUMERATED { + pSandCS, + cSonly, + ... +} + +SourceeNB-ToTargeteNB-TransparentContainer ::= SEQUENCE { + rRC-Container RRC-Container, + e-RABInformationList E-RABInformationList OPTIONAL, + targetCell-ID EUTRAN-CGI, + subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, + uE-HistoryInformation UE-HistoryInformation, + iE-Extensions ProtocolExtensionContainer { {SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + {ID id-MobilityInformation CRITICALITY ignore EXTENSION MobilityInformation PRESENCE optional}, + ... +} + + +SourceRNC-ToTargetRNC-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + + +ServedGUMMEIs ::= SEQUENCE (SIZE (1.. maxnoofRATs)) OF ServedGUMMEIsItem + +ServedGUMMEIsItem ::= SEQUENCE { + servedPLMNs ServedPLMNs, + servedGroupIDs ServedGroupIDs, + servedMMECs ServedMMECs, + iE-Extensions ProtocolExtensionContainer { {ServedGUMMEIsItem-ExtIEs} } OPTIONAL, + ... +} + +ServedGUMMEIsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedGroupIDs ::= SEQUENCE (SIZE(1.. maxnoofGroupIDs)) OF MME-Group-ID +ServedMMECs ::= SEQUENCE (SIZE(1.. maxnoofMMECs)) OF MME-Code + +ServedPLMNs ::= SEQUENCE (SIZE(1.. maxnoofPLMNsPerMME)) OF PLMNidentity + +SubscriberProfileIDforRFP ::= INTEGER (1..256) + +SupportedTAs ::= SEQUENCE (SIZE(1.. maxnoofTACs)) OF SupportedTAs-Item + +SupportedTAs-Item ::= SEQUENCE { + tAC TAC, + broadcastPLMNs BPLMNs, + iE-Extensions ProtocolExtensionContainer { {SupportedTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +SupportedTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +StratumLevel ::= INTEGER (0..3, ...) + +SynchronizationStatus ::= ENUMERATED { synchronous, asynchronous, ... } + +TimeSynchronizationInfo ::= SEQUENCE { + stratumLevel StratumLevel, + synchronizationStatus SynchronizationStatus, + iE-Extensions ProtocolExtensionContainer { { TimeSynchronizationInfo-ExtIEs} } OPTIONAL, + ... +} + +TimeSynchronizationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +S-TMSI ::= SEQUENCE { + mMEC MME-Code, + m-TMSI M-TMSI, + iE-Extensions ProtocolExtensionContainer { {S-TMSI-ExtIEs} } OPTIONAL, + ... +} + +S-TMSI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- T + +TAC ::= OCTET STRING (SIZE (2)) + +TAIBasedMDT ::= SEQUENCE { + tAIListforMDT TAIListforMDT, + iE-Extensions ProtocolExtensionContainer { {TAIBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TAIBasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAIListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAI + +TAIListforWarning ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI + +TAI ::= SEQUENCE { + pLMNidentity PLMNidentity, + tAC TAC, + iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL, + ... +} + +TAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAI-Broadcast ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Broadcast-Item + +TAI-Broadcast-Item ::= SEQUENCE { + tAI TAI, + completedCellinTAI CompletedCellinTAI, + iE-Extensions ProtocolExtensionContainer { {TAI-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAI-Cancelled ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Cancelled-Item + +TAI-Cancelled-Item ::= SEQUENCE { + tAI TAI, + cancelledCellinTAI CancelledCellinTAI, + iE-Extensions ProtocolExtensionContainer { {TAI-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TABasedMDT ::= SEQUENCE { + tAListforMDT TAListforMDT, + iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TABasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC + +CompletedCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CompletedCellinTAI-Item + +CompletedCellinTAI-Item ::= SEQUENCE{ + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CompletedCellinTAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CompletedCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TBCD-STRING ::= OCTET STRING (SIZE (3)) + +TargetID ::= CHOICE { + targeteNB-ID TargeteNB-ID, + targetRNC-ID TargetRNC-ID, + cGI CGI, + ... +} + +TargeteNB-ID ::= SEQUENCE { + global-ENB-ID Global-ENB-ID, + selected-TAI TAI, + iE-Extensions ProtocolExtensionContainer { {TargeteNB-ID-ExtIEs} } OPTIONAL, + ... +} + +TargeteNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TargetRNC-ID ::= SEQUENCE { + lAI LAI, + rAC RAC OPTIONAL, + rNC-ID RNC-ID, + extendedRNC-ID ExtendedRNC-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL, + ... + } + + +TargetRNC-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +TargeteNB-ToSourceeNB-TransparentContainer ::= SEQUENCE { + rRC-Container RRC-Container, + iE-Extensions ProtocolExtensionContainer { {TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Target-ToSource-TransparentContainer ::= OCTET STRING +-- This IE includes a transparent container from the target RAN node to the source RAN node. +-- The octets of the OCTET STRING are coded according to the specifications of the target system. + +TargetRNC-ToSourceRNC-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +TargetBSS-ToSourceBSS-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +M1ThresholdEventA2 ::= SEQUENCE { + measurementThreshold MeasurementThresholdA2, + iE-Extensions ProtocolExtensionContainer { { M1ThresholdEventA2-ExtIEs} } OPTIONAL, + ... +} + +M1ThresholdEventA2-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Threshold-RSRP ::= INTEGER(0..97) + +Threshold-RSRQ ::= INTEGER(0..34) + +TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...} + +Time-UE-StayedInCell ::= INTEGER (0..4095) + +Time-UE-StayedInCell-EnhancedGranularity ::= INTEGER (0..40950) + +TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) + +TraceActivation ::= SEQUENCE { + e-UTRAN-Trace-ID E-UTRAN-Trace-ID, + interfacesToTrace InterfacesToTrace, + traceDepth TraceDepth, + traceCollectionEntityIPAddress TransportLayerAddress, + iE-Extensions ProtocolExtensionContainer { { TraceActivation-ExtIEs} } OPTIONAL, + ... +} + +TraceActivation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Rel-10 to support MDT -- + { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional }, + ... +} + +TraceDepth ::= ENUMERATED { + minimum, + medium, + maximum, + minimumWithoutVendorSpecificExtension, + mediumWithoutVendorSpecificExtension, + maximumWithoutVendorSpecificExtension, + ... +} + +E-UTRAN-Trace-ID ::= OCTET STRING (SIZE (8)) + +TrafficLoadReductionIndication ::= INTEGER (1..99) + +TunnelInformation ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + uDP-Port-Number Port-Number OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {Tunnel-Information-ExtIEs} } OPTIONAL, + ... +} + +Tunnel-Information-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + +-- U + +UEAggregateMaximumBitrate ::= SEQUENCE { + uEaggregateMaximumBitRateDL BitRate, + uEaggregateMaximumBitRateUL BitRate, + iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrates-ExtIEs} } OPTIONAL, + ... +} + +UEAggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +UE-S1AP-IDs ::= CHOICE{ + uE-S1AP-ID-pair UE-S1AP-ID-pair, + mME-UE-S1AP-ID MME-UE-S1AP-ID, + ... +} + +UE-S1AP-ID-pair ::= SEQUENCE{ + mME-UE-S1AP-ID MME-UE-S1AP-ID, + eNB-UE-S1AP-ID ENB-UE-S1AP-ID, + iE-Extensions ProtocolExtensionContainer { {UE-S1AP-ID-pair-ExtIEs} } OPTIONAL, + ... +} +UE-S1AP-ID-pair-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +UE-associatedLogicalS1-ConnectionItem ::= SEQUENCE { + mME-UE-S1AP-ID MME-UE-S1AP-ID OPTIONAL, + eNB-UE-S1AP-ID ENB-UE-S1AP-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { UE-associatedLogicalS1-ConnectionItemExtIEs} } OPTIONAL, + ... +} + + +UE-associatedLogicalS1-ConnectionItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UEIdentityIndexValue ::= BIT STRING (SIZE (10)) + +UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item + +UEPagingID ::= CHOICE { + s-TMSI S-TMSI, + iMSI IMSI, + ... + } + +UERadioCapability ::= OCTET STRING + +UESecurityCapabilities ::= SEQUENCE { + encryptionAlgorithms EncryptionAlgorithms, + integrityProtectionAlgorithms IntegrityProtectionAlgorithms, + iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL, +... +} + +UESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- V + +VoiceSupportMatchIndicator ::= ENUMERATED { + supported, + not-supported, + ... +} + +-- W + +WarningAreaList ::= CHOICE { + cellIDList ECGIList, + trackingAreaListforWarning TAIListforWarning, + emergencyAreaIDList EmergencyAreaIDList, + ... +} + + +WarningType ::= OCTET STRING (SIZE (2)) + +WarningSecurityInfo ::= OCTET STRING (SIZE (50)) + + +WarningMessageContents ::= OCTET STRING (SIZE(1..9600)) + + +-- X + + +X2TNLConfigurationInfo ::= SEQUENCE { + eNBX2TransportLayerAddresses ENBX2TLAs, + iE-Extensions ProtocolExtensionContainer { { X2TNLConfigurationInfo-ExtIEs} } OPTIONAL, + ... +} + +X2TNLConfigurationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Release 10 to transfer the IPsec and U-plane addresses during ANR action -- + {ID id-eNBX2ExtendedTransportLayerAddresses CRITICALITY ignore EXTENSION ENBX2ExtTLAs PRESENCE optional}, + ... +} + +ENBX2ExtTLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2ExtTLAs)) OF ENBX2ExtTLA + +ENBX2ExtTLA ::= SEQUENCE { + iPsecTLA TransportLayerAddress OPTIONAL, + gTPTLAa ENBX2GTPTLAs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ENBX2ExtTLA-ExtIEs} } OPTIONAL, + ... +} + +ENBX2ExtTLA-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENBX2GTPTLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2GTPTLAs)) OF TransportLayerAddress + + +-- Y +-- Z + +END + + + +-- ************************************************************** +-- +-- Common definitions +-- +-- ************************************************************** + +S1AP-CommonDataTypes { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-CommonDataTypes (3) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +Criticality ::= ENUMERATED { reject, ignore, notify } + +Presence ::= ENUMERATED { optional, conditional, mandatory } + +PrivateIE-ID ::= CHOICE { + local INTEGER (0..65535), + global OBJECT IDENTIFIER +} + +ProcedureCode ::= INTEGER (0..255) + +ProtocolExtensionID ::= INTEGER (0..65535) + +ProtocolIE-ID ::= INTEGER (0..65535) + +TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome } + +END + + +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +S1AP-Constants { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Constants (4) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + ProcedureCode, + ProtocolIE-ID + +FROM S1AP-CommonDataTypes; + + +-- ************************************************************** +-- +-- Elementary Procedures +-- +-- ************************************************************** + +id-HandoverPreparation ProcedureCode ::= 0 +id-HandoverResourceAllocation ProcedureCode ::= 1 +id-HandoverNotification ProcedureCode ::= 2 +id-PathSwitchRequest ProcedureCode ::= 3 +id-HandoverCancel ProcedureCode ::= 4 +id-E-RABSetup ProcedureCode ::= 5 +id-E-RABModify ProcedureCode ::= 6 +id-E-RABRelease ProcedureCode ::= 7 +id-E-RABReleaseIndication ProcedureCode ::= 8 +id-InitialContextSetup ProcedureCode ::= 9 +id-Paging ProcedureCode ::= 10 +id-downlinkNASTransport ProcedureCode ::= 11 +id-initialUEMessage ProcedureCode ::= 12 +id-uplinkNASTransport ProcedureCode ::= 13 +id-Reset ProcedureCode ::= 14 +id-ErrorIndication ProcedureCode ::= 15 +id-NASNonDeliveryIndication ProcedureCode ::= 16 +id-S1Setup ProcedureCode ::= 17 +id-UEContextReleaseRequest ProcedureCode ::= 18 +id-DownlinkS1cdma2000tunneling ProcedureCode ::= 19 +id-UplinkS1cdma2000tunneling ProcedureCode ::= 20 +id-UEContextModification ProcedureCode ::= 21 +id-UECapabilityInfoIndication ProcedureCode ::= 22 +id-UEContextRelease ProcedureCode ::= 23 +id-eNBStatusTransfer ProcedureCode ::= 24 +id-MMEStatusTransfer ProcedureCode ::= 25 +id-DeactivateTrace ProcedureCode ::= 26 +id-TraceStart ProcedureCode ::= 27 +id-TraceFailureIndication ProcedureCode ::= 28 +id-ENBConfigurationUpdate ProcedureCode ::= 29 +id-MMEConfigurationUpdate ProcedureCode ::= 30 +id-LocationReportingControl ProcedureCode ::= 31 +id-LocationReportingFailureIndication ProcedureCode ::= 32 +id-LocationReport ProcedureCode ::= 33 +id-OverloadStart ProcedureCode ::= 34 +id-OverloadStop ProcedureCode ::= 35 +id-WriteReplaceWarning ProcedureCode ::= 36 +id-eNBDirectInformationTransfer ProcedureCode ::= 37 +id-MMEDirectInformationTransfer ProcedureCode ::= 38 +id-PrivateMessage ProcedureCode ::= 39 +id-eNBConfigurationTransfer ProcedureCode ::= 40 +id-MMEConfigurationTransfer ProcedureCode ::= 41 +id-CellTrafficTrace ProcedureCode ::= 42 +id-Kill ProcedureCode ::= 43 +id-downlinkUEAssociatedLPPaTransport ProcedureCode ::= 44 +id-uplinkUEAssociatedLPPaTransport ProcedureCode ::= 45 +id-downlinkNonUEAssociatedLPPaTransport ProcedureCode ::= 46 +id-uplinkNonUEAssociatedLPPaTransport ProcedureCode ::= 47 +id-UERadioCapabilityMatch ProcedureCode ::= 48 + +-- ************************************************************** +-- +-- Extension constants +-- +-- ************************************************************** + +maxPrivateIEs INTEGER ::= 65535 +maxProtocolExtensions INTEGER ::= 65535 +maxProtocolIEs INTEGER ::= 65535 +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** + +maxnoofCSGs INTEGER ::= 256 +maxnoofE-RABs INTEGER ::= 256 +maxnoofTAIs INTEGER ::= 256 +maxnoofTACs INTEGER ::= 256 +maxnoofErrors INTEGER ::= 256 +maxnoofBPLMNs INTEGER ::= 6 +maxnoofPLMNsPerMME INTEGER ::= 32 +maxnoofEPLMNs INTEGER ::= 15 +maxnoofEPLMNsPlusOne INTEGER ::= 16 +maxnoofForbLACs INTEGER ::= 4096 +maxnoofForbTACs INTEGER ::= 4096 +maxnoofIndividualS1ConnectionsToReset INTEGER ::= 256 +maxnoofCells INTEGER ::= 16 +maxnoofTAIforWarning INTEGER ::= 65535 +maxnoofCellID INTEGER ::= 65535 +maxnoofEmergencyAreaID INTEGER ::= 65535 +maxnoofCellinTAI INTEGER ::= 65535 +maxnoofCellinEAI INTEGER ::= 65535 +maxnoofeNBX2TLAs INTEGER ::= 2 +maxnoofeNBX2ExtTLAs INTEGER ::= 16 +maxnoofeNBX2GTPTLAs INTEGER ::= 16 +maxnoofRATs INTEGER ::= 8 +maxnoofGroupIDs INTEGER ::= 65535 +maxnoofMMECs INTEGER ::= 256 +maxnoofCellIDforMDT INTEGER ::= 32 +maxnoofTAforMDT INTEGER ::= 8 +maxnoofMDTPLMNs INTEGER ::= 16 + +-- ************************************************************** +-- +-- IEs +-- +-- ************************************************************** + +id-MME-UE-S1AP-ID ProtocolIE-ID ::= 0 +id-HandoverType ProtocolIE-ID ::= 1 +id-Cause ProtocolIE-ID ::= 2 +id-SourceID ProtocolIE-ID ::= 3 +id-TargetID ProtocolIE-ID ::= 4 +id-eNB-UE-S1AP-ID ProtocolIE-ID ::= 8 +id-E-RABSubjecttoDataForwardingList ProtocolIE-ID ::= 12 +id-E-RABtoReleaseListHOCmd ProtocolIE-ID ::= 13 +id-E-RABDataForwardingItem ProtocolIE-ID ::= 14 +id-E-RABReleaseItemBearerRelComp ProtocolIE-ID ::= 15 +id-E-RABToBeSetupListBearerSUReq ProtocolIE-ID ::= 16 +id-E-RABToBeSetupItemBearerSUReq ProtocolIE-ID ::= 17 +id-E-RABAdmittedList ProtocolIE-ID ::= 18 +id-E-RABFailedToSetupListHOReqAck ProtocolIE-ID ::= 19 +id-E-RABAdmittedItem ProtocolIE-ID ::= 20 +id-E-RABFailedtoSetupItemHOReqAck ProtocolIE-ID ::= 21 +id-E-RABToBeSwitchedDLList ProtocolIE-ID ::= 22 +id-E-RABToBeSwitchedDLItem ProtocolIE-ID ::= 23 +id-E-RABToBeSetupListCtxtSUReq ProtocolIE-ID ::= 24 +id-TraceActivation ProtocolIE-ID ::= 25 +id-NAS-PDU ProtocolIE-ID ::= 26 +id-E-RABToBeSetupItemHOReq ProtocolIE-ID ::= 27 +id-E-RABSetupListBearerSURes ProtocolIE-ID ::= 28 +id-E-RABFailedToSetupListBearerSURes ProtocolIE-ID ::= 29 +id-E-RABToBeModifiedListBearerModReq ProtocolIE-ID ::= 30 +id-E-RABModifyListBearerModRes ProtocolIE-ID ::= 31 +id-E-RABFailedToModifyList ProtocolIE-ID ::= 32 +id-E-RABToBeReleasedList ProtocolIE-ID ::= 33 +id-E-RABFailedToReleaseList ProtocolIE-ID ::= 34 +id-E-RABItem ProtocolIE-ID ::= 35 +id-E-RABToBeModifiedItemBearerModReq ProtocolIE-ID ::= 36 +id-E-RABModifyItemBearerModRes ProtocolIE-ID ::= 37 +id-E-RABReleaseItem ProtocolIE-ID ::= 38 +id-E-RABSetupItemBearerSURes ProtocolIE-ID ::= 39 +id-SecurityContext ProtocolIE-ID ::= 40 +id-HandoverRestrictionList ProtocolIE-ID ::= 41 +id-UEPagingID ProtocolIE-ID ::= 43 +id-pagingDRX ProtocolIE-ID ::= 44 +id-TAIList ProtocolIE-ID ::= 46 +id-TAIItem ProtocolIE-ID ::= 47 +id-E-RABFailedToSetupListCtxtSURes ProtocolIE-ID ::= 48 +id-E-RABReleaseItemHOCmd ProtocolIE-ID ::= 49 +id-E-RABSetupItemCtxtSURes ProtocolIE-ID ::= 50 +id-E-RABSetupListCtxtSURes ProtocolIE-ID ::= 51 +id-E-RABToBeSetupItemCtxtSUReq ProtocolIE-ID ::= 52 +id-E-RABToBeSetupListHOReq ProtocolIE-ID ::= 53 +id-GERANtoLTEHOInformationRes ProtocolIE-ID ::= 55 +id-UTRANtoLTEHOInformationRes ProtocolIE-ID ::= 57 +id-CriticalityDiagnostics ProtocolIE-ID ::= 58 +id-Global-ENB-ID ProtocolIE-ID ::= 59 +id-eNBname ProtocolIE-ID ::= 60 +id-MMEname ProtocolIE-ID ::= 61 +id-ServedPLMNs ProtocolIE-ID ::= 63 +id-SupportedTAs ProtocolIE-ID ::= 64 +id-TimeToWait ProtocolIE-ID ::= 65 +id-uEaggregateMaximumBitrate ProtocolIE-ID ::= 66 +id-TAI ProtocolIE-ID ::= 67 +id-E-RABReleaseListBearerRelComp ProtocolIE-ID ::= 69 +id-cdma2000PDU ProtocolIE-ID ::= 70 +id-cdma2000RATType ProtocolIE-ID ::= 71 +id-cdma2000SectorID ProtocolIE-ID ::= 72 +id-SecurityKey ProtocolIE-ID ::= 73 +id-UERadioCapability ProtocolIE-ID ::= 74 +id-GUMMEI-ID ProtocolIE-ID ::= 75 +id-E-RABInformationListItem ProtocolIE-ID ::= 78 +id-Direct-Forwarding-Path-Availability ProtocolIE-ID ::= 79 +id-UEIdentityIndexValue ProtocolIE-ID ::= 80 +id-cdma2000HOStatus ProtocolIE-ID ::= 83 +id-cdma2000HORequiredIndication ProtocolIE-ID ::= 84 +id-E-UTRAN-Trace-ID ProtocolIE-ID ::= 86 +id-RelativeMMECapacity ProtocolIE-ID ::= 87 +id-SourceMME-UE-S1AP-ID ProtocolIE-ID ::= 88 +id-Bearers-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 89 +id-eNB-StatusTransfer-TransparentContainer ProtocolIE-ID ::= 90 +id-UE-associatedLogicalS1-ConnectionItem ProtocolIE-ID ::= 91 +id-ResetType ProtocolIE-ID ::= 92 +id-UE-associatedLogicalS1-ConnectionListResAck ProtocolIE-ID ::= 93 +id-E-RABToBeSwitchedULItem ProtocolIE-ID ::= 94 +id-E-RABToBeSwitchedULList ProtocolIE-ID ::= 95 +id-S-TMSI ProtocolIE-ID ::= 96 +id-cdma2000OneXRAND ProtocolIE-ID ::= 97 +id-RequestType ProtocolIE-ID ::= 98 +id-UE-S1AP-IDs ProtocolIE-ID ::= 99 +id-EUTRAN-CGI ProtocolIE-ID ::= 100 +id-OverloadResponse ProtocolIE-ID ::= 101 +id-cdma2000OneXSRVCCInfo ProtocolIE-ID ::= 102 +id-E-RABFailedToBeReleasedList ProtocolIE-ID ::= 103 +id-Source-ToTarget-TransparentContainer ProtocolIE-ID ::= 104 +id-ServedGUMMEIs ProtocolIE-ID ::= 105 +id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 106 +id-UESecurityCapabilities ProtocolIE-ID ::= 107 +id-CSFallbackIndicator ProtocolIE-ID ::= 108 +id-CNDomain ProtocolIE-ID ::= 109 +id-E-RABReleasedList ProtocolIE-ID ::= 110 +id-MessageIdentifier ProtocolIE-ID ::= 111 +id-SerialNumber ProtocolIE-ID ::= 112 +id-WarningAreaList ProtocolIE-ID ::= 113 +id-RepetitionPeriod ProtocolIE-ID ::= 114 +id-NumberofBroadcastRequest ProtocolIE-ID ::= 115 +id-WarningType ProtocolIE-ID ::= 116 +id-WarningSecurityInfo ProtocolIE-ID ::= 117 +id-DataCodingScheme ProtocolIE-ID ::= 118 +id-WarningMessageContents ProtocolIE-ID ::= 119 +id-BroadcastCompletedAreaList ProtocolIE-ID ::= 120 +id-Inter-SystemInformationTransferTypeEDT ProtocolIE-ID ::= 121 +id-Inter-SystemInformationTransferTypeMDT ProtocolIE-ID ::= 122 +id-Target-ToSource-TransparentContainer ProtocolIE-ID ::= 123 +id-SRVCCOperationPossible ProtocolIE-ID ::= 124 +id-SRVCCHOIndication ProtocolIE-ID ::= 125 +id-NAS-DownlinkCount ProtocolIE-ID ::= 126 +id-CSG-Id ProtocolIE-ID ::= 127 +id-CSG-IdList ProtocolIE-ID ::= 128 +id-SONConfigurationTransferECT ProtocolIE-ID ::= 129 +id-SONConfigurationTransferMCT ProtocolIE-ID ::= 130 +id-TraceCollectionEntityIPAddress ProtocolIE-ID ::= 131 +id-MSClassmark2 ProtocolIE-ID ::= 132 +id-MSClassmark3 ProtocolIE-ID ::= 133 +id-RRC-Establishment-Cause ProtocolIE-ID ::= 134 +id-NASSecurityParametersfromE-UTRAN ProtocolIE-ID ::= 135 +id-NASSecurityParameterstoE-UTRAN ProtocolIE-ID ::= 136 +id-DefaultPagingDRX ProtocolIE-ID ::= 137 +id-Source-ToTarget-TransparentContainer-Secondary ProtocolIE-ID ::= 138 +id-Target-ToSource-TransparentContainer-Secondary ProtocolIE-ID ::= 139 +id-EUTRANRoundTripDelayEstimationInfo ProtocolIE-ID ::= 140 +id-BroadcastCancelledAreaList ProtocolIE-ID ::= 141 +id-ConcurrentWarningMessageIndicator ProtocolIE-ID ::= 142 +id-Data-Forwarding-Not-Possible ProtocolIE-ID ::= 143 +id-ExtendedRepetitionPeriod ProtocolIE-ID ::= 144 +id-CellAccessMode ProtocolIE-ID ::= 145 +id-CSGMembershipStatus ProtocolIE-ID ::= 146 +id-LPPa-PDU ProtocolIE-ID ::= 147 +id-Routing-ID ProtocolIE-ID ::= 148 +id-Time-Synchronization-Info ProtocolIE-ID ::= 149 +id-PS-ServiceNotAvailable ProtocolIE-ID ::= 150 +id-PagingPriority ProtocolIE-ID ::= 151 +id-x2TNLConfigurationInfo ProtocolIE-ID ::= 152 +id-eNBX2ExtendedTransportLayerAddresses ProtocolIE-ID ::= 153 +id-GUMMEIList ProtocolIE-ID ::= 154 +id-GW-TransportLayerAddress ProtocolIE-ID ::= 155 +id-Correlation-ID ProtocolIE-ID ::= 156 +id-SourceMME-GUMMEI ProtocolIE-ID ::= 157 +id-MME-UE-S1AP-ID-2 ProtocolIE-ID ::= 158 +id-RegisteredLAI ProtocolIE-ID ::= 159 +id-RelayNode-Indicator ProtocolIE-ID ::= 160 +id-TrafficLoadReductionIndication ProtocolIE-ID ::= 161 +id-MDTConfiguration ProtocolIE-ID ::= 162 +id-MMERelaySupportIndicator ProtocolIE-ID ::= 163 +id-GWContextReleaseIndication ProtocolIE-ID ::= 164 +id-ManagementBasedMDTAllowed ProtocolIE-ID ::= 165 +id-PrivacyIndicator ProtocolIE-ID ::= 166 +id-Time-UE-StayedInCell-EnhancedGranularity ProtocolIE-ID ::= 167 +id-HO-Cause ProtocolIE-ID ::= 168 +id-VoiceSupportMatchIndicator ProtocolIE-ID ::= 169 +id-GUMMEIType ProtocolIE-ID ::= 170 +id-M3Configuration ProtocolIE-ID ::= 171 +id-M4Configuration ProtocolIE-ID ::= 172 +id-M5Configuration ProtocolIE-ID ::= 173 +id-MDT-Location-Info ProtocolIE-ID ::= 174 +id-MobilityInformation ProtocolIE-ID ::= 175 +id-Tunnel-Information-for-BBF ProtocolIE-ID ::= 176 +id-ManagementBasedMDTPLMNList ProtocolIE-ID ::= 177 +id-SignallingBasedMDTPLMNList ProtocolIE-ID ::= 178 +id-ULCOUNTValueExtended ProtocolIE-ID ::= 179 +id-DLCOUNTValueExtended ProtocolIE-ID ::= 180 +id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID ::= 181 + +END + + +-- ************************************************************** +-- +-- Container definitions +-- +-- ************************************************************** + +S1AP-Containers { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Containers (5) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + Presence, + PrivateIE-ID, + ProtocolExtensionID, + ProtocolIE-ID +FROM S1AP-CommonDataTypes + + maxPrivateIEs, + maxProtocolExtensions, + maxProtocolIEs +FROM S1AP-Constants; + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +S1AP-PROTOCOL-IES ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +S1AP-PROTOCOL-IES-PAIR ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &firstCriticality Criticality, + &FirstValue, + &secondCriticality Criticality, + &SecondValue, + &presence Presence +} +WITH SYNTAX { + ID &id + FIRST CRITICALITY &firstCriticality + FIRST TYPE &FirstValue + SECOND CRITICALITY &secondCriticality + SECOND TYPE &SecondValue + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol Extensions +-- +-- ************************************************************** + +S1AP-PROTOCOL-EXTENSION ::= CLASS { + &id ProtocolExtensionID UNIQUE, + &criticality Criticality, + &Extension, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + EXTENSION &Extension + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Private IEs +-- +-- ************************************************************** + +S1AP-PRIVATE-IES ::= CLASS { + &id PrivateIE-ID, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Container for Protocol IEs +-- +-- ************************************************************** + +ProtocolIE-Container {S1AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-SingleContainer {S1AP-PROTOCOL-IES : IEsSetParam} ::= + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Field {S1AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-IES.&id ({IEsSetParam}), + criticality S1AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), + value S1AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Protocol IE Pairs +-- +-- ************************************************************** + +ProtocolIE-ContainerPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-FieldPair {{IEsSetParam}} + +ProtocolIE-FieldPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), + firstCriticality S1AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), + firstValue S1AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), + secondCriticality S1AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), + secondValue S1AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container Lists for Protocol IE Containers +-- +-- ************************************************************** + +ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-SingleContainer {{IEsSetParam}} + +ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-ContainerPair {{IEsSetParam}} + +-- ************************************************************** +-- +-- Container for Protocol Extensions +-- +-- ************************************************************** + +ProtocolExtensionContainer {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= + SEQUENCE (SIZE (1..maxProtocolExtensions)) OF + ProtocolExtensionField {{ExtensionSetParam}} + +ProtocolExtensionField {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), + criticality S1AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), + extensionValue S1AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Private IEs +-- +-- ************************************************************** + +PrivateIE-Container {S1AP-PRIVATE-IES : IEsSetParam } ::= + SEQUENCE (SIZE (1.. maxPrivateIEs)) OF + PrivateIE-Field {{IEsSetParam}} + +PrivateIE-Field {S1AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { + id S1AP-PRIVATE-IES.&id ({IEsSetParam}), + criticality S1AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), + value S1AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) +} + +END + +-- ************************************************************** +-- +-- IE definitions for the SON Transfer application +-- The IEs in this ASN.1 module shall be defined and encoded +-- using the same rules as applicable for the S1AP-IEs module. +-- +-- ************************************************************** +SonTransfer-IEs + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- +-- Generic IEs for the SON Transfer application +-- + +SONtransferApplicationIdentity ::= ENUMERATED { + cell-load-reporting, + ..., + multi-cell-load-reporting, + event-triggered-cell-load-reporting, + ho-reporting, + eutran-cell-activation, + energy-savings-indication, + failure-event-reporting +} + +SONtransferRequestContainer ::= CHOICE{ + cellLoadReporting NULL, + ..., + multiCellLoadReporting MultiCellLoadReportingRequest, + eventTriggeredCellLoadReporting EventTriggeredCellLoadReportingRequest, + hOReporting HOReport, + eutranCellActivation CellActivationRequest, + energySavingsIndication CellStateIndication, + failureEventReporting FailureEventReport +} + +SONtransferResponseContainer ::= CHOICE{ + cellLoadReporting CellLoadReportingResponse, + ..., + multiCellLoadReporting MultiCellLoadReportingResponse, + eventTriggeredCellLoadReporting EventTriggeredCellLoadReportingResponse, + hOReporting NULL, + eutranCellActivation CellActivationResponse, + energySavingsIndication NULL, + failureEventReporting NULL +} + +SONtransferCause ::= CHOICE { + cellLoadReporting CellLoadReportingCause, + ..., + multiCellLoadReporting CellLoadReportingCause, + eventTriggeredCellLoadReporting CellLoadReportingCause, + hOReporting HOReportingCause, + eutranCellActivation CellActivationCause, + energySavingsIndication CellStateIndicationCause, + failureEventReporting FailureEventReportingCause +} + + +CellLoadReportingCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +HOReportingCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +CellActivationCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +CellStateIndicationCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +FailureEventReportingCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +-- +-- IEs for Cell Load Reporting application +-- + +CellLoadReportingResponse::= CHOICE{ + eUTRAN EUTRANcellLoadReportingResponse, + uTRAN OCTET STRING, + gERAN OCTET STRING, + ... +} + +CompositeAvailableCapacityGroup ::= OCTET STRING + +EUTRANcellLoadReportingResponse ::= SEQUENCE { + compositeAvailableCapacityGroup CompositeAvailableCapacityGroup, + ... +} + +-- +-- IEs for Multi-Cell Load Reporting application +-- + +EUTRANResponse::= SEQUENCE { + cell-ID OCTET STRING, + eUTRANcellLoadReportingResponse EUTRANcellLoadReportingResponse, + ... +} + +IRAT-Cell-ID ::= CHOICE{ + eUTRAN OCTET STRING, + uTRAN OCTET STRING, + gERAN OCTET STRING, + ... +} + +RequestedCellList ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF IRAT-Cell-ID + +MultiCellLoadReportingRequest::= SEQUENCE { + requestedCellList RequestedCellList, + ... +} + +ReportingCellList-Item ::= SEQUENCE { + cell-ID IRAT-Cell-ID, + ... +} + +ReportingCellList ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF ReportingCellList-Item + +MultiCellLoadReportingResponse ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF MultiCellLoadReportingResponse-Item + +MultiCellLoadReportingResponse-Item ::= CHOICE{ + eUTRANResponse EUTRANResponse, + uTRANResponse OCTET STRING, + gERANResponse OCTET STRING, + ... +} + + +-- +-- IEs for Event-triggered Cell Load Reporting application +-- + +NumberOfMeasurementReportingLevels ::= ENUMERATED { + rl2, + rl3, + rl4, + rl5, + rl10, + ... +} + +EventTriggeredCellLoadReportingRequest ::= SEQUENCE { + numberOfMeasurementReportingLevels NumberOfMeasurementReportingLevels, + ... +} + +OverloadFlag ::= ENUMERATED { + overload, + ... +} + +EventTriggeredCellLoadReportingResponse ::= SEQUENCE { + cellLoadReportingResponse CellLoadReportingResponse, + overloadFlag OverloadFlag OPTIONAL, + ... +} + +-- +-- IEs for HO Reporting application +-- + + + +HOReport::= SEQUENCE { + hoType HoType, + hoReportType HoReportType, + hosourceID IRAT-Cell-ID, + hoTargetID IRAT-Cell-ID, + candidateCellList CandidateCellList, + ... +} + +HoType ::= ENUMERATED { + ltetoutran, + ltetogeran, + ... +} + +HoReportType ::= ENUMERATED { + unnecessaryhotoanotherrat, + ..., + earlyirathandover +} + +CandidateCellList ::= SEQUENCE (SIZE(1..maxnoofcandidateCells)) OF IRAT-Cell-ID + +-- +-- IEs for E-UTRAN Cell Activation application +-- + +CellActivationRequest ::= SEQUENCE { + cellsToActivateList CellsToActivateList, + minimumActivationTime INTEGER (1..60) OPTIONAL, +... +} + +CellsToActivateList ::= SEQUENCE (SIZE(1.. maxnoofCellineNB)) OF CellsToActivateList-Item + +CellsToActivateList-Item ::= SEQUENCE { + cell-ID OCTET STRING, + ... +} + +CellActivationResponse ::= SEQUENCE { + activatedCellsList ActivatedCellsList, + ... +} + +ActivatedCellsList ::= SEQUENCE (SIZE(0.. maxnoofCellineNB)) OF ActivatedCellsList-Item + +ActivatedCellsList-Item ::= SEQUENCE { + cell-ID OCTET STRING, + ... +} + +-- +-- IEs for Energy Savings Indication application +-- + +CellStateIndication ::= SEQUENCE { + notificationCellList NotificationCellList, + ... +} + +NotificationCellList ::= SEQUENCE (SIZE(1.. maxnoofCellineNB)) OF NotificationCellList-Item + +NotificationCellList-Item ::= SEQUENCE { + cell-ID OCTET STRING, + notifyFlag NotifyFlag, + ... +} + +NotifyFlag ::= ENUMERATED { + activated, + deactivated, + ... +} + +FailureEventReport::= CHOICE { + tooEarlyInterRATHOReportFromEUTRAN TooEarlyInterRATHOReportReportFromEUTRAN, + ... +} + +TooEarlyInterRATHOReportReportFromEUTRAN ::= SEQUENCE { + uERLFReportContainer OCTET STRING, -- as defined in TS 36.331 [16] -- + mobilityInformation MobilityInformation OPTIONAL, + ... +} + +MobilityInformation ::= BIT STRING (SIZE(32)) + + +-- ************************************************************** +-- +-- Constants +-- +-- ************************************************************** + +maxnoofIRATReportingCells INTEGER ::= 128 +maxnoofcandidateCells INTEGER ::= 16 +maxnoofCellineNB INTEGER ::= 256 + +END diff --git a/openair3/S1AP/MESSAGES/ASN1/R12/s1ap-12.7.0.asn1 b/openair3/S1AP/MESSAGES/ASN1/R12/s1ap-12.7.0.asn1 new file mode 100755 index 0000000000..0f415998d3 --- /dev/null +++ b/openair3/S1AP/MESSAGES/ASN1/R12/s1ap-12.7.0.asn1 @@ -0,0 +1,5947 @@ +-- ************************************************************** +-- +-- Elementary Procedure definitions +-- +-- ************************************************************** + +S1AP-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Descriptions (0)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + ProcedureCode +FROM S1AP-CommonDataTypes + + CellTrafficTrace, + DeactivateTrace, + DownlinkUEAssociatedLPPaTransport, + DownlinkNASTransport, + DownlinkNonUEAssociatedLPPaTransport, + DownlinkS1cdma2000tunnelling, + ENBDirectInformationTransfer, + ENBStatusTransfer, + ENBConfigurationUpdate, + ENBConfigurationUpdateAcknowledge, + ENBConfigurationUpdateFailure, + ErrorIndication, + HandoverCancel, + HandoverCancelAcknowledge, + HandoverCommand, + HandoverFailure, + HandoverNotify, + HandoverPreparationFailure, + HandoverRequest, + HandoverRequestAcknowledge, + HandoverRequired, + InitialContextSetupFailure, + InitialContextSetupRequest, + InitialContextSetupResponse, + InitialUEMessage, + KillRequest, + KillResponse, + LocationReportingControl, + LocationReportingFailureIndication, + LocationReport, + MMEConfigurationUpdate, + MMEConfigurationUpdateAcknowledge, + MMEConfigurationUpdateFailure, + MMEDirectInformationTransfer, + MMEStatusTransfer, + NASNonDeliveryIndication, + OverloadStart, + OverloadStop, + Paging, + PathSwitchRequest, + PathSwitchRequestAcknowledge, + PathSwitchRequestFailure, + PrivateMessage, + Reset, + ResetAcknowledge, + S1SetupFailure, + S1SetupRequest, + S1SetupResponse, + E-RABModifyRequest, + E-RABModifyResponse, + E-RABModificationIndication, + E-RABModificationConfirm, + E-RABReleaseCommand, + E-RABReleaseResponse, + E-RABReleaseIndication, + E-RABSetupRequest, + E-RABSetupResponse, + TraceFailureIndication, + TraceStart, + UECapabilityInfoIndication, + UEContextModificationFailure, + UEContextModificationRequest, + UEContextModificationResponse, + UEContextReleaseCommand, + UEContextReleaseComplete, + UEContextReleaseRequest, + UERadioCapabilityMatchRequest, + UERadioCapabilityMatchResponse, + UplinkUEAssociatedLPPaTransport, + UplinkNASTransport, + UplinkNonUEAssociatedLPPaTransport, + UplinkS1cdma2000tunnelling, + WriteReplaceWarningRequest, + WriteReplaceWarningResponse, + ENBConfigurationTransfer, + MMEConfigurationTransfer, + PWSRestartIndication + + +FROM S1AP-PDU-Contents + + id-CellTrafficTrace, + id-DeactivateTrace, + id-downlinkUEAssociatedLPPaTransport, + id-downlinkNASTransport, + id-downlinkNonUEAssociatedLPPaTransport, + id-DownlinkS1cdma2000tunnelling, + id-eNBStatusTransfer, + id-ErrorIndication, + id-HandoverCancel, + id-HandoverNotification, + id-HandoverPreparation, + id-HandoverResourceAllocation, + id-InitialContextSetup, + id-initialUEMessage, + id-ENBConfigurationUpdate, + id-Kill, + id-LocationReportingControl, + id-LocationReportingFailureIndication, + id-LocationReport, + id-eNBDirectInformationTransfer, + id-MMEConfigurationUpdate, + id-MMEDirectInformationTransfer, + id-MMEStatusTransfer, + id-NASNonDeliveryIndication, + id-OverloadStart, + id-OverloadStop, + id-Paging, + id-PathSwitchRequest, + id-PrivateMessage, + id-Reset, + id-S1Setup, + id-E-RABModify, + id-E-RABModificationIndication, + id-E-RABRelease, + id-E-RABReleaseIndication, + id-E-RABSetup, + id-TraceFailureIndication, + id-TraceStart, + id-UECapabilityInfoIndication, + id-UEContextModification, + id-UEContextRelease, + id-UEContextReleaseRequest, + id-UERadioCapabilityMatch, + id-uplinkUEAssociatedLPPaTransport, + id-uplinkNASTransport, + id-uplinkNonUEAssociatedLPPaTransport, + id-UplinkS1cdma2000tunnelling, + id-WriteReplaceWarning, + id-eNBConfigurationTransfer, + id-MMEConfigurationTransfer, + id-PWSRestartIndication +FROM S1AP-Constants; + + +-- ************************************************************** +-- +-- Interface Elementary Procedure Class +-- +-- ************************************************************** + +S1AP-ELEMENTARY-PROCEDURE ::= CLASS { + &InitiatingMessage , + &SuccessfulOutcome OPTIONAL, + &UnsuccessfulOutcome OPTIONAL, + &procedureCode ProcedureCode UNIQUE, + &criticality Criticality DEFAULT ignore +} +WITH SYNTAX { + INITIATING MESSAGE &InitiatingMessage + [SUCCESSFUL OUTCOME &SuccessfulOutcome] + [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] + PROCEDURE CODE &procedureCode + [CRITICALITY &criticality] +} + +-- ************************************************************** +-- +-- Interface PDU Definition +-- +-- ************************************************************** + +S1AP-PDU ::= CHOICE { + initiatingMessage InitiatingMessage, + successfulOutcome SuccessfulOutcome, + unsuccessfulOutcome UnsuccessfulOutcome, + ... +} + +InitiatingMessage ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +SuccessfulOutcome ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +UnsuccessfulOutcome ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +-- ************************************************************** +-- +-- Interface Elementary Procedure List +-- +-- ************************************************************** + +S1AP-ELEMENTARY-PROCEDURES S1AP-ELEMENTARY-PROCEDURE ::= { + S1AP-ELEMENTARY-PROCEDURES-CLASS-1 | + S1AP-ELEMENTARY-PROCEDURES-CLASS-2, + ... +} + + +S1AP-ELEMENTARY-PROCEDURES-CLASS-1 S1AP-ELEMENTARY-PROCEDURE ::= { + handoverPreparation | + handoverResourceAllocation | + pathSwitchRequest | + e-RABSetup | + e-RABModify | + e-RABRelease | + initialContextSetup | + handoverCancel | + kill | + reset | + s1Setup | + uEContextModification | + uEContextRelease | + eNBConfigurationUpdate | + mMEConfigurationUpdate | + writeReplaceWarning , + ..., + uERadioCapabilityMatch | + e-RABModificationIndication +} + +S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= { + handoverNotification | + e-RABReleaseIndication | + paging | + downlinkNASTransport | + initialUEMessage | + uplinkNASTransport | + errorIndication | + nASNonDeliveryIndication | + uEContextReleaseRequest | + downlinkS1cdma2000tunnelling | + uplinkS1cdma2000tunnelling | + uECapabilityInfoIndication | + eNBStatusTransfer | + mMEStatusTransfer | + deactivateTrace | + traceStart | + traceFailureIndication | + cellTrafficTrace | + locationReportingControl | + locationReportingFailureIndication | + locationReport | + overloadStart | + overloadStop | + eNBDirectInformationTransfer | + mMEDirectInformationTransfer | + eNBConfigurationTransfer | + mMEConfigurationTransfer | + privateMessage , + ..., + downlinkUEAssociatedLPPaTransport | + uplinkUEAssociatedLPPaTransport | + downlinkNonUEAssociatedLPPaTransport | + uplinkNonUEAssociatedLPPaTransport | + pWSRestartIndication +} + +-- ************************************************************** +-- +-- Interface Elementary Procedures +-- +-- ************************************************************** + +handoverPreparation S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequired + SUCCESSFUL OUTCOME HandoverCommand + UNSUCCESSFUL OUTCOME HandoverPreparationFailure + PROCEDURE CODE id-HandoverPreparation + CRITICALITY reject +} + +handoverResourceAllocation S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequest + SUCCESSFUL OUTCOME HandoverRequestAcknowledge + UNSUCCESSFUL OUTCOME HandoverFailure + PROCEDURE CODE id-HandoverResourceAllocation + CRITICALITY reject +} + +handoverNotification S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverNotify + PROCEDURE CODE id-HandoverNotification + CRITICALITY ignore +} + +pathSwitchRequest S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PathSwitchRequest + SUCCESSFUL OUTCOME PathSwitchRequestAcknowledge + UNSUCCESSFUL OUTCOME PathSwitchRequestFailure + PROCEDURE CODE id-PathSwitchRequest + CRITICALITY reject +} + +e-RABSetup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABSetupRequest + SUCCESSFUL OUTCOME E-RABSetupResponse + PROCEDURE CODE id-E-RABSetup + CRITICALITY reject +} + +e-RABModify S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABModifyRequest + SUCCESSFUL OUTCOME E-RABModifyResponse + PROCEDURE CODE id-E-RABModify + CRITICALITY reject +} + +e-RABRelease S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABReleaseCommand + SUCCESSFUL OUTCOME E-RABReleaseResponse + PROCEDURE CODE id-E-RABRelease + CRITICALITY reject +} + +e-RABReleaseIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABReleaseIndication + PROCEDURE CODE id-E-RABReleaseIndication + CRITICALITY ignore +} + +initialContextSetup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE InitialContextSetupRequest + SUCCESSFUL OUTCOME InitialContextSetupResponse + UNSUCCESSFUL OUTCOME InitialContextSetupFailure + PROCEDURE CODE id-InitialContextSetup + CRITICALITY reject +} + +uEContextReleaseRequest S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextReleaseRequest + PROCEDURE CODE id-UEContextReleaseRequest + CRITICALITY ignore +} + +paging S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE Paging + PROCEDURE CODE id-Paging + CRITICALITY ignore +} + +downlinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkNASTransport + PROCEDURE CODE id-downlinkNASTransport + CRITICALITY ignore +} + +initialUEMessage S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE InitialUEMessage + PROCEDURE CODE id-initialUEMessage + CRITICALITY ignore +} + +uplinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkNASTransport + PROCEDURE CODE id-uplinkNASTransport + CRITICALITY ignore +} +nASNonDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE NASNonDeliveryIndication + PROCEDURE CODE id-NASNonDeliveryIndication + CRITICALITY ignore +} + +handoverCancel S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverCancel + SUCCESSFUL OUTCOME HandoverCancelAcknowledge + PROCEDURE CODE id-HandoverCancel + CRITICALITY reject +} + +reset S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE Reset + SUCCESSFUL OUTCOME ResetAcknowledge + PROCEDURE CODE id-Reset + CRITICALITY reject +} + +errorIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ErrorIndication + PROCEDURE CODE id-ErrorIndication + CRITICALITY ignore +} + +s1Setup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE S1SetupRequest + SUCCESSFUL OUTCOME S1SetupResponse + UNSUCCESSFUL OUTCOME S1SetupFailure + PROCEDURE CODE id-S1Setup + CRITICALITY reject +} + +eNBConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationUpdate + SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure + PROCEDURE CODE id-ENBConfigurationUpdate + CRITICALITY reject +} + +mMEConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEConfigurationUpdate + SUCCESSFUL OUTCOME MMEConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME MMEConfigurationUpdateFailure + PROCEDURE CODE id-MMEConfigurationUpdate + CRITICALITY reject +} + +downlinkS1cdma2000tunnelling S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkS1cdma2000tunnelling + PROCEDURE CODE id-DownlinkS1cdma2000tunnelling + CRITICALITY ignore +} + +uplinkS1cdma2000tunnelling S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkS1cdma2000tunnelling + PROCEDURE CODE id-UplinkS1cdma2000tunnelling + CRITICALITY ignore +} + +uEContextModification S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextModificationRequest + SUCCESSFUL OUTCOME UEContextModificationResponse + UNSUCCESSFUL OUTCOME UEContextModificationFailure + PROCEDURE CODE id-UEContextModification + CRITICALITY reject +} + +uECapabilityInfoIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UECapabilityInfoIndication + PROCEDURE CODE id-UECapabilityInfoIndication + CRITICALITY ignore +} + +uEContextRelease S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextReleaseCommand + SUCCESSFUL OUTCOME UEContextReleaseComplete + PROCEDURE CODE id-UEContextRelease + CRITICALITY reject +} + +eNBStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBStatusTransfer + PROCEDURE CODE id-eNBStatusTransfer + CRITICALITY ignore +} + +mMEStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEStatusTransfer + PROCEDURE CODE id-MMEStatusTransfer + CRITICALITY ignore +} + +deactivateTrace S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DeactivateTrace + PROCEDURE CODE id-DeactivateTrace + CRITICALITY ignore +} + +traceStart S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE TraceStart + PROCEDURE CODE id-TraceStart + CRITICALITY ignore +} + +traceFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE TraceFailureIndication + PROCEDURE CODE id-TraceFailureIndication + CRITICALITY ignore +} +cellTrafficTrace S1AP-ELEMENTARY-PROCEDURE ::={ + INITIATING MESSAGE CellTrafficTrace + PROCEDURE CODE id-CellTrafficTrace + CRITICALITY ignore +} + +locationReportingControl S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReportingControl + PROCEDURE CODE id-LocationReportingControl + CRITICALITY ignore +} + +locationReportingFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReportingFailureIndication + PROCEDURE CODE id-LocationReportingFailureIndication + CRITICALITY ignore +} + +locationReport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReport + PROCEDURE CODE id-LocationReport + CRITICALITY ignore +} + +overloadStart S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE OverloadStart + PROCEDURE CODE id-OverloadStart + CRITICALITY ignore +} + +overloadStop S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE OverloadStop + PROCEDURE CODE id-OverloadStop + CRITICALITY reject +} + +writeReplaceWarning S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE WriteReplaceWarningRequest + SUCCESSFUL OUTCOME WriteReplaceWarningResponse + PROCEDURE CODE id-WriteReplaceWarning + CRITICALITY reject +} + +eNBDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBDirectInformationTransfer + PROCEDURE CODE id-eNBDirectInformationTransfer + CRITICALITY ignore +} + +mMEDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEDirectInformationTransfer + PROCEDURE CODE id-MMEDirectInformationTransfer + CRITICALITY ignore +} + +eNBConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationTransfer + PROCEDURE CODE id-eNBConfigurationTransfer + CRITICALITY ignore +} + +mMEConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEConfigurationTransfer + PROCEDURE CODE id-MMEConfigurationTransfer + CRITICALITY ignore +} + + +privateMessage S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PrivateMessage + PROCEDURE CODE id-PrivateMessage + CRITICALITY ignore +} + +pWSRestartIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PWSRestartIndication + PROCEDURE CODE id-PWSRestartIndication + CRITICALITY ignore +} + +kill S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE KillRequest + SUCCESSFUL OUTCOME KillResponse + PROCEDURE CODE id-Kill + CRITICALITY reject +} + +downlinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkUEAssociatedLPPaTransport + PROCEDURE CODE id-downlinkUEAssociatedLPPaTransport + CRITICALITY ignore +} + +uplinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkUEAssociatedLPPaTransport + PROCEDURE CODE id-uplinkUEAssociatedLPPaTransport + CRITICALITY ignore +} +downlinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkNonUEAssociatedLPPaTransport + PROCEDURE CODE id-downlinkNonUEAssociatedLPPaTransport + CRITICALITY ignore +} + +uplinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkNonUEAssociatedLPPaTransport + PROCEDURE CODE id-uplinkNonUEAssociatedLPPaTransport + CRITICALITY ignore +} + +uERadioCapabilityMatch S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UERadioCapabilityMatchRequest + SUCCESSFUL OUTCOME UERadioCapabilityMatchResponse + PROCEDURE CODE id-UERadioCapabilityMatch + CRITICALITY reject +} + +e-RABModificationIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABModificationIndication + SUCCESSFUL OUTCOME E-RABModificationConfirm + PROCEDURE CODE id-E-RABModificationIndication + CRITICALITY reject +} + +END + + + +-- ************************************************************** +-- +-- PDU definitions for S1AP. +-- +-- ************************************************************** + +S1AP-PDU-Contents { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Contents (1) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + + UEAggregateMaximumBitrate, + Cause, + CellAccessMode, + Cdma2000HORequiredIndication, + Cdma2000HOStatus, + Cdma2000OneXSRVCCInfo, + Cdma2000OneXRAND, + Cdma2000PDU, + Cdma2000RATType, + Cdma2000SectorID, + EUTRANRoundTripDelayEstimationInfo, + CNDomain, + ConcurrentWarningMessageIndicator, + CriticalityDiagnostics, + CSFallbackIndicator, + CSG-Id, + CSG-IdList, + CSGMembershipStatus, + Data-Forwarding-Not-Possible, + Direct-Forwarding-Path-Availability, + Global-ENB-ID, + EUTRAN-CGI, + ENBname, + ENB-StatusTransfer-TransparentContainer, + ENB-UE-S1AP-ID, + ExtendedRepetitionPeriod, + GTP-TEID, + GUMMEI, + GUMMEIType, + HandoverRestrictionList, + HandoverType, + Masked-IMEISV, + LAI, + LPPa-PDU, + ManagementBasedMDTAllowed, + MDTPLMNList, + MMEname, + MMERelaySupportIndicator, + MME-UE-S1AP-ID, + MSClassmark2, + MSClassmark3, + NAS-PDU, + NASSecurityParametersfromE-UTRAN, + NASSecurityParameterstoE-UTRAN, + OverloadResponse, + PagingDRX, + PagingPriority, + PLMNidentity, + ProSeAuthorized, + RIMTransfer, + RelativeMMECapacity, + RequestType, + E-RAB-ID, + E-RABLevelQoSParameters, + E-RABList, + RelayNode-Indicator, + Routing-ID, + SecurityKey, + SecurityContext, + ServedGUMMEIs, + SONConfigurationTransfer, + Source-ToTarget-TransparentContainer, + SourceBSS-ToTargetBSS-TransparentContainer, + SourceeNB-ToTargeteNB-TransparentContainer, + SourceRNC-ToTargetRNC-TransparentContainer, + SubscriberProfileIDforRFP, + SRVCCOperationPossible, + SRVCCHOIndication, + SupportedTAs, + TAI, + Target-ToSource-TransparentContainer, + TargetBSS-ToSourceBSS-TransparentContainer, + TargeteNB-ToSourceeNB-TransparentContainer, + TargetID, + TargetRNC-ToSourceRNC-TransparentContainer, + TimeToWait, + TraceActivation, + TrafficLoadReductionIndication, + E-UTRAN-Trace-ID, + TransportLayerAddress, + UEIdentityIndexValue, + UEPagingID, + UERadioCapability, + UERadioCapabilityForPaging, + UE-S1AP-IDs, + UE-associatedLogicalS1-ConnectionItem, + UESecurityCapabilities, + S-TMSI, + MessageIdentifier, + SerialNumber, + WarningAreaList, + RepetitionPeriod, + NumberofBroadcastRequest, + WarningType, + WarningSecurityInfo, + DataCodingScheme, + WarningMessageContents, + BroadcastCompletedAreaList, + RRC-Establishment-Cause, + BroadcastCancelledAreaList, + PS-ServiceNotAvailable, + GUMMEIList, + Correlation-ID, + GWContextReleaseIndication, + PrivacyIndicator, + VoiceSupportMatchIndicator, + TunnelInformation, + KillAllWarningMessages, + TransportInformation, + LHN-ID, + UserLocationInformation, + AdditionalCSFallbackIndicator, + ECGIListForRestart, + TAIListForRestart, + EmergencyAreaIDListForRestart, + ExpectedUEBehaviour + + + +FROM S1AP-IEs + + PrivateIE-Container{}, + ProtocolExtensionContainer{}, + ProtocolIE-Container{}, + ProtocolIE-ContainerList{}, + ProtocolIE-ContainerPair{}, + ProtocolIE-ContainerPairList{}, + ProtocolIE-SingleContainer{}, + S1AP-PRIVATE-IES, + S1AP-PROTOCOL-EXTENSION, + S1AP-PROTOCOL-IES, + S1AP-PROTOCOL-IES-PAIR +FROM S1AP-Containers + + + id-uEaggregateMaximumBitrate, + id-Cause, + id-CellAccessMode, + id-cdma2000HORequiredIndication, + id-cdma2000HOStatus, + id-cdma2000OneXSRVCCInfo, + id-cdma2000OneXRAND, + id-cdma2000PDU, + id-cdma2000RATType, + id-cdma2000SectorID, + id-EUTRANRoundTripDelayEstimationInfo, + id-CNDomain, + id-ConcurrentWarningMessageIndicator, + id-CriticalityDiagnostics, + id-CSFallbackIndicator, + id-CSG-Id, + id-CSG-IdList, + id-CSGMembershipStatus, + id-Data-Forwarding-Not-Possible, + id-DefaultPagingDRX, + id-Direct-Forwarding-Path-Availability, + id-Global-ENB-ID, + id-EUTRAN-CGI, + id-eNBname, + id-eNB-StatusTransfer-TransparentContainer, + id-eNB-UE-S1AP-ID, + id-GERANtoLTEHOInformationRes, + id-GUMMEI-ID, + id-GUMMEIType, + id-HandoverRestrictionList, + id-HandoverType, + id-Masked-IMEISV, + id-InitialContextSetup, + id-Inter-SystemInformationTransferTypeEDT, + id-Inter-SystemInformationTransferTypeMDT, + id-LPPa-PDU, + id-NAS-DownlinkCount, + id-ManagementBasedMDTAllowed, + id-ManagementBasedMDTPLMNList, + id-MMEname, + id-MME-UE-S1AP-ID, + id-MSClassmark2, + id-MSClassmark3, + id-NAS-PDU, + id-NASSecurityParametersfromE-UTRAN, + id-NASSecurityParameterstoE-UTRAN, + id-OverloadResponse, + id-pagingDRX, + id-PagingPriority, + id-RelativeMMECapacity, + id-RequestType, + id-Routing-ID, + id-E-RABAdmittedItem, + id-E-RABAdmittedList, + id-E-RABDataForwardingItem, + id-E-RABFailedToModifyList, + id-E-RABFailedToReleaseList, + id-E-RABFailedtoSetupItemHOReqAck, + id-E-RABFailedToSetupListBearerSURes, + id-E-RABFailedToSetupListCtxtSURes, + id-E-RABFailedToSetupListHOReqAck, + id-E-RABFailedToBeReleasedList, + id-E-RABModify, + id-E-RABModifyItemBearerModRes, + id-E-RABModifyListBearerModRes, + id-E-RABRelease, + id-E-RABReleaseItemBearerRelComp, + id-E-RABReleaseItemHOCmd, + id-E-RABReleaseListBearerRelComp, + id-E-RABReleaseIndication, + id-E-RABSetup, + id-E-RABSetupItemBearerSURes, + id-E-RABSetupItemCtxtSURes, + id-E-RABSetupListBearerSURes, + id-E-RABSetupListCtxtSURes, + id-E-RABSubjecttoDataForwardingList, + id-E-RABToBeModifiedItemBearerModReq, + id-E-RABToBeModifiedListBearerModReq, + id-E-RABToBeModifiedListBearerModInd, + id-E-RABToBeModifiedItemBearerModInd, + id-E-RABNotToBeModifiedListBearerModInd, + id-E-RABNotToBeModifiedItemBearerModInd, + id-E-RABModifyListBearerModConf, + id-E-RABModifyItemBearerModConf, + id-E-RABFailedToModifyListBearerModConf, + id-E-RABToBeReleasedListBearerModConf, + id-E-RABToBeReleasedList, + id-E-RABReleasedList, + id-E-RABToBeSetupItemBearerSUReq, + id-E-RABToBeSetupItemCtxtSUReq, + id-E-RABToBeSetupItemHOReq, + id-E-RABToBeSetupListBearerSUReq, + id-E-RABToBeSetupListCtxtSUReq, + id-E-RABToBeSetupListHOReq, + id-E-RABToBeSwitchedDLItem, + id-E-RABToBeSwitchedDLList, + id-E-RABToBeSwitchedULList, + id-E-RABToBeSwitchedULItem, + id-E-RABtoReleaseListHOCmd, + id-ProSeAuthorized, + id-SecurityKey, + id-SecurityContext, + id-ServedGUMMEIs, + id-SONConfigurationTransferECT, + id-SONConfigurationTransferMCT, + id-Source-ToTarget-TransparentContainer, + id-Source-ToTarget-TransparentContainer-Secondary, + id-SourceMME-UE-S1AP-ID, + id-SRVCCOperationPossible, + id-SRVCCHOIndication, + id-SubscriberProfileIDforRFP, + id-SupportedTAs, + id-S-TMSI, + id-TAI, + id-TAIItem, + id-TAIList, + id-Target-ToSource-TransparentContainer, + id-Target-ToSource-TransparentContainer-Secondary, + id-TargetID, + id-TimeToWait, + id-TraceActivation, + id-TrafficLoadReductionIndication, + id-E-UTRAN-Trace-ID, + id-UEIdentityIndexValue, + id-UEPagingID, + id-UERadioCapability, + id-UERadioCapabilityForPaging, + id-UTRANtoLTEHOInformationRes, + id-UE-associatedLogicalS1-ConnectionListResAck, + id-UE-associatedLogicalS1-ConnectionItem, + id-UESecurityCapabilities, + id-UE-S1AP-IDs, + id-ResetType, + id-MessageIdentifier, + id-SerialNumber, + id-WarningAreaList, + id-RepetitionPeriod, + id-NumberofBroadcastRequest, + id-WarningType, + id-WarningSecurityInfo, + id-DataCodingScheme, + id-WarningMessageContents, + id-BroadcastCompletedAreaList, + id-BroadcastCancelledAreaList, + id-RRC-Establishment-Cause, + id-TraceCollectionEntityIPAddress, + maxnoofTAIs, + maxnoofErrors, + maxnoofE-RABs, + maxnoofIndividualS1ConnectionsToReset, + maxnoofEmergencyAreaID, + maxnoofCellID, + maxnoofTAIforWarning, + maxnoofCellinTAI, + maxnoofCellinEAI, + id-ExtendedRepetitionPeriod, + id-PS-ServiceNotAvailable, + id-RegisteredLAI, + id-GUMMEIList, + id-SourceMME-GUMMEI, + id-MME-UE-S1AP-ID-2, + id-GW-TransportLayerAddress, + id-RelayNode-Indicator, + id-Correlation-ID, + id-MMERelaySupportIndicator, + id-GWContextReleaseIndication, + id-PrivacyIndicator, + id-VoiceSupportMatchIndicator, + id-Tunnel-Information-for-BBF, + id-SIPTO-Correlation-ID, + id-SIPTO-L-GW-TransportLayerAddress, + id-KillAllWarningMessages, + id-TransportInformation, + id-LHN-ID, + id-UserLocationInformation, + id-AdditionalCSFallbackIndicator, + id-ECGIListForRestart, + id-TAIListForRestart, + id-EmergencyAreaIDListForRestart, + id-ExpectedUEBehaviour + + +FROM S1AP-Constants; + +-- ************************************************************** +-- +-- Common Container Lists +-- +-- ************************************************************** + +E-RAB-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofE-RABs, {IEsSetParam} } +E-RAB-IE-ContainerPairList { S1AP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxnoofE-RABs, {IEsSetParam} } +ProtocolError-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofE-RABs, {IEsSetParam} } + +-- ************************************************************** +-- +-- HANDOVER PREPARATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Required +-- +-- ************************************************************** + +HandoverRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverRequiredIEs} }, + ... +} + +HandoverRequiredIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-TargetID CRITICALITY reject TYPE TargetID PRESENCE mandatory}| + { ID id-Direct-Forwarding-Path-Availability CRITICALITY ignore TYPE Direct-Forwarding-Path-Availability PRESENCE optional}| + { ID id-SRVCCHOIndication CRITICALITY reject TYPE SRVCCHOIndication PRESENCE optional}| + { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory}| + { ID id-Source-ToTarget-TransparentContainer-Secondary CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE optional}| + { ID id-MSClassmark2 CRITICALITY reject TYPE MSClassmark2 PRESENCE conditional}| + { ID id-MSClassmark3 CRITICALITY ignore TYPE MSClassmark3 PRESENCE conditional}| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional}| + { ID id-PS-ServiceNotAvailable CRITICALITY ignore TYPE PS-ServiceNotAvailable PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- Handover Command +-- +-- ************************************************************** + +HandoverCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCommandIEs} }, + ... +} + +HandoverCommandIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}| + { ID id-NASSecurityParametersfromE-UTRAN CRITICALITY reject TYPE NASSecurityParametersfromE-UTRAN PRESENCE conditional + -- This IE shall be present if HandoverType IE is set to value "LTEtoUTRAN" or "LTEtoGERAN" --}| + { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional}| + { ID id-E-RABtoReleaseListHOCmd CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory}| + { ID id-Target-ToSource-TransparentContainer-Secondary CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +E-RABSubjecttoDataForwardingList ::= E-RAB-IE-ContainerList { {E-RABDataForwardingItemIEs} } + +E-RABDataForwardingItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABDataForwardingItem CRITICALITY ignore TYPE E-RABDataForwardingItem PRESENCE mandatory }, + ... +} + +E-RABDataForwardingItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-transportLayerAddress TransportLayerAddress OPTIONAL, + dL-gTP-TEID GTP-TEID OPTIONAL, + uL-TransportLayerAddress TransportLayerAddress OPTIONAL, + uL-GTP-TEID GTP-TEID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { E-RABDataForwardingItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABDataForwardingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- Handover Preparation Failure +-- +-- ************************************************************** + +HandoverPreparationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverPreparationFailureIEs} }, + ... +} + +HandoverPreparationFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER RESOURCE ALLOCATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Request +-- +-- ************************************************************** + +HandoverRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {HandoverRequestIEs} }, + ... +} + +HandoverRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory}| + { ID id-E-RABToBeSetupListHOReq CRITICALITY reject TYPE E-RABToBeSetupListHOReq PRESENCE mandatory}| + { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}| + { ID id-NASSecurityParameterstoE-UTRAN CRITICALITY reject TYPE NASSecurityParameterstoE-UTRAN PRESENCE conditional + -- This IE shall be present if the Handover Type IE is set to the value "UTRANtoLTE" or "GERANtoLTE" -- }| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional}| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional}| + { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional}| + { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}, + ... +} + +E-RABToBeSetupListHOReq ::= E-RAB-IE-ContainerList { {E-RABToBeSetupItemHOReqIEs} } + +E-RABToBeSetupItemHOReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemHOReq CRITICALITY reject TYPE E-RABToBeSetupItemHOReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemHOReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + e-RABlevelQosParameters E-RABLevelQoSParameters, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemHOReq-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSetupItemHOReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-Data-Forwarding-Not-Possible CRITICALITY ignore EXTENSION Data-Forwarding-Not-Possible PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Handover Request Acknowledge +-- +-- ************************************************************** + +HandoverRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {HandoverRequestAcknowledgeIEs} }, + ... +} + +HandoverRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABAdmittedList CRITICALITY ignore TYPE E-RABAdmittedList PRESENCE mandatory }| + { ID id-E-RABFailedToSetupListHOReqAck CRITICALITY ignore TYPE E-RABFailedtoSetupListHOReqAck PRESENCE optional }| + { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory }| + { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }| + { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional }, + ... +} + +E-RABAdmittedList ::= E-RAB-IE-ContainerList { {E-RABAdmittedItemIEs} } + +E-RABAdmittedItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABAdmittedItem CRITICALITY ignore TYPE E-RABAdmittedItem PRESENCE mandatory }, + ... +} + +E-RABAdmittedItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + dL-transportLayerAddress TransportLayerAddress OPTIONAL, + dL-gTP-TEID GTP-TEID OPTIONAL, + uL-TransportLayerAddress TransportLayerAddress OPTIONAL, + uL-GTP-TEID GTP-TEID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABAdmittedItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABAdmittedItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABFailedtoSetupListHOReqAck ::= E-RAB-IE-ContainerList { {E-RABFailedtoSetupItemHOReqAckIEs} } + +E-RABFailedtoSetupItemHOReqAckIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABFailedtoSetupItemHOReqAck CRITICALITY ignore TYPE E-RABFailedToSetupItemHOReqAck PRESENCE mandatory }, + ... +} + +E-RABFailedToSetupItemHOReqAck ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { E-RABFailedToSetupItemHOReqAckExtIEs} } OPTIONAL, + ... +} + +E-RABFailedToSetupItemHOReqAckExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Handover Failure +-- +-- ************************************************************** + +HandoverFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverFailureIEs} }, + ... +} + +HandoverFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER NOTIFICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Notify +-- +-- ************************************************************** + +HandoverNotify ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverNotifyIEs} }, + ... +} + +HandoverNotifyIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- PATH SWITCH REQUEST ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Path Switch Request +-- +-- ************************************************************** + +PathSwitchRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestIEs} }, + ... +} + +PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABToBeSwitchedDLList CRITICALITY reject TYPE E-RABToBeSwitchedDLList PRESENCE mandatory}| + { ID id-SourceMME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY ignore TYPE UESecurityCapabilities PRESENCE mandatory}| + { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional}| + { ID id-SourceMME-GUMMEI CRITICALITY ignore TYPE GUMMEI PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, + ... +} + +E-RABToBeSwitchedDLList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedDLItemIEs} } + +E-RABToBeSwitchedDLItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSwitchedDLItem CRITICALITY reject TYPE E-RABToBeSwitchedDLItem PRESENCE mandatory }, + ... +} + +E-RABToBeSwitchedDLItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedDLItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSwitchedDLItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Path Switch Request Acknowledge +-- +-- ************************************************************** + +PathSwitchRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestAcknowledgeIEs} }, + ... +} + +PathSwitchRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional}| + { ID id-E-RABToBeSwitchedULList CRITICALITY ignore TYPE E-RABToBeSwitchedULList PRESENCE optional}| + { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}, + ... +} + +E-RABToBeSwitchedULList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedULItemIEs} } + +E-RABToBeSwitchedULItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSwitchedULItem CRITICALITY ignore TYPE E-RABToBeSwitchedULItem PRESENCE mandatory }, + ... +} + +E-RABToBeSwitchedULItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedULItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSwitchedULItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Path Switch Request Failure +-- +-- ************************************************************** + +PathSwitchRequestFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestFailureIEs} }, + ... +} + +PathSwitchRequestFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER CANCEL ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Cancel +-- +-- ************************************************************** + +HandoverCancel ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCancelIEs} }, + ... +} + +HandoverCancelIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Handover Cancel Request Acknowledge +-- +-- ************************************************************** + +HandoverCancelAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCancelAcknowledgeIEs} }, + ... +} + +HandoverCancelAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- E-RAB SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Setup Request +-- +-- ************************************************************** + +E-RABSetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABSetupRequestIEs} }, + ... +} + +E-RABSetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeSetupListBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupListBearerSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupListBearerSUReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemBearerSUReqIEs} } + +E-RABToBeSetupItemBearerSUReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupItemBearerSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemBearerSUReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABlevelQoSParameters E-RABLevelQoSParameters, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + nAS-PDU NAS-PDU, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemBearerSUReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeSetupItemBearerSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- E-RAB Setup Response +-- +-- ************************************************************** + +E-RABSetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABSetupResponseIEs} }, + ... +} + +E-RABSetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABSetupListBearerSURes CRITICALITY ignore TYPE E-RABSetupListBearerSURes PRESENCE optional }| + { ID id-E-RABFailedToSetupListBearerSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABSetupListBearerSURes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemBearerSUResIEs} } + +E-RABSetupItemBearerSUResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABSetupItemBearerSURes CRITICALITY ignore TYPE E-RABSetupItemBearerSURes PRESENCE mandatory }, + ... +} + +E-RABSetupItemBearerSURes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemBearerSUResExtIEs} } OPTIONAL, + ... +} + + +E-RABSetupItemBearerSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- E-RAB MODIFY ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Modify Request +-- +-- ************************************************************** + +E-RABModifyRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABModifyRequestIEs} }, + ... +} + +E-RABModifyRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeModifiedListBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedListBearerModReq PRESENCE mandatory }, + ... +} + +E-RABToBeModifiedListBearerModReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeModifiedItemBearerModReqIEs} } + +E-RABToBeModifiedItemBearerModReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeModifiedItemBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModReq PRESENCE mandatory }, + ... +} + +E-RABToBeModifiedItemBearerModReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABLevelQoSParameters E-RABLevelQoSParameters, + nAS-PDU NAS-PDU, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeModifyItemBearerModReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeModifyItemBearerModReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-TransportInformation CRITICALITY reject EXTENSION TransportInformation PRESENCE optional}, + ... +} + + + +-- ************************************************************** +-- +-- E-RAB Modify Response +-- +-- ************************************************************** + +E-RABModifyResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABModifyResponseIEs} }, + ... +} + +E-RABModifyResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABModifyListBearerModRes CRITICALITY ignore TYPE E-RABModifyListBearerModRes PRESENCE optional }| + { ID id-E-RABFailedToModifyList CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABModifyListBearerModRes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModResIEs} } + +E-RABModifyItemBearerModResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABModifyItemBearerModRes CRITICALITY ignore TYPE E-RABModifyItemBearerModRes PRESENCE mandatory}, + ... +} + +E-RABModifyItemBearerModRes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModResExtIEs} } OPTIONAL, + ... +} + + +E-RABModifyItemBearerModResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + + +-- ************************************************************** +-- +-- E-RAB RELEASE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Release Command +-- +-- ************************************************************** + +E-RABReleaseCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABReleaseCommandIEs} }, + ... +} + +E-RABReleaseCommandIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }| + { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- E-RAB Release Response +-- +-- ************************************************************** + +E-RABReleaseResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { E-RABReleaseResponseIEs } }, + ... +} + +E-RABReleaseResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABReleaseListBearerRelComp CRITICALITY ignore TYPE E-RABReleaseListBearerRelComp PRESENCE optional }| + { ID id-E-RABFailedToReleaseList CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }| +-- Extension for Release 12 to support User Location Information -- + { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }, + ... +} + + +E-RABReleaseListBearerRelComp ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABReleaseItemBearerRelCompIEs} } + +E-RABReleaseItemBearerRelCompIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABReleaseItemBearerRelComp CRITICALITY ignore TYPE E-RABReleaseItemBearerRelComp PRESENCE mandatory }, + ... +} + +E-RABReleaseItemBearerRelComp ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABReleaseItemBearerRelCompExtIEs} } OPTIONAL, + ... +} + + +E-RABReleaseItemBearerRelCompExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- E-RAB RELEASE INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Release Indication +-- +-- ************************************************************** + +E-RABReleaseIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABReleaseIndicationIEs} }, + ... +} + +E-RABReleaseIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }| +-- Extension for Release 12 to support User Location Information -- + { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- INITIAL CONTEXT SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Initial Context Setup Request +-- +-- ************************************************************** + +InitialContextSetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupRequestIEs} }, + ... +} + +InitialContextSetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory}| + { ID id-E-RABToBeSetupListCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupListCtxtSUReq PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory}| + { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE mandatory}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| + { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional}| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional}| + { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional}| + { ID id-AdditionalCSFallbackIndicator CRITICALITY ignore TYPE AdditionalCSFallbackIndicator PRESENCE conditional}| + { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}, + ... +} + + + + +E-RABToBeSetupListCtxtSUReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemCtxtSUReqIEs} } + +E-RABToBeSetupItemCtxtSUReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupItemCtxtSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemCtxtSUReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABlevelQoSParameters E-RABLevelQoSParameters, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + nAS-PDU NAS-PDU OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemCtxtSUReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeSetupItemCtxtSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- Initial Context Setup Response +-- +-- ************************************************************** + +InitialContextSetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupResponseIEs} }, + ... +} + +InitialContextSetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABSetupListCtxtSURes CRITICALITY ignore TYPE E-RABSetupListCtxtSURes PRESENCE mandatory }| + { ID id-E-RABFailedToSetupListCtxtSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABSetupListCtxtSURes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemCtxtSUResIEs} } + +E-RABSetupItemCtxtSUResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABSetupItemCtxtSURes CRITICALITY ignore TYPE E-RABSetupItemCtxtSURes PRESENCE mandatory }, + ... +} + +E-RABSetupItemCtxtSURes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemCtxtSUResExtIEs} } OPTIONAL, + ... +} + + +E-RABSetupItemCtxtSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Initial Context Setup Failure +-- +-- ************************************************************** + +InitialContextSetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupFailureIEs} }, + ... +} + +InitialContextSetupFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- PAGING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + + +-- ************************************************************** +-- +-- Paging +-- +-- ************************************************************** + +Paging ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{PagingIEs}}, + ... +} + +PagingIEs S1AP-PROTOCOL-IES ::= { + { ID id-UEIdentityIndexValue CRITICALITY ignore TYPE UEIdentityIndexValue PRESENCE mandatory}| + { ID id-UEPagingID CRITICALITY ignore TYPE UEPagingID PRESENCE mandatory}| + { ID id-pagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional}| + { ID id-CNDomain CRITICALITY ignore TYPE CNDomain PRESENCE mandatory}| + { ID id-TAIList CRITICALITY ignore TYPE TAIList PRESENCE mandatory}| + { ID id-CSG-IdList CRITICALITY ignore TYPE CSG-IdList PRESENCE optional}| + { ID id-PagingPriority CRITICALITY ignore TYPE PagingPriority PRESENCE optional}| + { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional}, + ... +} + +TAIList::= SEQUENCE (SIZE(1.. maxnoofTAIs)) OF ProtocolIE-SingleContainer {{TAIItemIEs}} + +TAIItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-TAIItem CRITICALITY ignore TYPE TAIItem PRESENCE mandatory }, + ... +} + +TAIItem ::= SEQUENCE { + tAI TAI, + iE-Extensions ProtocolExtensionContainer { {TAIItemExtIEs} } OPTIONAL, + ... +} + + +TAIItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- UE CONTEXT RELEASE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Release Request +-- +-- ************************************************************** + +UEContextReleaseRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseRequest-IEs}}, + ... +} + +UEContextReleaseRequest-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-GWContextReleaseIndication CRITICALITY reject TYPE GWContextReleaseIndication PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- UE Context Release Command +-- +-- ************************************************************** + +UEContextReleaseCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseCommand-IEs}}, + ... +} + +UEContextReleaseCommand-IEs S1AP-PROTOCOL-IES ::= { + { ID id-UE-S1AP-IDs CRITICALITY reject TYPE UE-S1AP-IDs PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UE Context Release Complete +-- +-- ************************************************************** + +UEContextReleaseComplete ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseComplete-IEs}}, + ... +} + +UEContextReleaseComplete-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }| +-- Extension for Release 12 to support User Location Information -- + { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- UE CONTEXT MODIFICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Modification Request +-- +-- ************************************************************** + +UEContextModificationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationRequestIEs} }, + ... +} + +UEContextModificationRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE optional}| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| + { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional}| + { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}| + { ID id-AdditionalCSFallbackIndicator CRITICALITY ignore TYPE AdditionalCSFallbackIndicator PRESENCE conditional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}, + ... +} +-- ************************************************************** +-- +-- UE Context Modification Response +-- +-- ************************************************************** + +UEContextModificationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationResponseIEs} }, + ... +} + +UEContextModificationResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- UE Context Modification Failure +-- +-- ************************************************************** + +UEContextModificationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationFailureIEs} }, + ... +} + +UEContextModificationFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- UE RADIO CAPABILITY MATCH ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Radio Capability Match Request +-- +-- ************************************************************** + +UERadioCapabilityMatchRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UERadioCapabilityMatchRequestIEs} }, + ... +} + +UERadioCapabilityMatchRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- UE Radio Capability Match Response +-- +-- ************************************************************** + +UERadioCapabilityMatchResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UERadioCapabilityMatchResponseIEs} }, + ... +} + +UERadioCapabilityMatchResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-VoiceSupportMatchIndicator CRITICALITY reject TYPE VoiceSupportMatchIndicator PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- NAS TRANSPORT ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- DOWNLINK NAS TRANSPORT +-- +-- ************************************************************** + +DownlinkNASTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkNASTransport-IEs}}, + ... +} + +DownlinkNASTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- INITIAL UE MESSAGE +-- +-- ************************************************************** + +InitialUEMessage ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{InitialUEMessage-IEs}}, + ... +} + +InitialUEMessage-IEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}| + { ID id-TAI CRITICALITY reject TYPE TAI PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-RRC-Establishment-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE mandatory}| + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE optional}| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional}| + { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-RelayNode-Indicator CRITICALITY reject TYPE RelayNode-Indicator PRESENCE optional}| + { ID id-GUMMEIType CRITICALITY ignore TYPE GUMMEIType PRESENCE optional}| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}| + { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- UPLINK NAS TRANSPORT +-- +-- ************************************************************** + +UplinkNASTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkNASTransport-IEs}}, + ... +} + +UplinkNASTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| + { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, + ... +} +-- ************************************************************** +-- +-- NAS NON DELIVERY INDICATION +-- +-- ************************************************************** + +NASNonDeliveryIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{NASNonDeliveryIndication-IEs}}, + ... +} + +NASNonDeliveryIndication-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- RESET ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Reset +-- +-- ************************************************************** + +Reset ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ResetIEs} }, + ... +} + +ResetIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-ResetType CRITICALITY reject TYPE ResetType PRESENCE mandatory }, + ... +} + +ResetType ::= CHOICE { + s1-Interface ResetAll, + partOfS1-Interface UE-associatedLogicalS1-ConnectionListRes, + ... +} + + + +ResetAll ::= ENUMERATED { + reset-all, + ... +} + +UE-associatedLogicalS1-ConnectionListRes ::= SEQUENCE (SIZE(1.. maxnoofIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemRes } } + +UE-associatedLogicalS1-ConnectionItemRes S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY reject TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- Reset Acknowledge +-- +-- ************************************************************** + +ResetAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} }, + ... +} + +ResetAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionListResAck CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionListResAck PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +UE-associatedLogicalS1-ConnectionListResAck ::= SEQUENCE (SIZE(1.. maxnoofIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemResAck } } + +UE-associatedLogicalS1-ConnectionItemResAck S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- ERROR INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Error Indication +-- +-- ************************************************************** + +ErrorIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ErrorIndicationIEs}}, + ... +} + +ErrorIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE optional }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- S1 SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- S1 Setup Request +-- +-- ************************************************************** + +S1SetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupRequestIEs} }, + ... +} + +S1SetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory }| + { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional }| + { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE mandatory }| + { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE mandatory }| + { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- S1 Setup Response +-- +-- ************************************************************** + +S1SetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupResponseIEs} }, + ... +} + + +S1SetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }| + { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE mandatory }| + { ID id-RelativeMMECapacity CRITICALITY ignore TYPE RelativeMMECapacity PRESENCE mandatory }| + { ID id-MMERelaySupportIndicator CRITICALITY ignore TYPE MMERelaySupportIndicator PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- S1 Setup Failure +-- +-- ************************************************************** + +S1SetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupFailureIEs} }, + ... +} + +S1SetupFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Configuration Update +-- +-- ************************************************************** + +ENBConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateIEs} }, + ... +} + +ENBConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= { + { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional }| + { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE optional }| + { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional }| + { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- eNB Configuration Update Acknowledge +-- +-- ************************************************************** + +ENBConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateAcknowledgeIEs} }, + ... +} + + +ENBConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- eNB Configuration Update Failure +-- +-- ************************************************************** + +ENBConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateFailureIEs} }, + ... +} + +ENBConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, +... +} + + +-- ************************************************************** +-- +-- MME CONFIGURATION UPDATE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Configuration Update +-- +-- ************************************************************** + +MMEConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateIEs} }, + ... +} + +MMEConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= { + { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }| + { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE optional }| + { ID id-RelativeMMECapacity CRITICALITY reject TYPE RelativeMMECapacity PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- MME Configuration Update Acknowledge +-- +-- ************************************************************** + +MMEConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateAcknowledgeIEs} }, + ... +} + + +MMEConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- MME Configuration Update Failure +-- +-- ************************************************************** + +MMEConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateFailureIEs} }, + ... +} + +MMEConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- DOWNLINK S1 CDMA2000 TUNNELLING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Downlink S1 CDMA2000 Tunnelling +-- +-- ************************************************************** + +DownlinkS1cdma2000tunnelling ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {DownlinkS1cdma2000tunnellingIEs} }, + ... +} + +DownlinkS1cdma2000tunnellingIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional }| + { ID id-cdma2000HOStatus CRITICALITY ignore TYPE Cdma2000HOStatus PRESENCE optional }| + { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory }| + { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UPLINK S1 CDMA2000 TUNNELLING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Uplink S1 CDMA2000 Tunnelling +-- +-- ************************************************************** + +UplinkS1cdma2000tunnelling ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {UplinkS1cdma2000tunnellingIEs} }, + ... +} + +UplinkS1cdma2000tunnellingIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory }| + { ID id-cdma2000SectorID CRITICALITY reject TYPE Cdma2000SectorID PRESENCE mandatory }| + { ID id-cdma2000HORequiredIndication CRITICALITY ignore TYPE Cdma2000HORequiredIndication PRESENCE optional }| + { ID id-cdma2000OneXSRVCCInfo CRITICALITY reject TYPE Cdma2000OneXSRVCCInfo PRESENCE optional }| + { ID id-cdma2000OneXRAND CRITICALITY reject TYPE Cdma2000OneXRAND PRESENCE optional }| + { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory }| + { ID id-EUTRANRoundTripDelayEstimationInfo CRITICALITY ignore TYPE EUTRANRoundTripDelayEstimationInfo PRESENCE optional }, + -- Extension for Release 9 to assist target HRPD access with the acquisition of the UE -- + ... +} + + +-- ************************************************************** +-- +-- UE CAPABILITY INFO INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Capability Info Indication +-- +-- ************************************************************** + +UECapabilityInfoIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UECapabilityInfoIndicationIEs} }, + ... +} + +UECapabilityInfoIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE mandatory}| + { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- eNB STATUS TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Status Transfer +-- +-- ************************************************************** + +ENBStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBStatusTransferIEs} }, + ... +} + +ENBStatusTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- MME STATUS TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Status Transfer +-- +-- ************************************************************** + +MMEStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEStatusTransferIEs} }, + ... +} + +MMEStatusTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- TRACE ELEMENTARY PROCEDURES +-- +-- ************************************************************** +-- ************************************************************** +-- +-- Trace Start +-- +-- ************************************************************** + +TraceStart ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {TraceStartIEs} }, + ... +} + +TraceStartIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Trace Failure Indication +-- +-- ************************************************************** + +TraceFailureIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {TraceFailureIndicationIEs} }, + ... +} + +TraceFailureIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- DEACTIVATE TRACE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Deactivate Trace +-- +-- ************************************************************** + +DeactivateTrace ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { DeactivateTraceIEs} }, + ... +} + +DeactivateTraceIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- CELL TRAFFIC TRACE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Cell Traffic Trace +-- +-- ************************************************************** + +CellTrafficTrace ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { CellTrafficTraceIEs } }, + ... +} + +CellTrafficTraceIEs S1AP-PROTOCOL-IES ::= { + {ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + {ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + {ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }| + {ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }| + {ID id-TraceCollectionEntityIPAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE mandatory }| + {ID id-PrivacyIndicator CRITICALITY ignore TYPE PrivacyIndicator PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- LOCATION ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Location Reporting Control +-- +-- ************************************************************** + +LocationReportingControl ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportingControlIEs} }, + ... +} + +LocationReportingControlIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Location Report Failure Indication +-- +-- ************************************************************** + +LocationReportingFailureIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportingFailureIndicationIEs} }, + ... +} + +LocationReportingFailureIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Location Report +-- +-- ************************************************************** + +LocationReport ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportIEs} }, + ... +} + +LocationReportIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory }| + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- OVERLOAD ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Overload Start +-- +-- ************************************************************** + +OverloadStart ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {OverloadStartIEs} }, + ... +} + +OverloadStartIEs S1AP-PROTOCOL-IES ::= { + { ID id-OverloadResponse CRITICALITY reject TYPE OverloadResponse PRESENCE mandatory }| + { ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional }| + { ID id-TrafficLoadReductionIndication CRITICALITY ignore TYPE TrafficLoadReductionIndication PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- Overload Stop +-- +-- ************************************************************** + +OverloadStop ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {OverloadStopIEs} }, + ... +} + +OverloadStopIEs S1AP-PROTOCOL-IES ::= { +{ ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- WRITE-REPLACE WARNING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Write-Replace Warning Request +-- +-- ************************************************************** + + +WriteReplaceWarningRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {WriteReplaceWarningRequestIEs} }, + ... +} + +WriteReplaceWarningRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional }| + { ID id-RepetitionPeriod CRITICALITY reject TYPE RepetitionPeriod PRESENCE mandatory }| + { ID id-ExtendedRepetitionPeriod CRITICALITY reject TYPE ExtendedRepetitionPeriod PRESENCE optional }| + { ID id-NumberofBroadcastRequest CRITICALITY reject TYPE NumberofBroadcastRequest PRESENCE mandatory }| + { ID id-WarningType CRITICALITY ignore TYPE WarningType PRESENCE optional }| + { ID id-WarningSecurityInfo CRITICALITY ignore TYPE WarningSecurityInfo PRESENCE optional }| + { ID id-DataCodingScheme CRITICALITY ignore TYPE DataCodingScheme PRESENCE optional }| + { ID id-WarningMessageContents CRITICALITY ignore TYPE WarningMessageContents PRESENCE optional }| + { ID id-ConcurrentWarningMessageIndicator CRITICALITY reject TYPE ConcurrentWarningMessageIndicator PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- Write-Replace Warning Response +-- +-- ************************************************************** + +WriteReplaceWarningResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {WriteReplaceWarningResponseIEs} }, + ... +} + +WriteReplaceWarningResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-BroadcastCompletedAreaList CRITICALITY ignore TYPE BroadcastCompletedAreaList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- eNB DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Direct Information Transfer +-- +-- ************************************************************** + +ENBDirectInformationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ ENBDirectInformationTransferIEs}}, + ... +} + +ENBDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-Inter-SystemInformationTransferTypeEDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory }, + ... +} + +Inter-SystemInformationTransferType ::= CHOICE { + rIMTransfer RIMTransfer, + ... +} + +-- ************************************************************** +-- +-- MME DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Direct Information Transfer +-- +-- ************************************************************** + +MMEDirectInformationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ MMEDirectInformationTransferIEs}}, + ... +} + +MMEDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-Inter-SystemInformationTransferTypeMDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory }, + ... +} +-- ************************************************************** +-- +-- eNB CONFIGURATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Configuration Transfer +-- +-- ************************************************************** + +ENBConfigurationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ ENBConfigurationTransferIEs}}, + ... +} + +ENBConfigurationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-SONConfigurationTransferECT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- MME CONFIGURATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Configuration Transfer +-- +-- ************************************************************** + +MMEConfigurationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ MMEConfigurationTransferIEs}}, + ... +} + +MMEConfigurationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-SONConfigurationTransferMCT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- PRIVATE MESSAGE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Private Message +-- +-- ************************************************************** + +PrivateMessage ::= SEQUENCE { + privateIEs PrivateIE-Container {{PrivateMessageIEs}}, + ... +} + +PrivateMessageIEs S1AP-PRIVATE-IES ::= { + ... +} + +-- ************************************************************** +-- +-- KILL PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Kill Request +-- +-- ************************************************************** + + +KillRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {KillRequestIEs} }, + ... +} + +KillRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory}| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory}| + { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional}| + { ID id-KillAllWarningMessages CRITICALITY reject TYPE KillAllWarningMessages PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Kill Response +-- +-- ************************************************************** + +KillResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {KillResponseIEs} }, + ... +} + +KillResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-BroadcastCancelledAreaList CRITICALITY ignore TYPE BroadcastCancelledAreaList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- PWS RESTART INDICATION PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- PWS Restart Indication +-- +-- ************************************************************** + +PWSRestartIndication::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ PWSRestartIndicationIEs}}, + ... +} + +PWSRestartIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-ECGIListForRestart CRITICALITY reject TYPE ECGIListForRestart PRESENCE mandatory}| + { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}| + { ID id-TAIListForRestart CRITICALITY reject TYPE TAIListForRestart PRESENCE mandatory}| + { ID id-EmergencyAreaIDListForRestart CRITICALITY reject TYPE EmergencyAreaIDListForRestart PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- LPPA TRANSPORT ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- DOWNLINK UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +DownlinkUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkUEAssociatedLPPaTransport-IEs}}, + ... +} + +DownlinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UPLINK UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +UplinkUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkUEAssociatedLPPaTransport-IEs}}, + ... +} + +UplinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- DOWNLINK NON UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +DownlinkNonUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkNonUEAssociatedLPPaTransport-IEs}}, + ... +} + +DownlinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UPLINK NON UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +UplinkNonUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkNonUEAssociatedLPPaTransport-IEs}}, + ... +} + +UplinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + + +-- ************************************************************** +-- +-- E-RAB MODIFICATION INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Modification Indication +-- +-- ************************************************************** + +E-RABModificationIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { E-RABModificationIndicationIEs} }, + ... +} + +E-RABModificationIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABToBeModifiedListBearerModInd CRITICALITY reject TYPE E-RABToBeModifiedListBearerModInd PRESENCE mandatory}| + { ID id-E-RABNotToBeModifiedListBearerModInd CRITICALITY reject TYPE E-RABNotToBeModifiedListBearerModInd PRESENCE optional}, + ... +} + +E-RABToBeModifiedListBearerModInd ::= E-RAB-IE-ContainerList { {E-RABToBeModifiedItemBearerModIndIEs} } + +E-RABToBeModifiedItemBearerModIndIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeModifiedItemBearerModInd CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModInd PRESENCE mandatory}, + ... +} + +E-RABToBeModifiedItemBearerModInd ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + dL-GTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABToBeModifiedItemBearerModInd-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeModifiedItemBearerModInd-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABNotToBeModifiedListBearerModInd ::= E-RAB-IE-ContainerList { {E-RABNotToBeModifiedItemBearerModIndIEs} } + +E-RABNotToBeModifiedItemBearerModIndIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABNotToBeModifiedItemBearerModInd CRITICALITY reject TYPE E-RABNotToBeModifiedItemBearerModInd PRESENCE mandatory}, + ... +} + +E-RABNotToBeModifiedItemBearerModInd ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + dL-GTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABNotToBeModifiedItemBearerModInd-ExtIEs} } OPTIONAL, + ... +} + +E-RABNotToBeModifiedItemBearerModInd-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- E-RAB Modification Confirm +-- +-- ************************************************************** + +E-RABModificationConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABModificationConfirmIEs} }, + ... +} + +E-RABModificationConfirmIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABModifyListBearerModConf CRITICALITY ignore TYPE E-RABModifyListBearerModConf PRESENCE optional}| + { ID id-E-RABFailedToModifyListBearerModConf CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-E-RABToBeReleasedListBearerModConf CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +E-RABModifyListBearerModConf ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModConfIEs} } + +E-RABModifyItemBearerModConfIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABModifyItemBearerModConf CRITICALITY ignore TYPE E-RABModifyItemBearerModConf PRESENCE mandatory}, + ... +} + +E-RABModifyItemBearerModConf ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModConfExtIEs} } OPTIONAL, + ... +} + + +E-RABModifyItemBearerModConfExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +END + + + +-- ************************************************************** +-- +-- Information Element Definitions +-- +-- ************************************************************** + +S1AP-IEs { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-IEs (2) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + id-E-RABInformationListItem, + id-E-RABItem, + id-Bearers-SubjectToStatusTransfer-Item, + id-Time-Synchronisation-Info, + id-x2TNLConfigurationInfo, + id-eNBX2ExtendedTransportLayerAddresses, + id-MDTConfiguration, + id-Time-UE-StayedInCell-EnhancedGranularity, + id-HO-Cause, + id-M3Configuration, + id-M4Configuration, + id-M5Configuration, + id-MDT-Location-Info, + id-SignallingBasedMDTPLMNList, + id-MobilityInformation, + id-ULCOUNTValueExtended, + id-DLCOUNTValueExtended, + id-ReceiveStatusOfULPDCPSDUsExtended, + id-eNBIndirectX2TransportLayerAddresses, + id-Muting-Availability-Indication, + id-Muting-Pattern-Information, + id-Synchronisation-Information, + id-uE-HistoryInformationFromTheUE, + id-LoggedMBSFNMDT, + id-SON-Information-Report, + maxnoofCSGs, + maxnoofE-RABs, + maxnoofErrors, + maxnoofBPLMNs, + maxnoofPLMNsPerMME, + maxnoofTACs, + maxnoofEPLMNs, + maxnoofEPLMNsPlusOne, + maxnoofForbLACs, + maxnoofForbTACs, + maxnoofCells, + maxnoofCellID, + maxnoofEmergencyAreaID, + maxnoofTAIforWarning, + maxnoofCellinTAI, + maxnoofCellinEAI, + maxnoofeNBX2TLAs, + maxnoofeNBX2ExtTLAs, + maxnoofeNBX2GTPTLAs, + maxnoofRATs, + maxnoofGroupIDs, + maxnoofMMECs, + maxnoofTAforMDT, + maxnoofCellIDforMDT, + maxnoofMDTPLMNs, + maxnoofCellsforRestart, + maxnoofRestartTAIs, + maxnoofRestartEmergencyAreaIDs, + maxnoofMBSFNAreaMDT, + maxEARFCN, + maxnoofCellsineNB + + + +FROM S1AP-Constants + + Criticality, + ProcedureCode, + ProtocolIE-ID, + TriggeringMessage +FROM S1AP-CommonDataTypes + + ProtocolExtensionContainer{}, + S1AP-PROTOCOL-EXTENSION, + ProtocolIE-SingleContainer{}, + S1AP-PROTOCOL-IES + +FROM S1AP-Containers; + +-- A + +AreaScopeOfMDT ::= CHOICE { + cellBased CellBasedMDT, + tABased TABasedMDT, + pLMNWide NULL, + ..., + tAIBased TAIBasedMDT +} + +AllocationAndRetentionPriority ::= SEQUENCE { + priorityLevel PriorityLevel, + pre-emptionCapability Pre-emptionCapability, + pre-emptionVulnerability Pre-emptionVulnerability, + iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, + ... +} + +AllocationAndRetentionPriority-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- B + +Bearers-SubjectToStatusTransferList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { { Bearers-SubjectToStatusTransfer-ItemIEs } } + +Bearers-SubjectToStatusTransfer-ItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-Bearers-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE Bearers-SubjectToStatusTransfer-Item PRESENCE mandatory }, + ... +} + +Bearers-SubjectToStatusTransfer-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-COUNTvalue COUNTvalue, + dL-COUNTvalue COUNTvalue, + receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {Bearers-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL, + ... +} + +Bearers-SubjectToStatusTransfer-ItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-ULCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional }| + { ID id-DLCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional }| + { ID id-ReceiveStatusOfULPDCPSDUsExtended CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsExtended PRESENCE optional }, + ... +} + +BitRate ::= INTEGER (0..10000000000) + +BPLMNs ::= SEQUENCE (SIZE(1.. maxnoofBPLMNs)) OF PLMNidentity + +BroadcastCancelledAreaList ::= CHOICE { + cellID-Cancelled CellID-Cancelled, + tAI-Cancelled TAI-Cancelled, + emergencyAreaID-Cancelled EmergencyAreaID-Cancelled, + ... +} + +BroadcastCompletedAreaList ::= CHOICE { + cellID-Broadcast CellID-Broadcast, + tAI-Broadcast TAI-Broadcast, + emergencyAreaID-Broadcast EmergencyAreaID-Broadcast, + ... +} + + +-- C + +CancelledCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CancelledCellinEAI-Item + +CancelledCellinEAI-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CancelledCellinEAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CancelledCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CancelledCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CancelledCellinTAI-Item + +CancelledCellinTAI-Item ::= SEQUENCE{ + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CancelledCellinTAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CancelledCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Cause ::= CHOICE { + radioNetwork CauseRadioNetwork, + transport CauseTransport, + nas CauseNas, + protocol CauseProtocol, + misc CauseMisc, + ... +} + +CauseMisc ::= ENUMERATED { + control-processing-overload, + not-enough-user-plane-processing-resources, + hardware-failure, + om-intervention, + unspecified, + unknown-PLMN, +... +} + +CauseProtocol ::= ENUMERATED { + transfer-syntax-error, + abstract-syntax-error-reject, + abstract-syntax-error-ignore-and-notify, + message-not-compatible-with-receiver-state, + semantic-error, + abstract-syntax-error-falsely-constructed-message, + unspecified, + ... +} + +CauseRadioNetwork ::= ENUMERATED { + unspecified, + tx2relocoverall-expiry, + successful-handover, + release-due-to-eutran-generated-reason, + handover-cancelled, + partial-handover, + ho-failure-in-target-EPC-eNB-or-target-system, + ho-target-not-allowed, + tS1relocoverall-expiry, + tS1relocprep-expiry, + cell-not-available, + unknown-targetID, + no-radio-resources-available-in-target-cell, + unknown-mme-ue-s1ap-id, + unknown-enb-ue-s1ap-id, + unknown-pair-ue-s1ap-id, + handover-desirable-for-radio-reason, + time-critical-handover, + resource-optimisation-handover, + reduce-load-in-serving-cell, + user-inactivity, + radio-connection-with-ue-lost, + load-balancing-tau-required, + cs-fallback-triggered, + ue-not-available-for-ps-service, + radio-resources-not-available, + failure-in-radio-interface-procedure, + invalid-qos-combination, + interrat-redirection, + interaction-with-other-procedure, + unknown-E-RAB-ID, + multiple-E-RAB-ID-instances, + encryption-and-or-integrity-protection-algorithms-not-supported, + s1-intra-system-handover-triggered, + s1-inter-system-handover-triggered, + x2-handover-triggered, + ..., + redirection-towards-1xRTT, + not-supported-QCI-value, + invalid-CSG-Id + +} + +CauseTransport ::= ENUMERATED { + transport-resource-unavailable, + unspecified, + ... +} + +CauseNas ::= ENUMERATED { + normal-release, + authentication-failure, + detach, + unspecified, + ..., + csg-subscription-expiry +} + +CellAccessMode ::= ENUMERATED { + hybrid, + ... +} + +CellIdentity ::= BIT STRING (SIZE (28)) + +CellID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Broadcast-Item + +CellID-Broadcast-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CellID-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +CellID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellID-Cancelled::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Cancelled-Item + +CellID-Cancelled-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CellID-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +CellID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellBasedMDT::= SEQUENCE { + cellIdListforMDT CellIdListforMDT, + iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +CellBasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF EUTRAN-CGI + +Cdma2000PDU ::= OCTET STRING + +Cdma2000RATType ::= ENUMERATED { + hRPD, + onexRTT, + ... +} + +Cdma2000SectorID ::= OCTET STRING + +Cdma2000HOStatus ::= ENUMERATED { + hOSuccess, + hOFailure, + ... +} + +Cdma2000HORequiredIndication ::= ENUMERATED { + true, + ... +} + +Cdma2000OneXSRVCCInfo ::= SEQUENCE { + cdma2000OneXMEID Cdma2000OneXMEID, + cdma2000OneXMSI Cdma2000OneXMSI, + cdma2000OneXPilot Cdma2000OneXPilot, + iE-Extensions ProtocolExtensionContainer { {Cdma2000OneXSRVCCInfo-ExtIEs} } OPTIONAL, + ... +} + +Cdma2000OneXSRVCCInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Cdma2000OneXMEID ::= OCTET STRING + +Cdma2000OneXMSI ::= OCTET STRING + +Cdma2000OneXPilot ::= OCTET STRING + +Cdma2000OneXRAND ::= OCTET STRING + + +Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ...} + +CellType ::= SEQUENCE { + cell-Size Cell-Size, + iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL, + ... +} + +CellType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CGI ::= SEQUENCE { + pLMNidentity PLMNidentity, + lAC LAC, + cI CI, + rAC RAC OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL, + ... + } + +CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CI ::= OCTET STRING (SIZE (2)) + +CNDomain ::= ENUMERATED { + ps, + cs +} + +ConcurrentWarningMessageIndicator ::= ENUMERATED { + true +} + +Correlation-ID ::= OCTET STRING (SIZE (4)) + +CSFallbackIndicator ::= ENUMERATED { + cs-fallback-required, + ..., + cs-fallback-high-priority +} + +AdditionalCSFallbackIndicator ::= ENUMERATED { + no-restriction, + restriction, + ... +} + +CSG-Id ::= BIT STRING (SIZE (27)) + + +CSG-IdList ::= SEQUENCE (SIZE (1.. maxnoofCSGs)) OF CSG-IdList-Item + +CSG-IdList-Item ::= SEQUENCE { + cSG-Id CSG-Id, + iE-Extensions ProtocolExtensionContainer { {CSG-IdList-Item-ExtIEs} } OPTIONAL, + ... +} + +CSG-IdList-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CSGMembershipStatus ::= ENUMERATED { + member, + not-member +} + + +COUNTvalue ::= SEQUENCE { + pDCP-SN PDCP-SN, + hFN HFN, + iE-Extensions ProtocolExtensionContainer { {COUNTvalue-ExtIEs} } OPTIONAL, + ... +} +COUNTvalue-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTValueExtended ::= SEQUENCE { + pDCP-SNExtended PDCP-SNExtended, + hFNModified HFNModified, + iE-Extensions ProtocolExtensionContainer { {COUNTValueExtended-ExtIEs} } OPTIONAL, + ... +} + +COUNTValueExtended-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-ExtIEs}} OPTIONAL, + ... +} + +CriticalityDiagnostics-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1.. maxnoofErrors)) OF CriticalityDiagnostics-IE-Item + +CriticalityDiagnostics-IE-Item ::= SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-IE-Item-ExtIEs}} OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- D + +DataCodingScheme ::= BIT STRING (SIZE (8)) + +DL-Forwarding ::= ENUMERATED { + dL-Forwarding-proposed, + ... +} + +Direct-Forwarding-Path-Availability ::= ENUMERATED { + directPathAvailable, + ... +} + +Data-Forwarding-Not-Possible ::= ENUMERATED { + data-Forwarding-not-Possible, + ... +} + +-- E + +EARFCN ::= INTEGER(0..maxEARFCN, ...) + +ECGIList ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF EUTRAN-CGI + +EmergencyAreaIDList ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID + +EmergencyAreaID ::= OCTET STRING (SIZE (3)) + +EmergencyAreaID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Broadcast-Item + +EmergencyAreaID-Broadcast-Item ::= SEQUENCE { + emergencyAreaID EmergencyAreaID, + completedCellinEAI CompletedCellinEAI, + iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +EmergencyAreaID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +EmergencyAreaID-Cancelled ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Cancelled-Item + +EmergencyAreaID-Cancelled-Item ::= SEQUENCE { + emergencyAreaID EmergencyAreaID, + cancelledCellinEAI CancelledCellinEAI, + iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +EmergencyAreaID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompletedCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CompletedCellinEAI-Item + +CompletedCellinEAI-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CompletedCellinEAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CompletedCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ECGI-List ::= SEQUENCE (SIZE(1..maxnoofCellsineNB)) OF EUTRAN-CGI + +EmergencyAreaIDListForRestart ::= SEQUENCE (SIZE(1..maxnoofRestartEmergencyAreaIDs)) OF EmergencyAreaID + +ENB-ID ::= CHOICE { + macroENB-ID BIT STRING (SIZE(20)), + homeENB-ID BIT STRING (SIZE(28)), + ... +} + +GERAN-Cell-ID ::= SEQUENCE { + lAI LAI, + rAC RAC, + cI CI, + iE-Extensions ProtocolExtensionContainer { { GERAN-Cell-ID-ExtIEs} } OPTIONAL, + ... +} + +GERAN-Cell-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Global-ENB-ID ::= SEQUENCE { + pLMNidentity PLMNidentity, + eNB-ID ENB-ID, + iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL, + ... +} + +GlobalENB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +GUMMEIList::= SEQUENCE (SIZE (1.. maxnoofMMECs)) OF GUMMEI + +ENB-StatusTransfer-TransparentContainer ::= SEQUENCE { + bearers-SubjectToStatusTransferList Bearers-SubjectToStatusTransferList, + iE-Extensions ProtocolExtensionContainer { {ENB-StatusTransfer-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +ENB-StatusTransfer-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENB-UE-S1AP-ID ::= INTEGER (0..16777215) + +ENBname ::= PrintableString (SIZE (1..150,...)) + +ENBX2TLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2TLAs)) OF TransportLayerAddress + +EncryptionAlgorithms ::= BIT STRING (SIZE (16,...)) + +EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMNidentity +EventType ::= ENUMERATED { + direct, + change-of-serve-cell, + stop-change-of-serve-cell, + ... +} + +E-RAB-ID ::= INTEGER (0..15, ...) + +E-RABInformationList ::= SEQUENCE (SIZE (1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { { E-RABInformationListIEs } } + +E-RABInformationListIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABInformationListItem CRITICALITY ignore TYPE E-RABInformationListItem PRESENCE mandatory }, + ... +} + +E-RABInformationListItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-Forwarding DL-Forwarding OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABInformationListItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABInformationListItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABItemIEs} } + +E-RABItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABItem CRITICALITY ignore TYPE E-RABItem PRESENCE mandatory }, + ... +} + +E-RABItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RABItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +E-RABLevelQoSParameters ::= SEQUENCE { + qCI QCI, + allocationRetentionPriority AllocationAndRetentionPriority, + gbrQosInformation GBR-QosInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABQoSParameters-ExtIEs} } OPTIONAL, + ... +} + +E-RABQoSParameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +EUTRAN-CGI ::= SEQUENCE { + pLMNidentity PLMNidentity, + cell-ID CellIdentity, + iE-Extensions ProtocolExtensionContainer { {EUTRAN-CGI-ExtIEs} } OPTIONAL, + ... +} + +EUTRAN-CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +EUTRANRoundTripDelayEstimationInfo ::= INTEGER (0..2047) + +ExpectedUEBehaviour ::= SEQUENCE { + expectedActivity ExpectedUEActivityBehaviour OPTIONAL, + expectedHOInterval ExpectedHOInterval OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ExpectedUEBehaviour-ExtIEs} } OPTIONAL, + ... +} + +ExpectedUEBehaviour-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ExpectedUEActivityBehaviour ::= SEQUENCE { + expectedActivityPeriod ExpectedActivityPeriod OPTIONAL, + expectedIdlePeriod ExpectedIdlePeriod OPTIONAL, + sourceofUEActivityBehaviourInformation SourceOfUEActivityBehaviourInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ExpectedUEActivityBehaviour-ExtIEs} } OPTIONAL, + ... +} + +ExpectedUEActivityBehaviour-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ExpectedActivityPeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) + +ExpectedIdlePeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) + +SourceOfUEActivityBehaviourInformation ::= ENUMERATED { + subscription-information, + statistics, + ... +} + +ExpectedHOInterval ::= ENUMERATED { + sec15, sec30, sec60, sec90, sec120, sec180, long-time, + ... +} + +ExtendedRNC-ID ::= INTEGER (4096..65535) + +ExtendedRepetitionPeriod ::= INTEGER (4096..131071) + +-- F + +ForbiddenInterRATs ::= ENUMERATED { + all, + geran, + utran, + cdma2000, + ..., + geranandutran, + cdma2000andutran + +} + +ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item + +ForbiddenTAs-Item ::= SEQUENCE { + pLMN-Identity PLMNidentity, + forbiddenTACs ForbiddenTACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC + +ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item + +ForbiddenLAs-Item ::= SEQUENCE { + pLMN-Identity PLMNidentity, + forbiddenLACs ForbiddenLACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenLAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC + +-- G + +GBR-QosInformation ::= SEQUENCE { + e-RAB-MaximumBitrateDL BitRate, + e-RAB-MaximumBitrateUL BitRate, + e-RAB-GuaranteedBitrateDL BitRate, + e-RAB-GuaranteedBitrateUL BitRate, + iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL, + ... +} + +GBR-QosInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +GTP-TEID ::= OCTET STRING (SIZE (4)) + +GUMMEI ::= SEQUENCE { + pLMN-Identity PLMNidentity, + mME-Group-ID MME-Group-ID, + mME-Code MME-Code, + iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, + ... +} + +GUMMEI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +GUMMEIType ::= ENUMERATED { + native, + mapped, + ... +} + +GWContextReleaseIndication ::= ENUMERATED { + true, + ... +} + +-- H + +HandoverRestrictionList ::= SEQUENCE { + servingPLMN PLMNidentity, + equivalentPLMNs EPLMNs OPTIONAL, + forbiddenTAs ForbiddenTAs OPTIONAL, + forbiddenLAs ForbiddenLAs OPTIONAL, + forbiddenInterRATs ForbiddenInterRATs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, + ... +} + +HandoverRestrictionList-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +HandoverType ::= ENUMERATED { + intralte, + ltetoutran, + ltetogeran, + utrantolte, + gerantolte, + ... +} + +HFN ::= INTEGER (0..1048575) + +HFNModified ::= INTEGER (0..131071) + + +-- I + +Masked-IMEISV ::= BIT STRING (SIZE (64)) + +ImmediateMDT ::= SEQUENCE { + measurementsToActivate MeasurementsToActivate, + m1reportingTrigger M1ReportingTrigger, + m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL, +-- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1 + m1periodicReporting M1PeriodicReporting OPTIONAL, +-- Included in case of periodic or event-triggered periodic reporting + iE-Extensions ProtocolExtensionContainer { { ImmediateMDT-ExtIEs} } OPTIONAL, + ... +} + +ImmediateMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-M3Configuration CRITICALITY ignore EXTENSION M3Configuration PRESENCE conditional}| + { ID id-M4Configuration CRITICALITY ignore EXTENSION M4Configuration PRESENCE conditional}| + { ID id-M5Configuration CRITICALITY ignore EXTENSION M5Configuration PRESENCE conditional}| + { ID id-MDT-Location-Info CRITICALITY ignore EXTENSION MDT-Location-Info PRESENCE optional}, + ... +} + +IMSI ::= OCTET STRING (SIZE (3..8)) + +IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...)) + +InterfacesToTrace ::= BIT STRING (SIZE (8)) + + + +-- J +-- K + +KillAllWarningMessages ::= ENUMERATED {true} + +-- L + + +LAC ::= OCTET STRING (SIZE (2)) + +LAI ::= SEQUENCE { + pLMNidentity PLMNidentity, + lAC LAC, + iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL, + ... +} + +LAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +LastVisitedCell-Item ::= CHOICE { + e-UTRAN-Cell LastVisitedEUTRANCellInformation, + uTRAN-Cell LastVisitedUTRANCellInformation, + gERAN-Cell LastVisitedGERANCellInformation, + ... +} +LastVisitedEUTRANCellInformation ::= SEQUENCE { + global-Cell-ID EUTRAN-CGI, + cellType CellType, + time-UE-StayedInCell Time-UE-StayedInCell, + iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, + ... +} +LastVisitedEUTRANCellInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Rel-11 to support enhanced granularity for time UE stayed in cell -- + { ID id-Time-UE-StayedInCell-EnhancedGranularity CRITICALITY ignore EXTENSION Time-UE-StayedInCell-EnhancedGranularity PRESENCE optional}| + { ID id-HO-Cause CRITICALITY ignore EXTENSION Cause PRESENCE optional}, + ... +} +LastVisitedUTRANCellInformation ::= OCTET STRING + +LastVisitedGERANCellInformation ::= CHOICE { + undefined NULL, + ... +} + +L3-Information ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +LPPa-PDU ::= OCTET STRING + +LHN-ID ::= OCTET STRING(SIZE (32..256)) + +Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...} + +ListeningSubframePattern ::= SEQUENCE { + pattern-period ENUMERATED {ms1280, ms2560, ms5120, ms10240, ...}, + pattern-offset INTEGER (0..10239, ...), + iE-Extensions ProtocolExtensionContainer { { ListeningSubframePattern-ExtIEs} } OPTIONAL, + ... +} + +ListeningSubframePattern-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +... +} + +LoggedMDT ::= SEQUENCE { + loggingInterval LoggingInterval, + loggingDuration LoggingDuration, + iE-Extensions ProtocolExtensionContainer { {LoggedMDT-ExtIEs} } OPTIONAL, + ... +} + +LoggedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +... +} + +LoggingInterval ::= ENUMERATED {ms128, ms256, ms512, ms1024, ms2048, ms3072, ms4096, ms6144} + +LoggingDuration ::= ENUMERATED {m10, m20, m40, m60, m90, m120} + +LoggedMBSFNMDT ::= SEQUENCE { + loggingInterval LoggingInterval, + loggingDuration LoggingDuration, + mBSFN-ResultToLog MBSFN-ResultToLog OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { LoggedMBSFNMDT-ExtIEs } } OPTIONAL, + ... +} + +LoggedMBSFNMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- M + +M3Configuration ::= SEQUENCE { + m3period M3period, + iE-Extensions ProtocolExtensionContainer { { M3Configuration-ExtIEs} } OPTIONAL, + ... +} + +M3Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M3period ::= ENUMERATED {ms100, ms1000, ms10000, ... } + +M4Configuration ::= SEQUENCE { + m4period M4period, + m4-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M4Configuration-ExtIEs} } OPTIONAL, + ... +} + +M4Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + +M5Configuration ::= SEQUENCE { + m5period M5period, + m5-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M5Configuration-ExtIEs} } OPTIONAL, + ... +} + +M5Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + +MDT-Activation ::= ENUMERATED { + immediate-MDT-only, + immediate-MDT-and-Trace, + logged-MDT-only, + ..., + logged-MBSFN-MDT +} + +MDT-Location-Info ::= BIT STRING (SIZE (8)) + +MDT-Configuration ::= SEQUENCE { + mdt-Activation MDT-Activation, + areaScopeOfMDT AreaScopeOfMDT, + mDTMode MDTMode, + iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTIONAL, + ... +} +MDT-Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-SignallingBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional }, + ... +} + +ManagementBasedMDTAllowed ::= ENUMERATED {allowed, ...} + +MBSFN-ResultToLog ::= SEQUENCE (SIZE(1..maxnoofMBSFNAreaMDT)) OF MBSFN-ResultToLogInfo + +MBSFN-ResultToLogInfo ::= SEQUENCE { + mBSFN-AreaId INTEGER (0..255) OPTIONAL, + carrierFreq EARFCN, + iE-Extensions ProtocolExtensionContainer { { MBSFN-ResultToLogInfo-ExtIEs} } OPTIONAL, + ... +} + +MBSFN-ResultToLogInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMNidentity + +PrivacyIndicator ::= ENUMERATED { + immediate-MDT, + logged-MDT, + ... +} + +MDTMode ::= CHOICE { + immediateMDT ImmediateMDT, + loggedMDT LoggedMDT, + ..., + mDTMode-Extension MDTMode-Extension +} + +MDTMode-Extension ::= ProtocolIE-SingleContainer {{ MDTMode-ExtensionIE }} + +MDTMode-ExtensionIE S1AP-PROTOCOL-IES ::= { + { ID id-LoggedMBSFNMDT CRITICALITY ignore TYPE LoggedMBSFNMDT PRESENCE mandatory} +} + +MeasurementsToActivate ::= BIT STRING (SIZE (8)) + +MeasurementThresholdA2 ::= CHOICE { + threshold-RSRP Threshold-RSRP, + threshold-RSRQ Threshold-RSRQ, + ... +} + +MessageIdentifier ::= BIT STRING (SIZE (16)) + +MobilityInformation ::= BIT STRING (SIZE(32)) + +MMEname ::= PrintableString (SIZE (1..150,...)) + +MMERelaySupportIndicator ::= ENUMERATED {true, ...} + +MME-Group-ID ::= OCTET STRING (SIZE (2)) + +MME-Code ::= OCTET STRING (SIZE (1)) + +MME-UE-S1AP-ID ::= INTEGER (0..4294967295) +M-TMSI ::= OCTET STRING (SIZE (4)) + +MSClassmark2 ::= OCTET STRING +MSClassmark3 ::= OCTET STRING + +MutingAvailabilityIndication ::= ENUMERATED { + available, + unavailable, + ... +} + + +MutingPatternInformation ::= SEQUENCE { + muting-pattern-period ENUMERATED {ms0, ms1280, ms2560, ms5120, ms10240, ...}, + muting-pattern-offset INTEGER (0..10239, ...) OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {MutingPatternInformation-ExtIEs} } OPTIONAL, + ... +} + +MutingPatternInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- N + +NAS-PDU ::= OCTET STRING + +NASSecurityParametersfromE-UTRAN ::= OCTET STRING + +NASSecurityParameterstoE-UTRAN ::= OCTET STRING + +NumberofBroadcastRequest ::= INTEGER (0..65535) + +NumberOfBroadcasts ::= INTEGER (0..65535) + +-- O +OldBSS-ToNewBSS-Information ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +OverloadAction ::= ENUMERATED { + reject-non-emergency-mo-dt, + reject-rrc-cr-signalling, + permit-emergency-sessions-and-mobile-terminated-services-only, + ..., + permit-high-priority-sessions-and-mobile-terminated-services-only, + reject-delay-tolerant-access +} + +OverloadResponse ::= CHOICE { + overloadAction OverloadAction, + ... +} + + +-- P + +PagingDRX ::= ENUMERATED { + v32, + v64, + v128, + v256, + ... + } + +PagingPriority ::= ENUMERATED { + priolevel1, + priolevel2, + priolevel3, + priolevel4, + priolevel5, + priolevel6, + priolevel7, + priolevel8, + ... +} + +PDCP-SN ::= INTEGER (0..4095) + +PDCP-SNExtended ::= INTEGER (0..32767) + +M1PeriodicReporting ::= SEQUENCE { + reportInterval ReportIntervalMDT, + reportAmount ReportAmountMDT, + iE-Extensions ProtocolExtensionContainer { { M1PeriodicReporting-ExtIEs} } OPTIONAL, + ... +} + +M1PeriodicReporting-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +PLMNidentity ::= TBCD-STRING + +Port-Number ::= OCTET STRING (SIZE (2)) + +Pre-emptionCapability ::= ENUMERATED { + shall-not-trigger-pre-emption, + may-trigger-pre-emption +} + +Pre-emptionVulnerability ::= ENUMERATED { + not-pre-emptable, + pre-emptable +} + +PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) + +ProSeAuthorized ::= SEQUENCE { + proSeDirectDiscovery ProSeDirectDiscovery OPTIONAL, + proSeDirectCommunication ProSeDirectCommunication OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ProSeAuthorized-ExtIEs} } OPTIONAL, + ... +} + +ProSeAuthorized-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ProSeDirectDiscovery ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +ProSeDirectCommunication ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +PS-ServiceNotAvailable ::= ENUMERATED { + ps-service-not-available, + ... +} + +-- Q + +QCI ::= INTEGER (0..255) + +-- R + +ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) + +ReceiveStatusOfULPDCPSDUsExtended ::= BIT STRING (SIZE(1..16384)) + +RelativeMMECapacity ::= INTEGER (0..255) + +RelayNode-Indicator ::= ENUMERATED { + true, + ... +} + +RAC ::= OCTET STRING (SIZE (1)) + +ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity} + +ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60} + +M1ReportingTrigger ::= ENUMERATED{ + periodic, + a2eventtriggered, + ..., + a2eventtriggered-periodic +} + +RequestType ::= SEQUENCE { + eventType EventType, + reportArea ReportArea, + iE-Extensions ProtocolExtensionContainer { { RequestType-ExtIEs} } OPTIONAL, + ... +} + + +RequestType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RIMTransfer ::= SEQUENCE { + rIMInformation RIMInformation, + rIMRoutingAddress RIMRoutingAddress OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { RIMTransfer-ExtIEs} } OPTIONAL, + ... +} + +RIMTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RIMInformation ::= OCTET STRING + +RIMRoutingAddress ::= CHOICE { + gERAN-Cell-ID GERAN-Cell-ID, + ..., + targetRNC-ID TargetRNC-ID, + eHRPD-Sector-ID OCTET STRING (SIZE(16)) +} + +ReportArea ::= ENUMERATED { + ecgi, + ... +} + +RepetitionPeriod ::= INTEGER (0..4095) + +RLFReportInformation ::= SEQUENCE { + uE-RLF-Report-Container UE-RLF-Report-Container, + uE-RLF-Report-Container-for-extended-bands UE-RLF-Report-Container-for-extended-bands OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{ RLFReportInformation-ExtIEs}} OPTIONAL, + ... +} + +RLFReportInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RNC-ID ::= INTEGER (0..4095) + +RRC-Container ::= OCTET STRING + +RRC-Establishment-Cause ::= ENUMERATED { + emergency, + highPriorityAccess, + mt-Access, + mo-Signalling, + mo-Data, + ..., + delay-TolerantAccess, + mo-VoiceCall +} + +ECGIListForRestart ::= SEQUENCE (SIZE(1..maxnoofCellsforRestart)) OF EUTRAN-CGI + +Routing-ID ::= INTEGER (0..255) + +-- S + + +SecurityKey ::= BIT STRING (SIZE(256)) + + + +SecurityContext ::= SEQUENCE { + nextHopChainingCount INTEGER (0..7), + nextHopParameter SecurityKey, + iE-Extensions ProtocolExtensionContainer { { SecurityContext-ExtIEs} } OPTIONAL, + ... +} + + +SecurityContext-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +SerialNumber ::= BIT STRING (SIZE (16)) + +SONInformation ::= CHOICE{ + sONInformationRequest SONInformationRequest, + sONInformationReply SONInformationReply, + ... +-- ..., +-- sONInformation-Extension SONInformation-Extension +} + +SONInformation-Extension ::= ProtocolIE-SingleContainer {{ SONInformation-ExtensionIE }} + +SONInformation-ExtensionIE S1AP-PROTOCOL-IES ::= { + { ID id-SON-Information-Report CRITICALITY ignore TYPE SONInformationReport PRESENCE mandatory} +} + +SONInformationRequest ::= ENUMERATED { + x2TNL-Configuration-Info, + ..., + time-Synchronisation-Info, + activate-Muting, + deactivate-Muting} + +SONInformationReply ::= SEQUENCE { + x2TNLConfigurationInfo X2TNLConfigurationInfo OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{SONInformationReply-ExtIEs}} OPTIONAL, + ... +} + +SONInformationReply-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Release 9 to transfer Time synchronisation information -- + {ID id-Time-Synchronisation-Info CRITICALITY ignore EXTENSION TimeSynchronisationInfo PRESENCE optional}, + ..., + {ID id-Muting-Pattern-Information CRITICALITY ignore EXTENSION MutingPatternInformation PRESENCE optional} +} + +SONInformationReport ::= CHOICE{ + rLFReportInformation RLFReportInformation, + ... +} + +SONConfigurationTransfer ::= SEQUENCE { + targeteNB-ID TargeteNB-ID, + sourceeNB-ID SourceeNB-ID, + sONInformation SONInformation, + iE-Extensions ProtocolExtensionContainer { { SONConfigurationTransfer-ExtIEs} } OPTIONAL, +... +} + +SONConfigurationTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Release 10 to transfer the IP addresses of the eNB initiating the ANR action -- + {ID id-x2TNLConfigurationInfo CRITICALITY ignore EXTENSION X2TNLConfigurationInfo PRESENCE conditional + -- This IE shall be present if the SON Information IE contains the SON Information Request IE and the SON Information Request IE is set to “X2TNL Configuration Info” --}| +-- Extension for Release 12 to transfer information concerning the source cell of synchronisation and the aggressor cell -- + {ID id-Synchronisation-Information CRITICALITY ignore EXTENSION SynchronisationInformation PRESENCE conditional + -- This IE shall be present if the SON Information IE contains the SON Information Request IE set to “ Activate Muting ” --}, + ... +} + + +SynchronisationInformation ::= SEQUENCE { + sourceStratumLevel StratumLevel OPTIONAL, + listeningSubframePattern ListeningSubframePattern OPTIONAL, + aggressoreCGI-List ECGI-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {SynchronisationInformation-ExtIEs} } OPTIONAL, + ... +} + +SynchronisationInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +Source-ToTarget-TransparentContainer ::= OCTET STRING +-- This IE includes a transparent container from the source RAN node to the target RAN node. +-- The octets of the OCTET STRING are encoded according to the specifications of the target system. + +SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +SourceeNB-ID ::= SEQUENCE { + global-ENB-ID Global-ENB-ID, + selected-TAI TAI, + iE-Extensions ProtocolExtensionContainer { {SourceeNB-ID-ExtIEs} } OPTIONAL +} + +SourceeNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +SRVCCOperationPossible ::= ENUMERATED { + possible, + ... +} + +SRVCCHOIndication ::= ENUMERATED { + pSandCS, + cSonly, + ... +} + +SourceeNB-ToTargeteNB-TransparentContainer ::= SEQUENCE { + rRC-Container RRC-Container, + e-RABInformationList E-RABInformationList OPTIONAL, + targetCell-ID EUTRAN-CGI, + subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, + uE-HistoryInformation UE-HistoryInformation, + iE-Extensions ProtocolExtensionContainer { {SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + {ID id-MobilityInformation CRITICALITY ignore EXTENSION MobilityInformation PRESENCE optional}| + {ID id-uE-HistoryInformationFromTheUE CRITICALITY ignore EXTENSION UE-HistoryInformationFromTheUE PRESENCE optional}, + ... +} + + +SourceRNC-ToTargetRNC-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + + +ServedGUMMEIs ::= SEQUENCE (SIZE (1.. maxnoofRATs)) OF ServedGUMMEIsItem + +ServedGUMMEIsItem ::= SEQUENCE { + servedPLMNs ServedPLMNs, + servedGroupIDs ServedGroupIDs, + servedMMECs ServedMMECs, + iE-Extensions ProtocolExtensionContainer { {ServedGUMMEIsItem-ExtIEs} } OPTIONAL, + ... +} + +ServedGUMMEIsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedGroupIDs ::= SEQUENCE (SIZE(1.. maxnoofGroupIDs)) OF MME-Group-ID +ServedMMECs ::= SEQUENCE (SIZE(1.. maxnoofMMECs)) OF MME-Code + +ServedPLMNs ::= SEQUENCE (SIZE(1.. maxnoofPLMNsPerMME)) OF PLMNidentity + +SubscriberProfileIDforRFP ::= INTEGER (1..256) + +SupportedTAs ::= SEQUENCE (SIZE(1.. maxnoofTACs)) OF SupportedTAs-Item + +SupportedTAs-Item ::= SEQUENCE { + tAC TAC, + broadcastPLMNs BPLMNs, + iE-Extensions ProtocolExtensionContainer { {SupportedTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +SupportedTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +StratumLevel ::= INTEGER (0..3, ...) + +SynchronisationStatus ::= ENUMERATED { synchronous, asynchronous, ... } + +TimeSynchronisationInfo ::= SEQUENCE { + stratumLevel StratumLevel, + synchronisationStatus SynchronisationStatus, + iE-Extensions ProtocolExtensionContainer { { TimeSynchronisationInfo-ExtIEs} } OPTIONAL, + ... +} + +TimeSynchronisationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + -- Extension for Release 12 to transfer Muting Availability Indication -- + {ID id-Muting-Availability-Indication CRITICALITY ignore EXTENSION MutingAvailabilityIndication PRESENCE optional}, + ... +} + +S-TMSI ::= SEQUENCE { + mMEC MME-Code, + m-TMSI M-TMSI, + iE-Extensions ProtocolExtensionContainer { {S-TMSI-ExtIEs} } OPTIONAL, + ... +} + +S-TMSI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- T + +TAC ::= OCTET STRING (SIZE (2)) + +TAIBasedMDT ::= SEQUENCE { + tAIListforMDT TAIListforMDT, + iE-Extensions ProtocolExtensionContainer { {TAIBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TAIBasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAIListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAI + +TAIListforWarning ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI + +TAI ::= SEQUENCE { + pLMNidentity PLMNidentity, + tAC TAC, + iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL, + ... +} + +TAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAI-Broadcast ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Broadcast-Item + +TAI-Broadcast-Item ::= SEQUENCE { + tAI TAI, + completedCellinTAI CompletedCellinTAI, + iE-Extensions ProtocolExtensionContainer { {TAI-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAI-Cancelled ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Cancelled-Item + +TAI-Cancelled-Item ::= SEQUENCE { + tAI TAI, + cancelledCellinTAI CancelledCellinTAI, + iE-Extensions ProtocolExtensionContainer { {TAI-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TABasedMDT ::= SEQUENCE { + tAListforMDT TAListforMDT, + iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TABasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC + +CompletedCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CompletedCellinTAI-Item + +CompletedCellinTAI-Item ::= SEQUENCE{ + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CompletedCellinTAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CompletedCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TBCD-STRING ::= OCTET STRING (SIZE (3)) + +TargetID ::= CHOICE { + targeteNB-ID TargeteNB-ID, + targetRNC-ID TargetRNC-ID, + cGI CGI, + ... +} + +TargeteNB-ID ::= SEQUENCE { + global-ENB-ID Global-ENB-ID, + selected-TAI TAI, + iE-Extensions ProtocolExtensionContainer { {TargeteNB-ID-ExtIEs} } OPTIONAL, + ... +} + +TargeteNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TargetRNC-ID ::= SEQUENCE { + lAI LAI, + rAC RAC OPTIONAL, + rNC-ID RNC-ID, + extendedRNC-ID ExtendedRNC-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL, + ... + } + + +TargetRNC-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +TargeteNB-ToSourceeNB-TransparentContainer ::= SEQUENCE { + rRC-Container RRC-Container, + iE-Extensions ProtocolExtensionContainer { {TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Target-ToSource-TransparentContainer ::= OCTET STRING +-- This IE includes a transparent container from the target RAN node to the source RAN node. +-- The octets of the OCTET STRING are coded according to the specifications of the target system. + +TargetRNC-ToSourceRNC-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +TargetBSS-ToSourceBSS-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +M1ThresholdEventA2 ::= SEQUENCE { + measurementThreshold MeasurementThresholdA2, + iE-Extensions ProtocolExtensionContainer { { M1ThresholdEventA2-ExtIEs} } OPTIONAL, + ... +} + +M1ThresholdEventA2-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Threshold-RSRP ::= INTEGER(0..97) + +Threshold-RSRQ ::= INTEGER(0..34) + +TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...} + +Time-UE-StayedInCell ::= INTEGER (0..4095) + +Time-UE-StayedInCell-EnhancedGranularity ::= INTEGER (0..40950) + +TransportInformation ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + uL-GTP-TEID GTP-TEID, + ... +} + +TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) + +TraceActivation ::= SEQUENCE { + e-UTRAN-Trace-ID E-UTRAN-Trace-ID, + interfacesToTrace InterfacesToTrace, + traceDepth TraceDepth, + traceCollectionEntityIPAddress TransportLayerAddress, + iE-Extensions ProtocolExtensionContainer { { TraceActivation-ExtIEs} } OPTIONAL, + ... +} + +TraceActivation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Rel-10 to support MDT -- + { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional }, + ... +} + +TraceDepth ::= ENUMERATED { + minimum, + medium, + maximum, + minimumWithoutVendorSpecificExtension, + mediumWithoutVendorSpecificExtension, + maximumWithoutVendorSpecificExtension, + ... +} + +E-UTRAN-Trace-ID ::= OCTET STRING (SIZE (8)) + +TrafficLoadReductionIndication ::= INTEGER (1..99) + +TunnelInformation ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + uDP-Port-Number Port-Number OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {Tunnel-Information-ExtIEs} } OPTIONAL, + ... +} + +Tunnel-Information-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + +TAIListForRestart ::= SEQUENCE (SIZE(1..maxnoofRestartTAIs)) OF TAI + +-- U + +UEAggregateMaximumBitrate ::= SEQUENCE { + uEaggregateMaximumBitRateDL BitRate, + uEaggregateMaximumBitRateUL BitRate, + iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrates-ExtIEs} } OPTIONAL, + ... +} + +UEAggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +UE-S1AP-IDs ::= CHOICE{ + uE-S1AP-ID-pair UE-S1AP-ID-pair, + mME-UE-S1AP-ID MME-UE-S1AP-ID, + ... +} + +UE-S1AP-ID-pair ::= SEQUENCE{ + mME-UE-S1AP-ID MME-UE-S1AP-ID, + eNB-UE-S1AP-ID ENB-UE-S1AP-ID, + iE-Extensions ProtocolExtensionContainer { {UE-S1AP-ID-pair-ExtIEs} } OPTIONAL, + ... +} +UE-S1AP-ID-pair-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +UE-associatedLogicalS1-ConnectionItem ::= SEQUENCE { + mME-UE-S1AP-ID MME-UE-S1AP-ID OPTIONAL, + eNB-UE-S1AP-ID ENB-UE-S1AP-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { UE-associatedLogicalS1-ConnectionItemExtIEs} } OPTIONAL, + ... +} + + +UE-associatedLogicalS1-ConnectionItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UEIdentityIndexValue ::= BIT STRING (SIZE (10)) + +UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item + +UE-HistoryInformationFromTheUE ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the VisitedCellInfoList field contained in the UEInformationResponse message as defined in TS 36.331 [16] + +UEPagingID ::= CHOICE { + s-TMSI S-TMSI, + iMSI IMSI, + ... + } + +UERadioCapability ::= OCTET STRING + +UERadioCapabilityForPaging ::= OCTET STRING + +UE-RLF-Report-Container ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the rlf-Report-r9 field contained in the UEInformationResponse message as defined in TS 36.331 [16] + +UE-RLF-Report-Container-for-extended-bands ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the rlf-Report-v9e0 contained in the UEInformationResponse message as defined in TS 36.331 [16] + +UESecurityCapabilities ::= SEQUENCE { + encryptionAlgorithms EncryptionAlgorithms, + integrityProtectionAlgorithms IntegrityProtectionAlgorithms, + iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL, +... +} + +UESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UserLocationInformation ::= SEQUENCE { + eutran-cgi EUTRAN-CGI, + tai TAI, + iE-Extensions ProtocolExtensionContainer { { UserLocationInformation-ExtIEs} } OPTIONAL, + ... +} + +UserLocationInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- V + +VoiceSupportMatchIndicator ::= ENUMERATED { + supported, + not-supported, + ... +} + +-- W + +WarningAreaList ::= CHOICE { + cellIDList ECGIList, + trackingAreaListforWarning TAIListforWarning, + emergencyAreaIDList EmergencyAreaIDList, + ... +} + + +WarningType ::= OCTET STRING (SIZE (2)) + +WarningSecurityInfo ::= OCTET STRING (SIZE (50)) + + +WarningMessageContents ::= OCTET STRING (SIZE(1..9600)) + + +-- X + + +X2TNLConfigurationInfo ::= SEQUENCE { + eNBX2TransportLayerAddresses ENBX2TLAs, + iE-Extensions ProtocolExtensionContainer { { X2TNLConfigurationInfo-ExtIEs} } OPTIONAL, + ... +} + +X2TNLConfigurationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Release 10 to transfer the IPsec and U-plane addresses during ANR action -- + {ID id-eNBX2ExtendedTransportLayerAddresses CRITICALITY ignore EXTENSION ENBX2ExtTLAs PRESENCE optional}| +-- Extension for Release 12 to transfer the IP addresses of the X2 GW -- + {ID id-eNBIndirectX2TransportLayerAddresses CRITICALITY ignore EXTENSION ENBIndirectX2TransportLayerAddresses PRESENCE optional}, + ... +} + +ENBX2ExtTLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2ExtTLAs)) OF ENBX2ExtTLA + +ENBX2ExtTLA ::= SEQUENCE { + iPsecTLA TransportLayerAddress OPTIONAL, + gTPTLAa ENBX2GTPTLAs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ENBX2ExtTLA-ExtIEs} } OPTIONAL, + ... +} + +ENBX2ExtTLA-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENBX2GTPTLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2GTPTLAs)) OF TransportLayerAddress + +ENBIndirectX2TransportLayerAddresses ::= SEQUENCE (SIZE(1..maxnoofeNBX2TLAs)) OF TransportLayerAddress + +-- Y +-- Z + +END + + + +-- ************************************************************** +-- +-- Common definitions +-- +-- ************************************************************** + +S1AP-CommonDataTypes { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-CommonDataTypes (3) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +Criticality ::= ENUMERATED { reject, ignore, notify } + +Presence ::= ENUMERATED { optional, conditional, mandatory } + +PrivateIE-ID ::= CHOICE { + local INTEGER (0..65535), + global OBJECT IDENTIFIER +} + +ProcedureCode ::= INTEGER (0..255) + +ProtocolExtensionID ::= INTEGER (0..65535) + +ProtocolIE-ID ::= INTEGER (0..65535) + +TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome } + +END + + +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +S1AP-Constants { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Constants (4) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + ProcedureCode, + ProtocolIE-ID + +FROM S1AP-CommonDataTypes; + + +-- ************************************************************** +-- +-- Elementary Procedures +-- +-- ************************************************************** + +id-HandoverPreparation ProcedureCode ::= 0 +id-HandoverResourceAllocation ProcedureCode ::= 1 +id-HandoverNotification ProcedureCode ::= 2 +id-PathSwitchRequest ProcedureCode ::= 3 +id-HandoverCancel ProcedureCode ::= 4 +id-E-RABSetup ProcedureCode ::= 5 +id-E-RABModify ProcedureCode ::= 6 +id-E-RABRelease ProcedureCode ::= 7 +id-E-RABReleaseIndication ProcedureCode ::= 8 +id-InitialContextSetup ProcedureCode ::= 9 +id-Paging ProcedureCode ::= 10 +id-downlinkNASTransport ProcedureCode ::= 11 +id-initialUEMessage ProcedureCode ::= 12 +id-uplinkNASTransport ProcedureCode ::= 13 +id-Reset ProcedureCode ::= 14 +id-ErrorIndication ProcedureCode ::= 15 +id-NASNonDeliveryIndication ProcedureCode ::= 16 +id-S1Setup ProcedureCode ::= 17 +id-UEContextReleaseRequest ProcedureCode ::= 18 +id-DownlinkS1cdma2000tunnelling ProcedureCode ::= 19 +id-UplinkS1cdma2000tunnelling ProcedureCode ::= 20 +id-UEContextModification ProcedureCode ::= 21 +id-UECapabilityInfoIndication ProcedureCode ::= 22 +id-UEContextRelease ProcedureCode ::= 23 +id-eNBStatusTransfer ProcedureCode ::= 24 +id-MMEStatusTransfer ProcedureCode ::= 25 +id-DeactivateTrace ProcedureCode ::= 26 +id-TraceStart ProcedureCode ::= 27 +id-TraceFailureIndication ProcedureCode ::= 28 +id-ENBConfigurationUpdate ProcedureCode ::= 29 +id-MMEConfigurationUpdate ProcedureCode ::= 30 +id-LocationReportingControl ProcedureCode ::= 31 +id-LocationReportingFailureIndication ProcedureCode ::= 32 +id-LocationReport ProcedureCode ::= 33 +id-OverloadStart ProcedureCode ::= 34 +id-OverloadStop ProcedureCode ::= 35 +id-WriteReplaceWarning ProcedureCode ::= 36 +id-eNBDirectInformationTransfer ProcedureCode ::= 37 +id-MMEDirectInformationTransfer ProcedureCode ::= 38 +id-PrivateMessage ProcedureCode ::= 39 +id-eNBConfigurationTransfer ProcedureCode ::= 40 +id-MMEConfigurationTransfer ProcedureCode ::= 41 +id-CellTrafficTrace ProcedureCode ::= 42 +id-Kill ProcedureCode ::= 43 +id-downlinkUEAssociatedLPPaTransport ProcedureCode ::= 44 +id-uplinkUEAssociatedLPPaTransport ProcedureCode ::= 45 +id-downlinkNonUEAssociatedLPPaTransport ProcedureCode ::= 46 +id-uplinkNonUEAssociatedLPPaTransport ProcedureCode ::= 47 +id-UERadioCapabilityMatch ProcedureCode ::= 48 +id-PWSRestartIndication ProcedureCode ::= 49 +id-E-RABModificationIndication ProcedureCode ::= 50 + +-- ************************************************************** +-- +-- Extension constants +-- +-- ************************************************************** + +maxPrivateIEs INTEGER ::= 65535 +maxProtocolExtensions INTEGER ::= 65535 +maxProtocolIEs INTEGER ::= 65535 +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** + +maxnoofCSGs INTEGER ::= 256 +maxnoofE-RABs INTEGER ::= 256 +maxnoofTAIs INTEGER ::= 256 +maxnoofTACs INTEGER ::= 256 +maxnoofErrors INTEGER ::= 256 +maxnoofBPLMNs INTEGER ::= 6 +maxnoofPLMNsPerMME INTEGER ::= 32 +maxnoofEPLMNs INTEGER ::= 15 +maxnoofEPLMNsPlusOne INTEGER ::= 16 +maxnoofForbLACs INTEGER ::= 4096 +maxnoofForbTACs INTEGER ::= 4096 +maxnoofIndividualS1ConnectionsToReset INTEGER ::= 256 +maxnoofCells INTEGER ::= 16 +maxnoofCellsineNB INTEGER ::= 256 +maxnoofTAIforWarning INTEGER ::= 65535 +maxnoofCellID INTEGER ::= 65535 +maxnoofEmergencyAreaID INTEGER ::= 65535 +maxnoofCellinTAI INTEGER ::= 65535 +maxnoofCellinEAI INTEGER ::= 65535 +maxnoofeNBX2TLAs INTEGER ::= 2 +maxnoofeNBX2ExtTLAs INTEGER ::= 16 +maxnoofeNBX2GTPTLAs INTEGER ::= 16 +maxnoofRATs INTEGER ::= 8 +maxnoofGroupIDs INTEGER ::= 65535 +maxnoofMMECs INTEGER ::= 256 +maxnoofCellIDforMDT INTEGER ::= 32 +maxnoofTAforMDT INTEGER ::= 8 +maxnoofMDTPLMNs INTEGER ::= 16 +maxnoofCellsforRestart INTEGER ::= 256 +maxnoofRestartTAIs INTEGER ::= 2048 +maxnoofRestartEmergencyAreaIDs INTEGER ::= 256 +maxEARFCN INTEGER ::= 262143 +maxnoofMBSFNAreaMDT INTEGER ::= 8 + +-- ************************************************************** +-- +-- IEs +-- +-- ************************************************************** + +id-MME-UE-S1AP-ID ProtocolIE-ID ::= 0 +id-HandoverType ProtocolIE-ID ::= 1 +id-Cause ProtocolIE-ID ::= 2 +id-SourceID ProtocolIE-ID ::= 3 +id-TargetID ProtocolIE-ID ::= 4 +id-eNB-UE-S1AP-ID ProtocolIE-ID ::= 8 +id-E-RABSubjecttoDataForwardingList ProtocolIE-ID ::= 12 +id-E-RABtoReleaseListHOCmd ProtocolIE-ID ::= 13 +id-E-RABDataForwardingItem ProtocolIE-ID ::= 14 +id-E-RABReleaseItemBearerRelComp ProtocolIE-ID ::= 15 +id-E-RABToBeSetupListBearerSUReq ProtocolIE-ID ::= 16 +id-E-RABToBeSetupItemBearerSUReq ProtocolIE-ID ::= 17 +id-E-RABAdmittedList ProtocolIE-ID ::= 18 +id-E-RABFailedToSetupListHOReqAck ProtocolIE-ID ::= 19 +id-E-RABAdmittedItem ProtocolIE-ID ::= 20 +id-E-RABFailedtoSetupItemHOReqAck ProtocolIE-ID ::= 21 +id-E-RABToBeSwitchedDLList ProtocolIE-ID ::= 22 +id-E-RABToBeSwitchedDLItem ProtocolIE-ID ::= 23 +id-E-RABToBeSetupListCtxtSUReq ProtocolIE-ID ::= 24 +id-TraceActivation ProtocolIE-ID ::= 25 +id-NAS-PDU ProtocolIE-ID ::= 26 +id-E-RABToBeSetupItemHOReq ProtocolIE-ID ::= 27 +id-E-RABSetupListBearerSURes ProtocolIE-ID ::= 28 +id-E-RABFailedToSetupListBearerSURes ProtocolIE-ID ::= 29 +id-E-RABToBeModifiedListBearerModReq ProtocolIE-ID ::= 30 +id-E-RABModifyListBearerModRes ProtocolIE-ID ::= 31 +id-E-RABFailedToModifyList ProtocolIE-ID ::= 32 +id-E-RABToBeReleasedList ProtocolIE-ID ::= 33 +id-E-RABFailedToReleaseList ProtocolIE-ID ::= 34 +id-E-RABItem ProtocolIE-ID ::= 35 +id-E-RABToBeModifiedItemBearerModReq ProtocolIE-ID ::= 36 +id-E-RABModifyItemBearerModRes ProtocolIE-ID ::= 37 +id-E-RABReleaseItem ProtocolIE-ID ::= 38 +id-E-RABSetupItemBearerSURes ProtocolIE-ID ::= 39 +id-SecurityContext ProtocolIE-ID ::= 40 +id-HandoverRestrictionList ProtocolIE-ID ::= 41 +id-UEPagingID ProtocolIE-ID ::= 43 +id-pagingDRX ProtocolIE-ID ::= 44 +id-TAIList ProtocolIE-ID ::= 46 +id-TAIItem ProtocolIE-ID ::= 47 +id-E-RABFailedToSetupListCtxtSURes ProtocolIE-ID ::= 48 +id-E-RABReleaseItemHOCmd ProtocolIE-ID ::= 49 +id-E-RABSetupItemCtxtSURes ProtocolIE-ID ::= 50 +id-E-RABSetupListCtxtSURes ProtocolIE-ID ::= 51 +id-E-RABToBeSetupItemCtxtSUReq ProtocolIE-ID ::= 52 +id-E-RABToBeSetupListHOReq ProtocolIE-ID ::= 53 +id-GERANtoLTEHOInformationRes ProtocolIE-ID ::= 55 +id-UTRANtoLTEHOInformationRes ProtocolIE-ID ::= 57 +id-CriticalityDiagnostics ProtocolIE-ID ::= 58 +id-Global-ENB-ID ProtocolIE-ID ::= 59 +id-eNBname ProtocolIE-ID ::= 60 +id-MMEname ProtocolIE-ID ::= 61 +id-ServedPLMNs ProtocolIE-ID ::= 63 +id-SupportedTAs ProtocolIE-ID ::= 64 +id-TimeToWait ProtocolIE-ID ::= 65 +id-uEaggregateMaximumBitrate ProtocolIE-ID ::= 66 +id-TAI ProtocolIE-ID ::= 67 +id-E-RABReleaseListBearerRelComp ProtocolIE-ID ::= 69 +id-cdma2000PDU ProtocolIE-ID ::= 70 +id-cdma2000RATType ProtocolIE-ID ::= 71 +id-cdma2000SectorID ProtocolIE-ID ::= 72 +id-SecurityKey ProtocolIE-ID ::= 73 +id-UERadioCapability ProtocolIE-ID ::= 74 +id-GUMMEI-ID ProtocolIE-ID ::= 75 +id-E-RABInformationListItem ProtocolIE-ID ::= 78 +id-Direct-Forwarding-Path-Availability ProtocolIE-ID ::= 79 +id-UEIdentityIndexValue ProtocolIE-ID ::= 80 +id-cdma2000HOStatus ProtocolIE-ID ::= 83 +id-cdma2000HORequiredIndication ProtocolIE-ID ::= 84 +id-E-UTRAN-Trace-ID ProtocolIE-ID ::= 86 +id-RelativeMMECapacity ProtocolIE-ID ::= 87 +id-SourceMME-UE-S1AP-ID ProtocolIE-ID ::= 88 +id-Bearers-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 89 +id-eNB-StatusTransfer-TransparentContainer ProtocolIE-ID ::= 90 +id-UE-associatedLogicalS1-ConnectionItem ProtocolIE-ID ::= 91 +id-ResetType ProtocolIE-ID ::= 92 +id-UE-associatedLogicalS1-ConnectionListResAck ProtocolIE-ID ::= 93 +id-E-RABToBeSwitchedULItem ProtocolIE-ID ::= 94 +id-E-RABToBeSwitchedULList ProtocolIE-ID ::= 95 +id-S-TMSI ProtocolIE-ID ::= 96 +id-cdma2000OneXRAND ProtocolIE-ID ::= 97 +id-RequestType ProtocolIE-ID ::= 98 +id-UE-S1AP-IDs ProtocolIE-ID ::= 99 +id-EUTRAN-CGI ProtocolIE-ID ::= 100 +id-OverloadResponse ProtocolIE-ID ::= 101 +id-cdma2000OneXSRVCCInfo ProtocolIE-ID ::= 102 +id-E-RABFailedToBeReleasedList ProtocolIE-ID ::= 103 +id-Source-ToTarget-TransparentContainer ProtocolIE-ID ::= 104 +id-ServedGUMMEIs ProtocolIE-ID ::= 105 +id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 106 +id-UESecurityCapabilities ProtocolIE-ID ::= 107 +id-CSFallbackIndicator ProtocolIE-ID ::= 108 +id-CNDomain ProtocolIE-ID ::= 109 +id-E-RABReleasedList ProtocolIE-ID ::= 110 +id-MessageIdentifier ProtocolIE-ID ::= 111 +id-SerialNumber ProtocolIE-ID ::= 112 +id-WarningAreaList ProtocolIE-ID ::= 113 +id-RepetitionPeriod ProtocolIE-ID ::= 114 +id-NumberofBroadcastRequest ProtocolIE-ID ::= 115 +id-WarningType ProtocolIE-ID ::= 116 +id-WarningSecurityInfo ProtocolIE-ID ::= 117 +id-DataCodingScheme ProtocolIE-ID ::= 118 +id-WarningMessageContents ProtocolIE-ID ::= 119 +id-BroadcastCompletedAreaList ProtocolIE-ID ::= 120 +id-Inter-SystemInformationTransferTypeEDT ProtocolIE-ID ::= 121 +id-Inter-SystemInformationTransferTypeMDT ProtocolIE-ID ::= 122 +id-Target-ToSource-TransparentContainer ProtocolIE-ID ::= 123 +id-SRVCCOperationPossible ProtocolIE-ID ::= 124 +id-SRVCCHOIndication ProtocolIE-ID ::= 125 +id-NAS-DownlinkCount ProtocolIE-ID ::= 126 +id-CSG-Id ProtocolIE-ID ::= 127 +id-CSG-IdList ProtocolIE-ID ::= 128 +id-SONConfigurationTransferECT ProtocolIE-ID ::= 129 +id-SONConfigurationTransferMCT ProtocolIE-ID ::= 130 +id-TraceCollectionEntityIPAddress ProtocolIE-ID ::= 131 +id-MSClassmark2 ProtocolIE-ID ::= 132 +id-MSClassmark3 ProtocolIE-ID ::= 133 +id-RRC-Establishment-Cause ProtocolIE-ID ::= 134 +id-NASSecurityParametersfromE-UTRAN ProtocolIE-ID ::= 135 +id-NASSecurityParameterstoE-UTRAN ProtocolIE-ID ::= 136 +id-DefaultPagingDRX ProtocolIE-ID ::= 137 +id-Source-ToTarget-TransparentContainer-Secondary ProtocolIE-ID ::= 138 +id-Target-ToSource-TransparentContainer-Secondary ProtocolIE-ID ::= 139 +id-EUTRANRoundTripDelayEstimationInfo ProtocolIE-ID ::= 140 +id-BroadcastCancelledAreaList ProtocolIE-ID ::= 141 +id-ConcurrentWarningMessageIndicator ProtocolIE-ID ::= 142 +id-Data-Forwarding-Not-Possible ProtocolIE-ID ::= 143 +id-ExtendedRepetitionPeriod ProtocolIE-ID ::= 144 +id-CellAccessMode ProtocolIE-ID ::= 145 +id-CSGMembershipStatus ProtocolIE-ID ::= 146 +id-LPPa-PDU ProtocolIE-ID ::= 147 +id-Routing-ID ProtocolIE-ID ::= 148 +id-Time-Synchronisation-Info ProtocolIE-ID ::= 149 +id-PS-ServiceNotAvailable ProtocolIE-ID ::= 150 +id-PagingPriority ProtocolIE-ID ::= 151 +id-x2TNLConfigurationInfo ProtocolIE-ID ::= 152 +id-eNBX2ExtendedTransportLayerAddresses ProtocolIE-ID ::= 153 +id-GUMMEIList ProtocolIE-ID ::= 154 +id-GW-TransportLayerAddress ProtocolIE-ID ::= 155 +id-Correlation-ID ProtocolIE-ID ::= 156 +id-SourceMME-GUMMEI ProtocolIE-ID ::= 157 +id-MME-UE-S1AP-ID-2 ProtocolIE-ID ::= 158 +id-RegisteredLAI ProtocolIE-ID ::= 159 +id-RelayNode-Indicator ProtocolIE-ID ::= 160 +id-TrafficLoadReductionIndication ProtocolIE-ID ::= 161 +id-MDTConfiguration ProtocolIE-ID ::= 162 +id-MMERelaySupportIndicator ProtocolIE-ID ::= 163 +id-GWContextReleaseIndication ProtocolIE-ID ::= 164 +id-ManagementBasedMDTAllowed ProtocolIE-ID ::= 165 +id-PrivacyIndicator ProtocolIE-ID ::= 166 +id-Time-UE-StayedInCell-EnhancedGranularity ProtocolIE-ID ::= 167 +id-HO-Cause ProtocolIE-ID ::= 168 +id-VoiceSupportMatchIndicator ProtocolIE-ID ::= 169 +id-GUMMEIType ProtocolIE-ID ::= 170 +id-M3Configuration ProtocolIE-ID ::= 171 +id-M4Configuration ProtocolIE-ID ::= 172 +id-M5Configuration ProtocolIE-ID ::= 173 +id-MDT-Location-Info ProtocolIE-ID ::= 174 +id-MobilityInformation ProtocolIE-ID ::= 175 +id-Tunnel-Information-for-BBF ProtocolIE-ID ::= 176 +id-ManagementBasedMDTPLMNList ProtocolIE-ID ::= 177 +id-SignallingBasedMDTPLMNList ProtocolIE-ID ::= 178 +id-ULCOUNTValueExtended ProtocolIE-ID ::= 179 +id-DLCOUNTValueExtended ProtocolIE-ID ::= 180 +id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID ::= 181 +id-ECGIListForRestart ProtocolIE-ID ::= 182 +id-SIPTO-Correlation-ID ProtocolIE-ID ::= 183 +id-SIPTO-L-GW-TransportLayerAddress ProtocolIE-ID ::= 184 +id-TransportInformation ProtocolIE-ID ::= 185 +id-LHN-ID ProtocolIE-ID ::= 186 +id-AdditionalCSFallbackIndicator ProtocolIE-ID ::= 187 +id-TAIListForRestart ProtocolIE-ID ::= 188 +id-UserLocationInformation ProtocolIE-ID ::= 189 +id-EmergencyAreaIDListForRestart ProtocolIE-ID ::= 190 +id-KillAllWarningMessages ProtocolIE-ID ::= 191 +id-Masked-IMEISV ProtocolIE-ID ::= 192 +id-eNBIndirectX2TransportLayerAddresses ProtocolIE-ID ::= 193 +id-uE-HistoryInformationFromTheUE ProtocolIE-ID ::= 194 +id-ProSeAuthorized ProtocolIE-ID ::= 195 +id-ExpectedUEBehaviour ProtocolIE-ID ::= 196 +id-LoggedMBSFNMDT ProtocolIE-ID ::= 197 +id-UERadioCapabilityForPaging ProtocolIE-ID ::= 198 +id-E-RABToBeModifiedListBearerModInd ProtocolIE-ID ::= 199 +id-E-RABToBeModifiedItemBearerModInd ProtocolIE-ID ::= 200 +id-E-RABNotToBeModifiedListBearerModInd ProtocolIE-ID ::= 201 +id-E-RABNotToBeModifiedItemBearerModInd ProtocolIE-ID ::= 202 +id-E-RABModifyListBearerModConf ProtocolIE-ID ::= 203 +id-E-RABModifyItemBearerModConf ProtocolIE-ID ::= 204 +id-E-RABFailedToModifyListBearerModConf ProtocolIE-ID ::= 205 +id-SON-Information-Report ProtocolIE-ID ::= 206 +id-Muting-Availability-Indication ProtocolIE-ID ::= 207 +id-Muting-Pattern-Information ProtocolIE-ID ::= 208 +id-Synchronisation-Information ProtocolIE-ID ::= 209 +id-E-RABToBeReleasedListBearerModConf ProtocolIE-ID ::= 210 + +END + + +-- ************************************************************** +-- +-- Container definitions +-- +-- ************************************************************** + +S1AP-Containers { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Containers (5) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + Presence, + PrivateIE-ID, + ProtocolExtensionID, + ProtocolIE-ID +FROM S1AP-CommonDataTypes + + maxPrivateIEs, + maxProtocolExtensions, + maxProtocolIEs +FROM S1AP-Constants; + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +S1AP-PROTOCOL-IES ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +S1AP-PROTOCOL-IES-PAIR ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &firstCriticality Criticality, + &FirstValue, + &secondCriticality Criticality, + &SecondValue, + &presence Presence +} +WITH SYNTAX { + ID &id + FIRST CRITICALITY &firstCriticality + FIRST TYPE &FirstValue + SECOND CRITICALITY &secondCriticality + SECOND TYPE &SecondValue + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol Extensions +-- +-- ************************************************************** + +S1AP-PROTOCOL-EXTENSION ::= CLASS { + &id ProtocolExtensionID UNIQUE, + &criticality Criticality, + &Extension, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + EXTENSION &Extension + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Private IEs +-- +-- ************************************************************** + +S1AP-PRIVATE-IES ::= CLASS { + &id PrivateIE-ID, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Container for Protocol IEs +-- +-- ************************************************************** + +ProtocolIE-Container {S1AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-SingleContainer {S1AP-PROTOCOL-IES : IEsSetParam} ::= + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Field {S1AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-IES.&id ({IEsSetParam}), + criticality S1AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), + value S1AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Protocol IE Pairs +-- +-- ************************************************************** + +ProtocolIE-ContainerPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-FieldPair {{IEsSetParam}} + +ProtocolIE-FieldPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), + firstCriticality S1AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), + firstValue S1AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), + secondCriticality S1AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), + secondValue S1AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container Lists for Protocol IE Containers +-- +-- ************************************************************** + +ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-SingleContainer {{IEsSetParam}} + +ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-ContainerPair {{IEsSetParam}} + +-- ************************************************************** +-- +-- Container for Protocol Extensions +-- +-- ************************************************************** + +ProtocolExtensionContainer {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= + SEQUENCE (SIZE (1..maxProtocolExtensions)) OF + ProtocolExtensionField {{ExtensionSetParam}} + +ProtocolExtensionField {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), + criticality S1AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), + extensionValue S1AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Private IEs +-- +-- ************************************************************** + +PrivateIE-Container {S1AP-PRIVATE-IES : IEsSetParam } ::= + SEQUENCE (SIZE (1.. maxPrivateIEs)) OF + PrivateIE-Field {{IEsSetParam}} + +PrivateIE-Field {S1AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { + id S1AP-PRIVATE-IES.&id ({IEsSetParam}), + criticality S1AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), + value S1AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) +} + +END + +-- ************************************************************** +-- +-- IE definitions for the SON Transfer application +-- The IEs in this ASN.1 module shall be defined and encoded +-- using the same rules as applicable for the S1AP-IEs module. +-- +-- ************************************************************** +SonTransfer-IEs + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- +-- Generic IEs for the SON Transfer application +-- + +SONtransferApplicationIdentity ::= ENUMERATED { + cell-load-reporting, + ..., + multi-cell-load-reporting, + event-triggered-cell-load-reporting, + ho-reporting, + eutran-cell-activation, + energy-savings-indication, + failure-event-reporting +} + +SONtransferRequestContainer ::= CHOICE{ + cellLoadReporting NULL, + ..., + multiCellLoadReporting MultiCellLoadReportingRequest, + eventTriggeredCellLoadReporting EventTriggeredCellLoadReportingRequest, + hOReporting HOReport, + eutranCellActivation CellActivationRequest, + energySavingsIndication CellStateIndication, + failureEventReporting FailureEventReport +} + +SONtransferResponseContainer ::= CHOICE{ + cellLoadReporting CellLoadReportingResponse, + ..., + multiCellLoadReporting MultiCellLoadReportingResponse, + eventTriggeredCellLoadReporting EventTriggeredCellLoadReportingResponse, + hOReporting NULL, + eutranCellActivation CellActivationResponse, + energySavingsIndication NULL, + failureEventReporting NULL +} + +SONtransferCause ::= CHOICE { + cellLoadReporting CellLoadReportingCause, + ..., + multiCellLoadReporting CellLoadReportingCause, + eventTriggeredCellLoadReporting CellLoadReportingCause, + hOReporting HOReportingCause, + eutranCellActivation CellActivationCause, + energySavingsIndication CellStateIndicationCause, + failureEventReporting FailureEventReportingCause +} + + +CellLoadReportingCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +HOReportingCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +CellActivationCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +CellStateIndicationCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +FailureEventReportingCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +-- +-- IEs for Cell Load Reporting application +-- + +CellLoadReportingResponse::= CHOICE{ + eUTRAN EUTRANcellLoadReportingResponse, + uTRAN OCTET STRING, + gERAN OCTET STRING, + ..., + eHRPD EHRPDSectorLoadReportingResponse +} + +CompositeAvailableCapacityGroup ::= OCTET STRING + +EUTRANcellLoadReportingResponse ::= SEQUENCE { + compositeAvailableCapacityGroup CompositeAvailableCapacityGroup, + ... +} + +-- +-- IEs for Multi-Cell Load Reporting application +-- + +EUTRANResponse::= SEQUENCE { + cell-ID OCTET STRING, + eUTRANcellLoadReportingResponse EUTRANcellLoadReportingResponse, + ... +} + +EHRPD-Sector-ID ::= OCTET STRING (SIZE (16)) + +IRAT-Cell-ID ::= CHOICE{ + eUTRAN OCTET STRING, + uTRAN OCTET STRING, + gERAN OCTET STRING, + ..., + eHRPD EHRPD-Sector-ID +} + +RequestedCellList ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF IRAT-Cell-ID + +MultiCellLoadReportingRequest::= SEQUENCE { + requestedCellList RequestedCellList, + ... +} + +ReportingCellList-Item ::= SEQUENCE { + cell-ID IRAT-Cell-ID, + ... +} + +ReportingCellList ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF ReportingCellList-Item + +MultiCellLoadReportingResponse ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF MultiCellLoadReportingResponse-Item + +MultiCellLoadReportingResponse-Item ::= CHOICE{ + eUTRANResponse EUTRANResponse, + uTRANResponse OCTET STRING, + gERANResponse OCTET STRING, + ..., + eHRPD EHRPDMultiSectorLoadReportingResponseItem +} + + +-- +-- IEs for Event-triggered Cell Load Reporting application +-- + +NumberOfMeasurementReportingLevels ::= ENUMERATED { + rl2, + rl3, + rl4, + rl5, + rl10, + ... +} + +EventTriggeredCellLoadReportingRequest ::= SEQUENCE { + numberOfMeasurementReportingLevels NumberOfMeasurementReportingLevels, + ... +} + +OverloadFlag ::= ENUMERATED { + overload, + ... +} + +EventTriggeredCellLoadReportingResponse ::= SEQUENCE { + cellLoadReportingResponse CellLoadReportingResponse, + overloadFlag OverloadFlag OPTIONAL, + ... +} + +-- +-- IEs for HO Reporting application +-- + + + +HOReport::= SEQUENCE { + hoType HoType, + hoReportType HoReportType, + hosourceID IRAT-Cell-ID, + hoTargetID IRAT-Cell-ID, + candidateCellList CandidateCellList, + ..., + candidatePCIList CandidatePCIList OPTIONAL +} + +HoType ::= ENUMERATED { + ltetoutran, + ltetogeran, + ... +} + +HoReportType ::= ENUMERATED { + unnecessaryhotoanotherrat, + ..., + earlyirathandover +} + +CandidateCellList ::= SEQUENCE (SIZE(1..maxnoofcandidateCells)) OF IRAT-Cell-ID + +CandidatePCIList ::= SEQUENCE (SIZE(1..maxnoofcandidateCells)) OF CandidatePCI + +CandidatePCI ::= SEQUENCE { + pCI INTEGER (0..503), + eARFCN OCTET STRING, + ... +} + +-- +-- IEs for E-UTRAN Cell Activation application +-- + +CellActivationRequest ::= SEQUENCE { + cellsToActivateList CellsToActivateList, + minimumActivationTime INTEGER (1..60) OPTIONAL, +... +} + +CellsToActivateList ::= SEQUENCE (SIZE(1.. maxnoofCellineNB)) OF CellsToActivateList-Item + +CellsToActivateList-Item ::= SEQUENCE { + cell-ID OCTET STRING, + ... +} + +CellActivationResponse ::= SEQUENCE { + activatedCellsList ActivatedCellsList, + ... +} + +ActivatedCellsList ::= SEQUENCE (SIZE(0.. maxnoofCellineNB)) OF ActivatedCellsList-Item + +ActivatedCellsList-Item ::= SEQUENCE { + cell-ID OCTET STRING, + ... +} + +-- +-- IEs for Energy Savings Indication application +-- + +CellStateIndication ::= SEQUENCE { + notificationCellList NotificationCellList, + ... +} + +NotificationCellList ::= SEQUENCE (SIZE(1.. maxnoofCellineNB)) OF NotificationCellList-Item + +NotificationCellList-Item ::= SEQUENCE { + cell-ID OCTET STRING, + notifyFlag NotifyFlag, + ... +} + +NotifyFlag ::= ENUMERATED { + activated, + deactivated, + ... +} + +FailureEventReport::= CHOICE { + tooEarlyInterRATHOReportFromEUTRAN TooEarlyInterRATHOReportReportFromEUTRAN, + ... +} + +TooEarlyInterRATHOReportReportFromEUTRAN ::= SEQUENCE { + uERLFReportContainer OCTET STRING, -- as defined in TS 36.331 [16] -- + mobilityInformation MobilityInformation OPTIONAL, + ... +} + +MobilityInformation ::= BIT STRING (SIZE(32)) + + +-- +-- IEs for reporting of eHRPD load +-- + +EHRPDCapacityValue ::= INTEGER (0..100) + +EHRPDSectorCapacityClassValue ::= INTEGER (1..100, ...) + +EHRPDSectorLoadReportingResponse ::= SEQUENCE { + dL-EHRPD-CompositeAvailableCapacity EHRPDCompositeAvailableCapacity, + uL-EHRPD-CompositeAvailableCapacity EHRPDCompositeAvailableCapacity, + ... +} + +EHRPDCompositeAvailableCapacity ::= SEQUENCE { + eHRPDSectorCapacityClassValue EHRPDSectorCapacityClassValue, + eHRPDCapacityValue EHRPDCapacityValue, + ... +} + +EHRPDMultiSectorLoadReportingResponseItem ::= SEQUENCE { + eHRPD-Sector-ID EHRPD-Sector-ID, + eHRPDSectorLoadReportingResponse EHRPDSectorLoadReportingResponse, + ... +} + + +-- ************************************************************** +-- +-- Constants +-- +-- ************************************************************** + +maxnoofIRATReportingCells INTEGER ::= 128 +maxnoofcandidateCells INTEGER ::= 16 +maxnoofCellineNB INTEGER ::= 256 + +END + diff --git a/openair3/S1AP/MESSAGES/ASN1/R13/s1ap-13.6.0.asn1 b/openair3/S1AP/MESSAGES/ASN1/R13/s1ap-13.6.0.asn1 new file mode 100755 index 0000000000..453b2ae9b4 --- /dev/null +++ b/openair3/S1AP/MESSAGES/ASN1/R13/s1ap-13.6.0.asn1 @@ -0,0 +1,6679 @@ +-- ************************************************************** +-- +-- Elementary Procedure definitions +-- +-- ************************************************************** + +S1AP-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Descriptions (0)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + ProcedureCode +FROM S1AP-CommonDataTypes + + CellTrafficTrace, + DeactivateTrace, + DownlinkUEAssociatedLPPaTransport, + DownlinkNASTransport, + DownlinkNonUEAssociatedLPPaTransport, + DownlinkS1cdma2000tunnelling, + ENBDirectInformationTransfer, + ENBStatusTransfer, + ENBConfigurationUpdate, + ENBConfigurationUpdateAcknowledge, + ENBConfigurationUpdateFailure, + ErrorIndication, + HandoverCancel, + HandoverCancelAcknowledge, + HandoverCommand, + HandoverFailure, + HandoverNotify, + HandoverPreparationFailure, + HandoverRequest, + HandoverRequestAcknowledge, + HandoverRequired, + InitialContextSetupFailure, + InitialContextSetupRequest, + InitialContextSetupResponse, + InitialUEMessage, + KillRequest, + KillResponse, + LocationReportingControl, + LocationReportingFailureIndication, + LocationReport, + MMEConfigurationUpdate, + MMEConfigurationUpdateAcknowledge, + MMEConfigurationUpdateFailure, + MMEDirectInformationTransfer, + MMEStatusTransfer, + NASNonDeliveryIndication, + OverloadStart, + OverloadStop, + Paging, + PathSwitchRequest, + PathSwitchRequestAcknowledge, + PathSwitchRequestFailure, + PrivateMessage, + Reset, + ResetAcknowledge, + S1SetupFailure, + S1SetupRequest, + S1SetupResponse, + E-RABModifyRequest, + E-RABModifyResponse, + E-RABModificationIndication, + E-RABModificationConfirm, + E-RABReleaseCommand, + E-RABReleaseResponse, + E-RABReleaseIndication, + E-RABSetupRequest, + E-RABSetupResponse, + TraceFailureIndication, + TraceStart, + UECapabilityInfoIndication, + UEContextModificationFailure, + UEContextModificationRequest, + UEContextModificationResponse, + UEContextReleaseCommand, + UEContextReleaseComplete, + UEContextReleaseRequest, + UERadioCapabilityMatchRequest, + UERadioCapabilityMatchResponse, + UplinkUEAssociatedLPPaTransport, + UplinkNASTransport, + UplinkNonUEAssociatedLPPaTransport, + UplinkS1cdma2000tunnelling, + WriteReplaceWarningRequest, + WriteReplaceWarningResponse, + ENBConfigurationTransfer, + MMEConfigurationTransfer, + PWSRestartIndication, + UEContextModificationIndication, + UEContextModificationConfirm, + RerouteNASRequest, + PWSFailureIndication, + UEContextSuspendRequest, + UEContextSuspendResponse, + UEContextResumeRequest, + UEContextResumeResponse, + UEContextResumeFailure, + ConnectionEstablishmentIndication + + +FROM S1AP-PDU-Contents + + id-CellTrafficTrace, + id-DeactivateTrace, + id-downlinkUEAssociatedLPPaTransport, + id-downlinkNASTransport, + id-downlinkNonUEAssociatedLPPaTransport, + id-DownlinkS1cdma2000tunnelling, + id-eNBStatusTransfer, + id-ErrorIndication, + id-HandoverCancel, + id-HandoverNotification, + id-HandoverPreparation, + id-HandoverResourceAllocation, + id-InitialContextSetup, + id-initialUEMessage, + id-ENBConfigurationUpdate, + id-Kill, + id-LocationReportingControl, + id-LocationReportingFailureIndication, + id-LocationReport, + id-eNBDirectInformationTransfer, + id-MMEConfigurationUpdate, + id-MMEDirectInformationTransfer, + id-MMEStatusTransfer, + id-NASNonDeliveryIndication, + id-OverloadStart, + id-OverloadStop, + id-Paging, + id-PathSwitchRequest, + id-PrivateMessage, + id-Reset, + id-S1Setup, + id-E-RABModify, + id-E-RABModificationIndication, + id-E-RABRelease, + id-E-RABReleaseIndication, + id-E-RABSetup, + id-TraceFailureIndication, + id-TraceStart, + id-UECapabilityInfoIndication, + id-UEContextModification, + id-UEContextRelease, + id-UEContextReleaseRequest, + id-UERadioCapabilityMatch, + id-uplinkUEAssociatedLPPaTransport, + id-uplinkNASTransport, + id-uplinkNonUEAssociatedLPPaTransport, + id-UplinkS1cdma2000tunnelling, + id-WriteReplaceWarning, + id-eNBConfigurationTransfer, + id-MMEConfigurationTransfer, + id-PWSRestartIndication, + id-UEContextModificationIndication, + id-RerouteNASRequest, + id-PWSFailureIndication, + id-UEContextSuspend, + id-UEContextResume, + id-ConnectionEstablishmentIndication +FROM S1AP-Constants; + + +-- ************************************************************** +-- +-- Interface Elementary Procedure Class +-- +-- ************************************************************** + +S1AP-ELEMENTARY-PROCEDURE ::= CLASS { + &InitiatingMessage , + &SuccessfulOutcome OPTIONAL, + &UnsuccessfulOutcome OPTIONAL, + &procedureCode ProcedureCode UNIQUE, + &criticality Criticality DEFAULT ignore +} +WITH SYNTAX { + INITIATING MESSAGE &InitiatingMessage + [SUCCESSFUL OUTCOME &SuccessfulOutcome] + [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] + PROCEDURE CODE &procedureCode + [CRITICALITY &criticality] +} + +-- ************************************************************** +-- +-- Interface PDU Definition +-- +-- ************************************************************** + +S1AP-PDU ::= CHOICE { + initiatingMessage InitiatingMessage, + successfulOutcome SuccessfulOutcome, + unsuccessfulOutcome UnsuccessfulOutcome, + ... +} + +InitiatingMessage ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +SuccessfulOutcome ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +UnsuccessfulOutcome ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +-- ************************************************************** +-- +-- Interface Elementary Procedure List +-- +-- ************************************************************** + +S1AP-ELEMENTARY-PROCEDURES S1AP-ELEMENTARY-PROCEDURE ::= { + S1AP-ELEMENTARY-PROCEDURES-CLASS-1 | + S1AP-ELEMENTARY-PROCEDURES-CLASS-2, + ... +} + + +S1AP-ELEMENTARY-PROCEDURES-CLASS-1 S1AP-ELEMENTARY-PROCEDURE ::= { + handoverPreparation | + handoverResourceAllocation | + pathSwitchRequest | + e-RABSetup | + e-RABModify | + e-RABRelease | + initialContextSetup | + handoverCancel | + kill | + reset | + s1Setup | + uEContextModification | + uEContextRelease | + eNBConfigurationUpdate | + mMEConfigurationUpdate | + writeReplaceWarning , + ..., + uERadioCapabilityMatch | + e-RABModificationIndication | + uEContextModificationIndication | + uEContextSuspend | + uEContextResume +} + +S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= { + handoverNotification | + e-RABReleaseIndication | + paging | + downlinkNASTransport | + initialUEMessage | + uplinkNASTransport | + errorIndication | + nASNonDeliveryIndication | + uEContextReleaseRequest | + downlinkS1cdma2000tunnelling | + uplinkS1cdma2000tunnelling | + uECapabilityInfoIndication | + eNBStatusTransfer | + mMEStatusTransfer | + deactivateTrace | + traceStart | + traceFailureIndication | + cellTrafficTrace | + locationReportingControl | + locationReportingFailureIndication | + locationReport | + overloadStart | + overloadStop | + eNBDirectInformationTransfer | + mMEDirectInformationTransfer | + eNBConfigurationTransfer | + mMEConfigurationTransfer | + privateMessage , + ..., + downlinkUEAssociatedLPPaTransport | + uplinkUEAssociatedLPPaTransport | + downlinkNonUEAssociatedLPPaTransport | + uplinkNonUEAssociatedLPPaTransport | + pWSRestartIndication | + rerouteNASRequest | + pWSFailureIndication | + connectionEstablishmentIndication +} + +-- ************************************************************** +-- +-- Interface Elementary Procedures +-- +-- ************************************************************** + +handoverPreparation S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequired + SUCCESSFUL OUTCOME HandoverCommand + UNSUCCESSFUL OUTCOME HandoverPreparationFailure + PROCEDURE CODE id-HandoverPreparation + CRITICALITY reject +} + +handoverResourceAllocation S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequest + SUCCESSFUL OUTCOME HandoverRequestAcknowledge + UNSUCCESSFUL OUTCOME HandoverFailure + PROCEDURE CODE id-HandoverResourceAllocation + CRITICALITY reject +} + +handoverNotification S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverNotify + PROCEDURE CODE id-HandoverNotification + CRITICALITY ignore +} + +pathSwitchRequest S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PathSwitchRequest + SUCCESSFUL OUTCOME PathSwitchRequestAcknowledge + UNSUCCESSFUL OUTCOME PathSwitchRequestFailure + PROCEDURE CODE id-PathSwitchRequest + CRITICALITY reject +} + +e-RABSetup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABSetupRequest + SUCCESSFUL OUTCOME E-RABSetupResponse + PROCEDURE CODE id-E-RABSetup + CRITICALITY reject +} + +e-RABModify S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABModifyRequest + SUCCESSFUL OUTCOME E-RABModifyResponse + PROCEDURE CODE id-E-RABModify + CRITICALITY reject +} + +e-RABRelease S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABReleaseCommand + SUCCESSFUL OUTCOME E-RABReleaseResponse + PROCEDURE CODE id-E-RABRelease + CRITICALITY reject +} + +e-RABReleaseIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABReleaseIndication + PROCEDURE CODE id-E-RABReleaseIndication + CRITICALITY ignore +} + +initialContextSetup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE InitialContextSetupRequest + SUCCESSFUL OUTCOME InitialContextSetupResponse + UNSUCCESSFUL OUTCOME InitialContextSetupFailure + PROCEDURE CODE id-InitialContextSetup + CRITICALITY reject +} + +uEContextReleaseRequest S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextReleaseRequest + PROCEDURE CODE id-UEContextReleaseRequest + CRITICALITY ignore +} + +paging S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE Paging + PROCEDURE CODE id-Paging + CRITICALITY ignore +} + +downlinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkNASTransport + PROCEDURE CODE id-downlinkNASTransport + CRITICALITY ignore +} + +initialUEMessage S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE InitialUEMessage + PROCEDURE CODE id-initialUEMessage + CRITICALITY ignore +} + +uplinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkNASTransport + PROCEDURE CODE id-uplinkNASTransport + CRITICALITY ignore +} +nASNonDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE NASNonDeliveryIndication + PROCEDURE CODE id-NASNonDeliveryIndication + CRITICALITY ignore +} + +handoverCancel S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverCancel + SUCCESSFUL OUTCOME HandoverCancelAcknowledge + PROCEDURE CODE id-HandoverCancel + CRITICALITY reject +} + +reset S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE Reset + SUCCESSFUL OUTCOME ResetAcknowledge + PROCEDURE CODE id-Reset + CRITICALITY reject +} + +errorIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ErrorIndication + PROCEDURE CODE id-ErrorIndication + CRITICALITY ignore +} + +s1Setup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE S1SetupRequest + SUCCESSFUL OUTCOME S1SetupResponse + UNSUCCESSFUL OUTCOME S1SetupFailure + PROCEDURE CODE id-S1Setup + CRITICALITY reject +} + +eNBConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationUpdate + SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure + PROCEDURE CODE id-ENBConfigurationUpdate + CRITICALITY reject +} + +mMEConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEConfigurationUpdate + SUCCESSFUL OUTCOME MMEConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME MMEConfigurationUpdateFailure + PROCEDURE CODE id-MMEConfigurationUpdate + CRITICALITY reject +} + +downlinkS1cdma2000tunnelling S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkS1cdma2000tunnelling + PROCEDURE CODE id-DownlinkS1cdma2000tunnelling + CRITICALITY ignore +} + +uplinkS1cdma2000tunnelling S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkS1cdma2000tunnelling + PROCEDURE CODE id-UplinkS1cdma2000tunnelling + CRITICALITY ignore +} + +uEContextModification S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextModificationRequest + SUCCESSFUL OUTCOME UEContextModificationResponse + UNSUCCESSFUL OUTCOME UEContextModificationFailure + PROCEDURE CODE id-UEContextModification + CRITICALITY reject +} + +uECapabilityInfoIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UECapabilityInfoIndication + PROCEDURE CODE id-UECapabilityInfoIndication + CRITICALITY ignore +} + +uEContextRelease S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextReleaseCommand + SUCCESSFUL OUTCOME UEContextReleaseComplete + PROCEDURE CODE id-UEContextRelease + CRITICALITY reject +} + +eNBStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBStatusTransfer + PROCEDURE CODE id-eNBStatusTransfer + CRITICALITY ignore +} + +mMEStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEStatusTransfer + PROCEDURE CODE id-MMEStatusTransfer + CRITICALITY ignore +} + +deactivateTrace S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DeactivateTrace + PROCEDURE CODE id-DeactivateTrace + CRITICALITY ignore +} + +traceStart S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE TraceStart + PROCEDURE CODE id-TraceStart + CRITICALITY ignore +} + +traceFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE TraceFailureIndication + PROCEDURE CODE id-TraceFailureIndication + CRITICALITY ignore +} +cellTrafficTrace S1AP-ELEMENTARY-PROCEDURE ::={ + INITIATING MESSAGE CellTrafficTrace + PROCEDURE CODE id-CellTrafficTrace + CRITICALITY ignore +} + +locationReportingControl S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReportingControl + PROCEDURE CODE id-LocationReportingControl + CRITICALITY ignore +} + +locationReportingFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReportingFailureIndication + PROCEDURE CODE id-LocationReportingFailureIndication + CRITICALITY ignore +} + +locationReport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReport + PROCEDURE CODE id-LocationReport + CRITICALITY ignore +} + +overloadStart S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE OverloadStart + PROCEDURE CODE id-OverloadStart + CRITICALITY ignore +} + +overloadStop S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE OverloadStop + PROCEDURE CODE id-OverloadStop + CRITICALITY reject +} + +writeReplaceWarning S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE WriteReplaceWarningRequest + SUCCESSFUL OUTCOME WriteReplaceWarningResponse + PROCEDURE CODE id-WriteReplaceWarning + CRITICALITY reject +} + +eNBDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBDirectInformationTransfer + PROCEDURE CODE id-eNBDirectInformationTransfer + CRITICALITY ignore +} + +mMEDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEDirectInformationTransfer + PROCEDURE CODE id-MMEDirectInformationTransfer + CRITICALITY ignore +} + +eNBConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationTransfer + PROCEDURE CODE id-eNBConfigurationTransfer + CRITICALITY ignore +} + +mMEConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEConfigurationTransfer + PROCEDURE CODE id-MMEConfigurationTransfer + CRITICALITY ignore +} + + +privateMessage S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PrivateMessage + PROCEDURE CODE id-PrivateMessage + CRITICALITY ignore +} + +pWSRestartIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PWSRestartIndication + PROCEDURE CODE id-PWSRestartIndication + CRITICALITY ignore +} + +kill S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE KillRequest + SUCCESSFUL OUTCOME KillResponse + PROCEDURE CODE id-Kill + CRITICALITY reject +} + +downlinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkUEAssociatedLPPaTransport + PROCEDURE CODE id-downlinkUEAssociatedLPPaTransport + CRITICALITY ignore +} + +uplinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkUEAssociatedLPPaTransport + PROCEDURE CODE id-uplinkUEAssociatedLPPaTransport + CRITICALITY ignore +} +downlinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkNonUEAssociatedLPPaTransport + PROCEDURE CODE id-downlinkNonUEAssociatedLPPaTransport + CRITICALITY ignore +} + +uplinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkNonUEAssociatedLPPaTransport + PROCEDURE CODE id-uplinkNonUEAssociatedLPPaTransport + CRITICALITY ignore +} + +uERadioCapabilityMatch S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UERadioCapabilityMatchRequest + SUCCESSFUL OUTCOME UERadioCapabilityMatchResponse + PROCEDURE CODE id-UERadioCapabilityMatch + CRITICALITY reject +} + +e-RABModificationIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABModificationIndication + SUCCESSFUL OUTCOME E-RABModificationConfirm + PROCEDURE CODE id-E-RABModificationIndication + CRITICALITY reject +} + +uEContextModificationIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextModificationIndication + SUCCESSFUL OUTCOME UEContextModificationConfirm + PROCEDURE CODE id-UEContextModificationIndication + CRITICALITY reject +} + +rerouteNASRequest S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RerouteNASRequest + PROCEDURE CODE id-RerouteNASRequest + CRITICALITY reject +} + +pWSFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PWSFailureIndication + PROCEDURE CODE id-PWSFailureIndication + CRITICALITY ignore +} + +uEContextSuspend S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextSuspendRequest + SUCCESSFUL OUTCOME UEContextSuspendResponse + PROCEDURE CODE id-UEContextSuspend + CRITICALITY reject +} + +uEContextResume S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextResumeRequest + SUCCESSFUL OUTCOME UEContextResumeResponse + UNSUCCESSFUL OUTCOME UEContextResumeFailure + PROCEDURE CODE id-UEContextResume + CRITICALITY reject +} + +connectionEstablishmentIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ConnectionEstablishmentIndication + PROCEDURE CODE id-ConnectionEstablishmentIndication + CRITICALITY reject +} + +END + + + +-- ************************************************************** +-- +-- PDU definitions for S1AP. +-- +-- ************************************************************** + +S1AP-PDU-Contents { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Contents (1) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + + UEAggregateMaximumBitrate, + BearerType, + Cause, + CellAccessMode, + Cdma2000HORequiredIndication, + Cdma2000HOStatus, + Cdma2000OneXSRVCCInfo, + Cdma2000OneXRAND, + Cdma2000PDU, + Cdma2000RATType, + Cdma2000SectorID, + EUTRANRoundTripDelayEstimationInfo, + CNDomain, + ConcurrentWarningMessageIndicator, + CriticalityDiagnostics, + CSFallbackIndicator, + CSG-Id, + CSG-IdList, + CSGMembershipStatus, + Data-Forwarding-Not-Possible, + Direct-Forwarding-Path-Availability, + Global-ENB-ID, + EUTRAN-CGI, + ENBname, + ENB-StatusTransfer-TransparentContainer, + ENB-UE-S1AP-ID, + ExtendedRepetitionPeriod, + GTP-TEID, + GUMMEI, + GUMMEIType, + HandoverRestrictionList, + HandoverType, + Masked-IMEISV, + LAI, + LPPa-PDU, + ManagementBasedMDTAllowed, + MDTPLMNList, + MMEname, + MMERelaySupportIndicator, + MME-UE-S1AP-ID, + MSClassmark2, + MSClassmark3, + NAS-PDU, + NASSecurityParametersfromE-UTRAN, + NASSecurityParameterstoE-UTRAN, + OverloadResponse, + PagingDRX, + PagingPriority, + PLMNidentity, + ProSeAuthorized, + RIMTransfer, + RelativeMMECapacity, + RequestType, + E-RAB-ID, + E-RABLevelQoSParameters, + E-RABList, + RelayNode-Indicator, + Routing-ID, + SecurityKey, + SecurityContext, + ServedGUMMEIs, + SONConfigurationTransfer, + Source-ToTarget-TransparentContainer, + SourceBSS-ToTargetBSS-TransparentContainer, + SourceeNB-ToTargeteNB-TransparentContainer, + SourceRNC-ToTargetRNC-TransparentContainer, + SubscriberProfileIDforRFP, + SRVCCOperationNotPossible, + SRVCCOperationPossible, + SRVCCHOIndication, + SupportedTAs, + TAI, + Target-ToSource-TransparentContainer, + TargetBSS-ToSourceBSS-TransparentContainer, + TargeteNB-ToSourceeNB-TransparentContainer, + TargetID, + TargetRNC-ToSourceRNC-TransparentContainer, + TimeToWait, + TraceActivation, + TrafficLoadReductionIndication, + E-UTRAN-Trace-ID, + TransportLayerAddress, + UEIdentityIndexValue, + UEPagingID, + UERadioCapability, + UERadioCapabilityForPaging, + UE-RetentionInformation, + UE-S1AP-IDs, + UE-associatedLogicalS1-ConnectionItem, + UESecurityCapabilities, + S-TMSI, + MessageIdentifier, + SerialNumber, + WarningAreaList, + RepetitionPeriod, + NumberofBroadcastRequest, + WarningType, + WarningSecurityInfo, + DataCodingScheme, + WarningMessageContents, + BroadcastCompletedAreaList, + RRC-Establishment-Cause, + BroadcastCancelledAreaList, + PS-ServiceNotAvailable, + GUMMEIList, + Correlation-ID, + GWContextReleaseIndication, + PrivacyIndicator, + VoiceSupportMatchIndicator, + TunnelInformation, + KillAllWarningMessages, + TransportInformation, + LHN-ID, + UserLocationInformation, + AdditionalCSFallbackIndicator, + ECGIListForRestart, + TAIListForRestart, + EmergencyAreaIDListForRestart, + ExpectedUEBehaviour, + Paging-eDRXInformation, + Extended-UEIdentityIndexValue, + MME-Group-ID, + Additional-GUTI, + PWSfailedECGIList, + CellIdentifierAndCELevelForCECapableUEs, + AssistanceDataForPaging, + InformationOnRecommendedCellsAndENBsForPaging, + UE-Usage-Type, + UEUserPlaneCIoTSupportIndicator, + NB-IoT-DefaultPagingDRX, + NB-IoT-Paging-eDRXInformation, + CE-mode-B-SupportIndicator, + NB-IoT-UEIdentityIndexValue + + + +FROM S1AP-IEs + + PrivateIE-Container{}, + ProtocolExtensionContainer{}, + ProtocolIE-Container{}, + ProtocolIE-ContainerList{}, + ProtocolIE-ContainerPair{}, + ProtocolIE-ContainerPairList{}, + ProtocolIE-SingleContainer{}, + S1AP-PRIVATE-IES, + S1AP-PROTOCOL-EXTENSION, + S1AP-PROTOCOL-IES, + S1AP-PROTOCOL-IES-PAIR +FROM S1AP-Containers + + + id-AssistanceDataForPaging, + id-uEaggregateMaximumBitrate, + id-BearerType, + id-Cause, + id-CellAccessMode, + id-CellIdentifierAndCELevelForCECapableUEs, + id-cdma2000HORequiredIndication, + id-cdma2000HOStatus, + id-cdma2000OneXSRVCCInfo, + id-cdma2000OneXRAND, + id-cdma2000PDU, + id-cdma2000RATType, + id-cdma2000SectorID, + id-EUTRANRoundTripDelayEstimationInfo, + id-CNDomain, + id-ConcurrentWarningMessageIndicator, + id-CriticalityDiagnostics, + id-CSFallbackIndicator, + id-CSG-Id, + id-CSG-IdList, + id-CSGMembershipStatus, + id-Data-Forwarding-Not-Possible, + id-DefaultPagingDRX, + id-Direct-Forwarding-Path-Availability, + id-Global-ENB-ID, + id-EUTRAN-CGI, + id-eNBname, + id-eNB-StatusTransfer-TransparentContainer, + id-eNB-UE-S1AP-ID, + id-GERANtoLTEHOInformationRes, + id-GUMMEI-ID, + id-GUMMEIType, + id-HandoverRestrictionList, + id-HandoverType, + id-Masked-IMEISV, + id-InformationOnRecommendedCellsAndENBsForPaging, + id-InitialContextSetup, + id-Inter-SystemInformationTransferTypeEDT, + id-Inter-SystemInformationTransferTypeMDT, + id-LPPa-PDU, + id-NAS-DownlinkCount, + id-ManagementBasedMDTAllowed, + id-ManagementBasedMDTPLMNList, + id-MMEname, + id-MME-UE-S1AP-ID, + id-MSClassmark2, + id-MSClassmark3, + id-NAS-PDU, + id-NASSecurityParametersfromE-UTRAN, + id-NASSecurityParameterstoE-UTRAN, + id-OverloadResponse, + id-pagingDRX, + id-PagingPriority, + id-RelativeMMECapacity, + id-RequestType, + id-Routing-ID, + id-E-RABAdmittedItem, + id-E-RABAdmittedList, + id-E-RABDataForwardingItem, + id-E-RABFailedToModifyList, + id-E-RABFailedToReleaseList, + id-E-RABFailedtoSetupItemHOReqAck, + id-E-RABFailedToSetupListBearerSURes, + id-E-RABFailedToSetupListCtxtSURes, + id-E-RABFailedToSetupListHOReqAck, + id-E-RABFailedToBeReleasedList, + id-E-RABFailedToResumeListResumeReq, + id-E-RABFailedToResumeItemResumeReq, + id-E-RABFailedToResumeListResumeRes, + id-E-RABFailedToResumeItemResumeRes, + id-E-RABModify, + id-E-RABModifyItemBearerModRes, + id-E-RABModifyListBearerModRes, + id-E-RABRelease, + id-E-RABReleaseItemBearerRelComp, + id-E-RABReleaseItemHOCmd, + id-E-RABReleaseListBearerRelComp, + id-E-RABReleaseIndication, + id-E-RABSetup, + id-E-RABSetupItemBearerSURes, + id-E-RABSetupItemCtxtSURes, + id-E-RABSetupListBearerSURes, + id-E-RABSetupListCtxtSURes, + id-E-RABSubjecttoDataForwardingList, + id-E-RABToBeModifiedItemBearerModReq, + id-E-RABToBeModifiedListBearerModReq, + id-E-RABToBeModifiedListBearerModInd, + id-E-RABToBeModifiedItemBearerModInd, + id-E-RABNotToBeModifiedListBearerModInd, + id-E-RABNotToBeModifiedItemBearerModInd, + id-E-RABModifyListBearerModConf, + id-E-RABModifyItemBearerModConf, + id-E-RABFailedToModifyListBearerModConf, + id-E-RABToBeReleasedListBearerModConf, + id-E-RABToBeReleasedList, + id-E-RABReleasedList, + id-E-RABToBeSetupItemBearerSUReq, + id-E-RABToBeSetupItemCtxtSUReq, + id-E-RABToBeSetupItemHOReq, + id-E-RABToBeSetupListBearerSUReq, + id-E-RABToBeSetupListCtxtSUReq, + id-E-RABToBeSetupListHOReq, + id-E-RABToBeSwitchedDLItem, + id-E-RABToBeSwitchedDLList, + id-E-RABToBeSwitchedULList, + id-E-RABToBeSwitchedULItem, + id-E-RABtoReleaseListHOCmd, + id-ProSeAuthorized, + id-SecurityKey, + id-SecurityContext, + id-ServedGUMMEIs, + id-SONConfigurationTransferECT, + id-SONConfigurationTransferMCT, + id-Source-ToTarget-TransparentContainer, + id-Source-ToTarget-TransparentContainer-Secondary, + id-SourceMME-UE-S1AP-ID, + id-SRVCCOperationNotPossible, + id-SRVCCOperationPossible, + id-SRVCCHOIndication, + id-SubscriberProfileIDforRFP, + id-SupportedTAs, + id-S-TMSI, + id-TAI, + id-TAIItem, + id-TAIList, + id-Target-ToSource-TransparentContainer, + id-Target-ToSource-TransparentContainer-Secondary, + id-TargetID, + id-TimeToWait, + id-TraceActivation, + id-TrafficLoadReductionIndication, + id-E-UTRAN-Trace-ID, + id-UEIdentityIndexValue, + id-UEPagingID, + id-UERadioCapability, + id-UERadioCapabilityForPaging, + id-UTRANtoLTEHOInformationRes, + id-UE-associatedLogicalS1-ConnectionListResAck, + id-UE-associatedLogicalS1-ConnectionItem, + id-UE-RetentionInformation, + id-UESecurityCapabilities, + id-UE-S1AP-IDs, + id-ResetType, + id-MessageIdentifier, + id-SerialNumber, + id-WarningAreaList, + id-RepetitionPeriod, + id-NumberofBroadcastRequest, + id-WarningType, + id-WarningSecurityInfo, + id-DataCodingScheme, + id-WarningMessageContents, + id-BroadcastCompletedAreaList, + id-BroadcastCancelledAreaList, + id-RRC-Establishment-Cause, + id-TraceCollectionEntityIPAddress, + maxnoofTAIs, + maxnoofErrors, + maxnoofE-RABs, + maxnoofIndividualS1ConnectionsToReset, + maxnoofEmergencyAreaID, + maxnoofCellID, + maxnoofTAIforWarning, + maxnoofCellinTAI, + maxnoofCellinEAI, + id-ExtendedRepetitionPeriod, + id-PS-ServiceNotAvailable, + id-RegisteredLAI, + id-GUMMEIList, + id-SourceMME-GUMMEI, + id-MME-UE-S1AP-ID-2, + id-GW-TransportLayerAddress, + id-RelayNode-Indicator, + id-Correlation-ID, + id-MMERelaySupportIndicator, + id-GWContextReleaseIndication, + id-PrivacyIndicator, + id-VoiceSupportMatchIndicator, + id-Tunnel-Information-for-BBF, + id-SIPTO-Correlation-ID, + id-SIPTO-L-GW-TransportLayerAddress, + id-KillAllWarningMessages, + id-TransportInformation, + id-LHN-ID, + id-UserLocationInformation, + id-AdditionalCSFallbackIndicator, + id-ECGIListForRestart, + id-TAIListForRestart, + id-EmergencyAreaIDListForRestart, + id-ExpectedUEBehaviour, + id-Paging-eDRXInformation, + id-extended-UEIdentityIndexValue, + id-CSGMembershipInfo, + id-MME-Group-ID, + id-Additional-GUTI, + id-S1-Message, + id-PWSfailedECGIList, + id-PWSFailureIndication, + id-UE-Usage-Type, + id-UEUserPlaneCIoTSupportIndicator, + id-NB-IoT-DefaultPagingDRX, + id-NB-IoT-Paging-eDRXInformation, + id-CE-mode-B-SupportIndicator, + id-NB-IoT-UEIdentityIndexValue, + id-RRC-Resume-Cause + + +FROM S1AP-Constants; + +-- ************************************************************** +-- +-- Common Container Lists +-- +-- ************************************************************** + +E-RAB-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofE-RABs, {IEsSetParam} } +E-RAB-IE-ContainerPairList { S1AP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxnoofE-RABs, {IEsSetParam} } +ProtocolError-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofE-RABs, {IEsSetParam} } + +-- ************************************************************** +-- +-- HANDOVER PREPARATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Required +-- +-- ************************************************************** + +HandoverRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverRequiredIEs} }, + ... +} + +HandoverRequiredIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-TargetID CRITICALITY reject TYPE TargetID PRESENCE mandatory}| + { ID id-Direct-Forwarding-Path-Availability CRITICALITY ignore TYPE Direct-Forwarding-Path-Availability PRESENCE optional}| + { ID id-SRVCCHOIndication CRITICALITY reject TYPE SRVCCHOIndication PRESENCE optional}| + { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory}| + { ID id-Source-ToTarget-TransparentContainer-Secondary CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE optional}| + { ID id-MSClassmark2 CRITICALITY reject TYPE MSClassmark2 PRESENCE conditional}| + { ID id-MSClassmark3 CRITICALITY ignore TYPE MSClassmark3 PRESENCE conditional}| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional}| + { ID id-PS-ServiceNotAvailable CRITICALITY ignore TYPE PS-ServiceNotAvailable PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- Handover Command +-- +-- ************************************************************** + +HandoverCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCommandIEs} }, + ... +} + +HandoverCommandIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}| + { ID id-NASSecurityParametersfromE-UTRAN CRITICALITY reject TYPE NASSecurityParametersfromE-UTRAN PRESENCE conditional + -- This IE shall be present if HandoverType IE is set to value "LTEtoUTRAN" or "LTEtoGERAN" --}| + { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional}| + { ID id-E-RABtoReleaseListHOCmd CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory}| + { ID id-Target-ToSource-TransparentContainer-Secondary CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +E-RABSubjecttoDataForwardingList ::= E-RAB-IE-ContainerList { {E-RABDataForwardingItemIEs} } + +E-RABDataForwardingItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABDataForwardingItem CRITICALITY ignore TYPE E-RABDataForwardingItem PRESENCE mandatory }, + ... +} + +E-RABDataForwardingItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-transportLayerAddress TransportLayerAddress OPTIONAL, + dL-gTP-TEID GTP-TEID OPTIONAL, + uL-TransportLayerAddress TransportLayerAddress OPTIONAL, + uL-GTP-TEID GTP-TEID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { E-RABDataForwardingItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABDataForwardingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- Handover Preparation Failure +-- +-- ************************************************************** + +HandoverPreparationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverPreparationFailureIEs} }, + ... +} + +HandoverPreparationFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER RESOURCE ALLOCATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Request +-- +-- ************************************************************** + +HandoverRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {HandoverRequestIEs} }, + ... +} + +HandoverRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory}| + { ID id-E-RABToBeSetupListHOReq CRITICALITY reject TYPE E-RABToBeSetupListHOReq PRESENCE mandatory}| + { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}| + { ID id-NASSecurityParameterstoE-UTRAN CRITICALITY reject TYPE NASSecurityParameterstoE-UTRAN PRESENCE conditional + -- This IE shall be present if the Handover Type IE is set to the value "UTRANtoLTE" or "GERANtoLTE" -- }| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional}| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional}| + { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional}| + { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}, + ... +} + +E-RABToBeSetupListHOReq ::= E-RAB-IE-ContainerList { {E-RABToBeSetupItemHOReqIEs} } + +E-RABToBeSetupItemHOReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemHOReq CRITICALITY reject TYPE E-RABToBeSetupItemHOReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemHOReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + e-RABlevelQosParameters E-RABLevelQoSParameters, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemHOReq-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSetupItemHOReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-Data-Forwarding-Not-Possible CRITICALITY ignore EXTENSION Data-Forwarding-Not-Possible PRESENCE optional}| + { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Handover Request Acknowledge +-- +-- ************************************************************** + +HandoverRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {HandoverRequestAcknowledgeIEs} }, + ... +} + +HandoverRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABAdmittedList CRITICALITY ignore TYPE E-RABAdmittedList PRESENCE mandatory}| + { ID id-E-RABFailedToSetupListHOReqAck CRITICALITY ignore TYPE E-RABFailedtoSetupListHOReqAck PRESENCE optional}| + { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory}| + { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional}| + { ID id-CE-mode-B-SupportIndicator CRITICALITY ignore TYPE CE-mode-B-SupportIndicator PRESENCE optional}, + ... +} + +E-RABAdmittedList ::= E-RAB-IE-ContainerList { {E-RABAdmittedItemIEs} } + +E-RABAdmittedItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABAdmittedItem CRITICALITY ignore TYPE E-RABAdmittedItem PRESENCE mandatory }, + ... +} + +E-RABAdmittedItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + dL-transportLayerAddress TransportLayerAddress OPTIONAL, + dL-gTP-TEID GTP-TEID OPTIONAL, + uL-TransportLayerAddress TransportLayerAddress OPTIONAL, + uL-GTP-TEID GTP-TEID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABAdmittedItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABAdmittedItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABFailedtoSetupListHOReqAck ::= E-RAB-IE-ContainerList { {E-RABFailedtoSetupItemHOReqAckIEs} } + +E-RABFailedtoSetupItemHOReqAckIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABFailedtoSetupItemHOReqAck CRITICALITY ignore TYPE E-RABFailedToSetupItemHOReqAck PRESENCE mandatory }, + ... +} + +E-RABFailedToSetupItemHOReqAck ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { E-RABFailedToSetupItemHOReqAckExtIEs} } OPTIONAL, + ... +} + +E-RABFailedToSetupItemHOReqAckExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Handover Failure +-- +-- ************************************************************** + +HandoverFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverFailureIEs} }, + ... +} + +HandoverFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER NOTIFICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Notify +-- +-- ************************************************************** + +HandoverNotify ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverNotifyIEs} }, + ... +} + +HandoverNotifyIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- PATH SWITCH REQUEST ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Path Switch Request +-- +-- ************************************************************** + +PathSwitchRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestIEs} }, + ... +} + +PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABToBeSwitchedDLList CRITICALITY reject TYPE E-RABToBeSwitchedDLList PRESENCE mandatory}| + { ID id-SourceMME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY ignore TYPE UESecurityCapabilities PRESENCE mandatory}| + { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional}| + { ID id-SourceMME-GUMMEI CRITICALITY ignore TYPE GUMMEI PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}| + { ID id-RRC-Resume-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE optional }, + ... +} + +E-RABToBeSwitchedDLList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedDLItemIEs} } + +E-RABToBeSwitchedDLItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSwitchedDLItem CRITICALITY reject TYPE E-RABToBeSwitchedDLItem PRESENCE mandatory }, + ... +} + +E-RABToBeSwitchedDLItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedDLItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSwitchedDLItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Path Switch Request Acknowledge +-- +-- ************************************************************** + +PathSwitchRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestAcknowledgeIEs} }, + ... +} + +PathSwitchRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional}| + { ID id-E-RABToBeSwitchedULList CRITICALITY ignore TYPE E-RABToBeSwitchedULList PRESENCE optional}| + { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}, + ... +} + +E-RABToBeSwitchedULList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedULItemIEs} } + +E-RABToBeSwitchedULItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSwitchedULItem CRITICALITY ignore TYPE E-RABToBeSwitchedULItem PRESENCE mandatory }, + ... +} + +E-RABToBeSwitchedULItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedULItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSwitchedULItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Path Switch Request Failure +-- +-- ************************************************************** + +PathSwitchRequestFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestFailureIEs} }, + ... +} + +PathSwitchRequestFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER CANCEL ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Cancel +-- +-- ************************************************************** + +HandoverCancel ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCancelIEs} }, + ... +} + +HandoverCancelIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Handover Cancel Request Acknowledge +-- +-- ************************************************************** + +HandoverCancelAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCancelAcknowledgeIEs} }, + ... +} + +HandoverCancelAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- E-RAB SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Setup Request +-- +-- ************************************************************** + +E-RABSetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABSetupRequestIEs} }, + ... +} + +E-RABSetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeSetupListBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupListBearerSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupListBearerSUReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemBearerSUReqIEs} } + +E-RABToBeSetupItemBearerSUReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupItemBearerSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemBearerSUReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABlevelQoSParameters E-RABLevelQoSParameters, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + nAS-PDU NAS-PDU, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemBearerSUReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeSetupItemBearerSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- E-RAB Setup Response +-- +-- ************************************************************** + +E-RABSetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABSetupResponseIEs} }, + ... +} + +E-RABSetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABSetupListBearerSURes CRITICALITY ignore TYPE E-RABSetupListBearerSURes PRESENCE optional }| + { ID id-E-RABFailedToSetupListBearerSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABSetupListBearerSURes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemBearerSUResIEs} } + +E-RABSetupItemBearerSUResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABSetupItemBearerSURes CRITICALITY ignore TYPE E-RABSetupItemBearerSURes PRESENCE mandatory }, + ... +} + +E-RABSetupItemBearerSURes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemBearerSUResExtIEs} } OPTIONAL, + ... +} + + +E-RABSetupItemBearerSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- E-RAB MODIFY ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Modify Request +-- +-- ************************************************************** + +E-RABModifyRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABModifyRequestIEs} }, + ... +} + +E-RABModifyRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeModifiedListBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedListBearerModReq PRESENCE mandatory }, + ... +} + +E-RABToBeModifiedListBearerModReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeModifiedItemBearerModReqIEs} } + +E-RABToBeModifiedItemBearerModReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeModifiedItemBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModReq PRESENCE mandatory }, + ... +} + +E-RABToBeModifiedItemBearerModReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABLevelQoSParameters E-RABLevelQoSParameters, + nAS-PDU NAS-PDU, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeModifyItemBearerModReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeModifyItemBearerModReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-TransportInformation CRITICALITY reject EXTENSION TransportInformation PRESENCE optional}, + ... +} + + + +-- ************************************************************** +-- +-- E-RAB Modify Response +-- +-- ************************************************************** + +E-RABModifyResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABModifyResponseIEs} }, + ... +} + +E-RABModifyResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABModifyListBearerModRes CRITICALITY ignore TYPE E-RABModifyListBearerModRes PRESENCE optional }| + { ID id-E-RABFailedToModifyList CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABModifyListBearerModRes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModResIEs} } + +E-RABModifyItemBearerModResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABModifyItemBearerModRes CRITICALITY ignore TYPE E-RABModifyItemBearerModRes PRESENCE mandatory}, + ... +} + +E-RABModifyItemBearerModRes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModResExtIEs} } OPTIONAL, + ... +} + + +E-RABModifyItemBearerModResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + + +-- ************************************************************** +-- +-- E-RAB RELEASE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Release Command +-- +-- ************************************************************** + +E-RABReleaseCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABReleaseCommandIEs} }, + ... +} + +E-RABReleaseCommandIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }| + { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- E-RAB Release Response +-- +-- ************************************************************** + +E-RABReleaseResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { E-RABReleaseResponseIEs } }, + ... +} + +E-RABReleaseResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABReleaseListBearerRelComp CRITICALITY ignore TYPE E-RABReleaseListBearerRelComp PRESENCE optional }| + { ID id-E-RABFailedToReleaseList CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }| +-- Extension for Release 12 to support User Location Information -- + { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }, + ... +} + + +E-RABReleaseListBearerRelComp ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABReleaseItemBearerRelCompIEs} } + +E-RABReleaseItemBearerRelCompIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABReleaseItemBearerRelComp CRITICALITY ignore TYPE E-RABReleaseItemBearerRelComp PRESENCE mandatory }, + ... +} + +E-RABReleaseItemBearerRelComp ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABReleaseItemBearerRelCompExtIEs} } OPTIONAL, + ... +} + + +E-RABReleaseItemBearerRelCompExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- E-RAB RELEASE INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Release Indication +-- +-- ************************************************************** + +E-RABReleaseIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABReleaseIndicationIEs} }, + ... +} + +E-RABReleaseIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }| +-- Extension for Release 12 to support User Location Information -- + { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- INITIAL CONTEXT SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Initial Context Setup Request +-- +-- ************************************************************** + +InitialContextSetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupRequestIEs} }, + ... +} + +InitialContextSetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory}| + { ID id-E-RABToBeSetupListCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupListCtxtSUReq PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory}| + { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE mandatory}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| + { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional}| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional}| + { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional}| + { ID id-AdditionalCSFallbackIndicator CRITICALITY ignore TYPE AdditionalCSFallbackIndicator PRESENCE conditional}| + { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}, + ... +} + + + + +E-RABToBeSetupListCtxtSUReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemCtxtSUReqIEs} } + +E-RABToBeSetupItemCtxtSUReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupItemCtxtSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemCtxtSUReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABlevelQoSParameters E-RABLevelQoSParameters, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + nAS-PDU NAS-PDU OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemCtxtSUReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeSetupItemCtxtSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- Initial Context Setup Response +-- +-- ************************************************************** + +InitialContextSetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupResponseIEs} }, + ... +} + +InitialContextSetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABSetupListCtxtSURes CRITICALITY ignore TYPE E-RABSetupListCtxtSURes PRESENCE mandatory }| + { ID id-E-RABFailedToSetupListCtxtSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABSetupListCtxtSURes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemCtxtSUResIEs} } + +E-RABSetupItemCtxtSUResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABSetupItemCtxtSURes CRITICALITY ignore TYPE E-RABSetupItemCtxtSURes PRESENCE mandatory }, + ... +} + +E-RABSetupItemCtxtSURes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemCtxtSUResExtIEs} } OPTIONAL, + ... +} + + +E-RABSetupItemCtxtSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Initial Context Setup Failure +-- +-- ************************************************************** + +InitialContextSetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupFailureIEs} }, + ... +} + +InitialContextSetupFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- PAGING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + + +-- ************************************************************** +-- +-- Paging +-- +-- ************************************************************** + +Paging ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{PagingIEs}}, + ... +} + +PagingIEs S1AP-PROTOCOL-IES ::= { + { ID id-UEIdentityIndexValue CRITICALITY ignore TYPE UEIdentityIndexValue PRESENCE mandatory}| + { ID id-UEPagingID CRITICALITY ignore TYPE UEPagingID PRESENCE mandatory}| + { ID id-pagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional}| + { ID id-CNDomain CRITICALITY ignore TYPE CNDomain PRESENCE mandatory}| + { ID id-TAIList CRITICALITY ignore TYPE TAIList PRESENCE mandatory}| + { ID id-CSG-IdList CRITICALITY ignore TYPE CSG-IdList PRESENCE optional}| + { ID id-PagingPriority CRITICALITY ignore TYPE PagingPriority PRESENCE optional}| + { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional}| +-- Extension for Release 13 to support Paging Optimisation and Coverage Enhancement paging –- + { ID id-AssistanceDataForPaging CRITICALITY ignore TYPE AssistanceDataForPaging PRESENCE optional}| + { ID id-Paging-eDRXInformation CRITICALITY ignore TYPE Paging-eDRXInformation PRESENCE optional}| + { ID id-extended-UEIdentityIndexValue CRITICALITY ignore TYPE Extended-UEIdentityIndexValue PRESENCE optional}| + { ID id-NB-IoT-Paging-eDRXInformation CRITICALITY ignore TYPE NB-IoT-Paging-eDRXInformation PRESENCE optional}| + { ID id-NB-IoT-UEIdentityIndexValue CRITICALITY ignore TYPE NB-IoT-UEIdentityIndexValue PRESENCE optional}, + ... +} + +TAIList::= SEQUENCE (SIZE(1.. maxnoofTAIs)) OF ProtocolIE-SingleContainer {{TAIItemIEs}} + +TAIItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-TAIItem CRITICALITY ignore TYPE TAIItem PRESENCE mandatory }, + ... +} + +TAIItem ::= SEQUENCE { + tAI TAI, + iE-Extensions ProtocolExtensionContainer { {TAIItemExtIEs} } OPTIONAL, + ... +} + + +TAIItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- UE CONTEXT RELEASE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Release Request +-- +-- ************************************************************** + +UEContextReleaseRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseRequest-IEs}}, + ... +} + +UEContextReleaseRequest-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-GWContextReleaseIndication CRITICALITY reject TYPE GWContextReleaseIndication PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- UE Context Release Command +-- +-- ************************************************************** + +UEContextReleaseCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseCommand-IEs}}, + ... +} + +UEContextReleaseCommand-IEs S1AP-PROTOCOL-IES ::= { + { ID id-UE-S1AP-IDs CRITICALITY reject TYPE UE-S1AP-IDs PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UE Context Release Complete +-- +-- ************************************************************** + +UEContextReleaseComplete ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseComplete-IEs}}, + ... +} + +UEContextReleaseComplete-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| +-- Extension for Release 12 to support User Location Information -- + { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional}| +-- Extension for Release 13 to support Paging Optimisation + { ID id-InformationOnRecommendedCellsAndENBsForPaging CRITICALITY ignore TYPE InformationOnRecommendedCellsAndENBsForPaging PRESENCE optional}| +-- Extension for Release 13 to support coverage enhancement paging – + { ID id-CellIdentifierAndCELevelForCECapableUEs CRITICALITY ignore TYPE CellIdentifierAndCELevelForCECapableUEs PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- UE CONTEXT MODIFICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Modification Request +-- +-- ************************************************************** + +UEContextModificationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationRequestIEs} }, + ... +} + +UEContextModificationRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE optional}| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| + { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional}| + { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}| + { ID id-AdditionalCSFallbackIndicator CRITICALITY ignore TYPE AdditionalCSFallbackIndicator PRESENCE conditional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-SRVCCOperationNotPossible CRITICALITY ignore TYPE SRVCCOperationNotPossible PRESENCE optional}, + ... +} +-- ************************************************************** +-- +-- UE Context Modification Response +-- +-- ************************************************************** + +UEContextModificationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationResponseIEs} }, + ... +} + +UEContextModificationResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- UE Context Modification Failure +-- +-- ************************************************************** + +UEContextModificationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationFailureIEs} }, + ... +} + +UEContextModificationFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- UE RADIO CAPABILITY MATCH ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Radio Capability Match Request +-- +-- ************************************************************** + +UERadioCapabilityMatchRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UERadioCapabilityMatchRequestIEs} }, + ... +} + +UERadioCapabilityMatchRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- UE Radio Capability Match Response +-- +-- ************************************************************** + +UERadioCapabilityMatchResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UERadioCapabilityMatchResponseIEs} }, + ... +} + +UERadioCapabilityMatchResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-VoiceSupportMatchIndicator CRITICALITY reject TYPE VoiceSupportMatchIndicator PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- NAS TRANSPORT ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- DOWNLINK NAS TRANSPORT +-- +-- ************************************************************** + +DownlinkNASTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkNASTransport-IEs}}, + ... +} + +DownlinkNASTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- INITIAL UE MESSAGE +-- +-- ************************************************************** + +InitialUEMessage ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{InitialUEMessage-IEs}}, + ... +} + +InitialUEMessage-IEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}| + { ID id-TAI CRITICALITY reject TYPE TAI PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-RRC-Establishment-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE mandatory}| + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE optional}| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional}| + { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-RelayNode-Indicator CRITICALITY reject TYPE RelayNode-Indicator PRESENCE optional}| + { ID id-GUMMEIType CRITICALITY ignore TYPE GUMMEIType PRESENCE optional}| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}| + { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}| + { ID id-MME-Group-ID CRITICALITY ignore TYPE MME-Group-ID PRESENCE optional}| + { ID id-UE-Usage-Type CRITICALITY ignore TYPE UE-Usage-Type PRESENCE optional}| + { ID id-CE-mode-B-SupportIndicator CRITICALITY ignore TYPE CE-mode-B-SupportIndicator PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- UPLINK NAS TRANSPORT +-- +-- ************************************************************** + +UplinkNASTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkNASTransport-IEs}}, + ... +} + +UplinkNASTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| + { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, + ... +} +-- ************************************************************** +-- +-- NAS NON DELIVERY INDICATION +-- +-- ************************************************************** + +NASNonDeliveryIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{NASNonDeliveryIndication-IEs}}, + ... +} + +NASNonDeliveryIndication-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- REROUTE NAS REQUEST +-- +-- ************************************************************** + +RerouteNASRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RerouteNASRequest-IEs}}, + ... +} + +RerouteNASRequest-IEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-S1-Message CRITICALITY reject TYPE OCTET STRING PRESENCE mandatory}| + { ID id-MME-Group-ID CRITICALITY reject TYPE MME-Group-ID PRESENCE mandatory}| + { ID id-Additional-GUTI CRITICALITY ignore TYPE Additional-GUTI PRESENCE optional}| + { ID id-UE-Usage-Type CRITICALITY ignore TYPE UE-Usage-Type PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- RESET ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Reset +-- +-- ************************************************************** + +Reset ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ResetIEs} }, + ... +} + +ResetIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-ResetType CRITICALITY reject TYPE ResetType PRESENCE mandatory }, + ... +} + +ResetType ::= CHOICE { + s1-Interface ResetAll, + partOfS1-Interface UE-associatedLogicalS1-ConnectionListRes, + ... +} + + + +ResetAll ::= ENUMERATED { + reset-all, + ... +} + +UE-associatedLogicalS1-ConnectionListRes ::= SEQUENCE (SIZE(1.. maxnoofIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemRes } } + +UE-associatedLogicalS1-ConnectionItemRes S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY reject TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- Reset Acknowledge +-- +-- ************************************************************** + +ResetAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} }, + ... +} + +ResetAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionListResAck CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionListResAck PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +UE-associatedLogicalS1-ConnectionListResAck ::= SEQUENCE (SIZE(1.. maxnoofIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemResAck } } + +UE-associatedLogicalS1-ConnectionItemResAck S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- ERROR INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Error Indication +-- +-- ************************************************************** + +ErrorIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ErrorIndicationIEs}}, + ... +} + +ErrorIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE optional }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- S1 SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- S1 Setup Request +-- +-- ************************************************************** + +S1SetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupRequestIEs} }, + ... +} + +S1SetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}| + { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional}| + { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE mandatory}| + { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE mandatory}| + { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}| + { ID id-UE-RetentionInformation CRITICALITY ignore TYPE UE-RetentionInformation PRESENCE optional}| + { ID id-NB-IoT-DefaultPagingDRX CRITICALITY ignore TYPE NB-IoT-DefaultPagingDRX PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- S1 Setup Response +-- +-- ************************************************************** + +S1SetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupResponseIEs} }, + ... +} + + +S1SetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional}| + { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE mandatory}| + { ID id-RelativeMMECapacity CRITICALITY ignore TYPE RelativeMMECapacity PRESENCE mandatory}| + { ID id-MMERelaySupportIndicator CRITICALITY ignore TYPE MMERelaySupportIndicator PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-UE-RetentionInformation CRITICALITY ignore TYPE UE-RetentionInformation PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- S1 Setup Failure +-- +-- ************************************************************** + +S1SetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupFailureIEs} }, + ... +} + +S1SetupFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Configuration Update +-- +-- ************************************************************** + +ENBConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateIEs} }, + ... +} + +ENBConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= { + { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional}| + { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE optional}| + { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}| + { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional}| + { ID id-NB-IoT-DefaultPagingDRX CRITICALITY ignore TYPE NB-IoT-DefaultPagingDRX PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- eNB Configuration Update Acknowledge +-- +-- ************************************************************** + +ENBConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateAcknowledgeIEs} }, + ... +} + + +ENBConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- eNB Configuration Update Failure +-- +-- ************************************************************** + +ENBConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateFailureIEs} }, + ... +} + +ENBConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, +... +} + + +-- ************************************************************** +-- +-- MME CONFIGURATION UPDATE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Configuration Update +-- +-- ************************************************************** + +MMEConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateIEs} }, + ... +} + +MMEConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= { + { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }| + { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE optional }| + { ID id-RelativeMMECapacity CRITICALITY reject TYPE RelativeMMECapacity PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- MME Configuration Update Acknowledge +-- +-- ************************************************************** + +MMEConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateAcknowledgeIEs} }, + ... +} + + +MMEConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- MME Configuration Update Failure +-- +-- ************************************************************** + +MMEConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateFailureIEs} }, + ... +} + +MMEConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- DOWNLINK S1 CDMA2000 TUNNELLING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Downlink S1 CDMA2000 Tunnelling +-- +-- ************************************************************** + +DownlinkS1cdma2000tunnelling ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {DownlinkS1cdma2000tunnellingIEs} }, + ... +} + +DownlinkS1cdma2000tunnellingIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional }| + { ID id-cdma2000HOStatus CRITICALITY ignore TYPE Cdma2000HOStatus PRESENCE optional }| + { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory }| + { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UPLINK S1 CDMA2000 TUNNELLING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Uplink S1 CDMA2000 Tunnelling +-- +-- ************************************************************** + +UplinkS1cdma2000tunnelling ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {UplinkS1cdma2000tunnellingIEs} }, + ... +} + +UplinkS1cdma2000tunnellingIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory }| + { ID id-cdma2000SectorID CRITICALITY reject TYPE Cdma2000SectorID PRESENCE mandatory }| + { ID id-cdma2000HORequiredIndication CRITICALITY ignore TYPE Cdma2000HORequiredIndication PRESENCE optional }| + { ID id-cdma2000OneXSRVCCInfo CRITICALITY reject TYPE Cdma2000OneXSRVCCInfo PRESENCE optional }| + { ID id-cdma2000OneXRAND CRITICALITY reject TYPE Cdma2000OneXRAND PRESENCE optional }| + { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory }| + { ID id-EUTRANRoundTripDelayEstimationInfo CRITICALITY ignore TYPE EUTRANRoundTripDelayEstimationInfo PRESENCE optional }, + -- Extension for Release 9 to assist target HRPD access with the acquisition of the UE -- + ... +} + + +-- ************************************************************** +-- +-- UE CAPABILITY INFO INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Capability Info Indication +-- +-- ************************************************************** + +UECapabilityInfoIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UECapabilityInfoIndicationIEs} }, + ... +} + +UECapabilityInfoIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE mandatory}| + { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- eNB STATUS TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Status Transfer +-- +-- ************************************************************** + +ENBStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBStatusTransferIEs} }, + ... +} + +ENBStatusTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- MME STATUS TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Status Transfer +-- +-- ************************************************************** + +MMEStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEStatusTransferIEs} }, + ... +} + +MMEStatusTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- TRACE ELEMENTARY PROCEDURES +-- +-- ************************************************************** +-- ************************************************************** +-- +-- Trace Start +-- +-- ************************************************************** + +TraceStart ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {TraceStartIEs} }, + ... +} + +TraceStartIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Trace Failure Indication +-- +-- ************************************************************** + +TraceFailureIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {TraceFailureIndicationIEs} }, + ... +} + +TraceFailureIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- DEACTIVATE TRACE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Deactivate Trace +-- +-- ************************************************************** + +DeactivateTrace ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { DeactivateTraceIEs} }, + ... +} + +DeactivateTraceIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- CELL TRAFFIC TRACE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Cell Traffic Trace +-- +-- ************************************************************** + +CellTrafficTrace ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { CellTrafficTraceIEs } }, + ... +} + +CellTrafficTraceIEs S1AP-PROTOCOL-IES ::= { + {ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + {ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + {ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }| + {ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }| + {ID id-TraceCollectionEntityIPAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE mandatory }| + {ID id-PrivacyIndicator CRITICALITY ignore TYPE PrivacyIndicator PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- LOCATION ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Location Reporting Control +-- +-- ************************************************************** + +LocationReportingControl ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportingControlIEs} }, + ... +} + +LocationReportingControlIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Location Report Failure Indication +-- +-- ************************************************************** + +LocationReportingFailureIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportingFailureIndicationIEs} }, + ... +} + +LocationReportingFailureIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Location Report +-- +-- ************************************************************** + +LocationReport ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportIEs} }, + ... +} + +LocationReportIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory }| + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- OVERLOAD ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Overload Start +-- +-- ************************************************************** + +OverloadStart ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {OverloadStartIEs} }, + ... +} + +OverloadStartIEs S1AP-PROTOCOL-IES ::= { + { ID id-OverloadResponse CRITICALITY reject TYPE OverloadResponse PRESENCE mandatory }| + { ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional }| + { ID id-TrafficLoadReductionIndication CRITICALITY ignore TYPE TrafficLoadReductionIndication PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- Overload Stop +-- +-- ************************************************************** + +OverloadStop ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {OverloadStopIEs} }, + ... +} + +OverloadStopIEs S1AP-PROTOCOL-IES ::= { +{ ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- WRITE-REPLACE WARNING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Write-Replace Warning Request +-- +-- ************************************************************** + + +WriteReplaceWarningRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {WriteReplaceWarningRequestIEs} }, + ... +} + +WriteReplaceWarningRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional }| + { ID id-RepetitionPeriod CRITICALITY reject TYPE RepetitionPeriod PRESENCE mandatory }| + { ID id-ExtendedRepetitionPeriod CRITICALITY reject TYPE ExtendedRepetitionPeriod PRESENCE optional }| + { ID id-NumberofBroadcastRequest CRITICALITY reject TYPE NumberofBroadcastRequest PRESENCE mandatory }| + { ID id-WarningType CRITICALITY ignore TYPE WarningType PRESENCE optional }| + { ID id-WarningSecurityInfo CRITICALITY ignore TYPE WarningSecurityInfo PRESENCE optional }| + { ID id-DataCodingScheme CRITICALITY ignore TYPE DataCodingScheme PRESENCE optional }| + { ID id-WarningMessageContents CRITICALITY ignore TYPE WarningMessageContents PRESENCE optional }| + { ID id-ConcurrentWarningMessageIndicator CRITICALITY reject TYPE ConcurrentWarningMessageIndicator PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- Write-Replace Warning Response +-- +-- ************************************************************** + +WriteReplaceWarningResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {WriteReplaceWarningResponseIEs} }, + ... +} + +WriteReplaceWarningResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-BroadcastCompletedAreaList CRITICALITY ignore TYPE BroadcastCompletedAreaList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- eNB DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Direct Information Transfer +-- +-- ************************************************************** + +ENBDirectInformationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ ENBDirectInformationTransferIEs}}, + ... +} + +ENBDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-Inter-SystemInformationTransferTypeEDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory }, + ... +} + +Inter-SystemInformationTransferType ::= CHOICE { + rIMTransfer RIMTransfer, + ... +} + +-- ************************************************************** +-- +-- MME DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Direct Information Transfer +-- +-- ************************************************************** + +MMEDirectInformationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ MMEDirectInformationTransferIEs}}, + ... +} + +MMEDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-Inter-SystemInformationTransferTypeMDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory }, + ... +} +-- ************************************************************** +-- +-- eNB CONFIGURATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Configuration Transfer +-- +-- ************************************************************** + +ENBConfigurationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ ENBConfigurationTransferIEs}}, + ... +} + +ENBConfigurationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-SONConfigurationTransferECT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- MME CONFIGURATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Configuration Transfer +-- +-- ************************************************************** + +MMEConfigurationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ MMEConfigurationTransferIEs}}, + ... +} + +MMEConfigurationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-SONConfigurationTransferMCT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- PRIVATE MESSAGE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Private Message +-- +-- ************************************************************** + +PrivateMessage ::= SEQUENCE { + privateIEs PrivateIE-Container {{PrivateMessageIEs}}, + ... +} + +PrivateMessageIEs S1AP-PRIVATE-IES ::= { + ... +} + +-- ************************************************************** +-- +-- KILL PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Kill Request +-- +-- ************************************************************** + + +KillRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {KillRequestIEs} }, + ... +} + +KillRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory}| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory}| + { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional}| + { ID id-KillAllWarningMessages CRITICALITY reject TYPE KillAllWarningMessages PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Kill Response +-- +-- ************************************************************** + +KillResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {KillResponseIEs} }, + ... +} + +KillResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-BroadcastCancelledAreaList CRITICALITY ignore TYPE BroadcastCancelledAreaList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- PWS RESTART INDICATION PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- PWS Restart Indication +-- +-- ************************************************************** + +PWSRestartIndication::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ PWSRestartIndicationIEs}}, + ... +} + +PWSRestartIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-ECGIListForRestart CRITICALITY reject TYPE ECGIListForRestart PRESENCE mandatory}| + { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}| + { ID id-TAIListForRestart CRITICALITY reject TYPE TAIListForRestart PRESENCE mandatory}| + { ID id-EmergencyAreaIDListForRestart CRITICALITY reject TYPE EmergencyAreaIDListForRestart PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- PWS Failure Indication +-- +-- ************************************************************** + +PWSFailureIndication::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ PWSFailureIndicationIEs}}, + ... +} + +PWSFailureIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-PWSfailedECGIList CRITICALITY reject TYPE PWSfailedECGIList PRESENCE mandatory}| + { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- LPPA TRANSPORT ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- DOWNLINK UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +DownlinkUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkUEAssociatedLPPaTransport-IEs}}, + ... +} + +DownlinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UPLINK UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +UplinkUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkUEAssociatedLPPaTransport-IEs}}, + ... +} + +UplinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- DOWNLINK NON UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +DownlinkNonUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkNonUEAssociatedLPPaTransport-IEs}}, + ... +} + +DownlinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UPLINK NON UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +UplinkNonUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkNonUEAssociatedLPPaTransport-IEs}}, + ... +} + +UplinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + + +-- ************************************************************** +-- +-- E-RAB MODIFICATION INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Modification Indication +-- +-- ************************************************************** + +E-RABModificationIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { E-RABModificationIndicationIEs} }, + ... +} + +E-RABModificationIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABToBeModifiedListBearerModInd CRITICALITY reject TYPE E-RABToBeModifiedListBearerModInd PRESENCE mandatory}| + { ID id-E-RABNotToBeModifiedListBearerModInd CRITICALITY reject TYPE E-RABNotToBeModifiedListBearerModInd PRESENCE optional}| + { ID id-CSGMembershipInfo CRITICALITY reject TYPE CSGMembershipInfo PRESENCE optional}| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}, + ... +} + +E-RABToBeModifiedListBearerModInd ::= E-RAB-IE-ContainerList { {E-RABToBeModifiedItemBearerModIndIEs} } + +E-RABToBeModifiedItemBearerModIndIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeModifiedItemBearerModInd CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModInd PRESENCE mandatory}, + ... +} + +E-RABToBeModifiedItemBearerModInd ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + dL-GTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABToBeModifiedItemBearerModInd-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeModifiedItemBearerModInd-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABNotToBeModifiedListBearerModInd ::= E-RAB-IE-ContainerList { {E-RABNotToBeModifiedItemBearerModIndIEs} } + +E-RABNotToBeModifiedItemBearerModIndIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABNotToBeModifiedItemBearerModInd CRITICALITY reject TYPE E-RABNotToBeModifiedItemBearerModInd PRESENCE mandatory}, + ... +} + +E-RABNotToBeModifiedItemBearerModInd ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + dL-GTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABNotToBeModifiedItemBearerModInd-ExtIEs} } OPTIONAL, + ... +} + +E-RABNotToBeModifiedItemBearerModInd-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CSGMembershipInfo ::= SEQUENCE { + cSGMembershipStatus CSGMembershipStatus, + cSG-Id CSG-Id, + cellAccessMode CellAccessMode OPTIONAL, + pLMNidentity PLMNidentity OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { CSGMembershipInfo-ExtIEs} } OPTIONAL, + ... +} + +CSGMembershipInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- E-RAB Modification Confirm +-- +-- ************************************************************** + +E-RABModificationConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABModificationConfirmIEs} }, + ... +} + +E-RABModificationConfirmIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABModifyListBearerModConf CRITICALITY ignore TYPE E-RABModifyListBearerModConf PRESENCE optional}| + { ID id-E-RABFailedToModifyListBearerModConf CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-E-RABToBeReleasedListBearerModConf CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}, + ... +} + +E-RABModifyListBearerModConf ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModConfIEs} } + +E-RABModifyItemBearerModConfIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABModifyItemBearerModConf CRITICALITY ignore TYPE E-RABModifyItemBearerModConf PRESENCE mandatory}, + ... +} + +E-RABModifyItemBearerModConf ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModConfExtIEs} } OPTIONAL, + ... +} + + +E-RABModifyItemBearerModConfExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- UE CONTEXT MODIFICATION INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Modification Indication +-- +-- ************************************************************** + +UEContextModificationIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationIndicationIEs} }, + ... +} + +UEContextModificationIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-CSGMembershipInfo CRITICALITY reject TYPE CSGMembershipInfo PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- UE Context Modification Confirm +-- +-- ************************************************************** + +UEContextModificationConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {UEContextModificationConfirmIEs} }, + ... +} + +UEContextModificationConfirmIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- UE CONTEXT SUSPEND ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Suspend Request +-- +-- ************************************************************** + +UEContextSuspendRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextSuspendRequestIEs} }, + ... +} + +UEContextSuspendRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-InformationOnRecommendedCellsAndENBsForPaging CRITICALITY ignore TYPE InformationOnRecommendedCellsAndENBsForPaging PRESENCE optional}| + { ID id-CellIdentifierAndCELevelForCECapableUEs CRITICALITY ignore TYPE CellIdentifierAndCELevelForCECapableUEs PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- UE Context Suspend Response +-- +-- ************************************************************** + +UEContextSuspendResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {UEContextSuspendResponseIEs} }, + ... +} + +UEContextSuspendResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- UE CONTEXT RESUME ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Resume Request +-- +-- ************************************************************** + +UEContextResumeRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextResumeRequestIEs} }, + ... +} + +UEContextResumeRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABFailedToResumeListResumeReq CRITICALITY reject TYPE E-RABFailedToResumeListResumeReq PRESENCE optional}| + { ID id-RRC-Resume-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE optional}, + ... +} + +E-RABFailedToResumeListResumeReq ::= E-RAB-IE-ContainerList { {E-RABFailedToResumeItemResumeReqIEs} } + +E-RABFailedToResumeItemResumeReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABFailedToResumeItemResumeReq CRITICALITY reject TYPE E-RABFailedToResumeItemResumeReq PRESENCE mandatory}, + ... +} + +E-RABFailedToResumeItemResumeReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { E-RABFailedToResumeItemResumeReq-ExtIEs} } OPTIONAL, + ... +} + +E-RABFailedToResumeItemResumeReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- UE Context Resume Response +-- +-- ************************************************************** + +UEContextResumeResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextResumeResponseIEs} }, + ... +} + +UEContextResumeResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABFailedToResumeListResumeRes CRITICALITY reject TYPE E-RABFailedToResumeListResumeRes PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE optional}, + ... +} + +E-RABFailedToResumeListResumeRes ::= E-RAB-IE-ContainerList { {E-RABFailedToResumeItemResumeResIEs} } + +E-RABFailedToResumeItemResumeResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABFailedToResumeItemResumeRes CRITICALITY reject TYPE E-RABFailedToResumeItemResumeRes PRESENCE mandatory}, + ... +} + +E-RABFailedToResumeItemResumeRes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { E-RABFailedToResumeItemResumeRes-ExtIEs} } OPTIONAL, + ... +} + +E-RABFailedToResumeItemResumeRes-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- UE Context Resume Failure +-- +-- ************************************************************** + +UEContextResumeFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextResumeFailureIEs} }, + ... +} + +UEContextResumeFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Connection Establishment Indication +-- +-- ************************************************************** + +ConnectionEstablishmentIndication::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ConnectionEstablishmentIndicationIEs} }, + ... +} + +ConnectionEstablishmentIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}, + ... +} + +END + + + +-- ************************************************************** +-- +-- Information Element Definitions +-- +-- ************************************************************** + +S1AP-IEs { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-IEs (2) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + id-E-RABInformationListItem, + id-E-RABItem, + id-Bearers-SubjectToStatusTransfer-Item, + id-Time-Synchronisation-Info, + id-x2TNLConfigurationInfo, + id-eNBX2ExtendedTransportLayerAddresses, + id-MDTConfiguration, + id-Time-UE-StayedInCell-EnhancedGranularity, + id-HO-Cause, + id-M3Configuration, + id-M4Configuration, + id-M5Configuration, + id-MDT-Location-Info, + id-SignallingBasedMDTPLMNList, + id-MobilityInformation, + id-ULCOUNTValueExtended, + id-DLCOUNTValueExtended, + id-ReceiveStatusOfULPDCPSDUsExtended, + id-eNBIndirectX2TransportLayerAddresses, + id-Muting-Availability-Indication, + id-Muting-Pattern-Information, + id-Synchronisation-Information, + id-uE-HistoryInformationFromTheUE, + id-LoggedMBSFNMDT, + id-SON-Information-Report, + id-RecommendedCellItem, + id-RecommendedENBItem, + id-ProSeUEtoNetworkRelaying, + id-ULCOUNTValuePDCP-SNlength18, + id-DLCOUNTValuePDCP-SNlength18, + id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18, + id-M6Configuration, + id-M7Configuration, + id-RAT-Type, + maxnoofCSGs, + maxnoofE-RABs, + maxnoofErrors, + maxnoofBPLMNs, + maxnoofPLMNsPerMME, + maxnoofTACs, + maxnoofEPLMNs, + maxnoofEPLMNsPlusOne, + maxnoofForbLACs, + maxnoofForbTACs, + maxnoofCells, + maxnoofCellID, + maxnoofEmergencyAreaID, + maxnoofTAIforWarning, + maxnoofCellinTAI, + maxnoofCellinEAI, + maxnoofeNBX2TLAs, + maxnoofeNBX2ExtTLAs, + maxnoofeNBX2GTPTLAs, + maxnoofRATs, + maxnoofGroupIDs, + maxnoofMMECs, + maxnoofTAforMDT, + maxnoofCellIDforMDT, + maxnoofMDTPLMNs, + maxnoofCellsforRestart, + maxnoofRestartTAIs, + maxnoofRestartEmergencyAreaIDs, + maxnoofMBSFNAreaMDT, + maxEARFCN, + maxnoofCellsineNB, + maxnoofRecommendedCells, + maxnoofRecommendedENBs + + + +FROM S1AP-Constants + + Criticality, + ProcedureCode, + ProtocolIE-ID, + TriggeringMessage +FROM S1AP-CommonDataTypes + + ProtocolExtensionContainer{}, + S1AP-PROTOCOL-EXTENSION, + ProtocolIE-SingleContainer{}, + S1AP-PROTOCOL-IES + +FROM S1AP-Containers; + +-- A + +Additional-GUTI::= SEQUENCE { + gUMMEI GUMMEI, + m-TMSI M-TMSI, + iE-Extensions ProtocolExtensionContainer { {Additional-GUTI-ExtIEs} } OPTIONAL, + ... +} + +Additional-GUTI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +AreaScopeOfMDT ::= CHOICE { + cellBased CellBasedMDT, + tABased TABasedMDT, + pLMNWide NULL, + ..., + tAIBased TAIBasedMDT +} + +AllocationAndRetentionPriority ::= SEQUENCE { + priorityLevel PriorityLevel, + pre-emptionCapability Pre-emptionCapability, + pre-emptionVulnerability Pre-emptionVulnerability, + iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, + ... +} + +AllocationAndRetentionPriority-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +AssistanceDataForCECapableUEs ::= SEQUENCE { + cellIdentifierAndCELevelForCECapableUEs CellIdentifierAndCELevelForCECapableUEs, + iE-Extensions ProtocolExtensionContainer { { InformationForCECapableUEs-ExtIEs} } OPTIONAL, + ... +} + +InformationForCECapableUEs-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +AssistanceDataForPaging ::= SEQUENCE { + assistanceDataForRecommendedCells AssistanceDataForRecommendedCells OPTIONAL, + assistanceDataForCECapableUEs AssistanceDataForCECapableUEs OPTIONAL, + pagingAttemptInformation PagingAttemptInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { AssistanceDataForPaging-ExtIEs} } OPTIONAL, + ... +} + +AssistanceDataForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +AssistanceDataForRecommendedCells ::= SEQUENCE { + recommendedCellsForPaging RecommendedCellsForPaging, + iE-Extensions ProtocolExtensionContainer { { AssistanceDataForRecommendedCells-ExtIEs} } OPTIONAL, + ... +} + +AssistanceDataForRecommendedCells-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- B + +Bearers-SubjectToStatusTransferList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { { Bearers-SubjectToStatusTransfer-ItemIEs } } + +Bearers-SubjectToStatusTransfer-ItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-Bearers-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE Bearers-SubjectToStatusTransfer-Item PRESENCE mandatory }, + ... +} + +Bearers-SubjectToStatusTransfer-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-COUNTvalue COUNTvalue, + dL-COUNTvalue COUNTvalue, + receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {Bearers-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL, + ... +} + +Bearers-SubjectToStatusTransfer-ItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-ULCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| + { ID id-DLCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| + { ID id-ReceiveStatusOfULPDCPSDUsExtended CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsExtended PRESENCE optional}| + { ID id-ULCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}| + { ID id-DLCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}| + { ID id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 PRESENCE optional}, + ... +} + +BearerType ::= ENUMERATED { + non-IP, + ... +} + +BitRate ::= INTEGER (0..10000000000) + +BPLMNs ::= SEQUENCE (SIZE(1.. maxnoofBPLMNs)) OF PLMNidentity + +BroadcastCancelledAreaList ::= CHOICE { + cellID-Cancelled CellID-Cancelled, + tAI-Cancelled TAI-Cancelled, + emergencyAreaID-Cancelled EmergencyAreaID-Cancelled, + ... +} + +BroadcastCompletedAreaList ::= CHOICE { + cellID-Broadcast CellID-Broadcast, + tAI-Broadcast TAI-Broadcast, + emergencyAreaID-Broadcast EmergencyAreaID-Broadcast, + ... +} + + +-- C + +CancelledCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CancelledCellinEAI-Item + +CancelledCellinEAI-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CancelledCellinEAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CancelledCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CancelledCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CancelledCellinTAI-Item + +CancelledCellinTAI-Item ::= SEQUENCE{ + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CancelledCellinTAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CancelledCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Cause ::= CHOICE { + radioNetwork CauseRadioNetwork, + transport CauseTransport, + nas CauseNas, + protocol CauseProtocol, + misc CauseMisc, + ... +} + +CauseMisc ::= ENUMERATED { + control-processing-overload, + not-enough-user-plane-processing-resources, + hardware-failure, + om-intervention, + unspecified, + unknown-PLMN, +... +} + +CauseProtocol ::= ENUMERATED { + transfer-syntax-error, + abstract-syntax-error-reject, + abstract-syntax-error-ignore-and-notify, + message-not-compatible-with-receiver-state, + semantic-error, + abstract-syntax-error-falsely-constructed-message, + unspecified, + ... +} + +CauseRadioNetwork ::= ENUMERATED { + unspecified, + tx2relocoverall-expiry, + successful-handover, + release-due-to-eutran-generated-reason, + handover-cancelled, + partial-handover, + ho-failure-in-target-EPC-eNB-or-target-system, + ho-target-not-allowed, + tS1relocoverall-expiry, + tS1relocprep-expiry, + cell-not-available, + unknown-targetID, + no-radio-resources-available-in-target-cell, + unknown-mme-ue-s1ap-id, + unknown-enb-ue-s1ap-id, + unknown-pair-ue-s1ap-id, + handover-desirable-for-radio-reason, + time-critical-handover, + resource-optimisation-handover, + reduce-load-in-serving-cell, + user-inactivity, + radio-connection-with-ue-lost, + load-balancing-tau-required, + cs-fallback-triggered, + ue-not-available-for-ps-service, + radio-resources-not-available, + failure-in-radio-interface-procedure, + invalid-qos-combination, + interrat-redirection, + interaction-with-other-procedure, + unknown-E-RAB-ID, + multiple-E-RAB-ID-instances, + encryption-and-or-integrity-protection-algorithms-not-supported, + s1-intra-system-handover-triggered, + s1-inter-system-handover-triggered, + x2-handover-triggered, + ..., + redirection-towards-1xRTT, + not-supported-QCI-value, + invalid-CSG-Id + +} + +CauseTransport ::= ENUMERATED { + transport-resource-unavailable, + unspecified, + ... +} + +CauseNas ::= ENUMERATED { + normal-release, + authentication-failure, + detach, + unspecified, + ..., + csg-subscription-expiry +} + +CellAccessMode ::= ENUMERATED { + hybrid, + ... +} + +CellIdentifierAndCELevelForCECapableUEs ::= SEQUENCE { + global-Cell-ID EUTRAN-CGI, + cELevel CELevel, + iE-Extensions ProtocolExtensionContainer { { CellIdentifierAndCELevelForCECapableUEs-ExtIEs} } OPTIONAL, + ... +} + +CellIdentifierAndCELevelForCECapableUEs-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- Coverage Enhancement level encoded according to TS 36.331 [16] -- +CELevel ::= OCTET STRING + +CE-mode-B-SupportIndicator ::= ENUMERATED { + supported, + ... +} + +CellIdentity ::= BIT STRING (SIZE (28)) + +CellID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Broadcast-Item + +CellID-Broadcast-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CellID-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +CellID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellID-Cancelled::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Cancelled-Item + +CellID-Cancelled-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CellID-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +CellID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellBasedMDT::= SEQUENCE { + cellIdListforMDT CellIdListforMDT, + iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +CellBasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF EUTRAN-CGI + +Cdma2000PDU ::= OCTET STRING + +Cdma2000RATType ::= ENUMERATED { + hRPD, + onexRTT, + ... +} + +Cdma2000SectorID ::= OCTET STRING + +Cdma2000HOStatus ::= ENUMERATED { + hOSuccess, + hOFailure, + ... +} + +Cdma2000HORequiredIndication ::= ENUMERATED { + true, + ... +} + +Cdma2000OneXSRVCCInfo ::= SEQUENCE { + cdma2000OneXMEID Cdma2000OneXMEID, + cdma2000OneXMSI Cdma2000OneXMSI, + cdma2000OneXPilot Cdma2000OneXPilot, + iE-Extensions ProtocolExtensionContainer { {Cdma2000OneXSRVCCInfo-ExtIEs} } OPTIONAL, + ... +} + +Cdma2000OneXSRVCCInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Cdma2000OneXMEID ::= OCTET STRING + +Cdma2000OneXMSI ::= OCTET STRING + +Cdma2000OneXPilot ::= OCTET STRING + +Cdma2000OneXRAND ::= OCTET STRING + + +Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ...} + +CellType ::= SEQUENCE { + cell-Size Cell-Size, + iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL, + ... +} + +CellType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CGI ::= SEQUENCE { + pLMNidentity PLMNidentity, + lAC LAC, + cI CI, + rAC RAC OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL, + ... + } + +CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CI ::= OCTET STRING (SIZE (2)) + +CNDomain ::= ENUMERATED { + ps, + cs +} + +ConcurrentWarningMessageIndicator ::= ENUMERATED { + true +} + +Correlation-ID ::= OCTET STRING (SIZE (4)) + +CSFallbackIndicator ::= ENUMERATED { + cs-fallback-required, + ..., + cs-fallback-high-priority +} + +AdditionalCSFallbackIndicator ::= ENUMERATED { + no-restriction, + restriction, + ... +} + +CSG-Id ::= BIT STRING (SIZE (27)) + + +CSG-IdList ::= SEQUENCE (SIZE (1.. maxnoofCSGs)) OF CSG-IdList-Item + +CSG-IdList-Item ::= SEQUENCE { + cSG-Id CSG-Id, + iE-Extensions ProtocolExtensionContainer { {CSG-IdList-Item-ExtIEs} } OPTIONAL, + ... +} + +CSG-IdList-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CSGMembershipStatus ::= ENUMERATED { + member, + not-member +} + + +COUNTvalue ::= SEQUENCE { + pDCP-SN PDCP-SN, + hFN HFN, + iE-Extensions ProtocolExtensionContainer { {COUNTvalue-ExtIEs} } OPTIONAL, + ... +} +COUNTvalue-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTValueExtended ::= SEQUENCE { + pDCP-SNExtended PDCP-SNExtended, + hFNModified HFNModified, + iE-Extensions ProtocolExtensionContainer { {COUNTValueExtended-ExtIEs} } OPTIONAL, + ... +} + +COUNTValueExtended-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTvaluePDCP-SNlength18 ::= SEQUENCE { + pDCP-SNlength18 PDCP-SNlength18, + hFNforPDCP-SNlength18 HFNforPDCP-SNlength18, + iE-Extensions ProtocolExtensionContainer { {COUNTvaluePDCP-SNlength18-ExtIEs} } OPTIONAL, + ... +} + +COUNTvaluePDCP-SNlength18-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-ExtIEs}} OPTIONAL, + ... +} + +CriticalityDiagnostics-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1.. maxnoofErrors)) OF CriticalityDiagnostics-IE-Item + +CriticalityDiagnostics-IE-Item ::= SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-IE-Item-ExtIEs}} OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- D + +DataCodingScheme ::= BIT STRING (SIZE (8)) + +DL-Forwarding ::= ENUMERATED { + dL-Forwarding-proposed, + ... +} + +Direct-Forwarding-Path-Availability ::= ENUMERATED { + directPathAvailable, + ... +} + +Data-Forwarding-Not-Possible ::= ENUMERATED { + data-Forwarding-not-Possible, + ... +} + +-- E + +EARFCN ::= INTEGER(0..maxEARFCN, ...) + +ECGIList ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF EUTRAN-CGI + +PWSfailedECGIList ::= SEQUENCE (SIZE(1..maxnoofCellsineNB)) OF EUTRAN-CGI + +EmergencyAreaIDList ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID + +EmergencyAreaID ::= OCTET STRING (SIZE (3)) + +EmergencyAreaID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Broadcast-Item + +EmergencyAreaID-Broadcast-Item ::= SEQUENCE { + emergencyAreaID EmergencyAreaID, + completedCellinEAI CompletedCellinEAI, + iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +EmergencyAreaID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +EmergencyAreaID-Cancelled ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Cancelled-Item + +EmergencyAreaID-Cancelled-Item ::= SEQUENCE { + emergencyAreaID EmergencyAreaID, + cancelledCellinEAI CancelledCellinEAI, + iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +EmergencyAreaID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompletedCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CompletedCellinEAI-Item + +CompletedCellinEAI-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CompletedCellinEAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CompletedCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ECGI-List ::= SEQUENCE (SIZE(1..maxnoofCellsineNB)) OF EUTRAN-CGI + +EmergencyAreaIDListForRestart ::= SEQUENCE (SIZE(1..maxnoofRestartEmergencyAreaIDs)) OF EmergencyAreaID + +ENB-ID ::= CHOICE { + macroENB-ID BIT STRING (SIZE(20)), + homeENB-ID BIT STRING (SIZE(28)), + ... +} + +GERAN-Cell-ID ::= SEQUENCE { + lAI LAI, + rAC RAC, + cI CI, + iE-Extensions ProtocolExtensionContainer { { GERAN-Cell-ID-ExtIEs} } OPTIONAL, + ... +} + +GERAN-Cell-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Global-ENB-ID ::= SEQUENCE { + pLMNidentity PLMNidentity, + eNB-ID ENB-ID, + iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL, + ... +} + +GlobalENB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +GUMMEIList::= SEQUENCE (SIZE (1.. maxnoofMMECs)) OF GUMMEI + +ENB-StatusTransfer-TransparentContainer ::= SEQUENCE { + bearers-SubjectToStatusTransferList Bearers-SubjectToStatusTransferList, + iE-Extensions ProtocolExtensionContainer { {ENB-StatusTransfer-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +ENB-StatusTransfer-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENB-UE-S1AP-ID ::= INTEGER (0..16777215) + +ENBname ::= PrintableString (SIZE (1..150,...)) + +ENBX2TLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2TLAs)) OF TransportLayerAddress + +EncryptionAlgorithms ::= BIT STRING (SIZE (16,...)) + +EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMNidentity +EventType ::= ENUMERATED { + direct, + change-of-serve-cell, + stop-change-of-serve-cell, + ... +} + +E-RAB-ID ::= INTEGER (0..15, ...) + +E-RABInformationList ::= SEQUENCE (SIZE (1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { { E-RABInformationListIEs } } + +E-RABInformationListIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABInformationListItem CRITICALITY ignore TYPE E-RABInformationListItem PRESENCE mandatory }, + ... +} + +E-RABInformationListItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-Forwarding DL-Forwarding OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABInformationListItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABInformationListItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABItemIEs} } + +E-RABItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABItem CRITICALITY ignore TYPE E-RABItem PRESENCE mandatory }, + ... +} + +E-RABItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RABItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +E-RABLevelQoSParameters ::= SEQUENCE { + qCI QCI, + allocationRetentionPriority AllocationAndRetentionPriority, + gbrQosInformation GBR-QosInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABQoSParameters-ExtIEs} } OPTIONAL, + ... +} + +E-RABQoSParameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +EUTRAN-CGI ::= SEQUENCE { + pLMNidentity PLMNidentity, + cell-ID CellIdentity, + iE-Extensions ProtocolExtensionContainer { {EUTRAN-CGI-ExtIEs} } OPTIONAL, + ... +} + +EUTRAN-CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +EUTRANRoundTripDelayEstimationInfo ::= INTEGER (0..2047) + +ExpectedUEBehaviour ::= SEQUENCE { + expectedActivity ExpectedUEActivityBehaviour OPTIONAL, + expectedHOInterval ExpectedHOInterval OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ExpectedUEBehaviour-ExtIEs} } OPTIONAL, + ... +} + +ExpectedUEBehaviour-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ExpectedUEActivityBehaviour ::= SEQUENCE { + expectedActivityPeriod ExpectedActivityPeriod OPTIONAL, + expectedIdlePeriod ExpectedIdlePeriod OPTIONAL, + sourceofUEActivityBehaviourInformation SourceOfUEActivityBehaviourInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ExpectedUEActivityBehaviour-ExtIEs} } OPTIONAL, + ... +} + +ExpectedUEActivityBehaviour-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ExpectedActivityPeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) + +ExpectedIdlePeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) + +SourceOfUEActivityBehaviourInformation ::= ENUMERATED { + subscription-information, + statistics, + ... +} + +ExpectedHOInterval ::= ENUMERATED { + sec15, sec30, sec60, sec90, sec120, sec180, long-time, + ... +} + +ExtendedRNC-ID ::= INTEGER (4096..65535) + +ExtendedRepetitionPeriod ::= INTEGER (4096..131071) + +Extended-UEIdentityIndexValue ::= BIT STRING (SIZE (14)) + +-- F + +ForbiddenInterRATs ::= ENUMERATED { + all, + geran, + utran, + cdma2000, + ..., + geranandutran, + cdma2000andutran + +} + +ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item + +ForbiddenTAs-Item ::= SEQUENCE { + pLMN-Identity PLMNidentity, + forbiddenTACs ForbiddenTACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC + +ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item + +ForbiddenLAs-Item ::= SEQUENCE { + pLMN-Identity PLMNidentity, + forbiddenLACs ForbiddenLACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenLAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC + +-- G + +GBR-QosInformation ::= SEQUENCE { + e-RAB-MaximumBitrateDL BitRate, + e-RAB-MaximumBitrateUL BitRate, + e-RAB-GuaranteedBitrateDL BitRate, + e-RAB-GuaranteedBitrateUL BitRate, + iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL, + ... +} + +GBR-QosInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +GTP-TEID ::= OCTET STRING (SIZE (4)) + +GUMMEI ::= SEQUENCE { + pLMN-Identity PLMNidentity, + mME-Group-ID MME-Group-ID, + mME-Code MME-Code, + iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, + ... +} + +GUMMEI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +GUMMEIType ::= ENUMERATED { + native, + mapped, + ... +} + +GWContextReleaseIndication ::= ENUMERATED { + true, + ... +} + +-- H + +HandoverRestrictionList ::= SEQUENCE { + servingPLMN PLMNidentity, + equivalentPLMNs EPLMNs OPTIONAL, + forbiddenTAs ForbiddenTAs OPTIONAL, + forbiddenLAs ForbiddenLAs OPTIONAL, + forbiddenInterRATs ForbiddenInterRATs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, + ... +} + +HandoverRestrictionList-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +HandoverType ::= ENUMERATED { + intralte, + ltetoutran, + ltetogeran, + utrantolte, + gerantolte, + ... +} + +HFN ::= INTEGER (0..1048575) + +HFNModified ::= INTEGER (0..131071) + +HFNforPDCP-SNlength18 ::= INTEGER (0..16383) + +-- I + +Masked-IMEISV ::= BIT STRING (SIZE (64)) + +ImmediateMDT ::= SEQUENCE { + measurementsToActivate MeasurementsToActivate, + m1reportingTrigger M1ReportingTrigger, + m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL, +-- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1 + m1periodicReporting M1PeriodicReporting OPTIONAL, +-- Included in case of periodic or event-triggered periodic reporting + iE-Extensions ProtocolExtensionContainer { { ImmediateMDT-ExtIEs} } OPTIONAL, + ... +} + +ImmediateMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-M3Configuration CRITICALITY ignore EXTENSION M3Configuration PRESENCE conditional}| + { ID id-M4Configuration CRITICALITY ignore EXTENSION M4Configuration PRESENCE conditional}| + { ID id-M5Configuration CRITICALITY ignore EXTENSION M5Configuration PRESENCE conditional}| + { ID id-MDT-Location-Info CRITICALITY ignore EXTENSION MDT-Location-Info PRESENCE optional}| + { ID id-M6Configuration CRITICALITY ignore EXTENSION M6Configuration PRESENCE conditional}| + { ID id-M7Configuration CRITICALITY ignore EXTENSION M7Configuration PRESENCE conditional}, + ... +} + +IMSI ::= OCTET STRING (SIZE (3..8)) + +InformationOnRecommendedCellsAndENBsForPaging ::= SEQUENCE { + recommendedCellsForPaging RecommendedCellsForPaging, + recommendENBsForPaging RecommendedENBsForPaging, + iE-Extensions ProtocolExtensionContainer { { InformationOnRecommendedCellsAndENBsForPaging-ExtIEs} } OPTIONAL, + ... +} + +InformationOnRecommendedCellsAndENBsForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...)) + +IntendedNumberOfPagingAttempts ::= INTEGER (1..16, ...) + +InterfacesToTrace ::= BIT STRING (SIZE (8)) + + + +-- J +-- K + +KillAllWarningMessages ::= ENUMERATED {true} + +-- L + + +LAC ::= OCTET STRING (SIZE (2)) + +LAI ::= SEQUENCE { + pLMNidentity PLMNidentity, + lAC LAC, + iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL, + ... +} + +LAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +LastVisitedCell-Item ::= CHOICE { + e-UTRAN-Cell LastVisitedEUTRANCellInformation, + uTRAN-Cell LastVisitedUTRANCellInformation, + gERAN-Cell LastVisitedGERANCellInformation, + ... +} +LastVisitedEUTRANCellInformation ::= SEQUENCE { + global-Cell-ID EUTRAN-CGI, + cellType CellType, + time-UE-StayedInCell Time-UE-StayedInCell, + iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, + ... +} +LastVisitedEUTRANCellInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Rel-11 to support enhanced granularity for time UE stayed in cell -- + { ID id-Time-UE-StayedInCell-EnhancedGranularity CRITICALITY ignore EXTENSION Time-UE-StayedInCell-EnhancedGranularity PRESENCE optional}| + { ID id-HO-Cause CRITICALITY ignore EXTENSION Cause PRESENCE optional}, + ... +} +LastVisitedUTRANCellInformation ::= OCTET STRING + +LastVisitedGERANCellInformation ::= CHOICE { + undefined NULL, + ... +} + +L3-Information ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +LPPa-PDU ::= OCTET STRING + +LHN-ID ::= OCTET STRING(SIZE (32..256)) + +Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...} + +ListeningSubframePattern ::= SEQUENCE { + pattern-period ENUMERATED {ms1280, ms2560, ms5120, ms10240, ...}, + pattern-offset INTEGER (0..10239, ...), + iE-Extensions ProtocolExtensionContainer { { ListeningSubframePattern-ExtIEs} } OPTIONAL, + ... +} + +ListeningSubframePattern-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +... +} + +LoggedMDT ::= SEQUENCE { + loggingInterval LoggingInterval, + loggingDuration LoggingDuration, + iE-Extensions ProtocolExtensionContainer { {LoggedMDT-ExtIEs} } OPTIONAL, + ... +} + +LoggedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +... +} + +LoggingInterval ::= ENUMERATED {ms128, ms256, ms512, ms1024, ms2048, ms3072, ms4096, ms6144} + +LoggingDuration ::= ENUMERATED {m10, m20, m40, m60, m90, m120} + +LoggedMBSFNMDT ::= SEQUENCE { + loggingInterval LoggingInterval, + loggingDuration LoggingDuration, + mBSFN-ResultToLog MBSFN-ResultToLog OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { LoggedMBSFNMDT-ExtIEs } } OPTIONAL, + ... +} + +LoggedMBSFNMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- M + +M3Configuration ::= SEQUENCE { + m3period M3period, + iE-Extensions ProtocolExtensionContainer { { M3Configuration-ExtIEs} } OPTIONAL, + ... +} + +M3Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M3period ::= ENUMERATED {ms100, ms1000, ms10000, ... } + +M4Configuration ::= SEQUENCE { + m4period M4period, + m4-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M4Configuration-ExtIEs} } OPTIONAL, + ... +} + +M4Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + +M5Configuration ::= SEQUENCE { + m5period M5period, + m5-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M5Configuration-ExtIEs} } OPTIONAL, + ... +} + +M5Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + +M6Configuration ::= SEQUENCE { + m6report-Interval M6report-Interval, + m6delay-threshold M6delay-threshold OPTIONAL, +-- This IE shall be present if the M6 Links to log IE is set to “uplink” or to “both-uplink-and-downlink” -- + m6-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M6Configuration-ExtIEs} } OPTIONAL, + ... +} + +M6Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M6report-Interval ::= ENUMERATED { ms1024, ms2048, ms5120, ms10240, ... } + +M6delay-threshold ::= ENUMERATED { ms30, ms40, ms50, ms60, ms70, ms80, ms90, ms100, ms150, ms300, ms500, ms750, ... } + +M7Configuration ::= SEQUENCE { + m7period M7period, + m7-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M7Configuration-ExtIEs} } OPTIONAL, + ... +} + +M7Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M7period ::= INTEGER(1..60, ...) + +MDT-Activation ::= ENUMERATED { + immediate-MDT-only, + immediate-MDT-and-Trace, + logged-MDT-only, + ..., + logged-MBSFN-MDT +} + +MDT-Location-Info ::= BIT STRING (SIZE (8)) + +MDT-Configuration ::= SEQUENCE { + mdt-Activation MDT-Activation, + areaScopeOfMDT AreaScopeOfMDT, + mDTMode MDTMode, + iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTIONAL, + ... +} +MDT-Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-SignallingBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional }, + ... +} + +ManagementBasedMDTAllowed ::= ENUMERATED {allowed, ...} + +MBSFN-ResultToLog ::= SEQUENCE (SIZE(1..maxnoofMBSFNAreaMDT)) OF MBSFN-ResultToLogInfo + +MBSFN-ResultToLogInfo ::= SEQUENCE { + mBSFN-AreaId INTEGER (0..255) OPTIONAL, + carrierFreq EARFCN, + iE-Extensions ProtocolExtensionContainer { { MBSFN-ResultToLogInfo-ExtIEs} } OPTIONAL, + ... +} + +MBSFN-ResultToLogInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMNidentity + +PrivacyIndicator ::= ENUMERATED { + immediate-MDT, + logged-MDT, + ... +} + +MDTMode ::= CHOICE { + immediateMDT ImmediateMDT, + loggedMDT LoggedMDT, + ..., + mDTMode-Extension MDTMode-Extension +} + +MDTMode-Extension ::= ProtocolIE-SingleContainer {{ MDTMode-ExtensionIE }} + +MDTMode-ExtensionIE S1AP-PROTOCOL-IES ::= { + { ID id-LoggedMBSFNMDT CRITICALITY ignore TYPE LoggedMBSFNMDT PRESENCE mandatory} +} + +MeasurementsToActivate ::= BIT STRING (SIZE (8)) + +MeasurementThresholdA2 ::= CHOICE { + threshold-RSRP Threshold-RSRP, + threshold-RSRQ Threshold-RSRQ, + ... +} + +MessageIdentifier ::= BIT STRING (SIZE (16)) + +MobilityInformation ::= BIT STRING (SIZE(32)) + +MMEname ::= PrintableString (SIZE (1..150,...)) + +MMEPagingTarget ::= CHOICE { + global-ENB-ID Global-ENB-ID, + tAI TAI, + ... +} + +MMERelaySupportIndicator ::= ENUMERATED {true, ...} + +MME-Group-ID ::= OCTET STRING (SIZE (2)) + +MME-Code ::= OCTET STRING (SIZE (1)) + +MME-UE-S1AP-ID ::= INTEGER (0..4294967295) +M-TMSI ::= OCTET STRING (SIZE (4)) + +MSClassmark2 ::= OCTET STRING +MSClassmark3 ::= OCTET STRING + +MutingAvailabilityIndication ::= ENUMERATED { + available, + unavailable, + ... +} + + +MutingPatternInformation ::= SEQUENCE { + muting-pattern-period ENUMERATED {ms0, ms1280, ms2560, ms5120, ms10240, ...}, + muting-pattern-offset INTEGER (0..10239, ...) OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {MutingPatternInformation-ExtIEs} } OPTIONAL, + ... +} + +MutingPatternInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- N + +NAS-PDU ::= OCTET STRING + +NASSecurityParametersfromE-UTRAN ::= OCTET STRING + +NASSecurityParameterstoE-UTRAN ::= OCTET STRING + +NB-IoT-DefaultPagingDRX ::= ENUMERATED { + v128, + v256, + v512, + v1024, + ... + } + +NB-IoT-Paging-eDRXInformation ::= SEQUENCE { + nB-IoT-paging-eDRX-Cycle NB-IoT-Paging-eDRX-Cycle, + nB-IoT-pagingTimeWindow NB-IoT-PagingTimeWindow OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { NB-IoT-Paging-eDRXInformation-ExtIEs} } OPTIONAL, + ... +} + +NB-IoT-Paging-eDRXInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +NB-IoT-Paging-eDRX-Cycle ::= ENUMERATED{hf2, hf4, hf6, hf8, hf10, hf12, hf14, hf16, hf32, hf64, hf128, hf256, hf512, hf1024, ...} + +NB-IoT-PagingTimeWindow ::= ENUMERATED{s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, ...} + +NB-IoT-UEIdentityIndexValue ::= BIT STRING (SIZE (12)) + +NextPagingAreaScope ::= ENUMERATED { + same, + changed, + ... +} + +NumberofBroadcastRequest ::= INTEGER (0..65535) + +NumberOfBroadcasts ::= INTEGER (0..65535) + +-- O +OldBSS-ToNewBSS-Information ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +OverloadAction ::= ENUMERATED { + reject-non-emergency-mo-dt, + reject-rrc-cr-signalling, + permit-emergency-sessions-and-mobile-terminated-services-only, + ..., + permit-high-priority-sessions-and-mobile-terminated-services-only, + reject-delay-tolerant-access, + permit-high-priority-sessions-and-exception-reporting-and-mobile-terminated-services-only +} + +OverloadResponse ::= CHOICE { + overloadAction OverloadAction, + ... +} + + +-- P + +PagingAttemptInformation ::= SEQUENCE { + pagingAttemptCount PagingAttemptCount, + intendedNumberOfPagingAttempts IntendedNumberOfPagingAttempts, + nextPagingAreaScope NextPagingAreaScope OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { PagingAttemptInformation-ExtIEs} } OPTIONAL, + ... +} + +PagingAttemptInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +PagingAttemptCount ::= INTEGER (1..16, ...) + +Paging-eDRXInformation ::= SEQUENCE { + paging-eDRX-Cycle Paging-eDRX-Cycle, + pagingTimeWindow PagingTimeWindow OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { Paging-eDRXInformation-ExtIEs} } OPTIONAL, + ... +} + +Paging-eDRXInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Paging-eDRX-Cycle ::= ENUMERATED{hfhalf, hf1, hf2, hf4, hf6, hf8, hf10, hf12, hf14, hf16, hf32, hf64, hf128, hf256, ...} + +PagingTimeWindow ::= ENUMERATED{s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, ...} + +PagingDRX ::= ENUMERATED { + v32, + v64, + v128, + v256, + ... + } + +PagingPriority ::= ENUMERATED { + priolevel1, + priolevel2, + priolevel3, + priolevel4, + priolevel5, + priolevel6, + priolevel7, + priolevel8, + ... +} + +PDCP-SN ::= INTEGER (0..4095) + +PDCP-SNExtended ::= INTEGER (0..32767) + +PDCP-SNlength18 ::= INTEGER (0..262143) + +M1PeriodicReporting ::= SEQUENCE { + reportInterval ReportIntervalMDT, + reportAmount ReportAmountMDT, + iE-Extensions ProtocolExtensionContainer { { M1PeriodicReporting-ExtIEs} } OPTIONAL, + ... +} + +M1PeriodicReporting-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +PLMNidentity ::= TBCD-STRING + +Port-Number ::= OCTET STRING (SIZE (2)) + +Pre-emptionCapability ::= ENUMERATED { + shall-not-trigger-pre-emption, + may-trigger-pre-emption +} + +Pre-emptionVulnerability ::= ENUMERATED { + not-pre-emptable, + pre-emptable +} + +PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) + +ProSeAuthorized ::= SEQUENCE { + proSeDirectDiscovery ProSeDirectDiscovery OPTIONAL, + proSeDirectCommunication ProSeDirectCommunication OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ProSeAuthorized-ExtIEs} } OPTIONAL, + ... +} + +ProSeAuthorized-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-ProSeUEtoNetworkRelaying CRITICALITY ignore EXTENSION ProSeUEtoNetworkRelaying PRESENCE optional}, + ... +} + +ProSeDirectDiscovery ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +ProSeUEtoNetworkRelaying ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +ProSeDirectCommunication ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +PS-ServiceNotAvailable ::= ENUMERATED { + ps-service-not-available, + ... +} + +-- Q + +QCI ::= INTEGER (0..255) + +-- R + +ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) + +ReceiveStatusOfULPDCPSDUsExtended ::= BIT STRING (SIZE(1..16384)) + +ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ::= BIT STRING (SIZE(1..131072)) + +RecommendedCellsForPaging ::= SEQUENCE { + recommendedCellList RecommendedCellList, + iE-Extensions ProtocolExtensionContainer { { RecommendedCellsForPaging-ExtIEs} } OPTIONAL, + ... +} + +RecommendedCellsForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RecommendedCellList ::= SEQUENCE (SIZE(1.. maxnoofRecommendedCells)) OF ProtocolIE-SingleContainer { { RecommendedCellItemIEs } } + +RecommendedCellItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-RecommendedCellItem CRITICALITY ignore TYPE RecommendedCellItem PRESENCE mandatory }, + ... +} + +RecommendedCellItem::= SEQUENCE { + eUTRAN-CGI EUTRAN-CGI, + timeStayedInCell INTEGER (0..4095) OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { RecommendedCellsForPagingItem-ExtIEs} } OPTIONAL, + ... +} + +RecommendedCellsForPagingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RecommendedENBsForPaging ::= SEQUENCE { + recommendedENBList RecommendedENBList, + iE-Extensions ProtocolExtensionContainer { { RecommendedENBsForPaging-ExtIEs} } OPTIONAL, + ... +} + +RecommendedENBsForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RecommendedENBList::= SEQUENCE (SIZE(1.. maxnoofRecommendedENBs)) OF ProtocolIE-SingleContainer { { RecommendedENBItemIEs } } + +RecommendedENBItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-RecommendedENBItem CRITICALITY ignore TYPE RecommendedENBItem PRESENCE mandatory }, + ... +} + +RecommendedENBItem ::= SEQUENCE { + mMEPagingTarget MMEPagingTarget, + iE-Extensions ProtocolExtensionContainer { { RecommendedENBItem-ExtIEs} } OPTIONAL, + ... +} + +RecommendedENBItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RelativeMMECapacity ::= INTEGER (0..255) + +RelayNode-Indicator ::= ENUMERATED { + true, + ... +} + +RAC ::= OCTET STRING (SIZE (1)) + +RAT-Type ::= ENUMERATED { + nbiot, + ... +} + +ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity} + +ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60} + +M1ReportingTrigger ::= ENUMERATED{ + periodic, + a2eventtriggered, + ..., + a2eventtriggered-periodic +} + +RequestType ::= SEQUENCE { + eventType EventType, + reportArea ReportArea, + iE-Extensions ProtocolExtensionContainer { { RequestType-ExtIEs} } OPTIONAL, + ... +} + + +RequestType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RIMTransfer ::= SEQUENCE { + rIMInformation RIMInformation, + rIMRoutingAddress RIMRoutingAddress OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { RIMTransfer-ExtIEs} } OPTIONAL, + ... +} + +RIMTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RIMInformation ::= OCTET STRING + +RIMRoutingAddress ::= CHOICE { + gERAN-Cell-ID GERAN-Cell-ID, + ..., + targetRNC-ID TargetRNC-ID, + eHRPD-Sector-ID OCTET STRING (SIZE(16)) +} + +ReportArea ::= ENUMERATED { + ecgi, + ... +} + +RepetitionPeriod ::= INTEGER (0..4095) + +RLFReportInformation ::= SEQUENCE { + uE-RLF-Report-Container UE-RLF-Report-Container, + uE-RLF-Report-Container-for-extended-bands UE-RLF-Report-Container-for-extended-bands OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{ RLFReportInformation-ExtIEs}} OPTIONAL, + ... +} + +RLFReportInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RNC-ID ::= INTEGER (0..4095) + +RRC-Container ::= OCTET STRING + +RRC-Establishment-Cause ::= ENUMERATED { + emergency, + highPriorityAccess, + mt-Access, + mo-Signalling, + mo-Data, + ..., + delay-TolerantAccess, + mo-VoiceCall, + mo-ExceptionData +} + +ECGIListForRestart ::= SEQUENCE (SIZE(1..maxnoofCellsforRestart)) OF EUTRAN-CGI + +Routing-ID ::= INTEGER (0..255) + +-- S + + +SecurityKey ::= BIT STRING (SIZE(256)) + + + +SecurityContext ::= SEQUENCE { + nextHopChainingCount INTEGER (0..7), + nextHopParameter SecurityKey, + iE-Extensions ProtocolExtensionContainer { { SecurityContext-ExtIEs} } OPTIONAL, + ... +} + + +SecurityContext-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +SerialNumber ::= BIT STRING (SIZE (16)) + +SONInformation ::= CHOICE{ + sONInformationRequest SONInformationRequest, + sONInformationReply SONInformationReply, + ... +-- ..., +-- sONInformation-Extension SONInformation-Extension +} + +SONInformation-Extension ::= ProtocolIE-SingleContainer {{ SONInformation-ExtensionIE }} + +SONInformation-ExtensionIE S1AP-PROTOCOL-IES ::= { + { ID id-SON-Information-Report CRITICALITY ignore TYPE SONInformationReport PRESENCE mandatory} +} + +SONInformationRequest ::= ENUMERATED { + x2TNL-Configuration-Info, + ..., + time-Synchronisation-Info, + activate-Muting, + deactivate-Muting} + +SONInformationReply ::= SEQUENCE { + x2TNLConfigurationInfo X2TNLConfigurationInfo OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{SONInformationReply-ExtIEs}} OPTIONAL, + ... +} + +SONInformationReply-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Release 9 to transfer Time synchronisation information -- + {ID id-Time-Synchronisation-Info CRITICALITY ignore EXTENSION TimeSynchronisationInfo PRESENCE optional}, + ..., + {ID id-Muting-Pattern-Information CRITICALITY ignore EXTENSION MutingPatternInformation PRESENCE optional} +} + +SONInformationReport ::= CHOICE{ + rLFReportInformation RLFReportInformation, + ... +} + +SONConfigurationTransfer ::= SEQUENCE { + targeteNB-ID TargeteNB-ID, + sourceeNB-ID SourceeNB-ID, + sONInformation SONInformation, + iE-Extensions ProtocolExtensionContainer { { SONConfigurationTransfer-ExtIEs} } OPTIONAL, +... +} + +SONConfigurationTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Release 10 to transfer the IP addresses of the eNB initiating the ANR action -- + {ID id-x2TNLConfigurationInfo CRITICALITY ignore EXTENSION X2TNLConfigurationInfo PRESENCE conditional + -- This IE shall be present if the SON Information IE contains the SON Information Request IE and the SON Information Request IE is set to “X2TNL Configuration Info” --}| +-- Extension for Release 12 to transfer information concerning the source cell of synchronisation and the aggressor cell -- + {ID id-Synchronisation-Information CRITICALITY ignore EXTENSION SynchronisationInformation PRESENCE conditional + -- This IE shall be present if the SON Information IE contains the SON Information Request IE set to “ Activate Muting ” --}, + ... +} + + +SynchronisationInformation ::= SEQUENCE { + sourceStratumLevel StratumLevel OPTIONAL, + listeningSubframePattern ListeningSubframePattern OPTIONAL, + aggressoreCGI-List ECGI-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {SynchronisationInformation-ExtIEs} } OPTIONAL, + ... +} + +SynchronisationInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +Source-ToTarget-TransparentContainer ::= OCTET STRING +-- This IE includes a transparent container from the source RAN node to the target RAN node. +-- The octets of the OCTET STRING are encoded according to the specifications of the target system. + +SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +SourceeNB-ID ::= SEQUENCE { + global-ENB-ID Global-ENB-ID, + selected-TAI TAI, + iE-Extensions ProtocolExtensionContainer { {SourceeNB-ID-ExtIEs} } OPTIONAL +} + +SourceeNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +SRVCCOperationNotPossible ::= ENUMERATED { + notPossible, + ... +} + +SRVCCOperationPossible ::= ENUMERATED { + possible, + ... +} + +SRVCCHOIndication ::= ENUMERATED { + pSandCS, + cSonly, + ... +} + +SourceeNB-ToTargeteNB-TransparentContainer ::= SEQUENCE { + rRC-Container RRC-Container, + e-RABInformationList E-RABInformationList OPTIONAL, + targetCell-ID EUTRAN-CGI, + subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, + uE-HistoryInformation UE-HistoryInformation, + iE-Extensions ProtocolExtensionContainer { {SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + {ID id-MobilityInformation CRITICALITY ignore EXTENSION MobilityInformation PRESENCE optional}| + {ID id-uE-HistoryInformationFromTheUE CRITICALITY ignore EXTENSION UE-HistoryInformationFromTheUE PRESENCE optional}, + ... +} + + +SourceRNC-ToTargetRNC-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + + +ServedGUMMEIs ::= SEQUENCE (SIZE (1.. maxnoofRATs)) OF ServedGUMMEIsItem + +ServedGUMMEIsItem ::= SEQUENCE { + servedPLMNs ServedPLMNs, + servedGroupIDs ServedGroupIDs, + servedMMECs ServedMMECs, + iE-Extensions ProtocolExtensionContainer { {ServedGUMMEIsItem-ExtIEs} } OPTIONAL, + ... +} + +ServedGUMMEIsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedGroupIDs ::= SEQUENCE (SIZE(1.. maxnoofGroupIDs)) OF MME-Group-ID +ServedMMECs ::= SEQUENCE (SIZE(1.. maxnoofMMECs)) OF MME-Code + +ServedPLMNs ::= SEQUENCE (SIZE(1.. maxnoofPLMNsPerMME)) OF PLMNidentity + +SubscriberProfileIDforRFP ::= INTEGER (1..256) + +SupportedTAs ::= SEQUENCE (SIZE(1.. maxnoofTACs)) OF SupportedTAs-Item + +SupportedTAs-Item ::= SEQUENCE { + tAC TAC, + broadcastPLMNs BPLMNs, + iE-Extensions ProtocolExtensionContainer { {SupportedTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +SupportedTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + -- Extension for Release 13 to transfer RAT-Type per TAC -- + {ID id-RAT-Type CRITICALITY reject EXTENSION RAT-Type PRESENCE optional}, + ... +} + +StratumLevel ::= INTEGER (0..3, ...) + +SynchronisationStatus ::= ENUMERATED { synchronous, asynchronous, ... } + +TimeSynchronisationInfo ::= SEQUENCE { + stratumLevel StratumLevel, + synchronisationStatus SynchronisationStatus, + iE-Extensions ProtocolExtensionContainer { { TimeSynchronisationInfo-ExtIEs} } OPTIONAL, + ... +} + +TimeSynchronisationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + -- Extension for Release 12 to transfer Muting Availability Indication -- + {ID id-Muting-Availability-Indication CRITICALITY ignore EXTENSION MutingAvailabilityIndication PRESENCE optional}, + ... +} + +S-TMSI ::= SEQUENCE { + mMEC MME-Code, + m-TMSI M-TMSI, + iE-Extensions ProtocolExtensionContainer { {S-TMSI-ExtIEs} } OPTIONAL, + ... +} + +S-TMSI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- T + +TAC ::= OCTET STRING (SIZE (2)) + +TAIBasedMDT ::= SEQUENCE { + tAIListforMDT TAIListforMDT, + iE-Extensions ProtocolExtensionContainer { {TAIBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TAIBasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAIListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAI + +TAIListforWarning ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI + +TAI ::= SEQUENCE { + pLMNidentity PLMNidentity, + tAC TAC, + iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL, + ... +} + +TAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAI-Broadcast ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Broadcast-Item + +TAI-Broadcast-Item ::= SEQUENCE { + tAI TAI, + completedCellinTAI CompletedCellinTAI, + iE-Extensions ProtocolExtensionContainer { {TAI-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAI-Cancelled ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Cancelled-Item + +TAI-Cancelled-Item ::= SEQUENCE { + tAI TAI, + cancelledCellinTAI CancelledCellinTAI, + iE-Extensions ProtocolExtensionContainer { {TAI-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TABasedMDT ::= SEQUENCE { + tAListforMDT TAListforMDT, + iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TABasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC + +CompletedCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CompletedCellinTAI-Item + +CompletedCellinTAI-Item ::= SEQUENCE{ + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CompletedCellinTAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CompletedCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TBCD-STRING ::= OCTET STRING (SIZE (3)) + +TargetID ::= CHOICE { + targeteNB-ID TargeteNB-ID, + targetRNC-ID TargetRNC-ID, + cGI CGI, + ... +} + +TargeteNB-ID ::= SEQUENCE { + global-ENB-ID Global-ENB-ID, + selected-TAI TAI, + iE-Extensions ProtocolExtensionContainer { {TargeteNB-ID-ExtIEs} } OPTIONAL, + ... +} + +TargeteNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TargetRNC-ID ::= SEQUENCE { + lAI LAI, + rAC RAC OPTIONAL, + rNC-ID RNC-ID, + extendedRNC-ID ExtendedRNC-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL, + ... + } + + +TargetRNC-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +TargeteNB-ToSourceeNB-TransparentContainer ::= SEQUENCE { + rRC-Container RRC-Container, + iE-Extensions ProtocolExtensionContainer { {TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Target-ToSource-TransparentContainer ::= OCTET STRING +-- This IE includes a transparent container from the target RAN node to the source RAN node. +-- The octets of the OCTET STRING are coded according to the specifications of the target system. + +TargetRNC-ToSourceRNC-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +TargetBSS-ToSourceBSS-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +M1ThresholdEventA2 ::= SEQUENCE { + measurementThreshold MeasurementThresholdA2, + iE-Extensions ProtocolExtensionContainer { { M1ThresholdEventA2-ExtIEs} } OPTIONAL, + ... +} + +M1ThresholdEventA2-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Threshold-RSRP ::= INTEGER(0..97) + +Threshold-RSRQ ::= INTEGER(0..34) + +TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...} + +Time-UE-StayedInCell ::= INTEGER (0..4095) + +Time-UE-StayedInCell-EnhancedGranularity ::= INTEGER (0..40950) + +TransportInformation ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + uL-GTP-TEID GTP-TEID, + ... +} + +TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) + +TraceActivation ::= SEQUENCE { + e-UTRAN-Trace-ID E-UTRAN-Trace-ID, + interfacesToTrace InterfacesToTrace, + traceDepth TraceDepth, + traceCollectionEntityIPAddress TransportLayerAddress, + iE-Extensions ProtocolExtensionContainer { { TraceActivation-ExtIEs} } OPTIONAL, + ... +} + +TraceActivation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Rel-10 to support MDT -- + { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional }, + ... +} + +TraceDepth ::= ENUMERATED { + minimum, + medium, + maximum, + minimumWithoutVendorSpecificExtension, + mediumWithoutVendorSpecificExtension, + maximumWithoutVendorSpecificExtension, + ... +} + +E-UTRAN-Trace-ID ::= OCTET STRING (SIZE (8)) + +TrafficLoadReductionIndication ::= INTEGER (1..99) + +TunnelInformation ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + uDP-Port-Number Port-Number OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {Tunnel-Information-ExtIEs} } OPTIONAL, + ... +} + +Tunnel-Information-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + +TAIListForRestart ::= SEQUENCE (SIZE(1..maxnoofRestartTAIs)) OF TAI + +-- U + +UEAggregateMaximumBitrate ::= SEQUENCE { + uEaggregateMaximumBitRateDL BitRate, + uEaggregateMaximumBitRateUL BitRate, + iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrates-ExtIEs} } OPTIONAL, + ... +} + +UEAggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UE-RetentionInformation ::= ENUMERATED { + ues-retained, + ...} + +UE-S1AP-IDs ::= CHOICE{ + uE-S1AP-ID-pair UE-S1AP-ID-pair, + mME-UE-S1AP-ID MME-UE-S1AP-ID, + ... +} + +UE-S1AP-ID-pair ::= SEQUENCE{ + mME-UE-S1AP-ID MME-UE-S1AP-ID, + eNB-UE-S1AP-ID ENB-UE-S1AP-ID, + iE-Extensions ProtocolExtensionContainer { {UE-S1AP-ID-pair-ExtIEs} } OPTIONAL, + ... +} +UE-S1AP-ID-pair-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +UE-associatedLogicalS1-ConnectionItem ::= SEQUENCE { + mME-UE-S1AP-ID MME-UE-S1AP-ID OPTIONAL, + eNB-UE-S1AP-ID ENB-UE-S1AP-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { UE-associatedLogicalS1-ConnectionItemExtIEs} } OPTIONAL, + ... +} + + +UE-associatedLogicalS1-ConnectionItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UEIdentityIndexValue ::= BIT STRING (SIZE (10)) + +UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item + +UE-HistoryInformationFromTheUE ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the VisitedCellInfoList field contained in the UEInformationResponse message as defined in TS 36.331 [16] + +UEPagingID ::= CHOICE { + s-TMSI S-TMSI, + iMSI IMSI, + ... + } + +UERadioCapability ::= OCTET STRING + +UERadioCapabilityForPaging ::= OCTET STRING + +UE-RLF-Report-Container ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the rlf-Report-r9 field contained in the UEInformationResponse message as defined in TS 36.331 [16] + +UE-RLF-Report-Container-for-extended-bands ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the rlf-Report-v9e0 contained in the UEInformationResponse message as defined in TS 36.331 [16] + +UESecurityCapabilities ::= SEQUENCE { + encryptionAlgorithms EncryptionAlgorithms, + integrityProtectionAlgorithms IntegrityProtectionAlgorithms, + iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL, +... +} + +UESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UE-Usage-Type ::= INTEGER (0..255) + +UserLocationInformation ::= SEQUENCE { + eutran-cgi EUTRAN-CGI, + tai TAI, + iE-Extensions ProtocolExtensionContainer { { UserLocationInformation-ExtIEs} } OPTIONAL, + ... +} + +UserLocationInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UEUserPlaneCIoTSupportIndicator ::= ENUMERATED { + supported, + ... +} + +-- V + +VoiceSupportMatchIndicator ::= ENUMERATED { + supported, + not-supported, + ... +} + +-- W + +WarningAreaList ::= CHOICE { + cellIDList ECGIList, + trackingAreaListforWarning TAIListforWarning, + emergencyAreaIDList EmergencyAreaIDList, + ... +} + + +WarningType ::= OCTET STRING (SIZE (2)) + +WarningSecurityInfo ::= OCTET STRING (SIZE (50)) + + +WarningMessageContents ::= OCTET STRING (SIZE(1..9600)) + + +-- X + + +X2TNLConfigurationInfo ::= SEQUENCE { + eNBX2TransportLayerAddresses ENBX2TLAs, + iE-Extensions ProtocolExtensionContainer { { X2TNLConfigurationInfo-ExtIEs} } OPTIONAL, + ... +} + +X2TNLConfigurationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Release 10 to transfer the IPsec and U-plane addresses during ANR action -- + {ID id-eNBX2ExtendedTransportLayerAddresses CRITICALITY ignore EXTENSION ENBX2ExtTLAs PRESENCE optional}| +-- Extension for Release 12 to transfer the IP addresses of the X2 GW -- + {ID id-eNBIndirectX2TransportLayerAddresses CRITICALITY ignore EXTENSION ENBIndirectX2TransportLayerAddresses PRESENCE optional}, + ... +} + +ENBX2ExtTLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2ExtTLAs)) OF ENBX2ExtTLA + +ENBX2ExtTLA ::= SEQUENCE { + iPsecTLA TransportLayerAddress OPTIONAL, + gTPTLAa ENBX2GTPTLAs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ENBX2ExtTLA-ExtIEs} } OPTIONAL, + ... +} + +ENBX2ExtTLA-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENBX2GTPTLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2GTPTLAs)) OF TransportLayerAddress + +ENBIndirectX2TransportLayerAddresses ::= SEQUENCE (SIZE(1..maxnoofeNBX2TLAs)) OF TransportLayerAddress + +-- Y +-- Z + +END + + + +-- ************************************************************** +-- +-- Common definitions +-- +-- ************************************************************** + +S1AP-CommonDataTypes { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-CommonDataTypes (3) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +Criticality ::= ENUMERATED { reject, ignore, notify } + +Presence ::= ENUMERATED { optional, conditional, mandatory } + +PrivateIE-ID ::= CHOICE { + local INTEGER (0..65535), + global OBJECT IDENTIFIER +} + +ProcedureCode ::= INTEGER (0..255) + +ProtocolExtensionID ::= INTEGER (0..65535) + +ProtocolIE-ID ::= INTEGER (0..65535) + +TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome } + +END + + +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +S1AP-Constants { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Constants (4) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + ProcedureCode, + ProtocolIE-ID + +FROM S1AP-CommonDataTypes; + + +-- ************************************************************** +-- +-- Elementary Procedures +-- +-- ************************************************************** + +id-HandoverPreparation ProcedureCode ::= 0 +id-HandoverResourceAllocation ProcedureCode ::= 1 +id-HandoverNotification ProcedureCode ::= 2 +id-PathSwitchRequest ProcedureCode ::= 3 +id-HandoverCancel ProcedureCode ::= 4 +id-E-RABSetup ProcedureCode ::= 5 +id-E-RABModify ProcedureCode ::= 6 +id-E-RABRelease ProcedureCode ::= 7 +id-E-RABReleaseIndication ProcedureCode ::= 8 +id-InitialContextSetup ProcedureCode ::= 9 +id-Paging ProcedureCode ::= 10 +id-downlinkNASTransport ProcedureCode ::= 11 +id-initialUEMessage ProcedureCode ::= 12 +id-uplinkNASTransport ProcedureCode ::= 13 +id-Reset ProcedureCode ::= 14 +id-ErrorIndication ProcedureCode ::= 15 +id-NASNonDeliveryIndication ProcedureCode ::= 16 +id-S1Setup ProcedureCode ::= 17 +id-UEContextReleaseRequest ProcedureCode ::= 18 +id-DownlinkS1cdma2000tunnelling ProcedureCode ::= 19 +id-UplinkS1cdma2000tunnelling ProcedureCode ::= 20 +id-UEContextModification ProcedureCode ::= 21 +id-UECapabilityInfoIndication ProcedureCode ::= 22 +id-UEContextRelease ProcedureCode ::= 23 +id-eNBStatusTransfer ProcedureCode ::= 24 +id-MMEStatusTransfer ProcedureCode ::= 25 +id-DeactivateTrace ProcedureCode ::= 26 +id-TraceStart ProcedureCode ::= 27 +id-TraceFailureIndication ProcedureCode ::= 28 +id-ENBConfigurationUpdate ProcedureCode ::= 29 +id-MMEConfigurationUpdate ProcedureCode ::= 30 +id-LocationReportingControl ProcedureCode ::= 31 +id-LocationReportingFailureIndication ProcedureCode ::= 32 +id-LocationReport ProcedureCode ::= 33 +id-OverloadStart ProcedureCode ::= 34 +id-OverloadStop ProcedureCode ::= 35 +id-WriteReplaceWarning ProcedureCode ::= 36 +id-eNBDirectInformationTransfer ProcedureCode ::= 37 +id-MMEDirectInformationTransfer ProcedureCode ::= 38 +id-PrivateMessage ProcedureCode ::= 39 +id-eNBConfigurationTransfer ProcedureCode ::= 40 +id-MMEConfigurationTransfer ProcedureCode ::= 41 +id-CellTrafficTrace ProcedureCode ::= 42 +id-Kill ProcedureCode ::= 43 +id-downlinkUEAssociatedLPPaTransport ProcedureCode ::= 44 +id-uplinkUEAssociatedLPPaTransport ProcedureCode ::= 45 +id-downlinkNonUEAssociatedLPPaTransport ProcedureCode ::= 46 +id-uplinkNonUEAssociatedLPPaTransport ProcedureCode ::= 47 +id-UERadioCapabilityMatch ProcedureCode ::= 48 +id-PWSRestartIndication ProcedureCode ::= 49 +id-E-RABModificationIndication ProcedureCode ::= 50 +id-PWSFailureIndication ProcedureCode ::= 51 +id-RerouteNASRequest ProcedureCode ::= 52 +id-UEContextModificationIndication ProcedureCode ::= 53 +id-ConnectionEstablishmentIndication ProcedureCode ::= 54 +id-UEContextSuspend ProcedureCode ::= 55 +id-UEContextResume ProcedureCode ::= 56 + +-- ************************************************************** +-- +-- Extension constants +-- +-- ************************************************************** + +maxPrivateIEs INTEGER ::= 65535 +maxProtocolExtensions INTEGER ::= 65535 +maxProtocolIEs INTEGER ::= 65535 +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** + +maxnoofCSGs INTEGER ::= 256 +maxnoofE-RABs INTEGER ::= 256 +maxnoofTAIs INTEGER ::= 256 +maxnoofTACs INTEGER ::= 256 +maxnoofErrors INTEGER ::= 256 +maxnoofBPLMNs INTEGER ::= 6 +maxnoofPLMNsPerMME INTEGER ::= 32 +maxnoofEPLMNs INTEGER ::= 15 +maxnoofEPLMNsPlusOne INTEGER ::= 16 +maxnoofForbLACs INTEGER ::= 4096 +maxnoofForbTACs INTEGER ::= 4096 +maxnoofIndividualS1ConnectionsToReset INTEGER ::= 256 +maxnoofCells INTEGER ::= 16 +maxnoofCellsineNB INTEGER ::= 256 +maxnoofTAIforWarning INTEGER ::= 65535 +maxnoofCellID INTEGER ::= 65535 +maxnoofEmergencyAreaID INTEGER ::= 65535 +maxnoofCellinTAI INTEGER ::= 65535 +maxnoofCellinEAI INTEGER ::= 65535 +maxnoofeNBX2TLAs INTEGER ::= 2 +maxnoofeNBX2ExtTLAs INTEGER ::= 16 +maxnoofeNBX2GTPTLAs INTEGER ::= 16 +maxnoofRATs INTEGER ::= 8 +maxnoofGroupIDs INTEGER ::= 65535 +maxnoofMMECs INTEGER ::= 256 +maxnoofCellIDforMDT INTEGER ::= 32 +maxnoofTAforMDT INTEGER ::= 8 +maxnoofMDTPLMNs INTEGER ::= 16 +maxnoofCellsforRestart INTEGER ::= 256 +maxnoofRestartTAIs INTEGER ::= 2048 +maxnoofRestartEmergencyAreaIDs INTEGER ::= 256 +maxEARFCN INTEGER ::= 262143 +maxnoofMBSFNAreaMDT INTEGER ::= 8 +maxnoofRecommendedCells INTEGER ::= 16 +maxnoofRecommendedENBs INTEGER ::= 16 + +-- ************************************************************** +-- +-- IEs +-- +-- ************************************************************** + +id-MME-UE-S1AP-ID ProtocolIE-ID ::= 0 +id-HandoverType ProtocolIE-ID ::= 1 +id-Cause ProtocolIE-ID ::= 2 +id-SourceID ProtocolIE-ID ::= 3 +id-TargetID ProtocolIE-ID ::= 4 +id-eNB-UE-S1AP-ID ProtocolIE-ID ::= 8 +id-E-RABSubjecttoDataForwardingList ProtocolIE-ID ::= 12 +id-E-RABtoReleaseListHOCmd ProtocolIE-ID ::= 13 +id-E-RABDataForwardingItem ProtocolIE-ID ::= 14 +id-E-RABReleaseItemBearerRelComp ProtocolIE-ID ::= 15 +id-E-RABToBeSetupListBearerSUReq ProtocolIE-ID ::= 16 +id-E-RABToBeSetupItemBearerSUReq ProtocolIE-ID ::= 17 +id-E-RABAdmittedList ProtocolIE-ID ::= 18 +id-E-RABFailedToSetupListHOReqAck ProtocolIE-ID ::= 19 +id-E-RABAdmittedItem ProtocolIE-ID ::= 20 +id-E-RABFailedtoSetupItemHOReqAck ProtocolIE-ID ::= 21 +id-E-RABToBeSwitchedDLList ProtocolIE-ID ::= 22 +id-E-RABToBeSwitchedDLItem ProtocolIE-ID ::= 23 +id-E-RABToBeSetupListCtxtSUReq ProtocolIE-ID ::= 24 +id-TraceActivation ProtocolIE-ID ::= 25 +id-NAS-PDU ProtocolIE-ID ::= 26 +id-E-RABToBeSetupItemHOReq ProtocolIE-ID ::= 27 +id-E-RABSetupListBearerSURes ProtocolIE-ID ::= 28 +id-E-RABFailedToSetupListBearerSURes ProtocolIE-ID ::= 29 +id-E-RABToBeModifiedListBearerModReq ProtocolIE-ID ::= 30 +id-E-RABModifyListBearerModRes ProtocolIE-ID ::= 31 +id-E-RABFailedToModifyList ProtocolIE-ID ::= 32 +id-E-RABToBeReleasedList ProtocolIE-ID ::= 33 +id-E-RABFailedToReleaseList ProtocolIE-ID ::= 34 +id-E-RABItem ProtocolIE-ID ::= 35 +id-E-RABToBeModifiedItemBearerModReq ProtocolIE-ID ::= 36 +id-E-RABModifyItemBearerModRes ProtocolIE-ID ::= 37 +id-E-RABReleaseItem ProtocolIE-ID ::= 38 +id-E-RABSetupItemBearerSURes ProtocolIE-ID ::= 39 +id-SecurityContext ProtocolIE-ID ::= 40 +id-HandoverRestrictionList ProtocolIE-ID ::= 41 +id-UEPagingID ProtocolIE-ID ::= 43 +id-pagingDRX ProtocolIE-ID ::= 44 +id-TAIList ProtocolIE-ID ::= 46 +id-TAIItem ProtocolIE-ID ::= 47 +id-E-RABFailedToSetupListCtxtSURes ProtocolIE-ID ::= 48 +id-E-RABReleaseItemHOCmd ProtocolIE-ID ::= 49 +id-E-RABSetupItemCtxtSURes ProtocolIE-ID ::= 50 +id-E-RABSetupListCtxtSURes ProtocolIE-ID ::= 51 +id-E-RABToBeSetupItemCtxtSUReq ProtocolIE-ID ::= 52 +id-E-RABToBeSetupListHOReq ProtocolIE-ID ::= 53 +id-GERANtoLTEHOInformationRes ProtocolIE-ID ::= 55 +id-UTRANtoLTEHOInformationRes ProtocolIE-ID ::= 57 +id-CriticalityDiagnostics ProtocolIE-ID ::= 58 +id-Global-ENB-ID ProtocolIE-ID ::= 59 +id-eNBname ProtocolIE-ID ::= 60 +id-MMEname ProtocolIE-ID ::= 61 +id-ServedPLMNs ProtocolIE-ID ::= 63 +id-SupportedTAs ProtocolIE-ID ::= 64 +id-TimeToWait ProtocolIE-ID ::= 65 +id-uEaggregateMaximumBitrate ProtocolIE-ID ::= 66 +id-TAI ProtocolIE-ID ::= 67 +id-E-RABReleaseListBearerRelComp ProtocolIE-ID ::= 69 +id-cdma2000PDU ProtocolIE-ID ::= 70 +id-cdma2000RATType ProtocolIE-ID ::= 71 +id-cdma2000SectorID ProtocolIE-ID ::= 72 +id-SecurityKey ProtocolIE-ID ::= 73 +id-UERadioCapability ProtocolIE-ID ::= 74 +id-GUMMEI-ID ProtocolIE-ID ::= 75 +id-E-RABInformationListItem ProtocolIE-ID ::= 78 +id-Direct-Forwarding-Path-Availability ProtocolIE-ID ::= 79 +id-UEIdentityIndexValue ProtocolIE-ID ::= 80 +id-cdma2000HOStatus ProtocolIE-ID ::= 83 +id-cdma2000HORequiredIndication ProtocolIE-ID ::= 84 +id-E-UTRAN-Trace-ID ProtocolIE-ID ::= 86 +id-RelativeMMECapacity ProtocolIE-ID ::= 87 +id-SourceMME-UE-S1AP-ID ProtocolIE-ID ::= 88 +id-Bearers-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 89 +id-eNB-StatusTransfer-TransparentContainer ProtocolIE-ID ::= 90 +id-UE-associatedLogicalS1-ConnectionItem ProtocolIE-ID ::= 91 +id-ResetType ProtocolIE-ID ::= 92 +id-UE-associatedLogicalS1-ConnectionListResAck ProtocolIE-ID ::= 93 +id-E-RABToBeSwitchedULItem ProtocolIE-ID ::= 94 +id-E-RABToBeSwitchedULList ProtocolIE-ID ::= 95 +id-S-TMSI ProtocolIE-ID ::= 96 +id-cdma2000OneXRAND ProtocolIE-ID ::= 97 +id-RequestType ProtocolIE-ID ::= 98 +id-UE-S1AP-IDs ProtocolIE-ID ::= 99 +id-EUTRAN-CGI ProtocolIE-ID ::= 100 +id-OverloadResponse ProtocolIE-ID ::= 101 +id-cdma2000OneXSRVCCInfo ProtocolIE-ID ::= 102 +id-E-RABFailedToBeReleasedList ProtocolIE-ID ::= 103 +id-Source-ToTarget-TransparentContainer ProtocolIE-ID ::= 104 +id-ServedGUMMEIs ProtocolIE-ID ::= 105 +id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 106 +id-UESecurityCapabilities ProtocolIE-ID ::= 107 +id-CSFallbackIndicator ProtocolIE-ID ::= 108 +id-CNDomain ProtocolIE-ID ::= 109 +id-E-RABReleasedList ProtocolIE-ID ::= 110 +id-MessageIdentifier ProtocolIE-ID ::= 111 +id-SerialNumber ProtocolIE-ID ::= 112 +id-WarningAreaList ProtocolIE-ID ::= 113 +id-RepetitionPeriod ProtocolIE-ID ::= 114 +id-NumberofBroadcastRequest ProtocolIE-ID ::= 115 +id-WarningType ProtocolIE-ID ::= 116 +id-WarningSecurityInfo ProtocolIE-ID ::= 117 +id-DataCodingScheme ProtocolIE-ID ::= 118 +id-WarningMessageContents ProtocolIE-ID ::= 119 +id-BroadcastCompletedAreaList ProtocolIE-ID ::= 120 +id-Inter-SystemInformationTransferTypeEDT ProtocolIE-ID ::= 121 +id-Inter-SystemInformationTransferTypeMDT ProtocolIE-ID ::= 122 +id-Target-ToSource-TransparentContainer ProtocolIE-ID ::= 123 +id-SRVCCOperationPossible ProtocolIE-ID ::= 124 +id-SRVCCHOIndication ProtocolIE-ID ::= 125 +id-NAS-DownlinkCount ProtocolIE-ID ::= 126 +id-CSG-Id ProtocolIE-ID ::= 127 +id-CSG-IdList ProtocolIE-ID ::= 128 +id-SONConfigurationTransferECT ProtocolIE-ID ::= 129 +id-SONConfigurationTransferMCT ProtocolIE-ID ::= 130 +id-TraceCollectionEntityIPAddress ProtocolIE-ID ::= 131 +id-MSClassmark2 ProtocolIE-ID ::= 132 +id-MSClassmark3 ProtocolIE-ID ::= 133 +id-RRC-Establishment-Cause ProtocolIE-ID ::= 134 +id-NASSecurityParametersfromE-UTRAN ProtocolIE-ID ::= 135 +id-NASSecurityParameterstoE-UTRAN ProtocolIE-ID ::= 136 +id-DefaultPagingDRX ProtocolIE-ID ::= 137 +id-Source-ToTarget-TransparentContainer-Secondary ProtocolIE-ID ::= 138 +id-Target-ToSource-TransparentContainer-Secondary ProtocolIE-ID ::= 139 +id-EUTRANRoundTripDelayEstimationInfo ProtocolIE-ID ::= 140 +id-BroadcastCancelledAreaList ProtocolIE-ID ::= 141 +id-ConcurrentWarningMessageIndicator ProtocolIE-ID ::= 142 +id-Data-Forwarding-Not-Possible ProtocolIE-ID ::= 143 +id-ExtendedRepetitionPeriod ProtocolIE-ID ::= 144 +id-CellAccessMode ProtocolIE-ID ::= 145 +id-CSGMembershipStatus ProtocolIE-ID ::= 146 +id-LPPa-PDU ProtocolIE-ID ::= 147 +id-Routing-ID ProtocolIE-ID ::= 148 +id-Time-Synchronisation-Info ProtocolIE-ID ::= 149 +id-PS-ServiceNotAvailable ProtocolIE-ID ::= 150 +id-PagingPriority ProtocolIE-ID ::= 151 +id-x2TNLConfigurationInfo ProtocolIE-ID ::= 152 +id-eNBX2ExtendedTransportLayerAddresses ProtocolIE-ID ::= 153 +id-GUMMEIList ProtocolIE-ID ::= 154 +id-GW-TransportLayerAddress ProtocolIE-ID ::= 155 +id-Correlation-ID ProtocolIE-ID ::= 156 +id-SourceMME-GUMMEI ProtocolIE-ID ::= 157 +id-MME-UE-S1AP-ID-2 ProtocolIE-ID ::= 158 +id-RegisteredLAI ProtocolIE-ID ::= 159 +id-RelayNode-Indicator ProtocolIE-ID ::= 160 +id-TrafficLoadReductionIndication ProtocolIE-ID ::= 161 +id-MDTConfiguration ProtocolIE-ID ::= 162 +id-MMERelaySupportIndicator ProtocolIE-ID ::= 163 +id-GWContextReleaseIndication ProtocolIE-ID ::= 164 +id-ManagementBasedMDTAllowed ProtocolIE-ID ::= 165 +id-PrivacyIndicator ProtocolIE-ID ::= 166 +id-Time-UE-StayedInCell-EnhancedGranularity ProtocolIE-ID ::= 167 +id-HO-Cause ProtocolIE-ID ::= 168 +id-VoiceSupportMatchIndicator ProtocolIE-ID ::= 169 +id-GUMMEIType ProtocolIE-ID ::= 170 +id-M3Configuration ProtocolIE-ID ::= 171 +id-M4Configuration ProtocolIE-ID ::= 172 +id-M5Configuration ProtocolIE-ID ::= 173 +id-MDT-Location-Info ProtocolIE-ID ::= 174 +id-MobilityInformation ProtocolIE-ID ::= 175 +id-Tunnel-Information-for-BBF ProtocolIE-ID ::= 176 +id-ManagementBasedMDTPLMNList ProtocolIE-ID ::= 177 +id-SignallingBasedMDTPLMNList ProtocolIE-ID ::= 178 +id-ULCOUNTValueExtended ProtocolIE-ID ::= 179 +id-DLCOUNTValueExtended ProtocolIE-ID ::= 180 +id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID ::= 181 +id-ECGIListForRestart ProtocolIE-ID ::= 182 +id-SIPTO-Correlation-ID ProtocolIE-ID ::= 183 +id-SIPTO-L-GW-TransportLayerAddress ProtocolIE-ID ::= 184 +id-TransportInformation ProtocolIE-ID ::= 185 +id-LHN-ID ProtocolIE-ID ::= 186 +id-AdditionalCSFallbackIndicator ProtocolIE-ID ::= 187 +id-TAIListForRestart ProtocolIE-ID ::= 188 +id-UserLocationInformation ProtocolIE-ID ::= 189 +id-EmergencyAreaIDListForRestart ProtocolIE-ID ::= 190 +id-KillAllWarningMessages ProtocolIE-ID ::= 191 +id-Masked-IMEISV ProtocolIE-ID ::= 192 +id-eNBIndirectX2TransportLayerAddresses ProtocolIE-ID ::= 193 +id-uE-HistoryInformationFromTheUE ProtocolIE-ID ::= 194 +id-ProSeAuthorized ProtocolIE-ID ::= 195 +id-ExpectedUEBehaviour ProtocolIE-ID ::= 196 +id-LoggedMBSFNMDT ProtocolIE-ID ::= 197 +id-UERadioCapabilityForPaging ProtocolIE-ID ::= 198 +id-E-RABToBeModifiedListBearerModInd ProtocolIE-ID ::= 199 +id-E-RABToBeModifiedItemBearerModInd ProtocolIE-ID ::= 200 +id-E-RABNotToBeModifiedListBearerModInd ProtocolIE-ID ::= 201 +id-E-RABNotToBeModifiedItemBearerModInd ProtocolIE-ID ::= 202 +id-E-RABModifyListBearerModConf ProtocolIE-ID ::= 203 +id-E-RABModifyItemBearerModConf ProtocolIE-ID ::= 204 +id-E-RABFailedToModifyListBearerModConf ProtocolIE-ID ::= 205 +id-SON-Information-Report ProtocolIE-ID ::= 206 +id-Muting-Availability-Indication ProtocolIE-ID ::= 207 +id-Muting-Pattern-Information ProtocolIE-ID ::= 208 +id-Synchronisation-Information ProtocolIE-ID ::= 209 +id-E-RABToBeReleasedListBearerModConf ProtocolIE-ID ::= 210 +id-AssistanceDataForPaging ProtocolIE-ID ::= 211 +id-CellIdentifierAndCELevelForCECapableUEs ProtocolIE-ID ::= 212 +id-InformationOnRecommendedCellsAndENBsForPaging ProtocolIE-ID ::= 213 +id-RecommendedCellItem ProtocolIE-ID ::= 214 +id-RecommendedENBItem ProtocolIE-ID ::= 215 +id-ProSeUEtoNetworkRelaying ProtocolIE-ID ::= 216 +id-ULCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 217 +id-DLCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 218 +id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ProtocolIE-ID ::= 219 +id-M6Configuration ProtocolIE-ID ::= 220 +id-M7Configuration ProtocolIE-ID ::= 221 +id-PWSfailedECGIList ProtocolIE-ID ::= 222 +id-MME-Group-ID ProtocolIE-ID ::= 223 +id-Additional-GUTI ProtocolIE-ID ::= 224 +id-S1-Message ProtocolIE-ID ::= 225 +id-CSGMembershipInfo ProtocolIE-ID ::= 226 +id-Paging-eDRXInformation ProtocolIE-ID ::= 227 +id-UE-RetentionInformation ProtocolIE-ID ::= 228 +id-UE-Usage-Type ProtocolIE-ID ::= 230 +id-extended-UEIdentityIndexValue ProtocolIE-ID ::= 231 +id-RAT-Type ProtocolIE-ID ::= 232 +id-BearerType ProtocolIE-ID ::= 233 +id-NB-IoT-DefaultPagingDRX ProtocolIE-ID ::= 234 +id-E-RABFailedToResumeListResumeReq ProtocolIE-ID ::= 235 +id-E-RABFailedToResumeItemResumeReq ProtocolIE-ID ::= 236 +id-E-RABFailedToResumeListResumeRes ProtocolIE-ID ::= 237 +id-E-RABFailedToResumeItemResumeRes ProtocolIE-ID ::= 238 +id-NB-IoT-Paging-eDRXInformation ProtocolIE-ID ::= 239 +id-UEUserPlaneCIoTSupportIndicator ProtocolIE-ID ::= 241 +id-CE-mode-B-SupportIndicator ProtocolIE-ID ::= 242 +id-SRVCCOperationNotPossible ProtocolIE-ID ::= 243 +id-NB-IoT-UEIdentityIndexValue ProtocolIE-ID ::= 244 +id-RRC-Resume-Cause ProtocolIE-ID ::= 245 + +END + + +-- ************************************************************** +-- +-- Container definitions +-- +-- ************************************************************** + +S1AP-Containers { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Containers (5) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + Presence, + PrivateIE-ID, + ProtocolExtensionID, + ProtocolIE-ID +FROM S1AP-CommonDataTypes + + maxPrivateIEs, + maxProtocolExtensions, + maxProtocolIEs +FROM S1AP-Constants; + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +S1AP-PROTOCOL-IES ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +S1AP-PROTOCOL-IES-PAIR ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &firstCriticality Criticality, + &FirstValue, + &secondCriticality Criticality, + &SecondValue, + &presence Presence +} +WITH SYNTAX { + ID &id + FIRST CRITICALITY &firstCriticality + FIRST TYPE &FirstValue + SECOND CRITICALITY &secondCriticality + SECOND TYPE &SecondValue + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol Extensions +-- +-- ************************************************************** + +S1AP-PROTOCOL-EXTENSION ::= CLASS { + &id ProtocolExtensionID UNIQUE, + &criticality Criticality, + &Extension, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + EXTENSION &Extension + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Private IEs +-- +-- ************************************************************** + +S1AP-PRIVATE-IES ::= CLASS { + &id PrivateIE-ID, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Container for Protocol IEs +-- +-- ************************************************************** + +ProtocolIE-Container {S1AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-SingleContainer {S1AP-PROTOCOL-IES : IEsSetParam} ::= + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Field {S1AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-IES.&id ({IEsSetParam}), + criticality S1AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), + value S1AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Protocol IE Pairs +-- +-- ************************************************************** + +ProtocolIE-ContainerPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-FieldPair {{IEsSetParam}} + +ProtocolIE-FieldPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), + firstCriticality S1AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), + firstValue S1AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), + secondCriticality S1AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), + secondValue S1AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container Lists for Protocol IE Containers +-- +-- ************************************************************** + +ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-SingleContainer {{IEsSetParam}} + +ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-ContainerPair {{IEsSetParam}} + +-- ************************************************************** +-- +-- Container for Protocol Extensions +-- +-- ************************************************************** + +ProtocolExtensionContainer {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= + SEQUENCE (SIZE (1..maxProtocolExtensions)) OF + ProtocolExtensionField {{ExtensionSetParam}} + +ProtocolExtensionField {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), + criticality S1AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), + extensionValue S1AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Private IEs +-- +-- ************************************************************** + +PrivateIE-Container {S1AP-PRIVATE-IES : IEsSetParam } ::= + SEQUENCE (SIZE (1.. maxPrivateIEs)) OF + PrivateIE-Field {{IEsSetParam}} + +PrivateIE-Field {S1AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { + id S1AP-PRIVATE-IES.&id ({IEsSetParam}), + criticality S1AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), + value S1AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) +} + +END + +-- ************************************************************** +-- +-- IE definitions for the SON Transfer application +-- The IEs in this ASN.1 module shall be defined and encoded +-- using the same rules as applicable for the S1AP-IEs module. +-- +-- ************************************************************** +SonTransfer-IEs + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- +-- Generic IEs for the SON Transfer application +-- + +SONtransferApplicationIdentity ::= ENUMERATED { + cell-load-reporting, + ..., + multi-cell-load-reporting, + event-triggered-cell-load-reporting, + ho-reporting, + eutran-cell-activation, + energy-savings-indication, + failure-event-reporting +} + +SONtransferRequestContainer ::= CHOICE{ + cellLoadReporting NULL, + ..., + multiCellLoadReporting MultiCellLoadReportingRequest, + eventTriggeredCellLoadReporting EventTriggeredCellLoadReportingRequest, + hOReporting HOReport, + eutranCellActivation CellActivationRequest, + energySavingsIndication CellStateIndication, + failureEventReporting FailureEventReport +} + +SONtransferResponseContainer ::= CHOICE{ + cellLoadReporting CellLoadReportingResponse, + ..., + multiCellLoadReporting MultiCellLoadReportingResponse, + eventTriggeredCellLoadReporting EventTriggeredCellLoadReportingResponse, + hOReporting NULL, + eutranCellActivation CellActivationResponse, + energySavingsIndication NULL, + failureEventReporting NULL +} + +SONtransferCause ::= CHOICE { + cellLoadReporting CellLoadReportingCause, + ..., + multiCellLoadReporting CellLoadReportingCause, + eventTriggeredCellLoadReporting CellLoadReportingCause, + hOReporting HOReportingCause, + eutranCellActivation CellActivationCause, + energySavingsIndication CellStateIndicationCause, + failureEventReporting FailureEventReportingCause +} + + +CellLoadReportingCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +HOReportingCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +CellActivationCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +CellStateIndicationCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +FailureEventReportingCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +-- +-- IEs for Cell Load Reporting application +-- + +CellLoadReportingResponse::= CHOICE{ + eUTRAN EUTRANcellLoadReportingResponse, + uTRAN OCTET STRING, + gERAN OCTET STRING, + ..., + eHRPD EHRPDSectorLoadReportingResponse +} + +CompositeAvailableCapacityGroup ::= OCTET STRING + +EUTRANcellLoadReportingResponse ::= SEQUENCE { + compositeAvailableCapacityGroup CompositeAvailableCapacityGroup, + ... +} + +-- +-- IEs for Multi-Cell Load Reporting application +-- + +EUTRANResponse::= SEQUENCE { + cell-ID OCTET STRING, + eUTRANcellLoadReportingResponse EUTRANcellLoadReportingResponse, + ... +} + +EHRPD-Sector-ID ::= OCTET STRING (SIZE (16)) + +IRAT-Cell-ID ::= CHOICE{ + eUTRAN OCTET STRING, + uTRAN OCTET STRING, + gERAN OCTET STRING, + ..., + eHRPD EHRPD-Sector-ID +} + +RequestedCellList ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF IRAT-Cell-ID + +MultiCellLoadReportingRequest::= SEQUENCE { + requestedCellList RequestedCellList, + ... +} + +ReportingCellList-Item ::= SEQUENCE { + cell-ID IRAT-Cell-ID, + ... +} + +ReportingCellList ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF ReportingCellList-Item + +MultiCellLoadReportingResponse ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF MultiCellLoadReportingResponse-Item + +MultiCellLoadReportingResponse-Item ::= CHOICE{ + eUTRANResponse EUTRANResponse, + uTRANResponse OCTET STRING, + gERANResponse OCTET STRING, + ..., + eHRPD EHRPDMultiSectorLoadReportingResponseItem +} + + +-- +-- IEs for Event-triggered Cell Load Reporting application +-- + +NumberOfMeasurementReportingLevels ::= ENUMERATED { + rl2, + rl3, + rl4, + rl5, + rl10, + ... +} + +EventTriggeredCellLoadReportingRequest ::= SEQUENCE { + numberOfMeasurementReportingLevels NumberOfMeasurementReportingLevels, + ... +} + +OverloadFlag ::= ENUMERATED { + overload, + ... +} + +EventTriggeredCellLoadReportingResponse ::= SEQUENCE { + cellLoadReportingResponse CellLoadReportingResponse, + overloadFlag OverloadFlag OPTIONAL, + ... +} + +-- +-- IEs for HO Reporting application +-- + + + +HOReport::= SEQUENCE { + hoType HoType, + hoReportType HoReportType, + hosourceID IRAT-Cell-ID, + hoTargetID IRAT-Cell-ID, + candidateCellList CandidateCellList, + ..., + candidatePCIList CandidatePCIList OPTIONAL +} + +HoType ::= ENUMERATED { + ltetoutran, + ltetogeran, + ... +} + +HoReportType ::= ENUMERATED { + unnecessaryhotoanotherrat, + ..., + earlyirathandover +} + +CandidateCellList ::= SEQUENCE (SIZE(1..maxnoofcandidateCells)) OF IRAT-Cell-ID + +CandidatePCIList ::= SEQUENCE (SIZE(1..maxnoofcandidateCells)) OF CandidatePCI + +CandidatePCI ::= SEQUENCE { + pCI INTEGER (0..503), + eARFCN OCTET STRING, + ... +} + +-- +-- IEs for E-UTRAN Cell Activation application +-- + +CellActivationRequest ::= SEQUENCE { + cellsToActivateList CellsToActivateList, + minimumActivationTime INTEGER (1..60) OPTIONAL, +... +} + +CellsToActivateList ::= SEQUENCE (SIZE(1.. maxnoofCellineNB)) OF CellsToActivateList-Item + +CellsToActivateList-Item ::= SEQUENCE { + cell-ID OCTET STRING, + ... +} + +CellActivationResponse ::= SEQUENCE { + activatedCellsList ActivatedCellsList, + ... +} + +ActivatedCellsList ::= SEQUENCE (SIZE(0.. maxnoofCellineNB)) OF ActivatedCellsList-Item + +ActivatedCellsList-Item ::= SEQUENCE { + cell-ID OCTET STRING, + ... +} + +-- +-- IEs for Energy Savings Indication application +-- + +CellStateIndication ::= SEQUENCE { + notificationCellList NotificationCellList, + ... +} + +NotificationCellList ::= SEQUENCE (SIZE(1.. maxnoofCellineNB)) OF NotificationCellList-Item + +NotificationCellList-Item ::= SEQUENCE { + cell-ID OCTET STRING, + notifyFlag NotifyFlag, + ... +} + +NotifyFlag ::= ENUMERATED { + activated, + deactivated, + ... +} + +FailureEventReport::= CHOICE { + tooEarlyInterRATHOReportFromEUTRAN TooEarlyInterRATHOReportReportFromEUTRAN, + ... +} + +TooEarlyInterRATHOReportReportFromEUTRAN ::= SEQUENCE { + uERLFReportContainer OCTET STRING, -- as defined in TS 36.331 [16] -- + mobilityInformation MobilityInformation OPTIONAL, + ... +} + +MobilityInformation ::= BIT STRING (SIZE(32)) + + +-- +-- IEs for reporting of eHRPD load +-- + +EHRPDCapacityValue ::= INTEGER (0..100) + +EHRPDSectorCapacityClassValue ::= INTEGER (1..100, ...) + +EHRPDSectorLoadReportingResponse ::= SEQUENCE { + dL-EHRPD-CompositeAvailableCapacity EHRPDCompositeAvailableCapacity, + uL-EHRPD-CompositeAvailableCapacity EHRPDCompositeAvailableCapacity, + ... +} + +EHRPDCompositeAvailableCapacity ::= SEQUENCE { + eHRPDSectorCapacityClassValue EHRPDSectorCapacityClassValue, + eHRPDCapacityValue EHRPDCapacityValue, + ... +} + +EHRPDMultiSectorLoadReportingResponseItem ::= SEQUENCE { + eHRPD-Sector-ID EHRPD-Sector-ID, + eHRPDSectorLoadReportingResponse EHRPDSectorLoadReportingResponse, + ... +} + + +-- ************************************************************** +-- +-- Constants +-- +-- ************************************************************** + +maxnoofIRATReportingCells INTEGER ::= 128 +maxnoofcandidateCells INTEGER ::= 16 +maxnoofCellineNB INTEGER ::= 256 + +END + + diff --git a/openair3/S1AP/MESSAGES/ASN1/R14/s1ap-14.5.0.asn1 b/openair3/S1AP/MESSAGES/ASN1/R14/s1ap-14.5.0.asn1 new file mode 100755 index 0000000000..2063a0d2a1 --- /dev/null +++ b/openair3/S1AP/MESSAGES/ASN1/R14/s1ap-14.5.0.asn1 @@ -0,0 +1,6986 @@ +-- ************************************************************** +-- +-- Elementary Procedure definitions +-- +-- ************************************************************** + +S1AP-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Descriptions (0)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + ProcedureCode +FROM S1AP-CommonDataTypes + + CellTrafficTrace, + DeactivateTrace, + DownlinkUEAssociatedLPPaTransport, + DownlinkNASTransport, + DownlinkNonUEAssociatedLPPaTransport, + DownlinkS1cdma2000tunnelling, + ENBDirectInformationTransfer, + ENBStatusTransfer, + ENBConfigurationUpdate, + ENBConfigurationUpdateAcknowledge, + ENBConfigurationUpdateFailure, + ErrorIndication, + HandoverCancel, + HandoverCancelAcknowledge, + HandoverCommand, + HandoverFailure, + HandoverNotify, + HandoverPreparationFailure, + HandoverRequest, + HandoverRequestAcknowledge, + HandoverRequired, + InitialContextSetupFailure, + InitialContextSetupRequest, + InitialContextSetupResponse, + InitialUEMessage, + KillRequest, + KillResponse, + LocationReportingControl, + LocationReportingFailureIndication, + LocationReport, + MMEConfigurationUpdate, + MMEConfigurationUpdateAcknowledge, + MMEConfigurationUpdateFailure, + MMEDirectInformationTransfer, + MMEStatusTransfer, + NASNonDeliveryIndication, + OverloadStart, + OverloadStop, + Paging, + PathSwitchRequest, + PathSwitchRequestAcknowledge, + PathSwitchRequestFailure, + PrivateMessage, + Reset, + ResetAcknowledge, + S1SetupFailure, + S1SetupRequest, + S1SetupResponse, + E-RABModifyRequest, + E-RABModifyResponse, + E-RABModificationIndication, + E-RABModificationConfirm, + E-RABReleaseCommand, + E-RABReleaseResponse, + E-RABReleaseIndication, + E-RABSetupRequest, + E-RABSetupResponse, + TraceFailureIndication, + TraceStart, + UECapabilityInfoIndication, + UEContextModificationFailure, + UEContextModificationRequest, + UEContextModificationResponse, + UEContextReleaseCommand, + UEContextReleaseComplete, + UEContextReleaseRequest, + UERadioCapabilityMatchRequest, + UERadioCapabilityMatchResponse, + UplinkUEAssociatedLPPaTransport, + UplinkNASTransport, + UplinkNonUEAssociatedLPPaTransport, + UplinkS1cdma2000tunnelling, + WriteReplaceWarningRequest, + WriteReplaceWarningResponse, + ENBConfigurationTransfer, + MMEConfigurationTransfer, + PWSRestartIndication, + UEContextModificationIndication, + UEContextModificationConfirm, + RerouteNASRequest, + PWSFailureIndication, + UEContextSuspendRequest, + UEContextSuspendResponse, + UEContextResumeRequest, + UEContextResumeResponse, + UEContextResumeFailure, + ConnectionEstablishmentIndication, + NASDeliveryIndication, + RetrieveUEInformation, + UEInformationTransfer, + ENBCPRelocationIndication, + MMECPRelocationIndication + + +FROM S1AP-PDU-Contents + + id-CellTrafficTrace, + id-DeactivateTrace, + id-downlinkUEAssociatedLPPaTransport, + id-downlinkNASTransport, + id-downlinkNonUEAssociatedLPPaTransport, + id-DownlinkS1cdma2000tunnelling, + id-eNBStatusTransfer, + id-ErrorIndication, + id-HandoverCancel, + id-HandoverNotification, + id-HandoverPreparation, + id-HandoverResourceAllocation, + id-InitialContextSetup, + id-initialUEMessage, + id-ENBConfigurationUpdate, + id-Kill, + id-LocationReportingControl, + id-LocationReportingFailureIndication, + id-LocationReport, + id-eNBDirectInformationTransfer, + id-MMEConfigurationUpdate, + id-MMEDirectInformationTransfer, + id-MMEStatusTransfer, + id-NASNonDeliveryIndication, + id-OverloadStart, + id-OverloadStop, + id-Paging, + id-PathSwitchRequest, + id-PrivateMessage, + id-Reset, + id-S1Setup, + id-E-RABModify, + id-E-RABModificationIndication, + id-E-RABRelease, + id-E-RABReleaseIndication, + id-E-RABSetup, + id-TraceFailureIndication, + id-TraceStart, + id-UECapabilityInfoIndication, + id-UEContextModification, + id-UEContextRelease, + id-UEContextReleaseRequest, + id-UERadioCapabilityMatch, + id-uplinkUEAssociatedLPPaTransport, + id-uplinkNASTransport, + id-uplinkNonUEAssociatedLPPaTransport, + id-UplinkS1cdma2000tunnelling, + id-WriteReplaceWarning, + id-eNBConfigurationTransfer, + id-MMEConfigurationTransfer, + id-PWSRestartIndication, + id-UEContextModificationIndication, + id-RerouteNASRequest, + id-PWSFailureIndication, + id-UEContextSuspend, + id-UEContextResume, + id-ConnectionEstablishmentIndication, + id-NASDeliveryIndication, + id-RetrieveUEInformation, + id-UEInformationTransfer, + id-eNBCPRelocationIndication, + id-MMECPRelocationIndication + + +FROM S1AP-Constants; + + +-- ************************************************************** +-- +-- Interface Elementary Procedure Class +-- +-- ************************************************************** + +S1AP-ELEMENTARY-PROCEDURE ::= CLASS { + &InitiatingMessage , + &SuccessfulOutcome OPTIONAL, + &UnsuccessfulOutcome OPTIONAL, + &procedureCode ProcedureCode UNIQUE, + &criticality Criticality DEFAULT ignore +} +WITH SYNTAX { + INITIATING MESSAGE &InitiatingMessage + [SUCCESSFUL OUTCOME &SuccessfulOutcome] + [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] + PROCEDURE CODE &procedureCode + [CRITICALITY &criticality] +} + +-- ************************************************************** +-- +-- Interface PDU Definition +-- +-- ************************************************************** + +S1AP-PDU ::= CHOICE { + initiatingMessage InitiatingMessage, + successfulOutcome SuccessfulOutcome, + unsuccessfulOutcome UnsuccessfulOutcome, + ... +} + +InitiatingMessage ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +SuccessfulOutcome ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +UnsuccessfulOutcome ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +-- ************************************************************** +-- +-- Interface Elementary Procedure List +-- +-- ************************************************************** + +S1AP-ELEMENTARY-PROCEDURES S1AP-ELEMENTARY-PROCEDURE ::= { + S1AP-ELEMENTARY-PROCEDURES-CLASS-1 | + S1AP-ELEMENTARY-PROCEDURES-CLASS-2, + ... +} + + +S1AP-ELEMENTARY-PROCEDURES-CLASS-1 S1AP-ELEMENTARY-PROCEDURE ::= { + handoverPreparation | + handoverResourceAllocation | + pathSwitchRequest | + e-RABSetup | + e-RABModify | + e-RABRelease | + initialContextSetup | + handoverCancel | + kill | + reset | + s1Setup | + uEContextModification | + uEContextRelease | + eNBConfigurationUpdate | + mMEConfigurationUpdate | + writeReplaceWarning , + ..., + uERadioCapabilityMatch | + e-RABModificationIndication | + uEContextModificationIndication | + uEContextSuspend | + uEContextResume +} + +S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= { + handoverNotification | + e-RABReleaseIndication | + paging | + downlinkNASTransport | + initialUEMessage | + uplinkNASTransport | + errorIndication | + nASNonDeliveryIndication | + uEContextReleaseRequest | + downlinkS1cdma2000tunnelling | + uplinkS1cdma2000tunnelling | + uECapabilityInfoIndication | + eNBStatusTransfer | + mMEStatusTransfer | + deactivateTrace | + traceStart | + traceFailureIndication | + cellTrafficTrace | + locationReportingControl | + locationReportingFailureIndication | + locationReport | + overloadStart | + overloadStop | + eNBDirectInformationTransfer | + mMEDirectInformationTransfer | + eNBConfigurationTransfer | + mMEConfigurationTransfer | + privateMessage , + ..., + downlinkUEAssociatedLPPaTransport | + uplinkUEAssociatedLPPaTransport | + downlinkNonUEAssociatedLPPaTransport | + uplinkNonUEAssociatedLPPaTransport | + pWSRestartIndication | + rerouteNASRequest | + pWSFailureIndication | + connectionEstablishmentIndication | + nASDeliveryIndication | + retrieveUEInformation | + uEInformationTransfer | + eNBCPRelocationIndication | + mMECPRelocationIndication +} + +-- ************************************************************** +-- +-- Interface Elementary Procedures +-- +-- ************************************************************** + +handoverPreparation S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequired + SUCCESSFUL OUTCOME HandoverCommand + UNSUCCESSFUL OUTCOME HandoverPreparationFailure + PROCEDURE CODE id-HandoverPreparation + CRITICALITY reject +} + +handoverResourceAllocation S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequest + SUCCESSFUL OUTCOME HandoverRequestAcknowledge + UNSUCCESSFUL OUTCOME HandoverFailure + PROCEDURE CODE id-HandoverResourceAllocation + CRITICALITY reject +} + +handoverNotification S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverNotify + PROCEDURE CODE id-HandoverNotification + CRITICALITY ignore +} + +pathSwitchRequest S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PathSwitchRequest + SUCCESSFUL OUTCOME PathSwitchRequestAcknowledge + UNSUCCESSFUL OUTCOME PathSwitchRequestFailure + PROCEDURE CODE id-PathSwitchRequest + CRITICALITY reject +} + +e-RABSetup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABSetupRequest + SUCCESSFUL OUTCOME E-RABSetupResponse + PROCEDURE CODE id-E-RABSetup + CRITICALITY reject +} + +e-RABModify S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABModifyRequest + SUCCESSFUL OUTCOME E-RABModifyResponse + PROCEDURE CODE id-E-RABModify + CRITICALITY reject +} + +e-RABRelease S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABReleaseCommand + SUCCESSFUL OUTCOME E-RABReleaseResponse + PROCEDURE CODE id-E-RABRelease + CRITICALITY reject +} + +e-RABReleaseIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABReleaseIndication + PROCEDURE CODE id-E-RABReleaseIndication + CRITICALITY ignore +} + +initialContextSetup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE InitialContextSetupRequest + SUCCESSFUL OUTCOME InitialContextSetupResponse + UNSUCCESSFUL OUTCOME InitialContextSetupFailure + PROCEDURE CODE id-InitialContextSetup + CRITICALITY reject +} + +uEContextReleaseRequest S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextReleaseRequest + PROCEDURE CODE id-UEContextReleaseRequest + CRITICALITY ignore +} + +paging S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE Paging + PROCEDURE CODE id-Paging + CRITICALITY ignore +} + +downlinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkNASTransport + PROCEDURE CODE id-downlinkNASTransport + CRITICALITY ignore +} + +initialUEMessage S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE InitialUEMessage + PROCEDURE CODE id-initialUEMessage + CRITICALITY ignore +} + +uplinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkNASTransport + PROCEDURE CODE id-uplinkNASTransport + CRITICALITY ignore +} +nASNonDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE NASNonDeliveryIndication + PROCEDURE CODE id-NASNonDeliveryIndication + CRITICALITY ignore +} + +handoverCancel S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverCancel + SUCCESSFUL OUTCOME HandoverCancelAcknowledge + PROCEDURE CODE id-HandoverCancel + CRITICALITY reject +} + +reset S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE Reset + SUCCESSFUL OUTCOME ResetAcknowledge + PROCEDURE CODE id-Reset + CRITICALITY reject +} + +errorIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ErrorIndication + PROCEDURE CODE id-ErrorIndication + CRITICALITY ignore +} + +s1Setup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE S1SetupRequest + SUCCESSFUL OUTCOME S1SetupResponse + UNSUCCESSFUL OUTCOME S1SetupFailure + PROCEDURE CODE id-S1Setup + CRITICALITY reject +} + +eNBConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationUpdate + SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure + PROCEDURE CODE id-ENBConfigurationUpdate + CRITICALITY reject +} + +mMEConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEConfigurationUpdate + SUCCESSFUL OUTCOME MMEConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME MMEConfigurationUpdateFailure + PROCEDURE CODE id-MMEConfigurationUpdate + CRITICALITY reject +} + +downlinkS1cdma2000tunnelling S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkS1cdma2000tunnelling + PROCEDURE CODE id-DownlinkS1cdma2000tunnelling + CRITICALITY ignore +} + +uplinkS1cdma2000tunnelling S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkS1cdma2000tunnelling + PROCEDURE CODE id-UplinkS1cdma2000tunnelling + CRITICALITY ignore +} + +uEContextModification S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextModificationRequest + SUCCESSFUL OUTCOME UEContextModificationResponse + UNSUCCESSFUL OUTCOME UEContextModificationFailure + PROCEDURE CODE id-UEContextModification + CRITICALITY reject +} + +uECapabilityInfoIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UECapabilityInfoIndication + PROCEDURE CODE id-UECapabilityInfoIndication + CRITICALITY ignore +} + +uEContextRelease S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextReleaseCommand + SUCCESSFUL OUTCOME UEContextReleaseComplete + PROCEDURE CODE id-UEContextRelease + CRITICALITY reject +} + +eNBStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBStatusTransfer + PROCEDURE CODE id-eNBStatusTransfer + CRITICALITY ignore +} + +mMEStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEStatusTransfer + PROCEDURE CODE id-MMEStatusTransfer + CRITICALITY ignore +} + +deactivateTrace S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DeactivateTrace + PROCEDURE CODE id-DeactivateTrace + CRITICALITY ignore +} + +traceStart S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE TraceStart + PROCEDURE CODE id-TraceStart + CRITICALITY ignore +} + +traceFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE TraceFailureIndication + PROCEDURE CODE id-TraceFailureIndication + CRITICALITY ignore +} +cellTrafficTrace S1AP-ELEMENTARY-PROCEDURE ::={ + INITIATING MESSAGE CellTrafficTrace + PROCEDURE CODE id-CellTrafficTrace + CRITICALITY ignore +} + +locationReportingControl S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReportingControl + PROCEDURE CODE id-LocationReportingControl + CRITICALITY ignore +} + +locationReportingFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReportingFailureIndication + PROCEDURE CODE id-LocationReportingFailureIndication + CRITICALITY ignore +} + +locationReport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReport + PROCEDURE CODE id-LocationReport + CRITICALITY ignore +} + +overloadStart S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE OverloadStart + PROCEDURE CODE id-OverloadStart + CRITICALITY ignore +} + +overloadStop S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE OverloadStop + PROCEDURE CODE id-OverloadStop + CRITICALITY reject +} + +writeReplaceWarning S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE WriteReplaceWarningRequest + SUCCESSFUL OUTCOME WriteReplaceWarningResponse + PROCEDURE CODE id-WriteReplaceWarning + CRITICALITY reject +} + +eNBDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBDirectInformationTransfer + PROCEDURE CODE id-eNBDirectInformationTransfer + CRITICALITY ignore +} + +mMEDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEDirectInformationTransfer + PROCEDURE CODE id-MMEDirectInformationTransfer + CRITICALITY ignore +} + +eNBConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationTransfer + PROCEDURE CODE id-eNBConfigurationTransfer + CRITICALITY ignore +} + +mMEConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEConfigurationTransfer + PROCEDURE CODE id-MMEConfigurationTransfer + CRITICALITY ignore +} + + +privateMessage S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PrivateMessage + PROCEDURE CODE id-PrivateMessage + CRITICALITY ignore +} + +pWSRestartIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PWSRestartIndication + PROCEDURE CODE id-PWSRestartIndication + CRITICALITY ignore +} + +kill S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE KillRequest + SUCCESSFUL OUTCOME KillResponse + PROCEDURE CODE id-Kill + CRITICALITY reject +} + +downlinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkUEAssociatedLPPaTransport + PROCEDURE CODE id-downlinkUEAssociatedLPPaTransport + CRITICALITY ignore +} + +uplinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkUEAssociatedLPPaTransport + PROCEDURE CODE id-uplinkUEAssociatedLPPaTransport + CRITICALITY ignore +} +downlinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkNonUEAssociatedLPPaTransport + PROCEDURE CODE id-downlinkNonUEAssociatedLPPaTransport + CRITICALITY ignore +} + +uplinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkNonUEAssociatedLPPaTransport + PROCEDURE CODE id-uplinkNonUEAssociatedLPPaTransport + CRITICALITY ignore +} + +uERadioCapabilityMatch S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UERadioCapabilityMatchRequest + SUCCESSFUL OUTCOME UERadioCapabilityMatchResponse + PROCEDURE CODE id-UERadioCapabilityMatch + CRITICALITY reject +} + +e-RABModificationIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABModificationIndication + SUCCESSFUL OUTCOME E-RABModificationConfirm + PROCEDURE CODE id-E-RABModificationIndication + CRITICALITY reject +} + +uEContextModificationIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextModificationIndication + SUCCESSFUL OUTCOME UEContextModificationConfirm + PROCEDURE CODE id-UEContextModificationIndication + CRITICALITY reject +} + +rerouteNASRequest S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RerouteNASRequest + PROCEDURE CODE id-RerouteNASRequest + CRITICALITY reject +} + +pWSFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PWSFailureIndication + PROCEDURE CODE id-PWSFailureIndication + CRITICALITY ignore +} + +uEContextSuspend S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextSuspendRequest + SUCCESSFUL OUTCOME UEContextSuspendResponse + PROCEDURE CODE id-UEContextSuspend + CRITICALITY reject +} + +uEContextResume S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextResumeRequest + SUCCESSFUL OUTCOME UEContextResumeResponse + UNSUCCESSFUL OUTCOME UEContextResumeFailure + PROCEDURE CODE id-UEContextResume + CRITICALITY reject +} + +connectionEstablishmentIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ConnectionEstablishmentIndication + PROCEDURE CODE id-ConnectionEstablishmentIndication + CRITICALITY reject +} + +nASDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE NASDeliveryIndication + PROCEDURE CODE id-NASDeliveryIndication + CRITICALITY ignore +} + +retrieveUEInformation S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RetrieveUEInformation + PROCEDURE CODE id-RetrieveUEInformation + CRITICALITY reject +} + +uEInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEInformationTransfer + PROCEDURE CODE id-UEInformationTransfer + CRITICALITY reject +} + +eNBCPRelocationIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBCPRelocationIndication + PROCEDURE CODE id-eNBCPRelocationIndication + CRITICALITY reject +} + +mMECPRelocationIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMECPRelocationIndication + PROCEDURE CODE id-MMECPRelocationIndication + CRITICALITY reject +} + + +END + + + +-- ************************************************************** +-- +-- PDU definitions for S1AP. +-- +-- ************************************************************** + +S1AP-PDU-Contents { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Contents (1) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + + UEAggregateMaximumBitrate, + BearerType, + Cause, + CellAccessMode, + Cdma2000HORequiredIndication, + Cdma2000HOStatus, + Cdma2000OneXSRVCCInfo, + Cdma2000OneXRAND, + Cdma2000PDU, + Cdma2000RATType, + Cdma2000SectorID, + EUTRANRoundTripDelayEstimationInfo, + CNDomain, + ConcurrentWarningMessageIndicator, + CriticalityDiagnostics, + CSFallbackIndicator, + CSG-Id, + CSG-IdList, + CSGMembershipStatus, + Data-Forwarding-Not-Possible, + Direct-Forwarding-Path-Availability, + Global-ENB-ID, + EUTRAN-CGI, + ENBname, + ENB-StatusTransfer-TransparentContainer, + ENB-UE-S1AP-ID, + ExtendedRepetitionPeriod, + GTP-TEID, + GUMMEI, + GUMMEIType, + HandoverRestrictionList, + HandoverType, + Masked-IMEISV, + LAI, + LPPa-PDU, + ManagementBasedMDTAllowed, + MDTPLMNList, + MMEname, + MMERelaySupportIndicator, + MME-UE-S1AP-ID, + MSClassmark2, + MSClassmark3, + NAS-PDU, + NASSecurityParametersfromE-UTRAN, + NASSecurityParameterstoE-UTRAN, + OverloadResponse, + PagingDRX, + PagingPriority, + PLMNidentity, + ProSeAuthorized, + RIMTransfer, + RelativeMMECapacity, + RequestType, + E-RAB-ID, + E-RABLevelQoSParameters, + E-RABList, + RelayNode-Indicator, + Routing-ID, + SecurityKey, + SecurityContext, + ServedGUMMEIs, + SONConfigurationTransfer, + Source-ToTarget-TransparentContainer, + SourceBSS-ToTargetBSS-TransparentContainer, + SourceeNB-ToTargeteNB-TransparentContainer, + SourceRNC-ToTargetRNC-TransparentContainer, + SubscriberProfileIDforRFP, + SRVCCOperationNotPossible, + SRVCCOperationPossible, + SRVCCHOIndication, + SupportedTAs, + TAI, + Target-ToSource-TransparentContainer, + TargetBSS-ToSourceBSS-TransparentContainer, + TargeteNB-ToSourceeNB-TransparentContainer, + TargetID, + TargetRNC-ToSourceRNC-TransparentContainer, + TimeToWait, + TraceActivation, + TrafficLoadReductionIndication, + E-UTRAN-Trace-ID, + TransportLayerAddress, + UEIdentityIndexValue, + UEPagingID, + UERadioCapability, + UERadioCapabilityForPaging, + UE-RetentionInformation, + UE-S1AP-IDs, + UE-associatedLogicalS1-ConnectionItem, + UESecurityCapabilities, + S-TMSI, + MessageIdentifier, + SerialNumber, + WarningAreaList, + RepetitionPeriod, + NumberofBroadcastRequest, + WarningType, + WarningSecurityInfo, + DataCodingScheme, + WarningMessageContents, + BroadcastCompletedAreaList, + RRC-Establishment-Cause, + BroadcastCancelledAreaList, + PS-ServiceNotAvailable, + GUMMEIList, + Correlation-ID, + GWContextReleaseIndication, + PrivacyIndicator, + VoiceSupportMatchIndicator, + TunnelInformation, + KillAllWarningMessages, + TransportInformation, + LHN-ID, + UserLocationInformation, + AdditionalCSFallbackIndicator, + ECGIListForRestart, + TAIListForRestart, + EmergencyAreaIDListForRestart, + ExpectedUEBehaviour, + Paging-eDRXInformation, + Extended-UEIdentityIndexValue, + MME-Group-ID, + Additional-GUTI, + PWSfailedECGIList, + CellIdentifierAndCELevelForCECapableUEs, + AssistanceDataForPaging, + InformationOnRecommendedCellsAndENBsForPaging, + UE-Usage-Type, + UEUserPlaneCIoTSupportIndicator, + NB-IoT-DefaultPagingDRX, + NB-IoT-Paging-eDRXInformation, + CE-mode-B-SupportIndicator, + NB-IoT-UEIdentityIndexValue, + V2XServicesAuthorized, + DCN-ID, + ServedDCNs, + UESidelinkAggregateMaximumBitrate, + DLNASPDUDeliveryAckRequest, + Coverage-Level, + EnhancedCoverageRestricted, + DL-CP-SecurityInformation, + UL-CP-SecurityInformation, + CE-ModeBRestricted + + + +FROM S1AP-IEs + + PrivateIE-Container{}, + ProtocolExtensionContainer{}, + ProtocolIE-Container{}, + ProtocolIE-ContainerList{}, + ProtocolIE-ContainerPair{}, + ProtocolIE-ContainerPairList{}, + ProtocolIE-SingleContainer{}, + S1AP-PRIVATE-IES, + S1AP-PROTOCOL-EXTENSION, + S1AP-PROTOCOL-IES, + S1AP-PROTOCOL-IES-PAIR +FROM S1AP-Containers + + + id-AssistanceDataForPaging, + id-uEaggregateMaximumBitrate, + id-BearerType, + id-Cause, + id-CellAccessMode, + id-CellIdentifierAndCELevelForCECapableUEs, + id-cdma2000HORequiredIndication, + id-cdma2000HOStatus, + id-cdma2000OneXSRVCCInfo, + id-cdma2000OneXRAND, + id-cdma2000PDU, + id-cdma2000RATType, + id-cdma2000SectorID, + id-EUTRANRoundTripDelayEstimationInfo, + id-CNDomain, + id-ConcurrentWarningMessageIndicator, + id-CriticalityDiagnostics, + id-CSFallbackIndicator, + id-CSG-Id, + id-CSG-IdList, + id-CSGMembershipStatus, + id-Data-Forwarding-Not-Possible, + id-DefaultPagingDRX, + id-Direct-Forwarding-Path-Availability, + id-Global-ENB-ID, + id-EUTRAN-CGI, + id-eNBname, + id-eNB-StatusTransfer-TransparentContainer, + id-eNB-UE-S1AP-ID, + id-GERANtoLTEHOInformationRes, + id-GUMMEI-ID, + id-GUMMEIType, + id-HandoverRestrictionList, + id-HandoverType, + id-Masked-IMEISV, + id-InformationOnRecommendedCellsAndENBsForPaging, + id-InitialContextSetup, + id-Inter-SystemInformationTransferTypeEDT, + id-Inter-SystemInformationTransferTypeMDT, + id-LPPa-PDU, + id-NAS-DownlinkCount, + id-ManagementBasedMDTAllowed, + id-ManagementBasedMDTPLMNList, + id-MMEname, + id-MME-UE-S1AP-ID, + id-MSClassmark2, + id-MSClassmark3, + id-NAS-PDU, + id-NASSecurityParametersfromE-UTRAN, + id-NASSecurityParameterstoE-UTRAN, + id-OverloadResponse, + id-pagingDRX, + id-PagingPriority, + id-RelativeMMECapacity, + id-RequestType, + id-Routing-ID, + id-E-RABAdmittedItem, + id-E-RABAdmittedList, + id-E-RABDataForwardingItem, + id-E-RABFailedToModifyList, + id-E-RABFailedToReleaseList, + id-E-RABFailedtoSetupItemHOReqAck, + id-E-RABFailedToSetupListBearerSURes, + id-E-RABFailedToSetupListCtxtSURes, + id-E-RABFailedToSetupListHOReqAck, + id-E-RABFailedToBeReleasedList, + id-E-RABFailedToResumeListResumeReq, + id-E-RABFailedToResumeItemResumeReq, + id-E-RABFailedToResumeListResumeRes, + id-E-RABFailedToResumeItemResumeRes, + id-E-RABModify, + id-E-RABModifyItemBearerModRes, + id-E-RABModifyListBearerModRes, + id-E-RABRelease, + id-E-RABReleaseItemBearerRelComp, + id-E-RABReleaseItemHOCmd, + id-E-RABReleaseListBearerRelComp, + id-E-RABReleaseIndication, + id-E-RABSetup, + id-E-RABSetupItemBearerSURes, + id-E-RABSetupItemCtxtSURes, + id-E-RABSetupListBearerSURes, + id-E-RABSetupListCtxtSURes, + id-E-RABSubjecttoDataForwardingList, + id-E-RABToBeModifiedItemBearerModReq, + id-E-RABToBeModifiedListBearerModReq, + id-E-RABToBeModifiedListBearerModInd, + id-E-RABToBeModifiedItemBearerModInd, + id-E-RABNotToBeModifiedListBearerModInd, + id-E-RABNotToBeModifiedItemBearerModInd, + id-E-RABModifyListBearerModConf, + id-E-RABModifyItemBearerModConf, + id-E-RABFailedToModifyListBearerModConf, + id-E-RABToBeReleasedListBearerModConf, + id-E-RABToBeReleasedList, + id-E-RABReleasedList, + id-E-RABToBeSetupItemBearerSUReq, + id-E-RABToBeSetupItemCtxtSUReq, + id-E-RABToBeSetupItemHOReq, + id-E-RABToBeSetupListBearerSUReq, + id-E-RABToBeSetupListCtxtSUReq, + id-E-RABToBeSetupListHOReq, + id-E-RABToBeSwitchedDLItem, + id-E-RABToBeSwitchedDLList, + id-E-RABToBeSwitchedULList, + id-E-RABToBeSwitchedULItem, + id-E-RABtoReleaseListHOCmd, + id-ProSeAuthorized, + id-SecurityKey, + id-SecurityContext, + id-ServedGUMMEIs, + id-SONConfigurationTransferECT, + id-SONConfigurationTransferMCT, + id-Source-ToTarget-TransparentContainer, + id-Source-ToTarget-TransparentContainer-Secondary, + id-SourceMME-UE-S1AP-ID, + id-SRVCCOperationNotPossible, + id-SRVCCOperationPossible, + id-SRVCCHOIndication, + id-SubscriberProfileIDforRFP, + id-SupportedTAs, + id-S-TMSI, + id-TAI, + id-TAIItem, + id-TAIList, + id-Target-ToSource-TransparentContainer, + id-Target-ToSource-TransparentContainer-Secondary, + id-TargetID, + id-TimeToWait, + id-TraceActivation, + id-TrafficLoadReductionIndication, + id-E-UTRAN-Trace-ID, + id-UEIdentityIndexValue, + id-UEPagingID, + id-UERadioCapability, + id-UERadioCapabilityForPaging, + id-UTRANtoLTEHOInformationRes, + id-UE-associatedLogicalS1-ConnectionListResAck, + id-UE-associatedLogicalS1-ConnectionItem, + id-UE-RetentionInformation, + id-UESecurityCapabilities, + id-UE-S1AP-IDs, + id-V2XServicesAuthorized, + id-ResetType, + id-MessageIdentifier, + id-SerialNumber, + id-WarningAreaList, + id-RepetitionPeriod, + id-NumberofBroadcastRequest, + id-WarningType, + id-WarningSecurityInfo, + id-DataCodingScheme, + id-WarningMessageContents, + id-BroadcastCompletedAreaList, + id-BroadcastCancelledAreaList, + id-RRC-Establishment-Cause, + id-TraceCollectionEntityIPAddress, + maxnoofTAIs, + maxnoofErrors, + maxnoofE-RABs, + maxnoofIndividualS1ConnectionsToReset, + maxnoofEmergencyAreaID, + maxnoofCellID, + maxnoofTAIforWarning, + maxnoofCellinTAI, + maxnoofCellinEAI, + id-ExtendedRepetitionPeriod, + id-PS-ServiceNotAvailable, + id-RegisteredLAI, + id-GUMMEIList, + id-SourceMME-GUMMEI, + id-MME-UE-S1AP-ID-2, + id-GW-TransportLayerAddress, + id-RelayNode-Indicator, + id-Correlation-ID, + id-MMERelaySupportIndicator, + id-GWContextReleaseIndication, + id-PrivacyIndicator, + id-VoiceSupportMatchIndicator, + id-Tunnel-Information-for-BBF, + id-SIPTO-Correlation-ID, + id-SIPTO-L-GW-TransportLayerAddress, + id-KillAllWarningMessages, + id-TransportInformation, + id-LHN-ID, + id-UserLocationInformation, + id-AdditionalCSFallbackIndicator, + id-ECGIListForRestart, + id-TAIListForRestart, + id-EmergencyAreaIDListForRestart, + id-ExpectedUEBehaviour, + id-Paging-eDRXInformation, + id-extended-UEIdentityIndexValue, + id-CSGMembershipInfo, + id-MME-Group-ID, + id-Additional-GUTI, + id-S1-Message, + id-PWSfailedECGIList, + id-PWSFailureIndication, + id-UE-Usage-Type, + id-UEUserPlaneCIoTSupportIndicator, + id-NB-IoT-DefaultPagingDRX, + id-NB-IoT-Paging-eDRXInformation, + id-CE-mode-B-SupportIndicator, + id-NB-IoT-UEIdentityIndexValue, + id-RRC-Resume-Cause, + id-DCN-ID, + id-ServedDCNs, + id-UESidelinkAggregateMaximumBitrate, + id-DLNASPDUDeliveryAckRequest, + id-Coverage-Level, + id-EnhancedCoverageRestricted, + id-UE-Level-QoS-Parameters, + id-DL-CP-SecurityInformation, + id-UL-CP-SecurityInformation, + id-CE-ModeBRestricted + + +FROM S1AP-Constants; + +-- ************************************************************** +-- +-- Common Container Lists +-- +-- ************************************************************** + +E-RAB-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofE-RABs, {IEsSetParam} } +E-RAB-IE-ContainerPairList { S1AP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxnoofE-RABs, {IEsSetParam} } +ProtocolError-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofE-RABs, {IEsSetParam} } + +-- ************************************************************** +-- +-- HANDOVER PREPARATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Required +-- +-- ************************************************************** + +HandoverRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverRequiredIEs} }, + ... +} + +HandoverRequiredIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-TargetID CRITICALITY reject TYPE TargetID PRESENCE mandatory}| + { ID id-Direct-Forwarding-Path-Availability CRITICALITY ignore TYPE Direct-Forwarding-Path-Availability PRESENCE optional}| + { ID id-SRVCCHOIndication CRITICALITY reject TYPE SRVCCHOIndication PRESENCE optional}| + { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory}| + { ID id-Source-ToTarget-TransparentContainer-Secondary CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE optional}| + { ID id-MSClassmark2 CRITICALITY reject TYPE MSClassmark2 PRESENCE conditional}| + { ID id-MSClassmark3 CRITICALITY ignore TYPE MSClassmark3 PRESENCE conditional}| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional}| + { ID id-PS-ServiceNotAvailable CRITICALITY ignore TYPE PS-ServiceNotAvailable PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- Handover Command +-- +-- ************************************************************** + +HandoverCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCommandIEs} }, + ... +} + +HandoverCommandIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}| + { ID id-NASSecurityParametersfromE-UTRAN CRITICALITY reject TYPE NASSecurityParametersfromE-UTRAN PRESENCE conditional + -- This IE shall be present if HandoverType IE is set to value "LTEtoUTRAN" or "LTEtoGERAN" --}| + { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional}| + { ID id-E-RABtoReleaseListHOCmd CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory}| + { ID id-Target-ToSource-TransparentContainer-Secondary CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +E-RABSubjecttoDataForwardingList ::= E-RAB-IE-ContainerList { {E-RABDataForwardingItemIEs} } + +E-RABDataForwardingItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABDataForwardingItem CRITICALITY ignore TYPE E-RABDataForwardingItem PRESENCE mandatory }, + ... +} + +E-RABDataForwardingItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-transportLayerAddress TransportLayerAddress OPTIONAL, + dL-gTP-TEID GTP-TEID OPTIONAL, + uL-TransportLayerAddress TransportLayerAddress OPTIONAL, + uL-GTP-TEID GTP-TEID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { E-RABDataForwardingItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABDataForwardingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- Handover Preparation Failure +-- +-- ************************************************************** + +HandoverPreparationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverPreparationFailureIEs} }, + ... +} + +HandoverPreparationFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER RESOURCE ALLOCATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Request +-- +-- ************************************************************** + +HandoverRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {HandoverRequestIEs} }, + ... +} + +HandoverRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory}| + { ID id-E-RABToBeSetupListHOReq CRITICALITY reject TYPE E-RABToBeSetupListHOReq PRESENCE mandatory}| + { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}| + { ID id-NASSecurityParameterstoE-UTRAN CRITICALITY reject TYPE NASSecurityParameterstoE-UTRAN PRESENCE conditional + -- This IE shall be present if the Handover Type IE is set to the value "UTRANtoLTE" or "GERANtoLTE" -- }| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional}| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional}| + { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional}| + { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| + { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}| + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}, + ... +} + +E-RABToBeSetupListHOReq ::= E-RAB-IE-ContainerList { {E-RABToBeSetupItemHOReqIEs} } + +E-RABToBeSetupItemHOReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemHOReq CRITICALITY reject TYPE E-RABToBeSetupItemHOReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemHOReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + e-RABlevelQosParameters E-RABLevelQoSParameters, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemHOReq-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSetupItemHOReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-Data-Forwarding-Not-Possible CRITICALITY ignore EXTENSION Data-Forwarding-Not-Possible PRESENCE optional}| + { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Handover Request Acknowledge +-- +-- ************************************************************** + +HandoverRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {HandoverRequestAcknowledgeIEs} }, + ... +} + +HandoverRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABAdmittedList CRITICALITY ignore TYPE E-RABAdmittedList PRESENCE mandatory}| + { ID id-E-RABFailedToSetupListHOReqAck CRITICALITY ignore TYPE E-RABFailedtoSetupListHOReqAck PRESENCE optional}| + { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory}| + { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional}| + { ID id-CE-mode-B-SupportIndicator CRITICALITY ignore TYPE CE-mode-B-SupportIndicator PRESENCE optional}, + ... +} + +E-RABAdmittedList ::= E-RAB-IE-ContainerList { {E-RABAdmittedItemIEs} } + +E-RABAdmittedItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABAdmittedItem CRITICALITY ignore TYPE E-RABAdmittedItem PRESENCE mandatory }, + ... +} + +E-RABAdmittedItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + dL-transportLayerAddress TransportLayerAddress OPTIONAL, + dL-gTP-TEID GTP-TEID OPTIONAL, + uL-TransportLayerAddress TransportLayerAddress OPTIONAL, + uL-GTP-TEID GTP-TEID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABAdmittedItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABAdmittedItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABFailedtoSetupListHOReqAck ::= E-RAB-IE-ContainerList { {E-RABFailedtoSetupItemHOReqAckIEs} } + +E-RABFailedtoSetupItemHOReqAckIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABFailedtoSetupItemHOReqAck CRITICALITY ignore TYPE E-RABFailedToSetupItemHOReqAck PRESENCE mandatory }, + ... +} + +E-RABFailedToSetupItemHOReqAck ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { E-RABFailedToSetupItemHOReqAckExtIEs} } OPTIONAL, + ... +} + +E-RABFailedToSetupItemHOReqAckExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Handover Failure +-- +-- ************************************************************** + +HandoverFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverFailureIEs} }, + ... +} + +HandoverFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER NOTIFICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Notify +-- +-- ************************************************************** + +HandoverNotify ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverNotifyIEs} }, + ... +} + +HandoverNotifyIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- PATH SWITCH REQUEST ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Path Switch Request +-- +-- ************************************************************** + +PathSwitchRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestIEs} }, + ... +} + +PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABToBeSwitchedDLList CRITICALITY reject TYPE E-RABToBeSwitchedDLList PRESENCE mandatory}| + { ID id-SourceMME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY ignore TYPE UESecurityCapabilities PRESENCE mandatory}| + { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional}| + { ID id-SourceMME-GUMMEI CRITICALITY ignore TYPE GUMMEI PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}| + { ID id-RRC-Resume-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE optional }, + ... +} + +E-RABToBeSwitchedDLList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedDLItemIEs} } + +E-RABToBeSwitchedDLItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSwitchedDLItem CRITICALITY reject TYPE E-RABToBeSwitchedDLItem PRESENCE mandatory }, + ... +} + +E-RABToBeSwitchedDLItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedDLItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSwitchedDLItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Path Switch Request Acknowledge +-- +-- ************************************************************** + +PathSwitchRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestAcknowledgeIEs} }, + ... +} + +PathSwitchRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional}| + { ID id-E-RABToBeSwitchedULList CRITICALITY ignore TYPE E-RABToBeSwitchedULList PRESENCE optional}| + { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| + { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}| + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}, + ... +} + +E-RABToBeSwitchedULList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedULItemIEs} } + +E-RABToBeSwitchedULItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSwitchedULItem CRITICALITY ignore TYPE E-RABToBeSwitchedULItem PRESENCE mandatory }, + ... +} + +E-RABToBeSwitchedULItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedULItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSwitchedULItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Path Switch Request Failure +-- +-- ************************************************************** + +PathSwitchRequestFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestFailureIEs} }, + ... +} + +PathSwitchRequestFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER CANCEL ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Cancel +-- +-- ************************************************************** + +HandoverCancel ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCancelIEs} }, + ... +} + +HandoverCancelIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Handover Cancel Request Acknowledge +-- +-- ************************************************************** + +HandoverCancelAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCancelAcknowledgeIEs} }, + ... +} + +HandoverCancelAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- E-RAB SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Setup Request +-- +-- ************************************************************** + +E-RABSetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABSetupRequestIEs} }, + ... +} + +E-RABSetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeSetupListBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupListBearerSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupListBearerSUReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemBearerSUReqIEs} } + +E-RABToBeSetupItemBearerSUReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupItemBearerSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemBearerSUReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABlevelQoSParameters E-RABLevelQoSParameters, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + nAS-PDU NAS-PDU, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemBearerSUReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeSetupItemBearerSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- E-RAB Setup Response +-- +-- ************************************************************** + +E-RABSetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABSetupResponseIEs} }, + ... +} + +E-RABSetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABSetupListBearerSURes CRITICALITY ignore TYPE E-RABSetupListBearerSURes PRESENCE optional }| + { ID id-E-RABFailedToSetupListBearerSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABSetupListBearerSURes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemBearerSUResIEs} } + +E-RABSetupItemBearerSUResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABSetupItemBearerSURes CRITICALITY ignore TYPE E-RABSetupItemBearerSURes PRESENCE mandatory }, + ... +} + +E-RABSetupItemBearerSURes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemBearerSUResExtIEs} } OPTIONAL, + ... +} + + +E-RABSetupItemBearerSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- E-RAB MODIFY ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Modify Request +-- +-- ************************************************************** + +E-RABModifyRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABModifyRequestIEs} }, + ... +} + +E-RABModifyRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeModifiedListBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedListBearerModReq PRESENCE mandatory }, + ... +} + +E-RABToBeModifiedListBearerModReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeModifiedItemBearerModReqIEs} } + +E-RABToBeModifiedItemBearerModReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeModifiedItemBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModReq PRESENCE mandatory }, + ... +} + +E-RABToBeModifiedItemBearerModReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABLevelQoSParameters E-RABLevelQoSParameters, + nAS-PDU NAS-PDU, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeModifyItemBearerModReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeModifyItemBearerModReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-TransportInformation CRITICALITY reject EXTENSION TransportInformation PRESENCE optional}, + ... +} + + + +-- ************************************************************** +-- +-- E-RAB Modify Response +-- +-- ************************************************************** + +E-RABModifyResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABModifyResponseIEs} }, + ... +} + +E-RABModifyResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABModifyListBearerModRes CRITICALITY ignore TYPE E-RABModifyListBearerModRes PRESENCE optional }| + { ID id-E-RABFailedToModifyList CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABModifyListBearerModRes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModResIEs} } + +E-RABModifyItemBearerModResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABModifyItemBearerModRes CRITICALITY ignore TYPE E-RABModifyItemBearerModRes PRESENCE mandatory}, + ... +} + +E-RABModifyItemBearerModRes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModResExtIEs} } OPTIONAL, + ... +} + + +E-RABModifyItemBearerModResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + + +-- ************************************************************** +-- +-- E-RAB RELEASE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Release Command +-- +-- ************************************************************** + +E-RABReleaseCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABReleaseCommandIEs} }, + ... +} + +E-RABReleaseCommandIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }| + { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- E-RAB Release Response +-- +-- ************************************************************** + +E-RABReleaseResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { E-RABReleaseResponseIEs } }, + ... +} + +E-RABReleaseResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABReleaseListBearerRelComp CRITICALITY ignore TYPE E-RABReleaseListBearerRelComp PRESENCE optional }| + { ID id-E-RABFailedToReleaseList CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }| +-- Extension for Release 12 to support User Location Information -- + { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }, + ... +} + + +E-RABReleaseListBearerRelComp ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABReleaseItemBearerRelCompIEs} } + +E-RABReleaseItemBearerRelCompIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABReleaseItemBearerRelComp CRITICALITY ignore TYPE E-RABReleaseItemBearerRelComp PRESENCE mandatory }, + ... +} + +E-RABReleaseItemBearerRelComp ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABReleaseItemBearerRelCompExtIEs} } OPTIONAL, + ... +} + + +E-RABReleaseItemBearerRelCompExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- E-RAB RELEASE INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Release Indication +-- +-- ************************************************************** + +E-RABReleaseIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABReleaseIndicationIEs} }, + ... +} + +E-RABReleaseIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }| +-- Extension for Release 12 to support User Location Information -- + { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- INITIAL CONTEXT SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Initial Context Setup Request +-- +-- ************************************************************** + +InitialContextSetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupRequestIEs} }, + ... +} + +InitialContextSetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory}| + { ID id-E-RABToBeSetupListCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupListCtxtSUReq PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory}| + { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE mandatory}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| + { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional}| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional}| + { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional}| + { ID id-AdditionalCSFallbackIndicator CRITICALITY ignore TYPE AdditionalCSFallbackIndicator PRESENCE conditional}| + { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| + { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}| + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}, + ... +} + + + + +E-RABToBeSetupListCtxtSUReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemCtxtSUReqIEs} } + +E-RABToBeSetupItemCtxtSUReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupItemCtxtSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemCtxtSUReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABlevelQoSParameters E-RABLevelQoSParameters, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + nAS-PDU NAS-PDU OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemCtxtSUReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeSetupItemCtxtSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- Initial Context Setup Response +-- +-- ************************************************************** + +InitialContextSetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupResponseIEs} }, + ... +} + +InitialContextSetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABSetupListCtxtSURes CRITICALITY ignore TYPE E-RABSetupListCtxtSURes PRESENCE mandatory }| + { ID id-E-RABFailedToSetupListCtxtSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABSetupListCtxtSURes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemCtxtSUResIEs} } + +E-RABSetupItemCtxtSUResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABSetupItemCtxtSURes CRITICALITY ignore TYPE E-RABSetupItemCtxtSURes PRESENCE mandatory }, + ... +} + +E-RABSetupItemCtxtSURes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemCtxtSUResExtIEs} } OPTIONAL, + ... +} + + +E-RABSetupItemCtxtSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Initial Context Setup Failure +-- +-- ************************************************************** + +InitialContextSetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupFailureIEs} }, + ... +} + +InitialContextSetupFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- PAGING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + + +-- ************************************************************** +-- +-- Paging +-- +-- ************************************************************** + +Paging ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{PagingIEs}}, + ... +} + +PagingIEs S1AP-PROTOCOL-IES ::= { + { ID id-UEIdentityIndexValue CRITICALITY ignore TYPE UEIdentityIndexValue PRESENCE mandatory}| + { ID id-UEPagingID CRITICALITY ignore TYPE UEPagingID PRESENCE mandatory}| + { ID id-pagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional}| + { ID id-CNDomain CRITICALITY ignore TYPE CNDomain PRESENCE mandatory}| + { ID id-TAIList CRITICALITY ignore TYPE TAIList PRESENCE mandatory}| + { ID id-CSG-IdList CRITICALITY ignore TYPE CSG-IdList PRESENCE optional}| + { ID id-PagingPriority CRITICALITY ignore TYPE PagingPriority PRESENCE optional}| + { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional}| +-- Extension for Release 13 to support Paging Optimisation and Coverage Enhancement paging –- + { ID id-AssistanceDataForPaging CRITICALITY ignore TYPE AssistanceDataForPaging PRESENCE optional}| + { ID id-Paging-eDRXInformation CRITICALITY ignore TYPE Paging-eDRXInformation PRESENCE optional}| + { ID id-extended-UEIdentityIndexValue CRITICALITY ignore TYPE Extended-UEIdentityIndexValue PRESENCE optional}| + { ID id-NB-IoT-Paging-eDRXInformation CRITICALITY ignore TYPE NB-IoT-Paging-eDRXInformation PRESENCE optional}| + { ID id-NB-IoT-UEIdentityIndexValue CRITICALITY ignore TYPE NB-IoT-UEIdentityIndexValue PRESENCE optional}| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}| + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}, + ... +} + +TAIList::= SEQUENCE (SIZE(1.. maxnoofTAIs)) OF ProtocolIE-SingleContainer {{TAIItemIEs}} + +TAIItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-TAIItem CRITICALITY ignore TYPE TAIItem PRESENCE mandatory }, + ... +} + +TAIItem ::= SEQUENCE { + tAI TAI, + iE-Extensions ProtocolExtensionContainer { {TAIItemExtIEs} } OPTIONAL, + ... +} + + +TAIItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- UE CONTEXT RELEASE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Release Request +-- +-- ************************************************************** + +UEContextReleaseRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseRequest-IEs}}, + ... +} + +UEContextReleaseRequest-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-GWContextReleaseIndication CRITICALITY reject TYPE GWContextReleaseIndication PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- UE Context Release Command +-- +-- ************************************************************** + +UEContextReleaseCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseCommand-IEs}}, + ... +} + +UEContextReleaseCommand-IEs S1AP-PROTOCOL-IES ::= { + { ID id-UE-S1AP-IDs CRITICALITY reject TYPE UE-S1AP-IDs PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UE Context Release Complete +-- +-- ************************************************************** + +UEContextReleaseComplete ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseComplete-IEs}}, + ... +} + +UEContextReleaseComplete-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| +-- Extension for Release 12 to support User Location Information -- + { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional}| +-- Extension for Release 13 to support Paging Optimisation + { ID id-InformationOnRecommendedCellsAndENBsForPaging CRITICALITY ignore TYPE InformationOnRecommendedCellsAndENBsForPaging PRESENCE optional}| +-- Extension for Release 13 to support coverage enhancement paging – + { ID id-CellIdentifierAndCELevelForCECapableUEs CRITICALITY ignore TYPE CellIdentifierAndCELevelForCECapableUEs PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- UE CONTEXT MODIFICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Modification Request +-- +-- ************************************************************** + +UEContextModificationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationRequestIEs} }, + ... +} + +UEContextModificationRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE optional}| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| + { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional}| + { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}| + { ID id-AdditionalCSFallbackIndicator CRITICALITY ignore TYPE AdditionalCSFallbackIndicator PRESENCE conditional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-SRVCCOperationNotPossible CRITICALITY ignore TYPE SRVCCOperationNotPossible PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| + { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}, + ... +} +-- ************************************************************** +-- +-- UE Context Modification Response +-- +-- ************************************************************** + +UEContextModificationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationResponseIEs} }, + ... +} + +UEContextModificationResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- UE Context Modification Failure +-- +-- ************************************************************** + +UEContextModificationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationFailureIEs} }, + ... +} + +UEContextModificationFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- UE RADIO CAPABILITY MATCH ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Radio Capability Match Request +-- +-- ************************************************************** + +UERadioCapabilityMatchRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UERadioCapabilityMatchRequestIEs} }, + ... +} + +UERadioCapabilityMatchRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- UE Radio Capability Match Response +-- +-- ************************************************************** + +UERadioCapabilityMatchResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UERadioCapabilityMatchResponseIEs} }, + ... +} + +UERadioCapabilityMatchResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-VoiceSupportMatchIndicator CRITICALITY reject TYPE VoiceSupportMatchIndicator PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- NAS TRANSPORT ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- DOWNLINK NAS TRANSPORT +-- +-- ************************************************************** + +DownlinkNASTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkNASTransport-IEs}}, + ... +} + +DownlinkNASTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}| + { ID id-DLNASPDUDeliveryAckRequest CRITICALITY ignore TYPE DLNASPDUDeliveryAckRequest PRESENCE optional}| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}| + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- INITIAL UE MESSAGE +-- +-- ************************************************************** + +InitialUEMessage ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{InitialUEMessage-IEs}}, + ... +} + +InitialUEMessage-IEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}| + { ID id-TAI CRITICALITY reject TYPE TAI PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-RRC-Establishment-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE mandatory}| + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE optional}| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional}| + { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-RelayNode-Indicator CRITICALITY reject TYPE RelayNode-Indicator PRESENCE optional}| + { ID id-GUMMEIType CRITICALITY ignore TYPE GUMMEIType PRESENCE optional}| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}| + { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}| + { ID id-MME-Group-ID CRITICALITY ignore TYPE MME-Group-ID PRESENCE optional}| + { ID id-UE-Usage-Type CRITICALITY ignore TYPE UE-Usage-Type PRESENCE optional}| + { ID id-CE-mode-B-SupportIndicator CRITICALITY ignore TYPE CE-mode-B-SupportIndicator PRESENCE optional}| + { ID id-DCN-ID CRITICALITY ignore TYPE DCN-ID PRESENCE optional}| + { ID id-Coverage-Level CRITICALITY ignore TYPE Coverage-Level PRESENCE optional}, + + ... +} + + +-- ************************************************************** +-- +-- UPLINK NAS TRANSPORT +-- +-- ************************************************************** + +UplinkNASTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkNASTransport-IEs}}, + ... +} + +UplinkNASTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| + { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, + ... +} +-- ************************************************************** +-- +-- NAS NON DELIVERY INDICATION +-- +-- ************************************************************** + +NASNonDeliveryIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{NASNonDeliveryIndication-IEs}}, + ... +} + +NASNonDeliveryIndication-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- REROUTE NAS REQUEST +-- +-- ************************************************************** + +RerouteNASRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RerouteNASRequest-IEs}}, + ... +} + +RerouteNASRequest-IEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-S1-Message CRITICALITY reject TYPE OCTET STRING PRESENCE mandatory}| + { ID id-MME-Group-ID CRITICALITY reject TYPE MME-Group-ID PRESENCE mandatory}| + { ID id-Additional-GUTI CRITICALITY ignore TYPE Additional-GUTI PRESENCE optional}| + { ID id-UE-Usage-Type CRITICALITY ignore TYPE UE-Usage-Type PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- NAS DELIVERY INDICATION +-- +-- ************************************************************** + +NASDeliveryIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { NASDeliveryIndicationIEs} }, + ... +} + +NASDeliveryIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- RESET ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Reset +-- +-- ************************************************************** + +Reset ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ResetIEs} }, + ... +} + +ResetIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-ResetType CRITICALITY reject TYPE ResetType PRESENCE mandatory }, + ... +} + +ResetType ::= CHOICE { + s1-Interface ResetAll, + partOfS1-Interface UE-associatedLogicalS1-ConnectionListRes, + ... +} + + + +ResetAll ::= ENUMERATED { + reset-all, + ... +} + +UE-associatedLogicalS1-ConnectionListRes ::= SEQUENCE (SIZE(1.. maxnoofIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemRes } } + +UE-associatedLogicalS1-ConnectionItemRes S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY reject TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- Reset Acknowledge +-- +-- ************************************************************** + +ResetAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} }, + ... +} + +ResetAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionListResAck CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionListResAck PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +UE-associatedLogicalS1-ConnectionListResAck ::= SEQUENCE (SIZE(1.. maxnoofIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemResAck } } + +UE-associatedLogicalS1-ConnectionItemResAck S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- ERROR INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Error Indication +-- +-- ************************************************************** + +ErrorIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ErrorIndicationIEs}}, + ... +} + +ErrorIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE optional }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- S1 SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- S1 Setup Request +-- +-- ************************************************************** + +S1SetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupRequestIEs} }, + ... +} + +S1SetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}| + { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional}| + { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE mandatory}| + { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE mandatory}| + { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}| + { ID id-UE-RetentionInformation CRITICALITY ignore TYPE UE-RetentionInformation PRESENCE optional}| + { ID id-NB-IoT-DefaultPagingDRX CRITICALITY ignore TYPE NB-IoT-DefaultPagingDRX PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- S1 Setup Response +-- +-- ************************************************************** + +S1SetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupResponseIEs} }, + ... +} + + +S1SetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional}| + { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE mandatory}| + { ID id-RelativeMMECapacity CRITICALITY ignore TYPE RelativeMMECapacity PRESENCE mandatory}| + { ID id-MMERelaySupportIndicator CRITICALITY ignore TYPE MMERelaySupportIndicator PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-UE-RetentionInformation CRITICALITY ignore TYPE UE-RetentionInformation PRESENCE optional}| + { ID id-ServedDCNs CRITICALITY ignore TYPE ServedDCNs PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- S1 Setup Failure +-- +-- ************************************************************** + +S1SetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupFailureIEs} }, + ... +} + +S1SetupFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Configuration Update +-- +-- ************************************************************** + +ENBConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateIEs} }, + ... +} + +ENBConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= { + { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional}| + { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE optional}| + { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}| + { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional}| + { ID id-NB-IoT-DefaultPagingDRX CRITICALITY ignore TYPE NB-IoT-DefaultPagingDRX PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- eNB Configuration Update Acknowledge +-- +-- ************************************************************** + +ENBConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateAcknowledgeIEs} }, + ... +} + + +ENBConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- eNB Configuration Update Failure +-- +-- ************************************************************** + +ENBConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateFailureIEs} }, + ... +} + +ENBConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, +... +} + + +-- ************************************************************** +-- +-- MME CONFIGURATION UPDATE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Configuration Update +-- +-- ************************************************************** + +MMEConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateIEs} }, + ... +} + +MMEConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= { + { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }| + { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE optional }| + { ID id-RelativeMMECapacity CRITICALITY reject TYPE RelativeMMECapacity PRESENCE optional }| + { ID id-ServedDCNs CRITICALITY ignore TYPE ServedDCNs PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- MME Configuration Update Acknowledge +-- +-- ************************************************************** + +MMEConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateAcknowledgeIEs} }, + ... +} + + +MMEConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- MME Configuration Update Failure +-- +-- ************************************************************** + +MMEConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateFailureIEs} }, + ... +} + +MMEConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- DOWNLINK S1 CDMA2000 TUNNELLING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Downlink S1 CDMA2000 Tunnelling +-- +-- ************************************************************** + +DownlinkS1cdma2000tunnelling ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {DownlinkS1cdma2000tunnellingIEs} }, + ... +} + +DownlinkS1cdma2000tunnellingIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional }| + { ID id-cdma2000HOStatus CRITICALITY ignore TYPE Cdma2000HOStatus PRESENCE optional }| + { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory }| + { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UPLINK S1 CDMA2000 TUNNELLING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Uplink S1 CDMA2000 Tunnelling +-- +-- ************************************************************** + +UplinkS1cdma2000tunnelling ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {UplinkS1cdma2000tunnellingIEs} }, + ... +} + +UplinkS1cdma2000tunnellingIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory }| + { ID id-cdma2000SectorID CRITICALITY reject TYPE Cdma2000SectorID PRESENCE mandatory }| + { ID id-cdma2000HORequiredIndication CRITICALITY ignore TYPE Cdma2000HORequiredIndication PRESENCE optional }| + { ID id-cdma2000OneXSRVCCInfo CRITICALITY reject TYPE Cdma2000OneXSRVCCInfo PRESENCE optional }| + { ID id-cdma2000OneXRAND CRITICALITY reject TYPE Cdma2000OneXRAND PRESENCE optional }| + { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory }| + { ID id-EUTRANRoundTripDelayEstimationInfo CRITICALITY ignore TYPE EUTRANRoundTripDelayEstimationInfo PRESENCE optional }, + -- Extension for Release 9 to assist target HRPD access with the acquisition of the UE -- + ... +} + + +-- ************************************************************** +-- +-- UE CAPABILITY INFO INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Capability Info Indication +-- +-- ************************************************************** + +UECapabilityInfoIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UECapabilityInfoIndicationIEs} }, + ... +} + +UECapabilityInfoIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE mandatory}| + { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- eNB STATUS TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Status Transfer +-- +-- ************************************************************** + +ENBStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBStatusTransferIEs} }, + ... +} + +ENBStatusTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- MME STATUS TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Status Transfer +-- +-- ************************************************************** + +MMEStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEStatusTransferIEs} }, + ... +} + +MMEStatusTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- TRACE ELEMENTARY PROCEDURES +-- +-- ************************************************************** +-- ************************************************************** +-- +-- Trace Start +-- +-- ************************************************************** + +TraceStart ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {TraceStartIEs} }, + ... +} + +TraceStartIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Trace Failure Indication +-- +-- ************************************************************** + +TraceFailureIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {TraceFailureIndicationIEs} }, + ... +} + +TraceFailureIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- DEACTIVATE TRACE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Deactivate Trace +-- +-- ************************************************************** + +DeactivateTrace ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { DeactivateTraceIEs} }, + ... +} + +DeactivateTraceIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- CELL TRAFFIC TRACE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Cell Traffic Trace +-- +-- ************************************************************** + +CellTrafficTrace ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { CellTrafficTraceIEs } }, + ... +} + +CellTrafficTraceIEs S1AP-PROTOCOL-IES ::= { + {ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + {ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + {ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }| + {ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }| + {ID id-TraceCollectionEntityIPAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE mandatory }| + {ID id-PrivacyIndicator CRITICALITY ignore TYPE PrivacyIndicator PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- LOCATION ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Location Reporting Control +-- +-- ************************************************************** + +LocationReportingControl ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportingControlIEs} }, + ... +} + +LocationReportingControlIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Location Report Failure Indication +-- +-- ************************************************************** + +LocationReportingFailureIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportingFailureIndicationIEs} }, + ... +} + +LocationReportingFailureIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Location Report +-- +-- ************************************************************** + +LocationReport ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportIEs} }, + ... +} + +LocationReportIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory }| + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- OVERLOAD ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Overload Start +-- +-- ************************************************************** + +OverloadStart ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {OverloadStartIEs} }, + ... +} + +OverloadStartIEs S1AP-PROTOCOL-IES ::= { + { ID id-OverloadResponse CRITICALITY reject TYPE OverloadResponse PRESENCE mandatory }| + { ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional }| + { ID id-TrafficLoadReductionIndication CRITICALITY ignore TYPE TrafficLoadReductionIndication PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- Overload Stop +-- +-- ************************************************************** + +OverloadStop ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {OverloadStopIEs} }, + ... +} + +OverloadStopIEs S1AP-PROTOCOL-IES ::= { +{ ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- WRITE-REPLACE WARNING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Write-Replace Warning Request +-- +-- ************************************************************** + + +WriteReplaceWarningRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {WriteReplaceWarningRequestIEs} }, + ... +} + +WriteReplaceWarningRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional }| + { ID id-RepetitionPeriod CRITICALITY reject TYPE RepetitionPeriod PRESENCE mandatory }| + { ID id-ExtendedRepetitionPeriod CRITICALITY reject TYPE ExtendedRepetitionPeriod PRESENCE optional }| + { ID id-NumberofBroadcastRequest CRITICALITY reject TYPE NumberofBroadcastRequest PRESENCE mandatory }| + { ID id-WarningType CRITICALITY ignore TYPE WarningType PRESENCE optional }| + { ID id-WarningSecurityInfo CRITICALITY ignore TYPE WarningSecurityInfo PRESENCE optional }| + { ID id-DataCodingScheme CRITICALITY ignore TYPE DataCodingScheme PRESENCE optional }| + { ID id-WarningMessageContents CRITICALITY ignore TYPE WarningMessageContents PRESENCE optional }| + { ID id-ConcurrentWarningMessageIndicator CRITICALITY reject TYPE ConcurrentWarningMessageIndicator PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- Write-Replace Warning Response +-- +-- ************************************************************** + +WriteReplaceWarningResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {WriteReplaceWarningResponseIEs} }, + ... +} + +WriteReplaceWarningResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-BroadcastCompletedAreaList CRITICALITY ignore TYPE BroadcastCompletedAreaList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- eNB DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Direct Information Transfer +-- +-- ************************************************************** + +ENBDirectInformationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ ENBDirectInformationTransferIEs}}, + ... +} + +ENBDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-Inter-SystemInformationTransferTypeEDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory }, + ... +} + +Inter-SystemInformationTransferType ::= CHOICE { + rIMTransfer RIMTransfer, + ... +} + +-- ************************************************************** +-- +-- MME DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Direct Information Transfer +-- +-- ************************************************************** + +MMEDirectInformationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ MMEDirectInformationTransferIEs}}, + ... +} + +MMEDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-Inter-SystemInformationTransferTypeMDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory }, + ... +} +-- ************************************************************** +-- +-- eNB CONFIGURATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Configuration Transfer +-- +-- ************************************************************** + +ENBConfigurationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ ENBConfigurationTransferIEs}}, + ... +} + +ENBConfigurationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-SONConfigurationTransferECT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- MME CONFIGURATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Configuration Transfer +-- +-- ************************************************************** + +MMEConfigurationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ MMEConfigurationTransferIEs}}, + ... +} + +MMEConfigurationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-SONConfigurationTransferMCT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- PRIVATE MESSAGE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Private Message +-- +-- ************************************************************** + +PrivateMessage ::= SEQUENCE { + privateIEs PrivateIE-Container {{PrivateMessageIEs}}, + ... +} + +PrivateMessageIEs S1AP-PRIVATE-IES ::= { + ... +} + +-- ************************************************************** +-- +-- KILL PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Kill Request +-- +-- ************************************************************** + + +KillRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {KillRequestIEs} }, + ... +} + +KillRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory}| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory}| + { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional}| + { ID id-KillAllWarningMessages CRITICALITY reject TYPE KillAllWarningMessages PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Kill Response +-- +-- ************************************************************** + +KillResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {KillResponseIEs} }, + ... +} + +KillResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-BroadcastCancelledAreaList CRITICALITY ignore TYPE BroadcastCancelledAreaList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- PWS RESTART INDICATION PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- PWS Restart Indication +-- +-- ************************************************************** + +PWSRestartIndication::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ PWSRestartIndicationIEs}}, + ... +} + +PWSRestartIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-ECGIListForRestart CRITICALITY reject TYPE ECGIListForRestart PRESENCE mandatory}| + { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}| + { ID id-TAIListForRestart CRITICALITY reject TYPE TAIListForRestart PRESENCE mandatory}| + { ID id-EmergencyAreaIDListForRestart CRITICALITY reject TYPE EmergencyAreaIDListForRestart PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- PWS Failure Indication +-- +-- ************************************************************** + +PWSFailureIndication::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ PWSFailureIndicationIEs}}, + ... +} + +PWSFailureIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-PWSfailedECGIList CRITICALITY reject TYPE PWSfailedECGIList PRESENCE mandatory}| + { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- LPPA TRANSPORT ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- DOWNLINK UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +DownlinkUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkUEAssociatedLPPaTransport-IEs}}, + ... +} + +DownlinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UPLINK UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +UplinkUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkUEAssociatedLPPaTransport-IEs}}, + ... +} + +UplinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- DOWNLINK NON UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +DownlinkNonUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkNonUEAssociatedLPPaTransport-IEs}}, + ... +} + +DownlinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UPLINK NON UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +UplinkNonUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkNonUEAssociatedLPPaTransport-IEs}}, + ... +} + +UplinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + + +-- ************************************************************** +-- +-- E-RAB MODIFICATION INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Modification Indication +-- +-- ************************************************************** + +E-RABModificationIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { E-RABModificationIndicationIEs} }, + ... +} + +E-RABModificationIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABToBeModifiedListBearerModInd CRITICALITY reject TYPE E-RABToBeModifiedListBearerModInd PRESENCE mandatory}| + { ID id-E-RABNotToBeModifiedListBearerModInd CRITICALITY reject TYPE E-RABNotToBeModifiedListBearerModInd PRESENCE optional}| + { ID id-CSGMembershipInfo CRITICALITY reject TYPE CSGMembershipInfo PRESENCE optional}| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}, + ... +} + +E-RABToBeModifiedListBearerModInd ::= E-RAB-IE-ContainerList { {E-RABToBeModifiedItemBearerModIndIEs} } + +E-RABToBeModifiedItemBearerModIndIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeModifiedItemBearerModInd CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModInd PRESENCE mandatory}, + ... +} + +E-RABToBeModifiedItemBearerModInd ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + dL-GTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABToBeModifiedItemBearerModInd-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeModifiedItemBearerModInd-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABNotToBeModifiedListBearerModInd ::= E-RAB-IE-ContainerList { {E-RABNotToBeModifiedItemBearerModIndIEs} } + +E-RABNotToBeModifiedItemBearerModIndIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABNotToBeModifiedItemBearerModInd CRITICALITY reject TYPE E-RABNotToBeModifiedItemBearerModInd PRESENCE mandatory}, + ... +} + +E-RABNotToBeModifiedItemBearerModInd ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + dL-GTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABNotToBeModifiedItemBearerModInd-ExtIEs} } OPTIONAL, + ... +} + +E-RABNotToBeModifiedItemBearerModInd-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CSGMembershipInfo ::= SEQUENCE { + cSGMembershipStatus CSGMembershipStatus, + cSG-Id CSG-Id, + cellAccessMode CellAccessMode OPTIONAL, + pLMNidentity PLMNidentity OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { CSGMembershipInfo-ExtIEs} } OPTIONAL, + ... +} + +CSGMembershipInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- E-RAB Modification Confirm +-- +-- ************************************************************** + +E-RABModificationConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABModificationConfirmIEs} }, + ... +} + +E-RABModificationConfirmIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABModifyListBearerModConf CRITICALITY ignore TYPE E-RABModifyListBearerModConf PRESENCE optional}| + { ID id-E-RABFailedToModifyListBearerModConf CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-E-RABToBeReleasedListBearerModConf CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}, + ... +} + +E-RABModifyListBearerModConf ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModConfIEs} } + +E-RABModifyItemBearerModConfIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABModifyItemBearerModConf CRITICALITY ignore TYPE E-RABModifyItemBearerModConf PRESENCE mandatory}, + ... +} + +E-RABModifyItemBearerModConf ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModConfExtIEs} } OPTIONAL, + ... +} + + +E-RABModifyItemBearerModConfExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- UE CONTEXT MODIFICATION INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Modification Indication +-- +-- ************************************************************** + +UEContextModificationIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationIndicationIEs} }, + ... +} + +UEContextModificationIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-CSGMembershipInfo CRITICALITY reject TYPE CSGMembershipInfo PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- UE Context Modification Confirm +-- +-- ************************************************************** + +UEContextModificationConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {UEContextModificationConfirmIEs} }, + ... +} + +UEContextModificationConfirmIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- UE CONTEXT SUSPEND ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Suspend Request +-- +-- ************************************************************** + +UEContextSuspendRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextSuspendRequestIEs} }, + ... +} + +UEContextSuspendRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-InformationOnRecommendedCellsAndENBsForPaging CRITICALITY ignore TYPE InformationOnRecommendedCellsAndENBsForPaging PRESENCE optional}| + { ID id-CellIdentifierAndCELevelForCECapableUEs CRITICALITY ignore TYPE CellIdentifierAndCELevelForCECapableUEs PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- UE Context Suspend Response +-- +-- ************************************************************** + +UEContextSuspendResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {UEContextSuspendResponseIEs} }, + ... +} + +UEContextSuspendResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- UE CONTEXT RESUME ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Resume Request +-- +-- ************************************************************** + +UEContextResumeRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextResumeRequestIEs} }, + ... +} + +UEContextResumeRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABFailedToResumeListResumeReq CRITICALITY reject TYPE E-RABFailedToResumeListResumeReq PRESENCE optional}| + { ID id-RRC-Resume-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE optional}, + ... +} + +E-RABFailedToResumeListResumeReq ::= E-RAB-IE-ContainerList { {E-RABFailedToResumeItemResumeReqIEs} } + +E-RABFailedToResumeItemResumeReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABFailedToResumeItemResumeReq CRITICALITY reject TYPE E-RABFailedToResumeItemResumeReq PRESENCE mandatory}, + ... +} + +E-RABFailedToResumeItemResumeReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { E-RABFailedToResumeItemResumeReq-ExtIEs} } OPTIONAL, + ... +} + +E-RABFailedToResumeItemResumeReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- UE Context Resume Response +-- +-- ************************************************************** + +UEContextResumeResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextResumeResponseIEs} }, + ... +} + +UEContextResumeResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABFailedToResumeListResumeRes CRITICALITY reject TYPE E-RABFailedToResumeListResumeRes PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE optional}, + ... +} + +E-RABFailedToResumeListResumeRes ::= E-RAB-IE-ContainerList { {E-RABFailedToResumeItemResumeResIEs} } + +E-RABFailedToResumeItemResumeResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABFailedToResumeItemResumeRes CRITICALITY reject TYPE E-RABFailedToResumeItemResumeRes PRESENCE mandatory}, + ... +} + +E-RABFailedToResumeItemResumeRes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { E-RABFailedToResumeItemResumeRes-ExtIEs} } OPTIONAL, + ... +} + +E-RABFailedToResumeItemResumeRes-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- UE Context Resume Failure +-- +-- ************************************************************** + +UEContextResumeFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextResumeFailureIEs} }, + ... +} + +UEContextResumeFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Connection Establishment Indication +-- +-- ************************************************************** + +ConnectionEstablishmentIndication::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ConnectionEstablishmentIndicationIEs} }, + ... +} + +ConnectionEstablishmentIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional }| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional }| + { ID id-DL-CP-SecurityInformation CRITICALITY ignore TYPE DL-CP-SecurityInformation PRESENCE optional }| + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Retrieve UE Information +-- +-- ************************************************************** + +RetrieveUEInformation ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { RetrieveUEInformationIEs} }, + ... +} + +RetrieveUEInformationIEs S1AP-PROTOCOL-IES ::= { + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE mandatory}, +... + +} + + +-- ************************************************************** + +-- UE Information Transfer +-- +-- ************************************************************** +UEInformationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEInformationTransferIEs} }, + ... +} + +UEInformationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE mandatory}| + { ID id-UE-Level-QoS-Parameters CRITICALITY ignore TYPE E-RABLevelQoSParameters PRESENCE optional}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- eNB CP Relocation Indication +-- +-- ************************************************************** + +ENBCPRelocationIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { ENBCPRelocationIndicationIEs} }, + ... +} + +ENBCPRelocationIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| + { ID id-UL-CP-SecurityInformation CRITICALITY reject TYPE UL-CP-SecurityInformation PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- MME CP Relocation Indication +-- +-- ************************************************************** + +MMECPRelocationIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { MMECPRelocationIndicationIEs} }, + ... +} + +MMECPRelocationIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}, + ... +} + +END + + + +-- ************************************************************** +-- +-- Information Element Definitions +-- +-- ************************************************************** + +S1AP-IEs { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-IEs (2) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + id-E-RABInformationListItem, + id-E-RABItem, + id-Bearers-SubjectToStatusTransfer-Item, + id-Time-Synchronisation-Info, + id-x2TNLConfigurationInfo, + id-eNBX2ExtendedTransportLayerAddresses, + id-MDTConfiguration, + id-Time-UE-StayedInCell-EnhancedGranularity, + id-HO-Cause, + id-M3Configuration, + id-M4Configuration, + id-M5Configuration, + id-MDT-Location-Info, + id-SignallingBasedMDTPLMNList, + id-MobilityInformation, + id-ULCOUNTValueExtended, + id-DLCOUNTValueExtended, + id-ReceiveStatusOfULPDCPSDUsExtended, + id-eNBIndirectX2TransportLayerAddresses, + id-Muting-Availability-Indication, + id-Muting-Pattern-Information, + id-Synchronisation-Information, + id-uE-HistoryInformationFromTheUE, + id-LoggedMBSFNMDT, + id-SON-Information-Report, + id-RecommendedCellItem, + id-RecommendedENBItem, + id-ProSeUEtoNetworkRelaying, + id-ULCOUNTValuePDCP-SNlength18, + id-DLCOUNTValuePDCP-SNlength18, + id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18, + id-M6Configuration, + id-M7Configuration, + id-RAT-Type, + maxnoofCSGs, + maxnoofE-RABs, + maxnoofErrors, + maxnoofBPLMNs, + maxnoofPLMNsPerMME, + maxnoofTACs, + maxnoofEPLMNs, + maxnoofEPLMNsPlusOne, + maxnoofForbLACs, + maxnoofForbTACs, + maxnoofCells, + maxnoofCellID, + maxnoofDCNs, + maxnoofEmergencyAreaID, + maxnoofTAIforWarning, + maxnoofCellinTAI, + maxnoofCellinEAI, + maxnoofeNBX2TLAs, + maxnoofeNBX2ExtTLAs, + maxnoofeNBX2GTPTLAs, + maxnoofRATs, + maxnoofGroupIDs, + maxnoofMMECs, + maxnoofTAforMDT, + maxnoofCellIDforMDT, + maxnoofMDTPLMNs, + maxnoofCellsforRestart, + maxnoofRestartTAIs, + maxnoofRestartEmergencyAreaIDs, + maxnoofMBSFNAreaMDT, + maxEARFCN, + maxnoofCellsineNB, + maxnoofRecommendedCells, + maxnoofRecommendedENBs + + + +FROM S1AP-Constants + + Criticality, + ProcedureCode, + ProtocolIE-ID, + TriggeringMessage +FROM S1AP-CommonDataTypes + + ProtocolExtensionContainer{}, + S1AP-PROTOCOL-EXTENSION, + ProtocolIE-SingleContainer{}, + S1AP-PROTOCOL-IES + +FROM S1AP-Containers; + +-- A + +Additional-GUTI::= SEQUENCE { + gUMMEI GUMMEI, + m-TMSI M-TMSI, + iE-Extensions ProtocolExtensionContainer { {Additional-GUTI-ExtIEs} } OPTIONAL, + ... +} + +Additional-GUTI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +AreaScopeOfMDT ::= CHOICE { + cellBased CellBasedMDT, + tABased TABasedMDT, + pLMNWide NULL, + ..., + tAIBased TAIBasedMDT +} + +AllocationAndRetentionPriority ::= SEQUENCE { + priorityLevel PriorityLevel, + pre-emptionCapability Pre-emptionCapability, + pre-emptionVulnerability Pre-emptionVulnerability, + iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, + ... +} + +AllocationAndRetentionPriority-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +AssistanceDataForCECapableUEs ::= SEQUENCE { + cellIdentifierAndCELevelForCECapableUEs CellIdentifierAndCELevelForCECapableUEs, + iE-Extensions ProtocolExtensionContainer { { InformationForCECapableUEs-ExtIEs} } OPTIONAL, + ... +} + +InformationForCECapableUEs-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +AssistanceDataForPaging ::= SEQUENCE { + assistanceDataForRecommendedCells AssistanceDataForRecommendedCells OPTIONAL, + assistanceDataForCECapableUEs AssistanceDataForCECapableUEs OPTIONAL, + pagingAttemptInformation PagingAttemptInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { AssistanceDataForPaging-ExtIEs} } OPTIONAL, + ... +} + +AssistanceDataForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +AssistanceDataForRecommendedCells ::= SEQUENCE { + recommendedCellsForPaging RecommendedCellsForPaging, + iE-Extensions ProtocolExtensionContainer { { AssistanceDataForRecommendedCells-ExtIEs} } OPTIONAL, + ... +} + +AssistanceDataForRecommendedCells-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- B + +Bearers-SubjectToStatusTransferList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { { Bearers-SubjectToStatusTransfer-ItemIEs } } + +Bearers-SubjectToStatusTransfer-ItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-Bearers-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE Bearers-SubjectToStatusTransfer-Item PRESENCE mandatory }, + ... +} + +Bearers-SubjectToStatusTransfer-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-COUNTvalue COUNTvalue, + dL-COUNTvalue COUNTvalue, + receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {Bearers-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL, + ... +} + +Bearers-SubjectToStatusTransfer-ItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-ULCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| + { ID id-DLCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| + { ID id-ReceiveStatusOfULPDCPSDUsExtended CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsExtended PRESENCE optional}| + { ID id-ULCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}| + { ID id-DLCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}| + { ID id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 PRESENCE optional}, + ... +} + +BearerType ::= ENUMERATED { + non-IP, + ... +} + +BitRate ::= INTEGER (0..10000000000) + +BPLMNs ::= SEQUENCE (SIZE(1.. maxnoofBPLMNs)) OF PLMNidentity + +BroadcastCancelledAreaList ::= CHOICE { + cellID-Cancelled CellID-Cancelled, + tAI-Cancelled TAI-Cancelled, + emergencyAreaID-Cancelled EmergencyAreaID-Cancelled, + ... +} + +BroadcastCompletedAreaList ::= CHOICE { + cellID-Broadcast CellID-Broadcast, + tAI-Broadcast TAI-Broadcast, + emergencyAreaID-Broadcast EmergencyAreaID-Broadcast, + ... +} + + +-- C + +CancelledCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CancelledCellinEAI-Item + +CancelledCellinEAI-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CancelledCellinEAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CancelledCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CancelledCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CancelledCellinTAI-Item + +CancelledCellinTAI-Item ::= SEQUENCE{ + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CancelledCellinTAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CancelledCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Cause ::= CHOICE { + radioNetwork CauseRadioNetwork, + transport CauseTransport, + nas CauseNas, + protocol CauseProtocol, + misc CauseMisc, + ... +} + +CauseMisc ::= ENUMERATED { + control-processing-overload, + not-enough-user-plane-processing-resources, + hardware-failure, + om-intervention, + unspecified, + unknown-PLMN, +... +} + +CauseProtocol ::= ENUMERATED { + transfer-syntax-error, + abstract-syntax-error-reject, + abstract-syntax-error-ignore-and-notify, + message-not-compatible-with-receiver-state, + semantic-error, + abstract-syntax-error-falsely-constructed-message, + unspecified, + ... +} + +CauseRadioNetwork ::= ENUMERATED { + unspecified, + tx2relocoverall-expiry, + successful-handover, + release-due-to-eutran-generated-reason, + handover-cancelled, + partial-handover, + ho-failure-in-target-EPC-eNB-or-target-system, + ho-target-not-allowed, + tS1relocoverall-expiry, + tS1relocprep-expiry, + cell-not-available, + unknown-targetID, + no-radio-resources-available-in-target-cell, + unknown-mme-ue-s1ap-id, + unknown-enb-ue-s1ap-id, + unknown-pair-ue-s1ap-id, + handover-desirable-for-radio-reason, + time-critical-handover, + resource-optimisation-handover, + reduce-load-in-serving-cell, + user-inactivity, + radio-connection-with-ue-lost, + load-balancing-tau-required, + cs-fallback-triggered, + ue-not-available-for-ps-service, + radio-resources-not-available, + failure-in-radio-interface-procedure, + invalid-qos-combination, + interrat-redirection, + interaction-with-other-procedure, + unknown-E-RAB-ID, + multiple-E-RAB-ID-instances, + encryption-and-or-integrity-protection-algorithms-not-supported, + s1-intra-system-handover-triggered, + s1-inter-system-handover-triggered, + x2-handover-triggered, + ..., + redirection-towards-1xRTT, + not-supported-QCI-value, + invalid-CSG-Id, + release-due-to-pre-emption + +} + +CauseTransport ::= ENUMERATED { + transport-resource-unavailable, + unspecified, + ... +} + +CauseNas ::= ENUMERATED { + normal-release, + authentication-failure, + detach, + unspecified, + ..., + csg-subscription-expiry +} + +CellAccessMode ::= ENUMERATED { + hybrid, + ... +} + +CellIdentifierAndCELevelForCECapableUEs ::= SEQUENCE { + global-Cell-ID EUTRAN-CGI, + cELevel CELevel, + iE-Extensions ProtocolExtensionContainer { { CellIdentifierAndCELevelForCECapableUEs-ExtIEs} } OPTIONAL, + ... +} + +CellIdentifierAndCELevelForCECapableUEs-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- Coverage Enhancement level encoded according to TS 36.331 [16] -- +CELevel ::= OCTET STRING + +CE-mode-B-SupportIndicator ::= ENUMERATED { + supported, + ... +} + +CellIdentity ::= BIT STRING (SIZE (28)) + +CellID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Broadcast-Item + +CellID-Broadcast-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CellID-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +CellID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellID-Cancelled::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Cancelled-Item + +CellID-Cancelled-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CellID-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +CellID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellBasedMDT::= SEQUENCE { + cellIdListforMDT CellIdListforMDT, + iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +CellBasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF EUTRAN-CGI + +Cdma2000PDU ::= OCTET STRING + +Cdma2000RATType ::= ENUMERATED { + hRPD, + onexRTT, + ... +} + +Cdma2000SectorID ::= OCTET STRING + +Cdma2000HOStatus ::= ENUMERATED { + hOSuccess, + hOFailure, + ... +} + +Cdma2000HORequiredIndication ::= ENUMERATED { + true, + ... +} + +Cdma2000OneXSRVCCInfo ::= SEQUENCE { + cdma2000OneXMEID Cdma2000OneXMEID, + cdma2000OneXMSI Cdma2000OneXMSI, + cdma2000OneXPilot Cdma2000OneXPilot, + iE-Extensions ProtocolExtensionContainer { {Cdma2000OneXSRVCCInfo-ExtIEs} } OPTIONAL, + ... +} + +Cdma2000OneXSRVCCInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Cdma2000OneXMEID ::= OCTET STRING + +Cdma2000OneXMSI ::= OCTET STRING + +Cdma2000OneXPilot ::= OCTET STRING + +Cdma2000OneXRAND ::= OCTET STRING + + +Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ...} + +CellType ::= SEQUENCE { + cell-Size Cell-Size, + iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL, + ... +} + +CellType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CGI ::= SEQUENCE { + pLMNidentity PLMNidentity, + lAC LAC, + cI CI, + rAC RAC OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL, + ... + } + +CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CI ::= OCTET STRING (SIZE (2)) + +CNDomain ::= ENUMERATED { + ps, + cs +} + +ConcurrentWarningMessageIndicator ::= ENUMERATED { + true +} + +Correlation-ID ::= OCTET STRING (SIZE (4)) + +CSFallbackIndicator ::= ENUMERATED { + cs-fallback-required, + ..., + cs-fallback-high-priority +} + +AdditionalCSFallbackIndicator ::= ENUMERATED { + no-restriction, + restriction, + ... +} + +CSG-Id ::= BIT STRING (SIZE (27)) + + +CSG-IdList ::= SEQUENCE (SIZE (1.. maxnoofCSGs)) OF CSG-IdList-Item + +CSG-IdList-Item ::= SEQUENCE { + cSG-Id CSG-Id, + iE-Extensions ProtocolExtensionContainer { {CSG-IdList-Item-ExtIEs} } OPTIONAL, + ... +} + +CSG-IdList-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CSGMembershipStatus ::= ENUMERATED { + member, + not-member +} + + +COUNTvalue ::= SEQUENCE { + pDCP-SN PDCP-SN, + hFN HFN, + iE-Extensions ProtocolExtensionContainer { {COUNTvalue-ExtIEs} } OPTIONAL, + ... +} +COUNTvalue-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTValueExtended ::= SEQUENCE { + pDCP-SNExtended PDCP-SNExtended, + hFNModified HFNModified, + iE-Extensions ProtocolExtensionContainer { {COUNTValueExtended-ExtIEs} } OPTIONAL, + ... +} + +COUNTValueExtended-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTvaluePDCP-SNlength18 ::= SEQUENCE { + pDCP-SNlength18 PDCP-SNlength18, + hFNforPDCP-SNlength18 HFNforPDCP-SNlength18, + iE-Extensions ProtocolExtensionContainer { {COUNTvaluePDCP-SNlength18-ExtIEs} } OPTIONAL, + ... +} + +COUNTvaluePDCP-SNlength18-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Coverage-Level ::= ENUMERATED { + extendedcoverage, + ... +} + +CriticalityDiagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-ExtIEs}} OPTIONAL, + ... +} + +CriticalityDiagnostics-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1.. maxnoofErrors)) OF CriticalityDiagnostics-IE-Item + +CriticalityDiagnostics-IE-Item ::= SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-IE-Item-ExtIEs}} OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- D + +DataCodingScheme ::= BIT STRING (SIZE (8)) + +DCN-ID ::= INTEGER (0..65535) + +ServedDCNs ::= SEQUENCE (SIZE(0..maxnoofDCNs)) OF ServedDCNsItem + +ServedDCNsItem ::= SEQUENCE { + dCN-ID DCN-ID, + relativeDCNCapacity RelativeMMECapacity, + iE-Extensions ProtocolExtensionContainer { {ServedDCNsItem-ExtIEs} } OPTIONAL, + ... +} + +ServedDCNsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +DL-CP-SecurityInformation ::= SEQUENCE { + dl-NAS-MAC DL-NAS-MAC, + iE-Extensions ProtocolExtensionContainer { { DL-CP-SecurityInformation-ExtIEs} } OPTIONAL, + ... +} + +DL-CP-SecurityInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +DL-Forwarding ::= ENUMERATED { + dL-Forwarding-proposed, + ... +} + +DL-NAS-MAC ::= BIT STRING (SIZE (16)) + +Direct-Forwarding-Path-Availability ::= ENUMERATED { + directPathAvailable, + ... +} + +Data-Forwarding-Not-Possible ::= ENUMERATED { + data-Forwarding-not-Possible, + ... +} + +DLNASPDUDeliveryAckRequest ::= ENUMERATED { + requested, + ... +} + +-- E + +EARFCN ::= INTEGER(0..maxEARFCN, ...) + +ECGIList ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF EUTRAN-CGI + +PWSfailedECGIList ::= SEQUENCE (SIZE(1..maxnoofCellsineNB)) OF EUTRAN-CGI + +EmergencyAreaIDList ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID + +EmergencyAreaID ::= OCTET STRING (SIZE (3)) + +EmergencyAreaID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Broadcast-Item + +EmergencyAreaID-Broadcast-Item ::= SEQUENCE { + emergencyAreaID EmergencyAreaID, + completedCellinEAI CompletedCellinEAI, + iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +EmergencyAreaID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +EmergencyAreaID-Cancelled ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Cancelled-Item + +EmergencyAreaID-Cancelled-Item ::= SEQUENCE { + emergencyAreaID EmergencyAreaID, + cancelledCellinEAI CancelledCellinEAI, + iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +EmergencyAreaID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompletedCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CompletedCellinEAI-Item + +CompletedCellinEAI-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CompletedCellinEAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CompletedCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ECGI-List ::= SEQUENCE (SIZE(1..maxnoofCellsineNB)) OF EUTRAN-CGI + +EmergencyAreaIDListForRestart ::= SEQUENCE (SIZE(1..maxnoofRestartEmergencyAreaIDs)) OF EmergencyAreaID + +ENB-ID ::= CHOICE { + macroENB-ID BIT STRING (SIZE(20)), + homeENB-ID BIT STRING (SIZE(28)), + ... , + short-macroENB-ID BIT STRING (SIZE(18)), + long-macroENB-ID BIT STRING (SIZE(21)) +} + +GERAN-Cell-ID ::= SEQUENCE { + lAI LAI, + rAC RAC, + cI CI, + iE-Extensions ProtocolExtensionContainer { { GERAN-Cell-ID-ExtIEs} } OPTIONAL, + ... +} + +GERAN-Cell-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Global-ENB-ID ::= SEQUENCE { + pLMNidentity PLMNidentity, + eNB-ID ENB-ID, + iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL, + ... +} + +GlobalENB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +GUMMEIList::= SEQUENCE (SIZE (1.. maxnoofMMECs)) OF GUMMEI + +ENB-StatusTransfer-TransparentContainer ::= SEQUENCE { + bearers-SubjectToStatusTransferList Bearers-SubjectToStatusTransferList, + iE-Extensions ProtocolExtensionContainer { {ENB-StatusTransfer-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +ENB-StatusTransfer-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENB-UE-S1AP-ID ::= INTEGER (0..16777215) + +ENBname ::= PrintableString (SIZE (1..150,...)) + +ENBX2TLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2TLAs)) OF TransportLayerAddress + +EncryptionAlgorithms ::= BIT STRING (SIZE (16,...)) + +EnhancedCoverageRestricted ::= ENUMERATED { + restricted, + ... +} + +CE-ModeBRestricted ::= ENUMERATED { + restricted, + not-restricted, + ... +} + +EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMNidentity +EventType ::= ENUMERATED { + direct, + change-of-serve-cell, + stop-change-of-serve-cell, + ... +} + +E-RAB-ID ::= INTEGER (0..15, ...) + +E-RABInformationList ::= SEQUENCE (SIZE (1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { { E-RABInformationListIEs } } + +E-RABInformationListIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABInformationListItem CRITICALITY ignore TYPE E-RABInformationListItem PRESENCE mandatory }, + ... +} + +E-RABInformationListItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-Forwarding DL-Forwarding OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABInformationListItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABInformationListItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABItemIEs} } + +E-RABItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABItem CRITICALITY ignore TYPE E-RABItem PRESENCE mandatory }, + ... +} + +E-RABItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RABItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +E-RABLevelQoSParameters ::= SEQUENCE { + qCI QCI, + allocationRetentionPriority AllocationAndRetentionPriority, + gbrQosInformation GBR-QosInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABQoSParameters-ExtIEs} } OPTIONAL, + ... +} + +E-RABQoSParameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +EUTRAN-CGI ::= SEQUENCE { + pLMNidentity PLMNidentity, + cell-ID CellIdentity, + iE-Extensions ProtocolExtensionContainer { {EUTRAN-CGI-ExtIEs} } OPTIONAL, + ... +} + +EUTRAN-CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +EUTRANRoundTripDelayEstimationInfo ::= INTEGER (0..2047) + +ExpectedUEBehaviour ::= SEQUENCE { + expectedActivity ExpectedUEActivityBehaviour OPTIONAL, + expectedHOInterval ExpectedHOInterval OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ExpectedUEBehaviour-ExtIEs} } OPTIONAL, + ... +} + +ExpectedUEBehaviour-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ExpectedUEActivityBehaviour ::= SEQUENCE { + expectedActivityPeriod ExpectedActivityPeriod OPTIONAL, + expectedIdlePeriod ExpectedIdlePeriod OPTIONAL, + sourceofUEActivityBehaviourInformation SourceOfUEActivityBehaviourInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ExpectedUEActivityBehaviour-ExtIEs} } OPTIONAL, + ... +} + +ExpectedUEActivityBehaviour-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ExpectedActivityPeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) + +ExpectedIdlePeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) + +SourceOfUEActivityBehaviourInformation ::= ENUMERATED { + subscription-information, + statistics, + ... +} + +ExpectedHOInterval ::= ENUMERATED { + sec15, sec30, sec60, sec90, sec120, sec180, long-time, + ... +} + +ExtendedRNC-ID ::= INTEGER (4096..65535) + +ExtendedRepetitionPeriod ::= INTEGER (4096..131071) + +Extended-UEIdentityIndexValue ::= BIT STRING (SIZE (14)) + +-- F + +ForbiddenInterRATs ::= ENUMERATED { + all, + geran, + utran, + cdma2000, + ..., + geranandutran, + cdma2000andutran + +} + +ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item + +ForbiddenTAs-Item ::= SEQUENCE { + pLMN-Identity PLMNidentity, + forbiddenTACs ForbiddenTACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC + +ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item + +ForbiddenLAs-Item ::= SEQUENCE { + pLMN-Identity PLMNidentity, + forbiddenLACs ForbiddenLACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenLAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC + +-- G + +GBR-QosInformation ::= SEQUENCE { + e-RAB-MaximumBitrateDL BitRate, + e-RAB-MaximumBitrateUL BitRate, + e-RAB-GuaranteedBitrateDL BitRate, + e-RAB-GuaranteedBitrateUL BitRate, + iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL, + ... +} + +GBR-QosInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +GTP-TEID ::= OCTET STRING (SIZE (4)) + +GUMMEI ::= SEQUENCE { + pLMN-Identity PLMNidentity, + mME-Group-ID MME-Group-ID, + mME-Code MME-Code, + iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, + ... +} + +GUMMEI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +GUMMEIType ::= ENUMERATED { + native, + mapped, + ... +} + +GWContextReleaseIndication ::= ENUMERATED { + true, + ... +} + +-- H + +HandoverRestrictionList ::= SEQUENCE { + servingPLMN PLMNidentity, + equivalentPLMNs EPLMNs OPTIONAL, + forbiddenTAs ForbiddenTAs OPTIONAL, + forbiddenLAs ForbiddenLAs OPTIONAL, + forbiddenInterRATs ForbiddenInterRATs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, + ... +} + +HandoverRestrictionList-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +HandoverType ::= ENUMERATED { + intralte, + ltetoutran, + ltetogeran, + utrantolte, + gerantolte, + ... +} + +HFN ::= INTEGER (0..1048575) + +HFNModified ::= INTEGER (0..131071) + +HFNforPDCP-SNlength18 ::= INTEGER (0..16383) + +-- I + +Masked-IMEISV ::= BIT STRING (SIZE (64)) + +ImmediateMDT ::= SEQUENCE { + measurementsToActivate MeasurementsToActivate, + m1reportingTrigger M1ReportingTrigger, + m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL, +-- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1 + m1periodicReporting M1PeriodicReporting OPTIONAL, +-- Included in case of periodic or event-triggered periodic reporting + iE-Extensions ProtocolExtensionContainer { { ImmediateMDT-ExtIEs} } OPTIONAL, + ... +} + +ImmediateMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-M3Configuration CRITICALITY ignore EXTENSION M3Configuration PRESENCE conditional}| + { ID id-M4Configuration CRITICALITY ignore EXTENSION M4Configuration PRESENCE conditional}| + { ID id-M5Configuration CRITICALITY ignore EXTENSION M5Configuration PRESENCE conditional}| + { ID id-MDT-Location-Info CRITICALITY ignore EXTENSION MDT-Location-Info PRESENCE optional}| + { ID id-M6Configuration CRITICALITY ignore EXTENSION M6Configuration PRESENCE conditional}| + { ID id-M7Configuration CRITICALITY ignore EXTENSION M7Configuration PRESENCE conditional}, + ... +} + +IMSI ::= OCTET STRING (SIZE (3..8)) + +InformationOnRecommendedCellsAndENBsForPaging ::= SEQUENCE { + recommendedCellsForPaging RecommendedCellsForPaging, + recommendENBsForPaging RecommendedENBsForPaging, + iE-Extensions ProtocolExtensionContainer { { InformationOnRecommendedCellsAndENBsForPaging-ExtIEs} } OPTIONAL, + ... +} + +InformationOnRecommendedCellsAndENBsForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...)) + +IntendedNumberOfPagingAttempts ::= INTEGER (1..16, ...) + +InterfacesToTrace ::= BIT STRING (SIZE (8)) + + + +-- J +-- K + +KillAllWarningMessages ::= ENUMERATED {true} + +-- L + + +LAC ::= OCTET STRING (SIZE (2)) + +LAI ::= SEQUENCE { + pLMNidentity PLMNidentity, + lAC LAC, + iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL, + ... +} + +LAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +LastVisitedCell-Item ::= CHOICE { + e-UTRAN-Cell LastVisitedEUTRANCellInformation, + uTRAN-Cell LastVisitedUTRANCellInformation, + gERAN-Cell LastVisitedGERANCellInformation, + ... +} +LastVisitedEUTRANCellInformation ::= SEQUENCE { + global-Cell-ID EUTRAN-CGI, + cellType CellType, + time-UE-StayedInCell Time-UE-StayedInCell, + iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, + ... +} +LastVisitedEUTRANCellInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Rel-11 to support enhanced granularity for time UE stayed in cell -- + { ID id-Time-UE-StayedInCell-EnhancedGranularity CRITICALITY ignore EXTENSION Time-UE-StayedInCell-EnhancedGranularity PRESENCE optional}| + { ID id-HO-Cause CRITICALITY ignore EXTENSION Cause PRESENCE optional}, + ... +} +LastVisitedUTRANCellInformation ::= OCTET STRING + +LastVisitedGERANCellInformation ::= CHOICE { + undefined NULL, + ... +} + +L3-Information ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +LPPa-PDU ::= OCTET STRING + +LHN-ID ::= OCTET STRING(SIZE (32..256)) + +Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...} + +ListeningSubframePattern ::= SEQUENCE { + pattern-period ENUMERATED {ms1280, ms2560, ms5120, ms10240, ...}, + pattern-offset INTEGER (0..10239, ...), + iE-Extensions ProtocolExtensionContainer { { ListeningSubframePattern-ExtIEs} } OPTIONAL, + ... +} + +ListeningSubframePattern-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +... +} + +LoggedMDT ::= SEQUENCE { + loggingInterval LoggingInterval, + loggingDuration LoggingDuration, + iE-Extensions ProtocolExtensionContainer { {LoggedMDT-ExtIEs} } OPTIONAL, + ... +} + +LoggedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +... +} + +LoggingInterval ::= ENUMERATED {ms128, ms256, ms512, ms1024, ms2048, ms3072, ms4096, ms6144} + +LoggingDuration ::= ENUMERATED {m10, m20, m40, m60, m90, m120} + +LoggedMBSFNMDT ::= SEQUENCE { + loggingInterval LoggingInterval, + loggingDuration LoggingDuration, + mBSFN-ResultToLog MBSFN-ResultToLog OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { LoggedMBSFNMDT-ExtIEs } } OPTIONAL, + ... +} + +LoggedMBSFNMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- M + +M3Configuration ::= SEQUENCE { + m3period M3period, + iE-Extensions ProtocolExtensionContainer { { M3Configuration-ExtIEs} } OPTIONAL, + ... +} + +M3Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M3period ::= ENUMERATED {ms100, ms1000, ms10000, ... } + +M4Configuration ::= SEQUENCE { + m4period M4period, + m4-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M4Configuration-ExtIEs} } OPTIONAL, + ... +} + +M4Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + +M5Configuration ::= SEQUENCE { + m5period M5period, + m5-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M5Configuration-ExtIEs} } OPTIONAL, + ... +} + +M5Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + +M6Configuration ::= SEQUENCE { + m6report-Interval M6report-Interval, + m6delay-threshold M6delay-threshold OPTIONAL, +-- This IE shall be present if the M6 Links to log IE is set to “uplink” or to “both-uplink-and-downlink” -- + m6-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M6Configuration-ExtIEs} } OPTIONAL, + ... +} + +M6Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M6report-Interval ::= ENUMERATED { ms1024, ms2048, ms5120, ms10240, ... } + +M6delay-threshold ::= ENUMERATED { ms30, ms40, ms50, ms60, ms70, ms80, ms90, ms100, ms150, ms300, ms500, ms750, ... } + +M7Configuration ::= SEQUENCE { + m7period M7period, + m7-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M7Configuration-ExtIEs} } OPTIONAL, + ... +} + +M7Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M7period ::= INTEGER(1..60, ...) + +MDT-Activation ::= ENUMERATED { + immediate-MDT-only, + immediate-MDT-and-Trace, + logged-MDT-only, + ..., + logged-MBSFN-MDT +} + +MDT-Location-Info ::= BIT STRING (SIZE (8)) + +MDT-Configuration ::= SEQUENCE { + mdt-Activation MDT-Activation, + areaScopeOfMDT AreaScopeOfMDT, + mDTMode MDTMode, + iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTIONAL, + ... +} +MDT-Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-SignallingBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional }, + ... +} + +ManagementBasedMDTAllowed ::= ENUMERATED {allowed, ...} + +MBSFN-ResultToLog ::= SEQUENCE (SIZE(1..maxnoofMBSFNAreaMDT)) OF MBSFN-ResultToLogInfo + +MBSFN-ResultToLogInfo ::= SEQUENCE { + mBSFN-AreaId INTEGER (0..255) OPTIONAL, + carrierFreq EARFCN, + iE-Extensions ProtocolExtensionContainer { { MBSFN-ResultToLogInfo-ExtIEs} } OPTIONAL, + ... +} + +MBSFN-ResultToLogInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMNidentity + +PrivacyIndicator ::= ENUMERATED { + immediate-MDT, + logged-MDT, + ... +} + +MDTMode ::= CHOICE { + immediateMDT ImmediateMDT, + loggedMDT LoggedMDT, + ..., + mDTMode-Extension MDTMode-Extension +} + +MDTMode-Extension ::= ProtocolIE-SingleContainer {{ MDTMode-ExtensionIE }} + +MDTMode-ExtensionIE S1AP-PROTOCOL-IES ::= { + { ID id-LoggedMBSFNMDT CRITICALITY ignore TYPE LoggedMBSFNMDT PRESENCE mandatory} +} + +MeasurementsToActivate ::= BIT STRING (SIZE (8)) + +MeasurementThresholdA2 ::= CHOICE { + threshold-RSRP Threshold-RSRP, + threshold-RSRQ Threshold-RSRQ, + ... +} + +MessageIdentifier ::= BIT STRING (SIZE (16)) + +MobilityInformation ::= BIT STRING (SIZE(32)) + +MMEname ::= PrintableString (SIZE (1..150,...)) + +MMEPagingTarget ::= CHOICE { + global-ENB-ID Global-ENB-ID, + tAI TAI, + ... +} + +MMERelaySupportIndicator ::= ENUMERATED {true, ...} + +MME-Group-ID ::= OCTET STRING (SIZE (2)) + +MME-Code ::= OCTET STRING (SIZE (1)) + +MME-UE-S1AP-ID ::= INTEGER (0..4294967295) +M-TMSI ::= OCTET STRING (SIZE (4)) + +MSClassmark2 ::= OCTET STRING +MSClassmark3 ::= OCTET STRING + +MutingAvailabilityIndication ::= ENUMERATED { + available, + unavailable, + ... +} + + +MutingPatternInformation ::= SEQUENCE { + muting-pattern-period ENUMERATED {ms0, ms1280, ms2560, ms5120, ms10240, ...}, + muting-pattern-offset INTEGER (0..10239, ...) OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {MutingPatternInformation-ExtIEs} } OPTIONAL, + ... +} + +MutingPatternInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- N + +NAS-PDU ::= OCTET STRING + +NASSecurityParametersfromE-UTRAN ::= OCTET STRING + +NASSecurityParameterstoE-UTRAN ::= OCTET STRING + +NB-IoT-DefaultPagingDRX ::= ENUMERATED { + v128, + v256, + v512, + v1024, + ... + } + +NB-IoT-Paging-eDRXInformation ::= SEQUENCE { + nB-IoT-paging-eDRX-Cycle NB-IoT-Paging-eDRX-Cycle, + nB-IoT-pagingTimeWindow NB-IoT-PagingTimeWindow OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { NB-IoT-Paging-eDRXInformation-ExtIEs} } OPTIONAL, + ... +} + +NB-IoT-Paging-eDRXInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +NB-IoT-Paging-eDRX-Cycle ::= ENUMERATED{hf2, hf4, hf6, hf8, hf10, hf12, hf14, hf16, hf32, hf64, hf128, hf256, hf512, hf1024, ...} + +NB-IoT-PagingTimeWindow ::= ENUMERATED{s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, ...} + +NB-IoT-UEIdentityIndexValue ::= BIT STRING (SIZE (12)) + +NextPagingAreaScope ::= ENUMERATED { + same, + changed, + ... +} + +NumberofBroadcastRequest ::= INTEGER (0..65535) + +NumberOfBroadcasts ::= INTEGER (0..65535) + +-- O +OldBSS-ToNewBSS-Information ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +OverloadAction ::= ENUMERATED { + reject-non-emergency-mo-dt, + reject-rrc-cr-signalling, + permit-emergency-sessions-and-mobile-terminated-services-only, + ..., + permit-high-priority-sessions-and-mobile-terminated-services-only, + reject-delay-tolerant-access, + permit-high-priority-sessions-and-exception-reporting-and-mobile-terminated-services-only, + not-accept-mo-data-or-delay-tolerant-access-from-CP-CIoT + +} + +OverloadResponse ::= CHOICE { + overloadAction OverloadAction, + ... +} + + +-- P + +PagingAttemptInformation ::= SEQUENCE { + pagingAttemptCount PagingAttemptCount, + intendedNumberOfPagingAttempts IntendedNumberOfPagingAttempts, + nextPagingAreaScope NextPagingAreaScope OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { PagingAttemptInformation-ExtIEs} } OPTIONAL, + ... +} + +PagingAttemptInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +PagingAttemptCount ::= INTEGER (1..16, ...) + +Paging-eDRXInformation ::= SEQUENCE { + paging-eDRX-Cycle Paging-eDRX-Cycle, + pagingTimeWindow PagingTimeWindow OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { Paging-eDRXInformation-ExtIEs} } OPTIONAL, + ... +} + +Paging-eDRXInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Paging-eDRX-Cycle ::= ENUMERATED{hfhalf, hf1, hf2, hf4, hf6, hf8, hf10, hf12, hf14, hf16, hf32, hf64, hf128, hf256, ...} + +PagingTimeWindow ::= ENUMERATED{s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, ...} + +PagingDRX ::= ENUMERATED { + v32, + v64, + v128, + v256, + ... + } + +PagingPriority ::= ENUMERATED { + priolevel1, + priolevel2, + priolevel3, + priolevel4, + priolevel5, + priolevel6, + priolevel7, + priolevel8, + ... +} + +PDCP-SN ::= INTEGER (0..4095) + +PDCP-SNExtended ::= INTEGER (0..32767) + +PDCP-SNlength18 ::= INTEGER (0..262143) + +M1PeriodicReporting ::= SEQUENCE { + reportInterval ReportIntervalMDT, + reportAmount ReportAmountMDT, + iE-Extensions ProtocolExtensionContainer { { M1PeriodicReporting-ExtIEs} } OPTIONAL, + ... +} + +M1PeriodicReporting-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +PLMNidentity ::= TBCD-STRING + +Port-Number ::= OCTET STRING (SIZE (2)) + +Pre-emptionCapability ::= ENUMERATED { + shall-not-trigger-pre-emption, + may-trigger-pre-emption +} + +Pre-emptionVulnerability ::= ENUMERATED { + not-pre-emptable, + pre-emptable +} + +PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) + +ProSeAuthorized ::= SEQUENCE { + proSeDirectDiscovery ProSeDirectDiscovery OPTIONAL, + proSeDirectCommunication ProSeDirectCommunication OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ProSeAuthorized-ExtIEs} } OPTIONAL, + ... +} + +ProSeAuthorized-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-ProSeUEtoNetworkRelaying CRITICALITY ignore EXTENSION ProSeUEtoNetworkRelaying PRESENCE optional}, + ... +} + +ProSeDirectDiscovery ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +ProSeUEtoNetworkRelaying ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +ProSeDirectCommunication ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +PS-ServiceNotAvailable ::= ENUMERATED { + ps-service-not-available, + ... +} + +-- Q + +QCI ::= INTEGER (0..255) + +-- R + +ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) + +ReceiveStatusOfULPDCPSDUsExtended ::= BIT STRING (SIZE(1..16384)) + +ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ::= BIT STRING (SIZE(1..131072)) + +RecommendedCellsForPaging ::= SEQUENCE { + recommendedCellList RecommendedCellList, + iE-Extensions ProtocolExtensionContainer { { RecommendedCellsForPaging-ExtIEs} } OPTIONAL, + ... +} + +RecommendedCellsForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RecommendedCellList ::= SEQUENCE (SIZE(1.. maxnoofRecommendedCells)) OF ProtocolIE-SingleContainer { { RecommendedCellItemIEs } } + +RecommendedCellItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-RecommendedCellItem CRITICALITY ignore TYPE RecommendedCellItem PRESENCE mandatory }, + ... +} + +RecommendedCellItem::= SEQUENCE { + eUTRAN-CGI EUTRAN-CGI, + timeStayedInCell INTEGER (0..4095) OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { RecommendedCellsForPagingItem-ExtIEs} } OPTIONAL, + ... +} + +RecommendedCellsForPagingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RecommendedENBsForPaging ::= SEQUENCE { + recommendedENBList RecommendedENBList, + iE-Extensions ProtocolExtensionContainer { { RecommendedENBsForPaging-ExtIEs} } OPTIONAL, + ... +} + +RecommendedENBsForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RecommendedENBList::= SEQUENCE (SIZE(1.. maxnoofRecommendedENBs)) OF ProtocolIE-SingleContainer { { RecommendedENBItemIEs } } + +RecommendedENBItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-RecommendedENBItem CRITICALITY ignore TYPE RecommendedENBItem PRESENCE mandatory }, + ... +} + +RecommendedENBItem ::= SEQUENCE { + mMEPagingTarget MMEPagingTarget, + iE-Extensions ProtocolExtensionContainer { { RecommendedENBItem-ExtIEs} } OPTIONAL, + ... +} + +RecommendedENBItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RelativeMMECapacity ::= INTEGER (0..255) + +RelayNode-Indicator ::= ENUMERATED { + true, + ... +} + +RAC ::= OCTET STRING (SIZE (1)) + +RAT-Type ::= ENUMERATED { + nbiot, + ... +} + +ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity} + +ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60} + +M1ReportingTrigger ::= ENUMERATED{ + periodic, + a2eventtriggered, + ..., + a2eventtriggered-periodic +} + +RequestType ::= SEQUENCE { + eventType EventType, + reportArea ReportArea, + iE-Extensions ProtocolExtensionContainer { { RequestType-ExtIEs} } OPTIONAL, + ... +} + + +RequestType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RIMTransfer ::= SEQUENCE { + rIMInformation RIMInformation, + rIMRoutingAddress RIMRoutingAddress OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { RIMTransfer-ExtIEs} } OPTIONAL, + ... +} + +RIMTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RIMInformation ::= OCTET STRING + +RIMRoutingAddress ::= CHOICE { + gERAN-Cell-ID GERAN-Cell-ID, + ..., + targetRNC-ID TargetRNC-ID, + eHRPD-Sector-ID OCTET STRING (SIZE(16)) +} + +ReportArea ::= ENUMERATED { + ecgi, + ... +} + +RepetitionPeriod ::= INTEGER (0..4095) + +RLFReportInformation ::= SEQUENCE { + uE-RLF-Report-Container UE-RLF-Report-Container, + uE-RLF-Report-Container-for-extended-bands UE-RLF-Report-Container-for-extended-bands OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{ RLFReportInformation-ExtIEs}} OPTIONAL, + ... +} + +RLFReportInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RNC-ID ::= INTEGER (0..4095) + +RRC-Container ::= OCTET STRING + +RRC-Establishment-Cause ::= ENUMERATED { + emergency, + highPriorityAccess, + mt-Access, + mo-Signalling, + mo-Data, + ..., + delay-TolerantAccess, + mo-VoiceCall, + mo-ExceptionData +} + +ECGIListForRestart ::= SEQUENCE (SIZE(1..maxnoofCellsforRestart)) OF EUTRAN-CGI + +Routing-ID ::= INTEGER (0..255) + +-- S + + +SecurityKey ::= BIT STRING (SIZE(256)) + + + +SecurityContext ::= SEQUENCE { + nextHopChainingCount INTEGER (0..7), + nextHopParameter SecurityKey, + iE-Extensions ProtocolExtensionContainer { { SecurityContext-ExtIEs} } OPTIONAL, + ... +} + + +SecurityContext-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +SerialNumber ::= BIT STRING (SIZE (16)) + +SONInformation ::= CHOICE{ + sONInformationRequest SONInformationRequest, + sONInformationReply SONInformationReply, + ... +-- ..., +-- sONInformation-Extension SONInformation-Extension +} + +SONInformation-Extension ::= ProtocolIE-SingleContainer {{ SONInformation-ExtensionIE }} + +SONInformation-ExtensionIE S1AP-PROTOCOL-IES ::= { + { ID id-SON-Information-Report CRITICALITY ignore TYPE SONInformationReport PRESENCE mandatory} +} + +SONInformationRequest ::= ENUMERATED { + x2TNL-Configuration-Info, + ..., + time-Synchronisation-Info, + activate-Muting, + deactivate-Muting} + +SONInformationReply ::= SEQUENCE { + x2TNLConfigurationInfo X2TNLConfigurationInfo OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{SONInformationReply-ExtIEs}} OPTIONAL, + ... +} + +SONInformationReply-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Release 9 to transfer Time synchronisation information -- + {ID id-Time-Synchronisation-Info CRITICALITY ignore EXTENSION TimeSynchronisationInfo PRESENCE optional}, + ..., + {ID id-Muting-Pattern-Information CRITICALITY ignore EXTENSION MutingPatternInformation PRESENCE optional} +} + +SONInformationReport ::= CHOICE{ + rLFReportInformation RLFReportInformation, + ... +} + +SONConfigurationTransfer ::= SEQUENCE { + targeteNB-ID TargeteNB-ID, + sourceeNB-ID SourceeNB-ID, + sONInformation SONInformation, + iE-Extensions ProtocolExtensionContainer { { SONConfigurationTransfer-ExtIEs} } OPTIONAL, +... +} + +SONConfigurationTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Release 10 to transfer the IP addresses of the eNB initiating the ANR action -- + {ID id-x2TNLConfigurationInfo CRITICALITY ignore EXTENSION X2TNLConfigurationInfo PRESENCE conditional + -- This IE shall be present if the SON Information IE contains the SON Information Request IE and the SON Information Request IE is set to “X2TNL Configuration Info” --}| +-- Extension for Release 12 to transfer information concerning the source cell of synchronisation and the aggressor cell -- + {ID id-Synchronisation-Information CRITICALITY ignore EXTENSION SynchronisationInformation PRESENCE conditional + -- This IE shall be present if the SON Information IE contains the SON Information Request IE set to “ Activate Muting ” --}, + ... +} + + +SynchronisationInformation ::= SEQUENCE { + sourceStratumLevel StratumLevel OPTIONAL, + listeningSubframePattern ListeningSubframePattern OPTIONAL, + aggressoreCGI-List ECGI-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {SynchronisationInformation-ExtIEs} } OPTIONAL, + ... +} + +SynchronisationInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +Source-ToTarget-TransparentContainer ::= OCTET STRING +-- This IE includes a transparent container from the source RAN node to the target RAN node. +-- The octets of the OCTET STRING are encoded according to the specifications of the target system. + +SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +SourceeNB-ID ::= SEQUENCE { + global-ENB-ID Global-ENB-ID, + selected-TAI TAI, + iE-Extensions ProtocolExtensionContainer { {SourceeNB-ID-ExtIEs} } OPTIONAL +} + +SourceeNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +SRVCCOperationNotPossible ::= ENUMERATED { + notPossible, + ... +} + +SRVCCOperationPossible ::= ENUMERATED { + possible, + ... +} + +SRVCCHOIndication ::= ENUMERATED { + pSandCS, + cSonly, + ... +} + +SourceeNB-ToTargeteNB-TransparentContainer ::= SEQUENCE { + rRC-Container RRC-Container, + e-RABInformationList E-RABInformationList OPTIONAL, + targetCell-ID EUTRAN-CGI, + subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, + uE-HistoryInformation UE-HistoryInformation, + iE-Extensions ProtocolExtensionContainer { {SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + {ID id-MobilityInformation CRITICALITY ignore EXTENSION MobilityInformation PRESENCE optional}| + {ID id-uE-HistoryInformationFromTheUE CRITICALITY ignore EXTENSION UE-HistoryInformationFromTheUE PRESENCE optional}, + ... +} + + +SourceRNC-ToTargetRNC-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + + +ServedGUMMEIs ::= SEQUENCE (SIZE (1.. maxnoofRATs)) OF ServedGUMMEIsItem + +ServedGUMMEIsItem ::= SEQUENCE { + servedPLMNs ServedPLMNs, + servedGroupIDs ServedGroupIDs, + servedMMECs ServedMMECs, + iE-Extensions ProtocolExtensionContainer { {ServedGUMMEIsItem-ExtIEs} } OPTIONAL, + ... +} + +ServedGUMMEIsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedGroupIDs ::= SEQUENCE (SIZE(1.. maxnoofGroupIDs)) OF MME-Group-ID +ServedMMECs ::= SEQUENCE (SIZE(1.. maxnoofMMECs)) OF MME-Code + +ServedPLMNs ::= SEQUENCE (SIZE(1.. maxnoofPLMNsPerMME)) OF PLMNidentity + +SubscriberProfileIDforRFP ::= INTEGER (1..256) + +SupportedTAs ::= SEQUENCE (SIZE(1.. maxnoofTACs)) OF SupportedTAs-Item + +SupportedTAs-Item ::= SEQUENCE { + tAC TAC, + broadcastPLMNs BPLMNs, + iE-Extensions ProtocolExtensionContainer { {SupportedTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +SupportedTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + -- Extension for Release 13 to transfer RAT-Type per TAC -- + {ID id-RAT-Type CRITICALITY reject EXTENSION RAT-Type PRESENCE optional}, + ... +} + +StratumLevel ::= INTEGER (0..3, ...) + +SynchronisationStatus ::= ENUMERATED { synchronous, asynchronous, ... } + +TimeSynchronisationInfo ::= SEQUENCE { + stratumLevel StratumLevel, + synchronisationStatus SynchronisationStatus, + iE-Extensions ProtocolExtensionContainer { { TimeSynchronisationInfo-ExtIEs} } OPTIONAL, + ... +} + +TimeSynchronisationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + -- Extension for Release 12 to transfer Muting Availability Indication -- + {ID id-Muting-Availability-Indication CRITICALITY ignore EXTENSION MutingAvailabilityIndication PRESENCE optional}, + ... +} + +S-TMSI ::= SEQUENCE { + mMEC MME-Code, + m-TMSI M-TMSI, + iE-Extensions ProtocolExtensionContainer { {S-TMSI-ExtIEs} } OPTIONAL, + ... +} + +S-TMSI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- T + +TAC ::= OCTET STRING (SIZE (2)) + +TAIBasedMDT ::= SEQUENCE { + tAIListforMDT TAIListforMDT, + iE-Extensions ProtocolExtensionContainer { {TAIBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TAIBasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAIListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAI + +TAIListforWarning ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI + +TAI ::= SEQUENCE { + pLMNidentity PLMNidentity, + tAC TAC, + iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL, + ... +} + +TAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAI-Broadcast ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Broadcast-Item + +TAI-Broadcast-Item ::= SEQUENCE { + tAI TAI, + completedCellinTAI CompletedCellinTAI, + iE-Extensions ProtocolExtensionContainer { {TAI-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAI-Cancelled ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Cancelled-Item + +TAI-Cancelled-Item ::= SEQUENCE { + tAI TAI, + cancelledCellinTAI CancelledCellinTAI, + iE-Extensions ProtocolExtensionContainer { {TAI-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TABasedMDT ::= SEQUENCE { + tAListforMDT TAListforMDT, + iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TABasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC + +CompletedCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CompletedCellinTAI-Item + +CompletedCellinTAI-Item ::= SEQUENCE{ + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CompletedCellinTAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CompletedCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TBCD-STRING ::= OCTET STRING (SIZE (3)) + +TargetID ::= CHOICE { + targeteNB-ID TargeteNB-ID, + targetRNC-ID TargetRNC-ID, + cGI CGI, + ... +} + +TargeteNB-ID ::= SEQUENCE { + global-ENB-ID Global-ENB-ID, + selected-TAI TAI, + iE-Extensions ProtocolExtensionContainer { {TargeteNB-ID-ExtIEs} } OPTIONAL, + ... +} + +TargeteNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TargetRNC-ID ::= SEQUENCE { + lAI LAI, + rAC RAC OPTIONAL, + rNC-ID RNC-ID, + extendedRNC-ID ExtendedRNC-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL, + ... + } + + +TargetRNC-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +TargeteNB-ToSourceeNB-TransparentContainer ::= SEQUENCE { + rRC-Container RRC-Container, + iE-Extensions ProtocolExtensionContainer { {TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Target-ToSource-TransparentContainer ::= OCTET STRING +-- This IE includes a transparent container from the target RAN node to the source RAN node. +-- The octets of the OCTET STRING are coded according to the specifications of the target system. + +TargetRNC-ToSourceRNC-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +TargetBSS-ToSourceBSS-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +M1ThresholdEventA2 ::= SEQUENCE { + measurementThreshold MeasurementThresholdA2, + iE-Extensions ProtocolExtensionContainer { { M1ThresholdEventA2-ExtIEs} } OPTIONAL, + ... +} + +M1ThresholdEventA2-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Threshold-RSRP ::= INTEGER(0..97) + +Threshold-RSRQ ::= INTEGER(0..34) + +TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...} + +Time-UE-StayedInCell ::= INTEGER (0..4095) + +Time-UE-StayedInCell-EnhancedGranularity ::= INTEGER (0..40950) + +TransportInformation ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + uL-GTP-TEID GTP-TEID, + ... +} + +TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) + +TraceActivation ::= SEQUENCE { + e-UTRAN-Trace-ID E-UTRAN-Trace-ID, + interfacesToTrace InterfacesToTrace, + traceDepth TraceDepth, + traceCollectionEntityIPAddress TransportLayerAddress, + iE-Extensions ProtocolExtensionContainer { { TraceActivation-ExtIEs} } OPTIONAL, + ... +} + +TraceActivation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Rel-10 to support MDT -- + { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional }, + ... +} + +TraceDepth ::= ENUMERATED { + minimum, + medium, + maximum, + minimumWithoutVendorSpecificExtension, + mediumWithoutVendorSpecificExtension, + maximumWithoutVendorSpecificExtension, + ... +} + +E-UTRAN-Trace-ID ::= OCTET STRING (SIZE (8)) + +TrafficLoadReductionIndication ::= INTEGER (1..99) + +TunnelInformation ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + uDP-Port-Number Port-Number OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {Tunnel-Information-ExtIEs} } OPTIONAL, + ... +} + +Tunnel-Information-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + +TAIListForRestart ::= SEQUENCE (SIZE(1..maxnoofRestartTAIs)) OF TAI + +-- U + +UEAggregateMaximumBitrate ::= SEQUENCE { + uEaggregateMaximumBitRateDL BitRate, + uEaggregateMaximumBitRateUL BitRate, + iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrates-ExtIEs} } OPTIONAL, + ... +} + +UEAggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UE-RetentionInformation ::= ENUMERATED { + ues-retained, + ...} + +UE-S1AP-IDs ::= CHOICE{ + uE-S1AP-ID-pair UE-S1AP-ID-pair, + mME-UE-S1AP-ID MME-UE-S1AP-ID, + ... +} + +UE-S1AP-ID-pair ::= SEQUENCE{ + mME-UE-S1AP-ID MME-UE-S1AP-ID, + eNB-UE-S1AP-ID ENB-UE-S1AP-ID, + iE-Extensions ProtocolExtensionContainer { {UE-S1AP-ID-pair-ExtIEs} } OPTIONAL, + ... +} +UE-S1AP-ID-pair-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +UE-associatedLogicalS1-ConnectionItem ::= SEQUENCE { + mME-UE-S1AP-ID MME-UE-S1AP-ID OPTIONAL, + eNB-UE-S1AP-ID ENB-UE-S1AP-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { UE-associatedLogicalS1-ConnectionItemExtIEs} } OPTIONAL, + ... +} + + +UE-associatedLogicalS1-ConnectionItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UEIdentityIndexValue ::= BIT STRING (SIZE (10)) + +UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item + +UE-HistoryInformationFromTheUE ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the VisitedCellInfoList field contained in the UEInformationResponse message as defined in TS 36.331 [16] + +UEPagingID ::= CHOICE { + s-TMSI S-TMSI, + iMSI IMSI, + ... + } + +UERadioCapability ::= OCTET STRING + +UERadioCapabilityForPaging ::= OCTET STRING + +UE-RLF-Report-Container ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the rlf-Report-r9 field contained in the UEInformationResponse message as defined in TS 36.331 [16] + +UE-RLF-Report-Container-for-extended-bands ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the rlf-Report-v9e0 contained in the UEInformationResponse message as defined in TS 36.331 [16] + +UESecurityCapabilities ::= SEQUENCE { + encryptionAlgorithms EncryptionAlgorithms, + integrityProtectionAlgorithms IntegrityProtectionAlgorithms, + iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL, +... +} + +UESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UESidelinkAggregateMaximumBitrate ::= SEQUENCE { + uESidelinkAggregateMaximumBitRate BitRate, + iE-Extensions ProtocolExtensionContainer { {UE-Sidelink-Aggregate-MaximumBitrates-ExtIEs} } OPTIONAL, + ... +} + +UE-Sidelink-Aggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UE-Usage-Type ::= INTEGER (0..255) + +UL-CP-SecurityInformation ::= SEQUENCE { + ul-NAS-MAC UL-NAS-MAC, + ul-NAS-Count UL-NAS-Count, + iE-Extensions ProtocolExtensionContainer { { UL-CP-SecurityInformation-ExtIEs} } OPTIONAL, + ... +} + +UL-CP-SecurityInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UL-NAS-MAC ::= BIT STRING (SIZE (16)) + +UL-NAS-Count ::= BIT STRING (SIZE (5)) + + +UserLocationInformation ::= SEQUENCE { + eutran-cgi EUTRAN-CGI, + tai TAI, + iE-Extensions ProtocolExtensionContainer { { UserLocationInformation-ExtIEs} } OPTIONAL, + ... +} + +UserLocationInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UEUserPlaneCIoTSupportIndicator ::= ENUMERATED { + supported, + ... +} + +-- V + +VoiceSupportMatchIndicator ::= ENUMERATED { + supported, + not-supported, + ... +} + +V2XServicesAuthorized ::= SEQUENCE { + vehicleUE VehicleUE OPTIONAL, + pedestrianUE PedestrianUE OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {V2XServicesAuthorized-ExtIEs} } OPTIONAL, + ... +} + +V2XServicesAuthorized-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +VehicleUE ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +PedestrianUE ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +-- W + +WarningAreaList ::= CHOICE { + cellIDList ECGIList, + trackingAreaListforWarning TAIListforWarning, + emergencyAreaIDList EmergencyAreaIDList, + ... +} + + +WarningType ::= OCTET STRING (SIZE (2)) + +WarningSecurityInfo ::= OCTET STRING (SIZE (50)) + + +WarningMessageContents ::= OCTET STRING (SIZE(1..9600)) + + +-- X + + +X2TNLConfigurationInfo ::= SEQUENCE { + eNBX2TransportLayerAddresses ENBX2TLAs, + iE-Extensions ProtocolExtensionContainer { { X2TNLConfigurationInfo-ExtIEs} } OPTIONAL, + ... +} + +X2TNLConfigurationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Release 10 to transfer the IPsec and U-plane addresses during ANR action -- + {ID id-eNBX2ExtendedTransportLayerAddresses CRITICALITY ignore EXTENSION ENBX2ExtTLAs PRESENCE optional}| +-- Extension for Release 12 to transfer the IP addresses of the X2 GW -- + {ID id-eNBIndirectX2TransportLayerAddresses CRITICALITY ignore EXTENSION ENBIndirectX2TransportLayerAddresses PRESENCE optional}, + ... +} + +ENBX2ExtTLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2ExtTLAs)) OF ENBX2ExtTLA + +ENBX2ExtTLA ::= SEQUENCE { + iPsecTLA TransportLayerAddress OPTIONAL, + gTPTLAa ENBX2GTPTLAs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ENBX2ExtTLA-ExtIEs} } OPTIONAL, + ... +} + +ENBX2ExtTLA-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENBX2GTPTLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2GTPTLAs)) OF TransportLayerAddress + +ENBIndirectX2TransportLayerAddresses ::= SEQUENCE (SIZE(1..maxnoofeNBX2TLAs)) OF TransportLayerAddress + +-- Y +-- Z + +END + + + +-- ************************************************************** +-- +-- Common definitions +-- +-- ************************************************************** + +S1AP-CommonDataTypes { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-CommonDataTypes (3) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +Criticality ::= ENUMERATED { reject, ignore, notify } + +Presence ::= ENUMERATED { optional, conditional, mandatory } + +PrivateIE-ID ::= CHOICE { + local INTEGER (0..65535), + global OBJECT IDENTIFIER +} + +ProcedureCode ::= INTEGER (0..255) + +ProtocolExtensionID ::= INTEGER (0..65535) + +ProtocolIE-ID ::= INTEGER (0..65535) + +TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome } + +END + + +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +S1AP-Constants { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Constants (4) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + ProcedureCode, + ProtocolIE-ID + +FROM S1AP-CommonDataTypes; + + +-- ************************************************************** +-- +-- Elementary Procedures +-- +-- ************************************************************** + +id-HandoverPreparation ProcedureCode ::= 0 +id-HandoverResourceAllocation ProcedureCode ::= 1 +id-HandoverNotification ProcedureCode ::= 2 +id-PathSwitchRequest ProcedureCode ::= 3 +id-HandoverCancel ProcedureCode ::= 4 +id-E-RABSetup ProcedureCode ::= 5 +id-E-RABModify ProcedureCode ::= 6 +id-E-RABRelease ProcedureCode ::= 7 +id-E-RABReleaseIndication ProcedureCode ::= 8 +id-InitialContextSetup ProcedureCode ::= 9 +id-Paging ProcedureCode ::= 10 +id-downlinkNASTransport ProcedureCode ::= 11 +id-initialUEMessage ProcedureCode ::= 12 +id-uplinkNASTransport ProcedureCode ::= 13 +id-Reset ProcedureCode ::= 14 +id-ErrorIndication ProcedureCode ::= 15 +id-NASNonDeliveryIndication ProcedureCode ::= 16 +id-S1Setup ProcedureCode ::= 17 +id-UEContextReleaseRequest ProcedureCode ::= 18 +id-DownlinkS1cdma2000tunnelling ProcedureCode ::= 19 +id-UplinkS1cdma2000tunnelling ProcedureCode ::= 20 +id-UEContextModification ProcedureCode ::= 21 +id-UECapabilityInfoIndication ProcedureCode ::= 22 +id-UEContextRelease ProcedureCode ::= 23 +id-eNBStatusTransfer ProcedureCode ::= 24 +id-MMEStatusTransfer ProcedureCode ::= 25 +id-DeactivateTrace ProcedureCode ::= 26 +id-TraceStart ProcedureCode ::= 27 +id-TraceFailureIndication ProcedureCode ::= 28 +id-ENBConfigurationUpdate ProcedureCode ::= 29 +id-MMEConfigurationUpdate ProcedureCode ::= 30 +id-LocationReportingControl ProcedureCode ::= 31 +id-LocationReportingFailureIndication ProcedureCode ::= 32 +id-LocationReport ProcedureCode ::= 33 +id-OverloadStart ProcedureCode ::= 34 +id-OverloadStop ProcedureCode ::= 35 +id-WriteReplaceWarning ProcedureCode ::= 36 +id-eNBDirectInformationTransfer ProcedureCode ::= 37 +id-MMEDirectInformationTransfer ProcedureCode ::= 38 +id-PrivateMessage ProcedureCode ::= 39 +id-eNBConfigurationTransfer ProcedureCode ::= 40 +id-MMEConfigurationTransfer ProcedureCode ::= 41 +id-CellTrafficTrace ProcedureCode ::= 42 +id-Kill ProcedureCode ::= 43 +id-downlinkUEAssociatedLPPaTransport ProcedureCode ::= 44 +id-uplinkUEAssociatedLPPaTransport ProcedureCode ::= 45 +id-downlinkNonUEAssociatedLPPaTransport ProcedureCode ::= 46 +id-uplinkNonUEAssociatedLPPaTransport ProcedureCode ::= 47 +id-UERadioCapabilityMatch ProcedureCode ::= 48 +id-PWSRestartIndication ProcedureCode ::= 49 +id-E-RABModificationIndication ProcedureCode ::= 50 +id-PWSFailureIndication ProcedureCode ::= 51 +id-RerouteNASRequest ProcedureCode ::= 52 +id-UEContextModificationIndication ProcedureCode ::= 53 +id-ConnectionEstablishmentIndication ProcedureCode ::= 54 +id-UEContextSuspend ProcedureCode ::= 55 +id-UEContextResume ProcedureCode ::= 56 +id-NASDeliveryIndication ProcedureCode ::= 57 +id-RetrieveUEInformation ProcedureCode ::= 58 +id-UEInformationTransfer ProcedureCode ::= 59 +id-eNBCPRelocationIndication ProcedureCode ::= 60 +id-MMECPRelocationIndication ProcedureCode ::= 61 + +-- ************************************************************** +-- +-- Extension constants +-- +-- ************************************************************** + +maxPrivateIEs INTEGER ::= 65535 +maxProtocolExtensions INTEGER ::= 65535 +maxProtocolIEs INTEGER ::= 65535 +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** + +maxnoofCSGs INTEGER ::= 256 +maxnoofE-RABs INTEGER ::= 256 +maxnoofTAIs INTEGER ::= 256 +maxnoofTACs INTEGER ::= 256 +maxnoofErrors INTEGER ::= 256 +maxnoofBPLMNs INTEGER ::= 6 +maxnoofPLMNsPerMME INTEGER ::= 32 +maxnoofEPLMNs INTEGER ::= 15 +maxnoofEPLMNsPlusOne INTEGER ::= 16 +maxnoofForbLACs INTEGER ::= 4096 +maxnoofForbTACs INTEGER ::= 4096 +maxnoofIndividualS1ConnectionsToReset INTEGER ::= 256 +maxnoofCells INTEGER ::= 16 +maxnoofCellsineNB INTEGER ::= 256 +maxnoofTAIforWarning INTEGER ::= 65535 +maxnoofCellID INTEGER ::= 65535 +maxnoofDCNs INTEGER ::= 32 +maxnoofEmergencyAreaID INTEGER ::= 65535 +maxnoofCellinTAI INTEGER ::= 65535 +maxnoofCellinEAI INTEGER ::= 65535 +maxnoofeNBX2TLAs INTEGER ::= 2 +maxnoofeNBX2ExtTLAs INTEGER ::= 16 +maxnoofeNBX2GTPTLAs INTEGER ::= 16 +maxnoofRATs INTEGER ::= 8 +maxnoofGroupIDs INTEGER ::= 65535 +maxnoofMMECs INTEGER ::= 256 +maxnoofCellIDforMDT INTEGER ::= 32 +maxnoofTAforMDT INTEGER ::= 8 +maxnoofMDTPLMNs INTEGER ::= 16 +maxnoofCellsforRestart INTEGER ::= 256 +maxnoofRestartTAIs INTEGER ::= 2048 +maxnoofRestartEmergencyAreaIDs INTEGER ::= 256 +maxEARFCN INTEGER ::= 262143 +maxnoofMBSFNAreaMDT INTEGER ::= 8 +maxnoofRecommendedCells INTEGER ::= 16 +maxnoofRecommendedENBs INTEGER ::= 16 + +-- ************************************************************** +-- +-- IEs +-- +-- ************************************************************** + +id-MME-UE-S1AP-ID ProtocolIE-ID ::= 0 +id-HandoverType ProtocolIE-ID ::= 1 +id-Cause ProtocolIE-ID ::= 2 +id-SourceID ProtocolIE-ID ::= 3 +id-TargetID ProtocolIE-ID ::= 4 +id-eNB-UE-S1AP-ID ProtocolIE-ID ::= 8 +id-E-RABSubjecttoDataForwardingList ProtocolIE-ID ::= 12 +id-E-RABtoReleaseListHOCmd ProtocolIE-ID ::= 13 +id-E-RABDataForwardingItem ProtocolIE-ID ::= 14 +id-E-RABReleaseItemBearerRelComp ProtocolIE-ID ::= 15 +id-E-RABToBeSetupListBearerSUReq ProtocolIE-ID ::= 16 +id-E-RABToBeSetupItemBearerSUReq ProtocolIE-ID ::= 17 +id-E-RABAdmittedList ProtocolIE-ID ::= 18 +id-E-RABFailedToSetupListHOReqAck ProtocolIE-ID ::= 19 +id-E-RABAdmittedItem ProtocolIE-ID ::= 20 +id-E-RABFailedtoSetupItemHOReqAck ProtocolIE-ID ::= 21 +id-E-RABToBeSwitchedDLList ProtocolIE-ID ::= 22 +id-E-RABToBeSwitchedDLItem ProtocolIE-ID ::= 23 +id-E-RABToBeSetupListCtxtSUReq ProtocolIE-ID ::= 24 +id-TraceActivation ProtocolIE-ID ::= 25 +id-NAS-PDU ProtocolIE-ID ::= 26 +id-E-RABToBeSetupItemHOReq ProtocolIE-ID ::= 27 +id-E-RABSetupListBearerSURes ProtocolIE-ID ::= 28 +id-E-RABFailedToSetupListBearerSURes ProtocolIE-ID ::= 29 +id-E-RABToBeModifiedListBearerModReq ProtocolIE-ID ::= 30 +id-E-RABModifyListBearerModRes ProtocolIE-ID ::= 31 +id-E-RABFailedToModifyList ProtocolIE-ID ::= 32 +id-E-RABToBeReleasedList ProtocolIE-ID ::= 33 +id-E-RABFailedToReleaseList ProtocolIE-ID ::= 34 +id-E-RABItem ProtocolIE-ID ::= 35 +id-E-RABToBeModifiedItemBearerModReq ProtocolIE-ID ::= 36 +id-E-RABModifyItemBearerModRes ProtocolIE-ID ::= 37 +id-E-RABReleaseItem ProtocolIE-ID ::= 38 +id-E-RABSetupItemBearerSURes ProtocolIE-ID ::= 39 +id-SecurityContext ProtocolIE-ID ::= 40 +id-HandoverRestrictionList ProtocolIE-ID ::= 41 +id-UEPagingID ProtocolIE-ID ::= 43 +id-pagingDRX ProtocolIE-ID ::= 44 +id-TAIList ProtocolIE-ID ::= 46 +id-TAIItem ProtocolIE-ID ::= 47 +id-E-RABFailedToSetupListCtxtSURes ProtocolIE-ID ::= 48 +id-E-RABReleaseItemHOCmd ProtocolIE-ID ::= 49 +id-E-RABSetupItemCtxtSURes ProtocolIE-ID ::= 50 +id-E-RABSetupListCtxtSURes ProtocolIE-ID ::= 51 +id-E-RABToBeSetupItemCtxtSUReq ProtocolIE-ID ::= 52 +id-E-RABToBeSetupListHOReq ProtocolIE-ID ::= 53 +id-GERANtoLTEHOInformationRes ProtocolIE-ID ::= 55 +id-UTRANtoLTEHOInformationRes ProtocolIE-ID ::= 57 +id-CriticalityDiagnostics ProtocolIE-ID ::= 58 +id-Global-ENB-ID ProtocolIE-ID ::= 59 +id-eNBname ProtocolIE-ID ::= 60 +id-MMEname ProtocolIE-ID ::= 61 +id-ServedPLMNs ProtocolIE-ID ::= 63 +id-SupportedTAs ProtocolIE-ID ::= 64 +id-TimeToWait ProtocolIE-ID ::= 65 +id-uEaggregateMaximumBitrate ProtocolIE-ID ::= 66 +id-TAI ProtocolIE-ID ::= 67 +id-E-RABReleaseListBearerRelComp ProtocolIE-ID ::= 69 +id-cdma2000PDU ProtocolIE-ID ::= 70 +id-cdma2000RATType ProtocolIE-ID ::= 71 +id-cdma2000SectorID ProtocolIE-ID ::= 72 +id-SecurityKey ProtocolIE-ID ::= 73 +id-UERadioCapability ProtocolIE-ID ::= 74 +id-GUMMEI-ID ProtocolIE-ID ::= 75 +id-E-RABInformationListItem ProtocolIE-ID ::= 78 +id-Direct-Forwarding-Path-Availability ProtocolIE-ID ::= 79 +id-UEIdentityIndexValue ProtocolIE-ID ::= 80 +id-cdma2000HOStatus ProtocolIE-ID ::= 83 +id-cdma2000HORequiredIndication ProtocolIE-ID ::= 84 +id-E-UTRAN-Trace-ID ProtocolIE-ID ::= 86 +id-RelativeMMECapacity ProtocolIE-ID ::= 87 +id-SourceMME-UE-S1AP-ID ProtocolIE-ID ::= 88 +id-Bearers-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 89 +id-eNB-StatusTransfer-TransparentContainer ProtocolIE-ID ::= 90 +id-UE-associatedLogicalS1-ConnectionItem ProtocolIE-ID ::= 91 +id-ResetType ProtocolIE-ID ::= 92 +id-UE-associatedLogicalS1-ConnectionListResAck ProtocolIE-ID ::= 93 +id-E-RABToBeSwitchedULItem ProtocolIE-ID ::= 94 +id-E-RABToBeSwitchedULList ProtocolIE-ID ::= 95 +id-S-TMSI ProtocolIE-ID ::= 96 +id-cdma2000OneXRAND ProtocolIE-ID ::= 97 +id-RequestType ProtocolIE-ID ::= 98 +id-UE-S1AP-IDs ProtocolIE-ID ::= 99 +id-EUTRAN-CGI ProtocolIE-ID ::= 100 +id-OverloadResponse ProtocolIE-ID ::= 101 +id-cdma2000OneXSRVCCInfo ProtocolIE-ID ::= 102 +id-E-RABFailedToBeReleasedList ProtocolIE-ID ::= 103 +id-Source-ToTarget-TransparentContainer ProtocolIE-ID ::= 104 +id-ServedGUMMEIs ProtocolIE-ID ::= 105 +id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 106 +id-UESecurityCapabilities ProtocolIE-ID ::= 107 +id-CSFallbackIndicator ProtocolIE-ID ::= 108 +id-CNDomain ProtocolIE-ID ::= 109 +id-E-RABReleasedList ProtocolIE-ID ::= 110 +id-MessageIdentifier ProtocolIE-ID ::= 111 +id-SerialNumber ProtocolIE-ID ::= 112 +id-WarningAreaList ProtocolIE-ID ::= 113 +id-RepetitionPeriod ProtocolIE-ID ::= 114 +id-NumberofBroadcastRequest ProtocolIE-ID ::= 115 +id-WarningType ProtocolIE-ID ::= 116 +id-WarningSecurityInfo ProtocolIE-ID ::= 117 +id-DataCodingScheme ProtocolIE-ID ::= 118 +id-WarningMessageContents ProtocolIE-ID ::= 119 +id-BroadcastCompletedAreaList ProtocolIE-ID ::= 120 +id-Inter-SystemInformationTransferTypeEDT ProtocolIE-ID ::= 121 +id-Inter-SystemInformationTransferTypeMDT ProtocolIE-ID ::= 122 +id-Target-ToSource-TransparentContainer ProtocolIE-ID ::= 123 +id-SRVCCOperationPossible ProtocolIE-ID ::= 124 +id-SRVCCHOIndication ProtocolIE-ID ::= 125 +id-NAS-DownlinkCount ProtocolIE-ID ::= 126 +id-CSG-Id ProtocolIE-ID ::= 127 +id-CSG-IdList ProtocolIE-ID ::= 128 +id-SONConfigurationTransferECT ProtocolIE-ID ::= 129 +id-SONConfigurationTransferMCT ProtocolIE-ID ::= 130 +id-TraceCollectionEntityIPAddress ProtocolIE-ID ::= 131 +id-MSClassmark2 ProtocolIE-ID ::= 132 +id-MSClassmark3 ProtocolIE-ID ::= 133 +id-RRC-Establishment-Cause ProtocolIE-ID ::= 134 +id-NASSecurityParametersfromE-UTRAN ProtocolIE-ID ::= 135 +id-NASSecurityParameterstoE-UTRAN ProtocolIE-ID ::= 136 +id-DefaultPagingDRX ProtocolIE-ID ::= 137 +id-Source-ToTarget-TransparentContainer-Secondary ProtocolIE-ID ::= 138 +id-Target-ToSource-TransparentContainer-Secondary ProtocolIE-ID ::= 139 +id-EUTRANRoundTripDelayEstimationInfo ProtocolIE-ID ::= 140 +id-BroadcastCancelledAreaList ProtocolIE-ID ::= 141 +id-ConcurrentWarningMessageIndicator ProtocolIE-ID ::= 142 +id-Data-Forwarding-Not-Possible ProtocolIE-ID ::= 143 +id-ExtendedRepetitionPeriod ProtocolIE-ID ::= 144 +id-CellAccessMode ProtocolIE-ID ::= 145 +id-CSGMembershipStatus ProtocolIE-ID ::= 146 +id-LPPa-PDU ProtocolIE-ID ::= 147 +id-Routing-ID ProtocolIE-ID ::= 148 +id-Time-Synchronisation-Info ProtocolIE-ID ::= 149 +id-PS-ServiceNotAvailable ProtocolIE-ID ::= 150 +id-PagingPriority ProtocolIE-ID ::= 151 +id-x2TNLConfigurationInfo ProtocolIE-ID ::= 152 +id-eNBX2ExtendedTransportLayerAddresses ProtocolIE-ID ::= 153 +id-GUMMEIList ProtocolIE-ID ::= 154 +id-GW-TransportLayerAddress ProtocolIE-ID ::= 155 +id-Correlation-ID ProtocolIE-ID ::= 156 +id-SourceMME-GUMMEI ProtocolIE-ID ::= 157 +id-MME-UE-S1AP-ID-2 ProtocolIE-ID ::= 158 +id-RegisteredLAI ProtocolIE-ID ::= 159 +id-RelayNode-Indicator ProtocolIE-ID ::= 160 +id-TrafficLoadReductionIndication ProtocolIE-ID ::= 161 +id-MDTConfiguration ProtocolIE-ID ::= 162 +id-MMERelaySupportIndicator ProtocolIE-ID ::= 163 +id-GWContextReleaseIndication ProtocolIE-ID ::= 164 +id-ManagementBasedMDTAllowed ProtocolIE-ID ::= 165 +id-PrivacyIndicator ProtocolIE-ID ::= 166 +id-Time-UE-StayedInCell-EnhancedGranularity ProtocolIE-ID ::= 167 +id-HO-Cause ProtocolIE-ID ::= 168 +id-VoiceSupportMatchIndicator ProtocolIE-ID ::= 169 +id-GUMMEIType ProtocolIE-ID ::= 170 +id-M3Configuration ProtocolIE-ID ::= 171 +id-M4Configuration ProtocolIE-ID ::= 172 +id-M5Configuration ProtocolIE-ID ::= 173 +id-MDT-Location-Info ProtocolIE-ID ::= 174 +id-MobilityInformation ProtocolIE-ID ::= 175 +id-Tunnel-Information-for-BBF ProtocolIE-ID ::= 176 +id-ManagementBasedMDTPLMNList ProtocolIE-ID ::= 177 +id-SignallingBasedMDTPLMNList ProtocolIE-ID ::= 178 +id-ULCOUNTValueExtended ProtocolIE-ID ::= 179 +id-DLCOUNTValueExtended ProtocolIE-ID ::= 180 +id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID ::= 181 +id-ECGIListForRestart ProtocolIE-ID ::= 182 +id-SIPTO-Correlation-ID ProtocolIE-ID ::= 183 +id-SIPTO-L-GW-TransportLayerAddress ProtocolIE-ID ::= 184 +id-TransportInformation ProtocolIE-ID ::= 185 +id-LHN-ID ProtocolIE-ID ::= 186 +id-AdditionalCSFallbackIndicator ProtocolIE-ID ::= 187 +id-TAIListForRestart ProtocolIE-ID ::= 188 +id-UserLocationInformation ProtocolIE-ID ::= 189 +id-EmergencyAreaIDListForRestart ProtocolIE-ID ::= 190 +id-KillAllWarningMessages ProtocolIE-ID ::= 191 +id-Masked-IMEISV ProtocolIE-ID ::= 192 +id-eNBIndirectX2TransportLayerAddresses ProtocolIE-ID ::= 193 +id-uE-HistoryInformationFromTheUE ProtocolIE-ID ::= 194 +id-ProSeAuthorized ProtocolIE-ID ::= 195 +id-ExpectedUEBehaviour ProtocolIE-ID ::= 196 +id-LoggedMBSFNMDT ProtocolIE-ID ::= 197 +id-UERadioCapabilityForPaging ProtocolIE-ID ::= 198 +id-E-RABToBeModifiedListBearerModInd ProtocolIE-ID ::= 199 +id-E-RABToBeModifiedItemBearerModInd ProtocolIE-ID ::= 200 +id-E-RABNotToBeModifiedListBearerModInd ProtocolIE-ID ::= 201 +id-E-RABNotToBeModifiedItemBearerModInd ProtocolIE-ID ::= 202 +id-E-RABModifyListBearerModConf ProtocolIE-ID ::= 203 +id-E-RABModifyItemBearerModConf ProtocolIE-ID ::= 204 +id-E-RABFailedToModifyListBearerModConf ProtocolIE-ID ::= 205 +id-SON-Information-Report ProtocolIE-ID ::= 206 +id-Muting-Availability-Indication ProtocolIE-ID ::= 207 +id-Muting-Pattern-Information ProtocolIE-ID ::= 208 +id-Synchronisation-Information ProtocolIE-ID ::= 209 +id-E-RABToBeReleasedListBearerModConf ProtocolIE-ID ::= 210 +id-AssistanceDataForPaging ProtocolIE-ID ::= 211 +id-CellIdentifierAndCELevelForCECapableUEs ProtocolIE-ID ::= 212 +id-InformationOnRecommendedCellsAndENBsForPaging ProtocolIE-ID ::= 213 +id-RecommendedCellItem ProtocolIE-ID ::= 214 +id-RecommendedENBItem ProtocolIE-ID ::= 215 +id-ProSeUEtoNetworkRelaying ProtocolIE-ID ::= 216 +id-ULCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 217 +id-DLCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 218 +id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ProtocolIE-ID ::= 219 +id-M6Configuration ProtocolIE-ID ::= 220 +id-M7Configuration ProtocolIE-ID ::= 221 +id-PWSfailedECGIList ProtocolIE-ID ::= 222 +id-MME-Group-ID ProtocolIE-ID ::= 223 +id-Additional-GUTI ProtocolIE-ID ::= 224 +id-S1-Message ProtocolIE-ID ::= 225 +id-CSGMembershipInfo ProtocolIE-ID ::= 226 +id-Paging-eDRXInformation ProtocolIE-ID ::= 227 +id-UE-RetentionInformation ProtocolIE-ID ::= 228 +id-UE-Usage-Type ProtocolIE-ID ::= 230 +id-extended-UEIdentityIndexValue ProtocolIE-ID ::= 231 +id-RAT-Type ProtocolIE-ID ::= 232 +id-BearerType ProtocolIE-ID ::= 233 +id-NB-IoT-DefaultPagingDRX ProtocolIE-ID ::= 234 +id-E-RABFailedToResumeListResumeReq ProtocolIE-ID ::= 235 +id-E-RABFailedToResumeItemResumeReq ProtocolIE-ID ::= 236 +id-E-RABFailedToResumeListResumeRes ProtocolIE-ID ::= 237 +id-E-RABFailedToResumeItemResumeRes ProtocolIE-ID ::= 238 +id-NB-IoT-Paging-eDRXInformation ProtocolIE-ID ::= 239 +id-V2XServicesAuthorized ProtocolIE-ID ::= 240 +id-UEUserPlaneCIoTSupportIndicator ProtocolIE-ID ::= 241 +id-CE-mode-B-SupportIndicator ProtocolIE-ID ::= 242 +id-SRVCCOperationNotPossible ProtocolIE-ID ::= 243 +id-NB-IoT-UEIdentityIndexValue ProtocolIE-ID ::= 244 +id-RRC-Resume-Cause ProtocolIE-ID ::= 245 +id-DCN-ID ProtocolIE-ID ::= 246 +id-ServedDCNs ProtocolIE-ID ::= 247 +id-UESidelinkAggregateMaximumBitrate ProtocolIE-ID ::= 248 +id-DLNASPDUDeliveryAckRequest ProtocolIE-ID ::= 249 +id-Coverage-Level ProtocolIE-ID ::= 250 +id-EnhancedCoverageRestricted ProtocolIE-ID ::= 251 +id-UE-Level-QoS-Parameters ProtocolIE-ID ::= 252 +id-DL-CP-SecurityInformation ProtocolIE-ID ::= 253 +id-UL-CP-SecurityInformation ProtocolIE-ID ::= 254 +id-CE-ModeBRestricted ProtocolIE-ID ::= 271 + +END + + +-- ************************************************************** +-- +-- Container definitions +-- +-- ************************************************************** + +S1AP-Containers { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Containers (5) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + Presence, + PrivateIE-ID, + ProtocolExtensionID, + ProtocolIE-ID +FROM S1AP-CommonDataTypes + + maxPrivateIEs, + maxProtocolExtensions, + maxProtocolIEs +FROM S1AP-Constants; + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +S1AP-PROTOCOL-IES ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +S1AP-PROTOCOL-IES-PAIR ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &firstCriticality Criticality, + &FirstValue, + &secondCriticality Criticality, + &SecondValue, + &presence Presence +} +WITH SYNTAX { + ID &id + FIRST CRITICALITY &firstCriticality + FIRST TYPE &FirstValue + SECOND CRITICALITY &secondCriticality + SECOND TYPE &SecondValue + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol Extensions +-- +-- ************************************************************** + +S1AP-PROTOCOL-EXTENSION ::= CLASS { + &id ProtocolExtensionID UNIQUE, + &criticality Criticality, + &Extension, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + EXTENSION &Extension + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Private IEs +-- +-- ************************************************************** + +S1AP-PRIVATE-IES ::= CLASS { + &id PrivateIE-ID, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Container for Protocol IEs +-- +-- ************************************************************** + +ProtocolIE-Container {S1AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-SingleContainer {S1AP-PROTOCOL-IES : IEsSetParam} ::= + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Field {S1AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-IES.&id ({IEsSetParam}), + criticality S1AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), + value S1AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Protocol IE Pairs +-- +-- ************************************************************** + +ProtocolIE-ContainerPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-FieldPair {{IEsSetParam}} + +ProtocolIE-FieldPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), + firstCriticality S1AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), + firstValue S1AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), + secondCriticality S1AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), + secondValue S1AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container Lists for Protocol IE Containers +-- +-- ************************************************************** + +ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-SingleContainer {{IEsSetParam}} + +ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-ContainerPair {{IEsSetParam}} + +-- ************************************************************** +-- +-- Container for Protocol Extensions +-- +-- ************************************************************** + +ProtocolExtensionContainer {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= + SEQUENCE (SIZE (1..maxProtocolExtensions)) OF + ProtocolExtensionField {{ExtensionSetParam}} + +ProtocolExtensionField {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), + criticality S1AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), + extensionValue S1AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Private IEs +-- +-- ************************************************************** + +PrivateIE-Container {S1AP-PRIVATE-IES : IEsSetParam } ::= + SEQUENCE (SIZE (1.. maxPrivateIEs)) OF + PrivateIE-Field {{IEsSetParam}} + +PrivateIE-Field {S1AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { + id S1AP-PRIVATE-IES.&id ({IEsSetParam}), + criticality S1AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), + value S1AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) +} + +END + +-- ************************************************************** +-- +-- IE definitions for the SON Transfer application +-- The IEs in this ASN.1 module shall be defined and encoded +-- using the same rules as applicable for the S1AP-IEs module. +-- +-- ************************************************************** +SonTransfer-IEs + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- +-- Generic IEs for the SON Transfer application +-- + +SONtransferApplicationIdentity ::= ENUMERATED { + cell-load-reporting, + ..., + multi-cell-load-reporting, + event-triggered-cell-load-reporting, + ho-reporting, + eutran-cell-activation, + energy-savings-indication, + failure-event-reporting +} + +SONtransferRequestContainer ::= CHOICE{ + cellLoadReporting NULL, + ..., + multiCellLoadReporting MultiCellLoadReportingRequest, + eventTriggeredCellLoadReporting EventTriggeredCellLoadReportingRequest, + hOReporting HOReport, + eutranCellActivation CellActivationRequest, + energySavingsIndication CellStateIndication, + failureEventReporting FailureEventReport +} + +SONtransferResponseContainer ::= CHOICE{ + cellLoadReporting CellLoadReportingResponse, + ..., + multiCellLoadReporting MultiCellLoadReportingResponse, + eventTriggeredCellLoadReporting EventTriggeredCellLoadReportingResponse, + hOReporting NULL, + eutranCellActivation CellActivationResponse, + energySavingsIndication NULL, + failureEventReporting NULL +} + +SONtransferCause ::= CHOICE { + cellLoadReporting CellLoadReportingCause, + ..., + multiCellLoadReporting CellLoadReportingCause, + eventTriggeredCellLoadReporting CellLoadReportingCause, + hOReporting HOReportingCause, + eutranCellActivation CellActivationCause, + energySavingsIndication CellStateIndicationCause, + failureEventReporting FailureEventReportingCause +} + + +CellLoadReportingCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +HOReportingCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +CellActivationCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +CellStateIndicationCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +FailureEventReportingCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +-- +-- IEs for Cell Load Reporting application +-- + +CellLoadReportingResponse::= CHOICE{ + eUTRAN EUTRANcellLoadReportingResponse, + uTRAN OCTET STRING, + gERAN OCTET STRING, + ..., + eHRPD EHRPDSectorLoadReportingResponse +} + +CompositeAvailableCapacityGroup ::= OCTET STRING + +EUTRANcellLoadReportingResponse ::= SEQUENCE { + compositeAvailableCapacityGroup CompositeAvailableCapacityGroup, + ... +} + +-- +-- IEs for Multi-Cell Load Reporting application +-- + +EUTRANResponse::= SEQUENCE { + cell-ID OCTET STRING, + eUTRANcellLoadReportingResponse EUTRANcellLoadReportingResponse, + ... +} + +EHRPD-Sector-ID ::= OCTET STRING (SIZE (16)) + +IRAT-Cell-ID ::= CHOICE{ + eUTRAN OCTET STRING, + uTRAN OCTET STRING, + gERAN OCTET STRING, + ..., + eHRPD EHRPD-Sector-ID +} + +RequestedCellList ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF IRAT-Cell-ID + +MultiCellLoadReportingRequest::= SEQUENCE { + requestedCellList RequestedCellList, + ... +} + +ReportingCellList-Item ::= SEQUENCE { + cell-ID IRAT-Cell-ID, + ... +} + +ReportingCellList ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF ReportingCellList-Item + +MultiCellLoadReportingResponse ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF MultiCellLoadReportingResponse-Item + +MultiCellLoadReportingResponse-Item ::= CHOICE{ + eUTRANResponse EUTRANResponse, + uTRANResponse OCTET STRING, + gERANResponse OCTET STRING, + ..., + eHRPD EHRPDMultiSectorLoadReportingResponseItem +} + + +-- +-- IEs for Event-triggered Cell Load Reporting application +-- + +NumberOfMeasurementReportingLevels ::= ENUMERATED { + rl2, + rl3, + rl4, + rl5, + rl10, + ... +} + +EventTriggeredCellLoadReportingRequest ::= SEQUENCE { + numberOfMeasurementReportingLevels NumberOfMeasurementReportingLevels, + ... +} + +OverloadFlag ::= ENUMERATED { + overload, + ... +} + +EventTriggeredCellLoadReportingResponse ::= SEQUENCE { + cellLoadReportingResponse CellLoadReportingResponse, + overloadFlag OverloadFlag OPTIONAL, + ... +} + +-- +-- IEs for HO Reporting application +-- + + + +HOReport::= SEQUENCE { + hoType HoType, + hoReportType HoReportType, + hosourceID IRAT-Cell-ID, + hoTargetID IRAT-Cell-ID, + candidateCellList CandidateCellList, + ..., + candidatePCIList CandidatePCIList OPTIONAL +} + +HoType ::= ENUMERATED { + ltetoutran, + ltetogeran, + ... +} + +HoReportType ::= ENUMERATED { + unnecessaryhotoanotherrat, + ..., + earlyirathandover +} + +CandidateCellList ::= SEQUENCE (SIZE(1..maxnoofcandidateCells)) OF IRAT-Cell-ID + +CandidatePCIList ::= SEQUENCE (SIZE(1..maxnoofcandidateCells)) OF CandidatePCI + +CandidatePCI ::= SEQUENCE { + pCI INTEGER (0..503), + eARFCN OCTET STRING, + ... +} + +-- +-- IEs for E-UTRAN Cell Activation application +-- + +CellActivationRequest ::= SEQUENCE { + cellsToActivateList CellsToActivateList, + minimumActivationTime INTEGER (1..60) OPTIONAL, +... +} + +CellsToActivateList ::= SEQUENCE (SIZE(1.. maxnoofCellineNB)) OF CellsToActivateList-Item + +CellsToActivateList-Item ::= SEQUENCE { + cell-ID OCTET STRING, + ... +} + +CellActivationResponse ::= SEQUENCE { + activatedCellsList ActivatedCellsList, + ... +} + +ActivatedCellsList ::= SEQUENCE (SIZE(0.. maxnoofCellineNB)) OF ActivatedCellsList-Item + +ActivatedCellsList-Item ::= SEQUENCE { + cell-ID OCTET STRING, + ... +} + +-- +-- IEs for Energy Savings Indication application +-- + +CellStateIndication ::= SEQUENCE { + notificationCellList NotificationCellList, + ... +} + +NotificationCellList ::= SEQUENCE (SIZE(1.. maxnoofCellineNB)) OF NotificationCellList-Item + +NotificationCellList-Item ::= SEQUENCE { + cell-ID OCTET STRING, + notifyFlag NotifyFlag, + ... +} + +NotifyFlag ::= ENUMERATED { + activated, + deactivated, + ... +} + +FailureEventReport::= CHOICE { + tooEarlyInterRATHOReportFromEUTRAN TooEarlyInterRATHOReportReportFromEUTRAN, + ... +} + +TooEarlyInterRATHOReportReportFromEUTRAN ::= SEQUENCE { + uERLFReportContainer OCTET STRING, -- as defined in TS 36.331 [16] -- + mobilityInformation MobilityInformation OPTIONAL, + ... +} + +MobilityInformation ::= BIT STRING (SIZE(32)) + + +-- +-- IEs for reporting of eHRPD load +-- + +EHRPDCapacityValue ::= INTEGER (0..100) + +EHRPDSectorCapacityClassValue ::= INTEGER (1..100, ...) + +EHRPDSectorLoadReportingResponse ::= SEQUENCE { + dL-EHRPD-CompositeAvailableCapacity EHRPDCompositeAvailableCapacity, + uL-EHRPD-CompositeAvailableCapacity EHRPDCompositeAvailableCapacity, + ... +} + +EHRPDCompositeAvailableCapacity ::= SEQUENCE { + eHRPDSectorCapacityClassValue EHRPDSectorCapacityClassValue, + eHRPDCapacityValue EHRPDCapacityValue, + ... +} + +EHRPDMultiSectorLoadReportingResponseItem ::= SEQUENCE { + eHRPD-Sector-ID EHRPD-Sector-ID, + eHRPDSectorLoadReportingResponse EHRPDSectorLoadReportingResponse, + ... +} + + +-- ************************************************************** +-- +-- Constants +-- +-- ************************************************************** + +maxnoofIRATReportingCells INTEGER ::= 128 +maxnoofcandidateCells INTEGER ::= 16 +maxnoofCellineNB INTEGER ::= 256 + +END + diff --git a/openair3/S1AP/MESSAGES/ASN1/R14/s1ap-14.6.0.asn1 b/openair3/S1AP/MESSAGES/ASN1/R14/s1ap-14.6.0.asn1 new file mode 100755 index 0000000000..4d482178b7 --- /dev/null +++ b/openair3/S1AP/MESSAGES/ASN1/R14/s1ap-14.6.0.asn1 @@ -0,0 +1,6985 @@ +-- ************************************************************** +-- +-- Elementary Procedure definitions +-- +-- ************************************************************** + +S1AP-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Descriptions (0)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + ProcedureCode +FROM S1AP-CommonDataTypes + + CellTrafficTrace, + DeactivateTrace, + DownlinkUEAssociatedLPPaTransport, + DownlinkNASTransport, + DownlinkNonUEAssociatedLPPaTransport, + DownlinkS1cdma2000tunnelling, + ENBDirectInformationTransfer, + ENBStatusTransfer, + ENBConfigurationUpdate, + ENBConfigurationUpdateAcknowledge, + ENBConfigurationUpdateFailure, + ErrorIndication, + HandoverCancel, + HandoverCancelAcknowledge, + HandoverCommand, + HandoverFailure, + HandoverNotify, + HandoverPreparationFailure, + HandoverRequest, + HandoverRequestAcknowledge, + HandoverRequired, + InitialContextSetupFailure, + InitialContextSetupRequest, + InitialContextSetupResponse, + InitialUEMessage, + KillRequest, + KillResponse, + LocationReportingControl, + LocationReportingFailureIndication, + LocationReport, + MMEConfigurationUpdate, + MMEConfigurationUpdateAcknowledge, + MMEConfigurationUpdateFailure, + MMEDirectInformationTransfer, + MMEStatusTransfer, + NASNonDeliveryIndication, + OverloadStart, + OverloadStop, + Paging, + PathSwitchRequest, + PathSwitchRequestAcknowledge, + PathSwitchRequestFailure, + PrivateMessage, + Reset, + ResetAcknowledge, + S1SetupFailure, + S1SetupRequest, + S1SetupResponse, + E-RABModifyRequest, + E-RABModifyResponse, + E-RABModificationIndication, + E-RABModificationConfirm, + E-RABReleaseCommand, + E-RABReleaseResponse, + E-RABReleaseIndication, + E-RABSetupRequest, + E-RABSetupResponse, + TraceFailureIndication, + TraceStart, + UECapabilityInfoIndication, + UEContextModificationFailure, + UEContextModificationRequest, + UEContextModificationResponse, + UEContextReleaseCommand, + UEContextReleaseComplete, + UEContextReleaseRequest, + UERadioCapabilityMatchRequest, + UERadioCapabilityMatchResponse, + UplinkUEAssociatedLPPaTransport, + UplinkNASTransport, + UplinkNonUEAssociatedLPPaTransport, + UplinkS1cdma2000tunnelling, + WriteReplaceWarningRequest, + WriteReplaceWarningResponse, + ENBConfigurationTransfer, + MMEConfigurationTransfer, + PWSRestartIndication, + UEContextModificationIndication, + UEContextModificationConfirm, + RerouteNASRequest, + PWSFailureIndication, + UEContextSuspendRequest, + UEContextSuspendResponse, + UEContextResumeRequest, + UEContextResumeResponse, + UEContextResumeFailure, + ConnectionEstablishmentIndication, + NASDeliveryIndication, + RetrieveUEInformation, + UEInformationTransfer, + ENBCPRelocationIndication, + MMECPRelocationIndication + + +FROM S1AP-PDU-Contents + + id-CellTrafficTrace, + id-DeactivateTrace, + id-downlinkUEAssociatedLPPaTransport, + id-downlinkNASTransport, + id-downlinkNonUEAssociatedLPPaTransport, + id-DownlinkS1cdma2000tunnelling, + id-eNBStatusTransfer, + id-ErrorIndication, + id-HandoverCancel, + id-HandoverNotification, + id-HandoverPreparation, + id-HandoverResourceAllocation, + id-InitialContextSetup, + id-initialUEMessage, + id-ENBConfigurationUpdate, + id-Kill, + id-LocationReportingControl, + id-LocationReportingFailureIndication, + id-LocationReport, + id-eNBDirectInformationTransfer, + id-MMEConfigurationUpdate, + id-MMEDirectInformationTransfer, + id-MMEStatusTransfer, + id-NASNonDeliveryIndication, + id-OverloadStart, + id-OverloadStop, + id-Paging, + id-PathSwitchRequest, + id-PrivateMessage, + id-Reset, + id-S1Setup, + id-E-RABModify, + id-E-RABModificationIndication, + id-E-RABRelease, + id-E-RABReleaseIndication, + id-E-RABSetup, + id-TraceFailureIndication, + id-TraceStart, + id-UECapabilityInfoIndication, + id-UEContextModification, + id-UEContextRelease, + id-UEContextReleaseRequest, + id-UERadioCapabilityMatch, + id-uplinkUEAssociatedLPPaTransport, + id-uplinkNASTransport, + id-uplinkNonUEAssociatedLPPaTransport, + id-UplinkS1cdma2000tunnelling, + id-WriteReplaceWarning, + id-eNBConfigurationTransfer, + id-MMEConfigurationTransfer, + id-PWSRestartIndication, + id-UEContextModificationIndication, + id-RerouteNASRequest, + id-PWSFailureIndication, + id-UEContextSuspend, + id-UEContextResume, + id-ConnectionEstablishmentIndication, + id-NASDeliveryIndication, + id-RetrieveUEInformation, + id-UEInformationTransfer, + id-eNBCPRelocationIndication, + id-MMECPRelocationIndication + + +FROM S1AP-Constants; + + +-- ************************************************************** +-- +-- Interface Elementary Procedure Class +-- +-- ************************************************************** + +S1AP-ELEMENTARY-PROCEDURE ::= CLASS { + &InitiatingMessage , + &SuccessfulOutcome OPTIONAL, + &UnsuccessfulOutcome OPTIONAL, + &procedureCode ProcedureCode UNIQUE, + &criticality Criticality DEFAULT ignore +} +WITH SYNTAX { + INITIATING MESSAGE &InitiatingMessage + [SUCCESSFUL OUTCOME &SuccessfulOutcome] + [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] + PROCEDURE CODE &procedureCode + [CRITICALITY &criticality] +} + +-- ************************************************************** +-- +-- Interface PDU Definition +-- +-- ************************************************************** + +S1AP-PDU ::= CHOICE { + initiatingMessage InitiatingMessage, + successfulOutcome SuccessfulOutcome, + unsuccessfulOutcome UnsuccessfulOutcome, + ... +} + +InitiatingMessage ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +SuccessfulOutcome ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +UnsuccessfulOutcome ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +-- ************************************************************** +-- +-- Interface Elementary Procedure List +-- +-- ************************************************************** + +S1AP-ELEMENTARY-PROCEDURES S1AP-ELEMENTARY-PROCEDURE ::= { + S1AP-ELEMENTARY-PROCEDURES-CLASS-1 | + S1AP-ELEMENTARY-PROCEDURES-CLASS-2, + ... +} + + +S1AP-ELEMENTARY-PROCEDURES-CLASS-1 S1AP-ELEMENTARY-PROCEDURE ::= { + handoverPreparation | + handoverResourceAllocation | + pathSwitchRequest | + e-RABSetup | + e-RABModify | + e-RABRelease | + initialContextSetup | + handoverCancel | + kill | + reset | + s1Setup | + uEContextModification | + uEContextRelease | + eNBConfigurationUpdate | + mMEConfigurationUpdate | + writeReplaceWarning , + ..., + uERadioCapabilityMatch | + e-RABModificationIndication | + uEContextModificationIndication | + uEContextSuspend | + uEContextResume +} + +S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= { + handoverNotification | + e-RABReleaseIndication | + paging | + downlinkNASTransport | + initialUEMessage | + uplinkNASTransport | + errorIndication | + nASNonDeliveryIndication | + uEContextReleaseRequest | + downlinkS1cdma2000tunnelling | + uplinkS1cdma2000tunnelling | + uECapabilityInfoIndication | + eNBStatusTransfer | + mMEStatusTransfer | + deactivateTrace | + traceStart | + traceFailureIndication | + cellTrafficTrace | + locationReportingControl | + locationReportingFailureIndication | + locationReport | + overloadStart | + overloadStop | + eNBDirectInformationTransfer | + mMEDirectInformationTransfer | + eNBConfigurationTransfer | + mMEConfigurationTransfer | + privateMessage , + ..., + downlinkUEAssociatedLPPaTransport | + uplinkUEAssociatedLPPaTransport | + downlinkNonUEAssociatedLPPaTransport | + uplinkNonUEAssociatedLPPaTransport | + pWSRestartIndication | + rerouteNASRequest | + pWSFailureIndication | + connectionEstablishmentIndication | + nASDeliveryIndication | + retrieveUEInformation | + uEInformationTransfer | + eNBCPRelocationIndication | + mMECPRelocationIndication +} + +-- ************************************************************** +-- +-- Interface Elementary Procedures +-- +-- ************************************************************** + +handoverPreparation S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequired + SUCCESSFUL OUTCOME HandoverCommand + UNSUCCESSFUL OUTCOME HandoverPreparationFailure + PROCEDURE CODE id-HandoverPreparation + CRITICALITY reject +} + +handoverResourceAllocation S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequest + SUCCESSFUL OUTCOME HandoverRequestAcknowledge + UNSUCCESSFUL OUTCOME HandoverFailure + PROCEDURE CODE id-HandoverResourceAllocation + CRITICALITY reject +} + +handoverNotification S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverNotify + PROCEDURE CODE id-HandoverNotification + CRITICALITY ignore +} + +pathSwitchRequest S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PathSwitchRequest + SUCCESSFUL OUTCOME PathSwitchRequestAcknowledge + UNSUCCESSFUL OUTCOME PathSwitchRequestFailure + PROCEDURE CODE id-PathSwitchRequest + CRITICALITY reject +} + +e-RABSetup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABSetupRequest + SUCCESSFUL OUTCOME E-RABSetupResponse + PROCEDURE CODE id-E-RABSetup + CRITICALITY reject +} + +e-RABModify S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABModifyRequest + SUCCESSFUL OUTCOME E-RABModifyResponse + PROCEDURE CODE id-E-RABModify + CRITICALITY reject +} + +e-RABRelease S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABReleaseCommand + SUCCESSFUL OUTCOME E-RABReleaseResponse + PROCEDURE CODE id-E-RABRelease + CRITICALITY reject +} + +e-RABReleaseIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABReleaseIndication + PROCEDURE CODE id-E-RABReleaseIndication + CRITICALITY ignore +} + +initialContextSetup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE InitialContextSetupRequest + SUCCESSFUL OUTCOME InitialContextSetupResponse + UNSUCCESSFUL OUTCOME InitialContextSetupFailure + PROCEDURE CODE id-InitialContextSetup + CRITICALITY reject +} + +uEContextReleaseRequest S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextReleaseRequest + PROCEDURE CODE id-UEContextReleaseRequest + CRITICALITY ignore +} + +paging S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE Paging + PROCEDURE CODE id-Paging + CRITICALITY ignore +} + +downlinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkNASTransport + PROCEDURE CODE id-downlinkNASTransport + CRITICALITY ignore +} + +initialUEMessage S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE InitialUEMessage + PROCEDURE CODE id-initialUEMessage + CRITICALITY ignore +} + +uplinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkNASTransport + PROCEDURE CODE id-uplinkNASTransport + CRITICALITY ignore +} +nASNonDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE NASNonDeliveryIndication + PROCEDURE CODE id-NASNonDeliveryIndication + CRITICALITY ignore +} + +handoverCancel S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverCancel + SUCCESSFUL OUTCOME HandoverCancelAcknowledge + PROCEDURE CODE id-HandoverCancel + CRITICALITY reject +} + +reset S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE Reset + SUCCESSFUL OUTCOME ResetAcknowledge + PROCEDURE CODE id-Reset + CRITICALITY reject +} + +errorIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ErrorIndication + PROCEDURE CODE id-ErrorIndication + CRITICALITY ignore +} + +s1Setup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE S1SetupRequest + SUCCESSFUL OUTCOME S1SetupResponse + UNSUCCESSFUL OUTCOME S1SetupFailure + PROCEDURE CODE id-S1Setup + CRITICALITY reject +} + +eNBConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationUpdate + SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure + PROCEDURE CODE id-ENBConfigurationUpdate + CRITICALITY reject +} + +mMEConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEConfigurationUpdate + SUCCESSFUL OUTCOME MMEConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME MMEConfigurationUpdateFailure + PROCEDURE CODE id-MMEConfigurationUpdate + CRITICALITY reject +} + +downlinkS1cdma2000tunnelling S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkS1cdma2000tunnelling + PROCEDURE CODE id-DownlinkS1cdma2000tunnelling + CRITICALITY ignore +} + +uplinkS1cdma2000tunnelling S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkS1cdma2000tunnelling + PROCEDURE CODE id-UplinkS1cdma2000tunnelling + CRITICALITY ignore +} + +uEContextModification S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextModificationRequest + SUCCESSFUL OUTCOME UEContextModificationResponse + UNSUCCESSFUL OUTCOME UEContextModificationFailure + PROCEDURE CODE id-UEContextModification + CRITICALITY reject +} + +uECapabilityInfoIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UECapabilityInfoIndication + PROCEDURE CODE id-UECapabilityInfoIndication + CRITICALITY ignore +} + +uEContextRelease S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextReleaseCommand + SUCCESSFUL OUTCOME UEContextReleaseComplete + PROCEDURE CODE id-UEContextRelease + CRITICALITY reject +} + +eNBStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBStatusTransfer + PROCEDURE CODE id-eNBStatusTransfer + CRITICALITY ignore +} + +mMEStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEStatusTransfer + PROCEDURE CODE id-MMEStatusTransfer + CRITICALITY ignore +} + +deactivateTrace S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DeactivateTrace + PROCEDURE CODE id-DeactivateTrace + CRITICALITY ignore +} + +traceStart S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE TraceStart + PROCEDURE CODE id-TraceStart + CRITICALITY ignore +} + +traceFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE TraceFailureIndication + PROCEDURE CODE id-TraceFailureIndication + CRITICALITY ignore +} +cellTrafficTrace S1AP-ELEMENTARY-PROCEDURE ::={ + INITIATING MESSAGE CellTrafficTrace + PROCEDURE CODE id-CellTrafficTrace + CRITICALITY ignore +} + +locationReportingControl S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReportingControl + PROCEDURE CODE id-LocationReportingControl + CRITICALITY ignore +} + +locationReportingFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReportingFailureIndication + PROCEDURE CODE id-LocationReportingFailureIndication + CRITICALITY ignore +} + +locationReport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReport + PROCEDURE CODE id-LocationReport + CRITICALITY ignore +} + +overloadStart S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE OverloadStart + PROCEDURE CODE id-OverloadStart + CRITICALITY ignore +} + +overloadStop S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE OverloadStop + PROCEDURE CODE id-OverloadStop + CRITICALITY reject +} + +writeReplaceWarning S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE WriteReplaceWarningRequest + SUCCESSFUL OUTCOME WriteReplaceWarningResponse + PROCEDURE CODE id-WriteReplaceWarning + CRITICALITY reject +} + +eNBDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBDirectInformationTransfer + PROCEDURE CODE id-eNBDirectInformationTransfer + CRITICALITY ignore +} + +mMEDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEDirectInformationTransfer + PROCEDURE CODE id-MMEDirectInformationTransfer + CRITICALITY ignore +} + +eNBConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationTransfer + PROCEDURE CODE id-eNBConfigurationTransfer + CRITICALITY ignore +} + +mMEConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEConfigurationTransfer + PROCEDURE CODE id-MMEConfigurationTransfer + CRITICALITY ignore +} + + +privateMessage S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PrivateMessage + PROCEDURE CODE id-PrivateMessage + CRITICALITY ignore +} + +pWSRestartIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PWSRestartIndication + PROCEDURE CODE id-PWSRestartIndication + CRITICALITY ignore +} + +kill S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE KillRequest + SUCCESSFUL OUTCOME KillResponse + PROCEDURE CODE id-Kill + CRITICALITY reject +} + +downlinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkUEAssociatedLPPaTransport + PROCEDURE CODE id-downlinkUEAssociatedLPPaTransport + CRITICALITY ignore +} + +uplinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkUEAssociatedLPPaTransport + PROCEDURE CODE id-uplinkUEAssociatedLPPaTransport + CRITICALITY ignore +} +downlinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkNonUEAssociatedLPPaTransport + PROCEDURE CODE id-downlinkNonUEAssociatedLPPaTransport + CRITICALITY ignore +} + +uplinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkNonUEAssociatedLPPaTransport + PROCEDURE CODE id-uplinkNonUEAssociatedLPPaTransport + CRITICALITY ignore +} + +uERadioCapabilityMatch S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UERadioCapabilityMatchRequest + SUCCESSFUL OUTCOME UERadioCapabilityMatchResponse + PROCEDURE CODE id-UERadioCapabilityMatch + CRITICALITY reject +} + +e-RABModificationIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABModificationIndication + SUCCESSFUL OUTCOME E-RABModificationConfirm + PROCEDURE CODE id-E-RABModificationIndication + CRITICALITY reject +} + +uEContextModificationIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextModificationIndication + SUCCESSFUL OUTCOME UEContextModificationConfirm + PROCEDURE CODE id-UEContextModificationIndication + CRITICALITY reject +} + +rerouteNASRequest S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RerouteNASRequest + PROCEDURE CODE id-RerouteNASRequest + CRITICALITY reject +} + +pWSFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PWSFailureIndication + PROCEDURE CODE id-PWSFailureIndication + CRITICALITY ignore +} + +uEContextSuspend S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextSuspendRequest + SUCCESSFUL OUTCOME UEContextSuspendResponse + PROCEDURE CODE id-UEContextSuspend + CRITICALITY reject +} + +uEContextResume S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextResumeRequest + SUCCESSFUL OUTCOME UEContextResumeResponse + UNSUCCESSFUL OUTCOME UEContextResumeFailure + PROCEDURE CODE id-UEContextResume + CRITICALITY reject +} + +connectionEstablishmentIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ConnectionEstablishmentIndication + PROCEDURE CODE id-ConnectionEstablishmentIndication + CRITICALITY reject +} + +nASDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE NASDeliveryIndication + PROCEDURE CODE id-NASDeliveryIndication + CRITICALITY ignore +} + +retrieveUEInformation S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RetrieveUEInformation + PROCEDURE CODE id-RetrieveUEInformation + CRITICALITY reject +} + +uEInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEInformationTransfer + PROCEDURE CODE id-UEInformationTransfer + CRITICALITY reject +} + +eNBCPRelocationIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBCPRelocationIndication + PROCEDURE CODE id-eNBCPRelocationIndication + CRITICALITY reject +} + +mMECPRelocationIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMECPRelocationIndication + PROCEDURE CODE id-MMECPRelocationIndication + CRITICALITY reject +} + + +END + + + +-- ************************************************************** +-- +-- PDU definitions for S1AP. +-- +-- ************************************************************** + +S1AP-PDU-Contents { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Contents (1) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + + UEAggregateMaximumBitrate, + BearerType, + Cause, + CellAccessMode, + Cdma2000HORequiredIndication, + Cdma2000HOStatus, + Cdma2000OneXSRVCCInfo, + Cdma2000OneXRAND, + Cdma2000PDU, + Cdma2000RATType, + Cdma2000SectorID, + EUTRANRoundTripDelayEstimationInfo, + CNDomain, + ConcurrentWarningMessageIndicator, + CriticalityDiagnostics, + CSFallbackIndicator, + CSG-Id, + CSG-IdList, + CSGMembershipStatus, + Data-Forwarding-Not-Possible, + Direct-Forwarding-Path-Availability, + Global-ENB-ID, + EUTRAN-CGI, + ENBname, + ENB-StatusTransfer-TransparentContainer, + ENB-UE-S1AP-ID, + ExtendedRepetitionPeriod, + GTP-TEID, + GUMMEI, + GUMMEIType, + HandoverRestrictionList, + HandoverType, + Masked-IMEISV, + LAI, + LPPa-PDU, + ManagementBasedMDTAllowed, + MDTPLMNList, + MMEname, + MMERelaySupportIndicator, + MME-UE-S1AP-ID, + MSClassmark2, + MSClassmark3, + NAS-PDU, + NASSecurityParametersfromE-UTRAN, + NASSecurityParameterstoE-UTRAN, + OverloadResponse, + PagingDRX, + PagingPriority, + PLMNidentity, + ProSeAuthorized, + RIMTransfer, + RelativeMMECapacity, + RequestType, + E-RAB-ID, + E-RABLevelQoSParameters, + E-RABList, + RelayNode-Indicator, + Routing-ID, + SecurityKey, + SecurityContext, + ServedGUMMEIs, + SONConfigurationTransfer, + Source-ToTarget-TransparentContainer, + SourceBSS-ToTargetBSS-TransparentContainer, + SourceeNB-ToTargeteNB-TransparentContainer, + SourceRNC-ToTargetRNC-TransparentContainer, + SubscriberProfileIDforRFP, + SRVCCOperationNotPossible, + SRVCCOperationPossible, + SRVCCHOIndication, + SupportedTAs, + TAI, + Target-ToSource-TransparentContainer, + TargetBSS-ToSourceBSS-TransparentContainer, + TargeteNB-ToSourceeNB-TransparentContainer, + TargetID, + TargetRNC-ToSourceRNC-TransparentContainer, + TimeToWait, + TraceActivation, + TrafficLoadReductionIndication, + E-UTRAN-Trace-ID, + TransportLayerAddress, + UEIdentityIndexValue, + UEPagingID, + UERadioCapability, + UERadioCapabilityForPaging, + UE-RetentionInformation, + UE-S1AP-IDs, + UE-associatedLogicalS1-ConnectionItem, + UESecurityCapabilities, + S-TMSI, + MessageIdentifier, + SerialNumber, + WarningAreaList, + RepetitionPeriod, + NumberofBroadcastRequest, + WarningType, + WarningSecurityInfo, + DataCodingScheme, + WarningMessageContents, + BroadcastCompletedAreaList, + RRC-Establishment-Cause, + BroadcastCancelledAreaList, + PS-ServiceNotAvailable, + GUMMEIList, + Correlation-ID, + GWContextReleaseIndication, + PrivacyIndicator, + VoiceSupportMatchIndicator, + TunnelInformation, + KillAllWarningMessages, + TransportInformation, + LHN-ID, + UserLocationInformation, + AdditionalCSFallbackIndicator, + ECGIListForRestart, + TAIListForRestart, + EmergencyAreaIDListForRestart, + ExpectedUEBehaviour, + Paging-eDRXInformation, + Extended-UEIdentityIndexValue, + MME-Group-ID, + Additional-GUTI, + PWSfailedECGIList, + CellIdentifierAndCELevelForCECapableUEs, + AssistanceDataForPaging, + InformationOnRecommendedCellsAndENBsForPaging, + UE-Usage-Type, + UEUserPlaneCIoTSupportIndicator, + NB-IoT-DefaultPagingDRX, + NB-IoT-Paging-eDRXInformation, + CE-mode-B-SupportIndicator, + NB-IoT-UEIdentityIndexValue, + V2XServicesAuthorized, + DCN-ID, + ServedDCNs, + UESidelinkAggregateMaximumBitrate, + DLNASPDUDeliveryAckRequest, + Coverage-Level, + EnhancedCoverageRestricted, + DL-CP-SecurityInformation, + UL-CP-SecurityInformation, + CE-ModeBRestricted + + + +FROM S1AP-IEs + + PrivateIE-Container{}, + ProtocolExtensionContainer{}, + ProtocolIE-Container{}, + ProtocolIE-ContainerList{}, + ProtocolIE-ContainerPair{}, + ProtocolIE-ContainerPairList{}, + ProtocolIE-SingleContainer{}, + S1AP-PRIVATE-IES, + S1AP-PROTOCOL-EXTENSION, + S1AP-PROTOCOL-IES, + S1AP-PROTOCOL-IES-PAIR +FROM S1AP-Containers + + + id-AssistanceDataForPaging, + id-uEaggregateMaximumBitrate, + id-BearerType, + id-Cause, + id-CellAccessMode, + id-CellIdentifierAndCELevelForCECapableUEs, + id-cdma2000HORequiredIndication, + id-cdma2000HOStatus, + id-cdma2000OneXSRVCCInfo, + id-cdma2000OneXRAND, + id-cdma2000PDU, + id-cdma2000RATType, + id-cdma2000SectorID, + id-EUTRANRoundTripDelayEstimationInfo, + id-CNDomain, + id-ConcurrentWarningMessageIndicator, + id-CriticalityDiagnostics, + id-CSFallbackIndicator, + id-CSG-Id, + id-CSG-IdList, + id-CSGMembershipStatus, + id-Data-Forwarding-Not-Possible, + id-DefaultPagingDRX, + id-Direct-Forwarding-Path-Availability, + id-Global-ENB-ID, + id-EUTRAN-CGI, + id-eNBname, + id-eNB-StatusTransfer-TransparentContainer, + id-eNB-UE-S1AP-ID, + id-GERANtoLTEHOInformationRes, + id-GUMMEI-ID, + id-GUMMEIType, + id-HandoverRestrictionList, + id-HandoverType, + id-Masked-IMEISV, + id-InformationOnRecommendedCellsAndENBsForPaging, + id-InitialContextSetup, + id-Inter-SystemInformationTransferTypeEDT, + id-Inter-SystemInformationTransferTypeMDT, + id-LPPa-PDU, + id-NAS-DownlinkCount, + id-ManagementBasedMDTAllowed, + id-ManagementBasedMDTPLMNList, + id-MMEname, + id-MME-UE-S1AP-ID, + id-MSClassmark2, + id-MSClassmark3, + id-NAS-PDU, + id-NASSecurityParametersfromE-UTRAN, + id-NASSecurityParameterstoE-UTRAN, + id-OverloadResponse, + id-pagingDRX, + id-PagingPriority, + id-RelativeMMECapacity, + id-RequestType, + id-Routing-ID, + id-E-RABAdmittedItem, + id-E-RABAdmittedList, + id-E-RABDataForwardingItem, + id-E-RABFailedToModifyList, + id-E-RABFailedToReleaseList, + id-E-RABFailedtoSetupItemHOReqAck, + id-E-RABFailedToSetupListBearerSURes, + id-E-RABFailedToSetupListCtxtSURes, + id-E-RABFailedToSetupListHOReqAck, + id-E-RABFailedToBeReleasedList, + id-E-RABFailedToResumeListResumeReq, + id-E-RABFailedToResumeItemResumeReq, + id-E-RABFailedToResumeListResumeRes, + id-E-RABFailedToResumeItemResumeRes, + id-E-RABModify, + id-E-RABModifyItemBearerModRes, + id-E-RABModifyListBearerModRes, + id-E-RABRelease, + id-E-RABReleaseItemBearerRelComp, + id-E-RABReleaseItemHOCmd, + id-E-RABReleaseListBearerRelComp, + id-E-RABReleaseIndication, + id-E-RABSetup, + id-E-RABSetupItemBearerSURes, + id-E-RABSetupItemCtxtSURes, + id-E-RABSetupListBearerSURes, + id-E-RABSetupListCtxtSURes, + id-E-RABSubjecttoDataForwardingList, + id-E-RABToBeModifiedItemBearerModReq, + id-E-RABToBeModifiedListBearerModReq, + id-E-RABToBeModifiedListBearerModInd, + id-E-RABToBeModifiedItemBearerModInd, + id-E-RABNotToBeModifiedListBearerModInd, + id-E-RABNotToBeModifiedItemBearerModInd, + id-E-RABModifyListBearerModConf, + id-E-RABModifyItemBearerModConf, + id-E-RABFailedToModifyListBearerModConf, + id-E-RABToBeReleasedListBearerModConf, + id-E-RABToBeReleasedList, + id-E-RABReleasedList, + id-E-RABToBeSetupItemBearerSUReq, + id-E-RABToBeSetupItemCtxtSUReq, + id-E-RABToBeSetupItemHOReq, + id-E-RABToBeSetupListBearerSUReq, + id-E-RABToBeSetupListCtxtSUReq, + id-E-RABToBeSetupListHOReq, + id-E-RABToBeSwitchedDLItem, + id-E-RABToBeSwitchedDLList, + id-E-RABToBeSwitchedULList, + id-E-RABToBeSwitchedULItem, + id-E-RABtoReleaseListHOCmd, + id-ProSeAuthorized, + id-SecurityKey, + id-SecurityContext, + id-ServedGUMMEIs, + id-SONConfigurationTransferECT, + id-SONConfigurationTransferMCT, + id-Source-ToTarget-TransparentContainer, + id-Source-ToTarget-TransparentContainer-Secondary, + id-SourceMME-UE-S1AP-ID, + id-SRVCCOperationNotPossible, + id-SRVCCOperationPossible, + id-SRVCCHOIndication, + id-SubscriberProfileIDforRFP, + id-SupportedTAs, + id-S-TMSI, + id-TAI, + id-TAIItem, + id-TAIList, + id-Target-ToSource-TransparentContainer, + id-Target-ToSource-TransparentContainer-Secondary, + id-TargetID, + id-TimeToWait, + id-TraceActivation, + id-TrafficLoadReductionIndication, + id-E-UTRAN-Trace-ID, + id-UEIdentityIndexValue, + id-UEPagingID, + id-UERadioCapability, + id-UERadioCapabilityForPaging, + id-UTRANtoLTEHOInformationRes, + id-UE-associatedLogicalS1-ConnectionListResAck, + id-UE-associatedLogicalS1-ConnectionItem, + id-UE-RetentionInformation, + id-UESecurityCapabilities, + id-UE-S1AP-IDs, + id-V2XServicesAuthorized, + id-ResetType, + id-MessageIdentifier, + id-SerialNumber, + id-WarningAreaList, + id-RepetitionPeriod, + id-NumberofBroadcastRequest, + id-WarningType, + id-WarningSecurityInfo, + id-DataCodingScheme, + id-WarningMessageContents, + id-BroadcastCompletedAreaList, + id-BroadcastCancelledAreaList, + id-RRC-Establishment-Cause, + id-TraceCollectionEntityIPAddress, + maxnoofTAIs, + maxnoofErrors, + maxnoofE-RABs, + maxnoofIndividualS1ConnectionsToReset, + maxnoofEmergencyAreaID, + maxnoofCellID, + maxnoofTAIforWarning, + maxnoofCellinTAI, + maxnoofCellinEAI, + id-ExtendedRepetitionPeriod, + id-PS-ServiceNotAvailable, + id-RegisteredLAI, + id-GUMMEIList, + id-SourceMME-GUMMEI, + id-MME-UE-S1AP-ID-2, + id-GW-TransportLayerAddress, + id-RelayNode-Indicator, + id-Correlation-ID, + id-MMERelaySupportIndicator, + id-GWContextReleaseIndication, + id-PrivacyIndicator, + id-VoiceSupportMatchIndicator, + id-Tunnel-Information-for-BBF, + id-SIPTO-Correlation-ID, + id-SIPTO-L-GW-TransportLayerAddress, + id-KillAllWarningMessages, + id-TransportInformation, + id-LHN-ID, + id-UserLocationInformation, + id-AdditionalCSFallbackIndicator, + id-ECGIListForRestart, + id-TAIListForRestart, + id-EmergencyAreaIDListForRestart, + id-ExpectedUEBehaviour, + id-Paging-eDRXInformation, + id-extended-UEIdentityIndexValue, + id-CSGMembershipInfo, + id-MME-Group-ID, + id-Additional-GUTI, + id-S1-Message, + id-PWSfailedECGIList, + id-PWSFailureIndication, + id-UE-Usage-Type, + id-UEUserPlaneCIoTSupportIndicator, + id-NB-IoT-DefaultPagingDRX, + id-NB-IoT-Paging-eDRXInformation, + id-CE-mode-B-SupportIndicator, + id-NB-IoT-UEIdentityIndexValue, + id-RRC-Resume-Cause, + id-DCN-ID, + id-ServedDCNs, + id-UESidelinkAggregateMaximumBitrate, + id-DLNASPDUDeliveryAckRequest, + id-Coverage-Level, + id-EnhancedCoverageRestricted, + id-UE-Level-QoS-Parameters, + id-DL-CP-SecurityInformation, + id-UL-CP-SecurityInformation, + id-CE-ModeBRestricted + + +FROM S1AP-Constants; + +-- ************************************************************** +-- +-- Common Container Lists +-- +-- ************************************************************** + +E-RAB-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofE-RABs, {IEsSetParam} } +E-RAB-IE-ContainerPairList { S1AP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxnoofE-RABs, {IEsSetParam} } +ProtocolError-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofE-RABs, {IEsSetParam} } + +-- ************************************************************** +-- +-- HANDOVER PREPARATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Required +-- +-- ************************************************************** + +HandoverRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverRequiredIEs} }, + ... +} + +HandoverRequiredIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-TargetID CRITICALITY reject TYPE TargetID PRESENCE mandatory}| + { ID id-Direct-Forwarding-Path-Availability CRITICALITY ignore TYPE Direct-Forwarding-Path-Availability PRESENCE optional}| + { ID id-SRVCCHOIndication CRITICALITY reject TYPE SRVCCHOIndication PRESENCE optional}| + { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory}| + { ID id-Source-ToTarget-TransparentContainer-Secondary CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE optional}| + { ID id-MSClassmark2 CRITICALITY reject TYPE MSClassmark2 PRESENCE conditional}| + { ID id-MSClassmark3 CRITICALITY ignore TYPE MSClassmark3 PRESENCE conditional}| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional}| + { ID id-PS-ServiceNotAvailable CRITICALITY ignore TYPE PS-ServiceNotAvailable PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- Handover Command +-- +-- ************************************************************** + +HandoverCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCommandIEs} }, + ... +} + +HandoverCommandIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}| + { ID id-NASSecurityParametersfromE-UTRAN CRITICALITY reject TYPE NASSecurityParametersfromE-UTRAN PRESENCE conditional + -- This IE shall be present if HandoverType IE is set to value "LTEtoUTRAN" or "LTEtoGERAN" --}| + { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional}| + { ID id-E-RABtoReleaseListHOCmd CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory}| + { ID id-Target-ToSource-TransparentContainer-Secondary CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +E-RABSubjecttoDataForwardingList ::= E-RAB-IE-ContainerList { {E-RABDataForwardingItemIEs} } + +E-RABDataForwardingItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABDataForwardingItem CRITICALITY ignore TYPE E-RABDataForwardingItem PRESENCE mandatory }, + ... +} + +E-RABDataForwardingItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-transportLayerAddress TransportLayerAddress OPTIONAL, + dL-gTP-TEID GTP-TEID OPTIONAL, + uL-TransportLayerAddress TransportLayerAddress OPTIONAL, + uL-GTP-TEID GTP-TEID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { E-RABDataForwardingItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABDataForwardingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- Handover Preparation Failure +-- +-- ************************************************************** + +HandoverPreparationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverPreparationFailureIEs} }, + ... +} + +HandoverPreparationFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER RESOURCE ALLOCATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Request +-- +-- ************************************************************** + +HandoverRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {HandoverRequestIEs} }, + ... +} + +HandoverRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory}| + { ID id-E-RABToBeSetupListHOReq CRITICALITY reject TYPE E-RABToBeSetupListHOReq PRESENCE mandatory}| + { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}| + { ID id-NASSecurityParameterstoE-UTRAN CRITICALITY reject TYPE NASSecurityParameterstoE-UTRAN PRESENCE conditional + -- This IE shall be present if the Handover Type IE is set to the value "UTRANtoLTE" or "GERANtoLTE" -- }| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional}| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional}| + { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional}| + { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| + { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}| + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}, + ... +} + +E-RABToBeSetupListHOReq ::= E-RAB-IE-ContainerList { {E-RABToBeSetupItemHOReqIEs} } + +E-RABToBeSetupItemHOReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemHOReq CRITICALITY reject TYPE E-RABToBeSetupItemHOReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemHOReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + e-RABlevelQosParameters E-RABLevelQoSParameters, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemHOReq-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSetupItemHOReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-Data-Forwarding-Not-Possible CRITICALITY ignore EXTENSION Data-Forwarding-Not-Possible PRESENCE optional}| + { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Handover Request Acknowledge +-- +-- ************************************************************** + +HandoverRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {HandoverRequestAcknowledgeIEs} }, + ... +} + +HandoverRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABAdmittedList CRITICALITY ignore TYPE E-RABAdmittedList PRESENCE mandatory}| + { ID id-E-RABFailedToSetupListHOReqAck CRITICALITY ignore TYPE E-RABFailedtoSetupListHOReqAck PRESENCE optional}| + { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory}| + { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional}| + { ID id-CE-mode-B-SupportIndicator CRITICALITY ignore TYPE CE-mode-B-SupportIndicator PRESENCE optional}, + ... +} + +E-RABAdmittedList ::= E-RAB-IE-ContainerList { {E-RABAdmittedItemIEs} } + +E-RABAdmittedItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABAdmittedItem CRITICALITY ignore TYPE E-RABAdmittedItem PRESENCE mandatory }, + ... +} + +E-RABAdmittedItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + dL-transportLayerAddress TransportLayerAddress OPTIONAL, + dL-gTP-TEID GTP-TEID OPTIONAL, + uL-TransportLayerAddress TransportLayerAddress OPTIONAL, + uL-GTP-TEID GTP-TEID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABAdmittedItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABAdmittedItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABFailedtoSetupListHOReqAck ::= E-RAB-IE-ContainerList { {E-RABFailedtoSetupItemHOReqAckIEs} } + +E-RABFailedtoSetupItemHOReqAckIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABFailedtoSetupItemHOReqAck CRITICALITY ignore TYPE E-RABFailedToSetupItemHOReqAck PRESENCE mandatory }, + ... +} + +E-RABFailedToSetupItemHOReqAck ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { E-RABFailedToSetupItemHOReqAckExtIEs} } OPTIONAL, + ... +} + +E-RABFailedToSetupItemHOReqAckExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Handover Failure +-- +-- ************************************************************** + +HandoverFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverFailureIEs} }, + ... +} + +HandoverFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER NOTIFICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Notify +-- +-- ************************************************************** + +HandoverNotify ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverNotifyIEs} }, + ... +} + +HandoverNotifyIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- PATH SWITCH REQUEST ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Path Switch Request +-- +-- ************************************************************** + +PathSwitchRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestIEs} }, + ... +} + +PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABToBeSwitchedDLList CRITICALITY reject TYPE E-RABToBeSwitchedDLList PRESENCE mandatory}| + { ID id-SourceMME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY ignore TYPE UESecurityCapabilities PRESENCE mandatory}| + { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional}| + { ID id-SourceMME-GUMMEI CRITICALITY ignore TYPE GUMMEI PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}| + { ID id-RRC-Resume-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE optional }, + ... +} + +E-RABToBeSwitchedDLList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedDLItemIEs} } + +E-RABToBeSwitchedDLItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSwitchedDLItem CRITICALITY reject TYPE E-RABToBeSwitchedDLItem PRESENCE mandatory }, + ... +} + +E-RABToBeSwitchedDLItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedDLItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSwitchedDLItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Path Switch Request Acknowledge +-- +-- ************************************************************** + +PathSwitchRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestAcknowledgeIEs} }, + ... +} + +PathSwitchRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional}| + { ID id-E-RABToBeSwitchedULList CRITICALITY ignore TYPE E-RABToBeSwitchedULList PRESENCE optional}| + { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| + { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}| + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}, + ... +} + +E-RABToBeSwitchedULList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedULItemIEs} } + +E-RABToBeSwitchedULItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSwitchedULItem CRITICALITY ignore TYPE E-RABToBeSwitchedULItem PRESENCE mandatory }, + ... +} + +E-RABToBeSwitchedULItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedULItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSwitchedULItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Path Switch Request Failure +-- +-- ************************************************************** + +PathSwitchRequestFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestFailureIEs} }, + ... +} + +PathSwitchRequestFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER CANCEL ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Cancel +-- +-- ************************************************************** + +HandoverCancel ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCancelIEs} }, + ... +} + +HandoverCancelIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Handover Cancel Request Acknowledge +-- +-- ************************************************************** + +HandoverCancelAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCancelAcknowledgeIEs} }, + ... +} + +HandoverCancelAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- E-RAB SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Setup Request +-- +-- ************************************************************** + +E-RABSetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABSetupRequestIEs} }, + ... +} + +E-RABSetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeSetupListBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupListBearerSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupListBearerSUReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemBearerSUReqIEs} } + +E-RABToBeSetupItemBearerSUReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupItemBearerSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemBearerSUReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABlevelQoSParameters E-RABLevelQoSParameters, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + nAS-PDU NAS-PDU, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemBearerSUReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeSetupItemBearerSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- E-RAB Setup Response +-- +-- ************************************************************** + +E-RABSetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABSetupResponseIEs} }, + ... +} + +E-RABSetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABSetupListBearerSURes CRITICALITY ignore TYPE E-RABSetupListBearerSURes PRESENCE optional }| + { ID id-E-RABFailedToSetupListBearerSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABSetupListBearerSURes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemBearerSUResIEs} } + +E-RABSetupItemBearerSUResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABSetupItemBearerSURes CRITICALITY ignore TYPE E-RABSetupItemBearerSURes PRESENCE mandatory }, + ... +} + +E-RABSetupItemBearerSURes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemBearerSUResExtIEs} } OPTIONAL, + ... +} + + +E-RABSetupItemBearerSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- E-RAB MODIFY ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Modify Request +-- +-- ************************************************************** + +E-RABModifyRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABModifyRequestIEs} }, + ... +} + +E-RABModifyRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeModifiedListBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedListBearerModReq PRESENCE mandatory }, + ... +} + +E-RABToBeModifiedListBearerModReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeModifiedItemBearerModReqIEs} } + +E-RABToBeModifiedItemBearerModReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeModifiedItemBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModReq PRESENCE mandatory }, + ... +} + +E-RABToBeModifiedItemBearerModReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABLevelQoSParameters E-RABLevelQoSParameters, + nAS-PDU NAS-PDU, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeModifyItemBearerModReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeModifyItemBearerModReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-TransportInformation CRITICALITY reject EXTENSION TransportInformation PRESENCE optional}, + ... +} + + + +-- ************************************************************** +-- +-- E-RAB Modify Response +-- +-- ************************************************************** + +E-RABModifyResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABModifyResponseIEs} }, + ... +} + +E-RABModifyResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABModifyListBearerModRes CRITICALITY ignore TYPE E-RABModifyListBearerModRes PRESENCE optional }| + { ID id-E-RABFailedToModifyList CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABModifyListBearerModRes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModResIEs} } + +E-RABModifyItemBearerModResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABModifyItemBearerModRes CRITICALITY ignore TYPE E-RABModifyItemBearerModRes PRESENCE mandatory}, + ... +} + +E-RABModifyItemBearerModRes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModResExtIEs} } OPTIONAL, + ... +} + + +E-RABModifyItemBearerModResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + + +-- ************************************************************** +-- +-- E-RAB RELEASE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Release Command +-- +-- ************************************************************** + +E-RABReleaseCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABReleaseCommandIEs} }, + ... +} + +E-RABReleaseCommandIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }| + { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- E-RAB Release Response +-- +-- ************************************************************** + +E-RABReleaseResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { E-RABReleaseResponseIEs } }, + ... +} + +E-RABReleaseResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABReleaseListBearerRelComp CRITICALITY ignore TYPE E-RABReleaseListBearerRelComp PRESENCE optional }| + { ID id-E-RABFailedToReleaseList CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }| +-- Extension for Release 12 to support User Location Information -- + { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }, + ... +} + + +E-RABReleaseListBearerRelComp ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABReleaseItemBearerRelCompIEs} } + +E-RABReleaseItemBearerRelCompIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABReleaseItemBearerRelComp CRITICALITY ignore TYPE E-RABReleaseItemBearerRelComp PRESENCE mandatory }, + ... +} + +E-RABReleaseItemBearerRelComp ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABReleaseItemBearerRelCompExtIEs} } OPTIONAL, + ... +} + + +E-RABReleaseItemBearerRelCompExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- E-RAB RELEASE INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Release Indication +-- +-- ************************************************************** + +E-RABReleaseIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABReleaseIndicationIEs} }, + ... +} + +E-RABReleaseIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }| +-- Extension for Release 12 to support User Location Information -- + { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- INITIAL CONTEXT SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Initial Context Setup Request +-- +-- ************************************************************** + +InitialContextSetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupRequestIEs} }, + ... +} + +InitialContextSetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory}| + { ID id-E-RABToBeSetupListCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupListCtxtSUReq PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory}| + { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE mandatory}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| + { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional}| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional}| + { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional}| + { ID id-AdditionalCSFallbackIndicator CRITICALITY ignore TYPE AdditionalCSFallbackIndicator PRESENCE conditional}| + { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| + { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}| + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}, + ... +} + + + + +E-RABToBeSetupListCtxtSUReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemCtxtSUReqIEs} } + +E-RABToBeSetupItemCtxtSUReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupItemCtxtSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemCtxtSUReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABlevelQoSParameters E-RABLevelQoSParameters, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + nAS-PDU NAS-PDU OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemCtxtSUReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeSetupItemCtxtSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- Initial Context Setup Response +-- +-- ************************************************************** + +InitialContextSetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupResponseIEs} }, + ... +} + +InitialContextSetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABSetupListCtxtSURes CRITICALITY ignore TYPE E-RABSetupListCtxtSURes PRESENCE mandatory }| + { ID id-E-RABFailedToSetupListCtxtSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABSetupListCtxtSURes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemCtxtSUResIEs} } + +E-RABSetupItemCtxtSUResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABSetupItemCtxtSURes CRITICALITY ignore TYPE E-RABSetupItemCtxtSURes PRESENCE mandatory }, + ... +} + +E-RABSetupItemCtxtSURes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemCtxtSUResExtIEs} } OPTIONAL, + ... +} + + +E-RABSetupItemCtxtSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Initial Context Setup Failure +-- +-- ************************************************************** + +InitialContextSetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupFailureIEs} }, + ... +} + +InitialContextSetupFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- PAGING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + + +-- ************************************************************** +-- +-- Paging +-- +-- ************************************************************** + +Paging ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{PagingIEs}}, + ... +} + +PagingIEs S1AP-PROTOCOL-IES ::= { + { ID id-UEIdentityIndexValue CRITICALITY ignore TYPE UEIdentityIndexValue PRESENCE mandatory}| + { ID id-UEPagingID CRITICALITY ignore TYPE UEPagingID PRESENCE mandatory}| + { ID id-pagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional}| + { ID id-CNDomain CRITICALITY ignore TYPE CNDomain PRESENCE mandatory}| + { ID id-TAIList CRITICALITY ignore TYPE TAIList PRESENCE mandatory}| + { ID id-CSG-IdList CRITICALITY ignore TYPE CSG-IdList PRESENCE optional}| + { ID id-PagingPriority CRITICALITY ignore TYPE PagingPriority PRESENCE optional}| + { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional}| +-- Extension for Release 13 to support Paging Optimisation and Coverage Enhancement paging –- + { ID id-AssistanceDataForPaging CRITICALITY ignore TYPE AssistanceDataForPaging PRESENCE optional}| + { ID id-Paging-eDRXInformation CRITICALITY ignore TYPE Paging-eDRXInformation PRESENCE optional}| + { ID id-extended-UEIdentityIndexValue CRITICALITY ignore TYPE Extended-UEIdentityIndexValue PRESENCE optional}| + { ID id-NB-IoT-Paging-eDRXInformation CRITICALITY ignore TYPE NB-IoT-Paging-eDRXInformation PRESENCE optional}| + { ID id-NB-IoT-UEIdentityIndexValue CRITICALITY ignore TYPE NB-IoT-UEIdentityIndexValue PRESENCE optional}| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}| + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}, + ... +} + +TAIList::= SEQUENCE (SIZE(1.. maxnoofTAIs)) OF ProtocolIE-SingleContainer {{TAIItemIEs}} + +TAIItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-TAIItem CRITICALITY ignore TYPE TAIItem PRESENCE mandatory }, + ... +} + +TAIItem ::= SEQUENCE { + tAI TAI, + iE-Extensions ProtocolExtensionContainer { {TAIItemExtIEs} } OPTIONAL, + ... +} + + +TAIItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- UE CONTEXT RELEASE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Release Request +-- +-- ************************************************************** + +UEContextReleaseRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseRequest-IEs}}, + ... +} + +UEContextReleaseRequest-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-GWContextReleaseIndication CRITICALITY reject TYPE GWContextReleaseIndication PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- UE Context Release Command +-- +-- ************************************************************** + +UEContextReleaseCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseCommand-IEs}}, + ... +} + +UEContextReleaseCommand-IEs S1AP-PROTOCOL-IES ::= { + { ID id-UE-S1AP-IDs CRITICALITY reject TYPE UE-S1AP-IDs PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UE Context Release Complete +-- +-- ************************************************************** + +UEContextReleaseComplete ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseComplete-IEs}}, + ... +} + +UEContextReleaseComplete-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| +-- Extension for Release 12 to support User Location Information -- + { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional}| +-- Extension for Release 13 to support Paging Optimisation + { ID id-InformationOnRecommendedCellsAndENBsForPaging CRITICALITY ignore TYPE InformationOnRecommendedCellsAndENBsForPaging PRESENCE optional}| +-- Extension for Release 13 to support coverage enhancement paging – + { ID id-CellIdentifierAndCELevelForCECapableUEs CRITICALITY ignore TYPE CellIdentifierAndCELevelForCECapableUEs PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- UE CONTEXT MODIFICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Modification Request +-- +-- ************************************************************** + +UEContextModificationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationRequestIEs} }, + ... +} + +UEContextModificationRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE optional}| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| + { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional}| + { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}| + { ID id-AdditionalCSFallbackIndicator CRITICALITY ignore TYPE AdditionalCSFallbackIndicator PRESENCE conditional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-SRVCCOperationNotPossible CRITICALITY ignore TYPE SRVCCOperationNotPossible PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| + { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}, + ... +} +-- ************************************************************** +-- +-- UE Context Modification Response +-- +-- ************************************************************** + +UEContextModificationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationResponseIEs} }, + ... +} + +UEContextModificationResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- UE Context Modification Failure +-- +-- ************************************************************** + +UEContextModificationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationFailureIEs} }, + ... +} + +UEContextModificationFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- UE RADIO CAPABILITY MATCH ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Radio Capability Match Request +-- +-- ************************************************************** + +UERadioCapabilityMatchRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UERadioCapabilityMatchRequestIEs} }, + ... +} + +UERadioCapabilityMatchRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- UE Radio Capability Match Response +-- +-- ************************************************************** + +UERadioCapabilityMatchResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UERadioCapabilityMatchResponseIEs} }, + ... +} + +UERadioCapabilityMatchResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-VoiceSupportMatchIndicator CRITICALITY reject TYPE VoiceSupportMatchIndicator PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- NAS TRANSPORT ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- DOWNLINK NAS TRANSPORT +-- +-- ************************************************************** + +DownlinkNASTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkNASTransport-IEs}}, + ... +} + +DownlinkNASTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}| + { ID id-DLNASPDUDeliveryAckRequest CRITICALITY ignore TYPE DLNASPDUDeliveryAckRequest PRESENCE optional}| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}| + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- INITIAL UE MESSAGE +-- +-- ************************************************************** + +InitialUEMessage ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{InitialUEMessage-IEs}}, + ... +} + +InitialUEMessage-IEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}| + { ID id-TAI CRITICALITY reject TYPE TAI PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-RRC-Establishment-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE mandatory}| + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE optional}| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional}| + { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-RelayNode-Indicator CRITICALITY reject TYPE RelayNode-Indicator PRESENCE optional}| + { ID id-GUMMEIType CRITICALITY ignore TYPE GUMMEIType PRESENCE optional}| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}| + { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}| + { ID id-MME-Group-ID CRITICALITY ignore TYPE MME-Group-ID PRESENCE optional}| + { ID id-UE-Usage-Type CRITICALITY ignore TYPE UE-Usage-Type PRESENCE optional}| + { ID id-CE-mode-B-SupportIndicator CRITICALITY ignore TYPE CE-mode-B-SupportIndicator PRESENCE optional}| + { ID id-DCN-ID CRITICALITY ignore TYPE DCN-ID PRESENCE optional}| + { ID id-Coverage-Level CRITICALITY ignore TYPE Coverage-Level PRESENCE optional}, + + ... +} + + +-- ************************************************************** +-- +-- UPLINK NAS TRANSPORT +-- +-- ************************************************************** + +UplinkNASTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkNASTransport-IEs}}, + ... +} + +UplinkNASTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| + { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, + ... +} +-- ************************************************************** +-- +-- NAS NON DELIVERY INDICATION +-- +-- ************************************************************** + +NASNonDeliveryIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{NASNonDeliveryIndication-IEs}}, + ... +} + +NASNonDeliveryIndication-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- REROUTE NAS REQUEST +-- +-- ************************************************************** + +RerouteNASRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RerouteNASRequest-IEs}}, + ... +} + +RerouteNASRequest-IEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-S1-Message CRITICALITY reject TYPE OCTET STRING PRESENCE mandatory}| + { ID id-MME-Group-ID CRITICALITY reject TYPE MME-Group-ID PRESENCE mandatory}| + { ID id-Additional-GUTI CRITICALITY ignore TYPE Additional-GUTI PRESENCE optional}| + { ID id-UE-Usage-Type CRITICALITY ignore TYPE UE-Usage-Type PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- NAS DELIVERY INDICATION +-- +-- ************************************************************** + +NASDeliveryIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { NASDeliveryIndicationIEs} }, + ... +} + +NASDeliveryIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- RESET ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Reset +-- +-- ************************************************************** + +Reset ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ResetIEs} }, + ... +} + +ResetIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-ResetType CRITICALITY reject TYPE ResetType PRESENCE mandatory }, + ... +} + +ResetType ::= CHOICE { + s1-Interface ResetAll, + partOfS1-Interface UE-associatedLogicalS1-ConnectionListRes, + ... +} + + + +ResetAll ::= ENUMERATED { + reset-all, + ... +} + +UE-associatedLogicalS1-ConnectionListRes ::= SEQUENCE (SIZE(1.. maxnoofIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemRes } } + +UE-associatedLogicalS1-ConnectionItemRes S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY reject TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- Reset Acknowledge +-- +-- ************************************************************** + +ResetAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} }, + ... +} + +ResetAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionListResAck CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionListResAck PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +UE-associatedLogicalS1-ConnectionListResAck ::= SEQUENCE (SIZE(1.. maxnoofIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemResAck } } + +UE-associatedLogicalS1-ConnectionItemResAck S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- ERROR INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Error Indication +-- +-- ************************************************************** + +ErrorIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ErrorIndicationIEs}}, + ... +} + +ErrorIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE optional }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- S1 SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- S1 Setup Request +-- +-- ************************************************************** + +S1SetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupRequestIEs} }, + ... +} + +S1SetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}| + { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional}| + { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE mandatory}| + { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE mandatory}| + { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}| + { ID id-UE-RetentionInformation CRITICALITY ignore TYPE UE-RetentionInformation PRESENCE optional}| + { ID id-NB-IoT-DefaultPagingDRX CRITICALITY ignore TYPE NB-IoT-DefaultPagingDRX PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- S1 Setup Response +-- +-- ************************************************************** + +S1SetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupResponseIEs} }, + ... +} + + +S1SetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional}| + { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE mandatory}| + { ID id-RelativeMMECapacity CRITICALITY ignore TYPE RelativeMMECapacity PRESENCE mandatory}| + { ID id-MMERelaySupportIndicator CRITICALITY ignore TYPE MMERelaySupportIndicator PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-UE-RetentionInformation CRITICALITY ignore TYPE UE-RetentionInformation PRESENCE optional}| + { ID id-ServedDCNs CRITICALITY ignore TYPE ServedDCNs PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- S1 Setup Failure +-- +-- ************************************************************** + +S1SetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupFailureIEs} }, + ... +} + +S1SetupFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Configuration Update +-- +-- ************************************************************** + +ENBConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateIEs} }, + ... +} + +ENBConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= { + { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional}| + { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE optional}| + { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}| + { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional}| + { ID id-NB-IoT-DefaultPagingDRX CRITICALITY ignore TYPE NB-IoT-DefaultPagingDRX PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- eNB Configuration Update Acknowledge +-- +-- ************************************************************** + +ENBConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateAcknowledgeIEs} }, + ... +} + + +ENBConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- eNB Configuration Update Failure +-- +-- ************************************************************** + +ENBConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateFailureIEs} }, + ... +} + +ENBConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, +... +} + + +-- ************************************************************** +-- +-- MME CONFIGURATION UPDATE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Configuration Update +-- +-- ************************************************************** + +MMEConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateIEs} }, + ... +} + +MMEConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= { + { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }| + { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE optional }| + { ID id-RelativeMMECapacity CRITICALITY reject TYPE RelativeMMECapacity PRESENCE optional }| + { ID id-ServedDCNs CRITICALITY ignore TYPE ServedDCNs PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- MME Configuration Update Acknowledge +-- +-- ************************************************************** + +MMEConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateAcknowledgeIEs} }, + ... +} + + +MMEConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- MME Configuration Update Failure +-- +-- ************************************************************** + +MMEConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateFailureIEs} }, + ... +} + +MMEConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- DOWNLINK S1 CDMA2000 TUNNELLING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Downlink S1 CDMA2000 Tunnelling +-- +-- ************************************************************** + +DownlinkS1cdma2000tunnelling ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {DownlinkS1cdma2000tunnellingIEs} }, + ... +} + +DownlinkS1cdma2000tunnellingIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional }| + { ID id-cdma2000HOStatus CRITICALITY ignore TYPE Cdma2000HOStatus PRESENCE optional }| + { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory }| + { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UPLINK S1 CDMA2000 TUNNELLING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Uplink S1 CDMA2000 Tunnelling +-- +-- ************************************************************** + +UplinkS1cdma2000tunnelling ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {UplinkS1cdma2000tunnellingIEs} }, + ... +} + +UplinkS1cdma2000tunnellingIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory }| + { ID id-cdma2000SectorID CRITICALITY reject TYPE Cdma2000SectorID PRESENCE mandatory }| + { ID id-cdma2000HORequiredIndication CRITICALITY ignore TYPE Cdma2000HORequiredIndication PRESENCE optional }| + { ID id-cdma2000OneXSRVCCInfo CRITICALITY reject TYPE Cdma2000OneXSRVCCInfo PRESENCE optional }| + { ID id-cdma2000OneXRAND CRITICALITY reject TYPE Cdma2000OneXRAND PRESENCE optional }| + { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory }| + { ID id-EUTRANRoundTripDelayEstimationInfo CRITICALITY ignore TYPE EUTRANRoundTripDelayEstimationInfo PRESENCE optional }, + -- Extension for Release 9 to assist target HRPD access with the acquisition of the UE -- + ... +} + + +-- ************************************************************** +-- +-- UE CAPABILITY INFO INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Capability Info Indication +-- +-- ************************************************************** + +UECapabilityInfoIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UECapabilityInfoIndicationIEs} }, + ... +} + +UECapabilityInfoIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE mandatory}| + { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- eNB STATUS TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Status Transfer +-- +-- ************************************************************** + +ENBStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBStatusTransferIEs} }, + ... +} + +ENBStatusTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- MME STATUS TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Status Transfer +-- +-- ************************************************************** + +MMEStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEStatusTransferIEs} }, + ... +} + +MMEStatusTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- TRACE ELEMENTARY PROCEDURES +-- +-- ************************************************************** +-- ************************************************************** +-- +-- Trace Start +-- +-- ************************************************************** + +TraceStart ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {TraceStartIEs} }, + ... +} + +TraceStartIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Trace Failure Indication +-- +-- ************************************************************** + +TraceFailureIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {TraceFailureIndicationIEs} }, + ... +} + +TraceFailureIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- DEACTIVATE TRACE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Deactivate Trace +-- +-- ************************************************************** + +DeactivateTrace ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { DeactivateTraceIEs} }, + ... +} + +DeactivateTraceIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- CELL TRAFFIC TRACE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Cell Traffic Trace +-- +-- ************************************************************** + +CellTrafficTrace ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { CellTrafficTraceIEs } }, + ... +} + +CellTrafficTraceIEs S1AP-PROTOCOL-IES ::= { + {ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + {ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + {ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }| + {ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }| + {ID id-TraceCollectionEntityIPAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE mandatory }| + {ID id-PrivacyIndicator CRITICALITY ignore TYPE PrivacyIndicator PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- LOCATION ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Location Reporting Control +-- +-- ************************************************************** + +LocationReportingControl ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportingControlIEs} }, + ... +} + +LocationReportingControlIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Location Report Failure Indication +-- +-- ************************************************************** + +LocationReportingFailureIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportingFailureIndicationIEs} }, + ... +} + +LocationReportingFailureIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Location Report +-- +-- ************************************************************** + +LocationReport ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportIEs} }, + ... +} + +LocationReportIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory }| + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- OVERLOAD ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Overload Start +-- +-- ************************************************************** + +OverloadStart ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {OverloadStartIEs} }, + ... +} + +OverloadStartIEs S1AP-PROTOCOL-IES ::= { + { ID id-OverloadResponse CRITICALITY reject TYPE OverloadResponse PRESENCE mandatory }| + { ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional }| + { ID id-TrafficLoadReductionIndication CRITICALITY ignore TYPE TrafficLoadReductionIndication PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- Overload Stop +-- +-- ************************************************************** + +OverloadStop ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {OverloadStopIEs} }, + ... +} + +OverloadStopIEs S1AP-PROTOCOL-IES ::= { +{ ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- WRITE-REPLACE WARNING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Write-Replace Warning Request +-- +-- ************************************************************** + + +WriteReplaceWarningRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {WriteReplaceWarningRequestIEs} }, + ... +} + +WriteReplaceWarningRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional }| + { ID id-RepetitionPeriod CRITICALITY reject TYPE RepetitionPeriod PRESENCE mandatory }| + { ID id-ExtendedRepetitionPeriod CRITICALITY reject TYPE ExtendedRepetitionPeriod PRESENCE optional }| + { ID id-NumberofBroadcastRequest CRITICALITY reject TYPE NumberofBroadcastRequest PRESENCE mandatory }| + { ID id-WarningType CRITICALITY ignore TYPE WarningType PRESENCE optional }| + { ID id-WarningSecurityInfo CRITICALITY ignore TYPE WarningSecurityInfo PRESENCE optional }| + { ID id-DataCodingScheme CRITICALITY ignore TYPE DataCodingScheme PRESENCE optional }| + { ID id-WarningMessageContents CRITICALITY ignore TYPE WarningMessageContents PRESENCE optional }| + { ID id-ConcurrentWarningMessageIndicator CRITICALITY reject TYPE ConcurrentWarningMessageIndicator PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- Write-Replace Warning Response +-- +-- ************************************************************** + +WriteReplaceWarningResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {WriteReplaceWarningResponseIEs} }, + ... +} + +WriteReplaceWarningResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-BroadcastCompletedAreaList CRITICALITY ignore TYPE BroadcastCompletedAreaList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- eNB DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Direct Information Transfer +-- +-- ************************************************************** + +ENBDirectInformationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ ENBDirectInformationTransferIEs}}, + ... +} + +ENBDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-Inter-SystemInformationTransferTypeEDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory }, + ... +} + +Inter-SystemInformationTransferType ::= CHOICE { + rIMTransfer RIMTransfer, + ... +} + +-- ************************************************************** +-- +-- MME DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Direct Information Transfer +-- +-- ************************************************************** + +MMEDirectInformationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ MMEDirectInformationTransferIEs}}, + ... +} + +MMEDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-Inter-SystemInformationTransferTypeMDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory }, + ... +} +-- ************************************************************** +-- +-- eNB CONFIGURATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Configuration Transfer +-- +-- ************************************************************** + +ENBConfigurationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ ENBConfigurationTransferIEs}}, + ... +} + +ENBConfigurationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-SONConfigurationTransferECT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- MME CONFIGURATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Configuration Transfer +-- +-- ************************************************************** + +MMEConfigurationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ MMEConfigurationTransferIEs}}, + ... +} + +MMEConfigurationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-SONConfigurationTransferMCT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- PRIVATE MESSAGE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Private Message +-- +-- ************************************************************** + +PrivateMessage ::= SEQUENCE { + privateIEs PrivateIE-Container {{PrivateMessageIEs}}, + ... +} + +PrivateMessageIEs S1AP-PRIVATE-IES ::= { + ... +} + +-- ************************************************************** +-- +-- KILL PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Kill Request +-- +-- ************************************************************** + + +KillRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {KillRequestIEs} }, + ... +} + +KillRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory}| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory}| + { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional}| + { ID id-KillAllWarningMessages CRITICALITY reject TYPE KillAllWarningMessages PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Kill Response +-- +-- ************************************************************** + +KillResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {KillResponseIEs} }, + ... +} + +KillResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-BroadcastCancelledAreaList CRITICALITY ignore TYPE BroadcastCancelledAreaList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- PWS RESTART INDICATION PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- PWS Restart Indication +-- +-- ************************************************************** + +PWSRestartIndication::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ PWSRestartIndicationIEs}}, + ... +} + +PWSRestartIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-ECGIListForRestart CRITICALITY reject TYPE ECGIListForRestart PRESENCE mandatory}| + { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}| + { ID id-TAIListForRestart CRITICALITY reject TYPE TAIListForRestart PRESENCE mandatory}| + { ID id-EmergencyAreaIDListForRestart CRITICALITY reject TYPE EmergencyAreaIDListForRestart PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- PWS Failure Indication +-- +-- ************************************************************** + +PWSFailureIndication::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ PWSFailureIndicationIEs}}, + ... +} + +PWSFailureIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-PWSfailedECGIList CRITICALITY reject TYPE PWSfailedECGIList PRESENCE mandatory}| + { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- LPPA TRANSPORT ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- DOWNLINK UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +DownlinkUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkUEAssociatedLPPaTransport-IEs}}, + ... +} + +DownlinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UPLINK UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +UplinkUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkUEAssociatedLPPaTransport-IEs}}, + ... +} + +UplinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- DOWNLINK NON UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +DownlinkNonUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkNonUEAssociatedLPPaTransport-IEs}}, + ... +} + +DownlinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UPLINK NON UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +UplinkNonUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkNonUEAssociatedLPPaTransport-IEs}}, + ... +} + +UplinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + + +-- ************************************************************** +-- +-- E-RAB MODIFICATION INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Modification Indication +-- +-- ************************************************************** + +E-RABModificationIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { E-RABModificationIndicationIEs} }, + ... +} + +E-RABModificationIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABToBeModifiedListBearerModInd CRITICALITY reject TYPE E-RABToBeModifiedListBearerModInd PRESENCE mandatory}| + { ID id-E-RABNotToBeModifiedListBearerModInd CRITICALITY reject TYPE E-RABNotToBeModifiedListBearerModInd PRESENCE optional}| + { ID id-CSGMembershipInfo CRITICALITY reject TYPE CSGMembershipInfo PRESENCE optional}| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}, + ... +} + +E-RABToBeModifiedListBearerModInd ::= E-RAB-IE-ContainerList { {E-RABToBeModifiedItemBearerModIndIEs} } + +E-RABToBeModifiedItemBearerModIndIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeModifiedItemBearerModInd CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModInd PRESENCE mandatory}, + ... +} + +E-RABToBeModifiedItemBearerModInd ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + dL-GTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABToBeModifiedItemBearerModInd-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeModifiedItemBearerModInd-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABNotToBeModifiedListBearerModInd ::= E-RAB-IE-ContainerList { {E-RABNotToBeModifiedItemBearerModIndIEs} } + +E-RABNotToBeModifiedItemBearerModIndIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABNotToBeModifiedItemBearerModInd CRITICALITY reject TYPE E-RABNotToBeModifiedItemBearerModInd PRESENCE mandatory}, + ... +} + +E-RABNotToBeModifiedItemBearerModInd ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + dL-GTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABNotToBeModifiedItemBearerModInd-ExtIEs} } OPTIONAL, + ... +} + +E-RABNotToBeModifiedItemBearerModInd-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CSGMembershipInfo ::= SEQUENCE { + cSGMembershipStatus CSGMembershipStatus, + cSG-Id CSG-Id, + cellAccessMode CellAccessMode OPTIONAL, + pLMNidentity PLMNidentity OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { CSGMembershipInfo-ExtIEs} } OPTIONAL, + ... +} + +CSGMembershipInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- E-RAB Modification Confirm +-- +-- ************************************************************** + +E-RABModificationConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABModificationConfirmIEs} }, + ... +} + +E-RABModificationConfirmIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABModifyListBearerModConf CRITICALITY ignore TYPE E-RABModifyListBearerModConf PRESENCE optional}| + { ID id-E-RABFailedToModifyListBearerModConf CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-E-RABToBeReleasedListBearerModConf CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}, + ... +} + +E-RABModifyListBearerModConf ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModConfIEs} } + +E-RABModifyItemBearerModConfIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABModifyItemBearerModConf CRITICALITY ignore TYPE E-RABModifyItemBearerModConf PRESENCE mandatory}, + ... +} + +E-RABModifyItemBearerModConf ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModConfExtIEs} } OPTIONAL, + ... +} + + +E-RABModifyItemBearerModConfExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- UE CONTEXT MODIFICATION INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Modification Indication +-- +-- ************************************************************** + +UEContextModificationIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationIndicationIEs} }, + ... +} + +UEContextModificationIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-CSGMembershipInfo CRITICALITY reject TYPE CSGMembershipInfo PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- UE Context Modification Confirm +-- +-- ************************************************************** + +UEContextModificationConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {UEContextModificationConfirmIEs} }, + ... +} + +UEContextModificationConfirmIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- UE CONTEXT SUSPEND ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Suspend Request +-- +-- ************************************************************** + +UEContextSuspendRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextSuspendRequestIEs} }, + ... +} + +UEContextSuspendRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-InformationOnRecommendedCellsAndENBsForPaging CRITICALITY ignore TYPE InformationOnRecommendedCellsAndENBsForPaging PRESENCE optional}| + { ID id-CellIdentifierAndCELevelForCECapableUEs CRITICALITY ignore TYPE CellIdentifierAndCELevelForCECapableUEs PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- UE Context Suspend Response +-- +-- ************************************************************** + +UEContextSuspendResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {UEContextSuspendResponseIEs} }, + ... +} + +UEContextSuspendResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- UE CONTEXT RESUME ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Resume Request +-- +-- ************************************************************** + +UEContextResumeRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextResumeRequestIEs} }, + ... +} + +UEContextResumeRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABFailedToResumeListResumeReq CRITICALITY reject TYPE E-RABFailedToResumeListResumeReq PRESENCE optional}| + { ID id-RRC-Resume-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE optional}, + ... +} + +E-RABFailedToResumeListResumeReq ::= E-RAB-IE-ContainerList { {E-RABFailedToResumeItemResumeReqIEs} } + +E-RABFailedToResumeItemResumeReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABFailedToResumeItemResumeReq CRITICALITY reject TYPE E-RABFailedToResumeItemResumeReq PRESENCE mandatory}, + ... +} + +E-RABFailedToResumeItemResumeReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { E-RABFailedToResumeItemResumeReq-ExtIEs} } OPTIONAL, + ... +} + +E-RABFailedToResumeItemResumeReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- UE Context Resume Response +-- +-- ************************************************************** + +UEContextResumeResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextResumeResponseIEs} }, + ... +} + +UEContextResumeResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABFailedToResumeListResumeRes CRITICALITY reject TYPE E-RABFailedToResumeListResumeRes PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE optional}, + ... +} + +E-RABFailedToResumeListResumeRes ::= E-RAB-IE-ContainerList { {E-RABFailedToResumeItemResumeResIEs} } + +E-RABFailedToResumeItemResumeResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABFailedToResumeItemResumeRes CRITICALITY reject TYPE E-RABFailedToResumeItemResumeRes PRESENCE mandatory}, + ... +} + +E-RABFailedToResumeItemResumeRes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { E-RABFailedToResumeItemResumeRes-ExtIEs} } OPTIONAL, + ... +} + +E-RABFailedToResumeItemResumeRes-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- UE Context Resume Failure +-- +-- ************************************************************** + +UEContextResumeFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextResumeFailureIEs} }, + ... +} + +UEContextResumeFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Connection Establishment Indication +-- +-- ************************************************************** + +ConnectionEstablishmentIndication::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ConnectionEstablishmentIndicationIEs} }, + ... +} + +ConnectionEstablishmentIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional }| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional }| + { ID id-DL-CP-SecurityInformation CRITICALITY ignore TYPE DL-CP-SecurityInformation PRESENCE optional }| + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Retrieve UE Information +-- +-- ************************************************************** + +RetrieveUEInformation ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { RetrieveUEInformationIEs} }, + ... +} + +RetrieveUEInformationIEs S1AP-PROTOCOL-IES ::= { + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE mandatory}, +... + +} + + +-- ************************************************************** + +-- UE Information Transfer +-- +-- ************************************************************** +UEInformationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEInformationTransferIEs} }, + ... +} + +UEInformationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE mandatory}| + { ID id-UE-Level-QoS-Parameters CRITICALITY ignore TYPE E-RABLevelQoSParameters PRESENCE optional}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- eNB CP Relocation Indication +-- +-- ************************************************************** + +ENBCPRelocationIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { ENBCPRelocationIndicationIEs} }, + ... +} + +ENBCPRelocationIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| + { ID id-UL-CP-SecurityInformation CRITICALITY reject TYPE UL-CP-SecurityInformation PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- MME CP Relocation Indication +-- +-- ************************************************************** + +MMECPRelocationIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { MMECPRelocationIndicationIEs} }, + ... +} + +MMECPRelocationIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}, + ... +} + +END + + + +-- ************************************************************** +-- +-- Information Element Definitions +-- +-- ************************************************************** + +S1AP-IEs { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-IEs (2) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + id-E-RABInformationListItem, + id-E-RABItem, + id-Bearers-SubjectToStatusTransfer-Item, + id-Time-Synchronisation-Info, + id-x2TNLConfigurationInfo, + id-eNBX2ExtendedTransportLayerAddresses, + id-MDTConfiguration, + id-Time-UE-StayedInCell-EnhancedGranularity, + id-HO-Cause, + id-M3Configuration, + id-M4Configuration, + id-M5Configuration, + id-MDT-Location-Info, + id-SignallingBasedMDTPLMNList, + id-MobilityInformation, + id-ULCOUNTValueExtended, + id-DLCOUNTValueExtended, + id-ReceiveStatusOfULPDCPSDUsExtended, + id-eNBIndirectX2TransportLayerAddresses, + id-Muting-Availability-Indication, + id-Muting-Pattern-Information, + id-Synchronisation-Information, + id-uE-HistoryInformationFromTheUE, + id-LoggedMBSFNMDT, + id-SON-Information-Report, + id-RecommendedCellItem, + id-RecommendedENBItem, + id-ProSeUEtoNetworkRelaying, + id-ULCOUNTValuePDCP-SNlength18, + id-DLCOUNTValuePDCP-SNlength18, + id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18, + id-M6Configuration, + id-M7Configuration, + id-RAT-Type, + maxnoofCSGs, + maxnoofE-RABs, + maxnoofErrors, + maxnoofBPLMNs, + maxnoofPLMNsPerMME, + maxnoofTACs, + maxnoofEPLMNs, + maxnoofEPLMNsPlusOne, + maxnoofForbLACs, + maxnoofForbTACs, + maxnoofCells, + maxnoofCellID, + maxnoofDCNs, + maxnoofEmergencyAreaID, + maxnoofTAIforWarning, + maxnoofCellinTAI, + maxnoofCellinEAI, + maxnoofeNBX2TLAs, + maxnoofeNBX2ExtTLAs, + maxnoofeNBX2GTPTLAs, + maxnoofRATs, + maxnoofGroupIDs, + maxnoofMMECs, + maxnoofTAforMDT, + maxnoofCellIDforMDT, + maxnoofMDTPLMNs, + maxnoofCellsforRestart, + maxnoofRestartTAIs, + maxnoofRestartEmergencyAreaIDs, + maxnoofMBSFNAreaMDT, + maxEARFCN, + maxnoofCellsineNB, + maxnoofRecommendedCells, + maxnoofRecommendedENBs + + + +FROM S1AP-Constants + + Criticality, + ProcedureCode, + ProtocolIE-ID, + TriggeringMessage +FROM S1AP-CommonDataTypes + + ProtocolExtensionContainer{}, + S1AP-PROTOCOL-EXTENSION, + ProtocolIE-SingleContainer{}, + S1AP-PROTOCOL-IES + +FROM S1AP-Containers; + +-- A + +Additional-GUTI::= SEQUENCE { + gUMMEI GUMMEI, + m-TMSI M-TMSI, + iE-Extensions ProtocolExtensionContainer { {Additional-GUTI-ExtIEs} } OPTIONAL, + ... +} + +Additional-GUTI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +AreaScopeOfMDT ::= CHOICE { + cellBased CellBasedMDT, + tABased TABasedMDT, + pLMNWide NULL, + ..., + tAIBased TAIBasedMDT +} + +AllocationAndRetentionPriority ::= SEQUENCE { + priorityLevel PriorityLevel, + pre-emptionCapability Pre-emptionCapability, + pre-emptionVulnerability Pre-emptionVulnerability, + iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, + ... +} + +AllocationAndRetentionPriority-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +AssistanceDataForCECapableUEs ::= SEQUENCE { + cellIdentifierAndCELevelForCECapableUEs CellIdentifierAndCELevelForCECapableUEs, + iE-Extensions ProtocolExtensionContainer { { InformationForCECapableUEs-ExtIEs} } OPTIONAL, + ... +} + +InformationForCECapableUEs-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +AssistanceDataForPaging ::= SEQUENCE { + assistanceDataForRecommendedCells AssistanceDataForRecommendedCells OPTIONAL, + assistanceDataForCECapableUEs AssistanceDataForCECapableUEs OPTIONAL, + pagingAttemptInformation PagingAttemptInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { AssistanceDataForPaging-ExtIEs} } OPTIONAL, + ... +} + +AssistanceDataForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +AssistanceDataForRecommendedCells ::= SEQUENCE { + recommendedCellsForPaging RecommendedCellsForPaging, + iE-Extensions ProtocolExtensionContainer { { AssistanceDataForRecommendedCells-ExtIEs} } OPTIONAL, + ... +} + +AssistanceDataForRecommendedCells-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- B + +Bearers-SubjectToStatusTransferList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { { Bearers-SubjectToStatusTransfer-ItemIEs } } + +Bearers-SubjectToStatusTransfer-ItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-Bearers-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE Bearers-SubjectToStatusTransfer-Item PRESENCE mandatory }, + ... +} + +Bearers-SubjectToStatusTransfer-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-COUNTvalue COUNTvalue, + dL-COUNTvalue COUNTvalue, + receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {Bearers-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL, + ... +} + +Bearers-SubjectToStatusTransfer-ItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-ULCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| + { ID id-DLCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| + { ID id-ReceiveStatusOfULPDCPSDUsExtended CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsExtended PRESENCE optional}| + { ID id-ULCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}| + { ID id-DLCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}| + { ID id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 PRESENCE optional}, + ... +} + +BearerType ::= ENUMERATED { + non-IP, + ... +} + +BitRate ::= INTEGER (0..10000000000) + +BPLMNs ::= SEQUENCE (SIZE(1.. maxnoofBPLMNs)) OF PLMNidentity + +BroadcastCancelledAreaList ::= CHOICE { + cellID-Cancelled CellID-Cancelled, + tAI-Cancelled TAI-Cancelled, + emergencyAreaID-Cancelled EmergencyAreaID-Cancelled, + ... +} + +BroadcastCompletedAreaList ::= CHOICE { + cellID-Broadcast CellID-Broadcast, + tAI-Broadcast TAI-Broadcast, + emergencyAreaID-Broadcast EmergencyAreaID-Broadcast, + ... +} + + +-- C + +CancelledCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CancelledCellinEAI-Item + +CancelledCellinEAI-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CancelledCellinEAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CancelledCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CancelledCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CancelledCellinTAI-Item + +CancelledCellinTAI-Item ::= SEQUENCE{ + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CancelledCellinTAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CancelledCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Cause ::= CHOICE { + radioNetwork CauseRadioNetwork, + transport CauseTransport, + nas CauseNas, + protocol CauseProtocol, + misc CauseMisc, + ... +} + +CauseMisc ::= ENUMERATED { + control-processing-overload, + not-enough-user-plane-processing-resources, + hardware-failure, + om-intervention, + unspecified, + unknown-PLMN, +... +} + +CauseProtocol ::= ENUMERATED { + transfer-syntax-error, + abstract-syntax-error-reject, + abstract-syntax-error-ignore-and-notify, + message-not-compatible-with-receiver-state, + semantic-error, + abstract-syntax-error-falsely-constructed-message, + unspecified, + ... +} + +CauseRadioNetwork ::= ENUMERATED { + unspecified, + tx2relocoverall-expiry, + successful-handover, + release-due-to-eutran-generated-reason, + handover-cancelled, + partial-handover, + ho-failure-in-target-EPC-eNB-or-target-system, + ho-target-not-allowed, + tS1relocoverall-expiry, + tS1relocprep-expiry, + cell-not-available, + unknown-targetID, + no-radio-resources-available-in-target-cell, + unknown-mme-ue-s1ap-id, + unknown-enb-ue-s1ap-id, + unknown-pair-ue-s1ap-id, + handover-desirable-for-radio-reason, + time-critical-handover, + resource-optimisation-handover, + reduce-load-in-serving-cell, + user-inactivity, + radio-connection-with-ue-lost, + load-balancing-tau-required, + cs-fallback-triggered, + ue-not-available-for-ps-service, + radio-resources-not-available, + failure-in-radio-interface-procedure, + invalid-qos-combination, + interrat-redirection, + interaction-with-other-procedure, + unknown-E-RAB-ID, + multiple-E-RAB-ID-instances, + encryption-and-or-integrity-protection-algorithms-not-supported, + s1-intra-system-handover-triggered, + s1-inter-system-handover-triggered, + x2-handover-triggered, + ..., + redirection-towards-1xRTT, + not-supported-QCI-value, + invalid-CSG-Id, + release-due-to-pre-emption + +} + +CauseTransport ::= ENUMERATED { + transport-resource-unavailable, + unspecified, + ... +} + +CauseNas ::= ENUMERATED { + normal-release, + authentication-failure, + detach, + unspecified, + ..., + csg-subscription-expiry +} + +CellAccessMode ::= ENUMERATED { + hybrid, + ... +} + +CellIdentifierAndCELevelForCECapableUEs ::= SEQUENCE { + global-Cell-ID EUTRAN-CGI, + cELevel CELevel, + iE-Extensions ProtocolExtensionContainer { { CellIdentifierAndCELevelForCECapableUEs-ExtIEs} } OPTIONAL, + ... +} + +CellIdentifierAndCELevelForCECapableUEs-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- Coverage Enhancement level encoded according to TS 36.331 [16] -- +CELevel ::= OCTET STRING + +CE-mode-B-SupportIndicator ::= ENUMERATED { + supported, + ... +} + +CellIdentity ::= BIT STRING (SIZE (28)) + +CellID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Broadcast-Item + +CellID-Broadcast-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CellID-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +CellID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellID-Cancelled::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Cancelled-Item + +CellID-Cancelled-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CellID-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +CellID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellBasedMDT::= SEQUENCE { + cellIdListforMDT CellIdListforMDT, + iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +CellBasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF EUTRAN-CGI + +Cdma2000PDU ::= OCTET STRING + +Cdma2000RATType ::= ENUMERATED { + hRPD, + onexRTT, + ... +} + +Cdma2000SectorID ::= OCTET STRING + +Cdma2000HOStatus ::= ENUMERATED { + hOSuccess, + hOFailure, + ... +} + +Cdma2000HORequiredIndication ::= ENUMERATED { + true, + ... +} + +Cdma2000OneXSRVCCInfo ::= SEQUENCE { + cdma2000OneXMEID Cdma2000OneXMEID, + cdma2000OneXMSI Cdma2000OneXMSI, + cdma2000OneXPilot Cdma2000OneXPilot, + iE-Extensions ProtocolExtensionContainer { {Cdma2000OneXSRVCCInfo-ExtIEs} } OPTIONAL, + ... +} + +Cdma2000OneXSRVCCInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Cdma2000OneXMEID ::= OCTET STRING + +Cdma2000OneXMSI ::= OCTET STRING + +Cdma2000OneXPilot ::= OCTET STRING + +Cdma2000OneXRAND ::= OCTET STRING + + +Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ...} + +CellType ::= SEQUENCE { + cell-Size Cell-Size, + iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL, + ... +} + +CellType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CGI ::= SEQUENCE { + pLMNidentity PLMNidentity, + lAC LAC, + cI CI, + rAC RAC OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL, + ... + } + +CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CI ::= OCTET STRING (SIZE (2)) + +CNDomain ::= ENUMERATED { + ps, + cs +} + +ConcurrentWarningMessageIndicator ::= ENUMERATED { + true +} + +Correlation-ID ::= OCTET STRING (SIZE (4)) + +CSFallbackIndicator ::= ENUMERATED { + cs-fallback-required, + ..., + cs-fallback-high-priority +} + +AdditionalCSFallbackIndicator ::= ENUMERATED { + no-restriction, + restriction, + ... +} + +CSG-Id ::= BIT STRING (SIZE (27)) + + +CSG-IdList ::= SEQUENCE (SIZE (1.. maxnoofCSGs)) OF CSG-IdList-Item + +CSG-IdList-Item ::= SEQUENCE { + cSG-Id CSG-Id, + iE-Extensions ProtocolExtensionContainer { {CSG-IdList-Item-ExtIEs} } OPTIONAL, + ... +} + +CSG-IdList-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CSGMembershipStatus ::= ENUMERATED { + member, + not-member +} + + +COUNTvalue ::= SEQUENCE { + pDCP-SN PDCP-SN, + hFN HFN, + iE-Extensions ProtocolExtensionContainer { {COUNTvalue-ExtIEs} } OPTIONAL, + ... +} +COUNTvalue-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTValueExtended ::= SEQUENCE { + pDCP-SNExtended PDCP-SNExtended, + hFNModified HFNModified, + iE-Extensions ProtocolExtensionContainer { {COUNTValueExtended-ExtIEs} } OPTIONAL, + ... +} + +COUNTValueExtended-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTvaluePDCP-SNlength18 ::= SEQUENCE { + pDCP-SNlength18 PDCP-SNlength18, + hFNforPDCP-SNlength18 HFNforPDCP-SNlength18, + iE-Extensions ProtocolExtensionContainer { {COUNTvaluePDCP-SNlength18-ExtIEs} } OPTIONAL, + ... +} + +COUNTvaluePDCP-SNlength18-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Coverage-Level ::= ENUMERATED { + extendedcoverage, + ... +} + +CriticalityDiagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-ExtIEs}} OPTIONAL, + ... +} + +CriticalityDiagnostics-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1.. maxnoofErrors)) OF CriticalityDiagnostics-IE-Item + +CriticalityDiagnostics-IE-Item ::= SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-IE-Item-ExtIEs}} OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- D + +DataCodingScheme ::= BIT STRING (SIZE (8)) + +DCN-ID ::= INTEGER (0..65535) + +ServedDCNs ::= SEQUENCE (SIZE(0..maxnoofDCNs)) OF ServedDCNsItem + +ServedDCNsItem ::= SEQUENCE { + dCN-ID DCN-ID, + relativeDCNCapacity RelativeMMECapacity, + iE-Extensions ProtocolExtensionContainer { {ServedDCNsItem-ExtIEs} } OPTIONAL, + ... +} + +ServedDCNsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +DL-CP-SecurityInformation ::= SEQUENCE { + dl-NAS-MAC DL-NAS-MAC, + iE-Extensions ProtocolExtensionContainer { { DL-CP-SecurityInformation-ExtIEs} } OPTIONAL, + ... +} + +DL-CP-SecurityInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +DL-Forwarding ::= ENUMERATED { + dL-Forwarding-proposed, + ... +} + +DL-NAS-MAC ::= BIT STRING (SIZE (16)) + +Direct-Forwarding-Path-Availability ::= ENUMERATED { + directPathAvailable, + ... +} + +Data-Forwarding-Not-Possible ::= ENUMERATED { + data-Forwarding-not-Possible, + ... +} + +DLNASPDUDeliveryAckRequest ::= ENUMERATED { + requested, + ... +} + +-- E + +EARFCN ::= INTEGER(0..maxEARFCN, ...) + +ECGIList ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF EUTRAN-CGI + +PWSfailedECGIList ::= SEQUENCE (SIZE(1..maxnoofCellsineNB)) OF EUTRAN-CGI + +EmergencyAreaIDList ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID + +EmergencyAreaID ::= OCTET STRING (SIZE (3)) + +EmergencyAreaID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Broadcast-Item + +EmergencyAreaID-Broadcast-Item ::= SEQUENCE { + emergencyAreaID EmergencyAreaID, + completedCellinEAI CompletedCellinEAI, + iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +EmergencyAreaID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +EmergencyAreaID-Cancelled ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Cancelled-Item + +EmergencyAreaID-Cancelled-Item ::= SEQUENCE { + emergencyAreaID EmergencyAreaID, + cancelledCellinEAI CancelledCellinEAI, + iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +EmergencyAreaID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompletedCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CompletedCellinEAI-Item + +CompletedCellinEAI-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CompletedCellinEAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CompletedCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ECGI-List ::= SEQUENCE (SIZE(1..maxnoofCellsineNB)) OF EUTRAN-CGI + +EmergencyAreaIDListForRestart ::= SEQUENCE (SIZE(1..maxnoofRestartEmergencyAreaIDs)) OF EmergencyAreaID + +ENB-ID ::= CHOICE { + macroENB-ID BIT STRING (SIZE(20)), + homeENB-ID BIT STRING (SIZE(28)), + ... , + short-macroENB-ID BIT STRING (SIZE(18)), + long-macroENB-ID BIT STRING (SIZE(21)) +} + +GERAN-Cell-ID ::= SEQUENCE { + lAI LAI, + rAC RAC, + cI CI, + iE-Extensions ProtocolExtensionContainer { { GERAN-Cell-ID-ExtIEs} } OPTIONAL, + ... +} + +GERAN-Cell-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Global-ENB-ID ::= SEQUENCE { + pLMNidentity PLMNidentity, + eNB-ID ENB-ID, + iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL, + ... +} + +GlobalENB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +GUMMEIList::= SEQUENCE (SIZE (1.. maxnoofMMECs)) OF GUMMEI + +ENB-StatusTransfer-TransparentContainer ::= SEQUENCE { + bearers-SubjectToStatusTransferList Bearers-SubjectToStatusTransferList, + iE-Extensions ProtocolExtensionContainer { {ENB-StatusTransfer-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +ENB-StatusTransfer-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENB-UE-S1AP-ID ::= INTEGER (0..16777215) + +ENBname ::= PrintableString (SIZE (1..150,...)) + +ENBX2TLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2TLAs)) OF TransportLayerAddress + +EncryptionAlgorithms ::= BIT STRING (SIZE (16,...)) + +EnhancedCoverageRestricted ::= ENUMERATED { + restricted, + ... +} + +CE-ModeBRestricted ::= ENUMERATED { + restricted, + not-restricted, + ... +} + +EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMNidentity +EventType ::= ENUMERATED { + direct, + change-of-serve-cell, + stop-change-of-serve-cell, + ... +} + +E-RAB-ID ::= INTEGER (0..15, ...) + +E-RABInformationList ::= SEQUENCE (SIZE (1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { { E-RABInformationListIEs } } + +E-RABInformationListIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABInformationListItem CRITICALITY ignore TYPE E-RABInformationListItem PRESENCE mandatory }, + ... +} + +E-RABInformationListItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-Forwarding DL-Forwarding OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABInformationListItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABInformationListItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABItemIEs} } + +E-RABItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABItem CRITICALITY ignore TYPE E-RABItem PRESENCE mandatory }, + ... +} + +E-RABItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RABItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +E-RABLevelQoSParameters ::= SEQUENCE { + qCI QCI, + allocationRetentionPriority AllocationAndRetentionPriority, + gbrQosInformation GBR-QosInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABQoSParameters-ExtIEs} } OPTIONAL, + ... +} + +E-RABQoSParameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +EUTRAN-CGI ::= SEQUENCE { + pLMNidentity PLMNidentity, + cell-ID CellIdentity, + iE-Extensions ProtocolExtensionContainer { {EUTRAN-CGI-ExtIEs} } OPTIONAL, + ... +} + +EUTRAN-CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +EUTRANRoundTripDelayEstimationInfo ::= INTEGER (0..2047) + +ExpectedUEBehaviour ::= SEQUENCE { + expectedActivity ExpectedUEActivityBehaviour OPTIONAL, + expectedHOInterval ExpectedHOInterval OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ExpectedUEBehaviour-ExtIEs} } OPTIONAL, + ... +} + +ExpectedUEBehaviour-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ExpectedUEActivityBehaviour ::= SEQUENCE { + expectedActivityPeriod ExpectedActivityPeriod OPTIONAL, + expectedIdlePeriod ExpectedIdlePeriod OPTIONAL, + sourceofUEActivityBehaviourInformation SourceOfUEActivityBehaviourInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ExpectedUEActivityBehaviour-ExtIEs} } OPTIONAL, + ... +} + +ExpectedUEActivityBehaviour-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ExpectedActivityPeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) + +ExpectedIdlePeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) + +SourceOfUEActivityBehaviourInformation ::= ENUMERATED { + subscription-information, + statistics, + ... +} + +ExpectedHOInterval ::= ENUMERATED { + sec15, sec30, sec60, sec90, sec120, sec180, long-time, + ... +} + +ExtendedRNC-ID ::= INTEGER (4096..65535) + +ExtendedRepetitionPeriod ::= INTEGER (4096..131071) + +Extended-UEIdentityIndexValue ::= BIT STRING (SIZE (14)) + +-- F + +ForbiddenInterRATs ::= ENUMERATED { + all, + geran, + utran, + cdma2000, + ..., + geranandutran, + cdma2000andutran + +} + +ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item + +ForbiddenTAs-Item ::= SEQUENCE { + pLMN-Identity PLMNidentity, + forbiddenTACs ForbiddenTACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC + +ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item + +ForbiddenLAs-Item ::= SEQUENCE { + pLMN-Identity PLMNidentity, + forbiddenLACs ForbiddenLACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenLAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC + +-- G + +GBR-QosInformation ::= SEQUENCE { + e-RAB-MaximumBitrateDL BitRate, + e-RAB-MaximumBitrateUL BitRate, + e-RAB-GuaranteedBitrateDL BitRate, + e-RAB-GuaranteedBitrateUL BitRate, + iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL, + ... +} + +GBR-QosInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +GTP-TEID ::= OCTET STRING (SIZE (4)) + +GUMMEI ::= SEQUENCE { + pLMN-Identity PLMNidentity, + mME-Group-ID MME-Group-ID, + mME-Code MME-Code, + iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, + ... +} + +GUMMEI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +GUMMEIType ::= ENUMERATED { + native, + mapped, + ... +} + +GWContextReleaseIndication ::= ENUMERATED { + true, + ... +} + +-- H + +HandoverRestrictionList ::= SEQUENCE { + servingPLMN PLMNidentity, + equivalentPLMNs EPLMNs OPTIONAL, + forbiddenTAs ForbiddenTAs OPTIONAL, + forbiddenLAs ForbiddenLAs OPTIONAL, + forbiddenInterRATs ForbiddenInterRATs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, + ... +} + +HandoverRestrictionList-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +HandoverType ::= ENUMERATED { + intralte, + ltetoutran, + ltetogeran, + utrantolte, + gerantolte, + ... +} + +HFN ::= INTEGER (0..1048575) + +HFNModified ::= INTEGER (0..131071) + +HFNforPDCP-SNlength18 ::= INTEGER (0..16383) + +-- I + +Masked-IMEISV ::= BIT STRING (SIZE (64)) + +ImmediateMDT ::= SEQUENCE { + measurementsToActivate MeasurementsToActivate, + m1reportingTrigger M1ReportingTrigger, + m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL, +-- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1 + m1periodicReporting M1PeriodicReporting OPTIONAL, +-- Included in case of periodic or event-triggered periodic reporting + iE-Extensions ProtocolExtensionContainer { { ImmediateMDT-ExtIEs} } OPTIONAL, + ... +} + +ImmediateMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-M3Configuration CRITICALITY ignore EXTENSION M3Configuration PRESENCE conditional}| + { ID id-M4Configuration CRITICALITY ignore EXTENSION M4Configuration PRESENCE conditional}| + { ID id-M5Configuration CRITICALITY ignore EXTENSION M5Configuration PRESENCE conditional}| + { ID id-MDT-Location-Info CRITICALITY ignore EXTENSION MDT-Location-Info PRESENCE optional}| + { ID id-M6Configuration CRITICALITY ignore EXTENSION M6Configuration PRESENCE conditional}| + { ID id-M7Configuration CRITICALITY ignore EXTENSION M7Configuration PRESENCE conditional}, + ... +} + +IMSI ::= OCTET STRING (SIZE (3..8)) + +InformationOnRecommendedCellsAndENBsForPaging ::= SEQUENCE { + recommendedCellsForPaging RecommendedCellsForPaging, + recommendENBsForPaging RecommendedENBsForPaging, + iE-Extensions ProtocolExtensionContainer { { InformationOnRecommendedCellsAndENBsForPaging-ExtIEs} } OPTIONAL, + ... +} + +InformationOnRecommendedCellsAndENBsForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...)) + +IntendedNumberOfPagingAttempts ::= INTEGER (1..16, ...) + +InterfacesToTrace ::= BIT STRING (SIZE (8)) + + + +-- J +-- K + +KillAllWarningMessages ::= ENUMERATED {true} + +-- L + + +LAC ::= OCTET STRING (SIZE (2)) + +LAI ::= SEQUENCE { + pLMNidentity PLMNidentity, + lAC LAC, + iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL, + ... +} + +LAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +LastVisitedCell-Item ::= CHOICE { + e-UTRAN-Cell LastVisitedEUTRANCellInformation, + uTRAN-Cell LastVisitedUTRANCellInformation, + gERAN-Cell LastVisitedGERANCellInformation, + ... +} +LastVisitedEUTRANCellInformation ::= SEQUENCE { + global-Cell-ID EUTRAN-CGI, + cellType CellType, + time-UE-StayedInCell Time-UE-StayedInCell, + iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, + ... +} +LastVisitedEUTRANCellInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Rel-11 to support enhanced granularity for time UE stayed in cell -- + { ID id-Time-UE-StayedInCell-EnhancedGranularity CRITICALITY ignore EXTENSION Time-UE-StayedInCell-EnhancedGranularity PRESENCE optional}| + { ID id-HO-Cause CRITICALITY ignore EXTENSION Cause PRESENCE optional}, + ... +} +LastVisitedUTRANCellInformation ::= OCTET STRING + +LastVisitedGERANCellInformation ::= CHOICE { + undefined NULL, + ... +} + +L3-Information ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +LPPa-PDU ::= OCTET STRING + +LHN-ID ::= OCTET STRING(SIZE (32..256)) + +Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...} + +ListeningSubframePattern ::= SEQUENCE { + pattern-period ENUMERATED {ms1280, ms2560, ms5120, ms10240, ...}, + pattern-offset INTEGER (0..10239, ...), + iE-Extensions ProtocolExtensionContainer { { ListeningSubframePattern-ExtIEs} } OPTIONAL, + ... +} + +ListeningSubframePattern-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +... +} + +LoggedMDT ::= SEQUENCE { + loggingInterval LoggingInterval, + loggingDuration LoggingDuration, + iE-Extensions ProtocolExtensionContainer { {LoggedMDT-ExtIEs} } OPTIONAL, + ... +} + +LoggedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +... +} + +LoggingInterval ::= ENUMERATED {ms128, ms256, ms512, ms1024, ms2048, ms3072, ms4096, ms6144} + +LoggingDuration ::= ENUMERATED {m10, m20, m40, m60, m90, m120} + +LoggedMBSFNMDT ::= SEQUENCE { + loggingInterval LoggingInterval, + loggingDuration LoggingDuration, + mBSFN-ResultToLog MBSFN-ResultToLog OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { LoggedMBSFNMDT-ExtIEs } } OPTIONAL, + ... +} + +LoggedMBSFNMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- M + +M3Configuration ::= SEQUENCE { + m3period M3period, + iE-Extensions ProtocolExtensionContainer { { M3Configuration-ExtIEs} } OPTIONAL, + ... +} + +M3Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M3period ::= ENUMERATED {ms100, ms1000, ms10000, ... } + +M4Configuration ::= SEQUENCE { + m4period M4period, + m4-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M4Configuration-ExtIEs} } OPTIONAL, + ... +} + +M4Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + +M5Configuration ::= SEQUENCE { + m5period M5period, + m5-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M5Configuration-ExtIEs} } OPTIONAL, + ... +} + +M5Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + +M6Configuration ::= SEQUENCE { + m6report-Interval M6report-Interval, + m6delay-threshold M6delay-threshold OPTIONAL, +-- This IE shall be present if the M6 Links to log IE is set to “uplink” or to “both-uplink-and-downlink” -- + m6-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M6Configuration-ExtIEs} } OPTIONAL, + ... +} + +M6Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M6report-Interval ::= ENUMERATED { ms1024, ms2048, ms5120, ms10240, ... } + +M6delay-threshold ::= ENUMERATED { ms30, ms40, ms50, ms60, ms70, ms80, ms90, ms100, ms150, ms300, ms500, ms750, ... } + +M7Configuration ::= SEQUENCE { + m7period M7period, + m7-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M7Configuration-ExtIEs} } OPTIONAL, + ... +} + +M7Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M7period ::= INTEGER(1..60, ...) + +MDT-Activation ::= ENUMERATED { + immediate-MDT-only, + immediate-MDT-and-Trace, + logged-MDT-only, + ..., + logged-MBSFN-MDT +} + +MDT-Location-Info ::= BIT STRING (SIZE (8)) + +MDT-Configuration ::= SEQUENCE { + mdt-Activation MDT-Activation, + areaScopeOfMDT AreaScopeOfMDT, + mDTMode MDTMode, + iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTIONAL, + ... +} +MDT-Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-SignallingBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional }, + ... +} + +ManagementBasedMDTAllowed ::= ENUMERATED {allowed, ...} + +MBSFN-ResultToLog ::= SEQUENCE (SIZE(1..maxnoofMBSFNAreaMDT)) OF MBSFN-ResultToLogInfo + +MBSFN-ResultToLogInfo ::= SEQUENCE { + mBSFN-AreaId INTEGER (0..255) OPTIONAL, + carrierFreq EARFCN, + iE-Extensions ProtocolExtensionContainer { { MBSFN-ResultToLogInfo-ExtIEs} } OPTIONAL, + ... +} + +MBSFN-ResultToLogInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMNidentity + +PrivacyIndicator ::= ENUMERATED { + immediate-MDT, + logged-MDT, + ... +} + +MDTMode ::= CHOICE { + immediateMDT ImmediateMDT, + loggedMDT LoggedMDT, + ..., + mDTMode-Extension MDTMode-Extension +} + +MDTMode-Extension ::= ProtocolIE-SingleContainer {{ MDTMode-ExtensionIE }} + +MDTMode-ExtensionIE S1AP-PROTOCOL-IES ::= { + { ID id-LoggedMBSFNMDT CRITICALITY ignore TYPE LoggedMBSFNMDT PRESENCE mandatory} +} + +MeasurementsToActivate ::= BIT STRING (SIZE (8)) + +MeasurementThresholdA2 ::= CHOICE { + threshold-RSRP Threshold-RSRP, + threshold-RSRQ Threshold-RSRQ, + ... +} + +MessageIdentifier ::= BIT STRING (SIZE (16)) + +MobilityInformation ::= BIT STRING (SIZE(32)) + +MMEname ::= PrintableString (SIZE (1..150,...)) + +MMEPagingTarget ::= CHOICE { + global-ENB-ID Global-ENB-ID, + tAI TAI, + ... +} + +MMERelaySupportIndicator ::= ENUMERATED {true, ...} + +MME-Group-ID ::= OCTET STRING (SIZE (2)) + +MME-Code ::= OCTET STRING (SIZE (1)) + +MME-UE-S1AP-ID ::= INTEGER (0..4294967295) +M-TMSI ::= OCTET STRING (SIZE (4)) + +MSClassmark2 ::= OCTET STRING +MSClassmark3 ::= OCTET STRING + +MutingAvailabilityIndication ::= ENUMERATED { + available, + unavailable, + ... +} + + +MutingPatternInformation ::= SEQUENCE { + muting-pattern-period ENUMERATED {ms0, ms1280, ms2560, ms5120, ms10240, ...}, + muting-pattern-offset INTEGER (0..10239, ...) OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {MutingPatternInformation-ExtIEs} } OPTIONAL, + ... +} + +MutingPatternInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- N + +NAS-PDU ::= OCTET STRING + +NASSecurityParametersfromE-UTRAN ::= OCTET STRING + +NASSecurityParameterstoE-UTRAN ::= OCTET STRING + +NB-IoT-DefaultPagingDRX ::= ENUMERATED { + v128, + v256, + v512, + v1024, + ... + } + +NB-IoT-Paging-eDRXInformation ::= SEQUENCE { + nB-IoT-paging-eDRX-Cycle NB-IoT-Paging-eDRX-Cycle, + nB-IoT-pagingTimeWindow NB-IoT-PagingTimeWindow OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { NB-IoT-Paging-eDRXInformation-ExtIEs} } OPTIONAL, + ... +} + +NB-IoT-Paging-eDRXInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +NB-IoT-Paging-eDRX-Cycle ::= ENUMERATED{hf2, hf4, hf6, hf8, hf10, hf12, hf14, hf16, hf32, hf64, hf128, hf256, hf512, hf1024, ...} + +NB-IoT-PagingTimeWindow ::= ENUMERATED{s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, ...} + +NB-IoT-UEIdentityIndexValue ::= BIT STRING (SIZE (12)) + +NextPagingAreaScope ::= ENUMERATED { + same, + changed, + ... +} + +NumberofBroadcastRequest ::= INTEGER (0..65535) + +NumberOfBroadcasts ::= INTEGER (0..65535) + +-- O +OldBSS-ToNewBSS-Information ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +OverloadAction ::= ENUMERATED { + reject-non-emergency-mo-dt, + reject-rrc-cr-signalling, + permit-emergency-sessions-and-mobile-terminated-services-only, + ..., + permit-high-priority-sessions-and-mobile-terminated-services-only, + reject-delay-tolerant-access, + permit-high-priority-sessions-and-exception-reporting-and-mobile-terminated-services-only, + not-accept-mo-data-or-delay-tolerant-access-from-CP-CIoT + +} + +OverloadResponse ::= CHOICE { + overloadAction OverloadAction, + ... +} + + +-- P + +PagingAttemptInformation ::= SEQUENCE { + pagingAttemptCount PagingAttemptCount, + intendedNumberOfPagingAttempts IntendedNumberOfPagingAttempts, + nextPagingAreaScope NextPagingAreaScope OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { PagingAttemptInformation-ExtIEs} } OPTIONAL, + ... +} + +PagingAttemptInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +PagingAttemptCount ::= INTEGER (1..16, ...) + +Paging-eDRXInformation ::= SEQUENCE { + paging-eDRX-Cycle Paging-eDRX-Cycle, + pagingTimeWindow PagingTimeWindow OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { Paging-eDRXInformation-ExtIEs} } OPTIONAL, + ... +} + +Paging-eDRXInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Paging-eDRX-Cycle ::= ENUMERATED{hfhalf, hf1, hf2, hf4, hf6, hf8, hf10, hf12, hf14, hf16, hf32, hf64, hf128, hf256, ...} + +PagingTimeWindow ::= ENUMERATED{s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, ...} + +PagingDRX ::= ENUMERATED { + v32, + v64, + v128, + v256, + ... + } + +PagingPriority ::= ENUMERATED { + priolevel1, + priolevel2, + priolevel3, + priolevel4, + priolevel5, + priolevel6, + priolevel7, + priolevel8, + ... +} + +PDCP-SN ::= INTEGER (0..4095) + +PDCP-SNExtended ::= INTEGER (0..32767) + +PDCP-SNlength18 ::= INTEGER (0..262143) + +M1PeriodicReporting ::= SEQUENCE { + reportInterval ReportIntervalMDT, + reportAmount ReportAmountMDT, + iE-Extensions ProtocolExtensionContainer { { M1PeriodicReporting-ExtIEs} } OPTIONAL, + ... +} + +M1PeriodicReporting-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +PLMNidentity ::= TBCD-STRING + +Port-Number ::= OCTET STRING (SIZE (2)) + +Pre-emptionCapability ::= ENUMERATED { + shall-not-trigger-pre-emption, + may-trigger-pre-emption +} + +Pre-emptionVulnerability ::= ENUMERATED { + not-pre-emptable, + pre-emptable +} + +PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) + +ProSeAuthorized ::= SEQUENCE { + proSeDirectDiscovery ProSeDirectDiscovery OPTIONAL, + proSeDirectCommunication ProSeDirectCommunication OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ProSeAuthorized-ExtIEs} } OPTIONAL, + ... +} + +ProSeAuthorized-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-ProSeUEtoNetworkRelaying CRITICALITY ignore EXTENSION ProSeUEtoNetworkRelaying PRESENCE optional}, + ... +} + +ProSeDirectDiscovery ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +ProSeUEtoNetworkRelaying ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +ProSeDirectCommunication ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +PS-ServiceNotAvailable ::= ENUMERATED { + ps-service-not-available, + ... +} + +-- Q + +QCI ::= INTEGER (0..255) + +-- R + +ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) + +ReceiveStatusOfULPDCPSDUsExtended ::= BIT STRING (SIZE(1..16384)) + +ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ::= BIT STRING (SIZE(1..131072)) + +RecommendedCellsForPaging ::= SEQUENCE { + recommendedCellList RecommendedCellList, + iE-Extensions ProtocolExtensionContainer { { RecommendedCellsForPaging-ExtIEs} } OPTIONAL, + ... +} + +RecommendedCellsForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RecommendedCellList ::= SEQUENCE (SIZE(1.. maxnoofRecommendedCells)) OF ProtocolIE-SingleContainer { { RecommendedCellItemIEs } } + +RecommendedCellItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-RecommendedCellItem CRITICALITY ignore TYPE RecommendedCellItem PRESENCE mandatory }, + ... +} + +RecommendedCellItem::= SEQUENCE { + eUTRAN-CGI EUTRAN-CGI, + timeStayedInCell INTEGER (0..4095) OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { RecommendedCellsForPagingItem-ExtIEs} } OPTIONAL, + ... +} + +RecommendedCellsForPagingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RecommendedENBsForPaging ::= SEQUENCE { + recommendedENBList RecommendedENBList, + iE-Extensions ProtocolExtensionContainer { { RecommendedENBsForPaging-ExtIEs} } OPTIONAL, + ... +} + +RecommendedENBsForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RecommendedENBList::= SEQUENCE (SIZE(1.. maxnoofRecommendedENBs)) OF ProtocolIE-SingleContainer { { RecommendedENBItemIEs } } + +RecommendedENBItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-RecommendedENBItem CRITICALITY ignore TYPE RecommendedENBItem PRESENCE mandatory }, + ... +} + +RecommendedENBItem ::= SEQUENCE { + mMEPagingTarget MMEPagingTarget, + iE-Extensions ProtocolExtensionContainer { { RecommendedENBItem-ExtIEs} } OPTIONAL, + ... +} + +RecommendedENBItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RelativeMMECapacity ::= INTEGER (0..255) + +RelayNode-Indicator ::= ENUMERATED { + true, + ... +} + +RAC ::= OCTET STRING (SIZE (1)) + +RAT-Type ::= ENUMERATED { + nbiot, + ... +} + +ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity} + +ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60} + +M1ReportingTrigger ::= ENUMERATED{ + periodic, + a2eventtriggered, + ..., + a2eventtriggered-periodic +} + +RequestType ::= SEQUENCE { + eventType EventType, + reportArea ReportArea, + iE-Extensions ProtocolExtensionContainer { { RequestType-ExtIEs} } OPTIONAL, + ... +} + + +RequestType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RIMTransfer ::= SEQUENCE { + rIMInformation RIMInformation, + rIMRoutingAddress RIMRoutingAddress OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { RIMTransfer-ExtIEs} } OPTIONAL, + ... +} + +RIMTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RIMInformation ::= OCTET STRING + +RIMRoutingAddress ::= CHOICE { + gERAN-Cell-ID GERAN-Cell-ID, + ..., + targetRNC-ID TargetRNC-ID, + eHRPD-Sector-ID OCTET STRING (SIZE(16)) +} + +ReportArea ::= ENUMERATED { + ecgi, + ... +} + +RepetitionPeriod ::= INTEGER (0..4095) + +RLFReportInformation ::= SEQUENCE { + uE-RLF-Report-Container UE-RLF-Report-Container, + uE-RLF-Report-Container-for-extended-bands UE-RLF-Report-Container-for-extended-bands OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{ RLFReportInformation-ExtIEs}} OPTIONAL, + ... +} + +RLFReportInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RNC-ID ::= INTEGER (0..4095) + +RRC-Container ::= OCTET STRING + +RRC-Establishment-Cause ::= ENUMERATED { + emergency, + highPriorityAccess, + mt-Access, + mo-Signalling, + mo-Data, + ..., + delay-TolerantAccess, + mo-VoiceCall, + mo-ExceptionData +} + +ECGIListForRestart ::= SEQUENCE (SIZE(1..maxnoofCellsforRestart)) OF EUTRAN-CGI + +Routing-ID ::= INTEGER (0..255) + +-- S + + +SecurityKey ::= BIT STRING (SIZE(256)) + + + +SecurityContext ::= SEQUENCE { + nextHopChainingCount INTEGER (0..7), + nextHopParameter SecurityKey, + iE-Extensions ProtocolExtensionContainer { { SecurityContext-ExtIEs} } OPTIONAL, + ... +} + + +SecurityContext-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +SerialNumber ::= BIT STRING (SIZE (16)) + +SONInformation ::= CHOICE{ + sONInformationRequest SONInformationRequest, + sONInformationReply SONInformationReply, + ... +-- ..., +-- sONInformation-Extension SONInformation-Extension +} + +SONInformation-Extension ::= ProtocolIE-SingleContainer {{ SONInformation-ExtensionIE }} + +SONInformation-ExtensionIE S1AP-PROTOCOL-IES ::= { + { ID id-SON-Information-Report CRITICALITY ignore TYPE SONInformationReport PRESENCE mandatory} +} + +SONInformationRequest ::= ENUMERATED { + x2TNL-Configuration-Info, + ..., + time-Synchronisation-Info, + activate-Muting, + deactivate-Muting} + +SONInformationReply ::= SEQUENCE { + x2TNLConfigurationInfo X2TNLConfigurationInfo OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{SONInformationReply-ExtIEs}} OPTIONAL, + ... +} + +SONInformationReply-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Release 9 to transfer Time synchronisation information -- + {ID id-Time-Synchronisation-Info CRITICALITY ignore EXTENSION TimeSynchronisationInfo PRESENCE optional}, + ..., + {ID id-Muting-Pattern-Information CRITICALITY ignore EXTENSION MutingPatternInformation PRESENCE optional} +} + +SONInformationReport ::= CHOICE{ + rLFReportInformation RLFReportInformation, + ... +} + +SONConfigurationTransfer ::= SEQUENCE { + targeteNB-ID TargeteNB-ID, + sourceeNB-ID SourceeNB-ID, + sONInformation SONInformation, + iE-Extensions ProtocolExtensionContainer { { SONConfigurationTransfer-ExtIEs} } OPTIONAL, +... +} + +SONConfigurationTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Release 10 to transfer the IP addresses of the eNB initiating the ANR action -- + {ID id-x2TNLConfigurationInfo CRITICALITY ignore EXTENSION X2TNLConfigurationInfo PRESENCE conditional + -- This IE shall be present if the SON Information IE contains the SON Information Request IE and the SON Information Request IE is set to “X2TNL Configuration Info” --}| +-- Extension for Release 12 to transfer information concerning the source cell of synchronisation and the aggressor cell -- + {ID id-Synchronisation-Information CRITICALITY ignore EXTENSION SynchronisationInformation PRESENCE conditional + -- This IE shall be present if the SON Information IE contains the SON Information Request IE set to “ Activate Muting ” --}, + ... +} + + +SynchronisationInformation ::= SEQUENCE { + sourceStratumLevel StratumLevel OPTIONAL, + listeningSubframePattern ListeningSubframePattern OPTIONAL, + aggressoreCGI-List ECGI-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {SynchronisationInformation-ExtIEs} } OPTIONAL, + ... +} + +SynchronisationInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +Source-ToTarget-TransparentContainer ::= OCTET STRING +-- This IE includes a transparent container from the source RAN node to the target RAN node. +-- The octets of the OCTET STRING are encoded according to the specifications of the target system. + +SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +SourceeNB-ID ::= SEQUENCE { + global-ENB-ID Global-ENB-ID, + selected-TAI TAI, + iE-Extensions ProtocolExtensionContainer { {SourceeNB-ID-ExtIEs} } OPTIONAL +} + +SourceeNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +SRVCCOperationNotPossible ::= ENUMERATED { + notPossible, + ... +} + +SRVCCOperationPossible ::= ENUMERATED { + possible, + ... +} + +SRVCCHOIndication ::= ENUMERATED { + pSandCS, + cSonly, + ... +} + +SourceeNB-ToTargeteNB-TransparentContainer ::= SEQUENCE { + rRC-Container RRC-Container, + e-RABInformationList E-RABInformationList OPTIONAL, + targetCell-ID EUTRAN-CGI, + subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, + uE-HistoryInformation UE-HistoryInformation, + iE-Extensions ProtocolExtensionContainer { {SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + {ID id-MobilityInformation CRITICALITY ignore EXTENSION MobilityInformation PRESENCE optional}| + {ID id-uE-HistoryInformationFromTheUE CRITICALITY ignore EXTENSION UE-HistoryInformationFromTheUE PRESENCE optional}, + ... +} + + +SourceRNC-ToTargetRNC-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + + +ServedGUMMEIs ::= SEQUENCE (SIZE (1.. maxnoofRATs)) OF ServedGUMMEIsItem + +ServedGUMMEIsItem ::= SEQUENCE { + servedPLMNs ServedPLMNs, + servedGroupIDs ServedGroupIDs, + servedMMECs ServedMMECs, + iE-Extensions ProtocolExtensionContainer { {ServedGUMMEIsItem-ExtIEs} } OPTIONAL, + ... +} + +ServedGUMMEIsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedGroupIDs ::= SEQUENCE (SIZE(1.. maxnoofGroupIDs)) OF MME-Group-ID +ServedMMECs ::= SEQUENCE (SIZE(1.. maxnoofMMECs)) OF MME-Code + +ServedPLMNs ::= SEQUENCE (SIZE(1.. maxnoofPLMNsPerMME)) OF PLMNidentity + +SubscriberProfileIDforRFP ::= INTEGER (1..256) + +SupportedTAs ::= SEQUENCE (SIZE(1.. maxnoofTACs)) OF SupportedTAs-Item + +SupportedTAs-Item ::= SEQUENCE { + tAC TAC, + broadcastPLMNs BPLMNs, + iE-Extensions ProtocolExtensionContainer { {SupportedTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +SupportedTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + -- Extension for Release 13 to transfer RAT-Type per TAC -- + {ID id-RAT-Type CRITICALITY reject EXTENSION RAT-Type PRESENCE optional}, + ... +} + +StratumLevel ::= INTEGER (0..3, ...) + +SynchronisationStatus ::= ENUMERATED { synchronous, asynchronous, ... } + +TimeSynchronisationInfo ::= SEQUENCE { + stratumLevel StratumLevel, + synchronisationStatus SynchronisationStatus, + iE-Extensions ProtocolExtensionContainer { { TimeSynchronisationInfo-ExtIEs} } OPTIONAL, + ... +} + +TimeSynchronisationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + -- Extension for Release 12 to transfer Muting Availability Indication -- + {ID id-Muting-Availability-Indication CRITICALITY ignore EXTENSION MutingAvailabilityIndication PRESENCE optional}, + ... +} + +S-TMSI ::= SEQUENCE { + mMEC MME-Code, + m-TMSI M-TMSI, + iE-Extensions ProtocolExtensionContainer { {S-TMSI-ExtIEs} } OPTIONAL, + ... +} + +S-TMSI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- T + +TAC ::= OCTET STRING (SIZE (2)) + +TAIBasedMDT ::= SEQUENCE { + tAIListforMDT TAIListforMDT, + iE-Extensions ProtocolExtensionContainer { {TAIBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TAIBasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAIListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAI + +TAIListforWarning ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI + +TAI ::= SEQUENCE { + pLMNidentity PLMNidentity, + tAC TAC, + iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL, + ... +} + +TAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAI-Broadcast ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Broadcast-Item + +TAI-Broadcast-Item ::= SEQUENCE { + tAI TAI, + completedCellinTAI CompletedCellinTAI, + iE-Extensions ProtocolExtensionContainer { {TAI-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAI-Cancelled ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Cancelled-Item + +TAI-Cancelled-Item ::= SEQUENCE { + tAI TAI, + cancelledCellinTAI CancelledCellinTAI, + iE-Extensions ProtocolExtensionContainer { {TAI-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TABasedMDT ::= SEQUENCE { + tAListforMDT TAListforMDT, + iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TABasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC + +CompletedCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CompletedCellinTAI-Item + +CompletedCellinTAI-Item ::= SEQUENCE{ + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CompletedCellinTAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CompletedCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TBCD-STRING ::= OCTET STRING (SIZE (3)) + +TargetID ::= CHOICE { + targeteNB-ID TargeteNB-ID, + targetRNC-ID TargetRNC-ID, + cGI CGI, + ... +} + +TargeteNB-ID ::= SEQUENCE { + global-ENB-ID Global-ENB-ID, + selected-TAI TAI, + iE-Extensions ProtocolExtensionContainer { {TargeteNB-ID-ExtIEs} } OPTIONAL, + ... +} + +TargeteNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TargetRNC-ID ::= SEQUENCE { + lAI LAI, + rAC RAC OPTIONAL, + rNC-ID RNC-ID, + extendedRNC-ID ExtendedRNC-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL, + ... + } + + +TargetRNC-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +TargeteNB-ToSourceeNB-TransparentContainer ::= SEQUENCE { + rRC-Container RRC-Container, + iE-Extensions ProtocolExtensionContainer { {TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Target-ToSource-TransparentContainer ::= OCTET STRING +-- This IE includes a transparent container from the target RAN node to the source RAN node. +-- The octets of the OCTET STRING are coded according to the specifications of the target system. + +TargetRNC-ToSourceRNC-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +TargetBSS-ToSourceBSS-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +M1ThresholdEventA2 ::= SEQUENCE { + measurementThreshold MeasurementThresholdA2, + iE-Extensions ProtocolExtensionContainer { { M1ThresholdEventA2-ExtIEs} } OPTIONAL, + ... +} + +M1ThresholdEventA2-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Threshold-RSRP ::= INTEGER(0..97) + +Threshold-RSRQ ::= INTEGER(0..34) + +TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...} + +Time-UE-StayedInCell ::= INTEGER (0..4095) + +Time-UE-StayedInCell-EnhancedGranularity ::= INTEGER (0..40950) + +TransportInformation ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + uL-GTP-TEID GTP-TEID, + ... +} + +TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) + +TraceActivation ::= SEQUENCE { + e-UTRAN-Trace-ID E-UTRAN-Trace-ID, + interfacesToTrace InterfacesToTrace, + traceDepth TraceDepth, + traceCollectionEntityIPAddress TransportLayerAddress, + iE-Extensions ProtocolExtensionContainer { { TraceActivation-ExtIEs} } OPTIONAL, + ... +} + +TraceActivation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Rel-10 to support MDT -- + { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional }, + ... +} + +TraceDepth ::= ENUMERATED { + minimum, + medium, + maximum, + minimumWithoutVendorSpecificExtension, + mediumWithoutVendorSpecificExtension, + maximumWithoutVendorSpecificExtension, + ... +} + +E-UTRAN-Trace-ID ::= OCTET STRING (SIZE (8)) + +TrafficLoadReductionIndication ::= INTEGER (1..99) + +TunnelInformation ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + uDP-Port-Number Port-Number OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {Tunnel-Information-ExtIEs} } OPTIONAL, + ... +} + +Tunnel-Information-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + +TAIListForRestart ::= SEQUENCE (SIZE(1..maxnoofRestartTAIs)) OF TAI + +-- U + +UEAggregateMaximumBitrate ::= SEQUENCE { + uEaggregateMaximumBitRateDL BitRate, + uEaggregateMaximumBitRateUL BitRate, + iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrates-ExtIEs} } OPTIONAL, + ... +} + +UEAggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UE-RetentionInformation ::= ENUMERATED { + ues-retained, + ...} + +UE-S1AP-IDs ::= CHOICE{ + uE-S1AP-ID-pair UE-S1AP-ID-pair, + mME-UE-S1AP-ID MME-UE-S1AP-ID, + ... +} + +UE-S1AP-ID-pair ::= SEQUENCE{ + mME-UE-S1AP-ID MME-UE-S1AP-ID, + eNB-UE-S1AP-ID ENB-UE-S1AP-ID, + iE-Extensions ProtocolExtensionContainer { {UE-S1AP-ID-pair-ExtIEs} } OPTIONAL, + ... +} +UE-S1AP-ID-pair-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +UE-associatedLogicalS1-ConnectionItem ::= SEQUENCE { + mME-UE-S1AP-ID MME-UE-S1AP-ID OPTIONAL, + eNB-UE-S1AP-ID ENB-UE-S1AP-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { UE-associatedLogicalS1-ConnectionItemExtIEs} } OPTIONAL, + ... +} + + +UE-associatedLogicalS1-ConnectionItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UEIdentityIndexValue ::= BIT STRING (SIZE (10)) + +UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item + +UE-HistoryInformationFromTheUE ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the VisitedCellInfoList field contained in the UEInformationResponse message as defined in TS 36.331 [16] + +UEPagingID ::= CHOICE { + s-TMSI S-TMSI, + iMSI IMSI, + ... + } + +UERadioCapability ::= OCTET STRING + +UERadioCapabilityForPaging ::= OCTET STRING + +UE-RLF-Report-Container ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the rlf-Report-r9 field contained in the UEInformationResponse message as defined in TS 36.331 [16] + +UE-RLF-Report-Container-for-extended-bands ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the rlf-Report-v9e0 contained in the UEInformationResponse message as defined in TS 36.331 [16] + +UESecurityCapabilities ::= SEQUENCE { + encryptionAlgorithms EncryptionAlgorithms, + integrityProtectionAlgorithms IntegrityProtectionAlgorithms, + iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL, +... +} + +UESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UESidelinkAggregateMaximumBitrate ::= SEQUENCE { + uESidelinkAggregateMaximumBitRate BitRate, + iE-Extensions ProtocolExtensionContainer { {UE-Sidelink-Aggregate-MaximumBitrates-ExtIEs} } OPTIONAL, + ... +} + +UE-Sidelink-Aggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UE-Usage-Type ::= INTEGER (0..255) + +UL-CP-SecurityInformation ::= SEQUENCE { + ul-NAS-MAC UL-NAS-MAC, + ul-NAS-Count UL-NAS-Count, + iE-Extensions ProtocolExtensionContainer { { UL-CP-SecurityInformation-ExtIEs} } OPTIONAL, + ... +} + +UL-CP-SecurityInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UL-NAS-MAC ::= BIT STRING (SIZE (16)) + +UL-NAS-Count ::= BIT STRING (SIZE (5)) + + +UserLocationInformation ::= SEQUENCE { + eutran-cgi EUTRAN-CGI, + tai TAI, + iE-Extensions ProtocolExtensionContainer { { UserLocationInformation-ExtIEs} } OPTIONAL, + ... +} + +UserLocationInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UEUserPlaneCIoTSupportIndicator ::= ENUMERATED { + supported, + ... +} + +-- V + +VoiceSupportMatchIndicator ::= ENUMERATED { + supported, + not-supported, + ... +} + +V2XServicesAuthorized ::= SEQUENCE { + vehicleUE VehicleUE OPTIONAL, + pedestrianUE PedestrianUE OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {V2XServicesAuthorized-ExtIEs} } OPTIONAL, + ... +} + +V2XServicesAuthorized-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +VehicleUE ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +PedestrianUE ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +-- W + +WarningAreaList ::= CHOICE { + cellIDList ECGIList, + trackingAreaListforWarning TAIListforWarning, + emergencyAreaIDList EmergencyAreaIDList, + ... +} + + +WarningType ::= OCTET STRING (SIZE (2)) + +WarningSecurityInfo ::= OCTET STRING (SIZE (50)) + + +WarningMessageContents ::= OCTET STRING (SIZE(1..9600)) + + +-- X + + +X2TNLConfigurationInfo ::= SEQUENCE { + eNBX2TransportLayerAddresses ENBX2TLAs, + iE-Extensions ProtocolExtensionContainer { { X2TNLConfigurationInfo-ExtIEs} } OPTIONAL, + ... +} + +X2TNLConfigurationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Release 10 to transfer the IPsec and U-plane addresses during ANR action -- + {ID id-eNBX2ExtendedTransportLayerAddresses CRITICALITY ignore EXTENSION ENBX2ExtTLAs PRESENCE optional}| +-- Extension for Release 12 to transfer the IP addresses of the X2 GW -- + {ID id-eNBIndirectX2TransportLayerAddresses CRITICALITY ignore EXTENSION ENBIndirectX2TransportLayerAddresses PRESENCE optional}, + ... +} + +ENBX2ExtTLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2ExtTLAs)) OF ENBX2ExtTLA + +ENBX2ExtTLA ::= SEQUENCE { + iPsecTLA TransportLayerAddress OPTIONAL, + gTPTLAa ENBX2GTPTLAs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ENBX2ExtTLA-ExtIEs} } OPTIONAL, + ... +} + +ENBX2ExtTLA-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENBX2GTPTLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2GTPTLAs)) OF TransportLayerAddress + +ENBIndirectX2TransportLayerAddresses ::= SEQUENCE (SIZE(1..maxnoofeNBX2TLAs)) OF TransportLayerAddress + +-- Y +-- Z + +END + + + +-- ************************************************************** +-- +-- Common definitions +-- +-- ************************************************************** + +S1AP-CommonDataTypes { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-CommonDataTypes (3) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +Criticality ::= ENUMERATED { reject, ignore, notify } + +Presence ::= ENUMERATED { optional, conditional, mandatory } + +PrivateIE-ID ::= CHOICE { + local INTEGER (0..65535), + global OBJECT IDENTIFIER +} + +ProcedureCode ::= INTEGER (0..255) + +ProtocolExtensionID ::= INTEGER (0..65535) + +ProtocolIE-ID ::= INTEGER (0..65535) + +TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome } + +END + + +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +S1AP-Constants { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Constants (4) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + ProcedureCode, + ProtocolIE-ID + +FROM S1AP-CommonDataTypes; + + +-- ************************************************************** +-- +-- Elementary Procedures +-- +-- ************************************************************** + +id-HandoverPreparation ProcedureCode ::= 0 +id-HandoverResourceAllocation ProcedureCode ::= 1 +id-HandoverNotification ProcedureCode ::= 2 +id-PathSwitchRequest ProcedureCode ::= 3 +id-HandoverCancel ProcedureCode ::= 4 +id-E-RABSetup ProcedureCode ::= 5 +id-E-RABModify ProcedureCode ::= 6 +id-E-RABRelease ProcedureCode ::= 7 +id-E-RABReleaseIndication ProcedureCode ::= 8 +id-InitialContextSetup ProcedureCode ::= 9 +id-Paging ProcedureCode ::= 10 +id-downlinkNASTransport ProcedureCode ::= 11 +id-initialUEMessage ProcedureCode ::= 12 +id-uplinkNASTransport ProcedureCode ::= 13 +id-Reset ProcedureCode ::= 14 +id-ErrorIndication ProcedureCode ::= 15 +id-NASNonDeliveryIndication ProcedureCode ::= 16 +id-S1Setup ProcedureCode ::= 17 +id-UEContextReleaseRequest ProcedureCode ::= 18 +id-DownlinkS1cdma2000tunnelling ProcedureCode ::= 19 +id-UplinkS1cdma2000tunnelling ProcedureCode ::= 20 +id-UEContextModification ProcedureCode ::= 21 +id-UECapabilityInfoIndication ProcedureCode ::= 22 +id-UEContextRelease ProcedureCode ::= 23 +id-eNBStatusTransfer ProcedureCode ::= 24 +id-MMEStatusTransfer ProcedureCode ::= 25 +id-DeactivateTrace ProcedureCode ::= 26 +id-TraceStart ProcedureCode ::= 27 +id-TraceFailureIndication ProcedureCode ::= 28 +id-ENBConfigurationUpdate ProcedureCode ::= 29 +id-MMEConfigurationUpdate ProcedureCode ::= 30 +id-LocationReportingControl ProcedureCode ::= 31 +id-LocationReportingFailureIndication ProcedureCode ::= 32 +id-LocationReport ProcedureCode ::= 33 +id-OverloadStart ProcedureCode ::= 34 +id-OverloadStop ProcedureCode ::= 35 +id-WriteReplaceWarning ProcedureCode ::= 36 +id-eNBDirectInformationTransfer ProcedureCode ::= 37 +id-MMEDirectInformationTransfer ProcedureCode ::= 38 +id-PrivateMessage ProcedureCode ::= 39 +id-eNBConfigurationTransfer ProcedureCode ::= 40 +id-MMEConfigurationTransfer ProcedureCode ::= 41 +id-CellTrafficTrace ProcedureCode ::= 42 +id-Kill ProcedureCode ::= 43 +id-downlinkUEAssociatedLPPaTransport ProcedureCode ::= 44 +id-uplinkUEAssociatedLPPaTransport ProcedureCode ::= 45 +id-downlinkNonUEAssociatedLPPaTransport ProcedureCode ::= 46 +id-uplinkNonUEAssociatedLPPaTransport ProcedureCode ::= 47 +id-UERadioCapabilityMatch ProcedureCode ::= 48 +id-PWSRestartIndication ProcedureCode ::= 49 +id-E-RABModificationIndication ProcedureCode ::= 50 +id-PWSFailureIndication ProcedureCode ::= 51 +id-RerouteNASRequest ProcedureCode ::= 52 +id-UEContextModificationIndication ProcedureCode ::= 53 +id-ConnectionEstablishmentIndication ProcedureCode ::= 54 +id-UEContextSuspend ProcedureCode ::= 55 +id-UEContextResume ProcedureCode ::= 56 +id-NASDeliveryIndication ProcedureCode ::= 57 +id-RetrieveUEInformation ProcedureCode ::= 58 +id-UEInformationTransfer ProcedureCode ::= 59 +id-eNBCPRelocationIndication ProcedureCode ::= 60 +id-MMECPRelocationIndication ProcedureCode ::= 61 + +-- ************************************************************** +-- +-- Extension constants +-- +-- ************************************************************** + +maxPrivateIEs INTEGER ::= 65535 +maxProtocolExtensions INTEGER ::= 65535 +maxProtocolIEs INTEGER ::= 65535 +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** + +maxnoofCSGs INTEGER ::= 256 +maxnoofE-RABs INTEGER ::= 256 +maxnoofTAIs INTEGER ::= 256 +maxnoofTACs INTEGER ::= 256 +maxnoofErrors INTEGER ::= 256 +maxnoofBPLMNs INTEGER ::= 6 +maxnoofPLMNsPerMME INTEGER ::= 32 +maxnoofEPLMNs INTEGER ::= 15 +maxnoofEPLMNsPlusOne INTEGER ::= 16 +maxnoofForbLACs INTEGER ::= 4096 +maxnoofForbTACs INTEGER ::= 4096 +maxnoofIndividualS1ConnectionsToReset INTEGER ::= 256 +maxnoofCells INTEGER ::= 16 +maxnoofCellsineNB INTEGER ::= 256 +maxnoofTAIforWarning INTEGER ::= 65535 +maxnoofCellID INTEGER ::= 65535 +maxnoofDCNs INTEGER ::= 32 +maxnoofEmergencyAreaID INTEGER ::= 65535 +maxnoofCellinTAI INTEGER ::= 65535 +maxnoofCellinEAI INTEGER ::= 65535 +maxnoofeNBX2TLAs INTEGER ::= 2 +maxnoofeNBX2ExtTLAs INTEGER ::= 16 +maxnoofeNBX2GTPTLAs INTEGER ::= 16 +maxnoofRATs INTEGER ::= 8 +maxnoofGroupIDs INTEGER ::= 65535 +maxnoofMMECs INTEGER ::= 256 +maxnoofCellIDforMDT INTEGER ::= 32 +maxnoofTAforMDT INTEGER ::= 8 +maxnoofMDTPLMNs INTEGER ::= 16 +maxnoofCellsforRestart INTEGER ::= 256 +maxnoofRestartTAIs INTEGER ::= 2048 +maxnoofRestartEmergencyAreaIDs INTEGER ::= 256 +maxEARFCN INTEGER ::= 262143 +maxnoofMBSFNAreaMDT INTEGER ::= 8 +maxnoofRecommendedCells INTEGER ::= 16 +maxnoofRecommendedENBs INTEGER ::= 16 + +-- ************************************************************** +-- +-- IEs +-- +-- ************************************************************** + +id-MME-UE-S1AP-ID ProtocolIE-ID ::= 0 +id-HandoverType ProtocolIE-ID ::= 1 +id-Cause ProtocolIE-ID ::= 2 +id-SourceID ProtocolIE-ID ::= 3 +id-TargetID ProtocolIE-ID ::= 4 +id-eNB-UE-S1AP-ID ProtocolIE-ID ::= 8 +id-E-RABSubjecttoDataForwardingList ProtocolIE-ID ::= 12 +id-E-RABtoReleaseListHOCmd ProtocolIE-ID ::= 13 +id-E-RABDataForwardingItem ProtocolIE-ID ::= 14 +id-E-RABReleaseItemBearerRelComp ProtocolIE-ID ::= 15 +id-E-RABToBeSetupListBearerSUReq ProtocolIE-ID ::= 16 +id-E-RABToBeSetupItemBearerSUReq ProtocolIE-ID ::= 17 +id-E-RABAdmittedList ProtocolIE-ID ::= 18 +id-E-RABFailedToSetupListHOReqAck ProtocolIE-ID ::= 19 +id-E-RABAdmittedItem ProtocolIE-ID ::= 20 +id-E-RABFailedtoSetupItemHOReqAck ProtocolIE-ID ::= 21 +id-E-RABToBeSwitchedDLList ProtocolIE-ID ::= 22 +id-E-RABToBeSwitchedDLItem ProtocolIE-ID ::= 23 +id-E-RABToBeSetupListCtxtSUReq ProtocolIE-ID ::= 24 +id-TraceActivation ProtocolIE-ID ::= 25 +id-NAS-PDU ProtocolIE-ID ::= 26 +id-E-RABToBeSetupItemHOReq ProtocolIE-ID ::= 27 +id-E-RABSetupListBearerSURes ProtocolIE-ID ::= 28 +id-E-RABFailedToSetupListBearerSURes ProtocolIE-ID ::= 29 +id-E-RABToBeModifiedListBearerModReq ProtocolIE-ID ::= 30 +id-E-RABModifyListBearerModRes ProtocolIE-ID ::= 31 +id-E-RABFailedToModifyList ProtocolIE-ID ::= 32 +id-E-RABToBeReleasedList ProtocolIE-ID ::= 33 +id-E-RABFailedToReleaseList ProtocolIE-ID ::= 34 +id-E-RABItem ProtocolIE-ID ::= 35 +id-E-RABToBeModifiedItemBearerModReq ProtocolIE-ID ::= 36 +id-E-RABModifyItemBearerModRes ProtocolIE-ID ::= 37 +id-E-RABReleaseItem ProtocolIE-ID ::= 38 +id-E-RABSetupItemBearerSURes ProtocolIE-ID ::= 39 +id-SecurityContext ProtocolIE-ID ::= 40 +id-HandoverRestrictionList ProtocolIE-ID ::= 41 +id-UEPagingID ProtocolIE-ID ::= 43 +id-pagingDRX ProtocolIE-ID ::= 44 +id-TAIList ProtocolIE-ID ::= 46 +id-TAIItem ProtocolIE-ID ::= 47 +id-E-RABFailedToSetupListCtxtSURes ProtocolIE-ID ::= 48 +id-E-RABReleaseItemHOCmd ProtocolIE-ID ::= 49 +id-E-RABSetupItemCtxtSURes ProtocolIE-ID ::= 50 +id-E-RABSetupListCtxtSURes ProtocolIE-ID ::= 51 +id-E-RABToBeSetupItemCtxtSUReq ProtocolIE-ID ::= 52 +id-E-RABToBeSetupListHOReq ProtocolIE-ID ::= 53 +id-GERANtoLTEHOInformationRes ProtocolIE-ID ::= 55 +id-UTRANtoLTEHOInformationRes ProtocolIE-ID ::= 57 +id-CriticalityDiagnostics ProtocolIE-ID ::= 58 +id-Global-ENB-ID ProtocolIE-ID ::= 59 +id-eNBname ProtocolIE-ID ::= 60 +id-MMEname ProtocolIE-ID ::= 61 +id-ServedPLMNs ProtocolIE-ID ::= 63 +id-SupportedTAs ProtocolIE-ID ::= 64 +id-TimeToWait ProtocolIE-ID ::= 65 +id-uEaggregateMaximumBitrate ProtocolIE-ID ::= 66 +id-TAI ProtocolIE-ID ::= 67 +id-E-RABReleaseListBearerRelComp ProtocolIE-ID ::= 69 +id-cdma2000PDU ProtocolIE-ID ::= 70 +id-cdma2000RATType ProtocolIE-ID ::= 71 +id-cdma2000SectorID ProtocolIE-ID ::= 72 +id-SecurityKey ProtocolIE-ID ::= 73 +id-UERadioCapability ProtocolIE-ID ::= 74 +id-GUMMEI-ID ProtocolIE-ID ::= 75 +id-E-RABInformationListItem ProtocolIE-ID ::= 78 +id-Direct-Forwarding-Path-Availability ProtocolIE-ID ::= 79 +id-UEIdentityIndexValue ProtocolIE-ID ::= 80 +id-cdma2000HOStatus ProtocolIE-ID ::= 83 +id-cdma2000HORequiredIndication ProtocolIE-ID ::= 84 +id-E-UTRAN-Trace-ID ProtocolIE-ID ::= 86 +id-RelativeMMECapacity ProtocolIE-ID ::= 87 +id-SourceMME-UE-S1AP-ID ProtocolIE-ID ::= 88 +id-Bearers-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 89 +id-eNB-StatusTransfer-TransparentContainer ProtocolIE-ID ::= 90 +id-UE-associatedLogicalS1-ConnectionItem ProtocolIE-ID ::= 91 +id-ResetType ProtocolIE-ID ::= 92 +id-UE-associatedLogicalS1-ConnectionListResAck ProtocolIE-ID ::= 93 +id-E-RABToBeSwitchedULItem ProtocolIE-ID ::= 94 +id-E-RABToBeSwitchedULList ProtocolIE-ID ::= 95 +id-S-TMSI ProtocolIE-ID ::= 96 +id-cdma2000OneXRAND ProtocolIE-ID ::= 97 +id-RequestType ProtocolIE-ID ::= 98 +id-UE-S1AP-IDs ProtocolIE-ID ::= 99 +id-EUTRAN-CGI ProtocolIE-ID ::= 100 +id-OverloadResponse ProtocolIE-ID ::= 101 +id-cdma2000OneXSRVCCInfo ProtocolIE-ID ::= 102 +id-E-RABFailedToBeReleasedList ProtocolIE-ID ::= 103 +id-Source-ToTarget-TransparentContainer ProtocolIE-ID ::= 104 +id-ServedGUMMEIs ProtocolIE-ID ::= 105 +id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 106 +id-UESecurityCapabilities ProtocolIE-ID ::= 107 +id-CSFallbackIndicator ProtocolIE-ID ::= 108 +id-CNDomain ProtocolIE-ID ::= 109 +id-E-RABReleasedList ProtocolIE-ID ::= 110 +id-MessageIdentifier ProtocolIE-ID ::= 111 +id-SerialNumber ProtocolIE-ID ::= 112 +id-WarningAreaList ProtocolIE-ID ::= 113 +id-RepetitionPeriod ProtocolIE-ID ::= 114 +id-NumberofBroadcastRequest ProtocolIE-ID ::= 115 +id-WarningType ProtocolIE-ID ::= 116 +id-WarningSecurityInfo ProtocolIE-ID ::= 117 +id-DataCodingScheme ProtocolIE-ID ::= 118 +id-WarningMessageContents ProtocolIE-ID ::= 119 +id-BroadcastCompletedAreaList ProtocolIE-ID ::= 120 +id-Inter-SystemInformationTransferTypeEDT ProtocolIE-ID ::= 121 +id-Inter-SystemInformationTransferTypeMDT ProtocolIE-ID ::= 122 +id-Target-ToSource-TransparentContainer ProtocolIE-ID ::= 123 +id-SRVCCOperationPossible ProtocolIE-ID ::= 124 +id-SRVCCHOIndication ProtocolIE-ID ::= 125 +id-NAS-DownlinkCount ProtocolIE-ID ::= 126 +id-CSG-Id ProtocolIE-ID ::= 127 +id-CSG-IdList ProtocolIE-ID ::= 128 +id-SONConfigurationTransferECT ProtocolIE-ID ::= 129 +id-SONConfigurationTransferMCT ProtocolIE-ID ::= 130 +id-TraceCollectionEntityIPAddress ProtocolIE-ID ::= 131 +id-MSClassmark2 ProtocolIE-ID ::= 132 +id-MSClassmark3 ProtocolIE-ID ::= 133 +id-RRC-Establishment-Cause ProtocolIE-ID ::= 134 +id-NASSecurityParametersfromE-UTRAN ProtocolIE-ID ::= 135 +id-NASSecurityParameterstoE-UTRAN ProtocolIE-ID ::= 136 +id-DefaultPagingDRX ProtocolIE-ID ::= 137 +id-Source-ToTarget-TransparentContainer-Secondary ProtocolIE-ID ::= 138 +id-Target-ToSource-TransparentContainer-Secondary ProtocolIE-ID ::= 139 +id-EUTRANRoundTripDelayEstimationInfo ProtocolIE-ID ::= 140 +id-BroadcastCancelledAreaList ProtocolIE-ID ::= 141 +id-ConcurrentWarningMessageIndicator ProtocolIE-ID ::= 142 +id-Data-Forwarding-Not-Possible ProtocolIE-ID ::= 143 +id-ExtendedRepetitionPeriod ProtocolIE-ID ::= 144 +id-CellAccessMode ProtocolIE-ID ::= 145 +id-CSGMembershipStatus ProtocolIE-ID ::= 146 +id-LPPa-PDU ProtocolIE-ID ::= 147 +id-Routing-ID ProtocolIE-ID ::= 148 +id-Time-Synchronisation-Info ProtocolIE-ID ::= 149 +id-PS-ServiceNotAvailable ProtocolIE-ID ::= 150 +id-PagingPriority ProtocolIE-ID ::= 151 +id-x2TNLConfigurationInfo ProtocolIE-ID ::= 152 +id-eNBX2ExtendedTransportLayerAddresses ProtocolIE-ID ::= 153 +id-GUMMEIList ProtocolIE-ID ::= 154 +id-GW-TransportLayerAddress ProtocolIE-ID ::= 155 +id-Correlation-ID ProtocolIE-ID ::= 156 +id-SourceMME-GUMMEI ProtocolIE-ID ::= 157 +id-MME-UE-S1AP-ID-2 ProtocolIE-ID ::= 158 +id-RegisteredLAI ProtocolIE-ID ::= 159 +id-RelayNode-Indicator ProtocolIE-ID ::= 160 +id-TrafficLoadReductionIndication ProtocolIE-ID ::= 161 +id-MDTConfiguration ProtocolIE-ID ::= 162 +id-MMERelaySupportIndicator ProtocolIE-ID ::= 163 +id-GWContextReleaseIndication ProtocolIE-ID ::= 164 +id-ManagementBasedMDTAllowed ProtocolIE-ID ::= 165 +id-PrivacyIndicator ProtocolIE-ID ::= 166 +id-Time-UE-StayedInCell-EnhancedGranularity ProtocolIE-ID ::= 167 +id-HO-Cause ProtocolIE-ID ::= 168 +id-VoiceSupportMatchIndicator ProtocolIE-ID ::= 169 +id-GUMMEIType ProtocolIE-ID ::= 170 +id-M3Configuration ProtocolIE-ID ::= 171 +id-M4Configuration ProtocolIE-ID ::= 172 +id-M5Configuration ProtocolIE-ID ::= 173 +id-MDT-Location-Info ProtocolIE-ID ::= 174 +id-MobilityInformation ProtocolIE-ID ::= 175 +id-Tunnel-Information-for-BBF ProtocolIE-ID ::= 176 +id-ManagementBasedMDTPLMNList ProtocolIE-ID ::= 177 +id-SignallingBasedMDTPLMNList ProtocolIE-ID ::= 178 +id-ULCOUNTValueExtended ProtocolIE-ID ::= 179 +id-DLCOUNTValueExtended ProtocolIE-ID ::= 180 +id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID ::= 181 +id-ECGIListForRestart ProtocolIE-ID ::= 182 +id-SIPTO-Correlation-ID ProtocolIE-ID ::= 183 +id-SIPTO-L-GW-TransportLayerAddress ProtocolIE-ID ::= 184 +id-TransportInformation ProtocolIE-ID ::= 185 +id-LHN-ID ProtocolIE-ID ::= 186 +id-AdditionalCSFallbackIndicator ProtocolIE-ID ::= 187 +id-TAIListForRestart ProtocolIE-ID ::= 188 +id-UserLocationInformation ProtocolIE-ID ::= 189 +id-EmergencyAreaIDListForRestart ProtocolIE-ID ::= 190 +id-KillAllWarningMessages ProtocolIE-ID ::= 191 +id-Masked-IMEISV ProtocolIE-ID ::= 192 +id-eNBIndirectX2TransportLayerAddresses ProtocolIE-ID ::= 193 +id-uE-HistoryInformationFromTheUE ProtocolIE-ID ::= 194 +id-ProSeAuthorized ProtocolIE-ID ::= 195 +id-ExpectedUEBehaviour ProtocolIE-ID ::= 196 +id-LoggedMBSFNMDT ProtocolIE-ID ::= 197 +id-UERadioCapabilityForPaging ProtocolIE-ID ::= 198 +id-E-RABToBeModifiedListBearerModInd ProtocolIE-ID ::= 199 +id-E-RABToBeModifiedItemBearerModInd ProtocolIE-ID ::= 200 +id-E-RABNotToBeModifiedListBearerModInd ProtocolIE-ID ::= 201 +id-E-RABNotToBeModifiedItemBearerModInd ProtocolIE-ID ::= 202 +id-E-RABModifyListBearerModConf ProtocolIE-ID ::= 203 +id-E-RABModifyItemBearerModConf ProtocolIE-ID ::= 204 +id-E-RABFailedToModifyListBearerModConf ProtocolIE-ID ::= 205 +id-SON-Information-Report ProtocolIE-ID ::= 206 +id-Muting-Availability-Indication ProtocolIE-ID ::= 207 +id-Muting-Pattern-Information ProtocolIE-ID ::= 208 +id-Synchronisation-Information ProtocolIE-ID ::= 209 +id-E-RABToBeReleasedListBearerModConf ProtocolIE-ID ::= 210 +id-AssistanceDataForPaging ProtocolIE-ID ::= 211 +id-CellIdentifierAndCELevelForCECapableUEs ProtocolIE-ID ::= 212 +id-InformationOnRecommendedCellsAndENBsForPaging ProtocolIE-ID ::= 213 +id-RecommendedCellItem ProtocolIE-ID ::= 214 +id-RecommendedENBItem ProtocolIE-ID ::= 215 +id-ProSeUEtoNetworkRelaying ProtocolIE-ID ::= 216 +id-ULCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 217 +id-DLCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 218 +id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ProtocolIE-ID ::= 219 +id-M6Configuration ProtocolIE-ID ::= 220 +id-M7Configuration ProtocolIE-ID ::= 221 +id-PWSfailedECGIList ProtocolIE-ID ::= 222 +id-MME-Group-ID ProtocolIE-ID ::= 223 +id-Additional-GUTI ProtocolIE-ID ::= 224 +id-S1-Message ProtocolIE-ID ::= 225 +id-CSGMembershipInfo ProtocolIE-ID ::= 226 +id-Paging-eDRXInformation ProtocolIE-ID ::= 227 +id-UE-RetentionInformation ProtocolIE-ID ::= 228 +id-UE-Usage-Type ProtocolIE-ID ::= 230 +id-extended-UEIdentityIndexValue ProtocolIE-ID ::= 231 +id-RAT-Type ProtocolIE-ID ::= 232 +id-BearerType ProtocolIE-ID ::= 233 +id-NB-IoT-DefaultPagingDRX ProtocolIE-ID ::= 234 +id-E-RABFailedToResumeListResumeReq ProtocolIE-ID ::= 235 +id-E-RABFailedToResumeItemResumeReq ProtocolIE-ID ::= 236 +id-E-RABFailedToResumeListResumeRes ProtocolIE-ID ::= 237 +id-E-RABFailedToResumeItemResumeRes ProtocolIE-ID ::= 238 +id-NB-IoT-Paging-eDRXInformation ProtocolIE-ID ::= 239 +id-V2XServicesAuthorized ProtocolIE-ID ::= 240 +id-UEUserPlaneCIoTSupportIndicator ProtocolIE-ID ::= 241 +id-CE-mode-B-SupportIndicator ProtocolIE-ID ::= 242 +id-SRVCCOperationNotPossible ProtocolIE-ID ::= 243 +id-NB-IoT-UEIdentityIndexValue ProtocolIE-ID ::= 244 +id-RRC-Resume-Cause ProtocolIE-ID ::= 245 +id-DCN-ID ProtocolIE-ID ::= 246 +id-ServedDCNs ProtocolIE-ID ::= 247 +id-UESidelinkAggregateMaximumBitrate ProtocolIE-ID ::= 248 +id-DLNASPDUDeliveryAckRequest ProtocolIE-ID ::= 249 +id-Coverage-Level ProtocolIE-ID ::= 250 +id-EnhancedCoverageRestricted ProtocolIE-ID ::= 251 +id-UE-Level-QoS-Parameters ProtocolIE-ID ::= 252 +id-DL-CP-SecurityInformation ProtocolIE-ID ::= 253 +id-UL-CP-SecurityInformation ProtocolIE-ID ::= 254 +id-CE-ModeBRestricted ProtocolIE-ID ::= 271 + +END + + +-- ************************************************************** +-- +-- Container definitions +-- +-- ************************************************************** + +S1AP-Containers { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Containers (5) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + Presence, + PrivateIE-ID, + ProtocolExtensionID, + ProtocolIE-ID +FROM S1AP-CommonDataTypes + + maxPrivateIEs, + maxProtocolExtensions, + maxProtocolIEs +FROM S1AP-Constants; + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +S1AP-PROTOCOL-IES ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +S1AP-PROTOCOL-IES-PAIR ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &firstCriticality Criticality, + &FirstValue, + &secondCriticality Criticality, + &SecondValue, + &presence Presence +} +WITH SYNTAX { + ID &id + FIRST CRITICALITY &firstCriticality + FIRST TYPE &FirstValue + SECOND CRITICALITY &secondCriticality + SECOND TYPE &SecondValue + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol Extensions +-- +-- ************************************************************** + +S1AP-PROTOCOL-EXTENSION ::= CLASS { + &id ProtocolExtensionID UNIQUE, + &criticality Criticality, + &Extension, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + EXTENSION &Extension + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Private IEs +-- +-- ************************************************************** + +S1AP-PRIVATE-IES ::= CLASS { + &id PrivateIE-ID, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Container for Protocol IEs +-- +-- ************************************************************** + +ProtocolIE-Container {S1AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-SingleContainer {S1AP-PROTOCOL-IES : IEsSetParam} ::= + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Field {S1AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-IES.&id ({IEsSetParam}), + criticality S1AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), + value S1AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Protocol IE Pairs +-- +-- ************************************************************** + +ProtocolIE-ContainerPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-FieldPair {{IEsSetParam}} + +ProtocolIE-FieldPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), + firstCriticality S1AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), + firstValue S1AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), + secondCriticality S1AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), + secondValue S1AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container Lists for Protocol IE Containers +-- +-- ************************************************************** + +ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-SingleContainer {{IEsSetParam}} + +ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-ContainerPair {{IEsSetParam}} + +-- ************************************************************** +-- +-- Container for Protocol Extensions +-- +-- ************************************************************** + +ProtocolExtensionContainer {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= + SEQUENCE (SIZE (1..maxProtocolExtensions)) OF + ProtocolExtensionField {{ExtensionSetParam}} + +ProtocolExtensionField {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), + criticality S1AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), + extensionValue S1AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Private IEs +-- +-- ************************************************************** + +PrivateIE-Container {S1AP-PRIVATE-IES : IEsSetParam } ::= + SEQUENCE (SIZE (1.. maxPrivateIEs)) OF + PrivateIE-Field {{IEsSetParam}} + +PrivateIE-Field {S1AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { + id S1AP-PRIVATE-IES.&id ({IEsSetParam}), + criticality S1AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), + value S1AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) +} + +END + +-- ************************************************************** +-- +-- IE definitions for the SON Transfer application +-- The IEs in this ASN.1 module shall be defined and encoded +-- using the same rules as applicable for the S1AP-IEs module. +-- +-- ************************************************************** +SonTransfer-IEs + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- +-- Generic IEs for the SON Transfer application +-- + +SONtransferApplicationIdentity ::= ENUMERATED { + cell-load-reporting, + ..., + multi-cell-load-reporting, + event-triggered-cell-load-reporting, + ho-reporting, + eutran-cell-activation, + energy-savings-indication, + failure-event-reporting +} + +SONtransferRequestContainer ::= CHOICE{ + cellLoadReporting NULL, + ..., + multiCellLoadReporting MultiCellLoadReportingRequest, + eventTriggeredCellLoadReporting EventTriggeredCellLoadReportingRequest, + hOReporting HOReport, + eutranCellActivation CellActivationRequest, + energySavingsIndication CellStateIndication, + failureEventReporting FailureEventReport +} + +SONtransferResponseContainer ::= CHOICE{ + cellLoadReporting CellLoadReportingResponse, + ..., + multiCellLoadReporting MultiCellLoadReportingResponse, + eventTriggeredCellLoadReporting EventTriggeredCellLoadReportingResponse, + hOReporting NULL, + eutranCellActivation CellActivationResponse, + energySavingsIndication NULL, + failureEventReporting NULL +} + +SONtransferCause ::= CHOICE { + cellLoadReporting CellLoadReportingCause, + ..., + multiCellLoadReporting CellLoadReportingCause, + eventTriggeredCellLoadReporting CellLoadReportingCause, + hOReporting HOReportingCause, + eutranCellActivation CellActivationCause, + energySavingsIndication CellStateIndicationCause, + failureEventReporting FailureEventReportingCause +} + + +CellLoadReportingCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +HOReportingCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +CellActivationCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +CellStateIndicationCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +FailureEventReportingCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +-- +-- IEs for Cell Load Reporting application +-- + +CellLoadReportingResponse::= CHOICE{ + eUTRAN EUTRANcellLoadReportingResponse, + uTRAN OCTET STRING, + gERAN OCTET STRING, + ..., + eHRPD EHRPDSectorLoadReportingResponse +} + +CompositeAvailableCapacityGroup ::= OCTET STRING + +EUTRANcellLoadReportingResponse ::= SEQUENCE { + compositeAvailableCapacityGroup CompositeAvailableCapacityGroup, + ... +} + +-- +-- IEs for Multi-Cell Load Reporting application +-- + +EUTRANResponse::= SEQUENCE { + cell-ID OCTET STRING, + eUTRANcellLoadReportingResponse EUTRANcellLoadReportingResponse, + ... +} + +EHRPD-Sector-ID ::= OCTET STRING (SIZE (16)) + +IRAT-Cell-ID ::= CHOICE{ + eUTRAN OCTET STRING, + uTRAN OCTET STRING, + gERAN OCTET STRING, + ..., + eHRPD EHRPD-Sector-ID +} + +RequestedCellList ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF IRAT-Cell-ID + +MultiCellLoadReportingRequest::= SEQUENCE { + requestedCellList RequestedCellList, + ... +} + +ReportingCellList-Item ::= SEQUENCE { + cell-ID IRAT-Cell-ID, + ... +} + +ReportingCellList ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF ReportingCellList-Item + +MultiCellLoadReportingResponse ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF MultiCellLoadReportingResponse-Item + +MultiCellLoadReportingResponse-Item ::= CHOICE{ + eUTRANResponse EUTRANResponse, + uTRANResponse OCTET STRING, + gERANResponse OCTET STRING, + ..., + eHRPD EHRPDMultiSectorLoadReportingResponseItem +} + + +-- +-- IEs for Event-triggered Cell Load Reporting application +-- + +NumberOfMeasurementReportingLevels ::= ENUMERATED { + rl2, + rl3, + rl4, + rl5, + rl10, + ... +} + +EventTriggeredCellLoadReportingRequest ::= SEQUENCE { + numberOfMeasurementReportingLevels NumberOfMeasurementReportingLevels, + ... +} + +OverloadFlag ::= ENUMERATED { + overload, + ... +} + +EventTriggeredCellLoadReportingResponse ::= SEQUENCE { + cellLoadReportingResponse CellLoadReportingResponse, + overloadFlag OverloadFlag OPTIONAL, + ... +} + +-- +-- IEs for HO Reporting application +-- + + + +HOReport::= SEQUENCE { + hoType HoType, + hoReportType HoReportType, + hosourceID IRAT-Cell-ID, + hoTargetID IRAT-Cell-ID, + candidateCellList CandidateCellList, + ..., + candidatePCIList CandidatePCIList OPTIONAL +} + +HoType ::= ENUMERATED { + ltetoutran, + ltetogeran, + ... +} + +HoReportType ::= ENUMERATED { + unnecessaryhotoanotherrat, + ..., + earlyirathandover +} + +CandidateCellList ::= SEQUENCE (SIZE(1..maxnoofcandidateCells)) OF IRAT-Cell-ID + +CandidatePCIList ::= SEQUENCE (SIZE(1..maxnoofcandidateCells)) OF CandidatePCI + +CandidatePCI ::= SEQUENCE { + pCI INTEGER (0..503), + eARFCN OCTET STRING, + ... +} + +-- +-- IEs for E-UTRAN Cell Activation application +-- + +CellActivationRequest ::= SEQUENCE { + cellsToActivateList CellsToActivateList, + minimumActivationTime INTEGER (1..60) OPTIONAL, +... +} + +CellsToActivateList ::= SEQUENCE (SIZE(1.. maxnoofCellineNB)) OF CellsToActivateList-Item + +CellsToActivateList-Item ::= SEQUENCE { + cell-ID OCTET STRING, + ... +} + +CellActivationResponse ::= SEQUENCE { + activatedCellsList ActivatedCellsList, + ... +} + +ActivatedCellsList ::= SEQUENCE (SIZE(0.. maxnoofCellineNB)) OF ActivatedCellsList-Item + +ActivatedCellsList-Item ::= SEQUENCE { + cell-ID OCTET STRING, + ... +} + +-- +-- IEs for Energy Savings Indication application +-- + +CellStateIndication ::= SEQUENCE { + notificationCellList NotificationCellList, + ... +} + +NotificationCellList ::= SEQUENCE (SIZE(1.. maxnoofCellineNB)) OF NotificationCellList-Item + +NotificationCellList-Item ::= SEQUENCE { + cell-ID OCTET STRING, + notifyFlag NotifyFlag, + ... +} + +NotifyFlag ::= ENUMERATED { + activated, + deactivated, + ... +} + +FailureEventReport::= CHOICE { + tooEarlyInterRATHOReportFromEUTRAN TooEarlyInterRATHOReportReportFromEUTRAN, + ... +} + +TooEarlyInterRATHOReportReportFromEUTRAN ::= SEQUENCE { + uERLFReportContainer OCTET STRING, -- as defined in TS 36.331 [16] -- + mobilityInformation MobilityInformation OPTIONAL, + ... +} + +MobilityInformation ::= BIT STRING (SIZE(32)) + + +-- +-- IEs for reporting of eHRPD load +-- + +EHRPDCapacityValue ::= INTEGER (0..100) + +EHRPDSectorCapacityClassValue ::= INTEGER (1..100, ...) + +EHRPDSectorLoadReportingResponse ::= SEQUENCE { + dL-EHRPD-CompositeAvailableCapacity EHRPDCompositeAvailableCapacity, + uL-EHRPD-CompositeAvailableCapacity EHRPDCompositeAvailableCapacity, + ... +} + +EHRPDCompositeAvailableCapacity ::= SEQUENCE { + eHRPDSectorCapacityClassValue EHRPDSectorCapacityClassValue, + eHRPDCapacityValue EHRPDCapacityValue, + ... +} + +EHRPDMultiSectorLoadReportingResponseItem ::= SEQUENCE { + eHRPD-Sector-ID EHRPD-Sector-ID, + eHRPDSectorLoadReportingResponse EHRPDSectorLoadReportingResponse, + ... +} + + +-- ************************************************************** +-- +-- Constants +-- +-- ************************************************************** + +maxnoofIRATReportingCells INTEGER ::= 128 +maxnoofcandidateCells INTEGER ::= 16 +maxnoofCellineNB INTEGER ::= 256 + +END diff --git a/openair3/S1AP/MESSAGES/ASN1/R15/s1ap-15.1.0.asn1 b/openair3/S1AP/MESSAGES/ASN1/R15/s1ap-15.1.0.asn1 new file mode 100755 index 0000000000..592881aa5e --- /dev/null +++ b/openair3/S1AP/MESSAGES/ASN1/R15/s1ap-15.1.0.asn1 @@ -0,0 +1,7240 @@ +-- ************************************************************** +-- +-- Elementary Procedure definitions +-- +-- ************************************************************** + +S1AP-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Descriptions (0)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + ProcedureCode +FROM S1AP-CommonDataTypes + + CellTrafficTrace, + DeactivateTrace, + DownlinkUEAssociatedLPPaTransport, + DownlinkNASTransport, + DownlinkNonUEAssociatedLPPaTransport, + DownlinkS1cdma2000tunnelling, + ENBDirectInformationTransfer, + ENBStatusTransfer, + ENBConfigurationUpdate, + ENBConfigurationUpdateAcknowledge, + ENBConfigurationUpdateFailure, + ErrorIndication, + HandoverCancel, + HandoverCancelAcknowledge, + HandoverCommand, + HandoverFailure, + HandoverNotify, + HandoverPreparationFailure, + HandoverRequest, + HandoverRequestAcknowledge, + HandoverRequired, + InitialContextSetupFailure, + InitialContextSetupRequest, + InitialContextSetupResponse, + InitialUEMessage, + KillRequest, + KillResponse, + LocationReportingControl, + LocationReportingFailureIndication, + LocationReport, + MMEConfigurationUpdate, + MMEConfigurationUpdateAcknowledge, + MMEConfigurationUpdateFailure, + MMEDirectInformationTransfer, + MMEStatusTransfer, + NASNonDeliveryIndication, + OverloadStart, + OverloadStop, + Paging, + PathSwitchRequest, + PathSwitchRequestAcknowledge, + PathSwitchRequestFailure, + PrivateMessage, + Reset, + ResetAcknowledge, + S1SetupFailure, + S1SetupRequest, + S1SetupResponse, + E-RABModifyRequest, + E-RABModifyResponse, + E-RABModificationIndication, + E-RABModificationConfirm, + E-RABReleaseCommand, + E-RABReleaseResponse, + E-RABReleaseIndication, + E-RABSetupRequest, + E-RABSetupResponse, + TraceFailureIndication, + TraceStart, + UECapabilityInfoIndication, + UEContextModificationFailure, + UEContextModificationRequest, + UEContextModificationResponse, + UEContextReleaseCommand, + UEContextReleaseComplete, + UEContextReleaseRequest, + UERadioCapabilityMatchRequest, + UERadioCapabilityMatchResponse, + UplinkUEAssociatedLPPaTransport, + UplinkNASTransport, + UplinkNonUEAssociatedLPPaTransport, + UplinkS1cdma2000tunnelling, + WriteReplaceWarningRequest, + WriteReplaceWarningResponse, + ENBConfigurationTransfer, + MMEConfigurationTransfer, + PWSRestartIndication, + UEContextModificationIndication, + UEContextModificationConfirm, + RerouteNASRequest, + PWSFailureIndication, + UEContextSuspendRequest, + UEContextSuspendResponse, + UEContextResumeRequest, + UEContextResumeResponse, + UEContextResumeFailure, + ConnectionEstablishmentIndication, + NASDeliveryIndication, + RetrieveUEInformation, + UEInformationTransfer, + ENBCPRelocationIndication, + MMECPRelocationIndication, + SecondaryRATDataUsageReport + + +FROM S1AP-PDU-Contents + + id-CellTrafficTrace, + id-DeactivateTrace, + id-downlinkUEAssociatedLPPaTransport, + id-downlinkNASTransport, + id-downlinkNonUEAssociatedLPPaTransport, + id-DownlinkS1cdma2000tunnelling, + id-eNBStatusTransfer, + id-ErrorIndication, + id-HandoverCancel, + id-HandoverNotification, + id-HandoverPreparation, + id-HandoverResourceAllocation, + id-InitialContextSetup, + id-initialUEMessage, + id-ENBConfigurationUpdate, + id-Kill, + id-LocationReportingControl, + id-LocationReportingFailureIndication, + id-LocationReport, + id-eNBDirectInformationTransfer, + id-MMEConfigurationUpdate, + id-MMEDirectInformationTransfer, + id-MMEStatusTransfer, + id-NASNonDeliveryIndication, + id-OverloadStart, + id-OverloadStop, + id-Paging, + id-PathSwitchRequest, + id-PrivateMessage, + id-Reset, + id-S1Setup, + id-E-RABModify, + id-E-RABModificationIndication, + id-E-RABRelease, + id-E-RABReleaseIndication, + id-E-RABSetup, + id-TraceFailureIndication, + id-TraceStart, + id-UECapabilityInfoIndication, + id-UEContextModification, + id-UEContextRelease, + id-UEContextReleaseRequest, + id-UERadioCapabilityMatch, + id-uplinkUEAssociatedLPPaTransport, + id-uplinkNASTransport, + id-uplinkNonUEAssociatedLPPaTransport, + id-UplinkS1cdma2000tunnelling, + id-WriteReplaceWarning, + id-eNBConfigurationTransfer, + id-MMEConfigurationTransfer, + id-PWSRestartIndication, + id-UEContextModificationIndication, + id-RerouteNASRequest, + id-PWSFailureIndication, + id-UEContextSuspend, + id-UEContextResume, + id-ConnectionEstablishmentIndication, + id-NASDeliveryIndication, + id-RetrieveUEInformation, + id-UEInformationTransfer, + id-eNBCPRelocationIndication, + id-MMECPRelocationIndication, + id-SecondaryRATDataUsageReport + + +FROM S1AP-Constants; + + +-- ************************************************************** +-- +-- Interface Elementary Procedure Class +-- +-- ************************************************************** + +S1AP-ELEMENTARY-PROCEDURE ::= CLASS { + &InitiatingMessage , + &SuccessfulOutcome OPTIONAL, + &UnsuccessfulOutcome OPTIONAL, + &procedureCode ProcedureCode UNIQUE, + &criticality Criticality DEFAULT ignore +} +WITH SYNTAX { + INITIATING MESSAGE &InitiatingMessage + [SUCCESSFUL OUTCOME &SuccessfulOutcome] + [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] + PROCEDURE CODE &procedureCode + [CRITICALITY &criticality] +} + +-- ************************************************************** +-- +-- Interface PDU Definition +-- +-- ************************************************************** + +S1AP-PDU ::= CHOICE { + initiatingMessage InitiatingMessage, + successfulOutcome SuccessfulOutcome, + unsuccessfulOutcome UnsuccessfulOutcome, + ... +} + +InitiatingMessage ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +SuccessfulOutcome ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +UnsuccessfulOutcome ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +-- ************************************************************** +-- +-- Interface Elementary Procedure List +-- +-- ************************************************************** + +S1AP-ELEMENTARY-PROCEDURES S1AP-ELEMENTARY-PROCEDURE ::= { + S1AP-ELEMENTARY-PROCEDURES-CLASS-1 | + S1AP-ELEMENTARY-PROCEDURES-CLASS-2, + ... +} + + +S1AP-ELEMENTARY-PROCEDURES-CLASS-1 S1AP-ELEMENTARY-PROCEDURE ::= { + handoverPreparation | + handoverResourceAllocation | + pathSwitchRequest | + e-RABSetup | + e-RABModify | + e-RABRelease | + initialContextSetup | + handoverCancel | + kill | + reset | + s1Setup | + uEContextModification | + uEContextRelease | + eNBConfigurationUpdate | + mMEConfigurationUpdate | + writeReplaceWarning , + ..., + uERadioCapabilityMatch | + e-RABModificationIndication | + uEContextModificationIndication | + uEContextSuspend | + uEContextResume +} + +S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= { + handoverNotification | + e-RABReleaseIndication | + paging | + downlinkNASTransport | + initialUEMessage | + uplinkNASTransport | + errorIndication | + nASNonDeliveryIndication | + uEContextReleaseRequest | + downlinkS1cdma2000tunnelling | + uplinkS1cdma2000tunnelling | + uECapabilityInfoIndication | + eNBStatusTransfer | + mMEStatusTransfer | + deactivateTrace | + traceStart | + traceFailureIndication | + cellTrafficTrace | + locationReportingControl | + locationReportingFailureIndication | + locationReport | + overloadStart | + overloadStop | + eNBDirectInformationTransfer | + mMEDirectInformationTransfer | + eNBConfigurationTransfer | + mMEConfigurationTransfer | + privateMessage , + ..., + downlinkUEAssociatedLPPaTransport | + uplinkUEAssociatedLPPaTransport | + downlinkNonUEAssociatedLPPaTransport | + uplinkNonUEAssociatedLPPaTransport | + pWSRestartIndication | + rerouteNASRequest | + pWSFailureIndication | + connectionEstablishmentIndication | + nASDeliveryIndication | + retrieveUEInformation | + uEInformationTransfer | + eNBCPRelocationIndication | + mMECPRelocationIndication | + secondaryRATDataUsageReport +} + +-- ************************************************************** +-- +-- Interface Elementary Procedures +-- +-- ************************************************************** + +handoverPreparation S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequired + SUCCESSFUL OUTCOME HandoverCommand + UNSUCCESSFUL OUTCOME HandoverPreparationFailure + PROCEDURE CODE id-HandoverPreparation + CRITICALITY reject +} + +handoverResourceAllocation S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequest + SUCCESSFUL OUTCOME HandoverRequestAcknowledge + UNSUCCESSFUL OUTCOME HandoverFailure + PROCEDURE CODE id-HandoverResourceAllocation + CRITICALITY reject +} + +handoverNotification S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverNotify + PROCEDURE CODE id-HandoverNotification + CRITICALITY ignore +} + +pathSwitchRequest S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PathSwitchRequest + SUCCESSFUL OUTCOME PathSwitchRequestAcknowledge + UNSUCCESSFUL OUTCOME PathSwitchRequestFailure + PROCEDURE CODE id-PathSwitchRequest + CRITICALITY reject +} + +e-RABSetup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABSetupRequest + SUCCESSFUL OUTCOME E-RABSetupResponse + PROCEDURE CODE id-E-RABSetup + CRITICALITY reject +} + +e-RABModify S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABModifyRequest + SUCCESSFUL OUTCOME E-RABModifyResponse + PROCEDURE CODE id-E-RABModify + CRITICALITY reject +} + +e-RABRelease S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABReleaseCommand + SUCCESSFUL OUTCOME E-RABReleaseResponse + PROCEDURE CODE id-E-RABRelease + CRITICALITY reject +} + +e-RABReleaseIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABReleaseIndication + PROCEDURE CODE id-E-RABReleaseIndication + CRITICALITY ignore +} + +initialContextSetup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE InitialContextSetupRequest + SUCCESSFUL OUTCOME InitialContextSetupResponse + UNSUCCESSFUL OUTCOME InitialContextSetupFailure + PROCEDURE CODE id-InitialContextSetup + CRITICALITY reject +} + +uEContextReleaseRequest S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextReleaseRequest + PROCEDURE CODE id-UEContextReleaseRequest + CRITICALITY ignore +} + +paging S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE Paging + PROCEDURE CODE id-Paging + CRITICALITY ignore +} + +downlinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkNASTransport + PROCEDURE CODE id-downlinkNASTransport + CRITICALITY ignore +} + +initialUEMessage S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE InitialUEMessage + PROCEDURE CODE id-initialUEMessage + CRITICALITY ignore +} + +uplinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkNASTransport + PROCEDURE CODE id-uplinkNASTransport + CRITICALITY ignore +} +nASNonDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE NASNonDeliveryIndication + PROCEDURE CODE id-NASNonDeliveryIndication + CRITICALITY ignore +} + +handoverCancel S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverCancel + SUCCESSFUL OUTCOME HandoverCancelAcknowledge + PROCEDURE CODE id-HandoverCancel + CRITICALITY reject +} + +reset S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE Reset + SUCCESSFUL OUTCOME ResetAcknowledge + PROCEDURE CODE id-Reset + CRITICALITY reject +} + +errorIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ErrorIndication + PROCEDURE CODE id-ErrorIndication + CRITICALITY ignore +} + +s1Setup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE S1SetupRequest + SUCCESSFUL OUTCOME S1SetupResponse + UNSUCCESSFUL OUTCOME S1SetupFailure + PROCEDURE CODE id-S1Setup + CRITICALITY reject +} + +eNBConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationUpdate + SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure + PROCEDURE CODE id-ENBConfigurationUpdate + CRITICALITY reject +} + +mMEConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEConfigurationUpdate + SUCCESSFUL OUTCOME MMEConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME MMEConfigurationUpdateFailure + PROCEDURE CODE id-MMEConfigurationUpdate + CRITICALITY reject +} + +downlinkS1cdma2000tunnelling S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkS1cdma2000tunnelling + PROCEDURE CODE id-DownlinkS1cdma2000tunnelling + CRITICALITY ignore +} + +uplinkS1cdma2000tunnelling S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkS1cdma2000tunnelling + PROCEDURE CODE id-UplinkS1cdma2000tunnelling + CRITICALITY ignore +} + +uEContextModification S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextModificationRequest + SUCCESSFUL OUTCOME UEContextModificationResponse + UNSUCCESSFUL OUTCOME UEContextModificationFailure + PROCEDURE CODE id-UEContextModification + CRITICALITY reject +} + +uECapabilityInfoIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UECapabilityInfoIndication + PROCEDURE CODE id-UECapabilityInfoIndication + CRITICALITY ignore +} + +uEContextRelease S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextReleaseCommand + SUCCESSFUL OUTCOME UEContextReleaseComplete + PROCEDURE CODE id-UEContextRelease + CRITICALITY reject +} + +eNBStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBStatusTransfer + PROCEDURE CODE id-eNBStatusTransfer + CRITICALITY ignore +} + +mMEStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEStatusTransfer + PROCEDURE CODE id-MMEStatusTransfer + CRITICALITY ignore +} + +deactivateTrace S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DeactivateTrace + PROCEDURE CODE id-DeactivateTrace + CRITICALITY ignore +} + +traceStart S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE TraceStart + PROCEDURE CODE id-TraceStart + CRITICALITY ignore +} + +traceFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE TraceFailureIndication + PROCEDURE CODE id-TraceFailureIndication + CRITICALITY ignore +} +cellTrafficTrace S1AP-ELEMENTARY-PROCEDURE ::={ + INITIATING MESSAGE CellTrafficTrace + PROCEDURE CODE id-CellTrafficTrace + CRITICALITY ignore +} + +locationReportingControl S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReportingControl + PROCEDURE CODE id-LocationReportingControl + CRITICALITY ignore +} + +locationReportingFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReportingFailureIndication + PROCEDURE CODE id-LocationReportingFailureIndication + CRITICALITY ignore +} + +locationReport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReport + PROCEDURE CODE id-LocationReport + CRITICALITY ignore +} + +overloadStart S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE OverloadStart + PROCEDURE CODE id-OverloadStart + CRITICALITY ignore +} + +overloadStop S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE OverloadStop + PROCEDURE CODE id-OverloadStop + CRITICALITY reject +} + +writeReplaceWarning S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE WriteReplaceWarningRequest + SUCCESSFUL OUTCOME WriteReplaceWarningResponse + PROCEDURE CODE id-WriteReplaceWarning + CRITICALITY reject +} + +eNBDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBDirectInformationTransfer + PROCEDURE CODE id-eNBDirectInformationTransfer + CRITICALITY ignore +} + +mMEDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEDirectInformationTransfer + PROCEDURE CODE id-MMEDirectInformationTransfer + CRITICALITY ignore +} + +eNBConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationTransfer + PROCEDURE CODE id-eNBConfigurationTransfer + CRITICALITY ignore +} + +mMEConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEConfigurationTransfer + PROCEDURE CODE id-MMEConfigurationTransfer + CRITICALITY ignore +} + + +privateMessage S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PrivateMessage + PROCEDURE CODE id-PrivateMessage + CRITICALITY ignore +} + +pWSRestartIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PWSRestartIndication + PROCEDURE CODE id-PWSRestartIndication + CRITICALITY ignore +} + +kill S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE KillRequest + SUCCESSFUL OUTCOME KillResponse + PROCEDURE CODE id-Kill + CRITICALITY reject +} + +downlinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkUEAssociatedLPPaTransport + PROCEDURE CODE id-downlinkUEAssociatedLPPaTransport + CRITICALITY ignore +} + +uplinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkUEAssociatedLPPaTransport + PROCEDURE CODE id-uplinkUEAssociatedLPPaTransport + CRITICALITY ignore +} +downlinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkNonUEAssociatedLPPaTransport + PROCEDURE CODE id-downlinkNonUEAssociatedLPPaTransport + CRITICALITY ignore +} + +uplinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkNonUEAssociatedLPPaTransport + PROCEDURE CODE id-uplinkNonUEAssociatedLPPaTransport + CRITICALITY ignore +} + +uERadioCapabilityMatch S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UERadioCapabilityMatchRequest + SUCCESSFUL OUTCOME UERadioCapabilityMatchResponse + PROCEDURE CODE id-UERadioCapabilityMatch + CRITICALITY reject +} + +e-RABModificationIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABModificationIndication + SUCCESSFUL OUTCOME E-RABModificationConfirm + PROCEDURE CODE id-E-RABModificationIndication + CRITICALITY reject +} + +uEContextModificationIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextModificationIndication + SUCCESSFUL OUTCOME UEContextModificationConfirm + PROCEDURE CODE id-UEContextModificationIndication + CRITICALITY reject +} + +rerouteNASRequest S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RerouteNASRequest + PROCEDURE CODE id-RerouteNASRequest + CRITICALITY reject +} + +pWSFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PWSFailureIndication + PROCEDURE CODE id-PWSFailureIndication + CRITICALITY ignore +} + +uEContextSuspend S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextSuspendRequest + SUCCESSFUL OUTCOME UEContextSuspendResponse + PROCEDURE CODE id-UEContextSuspend + CRITICALITY reject +} + +uEContextResume S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextResumeRequest + SUCCESSFUL OUTCOME UEContextResumeResponse + UNSUCCESSFUL OUTCOME UEContextResumeFailure + PROCEDURE CODE id-UEContextResume + CRITICALITY reject +} + +connectionEstablishmentIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ConnectionEstablishmentIndication + PROCEDURE CODE id-ConnectionEstablishmentIndication + CRITICALITY reject +} + +nASDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE NASDeliveryIndication + PROCEDURE CODE id-NASDeliveryIndication + CRITICALITY ignore +} + +retrieveUEInformation S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RetrieveUEInformation + PROCEDURE CODE id-RetrieveUEInformation + CRITICALITY reject +} + +uEInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEInformationTransfer + PROCEDURE CODE id-UEInformationTransfer + CRITICALITY reject +} + +eNBCPRelocationIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBCPRelocationIndication + PROCEDURE CODE id-eNBCPRelocationIndication + CRITICALITY reject +} + +mMECPRelocationIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMECPRelocationIndication + PROCEDURE CODE id-MMECPRelocationIndication + CRITICALITY reject +} + +secondaryRATDataUsageReport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SecondaryRATDataUsageReport + PROCEDURE CODE id-SecondaryRATDataUsageReport + CRITICALITY ignore +} + + +END + + + +-- ************************************************************** +-- +-- PDU definitions for S1AP. +-- +-- ************************************************************** + +S1AP-PDU-Contents { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Contents (1) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + + UEAggregateMaximumBitrate, + BearerType, + Cause, + CellAccessMode, + Cdma2000HORequiredIndication, + Cdma2000HOStatus, + Cdma2000OneXSRVCCInfo, + Cdma2000OneXRAND, + Cdma2000PDU, + Cdma2000RATType, + Cdma2000SectorID, + EUTRANRoundTripDelayEstimationInfo, + CNDomain, + ConcurrentWarningMessageIndicator, + CriticalityDiagnostics, + CSFallbackIndicator, + CSG-Id, + CSG-IdList, + CSGMembershipStatus, + Data-Forwarding-Not-Possible, + Direct-Forwarding-Path-Availability, + Global-ENB-ID, + EUTRAN-CGI, + ENBname, + ENB-StatusTransfer-TransparentContainer, + ENB-UE-S1AP-ID, + ExtendedRepetitionPeriod, + GTP-TEID, + GUMMEI, + GUMMEIType, + HandoverRestrictionList, + HandoverType, + Masked-IMEISV, + LAI, + LPPa-PDU, + ManagementBasedMDTAllowed, + MDTPLMNList, + MMEname, + MMERelaySupportIndicator, + MME-UE-S1AP-ID, + MSClassmark2, + MSClassmark3, + NAS-PDU, + NASSecurityParametersfromE-UTRAN, + NASSecurityParameterstoE-UTRAN, + OverloadResponse, + PagingDRX, + PagingPriority, + PLMNidentity, + ProSeAuthorized, + RIMTransfer, + RelativeMMECapacity, + RequestType, + E-RAB-ID, + E-RABLevelQoSParameters, + E-RABList, + RelayNode-Indicator, + Routing-ID, + SecurityKey, + SecurityContext, + ServedGUMMEIs, + SONConfigurationTransfer, + Source-ToTarget-TransparentContainer, + SourceBSS-ToTargetBSS-TransparentContainer, + SourceeNB-ToTargeteNB-TransparentContainer, + SourceRNC-ToTargetRNC-TransparentContainer, + SubscriberProfileIDforRFP, + SRVCCOperationNotPossible, + SRVCCOperationPossible, + SRVCCHOIndication, + SupportedTAs, + TAI, + Target-ToSource-TransparentContainer, + TargetBSS-ToSourceBSS-TransparentContainer, + TargeteNB-ToSourceeNB-TransparentContainer, + TargetID, + TargetRNC-ToSourceRNC-TransparentContainer, + TimeToWait, + TraceActivation, + TrafficLoadReductionIndication, + E-UTRAN-Trace-ID, + TransportLayerAddress, + UEIdentityIndexValue, + UEPagingID, + UERadioCapability, + UERadioCapabilityForPaging, + UE-RetentionInformation, + UE-S1AP-IDs, + UE-associatedLogicalS1-ConnectionItem, + UESecurityCapabilities, + S-TMSI, + MessageIdentifier, + SerialNumber, + WarningAreaList, + RepetitionPeriod, + NumberofBroadcastRequest, + WarningType, + WarningSecurityInfo, + DataCodingScheme, + WarningMessageContents, + BroadcastCompletedAreaList, + RRC-Establishment-Cause, + BroadcastCancelledAreaList, + PS-ServiceNotAvailable, + GUMMEIList, + Correlation-ID, + GWContextReleaseIndication, + PrivacyIndicator, + VoiceSupportMatchIndicator, + TunnelInformation, + KillAllWarningMessages, + TransportInformation, + LHN-ID, + UserLocationInformation, + AdditionalCSFallbackIndicator, + ECGIListForRestart, + TAIListForRestart, + EmergencyAreaIDListForRestart, + ExpectedUEBehaviour, + Paging-eDRXInformation, + Extended-UEIdentityIndexValue, + MME-Group-ID, + Additional-GUTI, + PWSfailedECGIList, + CellIdentifierAndCELevelForCECapableUEs, + AssistanceDataForPaging, + InformationOnRecommendedCellsAndENBsForPaging, + UE-Usage-Type, + UEUserPlaneCIoTSupportIndicator, + NB-IoT-DefaultPagingDRX, + NB-IoT-Paging-eDRXInformation, + CE-mode-B-SupportIndicator, + NB-IoT-UEIdentityIndexValue, + V2XServicesAuthorized, + DCN-ID, + ServedDCNs, + UESidelinkAggregateMaximumBitrate, + DLNASPDUDeliveryAckRequest, + Coverage-Level, + EnhancedCoverageRestricted, + DL-CP-SecurityInformation, + UL-CP-SecurityInformation, + SecondaryRATDataUsageRequest, + SecondaryRATDataUsageReportList, + HandoverFlag, + NRUESecurityCapabilities, + UE-Application-Layer-Measurement-Capability, + CE-ModeBRestricted + + + +FROM S1AP-IEs + + PrivateIE-Container{}, + ProtocolExtensionContainer{}, + ProtocolIE-Container{}, + ProtocolIE-ContainerList{}, + ProtocolIE-ContainerPair{}, + ProtocolIE-ContainerPairList{}, + ProtocolIE-SingleContainer{}, + S1AP-PRIVATE-IES, + S1AP-PROTOCOL-EXTENSION, + S1AP-PROTOCOL-IES, + S1AP-PROTOCOL-IES-PAIR +FROM S1AP-Containers + + + id-AssistanceDataForPaging, + id-uEaggregateMaximumBitrate, + id-BearerType, + id-Cause, + id-CellAccessMode, + id-CellIdentifierAndCELevelForCECapableUEs, + id-cdma2000HORequiredIndication, + id-cdma2000HOStatus, + id-cdma2000OneXSRVCCInfo, + id-cdma2000OneXRAND, + id-cdma2000PDU, + id-cdma2000RATType, + id-cdma2000SectorID, + id-EUTRANRoundTripDelayEstimationInfo, + id-CNDomain, + id-ConcurrentWarningMessageIndicator, + id-CriticalityDiagnostics, + id-CSFallbackIndicator, + id-CSG-Id, + id-CSG-IdList, + id-CSGMembershipStatus, + id-Data-Forwarding-Not-Possible, + id-DefaultPagingDRX, + id-Direct-Forwarding-Path-Availability, + id-Global-ENB-ID, + id-EUTRAN-CGI, + id-eNBname, + id-eNB-StatusTransfer-TransparentContainer, + id-eNB-UE-S1AP-ID, + id-GERANtoLTEHOInformationRes, + id-GUMMEI-ID, + id-GUMMEIType, + id-HandoverRestrictionList, + id-HandoverType, + id-Masked-IMEISV, + id-InformationOnRecommendedCellsAndENBsForPaging, + id-InitialContextSetup, + id-Inter-SystemInformationTransferTypeEDT, + id-Inter-SystemInformationTransferTypeMDT, + id-LPPa-PDU, + id-NAS-DownlinkCount, + id-ManagementBasedMDTAllowed, + id-ManagementBasedMDTPLMNList, + id-MMEname, + id-MME-UE-S1AP-ID, + id-MSClassmark2, + id-MSClassmark3, + id-NAS-PDU, + id-NASSecurityParametersfromE-UTRAN, + id-NASSecurityParameterstoE-UTRAN, + id-OverloadResponse, + id-pagingDRX, + id-PagingPriority, + id-RelativeMMECapacity, + id-RequestType, + id-Routing-ID, + id-E-RABAdmittedItem, + id-E-RABAdmittedList, + id-E-RABDataForwardingItem, + id-E-RABFailedToModifyList, + id-E-RABFailedToReleaseList, + id-E-RABFailedtoSetupItemHOReqAck, + id-E-RABFailedToSetupListBearerSURes, + id-E-RABFailedToSetupListCtxtSURes, + id-E-RABFailedToSetupListHOReqAck, + id-E-RABFailedToBeReleasedList, + id-E-RABFailedToResumeListResumeReq, + id-E-RABFailedToResumeItemResumeReq, + id-E-RABFailedToResumeListResumeRes, + id-E-RABFailedToResumeItemResumeRes, + id-E-RABModify, + id-E-RABModifyItemBearerModRes, + id-E-RABModifyListBearerModRes, + id-E-RABRelease, + id-E-RABReleaseItemBearerRelComp, + id-E-RABReleaseItemHOCmd, + id-E-RABReleaseListBearerRelComp, + id-E-RABReleaseIndication, + id-E-RABSetup, + id-E-RABSetupItemBearerSURes, + id-E-RABSetupItemCtxtSURes, + id-E-RABSetupListBearerSURes, + id-E-RABSetupListCtxtSURes, + id-E-RABSubjecttoDataForwardingList, + id-E-RABToBeModifiedItemBearerModReq, + id-E-RABToBeModifiedListBearerModReq, + id-E-RABToBeModifiedListBearerModInd, + id-E-RABToBeModifiedItemBearerModInd, + id-E-RABNotToBeModifiedListBearerModInd, + id-E-RABNotToBeModifiedItemBearerModInd, + id-E-RABModifyListBearerModConf, + id-E-RABModifyItemBearerModConf, + id-E-RABFailedToModifyListBearerModConf, + id-E-RABToBeReleasedListBearerModConf, + id-E-RABToBeReleasedList, + id-E-RABReleasedList, + id-E-RABToBeSetupItemBearerSUReq, + id-E-RABToBeSetupItemCtxtSUReq, + id-E-RABToBeSetupItemHOReq, + id-E-RABToBeSetupListBearerSUReq, + id-E-RABToBeSetupListCtxtSUReq, + id-E-RABToBeSetupListHOReq, + id-E-RABToBeSwitchedDLItem, + id-E-RABToBeSwitchedDLList, + id-E-RABToBeSwitchedULList, + id-E-RABToBeSwitchedULItem, + id-E-RABtoReleaseListHOCmd, + id-ProSeAuthorized, + id-SecurityKey, + id-SecurityContext, + id-ServedGUMMEIs, + id-SONConfigurationTransferECT, + id-SONConfigurationTransferMCT, + id-Source-ToTarget-TransparentContainer, + id-Source-ToTarget-TransparentContainer-Secondary, + id-SourceMME-UE-S1AP-ID, + id-SRVCCOperationNotPossible, + id-SRVCCOperationPossible, + id-SRVCCHOIndication, + id-SubscriberProfileIDforRFP, + id-SupportedTAs, + id-S-TMSI, + id-TAI, + id-TAIItem, + id-TAIList, + id-Target-ToSource-TransparentContainer, + id-Target-ToSource-TransparentContainer-Secondary, + id-TargetID, + id-TimeToWait, + id-TraceActivation, + id-TrafficLoadReductionIndication, + id-E-UTRAN-Trace-ID, + id-UEIdentityIndexValue, + id-UEPagingID, + id-UERadioCapability, + id-UERadioCapabilityForPaging, + id-UTRANtoLTEHOInformationRes, + id-UE-associatedLogicalS1-ConnectionListResAck, + id-UE-associatedLogicalS1-ConnectionItem, + id-UE-RetentionInformation, + id-UESecurityCapabilities, + id-UE-S1AP-IDs, + id-V2XServicesAuthorized, + id-ResetType, + id-MessageIdentifier, + id-SerialNumber, + id-WarningAreaList, + id-RepetitionPeriod, + id-NumberofBroadcastRequest, + id-WarningType, + id-WarningSecurityInfo, + id-DataCodingScheme, + id-WarningMessageContents, + id-BroadcastCompletedAreaList, + id-BroadcastCancelledAreaList, + id-RRC-Establishment-Cause, + id-TraceCollectionEntityIPAddress, + maxnoofTAIs, + maxnoofErrors, + maxnoofE-RABs, + maxnoofIndividualS1ConnectionsToReset, + maxnoofEmergencyAreaID, + maxnoofCellID, + maxnoofTAIforWarning, + maxnoofCellinTAI, + maxnoofCellinEAI, + id-ExtendedRepetitionPeriod, + id-PS-ServiceNotAvailable, + id-RegisteredLAI, + id-GUMMEIList, + id-SourceMME-GUMMEI, + id-MME-UE-S1AP-ID-2, + id-GW-TransportLayerAddress, + id-RelayNode-Indicator, + id-Correlation-ID, + id-MMERelaySupportIndicator, + id-GWContextReleaseIndication, + id-PrivacyIndicator, + id-VoiceSupportMatchIndicator, + id-Tunnel-Information-for-BBF, + id-SIPTO-Correlation-ID, + id-SIPTO-L-GW-TransportLayerAddress, + id-KillAllWarningMessages, + id-TransportInformation, + id-LHN-ID, + id-UserLocationInformation, + id-AdditionalCSFallbackIndicator, + id-ECGIListForRestart, + id-TAIListForRestart, + id-EmergencyAreaIDListForRestart, + id-ExpectedUEBehaviour, + id-Paging-eDRXInformation, + id-extended-UEIdentityIndexValue, + id-CSGMembershipInfo, + id-MME-Group-ID, + id-Additional-GUTI, + id-S1-Message, + id-PWSfailedECGIList, + id-PWSFailureIndication, + id-UE-Usage-Type, + id-UEUserPlaneCIoTSupportIndicator, + id-NB-IoT-DefaultPagingDRX, + id-NB-IoT-Paging-eDRXInformation, + id-CE-mode-B-SupportIndicator, + id-NB-IoT-UEIdentityIndexValue, + id-RRC-Resume-Cause, + id-DCN-ID, + id-ServedDCNs, + id-UESidelinkAggregateMaximumBitrate, + id-DLNASPDUDeliveryAckRequest, + id-Coverage-Level, + id-EnhancedCoverageRestricted, + id-UE-Level-QoS-Parameters, + id-DL-CP-SecurityInformation, + id-UL-CP-SecurityInformation, + id-SecondaryRATDataUsageRequest, + id-SecondaryRATDataUsageReportList, + id-HandoverFlag, + id-NRUESecurityCapabilities, + id-UE-Application-Layer-Measurement-Capability, + id-CE-ModeBRestricted + + +FROM S1AP-Constants; + +-- ************************************************************** +-- +-- Common Container Lists +-- +-- ************************************************************** + +E-RAB-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofE-RABs, {IEsSetParam} } +E-RAB-IE-ContainerPairList { S1AP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxnoofE-RABs, {IEsSetParam} } +ProtocolError-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofE-RABs, {IEsSetParam} } + +-- ************************************************************** +-- +-- HANDOVER PREPARATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Required +-- +-- ************************************************************** + +HandoverRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverRequiredIEs} }, + ... +} + +HandoverRequiredIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-TargetID CRITICALITY reject TYPE TargetID PRESENCE mandatory}| + { ID id-Direct-Forwarding-Path-Availability CRITICALITY ignore TYPE Direct-Forwarding-Path-Availability PRESENCE optional}| + { ID id-SRVCCHOIndication CRITICALITY reject TYPE SRVCCHOIndication PRESENCE optional}| + { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory}| + { ID id-Source-ToTarget-TransparentContainer-Secondary CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE optional}| + { ID id-MSClassmark2 CRITICALITY reject TYPE MSClassmark2 PRESENCE conditional}| + { ID id-MSClassmark3 CRITICALITY ignore TYPE MSClassmark3 PRESENCE conditional}| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional}| + { ID id-PS-ServiceNotAvailable CRITICALITY ignore TYPE PS-ServiceNotAvailable PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- Handover Command +-- +-- ************************************************************** + +HandoverCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCommandIEs} }, + ... +} + +HandoverCommandIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}| + { ID id-NASSecurityParametersfromE-UTRAN CRITICALITY reject TYPE NASSecurityParametersfromE-UTRAN PRESENCE conditional + -- This IE shall be present if HandoverType IE is set to value "LTEtoUTRAN" or "LTEtoGERAN" --}| + { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional}| + { ID id-E-RABtoReleaseListHOCmd CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory}| + { ID id-Target-ToSource-TransparentContainer-Secondary CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +E-RABSubjecttoDataForwardingList ::= E-RAB-IE-ContainerList { {E-RABDataForwardingItemIEs} } + +E-RABDataForwardingItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABDataForwardingItem CRITICALITY ignore TYPE E-RABDataForwardingItem PRESENCE mandatory }, + ... +} + +E-RABDataForwardingItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-transportLayerAddress TransportLayerAddress OPTIONAL, + dL-gTP-TEID GTP-TEID OPTIONAL, + uL-TransportLayerAddress TransportLayerAddress OPTIONAL, + uL-GTP-TEID GTP-TEID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { E-RABDataForwardingItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABDataForwardingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- Handover Preparation Failure +-- +-- ************************************************************** + +HandoverPreparationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverPreparationFailureIEs} }, + ... +} + +HandoverPreparationFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER RESOURCE ALLOCATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Request +-- +-- ************************************************************** + +HandoverRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {HandoverRequestIEs} }, + ... +} + +HandoverRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory}| + { ID id-E-RABToBeSetupListHOReq CRITICALITY reject TYPE E-RABToBeSetupListHOReq PRESENCE mandatory}| + { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}| + { ID id-NASSecurityParameterstoE-UTRAN CRITICALITY reject TYPE NASSecurityParameterstoE-UTRAN PRESENCE conditional + -- This IE shall be present if the Handover Type IE is set to the value "UTRANtoLTE" or "GERANtoLTE" -- }| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional}| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional}| + { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional}| + { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| + { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}| + { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}| + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}, + ... +} + +E-RABToBeSetupListHOReq ::= E-RAB-IE-ContainerList { {E-RABToBeSetupItemHOReqIEs} } + +E-RABToBeSetupItemHOReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemHOReq CRITICALITY reject TYPE E-RABToBeSetupItemHOReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemHOReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + e-RABlevelQosParameters E-RABLevelQoSParameters, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemHOReq-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSetupItemHOReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-Data-Forwarding-Not-Possible CRITICALITY ignore EXTENSION Data-Forwarding-Not-Possible PRESENCE optional}| + { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Handover Request Acknowledge +-- +-- ************************************************************** + +HandoverRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {HandoverRequestAcknowledgeIEs} }, + ... +} + +HandoverRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABAdmittedList CRITICALITY ignore TYPE E-RABAdmittedList PRESENCE mandatory}| + { ID id-E-RABFailedToSetupListHOReqAck CRITICALITY ignore TYPE E-RABFailedtoSetupListHOReqAck PRESENCE optional}| + { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory}| + { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional}| + { ID id-CE-mode-B-SupportIndicator CRITICALITY ignore TYPE CE-mode-B-SupportIndicator PRESENCE optional}, + ... +} + +E-RABAdmittedList ::= E-RAB-IE-ContainerList { {E-RABAdmittedItemIEs} } + +E-RABAdmittedItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABAdmittedItem CRITICALITY ignore TYPE E-RABAdmittedItem PRESENCE mandatory }, + ... +} + +E-RABAdmittedItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + dL-transportLayerAddress TransportLayerAddress OPTIONAL, + dL-gTP-TEID GTP-TEID OPTIONAL, + uL-TransportLayerAddress TransportLayerAddress OPTIONAL, + uL-GTP-TEID GTP-TEID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABAdmittedItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABAdmittedItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABFailedtoSetupListHOReqAck ::= E-RAB-IE-ContainerList { {E-RABFailedtoSetupItemHOReqAckIEs} } + +E-RABFailedtoSetupItemHOReqAckIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABFailedtoSetupItemHOReqAck CRITICALITY ignore TYPE E-RABFailedToSetupItemHOReqAck PRESENCE mandatory }, + ... +} + +E-RABFailedToSetupItemHOReqAck ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { E-RABFailedToSetupItemHOReqAckExtIEs} } OPTIONAL, + ... +} + +E-RABFailedToSetupItemHOReqAckExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Handover Failure +-- +-- ************************************************************** + +HandoverFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverFailureIEs} }, + ... +} + +HandoverFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER NOTIFICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Notify +-- +-- ************************************************************** + +HandoverNotify ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverNotifyIEs} }, + ... +} + +HandoverNotifyIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- PATH SWITCH REQUEST ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Path Switch Request +-- +-- ************************************************************** + +PathSwitchRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestIEs} }, + ... +} + +PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABToBeSwitchedDLList CRITICALITY reject TYPE E-RABToBeSwitchedDLList PRESENCE mandatory}| + { ID id-SourceMME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY ignore TYPE UESecurityCapabilities PRESENCE mandatory}| + { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional}| + { ID id-SourceMME-GUMMEI CRITICALITY ignore TYPE GUMMEI PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}| + { ID id-RRC-Resume-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE optional }| + { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}, + ... +} + +E-RABToBeSwitchedDLList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedDLItemIEs} } + +E-RABToBeSwitchedDLItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSwitchedDLItem CRITICALITY reject TYPE E-RABToBeSwitchedDLItem PRESENCE mandatory }, + ... +} + +E-RABToBeSwitchedDLItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedDLItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSwitchedDLItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Path Switch Request Acknowledge +-- +-- ************************************************************** + +PathSwitchRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestAcknowledgeIEs} }, + ... +} + +PathSwitchRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional}| + { ID id-E-RABToBeSwitchedULList CRITICALITY ignore TYPE E-RABToBeSwitchedULList PRESENCE optional}| + { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| + { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}| + { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}| + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}, + ... +} + +E-RABToBeSwitchedULList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedULItemIEs} } + +E-RABToBeSwitchedULItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSwitchedULItem CRITICALITY ignore TYPE E-RABToBeSwitchedULItem PRESENCE mandatory }, + ... +} + +E-RABToBeSwitchedULItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedULItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSwitchedULItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Path Switch Request Failure +-- +-- ************************************************************** + +PathSwitchRequestFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestFailureIEs} }, + ... +} + +PathSwitchRequestFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER CANCEL ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Cancel +-- +-- ************************************************************** + +HandoverCancel ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCancelIEs} }, + ... +} + +HandoverCancelIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Handover Cancel Request Acknowledge +-- +-- ************************************************************** + +HandoverCancelAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCancelAcknowledgeIEs} }, + ... +} + +HandoverCancelAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- E-RAB SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Setup Request +-- +-- ************************************************************** + +E-RABSetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABSetupRequestIEs} }, + ... +} + +E-RABSetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeSetupListBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupListBearerSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupListBearerSUReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemBearerSUReqIEs} } + +E-RABToBeSetupItemBearerSUReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupItemBearerSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemBearerSUReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABlevelQoSParameters E-RABLevelQoSParameters, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + nAS-PDU NAS-PDU, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemBearerSUReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeSetupItemBearerSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- E-RAB Setup Response +-- +-- ************************************************************** + +E-RABSetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABSetupResponseIEs} }, + ... +} + +E-RABSetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABSetupListBearerSURes CRITICALITY ignore TYPE E-RABSetupListBearerSURes PRESENCE optional }| + { ID id-E-RABFailedToSetupListBearerSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABSetupListBearerSURes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemBearerSUResIEs} } + +E-RABSetupItemBearerSUResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABSetupItemBearerSURes CRITICALITY ignore TYPE E-RABSetupItemBearerSURes PRESENCE mandatory }, + ... +} + +E-RABSetupItemBearerSURes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemBearerSUResExtIEs} } OPTIONAL, + ... +} + + +E-RABSetupItemBearerSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- E-RAB MODIFY ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Modify Request +-- +-- ************************************************************** + +E-RABModifyRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABModifyRequestIEs} }, + ... +} + +E-RABModifyRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeModifiedListBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedListBearerModReq PRESENCE mandatory }| + { ID id-SecondaryRATDataUsageRequest CRITICALITY ignore TYPE SecondaryRATDataUsageRequest PRESENCE optional }, + ... +} + +E-RABToBeModifiedListBearerModReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeModifiedItemBearerModReqIEs} } + +E-RABToBeModifiedItemBearerModReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeModifiedItemBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModReq PRESENCE mandatory }, + ... +} + +E-RABToBeModifiedItemBearerModReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABLevelQoSParameters E-RABLevelQoSParameters, + nAS-PDU NAS-PDU, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeModifyItemBearerModReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeModifyItemBearerModReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-TransportInformation CRITICALITY reject EXTENSION TransportInformation PRESENCE optional}, + ... +} + + + +-- ************************************************************** +-- +-- E-RAB Modify Response +-- +-- ************************************************************** + +E-RABModifyResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABModifyResponseIEs} }, + ... +} + +E-RABModifyResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABModifyListBearerModRes CRITICALITY ignore TYPE E-RABModifyListBearerModRes PRESENCE optional }| + { ID id-E-RABFailedToModifyList CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }| + { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional }, + ... +} + + +E-RABModifyListBearerModRes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModResIEs} } + +E-RABModifyItemBearerModResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABModifyItemBearerModRes CRITICALITY ignore TYPE E-RABModifyItemBearerModRes PRESENCE mandatory}, + ... +} + +E-RABModifyItemBearerModRes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModResExtIEs} } OPTIONAL, + ... +} + + +E-RABModifyItemBearerModResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + + +-- ************************************************************** +-- +-- E-RAB RELEASE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Release Command +-- +-- ************************************************************** + +E-RABReleaseCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABReleaseCommandIEs} }, + ... +} + +E-RABReleaseCommandIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }| + { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- E-RAB Release Response +-- +-- ************************************************************** + +E-RABReleaseResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { E-RABReleaseResponseIEs } }, + ... +} + +E-RABReleaseResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABReleaseListBearerRelComp CRITICALITY ignore TYPE E-RABReleaseListBearerRelComp PRESENCE optional }| + { ID id-E-RABFailedToReleaseList CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }| +-- Extension for Release 12 to support User Location Information -- + { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }| + { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional }, + ... +} + + +E-RABReleaseListBearerRelComp ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABReleaseItemBearerRelCompIEs} } + +E-RABReleaseItemBearerRelCompIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABReleaseItemBearerRelComp CRITICALITY ignore TYPE E-RABReleaseItemBearerRelComp PRESENCE mandatory }, + ... +} + +E-RABReleaseItemBearerRelComp ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABReleaseItemBearerRelCompExtIEs} } OPTIONAL, + ... +} + + +E-RABReleaseItemBearerRelCompExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- E-RAB RELEASE INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Release Indication +-- +-- ************************************************************** + +E-RABReleaseIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABReleaseIndicationIEs} }, + ... +} + +E-RABReleaseIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }| +-- Extension for Release 12 to support User Location Information -- + { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }| + { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- INITIAL CONTEXT SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Initial Context Setup Request +-- +-- ************************************************************** + +InitialContextSetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupRequestIEs} }, + ... +} + +InitialContextSetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory}| + { ID id-E-RABToBeSetupListCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupListCtxtSUReq PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory}| + { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE mandatory}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| + { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional}| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional}| + { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional}| + { ID id-AdditionalCSFallbackIndicator CRITICALITY ignore TYPE AdditionalCSFallbackIndicator PRESENCE conditional}| + { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| + { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}| + { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}| + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}, + ... +} + + + + +E-RABToBeSetupListCtxtSUReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemCtxtSUReqIEs} } + +E-RABToBeSetupItemCtxtSUReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupItemCtxtSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemCtxtSUReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABlevelQoSParameters E-RABLevelQoSParameters, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + nAS-PDU NAS-PDU OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemCtxtSUReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeSetupItemCtxtSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- Initial Context Setup Response +-- +-- ************************************************************** + +InitialContextSetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupResponseIEs} }, + ... +} + +InitialContextSetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABSetupListCtxtSURes CRITICALITY ignore TYPE E-RABSetupListCtxtSURes PRESENCE mandatory }| + { ID id-E-RABFailedToSetupListCtxtSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABSetupListCtxtSURes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemCtxtSUResIEs} } + +E-RABSetupItemCtxtSUResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABSetupItemCtxtSURes CRITICALITY ignore TYPE E-RABSetupItemCtxtSURes PRESENCE mandatory }, + ... +} + +E-RABSetupItemCtxtSURes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemCtxtSUResExtIEs} } OPTIONAL, + ... +} + + +E-RABSetupItemCtxtSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Initial Context Setup Failure +-- +-- ************************************************************** + +InitialContextSetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupFailureIEs} }, + ... +} + +InitialContextSetupFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- PAGING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + + +-- ************************************************************** +-- +-- Paging +-- +-- ************************************************************** + +Paging ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{PagingIEs}}, + ... +} + +PagingIEs S1AP-PROTOCOL-IES ::= { + { ID id-UEIdentityIndexValue CRITICALITY ignore TYPE UEIdentityIndexValue PRESENCE mandatory}| + { ID id-UEPagingID CRITICALITY ignore TYPE UEPagingID PRESENCE mandatory}| + { ID id-pagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional}| + { ID id-CNDomain CRITICALITY ignore TYPE CNDomain PRESENCE mandatory}| + { ID id-TAIList CRITICALITY ignore TYPE TAIList PRESENCE mandatory}| + { ID id-CSG-IdList CRITICALITY ignore TYPE CSG-IdList PRESENCE optional}| + { ID id-PagingPriority CRITICALITY ignore TYPE PagingPriority PRESENCE optional}| + { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional}| +-- Extension for Release 13 to support Paging Optimisation and Coverage Enhancement paging –- + { ID id-AssistanceDataForPaging CRITICALITY ignore TYPE AssistanceDataForPaging PRESENCE optional}| + { ID id-Paging-eDRXInformation CRITICALITY ignore TYPE Paging-eDRXInformation PRESENCE optional}| + { ID id-extended-UEIdentityIndexValue CRITICALITY ignore TYPE Extended-UEIdentityIndexValue PRESENCE optional}| + { ID id-NB-IoT-Paging-eDRXInformation CRITICALITY ignore TYPE NB-IoT-Paging-eDRXInformation PRESENCE optional}| + { ID id-NB-IoT-UEIdentityIndexValue CRITICALITY ignore TYPE NB-IoT-UEIdentityIndexValue PRESENCE optional}| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}| + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}, + ... +} + +TAIList::= SEQUENCE (SIZE(1.. maxnoofTAIs)) OF ProtocolIE-SingleContainer {{TAIItemIEs}} + +TAIItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-TAIItem CRITICALITY ignore TYPE TAIItem PRESENCE mandatory }, + ... +} + +TAIItem ::= SEQUENCE { + tAI TAI, + iE-Extensions ProtocolExtensionContainer { {TAIItemExtIEs} } OPTIONAL, + ... +} + + +TAIItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- UE CONTEXT RELEASE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Release Request +-- +-- ************************************************************** + +UEContextReleaseRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseRequest-IEs}}, + ... +} + +UEContextReleaseRequest-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-GWContextReleaseIndication CRITICALITY reject TYPE GWContextReleaseIndication PRESENCE optional }| + { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- UE Context Release Command +-- +-- ************************************************************** + +UEContextReleaseCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseCommand-IEs}}, + ... +} + +UEContextReleaseCommand-IEs S1AP-PROTOCOL-IES ::= { + { ID id-UE-S1AP-IDs CRITICALITY reject TYPE UE-S1AP-IDs PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UE Context Release Complete +-- +-- ************************************************************** + +UEContextReleaseComplete ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseComplete-IEs}}, + ... +} + +UEContextReleaseComplete-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| +-- Extension for Release 12 to support User Location Information -- + { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional}| +-- Extension for Release 13 to support Paging Optimisation + { ID id-InformationOnRecommendedCellsAndENBsForPaging CRITICALITY ignore TYPE InformationOnRecommendedCellsAndENBsForPaging PRESENCE optional}| +-- Extension for Release 13 to support coverage enhancement paging – + { ID id-CellIdentifierAndCELevelForCECapableUEs CRITICALITY ignore TYPE CellIdentifierAndCELevelForCECapableUEs PRESENCE optional}| + { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- UE CONTEXT MODIFICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Modification Request +-- +-- ************************************************************** + +UEContextModificationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationRequestIEs} }, + ... +} + +UEContextModificationRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE optional}| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| + { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional}| + { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}| + { ID id-AdditionalCSFallbackIndicator CRITICALITY ignore TYPE AdditionalCSFallbackIndicator PRESENCE conditional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-SRVCCOperationNotPossible CRITICALITY ignore TYPE SRVCCOperationNotPossible PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| + { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}| + { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}, + ... +} +-- ************************************************************** +-- +-- UE Context Modification Response +-- +-- ************************************************************** + +UEContextModificationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationResponseIEs} }, + ... +} + +UEContextModificationResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- UE Context Modification Failure +-- +-- ************************************************************** + +UEContextModificationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationFailureIEs} }, + ... +} + +UEContextModificationFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- UE RADIO CAPABILITY MATCH ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Radio Capability Match Request +-- +-- ************************************************************** + +UERadioCapabilityMatchRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UERadioCapabilityMatchRequestIEs} }, + ... +} + +UERadioCapabilityMatchRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- UE Radio Capability Match Response +-- +-- ************************************************************** + +UERadioCapabilityMatchResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UERadioCapabilityMatchResponseIEs} }, + ... +} + +UERadioCapabilityMatchResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-VoiceSupportMatchIndicator CRITICALITY reject TYPE VoiceSupportMatchIndicator PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- NAS TRANSPORT ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- DOWNLINK NAS TRANSPORT +-- +-- ************************************************************** + +DownlinkNASTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkNASTransport-IEs}}, + ... +} + +DownlinkNASTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}| + { ID id-DLNASPDUDeliveryAckRequest CRITICALITY ignore TYPE DLNASPDUDeliveryAckRequest PRESENCE optional}| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}| + { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}| + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- INITIAL UE MESSAGE +-- +-- ************************************************************** + +InitialUEMessage ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{InitialUEMessage-IEs}}, + ... +} + +InitialUEMessage-IEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}| + { ID id-TAI CRITICALITY reject TYPE TAI PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-RRC-Establishment-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE mandatory}| + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE optional}| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional}| + { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-RelayNode-Indicator CRITICALITY reject TYPE RelayNode-Indicator PRESENCE optional}| + { ID id-GUMMEIType CRITICALITY ignore TYPE GUMMEIType PRESENCE optional}| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}| + { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}| + { ID id-MME-Group-ID CRITICALITY ignore TYPE MME-Group-ID PRESENCE optional}| + { ID id-UE-Usage-Type CRITICALITY ignore TYPE UE-Usage-Type PRESENCE optional}| + { ID id-CE-mode-B-SupportIndicator CRITICALITY ignore TYPE CE-mode-B-SupportIndicator PRESENCE optional}| + { ID id-DCN-ID CRITICALITY ignore TYPE DCN-ID PRESENCE optional}| + { ID id-Coverage-Level CRITICALITY ignore TYPE Coverage-Level PRESENCE optional}| + { ID id-UE-Application-Layer-Measurement-Capability CRITICALITY ignore TYPE UE-Application-Layer-Measurement-Capability PRESENCE optional}, + + ... +} + + +-- ************************************************************** +-- +-- UPLINK NAS TRANSPORT +-- +-- ************************************************************** + +UplinkNASTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkNASTransport-IEs}}, + ... +} + +UplinkNASTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| + { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, + ... +} +-- ************************************************************** +-- +-- NAS NON DELIVERY INDICATION +-- +-- ************************************************************** + +NASNonDeliveryIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{NASNonDeliveryIndication-IEs}}, + ... +} + +NASNonDeliveryIndication-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- REROUTE NAS REQUEST +-- +-- ************************************************************** + +RerouteNASRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RerouteNASRequest-IEs}}, + ... +} + +RerouteNASRequest-IEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-S1-Message CRITICALITY reject TYPE OCTET STRING PRESENCE mandatory}| + { ID id-MME-Group-ID CRITICALITY reject TYPE MME-Group-ID PRESENCE mandatory}| + { ID id-Additional-GUTI CRITICALITY ignore TYPE Additional-GUTI PRESENCE optional}| + { ID id-UE-Usage-Type CRITICALITY ignore TYPE UE-Usage-Type PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- NAS DELIVERY INDICATION +-- +-- ************************************************************** + +NASDeliveryIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { NASDeliveryIndicationIEs} }, + ... +} + +NASDeliveryIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- RESET ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Reset +-- +-- ************************************************************** + +Reset ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ResetIEs} }, + ... +} + +ResetIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-ResetType CRITICALITY reject TYPE ResetType PRESENCE mandatory }, + ... +} + +ResetType ::= CHOICE { + s1-Interface ResetAll, + partOfS1-Interface UE-associatedLogicalS1-ConnectionListRes, + ... +} + + + +ResetAll ::= ENUMERATED { + reset-all, + ... +} + +UE-associatedLogicalS1-ConnectionListRes ::= SEQUENCE (SIZE(1.. maxnoofIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemRes } } + +UE-associatedLogicalS1-ConnectionItemRes S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY reject TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- Reset Acknowledge +-- +-- ************************************************************** + +ResetAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} }, + ... +} + +ResetAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionListResAck CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionListResAck PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +UE-associatedLogicalS1-ConnectionListResAck ::= SEQUENCE (SIZE(1.. maxnoofIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemResAck } } + +UE-associatedLogicalS1-ConnectionItemResAck S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- ERROR INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Error Indication +-- +-- ************************************************************** + +ErrorIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ErrorIndicationIEs}}, + ... +} + +ErrorIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE optional }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- S1 SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- S1 Setup Request +-- +-- ************************************************************** + +S1SetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupRequestIEs} }, + ... +} + +S1SetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}| + { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional}| + { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE mandatory}| + { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE mandatory}| + { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}| + { ID id-UE-RetentionInformation CRITICALITY ignore TYPE UE-RetentionInformation PRESENCE optional}| + { ID id-NB-IoT-DefaultPagingDRX CRITICALITY ignore TYPE NB-IoT-DefaultPagingDRX PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- S1 Setup Response +-- +-- ************************************************************** + +S1SetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupResponseIEs} }, + ... +} + + +S1SetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional}| + { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE mandatory}| + { ID id-RelativeMMECapacity CRITICALITY ignore TYPE RelativeMMECapacity PRESENCE mandatory}| + { ID id-MMERelaySupportIndicator CRITICALITY ignore TYPE MMERelaySupportIndicator PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-UE-RetentionInformation CRITICALITY ignore TYPE UE-RetentionInformation PRESENCE optional}| + { ID id-ServedDCNs CRITICALITY ignore TYPE ServedDCNs PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- S1 Setup Failure +-- +-- ************************************************************** + +S1SetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupFailureIEs} }, + ... +} + +S1SetupFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Configuration Update +-- +-- ************************************************************** + +ENBConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateIEs} }, + ... +} + +ENBConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= { + { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional}| + { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE optional}| + { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}| + { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional}| + { ID id-NB-IoT-DefaultPagingDRX CRITICALITY ignore TYPE NB-IoT-DefaultPagingDRX PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- eNB Configuration Update Acknowledge +-- +-- ************************************************************** + +ENBConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateAcknowledgeIEs} }, + ... +} + + +ENBConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- eNB Configuration Update Failure +-- +-- ************************************************************** + +ENBConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateFailureIEs} }, + ... +} + +ENBConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, +... +} + + +-- ************************************************************** +-- +-- MME CONFIGURATION UPDATE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Configuration Update +-- +-- ************************************************************** + +MMEConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateIEs} }, + ... +} + +MMEConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= { + { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }| + { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE optional }| + { ID id-RelativeMMECapacity CRITICALITY reject TYPE RelativeMMECapacity PRESENCE optional }| + { ID id-ServedDCNs CRITICALITY ignore TYPE ServedDCNs PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- MME Configuration Update Acknowledge +-- +-- ************************************************************** + +MMEConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateAcknowledgeIEs} }, + ... +} + + +MMEConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- MME Configuration Update Failure +-- +-- ************************************************************** + +MMEConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateFailureIEs} }, + ... +} + +MMEConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- DOWNLINK S1 CDMA2000 TUNNELLING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Downlink S1 CDMA2000 Tunnelling +-- +-- ************************************************************** + +DownlinkS1cdma2000tunnelling ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {DownlinkS1cdma2000tunnellingIEs} }, + ... +} + +DownlinkS1cdma2000tunnellingIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional }| + { ID id-cdma2000HOStatus CRITICALITY ignore TYPE Cdma2000HOStatus PRESENCE optional }| + { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory }| + { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UPLINK S1 CDMA2000 TUNNELLING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Uplink S1 CDMA2000 Tunnelling +-- +-- ************************************************************** + +UplinkS1cdma2000tunnelling ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {UplinkS1cdma2000tunnellingIEs} }, + ... +} + +UplinkS1cdma2000tunnellingIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory }| + { ID id-cdma2000SectorID CRITICALITY reject TYPE Cdma2000SectorID PRESENCE mandatory }| + { ID id-cdma2000HORequiredIndication CRITICALITY ignore TYPE Cdma2000HORequiredIndication PRESENCE optional }| + { ID id-cdma2000OneXSRVCCInfo CRITICALITY reject TYPE Cdma2000OneXSRVCCInfo PRESENCE optional }| + { ID id-cdma2000OneXRAND CRITICALITY reject TYPE Cdma2000OneXRAND PRESENCE optional }| + { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory }| + { ID id-EUTRANRoundTripDelayEstimationInfo CRITICALITY ignore TYPE EUTRANRoundTripDelayEstimationInfo PRESENCE optional }, + -- Extension for Release 9 to assist target HRPD access with the acquisition of the UE -- + ... +} + + +-- ************************************************************** +-- +-- UE CAPABILITY INFO INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Capability Info Indication +-- +-- ************************************************************** + +UECapabilityInfoIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UECapabilityInfoIndicationIEs} }, + ... +} + +UECapabilityInfoIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE mandatory}| + { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional}| + { ID id-UE-Application-Layer-Measurement-Capability CRITICALITY ignore TYPE UE-Application-Layer-Measurement-Capability PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- eNB STATUS TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Status Transfer +-- +-- ************************************************************** + +ENBStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBStatusTransferIEs} }, + ... +} + +ENBStatusTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- MME STATUS TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Status Transfer +-- +-- ************************************************************** + +MMEStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEStatusTransferIEs} }, + ... +} + +MMEStatusTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- TRACE ELEMENTARY PROCEDURES +-- +-- ************************************************************** +-- ************************************************************** +-- +-- Trace Start +-- +-- ************************************************************** + +TraceStart ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {TraceStartIEs} }, + ... +} + +TraceStartIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Trace Failure Indication +-- +-- ************************************************************** + +TraceFailureIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {TraceFailureIndicationIEs} }, + ... +} + +TraceFailureIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- DEACTIVATE TRACE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Deactivate Trace +-- +-- ************************************************************** + +DeactivateTrace ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { DeactivateTraceIEs} }, + ... +} + +DeactivateTraceIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- CELL TRAFFIC TRACE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Cell Traffic Trace +-- +-- ************************************************************** + +CellTrafficTrace ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { CellTrafficTraceIEs } }, + ... +} + +CellTrafficTraceIEs S1AP-PROTOCOL-IES ::= { + {ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + {ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + {ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }| + {ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }| + {ID id-TraceCollectionEntityIPAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE mandatory }| + {ID id-PrivacyIndicator CRITICALITY ignore TYPE PrivacyIndicator PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- LOCATION ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Location Reporting Control +-- +-- ************************************************************** + +LocationReportingControl ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportingControlIEs} }, + ... +} + +LocationReportingControlIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Location Report Failure Indication +-- +-- ************************************************************** + +LocationReportingFailureIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportingFailureIndicationIEs} }, + ... +} + +LocationReportingFailureIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Location Report +-- +-- ************************************************************** + +LocationReport ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportIEs} }, + ... +} + +LocationReportIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory }| + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- OVERLOAD ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Overload Start +-- +-- ************************************************************** + +OverloadStart ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {OverloadStartIEs} }, + ... +} + +OverloadStartIEs S1AP-PROTOCOL-IES ::= { + { ID id-OverloadResponse CRITICALITY reject TYPE OverloadResponse PRESENCE mandatory }| + { ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional }| + { ID id-TrafficLoadReductionIndication CRITICALITY ignore TYPE TrafficLoadReductionIndication PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- Overload Stop +-- +-- ************************************************************** + +OverloadStop ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {OverloadStopIEs} }, + ... +} + +OverloadStopIEs S1AP-PROTOCOL-IES ::= { +{ ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- WRITE-REPLACE WARNING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Write-Replace Warning Request +-- +-- ************************************************************** + + +WriteReplaceWarningRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {WriteReplaceWarningRequestIEs} }, + ... +} + +WriteReplaceWarningRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional }| + { ID id-RepetitionPeriod CRITICALITY reject TYPE RepetitionPeriod PRESENCE mandatory }| + { ID id-ExtendedRepetitionPeriod CRITICALITY reject TYPE ExtendedRepetitionPeriod PRESENCE optional }| + { ID id-NumberofBroadcastRequest CRITICALITY reject TYPE NumberofBroadcastRequest PRESENCE mandatory }| + { ID id-WarningType CRITICALITY ignore TYPE WarningType PRESENCE optional }| + { ID id-WarningSecurityInfo CRITICALITY ignore TYPE WarningSecurityInfo PRESENCE optional }| + { ID id-DataCodingScheme CRITICALITY ignore TYPE DataCodingScheme PRESENCE optional }| + { ID id-WarningMessageContents CRITICALITY ignore TYPE WarningMessageContents PRESENCE optional }| + { ID id-ConcurrentWarningMessageIndicator CRITICALITY reject TYPE ConcurrentWarningMessageIndicator PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- Write-Replace Warning Response +-- +-- ************************************************************** + +WriteReplaceWarningResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {WriteReplaceWarningResponseIEs} }, + ... +} + +WriteReplaceWarningResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-BroadcastCompletedAreaList CRITICALITY ignore TYPE BroadcastCompletedAreaList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- eNB DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Direct Information Transfer +-- +-- ************************************************************** + +ENBDirectInformationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ ENBDirectInformationTransferIEs}}, + ... +} + +ENBDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-Inter-SystemInformationTransferTypeEDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory }, + ... +} + +Inter-SystemInformationTransferType ::= CHOICE { + rIMTransfer RIMTransfer, + ... +} + +-- ************************************************************** +-- +-- MME DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Direct Information Transfer +-- +-- ************************************************************** + +MMEDirectInformationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ MMEDirectInformationTransferIEs}}, + ... +} + +MMEDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-Inter-SystemInformationTransferTypeMDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory }, + ... +} +-- ************************************************************** +-- +-- eNB CONFIGURATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Configuration Transfer +-- +-- ************************************************************** + +ENBConfigurationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ ENBConfigurationTransferIEs}}, + ... +} + +ENBConfigurationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-SONConfigurationTransferECT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- MME CONFIGURATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Configuration Transfer +-- +-- ************************************************************** + +MMEConfigurationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ MMEConfigurationTransferIEs}}, + ... +} + +MMEConfigurationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-SONConfigurationTransferMCT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- PRIVATE MESSAGE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Private Message +-- +-- ************************************************************** + +PrivateMessage ::= SEQUENCE { + privateIEs PrivateIE-Container {{PrivateMessageIEs}}, + ... +} + +PrivateMessageIEs S1AP-PRIVATE-IES ::= { + ... +} + +-- ************************************************************** +-- +-- KILL PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Kill Request +-- +-- ************************************************************** + + +KillRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {KillRequestIEs} }, + ... +} + +KillRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory}| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory}| + { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional}| + { ID id-KillAllWarningMessages CRITICALITY reject TYPE KillAllWarningMessages PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Kill Response +-- +-- ************************************************************** + +KillResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {KillResponseIEs} }, + ... +} + +KillResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-BroadcastCancelledAreaList CRITICALITY ignore TYPE BroadcastCancelledAreaList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- PWS RESTART INDICATION PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- PWS Restart Indication +-- +-- ************************************************************** + +PWSRestartIndication::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ PWSRestartIndicationIEs}}, + ... +} + +PWSRestartIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-ECGIListForRestart CRITICALITY reject TYPE ECGIListForRestart PRESENCE mandatory}| + { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}| + { ID id-TAIListForRestart CRITICALITY reject TYPE TAIListForRestart PRESENCE mandatory}| + { ID id-EmergencyAreaIDListForRestart CRITICALITY reject TYPE EmergencyAreaIDListForRestart PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- PWS Failure Indication +-- +-- ************************************************************** + +PWSFailureIndication::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ PWSFailureIndicationIEs}}, + ... +} + +PWSFailureIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-PWSfailedECGIList CRITICALITY reject TYPE PWSfailedECGIList PRESENCE mandatory}| + { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- LPPA TRANSPORT ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- DOWNLINK UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +DownlinkUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkUEAssociatedLPPaTransport-IEs}}, + ... +} + +DownlinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UPLINK UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +UplinkUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkUEAssociatedLPPaTransport-IEs}}, + ... +} + +UplinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- DOWNLINK NON UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +DownlinkNonUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkNonUEAssociatedLPPaTransport-IEs}}, + ... +} + +DownlinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UPLINK NON UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +UplinkNonUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkNonUEAssociatedLPPaTransport-IEs}}, + ... +} + +UplinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + + +-- ************************************************************** +-- +-- E-RAB MODIFICATION INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Modification Indication +-- +-- ************************************************************** + +E-RABModificationIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { E-RABModificationIndicationIEs} }, + ... +} + +E-RABModificationIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABToBeModifiedListBearerModInd CRITICALITY reject TYPE E-RABToBeModifiedListBearerModInd PRESENCE mandatory}| + { ID id-E-RABNotToBeModifiedListBearerModInd CRITICALITY reject TYPE E-RABNotToBeModifiedListBearerModInd PRESENCE optional}| + { ID id-CSGMembershipInfo CRITICALITY reject TYPE CSGMembershipInfo PRESENCE optional}| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}| + { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional }, + ... +} + +E-RABToBeModifiedListBearerModInd ::= E-RAB-IE-ContainerList { {E-RABToBeModifiedItemBearerModIndIEs} } + +E-RABToBeModifiedItemBearerModIndIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeModifiedItemBearerModInd CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModInd PRESENCE mandatory}, + ... +} + +E-RABToBeModifiedItemBearerModInd ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + dL-GTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABToBeModifiedItemBearerModInd-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeModifiedItemBearerModInd-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABNotToBeModifiedListBearerModInd ::= E-RAB-IE-ContainerList { {E-RABNotToBeModifiedItemBearerModIndIEs} } + +E-RABNotToBeModifiedItemBearerModIndIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABNotToBeModifiedItemBearerModInd CRITICALITY reject TYPE E-RABNotToBeModifiedItemBearerModInd PRESENCE mandatory}, + ... +} + +E-RABNotToBeModifiedItemBearerModInd ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + dL-GTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABNotToBeModifiedItemBearerModInd-ExtIEs} } OPTIONAL, + ... +} + +E-RABNotToBeModifiedItemBearerModInd-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CSGMembershipInfo ::= SEQUENCE { + cSGMembershipStatus CSGMembershipStatus, + cSG-Id CSG-Id, + cellAccessMode CellAccessMode OPTIONAL, + pLMNidentity PLMNidentity OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { CSGMembershipInfo-ExtIEs} } OPTIONAL, + ... +} + +CSGMembershipInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- E-RAB Modification Confirm +-- +-- ************************************************************** + +E-RABModificationConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABModificationConfirmIEs} }, + ... +} + +E-RABModificationConfirmIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABModifyListBearerModConf CRITICALITY ignore TYPE E-RABModifyListBearerModConf PRESENCE optional}| + { ID id-E-RABFailedToModifyListBearerModConf CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-E-RABToBeReleasedListBearerModConf CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}, + ... +} + +E-RABModifyListBearerModConf ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModConfIEs} } + +E-RABModifyItemBearerModConfIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABModifyItemBearerModConf CRITICALITY ignore TYPE E-RABModifyItemBearerModConf PRESENCE mandatory}, + ... +} + +E-RABModifyItemBearerModConf ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModConfExtIEs} } OPTIONAL, + ... +} + + +E-RABModifyItemBearerModConfExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- UE CONTEXT MODIFICATION INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Modification Indication +-- +-- ************************************************************** + +UEContextModificationIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationIndicationIEs} }, + ... +} + +UEContextModificationIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-CSGMembershipInfo CRITICALITY reject TYPE CSGMembershipInfo PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- UE Context Modification Confirm +-- +-- ************************************************************** + +UEContextModificationConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {UEContextModificationConfirmIEs} }, + ... +} + +UEContextModificationConfirmIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- UE CONTEXT SUSPEND ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Suspend Request +-- +-- ************************************************************** + +UEContextSuspendRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextSuspendRequestIEs} }, + ... +} + +UEContextSuspendRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-InformationOnRecommendedCellsAndENBsForPaging CRITICALITY ignore TYPE InformationOnRecommendedCellsAndENBsForPaging PRESENCE optional}| + { ID id-CellIdentifierAndCELevelForCECapableUEs CRITICALITY ignore TYPE CellIdentifierAndCELevelForCECapableUEs PRESENCE optional}| + { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- UE Context Suspend Response +-- +-- ************************************************************** + +UEContextSuspendResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {UEContextSuspendResponseIEs} }, + ... +} + +UEContextSuspendResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- UE CONTEXT RESUME ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Resume Request +-- +-- ************************************************************** + +UEContextResumeRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextResumeRequestIEs} }, + ... +} + +UEContextResumeRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABFailedToResumeListResumeReq CRITICALITY reject TYPE E-RABFailedToResumeListResumeReq PRESENCE optional}| + { ID id-RRC-Resume-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE optional}, + ... +} + +E-RABFailedToResumeListResumeReq ::= E-RAB-IE-ContainerList { {E-RABFailedToResumeItemResumeReqIEs} } + +E-RABFailedToResumeItemResumeReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABFailedToResumeItemResumeReq CRITICALITY reject TYPE E-RABFailedToResumeItemResumeReq PRESENCE mandatory}, + ... +} + +E-RABFailedToResumeItemResumeReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { E-RABFailedToResumeItemResumeReq-ExtIEs} } OPTIONAL, + ... +} + +E-RABFailedToResumeItemResumeReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- UE Context Resume Response +-- +-- ************************************************************** + +UEContextResumeResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextResumeResponseIEs} }, + ... +} + +UEContextResumeResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABFailedToResumeListResumeRes CRITICALITY reject TYPE E-RABFailedToResumeListResumeRes PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE optional}, + ... +} + +E-RABFailedToResumeListResumeRes ::= E-RAB-IE-ContainerList { {E-RABFailedToResumeItemResumeResIEs} } + +E-RABFailedToResumeItemResumeResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABFailedToResumeItemResumeRes CRITICALITY reject TYPE E-RABFailedToResumeItemResumeRes PRESENCE mandatory}, + ... +} + +E-RABFailedToResumeItemResumeRes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { E-RABFailedToResumeItemResumeRes-ExtIEs} } OPTIONAL, + ... +} + +E-RABFailedToResumeItemResumeRes-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- UE Context Resume Failure +-- +-- ************************************************************** + +UEContextResumeFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextResumeFailureIEs} }, + ... +} + +UEContextResumeFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Connection Establishment Indication +-- +-- ************************************************************** + +ConnectionEstablishmentIndication::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ConnectionEstablishmentIndicationIEs} }, + ... +} + +ConnectionEstablishmentIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional }| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional }| + { ID id-DL-CP-SecurityInformation CRITICALITY ignore TYPE DL-CP-SecurityInformation PRESENCE optional }| + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Retrieve UE Information +-- +-- ************************************************************** + +RetrieveUEInformation ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { RetrieveUEInformationIEs} }, + ... +} + +RetrieveUEInformationIEs S1AP-PROTOCOL-IES ::= { + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE mandatory}, +... + +} + + +-- ************************************************************** + +-- UE Information Transfer +-- +-- ************************************************************** +UEInformationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEInformationTransferIEs} }, + ... +} + +UEInformationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE mandatory}| + { ID id-UE-Level-QoS-Parameters CRITICALITY ignore TYPE E-RABLevelQoSParameters PRESENCE optional}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- eNB CP Relocation Indication +-- +-- ************************************************************** + +ENBCPRelocationIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { ENBCPRelocationIndicationIEs} }, + ... +} + +ENBCPRelocationIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| + { ID id-UL-CP-SecurityInformation CRITICALITY reject TYPE UL-CP-SecurityInformation PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- MME CP Relocation Indication +-- +-- ************************************************************** + +MMECPRelocationIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { MMECPRelocationIndicationIEs} }, + ... +} + +MMECPRelocationIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- Secondary RAT Data Usage Report +-- +-- ************************************************************** + +SecondaryRATDataUsageReport ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { SecondaryRATDataUsageReportIEs} }, + ... +} + +SecondaryRATDataUsageReportIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional}| + { ID id-HandoverFlag CRITICALITY ignore TYPE HandoverFlag PRESENCE optional}, + ... +} + +END + + + +-- ************************************************************** +-- +-- Information Element Definitions +-- +-- ************************************************************** + +S1AP-IEs { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-IEs (2) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + id-E-RABInformationListItem, + id-E-RABItem, + id-Bearers-SubjectToStatusTransfer-Item, + id-Time-Synchronisation-Info, + id-x2TNLConfigurationInfo, + id-eNBX2ExtendedTransportLayerAddresses, + id-MDTConfiguration, + id-Time-UE-StayedInCell-EnhancedGranularity, + id-HO-Cause, + id-M3Configuration, + id-M4Configuration, + id-M5Configuration, + id-MDT-Location-Info, + id-SignallingBasedMDTPLMNList, + id-MobilityInformation, + id-ULCOUNTValueExtended, + id-DLCOUNTValueExtended, + id-ReceiveStatusOfULPDCPSDUsExtended, + id-eNBIndirectX2TransportLayerAddresses, + id-Muting-Availability-Indication, + id-Muting-Pattern-Information, + id-NRrestriction, + id-Synchronisation-Information, + id-uE-HistoryInformationFromTheUE, + id-LoggedMBSFNMDT, + id-SON-Information-Report, + id-RecommendedCellItem, + id-RecommendedENBItem, + id-ProSeUEtoNetworkRelaying, + id-ULCOUNTValuePDCP-SNlength18, + id-DLCOUNTValuePDCP-SNlength18, + id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18, + id-M6Configuration, + id-M7Configuration, + id-RAT-Type, + id-extended-e-RAB-MaximumBitrateDL, + id-extended-e-RAB-MaximumBitrateUL, + id-extended-e-RAB-GuaranteedBitrateDL, + id-extended-e-RAB-GuaranteedBitrateUL, + id-extended-uEaggregateMaximumBitRateDL, + id-extended-uEaggregateMaximumBitRateUL, + id-SecondaryRATDataUsageReportItem, + id-E-RABUsageReportItem, + id-UEAppLayerMeasConfig, + id-UnlicensedSpectrumRestriction, + maxnoofCSGs, + maxnoofE-RABs, + maxnoofErrors, + maxnoofBPLMNs, + maxnoofPLMNsPerMME, + maxnoofTACs, + maxnoofEPLMNs, + maxnoofEPLMNsPlusOne, + maxnoofForbLACs, + maxnoofForbTACs, + maxnoofCells, + maxnoofCellID, + maxnoofDCNs, + maxnoofEmergencyAreaID, + maxnoofTAIforWarning, + maxnoofCellinTAI, + maxnoofCellinEAI, + maxnoofeNBX2TLAs, + maxnoofeNBX2ExtTLAs, + maxnoofeNBX2GTPTLAs, + maxnoofRATs, + maxnoofGroupIDs, + maxnoofMMECs, + maxnoofTAforMDT, + maxnoofCellIDforMDT, + maxnoofMDTPLMNs, + maxnoofCellsforRestart, + maxnoofRestartTAIs, + maxnoofRestartEmergencyAreaIDs, + maxnoofMBSFNAreaMDT, + maxEARFCN, + maxnoofCellsineNB, + maxnoofRecommendedCells, + maxnoofRecommendedENBs, + maxnooftimeperiods, + maxnoofCellIDforQMC, + maxnoofTAforQMC, + maxnoofPLMNforQMC + + + +FROM S1AP-Constants + + Criticality, + ProcedureCode, + ProtocolIE-ID, + TriggeringMessage +FROM S1AP-CommonDataTypes + + ProtocolExtensionContainer{}, + S1AP-PROTOCOL-EXTENSION, + ProtocolIE-SingleContainer{}, + S1AP-PROTOCOL-IES + +FROM S1AP-Containers; + +-- A + +Additional-GUTI::= SEQUENCE { + gUMMEI GUMMEI, + m-TMSI M-TMSI, + iE-Extensions ProtocolExtensionContainer { {Additional-GUTI-ExtIEs} } OPTIONAL, + ... +} + +Additional-GUTI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +AreaScopeOfMDT ::= CHOICE { + cellBased CellBasedMDT, + tABased TABasedMDT, + pLMNWide NULL, + ..., + tAIBased TAIBasedMDT +} + + +AreaScopeOfQMC ::= CHOICE { + cellBased CellBasedQMC, + tABased TABasedQMC, + tAIBased TAIBasedQMC, + pLMNAreaBased PLMNAreaBasedQMC, + ... +} + +AllocationAndRetentionPriority ::= SEQUENCE { + priorityLevel PriorityLevel, + pre-emptionCapability Pre-emptionCapability, + pre-emptionVulnerability Pre-emptionVulnerability, + iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, + ... +} + +AllocationAndRetentionPriority-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +AssistanceDataForCECapableUEs ::= SEQUENCE { + cellIdentifierAndCELevelForCECapableUEs CellIdentifierAndCELevelForCECapableUEs, + iE-Extensions ProtocolExtensionContainer { { InformationForCECapableUEs-ExtIEs} } OPTIONAL, + ... +} + +InformationForCECapableUEs-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +AssistanceDataForPaging ::= SEQUENCE { + assistanceDataForRecommendedCells AssistanceDataForRecommendedCells OPTIONAL, + assistanceDataForCECapableUEs AssistanceDataForCECapableUEs OPTIONAL, + pagingAttemptInformation PagingAttemptInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { AssistanceDataForPaging-ExtIEs} } OPTIONAL, + ... +} + +AssistanceDataForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +AssistanceDataForRecommendedCells ::= SEQUENCE { + recommendedCellsForPaging RecommendedCellsForPaging, + iE-Extensions ProtocolExtensionContainer { { AssistanceDataForRecommendedCells-ExtIEs} } OPTIONAL, + ... +} + +AssistanceDataForRecommendedCells-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- B + +Bearers-SubjectToStatusTransferList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { { Bearers-SubjectToStatusTransfer-ItemIEs } } + +Bearers-SubjectToStatusTransfer-ItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-Bearers-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE Bearers-SubjectToStatusTransfer-Item PRESENCE mandatory }, + ... +} + +Bearers-SubjectToStatusTransfer-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-COUNTvalue COUNTvalue, + dL-COUNTvalue COUNTvalue, + receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {Bearers-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL, + ... +} + +Bearers-SubjectToStatusTransfer-ItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-ULCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| + { ID id-DLCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| + { ID id-ReceiveStatusOfULPDCPSDUsExtended CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsExtended PRESENCE optional}| + { ID id-ULCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}| + { ID id-DLCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}| + { ID id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 PRESENCE optional}, + ... +} + +BearerType ::= ENUMERATED { + non-IP, + ... +} + +BitRate ::= INTEGER (0..10000000000) + +BPLMNs ::= SEQUENCE (SIZE(1.. maxnoofBPLMNs)) OF PLMNidentity + +BroadcastCancelledAreaList ::= CHOICE { + cellID-Cancelled CellID-Cancelled, + tAI-Cancelled TAI-Cancelled, + emergencyAreaID-Cancelled EmergencyAreaID-Cancelled, + ... +} + +BroadcastCompletedAreaList ::= CHOICE { + cellID-Broadcast CellID-Broadcast, + tAI-Broadcast TAI-Broadcast, + emergencyAreaID-Broadcast EmergencyAreaID-Broadcast, + ... +} + + +-- C + +CancelledCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CancelledCellinEAI-Item + +CancelledCellinEAI-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CancelledCellinEAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CancelledCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CancelledCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CancelledCellinTAI-Item + +CancelledCellinTAI-Item ::= SEQUENCE{ + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CancelledCellinTAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CancelledCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Cause ::= CHOICE { + radioNetwork CauseRadioNetwork, + transport CauseTransport, + nas CauseNas, + protocol CauseProtocol, + misc CauseMisc, + ... +} + +CauseMisc ::= ENUMERATED { + control-processing-overload, + not-enough-user-plane-processing-resources, + hardware-failure, + om-intervention, + unspecified, + unknown-PLMN, +... +} + +CauseProtocol ::= ENUMERATED { + transfer-syntax-error, + abstract-syntax-error-reject, + abstract-syntax-error-ignore-and-notify, + message-not-compatible-with-receiver-state, + semantic-error, + abstract-syntax-error-falsely-constructed-message, + unspecified, + ... +} + +CauseRadioNetwork ::= ENUMERATED { + unspecified, + tx2relocoverall-expiry, + successful-handover, + release-due-to-eutran-generated-reason, + handover-cancelled, + partial-handover, + ho-failure-in-target-EPC-eNB-or-target-system, + ho-target-not-allowed, + tS1relocoverall-expiry, + tS1relocprep-expiry, + cell-not-available, + unknown-targetID, + no-radio-resources-available-in-target-cell, + unknown-mme-ue-s1ap-id, + unknown-enb-ue-s1ap-id, + unknown-pair-ue-s1ap-id, + handover-desirable-for-radio-reason, + time-critical-handover, + resource-optimisation-handover, + reduce-load-in-serving-cell, + user-inactivity, + radio-connection-with-ue-lost, + load-balancing-tau-required, + cs-fallback-triggered, + ue-not-available-for-ps-service, + radio-resources-not-available, + failure-in-radio-interface-procedure, + invalid-qos-combination, + interrat-redirection, + interaction-with-other-procedure, + unknown-E-RAB-ID, + multiple-E-RAB-ID-instances, + encryption-and-or-integrity-protection-algorithms-not-supported, + s1-intra-system-handover-triggered, + s1-inter-system-handover-triggered, + x2-handover-triggered, + ..., + redirection-towards-1xRTT, + not-supported-QCI-value, + invalid-CSG-Id, + release-due-to-pre-emption + +} + +CauseTransport ::= ENUMERATED { + transport-resource-unavailable, + unspecified, + ... +} + +CauseNas ::= ENUMERATED { + normal-release, + authentication-failure, + detach, + unspecified, + ..., + csg-subscription-expiry +} + +CellAccessMode ::= ENUMERATED { + hybrid, + ... +} + +CellIdentifierAndCELevelForCECapableUEs ::= SEQUENCE { + global-Cell-ID EUTRAN-CGI, + cELevel CELevel, + iE-Extensions ProtocolExtensionContainer { { CellIdentifierAndCELevelForCECapableUEs-ExtIEs} } OPTIONAL, + ... +} + +CellIdentifierAndCELevelForCECapableUEs-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- Coverage Enhancement level encoded according to TS 36.331 [16] -- +CELevel ::= OCTET STRING + +CE-mode-B-SupportIndicator ::= ENUMERATED { + supported, + ... +} + +CellIdentity ::= BIT STRING (SIZE (28)) + +CellID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Broadcast-Item + +CellID-Broadcast-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CellID-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +CellID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellID-Cancelled::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Cancelled-Item + +CellID-Cancelled-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CellID-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +CellID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellBasedMDT::= SEQUENCE { + cellIdListforMDT CellIdListforMDT, + iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +CellBasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF EUTRAN-CGI + +CellBasedQMC::= SEQUENCE { + cellIdListforQMC CellIdListforQMC, + iE-Extensions ProtocolExtensionContainer { {CellBasedQMC-ExtIEs} } OPTIONAL, + ... +} + +CellBasedQMC-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellIdListforQMC ::= SEQUENCE (SIZE(1..maxnoofCellIDforQMC)) OF EUTRAN-CGI + +Cdma2000PDU ::= OCTET STRING + +Cdma2000RATType ::= ENUMERATED { + hRPD, + onexRTT, + ... +} + +Cdma2000SectorID ::= OCTET STRING + +Cdma2000HOStatus ::= ENUMERATED { + hOSuccess, + hOFailure, + ... +} + +Cdma2000HORequiredIndication ::= ENUMERATED { + true, + ... +} + +Cdma2000OneXSRVCCInfo ::= SEQUENCE { + cdma2000OneXMEID Cdma2000OneXMEID, + cdma2000OneXMSI Cdma2000OneXMSI, + cdma2000OneXPilot Cdma2000OneXPilot, + iE-Extensions ProtocolExtensionContainer { {Cdma2000OneXSRVCCInfo-ExtIEs} } OPTIONAL, + ... +} + +Cdma2000OneXSRVCCInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Cdma2000OneXMEID ::= OCTET STRING + +Cdma2000OneXMSI ::= OCTET STRING + +Cdma2000OneXPilot ::= OCTET STRING + +Cdma2000OneXRAND ::= OCTET STRING + + +Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ...} + +CellType ::= SEQUENCE { + cell-Size Cell-Size, + iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL, + ... +} + +CellType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CGI ::= SEQUENCE { + pLMNidentity PLMNidentity, + lAC LAC, + cI CI, + rAC RAC OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL, + ... + } + +CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CI ::= OCTET STRING (SIZE (2)) + +CNDomain ::= ENUMERATED { + ps, + cs +} + +ConcurrentWarningMessageIndicator ::= ENUMERATED { + true +} + +Correlation-ID ::= OCTET STRING (SIZE (4)) + +CSFallbackIndicator ::= ENUMERATED { + cs-fallback-required, + ..., + cs-fallback-high-priority +} + +AdditionalCSFallbackIndicator ::= ENUMERATED { + no-restriction, + restriction, + ... +} + +CSG-Id ::= BIT STRING (SIZE (27)) + + +CSG-IdList ::= SEQUENCE (SIZE (1.. maxnoofCSGs)) OF CSG-IdList-Item + +CSG-IdList-Item ::= SEQUENCE { + cSG-Id CSG-Id, + iE-Extensions ProtocolExtensionContainer { {CSG-IdList-Item-ExtIEs} } OPTIONAL, + ... +} + +CSG-IdList-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CSGMembershipStatus ::= ENUMERATED { + member, + not-member +} + + +COUNTvalue ::= SEQUENCE { + pDCP-SN PDCP-SN, + hFN HFN, + iE-Extensions ProtocolExtensionContainer { {COUNTvalue-ExtIEs} } OPTIONAL, + ... +} +COUNTvalue-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTValueExtended ::= SEQUENCE { + pDCP-SNExtended PDCP-SNExtended, + hFNModified HFNModified, + iE-Extensions ProtocolExtensionContainer { {COUNTValueExtended-ExtIEs} } OPTIONAL, + ... +} + +COUNTValueExtended-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTvaluePDCP-SNlength18 ::= SEQUENCE { + pDCP-SNlength18 PDCP-SNlength18, + hFNforPDCP-SNlength18 HFNforPDCP-SNlength18, + iE-Extensions ProtocolExtensionContainer { {COUNTvaluePDCP-SNlength18-ExtIEs} } OPTIONAL, + ... +} + +COUNTvaluePDCP-SNlength18-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Coverage-Level ::= ENUMERATED { + extendedcoverage, + ... +} + +CriticalityDiagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-ExtIEs}} OPTIONAL, + ... +} + +CriticalityDiagnostics-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1.. maxnoofErrors)) OF CriticalityDiagnostics-IE-Item + +CriticalityDiagnostics-IE-Item ::= SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-IE-Item-ExtIEs}} OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- D + +DataCodingScheme ::= BIT STRING (SIZE (8)) + +DCN-ID ::= INTEGER (0..65535) + +ServedDCNs ::= SEQUENCE (SIZE(0..maxnoofDCNs)) OF ServedDCNsItem + +ServedDCNsItem ::= SEQUENCE { + dCN-ID DCN-ID, + relativeDCNCapacity RelativeMMECapacity, + iE-Extensions ProtocolExtensionContainer { {ServedDCNsItem-ExtIEs} } OPTIONAL, + ... +} + +ServedDCNsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +DL-CP-SecurityInformation ::= SEQUENCE { + dl-NAS-MAC DL-NAS-MAC, + iE-Extensions ProtocolExtensionContainer { { DL-CP-SecurityInformation-ExtIEs} } OPTIONAL, + ... +} + +DL-CP-SecurityInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +DL-Forwarding ::= ENUMERATED { + dL-Forwarding-proposed, + ... +} + +DL-NAS-MAC ::= BIT STRING (SIZE (16)) + +Direct-Forwarding-Path-Availability ::= ENUMERATED { + directPathAvailable, + ... +} + +Data-Forwarding-Not-Possible ::= ENUMERATED { + data-Forwarding-not-Possible, + ... +} + +DLNASPDUDeliveryAckRequest ::= ENUMERATED { + requested, + ... +} + +-- E + +EARFCN ::= INTEGER(0..maxEARFCN, ...) + +ECGIList ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF EUTRAN-CGI + +PWSfailedECGIList ::= SEQUENCE (SIZE(1..maxnoofCellsineNB)) OF EUTRAN-CGI + +EmergencyAreaIDList ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID + +EmergencyAreaID ::= OCTET STRING (SIZE (3)) + +EmergencyAreaID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Broadcast-Item + +EmergencyAreaID-Broadcast-Item ::= SEQUENCE { + emergencyAreaID EmergencyAreaID, + completedCellinEAI CompletedCellinEAI, + iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +EmergencyAreaID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +EmergencyAreaID-Cancelled ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Cancelled-Item + +EmergencyAreaID-Cancelled-Item ::= SEQUENCE { + emergencyAreaID EmergencyAreaID, + cancelledCellinEAI CancelledCellinEAI, + iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +EmergencyAreaID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompletedCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CompletedCellinEAI-Item + +CompletedCellinEAI-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CompletedCellinEAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CompletedCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ECGI-List ::= SEQUENCE (SIZE(1..maxnoofCellsineNB)) OF EUTRAN-CGI + +EmergencyAreaIDListForRestart ::= SEQUENCE (SIZE(1..maxnoofRestartEmergencyAreaIDs)) OF EmergencyAreaID + +ENB-ID ::= CHOICE { + macroENB-ID BIT STRING (SIZE(20)), + homeENB-ID BIT STRING (SIZE(28)), + ... , + short-macroENB-ID BIT STRING (SIZE(18)), + long-macroENB-ID BIT STRING (SIZE(21)) +} + +GERAN-Cell-ID ::= SEQUENCE { + lAI LAI, + rAC RAC, + cI CI, + iE-Extensions ProtocolExtensionContainer { { GERAN-Cell-ID-ExtIEs} } OPTIONAL, + ... +} + +GERAN-Cell-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Global-ENB-ID ::= SEQUENCE { + pLMNidentity PLMNidentity, + eNB-ID ENB-ID, + iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL, + ... +} + +GlobalENB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +GUMMEIList::= SEQUENCE (SIZE (1.. maxnoofMMECs)) OF GUMMEI + +ENB-StatusTransfer-TransparentContainer ::= SEQUENCE { + bearers-SubjectToStatusTransferList Bearers-SubjectToStatusTransferList, + iE-Extensions ProtocolExtensionContainer { {ENB-StatusTransfer-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +ENB-StatusTransfer-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENB-UE-S1AP-ID ::= INTEGER (0..16777215) + +ENBname ::= PrintableString (SIZE (1..150,...)) + +ENBX2TLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2TLAs)) OF TransportLayerAddress + +EncryptionAlgorithms ::= BIT STRING (SIZE (16,...)) + +EnhancedCoverageRestricted ::= ENUMERATED { + restricted, + ... +} + +CE-ModeBRestricted ::= ENUMERATED { + restricted, + not-restricted, + ... +} + +EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMNidentity +EventType ::= ENUMERATED { + direct, + change-of-serve-cell, + stop-change-of-serve-cell, + ... +} + +E-RAB-ID ::= INTEGER (0..15, ...) + +E-RABInformationList ::= SEQUENCE (SIZE (1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { { E-RABInformationListIEs } } + +E-RABInformationListIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABInformationListItem CRITICALITY ignore TYPE E-RABInformationListItem PRESENCE mandatory }, + ... +} + +E-RABInformationListItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-Forwarding DL-Forwarding OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABInformationListItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABInformationListItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABItemIEs} } + +E-RABItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABItem CRITICALITY ignore TYPE E-RABItem PRESENCE mandatory }, + ... +} + +E-RABItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RABItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +E-RABLevelQoSParameters ::= SEQUENCE { + qCI QCI, + allocationRetentionPriority AllocationAndRetentionPriority, + gbrQosInformation GBR-QosInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABQoSParameters-ExtIEs} } OPTIONAL, + ... +} + +E-RABUsageReportList ::= SEQUENCE (SIZE(1..maxnooftimeperiods)) OF ProtocolIE-SingleContainer { {E-RABUsageReportItemIEs} } + +E-RABUsageReportItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABUsageReportItem CRITICALITY ignore TYPE E-RABUsageReportItem PRESENCE mandatory }, + ... +} + +E-RABUsageReportItem ::= SEQUENCE { + startTimestamp OCTET STRING (SIZE(4)), + endTimestamp OCTET STRING (SIZE(4)), + usageCountUL INTEGER (0..18446744073709551615), + usageCountDL INTEGER (0..18446744073709551615), + iE-Extensions ProtocolExtensionContainer { { E-RABUsageReportItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABUsageReportItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABQoSParameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +EUTRAN-CGI ::= SEQUENCE { + pLMNidentity PLMNidentity, + cell-ID CellIdentity, + iE-Extensions ProtocolExtensionContainer { {EUTRAN-CGI-ExtIEs} } OPTIONAL, + ... +} + +EUTRAN-CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +EUTRANRoundTripDelayEstimationInfo ::= INTEGER (0..2047) + +ExpectedUEBehaviour ::= SEQUENCE { + expectedActivity ExpectedUEActivityBehaviour OPTIONAL, + expectedHOInterval ExpectedHOInterval OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ExpectedUEBehaviour-ExtIEs} } OPTIONAL, + ... +} + +ExpectedUEBehaviour-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ExpectedUEActivityBehaviour ::= SEQUENCE { + expectedActivityPeriod ExpectedActivityPeriod OPTIONAL, + expectedIdlePeriod ExpectedIdlePeriod OPTIONAL, + sourceofUEActivityBehaviourInformation SourceOfUEActivityBehaviourInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ExpectedUEActivityBehaviour-ExtIEs} } OPTIONAL, + ... +} + +ExpectedUEActivityBehaviour-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ExpectedActivityPeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) + +ExpectedIdlePeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) + +SourceOfUEActivityBehaviourInformation ::= ENUMERATED { + subscription-information, + statistics, + ... +} + +ExpectedHOInterval ::= ENUMERATED { + sec15, sec30, sec60, sec90, sec120, sec180, long-time, + ... +} + +ExtendedBitRate ::= INTEGER (10000000001..4000000000000, ...) + +ExtendedRNC-ID ::= INTEGER (4096..65535) + +ExtendedRepetitionPeriod ::= INTEGER (4096..131071) + +Extended-UEIdentityIndexValue ::= BIT STRING (SIZE (14)) + +-- F + +ForbiddenInterRATs ::= ENUMERATED { + all, + geran, + utran, + cdma2000, + ..., + geranandutran, + cdma2000andutran + +} + +ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item + +ForbiddenTAs-Item ::= SEQUENCE { + pLMN-Identity PLMNidentity, + forbiddenTACs ForbiddenTACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC + +ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item + +ForbiddenLAs-Item ::= SEQUENCE { + pLMN-Identity PLMNidentity, + forbiddenLACs ForbiddenLACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenLAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC + +-- G + +GBR-QosInformation ::= SEQUENCE { + e-RAB-MaximumBitrateDL BitRate, + e-RAB-MaximumBitrateUL BitRate, + e-RAB-GuaranteedBitrateDL BitRate, + e-RAB-GuaranteedBitrateUL BitRate, + iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL, + ... +} + +GBR-QosInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for maximum bitrate > 10G bps -- + { ID id-extended-e-RAB-MaximumBitrateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| + { ID id-extended-e-RAB-MaximumBitrateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| + { ID id-extended-e-RAB-GuaranteedBitrateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| + { ID id-extended-e-RAB-GuaranteedBitrateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}, + ...} + + +GTP-TEID ::= OCTET STRING (SIZE (4)) + +GUMMEI ::= SEQUENCE { + pLMN-Identity PLMNidentity, + mME-Group-ID MME-Group-ID, + mME-Code MME-Code, + iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, + ... +} + +GUMMEI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +GUMMEIType ::= ENUMERATED { + native, + mapped, + ... +} + +GWContextReleaseIndication ::= ENUMERATED { + true, + ... +} + +-- H + +HandoverFlag ::= ENUMERATED { + handoverPreparation, + ... +} + + +HandoverRestrictionList ::= SEQUENCE { + servingPLMN PLMNidentity, + equivalentPLMNs EPLMNs OPTIONAL, + forbiddenTAs ForbiddenTAs OPTIONAL, + forbiddenLAs ForbiddenLAs OPTIONAL, + forbiddenInterRATs ForbiddenInterRATs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, + ... +} + +HandoverRestrictionList-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-NRrestriction CRITICALITY ignore EXTENSION NRrestriction PRESENCE optional}| + { ID id-UnlicensedSpectrumRestriction CRITICALITY ignore EXTENSION UnlicensedSpectrumRestriction PRESENCE optional}, + ... +} + +HandoverType ::= ENUMERATED { + intralte, + ltetoutran, + ltetogeran, + utrantolte, + gerantolte, + ... +} + +HFN ::= INTEGER (0..1048575) + +HFNModified ::= INTEGER (0..131071) + +HFNforPDCP-SNlength18 ::= INTEGER (0..16383) + +-- I + +Masked-IMEISV ::= BIT STRING (SIZE (64)) + +ImmediateMDT ::= SEQUENCE { + measurementsToActivate MeasurementsToActivate, + m1reportingTrigger M1ReportingTrigger, + m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL, +-- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1 + m1periodicReporting M1PeriodicReporting OPTIONAL, +-- Included in case of periodic or event-triggered periodic reporting + iE-Extensions ProtocolExtensionContainer { { ImmediateMDT-ExtIEs} } OPTIONAL, + ... +} + +ImmediateMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-M3Configuration CRITICALITY ignore EXTENSION M3Configuration PRESENCE conditional}| + { ID id-M4Configuration CRITICALITY ignore EXTENSION M4Configuration PRESENCE conditional}| + { ID id-M5Configuration CRITICALITY ignore EXTENSION M5Configuration PRESENCE conditional}| + { ID id-MDT-Location-Info CRITICALITY ignore EXTENSION MDT-Location-Info PRESENCE optional}| + { ID id-M6Configuration CRITICALITY ignore EXTENSION M6Configuration PRESENCE conditional}| + { ID id-M7Configuration CRITICALITY ignore EXTENSION M7Configuration PRESENCE conditional}, + ... +} + +IMSI ::= OCTET STRING (SIZE (3..8)) + +InformationOnRecommendedCellsAndENBsForPaging ::= SEQUENCE { + recommendedCellsForPaging RecommendedCellsForPaging, + recommendENBsForPaging RecommendedENBsForPaging, + iE-Extensions ProtocolExtensionContainer { { InformationOnRecommendedCellsAndENBsForPaging-ExtIEs} } OPTIONAL, + ... +} + +InformationOnRecommendedCellsAndENBsForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...)) + +IntendedNumberOfPagingAttempts ::= INTEGER (1..16, ...) + +InterfacesToTrace ::= BIT STRING (SIZE (8)) + + + +-- J +-- K + +KillAllWarningMessages ::= ENUMERATED {true} + +-- L + + +LAC ::= OCTET STRING (SIZE (2)) + +LAI ::= SEQUENCE { + pLMNidentity PLMNidentity, + lAC LAC, + iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL, + ... +} + +LAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +LastVisitedCell-Item ::= CHOICE { + e-UTRAN-Cell LastVisitedEUTRANCellInformation, + uTRAN-Cell LastVisitedUTRANCellInformation, + gERAN-Cell LastVisitedGERANCellInformation, + ... +} +LastVisitedEUTRANCellInformation ::= SEQUENCE { + global-Cell-ID EUTRAN-CGI, + cellType CellType, + time-UE-StayedInCell Time-UE-StayedInCell, + iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, + ... +} +LastVisitedEUTRANCellInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Rel-11 to support enhanced granularity for time UE stayed in cell -- + { ID id-Time-UE-StayedInCell-EnhancedGranularity CRITICALITY ignore EXTENSION Time-UE-StayedInCell-EnhancedGranularity PRESENCE optional}| + { ID id-HO-Cause CRITICALITY ignore EXTENSION Cause PRESENCE optional}, + ... +} +LastVisitedUTRANCellInformation ::= OCTET STRING + +LastVisitedGERANCellInformation ::= CHOICE { + undefined NULL, + ... +} + +L3-Information ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +LPPa-PDU ::= OCTET STRING + +LHN-ID ::= OCTET STRING(SIZE (32..256)) + +Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...} + +ListeningSubframePattern ::= SEQUENCE { + pattern-period ENUMERATED {ms1280, ms2560, ms5120, ms10240, ...}, + pattern-offset INTEGER (0..10239, ...), + iE-Extensions ProtocolExtensionContainer { { ListeningSubframePattern-ExtIEs} } OPTIONAL, + ... +} + +ListeningSubframePattern-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +... +} + +LoggedMDT ::= SEQUENCE { + loggingInterval LoggingInterval, + loggingDuration LoggingDuration, + iE-Extensions ProtocolExtensionContainer { {LoggedMDT-ExtIEs} } OPTIONAL, + ... +} + +LoggedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +... +} + +LoggingInterval ::= ENUMERATED {ms128, ms256, ms512, ms1024, ms2048, ms3072, ms4096, ms6144} + +LoggingDuration ::= ENUMERATED {m10, m20, m40, m60, m90, m120} + +LoggedMBSFNMDT ::= SEQUENCE { + loggingInterval LoggingInterval, + loggingDuration LoggingDuration, + mBSFN-ResultToLog MBSFN-ResultToLog OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { LoggedMBSFNMDT-ExtIEs } } OPTIONAL, + ... +} + +LoggedMBSFNMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- M + +M3Configuration ::= SEQUENCE { + m3period M3period, + iE-Extensions ProtocolExtensionContainer { { M3Configuration-ExtIEs} } OPTIONAL, + ... +} + +M3Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M3period ::= ENUMERATED {ms100, ms1000, ms10000, ...,ms1024, ms1280, ms2048, ms2560, ms5120, ms10240, min1 } + +M4Configuration ::= SEQUENCE { + m4period M4period, + m4-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M4Configuration-ExtIEs} } OPTIONAL, + ... +} + +M4Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + +M5Configuration ::= SEQUENCE { + m5period M5period, + m5-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M5Configuration-ExtIEs} } OPTIONAL, + ... +} + +M5Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + +M6Configuration ::= SEQUENCE { + m6report-Interval M6report-Interval, + m6delay-threshold M6delay-threshold OPTIONAL, +-- This IE shall be present if the M6 Links to log IE is set to “uplink” or to “both-uplink-and-downlink” -- + m6-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M6Configuration-ExtIEs} } OPTIONAL, + ... +} + +M6Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M6report-Interval ::= ENUMERATED { ms1024, ms2048, ms5120, ms10240, ... } + +M6delay-threshold ::= ENUMERATED { ms30, ms40, ms50, ms60, ms70, ms80, ms90, ms100, ms150, ms300, ms500, ms750, ... } + +M7Configuration ::= SEQUENCE { + m7period M7period, + m7-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M7Configuration-ExtIEs} } OPTIONAL, + ... +} + +M7Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M7period ::= INTEGER(1..60, ...) + +MDT-Activation ::= ENUMERATED { + immediate-MDT-only, + immediate-MDT-and-Trace, + logged-MDT-only, + ..., + logged-MBSFN-MDT +} + +MDT-Location-Info ::= BIT STRING (SIZE (8)) + +MDT-Configuration ::= SEQUENCE { + mdt-Activation MDT-Activation, + areaScopeOfMDT AreaScopeOfMDT, + mDTMode MDTMode, + iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTIONAL, + ... +} +MDT-Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-SignallingBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional }, + ... +} + +ManagementBasedMDTAllowed ::= ENUMERATED {allowed, ...} + +MBSFN-ResultToLog ::= SEQUENCE (SIZE(1..maxnoofMBSFNAreaMDT)) OF MBSFN-ResultToLogInfo + +MBSFN-ResultToLogInfo ::= SEQUENCE { + mBSFN-AreaId INTEGER (0..255) OPTIONAL, + carrierFreq EARFCN, + iE-Extensions ProtocolExtensionContainer { { MBSFN-ResultToLogInfo-ExtIEs} } OPTIONAL, + ... +} + +MBSFN-ResultToLogInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMNidentity + +PrivacyIndicator ::= ENUMERATED { + immediate-MDT, + logged-MDT, + ... +} + +MDTMode ::= CHOICE { + immediateMDT ImmediateMDT, + loggedMDT LoggedMDT, + ..., + mDTMode-Extension MDTMode-Extension +} + +MDTMode-Extension ::= ProtocolIE-SingleContainer {{ MDTMode-ExtensionIE }} + +MDTMode-ExtensionIE S1AP-PROTOCOL-IES ::= { + { ID id-LoggedMBSFNMDT CRITICALITY ignore TYPE LoggedMBSFNMDT PRESENCE mandatory} +} + +MeasurementsToActivate ::= BIT STRING (SIZE (8)) + +MeasurementThresholdA2 ::= CHOICE { + threshold-RSRP Threshold-RSRP, + threshold-RSRQ Threshold-RSRQ, + ... +} + +MessageIdentifier ::= BIT STRING (SIZE (16)) + +MobilityInformation ::= BIT STRING (SIZE(32)) + +MMEname ::= PrintableString (SIZE (1..150,...)) + +MMEPagingTarget ::= CHOICE { + global-ENB-ID Global-ENB-ID, + tAI TAI, + ... +} + +MMERelaySupportIndicator ::= ENUMERATED {true, ...} + +MME-Group-ID ::= OCTET STRING (SIZE (2)) + +MME-Code ::= OCTET STRING (SIZE (1)) + +MME-UE-S1AP-ID ::= INTEGER (0..4294967295) +M-TMSI ::= OCTET STRING (SIZE (4)) + +MSClassmark2 ::= OCTET STRING +MSClassmark3 ::= OCTET STRING + +MutingAvailabilityIndication ::= ENUMERATED { + available, + unavailable, + ... +} + + +MutingPatternInformation ::= SEQUENCE { + muting-pattern-period ENUMERATED {ms0, ms1280, ms2560, ms5120, ms10240, ...}, + muting-pattern-offset INTEGER (0..10239, ...) OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {MutingPatternInformation-ExtIEs} } OPTIONAL, + ... +} + +MutingPatternInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- N + +NAS-PDU ::= OCTET STRING + +NASSecurityParametersfromE-UTRAN ::= OCTET STRING + +NASSecurityParameterstoE-UTRAN ::= OCTET STRING + +NB-IoT-DefaultPagingDRX ::= ENUMERATED { + v128, + v256, + v512, + v1024, + ... + } + +NB-IoT-Paging-eDRXInformation ::= SEQUENCE { + nB-IoT-paging-eDRX-Cycle NB-IoT-Paging-eDRX-Cycle, + nB-IoT-pagingTimeWindow NB-IoT-PagingTimeWindow OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { NB-IoT-Paging-eDRXInformation-ExtIEs} } OPTIONAL, + ... +} + +NB-IoT-Paging-eDRXInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +NB-IoT-Paging-eDRX-Cycle ::= ENUMERATED{hf2, hf4, hf6, hf8, hf10, hf12, hf14, hf16, hf32, hf64, hf128, hf256, hf512, hf1024, ...} + +NB-IoT-PagingTimeWindow ::= ENUMERATED{s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, ...} + +NB-IoT-UEIdentityIndexValue ::= BIT STRING (SIZE (12)) + +NextPagingAreaScope ::= ENUMERATED { + same, + changed, + ... +} + +NRencryptionAlgorithms ::= BIT STRING (SIZE (16,...)) +NRintegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...)) + +NRrestriction ::= ENUMERATED { + nRrestricted, + ... +} + +NRUESecurityCapabilities ::= SEQUENCE { + nRencryptionAlgorithms NRencryptionAlgorithms, + nRintegrityProtectionAlgorithms NRintegrityProtectionAlgorithms, + iE-Extensions ProtocolExtensionContainer { { NRUESecurityCapabilities-ExtIEs} } OPTIONAL, +... +} + +NRUESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +NumberofBroadcastRequest ::= INTEGER (0..65535) + +NumberOfBroadcasts ::= INTEGER (0..65535) + +-- O +OldBSS-ToNewBSS-Information ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +OverloadAction ::= ENUMERATED { + reject-non-emergency-mo-dt, + reject-rrc-cr-signalling, + permit-emergency-sessions-and-mobile-terminated-services-only, + ..., + permit-high-priority-sessions-and-mobile-terminated-services-only, + reject-delay-tolerant-access, + permit-high-priority-sessions-and-exception-reporting-and-mobile-terminated-services-only, + not-accept-mo-data-or-delay-tolerant-access-from-CP-CIoT + +} + +OverloadResponse ::= CHOICE { + overloadAction OverloadAction, + ... +} + + +-- P + +PagingAttemptInformation ::= SEQUENCE { + pagingAttemptCount PagingAttemptCount, + intendedNumberOfPagingAttempts IntendedNumberOfPagingAttempts, + nextPagingAreaScope NextPagingAreaScope OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { PagingAttemptInformation-ExtIEs} } OPTIONAL, + ... +} + +PagingAttemptInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +PagingAttemptCount ::= INTEGER (1..16, ...) + +Paging-eDRXInformation ::= SEQUENCE { + paging-eDRX-Cycle Paging-eDRX-Cycle, + pagingTimeWindow PagingTimeWindow OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { Paging-eDRXInformation-ExtIEs} } OPTIONAL, + ... +} + +Paging-eDRXInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Paging-eDRX-Cycle ::= ENUMERATED{hfhalf, hf1, hf2, hf4, hf6, hf8, hf10, hf12, hf14, hf16, hf32, hf64, hf128, hf256, ...} + +PagingTimeWindow ::= ENUMERATED{s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, ...} + +PagingDRX ::= ENUMERATED { + v32, + v64, + v128, + v256, + ... + } + +PagingPriority ::= ENUMERATED { + priolevel1, + priolevel2, + priolevel3, + priolevel4, + priolevel5, + priolevel6, + priolevel7, + priolevel8, + ... +} + +PDCP-SN ::= INTEGER (0..4095) + +PDCP-SNExtended ::= INTEGER (0..32767) + +PDCP-SNlength18 ::= INTEGER (0..262143) + +M1PeriodicReporting ::= SEQUENCE { + reportInterval ReportIntervalMDT, + reportAmount ReportAmountMDT, + iE-Extensions ProtocolExtensionContainer { { M1PeriodicReporting-ExtIEs} } OPTIONAL, + ... +} + +M1PeriodicReporting-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +PLMNidentity ::= TBCD-STRING + +PLMNAreaBasedQMC ::= SEQUENCE { + plmnListforQMC PLMNListforQMC, + iE-Extensions ProtocolExtensionContainer { {PLMNAreaBasedQMC-ExtIEs} } OPTIONAL, + ... +} + +PLMNAreaBasedQMC-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +PLMNListforQMC ::= SEQUENCE (SIZE(1..maxnoofPLMNforQMC)) OF PLMNidentity + +Port-Number ::= OCTET STRING (SIZE (2)) + +Pre-emptionCapability ::= ENUMERATED { + shall-not-trigger-pre-emption, + may-trigger-pre-emption +} + +Pre-emptionVulnerability ::= ENUMERATED { + not-pre-emptable, + pre-emptable +} + +PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) + +ProSeAuthorized ::= SEQUENCE { + proSeDirectDiscovery ProSeDirectDiscovery OPTIONAL, + proSeDirectCommunication ProSeDirectCommunication OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ProSeAuthorized-ExtIEs} } OPTIONAL, + ... +} + +ProSeAuthorized-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-ProSeUEtoNetworkRelaying CRITICALITY ignore EXTENSION ProSeUEtoNetworkRelaying PRESENCE optional}, + ... +} + +ProSeDirectDiscovery ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +ProSeUEtoNetworkRelaying ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +ProSeDirectCommunication ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +PS-ServiceNotAvailable ::= ENUMERATED { + ps-service-not-available, + ... +} + +-- Q + +QCI ::= INTEGER (0..255) + +-- R + +ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) + +ReceiveStatusOfULPDCPSDUsExtended ::= BIT STRING (SIZE(1..16384)) + +ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ::= BIT STRING (SIZE(1..131072)) + +RecommendedCellsForPaging ::= SEQUENCE { + recommendedCellList RecommendedCellList, + iE-Extensions ProtocolExtensionContainer { { RecommendedCellsForPaging-ExtIEs} } OPTIONAL, + ... +} + +RecommendedCellsForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RecommendedCellList ::= SEQUENCE (SIZE(1.. maxnoofRecommendedCells)) OF ProtocolIE-SingleContainer { { RecommendedCellItemIEs } } + +RecommendedCellItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-RecommendedCellItem CRITICALITY ignore TYPE RecommendedCellItem PRESENCE mandatory }, + ... +} + +RecommendedCellItem::= SEQUENCE { + eUTRAN-CGI EUTRAN-CGI, + timeStayedInCell INTEGER (0..4095) OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { RecommendedCellsForPagingItem-ExtIEs} } OPTIONAL, + ... +} + +RecommendedCellsForPagingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RecommendedENBsForPaging ::= SEQUENCE { + recommendedENBList RecommendedENBList, + iE-Extensions ProtocolExtensionContainer { { RecommendedENBsForPaging-ExtIEs} } OPTIONAL, + ... +} + +RecommendedENBsForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RecommendedENBList::= SEQUENCE (SIZE(1.. maxnoofRecommendedENBs)) OF ProtocolIE-SingleContainer { { RecommendedENBItemIEs } } + +RecommendedENBItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-RecommendedENBItem CRITICALITY ignore TYPE RecommendedENBItem PRESENCE mandatory }, + ... +} + +RecommendedENBItem ::= SEQUENCE { + mMEPagingTarget MMEPagingTarget, + iE-Extensions ProtocolExtensionContainer { { RecommendedENBItem-ExtIEs} } OPTIONAL, + ... +} + +RecommendedENBItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RelativeMMECapacity ::= INTEGER (0..255) + +RelayNode-Indicator ::= ENUMERATED { + true, + ... +} + +RAC ::= OCTET STRING (SIZE (1)) + +RAT-Type ::= ENUMERATED { + nbiot, + ... +} + +ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity} + +ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60} + +M1ReportingTrigger ::= ENUMERATED{ + periodic, + a2eventtriggered, + ..., + a2eventtriggered-periodic +} + +RequestType ::= SEQUENCE { + eventType EventType, + reportArea ReportArea, + iE-Extensions ProtocolExtensionContainer { { RequestType-ExtIEs} } OPTIONAL, + ... +} + + +RequestType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RIMTransfer ::= SEQUENCE { + rIMInformation RIMInformation, + rIMRoutingAddress RIMRoutingAddress OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { RIMTransfer-ExtIEs} } OPTIONAL, + ... +} + +RIMTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RIMInformation ::= OCTET STRING + +RIMRoutingAddress ::= CHOICE { + gERAN-Cell-ID GERAN-Cell-ID, + ..., + targetRNC-ID TargetRNC-ID, + eHRPD-Sector-ID OCTET STRING (SIZE(16)) +} + +ReportArea ::= ENUMERATED { + ecgi, + ... +} + +RepetitionPeriod ::= INTEGER (0..4095) + +RLFReportInformation ::= SEQUENCE { + uE-RLF-Report-Container UE-RLF-Report-Container, + uE-RLF-Report-Container-for-extended-bands UE-RLF-Report-Container-for-extended-bands OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{ RLFReportInformation-ExtIEs}} OPTIONAL, + ... +} + +RLFReportInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RNC-ID ::= INTEGER (0..4095) + +RRC-Container ::= OCTET STRING + +RRC-Establishment-Cause ::= ENUMERATED { + emergency, + highPriorityAccess, + mt-Access, + mo-Signalling, + mo-Data, + ..., + delay-TolerantAccess, + mo-VoiceCall, + mo-ExceptionData +} + +ECGIListForRestart ::= SEQUENCE (SIZE(1..maxnoofCellsforRestart)) OF EUTRAN-CGI + +Routing-ID ::= INTEGER (0..255) + +-- S + + +SecurityKey ::= BIT STRING (SIZE(256)) + + + +SecurityContext ::= SEQUENCE { + nextHopChainingCount INTEGER (0..7), + nextHopParameter SecurityKey, + iE-Extensions ProtocolExtensionContainer { { SecurityContext-ExtIEs} } OPTIONAL, + ... +} + + +SecurityContext-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +SecondaryRATType ::= ENUMERATED { + nR, + ..., + unlicensed +} + + +SecondaryRATDataUsageRequest ::= ENUMERATED { + requested, + ... +} + +SecondaryRATDataUsageReportList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {SecondaryRATDataUsageReportItemIEs} } + +SecondaryRATDataUsageReportItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-SecondaryRATDataUsageReportItem CRITICALITY ignore TYPE SecondaryRATDataUsageReportItem PRESENCE mandatory }, + ... +} + +SecondaryRATDataUsageReportItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + secondaryRATType SecondaryRATType, + e-RABUsageReportList E-RABUsageReportList, + iE-Extensions ProtocolExtensionContainer { { SecondaryRATDataUsageReportItem-ExtIEs} } OPTIONAL, + ... +} + +SecondaryRATDataUsageReportItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +SerialNumber ::= BIT STRING (SIZE (16)) + +SONInformation ::= CHOICE{ + sONInformationRequest SONInformationRequest, + sONInformationReply SONInformationReply, + ... +-- ..., +-- sONInformation-Extension SONInformation-Extension +} + +SONInformation-Extension ::= ProtocolIE-SingleContainer {{ SONInformation-ExtensionIE }} + +SONInformation-ExtensionIE S1AP-PROTOCOL-IES ::= { + { ID id-SON-Information-Report CRITICALITY ignore TYPE SONInformationReport PRESENCE mandatory} +} + +SONInformationRequest ::= ENUMERATED { + x2TNL-Configuration-Info, + ..., + time-Synchronisation-Info, + activate-Muting, + deactivate-Muting} + +SONInformationReply ::= SEQUENCE { + x2TNLConfigurationInfo X2TNLConfigurationInfo OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{SONInformationReply-ExtIEs}} OPTIONAL, + ... +} + +SONInformationReply-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Release 9 to transfer Time synchronisation information -- + {ID id-Time-Synchronisation-Info CRITICALITY ignore EXTENSION TimeSynchronisationInfo PRESENCE optional}, + ..., + {ID id-Muting-Pattern-Information CRITICALITY ignore EXTENSION MutingPatternInformation PRESENCE optional} +} + +SONInformationReport ::= CHOICE{ + rLFReportInformation RLFReportInformation, + ... +} + +SONConfigurationTransfer ::= SEQUENCE { + targeteNB-ID TargeteNB-ID, + sourceeNB-ID SourceeNB-ID, + sONInformation SONInformation, + iE-Extensions ProtocolExtensionContainer { { SONConfigurationTransfer-ExtIEs} } OPTIONAL, +... +} + +SONConfigurationTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Release 10 to transfer the IP addresses of the eNB initiating the ANR action -- + {ID id-x2TNLConfigurationInfo CRITICALITY ignore EXTENSION X2TNLConfigurationInfo PRESENCE conditional + -- This IE shall be present if the SON Information IE contains the SON Information Request IE and the SON Information Request IE is set to “X2TNL Configuration Info” --}| +-- Extension for Release 12 to transfer information concerning the source cell of synchronisation and the aggressor cell -- + {ID id-Synchronisation-Information CRITICALITY ignore EXTENSION SynchronisationInformation PRESENCE conditional + -- This IE shall be present if the SON Information IE contains the SON Information Request IE set to “ Activate Muting ” --}, + ... +} + + +SynchronisationInformation ::= SEQUENCE { + sourceStratumLevel StratumLevel OPTIONAL, + listeningSubframePattern ListeningSubframePattern OPTIONAL, + aggressoreCGI-List ECGI-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {SynchronisationInformation-ExtIEs} } OPTIONAL, + ... +} + +SynchronisationInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +Source-ToTarget-TransparentContainer ::= OCTET STRING +-- This IE includes a transparent container from the source RAN node to the target RAN node. +-- The octets of the OCTET STRING are encoded according to the specifications of the target system. + +SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +SourceeNB-ID ::= SEQUENCE { + global-ENB-ID Global-ENB-ID, + selected-TAI TAI, + iE-Extensions ProtocolExtensionContainer { {SourceeNB-ID-ExtIEs} } OPTIONAL +} + +SourceeNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +SRVCCOperationNotPossible ::= ENUMERATED { + notPossible, + ... +} + +SRVCCOperationPossible ::= ENUMERATED { + possible, + ... +} + +SRVCCHOIndication ::= ENUMERATED { + pSandCS, + cSonly, + ... +} + +SourceeNB-ToTargeteNB-TransparentContainer ::= SEQUENCE { + rRC-Container RRC-Container, + e-RABInformationList E-RABInformationList OPTIONAL, + targetCell-ID EUTRAN-CGI, + subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, + uE-HistoryInformation UE-HistoryInformation, + iE-Extensions ProtocolExtensionContainer { {SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + {ID id-MobilityInformation CRITICALITY ignore EXTENSION MobilityInformation PRESENCE optional}| + {ID id-uE-HistoryInformationFromTheUE CRITICALITY ignore EXTENSION UE-HistoryInformationFromTheUE PRESENCE optional}, + ... +} + + +SourceRNC-ToTargetRNC-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + + +ServedGUMMEIs ::= SEQUENCE (SIZE (1.. maxnoofRATs)) OF ServedGUMMEIsItem + +ServedGUMMEIsItem ::= SEQUENCE { + servedPLMNs ServedPLMNs, + servedGroupIDs ServedGroupIDs, + servedMMECs ServedMMECs, + iE-Extensions ProtocolExtensionContainer { {ServedGUMMEIsItem-ExtIEs} } OPTIONAL, + ... +} + +ServedGUMMEIsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedGroupIDs ::= SEQUENCE (SIZE(1.. maxnoofGroupIDs)) OF MME-Group-ID +ServedMMECs ::= SEQUENCE (SIZE(1.. maxnoofMMECs)) OF MME-Code + +ServedPLMNs ::= SEQUENCE (SIZE(1.. maxnoofPLMNsPerMME)) OF PLMNidentity + +SubscriberProfileIDforRFP ::= INTEGER (1..256) + +SupportedTAs ::= SEQUENCE (SIZE(1.. maxnoofTACs)) OF SupportedTAs-Item + +SupportedTAs-Item ::= SEQUENCE { + tAC TAC, + broadcastPLMNs BPLMNs, + iE-Extensions ProtocolExtensionContainer { {SupportedTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +SupportedTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + -- Extension for Release 13 to transfer RAT-Type per TAC -- + {ID id-RAT-Type CRITICALITY reject EXTENSION RAT-Type PRESENCE optional}, + ... +} + +StratumLevel ::= INTEGER (0..3, ...) + +SynchronisationStatus ::= ENUMERATED { synchronous, asynchronous, ... } + +TimeSynchronisationInfo ::= SEQUENCE { + stratumLevel StratumLevel, + synchronisationStatus SynchronisationStatus, + iE-Extensions ProtocolExtensionContainer { { TimeSynchronisationInfo-ExtIEs} } OPTIONAL, + ... +} + +TimeSynchronisationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + -- Extension for Release 12 to transfer Muting Availability Indication -- + {ID id-Muting-Availability-Indication CRITICALITY ignore EXTENSION MutingAvailabilityIndication PRESENCE optional}, + ... +} + +S-TMSI ::= SEQUENCE { + mMEC MME-Code, + m-TMSI M-TMSI, + iE-Extensions ProtocolExtensionContainer { {S-TMSI-ExtIEs} } OPTIONAL, + ... +} + +S-TMSI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- T + +TAC ::= OCTET STRING (SIZE (2)) + +TAIBasedMDT ::= SEQUENCE { + tAIListforMDT TAIListforMDT, + iE-Extensions ProtocolExtensionContainer { {TAIBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TAIBasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAIListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAI + +TAIListforWarning ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI + +TAI ::= SEQUENCE { + pLMNidentity PLMNidentity, + tAC TAC, + iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL, + ... +} + +TAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAI-Broadcast ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Broadcast-Item + +TAI-Broadcast-Item ::= SEQUENCE { + tAI TAI, + completedCellinTAI CompletedCellinTAI, + iE-Extensions ProtocolExtensionContainer { {TAI-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAI-Cancelled ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Cancelled-Item + +TAI-Cancelled-Item ::= SEQUENCE { + tAI TAI, + cancelledCellinTAI CancelledCellinTAI, + iE-Extensions ProtocolExtensionContainer { {TAI-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TABasedMDT ::= SEQUENCE { + tAListforMDT TAListforMDT, + iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TABasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC + +TABasedQMC ::= SEQUENCE { + tAListforQMC TAListforQMC, + iE-Extensions ProtocolExtensionContainer { {TABasedQMC-ExtIEs} } OPTIONAL, + ... +} + +TABasedQMC-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAListforQMC ::= SEQUENCE (SIZE(1..maxnoofTAforQMC)) OF TAC + +TAIBasedQMC ::= SEQUENCE { + tAIListforQMC TAIListforQMC, + iE-Extensions ProtocolExtensionContainer { {TAIBasedQMC-ExtIEs} } OPTIONAL, + ... +} + +TAIBasedQMC-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAIListforQMC ::= SEQUENCE (SIZE(1..maxnoofTAforQMC)) OF TAI + +CompletedCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CompletedCellinTAI-Item + +CompletedCellinTAI-Item ::= SEQUENCE{ + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CompletedCellinTAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CompletedCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TBCD-STRING ::= OCTET STRING (SIZE (3)) + +TargetID ::= CHOICE { + targeteNB-ID TargeteNB-ID, + targetRNC-ID TargetRNC-ID, + cGI CGI, + ... +} + +TargeteNB-ID ::= SEQUENCE { + global-ENB-ID Global-ENB-ID, + selected-TAI TAI, + iE-Extensions ProtocolExtensionContainer { {TargeteNB-ID-ExtIEs} } OPTIONAL, + ... +} + +TargeteNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TargetRNC-ID ::= SEQUENCE { + lAI LAI, + rAC RAC OPTIONAL, + rNC-ID RNC-ID, + extendedRNC-ID ExtendedRNC-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL, + ... + } + + +TargetRNC-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +TargeteNB-ToSourceeNB-TransparentContainer ::= SEQUENCE { + rRC-Container RRC-Container, + iE-Extensions ProtocolExtensionContainer { {TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Target-ToSource-TransparentContainer ::= OCTET STRING +-- This IE includes a transparent container from the target RAN node to the source RAN node. +-- The octets of the OCTET STRING are coded according to the specifications of the target system. + +TargetRNC-ToSourceRNC-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +TargetBSS-ToSourceBSS-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +M1ThresholdEventA2 ::= SEQUENCE { + measurementThreshold MeasurementThresholdA2, + iE-Extensions ProtocolExtensionContainer { { M1ThresholdEventA2-ExtIEs} } OPTIONAL, + ... +} + +M1ThresholdEventA2-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Threshold-RSRP ::= INTEGER(0..97) + +Threshold-RSRQ ::= INTEGER(0..34) + +TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...} + +Time-UE-StayedInCell ::= INTEGER (0..4095) + +Time-UE-StayedInCell-EnhancedGranularity ::= INTEGER (0..40950) + +TransportInformation ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + uL-GTP-TEID GTP-TEID, + ... +} + +TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) + +TraceActivation ::= SEQUENCE { + e-UTRAN-Trace-ID E-UTRAN-Trace-ID, + interfacesToTrace InterfacesToTrace, + traceDepth TraceDepth, + traceCollectionEntityIPAddress TransportLayerAddress, + iE-Extensions ProtocolExtensionContainer { { TraceActivation-ExtIEs} } OPTIONAL, + ... +} + +TraceActivation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Rel-10 to support MDT -- + { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional }| +-- Extension for Rel-15 to support QMC – + { ID id-UEAppLayerMeasConfig CRITICALITY ignore EXTENSION UEAppLayerMeasConfig PRESENCE optional }, + ... +} + +TraceDepth ::= ENUMERATED { + minimum, + medium, + maximum, + minimumWithoutVendorSpecificExtension, + mediumWithoutVendorSpecificExtension, + maximumWithoutVendorSpecificExtension, + ... +} + +E-UTRAN-Trace-ID ::= OCTET STRING (SIZE (8)) + +TrafficLoadReductionIndication ::= INTEGER (1..99) + +TunnelInformation ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + uDP-Port-Number Port-Number OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {Tunnel-Information-ExtIEs} } OPTIONAL, + ... +} + +Tunnel-Information-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + +TAIListForRestart ::= SEQUENCE (SIZE(1..maxnoofRestartTAIs)) OF TAI + +-- U + +UEAggregateMaximumBitrate ::= SEQUENCE { + uEaggregateMaximumBitRateDL BitRate, + uEaggregateMaximumBitRateUL BitRate, + iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrates-ExtIEs} } OPTIONAL, + ... +} + +UEAggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for maximum bitrate > 10G bps -- + { ID id-extended-uEaggregateMaximumBitRateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| + { ID id-extended-uEaggregateMaximumBitRateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}, + ... +} + +UEAppLayerMeasConfig ::= SEQUENCE { + containerForAppLayerMeasConfig OCTET STRING (SIZE(1..1000)), + areaScopeOfQMC AreaScopeOfQMC, + iE-Extensions ProtocolExtensionContainer { {UEAppLayerMeasConfig-ExtIEs} } OPTIONAL, + ... +} + +UEAppLayerMeasConfig-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UE-RetentionInformation ::= ENUMERATED { + ues-retained, + ...} + +UE-S1AP-IDs ::= CHOICE{ + uE-S1AP-ID-pair UE-S1AP-ID-pair, + mME-UE-S1AP-ID MME-UE-S1AP-ID, + ... +} + +UE-S1AP-ID-pair ::= SEQUENCE{ + mME-UE-S1AP-ID MME-UE-S1AP-ID, + eNB-UE-S1AP-ID ENB-UE-S1AP-ID, + iE-Extensions ProtocolExtensionContainer { {UE-S1AP-ID-pair-ExtIEs} } OPTIONAL, + ... +} +UE-S1AP-ID-pair-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +UE-associatedLogicalS1-ConnectionItem ::= SEQUENCE { + mME-UE-S1AP-ID MME-UE-S1AP-ID OPTIONAL, + eNB-UE-S1AP-ID ENB-UE-S1AP-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { UE-associatedLogicalS1-ConnectionItemExtIEs} } OPTIONAL, + ... +} + + +UE-associatedLogicalS1-ConnectionItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UEIdentityIndexValue ::= BIT STRING (SIZE (10)) + +UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item + +UE-HistoryInformationFromTheUE ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the VisitedCellInfoList field contained in the UEInformationResponse message as defined in TS 36.331 [16] + +UEPagingID ::= CHOICE { + s-TMSI S-TMSI, + iMSI IMSI, + ... + } + +UERadioCapability ::= OCTET STRING + +UERadioCapabilityForPaging ::= OCTET STRING + +UE-RLF-Report-Container ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the rlf-Report-r9 field contained in the UEInformationResponse message as defined in TS 36.331 [16] + +UE-RLF-Report-Container-for-extended-bands ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the rlf-Report-v9e0 contained in the UEInformationResponse message as defined in TS 36.331 [16] + +UESecurityCapabilities ::= SEQUENCE { + encryptionAlgorithms EncryptionAlgorithms, + integrityProtectionAlgorithms IntegrityProtectionAlgorithms, + iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL, +... +} + +UESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UESidelinkAggregateMaximumBitrate ::= SEQUENCE { + uESidelinkAggregateMaximumBitRate BitRate, + iE-Extensions ProtocolExtensionContainer { {UE-Sidelink-Aggregate-MaximumBitrates-ExtIEs} } OPTIONAL, + ... +} + +UE-Sidelink-Aggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UE-Usage-Type ::= INTEGER (0..255) + +UL-CP-SecurityInformation ::= SEQUENCE { + ul-NAS-MAC UL-NAS-MAC, + ul-NAS-Count UL-NAS-Count, + iE-Extensions ProtocolExtensionContainer { { UL-CP-SecurityInformation-ExtIEs} } OPTIONAL, + ... +} + +UL-CP-SecurityInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UL-NAS-MAC ::= BIT STRING (SIZE (16)) + +UL-NAS-Count ::= BIT STRING (SIZE (5)) + +UnlicensedSpectrumRestriction ::= ENUMERATED { + unlicensed-restricted, + ... +} + + +UserLocationInformation ::= SEQUENCE { + eutran-cgi EUTRAN-CGI, + tai TAI, + iE-Extensions ProtocolExtensionContainer { { UserLocationInformation-ExtIEs} } OPTIONAL, + ... +} + +UserLocationInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UEUserPlaneCIoTSupportIndicator ::= ENUMERATED { + supported, + ... +} + +UE-Application-Layer-Measurement-Capability ::= BIT STRING (SIZE (8)) + +-- First bit: QoE Measurement + +-- Note that undefined bits are considered as a spare bit and spare bits shall be set to 0 by the transmitter and shall be ignored by the receiver. + +-- V + +VoiceSupportMatchIndicator ::= ENUMERATED { + supported, + not-supported, + ... +} + +V2XServicesAuthorized ::= SEQUENCE { + vehicleUE VehicleUE OPTIONAL, + pedestrianUE PedestrianUE OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {V2XServicesAuthorized-ExtIEs} } OPTIONAL, + ... +} + +V2XServicesAuthorized-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +VehicleUE ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +PedestrianUE ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +-- W + +WarningAreaList ::= CHOICE { + cellIDList ECGIList, + trackingAreaListforWarning TAIListforWarning, + emergencyAreaIDList EmergencyAreaIDList, + ... +} + + +WarningType ::= OCTET STRING (SIZE (2)) + +WarningSecurityInfo ::= OCTET STRING (SIZE (50)) + + +WarningMessageContents ::= OCTET STRING (SIZE(1..9600)) + + +-- X + + +X2TNLConfigurationInfo ::= SEQUENCE { + eNBX2TransportLayerAddresses ENBX2TLAs, + iE-Extensions ProtocolExtensionContainer { { X2TNLConfigurationInfo-ExtIEs} } OPTIONAL, + ... +} + +X2TNLConfigurationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Release 10 to transfer the IPsec and U-plane addresses during ANR action -- + {ID id-eNBX2ExtendedTransportLayerAddresses CRITICALITY ignore EXTENSION ENBX2ExtTLAs PRESENCE optional}| +-- Extension for Release 12 to transfer the IP addresses of the X2 GW -- + {ID id-eNBIndirectX2TransportLayerAddresses CRITICALITY ignore EXTENSION ENBIndirectX2TransportLayerAddresses PRESENCE optional}, + ... +} + +ENBX2ExtTLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2ExtTLAs)) OF ENBX2ExtTLA + +ENBX2ExtTLA ::= SEQUENCE { + iPsecTLA TransportLayerAddress OPTIONAL, + gTPTLAa ENBX2GTPTLAs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ENBX2ExtTLA-ExtIEs} } OPTIONAL, + ... +} + +ENBX2ExtTLA-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENBX2GTPTLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2GTPTLAs)) OF TransportLayerAddress + +ENBIndirectX2TransportLayerAddresses ::= SEQUENCE (SIZE(1..maxnoofeNBX2TLAs)) OF TransportLayerAddress + +-- Y +-- Z + +END + + + +-- ************************************************************** +-- +-- Common definitions +-- +-- ************************************************************** + +S1AP-CommonDataTypes { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-CommonDataTypes (3) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +Criticality ::= ENUMERATED { reject, ignore, notify } + +Presence ::= ENUMERATED { optional, conditional, mandatory } + +PrivateIE-ID ::= CHOICE { + local INTEGER (0..65535), + global OBJECT IDENTIFIER +} + +ProcedureCode ::= INTEGER (0..255) + +ProtocolExtensionID ::= INTEGER (0..65535) + +ProtocolIE-ID ::= INTEGER (0..65535) + +TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome } + +END + + +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +S1AP-Constants { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Constants (4) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + ProcedureCode, + ProtocolIE-ID + +FROM S1AP-CommonDataTypes; + + +-- ************************************************************** +-- +-- Elementary Procedures +-- +-- ************************************************************** + +id-HandoverPreparation ProcedureCode ::= 0 +id-HandoverResourceAllocation ProcedureCode ::= 1 +id-HandoverNotification ProcedureCode ::= 2 +id-PathSwitchRequest ProcedureCode ::= 3 +id-HandoverCancel ProcedureCode ::= 4 +id-E-RABSetup ProcedureCode ::= 5 +id-E-RABModify ProcedureCode ::= 6 +id-E-RABRelease ProcedureCode ::= 7 +id-E-RABReleaseIndication ProcedureCode ::= 8 +id-InitialContextSetup ProcedureCode ::= 9 +id-Paging ProcedureCode ::= 10 +id-downlinkNASTransport ProcedureCode ::= 11 +id-initialUEMessage ProcedureCode ::= 12 +id-uplinkNASTransport ProcedureCode ::= 13 +id-Reset ProcedureCode ::= 14 +id-ErrorIndication ProcedureCode ::= 15 +id-NASNonDeliveryIndication ProcedureCode ::= 16 +id-S1Setup ProcedureCode ::= 17 +id-UEContextReleaseRequest ProcedureCode ::= 18 +id-DownlinkS1cdma2000tunnelling ProcedureCode ::= 19 +id-UplinkS1cdma2000tunnelling ProcedureCode ::= 20 +id-UEContextModification ProcedureCode ::= 21 +id-UECapabilityInfoIndication ProcedureCode ::= 22 +id-UEContextRelease ProcedureCode ::= 23 +id-eNBStatusTransfer ProcedureCode ::= 24 +id-MMEStatusTransfer ProcedureCode ::= 25 +id-DeactivateTrace ProcedureCode ::= 26 +id-TraceStart ProcedureCode ::= 27 +id-TraceFailureIndication ProcedureCode ::= 28 +id-ENBConfigurationUpdate ProcedureCode ::= 29 +id-MMEConfigurationUpdate ProcedureCode ::= 30 +id-LocationReportingControl ProcedureCode ::= 31 +id-LocationReportingFailureIndication ProcedureCode ::= 32 +id-LocationReport ProcedureCode ::= 33 +id-OverloadStart ProcedureCode ::= 34 +id-OverloadStop ProcedureCode ::= 35 +id-WriteReplaceWarning ProcedureCode ::= 36 +id-eNBDirectInformationTransfer ProcedureCode ::= 37 +id-MMEDirectInformationTransfer ProcedureCode ::= 38 +id-PrivateMessage ProcedureCode ::= 39 +id-eNBConfigurationTransfer ProcedureCode ::= 40 +id-MMEConfigurationTransfer ProcedureCode ::= 41 +id-CellTrafficTrace ProcedureCode ::= 42 +id-Kill ProcedureCode ::= 43 +id-downlinkUEAssociatedLPPaTransport ProcedureCode ::= 44 +id-uplinkUEAssociatedLPPaTransport ProcedureCode ::= 45 +id-downlinkNonUEAssociatedLPPaTransport ProcedureCode ::= 46 +id-uplinkNonUEAssociatedLPPaTransport ProcedureCode ::= 47 +id-UERadioCapabilityMatch ProcedureCode ::= 48 +id-PWSRestartIndication ProcedureCode ::= 49 +id-E-RABModificationIndication ProcedureCode ::= 50 +id-PWSFailureIndication ProcedureCode ::= 51 +id-RerouteNASRequest ProcedureCode ::= 52 +id-UEContextModificationIndication ProcedureCode ::= 53 +id-ConnectionEstablishmentIndication ProcedureCode ::= 54 +id-UEContextSuspend ProcedureCode ::= 55 +id-UEContextResume ProcedureCode ::= 56 +id-NASDeliveryIndication ProcedureCode ::= 57 +id-RetrieveUEInformation ProcedureCode ::= 58 +id-UEInformationTransfer ProcedureCode ::= 59 +id-eNBCPRelocationIndication ProcedureCode ::= 60 +id-MMECPRelocationIndication ProcedureCode ::= 61 +id-SecondaryRATDataUsageReport ProcedureCode ::= 62 + +-- ************************************************************** +-- +-- Extension constants +-- +-- ************************************************************** + +maxPrivateIEs INTEGER ::= 65535 +maxProtocolExtensions INTEGER ::= 65535 +maxProtocolIEs INTEGER ::= 65535 +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** + +maxnoofCSGs INTEGER ::= 256 +maxnoofE-RABs INTEGER ::= 256 +maxnoofTAIs INTEGER ::= 256 +maxnoofTACs INTEGER ::= 256 +maxnoofErrors INTEGER ::= 256 +maxnoofBPLMNs INTEGER ::= 6 +maxnoofPLMNsPerMME INTEGER ::= 32 +maxnoofEPLMNs INTEGER ::= 15 +maxnoofEPLMNsPlusOne INTEGER ::= 16 +maxnoofForbLACs INTEGER ::= 4096 +maxnoofForbTACs INTEGER ::= 4096 +maxnoofIndividualS1ConnectionsToReset INTEGER ::= 256 +maxnoofCells INTEGER ::= 16 +maxnoofCellsineNB INTEGER ::= 256 +maxnoofTAIforWarning INTEGER ::= 65535 +maxnoofCellID INTEGER ::= 65535 +maxnoofDCNs INTEGER ::= 32 +maxnoofEmergencyAreaID INTEGER ::= 65535 +maxnoofCellinTAI INTEGER ::= 65535 +maxnoofCellinEAI INTEGER ::= 65535 +maxnoofeNBX2TLAs INTEGER ::= 2 +maxnoofeNBX2ExtTLAs INTEGER ::= 16 +maxnoofeNBX2GTPTLAs INTEGER ::= 16 +maxnoofRATs INTEGER ::= 8 +maxnoofGroupIDs INTEGER ::= 65535 +maxnoofMMECs INTEGER ::= 256 +maxnoofCellIDforMDT INTEGER ::= 32 +maxnoofTAforMDT INTEGER ::= 8 +maxnoofMDTPLMNs INTEGER ::= 16 +maxnoofCellsforRestart INTEGER ::= 256 +maxnoofRestartTAIs INTEGER ::= 2048 +maxnoofRestartEmergencyAreaIDs INTEGER ::= 256 +maxEARFCN INTEGER ::= 262143 +maxnoofMBSFNAreaMDT INTEGER ::= 8 +maxnoofRecommendedCells INTEGER ::= 16 +maxnoofRecommendedENBs INTEGER ::= 16 +maxnooftimeperiods INTEGER ::= 2 +maxnoofCellIDforQMC INTEGER ::= 32 +maxnoofTAforQMC INTEGER ::= 8 +maxnoofPLMNforQMC INTEGER ::= 16 + + + +-- ************************************************************** +-- +-- IEs +-- +-- ************************************************************** + +id-MME-UE-S1AP-ID ProtocolIE-ID ::= 0 +id-HandoverType ProtocolIE-ID ::= 1 +id-Cause ProtocolIE-ID ::= 2 +id-SourceID ProtocolIE-ID ::= 3 +id-TargetID ProtocolIE-ID ::= 4 +id-eNB-UE-S1AP-ID ProtocolIE-ID ::= 8 +id-E-RABSubjecttoDataForwardingList ProtocolIE-ID ::= 12 +id-E-RABtoReleaseListHOCmd ProtocolIE-ID ::= 13 +id-E-RABDataForwardingItem ProtocolIE-ID ::= 14 +id-E-RABReleaseItemBearerRelComp ProtocolIE-ID ::= 15 +id-E-RABToBeSetupListBearerSUReq ProtocolIE-ID ::= 16 +id-E-RABToBeSetupItemBearerSUReq ProtocolIE-ID ::= 17 +id-E-RABAdmittedList ProtocolIE-ID ::= 18 +id-E-RABFailedToSetupListHOReqAck ProtocolIE-ID ::= 19 +id-E-RABAdmittedItem ProtocolIE-ID ::= 20 +id-E-RABFailedtoSetupItemHOReqAck ProtocolIE-ID ::= 21 +id-E-RABToBeSwitchedDLList ProtocolIE-ID ::= 22 +id-E-RABToBeSwitchedDLItem ProtocolIE-ID ::= 23 +id-E-RABToBeSetupListCtxtSUReq ProtocolIE-ID ::= 24 +id-TraceActivation ProtocolIE-ID ::= 25 +id-NAS-PDU ProtocolIE-ID ::= 26 +id-E-RABToBeSetupItemHOReq ProtocolIE-ID ::= 27 +id-E-RABSetupListBearerSURes ProtocolIE-ID ::= 28 +id-E-RABFailedToSetupListBearerSURes ProtocolIE-ID ::= 29 +id-E-RABToBeModifiedListBearerModReq ProtocolIE-ID ::= 30 +id-E-RABModifyListBearerModRes ProtocolIE-ID ::= 31 +id-E-RABFailedToModifyList ProtocolIE-ID ::= 32 +id-E-RABToBeReleasedList ProtocolIE-ID ::= 33 +id-E-RABFailedToReleaseList ProtocolIE-ID ::= 34 +id-E-RABItem ProtocolIE-ID ::= 35 +id-E-RABToBeModifiedItemBearerModReq ProtocolIE-ID ::= 36 +id-E-RABModifyItemBearerModRes ProtocolIE-ID ::= 37 +id-E-RABReleaseItem ProtocolIE-ID ::= 38 +id-E-RABSetupItemBearerSURes ProtocolIE-ID ::= 39 +id-SecurityContext ProtocolIE-ID ::= 40 +id-HandoverRestrictionList ProtocolIE-ID ::= 41 +id-UEPagingID ProtocolIE-ID ::= 43 +id-pagingDRX ProtocolIE-ID ::= 44 +id-TAIList ProtocolIE-ID ::= 46 +id-TAIItem ProtocolIE-ID ::= 47 +id-E-RABFailedToSetupListCtxtSURes ProtocolIE-ID ::= 48 +id-E-RABReleaseItemHOCmd ProtocolIE-ID ::= 49 +id-E-RABSetupItemCtxtSURes ProtocolIE-ID ::= 50 +id-E-RABSetupListCtxtSURes ProtocolIE-ID ::= 51 +id-E-RABToBeSetupItemCtxtSUReq ProtocolIE-ID ::= 52 +id-E-RABToBeSetupListHOReq ProtocolIE-ID ::= 53 +id-GERANtoLTEHOInformationRes ProtocolIE-ID ::= 55 +id-UTRANtoLTEHOInformationRes ProtocolIE-ID ::= 57 +id-CriticalityDiagnostics ProtocolIE-ID ::= 58 +id-Global-ENB-ID ProtocolIE-ID ::= 59 +id-eNBname ProtocolIE-ID ::= 60 +id-MMEname ProtocolIE-ID ::= 61 +id-ServedPLMNs ProtocolIE-ID ::= 63 +id-SupportedTAs ProtocolIE-ID ::= 64 +id-TimeToWait ProtocolIE-ID ::= 65 +id-uEaggregateMaximumBitrate ProtocolIE-ID ::= 66 +id-TAI ProtocolIE-ID ::= 67 +id-E-RABReleaseListBearerRelComp ProtocolIE-ID ::= 69 +id-cdma2000PDU ProtocolIE-ID ::= 70 +id-cdma2000RATType ProtocolIE-ID ::= 71 +id-cdma2000SectorID ProtocolIE-ID ::= 72 +id-SecurityKey ProtocolIE-ID ::= 73 +id-UERadioCapability ProtocolIE-ID ::= 74 +id-GUMMEI-ID ProtocolIE-ID ::= 75 +id-E-RABInformationListItem ProtocolIE-ID ::= 78 +id-Direct-Forwarding-Path-Availability ProtocolIE-ID ::= 79 +id-UEIdentityIndexValue ProtocolIE-ID ::= 80 +id-cdma2000HOStatus ProtocolIE-ID ::= 83 +id-cdma2000HORequiredIndication ProtocolIE-ID ::= 84 +id-E-UTRAN-Trace-ID ProtocolIE-ID ::= 86 +id-RelativeMMECapacity ProtocolIE-ID ::= 87 +id-SourceMME-UE-S1AP-ID ProtocolIE-ID ::= 88 +id-Bearers-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 89 +id-eNB-StatusTransfer-TransparentContainer ProtocolIE-ID ::= 90 +id-UE-associatedLogicalS1-ConnectionItem ProtocolIE-ID ::= 91 +id-ResetType ProtocolIE-ID ::= 92 +id-UE-associatedLogicalS1-ConnectionListResAck ProtocolIE-ID ::= 93 +id-E-RABToBeSwitchedULItem ProtocolIE-ID ::= 94 +id-E-RABToBeSwitchedULList ProtocolIE-ID ::= 95 +id-S-TMSI ProtocolIE-ID ::= 96 +id-cdma2000OneXRAND ProtocolIE-ID ::= 97 +id-RequestType ProtocolIE-ID ::= 98 +id-UE-S1AP-IDs ProtocolIE-ID ::= 99 +id-EUTRAN-CGI ProtocolIE-ID ::= 100 +id-OverloadResponse ProtocolIE-ID ::= 101 +id-cdma2000OneXSRVCCInfo ProtocolIE-ID ::= 102 +id-E-RABFailedToBeReleasedList ProtocolIE-ID ::= 103 +id-Source-ToTarget-TransparentContainer ProtocolIE-ID ::= 104 +id-ServedGUMMEIs ProtocolIE-ID ::= 105 +id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 106 +id-UESecurityCapabilities ProtocolIE-ID ::= 107 +id-CSFallbackIndicator ProtocolIE-ID ::= 108 +id-CNDomain ProtocolIE-ID ::= 109 +id-E-RABReleasedList ProtocolIE-ID ::= 110 +id-MessageIdentifier ProtocolIE-ID ::= 111 +id-SerialNumber ProtocolIE-ID ::= 112 +id-WarningAreaList ProtocolIE-ID ::= 113 +id-RepetitionPeriod ProtocolIE-ID ::= 114 +id-NumberofBroadcastRequest ProtocolIE-ID ::= 115 +id-WarningType ProtocolIE-ID ::= 116 +id-WarningSecurityInfo ProtocolIE-ID ::= 117 +id-DataCodingScheme ProtocolIE-ID ::= 118 +id-WarningMessageContents ProtocolIE-ID ::= 119 +id-BroadcastCompletedAreaList ProtocolIE-ID ::= 120 +id-Inter-SystemInformationTransferTypeEDT ProtocolIE-ID ::= 121 +id-Inter-SystemInformationTransferTypeMDT ProtocolIE-ID ::= 122 +id-Target-ToSource-TransparentContainer ProtocolIE-ID ::= 123 +id-SRVCCOperationPossible ProtocolIE-ID ::= 124 +id-SRVCCHOIndication ProtocolIE-ID ::= 125 +id-NAS-DownlinkCount ProtocolIE-ID ::= 126 +id-CSG-Id ProtocolIE-ID ::= 127 +id-CSG-IdList ProtocolIE-ID ::= 128 +id-SONConfigurationTransferECT ProtocolIE-ID ::= 129 +id-SONConfigurationTransferMCT ProtocolIE-ID ::= 130 +id-TraceCollectionEntityIPAddress ProtocolIE-ID ::= 131 +id-MSClassmark2 ProtocolIE-ID ::= 132 +id-MSClassmark3 ProtocolIE-ID ::= 133 +id-RRC-Establishment-Cause ProtocolIE-ID ::= 134 +id-NASSecurityParametersfromE-UTRAN ProtocolIE-ID ::= 135 +id-NASSecurityParameterstoE-UTRAN ProtocolIE-ID ::= 136 +id-DefaultPagingDRX ProtocolIE-ID ::= 137 +id-Source-ToTarget-TransparentContainer-Secondary ProtocolIE-ID ::= 138 +id-Target-ToSource-TransparentContainer-Secondary ProtocolIE-ID ::= 139 +id-EUTRANRoundTripDelayEstimationInfo ProtocolIE-ID ::= 140 +id-BroadcastCancelledAreaList ProtocolIE-ID ::= 141 +id-ConcurrentWarningMessageIndicator ProtocolIE-ID ::= 142 +id-Data-Forwarding-Not-Possible ProtocolIE-ID ::= 143 +id-ExtendedRepetitionPeriod ProtocolIE-ID ::= 144 +id-CellAccessMode ProtocolIE-ID ::= 145 +id-CSGMembershipStatus ProtocolIE-ID ::= 146 +id-LPPa-PDU ProtocolIE-ID ::= 147 +id-Routing-ID ProtocolIE-ID ::= 148 +id-Time-Synchronisation-Info ProtocolIE-ID ::= 149 +id-PS-ServiceNotAvailable ProtocolIE-ID ::= 150 +id-PagingPriority ProtocolIE-ID ::= 151 +id-x2TNLConfigurationInfo ProtocolIE-ID ::= 152 +id-eNBX2ExtendedTransportLayerAddresses ProtocolIE-ID ::= 153 +id-GUMMEIList ProtocolIE-ID ::= 154 +id-GW-TransportLayerAddress ProtocolIE-ID ::= 155 +id-Correlation-ID ProtocolIE-ID ::= 156 +id-SourceMME-GUMMEI ProtocolIE-ID ::= 157 +id-MME-UE-S1AP-ID-2 ProtocolIE-ID ::= 158 +id-RegisteredLAI ProtocolIE-ID ::= 159 +id-RelayNode-Indicator ProtocolIE-ID ::= 160 +id-TrafficLoadReductionIndication ProtocolIE-ID ::= 161 +id-MDTConfiguration ProtocolIE-ID ::= 162 +id-MMERelaySupportIndicator ProtocolIE-ID ::= 163 +id-GWContextReleaseIndication ProtocolIE-ID ::= 164 +id-ManagementBasedMDTAllowed ProtocolIE-ID ::= 165 +id-PrivacyIndicator ProtocolIE-ID ::= 166 +id-Time-UE-StayedInCell-EnhancedGranularity ProtocolIE-ID ::= 167 +id-HO-Cause ProtocolIE-ID ::= 168 +id-VoiceSupportMatchIndicator ProtocolIE-ID ::= 169 +id-GUMMEIType ProtocolIE-ID ::= 170 +id-M3Configuration ProtocolIE-ID ::= 171 +id-M4Configuration ProtocolIE-ID ::= 172 +id-M5Configuration ProtocolIE-ID ::= 173 +id-MDT-Location-Info ProtocolIE-ID ::= 174 +id-MobilityInformation ProtocolIE-ID ::= 175 +id-Tunnel-Information-for-BBF ProtocolIE-ID ::= 176 +id-ManagementBasedMDTPLMNList ProtocolIE-ID ::= 177 +id-SignallingBasedMDTPLMNList ProtocolIE-ID ::= 178 +id-ULCOUNTValueExtended ProtocolIE-ID ::= 179 +id-DLCOUNTValueExtended ProtocolIE-ID ::= 180 +id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID ::= 181 +id-ECGIListForRestart ProtocolIE-ID ::= 182 +id-SIPTO-Correlation-ID ProtocolIE-ID ::= 183 +id-SIPTO-L-GW-TransportLayerAddress ProtocolIE-ID ::= 184 +id-TransportInformation ProtocolIE-ID ::= 185 +id-LHN-ID ProtocolIE-ID ::= 186 +id-AdditionalCSFallbackIndicator ProtocolIE-ID ::= 187 +id-TAIListForRestart ProtocolIE-ID ::= 188 +id-UserLocationInformation ProtocolIE-ID ::= 189 +id-EmergencyAreaIDListForRestart ProtocolIE-ID ::= 190 +id-KillAllWarningMessages ProtocolIE-ID ::= 191 +id-Masked-IMEISV ProtocolIE-ID ::= 192 +id-eNBIndirectX2TransportLayerAddresses ProtocolIE-ID ::= 193 +id-uE-HistoryInformationFromTheUE ProtocolIE-ID ::= 194 +id-ProSeAuthorized ProtocolIE-ID ::= 195 +id-ExpectedUEBehaviour ProtocolIE-ID ::= 196 +id-LoggedMBSFNMDT ProtocolIE-ID ::= 197 +id-UERadioCapabilityForPaging ProtocolIE-ID ::= 198 +id-E-RABToBeModifiedListBearerModInd ProtocolIE-ID ::= 199 +id-E-RABToBeModifiedItemBearerModInd ProtocolIE-ID ::= 200 +id-E-RABNotToBeModifiedListBearerModInd ProtocolIE-ID ::= 201 +id-E-RABNotToBeModifiedItemBearerModInd ProtocolIE-ID ::= 202 +id-E-RABModifyListBearerModConf ProtocolIE-ID ::= 203 +id-E-RABModifyItemBearerModConf ProtocolIE-ID ::= 204 +id-E-RABFailedToModifyListBearerModConf ProtocolIE-ID ::= 205 +id-SON-Information-Report ProtocolIE-ID ::= 206 +id-Muting-Availability-Indication ProtocolIE-ID ::= 207 +id-Muting-Pattern-Information ProtocolIE-ID ::= 208 +id-Synchronisation-Information ProtocolIE-ID ::= 209 +id-E-RABToBeReleasedListBearerModConf ProtocolIE-ID ::= 210 +id-AssistanceDataForPaging ProtocolIE-ID ::= 211 +id-CellIdentifierAndCELevelForCECapableUEs ProtocolIE-ID ::= 212 +id-InformationOnRecommendedCellsAndENBsForPaging ProtocolIE-ID ::= 213 +id-RecommendedCellItem ProtocolIE-ID ::= 214 +id-RecommendedENBItem ProtocolIE-ID ::= 215 +id-ProSeUEtoNetworkRelaying ProtocolIE-ID ::= 216 +id-ULCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 217 +id-DLCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 218 +id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ProtocolIE-ID ::= 219 +id-M6Configuration ProtocolIE-ID ::= 220 +id-M7Configuration ProtocolIE-ID ::= 221 +id-PWSfailedECGIList ProtocolIE-ID ::= 222 +id-MME-Group-ID ProtocolIE-ID ::= 223 +id-Additional-GUTI ProtocolIE-ID ::= 224 +id-S1-Message ProtocolIE-ID ::= 225 +id-CSGMembershipInfo ProtocolIE-ID ::= 226 +id-Paging-eDRXInformation ProtocolIE-ID ::= 227 +id-UE-RetentionInformation ProtocolIE-ID ::= 228 +id-UE-Usage-Type ProtocolIE-ID ::= 230 +id-extended-UEIdentityIndexValue ProtocolIE-ID ::= 231 +id-RAT-Type ProtocolIE-ID ::= 232 +id-BearerType ProtocolIE-ID ::= 233 +id-NB-IoT-DefaultPagingDRX ProtocolIE-ID ::= 234 +id-E-RABFailedToResumeListResumeReq ProtocolIE-ID ::= 235 +id-E-RABFailedToResumeItemResumeReq ProtocolIE-ID ::= 236 +id-E-RABFailedToResumeListResumeRes ProtocolIE-ID ::= 237 +id-E-RABFailedToResumeItemResumeRes ProtocolIE-ID ::= 238 +id-NB-IoT-Paging-eDRXInformation ProtocolIE-ID ::= 239 +id-V2XServicesAuthorized ProtocolIE-ID ::= 240 +id-UEUserPlaneCIoTSupportIndicator ProtocolIE-ID ::= 241 +id-CE-mode-B-SupportIndicator ProtocolIE-ID ::= 242 +id-SRVCCOperationNotPossible ProtocolIE-ID ::= 243 +id-NB-IoT-UEIdentityIndexValue ProtocolIE-ID ::= 244 +id-RRC-Resume-Cause ProtocolIE-ID ::= 245 +id-DCN-ID ProtocolIE-ID ::= 246 +id-ServedDCNs ProtocolIE-ID ::= 247 +id-UESidelinkAggregateMaximumBitrate ProtocolIE-ID ::= 248 +id-DLNASPDUDeliveryAckRequest ProtocolIE-ID ::= 249 +id-Coverage-Level ProtocolIE-ID ::= 250 +id-EnhancedCoverageRestricted ProtocolIE-ID ::= 251 +id-UE-Level-QoS-Parameters ProtocolIE-ID ::= 252 +id-DL-CP-SecurityInformation ProtocolIE-ID ::= 253 +id-UL-CP-SecurityInformation ProtocolIE-ID ::= 254 +id-extended-e-RAB-MaximumBitrateDL ProtocolIE-ID ::= 255 +id-extended-e-RAB-MaximumBitrateUL ProtocolIE-ID ::= 256 +id-extended-e-RAB-GuaranteedBitrateDL ProtocolIE-ID ::= 257 +id-extended-e-RAB-GuaranteedBitrateUL ProtocolIE-ID ::= 258 +id-extended-uEaggregateMaximumBitRateDL ProtocolIE-ID ::= 259 +id-extended-uEaggregateMaximumBitRateUL ProtocolIE-ID ::= 260 +id-NRrestriction ProtocolIE-ID ::= 261 +id-UEAppLayerMeasConfig ProtocolIE-ID ::= 262 +id-UE-Application-Layer-Measurement-Capability ProtocolIE-ID ::= 263 +id-SecondaryRATDataUsageReportList ProtocolIE-ID ::= 264 +id-SecondaryRATDataUsageReportItem ProtocolIE-ID ::= 265 +id-HandoverFlag ProtocolIE-ID ::= 266 +id-E-RABUsageReportItem ProtocolIE-ID ::= 267 +id-SecondaryRATDataUsageRequest ProtocolIE-ID ::= 268 +id-NRUESecurityCapabilities ProtocolIE-ID ::= 269 +id-UnlicensedSpectrumRestriction ProtocolIE-ID ::= 270 +id-CE-ModeBRestricted ProtocolIE-ID ::= 271 + +END + + +-- ************************************************************** +-- +-- Container definitions +-- +-- ************************************************************** + +S1AP-Containers { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Containers (5) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + Presence, + PrivateIE-ID, + ProtocolExtensionID, + ProtocolIE-ID +FROM S1AP-CommonDataTypes + + maxPrivateIEs, + maxProtocolExtensions, + maxProtocolIEs +FROM S1AP-Constants; + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +S1AP-PROTOCOL-IES ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +S1AP-PROTOCOL-IES-PAIR ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &firstCriticality Criticality, + &FirstValue, + &secondCriticality Criticality, + &SecondValue, + &presence Presence +} +WITH SYNTAX { + ID &id + FIRST CRITICALITY &firstCriticality + FIRST TYPE &FirstValue + SECOND CRITICALITY &secondCriticality + SECOND TYPE &SecondValue + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol Extensions +-- +-- ************************************************************** + +S1AP-PROTOCOL-EXTENSION ::= CLASS { + &id ProtocolExtensionID UNIQUE, + &criticality Criticality, + &Extension, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + EXTENSION &Extension + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Private IEs +-- +-- ************************************************************** + +S1AP-PRIVATE-IES ::= CLASS { + &id PrivateIE-ID, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Container for Protocol IEs +-- +-- ************************************************************** + +ProtocolIE-Container {S1AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-SingleContainer {S1AP-PROTOCOL-IES : IEsSetParam} ::= + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Field {S1AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-IES.&id ({IEsSetParam}), + criticality S1AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), + value S1AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Protocol IE Pairs +-- +-- ************************************************************** + +ProtocolIE-ContainerPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-FieldPair {{IEsSetParam}} + +ProtocolIE-FieldPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), + firstCriticality S1AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), + firstValue S1AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), + secondCriticality S1AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), + secondValue S1AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container Lists for Protocol IE Containers +-- +-- ************************************************************** + +ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-SingleContainer {{IEsSetParam}} + +ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-ContainerPair {{IEsSetParam}} + +-- ************************************************************** +-- +-- Container for Protocol Extensions +-- +-- ************************************************************** + +ProtocolExtensionContainer {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= + SEQUENCE (SIZE (1..maxProtocolExtensions)) OF + ProtocolExtensionField {{ExtensionSetParam}} + +ProtocolExtensionField {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), + criticality S1AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), + extensionValue S1AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Private IEs +-- +-- ************************************************************** + +PrivateIE-Container {S1AP-PRIVATE-IES : IEsSetParam } ::= + SEQUENCE (SIZE (1.. maxPrivateIEs)) OF + PrivateIE-Field {{IEsSetParam}} + +PrivateIE-Field {S1AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { + id S1AP-PRIVATE-IES.&id ({IEsSetParam}), + criticality S1AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), + value S1AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) +} + +END + +SonTransfer-IEs + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- +-- Generic IEs for the SON Transfer application +-- + +SONtransferApplicationIdentity ::= ENUMERATED { + cell-load-reporting, + ..., + multi-cell-load-reporting, + event-triggered-cell-load-reporting, + ho-reporting, + eutran-cell-activation, + energy-savings-indication, + failure-event-reporting +} + +SONtransferRequestContainer ::= CHOICE{ + cellLoadReporting NULL, + ..., + multiCellLoadReporting MultiCellLoadReportingRequest, + eventTriggeredCellLoadReporting EventTriggeredCellLoadReportingRequest, + hOReporting HOReport, + eutranCellActivation CellActivationRequest, + energySavingsIndication CellStateIndication, + failureEventReporting FailureEventReport +} + +SONtransferResponseContainer ::= CHOICE{ + cellLoadReporting CellLoadReportingResponse, + ..., + multiCellLoadReporting MultiCellLoadReportingResponse, + eventTriggeredCellLoadReporting EventTriggeredCellLoadReportingResponse, + hOReporting NULL, + eutranCellActivation CellActivationResponse, + energySavingsIndication NULL, + failureEventReporting NULL +} + +SONtransferCause ::= CHOICE { + cellLoadReporting CellLoadReportingCause, + ..., + multiCellLoadReporting CellLoadReportingCause, + eventTriggeredCellLoadReporting CellLoadReportingCause, + hOReporting HOReportingCause, + eutranCellActivation CellActivationCause, + energySavingsIndication CellStateIndicationCause, + failureEventReporting FailureEventReportingCause +} + + +CellLoadReportingCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +HOReportingCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +CellActivationCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +CellStateIndicationCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +FailureEventReportingCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +-- +-- IEs for Cell Load Reporting application +-- + +CellLoadReportingResponse::= CHOICE{ + eUTRAN EUTRANcellLoadReportingResponse, + uTRAN OCTET STRING, + gERAN OCTET STRING, + ..., + eHRPD EHRPDSectorLoadReportingResponse +} + +CompositeAvailableCapacityGroup ::= OCTET STRING + +EUTRANcellLoadReportingResponse ::= SEQUENCE { + compositeAvailableCapacityGroup CompositeAvailableCapacityGroup, + ... +} + +-- +-- IEs for Multi-Cell Load Reporting application +-- + +EUTRANResponse::= SEQUENCE { + cell-ID OCTET STRING, + eUTRANcellLoadReportingResponse EUTRANcellLoadReportingResponse, + ... +} + +EHRPD-Sector-ID ::= OCTET STRING (SIZE (16)) + +IRAT-Cell-ID ::= CHOICE{ + eUTRAN OCTET STRING, + uTRAN OCTET STRING, + gERAN OCTET STRING, + ..., + eHRPD EHRPD-Sector-ID +} + +RequestedCellList ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF IRAT-Cell-ID + +MultiCellLoadReportingRequest::= SEQUENCE { + requestedCellList RequestedCellList, + ... +} + +ReportingCellList-Item ::= SEQUENCE { + cell-ID IRAT-Cell-ID, + ... +} + +ReportingCellList ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF ReportingCellList-Item + +MultiCellLoadReportingResponse ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF MultiCellLoadReportingResponse-Item + +MultiCellLoadReportingResponse-Item ::= CHOICE{ + eUTRANResponse EUTRANResponse, + uTRANResponse OCTET STRING, + gERANResponse OCTET STRING, + ..., + eHRPD EHRPDMultiSectorLoadReportingResponseItem +} + + +-- +-- IEs for Event-triggered Cell Load Reporting application +-- + +NumberOfMeasurementReportingLevels ::= ENUMERATED { + rl2, + rl3, + rl4, + rl5, + rl10, + ... +} + +EventTriggeredCellLoadReportingRequest ::= SEQUENCE { + numberOfMeasurementReportingLevels NumberOfMeasurementReportingLevels, + ... +} + +OverloadFlag ::= ENUMERATED { + overload, + ... +} + +EventTriggeredCellLoadReportingResponse ::= SEQUENCE { + cellLoadReportingResponse CellLoadReportingResponse, + overloadFlag OverloadFlag OPTIONAL, + ... +} + +-- +-- IEs for HO Reporting application +-- + + + +HOReport::= SEQUENCE { + hoType HoType, + hoReportType HoReportType, + hosourceID IRAT-Cell-ID, + hoTargetID IRAT-Cell-ID, + candidateCellList CandidateCellList, + ..., + candidatePCIList CandidatePCIList OPTIONAL +} + +HoType ::= ENUMERATED { + ltetoutran, + ltetogeran, + ... +} + +HoReportType ::= ENUMERATED { + unnecessaryhotoanotherrat, + ..., + earlyirathandover +} + +CandidateCellList ::= SEQUENCE (SIZE(1..maxnoofcandidateCells)) OF IRAT-Cell-ID + +CandidatePCIList ::= SEQUENCE (SIZE(1..maxnoofcandidateCells)) OF CandidatePCI + +CandidatePCI ::= SEQUENCE { + pCI INTEGER (0..503), + eARFCN OCTET STRING, + ... +} + +-- +-- IEs for E-UTRAN Cell Activation application +-- + +CellActivationRequest ::= SEQUENCE { + cellsToActivateList CellsToActivateList, + minimumActivationTime INTEGER (1..60) OPTIONAL, +... +} + +CellsToActivateList ::= SEQUENCE (SIZE(1.. maxnoofCellineNB)) OF CellsToActivateList-Item + +CellsToActivateList-Item ::= SEQUENCE { + cell-ID OCTET STRING, + ... +} + +CellActivationResponse ::= SEQUENCE { + activatedCellsList ActivatedCellsList, + ... +} + +ActivatedCellsList ::= SEQUENCE (SIZE(0.. maxnoofCellineNB)) OF ActivatedCellsList-Item + +ActivatedCellsList-Item ::= SEQUENCE { + cell-ID OCTET STRING, + ... +} + +-- +-- IEs for Energy Savings Indication application +-- + +CellStateIndication ::= SEQUENCE { + notificationCellList NotificationCellList, + ... +} + +NotificationCellList ::= SEQUENCE (SIZE(1.. maxnoofCellineNB)) OF NotificationCellList-Item + +NotificationCellList-Item ::= SEQUENCE { + cell-ID OCTET STRING, + notifyFlag NotifyFlag, + ... +} + +NotifyFlag ::= ENUMERATED { + activated, + deactivated, + ... +} + +FailureEventReport::= CHOICE { + tooEarlyInterRATHOReportFromEUTRAN TooEarlyInterRATHOReportReportFromEUTRAN, + ... +} + +TooEarlyInterRATHOReportReportFromEUTRAN ::= SEQUENCE { + uERLFReportContainer OCTET STRING, -- as defined in TS 36.331 [16] -- + mobilityInformation MobilityInformation OPTIONAL, + ... +} + +MobilityInformation ::= BIT STRING (SIZE(32)) + + +-- +-- IEs for reporting of eHRPD load +-- + +EHRPDCapacityValue ::= INTEGER (0..100) + +EHRPDSectorCapacityClassValue ::= INTEGER (1..100, ...) + +EHRPDSectorLoadReportingResponse ::= SEQUENCE { + dL-EHRPD-CompositeAvailableCapacity EHRPDCompositeAvailableCapacity, + uL-EHRPD-CompositeAvailableCapacity EHRPDCompositeAvailableCapacity, + ... +} + +EHRPDCompositeAvailableCapacity ::= SEQUENCE { + eHRPDSectorCapacityClassValue EHRPDSectorCapacityClassValue, + eHRPDCapacityValue EHRPDCapacityValue, + ... +} + +EHRPDMultiSectorLoadReportingResponseItem ::= SEQUENCE { + eHRPD-Sector-ID EHRPD-Sector-ID, + eHRPDSectorLoadReportingResponse EHRPDSectorLoadReportingResponse, + ... +} + + +-- ************************************************************** +-- +-- Constants +-- +-- ************************************************************** + +maxnoofIRATReportingCells INTEGER ::= 128 +maxnoofcandidateCells INTEGER ::= 16 +maxnoofCellineNB INTEGER ::= 256 + +END + diff --git a/openair3/S1AP/MESSAGES/ASN1/R15/s1ap-15.2.0.asn1 b/openair3/S1AP/MESSAGES/ASN1/R15/s1ap-15.2.0.asn1 new file mode 100755 index 0000000000..db1f1b5915 --- /dev/null +++ b/openair3/S1AP/MESSAGES/ASN1/R15/s1ap-15.2.0.asn1 @@ -0,0 +1,6883 @@ +-- ************************************************************** +-- +-- Elementary Procedure definitions +-- +-- ************************************************************** + +S1AP-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Descriptions (0)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + ProcedureCode +FROM S1AP-CommonDataTypes + + CellTrafficTrace, + DeactivateTrace, + DownlinkUEAssociatedLPPaTransport, + DownlinkNASTransport, + DownlinkNonUEAssociatedLPPaTransport, + DownlinkS1cdma2000tunnelling, + ENBDirectInformationTransfer, + ENBStatusTransfer, + ENBConfigurationUpdate, + ENBConfigurationUpdateAcknowledge, + ENBConfigurationUpdateFailure, + ErrorIndication, + HandoverCancel, + HandoverCancelAcknowledge, + HandoverCommand, + HandoverFailure, + HandoverNotify, + HandoverPreparationFailure, + HandoverRequest, + HandoverRequestAcknowledge, + HandoverRequired, + InitialContextSetupFailure, + InitialContextSetupRequest, + InitialContextSetupResponse, + InitialUEMessage, + KillRequest, + KillResponse, + LocationReportingControl, + LocationReportingFailureIndication, + LocationReport, + MMEConfigurationUpdate, + MMEConfigurationUpdateAcknowledge, + MMEConfigurationUpdateFailure, + MMEDirectInformationTransfer, + MMEStatusTransfer, + NASNonDeliveryIndication, + OverloadStart, + OverloadStop, + Paging, + PathSwitchRequest, + PathSwitchRequestAcknowledge, + PathSwitchRequestFailure, + PrivateMessage, + Reset, + ResetAcknowledge, + S1SetupFailure, + S1SetupRequest, + S1SetupResponse, + E-RABModifyRequest, + E-RABModifyResponse, + E-RABModificationIndication, + E-RABModificationConfirm, + E-RABReleaseCommand, + E-RABReleaseResponse, + E-RABReleaseIndication, + E-RABSetupRequest, + E-RABSetupResponse, + TraceFailureIndication, + TraceStart, + UECapabilityInfoIndication, + UEContextModificationFailure, + UEContextModificationRequest, + UEContextModificationResponse, + UEContextReleaseCommand, + UEContextReleaseComplete, + UEContextReleaseRequest, + UERadioCapabilityMatchRequest, + UERadioCapabilityMatchResponse, + UplinkUEAssociatedLPPaTransport, + UplinkNASTransport, + UplinkNonUEAssociatedLPPaTransport, + UplinkS1cdma2000tunnelling, + WriteReplaceWarningRequest, + WriteReplaceWarningResponse, + ENBConfigurationTransfer, + MMEConfigurationTransfer, + PWSRestartIndication, + UEContextModificationIndication, + UEContextModificationConfirm, + RerouteNASRequest, + PWSFailureIndication, + UEContextSuspendRequest, + UEContextSuspendResponse, + UEContextResumeRequest, + UEContextResumeResponse, + UEContextResumeFailure, + ConnectionEstablishmentIndication, + NASDeliveryIndication, + RetrieveUEInformation, + UEInformationTransfer, + ENBCPRelocationIndication, + MMECPRelocationIndication, + SecondaryRATDataUsageReport + + +FROM S1AP-PDU-Contents + + id-CellTrafficTrace, + id-DeactivateTrace, + id-downlinkUEAssociatedLPPaTransport, + id-downlinkNASTransport, + id-downlinkNonUEAssociatedLPPaTransport, + id-DownlinkS1cdma2000tunnelling, + id-eNBStatusTransfer, + id-ErrorIndication, + id-HandoverCancel, + id-HandoverNotification, + id-HandoverPreparation, + id-HandoverResourceAllocation, + id-InitialContextSetup, + id-initialUEMessage, + id-ENBConfigurationUpdate, + id-Kill, + id-LocationReportingControl, + id-LocationReportingFailureIndication, + id-LocationReport, + id-eNBDirectInformationTransfer, + id-MMEConfigurationUpdate, + id-MMEDirectInformationTransfer, + id-MMEStatusTransfer, + id-NASNonDeliveryIndication, + id-OverloadStart, + id-OverloadStop, + id-Paging, + id-PathSwitchRequest, + id-PrivateMessage, + id-Reset, + id-S1Setup, + id-E-RABModify, + id-E-RABModificationIndication, + id-E-RABRelease, + id-E-RABReleaseIndication, + id-E-RABSetup, + id-TraceFailureIndication, + id-TraceStart, + id-UECapabilityInfoIndication, + id-UEContextModification, + id-UEContextRelease, + id-UEContextReleaseRequest, + id-UERadioCapabilityMatch, + id-uplinkUEAssociatedLPPaTransport, + id-uplinkNASTransport, + id-uplinkNonUEAssociatedLPPaTransport, + id-UplinkS1cdma2000tunnelling, + id-WriteReplaceWarning, + id-eNBConfigurationTransfer, + id-MMEConfigurationTransfer, + id-PWSRestartIndication, + id-UEContextModificationIndication, + id-RerouteNASRequest, + id-PWSFailureIndication, + id-UEContextSuspend, + id-UEContextResume, + id-ConnectionEstablishmentIndication, + id-NASDeliveryIndication, + id-RetrieveUEInformation, + id-UEInformationTransfer, + id-eNBCPRelocationIndication, + id-MMECPRelocationIndication, + id-SecondaryRATDataUsageReport + + +FROM S1AP-Constants; + + +-- ************************************************************** +-- +-- Interface Elementary Procedure Class +-- +-- ************************************************************** + +S1AP-ELEMENTARY-PROCEDURE ::= CLASS { + &InitiatingMessage , + &SuccessfulOutcome OPTIONAL, + &UnsuccessfulOutcome OPTIONAL, + &procedureCode ProcedureCode UNIQUE, + &criticality Criticality DEFAULT ignore +} +WITH SYNTAX { + INITIATING MESSAGE &InitiatingMessage + [SUCCESSFUL OUTCOME &SuccessfulOutcome] + [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] + PROCEDURE CODE &procedureCode + [CRITICALITY &criticality] +} + +-- ************************************************************** +-- +-- Interface PDU Definition +-- +-- ************************************************************** + +S1AP-PDU ::= CHOICE { + initiatingMessage InitiatingMessage, + successfulOutcome SuccessfulOutcome, + unsuccessfulOutcome UnsuccessfulOutcome, + ... +} + +InitiatingMessage ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +SuccessfulOutcome ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +UnsuccessfulOutcome ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +-- ************************************************************** +-- +-- Interface Elementary Procedure List +-- +-- ************************************************************** + +S1AP-ELEMENTARY-PROCEDURES S1AP-ELEMENTARY-PROCEDURE ::= { + S1AP-ELEMENTARY-PROCEDURES-CLASS-1 | + S1AP-ELEMENTARY-PROCEDURES-CLASS-2, + ... +} + + +S1AP-ELEMENTARY-PROCEDURES-CLASS-1 S1AP-ELEMENTARY-PROCEDURE ::= { + handoverPreparation | + handoverResourceAllocation | + pathSwitchRequest | + e-RABSetup | + e-RABModify | + e-RABRelease | + initialContextSetup | + handoverCancel | + kill | + reset | + s1Setup | + uEContextModification | + uEContextRelease | + eNBConfigurationUpdate | + mMEConfigurationUpdate | + writeReplaceWarning , + ..., + uERadioCapabilityMatch | + e-RABModificationIndication | + uEContextModificationIndication | + uEContextSuspend | + uEContextResume +} + +S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= { + handoverNotification | + e-RABReleaseIndication | + paging | + downlinkNASTransport | + initialUEMessage | + uplinkNASTransport | + errorIndication | + nASNonDeliveryIndication | + uEContextReleaseRequest | + downlinkS1cdma2000tunnelling | + uplinkS1cdma2000tunnelling | + uECapabilityInfoIndication | + eNBStatusTransfer | + mMEStatusTransfer | + deactivateTrace | + traceStart | + traceFailureIndication | + cellTrafficTrace | + locationReportingControl | + locationReportingFailureIndication | + locationReport | + overloadStart | + overloadStop | + eNBDirectInformationTransfer | + mMEDirectInformationTransfer | + eNBConfigurationTransfer | + mMEConfigurationTransfer | + privateMessage , + ..., + downlinkUEAssociatedLPPaTransport | + uplinkUEAssociatedLPPaTransport | + downlinkNonUEAssociatedLPPaTransport | + uplinkNonUEAssociatedLPPaTransport | + pWSRestartIndication | + rerouteNASRequest | + pWSFailureIndication | + connectionEstablishmentIndication | + nASDeliveryIndication | + retrieveUEInformation | + uEInformationTransfer | + eNBCPRelocationIndication | + mMECPRelocationIndication | + secondaryRATDataUsageReport +} + +-- ************************************************************** +-- +-- Interface Elementary Procedures +-- +-- ************************************************************** + +handoverPreparation S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequired + SUCCESSFUL OUTCOME HandoverCommand + UNSUCCESSFUL OUTCOME HandoverPreparationFailure + PROCEDURE CODE id-HandoverPreparation + CRITICALITY reject +} + +handoverResourceAllocation S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequest + SUCCESSFUL OUTCOME HandoverRequestAcknowledge + UNSUCCESSFUL OUTCOME HandoverFailure + PROCEDURE CODE id-HandoverResourceAllocation + CRITICALITY reject +} + +handoverNotification S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverNotify + PROCEDURE CODE id-HandoverNotification + CRITICALITY ignore +} + +pathSwitchRequest S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PathSwitchRequest + SUCCESSFUL OUTCOME PathSwitchRequestAcknowledge + UNSUCCESSFUL OUTCOME PathSwitchRequestFailure + PROCEDURE CODE id-PathSwitchRequest + CRITICALITY reject +} + +e-RABSetup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABSetupRequest + SUCCESSFUL OUTCOME E-RABSetupResponse + PROCEDURE CODE id-E-RABSetup + CRITICALITY reject +} + +e-RABModify S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABModifyRequest + SUCCESSFUL OUTCOME E-RABModifyResponse + PROCEDURE CODE id-E-RABModify + CRITICALITY reject +} + +e-RABRelease S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABReleaseCommand + SUCCESSFUL OUTCOME E-RABReleaseResponse + PROCEDURE CODE id-E-RABRelease + CRITICALITY reject +} + +e-RABReleaseIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABReleaseIndication + PROCEDURE CODE id-E-RABReleaseIndication + CRITICALITY ignore +} + +initialContextSetup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE InitialContextSetupRequest + SUCCESSFUL OUTCOME InitialContextSetupResponse + UNSUCCESSFUL OUTCOME InitialContextSetupFailure + PROCEDURE CODE id-InitialContextSetup + CRITICALITY reject +} + +uEContextReleaseRequest S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextReleaseRequest + PROCEDURE CODE id-UEContextReleaseRequest + CRITICALITY ignore +} + +paging S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE Paging + PROCEDURE CODE id-Paging + CRITICALITY ignore +} + +downlinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkNASTransport + PROCEDURE CODE id-downlinkNASTransport + CRITICALITY ignore +} + +initialUEMessage S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE InitialUEMessage + PROCEDURE CODE id-initialUEMessage + CRITICALITY ignore +} + +uplinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkNASTransport + PROCEDURE CODE id-uplinkNASTransport + CRITICALITY ignore +} +nASNonDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE NASNonDeliveryIndication + PROCEDURE CODE id-NASNonDeliveryIndication + CRITICALITY ignore +} + +handoverCancel S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverCancel + SUCCESSFUL OUTCOME HandoverCancelAcknowledge + PROCEDURE CODE id-HandoverCancel + CRITICALITY reject +} + +reset S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE Reset + SUCCESSFUL OUTCOME ResetAcknowledge + PROCEDURE CODE id-Reset + CRITICALITY reject +} + +errorIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ErrorIndication + PROCEDURE CODE id-ErrorIndication + CRITICALITY ignore +} + +s1Setup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE S1SetupRequest + SUCCESSFUL OUTCOME S1SetupResponse + UNSUCCESSFUL OUTCOME S1SetupFailure + PROCEDURE CODE id-S1Setup + CRITICALITY reject +} + +eNBConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationUpdate + SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure + PROCEDURE CODE id-ENBConfigurationUpdate + CRITICALITY reject +} + +mMEConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEConfigurationUpdate + SUCCESSFUL OUTCOME MMEConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME MMEConfigurationUpdateFailure + PROCEDURE CODE id-MMEConfigurationUpdate + CRITICALITY reject +} + +downlinkS1cdma2000tunnelling S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkS1cdma2000tunnelling + PROCEDURE CODE id-DownlinkS1cdma2000tunnelling + CRITICALITY ignore +} + +uplinkS1cdma2000tunnelling S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkS1cdma2000tunnelling + PROCEDURE CODE id-UplinkS1cdma2000tunnelling + CRITICALITY ignore +} + +uEContextModification S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextModificationRequest + SUCCESSFUL OUTCOME UEContextModificationResponse + UNSUCCESSFUL OUTCOME UEContextModificationFailure + PROCEDURE CODE id-UEContextModification + CRITICALITY reject +} + +uECapabilityInfoIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UECapabilityInfoIndication + PROCEDURE CODE id-UECapabilityInfoIndication + CRITICALITY ignore +} + +uEContextRelease S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextReleaseCommand + SUCCESSFUL OUTCOME UEContextReleaseComplete + PROCEDURE CODE id-UEContextRelease + CRITICALITY reject +} + +eNBStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBStatusTransfer + PROCEDURE CODE id-eNBStatusTransfer + CRITICALITY ignore +} + +mMEStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEStatusTransfer + PROCEDURE CODE id-MMEStatusTransfer + CRITICALITY ignore +} + +deactivateTrace S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DeactivateTrace + PROCEDURE CODE id-DeactivateTrace + CRITICALITY ignore +} + +traceStart S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE TraceStart + PROCEDURE CODE id-TraceStart + CRITICALITY ignore +} + +traceFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE TraceFailureIndication + PROCEDURE CODE id-TraceFailureIndication + CRITICALITY ignore +} +cellTrafficTrace S1AP-ELEMENTARY-PROCEDURE ::={ + INITIATING MESSAGE CellTrafficTrace + PROCEDURE CODE id-CellTrafficTrace + CRITICALITY ignore +} + +locationReportingControl S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReportingControl + PROCEDURE CODE id-LocationReportingControl + CRITICALITY ignore +} + +locationReportingFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReportingFailureIndication + PROCEDURE CODE id-LocationReportingFailureIndication + CRITICALITY ignore +} + +locationReport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReport + PROCEDURE CODE id-LocationReport + CRITICALITY ignore +} + +overloadStart S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE OverloadStart + PROCEDURE CODE id-OverloadStart + CRITICALITY ignore +} + +overloadStop S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE OverloadStop + PROCEDURE CODE id-OverloadStop + CRITICALITY reject +} + +writeReplaceWarning S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE WriteReplaceWarningRequest + SUCCESSFUL OUTCOME WriteReplaceWarningResponse + PROCEDURE CODE id-WriteReplaceWarning + CRITICALITY reject +} + +eNBDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBDirectInformationTransfer + PROCEDURE CODE id-eNBDirectInformationTransfer + CRITICALITY ignore +} + +mMEDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEDirectInformationTransfer + PROCEDURE CODE id-MMEDirectInformationTransfer + CRITICALITY ignore +} + +eNBConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationTransfer + PROCEDURE CODE id-eNBConfigurationTransfer + CRITICALITY ignore +} + +mMEConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEConfigurationTransfer + PROCEDURE CODE id-MMEConfigurationTransfer + CRITICALITY ignore +} + + +privateMessage S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PrivateMessage + PROCEDURE CODE id-PrivateMessage + CRITICALITY ignore +} + +pWSRestartIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PWSRestartIndication + PROCEDURE CODE id-PWSRestartIndication + CRITICALITY ignore +} + +kill S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE KillRequest + SUCCESSFUL OUTCOME KillResponse + PROCEDURE CODE id-Kill + CRITICALITY reject +} + +downlinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkUEAssociatedLPPaTransport + PROCEDURE CODE id-downlinkUEAssociatedLPPaTransport + CRITICALITY ignore +} + +uplinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkUEAssociatedLPPaTransport + PROCEDURE CODE id-uplinkUEAssociatedLPPaTransport + CRITICALITY ignore +} +downlinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkNonUEAssociatedLPPaTransport + PROCEDURE CODE id-downlinkNonUEAssociatedLPPaTransport + CRITICALITY ignore +} + +uplinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkNonUEAssociatedLPPaTransport + PROCEDURE CODE id-uplinkNonUEAssociatedLPPaTransport + CRITICALITY ignore +} + +uERadioCapabilityMatch S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UERadioCapabilityMatchRequest + SUCCESSFUL OUTCOME UERadioCapabilityMatchResponse + PROCEDURE CODE id-UERadioCapabilityMatch + CRITICALITY reject +} + +e-RABModificationIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABModificationIndication + SUCCESSFUL OUTCOME E-RABModificationConfirm + PROCEDURE CODE id-E-RABModificationIndication + CRITICALITY reject +} + +uEContextModificationIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextModificationIndication + SUCCESSFUL OUTCOME UEContextModificationConfirm + PROCEDURE CODE id-UEContextModificationIndication + CRITICALITY reject +} + +rerouteNASRequest S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RerouteNASRequest + PROCEDURE CODE id-RerouteNASRequest + CRITICALITY reject +} + +pWSFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PWSFailureIndication + PROCEDURE CODE id-PWSFailureIndication + CRITICALITY ignore +} + +uEContextSuspend S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextSuspendRequest + SUCCESSFUL OUTCOME UEContextSuspendResponse + PROCEDURE CODE id-UEContextSuspend + CRITICALITY reject +} + +uEContextResume S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextResumeRequest + SUCCESSFUL OUTCOME UEContextResumeResponse + UNSUCCESSFUL OUTCOME UEContextResumeFailure + PROCEDURE CODE id-UEContextResume + CRITICALITY reject +} + +connectionEstablishmentIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ConnectionEstablishmentIndication + PROCEDURE CODE id-ConnectionEstablishmentIndication + CRITICALITY reject +} + +nASDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE NASDeliveryIndication + PROCEDURE CODE id-NASDeliveryIndication + CRITICALITY ignore +} + +retrieveUEInformation S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RetrieveUEInformation + PROCEDURE CODE id-RetrieveUEInformation + CRITICALITY reject +} + +uEInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEInformationTransfer + PROCEDURE CODE id-UEInformationTransfer + CRITICALITY reject +} + +eNBCPRelocationIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBCPRelocationIndication + PROCEDURE CODE id-eNBCPRelocationIndication + CRITICALITY reject +} + +mMECPRelocationIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMECPRelocationIndication + PROCEDURE CODE id-MMECPRelocationIndication + CRITICALITY reject +} + +secondaryRATDataUsageReport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SecondaryRATDataUsageReport + PROCEDURE CODE id-SecondaryRATDataUsageReport + CRITICALITY ignore +} + + +END + + + +-- ************************************************************** +-- +-- PDU definitions for S1AP. +-- +-- ************************************************************** + +S1AP-PDU-Contents { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Contents (1) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + + UEAggregateMaximumBitrate, + BearerType, + Cause, + CellAccessMode, + Cdma2000HORequiredIndication, + Cdma2000HOStatus, + Cdma2000OneXSRVCCInfo, + Cdma2000OneXRAND, + Cdma2000PDU, + Cdma2000RATType, + Cdma2000SectorID, + EUTRANRoundTripDelayEstimationInfo, + CNDomain, + ConcurrentWarningMessageIndicator, + CriticalityDiagnostics, + CSFallbackIndicator, + CSG-Id, + CSG-IdList, + CSGMembershipStatus, + Data-Forwarding-Not-Possible, + Direct-Forwarding-Path-Availability, + Global-ENB-ID, + EUTRAN-CGI, + ENBname, + ENB-StatusTransfer-TransparentContainer, + ENB-UE-S1AP-ID, + ExtendedRepetitionPeriod, + GTP-TEID, + GUMMEI, + GUMMEIType, + HandoverRestrictionList, + HandoverType, + Masked-IMEISV, + LAI, + LPPa-PDU, + ManagementBasedMDTAllowed, + MDTPLMNList, + MMEname, + MMERelaySupportIndicator, + MME-UE-S1AP-ID, + MSClassmark2, + MSClassmark3, + NAS-PDU, + NASSecurityParametersfromE-UTRAN, + NASSecurityParameterstoE-UTRAN, + OverloadResponse, + PagingDRX, + PagingPriority, + PLMNidentity, + ProSeAuthorized, + RIMTransfer, + RelativeMMECapacity, + RequestType, + E-RAB-ID, + E-RABLevelQoSParameters, + E-RABList, + RelayNode-Indicator, + Routing-ID, + SecurityKey, + SecurityContext, + ServedGUMMEIs, + SONConfigurationTransfer, + Source-ToTarget-TransparentContainer, + SourceBSS-ToTargetBSS-TransparentContainer, + SourceeNB-ToTargeteNB-TransparentContainer, + SourceRNC-ToTargetRNC-TransparentContainer, + SubscriberProfileIDforRFP, + SRVCCOperationNotPossible, + SRVCCOperationPossible, + SRVCCHOIndication, + SupportedTAs, + TAI, + Target-ToSource-TransparentContainer, + TargetBSS-ToSourceBSS-TransparentContainer, + TargeteNB-ToSourceeNB-TransparentContainer, + TargetID, + TargetRNC-ToSourceRNC-TransparentContainer, + TimeToWait, + TraceActivation, + TrafficLoadReductionIndication, + E-UTRAN-Trace-ID, + TransportLayerAddress, + UEIdentityIndexValue, + UEPagingID, + UERadioCapability, + UERadioCapabilityForPaging, + UE-RetentionInformation, + UE-S1AP-IDs, + UE-associatedLogicalS1-ConnectionItem, + UESecurityCapabilities, + S-TMSI, + MessageIdentifier, + SerialNumber, + WarningAreaList, + RepetitionPeriod, + NumberofBroadcastRequest, + WarningType, + WarningSecurityInfo, + DataCodingScheme, + WarningMessageContents, + BroadcastCompletedAreaList, + RRC-Establishment-Cause, + BroadcastCancelledAreaList, + PS-ServiceNotAvailable, + GUMMEIList, + Correlation-ID, + GWContextReleaseIndication, + PrivacyIndicator, + VoiceSupportMatchIndicator, + TunnelInformation, + KillAllWarningMessages, + TransportInformation, + LHN-ID, + UserLocationInformation, + AdditionalCSFallbackIndicator, + ECGIListForRestart, + TAIListForRestart, + EmergencyAreaIDListForRestart, + ExpectedUEBehaviour, + Paging-eDRXInformation, + Extended-UEIdentityIndexValue, + MME-Group-ID, + Additional-GUTI, + PWSfailedECGIList, + CellIdentifierAndCELevelForCECapableUEs, + AssistanceDataForPaging, + InformationOnRecommendedCellsAndENBsForPaging, + UE-Usage-Type, + UEUserPlaneCIoTSupportIndicator, + NB-IoT-DefaultPagingDRX, + NB-IoT-Paging-eDRXInformation, + CE-mode-B-SupportIndicator, + NB-IoT-UEIdentityIndexValue, + V2XServicesAuthorized, + DCN-ID, + ServedDCNs, + UESidelinkAggregateMaximumBitrate, + DLNASPDUDeliveryAckRequest, + Coverage-Level, + EnhancedCoverageRestricted, + DL-CP-SecurityInformation, + UL-CP-SecurityInformation, + SecondaryRATDataUsageRequest, + SecondaryRATDataUsageReportList, + HandoverFlag, + NRUESecurityCapabilities, + UE-Application-Layer-Measurement-Capability, + CE-ModeBRestricted, + Packet-LossRate, + UECapabilityInfoRequest, + SourceNgRanNode-ToTargetNgRanNode-TransparentContainer, + TargetNgRanNode-ToSourceNgRanNode-TransparentContainer, + EndIndication, + EDT-Session, + LTE-M-Indication, + AerialUEsubscriptionInformation + + + + +FROM S1AP-IEs + + PrivateIE-Container{}, + ProtocolExtensionContainer{}, + ProtocolIE-Container{}, + ProtocolIE-ContainerList{}, + ProtocolIE-ContainerPair{}, + ProtocolIE-ContainerPairList{}, + ProtocolIE-SingleContainer{}, + S1AP-PRIVATE-IES, + S1AP-PROTOCOL-EXTENSION, + S1AP-PROTOCOL-IES, + S1AP-PROTOCOL-IES-PAIR +FROM S1AP-Containers + + + id-AssistanceDataForPaging, + id-AerialUEsubscriptionInformation, + id-uEaggregateMaximumBitrate, + id-BearerType, + id-Cause, + id-CellAccessMode, + id-CellIdentifierAndCELevelForCECapableUEs, + id-cdma2000HORequiredIndication, + id-cdma2000HOStatus, + id-cdma2000OneXSRVCCInfo, + id-cdma2000OneXRAND, + id-cdma2000PDU, + id-cdma2000RATType, + id-cdma2000SectorID, + id-EUTRANRoundTripDelayEstimationInfo, + id-CNDomain, + id-ConcurrentWarningMessageIndicator, + id-CriticalityDiagnostics, + id-CSFallbackIndicator, + id-CSG-Id, + id-CSG-IdList, + id-CSGMembershipStatus, + id-Data-Forwarding-Not-Possible, + id-DefaultPagingDRX, + id-Direct-Forwarding-Path-Availability, + id-Global-ENB-ID, + id-EUTRAN-CGI, + id-eNBname, + id-eNB-StatusTransfer-TransparentContainer, + id-eNB-UE-S1AP-ID, + id-GERANtoLTEHOInformationRes, + id-GUMMEI-ID, + id-GUMMEIType, + id-HandoverRestrictionList, + id-HandoverType, + id-Masked-IMEISV, + id-InformationOnRecommendedCellsAndENBsForPaging, + id-InitialContextSetup, + id-Inter-SystemInformationTransferTypeEDT, + id-Inter-SystemInformationTransferTypeMDT, + id-LPPa-PDU, + id-NAS-DownlinkCount, + id-ManagementBasedMDTAllowed, + id-ManagementBasedMDTPLMNList, + id-MMEname, + id-MME-UE-S1AP-ID, + id-MSClassmark2, + id-MSClassmark3, + id-NAS-PDU, + id-NASSecurityParametersfromE-UTRAN, + id-NASSecurityParameterstoE-UTRAN, + id-OverloadResponse, + id-pagingDRX, + id-PagingPriority, + id-RelativeMMECapacity, + id-RequestType, + id-Routing-ID, + id-E-RABAdmittedItem, + id-E-RABAdmittedList, + id-E-RABDataForwardingItem, + id-E-RABFailedToModifyList, + id-E-RABFailedToReleaseList, + id-E-RABFailedtoSetupItemHOReqAck, + id-E-RABFailedToSetupListBearerSURes, + id-E-RABFailedToSetupListCtxtSURes, + id-E-RABFailedToSetupListHOReqAck, + id-E-RABFailedToBeReleasedList, + id-E-RABFailedToResumeListResumeReq, + id-E-RABFailedToResumeItemResumeReq, + id-E-RABFailedToResumeListResumeRes, + id-E-RABFailedToResumeItemResumeRes, + id-E-RABModify, + id-E-RABModifyItemBearerModRes, + id-E-RABModifyListBearerModRes, + id-E-RABRelease, + id-E-RABReleaseItemBearerRelComp, + id-E-RABReleaseItemHOCmd, + id-E-RABReleaseListBearerRelComp, + id-E-RABReleaseIndication, + id-E-RABSetup, + id-E-RABSetupItemBearerSURes, + id-E-RABSetupItemCtxtSURes, + id-E-RABSetupListBearerSURes, + id-E-RABSetupListCtxtSURes, + id-E-RABSubjecttoDataForwardingList, + id-E-RABToBeModifiedItemBearerModReq, + id-E-RABToBeModifiedListBearerModReq, + id-E-RABToBeModifiedListBearerModInd, + id-E-RABToBeModifiedItemBearerModInd, + id-E-RABNotToBeModifiedListBearerModInd, + id-E-RABNotToBeModifiedItemBearerModInd, + id-E-RABModifyListBearerModConf, + id-E-RABModifyItemBearerModConf, + id-E-RABFailedToModifyListBearerModConf, + id-E-RABToBeReleasedListBearerModConf, + id-E-RABToBeReleasedList, + id-E-RABReleasedList, + id-E-RABToBeSetupItemBearerSUReq, + id-E-RABToBeSetupItemCtxtSUReq, + id-E-RABToBeSetupItemHOReq, + id-E-RABToBeSetupListBearerSUReq, + id-E-RABToBeSetupListCtxtSUReq, + id-E-RABToBeSetupListHOReq, + id-E-RABToBeSwitchedDLItem, + id-E-RABToBeSwitchedDLList, + id-E-RABToBeSwitchedULList, + id-E-RABToBeSwitchedULItem, + id-E-RABtoReleaseListHOCmd, + id-ProSeAuthorized, + id-SecurityKey, + id-SecurityContext, + id-ServedGUMMEIs, + id-SONConfigurationTransferECT, + id-SONConfigurationTransferMCT, + id-Source-ToTarget-TransparentContainer, + id-Source-ToTarget-TransparentContainer-Secondary, + id-SourceMME-UE-S1AP-ID, + id-SRVCCOperationNotPossible, + id-SRVCCOperationPossible, + id-SRVCCHOIndication, + id-SubscriberProfileIDforRFP, + id-SupportedTAs, + id-S-TMSI, + id-TAI, + id-TAIItem, + id-TAIList, + id-Target-ToSource-TransparentContainer, + id-Target-ToSource-TransparentContainer-Secondary, + id-TargetID, + id-TimeToWait, + id-TraceActivation, + id-TrafficLoadReductionIndication, + id-E-UTRAN-Trace-ID, + id-UEIdentityIndexValue, + id-UEPagingID, + id-UERadioCapability, + id-UERadioCapabilityForPaging, + id-UTRANtoLTEHOInformationRes, + id-UE-associatedLogicalS1-ConnectionListResAck, + id-UE-associatedLogicalS1-ConnectionItem, + id-UE-RetentionInformation, + id-UESecurityCapabilities, + id-UE-S1AP-IDs, + id-V2XServicesAuthorized, + id-ResetType, + id-MessageIdentifier, + id-SerialNumber, + id-WarningAreaList, + id-RepetitionPeriod, + id-NumberofBroadcastRequest, + id-WarningType, + id-WarningSecurityInfo, + id-DataCodingScheme, + id-WarningMessageContents, + id-BroadcastCompletedAreaList, + id-BroadcastCancelledAreaList, + id-RRC-Establishment-Cause, + id-TraceCollectionEntityIPAddress, + maxnoofTAIs, + maxnoofErrors, + maxnoofE-RABs, + maxnoofIndividualS1ConnectionsToReset, + maxnoofEmergencyAreaID, + maxnoofCellID, + maxnoofTAIforWarning, + maxnoofCellinTAI, + maxnoofCellinEAI, + id-ExtendedRepetitionPeriod, + id-PS-ServiceNotAvailable, + id-RegisteredLAI, + id-GUMMEIList, + id-SourceMME-GUMMEI, + id-MME-UE-S1AP-ID-2, + id-GW-TransportLayerAddress, + id-RelayNode-Indicator, + id-Correlation-ID, + id-MMERelaySupportIndicator, + id-GWContextReleaseIndication, + id-PrivacyIndicator, + id-VoiceSupportMatchIndicator, + id-Tunnel-Information-for-BBF, + id-SIPTO-Correlation-ID, + id-SIPTO-L-GW-TransportLayerAddress, + id-KillAllWarningMessages, + id-TransportInformation, + id-LHN-ID, + id-UserLocationInformation, + id-AdditionalCSFallbackIndicator, + id-ECGIListForRestart, + id-TAIListForRestart, + id-EmergencyAreaIDListForRestart, + id-ExpectedUEBehaviour, + id-Paging-eDRXInformation, + id-extended-UEIdentityIndexValue, + id-CSGMembershipInfo, + id-MME-Group-ID, + id-Additional-GUTI, + id-S1-Message, + id-PWSfailedECGIList, + id-PWSFailureIndication, + id-UE-Usage-Type, + id-UEUserPlaneCIoTSupportIndicator, + id-NB-IoT-DefaultPagingDRX, + id-NB-IoT-Paging-eDRXInformation, + id-CE-mode-B-SupportIndicator, + id-NB-IoT-UEIdentityIndexValue, + id-RRC-Resume-Cause, + id-DCN-ID, + id-ServedDCNs, + id-UESidelinkAggregateMaximumBitrate, + id-DLNASPDUDeliveryAckRequest, + id-Coverage-Level, + id-EnhancedCoverageRestricted, + id-UE-Level-QoS-Parameters, + id-DL-CP-SecurityInformation, + id-UL-CP-SecurityInformation, + id-SecondaryRATDataUsageRequest, + id-SecondaryRATDataUsageReportList, + id-HandoverFlag, + id-NRUESecurityCapabilities, + id-UE-Application-Layer-Measurement-Capability, + id-CE-ModeBRestricted, + id-DownlinkPacketLossRate, + id-UplinkPacketLossRate, + id-UECapabilityInfoRequest, + id-EndIndication, + id-EDT-Session, + id-LTE-M-Indication + + + +FROM S1AP-Constants; + +-- ************************************************************** +-- +-- Common Container Lists +-- +-- ************************************************************** + +E-RAB-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofE-RABs, {IEsSetParam} } +E-RAB-IE-ContainerPairList { S1AP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxnoofE-RABs, {IEsSetParam} } +ProtocolError-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofE-RABs, {IEsSetParam} } + +-- ************************************************************** +-- +-- HANDOVER PREPARATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Required +-- +-- ************************************************************** + +HandoverRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverRequiredIEs} }, + ... +} + +HandoverRequiredIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-TargetID CRITICALITY reject TYPE TargetID PRESENCE mandatory}| + { ID id-Direct-Forwarding-Path-Availability CRITICALITY ignore TYPE Direct-Forwarding-Path-Availability PRESENCE optional}| + { ID id-SRVCCHOIndication CRITICALITY reject TYPE SRVCCHOIndication PRESENCE optional}| + { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory}| + { ID id-Source-ToTarget-TransparentContainer-Secondary CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE optional}| + { ID id-MSClassmark2 CRITICALITY reject TYPE MSClassmark2 PRESENCE conditional}| + { ID id-MSClassmark3 CRITICALITY ignore TYPE MSClassmark3 PRESENCE conditional}| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional}| + { ID id-PS-ServiceNotAvailable CRITICALITY ignore TYPE PS-ServiceNotAvailable PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- Handover Command +-- +-- ************************************************************** + +HandoverCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCommandIEs} }, + ... +} + +HandoverCommandIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}| + { ID id-NASSecurityParametersfromE-UTRAN CRITICALITY reject TYPE NASSecurityParametersfromE-UTRAN PRESENCE conditional + -- This IE shall be present if HandoverType IE is set to value "LTEtoUTRAN" or "LTEtoGERAN" --}| + { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional}| + { ID id-E-RABtoReleaseListHOCmd CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory}| + { ID id-Target-ToSource-TransparentContainer-Secondary CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +E-RABSubjecttoDataForwardingList ::= E-RAB-IE-ContainerList { {E-RABDataForwardingItemIEs} } + +E-RABDataForwardingItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABDataForwardingItem CRITICALITY ignore TYPE E-RABDataForwardingItem PRESENCE mandatory }, + ... +} + +E-RABDataForwardingItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-transportLayerAddress TransportLayerAddress OPTIONAL, + dL-gTP-TEID GTP-TEID OPTIONAL, + uL-TransportLayerAddress TransportLayerAddress OPTIONAL, + uL-GTP-TEID GTP-TEID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { E-RABDataForwardingItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABDataForwardingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- Handover Preparation Failure +-- +-- ************************************************************** + +HandoverPreparationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverPreparationFailureIEs} }, + ... +} + +HandoverPreparationFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER RESOURCE ALLOCATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Request +-- +-- ************************************************************** + +HandoverRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {HandoverRequestIEs} }, + ... +} + +HandoverRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory}| + { ID id-E-RABToBeSetupListHOReq CRITICALITY reject TYPE E-RABToBeSetupListHOReq PRESENCE mandatory}| + { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}| + { ID id-NASSecurityParameterstoE-UTRAN CRITICALITY reject TYPE NASSecurityParameterstoE-UTRAN PRESENCE conditional + -- This IE shall be present if the Handover Type IE is set to the value "UTRANtoLTE" or "GERANtoLTE" -- }| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional}| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional}| + { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional}| + { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| + { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}| + { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}| + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}| + { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}, + ... +} + +E-RABToBeSetupListHOReq ::= E-RAB-IE-ContainerList { {E-RABToBeSetupItemHOReqIEs} } + +E-RABToBeSetupItemHOReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemHOReq CRITICALITY reject TYPE E-RABToBeSetupItemHOReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemHOReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + e-RABlevelQosParameters E-RABLevelQoSParameters, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemHOReq-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSetupItemHOReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-Data-Forwarding-Not-Possible CRITICALITY ignore EXTENSION Data-Forwarding-Not-Possible PRESENCE optional}| + { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Handover Request Acknowledge +-- +-- ************************************************************** + +HandoverRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {HandoverRequestAcknowledgeIEs} }, + ... +} + +HandoverRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABAdmittedList CRITICALITY ignore TYPE E-RABAdmittedList PRESENCE mandatory}| + { ID id-E-RABFailedToSetupListHOReqAck CRITICALITY ignore TYPE E-RABFailedtoSetupListHOReqAck PRESENCE optional}| + { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory}| + { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional}| + { ID id-CE-mode-B-SupportIndicator CRITICALITY ignore TYPE CE-mode-B-SupportIndicator PRESENCE optional}, + ... +} + +E-RABAdmittedList ::= E-RAB-IE-ContainerList { {E-RABAdmittedItemIEs} } + +E-RABAdmittedItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABAdmittedItem CRITICALITY ignore TYPE E-RABAdmittedItem PRESENCE mandatory }, + ... +} + +E-RABAdmittedItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + dL-transportLayerAddress TransportLayerAddress OPTIONAL, + dL-gTP-TEID GTP-TEID OPTIONAL, + uL-TransportLayerAddress TransportLayerAddress OPTIONAL, + uL-GTP-TEID GTP-TEID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABAdmittedItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABAdmittedItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABFailedtoSetupListHOReqAck ::= E-RAB-IE-ContainerList { {E-RABFailedtoSetupItemHOReqAckIEs} } + +E-RABFailedtoSetupItemHOReqAckIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABFailedtoSetupItemHOReqAck CRITICALITY ignore TYPE E-RABFailedToSetupItemHOReqAck PRESENCE mandatory }, + ... +} + +E-RABFailedToSetupItemHOReqAck ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { E-RABFailedToSetupItemHOReqAckExtIEs} } OPTIONAL, + ... +} + +E-RABFailedToSetupItemHOReqAckExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Handover Failure +-- +-- ************************************************************** + +HandoverFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverFailureIEs} }, + ... +} + +HandoverFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER NOTIFICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Notify +-- +-- ************************************************************** + +HandoverNotify ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverNotifyIEs} }, + ... +} + +HandoverNotifyIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- PATH SWITCH REQUEST ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Path Switch Request +-- +-- ************************************************************** + +PathSwitchRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestIEs} }, + ... +} + +PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABToBeSwitchedDLList CRITICALITY reject TYPE E-RABToBeSwitchedDLList PRESENCE mandatory}| + { ID id-SourceMME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY ignore TYPE UESecurityCapabilities PRESENCE mandatory}| + { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional}| + { ID id-SourceMME-GUMMEI CRITICALITY ignore TYPE GUMMEI PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}| + { ID id-RRC-Resume-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE optional }| + { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}, + ... +} + +E-RABToBeSwitchedDLList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedDLItemIEs} } + +E-RABToBeSwitchedDLItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSwitchedDLItem CRITICALITY reject TYPE E-RABToBeSwitchedDLItem PRESENCE mandatory }, + ... +} + +E-RABToBeSwitchedDLItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedDLItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSwitchedDLItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Path Switch Request Acknowledge +-- +-- ************************************************************** + +PathSwitchRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestAcknowledgeIEs} }, + ... +} + +PathSwitchRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional}| + { ID id-E-RABToBeSwitchedULList CRITICALITY ignore TYPE E-RABToBeSwitchedULList PRESENCE optional}| + { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| + { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}| + { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}| + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}| + { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}, + ... +} + +E-RABToBeSwitchedULList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedULItemIEs} } + +E-RABToBeSwitchedULItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSwitchedULItem CRITICALITY ignore TYPE E-RABToBeSwitchedULItem PRESENCE mandatory }, + ... +} + +E-RABToBeSwitchedULItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedULItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSwitchedULItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Path Switch Request Failure +-- +-- ************************************************************** + +PathSwitchRequestFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestFailureIEs} }, + ... +} + +PathSwitchRequestFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER CANCEL ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Cancel +-- +-- ************************************************************** + +HandoverCancel ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCancelIEs} }, + ... +} + +HandoverCancelIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Handover Cancel Request Acknowledge +-- +-- ************************************************************** + +HandoverCancelAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCancelAcknowledgeIEs} }, + ... +} + +HandoverCancelAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- E-RAB SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Setup Request +-- +-- ************************************************************** + +E-RABSetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABSetupRequestIEs} }, + ... +} + +E-RABSetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeSetupListBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupListBearerSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupListBearerSUReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemBearerSUReqIEs} } + +E-RABToBeSetupItemBearerSUReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupItemBearerSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemBearerSUReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABlevelQoSParameters E-RABLevelQoSParameters, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + nAS-PDU NAS-PDU, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemBearerSUReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeSetupItemBearerSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- E-RAB Setup Response +-- +-- ************************************************************** + +E-RABSetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABSetupResponseIEs} }, + ... +} + +E-RABSetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABSetupListBearerSURes CRITICALITY ignore TYPE E-RABSetupListBearerSURes PRESENCE optional }| + { ID id-E-RABFailedToSetupListBearerSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABSetupListBearerSURes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemBearerSUResIEs} } + +E-RABSetupItemBearerSUResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABSetupItemBearerSURes CRITICALITY ignore TYPE E-RABSetupItemBearerSURes PRESENCE mandatory }, + ... +} + +E-RABSetupItemBearerSURes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemBearerSUResExtIEs} } OPTIONAL, + ... +} + + +E-RABSetupItemBearerSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- E-RAB MODIFY ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Modify Request +-- +-- ************************************************************** + +E-RABModifyRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABModifyRequestIEs} }, + ... +} + +E-RABModifyRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeModifiedListBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedListBearerModReq PRESENCE mandatory }| + { ID id-SecondaryRATDataUsageRequest CRITICALITY ignore TYPE SecondaryRATDataUsageRequest PRESENCE optional }, + ... +} + +E-RABToBeModifiedListBearerModReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeModifiedItemBearerModReqIEs} } + +E-RABToBeModifiedItemBearerModReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeModifiedItemBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModReq PRESENCE mandatory }, + ... +} + +E-RABToBeModifiedItemBearerModReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABLevelQoSParameters E-RABLevelQoSParameters, + nAS-PDU NAS-PDU, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeModifyItemBearerModReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeModifyItemBearerModReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-TransportInformation CRITICALITY reject EXTENSION TransportInformation PRESENCE optional}, + ... +} + + + +-- ************************************************************** +-- +-- E-RAB Modify Response +-- +-- ************************************************************** + +E-RABModifyResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABModifyResponseIEs} }, + ... +} + +E-RABModifyResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABModifyListBearerModRes CRITICALITY ignore TYPE E-RABModifyListBearerModRes PRESENCE optional }| + { ID id-E-RABFailedToModifyList CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }| + { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional }, + ... +} + + +E-RABModifyListBearerModRes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModResIEs} } + +E-RABModifyItemBearerModResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABModifyItemBearerModRes CRITICALITY ignore TYPE E-RABModifyItemBearerModRes PRESENCE mandatory}, + ... +} + +E-RABModifyItemBearerModRes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModResExtIEs} } OPTIONAL, + ... +} + + +E-RABModifyItemBearerModResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + + +-- ************************************************************** +-- +-- E-RAB RELEASE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Release Command +-- +-- ************************************************************** + +E-RABReleaseCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABReleaseCommandIEs} }, + ... +} + +E-RABReleaseCommandIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }| + { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- E-RAB Release Response +-- +-- ************************************************************** + +E-RABReleaseResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { E-RABReleaseResponseIEs } }, + ... +} + +E-RABReleaseResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABReleaseListBearerRelComp CRITICALITY ignore TYPE E-RABReleaseListBearerRelComp PRESENCE optional }| + { ID id-E-RABFailedToReleaseList CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }| +-- Extension for Release 12 to support User Location Information -- + { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }| + { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional }, + ... +} + + +E-RABReleaseListBearerRelComp ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABReleaseItemBearerRelCompIEs} } + +E-RABReleaseItemBearerRelCompIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABReleaseItemBearerRelComp CRITICALITY ignore TYPE E-RABReleaseItemBearerRelComp PRESENCE mandatory }, + ... +} + +E-RABReleaseItemBearerRelComp ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABReleaseItemBearerRelCompExtIEs} } OPTIONAL, + ... +} + + +E-RABReleaseItemBearerRelCompExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- E-RAB RELEASE INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Release Indication +-- +-- ************************************************************** + +E-RABReleaseIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABReleaseIndicationIEs} }, + ... +} + +E-RABReleaseIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }| +-- Extension for Release 12 to support User Location Information -- + { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }| + { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- INITIAL CONTEXT SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Initial Context Setup Request +-- +-- ************************************************************** + +InitialContextSetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupRequestIEs} }, + ... +} + +InitialContextSetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory}| + { ID id-E-RABToBeSetupListCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupListCtxtSUReq PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory}| + { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE mandatory}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| + { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional}| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional}| + { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional}| + { ID id-AdditionalCSFallbackIndicator CRITICALITY ignore TYPE AdditionalCSFallbackIndicator PRESENCE conditional}| + { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| + { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| + { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}| + { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}| + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}| + { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}, + ... +} + + + + +E-RABToBeSetupListCtxtSUReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemCtxtSUReqIEs} } + +E-RABToBeSetupItemCtxtSUReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupItemCtxtSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemCtxtSUReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABlevelQoSParameters E-RABLevelQoSParameters, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + nAS-PDU NAS-PDU OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemCtxtSUReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeSetupItemCtxtSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- Initial Context Setup Response +-- +-- ************************************************************** + +InitialContextSetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupResponseIEs} }, + ... +} + +InitialContextSetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABSetupListCtxtSURes CRITICALITY ignore TYPE E-RABSetupListCtxtSURes PRESENCE mandatory }| + { ID id-E-RABFailedToSetupListCtxtSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABSetupListCtxtSURes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemCtxtSUResIEs} } + +E-RABSetupItemCtxtSUResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABSetupItemCtxtSURes CRITICALITY ignore TYPE E-RABSetupItemCtxtSURes PRESENCE mandatory }, + ... +} + +E-RABSetupItemCtxtSURes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemCtxtSUResExtIEs} } OPTIONAL, + ... +} + + +E-RABSetupItemCtxtSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Initial Context Setup Failure +-- +-- ************************************************************** + +InitialContextSetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupFailureIEs} }, + ... +} + +InitialContextSetupFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- PAGING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + + +-- ************************************************************** +-- +-- Paging +-- +-- ************************************************************** + +Paging ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{PagingIEs}}, + ... +} + +PagingIEs S1AP-PROTOCOL-IES ::= { + { ID id-UEIdentityIndexValue CRITICALITY ignore TYPE UEIdentityIndexValue PRESENCE mandatory}| + { ID id-UEPagingID CRITICALITY ignore TYPE UEPagingID PRESENCE mandatory}| + { ID id-pagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional}| + { ID id-CNDomain CRITICALITY ignore TYPE CNDomain PRESENCE mandatory}| + { ID id-TAIList CRITICALITY ignore TYPE TAIList PRESENCE mandatory}| + { ID id-CSG-IdList CRITICALITY ignore TYPE CSG-IdList PRESENCE optional}| + { ID id-PagingPriority CRITICALITY ignore TYPE PagingPriority PRESENCE optional}| + { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional}| +-- Extension for Release 13 to support Paging Optimisation and Coverage Enhancement paging –- + { ID id-AssistanceDataForPaging CRITICALITY ignore TYPE AssistanceDataForPaging PRESENCE optional}| + { ID id-Paging-eDRXInformation CRITICALITY ignore TYPE Paging-eDRXInformation PRESENCE optional}| + { ID id-extended-UEIdentityIndexValue CRITICALITY ignore TYPE Extended-UEIdentityIndexValue PRESENCE optional}| + { ID id-NB-IoT-Paging-eDRXInformation CRITICALITY ignore TYPE NB-IoT-Paging-eDRXInformation PRESENCE optional}| + { ID id-NB-IoT-UEIdentityIndexValue CRITICALITY ignore TYPE NB-IoT-UEIdentityIndexValue PRESENCE optional}| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}| + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}, + ... +} + +TAIList::= SEQUENCE (SIZE(1.. maxnoofTAIs)) OF ProtocolIE-SingleContainer {{TAIItemIEs}} + +TAIItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-TAIItem CRITICALITY ignore TYPE TAIItem PRESENCE mandatory }, + ... +} + +TAIItem ::= SEQUENCE { + tAI TAI, + iE-Extensions ProtocolExtensionContainer { {TAIItemExtIEs} } OPTIONAL, + ... +} + + +TAIItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- UE CONTEXT RELEASE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Release Request +-- +-- ************************************************************** + +UEContextReleaseRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseRequest-IEs}}, + ... +} + +UEContextReleaseRequest-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-GWContextReleaseIndication CRITICALITY reject TYPE GWContextReleaseIndication PRESENCE optional }| + { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- UE Context Release Command +-- +-- ************************************************************** + +UEContextReleaseCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseCommand-IEs}}, + ... +} + +UEContextReleaseCommand-IEs S1AP-PROTOCOL-IES ::= { + { ID id-UE-S1AP-IDs CRITICALITY reject TYPE UE-S1AP-IDs PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UE Context Release Complete +-- +-- ************************************************************** + +UEContextReleaseComplete ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseComplete-IEs}}, + ... +} + +UEContextReleaseComplete-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| +-- Extension for Release 12 to support User Location Information -- + { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional}| +-- Extension for Release 13 to support Paging Optimisation + { ID id-InformationOnRecommendedCellsAndENBsForPaging CRITICALITY ignore TYPE InformationOnRecommendedCellsAndENBsForPaging PRESENCE optional}| +-- Extension for Release 13 to support coverage enhancement paging – + { ID id-CellIdentifierAndCELevelForCECapableUEs CRITICALITY ignore TYPE CellIdentifierAndCELevelForCECapableUEs PRESENCE optional}| + { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- UE CONTEXT MODIFICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Modification Request +-- +-- ************************************************************** + +UEContextModificationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationRequestIEs} }, + ... +} + +UEContextModificationRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE optional}| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| + { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional}| + { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}| + { ID id-AdditionalCSFallbackIndicator CRITICALITY ignore TYPE AdditionalCSFallbackIndicator PRESENCE conditional}| + { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-SRVCCOperationNotPossible CRITICALITY ignore TYPE SRVCCOperationNotPossible PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| + { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}| + { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}| + { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}, + ... +} +-- ************************************************************** +-- +-- UE Context Modification Response +-- +-- ************************************************************** + +UEContextModificationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationResponseIEs} }, + ... +} + +UEContextModificationResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- UE Context Modification Failure +-- +-- ************************************************************** + +UEContextModificationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationFailureIEs} }, + ... +} + +UEContextModificationFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- UE RADIO CAPABILITY MATCH ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Radio Capability Match Request +-- +-- ************************************************************** + +UERadioCapabilityMatchRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UERadioCapabilityMatchRequestIEs} }, + ... +} + +UERadioCapabilityMatchRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- UE Radio Capability Match Response +-- +-- ************************************************************** + +UERadioCapabilityMatchResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UERadioCapabilityMatchResponseIEs} }, + ... +} + +UERadioCapabilityMatchResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-VoiceSupportMatchIndicator CRITICALITY reject TYPE VoiceSupportMatchIndicator PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- NAS TRANSPORT ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- DOWNLINK NAS TRANSPORT +-- +-- ************************************************************** + +DownlinkNASTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkNASTransport-IEs}}, + ... +} + +DownlinkNASTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}| + { ID id-DLNASPDUDeliveryAckRequest CRITICALITY ignore TYPE DLNASPDUDeliveryAckRequest PRESENCE optional}| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}| + { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}| + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}| + { ID id-UECapabilityInfoRequest CRITICALITY ignore TYPE UECapabilityInfoRequest PRESENCE optional}| + { ID id-EndIndication CRITICALITY ignore TYPE EndIndication PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- INITIAL UE MESSAGE +-- +-- ************************************************************** + +InitialUEMessage ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{InitialUEMessage-IEs}}, + ... +} + +InitialUEMessage-IEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}| + { ID id-TAI CRITICALITY reject TYPE TAI PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-RRC-Establishment-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE mandatory}| + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE optional}| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional}| + { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-RelayNode-Indicator CRITICALITY reject TYPE RelayNode-Indicator PRESENCE optional}| + { ID id-GUMMEIType CRITICALITY ignore TYPE GUMMEIType PRESENCE optional}| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}| + { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}| + { ID id-MME-Group-ID CRITICALITY ignore TYPE MME-Group-ID PRESENCE optional}| + { ID id-UE-Usage-Type CRITICALITY ignore TYPE UE-Usage-Type PRESENCE optional}| + { ID id-CE-mode-B-SupportIndicator CRITICALITY ignore TYPE CE-mode-B-SupportIndicator PRESENCE optional}| + { ID id-DCN-ID CRITICALITY ignore TYPE DCN-ID PRESENCE optional}| + { ID id-Coverage-Level CRITICALITY ignore TYPE Coverage-Level PRESENCE optional}| + { ID id-UE-Application-Layer-Measurement-Capability CRITICALITY ignore TYPE UE-Application-Layer-Measurement-Capability PRESENCE optional}| + { ID id-EDT-Session CRITICALITY ignore TYPE EDT-Session PRESENCE optional}, + + ... +} + + +-- ************************************************************** +-- +-- UPLINK NAS TRANSPORT +-- +-- ************************************************************** + +UplinkNASTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkNASTransport-IEs}}, + ... +} + +UplinkNASTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| + { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, + ... +} +-- ************************************************************** +-- +-- NAS NON DELIVERY INDICATION +-- +-- ************************************************************** + +NASNonDeliveryIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{NASNonDeliveryIndication-IEs}}, + ... +} + +NASNonDeliveryIndication-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- REROUTE NAS REQUEST +-- +-- ************************************************************** + +RerouteNASRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RerouteNASRequest-IEs}}, + ... +} + +RerouteNASRequest-IEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-S1-Message CRITICALITY reject TYPE OCTET STRING PRESENCE mandatory}| + { ID id-MME-Group-ID CRITICALITY reject TYPE MME-Group-ID PRESENCE mandatory}| + { ID id-Additional-GUTI CRITICALITY ignore TYPE Additional-GUTI PRESENCE optional}| + { ID id-UE-Usage-Type CRITICALITY ignore TYPE UE-Usage-Type PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- NAS DELIVERY INDICATION +-- +-- ************************************************************** + +NASDeliveryIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { NASDeliveryIndicationIEs} }, + ... +} + +NASDeliveryIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- RESET ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Reset +-- +-- ************************************************************** + +Reset ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ResetIEs} }, + ... +} + +ResetIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-ResetType CRITICALITY reject TYPE ResetType PRESENCE mandatory }, + ... +} + +ResetType ::= CHOICE { + s1-Interface ResetAll, + partOfS1-Interface UE-associatedLogicalS1-ConnectionListRes, + ... +} + + + +ResetAll ::= ENUMERATED { + reset-all, + ... +} + +UE-associatedLogicalS1-ConnectionListRes ::= SEQUENCE (SIZE(1.. maxnoofIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemRes } } + +UE-associatedLogicalS1-ConnectionItemRes S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY reject TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- Reset Acknowledge +-- +-- ************************************************************** + +ResetAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} }, + ... +} + +ResetAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionListResAck CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionListResAck PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +UE-associatedLogicalS1-ConnectionListResAck ::= SEQUENCE (SIZE(1.. maxnoofIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemResAck } } + +UE-associatedLogicalS1-ConnectionItemResAck S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- ERROR INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Error Indication +-- +-- ************************************************************** + +ErrorIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ErrorIndicationIEs}}, + ... +} + +ErrorIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE optional }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- S1 SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- S1 Setup Request +-- +-- ************************************************************** + +S1SetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupRequestIEs} }, + ... +} + +S1SetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}| + { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional}| + { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE mandatory}| + { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE mandatory}| + { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}| + { ID id-UE-RetentionInformation CRITICALITY ignore TYPE UE-RetentionInformation PRESENCE optional}| + { ID id-NB-IoT-DefaultPagingDRX CRITICALITY ignore TYPE NB-IoT-DefaultPagingDRX PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- S1 Setup Response +-- +-- ************************************************************** + +S1SetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupResponseIEs} }, + ... +} + + +S1SetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional}| + { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE mandatory}| + { ID id-RelativeMMECapacity CRITICALITY ignore TYPE RelativeMMECapacity PRESENCE mandatory}| + { ID id-MMERelaySupportIndicator CRITICALITY ignore TYPE MMERelaySupportIndicator PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-UE-RetentionInformation CRITICALITY ignore TYPE UE-RetentionInformation PRESENCE optional}| + { ID id-ServedDCNs CRITICALITY ignore TYPE ServedDCNs PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- S1 Setup Failure +-- +-- ************************************************************** + +S1SetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupFailureIEs} }, + ... +} + +S1SetupFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Configuration Update +-- +-- ************************************************************** + +ENBConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateIEs} }, + ... +} + +ENBConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= { + { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional}| + { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE optional}| + { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}| + { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional}| + { ID id-NB-IoT-DefaultPagingDRX CRITICALITY ignore TYPE NB-IoT-DefaultPagingDRX PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- eNB Configuration Update Acknowledge +-- +-- ************************************************************** + +ENBConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateAcknowledgeIEs} }, + ... +} + + +ENBConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- eNB Configuration Update Failure +-- +-- ************************************************************** + +ENBConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateFailureIEs} }, + ... +} + +ENBConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, +... +} + + +-- ************************************************************** +-- +-- MME CONFIGURATION UPDATE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Configuration Update +-- +-- ************************************************************** + +MMEConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateIEs} }, + ... +} + +MMEConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= { + { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }| + { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE optional }| + { ID id-RelativeMMECapacity CRITICALITY reject TYPE RelativeMMECapacity PRESENCE optional }| + { ID id-ServedDCNs CRITICALITY ignore TYPE ServedDCNs PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- MME Configuration Update Acknowledge +-- +-- ************************************************************** + +MMEConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateAcknowledgeIEs} }, + ... +} + + +MMEConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- MME Configuration Update Failure +-- +-- ************************************************************** + +MMEConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateFailureIEs} }, + ... +} + +MMEConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- DOWNLINK S1 CDMA2000 TUNNELLING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Downlink S1 CDMA2000 Tunnelling +-- +-- ************************************************************** + +DownlinkS1cdma2000tunnelling ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {DownlinkS1cdma2000tunnellingIEs} }, + ... +} + +DownlinkS1cdma2000tunnellingIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional }| + { ID id-cdma2000HOStatus CRITICALITY ignore TYPE Cdma2000HOStatus PRESENCE optional }| + { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory }| + { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UPLINK S1 CDMA2000 TUNNELLING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Uplink S1 CDMA2000 Tunnelling +-- +-- ************************************************************** + +UplinkS1cdma2000tunnelling ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {UplinkS1cdma2000tunnellingIEs} }, + ... +} + +UplinkS1cdma2000tunnellingIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory }| + { ID id-cdma2000SectorID CRITICALITY reject TYPE Cdma2000SectorID PRESENCE mandatory }| + { ID id-cdma2000HORequiredIndication CRITICALITY ignore TYPE Cdma2000HORequiredIndication PRESENCE optional }| + { ID id-cdma2000OneXSRVCCInfo CRITICALITY reject TYPE Cdma2000OneXSRVCCInfo PRESENCE optional }| + { ID id-cdma2000OneXRAND CRITICALITY reject TYPE Cdma2000OneXRAND PRESENCE optional }| + { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory }| + { ID id-EUTRANRoundTripDelayEstimationInfo CRITICALITY ignore TYPE EUTRANRoundTripDelayEstimationInfo PRESENCE optional }, + -- Extension for Release 9 to assist target HRPD access with the acquisition of the UE -- + ... +} + + +-- ************************************************************** +-- +-- UE CAPABILITY INFO INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Capability Info Indication +-- +-- ************************************************************** + +UECapabilityInfoIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UECapabilityInfoIndicationIEs} }, + ... +} + +UECapabilityInfoIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE mandatory}| + { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional}| + { ID id-UE-Application-Layer-Measurement-Capability CRITICALITY ignore TYPE UE-Application-Layer-Measurement-Capability PRESENCE optional}| + { ID id-LTE-M-Indication CRITICALITY ignore TYPE LTE-M-Indication PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- eNB STATUS TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Status Transfer +-- +-- ************************************************************** + +ENBStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBStatusTransferIEs} }, + ... +} + +ENBStatusTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- MME STATUS TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Status Transfer +-- +-- ************************************************************** + +MMEStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEStatusTransferIEs} }, + ... +} + +MMEStatusTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- TRACE ELEMENTARY PROCEDURES +-- +-- ************************************************************** +-- ************************************************************** +-- +-- Trace Start +-- +-- ************************************************************** + +TraceStart ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {TraceStartIEs} }, + ... +} + +TraceStartIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Trace Failure Indication +-- +-- ************************************************************** + +TraceFailureIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {TraceFailureIndicationIEs} }, + ... +} + +TraceFailureIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- DEACTIVATE TRACE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Deactivate Trace +-- +-- ************************************************************** + +DeactivateTrace ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { DeactivateTraceIEs} }, + ... +} + +DeactivateTraceIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- CELL TRAFFIC TRACE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Cell Traffic Trace +-- +-- ************************************************************** + +CellTrafficTrace ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { CellTrafficTraceIEs } }, + ... +} + +CellTrafficTraceIEs S1AP-PROTOCOL-IES ::= { + {ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + {ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + {ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }| + {ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }| + {ID id-TraceCollectionEntityIPAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE mandatory }| + {ID id-PrivacyIndicator CRITICALITY ignore TYPE PrivacyIndicator PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- LOCATION ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Location Reporting Control +-- +-- ************************************************************** + +LocationReportingControl ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportingControlIEs} }, + ... +} + +LocationReportingControlIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Location Report Failure Indication +-- +-- ************************************************************** + +LocationReportingFailureIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportingFailureIndicationIEs} }, + ... +} + +LocationReportingFailureIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Location Report +-- +-- ************************************************************** + +LocationReport ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportIEs} }, + ... +} + +LocationReportIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory }| + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- OVERLOAD ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Overload Start +-- +-- ************************************************************** + +OverloadStart ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {OverloadStartIEs} }, + ... +} + +OverloadStartIEs S1AP-PROTOCOL-IES ::= { + { ID id-OverloadResponse CRITICALITY reject TYPE OverloadResponse PRESENCE mandatory }| + { ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional }| + { ID id-TrafficLoadReductionIndication CRITICALITY ignore TYPE TrafficLoadReductionIndication PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- Overload Stop +-- +-- ************************************************************** + +OverloadStop ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {OverloadStopIEs} }, + ... +} + +OverloadStopIEs S1AP-PROTOCOL-IES ::= { +{ ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- WRITE-REPLACE WARNING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Write-Replace Warning Request +-- +-- ************************************************************** + + +WriteReplaceWarningRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {WriteReplaceWarningRequestIEs} }, + ... +} + +WriteReplaceWarningRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional }| + { ID id-RepetitionPeriod CRITICALITY reject TYPE RepetitionPeriod PRESENCE mandatory }| + { ID id-ExtendedRepetitionPeriod CRITICALITY reject TYPE ExtendedRepetitionPeriod PRESENCE optional }| + { ID id-NumberofBroadcastRequest CRITICALITY reject TYPE NumberofBroadcastRequest PRESENCE mandatory }| + { ID id-WarningType CRITICALITY ignore TYPE WarningType PRESENCE optional }| + { ID id-WarningSecurityInfo CRITICALITY ignore TYPE WarningSecurityInfo PRESENCE optional }| + { ID id-DataCodingScheme CRITICALITY ignore TYPE DataCodingScheme PRESENCE optional }| + { ID id-WarningMessageContents CRITICALITY ignore TYPE WarningMessageContents PRESENCE optional }| + { ID id-ConcurrentWarningMessageIndicator CRITICALITY reject TYPE ConcurrentWarningMessageIndicator PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- Write-Replace Warning Response +-- +-- ************************************************************** + +WriteReplaceWarningResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {WriteReplaceWarningResponseIEs} }, + ... +} + +WriteReplaceWarningResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-BroadcastCompletedAreaList CRITICALITY ignore TYPE BroadcastCompletedAreaList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- eNB DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Direct Information Transfer +-- +-- ************************************************************** + +ENBDirectInformationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ ENBDirectInformationTransferIEs}}, + ... +} + +ENBDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-Inter-SystemInformationTransferTypeEDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory }, + ... +} + +Inter-SystemInformationTransferType ::= CHOICE { + rIMTransfer RIMTransfer, + ... +} + +-- ************************************************************** +-- +-- MME DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Direct Information Transfer +-- +-- ************************************************************** + +MMEDirectInformationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ MMEDirectInformationTransferIEs}}, + ... +} + +MMEDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-Inter-SystemInformationTransferTypeMDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory }, + ... +} +-- ************************************************************** +-- +-- eNB CONFIGURATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Configuration Transfer +-- +-- ************************************************************** + +ENBConfigurationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ ENBConfigurationTransferIEs}}, + ... +} + +ENBConfigurationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-SONConfigurationTransferECT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- MME CONFIGURATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Configuration Transfer +-- +-- ************************************************************** + +MMEConfigurationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ MMEConfigurationTransferIEs}}, + ... +} + +MMEConfigurationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-SONConfigurationTransferMCT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- PRIVATE MESSAGE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Private Message +-- +-- ************************************************************** + +PrivateMessage ::= SEQUENCE { + privateIEs PrivateIE-Container {{PrivateMessageIEs}}, + ... +} + +PrivateMessageIEs S1AP-PRIVATE-IES ::= { + ... +} + +-- ************************************************************** +-- +-- KILL PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Kill Request +-- +-- ************************************************************** + + +KillRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {KillRequestIEs} }, + ... +} + +KillRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory}| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory}| + { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional}| + { ID id-KillAllWarningMessages CRITICALITY reject TYPE KillAllWarningMessages PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Kill Response +-- +-- ************************************************************** + +KillResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {KillResponseIEs} }, + ... +} + +KillResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-BroadcastCancelledAreaList CRITICALITY ignore TYPE BroadcastCancelledAreaList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- PWS RESTART INDICATION PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- PWS Restart Indication +-- +-- ************************************************************** + +PWSRestartIndication::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ PWSRestartIndicationIEs}}, + ... +} + +PWSRestartIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-ECGIListForRestart CRITICALITY reject TYPE ECGIListForRestart PRESENCE mandatory}| + { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}| + { ID id-TAIListForRestart CRITICALITY reject TYPE TAIListForRestart PRESENCE mandatory}| + { ID id-EmergencyAreaIDListForRestart CRITICALITY reject TYPE EmergencyAreaIDListForRestart PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- PWS Failure Indication +-- +-- ************************************************************** + +PWSFailureIndication::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ PWSFailureIndicationIEs}}, + ... +} + +PWSFailureIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-PWSfailedECGIList CRITICALITY reject TYPE PWSfailedECGIList PRESENCE mandatory}| + { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- LPPA TRANSPORT ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- DOWNLINK UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +DownlinkUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkUEAssociatedLPPaTransport-IEs}}, + ... +} + +DownlinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UPLINK UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +UplinkUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkUEAssociatedLPPaTransport-IEs}}, + ... +} + +UplinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- DOWNLINK NON UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +DownlinkNonUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkNonUEAssociatedLPPaTransport-IEs}}, + ... +} + +DownlinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UPLINK NON UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +UplinkNonUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkNonUEAssociatedLPPaTransport-IEs}}, + ... +} + +UplinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }| + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory }, + ... +} + + +-- ************************************************************** +-- +-- E-RAB MODIFICATION INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Modification Indication +-- +-- ************************************************************** + +E-RABModificationIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { E-RABModificationIndicationIEs} }, + ... +} + +E-RABModificationIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABToBeModifiedListBearerModInd CRITICALITY reject TYPE E-RABToBeModifiedListBearerModInd PRESENCE mandatory}| + { ID id-E-RABNotToBeModifiedListBearerModInd CRITICALITY reject TYPE E-RABNotToBeModifiedListBearerModInd PRESENCE optional}| + { ID id-CSGMembershipInfo CRITICALITY reject TYPE CSGMembershipInfo PRESENCE optional}| +-- Extension for Release 11 to support BBAI -- + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}| + { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional }, + ... +} + +E-RABToBeModifiedListBearerModInd ::= E-RAB-IE-ContainerList { {E-RABToBeModifiedItemBearerModIndIEs} } + +E-RABToBeModifiedItemBearerModIndIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeModifiedItemBearerModInd CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModInd PRESENCE mandatory}, + ... +} + +E-RABToBeModifiedItemBearerModInd ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + dL-GTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABToBeModifiedItemBearerModInd-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeModifiedItemBearerModInd-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABNotToBeModifiedListBearerModInd ::= E-RAB-IE-ContainerList { {E-RABNotToBeModifiedItemBearerModIndIEs} } + +E-RABNotToBeModifiedItemBearerModIndIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABNotToBeModifiedItemBearerModInd CRITICALITY reject TYPE E-RABNotToBeModifiedItemBearerModInd PRESENCE mandatory}, + ... +} + +E-RABNotToBeModifiedItemBearerModInd ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + dL-GTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABNotToBeModifiedItemBearerModInd-ExtIEs} } OPTIONAL, + ... +} + +E-RABNotToBeModifiedItemBearerModInd-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CSGMembershipInfo ::= SEQUENCE { + cSGMembershipStatus CSGMembershipStatus, + cSG-Id CSG-Id, + cellAccessMode CellAccessMode OPTIONAL, + pLMNidentity PLMNidentity OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { CSGMembershipInfo-ExtIEs} } OPTIONAL, + ... +} + +CSGMembershipInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- E-RAB Modification Confirm +-- +-- ************************************************************** + +E-RABModificationConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABModificationConfirmIEs} }, + ... +} + +E-RABModificationConfirmIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABModifyListBearerModConf CRITICALITY ignore TYPE E-RABModifyListBearerModConf PRESENCE optional}| + { ID id-E-RABFailedToModifyListBearerModConf CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-E-RABToBeReleasedListBearerModConf CRITICALITY ignore TYPE E-RABList PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}, + ... +} + +E-RABModifyListBearerModConf ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModConfIEs} } + +E-RABModifyItemBearerModConfIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABModifyItemBearerModConf CRITICALITY ignore TYPE E-RABModifyItemBearerModConf PRESENCE mandatory}, + ... +} + +E-RABModifyItemBearerModConf ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModConfExtIEs} } OPTIONAL, + ... +} + + +E-RABModifyItemBearerModConfExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- UE CONTEXT MODIFICATION INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Modification Indication +-- +-- ************************************************************** + +UEContextModificationIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationIndicationIEs} }, + ... +} + +UEContextModificationIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-CSGMembershipInfo CRITICALITY reject TYPE CSGMembershipInfo PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- UE Context Modification Confirm +-- +-- ************************************************************** + +UEContextModificationConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {UEContextModificationConfirmIEs} }, + ... +} + +UEContextModificationConfirmIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- UE CONTEXT SUSPEND ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Suspend Request +-- +-- ************************************************************** + +UEContextSuspendRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextSuspendRequestIEs} }, + ... +} + +UEContextSuspendRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-InformationOnRecommendedCellsAndENBsForPaging CRITICALITY ignore TYPE InformationOnRecommendedCellsAndENBsForPaging PRESENCE optional}| + { ID id-CellIdentifierAndCELevelForCECapableUEs CRITICALITY ignore TYPE CellIdentifierAndCELevelForCECapableUEs PRESENCE optional}| + { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- UE Context Suspend Response +-- +-- ************************************************************** + +UEContextSuspendResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {UEContextSuspendResponseIEs} }, + ... +} + +UEContextSuspendResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- UE CONTEXT RESUME ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Resume Request +-- +-- ************************************************************** + +UEContextResumeRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextResumeRequestIEs} }, + ... +} + +UEContextResumeRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABFailedToResumeListResumeReq CRITICALITY reject TYPE E-RABFailedToResumeListResumeReq PRESENCE optional}| + { ID id-RRC-Resume-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE optional}, + ... +} + +E-RABFailedToResumeListResumeReq ::= E-RAB-IE-ContainerList { {E-RABFailedToResumeItemResumeReqIEs} } + +E-RABFailedToResumeItemResumeReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABFailedToResumeItemResumeReq CRITICALITY reject TYPE E-RABFailedToResumeItemResumeReq PRESENCE mandatory}, + ... +} + +E-RABFailedToResumeItemResumeReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { E-RABFailedToResumeItemResumeReq-ExtIEs} } OPTIONAL, + ... +} + +E-RABFailedToResumeItemResumeReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- UE Context Resume Response +-- +-- ************************************************************** + +UEContextResumeResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextResumeResponseIEs} }, + ... +} + +UEContextResumeResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABFailedToResumeListResumeRes CRITICALITY reject TYPE E-RABFailedToResumeListResumeRes PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE optional}, + ... +} + +E-RABFailedToResumeListResumeRes ::= E-RAB-IE-ContainerList { {E-RABFailedToResumeItemResumeResIEs} } + +E-RABFailedToResumeItemResumeResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABFailedToResumeItemResumeRes CRITICALITY reject TYPE E-RABFailedToResumeItemResumeRes PRESENCE mandatory}, + ... +} + +E-RABFailedToResumeItemResumeRes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { E-RABFailedToResumeItemResumeRes-ExtIEs} } OPTIONAL, + ... +} + +E-RABFailedToResumeItemResumeRes-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- UE Context Resume Failure +-- +-- ************************************************************** + +UEContextResumeFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextResumeFailureIEs} }, + ... +} + +UEContextResumeFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Connection Establishment Indication +-- +-- ************************************************************** + +ConnectionEstablishmentIndication::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ConnectionEstablishmentIndicationIEs} }, + ... +} + +ConnectionEstablishmentIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional }| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional }| + { ID id-DL-CP-SecurityInformation CRITICALITY ignore TYPE DL-CP-SecurityInformation PRESENCE optional }| + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}| + { ID id-EndIndication CRITICALITY ignore TYPE EndIndication PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Retrieve UE Information +-- +-- ************************************************************** + +RetrieveUEInformation ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { RetrieveUEInformationIEs} }, + ... +} + +RetrieveUEInformationIEs S1AP-PROTOCOL-IES ::= { + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE mandatory}, +... + +} + + +-- ************************************************************** + +-- UE Information Transfer +-- +-- ************************************************************** +UEInformationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEInformationTransferIEs} }, + ... +} + +UEInformationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE mandatory}| + { ID id-UE-Level-QoS-Parameters CRITICALITY ignore TYPE E-RABLevelQoSParameters PRESENCE optional}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- eNB CP Relocation Indication +-- +-- ************************************************************** + +ENBCPRelocationIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { ENBCPRelocationIndicationIEs} }, + ... +} + +ENBCPRelocationIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| + { ID id-UL-CP-SecurityInformation CRITICALITY reject TYPE UL-CP-SecurityInformation PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- MME CP Relocation Indication +-- +-- ************************************************************** + +MMECPRelocationIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { MMECPRelocationIndicationIEs} }, + ... +} + +MMECPRelocationIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- Secondary RAT Data Usage Report +-- +-- ************************************************************** + +SecondaryRATDataUsageReport ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { SecondaryRATDataUsageReportIEs} }, + ... +} + +SecondaryRATDataUsageReportIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional}| + { ID id-HandoverFlag CRITICALITY ignore TYPE HandoverFlag PRESENCE optional}, + ... +} + +END + + + +-- ************************************************************** +-- +-- Information Element Definitions +-- +-- ************************************************************** + +S1AP-IEs { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-IEs (2) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + id-E-RABInformationListItem, + id-E-RABItem, + id-Bearers-SubjectToStatusTransfer-Item, + id-Time-Synchronisation-Info, + id-x2TNLConfigurationInfo, + id-eNBX2ExtendedTransportLayerAddresses, + id-MDTConfiguration, + id-Time-UE-StayedInCell-EnhancedGranularity, + id-HO-Cause, + id-M3Configuration, + id-M4Configuration, + id-M5Configuration, + id-MDT-Location-Info, + id-SignallingBasedMDTPLMNList, + id-MobilityInformation, + id-ULCOUNTValueExtended, + id-DLCOUNTValueExtended, + id-ReceiveStatusOfULPDCPSDUsExtended, + id-eNBIndirectX2TransportLayerAddresses, + id-Muting-Availability-Indication, + id-Muting-Pattern-Information, + id-NRrestriction, + id-Synchronisation-Information, + id-uE-HistoryInformationFromTheUE, + id-LoggedMBSFNMDT, + id-SON-Information-Report, + id-RecommendedCellItem, + id-RecommendedENBItem, + id-ProSeUEtoNetworkRelaying, + id-ULCOUNTValuePDCP-SNlength18, + id-DLCOUNTValuePDCP-SNlength18, + id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18, + id-M6Configuration, + id-M7Configuration, + id-RAT-Type, + id-extended-e-RAB-MaximumBitrateDL, + id-extended-e-RAB-MaximumBitrateUL, + id-extended-e-RAB-GuaranteedBitrateDL, + id-extended-e-RAB-GuaranteedBitrateUL, + id-extended-uEaggregateMaximumBitRateDL, + id-extended-uEaggregateMaximumBitRateUL, + id-SecondaryRATDataUsageReportItem, + id-E-RABUsageReportItem, + id-UEAppLayerMeasConfig, + id-serviceType, + id-UnlicensedSpectrumRestriction, + id-CNTypeRestrictions, id-DownlinkPacketLossRate, + id-UplinkPacketLossRate, + maxnoofCSGs, + maxnoofE-RABs, + maxnoofErrors, + maxnoofBPLMNs, + maxnoofPLMNsPerMME, + maxnoofTACs, + maxnoofEPLMNs, + maxnoofEPLMNsPlusOne, + maxnoofForbLACs, + maxnoofForbTACs, + maxnoofCells, + maxnoofCellID, + maxnoofDCNs, + maxnoofEmergencyAreaID, + maxnoofTAIforWarning, + maxnoofCellinTAI, + maxnoofCellinEAI, + maxnoofeNBX2TLAs, + maxnoofeNBX2ExtTLAs, + maxnoofeNBX2GTPTLAs, + maxnoofRATs, + maxnoofGroupIDs, + maxnoofMMECs, + maxnoofTAforMDT, + maxnoofCellIDforMDT, + maxnoofMDTPLMNs, + maxnoofCellsforRestart, + maxnoofRestartTAIs, + maxnoofRestartEmergencyAreaIDs, + maxnoofMBSFNAreaMDT, + maxEARFCN, + maxnoofCellsineNB, + maxnoofRecommendedCells, + maxnoofRecommendedENBs, + maxnooftimeperiods, + maxnoofCellIDforQMC, + maxnoofTAforQMC, + maxnoofPLMNforQMC + + + +FROM S1AP-Constants + + Criticality, + ProcedureCode, + ProtocolIE-ID, + TriggeringMessage +FROM S1AP-CommonDataTypes + + ProtocolExtensionContainer{}, + S1AP-PROTOCOL-EXTENSION, + ProtocolIE-SingleContainer{}, + S1AP-PROTOCOL-IES + +FROM S1AP-Containers; + +-- A + +Additional-GUTI::= SEQUENCE { + gUMMEI GUMMEI, + m-TMSI M-TMSI, + iE-Extensions ProtocolExtensionContainer { {Additional-GUTI-ExtIEs} } OPTIONAL, + ... +} + +Additional-GUTI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +AerialUEsubscriptionInformation ::= ENUMERATED { + allowed, + not-allowed, + ... +} + +AreaScopeOfMDT ::= CHOICE { + cellBased CellBasedMDT, + tABased TABasedMDT, + pLMNWide NULL, + ..., + tAIBased TAIBasedMDT +} + + +AreaScopeOfQMC ::= CHOICE { + cellBased CellBasedQMC, + tABased TABasedQMC, + tAIBased TAIBasedQMC, + pLMNAreaBased PLMNAreaBasedQMC, + ... +} + +AllocationAndRetentionPriority ::= SEQUENCE { + priorityLevel PriorityLevel, + pre-emptionCapability Pre-emptionCapability, + pre-emptionVulnerability Pre-emptionVulnerability, + iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, + ... +} + +AllocationAndRetentionPriority-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +AssistanceDataForCECapableUEs ::= SEQUENCE { + cellIdentifierAndCELevelForCECapableUEs CellIdentifierAndCELevelForCECapableUEs, + iE-Extensions ProtocolExtensionContainer { { InformationForCECapableUEs-ExtIEs} } OPTIONAL, + ... +} + +InformationForCECapableUEs-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +AssistanceDataForPaging ::= SEQUENCE { + assistanceDataForRecommendedCells AssistanceDataForRecommendedCells OPTIONAL, + assistanceDataForCECapableUEs AssistanceDataForCECapableUEs OPTIONAL, + pagingAttemptInformation PagingAttemptInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { AssistanceDataForPaging-ExtIEs} } OPTIONAL, + ... +} + +AssistanceDataForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +AssistanceDataForRecommendedCells ::= SEQUENCE { + recommendedCellsForPaging RecommendedCellsForPaging, + iE-Extensions ProtocolExtensionContainer { { AssistanceDataForRecommendedCells-ExtIEs} } OPTIONAL, + ... +} + +AssistanceDataForRecommendedCells-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- B + +Bearers-SubjectToStatusTransferList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { { Bearers-SubjectToStatusTransfer-ItemIEs } } + +Bearers-SubjectToStatusTransfer-ItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-Bearers-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE Bearers-SubjectToStatusTransfer-Item PRESENCE mandatory }, + ... +} + +Bearers-SubjectToStatusTransfer-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-COUNTvalue COUNTvalue, + dL-COUNTvalue COUNTvalue, + receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {Bearers-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL, + ... +} + +Bearers-SubjectToStatusTransfer-ItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-ULCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| + { ID id-DLCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| + { ID id-ReceiveStatusOfULPDCPSDUsExtended CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsExtended PRESENCE optional}| + { ID id-ULCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}| + { ID id-DLCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}| + { ID id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 PRESENCE optional}, + ... +} + +BearerType ::= ENUMERATED { + non-IP, + ... +} + +BitRate ::= INTEGER (0..10000000000) + +BPLMNs ::= SEQUENCE (SIZE(1.. maxnoofBPLMNs)) OF PLMNidentity + +BroadcastCancelledAreaList ::= CHOICE { + cellID-Cancelled CellID-Cancelled, + tAI-Cancelled TAI-Cancelled, + emergencyAreaID-Cancelled EmergencyAreaID-Cancelled, + ... +} + +BroadcastCompletedAreaList ::= CHOICE { + cellID-Broadcast CellID-Broadcast, + tAI-Broadcast TAI-Broadcast, + emergencyAreaID-Broadcast EmergencyAreaID-Broadcast, + ... +} + + +-- C + +CancelledCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CancelledCellinEAI-Item + +CancelledCellinEAI-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CancelledCellinEAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CancelledCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CancelledCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CancelledCellinTAI-Item + +CancelledCellinTAI-Item ::= SEQUENCE{ + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CancelledCellinTAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CancelledCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Cause ::= CHOICE { + radioNetwork CauseRadioNetwork, + transport CauseTransport, + nas CauseNas, + protocol CauseProtocol, + misc CauseMisc, + ... +} + +CauseMisc ::= ENUMERATED { + control-processing-overload, + not-enough-user-plane-processing-resources, + hardware-failure, + om-intervention, + unspecified, + unknown-PLMN, +... +} + +CauseProtocol ::= ENUMERATED { + transfer-syntax-error, + abstract-syntax-error-reject, + abstract-syntax-error-ignore-and-notify, + message-not-compatible-with-receiver-state, + semantic-error, + abstract-syntax-error-falsely-constructed-message, + unspecified, + ... +} + +CauseRadioNetwork ::= ENUMERATED { + unspecified, + tx2relocoverall-expiry, + successful-handover, + release-due-to-eutran-generated-reason, + handover-cancelled, + partial-handover, + ho-failure-in-target-EPC-eNB-or-target-system, + ho-target-not-allowed, + tS1relocoverall-expiry, + tS1relocprep-expiry, + cell-not-available, + unknown-targetID, + no-radio-resources-available-in-target-cell, + unknown-mme-ue-s1ap-id, + unknown-enb-ue-s1ap-id, + unknown-pair-ue-s1ap-id, + handover-desirable-for-radio-reason, + time-critical-handover, + resource-optimisation-handover, + reduce-load-in-serving-cell, + user-inactivity, + radio-connection-with-ue-lost, + load-balancing-tau-required, + cs-fallback-triggered, + ue-not-available-for-ps-service, + radio-resources-not-available, + failure-in-radio-interface-procedure, + invalid-qos-combination, + interrat-redirection, + interaction-with-other-procedure, + unknown-E-RAB-ID, + multiple-E-RAB-ID-instances, + encryption-and-or-integrity-protection-algorithms-not-supported, + s1-intra-system-handover-triggered, + s1-inter-system-handover-triggered, + x2-handover-triggered, + ..., + redirection-towards-1xRTT, + not-supported-QCI-value, + invalid-CSG-Id, + release-due-to-pre-emption + +} + +CauseTransport ::= ENUMERATED { + transport-resource-unavailable, + unspecified, + ... +} + +CauseNas ::= ENUMERATED { + normal-release, + authentication-failure, + detach, + unspecified, + ..., + csg-subscription-expiry +} + +CellAccessMode ::= ENUMERATED { + hybrid, + ... +} + +CellIdentifierAndCELevelForCECapableUEs ::= SEQUENCE { + global-Cell-ID EUTRAN-CGI, + cELevel CELevel, + iE-Extensions ProtocolExtensionContainer { { CellIdentifierAndCELevelForCECapableUEs-ExtIEs} } OPTIONAL, + ... +} + +CellIdentifierAndCELevelForCECapableUEs-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- Coverage Enhancement level encoded according to TS 36.331 [16] -- +CELevel ::= OCTET STRING + +CE-mode-B-SupportIndicator ::= ENUMERATED { + supported, + ... +} + +CellIdentity ::= BIT STRING (SIZE (28)) + +CellID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Broadcast-Item + +CellID-Broadcast-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CellID-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +CellID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellID-Cancelled::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Cancelled-Item + +CellID-Cancelled-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CellID-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +CellID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellBasedMDT::= SEQUENCE { + cellIdListforMDT CellIdListforMDT, + iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +CellBasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF EUTRAN-CGI + +CellBasedQMC::= SEQUENCE { + cellIdListforQMC CellIdListforQMC, + iE-Extensions ProtocolExtensionContainer { {CellBasedQMC-ExtIEs} } OPTIONAL, + ... +} + +CellBasedQMC-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellIdListforQMC ::= SEQUENCE (SIZE(1..maxnoofCellIDforQMC)) OF EUTRAN-CGI + +Cdma2000PDU ::= OCTET STRING + +Cdma2000RATType ::= ENUMERATED { + hRPD, + onexRTT, + ... +} + +Cdma2000SectorID ::= OCTET STRING + +Cdma2000HOStatus ::= ENUMERATED { + hOSuccess, + hOFailure, + ... +} + +Cdma2000HORequiredIndication ::= ENUMERATED { + true, + ... +} + +Cdma2000OneXSRVCCInfo ::= SEQUENCE { + cdma2000OneXMEID Cdma2000OneXMEID, + cdma2000OneXMSI Cdma2000OneXMSI, + cdma2000OneXPilot Cdma2000OneXPilot, + iE-Extensions ProtocolExtensionContainer { {Cdma2000OneXSRVCCInfo-ExtIEs} } OPTIONAL, + ... +} + +Cdma2000OneXSRVCCInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Cdma2000OneXMEID ::= OCTET STRING + +Cdma2000OneXMSI ::= OCTET STRING + +Cdma2000OneXPilot ::= OCTET STRING + +Cdma2000OneXRAND ::= OCTET STRING + + +Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ...} + +CellType ::= SEQUENCE { + cell-Size Cell-Size, + iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL, + ... +} + +CellType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CGI ::= SEQUENCE { + pLMNidentity PLMNidentity, + lAC LAC, + cI CI, + rAC RAC OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL, + ... + } + +CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CI ::= OCTET STRING (SIZE (2)) + +CNDomain ::= ENUMERATED { + ps, + cs +} + +CNTypeRestrictions::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF CNTypeRestrictions-Item + +CNTypeRestrictions-Item ::= SEQUENCE { + pLMN-Identity PLMNidentity, + cNType CNType, + iE-Extensions ProtocolExtensionContainer { { CNTypeRestrictions-Item-ExtIEs} } OPTIONAL, + ... +} + +CNTypeRestrictions-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CNType ::= ENUMERATED { + fiveGCForbiddden, + ... +} + +ConcurrentWarningMessageIndicator ::= ENUMERATED { + true +} + +Correlation-ID ::= OCTET STRING (SIZE (4)) + +CSFallbackIndicator ::= ENUMERATED { + cs-fallback-required, + ..., + cs-fallback-high-priority +} + +AdditionalCSFallbackIndicator ::= ENUMERATED { + no-restriction, + restriction, + ... +} + +CSG-Id ::= BIT STRING (SIZE (27)) + + +CSG-IdList ::= SEQUENCE (SIZE (1.. maxnoofCSGs)) OF CSG-IdList-Item + +CSG-IdList-Item ::= SEQUENCE { + cSG-Id CSG-Id, + iE-Extensions ProtocolExtensionContainer { {CSG-IdList-Item-ExtIEs} } OPTIONAL, + ... +} + +CSG-IdList-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CSGMembershipStatus ::= ENUMERATED { + member, + not-member +} + + +COUNTvalue ::= SEQUENCE { + pDCP-SN PDCP-SN, + hFN HFN, + iE-Extensions ProtocolExtensionContainer { {COUNTvalue-ExtIEs} } OPTIONAL, + ... +} +COUNTvalue-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTValueExtended ::= SEQUENCE { + pDCP-SNExtended PDCP-SNExtended, + hFNModified HFNModified, + iE-Extensions ProtocolExtensionContainer { {COUNTValueExtended-ExtIEs} } OPTIONAL, + ... +} + +COUNTValueExtended-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTvaluePDCP-SNlength18 ::= SEQUENCE { + pDCP-SNlength18 PDCP-SNlength18, + hFNforPDCP-SNlength18 HFNforPDCP-SNlength18, + iE-Extensions ProtocolExtensionContainer { {COUNTvaluePDCP-SNlength18-ExtIEs} } OPTIONAL, + ... +} + +COUNTvaluePDCP-SNlength18-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Coverage-Level ::= ENUMERATED { + extendedcoverage, + ... +} + +CriticalityDiagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-ExtIEs}} OPTIONAL, + ... +} + +CriticalityDiagnostics-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1.. maxnoofErrors)) OF CriticalityDiagnostics-IE-Item + +CriticalityDiagnostics-IE-Item ::= SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-IE-Item-ExtIEs}} OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- D + +DataCodingScheme ::= BIT STRING (SIZE (8)) + +DCN-ID ::= INTEGER (0..65535) + +ServedDCNs ::= SEQUENCE (SIZE(0..maxnoofDCNs)) OF ServedDCNsItem + +ServedDCNsItem ::= SEQUENCE { + dCN-ID DCN-ID, + relativeDCNCapacity RelativeMMECapacity, + iE-Extensions ProtocolExtensionContainer { {ServedDCNsItem-ExtIEs} } OPTIONAL, + ... +} + +ServedDCNsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +DL-CP-SecurityInformation ::= SEQUENCE { + dl-NAS-MAC DL-NAS-MAC, + iE-Extensions ProtocolExtensionContainer { { DL-CP-SecurityInformation-ExtIEs} } OPTIONAL, + ... +} + +DL-CP-SecurityInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +DL-Forwarding ::= ENUMERATED { + dL-Forwarding-proposed, + ... +} + +DL-NAS-MAC ::= BIT STRING (SIZE (16)) + +Direct-Forwarding-Path-Availability ::= ENUMERATED { + directPathAvailable, + ... +} + +Data-Forwarding-Not-Possible ::= ENUMERATED { + data-Forwarding-not-Possible, + ... +} + +DLNASPDUDeliveryAckRequest ::= ENUMERATED { + requested, + ... +} + +-- E + +EARFCN ::= INTEGER(0..maxEARFCN, ...) + +ECGIList ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF EUTRAN-CGI + +PWSfailedECGIList ::= SEQUENCE (SIZE(1..maxnoofCellsineNB)) OF EUTRAN-CGI + +EDT-Session ::= ENUMERATED { + true, + ... +} + +EmergencyAreaIDList ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID + +EmergencyAreaID ::= OCTET STRING (SIZE (3)) + +EmergencyAreaID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Broadcast-Item + +EmergencyAreaID-Broadcast-Item ::= SEQUENCE { + emergencyAreaID EmergencyAreaID, + completedCellinEAI CompletedCellinEAI, + iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +EmergencyAreaID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +EmergencyAreaID-Cancelled ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Cancelled-Item + +EmergencyAreaID-Cancelled-Item ::= SEQUENCE { + emergencyAreaID EmergencyAreaID, + cancelledCellinEAI CancelledCellinEAI, + iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +EmergencyAreaID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompletedCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CompletedCellinEAI-Item + +CompletedCellinEAI-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CompletedCellinEAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CompletedCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ECGI-List ::= SEQUENCE (SIZE(1..maxnoofCellsineNB)) OF EUTRAN-CGI + +EmergencyAreaIDListForRestart ::= SEQUENCE (SIZE(1..maxnoofRestartEmergencyAreaIDs)) OF EmergencyAreaID + +ENB-ID ::= CHOICE { + macroENB-ID BIT STRING (SIZE(20)), + homeENB-ID BIT STRING (SIZE(28)), + ... , + short-macroENB-ID BIT STRING (SIZE(18)), + long-macroENB-ID BIT STRING (SIZE(21)) +} + +GERAN-Cell-ID ::= SEQUENCE { + lAI LAI, + rAC RAC, + cI CI, + iE-Extensions ProtocolExtensionContainer { { GERAN-Cell-ID-ExtIEs} } OPTIONAL, + ... +} + +GERAN-Cell-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Global-ENB-ID ::= SEQUENCE { + pLMNidentity PLMNidentity, + eNB-ID ENB-ID, + iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL, + ... +} + +GlobalENB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +GUMMEIList::= SEQUENCE (SIZE (1.. maxnoofMMECs)) OF GUMMEI + +ENB-StatusTransfer-TransparentContainer ::= SEQUENCE { + bearers-SubjectToStatusTransferList Bearers-SubjectToStatusTransferList, + iE-Extensions ProtocolExtensionContainer { {ENB-StatusTransfer-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +ENB-StatusTransfer-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENB-UE-S1AP-ID ::= INTEGER (0..16777215) + +ENBname ::= PrintableString (SIZE (1..150,...)) + +ENBX2TLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2TLAs)) OF TransportLayerAddress + +EncryptionAlgorithms ::= BIT STRING (SIZE (16,...)) + +EndIndication ::= ENUMERATED { + no-further-data, + further-data-exists, + ... +} + +EnhancedCoverageRestricted ::= ENUMERATED { + restricted, + ... +} + +CE-ModeBRestricted ::= ENUMERATED { + restricted, + not-restricted, + ... +} + +EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMNidentity +EventType ::= ENUMERATED { + direct, + change-of-serve-cell, + stop-change-of-serve-cell, + ... +} + +E-RAB-ID ::= INTEGER (0..15, ...) + +E-RABInformationList ::= SEQUENCE (SIZE (1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { { E-RABInformationListIEs } } + +E-RABInformationListIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABInformationListItem CRITICALITY ignore TYPE E-RABInformationListItem PRESENCE mandatory }, + ... +} + +E-RABInformationListItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-Forwarding DL-Forwarding OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABInformationListItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABInformationListItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABItemIEs} } + +E-RABItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABItem CRITICALITY ignore TYPE E-RABItem PRESENCE mandatory }, + ... +} + +E-RABItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RABItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +E-RABLevelQoSParameters ::= SEQUENCE { + qCI QCI, + allocationRetentionPriority AllocationAndRetentionPriority, + gbrQosInformation GBR-QosInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABQoSParameters-ExtIEs} } OPTIONAL, + ... +} + +E-RABUsageReportList ::= SEQUENCE (SIZE(1..maxnooftimeperiods)) OF ProtocolIE-SingleContainer { {E-RABUsageReportItemIEs} } + +E-RABUsageReportItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABUsageReportItem CRITICALITY ignore TYPE E-RABUsageReportItem PRESENCE mandatory }, + ... +} + +E-RABUsageReportItem ::= SEQUENCE { + startTimestamp OCTET STRING (SIZE(4)), + endTimestamp OCTET STRING (SIZE(4)), + usageCountUL INTEGER (0..18446744073709551615), + usageCountDL INTEGER (0..18446744073709551615), + iE-Extensions ProtocolExtensionContainer { { E-RABUsageReportItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABUsageReportItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABQoSParameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extended for introduction of downlink and uplink packet loss rate for enhanced Voice performance –- + { ID id-DownlinkPacketLossRate CRITICALITY ignore EXTENSION Packet-LossRate PRESENCE optional}| + { ID id-UplinkPacketLossRate CRITICALITY ignore EXTENSION Packet-LossRate PRESENCE optional}, + ... +} + + +EUTRAN-CGI ::= SEQUENCE { + pLMNidentity PLMNidentity, + cell-ID CellIdentity, + iE-Extensions ProtocolExtensionContainer { {EUTRAN-CGI-ExtIEs} } OPTIONAL, + ... +} + +EUTRAN-CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +EUTRANRoundTripDelayEstimationInfo ::= INTEGER (0..2047) + +ExpectedUEBehaviour ::= SEQUENCE { + expectedActivity ExpectedUEActivityBehaviour OPTIONAL, + expectedHOInterval ExpectedHOInterval OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ExpectedUEBehaviour-ExtIEs} } OPTIONAL, + ... +} + +ExpectedUEBehaviour-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ExpectedUEActivityBehaviour ::= SEQUENCE { + expectedActivityPeriod ExpectedActivityPeriod OPTIONAL, + expectedIdlePeriod ExpectedIdlePeriod OPTIONAL, + sourceofUEActivityBehaviourInformation SourceOfUEActivityBehaviourInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ExpectedUEActivityBehaviour-ExtIEs} } OPTIONAL, + ... +} + +ExpectedUEActivityBehaviour-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ExpectedActivityPeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) + +ExpectedIdlePeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) + +SourceOfUEActivityBehaviourInformation ::= ENUMERATED { + subscription-information, + statistics, + ... +} + +ExpectedHOInterval ::= ENUMERATED { + sec15, sec30, sec60, sec90, sec120, sec180, long-time, + ... +} + +ExtendedBitRate ::= INTEGER (10000000001..4000000000000, ...) + +ExtendedRNC-ID ::= INTEGER (4096..65535) + +ExtendedRepetitionPeriod ::= INTEGER (4096..131071) + +Extended-UEIdentityIndexValue ::= BIT STRING (SIZE (14)) + +-- F + +FiveGSTAC ::= OCTET STRING (SIZE (3)) + +FiveGSTAI ::= SEQUENCE { + pLMNidentity PLMNidentity, + fiveGSTAC FiveGSTAC, + iE-Extensions ProtocolExtensionContainer { {FiveGSTAI-ExtIEs} } OPTIONAL, + ... +} + +FiveGSTAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenInterRATs ::= ENUMERATED { + all, + geran, + utran, + cdma2000, + ..., + geranandutran, + cdma2000andutran + +} + +ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item + +ForbiddenTAs-Item ::= SEQUENCE { + pLMN-Identity PLMNidentity, + forbiddenTACs ForbiddenTACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC + +ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item + +ForbiddenLAs-Item ::= SEQUENCE { + pLMN-Identity PLMNidentity, + forbiddenLACs ForbiddenLACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenLAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC + +-- G + +GBR-QosInformation ::= SEQUENCE { + e-RAB-MaximumBitrateDL BitRate, + e-RAB-MaximumBitrateUL BitRate, + e-RAB-GuaranteedBitrateDL BitRate, + e-RAB-GuaranteedBitrateUL BitRate, + iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL, + ... +} + +GBR-QosInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for maximum bitrate > 10G bps -- + { ID id-extended-e-RAB-MaximumBitrateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| + { ID id-extended-e-RAB-MaximumBitrateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| + { ID id-extended-e-RAB-GuaranteedBitrateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| + { ID id-extended-e-RAB-GuaranteedBitrateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}, + ...} + + +GTP-TEID ::= OCTET STRING (SIZE (4)) + +GUMMEI ::= SEQUENCE { + pLMN-Identity PLMNidentity, + mME-Group-ID MME-Group-ID, + mME-Code MME-Code, + iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, + ... +} + +GUMMEI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +GUMMEIType ::= ENUMERATED { + native, + mapped, + ... +} + +GWContextReleaseIndication ::= ENUMERATED { + true, + ... +} + +-- H + +HandoverFlag ::= ENUMERATED { + handoverPreparation, + ... +} + + +HandoverRestrictionList ::= SEQUENCE { + servingPLMN PLMNidentity, + equivalentPLMNs EPLMNs OPTIONAL, + forbiddenTAs ForbiddenTAs OPTIONAL, + forbiddenLAs ForbiddenLAs OPTIONAL, + forbiddenInterRATs ForbiddenInterRATs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, + ... +} + +HandoverRestrictionList-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-NRrestriction CRITICALITY ignore EXTENSION NRrestriction PRESENCE optional}| + { ID id-UnlicensedSpectrumRestriction CRITICALITY ignore EXTENSION UnlicensedSpectrumRestriction PRESENCE optional}| + { ID id-CNTypeRestrictions CRITICALITY ignore EXTENSION CNTypeRestrictions PRESENCE optional}, + ... +} + +HandoverType ::= ENUMERATED { + intralte, + ltetoutran, + ltetogeran, + utrantolte, + gerantolte, ..., + ltetonr, + nrtolte +} + +HFN ::= INTEGER (0..1048575) + +HFNModified ::= INTEGER (0..131071) + +HFNforPDCP-SNlength18 ::= INTEGER (0..16383) + +-- I + +Masked-IMEISV ::= BIT STRING (SIZE (64)) + +ImmediateMDT ::= SEQUENCE { + measurementsToActivate MeasurementsToActivate, + m1reportingTrigger M1ReportingTrigger, + m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL, +-- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1 + m1periodicReporting M1PeriodicReporting OPTIONAL, +-- Included in case of periodic or event-triggered periodic reporting + iE-Extensions ProtocolExtensionContainer { { ImmediateMDT-ExtIEs} } OPTIONAL, + ... +} + +ImmediateMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-M3Configuration CRITICALITY ignore EXTENSION M3Configuration PRESENCE conditional}| + { ID id-M4Configuration CRITICALITY ignore EXTENSION M4Configuration PRESENCE conditional}| + { ID id-M5Configuration CRITICALITY ignore EXTENSION M5Configuration PRESENCE conditional}| + { ID id-MDT-Location-Info CRITICALITY ignore EXTENSION MDT-Location-Info PRESENCE optional}| + { ID id-M6Configuration CRITICALITY ignore EXTENSION M6Configuration PRESENCE conditional}| + { ID id-M7Configuration CRITICALITY ignore EXTENSION M7Configuration PRESENCE conditional}, + ... +} + +IMSI ::= OCTET STRING (SIZE (3..8)) + +InformationOnRecommendedCellsAndENBsForPaging ::= SEQUENCE { + recommendedCellsForPaging RecommendedCellsForPaging, + recommendENBsForPaging RecommendedENBsForPaging, + iE-Extensions ProtocolExtensionContainer { { InformationOnRecommendedCellsAndENBsForPaging-ExtIEs} } OPTIONAL, + ... +} + +InformationOnRecommendedCellsAndENBsForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...)) + +IntendedNumberOfPagingAttempts ::= INTEGER (1..16, ...) + +InterfacesToTrace ::= BIT STRING (SIZE (8)) + + + +-- J +-- K + +KillAllWarningMessages ::= ENUMERATED {true} + +-- L + + +LAC ::= OCTET STRING (SIZE (2)) + +LAI ::= SEQUENCE { + pLMNidentity PLMNidentity, + lAC LAC, + iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL, + ... +} + +LAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +LastVisitedCell-Item ::= CHOICE { + e-UTRAN-Cell LastVisitedEUTRANCellInformation, + uTRAN-Cell LastVisitedUTRANCellInformation, + gERAN-Cell LastVisitedGERANCellInformation, + ... +} +LastVisitedEUTRANCellInformation ::= SEQUENCE { + global-Cell-ID EUTRAN-CGI, + cellType CellType, + time-UE-StayedInCell Time-UE-StayedInCell, + iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, + ... +} +LastVisitedEUTRANCellInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Rel-11 to support enhanced granularity for time UE stayed in cell -- + { ID id-Time-UE-StayedInCell-EnhancedGranularity CRITICALITY ignore EXTENSION Time-UE-StayedInCell-EnhancedGranularity PRESENCE optional}| + { ID id-HO-Cause CRITICALITY ignore EXTENSION Cause PRESENCE optional}, + ... +} +LastVisitedUTRANCellInformation ::= OCTET STRING + +LastVisitedGERANCellInformation ::= CHOICE { + undefined NULL, + ... +} + +L3-Information ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +LPPa-PDU ::= OCTET STRING + +LHN-ID ::= OCTET STRING(SIZE (32..256)) + +Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...} + +ListeningSubframePattern ::= SEQUENCE { + pattern-period ENUMERATED {ms1280, ms2560, ms5120, ms10240, ...}, + pattern-offset INTEGER (0..10239, ...), + iE-Extensions ProtocolExtensionContainer { { ListeningSubframePattern-ExtIEs} } OPTIONAL, + ... +} + +ListeningSubframePattern-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +... +} + +LoggedMDT ::= SEQUENCE { + loggingInterval LoggingInterval, + loggingDuration LoggingDuration, + iE-Extensions ProtocolExtensionContainer { {LoggedMDT-ExtIEs} } OPTIONAL, + ... +} + +LoggedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +... +} + +LoggingInterval ::= ENUMERATED {ms128, ms256, ms512, ms1024, ms2048, ms3072, ms4096, ms6144} + +LoggingDuration ::= ENUMERATED {m10, m20, m40, m60, m90, m120} + +LoggedMBSFNMDT ::= SEQUENCE { + loggingInterval LoggingInterval, + loggingDuration LoggingDuration, + mBSFN-ResultToLog MBSFN-ResultToLog OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { LoggedMBSFNMDT-ExtIEs } } OPTIONAL, + ... +} + +LoggedMBSFNMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +LTE-M-Indication ::= ENUMERATED {lte-m, ... } + +-- M + +M3Configuration ::= SEQUENCE { + m3period M3period, + iE-Extensions ProtocolExtensionContainer { { M3Configuration-ExtIEs} } OPTIONAL, + ... +} + +M3Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M3period ::= ENUMERATED {ms100, ms1000, ms10000, ...,ms1024, ms1280, ms2048, ms2560, ms5120, ms10240, min1 } + +M4Configuration ::= SEQUENCE { + m4period M4period, + m4-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M4Configuration-ExtIEs} } OPTIONAL, + ... +} + +M4Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + +M5Configuration ::= SEQUENCE { + m5period M5period, + m5-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M5Configuration-ExtIEs} } OPTIONAL, + ... +} + +M5Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } + +M6Configuration ::= SEQUENCE { + m6report-Interval M6report-Interval, + m6delay-threshold M6delay-threshold OPTIONAL, +-- This IE shall be present if the M6 Links to log IE is set to “uplink” or to “both-uplink-and-downlink” -- + m6-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M6Configuration-ExtIEs} } OPTIONAL, + ... +} + +M6Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M6report-Interval ::= ENUMERATED { ms1024, ms2048, ms5120, ms10240, ... } + +M6delay-threshold ::= ENUMERATED { ms30, ms40, ms50, ms60, ms70, ms80, ms90, ms100, ms150, ms300, ms500, ms750, ... } + +M7Configuration ::= SEQUENCE { + m7period M7period, + m7-links-to-log Links-to-log, + iE-Extensions ProtocolExtensionContainer { { M7Configuration-ExtIEs} } OPTIONAL, + ... +} + +M7Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +M7period ::= INTEGER(1..60, ...) + +MDT-Activation ::= ENUMERATED { + immediate-MDT-only, + immediate-MDT-and-Trace, + logged-MDT-only, + ..., + logged-MBSFN-MDT +} + +MDT-Location-Info ::= BIT STRING (SIZE (8)) + +MDT-Configuration ::= SEQUENCE { + mdt-Activation MDT-Activation, + areaScopeOfMDT AreaScopeOfMDT, + mDTMode MDTMode, + iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTIONAL, + ... +} +MDT-Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-SignallingBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional }, + ... +} + +ManagementBasedMDTAllowed ::= ENUMERATED {allowed, ...} + +MBSFN-ResultToLog ::= SEQUENCE (SIZE(1..maxnoofMBSFNAreaMDT)) OF MBSFN-ResultToLogInfo + +MBSFN-ResultToLogInfo ::= SEQUENCE { + mBSFN-AreaId INTEGER (0..255) OPTIONAL, + carrierFreq EARFCN, + iE-Extensions ProtocolExtensionContainer { { MBSFN-ResultToLogInfo-ExtIEs} } OPTIONAL, + ... +} + +MBSFN-ResultToLogInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMNidentity + +PrivacyIndicator ::= ENUMERATED { + immediate-MDT, + logged-MDT, + ... +} + +MDTMode ::= CHOICE { + immediateMDT ImmediateMDT, + loggedMDT LoggedMDT, + ..., + mDTMode-Extension MDTMode-Extension +} + +MDTMode-Extension ::= ProtocolIE-SingleContainer {{ MDTMode-ExtensionIE }} + +MDTMode-ExtensionIE S1AP-PROTOCOL-IES ::= { + { ID id-LoggedMBSFNMDT CRITICALITY ignore TYPE LoggedMBSFNMDT PRESENCE mandatory} +} + +MeasurementsToActivate ::= BIT STRING (SIZE (8)) + +MeasurementThresholdA2 ::= CHOICE { + threshold-RSRP Threshold-RSRP, + threshold-RSRQ Threshold-RSRQ, + ... +} + +MessageIdentifier ::= BIT STRING (SIZE (16)) + +MobilityInformation ::= BIT STRING (SIZE(32)) + +MMEname ::= PrintableString (SIZE (1..150,...)) + +MMEPagingTarget ::= CHOICE { + global-ENB-ID Global-ENB-ID, + tAI TAI, + ... +} + +MMERelaySupportIndicator ::= ENUMERATED {true, ...} + +MME-Group-ID ::= OCTET STRING (SIZE (2)) + +MME-Code ::= OCTET STRING (SIZE (1)) + +MME-UE-S1AP-ID ::= INTEGER (0..4294967295) +M-TMSI ::= OCTET STRING (SIZE (4)) + +MSClassmark2 ::= OCTET STRING +MSClassmark3 ::= OCTET STRING + +MutingAvailabilityIndication ::= ENUMERATED { + available, + unavailable, + ... +} + + +MutingPatternInformation ::= SEQUENCE { + muting-pattern-period ENUMERATED {ms0, ms1280, ms2560, ms5120, ms10240, ...}, + muting-pattern-offset INTEGER (0..10239, ...) OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {MutingPatternInformation-ExtIEs} } OPTIONAL, + ... +} + +MutingPatternInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- N + +NAS-PDU ::= OCTET STRING + +NASSecurityParametersfromE-UTRAN ::= OCTET STRING + +NASSecurityParameterstoE-UTRAN ::= OCTET STRING + +NB-IoT-DefaultPagingDRX ::= ENUMERATED { + v128, + v256, + v512, + v1024, + ... + } + +NB-IoT-Paging-eDRXInformation ::= SEQUENCE { + nB-IoT-paging-eDRX-Cycle NB-IoT-Paging-eDRX-Cycle, + nB-IoT-pagingTimeWindow NB-IoT-PagingTimeWindow OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { NB-IoT-Paging-eDRXInformation-ExtIEs} } OPTIONAL, + ... +} + +NB-IoT-Paging-eDRXInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +NB-IoT-Paging-eDRX-Cycle ::= ENUMERATED{hf2, hf4, hf6, hf8, hf10, hf12, hf14, hf16, hf32, hf64, hf128, hf256, hf512, hf1024, ...} + +NB-IoT-PagingTimeWindow ::= ENUMERATED{s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, ...} + +NB-IoT-UEIdentityIndexValue ::= BIT STRING (SIZE (12)) + +NextPagingAreaScope ::= ENUMERATED { + same, + changed, + ... +} + +NRencryptionAlgorithms ::= BIT STRING (SIZE (16,...)) +NRintegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...)) + +NRrestriction ::= ENUMERATED { + nRrestricted, + ... +} + +NRUESecurityCapabilities ::= SEQUENCE { + nRencryptionAlgorithms NRencryptionAlgorithms, + nRintegrityProtectionAlgorithms NRintegrityProtectionAlgorithms, + iE-Extensions ProtocolExtensionContainer { { NRUESecurityCapabilities-ExtIEs} } OPTIONAL, +... +} + +NRUESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +NumberofBroadcastRequest ::= INTEGER (0..65535) + +NumberOfBroadcasts ::= INTEGER (0..65535) + +-- O +OldBSS-ToNewBSS-Information ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +OverloadAction ::= ENUMERATED { + reject-non-emergency-mo-dt, + reject-rrc-cr-signalling, + permit-emergency-sessions-and-mobile-terminated-services-only, + ..., + permit-high-priority-sessions-and-mobile-terminated-services-only, + reject-delay-tolerant-access, + permit-high-priority-sessions-and-exception-reporting-and-mobile-terminated-services-only, + not-accept-mo-data-or-delay-tolerant-access-from-CP-CIoT + +} + +OverloadResponse ::= CHOICE { + overloadAction OverloadAction, + ... +} + + +-- P + +Packet-LossRate ::= INTEGER(0..1000) + +PagingAttemptInformation ::= SEQUENCE { + pagingAttemptCount PagingAttemptCount, + intendedNumberOfPagingAttempts IntendedNumberOfPagingAttempts, + nextPagingAreaScope NextPagingAreaScope OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { PagingAttemptInformation-ExtIEs} } OPTIONAL, + ... +} + +PagingAttemptInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +PagingAttemptCount ::= INTEGER (1..16, ...) + +Paging-eDRXInformation ::= SEQUENCE { + paging-eDRX-Cycle Paging-eDRX-Cycle, + pagingTimeWindow PagingTimeWindow OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { Paging-eDRXInformation-ExtIEs} } OPTIONAL, + ... +} + +Paging-eDRXInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Paging-eDRX-Cycle ::= ENUMERATED{hfhalf, hf1, hf2, hf4, hf6, hf8, hf10, hf12, hf14, hf16, hf32, hf64, hf128, hf256, ...} + +PagingTimeWindow ::= ENUMERATED{s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, ...} + +PagingDRX ::= ENUMERATED { + v32, + v64, + v128, + v256, + ... + } + +PagingPriority ::= ENUMERATED { + priolevel1, + priolevel2, + priolevel3, + priolevel4, + priolevel5, + priolevel6, + priolevel7, + priolevel8, + ... +} + +PDCP-SN ::= INTEGER (0..4095) + +PDCP-SNExtended ::= INTEGER (0..32767) + +PDCP-SNlength18 ::= INTEGER (0..262143) + +M1PeriodicReporting ::= SEQUENCE { + reportInterval ReportIntervalMDT, + reportAmount ReportAmountMDT, + iE-Extensions ProtocolExtensionContainer { { M1PeriodicReporting-ExtIEs} } OPTIONAL, + ... +} + +M1PeriodicReporting-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +PLMNidentity ::= TBCD-STRING + +PLMNAreaBasedQMC ::= SEQUENCE { + plmnListforQMC PLMNListforQMC, + iE-Extensions ProtocolExtensionContainer { {PLMNAreaBasedQMC-ExtIEs} } OPTIONAL, + ... +} + +PLMNAreaBasedQMC-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +PLMNListforQMC ::= SEQUENCE (SIZE(1..maxnoofPLMNforQMC)) OF PLMNidentity + +Port-Number ::= OCTET STRING (SIZE (2)) + +Pre-emptionCapability ::= ENUMERATED { + shall-not-trigger-pre-emption, + may-trigger-pre-emption +} + +Pre-emptionVulnerability ::= ENUMERATED { + not-pre-emptable, + pre-emptable +} + +PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) + +ProSeAuthorized ::= SEQUENCE { + proSeDirectDiscovery ProSeDirectDiscovery OPTIONAL, + proSeDirectCommunication ProSeDirectCommunication OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ProSeAuthorized-ExtIEs} } OPTIONAL, + ... +} + +ProSeAuthorized-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-ProSeUEtoNetworkRelaying CRITICALITY ignore EXTENSION ProSeUEtoNetworkRelaying PRESENCE optional}, + ... +} + +ProSeDirectDiscovery ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +ProSeUEtoNetworkRelaying ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +ProSeDirectCommunication ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +PS-ServiceNotAvailable ::= ENUMERATED { + ps-service-not-available, + ... +} + +-- Q + +QCI ::= INTEGER (0..255) + +-- R + +ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) + +ReceiveStatusOfULPDCPSDUsExtended ::= BIT STRING (SIZE(1..16384)) + +ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ::= BIT STRING (SIZE(1..131072)) + +RecommendedCellsForPaging ::= SEQUENCE { + recommendedCellList RecommendedCellList, + iE-Extensions ProtocolExtensionContainer { { RecommendedCellsForPaging-ExtIEs} } OPTIONAL, + ... +} + +RecommendedCellsForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RecommendedCellList ::= SEQUENCE (SIZE(1.. maxnoofRecommendedCells)) OF ProtocolIE-SingleContainer { { RecommendedCellItemIEs } } + +RecommendedCellItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-RecommendedCellItem CRITICALITY ignore TYPE RecommendedCellItem PRESENCE mandatory }, + ... +} + +RecommendedCellItem::= SEQUENCE { + eUTRAN-CGI EUTRAN-CGI, + timeStayedInCell INTEGER (0..4095) OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { RecommendedCellsForPagingItem-ExtIEs} } OPTIONAL, + ... +} + +RecommendedCellsForPagingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RecommendedENBsForPaging ::= SEQUENCE { + recommendedENBList RecommendedENBList, + iE-Extensions ProtocolExtensionContainer { { RecommendedENBsForPaging-ExtIEs} } OPTIONAL, + ... +} + +RecommendedENBsForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RecommendedENBList::= SEQUENCE (SIZE(1.. maxnoofRecommendedENBs)) OF ProtocolIE-SingleContainer { { RecommendedENBItemIEs } } + +RecommendedENBItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-RecommendedENBItem CRITICALITY ignore TYPE RecommendedENBItem PRESENCE mandatory }, + ... +} + +RecommendedENBItem ::= SEQUENCE { + mMEPagingTarget MMEPagingTarget, + iE-Extensions ProtocolExtensionContainer { { RecommendedENBItem-ExtIEs} } OPTIONAL, + ... +} + +RecommendedENBItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RelativeMMECapacity ::= INTEGER (0..255) + +RelayNode-Indicator ::= ENUMERATED { + true, + ... +} + +RAC ::= OCTET STRING (SIZE (1)) + +RAT-Type ::= ENUMERATED { + nbiot, + ... +} + +ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity} + +ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60} + +M1ReportingTrigger ::= ENUMERATED{ + periodic, + a2eventtriggered, + ..., + a2eventtriggered-periodic +} + +RequestType ::= SEQUENCE { + eventType EventType, + reportArea ReportArea, + iE-Extensions ProtocolExtensionContainer { { RequestType-ExtIEs} } OPTIONAL, + ... +} + + +RequestType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RIMTransfer ::= SEQUENCE { + rIMInformation RIMInformation, + rIMRoutingAddress RIMRoutingAddress OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { RIMTransfer-ExtIEs} } OPTIONAL, + ... +} + +RIMTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RIMInformation ::= OCTET STRING + +RIMRoutingAddress ::= CHOICE { + gERAN-Cell-ID GERAN-Cell-ID, + ..., + targetRNC-ID TargetRNC-ID, + eHRPD-Sector-ID OCTET STRING (SIZE(16)) +} + +ReportArea ::= ENUMERATED { + ecgi, + ... +} + +RepetitionPeriod ::= INTEGER (0..4095) + +RLFReportInformation ::= SEQUENCE { + uE-RLF-Report-Container UE-RLF-Report-Container, + uE-RLF-Report-Container-for-extended-bands UE-RLF-Report-Container-for-extended-bands OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{ RLFReportInformation-ExtIEs}} OPTIONAL, + ... +} + +RLFReportInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RNC-ID ::= INTEGER (0..4095) + +RRC-Container ::= OCTET STRING + +RRC-Establishment-Cause ::= ENUMERATED { + emergency, + highPriorityAccess, + mt-Access, + mo-Signalling, + mo-Data, + ..., + delay-TolerantAccess, + mo-VoiceCall, + mo-ExceptionData +} + +ECGIListForRestart ::= SEQUENCE (SIZE(1..maxnoofCellsforRestart)) OF EUTRAN-CGI + +Routing-ID ::= INTEGER (0..255) + +-- S + + +SecurityKey ::= BIT STRING (SIZE(256)) + + + +SecurityContext ::= SEQUENCE { + nextHopChainingCount INTEGER (0..7), + nextHopParameter SecurityKey, + iE-Extensions ProtocolExtensionContainer { { SecurityContext-ExtIEs} } OPTIONAL, + ... +} + + +SecurityContext-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +SecondaryRATType ::= ENUMERATED { + nR, + ..., + unlicensed +} + + +SecondaryRATDataUsageRequest ::= ENUMERATED { + requested, + ... +} + +SecondaryRATDataUsageReportList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {SecondaryRATDataUsageReportItemIEs} } + +SecondaryRATDataUsageReportItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-SecondaryRATDataUsageReportItem CRITICALITY ignore TYPE SecondaryRATDataUsageReportItem PRESENCE mandatory }, + ... +} + +SecondaryRATDataUsageReportItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + secondaryRATType SecondaryRATType, + e-RABUsageReportList E-RABUsageReportList, + iE-Extensions ProtocolExtensionContainer { { SecondaryRATDataUsageReportItem-ExtIEs} } OPTIONAL, + ... +} + +SecondaryRATDataUsageReportItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +SerialNumber ::= BIT STRING (SIZE (16)) + +ServiceType ::= ENUMERATED{ + qMC-for-streaming-service, + qMC-for-MTSI-service, + ... +} + +SONInformation ::= CHOICE{ + sONInformationRequest SONInformationRequest, + sONInformationReply SONInformationReply, + ... +-- ..., +-- sONInformation-Extension SONInformation-Extension +} + +SONInformation-Extension ::= ProtocolIE-SingleContainer {{ SONInformation-ExtensionIE }} + +SONInformation-ExtensionIE S1AP-PROTOCOL-IES ::= { + { ID id-SON-Information-Report CRITICALITY ignore TYPE SONInformationReport PRESENCE mandatory} +} + +SONInformationRequest ::= ENUMERATED { + x2TNL-Configuration-Info, + ..., + time-Synchronisation-Info, + activate-Muting, + deactivate-Muting} + +SONInformationReply ::= SEQUENCE { + x2TNLConfigurationInfo X2TNLConfigurationInfo OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{SONInformationReply-ExtIEs}} OPTIONAL, + ... +} + +SONInformationReply-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Release 9 to transfer Time synchronisation information -- + {ID id-Time-Synchronisation-Info CRITICALITY ignore EXTENSION TimeSynchronisationInfo PRESENCE optional}, + ..., + {ID id-Muting-Pattern-Information CRITICALITY ignore EXTENSION MutingPatternInformation PRESENCE optional} +} + +SONInformationReport ::= CHOICE{ + rLFReportInformation RLFReportInformation, + ... +} + +SONConfigurationTransfer ::= SEQUENCE { + targeteNB-ID TargeteNB-ID, + sourceeNB-ID SourceeNB-ID, + sONInformation SONInformation, + iE-Extensions ProtocolExtensionContainer { { SONConfigurationTransfer-ExtIEs} } OPTIONAL, +... +} + +SONConfigurationTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Release 10 to transfer the IP addresses of the eNB initiating the ANR action -- + {ID id-x2TNLConfigurationInfo CRITICALITY ignore EXTENSION X2TNLConfigurationInfo PRESENCE conditional + -- This IE shall be present if the SON Information IE contains the SON Information Request IE and the SON Information Request IE is set to “X2TNL Configuration Info” --}| +-- Extension for Release 12 to transfer information concerning the source cell of synchronisation and the aggressor cell -- + {ID id-Synchronisation-Information CRITICALITY ignore EXTENSION SynchronisationInformation PRESENCE conditional + -- This IE shall be present if the SON Information IE contains the SON Information Request IE set to “ Activate Muting ” --}, + ... +} + + +SynchronisationInformation ::= SEQUENCE { + sourceStratumLevel StratumLevel OPTIONAL, + listeningSubframePattern ListeningSubframePattern OPTIONAL, + aggressoreCGI-List ECGI-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {SynchronisationInformation-ExtIEs} } OPTIONAL, + ... +} + +SynchronisationInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +Source-ToTarget-TransparentContainer ::= OCTET STRING +-- This IE includes a transparent container from the source RAN node to the target RAN node. +-- The octets of the OCTET STRING are encoded according to the specifications of the target system. + +SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +SourceeNB-ID ::= SEQUENCE { + global-ENB-ID Global-ENB-ID, + selected-TAI TAI, + iE-Extensions ProtocolExtensionContainer { {SourceeNB-ID-ExtIEs} } OPTIONAL +} + +SourceeNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +SRVCCOperationNotPossible ::= ENUMERATED { + notPossible, + ... +} + +SRVCCOperationPossible ::= ENUMERATED { + possible, + ... +} + +SRVCCHOIndication ::= ENUMERATED { + pSandCS, + cSonly, + ... +} + +SourceeNB-ToTargeteNB-TransparentContainer ::= SEQUENCE { + rRC-Container RRC-Container, + e-RABInformationList E-RABInformationList OPTIONAL, + targetCell-ID EUTRAN-CGI, + subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, + uE-HistoryInformation UE-HistoryInformation, + iE-Extensions ProtocolExtensionContainer { {SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + {ID id-MobilityInformation CRITICALITY ignore EXTENSION MobilityInformation PRESENCE optional}| + {ID id-uE-HistoryInformationFromTheUE CRITICALITY ignore EXTENSION UE-HistoryInformationFromTheUE PRESENCE optional}, + ... +} + + +SourceRNC-ToTargetRNC-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +SourceNgRanNode-ToTargetNgRanNode-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +ServedGUMMEIs ::= SEQUENCE (SIZE (1.. maxnoofRATs)) OF ServedGUMMEIsItem + +ServedGUMMEIsItem ::= SEQUENCE { + servedPLMNs ServedPLMNs, + servedGroupIDs ServedGroupIDs, + servedMMECs ServedMMECs, + iE-Extensions ProtocolExtensionContainer { {ServedGUMMEIsItem-ExtIEs} } OPTIONAL, + ... +} + +ServedGUMMEIsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedGroupIDs ::= SEQUENCE (SIZE(1.. maxnoofGroupIDs)) OF MME-Group-ID +ServedMMECs ::= SEQUENCE (SIZE(1.. maxnoofMMECs)) OF MME-Code + +ServedPLMNs ::= SEQUENCE (SIZE(1.. maxnoofPLMNsPerMME)) OF PLMNidentity + +SubscriberProfileIDforRFP ::= INTEGER (1..256) + +SupportedTAs ::= SEQUENCE (SIZE(1.. maxnoofTACs)) OF SupportedTAs-Item + +SupportedTAs-Item ::= SEQUENCE { + tAC TAC, + broadcastPLMNs BPLMNs, + iE-Extensions ProtocolExtensionContainer { {SupportedTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +SupportedTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + -- Extension for Release 13 to transfer RAT-Type per TAC -- + {ID id-RAT-Type CRITICALITY reject EXTENSION RAT-Type PRESENCE optional}, + ... +} + +StratumLevel ::= INTEGER (0..3, ...) + +SynchronisationStatus ::= ENUMERATED { synchronous, asynchronous, ... } + +TimeSynchronisationInfo ::= SEQUENCE { + stratumLevel StratumLevel, + synchronisationStatus SynchronisationStatus, + iE-Extensions ProtocolExtensionContainer { { TimeSynchronisationInfo-ExtIEs} } OPTIONAL, + ... +} + +TimeSynchronisationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + -- Extension for Release 12 to transfer Muting Availability Indication -- + {ID id-Muting-Availability-Indication CRITICALITY ignore EXTENSION MutingAvailabilityIndication PRESENCE optional}, + ... +} + +S-TMSI ::= SEQUENCE { + mMEC MME-Code, + m-TMSI M-TMSI, + iE-Extensions ProtocolExtensionContainer { {S-TMSI-ExtIEs} } OPTIONAL, + ... +} + +S-TMSI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- T + +TAC ::= OCTET STRING (SIZE (2)) + +TAIBasedMDT ::= SEQUENCE { + tAIListforMDT TAIListforMDT, + iE-Extensions ProtocolExtensionContainer { {TAIBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TAIBasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAIListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAI + +TAIListforWarning ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI + +TAI ::= SEQUENCE { + pLMNidentity PLMNidentity, + tAC TAC, + iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL, + ... +} + +TAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAI-Broadcast ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Broadcast-Item + +TAI-Broadcast-Item ::= SEQUENCE { + tAI TAI, + completedCellinTAI CompletedCellinTAI, + iE-Extensions ProtocolExtensionContainer { {TAI-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAI-Cancelled ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Cancelled-Item + +TAI-Cancelled-Item ::= SEQUENCE { + tAI TAI, + cancelledCellinTAI CancelledCellinTAI, + iE-Extensions ProtocolExtensionContainer { {TAI-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TABasedMDT ::= SEQUENCE { + tAListforMDT TAListforMDT, + iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TABasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC + +TABasedQMC ::= SEQUENCE { + tAListforQMC TAListforQMC, + iE-Extensions ProtocolExtensionContainer { {TABasedQMC-ExtIEs} } OPTIONAL, + ... +} + +TABasedQMC-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAListforQMC ::= SEQUENCE (SIZE(1..maxnoofTAforQMC)) OF TAC + +TAIBasedQMC ::= SEQUENCE { + tAIListforQMC TAIListforQMC, + iE-Extensions ProtocolExtensionContainer { {TAIBasedQMC-ExtIEs} } OPTIONAL, + ... +} + +TAIBasedQMC-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAIListforQMC ::= SEQUENCE (SIZE(1..maxnoofTAforQMC)) OF TAI + +CompletedCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CompletedCellinTAI-Item + +CompletedCellinTAI-Item ::= SEQUENCE{ + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CompletedCellinTAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CompletedCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TBCD-STRING ::= OCTET STRING (SIZE (3)) + +TargetID ::= CHOICE { + targeteNB-ID TargeteNB-ID, + targetRNC-ID TargetRNC-ID, + cGI CGI, + targetgNgRanNode-ID TargetNgRanNode-ID, + + ... +} + +TargeteNB-ID ::= SEQUENCE { + global-ENB-ID Global-ENB-ID, + selected-TAI TAI, + iE-Extensions ProtocolExtensionContainer { {TargeteNB-ID-ExtIEs} } OPTIONAL, + ... +} + +TargeteNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TargetRNC-ID ::= SEQUENCE { + lAI LAI, + rAC RAC OPTIONAL, + rNC-ID RNC-ID, + extendedRNC-ID ExtendedRNC-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL, + ... + } + + +TargetRNC-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TargetNgRanNode-ID ::= SEQUENCE { + global-RAN-NODE-ID Global-RAN-NODE-ID, + selected-TAI FiveGSTAI, + iE-Extensions ProtocolExtensionContainer { { TargetNgRanNode-ID-ExtIEs} } OPTIONAL, + ... +} + +TargetNgRanNode-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Global-RAN-NODE-ID::= CHOICE { + gNB GNB, + ng-eNB NG-eNB, + ... +} + +GNB ::= SEQUENCE { + global-gNB-ID Global-GNB-ID, + iE-Extensions ProtocolExtensionContainer { {GNB-ExtIEs} } OPTIONAL, + ... +} + +GNB-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Global-GNB-ID ::= SEQUENCE { + pLMN-Identity PLMNidentity, + gNB-ID GNB-Identity, + iE-Extensions ProtocolExtensionContainer { { Global-GNB-ID-ExtIEs} } OPTIONAL, + ... +} + +Global-GNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +GNB-Identity ::= CHOICE { + gNB-ID GNB-ID, + ... +} + +NG-eNB ::= SEQUENCE { + global-ng-eNB-ID Global-ENB-ID, + iE-Extensions ProtocolExtensionContainer { { NG-eNB-ExtIEs} } OPTIONAL, + ... +} + +NG-eNB-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +GNB-ID ::= BIT STRING (SIZE(22..32)) + +TargeteNB-ToSourceeNB-TransparentContainer ::= SEQUENCE { + rRC-Container RRC-Container, + iE-Extensions ProtocolExtensionContainer { {TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Target-ToSource-TransparentContainer ::= OCTET STRING +-- This IE includes a transparent container from the target RAN node to the source RAN node. +-- The octets of the OCTET STRING are coded according to the specifications of the target system. + +TargetRNC-ToSourceRNC-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +TargetBSS-ToSourceBSS-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +TargetNgRanNode-ToSourceNgRanNode-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +M1ThresholdEventA2 ::= SEQUENCE { + measurementThreshold MeasurementThresholdA2, + iE-Extensions ProtocolExtensionContainer { { M1ThresholdEventA2-ExtIEs} } OPTIONAL, + ... +} + +M1ThresholdEventA2-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Threshold-RSRP ::= INTEGER(0..97) + +Threshold-RSRQ ::= INTEGER(0..34) + +TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...} + +Time-UE-StayedInCell ::= INTEGER (0..4095) + +Time-UE-StayedInCell-EnhancedGranularity ::= INTEGER (0..40950) + +TransportInformation ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + uL-GTP-TEID GTP-TEID, + ... +} + +TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) + +TraceActivation ::= SEQUENCE { + e-UTRAN-Trace-ID E-UTRAN-Trace-ID, + interfacesToTrace InterfacesToTrace, + traceDepth TraceDepth, + traceCollectionEntityIPAddress TransportLayerAddress, + iE-Extensions ProtocolExtensionContainer { { TraceActivation-ExtIEs} } OPTIONAL, + ... +} + +TraceActivation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Rel-10 to support MDT -- + { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional }| +-- Extension for Rel-15 to support QMC – + { ID id-UEAppLayerMeasConfig CRITICALITY ignore EXTENSION UEAppLayerMeasConfig PRESENCE optional }, + ... +} + +TraceDepth ::= ENUMERATED { + minimum, + medium, + maximum, + minimumWithoutVendorSpecificExtension, + mediumWithoutVendorSpecificExtension, + maximumWithoutVendorSpecificExtension, + ... +} + +E-UTRAN-Trace-ID ::= OCTET STRING (SIZE (8)) + +TrafficLoadReductionIndication ::= INTEGER (1..99) + +TunnelInformation ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + uDP-Port-Number Port-Number OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {Tunnel-Information-ExtIEs} } OPTIONAL, + ... +} + +Tunnel-Information-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + +TAIListForRestart ::= SEQUENCE (SIZE(1..maxnoofRestartTAIs)) OF TAI + +-- U + +UEAggregateMaximumBitrate ::= SEQUENCE { + uEaggregateMaximumBitRateDL BitRate, + uEaggregateMaximumBitRateUL BitRate, + iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrates-ExtIEs} } OPTIONAL, + ... +} + +UEAggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for maximum bitrate > 10G bps -- + { ID id-extended-uEaggregateMaximumBitRateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| + { ID id-extended-uEaggregateMaximumBitRateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}, + ... +} + +UEAppLayerMeasConfig ::= SEQUENCE { + containerForAppLayerMeasConfig OCTET STRING (SIZE(1..1000)), + areaScopeOfQMC AreaScopeOfQMC, + iE-Extensions ProtocolExtensionContainer { {UEAppLayerMeasConfig-ExtIEs} } OPTIONAL, + ... +} + +UEAppLayerMeasConfig-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + {ID id-serviceType CRITICALITY ignore EXTENSION ServiceType PRESENCE optional}, + ... +} + +UECapabilityInfoRequest ::= ENUMERATED { + requested, + ... +} + +UE-RetentionInformation ::= ENUMERATED { + ues-retained, + ...} + +UE-S1AP-IDs ::= CHOICE{ + uE-S1AP-ID-pair UE-S1AP-ID-pair, + mME-UE-S1AP-ID MME-UE-S1AP-ID, + ... +} + +UE-S1AP-ID-pair ::= SEQUENCE{ + mME-UE-S1AP-ID MME-UE-S1AP-ID, + eNB-UE-S1AP-ID ENB-UE-S1AP-ID, + iE-Extensions ProtocolExtensionContainer { {UE-S1AP-ID-pair-ExtIEs} } OPTIONAL, + ... +} +UE-S1AP-ID-pair-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +UE-associatedLogicalS1-ConnectionItem ::= SEQUENCE { + mME-UE-S1AP-ID MME-UE-S1AP-ID OPTIONAL, + eNB-UE-S1AP-ID ENB-UE-S1AP-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { UE-associatedLogicalS1-ConnectionItemExtIEs} } OPTIONAL, + ... +} + + +UE-associatedLogicalS1-ConnectionItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UEIdentityIndexValue ::= BIT STRING (SIZE (10)) + +UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item + +UE-HistoryInformationFromTheUE ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the VisitedCellInfoList field contained in the UEInformationResponse message as defined in TS 36.331 [16] + +UEPagingID ::= CHOICE { + s-TMSI S-TMSI, + iMSI IMSI, + ... + } + +UERadioCapability ::= OCTET STRING + +UERadioCapabilityForPaging ::= OCTET STRING + +UE-RLF-Report-Container ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the rlf-Report-r9 field contained in the UEInformationResponse message as defined in TS 36.331 [16] + +UE-RLF-Report-Container-for-extended-bands ::= OCTET STRING +-- This IE is a transparent container and shall be encoded as the rlf-Report-v9e0 contained in the UEInformationResponse message as defined in TS 36.331 [16] + +UESecurityCapabilities ::= SEQUENCE { + encryptionAlgorithms EncryptionAlgorithms, + integrityProtectionAlgorithms IntegrityProtectionAlgorithms, + iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL, +... +} + +UESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UESidelinkAggregateMaximumBitrate ::= SEQUENCE { + uESidelinkAggregateMaximumBitRate BitRate, + iE-Extensions ProtocolExtensionContainer { {UE-Sidelink-Aggregate-MaximumBitrates-ExtIEs} } OPTIONAL, + ... +} + +UE-Sidelink-Aggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UE-Usage-Type ::= INTEGER (0..255) + +UL-CP-SecurityInformation ::= SEQUENCE { + ul-NAS-MAC UL-NAS-MAC, + ul-NAS-Count UL-NAS-Count, + iE-Extensions ProtocolExtensionContainer { { UL-CP-SecurityInformation-ExtIEs} } OPTIONAL, + ... +} + +UL-CP-SecurityInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UL-NAS-MAC ::= BIT STRING (SIZE (16)) + +UL-NAS-Count ::= BIT STRING (SIZE (5)) + +UnlicensedSpectrumRestriction ::= ENUMERATED { + unlicensed-restricted, + ... +} + + +UserLocationInformation ::= SEQUENCE { + eutran-cgi EUTRAN-CGI, + tai TAI, + iE-Extensions ProtocolExtensionContainer { { UserLocationInformation-ExtIEs} } OPTIONAL, + ... +} + +UserLocationInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UEUserPlaneCIoTSupportIndicator ::= ENUMERATED { + supported, + ... +} + +UE-Application-Layer-Measurement-Capability ::= BIT STRING (SIZE (8)) + +-- First bit: QoE Measurement for streaming service +-- Second bit: QoE Measurement for MTSI service + +-- Note that undefined bits are considered as a spare bit and spare bits shall be set to 0 by the transmitter and shall be ignored by the receiver. + +-- V + +VoiceSupportMatchIndicator ::= ENUMERATED { + supported, + not-supported, + ... +} + +V2XServicesAuthorized ::= SEQUENCE { + vehicleUE VehicleUE OPTIONAL, + pedestrianUE PedestrianUE OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {V2XServicesAuthorized-ExtIEs} } OPTIONAL, + ... +} + +V2XServicesAuthorized-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +VehicleUE ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +PedestrianUE ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +-- W + +WarningAreaList ::= CHOICE { + cellIDList ECGIList, + trackingAreaListforWarning TAIListforWarning, + emergencyAreaIDList EmergencyAreaIDList, + ... +} + + +WarningType ::= OCTET STRING (SIZE (2)) + +WarningSecurityInfo ::= OCTET STRING (SIZE (50)) + + +WarningMessageContents ::= OCTET STRING (SIZE(1..9600)) + + +-- X + + +X2TNLConfigurationInfo ::= SEQUENCE { + eNBX2TransportLayerAddresses ENBX2TLAs, + iE-Extensions ProtocolExtensionContainer { { X2TNLConfigurationInfo-ExtIEs} } OPTIONAL, + ... +} + +X2TNLConfigurationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Release 10 to transfer the IPsec and U-plane addresses during ANR action -- + {ID id-eNBX2ExtendedTransportLayerAddresses CRITICALITY ignore EXTENSION ENBX2ExtTLAs PRESENCE optional}| +-- Extension for Release 12 to transfer the IP addresses of the X2 GW -- + {ID id-eNBIndirectX2TransportLayerAddresses CRITICALITY ignore EXTENSION ENBIndirectX2TransportLayerAddresses PRESENCE optional}, + ... +} + +ENBX2ExtTLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2ExtTLAs)) OF ENBX2ExtTLA + +ENBX2ExtTLA ::= SEQUENCE { + iPsecTLA TransportLayerAddress OPTIONAL, + gTPTLAa ENBX2GTPTLAs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ENBX2ExtTLA-ExtIEs} } OPTIONAL, + ... +} + +ENBX2ExtTLA-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENBX2GTPTLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2GTPTLAs)) OF TransportLayerAddress + +ENBIndirectX2TransportLayerAddresses ::= SEQUENCE (SIZE(1..maxnoofeNBX2TLAs)) OF TransportLayerAddress + +-- Y +-- Z + +END + + + +-- ************************************************************** +-- +-- Common definitions +-- +-- ************************************************************** + +S1AP-CommonDataTypes { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-CommonDataTypes (3) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +Criticality ::= ENUMERATED { reject, ignore, notify } + +Presence ::= ENUMERATED { optional, conditional, mandatory } + +PrivateIE-ID ::= CHOICE { + local INTEGER (0..65535), + global OBJECT IDENTIFIER +} + +ProcedureCode ::= INTEGER (0..255) + +ProtocolExtensionID ::= INTEGER (0..65535) + +ProtocolIE-ID ::= INTEGER (0..65535) + +TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome } + +END + + +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +S1AP-Constants { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Constants (4) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + ProcedureCode, + ProtocolIE-ID + +FROM S1AP-CommonDataTypes; + + +-- ************************************************************** +-- +-- Elementary Procedures +-- +-- ************************************************************** + +id-HandoverPreparation ProcedureCode ::= 0 +id-HandoverResourceAllocation ProcedureCode ::= 1 +id-HandoverNotification ProcedureCode ::= 2 +id-PathSwitchRequest ProcedureCode ::= 3 +id-HandoverCancel ProcedureCode ::= 4 +id-E-RABSetup ProcedureCode ::= 5 +id-E-RABModify ProcedureCode ::= 6 +id-E-RABRelease ProcedureCode ::= 7 +id-E-RABReleaseIndication ProcedureCode ::= 8 +id-InitialContextSetup ProcedureCode ::= 9 +id-Paging ProcedureCode ::= 10 +id-downlinkNASTransport ProcedureCode ::= 11 +id-initialUEMessage ProcedureCode ::= 12 +id-uplinkNASTransport ProcedureCode ::= 13 +id-Reset ProcedureCode ::= 14 +id-ErrorIndication ProcedureCode ::= 15 +id-NASNonDeliveryIndication ProcedureCode ::= 16 +id-S1Setup ProcedureCode ::= 17 +id-UEContextReleaseRequest ProcedureCode ::= 18 +id-DownlinkS1cdma2000tunnelling ProcedureCode ::= 19 +id-UplinkS1cdma2000tunnelling ProcedureCode ::= 20 +id-UEContextModification ProcedureCode ::= 21 +id-UECapabilityInfoIndication ProcedureCode ::= 22 +id-UEContextRelease ProcedureCode ::= 23 +id-eNBStatusTransfer ProcedureCode ::= 24 +id-MMEStatusTransfer ProcedureCode ::= 25 +id-DeactivateTrace ProcedureCode ::= 26 +id-TraceStart ProcedureCode ::= 27 +id-TraceFailureIndication ProcedureCode ::= 28 +id-ENBConfigurationUpdate ProcedureCode ::= 29 +id-MMEConfigurationUpdate ProcedureCode ::= 30 +id-LocationReportingControl ProcedureCode ::= 31 +id-LocationReportingFailureIndication ProcedureCode ::= 32 +id-LocationReport ProcedureCode ::= 33 +id-OverloadStart ProcedureCode ::= 34 +id-OverloadStop ProcedureCode ::= 35 +id-WriteReplaceWarning ProcedureCode ::= 36 +id-eNBDirectInformationTransfer ProcedureCode ::= 37 +id-MMEDirectInformationTransfer ProcedureCode ::= 38 +id-PrivateMessage ProcedureCode ::= 39 +id-eNBConfigurationTransfer ProcedureCode ::= 40 +id-MMEConfigurationTransfer ProcedureCode ::= 41 +id-CellTrafficTrace ProcedureCode ::= 42 +id-Kill ProcedureCode ::= 43 +id-downlinkUEAssociatedLPPaTransport ProcedureCode ::= 44 +id-uplinkUEAssociatedLPPaTransport ProcedureCode ::= 45 +id-downlinkNonUEAssociatedLPPaTransport ProcedureCode ::= 46 +id-uplinkNonUEAssociatedLPPaTransport ProcedureCode ::= 47 +id-UERadioCapabilityMatch ProcedureCode ::= 48 +id-PWSRestartIndication ProcedureCode ::= 49 +id-E-RABModificationIndication ProcedureCode ::= 50 +id-PWSFailureIndication ProcedureCode ::= 51 +id-RerouteNASRequest ProcedureCode ::= 52 +id-UEContextModificationIndication ProcedureCode ::= 53 +id-ConnectionEstablishmentIndication ProcedureCode ::= 54 +id-UEContextSuspend ProcedureCode ::= 55 +id-UEContextResume ProcedureCode ::= 56 +id-NASDeliveryIndication ProcedureCode ::= 57 +id-RetrieveUEInformation ProcedureCode ::= 58 +id-UEInformationTransfer ProcedureCode ::= 59 +id-eNBCPRelocationIndication ProcedureCode ::= 60 +id-MMECPRelocationIndication ProcedureCode ::= 61 +id-SecondaryRATDataUsageReport ProcedureCode ::= 62 + +-- ************************************************************** +-- +-- Extension constants +-- +-- ************************************************************** + +maxPrivateIEs INTEGER ::= 65535 +maxProtocolExtensions INTEGER ::= 65535 +maxProtocolIEs INTEGER ::= 65535 +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** + +maxnoofCSGs INTEGER ::= 256 +maxnoofE-RABs INTEGER ::= 256 +maxnoofTAIs INTEGER ::= 256 +maxnoofTACs INTEGER ::= 256 +maxnoofErrors INTEGER ::= 256 +maxnoofBPLMNs INTEGER ::= 6 +maxnoofPLMNsPerMME INTEGER ::= 32 +maxnoofEPLMNs INTEGER ::= 15 +maxnoofEPLMNsPlusOne INTEGER ::= 16 +maxnoofForbLACs INTEGER ::= 4096 +maxnoofForbTACs INTEGER ::= 4096 +maxnoofIndividualS1ConnectionsToReset INTEGER ::= 256 +maxnoofCells INTEGER ::= 16 +maxnoofCellsineNB INTEGER ::= 256 +maxnoofTAIforWarning INTEGER ::= 65535 +maxnoofCellID INTEGER ::= 65535 +maxnoofDCNs INTEGER ::= 32 +maxnoofEmergencyAreaID INTEGER ::= 65535 +maxnoofCellinTAI INTEGER ::= 65535 +maxnoofCellinEAI INTEGER ::= 65535 +maxnoofeNBX2TLAs INTEGER ::= 2 +maxnoofeNBX2ExtTLAs INTEGER ::= 16 +maxnoofeNBX2GTPTLAs INTEGER ::= 16 +maxnoofRATs INTEGER ::= 8 +maxnoofGroupIDs INTEGER ::= 65535 +maxnoofMMECs INTEGER ::= 256 +maxnoofCellIDforMDT INTEGER ::= 32 +maxnoofTAforMDT INTEGER ::= 8 +maxnoofMDTPLMNs INTEGER ::= 16 +maxnoofCellsforRestart INTEGER ::= 256 +maxnoofRestartTAIs INTEGER ::= 2048 +maxnoofRestartEmergencyAreaIDs INTEGER ::= 256 +maxEARFCN INTEGER ::= 262143 +maxnoofMBSFNAreaMDT INTEGER ::= 8 +maxnoofRecommendedCells INTEGER ::= 16 +maxnoofRecommendedENBs INTEGER ::= 16 +maxnooftimeperiods INTEGER ::= 2 +maxnoofCellIDforQMC INTEGER ::= 32 +maxnoofTAforQMC INTEGER ::= 8 +maxnoofPLMNforQMC INTEGER ::= 16 + + + +-- ************************************************************** +-- +-- IEs +-- +-- ************************************************************** + +id-MME-UE-S1AP-ID ProtocolIE-ID ::= 0 +id-HandoverType ProtocolIE-ID ::= 1 +id-Cause ProtocolIE-ID ::= 2 +id-SourceID ProtocolIE-ID ::= 3 +id-TargetID ProtocolIE-ID ::= 4 +id-eNB-UE-S1AP-ID ProtocolIE-ID ::= 8 +id-E-RABSubjecttoDataForwardingList ProtocolIE-ID ::= 12 +id-E-RABtoReleaseListHOCmd ProtocolIE-ID ::= 13 +id-E-RABDataForwardingItem ProtocolIE-ID ::= 14 +id-E-RABReleaseItemBearerRelComp ProtocolIE-ID ::= 15 +id-E-RABToBeSetupListBearerSUReq ProtocolIE-ID ::= 16 +id-E-RABToBeSetupItemBearerSUReq ProtocolIE-ID ::= 17 +id-E-RABAdmittedList ProtocolIE-ID ::= 18 +id-E-RABFailedToSetupListHOReqAck ProtocolIE-ID ::= 19 +id-E-RABAdmittedItem ProtocolIE-ID ::= 20 +id-E-RABFailedtoSetupItemHOReqAck ProtocolIE-ID ::= 21 +id-E-RABToBeSwitchedDLList ProtocolIE-ID ::= 22 +id-E-RABToBeSwitchedDLItem ProtocolIE-ID ::= 23 +id-E-RABToBeSetupListCtxtSUReq ProtocolIE-ID ::= 24 +id-TraceActivation ProtocolIE-ID ::= 25 +id-NAS-PDU ProtocolIE-ID ::= 26 +id-E-RABToBeSetupItemHOReq ProtocolIE-ID ::= 27 +id-E-RABSetupListBearerSURes ProtocolIE-ID ::= 28 +id-E-RABFailedToSetupListBearerSURes ProtocolIE-ID ::= 29 +id-E-RABToBeModifiedListBearerModReq ProtocolIE-ID ::= 30 +id-E-RABModifyListBearerModRes ProtocolIE-ID ::= 31 +id-E-RABFailedToModifyList ProtocolIE-ID ::= 32 +id-E-RABToBeReleasedList ProtocolIE-ID ::= 33 +id-E-RABFailedToReleaseList ProtocolIE-ID ::= 34 +id-E-RABItem ProtocolIE-ID ::= 35 +id-E-RABToBeModifiedItemBearerModReq ProtocolIE-ID ::= 36 +id-E-RABModifyItemBearerModRes ProtocolIE-ID ::= 37 +id-E-RABReleaseItem ProtocolIE-ID ::= 38 +id-E-RABSetupItemBearerSURes ProtocolIE-ID ::= 39 +id-SecurityContext ProtocolIE-ID ::= 40 +id-HandoverRestrictionList ProtocolIE-ID ::= 41 +id-UEPagingID ProtocolIE-ID ::= 43 +id-pagingDRX ProtocolIE-ID ::= 44 +id-TAIList ProtocolIE-ID ::= 46 +id-TAIItem ProtocolIE-ID ::= 47 +id-E-RABFailedToSetupListCtxtSURes ProtocolIE-ID ::= 48 +id-E-RABReleaseItemHOCmd ProtocolIE-ID ::= 49 +id-E-RABSetupItemCtxtSURes ProtocolIE-ID ::= 50 +id-E-RABSetupListCtxtSURes ProtocolIE-ID ::= 51 +id-E-RABToBeSetupItemCtxtSUReq ProtocolIE-ID ::= 52 +id-E-RABToBeSetupListHOReq ProtocolIE-ID ::= 53 +id-GERANtoLTEHOInformationRes ProtocolIE-ID ::= 55 +id-UTRANtoLTEHOInformationRes ProtocolIE-ID ::= 57 +id-CriticalityDiagnostics ProtocolIE-ID ::= 58 +id-Global-ENB-ID ProtocolIE-ID ::= 59 +id-eNBname ProtocolIE-ID ::= 60 +id-MMEname ProtocolIE-ID ::= 61 +id-ServedPLMNs ProtocolIE-ID ::= 63 +id-SupportedTAs ProtocolIE-ID ::= 64 +id-TimeToWait ProtocolIE-ID ::= 65 +id-uEaggregateMaximumBitrate ProtocolIE-ID ::= 66 +id-TAI ProtocolIE-ID ::= 67 +id-E-RABReleaseListBearerRelComp ProtocolIE-ID ::= 69 +id-cdma2000PDU ProtocolIE-ID ::= 70 +id-cdma2000RATType ProtocolIE-ID ::= 71 +id-cdma2000SectorID ProtocolIE-ID ::= 72 +id-SecurityKey ProtocolIE-ID ::= 73 +id-UERadioCapability ProtocolIE-ID ::= 74 +id-GUMMEI-ID ProtocolIE-ID ::= 75 +id-E-RABInformationListItem ProtocolIE-ID ::= 78 +id-Direct-Forwarding-Path-Availability ProtocolIE-ID ::= 79 +id-UEIdentityIndexValue ProtocolIE-ID ::= 80 +id-cdma2000HOStatus ProtocolIE-ID ::= 83 +id-cdma2000HORequiredIndication ProtocolIE-ID ::= 84 +id-E-UTRAN-Trace-ID ProtocolIE-ID ::= 86 +id-RelativeMMECapacity ProtocolIE-ID ::= 87 +id-SourceMME-UE-S1AP-ID ProtocolIE-ID ::= 88 +id-Bearers-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 89 +id-eNB-StatusTransfer-TransparentContainer ProtocolIE-ID ::= 90 +id-UE-associatedLogicalS1-ConnectionItem ProtocolIE-ID ::= 91 +id-ResetType ProtocolIE-ID ::= 92 +id-UE-associatedLogicalS1-ConnectionListResAck ProtocolIE-ID ::= 93 +id-E-RABToBeSwitchedULItem ProtocolIE-ID ::= 94 +id-E-RABToBeSwitchedULList ProtocolIE-ID ::= 95 +id-S-TMSI ProtocolIE-ID ::= 96 +id-cdma2000OneXRAND ProtocolIE-ID ::= 97 +id-RequestType ProtocolIE-ID ::= 98 +id-UE-S1AP-IDs ProtocolIE-ID ::= 99 +id-EUTRAN-CGI ProtocolIE-ID ::= 100 +id-OverloadResponse ProtocolIE-ID ::= 101 +id-cdma2000OneXSRVCCInfo ProtocolIE-ID ::= 102 +id-E-RABFailedToBeReleasedList ProtocolIE-ID ::= 103 +id-Source-ToTarget-TransparentContainer ProtocolIE-ID ::= 104 +id-ServedGUMMEIs ProtocolIE-ID ::= 105 +id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 106 +id-UESecurityCapabilities ProtocolIE-ID ::= 107 +id-CSFallbackIndicator ProtocolIE-ID ::= 108 +id-CNDomain ProtocolIE-ID ::= 109 +id-E-RABReleasedList ProtocolIE-ID ::= 110 +id-MessageIdentifier ProtocolIE-ID ::= 111 +id-SerialNumber ProtocolIE-ID ::= 112 +id-WarningAreaList ProtocolIE-ID ::= 113 +id-RepetitionPeriod ProtocolIE-ID ::= 114 +id-NumberofBroadcastRequest ProtocolIE-ID ::= 115 +id-WarningType ProtocolIE-ID ::= 116 +id-WarningSecurityInfo ProtocolIE-ID ::= 117 +id-DataCodingScheme ProtocolIE-ID ::= 118 +id-WarningMessageContents ProtocolIE-ID ::= 119 +id-BroadcastCompletedAreaList ProtocolIE-ID ::= 120 +id-Inter-SystemInformationTransferTypeEDT ProtocolIE-ID ::= 121 +id-Inter-SystemInformationTransferTypeMDT ProtocolIE-ID ::= 122 +id-Target-ToSource-TransparentContainer ProtocolIE-ID ::= 123 +id-SRVCCOperationPossible ProtocolIE-ID ::= 124 +id-SRVCCHOIndication ProtocolIE-ID ::= 125 +id-NAS-DownlinkCount ProtocolIE-ID ::= 126 +id-CSG-Id ProtocolIE-ID ::= 127 +id-CSG-IdList ProtocolIE-ID ::= 128 +id-SONConfigurationTransferECT ProtocolIE-ID ::= 129 +id-SONConfigurationTransferMCT ProtocolIE-ID ::= 130 +id-TraceCollectionEntityIPAddress ProtocolIE-ID ::= 131 +id-MSClassmark2 ProtocolIE-ID ::= 132 +id-MSClassmark3 ProtocolIE-ID ::= 133 +id-RRC-Establishment-Cause ProtocolIE-ID ::= 134 +id-NASSecurityParametersfromE-UTRAN ProtocolIE-ID ::= 135 +id-NASSecurityParameterstoE-UTRAN ProtocolIE-ID ::= 136 +id-DefaultPagingDRX ProtocolIE-ID ::= 137 +id-Source-ToTarget-TransparentContainer-Secondary ProtocolIE-ID ::= 138 +id-Target-ToSource-TransparentContainer-Secondary ProtocolIE-ID ::= 139 +id-EUTRANRoundTripDelayEstimationInfo ProtocolIE-ID ::= 140 +id-BroadcastCancelledAreaList ProtocolIE-ID ::= 141 +id-ConcurrentWarningMessageIndicator ProtocolIE-ID ::= 142 +id-Data-Forwarding-Not-Possible ProtocolIE-ID ::= 143 +id-ExtendedRepetitionPeriod ProtocolIE-ID ::= 144 +id-CellAccessMode ProtocolIE-ID ::= 145 +id-CSGMembershipStatus ProtocolIE-ID ::= 146 +id-LPPa-PDU ProtocolIE-ID ::= 147 +id-Routing-ID ProtocolIE-ID ::= 148 +id-Time-Synchronisation-Info ProtocolIE-ID ::= 149 +id-PS-ServiceNotAvailable ProtocolIE-ID ::= 150 +id-PagingPriority ProtocolIE-ID ::= 151 +id-x2TNLConfigurationInfo ProtocolIE-ID ::= 152 +id-eNBX2ExtendedTransportLayerAddresses ProtocolIE-ID ::= 153 +id-GUMMEIList ProtocolIE-ID ::= 154 +id-GW-TransportLayerAddress ProtocolIE-ID ::= 155 +id-Correlation-ID ProtocolIE-ID ::= 156 +id-SourceMME-GUMMEI ProtocolIE-ID ::= 157 +id-MME-UE-S1AP-ID-2 ProtocolIE-ID ::= 158 +id-RegisteredLAI ProtocolIE-ID ::= 159 +id-RelayNode-Indicator ProtocolIE-ID ::= 160 +id-TrafficLoadReductionIndication ProtocolIE-ID ::= 161 +id-MDTConfiguration ProtocolIE-ID ::= 162 +id-MMERelaySupportIndicator ProtocolIE-ID ::= 163 +id-GWContextReleaseIndication ProtocolIE-ID ::= 164 +id-ManagementBasedMDTAllowed ProtocolIE-ID ::= 165 +id-PrivacyIndicator ProtocolIE-ID ::= 166 +id-Time-UE-StayedInCell-EnhancedGranularity ProtocolIE-ID ::= 167 +id-HO-Cause ProtocolIE-ID ::= 168 +id-VoiceSupportMatchIndicator ProtocolIE-ID ::= 169 +id-GUMMEIType ProtocolIE-ID ::= 170 +id-M3Configuration ProtocolIE-ID ::= 171 +id-M4Configuration ProtocolIE-ID ::= 172 +id-M5Configuration ProtocolIE-ID ::= 173 +id-MDT-Location-Info ProtocolIE-ID ::= 174 +id-MobilityInformation ProtocolIE-ID ::= 175 +id-Tunnel-Information-for-BBF ProtocolIE-ID ::= 176 +id-ManagementBasedMDTPLMNList ProtocolIE-ID ::= 177 +id-SignallingBasedMDTPLMNList ProtocolIE-ID ::= 178 +id-ULCOUNTValueExtended ProtocolIE-ID ::= 179 +id-DLCOUNTValueExtended ProtocolIE-ID ::= 180 +id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID ::= 181 +id-ECGIListForRestart ProtocolIE-ID ::= 182 +id-SIPTO-Correlation-ID ProtocolIE-ID ::= 183 +id-SIPTO-L-GW-TransportLayerAddress ProtocolIE-ID ::= 184 +id-TransportInformation ProtocolIE-ID ::= 185 +id-LHN-ID ProtocolIE-ID ::= 186 +id-AdditionalCSFallbackIndicator ProtocolIE-ID ::= 187 +id-TAIListForRestart ProtocolIE-ID ::= 188 +id-UserLocationInformation ProtocolIE-ID ::= 189 +id-EmergencyAreaIDListForRestart ProtocolIE-ID ::= 190 +id-KillAllWarningMessages ProtocolIE-ID ::= 191 +id-Masked-IMEISV ProtocolIE-ID ::= 192 +id-eNBIndirectX2TransportLayerAddresses ProtocolIE-ID ::= 193 +id-uE-HistoryInformationFromTheUE ProtocolIE-ID ::= 194 +id-ProSeAuthorized ProtocolIE-ID ::= 195 +id-ExpectedUEBehaviour ProtocolIE-ID ::= 196 +id-LoggedMBSFNMDT ProtocolIE-ID ::= 197 +id-UERadioCapabilityForPaging ProtocolIE-ID ::= 198 +id-E-RABToBeModifiedListBearerModInd ProtocolIE-ID ::= 199 +id-E-RABToBeModifiedItemBearerModInd ProtocolIE-ID ::= 200 +id-E-RABNotToBeModifiedListBearerModInd ProtocolIE-ID ::= 201 +id-E-RABNotToBeModifiedItemBearerModInd ProtocolIE-ID ::= 202 +id-E-RABModifyListBearerModConf ProtocolIE-ID ::= 203 +id-E-RABModifyItemBearerModConf ProtocolIE-ID ::= 204 +id-E-RABFailedToModifyListBearerModConf ProtocolIE-ID ::= 205 +id-SON-Information-Report ProtocolIE-ID ::= 206 +id-Muting-Availability-Indication ProtocolIE-ID ::= 207 +id-Muting-Pattern-Information ProtocolIE-ID ::= 208 +id-Synchronisation-Information ProtocolIE-ID ::= 209 +id-E-RABToBeReleasedListBearerModConf ProtocolIE-ID ::= 210 +id-AssistanceDataForPaging ProtocolIE-ID ::= 211 +id-CellIdentifierAndCELevelForCECapableUEs ProtocolIE-ID ::= 212 +id-InformationOnRecommendedCellsAndENBsForPaging ProtocolIE-ID ::= 213 +id-RecommendedCellItem ProtocolIE-ID ::= 214 +id-RecommendedENBItem ProtocolIE-ID ::= 215 +id-ProSeUEtoNetworkRelaying ProtocolIE-ID ::= 216 +id-ULCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 217 +id-DLCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 218 +id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ProtocolIE-ID ::= 219 +id-M6Configuration ProtocolIE-ID ::= 220 +id-M7Configuration ProtocolIE-ID ::= 221 +id-PWSfailedECGIList ProtocolIE-ID ::= 222 +id-MME-Group-ID ProtocolIE-ID ::= 223 +id-Additional-GUTI ProtocolIE-ID ::= 224 +id-S1-Message ProtocolIE-ID ::= 225 +id-CSGMembershipInfo ProtocolIE-ID ::= 226 +id-Paging-eDRXInformation ProtocolIE-ID ::= 227 +id-UE-RetentionInformation ProtocolIE-ID ::= 228 +id-UE-Usage-Type ProtocolIE-ID ::= 230 +id-extended-UEIdentityIndexValue ProtocolIE-ID ::= 231 +id-RAT-Type ProtocolIE-ID ::= 232 +id-BearerType ProtocolIE-ID ::= 233 +id-NB-IoT-DefaultPagingDRX ProtocolIE-ID ::= 234 +id-E-RABFailedToResumeListResumeReq ProtocolIE-ID ::= 235 +id-E-RABFailedToResumeItemResumeReq ProtocolIE-ID ::= 236 +id-E-RABFailedToResumeListResumeRes ProtocolIE-ID ::= 237 +id-E-RABFailedToResumeItemResumeRes ProtocolIE-ID ::= 238 +id-NB-IoT-Paging-eDRXInformation ProtocolIE-ID ::= 239 +id-V2XServicesAuthorized ProtocolIE-ID ::= 240 +id-UEUserPlaneCIoTSupportIndicator ProtocolIE-ID ::= 241 +id-CE-mode-B-SupportIndicator ProtocolIE-ID ::= 242 +id-SRVCCOperationNotPossible ProtocolIE-ID ::= 243 +id-NB-IoT-UEIdentityIndexValue ProtocolIE-ID ::= 244 +id-RRC-Resume-Cause ProtocolIE-ID ::= 245 +id-DCN-ID ProtocolIE-ID ::= 246 +id-ServedDCNs ProtocolIE-ID ::= 247 +id-UESidelinkAggregateMaximumBitrate ProtocolIE-ID ::= 248 +id-DLNASPDUDeliveryAckRequest ProtocolIE-ID ::= 249 +id-Coverage-Level ProtocolIE-ID ::= 250 +id-EnhancedCoverageRestricted ProtocolIE-ID ::= 251 +id-UE-Level-QoS-Parameters ProtocolIE-ID ::= 252 +id-DL-CP-SecurityInformation ProtocolIE-ID ::= 253 +id-UL-CP-SecurityInformation ProtocolIE-ID ::= 254 +id-extended-e-RAB-MaximumBitrateDL ProtocolIE-ID ::= 255 +id-extended-e-RAB-MaximumBitrateUL ProtocolIE-ID ::= 256 +id-extended-e-RAB-GuaranteedBitrateDL ProtocolIE-ID ::= 257 +id-extended-e-RAB-GuaranteedBitrateUL ProtocolIE-ID ::= 258 +id-extended-uEaggregateMaximumBitRateDL ProtocolIE-ID ::= 259 +id-extended-uEaggregateMaximumBitRateUL ProtocolIE-ID ::= 260 +id-NRrestriction ProtocolIE-ID ::= 261 +id-UEAppLayerMeasConfig ProtocolIE-ID ::= 262 +id-UE-Application-Layer-Measurement-Capability ProtocolIE-ID ::= 263 +id-SecondaryRATDataUsageReportList ProtocolIE-ID ::= 264 +id-SecondaryRATDataUsageReportItem ProtocolIE-ID ::= 265 +id-HandoverFlag ProtocolIE-ID ::= 266 +id-E-RABUsageReportItem ProtocolIE-ID ::= 267 +id-SecondaryRATDataUsageRequest ProtocolIE-ID ::= 268 +id-NRUESecurityCapabilities ProtocolIE-ID ::= 269 +id-UnlicensedSpectrumRestriction ProtocolIE-ID ::= 270 +id-CE-ModeBRestricted ProtocolIE-ID ::= 271 +id-LTE-M-Indication ProtocolIE-ID ::= 272 +id-DownlinkPacketLossRate ProtocolIE-ID ::= 273 +id-UplinkPacketLossRate ProtocolIE-ID ::= 274 +id-UECapabilityInfoRequest ProtocolIE-ID ::= 275 +id-serviceType ProtocolIE-ID ::= 276 +id-AerialUEsubscriptionInformation ProtocolIE-ID ::= 277 +id-EndIndication ProtocolIE-ID ::= 280 +id-EDT-Session ProtocolIE-ID ::= 281 +id-CNTypeRestrictions ProtocolIE-ID ::= 282 + +END diff --git a/openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-CommonDataTypes.asn b/openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-CommonDataTypes.asn deleted file mode 100644 index 3b86547186..0000000000 --- a/openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-CommonDataTypes.asn +++ /dev/null @@ -1,201 +0,0 @@ --- ************************************************************** --- --- Common definitions --- --- ************************************************************** - -S1AP-CommonDataTypes { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-CommonDataTypes (3) } - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - -Criticality ::= ENUMERATED { reject, ignore, notify } - -Presence ::= ENUMERATED { optional, conditional, mandatory } - -PrivateIE-ID ::= CHOICE { - local INTEGER (0..65535), - global OBJECT IDENTIFIER -} - ---ProcedureCode ::= INTEGER (0..255) -ProcedureCode ::= INTEGER { -id-HandoverPreparation(0), -id-HandoverResourceAllocation(1), -id-HandoverNotification(2), -id-PathSwitchRequest(3), -id-HandoverCancel(4), -id-E-RABSetup(5), -id-E-RABModify(6), -id-E-RABRelease(7), -id-E-RABReleaseIndication(8), -id-InitialContextSetup(9), -id-Paging(10), -id-downlinkNASTransport(11), -id-initialUEMessage(12), -id-uplinkNASTransport(13), -id-Reset(14), -id-ErrorIndication(15), -id-NASNonDeliveryIndication(16), -id-S1Setup(17), -id-UEContextReleaseRequest(18), -id-DownlinkS1cdma2000tunneling(19), -id-UplinkS1cdma2000tunneling(20), -id-UEContextModification(21), -id-UECapabilityInfoIndication(22), -id-UEContextRelease(23), -id-eNBStatusTransfer(24), -id-MMEStatusTransfer(25), -id-DeactivateTrace(26), -id-TraceStart(27), -id-TraceFailureIndication(28), -id-ENBConfigurationUpdate(29), -id-MMEConfigurationUpdate(30), -id-LocationReportingControl(31), -id-LocationReportingFailureIndication(32), -id-LocationReport(33), -id-OverloadStart(34), -id-OverloadStop(35), -id-WriteReplaceWarning(36), -id-eNBDirectInformationTransfer(37), -id-MMEDirectInformationTransfer(38), -id-PrivateMessage(39), -id-eNBConfigurationTransfer(40), -id-MMEConfigurationTransfer(41), -id-CellTrafficTrace(42) -} (0..255) - -ProtocolExtensionID ::= INTEGER (0..65535) - -ProtocolIE-ID ::= INTEGER { -id-MME-UE-S1AP-ID(0), -id-HandoverType(1), -id-Cause(2), -id-SourceID(3), -id-TargetID (4), -id-eNB-UE-S1AP-ID(8), -id-E-RABSubjecttoDataForwardingList(12), -id-E-RABtoReleaseListHOCmd(13), -id-E-RABDataForwardingItem(14), -id-E-RABReleaseItemBearerRelComp(15), -id-E-RABToBeSetupListBearerSUReq(16), -id-E-RABToBeSetupItemBearerSUReq(17), -id-E-RABAdmittedList(18), -id-E-RABFailedToSetupListHOReqAck(19), -id-E-RABAdmittedItem(20), -id-E-RABFailedtoSetupItemHOReqAck(21), -id-E-RABToBeSwitchedDLList(22), -id-E-RABToBeSwitchedDLItem(23), -id-E-RABToBeSetupListCtxtSUReq(24), -id-TraceActivation(25), -id-NAS-PDU(26), -id-E-RABToBeSetupItemHOReq(27), -id-E-RABSetupListBearerSURes(28), -id-E-RABFailedToSetupListBearerSURes(29), -id-E-RABToBeModifiedListBearerModReq(30), -id-E-RABModifyListBearerModRes(31), -id-E-RABFailedToModifyList(32), -id-E-RABToBeReleasedList(33), -id-E-RABFailedToReleaseList(34), -id-E-RABItem(35), -id-E-RABToBeModifiedItemBearerModReq(36), -id-E-RABModifyItemBearerModRes(37), -id-E-RABReleaseItem(38), -id-E-RABSetupItemBearerSURes(39), -id-SecurityContext(40), -id-HandoverRestrictionList(41), -id-UEPagingID(43), -id-pagingDRX(44), -id-TAIList(46), -id-TAIItem(47), -id-E-RABFailedToSetupListCtxtSURes(48), -id-E-RABReleaseItemHOCmd(49), -id-E-RABSetupItemCtxtSURes(50), -id-E-RABSetupListCtxtSURes(51), -id-E-RABToBeSetupItemCtxtSUReq(52), -id-E-RABToBeSetupListHOReq(53), -id-GERANtoLTEHOInformationRes(55), -id-UTRANtoLTEHOInformationRes(57), -id-CriticalityDiagnostics(58), -id-Global-ENB-ID(59), -id-eNBname(60), -id-MMEname(61), -id-ServedPLMNs(63), -id-SupportedTAs(64), -id-TimeToWait(65), -id-uEaggregateMaximumBitrate(66), -id-TAI(67), -id-E-RABReleaseListBearerRelComp(69), -id-cdma2000PDU(70), -id-cdma2000RATType(71), -id-cdma2000SectorID(72), -id-SecurityKey(73), -id-UERadioCapability(74), -id-GUMMEI-ID(75), -id-E-RABInformationListItem(78), -id-Direct-Forwarding-Path-Availability(79), -id-UEIdentityIndexValue(80), -id-cdma2000HOStatus(83), -id-cdma2000HORequiredIndication(84), -id-E-UTRAN-Trace-ID(86), -id-RelativeMMECapacity(87), -id-SourceMME-UE-S1AP-ID(88), -id-Bearers-SubjectToStatusTransfer-Item(89), -id-eNB-StatusTransfer-TransparentContainer(90), -id-UE-associatedLogicalS1-ConnectionItem(91), -id-ResetType(92), -id-UE-associatedLogicalS1-ConnectionListResAck(93), -id-E-RABToBeSwitchedULItem(94), -id-E-RABToBeSwitchedULList(95), -id-S-TMSI(96), -id-cdma2000OneXRAND(97), -id-RequestType(98), -id-UE-S1AP-IDs(99), -id-EUTRAN-CGI(100), -id-OverloadResponse(101), -id-cdma2000OneXSRVCCInfo(102), -id-E-RABFailedToBeReleasedList(103), -id-Source-ToTarget-TransparentContainer(104), -id-ServedGUMMEIs(105), -id-SubscriberProfileIDforRFP(106), -id-UESecurityCapabilities(107), -id-CSFallbackIndicator(108), -id-CNDomain(109), -id-E-RABReleasedList(110), -id-MessageIdentifier(111), -id-SerialNumber(112), -id-WarningAreaList(113), -id-RepetitionPeriod(114), -id-NumberofBroadcastRequest(115), -id-WarningType(116), -id-WarningSecurityInfo(117), -id-DataCodingScheme(118), -id-WarningMessageContents(119), -id-BroadcastCompletedAreaList(120), -id-Inter-SystemInformationTransferTypeEDT(121), -id-Inter-SystemInformationTransferTypeMDT(122), -id-Target-ToSource-TransparentContainer(123), -id-SRVCCOperationPossible(124), -id-SRVCCHOIndication(125), -id-NAS-DownlinkCount(126), -id-CSG-Id(127), -id-CSG-IdList(128), -id-SONConfigurationTransferECT(129), -id-SONConfigurationTransferMCT(130), -id-TraceCollectionEntityIPAddress(131), -id-MSClassmark2(132), -id-MSClassmark3(133), -id-RRC-Establishment-Cause(134), -id-NASSecurityParametersfromE-UTRAN(135), -id-NASSecurityParameterstoE-UTRAN(136), -id-DefaultPagingDRX(137), -id-Source-ToTarget-TransparentContainer-Secondary(138), -id-Target-ToSource-TransparentContainer-Secondary(139) -} (0..65535) - -TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome } - -END diff --git a/openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-Constants.asn b/openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-Constants.asn deleted file mode 100644 index debbafd79d..0000000000 --- a/openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-Constants.asn +++ /dev/null @@ -1,249 +0,0 @@ --- ************************************************************** --- --- Constant definitions --- --- ************************************************************** - -S1AP-Constants { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Constants (4) } - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - --- ************************************************************** --- --- IE parameter types from other modules. --- --- ************************************************************** - - -IMPORTS - ProcedureCode, - ProtocolIE-ID - -FROM S1AP-CommonDataTypes; - - --- ************************************************************** --- --- Elementary Procedures --- --- ************************************************************** - -id-HandoverPreparation ProcedureCode ::= 0 -id-HandoverResourceAllocation ProcedureCode ::= 1 -id-HandoverNotification ProcedureCode ::= 2 -id-PathSwitchRequest ProcedureCode ::= 3 -id-HandoverCancel ProcedureCode ::= 4 -id-E-RABSetup ProcedureCode ::= 5 -id-E-RABModify ProcedureCode ::= 6 -id-E-RABRelease ProcedureCode ::= 7 -id-E-RABReleaseIndication ProcedureCode ::= 8 -id-InitialContextSetup ProcedureCode ::= 9 -id-Paging ProcedureCode ::= 10 -id-downlinkNASTransport ProcedureCode ::= 11 -id-initialUEMessage ProcedureCode ::= 12 -id-uplinkNASTransport ProcedureCode ::= 13 -id-Reset ProcedureCode ::= 14 -id-ErrorIndication ProcedureCode ::= 15 -id-NASNonDeliveryIndication ProcedureCode ::= 16 -id-S1Setup ProcedureCode ::= 17 -id-UEContextReleaseRequest ProcedureCode ::= 18 -id-DownlinkS1cdma2000tunneling ProcedureCode ::= 19 -id-UplinkS1cdma2000tunneling ProcedureCode ::= 20 -id-UEContextModification ProcedureCode ::= 21 -id-UECapabilityInfoIndication ProcedureCode ::= 22 -id-UEContextRelease ProcedureCode ::= 23 -id-eNBStatusTransfer ProcedureCode ::= 24 -id-MMEStatusTransfer ProcedureCode ::= 25 -id-DeactivateTrace ProcedureCode ::= 26 -id-TraceStart ProcedureCode ::= 27 -id-TraceFailureIndication ProcedureCode ::= 28 -id-ENBConfigurationUpdate ProcedureCode ::= 29 -id-MMEConfigurationUpdate ProcedureCode ::= 30 -id-LocationReportingControl ProcedureCode ::= 31 -id-LocationReportingFailureIndication ProcedureCode ::= 32 -id-LocationReport ProcedureCode ::= 33 -id-OverloadStart ProcedureCode ::= 34 -id-OverloadStop ProcedureCode ::= 35 -id-WriteReplaceWarning ProcedureCode ::= 36 -id-eNBDirectInformationTransfer ProcedureCode ::= 37 -id-MMEDirectInformationTransfer ProcedureCode ::= 38 -id-PrivateMessage ProcedureCode ::= 39 -id-eNBConfigurationTransfer ProcedureCode ::= 40 -id-MMEConfigurationTransfer ProcedureCode ::= 41 -id-CellTrafficTrace ProcedureCode ::= 42 - --- ************************************************************** --- --- Extension constants --- --- ************************************************************** - -maxPrivateIEs INTEGER ::= 65535 -maxProtocolExtensions INTEGER ::= 65535 -maxProtocolIEs INTEGER ::= 65535 --- ************************************************************** --- --- Lists --- --- ************************************************************** - -maxNrOfCSGs INTEGER ::= 256 -maxNrOfE-RABs INTEGER ::= 256 -maxnoofTAIs INTEGER ::= 256 -maxnoofTACs INTEGER ::= 256 -maxNrOfErrors INTEGER ::= 256 -maxnoofBPLMNs INTEGER ::= 6 -maxnoofPLMNsPerMME INTEGER ::= 32 -maxnoofEPLMNs INTEGER ::= 15 -maxnoofEPLMNsPlusOne INTEGER ::= 16 -maxnoofForbLACs INTEGER ::= 4096 -maxnoofForbTACs INTEGER ::= 4096 -maxNrOfIndividualS1ConnectionsToReset INTEGER ::= 256 -maxnoofCells INTEGER ::= 16 -maxnoofTAIforWarning INTEGER ::= 65535 -maxnoofCellID INTEGER ::= 65535 -maxnoofEmergencyAreaID INTEGER ::= 65535 -maxnoofCellinTAI INTEGER ::= 65535 -maxnoofCellinEAI INTEGER ::= 65535 -maxnoofeNBX2TLAs INTEGER ::= 2 -maxnoofRATs INTEGER ::= 8 -maxnoofGroupIDs INTEGER ::= 65535 -maxnoofMMECs INTEGER ::= 256 - - - - --- ************************************************************** --- --- IEs --- --- ************************************************************** - -id-MME-UE-S1AP-ID ProtocolIE-ID ::= 0 -id-HandoverType ProtocolIE-ID ::= 1 -id-Cause ProtocolIE-ID ::= 2 -id-SourceID ProtocolIE-ID ::= 3 -id-TargetID ProtocolIE-ID ::= 4 -id-eNB-UE-S1AP-ID ProtocolIE-ID ::= 8 -id-E-RABSubjecttoDataForwardingList ProtocolIE-ID ::= 12 -id-E-RABtoReleaseListHOCmd ProtocolIE-ID ::= 13 -id-E-RABDataForwardingItem ProtocolIE-ID ::= 14 -id-E-RABReleaseItemBearerRelComp ProtocolIE-ID ::= 15 -id-E-RABToBeSetupListBearerSUReq ProtocolIE-ID ::= 16 -id-E-RABToBeSetupItemBearerSUReq ProtocolIE-ID ::= 17 -id-E-RABAdmittedList ProtocolIE-ID ::= 18 -id-E-RABFailedToSetupListHOReqAck ProtocolIE-ID ::= 19 -id-E-RABAdmittedItem ProtocolIE-ID ::= 20 -id-E-RABFailedtoSetupItemHOReqAck ProtocolIE-ID ::= 21 -id-E-RABToBeSwitchedDLList ProtocolIE-ID ::= 22 -id-E-RABToBeSwitchedDLItem ProtocolIE-ID ::= 23 -id-E-RABToBeSetupListCtxtSUReq ProtocolIE-ID ::= 24 -id-TraceActivation ProtocolIE-ID ::= 25 -id-NAS-PDU ProtocolIE-ID ::= 26 -id-E-RABToBeSetupItemHOReq ProtocolIE-ID ::= 27 -id-E-RABSetupListBearerSURes ProtocolIE-ID ::= 28 -id-E-RABFailedToSetupListBearerSURes ProtocolIE-ID ::= 29 -id-E-RABToBeModifiedListBearerModReq ProtocolIE-ID ::= 30 -id-E-RABModifyListBearerModRes ProtocolIE-ID ::= 31 -id-E-RABFailedToModifyList ProtocolIE-ID ::= 32 -id-E-RABToBeReleasedList ProtocolIE-ID ::= 33 -id-E-RABFailedToReleaseList ProtocolIE-ID ::= 34 -id-E-RABItem ProtocolIE-ID ::= 35 -id-E-RABToBeModifiedItemBearerModReq ProtocolIE-ID ::= 36 -id-E-RABModifyItemBearerModRes ProtocolIE-ID ::= 37 -id-E-RABReleaseItem ProtocolIE-ID ::= 38 -id-E-RABSetupItemBearerSURes ProtocolIE-ID ::= 39 -id-SecurityContext ProtocolIE-ID ::= 40 -id-HandoverRestrictionList ProtocolIE-ID ::= 41 -id-UEPagingID ProtocolIE-ID ::= 43 -id-pagingDRX ProtocolIE-ID ::= 44 -id-TAIList ProtocolIE-ID ::= 46 -id-TAIItem ProtocolIE-ID ::= 47 -id-E-RABFailedToSetupListCtxtSURes ProtocolIE-ID ::= 48 -id-E-RABReleaseItemHOCmd ProtocolIE-ID ::= 49 -id-E-RABSetupItemCtxtSURes ProtocolIE-ID ::= 50 -id-E-RABSetupListCtxtSURes ProtocolIE-ID ::= 51 -id-E-RABToBeSetupItemCtxtSUReq ProtocolIE-ID ::= 52 -id-E-RABToBeSetupListHOReq ProtocolIE-ID ::= 53 -id-GERANtoLTEHOInformationRes ProtocolIE-ID ::= 55 -id-UTRANtoLTEHOInformationRes ProtocolIE-ID ::= 57 -id-CriticalityDiagnostics ProtocolIE-ID ::= 58 -id-Global-ENB-ID ProtocolIE-ID ::= 59 -id-eNBname ProtocolIE-ID ::= 60 -id-MMEname ProtocolIE-ID ::= 61 -id-ServedPLMNs ProtocolIE-ID ::= 63 -id-SupportedTAs ProtocolIE-ID ::= 64 -id-TimeToWait ProtocolIE-ID ::= 65 -id-uEaggregateMaximumBitrate ProtocolIE-ID ::= 66 -id-TAI ProtocolIE-ID ::= 67 -id-E-RABReleaseListBearerRelComp ProtocolIE-ID ::= 69 -id-cdma2000PDU ProtocolIE-ID ::= 70 -id-cdma2000RATType ProtocolIE-ID ::= 71 -id-cdma2000SectorID ProtocolIE-ID ::= 72 -id-SecurityKey ProtocolIE-ID ::= 73 -id-UERadioCapability ProtocolIE-ID ::= 74 -id-GUMMEI-ID ProtocolIE-ID ::= 75 -id-E-RABInformationListItem ProtocolIE-ID ::= 78 -id-Direct-Forwarding-Path-Availability ProtocolIE-ID ::= 79 -id-UEIdentityIndexValue ProtocolIE-ID ::= 80 -id-cdma2000HOStatus ProtocolIE-ID ::= 83 -id-cdma2000HORequiredIndication ProtocolIE-ID ::= 84 -id-E-UTRAN-Trace-ID ProtocolIE-ID ::= 86 -id-RelativeMMECapacity ProtocolIE-ID ::= 87 -id-SourceMME-UE-S1AP-ID ProtocolIE-ID ::= 88 -id-Bearers-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 89 -id-eNB-StatusTransfer-TransparentContainer ProtocolIE-ID ::= 90 -id-UE-associatedLogicalS1-ConnectionItem ProtocolIE-ID ::= 91 -id-ResetType ProtocolIE-ID ::= 92 -id-UE-associatedLogicalS1-ConnectionListResAck ProtocolIE-ID ::= 93 -id-E-RABToBeSwitchedULItem ProtocolIE-ID ::= 94 -id-E-RABToBeSwitchedULList ProtocolIE-ID ::= 95 -id-S-TMSI ProtocolIE-ID ::= 96 -id-cdma2000OneXRAND ProtocolIE-ID ::= 97 -id-RequestType ProtocolIE-ID ::= 98 -id-UE-S1AP-IDs ProtocolIE-ID ::= 99 -id-EUTRAN-CGI ProtocolIE-ID ::= 100 -id-OverloadResponse ProtocolIE-ID ::= 101 -id-cdma2000OneXSRVCCInfo ProtocolIE-ID ::= 102 -id-E-RABFailedToBeReleasedList ProtocolIE-ID ::= 103 -id-Source-ToTarget-TransparentContainer ProtocolIE-ID ::= 104 -id-ServedGUMMEIs ProtocolIE-ID ::= 105 -id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 106 -id-UESecurityCapabilities ProtocolIE-ID ::= 107 -id-CSFallbackIndicator ProtocolIE-ID ::= 108 -id-CNDomain ProtocolIE-ID ::= 109 -id-E-RABReleasedList ProtocolIE-ID ::= 110 -id-MessageIdentifier ProtocolIE-ID ::= 111 -id-SerialNumber ProtocolIE-ID ::= 112 -id-WarningAreaList ProtocolIE-ID ::= 113 -id-RepetitionPeriod ProtocolIE-ID ::= 114 -id-NumberofBroadcastRequest ProtocolIE-ID ::= 115 -id-WarningType ProtocolIE-ID ::= 116 -id-WarningSecurityInfo ProtocolIE-ID ::= 117 -id-DataCodingScheme ProtocolIE-ID ::= 118 -id-WarningMessageContents ProtocolIE-ID ::= 119 -id-BroadcastCompletedAreaList ProtocolIE-ID ::= 120 -id-Inter-SystemInformationTransferTypeEDT ProtocolIE-ID ::= 121 -id-Inter-SystemInformationTransferTypeMDT ProtocolIE-ID ::= 122 -id-Target-ToSource-TransparentContainer ProtocolIE-ID ::= 123 -id-SRVCCOperationPossible ProtocolIE-ID ::= 124 -id-SRVCCHOIndication ProtocolIE-ID ::= 125 -id-NAS-DownlinkCount ProtocolIE-ID ::= 126 -id-CSG-Id ProtocolIE-ID ::= 127 -id-CSG-IdList ProtocolIE-ID ::= 128 -id-SONConfigurationTransferECT ProtocolIE-ID ::= 129 -id-SONConfigurationTransferMCT ProtocolIE-ID ::= 130 -id-TraceCollectionEntityIPAddress ProtocolIE-ID ::= 131 -id-MSClassmark2 ProtocolIE-ID ::= 132 -id-MSClassmark3 ProtocolIE-ID ::= 133 -id-RRC-Establishment-Cause ProtocolIE-ID ::= 134 -id-NASSecurityParametersfromE-UTRAN ProtocolIE-ID ::= 135 -id-NASSecurityParameterstoE-UTRAN ProtocolIE-ID ::= 136 -id-DefaultPagingDRX ProtocolIE-ID ::= 137 -id-Source-ToTarget-TransparentContainer-Secondary ProtocolIE-ID ::= 138 -id-Target-ToSource-TransparentContainer-Secondary ProtocolIE-ID ::= 139 -END diff --git a/openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-IEs.asn b/openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-IEs.asn deleted file mode 100644 index 6f76164b08..0000000000 --- a/openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-IEs.asn +++ /dev/null @@ -1,1401 +0,0 @@ --- ************************************************************** --- --- Information Element Definitions --- --- ************************************************************** - -S1AP-IEs { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-IEs (2) } - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - -IMPORTS - id-E-RABInformationListItem, - id-E-RABItem, - id-Bearers-SubjectToStatusTransfer-Item, - maxNrOfCSGs, - maxNrOfE-RABs, - maxNrOfErrors, - maxnoofBPLMNs, - maxnoofPLMNsPerMME, - maxnoofTACs, - maxnoofEPLMNs, - maxnoofEPLMNsPlusOne, - maxnoofForbLACs, - maxnoofForbTACs, - maxnoofCells, - maxnoofCellID, - maxnoofEmergencyAreaID, - maxnoofTAIforWarning, - maxnoofCellinTAI, - maxnoofCellinEAI, - maxnoofeNBX2TLAs, - maxnoofRATs, - maxnoofGroupIDs, - maxnoofMMECs, - maxProtocolExtensions, - maxNrOfIndividualS1ConnectionsToReset, - maxnoofTAIs, - maxProtocolIEs -FROM S1AP-Constants - - IE -FROM S1AP-PDU - - Criticality, - ProcedureCode, - ProtocolIE-ID, - ProtocolExtensionID, - TriggeringMessage -FROM S1AP-CommonDataTypes; - -IE-Extensions ::= SEQUENCE (SIZE (1..maxProtocolExtensions)) OF IE --- A - - -AllocationAndRetentionPriority ::= SEQUENCE { - priorityLevel PriorityLevel, - pre-emptionCapability Pre-emptionCapability, - pre-emptionVulnerability Pre-emptionVulnerability, --- iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -AllocationAndRetentionPriority-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - - --- B - -Bearers-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF IE - -Bearers-SubjectToStatusTransfer-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - uL-COUNTvalue COUNTvalue, - dL-COUNTvalue COUNTvalue, - receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -Bearers-SubjectToStatusTransfer-ItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - -BitRate ::= INTEGER (0..10000000000) - -BPLMNs ::= SEQUENCE (SIZE(1.. maxnoofBPLMNs)) OF PLMNidentity - -BroadcastCompletedAreaList ::= CHOICE { - cellID-Broadcast CellID-Broadcast, - tAI-Broadcast TAI-Broadcast, - emergencyAreaID-Broadcast EmergencyAreaID-Broadcast, - ... -} - - --- C - -Cause ::= CHOICE { - radioNetwork CauseRadioNetwork, - transport CauseTransport, - nas CauseNas, - protocol CauseProtocol, - misc CauseMisc, - ... -} - -CauseMisc ::= ENUMERATED { - control-processing-overload, - not-enough-user-plane-processing-resources, - hardware-failure, - om-intervention, - unspecified, - unknown-PLMN, -... -} - -CauseProtocol ::= ENUMERATED { - transfer-syntax-error, - abstract-syntax-error-reject, - abstract-syntax-error-ignore-and-notify, - message-not-compatible-with-receiver-state, - semantic-error, - abstract-syntax-error-falsely-constructed-message, - unspecified, - ... -} - -CauseRadioNetwork ::= ENUMERATED { - unspecified, - tx2relocoverall-expiry, - successful-handover, - release-due-to-eutran-generated-reason, - handover-cancelled, - partial-handover, - ho-failure-in-target-EPC-eNB-or-target-system, - ho-target-not-allowed, - tS1relocoverall-expiry, - tS1relocprep-expiry, - cell-not-available, - unknown-targetID, - no-radio-resources-available-in-target-cell, - unknown-mme-ue-s1ap-id, - unknown-enb-ue-s1ap-id, - unknown-pair-ue-s1ap-id, - handover-desirable-for-radio-reason, - time-critical-handover, - resource-optimisation-handover, - reduce-load-in-serving-cell, - user-inactivity, - radio-connection-with-ue-lost, - load-balancing-tau-required, - cs-fallback-triggered, - ue-not-available-for-ps-service, - radio-resources-not-available, - failure-in-radio-interface-procedure, - invalid-qos-combination, - interrat-redirection, - interaction-with-other-procedure, - unknown-E-RAB-ID, - multiple-E-RAB-ID-instances, - encryption-and-or-integrity-protection-algorithms-not-supported, - s1-intra-system-handover-triggered, - s1-inter-system-handover-triggered, - x2-handover-triggered, - ..., - redirection-towards-1xRTT, - not-supported-QCI-value - -} - -CauseTransport ::= ENUMERATED { - transport-resource-unavailable, - unspecified, - ... -} - -CauseNas ::= ENUMERATED { - normal-release, - authentication-failure, - detach, - unspecified, - ... -} - -CellIdentity ::= BIT STRING (SIZE (28)) - -CellID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Broadcast-Item - -CellID-Broadcast-Item ::= SEQUENCE { - eCGI EUTRAN-CGI, --- iE-Extensions ProtocolExtensionContainer { {CellID-Broadcast-Item-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -CellID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - - -Cdma2000PDU ::= OCTET STRING - -Cdma2000RATType ::= ENUMERATED { - hRPD, - onexRTT, - ... -} - -Cdma2000SectorID ::= OCTET STRING - -Cdma2000HOStatus ::= ENUMERATED { - hOSuccess, - hOFailure, - ... -} - -Cdma2000HORequiredIndication ::= ENUMERATED { - true, - ... -} - -Cdma2000OneXSRVCCInfo ::= SEQUENCE { - cdma2000OneXMEID Cdma2000OneXMEID, - cdma2000OneXMSI Cdma2000OneXMSI, - cdma2000OneXPilot Cdma2000OneXPilot, --- iE-Extensions ProtocolExtensionContainer { {Cdma2000OneXSRVCCInfo-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -Cdma2000OneXSRVCCInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - -Cdma2000OneXMEID ::= OCTET STRING - -Cdma2000OneXMSI ::= OCTET STRING - -Cdma2000OneXPilot ::= OCTET STRING - -Cdma2000OneXRAND ::= OCTET STRING - - -Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ...} - -CellType ::= SEQUENCE { - cell-Size Cell-Size, --- iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -CellType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - -CGI ::= SEQUENCE { - pLMNidentity PLMNidentity, - lAC LAC, - cI CI, - rAC RAC OPTIONAL, --- iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - -CI ::= OCTET STRING (SIZE (2)) - -CNDomain ::= ENUMERATED { - ps, - cs -} - -CSFallbackIndicator ::= ENUMERATED { - cs-fallback-required, - ..., - cs-fallback-high-priority -} - -CSG-Id ::= BIT STRING (SIZE (27)) - - -CSG-IdList ::= SEQUENCE (SIZE (1..maxNrOfCSGs)) OF CSG-IdList-Item - -CSG-IdList-Item ::= SEQUENCE { - cSG-Id CSG-Id, --- iE-Extensions ProtocolExtensionContainer { {CSG-IdList-Item-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -CSG-IdList-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - -COUNTvalue ::= SEQUENCE { - pDCP-SN PDCP-SN, - hFN HFN, --- iE-Extensions ProtocolExtensionContainer { {COUNTvalue-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -COUNTvalue-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - -CriticalityDiagnostics ::= SEQUENCE { - procedureCode ProcedureCode OPTIONAL, - triggeringMessage TriggeringMessage OPTIONAL, - procedureCriticality Criticality OPTIONAL, - iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, --- iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-ExtIEs}} OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - ---CriticalityDiagnostics-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { --- ... ---} - -CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF CriticalityDiagnostics-IE-Item - -CriticalityDiagnostics-IE-Item ::= SEQUENCE { - iECriticality Criticality, - iE-ID ProtocolIE-ID, - typeOfError TypeOfError, --- iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-IE-Item-ExtIEs}} OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - ---CriticalityDiagnostics-IE-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { --- ... ---} - - --- D - -DataCodingScheme ::= BIT STRING (SIZE (8)) - -DL-Forwarding ::= ENUMERATED { - dL-Forwarding-proposed, - ... -} - -Direct-Forwarding-Path-Availability ::= ENUMERATED { - directPathAvailable, - ... -} - --- E - -E-RABToBeModifiedListBearerModReq ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF IE - -E-RABToBeModifiedItemBearerModReq ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RABLevelQoSParameters E-RABLevelQoSParameters, - nAS-PDU NAS-PDU, --- iE-Extensions ProtocolExtensionContainer { {E-RABToBeModifyItemBearerModReqExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABReleaseListBearerRelComp ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF IE - -E-RABReleaseItemBearerRelComp ::= SEQUENCE { - e-RAB-ID E-RAB-ID, --- iE-Extensions ProtocolExtensionContainer { {E-RABReleaseItemBearerRelCompExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABDataForwardingList ::= SEQUENCE (SIZE (0..maxNrOfE-RABs)) OF IE - -E-RABDataForwardingItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - dL-transportLayerAddress TransportLayerAddress OPTIONAL, - dL-gTP-TEID GTP-TEID OPTIONAL, - uL-TransportLayerAddress TransportLayerAddress OPTIONAL, - uL-GTP-TEID GTP-TEID OPTIONAL, --- iE-Extensions ProtocolExtensionContainer { { E-RABDataForwardingItem-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABToBeSetupListCtxtSUReq ::= SEQUENCE (SIZE(1..maxNrOfE-RABs)) OF IE - -E-RABToBeSetupItemCtxtSUReq ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RABlevelQoSParameters E-RABLevelQoSParameters, - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEID, - nAS-PDU NAS-PDU OPTIONAL, --- iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemCtxtSUReqExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABSetupListBearerSURes ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF IE - -E-RABSetupItemBearerSURes ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEID, --- iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemBearerSUResExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABFailedtoSetupListHOReqAck ::= SEQUENCE (SIZE (0..maxNrOfE-RABs)) OF IE - -E-RABFailedToSetupItemHOReqAck ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - cause Cause, --- iE-Extensions ProtocolExtensionContainer { { E-RABFailedToSetupItemHOReqAckExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABToBeSetupListBearerSUReq ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF IE - -E-RABToBeSetupItemBearerSUReq ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RABlevelQoSParameters E-RABLevelQoSParameters, - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEID, - nAS-PDU NAS-PDU, --- iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemBearerSUReqExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABAdmittedList ::= SEQUENCE (SIZE (0..maxNrOfE-RABs)) OF IE - -E-RABAdmittedItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEID, - dL-transportLayerAddress TransportLayerAddress OPTIONAL, - dL-gTP-TEID GTP-TEID OPTIONAL, - uL-TransportLayerAddress TransportLayerAddress OPTIONAL, - uL-GTP-TEID GTP-TEID OPTIONAL, --- iE-Extensions ProtocolExtensionContainer { {E-RABAdmittedItem-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABToBeSwitchedDLList ::= SEQUENCE (SIZE (0..maxNrOfE-RABs)) OF IE - -E-RABToBeSwitchedDLItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEID, --- iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedDLItem-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABToBeSwitchedULList ::= SEQUENCE (SIZE (0..maxNrOfE-RABs)) OF IE - -E-RABToBeSwitchedULItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEID, --- iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedULItem-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABModifyListBearerModRes ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF IE - -E-RABModifyItemBearerModRes ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABSetupListCtxtSURes ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF IE - -E-RABSetupItemCtxtSURes ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEID, --- iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemCtxtSUResExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABToBeSetupListHOReq ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF IE - -E-RABToBeSetupItemHOReq ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEID, - e-RABlevelQosParameters E-RABLevelQoSParameters, --- iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemHOReq-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -ECGIList ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF EUTRAN-CGI - -EmergencyAreaIDList ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID - -EmergencyAreaID ::= OCTET STRING (SIZE (3)) - -EmergencyAreaID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Broadcast-Item - -EmergencyAreaID-Broadcast-Item ::= SEQUENCE { - emergencyAreaID EmergencyAreaID, - completedCellinEAI CompletedCellinEAI, --- iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Broadcast-Item-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - ---EmergencyAreaID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { --- ... ---} - - -CompletedCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CompletedCellinEAI-Item - -CompletedCellinEAI-Item ::= SEQUENCE { - eCGI EUTRAN-CGI, --- iE-Extensions ProtocolExtensionContainer { {CompletedCellinEAI-Item-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -/* -CompletedCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - -ENB-ID ::= CHOICE { - macroENB-ID BIT STRING (SIZE(20)), - homeENB-ID BIT STRING (SIZE(28)), - ... -} - -GERAN-Cell-ID ::= SEQUENCE { - lAI LAI, - rAC RAC, - cI CI, --- iE-Extensions ProtocolExtensionContainer { { GERAN-Cell-ID-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - ---GERAN-Cell-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { --- ... ---} - -Global-ENB-ID ::= SEQUENCE { - pLMNidentity PLMNidentity, - eNB-ID ENB-ID, - --iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - ---GlobalENB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { --- ... ---} - - -ENB-StatusTransfer-TransparentContainer ::= SEQUENCE { - bearers-SubjectToStatusTransfer-List Bearers-SubjectToStatusTransfer-List, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -ENB-UE-S1AP-ID ::= INTEGER (0..16777215) - -ENBname ::= PrintableString (SIZE (1..150,...)) - -ENBX2TLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2TLAs)) OF TransportLayerAddress - -EncryptionAlgorithms ::= BIT STRING (SIZE (16,...)) - -EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMNidentity -EventType ::= ENUMERATED { - direct, - change-of-serve-cell, - stop-change-of-serve-cell, - ... -} - -E-RAB-ID ::= INTEGER (0..15, ...) - ---E-RABInformationList ::= SEQUENCE (SIZE (1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { { E-RABInformationListIEs } } -E-RABInformationList ::= SEQUENCE (SIZE (1.. maxNrOfE-RABs)) OF IE - ---E-RABInformationListIEs S1AP-PROTOCOL-IES ::= { --- { ID id-E-RABInformationListItem CRITICALITY ignore TYPE E-RABInformationListItem PRESENCE mandatory }, --- ... ---} - -E-RABInformationListItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - dL-Forwarding DL-Forwarding OPTIONAL, --- iE-Extensions ProtocolExtensionContainer { {E-RABInformationListItem-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -E-RABInformationListItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - ---E-RABList ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABItemIEs} } -E-RABList ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ANY - ---E-RABItemIEs S1AP-PROTOCOL-IES ::= { --- { ID id-E-RABItem CRITICALITY ignore TYPE E-RABItem PRESENCE mandatory }, --- ... ---} - -E-RABItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - cause Cause, --- iE-Extensions ProtocolExtensionContainer { {E-RABItem-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -E-RABItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - - - - -E-RABLevelQoSParameters ::= SEQUENCE { - qCI QCI, - allocationRetentionPriority AllocationAndRetentionPriority, - gbrQosInformation GBR-QosInformation OPTIONAL, --- iE-Extensions ProtocolExtensionContainer { {E-RABQoSParameters-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -E-RABQoSParameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - - -EUTRAN-CGI ::= SEQUENCE { - pLMNidentity PLMNidentity, - cell-ID CellIdentity, --- iE-Extensions ProtocolExtensionContainer { {EUTRAN-CGI-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -EUTRAN-CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - -ExtendedRNC-ID ::= INTEGER (4096..65535) - --- F - -ForbiddenInterRATs ::= ENUMERATED { - all, - geran, - utran, - cdma2000, - ... -} - -ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item - -ForbiddenTAs-Item ::= SEQUENCE { - pLMN-Identity PLMNidentity, - forbiddenTACs ForbiddenTACs, --- iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -ForbiddenTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - -ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC - -ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item - -ForbiddenLAs-Item ::= SEQUENCE { - pLMN-Identity PLMNidentity, - forbiddenLACs ForbiddenLACs, --- iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -ForbiddenLAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - -ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC - --- G - -GBR-QosInformation ::= SEQUENCE { - e-RAB-MaximumBitrateDL BitRate, - e-RAB-MaximumBitrateUL BitRate, - e-RAB-GuaranteedBitrateDL BitRate, - e-RAB-GuaranteedBitrateUL BitRate, --- iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -GBR-QosInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - - -GTP-TEID ::= OCTET STRING (SIZE (4)) - -GUMMEI ::= SEQUENCE { - pLMN-Identity PLMNidentity, - mME-Group-ID MME-Group-ID, - mME-Code MME-Code, --- iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -GUMMEI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - --- H - -HandoverRestrictionList ::= SEQUENCE { - servingPLMN PLMNidentity, - equivalentPLMNs EPLMNs OPTIONAL, - forbiddenTAs ForbiddenTAs OPTIONAL, - forbiddenLAs ForbiddenLAs OPTIONAL, - forbiddenInterRATs ForbiddenInterRATs OPTIONAL, --- iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -HandoverRestrictionList-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - -HandoverType ::= ENUMERATED { - intralte, - ltetoutran, - ltetogeran, - utrantolte, - gerantolte, - ... -} - -HFN ::= INTEGER (0..1048575) - --- I - -Inter-SystemInformationTransferType ::= CHOICE { - rIMTransfer RIMTransfer, - ... -} - -IMSI ::= OCTET STRING (SIZE (3..8)) - -IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...)) - -InterfacesToTrace ::= BIT STRING (SIZE (8)) - - - --- J --- K --- L - - -LAC ::= OCTET STRING (SIZE (2)) - -LAI ::= SEQUENCE { - pLMNidentity PLMNidentity, - lAC LAC, --- iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -LAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - -LastVisitedCell-Item ::= CHOICE { - e-UTRAN-Cell LastVisitedEUTRANCellInformation, - uTRAN-Cell LastVisitedUTRANCellInformation, - gERAN-Cell LastVisitedGERANCellInformation, - ... -} -LastVisitedEUTRANCellInformation ::= SEQUENCE { - global-Cell-ID EUTRAN-CGI, - cellType CellType, - time-UE-StayedInCell Time-UE-StayedInCell, --- iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -LastVisitedEUTRANCellInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ -LastVisitedUTRANCellInformation ::= OCTET STRING - -LastVisitedGERANCellInformation ::= CHOICE { - undefined NULL, - ... -} - -L3-Information ::= OCTET STRING - - --- M - -MessageIdentifier ::= BIT STRING (SIZE (16)) - -MMEname ::= PrintableString (SIZE (1..150,...)) - -MME-Group-ID ::= OCTET STRING (SIZE (2)) - -MME-Code ::= OCTET STRING (SIZE (1)) - -MME-UE-S1AP-ID ::= INTEGER (0..4294967295) -M-TMSI ::= OCTET STRING (SIZE (4)) - -MSClassmark2 ::= OCTET STRING -MSClassmark3 ::= OCTET STRING - --- N - -NAS-PDU ::= OCTET STRING - -NASSecurityParametersfromE-UTRAN ::= OCTET STRING - -NASSecurityParameterstoE-UTRAN ::= OCTET STRING - -NumberofBroadcastRequest ::= INTEGER (0..65535) - -NumberOfBroadcasts ::= INTEGER (0..65535) - --- O -OldBSS-ToNewBSS-Information ::= OCTET STRING - -OverloadAction ::= ENUMERATED { - reject-non-emergency-mo-dt, - reject-all-rrc-cr-signalling, - permit-emergency-sessions-only, - ... -} - -OverloadResponse ::= CHOICE { - overloadAction OverloadAction, - ... -} - - --- P - -PagingDRX ::= ENUMERATED { - v32, - v64, - v128, - v256, - ... - } - -PDCP-SN ::= INTEGER (0..4095) - -PLMNidentity ::= TBCD-STRING ---PLMNidentity ::= OCTET STRING (SIZE (3)) - -Pre-emptionCapability ::= ENUMERATED { - shall-not-trigger-pre-emption, - may-trigger-pre-emption -} - -Pre-emptionVulnerability ::= ENUMERATED { - not-pre-emptable, - pre-emptable -} - -PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) - - --- Q - -QCI ::= INTEGER (0..255) - --- R - -ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) - -RelativeMMECapacity ::= INTEGER (0..255) - -RAC ::= OCTET STRING (SIZE (1)) - - -RequestType ::= SEQUENCE { - eventType EventType, - reportArea ReportArea, --- iE-Extensions ProtocolExtensionContainer { { RequestType-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -/* -RequestType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - -ResetType ::= CHOICE { - s1-Interface ResetAll, - partOfS1-Interface UE-associatedLogicalS1-ConnectionListRes, - ... -} - -ResetAll ::= ENUMERATED { - reset-all, - ... -} - -RIMTransfer ::= SEQUENCE { - rIMInformation RIMInformation, - rIMRoutingAddress RIMRoutingAddress OPTIONAL, --- iE-Extensions ProtocolExtensionContainer { { RIMTransfer-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, -... -} -/* -RIMTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - -RIMInformation ::= OCTET STRING - -RIMRoutingAddress ::= CHOICE { - gERAN-Cell-ID GERAN-Cell-ID, - ... -} - -ReportArea ::= ENUMERATED { - ecgi, - ... -} - -RepetitionPeriod ::= INTEGER (0..4095) - - -RNC-ID ::= INTEGER (0..4095) - -RRC-Container ::= OCTET STRING - -RRC-Establishment-Cause ::= ENUMERATED { - emergency, - highPriorityAccess, - mt-Access, - mo-Signalling, - mo-Data, - ... -} - --- S - - -SecurityKey ::= BIT STRING (SIZE(256)) - - - -SecurityContext ::= SEQUENCE { - nextHopChainingCount INTEGER (0..7), - nextHopParameter SecurityKey, --- iE-Extensions ProtocolExtensionContainer { { SecurityContext-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -/* -SecurityContext-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - -SerialNumber ::= BIT STRING (SIZE (16)) - -SONInformation ::= CHOICE{ - sONInformationRequest SONInformationRequest, - sONInformationReply SONInformationReply, - ... -} - -SONInformationRequest ::= ENUMERATED { - x2TNL-Configuration-Info, - ... -} - -SONInformationReply ::= SEQUENCE { - x2TNLConfigurationInfo X2TNLConfigurationInfo OPTIONAL, --- iE-Extensions ProtocolExtensionContainer {{SONInformationReply-ExtIEs}} OPTIONAL, - iE-Extensions-Container IE-Extensions OPTIONAL, - ... -} -/* -SONInformationReply-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - - -SONConfigurationTransfer ::= SEQUENCE { - targeteNB-ID TargeteNB-ID, - sourceeNB-ID SourceeNB-ID, - sONInformation SONInformation, --- iE-Extensions ProtocolExtensionContainer { { SONConfigurationTransfer-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, -... -} -/* -SONConfigurationTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - - - -Source-ToTarget-TransparentContainer ::= OCTET STRING - -SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING -SourceeNB-ID ::= SEQUENCE { - global-ENB-ID Global-ENB-ID, - selected-TAI TAI, --- iE-Extensions ProtocolExtensionContainer { {SourceeNB-ID-ExtIEs} } OPTIONAL - iE-Extensions IE-Extensions OPTIONAL -} -/* -SourceeNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - -SRVCCOperationPossible ::= ENUMERATED { - possible, - ... -} - -SRVCCHOIndication ::= ENUMERATED { - pSandCS, - cSonly, - ... -} - -SourceeNB-ToTargeteNB-TransparentContainer ::= SEQUENCE { - rRC-Container RRC-Container, - e-RABInformationList E-RABInformationList OPTIONAL, - targetCell-ID EUTRAN-CGI, - subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, - uE-HistoryInformation UE-HistoryInformation, --- iE-Extensions ProtocolExtensionContainer { {SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - - -SourceRNC-ToTargetRNC-TransparentContainer ::= OCTET STRING - - -ServedGUMMEIs ::= SEQUENCE (SIZE (1.. maxnoofRATs)) OF ServedGUMMEIsItem - -ServedGUMMEIsItem ::= SEQUENCE { - servedPLMNs ServedPLMNs, - servedGroupIDs ServedGroupIDs, - servedMMECs ServedMMECs, --- iE-Extensions ProtocolExtensionContainer { {ServedGUMMEIsItem-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -ServedGUMMEIsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - -ServedGroupIDs ::= SEQUENCE (SIZE(1.. maxnoofGroupIDs)) OF MME-Group-ID -ServedMMECs ::= SEQUENCE (SIZE(1.. maxnoofMMECs)) OF MME-Code - -ServedPLMNs ::= SEQUENCE (SIZE(1.. maxnoofPLMNsPerMME)) OF PLMNidentity - -SubscriberProfileIDforRFP ::= INTEGER (1..256) - -SupportedTAs ::= SEQUENCE (SIZE(1.. maxnoofTACs)) OF SupportedTAs-Item - -SupportedTAs-Item ::= SEQUENCE { - tAC TAC, - broadcastPLMNs BPLMNs, --- iE-Extensions ProtocolExtensionContainer { {SupportedTAs-Item-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -SupportedTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - -S-TMSI ::= SEQUENCE { - mMEC MME-Code, - m-TMSI M-TMSI, --- iE-Extensions ProtocolExtensionContainer { {S-TMSI-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -S-TMSI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - --- T - -TAC ::= OCTET STRING (SIZE (2)) - -TAIListforWarning ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI - -TAIList ::= SEQUENCE (SIZE(1..maxnoofTAIs)) OF IE - -TAIItem ::= SEQUENCE { - tAI TAI, --- iE-Extensions ProtocolExtensionContainer { {TAIItemExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -TAI ::= SEQUENCE { - pLMNidentity PLMNidentity, - tAC TAC, --- iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -TAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - -TAI-Broadcast ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Broadcast-Item - -TAI-Broadcast-Item ::= SEQUENCE { - tAI TAI, - completedCellinTAI CompletedCellinTAI, --- iE-Extensions ProtocolExtensionContainer { {TAI-Broadcast-Item-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -TAI-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - -CompletedCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CompletedCellinTAI-Item - -CompletedCellinTAI-Item ::= SEQUENCE{ - eCGI EUTRAN-CGI, --- iE-Extensions ProtocolExtensionContainer { {CompletedCellinTAI-Item-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -CompletedCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - -TBCD-STRING ::= OCTET STRING (SIZE (3)) - -TargetID ::= CHOICE { - targeteNB-ID TargeteNB-ID, - targetRNC-ID TargetRNC-ID, - cGI CGI, - ... -} - -TargeteNB-ID ::= SEQUENCE { - global-ENB-ID Global-ENB-ID, - selected-TAI TAI, --- iE-Extensions ProtocolExtensionContainer { {TargeteNB-ID-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -TargeteNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - -TargetRNC-ID ::= SEQUENCE { - lAI LAI, - rAC RAC OPTIONAL, - rNC-ID RNC-ID, - extendedRNC-ID ExtendedRNC-ID OPTIONAL, --- iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -/* -TargetRNC-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - - -TargeteNB-ToSourceeNB-TransparentContainer ::= SEQUENCE { - rRC-Container RRC-Container, --- iE-Extensions ProtocolExtensionContainer { {TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - -Target-ToSource-TransparentContainer ::= OCTET STRING -TargetRNC-ToSourceRNC-TransparentContainer ::= OCTET STRING -TargetBSS-ToSourceBSS-TransparentContainer ::= OCTET STRING - -TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...} - -Time-UE-StayedInCell ::= INTEGER (0..4095) - -TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) - -TraceActivation ::= SEQUENCE { - e-UTRAN-Trace-ID E-UTRAN-Trace-ID, - interfacesToTrace InterfacesToTrace, -traceDepth TraceDepth, -traceCollectionEntityIPAddress TransportLayerAddress, --- iE-Extensions ProtocolExtensionContainer { { TraceActivation-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -TraceActivation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - -TraceDepth ::= ENUMERATED { - minimum, - medium, - maximum, - minimumWithoutVendorSpecificExtension, - mediumWithoutVendorSpecificExtension, - maximumWithoutVendorSpecificExtension, - ... -} - -E-UTRAN-Trace-ID ::= OCTET STRING (SIZE (8)) - -TypeOfError ::= ENUMERATED { - not-understood, - missing, - ... -} - --- U - -UEAggregateMaximumBitrate ::= SEQUENCE { - uEaggregateMaximumBitRateDL BitRate, - uEaggregateMaximumBitRateUL BitRate, --- iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrates-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -UEAggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - - - -UE-S1AP-IDs ::= CHOICE{ - uE-S1AP-ID-pair UE-S1AP-ID-pair, - mME-UE-S1AP-ID MME-UE-S1AP-ID, - ... -} - -UE-S1AP-ID-pair ::= SEQUENCE{ - mME-UE-S1AP-ID MME-UE-S1AP-ID, - eNB-UE-S1AP-ID ENB-UE-S1AP-ID, --- iE-Extensions ProtocolExtensionContainer { {UE-S1AP-ID-pair-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -UE-S1AP-ID-pair-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - - ---WARNING: not the right IE definition... -UE-associatedLogicalS1-ConnectionListRes ::= SEQUENCE (SIZE(1.. maxNrOfIndividualS1ConnectionsToReset)) OF IE - -UE-associatedLogicalS1-ConnectionListResAck ::= SEQUENCE (SIZE(1.. maxNrOfIndividualS1ConnectionsToReset)) OF IE - -UE-associatedLogicalS1-ConnectionItemRes ::= SET { - ue-associatedLogicalS1-ConnectionItemRes-ies UE-associatedLogicalS1-ConnectionItem, - ... -} - -UE-associatedLogicalS1-ConnectionItem ::= SEQUENCE { - mME-UE-S1AP-ID MME-UE-S1AP-ID OPTIONAL, - eNB-UE-S1AP-ID ENB-UE-S1AP-ID OPTIONAL, --- iE-Extensions ProtocolExtensionContainer { { UE-associatedLogicalS1-ConnectionItemExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -/* -UE-associatedLogicalS1-ConnectionItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - -UEIdentityIndexValue ::= BIT STRING (SIZE (10)) - -UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item - -UEPagingID ::= CHOICE { - s-TMSI S-TMSI, - iMSI IMSI, - ... - } - -UERadioCapability ::= OCTET STRING - -UESecurityCapabilities ::= SEQUENCE { - encryptionAlgorithms EncryptionAlgorithms, - integrityProtectionAlgorithms IntegrityProtectionAlgorithms, --- iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, -... -} -/* -UESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - --- V --- W - -WarningAreaList ::= CHOICE { - cellIDList ECGIList, - trackingAreaListforWarning TAIListforWarning, - emergencyAreaIDList EmergencyAreaIDList, - ... -} - - -WarningType ::= OCTET STRING (SIZE (2)) - -WarningSecurityInfo ::= OCTET STRING (SIZE (50)) - - -WarningMessageContents ::= OCTET STRING (SIZE(1..9600)) - - --- X - - -X2TNLConfigurationInfo ::= SEQUENCE { - eNBX2TransportLayerAddresses ENBX2TLAs, --- iE-Extensions ProtocolExtensionContainer { { X2TNLConfigurationInfo-ExtIEs} } OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} -/* -X2TNLConfigurationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -}*/ - --- Y --- Z - -END diff --git a/openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-PDU.asn b/openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-PDU.asn deleted file mode 100644 index d2c50b417c..0000000000 --- a/openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-PDU.asn +++ /dev/null @@ -1,663 +0,0 @@ -S1AP-PDU { - itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) - eps-Access (21) modules (3) s1ap (1) version1 (1) -} - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - -IMPORTS - - UEAggregateMaximumBitrate, - Cause, - Cdma2000HORequiredIndication, - Cdma2000HOStatus, - Cdma2000OneXSRVCCInfo, - Cdma2000OneXRAND, - Cdma2000PDU, - Cdma2000RATType, - Cdma2000SectorID, - CNDomain, - CriticalityDiagnostics, - CSFallbackIndicator, - CSG-Id, - CSG-IdList, - Direct-Forwarding-Path-Availability, - Global-ENB-ID, - EUTRAN-CGI, - ENBname, - ENB-StatusTransfer-TransparentContainer, - ENB-UE-S1AP-ID, - GTP-TEID, - GUMMEI, - HandoverRestrictionList, - HandoverType, - MMEname, - MME-UE-S1AP-ID, - MSClassmark2, - MSClassmark3, - NAS-PDU, - NASSecurityParametersfromE-UTRAN, - NASSecurityParameterstoE-UTRAN, - OverloadResponse, - PagingDRX, - PLMNidentity, - RIMTransfer, - RelativeMMECapacity, - RequestType, - E-RAB-ID, - E-RABLevelQoSParameters, - E-RABList, - SecurityKey, - SecurityContext, - ServedGUMMEIs, - SONConfigurationTransfer, - Source-ToTarget-TransparentContainer, - SourceBSS-ToTargetBSS-TransparentContainer, - SourceeNB-ToTargeteNB-TransparentContainer, - SourceRNC-ToTargetRNC-TransparentContainer, - SubscriberProfileIDforRFP, - SRVCCOperationPossible, - SRVCCHOIndication, - SupportedTAs, - TAI, - Target-ToSource-TransparentContainer, - TargetBSS-ToSourceBSS-TransparentContainer, - TargeteNB-ToSourceeNB-TransparentContainer, - TargetID, - TargetRNC-ToSourceRNC-TransparentContainer, - TimeToWait, - TraceActivation, - E-UTRAN-Trace-ID, - TransportLayerAddress, - UEIdentityIndexValue, - UEPagingID, - UERadioCapability, - UE-S1AP-IDs, - UE-associatedLogicalS1-ConnectionItem, - UESecurityCapabilities, - S-TMSI, - MessageIdentifier, - SerialNumber, - WarningAreaList, - RepetitionPeriod, - NumberofBroadcastRequest, - WarningType, - WarningSecurityInfo, - DataCodingScheme, - WarningMessageContents, - BroadcastCompletedAreaList, - RRC-Establishment-Cause - -FROM S1AP-IEs - - ProcedureCode, - Criticality, - ProtocolIE-ID - -FROM S1AP-CommonDataTypes - - - id-uEaggregateMaximumBitrate, - id-Cause, - id-cdma2000HORequiredIndication, - id-cdma2000HOStatus, - id-cdma2000OneXSRVCCInfo, - id-cdma2000OneXRAND, - id-cdma2000PDU, - id-cdma2000RATType, - id-cdma2000SectorID, - id-CNDomain, - id-CriticalityDiagnostics, - id-CSFallbackIndicator, - id-CSG-Id, - id-CSG-IdList, - id-DefaultPagingDRX, - id-Direct-Forwarding-Path-Availability, - id-Global-ENB-ID, - id-EUTRAN-CGI, - id-eNBname, - id-eNB-StatusTransfer-TransparentContainer, - id-eNB-UE-S1AP-ID, - id-GERANtoLTEHOInformationRes, - id-GUMMEI-ID, - id-HandoverRestrictionList, - id-HandoverType, - id-InitialContextSetup, - id-Inter-SystemInformationTransferTypeEDT, - id-Inter-SystemInformationTransferTypeMDT, - id-NAS-DownlinkCount, - id-MMEname, - id-MME-UE-S1AP-ID, - id-MSClassmark2, - id-MSClassmark3, - id-NAS-PDU, - id-NASSecurityParametersfromE-UTRAN, - id-NASSecurityParameterstoE-UTRAN, - id-OverloadResponse, - id-pagingDRX, - id-RelativeMMECapacity, - id-RequestType, - id-E-RABAdmittedItem, - id-E-RABAdmittedList, - id-E-RABDataForwardingItem, - id-E-RABFailedToModifyList, - id-E-RABFailedToReleaseList, - id-E-RABFailedtoSetupItemHOReqAck, - id-E-RABFailedToSetupListBearerSURes, - id-E-RABFailedToSetupListCtxtSURes, - id-E-RABFailedToSetupListHOReqAck, - id-E-RABFailedToBeReleasedList, - id-E-RABModify, - id-E-RABModifyItemBearerModRes, - id-E-RABModifyListBearerModRes, - id-E-RABRelease, - id-E-RABReleaseItemBearerRelComp, - id-E-RABReleaseItemHOCmd, - id-E-RABReleaseListBearerRelComp, - id-E-RABReleaseIndication, - id-E-RABSetup, - id-E-RABSetupItemBearerSURes, - id-E-RABSetupItemCtxtSURes, - id-E-RABSetupListBearerSURes, - id-E-RABSetupListCtxtSURes, - id-E-RABSubjecttoDataForwardingList, - id-E-RABToBeModifiedItemBearerModReq, - id-E-RABToBeModifiedListBearerModReq, - id-E-RABToBeReleasedList, - id-E-RABReleasedList, - id-E-RABToBeSetupItemBearerSUReq, - id-E-RABToBeSetupItemCtxtSUReq, - id-E-RABToBeSetupItemHOReq, - id-E-RABToBeSetupListBearerSUReq, - id-E-RABToBeSetupListCtxtSUReq, - id-E-RABToBeSetupListHOReq, - id-E-RABToBeSwitchedDLItem, - id-E-RABToBeSwitchedDLList, - id-E-RABToBeSwitchedULList, - id-E-RABToBeSwitchedULItem, - id-E-RABtoReleaseListHOCmd, - id-SecurityKey, - id-SecurityContext, - id-ServedGUMMEIs, - id-SONConfigurationTransferECT, - id-SONConfigurationTransferMCT, - id-Source-ToTarget-TransparentContainer, - id-Source-ToTarget-TransparentContainer-Secondary, - id-SourceMME-UE-S1AP-ID, - id-SRVCCOperationPossible, - id-SRVCCHOIndication, - id-SubscriberProfileIDforRFP, - id-SupportedTAs, - id-S-TMSI, - id-TAI, - id-TAIItem, - id-TAIList, - id-Target-ToSource-TransparentContainer, - id-Target-ToSource-TransparentContainer-Secondary, - id-TargetID, - id-TimeToWait, - id-TraceActivation, - id-E-UTRAN-Trace-ID, - id-UEIdentityIndexValue, - id-UEPagingID, - id-UERadioCapability, - id-UTRANtoLTEHOInformationRes, - id-UE-associatedLogicalS1-ConnectionListResAck, - id-UE-associatedLogicalS1-ConnectionItem, - id-UESecurityCapabilities, - id-UE-S1AP-IDs, - id-ResetType, - id-MessageIdentifier, - id-SerialNumber, - id-WarningAreaList, - id-RepetitionPeriod, - id-NumberofBroadcastRequest, - id-WarningType, - id-WarningSecurityInfo, - id-DataCodingScheme, - id-WarningMessageContents, - id-BroadcastCompletedAreaList, - id-RRC-Establishment-Cause, - id-TraceCollectionEntityIPAddress, - maxnoofTAIs, - maxNrOfErrors, - maxNrOfE-RABs, - maxNrOfIndividualS1ConnectionsToReset, - maxnoofEmergencyAreaID, - maxnoofCellID, - maxnoofTAIforWarning, - maxnoofCellinTAI, - maxnoofCellinEAI, - - id-CellTrafficTrace, - id-DeactivateTrace, - id-downlinkNASTransport, - id-DownlinkS1cdma2000tunneling, - id-eNBStatusTransfer, - id-ErrorIndication, - id-HandoverCancel, - id-HandoverNotification, - id-HandoverPreparation, - id-HandoverResourceAllocation, - id-InitialContextSetup, - id-initialUEMessage, - id-ENBConfigurationUpdate, - id-LocationReportingControl, - id-LocationReportingFailureIndication, - id-LocationReport, - id-eNBDirectInformationTransfer, - id-MMEConfigurationUpdate, - id-MMEDirectInformationTransfer, - id-MMEStatusTransfer, - id-NASNonDeliveryIndication, - id-OverloadStart, - id-OverloadStop, - id-Paging, - id-PathSwitchRequest, - id-PrivateMessage, - id-Reset, - id-S1Setup, - id-E-RABModify, - id-E-RABRelease, - id-E-RABReleaseIndication, - id-E-RABSetup, - id-TraceFailureIndication, - id-TraceStart, - id-UECapabilityInfoIndication, - id-UEContextModification, - id-UEContextRelease, - id-UEContextReleaseRequest, - id-uplinkNASTransport, - id-UplinkS1cdma2000tunneling, - id-WriteReplaceWarning, - id-eNBConfigurationTransfer, - id-MMEConfigurationTransfer, - maxProtocolIEs -FROM S1AP-Constants; - --- ************************************************************** --- --- S1 SETUP ELEMENTARY PROCEDURE --- --- ************************************************************** - -S1AP-ELEMENTARY-PROCEDURE ::= CLASS { - &InitiatingMessage , - &SuccessfulOutcome OPTIONAL, - &UnsuccessfulOutcome OPTIONAL, - &procedureCode ProcedureCode UNIQUE, - &criticality Criticality DEFAULT ignore -} -WITH SYNTAX { - INITIATING MESSAGE &InitiatingMessage - [SUCCESSFUL OUTCOME &SuccessfulOutcome] - [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] - PROCEDURE CODE &procedureCode - [CRITICALITY &criticality] -} - -S1AP-PDU ::= CHOICE { - initiatingMessage InitiatingMessage, - successfulOutcome SuccessfulOutcome, - unsuccessfulOutcome UnsuccessfulOutcome, - ... -} - -InitiatingMessage ::= SEQUENCE { - procedureCode ProcedureCode, - criticality Criticality, - value ANY -} - -SuccessfulOutcome ::= SEQUENCE { - procedureCode ProcedureCode, - criticality Criticality, - value ANY -} - -UnsuccessfulOutcome ::= SEQUENCE { - procedureCode ProcedureCode, - criticality Criticality, - value ANY -} - -HandoverRequired ::= SEQUENCE { - handoverRequired-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -HandoverCommand ::= SEQUENCE { - handoverCommand-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -HandoverPreparationFailure ::= SEQUENCE { - handoverPreparationFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -HandoverRequest ::= SEQUENCE { - handoverRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -HandoverRequestAcknowledge ::= SEQUENCE { - handoverRequestAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -HandoverFailure ::= SEQUENCE { - handoverFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -HandoverNotify ::= SEQUENCE { - handoverNotify-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -PathSwitchRequest ::= SEQUENCE { - pathSwitchRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -PathSwitchRequestAcknowledge ::= SEQUENCE { - pathSwitchRequestAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -PathSwitchRequestFailure ::= SEQUENCE { - pathSwitchRequestFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -E-RABSetupRequest ::= SEQUENCE { - e-RABSetupRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -E-RABSetupResponse ::= SEQUENCE { - e-RABSetupResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -E-RABModifyRequest ::= SEQUENCE { - e-RABModifyRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -E-RABModifyResponse ::= SEQUENCE { - e-RABModifyResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -E-RABReleaseIndication ::= SEQUENCE { - e-RABReleaseIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -E-RABReleaseCommand ::= SEQUENCE { - e-RABReleaseCommand-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -E-RABReleaseResponse ::= SEQUENCE { - e-RABReleaseResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -InitialContextSetupRequest ::= SEQUENCE { - initialContextSetupRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -InitialContextSetupResponse ::= SEQUENCE { - initialContextSetupResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -InitialContextSetupFailure ::= SEQUENCE { - initialContextSetupFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -UEContextReleaseRequest ::= SEQUENCE { - ueContextReleaseRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -Paging ::= SEQUENCE { - paging-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -DownlinkNASTransport ::= SEQUENCE { - downlinkNASTransport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -InitialUEMessage ::= SEQUENCE { - initialUEMessage-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -UplinkNASTransport ::= SEQUENCE { - uplinkNASTransport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -NASNonDeliveryIndication ::= SEQUENCE { - nasNonDeliveryIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -HandoverCancel ::= SEQUENCE { - handoverCancel-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -HandoverCancelAcknowledge ::= SEQUENCE { - handoverCancelAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -Reset ::= SEQUENCE { - reset-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ResetAcknowledge ::= SEQUENCE { - resetAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -S1SetupResponse ::= SEQUENCE { - s1SetupResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -S1SetupRequest ::= SEQUENCE { - s1SetupRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -S1SetupFailure ::= SEQUENCE -{ - s1SetupFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ErrorIndication ::= SEQUENCE { - errorIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ENBConfigurationUpdate ::= SEQUENCE { - eNBConfigurationUpdate-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ENBConfigurationUpdateAcknowledge ::= SEQUENCE { - eNBConfigurationUpdateAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ENBConfigurationUpdateFailure ::= SEQUENCE { - eNBConfigurationUpdateFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -MMEConfigurationUpdate ::= SEQUENCE { - mmeConfigurationUpdate-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -MMEConfigurationUpdateAcknowledge ::= SEQUENCE { - mmeConfigurationUpdateAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -MMEConfigurationUpdateFailure ::= SEQUENCE { - mmeConfigurationUpdateFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -DownlinkS1cdma2000tunneling ::= SEQUENCE { - downlinkS1cdma2000tunneling-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -UplinkS1cdma2000tunneling ::= SEQUENCE { - uplinkS1cdma2000tunneling-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -UEContextModificationRequest ::= SEQUENCE { - ueContextModificationRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -UEContextModificationResponse ::= SEQUENCE { - ueContextModificationResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -UEContextModificationFailure ::= SEQUENCE { - ueContextModificationFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -UECapabilityInfoIndication ::= SEQUENCE { - ueCapabilityInfoIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -UEContextReleaseCommand ::= SEQUENCE { - ueContextReleaseCommand-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -UEContextReleaseComplete ::= SEQUENCE { - ueContextReleaseComplete-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ENBStatusTransfer ::= SEQUENCE { - eNBStatusTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -MMEStatusTransfer ::= SEQUENCE { - mmeStatusTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -DeactivateTrace ::= SEQUENCE { - deactivateTrace-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -TraceStart ::= SEQUENCE { - traceStart-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -TraceFailureIndication ::= SEQUENCE { - traceFailureIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -CellTrafficTrace ::= SEQUENCE { - cellTrafficTrace-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -LocationReportingControl ::= SEQUENCE { - locationReportingControl-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -LocationReportingFailureIndication ::= SEQUENCE { - locationReportingFailureIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -LocationReport ::= SEQUENCE { - locationReport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -OverloadStart ::= SEQUENCE { - overloadStart-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -OverloadStop ::= SEQUENCE { - overloadStop-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -WriteReplaceWarningRequest ::= SEQUENCE { - writeReplaceWarningRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -WriteReplaceWarningResponse ::= SEQUENCE { - writeReplaceWarningResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ENBDirectInformationTransfer ::= SEQUENCE { - eNBDirectInformationTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -MMEDirectInformationTransfer ::= SEQUENCE { - mmeDirectInformationTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ENBConfigurationTransfer ::= SEQUENCE { - eNBConfigurationTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -MMEConfigurationTransfer ::= SEQUENCE { - mmeConfigurationTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -PrivateMessage ::= SEQUENCE { - privateMessage-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -IE ::= SEQUENCE { - id ProtocolIE-ID, - criticality Criticality, - value ANY -} - -END diff --git a/openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-PDU-Contents.asn b/openair3/S1AP/MESSAGES/ASN1/R8/s1ap-8.10.0.asn1 old mode 100644 new mode 100755 similarity index 54% rename from openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-PDU-Contents.asn rename to openair3/S1AP/MESSAGES/ASN1/R8/s1ap-8.10.0.asn1 index 1fc0f3bc5b..c928800a6b --- a/openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-PDU-Contents.asn +++ b/openair3/S1AP/MESSAGES/ASN1/R8/s1ap-8.10.0.asn1 @@ -1,14 +1,14 @@ -- ************************************************************** -- --- PDU definitions for S1AP. +-- Elementary Procedure definitions -- -- ************************************************************** -S1AP-PDU-Contents { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Contents (1) } +S1AP-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Descriptions (0)} -DEFINITIONS AUTOMATIC TAGS ::= +DEFINITIONS AUTOMATIC TAGS ::= BEGIN @@ -19,7 +19,555 @@ BEGIN -- ************************************************************** IMPORTS - + Criticality, + ProcedureCode +FROM S1AP-CommonDataTypes + + CellTrafficTrace, + DeactivateTrace, + DownlinkNASTransport, + DownlinkS1cdma2000tunneling, + ENBDirectInformationTransfer, + ENBStatusTransfer, + ENBConfigurationUpdate, + ENBConfigurationUpdateAcknowledge, + ENBConfigurationUpdateFailure, + ErrorIndication, + HandoverCancel, + HandoverCancelAcknowledge, + HandoverCommand, + HandoverFailure, + HandoverNotify, + HandoverPreparationFailure, + HandoverRequest, + HandoverRequestAcknowledge, + HandoverRequired, + InitialContextSetupFailure, + InitialContextSetupRequest, + InitialContextSetupResponse, + InitialUEMessage, + LocationReportingControl, + LocationReportingFailureIndication, + LocationReport, + MMEConfigurationUpdate, + MMEConfigurationUpdateAcknowledge, + MMEConfigurationUpdateFailure, + MMEDirectInformationTransfer, + MMEStatusTransfer, + NASNonDeliveryIndication, + OverloadStart, + OverloadStop, + Paging, + PathSwitchRequest, + PathSwitchRequestAcknowledge, + PathSwitchRequestFailure, + PrivateMessage, + Reset, + ResetAcknowledge, + S1SetupFailure, + S1SetupRequest, + S1SetupResponse, + E-RABModifyRequest, + E-RABModifyResponse, + E-RABReleaseCommand, + E-RABReleaseResponse, + E-RABReleaseIndication, + E-RABSetupRequest, + E-RABSetupResponse, + TraceFailureIndication, + TraceStart, + UECapabilityInfoIndication, + UEContextModificationFailure, + UEContextModificationRequest, + UEContextModificationResponse, + UEContextReleaseCommand, + UEContextReleaseComplete, + UEContextReleaseRequest, + UplinkNASTransport, + UplinkS1cdma2000tunneling, + WriteReplaceWarningRequest, + WriteReplaceWarningResponse, + ENBConfigurationTransfer, + MMEConfigurationTransfer + + +FROM S1AP-PDU-Contents + + id-CellTrafficTrace, + id-DeactivateTrace, + id-downlinkNASTransport, + id-DownlinkS1cdma2000tunneling, + id-eNBStatusTransfer, + id-ErrorIndication, + id-HandoverCancel, + id-HandoverNotification, + id-HandoverPreparation, + id-HandoverResourceAllocation, + id-InitialContextSetup, + id-initialUEMessage, + id-ENBConfigurationUpdate, + id-LocationReportingControl, + id-LocationReportingFailureIndication, + id-LocationReport, + id-eNBDirectInformationTransfer, + id-MMEConfigurationUpdate, + id-MMEDirectInformationTransfer, + id-MMEStatusTransfer, + id-NASNonDeliveryIndication, + id-OverloadStart, + id-OverloadStop, + id-Paging, + id-PathSwitchRequest, + id-PrivateMessage, + id-Reset, + id-S1Setup, + id-E-RABModify, + id-E-RABRelease, + id-E-RABReleaseIndication, + id-E-RABSetup, + id-TraceFailureIndication, + id-TraceStart, + id-UECapabilityInfoIndication, + id-UEContextModification, + id-UEContextRelease, + id-UEContextReleaseRequest, + id-uplinkNASTransport, + id-UplinkS1cdma2000tunneling, + id-WriteReplaceWarning, + id-eNBConfigurationTransfer, + id-MMEConfigurationTransfer +FROM S1AP-Constants; + + +-- ************************************************************** +-- +-- Interface Elementary Procedure Class +-- +-- ************************************************************** + +S1AP-ELEMENTARY-PROCEDURE ::= CLASS { + &InitiatingMessage , + &SuccessfulOutcome OPTIONAL, + &UnsuccessfulOutcome OPTIONAL, + &procedureCode ProcedureCode UNIQUE, + &criticality Criticality DEFAULT ignore +} +WITH SYNTAX { + INITIATING MESSAGE &InitiatingMessage + [SUCCESSFUL OUTCOME &SuccessfulOutcome] + [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] + PROCEDURE CODE &procedureCode + [CRITICALITY &criticality] +} + +-- ************************************************************** +-- +-- Interface PDU Definition +-- +-- ************************************************************** + +S1AP-PDU ::= CHOICE { + initiatingMessage InitiatingMessage, + successfulOutcome SuccessfulOutcome, + unsuccessfulOutcome UnsuccessfulOutcome, + ... +} + +InitiatingMessage ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +SuccessfulOutcome ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +UnsuccessfulOutcome ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +-- ************************************************************** +-- +-- Interface Elementary Procedure List +-- +-- ************************************************************** + +S1AP-ELEMENTARY-PROCEDURES S1AP-ELEMENTARY-PROCEDURE ::= { + S1AP-ELEMENTARY-PROCEDURES-CLASS-1 | + S1AP-ELEMENTARY-PROCEDURES-CLASS-2, + ... +} + + +S1AP-ELEMENTARY-PROCEDURES-CLASS-1 S1AP-ELEMENTARY-PROCEDURE ::= { + handoverPreparation | + handoverResourceAllocation | + pathSwitchRequest | + e-RABSetup | + e-RABModify | + e-RABRelease | + initialContextSetup | + handoverCancel | + reset | + s1Setup | + uEContextModification | + uEContextRelease | + eNBConfigurationUpdate | + mMEConfigurationUpdate | + writeReplaceWarning , + ... +} + +S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= { + handoverNotification | + e-RABReleaseIndication | + paging | + downlinkNASTransport | + initialUEMessage | + uplinkNASTransport | + errorIndication | + nASNonDeliveryIndication | + uEContextReleaseRequest | + downlinkS1cdma2000tunneling | + uplinkS1cdma2000tunneling | + uECapabilityInfoIndication | + eNBStatusTransfer | + mMEStatusTransfer | + deactivateTrace | + traceStart | + traceFailureIndication | + cellTrafficTrace | + locationReportingControl | + locationReportingFailureIndication | + locationReport | + overloadStart | + overloadStop | + eNBDirectInformationTransfer | + mMEDirectInformationTransfer | + eNBConfigurationTransfer | + mMEConfigurationTransfer | + privateMessage , + ... +} + +-- ************************************************************** +-- +-- Interface Elementary Procedures +-- +-- ************************************************************** + +handoverPreparation S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequired + SUCCESSFUL OUTCOME HandoverCommand + UNSUCCESSFUL OUTCOME HandoverPreparationFailure + PROCEDURE CODE id-HandoverPreparation + CRITICALITY reject +} + +handoverResourceAllocation S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequest + SUCCESSFUL OUTCOME HandoverRequestAcknowledge + UNSUCCESSFUL OUTCOME HandoverFailure + PROCEDURE CODE id-HandoverResourceAllocation + CRITICALITY reject +} + +handoverNotification S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverNotify + PROCEDURE CODE id-HandoverNotification + CRITICALITY ignore +} + +pathSwitchRequest S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PathSwitchRequest + SUCCESSFUL OUTCOME PathSwitchRequestAcknowledge + UNSUCCESSFUL OUTCOME PathSwitchRequestFailure + PROCEDURE CODE id-PathSwitchRequest + CRITICALITY reject +} + +e-RABSetup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABSetupRequest + SUCCESSFUL OUTCOME E-RABSetupResponse + PROCEDURE CODE id-E-RABSetup + CRITICALITY reject +} + +e-RABModify S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABModifyRequest + SUCCESSFUL OUTCOME E-RABModifyResponse + PROCEDURE CODE id-E-RABModify + CRITICALITY reject +} + +e-RABRelease S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABReleaseCommand + SUCCESSFUL OUTCOME E-RABReleaseResponse + PROCEDURE CODE id-E-RABRelease + CRITICALITY reject +} + +e-RABReleaseIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABReleaseIndication + PROCEDURE CODE id-E-RABReleaseIndication + CRITICALITY ignore +} + +initialContextSetup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE InitialContextSetupRequest + SUCCESSFUL OUTCOME InitialContextSetupResponse + UNSUCCESSFUL OUTCOME InitialContextSetupFailure + PROCEDURE CODE id-InitialContextSetup + CRITICALITY reject +} + +uEContextReleaseRequest S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextReleaseRequest + PROCEDURE CODE id-UEContextReleaseRequest + CRITICALITY ignore +} + +paging S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE Paging + PROCEDURE CODE id-Paging + CRITICALITY ignore +} + +downlinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkNASTransport + PROCEDURE CODE id-downlinkNASTransport + CRITICALITY ignore +} + +initialUEMessage S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE InitialUEMessage + PROCEDURE CODE id-initialUEMessage + CRITICALITY ignore +} + +uplinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkNASTransport + PROCEDURE CODE id-uplinkNASTransport + CRITICALITY ignore +} +nASNonDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE NASNonDeliveryIndication + PROCEDURE CODE id-NASNonDeliveryIndication + CRITICALITY ignore +} + +handoverCancel S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverCancel + SUCCESSFUL OUTCOME HandoverCancelAcknowledge + PROCEDURE CODE id-HandoverCancel + CRITICALITY reject +} + +reset S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE Reset + SUCCESSFUL OUTCOME ResetAcknowledge + PROCEDURE CODE id-Reset + CRITICALITY reject +} + +errorIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ErrorIndication + PROCEDURE CODE id-ErrorIndication + CRITICALITY ignore +} + +s1Setup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE S1SetupRequest + SUCCESSFUL OUTCOME S1SetupResponse + UNSUCCESSFUL OUTCOME S1SetupFailure + PROCEDURE CODE id-S1Setup + CRITICALITY reject +} + +eNBConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationUpdate + SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure + PROCEDURE CODE id-ENBConfigurationUpdate + CRITICALITY reject +} + +mMEConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEConfigurationUpdate + SUCCESSFUL OUTCOME MMEConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME MMEConfigurationUpdateFailure + PROCEDURE CODE id-MMEConfigurationUpdate + CRITICALITY reject +} + +downlinkS1cdma2000tunneling S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkS1cdma2000tunneling + PROCEDURE CODE id-DownlinkS1cdma2000tunneling + CRITICALITY ignore +} + +uplinkS1cdma2000tunneling S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkS1cdma2000tunneling + PROCEDURE CODE id-UplinkS1cdma2000tunneling + CRITICALITY ignore +} + +uEContextModification S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextModificationRequest + SUCCESSFUL OUTCOME UEContextModificationResponse + UNSUCCESSFUL OUTCOME UEContextModificationFailure + + PROCEDURE CODE id-UEContextModification + CRITICALITY reject +} + +uECapabilityInfoIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UECapabilityInfoIndication + PROCEDURE CODE id-UECapabilityInfoIndication + CRITICALITY ignore +} + +uEContextRelease S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextReleaseCommand + SUCCESSFUL OUTCOME UEContextReleaseComplete + PROCEDURE CODE id-UEContextRelease + CRITICALITY reject +} + +eNBStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBStatusTransfer + PROCEDURE CODE id-eNBStatusTransfer + CRITICALITY ignore +} + +mMEStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEStatusTransfer + PROCEDURE CODE id-MMEStatusTransfer + CRITICALITY ignore +} + +deactivateTrace S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DeactivateTrace + PROCEDURE CODE id-DeactivateTrace + CRITICALITY ignore +} + +traceStart S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE TraceStart + PROCEDURE CODE id-TraceStart + CRITICALITY ignore +} + +traceFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE TraceFailureIndication + PROCEDURE CODE id-TraceFailureIndication + CRITICALITY ignore +} +cellTrafficTrace S1AP-ELEMENTARY-PROCEDURE ::={ + INITIATING MESSAGE CellTrafficTrace + PROCEDURE CODE id-CellTrafficTrace + CRITICALITY ignore +} + +locationReportingControl S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReportingControl + PROCEDURE CODE id-LocationReportingControl + CRITICALITY ignore +} + +locationReportingFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReportingFailureIndication + PROCEDURE CODE id-LocationReportingFailureIndication + CRITICALITY ignore +} + +locationReport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReport + PROCEDURE CODE id-LocationReport + CRITICALITY ignore +} + +overloadStart S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE OverloadStart + PROCEDURE CODE id-OverloadStart + CRITICALITY ignore +} + +overloadStop S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE OverloadStop + PROCEDURE CODE id-OverloadStop + CRITICALITY reject +} + +writeReplaceWarning S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE WriteReplaceWarningRequest + SUCCESSFUL OUTCOME WriteReplaceWarningResponse + PROCEDURE CODE id-WriteReplaceWarning + CRITICALITY reject +} + +eNBDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBDirectInformationTransfer + PROCEDURE CODE id-eNBDirectInformationTransfer + CRITICALITY ignore +} + +mMEDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEDirectInformationTransfer + PROCEDURE CODE id-MMEDirectInformationTransfer + CRITICALITY ignore +} + +eNBConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationTransfer + PROCEDURE CODE id-eNBConfigurationTransfer + CRITICALITY ignore +} + +mMEConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEConfigurationTransfer + PROCEDURE CODE id-MMEConfigurationTransfer + CRITICALITY ignore +} + + +privateMessage S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PrivateMessage + PROCEDURE CODE id-PrivateMessage + CRITICALITY ignore +} + +END + + + +-- ************************************************************** +-- +-- PDU definitions for S1AP. +-- +-- ************************************************************** + +S1AP-PDU-Contents { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Contents (1) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + UEAggregateMaximumBitrate, Cause, Cdma2000HORequiredIndication, @@ -74,7 +622,7 @@ IMPORTS SupportedTAs, TAI, Target-ToSource-TransparentContainer, - TargetBSS-ToSourceBSS-TransparentContainer, + TargetBSS-ToSourceBSS-TransparentContainer, TargeteNB-ToSourceeNB-TransparentContainer, TargetID, TargetRNC-ToSourceRNC-TransparentContainer, @@ -103,6 +651,19 @@ IMPORTS FROM S1AP-IEs + PrivateIE-Container{}, + ProtocolExtensionContainer{}, + ProtocolIE-Container{}, + ProtocolIE-ContainerList{}, + ProtocolIE-ContainerPair{}, + ProtocolIE-ContainerPairList{}, + ProtocolIE-SingleContainer{}, + S1AP-PRIVATE-IES, + S1AP-PROTOCOL-EXTENSION, + S1AP-PROTOCOL-IES, + S1AP-PROTOCOL-IES-PAIR +FROM S1AP-Containers + id-uEaggregateMaximumBitrate, id-Cause, @@ -124,7 +685,7 @@ FROM S1AP-IEs id-EUTRAN-CGI, id-eNBname, id-eNB-StatusTransfer-TransparentContainer, - id-eNB-UE-S1AP-ID, + id-eNB-UE-S1AP-ID, id-GERANtoLTEHOInformationRes, id-GUMMEI-ID, id-HandoverRestrictionList, @@ -239,7 +800,6 @@ FROM S1AP-IEs FROM S1AP-Constants; - -- ************************************************************** -- -- Common Container Lists @@ -267,7 +827,7 @@ HandoverRequired ::= SEQUENCE { ... } -HandoverRequiredIEs S1AP-PROTOCOL-IES ::= { +HandoverRequiredIEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory } | @@ -294,13 +854,13 @@ HandoverCommand ::= SEQUENCE { ... } -HandoverCommandIEs S1AP-PROTOCOL-IES ::= { +HandoverCommandIEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory } | { ID id-NASSecurityParametersfromE-UTRAN CRITICALITY reject TYPE NASSecurityParametersfromE-UTRAN PRESENCE conditional -- This IE shall be present if HandoverType IE is set to value "LTEtoUTRAN" or "LTEtoGERAN" -- }| - { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABDataForwardingList PRESENCE optional } | + { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional } | { ID id-E-RABtoReleaseListHOCmd CRITICALITY ignore TYPE E-RABList PRESENCE optional } | { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory }| { ID id-Target-ToSource-TransparentContainer-Secondary CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE optional }| @@ -308,7 +868,7 @@ HandoverCommandIEs S1AP-PROTOCOL-IES ::= { ... } -E-RABDataForwardingList ::= E-RAB-IE-ContainerList { {E-RABDataForwardingItemIEs} } +E-RABSubjecttoDataForwardingList ::= E-RAB-IE-ContainerList { {E-RABDataForwardingItemIEs} } E-RABDataForwardingItemIEs S1AP-PROTOCOL-IES ::= { { ID id-E-RABDataForwardingItem CRITICALITY ignore TYPE E-RABDataForwardingItem PRESENCE mandatory }, @@ -342,7 +902,7 @@ HandoverPreparationFailure ::= SEQUENCE { ... } -HandoverPreparationFailureIEs S1AP-PROTOCOL-IES ::= { +HandoverPreparationFailureIEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| @@ -367,7 +927,7 @@ HandoverRequest ::= SEQUENCE { ... } -HandoverRequestIEs S1AP-PROTOCOL-IES ::= { +HandoverRequestIEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory } | { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } | @@ -416,7 +976,7 @@ HandoverRequestAcknowledge ::= SEQUENCE { ... } -HandoverRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { +HandoverRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | { ID id-E-RABAdmittedList CRITICALITY ignore TYPE E-RABAdmittedList PRESENCE mandatory } | @@ -479,7 +1039,7 @@ HandoverFailure ::= SEQUENCE { ... } -HandoverFailureIEs S1AP-PROTOCOL-IES ::= { +HandoverFailureIEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, @@ -503,7 +1063,7 @@ HandoverNotify ::= SEQUENCE { ... } -HandoverNotifyIEs S1AP-PROTOCOL-IES ::= { +HandoverNotifyIEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| @@ -528,7 +1088,7 @@ PathSwitchRequest ::= SEQUENCE { ... } -PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= { +PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= { { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| { ID id-E-RABToBeSwitchedDLList CRITICALITY reject TYPE E-RABToBeSwitchedDLList PRESENCE mandatory }| { ID id-SourceMME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| @@ -538,7 +1098,7 @@ PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= { ... } -E-RABToBeSwitchedDLList ::= SEQUENCE (SIZE (0..maxProtocolIEs)) OF E-RAB-IE-ContainerList { {E-RABToBeSwitchedDLItemIEs} } +E-RABToBeSwitchedDLList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedDLItemIEs} } E-RABToBeSwitchedDLItemIEs S1AP-PROTOCOL-IES ::= { { ID id-E-RABToBeSwitchedDLItem CRITICALITY reject TYPE E-RABToBeSwitchedDLItem PRESENCE mandatory }, @@ -568,7 +1128,7 @@ PathSwitchRequestAcknowledge ::= SEQUENCE { ... } -PathSwitchRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { +PathSwitchRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional }| @@ -610,7 +1170,7 @@ PathSwitchRequestFailure ::= SEQUENCE { ... } -PathSwitchRequestFailureIEs S1AP-PROTOCOL-IES ::= { +PathSwitchRequestFailureIEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| @@ -635,7 +1195,7 @@ HandoverCancel ::= SEQUENCE { ... } -HandoverCancelIEs S1AP-PROTOCOL-IES ::= { +HandoverCancelIEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, @@ -653,7 +1213,7 @@ HandoverCancelAcknowledge ::= SEQUENCE { ... } -HandoverCancelAcknowledgeIEs S1AP-PROTOCOL-IES ::= { +HandoverCancelAcknowledgeIEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, @@ -976,7 +1536,7 @@ E-RABToBeSetupItemCtxtSUReqIEs S1AP-PROTOCOL-IES ::= { E-RABToBeSetupItemCtxtSUReq ::= SEQUENCE { e-RAB-ID E-RAB-ID, - e-RABlevelQoSParameters E-RABLevelQoSParameters, + e-RABlevelQoSParameters E-RABLevelQoSParameters, transportLayerAddress TransportLayerAddress, gTP-TEID GTP-TEID, nAS-PDU NAS-PDU OPTIONAL, @@ -1114,7 +1674,7 @@ UEContextReleaseRequest ::= SEQUENCE { ... } -UEContextReleaseRequestIEs S1AP-PROTOCOL-IES ::= { +UEContextReleaseRequest-IEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} , @@ -1132,9 +1692,9 @@ UEContextReleaseCommand ::= SEQUENCE { ... } -UEContextReleaseCommandIEs S1AP-PROTOCOL-IES ::= { +UEContextReleaseCommand-IEs S1AP-PROTOCOL-IES ::= { { ID id-UE-S1AP-IDs CRITICALITY reject TYPE UE-S1AP-IDs PRESENCE mandatory} | - + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} , ... } @@ -1150,7 +1710,7 @@ UEContextReleaseComplete ::= SEQUENCE { ... } -UEContextReleaseCompleteIEs S1AP-PROTOCOL-IES ::= { +UEContextReleaseComplete-IEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory} | { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, @@ -1175,9 +1735,9 @@ UEContextModificationRequest ::= SEQUENCE { ... } -UEContextModificationRequestIEs S1AP-PROTOCOL-IES ::= { +UEContextModificationRequestIEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE optional }| { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional }| { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional }| @@ -1195,7 +1755,7 @@ UEContextModificationResponse ::= SEQUENCE { ... } -UEContextModificationResponseIEs S1AP-PROTOCOL-IES ::= { +UEContextModificationResponseIEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, @@ -1211,7 +1771,7 @@ UEContextModificationFailure ::= SEQUENCE { ... } -UEContextModificationFailureIEs S1AP-PROTOCOL-IES ::= { +UEContextModificationFailureIEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| @@ -1236,7 +1796,7 @@ DownlinkNASTransport ::= SEQUENCE { ... } -DownlinkNASTransportIEs S1AP-PROTOCOL-IES ::= { +DownlinkNASTransport-IEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory} | @@ -1256,7 +1816,7 @@ InitialUEMessage ::= SEQUENCE { ... } -InitialUEMessageIEs S1AP-PROTOCOL-IES ::= { +InitialUEMessage-IEs S1AP-PROTOCOL-IES ::= { { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory} | { ID id-TAI CRITICALITY reject TYPE TAI PRESENCE mandatory} | @@ -1280,10 +1840,10 @@ UplinkNASTransport ::= SEQUENCE { ... } -UplinkNASTransportIEs S1AP-PROTOCOL-IES ::= { +UplinkNASTransport-IEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory} | + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory} | { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}, ... @@ -1299,7 +1859,7 @@ NASNonDeliveryIndication ::= SEQUENCE { ... } -NASNonDeliveryIndicationIEs S1AP-PROTOCOL-IES ::= { +NASNonDeliveryIndication-IEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory} | @@ -1472,7 +2032,7 @@ S1SetupFailureIEs S1AP-PROTOCOL-IES ::= { -- ************************************************************** -- --- eNB Configuration Update +-- eNB Configuration Update -- -- ************************************************************** @@ -1533,7 +2093,7 @@ ENBConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= { -- ************************************************************** -- --- MME Configuration Update +-- MME Configuration Update -- -- ************************************************************** @@ -1604,7 +2164,7 @@ DownlinkS1cdma2000tunneling ::= SEQUENCE { DownlinkS1cdma2000tunnelingIEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABDataForwardingList PRESENCE optional } | + { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional } | { ID id-cdma2000HOStatus CRITICALITY ignore TYPE Cdma2000HOStatus PRESENCE optional } | { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory } | { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory }, @@ -1794,8 +2354,8 @@ DeactivateTraceIEs S1AP-PROTOCOL-IES ::= { -- ************************************************************** CellTrafficTrace ::= SEQUENCE { -protocolIEs ProtocolIE-Container { { CellTrafficTraceIEs } }, -... + protocolIEs ProtocolIE-Container { { CellTrafficTraceIEs } }, + ... } CellTrafficTraceIEs S1AP-PROTOCOL-IES ::= { @@ -1851,7 +2411,7 @@ LocationReportingFailureIndicationIEs S1AP-PROTOCOL-IES ::= { -- ************************************************************** -- --- Location Report +-- Location Report -- -- ************************************************************** @@ -1886,7 +2446,7 @@ OverloadStart ::= SEQUENCE { ... } -OverloadStartIEs S1AP-PROTOCOL-IES ::= { +OverloadStartIEs S1AP-PROTOCOL-IES ::= { { ID id-OverloadResponse CRITICALITY reject TYPE OverloadResponse PRESENCE mandatory }, ... } @@ -1901,12 +2461,12 @@ OverloadStop ::= SEQUENCE { ... } -OverloadStopIEs S1AP-PROTOCOL-IES ::= { +OverloadStopIEs S1AP-PROTOCOL-IES ::= { ... } -- ************************************************************** -- --- WRITE-REPLACE WARNING ELEMENTARY PROCEDURE +-- WRITE-REPLACE WARNING ELEMENTARY PROCEDURE -- -- ************************************************************** @@ -1922,7 +2482,7 @@ WriteReplaceWarningRequest ::= SEQUENCE { ... } -WriteReplaceWarningRequestIEs S1AP-PROTOCOL-IES ::= { +WriteReplaceWarningRequestIEs S1AP-PROTOCOL-IES ::= { { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional }| @@ -2067,3 +2627,1667 @@ PrivateMessageIEs S1AP-PRIVATE-IES ::= { } END + + + +-- ************************************************************** +-- +-- Information Element Definitions +-- +-- ************************************************************** + +S1AP-IEs { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-IEs (2) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + id-E-RABInformationListItem, + id-E-RABItem, + id-Bearers-SubjectToStatusTransfer-Item, + maxNrOfCSGs, + maxNrOfE-RABs, + maxNrOfErrors, + maxnoofBPLMNs, + maxnoofPLMNsPerMME, + maxnoofTACs, + maxnoofEPLMNs, + maxnoofEPLMNsPlusOne, + maxnoofForbLACs, + maxnoofForbTACs, + maxnoofCells, + maxnoofCellID, + maxnoofEmergencyAreaID, + maxnoofTAIforWarning, + maxnoofCellinTAI, + maxnoofCellinEAI, + maxnoofeNBX2TLAs, + maxnoofRATs, + maxnoofGroupIDs, + maxnoofMMECs + + + +FROM S1AP-Constants + + Criticality, + ProcedureCode, + ProtocolIE-ID, + TriggeringMessage +FROM S1AP-CommonDataTypes + + ProtocolExtensionContainer{}, + S1AP-PROTOCOL-EXTENSION, + ProtocolIE-SingleContainer{}, + S1AP-PROTOCOL-IES + +FROM S1AP-Containers; + +-- A + + +AllocationAndRetentionPriority ::= SEQUENCE { + priorityLevel PriorityLevel, + pre-emptionCapability Pre-emptionCapability, + pre-emptionVulnerability Pre-emptionVulnerability, + iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, + ... +} + +AllocationAndRetentionPriority-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- B + +Bearers-SubjectToStatusTransferList ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { { Bearers-SubjectToStatusTransfer-ItemIEs } } + +Bearers-SubjectToStatusTransfer-ItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-Bearers-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE Bearers-SubjectToStatusTransfer-Item PRESENCE mandatory }, + ... +} + +Bearers-SubjectToStatusTransfer-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-COUNTvalue COUNTvalue, + dL-COUNTvalue COUNTvalue, + receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {Bearers-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL, + ... +} + +Bearers-SubjectToStatusTransfer-ItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +BitRate ::= INTEGER (0..10000000000) + +BPLMNs ::= SEQUENCE (SIZE(1.. maxnoofBPLMNs)) OF PLMNidentity + +BroadcastCompletedAreaList ::= CHOICE { + cellID-Broadcast CellID-Broadcast, + tAI-Broadcast TAI-Broadcast, + emergencyAreaID-Broadcast EmergencyAreaID-Broadcast, + ... +} + + +-- C + +Cause ::= CHOICE { + radioNetwork CauseRadioNetwork, + transport CauseTransport, + nas CauseNas, + protocol CauseProtocol, + misc CauseMisc, + ... +} + +CauseMisc ::= ENUMERATED { + control-processing-overload, + not-enough-user-plane-processing-resources, + hardware-failure, + om-intervention, + unspecified, + unknown-PLMN, +... +} + +CauseProtocol ::= ENUMERATED { + transfer-syntax-error, + abstract-syntax-error-reject, + abstract-syntax-error-ignore-and-notify, + message-not-compatible-with-receiver-state, + semantic-error, + abstract-syntax-error-falsely-constructed-message, + unspecified, + ... +} + +CauseRadioNetwork ::= ENUMERATED { + unspecified, + tx2relocoverall-expiry, + successful-handover, + release-due-to-eutran-generated-reason, + handover-cancelled, + partial-handover, + ho-failure-in-target-EPC-eNB-or-target-system, + ho-target-not-allowed, + tS1relocoverall-expiry, + tS1relocprep-expiry, + cell-not-available, + unknown-targetID, + no-radio-resources-available-in-target-cell, + unknown-mme-ue-s1ap-id, + unknown-enb-ue-s1ap-id, + unknown-pair-ue-s1ap-id, + handover-desirable-for-radio-reason, + time-critical-handover, + resource-optimisation-handover, + reduce-load-in-serving-cell, + user-inactivity, + radio-connection-with-ue-lost, + load-balancing-tau-required, + cs-fallback-triggered, + ue-not-available-for-ps-service, + radio-resources-not-available, + failure-in-radio-interface-procedure, + invalid-qos-combination, + interrat-redirection, + interaction-with-other-procedure, + unknown-E-RAB-ID, + multiple-E-RAB-ID-instances, + encryption-and-or-integrity-protection-algorithms-not-supported, + s1-intra-system-handover-triggered, + s1-inter-system-handover-triggered, + x2-handover-triggered, + ..., + redirection-towards-1xRTT, + not-supported-QCI-value + +} + +CauseTransport ::= ENUMERATED { + transport-resource-unavailable, + unspecified, + ... +} + +CauseNas ::= ENUMERATED { + normal-release, + authentication-failure, + detach, + unspecified, + ... +} + +CellIdentity ::= BIT STRING (SIZE (28)) + +CellID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Broadcast-Item + +CellID-Broadcast-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CellID-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +CellID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +Cdma2000PDU ::= OCTET STRING + +Cdma2000RATType ::= ENUMERATED { + hRPD, + onexRTT, + ... +} + +Cdma2000SectorID ::= OCTET STRING + +Cdma2000HOStatus ::= ENUMERATED { + hOSuccess, + hOFailure, + ... +} + +Cdma2000HORequiredIndication ::= ENUMERATED { + true, + ... +} + +Cdma2000OneXSRVCCInfo ::= SEQUENCE { + cdma2000OneXMEID Cdma2000OneXMEID, + cdma2000OneXMSI Cdma2000OneXMSI, + cdma2000OneXPilot Cdma2000OneXPilot, + iE-Extensions ProtocolExtensionContainer { {Cdma2000OneXSRVCCInfo-ExtIEs} } OPTIONAL, + ... +} + +Cdma2000OneXSRVCCInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Cdma2000OneXMEID ::= OCTET STRING + +Cdma2000OneXMSI ::= OCTET STRING + +Cdma2000OneXPilot ::= OCTET STRING + +Cdma2000OneXRAND ::= OCTET STRING + + +Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ...} + +CellType ::= SEQUENCE { + cell-Size Cell-Size, + iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL, + ... +} + +CellType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CGI ::= SEQUENCE { + pLMNidentity PLMNidentity, + lAC LAC, + cI CI, + rAC RAC OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL, + ... + } + +CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CI ::= OCTET STRING (SIZE (2)) + +CNDomain ::= ENUMERATED { + ps, + cs +} + +CSFallbackIndicator ::= ENUMERATED { + cs-fallback-required, + ..., + cs-fallback-high-priority +} + +CSG-Id ::= BIT STRING (SIZE (27)) + + +CSG-IdList ::= SEQUENCE (SIZE (1..maxNrOfCSGs)) OF CSG-IdList-Item + +CSG-IdList-Item ::= SEQUENCE { + cSG-Id CSG-Id, + iE-Extensions ProtocolExtensionContainer { {CSG-IdList-Item-ExtIEs} } OPTIONAL, + ... +} + +CSG-IdList-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +COUNTvalue ::= SEQUENCE { + pDCP-SN PDCP-SN, + hFN HFN, + iE-Extensions ProtocolExtensionContainer { {COUNTvalue-ExtIEs} } OPTIONAL, + ... +} +COUNTvalue-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-ExtIEs}} OPTIONAL, + ... +} + +CriticalityDiagnostics-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF CriticalityDiagnostics-IE-Item + +CriticalityDiagnostics-IE-Item ::= SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-IE-Item-ExtIEs}} OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- D + +DataCodingScheme ::= BIT STRING (SIZE (8)) + +DL-Forwarding ::= ENUMERATED { + dL-Forwarding-proposed, + ... +} + +Direct-Forwarding-Path-Availability ::= ENUMERATED { + directPathAvailable, + ... +} + +-- E + +ECGIList ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF EUTRAN-CGI + +EmergencyAreaIDList ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID + +EmergencyAreaID ::= OCTET STRING (SIZE (3)) + +EmergencyAreaID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Broadcast-Item + +EmergencyAreaID-Broadcast-Item ::= SEQUENCE { + emergencyAreaID EmergencyAreaID, + completedCellinEAI CompletedCellinEAI, + iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +EmergencyAreaID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +CompletedCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CompletedCellinEAI-Item + +CompletedCellinEAI-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CompletedCellinEAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CompletedCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENB-ID ::= CHOICE { + macroENB-ID BIT STRING (SIZE(20)), + homeENB-ID BIT STRING (SIZE(28)), + ... +} + +GERAN-Cell-ID ::= SEQUENCE { + lAI LAI, + rAC RAC, + cI CI, + iE-Extensions ProtocolExtensionContainer { { GERAN-Cell-ID-ExtIEs} } OPTIONAL, + ... +} + +GERAN-Cell-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Global-ENB-ID ::= SEQUENCE { + pLMNidentity PLMNidentity, + eNB-ID ENB-ID, + iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL, + ... +} + +GlobalENB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +ENB-StatusTransfer-TransparentContainer ::= SEQUENCE { + bearers-SubjectToStatusTransferList Bearers-SubjectToStatusTransferList, + iE-Extensions ProtocolExtensionContainer { {ENB-StatusTransfer-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +ENB-StatusTransfer-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENB-UE-S1AP-ID ::= INTEGER (0..16777215) + +ENBname ::= PrintableString (SIZE (1..150,...)) + +ENBX2TLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2TLAs)) OF TransportLayerAddress + +EncryptionAlgorithms ::= BIT STRING (SIZE (16,...)) + +EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMNidentity +EventType ::= ENUMERATED { + direct, + change-of-serve-cell, + stop-change-of-serve-cell, + ... +} + +E-RAB-ID ::= INTEGER (0..15, ...) + +E-RABInformationList ::= SEQUENCE (SIZE (1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { { E-RABInformationListIEs } } + +E-RABInformationListIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABInformationListItem CRITICALITY ignore TYPE E-RABInformationListItem PRESENCE mandatory }, + ... +} + +E-RABInformationListItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-Forwarding DL-Forwarding OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABInformationListItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABInformationListItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABList ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABItemIEs} } + +E-RABItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABItem CRITICALITY ignore TYPE E-RABItem PRESENCE mandatory }, + ... +} + +E-RABItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RABItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + + +E-RABLevelQoSParameters ::= SEQUENCE { + qCI QCI, + allocationRetentionPriority AllocationAndRetentionPriority, + gbrQosInformation GBR-QosInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABQoSParameters-ExtIEs} } OPTIONAL, + ... +} + +E-RABQoSParameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +EUTRAN-CGI ::= SEQUENCE { + pLMNidentity PLMNidentity, + cell-ID CellIdentity, + iE-Extensions ProtocolExtensionContainer { {EUTRAN-CGI-ExtIEs} } OPTIONAL, + ... +} + +EUTRAN-CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ExtendedRNC-ID ::= INTEGER (4096..65535) + +-- F + +ForbiddenInterRATs ::= ENUMERATED { + all, + geran, + utran, + cdma2000, + ... +} + +ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item + +ForbiddenTAs-Item ::= SEQUENCE { + pLMN-Identity PLMNidentity, + forbiddenTACs ForbiddenTACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC + +ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item + +ForbiddenLAs-Item ::= SEQUENCE { + pLMN-Identity PLMNidentity, + forbiddenLACs ForbiddenLACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenLAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC + +-- G + +GBR-QosInformation ::= SEQUENCE { + e-RAB-MaximumBitrateDL BitRate, + e-RAB-MaximumBitrateUL BitRate, + e-RAB-GuaranteedBitrateDL BitRate, + e-RAB-GuaranteedBitrateUL BitRate, + iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL, + ... +} + +GBR-QosInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +GTP-TEID ::= OCTET STRING (SIZE (4)) + +GUMMEI ::= SEQUENCE { + pLMN-Identity PLMNidentity, + mME-Group-ID MME-Group-ID, + mME-Code MME-Code, + iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, + ... +} + +GUMMEI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- H + +HandoverRestrictionList ::= SEQUENCE { + servingPLMN PLMNidentity, + equivalentPLMNs EPLMNs OPTIONAL, + forbiddenTAs ForbiddenTAs OPTIONAL, + forbiddenLAs ForbiddenLAs OPTIONAL, + forbiddenInterRATs ForbiddenInterRATs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, + ... +} + +HandoverRestrictionList-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +HandoverType ::= ENUMERATED { + intralte, + ltetoutran, + ltetogeran, + utrantolte, + gerantolte, + ... +} + +HFN ::= INTEGER (0..1048575) + +-- I + +IMSI ::= OCTET STRING (SIZE (3..8)) + +IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...)) + +InterfacesToTrace ::= BIT STRING (SIZE (8)) + + + +-- J +-- K +-- L + + +LAC ::= OCTET STRING (SIZE (2)) + +LAI ::= SEQUENCE { + pLMNidentity PLMNidentity, + lAC LAC, + iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL, + ... +} + +LAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +LastVisitedCell-Item ::= CHOICE { + e-UTRAN-Cell LastVisitedEUTRANCellInformation, + uTRAN-Cell LastVisitedUTRANCellInformation, + gERAN-Cell LastVisitedGERANCellInformation, + ... +} +LastVisitedEUTRANCellInformation ::= SEQUENCE { + global-Cell-ID EUTRAN-CGI, + cellType CellType, + time-UE-StayedInCell Time-UE-StayedInCell, + iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, + ... +} +LastVisitedEUTRANCellInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} +LastVisitedUTRANCellInformation ::= OCTET STRING + +LastVisitedGERANCellInformation ::= CHOICE { + undefined NULL, + ... +} + +L3-Information ::= OCTET STRING + + +-- M + +MessageIdentifier ::= BIT STRING (SIZE (16)) + +MMEname ::= PrintableString (SIZE (1..150,...)) + +MME-Group-ID ::= OCTET STRING (SIZE (2)) + +MME-Code ::= OCTET STRING (SIZE (1)) + +MME-UE-S1AP-ID ::= INTEGER (0..4294967295) +M-TMSI ::= OCTET STRING (SIZE (4)) + +MSClassmark2 ::= OCTET STRING +MSClassmark3 ::= OCTET STRING + +-- N + +NAS-PDU ::= OCTET STRING + +NASSecurityParametersfromE-UTRAN ::= OCTET STRING + +NASSecurityParameterstoE-UTRAN ::= OCTET STRING + +NumberofBroadcastRequest ::= INTEGER (0..65535) + +NumberofBroadcast ::= INTEGER (0..65535) + +-- O +OldBSS-ToNewBSS-Information ::= OCTET STRING + +OverloadAction ::= ENUMERATED { + reject-non-emergency-mo-dt, + reject-all-rrc-cr-signalling, + permit-emergency-sessions-only, + ... +} + +OverloadResponse ::= CHOICE { + overloadAction OverloadAction, + ... +} + + +-- P + +PagingDRX ::= ENUMERATED { + v32, + v64, + v128, + v256, + ... + } + +PDCP-SN ::= INTEGER (0..4095) + +PLMNidentity ::= TBCD-STRING + +Pre-emptionCapability ::= ENUMERATED { + shall-not-trigger-pre-emption, + may-trigger-pre-emption +} + +Pre-emptionVulnerability ::= ENUMERATED { + not-pre-emptable, + pre-emptable +} + +PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) + + +-- Q + +QCI ::= INTEGER (0..255) + +-- R + +ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) + +RelativeMMECapacity ::= INTEGER (0..255) + +RAC ::= OCTET STRING (SIZE (1)) + + +RequestType ::= SEQUENCE { + eventType EventType, + reportArea ReportArea, + iE-Extensions ProtocolExtensionContainer { { RequestType-ExtIEs} } OPTIONAL, + ... +} + + +RequestType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RIMTransfer ::= SEQUENCE { + rIMInformation RIMInformation, + rIMRoutingAddress RIMRoutingAddress OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { RIMTransfer-ExtIEs} } OPTIONAL, +... +} + +RIMTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RIMInformation ::= OCTET STRING + +RIMRoutingAddress ::= CHOICE { + gERAN-Cell-ID GERAN-Cell-ID, + ... +} + +ReportArea ::= ENUMERATED { + ecgi, + ... +} + +RepetitionPeriod ::= INTEGER (0..4095) + + +RNC-ID ::= INTEGER (0..4095) + +RRC-Container ::= OCTET STRING + +RRC-Establishment-Cause ::= ENUMERATED { + emergency, + highPriorityAccess, + mt-Access, + mo-Signalling, + mo-Data, + ... +} + +-- S + + +SecurityKey ::= BIT STRING (SIZE(256)) + + + +SecurityContext ::= SEQUENCE { + nextHopChainingCount INTEGER (0..7), + nextHopParameter SecurityKey, + iE-Extensions ProtocolExtensionContainer { { SecurityContext-ExtIEs} } OPTIONAL, + ... +} + + +SecurityContext-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +SerialNumber ::= BIT STRING (SIZE (16)) + +SONInformation ::= CHOICE{ + sONInformationRequest SONInformationRequest, + sONInformationReply SONInformationReply, + ... +} + +SONInformationRequest ::= ENUMERATED { + x2TNL-Configuration-Info, + ... +} + +SONInformationReply ::= SEQUENCE { + x2TNLConfigurationInfo X2TNLConfigurationInfo OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{SONInformationReply-ExtIEs}} OPTIONAL, + ... +} + +SONInformationReply-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +SONConfigurationTransfer ::= SEQUENCE { + targeteNB-ID TargeteNB-ID, + sourceeNB-ID SourceeNB-ID, + sONInformation SONInformation, + iE-Extensions ProtocolExtensionContainer { { SONConfigurationTransfer-ExtIEs} } OPTIONAL, +... +} + +SONConfigurationTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +Source-ToTarget-TransparentContainer ::= OCTET STRING + +SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING +SourceeNB-ID ::= SEQUENCE { + global-ENB-ID Global-ENB-ID, + selected-TAI TAI, + iE-Extensions ProtocolExtensionContainer { {SourceeNB-ID-ExtIEs} } OPTIONAL +} + +SourceeNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +SRVCCOperationPossible ::= ENUMERATED { + possible, + ... +} + +SRVCCHOIndication ::= ENUMERATED { + pSandCS, + cSonly, + ... +} + +SourceeNB-ToTargeteNB-TransparentContainer ::= SEQUENCE { + rRC-Container RRC-Container, + e-RABInformationList E-RABInformationList OPTIONAL, + targetCell-ID EUTRAN-CGI, + subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, + uE-HistoryInformation UE-HistoryInformation, + iE-Extensions ProtocolExtensionContainer { {SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +SourceRNC-ToTargetRNC-TransparentContainer ::= OCTET STRING + + +ServedGUMMEIs ::= SEQUENCE (SIZE (1.. maxnoofRATs)) OF ServedGUMMEIsItem + +ServedGUMMEIsItem ::= SEQUENCE { + servedPLMNs ServedPLMNs, + servedGroupIDs ServedGroupIDs, + servedMMECs ServedMMECs, + iE-Extensions ProtocolExtensionContainer { {ServedGUMMEIsItem-ExtIEs} } OPTIONAL, + ... +} + +ServedGUMMEIsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedGroupIDs ::= SEQUENCE (SIZE(1.. maxnoofGroupIDs)) OF MME-Group-ID +ServedMMECs ::= SEQUENCE (SIZE(1.. maxnoofMMECs)) OF MME-Code + +ServedPLMNs ::= SEQUENCE (SIZE(1.. maxnoofPLMNsPerMME)) OF PLMNidentity + +SubscriberProfileIDforRFP ::= INTEGER (1..256) + +SupportedTAs ::= SEQUENCE (SIZE(1.. maxnoofTACs)) OF SupportedTAs-Item + +SupportedTAs-Item ::= SEQUENCE { + tAC TAC, + broadcastPLMNs BPLMNs, + iE-Extensions ProtocolExtensionContainer { {SupportedTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +SupportedTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +S-TMSI ::= SEQUENCE { + mMEC MME-Code, + m-TMSI M-TMSI, + iE-Extensions ProtocolExtensionContainer { {S-TMSI-ExtIEs} } OPTIONAL, + ... +} + +S-TMSI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- T + +TAC ::= OCTET STRING (SIZE (2)) + +TAIListforWarning ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI + +TAI ::= SEQUENCE { + pLMNidentity PLMNidentity, + tAC TAC, + iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL, + ... +} + +TAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAI-Broadcast ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Broadcast-Item + +TAI-Broadcast-Item ::= SEQUENCE { + tAI TAI, + completedCellinTAI CompletedCellinTAI, + iE-Extensions ProtocolExtensionContainer { {TAI-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompletedCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CompletedCellinTAI-Item + +CompletedCellinTAI-Item ::= SEQUENCE{ + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CompletedCellinTAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CompletedCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TBCD-STRING ::= OCTET STRING (SIZE (3)) + +TargetID ::= CHOICE { + targeteNB-ID TargeteNB-ID, + targetRNC-ID TargetRNC-ID, + cGI CGI, + ... +} + +TargeteNB-ID ::= SEQUENCE { + global-ENB-ID Global-ENB-ID, + selected-TAI TAI, + iE-Extensions ProtocolExtensionContainer { {TargeteNB-ID-ExtIEs} } OPTIONAL, + ... +} + +TargeteNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TargetRNC-ID ::= SEQUENCE { + lAI LAI, + rAC RAC OPTIONAL, + rNC-ID RNC-ID, + extendedRNC-ID ExtendedRNC-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL, + ... + } + + +TargetRNC-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +TargeteNB-ToSourceeNB-TransparentContainer ::= SEQUENCE { + rRC-Container RRC-Container, + iE-Extensions ProtocolExtensionContainer { {TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Target-ToSource-TransparentContainer ::= OCTET STRING +TargetRNC-ToSourceRNC-TransparentContainer ::= OCTET STRING +TargetBSS-ToSourceBSS-TransparentContainer ::= OCTET STRING + +TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...} + +Time-UE-StayedInCell ::= INTEGER (0..4095) + +TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) + +TraceActivation ::= SEQUENCE { + e-UTRAN-Trace-ID E-UTRAN-Trace-ID, + interfacesToTrace InterfacesToTrace, + traceDepth TraceDepth, + traceCollectionEntityIPAddress TransportLayerAddress, + iE-Extensions ProtocolExtensionContainer { { TraceActivation-ExtIEs} } OPTIONAL, + ... +} + +TraceActivation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TraceDepth ::= ENUMERATED { + minimum, + medium, + maximum, + minimumWithoutVendorSpecificExtension, + mediumWithoutVendorSpecificExtension, + maximumWithoutVendorSpecificExtension, + ... +} + +E-UTRAN-Trace-ID ::= OCTET STRING (SIZE (8)) + +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + +-- U + +UEAggregateMaximumBitrate ::= SEQUENCE { + uEaggregateMaximumBitRateDL BitRate, + uEaggregateMaximumBitRateUL BitRate, + iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrates-ExtIEs} } OPTIONAL, + ... +} + +UEAggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +UE-S1AP-IDs ::= CHOICE{ + uE-S1AP-ID-pair UE-S1AP-ID-pair, + mME-UE-S1AP-ID MME-UE-S1AP-ID, + ... +} + +UE-S1AP-ID-pair ::= SEQUENCE{ + mME-UE-S1AP-ID MME-UE-S1AP-ID, + eNB-UE-S1AP-ID ENB-UE-S1AP-ID, + iE-Extensions ProtocolExtensionContainer { {UE-S1AP-ID-pair-ExtIEs} } OPTIONAL, + ... +} +UE-S1AP-ID-pair-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +UE-associatedLogicalS1-ConnectionItem ::= SEQUENCE { + mME-UE-S1AP-ID MME-UE-S1AP-ID OPTIONAL, + eNB-UE-S1AP-ID ENB-UE-S1AP-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { UE-associatedLogicalS1-ConnectionItemExtIEs} } OPTIONAL, + ... +} + + +UE-associatedLogicalS1-ConnectionItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UEIdentityIndexValue ::= BIT STRING (SIZE (10)) + +UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item + +UEPagingID ::= CHOICE { + s-TMSI S-TMSI, + iMSI IMSI, + ... + } + +UERadioCapability ::= OCTET STRING + +UESecurityCapabilities ::= SEQUENCE { + encryptionAlgorithms EncryptionAlgorithms, + integrityProtectionAlgorithms IntegrityProtectionAlgorithms, + iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL, +... +} + +UESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- V +-- W + +WarningAreaList ::= CHOICE { + cellIDList ECGIList, + trackingAreaListforWarning TAIListforWarning, + emergencyAreaIDList EmergencyAreaIDList, + ... +} + + +WarningType ::= OCTET STRING (SIZE (2)) + +WarningSecurityInfo ::= OCTET STRING (SIZE (50)) + + +WarningMessageContents ::= OCTET STRING (SIZE(1..9600)) + + +-- X + + +X2TNLConfigurationInfo ::= SEQUENCE { + eNBX2TransportLayerAddresses ENBX2TLAs, + iE-Extensions ProtocolExtensionContainer { { X2TNLConfigurationInfo-ExtIEs} } OPTIONAL, + ... +} + +X2TNLConfigurationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- Y +-- Z + +END + + + +-- ************************************************************** +-- +-- Common definitions +-- +-- ************************************************************** + +S1AP-CommonDataTypes { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-CommonDataTypes (3) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +Criticality ::= ENUMERATED { reject, ignore, notify } + +Presence ::= ENUMERATED { optional, conditional, mandatory } + +PrivateIE-ID ::= CHOICE { + local INTEGER (0..65535), + global OBJECT IDENTIFIER +} + +ProcedureCode ::= INTEGER (0..255) + +ProtocolExtensionID ::= INTEGER (0..65535) + +ProtocolIE-ID ::= INTEGER (0..65535) + +TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome } + +END + + +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +S1AP-Constants { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Constants (4) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + ProcedureCode, + ProtocolIE-ID + +FROM S1AP-CommonDataTypes; + + +-- ************************************************************** +-- +-- Elementary Procedures +-- +-- ************************************************************** + +id-HandoverPreparation ProcedureCode ::= 0 +id-HandoverResourceAllocation ProcedureCode ::= 1 +id-HandoverNotification ProcedureCode ::= 2 +id-PathSwitchRequest ProcedureCode ::= 3 +id-HandoverCancel ProcedureCode ::= 4 +id-E-RABSetup ProcedureCode ::= 5 +id-E-RABModify ProcedureCode ::= 6 +id-E-RABRelease ProcedureCode ::= 7 +id-E-RABReleaseIndication ProcedureCode ::= 8 +id-InitialContextSetup ProcedureCode ::= 9 +id-Paging ProcedureCode ::= 10 +id-downlinkNASTransport ProcedureCode ::= 11 +id-initialUEMessage ProcedureCode ::= 12 +id-uplinkNASTransport ProcedureCode ::= 13 +id-Reset ProcedureCode ::= 14 +id-ErrorIndication ProcedureCode ::= 15 +id-NASNonDeliveryIndication ProcedureCode ::= 16 +id-S1Setup ProcedureCode ::= 17 +id-UEContextReleaseRequest ProcedureCode ::= 18 +id-DownlinkS1cdma2000tunneling ProcedureCode ::= 19 +id-UplinkS1cdma2000tunneling ProcedureCode ::= 20 +id-UEContextModification ProcedureCode ::= 21 +id-UECapabilityInfoIndication ProcedureCode ::= 22 +id-UEContextRelease ProcedureCode ::= 23 +id-eNBStatusTransfer ProcedureCode ::= 24 +id-MMEStatusTransfer ProcedureCode ::= 25 +id-DeactivateTrace ProcedureCode ::= 26 +id-TraceStart ProcedureCode ::= 27 +id-TraceFailureIndication ProcedureCode ::= 28 +id-ENBConfigurationUpdate ProcedureCode ::= 29 +id-MMEConfigurationUpdate ProcedureCode ::= 30 +id-LocationReportingControl ProcedureCode ::= 31 +id-LocationReportingFailureIndication ProcedureCode ::= 32 +id-LocationReport ProcedureCode ::= 33 +id-OverloadStart ProcedureCode ::= 34 +id-OverloadStop ProcedureCode ::= 35 +id-WriteReplaceWarning ProcedureCode ::= 36 +id-eNBDirectInformationTransfer ProcedureCode ::= 37 +id-MMEDirectInformationTransfer ProcedureCode ::= 38 +id-PrivateMessage ProcedureCode ::= 39 +id-eNBConfigurationTransfer ProcedureCode ::= 40 +id-MMEConfigurationTransfer ProcedureCode ::= 41 +id-CellTrafficTrace ProcedureCode ::= 42 + +-- ************************************************************** +-- +-- Extension constants +-- +-- ************************************************************** + +maxPrivateIEs INTEGER ::= 65535 +maxProtocolExtensions INTEGER ::= 65535 +maxProtocolIEs INTEGER ::= 65535 +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** + +maxNrOfCSGs INTEGER ::= 256 +maxNrOfE-RABs INTEGER ::= 256 +maxnoofTAIs INTEGER ::= 256 +maxnoofTACs INTEGER ::= 256 +maxNrOfErrors INTEGER ::= 256 +maxnoofBPLMNs INTEGER ::= 6 +maxnoofPLMNsPerMME INTEGER ::= 32 +maxnoofEPLMNs INTEGER ::= 15 +maxnoofEPLMNsPlusOne INTEGER ::= 16 +maxnoofForbLACs INTEGER ::= 4096 +maxnoofForbTACs INTEGER ::= 4096 +maxNrOfIndividualS1ConnectionsToReset INTEGER ::= 256 +maxnoofCells INTEGER ::= 16 +maxnoofTAIforWarning INTEGER ::= 65535 +maxnoofCellID INTEGER ::= 65535 +maxnoofEmergencyAreaID INTEGER ::= 65535 +maxnoofCellinTAI INTEGER ::= 65535 +maxnoofCellinEAI INTEGER ::= 65535 +maxnoofeNBX2TLAs INTEGER ::= 2 +maxnoofRATs INTEGER ::= 8 +maxnoofGroupIDs INTEGER ::= 65535 +maxnoofMMECs INTEGER ::= 256 + + + + +-- ************************************************************** +-- +-- IEs +-- +-- ************************************************************** + +id-MME-UE-S1AP-ID ProtocolIE-ID ::= 0 +id-HandoverType ProtocolIE-ID ::= 1 +id-Cause ProtocolIE-ID ::= 2 +id-SourceID ProtocolIE-ID ::= 3 +id-TargetID ProtocolIE-ID ::= 4 +id-eNB-UE-S1AP-ID ProtocolIE-ID ::= 8 +id-E-RABSubjecttoDataForwardingList ProtocolIE-ID ::= 12 +id-E-RABtoReleaseListHOCmd ProtocolIE-ID ::= 13 +id-E-RABDataForwardingItem ProtocolIE-ID ::= 14 +id-E-RABReleaseItemBearerRelComp ProtocolIE-ID ::= 15 +id-E-RABToBeSetupListBearerSUReq ProtocolIE-ID ::= 16 +id-E-RABToBeSetupItemBearerSUReq ProtocolIE-ID ::= 17 +id-E-RABAdmittedList ProtocolIE-ID ::= 18 +id-E-RABFailedToSetupListHOReqAck ProtocolIE-ID ::= 19 +id-E-RABAdmittedItem ProtocolIE-ID ::= 20 +id-E-RABFailedtoSetupItemHOReqAck ProtocolIE-ID ::= 21 +id-E-RABToBeSwitchedDLList ProtocolIE-ID ::= 22 +id-E-RABToBeSwitchedDLItem ProtocolIE-ID ::= 23 +id-E-RABToBeSetupListCtxtSUReq ProtocolIE-ID ::= 24 +id-TraceActivation ProtocolIE-ID ::= 25 +id-NAS-PDU ProtocolIE-ID ::= 26 +id-E-RABToBeSetupItemHOReq ProtocolIE-ID ::= 27 +id-E-RABSetupListBearerSURes ProtocolIE-ID ::= 28 +id-E-RABFailedToSetupListBearerSURes ProtocolIE-ID ::= 29 +id-E-RABToBeModifiedListBearerModReq ProtocolIE-ID ::= 30 +id-E-RABModifyListBearerModRes ProtocolIE-ID ::= 31 +id-E-RABFailedToModifyList ProtocolIE-ID ::= 32 +id-E-RABToBeReleasedList ProtocolIE-ID ::= 33 +id-E-RABFailedToReleaseList ProtocolIE-ID ::= 34 +id-E-RABItem ProtocolIE-ID ::= 35 +id-E-RABToBeModifiedItemBearerModReq ProtocolIE-ID ::= 36 +id-E-RABModifyItemBearerModRes ProtocolIE-ID ::= 37 +id-E-RABReleaseItem ProtocolIE-ID ::= 38 +id-E-RABSetupItemBearerSURes ProtocolIE-ID ::= 39 +id-SecurityContext ProtocolIE-ID ::= 40 +id-HandoverRestrictionList ProtocolIE-ID ::= 41 +id-UEPagingID ProtocolIE-ID ::= 43 +id-pagingDRX ProtocolIE-ID ::= 44 +id-TAIList ProtocolIE-ID ::= 46 +id-TAIItem ProtocolIE-ID ::= 47 +id-E-RABFailedToSetupListCtxtSURes ProtocolIE-ID ::= 48 +id-E-RABReleaseItemHOCmd ProtocolIE-ID ::= 49 +id-E-RABSetupItemCtxtSURes ProtocolIE-ID ::= 50 +id-E-RABSetupListCtxtSURes ProtocolIE-ID ::= 51 +id-E-RABToBeSetupItemCtxtSUReq ProtocolIE-ID ::= 52 +id-E-RABToBeSetupListHOReq ProtocolIE-ID ::= 53 +id-GERANtoLTEHOInformationRes ProtocolIE-ID ::= 55 +id-UTRANtoLTEHOInformationRes ProtocolIE-ID ::= 57 +id-CriticalityDiagnostics ProtocolIE-ID ::= 58 +id-Global-ENB-ID ProtocolIE-ID ::= 59 +id-eNBname ProtocolIE-ID ::= 60 +id-MMEname ProtocolIE-ID ::= 61 +id-ServedPLMNs ProtocolIE-ID ::= 63 +id-SupportedTAs ProtocolIE-ID ::= 64 +id-TimeToWait ProtocolIE-ID ::= 65 +id-uEaggregateMaximumBitrate ProtocolIE-ID ::= 66 +id-TAI ProtocolIE-ID ::= 67 +id-E-RABReleaseListBearerRelComp ProtocolIE-ID ::= 69 +id-cdma2000PDU ProtocolIE-ID ::= 70 +id-cdma2000RATType ProtocolIE-ID ::= 71 +id-cdma2000SectorID ProtocolIE-ID ::= 72 +id-SecurityKey ProtocolIE-ID ::= 73 +id-UERadioCapability ProtocolIE-ID ::= 74 +id-GUMMEI-ID ProtocolIE-ID ::= 75 +id-E-RABInformationListItem ProtocolIE-ID ::= 78 +id-Direct-Forwarding-Path-Availability ProtocolIE-ID ::= 79 +id-UEIdentityIndexValue ProtocolIE-ID ::= 80 +id-cdma2000HOStatus ProtocolIE-ID ::= 83 +id-cdma2000HORequiredIndication ProtocolIE-ID ::= 84 +id-E-UTRAN-Trace-ID ProtocolIE-ID ::= 86 +id-RelativeMMECapacity ProtocolIE-ID ::= 87 +id-SourceMME-UE-S1AP-ID ProtocolIE-ID ::= 88 +id-Bearers-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 89 +id-eNB-StatusTransfer-TransparentContainer ProtocolIE-ID ::= 90 +id-UE-associatedLogicalS1-ConnectionItem ProtocolIE-ID ::= 91 +id-ResetType ProtocolIE-ID ::= 92 +id-UE-associatedLogicalS1-ConnectionListResAck ProtocolIE-ID ::= 93 +id-E-RABToBeSwitchedULItem ProtocolIE-ID ::= 94 +id-E-RABToBeSwitchedULList ProtocolIE-ID ::= 95 +id-S-TMSI ProtocolIE-ID ::= 96 +id-cdma2000OneXRAND ProtocolIE-ID ::= 97 +id-RequestType ProtocolIE-ID ::= 98 +id-UE-S1AP-IDs ProtocolIE-ID ::= 99 +id-EUTRAN-CGI ProtocolIE-ID ::= 100 +id-OverloadResponse ProtocolIE-ID ::= 101 +id-cdma2000OneXSRVCCInfo ProtocolIE-ID ::= 102 +id-E-RABFailedToBeReleasedList ProtocolIE-ID ::= 103 +id-Source-ToTarget-TransparentContainer ProtocolIE-ID ::= 104 +id-ServedGUMMEIs ProtocolIE-ID ::= 105 +id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 106 +id-UESecurityCapabilities ProtocolIE-ID ::= 107 +id-CSFallbackIndicator ProtocolIE-ID ::= 108 +id-CNDomain ProtocolIE-ID ::= 109 +id-E-RABReleasedList ProtocolIE-ID ::= 110 +id-MessageIdentifier ProtocolIE-ID ::= 111 +id-SerialNumber ProtocolIE-ID ::= 112 +id-WarningAreaList ProtocolIE-ID ::= 113 +id-RepetitionPeriod ProtocolIE-ID ::= 114 +id-NumberofBroadcastRequest ProtocolIE-ID ::= 115 +id-WarningType ProtocolIE-ID ::= 116 +id-WarningSecurityInfo ProtocolIE-ID ::= 117 +id-DataCodingScheme ProtocolIE-ID ::= 118 +id-WarningMessageContents ProtocolIE-ID ::= 119 +id-BroadcastCompletedAreaList ProtocolIE-ID ::= 120 +id-Inter-SystemInformationTransferTypeEDT ProtocolIE-ID ::= 121 +id-Inter-SystemInformationTransferTypeMDT ProtocolIE-ID ::= 122 +id-Target-ToSource-TransparentContainer ProtocolIE-ID ::= 123 +id-SRVCCOperationPossible ProtocolIE-ID ::= 124 +id-SRVCCHOIndication ProtocolIE-ID ::= 125 +id-NAS-DownlinkCount ProtocolIE-ID ::= 126 +id-CSG-Id ProtocolIE-ID ::= 127 +id-CSG-IdList ProtocolIE-ID ::= 128 +id-SONConfigurationTransferECT ProtocolIE-ID ::= 129 +id-SONConfigurationTransferMCT ProtocolIE-ID ::= 130 +id-TraceCollectionEntityIPAddress ProtocolIE-ID ::= 131 +id-MSClassmark2 ProtocolIE-ID ::= 132 +id-MSClassmark3 ProtocolIE-ID ::= 133 +id-RRC-Establishment-Cause ProtocolIE-ID ::= 134 +id-NASSecurityParametersfromE-UTRAN ProtocolIE-ID ::= 135 +id-NASSecurityParameterstoE-UTRAN ProtocolIE-ID ::= 136 +id-DefaultPagingDRX ProtocolIE-ID ::= 137 +id-Source-ToTarget-TransparentContainer-Secondary ProtocolIE-ID ::= 138 +id-Target-ToSource-TransparentContainer-Secondary ProtocolIE-ID ::= 139 +END + + +-- ************************************************************** +-- +-- Container definitions +-- +-- ************************************************************** + +S1AP-Containers { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Containers (5) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + Presence, + PrivateIE-ID, + ProtocolExtensionID, + ProtocolIE-ID +FROM S1AP-CommonDataTypes + + maxPrivateIEs, + maxProtocolExtensions, + maxProtocolIEs +FROM S1AP-Constants; + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +S1AP-PROTOCOL-IES ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +S1AP-PROTOCOL-IES-PAIR ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &firstCriticality Criticality, + &FirstValue, + &secondCriticality Criticality, + &SecondValue, + &presence Presence +} +WITH SYNTAX { + ID &id + FIRST CRITICALITY &firstCriticality + FIRST TYPE &FirstValue + SECOND CRITICALITY &secondCriticality + SECOND TYPE &SecondValue + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol Extensions +-- +-- ************************************************************** + +S1AP-PROTOCOL-EXTENSION ::= CLASS { + &id ProtocolExtensionID UNIQUE, + &criticality Criticality, + &Extension, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + EXTENSION &Extension + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Private IEs +-- +-- ************************************************************** + +S1AP-PRIVATE-IES ::= CLASS { + &id PrivateIE-ID, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Container for Protocol IEs +-- +-- ************************************************************** + +ProtocolIE-Container {S1AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-SingleContainer {S1AP-PROTOCOL-IES : IEsSetParam} ::= + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Field {S1AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-IES.&id ({IEsSetParam}), + criticality S1AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), + value S1AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Protocol IE Pairs +-- +-- ************************************************************** + +ProtocolIE-ContainerPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-FieldPair {{IEsSetParam}} + +ProtocolIE-FieldPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), + firstCriticality S1AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), + firstValue S1AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), + secondCriticality S1AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), + secondValue S1AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container Lists for Protocol IE Containers +-- +-- ************************************************************** + +ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-SingleContainer {{IEsSetParam}} + +ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-ContainerPair {{IEsSetParam}} + +-- ************************************************************** +-- +-- Container for Protocol Extensions +-- +-- ************************************************************** + +ProtocolExtensionContainer {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= + SEQUENCE (SIZE (1..maxProtocolExtensions)) OF + ProtocolExtensionField {{ExtensionSetParam}} + +ProtocolExtensionField {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), + criticality S1AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), + extensionValue S1AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Private IEs +-- +-- ************************************************************** + +PrivateIE-Container {S1AP-PRIVATE-IES : IEsSetParam } ::= + SEQUENCE (SIZE (1.. maxPrivateIEs)) OF + PrivateIE-Field {{IEsSetParam}} + +PrivateIE-Field {S1AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { + id S1AP-PRIVATE-IES.&id ({IEsSetParam}), + criticality S1AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), + value S1AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) +} + +END + + diff --git a/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-CommonDataTypes.asn b/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-CommonDataTypes.asn deleted file mode 100644 index b1295c34ff..0000000000 --- a/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-CommonDataTypes.asn +++ /dev/null @@ -1,217 +0,0 @@ --- ************************************************************** --- --- Common definitions --- --- ************************************************************** - -S1AP-CommonDataTypes { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-CommonDataTypes (3) } - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - -Criticality ::= ENUMERATED { reject, ignore, notify } - -Presence ::= ENUMERATED { optional, conditional, mandatory } - -PrivateIE-ID ::= CHOICE { - local INTEGER (0..65535), - global OBJECT IDENTIFIER -} - -ProcedureCode ::= INTEGER { - id-HandoverPreparation(0), - id-HandoverResourceAllocation(1), - id-HandoverNotification(2), - id-PathSwitchRequest(3), - id-HandoverCancel(4), - id-E-RABSetup(5), - id-E-RABModify(6), - id-E-RABRelease(7), - id-E-RABReleaseIndication(8), - id-InitialContextSetup(9), - id-Paging(10), - id-downlinkNASTransport(11), - id-initialUEMessage(12), - id-uplinkNASTransport(13), - id-Reset(14), - id-ErrorIndication(15), - id-NASNonDeliveryIndication(16), - id-S1Setup(17), - id-UEContextReleaseRequest(18), - id-DownlinkS1cdma2000tunneling(19), - id-UplinkS1cdma2000tunneling(20), - id-UEContextModification(21), - id-UECapabilityInfoIndication(22), - id-UEContextRelease(23), - id-eNBStatusTransfer(24), - id-MMEStatusTransfer(25), - id-DeactivateTrace(26), - id-TraceStart(27), - id-TraceFailureIndication(28), - id-ENBConfigurationUpdate(29), - id-MMEConfigurationUpdate(30), - id-LocationReportingControl(31), - id-LocationReportingFailureIndication(32), - id-LocationReport(33), - id-OverloadStart(34), - id-OverloadStop(35), - id-WriteReplaceWarning(36), - id-eNBDirectInformationTransfer(37), - id-MMEDirectInformationTransfer(38), - id-PrivateMessage(39), - id-eNBConfigurationTransfer(40), - id-MMEConfigurationTransfer(41), - id-CellTrafficTrace(42), - id-Kill(43), - id-downlinkUEAssociatedLPPaTransport(44), - id-uplinkUEAssociatedLPPaTransport(45), - id-downlinkNonUEAssociatedLPPaTransport(46), - id-uplinkNonUEAssociatedLPPaTransport(47) -} (0..255) - -ProtocolExtensionID ::= INTEGER (0..65535) - -ProtocolIE-ID ::= INTEGER { - id-MME-UE-S1AP-ID(0), - id-HandoverType(1), - id-Cause(2), - id-SourceID(3), - id-TargetID (4), - id-eNB-UE-S1AP-ID(8), - id-E-RABSubjecttoDataForwardingList(12), - id-E-RABtoReleaseListHOCmd(13), - id-E-RABDataForwardingItem(14), - id-E-RABReleaseItemBearerRelComp(15), - id-E-RABToBeSetupListBearerSUReq(16), - id-E-RABToBeSetupItemBearerSUReq(17), - id-E-RABAdmittedList(18), - id-E-RABFailedToSetupListHOReqAck(19), - id-E-RABAdmittedItem(20), - id-E-RABFailedtoSetupItemHOReqAck(21), - id-E-RABToBeSwitchedDLList(22), - id-E-RABToBeSwitchedDLItem(23), - id-E-RABToBeSetupListCtxtSUReq(24), - id-TraceActivation(25), - id-NAS-PDU(26), - id-E-RABToBeSetupItemHOReq(27), - id-E-RABSetupListBearerSURes(28), - id-E-RABFailedToSetupListBearerSURes(29), - id-E-RABToBeModifiedListBearerModReq(30), - id-E-RABModifyListBearerModRes(31), - id-E-RABFailedToModifyList(32), - id-E-RABToBeReleasedList(33), - id-E-RABFailedToReleaseList(34), - id-E-RABItem(35), - id-E-RABToBeModifiedItemBearerModReq(36), - id-E-RABModifyItemBearerModRes(37), - id-E-RABReleaseItem(38), - id-E-RABSetupItemBearerSURes(39), - id-SecurityContext(40), - id-HandoverRestrictionList(41), - id-UEPagingID(43), - id-pagingDRX(44), - id-TAIList(46), - id-TAIItem(47), - id-E-RABFailedToSetupListCtxtSURes(48), - id-E-RABReleaseItemHOCmd(49), - id-E-RABSetupItemCtxtSURes(50), - id-E-RABSetupListCtxtSURes(51), - id-E-RABToBeSetupItemCtxtSUReq(52), - id-E-RABToBeSetupListHOReq(53), - id-GERANtoLTEHOInformationRes(55), - id-UTRANtoLTEHOInformationRes(57), - id-CriticalityDiagnostics(58), - id-Global-ENB-ID(59), - id-eNBname(60), - id-MMEname(61), - id-ServedPLMNs(63), - id-SupportedTAs(64), - id-TimeToWait(65), - id-uEaggregateMaximumBitrate(66), - id-TAI(67), - id-E-RABReleaseListBearerRelComp(69), - id-cdma2000PDU(70), - id-cdma2000RATType(71), - id-cdma2000SectorID(72), - id-SecurityKey(73), - id-UERadioCapability(74), - id-GUMMEI-ID(75), - id-E-RABInformationListItem(78), - id-Direct-Forwarding-Path-Availability(79), - id-UEIdentityIndexValue(80), - id-cdma2000HOStatus(83), - id-cdma2000HORequiredIndication(84), - id-E-UTRAN-Trace-ID(86), - id-RelativeMMECapacity(87), - id-SourceMME-UE-S1AP-ID(88), - id-Bearers-SubjectToStatusTransfer-Item(89), - id-eNB-StatusTransfer-TransparentContainer(90), - id-UE-associatedLogicalS1-ConnectionItem(91), - id-ResetType(92), - id-UE-associatedLogicalS1-ConnectionListResAck(93), - id-E-RABToBeSwitchedULItem(94), - id-E-RABToBeSwitchedULList(95), - id-S-TMSI(96), - id-cdma2000OneXRAND(97), - id-RequestType(98), - id-UE-S1AP-IDs(99), - id-EUTRAN-CGI(100), - id-OverloadResponse(101), - id-cdma2000OneXSRVCCInfo(102), - id-E-RABFailedToBeReleasedList(103), - id-Source-ToTarget-TransparentContainer(104), - id-ServedGUMMEIs(105), - id-SubscriberProfileIDforRFP(106), - id-UESecurityCapabilities(107), - id-CSFallbackIndicator(108), - id-CNDomain(109), - id-E-RABReleasedList(110), - id-MessageIdentifier(111), - id-SerialNumber(112), - id-WarningAreaList(113), - id-RepetitionPeriod(114), - id-NumberofBroadcastRequest(115), - id-WarningType(116), - id-WarningSecurityInfo(117), - id-DataCodingScheme(118), - id-WarningMessageContents(119), - id-BroadcastCompletedAreaList(120), - id-Inter-SystemInformationTransferTypeEDT(121), - id-Inter-SystemInformationTransferTypeMDT(122), - id-Target-ToSource-TransparentContainer(123), - id-SRVCCOperationPossible(124), - id-SRVCCHOIndication(125), - id-NAS-DownlinkCount(126), - id-CSG-Id(127), - id-CSG-IdList(128), - id-SONConfigurationTransferECT(129), - id-SONConfigurationTransferMCT(130), - id-TraceCollectionEntityIPAddress(131), - id-MSClassmark2(132), - id-MSClassmark3(133), - id-RRC-Establishment-Cause(134), - id-NASSecurityParametersfromE-UTRAN(135), - id-NASSecurityParameterstoE-UTRAN(136), - id-DefaultPagingDRX(137), - id-Source-ToTarget-TransparentContainer-Secondary(138), - id-Target-ToSource-TransparentContainer-Secondary(139), - id-EUTRANRoundTripDelayEstimationInfo(140), - id-BroadcastCancelledAreaList(141), - id-ConcurrentWarningMessageIndicator(142), - id-Data-Forwarding-Not-Possible(143), - id-ExtendedRepetitionPeriod(144), - id-CellAccessMode(145), - id-CSGMembershipStatus(146), - id-LPPa-PDU(147), - id-Routing-ID(148), - id-Time-Synchronization-Info(149), - id-PS-ServiceNotAvailable(150), - id-RegisteredLAI(159) -} (0..65535) - -TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome } - -END \ No newline at end of file diff --git a/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-Constants.asn b/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-Constants.asn deleted file mode 100644 index d8b56eebb8..0000000000 --- a/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-Constants.asn +++ /dev/null @@ -1,265 +0,0 @@ --- ************************************************************** --- --- Constant definitions --- --- ************************************************************** - -S1AP-Constants { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Constants (4) } - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - --- ************************************************************** --- --- IE parameter types from other modules. --- --- ************************************************************** - -IMPORTS - ProcedureCode, - ProtocolIE-ID - -FROM S1AP-CommonDataTypes; - - --- ************************************************************** --- --- Elementary Procedures --- --- ************************************************************** - -id-HandoverPreparation ProcedureCode ::= 0 -id-HandoverResourceAllocation ProcedureCode ::= 1 -id-HandoverNotification ProcedureCode ::= 2 -id-PathSwitchRequest ProcedureCode ::= 3 -id-HandoverCancel ProcedureCode ::= 4 -id-E-RABSetup ProcedureCode ::= 5 -id-E-RABModify ProcedureCode ::= 6 -id-E-RABRelease ProcedureCode ::= 7 -id-E-RABReleaseIndication ProcedureCode ::= 8 -id-InitialContextSetup ProcedureCode ::= 9 -id-Paging ProcedureCode ::= 10 -id-downlinkNASTransport ProcedureCode ::= 11 -id-initialUEMessage ProcedureCode ::= 12 -id-uplinkNASTransport ProcedureCode ::= 13 -id-Reset ProcedureCode::= 14 -id-ErrorIndication ProcedureCode ::= 15 -id-NASNonDeliveryIndication ProcedureCode ::= 16 -id-S1Setup ProcedureCode ::= 17 -id-UEContextReleaseRequest ProcedureCode ::= 18 -id-DownlinkS1cdma2000tunneling ProcedureCode ::= 19 -id-UplinkS1cdma2000tunneling ProcedureCode ::= 20 -id-UEContextModification ProcedureCode ::= 21 -id-UECapabilityInfoIndication ProcedureCode ::= 22 -id-UEContextRelease ProcedureCode ::= 23 -id-eNBStatusTransfer ProcedureCode ::= 24 -id-MMEStatusTransfer ProcedureCode ::= 25 -id-DeactivateTrace ProcedureCode ::= 26 -id-TraceStart ProcedureCode ::= 27 -id-TraceFailureIndication ProcedureCode ::= 28 -id-ENBConfigurationUpdate ProcedureCode ::= 29 -id-MMEConfigurationUpdate ProcedureCode ::= 30 -id-LocationReportingControl ProcedureCode ::= 31 -id-LocationReportingFailureIndication ProcedureCode ::= 32 -id-LocationReport ProcedureCode ::= 33 -id-OverloadStart ProcedureCode ::= 34 -id-OverloadStop ProcedureCode ::= 35 -id-WriteReplaceWarning ProcedureCode ::= 36 -id-eNBDirectInformationTransfer ProcedureCode ::= 37 -id-MMEDirectInformationTransfer ProcedureCode ::= 38 -id-PrivateMessage ProcedureCode ::= 39 -id-eNBConfigurationTransfer ProcedureCode ::= 40 -id-MMEConfigurationTransfer ProcedureCode ::= 41 -id-CellTrafficTrace ProcedureCode ::= 42 -id-Kill ProcedureCode ::= 43 -id-downlinkUEAssociatedLPPaTransport ProcedureCode ::= 44 -id-uplinkUEAssociatedLPPaTransport ProcedureCode ::= 45 -id-downlinkNonUEAssociatedLPPaTransport ProcedureCode ::= 46 -id-uplinkNonUEAssociatedLPPaTransport ProcedureCode ::= 47 - --- ************************************************************** --- --- Extension constants --- --- ************************************************************** - -maxPrivateIEs INTEGER ::= 65535 -maxProtocolExtensions INTEGER ::= 65535 -maxProtocolIEs INTEGER ::= 65535 --- ************************************************************** --- --- Lists --- --- ************************************************************** - -maxNrOfCSGs INTEGER ::= 256 -maxNrOfE-RABs INTEGER ::= 256 -maxnoofTAIs INTEGER ::= 256 -maxnoofTACs INTEGER ::= 256 -maxNrOfErrors INTEGER ::= 256 -maxnoofBPLMNs INTEGER ::= 6 -maxnoofPLMNsPerMME INTEGER ::= 32 -maxnoofEPLMNs INTEGER ::= 15 -maxnoofEPLMNsPlusOne INTEGER ::= 16 -maxnoofForbLACs INTEGER ::= 4096 -maxnoofForbTACs INTEGER ::= 4096 -maxNrOfIndividualS1ConnectionsToReset INTEGER ::= 256 -maxnoofCells INTEGER ::= 16 -maxnoofTAIforWarning INTEGER ::= 65535 -maxnoofCellID INTEGER ::= 65535 -maxnoofEmergencyAreaID INTEGER ::= 65535 -maxnoofCellinTAI INTEGER ::= 65535 -maxnoofCellinEAI INTEGER ::= 65535 -maxnoofeNBX2TLAs INTEGER ::= 2 -maxnoofRATs INTEGER ::= 8 -maxnoofGroupIDs INTEGER ::= 65535 -maxnoofMMECs INTEGER ::= 256 - - - --- ************************************************************** --- --- IEs --- --- ************************************************************** - -id-MME-UE-S1AP-ID ProtocolIE-ID ::= 0 -id-HandoverType ProtocolIE-ID ::= 1 -id-Cause ProtocolIE-ID ::= 2 -id-SourceID ProtocolIE-ID ::= 3 -id-TargetID ProtocolIE-ID ::= 4 -id-eNB-UE-S1AP-ID ProtocolIE-ID ::= 8 -id-E-RABSubjecttoDataForwardingList ProtocolIE-ID ::= 12 -id-E-RABtoReleaseListHOCmd ProtocolIE-ID ::= 13 -id-E-RABDataForwardingItem ProtocolIE-ID ::= 14 -id-E-RABReleaseItemBearerRelComp ProtocolIE-ID ::= 15 -id-E-RABToBeSetupListBearerSUReq ProtocolIE-ID ::= 16 -id-E-RABToBeSetupItemBearerSUReq ProtocolIE-ID ::= 17 -id-E-RABAdmittedList ProtocolIE-ID ::= 18 -id-E-RABFailedToSetupListHOReqAck ProtocolIE-ID ::= 19 -id-E-RABAdmittedItem ProtocolIE-ID ::= 20 -id-E-RABFailedtoSetupItemHOReqAck ProtocolIE-ID ::= 21 -id-E-RABToBeSwitchedDLList ProtocolIE-ID ::= 22 -id-E-RABToBeSwitchedDLItem ProtocolIE-ID ::= 23 -id-E-RABToBeSetupListCtxtSUReq ProtocolIE-ID ::= 24 -id-TraceActivation ProtocolIE-ID ::= 25 -id-NAS-PDU ProtocolIE-ID ::= 26 -id-E-RABToBeSetupItemHOReq ProtocolIE-ID ::= 27 -id-E-RABSetupListBearerSURes ProtocolIE-ID ::= 28 -id-E-RABFailedToSetupListBearerSURes ProtocolIE-ID ::= 29 -id-E-RABToBeModifiedListBearerModReq ProtocolIE-ID ::= 30 -id-E-RABModifyListBearerModRes ProtocolIE-ID ::= 31 -id-E-RABFailedToModifyList ProtocolIE-ID ::= 32 -id-E-RABToBeReleasedList ProtocolIE-ID ::= 33 -id-E-RABFailedToReleaseList ProtocolIE-ID ::= 34 -id-E-RABItem ProtocolIE-ID ::= 35 -id-E-RABToBeModifiedItemBearerModReq ProtocolIE-ID ::= 36 -id-E-RABModifyItemBearerModRes ProtocolIE-ID ::= 37 -id-E-RABReleaseItem ProtocolIE-ID ::= 38 -id-E-RABSetupItemBearerSURes ProtocolIE-ID ::= 39 -id-SecurityContext ProtocolIE-ID ::= 40 -id-HandoverRestrictionList ProtocolIE-ID ::= 41 -id-UEPagingID ProtocolIE-ID ::= 43 -id-pagingDRX ProtocolIE-ID ::= 44 -id-TAIList ProtocolIE-ID ::= 46 -id-TAIItem ProtocolIE-ID ::= 47 -id-E-RABFailedToSetupListCtxtSURes ProtocolIE-ID ::= 48 -id-E-RABReleaseItemHOCmd ProtocolIE-ID ::= 49 -id-E-RABSetupItemCtxtSURes ProtocolIE-ID ::= 50 -id-E-RABSetupListCtxtSURes ProtocolIE-ID ::= 51 -id-E-RABToBeSetupItemCtxtSUReq ProtocolIE-ID ::= 52 -id-E-RABToBeSetupListHOReq ProtocolIE-ID ::= 53 -id-GERANtoLTEHOInformationRes ProtocolIE-ID ::= 55 -id-UTRANtoLTEHOInformationRes ProtocolIE-ID ::= 57 -id-CriticalityDiagnostics ProtocolIE-ID ::= 58 -id-Global-ENB-ID ProtocolIE-ID ::= 59 -id-eNBname ProtocolIE-ID ::= 60 -id-MMEname ProtocolIE-ID ::= 61 -id-ServedPLMNs ProtocolIE-ID ::= 63 -id-SupportedTAs ProtocolIE-ID ::= 64 -id-TimeToWait ProtocolIE-ID ::= 65 -id-uEaggregateMaximumBitrate ProtocolIE-ID ::= 66 -id-TAI ProtocolIE-ID ::= 67 -id-E-RABReleaseListBearerRelComp ProtocolIE-ID ::= 69 -id-cdma2000PDU ProtocolIE-ID ::= 70 -id-cdma2000RATType ProtocolIE-ID ::= 71 -id-cdma2000SectorID ProtocolIE-ID ::= 72 -id-SecurityKey ProtocolIE-ID ::= 73 -id-UERadioCapability ProtocolIE-ID ::= 74 -id-GUMMEI-ID ProtocolIE-ID ::= 75 -id-E-RABInformationListItem ProtocolIE-ID ::= 78 -id-Direct-Forwarding-Path-Availability ProtocolIE-ID ::= 79 -id-UEIdentityIndexValue ProtocolIE-ID ::= 80 -id-cdma2000HOStatus ProtocolIE-ID ::= 83 -id-cdma2000HORequiredIndication ProtocolIE-ID ::= 84 -id-E-UTRAN-Trace-ID ProtocolIE-ID ::= 86 -id-RelativeMMECapacity ProtocolIE-ID ::= 87 -id-SourceMME-UE-S1AP-ID ProtocolIE-ID ::= 88 -id-Bearers-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 89 -id-eNB-StatusTransfer-TransparentContainer ProtocolIE-ID ::= 90 -id-UE-associatedLogicalS1-ConnectionItem ProtocolIE-ID ::= 91 -id-ResetType ProtocolIE-ID ::= 92 -id-UE-associatedLogicalS1-ConnectionListResAck ProtocolIE-ID ::= 93 -id-E-RABToBeSwitchedULItem ProtocolIE-ID ::= 94 -id-E-RABToBeSwitchedULList ProtocolIE-ID ::= 95 -id-S-TMSI ProtocolIE-ID ::= 96 -id-cdma2000OneXRAND ProtocolIE-ID ::= 97 -id-RequestType ProtocolIE-ID ::= 98 -id-UE-S1AP-IDs ProtocolIE-ID ::= 99 -id-EUTRAN-CGI ProtocolIE-ID ::= 100 -id-OverloadResponse ProtocolIE-ID ::= 101 -id-cdma2000OneXSRVCCInfo ProtocolIE-ID ::= 102 -id-E-RABFailedToBeReleasedList ProtocolIE-ID ::= 103 -id-Source-ToTarget-TransparentContainer ProtocolIE-ID ::= 104 -id-ServedGUMMEIs ProtocolIE-ID ::= 105 -id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 106 -id-UESecurityCapabilities ProtocolIE-ID ::= 107 -id-CSFallbackIndicator ProtocolIE-ID ::= 108 -id-CNDomain ProtocolIE-ID ::= 109 -id-E-RABReleasedList ProtocolIE-ID ::= 110 -id-MessageIdentifier ProtocolIE-ID ::= 111 -id-SerialNumber ProtocolIE-ID ::= 112 -id-WarningAreaList ProtocolIE-ID ::= 113 -id-RepetitionPeriod ProtocolIE-ID ::= 114 -id-NumberofBroadcastRequest ProtocolIE-ID ::= 115 -id-WarningType ProtocolIE-ID ::= 116 -id-WarningSecurityInfo ProtocolIE-ID ::= 117 -id-DataCodingScheme ProtocolIE-ID ::= 118 -id-WarningMessageContents ProtocolIE-ID ::= 119 -id-BroadcastCompletedAreaList ProtocolIE-ID ::= 120 -id-Inter-SystemInformationTransferTypeEDT ProtocolIE-ID ::= 121 -id-Inter-SystemInformationTransferTypeMDT ProtocolIE-ID ::= 122 -id-Target-ToSource-TransparentContainer ProtocolIE-ID ::= 123 -id-SRVCCOperationPossible ProtocolIE-ID ::= 124 -id-SRVCCHOIndication ProtocolIE-ID ::= 125 -id-NAS-DownlinkCount ProtocolIE-ID ::= 126 -id-CSG-Id ProtocolIE-ID ::= 127 -id-CSG-IdList ProtocolIE-ID ::= 128 -id-SONConfigurationTransferECT ProtocolIE-ID ::= 129 -id-SONConfigurationTransferMCT ProtocolIE-ID ::= 130 -id-TraceCollectionEntityIPAddress ProtocolIE-ID ::= 131 -id-MSClassmark2 ProtocolIE-ID ::= 132 -id-MSClassmark3 ProtocolIE-ID ::= 133 -id-RRC-Establishment-Cause ProtocolIE-ID ::= 134 -id-NASSecurityParametersfromE-UTRAN ProtocolIE-ID ::= 135 -id-NASSecurityParameterstoE-UTRAN ProtocolIE-ID ::= 136 -id-DefaultPagingDRX ProtocolIE-ID ::= 137 -id-Source-ToTarget-TransparentContainer-Secondary ProtocolIE-ID ::= 138 -id-Target-ToSource-TransparentContainer-Secondary ProtocolIE-ID ::= 139 -id-EUTRANRoundTripDelayEstimationInfo ProtocolIE-ID ::= 140 -id-BroadcastCancelledAreaList ProtocolIE-ID ::= 141 -id-ConcurrentWarningMessageIndicator ProtocolIE-ID ::= 142 -id-Data-Forwarding-Not-Possible ProtocolIE-ID ::= 143 -id-ExtendedRepetitionPeriod ProtocolIE-ID ::= 144 -id-CellAccessMode ProtocolIE-ID ::= 145 -id-CSGMembershipStatus ProtocolIE-ID ::= 146 -id-LPPa-PDU ProtocolIE-ID ::= 147 -id-Routing-ID ProtocolIE-ID ::= 148 -id-Time-Synchronization-Info ProtocolIE-ID ::= 149 -id-PS-ServiceNotAvailable ProtocolIE-ID ::= 150 -id-RegisteredLAI ProtocolIE-ID ::= 159 - -END \ No newline at end of file diff --git a/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-Containers.asn b/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-Containers.asn deleted file mode 100644 index 1e356a29a4..0000000000 --- a/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-Containers.asn +++ /dev/null @@ -1,197 +0,0 @@ --- ************************************************************** --- --- Container definitions --- --- ************************************************************** - -S1AP-Containers { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Containers (5) } - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - --- ************************************************************** --- --- IE parameter types from other modules. --- --- ************************************************************** - -IMPORTS - Criticality, - Presence, - PrivateIE-ID, - ProtocolExtensionID, - ProtocolIE-ID -FROM S1AP-CommonDataTypes - - maxPrivateIEs, - maxProtocolExtensions, - maxProtocolIEs -FROM S1AP-Constants; - --- ************************************************************** --- --- Class Definition for Protocol IEs --- --- ************************************************************** - -S1AP-PROTOCOL-IES ::= CLASS { - &id ProtocolIE-ID UNIQUE, - &criticality Criticality, - &Value, - &presence Presence -} -WITH SYNTAX { - ID &id - CRITICALITY &criticality - TYPE &Value - PRESENCE &presence -} - --- ************************************************************** --- --- Class Definition for Protocol IEs --- --- ************************************************************** - -S1AP-PROTOCOL-IES-PAIR ::= CLASS { - &id ProtocolIE-ID UNIQUE, - &firstCriticality Criticality, - &FirstValue, - &secondCriticality Criticality, - &SecondValue, - &presence Presence -} -WITH SYNTAX { - ID &id - FIRST CRITICALITY &firstCriticality - FIRST TYPE &FirstValue - SECOND CRITICALITY &secondCriticality - SECOND TYPE &SecondValue - PRESENCE &presence -} - --- ************************************************************** --- --- Class Definition for Protocol Extensions --- --- ************************************************************** - -S1AP-PROTOCOL-EXTENSION ::= CLASS { - &id ProtocolExtensionID UNIQUE, - &criticality Criticality, - &Extension, - &presence Presence -} -WITH SYNTAX { - ID &id - CRITICALITY &criticality - EXTENSION &Extension - PRESENCE &presence -} - --- ************************************************************** --- --- Class Definition for Private IEs --- --- ************************************************************** - -S1AP-PRIVATE-IES ::= CLASS { - &id PrivateIE-ID, - &criticality Criticality, - &Value, - &presence Presence -} -WITH SYNTAX { - ID &id - CRITICALITY &criticality - TYPE &Value - PRESENCE &presence -} - --- ************************************************************** --- --- Container for Protocol IEs --- --- ************************************************************** - -ProtocolIE-Container {S1AP-PROTOCOL-IES : IEsSetParam} ::= - SEQUENCE (SIZE (0..maxProtocolIEs)) OF - ProtocolIE-Field {{IEsSetParam}} - -ProtocolIE-SingleContainer {S1AP-PROTOCOL-IES : IEsSetParam} ::= - ProtocolIE-Field {{IEsSetParam}} - -ProtocolIE-Field {S1AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { - id S1AP-PROTOCOL-IES.&id ({IEsSetParam}), - criticality S1AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), - value S1AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) -} - --- ************************************************************** --- --- Container for Protocol IE Pairs --- --- ************************************************************** - -ProtocolIE-ContainerPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= - SEQUENCE (SIZE (0..maxProtocolIEs)) OF - ProtocolIE-FieldPair {{IEsSetParam}} - -ProtocolIE-FieldPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { - id S1AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), - firstCriticality S1AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), - firstValue S1AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), - secondCriticality S1AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), - secondValue S1AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) -} - --- ************************************************************** --- --- Container Lists for Protocol IE Containers --- --- ************************************************************** - -ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES : IEsSetParam} ::= - SEQUENCE (SIZE (lowerBound..upperBound)) OF - ProtocolIE-SingleContainer {{IEsSetParam}} - -ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= - SEQUENCE (SIZE (lowerBound..upperBound)) OF - ProtocolIE-ContainerPair {{IEsSetParam}} - --- ************************************************************** --- --- Container for Protocol Extensions --- --- ************************************************************** - -ProtocolExtensionContainer {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= - SEQUENCE (SIZE (1..maxProtocolExtensions)) OF - ProtocolExtensionField {{ExtensionSetParam}} - -ProtocolExtensionField {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { - id S1AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), - criticality S1AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), - extensionValue S1AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) -} - --- ************************************************************** --- --- Container for Private IEs --- --- ************************************************************** - -PrivateIE-Container {S1AP-PRIVATE-IES : IEsSetParam } ::= - SEQUENCE (SIZE (1.. maxPrivateIEs)) OF - PrivateIE-Field {{IEsSetParam}} - -PrivateIE-Field {S1AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { - id S1AP-PRIVATE-IES.&id ({IEsSetParam}), - criticality S1AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), - value S1AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) -} - -END \ No newline at end of file diff --git a/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-IEs.asn b/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-IEs.asn deleted file mode 100644 index 535aa91ee0..0000000000 --- a/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-IEs.asn +++ /dev/null @@ -1,1213 +0,0 @@ --- ************************************************************** --- --- Information Element Definitions --- --- ************************************************************** - -S1AP-IEs { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-IEs (2) } - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - -IMPORTS - id-E-RABInformationListItem, - id-E-RABItem, - id-Bearers-SubjectToStatusTransfer-Item, - id-Time-Synchronization-Info, - maxNrOfCSGs, - maxNrOfE-RABs, - maxNrOfErrors, - maxnoofBPLMNs, - maxnoofPLMNsPerMME, - maxnoofTACs, - maxnoofEPLMNs, - maxnoofEPLMNsPlusOne, - maxnoofForbLACs, - maxnoofForbTACs, - maxnoofCells, - maxnoofCellID, - maxnoofEmergencyAreaID, - maxnoofTAIforWarning, - maxnoofCellinTAI, - maxnoofCellinEAI, - maxnoofeNBX2TLAs, - maxnoofRATs, - maxnoofGroupIDs, - maxnoofMMECs, - maxProtocolExtensions, - maxnoofTAIs, - maxNrOfIndividualS1ConnectionsToReset - - -FROM S1AP-Constants - - IE -FROM S1AP-PDU - - Criticality, - ProcedureCode, - ProtocolIE-ID, - TriggeringMessage -FROM S1AP-CommonDataTypes; - -IE-Extensions ::= SEQUENCE (SIZE (1..maxProtocolExtensions)) OF IE - --- A - - -AllocationAndRetentionPriority ::= SEQUENCE { - priorityLevel PriorityLevel, - pre-emptionCapability Pre-emptionCapability, - pre-emptionVulnerability Pre-emptionVulnerability, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - --- B - -Bearers-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..maxNrOfE-RABs)) OF IE - -Bearers-SubjectToStatusTransfer-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - uL-COUNTvalue COUNTvalue, - dL-COUNTvalue COUNTvalue, - receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -BitRate ::= INTEGER (0..10000000000) - -BPLMNs ::= SEQUENCE (SIZE(1.. maxnoofBPLMNs)) OF PLMNidentity - -BroadcastCancelledAreaList ::= CHOICE { - cellID-Cancelled CellID-Cancelled, - tAI-Cancelled TAI-Cancelled, - emergencyAreaID-Cancelled EmergencyAreaID-Cancelled, - ... -} - -BroadcastCompletedAreaList ::= CHOICE { - cellID-Broadcast CellID-Broadcast, - tAI-Broadcast TAI-Broadcast, - emergencyAreaID-Broadcast EmergencyAreaID-Broadcast, - ... -} - - --- C - -CancelledCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CancelledCellinEAI-Item - -CancelledCellinEAI-Item ::= SEQUENCE { - eCGI EUTRAN-CGI, - numberOfBroadcasts NumberOfBroadcasts, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -CancelledCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CancelledCellinTAI-Item - -CancelledCellinTAI-Item ::= SEQUENCE{ - eCGI EUTRAN-CGI, - numberOfBroadcasts NumberOfBroadcasts, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -Cause ::= CHOICE { - radioNetwork CauseRadioNetwork, - transport CauseTransport, - nas CauseNas, - protocol CauseProtocol, - misc CauseMisc, - ... -} - -CauseMisc ::= ENUMERATED { - control-processing-overload, - not-enough-user-plane-processing-resources, - hardware-failure, - om-intervention, - unspecified, - unknown-PLMN, -... -} - -CauseProtocol ::= ENUMERATED { - transfer-syntax-error, - abstract-syntax-error-reject, - abstract-syntax-error-ignore-and-notify, - message-not-compatible-with-receiver-state, - semantic-error, - abstract-syntax-error-falsely-constructed-message, - unspecified, - ... -} - -CauseRadioNetwork ::= ENUMERATED { - unspecified, - tx2relocoverall-expiry, - successful-handover, - release-due-to-eutran-generated-reason, - handover-cancelled, - partial-handover, - ho-failure-in-target-EPC-eNB-or-target-system, - ho-target-not-allowed, - tS1relocoverall-expiry, - tS1relocprep-expiry, - cell-not-available, - unknown-targetID, - no-radio-resources-available-in-target-cell, - unknown-mme-ue-s1ap-id, - unknown-enb-ue-s1ap-id, - unknown-pair-ue-s1ap-id, - handover-desirable-for-radio-reason, - time-critical-handover, - resource-optimisation-handover, - reduce-load-in-serving-cell, - user-inactivity, - radio-connection-with-ue-lost, - load-balancing-tau-required, - cs-fallback-triggered, - ue-not-available-for-ps-service, - radio-resources-not-available, - failure-in-radio-interface-procedure, - invalid-qos-combination, - interrat-redirection, - interaction-with-other-procedure, - unknown-E-RAB-ID, - multiple-E-RAB-ID-instances, - encryption-and-or-integrity-protection-algorithms-not-supported, - s1-intra-system-handover-triggered, - s1-inter-system-handover-triggered, - x2-handover-triggered, - ..., - redirection-towards-1xRTT, - not-supported-QCI-value, - invalid-CSG-Id - -} - -CauseTransport ::= ENUMERATED { - transport-resource-unavailable, - unspecified, - ... -} - -CauseNas ::= ENUMERATED { - normal-release, - authentication-failure, - detach, - unspecified, - ..., - csg-subscription-expiry -} - -CellAccessMode ::= ENUMERATED { - hybrid, - ... -} - -CellIdentity ::= BIT STRING (SIZE (28)) - -CellID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Broadcast-Item - -CellID-Broadcast-Item ::= SEQUENCE { - eCGI EUTRAN-CGI, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -CellID-Cancelled::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Cancelled-Item - -CellID-Cancelled-Item ::= SEQUENCE { - eCGI EUTRAN-CGI, - numberOfBroadcasts NumberOfBroadcasts, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -Cdma2000PDU ::= OCTET STRING - -Cdma2000RATType ::= ENUMERATED { - hRPD, - onexRTT, - ... -} - -Cdma2000SectorID ::= OCTET STRING - -Cdma2000HOStatus ::= ENUMERATED { - hOSuccess, - hOFailure, - ... -} - -Cdma2000HORequiredIndication ::= ENUMERATED { - true, - ... -} - -Cdma2000OneXSRVCCInfo ::= SEQUENCE { - cdma2000OneXMEID Cdma2000OneXMEID, - cdma2000OneXMSI Cdma2000OneXMSI, - cdma2000OneXPilot Cdma2000OneXPilot, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -Cdma2000OneXMEID ::= OCTET STRING - -Cdma2000OneXMSI ::= OCTET STRING - -Cdma2000OneXPilot ::= OCTET STRING - -Cdma2000OneXRAND ::= OCTET STRING - - -Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ...} - -CellType ::= SEQUENCE { - cell-Size Cell-Size, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -CGI ::= SEQUENCE { - pLMNidentity PLMNidentity, - lAC LAC, - cI CI, - rAC RAC OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -CI ::= OCTET STRING (SIZE (2)) - -CNDomain ::= ENUMERATED { - ps, - cs -} - -ConcurrentWarningMessageIndicator ::= ENUMERATED { - true -} -CSFallbackIndicator ::= ENUMERATED { - cs-fallback-required, - ..., - cs-fallback-high-priority -} - -CSG-Id ::= BIT STRING (SIZE (27)) - - -CSG-IdList ::= SEQUENCE (SIZE (1..maxNrOfCSGs)) OF CSG-IdList-Item - -CSG-IdList-Item ::= SEQUENCE { - cSG-Id CSG-Id, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -CSGMembershipStatus ::= ENUMERATED { - member, - not-member -} - - -COUNTvalue ::= SEQUENCE { - pDCP-SN PDCP-SN, - hFN HFN, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -CriticalityDiagnostics ::= SEQUENCE { - procedureCode ProcedureCode OPTIONAL, - triggeringMessage TriggeringMessage OPTIONAL, - procedureCriticality Criticality OPTIONAL, - iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF CriticalityDiagnostics-IE-Item - -CriticalityDiagnostics-IE-Item ::= SEQUENCE { - iECriticality Criticality, - iE-ID ProtocolIE-ID, - typeOfError TypeOfError, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - --- D - -DataCodingScheme ::= BIT STRING (SIZE (8)) - -DL-Forwarding ::= ENUMERATED { - dL-Forwarding-proposed, - ... -} - -Direct-Forwarding-Path-Availability ::= ENUMERATED { - directPathAvailable, - ... -} - -Data-Forwarding-Not-Possible ::= ENUMERATED { - data-Forwarding-not-Possible, - ... -} - --- E - -ECGIList ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF EUTRAN-CGI - -EmergencyAreaIDList ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID - -EmergencyAreaID ::= OCTET STRING (SIZE (3)) - -EmergencyAreaID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Broadcast-Item - -EmergencyAreaID-Broadcast-Item ::= SEQUENCE { - emergencyAreaID EmergencyAreaID, - completedCellinEAI CompletedCellinEAI, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -EmergencyAreaID-Cancelled ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Cancelled-Item - -EmergencyAreaID-Cancelled-Item ::= SEQUENCE { - emergencyAreaID EmergencyAreaID, - cancelledCellinEAI CancelledCellinEAI, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABList ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF IE - -E-RABToBeSwitchedULList ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF IE - -E-RABToBeSwitchedDLList ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF IE - -E-RABToBeSetupListBearerSUReq ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF IE - -E-RABDataForwardingList ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF IE - -E-RABToBeSetupListHOReq ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF IE - -E-RABAdmittedList ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF IE - -E-RABFailedtoSetupListHOReqAck ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF IE - -E-RABToBeSetupListCtxtSUReq ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF IE - -E-RABSetupListBearerSURes ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF IE - -E-RABToBeModifiedListBearerModReq ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF IE - -E-RABSetupListCtxtSURes ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF IE - -E-RABReleaseListBearerRelComp ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF IE - -E-RABModifyListBearerModRes ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF IE - -E-RABModifyItemBearerModRes ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABToBeSetupItemCtxtSUReq ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RABlevelQoSParameters E-RABLevelQoSParameters, - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEID, - nAS-PDU NAS-PDU OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABToBeModifiedItemBearerModReq ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RABLevelQoSParameters E-RABLevelQoSParameters, - nAS-PDU NAS-PDU, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABSetupItemCtxtSURes ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEID, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABSetupItemBearerSURes ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEID, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABToBeSwitchedDLItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEID, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABToBeSwitchedULItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEID, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABToBeSetupItemHOReq ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEID, - e-RABlevelQosParameters E-RABLevelQoSParameters, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABToBeSetupItemBearerSUReq ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RABlevelQoSParameters E-RABLevelQoSParameters, - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEID, - nAS-PDU NAS-PDU, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABDataForwardingItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - dL-transportLayerAddress TransportLayerAddress OPTIONAL, - dL-gTP-TEID GTP-TEID OPTIONAL, - uL-TransportLayerAddress TransportLayerAddress OPTIONAL, - uL-GTP-TEID GTP-TEID OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABAdmittedItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEID, - dL-transportLayerAddress TransportLayerAddress OPTIONAL, - dL-gTP-TEID GTP-TEID OPTIONAL, - uL-TransportLayerAddress TransportLayerAddress OPTIONAL, - uL-GTP-TEID GTP-TEID OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABFailedToSetupItemHOReqAck ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - cause Cause, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABReleaseItemBearerRelComp ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -CompletedCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CompletedCellinEAI-Item - -CompletedCellinEAI-Item ::= SEQUENCE { - eCGI EUTRAN-CGI, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -ENB-ID ::= CHOICE { - macroENB-ID BIT STRING (SIZE(20)), - homeENB-ID BIT STRING (SIZE(28)), - ... -} - -GERAN-Cell-ID ::= SEQUENCE { - lAI LAI, - rAC RAC, - cI CI, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -Global-ENB-ID ::= SEQUENCE { - pLMNidentity PLMNidentity, - eNB-ID ENB-ID, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -ENB-StatusTransfer-TransparentContainer ::= SEQUENCE { - bearers-SubjectToStatusTransfer-List Bearers-SubjectToStatusTransfer-List, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -ENB-UE-S1AP-ID ::= INTEGER (0..16777215) - -ENBname ::= PrintableString (SIZE (1..150,...)) - -ENBX2TLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2TLAs)) OF TransportLayerAddress - -EncryptionAlgorithms ::= BIT STRING (SIZE (16,...)) - -EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMNidentity -EventType ::= ENUMERATED { - direct, - change-of-serve-cell, - stop-change-of-serve-cell, - ... -} - -E-RAB-ID ::= INTEGER (0..15, ...) - -E-RABInformationListItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - dL-Forwarding DL-Forwarding OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - cause Cause, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABLevelQoSParameters ::= SEQUENCE { - qCI QCI, - allocationRetentionPriority AllocationAndRetentionPriority, - gbrQosInformation GBR-QosInformation OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -EUTRAN-CGI ::= SEQUENCE { - pLMNidentity PLMNidentity, - cell-ID CellIdentity, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -EUTRANRoundTripDelayEstimationInfo ::= INTEGER (0..2047) - -ExtendedRNC-ID ::= INTEGER (4096..65535) - -ExtendedRepetitionPeriod ::= INTEGER (4096..131071) - --- F - -ForbiddenInterRATs ::= ENUMERATED { - all, - geran, - utran, - cdma2000, - ..., - geranandutran, - cdma2000andutran - -} - -ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item - -ForbiddenTAs-Item ::= SEQUENCE { - pLMN-Identity PLMNidentity, - forbiddenTACs ForbiddenTACs, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC - -ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item - -ForbiddenLAs-Item ::= SEQUENCE { - pLMN-Identity PLMNidentity, - forbiddenLACs ForbiddenLACs, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC - --- G - -GBR-QosInformation ::= SEQUENCE { - e-RAB-MaximumBitrateDL BitRate, - e-RAB-MaximumBitrateUL BitRate, - e-RAB-GuaranteedBitrateDL BitRate, - e-RAB-GuaranteedBitrateUL BitRate, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -GTP-TEID ::= OCTET STRING (SIZE (4)) - -GUMMEI ::= SEQUENCE { - pLMN-Identity PLMNidentity, - mME-Group-ID MME-Group-ID, - mME-Code MME-Code, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - --- H - -HandoverRestrictionList ::= SEQUENCE { - servingPLMN PLMNidentity, - equivalentPLMNs EPLMNs OPTIONAL, - forbiddenTAs ForbiddenTAs OPTIONAL, - forbiddenLAs ForbiddenLAs OPTIONAL, - forbiddenInterRATs ForbiddenInterRATs OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -HandoverType ::= ENUMERATED { - intralte, - ltetoutran, - ltetogeran, - utrantolte, - gerantolte, - ... -} - -HFN ::= INTEGER (0..1048575) - --- I - -IMSI ::= OCTET STRING (SIZE (3..8)) - -IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...)) - -InterfacesToTrace ::= BIT STRING (SIZE (8)) - -Inter-SystemInformationTransferType ::= CHOICE { - rIMTransfer RIMTransfer, - ... -} - --- J --- K --- L - - -LAC ::= OCTET STRING (SIZE (2)) - -LAI ::= SEQUENCE { - pLMNidentity PLMNidentity, - lAC LAC, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -LastVisitedCell-Item ::= CHOICE { - e-UTRAN-Cell LastVisitedEUTRANCellInformation, - uTRAN-Cell LastVisitedUTRANCellInformation, - gERAN-Cell LastVisitedGERANCellInformation, - ... -} -LastVisitedEUTRANCellInformation ::= SEQUENCE { - global-Cell-ID EUTRAN-CGI, - cellType CellType, - time-UE-StayedInCell Time-UE-StayedInCell, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -LastVisitedUTRANCellInformation ::= OCTET STRING - -LastVisitedGERANCellInformation ::= CHOICE { - undefined NULL, - ... -} - -L3-Information ::= OCTET STRING - -LPPa-PDU ::= OCTET STRING - --- M - -MessageIdentifier ::= BIT STRING (SIZE (16)) - -MMEname ::= PrintableString (SIZE (1..150,...)) - -MME-Group-ID ::= OCTET STRING (SIZE (2)) - -MME-Code ::= OCTET STRING (SIZE (1)) - -MME-UE-S1AP-ID ::= INTEGER (0..4294967295) -M-TMSI ::= OCTET STRING (SIZE (4)) - -MSClassmark2 ::= OCTET STRING -MSClassmark3 ::= OCTET STRING - --- N - -NAS-PDU ::= OCTET STRING - -NASSecurityParametersfromE-UTRAN ::= OCTET STRING - -NASSecurityParameterstoE-UTRAN ::= OCTET STRING - -NumberofBroadcastRequest ::= INTEGER (0..65535) - -NumberOfBroadcasts ::= INTEGER (0..65535) - --- O -OldBSS-ToNewBSS-Information ::= OCTET STRING - -OverloadAction ::= ENUMERATED { -reject-non-emergency-mo-dt, -reject-all-rrc-cr-signalling, -permit-emergency-sessions-and-mobile-terminated-services-only, - ... -} - -OverloadResponse ::= CHOICE { - overloadAction OverloadAction, - ... -} - - --- P - -PagingDRX ::= ENUMERATED { - v32, - v64, - v128, - v256, - ... - } - -PDCP-SN ::= INTEGER (0..4095) - -PLMNidentity ::= TBCD-STRING - -Pre-emptionCapability ::= ENUMERATED { - shall-not-trigger-pre-emption, - may-trigger-pre-emption -} - -Pre-emptionVulnerability ::= ENUMERATED { - not-pre-emptable, - pre-emptable -} - -PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) - -PS-ServiceNotAvailable ::= ENUMERATED { - ps-service-not-available, - ... -} - --- Q - -QCI ::= INTEGER (0..255) - --- R - -ResetType ::= CHOICE { - s1-Interface ResetAll, - partOfS1-Interface UE-associatedLogicalS1-ConnectionListRes, - ... -} - -ResetAll ::= ENUMERATED { - reset-all, - ... -} - -ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) - -RelativeMMECapacity ::= INTEGER (0..255) - -RAC ::= OCTET STRING (SIZE (1)) - - -RequestType ::= SEQUENCE { - eventType EventType, - reportArea ReportArea, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -RIMTransfer ::= SEQUENCE { - rIMInformation RIMInformation, - rIMRoutingAddress RIMRoutingAddress OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -RIMInformation ::= OCTET STRING - -RIMRoutingAddress ::= CHOICE { - gERAN-Cell-ID GERAN-Cell-ID, - ..., - targetRNC-ID TargetRNC-ID -} - -ReportArea ::= ENUMERATED { - ecgi, - ... -} - -RepetitionPeriod ::= INTEGER (0..4095) - - -RNC-ID ::= INTEGER (0..4095) - -RRC-Container ::= OCTET STRING - -RRC-Establishment-Cause ::= ENUMERATED { - emergency, - highPriorityAccess, - mt-Access, - mo-Signalling, - mo-Data, - ... -} - -Routing-ID ::= INTEGER (0..255) - --- S - - -SecurityKey ::= BIT STRING (SIZE(256)) - - - -SecurityContext ::= SEQUENCE { - nextHopChainingCount INTEGER (0..7), - nextHopParameter SecurityKey, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -SerialNumber ::= BIT STRING (SIZE (16)) - -SONInformation ::= CHOICE{ - sONInformationRequest SONInformationRequest, - sONInformationReply SONInformationReply, - ... -} - -SONInformationRequest ::= ENUMERATED { - x2TNL-Configuration-Info, - ..., - time-Synchronization-Info} - -SONInformationReply ::= SEQUENCE { - x2TNLConfigurationInfo X2TNLConfigurationInfo OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -SONConfigurationTransfer ::= SEQUENCE { - targeteNB-ID TargeteNB-ID, - sourceeNB-ID SourceeNB-ID, - sONInformation SONInformation, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -Source-ToTarget-TransparentContainer ::= OCTET STRING - -SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING - -SourceeNB-ID ::= SEQUENCE { - global-ENB-ID Global-ENB-ID, - selected-TAI TAI, - iE-Extensions IE-Extensions OPTIONAL -} - -SRVCCOperationPossible ::= ENUMERATED { - possible, - ... -} - -SRVCCHOIndication ::= ENUMERATED { - pSandCS, - cSonly, - ... -} - -SourceeNB-ToTargeteNB-TransparentContainer ::= SEQUENCE { - rRC-Container RRC-Container, - e-RABInformationList E-RABInformationList OPTIONAL, - targetCell-ID EUTRAN-CGI, - subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, - uE-HistoryInformation UE-HistoryInformation, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABInformationList ::= SEQUENCE (SIZE (1.. maxNrOfE-RABs)) OF IE - -SourceRNC-ToTargetRNC-TransparentContainer ::= OCTET STRING - - -ServedGUMMEIs ::= SEQUENCE (SIZE (1.. maxnoofRATs)) OF ServedGUMMEIsItem - -ServedGUMMEIsItem ::= SEQUENCE { - servedPLMNs ServedPLMNs, - servedGroupIDs ServedGroupIDs, - servedMMECs ServedMMECs, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -ServedGroupIDs ::= SEQUENCE (SIZE(1.. maxnoofGroupIDs)) OF MME-Group-ID -ServedMMECs ::= SEQUENCE (SIZE(1.. maxnoofMMECs)) OF MME-Code - -ServedPLMNs ::= SEQUENCE (SIZE(1.. maxnoofPLMNsPerMME)) OF PLMNidentity - -SubscriberProfileIDforRFP ::= INTEGER (1..256) - -SupportedTAs ::= SEQUENCE (SIZE(1.. maxnoofTACs)) OF SupportedTAs-Item - -SupportedTAs-Item ::= SEQUENCE { - tAC TAC, - broadcastPLMNs BPLMNs, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -StratumLevel ::= INTEGER (0..3, ...) - -SynchronizationStatus ::= ENUMERATED { synchronous, asynchronous, ... } - -TimeSynchronizationInfo ::= SEQUENCE { - stratumLevel StratumLevel, - synchronizationStatus SynchronizationStatus, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -S-TMSI ::= SEQUENCE { - mMEC MME-Code, - m-TMSI M-TMSI, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - --- T - -TAC ::= OCTET STRING (SIZE (2)) - -TAIListforWarning ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI - -TAI ::= SEQUENCE { - pLMNidentity PLMNidentity, - tAC TAC, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -TAI-Broadcast ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Broadcast-Item - -TAI-Broadcast-Item ::= SEQUENCE { - tAI TAI, - completedCellinTAI CompletedCellinTAI, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -TAI-Cancelled ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Cancelled-Item - -TAI-Cancelled-Item ::= SEQUENCE { - tAI TAI, - cancelledCellinTAI CancelledCellinTAI, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -TAIList ::= SEQUENCE (SIZE(1..maxnoofTAIs)) OF IE - -TAIItem ::= SEQUENCE { - tAI TAI, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -CompletedCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CompletedCellinTAI-Item - -CompletedCellinTAI-Item ::= SEQUENCE{ - eCGI EUTRAN-CGI, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -TBCD-STRING ::= OCTET STRING (SIZE (3)) - -TargetID ::= CHOICE { - targeteNB-ID TargeteNB-ID, - targetRNC-ID TargetRNC-ID, - cGI CGI, - ... -} - -TargeteNB-ID ::= SEQUENCE { - global-ENB-ID Global-ENB-ID, - selected-TAI TAI, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -TargetRNC-ID ::= SEQUENCE { - lAI LAI, - rAC RAC OPTIONAL, - rNC-ID RNC-ID, - extendedRNC-ID ExtendedRNC-ID OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -TargeteNB-ToSourceeNB-TransparentContainer ::= SEQUENCE { - rRC-Container RRC-Container, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -Target-ToSource-TransparentContainer ::= OCTET STRING -TargetRNC-ToSourceRNC-TransparentContainer ::= OCTET STRING -TargetBSS-ToSourceBSS-TransparentContainer ::= OCTET STRING - -TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...} - -Time-UE-StayedInCell ::= INTEGER (0..4095) - -TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) - -TraceActivation ::= SEQUENCE { - e-UTRAN-Trace-ID E-UTRAN-Trace-ID, - interfacesToTrace InterfacesToTrace, -traceDepth TraceDepth, -traceCollectionEntityIPAddress TransportLayerAddress, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -TraceDepth ::= ENUMERATED { - minimum, - medium, - maximum, - minimumWithoutVendorSpecificExtension, - mediumWithoutVendorSpecificExtension, - maximumWithoutVendorSpecificExtension, - ... -} - -E-UTRAN-Trace-ID ::= OCTET STRING (SIZE (8)) - -TypeOfError ::= ENUMERATED { - not-understood, - missing, - ... -} - --- U - -UE-associatedLogicalS1-ConnectionListRes ::= SEQUENCE (SIZE(1.. maxNrOfIndividualS1ConnectionsToReset)) OF IE - -UE-associatedLogicalS1-ConnectionListResAck ::= SEQUENCE (SIZE(1.. maxNrOfIndividualS1ConnectionsToReset)) OF IE - -UEAggregateMaximumBitrate ::= SEQUENCE { - uEaggregateMaximumBitRateDL BitRate, - uEaggregateMaximumBitRateUL BitRate, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -UE-S1AP-IDs ::= CHOICE{ - uE-S1AP-ID-pair UE-S1AP-ID-pair, - mME-UE-S1AP-ID MME-UE-S1AP-ID, - ... -} - -UE-S1AP-ID-pair ::= SEQUENCE{ - mME-UE-S1AP-ID MME-UE-S1AP-ID, - eNB-UE-S1AP-ID ENB-UE-S1AP-ID, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -UE-associatedLogicalS1-ConnectionItem ::= SEQUENCE { - mME-UE-S1AP-ID MME-UE-S1AP-ID OPTIONAL, - eNB-UE-S1AP-ID ENB-UE-S1AP-ID OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -UEIdentityIndexValue ::= BIT STRING (SIZE (10)) - -UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item - -UEPagingID ::= CHOICE { - s-TMSI S-TMSI, - iMSI IMSI, - ... - } - -UERadioCapability ::= OCTET STRING - -UESecurityCapabilities ::= SEQUENCE { - encryptionAlgorithms EncryptionAlgorithms, - integrityProtectionAlgorithms IntegrityProtectionAlgorithms, - iE-Extensions IE-Extensions OPTIONAL, -... -} - --- V --- W - -WarningAreaList ::= CHOICE { - cellIDList ECGIList, - trackingAreaListforWarning TAIListforWarning, - emergencyAreaIDList EmergencyAreaIDList, - ... -} - - -WarningType ::= OCTET STRING (SIZE (2)) - -WarningSecurityInfo ::= OCTET STRING (SIZE (50)) - - -WarningMessageContents ::= OCTET STRING (SIZE(1..9600)) - - --- X - - -X2TNLConfigurationInfo ::= SEQUENCE { - eNBX2TransportLayerAddresses ENBX2TLAs, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - --- Y --- Z - -END \ No newline at end of file diff --git a/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU-Contents.asn b/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU-Contents.asn deleted file mode 100644 index d3d4189e0f..0000000000 --- a/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU-Contents.asn +++ /dev/null @@ -1,2419 +0,0 @@ --- ************************************************************** --- --- PDU definitions for S1AP. --- --- ************************************************************** - -S1AP-PDU-Contents { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Contents (1) } - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - --- ************************************************************** --- --- IE parameter types from other modules. --- --- ************************************************************** - -IMPORTS - - UEAggregateMaximumBitrate, - Cause, - CellAccessMode, - Cdma2000HORequiredIndication, - Cdma2000HOStatus, - Cdma2000OneXSRVCCInfo, - Cdma2000OneXRAND, - Cdma2000PDU, - Cdma2000RATType, - Cdma2000SectorID, - EUTRANRoundTripDelayEstimationInfo, - CNDomain, - ConcurrentWarningMessageIndicator, - CriticalityDiagnostics, - CSFallbackIndicator, - CSG-Id, - CSG-IdList, - CSGMembershipStatus, - Data-Forwarding-Not-Possible, - Direct-Forwarding-Path-Availability, - Global-ENB-ID, - EUTRAN-CGI, - ENBname, - ENB-StatusTransfer-TransparentContainer, - ENB-UE-S1AP-ID, - ExtendedRepetitionPeriod, - GTP-TEID, - GUMMEI, - HandoverRestrictionList, - HandoverType, - LAI, - LPPa-PDU, - MMEname, - MME-UE-S1AP-ID, - MSClassmark2, - MSClassmark3, - NAS-PDU, - NASSecurityParametersfromE-UTRAN, - NASSecurityParameterstoE-UTRAN, - OverloadResponse, - PagingDRX, - PLMNidentity, - RIMTransfer, - RelativeMMECapacity, - RequestType, - E-RAB-ID, - E-RABLevelQoSParameters, - E-RABList, -Routing-ID, - SecurityKey, - SecurityContext, - ServedGUMMEIs, - SONConfigurationTransfer, - Source-ToTarget-TransparentContainer, - SourceBSS-ToTargetBSS-TransparentContainer, - SourceeNB-ToTargeteNB-TransparentContainer, - SourceRNC-ToTargetRNC-TransparentContainer, - SubscriberProfileIDforRFP, - SRVCCOperationPossible, - SRVCCHOIndication, - SupportedTAs, - TAI, - Target-ToSource-TransparentContainer, - TargetBSS-ToSourceBSS-TransparentContainer, - TargeteNB-ToSourceeNB-TransparentContainer, - TargetID, - TargetRNC-ToSourceRNC-TransparentContainer, - TimeToWait, - TraceActivation, - E-UTRAN-Trace-ID, - TransportLayerAddress, - UEIdentityIndexValue, - UEPagingID, - UERadioCapability, - UE-S1AP-IDs, - UE-associatedLogicalS1-ConnectionItem, - UESecurityCapabilities, - S-TMSI, - MessageIdentifier, - SerialNumber, - WarningAreaList, - RepetitionPeriod, - NumberofBroadcastRequest, - WarningType, - WarningSecurityInfo, - DataCodingScheme, - WarningMessageContents, - BroadcastCompletedAreaList, - RRC-Establishment-Cause, - BroadcastCancelledAreaList, - PS-ServiceNotAvailable - -FROM S1AP-IEs - - PrivateIE-Container{}, - ProtocolExtensionContainer{}, - ProtocolIE-Container{}, - ProtocolIE-ContainerList{}, - ProtocolIE-ContainerPair{}, - ProtocolIE-ContainerPairList{}, - ProtocolIE-SingleContainer{}, - S1AP-PRIVATE-IES, - S1AP-PROTOCOL-EXTENSION, - S1AP-PROTOCOL-IES, - S1AP-PROTOCOL-IES-PAIR -FROM S1AP-Containers - - - id-uEaggregateMaximumBitrate, - id-Cause, - id-CellAccessMode, - id-cdma2000HORequiredIndication, - id-cdma2000HOStatus, - id-cdma2000OneXSRVCCInfo, - id-cdma2000OneXRAND, - id-cdma2000PDU, - id-cdma2000RATType, - id-cdma2000SectorID, - id-EUTRANRoundTripDelayEstimationInfo, - id-CNDomain, - id-ConcurrentWarningMessageIndicator, - id-CriticalityDiagnostics, - id-CSFallbackIndicator, - id-CSG-Id, - id-CSG-IdList, - id-CSGMembershipStatus, - id-Data-Forwarding-Not-Possible, - id-DefaultPagingDRX, - id-Direct-Forwarding-Path-Availability, - id-Global-ENB-ID, - id-EUTRAN-CGI, - id-eNBname, - id-eNB-StatusTransfer-TransparentContainer, - id-eNB-UE-S1AP-ID, - id-GERANtoLTEHOInformationRes, - id-GUMMEI-ID, - id-HandoverRestrictionList, - id-HandoverType, - id-InitialContextSetup, - id-Inter-SystemInformationTransferTypeEDT, - id-Inter-SystemInformationTransferTypeMDT, - id-LPPa-PDU, - id-NAS-DownlinkCount, - id-MMEname, - id-MME-UE-S1AP-ID, - id-MSClassmark2, - id-MSClassmark3, - id-NAS-PDU, - id-NASSecurityParametersfromE-UTRAN, - id-NASSecurityParameterstoE-UTRAN, - id-OverloadResponse, - id-pagingDRX, - id-RelativeMMECapacity, - id-RequestType, - id-Routing-ID, - id-E-RABAdmittedItem, - id-E-RABAdmittedList, - id-E-RABDataForwardingItem, - id-E-RABFailedToModifyList, - id-E-RABFailedToReleaseList, - id-E-RABFailedtoSetupItemHOReqAck, - id-E-RABFailedToSetupListBearerSURes, - id-E-RABFailedToSetupListCtxtSURes, - id-E-RABFailedToSetupListHOReqAck, - id-E-RABFailedToBeReleasedList, - id-E-RABModify, - id-E-RABModifyItemBearerModRes, - id-E-RABModifyListBearerModRes, - id-E-RABRelease, - id-E-RABReleaseItemBearerRelComp, - id-E-RABReleaseItemHOCmd, - id-E-RABReleaseListBearerRelComp, - id-E-RABReleaseIndication, - id-E-RABSetup, - id-E-RABSetupItemBearerSURes, - id-E-RABSetupItemCtxtSURes, - id-E-RABSetupListBearerSURes, - id-E-RABSetupListCtxtSURes, - id-E-RABSubjecttoDataForwardingList, - id-E-RABToBeModifiedItemBearerModReq, - id-E-RABToBeModifiedListBearerModReq, - id-E-RABToBeReleasedList, - id-E-RABReleasedList, - id-E-RABToBeSetupItemBearerSUReq, - id-E-RABToBeSetupItemCtxtSUReq, - id-E-RABToBeSetupItemHOReq, - id-E-RABToBeSetupListBearerSUReq, - id-E-RABToBeSetupListCtxtSUReq, - id-E-RABToBeSetupListHOReq, - id-E-RABToBeSwitchedDLItem, - id-E-RABToBeSwitchedDLList, - id-E-RABToBeSwitchedULList, - id-E-RABToBeSwitchedULItem, - id-E-RABtoReleaseListHOCmd, - id-SecurityKey, - id-SecurityContext, - id-ServedGUMMEIs, - id-SONConfigurationTransferECT, - id-SONConfigurationTransferMCT, - id-Source-ToTarget-TransparentContainer, - id-Source-ToTarget-TransparentContainer-Secondary, - id-SourceMME-UE-S1AP-ID, - id-SRVCCOperationPossible, - id-SRVCCHOIndication, - id-SubscriberProfileIDforRFP, - id-SupportedTAs, - id-S-TMSI, - id-TAI, - id-TAIItem, - id-TAIList, - id-Target-ToSource-TransparentContainer, - id-Target-ToSource-TransparentContainer-Secondary, - id-TargetID, - id-TimeToWait, - id-TraceActivation, - id-E-UTRAN-Trace-ID, - id-UEIdentityIndexValue, - id-UEPagingID, - id-UERadioCapability, - id-UTRANtoLTEHOInformationRes, - id-UE-associatedLogicalS1-ConnectionListResAck, - id-UE-associatedLogicalS1-ConnectionItem, - id-UESecurityCapabilities, - id-UE-S1AP-IDs, - id-ResetType, - id-MessageIdentifier, - id-SerialNumber, - id-WarningAreaList, - id-RepetitionPeriod, - id-NumberofBroadcastRequest, - id-WarningType, - id-WarningSecurityInfo, - id-DataCodingScheme, - id-WarningMessageContents, - id-BroadcastCompletedAreaList, - id-BroadcastCancelledAreaList, - id-RRC-Establishment-Cause, - id-TraceCollectionEntityIPAddress, maxnoofTAIs, - maxNrOfErrors, - maxNrOfE-RABs, - maxNrOfIndividualS1ConnectionsToReset, - maxnoofEmergencyAreaID, - maxnoofCellID, - maxnoofTAIforWarning, - maxnoofCellinTAI, - maxnoofCellinEAI, - id-ExtendedRepetitionPeriod, - id-PS-ServiceNotAvailable, - id-RegisteredLAI - - -FROM S1AP-Constants; - --- ************************************************************** --- --- Common Container Lists --- --- ************************************************************** - -E-RAB-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfE-RABs, {IEsSetParam} } -E-RAB-IE-ContainerPairList { S1AP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxNrOfE-RABs, {IEsSetParam} } -ProtocolError-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfE-RABs, {IEsSetParam} } - --- ************************************************************** --- --- HANDOVER PREPARATION ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- Handover Required --- --- ************************************************************** - -HandoverRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { HandoverRequiredIEs} }, - ... -} - -HandoverRequiredIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory }| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| - { ID id-TargetID CRITICALITY reject TYPE TargetID PRESENCE mandatory }| - { ID id-Direct-Forwarding-Path-Availability CRITICALITY ignore TYPE Direct-Forwarding-Path-Availability PRESENCE optional }| - { ID id-SRVCCHOIndication CRITICALITY reject TYPE SRVCCHOIndication PRESENCE optional }| - { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory }| - { ID id-Source-ToTarget-TransparentContainer-Secondary CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE optional }| - { ID id-MSClassmark2 CRITICALITY reject TYPE MSClassmark2 PRESENCE conditional }| - { ID id-MSClassmark3 CRITICALITY ignore TYPE MSClassmark3 PRESENCE conditional }| - { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional }| - { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional }| - { ID id-PS-ServiceNotAvailable CRITICALITY ignore TYPE PS-ServiceNotAvailable PRESENCE optional }, - ... -} - - --- ************************************************************** --- --- Handover Command --- --- ************************************************************** - -HandoverCommand ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { HandoverCommandIEs} }, - ... -} - -HandoverCommandIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory } | - { ID id-NASSecurityParametersfromE-UTRAN CRITICALITY reject TYPE NASSecurityParametersfromE-UTRAN PRESENCE conditional - -- This IE shall be present if HandoverType IE is set to value "LTEtoUTRAN" or "LTEtoGERAN" -- }| - { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABDataForwardingList PRESENCE optional } | - { ID id-E-RABtoReleaseListHOCmd CRITICALITY ignore TYPE E-RABList PRESENCE optional } | - { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory }| - { ID id-Target-ToSource-TransparentContainer-Secondary CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - -E-RABDataForwardingList ::= E-RAB-IE-ContainerList { {E-RABDataForwardingItemIEs} } - -E-RABDataForwardingItemIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABDataForwardingItem CRITICALITY ignore TYPE E-RABDataForwardingItem PRESENCE mandatory }, - ... -} - -E-RABDataForwardingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - - - --- ************************************************************** --- --- Handover Preparation Failure --- --- ************************************************************** - -HandoverPreparationFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { HandoverPreparationFailureIEs} }, - ... -} - -HandoverPreparationFailureIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- HANDOVER RESOURCE ALLOCATION ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- Handover Request --- --- ************************************************************** - -HandoverRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {HandoverRequestIEs} }, - ... -} - -HandoverRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory } | - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } | - { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory }| - { ID id-E-RABToBeSetupListHOReq CRITICALITY reject TYPE E-RABToBeSetupListHOReq PRESENCE mandatory } | - { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory } | - { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory }| - { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional }| - { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional }| - { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE optional }| - { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional }| - { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}| - { ID id-NASSecurityParameterstoE-UTRAN CRITICALITY reject TYPE NASSecurityParameterstoE-UTRAN PRESENCE conditional - -- This IE shall be present if the Handover Type IE is set to the value "UTRANtoLTE" or "GERANtoLTE" -- } | - { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional} | - { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional} , - ... -} - -E-RABToBeSetupListHOReq ::= E-RAB-IE-ContainerList { {E-RABToBeSetupItemHOReqIEs} } - -E-RABToBeSetupItemHOReqIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABToBeSetupItemHOReq CRITICALITY reject TYPE E-RABToBeSetupItemHOReq PRESENCE mandatory }, - ... -} - -E-RABToBeSetupItemHOReq ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEID, - e-RABlevelQosParameters E-RABLevelQoSParameters, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABToBeSetupItemHOReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - {ID id-Data-Forwarding-Not-Possible CRITICALITY ignore EXTENSION Data-Forwarding-Not-Possible PRESENCE optional}, - ... -} - --- ************************************************************** --- --- Handover Request Acknowledge --- --- ************************************************************** - -HandoverRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {HandoverRequestAcknowledgeIEs} }, - ... -} - -HandoverRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-E-RABAdmittedList CRITICALITY ignore TYPE E-RABAdmittedList PRESENCE mandatory } | - { ID id-E-RABFailedToSetupListHOReqAck CRITICALITY ignore TYPE E-RABFailedtoSetupListHOReqAck PRESENCE optional } | - { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory }| - { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional } | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - -E-RABAdmittedList ::= E-RAB-IE-ContainerList { {E-RABAdmittedItemIEs} } - -E-RABAdmittedItemIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABAdmittedItem CRITICALITY ignore TYPE E-RABAdmittedItem PRESENCE mandatory }, - ... -} - -E-RABAdmittedItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEID, - dL-transportLayerAddress TransportLayerAddress OPTIONAL, - dL-gTP-TEID GTP-TEID OPTIONAL, - uL-TransportLayerAddress TransportLayerAddress OPTIONAL, - uL-GTP-TEID GTP-TEID OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABAdmittedItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -E-RABFailedtoSetupListHOReqAck ::= E-RAB-IE-ContainerList { {E-RABFailedtoSetupItemHOReqAckIEs} } - -E-RABFailedtoSetupItemHOReqAckIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABFailedtoSetupItemHOReqAck CRITICALITY ignore TYPE E-RABFailedToSetupItemHOReqAck PRESENCE mandatory }, - ... -} - -E-RABFailedToSetupItemHOReqAck ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - cause Cause, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - -E-RABFailedToSetupItemHOReqAckExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - - --- ************************************************************** --- --- Handover Failure --- --- ************************************************************** - -HandoverFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { HandoverFailureIEs} }, - ... -} - -HandoverFailureIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- HANDOVER NOTIFICATION ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- Handover Notify --- --- ************************************************************** - -HandoverNotify ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { HandoverNotifyIEs} }, - ... -} - -HandoverNotifyIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| - { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}, - ... -} - --- ************************************************************** --- --- PATH SWITCH REQUEST ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- Path Switch Request --- --- ************************************************************** - -PathSwitchRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { PathSwitchRequestIEs} }, - ... -} - -PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-E-RABToBeSwitchedDLList CRITICALITY reject TYPE E-RABToBeSwitchedDLList PRESENCE mandatory }| - { ID id-SourceMME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| - { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| - { ID id-UESecurityCapabilities CRITICALITY ignore TYPE UESecurityCapabilities PRESENCE mandatory }, - ... -} - -E-RABToBeSwitchedDLList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedDLItemIEs} } - -E-RABToBeSwitchedDLItemIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABToBeSwitchedDLItem CRITICALITY reject TYPE E-RABToBeSwitchedDLItem PRESENCE mandatory }, - ... -} - -E-RABToBeSwitchedDLItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - --- ************************************************************** --- --- Path Switch Request Acknowledge --- --- ************************************************************** - -PathSwitchRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { PathSwitchRequestAcknowledgeIEs} }, - ... -} - -PathSwitchRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional }| - { ID id-E-RABToBeSwitchedULList CRITICALITY ignore TYPE E-RABToBeSwitchedULList PRESENCE optional }| - { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE optional }| - { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - -E-RABToBeSwitchedULList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedULItemIEs} } - -E-RABToBeSwitchedULItemIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABToBeSwitchedULItem CRITICALITY ignore TYPE E-RABToBeSwitchedULItem PRESENCE mandatory }, - ... -} - -E-RABToBeSwitchedULItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - - --- ************************************************************** --- --- Path Switch Request Failure --- --- ************************************************************** - -PathSwitchRequestFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { PathSwitchRequestFailureIEs} }, - ... -} - -PathSwitchRequestFailureIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- HANDOVER CANCEL ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- Handover Cancel --- --- ************************************************************** - -HandoverCancel ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { HandoverCancelIEs} }, - ... -} - -HandoverCancelIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, - ... -} - --- ************************************************************** --- --- Handover Cancel Request Acknowledge --- --- ************************************************************** - -HandoverCancelAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { HandoverCancelAcknowledgeIEs} }, - ... -} - -HandoverCancelAcknowledgeIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- E-RAB SETUP ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- E-RAB Setup Request --- --- ************************************************************** - -E-RABSetupRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {E-RABSetupRequestIEs} }, - ... -} - -E-RABSetupRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| - { ID id-E-RABToBeSetupListBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupListBearerSUReq PRESENCE mandatory }, - ... -} - -E-RABToBeSetupListBearerSUReq ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemBearerSUReqIEs} } - -E-RABToBeSetupItemBearerSUReqIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABToBeSetupItemBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupItemBearerSUReq PRESENCE mandatory }, - ... -} - -E-RABToBeSetupItemBearerSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - - --- ************************************************************** --- --- E-RAB Setup Response --- --- ************************************************************** - -E-RABSetupResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {E-RABSetupResponseIEs} }, - ... -} - -E-RABSetupResponseIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-E-RABSetupListBearerSURes CRITICALITY ignore TYPE E-RABSetupListBearerSURes PRESENCE optional }| - { ID id-E-RABFailedToSetupListBearerSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - - -E-RABSetupListBearerSURes ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemBearerSUResIEs} } - -E-RABSetupItemBearerSUResIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABSetupItemBearerSURes CRITICALITY ignore TYPE E-RABSetupItemBearerSURes PRESENCE mandatory }, - ... -} - -E-RABSetupItemBearerSURes ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEID, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - - -E-RABSetupItemBearerSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - - - --- ************************************************************** --- --- E-RAB MODIFY ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- E-RAB Modify Request --- --- ************************************************************** - -E-RABModifyRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {E-RABModifyRequestIEs} }, - ... -} - -E-RABModifyRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| - { ID id-E-RABToBeModifiedListBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedListBearerModReq PRESENCE mandatory }, - ... -} - -E-RABToBeModifiedListBearerModReq ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeModifiedItemBearerModReqIEs} } - -E-RABToBeModifiedItemBearerModReqIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABToBeModifiedItemBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModReq PRESENCE mandatory }, - ... -} - -E-RABToBeModifiedItemBearerModReq ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RABLevelQoSParameters E-RABLevelQoSParameters, - nAS-PDU NAS-PDU, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - - -E-RABToBeModifyItemBearerModReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - - - --- ************************************************************** --- --- E-RAB Modify Response --- --- ************************************************************** - -E-RABModifyResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {E-RABModifyResponseIEs} }, - ... -} - -E-RABModifyResponseIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-E-RABModifyListBearerModRes CRITICALITY ignore TYPE E-RABModifyListBearerModRes PRESENCE optional }| - { ID id-E-RABFailedToModifyList CRITICALITY ignore TYPE E-RABList PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - - -E-RABModifyListBearerModRes ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModResIEs} } - -E-RABModifyItemBearerModResIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABModifyItemBearerModRes CRITICALITY ignore TYPE E-RABModifyItemBearerModRes PRESENCE mandatory }, - ... -} - -E-RABModifyItemBearerModRes ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - - -E-RABModifyItemBearerModResExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - - - - --- ************************************************************** --- --- E-RAB RELEASE ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- E-RAB Release Command --- --- ************************************************************** - -E-RABReleaseCommand ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {E-RABReleaseCommandIEs} }, - ... -} - -E-RABReleaseCommandIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| - { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }| - { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE optional }, - ... -} - - --- ************************************************************** --- --- E-RAB Release Response --- --- ************************************************************** - -E-RABReleaseResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { E-RABReleaseResponseIEs } }, - ... -} - -E-RABReleaseResponseIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-E-RABReleaseListBearerRelComp CRITICALITY ignore TYPE E-RABReleaseListBearerRelComp PRESENCE optional }| - { ID id-E-RABFailedToReleaseList CRITICALITY ignore TYPE E-RABList PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - - -E-RABReleaseListBearerRelComp ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABReleaseItemBearerRelCompIEs} } - -E-RABReleaseItemBearerRelCompIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABReleaseItemBearerRelComp CRITICALITY ignore TYPE E-RABReleaseItemBearerRelComp PRESENCE mandatory }, - ... -} - -E-RABReleaseItemBearerRelCompExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - - - --- ************************************************************** --- --- E-RAB RELEASE INDICATION ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- E-RAB Release Indication --- --- ************************************************************** - -E-RABReleaseIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {E-RABReleaseIndicationIEs} }, - ... -} - -E-RABReleaseIndicationIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-E-RABReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }, - ... -} --- ************************************************************** --- --- INITIAL CONTEXT SETUP ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- Initial Context Setup Request --- --- ************************************************************** - -InitialContextSetupRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {InitialContextSetupRequestIEs} }, - ... -} - -InitialContextSetupRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| - { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory}| - { ID id-E-RABToBeSetupListCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupListCtxtSUReq PRESENCE mandatory}| - { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory}| - { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE mandatory}| - { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| - { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| - { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}| - { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| - { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}| - { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| - { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| - { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}, - ... -} - - - - -E-RABToBeSetupListCtxtSUReq ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemCtxtSUReqIEs} } - -E-RABToBeSetupItemCtxtSUReqIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABToBeSetupItemCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupItemCtxtSUReq PRESENCE mandatory }, - ... -} - -E-RABToBeSetupItemCtxtSUReq ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RABlevelQoSParameters E-RABLevelQoSParameters, - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEID, - nAS-PDU NAS-PDU OPTIONAL, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - - -E-RABToBeSetupItemCtxtSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - - --- ************************************************************** --- --- Initial Context Setup Response --- --- ************************************************************** - -InitialContextSetupResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {InitialContextSetupResponseIEs} }, - ... -} - -InitialContextSetupResponseIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-E-RABSetupListCtxtSURes CRITICALITY ignore TYPE E-RABSetupListCtxtSURes PRESENCE mandatory }| - { ID id-E-RABFailedToSetupListCtxtSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - - -E-RABSetupListCtxtSURes ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemCtxtSUResIEs} } - -E-RABSetupItemCtxtSUResIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABSetupItemCtxtSURes CRITICALITY ignore TYPE E-RABSetupItemCtxtSURes PRESENCE mandatory }, - ... -} - -E-RABSetupItemCtxtSURes ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEID, - iE-Extensions IE-Extensions OPTIONAL, - ... -} - - -E-RABSetupItemCtxtSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - - --- ************************************************************** --- --- Initial Context Setup Failure --- --- ************************************************************** - -InitialContextSetupFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {InitialContextSetupFailureIEs} }, - ... -} - -InitialContextSetupFailureIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- PAGING ELEMENTARY PROCEDURE --- --- ************************************************************** - - --- ************************************************************** --- --- Paging --- --- ************************************************************** - -Paging ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{PagingIEs}}, - ... -} - -PagingIEs S1AP-PROTOCOL-IES ::= { - { ID id-UEIdentityIndexValue CRITICALITY ignore TYPE UEIdentityIndexValue PRESENCE mandatory } | - { ID id-UEPagingID CRITICALITY ignore TYPE UEPagingID PRESENCE mandatory } | - { ID id-pagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional } | - { ID id-CNDomain CRITICALITY ignore TYPE CNDomain PRESENCE mandatory } | - { ID id-TAIList CRITICALITY ignore TYPE TAIList PRESENCE mandatory }| - { ID id-CSG-IdList CRITICALITY ignore TYPE CSG-IdList PRESENCE optional }, - ... -} - -TAIList::= SEQUENCE (SIZE(1.. maxnoofTAIs)) OF ProtocolIE-SingleContainer {{TAIItemIEs}} - -TAIItemIEs S1AP-PROTOCOL-IES ::= { - { ID id-TAIItem CRITICALITY ignore TYPE TAIItem PRESENCE mandatory }, - ... -} - -TAIItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - --- ************************************************************** --- --- UE CONTEXT RELEASE ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- UE CONTEXT RELEASE REQUEST --- --- ************************************************************** - -UEContextReleaseRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{UEContextReleaseRequestIEs}}, - ... -} - -UEContextReleaseRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} , - ... -} - --- ************************************************************** --- --- UE Context Release Command --- --- ************************************************************** - -UEContextReleaseCommand ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{UEContextReleaseCommandIEs}}, - ... -} - -UEContextReleaseCommandIEs S1AP-PROTOCOL-IES ::= { - { ID id-UE-S1AP-IDs CRITICALITY reject TYPE UE-S1AP-IDs PRESENCE mandatory} | - - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} , - ... -} - --- ************************************************************** --- --- UE Context Release Complete --- --- ************************************************************** - -UEContextReleaseComplete ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{UEContextReleaseCompleteIEs}}, - ... -} - -UEContextReleaseCompleteIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - - --- ************************************************************** --- --- UE CONTEXT MODIFICATION ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- UE Context Modification Request --- --- ************************************************************** - -UEContextModificationRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { UEContextModificationRequestIEs} }, - ... -} - -UEContextModificationRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| - { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE optional}| - { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| - { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional}| - { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}| - { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE optional}| - { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| - { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}, - ... -} --- ************************************************************** --- --- UE Context Modification Response --- --- ************************************************************** - -UEContextModificationResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { UEContextModificationResponseIEs} }, - ... -} - -UEContextModificationResponseIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -}-- ************************************************************** --- --- UE Context Modification Failure --- --- ************************************************************** - -UEContextModificationFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { UEContextModificationFailureIEs} }, - ... -} - -UEContextModificationFailureIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- NAS TRANSPORT ELEMENTARY PROCEDURES --- --- ************************************************************** - --- ************************************************************** --- --- DOWNLINK NAS TRANSPORT --- --- ************************************************************** - -DownlinkNASTransport ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{DownlinkNASTransportIEs}}, - ... -} - -DownlinkNASTransportIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory} | - { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional }, - ... -} - - --- ************************************************************** --- --- INITIAL UE MESSAGE --- --- ************************************************************** - -InitialUEMessage ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{InitialUEMessageIEs}}, - ... -} - -InitialUEMessageIEs S1AP-PROTOCOL-IES ::= { - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory} | - { ID id-TAI CRITICALITY reject TYPE TAI PRESENCE mandatory} | - { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory} | - { ID id-RRC-Establishment-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE mandatory} | - { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE optional} | - { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional} | - { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE optional} | - { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional}, - ... -} - - --- ************************************************************** --- --- UPLINK NAS TRANSPORT --- --- ************************************************************** - -UplinkNASTransport ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{UplinkNASTransportIEs}}, - ... -} - -UplinkNASTransportIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory} | - { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| - { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}, - ... -} --- ************************************************************** --- --- NAS NON DELIVERY INDICATION --- --- ************************************************************** - -NASNonDeliveryIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{NASNonDeliveryIndicationIEs}}, - ... -} - -NASNonDeliveryIndicationIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory} | - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} , - ... -} - --- ************************************************************** --- --- RESET ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- Reset --- --- ************************************************************** - -Reset ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {ResetIEs} }, - ... -} - -ResetIEs S1AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| - { ID id-ResetType CRITICALITY reject TYPE ResetType PRESENCE mandatory }, - ... -} - -ResetType ::= CHOICE { - s1-Interface ResetAll, - partOfS1-Interface UE-associatedLogicalS1-ConnectionListRes, - ... -} - - - -ResetAll ::= ENUMERATED { - reset-all, - ... -} - -UE-associatedLogicalS1-ConnectionListRes ::= SEQUENCE (SIZE(1.. maxNrOfIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemRes } } - -UE-associatedLogicalS1-ConnectionItemRes S1AP-PROTOCOL-IES ::= { - { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY reject TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory }, - ... -} - - --- ************************************************************** --- --- Reset Acknowledge --- --- ************************************************************** - -ResetAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} }, - ... -} - -ResetAcknowledgeIEs S1AP-PROTOCOL-IES ::= { - { ID id-UE-associatedLogicalS1-ConnectionListResAck CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionListResAck PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - -UE-associatedLogicalS1-ConnectionListResAck ::= SEQUENCE (SIZE(1.. maxNrOfIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemResAck } } - -UE-associatedLogicalS1-ConnectionItemResAck S1AP-PROTOCOL-IES ::= { - { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory }, - ... -} - --- ************************************************************** --- --- ERROR INDICATION ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- Error Indication --- --- ************************************************************** - -ErrorIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ErrorIndicationIEs}}, - ... -} - -ErrorIndicationIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional } | - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE optional } | - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } , - ... -} - --- ************************************************************** --- --- S1 SETUP ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- S1 Setup Request --- --- ************************************************************** - -S1SetupRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1SetupRequestIEs} }, - ... -} - -S1SetupRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}| - { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional}| - { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE mandatory}| - { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE mandatory}| - { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}, - ... -} - --- ************************************************************** --- --- S1 Setup Response --- --- ************************************************************** - -S1SetupResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1SetupResponseIEs} }, - ... -} - - -S1SetupResponseIEs S1AP-PROTOCOL-IES ::= { - { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }| - { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE mandatory }| - { ID id-RelativeMMECapacity CRITICALITY ignore TYPE RelativeMMECapacity PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- S1 Setup Failure --- --- ************************************************************** - -S1SetupFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {S1SetupFailureIEs} }, - ... -} - -S1SetupFailureIEs S1AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| - { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- ENB CONFIGURATION UPDATE ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- eNB Configuration Update --- --- ************************************************************** - -ENBConfigurationUpdate ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateIEs} }, - ... -} - -ENBConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= { - { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional }| - { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE optional }| - { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}| - { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional }, - ... -} - --- ************************************************************** --- --- eNB Configuration Update Acknowledge --- --- ************************************************************** - -ENBConfigurationUpdateAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateAcknowledgeIEs} }, - ... -} - - -ENBConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= { - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- eNB Configuration Update Failure --- --- ************************************************************** - -ENBConfigurationUpdateFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateFailureIEs} }, - ... -} - -ENBConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| - { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, -... -} - - --- ************************************************************** --- --- MME Configuration UPDATE ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- MME Configuration Update --- --- ************************************************************** - -MMEConfigurationUpdate ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateIEs} }, - ... -} - -MMEConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= { - { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }| - { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE optional }| - { ID id-RelativeMMECapacity CRITICALITY reject TYPE RelativeMMECapacity PRESENCE optional}, - ... -} - --- ************************************************************** --- --- MME Configuration Update Acknowledge --- --- ************************************************************** - -MMEConfigurationUpdateAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateAcknowledgeIEs} }, - ... -} - - -MMEConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= { - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- MME Configuration Update Failure --- --- ************************************************************** - -MMEConfigurationUpdateFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateFailureIEs} }, - ... -} - -MMEConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| - { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- DOWNLINK S1 CDMA2000 TUNNELING ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- Downlink S1 CDMA2000 Tunneling --- --- ************************************************************** - -DownlinkS1cdma2000tunneling ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {DownlinkS1cdma2000tunnelingIEs} }, - ... -} - -DownlinkS1cdma2000tunnelingIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABDataForwardingList PRESENCE optional } | - { ID id-cdma2000HOStatus CRITICALITY ignore TYPE Cdma2000HOStatus PRESENCE optional } | - { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory } | - { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory }, - ... -} - --- ************************************************************** --- --- UPLINK S1 CDMA2000 TUNNELING ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- Uplink S1 CDMA2000 Tunneling --- --- ************************************************************** - -UplinkS1cdma2000tunneling ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {UplinkS1cdma2000tunnelingIEs} }, - ... -} - -UplinkS1cdma2000tunnelingIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory } | - { ID id-cdma2000SectorID CRITICALITY reject TYPE Cdma2000SectorID PRESENCE mandatory } | - { ID id-cdma2000HORequiredIndication CRITICALITY ignore TYPE Cdma2000HORequiredIndication PRESENCE optional } | - { ID id-cdma2000OneXSRVCCInfo CRITICALITY reject TYPE Cdma2000OneXSRVCCInfo PRESENCE optional } | - { ID id-cdma2000OneXRAND CRITICALITY reject TYPE Cdma2000OneXRAND PRESENCE optional } | - { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory }| - { ID id-EUTRANRoundTripDelayEstimationInfo CRITICALITY ignore TYPE EUTRANRoundTripDelayEstimationInfo PRESENCE optional}, - -- Extension for Release 9 to assist target HRPD access with the acquisition of the UE -- - ... -} - - --- ************************************************************** --- --- UE CAPABILITY INFO INDICATION ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- UE Capability Info Indication --- --- ************************************************************** - -UECapabilityInfoIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { UECapabilityInfoIndicationIEs} }, - ... -} - -UECapabilityInfoIndicationIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE mandatory } , - ... -} - --- ************************************************************** --- --- eNB STATUS TRANSFER ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- eNB Status Transfer --- --- ************************************************************** - -ENBStatusTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {ENBStatusTransferIEs} }, - ... -} - -ENBStatusTransferIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory} , - ... -} - - --- ************************************************************** --- --- MME STATUS TRANSFER ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- MME Status Transfer --- --- ************************************************************** - -MMEStatusTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {MMEStatusTransferIEs} }, - ... -} - -MMEStatusTransferIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory} , - ... -} - - --- ************************************************************** --- --- TRACE ELEMENTARY PROCEDURES --- --- ************************************************************** --- ************************************************************** --- --- Trace Start --- --- ************************************************************** - -TraceStart ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {TraceStartIEs} }, - ... -} - -TraceStartIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE mandatory }, - ... -} - --- ************************************************************** --- --- Trace Failure Indication --- --- ************************************************************** - -TraceFailureIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {TraceFailureIndicationIEs} }, - ... -} - -TraceFailureIndicationIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory} | - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} , - ... -} - --- ************************************************************** --- --- DEACTIVATE TRACE ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- DEACTIVATE TRACE --- --- ************************************************************** - -DeactivateTrace ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { DeactivateTraceIEs} }, - ... -} - -DeactivateTraceIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }, - ... -} - --- ************************************************************** --- --- CELL TRAFFIC TRACE ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- CELL TRAFFIC TRACE --- --- ************************************************************** - -CellTrafficTrace ::= SEQUENCE { -protocolIEs ProtocolIE-Container { { CellTrafficTraceIEs } }, -... -} - -CellTrafficTraceIEs S1AP-PROTOCOL-IES ::= { - {ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | - {ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | - {ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory}| - {ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| - {ID id-TraceCollectionEntityIPAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE mandatory }, - ... -} - --- ************************************************************** --- --- LOCATION ELEMENTARY PROCEDURES --- --- ************************************************************** - --- ************************************************************** --- --- Location Reporting Control --- --- ************************************************************** - -LocationReportingControl ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { LocationReportingControlIEs} }, - ... -} - -LocationReportingControlIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory } , - ... -} - --- ************************************************************** --- --- Location Report Failure Indication --- --- ************************************************************** - -LocationReportingFailureIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { LocationReportingFailureIndicationIEs} }, - ... -} - -LocationReportingFailureIndicationIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}, - ... -} - --- ************************************************************** --- --- Location Report --- --- ************************************************************** - -LocationReport ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { LocationReportIEs} }, - ... -} - -LocationReportIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory} | - { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory} | - { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory} , - ... -} - --- ************************************************************** --- --- OVERLOAD ELEMENTARY PROCEDURES --- --- ************************************************************** - --- ************************************************************** --- --- Overload Start --- --- ************************************************************** - -OverloadStart ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {OverloadStartIEs} }, - ... -} - -OverloadStartIEs S1AP-PROTOCOL-IES ::= { - { ID id-OverloadResponse CRITICALITY reject TYPE OverloadResponse PRESENCE mandatory }, - ... -} --- ************************************************************** --- --- Overload Stop --- --- ************************************************************** - -OverloadStop ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {OverloadStopIEs} }, - ... -} - -OverloadStopIEs S1AP-PROTOCOL-IES ::= { - ... -} --- ************************************************************** --- --- WRITE-REPLACE WARNING ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- Write-Replace Warning Request --- --- ************************************************************** - - -WriteReplaceWarningRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {WriteReplaceWarningRequestIEs} }, - ... -} - -WriteReplaceWarningRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| - { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| - { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional }| - { ID id-RepetitionPeriod CRITICALITY reject TYPE RepetitionPeriod PRESENCE mandatory }| - { ID id-ExtendedRepetitionPeriod CRITICALITY reject TYPE ExtendedRepetitionPeriod PRESENCE optional }| - { ID id-NumberofBroadcastRequest CRITICALITY reject TYPE NumberofBroadcastRequest PRESENCE mandatory }| - { ID id-WarningType CRITICALITY ignore TYPE WarningType PRESENCE optional }| - { ID id-WarningSecurityInfo CRITICALITY ignore TYPE WarningSecurityInfo PRESENCE optional }| - { ID id-DataCodingScheme CRITICALITY ignore TYPE DataCodingScheme PRESENCE optional }| - { ID id-WarningMessageContents CRITICALITY ignore TYPE WarningMessageContents PRESENCE optional }| - { ID id-ConcurrentWarningMessageIndicator CRITICALITY reject TYPE ConcurrentWarningMessageIndicator PRESENCE optional }, - ... -} --- ************************************************************** --- --- Write-Replace Warning Response --- --- ************************************************************** - -WriteReplaceWarningResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {WriteReplaceWarningResponseIEs} }, - ... -} - -WriteReplaceWarningResponseIEs S1AP-PROTOCOL-IES ::= { - { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| - { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| - { ID id-BroadcastCompletedAreaList CRITICALITY ignore TYPE BroadcastCompletedAreaList PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- eNB DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- eNB Direct Information Transfer --- --- ************************************************************** - -ENBDirectInformationTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ ENBDirectInformationTransferIEs}}, - ... -} - -ENBDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= { - { ID id-Inter-SystemInformationTransferTypeEDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory} , - ... -} - --- ************************************************************** --- --- MME DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- MME Direct Information Transfer --- --- ************************************************************** - -MMEDirectInformationTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ MMEDirectInformationTransferIEs}}, - ... -} - -MMEDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= { - { ID id-Inter-SystemInformationTransferTypeMDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory} , - ... -} --- ************************************************************** --- --- eNB CONFIGURATION TRANSFER ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- eNB Configuration Transfer --- --- ************************************************************** - -ENBConfigurationTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ ENBConfigurationTransferIEs}}, - ... -} - -ENBConfigurationTransferIEs S1AP-PROTOCOL-IES ::= { - { ID id-SONConfigurationTransferECT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional} , - ... -} - --- ************************************************************** --- --- MME CONFIGURATION TRANSFER ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- MME Configuration Transfer --- --- ************************************************************** - -MMEConfigurationTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ MMEConfigurationTransferIEs}}, - ... -} - -MMEConfigurationTransferIEs S1AP-PROTOCOL-IES ::= { - { ID id-SONConfigurationTransferMCT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional} , - ... -} - --- ************************************************************** --- --- PRIVATE MESSAGE ELEMENTARY PROCEDURE --- --- ************************************************************** - --- ************************************************************** --- --- Private Message --- --- ************************************************************** - -PrivateMessage ::= SEQUENCE { - privateIEs PrivateIE-Container {{PrivateMessageIEs}}, - ... -} - -PrivateMessageIEs S1AP-PRIVATE-IES ::= { - ... -} - --- ************************************************************** --- --- Kill Request --- --- ************************************************************** - - -KillRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {KillRequestIEs} }, - ... -} - -KillRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| - { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| - { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional }, - ... -} - --- ************************************************************** --- --- Kill Response --- --- ************************************************************** - -KillResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {KillResponseIEs} }, - ... -} - -KillResponseIEs S1AP-PROTOCOL-IES ::= { - { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| - { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| - { ID id-BroadcastCancelledAreaList CRITICALITY ignore TYPE BroadcastCancelledAreaList PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} - --- ************************************************************** --- --- LPPA TRANSPORT ELEMENTARY PROCEDURES --- --- ************************************************************** - --- ************************************************************** --- --- DOWNLINK UE ASSOCIATED LPPA TRANSPORT --- --- ************************************************************** - -DownlinkUEAssociatedLPPaTransport ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{DownlinkUEAssociatedLPPaTransportIEs}}, - ... -} - -DownlinkUEAssociatedLPPaTransportIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory } | - { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory } , - ... -} - --- ************************************************************** --- --- UPLINK UE ASSOCIATED LPPA TRANSPORT --- --- ************************************************************** - -UplinkUEAssociatedLPPaTransport ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{UplinkUEAssociatedLPPaTransportIEs}}, - ... -} - -UplinkUEAssociatedLPPaTransportIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory} | - { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory} , - ... -} - --- ************************************************************** --- --- DOWNLINK NON UE ASSOCIATED LPPA TRANSPORT --- --- ************************************************************** - -DownlinkNonUEAssociatedLPPaTransport ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{DownlinkNonUEAssociatedLPPaTransportIEs}}, - ... -} - -DownlinkNonUEAssociatedLPPaTransportIEs S1AP-PROTOCOL-IES ::= { - { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory} | - { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory} , - ... -} - --- ************************************************************** --- --- UPLINK NON UE ASSOCIATED LPPA TRANSPORT --- --- ************************************************************** - -UplinkNonUEAssociatedLPPaTransport ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{UplinkNonUEAssociatedLPPaTransportIEs}}, - ... -} - -UplinkNonUEAssociatedLPPaTransportIEs S1AP-PROTOCOL-IES ::= { - { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory} | - { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory} , - ... -} - -Bearers-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { { Bearers-SubjectToStatusTransfer-ItemIEs } } - -Bearers-SubjectToStatusTransfer-ItemIEs S1AP-PROTOCOL-IES ::= { - { ID id-Bearers-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE Bearers-SubjectToStatusTransfer-Item PRESENCE mandatory }, - ... -} - -E-RABInformationList ::= SEQUENCE (SIZE (1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { { E-RABInformationItemIEs } } - -E-RABInformationItemIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABInformationListItem CRITICALITY ignore TYPE E-RABInformationListItem PRESENCE mandatory }, - ... -} - -E-RABList ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABItemIEs} } - -E-RABItemIEs S1AP-PROTOCOL-IES ::= { - { ID id-E-RABItem CRITICALITY ignore TYPE E-RABItem PRESENCE mandatory }, - ... -} - - -SONInformationReply-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - -- Extension for Release 9 to transfer Time synchronization information -- - {ID id-Time-Synchronization-Info CRITICALITY ignore EXTENSION TimeSynchronizationInfo PRESENCE optional}, - ... -} - -AllocationAndRetentionPriority-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -Bearers-SubjectToStatusTransfer-ItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -CancelledCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -CancelledCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -CellID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -CellID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -Cdma2000OneXSRVCCInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -CellType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -CSG-IdList-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -COUNTvalue-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -CriticalityDiagnostics-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -CriticalityDiagnostics-IE-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -EmergencyAreaID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -EmergencyAreaID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -CompletedCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -GERAN-Cell-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -ENB-StatusTransfer-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -E-RABInformationListItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -E-RABItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -E-RABQoSParameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -EUTRAN-CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -ForbiddenTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -ForbiddenLAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -GBR-QosInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -GUMMEI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -HandoverRestrictionList-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -LAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -LastVisitedEUTRANCellInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -RequestType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -RIMTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -SecurityContext-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -SONConfigurationTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -SourceeNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -ServedGUMMEIsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -SupportedTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -TimeSynchronizationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -TAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -TAI-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -TAI-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -CompletedCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -S-TMSI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -TargeteNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -TargetRNC-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -TraceActivation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -UEAggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -UE-associatedLogicalS1-ConnectionItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -UESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -GlobalENB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -X2TNLConfigurationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -UE-S1AP-ID-pair-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} - -END \ No newline at end of file diff --git a/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU-Descriptions.asn b/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU-Descriptions.asn deleted file mode 100644 index cf7114f480..0000000000 --- a/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU-Descriptions.asn +++ /dev/null @@ -1,591 +0,0 @@ --- ************************************************************** --- --- Elementary Procedure definitions --- --- ************************************************************** - -S1AP-PDU-Descriptions { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Descriptions (0)} - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - --- ************************************************************** --- --- IE parameter types from other modules. --- --- ************************************************************** - -IMPORTS - Criticality, - ProcedureCode -FROM S1AP-CommonDataTypes - - CellTrafficTrace, - DeactivateTrace, - DownlinkUEAssociatedLPPaTransport, - DownlinkNASTransport, - DownlinkNonUEAssociatedLPPaTransport, - DownlinkS1cdma2000tunneling, - ENBDirectInformationTransfer, - ENBStatusTransfer, - ENBConfigurationUpdate, - ENBConfigurationUpdateAcknowledge, - ENBConfigurationUpdateFailure, - ErrorIndication, - HandoverCancel, - HandoverCancelAcknowledge, - HandoverCommand, - HandoverFailure, - HandoverNotify, - HandoverPreparationFailure, - HandoverRequest, - HandoverRequestAcknowledge, - HandoverRequired, - InitialContextSetupFailure, - InitialContextSetupRequest, - InitialContextSetupResponse, - InitialUEMessage, - KillRequest, - KillResponse, - LocationReportingControl, - LocationReportingFailureIndication, - LocationReport, - MMEConfigurationUpdate, - MMEConfigurationUpdateAcknowledge, - MMEConfigurationUpdateFailure, - MMEDirectInformationTransfer, - MMEStatusTransfer, - NASNonDeliveryIndication, - OverloadStart, - OverloadStop, - Paging, - PathSwitchRequest, - PathSwitchRequestAcknowledge, - PathSwitchRequestFailure, - PrivateMessage, - Reset, - ResetAcknowledge, - S1SetupFailure, - S1SetupRequest, - S1SetupResponse, - E-RABModifyRequest, - E-RABModifyResponse, - E-RABReleaseCommand, - E-RABReleaseResponse, - E-RABReleaseIndication, - E-RABSetupRequest, - E-RABSetupResponse, - TraceFailureIndication, - TraceStart, - UECapabilityInfoIndication, - UEContextModificationFailure, - UEContextModificationRequest, - UEContextModificationResponse, - UEContextReleaseCommand, - UEContextReleaseComplete, - UEContextReleaseRequest, - UplinkUEAssociatedLPPaTransport, - UplinkNASTransport, - UplinkNonUEAssociatedLPPaTransport, - UplinkS1cdma2000tunneling, - WriteReplaceWarningRequest, - WriteReplaceWarningResponse, - ENBConfigurationTransfer, - MMEConfigurationTransfer - - -FROM S1AP-PDU-Contents - - id-CellTrafficTrace, - id-DeactivateTrace, - id-downlinkUEAssociatedLPPaTransport, - id-downlinkNASTransport, - id-downlinkNonUEAssociatedLPPaTransport, - id-DownlinkS1cdma2000tunneling, - id-eNBStatusTransfer, - id-ErrorIndication, - id-HandoverCancel, - id-HandoverNotification, - id-HandoverPreparation, - id-HandoverResourceAllocation, - id-InitialContextSetup, - id-initialUEMessage, - id-ENBConfigurationUpdate, - id-Kill, - id-LocationReportingControl, - id-LocationReportingFailureIndication, - id-LocationReport, - id-eNBDirectInformationTransfer, - id-MMEConfigurationUpdate, - id-MMEDirectInformationTransfer, - id-MMEStatusTransfer, - id-NASNonDeliveryIndication, - id-OverloadStart, - id-OverloadStop, - id-Paging, - id-PathSwitchRequest, - id-PrivateMessage, - id-Reset, - id-S1Setup, - id-E-RABModify, - id-E-RABRelease, - id-E-RABReleaseIndication, - id-E-RABSetup, - id-TraceFailureIndication, - id-TraceStart, - id-UECapabilityInfoIndication, - id-UEContextModification, - id-UEContextRelease, - id-UEContextReleaseRequest, - id-uplinkUEAssociatedLPPaTransport, - id-uplinkNASTransport, - id-uplinkNonUEAssociatedLPPaTransport, - id-UplinkS1cdma2000tunneling, - id-WriteReplaceWarning, - id-eNBConfigurationTransfer, - id-MMEConfigurationTransfer -FROM S1AP-Constants; - - --- ************************************************************** --- --- Interface Elementary Procedure Class --- --- ************************************************************** - -S1AP-ELEMENTARY-PROCEDURE ::= CLASS { - &InitiatingMessage , - &SuccessfulOutcome OPTIONAL, - &UnsuccessfulOutcome OPTIONAL, - &procedureCode ProcedureCode UNIQUE, - &criticality Criticality DEFAULT ignore -} -WITH SYNTAX { - INITIATING MESSAGE &InitiatingMessage - [SUCCESSFUL OUTCOME &SuccessfulOutcome] - [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] - PROCEDURE CODE &procedureCode - [CRITICALITY &criticality] -} - --- ************************************************************** --- --- Interface PDU Definition --- --- ************************************************************** - -S1AP-PDU ::= CHOICE { - initiatingMessage InitiatingMessage, - successfulOutcome SuccessfulOutcome, - unsuccessfulOutcome UnsuccessfulOutcome, - ... -} - -InitiatingMessage ::= SEQUENCE { - procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), - criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value S1AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} - -SuccessfulOutcome ::= SEQUENCE { - procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), - criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value S1AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} - -UnsuccessfulOutcome ::= SEQUENCE { - procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), - criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value S1AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} - --- ************************************************************** --- --- Interface Elementary Procedure List --- --- ************************************************************** - -S1AP-ELEMENTARY-PROCEDURES S1AP-ELEMENTARY-PROCEDURE ::= { - S1AP-ELEMENTARY-PROCEDURES-CLASS-1 | - S1AP-ELEMENTARY-PROCEDURES-CLASS-2, - ... -} - - -S1AP-ELEMENTARY-PROCEDURES-CLASS-1 S1AP-ELEMENTARY-PROCEDURE ::= { - handoverPreparation | - handoverResourceAllocation | - pathSwitchRequest | - e-RABSetup | - e-RABModify | - e-RABRelease | - initialContextSetup | - handoverCancel | - kill | - reset | - s1Setup | - uEContextModification | - uEContextRelease | - eNBConfigurationUpdate | - mMEConfigurationUpdate | - writeReplaceWarning , - ... -} - -S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= { - handoverNotification | - e-RABReleaseIndication | - paging | - downlinkNASTransport | - initialUEMessage | - uplinkNASTransport | - errorIndication | - nASNonDeliveryIndication | - uEContextReleaseRequest | - downlinkS1cdma2000tunneling | - uplinkS1cdma2000tunneling | - uECapabilityInfoIndication | - eNBStatusTransfer | - mMEStatusTransfer | - deactivateTrace | - traceStart | - traceFailureIndication | - cellTrafficTrace | - locationReportingControl | - locationReportingFailureIndication | - locationReport | - overloadStart | - overloadStop | - eNBDirectInformationTransfer | - mMEDirectInformationTransfer | - eNBConfigurationTransfer | - mMEConfigurationTransfer | - privateMessage , - ..., - downlinkUEAssociatedLPPaTransport | - uplinkUEAssociatedLPPaTransport | - downlinkNonUEAssociatedLPPaTransport | - uplinkNonUEAssociatedLPPaTransport -} - --- ************************************************************** --- --- Interface Elementary Procedures --- --- ************************************************************** - -handoverPreparation S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE HandoverRequired - SUCCESSFUL OUTCOME HandoverCommand - UNSUCCESSFUL OUTCOME HandoverPreparationFailure - PROCEDURE CODE id-HandoverPreparation - CRITICALITY reject -} - -handoverResourceAllocation S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE HandoverRequest - SUCCESSFUL OUTCOME HandoverRequestAcknowledge - UNSUCCESSFUL OUTCOME HandoverFailure - PROCEDURE CODE id-HandoverResourceAllocation - CRITICALITY reject -} - -handoverNotification S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE HandoverNotify - PROCEDURE CODE id-HandoverNotification - CRITICALITY ignore -} - -pathSwitchRequest S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE PathSwitchRequest - SUCCESSFUL OUTCOME PathSwitchRequestAcknowledge - UNSUCCESSFUL OUTCOME PathSwitchRequestFailure - PROCEDURE CODE id-PathSwitchRequest - CRITICALITY reject -} - -e-RABSetup S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE E-RABSetupRequest - SUCCESSFUL OUTCOME E-RABSetupResponse - PROCEDURE CODE id-E-RABSetup - CRITICALITY reject -} - -e-RABModify S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE E-RABModifyRequest - SUCCESSFUL OUTCOME E-RABModifyResponse - PROCEDURE CODE id-E-RABModify - CRITICALITY reject -} - -e-RABRelease S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE E-RABReleaseCommand - SUCCESSFUL OUTCOME E-RABReleaseResponse - PROCEDURE CODE id-E-RABRelease - CRITICALITY reject -} - -e-RABReleaseIndication S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE E-RABReleaseIndication - PROCEDURE CODE id-E-RABReleaseIndication - CRITICALITY ignore -} - -initialContextSetup S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE InitialContextSetupRequest - SUCCESSFUL OUTCOME InitialContextSetupResponse - UNSUCCESSFUL OUTCOME InitialContextSetupFailure - PROCEDURE CODE id-InitialContextSetup - CRITICALITY reject -} - -uEContextReleaseRequest S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE UEContextReleaseRequest - PROCEDURE CODE id-UEContextReleaseRequest - CRITICALITY ignore -} - -paging S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE Paging - PROCEDURE CODE id-Paging - CRITICALITY ignore -} - -downlinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE DownlinkNASTransport - PROCEDURE CODE id-downlinkNASTransport - CRITICALITY ignore -} - -initialUEMessage S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE InitialUEMessage - PROCEDURE CODE id-initialUEMessage - CRITICALITY ignore -} - -uplinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE UplinkNASTransport - PROCEDURE CODE id-uplinkNASTransport - CRITICALITY ignore -} -nASNonDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE NASNonDeliveryIndication - PROCEDURE CODE id-NASNonDeliveryIndication - CRITICALITY ignore -} - -handoverCancel S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE HandoverCancel - SUCCESSFUL OUTCOME HandoverCancelAcknowledge - PROCEDURE CODE id-HandoverCancel - CRITICALITY reject -} - -reset S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE Reset - SUCCESSFUL OUTCOME ResetAcknowledge - PROCEDURE CODE id-Reset - CRITICALITY reject -} - -errorIndication S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE ErrorIndication - PROCEDURE CODE id-ErrorIndication - CRITICALITY ignore -} - -s1Setup S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE S1SetupRequest - SUCCESSFUL OUTCOME S1SetupResponse - UNSUCCESSFUL OUTCOME S1SetupFailure - PROCEDURE CODE id-S1Setup - CRITICALITY reject -} - -eNBConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE ENBConfigurationUpdate - SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge - UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure - PROCEDURE CODE id-ENBConfigurationUpdate - CRITICALITY reject -} - -mMEConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE MMEConfigurationUpdate - SUCCESSFUL OUTCOME MMEConfigurationUpdateAcknowledge - UNSUCCESSFUL OUTCOME MMEConfigurationUpdateFailure - PROCEDURE CODE id-MMEConfigurationUpdate - CRITICALITY reject -} - -downlinkS1cdma2000tunneling S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE DownlinkS1cdma2000tunneling - PROCEDURE CODE id-DownlinkS1cdma2000tunneling - CRITICALITY ignore -} - -uplinkS1cdma2000tunneling S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE UplinkS1cdma2000tunneling - PROCEDURE CODE id-UplinkS1cdma2000tunneling - CRITICALITY ignore -} - -uEContextModification S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE UEContextModificationRequest - SUCCESSFUL OUTCOME UEContextModificationResponse - UNSUCCESSFUL OUTCOME UEContextModificationFailure - - PROCEDURE CODE id-UEContextModification - CRITICALITY reject -} - -uECapabilityInfoIndication S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE UECapabilityInfoIndication - PROCEDURE CODE id-UECapabilityInfoIndication - CRITICALITY ignore -} - -uEContextRelease S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE UEContextReleaseCommand - SUCCESSFUL OUTCOME UEContextReleaseComplete - PROCEDURE CODE id-UEContextRelease - CRITICALITY reject -} - -eNBStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE ENBStatusTransfer - PROCEDURE CODE id-eNBStatusTransfer - CRITICALITY ignore -} - -mMEStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE MMEStatusTransfer - PROCEDURE CODE id-MMEStatusTransfer - CRITICALITY ignore -} - -deactivateTrace S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE DeactivateTrace - PROCEDURE CODE id-DeactivateTrace - CRITICALITY ignore -} - -traceStart S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE TraceStart - PROCEDURE CODE id-TraceStart - CRITICALITY ignore -} - -traceFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE TraceFailureIndication - PROCEDURE CODE id-TraceFailureIndication - CRITICALITY ignore -} -cellTrafficTrace S1AP-ELEMENTARY-PROCEDURE ::={ - INITIATING MESSAGE CellTrafficTrace - PROCEDURE CODE id-CellTrafficTrace - CRITICALITY ignore -} - -locationReportingControl S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE LocationReportingControl - PROCEDURE CODE id-LocationReportingControl - CRITICALITY ignore -} - -locationReportingFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE LocationReportingFailureIndication - PROCEDURE CODE id-LocationReportingFailureIndication - CRITICALITY ignore -} - -locationReport S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE LocationReport - PROCEDURE CODE id-LocationReport - CRITICALITY ignore -} - -overloadStart S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE OverloadStart - PROCEDURE CODE id-OverloadStart - CRITICALITY ignore -} - -overloadStop S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE OverloadStop - PROCEDURE CODE id-OverloadStop - CRITICALITY reject -} - -writeReplaceWarning S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE WriteReplaceWarningRequest - SUCCESSFUL OUTCOME WriteReplaceWarningResponse - PROCEDURE CODE id-WriteReplaceWarning - CRITICALITY reject -} - -eNBDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE ENBDirectInformationTransfer - PROCEDURE CODE id-eNBDirectInformationTransfer - CRITICALITY ignore -} - -mMEDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE MMEDirectInformationTransfer - PROCEDURE CODE id-MMEDirectInformationTransfer - CRITICALITY ignore -} - -eNBConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE ENBConfigurationTransfer - PROCEDURE CODE id-eNBConfigurationTransfer - CRITICALITY ignore -} - -mMEConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE MMEConfigurationTransfer - PROCEDURE CODE id-MMEConfigurationTransfer - CRITICALITY ignore -} - - -privateMessage S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE PrivateMessage - PROCEDURE CODE id-PrivateMessage - CRITICALITY ignore -} - -kill S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE KillRequest - SUCCESSFUL OUTCOME KillResponse - PROCEDURE CODE id-Kill - CRITICALITY reject -} - -downlinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE DownlinkUEAssociatedLPPaTransport - PROCEDURE CODE id-downlinkUEAssociatedLPPaTransport - CRITICALITY ignore -} - -uplinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE UplinkUEAssociatedLPPaTransport - PROCEDURE CODE id-uplinkUEAssociatedLPPaTransport - CRITICALITY ignore -} -downlinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE DownlinkNonUEAssociatedLPPaTransport - PROCEDURE CODE id-downlinkNonUEAssociatedLPPaTransport - CRITICALITY ignore -} - -uplinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { - INITIATING MESSAGE UplinkNonUEAssociatedLPPaTransport - PROCEDURE CODE id-uplinkNonUEAssociatedLPPaTransport - CRITICALITY ignore -} - -END \ No newline at end of file diff --git a/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU.asn b/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU.asn deleted file mode 100644 index 9a818d4e24..0000000000 --- a/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU.asn +++ /dev/null @@ -1,413 +0,0 @@ -S1AP-PDU { - itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) - eps-Access (21) modules (3) s1ap (1) version1 (1) -} - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - -IMPORTS - Criticality, - ProcedureCode, - ProtocolIE-ID - -FROM S1AP-CommonDataTypes - - maxProtocolIEs - -FROM S1AP-Constants; - -S1AP-PDU ::= CHOICE { - initiatingMessage InitiatingMessage, - successfulOutcome SuccessfulOutcome, - unsuccessfulOutcome UnsuccessfulOutcome, - ... -} - -InitiatingMessage ::= SEQUENCE { - procedureCode ProcedureCode, - criticality Criticality, - value ANY -} - -SuccessfulOutcome ::= SEQUENCE { - procedureCode ProcedureCode, - criticality Criticality, - value ANY -} - -UnsuccessfulOutcome ::= SEQUENCE { - procedureCode ProcedureCode, - criticality Criticality, - value ANY -} - -HandoverRequired ::= SEQUENCE { - handoverRequired-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -HandoverCommand ::= SEQUENCE { - handoverCommand-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -HandoverPreparationFailure ::= SEQUENCE { - handoverPreparationFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -HandoverRequest ::= SEQUENCE { - handoverRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -HandoverRequestAcknowledge ::= SEQUENCE { - handoverRequestAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -HandoverFailure ::= SEQUENCE { - handoverFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -HandoverNotify ::= SEQUENCE { - handoverNotify-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -PathSwitchRequest ::= SEQUENCE { - pathSwitchRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -PathSwitchRequestAcknowledge ::= SEQUENCE { - pathSwitchRequestAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -PathSwitchRequestFailure ::= SEQUENCE { - pathSwitchRequestFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -E-RABSetupRequest ::= SEQUENCE { - e-RABSetupRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -E-RABSetupResponse ::= SEQUENCE { - e-RABSetupResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -E-RABModifyRequest ::= SEQUENCE { - e-RABModifyRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -E-RABModifyResponse ::= SEQUENCE { - e-RABModifyResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -E-RABReleaseIndication ::= SEQUENCE { - e-RABReleaseIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -E-RABReleaseCommand ::= SEQUENCE { - e-RABReleaseCommand-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -E-RABReleaseResponse ::= SEQUENCE { - e-RABReleaseResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -InitialContextSetupRequest ::= SEQUENCE { - initialContextSetupRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -InitialContextSetupResponse ::= SEQUENCE { - initialContextSetupResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -InitialContextSetupFailure ::= SEQUENCE { - initialContextSetupFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -UEContextReleaseRequest ::= SEQUENCE { - ueContextReleaseRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -Paging ::= SEQUENCE { - paging-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -DownlinkNASTransport ::= SEQUENCE { - downlinkNASTransport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -InitialUEMessage ::= SEQUENCE { - initialUEMessage-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -UplinkNASTransport ::= SEQUENCE { - uplinkNASTransport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -NASNonDeliveryIndication ::= SEQUENCE { - nasNonDeliveryIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -HandoverCancel ::= SEQUENCE { - handoverCancel-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -HandoverCancelAcknowledge ::= SEQUENCE { - handoverCancelAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -Reset ::= SEQUENCE { - reset-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ResetAcknowledge ::= SEQUENCE { - resetAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -S1SetupResponse ::= SEQUENCE { - s1SetupResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -S1SetupRequest ::= SEQUENCE { - s1SetupRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -S1SetupFailure ::= SEQUENCE -{ - s1SetupFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ErrorIndication ::= SEQUENCE { - errorIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ENBConfigurationUpdate ::= SEQUENCE { - eNBConfigurationUpdate-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ENBConfigurationUpdateAcknowledge ::= SEQUENCE { - eNBConfigurationUpdateAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ENBConfigurationUpdateFailure ::= SEQUENCE { - eNBConfigurationUpdateFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -MMEConfigurationUpdate ::= SEQUENCE { - mmeConfigurationUpdate-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -MMEConfigurationUpdateAcknowledge ::= SEQUENCE { - mmeConfigurationUpdateAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -MMEConfigurationUpdateFailure ::= SEQUENCE { - mmeConfigurationUpdateFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -DownlinkS1cdma2000tunneling ::= SEQUENCE { - downlinkS1cdma2000tunneling-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -UplinkS1cdma2000tunneling ::= SEQUENCE { - uplinkS1cdma2000tunneling-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -UEContextModificationRequest ::= SEQUENCE { - ueContextModificationRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -UEContextModificationResponse ::= SEQUENCE { - ueContextModificationResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -UEContextModificationFailure ::= SEQUENCE { - ueContextModificationFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -UECapabilityInfoIndication ::= SEQUENCE { - ueCapabilityInfoIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -UEContextReleaseCommand ::= SEQUENCE { - ueContextReleaseCommand-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -UEContextReleaseComplete ::= SEQUENCE { - ueContextReleaseComplete-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ENBStatusTransfer ::= SEQUENCE { - eNBStatusTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -MMEStatusTransfer ::= SEQUENCE { - mmeStatusTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -DeactivateTrace ::= SEQUENCE { - deactivateTrace-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -TraceStart ::= SEQUENCE { - traceStart-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -TraceFailureIndication ::= SEQUENCE { - traceFailureIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -CellTrafficTrace ::= SEQUENCE { - cellTrafficTrace-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -LocationReportingControl ::= SEQUENCE { - locationReportingControl-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -LocationReportingFailureIndication ::= SEQUENCE { - locationReportingFailureIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -LocationReport ::= SEQUENCE { - locationReport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -OverloadStart ::= SEQUENCE { - overloadStart-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -OverloadStop ::= SEQUENCE { - overloadStop-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -WriteReplaceWarningRequest ::= SEQUENCE { - writeReplaceWarningRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -WriteReplaceWarningResponse ::= SEQUENCE { - writeReplaceWarningResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ENBDirectInformationTransfer ::= SEQUENCE { - eNBDirectInformationTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -MMEDirectInformationTransfer ::= SEQUENCE { - mmeDirectInformationTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -ENBConfigurationTransfer ::= SEQUENCE { - eNBConfigurationTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -MMEConfigurationTransfer ::= SEQUENCE { - mmeConfigurationTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -PrivateMessage ::= SEQUENCE { - privateMessage-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -KillRequest ::= SEQUENCE { - killRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -KillResponse ::= SEQUENCE { - killResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -DownlinkUEAssociatedLPPaTransport ::= SEQUENCE { - downlinkUEAssociatedLPPaTransport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -UplinkUEAssociatedLPPaTransport ::= SEQUENCE { - uplinkUEAssociatedLPPaTransport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -DownlinkNonUEAssociatedLPPaTransport ::= SEQUENCE { - downlinkNonUEAssociatedLPPaTransport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -UplinkNonUEAssociatedLPPaTransport ::= SEQUENCE { - uplinkNonUEAssociatedLPPaTransport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE, - ... -} - -IE ::= SEQUENCE { - id ProtocolIE-ID, - criticality Criticality, - value ANY -} - -END \ No newline at end of file diff --git a/openair3/S1AP/MESSAGES/ASN1/R9/s1ap-9.10.0.asn1 b/openair3/S1AP/MESSAGES/ASN1/R9/s1ap-9.10.0.asn1 new file mode 100755 index 0000000000..29de33be12 --- /dev/null +++ b/openair3/S1AP/MESSAGES/ASN1/R9/s1ap-9.10.0.asn1 @@ -0,0 +1,4698 @@ +-- ************************************************************** +-- +-- Elementary Procedure definitions +-- +-- ************************************************************** + +S1AP-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Descriptions (0)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + ProcedureCode +FROM S1AP-CommonDataTypes + + CellTrafficTrace, + DeactivateTrace, + DownlinkUEAssociatedLPPaTransport, + DownlinkNASTransport, + DownlinkNonUEAssociatedLPPaTransport, + DownlinkS1cdma2000tunneling, + ENBDirectInformationTransfer, + ENBStatusTransfer, + ENBConfigurationUpdate, + ENBConfigurationUpdateAcknowledge, + ENBConfigurationUpdateFailure, + ErrorIndication, + HandoverCancel, + HandoverCancelAcknowledge, + HandoverCommand, + HandoverFailure, + HandoverNotify, + HandoverPreparationFailure, + HandoverRequest, + HandoverRequestAcknowledge, + HandoverRequired, + InitialContextSetupFailure, + InitialContextSetupRequest, + InitialContextSetupResponse, + InitialUEMessage, + KillRequest, + KillResponse, + LocationReportingControl, + LocationReportingFailureIndication, + LocationReport, + MMEConfigurationUpdate, + MMEConfigurationUpdateAcknowledge, + MMEConfigurationUpdateFailure, + MMEDirectInformationTransfer, + MMEStatusTransfer, + NASNonDeliveryIndication, + OverloadStart, + OverloadStop, + Paging, + PathSwitchRequest, + PathSwitchRequestAcknowledge, + PathSwitchRequestFailure, + PrivateMessage, + Reset, + ResetAcknowledge, + S1SetupFailure, + S1SetupRequest, + S1SetupResponse, + E-RABModifyRequest, + E-RABModifyResponse, + E-RABReleaseCommand, + E-RABReleaseResponse, + E-RABReleaseIndication, + E-RABSetupRequest, + E-RABSetupResponse, + TraceFailureIndication, + TraceStart, + UECapabilityInfoIndication, + UEContextModificationFailure, + UEContextModificationRequest, + UEContextModificationResponse, + UEContextReleaseCommand, + UEContextReleaseComplete, + UEContextReleaseRequest, + UplinkUEAssociatedLPPaTransport, + UplinkNASTransport, + UplinkNonUEAssociatedLPPaTransport, + UplinkS1cdma2000tunneling, + WriteReplaceWarningRequest, + WriteReplaceWarningResponse, + ENBConfigurationTransfer, + MMEConfigurationTransfer + + +FROM S1AP-PDU-Contents + + id-CellTrafficTrace, + id-DeactivateTrace, + id-downlinkUEAssociatedLPPaTransport, + id-downlinkNASTransport, + id-downlinkNonUEAssociatedLPPaTransport, + id-DownlinkS1cdma2000tunneling, + id-eNBStatusTransfer, + id-ErrorIndication, + id-HandoverCancel, + id-HandoverNotification, + id-HandoverPreparation, + id-HandoverResourceAllocation, + id-InitialContextSetup, + id-initialUEMessage, + id-ENBConfigurationUpdate, + id-Kill, + id-LocationReportingControl, + id-LocationReportingFailureIndication, + id-LocationReport, + id-eNBDirectInformationTransfer, + id-MMEConfigurationUpdate, + id-MMEDirectInformationTransfer, + id-MMEStatusTransfer, + id-NASNonDeliveryIndication, + id-OverloadStart, + id-OverloadStop, + id-Paging, + id-PathSwitchRequest, + id-PrivateMessage, + id-Reset, + id-S1Setup, + id-E-RABModify, + id-E-RABRelease, + id-E-RABReleaseIndication, + id-E-RABSetup, + id-TraceFailureIndication, + id-TraceStart, + id-UECapabilityInfoIndication, + id-UEContextModification, + id-UEContextRelease, + id-UEContextReleaseRequest, + id-uplinkUEAssociatedLPPaTransport, + id-uplinkNASTransport, + id-uplinkNonUEAssociatedLPPaTransport, + id-UplinkS1cdma2000tunneling, + id-WriteReplaceWarning, + id-eNBConfigurationTransfer, + id-MMEConfigurationTransfer +FROM S1AP-Constants; + + +-- ************************************************************** +-- +-- Interface Elementary Procedure Class +-- +-- ************************************************************** + +S1AP-ELEMENTARY-PROCEDURE ::= CLASS { + &InitiatingMessage , + &SuccessfulOutcome OPTIONAL, + &UnsuccessfulOutcome OPTIONAL, + &procedureCode ProcedureCode UNIQUE, + &criticality Criticality DEFAULT ignore +} +WITH SYNTAX { + INITIATING MESSAGE &InitiatingMessage + [SUCCESSFUL OUTCOME &SuccessfulOutcome] + [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] + PROCEDURE CODE &procedureCode + [CRITICALITY &criticality] +} + +-- ************************************************************** +-- +-- Interface PDU Definition +-- +-- ************************************************************** + +S1AP-PDU ::= CHOICE { + initiatingMessage InitiatingMessage, + successfulOutcome SuccessfulOutcome, + unsuccessfulOutcome UnsuccessfulOutcome, + ... +} + +InitiatingMessage ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +SuccessfulOutcome ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +UnsuccessfulOutcome ::= SEQUENCE { + procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value S1AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +-- ************************************************************** +-- +-- Interface Elementary Procedure List +-- +-- ************************************************************** + +S1AP-ELEMENTARY-PROCEDURES S1AP-ELEMENTARY-PROCEDURE ::= { + S1AP-ELEMENTARY-PROCEDURES-CLASS-1 | + S1AP-ELEMENTARY-PROCEDURES-CLASS-2, + ... +} + + +S1AP-ELEMENTARY-PROCEDURES-CLASS-1 S1AP-ELEMENTARY-PROCEDURE ::= { + handoverPreparation | + handoverResourceAllocation | + pathSwitchRequest | + e-RABSetup | + e-RABModify | + e-RABRelease | + initialContextSetup | + handoverCancel | + kill | + reset | + s1Setup | + uEContextModification | + uEContextRelease | + eNBConfigurationUpdate | + mMEConfigurationUpdate | + writeReplaceWarning , + ... +} + +S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= { + handoverNotification | + e-RABReleaseIndication | + paging | + downlinkNASTransport | + initialUEMessage | + uplinkNASTransport | + errorIndication | + nASNonDeliveryIndication | + uEContextReleaseRequest | + downlinkS1cdma2000tunneling | + uplinkS1cdma2000tunneling | + uECapabilityInfoIndication | + eNBStatusTransfer | + mMEStatusTransfer | + deactivateTrace | + traceStart | + traceFailureIndication | + cellTrafficTrace | + locationReportingControl | + locationReportingFailureIndication | + locationReport | + overloadStart | + overloadStop | + eNBDirectInformationTransfer | + mMEDirectInformationTransfer | + eNBConfigurationTransfer | + mMEConfigurationTransfer | + privateMessage , + ..., + downlinkUEAssociatedLPPaTransport | + uplinkUEAssociatedLPPaTransport | + downlinkNonUEAssociatedLPPaTransport | + uplinkNonUEAssociatedLPPaTransport +} + +-- ************************************************************** +-- +-- Interface Elementary Procedures +-- +-- ************************************************************** + +handoverPreparation S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequired + SUCCESSFUL OUTCOME HandoverCommand + UNSUCCESSFUL OUTCOME HandoverPreparationFailure + PROCEDURE CODE id-HandoverPreparation + CRITICALITY reject +} + +handoverResourceAllocation S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequest + SUCCESSFUL OUTCOME HandoverRequestAcknowledge + UNSUCCESSFUL OUTCOME HandoverFailure + PROCEDURE CODE id-HandoverResourceAllocation + CRITICALITY reject +} + +handoverNotification S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverNotify + PROCEDURE CODE id-HandoverNotification + CRITICALITY ignore +} + +pathSwitchRequest S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PathSwitchRequest + SUCCESSFUL OUTCOME PathSwitchRequestAcknowledge + UNSUCCESSFUL OUTCOME PathSwitchRequestFailure + PROCEDURE CODE id-PathSwitchRequest + CRITICALITY reject +} + +e-RABSetup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABSetupRequest + SUCCESSFUL OUTCOME E-RABSetupResponse + PROCEDURE CODE id-E-RABSetup + CRITICALITY reject +} + +e-RABModify S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABModifyRequest + SUCCESSFUL OUTCOME E-RABModifyResponse + PROCEDURE CODE id-E-RABModify + CRITICALITY reject +} + +e-RABRelease S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABReleaseCommand + SUCCESSFUL OUTCOME E-RABReleaseResponse + PROCEDURE CODE id-E-RABRelease + CRITICALITY reject +} + +e-RABReleaseIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-RABReleaseIndication + PROCEDURE CODE id-E-RABReleaseIndication + CRITICALITY ignore +} + +initialContextSetup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE InitialContextSetupRequest + SUCCESSFUL OUTCOME InitialContextSetupResponse + UNSUCCESSFUL OUTCOME InitialContextSetupFailure + PROCEDURE CODE id-InitialContextSetup + CRITICALITY reject +} + +uEContextReleaseRequest S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextReleaseRequest + PROCEDURE CODE id-UEContextReleaseRequest + CRITICALITY ignore +} + +paging S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE Paging + PROCEDURE CODE id-Paging + CRITICALITY ignore +} + +downlinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkNASTransport + PROCEDURE CODE id-downlinkNASTransport + CRITICALITY ignore +} + +initialUEMessage S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE InitialUEMessage + PROCEDURE CODE id-initialUEMessage + CRITICALITY ignore +} + +uplinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkNASTransport + PROCEDURE CODE id-uplinkNASTransport + CRITICALITY ignore +} +nASNonDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE NASNonDeliveryIndication + PROCEDURE CODE id-NASNonDeliveryIndication + CRITICALITY ignore +} + +handoverCancel S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverCancel + SUCCESSFUL OUTCOME HandoverCancelAcknowledge + PROCEDURE CODE id-HandoverCancel + CRITICALITY reject +} + +reset S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE Reset + SUCCESSFUL OUTCOME ResetAcknowledge + PROCEDURE CODE id-Reset + CRITICALITY reject +} + +errorIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ErrorIndication + PROCEDURE CODE id-ErrorIndication + CRITICALITY ignore +} + +s1Setup S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE S1SetupRequest + SUCCESSFUL OUTCOME S1SetupResponse + UNSUCCESSFUL OUTCOME S1SetupFailure + PROCEDURE CODE id-S1Setup + CRITICALITY reject +} + +eNBConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationUpdate + SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure + PROCEDURE CODE id-ENBConfigurationUpdate + CRITICALITY reject +} + +mMEConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEConfigurationUpdate + SUCCESSFUL OUTCOME MMEConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME MMEConfigurationUpdateFailure + PROCEDURE CODE id-MMEConfigurationUpdate + CRITICALITY reject +} + +downlinkS1cdma2000tunneling S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkS1cdma2000tunneling + PROCEDURE CODE id-DownlinkS1cdma2000tunneling + CRITICALITY ignore +} + +uplinkS1cdma2000tunneling S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkS1cdma2000tunneling + PROCEDURE CODE id-UplinkS1cdma2000tunneling + CRITICALITY ignore +} + +uEContextModification S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextModificationRequest + SUCCESSFUL OUTCOME UEContextModificationResponse + UNSUCCESSFUL OUTCOME UEContextModificationFailure + + PROCEDURE CODE id-UEContextModification + CRITICALITY reject +} + +uECapabilityInfoIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UECapabilityInfoIndication + PROCEDURE CODE id-UECapabilityInfoIndication + CRITICALITY ignore +} + +uEContextRelease S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextReleaseCommand + SUCCESSFUL OUTCOME UEContextReleaseComplete + PROCEDURE CODE id-UEContextRelease + CRITICALITY reject +} + +eNBStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBStatusTransfer + PROCEDURE CODE id-eNBStatusTransfer + CRITICALITY ignore +} + +mMEStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEStatusTransfer + PROCEDURE CODE id-MMEStatusTransfer + CRITICALITY ignore +} + +deactivateTrace S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DeactivateTrace + PROCEDURE CODE id-DeactivateTrace + CRITICALITY ignore +} + +traceStart S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE TraceStart + PROCEDURE CODE id-TraceStart + CRITICALITY ignore +} + +traceFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE TraceFailureIndication + PROCEDURE CODE id-TraceFailureIndication + CRITICALITY ignore +} +cellTrafficTrace S1AP-ELEMENTARY-PROCEDURE ::={ +INITIATING MESSAGE CellTrafficTrace +PROCEDURE CODE id-CellTrafficTrace +CRITICALITY ignore +} + +locationReportingControl S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReportingControl + PROCEDURE CODE id-LocationReportingControl + CRITICALITY ignore +} + +locationReportingFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReportingFailureIndication + PROCEDURE CODE id-LocationReportingFailureIndication + CRITICALITY ignore +} + +locationReport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE LocationReport + PROCEDURE CODE id-LocationReport + CRITICALITY ignore +} + +overloadStart S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE OverloadStart + PROCEDURE CODE id-OverloadStart + CRITICALITY ignore +} + +overloadStop S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE OverloadStop + PROCEDURE CODE id-OverloadStop + CRITICALITY reject +} + +writeReplaceWarning S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE WriteReplaceWarningRequest + SUCCESSFUL OUTCOME WriteReplaceWarningResponse + PROCEDURE CODE id-WriteReplaceWarning + CRITICALITY reject +} + +eNBDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBDirectInformationTransfer + PROCEDURE CODE id-eNBDirectInformationTransfer + CRITICALITY ignore +} + +mMEDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEDirectInformationTransfer + PROCEDURE CODE id-MMEDirectInformationTransfer + CRITICALITY ignore +} + +eNBConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationTransfer + PROCEDURE CODE id-eNBConfigurationTransfer + CRITICALITY ignore +} + +mMEConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEConfigurationTransfer + PROCEDURE CODE id-MMEConfigurationTransfer + CRITICALITY ignore +} + + +privateMessage S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PrivateMessage + PROCEDURE CODE id-PrivateMessage + CRITICALITY ignore +} + +kill S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE KillRequest + SUCCESSFUL OUTCOME KillResponse + PROCEDURE CODE id-Kill + CRITICALITY reject +} + +downlinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkUEAssociatedLPPaTransport + PROCEDURE CODE id-downlinkUEAssociatedLPPaTransport + CRITICALITY ignore +} + +uplinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkUEAssociatedLPPaTransport + PROCEDURE CODE id-uplinkUEAssociatedLPPaTransport + CRITICALITY ignore +} +downlinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DownlinkNonUEAssociatedLPPaTransport + PROCEDURE CODE id-downlinkNonUEAssociatedLPPaTransport + CRITICALITY ignore +} + +uplinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UplinkNonUEAssociatedLPPaTransport + PROCEDURE CODE id-uplinkNonUEAssociatedLPPaTransport + CRITICALITY ignore +} + +END + + + +-- ************************************************************** +-- +-- PDU definitions for S1AP. +-- +-- ************************************************************** + +S1AP-PDU-Contents { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Contents (1) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + + UEAggregateMaximumBitrate, + Cause, + CellAccessMode, + Cdma2000HORequiredIndication, + Cdma2000HOStatus, + Cdma2000OneXSRVCCInfo, + Cdma2000OneXRAND, + Cdma2000PDU, + Cdma2000RATType, + Cdma2000SectorID, + EUTRANRoundTripDelayEstimationInfo, + CNDomain, + ConcurrentWarningMessageIndicator, + CriticalityDiagnostics, + CSFallbackIndicator, + CSG-Id, + CSG-IdList, + CSGMembershipStatus, + Data-Forwarding-Not-Possible, + Direct-Forwarding-Path-Availability, + Global-ENB-ID, + EUTRAN-CGI, + ENBname, + ENB-StatusTransfer-TransparentContainer, + ENB-UE-S1AP-ID, + ExtendedRepetitionPeriod, + GTP-TEID, + GUMMEI, + HandoverRestrictionList, + HandoverType, + LAI, + LPPa-PDU, + MMEname, + MME-UE-S1AP-ID, + MSClassmark2, + MSClassmark3, + NAS-PDU, + NASSecurityParametersfromE-UTRAN, + NASSecurityParameterstoE-UTRAN, + OverloadResponse, + PagingDRX, + PLMNidentity, + RIMTransfer, + RelativeMMECapacity, + RequestType, + E-RAB-ID, + E-RABLevelQoSParameters, + E-RABList, + Routing-ID, + SecurityKey, + SecurityContext, + ServedGUMMEIs, + SONConfigurationTransfer, + Source-ToTarget-TransparentContainer, + SourceBSS-ToTargetBSS-TransparentContainer, + SourceeNB-ToTargeteNB-TransparentContainer, + SourceRNC-ToTargetRNC-TransparentContainer, + SubscriberProfileIDforRFP, + SRVCCOperationPossible, + SRVCCHOIndication, + SupportedTAs, + TAI, + Target-ToSource-TransparentContainer, + TargetBSS-ToSourceBSS-TransparentContainer, + TargeteNB-ToSourceeNB-TransparentContainer, + TargetID, + TargetRNC-ToSourceRNC-TransparentContainer, + TimeToWait, + TraceActivation, + E-UTRAN-Trace-ID, + TransportLayerAddress, + UEIdentityIndexValue, + UEPagingID, + UERadioCapability, + UE-S1AP-IDs, + UE-associatedLogicalS1-ConnectionItem, + UESecurityCapabilities, + S-TMSI, + MessageIdentifier, + SerialNumber, + WarningAreaList, + RepetitionPeriod, + NumberofBroadcastRequest, + WarningType, + WarningSecurityInfo, + DataCodingScheme, + WarningMessageContents, + BroadcastCompletedAreaList, + RRC-Establishment-Cause, + BroadcastCancelledAreaList, + PS-ServiceNotAvailable + +FROM S1AP-IEs + + PrivateIE-Container{}, + ProtocolExtensionContainer{}, + ProtocolIE-Container{}, + ProtocolIE-ContainerList{}, + ProtocolIE-ContainerPair{}, + ProtocolIE-ContainerPairList{}, + ProtocolIE-SingleContainer{}, + S1AP-PRIVATE-IES, + S1AP-PROTOCOL-EXTENSION, + S1AP-PROTOCOL-IES, + S1AP-PROTOCOL-IES-PAIR +FROM S1AP-Containers + + + id-uEaggregateMaximumBitrate, + id-Cause, + id-CellAccessMode, + id-cdma2000HORequiredIndication, + id-cdma2000HOStatus, + id-cdma2000OneXSRVCCInfo, + id-cdma2000OneXRAND, + id-cdma2000PDU, + id-cdma2000RATType, + id-cdma2000SectorID, + id-EUTRANRoundTripDelayEstimationInfo, + id-CNDomain, + id-ConcurrentWarningMessageIndicator, + id-CriticalityDiagnostics, + id-CSFallbackIndicator, + id-CSG-Id, + id-CSG-IdList, + id-CSGMembershipStatus, + id-Data-Forwarding-Not-Possible, + id-DefaultPagingDRX, + id-Direct-Forwarding-Path-Availability, + id-Global-ENB-ID, + id-EUTRAN-CGI, + id-eNBname, + id-eNB-StatusTransfer-TransparentContainer, + id-eNB-UE-S1AP-ID, + id-GERANtoLTEHOInformationRes, + id-GUMMEI-ID, + id-HandoverRestrictionList, + id-HandoverType, + id-InitialContextSetup, + id-Inter-SystemInformationTransferTypeEDT, + id-Inter-SystemInformationTransferTypeMDT, + id-LPPa-PDU, + id-NAS-DownlinkCount, + id-MMEname, + id-MME-UE-S1AP-ID, + id-MSClassmark2, + id-MSClassmark3, + id-NAS-PDU, + id-NASSecurityParametersfromE-UTRAN, + id-NASSecurityParameterstoE-UTRAN, + id-OverloadResponse, + id-pagingDRX, + id-RelativeMMECapacity, + id-RequestType, + id-Routing-ID, + id-E-RABAdmittedItem, + id-E-RABAdmittedList, + id-E-RABDataForwardingItem, + id-E-RABFailedToModifyList, + id-E-RABFailedToReleaseList, + id-E-RABFailedtoSetupItemHOReqAck, + id-E-RABFailedToSetupListBearerSURes, + id-E-RABFailedToSetupListCtxtSURes, + id-E-RABFailedToSetupListHOReqAck, + id-E-RABFailedToBeReleasedList, + id-E-RABModify, + id-E-RABModifyItemBearerModRes, + id-E-RABModifyListBearerModRes, + id-E-RABRelease, + id-E-RABReleaseItemBearerRelComp, + id-E-RABReleaseItemHOCmd, + id-E-RABReleaseListBearerRelComp, + id-E-RABReleaseIndication, + id-E-RABSetup, + id-E-RABSetupItemBearerSURes, + id-E-RABSetupItemCtxtSURes, + id-E-RABSetupListBearerSURes, + id-E-RABSetupListCtxtSURes, + id-E-RABSubjecttoDataForwardingList, + id-E-RABToBeModifiedItemBearerModReq, + id-E-RABToBeModifiedListBearerModReq, + id-E-RABToBeReleasedList, + id-E-RABReleasedList, + id-E-RABToBeSetupItemBearerSUReq, + id-E-RABToBeSetupItemCtxtSUReq, + id-E-RABToBeSetupItemHOReq, + id-E-RABToBeSetupListBearerSUReq, + id-E-RABToBeSetupListCtxtSUReq, + id-E-RABToBeSetupListHOReq, + id-E-RABToBeSwitchedDLItem, + id-E-RABToBeSwitchedDLList, + id-E-RABToBeSwitchedULList, + id-E-RABToBeSwitchedULItem, + id-E-RABtoReleaseListHOCmd, + id-SecurityKey, + id-SecurityContext, + id-ServedGUMMEIs, + id-SONConfigurationTransferECT, + id-SONConfigurationTransferMCT, + id-Source-ToTarget-TransparentContainer, + id-Source-ToTarget-TransparentContainer-Secondary, + id-SourceMME-UE-S1AP-ID, + id-SRVCCOperationPossible, + id-SRVCCHOIndication, + id-SubscriberProfileIDforRFP, + id-SupportedTAs, + id-S-TMSI, + id-TAI, + id-TAIItem, + id-TAIList, + id-Target-ToSource-TransparentContainer, + id-Target-ToSource-TransparentContainer-Secondary, + id-TargetID, + id-TimeToWait, + id-TraceActivation, + id-E-UTRAN-Trace-ID, + id-UEIdentityIndexValue, + id-UEPagingID, + id-UERadioCapability, + id-UTRANtoLTEHOInformationRes, + id-UE-associatedLogicalS1-ConnectionListResAck, + id-UE-associatedLogicalS1-ConnectionItem, + id-UESecurityCapabilities, + id-UE-S1AP-IDs, + id-ResetType, + id-MessageIdentifier, + id-SerialNumber, + id-WarningAreaList, + id-RepetitionPeriod, + id-NumberofBroadcastRequest, + id-WarningType, + id-WarningSecurityInfo, + id-DataCodingScheme, + id-WarningMessageContents, + id-BroadcastCompletedAreaList, + id-BroadcastCancelledAreaList, + id-RRC-Establishment-Cause, + id-TraceCollectionEntityIPAddress, maxnoofTAIs, + maxNrOfErrors, + maxNrOfE-RABs, + maxNrOfIndividualS1ConnectionsToReset, + maxnoofEmergencyAreaID, + maxnoofCellID, + maxnoofTAIforWarning, + maxnoofCellinTAI, + maxnoofCellinEAI, + id-ExtendedRepetitionPeriod, + id-PS-ServiceNotAvailable, + id-RegisteredLAI + + +FROM S1AP-Constants; + +-- ************************************************************** +-- +-- Common Container Lists +-- +-- ************************************************************** + +E-RAB-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfE-RABs, {IEsSetParam} } +E-RAB-IE-ContainerPairList { S1AP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxNrOfE-RABs, {IEsSetParam} } +ProtocolError-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfE-RABs, {IEsSetParam} } + +-- ************************************************************** +-- +-- HANDOVER PREPARATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Required +-- +-- ************************************************************** + +HandoverRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverRequiredIEs} }, + ... +} + +HandoverRequiredIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TargetID CRITICALITY reject TYPE TargetID PRESENCE mandatory }| + { ID id-Direct-Forwarding-Path-Availability CRITICALITY ignore TYPE Direct-Forwarding-Path-Availability PRESENCE optional }| + { ID id-SRVCCHOIndication CRITICALITY reject TYPE SRVCCHOIndication PRESENCE optional }| + { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory }| + { ID id-Source-ToTarget-TransparentContainer-Secondary CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE optional }| + { ID id-MSClassmark2 CRITICALITY reject TYPE MSClassmark2 PRESENCE conditional }| + { ID id-MSClassmark3 CRITICALITY ignore TYPE MSClassmark3 PRESENCE conditional }| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional }| + { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional }| + { ID id-PS-ServiceNotAvailable CRITICALITY ignore TYPE PS-ServiceNotAvailable PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- Handover Command +-- +-- ************************************************************** + +HandoverCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCommandIEs} }, + ... +} + +HandoverCommandIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory } | + { ID id-NASSecurityParametersfromE-UTRAN CRITICALITY reject TYPE NASSecurityParametersfromE-UTRAN PRESENCE conditional + -- This IE shall be present if HandoverType IE is set to value "LTEtoUTRAN" or "LTEtoGERAN" -- }| + { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional } | + { ID id-E-RABtoReleaseListHOCmd CRITICALITY ignore TYPE E-RABList PRESENCE optional } | + { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory }| + { ID id-Target-ToSource-TransparentContainer-Secondary CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +E-RABSubjecttoDataForwardingList ::= E-RAB-IE-ContainerList { {E-RABDataForwardingItemIEs} } + +E-RABDataForwardingItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABDataForwardingItem CRITICALITY ignore TYPE E-RABDataForwardingItem PRESENCE mandatory }, + ... +} + +E-RABDataForwardingItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-transportLayerAddress TransportLayerAddress OPTIONAL, + dL-gTP-TEID GTP-TEID OPTIONAL, + uL-TransportLayerAddress TransportLayerAddress OPTIONAL, + uL-GTP-TEID GTP-TEID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { E-RABDataForwardingItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABDataForwardingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- Handover Preparation Failure +-- +-- ************************************************************** + +HandoverPreparationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverPreparationFailureIEs} }, + ... +} + +HandoverPreparationFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER RESOURCE ALLOCATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Request +-- +-- ************************************************************** + +HandoverRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {HandoverRequestIEs} }, + ... +} + +HandoverRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory } | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } | + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory }| + { ID id-E-RABToBeSetupListHOReq CRITICALITY reject TYPE E-RABToBeSetupListHOReq PRESENCE mandatory } | + { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory } | + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory }| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional }| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional }| + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE optional }| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional }| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}| + { ID id-NASSecurityParameterstoE-UTRAN CRITICALITY reject TYPE NASSecurityParameterstoE-UTRAN PRESENCE conditional + -- This IE shall be present if the Handover Type IE is set to the value "UTRANtoLTE" or "GERANtoLTE" -- } | + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional} | + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional} , + ... +} + +E-RABToBeSetupListHOReq ::= E-RAB-IE-ContainerList { {E-RABToBeSetupItemHOReqIEs} } + +E-RABToBeSetupItemHOReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemHOReq CRITICALITY reject TYPE E-RABToBeSetupItemHOReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemHOReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + e-RABlevelQosParameters E-RABLevelQoSParameters, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemHOReq-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSetupItemHOReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + {ID id-Data-Forwarding-Not-Possible CRITICALITY ignore EXTENSION Data-Forwarding-Not-Possible PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- Handover Request Acknowledge +-- +-- ************************************************************** + +HandoverRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {HandoverRequestAcknowledgeIEs} }, + ... +} + +HandoverRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-E-RABAdmittedList CRITICALITY ignore TYPE E-RABAdmittedList PRESENCE mandatory } | + { ID id-E-RABFailedToSetupListHOReqAck CRITICALITY ignore TYPE E-RABFailedtoSetupListHOReqAck PRESENCE optional } | + { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory }| + { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional } | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +E-RABAdmittedList ::= E-RAB-IE-ContainerList { {E-RABAdmittedItemIEs} } + +E-RABAdmittedItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABAdmittedItem CRITICALITY ignore TYPE E-RABAdmittedItem PRESENCE mandatory }, + ... +} + +E-RABAdmittedItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + dL-transportLayerAddress TransportLayerAddress OPTIONAL, + dL-gTP-TEID GTP-TEID OPTIONAL, + uL-TransportLayerAddress TransportLayerAddress OPTIONAL, + uL-GTP-TEID GTP-TEID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABAdmittedItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABAdmittedItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABFailedtoSetupListHOReqAck ::= E-RAB-IE-ContainerList { {E-RABFailedtoSetupItemHOReqAckIEs} } + +E-RABFailedtoSetupItemHOReqAckIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABFailedtoSetupItemHOReqAck CRITICALITY ignore TYPE E-RABFailedToSetupItemHOReqAck PRESENCE mandatory }, + ... +} + +E-RABFailedToSetupItemHOReqAck ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { E-RABFailedToSetupItemHOReqAckExtIEs} } OPTIONAL, + ... +} + +E-RABFailedToSetupItemHOReqAckExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Handover Failure +-- +-- ************************************************************** + +HandoverFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverFailureIEs} }, + ... +} + +HandoverFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER NOTIFICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Notify +-- +-- ************************************************************** + +HandoverNotify ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverNotifyIEs} }, + ... +} + +HandoverNotifyIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- PATH SWITCH REQUEST ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Path Switch Request +-- +-- ************************************************************** + +PathSwitchRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestIEs} }, + ... +} + +PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABToBeSwitchedDLList CRITICALITY reject TYPE E-RABToBeSwitchedDLList PRESENCE mandatory }| + { ID id-SourceMME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY ignore TYPE UESecurityCapabilities PRESENCE mandatory }, + ... +} + +E-RABToBeSwitchedDLList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedDLItemIEs} } + +E-RABToBeSwitchedDLItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSwitchedDLItem CRITICALITY reject TYPE E-RABToBeSwitchedDLItem PRESENCE mandatory }, + ... +} + +E-RABToBeSwitchedDLItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedDLItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSwitchedDLItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Path Switch Request Acknowledge +-- +-- ************************************************************** + +PathSwitchRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestAcknowledgeIEs} }, + ... +} + +PathSwitchRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeSwitchedULList CRITICALITY ignore TYPE E-RABToBeSwitchedULList PRESENCE optional }| + { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +E-RABToBeSwitchedULList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedULItemIEs} } + +E-RABToBeSwitchedULItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSwitchedULItem CRITICALITY ignore TYPE E-RABToBeSwitchedULItem PRESENCE mandatory }, + ... +} + +E-RABToBeSwitchedULItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedULItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABToBeSwitchedULItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Path Switch Request Failure +-- +-- ************************************************************** + +PathSwitchRequestFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { PathSwitchRequestFailureIEs} }, + ... +} + +PathSwitchRequestFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER CANCEL ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Handover Cancel +-- +-- ************************************************************** + +HandoverCancel ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCancelIEs} }, + ... +} + +HandoverCancelIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Handover Cancel Request Acknowledge +-- +-- ************************************************************** + +HandoverCancelAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { HandoverCancelAcknowledgeIEs} }, + ... +} + +HandoverCancelAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- E-RAB SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Setup Request +-- +-- ************************************************************** + +E-RABSetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABSetupRequestIEs} }, + ... +} + +E-RABSetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeSetupListBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupListBearerSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupListBearerSUReq ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemBearerSUReqIEs} } + +E-RABToBeSetupItemBearerSUReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupItemBearerSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemBearerSUReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABlevelQoSParameters E-RABLevelQoSParameters, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + nAS-PDU NAS-PDU, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemBearerSUReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeSetupItemBearerSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- E-RAB Setup Response +-- +-- ************************************************************** + +E-RABSetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABSetupResponseIEs} }, + ... +} + +E-RABSetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABSetupListBearerSURes CRITICALITY ignore TYPE E-RABSetupListBearerSURes PRESENCE optional }| + { ID id-E-RABFailedToSetupListBearerSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABSetupListBearerSURes ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemBearerSUResIEs} } + +E-RABSetupItemBearerSUResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABSetupItemBearerSURes CRITICALITY ignore TYPE E-RABSetupItemBearerSURes PRESENCE mandatory }, + ... +} + +E-RABSetupItemBearerSURes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemBearerSUResExtIEs} } OPTIONAL, + ... +} + + +E-RABSetupItemBearerSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- E-RAB MODIFY ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Modify Request +-- +-- ************************************************************** + +E-RABModifyRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABModifyRequestIEs} }, + ... +} + +E-RABModifyRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeModifiedListBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedListBearerModReq PRESENCE mandatory }, + ... +} + +E-RABToBeModifiedListBearerModReq ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeModifiedItemBearerModReqIEs} } + +E-RABToBeModifiedItemBearerModReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeModifiedItemBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModReq PRESENCE mandatory }, + ... +} + +E-RABToBeModifiedItemBearerModReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABLevelQoSParameters E-RABLevelQoSParameters, + nAS-PDU NAS-PDU, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeModifyItemBearerModReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeModifyItemBearerModReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- E-RAB Modify Response +-- +-- ************************************************************** + +E-RABModifyResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABModifyResponseIEs} }, + ... +} + +E-RABModifyResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABModifyListBearerModRes CRITICALITY ignore TYPE E-RABModifyListBearerModRes PRESENCE optional }| + { ID id-E-RABFailedToModifyList CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABModifyListBearerModRes ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModResIEs} } + +E-RABModifyItemBearerModResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABModifyItemBearerModRes CRITICALITY ignore TYPE E-RABModifyItemBearerModRes PRESENCE mandatory }, + ... +} + +E-RABModifyItemBearerModRes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModResExtIEs} } OPTIONAL, + ... +} + + +E-RABModifyItemBearerModResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + + +-- ************************************************************** +-- +-- E-RAB RELEASE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Release Command +-- +-- ************************************************************** + +E-RABReleaseCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABReleaseCommandIEs} }, + ... +} + +E-RABReleaseCommandIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }| + { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- E-RAB Release Response +-- +-- ************************************************************** + +E-RABReleaseResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { E-RABReleaseResponseIEs } }, + ... +} + +E-RABReleaseResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABReleaseListBearerRelComp CRITICALITY ignore TYPE E-RABReleaseListBearerRelComp PRESENCE optional }| + { ID id-E-RABFailedToReleaseList CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABReleaseListBearerRelComp ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABReleaseItemBearerRelCompIEs} } + +E-RABReleaseItemBearerRelCompIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABReleaseItemBearerRelComp CRITICALITY ignore TYPE E-RABReleaseItemBearerRelComp PRESENCE mandatory }, + ... +} + +E-RABReleaseItemBearerRelComp ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + iE-Extensions ProtocolExtensionContainer { {E-RABReleaseItemBearerRelCompExtIEs} } OPTIONAL, + ... +} + + +E-RABReleaseItemBearerRelCompExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- ************************************************************** +-- +-- E-RAB RELEASE INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- E-RAB Release Indication +-- +-- ************************************************************** + +E-RABReleaseIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {E-RABReleaseIndicationIEs} }, + ... +} + +E-RABReleaseIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }, + ... +} +-- ************************************************************** +-- +-- INITIAL CONTEXT SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Initial Context Setup Request +-- +-- ************************************************************** + +InitialContextSetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupRequestIEs} }, + ... +} + +InitialContextSetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory}| + { ID id-E-RABToBeSetupListCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupListCtxtSUReq PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory}| + { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE mandatory}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| + { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}, + ... +} + + + + +E-RABToBeSetupListCtxtSUReq ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemCtxtSUReqIEs} } + +E-RABToBeSetupItemCtxtSUReqIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABToBeSetupItemCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupItemCtxtSUReq PRESENCE mandatory }, + ... +} + +E-RABToBeSetupItemCtxtSUReq ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + e-RABlevelQoSParameters E-RABLevelQoSParameters, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + nAS-PDU NAS-PDU OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemCtxtSUReqExtIEs} } OPTIONAL, + ... +} + + +E-RABToBeSetupItemCtxtSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Initial Context Setup Response +-- +-- ************************************************************** + +InitialContextSetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupResponseIEs} }, + ... +} + +InitialContextSetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-E-RABSetupListCtxtSURes CRITICALITY ignore TYPE E-RABSetupListCtxtSURes PRESENCE mandatory }| + { ID id-E-RABFailedToSetupListCtxtSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +E-RABSetupListCtxtSURes ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemCtxtSUResIEs} } + +E-RABSetupItemCtxtSUResIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABSetupItemCtxtSURes CRITICALITY ignore TYPE E-RABSetupItemCtxtSURes PRESENCE mandatory }, + ... +} + +E-RABSetupItemCtxtSURes ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemCtxtSUResExtIEs} } OPTIONAL, + ... +} + + +E-RABSetupItemCtxtSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- Initial Context Setup Failure +-- +-- ************************************************************** + +InitialContextSetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {InitialContextSetupFailureIEs} }, + ... +} + +InitialContextSetupFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- PAGING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + + +-- ************************************************************** +-- +-- Paging +-- +-- ************************************************************** + +Paging ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{PagingIEs}}, + ... +} + +PagingIEs S1AP-PROTOCOL-IES ::= { + { ID id-UEIdentityIndexValue CRITICALITY ignore TYPE UEIdentityIndexValue PRESENCE mandatory } | + { ID id-UEPagingID CRITICALITY ignore TYPE UEPagingID PRESENCE mandatory } | + { ID id-pagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional } | + { ID id-CNDomain CRITICALITY ignore TYPE CNDomain PRESENCE mandatory } | + { ID id-TAIList CRITICALITY ignore TYPE TAIList PRESENCE mandatory }| + { ID id-CSG-IdList CRITICALITY ignore TYPE CSG-IdList PRESENCE optional }, + ... +} + +TAIList::= SEQUENCE (SIZE(1.. maxnoofTAIs)) OF ProtocolIE-SingleContainer {{TAIItemIEs}} + +TAIItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-TAIItem CRITICALITY ignore TYPE TAIItem PRESENCE mandatory }, + ... +} + +TAIItem ::= SEQUENCE { + tAI TAI, + iE-Extensions ProtocolExtensionContainer { {TAIItemExtIEs} } OPTIONAL, + ... +} + + +TAIItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- UE CONTEXT RELEASE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE CONTEXT RELEASE REQUEST +-- +-- ************************************************************** + +UEContextReleaseRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseRequest-IEs}}, + ... +} + +UEContextReleaseRequest-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} , + ... +} + +-- ************************************************************** +-- +-- UE Context Release Command +-- +-- ************************************************************** + +UEContextReleaseCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseCommand-IEs}}, + ... +} + +UEContextReleaseCommand-IEs S1AP-PROTOCOL-IES ::= { + { ID id-UE-S1AP-IDs CRITICALITY reject TYPE UE-S1AP-IDs PRESENCE mandatory} | + + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} , + ... +} + +-- ************************************************************** +-- +-- UE Context Release Complete +-- +-- ************************************************************** + +UEContextReleaseComplete ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextReleaseComplete-IEs}}, + ... +} + +UEContextReleaseComplete-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- UE CONTEXT MODIFICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Context Modification Request +-- +-- ************************************************************** + +UEContextModificationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationRequestIEs} }, + ... +} + +UEContextModificationRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE optional}| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| + { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional}| + { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}, + ... +} +-- ************************************************************** +-- +-- UE Context Modification Response +-- +-- ************************************************************** + +UEContextModificationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationResponseIEs} }, + ... +} + +UEContextModificationResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +}-- ************************************************************** +-- +-- UE Context Modification Failure +-- +-- ************************************************************** + +UEContextModificationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEContextModificationFailureIEs} }, + ... +} + +UEContextModificationFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- NAS TRANSPORT ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- DOWNLINK NAS TRANSPORT +-- +-- ************************************************************** + +DownlinkNASTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkNASTransport-IEs}}, + ... +} + +DownlinkNASTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory} | + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- INITIAL UE MESSAGE +-- +-- ************************************************************** + +InitialUEMessage ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{InitialUEMessage-IEs}}, + ... +} + +InitialUEMessage-IEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory} | + { ID id-TAI CRITICALITY reject TYPE TAI PRESENCE mandatory} | + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory} | + { ID id-RRC-Establishment-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE mandatory} | + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE optional} | + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional} | + { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE optional} | + { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- UPLINK NAS TRANSPORT +-- +-- ************************************************************** + +UplinkNASTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkNASTransport-IEs}}, + ... +} + +UplinkNASTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory} | + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}, + ... +} +-- ************************************************************** +-- +-- NAS NON DELIVERY INDICATION +-- +-- ************************************************************** + +NASNonDeliveryIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{NASNonDeliveryIndication-IEs}}, + ... +} + +NASNonDeliveryIndication-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory} | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} , + ... +} + +-- ************************************************************** +-- +-- RESET ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Reset +-- +-- ************************************************************** + +Reset ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ResetIEs} }, + ... +} + +ResetIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-ResetType CRITICALITY reject TYPE ResetType PRESENCE mandatory }, + ... +} + +ResetType ::= CHOICE { + s1-Interface ResetAll, + partOfS1-Interface UE-associatedLogicalS1-ConnectionListRes, + ... +} + + + +ResetAll ::= ENUMERATED { + reset-all, + ... +} + +UE-associatedLogicalS1-ConnectionListRes ::= SEQUENCE (SIZE(1.. maxNrOfIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemRes } } + +UE-associatedLogicalS1-ConnectionItemRes S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY reject TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory }, + ... +} + + +-- ************************************************************** +-- +-- Reset Acknowledge +-- +-- ************************************************************** + +ResetAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} }, + ... +} + +ResetAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionListResAck CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionListResAck PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +UE-associatedLogicalS1-ConnectionListResAck ::= SEQUENCE (SIZE(1.. maxNrOfIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemResAck } } + +UE-associatedLogicalS1-ConnectionItemResAck S1AP-PROTOCOL-IES ::= { + { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- ERROR INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Error Indication +-- +-- ************************************************************** + +ErrorIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ErrorIndicationIEs}}, + ... +} + +ErrorIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional } | + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE optional } | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } | + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } , + ... +} + +-- ************************************************************** +-- +-- S1 SETUP ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- S1 Setup Request +-- +-- ************************************************************** + +S1SetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupRequestIEs} }, + ... +} + +S1SetupRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}| + { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional}| + { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE mandatory}| + { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE mandatory}| + { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- S1 Setup Response +-- +-- ************************************************************** + +S1SetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupResponseIEs} }, + ... +} + + +S1SetupResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }| + { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE mandatory }| + { ID id-RelativeMMECapacity CRITICALITY ignore TYPE RelativeMMECapacity PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- S1 Setup Failure +-- +-- ************************************************************** + +S1SetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {S1SetupFailureIEs} }, + ... +} + +S1SetupFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- ENB CONFIGURATION UPDATE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Configuration Update +-- +-- ************************************************************** + +ENBConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateIEs} }, + ... +} + +ENBConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= { + { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional }| + { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE optional }| + { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}| + { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- eNB Configuration Update Acknowledge +-- +-- ************************************************************** + +ENBConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateAcknowledgeIEs} }, + ... +} + + +ENBConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- eNB Configuration Update Failure +-- +-- ************************************************************** + +ENBConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateFailureIEs} }, + ... +} + +ENBConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, +... +} + + +-- ************************************************************** +-- +-- MME Configuration UPDATE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Configuration Update +-- +-- ************************************************************** + +MMEConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateIEs} }, + ... +} + +MMEConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= { + { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }| + { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE optional }| + { ID id-RelativeMMECapacity CRITICALITY reject TYPE RelativeMMECapacity PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- MME Configuration Update Acknowledge +-- +-- ************************************************************** + +MMEConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateAcknowledgeIEs} }, + ... +} + + +MMEConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- MME Configuration Update Failure +-- +-- ************************************************************** + +MMEConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateFailureIEs} }, + ... +} + +MMEConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- DOWNLINK S1 CDMA2000 TUNNELING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Downlink S1 CDMA2000 Tunneling +-- +-- ************************************************************** + +DownlinkS1cdma2000tunneling ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {DownlinkS1cdma2000tunnelingIEs} }, + ... +} + +DownlinkS1cdma2000tunnelingIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional } | + { ID id-cdma2000HOStatus CRITICALITY ignore TYPE Cdma2000HOStatus PRESENCE optional } | + { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory } | + { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- UPLINK S1 CDMA2000 TUNNELING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Uplink S1 CDMA2000 Tunneling +-- +-- ************************************************************** + +UplinkS1cdma2000tunneling ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {UplinkS1cdma2000tunnelingIEs} }, + ... +} + +UplinkS1cdma2000tunnelingIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory } | + { ID id-cdma2000SectorID CRITICALITY reject TYPE Cdma2000SectorID PRESENCE mandatory } | + { ID id-cdma2000HORequiredIndication CRITICALITY ignore TYPE Cdma2000HORequiredIndication PRESENCE optional } | + { ID id-cdma2000OneXSRVCCInfo CRITICALITY reject TYPE Cdma2000OneXSRVCCInfo PRESENCE optional } | + { ID id-cdma2000OneXRAND CRITICALITY reject TYPE Cdma2000OneXRAND PRESENCE optional } | + { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory }| + { ID id-EUTRANRoundTripDelayEstimationInfo CRITICALITY ignore TYPE EUTRANRoundTripDelayEstimationInfo PRESENCE optional}, + -- Extension for Release 9 to assist target HRPD access with the acquisition of the UE -- + ... +} + + +-- ************************************************************** +-- +-- UE CAPABILITY INFO INDICATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- UE Capability Info Indication +-- +-- ************************************************************** + +UECapabilityInfoIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UECapabilityInfoIndicationIEs} }, + ... +} + +UECapabilityInfoIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE mandatory } , + ... +} + +-- ************************************************************** +-- +-- eNB STATUS TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Status Transfer +-- +-- ************************************************************** + +ENBStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {ENBStatusTransferIEs} }, + ... +} + +ENBStatusTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory} , + ... +} + + +-- ************************************************************** +-- +-- MME STATUS TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Status Transfer +-- +-- ************************************************************** + +MMEStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {MMEStatusTransferIEs} }, + ... +} + +MMEStatusTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory} , + ... +} + + +-- ************************************************************** +-- +-- TRACE ELEMENTARY PROCEDURES +-- +-- ************************************************************** +-- ************************************************************** +-- +-- Trace Start +-- +-- ************************************************************** + +TraceStart ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {TraceStartIEs} }, + ... +} + +TraceStartIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- Trace Failure Indication +-- +-- ************************************************************** + +TraceFailureIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {TraceFailureIndicationIEs} }, + ... +} + +TraceFailureIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory} | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} , + ... +} + +-- ************************************************************** +-- +-- DEACTIVATE TRACE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- DEACTIVATE TRACE +-- +-- ************************************************************** + +DeactivateTrace ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { DeactivateTraceIEs} }, + ... +} + +DeactivateTraceIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- CELL TRAFFIC TRACE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- CELL TRAFFIC TRACE +-- +-- ************************************************************** + +CellTrafficTrace ::= SEQUENCE { +protocolIEs ProtocolIE-Container { { CellTrafficTraceIEs } }, +... +} + +CellTrafficTraceIEs S1AP-PROTOCOL-IES ::= { + {ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + {ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + {ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory}| + {ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + {ID id-TraceCollectionEntityIPAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- LOCATION ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Location Reporting Control +-- +-- ************************************************************** + +LocationReportingControl ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportingControlIEs} }, + ... +} + +LocationReportingControlIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory } , + ... +} + +-- ************************************************************** +-- +-- Location Report Failure Indication +-- +-- ************************************************************** + +LocationReportingFailureIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportingFailureIndicationIEs} }, + ... +} + +LocationReportingFailureIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- Location Report +-- +-- ************************************************************** + +LocationReport ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { LocationReportIEs} }, + ... +} + +LocationReportIEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory} | + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory} | + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory} , + ... +} + +-- ************************************************************** +-- +-- OVERLOAD ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Overload Start +-- +-- ************************************************************** + +OverloadStart ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {OverloadStartIEs} }, + ... +} + +OverloadStartIEs S1AP-PROTOCOL-IES ::= { + { ID id-OverloadResponse CRITICALITY reject TYPE OverloadResponse PRESENCE mandatory }, + ... +} +-- ************************************************************** +-- +-- Overload Stop +-- +-- ************************************************************** + +OverloadStop ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {OverloadStopIEs} }, + ... +} + +OverloadStopIEs S1AP-PROTOCOL-IES ::= { + ... +} +-- ************************************************************** +-- +-- WRITE-REPLACE WARNING ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Write-Replace Warning Request +-- +-- ************************************************************** + + +WriteReplaceWarningRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {WriteReplaceWarningRequestIEs} }, + ... +} + +WriteReplaceWarningRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional }| + { ID id-RepetitionPeriod CRITICALITY reject TYPE RepetitionPeriod PRESENCE mandatory }| + { ID id-ExtendedRepetitionPeriod CRITICALITY reject TYPE ExtendedRepetitionPeriod PRESENCE optional }| + { ID id-NumberofBroadcastRequest CRITICALITY reject TYPE NumberofBroadcastRequest PRESENCE mandatory }| + { ID id-WarningType CRITICALITY ignore TYPE WarningType PRESENCE optional }| + { ID id-WarningSecurityInfo CRITICALITY ignore TYPE WarningSecurityInfo PRESENCE optional }| + { ID id-DataCodingScheme CRITICALITY ignore TYPE DataCodingScheme PRESENCE optional }| + { ID id-WarningMessageContents CRITICALITY ignore TYPE WarningMessageContents PRESENCE optional }| + { ID id-ConcurrentWarningMessageIndicator CRITICALITY reject TYPE ConcurrentWarningMessageIndicator PRESENCE optional }, + ... +} +-- ************************************************************** +-- +-- Write-Replace Warning Response +-- +-- ************************************************************** + +WriteReplaceWarningResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {WriteReplaceWarningResponseIEs} }, + ... +} + +WriteReplaceWarningResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-BroadcastCompletedAreaList CRITICALITY ignore TYPE BroadcastCompletedAreaList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- eNB DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Direct Information Transfer +-- +-- ************************************************************** + +ENBDirectInformationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ ENBDirectInformationTransferIEs}}, + ... +} + +ENBDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-Inter-SystemInformationTransferTypeEDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory} , + ... +} + +Inter-SystemInformationTransferType ::= CHOICE { + rIMTransfer RIMTransfer, + ... +} + +-- ************************************************************** +-- +-- MME DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Direct Information Transfer +-- +-- ************************************************************** + +MMEDirectInformationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ MMEDirectInformationTransferIEs}}, + ... +} + +MMEDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-Inter-SystemInformationTransferTypeMDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory} , + ... +} +-- ************************************************************** +-- +-- eNB CONFIGURATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- eNB Configuration Transfer +-- +-- ************************************************************** + +ENBConfigurationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ ENBConfigurationTransferIEs}}, + ... +} + +ENBConfigurationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-SONConfigurationTransferECT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional} , + ... +} + +-- ************************************************************** +-- +-- MME CONFIGURATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Configuration Transfer +-- +-- ************************************************************** + +MMEConfigurationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ MMEConfigurationTransferIEs}}, + ... +} + +MMEConfigurationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-SONConfigurationTransferMCT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional} , + ... +} + +-- ************************************************************** +-- +-- PRIVATE MESSAGE ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Private Message +-- +-- ************************************************************** + +PrivateMessage ::= SEQUENCE { + privateIEs PrivateIE-Container {{PrivateMessageIEs}}, + ... +} + +PrivateMessageIEs S1AP-PRIVATE-IES ::= { + ... +} + +-- ************************************************************** +-- +-- Kill Request +-- +-- ************************************************************** + + +KillRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {KillRequestIEs} }, + ... +} + +KillRequestIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- Kill Response +-- +-- ************************************************************** + +KillResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {KillResponseIEs} }, + ... +} + +KillResponseIEs S1AP-PROTOCOL-IES ::= { + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| + { ID id-BroadcastCancelledAreaList CRITICALITY ignore TYPE BroadcastCancelledAreaList PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- LPPA TRANSPORT ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- DOWNLINK UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +DownlinkUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkUEAssociatedLPPaTransport-IEs}}, + ... +} + +DownlinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory } | + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory } , + ... +} + +-- ************************************************************** +-- +-- UPLINK UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +UplinkUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkUEAssociatedLPPaTransport-IEs}}, + ... +} + +UplinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory} | + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory} , + ... +} + +-- ************************************************************** +-- +-- DOWNLINK NON UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +DownlinkNonUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{DownlinkNonUEAssociatedLPPaTransport-IEs}}, + ... +} + +DownlinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory} | + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory} , + ... +} + +-- ************************************************************** +-- +-- UPLINK NON UE ASSOCIATED LPPA TRANSPORT +-- +-- ************************************************************** + +UplinkNonUEAssociatedLPPaTransport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UplinkNonUEAssociatedLPPaTransport-IEs}}, + ... +} + +UplinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { + { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory} | + { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory} , + ... +} + +END + + + +-- ************************************************************** +-- +-- Information Element Definitions +-- +-- ************************************************************** + +S1AP-IEs { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-IEs (2) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + id-E-RABInformationListItem, + id-E-RABItem, + id-Bearers-SubjectToStatusTransfer-Item, + id-Time-Synchronization-Info, + maxNrOfCSGs, + maxNrOfE-RABs, + maxNrOfErrors, + maxnoofBPLMNs, + maxnoofPLMNsPerMME, + maxnoofTACs, + maxnoofEPLMNs, + maxnoofEPLMNsPlusOne, + maxnoofForbLACs, + maxnoofForbTACs, + maxnoofCells, + maxnoofCellID, + maxnoofEmergencyAreaID, + maxnoofTAIforWarning, + maxnoofCellinTAI, + maxnoofCellinEAI, + maxnoofeNBX2TLAs, + maxnoofRATs, + maxnoofGroupIDs, + maxnoofMMECs + + + +FROM S1AP-Constants + + Criticality, + ProcedureCode, + ProtocolIE-ID, + TriggeringMessage +FROM S1AP-CommonDataTypes + + ProtocolExtensionContainer{}, + S1AP-PROTOCOL-EXTENSION, + ProtocolIE-SingleContainer{}, + S1AP-PROTOCOL-IES + +FROM S1AP-Containers; + +-- A + + +AllocationAndRetentionPriority ::= SEQUENCE { + priorityLevel PriorityLevel, + pre-emptionCapability Pre-emptionCapability, + pre-emptionVulnerability Pre-emptionVulnerability, + iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, + ... +} + +AllocationAndRetentionPriority-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- B + +Bearers-SubjectToStatusTransferList ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { { Bearers-SubjectToStatusTransfer-ItemIEs } } + +Bearers-SubjectToStatusTransfer-ItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-Bearers-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE Bearers-SubjectToStatusTransfer-Item PRESENCE mandatory }, + ... +} + +Bearers-SubjectToStatusTransfer-Item ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + uL-COUNTvalue COUNTvalue, + dL-COUNTvalue COUNTvalue, + receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {Bearers-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL, + ... +} + +Bearers-SubjectToStatusTransfer-ItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +BitRate ::= INTEGER (0..10000000000) + +BPLMNs ::= SEQUENCE (SIZE(1.. maxnoofBPLMNs)) OF PLMNidentity + +BroadcastCancelledAreaList ::= CHOICE { + cellID-Cancelled CellID-Cancelled, + tAI-Cancelled TAI-Cancelled, + emergencyAreaID-Cancelled EmergencyAreaID-Cancelled, + ... +} + +BroadcastCompletedAreaList ::= CHOICE { + cellID-Broadcast CellID-Broadcast, + tAI-Broadcast TAI-Broadcast, + emergencyAreaID-Broadcast EmergencyAreaID-Broadcast, + ... +} + + +-- C + +CancelledCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CancelledCellinEAI-Item + +CancelledCellinEAI-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CancelledCellinEAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CancelledCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CancelledCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CancelledCellinTAI-Item + +CancelledCellinTAI-Item ::= SEQUENCE{ + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CancelledCellinTAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CancelledCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Cause ::= CHOICE { + radioNetwork CauseRadioNetwork, + transport CauseTransport, + nas CauseNas, + protocol CauseProtocol, + misc CauseMisc, + ... +} + +CauseMisc ::= ENUMERATED { + control-processing-overload, + not-enough-user-plane-processing-resources, + hardware-failure, + om-intervention, + unspecified, + unknown-PLMN, +... +} + +CauseProtocol ::= ENUMERATED { + transfer-syntax-error, + abstract-syntax-error-reject, + abstract-syntax-error-ignore-and-notify, + message-not-compatible-with-receiver-state, + semantic-error, + abstract-syntax-error-falsely-constructed-message, + unspecified, + ... +} + +CauseRadioNetwork ::= ENUMERATED { + unspecified, + tx2relocoverall-expiry, + successful-handover, + release-due-to-eutran-generated-reason, + handover-cancelled, + partial-handover, + ho-failure-in-target-EPC-eNB-or-target-system, + ho-target-not-allowed, + tS1relocoverall-expiry, + tS1relocprep-expiry, + cell-not-available, + unknown-targetID, + no-radio-resources-available-in-target-cell, + unknown-mme-ue-s1ap-id, + unknown-enb-ue-s1ap-id, + unknown-pair-ue-s1ap-id, + handover-desirable-for-radio-reason, + time-critical-handover, + resource-optimisation-handover, + reduce-load-in-serving-cell, + user-inactivity, + radio-connection-with-ue-lost, + load-balancing-tau-required, + cs-fallback-triggered, + ue-not-available-for-ps-service, + radio-resources-not-available, + failure-in-radio-interface-procedure, + invalid-qos-combination, + interrat-redirection, + interaction-with-other-procedure, + unknown-E-RAB-ID, + multiple-E-RAB-ID-instances, + encryption-and-or-integrity-protection-algorithms-not-supported, + s1-intra-system-handover-triggered, + s1-inter-system-handover-triggered, + x2-handover-triggered, + ..., + redirection-towards-1xRTT, + not-supported-QCI-value, + invalid-CSG-Id + +} + +CauseTransport ::= ENUMERATED { + transport-resource-unavailable, + unspecified, + ... +} + +CauseNas ::= ENUMERATED { + normal-release, + authentication-failure, + detach, + unspecified, + ..., + csg-subscription-expiry +} + +CellAccessMode ::= ENUMERATED { + hybrid, + ... +} + +CellIdentity ::= BIT STRING (SIZE (28)) + +CellID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Broadcast-Item + +CellID-Broadcast-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CellID-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +CellID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CellID-Cancelled::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Cancelled-Item + +CellID-Cancelled-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + numberOfBroadcasts NumberOfBroadcasts, + iE-Extensions ProtocolExtensionContainer { {CellID-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +CellID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Cdma2000PDU ::= OCTET STRING + +Cdma2000RATType ::= ENUMERATED { + hRPD, + onexRTT, + ... +} + +Cdma2000SectorID ::= OCTET STRING + +Cdma2000HOStatus ::= ENUMERATED { + hOSuccess, + hOFailure, + ... +} + +Cdma2000HORequiredIndication ::= ENUMERATED { + true, + ... +} + +Cdma2000OneXSRVCCInfo ::= SEQUENCE { + cdma2000OneXMEID Cdma2000OneXMEID, + cdma2000OneXMSI Cdma2000OneXMSI, + cdma2000OneXPilot Cdma2000OneXPilot, + iE-Extensions ProtocolExtensionContainer { {Cdma2000OneXSRVCCInfo-ExtIEs} } OPTIONAL, + ... +} + +Cdma2000OneXSRVCCInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Cdma2000OneXMEID ::= OCTET STRING + +Cdma2000OneXMSI ::= OCTET STRING + +Cdma2000OneXPilot ::= OCTET STRING + +Cdma2000OneXRAND ::= OCTET STRING + + +Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ...} + +CellType ::= SEQUENCE { + cell-Size Cell-Size, + iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL, + ... +} + +CellType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CGI ::= SEQUENCE { + pLMNidentity PLMNidentity, + lAC LAC, + cI CI, + rAC RAC OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL, + ... + } + +CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CI ::= OCTET STRING (SIZE (2)) + +CNDomain ::= ENUMERATED { + ps, + cs +} + +ConcurrentWarningMessageIndicator ::= ENUMERATED { + true +} +CSFallbackIndicator ::= ENUMERATED { + cs-fallback-required, + ..., + cs-fallback-high-priority +} + +CSG-Id ::= BIT STRING (SIZE (27)) + + +CSG-IdList ::= SEQUENCE (SIZE (1..maxNrOfCSGs)) OF CSG-IdList-Item + +CSG-IdList-Item ::= SEQUENCE { + cSG-Id CSG-Id, + iE-Extensions ProtocolExtensionContainer { {CSG-IdList-Item-ExtIEs} } OPTIONAL, + ... +} + +CSG-IdList-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CSGMembershipStatus ::= ENUMERATED { + member, + not-member +} + + +COUNTvalue ::= SEQUENCE { + pDCP-SN PDCP-SN, + hFN HFN, + iE-Extensions ProtocolExtensionContainer { {COUNTvalue-ExtIEs} } OPTIONAL, + ... +} +COUNTvalue-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-ExtIEs}} OPTIONAL, + ... +} + +CriticalityDiagnostics-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF CriticalityDiagnostics-IE-Item + +CriticalityDiagnostics-IE-Item ::= SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-IE-Item-ExtIEs}} OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- D + +DataCodingScheme ::= BIT STRING (SIZE (8)) + +DL-Forwarding ::= ENUMERATED { + dL-Forwarding-proposed, + ... +} + +Direct-Forwarding-Path-Availability ::= ENUMERATED { + directPathAvailable, + ... +} + +Data-Forwarding-Not-Possible ::= ENUMERATED { + data-Forwarding-not-Possible, + ... +} + +-- E + +ECGIList ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF EUTRAN-CGI + +EmergencyAreaIDList ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID + +EmergencyAreaID ::= OCTET STRING (SIZE (3)) + +EmergencyAreaID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Broadcast-Item + +EmergencyAreaID-Broadcast-Item ::= SEQUENCE { + emergencyAreaID EmergencyAreaID, + completedCellinEAI CompletedCellinEAI, + iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +EmergencyAreaID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +EmergencyAreaID-Cancelled ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Cancelled-Item + +EmergencyAreaID-Cancelled-Item ::= SEQUENCE { + emergencyAreaID EmergencyAreaID, + cancelledCellinEAI CancelledCellinEAI, + iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +EmergencyAreaID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompletedCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CompletedCellinEAI-Item + +CompletedCellinEAI-Item ::= SEQUENCE { + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CompletedCellinEAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CompletedCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENB-ID ::= CHOICE { + macroENB-ID BIT STRING (SIZE(20)), + homeENB-ID BIT STRING (SIZE(28)), + ... +} + +GERAN-Cell-ID ::= SEQUENCE { + lAI LAI, + rAC RAC, + cI CI, + iE-Extensions ProtocolExtensionContainer { { GERAN-Cell-ID-ExtIEs} } OPTIONAL, + ... +} + +GERAN-Cell-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Global-ENB-ID ::= SEQUENCE { + pLMNidentity PLMNidentity, + eNB-ID ENB-ID, + iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL, + ... +} + +GlobalENB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +ENB-StatusTransfer-TransparentContainer ::= SEQUENCE { + bearers-SubjectToStatusTransferList Bearers-SubjectToStatusTransferList, + iE-Extensions ProtocolExtensionContainer { {ENB-StatusTransfer-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +ENB-StatusTransfer-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ENB-UE-S1AP-ID ::= INTEGER (0..16777215) + +ENBname ::= PrintableString (SIZE (1..150,...)) + +ENBX2TLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2TLAs)) OF TransportLayerAddress + +EncryptionAlgorithms ::= BIT STRING (SIZE (16,...)) + +EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMNidentity +EventType ::= ENUMERATED { + direct, + change-of-serve-cell, + stop-change-of-serve-cell, + ... +} + +E-RAB-ID ::= INTEGER (0..15, ...) + +E-RABInformationList ::= SEQUENCE (SIZE (1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { { E-RABInformationListIEs } } + +E-RABInformationListIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABInformationListItem CRITICALITY ignore TYPE E-RABInformationListItem PRESENCE mandatory }, + ... +} + +E-RABInformationListItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + dL-Forwarding DL-Forwarding OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABInformationListItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABInformationListItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +E-RABList ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABItemIEs} } + +E-RABItemIEs S1AP-PROTOCOL-IES ::= { + { ID id-E-RABItem CRITICALITY ignore TYPE E-RABItem PRESENCE mandatory }, + ... +} + +E-RABItem ::= SEQUENCE { + e-RAB-ID E-RAB-ID, + cause Cause, + iE-Extensions ProtocolExtensionContainer { {E-RABItem-ExtIEs} } OPTIONAL, + ... +} + +E-RABItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +E-RABLevelQoSParameters ::= SEQUENCE { + qCI QCI, + allocationRetentionPriority AllocationAndRetentionPriority, + gbrQosInformation GBR-QosInformation OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABQoSParameters-ExtIEs} } OPTIONAL, + ... +} + +E-RABQoSParameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +EUTRAN-CGI ::= SEQUENCE { + pLMNidentity PLMNidentity, + cell-ID CellIdentity, + iE-Extensions ProtocolExtensionContainer { {EUTRAN-CGI-ExtIEs} } OPTIONAL, + ... +} + +EUTRAN-CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +EUTRANRoundTripDelayEstimationInfo ::= INTEGER (0..2047) + +ExtendedRNC-ID ::= INTEGER (4096..65535) + +ExtendedRepetitionPeriod ::= INTEGER (4096..131071) + +-- F + +ForbiddenInterRATs ::= ENUMERATED { + all, + geran, + utran, + cdma2000, + ..., + geranandutran, + cdma2000andutran + +} + +ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item + +ForbiddenTAs-Item ::= SEQUENCE { + pLMN-Identity PLMNidentity, + forbiddenTACs ForbiddenTACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC + +ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item + +ForbiddenLAs-Item ::= SEQUENCE { + pLMN-Identity PLMNidentity, + forbiddenLACs ForbiddenLACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenLAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC + +-- G + +GBR-QosInformation ::= SEQUENCE { + e-RAB-MaximumBitrateDL BitRate, + e-RAB-MaximumBitrateUL BitRate, + e-RAB-GuaranteedBitrateDL BitRate, + e-RAB-GuaranteedBitrateUL BitRate, + iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL, + ... +} + +GBR-QosInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +GTP-TEID ::= OCTET STRING (SIZE (4)) + +GUMMEI ::= SEQUENCE { + pLMN-Identity PLMNidentity, + mME-Group-ID MME-Group-ID, + mME-Code MME-Code, + iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, + ... +} + +GUMMEI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- H + +HandoverRestrictionList ::= SEQUENCE { + servingPLMN PLMNidentity, + equivalentPLMNs EPLMNs OPTIONAL, + forbiddenTAs ForbiddenTAs OPTIONAL, + forbiddenLAs ForbiddenLAs OPTIONAL, + forbiddenInterRATs ForbiddenInterRATs OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, + ... +} + +HandoverRestrictionList-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +HandoverType ::= ENUMERATED { + intralte, + ltetoutran, + ltetogeran, + utrantolte, + gerantolte, + ... +} + +HFN ::= INTEGER (0..1048575) + +-- I + +IMSI ::= OCTET STRING (SIZE (3..8)) + +IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...)) + +InterfacesToTrace ::= BIT STRING (SIZE (8)) + + + +-- J +-- K +-- L + + +LAC ::= OCTET STRING (SIZE (2)) + +LAI ::= SEQUENCE { + pLMNidentity PLMNidentity, + lAC LAC, + iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL, + ... +} + +LAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +LastVisitedCell-Item ::= CHOICE { + e-UTRAN-Cell LastVisitedEUTRANCellInformation, + uTRAN-Cell LastVisitedUTRANCellInformation, + gERAN-Cell LastVisitedGERANCellInformation, + ... +} +LastVisitedEUTRANCellInformation ::= SEQUENCE { + global-Cell-ID EUTRAN-CGI, + cellType CellType, + time-UE-StayedInCell Time-UE-StayedInCell, + iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, + ... +} +LastVisitedEUTRANCellInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} +LastVisitedUTRANCellInformation ::= OCTET STRING + +LastVisitedGERANCellInformation ::= CHOICE { + undefined NULL, + ... +} + +L3-Information ::= OCTET STRING + +LPPa-PDU ::= OCTET STRING + +-- M + +MessageIdentifier ::= BIT STRING (SIZE (16)) + +MMEname ::= PrintableString (SIZE (1..150,...)) + +MME-Group-ID ::= OCTET STRING (SIZE (2)) + +MME-Code ::= OCTET STRING (SIZE (1)) + +MME-UE-S1AP-ID ::= INTEGER (0..4294967295) +M-TMSI ::= OCTET STRING (SIZE (4)) + +MSClassmark2 ::= OCTET STRING +MSClassmark3 ::= OCTET STRING + +-- N + +NAS-PDU ::= OCTET STRING + +NASSecurityParametersfromE-UTRAN ::= OCTET STRING + +NASSecurityParameterstoE-UTRAN ::= OCTET STRING + +NumberofBroadcastRequest ::= INTEGER (0..65535) + +NumberOfBroadcasts ::= INTEGER (0..65535) + +-- O +OldBSS-ToNewBSS-Information ::= OCTET STRING + +OverloadAction ::= ENUMERATED { + reject-non-emergency-mo-dt, + reject-all-rrc-cr-signalling, + permit-emergency-sessions-and-mobile-terminated-services-only, + ... +} + +OverloadResponse ::= CHOICE { + overloadAction OverloadAction, + ... +} + + +-- P + +PagingDRX ::= ENUMERATED { + v32, + v64, + v128, + v256, + ... + } + +PDCP-SN ::= INTEGER (0..4095) + +PLMNidentity ::= TBCD-STRING + +Pre-emptionCapability ::= ENUMERATED { + shall-not-trigger-pre-emption, + may-trigger-pre-emption +} + +Pre-emptionVulnerability ::= ENUMERATED { + not-pre-emptable, + pre-emptable +} + +PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) + +PS-ServiceNotAvailable ::= ENUMERATED { + ps-service-not-available, + ... +} + +-- Q + +QCI ::= INTEGER (0..255) + +-- R + +ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) + +RelativeMMECapacity ::= INTEGER (0..255) + +RAC ::= OCTET STRING (SIZE (1)) + + +RequestType ::= SEQUENCE { + eventType EventType, + reportArea ReportArea, + iE-Extensions ProtocolExtensionContainer { { RequestType-ExtIEs} } OPTIONAL, + ... +} + + +RequestType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RIMTransfer ::= SEQUENCE { + rIMInformation RIMInformation, + rIMRoutingAddress RIMRoutingAddress OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { RIMTransfer-ExtIEs} } OPTIONAL, + ... +} + +RIMTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +RIMInformation ::= OCTET STRING + +RIMRoutingAddress ::= CHOICE { + gERAN-Cell-ID GERAN-Cell-ID, + ..., + targetRNC-ID TargetRNC-ID +} + +ReportArea ::= ENUMERATED { + ecgi, + ... +} + +RepetitionPeriod ::= INTEGER (0..4095) + + +RNC-ID ::= INTEGER (0..4095) + +RRC-Container ::= OCTET STRING + +RRC-Establishment-Cause ::= ENUMERATED { + emergency, + highPriorityAccess, + mt-Access, + mo-Signalling, + mo-Data, + ... +} + +Routing-ID ::= INTEGER (0..255) + +-- S + + +SecurityKey ::= BIT STRING (SIZE(256)) + + + +SecurityContext ::= SEQUENCE { + nextHopChainingCount INTEGER (0..7), + nextHopParameter SecurityKey, + iE-Extensions ProtocolExtensionContainer { { SecurityContext-ExtIEs} } OPTIONAL, + ... +} + + +SecurityContext-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +SerialNumber ::= BIT STRING (SIZE (16)) + +SONInformation ::= CHOICE{ + sONInformationRequest SONInformationRequest, + sONInformationReply SONInformationReply, + ... +} + +SONInformationRequest ::= ENUMERATED { + x2TNL-Configuration-Info, + ..., + time-Synchronization-Info} + +SONInformationReply ::= SEQUENCE { + x2TNLConfigurationInfo X2TNLConfigurationInfo OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{SONInformationReply-ExtIEs}} OPTIONAL, + ... +} + +SONInformationReply-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extension for Release 9 to transfer Time synchronization information -- + {ID id-Time-Synchronization-Info CRITICALITY ignore EXTENSION TimeSynchronizationInfo PRESENCE optional}, + ... +} + + +SONConfigurationTransfer ::= SEQUENCE { + targeteNB-ID TargeteNB-ID, + sourceeNB-ID SourceeNB-ID, + sONInformation SONInformation, + iE-Extensions ProtocolExtensionContainer { { SONConfigurationTransfer-ExtIEs} } OPTIONAL, +... +} + +SONConfigurationTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +Source-ToTarget-TransparentContainer ::= OCTET STRING + +SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING + +SourceeNB-ID ::= SEQUENCE { + global-ENB-ID Global-ENB-ID, + selected-TAI TAI, + iE-Extensions ProtocolExtensionContainer { {SourceeNB-ID-ExtIEs} } OPTIONAL +} + +SourceeNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +SRVCCOperationPossible ::= ENUMERATED { + possible, + ... +} + +SRVCCHOIndication ::= ENUMERATED { + pSandCS, + cSonly, + ... +} + +SourceeNB-ToTargeteNB-TransparentContainer ::= SEQUENCE { + rRC-Container RRC-Container, + e-RABInformationList E-RABInformationList OPTIONAL, + targetCell-ID EUTRAN-CGI, + subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, + uE-HistoryInformation UE-HistoryInformation, + iE-Extensions ProtocolExtensionContainer { {SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +SourceRNC-ToTargetRNC-TransparentContainer ::= OCTET STRING + + +ServedGUMMEIs ::= SEQUENCE (SIZE (1.. maxnoofRATs)) OF ServedGUMMEIsItem + +ServedGUMMEIsItem ::= SEQUENCE { + servedPLMNs ServedPLMNs, + servedGroupIDs ServedGroupIDs, + servedMMECs ServedMMECs, + iE-Extensions ProtocolExtensionContainer { {ServedGUMMEIsItem-ExtIEs} } OPTIONAL, + ... +} + +ServedGUMMEIsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedGroupIDs ::= SEQUENCE (SIZE(1.. maxnoofGroupIDs)) OF MME-Group-ID +ServedMMECs ::= SEQUENCE (SIZE(1.. maxnoofMMECs)) OF MME-Code + +ServedPLMNs ::= SEQUENCE (SIZE(1.. maxnoofPLMNsPerMME)) OF PLMNidentity + +SubscriberProfileIDforRFP ::= INTEGER (1..256) + +SupportedTAs ::= SEQUENCE (SIZE(1.. maxnoofTACs)) OF SupportedTAs-Item + +SupportedTAs-Item ::= SEQUENCE { + tAC TAC, + broadcastPLMNs BPLMNs, + iE-Extensions ProtocolExtensionContainer { {SupportedTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +SupportedTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +StratumLevel ::= INTEGER (0..3, ...) + +SynchronizationStatus ::= ENUMERATED { synchronous, asynchronous, ... } + +TimeSynchronizationInfo ::= SEQUENCE { + stratumLevel StratumLevel, + synchronizationStatus SynchronizationStatus, + iE-Extensions ProtocolExtensionContainer { { TimeSynchronizationInfo-ExtIEs} } OPTIONAL, + ... +} + +TimeSynchronizationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +S-TMSI ::= SEQUENCE { + mMEC MME-Code, + m-TMSI M-TMSI, + iE-Extensions ProtocolExtensionContainer { {S-TMSI-ExtIEs} } OPTIONAL, + ... +} + +S-TMSI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- T + +TAC ::= OCTET STRING (SIZE (2)) + +TAIListforWarning ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI + +TAI ::= SEQUENCE { + pLMNidentity PLMNidentity, + tAC TAC, + iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL, + ... +} + +TAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAI-Broadcast ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Broadcast-Item + +TAI-Broadcast-Item ::= SEQUENCE { + tAI TAI, + completedCellinTAI CompletedCellinTAI, + iE-Extensions ProtocolExtensionContainer { {TAI-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAI-Cancelled ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Cancelled-Item + +TAI-Cancelled-Item ::= SEQUENCE { + tAI TAI, + cancelledCellinTAI CancelledCellinTAI, + iE-Extensions ProtocolExtensionContainer { {TAI-Cancelled-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CompletedCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CompletedCellinTAI-Item + +CompletedCellinTAI-Item ::= SEQUENCE{ + eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CompletedCellinTAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CompletedCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TBCD-STRING ::= OCTET STRING (SIZE (3)) + +TargetID ::= CHOICE { + targeteNB-ID TargeteNB-ID, + targetRNC-ID TargetRNC-ID, + cGI CGI, + ... +} + +TargeteNB-ID ::= SEQUENCE { + global-ENB-ID Global-ENB-ID, + selected-TAI TAI, + iE-Extensions ProtocolExtensionContainer { {TargeteNB-ID-ExtIEs} } OPTIONAL, + ... +} + +TargeteNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TargetRNC-ID ::= SEQUENCE { + lAI LAI, + rAC RAC OPTIONAL, + rNC-ID RNC-ID, + extendedRNC-ID ExtendedRNC-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL, + ... + } + + +TargetRNC-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +TargeteNB-ToSourceeNB-TransparentContainer ::= SEQUENCE { + rRC-Container RRC-Container, + iE-Extensions ProtocolExtensionContainer { {TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs} } OPTIONAL, + ... +} + +TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Target-ToSource-TransparentContainer ::= OCTET STRING +TargetRNC-ToSourceRNC-TransparentContainer ::= OCTET STRING +TargetBSS-ToSourceBSS-TransparentContainer ::= OCTET STRING + +TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...} + +Time-UE-StayedInCell ::= INTEGER (0..4095) + +TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) + +TraceActivation ::= SEQUENCE { + e-UTRAN-Trace-ID E-UTRAN-Trace-ID, + interfacesToTrace InterfacesToTrace, + traceDepth TraceDepth, + traceCollectionEntityIPAddress TransportLayerAddress, + iE-Extensions ProtocolExtensionContainer { { TraceActivation-ExtIEs} } OPTIONAL, + ... +} + +TraceActivation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +TraceDepth ::= ENUMERATED { + minimum, + medium, + maximum, + minimumWithoutVendorSpecificExtension, + mediumWithoutVendorSpecificExtension, + maximumWithoutVendorSpecificExtension, + ... +} + +E-UTRAN-Trace-ID ::= OCTET STRING (SIZE (8)) + +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + +-- U + +UEAggregateMaximumBitrate ::= SEQUENCE { + uEaggregateMaximumBitRateDL BitRate, + uEaggregateMaximumBitRateUL BitRate, + iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrates-ExtIEs} } OPTIONAL, + ... +} + +UEAggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +UE-S1AP-IDs ::= CHOICE{ + uE-S1AP-ID-pair UE-S1AP-ID-pair, + mME-UE-S1AP-ID MME-UE-S1AP-ID, + ... +} + +UE-S1AP-ID-pair ::= SEQUENCE{ + mME-UE-S1AP-ID MME-UE-S1AP-ID, + eNB-UE-S1AP-ID ENB-UE-S1AP-ID, + iE-Extensions ProtocolExtensionContainer { {UE-S1AP-ID-pair-ExtIEs} } OPTIONAL, + ... +} +UE-S1AP-ID-pair-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +UE-associatedLogicalS1-ConnectionItem ::= SEQUENCE { + mME-UE-S1AP-ID MME-UE-S1AP-ID OPTIONAL, + eNB-UE-S1AP-ID ENB-UE-S1AP-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { UE-associatedLogicalS1-ConnectionItemExtIEs} } OPTIONAL, + ... +} + + +UE-associatedLogicalS1-ConnectionItemExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UEIdentityIndexValue ::= BIT STRING (SIZE (10)) + +UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item + +UEPagingID ::= CHOICE { + s-TMSI S-TMSI, + iMSI IMSI, + ... + } + +UERadioCapability ::= OCTET STRING + +UESecurityCapabilities ::= SEQUENCE { + encryptionAlgorithms EncryptionAlgorithms, + integrityProtectionAlgorithms IntegrityProtectionAlgorithms, + iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL, +... +} + +UESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- V +-- W + +WarningAreaList ::= CHOICE { + cellIDList ECGIList, + trackingAreaListforWarning TAIListforWarning, + emergencyAreaIDList EmergencyAreaIDList, + ... +} + + +WarningType ::= OCTET STRING (SIZE (2)) + +WarningSecurityInfo ::= OCTET STRING (SIZE (50)) + + +WarningMessageContents ::= OCTET STRING (SIZE(1..9600)) + + +-- X + + +X2TNLConfigurationInfo ::= SEQUENCE { + eNBX2TransportLayerAddresses ENBX2TLAs, + iE-Extensions ProtocolExtensionContainer { { X2TNLConfigurationInfo-ExtIEs} } OPTIONAL, + ... +} + +X2TNLConfigurationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- Y +-- Z + +END + + + +-- ************************************************************** +-- +-- Common definitions +-- +-- ************************************************************** + +S1AP-CommonDataTypes { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-CommonDataTypes (3) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +Criticality ::= ENUMERATED { reject, ignore, notify } + +Presence ::= ENUMERATED { optional, conditional, mandatory } + +PrivateIE-ID ::= CHOICE { + local INTEGER (0..65535), + global OBJECT IDENTIFIER +} + +ProcedureCode ::= INTEGER (0..255) + +ProtocolExtensionID ::= INTEGER (0..65535) + +ProtocolIE-ID ::= INTEGER (0..65535) + +TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome } + +END + + +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +S1AP-Constants { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Constants (4) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + ProcedureCode, + ProtocolIE-ID + +FROM S1AP-CommonDataTypes; + + +-- ************************************************************** +-- +-- Elementary Procedures +-- +-- ************************************************************** + +id-HandoverPreparation ProcedureCode ::= 0 +id-HandoverResourceAllocation ProcedureCode ::= 1 +id-HandoverNotification ProcedureCode ::= 2 +id-PathSwitchRequest ProcedureCode ::= 3 +id-HandoverCancel ProcedureCode ::= 4 +id-E-RABSetup ProcedureCode ::= 5 +id-E-RABModify ProcedureCode ::= 6 +id-E-RABRelease ProcedureCode ::= 7 +id-E-RABReleaseIndication ProcedureCode ::= 8 +id-InitialContextSetup ProcedureCode ::= 9 +id-Paging ProcedureCode ::= 10 +id-downlinkNASTransport ProcedureCode ::= 11 +id-initialUEMessage ProcedureCode ::= 12 +id-uplinkNASTransport ProcedureCode ::= 13 +id-Reset ProcedureCode::= 14 +id-ErrorIndication ProcedureCode ::= 15 +id-NASNonDeliveryIndication ProcedureCode ::= 16 +id-S1Setup ProcedureCode ::= 17 +id-UEContextReleaseRequest ProcedureCode ::= 18 +id-DownlinkS1cdma2000tunneling ProcedureCode ::= 19 +id-UplinkS1cdma2000tunneling ProcedureCode ::= 20 +id-UEContextModification ProcedureCode ::= 21 +id-UECapabilityInfoIndication ProcedureCode ::= 22 +id-UEContextRelease ProcedureCode ::= 23 +id-eNBStatusTransfer ProcedureCode ::= 24 +id-MMEStatusTransfer ProcedureCode ::= 25 +id-DeactivateTrace ProcedureCode ::= 26 +id-TraceStart ProcedureCode ::= 27 +id-TraceFailureIndication ProcedureCode ::= 28 +id-ENBConfigurationUpdate ProcedureCode ::= 29 +id-MMEConfigurationUpdate ProcedureCode ::= 30 +id-LocationReportingControl ProcedureCode ::= 31 +id-LocationReportingFailureIndication ProcedureCode ::= 32 +id-LocationReport ProcedureCode ::= 33 +id-OverloadStart ProcedureCode ::= 34 +id-OverloadStop ProcedureCode ::= 35 +id-WriteReplaceWarning ProcedureCode ::= 36 +id-eNBDirectInformationTransfer ProcedureCode ::= 37 +id-MMEDirectInformationTransfer ProcedureCode ::= 38 +id-PrivateMessage ProcedureCode ::= 39 +id-eNBConfigurationTransfer ProcedureCode ::= 40 +id-MMEConfigurationTransfer ProcedureCode ::= 41 +id-CellTrafficTrace ProcedureCode ::= 42 +id-Kill ProcedureCode ::= 43 +id-downlinkUEAssociatedLPPaTransport ProcedureCode ::= 44 +id-uplinkUEAssociatedLPPaTransport ProcedureCode ::= 45 +id-downlinkNonUEAssociatedLPPaTransport ProcedureCode ::= 46 +id-uplinkNonUEAssociatedLPPaTransport ProcedureCode ::= 47 + +-- ************************************************************** +-- +-- Extension constants +-- +-- ************************************************************** + +maxPrivateIEs INTEGER ::= 65535 +maxProtocolExtensions INTEGER ::= 65535 +maxProtocolIEs INTEGER ::= 65535 +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** + +maxNrOfCSGs INTEGER ::= 256 +maxNrOfE-RABs INTEGER ::= 256 +maxnoofTAIs INTEGER ::= 256 +maxnoofTACs INTEGER ::= 256 +maxNrOfErrors INTEGER ::= 256 +maxnoofBPLMNs INTEGER ::= 6 +maxnoofPLMNsPerMME INTEGER ::= 32 +maxnoofEPLMNs INTEGER ::= 15 +maxnoofEPLMNsPlusOne INTEGER ::= 16 +maxnoofForbLACs INTEGER ::= 4096 +maxnoofForbTACs INTEGER ::= 4096 +maxNrOfIndividualS1ConnectionsToReset INTEGER ::= 256 +maxnoofCells INTEGER ::= 16 +maxnoofTAIforWarning INTEGER ::= 65535 +maxnoofCellID INTEGER ::= 65535 +maxnoofEmergencyAreaID INTEGER ::= 65535 +maxnoofCellinTAI INTEGER ::= 65535 +maxnoofCellinEAI INTEGER ::= 65535 +maxnoofeNBX2TLAs INTEGER ::= 2 +maxnoofRATs INTEGER ::= 8 +maxnoofGroupIDs INTEGER ::= 65535 +maxnoofMMECs INTEGER ::= 256 + + + +-- ************************************************************** +-- +-- IEs +-- +-- ************************************************************** + +id-MME-UE-S1AP-ID ProtocolIE-ID ::= 0 +id-HandoverType ProtocolIE-ID ::= 1 +id-Cause ProtocolIE-ID ::= 2 +id-SourceID ProtocolIE-ID ::= 3 +id-TargetID ProtocolIE-ID ::= 4 +id-eNB-UE-S1AP-ID ProtocolIE-ID ::= 8 +id-E-RABSubjecttoDataForwardingList ProtocolIE-ID ::= 12 +id-E-RABtoReleaseListHOCmd ProtocolIE-ID ::= 13 +id-E-RABDataForwardingItem ProtocolIE-ID ::= 14 +id-E-RABReleaseItemBearerRelComp ProtocolIE-ID ::= 15 +id-E-RABToBeSetupListBearerSUReq ProtocolIE-ID ::= 16 +id-E-RABToBeSetupItemBearerSUReq ProtocolIE-ID ::= 17 +id-E-RABAdmittedList ProtocolIE-ID ::= 18 +id-E-RABFailedToSetupListHOReqAck ProtocolIE-ID ::= 19 +id-E-RABAdmittedItem ProtocolIE-ID ::= 20 +id-E-RABFailedtoSetupItemHOReqAck ProtocolIE-ID ::= 21 +id-E-RABToBeSwitchedDLList ProtocolIE-ID ::= 22 +id-E-RABToBeSwitchedDLItem ProtocolIE-ID ::= 23 +id-E-RABToBeSetupListCtxtSUReq ProtocolIE-ID ::= 24 +id-TraceActivation ProtocolIE-ID ::= 25 +id-NAS-PDU ProtocolIE-ID ::= 26 +id-E-RABToBeSetupItemHOReq ProtocolIE-ID ::= 27 +id-E-RABSetupListBearerSURes ProtocolIE-ID ::= 28 +id-E-RABFailedToSetupListBearerSURes ProtocolIE-ID ::= 29 +id-E-RABToBeModifiedListBearerModReq ProtocolIE-ID ::= 30 +id-E-RABModifyListBearerModRes ProtocolIE-ID ::= 31 +id-E-RABFailedToModifyList ProtocolIE-ID ::= 32 +id-E-RABToBeReleasedList ProtocolIE-ID ::= 33 +id-E-RABFailedToReleaseList ProtocolIE-ID ::= 34 +id-E-RABItem ProtocolIE-ID ::= 35 +id-E-RABToBeModifiedItemBearerModReq ProtocolIE-ID ::= 36 +id-E-RABModifyItemBearerModRes ProtocolIE-ID ::= 37 +id-E-RABReleaseItem ProtocolIE-ID ::= 38 +id-E-RABSetupItemBearerSURes ProtocolIE-ID ::= 39 +id-SecurityContext ProtocolIE-ID ::= 40 +id-HandoverRestrictionList ProtocolIE-ID ::= 41 +id-UEPagingID ProtocolIE-ID ::= 43 +id-pagingDRX ProtocolIE-ID ::= 44 +id-TAIList ProtocolIE-ID ::= 46 +id-TAIItem ProtocolIE-ID ::= 47 +id-E-RABFailedToSetupListCtxtSURes ProtocolIE-ID ::= 48 +id-E-RABReleaseItemHOCmd ProtocolIE-ID ::= 49 +id-E-RABSetupItemCtxtSURes ProtocolIE-ID ::= 50 +id-E-RABSetupListCtxtSURes ProtocolIE-ID ::= 51 +id-E-RABToBeSetupItemCtxtSUReq ProtocolIE-ID ::= 52 +id-E-RABToBeSetupListHOReq ProtocolIE-ID ::= 53 +id-GERANtoLTEHOInformationRes ProtocolIE-ID ::= 55 +id-UTRANtoLTEHOInformationRes ProtocolIE-ID ::= 57 +id-CriticalityDiagnostics ProtocolIE-ID ::= 58 +id-Global-ENB-ID ProtocolIE-ID ::= 59 +id-eNBname ProtocolIE-ID ::= 60 +id-MMEname ProtocolIE-ID ::= 61 +id-ServedPLMNs ProtocolIE-ID ::= 63 +id-SupportedTAs ProtocolIE-ID ::= 64 +id-TimeToWait ProtocolIE-ID ::= 65 +id-uEaggregateMaximumBitrate ProtocolIE-ID ::= 66 +id-TAI ProtocolIE-ID ::= 67 +id-E-RABReleaseListBearerRelComp ProtocolIE-ID ::= 69 +id-cdma2000PDU ProtocolIE-ID ::= 70 +id-cdma2000RATType ProtocolIE-ID ::= 71 +id-cdma2000SectorID ProtocolIE-ID ::= 72 +id-SecurityKey ProtocolIE-ID ::= 73 +id-UERadioCapability ProtocolIE-ID ::= 74 +id-GUMMEI-ID ProtocolIE-ID ::= 75 +id-E-RABInformationListItem ProtocolIE-ID ::= 78 +id-Direct-Forwarding-Path-Availability ProtocolIE-ID ::= 79 +id-UEIdentityIndexValue ProtocolIE-ID ::= 80 +id-cdma2000HOStatus ProtocolIE-ID ::= 83 +id-cdma2000HORequiredIndication ProtocolIE-ID ::= 84 +id-E-UTRAN-Trace-ID ProtocolIE-ID ::= 86 +id-RelativeMMECapacity ProtocolIE-ID ::= 87 +id-SourceMME-UE-S1AP-ID ProtocolIE-ID ::= 88 +id-Bearers-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 89 +id-eNB-StatusTransfer-TransparentContainer ProtocolIE-ID ::= 90 +id-UE-associatedLogicalS1-ConnectionItem ProtocolIE-ID ::= 91 +id-ResetType ProtocolIE-ID ::= 92 +id-UE-associatedLogicalS1-ConnectionListResAck ProtocolIE-ID ::= 93 +id-E-RABToBeSwitchedULItem ProtocolIE-ID ::= 94 +id-E-RABToBeSwitchedULList ProtocolIE-ID ::= 95 +id-S-TMSI ProtocolIE-ID ::= 96 +id-cdma2000OneXRAND ProtocolIE-ID ::= 97 +id-RequestType ProtocolIE-ID ::= 98 +id-UE-S1AP-IDs ProtocolIE-ID ::= 99 +id-EUTRAN-CGI ProtocolIE-ID ::= 100 +id-OverloadResponse ProtocolIE-ID ::= 101 +id-cdma2000OneXSRVCCInfo ProtocolIE-ID ::= 102 +id-E-RABFailedToBeReleasedList ProtocolIE-ID ::= 103 +id-Source-ToTarget-TransparentContainer ProtocolIE-ID ::= 104 +id-ServedGUMMEIs ProtocolIE-ID ::= 105 +id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 106 +id-UESecurityCapabilities ProtocolIE-ID ::= 107 +id-CSFallbackIndicator ProtocolIE-ID ::= 108 +id-CNDomain ProtocolIE-ID ::= 109 +id-E-RABReleasedList ProtocolIE-ID ::= 110 +id-MessageIdentifier ProtocolIE-ID ::= 111 +id-SerialNumber ProtocolIE-ID ::= 112 +id-WarningAreaList ProtocolIE-ID ::= 113 +id-RepetitionPeriod ProtocolIE-ID ::= 114 +id-NumberofBroadcastRequest ProtocolIE-ID ::= 115 +id-WarningType ProtocolIE-ID ::= 116 +id-WarningSecurityInfo ProtocolIE-ID ::= 117 +id-DataCodingScheme ProtocolIE-ID ::= 118 +id-WarningMessageContents ProtocolIE-ID ::= 119 +id-BroadcastCompletedAreaList ProtocolIE-ID ::= 120 +id-Inter-SystemInformationTransferTypeEDT ProtocolIE-ID ::= 121 +id-Inter-SystemInformationTransferTypeMDT ProtocolIE-ID ::= 122 +id-Target-ToSource-TransparentContainer ProtocolIE-ID ::= 123 +id-SRVCCOperationPossible ProtocolIE-ID ::= 124 +id-SRVCCHOIndication ProtocolIE-ID ::= 125 +id-NAS-DownlinkCount ProtocolIE-ID ::= 126 +id-CSG-Id ProtocolIE-ID ::= 127 +id-CSG-IdList ProtocolIE-ID ::= 128 +id-SONConfigurationTransferECT ProtocolIE-ID ::= 129 +id-SONConfigurationTransferMCT ProtocolIE-ID ::= 130 +id-TraceCollectionEntityIPAddress ProtocolIE-ID ::= 131 +id-MSClassmark2 ProtocolIE-ID ::= 132 +id-MSClassmark3 ProtocolIE-ID ::= 133 +id-RRC-Establishment-Cause ProtocolIE-ID ::= 134 +id-NASSecurityParametersfromE-UTRAN ProtocolIE-ID ::= 135 +id-NASSecurityParameterstoE-UTRAN ProtocolIE-ID ::= 136 +id-DefaultPagingDRX ProtocolIE-ID ::= 137 +id-Source-ToTarget-TransparentContainer-Secondary ProtocolIE-ID ::= 138 +id-Target-ToSource-TransparentContainer-Secondary ProtocolIE-ID ::= 139 +id-EUTRANRoundTripDelayEstimationInfo ProtocolIE-ID ::= 140 +id-BroadcastCancelledAreaList ProtocolIE-ID ::= 141 +id-ConcurrentWarningMessageIndicator ProtocolIE-ID ::= 142 +id-Data-Forwarding-Not-Possible ProtocolIE-ID ::= 143 +id-ExtendedRepetitionPeriod ProtocolIE-ID ::= 144 +id-CellAccessMode ProtocolIE-ID ::= 145 +id-CSGMembershipStatus ProtocolIE-ID ::= 146 +id-LPPa-PDU ProtocolIE-ID ::= 147 +id-Routing-ID ProtocolIE-ID ::= 148 +id-Time-Synchronization-Info ProtocolIE-ID ::= 149 +id-PS-ServiceNotAvailable ProtocolIE-ID ::= 150 +id-RegisteredLAI ProtocolIE-ID ::= 159 + +END + + +-- ************************************************************** +-- +-- Container definitions +-- +-- ************************************************************** + +S1AP-Containers { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Containers (5) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + Presence, + PrivateIE-ID, + ProtocolExtensionID, + ProtocolIE-ID +FROM S1AP-CommonDataTypes + + maxPrivateIEs, + maxProtocolExtensions, + maxProtocolIEs +FROM S1AP-Constants; + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +S1AP-PROTOCOL-IES ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +S1AP-PROTOCOL-IES-PAIR ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &firstCriticality Criticality, + &FirstValue, + &secondCriticality Criticality, + &SecondValue, + &presence Presence +} +WITH SYNTAX { + ID &id + FIRST CRITICALITY &firstCriticality + FIRST TYPE &FirstValue + SECOND CRITICALITY &secondCriticality + SECOND TYPE &SecondValue + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol Extensions +-- +-- ************************************************************** + +S1AP-PROTOCOL-EXTENSION ::= CLASS { + &id ProtocolExtensionID UNIQUE, + &criticality Criticality, + &Extension, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + EXTENSION &Extension + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Private IEs +-- +-- ************************************************************** + +S1AP-PRIVATE-IES ::= CLASS { + &id PrivateIE-ID, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Container for Protocol IEs +-- +-- ************************************************************** + +ProtocolIE-Container {S1AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-SingleContainer {S1AP-PROTOCOL-IES : IEsSetParam} ::= + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Field {S1AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-IES.&id ({IEsSetParam}), + criticality S1AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), + value S1AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Protocol IE Pairs +-- +-- ************************************************************** + +ProtocolIE-ContainerPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-FieldPair {{IEsSetParam}} + +ProtocolIE-FieldPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), + firstCriticality S1AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), + firstValue S1AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), + secondCriticality S1AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), + secondValue S1AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container Lists for Protocol IE Containers +-- +-- ************************************************************** + +ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-SingleContainer {{IEsSetParam}} + +ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-ContainerPair {{IEsSetParam}} + +-- ************************************************************** +-- +-- Container for Protocol Extensions +-- +-- ************************************************************** + +ProtocolExtensionContainer {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= + SEQUENCE (SIZE (1..maxProtocolExtensions)) OF + ProtocolExtensionField {{ExtensionSetParam}} + +ProtocolExtensionField {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { + id S1AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), + criticality S1AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), + extensionValue S1AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Private IEs +-- +-- ************************************************************** + +PrivateIE-Container {S1AP-PRIVATE-IES : IEsSetParam } ::= + SEQUENCE (SIZE (1.. maxPrivateIEs)) OF + PrivateIE-Field {{IEsSetParam}} + +PrivateIE-Field {S1AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { + id S1AP-PRIVATE-IES.&id ({IEsSetParam}), + criticality S1AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), + value S1AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) +} + +END + +-- ************************************************************** +-- +-- IE definitions for the SON Transfer application +-- The IEs in this ASN.1 module shall be defined and encoded +-- using the same rules as applicable for the S1AP-IEs module. +-- +-- ************************************************************** +SonTransfer-IEs + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- +-- Generic IEs for the SON Transfer application +-- + +SONtransferApplicationIdentity ::= ENUMERATED { + cell-load-reporting, + ... +} + +SONtransferRequestContainer ::= CHOICE{ + cellLoadReporting NULL, + ... +} + +SONtransferResponseContainer ::= CHOICE{ + cellLoadReporting CellLoadReportingResponse, + ... +} + +SONtransferCause ::= CHOICE { + cellLoadReporting CellLoadReportingCause, + ... +} + + +CellLoadReportingCause ::= ENUMERATED { + application-container-syntax-error, + inconsistent-reporting-cell-identifier, + unspecified, + ... +} + +-- +-- IEs for Cell Load Reporting application +-- + +CellLoadReportingResponse::= CHOICE{ + eUTRAN EUTRANcellLoadReportingResponse, + uTRAN OCTET STRING, + gERAN OCTET STRING, + ... +} + +CompositeAvailableCapacityGroup ::= OCTET STRING + +EUTRANcellLoadReportingResponse ::= SEQUENCE { + compositeAvailableCapacityGroup CompositeAvailableCapacityGroup, + ... +} + +END + + diff --git a/openair3/S1AP/s1ap_common.c b/openair3/S1AP/s1ap_common.c index 0bd132a228..7c4f970af2 100644 --- a/openair3/S1AP/s1ap_common.c +++ b/openair3/S1AP/s1ap_common.c @@ -22,7 +22,7 @@ /*! \file s1ap_common.c * \brief s1ap procedures for both eNB and MME * \author Sebastien ROUX and Navid Nikaein - * \email navid.nikaein@eurecom.fr + * \email navid.nikaein@eurecom.fr * \date 2012-2015 * \version 0.1 */ @@ -30,7 +30,7 @@ #include #include "s1ap_common.h" -#include "S1AP-PDU.h" +#include "S1AP_S1AP-PDU.h" int asn_debug = 0; int asn1_xer_print = 0; @@ -53,144 +53,6 @@ inline void ASN_DEBUG(const char *fmt, ...) } #endif -ssize_t s1ap_generate_initiating_message( - uint8_t **buffer, - uint32_t *length, - e_S1ap_ProcedureCode procedureCode, - S1ap_Criticality_t criticality, - asn_TYPE_descriptor_t *td, - void *sptr) +void s1ap_handle_criticality(S1AP_Criticality_t criticality) { - S1AP_PDU_t pdu; - ssize_t encoded; - - memset(&pdu, 0, sizeof(S1AP_PDU_t)); - - pdu.present = S1AP_PDU_PR_initiatingMessage; - pdu.choice.initiatingMessage.procedureCode = procedureCode; - pdu.choice.initiatingMessage.criticality = criticality; - ANY_fromType_aper(&pdu.choice.initiatingMessage.value, td, sptr); - - if (asn1_xer_print) { - xer_fprint(stdout, &asn_DEF_S1AP_PDU, (void *)&pdu); - } - - /* We can safely free list of IE from sptr */ - ASN_STRUCT_FREE_CONTENTS_ONLY(*td, sptr); - - if ((encoded = aper_encode_to_new_buffer(&asn_DEF_S1AP_PDU, 0, &pdu, - (void **)buffer)) < 0) { - return -1; - } - - *length = encoded; - return encoded; -} - -ssize_t s1ap_generate_successfull_outcome( - uint8_t **buffer, - uint32_t *length, - e_S1ap_ProcedureCode procedureCode, - S1ap_Criticality_t criticality, - asn_TYPE_descriptor_t *td, - void *sptr) -{ - S1AP_PDU_t pdu; - ssize_t encoded; - - memset(&pdu, 0, sizeof(S1AP_PDU_t)); - - pdu.present = S1AP_PDU_PR_successfulOutcome; - pdu.choice.successfulOutcome.procedureCode = procedureCode; - pdu.choice.successfulOutcome.criticality = criticality; - ANY_fromType_aper(&pdu.choice.successfulOutcome.value, td, sptr); - - if (asn1_xer_print) { - xer_fprint(stdout, &asn_DEF_S1AP_PDU, (void *)&pdu); - } - - /* We can safely free list of IE from sptr */ - ASN_STRUCT_FREE_CONTENTS_ONLY(*td, sptr); - - if ((encoded = aper_encode_to_new_buffer(&asn_DEF_S1AP_PDU, 0, &pdu, - (void **)buffer)) < 0) { - return -1; - } - - *length = encoded; - - return encoded; -} - -ssize_t s1ap_generate_unsuccessfull_outcome( - uint8_t **buffer, - uint32_t *length, - e_S1ap_ProcedureCode procedureCode, - S1ap_Criticality_t criticality, - asn_TYPE_descriptor_t *td, - void *sptr) -{ - S1AP_PDU_t pdu; - ssize_t encoded; - - memset(&pdu, 0, sizeof(S1AP_PDU_t)); - - pdu.present = S1AP_PDU_PR_unsuccessfulOutcome; - pdu.choice.successfulOutcome.procedureCode = procedureCode; - pdu.choice.successfulOutcome.criticality = criticality; - ANY_fromType_aper(&pdu.choice.successfulOutcome.value, td, sptr); - - if (asn1_xer_print) { - xer_fprint(stdout, &asn_DEF_S1AP_PDU, (void *)&pdu); - } - - /* We can safely free list of IE from sptr */ - ASN_STRUCT_FREE_CONTENTS_ONLY(*td, sptr); - - if ((encoded = aper_encode_to_new_buffer(&asn_DEF_S1AP_PDU, 0, &pdu, - (void **)buffer)) < 0) { - return -1; - } - - *length = encoded; - - return encoded; -} - -S1ap_IE_t *s1ap_new_ie( - S1ap_ProtocolIE_ID_t id, - S1ap_Criticality_t criticality, - asn_TYPE_descriptor_t *type, - void *sptr) -{ - S1ap_IE_t *buff; - - if ((buff = malloc(sizeof(S1ap_IE_t))) == NULL) { - // Possible error on malloc - return NULL; - } - - memset((void *)buff, 0, sizeof(S1ap_IE_t)); - - buff->id = id; - buff->criticality = criticality; - - if (ANY_fromType_aper(&buff->value, type, sptr) < 0) { - fprintf(stderr, "Encoding of %s failed\n", type->name); - free(buff); - return NULL; - } - - if (asn1_xer_print) - if (xer_fprint(stdout, &asn_DEF_S1ap_IE, buff) < 0) { - free(buff); - return NULL; - } - - return buff; -} - -void s1ap_handle_criticality(S1ap_Criticality_t criticality) -{ - } diff --git a/openair3/S1AP/s1ap_common.h b/openair3/S1AP/s1ap_common.h index a327e18b02..8a2faa311f 100644 --- a/openair3/S1AP/s1ap_common.h +++ b/openair3/S1AP/s1ap_common.h @@ -39,343 +39,19 @@ extern int asn_debug; inline void ASN_DEBUG(const char *fmt, ...); #endif -#include "S1ap-Criticality.h" -#include "S1ap-Presence.h" -#include "S1ap-PrivateIE-ID.h" -#include "S1ap-ProcedureCode.h" -#include "S1ap-ProtocolExtensionID.h" -#include "S1ap-ProtocolIE-ID.h" -#include "S1ap-TriggeringMessage.h" -#include "S1ap-AllocationAndRetentionPriority.h" -#include "S1ap-Bearers-SubjectToStatusTransfer-List.h" -#include "S1ap-Bearers-SubjectToStatusTransfer-Item.h" -#include "S1ap-BitRate.h" -#include "S1ap-BPLMNs.h" -#include "S1ap-BroadcastCompletedAreaList.h" -#include "S1ap-Cause.h" -#include "S1ap-CauseMisc.h" -#include "S1ap-CauseProtocol.h" -#include "S1ap-CauseRadioNetwork.h" -#include "S1ap-CauseTransport.h" -#include "S1ap-CauseNas.h" -#include "S1ap-CellIdentity.h" -#include "S1ap-CellID-Broadcast.h" -#include "S1ap-CellID-Broadcast-Item.h" -#include "S1ap-Cdma2000PDU.h" -#include "S1ap-Cdma2000RATType.h" -#include "S1ap-Cdma2000SectorID.h" -#include "S1ap-Cdma2000HOStatus.h" -#include "S1ap-Cdma2000HORequiredIndication.h" -#include "S1ap-Cdma2000OneXSRVCCInfo.h" -#include "S1ap-Cdma2000OneXMEID.h" -#include "S1ap-Cdma2000OneXMSI.h" -#include "S1ap-Cdma2000OneXPilot.h" -#include "S1ap-Cdma2000OneXRAND.h" -#include "S1ap-Cell-Size.h" -#include "S1ap-CellType.h" -#include "S1ap-CGI.h" -#include "S1ap-CI.h" -#include "S1ap-CNDomain.h" -#include "S1ap-CSFallbackIndicator.h" -#include "S1ap-CSG-Id.h" -#include "S1ap-CSG-IdList.h" -#include "S1ap-CSG-IdList-Item.h" -#include "S1ap-COUNTvalue.h" -#include "S1ap-DataCodingScheme.h" -#include "S1ap-DL-Forwarding.h" -#include "S1ap-Direct-Forwarding-Path-Availability.h" -#include "S1ap-ECGIList.h" -#include "S1ap-EmergencyAreaIDList.h" -#include "S1ap-EmergencyAreaID.h" -#include "S1ap-EmergencyAreaID-Broadcast.h" -#include "S1ap-EmergencyAreaID-Broadcast-Item.h" -#include "S1ap-CompletedCellinEAI.h" -#include "S1ap-CompletedCellinEAI-Item.h" -#include "S1ap-ENB-ID.h" -#include "S1ap-GERAN-Cell-ID.h" -#include "S1ap-Global-ENB-ID.h" -#include "S1ap-ENB-StatusTransfer-TransparentContainer.h" -#include "S1ap-ENBname.h" -#include "S1ap-ENBX2TLAs.h" -#include "S1ap-EncryptionAlgorithms.h" -#include "S1ap-EPLMNs.h" -#include "S1ap-EventType.h" -#include "S1ap-E-RAB-ID.h" -#include "S1ap-E-RABInformationList.h" -#include "S1ap-E-RABInformationListItem.h" -#include "S1ap-E-RABList.h" -#include "S1ap-E-RABItem.h" -#include "S1ap-E-RABLevelQoSParameters.h" -#include "S1ap-EUTRAN-CGI.h" -#include "S1ap-ExtendedRNC-ID.h" -#include "S1ap-ForbiddenInterRATs.h" -#include "S1ap-ForbiddenTAs.h" -#include "S1ap-ForbiddenTAs-Item.h" -#include "S1ap-ForbiddenTACs.h" -#include "S1ap-ForbiddenLAs.h" -#include "S1ap-ForbiddenLAs-Item.h" -#include "S1ap-ForbiddenLACs.h" -#include "S1ap-GBR-QosInformation.h" -#include "S1ap-GTP-TEID.h" -#include "S1ap-GUMMEI.h" -#include "S1ap-HandoverRestrictionList.h" -#include "S1ap-HandoverType.h" -#include "S1ap-HFN.h" -#include "S1ap-IMSI.h" -#include "S1ap-IntegrityProtectionAlgorithms.h" -#include "S1ap-InterfacesToTrace.h" -#include "S1ap-LAC.h" -#include "S1ap-LAI.h" -#include "S1ap-LastVisitedCell-Item.h" -#include "S1ap-LastVisitedEUTRANCellInformation.h" -#include "S1ap-LastVisitedUTRANCellInformation.h" -#include "S1ap-LastVisitedGERANCellInformation.h" -#include "S1ap-L3-Information.h" -#include "S1ap-MessageIdentifier.h" -#include "S1ap-MMEname.h" -#include "S1ap-MME-Group-ID.h" -#include "S1ap-MME-Code.h" -#include "S1ap-M-TMSI.h" -#include "S1ap-MSClassmark2.h" -#include "S1ap-MSClassmark3.h" -#include "S1ap-NAS-PDU.h" -#include "S1ap-NASSecurityParametersfromE-UTRAN.h" -#include "S1ap-NASSecurityParameterstoE-UTRAN.h" -#include "S1ap-NumberofBroadcastRequest.h" -#include "S1ap-NumberOfBroadcasts.h" -#include "S1ap-OldBSS-ToNewBSS-Information.h" -#include "S1ap-OverloadAction.h" -#include "S1ap-OverloadResponse.h" -#include "S1ap-PagingDRX.h" -#include "S1ap-PDCP-SN.h" -#include "S1ap-PLMNidentity.h" -#include "S1ap-Pre-emptionCapability.h" -#include "S1ap-Pre-emptionVulnerability.h" -#include "S1ap-PriorityLevel.h" -#include "S1ap-QCI.h" -#include "S1ap-ReceiveStatusofULPDCPSDUs.h" -#include "S1ap-RelativeMMECapacity.h" -#include "S1ap-RAC.h" -#include "S1ap-RequestType.h" -#include "S1ap-RIMTransfer.h" -#include "S1ap-RIMInformation.h" -#include "S1ap-RIMRoutingAddress.h" -#include "S1ap-ReportArea.h" -#include "S1ap-RepetitionPeriod.h" -#include "S1ap-RNC-ID.h" -#include "S1ap-RRC-Container.h" -#include "S1ap-RRC-Establishment-Cause.h" -#include "S1ap-SecurityKey.h" -#include "S1ap-SecurityContext.h" -#include "S1ap-SerialNumber.h" -#include "S1ap-SONInformation.h" -#include "S1ap-SONInformationRequest.h" -#include "S1ap-SONInformationReply.h" -#include "S1ap-SONConfigurationTransfer.h" -#include "S1ap-Source-ToTarget-TransparentContainer.h" -#include "S1ap-SourceBSS-ToTargetBSS-TransparentContainer.h" -#include "S1ap-SourceeNB-ID.h" -#include "S1ap-SRVCCOperationPossible.h" -#include "S1ap-SRVCCHOIndication.h" -#include "S1ap-SourceeNB-ToTargeteNB-TransparentContainer.h" -#include "S1ap-SourceRNC-ToTargetRNC-TransparentContainer.h" -#include "S1ap-ServedGUMMEIs.h" -#include "S1ap-ServedGUMMEIsItem.h" -#include "S1ap-ServedGroupIDs.h" -#include "S1ap-ServedMMECs.h" -#include "S1ap-ServedPLMNs.h" -#include "S1ap-SubscriberProfileIDforRFP.h" -#include "S1ap-SupportedTAs.h" -#include "S1ap-SupportedTAs-Item.h" -#include "S1ap-S-TMSI.h" -#include "S1ap-TAC.h" -#include "S1ap-TAIItem.h" -#include "S1ap-TAIList.h" -#include "S1ap-TAIListforWarning.h" -#include "S1ap-TAI.h" -#include "S1ap-TAI-Broadcast.h" -#include "S1ap-TAI-Broadcast-Item.h" -#include "S1ap-CompletedCellinTAI.h" -#include "S1ap-CompletedCellinTAI-Item.h" -#include "S1ap-TargetID.h" -#include "S1ap-TargeteNB-ID.h" -#include "S1ap-TargetRNC-ID.h" -#include "S1ap-TargeteNB-ToSourceeNB-TransparentContainer.h" -#include "S1ap-Target-ToSource-TransparentContainer.h" -#include "S1ap-TargetRNC-ToSourceRNC-TransparentContainer.h" -#include "S1ap-TargetBSS-ToSourceBSS-TransparentContainer.h" -#include "S1ap-TimeToWait.h" -#include "S1ap-Time-UE-StayedInCell.h" -#include "S1ap-TransportLayerAddress.h" -#include "S1ap-TraceActivation.h" -#include "S1ap-TraceDepth.h" -#include "S1ap-E-UTRAN-Trace-ID.h" -#include "S1ap-TypeOfError.h" -#include "S1ap-UEAggregateMaximumBitrate.h" -#include "S1ap-UE-associatedLogicalS1-ConnectionItem.h" -#include "S1ap-UEIdentityIndexValue.h" -#include "S1ap-UE-HistoryInformation.h" -#include "S1ap-UEPagingID.h" -#include "S1ap-UERadioCapability.h" -#include "S1ap-UESecurityCapabilities.h" -#include "S1ap-WarningAreaList.h" -#include "S1ap-WarningType.h" -#include "S1ap-WarningSecurityInfo.h" -#include "S1ap-WarningMessageContents.h" -#include "S1ap-X2TNLConfigurationInfo.h" -#include "S1ap-CriticalityDiagnostics.h" -#include "S1ap-CriticalityDiagnostics-IE-List.h" -#include "S1ap-CriticalityDiagnostics-IE-Item.h" -#include "S1ap-ResetType.h" -#include "S1ap-Inter-SystemInformationTransferType.h" -#include "S1ap-UE-S1AP-IDs.h" -#include "S1ap-UE-S1AP-ID-pair.h" -#include "S1ap-MME-UE-S1AP-ID.h" -#include "S1ap-ENB-UE-S1AP-ID.h" -#include "S1ap-TBCD-STRING.h" -#include "S1ap-InitiatingMessage.h" -#include "S1ap-SuccessfulOutcome.h" -#include "S1ap-UnsuccessfulOutcome.h" -#include "S1ap-HandoverRequired.h" -#include "S1ap-HandoverCommand.h" -#include "S1ap-HandoverNotify.h" -#include "S1ap-HandoverPreparationFailure.h" -#include "S1ap-HandoverRequest.h" -#include "S1ap-HandoverRequestAcknowledge.h" -#include "S1ap-HandoverFailure.h" -#include "S1ap-PathSwitchRequest.h" -#include "S1ap-PathSwitchRequestAcknowledge.h" -#include "S1ap-PathSwitchRequestFailure.h" -#include "S1ap-E-RABSetupRequest.h" -#include "S1ap-E-RABSetupResponse.h" -#include "S1ap-E-RABModifyRequest.h" -#include "S1ap-E-RABModifyResponse.h" -#include "S1ap-E-RABReleaseIndication.h" -#include "S1ap-E-RABReleaseCommand.h" -#include "S1ap-E-RABReleaseResponse.h" -#include "S1ap-InitialContextSetupRequest.h" -#include "S1ap-InitialContextSetupResponse.h" -#include "S1ap-InitialContextSetupFailure.h" -#include "S1ap-UEContextReleaseRequest.h" -#include "S1ap-Paging.h" -#include "S1ap-DownlinkNASTransport.h" -#include "S1ap-InitialUEMessage.h" -#include "S1ap-UplinkNASTransport.h" -#include "S1ap-NASNonDeliveryIndication.h" -#include "S1ap-HandoverCancel.h" -#include "S1ap-HandoverCancelAcknowledge.h" -#include "S1ap-Reset.h" -#include "S1ap-ResetAcknowledge.h" -#include "S1ap-S1SetupResponse.h" -#include "S1ap-S1SetupRequest.h" -#include "S1ap-S1SetupFailure.h" -#include "S1ap-ErrorIndication.h" -#include "S1ap-ENBConfigurationUpdate.h" -#include "S1ap-ENBConfigurationUpdateAcknowledge.h" -#include "S1ap-ENBConfigurationUpdateFailure.h" -#include "S1ap-MMEConfigurationUpdate.h" -#include "S1ap-MMEConfigurationUpdateAcknowledge.h" -#include "S1ap-MMEConfigurationUpdateFailure.h" -#include "S1ap-DownlinkS1cdma2000tunneling.h" -#include "S1ap-UplinkS1cdma2000tunneling.h" -#include "S1ap-UEContextModificationRequest.h" -#include "S1ap-UEContextModificationResponse.h" -#include "S1ap-UEContextModificationFailure.h" -#include "S1ap-UECapabilityInfoIndication.h" -#include "S1ap-UEContextReleaseCommand.h" -#include "S1ap-UEContextReleaseComplete.h" -#include "S1ap-ENBStatusTransfer.h" -#include "S1ap-MMEStatusTransfer.h" -#include "S1ap-DeactivateTrace.h" -#include "S1ap-TraceStart.h" -#include "S1ap-TraceFailureIndication.h" -#include "S1ap-CellTrafficTrace.h" -#include "S1ap-LocationReportingControl.h" -#include "S1ap-LocationReportingFailureIndication.h" -#include "S1ap-LocationReport.h" -#include "S1ap-OverloadStart.h" -#include "S1ap-OverloadStop.h" -#include "S1ap-WriteReplaceWarningRequest.h" -#include "S1ap-WriteReplaceWarningResponse.h" -#include "S1ap-ENBDirectInformationTransfer.h" -#include "S1ap-MMEDirectInformationTransfer.h" -#include "S1ap-ENBConfigurationTransfer.h" -#include "S1ap-MMEConfigurationTransfer.h" -#include "S1ap-PrivateMessage.h" -#include "S1ap-E-RABReleaseItemBearerRelComp.h" -#include "S1ap-E-RABToBeSwitchedDLList.h" -#include "S1ap-E-RABToBeSwitchedDLItem.h" -#include "S1ap-E-RABToBeSwitchedULList.h" -#include "S1ap-E-RABToBeSwitchedULItem.h" -#include "S1ap-E-RABToBeSetupListBearerSUReq.h" -#include "S1ap-E-RABToBeSetupItemBearerSUReq.h" -#include "S1ap-E-RABDataForwardingList.h" -#include "S1ap-E-RABDataForwardingItem.h" -#include "S1ap-E-RABToBeSetupListHOReq.h" -#include "S1ap-E-RABToBeSetupItemHOReq.h" -#include "S1ap-E-RABAdmittedList.h" -#include "S1ap-E-RABAdmittedItem.h" -#include "S1ap-E-RABFailedToSetupListHOReqAck.h" -#include "S1ap-E-RABToBeSetupItemCtxtSUReq.h" -#include "S1ap-E-RABToBeSetupListCtxtSUReq.h" -#include "S1ap-E-RABSetupItemBearerSURes.h" -#include "S1ap-E-RABSetupListBearerSURes.h" -#include "S1ap-E-RABSetupItemCtxtSURes.h" -#include "S1ap-E-RABSetupListCtxtSURes.h" -#include "S1ap-E-RABReleaseListBearerRelComp.h" -#include "S1ap-E-RABModifyItemBearerModRes.h" -#include "S1ap-E-RABModifyListBearerModRes.h" -#include "S1ap-E-RABFailedToSetupItemHOReqAck.h" -#include "S1ap-E-RABFailedToSetupListHOReqAck.h" -#include "S1ap-E-RABToBeModifiedItemBearerModReq.h" -#include "S1ap-E-RABToBeModifiedListBearerModReq.h" -#include "S1ap-UE-associatedLogicalS1-ConnectionListResAck.h" -#include "S1ap-IE.h" -#include "S1AP-PDU.h" - -#if (S1AP_VERSION >= MAKE_VERSION(9, 0, 0)) -# include "S1ap-BroadcastCancelledAreaList.h" -# include "S1ap-CancelledCellinEAI.h" -# include "S1ap-CancelledCellinEAI-Item.h" -# include "S1ap-CancelledCellinTAI.h" -# include "S1ap-CancelledCellinTAI-Item.h" -# include "S1ap-CellAccessMode.h" -# include "S1ap-CellID-Cancelled.h" -# include "S1ap-CellID-Cancelled-Item.h" -# include "S1ap-ConcurrentWarningMessageIndicator.h" -# include "S1ap-CSGMembershipStatus.h" -# include "S1ap-Data-Forwarding-Not-Possible.h" -# include "S1ap-EmergencyAreaID-Cancelled.h" -# include "S1ap-EmergencyAreaID-Cancelled-Item.h" -# include "S1ap-E-RABList.h" -# include "S1ap-EUTRANRoundTripDelayEstimationInfo.h" -# include "S1ap-ExtendedRepetitionPeriod.h" -# include "S1ap-LPPa-PDU.h" -# include "S1ap-PS-ServiceNotAvailable.h" -# include "S1ap-Routing-ID.h" -# include "S1ap-StratumLevel.h" -# include "S1ap-SynchronizationStatus.h" -# include "S1ap-TimeSynchronizationInfo.h" -# include "S1ap-TAI-Cancelled.h" -# include "S1ap-TAI-Cancelled-Item.h" -# include "S1ap-KillRequest.h" -# include "S1ap-KillResponse.h" -# include "S1ap-DownlinkUEAssociatedLPPaTransport.h" -# include "S1ap-UplinkUEAssociatedLPPaTransport.h" -# include "S1ap-DownlinkNonUEAssociatedLPPaTransport.h" -# include "S1ap-UplinkNonUEAssociatedLPPaTransport.h" -#endif /* #if (S1AP_VERSION >= MAKE_VERSION(9, 0, 0)) */ - -#if (S1AP_VERSION >= MAKE_VERSION(10, 0, 0)) -# include "S1ap-PagingPriority.h" -# include "S1ap-RelayNode-Indicator.h" -# include "S1ap-GWContextReleaseIndication.h" -# include "S1ap-MMERelaySupportIndicator.h" -# include "S1ap-ManagementBasedMDTAllowed.h" -# include "S1ap-PrivacyIndicator.h" -# include "S1ap-TrafficLoadReductionIndication.h" -# include "S1ap-GUMMEIList.h" -#endif /* #if (S1AP_VERSION >= MAKE_VERSION(10, 0, 0)) */ +#include "S1AP_ProtocolIE-Field.h" +#include "S1AP_S1AP-PDU.h" +#include "S1AP_InitiatingMessage.h" +#include "S1AP_SuccessfulOutcome.h" +#include "S1AP_UnsuccessfulOutcome.h" +#include "S1AP_ProtocolIE-Field.h" +#include "S1AP_ProtocolIE-FieldPair.h" +#include "S1AP_ProtocolIE-ContainerPair.h" +#include "S1AP_ProtocolExtensionField.h" +#include "S1AP_ProtocolExtensionContainer.h" +#include "S1AP_asn_constant.h" +#include "S1AP_SupportedTAs-Item.h" +#include "S1AP_ServedGUMMEIsItem.h" /* Checking version of ASN1C compiler */ #if (ASN1C_ENVIRONMENT_VERSION < ASN1C_MINIMUM_VERSION) @@ -395,7 +71,7 @@ extern int asn_debug; extern int asn1_xer_print; #if defined(ENB_MODE) -# include "UTIL/LOG/log.h" +# include "common/utils/LOG/log.h" # include "s1ap_eNB_default_values.h" # define S1AP_ERROR(x, args...) LOG_E(S1AP, x, ##args) # define S1AP_WARN(x, args...) LOG_W(S1AP, x, ##args) @@ -411,84 +87,33 @@ extern int asn1_xer_print; # define S1AP_DEBUG(x, args...) do { fprintf(stdout, "[S1AP][D]"x, ##args); } while(0) #endif -//Forward declaration -struct s1ap_message_s; +#define S1AP_FIND_PROTOCOLIE_BY_ID(IE_TYPE, ie, container, IE_ID, mandatory) \ + do {\ + IE_TYPE **ptr; \ + ie = NULL; \ + for (ptr = container->protocolIEs.list.array; \ + ptr < &container->protocolIEs.list.array[container->protocolIEs.list.count]; \ + ptr++) { \ + if((*ptr)->id == IE_ID) { \ + ie = *ptr; \ + break; \ + } \ + } \ + if (mandatory) DevAssert(ie != NULL); \ + } while(0) /** \brief Function callback prototype. **/ typedef int (*s1ap_message_decoded_callback)( - uint32_t assoc_id, - uint32_t stream, - struct s1ap_message_s *message_p + uint32_t assoc_id, + uint32_t stream, + S1AP_S1AP_PDU_t *pdu ); -/** \brief Encode a successfull outcome message - \param buffer pointer to buffer in which data will be encoded - \param length pointer to the length of buffer - \param procedureCode Procedure code for the message - \param criticality Criticality of the message - \param td ASN1C type descriptor of the sptr - \param sptr Deferenced pointer to the structure to encode - @returns size in bytes encded on success or 0 on failure - **/ -ssize_t s1ap_generate_successfull_outcome( - uint8_t **buffer, - uint32_t *length, - e_S1ap_ProcedureCode procedureCode, - S1ap_Criticality_t criticality, - asn_TYPE_descriptor_t *td, - void *sptr); - -/** \brief Encode an initiating message - \param buffer pointer to buffer in which data will be encoded - \param length pointer to the length of buffer - \param procedureCode Procedure code for the message - \param criticality Criticality of the message - \param td ASN1C type descriptor of the sptr - \param sptr Deferenced pointer to the structure to encode - @returns size in bytes encded on success or 0 on failure - **/ -ssize_t s1ap_generate_initiating_message( - uint8_t **buffer, - uint32_t *length, - e_S1ap_ProcedureCode procedureCode, - S1ap_Criticality_t criticality, - asn_TYPE_descriptor_t *td, - void *sptr); - -/** \brief Encode an unsuccessfull outcome message - \param buffer pointer to buffer in which data will be encoded - \param length pointer to the length of buffer - \param procedureCode Procedure code for the message - \param criticality Criticality of the message - \param td ASN1C type descriptor of the sptr - \param sptr Deferenced pointer to the structure to encode - @returns size in bytes encded on success or 0 on failure - **/ -ssize_t s1ap_generate_unsuccessfull_outcome( - uint8_t **buffer, - uint32_t *length, - e_S1ap_ProcedureCode procedureCode, - S1ap_Criticality_t criticality, - asn_TYPE_descriptor_t *td, - void *sptr); - -/** \brief Generate a new IE - \param id Protocol ie id of the IE - \param criticality Criticality of the IE - \param type ASN1 type descriptor of the IE value - \param sptr Structure to be encoded in the value field - @returns a pointer to the newly created IE structure or NULL in case of failure - **/ -S1ap_IE_t *s1ap_new_ie(S1ap_ProtocolIE_ID_t id, - S1ap_Criticality_t criticality, - asn_TYPE_descriptor_t *type, - void *sptr); - /** \brief Handle criticality \param criticality Criticality of the IE @returns void **/ -void s1ap_handle_criticality(S1ap_Criticality_t criticality); +void s1ap_handle_criticality(S1AP_Criticality_t criticality); #endif /* S1AP_COMMON_H_ */ diff --git a/openair3/S1AP/s1ap_eNB.c b/openair3/S1AP/s1ap_eNB.c index 8085c239c3..2a6db4a5ce 100644 --- a/openair3/S1AP/s1ap_eNB.c +++ b/openair3/S1AP/s1ap_eNB.c @@ -20,8 +20,8 @@ */ /*! \file s1ap_eNB.c - * \brief S1AP eNB task - * \author S. Roux and Navid Nikaein + * \brief S1AP eNB task + * \author S. Roux and Navid Nikaein * \date 2010 - 2015 * \email: navid.nikaein@eurecom.fr * \version 1.0 @@ -42,7 +42,6 @@ #include "s1ap_eNB_default_values.h" #include "s1ap_common.h" -#include "s1ap_ies_defs.h" #include "s1ap_eNB_defs.h" #include "s1ap_eNB.h" @@ -104,7 +103,7 @@ static void s1ap_eNB_register_mme(s1ap_eNB_instance_t *instance_p, sctp_new_association_req_t *sctp_new_association_req_p = NULL; s1ap_eNB_mme_data_t *s1ap_mme_data_p = NULL; struct s1ap_eNB_mme_data_s *mme = NULL; - + DevAssert(instance_p != NULL); DevAssert(mme_ip_address != NULL); @@ -125,25 +124,25 @@ static void s1ap_eNB_register_mme(s1ap_eNB_instance_t *instance_p, memcpy(&sctp_new_association_req_p->local_address, local_ip_addr, sizeof(*local_ip_addr)); - + S1AP_INFO("[eNB %d] check the mme registration state\n",instance_p->instance); - + mme = s1ap_eNB_get_MME_from_instance(instance_p); if ( mme == NULL ) { - + /* Create new MME descriptor */ s1ap_mme_data_p = calloc(1, sizeof(*s1ap_mme_data_p)); DevAssert(s1ap_mme_data_p != NULL); - + s1ap_mme_data_p->cnx_id = s1ap_eNB_fetch_add_global_cnx_id(); sctp_new_association_req_p->ulp_cnx_id = s1ap_mme_data_p->cnx_id; - + s1ap_mme_data_p->assoc_id = -1; s1ap_mme_data_p->s1ap_eNB_instance = instance_p; - + STAILQ_INIT(&s1ap_mme_data_p->served_gummei); - + /* Insert the new descriptor in list of known MME * but not yet associated. */ @@ -156,25 +155,23 @@ static void s1ap_eNB_register_mme(s1ap_eNB_instance_t *instance_p, sctp_new_association_req_p->ulp_cnx_id = mme->cnx_id; S1AP_INFO("[eNB %d] MME already registered, retrive the data (state %d, cnx %d, mme_nb %d, mme_pending_nb %d)\n", - instance_p->instance, - mme->state, mme->cnx_id, - instance_p->s1ap_mme_nb, instance_p->s1ap_mme_pending_nb); + instance_p->instance, + mme->state, mme->cnx_id, + instance_p->s1ap_mme_nb, instance_p->s1ap_mme_pending_nb); /*s1ap_mme_data_p->cnx_id = mme->cnx_id; sctp_new_association_req_p->ulp_cnx_id = mme->cnx_id; - + s1ap_mme_data_p->assoc_id = -1; s1ap_mme_data_p->s1ap_eNB_instance = instance_p; - */ + */ } else { - S1AP_WARN("[eNB %d] MME already registered but not in the waiting state, retrive the data (state %d, cnx %d, mme_nb %d, mme_pending_nb %d)\n", - instance_p->instance, - mme->state, mme->cnx_id, - instance_p->s1ap_mme_nb, instance_p->s1ap_mme_pending_nb); - + instance_p->instance, + mme->state, mme->cnx_id, + instance_p->s1ap_mme_nb, instance_p->s1ap_mme_pending_nb); } - + itti_send_msg_to_task(TASK_SCTP, instance_p->instance, message_p); } @@ -188,9 +185,8 @@ void s1ap_eNB_handle_register_eNB(instance_t instance, s1ap_register_enb_req_t * /* Look if the provided instance already exists */ new_instance = s1ap_eNB_get_instance(instance); - - - if (new_instance != NULL) { + + if (new_instance != NULL) { /* Checks if it is a retry on the same eNB */ DevCheck(new_instance->eNB_id == s1ap_register_eNB->eNB_id, new_instance->eNB_id, s1ap_register_eNB->eNB_id, 0); DevCheck(new_instance->cell_type == s1ap_register_eNB->cell_type, new_instance->cell_type, s1ap_register_eNB->cell_type, 0); @@ -221,9 +217,9 @@ void s1ap_eNB_handle_register_eNB(instance_t instance, s1ap_register_enb_req_t * s1ap_eNB_insert_new_instance(new_instance); S1AP_INFO("Registered new eNB[%d] and %s eNB id %u\n", - instance, - s1ap_register_eNB->cell_type == CELL_MACRO_ENB ? "macro" : "home", - s1ap_register_eNB->eNB_id); + instance, + s1ap_register_eNB->cell_type == CELL_MACRO_ENB ? "macro" : "home", + s1ap_register_eNB->eNB_id); } DevCheck(s1ap_register_eNB->nb_mme <= S1AP_MAX_NB_MME_IP_ADDRESS, @@ -232,7 +228,7 @@ void s1ap_eNB_handle_register_eNB(instance_t instance, s1ap_register_enb_req_t * /* Trying to connect to provided list of MME ip address */ for (index = 0; index < s1ap_register_eNB->nb_mme; index++) { s1ap_eNB_register_mme(new_instance, - &s1ap_register_eNB->mme_ip_address[index], + &s1ap_register_eNB->mme_ip_address[index], &s1ap_register_eNB->enb_ip_address, s1ap_register_eNB->sctp_in_streams, s1ap_register_eNB->sctp_out_streams); @@ -425,12 +421,11 @@ void *s1ap_eNB_task(void *arg) static int s1ap_eNB_generate_s1_setup_request( s1ap_eNB_instance_t *instance_p, s1ap_eNB_mme_data_t *s1ap_mme_data_p) { - s1ap_message message; - - S1ap_S1SetupRequestIEs_t *s1SetupRequest_p; - S1ap_PLMNidentity_t plmnIdentity; - S1ap_SupportedTAs_Item_t ta; - + S1AP_S1AP_PDU_t pdu; + S1AP_S1SetupRequest_t *out; + S1AP_S1SetupRequestIEs_t *ie; + S1AP_SupportedTAs_Item_t *ta; + S1AP_PLMNidentity_t *plmn; uint8_t *buffer; uint32_t len; int ret = 0; @@ -438,43 +433,101 @@ static int s1ap_eNB_generate_s1_setup_request( DevAssert(instance_p != NULL); DevAssert(s1ap_mme_data_p != NULL); - memset(&message, 0, sizeof(s1ap_message)); - - message.direction = S1AP_PDU_PR_initiatingMessage; - message.procedureCode = S1ap_ProcedureCode_id_S1Setup; - message.criticality = S1ap_Criticality_reject; - - s1SetupRequest_p = &message.msg.s1ap_S1SetupRequestIEs; - memset((void *)&plmnIdentity, 0, sizeof(S1ap_PLMNidentity_t)); - - memset((void *)&ta, 0, sizeof(S1ap_SupportedTAs_Item_t)); - s1ap_mme_data_p->state = S1AP_ENB_STATE_WAITING; - s1SetupRequest_p->global_ENB_ID.eNB_ID.present = S1ap_ENB_ID_PR_macroENB_ID; - MACRO_ENB_ID_TO_BIT_STRING(instance_p->eNB_id, - &s1SetupRequest_p->global_ENB_ID.eNB_ID.choice.macroENB_ID); + /* Prepare the S1AP message to encode */ + memset(&pdu, 0, sizeof(pdu)); + pdu.present = S1AP_S1AP_PDU_PR_initiatingMessage; + pdu.choice.initiatingMessage.procedureCode = S1AP_ProcedureCode_id_S1Setup; + pdu.choice.initiatingMessage.criticality = S1AP_Criticality_reject; + pdu.choice.initiatingMessage.value.present = S1AP_InitiatingMessage__value_PR_S1SetupRequest; + out = &pdu.choice.initiatingMessage.value.choice.S1SetupRequest; + + /* mandatory */ + ie = (S1AP_S1SetupRequestIEs_t *)calloc(1, sizeof(S1AP_S1SetupRequestIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_Global_ENB_ID; + ie->criticality = S1AP_Criticality_reject; + ie->value.present = S1AP_S1SetupRequestIEs__value_PR_Global_ENB_ID; MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length, - &s1SetupRequest_p->global_ENB_ID.pLMNidentity); + &ie->value.choice.Global_ENB_ID.pLMNidentity); + ie->value.choice.Global_ENB_ID.eNB_ID.present = S1AP_ENB_ID_PR_macroENB_ID; + MACRO_ENB_ID_TO_BIT_STRING(instance_p->eNB_id, + &ie->value.choice.Global_ENB_ID.eNB_ID.choice.macroENB_ID); + S1AP_INFO("%d -> %02x%02x%02x\n", instance_p->eNB_id, + ie->value.choice.Global_ENB_ID.eNB_ID.choice.macroENB_ID.buf[0], + ie->value.choice.Global_ENB_ID.eNB_ID.choice.macroENB_ID.buf[1], + ie->value.choice.Global_ENB_ID.eNB_ID.choice.macroENB_ID.buf[2]); + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - S1AP_INFO("%d -> %02x%02x%02x\n", instance_p->eNB_id, s1SetupRequest_p->global_ENB_ID.eNB_ID.choice.macroENB_ID.buf[0], s1SetupRequest_p->global_ENB_ID.eNB_ID.choice.macroENB_ID.buf[1], - s1SetupRequest_p->global_ENB_ID.eNB_ID.choice.macroENB_ID.buf[2]); - - INT16_TO_OCTET_STRING(instance_p->tac, &ta.tAC); - MCC_MNC_TO_TBCD(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length, &plmnIdentity); - - ASN_SEQUENCE_ADD(&ta.broadcastPLMNs.list, &plmnIdentity); - ASN_SEQUENCE_ADD(&s1SetupRequest_p->supportedTAs.list, &ta); - - s1SetupRequest_p->defaultPagingDRX = instance_p->default_drx; - - if (instance_p->eNB_name != NULL) { - s1SetupRequest_p->presenceMask |= S1AP_S1SETUPREQUESTIES_ENBNAME_PRESENT; - OCTET_STRING_fromBuf(&s1SetupRequest_p->eNBname, instance_p->eNB_name, + /* optional */ + if (instance_p->eNB_name) { + ie = (S1AP_S1SetupRequestIEs_t *)calloc(1, sizeof(S1AP_S1SetupRequestIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_eNBname; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_S1SetupRequestIEs__value_PR_ENBname; + OCTET_STRING_fromBuf(&ie->value.choice.ENBname, instance_p->eNB_name, strlen(instance_p->eNB_name)); + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); } - if (s1ap_eNB_encode_pdu(&message, &buffer, &len) < 0) { + /* mandatory */ + ie = (S1AP_S1SetupRequestIEs_t *)calloc(1, sizeof(S1AP_S1SetupRequestIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_SupportedTAs; + ie->criticality = S1AP_Criticality_reject; + ie->value.present = S1AP_S1SetupRequestIEs__value_PR_SupportedTAs; + { + ta = (S1AP_SupportedTAs_Item_t *)calloc(1, sizeof(S1AP_SupportedTAs_Item_t)); + INT16_TO_OCTET_STRING(instance_p->tac, &ta->tAC); + { + plmn = (S1AP_PLMNidentity_t *)calloc(1, sizeof(S1AP_PLMNidentity_t)); + MCC_MNC_TO_TBCD(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length, plmn); + ASN_SEQUENCE_ADD(&ta->broadcastPLMNs.list, plmn); + } + ASN_SEQUENCE_ADD(&ie->value.choice.SupportedTAs.list, ta); + } + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + + /* mandatory */ + ie = (S1AP_S1SetupRequestIEs_t *)calloc(1, sizeof(S1AP_S1SetupRequestIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_DefaultPagingDRX; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_S1SetupRequestIEs__value_PR_PagingDRX; + ie->value.choice.PagingDRX = instance_p->default_drx; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + + /* optional */ + if (0) { + ie = (S1AP_S1SetupRequestIEs_t *)calloc(1, sizeof(S1AP_S1SetupRequestIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_CSG_IdList; + ie->criticality = S1AP_Criticality_reject; + ie->value.present = S1AP_S1SetupRequestIEs__value_PR_CSG_IdList; + // ie->value.choice.CSG_IdList = ; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } + + /* optional */ +#if (S1AP_VERSION >= MAKE_VERSION(13, 0, 0)) + if (0) { + ie = (S1AP_S1SetupRequestIEs_t *)calloc(1, sizeof(S1AP_S1SetupRequestIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_UE_RetentionInformation; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_S1SetupRequestIEs__value_PR_UE_RetentionInformation; + // ie->value.choice.UE_RetentionInformation = ; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } + + /* optional */ + if (0) { + ie = (S1AP_S1SetupRequestIEs_t *)calloc(1, sizeof(S1AP_S1SetupRequestIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_NB_IoT_DefaultPagingDRX; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_S1SetupRequestIEs__value_PR_NB_IoT_DefaultPagingDRX; + // ie->value.choice.NB_IoT_DefaultPagingDRX = ; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } +#endif /* #if (S1AP_VERSION >= MAKE_VERSION(14, 0, 0)) */ + + if (s1ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) { S1AP_ERROR("Failed to encode S1 setup request\n"); return -1; } diff --git a/openair3/S1AP/s1ap_eNB_context_management_procedures.c b/openair3/S1AP/s1ap_eNB_context_management_procedures.c index 49c5ed28ac..6063eca2c3 100644 --- a/openair3/S1AP/s1ap_eNB_context_management_procedures.c +++ b/openair3/S1AP/s1ap_eNB_context_management_procedures.c @@ -20,8 +20,8 @@ */ /*! \file s1ap_eNB_context_management_procedures.c - * \brief S1AP context management procedures - * \author S. Roux and Navid Nikaein + * \brief S1AP context management procedures + * \author S. Roux and Navid Nikaein * \date 2010 - 2015 * \email: navid.nikaein@eurecom.fr * \version 1.0 @@ -41,7 +41,6 @@ #include "s1ap_eNB_itti_messaging.h" -#include "s1ap_ies_defs.h" #include "s1ap_eNB_encoder.h" #include "s1ap_eNB_nnsf.h" #include "s1ap_eNB_ue_context.h" @@ -54,16 +53,13 @@ int s1ap_ue_context_release_complete(instance_t instance, s1ap_ue_release_complete_t *ue_release_complete_p) { - s1ap_eNB_instance_t *s1ap_eNB_instance_p = NULL; - struct s1ap_eNB_ue_context_s *ue_context_p = NULL; - - S1ap_UEContextReleaseCompleteIEs_t *ue_ctxt_release_complete_ies_p = NULL; - - s1ap_message message; - + s1ap_eNB_instance_t *s1ap_eNB_instance_p = NULL; + struct s1ap_eNB_ue_context_s *ue_context_p = NULL; + S1AP_S1AP_PDU_t pdu; + S1AP_UEContextReleaseComplete_t *out; + S1AP_UEContextReleaseComplete_IEs_t *ie; uint8_t *buffer; uint32_t length; - int ret = -1; /* Retrieve the S1AP eNB instance associated with Mod_id */ s1ap_eNB_instance_p = s1ap_eNB_get_instance(instance); @@ -72,9 +68,9 @@ int s1ap_ue_context_release_complete(instance_t instance, DevAssert(s1ap_eNB_instance_p != NULL); /*RB_FOREACH(ue_context_p, s1ap_ue_map, &s1ap_eNB_instance_p->s1ap_ue_head) { - S1AP_WARN("in s1ap_ue_map: UE context eNB_ue_s1ap_id %u mme_ue_s1ap_id %u state %u\n", - ue_context_p->eNB_ue_s1ap_id, ue_context_p->mme_ue_s1ap_id, - ue_context_p->ue_state); + S1AP_WARN("in s1ap_ue_map: UE context eNB_ue_s1ap_id %u mme_ue_s1ap_id %u state %u\n", + ue_context_p->eNB_ue_s1ap_id, ue_context_p->mme_ue_s1ap_id, + ue_context_p->ue_state); }*/ if ((ue_context_p = s1ap_eNB_get_ue_context(s1ap_eNB_instance_p, ue_release_complete_p->eNB_ue_s1ap_id)) == NULL) { @@ -85,20 +81,71 @@ int s1ap_ue_context_release_complete(instance_t instance, } /* Prepare the S1AP message to encode */ - memset(&message, 0, sizeof(s1ap_message)); + memset(&pdu, 0, sizeof(pdu)); + pdu.present = S1AP_S1AP_PDU_PR_successfulOutcome; + pdu.choice.successfulOutcome.procedureCode = S1AP_ProcedureCode_id_UEContextRelease; + pdu.choice.successfulOutcome.criticality = S1AP_Criticality_reject; + pdu.choice.successfulOutcome.value.present = S1AP_SuccessfulOutcome__value_PR_UEContextReleaseComplete; + out = &pdu.choice.successfulOutcome.value.choice.UEContextReleaseComplete; - message.direction = S1AP_PDU_PR_successfulOutcome; - message.procedureCode = S1ap_ProcedureCode_id_UEContextRelease; - //message.criticality = S1ap_Criticality_reject; + /* mandatory */ + ie = (S1AP_UEContextReleaseComplete_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseComplete_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_UEContextReleaseComplete_IEs__value_PR_MME_UE_S1AP_ID; + ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - ue_ctxt_release_complete_ies_p = &message.msg.s1ap_UEContextReleaseCompleteIEs; + /* mandatory */ + ie = (S1AP_UEContextReleaseComplete_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseComplete_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_UEContextReleaseComplete_IEs__value_PR_ENB_UE_S1AP_ID; + ie->value.choice.ENB_UE_S1AP_ID = ue_release_complete_p->eNB_ue_s1ap_id; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - ue_ctxt_release_complete_ies_p->eNB_UE_S1AP_ID = ue_release_complete_p->eNB_ue_s1ap_id; - ue_ctxt_release_complete_ies_p->mme_ue_s1ap_id = ue_context_p->mme_ue_s1ap_id; - //ue_ctxt_release_complete_ies_p->criticalityDiagnostics - //ue_ctxt_release_complete_ies_p->presenceMask + /* optional */ + if (0) { + ie = (S1AP_UEContextReleaseComplete_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseComplete_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_CriticalityDiagnostics; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_UEContextReleaseComplete_IEs__value_PR_CriticalityDiagnostics; + // ie->value.choice.CriticalityDiagnostics = ; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } - if (s1ap_eNB_encode_pdu(&message, &buffer, &length) < 0) { + /* release 12, optional */ +#if (S1AP_VERSION >= MAKE_VERSION(12, 0, 0)) + if (0) { + ie = (S1AP_UEContextReleaseComplete_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseComplete_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_UserLocationInformation; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_UEContextReleaseComplete_IEs__value_PR_UserLocationInformation; + // ie->value.choice.UserLocationInformation = ; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } + + /* release 13, optional */ +#if (S1AP_VERSION >= MAKE_VERSION(13, 0, 0)) + if (0) { + ie = (S1AP_UEContextReleaseComplete_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseComplete_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_InformationOnRecommendedCellsAndENBsForPaging; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_UEContextReleaseComplete_IEs__value_PR_InformationOnRecommendedCellsAndENBsForPaging; + // ie->value.choice.InformationOnRecommendedCellsAndENBsForPaging = ; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + + ie = (S1AP_UEContextReleaseComplete_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseComplete_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_CellIdentifierAndCELevelForCECapableUEs; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_UEContextReleaseComplete_IEs__value_PR_CellIdentifierAndCELevelForCECapableUEs; + // ie->value.choice.CellIdentifierAndCELevelForCECapableUEs = ; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } +#endif /* #if (S1AP_VERSION >= MAKE_VERSION(13, 0, 0)) */ +#endif /* #if (S1AP_VERSION >= MAKE_VERSION(12, 0, 0)) */ + + if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) { /* Encode procedure has failed... */ S1AP_ERROR("Failed to encode UE context release complete\n"); return -1; @@ -111,20 +158,16 @@ int s1ap_ue_context_release_complete(instance_t instance, length, MSC_AS_TIME_FMT" UEContextRelease successfulOutcome eNB_ue_s1ap_id %u mme_ue_s1ap_id %u", 0,0, //MSC_AS_TIME_ARGS(ctxt_pP), - ue_ctxt_release_complete_ies_p->eNB_UE_S1AP_ID, - ue_ctxt_release_complete_ies_p->mme_ue_s1ap_id); + ue_release_complete_p->eNB_ue_s1ap_id, + ue_context_p->mme_ue_s1ap_id); /* UE associated signalling -> use the allocated stream */ s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance, ue_context_p->mme_ref->assoc_id, buffer, length, ue_context_p->tx_stream); - //LG s1ap_eNB_itti_send_sctp_close_association(s1ap_eNB_instance_p->instance, - // ue_context_p->mme_ref->assoc_id); - - - + // ue_context_p->mme_ref->assoc_id); // release UE context struct s1ap_eNB_ue_context_s *ue_context2_p = NULL; @@ -138,25 +181,25 @@ int s1ap_ue_context_release_complete(instance_t instance, ue_context_p->eNB_ue_s1ap_id); } /*RB_FOREACH(ue_context_p, s1ap_ue_map, &s1ap_eNB_instance_p->s1ap_ue_head) { - S1AP_WARN("in s1ap_ue_map: UE context eNB_ue_s1ap_id %u mme_ue_s1ap_id %u state %u\n", - ue_context_p->eNB_ue_s1ap_id, ue_context_p->mme_ue_s1ap_id, - ue_context_p->ue_state); + S1AP_WARN("in s1ap_ue_map: UE context eNB_ue_s1ap_id %u mme_ue_s1ap_id %u state %u\n", + ue_context_p->eNB_ue_s1ap_id, ue_context_p->mme_ue_s1ap_id, + ue_context_p->ue_state); }*/ - return ret; + return 0; } int s1ap_ue_context_release_req(instance_t instance, s1ap_ue_release_req_t *ue_release_req_p) { - s1ap_eNB_instance_t *s1ap_eNB_instance_p = NULL; - struct s1ap_eNB_ue_context_s *ue_context_p = NULL; - S1ap_UEContextReleaseRequestIEs_t *ue_ctxt_release_request_ies_p = NULL; - s1ap_message message; - uint8_t *buffer = NULL; - uint32_t length; - + s1ap_eNB_instance_t *s1ap_eNB_instance_p = NULL; + struct s1ap_eNB_ue_context_s *ue_context_p = NULL; + S1AP_S1AP_PDU_t pdu; + S1AP_UEContextReleaseRequest_t *out; + S1AP_UEContextReleaseRequest_IEs_t *ie; + uint8_t *buffer = NULL; + uint32_t length; /* Retrieve the S1AP eNB instance associated with Mod_id */ s1ap_eNB_instance_p = s1ap_eNB_get_instance(instance); @@ -172,50 +215,82 @@ int s1ap_ue_context_release_req(instance_t instance, } /* Prepare the S1AP message to encode */ - memset(&message, 0, sizeof(s1ap_message)); + memset(&pdu, 0, sizeof(pdu)); + pdu.present = S1AP_S1AP_PDU_PR_initiatingMessage; + pdu.choice.initiatingMessage.procedureCode = S1AP_ProcedureCode_id_UEContextReleaseRequest; + pdu.choice.initiatingMessage.criticality = S1AP_Criticality_ignore; + pdu.choice.initiatingMessage.value.present = S1AP_InitiatingMessage__value_PR_UEContextReleaseRequest; + out = &pdu.choice.initiatingMessage.value.choice.UEContextReleaseRequest; - message.direction = S1AP_PDU_PR_initiatingMessage; - message.procedureCode = S1ap_ProcedureCode_id_UEContextReleaseRequest; - //message.criticality = S1ap_Criticality_reject; + /* mandatory */ + ie = (S1AP_UEContextReleaseRequest_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseRequest_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID; + ie->criticality = S1AP_Criticality_reject; + ie->value.present = S1AP_UEContextReleaseRequest_IEs__value_PR_MME_UE_S1AP_ID; + ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - ue_ctxt_release_request_ies_p = &message.msg.s1ap_UEContextReleaseRequestIEs; + /* mandatory */ + ie = (S1AP_UEContextReleaseRequest_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseRequest_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID; + ie->criticality = S1AP_Criticality_reject; + ie->value.present = S1AP_UEContextReleaseRequest_IEs__value_PR_ENB_UE_S1AP_ID; + ie->value.choice.ENB_UE_S1AP_ID = ue_release_req_p->eNB_ue_s1ap_id; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - ue_ctxt_release_request_ies_p->eNB_UE_S1AP_ID = ue_release_req_p->eNB_ue_s1ap_id; - ue_ctxt_release_request_ies_p->mme_ue_s1ap_id = ue_context_p->mme_ue_s1ap_id; + /* mandatory */ + ie = (S1AP_UEContextReleaseRequest_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseRequest_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_Cause; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_UEContextReleaseRequest_IEs__value_PR_Cause; switch (ue_release_req_p->cause) { - case S1AP_CAUSE_NOTHING: - ue_ctxt_release_request_ies_p->cause.present = S1ap_Cause_PR_NOTHING; - break; + case S1AP_Cause_PR_radioNetwork: + ie->value.choice.Cause.present = S1AP_Cause_PR_radioNetwork; + ie->value.choice.Cause.choice.radioNetwork = ue_release_req_p->cause_value; + break; - case S1AP_CAUSE_RADIO_NETWORK: - ue_ctxt_release_request_ies_p->cause.present = S1ap_Cause_PR_radioNetwork; - ue_ctxt_release_request_ies_p->cause.choice.radioNetwork = ue_release_req_p->cause_value; - break; + case S1AP_Cause_PR_transport: + ie->value.choice.Cause.present = S1AP_Cause_PR_transport; + ie->value.choice.Cause.choice.transport = ue_release_req_p->cause_value; + break; - case S1AP_CAUSE_TRANSPORT: - ue_ctxt_release_request_ies_p->cause.present = S1ap_Cause_PR_transport; - ue_ctxt_release_request_ies_p->cause.choice.transport = ue_release_req_p->cause_value; - break; + case S1AP_Cause_PR_nas: + ie->value.choice.Cause.present = S1AP_Cause_PR_nas; + ie->value.choice.Cause.choice.nas = ue_release_req_p->cause_value; + break; - case S1AP_CAUSE_NAS: - ue_ctxt_release_request_ies_p->cause.present = S1ap_Cause_PR_nas; - ue_ctxt_release_request_ies_p->cause.choice.nas = ue_release_req_p->cause_value; - break; + case S1AP_Cause_PR_protocol: + ie->value.choice.Cause.present = S1AP_Cause_PR_protocol; + ie->value.choice.Cause.choice.protocol = ue_release_req_p->cause_value; + break; - case S1AP_CAUSE_PROTOCOL: - ue_ctxt_release_request_ies_p->cause.present = S1ap_Cause_PR_protocol; - ue_ctxt_release_request_ies_p->cause.choice.protocol = ue_release_req_p->cause_value; - break; + case S1AP_Cause_PR_misc: + ie->value.choice.Cause.present = S1AP_Cause_PR_misc; + ie->value.choice.Cause.choice.misc = ue_release_req_p->cause_value; + break; - case S1AP_CAUSE_MISC: - default: - ue_ctxt_release_request_ies_p->cause.present = S1ap_Cause_PR_misc; - ue_ctxt_release_request_ies_p->cause.choice.misc = ue_release_req_p->cause_value; - break; + case S1AP_Cause_PR_NOTHING: + default: + ie->value.choice.Cause.present = S1AP_Cause_PR_NOTHING; + break; } - if (s1ap_eNB_encode_pdu(&message, &buffer, &length) < 0) { + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + + /* optional */ +#if (S1AP_VERSION >= MAKE_VERSION(10, 0, 0)) + if (0) { + ie = (S1AP_UEContextReleaseRequest_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseRequest_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_GWContextReleaseIndication; + ie->criticality = S1AP_Criticality_reject; + ie->value.present = S1AP_UEContextReleaseRequest_IEs__value_PR_GWContextReleaseIndication; + ie->value.choice.GWContextReleaseIndication = TRUE; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } +#endif /* #if (S1AP_VERSION >= MAKE_VERSION(10, 0, 0)) */ + + if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) { /* Encode procedure has failed... */ S1AP_ERROR("Failed to encode UE context release complete\n"); return -1; @@ -228,8 +303,8 @@ int s1ap_ue_context_release_req(instance_t instance, length, MSC_AS_TIME_FMT" UEContextReleaseRequest initiatingMessage eNB_ue_s1ap_id %u mme_ue_s1ap_id %u", 0,0,//MSC_AS_TIME_ARGS(ctxt_pP), - ue_ctxt_release_request_ies_p->eNB_UE_S1AP_ID, - ue_ctxt_release_request_ies_p->mme_ue_s1ap_id); + ue_release_req_p->eNB_ue_s1ap_id, + ue_context_p->mme_ue_s1ap_id); /* UE associated signalling -> use the allocated stream */ s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance, diff --git a/openair3/S1AP/s1ap_eNB_decoder.c b/openair3/S1AP/s1ap_eNB_decoder.c index 447ca2c81b..c12374f758 100644 --- a/openair3/S1AP/s1ap_eNB_decoder.c +++ b/openair3/S1AP/s1ap_eNB_decoder.c @@ -34,251 +34,185 @@ #include "intertask_interface.h" #include "s1ap_common.h" -#include "s1ap_ies_defs.h" #include "s1ap_eNB_decoder.h" -static int s1ap_eNB_decode_initiating_message(s1ap_message *message, - S1ap_InitiatingMessage_t *initiating_p) +static int s1ap_eNB_decode_initiating_message(S1AP_S1AP_PDU_t *pdu) { - int ret = -1; MessageDef *message_p; - char *message_string = NULL; - size_t message_string_size; MessagesIds message_id; + asn_encode_to_new_buffer_result_t res = { NULL, {0, NULL, NULL} }; + DevAssert(pdu != NULL); - DevAssert(initiating_p != NULL); + switch(pdu->choice.initiatingMessage.procedureCode) { + case S1AP_ProcedureCode_id_downlinkNASTransport: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); + message_id = S1AP_DOWNLINK_NAS_LOG; + message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, + res.result.encoded + sizeof (IttiMsgText)); + message_p->ittiMsg.s1ap_downlink_nas_log.size = res.result.encoded; + memcpy(&message_p->ittiMsg.s1ap_downlink_nas_log.text, res.buffer, res.result.encoded); + itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + free(res.buffer); + break; - message_string = calloc(10000, sizeof(char)); + case S1AP_ProcedureCode_id_InitialContextSetup: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); + message_id = S1AP_INITIAL_CONTEXT_SETUP_LOG; + message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, + res.result.encoded + sizeof (IttiMsgText)); + message_p->ittiMsg.s1ap_initial_context_setup_log.size = res.result.encoded; + memcpy(&message_p->ittiMsg.s1ap_initial_context_setup_log.text, res.buffer, res.result.encoded); + itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + free(res.buffer); + break; - s1ap_string_total_size = 0; + case S1AP_ProcedureCode_id_UEContextRelease: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); + message_id = S1AP_UE_CONTEXT_RELEASE_COMMAND_LOG; + message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, + res.result.encoded + sizeof (IttiMsgText)); + message_p->ittiMsg.s1ap_ue_context_release_command_log.size = res.result.encoded; + memcpy(&message_p->ittiMsg.s1ap_ue_context_release_command_log.text, res.buffer, res.result.encoded); + itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + free(res.buffer); + break; - message->procedureCode = initiating_p->procedureCode; - message->criticality = initiating_p->criticality; + case S1AP_ProcedureCode_id_Paging: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); + message_id = S1AP_PAGING_LOG; + message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, + res.result.encoded + sizeof (IttiMsgText)); + message_p->ittiMsg.s1ap_paging_log.size = res.result.encoded; + memcpy(&message_p->ittiMsg.s1ap_paging_log.text, res.buffer, res.result.encoded); + itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + S1AP_INFO("Paging initiating message\n"); + free(res.buffer); + break; - switch(initiating_p->procedureCode) { - case S1ap_ProcedureCode_id_downlinkNASTransport: - ret = s1ap_decode_s1ap_downlinknastransporties( - &message->msg.s1ap_DownlinkNASTransportIEs, - &initiating_p->value); - s1ap_xer_print_s1ap_downlinknastransport(s1ap_xer__print2sp, - message_string, - message); - message_id = S1AP_DOWNLINK_NAS_LOG; - message_string_size = strlen(message_string); - message_p = itti_alloc_new_message_sized(TASK_S1AP, - message_id, - message_string_size + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_downlink_nas_log.size = message_string_size; - memcpy(&message_p->ittiMsg.s1ap_downlink_nas_log.text, message_string, message_string_size); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); - free(message_string); - break; + case S1AP_ProcedureCode_id_E_RABSetup: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); + message_id = S1AP_E_RAB_SETUP_REQUEST_LOG; + message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, + res.result.encoded + sizeof (IttiMsgText)); + message_p->ittiMsg.s1ap_e_rab_setup_request_log.size = res.result.encoded; + memcpy(&message_p->ittiMsg.s1ap_e_rab_setup_request_log.text, res.buffer, res.result.encoded); + itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + free(res.buffer); + S1AP_INFO("E_RABSetup initiating message\n"); + break; - case S1ap_ProcedureCode_id_InitialContextSetup: - ret = s1ap_decode_s1ap_initialcontextsetuprequesties( - &message->msg.s1ap_InitialContextSetupRequestIEs, &initiating_p->value); - s1ap_xer_print_s1ap_initialcontextsetuprequest(s1ap_xer__print2sp, message_string, message); - message_id = S1AP_INITIAL_CONTEXT_SETUP_LOG; - message_string_size = strlen(message_string); - message_p = itti_alloc_new_message_sized(TASK_S1AP, - message_id, - message_string_size + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_initial_context_setup_log.size = message_string_size; - memcpy(&message_p->ittiMsg.s1ap_initial_context_setup_log.text, message_string, message_string_size); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); - free(message_string); - break; + case S1AP_ProcedureCode_id_E_RABModify: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); + message_id = S1AP_E_RAB_MODIFY_REQUEST_LOG; + message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, + res.result.encoded + sizeof (IttiMsgText)); + message_p->ittiMsg.s1ap_e_rab_modify_request_log.size = res.result.encoded; + memcpy(&message_p->ittiMsg.s1ap_e_rab_modify_request_log.text, res.buffer, res.result.encoded); + itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + free(res.buffer); + S1AP_INFO("E_RABModify initiating message\n"); + break; - case S1ap_ProcedureCode_id_UEContextRelease: - ret = s1ap_decode_s1ap_uecontextreleasecommandies( - &message->msg.s1ap_UEContextReleaseCommandIEs, &initiating_p->value); - s1ap_xer_print_s1ap_uecontextreleasecommand(s1ap_xer__print2sp, message_string, message); - message_id = S1AP_UE_CONTEXT_RELEASE_COMMAND_LOG; - message_string_size = strlen(message_string); - message_p = itti_alloc_new_message_sized(TASK_S1AP, - message_id, - message_string_size + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_ue_context_release_command_log.size = message_string_size; - memcpy(&message_p->ittiMsg.s1ap_ue_context_release_command_log.text, message_string, message_string_size); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); - free(message_string); - break; + case S1AP_ProcedureCode_id_E_RABRelease: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); + message_id = S1AP_E_RAB_RELEASE_REQUEST_LOG; + message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, + res.result.encoded + sizeof (IttiMsgText)); + message_p->ittiMsg.s1ap_e_rab_release_request_log.size = res.result.encoded; + memcpy(&message_p->ittiMsg.s1ap_e_rab_release_request_log.text, res.buffer, res.result.encoded); + itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + free(res.buffer); + S1AP_INFO("TODO E_RABRelease initiating message\n"); + break; - case S1ap_ProcedureCode_id_Paging: - ret = s1ap_decode_s1ap_pagingies( - &message->msg.s1ap_PagingIEs, &initiating_p->value); - s1ap_xer_print_s1ap_paging(s1ap_xer__print2sp, message_string, message); - message_id = S1AP_PAGING_LOG; - message_string_size = strlen(message_string); - message_p = itti_alloc_new_message_sized(TASK_S1AP, - message_id, - message_string_size + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_paging_log.size = message_string_size; - memcpy(&message_p->ittiMsg.s1ap_paging_log.text, message_string, message_string_size); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); - S1AP_INFO("Paging initiating message\n"); - free(message_string); - break; + case S1AP_ProcedureCode_id_ErrorIndication: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); + message_id = S1AP_ERROR_INDICATION_LOG; + message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, + res.result.encoded + sizeof (IttiMsgText)); + message_p->ittiMsg.s1ap_error_indication_log.size = res.result.encoded; + memcpy(&message_p->ittiMsg.s1ap_error_indication_log.text, res.buffer, res.result.encoded); + itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + free(res.buffer); + S1AP_INFO("TODO ErrorIndication initiating message\n"); + break; - - case S1ap_ProcedureCode_id_E_RABSetup: - ret = s1ap_decode_s1ap_e_rabsetuprequesties( - &message->msg.s1ap_E_RABSetupRequestIEs, &initiating_p->value); - //s1ap_xer_print_s1ap_e_rabsetuprequest(s1ap_xer__print2sp, message_string, message); - message_id = S1AP_E_RAB_SETUP_REQUEST_LOG; - message_string_size = strlen(message_string); - message_p = itti_alloc_new_message_sized(TASK_S1AP, - message_id, - message_string_size + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_e_rab_setup_request_log.size = message_string_size; - memcpy(&message_p->ittiMsg.s1ap_e_rab_setup_request_log.text, message_string, message_string_size); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); - free(message_string); - S1AP_INFO("E_RABSetup initiating message\n"); - break; - - case S1ap_ProcedureCode_id_E_RABModify: - ret = s1ap_decode_s1ap_e_rabmodifyrequesties( - &message->msg.s1ap_E_RABModifyRequestIEs, &initiating_p->value); - message_id = S1AP_E_RAB_MODIFY_REQUEST_LOG; - message_string_size = strlen(message_string); - message_p = itti_alloc_new_message_sized(TASK_S1AP, - message_id, - message_string_size + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_e_rab_modify_request_log.size = message_string_size; - memcpy(&message_p->ittiMsg.s1ap_e_rab_modify_request_log.text, message_string, message_string_size); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); - free(message_string); - S1AP_INFO("E_RABModify initiating message\n"); - break; - - case S1ap_ProcedureCode_id_E_RABRelease: - ret = s1ap_decode_s1ap_e_rabreleasecommandies( - &message->msg.s1ap_E_RABReleaseCommandIEs, &initiating_p->value); - s1ap_xer_print_s1ap_e_rabreleasecommand(s1ap_xer__print2sp, message_string, message); - message_id = S1AP_E_RAB_RELEASE_REQUEST_LOG; - message_string_size = strlen(message_string); - message_p = itti_alloc_new_message_sized(TASK_S1AP, - message_id, - message_string_size + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_e_rab_release_request_log.size = message_string_size; - memcpy(&message_p->ittiMsg.s1ap_e_rab_release_request_log.text, message_string, message_string_size); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); - free(message_string); - S1AP_INFO("TODO E_RABRelease nitiating message\n"); - break; - - case S1ap_ProcedureCode_id_ErrorIndication: - ret = s1ap_decode_s1ap_errorindicationies( - &message->msg.s1ap_ErrorIndicationIEs, &initiating_p->value); - s1ap_xer_print_s1ap_errorindication(s1ap_xer__print2sp, message_string, message); - message_id = S1AP_E_RAB_ERROR_INDICATION_LOG; - message_string_size = strlen(message_string); - message_p = itti_alloc_new_message_sized(TASK_S1AP, - message_id, - message_string_size + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_e_rab_release_request_log.size = message_string_size; - memcpy(&message_p->ittiMsg.s1ap_error_indication_log.text, message_string, message_string_size); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); - free(message_string); - S1AP_INFO("ErrorIndication initiating message\n"); - break; - - default: - S1AP_ERROR("Unknown procedure ID (%d) for initiating message\n", - (int)initiating_p->procedureCode); - AssertFatal( 0 , "Unknown procedure ID (%d) for initiating message\n", - (int)initiating_p->procedureCode); - return -1; + default: + S1AP_ERROR("Unknown procedure ID (%d) for initiating message\n", + (int)pdu->choice.initiatingMessage.procedureCode); + AssertFatal( 0, "Unknown procedure ID (%d) for initiating message\n", + (int)pdu->choice.initiatingMessage.procedureCode); + return -1; } - - return ret; + return 0; } -static int s1ap_eNB_decode_successful_outcome(s1ap_message *message, - S1ap_SuccessfulOutcome_t *successfullOutcome_p) +static int s1ap_eNB_decode_successful_outcome(S1AP_S1AP_PDU_t *pdu) { - int ret = -1; MessageDef *message_p; - char *message_string = NULL; - size_t message_string_size; MessagesIds message_id; + asn_encode_to_new_buffer_result_t res = { NULL, {0, NULL, NULL} }; + DevAssert(pdu != NULL); - DevAssert(successfullOutcome_p != NULL); + switch(pdu->choice.successfulOutcome.procedureCode) { + case S1AP_ProcedureCode_id_S1Setup: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); + message_id = S1AP_S1_SETUP_LOG; + message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); + message_p->ittiMsg.s1ap_s1_setup_log.size = res.result.encoded; + memcpy(&message_p->ittiMsg.s1ap_s1_setup_log.text, res.buffer, res.result.encoded); + itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + free(res.buffer); + break; - message_string = malloc(sizeof(char) * 10000); - memset((void*)message_string,0,sizeof(char) * 10000); - - s1ap_string_total_size = 0; - - message->procedureCode = successfullOutcome_p->procedureCode; - message->criticality = successfullOutcome_p->criticality; - - switch(successfullOutcome_p->procedureCode) { - case S1ap_ProcedureCode_id_S1Setup: - ret = s1ap_decode_s1ap_s1setupresponseies( - &message->msg.s1ap_S1SetupResponseIEs, &successfullOutcome_p->value); - s1ap_xer_print_s1ap_s1setupresponse(s1ap_xer__print2sp, message_string, message); - message_id = S1AP_S1_SETUP_LOG; - break; - - default: - S1AP_ERROR("Unknown procedure ID (%d) for successfull outcome message\n", - (int)successfullOutcome_p->procedureCode); - return -1; + default: + S1AP_ERROR("Unknown procedure ID (%d) for successfull outcome message\n", + (int)pdu->choice.successfulOutcome.procedureCode); + return -1; } - message_string_size = strlen(message_string); - - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, message_string_size + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_s1_setup_log.size = message_string_size; - memcpy(&message_p->ittiMsg.s1ap_s1_setup_log.text, message_string, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); - - free(message_string); - - return ret; + return 0; } -static int s1ap_eNB_decode_unsuccessful_outcome(s1ap_message *message, - S1ap_UnsuccessfulOutcome_t *unSuccessfullOutcome_p) +static int s1ap_eNB_decode_unsuccessful_outcome(S1AP_S1AP_PDU_t *pdu) { - int ret = -1; - DevAssert(unSuccessfullOutcome_p != NULL); + MessageDef *message_p; + MessagesIds message_id; + asn_encode_to_new_buffer_result_t res = { NULL, {0, NULL, NULL} }; + DevAssert(pdu != NULL); - message->procedureCode = unSuccessfullOutcome_p->procedureCode; - message->criticality = unSuccessfullOutcome_p->criticality; + switch(pdu->choice.unsuccessfulOutcome.procedureCode) { + case S1AP_ProcedureCode_id_S1Setup: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); + message_id = S1AP_S1_SETUP_LOG; + message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); + message_p->ittiMsg.s1ap_s1_setup_log.size = res.result.encoded; + memcpy(&message_p->ittiMsg.s1ap_s1_setup_log.text, res.buffer, res.result.encoded); + itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + free(res.buffer); + break; - switch(unSuccessfullOutcome_p->procedureCode) { - case S1ap_ProcedureCode_id_S1Setup: - return s1ap_decode_s1ap_s1setupfailureies( - &message->msg.s1ap_S1SetupFailureIEs, &unSuccessfullOutcome_p->value); - - default: - S1AP_ERROR("Unknown procedure ID (%d) for unsuccessfull outcome message\n", - (int)unSuccessfullOutcome_p->procedureCode); - break; + default: + S1AP_ERROR("Unknown procedure ID (%d) for unsuccessfull outcome message\n", + (int)pdu->choice.unsuccessfulOutcome.procedureCode); + return -1; } - return ret; + return 0; } -int s1ap_eNB_decode_pdu(s1ap_message *message, const uint8_t * const buffer, +int s1ap_eNB_decode_pdu(S1AP_S1AP_PDU_t *pdu, const uint8_t *const buffer, const uint32_t length) { - S1AP_PDU_t pdu; - S1AP_PDU_t *pdu_p = &pdu; asn_dec_rval_t dec_ret; + DevAssert(pdu != NULL); DevAssert(buffer != NULL); - memset((void *)pdu_p, 0, sizeof(S1AP_PDU_t)); - dec_ret = aper_decode(NULL, - &asn_DEF_S1AP_PDU, - (void **)&pdu_p, + &asn_DEF_S1AP_S1AP_PDU, + (void **)&pdu, buffer, length, 0, @@ -289,24 +223,19 @@ int s1ap_eNB_decode_pdu(s1ap_message *message, const uint8_t * const buffer, return -1; } - message->direction = pdu_p->present; + switch(pdu->present) { + case S1AP_S1AP_PDU_PR_initiatingMessage: + return s1ap_eNB_decode_initiating_message(pdu); - switch(pdu_p->present) { - case S1AP_PDU_PR_initiatingMessage: - return s1ap_eNB_decode_initiating_message(message, - &pdu_p->choice.initiatingMessage); + case S1AP_S1AP_PDU_PR_successfulOutcome: + return s1ap_eNB_decode_successful_outcome(pdu); - case S1AP_PDU_PR_successfulOutcome: - return s1ap_eNB_decode_successful_outcome(message, - &pdu_p->choice.successfulOutcome); + case S1AP_S1AP_PDU_PR_unsuccessfulOutcome: + return s1ap_eNB_decode_unsuccessful_outcome(pdu); - case S1AP_PDU_PR_unsuccessfulOutcome: - return s1ap_eNB_decode_unsuccessful_outcome(message, - &pdu_p->choice.unsuccessfulOutcome); - - default: - S1AP_DEBUG("Unknown presence (%d) or not implemented\n", (int)pdu_p->present); - break; + default: + S1AP_DEBUG("Unknown presence (%d) or not implemented\n", (int)pdu->present); + break; } return -1; diff --git a/openair3/S1AP/s1ap_eNB_decoder.h b/openair3/S1AP/s1ap_eNB_decoder.h index f321f8227f..c8116a3a08 100644 --- a/openair3/S1AP/s1ap_eNB_decoder.h +++ b/openair3/S1AP/s1ap_eNB_decoder.h @@ -20,12 +20,11 @@ */ #include -#include "s1ap_ies_defs.h" #ifndef S1AP_ENB_DECODER_H_ #define S1AP_ENB_DECODER_H_ -int s1ap_eNB_decode_pdu(s1ap_message *message, const uint8_t * const buffer, +int s1ap_eNB_decode_pdu(S1AP_S1AP_PDU_t *pdu, const uint8_t *const buffer, const uint32_t length) __attribute__ ((warn_unused_result)); #endif /* S1AP_ENB_DECODER_H_ */ diff --git a/openair3/S1AP/s1ap_eNB_encoder.c b/openair3/S1AP/s1ap_eNB_encoder.c index 7bd8bc09aa..bc0c69792d 100644 --- a/openair3/S1AP/s1ap_eNB_encoder.c +++ b/openair3/S1AP/s1ap_eNB_encoder.c @@ -32,615 +32,251 @@ #include #include "assertions.h" - #include "conversions.h" - #include "intertask_interface.h" - #include "s1ap_common.h" -#include "s1ap_ies_defs.h" #include "s1ap_eNB_encoder.h" -static inline int s1ap_eNB_encode_initiating(s1ap_message *message, +static inline int s1ap_eNB_encode_initiating(S1AP_S1AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len); -static inline int s1ap_eNB_encode_successfull_outcome(s1ap_message *message, +static inline int s1ap_eNB_encode_successfull_outcome(S1AP_S1AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len); -static inline int s1ap_eNB_encode_unsuccessfull_outcome(s1ap_message *message, +static inline int s1ap_eNB_encode_unsuccessfull_outcome(S1AP_S1AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len); -static inline int s1ap_eNB_encode_s1_setup_request( - S1ap_S1SetupRequestIEs_t *s1SetupRequestIEs, uint8_t **buffer, uint32_t *length); - -static inline int s1ap_eNB_encode_trace_failure(S1ap_TraceFailureIndicationIEs_t - *trace_failure_ies_p, uint8_t **buffer, - uint32_t *length); - -static inline int s1ap_eNB_encode_initial_ue_message(S1ap_InitialUEMessageIEs_t - *initialUEmessageIEs_p, uint8_t **buffer, - uint32_t *length); - -static inline int s1ap_eNB_encode_uplink_nas_transport(S1ap_UplinkNASTransportIEs_t - *uplinkNASTransportIEs, - uint8_t **buffer, - uint32_t *length); - -static inline int s1ap_eNB_encode_ue_capability_info_indication( - S1ap_UECapabilityInfoIndicationIEs_t *ueCapabilityInfoIndicationIEs, - uint8_t **buffer, - uint32_t *length); - -static inline int s1ap_eNB_encode_initial_context_setup_response( - S1ap_InitialContextSetupResponseIEs_t *initialContextSetupResponseIEs, - uint8_t **buffer, - uint32_t *length); - -static inline -int s1ap_eNB_encode_nas_non_delivery( - S1ap_NASNonDeliveryIndication_IEs_t *nasNonDeliveryIndicationIEs, - uint8_t **buffer, - uint32_t *length); - -static inline -int s1ap_eNB_encode_ue_context_release_complete( - S1ap_UEContextReleaseCompleteIEs_t *s1ap_UEContextReleaseCompleteIEs, - uint8_t **buffer, - uint32_t *length); - -static inline -int s1ap_eNB_encode_ue_context_release_request( - S1ap_UEContextReleaseRequestIEs_t *s1ap_UEContextReleaseRequestIEs, - uint8_t **buffer, - uint32_t *length); - -static inline -int s1ap_eNB_encode_e_rab_setup_response(S1ap_E_RABSetupResponseIEs_t *E_RABSetupResponseIEs, - uint8_t **buffer, - uint32_t *length); - -static inline -int s1ap_eNB_encode_e_rab_modify_response(S1ap_E_RABModifyResponseIEs_t *E_RABModifyResponseIEs, - uint8_t **buffer, - uint32_t *length); - -static inline -int s1ap_eNB_encode_e_rab_release_response(S1ap_E_RABReleaseResponseIEs_t *s1ap_E_RABReleaseResponseIEs, - uint8_t **buffer, - uint32_t *length); - -int s1ap_eNB_encode_pdu(s1ap_message *message, uint8_t **buffer, uint32_t *len) +int s1ap_eNB_encode_pdu(S1AP_S1AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len) { - DevAssert(message != NULL); + int ret = -1; + DevAssert(pdu != NULL); DevAssert(buffer != NULL); DevAssert(len != NULL); - switch(message->direction) { - case S1AP_PDU_PR_initiatingMessage: - return s1ap_eNB_encode_initiating(message, buffer, len); + switch(pdu->present) { + case S1AP_S1AP_PDU_PR_initiatingMessage: + ret = s1ap_eNB_encode_initiating(pdu, buffer, len); + break; - case S1AP_PDU_PR_successfulOutcome: - return s1ap_eNB_encode_successfull_outcome(message, buffer, len); + case S1AP_S1AP_PDU_PR_successfulOutcome: + ret = s1ap_eNB_encode_successfull_outcome(pdu, buffer, len); + break; - case S1AP_PDU_PR_unsuccessfulOutcome: - return s1ap_eNB_encode_unsuccessfull_outcome(message, buffer, len); + case S1AP_S1AP_PDU_PR_unsuccessfulOutcome: + ret = s1ap_eNB_encode_unsuccessfull_outcome(pdu, buffer, len); + break; - default: - S1AP_DEBUG("Unknown message outcome (%d) or not implemented", - (int)message->direction); - break; + default: + S1AP_DEBUG("Unknown message outcome (%d) or not implemented", + (int)pdu->present); + return -1; } - return -1; + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1AP_S1AP_PDU, pdu); + return ret; } static inline -int s1ap_eNB_encode_initiating(s1ap_message *s1ap_message_p, +int s1ap_eNB_encode_initiating(S1AP_S1AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len) { - int ret = -1; MessageDef *message_p; - char *message_string = NULL; - size_t message_string_size; MessagesIds message_id; + asn_encode_to_new_buffer_result_t res = { NULL, {0, NULL, NULL} }; + DevAssert(pdu != NULL); - DevAssert(s1ap_message_p != NULL); + switch(pdu->choice.initiatingMessage.procedureCode) { + case S1AP_ProcedureCode_id_S1Setup: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); + message_id = S1AP_S1_SETUP_LOG; + message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); + message_p->ittiMsg.s1ap_s1_setup_log.size = res.result.encoded; + memcpy(&message_p->ittiMsg.s1ap_s1_setup_log.text, res.buffer, res.result.encoded); + itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + free(res.buffer); + break; - message_string = calloc(10000, sizeof(char)); + case S1AP_ProcedureCode_id_uplinkNASTransport: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); + message_id = S1AP_UPLINK_NAS_LOG; + message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); + message_p->ittiMsg.s1ap_uplink_nas_log.size = res.result.encoded; + memcpy(&message_p->ittiMsg.s1ap_uplink_nas_log.text, res.buffer, res.result.encoded); + itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + free(res.buffer); + break; - s1ap_string_total_size = 0; + case S1AP_ProcedureCode_id_UECapabilityInfoIndication: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); + message_id = S1AP_UE_CAPABILITY_IND_LOG; + message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); + message_p->ittiMsg.s1ap_ue_capability_ind_log.size = res.result.encoded; + memcpy(&message_p->ittiMsg.s1ap_ue_capability_ind_log.text, res.buffer, res.result.encoded); + itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + free(res.buffer); + break; - switch(s1ap_message_p->procedureCode) { - case S1ap_ProcedureCode_id_S1Setup: - ret = s1ap_eNB_encode_s1_setup_request( - &s1ap_message_p->msg.s1ap_S1SetupRequestIEs, buffer, len); - s1ap_xer_print_s1ap_s1setuprequest(s1ap_xer__print2sp, message_string, s1ap_message_p); - message_id = S1AP_S1_SETUP_LOG; - break; + case S1AP_ProcedureCode_id_initialUEMessage: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); + message_id = S1AP_INITIAL_UE_MESSAGE_LOG; + message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); + message_p->ittiMsg.s1ap_initial_ue_message_log.size = res.result.encoded; + memcpy(&message_p->ittiMsg.s1ap_initial_ue_message_log.text, res.buffer, res.result.encoded); + itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + free(res.buffer); + break; - case S1ap_ProcedureCode_id_uplinkNASTransport: - ret = s1ap_eNB_encode_uplink_nas_transport( - &s1ap_message_p->msg.s1ap_UplinkNASTransportIEs, buffer, len); - s1ap_xer_print_s1ap_uplinknastransport(s1ap_xer__print2sp, message_string, s1ap_message_p); - message_id = S1AP_UPLINK_NAS_LOG; - break; + case S1AP_ProcedureCode_id_NASNonDeliveryIndication: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); + message_id = S1AP_NAS_NON_DELIVERY_IND_LOG; + message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); + message_p->ittiMsg.s1ap_nas_non_delivery_ind_log.size = res.result.encoded; + memcpy(&message_p->ittiMsg.s1ap_nas_non_delivery_ind_log.text, res.buffer, res.result.encoded); + itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + free(res.buffer); + break; - case S1ap_ProcedureCode_id_UECapabilityInfoIndication: - ret = s1ap_eNB_encode_ue_capability_info_indication( - &s1ap_message_p->msg.s1ap_UECapabilityInfoIndicationIEs, buffer, len); - s1ap_xer_print_s1ap_uecapabilityinfoindication(s1ap_xer__print2sp, message_string, s1ap_message_p); - message_id = S1AP_UE_CAPABILITY_IND_LOG; - break; + case S1AP_ProcedureCode_id_UEContextReleaseRequest: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); + message_id = S1AP_UE_CONTEXT_RELEASE_REQ_LOG; + message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); + message_p->ittiMsg.s1ap_ue_context_release_req_log.size = res.result.encoded; + memcpy(&message_p->ittiMsg.s1ap_ue_context_release_req_log.text, res.buffer, res.result.encoded); + itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + free(res.buffer); + break; - case S1ap_ProcedureCode_id_initialUEMessage: - ret = s1ap_eNB_encode_initial_ue_message( - &s1ap_message_p->msg.s1ap_InitialUEMessageIEs, buffer, len); - s1ap_xer_print_s1ap_initialuemessage(s1ap_xer__print2sp, message_string, s1ap_message_p); - message_id = S1AP_INITIAL_UE_MESSAGE_LOG; - break; - - case S1ap_ProcedureCode_id_NASNonDeliveryIndication: - ret = s1ap_eNB_encode_nas_non_delivery( - &s1ap_message_p->msg.s1ap_NASNonDeliveryIndication_IEs, buffer, len); - s1ap_xer_print_s1ap_nasnondeliveryindication_(s1ap_xer__print2sp, - message_string, s1ap_message_p); - message_id = S1AP_NAS_NON_DELIVERY_IND_LOG; - break; - - case S1ap_ProcedureCode_id_UEContextReleaseRequest: - ret = s1ap_eNB_encode_ue_context_release_request( - &s1ap_message_p->msg.s1ap_UEContextReleaseRequestIEs, buffer, len); - s1ap_xer_print_s1ap_uecontextreleaserequest(s1ap_xer__print2sp, - message_string, s1ap_message_p); - message_id = S1AP_UE_CONTEXT_RELEASE_REQ_LOG; - break; - - - default: - S1AP_DEBUG("Unknown procedure ID (%d) for initiating message\n", - (int)s1ap_message_p->procedureCode); - return ret; - break; + default: + S1AP_DEBUG("Unknown procedure ID (%d) for initiating message\n", + (int)pdu->choice.initiatingMessage.procedureCode); + return -1; } - message_string_size = strlen(message_string); + if (asn1_xer_print) { + xer_fprint(stdout, &asn_DEF_S1AP_S1AP_PDU, (void *)pdu); + } - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, message_string_size + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_s1_setup_log.size = message_string_size; - memcpy(&message_p->ittiMsg.s1ap_s1_setup_log.text, message_string, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); - - free(message_string); - - return ret; + memset(&res, 0, sizeof(res)); + res = asn_encode_to_new_buffer(NULL, ATS_ALIGNED_CANONICAL_PER, &asn_DEF_S1AP_S1AP_PDU, pdu); + *buffer = res.buffer; + *len = res.result.encoded; + return 0; } static inline -int s1ap_eNB_encode_successfull_outcome(s1ap_message *s1ap_message_p, +int s1ap_eNB_encode_successfull_outcome(S1AP_S1AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len) { - int ret = -1; MessageDef *message_p; - char *message_string = NULL; - size_t message_string_size; MessagesIds message_id; + asn_encode_to_new_buffer_result_t res = { NULL, {0, NULL, NULL} }; + DevAssert(pdu != NULL); - DevAssert(s1ap_message_p != NULL); + switch(pdu->choice.successfulOutcome.procedureCode) { + case S1AP_ProcedureCode_id_InitialContextSetup: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); + message_id = S1AP_INITIAL_CONTEXT_SETUP_LOG; + message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); + message_p->ittiMsg.s1ap_initial_context_setup_log.size = res.result.encoded; + memcpy(&message_p->ittiMsg.s1ap_initial_context_setup_log.text, res.buffer, res.result.encoded); + itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + free(res.buffer); + break; - message_string = calloc(10000, sizeof(char)); + case S1AP_ProcedureCode_id_UEContextRelease: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); + message_id = S1AP_UE_CONTEXT_RELEASE_COMPLETE_LOG; + message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); + message_p->ittiMsg.s1ap_ue_context_release_complete_log.size = res.result.encoded; + memcpy(&message_p->ittiMsg.s1ap_ue_context_release_complete_log.text, res.buffer, res.result.encoded); + itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + free(res.buffer); + break; - s1ap_string_total_size = 0; - message_string_size = strlen(message_string); + case S1AP_ProcedureCode_id_E_RABSetup: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); + message_id = S1AP_E_RAB_SETUP_RESPONSE_LOG; + message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); + message_p->ittiMsg.s1ap_e_rab_setup_response_log.size = res.result.encoded; + memcpy(&message_p->ittiMsg.s1ap_e_rab_setup_response_log.text, res.buffer, res.result.encoded); + itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + free(res.buffer); + S1AP_INFO("E_RABSetup successful message\n"); + break; + case S1AP_ProcedureCode_id_E_RABModify: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); + message_id = S1AP_E_RAB_MODIFY_RESPONSE_LOG; + message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); + message_p->ittiMsg.s1ap_e_rab_modify_response_log.size = res.result.encoded; + memcpy(&message_p->ittiMsg.s1ap_e_rab_modify_response_log.text, res.buffer, res.result.encoded); + itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + free(res.buffer); + S1AP_INFO("E_RABModify successful message\n"); + break; - switch(s1ap_message_p->procedureCode) { - case S1ap_ProcedureCode_id_InitialContextSetup: - ret = s1ap_eNB_encode_initial_context_setup_response( - &s1ap_message_p->msg.s1ap_InitialContextSetupResponseIEs, buffer, len); + case S1AP_ProcedureCode_id_E_RABRelease: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); + message_id = S1AP_E_RAB_RELEASE_RESPONSE_LOG; + message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); + message_p->ittiMsg.s1ap_e_rab_release_response_log.size = res.result.encoded; + memcpy(&message_p->ittiMsg.s1ap_e_rab_release_response_log.text, res.buffer, res.result.encoded); + itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + free(res.buffer); + S1AP_INFO("E_RAB Release successful message\n"); + break; - s1ap_xer_print_s1ap_initialcontextsetupresponse(s1ap_xer__print2sp, message_string, s1ap_message_p); - message_id = S1AP_INITIAL_CONTEXT_SETUP_LOG; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, message_string_size + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_initial_context_setup_log.size = message_string_size; - memcpy(&message_p->ittiMsg.s1ap_initial_context_setup_log.text, message_string, message_string_size); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); - free(message_string); - break; - - case S1ap_ProcedureCode_id_UEContextRelease: - ret = s1ap_eNB_encode_ue_context_release_complete( - &s1ap_message_p->msg.s1ap_UEContextReleaseCompleteIEs, buffer, len); - s1ap_xer_print_s1ap_uecontextreleasecomplete(s1ap_xer__print2sp, message_string, s1ap_message_p); - message_id = S1AP_UE_CONTEXT_RELEASE_COMPLETE_LOG; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, message_string_size + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_ue_context_release_complete_log.size = message_string_size; - memcpy(&message_p->ittiMsg.s1ap_ue_context_release_complete_log.text, message_string, message_string_size); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); - free(message_string); - break; - - case S1ap_ProcedureCode_id_E_RABSetup: - - ret = s1ap_eNB_encode_e_rab_setup_response ( - &s1ap_message_p->msg.s1ap_E_RABSetupResponseIEs, buffer, len); - //s1ap_xer_print_s1ap_e_rabsetupresponse (s1ap_xer__print2sp, message_string, s1ap_message_p); - message_id = S1AP_E_RAB_SETUP_RESPONSE_LOG ; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, message_string_size + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_e_rab_setup_response_log.size = message_string_size; - memcpy(&message_p->ittiMsg.s1ap_e_rab_setup_response_log.text, message_string, message_string_size); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); - free(message_string); - S1AP_INFO("E_RABSetup successful message\n"); - break; - - case S1ap_ProcedureCode_id_E_RABModify: - ret = s1ap_eNB_encode_e_rab_modify_response ( - &s1ap_message_p->msg.s1ap_E_RABModifyResponseIEs, buffer, len); - message_id = S1AP_E_RAB_MODIFY_RESPONSE_LOG ; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, message_string_size + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_e_rab_modify_response_log.size = message_string_size; - memcpy(&message_p->ittiMsg.s1ap_e_rab_modify_response_log.text, message_string, message_string_size); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); - free(message_string); - S1AP_INFO("E_RABModify successful message\n"); - break; - - case S1ap_ProcedureCode_id_E_RABRelease: - ret = s1ap_eNB_encode_e_rab_release_response ( - &s1ap_message_p->msg.s1ap_E_RABReleaseResponseIEs, buffer, len); - s1ap_xer_print_s1ap_e_rabreleaseresponse(s1ap_xer__print2sp, message_string, s1ap_message_p); - message_id = S1AP_E_RAB_RELEASE_RESPONSE_LOG ; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, message_string_size + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_e_rab_release_response_log.size = message_string_size; - memcpy(&message_p->ittiMsg.s1ap_e_rab_release_response_log.text, message_string, message_string_size); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); - free(message_string); - S1AP_INFO("E_RAB Release successful message\n"); - break; - - default: - S1AP_WARN("Unknown procedure ID (%d) for successfull outcome message\n", - (int)s1ap_message_p->procedureCode); - return ret; - break; + default: + S1AP_WARN("Unknown procedure ID (%d) for successfull outcome message\n", + (int)pdu->choice.successfulOutcome.procedureCode); + return -1; } + if (asn1_xer_print) { + xer_fprint(stdout, &asn_DEF_S1AP_S1AP_PDU, (void *)pdu); + } - return ret; + memset(&res, 0, sizeof(res)); + res = asn_encode_to_new_buffer(NULL, ATS_ALIGNED_CANONICAL_PER, &asn_DEF_S1AP_S1AP_PDU, pdu); + *buffer = res.buffer; + *len = res.result.encoded; + return 0; } static inline -int s1ap_eNB_encode_unsuccessfull_outcome(s1ap_message *s1ap_message_p, +int s1ap_eNB_encode_unsuccessfull_outcome(S1AP_S1AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len) { - int ret = -1; MessageDef *message_p; - char *message_string = NULL; - size_t message_string_size; MessagesIds message_id; + asn_encode_to_new_buffer_result_t res = { NULL, {0, NULL, NULL} }; + DevAssert(pdu != NULL); - DevAssert(s1ap_message_p != NULL); + switch(pdu->choice.unsuccessfulOutcome.procedureCode) { + case S1AP_ProcedureCode_id_InitialContextSetup: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); + message_id = S1AP_INITIAL_CONTEXT_SETUP_LOG; + message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); + message_p->ittiMsg.s1ap_initial_context_setup_log.size = res.result.encoded; + memcpy(&message_p->ittiMsg.s1ap_initial_context_setup_log.text, res.buffer, res.result.encoded); + itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + free(res.buffer); + break; - message_string = calloc(10000, sizeof(char)); - - s1ap_string_total_size = 0; - - switch(s1ap_message_p->procedureCode) { - case S1ap_ProcedureCode_id_InitialContextSetup: - // ret = s1ap_encode_s1ap_initialcontextsetupfailureies( - // &s1ap_message_p->ittiMsg.s1ap_InitialContextSetupFailureIEs, buffer, len); - s1ap_xer_print_s1ap_initialcontextsetupfailure(s1ap_xer__print2sp, message_string, s1ap_message_p); - message_id = S1AP_INITIAL_CONTEXT_SETUP_LOG; - break; - - default: - S1AP_DEBUG("Unknown procedure ID (%d) for unsuccessfull outcome message\n", - (int)s1ap_message_p->procedureCode); - return ret; - break; + default: + S1AP_DEBUG("Unknown procedure ID (%d) for unsuccessfull outcome message\n", + (int)pdu->choice.unsuccessfulOutcome.procedureCode); + return -1; } - message_string_size = strlen(message_string); - - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, message_string_size + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_initial_context_setup_log.size = message_string_size; - memcpy(&message_p->ittiMsg.s1ap_initial_context_setup_log.text, message_string, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); - - free(message_string); - - return ret; -} - -static inline -int s1ap_eNB_encode_ue_capability_info_indication( - S1ap_UECapabilityInfoIndicationIEs_t *ueCapabilityInfoIndicationIEs, - uint8_t **buffer, - uint32_t *length) -{ - S1ap_UECapabilityInfoIndication_t ueCapabilityInfoIndication; - S1ap_UECapabilityInfoIndication_t *ueCapabilityInfoIndication_p = - &ueCapabilityInfoIndication; - - memset((void *)ueCapabilityInfoIndication_p, 0, sizeof(ueCapabilityInfoIndication)); - - if (s1ap_encode_s1ap_uecapabilityinfoindicationies( - ueCapabilityInfoIndication_p, ueCapabilityInfoIndicationIEs) < 0) { - return -1; + if (asn1_xer_print) { + xer_fprint(stdout, &asn_DEF_S1AP_S1AP_PDU, (void *)pdu); } - return s1ap_generate_initiating_message(buffer, - length, - S1ap_ProcedureCode_id_UECapabilityInfoIndication, - S1ap_Criticality_ignore, - &asn_DEF_S1ap_UECapabilityInfoIndication, - ueCapabilityInfoIndication_p); -} - -static inline -int s1ap_eNB_encode_uplink_nas_transport( - S1ap_UplinkNASTransportIEs_t *uplinkNASTransportIEs, - uint8_t **buffer, - uint32_t *length) -{ - S1ap_UplinkNASTransport_t uplinkNASTransport; - S1ap_UplinkNASTransport_t *uplinkNASTransport_p = &uplinkNASTransport; - - memset((void *)uplinkNASTransport_p, 0, sizeof(uplinkNASTransport)); - - if (s1ap_encode_s1ap_uplinknastransporties( - uplinkNASTransport_p, uplinkNASTransportIEs) < 0) { - return -1; - } - - return s1ap_generate_initiating_message(buffer, - length, - S1ap_ProcedureCode_id_uplinkNASTransport, - S1ap_Criticality_ignore, - &asn_DEF_S1ap_UplinkNASTransport, - uplinkNASTransport_p); -} - -static inline -int s1ap_eNB_encode_nas_non_delivery( - S1ap_NASNonDeliveryIndication_IEs_t *nasNonDeliveryIndicationIEs, - uint8_t **buffer, - uint32_t *length) -{ - S1ap_NASNonDeliveryIndication_t nasNonDeliveryIndication; - S1ap_NASNonDeliveryIndication_t *nasNonDeliveryIndication_p = &nasNonDeliveryIndication; - - memset((void *)nasNonDeliveryIndication_p, 0, sizeof(nasNonDeliveryIndication)); - - if (s1ap_encode_s1ap_nasnondeliveryindication_ies( - nasNonDeliveryIndication_p, nasNonDeliveryIndicationIEs) < 0) { - return -1; - } - - return s1ap_generate_initiating_message(buffer, - length, - S1ap_ProcedureCode_id_NASNonDeliveryIndication, - S1ap_Criticality_ignore, - &asn_DEF_S1ap_NASNonDeliveryIndication, - nasNonDeliveryIndication_p); -} - -static inline -int s1ap_eNB_encode_s1_setup_request( - S1ap_S1SetupRequestIEs_t *s1SetupRequestIEs, - uint8_t **buffer, - uint32_t *length) -{ - S1ap_S1SetupRequest_t s1SetupRequest; - S1ap_S1SetupRequest_t *s1SetupRequest_p = &s1SetupRequest; - - memset((void *)s1SetupRequest_p, 0, sizeof(s1SetupRequest)); - - if (s1ap_encode_s1ap_s1setuprequesties(s1SetupRequest_p, s1SetupRequestIEs) < 0) { - return -1; - } - - return s1ap_generate_initiating_message(buffer, - length, - S1ap_ProcedureCode_id_S1Setup, - S1ap_Criticality_reject, - &asn_DEF_S1ap_S1SetupRequest, - s1SetupRequest_p); -} - -static inline -int s1ap_eNB_encode_initial_ue_message( - S1ap_InitialUEMessageIEs_t *initialUEmessageIEs_p, - uint8_t **buffer, - uint32_t *length) -{ - S1ap_InitialUEMessage_t initialUEMessage; - S1ap_InitialUEMessage_t *initialUEMessage_p = &initialUEMessage; - - memset((void *)initialUEMessage_p, 0, sizeof(initialUEMessage)); - - if (s1ap_encode_s1ap_initialuemessageies( - initialUEMessage_p, initialUEmessageIEs_p) < 0) { - return -1; - } - - return s1ap_generate_initiating_message(buffer, - length, - S1ap_ProcedureCode_id_initialUEMessage, - S1ap_Criticality_ignore, - &asn_DEF_S1ap_InitialUEMessage, - initialUEMessage_p); -} - -static inline -int s1ap_eNB_encode_trace_failure( - S1ap_TraceFailureIndicationIEs_t *trace_failure_ies_p, - uint8_t **buffer, - uint32_t *length) -{ - S1ap_TraceFailureIndication_t trace_failure; - S1ap_TraceFailureIndication_t *trace_failure_p = &trace_failure; - - memset((void *)trace_failure_p, 0, sizeof(trace_failure)); - - if (s1ap_encode_s1ap_tracefailureindicationies( - trace_failure_p, trace_failure_ies_p) < 0) { - return -1; - } - - return s1ap_generate_initiating_message(buffer, - length, - S1ap_ProcedureCode_id_TraceFailureIndication, - S1ap_Criticality_reject, - &asn_DEF_S1ap_TraceFailureIndication, - trace_failure_p); -} - -static inline -int s1ap_eNB_encode_initial_context_setup_response( - S1ap_InitialContextSetupResponseIEs_t *initialContextSetupResponseIEs, - uint8_t **buffer, - uint32_t *length) -{ - S1ap_InitialContextSetupResponse_t initial_context_setup_response; - S1ap_InitialContextSetupResponse_t *initial_context_setup_response_p = - &initial_context_setup_response; - - memset((void *)initial_context_setup_response_p, 0, - sizeof(initial_context_setup_response)); - - if (s1ap_encode_s1ap_initialcontextsetupresponseies( - initial_context_setup_response_p, initialContextSetupResponseIEs) < 0) { - return -1; - } - - return s1ap_generate_successfull_outcome(buffer, - length, - S1ap_ProcedureCode_id_InitialContextSetup, - S1ap_Criticality_reject, - &asn_DEF_S1ap_InitialContextSetupResponse, - initial_context_setup_response_p); -} - -static inline -int s1ap_eNB_encode_ue_context_release_complete( - S1ap_UEContextReleaseCompleteIEs_t *s1ap_UEContextReleaseCompleteIEs, - uint8_t **buffer, - uint32_t *length) -{ - S1ap_UEContextReleaseComplete_t ue_context_release_complete; - S1ap_UEContextReleaseComplete_t *ue_context_release_complete_p = - &ue_context_release_complete; - - memset((void *)ue_context_release_complete_p, 0, - sizeof(ue_context_release_complete)); - - if (s1ap_encode_s1ap_uecontextreleasecompleteies( - ue_context_release_complete_p, s1ap_UEContextReleaseCompleteIEs) < 0) { - return -1; - } - - return s1ap_generate_successfull_outcome(buffer, - length, - S1ap_ProcedureCode_id_UEContextRelease, - S1ap_Criticality_reject, - &asn_DEF_S1ap_UEContextReleaseComplete, - ue_context_release_complete_p); -} - -static inline -int s1ap_eNB_encode_ue_context_release_request( - S1ap_UEContextReleaseRequestIEs_t *s1ap_UEContextReleaseRequestIEs, - uint8_t **buffer, - uint32_t *length) -{ - S1ap_UEContextReleaseRequest_t ue_context_release_request; - S1ap_UEContextReleaseRequest_t *ue_context_release_request_p = - &ue_context_release_request; - - memset((void *)ue_context_release_request_p, 0, - sizeof(ue_context_release_request)); - - if (s1ap_encode_s1ap_uecontextreleaserequesties( - ue_context_release_request_p, s1ap_UEContextReleaseRequestIEs) < 0) { - return -1; - } - - return s1ap_generate_initiating_message(buffer, - length, - S1ap_ProcedureCode_id_UEContextReleaseRequest, - S1ap_Criticality_reject, - &asn_DEF_S1ap_UEContextReleaseRequest, - ue_context_release_request_p); -} - -static inline -int s1ap_eNB_encode_e_rab_setup_response(S1ap_E_RABSetupResponseIEs_t *s1ap_E_RABSetupResponseIEs, - uint8_t **buffer, - uint32_t *length) -{ - S1ap_E_RABSetupResponse_t e_rab_setup_response; - S1ap_E_RABSetupResponse_t *e_rab_setup_response_p = &e_rab_setup_response; - - memset((void *)e_rab_setup_response_p, 0, - sizeof(e_rab_setup_response)); - - if (s1ap_encode_s1ap_e_rabsetupresponseies (e_rab_setup_response_p, s1ap_E_RABSetupResponseIEs) < 0) { - return -1; - } - - return s1ap_generate_successfull_outcome(buffer, - length, - S1ap_ProcedureCode_id_E_RABSetup, - S1ap_Criticality_reject, - &asn_DEF_S1ap_E_RABSetupResponse, - e_rab_setup_response_p); -} - -static inline -int s1ap_eNB_encode_e_rab_modify_response(S1ap_E_RABModifyResponseIEs_t *s1ap_E_RABModifyResponseIEs, - uint8_t **buffer, - uint32_t *length) -{ - S1ap_E_RABModifyResponse_t e_rab_modify_response; - S1ap_E_RABModifyResponse_t *e_rab_modify_response_p = &e_rab_modify_response; - - memset((void *)e_rab_modify_response_p, 0, - sizeof(e_rab_modify_response)); - - if (s1ap_encode_s1ap_e_rabmodifyresponseies (e_rab_modify_response_p, s1ap_E_RABModifyResponseIEs) < 0) { - return -1; - } - - return s1ap_generate_successfull_outcome(buffer, - length, - S1ap_ProcedureCode_id_E_RABModify, - S1ap_Criticality_reject, - &asn_DEF_S1ap_E_RABModifyResponse, - e_rab_modify_response_p); -} -static inline -int s1ap_eNB_encode_e_rab_release_response(S1ap_E_RABReleaseResponseIEs_t *s1ap_E_RABReleaseResponseIEs, - uint8_t **buffer, - uint32_t *length) -{ - S1ap_E_RABReleaseResponse_t e_rab_release_response; - S1ap_E_RABReleaseResponse_t *e_rab_release_response_p = &e_rab_release_response; - - memset((void *)e_rab_release_response_p, 0, - sizeof(e_rab_release_response)); - - if (s1ap_encode_s1ap_e_rabreleaseresponseies (e_rab_release_response_p, s1ap_E_RABReleaseResponseIEs) < 0) { - return -1; - } - - return s1ap_generate_successfull_outcome(buffer, - length, - S1ap_ProcedureCode_id_E_RABRelease, - S1ap_Criticality_reject, - &asn_DEF_S1ap_E_RABReleaseResponse, - e_rab_release_response_p); + memset(&res, 0, sizeof(res)); + res = asn_encode_to_new_buffer(NULL, ATS_ALIGNED_CANONICAL_PER, &asn_DEF_S1AP_S1AP_PDU, pdu); + *buffer = res.buffer; + *len = res.result.encoded; + return 0; } diff --git a/openair3/S1AP/s1ap_eNB_encoder.h b/openair3/S1AP/s1ap_eNB_encoder.h index 5b135a3f76..9ff5f032e7 100644 --- a/openair3/S1AP/s1ap_eNB_encoder.h +++ b/openair3/S1AP/s1ap_eNB_encoder.h @@ -22,7 +22,7 @@ #ifndef S1AP_ENB_ENCODER_H_ #define S1AP_ENB_ENCODER_H_ -int s1ap_eNB_encode_pdu(s1ap_message *message, uint8_t **buffer, uint32_t *len) +int s1ap_eNB_encode_pdu(S1AP_S1AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len) __attribute__ ((warn_unused_result)); #endif /* S1AP_ENB_ENCODER_H_ */ diff --git a/openair3/S1AP/s1ap_eNB_handlers.c b/openair3/S1AP/s1ap_eNB_handlers.c index ab5f93a16d..9b150fe751 100644 --- a/openair3/S1AP/s1ap_eNB_handlers.c +++ b/openair3/S1AP/s1ap_eNB_handlers.c @@ -34,7 +34,6 @@ #include "asn1_conversions.h" #include "s1ap_common.h" -#include "s1ap_ies_defs.h" // #include "s1ap_eNB.h" #include "s1ap_eNB_defs.h" #include "s1ap_eNB_handlers.h" @@ -54,47 +53,46 @@ static int s1ap_eNB_handle_s1_setup_response(uint32_t assoc_id, uint32_t stream, - struct s1ap_message_s *message_p); + S1AP_S1AP_PDU_t *pdu); static int s1ap_eNB_handle_s1_setup_failure(uint32_t assoc_id, uint32_t stream, - struct s1ap_message_s *message_p); + S1AP_S1AP_PDU_t *pdu); static int s1ap_eNB_handle_error_indication(uint32_t assoc_id, - uint32_t stream, - struct s1ap_message_s *message_p); + uint32_t stream, + S1AP_S1AP_PDU_t *pdu); static int s1ap_eNB_handle_initial_context_request(uint32_t assoc_id, - uint32_t stream, - struct s1ap_message_s *message_p); + uint32_t stream, + S1AP_S1AP_PDU_t *pdu); static int s1ap_eNB_handle_ue_context_release_command(uint32_t assoc_id, - uint32_t stream, - struct s1ap_message_s *s1ap_message_p); - + uint32_t stream, + S1AP_S1AP_PDU_t *pdu); static int s1ap_eNB_handle_e_rab_setup_request(uint32_t assoc_id, - uint32_t stream, - struct s1ap_message_s *s1ap_message_p); + uint32_t stream, + S1AP_S1AP_PDU_t *pdu); static int s1ap_eNB_handle_paging(uint32_t assoc_id, - uint32_t stream, - struct s1ap_message_s *message_p); + uint32_t stream, + S1AP_S1AP_PDU_t *pdu); static int s1ap_eNB_handle_e_rab_modify_request(uint32_t assoc_id, - uint32_t stream, - struct s1ap_message_s *s1ap_message_p); + uint32_t stream, + S1AP_S1AP_PDU_t *pdu); static int s1ap_eNB_handle_e_rab_release_command(uint32_t assoc_id, - uint32_t stream, - struct s1ap_message_s *s1ap_message_p); + uint32_t stream, + S1AP_S1AP_PDU_t *pdu); /* Handlers matrix. Only eNB related procedure present here */ s1ap_message_decoded_callback messages_callback[][3] = { @@ -147,16 +145,17 @@ s1ap_message_decoded_callback messages_callback[][3] = { { 0, 0, 0 }, /* UplinkUEAssociatedLPPaTransport */ { 0, 0, 0 }, /* DownlinkNonUEAssociatedLPPaTransport */ { 0, 0, 0 }, /* UplinkNonUEAssociatedLPPaTransport */ -#endif +#endif /* #if (S1AP_VERSION >= MAKE_VERSION(9, 0, 0)) */ }; - -static const char *s1ap_direction2String[] = { +char *s1ap_direction2String(int s1ap_dir) { +static char *s1ap_direction_String[] = { "", /* Nothing */ "Originating message", /* originating message */ "Successfull outcome", /* successfull outcome */ "UnSuccessfull outcome", /* successfull outcome */ }; - +return(s1ap_direction_String[s1ap_dir]); +} void s1ap_handle_s1_setup_message(s1ap_eNB_mme_data_t *mme_desc_p, int sctp_shutdown) { if (sctp_shutdown) { @@ -202,54 +201,60 @@ void s1ap_handle_s1_setup_message(s1ap_eNB_mme_data_t *mme_desc_p, int sctp_shut } int s1ap_eNB_handle_message(uint32_t assoc_id, int32_t stream, - const uint8_t * const data, const uint32_t data_length) + const uint8_t *const data, const uint32_t data_length) { - struct s1ap_message_s message; + S1AP_S1AP_PDU_t pdu; + int ret; DevAssert(data != NULL); - memset(&message, 0, sizeof(struct s1ap_message_s)); + memset(&pdu, 0, sizeof(pdu)); - if (s1ap_eNB_decode_pdu(&message, data, data_length) < 0) { + if (s1ap_eNB_decode_pdu(&pdu, data, data_length) < 0) { S1AP_ERROR("Failed to decode PDU\n"); return -1; } /* Checking procedure Code and direction of message */ - if (message.procedureCode > sizeof(messages_callback) / (3 * sizeof( + if (pdu.choice.initiatingMessage.procedureCode > sizeof(messages_callback) / (3 * sizeof( s1ap_message_decoded_callback)) - || (message.direction > S1AP_PDU_PR_unsuccessfulOutcome)) { + || (pdu.present > S1AP_S1AP_PDU_PR_unsuccessfulOutcome)) { S1AP_ERROR("[SCTP %d] Either procedureCode %ld or direction %d exceed expected\n", - assoc_id, message.procedureCode, message.direction); + assoc_id, pdu.choice.initiatingMessage.procedureCode, pdu.present); + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1AP_S1AP_PDU, &pdu); return -1; } /* No handler present. * This can mean not implemented or no procedure for eNB (wrong direction). */ - if (messages_callback[message.procedureCode][message.direction-1] == NULL) { + if (messages_callback[pdu.choice.initiatingMessage.procedureCode][pdu.present - 1] == NULL) { S1AP_ERROR("[SCTP %d] No handler for procedureCode %ld in %s\n", - assoc_id, message.procedureCode, - s1ap_direction2String[message.direction]); + assoc_id, pdu.choice.initiatingMessage.procedureCode, + s1ap_direction2String(pdu.present - 1)); + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1AP_S1AP_PDU, &pdu); return -1; } /* Calling the right handler */ - return (*messages_callback[message.procedureCode][message.direction-1]) - (assoc_id, stream, &message); + ret = (*messages_callback[pdu.choice.initiatingMessage.procedureCode][pdu.present - 1]) + (assoc_id, stream, &pdu); + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1AP_S1AP_PDU, &pdu); + return ret; } static int s1ap_eNB_handle_s1_setup_failure(uint32_t assoc_id, uint32_t stream, - struct s1ap_message_s *message_p) + S1AP_S1AP_PDU_t *pdu) { - S1ap_S1SetupFailureIEs_t *s1_setup_failure_p; + S1AP_S1SetupFailure_t *container; + S1AP_S1SetupFailureIEs_t *ie; s1ap_eNB_mme_data_t *mme_desc_p; - DevAssert(message_p != NULL); + DevAssert(pdu != NULL); - s1_setup_failure_p = &message_p->msg.s1ap_S1SetupFailureIEs; + container = &pdu->choice.unsuccessfulOutcome.value.choice.S1SetupFailure; /* S1 Setup Failure == Non UE-related procedure -> stream 0 */ if (stream != 0) { @@ -263,8 +268,11 @@ int s1ap_eNB_handle_s1_setup_failure(uint32_t assoc_id, return -1; } - if ((s1_setup_failure_p->cause.present == S1ap_Cause_PR_misc) && - (s1_setup_failure_p->cause.choice.misc == S1ap_CauseMisc_unspecified)) { + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_S1SetupFailureIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_Cause, true); + + if ((ie->value.choice.Cause.present == S1AP_Cause_PR_misc) && + (ie->value.choice.Cause.choice.misc == S1AP_CauseMisc_unspecified)) { S1AP_WARN("Received s1 setup failure for MME... MME is not ready\n"); } else { S1AP_ERROR("Received s1 setup failure for MME... please check your parameters\n"); @@ -279,15 +287,16 @@ int s1ap_eNB_handle_s1_setup_failure(uint32_t assoc_id, static int s1ap_eNB_handle_s1_setup_response(uint32_t assoc_id, uint32_t stream, - struct s1ap_message_s *message_p) + S1AP_S1AP_PDU_t *pdu) { - S1ap_S1SetupResponseIEs_t *s1SetupResponse_p; + S1AP_S1SetupResponse_t *container; + S1AP_S1SetupResponseIEs_t *ie; s1ap_eNB_mme_data_t *mme_desc_p; int i; - DevAssert(message_p != NULL); + DevAssert(pdu != NULL); - s1SetupResponse_p = &message_p->msg.s1ap_S1SetupResponseIEs; + container = &pdu->choice.successfulOutcome.value.choice.S1SetupResponse; /* S1 Setup Response == Non UE-related procedure -> stream 0 */ if (stream != 0) { @@ -302,32 +311,33 @@ int s1ap_eNB_handle_s1_setup_response(uint32_t assoc_id, return -1; } + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_S1SetupResponseIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_ServedGUMMEIs, true); /* The list of served gummei can contain at most 8 elements. * LTE related gummei is the first element in the list, i.e with an id of 0. */ - S1AP_DEBUG("servedGUMMEIs.list.count %d\n",s1SetupResponse_p->servedGUMMEIs.list.count); - DevAssert(s1SetupResponse_p->servedGUMMEIs.list.count > 0); - DevAssert(s1SetupResponse_p->servedGUMMEIs.list.count <= 8); + S1AP_DEBUG("servedGUMMEIs.list.count %d\n", ie->value.choice.ServedGUMMEIs.list.count); + DevAssert(ie->value.choice.ServedGUMMEIs.list.count > 0); + DevAssert(ie->value.choice.ServedGUMMEIs.list.count <= S1AP_maxnoofRATs); - - for (i = 0; i < s1SetupResponse_p->servedGUMMEIs.list.count; i++) { - struct S1ap_ServedGUMMEIsItem *gummei_item_p; - struct served_gummei_s *new_gummei_p; + for (i = 0; i < ie->value.choice.ServedGUMMEIs.list.count; i++) { + S1AP_ServedGUMMEIsItem_t *gummei_item_p; + struct served_gummei_s *new_gummei_p; int j; - gummei_item_p = (struct S1ap_ServedGUMMEIsItem *) - s1SetupResponse_p->servedGUMMEIs.list.array[i]; + gummei_item_p = ie->value.choice.ServedGUMMEIs.list.array[i]; new_gummei_p = calloc(1, sizeof(struct served_gummei_s)); STAILQ_INIT(&new_gummei_p->served_plmns); STAILQ_INIT(&new_gummei_p->served_group_ids); STAILQ_INIT(&new_gummei_p->mme_codes); - - S1AP_DEBUG("servedPLMNs.list.count %d\n",gummei_item_p->servedPLMNs.list.count); + + S1AP_DEBUG("servedPLMNs.list.count %d\n", gummei_item_p->servedPLMNs.list.count); + for (j = 0; j < gummei_item_p->servedPLMNs.list.count; j++) { - S1ap_PLMNidentity_t *plmn_identity_p; + S1AP_PLMNidentity_t *plmn_identity_p; struct plmn_identity_s *new_plmn_identity_p; - + plmn_identity_p = gummei_item_p->servedPLMNs.list.array[j]; new_plmn_identity_p = calloc(1, sizeof(struct plmn_identity_s)); TBCD_TO_MCC_MNC(plmn_identity_p, new_plmn_identity_p->mcc, @@ -337,7 +347,7 @@ int s1ap_eNB_handle_s1_setup_response(uint32_t assoc_id, } for (j = 0; j < gummei_item_p->servedGroupIDs.list.count; j++) { - S1ap_MME_Group_ID_t *mme_group_id_p; + S1AP_MME_Group_ID_t *mme_group_id_p; struct served_group_id_s *new_group_id_p; mme_group_id_p = gummei_item_p->servedGroupIDs.list.array[j]; @@ -348,7 +358,7 @@ int s1ap_eNB_handle_s1_setup_response(uint32_t assoc_id, } for (j = 0; j < gummei_item_p->servedMMECs.list.count; j++) { - S1ap_MME_Code_t *mme_code_p; + S1AP_MME_Code_t *mme_code_p; struct mme_code_s *new_mme_code_p; mme_code_p = gummei_item_p->servedMMECs.list.array[j]; @@ -362,19 +372,20 @@ int s1ap_eNB_handle_s1_setup_response(uint32_t assoc_id, STAILQ_INSERT_TAIL(&mme_desc_p->served_gummei, new_gummei_p, next); } - /* Free contents of the list */ - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1ap_ServedGUMMEIs, - (void *)&s1SetupResponse_p->servedGUMMEIs); /* Set the capacity of this MME */ - mme_desc_p->relative_mme_capacity = s1SetupResponse_p->relativeMMECapacity; + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_S1SetupResponseIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_RelativeMMECapacity, true); + mme_desc_p->relative_mme_capacity = ie->value.choice.RelativeMMECapacity; /* Optionaly set the mme name */ - if (s1SetupResponse_p->presenceMask & S1AP_S1SETUPRESPONSEIES_MMENAME_PRESENT) { - mme_desc_p->mme_name = calloc(s1SetupResponse_p->mmEname.size + 1, sizeof(char)); - memcpy(mme_desc_p->mme_name, s1SetupResponse_p->mmEname.buf, - s1SetupResponse_p->mmEname.size); + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_S1SetupResponseIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_MMEname, false); + if (ie) { + mme_desc_p->mme_name = calloc(ie->value.choice.MMEname.size + 1, sizeof(char)); + memcpy(mme_desc_p->mme_name, ie->value.choice.MMEname.buf, + ie->value.choice.MMEname.size); /* Convert the mme name to a printable string */ - mme_desc_p->mme_name[s1SetupResponse_p->mmEname.size] = '\0'; + mme_desc_p->mme_name[ie->value.choice.MMEname.size] = '\0'; } /* The association is now ready as eNB and MME know parameters of each other. @@ -384,75 +395,22 @@ int s1ap_eNB_handle_s1_setup_response(uint32_t assoc_id, mme_desc_p->s1ap_eNB_instance->s1ap_mme_associated_nb ++; s1ap_handle_s1_setup_message(mme_desc_p, 0); -#if 0 - /* We call back our self - * -> generate a dummy initial UE message - */ - { - s1ap_nas_first_req_t s1ap_nas_first_req; - - memset(&s1ap_nas_first_req, 0, sizeof(s1ap_nas_first_req_t)); - - s1ap_nas_first_req.rnti = 0xC03A; - s1ap_nas_first_req.establishment_cause = RRC_CAUSE_MO_DATA; - s1ap_nas_first_req.ue_identity.presenceMask = UE_IDENTITIES_gummei; - - s1ap_nas_first_req.ue_identity.gummei.mcc = 208; - s1ap_nas_first_req.ue_identity.gummei.mnc = 34; - s1ap_nas_first_req.ue_identity.gummei.mme_code = 0; - s1ap_nas_first_req.ue_identity.gummei.mme_group_id = 0; - - /* NAS Attach request with IMSI */ - static uint8_t nas_attach_req_imsi[] = { - 0x07, 0x41, - /* EPS Mobile identity = IMSI */ - 0x71, 0x08, 0x29, 0x80, 0x43, 0x21, 0x43, 0x65, 0x87, - 0xF9, - /* End of EPS Mobile Identity */ - 0x02, 0xE0, 0xE0, 0x00, 0x20, 0x02, 0x03, - 0xD0, 0x11, 0x27, 0x1A, 0x80, 0x80, 0x21, 0x10, 0x01, 0x00, 0x00, - 0x10, 0x81, 0x06, 0x00, 0x00, 0x00, 0x00, 0x83, 0x06, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x0A, 0x00, 0x52, 0x12, 0xF2, - 0x01, 0x27, 0x11, - }; - - /* NAS Attach request with GUTI */ - static uint8_t nas_attach_req_guti[] = { - 0x07, 0x41, - /* EPS Mobile identity = IMSI */ - 0x71, 0x0B, 0xF6, 0x12, 0xF2, 0x01, 0x80, 0x00, 0x01, 0xE0, 0x00, - 0xDA, 0x1F, - /* End of EPS Mobile Identity */ - 0x02, 0xE0, 0xE0, 0x00, 0x20, 0x02, 0x03, - 0xD0, 0x11, 0x27, 0x1A, 0x80, 0x80, 0x21, 0x10, 0x01, 0x00, 0x00, - 0x10, 0x81, 0x06, 0x00, 0x00, 0x00, 0x00, 0x83, 0x06, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x0A, 0x00, 0x52, 0x12, 0xF2, - 0x01, 0x27, 0x11, - }; - - s1ap_nas_first_req.nas_pdu.buffer = nas_attach_req_guti; - s1ap_nas_first_req.nas_pdu.length = sizeof(nas_attach_req_guti); - - s1ap_eNB_handle_nas_first_req(mme_desc_p->s1ap_eNB_instance->instance, - &s1ap_nas_first_req); - } -#endif - return 0; } static -int s1ap_eNB_handle_error_indication(uint32_t assoc_id, - uint32_t stream, - struct s1ap_message_s *message_p) +int s1ap_eNB_handle_error_indication(uint32_t assoc_id, + uint32_t stream, + S1AP_S1AP_PDU_t *pdu) { - S1ap_ErrorIndicationIEs_t *s1_error_indication_p; + S1AP_ErrorIndication_t *container; + S1AP_ErrorIndicationIEs_t *ie; s1ap_eNB_mme_data_t *mme_desc_p; - DevAssert(message_p != NULL); + DevAssert(pdu != NULL); - s1_error_indication_p = &message_p->msg.s1ap_ErrorIndicationIEs; + container = &pdu->choice.initiatingMessage.value.choice.ErrorIndication; /* S1 Setup Failure == Non UE-related procedure -> stream 0 */ if (stream != 0) { @@ -465,232 +423,257 @@ int s1ap_eNB_handle_error_indication(uint32_t assoc_id, "MME context\n", assoc_id); return -1; } - if ( s1_error_indication_p->presenceMask & S1AP_ERRORINDICATIONIES_MME_UE_S1AP_ID_PRESENT) { - S1AP_WARN("Received S1 Error indication MME UE S1AP ID 0x%lx\n", s1_error_indication_p->mme_ue_s1ap_id); - } - if ( s1_error_indication_p->presenceMask & S1AP_ERRORINDICATIONIES_ENB_UE_S1AP_ID_PRESENT) { - S1AP_WARN("Received S1 Error indication eNB UE S1AP ID 0x%lx\n", s1_error_indication_p->eNB_UE_S1AP_ID); + + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_ErrorIndicationIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID, false); + + /* optional */ + if (!ie) { + S1AP_WARN("Received S1 Error indication MME UE S1AP ID 0x%lx\n", ie->value.choice.MME_UE_S1AP_ID); } - if ( s1_error_indication_p->presenceMask & S1AP_ERRORINDICATIONIES_CAUSE_PRESENT) { - switch(s1_error_indication_p->cause.present) { - case S1ap_Cause_PR_NOTHING: - S1AP_WARN("Received S1 Error indication cause NOTHING\n"); - break; - case S1ap_Cause_PR_radioNetwork: - switch (s1_error_indication_p->cause.choice.radioNetwork) { - case S1ap_CauseRadioNetwork_unspecified: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_unspecified\n"); + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_ErrorIndicationIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID, false); + + /* optional */ + if (!ie) { + S1AP_WARN("Received S1 Error indication eNB UE S1AP ID 0x%lx\n", ie->value.choice.ENB_UE_S1AP_ID); + } + + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_ErrorIndicationIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_Cause, false); + + /* optional */ + if (ie) { + switch(ie->value.choice.Cause.present) { + case S1AP_Cause_PR_NOTHING: + S1AP_WARN("Received S1 Error indication cause NOTHING\n"); + break; + + case S1AP_Cause_PR_radioNetwork: + switch (ie->value.choice.Cause.choice.radioNetwork) { + case S1AP_CauseRadioNetwork_unspecified: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_unspecified\n"); break; - case S1ap_CauseRadioNetwork_tx2relocoverall_expiry: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_tx2relocoverall_expiry\n"); + case S1AP_CauseRadioNetwork_tx2relocoverall_expiry: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_tx2relocoverall_expiry\n"); break; - case S1ap_CauseRadioNetwork_successful_handover: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_successful_handover\n"); + case S1AP_CauseRadioNetwork_successful_handover: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_successful_handover\n"); break; - case S1ap_CauseRadioNetwork_release_due_to_eutran_generated_reason: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_release_due_to_eutran_generated_reason\n"); + case S1AP_CauseRadioNetwork_release_due_to_eutran_generated_reason: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_release_due_to_eutran_generated_reason\n"); break; - case S1ap_CauseRadioNetwork_handover_cancelled: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_handover_cancelled\n"); + case S1AP_CauseRadioNetwork_handover_cancelled: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_handover_cancelled\n"); break; - case S1ap_CauseRadioNetwork_partial_handover: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_partial_handover\n"); + case S1AP_CauseRadioNetwork_partial_handover: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_partial_handover\n"); break; - case S1ap_CauseRadioNetwork_ho_failure_in_target_EPC_eNB_or_target_system: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_ho_failure_in_target_EPC_eNB_or_target_system\n"); + case S1AP_CauseRadioNetwork_ho_failure_in_target_EPC_eNB_or_target_system: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_ho_failure_in_target_EPC_eNB_or_target_system\n"); break; - case S1ap_CauseRadioNetwork_ho_target_not_allowed: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_ho_target_not_allowed\n"); + case S1AP_CauseRadioNetwork_ho_target_not_allowed: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_ho_target_not_allowed\n"); break; - case S1ap_CauseRadioNetwork_tS1relocoverall_expiry: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_tS1relocoverall_expiry\n"); + case S1AP_CauseRadioNetwork_tS1relocoverall_expiry: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_tS1relocoverall_expiry\n"); break; - case S1ap_CauseRadioNetwork_tS1relocprep_expiry: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_tS1relocprep_expiry\n"); + case S1AP_CauseRadioNetwork_tS1relocprep_expiry: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_tS1relocprep_expiry\n"); break; - case S1ap_CauseRadioNetwork_cell_not_available: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_cell_not_available\n"); + case S1AP_CauseRadioNetwork_cell_not_available: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_cell_not_available\n"); break; - case S1ap_CauseRadioNetwork_unknown_targetID: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_unknown_targetID\n"); + case S1AP_CauseRadioNetwork_unknown_targetID: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_unknown_targetID\n"); break; - case S1ap_CauseRadioNetwork_no_radio_resources_available_in_target_cell: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_no_radio_resources_available_in_target_cell\n"); + case S1AP_CauseRadioNetwork_no_radio_resources_available_in_target_cell: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_no_radio_resources_available_in_target_cell\n"); break; - case S1ap_CauseRadioNetwork_unknown_mme_ue_s1ap_id: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_unknown_mme_ue_s1ap_id\n"); + case S1AP_CauseRadioNetwork_unknown_mme_ue_s1ap_id: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_unknown_mme_ue_s1ap_id\n"); break; - case S1ap_CauseRadioNetwork_unknown_enb_ue_s1ap_id: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_unknown_enb_ue_s1ap_id\n"); + case S1AP_CauseRadioNetwork_unknown_enb_ue_s1ap_id: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_unknown_enb_ue_s1ap_id\n"); break; - case S1ap_CauseRadioNetwork_unknown_pair_ue_s1ap_id: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_unknown_pair_ue_s1ap_id\n"); + case S1AP_CauseRadioNetwork_unknown_pair_ue_s1ap_id: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_unknown_pair_ue_s1ap_id\n"); break; - case S1ap_CauseRadioNetwork_handover_desirable_for_radio_reason: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_handover_desirable_for_radio_reason\n"); + case S1AP_CauseRadioNetwork_handover_desirable_for_radio_reason: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_handover_desirable_for_radio_reason\n"); break; - case S1ap_CauseRadioNetwork_time_critical_handover: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_time_critical_handover\n"); + case S1AP_CauseRadioNetwork_time_critical_handover: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_time_critical_handover\n"); break; - case S1ap_CauseRadioNetwork_resource_optimisation_handover: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_resource_optimisation_handover\n"); + case S1AP_CauseRadioNetwork_resource_optimisation_handover: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_resource_optimisation_handover\n"); break; - case S1ap_CauseRadioNetwork_reduce_load_in_serving_cell: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_reduce_load_in_serving_cell\n"); + case S1AP_CauseRadioNetwork_reduce_load_in_serving_cell: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_reduce_load_in_serving_cell\n"); break; - case S1ap_CauseRadioNetwork_user_inactivity: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_user_inactivity\n"); + case S1AP_CauseRadioNetwork_user_inactivity: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_user_inactivity\n"); break; - case S1ap_CauseRadioNetwork_radio_connection_with_ue_lost: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_radio_connection_with_ue_lost\n"); + case S1AP_CauseRadioNetwork_radio_connection_with_ue_lost: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_radio_connection_with_ue_lost\n"); break; - case S1ap_CauseRadioNetwork_load_balancing_tau_required: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_load_balancing_tau_required\n"); + case S1AP_CauseRadioNetwork_load_balancing_tau_required: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_load_balancing_tau_required\n"); break; - case S1ap_CauseRadioNetwork_cs_fallback_triggered: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_cs_fallback_triggered\n"); + case S1AP_CauseRadioNetwork_cs_fallback_triggered: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_cs_fallback_triggered\n"); break; - case S1ap_CauseRadioNetwork_ue_not_available_for_ps_service: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_ue_not_available_for_ps_service\n"); + case S1AP_CauseRadioNetwork_ue_not_available_for_ps_service: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_ue_not_available_for_ps_service\n"); break; - case S1ap_CauseRadioNetwork_radio_resources_not_available: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_radio_resources_not_available\n"); + case S1AP_CauseRadioNetwork_radio_resources_not_available: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_radio_resources_not_available\n"); break; - case S1ap_CauseRadioNetwork_failure_in_radio_interface_procedure: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_failure_in_radio_interface_procedure\n"); + case S1AP_CauseRadioNetwork_failure_in_radio_interface_procedure: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_failure_in_radio_interface_procedure\n"); break; - case S1ap_CauseRadioNetwork_invals1ap_id_qos_combination: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_invals1ap_id_qos_combination\n"); + case S1AP_CauseRadioNetwork_invalid_qos_combination: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_invals1ap_id_qos_combination\n"); break; - case S1ap_CauseRadioNetwork_interrat_redirection: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_interrat_redirection\n"); + case S1AP_CauseRadioNetwork_interrat_redirection: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_interrat_redirection\n"); break; - case S1ap_CauseRadioNetwork_interaction_with_other_procedure: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_interaction_with_other_procedure\n"); + case S1AP_CauseRadioNetwork_interaction_with_other_procedure: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_interaction_with_other_procedure\n"); break; - case S1ap_CauseRadioNetwork_unknown_E_RAB_ID: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_unknown_E_RAB_ID\n"); + case S1AP_CauseRadioNetwork_unknown_E_RAB_ID: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_unknown_E_RAB_ID\n"); break; - case S1ap_CauseRadioNetwork_multiple_E_RAB_ID_instances: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_multiple_E_RAB_ID_instances\n"); + case S1AP_CauseRadioNetwork_multiple_E_RAB_ID_instances: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_multiple_E_RAB_ID_instances\n"); break; - case S1ap_CauseRadioNetwork_encryption_and_or_integrity_protection_algorithms_not_supported: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_encryption_and_or_integrity_protection_algorithms_not_supported\n"); + case S1AP_CauseRadioNetwork_encryption_and_or_integrity_protection_algorithms_not_supported: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_encryption_and_or_integrity_protection_algorithms_not_supported\n"); break; - case S1ap_CauseRadioNetwork_s1_intra_system_handover_triggered: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_s1_intra_system_handover_triggered\n"); + case S1AP_CauseRadioNetwork_s1_intra_system_handover_triggered: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_s1_intra_system_handover_triggered\n"); break; - case S1ap_CauseRadioNetwork_s1_inter_system_handover_triggered: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_s1_inter_system_handover_triggered\n"); + case S1AP_CauseRadioNetwork_s1_inter_system_handover_triggered: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_s1_inter_system_handover_triggered\n"); break; - case S1ap_CauseRadioNetwork_x2_handover_triggered: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_x2_handover_triggered\n"); + case S1AP_CauseRadioNetwork_x2_handover_triggered: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_x2_handover_triggered\n"); break; - case S1ap_CauseRadioNetwork_redirection_towards_1xRTT: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_redirection_towards_1xRTT\n"); + case S1AP_CauseRadioNetwork_redirection_towards_1xRTT: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_redirection_towards_1xRTT\n"); break; - case S1ap_CauseRadioNetwork_not_supported_QCI_value: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_not_supported_QCI_value\n"); + case S1AP_CauseRadioNetwork_not_supported_QCI_value: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_not_supported_QCI_value\n"); break; - case S1ap_CauseRadioNetwork_invals1ap_id_CSG_Id: - S1AP_WARN("Received S1 Error indication S1ap_CauseRadioNetwork_invals1ap_id_CSG_Id\n"); +#if (S1AP_VERSION >= MAKE_VERSION(9, 0, 0)) + case S1AP_CauseRadioNetwork_invalid_CSG_Id: + S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_invals1ap_id_CSG_Id\n"); break; - default: +#endif /* #if (S1AP_VERSION >= MAKE_VERSION(9, 0, 0)) */ + + default: S1AP_WARN("Received S1 Error indication cause radio network case not handled\n"); - } - break; + } + break; - case S1ap_Cause_PR_transport: - switch (s1_error_indication_p->cause.choice.transport) { - case S1ap_CauseTransport_transport_resource_unavailable: - S1AP_WARN("Received S1 Error indication S1ap_CauseTransport_transport_resource_unavailable\n"); + case S1AP_Cause_PR_transport: + switch (ie->value.choice.Cause.choice.transport) { + case S1AP_CauseTransport_transport_resource_unavailable: + S1AP_WARN("Received S1 Error indication S1AP_CauseTransport_transport_resource_unavailable\n"); break; - case S1ap_CauseTransport_unspecified: - S1AP_WARN("Received S1 Error indication S1ap_CauseTransport_unspecified\n"); + case S1AP_CauseTransport_unspecified: + S1AP_WARN("Received S1 Error indication S1AP_CauseTransport_unspecified\n"); break; - default: + default: S1AP_WARN("Received S1 Error indication cause transport case not handled\n"); - } - break; + } + break; - case S1ap_Cause_PR_nas: - switch (s1_error_indication_p->cause.choice.nas) { - case S1ap_CauseNas_normal_release: - S1AP_WARN("Received S1 Error indication S1ap_CauseNas_normal_release\n"); + case S1AP_Cause_PR_nas: + switch (ie->value.choice.Cause.choice.nas) { + case S1AP_CauseNas_normal_release: + S1AP_WARN("Received S1 Error indication S1AP_CauseNas_normal_release\n"); break; - case S1ap_CauseNas_authentication_failure: - S1AP_WARN("Received S1 Error indication S1ap_CauseNas_authentication_failure\n"); + case S1AP_CauseNas_authentication_failure: + S1AP_WARN("Received S1 Error indication S1AP_CauseNas_authentication_failure\n"); break; - case S1ap_CauseNas_detach: - S1AP_WARN("Received S1 Error indication S1ap_CauseNas_detach\n"); + case S1AP_CauseNas_detach: + S1AP_WARN("Received S1 Error indication S1AP_CauseNas_detach\n"); break; - case S1ap_CauseNas_unspecified: - S1AP_WARN("Received S1 Error indication S1ap_CauseNas_unspecified\n"); + case S1AP_CauseNas_unspecified: + S1AP_WARN("Received S1 Error indication S1AP_CauseNas_unspecified\n"); break; - case S1ap_CauseNas_csg_subscription_expiry: - S1AP_WARN("Received S1 Error indication S1ap_CauseNas_csg_subscription_expiry\n"); +#if (S1AP_VERSION >= MAKE_VERSION(9, 0, 0)) + case S1AP_CauseNas_csg_subscription_expiry: + S1AP_WARN("Received S1 Error indication S1AP_CauseNas_csg_subscription_expiry\n"); break; - default: +#endif /* #if (S1AP_VERSION >= MAKE_VERSION(9, 0, 0)) */ + default: S1AP_WARN("Received S1 Error indication cause nas case not handled\n"); - } - break; + } - case S1ap_Cause_PR_protocol: - switch (s1_error_indication_p->cause.choice.protocol) { - case S1ap_CauseProtocol_transfer_syntax_error: - S1AP_WARN("Received S1 Error indication S1ap_CauseProtocol_transfer_syntax_error\n"); + break; + + case S1AP_Cause_PR_protocol: + switch (ie->value.choice.Cause.choice.protocol) { + case S1AP_CauseProtocol_transfer_syntax_error: + S1AP_WARN("Received S1 Error indication S1AP_CauseProtocol_transfer_syntax_error\n"); break; - case S1ap_CauseProtocol_abstract_syntax_error_reject: - S1AP_WARN("Received S1 Error indication S1ap_CauseProtocol_abstract_syntax_error_reject\n"); + case S1AP_CauseProtocol_abstract_syntax_error_reject: + S1AP_WARN("Received S1 Error indication S1AP_CauseProtocol_abstract_syntax_error_reject\n"); break; - case S1ap_CauseProtocol_abstract_syntax_error_ignore_and_notify: - S1AP_WARN("Received S1 Error indication S1ap_CauseProtocol_abstract_syntax_error_ignore_and_notify\n"); + case S1AP_CauseProtocol_abstract_syntax_error_ignore_and_notify: + S1AP_WARN("Received S1 Error indication S1AP_CauseProtocol_abstract_syntax_error_ignore_and_notify\n"); break; - case S1ap_CauseProtocol_message_not_compatible_with_receiver_state: - S1AP_WARN("Received S1 Error indication S1ap_CauseProtocol_message_not_compatible_with_receiver_state\n"); + case S1AP_CauseProtocol_message_not_compatible_with_receiver_state: + S1AP_WARN("Received S1 Error indication S1AP_CauseProtocol_message_not_compatible_with_receiver_state\n"); break; - case S1ap_CauseProtocol_semantic_error: - S1AP_WARN("Received S1 Error indication S1ap_CauseProtocol_semantic_error\n"); + case S1AP_CauseProtocol_semantic_error: + S1AP_WARN("Received S1 Error indication S1AP_CauseProtocol_semantic_error\n"); break; - case S1ap_CauseProtocol_abstract_syntax_error_falsely_constructed_message: - S1AP_WARN("Received S1 Error indication S1ap_CauseProtocol_abstract_syntax_error_falsely_constructed_message\n"); + case S1AP_CauseProtocol_abstract_syntax_error_falsely_constructed_message: + S1AP_WARN("Received S1 Error indication S1AP_CauseProtocol_abstract_syntax_error_falsely_constructed_message\n"); break; - case S1ap_CauseProtocol_unspecified: - S1AP_WARN("Received S1 Error indication S1ap_CauseProtocol_unspecified\n"); + case S1AP_CauseProtocol_unspecified: + S1AP_WARN("Received S1 Error indication S1AP_CauseProtocol_unspecified\n"); break; - default: + default: S1AP_WARN("Received S1 Error indication cause protocol case not handled\n"); - } - break; + } + break; - case S1ap_Cause_PR_misc: - switch (s1_error_indication_p->cause.choice.protocol) { - case S1ap_CauseMisc_control_processing_overload: - S1AP_WARN("Received S1 Error indication S1ap_CauseMisc_control_processing_overload\n"); + case S1AP_Cause_PR_misc: + switch (ie->value.choice.Cause.choice.protocol) { + case S1AP_CauseMisc_control_processing_overload: + S1AP_WARN("Received S1 Error indication S1AP_CauseMisc_control_processing_overload\n"); + break; + case S1AP_CauseMisc_not_enough_user_plane_processing_resources: + S1AP_WARN("Received S1 Error indication S1AP_CauseMisc_not_enough_user_plane_processing_resources\n"); + break; + case S1AP_CauseMisc_hardware_failure: + S1AP_WARN("Received S1 Error indication S1AP_CauseMisc_hardware_failure\n"); + break; + case S1AP_CauseMisc_om_intervention: + S1AP_WARN("Received S1 Error indication S1AP_CauseMisc_om_intervention\n"); + break; + case S1AP_CauseMisc_unspecified: + S1AP_WARN("Received S1 Error indication S1AP_CauseMisc_unspecified\n"); + break; + case S1AP_CauseMisc_unknown_PLMN: + S1AP_WARN("Received S1 Error indication S1AP_CauseMisc_unknown_PLMN\n"); break; - case S1ap_CauseMisc_not_enough_user_plane_processing_resources: - S1AP_WARN("Received S1 Error indication S1ap_CauseMisc_not_enough_user_plane_processing_resources\n"); - break; - case S1ap_CauseMisc_hardware_failure: - S1AP_WARN("Received S1 Error indication S1ap_CauseMisc_hardware_failure\n"); - break; - case S1ap_CauseMisc_om_intervention: - S1AP_WARN("Received S1 Error indication S1ap_CauseMisc_om_intervention\n"); - break; - case S1ap_CauseMisc_unspecified: - S1AP_WARN("Received S1 Error indication S1ap_CauseMisc_unspecified\n"); - break; - case S1ap_CauseMisc_unknown_PLMN: - S1AP_WARN("Received S1 Error indication S1ap_CauseMisc_unknown_PLMN\n"); - break; default: S1AP_WARN("Received S1 Error indication cause misc case not handled\n"); } - break; + break; } } - if ( s1_error_indication_p->presenceMask & S1AP_ERRORINDICATIONIES_CRITICALITYDIAGNOSTICS_PRESENT) { + + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_ErrorIndicationIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_CriticalityDiagnostics, false); + + if (ie) { // TODO continue } // TODO continue @@ -700,20 +683,22 @@ int s1ap_eNB_handle_error_indication(uint32_t assoc_id, static -int s1ap_eNB_handle_initial_context_request(uint32_t assoc_id, +int s1ap_eNB_handle_initial_context_request(uint32_t assoc_id, uint32_t stream, - struct s1ap_message_s *s1ap_message_p) + S1AP_S1AP_PDU_t *pdu) { int i; - s1ap_eNB_mme_data_t *mme_desc_p = NULL; s1ap_eNB_ue_context_t *ue_desc_p = NULL; MessageDef *message_p = NULL; + S1AP_InitialContextSetupRequest_t *container; + S1AP_InitialContextSetupRequestIEs_t *ie; + S1AP_ENB_UE_S1AP_ID_t enb_ue_s1ap_id; + S1AP_MME_UE_S1AP_ID_t mme_ue_s1ap_id; - S1ap_InitialContextSetupRequestIEs_t *initialContextSetupRequest_p; - DevAssert(s1ap_message_p != NULL); + DevAssert(pdu != NULL); - initialContextSetupRequest_p = &s1ap_message_p->msg.s1ap_InitialContextSetupRequestIEs; + container = &pdu->choice.initiatingMessage.value.choice.InitialContextSetupRequest; if ((mme_desc_p = s1ap_eNB_get_MME(NULL, assoc_id, 0)) == NULL) { S1AP_ERROR("[SCTP %d] Received initial context setup request for non " @@ -721,11 +706,21 @@ int s1ap_eNB_handle_initial_context_request(uint32_t assoc_id, return -1; } + /* id-MME-UE-S1AP-ID */ + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_InitialContextSetupRequestIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID, true); + mme_ue_s1ap_id = ie->value.choice.MME_UE_S1AP_ID; + + /* id-eNB-UE-S1AP-ID */ + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_InitialContextSetupRequestIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID, true); + enb_ue_s1ap_id = ie->value.choice.ENB_UE_S1AP_ID; + if ((ue_desc_p = s1ap_eNB_get_ue_context(mme_desc_p->s1ap_eNB_instance, - initialContextSetupRequest_p->eNB_UE_S1AP_ID)) == NULL) { + enb_ue_s1ap_id)) == NULL) { S1AP_ERROR("[SCTP %d] Received initial context setup request for non " "existing UE context 0x%06lx\n", assoc_id, - initialContextSetupRequest_p->eNB_UE_S1AP_ID); + enb_ue_s1ap_id); return -1; } @@ -738,7 +733,7 @@ int s1ap_eNB_handle_initial_context_request(uint32_t assoc_id, ue_desc_p->rx_stream = stream; - ue_desc_p->mme_ue_s1ap_id = initialContextSetupRequest_p->mme_ue_s1ap_id; + ue_desc_p->mme_ue_s1ap_id = mme_ue_s1ap_id; message_p = itti_alloc_new_message(TASK_S1AP, S1AP_INITIAL_CONTEXT_SETUP_REQ); @@ -746,26 +741,25 @@ int s1ap_eNB_handle_initial_context_request(uint32_t assoc_id, ue_desc_p->ue_initial_id = 0; S1AP_INITIAL_CONTEXT_SETUP_REQ(message_p).eNB_ue_s1ap_id = ue_desc_p->eNB_ue_s1ap_id; + + /* id-uEaggregateMaximumBitrate */ + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_InitialContextSetupRequestIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_uEaggregateMaximumBitrate, true); + asn_INTEGER2ulong(&(ie->value.choice.UEAggregateMaximumBitrate.uEaggregateMaximumBitRateUL), + &(S1AP_INITIAL_CONTEXT_SETUP_REQ(message_p).ue_ambr.br_ul)); + asn_INTEGER2ulong(&(ie->value.choice.UEAggregateMaximumBitrate.uEaggregateMaximumBitRateDL), + &(S1AP_INITIAL_CONTEXT_SETUP_REQ(message_p).ue_ambr.br_dl)); + + /* id-E-RABToBeSetupListCtxtSUReq */ + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_InitialContextSetupRequestIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_E_RABToBeSetupListCtxtSUReq, true); + S1AP_INITIAL_CONTEXT_SETUP_REQ(message_p).nb_of_e_rabs = - initialContextSetupRequest_p->e_RABToBeSetupListCtxtSUReq.s1ap_E_RABToBeSetupItemCtxtSUReq.count; - - S1AP_INITIAL_CONTEXT_SETUP_REQ(message_p).ue_ambr.br_ul = 64;// TO DO(bitrate_t)(initialContextSetupRequest_p->uEaggregateMaximumBitrate.uEaggregateMaximumBitRateUL); - S1AP_INITIAL_CONTEXT_SETUP_REQ(message_p).ue_ambr.br_dl = 1024;//(bitrate_t)(initialContextSetupRequest_p->uEaggregateMaximumBitrate.uEaggregateMaximumBitRateDL); - - S1AP_INITIAL_CONTEXT_SETUP_REQ(message_p).security_capabilities.encryption_algorithms = - BIT_STRING_to_uint16(&initialContextSetupRequest_p->ueSecurityCapabilities.encryptionAlgorithms); - S1AP_INITIAL_CONTEXT_SETUP_REQ(message_p).security_capabilities.integrity_algorithms = - BIT_STRING_to_uint16(&initialContextSetupRequest_p->ueSecurityCapabilities.integrityProtectionAlgorithms); - - /* Copy the security key */ - memcpy(&S1AP_INITIAL_CONTEXT_SETUP_REQ(message_p).security_key, - initialContextSetupRequest_p->securityKey.buf, initialContextSetupRequest_p->securityKey.size); - - for (i = 0; i < initialContextSetupRequest_p->e_RABToBeSetupListCtxtSUReq.s1ap_E_RABToBeSetupItemCtxtSUReq.count; i++) { - S1ap_E_RABToBeSetupItemCtxtSUReq_t *item_p; - - item_p = (S1ap_E_RABToBeSetupItemCtxtSUReq_t *)initialContextSetupRequest_p->e_RABToBeSetupListCtxtSUReq.s1ap_E_RABToBeSetupItemCtxtSUReq.array[i]; + ie->value.choice.E_RABToBeSetupListCtxtSUReq.list.count; + for (i = 0; i < ie->value.choice.E_RABToBeSetupListCtxtSUReq.list.count; i++) { + S1AP_E_RABToBeSetupItemCtxtSUReq_t *item_p; + item_p = &(((S1AP_E_RABToBeSetupItemCtxtSUReqIEs_t *)ie->value.choice.E_RABToBeSetupListCtxtSUReq.list.array[i])->value.choice.E_RABToBeSetupItemCtxtSUReq); S1AP_INITIAL_CONTEXT_SETUP_REQ(message_p).e_rab_param[i].e_rab_id = item_p->e_RAB_ID; if (item_p->nAS_PDU != NULL) { @@ -776,7 +770,7 @@ int s1ap_eNB_handle_initial_context_request(uint32_t assoc_id, malloc(sizeof(uint8_t) * item_p->nAS_PDU->size); memcpy(S1AP_INITIAL_CONTEXT_SETUP_REQ(message_p).e_rab_param[i].nas_pdu.buffer, - item_p->nAS_PDU->buf, item_p->nAS_PDU->size); + item_p->nAS_PDU->buf, item_p->nAS_PDU->size); S1AP_DEBUG("Received NAS message with the E_RAB setup procedure\n"); } else { S1AP_INITIAL_CONTEXT_SETUP_REQ(message_p).e_rab_param[i].nas_pdu.length = 0; @@ -803,6 +797,20 @@ int s1ap_eNB_handle_initial_context_request(uint32_t assoc_id, item_p->e_RABlevelQoSParameters.allocationRetentionPriority.pre_emptionVulnerability; } + /* id-UESecurityCapabilities */ + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_InitialContextSetupRequestIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_UESecurityCapabilities, true); + S1AP_INITIAL_CONTEXT_SETUP_REQ(message_p).security_capabilities.encryption_algorithms = + BIT_STRING_to_uint16(&ie->value.choice.UESecurityCapabilities.encryptionAlgorithms); + S1AP_INITIAL_CONTEXT_SETUP_REQ(message_p).security_capabilities.integrity_algorithms = + BIT_STRING_to_uint16(&ie->value.choice.UESecurityCapabilities.integrityProtectionAlgorithms); + + /* id-SecurityKey : Copy the security key */ + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_InitialContextSetupRequestIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_SecurityKey, true); + memcpy(&S1AP_INITIAL_CONTEXT_SETUP_REQ(message_p).security_key, + ie->value.choice.SecurityKey.buf, ie->value.choice.SecurityKey.size); + itti_send_msg_to_task(TASK_RRC_ENB, ue_desc_p->eNB_instance->instance, message_p); return 0; @@ -810,18 +818,21 @@ int s1ap_eNB_handle_initial_context_request(uint32_t assoc_id, static -int s1ap_eNB_handle_ue_context_release_command(uint32_t assoc_id, +int s1ap_eNB_handle_ue_context_release_command(uint32_t assoc_id, uint32_t stream, - struct s1ap_message_s *s1ap_message_p) + S1AP_S1AP_PDU_t *pdu) { s1ap_eNB_mme_data_t *mme_desc_p = NULL; s1ap_eNB_ue_context_t *ue_desc_p = NULL; MessageDef *message_p = NULL; + S1AP_MME_UE_S1AP_ID_t mme_ue_s1ap_id; + S1AP_ENB_UE_S1AP_ID_t enb_ue_s1ap_id; + S1AP_UEContextReleaseCommand_t *container; + S1AP_UEContextReleaseCommand_IEs_t *ie; - S1ap_UEContextReleaseCommandIEs_t *ueContextReleaseCommand_p; - DevAssert(s1ap_message_p != NULL); + DevAssert(pdu != NULL); - ueContextReleaseCommand_p = &s1ap_message_p->msg.s1ap_UEContextReleaseCommandIEs; + container = &pdu->choice.initiatingMessage.value.choice.UEContextReleaseCommand; if ((mme_desc_p = s1ap_eNB_get_MME(NULL, assoc_id, 0)) == NULL) { S1AP_ERROR("[SCTP %d] Received UE context release command for non " @@ -829,80 +840,85 @@ int s1ap_eNB_handle_ue_context_release_command(uint32_t assoc_id, return -1; } - S1ap_MME_UE_S1AP_ID_t mme_ue_s1ap_id; - S1ap_ENB_UE_S1AP_ID_t enb_ue_s1ap_id; + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_UEContextReleaseCommand_IEs_t, ie, container, + S1AP_ProtocolIE_ID_id_UE_S1AP_IDs, true); - switch (ueContextReleaseCommand_p->uE_S1AP_IDs.present) { - case S1ap_UE_S1AP_IDs_PR_uE_S1AP_ID_pair: - enb_ue_s1ap_id = ueContextReleaseCommand_p->uE_S1AP_IDs.choice.uE_S1AP_ID_pair.eNB_UE_S1AP_ID; - mme_ue_s1ap_id = ueContextReleaseCommand_p->uE_S1AP_IDs.choice.uE_S1AP_ID_pair.mME_UE_S1AP_ID; + switch (ie->value.choice.UE_S1AP_IDs.present) { + case S1AP_UE_S1AP_IDs_PR_uE_S1AP_ID_pair: + enb_ue_s1ap_id = ie->value.choice.UE_S1AP_IDs.choice.uE_S1AP_ID_pair.eNB_UE_S1AP_ID; + mme_ue_s1ap_id = ie->value.choice.UE_S1AP_IDs.choice.uE_S1AP_ID_pair.mME_UE_S1AP_ID; - MSC_LOG_RX_MESSAGE( - MSC_S1AP_ENB, - MSC_S1AP_MME, - NULL,0, - "0 UEContextRelease/%s eNB_ue_s1ap_id "S1AP_UE_ID_FMT" mme_ue_s1ap_id "S1AP_UE_ID_FMT" len %u", - s1ap_direction2String[s1ap_message_p->direction], - enb_ue_s1ap_id, - mme_ue_s1ap_id); + MSC_LOG_RX_MESSAGE( + MSC_S1AP_ENB, + MSC_S1AP_MME, + NULL,0, + "0 UEContextRelease/%s eNB_ue_s1ap_id "S1AP_UE_ID_FMT" mme_ue_s1ap_id "S1AP_UE_ID_FMT" len %u", + s1ap_direction2String(pdu->present - 1), + enb_ue_s1ap_id, + mme_ue_s1ap_id); - if ((ue_desc_p = s1ap_eNB_get_ue_context(mme_desc_p->s1ap_eNB_instance, - enb_ue_s1ap_id)) == NULL) { - S1AP_ERROR("[SCTP %d] Received UE context release command for non " - "existing UE context 0x%06lx\n", - assoc_id, - enb_ue_s1ap_id); - /*MessageDef *msg_complete_p; - msg_complete_p = itti_alloc_new_message(TASK_RRC_ENB, S1AP_UE_CONTEXT_RELEASE_COMPLETE); - S1AP_UE_CONTEXT_RELEASE_COMPLETE(msg_complete_p).eNB_ue_s1ap_id = enb_ue_s1ap_id; - itti_send_msg_to_task(TASK_S1AP, ue_desc_p->eNB_instance->instance <=> 0, msg_complete_p); - */ + if ((ue_desc_p = s1ap_eNB_get_ue_context(mme_desc_p->s1ap_eNB_instance, + enb_ue_s1ap_id)) == NULL) { + S1AP_ERROR("[SCTP %d] Received UE context release command for non " + "existing UE context 0x%06lx\n", + assoc_id, + enb_ue_s1ap_id); + /*MessageDef *msg_complete_p; + msg_complete_p = itti_alloc_new_message(TASK_RRC_ENB, S1AP_UE_CONTEXT_RELEASE_COMPLETE); + S1AP_UE_CONTEXT_RELEASE_COMPLETE(msg_complete_p).eNB_ue_s1ap_id = enb_ue_s1ap_id; + itti_send_msg_to_task(TASK_S1AP, ue_desc_p->eNB_instance->instance <=> 0, msg_complete_p); + */ + return -1; + } else { + MSC_LOG_TX_MESSAGE( + MSC_S1AP_ENB, + MSC_RRC_ENB, + NULL,0, + "0 S1AP_UE_CONTEXT_RELEASE_COMMAND/%d eNB_ue_s1ap_id "S1AP_UE_ID_FMT" ", + enb_ue_s1ap_id); + message_p = itti_alloc_new_message(TASK_S1AP, S1AP_UE_CONTEXT_RELEASE_COMMAND); + S1AP_UE_CONTEXT_RELEASE_COMMAND(message_p).eNB_ue_s1ap_id = enb_ue_s1ap_id; + itti_send_msg_to_task(TASK_RRC_ENB, ue_desc_p->eNB_instance->instance, message_p); + return 0; + } + + break; + + //#warning "TODO mapping mme_ue_s1ap_id enb_ue_s1ap_id?" + + case S1AP_UE_S1AP_IDs_PR_mME_UE_S1AP_ID: + mme_ue_s1ap_id = ie->value.choice.UE_S1AP_IDs.choice.uE_S1AP_ID_pair.mME_UE_S1AP_ID; + S1AP_ERROR("TO DO mapping mme_ue_s1ap_id enb_ue_s1ap_id"); + (void)mme_ue_s1ap_id; /* TODO: remove - it's to remove gcc warning about unused var */ + + case S1AP_UE_S1AP_IDs_PR_NOTHING: + default: + S1AP_ERROR("S1AP_UE_CONTEXT_RELEASE_COMMAND not processed, missing info elements"); return -1; - } else { - MSC_LOG_TX_MESSAGE( - MSC_S1AP_ENB, - MSC_RRC_ENB, - NULL,0, - "0 S1AP_UE_CONTEXT_RELEASE_COMMAND/%d eNB_ue_s1ap_id "S1AP_UE_ID_FMT" ", - enb_ue_s1ap_id); - - message_p = itti_alloc_new_message(TASK_S1AP, S1AP_UE_CONTEXT_RELEASE_COMMAND); - S1AP_UE_CONTEXT_RELEASE_COMMAND(message_p).eNB_ue_s1ap_id = enb_ue_s1ap_id; - itti_send_msg_to_task(TASK_RRC_ENB, ue_desc_p->eNB_instance->instance, message_p); - return 0; - } - - break; - -//#warning "TODO mapping mme_ue_s1ap_id enb_ue_s1ap_id?" - - case S1ap_UE_S1AP_IDs_PR_mME_UE_S1AP_ID: - mme_ue_s1ap_id = ueContextReleaseCommand_p->uE_S1AP_IDs.choice.mME_UE_S1AP_ID; - S1AP_ERROR("TO DO mapping mme_ue_s1ap_id enb_ue_s1ap_id"); - (void)mme_ue_s1ap_id; /* TODO: remove - it's to remove gcc warning about unused var */ - - case S1ap_UE_S1AP_IDs_PR_NOTHING: - default: - S1AP_ERROR("S1AP_UE_CONTEXT_RELEASE_COMMAND not processed, missing info elements"); - return -1; } + + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_UEContextReleaseCommand_IEs_t, ie, container, + S1AP_ProtocolIE_ID_id_Cause, true); + /* TBD */ } static -int s1ap_eNB_handle_e_rab_setup_request(uint32_t assoc_id, - uint32_t stream, - struct s1ap_message_s *s1ap_message_p) { - +int s1ap_eNB_handle_e_rab_setup_request(uint32_t assoc_id, + uint32_t stream, + S1AP_S1AP_PDU_t *pdu) +{ int i; + S1AP_MME_UE_S1AP_ID_t mme_ue_s1ap_id; + S1AP_ENB_UE_S1AP_ID_t enb_ue_s1ap_id; + s1ap_eNB_mme_data_t *mme_desc_p = NULL; + s1ap_eNB_ue_context_t *ue_desc_p = NULL; + MessageDef *message_p = NULL; + S1AP_E_RABSetupRequest_t *container; + S1AP_E_RABSetupRequestIEs_t *ie; - s1ap_eNB_mme_data_t *mme_desc_p = NULL; - s1ap_eNB_ue_context_t *ue_desc_p = NULL; - MessageDef *message_p = NULL; + DevAssert(pdu != NULL); - S1ap_E_RABSetupRequestIEs_t *s1ap_E_RABSetupRequest; - DevAssert(s1ap_message_p != NULL); - - s1ap_E_RABSetupRequest = &s1ap_message_p->msg.s1ap_E_RABSetupRequestIEs; + container = &pdu->choice.initiatingMessage.value.choice.E_RABSetupRequest; if ((mme_desc_p = s1ap_eNB_get_MME(NULL, assoc_id, 0)) == NULL) { S1AP_ERROR("[SCTP %d] Received initial context setup request for non " @@ -910,12 +926,21 @@ int s1ap_eNB_handle_e_rab_setup_request(uint32_t assoc_id, return -1; } - + /* id-MME-UE-S1AP-ID */ + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_E_RABSetupRequestIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID, true); + mme_ue_s1ap_id = ie->value.choice.MME_UE_S1AP_ID; + + /* id-eNB-UE-S1AP-ID */ + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_E_RABSetupRequestIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID, true); + enb_ue_s1ap_id = ie->value.choice.ENB_UE_S1AP_ID; + if ((ue_desc_p = s1ap_eNB_get_ue_context(mme_desc_p->s1ap_eNB_instance, - s1ap_E_RABSetupRequest->eNB_UE_S1AP_ID)) == NULL) { + enb_ue_s1ap_id)) == NULL) { S1AP_ERROR("[SCTP %d] Received initial context setup request for non " "existing UE context 0x%06lx\n", assoc_id, - s1ap_E_RABSetupRequest->eNB_UE_S1AP_ID); + enb_ue_s1ap_id); return -1; } @@ -928,25 +953,26 @@ int s1ap_eNB_handle_e_rab_setup_request(uint32_t assoc_id, ue_desc_p->rx_stream = stream; - if ( ue_desc_p->mme_ue_s1ap_id != s1ap_E_RABSetupRequest->mme_ue_s1ap_id){ - S1AP_WARN("UE context mme_ue_s1ap_id is different form that of the message (%d != %ld)", - ue_desc_p->mme_ue_s1ap_id, s1ap_E_RABSetupRequest->mme_ue_s1ap_id); - + if ( ue_desc_p->mme_ue_s1ap_id != mme_ue_s1ap_id) { + S1AP_WARN("UE context mme_ue_s1ap_id is different form that of the message (%d != %ld)", + ue_desc_p->mme_ue_s1ap_id, mme_ue_s1ap_id); } + message_p = itti_alloc_new_message(TASK_S1AP, S1AP_E_RAB_SETUP_REQ); - + S1AP_E_RAB_SETUP_REQ(message_p).ue_initial_id = ue_desc_p->ue_initial_id; - - S1AP_E_RAB_SETUP_REQ(message_p).mme_ue_s1ap_id = s1ap_E_RABSetupRequest->mme_ue_s1ap_id; - S1AP_E_RAB_SETUP_REQ(message_p).eNB_ue_s1ap_id = s1ap_E_RABSetupRequest->eNB_UE_S1AP_ID; - - S1AP_E_RAB_SETUP_REQ(message_p).nb_e_rabs_tosetup = - s1ap_E_RABSetupRequest->e_RABToBeSetupListBearerSUReq.s1ap_E_RABToBeSetupItemBearerSUReq.count; - - for (i = 0; i < s1ap_E_RABSetupRequest->e_RABToBeSetupListBearerSUReq.s1ap_E_RABToBeSetupItemBearerSUReq.count; i++) { - S1ap_E_RABToBeSetupItemBearerSUReq_t *item_p; - - item_p = (S1ap_E_RABToBeSetupItemBearerSUReq_t *)s1ap_E_RABSetupRequest->e_RABToBeSetupListBearerSUReq.s1ap_E_RABToBeSetupItemBearerSUReq.array[i]; + S1AP_E_RAB_SETUP_REQ(message_p).mme_ue_s1ap_id = mme_ue_s1ap_id; + S1AP_E_RAB_SETUP_REQ(message_p).eNB_ue_s1ap_id = enb_ue_s1ap_id; + + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_E_RABSetupRequestIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_E_RABToBeSetupListBearerSUReq, true); + S1AP_E_RAB_SETUP_REQ(message_p).nb_e_rabs_tosetup = + ie->value.choice.E_RABToBeSetupListBearerSUReq.list.count; + + for (i = 0; i < ie->value.choice.E_RABToBeSetupListBearerSUReq.list.count; i++) { + S1AP_E_RABToBeSetupItemBearerSUReq_t *item_p; + + item_p = &(((S1AP_E_RABToBeSetupItemBearerSUReqIEs_t *)ie->value.choice.E_RABToBeSetupListBearerSUReq.list.array[i])->value.choice.E_RABToBeSetupItemBearerSUReq); S1AP_E_RAB_SETUP_REQ(message_p).e_rab_setup_params[i].e_rab_id = item_p->e_RAB_ID; @@ -957,12 +983,12 @@ int s1ap_eNB_handle_e_rab_setup_request(uint32_t assoc_id, S1AP_E_RAB_SETUP_REQ(message_p).e_rab_setup_params[i].nas_pdu.buffer = malloc(sizeof(uint8_t) * item_p->nAS_PDU.size); memcpy(S1AP_E_RAB_SETUP_REQ(message_p).e_rab_setup_params[i].nas_pdu.buffer, - item_p->nAS_PDU.buf, item_p->nAS_PDU.size); + item_p->nAS_PDU.buf, item_p->nAS_PDU.size); // S1AP_INFO("received a NAS PDU with size %d (%02x.%02x)\n",S1AP_E_RAB_SETUP_REQ(message_p).e_rab_setup_params[i].nas_pdu.length, item_p->nAS_PDU.buf[0], item_p->nAS_PDU.buf[1]); } else { S1AP_E_RAB_SETUP_REQ(message_p).e_rab_setup_params[i].nas_pdu.length = 0; S1AP_E_RAB_SETUP_REQ(message_p).e_rab_setup_params[i].nas_pdu.buffer = NULL; - + S1AP_WARN("NAS PDU is not provided, generate a E_RAB_SETUP Failure (TBD) back to MME \n"); // return -1; } @@ -973,10 +999,10 @@ int s1ap_eNB_handle_e_rab_setup_request(uint32_t assoc_id, S1AP_E_RAB_SETUP_REQ(message_p).e_rab_setup_params[i].sgw_addr.length = item_p->transportLayerAddress.size * 8 - item_p->transportLayerAddress.bits_unused; - /* S1AP_INFO("sgw addr %s len: %d (size %d, index %d)\n", - S1AP_E_RAB_SETUP_REQ(message_p).e_rab_setup_params[i].sgw_addr.buffer, - S1AP_E_RAB_SETUP_REQ(message_p).e_rab_setup_params[i].sgw_addr.length, - item_p->transportLayerAddress.size, i); + /* S1AP_INFO("sgw addr %s len: %d (size %d, index %d)\n", + S1AP_E_RAB_SETUP_REQ(message_p).e_rab_setup_params[i].sgw_addr.buffer, + S1AP_E_RAB_SETUP_REQ(message_p).e_rab_setup_params[i].sgw_addr.length, + item_p->transportLayerAddress.size, i); */ /* GTP tunnel endpoint ID */ OCTET_STRING_TO_INT32(&item_p->gTP_TEID, S1AP_E_RAB_SETUP_REQ(message_p).e_rab_setup_params[i].gtp_teid); @@ -999,20 +1025,22 @@ int s1ap_eNB_handle_e_rab_setup_request(uint32_t assoc_id, static int s1ap_eNB_handle_paging(uint32_t assoc_id, - uint32_t stream, - struct s1ap_message_s *s1ap_message_p) + uint32_t stream, + S1AP_S1AP_PDU_t *pdu) { - S1ap_PagingIEs_t *paging_p; s1ap_eNB_mme_data_t *mme_desc_p = NULL; s1ap_eNB_instance_t *s1ap_eNB_instance = NULL; MessageDef *message_p = NULL; + S1AP_Paging_t *container; + S1AP_PagingIEs_t *ie; + + DevAssert(pdu != NULL); + + container = &pdu->choice.initiatingMessage.value.choice.Paging; - DevAssert(s1ap_message_p != NULL); // received Paging Message from MME S1AP_DEBUG("[SCTP %d] Received Paging Message From MME\n",assoc_id); - paging_p = &s1ap_message_p->msg.s1ap_PagingIEs; - /* Paging procedure -> stream != 0 */ if (stream == 0) { S1AP_ERROR("[SCTP %d] Received Paging procedure on stream (%d)\n", @@ -1035,177 +1063,143 @@ int s1ap_eNB_handle_paging(uint32_t assoc_id, message_p = itti_alloc_new_message(TASK_S1AP, S1AP_PAGING_IND); - /* convert S1ap_PagingIEs_t to s1ap_paging_ind_t */ - /* convert UE Identity Index value */ - S1AP_PAGING_IND(message_p).ue_index_value = BIT_STRING_to_uint32(&paging_p->ueIdentityIndexValue); + /* convert S1AP_PagingIEs_t to s1ap_paging_ind_t */ + /* id-UEIdentityIndexValue : convert UE Identity Index value */ + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_PagingIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_UEIdentityIndexValue, true); + S1AP_PAGING_IND(message_p).ue_index_value = BIT_STRING_to_uint32(&ie->value.choice.UEIdentityIndexValue); S1AP_DEBUG("[SCTP %d] Received Paging ue_index_value (%d)\n", - assoc_id,(uint32_t)S1AP_PAGING_IND(message_p).ue_index_value); + assoc_id,(uint32_t)S1AP_PAGING_IND(message_p).ue_index_value); S1AP_PAGING_IND(message_p).ue_paging_identity.choice.s_tmsi.mme_code = 0; S1AP_PAGING_IND(message_p).ue_paging_identity.choice.s_tmsi.m_tmsi = 0; + /* id-UEPagingID */ + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_PagingIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_UEPagingID, true); /* convert UE Paging Identity */ - if (paging_p->uePagingID.present == S1ap_UEPagingID_PR_s_TMSI) { - S1AP_PAGING_IND(message_p).ue_paging_identity.presenceMask = UE_PAGING_IDENTITY_s_tmsi; - OCTET_STRING_TO_INT8(&paging_p->uePagingID.choice.s_TMSI.mMEC, S1AP_PAGING_IND(message_p).ue_paging_identity.choice.s_tmsi.mme_code); - OCTET_STRING_TO_INT32(&paging_p->uePagingID.choice.s_TMSI.m_TMSI, S1AP_PAGING_IND(message_p).ue_paging_identity.choice.s_tmsi.m_tmsi); - } else if (paging_p->uePagingID.present == S1ap_UEPagingID_PR_iMSI) { - S1AP_PAGING_IND(message_p).ue_paging_identity.presenceMask = UE_PAGING_IDENTITY_imsi; - S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.length = 0; - for (int i = 0; i < paging_p->uePagingID.choice.iMSI.size; i++) { - S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[2*i] = (uint8_t)(paging_p->uePagingID.choice.iMSI.buf[i] & 0x0F ); - S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.length++; - S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[2*i+1] = (uint8_t)((paging_p->uePagingID.choice.iMSI.buf[i]>>4) & 0x0F); - LOG_D(S1AP,"paging : i %d %d imsi %d %d \n",2*i,2*i+1,S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[2*i], S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[2*i+1]); - if (S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[2*i+1] == 0x0F) { - if(i != paging_p->uePagingID.choice.iMSI.size - 1){ - /* invalid paging_p->uePagingID.choise.iMSI.buffer */ - S1AP_ERROR("[SCTP %d] Received Paging : uePagingID.choise.iMSI error(i %d 0x0F)\n", assoc_id,i); - return -1; - } - } else { - S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.length++; - } - } - if (S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.length >= S1AP_IMSI_LENGTH) { - /* invalid paging_p->uePagingID.choise.iMSI.size */ - S1AP_ERROR("[SCTP %d] Received Paging : uePagingID.choise.iMSI.size(%d) is over IMSI length(%d)\n", assoc_id, S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.length, S1AP_IMSI_LENGTH); + if (ie->value.choice.UEPagingID.present == S1AP_UEPagingID_PR_s_TMSI) { + S1AP_PAGING_IND(message_p).ue_paging_identity.presenceMask = UE_PAGING_IDENTITY_s_tmsi; + OCTET_STRING_TO_INT8(&ie->value.choice.UEPagingID.choice.s_TMSI.mMEC, S1AP_PAGING_IND(message_p).ue_paging_identity.choice.s_tmsi.mme_code); + OCTET_STRING_TO_INT32(&ie->value.choice.UEPagingID.choice.s_TMSI.m_TMSI, S1AP_PAGING_IND(message_p).ue_paging_identity.choice.s_tmsi.m_tmsi); + } else if (ie->value.choice.UEPagingID.present == S1AP_UEPagingID_PR_iMSI) { + S1AP_PAGING_IND(message_p).ue_paging_identity.presenceMask = UE_PAGING_IDENTITY_imsi; + S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.length = 0; + + for (int i = 0; i < ie->value.choice.UEPagingID.choice.iMSI.size; i++) { + S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[2*i] = (uint8_t)(ie->value.choice.UEPagingID.choice.iMSI.buf[i] & 0x0F ); + S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.length++; + S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[2*i+1] = (uint8_t)((ie->value.choice.UEPagingID.choice.iMSI.buf[i]>>4) & 0x0F); + LOG_D(S1AP,"paging : i %d %d imsi %d %d \n",2*i,2*i+1,S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[2*i], S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[2*i+1]); + + if (S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[2*i+1] == 0x0F) { + if(i != ie->value.choice.UEPagingID.choice.iMSI.size - 1) { + /* invalid paging_p->uePagingID.choise.iMSI.buffer */ + S1AP_ERROR("[SCTP %d] Received Paging : uePagingID.choise.iMSI error(i %d 0x0F)\n", assoc_id,i); return -1; - } -} else { - /* invalid paging_p->uePagingID.present */ - S1AP_ERROR("[SCTP %d] Received Paging : uePagingID.present(%d) is unknown\n", assoc_id, paging_p->uePagingID.present); + } + } else { + S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.length++; + } + } + + if (S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.length >= S1AP_IMSI_LENGTH) { + /* invalid paging_p->uePagingID.choise.iMSI.size */ + S1AP_ERROR("[SCTP %d] Received Paging : uePagingID.choise.iMSI.size(%d) is over IMSI length(%d)\n", assoc_id, S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.length, S1AP_IMSI_LENGTH); return -1; + } + } else { + /* invalid paging_p->uePagingID.present */ + S1AP_ERROR("[SCTP %d] Received Paging : uePagingID.present(%d) is unknown\n", assoc_id, ie->value.choice.UEPagingID.present); + return -1; } -#if 0 - /* convert Paging DRX(optional) */ - if (paging_p->presenceMask & S1AP_PAGINGIES_PAGINGDRX_PRESENT) { - switch(paging_p->pagingDRX) { - case S1ap_PagingDRX_v32: - S1AP_PAGING_IND(message_p).paging_drx = PAGING_DRX_32; - break; - case S1ap_PagingDRX_v64: - S1AP_PAGING_IND(message_p).paging_drx = PAGING_DRX_64; - break; - case S1ap_PagingDRX_v128: - S1AP_PAGING_IND(message_p).paging_drx = PAGING_DRX_128; - break; - case S1ap_PagingDRX_v256: - S1AP_PAGING_IND(message_p).paging_drx = PAGING_DRX_256; - break; - default: - // when UE Paging DRX is no value - S1AP_PAGING_IND(message_p).paging_drx = PAGING_DRX_256; - break; - } - } -#endif S1AP_PAGING_IND(message_p).paging_drx = PAGING_DRX_256; - /* convert cnDomain */ - if (paging_p->cnDomain == S1ap_CNDomain_ps) { - S1AP_PAGING_IND(message_p).cn_domain = CN_DOMAIN_PS; - } else if (paging_p->cnDomain == S1ap_CNDomain_cs) { - S1AP_PAGING_IND(message_p).cn_domain = CN_DOMAIN_CS; + /* id-pagingDRX */ + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_PagingIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_pagingDRX, false); + + /* optional */ + if (ie) { + S1AP_PAGING_IND(message_p).paging_drx = ie->value.choice.PagingDRX; } else { - /* invalid paging_p->cnDomain */ - S1AP_ERROR("[SCTP %d] Received Paging : cnDomain(%ld) is unknown\n", assoc_id, paging_p->cnDomain); - return -1; + S1AP_PAGING_IND(message_p).paging_drx = PAGING_DRX_256; + } + + /* */ + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_PagingIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_CNDomain, true); + + /* id-CNDomain : convert cnDomain */ + if (ie->value.choice.CNDomain == S1AP_CNDomain_ps) { + S1AP_PAGING_IND(message_p).cn_domain = CN_DOMAIN_PS; + } else if (ie->value.choice.CNDomain == S1AP_CNDomain_cs) { + S1AP_PAGING_IND(message_p).cn_domain = CN_DOMAIN_CS; + } else { + /* invalid paging_p->cnDomain */ + S1AP_ERROR("[SCTP %d] Received Paging : cnDomain(%ld) is unknown\n", assoc_id, ie->value.choice.CNDomain); + return -1; } memset (&S1AP_PAGING_IND(message_p).plmn_identity[0], 0, sizeof(plmn_identity_t)*256); memset (&S1AP_PAGING_IND(message_p).tac[0], 0, sizeof(int16_t)*256); S1AP_PAGING_IND(message_p).tai_size = 0; - for (int i = 0; i < paging_p->taiList.s1ap_TAIItem.count; i++) { - S1AP_INFO("[SCTP %d] Received Paging taiList: i %d, count %d\n", assoc_id, i, paging_p->taiList.s1ap_TAIItem.count); - S1ap_TAIItem_t s1ap_TAIItem; - memset (&s1ap_TAIItem, 0, sizeof(S1ap_TAIItem_t)); + /* id-TAIList */ + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_PagingIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_TAIList, true); + S1AP_INFO("[SCTP %d] Received Paging taiList: count %d\n", assoc_id, ie->value.choice.TAIList.list.count); - memcpy(&s1ap_TAIItem, paging_p->taiList.s1ap_TAIItem.array[i], sizeof(S1ap_TAIItem_t)); - - TBCD_TO_MCC_MNC(&s1ap_TAIItem.tAI.pLMNidentity, S1AP_PAGING_IND(message_p).plmn_identity[i].mcc, - S1AP_PAGING_IND(message_p).plmn_identity[i].mnc, - S1AP_PAGING_IND(message_p).plmn_identity[i].mnc_digit_length); - OCTET_STRING_TO_INT16(&s1ap_TAIItem.tAI.tAC, S1AP_PAGING_IND(message_p).tac[i]); - S1AP_PAGING_IND(message_p).tai_size++; - S1AP_DEBUG("[SCTP %d] Received Paging: MCC %d, MNC %d, TAC %d\n", assoc_id, S1AP_PAGING_IND(message_p).plmn_identity[i].mcc, S1AP_PAGING_IND(message_p).plmn_identity[i].mnc, S1AP_PAGING_IND(message_p).tac[i]); + for (int i = 0; i < ie->value.choice.TAIList.list.count; i++) { + S1AP_TAIItem_t *item_p; + item_p = &(((S1AP_TAIItemIEs_t *)ie->value.choice.TAIList.list.array[i])->value.choice.TAIItem); + TBCD_TO_MCC_MNC(&(item_p->tAI.pLMNidentity), S1AP_PAGING_IND(message_p).plmn_identity[i].mcc, + S1AP_PAGING_IND(message_p).plmn_identity[i].mnc, + S1AP_PAGING_IND(message_p).plmn_identity[i].mnc_digit_length); + OCTET_STRING_TO_INT16(&(item_p->tAI.tAC), S1AP_PAGING_IND(message_p).tac[i]); + S1AP_PAGING_IND(message_p).tai_size++; + S1AP_DEBUG("[SCTP %d] Received Paging: MCC %d, MNC %d, TAC %d\n", assoc_id, + S1AP_PAGING_IND(message_p).plmn_identity[i].mcc, + S1AP_PAGING_IND(message_p).plmn_identity[i].mnc, + S1AP_PAGING_IND(message_p).tac[i]); } -#if 0 - // CSG Id(optional) List is not used - if (paging_p->presenceMask & S1AP_PAGINGIES_CSG_IDLIST_PRESENT) { - // TODO - } - /* convert pagingPriority (optional) if has value */ - if (paging_p->presenceMask & S1AP_PAGINGIES_PAGINGPRIORITY_PRESENT) { - switch(paging_p->pagingPriority) { - case S1ap_PagingPriority_priolevel1: - S1AP_PAGING_IND(message_p).paging_priority = PAGING_PRIO_LEVEL1; - break; - case S1ap_PagingPriority_priolevel2: - S1AP_PAGING_IND(message_p).paging_priority = PAGING_PRIO_LEVEL2; - break; - case S1ap_PagingPriority_priolevel3: - S1AP_PAGING_IND(message_p).paging_priority = PAGING_PRIO_LEVEL3; - break; - case S1ap_PagingPriority_priolevel4: - S1AP_PAGING_IND(message_p).paging_priority = PAGING_PRIO_LEVEL4; - break; - case S1ap_PagingPriority_priolevel5: - S1AP_PAGING_IND(message_p).paging_priority = PAGING_PRIO_LEVEL5; - break; - case S1ap_PagingPriority_priolevel6: - S1AP_PAGING_IND(message_p).paging_priority = PAGING_PRIO_LEVEL6; - break; - case S1ap_PagingPriority_priolevel7: - S1AP_PAGING_IND(message_p).paging_priority = PAGING_PRIO_LEVEL7; - break; - case S1ap_PagingPriority_priolevel8: - S1AP_PAGING_IND(message_p).paging_priority = PAGING_PRIO_LEVEL8; - break; - default: - /* invalid paging_p->pagingPriority */ - S1AP_ERROR("[SCTP %d] Received paging : pagingPriority(%ld) is invalid\n", assoc_id, paging_p->pagingPriority); - return -1; - } - } -#endif //paging parameter values S1AP_DEBUG("[SCTP %d] Received Paging parameters: ue_index_value %d cn_domain %d paging_drx %d paging_priority %d\n",assoc_id, - S1AP_PAGING_IND(message_p).ue_index_value, S1AP_PAGING_IND(message_p).cn_domain, - S1AP_PAGING_IND(message_p).paging_drx, S1AP_PAGING_IND(message_p).paging_priority); + S1AP_PAGING_IND(message_p).ue_index_value, S1AP_PAGING_IND(message_p).cn_domain, + S1AP_PAGING_IND(message_p).paging_drx, S1AP_PAGING_IND(message_p).paging_priority); S1AP_DEBUG("[SCTP %d] Received Paging parameters(ue): presenceMask %d s_tmsi.m_tmsi %d s_tmsi.mme_code %d IMSI length %d (0-5) %d%d%d%d%d%d\n",assoc_id, - S1AP_PAGING_IND(message_p).ue_paging_identity.presenceMask, S1AP_PAGING_IND(message_p).ue_paging_identity.choice.s_tmsi.m_tmsi, - S1AP_PAGING_IND(message_p).ue_paging_identity.choice.s_tmsi.mme_code, S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.length, - S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[0], S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[1], - S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[2], S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[3], - S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[4], S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[5]); + S1AP_PAGING_IND(message_p).ue_paging_identity.presenceMask, S1AP_PAGING_IND(message_p).ue_paging_identity.choice.s_tmsi.m_tmsi, + S1AP_PAGING_IND(message_p).ue_paging_identity.choice.s_tmsi.mme_code, S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.length, + S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[0], S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[1], + S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[2], S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[3], + S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[4], S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[5]); /* send message to RRC */ itti_send_msg_to_task(TASK_RRC_ENB, s1ap_eNB_instance->instance, message_p); - - return 0; + + return 0; } static int s1ap_eNB_handle_e_rab_modify_request(uint32_t assoc_id, - uint32_t stream, - struct s1ap_message_s *s1ap_message_p) { + uint32_t stream, + S1AP_S1AP_PDU_t *pdu) +{ + int i, nb_of_e_rabs_failed; + s1ap_eNB_mme_data_t *mme_desc_p = NULL; + s1ap_eNB_ue_context_t *ue_desc_p = NULL; + MessageDef *message_p = NULL; + S1AP_E_RABModifyRequest_t *container; + S1AP_E_RABModifyRequestIEs_t *ie; + S1AP_ENB_UE_S1AP_ID_t enb_ue_s1ap_id; + S1AP_MME_UE_S1AP_ID_t mme_ue_s1ap_id; - int i; + DevAssert(pdu != NULL); - s1ap_eNB_mme_data_t *mme_desc_p = NULL; - s1ap_eNB_ue_context_t *ue_desc_p = NULL; - MessageDef *message_p = NULL; - int nb_of_e_rabs_failed = 0; - - S1ap_E_RABModifyRequestIEs_t *s1ap_E_RABModifyRequest; - DevAssert(s1ap_message_p != NULL); - - s1ap_E_RABModifyRequest = &s1ap_message_p->msg.s1ap_E_RABModifyRequestIEs; + container = &pdu->choice.initiatingMessage.value.choice.E_RABModifyRequest; if ((mme_desc_p = s1ap_eNB_get_MME(NULL, assoc_id, 0)) == NULL) { S1AP_ERROR("[SCTP %d] Received E-RAB modify request for non " @@ -1213,12 +1207,21 @@ int s1ap_eNB_handle_e_rab_modify_request(uint32_t assoc_id, return -1; } + /* id-MME-UE-S1AP-ID */ + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_E_RABModifyRequestIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID, true); + mme_ue_s1ap_id = ie->value.choice.MME_UE_S1AP_ID; + + /* id-eNB-UE-S1AP-ID */ + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_E_RABModifyRequestIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID, true); + enb_ue_s1ap_id = ie->value.choice.ENB_UE_S1AP_ID; if ((ue_desc_p = s1ap_eNB_get_ue_context(mme_desc_p->s1ap_eNB_instance, - s1ap_E_RABModifyRequest->eNB_UE_S1AP_ID)) == NULL) { + enb_ue_s1ap_id)) == NULL) { S1AP_ERROR("[SCTP %d] Received E-RAB modify request for non " "existing UE context 0x%06lx\n", assoc_id, - s1ap_E_RABModifyRequest->eNB_UE_S1AP_ID); + enb_ue_s1ap_id); return -1; } @@ -1231,22 +1234,25 @@ int s1ap_eNB_handle_e_rab_modify_request(uint32_t assoc_id, ue_desc_p->rx_stream = stream; - if ( ue_desc_p->mme_ue_s1ap_id != s1ap_E_RABModifyRequest->mme_ue_s1ap_id){ + if (ue_desc_p->mme_ue_s1ap_id != mme_ue_s1ap_id) { S1AP_WARN("UE context mme_ue_s1ap_id is different form that of the message (%d != %ld)", - ue_desc_p->mme_ue_s1ap_id, s1ap_E_RABModifyRequest->mme_ue_s1ap_id); + ue_desc_p->mme_ue_s1ap_id, mme_ue_s1ap_id); message_p = itti_alloc_new_message (TASK_RRC_ENB, S1AP_E_RAB_MODIFY_RESP); - S1AP_E_RAB_MODIFY_RESP (message_p).eNB_ue_s1ap_id = s1ap_E_RABModifyRequest->eNB_UE_S1AP_ID; -// S1AP_E_RAB_MODIFY_RESP (msg_fail_p).e_rabs[S1AP_MAX_E_RAB]; - S1AP_E_RAB_MODIFY_RESP (message_p).nb_of_e_rabs = 0; + S1AP_E_RAB_MODIFY_RESP (message_p).eNB_ue_s1ap_id = enb_ue_s1ap_id; - for(nb_of_e_rabs_failed = 0; nb_of_e_rabs_failed < s1ap_E_RABModifyRequest->e_RABToBeModifiedListBearerModReq.s1ap_E_RABToBeModifiedItemBearerModReq.count; nb_of_e_rabs_failed++) { - S1AP_E_RAB_MODIFY_RESP (message_p).e_rabs_failed[nb_of_e_rabs_failed].e_rab_id = - ((S1ap_E_RABToBeModifiedItemBearerModReq_t *)s1ap_E_RABModifyRequest->e_RABToBeModifiedListBearerModReq.s1ap_E_RABToBeModifiedItemBearerModReq.array[nb_of_e_rabs_failed])->e_RAB_ID; - S1AP_E_RAB_MODIFY_RESP (message_p).e_rabs_failed[nb_of_e_rabs_failed].cause = S1AP_CAUSE_RADIO_NETWORK; - S1AP_E_RAB_MODIFY_RESP (message_p).e_rabs_failed[nb_of_e_rabs_failed].cause_value = 13;//S1ap_CauseRadioNetwork_unknown_mme_ue_s1ap_id; + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_E_RABModifyRequestIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_E_RABToBeModifiedListBearerModReq, true); + + for(nb_of_e_rabs_failed = 0; nb_of_e_rabs_failed < ie->value.choice.E_RABToBeModifiedListBearerModReq.list.count; nb_of_e_rabs_failed++) { + S1AP_E_RABToBeModifiedItemBearerModReq_t *item_p; + item_p = &(((S1AP_E_RABToBeModifiedItemBearerModReqIEs_t *) + ie->value.choice.E_RABToBeModifiedListBearerModReq.list.array[nb_of_e_rabs_failed])->value.choice.E_RABToBeModifiedItemBearerModReq); + S1AP_E_RAB_MODIFY_RESP(message_p).e_rabs_failed[nb_of_e_rabs_failed].e_rab_id = item_p->e_RAB_ID; + S1AP_E_RAB_MODIFY_RESP(message_p).e_rabs_failed[nb_of_e_rabs_failed].cause = S1AP_Cause_PR_radioNetwork; + S1AP_E_RAB_MODIFY_RESP(message_p).e_rabs_failed[nb_of_e_rabs_failed].cause_value = S1AP_CauseRadioNetwork_unknown_mme_ue_s1ap_id; } - S1AP_E_RAB_MODIFY_RESP (message_p).nb_of_e_rabs_failed = nb_of_e_rabs_failed; + S1AP_E_RAB_MODIFY_RESP(message_p).nb_of_e_rabs_failed = nb_of_e_rabs_failed; s1ap_eNB_e_rab_modify_resp(mme_desc_p->s1ap_eNB_instance->instance, &S1AP_E_RAB_MODIFY_RESP(message_p)); @@ -1259,17 +1265,18 @@ int s1ap_eNB_handle_e_rab_modify_request(uint32_t assoc_id, S1AP_E_RAB_MODIFY_REQ(message_p).ue_initial_id = ue_desc_p->ue_initial_id; - S1AP_E_RAB_MODIFY_REQ(message_p).mme_ue_s1ap_id = s1ap_E_RABModifyRequest->mme_ue_s1ap_id; - S1AP_E_RAB_MODIFY_REQ(message_p).eNB_ue_s1ap_id = s1ap_E_RABModifyRequest->eNB_UE_S1AP_ID; + S1AP_E_RAB_MODIFY_REQ(message_p).mme_ue_s1ap_id = mme_ue_s1ap_id; + S1AP_E_RAB_MODIFY_REQ(message_p).eNB_ue_s1ap_id = enb_ue_s1ap_id; + /* id-E-RABToBeModifiedListBearerModReq */ + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_E_RABModifyRequestIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_E_RABToBeModifiedListBearerModReq, true); S1AP_E_RAB_MODIFY_REQ(message_p).nb_e_rabs_tomodify = - s1ap_E_RABModifyRequest->e_RABToBeModifiedListBearerModReq.s1ap_E_RABToBeModifiedItemBearerModReq.count; - - for (i = 0; i < s1ap_E_RABModifyRequest->e_RABToBeModifiedListBearerModReq.s1ap_E_RABToBeModifiedItemBearerModReq.count; i++) { - S1ap_E_RABToBeModifiedItemBearerModReq_t *item_p; - - item_p = (S1ap_E_RABToBeModifiedItemBearerModReq_t *)s1ap_E_RABModifyRequest->e_RABToBeModifiedListBearerModReq.s1ap_E_RABToBeModifiedItemBearerModReq.array[i]; + ie->value.choice.E_RABToBeModifiedListBearerModReq.list.count; + for (i = 0; i < ie->value.choice.E_RABToBeModifiedListBearerModReq.list.count; i++) { + S1AP_E_RABToBeModifiedItemBearerModReq_t *item_p; + item_p = &(((S1AP_E_RABToBeModifiedItemBearerModReqIEs_t *)ie->value.choice.E_RABToBeModifiedListBearerModReq.list.array[i])->value.choice.E_RABToBeModifiedItemBearerModReq); S1AP_E_RAB_MODIFY_REQ(message_p).e_rab_modify_params[i].e_rab_id = item_p->e_RAB_ID; // check for the NAS PDU @@ -1306,26 +1313,40 @@ int s1ap_eNB_handle_e_rab_modify_request(uint32_t assoc_id, static int s1ap_eNB_handle_e_rab_release_command(uint32_t assoc_id, uint32_t stream, - struct s1ap_message_s *s1ap_message_p) { - + S1AP_S1AP_PDU_t *pdu) +{ int i; - s1ap_eNB_mme_data_t *mme_desc_p = NULL; s1ap_eNB_ue_context_t *ue_desc_p = NULL; MessageDef *message_p = NULL; + S1AP_E_RABReleaseCommand_t *container; + S1AP_E_RABReleaseCommandIEs_t *ie; + S1AP_ENB_UE_S1AP_ID_t enb_ue_s1ap_id; + S1AP_MME_UE_S1AP_ID_t mme_ue_s1ap_id; + + DevAssert(pdu != NULL); + + container = &pdu->choice.initiatingMessage.value.choice.E_RABReleaseCommand; - S1ap_E_RABReleaseCommandIEs_t *s1ap_E_RABReleaseCommand; - DevAssert(s1ap_message_p != NULL); - s1ap_E_RABReleaseCommand = &s1ap_message_p->msg.s1ap_E_RABReleaseCommandIEs; - if ((mme_desc_p = s1ap_eNB_get_MME(NULL, assoc_id, 0)) == NULL) { S1AP_ERROR("[SCTP %d] Received E-RAB release command for non existing MME context\n", assoc_id); return -1; } + + /* id-MME-UE-S1AP-ID */ + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_E_RABReleaseCommandIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID, true); + mme_ue_s1ap_id = ie->value.choice.MME_UE_S1AP_ID; + + /* id-eNB-UE-S1AP-ID */ + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_E_RABReleaseCommandIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID, true); + enb_ue_s1ap_id = ie->value.choice.ENB_UE_S1AP_ID; + if ((ue_desc_p = s1ap_eNB_get_ue_context(mme_desc_p->s1ap_eNB_instance, - s1ap_E_RABReleaseCommand->eNB_UE_S1AP_ID)) == NULL) { + enb_ue_s1ap_id)) == NULL) { S1AP_ERROR("[SCTP %d] Received E-RAB release command for non existing UE context 0x%06lx\n", assoc_id, - s1ap_E_RABReleaseCommand->eNB_UE_S1AP_ID); + ie->value.choice.ENB_UE_S1AP_ID); return -1; } @@ -1338,38 +1359,43 @@ int s1ap_eNB_handle_e_rab_release_command(uint32_t assoc_id, ue_desc_p->rx_stream = stream; - if ( ue_desc_p->mme_ue_s1ap_id != s1ap_E_RABReleaseCommand->mme_ue_s1ap_id){ + if (ue_desc_p->mme_ue_s1ap_id != mme_ue_s1ap_id) { S1AP_WARN("UE context mme_ue_s1ap_id is different form that of the message (%d != %ld)", - ue_desc_p->mme_ue_s1ap_id, s1ap_E_RABReleaseCommand->mme_ue_s1ap_id); + ue_desc_p->mme_ue_s1ap_id, mme_ue_s1ap_id); } S1AP_DEBUG("[SCTP %d] Received E-RAB release command for eNB_UE_S1AP_ID %ld mme_ue_s1ap_id %ld\n", - assoc_id, s1ap_E_RABReleaseCommand->eNB_UE_S1AP_ID, s1ap_E_RABReleaseCommand->mme_ue_s1ap_id); + assoc_id, enb_ue_s1ap_id, mme_ue_s1ap_id); - message_p = itti_alloc_new_message(TASK_S1AP, S1AP_E_RAB_RELEASE_COMMAND); - - S1AP_E_RAB_RELEASE_COMMAND(message_p).eNB_ue_s1ap_id = s1ap_E_RABReleaseCommand->eNB_UE_S1AP_ID; - S1AP_E_RAB_RELEASE_COMMAND(message_p).mme_ue_s1ap_id = s1ap_E_RABReleaseCommand->mme_ue_s1ap_id; - if(s1ap_E_RABReleaseCommand->nas_pdu.size > 0 ){ - S1AP_E_RAB_RELEASE_COMMAND(message_p).nas_pdu.length = s1ap_E_RABReleaseCommand->nas_pdu.size; + message_p = itti_alloc_new_message(TASK_S1AP, S1AP_E_RAB_RELEASE_COMMAND); + S1AP_E_RAB_RELEASE_COMMAND(message_p).eNB_ue_s1ap_id = enb_ue_s1ap_id; + S1AP_E_RAB_RELEASE_COMMAND(message_p).mme_ue_s1ap_id = mme_ue_s1ap_id; + /* id-NAS-PDU */ + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_E_RABReleaseCommandIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_NAS_PDU, false); + if(ie && ie->value.choice.NAS_PDU.size > 0) { + S1AP_E_RAB_RELEASE_COMMAND(message_p).nas_pdu.length = ie->value.choice.NAS_PDU.size; S1AP_E_RAB_RELEASE_COMMAND(message_p).nas_pdu.buffer = - malloc(sizeof(uint8_t) * s1ap_E_RABReleaseCommand->nas_pdu.size); - + malloc(sizeof(uint8_t) * ie->value.choice.NAS_PDU.size); memcpy(S1AP_E_RAB_RELEASE_COMMAND(message_p).nas_pdu.buffer, - s1ap_E_RABReleaseCommand->nas_pdu.buf, - s1ap_E_RABReleaseCommand->nas_pdu.size); + ie->value.choice.NAS_PDU.buf, + ie->value.choice.NAS_PDU.size); } else { - S1AP_E_RAB_RELEASE_COMMAND(message_p).nas_pdu.length = 0; - S1AP_E_RAB_RELEASE_COMMAND(message_p).nas_pdu.buffer = NULL; + S1AP_E_RAB_RELEASE_COMMAND(message_p).nas_pdu.length = 0; + S1AP_E_RAB_RELEASE_COMMAND(message_p).nas_pdu.buffer = NULL; } - S1AP_E_RAB_RELEASE_COMMAND(message_p).nb_e_rabs_torelease = s1ap_E_RABReleaseCommand->e_RABToBeReleasedList.s1ap_E_RABItem.count; - for(i=0; i < s1ap_E_RABReleaseCommand->e_RABToBeReleasedList.s1ap_E_RABItem.count; i++){ - S1ap_E_RABItem_t *item_p; - item_p = (S1ap_E_RABItem_t*)s1ap_E_RABReleaseCommand->e_RABToBeReleasedList.s1ap_E_RABItem.array[i]; - S1AP_E_RAB_RELEASE_COMMAND(message_p).e_rab_release_params[i].e_rab_id = item_p->e_RAB_ID; - S1AP_DEBUG("[SCTP] Received E-RAB release command for e-rab id %ld\n", item_p->e_RAB_ID); + /* id-E-RABToBeReleasedList */ + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_E_RABReleaseCommandIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_E_RABToBeReleasedList, true); + S1AP_E_RAB_RELEASE_COMMAND(message_p).nb_e_rabs_torelease = ie->value.choice.E_RABList.list.count; + + for (i = 0; i < ie->value.choice.E_RABList.list.count; i++) { + S1AP_E_RABItem_t *item_p; + item_p = &(((S1AP_E_RABItemIEs_t *)ie->value.choice.E_RABList.list.array[i])->value.choice.E_RABItem); + S1AP_E_RAB_RELEASE_COMMAND(message_p).e_rab_release_params[i].e_rab_id = item_p->e_RAB_ID; + S1AP_DEBUG("[SCTP] Received E-RAB release command for e-rab id %ld\n", item_p->e_RAB_ID); } itti_send_msg_to_task(TASK_RRC_ENB, ue_desc_p->eNB_instance->instance, message_p); diff --git a/openair3/S1AP/s1ap_eNB_itti_messaging.c b/openair3/S1AP/s1ap_eNB_itti_messaging.c index a0cdfd2dbc..f10c5bc623 100644 --- a/openair3/S1AP/s1ap_eNB_itti_messaging.c +++ b/openair3/S1AP/s1ap_eNB_itti_messaging.c @@ -56,7 +56,8 @@ void s1ap_eNB_itti_send_nas_downlink_ind(instance_t instance, s1ap_downlink_nas->ue_initial_id = ue_initial_id; s1ap_downlink_nas->eNB_ue_s1ap_id = eNB_ue_s1ap_id; - s1ap_downlink_nas->nas_pdu.buffer = nas_pdu; + s1ap_downlink_nas->nas_pdu.buffer = malloc(sizeof(uint8_t) * nas_pdu_length); + memcpy(s1ap_downlink_nas->nas_pdu.buffer, nas_pdu, nas_pdu_length); s1ap_downlink_nas->nas_pdu.length = nas_pdu_length; itti_send_msg_to_task(TASK_RRC_ENB, instance, message_p); diff --git a/openair3/S1AP/s1ap_eNB_nas_procedures.c b/openair3/S1AP/s1ap_eNB_nas_procedures.c index d6d9b52c07..f2f84de32d 100644 --- a/openair3/S1AP/s1ap_eNB_nas_procedures.c +++ b/openair3/S1AP/s1ap_eNB_nas_procedures.c @@ -21,7 +21,7 @@ /*! \file s1ap_eNB_nas_procedures.c * \brief S1AP eNb NAS procedure handler - * \author S. Roux and Navid Nikaein + * \author S. Roux and Navid Nikaein * \date 2010 - 2015 * \email: navid.nikaein@eurecom.fr * \version 1.0 @@ -41,7 +41,6 @@ #include "s1ap_eNB_itti_messaging.h" -#include "s1ap_ies_defs.h" #include "s1ap_eNB_encoder.h" #include "s1ap_eNB_nnsf.h" #include "s1ap_eNB_ue_context.h" @@ -57,11 +56,9 @@ int s1ap_eNB_handle_nas_first_req( s1ap_eNB_instance_t *instance_p = NULL; struct s1ap_eNB_mme_data_s *mme_desc_p = NULL; struct s1ap_eNB_ue_context_s *ue_desc_p = NULL; - - s1ap_message message; - - S1ap_InitialUEMessageIEs_t *initial_ue_message_p = NULL; - + S1AP_S1AP_PDU_t pdu; + S1AP_InitialUEMessage_t *out; + S1AP_InitialUEMessage_IEs_t *ie; uint8_t *buffer = NULL; uint32_t length = 0; @@ -71,12 +68,12 @@ int s1ap_eNB_handle_nas_first_req( instance_p = s1ap_eNB_get_instance(instance); DevAssert(instance_p != NULL); - memset(&message, 0, sizeof(s1ap_message)); - - message.direction = S1AP_PDU_PR_initiatingMessage; - message.procedureCode = S1ap_ProcedureCode_id_initialUEMessage; - - initial_ue_message_p = &message.msg.s1ap_InitialUEMessageIEs; + memset(&pdu, 0, sizeof(pdu)); + pdu.present = S1AP_S1AP_PDU_PR_initiatingMessage; + pdu.choice.initiatingMessage.procedureCode = S1AP_ProcedureCode_id_initialUEMessage; + pdu.choice.initiatingMessage.criticality = S1AP_Criticality_ignore; + pdu.choice.initiatingMessage.value.present = S1AP_InitiatingMessage__value_PR_InitialUEMessage; + out = &pdu.choice.initiatingMessage.value.choice.InitialUEMessage; /* Select the MME corresponding to the provided GUMMEI. */ if (s1ap_nas_first_req_p->ue_identity.presenceMask & UE_IDENTITIES_gummei) { @@ -144,63 +141,248 @@ int s1ap_eNB_handle_nas_first_req( } } while(1); - initial_ue_message_p->eNB_UE_S1AP_ID = ue_desc_p->eNB_ue_s1ap_id; - /* Prepare the NAS PDU */ - initial_ue_message_p->nas_pdu.buf = s1ap_nas_first_req_p->nas_pdu.buffer; - initial_ue_message_p->nas_pdu.size = s1ap_nas_first_req_p->nas_pdu.length; + /* mandatory */ + ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID; + ie->criticality = S1AP_Criticality_reject; + ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_ENB_UE_S1AP_ID; + ie->value.choice.ENB_UE_S1AP_ID = ue_desc_p->eNB_ue_s1ap_id; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - /* Set the establishment cause according to those provided by RRC */ - DevCheck(s1ap_nas_first_req_p->establishment_cause < RRC_CAUSE_LAST, - s1ap_nas_first_req_p->establishment_cause, RRC_CAUSE_LAST, 0); - initial_ue_message_p->rrC_Establishment_Cause = s1ap_nas_first_req_p->establishment_cause; - - if (s1ap_nas_first_req_p->ue_identity.presenceMask & UE_IDENTITIES_s_tmsi) { - S1AP_DEBUG("S_TMSI_PRESENT\n"); - initial_ue_message_p->presenceMask |= S1AP_INITIALUEMESSAGEIES_S_TMSI_PRESENT; - - MME_CODE_TO_OCTET_STRING(s1ap_nas_first_req_p->ue_identity.s_tmsi.mme_code, - &initial_ue_message_p->s_tmsi.mMEC); - M_TMSI_TO_OCTET_STRING(s1ap_nas_first_req_p->ue_identity.s_tmsi.m_tmsi, - &initial_ue_message_p->s_tmsi.m_TMSI); - } - - if (s1ap_nas_first_req_p->ue_identity.presenceMask & UE_IDENTITIES_gummei) { - S1AP_DEBUG("GUMMEI_ID_PRESENT\n"); - initial_ue_message_p->presenceMask |= S1AP_INITIALUEMESSAGEIES_GUMMEI_ID_PRESENT; - - MCC_MNC_TO_PLMNID( - s1ap_nas_first_req_p->ue_identity.gummei.mcc, - s1ap_nas_first_req_p->ue_identity.gummei.mnc, - s1ap_nas_first_req_p->ue_identity.gummei.mnc_len, - &initial_ue_message_p->gummei_id.pLMN_Identity); - - MME_GID_TO_OCTET_STRING(s1ap_nas_first_req_p->ue_identity.gummei.mme_group_id, - &initial_ue_message_p->gummei_id.mME_Group_ID); - MME_CODE_TO_OCTET_STRING(s1ap_nas_first_req_p->ue_identity.gummei.mme_code, - &initial_ue_message_p->gummei_id.mME_Code); - } + /* mandatory */ + ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_NAS_PDU; + ie->criticality = S1AP_Criticality_reject; + ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_NAS_PDU; +#if 1 + ie->value.choice.NAS_PDU.buf = s1ap_nas_first_req_p->nas_pdu.buffer; +#else + ie->value.choice.NAS_PDU.buf = malloc(s1ap_nas_first_req_p->nas_pdu.length); + memcpy(ie->value.choice.NAS_PDU.buf, + s1ap_nas_first_req_p->nas_pdu.buffer, + s1ap_nas_first_req_p->nas_pdu.length); +#endif + ie->value.choice.NAS_PDU.size = s1ap_nas_first_req_p->nas_pdu.length; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + /* mandatory */ + ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_TAI; + ie->criticality = S1AP_Criticality_reject; + ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_TAI; /* Assuming TAI is the TAI from the cell */ - INT16_TO_OCTET_STRING(instance_p->tac, &initial_ue_message_p->tai.tAC); + INT16_TO_OCTET_STRING(instance_p->tac, &ie->value.choice.TAI.tAC); MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length, - &initial_ue_message_p->tai.pLMNidentity); + &ie->value.choice.TAI.pLMNidentity); + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + /* mandatory */ + ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_EUTRAN_CGI; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_EUTRAN_CGI; /* Set the EUTRAN CGI * The cell identity is defined on 28 bits but as we use macro enb id, * we have to pad. */ -//#warning "TODO get cell id from RRC" + //#warning "TODO get cell id from RRC" MACRO_ENB_ID_TO_CELL_IDENTITY(instance_p->eNB_id, - 0, // Cell ID - &initial_ue_message_p->eutran_cgi.cell_ID); + 0, // Cell ID + &ie->value.choice.EUTRAN_CGI.cell_ID); MCC_MNC_TO_TBCD(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length, - &initial_ue_message_p->eutran_cgi.pLMNidentity); + &ie->value.choice.EUTRAN_CGI.pLMNidentity); + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - if (s1ap_eNB_encode_pdu(&message, &buffer, &length) < 0) { + /* Set the establishment cause according to those provided by RRC */ + DevCheck(s1ap_nas_first_req_p->establishment_cause < RRC_CAUSE_LAST, + s1ap_nas_first_req_p->establishment_cause, RRC_CAUSE_LAST, 0); + + /* mandatory */ + ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_RRC_Establishment_Cause; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_RRC_Establishment_Cause; + ie->value.choice.RRC_Establishment_Cause = s1ap_nas_first_req_p->establishment_cause; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + + /* optional */ + if (s1ap_nas_first_req_p->ue_identity.presenceMask & UE_IDENTITIES_s_tmsi) { + S1AP_DEBUG("S_TMSI_PRESENT\n"); + ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_S_TMSI; + ie->criticality = S1AP_Criticality_reject; + ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_S_TMSI; + MME_CODE_TO_OCTET_STRING(s1ap_nas_first_req_p->ue_identity.s_tmsi.mme_code, + &ie->value.choice.S_TMSI.mMEC); + M_TMSI_TO_OCTET_STRING(s1ap_nas_first_req_p->ue_identity.s_tmsi.m_tmsi, + &ie->value.choice.S_TMSI.m_TMSI); + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } + + /* optional */ + if (0) { + ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_CSG_Id; + ie->criticality = S1AP_Criticality_reject; + ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_CSG_Id; + // ie->value.choice.CSG_Id = ; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } + + /* optional */ + if (s1ap_nas_first_req_p->ue_identity.presenceMask & UE_IDENTITIES_gummei) { + S1AP_DEBUG("GUMMEI_ID_PRESENT\n"); + ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_GUMMEI_ID; + ie->criticality = S1AP_Criticality_reject; + ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_GUMMEI; + MCC_MNC_TO_PLMNID( + s1ap_nas_first_req_p->ue_identity.gummei.mcc, + s1ap_nas_first_req_p->ue_identity.gummei.mnc, + s1ap_nas_first_req_p->ue_identity.gummei.mnc_len, + &ie->value.choice.GUMMEI.pLMN_Identity); + MME_GID_TO_OCTET_STRING(s1ap_nas_first_req_p->ue_identity.gummei.mme_group_id, + &ie->value.choice.GUMMEI.mME_Group_ID); + MME_CODE_TO_OCTET_STRING(s1ap_nas_first_req_p->ue_identity.gummei.mme_code, + &ie->value.choice.GUMMEI.mME_Code); + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } + + /* optional */ +#if (S1AP_VERSION >= MAKE_VERSION(9, 0, 0)) + if (0) { + ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_CellAccessMode; + ie->criticality = S1AP_Criticality_reject; + ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_CellAccessMode; + // ie->value.choice.CellAccessMode = ; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } + + /* optional */ +#if (S1AP_VERSION >= MAKE_VERSION(10, 0, 0)) + if (0) { + ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_GW_TransportLayerAddress; + ie->criticality = S1AP_Criticality_reject; + ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_TransportLayerAddress; + // ie->value.choice.TransportLayerAddress =; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } + + /* optional */ + if (0) { + ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_RelayNode_Indicator; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_RelayNode_Indicator; + // ie->value.choice.RelayNode_Indicator =; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } + +#if (S1AP_VERSION >= MAKE_VERSION(11, 0, 0)) + /* optional */ + if (0) { + ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_GUMMEIType; + ie->criticality = S1AP_Criticality_reject; + ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_GUMMEIType; + // ie->value.choice.GUMMEIType =; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } + + /* optional */ /* release 11 */ + if (0) { + ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_Tunnel_Information_for_BBF; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_TunnelInformation; + // ie->value.choice.TunnelInformation =; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } + + /* optional */ + if (0) { + ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_SIPTO_L_GW_TransportLayerAddress; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_TransportLayerAddress; + // ie->value.choice.TransportLayerAddress = ; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } + + /* optional */ + if (0) { + ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_LHN_ID; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_LHN_ID; + // ie->value.choice.LHN_ID = ue_release_req_p->eNB_ue_s1ap_id; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } + +#if (S1AP_VERSION >= MAKE_VERSION(13, 0, 0)) + /* optional */ + if (0) { + ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_MME_Group_ID; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_MME_Group_ID; + // ie->value.choice.MME_Group_ID =; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } + + /* optional */ + if (0) { + ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_UE_Usage_Type; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_UE_Usage_Type; + // ie->value.choice.UE_Usage_Type =; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } + + /* optional */ + if (0) { + ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_CE_mode_B_SupportIndicator; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_CE_mode_B_SupportIndicator; + // ie->value.choice.CE_mode_B_SupportIndicator = ; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } + +#if (S1AP_VERSION >= MAKE_VERSION(14, 0, 0)) + /* optional */ + if (0) { + ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_DCN_ID; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_DCN_ID; + // ie->value.choice.DCN_ID = ; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } + + /* optional */ + if (0) { + ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_Coverage_Level; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_Coverage_Level; + // ie->value.choice.Coverage_Level = ue_release_req_p->eNB_ue_s1ap_id; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } +#endif /* #if (S1AP_VERSION >= MAKE_VERSION(14, 0, 0)) */ +#endif /* #if (S1AP_VERSION >= MAKE_VERSION(13, 0, 0)) */ +#endif /* #if (S1AP_VERSION >= MAKE_VERSION(11, 0, 0)) */ +#endif /* #if (S1AP_VERSION >= MAKE_VERSION(10, 0, 0)) */ +#endif /* #if (S1AP_VERSION >= MAKE_VERSION(9, 0, 0)) */ + + if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) { /* Failed to encode message */ DevMessage("Failed to encode initial UE message\n"); } @@ -235,7 +417,7 @@ int s1ap_eNB_handle_nas_first_req( 0, MSC_AS_TIME_FMT" initialUEMessage initiatingMessage eNB_ue_s1ap_id %u", 0,0,//MSC_AS_TIME_ARGS(ctxt_pP), - initial_ue_message_p->eNB_UE_S1AP_ID); + ue_desc_p->eNB_ue_s1ap_id); /* Send encoded message over sctp */ s1ap_eNB_itti_send_sctp_data_req(instance_p->instance, mme_desc_p->assoc_id, @@ -245,20 +427,19 @@ int s1ap_eNB_handle_nas_first_req( } //------------------------------------------------------------------------------ -int s1ap_eNB_handle_nas_downlink(const uint32_t assoc_id, - const uint32_t stream, - struct s1ap_message_s* message_p) +int s1ap_eNB_handle_nas_downlink(uint32_t assoc_id, + uint32_t stream, + S1AP_S1AP_PDU_t *pdu) //------------------------------------------------------------------------------ { - const S1ap_DownlinkNASTransportIEs_t *downlink_NAS_transport_p = NULL; - - s1ap_eNB_mme_data_t *mme_desc_p = NULL; - s1ap_eNB_ue_context_t *ue_desc_p = NULL; - s1ap_eNB_instance_t *s1ap_eNB_instance = NULL; - - DevAssert(message_p != NULL); - - downlink_NAS_transport_p = &message_p->msg.s1ap_DownlinkNASTransportIEs; + s1ap_eNB_mme_data_t *mme_desc_p = NULL; + s1ap_eNB_ue_context_t *ue_desc_p = NULL; + s1ap_eNB_instance_t *s1ap_eNB_instance = NULL; + S1AP_DownlinkNASTransport_t *container; + S1AP_DownlinkNASTransport_IEs_t *ie; + S1AP_ENB_UE_S1AP_ID_t enb_ue_s1ap_id; + S1AP_MME_UE_S1AP_ID_t mme_ue_s1ap_id; + DevAssert(pdu != NULL); /* UE-related procedure -> stream != 0 */ if (stream == 0) { @@ -276,18 +457,28 @@ int s1ap_eNB_handle_nas_downlink(const uint32_t assoc_id, s1ap_eNB_instance = mme_desc_p->s1ap_eNB_instance; + /* Prepare the S1AP message to encode */ + container = &pdu->choice.initiatingMessage.value.choice.DownlinkNASTransport; + + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_DownlinkNASTransport_IEs_t, ie, container, + S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID, true); + mme_ue_s1ap_id = ie->value.choice.MME_UE_S1AP_ID; + + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_DownlinkNASTransport_IEs_t, ie, container, + S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID, true); + enb_ue_s1ap_id = ie->value.choice.ENB_UE_S1AP_ID; + if ((ue_desc_p = s1ap_eNB_get_ue_context(s1ap_eNB_instance, - downlink_NAS_transport_p->eNB_UE_S1AP_ID)) == NULL) { + enb_ue_s1ap_id)) == NULL) { MSC_LOG_RX_DISCARDED_MESSAGE( MSC_S1AP_ENB, MSC_S1AP_MME, - (const char *)downlink_NAS_transport_p, - sizeof(S1ap_DownlinkNASTransportIEs_t), + (const char *)NULL, + NULL, MSC_AS_TIME_FMT" downlinkNASTransport eNB_ue_s1ap_id %u mme_ue_s1ap_id %u", 0,0,//MSC_AS_TIME_ARGS(ctxt_pP), - downlink_NAS_transport_p->eNB_UE_S1AP_ID, - downlink_NAS_transport_p->mme_ue_s1ap_id); - + enb_ue_s1ap_id, + mme_ue_s1ap_id); /* TODO: fix this log - the original version is suspicious (twice downlink_NAS_transport_p->eNB_UE_S1AP_ID?) */ /*S1AP_ERROR("[SCTP %d] Received NAS downlink message for non existing UE context eNB_UE_S1AP_ID: 0x%"PRIx32" %u\n", assoc_id, @@ -295,12 +486,12 @@ int s1ap_eNB_handle_nas_downlink(const uint32_t assoc_id, downlink_NAS_transport_p->eNB_UE_S1AP_ID);*/ S1AP_ERROR("[SCTP %d] Received NAS downlink message for non existing UE context eNB_UE_S1AP_ID: 0x%lx\n", assoc_id, - downlink_NAS_transport_p->eNB_UE_S1AP_ID); + enb_ue_s1ap_id); return -1; } if (0 == ue_desc_p->rx_stream) { - ue_desc_p->rx_stream = stream; + ue_desc_p->rx_stream = stream; } else if (stream != ue_desc_p->rx_stream) { S1AP_ERROR("[SCTP %d] Received UE-related procedure on stream %u, expecting %u\n", assoc_id, stream, ue_desc_p->rx_stream); @@ -311,13 +502,13 @@ int s1ap_eNB_handle_nas_downlink(const uint32_t assoc_id, * UE s1ap id. */ if (ue_desc_p->mme_ue_s1ap_id == 0) { - ue_desc_p->mme_ue_s1ap_id = downlink_NAS_transport_p->mme_ue_s1ap_id; + ue_desc_p->mme_ue_s1ap_id = mme_ue_s1ap_id; } else { /* We already have a mme ue s1ap id check the received is the same */ - if (ue_desc_p->mme_ue_s1ap_id != downlink_NAS_transport_p->mme_ue_s1ap_id) { + if (ue_desc_p->mme_ue_s1ap_id != mme_ue_s1ap_id) { S1AP_ERROR("[SCTP %d] Mismatch in MME UE S1AP ID (0x%lx != 0x%"PRIx32"\n", assoc_id, - downlink_NAS_transport_p->mme_ue_s1ap_id, + mme_ue_s1ap_id, ue_desc_p->mme_ue_s1ap_id ); return -1; @@ -327,19 +518,21 @@ int s1ap_eNB_handle_nas_downlink(const uint32_t assoc_id, MSC_LOG_RX_MESSAGE( MSC_S1AP_ENB, MSC_S1AP_MME, - (const char *)downlink_NAS_transport_p, - sizeof(S1ap_DownlinkNASTransportIEs_t), + (const char *)NULL, + NULL, MSC_AS_TIME_FMT" downlinkNASTransport eNB_ue_s1ap_id %u mme_ue_s1ap_id %u", 0,0,//MSC_AS_TIME_ARGS(ctxt_pP), - downlink_NAS_transport_p->eNB_UE_S1AP_ID, - downlink_NAS_transport_p->mme_ue_s1ap_id); + enb_ue_s1ap_id, + mme_ue_s1ap_id); + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_DownlinkNASTransport_IEs_t, ie, container, + S1AP_ProtocolIE_ID_id_NAS_PDU, true); /* Forward the NAS PDU to RRC */ s1ap_eNB_itti_send_nas_downlink_ind(s1ap_eNB_instance->instance, ue_desc_p->ue_initial_id, ue_desc_p->eNB_ue_s1ap_id, - downlink_NAS_transport_p->nas_pdu.buf, - downlink_NAS_transport_p->nas_pdu.size); + ie->value.choice.NAS_PDU.buf, + ie->value.choice.NAS_PDU.size); // LG: Why set to 0 ?? //ue_desc_p->ue_initial_id = 0; @@ -351,14 +544,13 @@ int s1ap_eNB_handle_nas_downlink(const uint32_t assoc_id, int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_p) //------------------------------------------------------------------------------ { - struct s1ap_eNB_ue_context_s *ue_context_p; - s1ap_eNB_instance_t *s1ap_eNB_instance_p; - S1ap_UplinkNASTransportIEs_t *uplink_NAS_transport_p; - - s1ap_message message; - + struct s1ap_eNB_ue_context_s *ue_context_p; + s1ap_eNB_instance_t *s1ap_eNB_instance_p; + S1AP_S1AP_PDU_t pdu; + S1AP_UplinkNASTransport_t *out; + S1AP_UplinkNASTransport_IEs_t *ie; uint8_t *buffer; - uint32_t length; + uint32_t length; DevAssert(s1ap_uplink_nas_p != NULL); @@ -385,40 +577,102 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_ } /* Prepare the S1AP message to encode */ - memset(&message, 0, sizeof(s1ap_message)); + memset(&pdu, 0, sizeof(pdu)); + pdu.present = S1AP_S1AP_PDU_PR_initiatingMessage; + pdu.choice.initiatingMessage.procedureCode = S1AP_ProcedureCode_id_uplinkNASTransport; + pdu.choice.initiatingMessage.criticality = S1AP_Criticality_ignore; + pdu.choice.initiatingMessage.value.present = S1AP_InitiatingMessage__value_PR_UplinkNASTransport; + out = &pdu.choice.initiatingMessage.value.choice.UplinkNASTransport; - message.direction = S1AP_PDU_PR_initiatingMessage; - message.procedureCode = S1ap_ProcedureCode_id_uplinkNASTransport; + /* mandatory */ + ie = (S1AP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(S1AP_UplinkNASTransport_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID; + ie->criticality = S1AP_Criticality_reject; + ie->value.present = S1AP_UplinkNASTransport_IEs__value_PR_MME_UE_S1AP_ID; + ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - uplink_NAS_transport_p = &message.msg.s1ap_UplinkNASTransportIEs; + /* mandatory */ + ie = (S1AP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(S1AP_UplinkNASTransport_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID; + ie->criticality = S1AP_Criticality_reject; + ie->value.present = S1AP_UplinkNASTransport_IEs__value_PR_ENB_UE_S1AP_ID; + ie->value.choice.ENB_UE_S1AP_ID = ue_context_p->eNB_ue_s1ap_id; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - uplink_NAS_transport_p->mme_ue_s1ap_id = ue_context_p->mme_ue_s1ap_id; - uplink_NAS_transport_p->eNB_UE_S1AP_ID = ue_context_p->eNB_ue_s1ap_id; - - uplink_NAS_transport_p->nas_pdu.buf = s1ap_uplink_nas_p->nas_pdu.buffer; - uplink_NAS_transport_p->nas_pdu.size = s1ap_uplink_nas_p->nas_pdu.length; + /* mandatory */ + ie = (S1AP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(S1AP_UplinkNASTransport_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_NAS_PDU; + ie->criticality = S1AP_Criticality_reject; + ie->value.present = S1AP_UplinkNASTransport_IEs__value_PR_NAS_PDU; + ie->value.choice.NAS_PDU.buf = s1ap_uplink_nas_p->nas_pdu.buffer; + ie->value.choice.NAS_PDU.size = s1ap_uplink_nas_p->nas_pdu.length; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + /* mandatory */ + ie = (S1AP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(S1AP_UplinkNASTransport_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_EUTRAN_CGI; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_UplinkNASTransport_IEs__value_PR_EUTRAN_CGI; MCC_MNC_TO_PLMNID( s1ap_eNB_instance_p->mcc, s1ap_eNB_instance_p->mnc, s1ap_eNB_instance_p->mnc_digit_length, - &uplink_NAS_transport_p->eutran_cgi.pLMNidentity); - -//#warning "TODO get cell id from RRC" + &ie->value.choice.EUTRAN_CGI.pLMNidentity); + //#warning "TODO get cell id from RRC" MACRO_ENB_ID_TO_CELL_IDENTITY(s1ap_eNB_instance_p->eNB_id, - 0, - &uplink_NAS_transport_p->eutran_cgi.cell_ID); + 0, + &ie->value.choice.EUTRAN_CGI.cell_ID); + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - /* MCC/MNC should be repeated in TAI and EUTRAN CGI */ + /* mandatory */ + ie = (S1AP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(S1AP_UplinkNASTransport_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_TAI; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_UplinkNASTransport_IEs__value_PR_TAI; MCC_MNC_TO_PLMNID( s1ap_eNB_instance_p->mcc, s1ap_eNB_instance_p->mnc, s1ap_eNB_instance_p->mnc_digit_length, - &uplink_NAS_transport_p->tai.pLMNidentity); + &ie->value.choice.TAI.pLMNidentity); + TAC_TO_ASN1(s1ap_eNB_instance_p->tac, &ie->value.choice.TAI.tAC); + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - TAC_TO_ASN1(s1ap_eNB_instance_p->tac, &uplink_NAS_transport_p->tai.tAC); + /* optional */ +#if (S1AP_VERSION >= MAKE_VERSION(10, 0, 0)) + if (0) { + ie = (S1AP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(S1AP_UplinkNASTransport_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_GW_TransportLayerAddress; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_UplinkNASTransport_IEs__value_PR_TransportLayerAddress; + // ie->value.choice.TransportLayerAddress = ; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } - if (s1ap_eNB_encode_pdu(&message, &buffer, &length) < 0) { + /* optional */ +#if (S1AP_VERSION >= MAKE_VERSION(14, 0, 0)) + if (0) { + ie = (S1AP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(S1AP_UplinkNASTransport_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_SIPTO_L_GW_TransportLayerAddress; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_UplinkNASTransport_IEs__value_PR_TransportLayerAddress; + // ie->value.choice.TransportLayerAddress = ; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } + + /* optional */ + if (0) { + ie = (S1AP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(S1AP_UplinkNASTransport_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_LHN_ID; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_UplinkNASTransport_IEs__value_PR_LHN_ID; + // ie->value.choice.LHN_ID =; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } +#endif /* #if (S1AP_VERSION >= MAKE_VERSION(14, 0, 0)) */ +#endif /* #if (S1AP_VERSION >= MAKE_VERSION(10, 0, 0)) */ + + if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) { S1AP_ERROR("Failed to encode uplink NAS transport\n"); /* Encode procedure has failed... */ return -1; @@ -431,9 +685,8 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_ 0, MSC_AS_TIME_FMT" uplinkNASTransport initiatingMessage eNB_ue_s1ap_id %u mme_ue_s1ap_id %u", 0,0,//MSC_AS_TIME_ARGS(ctxt_pP), - uplink_NAS_transport_p->eNB_UE_S1AP_ID, - uplink_NAS_transport_p->mme_ue_s1ap_id); - + ue_context_p->eNB_ue_s1ap_id, + ue_context_p->mme_ue_s1ap_id); /* UE associated signalling -> use the allocated stream */ s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance, @@ -445,19 +698,17 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_ //------------------------------------------------------------------------------ -void s1ap_eNB_nas_non_delivery_ind(instance_t instance, - s1ap_nas_non_delivery_ind_t *s1ap_nas_non_delivery_ind) +int s1ap_eNB_nas_non_delivery_ind(instance_t instance, + s1ap_nas_non_delivery_ind_t *s1ap_nas_non_delivery_ind) //------------------------------------------------------------------------------ { - struct s1ap_eNB_ue_context_s *ue_context_p; - s1ap_eNB_instance_t *s1ap_eNB_instance_p; - - S1ap_NASNonDeliveryIndication_IEs_t *nas_non_delivery_p; - - s1ap_message message; - + struct s1ap_eNB_ue_context_s *ue_context_p; + s1ap_eNB_instance_t *s1ap_eNB_instance_p; + S1AP_S1AP_PDU_t pdu; + S1AP_NASNonDeliveryIndication_t *out; + S1AP_NASNonDeliveryIndication_IEs_t *ie; uint8_t *buffer; - uint32_t length; + uint32_t length; DevAssert(s1ap_nas_non_delivery_ind != NULL); @@ -473,50 +724,77 @@ void s1ap_eNB_nas_non_delivery_ind(instance_t instance, MSC_S1AP_ENB, MSC_AS_TIME_FMT" Sent of NAS_NON_DELIVERY_IND to MME failed, no context for eNB_ue_s1ap_id %06x", s1ap_nas_non_delivery_ind->eNB_ue_s1ap_id); - return; + return -1; } /* Prepare the S1AP message to encode */ - memset(&message, 0, sizeof(s1ap_message)); + memset(&pdu, 0, sizeof(pdu)); + pdu.present = S1AP_S1AP_PDU_PR_initiatingMessage; + pdu.choice.initiatingMessage.procedureCode = S1AP_ProcedureCode_id_NASNonDeliveryIndication; + pdu.choice.initiatingMessage.criticality = S1AP_Criticality_ignore; + pdu.choice.initiatingMessage.value.present = S1AP_InitiatingMessage__value_PR_NASNonDeliveryIndication; + out = &pdu.choice.initiatingMessage.value.choice.NASNonDeliveryIndication; - message.direction = S1AP_PDU_PR_initiatingMessage; - message.procedureCode = S1ap_ProcedureCode_id_NASNonDeliveryIndication; + /* mandatory */ + ie = (S1AP_NASNonDeliveryIndication_IEs_t *)calloc(1, sizeof(S1AP_NASNonDeliveryIndication_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID; + ie->criticality = S1AP_Criticality_reject; + ie->value.present = S1AP_NASNonDeliveryIndication_IEs__value_PR_MME_UE_S1AP_ID; + ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - nas_non_delivery_p = &message.msg.s1ap_NASNonDeliveryIndication_IEs; - nas_non_delivery_p->eNB_UE_S1AP_ID = ue_context_p->eNB_ue_s1ap_id; - nas_non_delivery_p->mme_ue_s1ap_id = ue_context_p->mme_ue_s1ap_id; - nas_non_delivery_p->nas_pdu.buf = s1ap_nas_non_delivery_ind->nas_pdu.buffer; - nas_non_delivery_p->nas_pdu.size = s1ap_nas_non_delivery_ind->nas_pdu.length; + /* mandatory */ + ie = (S1AP_NASNonDeliveryIndication_IEs_t *)calloc(1, sizeof(S1AP_NASNonDeliveryIndication_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID; + ie->criticality = S1AP_Criticality_reject; + ie->value.present = S1AP_NASNonDeliveryIndication_IEs__value_PR_ENB_UE_S1AP_ID; + ie->value.choice.ENB_UE_S1AP_ID = ue_context_p->eNB_ue_s1ap_id; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + /* mandatory */ + ie = (S1AP_NASNonDeliveryIndication_IEs_t *)calloc(1, sizeof(S1AP_NASNonDeliveryIndication_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_NAS_PDU; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_NASNonDeliveryIndication_IEs__value_PR_NAS_PDU; + ie->value.choice.NAS_PDU.buf = s1ap_nas_non_delivery_ind->nas_pdu.buffer; + ie->value.choice.NAS_PDU.size = s1ap_nas_non_delivery_ind->nas_pdu.length; + + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + + /* mandatory */ + ie = (S1AP_NASNonDeliveryIndication_IEs_t *)calloc(1, sizeof(S1AP_NASNonDeliveryIndication_IEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_Cause; + ie->criticality = S1AP_Criticality_ignore; /* Send a dummy cause */ - nas_non_delivery_p->cause.present = S1ap_Cause_PR_radioNetwork; - nas_non_delivery_p->cause.choice.radioNetwork = S1ap_CauseRadioNetwork_radio_connection_with_ue_lost; + ie->value.present = S1AP_NASNonDeliveryIndication_IEs__value_PR_Cause; + ie->value.choice.Cause.present = S1AP_Cause_PR_radioNetwork; + ie->value.choice.Cause.choice.radioNetwork = S1AP_CauseRadioNetwork_radio_connection_with_ue_lost; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - if (s1ap_eNB_encode_pdu(&message, &buffer, &length) < 0) { + if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) { S1AP_ERROR("Failed to encode NAS NON delivery indication\n"); /* Encode procedure has failed... */ MSC_LOG_EVENT( MSC_S1AP_ENB, MSC_AS_TIME_FMT" Sent of NAS_NON_DELIVERY_IND to MME failed (encoding)"); - return; + return -1; } - MSC_LOG_TX_MESSAGE( MSC_S1AP_ENB, MSC_S1AP_MME, - (const char *)s1ap_nas_non_delivery_ind, - sizeof(s1ap_nas_non_delivery_ind_t), + (const char *)buffer, + length, MSC_AS_TIME_FMT" NASNonDeliveryIndication initiatingMessage eNB_ue_s1ap_id %u mme_ue_s1ap_id %u", 0,0,//MSC_AS_TIME_ARGS(ctxt_pP), - nas_non_delivery_p->eNB_UE_S1AP_ID, - nas_non_delivery_p->mme_ue_s1ap_id); - + ue_context_p->eNB_ue_s1ap_id, + ue_context_p->mme_ue_s1ap_id); /* UE associated signalling -> use the allocated stream */ s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance, ue_context_p->mme_ref->assoc_id, buffer, length, ue_context_p->tx_stream); + return 0; } //------------------------------------------------------------------------------ @@ -524,16 +802,13 @@ int s1ap_eNB_initial_ctxt_resp( instance_t instance, s1ap_initial_context_setup_resp_t *initial_ctxt_resp_p) //------------------------------------------------------------------------------ { - s1ap_eNB_instance_t *s1ap_eNB_instance_p = NULL; - struct s1ap_eNB_ue_context_s *ue_context_p = NULL; - - S1ap_InitialContextSetupResponseIEs_t *initial_ies_p = NULL; - - s1ap_message message; - - uint8_t *buffer = NULL; + s1ap_eNB_instance_t *s1ap_eNB_instance_p = NULL; + struct s1ap_eNB_ue_context_s *ue_context_p = NULL; + S1AP_S1AP_PDU_t pdu; + S1AP_InitialContextSetupResponse_t *out; + S1AP_InitialContextSetupResponseIEs_t *ie; + uint8_t *buffer = NULL; uint32_t length; - int ret = -1; int i; /* Retrieve the S1AP eNB instance associated with Mod_id */ @@ -562,40 +837,119 @@ int s1ap_eNB_initial_ctxt_resp( } /* Prepare the S1AP message to encode */ - memset(&message, 0, sizeof(s1ap_message)); + memset(&pdu, 0, sizeof(pdu)); + pdu.present = S1AP_S1AP_PDU_PR_successfulOutcome; + pdu.choice.successfulOutcome.procedureCode = S1AP_ProcedureCode_id_InitialContextSetup; + pdu.choice.successfulOutcome.criticality = S1AP_Criticality_reject; + pdu.choice.successfulOutcome.value.present = S1AP_SuccessfulOutcome__value_PR_InitialContextSetupResponse; + out = &pdu.choice.successfulOutcome.value.choice.InitialContextSetupResponse; - message.direction = S1AP_PDU_PR_successfulOutcome; - message.procedureCode = S1ap_ProcedureCode_id_InitialContextSetup; + /* mandatory */ + ie = (S1AP_InitialContextSetupResponseIEs_t *)calloc(1, sizeof(S1AP_InitialContextSetupResponseIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_InitialContextSetupResponseIEs__value_PR_MME_UE_S1AP_ID; + ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - initial_ies_p = &message.msg.s1ap_InitialContextSetupResponseIEs; + /* mandatory */ + ie = (S1AP_InitialContextSetupResponseIEs_t *)calloc(1, sizeof(S1AP_InitialContextSetupResponseIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_InitialContextSetupResponseIEs__value_PR_ENB_UE_S1AP_ID; + ie->value.choice.ENB_UE_S1AP_ID = initial_ctxt_resp_p->eNB_ue_s1ap_id; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - initial_ies_p->eNB_UE_S1AP_ID = initial_ctxt_resp_p->eNB_ue_s1ap_id; - initial_ies_p->mme_ue_s1ap_id = ue_context_p->mme_ue_s1ap_id; + /* mandatory */ + ie = (S1AP_InitialContextSetupResponseIEs_t *)calloc(1, sizeof(S1AP_InitialContextSetupResponseIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_E_RABSetupListCtxtSURes; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_InitialContextSetupResponseIEs__value_PR_E_RABSetupListCtxtSURes; for (i = 0; i < initial_ctxt_resp_p->nb_of_e_rabs; i++) { - S1ap_E_RABSetupItemCtxtSURes_t *new_item; - - new_item = calloc(1, sizeof(S1ap_E_RABSetupItemCtxtSURes_t)); - - new_item->e_RAB_ID = initial_ctxt_resp_p->e_rabs[i].e_rab_id; - GTP_TEID_TO_ASN1(initial_ctxt_resp_p->e_rabs[i].gtp_teid, &new_item->gTP_TEID); - new_item->transportLayerAddress.buf = initial_ctxt_resp_p->e_rabs[i].eNB_addr.buffer; - new_item->transportLayerAddress.size = initial_ctxt_resp_p->e_rabs[i].eNB_addr.length; - new_item->transportLayerAddress.bits_unused = 0; - - S1AP_DEBUG("initial_ctxt_resp_p: e_rab ID %ld, enb_addr %d.%d.%d.%d, SIZE %d \n", - new_item->e_RAB_ID, - new_item->transportLayerAddress.buf[0], - new_item->transportLayerAddress.buf[1], - new_item->transportLayerAddress.buf[2], - new_item->transportLayerAddress.buf[3], - new_item->transportLayerAddress.size); - - ASN_SEQUENCE_ADD(&initial_ies_p->e_RABSetupListCtxtSURes.s1ap_E_RABSetupItemCtxtSURes, - new_item); + S1AP_E_RABSetupItemCtxtSUResIEs_t *item; + /* mandatory */ + item = (S1AP_E_RABSetupItemCtxtSUResIEs_t *)calloc(1, sizeof(S1AP_E_RABSetupItemCtxtSUResIEs_t)); + item->id = S1AP_ProtocolIE_ID_id_E_RABSetupItemCtxtSURes; + item->criticality = S1AP_Criticality_ignore; + item->value.present = S1AP_E_RABSetupItemCtxtSUResIEs__value_PR_E_RABSetupItemCtxtSURes; + item->value.choice.E_RABSetupItemCtxtSURes.e_RAB_ID = initial_ctxt_resp_p->e_rabs[i].e_rab_id; + GTP_TEID_TO_ASN1(initial_ctxt_resp_p->e_rabs[i].gtp_teid, &item->value.choice.E_RABSetupItemCtxtSURes.gTP_TEID); + item->value.choice.E_RABSetupItemCtxtSURes.transportLayerAddress.buf = malloc(initial_ctxt_resp_p->e_rabs[i].eNB_addr.length); + memcpy(item->value.choice.E_RABSetupItemCtxtSURes.transportLayerAddress.buf, + initial_ctxt_resp_p->e_rabs[i].eNB_addr.buffer, + initial_ctxt_resp_p->e_rabs[i].eNB_addr.length); + item->value.choice.E_RABSetupItemCtxtSURes.transportLayerAddress.size = initial_ctxt_resp_p->e_rabs[i].eNB_addr.length; + item->value.choice.E_RABSetupItemCtxtSURes.transportLayerAddress.bits_unused = 0; + S1AP_DEBUG("initial_ctxt_resp_p: e_rab ID %ld, enb_addr %d.%d.%d.%d, SIZE %ld \n", + item->value.choice.E_RABSetupItemCtxtSURes.e_RAB_ID, + item->value.choice.E_RABSetupItemCtxtSURes.transportLayerAddress.buf[0], + item->value.choice.E_RABSetupItemCtxtSURes.transportLayerAddress.buf[1], + item->value.choice.E_RABSetupItemCtxtSURes.transportLayerAddress.buf[2], + item->value.choice.E_RABSetupItemCtxtSURes.transportLayerAddress.buf[3], + item->value.choice.E_RABSetupItemCtxtSURes.transportLayerAddress.size); + ASN_SEQUENCE_ADD(&ie->value.choice.E_RABSetupListCtxtSURes.list, item); } - if (s1ap_eNB_encode_pdu(&message, &buffer, &length) < 0) { + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + + /* optional */ + if (initial_ctxt_resp_p->nb_of_e_rabs_failed) { + ie = (S1AP_InitialContextSetupResponseIEs_t *)calloc(1, sizeof(S1AP_InitialContextSetupResponseIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_E_RABFailedToSetupListCtxtSURes; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_InitialContextSetupResponseIEs__value_PR_E_RABList; + + for (i = 0; i < initial_ctxt_resp_p->nb_of_e_rabs_failed; i++) { + S1AP_E_RABItemIEs_t *item; + /* mandatory */ + item = (S1AP_E_RABItemIEs_t *)calloc(1, sizeof(S1AP_E_RABItemIEs_t)); + item->id = S1AP_ProtocolIE_ID_id_E_RABItem; + item->criticality = S1AP_Criticality_ignore; + item->value.present = S1AP_E_RABItemIEs__value_PR_E_RABItem; + item->value.choice.E_RABItem.e_RAB_ID = initial_ctxt_resp_p->e_rabs_failed[i].e_rab_id; + item->value.choice.E_RABItem.cause.present = initial_ctxt_resp_p->e_rabs_failed[i].cause; + + switch(item->value.choice.E_RABItem.cause.present) + { + case S1AP_Cause_PR_radioNetwork: + item->value.choice.E_RABItem.cause.choice.radioNetwork = initial_ctxt_resp_p->e_rabs_failed[i].cause_value; + break; + case S1AP_Cause_PR_transport: + item->value.choice.E_RABItem.cause.choice.transport = initial_ctxt_resp_p->e_rabs_failed[i].cause_value; + break; + case S1AP_Cause_PR_nas: + item->value.choice.E_RABItem.cause.choice.nas = initial_ctxt_resp_p->e_rabs_failed[i].cause_value; + break; + case S1AP_Cause_PR_protocol: + item->value.choice.E_RABItem.cause.choice.protocol = initial_ctxt_resp_p->e_rabs_failed[i].cause_value; + break; + case S1AP_Cause_PR_misc: + item->value.choice.E_RABItem.cause.choice.misc = initial_ctxt_resp_p->e_rabs_failed[i].cause_value; + break; + case S1AP_Cause_PR_NOTHING: + default: + break; + } + + S1AP_DEBUG("initial context setup response: failed e_rab ID %ld\n", item->value.choice.E_RABItem.e_RAB_ID); + ASN_SEQUENCE_ADD(&ie->value.choice.E_RABList.list, item); + } + + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } + + /* optional */ + if (0) { + ie = (S1AP_InitialContextSetupResponseIEs_t *)calloc(1, sizeof(S1AP_InitialContextSetupResponseIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_CriticalityDiagnostics; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_InitialContextSetupResponseIEs__value_PR_CriticalityDiagnostics; + // ie->value.choice.CriticalityDiagnostics =; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } + + if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) { S1AP_ERROR("Failed to encode uplink NAS transport\n"); /* Encode procedure has failed... */ return -1; @@ -608,15 +962,15 @@ int s1ap_eNB_initial_ctxt_resp( length, MSC_AS_TIME_FMT" InitialContextSetup successfulOutcome eNB_ue_s1ap_id %u mme_ue_s1ap_id %u", 0,0,//MSC_AS_TIME_ARGS(ctxt_pP), - initial_ies_p->eNB_UE_S1AP_ID, - initial_ies_p->mme_ue_s1ap_id); + initial_ctxt_resp_p->eNB_ue_s1ap_id, + ue_context_p->mme_ue_s1ap_id); /* UE associated signalling -> use the allocated stream */ s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance, ue_context_p->mme_ref->assoc_id, buffer, length, ue_context_p->tx_stream); - return ret; + return 0; } //------------------------------------------------------------------------------ @@ -626,14 +980,11 @@ int s1ap_eNB_ue_capabilities(instance_t instance, { s1ap_eNB_instance_t *s1ap_eNB_instance_p; struct s1ap_eNB_ue_context_s *ue_context_p; - - S1ap_UECapabilityInfoIndicationIEs_t *ue_cap_info_ind_ies_p; - - s1ap_message message; - + S1AP_S1AP_PDU_t pdu; + S1AP_UECapabilityInfoIndication_t *out; + S1AP_UECapabilityInfoIndicationIEs_t *ie; uint8_t *buffer; uint32_t length; - int ret = -1; /* Retrieve the S1AP eNB instance associated with Mod_id */ s1ap_eNB_instance_p = s1ap_eNB_get_instance(instance); @@ -661,27 +1012,56 @@ int s1ap_eNB_ue_capabilities(instance_t instance, } /* Prepare the S1AP message to encode */ - memset(&message, 0, sizeof(s1ap_message)); + memset(&pdu, 0, sizeof(pdu)); + pdu.present = S1AP_S1AP_PDU_PR_initiatingMessage; + pdu.choice.initiatingMessage.procedureCode = S1AP_ProcedureCode_id_UECapabilityInfoIndication; + pdu.choice.initiatingMessage.criticality = S1AP_Criticality_ignore; + pdu.choice.initiatingMessage.value.present = S1AP_InitiatingMessage__value_PR_UECapabilityInfoIndication; + out = &pdu.choice.initiatingMessage.value.choice.UECapabilityInfoIndication; - message.direction = S1AP_PDU_PR_initiatingMessage; - message.procedureCode = S1ap_ProcedureCode_id_UECapabilityInfoIndication; + /* mandatory */ + ie = (S1AP_UECapabilityInfoIndicationIEs_t *)calloc(1, sizeof(S1AP_UECapabilityInfoIndicationIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID; + ie->criticality = S1AP_Criticality_reject; + ie->value.present = S1AP_UECapabilityInfoIndicationIEs__value_PR_MME_UE_S1AP_ID; + ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - ue_cap_info_ind_ies_p = &message.msg.s1ap_UECapabilityInfoIndicationIEs; + /* mandatory */ + ie = (S1AP_UECapabilityInfoIndicationIEs_t *)calloc(1, sizeof(S1AP_UECapabilityInfoIndicationIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID; + ie->criticality = S1AP_Criticality_reject; + ie->value.present = S1AP_UECapabilityInfoIndicationIEs__value_PR_ENB_UE_S1AP_ID; + ie->value.choice.ENB_UE_S1AP_ID = ue_cap_info_ind_p->eNB_ue_s1ap_id; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - ue_cap_info_ind_ies_p->ueRadioCapability.buf = ue_cap_info_ind_p->ue_radio_cap.buffer; - ue_cap_info_ind_ies_p->ueRadioCapability.size = ue_cap_info_ind_p->ue_radio_cap.length; + /* mandatory */ + ie = (S1AP_UECapabilityInfoIndicationIEs_t *)calloc(1, sizeof(S1AP_UECapabilityInfoIndicationIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_UERadioCapability; + ie->criticality = S1AP_Criticality_reject; + ie->value.present = S1AP_UECapabilityInfoIndicationIEs__value_PR_UERadioCapability; + ie->value.choice.UERadioCapability.buf = ue_cap_info_ind_p->ue_radio_cap.buffer; + ie->value.choice.UERadioCapability.size = ue_cap_info_ind_p->ue_radio_cap.length; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - ue_cap_info_ind_ies_p->eNB_UE_S1AP_ID = ue_cap_info_ind_p->eNB_ue_s1ap_id; - ue_cap_info_ind_ies_p->mme_ue_s1ap_id = ue_context_p->mme_ue_s1ap_id; + /* optional */ +#if (S1AP_VERSION >= MAKE_VERSION(12, 0, 0)) + if (0) { + ie = (S1AP_UECapabilityInfoIndicationIEs_t *)calloc(1, sizeof(S1AP_UECapabilityInfoIndicationIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_UERadioCapabilityForPaging; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_UECapabilityInfoIndicationIEs__value_PR_UERadioCapabilityForPaging; + // ie->value.choice.UERadioCapabilityForPaging = ; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } +#endif /* #if (S1AP_VERSION >= MAKE_VERSION(14, 0, 0)) */ - if (s1ap_eNB_encode_pdu(&message, &buffer, &length) < 0) { + if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) { /* Encode procedure has failed... */ S1AP_ERROR("Failed to encode UE capabilities indication\n"); return -1; } - free(ue_cap_info_ind_p->ue_radio_cap.buffer); - MSC_LOG_TX_MESSAGE( MSC_S1AP_ENB, MSC_S1AP_MME, @@ -689,32 +1069,29 @@ int s1ap_eNB_ue_capabilities(instance_t instance, length, MSC_AS_TIME_FMT" UECapabilityInfoIndication initiatingMessage eNB_ue_s1ap_id %u mme_ue_s1ap_id %u", 0,0,//MSC_AS_TIME_ARGS(ctxt_pP), - ue_cap_info_ind_ies_p->eNB_UE_S1AP_ID, - ue_cap_info_ind_ies_p->mme_ue_s1ap_id); + ue_cap_info_ind_p->eNB_ue_s1ap_id, + ue_context_p->mme_ue_s1ap_id); /* UE associated signalling -> use the allocated stream */ s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance, ue_context_p->mme_ref->assoc_id, buffer, length, ue_context_p->tx_stream); - return ret; + return 0; } //------------------------------------------------------------------------------ -int s1ap_eNB_e_rab_setup_resp(instance_t instance, - s1ap_e_rab_setup_resp_t *e_rab_setup_resp_p) +int s1ap_eNB_e_rab_setup_resp(instance_t instance, + s1ap_e_rab_setup_resp_t *e_rab_setup_resp_p) //------------------------------------------------------------------------------ { s1ap_eNB_instance_t *s1ap_eNB_instance_p = NULL; struct s1ap_eNB_ue_context_s *ue_context_p = NULL; - - S1ap_E_RABSetupResponseIEs_t *initial_ies_p = NULL; - - s1ap_message message; - + S1AP_S1AP_PDU_t pdu; + S1AP_E_RABSetupResponse_t *out; + S1AP_E_RABSetupResponseIEs_t *ie; uint8_t *buffer = NULL; uint32_t length; - int ret = -1; int i; /* Retrieve the S1AP eNB instance associated with Mod_id */ @@ -724,7 +1101,7 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance, DevAssert(s1ap_eNB_instance_p != NULL); if ((ue_context_p = s1ap_eNB_get_ue_context(s1ap_eNB_instance_p, - e_rab_setup_resp_p->eNB_ue_s1ap_id)) == NULL) { + e_rab_setup_resp_p->eNB_ue_s1ap_id)) == NULL) { /* The context for this eNB ue s1ap id doesn't exist in the map of eNB UEs */ S1AP_WARN("Failed to find ue context associated with eNB ue s1ap id: 0x%06x\n", e_rab_setup_resp_p->eNB_ue_s1ap_id); @@ -741,85 +1118,135 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance, e_rab_setup_resp_p->eNB_ue_s1ap_id, ue_context_p->ue_state); return -1; } - + /* Prepare the S1AP message to encode */ - memset(&message, 0, sizeof(s1ap_message)); + memset(&pdu, 0, sizeof(pdu)); + pdu.present = S1AP_S1AP_PDU_PR_successfulOutcome; + pdu.choice.successfulOutcome.procedureCode = S1AP_ProcedureCode_id_E_RABModify; + pdu.choice.successfulOutcome.criticality = S1AP_Criticality_reject; + pdu.choice.successfulOutcome.value.present = S1AP_SuccessfulOutcome__value_PR_E_RABSetupResponse; + out = &pdu.choice.successfulOutcome.value.choice.E_RABSetupResponse; - message.direction = S1AP_PDU_PR_successfulOutcome; - message.procedureCode = S1ap_ProcedureCode_id_E_RABSetup; - message.criticality = S1ap_Criticality_reject; + /* mandatory */ + ie = (S1AP_E_RABSetupResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABSetupResponseIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_E_RABSetupResponseIEs__value_PR_MME_UE_S1AP_ID; + ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - initial_ies_p = &message.msg.s1ap_E_RABSetupResponseIEs; - - initial_ies_p->eNB_UE_S1AP_ID = e_rab_setup_resp_p->eNB_ue_s1ap_id; - initial_ies_p->mme_ue_s1ap_id = ue_context_p->mme_ue_s1ap_id; - - if ( e_rab_setup_resp_p->nb_of_e_rabs >= 1 ) - initial_ies_p->presenceMask |= S1AP_E_RABSETUPRESPONSEIES_E_RABSETUPLISTBEARERSURES_PRESENT; - - for (i = 0; i < e_rab_setup_resp_p->nb_of_e_rabs; i++) { - S1ap_E_RABSetupItemBearerSURes_t *new_item; + /* mandatory */ + ie = (S1AP_E_RABSetupResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABSetupResponseIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_E_RABSetupResponseIEs__value_PR_ENB_UE_S1AP_ID; + ie->value.choice.ENB_UE_S1AP_ID = e_rab_setup_resp_p->eNB_ue_s1ap_id; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - new_item = calloc(1, sizeof(S1ap_E_RABSetupItemBearerSURes_t)); + /* optional */ + if (e_rab_setup_resp_p->nb_of_e_rabs > 0) { + ie = (S1AP_E_RABSetupResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABSetupResponseIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_E_RABSetupListBearerSURes; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_E_RABSetupResponseIEs__value_PR_E_RABSetupListBearerSURes; - new_item->e_RAB_ID = e_rab_setup_resp_p->e_rabs[i].e_rab_id; - GTP_TEID_TO_ASN1(e_rab_setup_resp_p->e_rabs[i].gtp_teid, &new_item->gTP_TEID); - - /* - new_item->transportLayerAddress.buf = MALLOC(e_rab_setup_resp_p->e_rabs[i].eNB_addr.length); - memcpy (new_item->transportLayerAddress.buf, - e_rab_setup_resp_p->e_rabs[i].eNB_addr.buffer, - e_rab_setup_resp_p->e_rabs[i].eNB_addr.length); - - */ - /* - new_item->transportLayerAddress.buf[0] = e_rab_setup_resp_p->e_rabs[i].eNB_addr.buffer[0]; - new_item->transportLayerAddress.buf[1] = e_rab_setup_resp_p->e_rabs[i].eNB_addr.buffer[1]; - new_item->transportLayerAddress.buf[2] = e_rab_setup_resp_p->e_rabs[i].eNB_addr.buffer[2]; - new_item->transportLayerAddress.buf[3] = e_rab_setup_resp_p->e_rabs[i].eNB_addr.buffer[3]; - */ - new_item->transportLayerAddress.buf = e_rab_setup_resp_p->e_rabs[i].eNB_addr.buffer; - new_item->transportLayerAddress.size = e_rab_setup_resp_p->e_rabs[i].eNB_addr.length; - new_item->transportLayerAddress.bits_unused = 0; - - S1AP_DEBUG("e_rab_setup_resp: e_rab ID %ld, teid %u, enb_addr %d.%d.%d.%d, SIZE %d\n", - new_item->e_RAB_ID, - e_rab_setup_resp_p->e_rabs[i].gtp_teid, - new_item->transportLayerAddress.buf[0], - new_item->transportLayerAddress.buf[1], - new_item->transportLayerAddress.buf[2], - new_item->transportLayerAddress.buf[3], - new_item->transportLayerAddress.size); - - S1ap_IE_t *ie = s1ap_new_ie(S1ap_ProtocolIE_ID_id_E_RABSetupItemBearerSURes, - S1ap_Criticality_ignore, - &asn_DEF_S1ap_E_RABSetupItemBearerSURes, - new_item); - /* - S1ap_IE_t *ie = s1ap_new_ie(S1ap_ProtocolIE_ID_id_E_RABSetupListBearerSURes, - S1ap_Criticality_ignore, - &asn_DEF_S1ap_E_RABSetupListBearerSURes, - new_item); - */ - ASN_SEQUENCE_ADD(&initial_ies_p->e_RABSetupListBearerSURes.s1ap_E_RABSetupItemBearerSURes, - ie); + for (i = 0; i < e_rab_setup_resp_p->nb_of_e_rabs; i++) { + S1AP_E_RABSetupItemBearerSUResIEs_t *item; + /* mandatory */ + item = (S1AP_E_RABSetupItemBearerSUResIEs_t *)calloc(1, sizeof(S1AP_E_RABSetupItemBearerSUResIEs_t)); + item->id = S1AP_ProtocolIE_ID_id_E_RABSetupItemBearerSURes; + item->criticality = S1AP_Criticality_ignore; + item->value.present = S1AP_E_RABSetupItemBearerSUResIEs__value_PR_E_RABSetupItemBearerSURes; + item->value.choice.E_RABSetupItemBearerSURes.e_RAB_ID = e_rab_setup_resp_p->e_rabs[i].e_rab_id; + GTP_TEID_TO_ASN1(e_rab_setup_resp_p->e_rabs[i].gtp_teid, &item->value.choice.E_RABSetupItemBearerSURes.gTP_TEID); + item->value.choice.E_RABSetupItemBearerSURes.transportLayerAddress.buf = malloc(e_rab_setup_resp_p->e_rabs[i].eNB_addr.length); + memcpy(item->value.choice.E_RABSetupItemBearerSURes.transportLayerAddress.buf, + e_rab_setup_resp_p->e_rabs[i].eNB_addr.buffer, + e_rab_setup_resp_p->e_rabs[i].eNB_addr.length); + item->value.choice.E_RABSetupItemBearerSURes.transportLayerAddress.size = e_rab_setup_resp_p->e_rabs[i].eNB_addr.length; + item->value.choice.E_RABSetupItemBearerSURes.transportLayerAddress.bits_unused = 0; + S1AP_DEBUG("e_rab_setup_resp: e_rab ID %ld, teid %u, enb_addr %d.%d.%d.%d, SIZE %ld\n", + item->value.choice.E_RABSetupItemBearerSURes.e_RAB_ID, + e_rab_setup_resp_p->e_rabs[i].gtp_teid, + item->value.choice.E_RABSetupItemBearerSURes.transportLayerAddress.buf[0], + item->value.choice.E_RABSetupItemBearerSURes.transportLayerAddress.buf[1], + item->value.choice.E_RABSetupItemBearerSURes.transportLayerAddress.buf[2], + item->value.choice.E_RABSetupItemBearerSURes.transportLayerAddress.buf[3], + item->value.choice.E_RABSetupItemBearerSURes.transportLayerAddress.size); + ASN_SEQUENCE_ADD(&ie->value.choice.E_RABSetupListBearerSURes.list, item); + } + + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); } - - /* S1ap_E_RABSetupListBearerSURes_t e_RABSetupListBearerSURes; - memset(&e_RABSetupListBearerSURes, 0, sizeof(S1ap_E_RABSetupListBearerSURes_t)); + + /* optional */ + if (e_rab_setup_resp_p->nb_of_e_rabs_failed > 0) { + ie = (S1AP_E_RABSetupResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABSetupResponseIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_E_RABFailedToSetupListBearerSURes; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_E_RABSetupResponseIEs__value_PR_E_RABList; + + for (i = 0; i < e_rab_setup_resp_p->nb_of_e_rabs_failed; i++) { + S1AP_E_RABItemIEs_t *item; + item = (S1AP_E_RABItemIEs_t *)calloc(1, sizeof(S1AP_E_RABItemIEs_t)); + item->id = S1AP_ProtocolIE_ID_id_E_RABItem; + item->criticality = S1AP_Criticality_ignore; + item->value.present = S1AP_E_RABItemIEs__value_PR_E_RABItem; + item->value.choice.E_RABItem.e_RAB_ID = e_rab_setup_resp_p->e_rabs_failed[i].e_rab_id; + item->value.choice.E_RABItem.cause.present = e_rab_setup_resp_p->e_rabs_failed[i].cause; + + switch(item->value.choice.E_RABItem.cause.present) + { + case S1AP_Cause_PR_radioNetwork: + item->value.choice.E_RABItem.cause.choice.radioNetwork = e_rab_setup_resp_p->e_rabs_failed[i].cause_value; + break; + case S1AP_Cause_PR_transport: + item->value.choice.E_RABItem.cause.choice.transport = e_rab_setup_resp_p->e_rabs_failed[i].cause_value; + break; + case S1AP_Cause_PR_nas: + item->value.choice.E_RABItem.cause.choice.nas = e_rab_setup_resp_p->e_rabs_failed[i].cause_value; + break; + case S1AP_Cause_PR_protocol: + item->value.choice.E_RABItem.cause.choice.protocol = e_rab_setup_resp_p->e_rabs_failed[i].cause_value; + break; + case S1AP_Cause_PR_misc: + item->value.choice.E_RABItem.cause.choice.misc = e_rab_setup_resp_p->e_rabs_failed[i].cause_value; + break; + case S1AP_Cause_PR_NOTHING: + default: + break; + } + + S1AP_DEBUG("e_rab_modify_resp: failed e_rab ID %ld\n", item->value.choice.E_RABItem.e_RAB_ID); + ASN_SEQUENCE_ADD(&ie->value.choice.E_RABList.list, item); + } + + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } + + /* optional */ + if (0) { + ie = (S1AP_E_RABSetupResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABSetupResponseIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_CriticalityDiagnostics; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_E_RABSetupResponseIEs__value_PR_CriticalityDiagnostics; + // ie->value.choice.CriticalityDiagnostics = ; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } + + /* S1AP_E_RABSetupListBearerSURes_t e_RABSetupListBearerSURes; + memset(&e_RABSetupListBearerSURes, 0, sizeof(S1AP_E_RABSetupListBearerSURes_t)); if (s1ap_encode_s1ap_e_rabsetuplistbearersures(&e_RABSetupListBearerSURes, &initial_ies_p->e_RABSetupListBearerSURes.s1ap_E_RABSetupItemBearerSURes) < 0 ) return -1; - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1ap_E_RABSetupListBearerSURes, &e_RABSetupListBearerSURes); + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1AP_E_RABSetupListBearerSURes, &e_RABSetupListBearerSURes); */ fprintf(stderr, "start encode\n"); - if (s1ap_eNB_encode_pdu(&message, &buffer, &length) < 0) { + if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) { S1AP_ERROR("Failed to encode uplink transport\n"); /* Encode procedure has failed... */ return -1; } - - MSC_LOG_TX_MESSAGE( MSC_S1AP_ENB, MSC_S1AP_MME, @@ -827,32 +1254,30 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance, length, MSC_AS_TIME_FMT" E_RAN Setup successfulOutcome eNB_ue_s1ap_id %u mme_ue_s1ap_id %u", 0,0,//MSC_AS_TIME_ARGS(ctxt_pP), - initial_ies_p->eNB_UE_S1AP_ID, - initial_ies_p->mme_ue_s1ap_id); + e_rab_setup_resp_p->eNB_ue_s1ap_id, + ue_context_p->mme_ue_s1ap_id); /* UE associated signalling -> use the allocated stream */ s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance, ue_context_p->mme_ref->assoc_id, buffer, length, ue_context_p->tx_stream); - return ret; + return 0; } //------------------------------------------------------------------------------ int s1ap_eNB_e_rab_modify_resp(instance_t instance, - s1ap_e_rab_modify_resp_t *e_rab_modify_resp_p) + s1ap_e_rab_modify_resp_t *e_rab_modify_resp_p) //------------------------------------------------------------------------------ { - s1ap_eNB_instance_t *s1ap_eNB_instance_p = NULL; - struct s1ap_eNB_ue_context_s *ue_context_p = NULL; - - S1ap_E_RABModifyResponseIEs_t *initial_ies_p = NULL; - - s1ap_message message; + s1ap_eNB_instance_t *s1ap_eNB_instance_p = NULL; + struct s1ap_eNB_ue_context_s *ue_context_p = NULL; + S1AP_S1AP_PDU_t pdu; + S1AP_E_RABModifyResponse_t *out; + S1AP_E_RABModifyResponseIEs_t *ie; uint8_t *buffer = NULL; uint32_t length; - int ret = -1; int i; /* Retrieve the S1AP eNB instance associated with Mod_id */ @@ -862,7 +1287,7 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance, DevAssert(s1ap_eNB_instance_p != NULL); if ((ue_context_p = s1ap_eNB_get_ue_context(s1ap_eNB_instance_p, - e_rab_modify_resp_p->eNB_ue_s1ap_id)) == NULL) { + e_rab_modify_resp_p->eNB_ue_s1ap_id)) == NULL) { /* The context for this eNB ue s1ap id doesn't exist in the map of eNB UEs */ S1AP_WARN("Failed to find ue context associated with eNB ue s1ap id: 0x%06x\n", e_rab_modify_resp_p->eNB_ue_s1ap_id); @@ -881,87 +1306,107 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance, } /* Prepare the S1AP message to encode */ - memset(&message, 0, sizeof(s1ap_message)); + memset(&pdu, 0, sizeof(pdu)); + pdu.present = S1AP_S1AP_PDU_PR_successfulOutcome; + pdu.choice.successfulOutcome.procedureCode = S1AP_ProcedureCode_id_E_RABModify; + pdu.choice.successfulOutcome.criticality = S1AP_Criticality_reject; + pdu.choice.successfulOutcome.value.present = S1AP_SuccessfulOutcome__value_PR_E_RABModifyResponse; + out = &pdu.choice.successfulOutcome.value.choice.E_RABModifyResponse; - message.direction = S1AP_PDU_PR_successfulOutcome; - message.procedureCode = S1ap_ProcedureCode_id_E_RABModify; - message.criticality = S1ap_Criticality_reject; + /* mandatory */ + ie = (S1AP_E_RABModifyResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABModifyResponseIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_E_RABModifyResponseIEs__value_PR_MME_UE_S1AP_ID; + ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - initial_ies_p = &message.msg.s1ap_E_RABModifyResponseIEs; + /* mandatory */ + ie = (S1AP_E_RABModifyResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABModifyResponseIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_E_RABModifyResponseIEs__value_PR_ENB_UE_S1AP_ID; + ie->value.choice.ENB_UE_S1AP_ID = e_rab_modify_resp_p->eNB_ue_s1ap_id; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - initial_ies_p->eNB_UE_S1AP_ID = e_rab_modify_resp_p->eNB_ue_s1ap_id; - initial_ies_p->mme_ue_s1ap_id = ue_context_p->mme_ue_s1ap_id; + /* optional */ + if (e_rab_modify_resp_p->nb_of_e_rabs > 0) { + ie = (S1AP_E_RABModifyResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABModifyResponseIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_E_RABModifyListBearerModRes; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_E_RABModifyResponseIEs__value_PR_E_RABModifyListBearerModRes; - if ( e_rab_modify_resp_p->nb_of_e_rabs >= 1 ) - initial_ies_p->presenceMask |= S1AP_E_RABMODIFYRESPONSEIES_E_RABMODIFYLISTBEARERMODRES_PRESENT; + for (i = 0; i < e_rab_modify_resp_p->nb_of_e_rabs; i++) { + S1AP_E_RABModifyItemBearerModResIEs_t *item; + item = (S1AP_E_RABModifyItemBearerModResIEs_t *)calloc(1, sizeof(S1AP_E_RABModifyItemBearerModResIEs_t)); + item->id = S1AP_ProtocolIE_ID_id_E_RABModifyItemBearerModRes; + item->criticality = S1AP_Criticality_ignore; + item->value.present = S1AP_E_RABModifyItemBearerModResIEs__value_PR_E_RABModifyItemBearerModRes; + item->value.choice.E_RABModifyItemBearerModRes.e_RAB_ID = e_rab_modify_resp_p->e_rabs[i].e_rab_id; + S1AP_DEBUG("e_rab_modify_resp: modified e_rab ID %ld\n", item->value.choice.E_RABModifyItemBearerModRes.e_RAB_ID); + ASN_SEQUENCE_ADD(&ie->value.choice.E_RABModifyListBearerModRes.list, item); + } - for (i = 0; i < e_rab_modify_resp_p->nb_of_e_rabs; i++) { - S1ap_E_RABModifyItemBearerModRes_t *modify_item; - - modify_item = calloc(1, sizeof(S1ap_E_RABModifyItemBearerModRes_t)); - - modify_item->e_RAB_ID = e_rab_modify_resp_p->e_rabs[i].e_rab_id; - - S1AP_DEBUG("e_rab_modify_resp: modified e_rab ID %ld\n", - modify_item->e_RAB_ID); - - S1ap_IE_t *ie = s1ap_new_ie(S1ap_ProtocolIE_ID_id_E_RABModifyItemBearerModRes, - S1ap_Criticality_ignore, - &asn_DEF_S1ap_E_RABModifyItemBearerModRes, - modify_item); - - ASN_SEQUENCE_ADD(&initial_ies_p->e_RABModifyListBearerModRes.s1ap_E_RABModifyItemBearerModRes, - ie); + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); } - if ( e_rab_modify_resp_p->nb_of_e_rabs_failed >= 1 ) - initial_ies_p->presenceMask |= S1AP_E_RABMODIFYRESPONSEIES_E_RABFAILEDTOMODIFYLIST_PRESENT; + /* optional */ + if (e_rab_modify_resp_p->nb_of_e_rabs_failed > 0) { + ie = (S1AP_E_RABModifyResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABModifyResponseIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_E_RABFailedToModifyList; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_E_RABModifyResponseIEs__value_PR_E_RABList; - for (i = 0; i < e_rab_modify_resp_p->nb_of_e_rabs_failed; i++) { - S1ap_E_RABItem_t *failed_item; + for (i = 0; i < e_rab_modify_resp_p->nb_of_e_rabs_failed; i++) { + S1AP_E_RABItemIEs_t *item; + item = (S1AP_E_RABItemIEs_t *)calloc(1, sizeof(S1AP_E_RABItemIEs_t)); + item->id = S1AP_ProtocolIE_ID_id_E_RABItem; + item->criticality = S1AP_Criticality_ignore; + item->value.present = S1AP_E_RABItemIEs__value_PR_E_RABItem; + item->value.choice.E_RABItem.e_RAB_ID = e_rab_modify_resp_p->e_rabs_failed[i].e_rab_id; + item->value.choice.E_RABItem.cause.present = e_rab_modify_resp_p->e_rabs_failed[i].cause; - failed_item = calloc(1, sizeof(S1ap_E_RABItem_t)); + switch(item->value.choice.E_RABItem.cause.present) + { + case S1AP_Cause_PR_radioNetwork: + item->value.choice.E_RABItem.cause.choice.radioNetwork = e_rab_modify_resp_p->e_rabs_failed[i].cause_value; + break; + case S1AP_Cause_PR_transport: + item->value.choice.E_RABItem.cause.choice.transport = e_rab_modify_resp_p->e_rabs_failed[i].cause_value; + break; + case S1AP_Cause_PR_nas: + item->value.choice.E_RABItem.cause.choice.nas = e_rab_modify_resp_p->e_rabs_failed[i].cause_value; + break; + case S1AP_Cause_PR_protocol: + item->value.choice.E_RABItem.cause.choice.protocol = e_rab_modify_resp_p->e_rabs_failed[i].cause_value; + break; + case S1AP_Cause_PR_misc: + item->value.choice.E_RABItem.cause.choice.misc = e_rab_modify_resp_p->e_rabs_failed[i].cause_value; + break; + case S1AP_Cause_PR_NOTHING: + default: + break; + } - failed_item->e_RAB_ID = e_rab_modify_resp_p->e_rabs_failed[i].e_rab_id; - switch(e_rab_modify_resp_p->e_rabs_failed[i].cause) - { - case S1AP_CAUSE_RADIO_NETWORK: - failed_item->cause.present = S1ap_Cause_PR_radioNetwork; - failed_item->cause.choice.radioNetwork = e_rab_modify_resp_p->e_rabs_failed[i].cause_value; - break; - case S1AP_CAUSE_TRANSPORT: - failed_item->cause.present = S1ap_Cause_PR_transport; - failed_item->cause.choice.transport = e_rab_modify_resp_p->e_rabs_failed[i].cause_value; - break; - case S1AP_CAUSE_NAS: - failed_item->cause.present = S1ap_Cause_PR_nas; - failed_item->cause.choice.nas = e_rab_modify_resp_p->e_rabs_failed[i].cause_value; - break; - case S1AP_CAUSE_PROTOCOL: - failed_item->cause.present = S1ap_Cause_PR_protocol; - failed_item->cause.choice.protocol = e_rab_modify_resp_p->e_rabs_failed[i].cause_value; - break; - case S1AP_CAUSE_MISC: - failed_item->cause.present = S1ap_Cause_PR_misc; - failed_item->cause.choice.misc = e_rab_modify_resp_p->e_rabs_failed[i].cause_value; - break; - default: - break; + S1AP_DEBUG("e_rab_modify_resp: failed e_rab ID %ld\n", item->value.choice.E_RABItem.e_RAB_ID); + ASN_SEQUENCE_ADD(&ie->value.choice.E_RABList.list, item); } - S1AP_DEBUG("e_rab_modify_resp: failed e_rab ID %ld\n", - failed_item->e_RAB_ID); - S1ap_IE_t *ie = s1ap_new_ie(S1ap_ProtocolIE_ID_id_E_RABItem, - S1ap_Criticality_ignore, - &asn_DEF_S1ap_E_RABItem, - failed_item); + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } - ASN_SEQUENCE_ADD(&initial_ies_p->e_RABFailedToModifyList.s1ap_E_RABItem, - ie); + /* optional */ + if (0) { + ie = (S1AP_E_RABModifyResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABModifyResponseIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_CriticalityDiagnostics; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_E_RABModifyResponseIEs__value_PR_CriticalityDiagnostics; + // ie->value.choice.CriticalityDiagnostics = ; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); } fprintf(stderr, "start encode\n"); - if (s1ap_eNB_encode_pdu(&message, &buffer, &length) < 0) { + if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) { S1AP_ERROR("Failed to encode uplink transport\n"); /* Encode procedure has failed... */ return -1; @@ -974,123 +1419,155 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance, length, MSC_AS_TIME_FMT" E_RAN Modify successful Outcome eNB_ue_s1ap_id %u mme_ue_s1ap_id %u", 0,0,//MSC_AS_TIME_ARGS(ctxt_pP), - initial_ies_p->eNB_UE_S1AP_ID, - initial_ies_p->mme_ue_s1ap_id); + e_rab_modify_resp_p->eNB_ue_s1ap_id, + ue_context_p->mme_ue_s1ap_id); /* UE associated signalling -> use the allocated stream */ s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance, ue_context_p->mme_ref->assoc_id, buffer, length, ue_context_p->tx_stream); - - return ret; + return 0; } //------------------------------------------------------------------------------ int s1ap_eNB_e_rab_release_resp(instance_t instance, - s1ap_e_rab_release_resp_t *e_rab_release_resp_p) + s1ap_e_rab_release_resp_t *e_rab_release_resp_p) //------------------------------------------------------------------------------ { - s1ap_eNB_instance_t *s1ap_eNB_instance_p = NULL; - struct s1ap_eNB_ue_context_s *ue_context_p = NULL; - - S1ap_E_RABReleaseResponseIEs_t *release_response_ies_p = NULL; - - s1ap_message message; - + s1ap_eNB_instance_t *s1ap_eNB_instance_p = NULL; + struct s1ap_eNB_ue_context_s *ue_context_p = NULL; + S1AP_S1AP_PDU_t pdu; + S1AP_E_RABReleaseResponse_t *out; + S1AP_E_RABReleaseResponseIEs_t *ie; uint8_t *buffer = NULL; uint32_t length; - int ret = -1; int i; + /* Retrieve the S1AP eNB instance associated with Mod_id */ s1ap_eNB_instance_p = s1ap_eNB_get_instance(instance); DevAssert(e_rab_release_resp_p != NULL); DevAssert(s1ap_eNB_instance_p != NULL); - /* Prepare the S1AP message to encode */ - memset(&message, 0, sizeof(s1ap_message)); - - message.direction = S1AP_PDU_PR_successfulOutcome; - message.procedureCode = S1ap_ProcedureCode_id_E_RABRelease; - message.criticality = S1ap_Criticality_ignore; - if ((ue_context_p = s1ap_eNB_get_ue_context(s1ap_eNB_instance_p, - e_rab_release_resp_p->eNB_ue_s1ap_id)) == NULL) { + e_rab_release_resp_p->eNB_ue_s1ap_id)) == NULL) { /* The context for this eNB ue s1ap id doesn't exist in the map of eNB UEs */ S1AP_WARN("Failed to find ue context associated with eNB ue s1ap id: %u\n", - e_rab_release_resp_p->eNB_ue_s1ap_id); + e_rab_release_resp_p->eNB_ue_s1ap_id); return -1; } - release_response_ies_p = &message.msg.s1ap_E_RABReleaseResponseIEs; - release_response_ies_p->eNB_UE_S1AP_ID = e_rab_release_resp_p->eNB_ue_s1ap_id; - release_response_ies_p->mme_ue_s1ap_id = ue_context_p->mme_ue_s1ap_id; + /* Prepare the S1AP message to encode */ + memset(&pdu, 0, sizeof(pdu)); + pdu.present = S1AP_S1AP_PDU_PR_successfulOutcome; + pdu.choice.successfulOutcome.procedureCode = S1AP_ProcedureCode_id_E_RABRelease; + pdu.choice.successfulOutcome.criticality = S1AP_Criticality_reject; + pdu.choice.successfulOutcome.value.present = S1AP_SuccessfulOutcome__value_PR_E_RABReleaseResponse; + out = &pdu.choice.successfulOutcome.value.choice.E_RABReleaseResponse; - if ( e_rab_release_resp_p->nb_of_e_rabs_released > 0 ) - release_response_ies_p->presenceMask |= S1AP_E_RABRELEASERESPONSEIES_E_RABRELEASELISTBEARERRELCOMP_PRESENT; + /* mandatory */ + ie = (S1AP_E_RABReleaseResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABReleaseResponseIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_E_RABReleaseResponseIEs__value_PR_MME_UE_S1AP_ID; + ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - //release - for (i = 0; i < e_rab_release_resp_p->nb_of_e_rabs_released; i++) { + /* mandatory */ + ie = (S1AP_E_RABReleaseResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABReleaseResponseIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_E_RABReleaseResponseIEs__value_PR_ENB_UE_S1AP_ID; + ie->value.choice.ENB_UE_S1AP_ID = e_rab_release_resp_p->eNB_ue_s1ap_id; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - S1ap_E_RABReleaseItemBearerRelComp_t *new_item; + /* optional */ + if (e_rab_release_resp_p->nb_of_e_rabs_released > 0) { + ie = (S1AP_E_RABReleaseResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABReleaseResponseIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_E_RABReleaseListBearerRelComp; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_E_RABReleaseResponseIEs__value_PR_E_RABReleaseListBearerRelComp; - new_item = calloc(1, sizeof(S1ap_E_RABReleaseItemBearerRelComp_t)); - - new_item->e_RAB_ID = e_rab_release_resp_p->e_rab_release[i].e_rab_id; - - S1AP_DEBUG("e_rab_release_resp: e_rab ID %ld\n",new_item->e_RAB_ID); - - ASN_SEQUENCE_ADD(&release_response_ies_p->e_RABReleaseListBearerRelComp.s1ap_E_RABReleaseItemBearerRelComp, - new_item); + for (i = 0; i < e_rab_release_resp_p->nb_of_e_rabs_released; i++) { + S1AP_E_RABReleaseItemBearerRelCompIEs_t *item; + item = (S1AP_E_RABReleaseItemBearerRelCompIEs_t *)calloc(1, sizeof(S1AP_E_RABReleaseItemBearerRelCompIEs_t)); + item->id = S1AP_ProtocolIE_ID_id_E_RABReleaseItemBearerRelComp; + item->criticality = S1AP_Criticality_ignore; + item->value.present = S1AP_E_RABReleaseItemBearerRelCompIEs__value_PR_E_RABReleaseItemBearerRelComp; + item->value.choice.E_RABReleaseItemBearerRelComp.e_RAB_ID = e_rab_release_resp_p->e_rab_release[i].e_rab_id; + S1AP_DEBUG("e_rab_release_resp: e_rab ID %ld\n", item->value.choice.E_RABReleaseItemBearerRelComp.e_RAB_ID); + ASN_SEQUENCE_ADD(&ie->value.choice.E_RABReleaseListBearerRelComp.list, item); + } + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); } - if ( e_rab_release_resp_p->nb_of_e_rabs_failed > 0 ) - release_response_ies_p->presenceMask |= S1AP_E_RABRELEASERESPONSEIES_E_RABFAILEDTORELEASELIST_PRESENT; + /* optional */ + if (e_rab_release_resp_p->nb_of_e_rabs_failed > 0) { + ie = (S1AP_E_RABReleaseResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABReleaseResponseIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_E_RABFailedToReleaseList; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_E_RABReleaseResponseIEs__value_PR_E_RABList; - //release failed - for (i = 0; i < e_rab_release_resp_p->nb_of_e_rabs_failed; i++) { - S1ap_E_RABItem_t *new_rabitem; - new_rabitem = calloc(1, sizeof(S1ap_E_RABItem_t)); - //e_rab_id - new_rabitem->e_RAB_ID = e_rab_release_resp_p->e_rabs_failed[i].e_rab_id; - //cause - switch(e_rab_release_resp_p->e_rabs_failed[i].cause) + for (i = 0; i < e_rab_release_resp_p->nb_of_e_rabs_failed; i++) { + S1AP_E_RABItemIEs_t *item; + item = (S1AP_E_RABItemIEs_t *)calloc(1, sizeof(S1AP_E_RABItemIEs_t)); + item->id = S1AP_ProtocolIE_ID_id_E_RABItem; + item->criticality = S1AP_Criticality_ignore; + item->value.present = S1AP_E_RABItemIEs__value_PR_E_RABItem; + item->value.choice.E_RABItem.e_RAB_ID = e_rab_release_resp_p->e_rabs_failed[i].e_rab_id; + item->value.choice.E_RABItem.cause.present = e_rab_release_resp_p->e_rabs_failed[i].cause; + + switch(item->value.choice.E_RABItem.cause.present) { - case S1AP_CAUSE_NOTHING: - new_rabitem->cause.present = S1ap_Cause_PR_NOTHING; - break; - - case S1AP_CAUSE_RADIO_NETWORK: - new_rabitem->cause.present = S1ap_Cause_PR_radioNetwork; - new_rabitem->cause.choice.radioNetwork = e_rab_release_resp_p->e_rabs_failed[i].cause_value; - break; - - case S1AP_CAUSE_TRANSPORT: - new_rabitem->cause.present = S1ap_Cause_PR_transport; - new_rabitem->cause.choice.transport = e_rab_release_resp_p->e_rabs_failed[i].cause_value; - break; - - case S1AP_CAUSE_NAS: - new_rabitem->cause.present = S1ap_Cause_PR_nas; - new_rabitem->cause.choice.nas = e_rab_release_resp_p->e_rabs_failed[i].cause_value; - break; - - case S1AP_CAUSE_PROTOCOL: - new_rabitem->cause.present = S1ap_Cause_PR_protocol; - new_rabitem->cause.choice.protocol = e_rab_release_resp_p->e_rabs_failed[i].cause_value; - break; - - case S1AP_CAUSE_MISC: + case S1AP_Cause_PR_radioNetwork: + item->value.choice.E_RABItem.cause.choice.radioNetwork = e_rab_release_resp_p->e_rabs_failed[i].cause_value; + break; + case S1AP_Cause_PR_transport: + item->value.choice.E_RABItem.cause.choice.transport = e_rab_release_resp_p->e_rabs_failed[i].cause_value; + break; + case S1AP_Cause_PR_nas: + item->value.choice.E_RABItem.cause.choice.nas = e_rab_release_resp_p->e_rabs_failed[i].cause_value; + break; + case S1AP_Cause_PR_protocol: + item->value.choice.E_RABItem.cause.choice.protocol = e_rab_release_resp_p->e_rabs_failed[i].cause_value; + break; + case S1AP_Cause_PR_misc: + item->value.choice.E_RABItem.cause.choice.misc = e_rab_release_resp_p->e_rabs_failed[i].cause_value; + break; + case S1AP_Cause_PR_NOTHING: default: - new_rabitem->cause.present = S1ap_Cause_PR_misc; - new_rabitem->cause.choice.misc = e_rab_release_resp_p->e_rabs_failed[i].cause_value; - break; + break; } - S1AP_DEBUG("e_rab_release_resp: failed e_rab ID %ld\n",new_rabitem->e_RAB_ID); - ASN_SEQUENCE_ADD(&release_response_ies_p->e_RABFailedToReleaseList.s1ap_E_RABItem, new_rabitem); + + ASN_SEQUENCE_ADD(&ie->value.choice.E_RABList.list, item); + } + + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); } + /* optional */ + if (0) { + ie = (S1AP_E_RABReleaseResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABReleaseResponseIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_CriticalityDiagnostics; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_E_RABReleaseResponseIEs__value_PR_CriticalityDiagnostics; + // ie->value.choice.CriticalityDiagnostics = ; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } + + /* optional */ +#if (S1AP_VERSION >= MAKE_VERSION(12, 0, 0)) + if(0) { + ie = (S1AP_E_RABReleaseResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABReleaseResponseIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_UserLocationInformation; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_E_RABReleaseResponseIEs__value_PR_UserLocationInformation; + // ie->value.choice.UserLocationInformation = ; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + } +#endif /* #if (S1AP_VERSION >= MAKE_VERSION(14, 0, 0)) */ + fprintf(stderr, "start encode\n"); - if (s1ap_eNB_encode_pdu(&message, &buffer, &length) < 0) { + if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) { S1AP_ERROR("Failed to encode release response\n"); /* Encode procedure has failed... */ return -1; @@ -1112,7 +1589,7 @@ int s1ap_eNB_e_rab_release_resp(instance_t instance, length, ue_context_p->tx_stream); S1AP_INFO("e_rab_release_response sended eNB_UE_S1AP_ID %d mme_ue_s1ap_id %d nb_of_e_rabs_released %d nb_of_e_rabs_failed %d\n", - e_rab_release_resp_p->eNB_ue_s1ap_id, ue_context_p->mme_ue_s1ap_id,e_rab_release_resp_p->nb_of_e_rabs_released,e_rab_release_resp_p->nb_of_e_rabs_failed); + e_rab_release_resp_p->eNB_ue_s1ap_id, ue_context_p->mme_ue_s1ap_id,e_rab_release_resp_p->nb_of_e_rabs_released,e_rab_release_resp_p->nb_of_e_rabs_failed); - return ret; + return 0; } diff --git a/openair3/S1AP/s1ap_eNB_nas_procedures.h b/openair3/S1AP/s1ap_eNB_nas_procedures.h index bb2a0488bf..a7f144c0ca 100644 --- a/openair3/S1AP/s1ap_eNB_nas_procedures.h +++ b/openair3/S1AP/s1ap_eNB_nas_procedures.h @@ -23,14 +23,14 @@ #define S1AP_ENB_NAS_PROCEDURES_H_ int s1ap_eNB_handle_nas_downlink( - const uint32_t assoc_id, - const uint32_t stream, - struct s1ap_message_s* message_p); + uint32_t assoc_id, + uint32_t stream, + S1AP_S1AP_PDU_t *pdu); int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_p); -void s1ap_eNB_nas_non_delivery_ind(instance_t instance, - s1ap_nas_non_delivery_ind_t *s1ap_nas_non_delivery_ind); +int s1ap_eNB_nas_non_delivery_ind(instance_t instance, + s1ap_nas_non_delivery_ind_t *s1ap_nas_non_delivery_ind); int s1ap_eNB_handle_nas_first_req( instance_t instance, s1ap_nas_first_req_t *s1ap_nas_first_req_p); @@ -45,8 +45,8 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance, s1ap_e_rab_setup_resp_t *e_rab_setup_resp_p); int s1ap_eNB_e_rab_modify_resp(instance_t instance, - s1ap_e_rab_modify_resp_t *e_rab_modify_resp_p); + s1ap_e_rab_modify_resp_t *e_rab_modify_resp_p); int s1ap_eNB_e_rab_release_resp(instance_t instance, - s1ap_e_rab_release_resp_t *e_rab_release_resp_p); + s1ap_e_rab_release_resp_t *e_rab_release_resp_p); #endif /* S1AP_ENB_NAS_PROCEDURES_H_ */ diff --git a/openair3/S1AP/s1ap_eNB_overload.c b/openair3/S1AP/s1ap_eNB_overload.c index 82167bfeeb..cf208fc16e 100644 --- a/openair3/S1AP/s1ap_eNB_overload.c +++ b/openair3/S1AP/s1ap_eNB_overload.c @@ -33,7 +33,6 @@ #include "intertask_interface.h" #include "s1ap_common.h" -#include "s1ap_ies_defs.h" #include "s1ap_eNB_defs.h" #include "s1ap_eNB.h" @@ -44,20 +43,24 @@ #include "assertions.h" -int s1ap_eNB_handle_overload_start(uint32_t assoc_id, - uint32_t stream, - struct s1ap_message_s *message_p) +int s1ap_eNB_handle_overload_start(uint32_t assoc_id, + uint32_t stream, + S1AP_S1AP_PDU_t *pdu) { - S1ap_OverloadStartIEs_t *overload_start_p; s1ap_eNB_mme_data_t *mme_desc_p; + S1AP_OverloadStart_t *container; + S1AP_OverloadStartIEs_t *ie; - DevAssert(message_p != NULL); + DevAssert(pdu != NULL); - overload_start_p = &message_p->msg.s1ap_OverloadStartIEs; + container = &pdu->choice.initiatingMessage.value.choice.OverloadStart; - DevCheck(overload_start_p->overloadResponse.present == - S1ap_OverloadResponse_PR_overloadAction, - S1ap_OverloadResponse_PR_overloadAction, 0, 0); + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_OverloadStartIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_OverloadResponse, true); + + DevCheck(ie->value.choice.OverloadResponse.present == + S1AP_OverloadResponse_PR_overloadAction, + S1AP_OverloadResponse_PR_overloadAction, 0, 0); /* Non UE-associated signalling -> stream 0 */ DevCheck(stream == 0, stream, 0, 0); @@ -72,21 +75,20 @@ int s1ap_eNB_handle_overload_start(uint32_t assoc_id, */ mme_desc_p->state = S1AP_ENB_OVERLOAD; mme_desc_p->overload_state = - overload_start_p->overloadResponse.choice.overloadAction; + ie->value.choice.OverloadResponse.choice.overloadAction; return 0; } -int s1ap_eNB_handle_overload_stop(uint32_t assoc_id, - uint32_t stream, - struct s1ap_message_s *message_p) +int s1ap_eNB_handle_overload_stop(uint32_t assoc_id, + uint32_t stream, + S1AP_S1AP_PDU_t *pdu) { /* We received Overload stop message, meaning that the MME is no more * overloaded. This is an empty message, with only message header and no * Information Element. */ - - DevAssert(message_p != NULL); + DevAssert(pdu != NULL); s1ap_eNB_mme_data_t *mme_desc_p; diff --git a/openair3/S1AP/s1ap_eNB_overload.h b/openair3/S1AP/s1ap_eNB_overload.h index 1b0ee443de..8133345dee 100644 --- a/openair3/S1AP/s1ap_eNB_overload.h +++ b/openair3/S1AP/s1ap_eNB_overload.h @@ -28,9 +28,9 @@ // int s1ap_eNB_handle_overload_start(eNB_mme_desc_t *eNB_desc_p, // sctp_queue_item_t *packet_p, // struct s1ap_message_s *message_p); -int s1ap_eNB_handle_overload_start(uint32_t assoc_id, - uint32_t stream, - struct s1ap_message_s *message_p); +int s1ap_eNB_handle_overload_start(uint32_t assoc_id, + uint32_t stream, + S1AP_S1AP_PDU_t *pdu); /** * \brief Handle an overload stop message @@ -38,8 +38,8 @@ int s1ap_eNB_handle_overload_start(uint32_t assoc_id, // int s1ap_eNB_handle_overload_stop(eNB_mme_desc_t *eNB_desc_p, // sctp_queue_item_t *packet_p, // struct s1ap_message_s *message_p); -int s1ap_eNB_handle_overload_stop(uint32_t assoc_id, - uint32_t stream, - struct s1ap_message_s *message_p); +int s1ap_eNB_handle_overload_stop(uint32_t assoc_id, + uint32_t stream, + S1AP_S1AP_PDU_t *pdu); #endif /* S1AP_ENB_OVERLOAD_H_ */ diff --git a/openair3/S1AP/s1ap_eNB_trace.c b/openair3/S1AP/s1ap_eNB_trace.c index e640c9292a..653aa98ccd 100644 --- a/openair3/S1AP/s1ap_eNB_trace.c +++ b/openair3/S1AP/s1ap_eNB_trace.c @@ -28,7 +28,6 @@ #include "s1ap_eNB_default_values.h" #include "s1ap_common.h" -#include "s1ap_ies_defs.h" #include "s1ap_eNB_defs.h" #include "s1ap_eNB.h" @@ -40,29 +39,60 @@ static void s1ap_eNB_generate_trace_failure(struct s1ap_eNB_ue_context_s *ue_desc_p, - S1ap_E_UTRAN_Trace_ID_t *trace_id, - S1ap_Cause_t *cause_p) + S1AP_E_UTRAN_Trace_ID_t *trace_id, + S1AP_Cause_t *cause_p) { - s1ap_message message; - S1ap_TraceFailureIndicationIEs_t *trace_failure_p; - uint8_t *buffer; - uint32_t length; + S1AP_S1AP_PDU_t pdu; + S1AP_TraceFailureIndication_t *out; + S1AP_TraceFailureIndicationIEs_t *ie; + uint8_t *buffer = NULL; + uint32_t length; DevAssert(ue_desc_p != NULL); DevAssert(trace_id != NULL); DevAssert(cause_p != NULL); - memset(&message, 0, sizeof(s1ap_message)); + /* Prepare the S1AP message to encode */ + memset(&pdu, 0, sizeof(pdu)); + pdu.present = S1AP_S1AP_PDU_PR_initiatingMessage; + pdu.choice.initiatingMessage.procedureCode = S1AP_ProcedureCode_id_TraceFailureIndication; + pdu.choice.initiatingMessage.criticality = S1AP_Criticality_ignore; + pdu.choice.initiatingMessage.value.present = S1AP_InitiatingMessage__value_PR_TraceFailureIndication; + out = &pdu.choice.initiatingMessage.value.choice.TraceFailureIndication; - trace_failure_p = &message.msg.s1ap_TraceFailureIndicationIEs; + /* mandatory */ + ie = (S1AP_TraceFailureIndicationIEs_t *)calloc(1, sizeof(S1AP_TraceFailureIndicationIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID; + ie->criticality = S1AP_Criticality_reject; + ie->value.present = S1AP_TraceFailureIndicationIEs__value_PR_MME_UE_S1AP_ID; + ie->value.choice.MME_UE_S1AP_ID = ue_desc_p->mme_ue_s1ap_id; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - trace_failure_p->mme_ue_s1ap_id = ue_desc_p->mme_ue_s1ap_id; - trace_failure_p->eNB_UE_S1AP_ID = ue_desc_p->eNB_ue_s1ap_id; + /* mandatory */ + ie = (S1AP_TraceFailureIndicationIEs_t *)calloc(1, sizeof(S1AP_TraceFailureIndicationIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID; + ie->criticality = S1AP_Criticality_reject; + ie->value.present = S1AP_TraceFailureIndicationIEs__value_PR_ENB_UE_S1AP_ID; + ie->value.choice.ENB_UE_S1AP_ID = ue_desc_p->eNB_ue_s1ap_id; + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - memcpy(&trace_failure_p->e_UTRAN_Trace_ID, trace_id, sizeof(S1ap_E_UTRAN_Trace_ID_t)); - memcpy(&trace_failure_p->cause, cause_p, sizeof(S1ap_Cause_t)); + /* mandatory */ + ie = (S1AP_TraceFailureIndicationIEs_t *)calloc(1, sizeof(S1AP_TraceFailureIndicationIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_E_UTRAN_Trace_ID; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_TraceFailureIndicationIEs__value_PR_E_UTRAN_Trace_ID; + memcpy(&ie->value.choice.E_UTRAN_Trace_ID, trace_id, sizeof(S1AP_E_UTRAN_Trace_ID_t)); + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - if (s1ap_eNB_encode_pdu(&message, &buffer, &length) < 0) { + /* mandatory */ + ie = (S1AP_TraceFailureIndicationIEs_t *)calloc(1, sizeof(S1AP_TraceFailureIndicationIEs_t)); + ie->id = S1AP_ProtocolIE_ID_id_Cause; + ie->criticality = S1AP_Criticality_ignore; + ie->value.present = S1AP_TraceFailureIndicationIEs__value_PR_Cause; + memcpy(&ie->value.choice.Cause, cause_p, sizeof(S1AP_Cause_t)); + ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); + + if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) { return; } @@ -71,46 +101,46 @@ void s1ap_eNB_generate_trace_failure(struct s1ap_eNB_ue_context_s *ue_desc_p, length, ue_desc_p->tx_stream); } -int s1ap_eNB_handle_trace_start(uint32_t assoc_id, - uint32_t stream, - struct s1ap_message_s *message_p) +int s1ap_eNB_handle_trace_start(uint32_t assoc_id, + uint32_t stream, + S1AP_S1AP_PDU_t *pdu) { - S1ap_TraceStartIEs_t *trace_start_p; + S1AP_TraceStart_t *container; + S1AP_TraceStartIEs_t *ie; struct s1ap_eNB_ue_context_s *ue_desc_p; struct s1ap_eNB_mme_data_s *mme_ref_p; - DevAssert(message_p != NULL); + DevAssert(pdu != NULL); - trace_start_p = &message_p->msg.s1ap_TraceStartIEs; + container = &pdu->choice.initiatingMessage.value.choice.TraceStart; + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_TraceStartIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID, TRUE); mme_ref_p = s1ap_eNB_get_MME(NULL, assoc_id, 0); DevAssert(mme_ref_p != NULL); if ((ue_desc_p = s1ap_eNB_get_ue_context(mme_ref_p->s1ap_eNB_instance, - trace_start_p->eNB_UE_S1AP_ID)) == NULL) { + ie->value.choice.ENB_UE_S1AP_ID)) == NULL) { /* Could not find context associated with this eNB_ue_s1ap_id -> generate * trace failure indication. */ - S1ap_E_UTRAN_Trace_ID_t trace_id; - S1ap_Cause_t cause; - - memset(&trace_id, 0, sizeof(S1ap_E_UTRAN_Trace_ID_t)); - memset(&cause, 0, sizeof(S1ap_Cause_t)); - - cause.present = S1ap_Cause_PR_radioNetwork; - cause.choice.radioNetwork = S1ap_CauseRadioNetwork_unknown_pair_ue_s1ap_id; - + S1AP_E_UTRAN_Trace_ID_t trace_id; + S1AP_Cause_t cause; + memset(&trace_id, 0, sizeof(S1AP_E_UTRAN_Trace_ID_t)); + memset(&cause, 0, sizeof(S1AP_Cause_t)); + cause.present = S1AP_Cause_PR_radioNetwork; + cause.choice.radioNetwork = S1AP_CauseRadioNetwork_unknown_pair_ue_s1ap_id; s1ap_eNB_generate_trace_failure(ue_desc_p, &trace_id, &cause); } return 0; } -int s1ap_eNB_handle_deactivate_trace(uint32_t assoc_id, - uint32_t stream, - struct s1ap_message_s *message_p) +int s1ap_eNB_handle_deactivate_trace(uint32_t assoc_id, + uint32_t stream, + S1AP_S1AP_PDU_t *message_p) { - // S1ap_DeactivateTraceIEs_t *deactivate_trace_p; + // S1AP_DeactivateTraceIEs_t *deactivate_trace_p; // // deactivate_trace_p = &message_p->msg.deactivateTraceIEs; diff --git a/openair3/S1AP/s1ap_eNB_trace.h b/openair3/S1AP/s1ap_eNB_trace.h index 922197afb4..75f7a59dc4 100644 --- a/openair3/S1AP/s1ap_eNB_trace.h +++ b/openair3/S1AP/s1ap_eNB_trace.h @@ -32,15 +32,15 @@ // int s1ap_eNB_handle_trace_start(eNB_mme_desc_t *eNB_desc_p, // sctp_queue_item_t *packet_p, // struct s1ap_message_s *message_p); -int s1ap_eNB_handle_trace_start(uint32_t assoc_id, - uint32_t stream, - struct s1ap_message_s *message_p); +int s1ap_eNB_handle_trace_start(uint32_t assoc_id, + uint32_t stream, + S1AP_S1AP_PDU_t *pdu); // int s1ap_eNB_handle_deactivate_trace(eNB_mme_desc_t *eNB_desc_p, // sctp_queue_item_t *packet_p, // struct s1ap_message_s *message_p); -int s1ap_eNB_handle_deactivate_trace(uint32_t assoc_id, - uint32_t stream, - struct s1ap_message_s *message_p); +int s1ap_eNB_handle_deactivate_trace(uint32_t assoc_id, + uint32_t stream, + S1AP_S1AP_PDU_t *pdu); #endif /* S1AP_ENB_TRACE_H_ */ diff --git a/openair3/SCTP/sctp_common.h b/openair3/SCTP/sctp_common.h index f88c07730c..265a13bec0 100644 --- a/openair3/SCTP/sctp_common.h +++ b/openair3/SCTP/sctp_common.h @@ -35,7 +35,7 @@ #include #if defined(ENB_MODE) -# include "UTIL/LOG/log.h" +# include "common/utils/LOG/log.h" # define SCTP_ERROR(x, args...) LOG_E(SCTP, x, ##args) # define SCTP_WARN(x, args...) LOG_W(SCTP, x, ##args) # define SCTP_DEBUG(x, args...) LOG_I(SCTP, x, ##args) diff --git a/openair3/SCTP/sctp_eNB_task.c b/openair3/SCTP/sctp_eNB_task.c index 256bee0cd1..168eb58b37 100644 --- a/openair3/SCTP/sctp_eNB_task.c +++ b/openair3/SCTP/sctp_eNB_task.c @@ -203,19 +203,6 @@ sctp_handle_new_association_req( if (s > 0 ) { if (((struct sockaddr_in*)ifa->ifa_addr)->sin_addr.s_addr == in.s_addr) { -#if 0 - memset(&ifr, 0, sizeof(ifr)); - snprintf(ifr.ifr_name, sizeof(ifr.ifr_name), "%s",ifa->ifa_name); - - if (setsockopt(sd, SOL_SOCKET, SO_BINDTODEVICE, (void *)&ifr, sizeof(ifr)) < 0) { - SCTP_ERROR("Setsockopt SOL_SOCKET failed: %s\n", - strerror(errno)); - } else { - SCTP_DEBUG("Setsockopt SOL_SOCKET socket bound to : %s\n", - ifa->ifa_name); - } - -#else struct sockaddr_in locaddr; locaddr.sin_family = AF_INET; locaddr.sin_port = htons(sctp_new_association_req_p->port); @@ -228,8 +215,6 @@ sctp_handle_new_association_req( SCTP_DEBUG("sctp_bindx SCTP_BINDX_ADD_ADDR socket bound to : %s\n", inet_ntoa(locaddr.sin_addr)); } - -#endif break; } diff --git a/openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb.band7.tm1.usrpb210.epc.local.conf b/openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb.band7.tm1.usrpb210.epc.local.conf index e864f47edb..2571db70a0 100644 --- a/openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb.band7.tm1.usrpb210.epc.local.conf +++ b/openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb.band7.tm1.usrpb210.epc.local.conf @@ -45,7 +45,7 @@ eNBs = pucch_delta_shift = 1; pucch_nRB_CQI = 1; pucch_nCS_AN = 0; - pucch_n1_AN = 32; + pucch_n1_AN = 0; pdsch_referenceSignalPower = -26; pdsch_p_b = 0; pusch_n_SB = 1; diff --git a/openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb1.conf b/openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb1.conf index bd9014670e..e71e7e03f5 100755 --- a/openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb1.conf +++ b/openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb1.conf @@ -44,7 +44,7 @@ eNBs = pucch_delta_shift = 1; pucch_nRB_CQI = 1; pucch_nCS_AN = 0; - pucch_n1_AN = 32; + pucch_n1_AN = 0; pdsch_referenceSignalPower = -26; pdsch_p_b = 0; pusch_n_SB = 1; diff --git a/openair3/TEST/EPC_TEST/generate_scenario.h b/openair3/TEST/EPC_TEST/generate_scenario.h index 09fa5318ef..0f240f483d 100644 --- a/openair3/TEST/EPC_TEST/generate_scenario.h +++ b/openair3/TEST/EPC_TEST/generate_scenario.h @@ -41,7 +41,7 @@ #ifdef CMAKER #include "SystemInformationBlockType2.h" #else -#include "RRC/LITE/MESSAGES/SystemInformationBlockType2.h" +#include "RRC/LTE/MESSAGES/SystemInformationBlockType2.h" #endif #define IPV4_STR_ADDR_TO_INT_NWBO(AdDr_StR,NwBo,MeSsAgE ) do {\ diff --git a/openair3/TEST/EPC_TEST/play_scenario.c b/openair3/TEST/EPC_TEST/play_scenario.c index edb4323d5f..9f922d8516 100644 --- a/openair3/TEST/EPC_TEST/play_scenario.c +++ b/openair3/TEST/EPC_TEST/play_scenario.c @@ -1206,7 +1206,7 @@ int main( int argc, char **argv ) logInit(); set_glog(LOG_TRACE, LOG_MED); - itti_init(TASK_MAX, THREAD_MAX, MESSAGES_ID_MAX, tasks_info, messages_info, messages_definition_xml, NULL); + itti_init(TASK_MAX, THREAD_MAX, MESSAGES_ID_MAX, tasks_info, messages_info); set_comp_log(ENB_APP, LOG_TRACE, LOG_MED, 1); set_comp_log(S1AP, LOG_TRACE, LOG_MED, 1); diff --git a/openair3/TEST/EPC_TEST/play_scenario_decode.c b/openair3/TEST/EPC_TEST/play_scenario_decode.c index be63a171c5..f6b983bf73 100644 --- a/openair3/TEST/EPC_TEST/play_scenario_decode.c +++ b/openair3/TEST/EPC_TEST/play_scenario_decode.c @@ -29,140 +29,20 @@ #include "intertask_interface.h" #include "platform_types.h" -#include "s1ap_ies_defs.h" #include "s1ap_eNB_decoder.h" #include "assertions.h" #include "play_scenario.h" //------------------------------------------------------------------------------ -int et_s1ap_decode_initiating_message(s1ap_message *message, S1ap_InitiatingMessage_t *initiating_p) -{ - int ret = -1; - - DevAssert(initiating_p != NULL); - - message->procedureCode = initiating_p->procedureCode; - message->criticality = initiating_p->criticality; - - switch(initiating_p->procedureCode) { - case S1ap_ProcedureCode_id_downlinkNASTransport: - ret = s1ap_decode_s1ap_downlinknastransporties(&message->msg.s1ap_DownlinkNASTransportIEs,&initiating_p->value); - break; - - case S1ap_ProcedureCode_id_InitialContextSetup: - ret = s1ap_decode_s1ap_initialcontextsetuprequesties(&message->msg.s1ap_InitialContextSetupRequestIEs, &initiating_p->value); - break; - - case S1ap_ProcedureCode_id_UEContextRelease: - ret = s1ap_decode_s1ap_uecontextreleasecommandies(&message->msg.s1ap_UEContextReleaseCommandIEs, &initiating_p->value); - break; - - case S1ap_ProcedureCode_id_Paging: - ret = s1ap_decode_s1ap_pagingies(&message->msg.s1ap_PagingIEs, &initiating_p->value); - break; - - case S1ap_ProcedureCode_id_uplinkNASTransport: - ret = s1ap_decode_s1ap_uplinknastransporties (&message->msg.s1ap_UplinkNASTransportIEs, &initiating_p->value); - break; - - case S1ap_ProcedureCode_id_S1Setup: - ret = s1ap_decode_s1ap_s1setuprequesties (&message->msg.s1ap_S1SetupRequestIEs, &initiating_p->value); - break; - - case S1ap_ProcedureCode_id_initialUEMessage: - ret = s1ap_decode_s1ap_initialuemessageies (&message->msg.s1ap_InitialUEMessageIEs, &initiating_p->value); - break; - - case S1ap_ProcedureCode_id_UEContextReleaseRequest: - ret = s1ap_decode_s1ap_uecontextreleaserequesties (&message->msg.s1ap_UEContextReleaseRequestIEs, &initiating_p->value); - break; - - case S1ap_ProcedureCode_id_UECapabilityInfoIndication: - ret = s1ap_decode_s1ap_uecapabilityinfoindicationies (&message->msg.s1ap_UECapabilityInfoIndicationIEs, &initiating_p->value); - break; - - case S1ap_ProcedureCode_id_NASNonDeliveryIndication: - ret = s1ap_decode_s1ap_nasnondeliveryindication_ies (&message->msg.s1ap_NASNonDeliveryIndication_IEs, &initiating_p->value); - break; - - default: - AssertFatal( 0 , "Unknown procedure ID (%d) for initiating message\n", - (int)initiating_p->procedureCode); - return -1; - } - return ret; -} - -//------------------------------------------------------------------------------ -int et_s1ap_decode_successful_outcome(s1ap_message *message, S1ap_SuccessfulOutcome_t *successfullOutcome_p) -{ - int ret = -1; - - DevAssert(successfullOutcome_p != NULL); - - message->procedureCode = successfullOutcome_p->procedureCode; - message->criticality = successfullOutcome_p->criticality; - - switch(successfullOutcome_p->procedureCode) { - case S1ap_ProcedureCode_id_S1Setup: - ret = s1ap_decode_s1ap_s1setupresponseies( - &message->msg.s1ap_S1SetupResponseIEs, &successfullOutcome_p->value); - break; - - case S1ap_ProcedureCode_id_InitialContextSetup: - ret = s1ap_decode_s1ap_initialcontextsetupresponseies (&message->msg.s1ap_InitialContextSetupResponseIEs, &successfullOutcome_p->value); - break; - - case S1ap_ProcedureCode_id_UEContextRelease: - ret = s1ap_decode_s1ap_uecontextreleasecompleteies (&message->msg.s1ap_UEContextReleaseCompleteIEs, &successfullOutcome_p->value); - break; - - default: - AssertFatal(0, "Unknown procedure ID (%d) for successfull outcome message\n", - (int)successfullOutcome_p->procedureCode); - return -1; - } - return ret; -} - -//------------------------------------------------------------------------------ -int et_s1ap_decode_unsuccessful_outcome(s1ap_message *message, S1ap_UnsuccessfulOutcome_t *unSuccessfullOutcome_p) -{ - int ret = -1; - - DevAssert(unSuccessfullOutcome_p != NULL); - - message->procedureCode = unSuccessfullOutcome_p->procedureCode; - message->criticality = unSuccessfullOutcome_p->criticality; - - switch(unSuccessfullOutcome_p->procedureCode) { - case S1ap_ProcedureCode_id_S1Setup: - ret = s1ap_decode_s1ap_s1setupfailureies(&message->msg.s1ap_S1SetupFailureIEs, &unSuccessfullOutcome_p->value); - break; - - case S1ap_ProcedureCode_id_InitialContextSetup: - ret = s1ap_decode_s1ap_initialcontextsetupfailureies (&message->msg.s1ap_InitialContextSetupFailureIEs, &unSuccessfullOutcome_p->value); - break; - - default: - AssertFatal(0,"Unknown procedure ID (%d) for unsuccessfull outcome message\n", - (int)unSuccessfullOutcome_p->procedureCode); - break; - } - return ret; -} - -//------------------------------------------------------------------------------ -int et_s1ap_decode_pdu(S1AP_PDU_t * const pdu, s1ap_message * const message, const uint8_t * const buffer, const uint32_t length) +int et_s1ap_decode_pdu(S1AP_PDU_t *const pdu, const uint8_t *const buffer, const uint32_t length) { asn_dec_rval_t dec_ret; DevAssert(buffer != NULL); - memset((void *)pdu, 0, sizeof(S1AP_PDU_t)); - + memset((void *)pdu, 0, sizeof(S1AP_S1AP_PDU_t)); dec_ret = aper_decode(NULL, - &asn_DEF_S1AP_PDU, + &asn_DEF_S1AP_S1AP_PDU, (void **)&pdu, buffer, length, @@ -174,32 +54,14 @@ int et_s1ap_decode_pdu(S1AP_PDU_t * const pdu, s1ap_message * const message, con return -1; } - message->direction = pdu->present; - - switch(pdu->present) { - case S1AP_PDU_PR_initiatingMessage: - return et_s1ap_decode_initiating_message(message, - &pdu->choice.initiatingMessage); - - case S1AP_PDU_PR_successfulOutcome: - return et_s1ap_decode_successful_outcome(message, - &pdu->choice.successfulOutcome); - - case S1AP_PDU_PR_unsuccessfulOutcome: - return et_s1ap_decode_unsuccessful_outcome(message, - &pdu->choice.unsuccessfulOutcome); - - default: - AssertFatal(0, "Unknown presence (%d) or not implemented\n", (int)pdu->present); - break; - } - return -1; + return dec_ret.code; } + //------------------------------------------------------------------------------ -void et_decode_s1ap(et_s1ap_t * const s1ap) +void et_decode_s1ap(et_s1ap_t *const s1ap) { if (NULL != s1ap) { - if (et_s1ap_decode_pdu(&s1ap->pdu, &s1ap->message, s1ap->binary_stream, s1ap->binary_stream_allocated_size) < 0) { + if (et_s1ap_decode_pdu(&s1ap->pdu, s1ap->binary_stream, s1ap->binary_stream_allocated_size) < 0) { AssertFatal (0, "ERROR %s() Cannot decode S1AP message!\n", __FUNCTION__); } } diff --git a/openair3/TEST/EPC_TEST/play_scenario_s1ap.c b/openair3/TEST/EPC_TEST/play_scenario_s1ap.c index 95df0fc306..361b56100c 100644 --- a/openair3/TEST/EPC_TEST/play_scenario_s1ap.c +++ b/openair3/TEST/EPC_TEST/play_scenario_s1ap.c @@ -181,15 +181,15 @@ void et_s1ap_eNB_itti_send_sctp_data_req(instance_t instance, int32_t assoc_id, //------------------------------------------------------------------------------ int et_handle_s1ap_mismatch_mme_ue_s1ap_id(et_packet_t * const spacket, et_packet_t * const rx_packet) { - S1ap_MME_UE_S1AP_ID_t scenario_mme_ue_s1ap_id = 0; - S1ap_MME_UE_S1AP_ID_t rx_mme_ue_s1ap_id = 0; + S1AP_MME_UE_S1AP_ID_t scenario_mme_ue_s1ap_id = 0; + S1AP_MME_UE_S1AP_ID_t rx_mme_ue_s1ap_id = 0; S1AP_PDU_PR present; present = rx_packet->sctp_hdr.u.data_hdr.payload.pdu.present; switch (rx_packet->sctp_hdr.u.data_hdr.payload.message.procedureCode) { - case S1ap_ProcedureCode_id_HandoverPreparation: - if (present == S1AP_PDU_PR_initiatingMessage) { + case S1AP_ProcedureCode_id_HandoverPreparation: + if (present == S1AP_S1AP_PDU_PR_initiatingMessage) { rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_HandoverRequiredIEs.mme_ue_s1ap_id; scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_HandoverRequiredIEs.mme_ue_s1ap_id; } else { @@ -198,36 +198,36 @@ int et_handle_s1ap_mismatch_mme_ue_s1ap_id(et_packet_t * const spacket, et_packe } break; - case S1ap_ProcedureCode_id_HandoverResourceAllocation: - if (present == S1AP_PDU_PR_initiatingMessage) { + case S1AP_ProcedureCode_id_HandoverResourceAllocation: + if (present == S1AP_S1AP_PDU_PR_initiatingMessage) { rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_HandoverRequestIEs.mme_ue_s1ap_id; scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_HandoverRequestIEs.mme_ue_s1ap_id; - } else if (present == S1AP_PDU_PR_successfulOutcome) { + } else if (present == S1AP_S1AP_PDU_PR_successfulOutcome) { rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_HandoverRequestAcknowledgeIEs.mme_ue_s1ap_id; scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_HandoverRequestAcknowledgeIEs.mme_ue_s1ap_id; - } else if (present == S1AP_PDU_PR_unsuccessfulOutcome) { + } else if (present == S1AP_S1AP_PDU_PR_unsuccessfulOutcome) { rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_HandoverFailureIEs.mme_ue_s1ap_id; scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_HandoverFailureIEs.mme_ue_s1ap_id; } break; - case S1ap_ProcedureCode_id_HandoverNotification: + case S1AP_ProcedureCode_id_HandoverNotification: rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_HandoverNotifyIEs.mme_ue_s1ap_id; scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_HandoverNotifyIEs.mme_ue_s1ap_id; break; - case S1ap_ProcedureCode_id_PathSwitchRequest: + case S1AP_ProcedureCode_id_PathSwitchRequest: //rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_PathSwitchRequestIEs.mme_ue_s1ap_id; //scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_PathSwitchRequestIEs.mme_ue_s1ap_id; break; - case S1ap_ProcedureCode_id_HandoverCancel: + case S1AP_ProcedureCode_id_HandoverCancel: rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_HandoverCancelIEs.mme_ue_s1ap_id; scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_HandoverCancelIEs.mme_ue_s1ap_id; break; - case S1ap_ProcedureCode_id_E_RABSetup: - if (present == S1AP_PDU_PR_initiatingMessage) { + case S1AP_ProcedureCode_id_E_RABSetup: + if (present == S1AP_S1AP_PDU_PR_initiatingMessage) { rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_E_RABSetupRequestIEs.mme_ue_s1ap_id; scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_E_RABSetupRequestIEs.mme_ue_s1ap_id; } else { @@ -456,29 +456,29 @@ int et_handle_s1ap_mismatch_mme_ue_s1ap_id(et_packet_t * const spacket, et_packe }*/ break; - case S1ap_ProcedureCode_id_eNBDirectInformationTransfer: + case S1AP_ProcedureCode_id_eNBDirectInformationTransfer: //rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_ENBDirectInformationTransferIEs.mme_ue_s1ap_id; //scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_ENBDirectInformationTransferIEs.mme_ue_s1ap_id; break; - case S1ap_ProcedureCode_id_MMEDirectInformationTransfer: + case S1AP_ProcedureCode_id_MMEDirectInformationTransfer: //rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_MMEDirectInformationTransferIEs.mme_ue_s1ap_id; //scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_MMEDirectInformationTransferIEs.mme_ue_s1ap_id; break; - case S1ap_ProcedureCode_id_PrivateMessage: - case S1ap_ProcedureCode_id_eNBConfigurationTransfer: - case S1ap_ProcedureCode_id_MMEConfigurationTransfer: + case S1AP_ProcedureCode_id_PrivateMessage: + case S1AP_ProcedureCode_id_eNBConfigurationTransfer: + case S1AP_ProcedureCode_id_MMEConfigurationTransfer: AssertFatal(0, "TODO"); break; - case S1ap_ProcedureCode_id_CellTrafficTrace: + case S1AP_ProcedureCode_id_CellTrafficTrace: rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_CellTrafficTraceIEs.mme_ue_s1ap_id; scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_CellTrafficTraceIEs.mme_ue_s1ap_id; break; - case S1ap_ProcedureCode_id_Kill: - /*if (present == S1AP_PDU_PR_initiatingMessage) { + case S1AP_ProcedureCode_id_Kill: + /*if (present == S1AP_S1AP_PDU_PR_initiatingMessage) { rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_KillRequestIEs.mme_ue_s1ap_id; scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_KillRequestIEs.mme_ue_s1ap_id; } else { @@ -487,22 +487,22 @@ int et_handle_s1ap_mismatch_mme_ue_s1ap_id(et_packet_t * const spacket, et_packe }*/ break; - case S1ap_ProcedureCode_id_downlinkUEAssociatedLPPaTransport: + case S1AP_ProcedureCode_id_downlinkUEAssociatedLPPaTransport: rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_DownlinkUEAssociatedLPPaTransport_IEs.mme_ue_s1ap_id; scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_DownlinkUEAssociatedLPPaTransport_IEs.mme_ue_s1ap_id; break; - case S1ap_ProcedureCode_id_uplinkUEAssociatedLPPaTransport: + case S1AP_ProcedureCode_id_uplinkUEAssociatedLPPaTransport: rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_UplinkUEAssociatedLPPaTransport_IEs.mme_ue_s1ap_id; scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_UplinkUEAssociatedLPPaTransport_IEs.mme_ue_s1ap_id; break; - case S1ap_ProcedureCode_id_downlinkNonUEAssociatedLPPaTransport: + case S1AP_ProcedureCode_id_downlinkNonUEAssociatedLPPaTransport: //rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_DownlinkNonUEAssociatedLPPaTransport_IEs.mme_ue_s1ap_id; //scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_DownlinkNonUEAssociatedLPPaTransport_IEs.mme_ue_s1ap_id; break; - case S1ap_ProcedureCode_id_uplinkNonUEAssociatedLPPaTransport: + case S1AP_ProcedureCode_id_uplinkNonUEAssociatedLPPaTransport: //rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_UplinkNonUEAssociatedLPPaTransport_IEs.mme_ue_s1ap_id; //scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_UplinkNonUEAssociatedLPPaTransport_IEs.mme_ue_s1ap_id; break; @@ -510,9 +510,11 @@ int et_handle_s1ap_mismatch_mme_ue_s1ap_id(et_packet_t * const spacket, et_packe default: AssertFatal(0, "Unknown procedure code %ld", rx_packet->sctp_hdr.u.data_hdr.payload.message.procedureCode); } + if (scenario_mme_ue_s1ap_id != rx_mme_ue_s1ap_id) { S1AP_DEBUG("%s() Updating mme_ue_s1ap_id %u -> %u \n", __FUNCTION__, scenario_mme_ue_s1ap_id, rx_mme_ue_s1ap_id); - et_packet_t * p = spacket; + et_packet_t *p = spacket; + while (p) { et_s1ap_update_mme_ue_s1ap_id(p, scenario_mme_ue_s1ap_id, rx_mme_ue_s1ap_id); p = p->next; @@ -672,8 +674,9 @@ int et_s1ap_process_rx_packet(et_event_s1ap_data_ind_t * const s1ap_data_ind) packet->packet_number, packet->original_frame_number); while (comp_results) { S1AP_DEBUG("Result err code %s(%u) ASN1 struct name %s\n", - et_error_match2str(comp_results->err_code), comp_results->err_code, comp_results->name); - // (each asn1 rc <= 166 (enum e_S1ap_ProtocolIE_ID, in generated file S1ap_ProtocolIE_ID.h)) + et_error_match2str(comp_results->err_code), comp_results->err_code, comp_results->name); + + // (each asn1 rc <= 166 (enum e_S1AP_ProtocolIE_ID, in generated file S1AP_ProtocolIE_ID.h)) if (comp_results->err_code == COMPARE_ERR_CODE_NO_MATCH) { //TODO MME_UE_S1AP_ID, etc. // get latest error code diff --git a/openair3/TEST/EPC_TEST/play_scenario_s1ap_compare_ie.c b/openair3/TEST/EPC_TEST/play_scenario_s1ap_compare_ie.c index 08f79ef206..e0afbeb838 100644 --- a/openair3/TEST/EPC_TEST/play_scenario_s1ap_compare_ie.c +++ b/openair3/TEST/EPC_TEST/play_scenario_s1ap_compare_ie.c @@ -56,400 +56,9 @@ extern et_scenario_t *g_scenario; extern uint32_t g_constraints; //------------------------------------------------------------------------------ -asn_comp_rval_t * et_s1ap_ies_is_matching(const S1AP_PDU_PR present, s1ap_message * const m1, s1ap_message * const m2, const uint32_t constraints) -{ - asn_comp_rval_t *ret = NULL; - AssertFatal(m1 != NULL, "bad parameter m1"); - AssertFatal(m2 != NULL, "bad parameter m2"); - AssertFatal((present == S1AP_PDU_PR_initiatingMessage) || - (present == S1AP_PDU_PR_successfulOutcome) || - (present == S1AP_PDU_PR_unsuccessfulOutcome) , "Bad parameter S1AP_PDU_PR present "); - AssertFatal( m1->procedureCode == m2->procedureCode, "Bad parameters: no matching procedure codes"); - - - // some cases can never occur since uplink only. - switch (m1->procedureCode) { - case S1ap_ProcedureCode_id_HandoverPreparation: - if (present == S1AP_PDU_PR_initiatingMessage) { - ret = s1ap_compare_s1ap_handoverrequiredies( - &m1->msg.s1ap_HandoverRequiredIEs, - &m2->msg.s1ap_HandoverRequiredIEs); - } else { - ret = s1ap_compare_s1ap_handovercommandies( - &m1->msg.s1ap_HandoverCommandIEs, - &m2->msg.s1ap_HandoverCommandIEs); - } - break; - - case S1ap_ProcedureCode_id_HandoverResourceAllocation: - if (present == S1AP_PDU_PR_initiatingMessage) { - ret = s1ap_compare_s1ap_handoverrequesties( - &m1->msg.s1ap_HandoverRequestIEs, - &m2->msg.s1ap_HandoverRequestIEs); - } else if (present == S1AP_PDU_PR_successfulOutcome) { - ret = s1ap_compare_s1ap_handoverrequestacknowledgeies( - &m1->msg.s1ap_HandoverRequestAcknowledgeIEs, - &m2->msg.s1ap_HandoverRequestAcknowledgeIEs); - } else if (present == S1AP_PDU_PR_unsuccessfulOutcome) { - ret = s1ap_compare_s1ap_handoverfailureies( - &m1->msg.s1ap_HandoverFailureIEs, - &m2->msg.s1ap_HandoverFailureIEs); - } - break; - - case S1ap_ProcedureCode_id_HandoverNotification: - ret = s1ap_compare_s1ap_handovernotifyies( - &m1->msg.s1ap_HandoverNotifyIEs, - &m2->msg.s1ap_HandoverNotifyIEs); - break; - - case S1ap_ProcedureCode_id_PathSwitchRequest: - ret = s1ap_compare_s1ap_pathswitchrequesties( - &m1->msg.s1ap_PathSwitchRequestIEs, - &m2->msg.s1ap_PathSwitchRequestIEs); - break; - - case S1ap_ProcedureCode_id_HandoverCancel: - ret = s1ap_compare_s1ap_handovercancelies( - &m1->msg.s1ap_HandoverCancelIEs, - &m2->msg.s1ap_HandoverCancelIEs); - break; - - case S1ap_ProcedureCode_id_E_RABSetup: - if (present == S1AP_PDU_PR_initiatingMessage) { - ret = s1ap_compare_s1ap_e_rabsetuprequesties( - &m1->msg.s1ap_E_RABSetupRequestIEs, - &m2->msg.s1ap_E_RABSetupRequestIEs); - } else { - ret = s1ap_compare_s1ap_e_rabsetupresponseies( - &m1->msg.s1ap_E_RABSetupResponseIEs, - &m2->msg.s1ap_E_RABSetupResponseIEs); - } - break; - - case S1ap_ProcedureCode_id_E_RABModify: - if (present == S1AP_PDU_PR_initiatingMessage) { - ret = s1ap_compare_s1ap_e_rabmodifyrequesties( - &m1->msg.s1ap_E_RABModifyRequestIEs, - &m2->msg.s1ap_E_RABModifyRequestIEs); - } else { - ret = s1ap_compare_s1ap_e_rabmodifyresponseies( - &m1->msg.s1ap_E_RABModifyResponseIEs, - &m2->msg.s1ap_E_RABModifyResponseIEs); - } - break; - - case S1ap_ProcedureCode_id_E_RABRelease: - if (present == S1AP_PDU_PR_initiatingMessage) { - ret = s1ap_compare_s1ap_e_rabreleasecommandies( - &m1->msg.s1ap_E_RABReleaseCommandIEs, - &m2->msg.s1ap_E_RABReleaseCommandIEs); - } else { - ret = s1ap_compare_s1ap_e_rabreleaseresponseies( - &m1->msg.s1ap_E_RABReleaseResponseIEs, - &m2->msg.s1ap_E_RABReleaseResponseIEs); - } - break; - - case S1ap_ProcedureCode_id_E_RABReleaseIndication: - ret = s1ap_compare_s1ap_e_rabreleaseindicationies( - &m1->msg.s1ap_E_RABReleaseIndicationIEs, - &m2->msg.s1ap_E_RABReleaseIndicationIEs); - break; - - case S1ap_ProcedureCode_id_InitialContextSetup: - if (present == S1AP_PDU_PR_initiatingMessage) { - ret = s1ap_compare_s1ap_initialcontextsetuprequesties( - &m1->msg.s1ap_InitialContextSetupRequestIEs, - &m2->msg.s1ap_InitialContextSetupRequestIEs); - } else { - ret = s1ap_compare_s1ap_initialcontextsetupresponseies( - &m1->msg.s1ap_InitialContextSetupResponseIEs, - &m2->msg.s1ap_InitialContextSetupResponseIEs); - } - break; - - case S1ap_ProcedureCode_id_Paging: - ret = s1ap_compare_s1ap_pagingies( - &m1->msg.s1ap_PagingIEs, - &m2->msg.s1ap_PagingIEs); - break; - - case S1ap_ProcedureCode_id_downlinkNASTransport: - ret = s1ap_compare_s1ap_downlinknastransporties( - &m1->msg.s1ap_DownlinkNASTransportIEs, - &m2->msg.s1ap_DownlinkNASTransportIEs); - break; - - case S1ap_ProcedureCode_id_initialUEMessage: - ret = s1ap_compare_s1ap_initialuemessageies( - &m1->msg.s1ap_InitialUEMessageIEs, - &m2->msg.s1ap_InitialUEMessageIEs); - break; - - case S1ap_ProcedureCode_id_uplinkNASTransport: - ret = s1ap_compare_s1ap_uplinknastransporties( - &m1->msg.s1ap_UplinkNASTransportIEs, - &m2->msg.s1ap_UplinkNASTransportIEs); - break; - - case S1ap_ProcedureCode_id_Reset: - ret = s1ap_compare_s1ap_reseties( - &m1->msg.s1ap_ResetIEs, - &m2->msg.s1ap_ResetIEs); - break; - - case S1ap_ProcedureCode_id_ErrorIndication: - ret = s1ap_compare_s1ap_errorindicationies( - &m1->msg.s1ap_ErrorIndicationIEs, - &m2->msg.s1ap_ErrorIndicationIEs); - break; - - case S1ap_ProcedureCode_id_NASNonDeliveryIndication: - ret = s1ap_compare_s1ap_nasnondeliveryindication_ies( - &m1->msg.s1ap_NASNonDeliveryIndication_IEs, - &m2->msg.s1ap_NASNonDeliveryIndication_IEs); - break; - - case S1ap_ProcedureCode_id_S1Setup: - if (present == S1AP_PDU_PR_initiatingMessage) { - ret = s1ap_compare_s1ap_s1setuprequesties( - &m1->msg.s1ap_S1SetupRequestIEs, - &m2->msg.s1ap_S1SetupRequestIEs); - } else if (present == S1AP_PDU_PR_successfulOutcome) { - ret = s1ap_compare_s1ap_s1setupresponseies( - &m1->msg.s1ap_S1SetupResponseIEs, - &m2->msg.s1ap_S1SetupResponseIEs); - } else if (present == S1AP_PDU_PR_unsuccessfulOutcome) { - ret = s1ap_compare_s1ap_s1setupfailureies( - &m1->msg.s1ap_S1SetupFailureIEs, - &m2->msg.s1ap_S1SetupFailureIEs); - } - break; - - case S1ap_ProcedureCode_id_UEContextReleaseRequest: - ret = s1ap_compare_s1ap_uecontextreleaserequesties( - &m1->msg.s1ap_UEContextReleaseRequestIEs, - &m2->msg.s1ap_UEContextReleaseRequestIEs); - break; - - case S1ap_ProcedureCode_id_DownlinkS1cdma2000tunneling: - ret = s1ap_compare_s1ap_downlinks1cdma2000tunnelingies( - &m1->msg.s1ap_DownlinkS1cdma2000tunnelingIEs, - &m2->msg.s1ap_DownlinkS1cdma2000tunnelingIEs); - break; - - case S1ap_ProcedureCode_id_UplinkS1cdma2000tunneling: - ret = s1ap_compare_s1ap_uplinks1cdma2000tunnelingies( - &m1->msg.s1ap_UplinkS1cdma2000tunnelingIEs, - &m2->msg.s1ap_UplinkS1cdma2000tunnelingIEs); - break; - - case S1ap_ProcedureCode_id_UEContextModification: - if (present == S1AP_PDU_PR_initiatingMessage) { - ret = s1ap_compare_s1ap_uecontextmodificationrequesties( - &m1->msg.s1ap_UEContextModificationRequestIEs, - &m2->msg.s1ap_UEContextModificationRequestIEs); - } else if (present == S1AP_PDU_PR_successfulOutcome) { - ret = s1ap_compare_s1ap_uecontextmodificationresponseies( - &m1->msg.s1ap_UEContextModificationResponseIEs, - &m2->msg.s1ap_UEContextModificationResponseIEs); - } else if (present == S1AP_PDU_PR_unsuccessfulOutcome) { - ret = s1ap_compare_s1ap_uecontextmodificationfailureies( - &m1->msg.s1ap_UEContextModificationFailureIEs, - &m2->msg.s1ap_UEContextModificationFailureIEs); - } - break; - - case S1ap_ProcedureCode_id_UECapabilityInfoIndication: - ret = s1ap_compare_s1ap_uecapabilityinfoindicationies( - &m1->msg.s1ap_UECapabilityInfoIndicationIEs, - &m2->msg.s1ap_UECapabilityInfoIndicationIEs); - break; - - case S1ap_ProcedureCode_id_UEContextRelease: - if (present == S1AP_PDU_PR_initiatingMessage) { - ret = s1ap_compare_s1ap_uecontextreleasecommandies( - &m1->msg.s1ap_UEContextReleaseCommandIEs, - &m2->msg.s1ap_UEContextReleaseCommandIEs); - } else { - ret = s1ap_compare_s1ap_uecontextreleasecompleteies( - &m1->msg.s1ap_UEContextReleaseCompleteIEs, - &m2->msg.s1ap_UEContextReleaseCompleteIEs); - } - break; - - case S1ap_ProcedureCode_id_eNBStatusTransfer: - ret = s1ap_compare_s1ap_enbstatustransferies( - &m1->msg.s1ap_ENBStatusTransferIEs, - &m2->msg.s1ap_ENBStatusTransferIEs); - break; - - case S1ap_ProcedureCode_id_MMEStatusTransfer: - ret = s1ap_compare_s1ap_mmestatustransferies( - &m1->msg.s1ap_MMEStatusTransferIEs, - &m2->msg.s1ap_MMEStatusTransferIEs); - break; - - case S1ap_ProcedureCode_id_DeactivateTrace: - ret = s1ap_compare_s1ap_deactivatetraceies( - &m1->msg.s1ap_DeactivateTraceIEs, - &m2->msg.s1ap_DeactivateTraceIEs); - break; - - case S1ap_ProcedureCode_id_TraceStart: - ret = s1ap_compare_s1ap_tracestarties( - &m1->msg.s1ap_TraceStartIEs, - &m2->msg.s1ap_TraceStartIEs); - break; - - case S1ap_ProcedureCode_id_TraceFailureIndication: - ret = s1ap_compare_s1ap_tracefailureindicationies( - &m1->msg.s1ap_TraceFailureIndicationIEs, - &m2->msg.s1ap_TraceFailureIndicationIEs); - break; - - case S1ap_ProcedureCode_id_ENBConfigurationUpdate: - if (present == S1AP_PDU_PR_initiatingMessage) { - ret = s1ap_compare_s1ap_enbconfigurationupdateies( - &m1->msg.s1ap_ENBConfigurationUpdateIEs, - &m2->msg.s1ap_ENBConfigurationUpdateIEs); - } else if (present == S1AP_PDU_PR_successfulOutcome) { - ret = s1ap_compare_s1ap_enbconfigurationupdateacknowledgeies( - &m1->msg.s1ap_ENBConfigurationUpdateAcknowledgeIEs, - &m2->msg.s1ap_ENBConfigurationUpdateAcknowledgeIEs); - } else { - ret = s1ap_compare_s1ap_enbconfigurationupdatefailureies( - &m1->msg.s1ap_ENBConfigurationUpdateFailureIEs, - &m2->msg.s1ap_ENBConfigurationUpdateFailureIEs); - } - break; - - case S1ap_ProcedureCode_id_MMEConfigurationUpdate: - if (present == S1AP_PDU_PR_initiatingMessage) { - ret = s1ap_compare_s1ap_mmeconfigurationupdateies( - &m1->msg.s1ap_MMEConfigurationUpdateIEs, - &m2->msg.s1ap_MMEConfigurationUpdateIEs); - } else if (present == S1AP_PDU_PR_successfulOutcome) { - ret = s1ap_compare_s1ap_mmeconfigurationupdateacknowledgeies( - &m1->msg.s1ap_MMEConfigurationUpdateAcknowledgeIEs, - &m2->msg.s1ap_MMEConfigurationUpdateAcknowledgeIEs); - } else { - ret = s1ap_compare_s1ap_mmeconfigurationupdatefailureies( - &m1->msg.s1ap_MMEConfigurationUpdateFailureIEs, - &m2->msg.s1ap_MMEConfigurationUpdateFailureIEs); - } - break; - - case S1ap_ProcedureCode_id_LocationReportingControl: - ret = s1ap_compare_s1ap_locationreportingcontrolies( - &m1->msg.s1ap_LocationReportingControlIEs, - &m2->msg.s1ap_LocationReportingControlIEs); - break; - - case S1ap_ProcedureCode_id_LocationReportingFailureIndication: - ret = s1ap_compare_s1ap_locationreportingfailureindicationies( - &m1->msg.s1ap_LocationReportingFailureIndicationIEs, - &m2->msg.s1ap_LocationReportingFailureIndicationIEs); - break; - - case S1ap_ProcedureCode_id_LocationReport: - ret = s1ap_compare_s1ap_locationreporties( - &m1->msg.s1ap_LocationReportIEs, - &m2->msg.s1ap_LocationReportIEs); - break; - - case S1ap_ProcedureCode_id_OverloadStart: - ret = s1ap_compare_s1ap_overloadstarties( - &m1->msg.s1ap_OverloadStartIEs, - &m2->msg.s1ap_OverloadStartIEs); - break; - - case S1ap_ProcedureCode_id_OverloadStop: - ret = s1ap_compare_s1ap_overloadstopies( - &m1->msg.s1ap_OverloadStopIEs, - &m2->msg.s1ap_OverloadStopIEs); - break; - - case S1ap_ProcedureCode_id_WriteReplaceWarning: - if (present == S1AP_PDU_PR_initiatingMessage) { - ret = s1ap_compare_s1ap_writereplacewarningrequesties( - &m1->msg.s1ap_WriteReplaceWarningRequestIEs, - &m2->msg.s1ap_WriteReplaceWarningRequestIEs); - } else { - ret = s1ap_compare_s1ap_writereplacewarningresponseies( - &m1->msg.s1ap_WriteReplaceWarningResponseIEs, - &m2->msg.s1ap_WriteReplaceWarningResponseIEs); - } - break; - - case S1ap_ProcedureCode_id_eNBDirectInformationTransfer: - ret = s1ap_compare_s1ap_enbdirectinformationtransferies( - &m1->msg.s1ap_ENBDirectInformationTransferIEs, - &m2->msg.s1ap_ENBDirectInformationTransferIEs); - break; - - case S1ap_ProcedureCode_id_MMEDirectInformationTransfer: - - ret = s1ap_compare_s1ap_mmedirectinformationtransferies( - &m1->msg.s1ap_MMEDirectInformationTransferIEs, - &m2->msg.s1ap_MMEDirectInformationTransferIEs); - break; - - case S1ap_ProcedureCode_id_PrivateMessage: - case S1ap_ProcedureCode_id_eNBConfigurationTransfer: - case S1ap_ProcedureCode_id_MMEConfigurationTransfer: - AssertFatal(0, "TODO"); - break; - - case S1ap_ProcedureCode_id_CellTrafficTrace: - ret = s1ap_compare_s1ap_celltraffictraceies( - &m1->msg.s1ap_CellTrafficTraceIEs, - &m2->msg.s1ap_CellTrafficTraceIEs); - break; - - case S1ap_ProcedureCode_id_Kill: - if (present == S1AP_PDU_PR_initiatingMessage) { - ret = s1ap_compare_s1ap_killrequesties( - &m1->msg.s1ap_KillRequestIEs, - &m2->msg.s1ap_KillRequestIEs); - } else { - ret = s1ap_compare_s1ap_killresponseies( - &m1->msg.s1ap_KillResponseIEs, - &m2->msg.s1ap_KillResponseIEs); - } - break; - - case S1ap_ProcedureCode_id_downlinkUEAssociatedLPPaTransport: - ret = s1ap_compare_s1ap_downlinkueassociatedlppatransport_ies( - &m1->msg.s1ap_DownlinkUEAssociatedLPPaTransport_IEs, - &m2->msg.s1ap_DownlinkUEAssociatedLPPaTransport_IEs); - break; - - case S1ap_ProcedureCode_id_uplinkUEAssociatedLPPaTransport: - ret = s1ap_compare_s1ap_uplinkueassociatedlppatransport_ies( - &m1->msg.s1ap_UplinkUEAssociatedLPPaTransport_IEs, - &m2->msg.s1ap_UplinkUEAssociatedLPPaTransport_IEs); - break; - - case S1ap_ProcedureCode_id_downlinkNonUEAssociatedLPPaTransport: - ret = s1ap_compare_s1ap_downlinknonueassociatedlppatransport_ies( - &m1->msg.s1ap_DownlinkNonUEAssociatedLPPaTransport_IEs, - &m2->msg.s1ap_DownlinkNonUEAssociatedLPPaTransport_IEs); - break; - - case S1ap_ProcedureCode_id_uplinkNonUEAssociatedLPPaTransport: - ret = s1ap_compare_s1ap_uplinknonueassociatedlppatransport_ies( - &m1->msg.s1ap_UplinkNonUEAssociatedLPPaTransport_IEs, - &m2->msg.s1ap_UplinkNonUEAssociatedLPPaTransport_IEs); - break; - - default: - AssertFatal(0, "Unknown procedure code %ld", m1->procedureCode); - } - return ret; -} - +//asn_comp_rval_t * et_s1ap_ies_is_matching(const S1AP_PDU_PR present, s1ap_message * const m1, s1ap_message * const m2, const uint32_t constraints) +//{ +//} void update_xpath_node_mme_ue_s1ap_id(et_s1ap_t * const s1ap, xmlNode *node, const S1ap_MME_UE_S1AP_ID_t new_id) { @@ -583,8 +192,6 @@ void update_xpath_nodes_mme_ue_s1ap_id(et_s1ap_t * const s1ap_payload, xmlNodeSe //------------------------------------------------------------------------------ int et_s1ap_update_mme_ue_s1ap_id(et_packet_t * const packet, const S1ap_MME_UE_S1AP_ID_t old_id, const S1ap_MME_UE_S1AP_ID_t new_id) { - - xmlChar xpath_expression[ET_XPATH_EXPRESSION_MAX_LENGTH]; int ret = 0; xmlDocPtr doc = NULL; diff --git a/openair3/TEST/oaisim_mme_client_test.c b/openair3/TEST/oaisim_mme_client_test.c index 0e89511865..28d37ce4d7 100644 --- a/openair3/TEST/oaisim_mme_client_test.c +++ b/openair3/TEST/oaisim_mme_client_test.c @@ -35,7 +35,6 @@ #include "s1ap_common.h" #include "s1ap_eNB.h" #include "s1ap_mme.h" -#include "s1ap_ies_defs.h" char ip_addr[] = "127.0.0.1"; diff --git a/openair3/TEST/oaisim_mme_itti_test.c b/openair3/TEST/oaisim_mme_itti_test.c index 243023e610..bf8ad44714 100644 --- a/openair3/TEST/oaisim_mme_itti_test.c +++ b/openair3/TEST/oaisim_mme_itti_test.c @@ -69,7 +69,7 @@ int main(int argc, char *argv[]) /* Calling each layer init function */ log_init(&mme_config); - itti_init(TASK_MAX, THREAD_MAX, MESSAGES_ID_MAX, tasks_info, messages_info, messages_definition_xml, NULL); + itti_init(TASK_MAX, THREAD_MAX, MESSAGES_ID_MAX, tasks_info, messages_info); sctp_init(&mme_config); udp_init(&mme_config); s1ap_mme_init(&mme_config); diff --git a/openair3/TEST/oaisim_mme_s1ap_test.c b/openair3/TEST/oaisim_mme_s1ap_test.c index 1f7c1d3bbf..aa8f92aee1 100644 --- a/openair3/TEST/oaisim_mme_s1ap_test.c +++ b/openair3/TEST/oaisim_mme_s1ap_test.c @@ -145,16 +145,16 @@ int main(int argc, char *argv[]) } for (i = 0; i < sizeof(s1ap_test) / sizeof(s1ap_test_t); i++) { - struct s1ap_message_s message; + S1AP_S1AP_PDU_t pdu; uint8_t *buffer; uint32_t length; - memset(&message, 0, sizeof(struct s1ap_message_s)); + memset(&pdu, 0, sizeof(pdu)); printf("Trying to decode %s procedure with asn1c decoder\n", s1ap_test[i].procedure_name); - if (s1ap_mme_decode_pdu(&message, s1ap_test[i].buffer, + if (s1ap_mme_decode_pdu(&pdu, s1ap_test[i].buffer, s1ap_test[i].buf_len) < 0) { - if (s1ap_eNB_decode_pdu(&message, s1ap_test[i].buffer, + if (s1ap_eNB_decode_pdu(&pdu, s1ap_test[i].buffer, s1ap_test[i].buf_len) < 0) { printf("Failed to decode this message\n"); } else { @@ -167,7 +167,7 @@ int main(int argc, char *argv[]) printf("Trying to encode %s procedure with asn1c encoder\n", s1ap_test[i].procedure_name); - if (s1ap_eNB_encode_pdu(&message, &buffer, &length) < 0) { + if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) { printf("Failed to encode this message on MME side, trying eNB side\n"); } else { compare_buffer(buffer, length, s1ap_test[i].buffer, s1ap_test[i].buf_len); diff --git a/openair3/TEST/oaisim_mme_sctp_test.c b/openair3/TEST/oaisim_mme_sctp_test.c index d810f9ee8f..40ecc7f8f5 100644 --- a/openair3/TEST/oaisim_mme_sctp_test.c +++ b/openair3/TEST/oaisim_mme_sctp_test.c @@ -35,7 +35,6 @@ #include "s1ap_common.h" #include "s1ap_eNB.h" #include "s1ap_mme.h" -#include "s1ap_ies_defs.h" #include "s1ap_eNB_encoder.h" #include "s1ap_eNB_decoder.h" diff --git a/openair3/TEST/oaisim_mme_test_s1c.c b/openair3/TEST/oaisim_mme_test_s1c.c index 1f130af0d3..f006434b90 100644 --- a/openair3/TEST/oaisim_mme_test_s1c.c +++ b/openair3/TEST/oaisim_mme_test_s1c.c @@ -57,7 +57,6 @@ static void *eNB_app_task (void *args_p); void mme_test_s1_start_test(instance_t instance); //------------------------------------------------------------------------------ static char *conf_config_file_name = NULL; -static char *itti_dump_file = NULL; const Enb_properties_array_t *enb_properties = NULL; int16_t glog_level = LOG_INFO; int16_t glog_verbosity = LOG_MED; @@ -77,10 +76,6 @@ static void get_options (int argc, char **argv) while ((c = getopt_long (argc, argv, "K:g:G:O:",NULL,NULL)) != -1) { switch (c) { - case 'K': - itti_dump_file = strdup(optarg); - break; - case 'O': conf_config_file_name = optarg; break; @@ -316,7 +311,7 @@ int main( int argc, char **argv ) /* Read eNB configuration file */ enb_properties = enb_config_init(conf_config_file_name); - itti_init(TASK_MAX, THREAD_MAX, MESSAGES_ID_MAX, tasks_info, messages_info, messages_definition_xml, itti_dump_file); + itti_init(TASK_MAX, THREAD_MAX, MESSAGES_ID_MAX, tasks_info, messages_info); itti_wait_ready(1); diff --git a/openair3/TEST/oaisim_mme_test_s1c_s1ap.c b/openair3/TEST/oaisim_mme_test_s1c_s1ap.c index 993fad2f89..09ed44d4f0 100644 --- a/openair3/TEST/oaisim_mme_test_s1c_s1ap.c +++ b/openair3/TEST/oaisim_mme_test_s1c_s1ap.c @@ -43,7 +43,6 @@ #include "intertask_interface.h" #include "s1ap_eNB_default_values.h" #include "s1ap_common.h" -#include "s1ap_ies_defs.h" #include "s1ap_eNB_defs.h" #include "s1ap_eNB_management_procedures.h" #include "assertions.h" @@ -162,8 +161,8 @@ void s1ap_eNB_handle_sctp_association_resp(instance_t instance, sctp_new_associa } void s1ap_eNB_register_mme(s1ap_eNB_instance_t *instance_p, - net_ip_address_t *mme_ip_address, - net_ip_address_t *local_ip_addr) + net_ip_address_t *mme_ip_address, + net_ip_address_t *local_ip_addr) { MessageDef *message_p = NULL; sctp_new_association_req_t *sctp_new_association_req_p = NULL; diff --git a/openair3/UDP/udp_eNB_task.c b/openair3/UDP/udp_eNB_task.c index 4d6bd6e033..f61f614a14 100644 --- a/openair3/UDP/udp_eNB_task.c +++ b/openair3/UDP/udp_eNB_task.c @@ -42,8 +42,8 @@ #include "assertions.h" #include "udp_eNB_task.h" -#include "UTIL/LOG/log.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/log.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "msc.h" @@ -276,13 +276,10 @@ void udp_eNB_receiver(struct udp_socket_desc_s *udp_sock_pP) * if the queue is full. */ /* look for HACK_RLC_UM_LIMIT for others places related to the hack. Please do not remove this comment. */ - //if (itti_send_msg_to_task(udp_sock_pP->task_id, INSTANCE_DEFAULT, message_p) < 0) { if (itti_try_send_msg_to_task(udp_sock_pP->task_id, INSTANCE_DEFAULT, message_p) < 0) { -#if 0 - LOG_I(UDP_, "Failed to send message %d to task %d\n", + LOG_E(UDP_, "Failed to send message %d to task %d\n", UDP_DATA_IND, udp_sock_pP->task_id); -#endif itti_free(TASK_UDP, message_p); itti_free(TASK_UDP, forwarded_buffer); return; @@ -434,7 +431,7 @@ on_error: VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UDP_ENB_TASK, VCD_FUNCTION_OUT); } - LOG_N(UDP_, "Task UDP eNB exiting\n"); + LOG_I(UDP_, "Task UDP eNB exiting\n"); return NULL; } diff --git a/openair3/UTILS/mme_default_values.h b/openair3/UTILS/mme_default_values.h index 6965c7c57c..f02e94e2c5 100644 --- a/openair3/UTILS/mme_default_values.h +++ b/openair3/UTILS/mme_default_values.h @@ -51,11 +51,12 @@ * SCTP Constants ******************************************************************************/ +/* #define SCTP_RECV_BUFFER_SIZE (1 << 16) #define SCTP_OUT_STREAMS (32) #define SCTP_IN_STREAMS (32) #define SCTP_MAX_ATTEMPTS (5) - +*/ /******************************************************************************* * MME global definitions ******************************************************************************/ diff --git a/targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c b/targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c index 5ded228f6b..75a7825669 100644 --- a/targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c +++ b/targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c @@ -929,7 +929,7 @@ void calibrate_rf(openair0_device *device) { bladerf_set_loopback(brf->dev,BLADERF_LB_NONE); bladerf_set_gain(brf->dev, BLADERF_MODULE_RX, (unsigned int) device->openair0_cfg->rx_gain[0]-device->openair0_cfg[0].rx_gain_offset[0]); bladerf_set_gain(brf->dev, BLADERF_MODULE_TX, (unsigned int) device->openair0_cfg->tx_gain[0]); - // write_output("blade_rf_test.m","rxs",calib_buff,RXDCLENGTH,1,1); + // LOG_M("blade_rf_test.m","rxs",calib_buff,RXDCLENGTH,1,1); } /*! \brief Initialize Openair BLADERF target. It returns 0 if OK diff --git a/targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c b/targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c index a74a57b359..ccf39f95aa 100644 --- a/targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c +++ b/targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c @@ -41,7 +41,7 @@ #include #include #include -#include "vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "common_lib.h" #include "ethernet_lib.h" diff --git a/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.h b/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.h index 82cb69baba..22c01c47e6 100644 --- a/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.h +++ b/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.h @@ -135,12 +135,6 @@ struct em1_private_s { extern struct em1_private_s *em1_devices[MAX_EM1_DEVICES]; /* em1_drv.c */ -#if 0 -static int em1_open(struct inode *inode, struct file *file); -static int em1_release(struct inode *inode, struct file *file); -static int __init em1_init(void); -static void __exit em1_cleanup(void); -#endif int em1_user_op_enter(struct em1_private_s *pv, wait_queue_t *wait, wait_queue_head_t *wh, int busy_flag, int new_state); void em1_user_op_leave(struct em1_private_s *pv, wait_queue_t *wait, @@ -153,9 +147,6 @@ ssize_t em1_write(struct file *file, const char __user *buf, size_t size, loff_t ssize_t em1_read(struct file *file, char __user *buf, size_t size, loff_t *ppos); /* em1_dev.c */ -#if 0 -static irqreturn_t irq_handler(int irq, void *dev_id); -#endif int __devinit em1_probe(struct pci_dev *dev, const struct pci_device_id *id); void __devexit em1_remove(struct pci_dev *dev); @@ -184,14 +175,6 @@ struct em1_ioctl_fifo_params { size_t count; }; -#if 0 -static int em1_ioctl_fifo_write(struct em1_private_s *pv, - struct em1_ioctl_fifo_params *p); -static int em1_ioctl_fifo_read(struct em1_private_s *pv, - struct em1_ioctl_fifo_params *p); -static int em1_ioctl_alloc(struct em1_private_s *pv, void **buf); -#endif - /* * Local Variables: * c-file-style: "linux" diff --git a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp index 9b184345ea..a81e88c6ae 100644 --- a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp +++ b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp @@ -40,9 +40,11 @@ #include #include #include -#include "UTIL/LOG/log_extern.h" +#include "common/utils/LOG/log.h" #include "common_lib.h" #include "assertions.h" +#include +#include #ifdef __SSE4_1__ # include @@ -274,6 +276,8 @@ static int sync_to_gps(openair0_device *device) #include "usrp_lib.h" static FILE *pFile = NULL; int mmapfd = 0; +int iqfd = 0; +int use_mmap = 1; // default is to use mmap struct stat sb; iqrec_t *ms_sample = NULL; // memory for all subframes unsigned int nb_samples = 0; @@ -376,6 +380,7 @@ static void trx_usrp_end(openair0_device *device) { s->tx_md.end_of_burst = true; s->tx_stream->send("", 0, s->tx_md); s->tx_md.end_of_burst = false; + sleep(1); #if defined(USRP_REC_PLAY) } #endif @@ -405,13 +410,24 @@ static void trx_usrp_end(openair0_device *device) { } } if (u_sf_mode == 2) { // replay - if (ms_sample != MAP_FAILED) { - munmap(ms_sample, sb.st_size); - ms_sample = NULL; - } - if (mmapfd != 0) { - close(mmapfd); - mmapfd = 0; + if (use_mmap) { + if (ms_sample != MAP_FAILED) { + munmap(ms_sample, sb.st_size); + ms_sample = NULL; + } + if (mmapfd != 0) { + close(mmapfd); + mmapfd = 0; + } + } else { + if (ms_sample != NULL) { + free(ms_sample); + ms_sample = NULL; + } + if (iqfd != 0) { + close(iqfd); + iqfd = 0; + } } } #endif @@ -483,7 +499,11 @@ static int trx_usrp_write(openair0_device *device, openair0_timestamp timestamp, s->tx_md.start_of_burst = false; s->tx_md.end_of_burst = false; } - + if(flags==10){ // fail safe mode + s->tx_md.has_time_spec = false; + s->tx_md.start_of_burst = false; + s->tx_md.end_of_burst = true; + } if (cc>1) { std::vector buff_ptrs; for (int i=0; iopenair0_cfg[0].sample_rate)) / 1000)); + if (!use_mmap) { + if (lseek(iqfd, 0, SEEK_SET) == 0) { + std::cerr << "Seeking at the beginning of IQ file" << std::endl; + } else { + std::cerr << "Problem seeking at the beginning of IQ file" << std::endl; + } + } } - if (cur_samples < nb_samples) { - *ptimestamp = (ms_sample[0].ts + (cur_samples * (((int)(device->openair0_cfg[0].sample_rate)) / 1000))) + wrap_ts; - if (cur_samples == 0) { - std::cerr << "starting subframes file with wrap_count=" << wrap_count << " wrap_ts=" << wrap_ts - << " ts=" << *ptimestamp << std::endl; + if (use_mmap) { + if (cur_samples < nb_samples) { + *ptimestamp = (ms_sample[0].ts + (cur_samples * (((int)(device->openair0_cfg[0].sample_rate)) / 1000))) + wrap_ts; + if (cur_samples == 0) { + std::cerr << "starting subframes file with wrap_count=" << wrap_count << " wrap_ts=" << wrap_ts + << " ts=" << *ptimestamp << std::endl; + } + memcpy(buff[0], &ms_sample[cur_samples].samples[0], nsamps*4); + cur_samples++; + } + } else { + // read sample from file + if (read(iqfd, ms_sample, sizeof(iqrec_t)) != sizeof(iqrec_t)) { + std::cerr << "pb reading iqfile at index " << sizeof(iqrec_t)*cur_samples << std::endl; + close(iqfd); + free(ms_sample); + ms_sample = NULL; + iqfd = 0; + exit(-1); + } + + if (cur_samples < nb_samples) { + static int64_t ts0 = 0; + if ((cur_samples == 0) && (wrap_count == 0)) { + ts0 = ms_sample->ts; + } + *ptimestamp = ts0 + (cur_samples * (((int)(device->openair0_cfg[0].sample_rate)) / 1000)) + wrap_ts; + if (cur_samples == 0) { + std::cerr << "starting subframes file with wrap_count=" << wrap_count << " wrap_ts=" << wrap_ts + << " ts=" << *ptimestamp << std::endl; + } + memcpy(buff[0], &ms_sample->samples[0], nsamps*4); + cur_samples++; + // Prepare for next read + off_t where = lseek(iqfd, cur_samples * sizeof(iqrec_t), SEEK_SET); } - memcpy(buff[0], &ms_sample[cur_samples].samples[0], nsamps*4); - cur_samples++; } struct timespec req; req.tv_sec = 0; @@ -1102,6 +1157,7 @@ extern "C" { int device_init(openair0_device* device, openair0_config_t *openair0_cfg) { #if defined(USRP_REC_PLAY) paramdef_t usrp_recplay_params[7]; + struct sysinfo systeminfo; // to check static int done = 0; if (done == 1) { @@ -1112,6 +1168,11 @@ extern "C" { device->is_init = 0; // end to check + // Use mmap for IQ files for systems with less than 6GB total RAM + sysinfo(&systeminfo); + if (systeminfo.totalram < 6144000000) { + use_mmap = 0; + } memset(usrp_recplay_params, 0, 7*sizeof(paramdef_t)); memset(&u_sf_filename[0], 0, 1024); if (trx_usrp_recplay_config_init(usrp_recplay_params) != 0) { @@ -1151,7 +1212,8 @@ extern "C" { device->trx_set_freq_func = trx_usrp_set_freq; device->trx_set_gains_func = trx_usrp_set_gains; device->openair0_cfg = openair0_cfg; - std::cerr << "USRP device initialized in subframes replay mode for " << u_sf_loops << " loops." << std::endl; + std::cerr << "USRP device initialized in subframes replay mode for " << u_sf_loops << " loops. Use mmap=" + << use_mmap << std::endl; } else { #endif uhd::set_thread_priority_safe(1.0); @@ -1501,35 +1563,62 @@ extern "C" { memset(ms_sample, 0, u_sf_max * BELL_LABS_IQ_BYTES_PER_SF); } if (u_sf_mode == 2) { - // use mmap - mmapfd = open(u_sf_filename, O_RDONLY | O_LARGEFILE); - if (mmapfd != 0) { - fstat(mmapfd, &sb); - std::cerr << "Loading subframes using mmap() from " << u_sf_filename << " size=" << (uint64_t)sb.st_size << " bytes ..." << std::endl; - ms_sample = (iqrec_t*) mmap(NULL, sb.st_size, PROT_WRITE, MAP_PRIVATE, mmapfd, 0); - if (ms_sample != MAP_FAILED) { - nb_samples = (sb.st_size / sizeof(iqrec_t)); - int aligned = (((unsigned long)ms_sample & 31) == 0)? 1:0; - std::cerr<< "Loaded "<< nb_samples << " subframes." << std::endl; - if (aligned == 0) { - std::cerr<< "mmap address is not 32 bytes aligned, exiting." << std::endl; + if (use_mmap) { + // use mmap + mmapfd = open(u_sf_filename, O_RDONLY | O_LARGEFILE); + if (mmapfd != 0) { + fstat(mmapfd, &sb); + std::cerr << "Loading subframes using mmap() from " << u_sf_filename << " size=" << (uint64_t)sb.st_size << " bytes ..." << std::endl; + ms_sample = (iqrec_t*) mmap(NULL, sb.st_size, PROT_WRITE, MAP_PRIVATE, mmapfd, 0); + if (ms_sample != MAP_FAILED) { + nb_samples = (sb.st_size / sizeof(iqrec_t)); + int aligned = (((unsigned long)ms_sample & 31) == 0)? 1:0; + std::cerr<< "Loaded "<< nb_samples << " subframes." << std::endl; + if (aligned == 0) { + std::cerr<< "mmap address is not 32 bytes aligned, exiting." << std::endl; + close(mmapfd); + exit(-1); + } + } else { + std::cerr << "Cannot mmap file, exiting." << std::endl; close(mmapfd); exit(-1); } } else { - std::cerr << "Cannot mmap file, exiting." << std::endl; - close(mmapfd); + std::cerr << "Cannot open " << u_sf_filename << " , exiting." << std::endl; exit(-1); } } else { + iqfd = open(u_sf_filename, O_RDONLY | O_LARGEFILE); + if (iqfd != 0) { + fstat(iqfd, &sb); + nb_samples = (sb.st_size / sizeof(iqrec_t)); + std::cerr << "Loading " << nb_samples << " subframes from " << u_sf_filename + << " size=" << (uint64_t)sb.st_size << " bytes ..." << std::endl; + // allocate buffer for 1 sample at a time + ms_sample = (iqrec_t*) malloc(sizeof(iqrec_t)); + if (ms_sample == NULL) { + std::cerr<< "Memory allocation failed for individual subframe replay mode." << std::endl; + close(iqfd); + exit(-1); + } + memset(ms_sample, 0, sizeof(iqrec_t)); + // point at beginning of file + if (lseek(iqfd, 0, SEEK_SET) == 0) { + std::cerr << "Initial seek at beginning of the file" << std::endl; + } else { + std::cerr << "Problem initial seek at beginning of the file" << std::endl; + } + } else { std::cerr << "Cannot open " << u_sf_filename << " , exiting." << std::endl; exit(-1); + } } } #endif - LOG_E(PHY, "USRP context created"); - return 0; + return 0; + } } /*@}*/ diff --git a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.h b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.h index 47ba171f1b..228d3a5857 100644 --- a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.h +++ b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.h @@ -47,7 +47,7 @@ typedef struct { } iqrec_t; #define DEF_NB_SF 120000 // default nb of sf or ms to capture (2 minutes at 5MHz) #define DEF_SF_FILE "/home/nokia/iqfile" // default subframes file name -#define DEF_SF_DELAY_READ 400 // default read delay µs (860=real) +#define DEF_SF_DELAY_READ 700 // default read delay µs (860=real) #define DEF_SF_DELAY_WRITE 15 // default write delay µs (15=real) #define DEF_SF_NB_LOOP 5 // default nb loops diff --git a/targets/ARCH/mobipass/queues.c b/targets/ARCH/mobipass/queues.c index 27c9917084..68ed6ecbc9 100644 --- a/targets/ARCH/mobipass/queues.c +++ b/targets/ARCH/mobipass/queues.c @@ -182,16 +182,6 @@ static void get_sample_from_mobipass(queue_state_t *qstate, char *I, char *Q, ui struct mobipass_header *mh = NULL; uint32_t packet_timestamp = 0; -#if 0 -uint32_t old_start = qstate->from_mobipass.start; -uint32_t old_len = qstate->from_mobipass.len; -b = qstate->from_mobipass.buf[qstate->from_mobipass.start]; -mh = (struct mobipass_header *)(b+14); -uint32_t old_pts = qstate->from_mobipass.len ? ntohl(mh->timestamp) : -1; -b=NULL; -mh=NULL; -#endif - while (qstate->from_mobipass.len) { b = qstate->from_mobipass.buf[qstate->from_mobipass.start]; mh = (struct mobipass_header *)(b+14); @@ -222,10 +212,6 @@ nodata: *Q = 0; log_missed_sample(qstate, timestamp); - -#if 0 -printf("no sample timestamp %u pt %u start %d old_start %d old_pt %u len %d old len %d\n", timestamp, packet_timestamp, qstate->from_mobipass.start, old_start, old_pts, qstate->from_mobipass.len, old_len); -#endif } /* doesn't work with delay more than 1s */ diff --git a/targets/ARCH/tcp_bridge/README.tcp_bridge_oai b/targets/ARCH/tcp_bridge/README.tcp_bridge_oai index ef0588ddee..05a520f6ae 100644 --- a/targets/ARCH/tcp_bridge/README.tcp_bridge_oai +++ b/targets/ARCH/tcp_bridge/README.tcp_bridge_oai @@ -4,6 +4,7 @@ To build the basic simulator: cd [openair top directory] . oaienv cd cmake_targets + ./build_oai -I -w USRP ./build_oai --basic-simulator cd ../common/utils/T/tracer make @@ -20,14 +21,14 @@ In the other terminal, run: cd [openair top directory] cd cmake_targets/basic_simulator/enb export ENODEB=1 - sudo -E ./lte-softmodem -O [configuration file] + sudo -E ./lte-softmodem -O [configuration file] --T_stdout 0 [configuration file] is just a regular configuration file. The eNB needs an EPC. To run the UE, open a terminal and run: cd [openair top directory] cd cmake_targets/basic_simulator/ue - sudo ./lte-uesoftmodem -C 2680000000 -r 25 + sudo ./lte-uesoftmodem -C 2680000000 -r 25 --ue-rxgain 140 Adapt the value of -r, it has to match the value N_RB_DL in the configuration file of the eNB. (Same for -C which should match the value downlink_frequency in the configuration file.) diff --git a/targets/ARCH/tcp_bridge/tcp_bridge.c b/targets/ARCH/tcp_bridge/tcp_bridge.c index 127ba39bbc..a59b969da4 100644 --- a/targets/ARCH/tcp_bridge/tcp_bridge.c +++ b/targets/ARCH/tcp_bridge/tcp_bridge.c @@ -225,14 +225,6 @@ int tcp_bridge_read(openair0_device *device, openair0_timestamp *timestamp, void b = &t->b[t->bstart]; -#if 0 -typedef struct { - int32_t data[30720]; /* max 20MHz */ - unsigned long timestamp; - int size; -} input_buffer; -#endif - if (b->timestamp != t->read_timestamp) abort(); if (b->size != nsamps * 4) abort(); diff --git a/targets/COMMON/openairinterface5g_limits.h b/targets/COMMON/openairinterface5g_limits.h index 98de4a024f..1c27f65585 100644 --- a/targets/COMMON/openairinterface5g_limits.h +++ b/targets/COMMON/openairinterface5g_limits.h @@ -4,13 +4,23 @@ #if defined(CBMIMO1) || defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_LMSSDR) # define NUMBER_OF_eNB_MAX 1 # define NUMBER_OF_RU_MAX 2 -# define NUMBER_OF_UE_MAX 16 -# define NUMBER_OF_CONNECTED_eNB_MAX 3 +# ifndef UE_EXPANSION +# define NUMBER_OF_UE_MAX 16 +# define NUMBER_OF_CONNECTED_eNB_MAX 3 +# else +# define NUMBER_OF_UE_MAX 256 +# define NUMBER_OF_CONNECTED_eNB_MAX 1 +# endif #else # define NUMBER_OF_eNB_MAX 7 # define NUMBER_OF_RU_MAX 32 -# define NUMBER_OF_UE_MAX 20 -# define NUMBER_OF_CONNECTED_eNB_MAX 3 +# ifndef UE_EXPANSION +# define NUMBER_OF_UE_MAX 20 +# define NUMBER_OF_CONNECTED_eNB_MAX 3 +# else +# define NUMBER_OF_UE_MAX 256 +# define NUMBER_OF_CONNECTED_eNB_MAX 1 +# endif # if defined(STANDALONE) && STANDALONE==1 # undef NUMBER_OF_eNB_MAX # undef NUMBER_OF_UE_MAX @@ -19,7 +29,6 @@ # define NUMBER_OF_UE_MAX 3 # define NUMBER_OF_RU_MAX 3 # endif - # if defined(LARGE_SCALE) && LARGE_SCALE # undef NUMBER_OF_eNB_MAX # undef NUMBER_OF_UE_MAX diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.100PRB.usrpx310.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.100PRB.usrpx310.conf index 38e471ac54..73da2a8b3f 100644 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.100PRB.usrpx310.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.100PRB.usrpx310.conf @@ -48,7 +48,7 @@ eNBs = pucch_delta_shift = 1; pucch_nRB_CQI = 1; pucch_nCS_AN = 0; - pucch_n1_AN = 32; + pucch_n1_AN = 0; pdsch_referenceSignalPower = -16; pdsch_p_b = 0; pusch_n_SB = 1; diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.usrpx310.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.usrpx310.conf index 2c11ea3187..bd0503a466 100644 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.usrpx310.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.usrpx310.conf @@ -48,7 +48,7 @@ eNBs = pucch_delta_shift = 1; pucch_nRB_CQI = 1; pucch_nCS_AN = 0; - pucch_n1_AN = 32; + pucch_n1_AN = 0; pdsch_referenceSignalPower = -16; pdsch_p_b = 0; pusch_n_SB = 1; diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf index 6c7c319a11..9a2ca88257 100644 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf @@ -33,7 +33,7 @@ eNBs = tdd_config_s = 0; prefix_type = "NORMAL"; eutra_band = 7; - downlink_frequency = 2685000000L; + downlink_frequency = 2680000000L; uplink_frequency_offset = -120000000; Nid_cell = 0; N_RB_DL = 100; @@ -52,7 +52,7 @@ eNBs = pucch_delta_shift = 1; pucch_nRB_CQI = 1; pucch_nCS_AN = 0; - pucch_n1_AN = 32; + pucch_n1_AN = 0; pdsch_referenceSignalPower = -27; pdsch_p_b = 0; pusch_n_SB = 1; @@ -164,6 +164,8 @@ MACRLCs = ( num_cc = 1; tr_s_preference = "local_L1"; tr_n_preference = "local_RRC"; + puSch10xSnr = 200; + puCch10xSnr = 200; } ); diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.usrpb210.replay.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.usrpb210.replay.conf new file mode 100644 index 0000000000..99df987b43 --- /dev/null +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.usrpb210.replay.conf @@ -0,0 +1,273 @@ +Active_eNBs = ( "eNB-Eurecom-LTEBox"); +# Asn1_verbosity, choice in: none, info, annoying +Asn1_verbosity = "none"; + +eNBs = +( + { + ////////// Identification parameters: + eNB_ID = 0xe00; + + cell_type = "CELL_MACRO_ENB"; + + eNB_name = "eNB-Eurecom-LTEBox"; + + // Tracking area code, 0x0000 and 0xfffe are reserved values + tracking_area_code = "1"; + + mobile_country_code = "208"; + + mobile_network_code = "92"; + + tr_s_preference = "local_mac" + + ////////// Physical parameters: + + component_carriers = ( + { + node_function = "3GPP_eNODEB"; + node_timing = "synch_to_ext_device"; + node_synch_ref = 0; + frame_type = "FDD"; + tdd_config = 3; + tdd_config_s = 0; + prefix_type = "NORMAL"; + eutra_band = 7; + downlink_frequency = 2685000000L; + uplink_frequency_offset = -120000000; + Nid_cell = 0; + N_RB_DL = 25; + Nid_cell_mbsfn = 0; + nb_antenna_ports = 1; + nb_antennas_tx = 1; + nb_antennas_rx = 1; + tx_gain = 90; + rx_gain = 115; + pbch_repetition = "FALSE"; + prach_root = 0; + prach_config_index = 0; + prach_high_speed = "DISABLE"; + prach_zero_correlation = 1; + prach_freq_offset = 2; + pucch_delta_shift = 1; + pucch_nRB_CQI = 0; + pucch_nCS_AN = 0; + pucch_n1_AN = 0; + pdsch_referenceSignalPower = -27; + pdsch_p_b = 0; + pusch_n_SB = 1; + pusch_enable64QAM = "DISABLE"; + pusch_hoppingMode = "interSubFrame"; + pusch_hoppingOffset = 0; + pusch_groupHoppingEnabled = "ENABLE"; + pusch_groupAssignment = 0; + pusch_sequenceHoppingEnabled = "DISABLE"; + pusch_nDMRS1 = 1; + phich_duration = "NORMAL"; + phich_resource = "ONESIXTH"; + srs_enable = "DISABLE"; + /* srs_BandwidthConfig =; + srs_SubframeConfig =; + srs_ackNackST =; + srs_MaxUpPts =;*/ + + pusch_p0_Nominal = -96; + pusch_alpha = "AL1"; + pucch_p0_Nominal = -104; + msg3_delta_Preamble = 6; + pucch_deltaF_Format1 = "deltaF2"; + pucch_deltaF_Format1b = "deltaF3"; + pucch_deltaF_Format2 = "deltaF0"; + pucch_deltaF_Format2a = "deltaF0"; + pucch_deltaF_Format2b = "deltaF0"; + + rach_numberOfRA_Preambles = 64; + rach_preamblesGroupAConfig = "DISABLE"; + /* + rach_sizeOfRA_PreamblesGroupA = ; + rach_messageSizeGroupA = ; + rach_messagePowerOffsetGroupB = ; + */ + rach_powerRampingStep = 4; + rach_preambleInitialReceivedTargetPower = -108; + rach_preambleTransMax = 10; + rach_raResponseWindowSize = 10; + rach_macContentionResolutionTimer = 48; + rach_maxHARQ_Msg3Tx = 4; + + pcch_default_PagingCycle = 128; + pcch_nB = "oneT"; + bcch_modificationPeriodCoeff = 2; + ue_TimersAndConstants_t300 = 1000; + ue_TimersAndConstants_t301 = 1000; + ue_TimersAndConstants_t310 = 1000; + ue_TimersAndConstants_t311 = 10000; + ue_TimersAndConstants_n310 = 20; + ue_TimersAndConstants_n311 = 1; + ue_TransmissionMode = 1; + + //Parameters for SIB18 + rxPool_sc_CP_Len = "normal"; + rxPool_sc_Period = "sf40"; + rxPool_data_CP_Len = "normal"; + rxPool_ResourceConfig_prb_Num = 20; + rxPool_ResourceConfig_prb_Start = 5; + rxPool_ResourceConfig_prb_End = 44; + rxPool_ResourceConfig_offsetIndicator_present = "prSmall"; + rxPool_ResourceConfig_offsetIndicator_choice = 0; + rxPool_ResourceConfig_subframeBitmap_present = "prBs40"; + rxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "00000000000000000000"; + rxPool_ResourceConfig_subframeBitmap_choice_bs_size = 5; + rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0; +/* rxPool_dataHoppingConfig_hoppingParameter = 0; + rxPool_dataHoppingConfig_numSubbands = "ns1"; + rxPool_dataHoppingConfig_rbOffset = 0; + rxPool_commTxResourceUC-ReqAllowed = "TRUE"; +*/ + // Parameters for SIB19 + discRxPool_cp_Len = "normal" + discRxPool_discPeriod = "rf32" + discRxPool_numRetx = 1; + discRxPool_numRepetition = 2; + discRxPool_ResourceConfig_prb_Num = 5; + discRxPool_ResourceConfig_prb_Start = 3; + discRxPool_ResourceConfig_prb_End = 21; + discRxPool_ResourceConfig_offsetIndicator_present = "prSmall"; + discRxPool_ResourceConfig_offsetIndicator_choice = 0; + discRxPool_ResourceConfig_subframeBitmap_present = "prBs40"; + discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "f0ffffffff"; + discRxPool_ResourceConfig_subframeBitmap_choice_bs_size = 5; + discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0; + + } + ); + + + srb1_parameters : + { + # timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500] + timer_poll_retransmit = 80; + + # timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200] + timer_reordering = 35; + + # timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500] + timer_status_prohibit = 0; + + # poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)] + poll_pdu = 4; + + # poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)] + poll_byte = 99999; + + # max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32] + max_retx_threshold = 4; + } + + # ------- SCTP definitions + SCTP : + { + # Number of streams to use in input/output + SCTP_INSTREAMS = 2; + SCTP_OUTSTREAMS = 2; + }; + + + ////////// MME parameters: + mme_ip_address = ( { ipv4 = "192.168.13.11"; + ipv6 = "192:168:30::17"; + active = "yes"; + preference = "ipv4"; + } + ); + + NETWORK_INTERFACES : + { + + ENB_INTERFACE_NAME_FOR_S1_MME = "lo"; + ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.13.10/24"; + ENB_INTERFACE_NAME_FOR_S1U = "lo"; + ENB_IPV4_ADDRESS_FOR_S1U = "192.168.13.10/24"; + ENB_PORT_FOR_S1U = 2152; # Spec 2152 + }; + } +); + +MACRLCs = ( + { + num_cc = 1; + tr_s_preference = "local_L1"; + tr_n_preference = "local_RRC"; + phy_test_mode = 0; + } +); + +L1s = ( + { + num_cc = 1; + tr_n_preference = "local_mac"; + } +); + +RUs = ( + { + local_rf = "yes" + nb_tx = 1 + nb_rx = 1 + att_tx = 0 + att_rx = 0; + bands = [7]; + max_pdschReferenceSignalPower = -27; + max_rxgain = 125; + eNB_instances = [0]; + + } +); + +NETWORK_CONTROLLER : +{ + FLEXRAN_ENABLED = "no"; + FLEXRAN_INTERFACE_NAME = "lo"; + FLEXRAN_IPV4_ADDRESS = "127.0.0.1"; + FLEXRAN_PORT = 2210; + FLEXRAN_CACHE = "/mnt/oai_agent_cache"; + FLEXRAN_AWAIT_RECONF = "no"; +}; +/* + log_config : + { + global_log_level ="info"; + global_log_verbosity ="medium"; + hw_log_level ="info"; + hw_log_verbosity ="medium"; + phy_log_level ="info"; + phy_log_verbosity ="medium"; + mac_log_level ="info"; + mac_log_verbosity ="high"; + rlc_log_level ="info"; + rlc_log_verbosity ="medium"; + pdcp_log_level ="info"; + pdcp_log_verbosity ="medium"; + rrc_log_level ="info"; + rrc_log_verbosity ="medium"; + }; +*/ + + log_config : + { + global_log_level ="crit"; + global_log_verbosity ="crit"; + hw_log_level ="crit"; + hw_log_verbosity ="crit"; + phy_log_level ="crit"; + phy_log_verbosity ="crit"; + mac_log_level ="crit"; + mac_log_verbosity ="crit"; + rlc_log_level ="crit"; + rlc_log_verbosity ="crit"; + pdcp_log_level ="crit"; + pdcp_log_verbosity ="crit"; + rrc_log_level ="crit"; + rrc_log_verbosity ="crit"; + }; + diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210-d2d.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210-d2d.conf index 087f379c4d..7d73e55c6c 100644 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210-d2d.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210-d2d.conf @@ -52,7 +52,7 @@ eNBs = pucch_delta_shift = 1; pucch_nRB_CQI = 1; pucch_nCS_AN = 0; - pucch_n1_AN = 32; + pucch_n1_AN = 0; pdsch_referenceSignalPower = -27; pdsch_p_b = 0; pusch_n_SB = 1; diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf index 614a85d54c..69166672d7 100644 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf @@ -52,7 +52,7 @@ eNBs = pucch_delta_shift = 1; pucch_nRB_CQI = 0; pucch_nCS_AN = 0; - pucch_n1_AN = 32; + pucch_n1_AN = 0; pdsch_referenceSignalPower = -27; pdsch_p_b = 0; pusch_n_SB = 1; @@ -198,7 +198,9 @@ MACRLCs = ( num_cc = 1; tr_s_preference = "local_L1"; tr_n_preference = "local_RRC"; - phy_test_mode = 1; + phy_test_mode = 0; + puSch10xSnr = 200; + puCch10xSnr = 200; } ); diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210_ue_expansion.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210_ue_expansion.conf new file mode 100644 index 0000000000..1197c4ad93 --- /dev/null +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210_ue_expansion.conf @@ -0,0 +1,210 @@ +Active_eNBs = ( "eNB_Eurecom_LTEBox"); +# Asn1_verbosity, choice in: none, info, annoying +Asn1_verbosity = "none"; + +eNBs = +( + { + ////////// Identification parameters: + eNB_ID = 0xe00; + + cell_type = "CELL_MACRO_ENB"; + + eNB_name = "eNB_Eurecom_LTEBox"; + + // Tracking area code, 0x0000 and 0xfffe are reserved values + tracking_area_code = "1"; + + mobile_country_code = "208"; + + mobile_network_code = "93"; + + tr_s_preference = "local_mac" + + ////////// Physical parameters: + + component_carriers = ( + { + node_function = "3GPP_eNODEB"; + node_timing = "synch_to_ext_device"; + node_synch_ref = 0; + frame_type = "FDD"; + tdd_config = 3; + tdd_config_s = 0; + prefix_type = "NORMAL"; + eutra_band = 7; + downlink_frequency = 2685000000L; + uplink_frequency_offset = -120000000; + Nid_cell = 0; + N_RB_DL = 50; + Nid_cell_mbsfn = 0; + nb_antenna_ports = 1; + nb_antennas_tx = 1; + nb_antennas_rx = 1; + tx_gain = 90; + rx_gain = 125; + pbch_repetition = "FALSE"; + prach_root = 0; + prach_config_index = 0; + prach_high_speed = "DISABLE"; + prach_zero_correlation = 1; + prach_freq_offset = 2; + pucch_delta_shift = 1; + pucch_nRB_CQI = 0; + pucch_nCS_AN = 0; + pucch_n1_AN = 0; + pdsch_referenceSignalPower = -27; + pdsch_p_b = 0; + pusch_n_SB = 1; + pusch_enable64QAM = "DISABLE"; + pusch_hoppingMode = "interSubFrame"; + pusch_hoppingOffset = 0; + pusch_groupHoppingEnabled = "ENABLE"; + pusch_groupAssignment = 0; + pusch_sequenceHoppingEnabled = "DISABLE"; + pusch_nDMRS1 = 1; + phich_duration = "NORMAL"; + phich_resource = "ONE"; + srs_enable = "DISABLE"; + /* srs_BandwidthConfig =; + srs_SubframeConfig =; + srs_ackNackST =; + srs_MaxUpPts =;*/ + + pusch_p0_Nominal = -96; + pusch_alpha = "AL1"; + pucch_p0_Nominal = -104; + msg3_delta_Preamble = 6; + pucch_deltaF_Format1 = "deltaF2"; + pucch_deltaF_Format1b = "deltaF3"; + pucch_deltaF_Format2 = "deltaF0"; + pucch_deltaF_Format2a = "deltaF0"; + pucch_deltaF_Format2b = "deltaF0"; + + rach_numberOfRA_Preambles = 64; + rach_preamblesGroupAConfig = "DISABLE"; + /* + rach_sizeOfRA_PreamblesGroupA = ; + rach_messageSizeGroupA = ; + rach_messagePowerOffsetGroupB = ; + */ + rach_powerRampingStep = 4; + rach_preambleInitialReceivedTargetPower = -108; + rach_preambleTransMax = 10; + rach_raResponseWindowSize = 10; + rach_macContentionResolutionTimer = 48; + rach_maxHARQ_Msg3Tx = 4; + + pcch_default_PagingCycle = 128; + pcch_nB = "oneT"; + bcch_modificationPeriodCoeff = 2; + ue_TimersAndConstants_t300 = 1000; + ue_TimersAndConstants_t301 = 1000; + ue_TimersAndConstants_t310 = 1000; + ue_TimersAndConstants_t311 = 10000; + ue_TimersAndConstants_n310 = 20; + ue_TimersAndConstants_n311 = 1; + ue_TransmissionMode = 1; + ue_multiple_max = 20; + } + ); + + + srb1_parameters : + { + # timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500] + timer_poll_retransmit = 80; + + # timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200] + timer_reordering = 35; + + # timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500] + timer_status_prohibit = 0; + + # poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)] + poll_pdu = 4; + + # poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)] + poll_byte = 99999; + + # max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32] + max_retx_threshold = 4; + } + + # ------- SCTP definitions + SCTP : + { + # Number of streams to use in input/output + SCTP_INSTREAMS = 2; + SCTP_OUTSTREAMS = 2; + }; + + + ////////// MME parameters: + mme_ip_address = ( { ipv4 = "192.168.12.26"; + ipv6 = "192:168:30::17"; + active = "yes"; + preference = "ipv4"; + } + ); + + NETWORK_INTERFACES : + { + + ENB_INTERFACE_NAME_FOR_S1_MME = "eth0"; + ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.19/24"; + ENB_INTERFACE_NAME_FOR_S1U = "eth0"; + ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.19/24"; + ENB_PORT_FOR_S1U = 2152; # Spec 2152 + }; + } +); + +MACRLCs = ( + { + num_cc = 1; + tr_s_preference = "local_L1"; + tr_n_preference = "local_RRC"; + } +); + +L1s = ( + { + num_cc = 1; + tr_n_preference = "local_mac"; + } +); + +RUs = ( + { + local_rf = "yes" + nb_tx = 1 + nb_rx = 1 + att_tx = 0 + att_rx = 0; + bands = [7]; + max_pdschReferenceSignalPower = -27; + max_rxgain = 125; + eNB_instances = [0]; + + } +); + + log_config : + { + global_log_level ="info"; + global_log_verbosity ="medium"; + hw_log_level ="info"; + hw_log_verbosity ="medium"; + phy_log_level ="info"; + phy_log_verbosity ="medium"; + mac_log_level ="info"; + mac_log_verbosity ="high"; + rlc_log_level ="info"; + rlc_log_verbosity ="medium"; + pdcp_log_level ="info"; + pdcp_log_verbosity ="medium"; + rrc_log_level ="info"; + rrc_log_verbosity ="medium"; + }; + diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band38.tm1.if4p5.50PRB.lo.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band38.tm1.if4p5.50PRB.lo.conf new file mode 100644 index 0000000000..c4d23bac42 --- /dev/null +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band38.tm1.if4p5.50PRB.lo.conf @@ -0,0 +1,215 @@ +Active_eNBs = ( "eNB-Eurecom-LTEBox"); +# Asn1_verbosity, choice in: none, info, annoying +Asn1_verbosity = "none"; + +eNBs = +( + { + # real_time choice in {hard, rt-preempt, no} + real_time = "no"; + + ////////// Identification parameters: + eNB_ID = 0xe00; + + cell_type = "CELL_MACRO_ENB"; + + eNB_name = "eNB-Eurecom-LTEBox"; + + // Tracking area code, 0x0000 and 0xfffe are reserved values + tracking_area_code = "1"; + + mobile_country_code = "208"; + + mobile_network_code = "93"; + + tr_s_preference = "local_mac" + + ////////// Physical parameters: + + component_carriers = ( + { + node_function = "NGFI_RCC_IF4p5"; + node_timing = "synch_to_ext_device"; + node_synch_ref = 0; + frame_type = "TDD"; + tdd_config = 1; + tdd_config_s = 0; + prefix_type = "NORMAL"; + eutra_band = 38; + downlink_frequency = 2580000000L; + uplink_frequency_offset = 0; + Nid_cell = 0; + N_RB_DL = 50; + Nid_cell_mbsfn = 0; + nb_antenna_ports = 1; + nb_antennas_tx = 1; + nb_antennas_rx = 1; + tx_gain = 90; + rx_gain = 125; + pbch_repetition = "FALSE"; + prach_root = 0; + prach_config_index = 0; + prach_high_speed = "DISABLE"; + prach_zero_correlation = 1; + prach_freq_offset = 2; + pucch_delta_shift = 1; + pucch_nRB_CQI = 0; + pucch_nCS_AN = 0; + pucch_n1_AN = 32; + pdsch_referenceSignalPower = -27; + pdsch_p_b = 0; + pusch_n_SB = 1; + pusch_enable64QAM = "DISABLE"; + pusch_hoppingMode = "interSubFrame"; + pusch_hoppingOffset = 0; + pusch_groupHoppingEnabled = "ENABLE"; + pusch_groupAssignment = 0; + pusch_sequenceHoppingEnabled = "DISABLE"; + pusch_nDMRS1 = 1; + phich_duration = "NORMAL"; + phich_resource = "ONESIXTH"; + srs_enable = "DISABLE"; + /* srs_BandwidthConfig =; + srs_SubframeConfig =; + srs_ackNackST =; + srs_MaxUpPts =;*/ + + pusch_p0_Nominal = -104; + pusch_alpha = "AL1"; + pucch_p0_Nominal = -96; + msg3_delta_Preamble = 6; + pucch_deltaF_Format1 = "deltaF2"; + pucch_deltaF_Format1b = "deltaF3"; + pucch_deltaF_Format2 = "deltaF0"; + pucch_deltaF_Format2a = "deltaF0"; + pucch_deltaF_Format2b = "deltaF0"; + + rach_numberOfRA_Preambles = 64; + rach_preamblesGroupAConfig = "DISABLE"; + /* + rach_sizeOfRA_PreamblesGroupA = ; + rach_messageSizeGroupA = ; + rach_messagePowerOffsetGroupB = ; + */ + rach_powerRampingStep = 4; + rach_preambleInitialReceivedTargetPower = -108; + rach_preambleTransMax = 10; + rach_raResponseWindowSize = 10; + rach_macContentionResolutionTimer = 48; + rach_maxHARQ_Msg3Tx = 4; + + pcch_default_PagingCycle = 128; + pcch_nB = "oneT"; + bcch_modificationPeriodCoeff = 2; + ue_TimersAndConstants_t300 = 1000; + ue_TimersAndConstants_t301 = 1000; + ue_TimersAndConstants_t310 = 1000; + ue_TimersAndConstants_t311 = 10000; + ue_TimersAndConstants_n310 = 20; + ue_TimersAndConstants_n311 = 1; + ue_TransmissionMode = 1; + } + ); + + + srb1_parameters : + { + # timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500] + timer_poll_retransmit = 80; + + # timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200] + timer_reordering = 35; + + # timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500] + timer_status_prohibit = 0; + + # poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)] + poll_pdu = 4; + + # poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)] + poll_byte = 99999; + + # max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32] + max_retx_threshold = 4; + } + + # ------- SCTP definitions + SCTP : + { + # Number of streams to use in input/output + SCTP_INSTREAMS = 2; + SCTP_OUTSTREAMS = 2; + }; + + + ////////// MME parameters: + mme_ip_address = ( { ipv4 = "127.0.0.3"; + ipv6 = "192:168:30::17"; + active = "yes"; + preference = "ipv4"; + } + ); + + NETWORK_INTERFACES : + { + + ENB_INTERFACE_NAME_FOR_S1_MME = "lo"; + ENB_IPV4_ADDRESS_FOR_S1_MME = "127.0.0.2/24"; + ENB_INTERFACE_NAME_FOR_S1U = "lo"; + ENB_IPV4_ADDRESS_FOR_S1U = "127.0.0.5/24"; + ENB_PORT_FOR_S1U = 2152; # Spec 2152 + }; + } +); + +MACRLCs = ( + { + num_cc = 1; + tr_s_preference = "local_L1"; + tr_n_preference = "local_RRC"; + } +); + +L1s = ( + { + num_cc = 1; + tr_n_preference = "local_mac"; + } +); + +RUs = ( + { + local_if_name = "lo"; + remote_address = "127.0.0.2"; + local_address = "127.0.0.1"; + local_portc = 50000; + remote_portc = 50000; + local_portd = 50001; + remote_portd = 50001; + local_rf = "no" + tr_preference = "udp_if4p5" + nb_tx = 2 + nb_rx = 2 + att_tx = 0 + att_rx = 0; + eNB_instances = [0]; + is_slave = "no"; + } +); + +log_config = { + global_log_level ="info"; + global_log_verbosity ="medium"; + hw_log_level ="info"; + hw_log_verbosity ="medium"; + phy_log_level ="info"; + phy_log_verbosity ="medium"; + mac_log_level ="info"; + mac_log_verbosity ="high"; + rlc_log_level ="info"; + rlc_log_verbosity ="medium"; + pdcp_log_level ="info"; + pdcp_log_verbosity ="medium"; + rrc_log_level ="info"; + rrc_log_verbosity ="medium"; +}; diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi-STUB.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi-STUB.conf index 4de676ec9a..71a163209d 100644 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi-STUB.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi-STUB.conf @@ -54,7 +54,7 @@ eNBs = pucch_delta_shift = 1; pucch_nRB_CQI = 0; pucch_nCS_AN = 0; - pucch_n1_AN = 32; + pucch_n1_AN = 0; #pdsch_referenceSignalPower = -27; pdsch_referenceSignalPower = -30; pdsch_p_b = 0; diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi.conf index 03241ec694..a6da42c2f5 100644 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi.conf @@ -52,7 +52,7 @@ eNBs = pucch_delta_shift = 1; pucch_nRB_CQI = 0; pucch_nCS_AN = 0; - pucch_n1_AN = 32; + pucch_n1_AN = 0; pdsch_referenceSignalPower = -27; pdsch_p_b = 0; pusch_n_SB = 1; diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.conf index 16c67cf41c..5e779c708b 100644 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.conf @@ -39,7 +39,7 @@ eNBs = downlink_frequency = 2685000000L; uplink_frequency_offset = -120000000; Nid_cell = 0; - N_RB_DL = 50; + N_RB_DL = 100; Nid_cell_mbsfn = 0; nb_antenna_ports = 1; nb_antennas_tx = 1; @@ -55,7 +55,7 @@ eNBs = pucch_delta_shift = 1; pucch_nRB_CQI = 0; pucch_nCS_AN = 0; - pucch_n1_AN = 32; + pucch_n1_AN = 0; pdsch_referenceSignalPower = -27; pdsch_p_b = 0; pusch_n_SB = 1; diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf index b45b1a480d..0e4a004d8a 100644 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf @@ -55,8 +55,8 @@ eNBs = pucch_delta_shift = 1; pucch_nRB_CQI = 0; pucch_nCS_AN = 0; - pucch_n1_AN = 32; - pdsch_referenceSignalPower = -12; + pucch_n1_AN = 0; + pdsch_referenceSignalPower = -27; pdsch_p_b = 0; pusch_n_SB = 1; pusch_enable64QAM = "DISABLE"; diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf index c1b0f70218..6635aa9962 100644 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf @@ -11,8 +11,8 @@ RUs = ( tr_preference = "udp_if4p5"; nb_tx = 1; nb_rx = 1; - max_pdschReferenceSignalPower = -15; - max_rxgain = 120; + max_pdschReferenceSignalPower = -27; + max_rxgain = 125; bands = [7,13]; is_slave = "no"; } diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.tdd.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.tdd.conf new file mode 100644 index 0000000000..da1481ac7b --- /dev/null +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.tdd.conf @@ -0,0 +1,37 @@ +RUs = ( + { + local_if_name = "lo"; + remote_address = "127.0.0.1" + local_address = "127.0.0.2"; + local_portc = 50000; + remote_portc = 50000; + local_portd = 50001; + remote_portd = 50001; + local_rf = "yes" + tr_preference = "udp_if4p5"; + nb_tx = 1; + nb_rx = 1; + max_pdschReferenceSignalPower = -29; + max_rxgain = 120; + bands = [38]; + is_slave = "no"; + } +); + +log_config = { + global_log_level ="info"; + global_log_verbosity ="medium"; + hw_log_level ="info"; + hw_log_verbosity ="medium"; + phy_log_level ="info"; + phy_log_verbosity ="medium"; + mac_log_level ="info"; + mac_log_verbosity ="high"; + rlc_log_level ="info"; + rlc_log_verbosity ="medium"; + pdcp_log_level ="info"; + pdcp_log_verbosity ="medium"; + rrc_log_level ="info"; + rrc_log_verbosity ="medium"; +}; + diff --git a/targets/README.txt b/targets/README.txt index 8b8463e7ef..e50664bbe1 100644 --- a/targets/README.txt +++ b/targets/README.txt @@ -19,7 +19,7 @@ First, you must have all four openair SW directories, openair1, openair2, openai - libconfig++8-dev - libgtk-3-dev - libpgm-5.1 and libpgm-5.1-dev for distributed simulation with reliable multicast transmport - - libxml2 and libxml2-dev and gccxml + - libxml2 and libxml2-dev - libforms-bin libforms-dev - nettle-dev nettle-bin openssl libssl-dev - libatlas-base-dev and libatlas-headers (for Ubuntu 11.04, libatlas-dev instead of libatlas-headers) @@ -113,4 +113,3 @@ Please choose the web server that should be automatically configured to run phpM Web server to reconfigure automatically: [*] apache2 [ ] lighttpd - \ No newline at end of file diff --git a/targets/RT/USER/lte-enb.c b/targets/RT/USER/lte-enb.c index 89f170b5ac..1ca0024d88 100644 --- a/targets/RT/USER/lte-enb.c +++ b/targets/RT/USER/lte-enb.c @@ -68,11 +68,11 @@ #include "LAYER2/MAC/mac_proto.h" #include "RRC/LTE/rrc_extern.h" #include "PHY_INTERFACE/phy_interface.h" -#include "UTIL/LOG/log_extern.h" +#include "common/utils/LOG/log.h" #include "UTIL/OTG/otg_tx.h" #include "UTIL/OTG/otg_externs.h" #include "UTIL/MATH/oml.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "UTIL/OPT/opt.h" #include "enb_config.h" @@ -217,13 +217,15 @@ static inline int rxtx(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, char *thread_nam #endif } + release_UE_in_freeList(eNB->Mod_id); + // UE-specific RX processing for subframe n if (nfapi_mode == 0 || nfapi_mode == 1) { phy_procedures_eNB_uespec_RX(eNB, proc); } VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ULSCH_SCHEDULER , 1 ); - if(get_nprocs() >= 8){ + if(!eNB->single_thread_flag && get_nprocs() >= 8){ if(wait_on_condition(&proc[1].mutex_rxtx,&proc[1].cond_rxtx,&proc[1].pipe_ready,"wakeup_tx")<0) { LOG_E(PHY,"Frame %d, subframe %d: TX1 not ready\n",proc[1].frame_rx,proc[1].subframe_rx); return(-1); @@ -242,41 +244,32 @@ static inline int rxtx(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, char *thread_nam pthread_mutex_unlock(&eNB->UL_INFO_mutex); + /* this conflict resolution may be totally wrong, to be tested */ + /* CONFLICT RESOLUTION: BEGIN */ - // ***************************************** - // TX processing for subframe n+sf_ahead - // run PHY TX procedures the one after the other for all CCs to avoid race conditions - // (may be relaxed in the future for performance reasons) - // ***************************************** - //if (wait_CCs(proc)<0) return(-1); - - - - if (oai_exit) return(-1); - - LOG_D(PHY,"Calling eNB_procedures_TX for SFN.SF %d.%d\n",proc->frame_tx,proc->subframe_tx); - - - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ULSCH_SCHEDULER , 0 ); if(oai_exit) return(-1); - if(get_nprocs() <= 4){ + if(eNB->single_thread_flag || get_nprocs() <= 4){ +#ifndef PHY_TX_THREAD phy_procedures_eNB_TX(eNB, proc, 1); +#endif } + /* CONFLICT RESOLUTION: what about this release_thread call, has it to be done? if yes, where? */ + //if (release_thread(&proc->mutex_rxtx,&proc->instance_cnt_rxtx,thread_name)<0) return(-1); + /* CONFLICT RESOLUTION: END */ stop_meas( &softmodem_stats_rxtx_sf ); LOG_D(PHY,"%s() Exit proc[rx:%d%d tx:%d%d]\n", __FUNCTION__, proc->frame_rx, proc->subframe_rx, proc->frame_tx, proc->subframe_tx); -#if 0 LOG_D(PHY, "rxtx:%lld nfapi:%lld phy:%lld tx:%lld rx:%lld prach:%lld ofdm:%lld ", softmodem_stats_rxtx_sf.diff_now, nfapi_meas.diff_now, TICK_TO_US(eNB->phy_proc), TICK_TO_US(eNB->phy_proc_tx), TICK_TO_US(eNB->phy_proc_rx), TICK_TO_US(eNB->rx_prach), - TICK_TO_US(eNB->ofdm_mod_stats), - softmodem_stats_rxtx_sf.diff_now, nfapi_meas.diff_now); + TICK_TO_US(eNB->ofdm_mod_stats) + ); LOG_D(PHY, "dlsch[enc:%lld mod:%lld scr:%lld rm:%lld t:%lld i:%lld] rx_dft:%lld ", TICK_TO_US(eNB->dlsch_encoding_stats), @@ -308,7 +301,6 @@ static inline int rxtx(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, char *thread_nam TICK_TO_US(eNB->ulsch_tc_intl1_stats), TICK_TO_US(eNB->ulsch_tc_intl2_stats) ); -#endif return(0); } @@ -434,11 +426,13 @@ static void* eNB_thread_rxtx( void* param ) { exit_fun( "ERROR pthread_cond_signal" ); } pthread_mutex_unlock( &proc->mutex_rxtx ); - if(get_nprocs() >= 8) wakeup_tx(eNB,eNB->proc.ru_proc); - else - { - phy_procedures_eNB_TX(eNB, proc, 1); - wakeup_txfh(proc,eNB->proc.ru_proc); + if (nfapi_mode!=2){ + if(get_nprocs() >= 8) wakeup_tx(eNB,eNB->proc.ru_proc); + else + { + phy_procedures_eNB_TX(eNB, proc, 1); + wakeup_txfh(proc,eNB->proc.ru_proc); + } } } // while !oai_exit @@ -451,30 +445,6 @@ static void* eNB_thread_rxtx( void* param ) { return &eNB_thread_rxtx_status; } - -#if 0 //defined(ENABLE_ITTI) && defined(ENABLE_USE_MME) -// Wait for eNB application initialization to be complete (eNB registration to MME) -static void wait_system_ready (char *message, volatile int *start_flag) { - - static char *indicator[] = {". ", ".. ", "... ", ".... ", ".....", - " ....", " ...", " ..", " .", " "}; - int i = 0; - - while ((!oai_exit) && (*start_flag == 0)) { - LOG_N(EMU, message, indicator[i]); - fflush(stdout); - i = (i + 1) % (sizeof(indicator) / sizeof(indicator[0])); - usleep(200000); - } - - LOG_D(EMU,"\n"); -} -#endif - - - - - void eNB_top(PHY_VARS_eNB *eNB, int frame_rx, int subframe_rx, char *string,RU_t *ru) { eNB_proc_t *proc = &eNB->proc; @@ -596,7 +566,7 @@ int wakeup_rxtx(PHY_VARS_eNB *eNB,RU_t *ru) { eNB_proc_t *proc=&eNB->proc; RU_proc_t *ru_proc=&ru->proc; - eNB_rxtx_proc_t *proc_rxtx0=&proc->proc_rxtx[0];//*proc_rxtx=&proc->proc_rxtx[proc->frame_rx&1]; + eNB_rxtx_proc_t *proc_rxtx0=&proc->proc_rxtx[0]; //eNB_rxtx_proc_t *proc_rxtx1=&proc->proc_rxtx[1]; @@ -804,6 +774,7 @@ void wakeup_prach_eNB_br(PHY_VARS_eNB *eNB,RU_t *ru,int frame,int subframe) { } #endif + /*! * \brief The prach receive thread of eNB. * \param param is a \ref eNB_proc_t structure which contains the info what to process. @@ -891,7 +862,6 @@ extern void init_td_thread(PHY_VARS_eNB *); extern void init_te_thread(PHY_VARS_eNB *); extern void kill_td_thread(PHY_VARS_eNB *); extern void kill_te_thread(PHY_VARS_eNB *); -//////////////////////////////////////need to modified////////////////***** static void* process_stats_thread(void* param) { @@ -900,20 +870,23 @@ static void* process_stats_thread(void* param) { wait_sync("process_stats_thread"); while (!oai_exit) { - sleep(1); - if (opp_enabled == 1) { - if (eNB->td) print_meas(&eNB->ulsch_decoding_stats,"ulsch_decoding",NULL,NULL); - if (eNB->te) - { - print_meas(&eNB->dlsch_turbo_encoding_preperation_stats,"dlsch_coding_crc",NULL,NULL); - print_meas(&eNB->dlsch_turbo_encoding_segmentation_stats,"dlsch_segmentation",NULL,NULL); - print_meas(&eNB->dlsch_encoding_stats,"dlsch_encoding",NULL,NULL); - print_meas(&eNB->dlsch_turbo_encoding_signal_stats,"coding_signal",NULL,NULL); - print_meas(&eNB->dlsch_turbo_encoding_main_stats,"coding_main",NULL,NULL); - print_meas(&eNB->dlsch_turbo_encoding_waiting_stats,"coding_wait",NULL,NULL); - print_meas(&eNB->dlsch_turbo_encoding_wakeup_stats0,"coding_worker_0",NULL,NULL); - print_meas(&eNB->dlsch_turbo_encoding_wakeup_stats1,"coding_worker_1",NULL,NULL); - } + sleep(1); + if (opp_enabled == 1) { + if (eNB->td) print_meas(&eNB->ulsch_decoding_stats,"ulsch_decoding",NULL,NULL); + if (eNB->te) + { + print_meas(&eNB->dlsch_turbo_encoding_preperation_stats,"dlsch_coding_crc",NULL,NULL); + print_meas(&eNB->dlsch_turbo_encoding_segmentation_stats,"dlsch_segmentation",NULL,NULL); + print_meas(&eNB->dlsch_encoding_stats,"dlsch_encoding",NULL,NULL); + print_meas(&eNB->dlsch_turbo_encoding_signal_stats,"coding_signal",NULL,NULL); + print_meas(&eNB->dlsch_turbo_encoding_main_stats,"coding_main",NULL,NULL); + print_meas(&eNB->dlsch_turbo_encoding_stats,"turbo_encoding",NULL,NULL); + print_meas(&eNB->dlsch_interleaving_stats,"turbo_interleaving",NULL,NULL); + print_meas(&eNB->dlsch_rate_matching_stats,"turbo_rate_matching",NULL,NULL); + print_meas(&eNB->dlsch_turbo_encoding_waiting_stats,"coding_wait",NULL,NULL); + print_meas(&eNB->dlsch_turbo_encoding_wakeup_stats0,"coding_worker_0",NULL,NULL); + print_meas(&eNB->dlsch_turbo_encoding_wakeup_stats1,"coding_worker_1",NULL,NULL); + } print_meas(&eNB->dlsch_modulation_stats,"dlsch_modulation",NULL,NULL); } } @@ -994,30 +967,19 @@ void init_eNB_proc(int inst) { // attr_td = &proc->attr_td; // attr_te = &proc->attr_te; #endif - //////////////////////////////////////need to modified////////////////***** + if(get_nprocs() > 2 && codingw) { init_te_thread(eNB); init_td_thread(eNB); } - //////////////////////////////////////need to modified////////////////***** - //pthread_create( &proc_rxtx[0].pthread_rxtx, attr0, eNB_thread_rxtx, proc ); - - //pthread_create( &proc_rxtx[0].pthread_rxtx, attr0, eNB_thread_rxtx, proc_rxtx ); - - - // Panos: Should we also include here the case where single_thread_flag = 1 ? - if(nfapi_mode!=2){ - pthread_create( &proc_rxtx[0].pthread_rxtx, attr0, eNB_thread_rxtx, proc ); - pthread_create( &proc_rxtx[1].pthread_rxtx, attr1, tx_thread, proc); - } LOG_I(PHY,"eNB->single_thread_flag:%d\n", eNB->single_thread_flag); - if (eNB->single_thread_flag==0) { - pthread_create( &proc_rxtx[0].pthread_rxtx, attr0, eNB_thread_rxtx, &proc_rxtx[0] ); - pthread_create( &proc_rxtx[1].pthread_rxtx, attr1, eNB_thread_rxtx, &proc_rxtx[1] ); + if (eNB->single_thread_flag==0 && nfapi_mode!=2) { + pthread_create( &proc_rxtx[0].pthread_rxtx, attr0, eNB_thread_rxtx, proc ); + pthread_create( &proc_rxtx[1].pthread_rxtx, attr1, tx_thread, proc); } pthread_create( &proc->pthread_prach, attr_prach, eNB_thread_prach, eNB ); #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) @@ -1111,7 +1073,7 @@ void kill_eNB_proc(int inst) { pthread_join( proc->pthread_prach_br, (void**)&status ); pthread_mutex_destroy( &proc->mutex_prach_br ); pthread_cond_destroy( &proc->cond_prach_br ); -#endif +#endif LOG_I(PHY, "Destroying UL_INFO mutex\n"); pthread_mutex_destroy(&eNB->UL_INFO_mutex); for (i=0;i<2;i++) { @@ -1176,7 +1138,7 @@ void init_transport(PHY_VARS_eNB *eNB) { LOG_I(PHY, "Initialise transport\n"); for (i=0; idlsch[i][j] = new_eNB_dlsch(1,8,NSOFT,fp->N_RB_DL,0,fp); if (!eNB->dlsch[i][j]) { @@ -1189,7 +1151,7 @@ void init_transport(PHY_VARS_eNB *eNB) { } } - LOG_I(PHY,"Allocating Transport Channel Buffer for ULSCH, UE %d\n",i); + LOG_D(PHY,"Allocating Transport Channel Buffer for ULSCH, UE %d\n",i); eNB->ulsch[1+i] = new_eNB_ulsch(MAX_TURBO_ITERATIONS,fp->N_RB_UL, 0); if (!eNB->ulsch[1+i]) { diff --git a/targets/RT/USER/lte-ru.c b/targets/RT/USER/lte-ru.c index f2c6129055..65bd11d67d 100644 --- a/targets/RT/USER/lte-ru.c +++ b/targets/RT/USER/lte-ru.c @@ -83,11 +83,11 @@ #include "RRC/LTE/rrc_extern.h" #include "PHY_INTERFACE/phy_interface.h" -#include "UTIL/LOG/log_extern.h" +#include "common/utils/LOG/log.h" #include "UTIL/OTG/otg_tx.h" #include "UTIL/OTG/otg_externs.h" #include "UTIL/MATH/oml.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "UTIL/OPT/opt.h" #include "enb_config.h" //#include "PHY/TOOLS/time_meas.h" @@ -114,11 +114,13 @@ static int DEFENBS[] = {0}; #include "T.h" +#include "pdcp.h" extern volatile int oai_exit; extern int emulate_rf; extern int numerology; extern int fepw; +extern int single_thread_flag; extern void phy_init_RU(RU_t*); @@ -488,6 +490,19 @@ void fh_if4p5_north_out(RU_t *ru) { } +/* add fail safe for late command */ +typedef enum { + STATE_BURST_NORMAL = 0, + STATE_BURST_TERMINATE = 1, + STATE_BURST_STOP_1 = 2, + STATE_BURST_STOP_2 = 3, + STATE_BURST_RESTART = 4, +} late_control_e; + +volatile late_control_e late_control=STATE_BURST_NORMAL; + +/* add fail safe for late command end */ + static void* emulatedRF_thread(void* param) { RU_proc_t *proc = (RU_proc_t *) param; int microsec = 500; // length of time to sleep, in miliseconds @@ -508,6 +523,11 @@ static void* emulatedRF_thread(void* param) { wait_sync("emulatedRF_thread"); while(!oai_exit){ nanosleep(&req, (struct timespec *)NULL); + if(proc->emulate_rf_busy ) + { + LOG_E(PHY,"rf being delayed in emulated RF\n"); + } + proc->emulate_rf_busy = 1; pthread_mutex_lock(&proc->mutex_emulateRF); ++proc->instance_cnt_emulateRF; pthread_mutex_unlock(&proc->mutex_emulateRF); @@ -563,9 +583,12 @@ void rx_rf(RU_t *ru,int *frame,int *subframe) { proc->timestamp_rx = ts-ru->ts_offset; - //AssertFatal(rxs == fp->samples_per_tti, - //"rx_rf: Asked for %d samples, got %d from USRP\n",fp->samples_per_tti,rxs); - if (rxs != fp->samples_per_tti) LOG_E(PHY, "rx_rf: Asked for %d samples, got %d from USRP\n",fp->samples_per_tti,rxs); +// AssertFatal(rxs == fp->samples_per_tti, +// "rx_rf: Asked for %d samples, got %d from USRP\n",fp->samples_per_tti,rxs); + if(rxs != fp->samples_per_tti){ + LOG_E(PHY,"rx_rf: Asked for %d samples, got %d from USRP\n",fp->samples_per_tti,rxs); + late_control=STATE_BURST_TERMINATE; + } if (proc->first_rx == 1) { ru->ts_offset = proc->timestamp_rx; @@ -590,11 +613,19 @@ void rx_rf(RU_t *ru,int *frame,int *subframe) { proc->subframe_rx = (proc->timestamp_rx / fp->samples_per_tti)%10; // synchronize first reception to frame 0 subframe 0 + if (ru->fh_north_asynch_in == NULL) { - proc->timestamp_tx = proc->timestamp_rx+(sf_ahead*fp->samples_per_tti); - proc->subframe_tx = (proc->subframe_rx+sf_ahead)%10; - proc->frame_tx = (proc->subframe_rx>(9-sf_ahead)) ? (proc->frame_rx+1)&1023 : proc->frame_rx; - } +#ifdef PHY_TX_THREAD + proc->timestamp_phy_tx = proc->timestamp_rx+((sf_ahead-1)*fp->samples_per_tti); + proc->subframe_phy_tx = (proc->subframe_rx+(sf_ahead-1))%10; + proc->frame_phy_tx = (proc->subframe_rx>(9-(sf_ahead-1))) ? (proc->frame_rx+1)&1023 : proc->frame_rx; +#else + proc->timestamp_tx = proc->timestamp_rx+(sf_ahead*fp->samples_per_tti); + proc->subframe_tx = (proc->subframe_rx+sf_ahead)%10; + proc->frame_tx = (proc->subframe_rx>(9-sf_ahead)) ? (proc->frame_rx+1)&1023 : proc->frame_rx; +#endif + } + LOG_D(PHY,"RU %d/%d TS %llu (off %d), frame %d, subframe %d\n", ru->idx, 0, @@ -632,10 +663,14 @@ void rx_rf(RU_t *ru,int *frame,int *subframe) { VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_TRX_TS, proc->timestamp_rx&0xffffffff ); if (rxs != fp->samples_per_tti) - { - //exit_fun( "problem receiving samples" ); - LOG_E(PHY, "problem receiving samples"); - } + { +#if defined(USRP_REC_PLAY) + exit_fun("Exiting IQ record/playback"); +#else + //exit_fun( "problem receiving samples" ); + LOG_E(PHY, "problem receiving samples"); +#endif + } } @@ -670,7 +705,7 @@ void tx_rf(RU_t *ru) { (prevSF_type == SF_UL) && (nextSF_type == SF_DL)) { flags = 2; // start of burst - sf_extension = ru->N_TA_offset<<1; + sf_extension = ru->N_TA_offset; } if ((fp->frame_type == TDD) && @@ -678,15 +713,55 @@ void tx_rf(RU_t *ru) { (prevSF_type == SF_UL) && (nextSF_type == SF_UL)) { flags = 4; // start of burst and end of burst (only one DL SF between two UL) - sf_extension = ru->N_TA_offset<<1; + sf_extension = ru->N_TA_offset; } - +#if defined(__x86_64) || defined(__i386__) +#ifdef __AVX2__ + sf_extension = (sf_extension)&0xfffffff8; +#else + sf_extension = (sf_extension)&0xfffffffc; +#endif +#elif defined(__arm__) + sf_extension = (sf_extension)&0xfffffffc; +#endif + for (i=0; inb_tx; i++) txp[i] = (void*)&ru->common.txdata[i][(proc->subframe_tx*fp->samples_per_tti)-sf_extension]; + /* add fail safe for late command */ + if(late_control!=STATE_BURST_NORMAL){//stop burst + switch (late_control) { + case STATE_BURST_TERMINATE: + flags=10; // end of burst and no time spec + late_control=STATE_BURST_STOP_1; + break; + + case STATE_BURST_STOP_1: + flags=0; // no send + late_control=STATE_BURST_STOP_2; + return;//no send + break; + + case STATE_BURST_STOP_2: + flags=0; // no send + late_control=STATE_BURST_RESTART; + return;//no send + break; + + case STATE_BURST_RESTART: + flags=2; // start burst + late_control=STATE_BURST_NORMAL; + break; + default: + LOG_D(PHY,"[TXPATH] RU %d late_control %d not implemented\n",ru->idx, late_control); + break; + } + } + /* add fail safe for late command end */ + VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX0_RU, proc->frame_tx ); VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_TX0_RU, proc->subframe_tx ); - + VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_TRX_TST, (proc->timestamp_tx-ru->openair0_cfg.tx_sample_advance)&0xffffffff ); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE, 1 ); // prepare tx buffer pointers @@ -703,8 +778,11 @@ void tx_rf(RU_t *ru) { VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE, 0 ); - AssertFatal(txs == siglen+sf_extension,"TX : Timeout (sent %d/%d)\n",txs, siglen); - +// AssertFatal(txs == siglen+sf_extension,"TX : Timeout (sent %d/%d)\n",txs, siglen); + if( (txs != siglen+sf_extension) && (late_control==STATE_BURST_NORMAL) ){ /* add fail safe for late command */ + late_control=STATE_BURST_TERMINATE; + LOG_E(PHY,"TX : Timeout (sent %d/%d) state =%d\n",txs, siglen,late_control); + } } } @@ -782,7 +860,6 @@ void wakeup_slaves(RU_proc_t *proc) { wait.tv_nsec=5000000L; for (i=0;inum_slaves;i++) { - //printf("////////////////////calling for slave thrads\n");////////////////////////******** RU_proc_t *slave_proc = proc->slave_proc[i]; // wake up slave FH thread // lock the FH mutex and make sure the thread is ready @@ -1039,7 +1116,7 @@ void wakeup_eNBs(RU_t *ru) { LOG_D(PHY,"wakeup_eNBs (num %d) for RU %d (state %s)ru->eNB_top:%p\n",ru->num_eNB,ru->idx, ru_states[ru->state],ru->eNB_top); - if (ru->num_eNB==1 && ru->eNB_top!=0 && get_nprocs() <= 4) { + if (ru->num_eNB==1 && ru->eNB_top!=0 && (get_nprocs() <= 4 || single_thread_flag)) { // call eNB function directly char string[20]; @@ -1112,6 +1189,7 @@ void wakeup_eNBs(RU_t *ru) { // LOG_D(PHY,"wakeup eNB top for for subframe %d\n", ru->proc.subframe_rx); // ru->eNB_top(eNB_list[0],ru->proc.frame_rx,ru->proc.subframe_rx,string); + ru->proc.emulate_rf_busy = 0; } else { @@ -1124,16 +1202,11 @@ void wakeup_eNBs(RU_t *ru) { LOG_D(PHY,"ru->wakeup_rxtx:%p\n", ru->wakeup_rxtx); eNB_list[i]->proc.ru_proc = &ru->proc; if (ru->wakeup_rxtx!=0 && ru->wakeup_rxtx(eNB_list[i],ru) < 0) - { - - - - - LOG_E(PHY,"could not wakeup eNB rxtx process for subframe %d\n", ru->proc.subframe_rx); - + LOG_E(PHY,"could not wakeup eNB rxtx process for subframe %d\n", ru->proc.subframe_rx); } - } + ru->proc.emulate_rf_busy = 0; + } } } @@ -1272,8 +1345,8 @@ void fill_rf_config(RU_t *ru, char *rf_config_file) { cfg->tx_freq[i] = (double)fp->dl_CarrierFreq; cfg->rx_freq[i] = (double)fp->ul_CarrierFreq; - cfg->tx_gain[i] = ru->att_tx; - cfg->rx_gain[i] = ru->max_rxgain-ru->att_rx; + cfg->tx_gain[i] = (double)ru->att_tx; + cfg->rx_gain[i] = ru->max_rxgain-(double)ru->att_rx; cfg->configFilename = rf_config_file; printf("channel %d, Setting tx_gain offset %f, rx_gain offset %f, tx_freq %f, rx_freq %f\n", @@ -1353,15 +1426,11 @@ static void* ru_stats_thread(void* param) { RU_t *ru = (RU_t*)param; - PHY_VARS_eNB **eNB_list = ru->eNB_list; - PHY_VARS_eNB *eNB=eNB_list[0]; - eNB_proc_t *proc = &eNB->proc; - wait_sync("ru_stats_thread"); while (!oai_exit) { sleep(1); - if (opp_enabled == 1 && fepw) { + if (opp_enabled) { if (ru->feprx) print_meas(&ru->ofdm_demod_stats,"feprx",NULL,NULL); if (ru->feptx_ofdm) print_meas(&ru->ofdm_mod_stats,"feptx_ofdm",NULL,NULL); if (ru->fh_north_asynch_in) print_meas(&ru->rx_fhaul,"rx_fhaul",NULL,NULL); @@ -1375,6 +1444,12 @@ static void* ru_stats_thread(void* param) { return(NULL); } +#ifdef PHY_TX_THREAD +int first_phy_tx = 1; +volatile int16_t phy_tx_txdataF_end; +volatile int16_t phy_tx_end; +#endif + static void* ru_thread_tx( void* param ) { RU_t *ru = (RU_t*)param; RU_proc_t *proc = &ru->proc; @@ -1389,6 +1464,7 @@ static void* ru_thread_tx( void* param ) { //wait_sync("ru_thread_tx"); wait_on_condition(&proc->mutex_FH1,&proc->cond_FH1,&proc->instance_cnt_FH1,"ru_thread_tx"); + printf( "ru_thread_tx ready\n"); while (!oai_exit) { @@ -1450,6 +1526,9 @@ static void* ru_thread( void* param ) { // set default return value ru_thread_status = 0; +#if defined(PRE_SCD_THREAD) + dlsch_ue_select_tbl_in_use = 1; +#endif thread_top_init("ru_thread",0,870000,1000000,1000000); @@ -1566,28 +1645,36 @@ static void* ru_thread( void* param ) { subframe++; } - // synchronization on input FH interface, acquire signals/data and block - if (ru->stop_rf && ru->cmd == STOP_RU) { - ru->stop_rf(ru); - ru->state = RU_IDLE; - ru->cmd = EMPTY; - LOG_I(PHY,"RU %d rf device stopped\n",ru->idx); - break; - } - else if (ru->cmd == STOP_RU) { - ru->state = RU_IDLE; - ru->cmd = EMPTY; - LOG_I(PHY,"RU %d stopped\n",ru->idx); - break; - } - if (oai_exit == 1) break; - - LOG_D(PHY,"RU thread %d, frame %d, subframe %d \n",ru->idx, frame, subframe); - if (ru->fh_south_in && ru->state == RU_RUN ) ru->fh_south_in(ru,&frame,&subframe); + if (ru->fh_south_in) ru->fh_south_in(ru,&frame,&subframe); else AssertFatal(1==0, "No fronthaul interface at south port"); - +#ifdef PHY_TX_THREAD + if(first_phy_tx == 0) + { + phy_tx_end = 0; + phy_tx_txdataF_end = 0; + if(pthread_mutex_lock(&ru->proc.mutex_phy_tx) != 0){ + LOG_E( PHY, "[RU] ERROR pthread_mutex_lock for phy tx thread (IC %d)\n", ru->proc.instance_cnt_phy_tx); + exit_fun( "error locking mutex_rxtx" ); + } + if (ru->proc.instance_cnt_phy_tx==-1) { + ++ru->proc.instance_cnt_phy_tx; + + // the thread can now be woken up + AssertFatal(pthread_cond_signal(&ru->proc.cond_phy_tx) == 0, "ERROR pthread_cond_signal for phy_tx thread\n"); + }else{ + LOG_E(PHY,"phy tx thread busy, skipping\n"); + ++ru->proc.instance_cnt_phy_tx; + } + pthread_mutex_unlock( &ru->proc.mutex_phy_tx ); + } else { + phy_tx_end = 1; + phy_tx_txdataF_end = 1; + } + first_phy_tx = 0; +#endif + if (ru->stop_rf && ru->cmd == STOP_RU) { ru->stop_rf(ru); ru->state = RU_IDLE; @@ -1620,10 +1707,9 @@ static void* ru_thread( void* param ) { AssertFatal((ru->ifdevice.trx_ctlsend_func(&ru->ifdevice,&rru_config_msg,rru_config_msg.len)!=-1),"Failed to send msg to RAU\n"); resynch_done=1; } + wakeup_eNBs(ru); } - - else { LOG_D(PHY,"RU thread %d, frame %d, subframe %d \n", @@ -1633,6 +1719,7 @@ static void* ru_thread( void* param ) { LOG_D(PHY,"Waking up prach for %d.%d\n",proc->frame_rx,proc->subframe_rx); wakeup_prach_ru(ru); } + #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) else if ((ru->do_prach>0) && (is_prach_subframe(fp, proc->frame_rx, proc->subframe_rx)>1)) { wakeup_prach_ru_br(ru); @@ -1653,41 +1740,74 @@ static void* ru_thread( void* param ) { pthread_mutex_lock(&proc->mutex_eNBs); if (proc->instance_cnt_eNBs==0) proc->instance_cnt_eNBs--; pthread_mutex_unlock(&proc->mutex_eNBs); - if (ru->num_eNB>0) { - wakeup_eNBs(ru); - LOG_D(PHY,"RU %d: Waiting for eNB to complete\n",ru->idx); - // wait until eNBs are finished subframe RX n and TX n+4 - sprintf(strname,"ru_thread %d (condeNBs)",ru->idx); - wait_on_condition(&proc->mutex_eNBs,&proc->cond_eNBs,&proc->instance_cnt_eNBs,strname); - LOG_D(PHY,"RU %d: continuing\n",ru->idx); - } - if(get_nprocs() <= 4){ - // do TX front-end processing if needed (precoding and/or IDFTs) - if (ru->feptx_prec) ru->feptx_prec(ru); - - // do OFDM if needed - if ((ru->fh_north_asynch_in == NULL) && (ru->feptx_ofdm)) ru->feptx_ofdm(ru); - - if(!emulate_rf){ - // do outgoing fronthaul (south) if needed - if ((ru->fh_north_asynch_in == NULL) && (ru->fh_south_out)) ru->fh_south_out(ru); - LOG_D(PHY,"Calling fh_north_out\n"); - if (ru->fh_north_out) ru->fh_north_out(ru); - } - } - } +#if defined(PRE_SCD_THREAD) + new_dlsch_ue_select_tbl_in_use = dlsch_ue_select_tbl_in_use; + dlsch_ue_select_tbl_in_use = !dlsch_ue_select_tbl_in_use; + memcpy(&pre_scd_eNB_UE_stats,&RC.mac[ru->eNB_list[0]->Mod_id]->UE_list.eNB_UE_stats, sizeof(eNB_UE_STATS)*MAX_NUM_CCs*NUMBER_OF_UE_MAX); + memcpy(&pre_scd_activeUE, &RC.mac[ru->eNB_list[0]->Mod_id]->UE_list.active, sizeof(boolean_t)*NUMBER_OF_UE_MAX); + if (pthread_mutex_lock(&ru->proc.mutex_pre_scd)!= 0) { + LOG_E( PHY, "[eNB] error locking proc mutex for eNB pre scd\n"); + exit_fun("error locking mutex_time"); + } + + ru->proc.instance_pre_scd++; + + if (ru->proc.instance_pre_scd == 0) { + if (pthread_cond_signal(&ru->proc.cond_pre_scd) != 0) { + LOG_E( PHY, "[eNB] ERROR pthread_cond_signal for eNB pre scd\n" ); + exit_fun( "ERROR pthread_cond_signal cond_pre_scd" ); + } + }else{ + LOG_E( PHY, "[eNB] frame %d subframe %d rxtx busy instance_pre_scd %d\n", + frame,subframe,ru->proc.instance_pre_scd ); + } + + if (pthread_mutex_unlock(&ru->proc.mutex_pre_scd)!= 0) { + LOG_E( PHY, "[eNB] error unlocking mutex_pre_scd mutex for eNB pre scd\n"); + exit_fun("error unlocking mutex_pre_scd"); + } +#endif + + // wakeup all eNB processes waiting for this RU + if (ru->num_eNB>0) wakeup_eNBs(ru); + +#ifndef PHY_TX_THREAD + if(get_nprocs() <= 4 || ru->num_eNB==0 || single_thread_flag){ + // do TX front-end processing if needed (precoding and/or IDFTs) + if (ru->feptx_prec) ru->feptx_prec(ru); + + // do OFDM if needed + if ((ru->fh_north_asynch_in == NULL) && (ru->feptx_ofdm)) ru->feptx_ofdm(ru); + if(!emulate_rf){ + // do outgoing fronthaul (south) if needed + if ((ru->fh_north_asynch_in == NULL) && (ru->fh_south_out)) ru->fh_south_out(ru); + + if (ru->fh_north_out) ru->fh_north_out(ru); + } + proc->emulate_rf_busy = 0; + } +#else + struct timespec time_req, time_rem; + time_req.tv_sec = 0; + time_req.tv_nsec = 10000; + + while((!oai_exit)&&(phy_tx_end == 0)){ + nanosleep(&time_req,&time_rem); + continue; + } +#endif } - - } // while !oai_exit - + printf( "Exiting ru_thread \n"); - if (ru->stop_rf != NULL) { - if (ru->stop_rf(ru) != 0) - LOG_E(HW,"Could not stop the RF device\n"); - else LOG_I(PHY,"RU %d rf device stopped\n",ru->idx); + if (!emulate_rf){ + if (ru->stop_rf != NULL) { + if (ru->stop_rf(ru) != 0) + LOG_E(HW,"Could not stop the RF device\n"); + else LOG_I(PHY,"RU %d rf device stopped\n",ru->idx); + } } return NULL; @@ -1729,6 +1849,7 @@ void *ru_thread_synch(void *arg) { LOG_I(PHY,"RU synch cnt %d: %d, val %d\n",cnt,sync_pos,peak_val); cnt++; if (sync_pos >= 0) { + LOG_I(PHY,"Estimated peak_val %d dB, avg %d => timing offset %d\n",ru->rx_offset,dB_fixed(peak_val),dB_fixed(ru->rx_offset)); ru->in_synch = 1; @@ -1745,6 +1866,168 @@ void *ru_thread_synch(void *arg) { } +#if defined(PRE_SCD_THREAD) +void* pre_scd_thread( void* param ){ + static int eNB_pre_scd_status; + protocol_ctxt_t ctxt; + int frame; + int subframe; + int min_rb_unit[MAX_NUM_CCs]; + int CC_id; + int Mod_id; + RU_t *ru = (RU_t*)param; + Mod_id = ru->eNB_list[0]->Mod_id; + + frame = 0; + subframe = 4; + thread_top_init("pre_scd_thread",0,870000,1000000,1000000); + + while (!oai_exit) { + if(oai_exit){ + break; + } + pthread_mutex_lock(&ru->proc.mutex_pre_scd ); + if (ru->proc.instance_pre_scd < 0) { + pthread_cond_wait(&ru->proc.cond_pre_scd, &ru->proc.mutex_pre_scd); + } + pthread_mutex_unlock(&ru->proc.mutex_pre_scd); + PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, Mod_id, ENB_FLAG_YES, + NOT_A_RNTI, frame, subframe,Mod_id); + pdcp_run(&ctxt); + + for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { + + rrc_rx_tx(&ctxt, CC_id); + min_rb_unit[CC_id] = get_min_rb_unit(Mod_id, CC_id); + } + + pre_scd_nb_rbs_required(Mod_id, frame, subframe,min_rb_unit,pre_nb_rbs_required[new_dlsch_ue_select_tbl_in_use]); + + if (subframe==9) { + subframe=0; + frame++; + frame&=1023; + } else { + subframe++; + } + pthread_mutex_lock(&ru->proc.mutex_pre_scd ); + ru->proc.instance_pre_scd--; + pthread_mutex_unlock(&ru->proc.mutex_pre_scd); + } + eNB_pre_scd_status = 0; + return &eNB_pre_scd_status; +} +#endif + +#ifdef PHY_TX_THREAD +/*! + * \brief The phy tx thread of eNB. + * \param param is a \ref eNB_proc_t structure which contains the info what to process. + * \returns a pointer to an int. The storage is not on the heap and must not be freed. + */ +static void* eNB_thread_phy_tx( void* param ) { + static int eNB_thread_phy_tx_status; + + + RU_t *ru = (RU_t*)param; + RU_proc_t *proc = &ru->proc; + PHY_VARS_eNB **eNB_list = ru->eNB_list; + + eNB_rxtx_proc_t proc_rxtx; + + // set default return value + eNB_thread_phy_tx_status = 0; + + thread_top_init("eNB_thread_phy_tx",1,500000L,1000000L,20000000L); + + + while (!oai_exit) { + + if (oai_exit) break; + + + if (wait_on_condition(&proc->mutex_phy_tx,&proc->cond_phy_tx,&proc->instance_cnt_phy_tx,"eNB_phy_tx_thread") < 0) break; + + LOG_D(PHY,"Running eNB phy tx procedures\n"); + if(ru->num_eNB == 1){ + proc_rxtx.subframe_tx = proc->subframe_phy_tx; + proc_rxtx.frame_tx = proc->frame_phy_tx; + phy_procedures_eNB_TX(eNB_list[0], &proc_rxtx, 1); + phy_tx_txdataF_end = 1; + if(pthread_mutex_lock(&ru->proc.mutex_rf_tx) != 0){ + LOG_E( PHY, "[RU] ERROR pthread_mutex_lock for rf tx thread (IC %d)\n", ru->proc.instance_cnt_rf_tx); + exit_fun( "error locking mutex_rf_tx" ); + } + if (ru->proc.instance_cnt_rf_tx==-1) { + ++ru->proc.instance_cnt_rf_tx; + ru->proc.frame_tx = proc->frame_phy_tx; + ru->proc.subframe_tx = proc->subframe_phy_tx; + ru->proc.timestamp_tx = proc->timestamp_phy_tx; + + // the thread can now be woken up + AssertFatal(pthread_cond_signal(&ru->proc.cond_rf_tx) == 0, "ERROR pthread_cond_signal for rf_tx thread\n"); + }else{ + LOG_E(PHY,"rf tx thread busy, skipping\n"); + late_control=STATE_BURST_TERMINATE; + } + pthread_mutex_unlock( &ru->proc.mutex_rf_tx ); + } + if (release_thread(&proc->mutex_phy_tx,&proc->instance_cnt_phy_tx,"eNB_thread_phy_tx") < 0) break; + phy_tx_end = 1; + } + + LOG_I(PHY, "Exiting eNB thread PHY TX\n"); + + eNB_thread_phy_tx_status = 0; + return &eNB_thread_phy_tx_status; +} + + +static void* rf_tx( void* param ) { + static int rf_tx_status; + + RU_t *ru = (RU_t*)param; + RU_proc_t *proc = &ru->proc; + + // set default return value + rf_tx_status = 0; + + thread_top_init("rf_tx",1,500000L,1000000L,20000000L); + + while (!oai_exit) { + + if (oai_exit) break; + + + if (wait_on_condition(&proc->mutex_rf_tx,&proc->cond_rf_tx,&proc->instance_cnt_rf_tx,"rf_tx_thread") < 0) break; + + LOG_D(PHY,"Running eNB rf tx procedures\n"); + if(ru->num_eNB == 1){ + // do TX front-end processing if needed (precoding and/or IDFTs) + if (ru->feptx_prec) ru->feptx_prec(ru); + // do OFDM if needed + if ((ru->fh_north_asynch_in == NULL) && (ru->feptx_ofdm)) ru->feptx_ofdm(ru); + if(!emulate_rf){ + // do outgoing fronthaul (south) if needed + if ((ru->fh_north_asynch_in == NULL) && (ru->fh_south_out)) ru->fh_south_out(ru); + + if (ru->fh_north_out) ru->fh_north_out(ru); + } + } + if (release_thread(&proc->mutex_rf_tx,&proc->instance_cnt_rf_tx,"rf_tx") < 0) break; + if(proc->instance_cnt_rf_tx >= 0){ + late_control=STATE_BURST_TERMINATE; + LOG_E(PHY,"detect rf tx busy change mode TX failsafe\n"); + } + } + + LOG_I(PHY, "Exiting rf TX\n"); + + rf_tx_status = 0; + return &rf_tx_status; +} +#endif + int start_if(struct RU_t_s *ru,struct PHY_VARS_eNB_s *eNB) { @@ -1768,6 +2051,8 @@ extern void feptx_ofdm_2thread(RU_t *ru); extern void feptx_prec(RU_t *ru); extern void init_fep_thread(RU_t *ru,pthread_attr_t *attr); extern void init_feptx_thread(RU_t *ru,pthread_attr_t *attr); +extern void kill_fep_thread(RU_t *ru); +extern void kill_feptx_thread(RU_t *ru); extern void configure_ru(int idx, void *arg); @@ -1862,6 +2147,15 @@ void init_RU_proc(RU_t *ru) { pthread_cond_init( &proc->cond_prach_br, NULL); pthread_attr_init( &proc->attr_prach_br); #endif + +#ifdef PHY_TX_THREAD + proc->instance_cnt_phy_tx = -1; + pthread_mutex_init( &proc->mutex_phy_tx, NULL); + pthread_cond_init( &proc->cond_phy_tx, NULL); + proc->instance_cnt_rf_tx = -1; + pthread_mutex_init( &proc->mutex_rf_tx, NULL); + pthread_cond_init( &proc->cond_rf_tx, NULL); +#endif #ifndef DEADLINE_SCHEDULER attr_FH = &proc->attr_FH; @@ -1880,9 +2174,26 @@ void init_RU_proc(RU_t *ru) { pthread_create( &proc->pthread_FH, attr_FH, ru_thread, (void*)ru ); - if (emulate_rf) pthread_create( &proc->pthread_emulateRF, attr_emulateRF, emulatedRF_thread, (void*)proc ); - if (get_nprocs() > 4) pthread_create( &proc->pthread_FH1, attr_FH1, ru_thread_tx, (void*)ru ); +#if defined(PRE_SCD_THREAD) + proc->instance_pre_scd = -1; + pthread_mutex_init( &proc->mutex_pre_scd, NULL); + pthread_cond_init( &proc->cond_pre_scd, NULL); + pthread_create(&proc->pthread_pre_scd, NULL, pre_scd_thread, (void*)ru); + pthread_setname_np(proc->pthread_pre_scd, "pre_scd_thread"); +#endif + +#ifdef PHY_TX_THREAD + pthread_create( &proc->pthread_phy_tx, NULL, eNB_thread_phy_tx, (void*)ru ); + pthread_setname_np( proc->pthread_phy_tx, "phy_tx_thread" ); + pthread_create( &proc->pthread_rf_tx, NULL, rf_tx, (void*)ru ); +#endif + + if(emulate_rf) + pthread_create( &proc->pthread_emulateRF, attr_emulateRF, emulatedRF_thread, (void*)proc ); + + if (!single_thread_flag && get_nprocs() > 4) + pthread_create( &proc->pthread_FH1, attr_FH1, ru_thread_tx, (void*)ru ); if (ru->function == NGFI_RRU_IF4p5) { @@ -1922,14 +2233,11 @@ void init_RU_proc(RU_t *ru) { } if (get_nprocs()> 2 && fepw) { - if (ru->feprx) init_fep_thread(ru,NULL); - if (ru->feptx_ofdm) init_feptx_thread(ru,NULL); + init_fep_thread(ru,NULL); + init_feptx_thread(ru,NULL); } if (opp_enabled == 1) pthread_create(&ru->ru_stats_thread,NULL,ru_stats_thread,(void*)ru); - pthread_create( &proc->pthread_FH, attr_FH, ru_thread, (void*)ru ); - snprintf( name, sizeof(name), "ru_thread_FH %d", ru->idx ); - pthread_setname_np( proc->pthread_FH, name ); if (ru->function == eNodeB_3GPP) { usleep(10000); @@ -1946,6 +2254,13 @@ void kill_RU_proc(int inst) RU_t *ru = RC.ru[inst]; RU_proc_t *proc = &ru->proc; + if (get_nprocs() > 2 && fepw) { + LOG_D(PHY, "killing FEP thread\n"); + kill_fep_thread(ru); + LOG_D(PHY, "killing FEP TX thread\n"); + kill_feptx_thread(ru); + } + pthread_mutex_lock(&proc->mutex_FH); proc->instance_cnt_FH = 0; pthread_cond_signal(&proc->cond_FH); @@ -1984,10 +2299,10 @@ void kill_RU_proc(int inst) pthread_cond_signal(&proc->cond_asynch_rxtx); pthread_mutex_unlock(&proc->mutex_asynch_rxtx); - LOG_D(PHY, "Joining pthread_FH\n"); + /*LOG_D(PHY, "Joining pthread_FH\n"); pthread_join(proc->pthread_FH, NULL); LOG_D(PHY, "Joining pthread_FHTX\n"); - pthread_join(proc->pthread_FH1, NULL); + pthread_join(proc->pthread_FH1, NULL);*/ if (ru->function == NGFI_RRU_IF4p5) { LOG_D(PHY, "Joining pthread_prach\n"); pthread_join(proc->pthread_prach, NULL); @@ -2007,28 +2322,6 @@ void kill_RU_proc(int inst) pthread_join(proc->pthread_asynch_rxtx, NULL); } } - if (get_nprocs() > 2 && fepw) { - if (ru->feprx) { - pthread_mutex_lock(&proc->mutex_fep); - proc->instance_cnt_fep = 0; - pthread_mutex_unlock(&proc->mutex_fep); - pthread_cond_signal(&proc->cond_fep); - LOG_D(PHY, "Joining pthread_fep\n"); - pthread_join(proc->pthread_fep, NULL); - pthread_mutex_destroy(&proc->mutex_fep); - pthread_cond_destroy(&proc->cond_fep); - } - if (ru->feptx_ofdm) { - pthread_mutex_lock(&proc->mutex_feptx); - proc->instance_cnt_feptx = 0; - pthread_mutex_unlock(&proc->mutex_feptx); - pthread_cond_signal(&proc->cond_feptx); - LOG_D(PHY, "Joining pthread_feptx\n"); - pthread_join(proc->pthread_feptx, NULL); - pthread_mutex_destroy(&proc->mutex_feptx); - pthread_cond_destroy(&proc->cond_feptx); - } - } if (opp_enabled) { LOG_D(PHY, "Joining ru_stats_thread\n"); pthread_join(ru->ru_stats_thread, NULL); @@ -2067,8 +2360,6 @@ void kill_RU_proc(int inst) - - void init_precoding_weights(PHY_VARS_eNB *eNB) { int layer,ru_id,aa,re,ue,tb; @@ -2243,7 +2534,7 @@ void set_function_spec_param(RU_t *ru) } // switch on interface type } -extern void RCconfig_RU(void); +//extern void RCconfig_RU(void); void init_RU(char *rf_config_file, clock_source_t clock_source,clock_source_t time_source,int send_dmrssync) { @@ -2326,6 +2617,37 @@ void init_RU(char *rf_config_file, clock_source_t clock_source,clock_source_t ti +void stop_ru(RU_t *ru) { + +#if defined(PRE_SCD_THREAD) || defined(PHY_TX_THREAD) + int *status; +#endif + printf("Stopping RU %p processing threads\n",(void*)ru); +#if defined(PRE_SCD_THREAD) + if(ru){ + ru->proc.instance_pre_scd = 0; + pthread_cond_signal( &ru->proc.cond_pre_scd ); + pthread_join(ru->proc.pthread_pre_scd, (void**)&status ); + pthread_mutex_destroy(&ru->proc.mutex_pre_scd ); + pthread_cond_destroy(&ru->proc.cond_pre_scd ); + } +#endif +#ifdef PHY_TX_THREAD + if(ru){ + ru->proc.instance_cnt_phy_tx = 0; + pthread_cond_signal(&ru->proc.cond_phy_tx); + pthread_join( ru->proc.pthread_phy_tx, (void**)&status ); + pthread_mutex_destroy( &ru->proc.mutex_phy_tx ); + pthread_cond_destroy( &ru->proc.cond_phy_tx ); + ru->proc.instance_cnt_rf_tx = 0; + pthread_cond_signal(&ru->proc.cond_rf_tx); + pthread_join( ru->proc.pthread_rf_tx, (void**)&status ); + pthread_mutex_destroy( &ru->proc.mutex_rf_tx ); + pthread_cond_destroy( &ru->proc.cond_rf_tx ); + } +#endif +} + void stop_RU(int nb_ru) { for (int inst = 0; inst < nb_ru; inst++) { diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c index feb6bd6029..8ff69d108c 100644 --- a/targets/RT/USER/lte-softmodem.c +++ b/targets/RT/USER/lte-softmodem.c @@ -34,9 +34,6 @@ #define _GNU_SOURCE /* See feature_test_macros(7) */ #include - -#include "T.h" - #include "rt_wrapper.h" @@ -72,11 +69,11 @@ #include "PHY/TOOLS/smbv.h" unsigned short config_frames[4] = {2,9,11,13}; #endif -#include "UTIL/LOG/log_extern.h" +#include "common/utils/LOG/log.h" #include "UTIL/OTG/otg_tx.h" #include "UTIL/OTG/otg_externs.h" #include "UTIL/MATH/oml.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "UTIL/OPT/opt.h" #include "enb_config.h" //#include "PHY/TOOLS/time_meas.h" @@ -138,20 +135,17 @@ static int wait_for_sync = 0; static int send_dmrssync = 0; unsigned int mmapped_dma=0; -int single_thread_flag=1; +int single_thread_flag = 0; static int8_t threequarter_fs=0; uint32_t downlink_frequency[MAX_NUM_CCs][4]; int32_t uplink_frequency_offset[MAX_NUM_CCs][4]; + // This is a dummy declaration (dlsch_demodulation.c is no longer compiled for eNodeB) int16_t dlsch_demod_shift = 0; -#if defined(ENABLE_ITTI) -static char *itti_dump_file = NULL; -#endif - int UE_scan = 1; int UE_scan_carrier = 0; runmode_t mode = normal_txrx; @@ -342,10 +336,14 @@ void exit_fun(const char* s) if (RC.ru == NULL) exit(-1); // likely init not completed, prevent crash or hang, exit now... for (ru_id=0; ru_idrfdevice.trx_end_func) + if (RC.ru[ru_id] && RC.ru[ru_id]->rfdevice.trx_end_func) { RC.ru[ru_id]->rfdevice.trx_end_func(&RC.ru[ru_id]->rfdevice); - if (RC.ru[ru_id] && RC.ru[ru_id]->ifdevice.trx_end_func) + RC.ru[ru_id]->rfdevice.trx_end_func = NULL; + } + if (RC.ru[ru_id] && RC.ru[ru_id]->ifdevice.trx_end_func) { RC.ru[ru_id]->ifdevice.trx_end_func(&RC.ru[ru_id]->ifdevice); + RC.ru[ru_id]->ifdevice.trx_end_func = NULL; + } } @@ -523,12 +521,12 @@ static void get_options(void) { uint32_t online_log_messages; - uint32_t glog_level, glog_verbosity; + uint32_t glog_level ; uint32_t start_telnetsrv; paramdef_t cmdline_params[] =CMDLINE_PARAMS_DESC ; paramdef_t cmdline_logparams[] =CMDLINE_LOGPARAMS_DESC ; - + CONFIG_SETRTFLAG(CONFIG_NOEXITONHELP); config_process_cmdline( cmdline_params,sizeof(cmdline_params)/sizeof(paramdef_t),NULL); if (strlen(in_path) > 0) { @@ -541,25 +539,20 @@ static void get_options(void) { opt_type = OPT_WIRESHARK; printf("Enabling OPT for wireshark for local interface"); } - + CONFIG_CLEARRTFLAG(CONFIG_NOEXITONHELP); config_process_cmdline( cmdline_logparams,sizeof(cmdline_logparams)/sizeof(paramdef_t),NULL); + if(config_isparamset(cmdline_logparams,CMDLINE_ONLINELOG_IDX)) { set_glog_onlinelog(online_log_messages); } if(config_isparamset(cmdline_logparams,CMDLINE_GLOGLEVEL_IDX)) { - set_glog(glog_level, -1); - } - if(config_isparamset(cmdline_logparams,CMDLINE_GLOGVERBO_IDX)) { - set_glog(-1, glog_verbosity); + set_glog(glog_level); } if (start_telnetsrv) { load_module_shlib("telnetsrv",NULL,0); } -#if T_TRACER - paramdef_t cmdline_ttraceparams[] =CMDLINE_TTRACEPARAMS_DESC ; - config_process_cmdline( cmdline_ttraceparams,sizeof(cmdline_ttraceparams)/sizeof(paramdef_t),NULL); -#endif + if ( !(CONFIG_ISFLAGSET(CONFIG_ABORT)) ) { memset((void*)&RC,0,sizeof(RC)); @@ -579,11 +572,6 @@ static void get_options(void) { } -#if T_TRACER -int T_nowait = 0; /* by default we wait for the tracer */ -int T_port = 2021; /* default port to listen to to wait for the tracer */ -int T_dont_fork = 0; /* default is to fork, see 'T_init' to understand */ -#endif @@ -915,7 +903,16 @@ static void wait_nfapi_init(char *thread_name) { pthread_mutex_unlock(&nfapi_sync_mutex); + /* + * Raphael Defosseux: temporary workaround for CI + * -- Repeating the message thrice to make sure + * -- it is present during flush. + */ printf( "NFAPI: got sync (%s)\n", thread_name); + printf( "NFAPI: got sync (%s)\n", thread_name); + printf( "NFAPI: got sync (%s)\n", thread_name); + fflush(stdout); + fflush(stderr); } int main( int argc, char **argv ) @@ -935,10 +932,6 @@ int main( int argc, char **argv ) exit_fun("[SOFTMODEM] Error, configuration module init failed\n"); } -#ifdef DEBUG_CONSOLE - setvbuf(stdout, NULL, _IONBF, 0); - setvbuf(stderr, NULL, _IONBF, 0); -#endif mode = normal_txrx; memset(&openair0_cfg[0],0,sizeof(openair0_config_t)*MAX_CARDS); @@ -959,7 +952,7 @@ int main( int argc, char **argv ) #if T_TRACER - T_init(T_port, 1-T_nowait, T_dont_fork); + T_Config_Init(); #endif @@ -969,21 +962,15 @@ int main( int argc, char **argv ) printf("configuring for RAU/RRU\n"); - - if (ouput_vcd) { - VCD_SIGNAL_DUMPER_INIT("/tmp/openair_dump_eNB.vcd"); - } - if (opp_enabled ==1) { reset_opp_meas(); } cpuf=get_cpu_freq_GHz(); #if defined(ENABLE_ITTI) - log_set_instance_type (LOG_INSTANCE_ENB); printf("ITTI init\n"); - itti_init(TASK_MAX, THREAD_MAX, MESSAGES_ID_MAX, tasks_info, messages_info, messages_definition_xml, itti_dump_file); + itti_init(TASK_MAX, THREAD_MAX, MESSAGES_ID_MAX, tasks_info, messages_info); // initialize mscgen log after ITTI MSC_INIT(MSC_E_UTRAN, THREAD_MAX+TASK_MAX); @@ -1235,6 +1222,7 @@ int main( int argc, char **argv ) // connect the TX/RX buffers + sleep(1); /* wait for thread activation */ printf("Sending sync to all threads\n"); @@ -1286,6 +1274,10 @@ int main( int argc, char **argv ) printf("stopping MODEM threads\n"); // cleanup + for (ru_id=0;ru_idrfdevice.trx_end_func) - RC.ru[ru_id]->rfdevice.trx_end_func(&RC.ru[ru_id]->rfdevice); - if (RC.ru[ru_id]->ifdevice.trx_end_func) - RC.ru[ru_id]->ifdevice.trx_end_func(&RC.ru[ru_id]->ifdevice); + for(ru_id=0; ru_idrfdevice.trx_end_func) { + RC.ru[ru_id]->rfdevice.trx_end_func(&RC.ru[ru_id]->rfdevice); + RC.ru[ru_id]->rfdevice.trx_end_func = NULL; + } + if (RC.ru[ru_id]->ifdevice.trx_end_func) { + RC.ru[ru_id]->ifdevice.trx_end_func(&RC.ru[ru_id]->ifdevice); + RC.ru[ru_id]->ifdevice.trx_end_func = NULL; + } } - if (ouput_vcd) - VCD_SIGNAL_DUMPER_CLOSE(); if (opt_enabled == 1) terminate_opt(); diff --git a/targets/RT/USER/lte-softmodem.h b/targets/RT/USER/lte-softmodem.h index 81232f604a..aaf3434b9d 100644 --- a/targets/RT/USER/lte-softmodem.h +++ b/targets/RT/USER/lte-softmodem.h @@ -87,7 +87,6 @@ #define CONFIG_HLP_UE "Set the lte softmodem as a UE\n" #define CONFIG_HLP_L2MONW "Enable L2 wireshark messages on localhost \n" #define CONFIG_HLP_L2MONP "Enable L2 pcap messages on localhost \n" -#define CONFIG_HLP_VCD "Enable VCD (generated file will is named openair_dump_eNB.vcd, read it with target/RT/USER/eNB.gtkw\n" #define CONFIG_HLP_TQFS "Apply three-quarter of sampling frequency, 23.04 Msps to reduce the data rate on USB/PCIe transfers (only valid for 20 MHz)\n" #define CONFIG_HLP_TPORT "tracer port\n" #define CONFIG_HLP_NOTWAIT "don't wait for tracer, start immediately\n" @@ -165,7 +164,7 @@ {"mmapped-dma", CONFIG_HLP_DMAMAP, PARAMFLAG_BOOL, uptr:&mmapped_dma, defintval:0, TYPE_INT, 0}, \ {"external-clock", CONFIG_HLP_EXCCLK, PARAMFLAG_BOOL, uptr:&clock_source, defintval:0, TYPE_INT, 0}, \ {"wait-for-sync", NULL, PARAMFLAG_BOOL, iptr:&wait_for_sync, defintval:0, TYPE_INT, 0}, \ -{"single-thread-disable", CONFIG_HLP_NOSNGLT, PARAMFLAG_BOOL, iptr:&single_thread_flag, defintval:1, TYPE_INT, 0}, \ +{"single-thread-enable", CONFIG_HLP_NOSNGLT, PARAMFLAG_BOOL, iptr:&single_thread_flag, defintval:0, TYPE_INT, 0}, \ {"threadIQ", NULL, 0, iptr:&(threads.iq), defintval:1, TYPE_INT, 0}, \ {"threadOneSubframe", NULL, 0, iptr:&(threads.one), defintval:1, TYPE_INT, 0}, \ {"threadTwoSubframe", NULL, 0, iptr:&(threads.two), defintval:1, TYPE_INT, 0}, \ @@ -178,12 +177,10 @@ {"a" , CONFIG_HLP_CHOFF, 0, iptr:&chain_offset, defintval:0, TYPE_INT, 0}, \ {"d" , CONFIG_HLP_SOFTS, PARAMFLAG_BOOL, uptr:(uint32_t *)&do_forms, defintval:0, TYPE_INT8, 0}, \ {"E" , CONFIG_HLP_TQFS, PARAMFLAG_BOOL, i8ptr:&threequarter_fs, defintval:0, TYPE_INT8, 0}, \ -{"K" , CONFIG_HLP_ITTIL, PARAMFLAG_NOFREE, strptr:&itti_dump_file, defstrval:"/tmp/itti.dump", TYPE_STRING, 0}, \ {"m" , CONFIG_HLP_DLMCS, 0, uptr:&target_dl_mcs, defintval:0, TYPE_UINT, 0}, \ {"t" , CONFIG_HLP_ULMCS, 0, uptr:&target_ul_mcs, defintval:0, TYPE_UINT, 0}, \ {"W" , CONFIG_HLP_L2MONW, 0, strptr:(char **)&in_ip, defstrval:"127.0.0.1", TYPE_STRING, sizeof(in_ip)}, \ {"P" , CONFIG_HLP_L2MONP, 0, strptr:(char **)&in_path, defstrval:"/tmp/oai_opt.pcap", TYPE_STRING, sizeof(in_path)}, \ -{"V" , CONFIG_HLP_VCD, PARAMFLAG_BOOL, iptr:&ouput_vcd, defintval:0, TYPE_INT, 0}, \ {"q" , CONFIG_HLP_STMON, PARAMFLAG_BOOL, iptr:&opp_enabled, defintval:0, TYPE_INT, 0}, \ {"S" , CONFIG_HLP_MSLOTS, PARAMFLAG_BOOL, u8ptr:&exit_missed_slots, defintval:1, TYPE_UINT8, 0}, \ {"T" , CONFIG_HLP_TDD, PARAMFLAG_BOOL, iptr:&tddflag, defintval:0, TYPE_INT, 0}, \ @@ -197,7 +194,6 @@ #define CONFIG_HLP_FLOG "Enable online log \n" #define CONFIG_HLP_LOGL "Set the global log level, valide options: (9:trace, 8/7:debug, 6:info, 4:warn, 3:error)\n" -#define CONFIG_HLP_LOGV "Set the global log verbosity \n" #define CONFIG_HLP_TELN "Start embedded telnet server \n" /*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ /* command line parameters for LOG utility */ @@ -206,28 +202,11 @@ #define CMDLINE_LOGPARAMS_DESC { \ {"R" , CONFIG_HLP_FLOG, 0, uptr:&online_log_messages, defintval:1, TYPE_INT, 0}, \ {"g" , CONFIG_HLP_LOGL, 0, uptr:&glog_level, defintval:0, TYPE_UINT, 0}, \ -{"G" , CONFIG_HLP_LOGV, 0, uptr:&glog_verbosity, defintval:0, TYPE_UINT16, 0}, \ {"telnetsrv", CONFIG_HLP_TELN, PARAMFLAG_BOOL, uptr:&start_telnetsrv, defintval:0, TYPE_UINT, 0}, \ } #define CMDLINE_ONLINELOG_IDX 0 #define CMDLINE_GLOGLEVEL_IDX 1 -#define CMDLINE_GLOGVERBO_IDX 2 -#define CMDLINE_STARTTELN_IDX 3 - - -extern int T_port; -extern int T_nowait; -extern int T_dont_fork; - -/*------------------------------------------------------------------------------------------------------------------------------------------*/ -/* command line parameters for TTRACE utility */ -/* optname helpstr paramflags XXXptr defXXXval type numelt */ -/*------------------------------------------------------------------------------------------------------------------------------------------*/ -#define CMDLINE_TTRACEPARAMS_DESC { \ -{"T_port", CONFIG_HLP_TPORT, 0, iptr:&T_port, defintval:0, TYPE_INT, 0}, \ -{"T_nowait", CONFIG_HLP_NOTWAIT, PARAMFLAG_BOOL, iptr:&T_nowait, defintval:0, TYPE_INT, 0}, \ -{"T_dont_fork", CONFIG_HLP_TNOFORK, PARAMFLAG_BOOL, iptr:&T_dont_fork, defintval:1, TYPE_INT, 0}, \ -} +#define CMDLINE_STARTTELN_IDX 2 /***************************************************************************************************************************************/ @@ -269,7 +248,9 @@ extern void stop_eNB(int); extern void kill_eNB_proc(int inst); // In lte-ru.c + extern void init_RU(const char*,clock_source_t clock_source,clock_source_t time_source,int send_dmrssync); +//extern void stop_ru(RU_t *ru); extern void init_RU_proc(RU_t *ru); extern void stop_RU(int nb_ru); extern void kill_RU_proc(int inst); @@ -279,7 +260,7 @@ extern void set_function_spec_param(RU_t *ru); extern int setup_ue_buffers(PHY_VARS_UE **phy_vars_ue, openair0_config_t *openair0_cfg); extern void fill_ue_band_info(void); -extern void init_UE(int nb_inst,int eMBMS_active, int uecap_xer_in, int timing_correction, int phy_test, int UE_scan, int UE_scan_carrier, runmode_t mode,int rxgain,int txpowermax, int nb_rx, int nb_tx); +extern void init_UE(int nb_inst,int eMBMS_active, int uecap_xer_in, int timing_correction, int phy_test, int UE_scan, int UE_scan_carrier, runmode_t mode,int rxgain,int txpowermax, LTE_DL_FRAME_PARMS *fp); extern void init_thread(int sched_runtime, int sched_deadline, int sched_fifo, cpu_set_t *cpuset, char * name); extern void reset_opp_meas(void); diff --git a/targets/RT/USER/lte-ue.c b/targets/RT/USER/lte-ue.c index 531436d586..ab84249f9f 100644 --- a/targets/RT/USER/lte-ue.c +++ b/targets/RT/USER/lte-ue.c @@ -52,11 +52,11 @@ #include -#include "UTIL/LOG/log_extern.h" +#include "common/utils/LOG/log.h" #include "UTIL/OTG/otg_tx.h" #include "UTIL/OTG/otg_externs.h" #include "UTIL/MATH/oml.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "UTIL/OPT/opt.h" @@ -79,7 +79,7 @@ void init_UE_threads(int); void init_UE_threads_stub(int); void init_UE_single_thread_stub(int); void *UE_thread(void *arg); -void init_UE(int nb_inst,int eMBMS_active, int uecap_xer_in, int timing_correction, int phy_test, int UE_scan, int UE_scan_carrier, runmode_t mode,int rxgain,int txpowermax,int nb_rx,int nb_tx); +void init_UE(int nb_inst,int eMBMS_active, int uecap_xer_in, int timing_correction, int phy_test, int UE_scan, int UE_scan_carrier, runmode_t mode,int rxgain,int txpowermax,LTE_DL_FRAME_PARMS *fp); void init_UE_stub(int nb_inst,int,int,char*); void init_UE_stub_single_thread(int nb_inst,int,int,char*); int init_timer_thread(void); @@ -172,20 +172,18 @@ PHY_VARS_UE* init_ue_vars(LTE_DL_FRAME_PARMS *frame_parms, { - PHY_VARS_UE* ue; + PHY_VARS_UE* ue = (PHY_VARS_UE *)malloc(sizeof(PHY_VARS_UE)); + memset(ue,0,sizeof(PHY_VARS_UE)); if (frame_parms!=(LTE_DL_FRAME_PARMS *)NULL) { // if we want to give initial frame parms, allocate the PHY_VARS_UE structure and put them in - ue = (PHY_VARS_UE *)malloc(sizeof(PHY_VARS_UE)); - memset(ue,0,sizeof(PHY_VARS_UE)); memcpy(&(ue->frame_parms), frame_parms, sizeof(LTE_DL_FRAME_PARMS)); } - else ue = PHY_vars_UE_g[UE_id][0]; ue->Mod_id = UE_id; ue->mac_enabled = 1; - // Panos: In phy_stub_UE (MAC-to-MAC) mode these init functions don't need to get called. Is this correct? + // In phy_stub_UE (MAC-to-MAC) mode these init functions don't need to get called. Is this correct? if (nfapi_mode!=3) { // initialize all signal buffers @@ -238,11 +236,12 @@ void init_thread(int sched_runtime, int sched_deadline, int sched_fifo, cpu_set_ } -void init_UE(int nb_inst,int eMBMS_active, int uecap_xer_in, int timing_correction, int phy_test, int UE_scan, int UE_scan_carrier, runmode_t mode,int rxgain,int txpowermax,int nb_rx,int nb_tx) { +void init_UE(int nb_inst,int eMBMS_active, int uecap_xer_in, int timing_correction, int phy_test, int UE_scan, int UE_scan_carrier, runmode_t mode,int rxgain,int txpowermax,LTE_DL_FRAME_PARMS *fp0) { PHY_VARS_UE *UE; int inst; int ret; + LTE_DL_FRAME_PARMS *fp; LOG_I(PHY,"UE : Calling Layer 2 for initialization\n"); @@ -256,20 +255,18 @@ void init_UE(int nb_inst,int eMBMS_active, int uecap_xer_in, int timing_correcti if (PHY_vars_UE_g[inst]==NULL) PHY_vars_UE_g[inst] = (PHY_VARS_UE**)calloc(1+MAX_NUM_CCs,sizeof(PHY_VARS_UE*)); LOG_I(PHY,"Allocating UE context %d\n",inst); - if (simL1flag == 0) PHY_vars_UE_g[inst][0] = init_ue_vars(NULL,inst,0); + if (simL1flag == 0) PHY_vars_UE_g[inst][0] = init_ue_vars(fp0,inst,0); else { - RC.ru[0]->frame_parms.nb_antennas_rx = nb_rx; - RC.ru[0]->frame_parms.nb_antennas_tx = nb_tx; - RC.ru[0]->frame_parms.frame_type = FDD; - RC.ru[0]->frame_parms.tdd_config = 3; - RC.ru[0]->frame_parms.tdd_config_S = 0; - + // needed for memcopy below. these are not used in the RU, but needed for UE + RC.ru[0]->frame_parms.nb_antennas_rx = fp0->nb_antennas_rx; + RC.ru[0]->frame_parms.nb_antennas_tx = fp0->nb_antennas_tx; PHY_vars_UE_g[inst][0] = init_ue_vars(&RC.ru[0]->frame_parms,inst,0); } // turn off timing control loop in UE PHY_vars_UE_g[inst][0]->no_timing_correction = timing_correction; UE = PHY_vars_UE_g[inst][0]; + fp = &UE->frame_parms; printf("PHY_vars_UE_g[0][0] = %p\n",UE); if (phy_test==1) @@ -304,8 +301,37 @@ void init_UE(int nb_inst,int eMBMS_active, int uecap_xer_in, int timing_correcti UE->rx_total_gain_dB = rxgain; UE->tx_power_max_dBm = txpowermax; - UE->frame_parms.nb_antennas_tx = nb_tx; - UE->frame_parms.nb_antennas_rx = nb_rx; + UE->frame_parms.nb_antennas_tx = fp0->nb_antennas_tx; + UE->frame_parms.nb_antennas_rx = fp0->nb_antennas_rx; + + if (fp->frame_type == TDD) { + switch (fp->N_RB_DL) { + + case 100: + if (fp->threequarter_fs) UE->N_TA_offset = (624*3)/4; + else UE->N_TA_offset = 624; + break; + case 75: + UE->N_TA_offset = (624*3)/4; + break; + case 50: + UE->N_TA_offset = 624/2; + break; + case 25: + UE->N_TA_offset = 624/4; + break; + case 15: + UE->N_TA_offset = 624/8; + break; + case 6: + UE->N_TA_offset = 624/16; + break; + default: + AssertFatal(1==0,"illegal N_RB_DL %d\n",fp->N_RB_DL); + break; + } + } + else UE->N_TA_offset = 0; if (simL1flag == 1) init_ue_devices(UE); LOG_I(PHY,"Intializing UE Threads for instance %d (%p,%p)...\n",inst,PHY_vars_UE_g[inst],PHY_vars_UE_g[inst][0]); @@ -319,7 +345,7 @@ void init_UE(int nb_inst,int eMBMS_active, int uecap_xer_in, int timing_correcti } UE->rfdevice.host_type = RAU_HOST; // UE->rfdevice.type = NONE_DEV; - PHY_VARS_UE *UE = PHY_vars_UE_g[inst][0]; + AssertFatal(0 == pthread_create(&UE->proc.pthread_ue, &UE->proc.attr_ue, UE_thread, @@ -329,7 +355,7 @@ void init_UE(int nb_inst,int eMBMS_active, int uecap_xer_in, int timing_correcti printf("UE threads created by %ld\n", gettid()); } -// Panos: Initiating all UEs within a single set of threads for PHY_STUB. Future extensions -> multiple +// Initiating all UEs within a single set of threads for PHY_STUB. Future extensions -> multiple // set of threads for multiple UEs. void init_UE_stub_single_thread(int nb_inst,int eMBMS_active, int uecap_xer_in, char *emul_iface) { @@ -409,7 +435,7 @@ void init_UE_stub(int nb_inst,int eMBMS_active, int uecap_xer_in, char *emul_ifa static void *UE_thread_synch(void *arg) { static int UE_thread_synch_retval; - int i, hw_slot_offset; + int i ; PHY_VARS_UE *UE = (PHY_VARS_UE*) arg; int current_band = 0; int current_offset = 0; @@ -547,9 +573,8 @@ static void *UE_thread_synch(void *arg) #endif if (initial_sync( UE, UE->mode ) == 0) { - hw_slot_offset = (UE->rx_offset<<1) / UE->frame_parms.samples_per_tti; LOG_I( HW, "Got synch: hw_slot_offset %d, carrier off %d Hz, rxgain %d (DL %u, UL %u), UE_scan_carrier %d\n", - hw_slot_offset, + (UE->rx_offset<<1) / UE->frame_parms.samples_per_tti, freq_offset, UE->rx_total_gain_dB, downlink_frequency[0][0]+freq_offset, @@ -712,13 +737,23 @@ static void *UE_thread_synch(void *arg) * \param arg is a pointer to a \ref PHY_VARS_UE structure. * \returns a pointer to an int. The storage is not on the heap and must not be freed. */ +const char * get_connectionloss_errstr(int errcode) { + switch (errcode) { + case CONNECTION_LOST: + return "RRC Connection lost, returning to PRACH"; + case PHY_RESYNCH: + return "RRC Connection lost, trying to resynch"; + case RESYNCH: + return "return to PRACH and perform a contention-free access"; + }; + return "UNKNOWN RETURN CODE"; +} static void *UE_thread_rxn_txnp4(void *arg) { static __thread int UE_thread_rxtx_retval; struct rx_tx_thread_data *rtd = arg; UE_rxtx_proc_t *proc = rtd->proc; PHY_VARS_UE *UE = rtd->UE; - int ret; proc->instance_cnt_rxtx=-1; proc->subframe_rx=proc->sub_frame_start; @@ -791,7 +826,7 @@ static void *UE_thread_rxn_txnp4(void *arg) { #endif if (UE->mac_enabled==1) { - ret = ue_scheduler(UE->Mod_id, + int ret = ue_scheduler(UE->Mod_id, proc->frame_rx, proc->subframe_rx, proc->frame_tx, @@ -800,22 +835,8 @@ static void *UE_thread_rxn_txnp4(void *arg) { 0, 0/*FIXME CC_id*/); if ( ret != CONNECTION_OK) { - char *txt; - switch (ret) { - case CONNECTION_LOST: - txt="RRC Connection lost, returning to PRACH"; - break; - case PHY_RESYNCH: - txt="RRC Connection lost, trying to resynch"; - break; - case RESYNCH: - txt="return to PRACH and perform a contention-free access"; - break; - default: - txt="UNKNOWN RETURN CODE"; - }; LOG_E( PHY, "[UE %"PRIu8"] Frame %"PRIu32", subframe %u %s\n", - UE->Mod_id, proc->frame_rx, proc->subframe_tx,txt ); + UE->Mod_id, proc->frame_rx, proc->subframe_tx,get_connectionloss_errstr(ret) ); } } #if UE_TIMING_TRACE @@ -947,12 +968,7 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) { PHY_VARS_UE *UE; //= rtd->UE; int ret; - // double t_diff; - char threadname[256]; - //sprintf(threadname,"UE_%d_proc", UE->Mod_id); - - //proc->instance_cnt_rxtx=-1; phy_stub_ticking->ticking_var = -1; proc->subframe_rx=proc->sub_frame_start; @@ -978,8 +994,6 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) { LOG_E( MAC, "[SCHED][UE] error unlocking mutex for UE RXn_TXnp4\n" ); exit_fun("nothing to add"); } - LOG_D(MAC," Panos-D [UE_phy_stub_thread_rxn_txnp4 1] Frame: %d, Subframe: %d \n" "\n" "\n", timer_frame, timer_subframe); - proc->subframe_rx=timer_subframe; proc->frame_rx = timer_frame; @@ -990,14 +1004,14 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) { oai_subframe_ind(timer_frame, timer_subframe); - // Panos: Guessing that the next 4 lines are not needed for the phy_stub mode. + //Guessing that the next 4 lines are not needed for the phy_stub mode. /*initRefTimes(t2); initRefTimes(t3); pickTime(current); updateTimes(proc->gotIQs, &t2, 10000, "Delay to wake up UE_Thread_Rx (case 2)");*/ - //Panos: Not sure whether we should put the memory allocation here and not sure how much memory + // Not sure whether we should put the memory allocation here and not sure how much memory //we should allocate for each subframe cycle. UL_INFO = (UL_IND_t*)malloc(sizeof(UL_IND_t)); @@ -1026,15 +1040,13 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) { (sf_type == SF_S)) { if (UE->frame_parms.frame_type == TDD) { - LOG_D(PHY, "%s,TDD%d,%s: calling UE_RX\n", - threadname, + LOG_D(PHY, "TDD%d,%s: calling UE_RX\n", UE->frame_parms.tdd_config, (sf_type==SF_DL? "SF_DL" : (sf_type==SF_UL? "SF_UL" : (sf_type==SF_S ? "SF_S" : "UNKNOWN_SF_TYPE")))); } else { - LOG_D(PHY, "%s,%s,%s: calling UE_RX\n", - threadname, + LOG_D(PHY, "%s,%s: calling UE_RX\n", (UE->frame_parms.frame_type==FDD? "FDD": (UE->frame_parms.frame_type==TDD? "TDD":"UNKNOWN_DUPLEX_MODE")), (sf_type==SF_DL? "SF_DL" : @@ -1075,22 +1087,8 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) { 0, 0/*FIXME CC_id*/); if ( ret != CONNECTION_OK) { - char *txt; - switch (ret) { - case CONNECTION_LOST: - txt="RRC Connection lost, returning to PRACH"; - break; - case PHY_RESYNCH: - txt="RRC Connection lost, trying to resynch"; - break; - case RESYNCH: - txt="return to PRACH and perform a contention-free access"; - break; - default: - txt="UNKNOWN RETURN CODE"; - }; LOG_E( PHY, "[UE %"PRIu8"] Frame %"PRIu32", subframe %u %s\n", - UE->Mod_id, proc->frame_rx, proc->subframe_tx,txt ); + UE->Mod_id, proc->frame_rx, proc->subframe_tx,get_connectionloss_errstr(ret) ); } } #if UE_TIMING_TRACE @@ -1129,7 +1127,7 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) { //ue_prach_procedures(ue,proc,eNB_id,abstraction_flag,mode); } } // mode is PRACH - // Panos: Substitute call to phy_procedures Tx with call to phy_stub functions in order to trigger + // Substitute call to phy_procedures Tx with call to phy_stub functions in order to trigger // UE Tx procedures directly at the MAC layer, based on the received ul_config requests from the vnf (eNB). // Generate UL_indications which correspond to UL traffic. if(ul_config_req!=NULL){ //&& UE_mac_inst[Mod_id].ul_config_req->ul_config_request_body.ul_config_pdu_list != NULL){ @@ -1257,19 +1255,11 @@ static void *UE_phy_stub_thread_rxn_txnp4(void *arg) { struct rx_tx_thread_data *rtd = arg; UE_rxtx_proc_t *proc = rtd->proc; PHY_VARS_UE *UE = rtd->UE; - int ret; - // double t_diff; - - char threadname[256]; - sprintf(threadname,"UE_%d_proc", UE->Mod_id); - - - //proc->instance_cnt_rxtx=-1; phy_stub_ticking->ticking_var = -1; proc->subframe_rx=proc->sub_frame_start; - //PANOS: CAREFUL HERE! + // CAREFUL HERE! wait_sync("UE_phy_stub_thread_rxn_txnp4"); while (!oai_exit) { @@ -1289,8 +1279,6 @@ static void *UE_phy_stub_thread_rxn_txnp4(void *arg) { LOG_E( MAC, "[SCHED][UE] error unlocking mutex for UE RXn_TXnp4\n" ); exit_fun("nothing to add"); } - LOG_D(MAC," Panos-D [UE_phy_stub_thread_rxn_txnp4 1] Frame: %d, Subframe: %d \n" "\n" "\n", timer_frame, timer_subframe); - proc->subframe_rx=timer_subframe; proc->frame_rx = timer_frame; @@ -1305,15 +1293,13 @@ static void *UE_phy_stub_thread_rxn_txnp4(void *arg) { (sf_type == SF_S)) { if (UE->frame_parms.frame_type == TDD) { - LOG_D(PHY, "%s,TDD%d,%s: calling UE_RX\n", - threadname, + LOG_D(PHY, "TDD%d,%s: calling UE_RX\n", UE->frame_parms.tdd_config, (sf_type==SF_DL? "SF_DL" : (sf_type==SF_UL? "SF_UL" : (sf_type==SF_S ? "SF_S" : "UNKNOWN_SF_TYPE")))); } else { - LOG_D(PHY, "%s,%s,%s: calling UE_RX\n", - threadname, + LOG_D(PHY, "%s,%s: calling UE_RX\n", (UE->frame_parms.frame_type==FDD? "FDD": (UE->frame_parms.frame_type==TDD? "TDD":"UNKNOWN_DUPLEX_MODE")), (sf_type==SF_DL? "SF_DL" : @@ -1333,7 +1319,6 @@ static void *UE_phy_stub_thread_rxn_txnp4(void *arg) { } //if(UE_mac_inst[Mod_id].hi_dci0_req!= NULL){ if (hi_dci0_req!=NULL && hi_dci0_req->hi_dci0_request_body.hi_dci0_pdu_list!=NULL){ - LOG_I( MAC, "Panos-D: UE_phy_stub_thread_rxn_txnp4 after oai_subframe_ind 4 \n"); hi_dci0_req_UE_MAC(hi_dci0_req, Mod_id); //if(UE_mac_inst[Mod_id].hi_dci0_req->hi_dci0_request_body.hi_dci0_pdu_list!=NULL){ free(hi_dci0_req->hi_dci0_request_body.hi_dci0_pdu_list); @@ -1358,7 +1343,7 @@ static void *UE_phy_stub_thread_rxn_txnp4(void *arg) { #endif if (UE->mac_enabled==1) { - ret = ue_scheduler(UE->Mod_id, + int ret = ue_scheduler(UE->Mod_id, proc->frame_rx, proc->subframe_rx, proc->frame_tx, @@ -1366,24 +1351,9 @@ static void *UE_phy_stub_thread_rxn_txnp4(void *arg) { subframe_select(&UE->frame_parms,proc->subframe_tx), 0, 0); - if ( ret != CONNECTION_OK) { - char *txt; - switch (ret) { - case CONNECTION_LOST: - txt="RRC Connection lost, returning to PRACH"; - break; - case PHY_RESYNCH: - txt="RRC Connection lost, trying to resynch"; - break; - case RESYNCH: - txt="return to PRACH and perform a contention-free access"; - break; - default: - txt="UNKNOWN RETURN CODE"; - }; + if (ret != CONNECTION_OK) LOG_E( PHY, "[UE %"PRIu8"] Frame %"PRIu32", subframe %u %s\n", - UE->Mod_id, proc->frame_rx, proc->subframe_tx,txt ); - } + UE->Mod_id, proc->frame_rx, proc->subframe_tx,get_connectionloss_errstr(ret) ); } #if UE_TIMING_TRACE stop_meas(&UE->generic_stat); @@ -1397,7 +1367,6 @@ static void *UE_phy_stub_thread_rxn_txnp4(void *arg) { if (UE->mode != loop_through_memory){ if ((UE_mac_inst[Mod_id].UE_mode[0] == PRACH) ) { - //LOG_D(MAC, "Panos-D: UE_phy_stub_thread_rxn_txnp4 before RACH \n"); // check if we have PRACH opportunity @@ -1412,7 +1381,7 @@ static void *UE_phy_stub_thread_rxn_txnp4(void *arg) { //ue_prach_procedures(ue,proc,eNB_id,abstraction_flag,mode); } } // mode is PRACH - // Panos: Substitute call to phy_procedures Tx with call to phy_stub functions in order to trigger + // Substitute call to phy_procedures Tx with call to phy_stub functions in order to trigger // UE Tx procedures directly at the MAC layer, based on the received ul_config requests from the vnf (eNB). // Generate UL_indications which correspond to UL traffic. if(ul_config_req!= NULL && ul_config_req->ul_config_request_body.ul_config_pdu_list != NULL){ @@ -1805,12 +1774,12 @@ void init_UE_single_thread_stub(int nb_inst) { pthread_attr_init (&UE->proc.attr_ue); pthread_attr_setstacksize(&UE->proc.attr_ue,8192);//5*PTHREAD_STACK_MIN); - // Panos: Don't need synch for phy_stub mode + // Don't need synch for phy_stub mode //pthread_mutex_init(&UE->proc.mutex_synch,NULL); //pthread_cond_init(&UE->proc.cond_synch,NULL); // the threads are not yet active, therefore access is allowed without locking - // Panos: In phy_stub_UE mode due to less heavy processing operations we don't need two threads + // In phy_stub_UE mode due to less heavy processing operations we don't need two threads //int nb_threads=RX_NB_TH; int nb_threads=1; for (int i=0; iproc.proc_rxtx[i].pthread_rxtx, NULL, UE_phy_stub_single_thread_rxn_txnp4, rtd); } - // Panos: Remove thread for UE_sync in phy_stub_UE mode. + // Remove thread for UE_sync in phy_stub_UE mode. //pthread_create(&UE->proc.pthread_synch,NULL,UE_thread_synch,(void*)UE); } @@ -1857,12 +1826,12 @@ void init_UE_threads_stub(int inst) { pthread_attr_init (&UE->proc.attr_ue); pthread_attr_setstacksize(&UE->proc.attr_ue,8192);//5*PTHREAD_STACK_MIN); - // Panos: Don't need synch for phy_stub mode + // Don't need synch for phy_stub mode //pthread_mutex_init(&UE->proc.mutex_synch,NULL); //pthread_cond_init(&UE->proc.cond_synch,NULL); // the threads are not yet active, therefore access is allowed without locking - // Panos: In phy_stub_UE mode due to less heavy processing operations we don't need two threads + // In phy_stub_UE mode due to less heavy processing operations we don't need two threads //int nb_threads=RX_NB_TH; int nb_threads=1; for (int i=0; iproc.pthread_synch,NULL,UE_thread_synch,(void*)UE); } @@ -1921,10 +1890,8 @@ int setup_ue_buffers(PHY_VARS_UE **phy_vars_ue, openair0_config_t *openair0_cfg) int i, CC_id; LTE_DL_FRAME_PARMS *frame_parms; - openair0_rf_map *rf_map; for (CC_id=0; CC_idrf_map; AssertFatal( phy_vars_ue[CC_id] !=0, ""); frame_parms = &(phy_vars_ue[CC_id]->frame_parms); @@ -1935,7 +1902,7 @@ int setup_ue_buffers(PHY_VARS_UE **phy_vars_ue, openair0_config_t *openair0_cfg) for (i=0; inb_antennas_rx; i++) { LOG_I(PHY, "Mapping UE CC_id %d, rx_ant %d, freq %u on card %d, chain %d\n", - CC_id, i, downlink_frequency[CC_id][i], rf_map->card, rf_map->chain+i ); + CC_id, i, downlink_frequency[CC_id][i], phy_vars_ue[CC_id]->rf_map.card, (phy_vars_ue[CC_id]->rf_map.chain)+i ); free( phy_vars_ue[CC_id]->common_vars.rxdata[i] ); rxdata[i] = (int32_t*)malloc16_clear( 307200*sizeof(int32_t) ); phy_vars_ue[CC_id]->common_vars.rxdata[i] = rxdata[i]; // what about the "-N_TA_offset" ? // N_TA offset for TDD @@ -1943,7 +1910,7 @@ int setup_ue_buffers(PHY_VARS_UE **phy_vars_ue, openair0_config_t *openair0_cfg) for (i=0; inb_antennas_tx; i++) { LOG_I(PHY, "Mapping UE CC_id %d, tx_ant %d, freq %u on card %d, chain %d\n", - CC_id, i, downlink_frequency[CC_id][i], rf_map->card, rf_map->chain+i ); + CC_id, i, downlink_frequency[CC_id][i], phy_vars_ue[CC_id]->rf_map.card, (phy_vars_ue[CC_id]->rf_map.chain)+i ); free( phy_vars_ue[CC_id]->common_vars.txdata[i] ); txdata[i] = (int32_t*)malloc16_clear( 307200*sizeof(int32_t) ); phy_vars_ue[CC_id]->common_vars.txdata[i] = txdata[i]; @@ -1960,168 +1927,6 @@ int setup_ue_buffers(PHY_VARS_UE **phy_vars_ue, openair0_config_t *openair0_cfg) -/*static void* timer_thread( void* param ) { - thread_top_init("timer_thread",1,870000L,1000000L,1000000L); - timer_subframe =9; - timer_frame =1023; - //phy_stub_ticking = (SF_ticking*)malloc(sizeof(SF_ticking)); - phy_stub_ticking->ticking_var = -1; - PHY_VARS_UE *UE; - UE = PHY_vars_UE_g[0][0]; - double t_diff; - int external_timer = 0; - - - //struct timespec pselect_start; - - - //struct timespec sf_duration; - //sf_duration.tv_sec = 0; - //sf_duration.tv_nsec = 1e6; - - - wait_sync("timer_thread"); - - //pthread_mutex_init(&phy_stub_ticking->mutex_ticking,NULL); - //pthread_cond_init(&phy_stub_ticking->cond_ticking,NULL); - - // struct timespec start = {0}; - // struct timespec end = {0}; - //sleepValue.tv_nsec = 1000000; - opp_enabled = 1; - - // first check if we are receiving timing indications - if(nfapi_mode==4) { - usleep(10000); - if (UE->instance_cnt_timer > 0) { - external_timer = 1; - int absSFm1 = ((emulator_absSF+10239)%10240); - timer_frame = absSFm1/10; - timer_subframe = absSFm1%10; - pthread_mutex_lock(&UE->timer_mutex); - UE->instance_cnt_timer = -1; - pthread_mutex_unlock(&UE->timer_mutex); - LOG_I(PHY,"Running with external timer\n"); - } - else LOG_I(PHY,"Running with internal timer\n"); - } - - struct timespec t_start; - struct timespec t_now; - struct timespec t_sleep; - uint64_t T_0; - uint64_t T_now; - uint64_t T_next_SF; - uint64_t T_sleep; - uint64_t sf_cnt = 0; //Total Subframe counter - - clock_gettime(CLOCK_MONOTONIC, &t_start); - T_0 = (uint64_t) t_start.tv_sec*1000000000 + t_start.tv_nsec; - LOG_I(MAC, "Panos-D: timer_thread(), T_0 value: %" PRId64 "\n", T_0); - //printf("%" PRId64 "\n", t); - - while (!oai_exit) { - - // these are local subframe/frame counters to check that we are in synch with the fronthaul timing. - // They are set on the first rx/tx in the underly FH routines. - if (timer_subframe==9) { - timer_subframe=0; - timer_frame++; - timer_frame&=1023; - } else { - timer_subframe++; - } - //printf("[timer_thread] Frame: %d, Subframe: %d \n", timer_frame, timer_subframe); - //LOG_I(MAC," Panos-D [timer_thread] Frame: %d, Subframe: %d \n", timer_frame, timer_subframe); - //AssertFatal( 0 == pthread_cond_signal(&phy_stub_ticking->cond_ticking), ""); - AssertFatal(pthread_mutex_lock(&phy_stub_ticking->mutex_ticking) ==0,""); - phy_stub_ticking->ticking_var++; - // This should probably be a call to pthread_cond_broadcast when we introduce support for multiple UEs (threads) - if(phy_stub_ticking->ticking_var == 0){ - //AssertFatal(phy_stub_ticking->ticking_var == 0,"phy_stub_ticking->ticking_var = %d", - //phy_stub_ticking->ticking_var); - if (pthread_cond_signal(&phy_stub_ticking->cond_ticking) != 0) { - //LOG_E( PHY, "[SCHED][UE %d] ERROR pthread_cond_signal for UE RX thread\n", UE->Mod_id); - LOG_E( PHY, "timer_thread ERROR pthread_cond_signal for UE_thread\n"); - exit_fun("nothing to add"); - } - } - else - LOG_I(MAC, "Panos-D: timer_thread() Timing problem! \n"); - - AssertFatal(pthread_mutex_unlock(&phy_stub_ticking->mutex_ticking) ==0,""); - start_meas(&UE->timer_stats); - - - //clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &start); // get initial time-stamp - if (external_timer == 0) { - sf_cnt++; - T_next_SF = T_0 + sf_cnt*1000000; - do{ - clock_gettime(CLOCK_MONOTONIC, &t_now); - T_now =(uint64_t) t_now.tv_sec*1000000000 + t_now.tv_nsec; - }while(T_now < T_next_SF); - //usleep(1000); - UE_tport_t pdu; - pdu.header.packet_type = TTI_SYNC; - pdu.header.absSF = (timer_frame*10)+timer_subframe; - if (nfapi_mode!=3){ - multicast_link_write_sock(0, - &pdu, - sizeof(UE_tport_header_t)); - } - - } - else { - wait_on_condition(&UE->timer_mutex,&UE->timer_cond,&UE->instance_cnt_timer,"timer_thread"); - release_thread(&UE->timer_mutex,&UE->instance_cnt_timer,"timer_thread"); - } - //clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &end); // get final time-stamp - - //double t_ns = (double)(end.tv_sec - start.tv_sec) * 1.0e9 + - // (double)(end.tv_nsec - start.tv_nsec); - //printf("Panos-D: [timer_thread] REAL TIME difference: %f", t_ns); - - - stop_meas(&UE->timer_stats); - t_diff = get_time_meas_us(&UE->timer_stats); - - //printf("Panos-D: Absolute time: %lld, diff: %lld, diff_now: %lld \n",UE->timer_stats.p_time, UE->timer_stats.diff, UE->timer_stats.diff_now); - //LOG_I(MAC,"[UE%d] Applying default macMainConfig\n",module_idP); - //if (t_diff > 1100) - - - // LOG_E(MAC," Panos-D Absolute time: %f\n", t_diff); - //LOG_E(MAC," Panos-D Absolute time: %f\n", t_diff); - - //printf("Panos-D: Absolute time: %f", t_diff); - - - stop_meas(&UE->timer_stats); - t_diff = get_time_meas_us(&UE->timer_stats); - //printf("Panos-D: Absolute time: %lld, diff: %lld, diff_now: %lld \n",UE->timer_stats.p_time, UE->timer_stats.diff, UE->timer_stats.diff_now); - //LOG_I(MAC,"[UE%d] Applying default macMainConfig\n",module_idP); - //if (t_diff > 1100) LOG_E(MAC," Panos-D Absolute time: %f\n", t_diff); - //printf("Panos-D: Absolute time: %f", t_diff); - - //UE->proc.ticking_var++; - // pthread_cond_signal() //Send signal to ue_thread()? - // We also need to somehow pass the information of SFN/SF - } - free(phy_stub_ticking); - pthread_cond_destroy(&phy_stub_ticking->cond_ticking); - pthread_mutex_destroy(&phy_stub_ticking->mutex_ticking); - return 0; - -}*/ - - - - - - - - // Panos: This timer thread is used only in the phy_stub mode as an independent timer // which will be ticking and provide the SFN/SF values that will be used from the UE threads @@ -2252,151 +2057,6 @@ static void* timer_thread( void* param ) { - - - - - - - - - - - - - - - - -/*static void* timer_thread( void* param ) { - thread_top_init("timer_thread",1,870000L,1000000L,1000000L); - timer_subframe =9; - timer_frame =1023; - //phy_stub_ticking = (SF_ticking*)malloc(sizeof(SF_ticking)); - phy_stub_ticking->ticking_var = -1; - PHY_VARS_UE *UE; - UE = PHY_vars_UE_g[0][0]; - double t_diff; - int external_timer = 0; - - wait_sync("timer_thread"); - - //pthread_mutex_init(&phy_stub_ticking->mutex_ticking,NULL); - //pthread_cond_init(&phy_stub_ticking->cond_ticking,NULL); - - // struct timespec start = {0}; - // struct timespec end = {0}; - //sleepValue.tv_nsec = 1000000; - opp_enabled = 1; - - // first check if we are receiving timing indications - if(nfapi_mode==4) { - usleep(10000); - if (UE->instance_cnt_timer > 0) { - external_timer = 1; - int absSFm1 = ((emulator_absSF+10239)%10240); - timer_frame = absSFm1/10; - timer_subframe = absSFm1%10; - pthread_mutex_lock(&UE->timer_mutex); - UE->instance_cnt_timer = -1; - pthread_mutex_unlock(&UE->timer_mutex); - LOG_I(PHY,"Running with external timer\n"); - } - else LOG_I(PHY,"Running with internal timer\n"); - } - - while (!oai_exit) { - - // these are local subframe/frame counters to check that we are in synch with the fronthaul timing. - // They are set on the first rx/tx in the underly FH routines. - if (timer_subframe==9) { - timer_subframe=0; - timer_frame++; - timer_frame&=1023; - } else { - timer_subframe++; - } - //printf("[timer_thread] Frame: %d, Subframe: %d \n", timer_frame, timer_subframe); - //LOG_I(MAC," Panos-D [timer_thread] Frame: %d, Subframe: %d \n", timer_frame, timer_subframe); - //AssertFatal( 0 == pthread_cond_signal(&phy_stub_ticking->cond_ticking), ""); - AssertFatal(pthread_mutex_lock(&phy_stub_ticking->mutex_ticking) ==0,""); - phy_stub_ticking->ticking_var++; - // This should probably be a call to pthread_cond_broadcast when we introduce support for multiple UEs (threads) - if(phy_stub_ticking->ticking_var == 0){ - //AssertFatal(phy_stub_ticking->ticking_var == 0,"phy_stub_ticking->ticking_var = %d", - // phy_stub_ticking->ticking_var); - if (pthread_cond_signal(&phy_stub_ticking->cond_ticking) != 0) { - //LOG_E( PHY, "[SCHED][UE %d] ERROR pthread_cond_signal for UE RX thread\n", UE->Mod_id); - LOG_E( PHY, "timer_thread ERROR pthread_cond_signal for UE_thread\n"); - exit_fun("nothing to add"); - } - } - - AssertFatal(pthread_mutex_unlock(&phy_stub_ticking->mutex_ticking) ==0,""); - start_meas(&UE->timer_stats); - - - //clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &start); // get initial time-stamp - if (external_timer == 0) { - usleep(1000); - UE_tport_t pdu; - pdu.header.packet_type = TTI_SYNC; - pdu.header.absSF = (timer_frame*10)+timer_subframe; - multicast_link_write_sock(0, - &pdu, - sizeof(UE_tport_header_t)); - - } - else { - wait_on_condition(&UE->timer_mutex,&UE->timer_cond,&UE->instance_cnt_timer,"timer_thread"); - release_thread(&UE->timer_mutex,&UE->instance_cnt_timer,"timer_thread"); - } - //clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &end); // get final time-stamp - - //double t_ns = (double)(end.tv_sec - start.tv_sec) * 1.0e9 + - // (double)(end.tv_nsec - start.tv_nsec); - //printf("Panos-D: [timer_thread] REAL TIME difference: %f", t_ns); - - - stop_meas(&UE->timer_stats); - t_diff = get_time_meas_us(&UE->timer_stats); - - //printf("Panos-D: Absolute time: %lld, diff: %lld, diff_now: %lld \n",UE->timer_stats.p_time, UE->timer_stats.diff, UE->timer_stats.diff_now); - //LOG_I(MAC,"[UE%d] Applying default macMainConfig\n",module_idP); - //if (t_diff > 1100) - - - // LOG_E(MAC," Panos-D Absolute time: %f\n", t_diff); - //LOG_E(MAC," Panos-D Absolute time: %f\n", t_diff); - - //printf("Panos-D: Absolute time: %f", t_diff); - - - stop_meas(&UE->timer_stats); - t_diff = get_time_meas_us(&UE->timer_stats); - //printf("Panos-D: Absolute time: %lld, diff: %lld, diff_now: %lld \n",UE->timer_stats.p_time, UE->timer_stats.diff, UE->timer_stats.diff_now); - //LOG_I(MAC,"[UE%d] Applying default macMainConfig\n",module_idP); - //if (t_diff > 1100) LOG_E(MAC," Panos-D Absolute time: %f\n", t_diff); - //printf("Panos-D: Absolute time: %f", t_diff); - - //UE->proc.ticking_var++; - // pthread_cond_signal() //Send signal to ue_thread()? - // We also need to somehow pass the information of SFN/SF - } - free(phy_stub_ticking); - pthread_cond_destroy(&phy_stub_ticking->cond_ticking); - pthread_mutex_destroy(&phy_stub_ticking->mutex_ticking); - return 0; - -}*/ - - - - - - - - int init_timer_thread(void) { //PHY_VARS_UE *UE=PHY_vars_UE_g[0]; PHY_VARS_UE *UE=PHY_vars_UE_g[0][0]; diff --git a/targets/RT/USER/lte-uesoftmodem.c b/targets/RT/USER/lte-uesoftmodem.c index f0a5f00231..03283beb98 100644 --- a/targets/RT/USER/lte-uesoftmodem.c +++ b/targets/RT/USER/lte-uesoftmodem.c @@ -70,11 +70,11 @@ #include "RRC/LTE/rrc_vars.h" #include "PHY_INTERFACE/phy_interface_vars.h" -#include "UTIL/LOG/log_extern.h" +#include "common/utils/LOG/log.h" #include "UTIL/OTG/otg_tx.h" #include "UTIL/OTG/otg_externs.h" #include "UTIL/MATH/oml.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "UTIL/OPT/opt.h" #include "enb_config.h" //#include "PHY/TOOLS/time_meas.h" @@ -149,10 +149,6 @@ int32_t uplink_frequency_offset[MAX_NUM_CCs][4]; -#if defined(ENABLE_ITTI) -static char *itti_dump_file = NULL; -#endif - int UE_scan = 1; int UE_scan_carrier = 0; int simL1flag = 0; @@ -331,6 +327,7 @@ void exit_fun(const char* s) { int CC_id; + logClean(); if (s != NULL) { printf("%s %s() Exiting OAI softmodem: %s\n",__FILE__, __FUNCTION__, s); } @@ -338,8 +335,11 @@ void exit_fun(const char* s) oai_exit = 1; for(CC_id=0; CC_idrfdevice.trx_end_func) - PHY_vars_UE_g[0][CC_id]->rfdevice.trx_end_func(&PHY_vars_UE_g[0][CC_id]->rfdevice); + if (PHY_vars_UE_g) + if (PHY_vars_UE_g[0]) + if (PHY_vars_UE_g[0][CC_id]) + if (PHY_vars_UE_g[0][CC_id]->rfdevice.trx_end_func) + PHY_vars_UE_g[0][CC_id]->rfdevice.trx_end_func(&PHY_vars_UE_g[0][CC_id]->rfdevice); } #if defined(ENABLE_ITTI) @@ -476,13 +476,14 @@ static void get_options(void) { char *loopfile=NULL; int dumpframe; uint32_t online_log_messages; - uint32_t glog_level, glog_verbosity; + uint32_t glog_level; uint32_t start_telnetsrv; paramdef_t cmdline_params[] =CMDLINE_PARAMS_DESC ; paramdef_t cmdline_logparams[] =CMDLINE_LOGPARAMS_DESC ; set_default_frame_parms(frame_parms); + CONFIG_SETRTFLAG(CONFIG_NOEXITONHELP); config_process_cmdline( cmdline_params,sizeof(cmdline_params)/sizeof(paramdef_t),NULL); if (strlen(in_path) > 0) { @@ -501,10 +502,7 @@ static void get_options(void) { set_glog_onlinelog(online_log_messages); } if(config_isparamset(cmdline_logparams,CMDLINE_GLOGLEVEL_IDX)) { - set_glog(glog_level, -1); - } - if(config_isparamset(cmdline_logparams,CMDLINE_GLOGVERBO_IDX)) { - set_glog(-1, glog_verbosity); + set_glog(glog_level); } if (start_telnetsrv) { load_module_shlib("telnetsrv",NULL,0); @@ -515,6 +513,7 @@ static void get_options(void) { config_process_cmdline( cmdline_uemodeparams,sizeof(cmdline_uemodeparams)/sizeof(paramdef_t),NULL); + CONFIG_CLEARRTFLAG(CONFIG_NOEXITONHELP); config_process_cmdline( cmdline_ueparams,sizeof(cmdline_ueparams)/sizeof(paramdef_t),NULL); if (loopfile != NULL) { printf("Input file for hardware emulation: %s",loopfile); @@ -575,10 +574,6 @@ static void get_options(void) { tx_gain[0][CC_id] = tx_gain[0][0]; } -#if T_TRACER - paramdef_t cmdline_ttraceparams[] =CMDLINE_TTRACEPARAMS_DESC ; - config_process_cmdline( cmdline_ttraceparams,sizeof(cmdline_ttraceparams)/sizeof(paramdef_t),NULL); -#endif /* if ( !(CONFIG_ISFLAGSET(CONFIG_ABORT)) && (!(CONFIG_ISFLAGSET(CONFIG_NOOOPT))) ) { // Here the configuration file is the XER encoded UE capabilities @@ -591,14 +586,6 @@ static void get_options(void) { } -#if T_TRACER -int T_nowait = 0; /* by default we wait for the tracer */ -int T_port = 2021; /* default port to listen to to wait for the tracer */ -int T_dont_fork = 0; /* default is to fork, see 'T_init' to understand */ -#endif - - - void set_default_frame_parms(LTE_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs]) { int CC_id; @@ -797,10 +784,6 @@ int main( int argc, char **argv ) exit_fun("[SOFTMODEM] Error, configuration module init failed\n"); } -#ifdef DEBUG_CONSOLE - setvbuf(stdout, NULL, _IONBF, 0); - setvbuf(stderr, NULL, _IONBF, 0); -#endif mode = normal_txrx; @@ -825,7 +808,7 @@ int main( int argc, char **argv ) printf("NFAPI_MODE value: %d \n", nfapi_mode); - // Panos: Not sure if the following is needed here + // Not sure if the following is needed here /*if (CONFIG_ISFLAGSET(CONFIG_ABORT)) { if (UE_flag == 0) { fprintf(stderr,"Getting configuration failed\n"); @@ -839,7 +822,7 @@ int main( int argc, char **argv ) #if T_TRACER - T_init(T_port, 1-T_nowait, T_dont_fork); + T_Config_Init(); #endif @@ -848,37 +831,31 @@ int main( int argc, char **argv ) set_taus_seed (0); - set_comp_log(HW, LOG_DEBUG, LOG_HIGH, 1); - set_comp_log(PHY, LOG_INFO, LOG_HIGH, 1); - set_comp_log(MAC, LOG_INFO, LOG_HIGH, 1); - set_comp_log(RLC, LOG_INFO, LOG_HIGH | FLAG_THREAD, 1); - set_comp_log(PDCP, LOG_INFO, LOG_HIGH, 1); - set_comp_log(OTG, LOG_INFO, LOG_HIGH, 1); - set_comp_log(RRC, LOG_INFO, LOG_HIGH, 1); + set_log(HW, OAILOG_DEBUG, 1); + set_log(PHY, OAILOG_INFO, 1); + set_log(MAC, OAILOG_INFO, 1); + set_log(RLC, OAILOG_INFO, 1); + set_log(PDCP, OAILOG_INFO, 1); + set_log(OTG, OAILOG_INFO, 1); + set_log(RRC, OAILOG_INFO, 1); #if defined(ENABLE_ITTI) - set_comp_log(SIM, LOG_INFO, LOG_MED, 1); + set_log(SIM, OAILOG_INFO, 1); # if defined(ENABLE_USE_MME) - set_comp_log(NAS, LOG_INFO, LOG_HIGH, 1); + set_log(NAS, OAILOG_INFO, 1); # endif #endif - - if (ouput_vcd) { - VCD_SIGNAL_DUMPER_INIT("/tmp/openair_dump_UE.vcd"); - } - cpuf=get_cpu_freq_GHz(); -#if defined(ENABLE_ITTI) - - log_set_instance_type (LOG_INSTANCE_UE); - pthread_cond_init(&sync_cond,NULL); pthread_mutex_init(&sync_mutex, NULL); +#if defined(ENABLE_ITTI) + + printf("ITTI init\n"); - itti_init(TASK_MAX, THREAD_MAX, MESSAGES_ID_MAX, tasks_info, messages_info, messages_definition_xml, itti_dump_file); + itti_init(TASK_MAX, THREAD_MAX, MESSAGES_ID_MAX, tasks_info, messages_info); // initialize mscgen log after ITTI MSC_INIT(MSC_E_UTRAN, THREAD_MAX+TASK_MAX); @@ -905,7 +882,7 @@ int main( int argc, char **argv ) #endif //TTN for D2D -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) printf ("RRC control socket\n"); rrc_control_socket_init(); printf ("PDCP PC5S socket\n"); @@ -975,8 +952,7 @@ int main( int argc, char **argv ) } else { init_UE(NB_UE_INST,eMBMS_active,uecap_xer_in,0,phy_test,UE_scan,UE_scan_carrier,mode,(int)rx_gain[0][0],tx_max_power[0], - frame_parms[0]->nb_antennas_rx, - frame_parms[0]->nb_antennas_tx); + frame_parms[0]); } @@ -1045,7 +1021,7 @@ int main( int argc, char **argv ) printf("cannot create ITTI tasks\n"); exit(-1); // need a softer mode } - if(nfapi_mode==3){ //Panos: Here we should add another nfapi_mode for the case of Supervised LTE-D2D + if(nfapi_mode==3){ // Here we should add another nfapi_mode for the case of Supervised LTE-D2D UE_config_stub_pnf(); } printf("ITTI tasks created\n"); @@ -1054,7 +1030,67 @@ int main( int argc, char **argv ) mlockall(MCL_CURRENT | MCL_FUTURE); - + + rt_sleep_ns(10*100000000ULL); + + const char *nfapi_mode_str = ""; + + switch(nfapi_mode) + { + case 0: + nfapi_mode_str = "MONOLITHIC"; + break; + case 1: + nfapi_mode_str = "PNF"; + break; + case 2: + nfapi_mode_str = "VNF"; + break; + case 3: + nfapi_mode_str = "UE_STUB_PNF"; + break; + case 4: + nfapi_mode_str = "UE_STUB_OFFNET"; + break; + default: + nfapi_mode_str = ""; + break; + } + printf("NFAPI MODE:%s\n", nfapi_mode_str); + + + // connect the TX/RX buffers + + + /* + if(nfapi_mode!=3) { + if (setup_ue_buffers(PHY_vars_UE_g[0],&openair0_cfg[0])!=0) { + printf("Error setting up eNB buffer\n"); + exit(-1); + } + } + */ + + + + if (input_fd) { + printf("Reading in from file to antenna buffer %d\n",0); + if (fread(PHY_vars_UE_g[0][0]->common_vars.rxdata[0], + sizeof(int32_t), + frame_parms[0]->samples_per_tti*10, + input_fd) != frame_parms[0]->samples_per_tti*10) + printf("error reading from file\n"); + } + //p_exmimo_config->framing.tdd_config = TXRXSWITCH_TESTRX; + + + if (simL1flag==1) { + init_ocm((double)snr_dB,0); + PHY_vars_UE_g[0][0]->no_timing_correction = 1; + } + + + #ifdef XFORMS int UE_id; @@ -1090,71 +1126,15 @@ int main( int argc, char **argv ) #endif - rt_sleep_ns(10*100000000ULL); + printf("Sending sync to all threads (%p,%p,%p)\n",&sync_var,&sync_cond,&sync_mutex); - const char *nfapi_mode_str = ""; - - switch(nfapi_mode) - { - case 0: - nfapi_mode_str = "MONOLITHIC"; - break; - case 1: - nfapi_mode_str = "PNF"; - break; - case 2: - nfapi_mode_str = "VNF"; - break; - case 3: - nfapi_mode_str = "UE_STUB_PNF"; - break; - case 4: - nfapi_mode_str = "UE_STUB_OFFNET"; - break; - default: - nfapi_mode_str = ""; - break; - } - printf("NFAPI MODE:%s\n", nfapi_mode_str); - - - - - // connect the TX/RX buffers - - - /* - if(nfapi_mode!=3) { - if (setup_ue_buffers(PHY_vars_UE_g[0],&openair0_cfg[0])!=0) { - printf("Error setting up eNB buffer\n"); - exit(-1); - } - } - */ - - - - if (input_fd) { - printf("Reading in from file to antenna buffer %d\n",0); - if (fread(PHY_vars_UE_g[0][0]->common_vars.rxdata[0], - sizeof(int32_t), - frame_parms[0]->samples_per_tti*10, - input_fd) != frame_parms[0]->samples_per_tti*10) - printf("error reading from file\n"); - } - //p_exmimo_config->framing.tdd_config = TXRXSWITCH_TESTRX; - - if (simL1flag==1) { - init_ocm((double)snr_dB,0); - PHY_vars_UE_g[0][0]->no_timing_correction = 1; - } - - printf("Sending sync to all threads (%p,%p,%p)\n",&sync_var,&sync_mutex,&sync_cond); pthread_mutex_lock(&sync_mutex); sync_var=0; pthread_cond_broadcast(&sync_cond); pthread_mutex_unlock(&sync_mutex); + + printf("sync sent\n"); /* printf("About to call end_configmodule() from %s() %s:%d\n", __FUNCTION__, __FILE__, __LINE__); end_configmodule(); @@ -1204,9 +1184,6 @@ int main( int argc, char **argv ) if (PHY_vars_UE_g[0][0]->rfdevice.trx_end_func) PHY_vars_UE_g[0][0]->rfdevice.trx_end_func(&PHY_vars_UE_g[0][0]->rfdevice); - if (ouput_vcd) - VCD_SIGNAL_DUMPER_CLOSE(); - if (opt_enabled == 1) terminate_opt(); diff --git a/targets/RT/USER/rfsim.c b/targets/RT/USER/rfsim.c index b42abc69ad..06b7617519 100644 --- a/targets/RT/USER/rfsim.c +++ b/targets/RT/USER/rfsim.c @@ -51,7 +51,7 @@ #include "common/ran_context.h" #include "PHY/defs_UE.h" #include "PHY/defs_eNB.h" -#include "vcd_signal_dumper.h" +#include "common/utils/LOG/vcd_signal_dumper.h" RAN_CONTEXT_t RC; extern PHY_VARS_UE ***PHY_vars_UE_g; diff --git a/targets/RT/USER/rt_wrapper.h b/targets/RT/USER/rt_wrapper.h index f9828d0db9..32554d9e17 100644 --- a/targets/RT/USER/rt_wrapper.h +++ b/targets/RT/USER/rt_wrapper.h @@ -55,7 +55,7 @@ #include #include -#include "UTIL/LOG/log_extern.h" +#include "common/utils/LOG/log_extern.h" #include "msc.h" #define RTIME long long int diff --git a/targets/TEST/AT_COMMANDS/oaisim.c b/targets/TEST/AT_COMMANDS/oaisim.c index 4420d583e3..e14373f87f 100644 --- a/targets/TEST/AT_COMMANDS/oaisim.c +++ b/targets/TEST/AT_COMMANDS/oaisim.c @@ -34,7 +34,7 @@ #include "LAYER2/MAC/vars.h" #include "UTIL/LOG/log_if.h" #include "UTIL/LOG/log_extern.h" -#include "RRC/LITE/vars.h" +#include "RRC/LTE/vars.h" #include "PHY_INTERFACE/vars.h" #include "UTIL/OCG/OCG.h" #include "UTIL/AT_COMMANDS/parser.h" diff --git a/targets/TEST/PACKET_TRACER/pt.c b/targets/TEST/PACKET_TRACER/pt.c index 9e4077e274..030b63ab90 100644 --- a/targets/TEST/PACKET_TRACER/pt.c +++ b/targets/TEST/PACKET_TRACER/pt.c @@ -37,7 +37,7 @@ #include "SCHED/vars.h" #include "LAYER2/MAC/defs.h" #include "LAYER2/MAC/vars.h" -#include "RRC/LITE/vars.h" +#include "RRC/LTE/vars.h" #include "PHY_INTERFACE/vars.h" #include "UTIL/LOG/log.h" #include "OCG_vars.h" diff --git a/targets/TEST/PDCP/test_pdcp.c b/targets/TEST/PDCP/test_pdcp.c index b07add73a6..a999bb254d 100644 --- a/targets/TEST/PDCP/test_pdcp.c +++ b/targets/TEST/PDCP/test_pdcp.c @@ -248,15 +248,12 @@ BOOL test_pdcp_data_req(void) * XXX mem_block_t doesn't hold buffer size, how do we keep the size * information if we pass mem_block_ts via a linked list? */ -#if 0 if (pdcp_test_pdu_buffer_size == 0 || pdcp_test_pdu_buffer == NULL) { msg("[TEST] PDU created by pdcp_data_req() is invalid!\n"); return FALSE; } -#endif - /* * Serialize incoming mem_block_t into an unsigned character array * and add removed PDU to RX list in order to use it in the next test diff --git a/targets/TEST/PDCP/with_rlc/test_pdcp_rlc.c b/targets/TEST/PDCP/with_rlc/test_pdcp_rlc.c index 1cadea3715..d3efbe139f 100644 --- a/targets/TEST/PDCP/with_rlc/test_pdcp_rlc.c +++ b/targets/TEST/PDCP/with_rlc/test_pdcp_rlc.c @@ -34,7 +34,7 @@ #include "LAYER2/MAC/vars.h" #include "UTIL/LOG/log_if.h" #include "UTIL/LOG/log_extern.h" -#include "RRC/LITE/vars.h" +#include "RRC/LTE/vars.h" #include "PHY_INTERFACE/vars.h" #include "UTIL/OCG/OCG.h" #include "LAYER2/PDCP_v10.1.0/pdcp.h" @@ -148,7 +148,7 @@ void pdcp_rlc_test_mac_rlc_loop (struct mac_data_ind *data_indP, struct mac_dat data_indP->no_tb += 1; } else { printf("Out of memory error\n"); - exit(-1); +// exit(-1); } } else { printf("[RLC-LOOP] DROPPING 1 TB\n"); diff --git a/targets/TEST/RLC_AM_V9.3.0/oaisim.c b/targets/TEST/RLC_AM_V9.3.0/oaisim.c index dda91f0b1f..fc2082f1df 100644 --- a/targets/TEST/RLC_AM_V9.3.0/oaisim.c +++ b/targets/TEST/RLC_AM_V9.3.0/oaisim.c @@ -35,7 +35,7 @@ #include "LAYER2/MAC/vars.h" #include "UTIL/LOG/log_if.h" #include "UTIL/LOG/log_extern.h" -#include "RRC/LITE/vars.h" +#include "RRC/LTE/vars.h" #include "PHY_INTERFACE/vars.h" #include "UTIL/OCG/OCG.h" diff --git a/targets/TEST/RLC_UM_V9.3.0/oaisim.c b/targets/TEST/RLC_UM_V9.3.0/oaisim.c index e1fce26a6f..c520749de3 100644 --- a/targets/TEST/RLC_UM_V9.3.0/oaisim.c +++ b/targets/TEST/RLC_UM_V9.3.0/oaisim.c @@ -35,7 +35,7 @@ #include "LAYER2/MAC/vars.h" #include "UTIL/LOG/log_if.h" #include "UTIL/LOG/log_extern.h" -#include "RRC/LITE/vars.h" +#include "RRC/LTE/vars.h" #include "PHY_INTERFACE/vars.h" #include "UTIL/OCG/OCG.h" diff --git a/targets/build_helper.bash b/targets/build_helper.bash index a3c57b8dce..9c98ef85b0 100755 --- a/targets/build_helper.bash +++ b/targets/build_helper.bash @@ -23,7 +23,7 @@ # brief # author Lionel Gauthier and Navid Nikaein # company Eurecom -# email: lionel.gauthier@eurecom.fr and navid.nikaein@eurecom.fr +# email: lionel.gauthier@eurecom.fr and navid.nikaein@eurecom.fr # ####################################### # Helper Func @@ -42,30 +42,30 @@ declare UBUNTU_REL=`lsb_release -r | cut -f2` declare UBUNTU_REL_NAME=`lsb_release -cs` set_build_from_makefile(){ - BUILD_FROM_MAKEFILE=$1 + BUILD_FROM_MAKEFILE=$1 } check_for_root_rights() { - + # if [[ $EUID -ne $ROOT_EUID ]]; then if [ $USER != "root" ]; then SUDO="sudo -E " - echo "Run as a sudoers" + echo "Run as a sudoers" return 1 - else - echo "Run as a root" + else + echo "Run as a root" return 0 fi } test_install_package() { # usage: test_install_package package_name - + if [ $# -eq 1 ]; then dpkg -s "$1" > /dev/null 2>&1 && { - echo "$1 is installed." + echo "$1 is installed." } || { - echo "$1 is not installed." + echo "$1 is not installed." OAI_INSTALLED=0 $SUDO apt-get install -y $@ } @@ -73,13 +73,13 @@ test_install_package() { } test_uninstall_package() { - + if [ $# -eq 1 ]; then dpkg -s "$1" > /dev/null 2>&1 && { - $SUDO apt-get remove --assume-yes $1 - echo "$1 is uninstalled." + $SUDO apt-get remove --assume-yes $1 + echo "$1 is uninstalled." } || { - echo "$1 is not installed." + echo "$1 is not installed." } fi } @@ -97,8 +97,8 @@ check_for_machine_type(){ else if [ ${MACHINE_TYPE} = "i686" ]; then return 32 # 32-bit stuff here - else - return -1 + else + return -1 fi fi } @@ -108,7 +108,7 @@ check_for_machine_type(){ ##################################################### #################################################### -# 1. install the required packages +# 1. install the required packages #################################################### make_certs(){ @@ -118,32 +118,32 @@ make_certs(){ mkdir -m 777 -p demoCA echo 01 > demoCA/serial touch demoCA/index.txt - + echo "creating the certificate" - + user=$(whoami) HOSTNAME=$(hostname -f) echo "Creating certificate for user '$HOSTNAME'" - + # CA self certificate openssl req -new -batch -x509 -days 3650 -nodes -newkey rsa:1024 -out cacert.pem -keyout cakey.pem -subj /CN=eur/C=FR/ST=PACA/L=Aix/O=Eurecom/OU=CM - + # openssl genrsa -out user.key.pem 1024 openssl genrsa -out hss.key.pem 1024 #openssl req -new -batch -out user.csr.pem -key user.key.pem -subj /CN=$HOSTNAME.eur/C=FR/ST=PACA/L=Aix/O=Eurecom/OU=CM openssl req -new -batch -out hss.csr.pem -key hss.key.pem -subj /CN=hss.eur/C=FR/ST=PACA/L=Aix/O=Eurecom/OU=CM openssl ca -cert cacert.pem -keyfile cakey.pem -in hss.csr.pem -out hss.cert.pem -outdir . -batch - + if [ ! -d /usr/local/etc/freeDiameter ]; then echo "Creating non existing directory: /usr/local/etc/freeDiameter/" $SUDO mkdir /usr/local/etc/freeDiameter/ fi - + echo "Copying *.pem to /usr/local/etc/freeDiameter/" $SUDO cp *.pem /usr/local/etc/freeDiameter/ mv *.pem bin/ - + # openssl genrsa -out ubuntu.key.pem 1024 # openssl req -new -batch -x509 -out ubuntu.csr.pem -key ubuntu.key.pem -subj /CN=ubuntu.localdomain/C=FR/ST=BdR/L=Aix/O=fD/OU=Tests # openssl ca -cert cacert.pem -keyfile cakey.pem -in ubuntu.csr.pem -out ubuntu.cert.pem -outdir . -batch @@ -151,25 +151,25 @@ make_certs(){ } check_install_nettle(){ - if [ ! -f ./.lock_oaibuild ]; then - if [ $UBUNTU_REL = "12.04" ]; then + if [ ! -f ./.lock_oaibuild ]; then + if [ $UBUNTU_REL = "12.04" ]; then test_uninstall_package nettle-dev test_uninstall_package nettle-bin - + if [ ! -d /usr/local/src/ ]; then echo "/usr/local/src/ doesn't exist please create one" exit -1 fi - + if [ ! -w /usr/local/src/ ]; then echo "You don't have permissions to write to /usr/local/src/, installing as a sudoer" # exit -1 fi - + cd /usr/local/src/ - + echo "Downloading nettle archive" - + if [ -f nettle-2.5.tar.gz ]; then $SUDO rm -f nettle-2.5.tar.gz fi @@ -179,44 +179,44 @@ check_install_nettle(){ if [ -d nettle-2.5 ]; then $SUDO rm -rf nettle-2.5/ fi - - - $SUDO wget ftp://ftp.lysator.liu.se/pub/security/lsh/nettle-2.5.tar.gz - $SUDO gunzip nettle-2.5.tar.gz + + + $SUDO wget ftp://ftp.lysator.liu.se/pub/security/lsh/nettle-2.5.tar.gz + $SUDO gunzip nettle-2.5.tar.gz $SUDO echo "Uncompressing nettle archive" $SUDO tar -xf nettle-2.5.tar cd nettle-2.5/ - $SUDO ./configure --disable-openssl --enable-shared --prefix=/usr + $SUDO ./configure --disable-openssl --enable-shared --prefix=/usr if [ $? -ne 0 ]; then exit -1 fi echo "Compiling nettle" - $SUDO make -j $NUM_CPU - $SUDO make check - $SUDO make install + $SUDO make -j $NUM_CPU + $SUDO make check + $SUDO make install cd ../ fi fi } check_install_freediamter(){ - - if [ $UBUNTU_REL = "12.04" ]; then + + if [ $UBUNTU_REL = "12.04" ]; then if [ ! -d /usr/local/src/ ]; then echo "/usr/local/src/ doesn't exist please create one" exit -1 fi - + if [ ! -w /usr/local/src/ ]; then echo "You don't have permissions to write to /usr/local/src/, installing as a sudoer" # exit -1 fi - + cd /usr/local/src/ - + echo "Downloading nettle archive" - + if [ -f nettle-2.5.tar.gz ]; then $SUDO rm -f nettle-2.5.tar.gz fi @@ -226,36 +226,36 @@ check_install_freediamter(){ if [ -d nettle-2.5 ]; then $SUDO rm -rf nettle-2.5/ fi - - - $SUDO wget ftp://ftp.lysator.liu.se/pub/security/lsh/nettle-2.5.tar.gz - $SUDO gunzip nettle-2.5.tar.gz + + + $SUDO wget ftp://ftp.lysator.liu.se/pub/security/lsh/nettle-2.5.tar.gz + $SUDO gunzip nettle-2.5.tar.gz $SUDO echo "Uncompressing nettle archive" $SUDO tar -xf nettle-2.5.tar cd nettle-2.5/ - $SUDO ./configure --disable-openssl --enable-shared --prefix=/usr + $SUDO ./configure --disable-openssl --enable-shared --prefix=/usr if [ $? -ne 0 ]; then exit -1 fi echo "Compiling nettle" - $SUDO make -j $NUM_CPU - $SUDO make check - $SUDO make install + $SUDO make -j $NUM_CPU + $SUDO make check + $SUDO make install cd ../ fi - + echo "Downloading gnutls archive" - + if [ -f gnutls-3.1.23.tar.xz ]; then $SUDO rm -f gnutls-3.1.23.tar.xz fi if [ -d gnutls-3.1.23/ ]; then $SUDO rm -rf gnutls-3.1.23/ fi - + test_uninstall_package libgnutls-dev - - $SUDO wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.1/gnutls-3.1.23.tar.xz + + $SUDO wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.1/gnutls-3.1.23.tar.xz $SUDO tar -xf gnutls-3.1.23.tar.xz echo "Uncompressing gnutls archive ($PWD)" cd gnutls-3.1.23/ @@ -264,38 +264,38 @@ check_install_freediamter(){ exit -1 fi echo "Compiling gnutls" - $SUDO make -j $NUM_CPU - $SUDO make install + $SUDO make -j $NUM_CPU + $SUDO make install cd ../ - + echo "Downloading freeDiameter archive" - + if [ -f 1.1.5.tar.gz ]; then $SUDO rm -f 1.1.5.tar.gz fi if [ -d freeDiameter-1.1.5/ ]; then $SUDO rm -rf freeDiameter-1.1.5/ fi - - $SUDO wget http://www.freediameter.net/hg/freeDiameter/archive/1.1.5.tar.gz - $SUDO tar -xzf 1.1.5.tar.gz + + $SUDO wget http://www.freediameter.net/hg/freeDiameter/archive/1.1.5.tar.gz + $SUDO tar -xzf 1.1.5.tar.gz echo "Uncompressing freeDiameter archive" cd freeDiameter-1.1.5 - $SUDO patch -p1 < $OPENAIR3_DIR/S6A/freediameter/freediameter-1.1.5.patch + $SUDO patch -p1 < $OPENAIR3_DIR/S6A/freediameter/freediameter-1.1.5.patch $SUDO mkdir build cd build - $SUDO cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr ../ + $SUDO cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr ../ if [ $? -ne 0 ]; then exit -1 fi echo "Compiling freeDiameter" - $SUDO make -j $NUM_CPU + $SUDO make -j $NUM_CPU #make help - $SUDO make test - $SUDO sudo make install - + $SUDO make test + $SUDO sudo make install + # make_certs - + } @@ -339,7 +339,7 @@ check_hss_s6a_certificate() { then echo_success "HSS S6A: Found valid certificate in /usr/local/etc/freeDiameter" return 0 - else + else echo_error "Bad hss hostname found in cert file: "$full_hostname " hostname is "`hostname` fi fi @@ -357,43 +357,43 @@ check_hss_s6a_certificate() { } check_install_usrp_uhd_driver(){ - if [ ! -f /etc/apt/sources.list.d/ettus.list ] ; then + if [ ! -f /etc/apt/sources.list.d/ettus.list ] ; then $SUDO bash -c 'echo "deb http://files.ettus.com/binaries/uhd/repo/uhd/ubuntu/`lsb_release -cs` `lsb_release -cs` main" >> /etc/apt/sources.list.d/ettus.list' $SUDO apt-get update - fi + fi $SUDO apt-get install -t $UBUNTU_REL_NAME uhd - test_install_package python - test_install_package libboost-all-dev + test_install_package python + test_install_package libboost-all-dev test_install_package libusb-1.0-0-dev #test_install_package uhd } check_install_oai_software() { - - if [ ! -f ./.lock_oaibuild ]; then + + if [ ! -f ./.lock_oaibuild ]; then $SUDO apt-get update - if [ $UBUNTU_REL = "12.04" ]; then + if [ $UBUNTU_REL = "12.04" ]; then test_uninstall_package nettle-dev test_uninstall_package nettle-bin - else + else test_install_package nettle-dev test_install_package nettle-bin - fi - test_install_package autoconf - test_install_package automake - test_install_package bison + fi + test_install_package autoconf + test_install_package automake + test_install_package bison test_install_package build-essential test_install_package dialog - test_install_package flex + test_install_package flex test_install_package gawk test_install_package gcc - test_install_package gdb + test_install_package gdb test_install_package make test_install_package cmake test_install_package openssh-client test_install_package openssh-server sudo service ssh start - test_install_package unzip + test_install_package unzip test_install_package autoconf test_install_package automake test_install_package bison @@ -405,7 +405,7 @@ check_install_oai_software() { test_install_package gawk test_install_package gcc test_install_package gccxml - test_install_package gdb + test_install_package gdb test_install_package guile-2.0-dev test_install_package iperf test_install_package iproute @@ -414,6 +414,8 @@ check_install_oai_software() { test_install_package libatlas-dev test_install_package libblas3gf test_install_package libblas-dev + test_install_package liblapack-dev + test_install_package liblapack-dev # if [ $MACHINE_ARCH = 64 ]; then test_install_package libconfig8-dev # else @@ -436,7 +438,7 @@ check_install_oai_software() { test_install_package libxml2-dev # test_install_package linux-headers-`uname -r` test_install_package openssl - test_install_package libssl-dev + test_install_package libssl-dev test_install_package pkg-config test_install_package python-dev test_install_package python-pexpect @@ -445,90 +447,90 @@ check_install_oai_software() { test_install_package valgrind test_install_package doxygen test_install_package graphviz - + # test_install_package libboost-all-dev - - if [ $OAI_INSTALLED = 1 ]; then + + if [ $OAI_INSTALLED = 1 ]; then touch ./.lock_oaibuild - fi - + fi + else echo_info "All the required packages installed: skip" - fi - + fi + } check_install_hss_software() { - if [ ! -f ./.lock_oaibuild ]; then + if [ ! -f ./.lock_oaibuild ]; then $SUDO apt-get update - if [ $UBUNTU_REL = "12.04" ]; then + if [ $UBUNTU_REL = "12.04" ]; then test_uninstall_package nettle-dev test_uninstall_package nettle-bin - else + else test_install_package nettle-dev test_install_package nettle-bin - fi - test_install_package autoconf - test_install_package automake - test_install_package bison + fi + test_install_package autoconf + test_install_package automake + test_install_package bison test_install_package build-essential test_install_package cmake - test_install_package cmake-curses-gui + test_install_package cmake-curses-gui test_install_package dialog test_install_package dkms - test_install_package flex + test_install_package flex test_install_package gawk test_install_package gcc - test_install_package gdb - test_install_package guile-2.0-dev + test_install_package gdb + test_install_package guile-2.0-dev test_install_package g++ - test_install_package libgmp-dev - test_install_package libgcrypt11-dev - test_install_package libidn11-dev - test_install_package libidn2-0-dev - test_install_package libmysqlclient-dev - test_install_package libtasn1-3-dev - test_install_package libsctp1 - test_install_package libsctp-dev - test_install_package libxml2-dev -# test_install_package linux-headers-`uname -r` + test_install_package libgmp-dev + test_install_package libgcrypt11-dev + test_install_package libidn11-dev + test_install_package libidn2-0-dev + test_install_package libmysqlclient-dev + test_install_package libtasn1-3-dev + test_install_package libsctp1 + test_install_package libsctp-dev + test_install_package libxml2-dev +# test_install_package linux-headers-`uname -r` test_install_package make - test_install_package mysql-client - test_install_package mysql-server-core-5.5 + test_install_package mysql-client + test_install_package mysql-server-core-5.5 test_install_package mysql-server test_install_package openssh-client test_install_package openssh-server sudo service ssh start test_install_package phpmyadmin - test_install_package python-dev + test_install_package python-dev test_install_package sshfs - test_install_package swig - test_install_package unzip + test_install_package swig + test_install_package unzip # test_install_package nettle-bin # test_install_package nettle-dev - test_install_package valgrind + test_install_package valgrind - if [ $OAI_INSTALLED = 1 ]; then + if [ $OAI_INSTALLED = 1 ]; then touch ./.lock_oaibuild - fi - + fi + else echo_info "All the required packages installed: skip" - fi + fi } check_install_epc_software() { - if [ ! -f ./.lock_oaibuild ]; then + if [ ! -f ./.lock_oaibuild ]; then $SUDO apt-get update - if [ $UBUNTU_REL = "12.04" ]; then + if [ $UBUNTU_REL = "12.04" ]; then test_uninstall_package nettle-dev test_uninstall_package nettle-bin - else + else test_install_package nettle-dev test_install_package nettle-bin - fi + fi test_install_package autoconf test_install_package automake test_install_package bison @@ -543,7 +545,7 @@ check_install_epc_software() { test_install_package gawk test_install_package gcc test_install_package gccxml - test_install_package gdb + test_install_package gdb test_install_package guile-2.0-dev test_install_package gtkwave test_install_package iperf @@ -573,7 +575,7 @@ check_install_epc_software() { test_install_package libsctp-dev test_install_package libssl-dev test_install_package libtasn1-3-dev - test_install_package libtool + test_install_package libtool test_install_package libxml2 test_install_package libxml2-dev # test_install_package linux-headers-`uname -r` @@ -593,21 +595,21 @@ check_install_epc_software() { test_install_package unzip test_install_package valgrind test_install_package vlan - - if [ $OAI_INSTALLED = 1 ]; then + + if [ $OAI_INSTALLED = 1 ]; then touch ./.lock_oaibuild - fi - + fi + else echo_info "All the required packages installed: skip" - fi + fi } check_install_asn1c(){ - + test_command_install_script "asn1c" "$OPENAIR_TARGETS/SCRIPTS/install_asn1c_0.9.24.modified.bash $SUDO" - + # One mor check about version of asn1c ASN1C_COMPILER_REQUIRED_VERSION_MESSAGE="ASN.1 Compiler, v0.9.24" ASN1C_COMPILER_VERSION_MESSAGE=`asn1c -h 2>&1 | grep -i ASN\.1\ Compiler` @@ -624,15 +626,15 @@ check_install_asn1c(){ fi done fi - + } ################################################# -# 2. compile +# 2. compile ################################################ compile_hss() { cd $OPENAIR3_DIR/OPENAIRHSS - + if [ "$1" -eq 1 ]; then echo_info "build a clean HSS" rm -rfv obj* @@ -642,14 +644,14 @@ compile_hss() { fi OBJ_DIR=`find . -maxdepth 1 -type d -iname obj*` - + if [ ! -n "$OBJ_DIR" ]; then OBJ_DIR="objs" mkdir --verbose -m 777 ./$OBJ_DIR else OBJ_DIR=`basename $OBJ_DIR` fi - + if [ ! -f "$OBJ_DIR"/Makefile ]; then if [ ! -d m4 ]; then mkdir --verbose -m 777 m4 @@ -661,7 +663,7 @@ compile_hss() { fi cd $OBJ_DIR echo_success "Invoking configure" - ../configure + ../configure if [ $? -ne 0 ]; then return 1 fi @@ -675,7 +677,7 @@ compile_hss() { if [ $? -ne 0 ]; then echo_error "Build failed, exiting" return 1 - else + else return 0 fi else @@ -705,11 +707,11 @@ compile_epc() { fi bash_exec "autoreconf -i -f" echo_success "Invoking autogen" - bash_exec "libtoolize" + bash_exec "libtoolize" bash_exec "./autogen.sh" cd ./$OBJ_DIR echo_success "Invoking configure" - if [ $DEBUG -ne 0 ]; then + if [ $DEBUG -ne 0 ]; then ../configure --enable-debug --enable-standalone-epc --enable-gtp1u-in-kernel LDFLAGS=-L/usr/local/lib else ../configure --enable-standalone-epc --enable-gtp1u-in-kernel LDFLAGS=-L/usr/local/lib @@ -727,30 +729,30 @@ compile_epc() { if [ $? -ne 0 ]; then echo_error "Build failed, exiting" return 1 - else + else cp -pf ./OAI_EPC/oai_epc $OPENAIR_TARGETS/bin fi else echo_error "Configure failed, exiting" return 1 fi - + cd $OPENAIR3_DIR/GTPV1-U/GTPUAH; make if [ $? -ne 0 ]; then echo_error "Build GTPUAH module failed, exiting" return 1 - else + else $SUDO cp -pfv ./Bin/libxt_*.so /lib/xtables $SUDO cp -pfv ./Bin/*.ko $OPENAIR_TARGETS/bin fi - + cd $OPENAIR3_DIR/GTPV1-U/GTPURH; make if [ $? -ne 0 ]; then echo_error "Build GTPURH module failed, exiting" return 1 - else + else $SUDO cp -pfv ./Bin/libxt_*.so /lib/xtables $SUDO cp -pfv ./Bin/*.ko $OPENAIR_TARGETS/bin fi @@ -777,15 +779,15 @@ compile_ltesoftmodem() { if [ $? -ne 0 ]; then # to locate easily compilation error in log file make $SOFTMODEM_DIRECTIVES - fi + fi if [ $? -ne 0 ]; then - if [ ! -f ./lte-softmodem ]; then + if [ ! -f ./lte-softmodem ]; then echo_error "Build lte-softmodem failed, returning" return 1 - else + else cp -pf ./lte-softmodem $OPENAIR_TARGETS/bin return 0 - fi + fi else cp -pf ./lte-softmodem $OPENAIR_TARGETS/bin return 0 @@ -801,11 +803,11 @@ compile_oaisim() { if [ -f Makefile ]; then echo "Compiling for oaisim target ($OAISIM_DIRECTIVES)" make cleanall > /dev/null - make -j $NUM_CPU $OAISIM_DIRECTIVES + make -j $NUM_CPU $OAISIM_DIRECTIVES if [ $? -ne 0 ]; then echo_error "Build oaisim failed, returning" return 1 - else + else cp -pf ./oaisim $OPENAIR_TARGETS/bin return 0 fi @@ -820,11 +822,11 @@ compile_unisim() { if [ -f Makefile ]; then echo "Compiling for UNISIM target ..." make cleanall - make -j $NUM_CPU all + make -j $NUM_CPU all if [ $? -ne 0 ]; then echo_error "Build unisim failed, returning" return 1 - else + else cp -pf ./dlsim $OPENAIR_TARGETS/bin cp -pf ./ulsim $OPENAIR_TARGETS/bin cp -pf ./pucchsim $OPENAIR_TARGETS/bin @@ -843,9 +845,9 @@ compile_unisim() { compile_nas_tools() { export NVRAM_DIR=$OPENAIR_TARGETS/bin - + cd $NVRAM_DIR - + if [ ! -f /tmp/nas_cleaned ]; then echo_success "make --directory=$OPENAIR3_DIR/NAS/EURECOM-NAS/tools veryveryclean" make --directory=$OPENAIR3_DIR/NAS/EURECOM-NAS/tools veryveryclean @@ -963,11 +965,11 @@ check_for_nas_ue_executable() { ############################################### # arg1 is RT -# arg2 is HW +# arg2 is HW # arg3 is ENB_S1 install_ltesoftmodem() { # RT - if [ $1 = "RTAI" ]; then + if [ $1 = "RTAI" ]; then if [ ! -f /tmp/init_rt_done.tmp ]; then echo_info " 8.1 Insert RTAI modules" $SUDO insmod /usr/realtime/modules/rtai_hal.ko > /dev/null 2>&1 @@ -982,46 +984,46 @@ install_ltesoftmodem() { fi fi #HW - if [ $2 = "EXMIMO" ]; then + if [ $2 = "EXMIMO" ]; then echo_info " 8.2 [EXMIMO] creating RTAI fifos" - for i in `seq 0 64`; do + for i in `seq 0 64`; do have_rtfX=`ls /dev/ |grep -c rtf$i`; - if [ "$have_rtfX" -eq 0 ] ; then - $SUDO mknod -m 666 /dev/rtf$i c 150 $i; + if [ "$have_rtfX" -eq 0 ] ; then + $SUDO mknod -m 666 /dev/rtf$i c 150 $i; fi; done echo_info " 8.3 [EXMIMO] Build lte-softmodemdrivers" cd $OPENAIR_TARGETS/ARCH/EXMIMO/DRIVER/eurecom && make clean && make # || exit 1 cd $OPENAIR_TARGETS/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT && make clean && make # || exit 1 - + echo_info " 8.4 [EXMIMO] Setup RF card" cd $OPENAIR_TARGETS/RT/USER . ./init_exmimo2.sh - else + else if [ $2 = "USRP" ]; then echo_info " 8.2 [USRP] " fi fi - + # ENB_S1 - if [ $3 = 0 ]; then + if [ $3 = 0 ]; then cd $OPENAIR2_DIR && make clean && make nasmesh_netlink.ko #|| exit 1 cd $OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL && make clean && make # || exit 1 fi - + } # arg1 is ENB_S1 'boolean' install_oaisim() { - if [ $1 = 0 ]; then + if [ $1 = 0 ]; then cd $OPENAIR2_DIR && make clean && make nasmesh_netlink.ko #|| exit 1 cd $OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL && make clean && make # || exit 1 else compile_ue_ip_nw_driver install_nas_tools - fi - + fi + } @@ -1041,7 +1043,7 @@ install_nas_tools() { } install_nasmesh(){ - echo_success "LOAD NASMESH IP DRIVER FOR UE AND eNB" + echo_success "LOAD NASMESH IP DRIVER FOR UE AND eNB" (cd $OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL && make clean && make) (cd $OPENAIR2_DIR && make clean && make nasmesh_netlink_address_fix.ko) $SUDO rmmod nasmesh @@ -1069,7 +1071,7 @@ create_hss_database(){ fi set_openair_env - + # removed % #Q1="GRANT ALL PRIVILEGES ON *.* TO '$3'@'%' IDENTIFIED BY '$4' WITH GRANT OPTION;" Q1="GRANT ALL PRIVILEGES ON *.* TO '$3'@'localhost' IDENTIFIED BY '$4' WITH GRANT OPTION;" @@ -1082,8 +1084,8 @@ create_hss_database(){ else echo_success "$3 permissions succeeded" fi - - + + Q1="CREATE DATABASE IF NOT EXISTS ${BTICK}$5${BTICK};" SQL="${Q1}" $MYSQL -u $3 --password=$4 -e "$SQL" @@ -1093,12 +1095,12 @@ create_hss_database(){ else echo_success "$5 creation succeeded" fi - - + + # test if tables have been created mysql -u $3 --password=$4 -e "desc $5.users" > /dev/null 2>&1 - - if [ $? -eq 1 ]; then + + if [ $? -eq 1 ]; then $MYSQL -u $3 --password=$4 $5 < $OPENAIR3_DIR/OPENAIRHSS/db/oai_db.sql if [ $? -ne 0 ]; then echo_error "$5 tables creation failed" @@ -1107,7 +1109,7 @@ create_hss_database(){ echo_success "$5 tables creation succeeded" fi fi - + return 0 } @@ -1176,7 +1178,7 @@ print_help_perf(){ } ############################### -## echo and family +## echo and family ############################### black='\E[30m' red='\E[31m' @@ -1196,10 +1198,10 @@ cecho() # Color-echo local default_msg="No Message." message=${1:-$default_msg} color=${2:-$green} - if [ $BUILD_FROM_MAKEFILE = 0 ]; then + if [ $BUILD_FROM_MAKEFILE = 0 ]; then echo -e -n "$color$message$reset_color" echo - else + else echo "$message" fi return @@ -1304,7 +1306,7 @@ assert() { if [ -z "$2" ] ; then # Not enought parameters passed. return $E_PARAM_ERR fi - + lineno=$2 if [ ! $1 ]; then echo_error "Assertion failed: \"$1\""